diff --git a/.gitattributes b/.gitattributes new file mode 100644 index 000000000..41a93874f --- /dev/null +++ b/.gitattributes @@ -0,0 +1,15 @@ +md5sums linguist-generated +compiled.md5sum linguist-generated +docker-hash linguist-generated +*.gts linguist-generated +*.adt linguist-generated +*.bir linguist-generated +*.relf linguist-generated + +src/test/compiled.url.txt text eol=lf +src/test/make/docker-flake.txt text eol=lf + +Makefile text eol=lf +*.sh text eol=lf +*.mk text eol=lf +*.md5sum text eol=lf diff --git a/.github/workflows/run-examples.yml b/.github/workflows/run-examples.yml index af7b50fab..5de401ac1 100644 --- a/.github/workflows/run-examples.yml +++ b/.github/workflows/run-examples.yml @@ -79,6 +79,7 @@ jobs: - run: dotnet tool install --global boogie --version '3.4.3' - run: ./mill compile + - run: make -C src/test extract - run: ./mill test.test -oGD -T 1000000 -n test_util.tags.StandardSystemTest - uses: actions/upload-artifact@v4 @@ -130,6 +131,7 @@ jobs: - run: dotnet tool install --global boogie --version '3.4.3' - run: ./mill test.compile + - run: make -C src/test extract - run: ./mill test.test -oGD -T 1000000 -n test_util.tags.UnitTest UnitTests: @@ -152,6 +154,7 @@ jobs: - run: dotnet tool install --global boogie --version '3.4.3' - run: ./mill test.compile + - run: make -C src/test extract - run: ./mill test.test -oGD -T 1000000 -n test_util.tags.UnitTest # every test with package prefix: @@ -177,6 +180,7 @@ jobs: - run: dotnet tool install --global boogie --version '3.4.3' - run: ./mill test.compile + - run: make -C src/test extract - run: ./mill test.test -oGD -T 1000000 -n test_util.tags.AnalysisSystemTest -F 2 AnalysisSystemTests2: @@ -199,6 +203,7 @@ jobs: - run: dotnet tool install --global boogie --version '3.4.3' - run: ./mill test.compile + - run: make -C src/test extract - run: ./mill test.test -oGD -T 1000000 -n test_util.tags.AnalysisSystemTest2 -F 2 AnalysisSystemTests3: @@ -221,6 +226,7 @@ jobs: - run: dotnet tool install --global boogie --version '3.4.3' - run: ./mill test.compile + - run: make -C src/test extract - run: ./mill test.test -oGD -T 1000000 -n test_util.tags.AnalysisSystemTest3 -F 2 AnalysisSystemTests4: @@ -243,4 +249,5 @@ jobs: - run: dotnet tool install --global boogie --version '3.4.3' - run: ./mill test.compile - - run: ./mill test.test -oGD -T 1000000 -n test_util.tags.AnalysisSystemTest4 -F 2 \ No newline at end of file + - run: make -C src/test extract + - run: ./mill test.test -oGD -T 1000000 -n test_util.tags.AnalysisSystemTest4 -F 2 diff --git a/docs/development/readme.md b/docs/development/readme.md index 60b7115b2..d21eec002 100644 --- a/docs/development/readme.md +++ b/docs/development/readme.md @@ -1,10 +1,10 @@ # BASIL Development - [project-layout](project-layout.md) Organisation of the source code -- [editor-setup](editor-setup.md) Guide to basil development in IDEs +- [editor-setup](editor-setup.md) Guide to basil development in IDEs - [tool-installation](tool-installation.md) Guide to lifter, etc. tool installation - [scala](scala.md) Advice on Scala programming. -- [cfg](cfg.md) Explanation of the old CFG datastructure +- [cfg](cfg.md) Explanation of the old CFG datastructure - [interpreter](interpreter.md) Explanation of IR interpreter - [simplification-solvers](simplification-solvers.md) Explanation of simplification solvers @@ -15,17 +15,17 @@ Basil is implemented in Scala 3. See also: [Scala Gotchas](scala.md). -Scala is a mixed functional and object-oriented programming language implemented on the JVM. It is a very complicated -language with a lot of depth, so it is important to carefully chose the implementation complexity introduced. +Scala is a mixed functional and object-oriented programming language implemented on the JVM. It is a very complicated +language with a lot of depth, so it is important to carefully chose the implementation complexity introduced. -Generally, this means favouring simple standard solutions and choosing functional programming over stateful object oriented style +Generally, this means favouring simple standard solutions and choosing functional programming over stateful object oriented style (use filter and map rather than loops), prefer immutable case classes and enums to regular mutable classes, etc. ADTs and functions between ADTs are all you need to solve most problems. Most -things more complicated than this make the code unnecessarily difficult to maintain. +things more complicated than this make the code unnecessarily difficult to maintain. It is recommended to explore the [Scala documentation](https://docs.scala-lang.org/scala3/book/introduction.html). -There is also the incomplete [Scala 3 language specification](https://github.com/scala/scala3/tree/main/docs/_spec), +There is also the incomplete [Scala 3 language specification](https://github.com/scala/scala3/tree/main/docs/_spec), which contains details not present in the documentation, but is not completely updated from Scala 2. Some general advice: @@ -33,12 +33,12 @@ Some general advice: - Prefer [Enums](https://docs.scala-lang.org/scala3/book/types-adts-gadts.html) over inheritance trees - Use functional programming over imperative wherever possible - Prefer immutable case classes to regular classes wherever possible -- Don't unneccessarily use generics or type aliases +- Don't unneccessarily use generics or type aliases - Correct code should not require explicit casts (`.asInstanceOf`) #### Code style -We do not have a strict code style however +We do not have a strict code style however - Use two spaces for indentation - Use `{}` braces rather than purely indentation-based scoping @@ -49,9 +49,9 @@ We do not have a strict code style however 1. To set up an editor for Scala development see [editor-setup](editor-setup.md). 2. Become familiar with the [project structure](project-layout.md) to start understanding the code. 3. Install the neccessary tools [here](tool-installation.md), it may be useful to try - lifting examples, or just looking at existing examples in the + lifting examples, or just looking at existing examples in the [src/test/correct](../../src/test/correct) directory. -4. Use the below as a guide to common development tasks as they may arise. +4. Use the below as a guide to common development tasks as they may arise. ## Development tasks @@ -59,7 +59,7 @@ Mill should always be run from the git root directory (`git rev-parse --show-top ## Building -To build the project you can use `./mill build`. Often the incremental compilation database won't be properly invalidated on +To build the project you can use `./mill build`. Often the incremental compilation database won't be properly invalidated on `git switch`/`git checkout`/`git pull`: in these cases `./mill clean` is needed to trigger a full rebuild. To build a standalone `.jar` file, use `./mill assembly`. This can be found at `out/assembly.dest/out.jar`. @@ -71,7 +71,7 @@ Printing an analysis result Run basil with the `--analysis-result ` flag to print the results of the analyses to files. The `--analysis-result-dot ` does the same, but outputs a graphviz digraph, which can be viewed by pasting it into [edotor.net](edotor.net), or compiling with `dot`. -This prints the program with the abstract-domain lattice value at each program point following the `::`. +This prints the program with the abstract-domain lattice value at each program point following the `::`. ``` Procedure main @@ -84,7 +84,7 @@ Procedure main To achieve this for a new result in development use the following method defined in `RunUtils.scala` ```scala -def printAnalysisResults(prog: Program, result: Map[CFGPosition, _]): String +def printAnalysisResults(prog: Program, result: Map[CFGPosition, _]): String ``` @@ -92,6 +92,19 @@ def printAnalysisResults(prog: Program, result: Map[CFGPosition, _]): String All Pull Requests must conform to the style produced by `scalafmt`. This is checked automatically in CI, it can be run locally with: +<<<<<<< HEAD +The [dsl](../basil-ir.md#constructing-programs-in-code) can be used to construct simple example BASIL IR programs, which can then be fed through into the whole pipeline via `IRLoading.load()` in +`RunUtils.scala`. Prefer to write tests that depend only on the single piece of code under test rather than the whole BASIL translation. + +### Integration tests + +These are the `SystemTests.scala` test case with the files present in `src/test/correct` for examples that should verify and `src/test/incorrect` +for examples that should not verify. + +These are run via the Makefiles in src/test. +A Docker image is used to compile and lift examples in a reproducible way. +See [src/test/readme.md](../src/test/readme.md) for details. +======= ```bash ./mill scalafmt.checkFormat ``` @@ -105,24 +118,29 @@ Sources can be reformatted with: ## Tests +The tests are defined as C source files and must be compiled before use. +Before running any tests, download the pre-compiled test case files with: +```bash +$ make -C src/test extract +``` -### Running Tests - -See [testing](testing.md). +For information about running tests, see [testing](testing.md). +For more details on the process of compiling C test cases, including adding and editing test cases, +see [src/test/readme.md](../src/test/readme.md). ## Performance profiling -While the first priority is correctness, the performance target for the static -analyses is that we can run through the entire -[cntlm](https://github.com/versat/cntlm) binary in a reasonable amount of time -(seconds), depending on the expected performance of the analysis involved. +While the first priority is correctness, the performance target for the static +analyses is that we can run through the entire +[cntlm](https://github.com/versat/cntlm) binary in a reasonable amount of time +(seconds), depending on the expected performance of the analysis involved. Loading cntlm requires increasing the heap size by providing the `-Xmx8G` flag. IntelliJ professional (which can be obtained for free by students) includes a performance profiler. -Alternatively, [async-profiler](https://github.com/async-profiler/async-profiler) can be used to produce a -[flame graph](https://brendangregg.com/flamegraphs.html) showing the hot-spots in the program. Download the library from +Alternatively, [async-profiler](https://github.com/async-profiler/async-profiler) can be used to produce a +[flame graph](https://brendangregg.com/flamegraphs.html) showing the hot-spots in the program. Download the library from the [releases tab](https://github.com/async-profiler/async-profiler/releases), compile a basil .jar with `mill assembly` and run the jar with the following arguments. Instructions for Linux and Mac: diff --git a/docs/development/testing.md b/docs/development/testing.md index 0e6854609..7cdc0f7ed 100644 --- a/docs/development/testing.md +++ b/docs/development/testing.md @@ -154,7 +154,12 @@ Both of these will be output in yellow text if your console is using colour. ## Running Individual suites -From git root directory run `mill test.testOnly`, tests suite names are glob matched against its argument, +Before running any tests, download the pre-compiled test case files with: +```bash +$ make -C src/test extract +``` + +From git root directory run `mill test.testOnly`, tests suite names are glob matched against its argument, for example to run all the SystemTest variants use: ``` @@ -164,19 +169,22 @@ $ ./mill test.testOnly 'SystemTests*' ### Compiling the Integration test binaries -These are checked in to the respository, but can be recompiled (and new tests compiled) with the following instructions: - These are the `SystemTests.scala` test case with the files present in `src/test/correct` for examples that should verify and `src/test/incorrect` -for examples that should not verify. +for examples that should not verify. + +The tests are defined as C source files and must be compiled and lifted before use. +These are lifted via the Makefiles, to add another test simply add a directory, c source file, and optionally specification file and run -These are lifted via the Makefiles, to add another test simply add a directory, c source file, and optionally specification file and run +Compilation is done in a Docker container environment for consistency. +A tarball of pre-compiled files is provided to get started quickly. ```sh cd src/test/ +make extract make ``` -The `config.mk` file in the test directory can be used to exclude unnecessary compilers, and change compilation flags. +The `config.mk` file in the test directory can be used to exclude unnecessary compilers, and change compilation flags. Full details can be found [here](../src/test/readme.md). diff --git a/src/main/scala/analysis/data_structure_analysis/Graph.scala b/src/main/scala/analysis/data_structure_analysis/Graph.scala index 2ff14de7b..2c2336914 100644 --- a/src/main/scala/analysis/data_structure_analysis/Graph.scala +++ b/src/main/scala/analysis/data_structure_analysis/Graph.scala @@ -843,7 +843,7 @@ class Graph(using Counter)( } def SSAVar(posLabel: String, varName: String): Slice = { - assert(posLabel.matches("%[0-9a-f]{8}?\\$\\d"), s"posLabel not matching BAP format '$posLabel'") + assert(posLabel.matches("""%[0-9a-f]{8}?(:\$\d)?"""), s"posLabel not matching BAP format '$posLabel'") val res = varToCell.keys.filter(pos => pos.toShortString.startsWith(posLabel)) assert(res.size == 1, s"failed to get SSAVar for '$posLabel' and '$varName'. matched label: ${res}") diff --git a/src/main/scala/ir/IRCursor.scala b/src/main/scala/ir/IRCursor.scala index 3ee09a177..48d07ce34 100644 --- a/src/main/scala/ir/IRCursor.scala +++ b/src/main/scala/ir/IRCursor.scala @@ -7,7 +7,7 @@ import ir.cilvisitor.* import collection.mutable import scala.annotation.tailrec -/** +/** * This file defines functions to get the successor and predecessor of a IR node for control flow. */ diff --git a/src/main/scala/translating/BAPToIR.scala b/src/main/scala/translating/BAPToIR.scala index 253afc7af..d18060c59 100644 --- a/src/main/scala/translating/BAPToIR.scala +++ b/src/main/scala/translating/BAPToIR.scala @@ -240,10 +240,12 @@ class BAPToIR(var program: BAPProgram, mainAddress: BigInt) { val lhs = translateVar(b.lhs) val (rhs, load) = translateExpr(b.rhs) if (load.isDefined) { - val loadWithLabel = - MemoryLoad(load.get.lhs, load.get.mem, load.get.index, load.get.endian, load.get.size, Some(b.line + "$0")) - val assign = LocalAssign(lhs, rhs, Some(b.line + "$1")) - Seq(loadWithLabel, assign) + if rhs != load.get.lhs then { + Seq(MemoryLoad(load.get.lhs, load.get.mem, load.get.index, load.get.endian, load.get.size, Some(b.line + "$0")), + LocalAssign(lhs, rhs, Some(b.line + "$1"))) + } else { + Seq(MemoryLoad(lhs, load.get.mem, load.get.index, load.get.endian, load.get.size, Some(b.line + "$0"))) + } } else { val assign = LocalAssign(lhs, rhs, Some(b.line)) Seq(assign) diff --git a/src/test/.gitignore b/src/test/.gitignore index fcb53575d..93eadec47 100644 --- a/src/test/.gitignore +++ b/src/test/.gitignore @@ -2,4 +2,17 @@ *.csv *.md *.md.part -*.svg \ No newline at end of file +*.svg + +# files reproducibly generated +*.relf +*.adt +*.bir +*.gtirb +*.gts +docker-hash-new +!compiled.url.txt +*.gz +*.bz2 +*.xz +*.zst diff --git a/src/test/Makefile b/src/test/Makefile index 63c6d5fb5..5d2f7dc0a 100644 --- a/src/test/Makefile +++ b/src/test/Makefile @@ -1,12 +1,60 @@ -TARGETSS := all verify clean cleanall cleanlift recompile json cleanjson cleangts gts +TARGETSS := all verify repro-stash repro-check md5sum-check md5sum-update clean cleanall cleanlift recompile json cleanjson cleangts gts -SUBTARGETS = $(wildcard correct/*/ incorrect/*/) -.PHONY : $(TARGETSS) $(SUBTARGETS) correct incorrect +# subdirectories of src/test. to be entered into by this makefile. +DIRS := correct incorrect extraspec_correct extraspec_incorrect indirect_calls memory_regions procedure_summaries +# dirs with different directory structure: dsa, irreducible_loops -$(TARGETSS): $(SUBTARGETS) +# non-test dirs: make, scala, unimplemented -correct: $(realpath $(wildcard correct/*)) -incorrect: $(realpath $(wildcard incorrect/*)) +# in case the user specfies DIRS, make sure all dirs exist. +$(foreach d, $(DIRS), \ + $(if $(wildcard $(d)/.), \ + , \ + $(error user error: directory "$(d)" in DIRS variable does not exist))) + +SUBDIRS = $(wildcard $(addsuffix /*/,$(DIRS))) +.PHONY : $(TARGETSS) $(SUBDIRS) $(DIRS) + +# through some unpleasantness, this lets the user specify either DIRS or SUBDIRS +# on the command line, and the make operation will be narrowed to that directory +$(TARGETSS): $(SUBDIRS) + +$(SUBDIRS): + $(MAKE) -C $@ -f $(realpath ./make/lift-directories.mk) $(MAKECMDGOALS) + +# concats md5sums files in subdirectories into a compiled.md5sum. +# check with `md5sum -c compiled.md5sum` in src/test. +.PHONY: compiled.md5sum +compiled.md5sum: + find $(DIRS) -name '*.md5sum' -exec cat '{}' + | sort -k2 > compiled.md5sum + +TARBALL := compiled.tar.zst + +$(TARBALL) docker-contents.txt &: compiled.md5sum + set -u; $$DOCKER_CMD hash > docker-contents.txt # before compessing, make sure docker-contents.txt is up to date. + md5sum --quiet -c compiled.md5sum # before compressing, make sure our files match expected hashes. + list=`mktemp`; cut -d' ' -f3 compiled.md5sum > $$list && tar caf $(TARBALL) -T $$list && rm $$list + sha1sum $(TARBALL) + +.PHONY: extract +extract: + # log URL and expected hash + { head -n1 compiled.url.txt; tail -n1 compiled.url.txt; } | cat -v + # check existing file, otherwise download fresh copy. + { tail -n1 compiled.url.txt | sha1sum -c - ; } \ + || curl "$$(head -n1 compiled.url.txt)" -o $(TARBALL) + # check file type. + -file $(TARBALL) + # validate the hash, otherwise remove the incorrect file and abort. + { tail -n1 compiled.url.txt | sha1sum -c - ; } || { rm -v $(TARBALL); exit 1; } + tar xf $(TARBALL) --keep-old-files --touch + md5sum --quiet -c compiled.md5sum # check that extracted files match expected checksums + +.PHONY: push +push: + tmp=`mktemp -d` && \ + git clone git@github.com:UQ-PAC/basil-tests.git $$tmp --single-branch --branch basil-src-test && \ + cd $$tmp && \ + + rm -rf $$tmp -$(SUBTARGETS): - -$(MAKE) -C $@ -f $(realpath ./make/lift-directories.mk) $(MAKECMDGOALS) diff --git a/src/test/compiled.md5sum b/src/test/compiled.md5sum new file mode 100644 index 000000000..800a978e9 --- /dev/null +++ b/src/test/compiled.md5sum @@ -0,0 +1,1170 @@ +6627cd0ee6e4284b01fa683ba9e49596 correct/arrays_simple/clang/a.out +c00fd57459aa1763f29e3db6befb2cbe correct/arrays_simple/clang/arrays_simple.adt +93950b8950c8fd9c5ee21479d407b28c correct/arrays_simple/clang/arrays_simple.bir +ed8cfb791c05d819115387af0907870a correct/arrays_simple/clang/arrays_simple.gts +f62540a78e869f91cd784336dc145525 correct/arrays_simple/clang/arrays_simple.relf +fc043a071fea8e3aa2ebe611110ed859 correct/basic_arrays_read/clang/a.out +0b01d1560cf9b869c66dcfee035a9c38 correct/basic_arrays_read/clang/basic_arrays_read.adt +c4dfbdac4f0cb31d7dbf1268ad6ef0fe correct/basic_arrays_read/clang/basic_arrays_read.bir +136b47bc9ca25a0b88c85087a7ec5636 correct/basic_arrays_read/clang/basic_arrays_read.gts +55f102b2fa11cfd4dfa4febaaaae27b6 correct/basic_arrays_read/clang/basic_arrays_read.relf +7393484719dd5993060ec1a00b2f3c1d correct/basic_arrays_read/clang_pic/a.out +f3669f9128227dbbdb547143c6039a3f correct/basic_arrays_read/clang_pic/basic_arrays_read.adt +595dbddd37b0754b7d163e24347d459a correct/basic_arrays_read/clang_pic/basic_arrays_read.bir +cf79c3ae4dd8f61c7e1fca01d7fe43f6 correct/basic_arrays_read/clang_pic/basic_arrays_read.gts +65fcf0be602ffe2c008321d0e53dfced correct/basic_arrays_read/clang_pic/basic_arrays_read.relf +548a79cd3199b0f70599f61176ed7cf3 correct/basic_arrays_read/gcc/a.out +e792a0c493eae8e834699f96cae11a5a correct/basic_arrays_read/gcc/basic_arrays_read.adt +b04fa20ce4855b86e0f200eee67bd827 correct/basic_arrays_read/gcc/basic_arrays_read.bir +73bd9f99b70b4668a6e85edc5b8d1f60 correct/basic_arrays_read/gcc/basic_arrays_read.gts +4b6469e0e806683ae4ed52b2aa470a02 correct/basic_arrays_read/gcc/basic_arrays_read.relf +2ec3ea4df676e55fc3672a90a86e73a1 correct/basic_arrays_read/gcc_pic/a.out +7d47f5a795fc25fd0567f2e477afae9a correct/basic_arrays_read/gcc_pic/basic_arrays_read.adt +e9a41fec788800eb7ef843a68290e7fd correct/basic_arrays_read/gcc_pic/basic_arrays_read.bir +6e01dae302ed9a7e49cdc58f631e080b correct/basic_arrays_read/gcc_pic/basic_arrays_read.gts +abab84b9ba2cfc7c3cde55a19e97745e correct/basic_arrays_read/gcc_pic/basic_arrays_read.relf +2a8b67b90c8c9dcf60e0f29b1ef34a98 correct/basic_arrays_write/clang/a.out +030f4c04a4973021eb20dfcb8a7b3010 correct/basic_arrays_write/clang/basic_arrays_write.adt +f37cd13705ac5181cf9df434b5273448 correct/basic_arrays_write/clang/basic_arrays_write.bir +b8a392f80775b06aefb0be3450c01bdf correct/basic_arrays_write/clang/basic_arrays_write.gts +1c587cc635e6a20924302ae7ee743792 correct/basic_arrays_write/clang/basic_arrays_write.relf +5710688e753221ae0ff83b1913cb8fcc correct/basic_arrays_write/clang_O2/a.out +e39a3b6e782d3aee96224850344f38a6 correct/basic_arrays_write/clang_O2/basic_arrays_write.adt +de60e0948adef7af01c7a1e877b22940 correct/basic_arrays_write/clang_O2/basic_arrays_write.bir +4efcceb01f56a465b75a993e977e9181 correct/basic_arrays_write/clang_O2/basic_arrays_write.gts +b7d9560ce26856e8f4c212aae658d55e correct/basic_arrays_write/clang_O2/basic_arrays_write.relf +75c34632b47c4036e93b11aab69e0ccb correct/basic_arrays_write/clang_pic/a.out +d9ae2a8663bc7444360b966ffe8ee3f3 correct/basic_arrays_write/clang_pic/basic_arrays_write.adt +0cff015d98c9b42206035ddcfaee0efa correct/basic_arrays_write/clang_pic/basic_arrays_write.bir +86002c84d07ff1fe22b98f7088ef5ef6 correct/basic_arrays_write/clang_pic/basic_arrays_write.gts +fdd1c48d023e34a57a328c2a68f7b0c5 correct/basic_arrays_write/clang_pic/basic_arrays_write.relf +6317081fdd9d72c32fcf6b6e2706c7d7 correct/basic_arrays_write/gcc/a.out +a6cba4b0ff6064958f56d895b9885fd6 correct/basic_arrays_write/gcc/basic_arrays_write.adt +1be5e696de06aff4e1109d1b21d8bdd4 correct/basic_arrays_write/gcc/basic_arrays_write.bir +7678763dd986b09b34cdd711b29198a0 correct/basic_arrays_write/gcc/basic_arrays_write.gts +dc0588f4fc8b588b8d5bf288c79c6062 correct/basic_arrays_write/gcc/basic_arrays_write.relf +ab59da2591b9127e5ad7fcf704a42a5e correct/basic_arrays_write/gcc_O2/a.out +31bfb523d38a99c0a98adf7509a81594 correct/basic_arrays_write/gcc_O2/basic_arrays_write.adt +90bf1f6cb7cd67c3c9efb07a104f81d3 correct/basic_arrays_write/gcc_O2/basic_arrays_write.bir +83d9d8ce03099e86fa4fe3d1bd9e02c9 correct/basic_arrays_write/gcc_O2/basic_arrays_write.gts +b0464b80b14ba1000b3ef8960da1fce1 correct/basic_arrays_write/gcc_O2/basic_arrays_write.relf +d170e2f7a82967edd19e0595dfd44674 correct/basic_arrays_write/gcc_pic/a.out +f1c897b3dc53805fa7f9c1fdb38d28b1 correct/basic_arrays_write/gcc_pic/basic_arrays_write.adt +2be63132251bd15af03299e548f001d6 correct/basic_arrays_write/gcc_pic/basic_arrays_write.bir +fc86f7f1115f61fc2c113e82b8d2ac4c correct/basic_arrays_write/gcc_pic/basic_arrays_write.gts +73c16396cf7a22fa6c2b04f59ffade19 correct/basic_arrays_write/gcc_pic/basic_arrays_write.relf +83051939b2d0d31609916229d20ca32d correct/basic_assign_assign/clang/a.out +0638d1b55b0edda1de4194c69456c306 correct/basic_assign_assign/clang/basic_assign_assign.adt +02e5cf098d91b55c6cc5c2425b1aa7fd correct/basic_assign_assign/clang/basic_assign_assign.bir +0167b0a70490ffd2d5eb184b702c7f02 correct/basic_assign_assign/clang/basic_assign_assign.gts +2115105a2422276d79c45e44922105a9 correct/basic_assign_assign/clang/basic_assign_assign.relf +0a0cc6690d5c82e57ee4b7d04eb85d7d correct/basic_assign_assign/clang_pic/a.out +24f0232df0c5795bef61815d2cc96044 correct/basic_assign_assign/clang_pic/basic_assign_assign.adt +1d9a23e3e845875c7fef596f46e4ebd2 correct/basic_assign_assign/clang_pic/basic_assign_assign.bir +902c85e44f0d9c5d295a5d9d0f049d2c correct/basic_assign_assign/clang_pic/basic_assign_assign.gts +20b786cd526498091af606cc1012b2a5 correct/basic_assign_assign/clang_pic/basic_assign_assign.relf +9ce50a943bcd29e62b70c6105bb8a145 correct/basic_assign_assign/gcc/a.out +21c778cd13b55e5c03689c68d2c6bb71 correct/basic_assign_assign/gcc/basic_assign_assign.adt +91705df2a7fd53ece382c0d839adf2e0 correct/basic_assign_assign/gcc/basic_assign_assign.bir +5d72404421184f9aee15ace9ebdce84d correct/basic_assign_assign/gcc/basic_assign_assign.gts +ae53fb220db05dabf2111b8514490bfb correct/basic_assign_assign/gcc/basic_assign_assign.relf +d9aaa09b9a57f2d472c7d927ca08bdb6 correct/basic_assign_assign/gcc_O2/a.out +f4dfc7c5d1ea7ac276528d072905102b correct/basic_assign_assign/gcc_O2/basic_assign_assign.adt +760aefd7dd022ff0e224a215f42ec341 correct/basic_assign_assign/gcc_O2/basic_assign_assign.bir +338d03959bb10fc3823f85430d6fa74d correct/basic_assign_assign/gcc_O2/basic_assign_assign.gts +505d4900d5cd56dba8350c745faba1b2 correct/basic_assign_assign/gcc_O2/basic_assign_assign.relf +492379d6d0802469baa0f9dbe330b788 correct/basic_assign_assign/gcc_pic/a.out +7bc66266c5d04890770a0b991428522d correct/basic_assign_assign/gcc_pic/basic_assign_assign.adt +9142ce501cb318c6e656992234b04cde correct/basic_assign_assign/gcc_pic/basic_assign_assign.bir +f0d82f47de7107cc3682fc9e826ffe97 correct/basic_assign_assign/gcc_pic/basic_assign_assign.gts +f1052c3cc21d4119a9ac0bce9a0b0834 correct/basic_assign_assign/gcc_pic/basic_assign_assign.relf +e1ddf17ab5db9938454a708df55df786 correct/basicassign_gamma0/clang/a.out +ca1b1d4c1afb4342b483097953176141 correct/basicassign_gamma0/clang/basicassign_gamma0.adt +34cc8f7c086dafd40d44401269dfd76e correct/basicassign_gamma0/clang/basicassign_gamma0.bir +ba51e09c407dc9fb899862c97cdad0c6 correct/basicassign_gamma0/clang/basicassign_gamma0.gts +516a7299762e571d11fb2f4dd7b91bb1 correct/basicassign_gamma0/clang/basicassign_gamma0.relf +27f7f90fda216cfc132a0aed55585e2f correct/basicassign_gamma0/clang_pic/a.out +bafc82a99dfdca987e9185a9267883e3 correct/basicassign_gamma0/clang_pic/basicassign_gamma0.adt +162532db700a646eda219bd2c4e3bf71 correct/basicassign_gamma0/clang_pic/basicassign_gamma0.bir +2b7cc96e42497287cfdab7464b64a7c0 correct/basicassign_gamma0/clang_pic/basicassign_gamma0.gts +b82caa87f7018df715f91e0a5fcf8b9a correct/basicassign_gamma0/clang_pic/basicassign_gamma0.relf +8cd9e7caefb776a389162acd822791cb correct/basicassign_gamma0/gcc/a.out +8947cb6741460c92df609096d8adc3af correct/basicassign_gamma0/gcc/basicassign_gamma0.adt +eaa8193e4131db205c5495eb693623fb correct/basicassign_gamma0/gcc/basicassign_gamma0.bir +f52c810db5ef033604988e67e1ae73aa correct/basicassign_gamma0/gcc/basicassign_gamma0.gts +b3665480581b3a5cc330df0c85091898 correct/basicassign_gamma0/gcc/basicassign_gamma0.relf +1ea15a09fbcadd12aa90e4679b8247c5 correct/basicassign_gamma0/gcc_O2/a.out +8e9db8464966d8d9147063aebe404de5 correct/basicassign_gamma0/gcc_O2/basicassign_gamma0.adt +5b738b16cfdceca374e7ec5d1dc45d5a correct/basicassign_gamma0/gcc_O2/basicassign_gamma0.bir +d6b929272e953c8a9635893cb6fe2182 correct/basicassign_gamma0/gcc_O2/basicassign_gamma0.gts +0d932d85183d107a26fe8d20ba18689a correct/basicassign_gamma0/gcc_O2/basicassign_gamma0.relf +1a3f6d8773791458657e6ebbfd2a4f15 correct/basicassign_gamma0/gcc_pic/a.out +fed86b032abdc4c6e35b13d97adac829 correct/basicassign_gamma0/gcc_pic/basicassign_gamma0.adt +d9cd96e6d6dff39150aa6b067727d83a correct/basicassign_gamma0/gcc_pic/basicassign_gamma0.bir +4f6a7361bd26c0e37adcf7446727f111 correct/basicassign_gamma0/gcc_pic/basicassign_gamma0.gts +3ac7e9e99e214fa1e918454bf89623ca correct/basicassign_gamma0/gcc_pic/basicassign_gamma0.relf +417507352bcc01af22daf2472ca62740 correct/basic_assign_increment/clang/a.out +7c030f0ad5ee0f32bfcc7ed5156ca122 correct/basic_assign_increment/clang/basic_assign_increment.adt +b08cf59200250a2fda02331efafb9803 correct/basic_assign_increment/clang/basic_assign_increment.bir +0fa2a96f3e77a5c73596b582d105f0f0 correct/basic_assign_increment/clang/basic_assign_increment.gts +c8b5c4581bb4fa1010112858b34510e8 correct/basic_assign_increment/clang/basic_assign_increment.relf +f0cb726eb4c0b6e6cf48e3aa3a00077f correct/basic_assign_increment/clang_pic/a.out +0d1c47af5e4f3d5c132074d41013b67e correct/basic_assign_increment/clang_pic/basic_assign_increment.adt +f78b949c3074398d7d8c445c7528c412 correct/basic_assign_increment/clang_pic/basic_assign_increment.bir +e46ea09301e2480667d359982985c3a2 correct/basic_assign_increment/clang_pic/basic_assign_increment.gts +2f88c58226c36a2df0a3993e8048088d correct/basic_assign_increment/clang_pic/basic_assign_increment.relf +05efe4bafba786fc693ac47f90aa1d28 correct/basic_assign_increment/gcc/a.out +90e0f81a40b263241e2b7f02131e8ada correct/basic_assign_increment/gcc/basic_assign_increment.adt +374bac841225672d9ff8808445fa4708 correct/basic_assign_increment/gcc/basic_assign_increment.bir +9391e26df1ce475f33563e9d0505a0fa correct/basic_assign_increment/gcc/basic_assign_increment.gts +192f1dd4922f64f988b0e5247898fbd4 correct/basic_assign_increment/gcc/basic_assign_increment.relf +9d4663e5bcee42194c7450c207b0b21e correct/basic_assign_increment/gcc_O2/a.out +d06fd4115a2b280219d9a54d8940c6ad correct/basic_assign_increment/gcc_O2/basic_assign_increment.adt +1b93be41cdbc28d35c007c94bd65d541 correct/basic_assign_increment/gcc_O2/basic_assign_increment.bir +42e728c007842487f4fa54a669766d7d correct/basic_assign_increment/gcc_O2/basic_assign_increment.gts +7f0fd5ab8f88873371cceed65eeb096c correct/basic_assign_increment/gcc_O2/basic_assign_increment.relf +4fe37778650b1268c395baaddb0a20e9 correct/basic_assign_increment/gcc_pic/a.out +d08d1e71be26a641c9197d5f8abe11c1 correct/basic_assign_increment/gcc_pic/basic_assign_increment.adt +6067b5fe1c73c5309a32c1fc09333d00 correct/basic_assign_increment/gcc_pic/basic_assign_increment.bir +176a32c73cf57d59b275134f3a265c41 correct/basic_assign_increment/gcc_pic/basic_assign_increment.gts +ba7ac4727a588e65e9cced10bcc235fc correct/basic_assign_increment/gcc_pic/basic_assign_increment.relf +0fc95e00d0f086efe24f66c1a3c2297d correct/basicfree/clang/a.out +87e13b3705640f7c13be45c10e333b56 correct/basicfree/clang/basicfree.adt +f6e4b1b01080caa61c93a9d4483620f9 correct/basicfree/clang/basicfree.bir +9edd739a48b0ffd65256f43597dcb442 correct/basicfree/clang/basicfree.gts +5700751e3e083f728612aa4f38950b12 correct/basicfree/clang/basicfree.relf +0c95803ee06bb1d4d3061efe6351ab24 correct/basicfree/gcc/a.out +741c805dd5ccc08e166ae0e8da49b362 correct/basicfree/gcc/basicfree.adt +25498064533ea90730257f0a3318e902 correct/basicfree/gcc/basicfree.bir +5abf95cb2343fcc9f9c682d43fa3c279 correct/basicfree/gcc/basicfree.gts +dbb97795cacdd061f820cfd000975427 correct/basicfree/gcc/basicfree.relf +f986da266b89f4f97cc2c1248d904493 correct/basic_function_call_caller/clang/a.out +134280ea3158cba03f6733d96187327d correct/basic_function_call_caller/clang/basic_function_call_caller.adt +4a32baad81e19b349faecfbf88bad9d8 correct/basic_function_call_caller/clang/basic_function_call_caller.bir +97683f8cfe59afec926fe365fa4256de correct/basic_function_call_caller/clang/basic_function_call_caller.gts +dedca6fa5c785affc06767b664cdfe29 correct/basic_function_call_caller/clang/basic_function_call_caller.relf +52cb3080163cb2059a838e67c28e7971 correct/basic_function_call_caller/clang_O2/a.out +c4b34592f87c4d35239afb348061883b correct/basic_function_call_caller/clang_O2/basic_function_call_caller.adt +aec794db8655d25a671593f77d4ab066 correct/basic_function_call_caller/clang_O2/basic_function_call_caller.bir +1070b97a9c97de70576ce2cec8267b66 correct/basic_function_call_caller/clang_O2/basic_function_call_caller.gts +1a1118206a35a0fa716f72610cf7bb3f correct/basic_function_call_caller/clang_O2/basic_function_call_caller.relf +fea15c31d44f4b357a7d72d90b821380 correct/basic_function_call_caller/clang_pic/a.out +4cce2513f5463a3b5cd1da2cce4e2127 correct/basic_function_call_caller/clang_pic/basic_function_call_caller.adt +f48b225f8a3e33e4fffc1c98aadd8df1 correct/basic_function_call_caller/clang_pic/basic_function_call_caller.bir +f0b1ef44db5d9f96e90824c495421b01 correct/basic_function_call_caller/clang_pic/basic_function_call_caller.gts +e47ef7dc85531399fc65a68a8000697b correct/basic_function_call_caller/clang_pic/basic_function_call_caller.relf +99fed675a6fbbe30b1061cf57857b310 correct/basic_function_call_caller/gcc/a.out +f3942721a84b683bca9bf31594efe4ec correct/basic_function_call_caller/gcc/basic_function_call_caller.adt +76a9abde783028cd71a527a4bf2880fc correct/basic_function_call_caller/gcc/basic_function_call_caller.bir +b6a8d1beaff2d0aa7e2b34a3587c4d2f correct/basic_function_call_caller/gcc/basic_function_call_caller.gts +53f1efbb7edbd7622ca23b1d70425f8b correct/basic_function_call_caller/gcc/basic_function_call_caller.relf +b06290682031800c866dd37d05a4c3fe correct/basic_function_call_caller/gcc_O2/a.out +7f511bd2f491047506152469a2109063 correct/basic_function_call_caller/gcc_O2/basic_function_call_caller.adt +d6871a547547bd8a874a5e4aee2760a2 correct/basic_function_call_caller/gcc_O2/basic_function_call_caller.bir +9a7d0723d5c1d9d18cc17121acd4b715 correct/basic_function_call_caller/gcc_O2/basic_function_call_caller.gts +3a68061cf59fe702b19f5171af5ad1be correct/basic_function_call_caller/gcc_O2/basic_function_call_caller.relf +cd3c1283bb746a6ca2f4d88b133bc6b9 correct/basic_function_call_caller/gcc_pic/a.out +30d1d98a4d5e9d34baf041399b84e394 correct/basic_function_call_caller/gcc_pic/basic_function_call_caller.adt +279a163e6dab74594fbad3ca4557de61 correct/basic_function_call_caller/gcc_pic/basic_function_call_caller.bir +3deea10b137ffb9057afb3aa8e69d6e2 correct/basic_function_call_caller/gcc_pic/basic_function_call_caller.gts +8825dd50137e6cd1bc6597fd00584c59 correct/basic_function_call_caller/gcc_pic/basic_function_call_caller.relf +b2bc8dec01632c68c5dddee07e5df94c correct/basic_function_call_reader/clang/a.out +0b59e3afbb12b421081c3648c8df6569 correct/basic_function_call_reader/clang/basic_function_call_reader.adt +01d0ada39065828c9033ab4b863713cd correct/basic_function_call_reader/clang/basic_function_call_reader.bir +1ae383ffba6177e9f3e58e779e47d9b5 correct/basic_function_call_reader/clang/basic_function_call_reader.gts +8a702520e31dda8233ee01d6dd263dca correct/basic_function_call_reader/clang/basic_function_call_reader.relf +7d5e4767e19cbba559cb01138804ef62 correct/basic_function_call_reader/clang_O2/a.out +0c3e09517b497a09d56acb18309481b2 correct/basic_function_call_reader/clang_O2/basic_function_call_reader.adt +2b135823683205d45265257a2f1b105a correct/basic_function_call_reader/clang_O2/basic_function_call_reader.bir +450ff836e1a0b065d1fa38c3fa7ba7e7 correct/basic_function_call_reader/clang_O2/basic_function_call_reader.gts +9549f5ed3e0320c04f5ba5868b3fb8eb correct/basic_function_call_reader/clang_O2/basic_function_call_reader.relf +4db0a74de9e449b7046a6d89cc01b0e6 correct/basic_function_call_reader/clang_pic/a.out +8f1daba1acbeb4c0cc6f4f700ffba974 correct/basic_function_call_reader/clang_pic/basic_function_call_reader.adt +4fd2434f2ae974812122e2032defb3ce correct/basic_function_call_reader/clang_pic/basic_function_call_reader.bir +b53353f81b5496c3cf903c96b1c45fb4 correct/basic_function_call_reader/clang_pic/basic_function_call_reader.gts +41e68e66a39df1de8717305828c52652 correct/basic_function_call_reader/clang_pic/basic_function_call_reader.relf +1f638aebcc517c0b98b8559f2fc03078 correct/basic_function_call_reader/gcc/a.out +52198c0749050dfb33896372fa46d481 correct/basic_function_call_reader/gcc/basic_function_call_reader.adt +a978ea655685acc50e30a746d0376a85 correct/basic_function_call_reader/gcc/basic_function_call_reader.bir +68c145c58c9e5dffaabe578a145a4277 correct/basic_function_call_reader/gcc/basic_function_call_reader.gts +aeee030cf64b7f622d13dc3048e7c426 correct/basic_function_call_reader/gcc/basic_function_call_reader.relf +710747f0676836aab9d89f1527d4da1c correct/basic_function_call_reader/gcc_O2/a.out +ce9f36fb68503d9e00f022e77a31f728 correct/basic_function_call_reader/gcc_O2/basic_function_call_reader.adt +35a5b1648c86851725f8aca7520e49a2 correct/basic_function_call_reader/gcc_O2/basic_function_call_reader.bir +c9b21c43f75f8d13e9bdca5a3488e5ae correct/basic_function_call_reader/gcc_O2/basic_function_call_reader.gts +6321ee961d64f0e307d540723701e25a correct/basic_function_call_reader/gcc_O2/basic_function_call_reader.relf +11fac357ac618b795ec652ffcc3df152 correct/basic_function_call_reader/gcc_pic/a.out +97af01cd42b2830e9e8bf5c053daee06 correct/basic_function_call_reader/gcc_pic/basic_function_call_reader.adt +0fe45c81a0941066c84a575f8c9bd3ee correct/basic_function_call_reader/gcc_pic/basic_function_call_reader.bir +59a49d62025092c63a064723376046da correct/basic_function_call_reader/gcc_pic/basic_function_call_reader.gts +490fd4378bb7a712a689f2628bdc2fae correct/basic_function_call_reader/gcc_pic/basic_function_call_reader.relf +b187d8ad4b25c973912deef04a7e34dd correct/basic_lock_read/clang/a.out +80a8a80489b033ed8aa98c268f3316b4 correct/basic_lock_read/clang/basic_lock_read.adt +73476c60ea74844f7658648d0e86985f correct/basic_lock_read/clang/basic_lock_read.bir +b44743f1c1825b06e455006eaeae827a correct/basic_lock_read/clang/basic_lock_read.gts +cb0c86f5f56f442cd79f48b23176c9e3 correct/basic_lock_read/clang/basic_lock_read.relf +8724691538c910920bdc73fe87c271f3 correct/basic_lock_read/clang_O2/a.out +5d01cc1189567147c1b8798ce237eb7f correct/basic_lock_read/clang_O2/basic_lock_read.adt +b1c81d7c6ee20d1af484ae66422141eb correct/basic_lock_read/clang_O2/basic_lock_read.bir +aa4dfa20348db9d1950366fe3045374b correct/basic_lock_read/clang_O2/basic_lock_read.gts +9aa47e503756485245a1fa8729fa3136 correct/basic_lock_read/clang_O2/basic_lock_read.relf +5e570f65ed4730fd2fcfb13a9250982f correct/basic_lock_read/clang_pic/a.out +66d11ed1662178f1a1c03ce885ecd34b correct/basic_lock_read/clang_pic/basic_lock_read.adt +a47d0f769b8812e7228c3528e467662f correct/basic_lock_read/clang_pic/basic_lock_read.bir +5c129d299008cb747b40f51a9b7c6df2 correct/basic_lock_read/clang_pic/basic_lock_read.gts +c031a79905199c70c1298a8cde4b2d01 correct/basic_lock_read/clang_pic/basic_lock_read.relf +83406037aa5c36ba4e19c924fdd799c3 correct/basic_lock_read/gcc/a.out +92dce26b6b62863e2ddcd55c35aa3237 correct/basic_lock_read/gcc/basic_lock_read.adt +848e811e46315819da5ce0e1ea79c3c3 correct/basic_lock_read/gcc/basic_lock_read.bir +343088d5f1f06e2615ad4c10798786e7 correct/basic_lock_read/gcc/basic_lock_read.gts +b01350eb173dfdf8c55ce385c500d858 correct/basic_lock_read/gcc/basic_lock_read.relf +ff048f0e6bc42643df0f97bde0587cb9 correct/basic_lock_read/gcc_O2/a.out +8b1b27ce05f588435141ea70adffab7d correct/basic_lock_read/gcc_O2/basic_lock_read.adt +7f583563a660435c5f0f739a94aaf2e0 correct/basic_lock_read/gcc_O2/basic_lock_read.bir +f46cf18890fcbd75eb1359bc597551fd correct/basic_lock_read/gcc_O2/basic_lock_read.gts +568e4f0c0dd1e02aac06724676cc74a6 correct/basic_lock_read/gcc_O2/basic_lock_read.relf +6bf75b77372c646d413fc02ecdafc1b3 correct/basic_lock_read/gcc_pic/a.out +4d6eaa98c04b5ac5a1c986849242f44a correct/basic_lock_read/gcc_pic/basic_lock_read.adt +973f95c7b8a7b7a3dc616b1282c3b393 correct/basic_lock_read/gcc_pic/basic_lock_read.bir +f2975589649ccfa2f01fd36338a98663 correct/basic_lock_read/gcc_pic/basic_lock_read.gts +0d23b4618c3e70017adcba0da6063189 correct/basic_lock_read/gcc_pic/basic_lock_read.relf +d74c9ac32e479cb0afc943e78e6f6389 correct/basic_lock_security_read/clang/a.out +260053fcaf9ed99912140b43209970c0 correct/basic_lock_security_read/clang/basic_lock_security_read.adt +93904a6d422648de7cf4c75b2fc7cb4f correct/basic_lock_security_read/clang/basic_lock_security_read.bir +76de1ddc37d46ed8bcad96fb09b2e743 correct/basic_lock_security_read/clang/basic_lock_security_read.gts +2774051854f8849f695ffa22d71b844a correct/basic_lock_security_read/clang/basic_lock_security_read.relf +94a3a048251cee19de3605d47c526ae8 correct/basic_lock_security_read/clang_O2/a.out +cbe29e704e2e15af12c09372f158b022 correct/basic_lock_security_read/clang_O2/basic_lock_security_read.adt +7c35fdb8ed5a6b1f96c131c6d6d8f2d2 correct/basic_lock_security_read/clang_O2/basic_lock_security_read.bir +1cf4a6e6337ef1b8b1e94612f295a259 correct/basic_lock_security_read/clang_O2/basic_lock_security_read.gts +2dd41cf4c31dda5917286c0f301ece66 correct/basic_lock_security_read/clang_O2/basic_lock_security_read.relf +617623afa5690292f5ddf6e05dbe3578 correct/basic_lock_security_read/clang_pic/a.out +9c756835c138e65379029945208c78b5 correct/basic_lock_security_read/clang_pic/basic_lock_security_read.adt +f3380363ad28d969c9f1366c9740c003 correct/basic_lock_security_read/clang_pic/basic_lock_security_read.bir +839c3aa45738bbd88ef0ddc79e6a6507 correct/basic_lock_security_read/clang_pic/basic_lock_security_read.gts +6a49eb2a7b16160cf7a1eab2143cb562 correct/basic_lock_security_read/clang_pic/basic_lock_security_read.relf +f2410f45fc08d7f2b68c5c7074a39399 correct/basic_lock_security_read/gcc/a.out +1c97c58812498563f85409b9c10b23c1 correct/basic_lock_security_read/gcc/basic_lock_security_read.adt +cbd0b7e3c2f6cc299ca019bde95ff258 correct/basic_lock_security_read/gcc/basic_lock_security_read.bir +acbade8063f908cfd4f5f24006d390c0 correct/basic_lock_security_read/gcc/basic_lock_security_read.gts +4123d11b5f1429b57df6bba9699f346b correct/basic_lock_security_read/gcc/basic_lock_security_read.relf +56befcda57dc15514187a8175fe944bd correct/basic_lock_security_read/gcc_O2/a.out +7ddab046b395dadedbad84e5b43abfb8 correct/basic_lock_security_read/gcc_O2/basic_lock_security_read.adt +469baaf82342696a70b3fb59617285c8 correct/basic_lock_security_read/gcc_O2/basic_lock_security_read.bir +61e7bd408d464652020f332b4ba775d1 correct/basic_lock_security_read/gcc_O2/basic_lock_security_read.gts +1bbc4c3f0ab4255e94ba6ff7ea5569a0 correct/basic_lock_security_read/gcc_O2/basic_lock_security_read.relf +0747e543be3e71767f295987e3654ea1 correct/basic_lock_security_read/gcc_pic/a.out +fcafab2c4c0b6c9aad5c7c010aa66ffd correct/basic_lock_security_read/gcc_pic/basic_lock_security_read.adt +076871327686af633a87e379301af310 correct/basic_lock_security_read/gcc_pic/basic_lock_security_read.bir +4df93c221d31a510ecc23bdde5e18399 correct/basic_lock_security_read/gcc_pic/basic_lock_security_read.gts +2c862f75d5e7783e0e4082d4c8cab0ff correct/basic_lock_security_read/gcc_pic/basic_lock_security_read.relf +0c585416a6afce90067c53908e5ac6f3 correct/basic_lock_security_write/clang/a.out +7dc85cdcf7a3532d6fd1584b70b80b4d correct/basic_lock_security_write/clang/basic_lock_security_write.adt +2adb23dec328ae072c2ead938effcb7c correct/basic_lock_security_write/clang/basic_lock_security_write.bir +fc48e41083afb6d6c409af32975c5d72 correct/basic_lock_security_write/clang/basic_lock_security_write.gts +530360d0126baab6f6eca47b4a6654f3 correct/basic_lock_security_write/clang/basic_lock_security_write.relf +ca86f5bb57b1790e9110184f223047f8 correct/basic_lock_security_write/clang_O2/a.out +82bec542dbb0808dfca0a65ca067254c correct/basic_lock_security_write/clang_O2/basic_lock_security_write.adt +8ee5bc75ae370ae7e18b1088eb84ac74 correct/basic_lock_security_write/clang_O2/basic_lock_security_write.bir +6d2a46c21aa26d0dc1bffedd2e568b76 correct/basic_lock_security_write/clang_O2/basic_lock_security_write.gts +e86643fc01c48f9e0f44c85a7b63f032 correct/basic_lock_security_write/clang_O2/basic_lock_security_write.relf +dad7590f0e0ef32d6316805cb44ee332 correct/basic_lock_security_write/clang_pic/a.out +e0b1bd62613d848375ff41d38e451ed1 correct/basic_lock_security_write/clang_pic/basic_lock_security_write.adt +062c49b5e32ef50e70b7b05021fd945b correct/basic_lock_security_write/clang_pic/basic_lock_security_write.bir +c691d963ba80827609779a739a4a7cb5 correct/basic_lock_security_write/clang_pic/basic_lock_security_write.gts +5edffb7ca3ee13b7f17d42f40c59ba4f correct/basic_lock_security_write/clang_pic/basic_lock_security_write.relf +193a62aba7e443e7a8a00cab7639b41d correct/basic_lock_security_write/gcc/a.out +a1e767918edb66de3c4db4cd5e5f605d correct/basic_lock_security_write/gcc/basic_lock_security_write.adt +63a0a8141dee1947ad8d53197081db29 correct/basic_lock_security_write/gcc/basic_lock_security_write.bir +ae0701a56d3153dc27da9c917c0bf2fa correct/basic_lock_security_write/gcc/basic_lock_security_write.gts +cfb584873f90f389be14e870deb5a463 correct/basic_lock_security_write/gcc/basic_lock_security_write.relf +5c9b62f79a399bcee0bfdd4de6c43337 correct/basic_lock_security_write/gcc_O2/a.out +ad27b94ec1e011cb078f2ca09de9626e correct/basic_lock_security_write/gcc_O2/basic_lock_security_write.adt +b6cea1469cdcd11ad998065e4c2ba98a correct/basic_lock_security_write/gcc_O2/basic_lock_security_write.bir +101335790799fa174e2e188ed01b8961 correct/basic_lock_security_write/gcc_O2/basic_lock_security_write.gts +cf503d4e41900c9b39928ea893c4ef53 correct/basic_lock_security_write/gcc_O2/basic_lock_security_write.relf +c4b5b579bf78cfe91ad21ecc3bbaa421 correct/basic_lock_security_write/gcc_pic/a.out +9648c1a04b1d200d5397454f3b8dcbd8 correct/basic_lock_security_write/gcc_pic/basic_lock_security_write.adt +cdc19c9c5b06c579181953960c016006 correct/basic_lock_security_write/gcc_pic/basic_lock_security_write.bir +9e7fded4e993dbeea630c6ef3757d868 correct/basic_lock_security_write/gcc_pic/basic_lock_security_write.gts +2590d377f7713b809fbbf0046939b876 correct/basic_lock_security_write/gcc_pic/basic_lock_security_write.relf +f12a4bfe6bed3769f898573c89e377ee correct/basic_lock_unlock/clang/a.out +9bad9897d0a48abebb2ff3973ea3b263 correct/basic_lock_unlock/clang/basic_lock_unlock.adt +b56e5fd7e1f98828a1ed2da6726297b1 correct/basic_lock_unlock/clang/basic_lock_unlock.bir +c6556cd323c9bef5f817cd5ed1c36a04 correct/basic_lock_unlock/clang/basic_lock_unlock.gts +c4117b6dc09136267fbed87a1ef796c6 correct/basic_lock_unlock/clang/basic_lock_unlock.relf +750f81b72bd1458cb07245dd17e5b27b correct/basic_lock_unlock/clang_pic/a.out +74b0a119bffe2c98fd623dc66dda4f0d correct/basic_lock_unlock/clang_pic/basic_lock_unlock.adt +fd01829bf3f56132990a0c9716154dc7 correct/basic_lock_unlock/clang_pic/basic_lock_unlock.bir +874387ccc20d00da87a5c10dfcc87133 correct/basic_lock_unlock/clang_pic/basic_lock_unlock.gts +847e9df64778f02808c1ec010427980e correct/basic_lock_unlock/clang_pic/basic_lock_unlock.relf +6046324efa406c5a76aa9d388ab3ee1e correct/basic_lock_unlock/gcc/a.out +22a6374316254db655e242090da34826 correct/basic_lock_unlock/gcc/basic_lock_unlock.adt +87a9f48f99cb05445aa0118b9e15b6cc correct/basic_lock_unlock/gcc/basic_lock_unlock.bir +53d3d050e6792573b7b570049addf608 correct/basic_lock_unlock/gcc/basic_lock_unlock.gts +20a92ed77f4f1e543576b4e0941b4a4d correct/basic_lock_unlock/gcc/basic_lock_unlock.relf +7baf1693a7562b5b186cec29bca1d34a correct/basic_lock_unlock/gcc_O2/a.out +47e1e9100bf81d020cb318b9946a6c0f correct/basic_lock_unlock/gcc_O2/basic_lock_unlock.adt +1c15d5edddd717d95ab843b4383e220e correct/basic_lock_unlock/gcc_O2/basic_lock_unlock.bir +43e4372c528389d5befb355377da2690 correct/basic_lock_unlock/gcc_O2/basic_lock_unlock.gts +cdc291c2f4a01bdcef3f45b12ad7ad03 correct/basic_lock_unlock/gcc_O2/basic_lock_unlock.relf +c287ab3102c699d3b0e9c2b209d2c7f4 correct/basic_lock_unlock/gcc_pic/a.out +2918e3138d9721fce3cda2b1da2f09b9 correct/basic_lock_unlock/gcc_pic/basic_lock_unlock.adt +463c0a638be73d9487641fea8bf1deeb correct/basic_lock_unlock/gcc_pic/basic_lock_unlock.bir +b79df0ce75ddc4e623a699e9dc7daff3 correct/basic_lock_unlock/gcc_pic/basic_lock_unlock.gts +5898cf5818cbc7180268ffb086bf0378 correct/basic_lock_unlock/gcc_pic/basic_lock_unlock.relf +599aa766bbae5c5476350369a953d045 correct/basic_loop_assign/clang/a.out +4a14e42f7d41ef53d98570c43324db4b correct/basic_loop_assign/clang/basic_loop_assign.adt +4660ad3f86fab6ee9148b2a7b8f87672 correct/basic_loop_assign/clang/basic_loop_assign.bir +98c16039dc78465233512616df1a1e05 correct/basic_loop_assign/clang/basic_loop_assign.gts +c673dcfc0a126de47387f9c24dcb7faa correct/basic_loop_assign/clang/basic_loop_assign.relf +b1f1811e3ffe325399df4f15c6fcac3d correct/basic_loop_assign/clang_pic/a.out +0cc546201d0dc7ff98ddebf115ea1658 correct/basic_loop_assign/clang_pic/basic_loop_assign.adt +4fca98964c758fa21321a5137828c0f8 correct/basic_loop_assign/clang_pic/basic_loop_assign.bir +8f53703370046c7d21156d3aad461ed5 correct/basic_loop_assign/clang_pic/basic_loop_assign.gts +b94dc044ebf626cbcd9695aae3159334 correct/basic_loop_assign/clang_pic/basic_loop_assign.relf +68c3032266a5fb63cb39793c29a5bd35 correct/basic_loop_assign/gcc/a.out +b385b96d304530a098a01c7281c3afd7 correct/basic_loop_assign/gcc/basic_loop_assign.adt +0fde082059a270494fd4954391a135b6 correct/basic_loop_assign/gcc/basic_loop_assign.bir +004b5c48ae3e62da68528f150e767826 correct/basic_loop_assign/gcc/basic_loop_assign.gts +f4152c33097293fe3682d02cf1e4de5e correct/basic_loop_assign/gcc/basic_loop_assign.relf +628e2b42987842d1c0b5324506efc024 correct/basic_loop_assign/gcc_O2/a.out +5b2054d17078e289cb058fd1b2e1399f correct/basic_loop_assign/gcc_O2/basic_loop_assign.adt +eea336cd6c1dc0db6b9e143d7615fd46 correct/basic_loop_assign/gcc_O2/basic_loop_assign.bir +64bd1532cb8ae595953d22189f953970 correct/basic_loop_assign/gcc_O2/basic_loop_assign.gts +f8b327bf113edfa42f41c1de25d12edc correct/basic_loop_assign/gcc_O2/basic_loop_assign.relf +9439b0a50a25eef86e6ac0c819de302c correct/basic_loop_assign/gcc_pic/a.out +d00b7eff8aaf81b2642ac0939c9dbf46 correct/basic_loop_assign/gcc_pic/basic_loop_assign.adt +8226efce2bda678ba2feb5dd619e4d6f correct/basic_loop_assign/gcc_pic/basic_loop_assign.bir +beadc3895ed7f71b38f9b722b7bbf447 correct/basic_loop_assign/gcc_pic/basic_loop_assign.gts +c3e03ee3c8a84d01352d3a310ff62de8 correct/basic_loop_assign/gcc_pic/basic_loop_assign.relf +20cbf70253486431426512451d5b9843 correct/basic_operation_evaluation/clang/a.out +6747020c8b6ba40ff2120284a4805e78 correct/basic_operation_evaluation/clang/basic_operation_evaluation.adt +6d7a0143c0032ece6c1df3cdf83a4d86 correct/basic_operation_evaluation/clang/basic_operation_evaluation.bir +3c9374ad2e073b16e852ee41dd959436 correct/basic_operation_evaluation/clang/basic_operation_evaluation.gts +1bc7843732b1f36acc3d91ee094f87ee correct/basic_operation_evaluation/clang/basic_operation_evaluation.relf +964648d9cfdbc6de86317398feb1faa1 correct/basic_operation_evaluation/gcc/a.out +c6f0a8a8595db28cc6916c99de222661 correct/basic_operation_evaluation/gcc/basic_operation_evaluation.adt +666637e4717587b51a2052b24c6a7a5b correct/basic_operation_evaluation/gcc/basic_operation_evaluation.bir +33ad199af856c8caf09ab102272c7e8e correct/basic_operation_evaluation/gcc/basic_operation_evaluation.gts +19bf7060f0976148af43bbfe2d17dbfa correct/basic_operation_evaluation/gcc/basic_operation_evaluation.relf +81cdd58e174df933b76251a90f1ce2c1 correct/basic_sec_policy_read/clang/a.out +31270b3c8c249e18c412ce9dba20233d correct/basic_sec_policy_read/clang/basic_sec_policy_read.adt +d6d283f664c7fae330d3758a306db568 correct/basic_sec_policy_read/clang/basic_sec_policy_read.bir +c3cc7b1278a4345bf6a018cf3c1d391a correct/basic_sec_policy_read/clang/basic_sec_policy_read.gts +48f9bef18f517681313e6f1166672395 correct/basic_sec_policy_read/clang/basic_sec_policy_read.relf +21c801ccfa936efe10b5967d624bad1c correct/basic_sec_policy_read/clang_O2/a.out +8c49cc8686de1d7cdf3598ac0fe14977 correct/basic_sec_policy_read/clang_O2/basic_sec_policy_read.adt +3995fe563889cb172824014afb4927cc correct/basic_sec_policy_read/clang_O2/basic_sec_policy_read.bir +83292e07cd983b8552d65a43d09fdeef correct/basic_sec_policy_read/clang_O2/basic_sec_policy_read.gts +9081b30b8fbf35666935c806a24ca881 correct/basic_sec_policy_read/clang_O2/basic_sec_policy_read.relf +da7c394f9b260b8af7cbcf86d02d74c3 correct/basic_sec_policy_read/clang_pic/a.out +5f51774ac98a9abe36116a859fb53145 correct/basic_sec_policy_read/clang_pic/basic_sec_policy_read.adt +67276e886c39fca50c00741fd4c063e0 correct/basic_sec_policy_read/clang_pic/basic_sec_policy_read.bir +da1d643c97c66dff0ae3b0efbef177d9 correct/basic_sec_policy_read/clang_pic/basic_sec_policy_read.gts +e8386d0a77a53906205074a36ba84a07 correct/basic_sec_policy_read/clang_pic/basic_sec_policy_read.relf +66a4fa57cfa4f599acebc854905c5c67 correct/basic_sec_policy_read/gcc/a.out +707dbb12904ed82b6b9646b4c884ca8a correct/basic_sec_policy_read/gcc/basic_sec_policy_read.adt +6b7656ac5234e83fdaee70c2830475c7 correct/basic_sec_policy_read/gcc/basic_sec_policy_read.bir +b6cdfd26d10d4fac8d180ea4f8ff984d correct/basic_sec_policy_read/gcc/basic_sec_policy_read.gts +9d32162f0c90b2786be35b2aaaaf6012 correct/basic_sec_policy_read/gcc/basic_sec_policy_read.relf +05edfdcea9b1f754cc85c513a993114d correct/basic_sec_policy_read/gcc_O2/a.out +5c579da29766b89237069e221fbc2247 correct/basic_sec_policy_read/gcc_O2/basic_sec_policy_read.adt +469baaf82342696a70b3fb59617285c8 correct/basic_sec_policy_read/gcc_O2/basic_sec_policy_read.bir +2db595e5a0e7cb49f3d987676e00ba07 correct/basic_sec_policy_read/gcc_O2/basic_sec_policy_read.gts +8ac9c301e203b4391c67146f6253c421 correct/basic_sec_policy_read/gcc_O2/basic_sec_policy_read.relf +4b43f7b6a324e533fa4cb65fcf4e8ccb correct/basic_sec_policy_read/gcc_pic/a.out +558a052675cb9dd314ea3409c7d081a1 correct/basic_sec_policy_read/gcc_pic/basic_sec_policy_read.adt +9748518b332b61a3a403a3180747eb57 correct/basic_sec_policy_read/gcc_pic/basic_sec_policy_read.bir +4f32849f44f143ce29c4e06b871dfacb correct/basic_sec_policy_read/gcc_pic/basic_sec_policy_read.gts +7269e9c372f35846ee435914433d2835 correct/basic_sec_policy_read/gcc_pic/basic_sec_policy_read.relf +175a05e629aad4ab9d46e99d88eed8a6 correct/basic_sec_policy_write/clang/a.out +08dc0bbee75ffd0f1d147199d166caff correct/basic_sec_policy_write/clang/basic_sec_policy_write.adt +8a10642145a1352f2a5d82acc268f8c0 correct/basic_sec_policy_write/clang/basic_sec_policy_write.bir +572c528e2c1d4bee5bc8de1c8f4cd5c3 correct/basic_sec_policy_write/clang/basic_sec_policy_write.gts +9097de1473f56225bd96d524aa5d0ff8 correct/basic_sec_policy_write/clang/basic_sec_policy_write.relf +e600f24d7acba0f08bb134db4f9d11f3 correct/basic_sec_policy_write/clang_O2/a.out +3b901c8eb8962909f6719adef5c3905e correct/basic_sec_policy_write/clang_O2/basic_sec_policy_write.adt +34cac1b3f82c19c11c5b8111a0af9708 correct/basic_sec_policy_write/clang_O2/basic_sec_policy_write.bir +8ca5aede49e996b0e0c541443c23cd0e correct/basic_sec_policy_write/clang_O2/basic_sec_policy_write.gts +1f7a313352f1ddc73e19851da824a298 correct/basic_sec_policy_write/clang_O2/basic_sec_policy_write.relf +b2d31c5837bc1990fdb457c3e969833a correct/basic_sec_policy_write/clang_pic/a.out +731145c9e3f3991d0d46fd5bce9dcaca correct/basic_sec_policy_write/clang_pic/basic_sec_policy_write.adt +be2269ed66e076fbf865e95ef56d6647 correct/basic_sec_policy_write/clang_pic/basic_sec_policy_write.bir +23e23191c5f643099292a798fd1a3e62 correct/basic_sec_policy_write/clang_pic/basic_sec_policy_write.gts +2db23a15c997ae99fdf5c16cfa58f4f1 correct/basic_sec_policy_write/clang_pic/basic_sec_policy_write.relf +7f32eccc4de65f8307217bcc7ed93fb3 correct/basic_sec_policy_write/gcc/a.out +6bad66db04bb76bbd29440812df744c0 correct/basic_sec_policy_write/gcc/basic_sec_policy_write.adt +4a2cb2561a73389bb1ef568e7e489b81 correct/basic_sec_policy_write/gcc/basic_sec_policy_write.bir +784f0b29f4e657c852289923c67efcd6 correct/basic_sec_policy_write/gcc/basic_sec_policy_write.gts +47e4cc9508d285951ff70eea224528c1 correct/basic_sec_policy_write/gcc/basic_sec_policy_write.relf +9384b2ac36b8266d8d45e984f2c30995 correct/basic_sec_policy_write/gcc_O2/a.out +ef2fac276a52d51b9c2646b901bd435e correct/basic_sec_policy_write/gcc_O2/basic_sec_policy_write.adt +9fb4b5fd347c52a6bdbfd59904e00e95 correct/basic_sec_policy_write/gcc_O2/basic_sec_policy_write.bir +ee64c4b7226856a33941074a0f7318ce correct/basic_sec_policy_write/gcc_O2/basic_sec_policy_write.gts +68d3cd0243531accb2a67ac93d05e443 correct/basic_sec_policy_write/gcc_O2/basic_sec_policy_write.relf +0d579d5f95d5b9ada274b8d277a5274d correct/basic_sec_policy_write/gcc_pic/a.out +bdb4e5a39334379f2a320c6e6cbbcd7c correct/basic_sec_policy_write/gcc_pic/basic_sec_policy_write.adt +e3593af37d2ad4872f495f2e14a9009d correct/basic_sec_policy_write/gcc_pic/basic_sec_policy_write.bir +084a854a83e4d403a6182e1c435dee72 correct/basic_sec_policy_write/gcc_pic/basic_sec_policy_write.gts +13288c272806c0a724285c7a07336f2f correct/basic_sec_policy_write/gcc_pic/basic_sec_policy_write.relf +747dfb9a313b67df25d1d0435cfcbb5d correct/cjump/clang/a.out +2781eee80fa40dc784183e776135ddf9 correct/cjump/clang/cjump.adt +17f72f5eac2f6352cbd8c097b76c308d correct/cjump/clang/cjump.bir +6a580e9f2eb2eb334b9bc6b66c67a35d correct/cjump/clang/cjump.gts +f4b0e5204410a9c4285267804e558b16 correct/cjump/clang/cjump.relf +42e3bc713a163981ee4d9413ba7b0d0a correct/cjump/clang_pic/a.out +028eaf4911f3810d8ff96050501644bf correct/cjump/clang_pic/cjump.adt +69d90ad5e41c357b98a731490477344a correct/cjump/clang_pic/cjump.bir +0bfcef1ecafb7e1128353a65b00847c5 correct/cjump/clang_pic/cjump.gts +0d9c8107a80a1dddd40e31a5faf90e87 correct/cjump/clang_pic/cjump.relf +92850aaf37864c242e3ca47e6cacecfc correct/cjump/gcc/a.out +4f7e35b85f37487e5e988108006ab87d correct/cjump/gcc/cjump.adt +020290e3e17149cd9f8c4565766ba1bb correct/cjump/gcc/cjump.bir +d95f3560950edec6deef61f2c3bb6495 correct/cjump/gcc/cjump.gts +46f5575a12bec4c01449b493338e9bbb correct/cjump/gcc/cjump.relf +f426faf51b6581040238c9c1e06f12d6 correct/cjump/gcc_pic/a.out +2f251182e524286f175187a0cac8aeb1 correct/cjump/gcc_pic/cjump.adt +2be548c611489a9c1f8e09809c66ab02 correct/cjump/gcc_pic/cjump.bir +476ff7e97cee009b72329f73f647fecb correct/cjump/gcc_pic/cjump.gts +b91e120b0fce2608c5f7e858adc97d6f correct/cjump/gcc_pic/cjump.relf +b8ea04ebdfa109ed3d3def56ae04cfff correct/floatingpoint/clang/a.out +b083a80126ef4186636f7976f8929949 correct/floatingpoint/clang/floatingpoint.gts +7c08b402c4fc9f21f0beee5fc2d69069 correct/floatingpoint/clang/floatingpoint.relf +25235794da45014b05687cd945b2180a correct/floatingpoint/gcc/a.out +5e828c5660083ea4103be5e51159c5f7 correct/floatingpoint/gcc/floatingpoint.gts +9483b45e7d351785a6538a2bc0124c9f correct/floatingpoint/gcc/floatingpoint.relf +7035264ce5d16b3f7443c633e4df6f09 correct/function1/clang/a.out +02a17aa55f50a088b38cd371d707d5b0 correct/function1/clang/function1.adt +1b5548a4796e65d428e503d70080de40 correct/function1/clang/function1.bir +62449ea25f8d1bd74340457831d13bdd correct/function1/clang/function1.gts +12ffeca77e012034ed59db5e45287585 correct/function1/clang/function1.relf +c3bf412288ace647e3a3cdbe299241dc correct/function1/clang_O2/a.out +8ce85cd771acecb5171a64415002bbf0 correct/function1/clang_O2/function1.adt +48fbe6bfc57e0c2f8f6b8b68e7257e59 correct/function1/clang_O2/function1.bir +d4c7e2b9f91d25f5fa910816b309a752 correct/function1/clang_O2/function1.gts +7fbed898368783e9e852e68bc999f504 correct/function1/clang_O2/function1.relf +abad3d2e94562d4bf926f164e203bcd0 correct/function1/gcc/a.out +3bee42daac4a516aa5e4144ebad8b594 correct/function1/gcc/function1.adt +a9868d259f61f3a9f8ed7fdc29811b3b correct/function1/gcc/function1.bir +9977227c08cac07820f2b7de53159a69 correct/function1/gcc/function1.gts +f3caeb84a97d418bbaa1ef548a4d3ddf correct/function1/gcc/function1.relf +21fbad434cd9ad729fb53c4140b5fe29 correct/function1/gcc_O2/a.out +1449db9034138e0936b7d86a28cca9f0 correct/function1/gcc_O2/function1.adt +8504316c14c3288bf195c0fae5f2b2d2 correct/function1/gcc_O2/function1.bir +c0fd926aa7f5a77b0f0c97cdb61d9eb7 correct/function1/gcc_O2/function1.gts +2a25b67fa2fc826d34877e34858828ba correct/function1/gcc_O2/function1.relf +bd9e7a6ac635dc38ad711a8df8e500cf correct/function/clang/a.out +381730625a02fd8d723e4c10c464df60 correct/function/clang/function.adt +967ac3f0d09268f15a7390c815ee6328 correct/function/clang/function.bir +5187459e3d787f8a52bb1515f3c6cc52 correct/function/clang/function.gts +11b246b02ca544f0ce219ed2a6ad35b0 correct/function/clang/function.relf +bc6524f58fb252a46213628383a94a9a correct/function/clang_pic/a.out +e8135455f834c4eab23466aac7b411a1 correct/function/clang_pic/function.adt +ada200848b03a4baf5efd9f0c09ec32d correct/function/clang_pic/function.bir +715c946d909d2fd92a4f49f29e31547e correct/function/clang_pic/function.gts +006a981f0fed846e16939fd60144fc16 correct/function/clang_pic/function.relf +bdbb5306373a441f9f0a2e9ba83d44a2 correct/function/gcc/a.out +c585005cb66c839a4bd2c5659e8f56de correct/function/gcc/function.adt +952c695258b4c1a9a4c5e07546d721a1 correct/function/gcc/function.bir +ec5eb3d030d9d0f982188bd5564760f7 correct/function/gcc/function.gts +500e66d733d1d326136a65b28bc39965 correct/function/gcc/function.relf +9d37b44b8f65f056fddbc891fdd23a4f correct/function/gcc_pic/a.out +4b8c7984c4dd18217b551d1b2cbd5c3a correct/function/gcc_pic/function.adt +78674a74a22a071b6c9c83e3aa36d6d1 correct/function/gcc_pic/function.bir +939909df6dd93accb98ad7f3bd9614cf correct/function/gcc_pic/function.gts +5f44bee22c467d5592adbd7801f29ae0 correct/function/gcc_pic/function.relf +98bcf9cdba35dc418cc5f520d1adb6c1 correct/functionpointer/clang/a.out +b51b46ce2f94d34f1175e04eb509c9df correct/functionpointer/clang/functionpointer.gts +13f271148dae5ce19016350741e7004e correct/functionpointer/clang/functionpointer.relf +cde0dd1493e74f760c4d3b85fbc38486 correct/functionpointer/clang_pic/a.out +208358ca761df986a37111cc855d5543 correct/functionpointer/clang_pic/functionpointer.gts +14df3f414fecb064a4079ce090044615 correct/functionpointer/clang_pic/functionpointer.relf +5db6785e37ec85bd8fff015a68f93bbc correct/functionpointer/gcc/a.out +ed5c3632934507f4cfb45242c944912c correct/functionpointer/gcc/functionpointer.gts +0ab1a3412aaf5cecdcc948af1d119740 correct/functionpointer/gcc/functionpointer.relf +01a7ca8e98d1b618bb1a341e0352be95 correct/functionpointer/gcc_O2/a.out +50b98b94bd62778988eaf62058ff4a90 correct/functionpointer/gcc_O2/functionpointer.gts +2e341ee800405ab5d8a8f3dbcb521e0b correct/functionpointer/gcc_O2/functionpointer.relf +fa4e1eeb3e808a9ef6dc2cd1f5e76714 correct/functionpointer/gcc_pic/a.out +4757c171d42be524f39c3cba727aedbf correct/functionpointer/gcc_pic/functionpointer.gts +b763d244a0125710048300c0332de1dd correct/functionpointer/gcc_pic/functionpointer.relf +519ecc5dd72bc6501e1e82747c2df1a2 correct/functions_with_params/clang/a.out +9597df8996e9076033d91320515716ee correct/functions_with_params/clang/functions_with_params.adt +c098e54c4786cd04f8cdcd4a18f03eb6 correct/functions_with_params/clang/functions_with_params.bir +df45891edbf2bf35eb17eadc2bdc2234 correct/functions_with_params/clang/functions_with_params.gts +637eb30d3e2a4a1570781e34a2130fcb correct/functions_with_params/clang/functions_with_params.relf +b0838cae2556b4f52b8330e469b59c47 correct/functions_with_params/gcc/a.out +a6c8b544ef1ea696e9084c89a6a9e107 correct/functions_with_params/gcc/functions_with_params.adt +cb97288bba1bc577545a4652bcdb095a correct/functions_with_params/gcc/functions_with_params.bir +5f08b8b745349196b2562d4651e81d00 correct/functions_with_params/gcc/functions_with_params.gts +8f21dabab411213c842c5be78b352c78 correct/functions_with_params/gcc/functions_with_params.relf +57bc387e26557e52c881d237d06b2184 correct/ifbranches/clang/a.out +5fb0f0fa611bcc86e838e80ef90707bf correct/ifbranches/clang/ifbranches.adt +80cdb4e5200d84ffba5b6003118a3771 correct/ifbranches/clang/ifbranches.bir +6e062d351808ad2ee6fc30b1de2cbc93 correct/ifbranches/clang/ifbranches.gts +7ae0aee3d98171308e985d4ca3eac87d correct/ifbranches/clang/ifbranches.relf +318707cbb1103ac41644c317b9691da1 correct/ifbranches/clang_O2/a.out +1cbe874a8d2cae5ad21f0bd70db172c5 correct/ifbranches/clang_O2/ifbranches.adt +d7e14b9c0d0a369ca4775815e39f298d correct/ifbranches/clang_O2/ifbranches.bir +16d8a405c7be212e234b7155d291c514 correct/ifbranches/clang_O2/ifbranches.gts +9d14b2634882607f4184b0d2509f068c correct/ifbranches/clang_O2/ifbranches.relf +afa7e4438a88526bdcc0525d83e8f3c1 correct/ifbranches/gcc/a.out +b986dcba8cf66be2bb231fc02717bab5 correct/ifbranches/gcc/ifbranches.adt +9c900bd7c2676debd7fb94628ae6044c correct/ifbranches/gcc/ifbranches.bir +368bd91f45f3e202fbc4ae75207590fc correct/ifbranches/gcc/ifbranches.gts +63c87c5141e719e93a21a962f6531761 correct/ifbranches/gcc/ifbranches.relf +f2e5c826bf0637441cde0b81aefec19f correct/ifbranches/gcc_O2/a.out +91058fd7296852c59156eea3a79c7370 correct/ifbranches/gcc_O2/ifbranches.adt +18b4bbad1de1ee74bbcd84d4ffd98239 correct/ifbranches/gcc_O2/ifbranches.bir +9feab04e6f384a560a5165a373de174f correct/ifbranches/gcc_O2/ifbranches.gts +b2865a7aab2e24aee5b59f94c3b3de0c correct/ifbranches/gcc_O2/ifbranches.relf +ac40daa303b5cbd67c5f9606ed3dd679 correct/ifglobal/clang/a.out +167cbd92df82be494a564dd8372b45ee correct/ifglobal/clang/ifglobal.adt +c466cea75df9c9c69526848e971f6b87 correct/ifglobal/clang/ifglobal.bir +a49f471a4bf0337420a2e86b9283001b correct/ifglobal/clang/ifglobal.gts +07cc8961113e18109ade484f077e00f4 correct/ifglobal/clang/ifglobal.relf +803bddeccb00867fb52fe6c7750b6e14 correct/ifglobal/clang_O2/a.out +dc093d156daa837798f85cf3de55cc3c correct/ifglobal/clang_O2/ifglobal.adt +dc7dae7232050e8d74e3450aae88a73b correct/ifglobal/clang_O2/ifglobal.bir +1665e99655a1bf7fc89d953dbac62edf correct/ifglobal/clang_O2/ifglobal.gts +bd43c19dcc2f7d53a67d7da3eed05c21 correct/ifglobal/clang_O2/ifglobal.relf +977d677f461b1c2cd4200d17a4d903bf correct/ifglobal/clang_pic/a.out +e4c431105c28b87eef9cdcc0b44e50dd correct/ifglobal/clang_pic/ifglobal.adt +68d6fec46f345175063f4c2b1aac28e6 correct/ifglobal/clang_pic/ifglobal.bir +dd28e4ed8e376aa78f776c6e2f929293 correct/ifglobal/clang_pic/ifglobal.gts +1b52912c3d04c70b82d718fbfc560caa correct/ifglobal/clang_pic/ifglobal.relf +ece66ec9802b6038d103ac113f8fa0f9 correct/ifglobal/gcc/a.out +ae2314347ddb94f6a6af63c43189830d correct/ifglobal/gcc/ifglobal.adt +fc67c28710dba18998d03fbcbd701d38 correct/ifglobal/gcc/ifglobal.bir +ca460e97ad906dff6f7355a92a54a208 correct/ifglobal/gcc/ifglobal.gts +3f1142aa7257f8da9cd207f74b4e0cd9 correct/ifglobal/gcc/ifglobal.relf +a81324e2b302e5924e603dc449d69da8 correct/ifglobal/gcc_O2/a.out +5fd2e26ae60e15d8bb6a60c1f55949c4 correct/ifglobal/gcc_O2/ifglobal.adt +e1f4b04012e9cc1496785df4c7010ec7 correct/ifglobal/gcc_O2/ifglobal.bir +7d3b132d51db2e807ef5afa5b36e40b9 correct/ifglobal/gcc_O2/ifglobal.gts +5a5f54276a7a05c5a86182231de563f1 correct/ifglobal/gcc_O2/ifglobal.relf +48147c5e8aeb5d9adc2b482cab3779ed correct/ifglobal/gcc_pic/a.out +fe59b43e1473cd8c3e3fe462b6876912 correct/ifglobal/gcc_pic/ifglobal.adt +c79478a84f4147acd8c42a63d787d6af correct/ifglobal/gcc_pic/ifglobal.bir +a6c119233d9a1f558d62f0473c58896a correct/ifglobal/gcc_pic/ifglobal.gts +1ef33e989ad191804079879792e0e1e5 correct/ifglobal/gcc_pic/ifglobal.relf +cf83be26369d10dba380fb84b5269c22 correct/indirect_call/clang/a.out +4e0d4bad5722970924a19f9bb9df2af2 correct/indirect_call/clang/indirect_call.gts +139d93f429d8076bafddc3cd8d5cef94 correct/indirect_call/clang/indirect_call.relf +605cf044775dc216d2facdb28cf6db20 correct/indirect_call/clang_pic/a.out +e24a01a854e616c0501c702ed25dc4fe correct/indirect_call/clang_pic/indirect_call.gts +b085e7b0c11f01c5849cee99d1f0b226 correct/indirect_call/clang_pic/indirect_call.relf +e4ac384de28f7a47c89964a310629d04 correct/indirect_call/gcc/a.out +e3aefe9ea6b305f41de4c7110192e2bf correct/indirect_call/gcc/indirect_call.gts +dd6caa559d5e9f1dc667762431a7a07e correct/indirect_call/gcc/indirect_call.relf +52e9dafeff1c2f27a5fcde67978f561d correct/indirect_call/gcc_pic/a.out +956b13f507e66525fd9eb74de47db19b correct/indirect_call/gcc_pic/indirect_call.gts +f1b7c2382ac5cc0800c9bf3bd80d5287 correct/indirect_call/gcc_pic/indirect_call.relf +f6660f9d06c9d114d80e0f68ebd4f1cd correct/initialisation/clang/a.out +a30612d8f92b181119e4321584f2f4b1 correct/initialisation/clang/initialisation.adt +00eb981aca0a548db1327b2d7bd13a6a correct/initialisation/clang/initialisation.bir +bb6037968283b3e5a8424258512481ad correct/initialisation/clang/initialisation.gts +0cc654a10c916cd69378d9b309716876 correct/initialisation/clang/initialisation.relf +2afca183c8f64242b52d1ed2af7a7f1d correct/initialisation/clang_O2/a.out +048ed5a5fa60c626abf5a47d0182b052 correct/initialisation/clang_O2/initialisation.adt +8e6ff5e1c4d7b4a8b1881d0500cb0b46 correct/initialisation/clang_O2/initialisation.bir +27f3459cf4f3690247b0c0ea44a9e5a4 correct/initialisation/clang_O2/initialisation.gts +8bb45067e16a6b35e917dd5bac22d3fb correct/initialisation/clang_O2/initialisation.relf +09d909ac45232c33266fc8e5daac2d15 correct/initialisation/clang_pic/a.out +efe515db54deca206846ada0a4ea23a9 correct/initialisation/clang_pic/initialisation.adt +8df4980802ac713588d0fd87a2f53873 correct/initialisation/clang_pic/initialisation.bir +2a4e3d3e5e8fddda31a39eb929889884 correct/initialisation/clang_pic/initialisation.gts +3499c716ed2a54f380494db77e228e59 correct/initialisation/clang_pic/initialisation.relf +455d68b35a2a92f10cce0058b57f3165 correct/initialisation/gcc/a.out +50a3c2fb4c595ff4b387608a1dd2ec82 correct/initialisation/gcc/initialisation.adt +da6051fd47076de3667937d033c133a9 correct/initialisation/gcc/initialisation.bir +a2915010ff5965c811b4ff554ede5b68 correct/initialisation/gcc/initialisation.gts +b36ef51192bdbc0e7e584464502a21a6 correct/initialisation/gcc/initialisation.relf +9ee80c0a445be41606b270154b1970da correct/initialisation/gcc_O2/a.out +5ccc0d67e20185f0beed74cd40ba3592 correct/initialisation/gcc_O2/initialisation.adt +030f76a2e5343760fe26a603aa4c3d3c correct/initialisation/gcc_O2/initialisation.bir +42ab30c6c55d291b66ebf73d346cd95d correct/initialisation/gcc_O2/initialisation.gts +200d1f5bd7eda03e4cb7c536fb59923f correct/initialisation/gcc_O2/initialisation.relf +6db22dacb722916215afa122aa6702f9 correct/initialisation/gcc_pic/a.out +651d6a2fcc8ddc725b60e2d1f9f35c73 correct/initialisation/gcc_pic/initialisation.adt +db0305f174245d6c5be54d079b2aab24 correct/initialisation/gcc_pic/initialisation.bir +2c8554b90c0eee2efd985e1cddc04e9d correct/initialisation/gcc_pic/initialisation.gts +4449db28fa6e4b8540a19c3d9f80f6d5 correct/initialisation/gcc_pic/initialisation.relf +1004ef92a545bd1bb156cc7c6d06f78c correct/jumptable2/clang/a.out +e79157f1fa0a1bc13572c8410ea44b94 correct/jumptable2/clang/jumptable2.gts +f0309d8fe096729f5904f3307b87ea57 correct/jumptable2/clang/jumptable2.relf +8ed249d2745623a377d7d4cf48b529d8 correct/jumptable2/clang_O2/a.out +af0c004f2fcc849b357e162bf59579ff correct/jumptable2/clang_O2/jumptable2.gts +f3580dbcac41cd338f2f098fc5943cd0 correct/jumptable2/clang_O2/jumptable2.relf +1b67710a1a01eb1e505a3b9317b4c805 correct/jumptable2/clang_pic/a.out +8bfd39281b163abdc026506e6fd2766a correct/jumptable2/clang_pic/jumptable2.gts +28ef1b32ac18ba5970eeec6b96c55f7e correct/jumptable2/clang_pic/jumptable2.relf +2e004774d7aea692b2a018664ba4b564 correct/jumptable2/gcc/a.out +ed032c81cf0527b1c9b6722b77bfbb2b correct/jumptable2/gcc/jumptable2.gts +7e256a130afffbec24ccbaf45dd62c0a correct/jumptable2/gcc/jumptable2.relf +dc2e7bb72da986594bb9df137a355c0f correct/jumptable2/gcc_O2/a.out +40f5dcb29ce989246f8084b961603c75 correct/jumptable2/gcc_O2/jumptable2.gts +af5ce16ef0d57f4a3d7393fba2d77260 correct/jumptable2/gcc_O2/jumptable2.relf +a571978d1481691c232e6adcbdd05c29 correct/jumptable2/gcc_pic/a.out +61f56270fa10ce607605ddbed8eba988 correct/jumptable2/gcc_pic/jumptable2.gts +d213632d0eb38765741aca7a8c3637dc correct/jumptable2/gcc_pic/jumptable2.relf +1b6db865b6e78993b61d04443865347f correct/malloc_with_local2/clang/a.out +544bfb3661c6ba26a6d592d8daded9a1 correct/malloc_with_local2/clang/malloc_with_local2.adt +a230de5dbcdf70bcd1b1f1b49ab315b2 correct/malloc_with_local2/clang/malloc_with_local2.bir +b1cabe8ef757fe675ea28771e2c78018 correct/malloc_with_local2/clang/malloc_with_local2.gts +d8fbed57fb1c2be31f396bb41120adbf correct/malloc_with_local2/clang/malloc_with_local2.relf +bba221ee77eb3c6a5f6f9263b0410f75 correct/malloc_with_local2/gcc/a.out +bfafc1ac4253ec13bf95e2176b433e4c correct/malloc_with_local2/gcc/malloc_with_local2.adt +c182d4a77f95e8b081ca6849ea23f9b4 correct/malloc_with_local2/gcc/malloc_with_local2.bir +338aada94474cfe9dc9a60bbef4328a1 correct/malloc_with_local2/gcc/malloc_with_local2.gts +2c53ee74ebc1821e98952bd471a00afb correct/malloc_with_local2/gcc/malloc_with_local2.relf +4467179dad0cf22edf9cb3e89717b6e8 correct/malloc_with_local3/clang/a.out +23ec27ed25fb801e86bf40bb1e874f79 correct/malloc_with_local3/clang/malloc_with_local3.adt +43421b2c494d7000e571314c52ae1f72 correct/malloc_with_local3/clang/malloc_with_local3.bir +9afa8fe5241cd942a8265470158b47ba correct/malloc_with_local3/clang/malloc_with_local3.gts +466cf3b9e4ad29b27b9dc7ca172fe59f correct/malloc_with_local3/clang/malloc_with_local3.relf +aaacddb9eebfb8346d7e7c9e632d52a7 correct/malloc_with_local3/gcc/a.out +40b7d25aed3385621e11e657ddab86eb correct/malloc_with_local3/gcc/malloc_with_local3.adt +93a48b93d2272ca660ae06a33166df05 correct/malloc_with_local3/gcc/malloc_with_local3.bir +66e55208fbefb879f1a6e7688850121f correct/malloc_with_local3/gcc/malloc_with_local3.gts +534c049bacef690db52f530432a94858 correct/malloc_with_local3/gcc/malloc_with_local3.relf +3adc7052467f43e92078d56993c150e5 correct/malloc_with_local3/gcc_O2/a.out +dce9ba056bb2d92a50f00bfa98c80a4c correct/malloc_with_local3/gcc_O2/malloc_with_local3.adt +eb8cc41b63eada523b27082c8ee123cc correct/malloc_with_local3/gcc_O2/malloc_with_local3.bir +113862711695c287b20c98f29643d9c2 correct/malloc_with_local3/gcc_O2/malloc_with_local3.gts +55f45d5db50efe74071065ba7ee02dc3 correct/malloc_with_local3/gcc_O2/malloc_with_local3.relf +af400878f5b7e84c493a13e537455865 correct/malloc_with_local/clang/a.out +695d2d5cfaa7afbd01a91d6041cfd8d4 correct/malloc_with_local/clang/malloc_with_local.adt +ee256cab3a08ef4e250eaffc3cdcda38 correct/malloc_with_local/clang/malloc_with_local.bir +0bbe9eb3c35b3552b35ce0d89e19723c correct/malloc_with_local/clang/malloc_with_local.gts +42f39762f34ccb7bc1e862a0c33b5caa correct/malloc_with_local/clang/malloc_with_local.relf +eedd3c9e41eba7734c5e984846835e7b correct/malloc_with_local/clang_O2/a.out +c0892bd8e0bfdd0f1d30a8a21c117871 correct/malloc_with_local/clang_O2/malloc_with_local.adt +d03c6fd9b89490ef58a9e329c5bcf027 correct/malloc_with_local/clang_O2/malloc_with_local.bir +0009e109bdc0375761fcfbae11bf9e82 correct/malloc_with_local/clang_O2/malloc_with_local.gts +398bbca8d68b4a5842ce29d0380f94f3 correct/malloc_with_local/clang_O2/malloc_with_local.relf +d5778e299cdc3cd7ed5b0ac10e9b79ac correct/malloc_with_local/gcc/a.out +f3d3c4ced41e8b493272b129ec774bc7 correct/malloc_with_local/gcc/malloc_with_local.adt +e8344aeb06d50c4079a0c6c3a318a160 correct/malloc_with_local/gcc/malloc_with_local.bir +318d9af6825bbd3ead4e04b3b17b1fe2 correct/malloc_with_local/gcc/malloc_with_local.gts +f653e3481a3003a1fb74f85089bd9831 correct/malloc_with_local/gcc/malloc_with_local.relf +82c8527d9b82770b7c5aaa76eb67dd54 correct/malloc_with_local/gcc_O2/a.out +9ddc3fec76d38032a0c3c4e289daa20c correct/malloc_with_local/gcc_O2/malloc_with_local.adt +a7b748f3336131baea0cccfdc95f0550 correct/malloc_with_local/gcc_O2/malloc_with_local.bir +5e9fd7e108af0aa97549fa0defcb8c3c correct/malloc_with_local/gcc_O2/malloc_with_local.gts +ea9cc343fd1aa0688e93610b6f2f2715 correct/malloc_with_local/gcc_O2/malloc_with_local.relf +a03bff5ed6881c111ecaf96709be4d51 correct/multi_malloc/clang/a.out +58514e8679921af5760c237c93cdb420 correct/multi_malloc/clang/multi_malloc.adt +89ba03731a24461b447fa9b5ef1277b8 correct/multi_malloc/clang/multi_malloc.bir +e4a3345591458535c15006c7c103b84e correct/multi_malloc/clang/multi_malloc.gts +08726337fe0113be4e6ea0284f9ef095 correct/multi_malloc/clang/multi_malloc.relf +9ee6996bd8c83411088ffdbec1a2d2f9 correct/multi_malloc/gcc/a.out +9772eec4658448b24d6f08f1efa93206 correct/multi_malloc/gcc/multi_malloc.adt +8fb9e2a2dca6c84fe729ff75dbc9536f correct/multi_malloc/gcc/multi_malloc.bir +d72cdc91826b856891814ace49b44b0f correct/multi_malloc/gcc/multi_malloc.gts +be53dc98db4abe9847cdbdc6313582e2 correct/multi_malloc/gcc/multi_malloc.relf +1678c19459f78f1f412eebbc82a18909 correct/no_interference_update_x/clang/a.out +ffecbd8fc23689dbcdee8510297e7fc9 correct/no_interference_update_x/clang/no_interference_update_x.adt +abf21c2d30e976783d9a3a2c745722d0 correct/no_interference_update_x/clang/no_interference_update_x.bir +26f79c9e8076ae32559cc0437d9ea6ec correct/no_interference_update_x/clang/no_interference_update_x.gts +751de96c2bb2581ceaa8672a6565aa28 correct/no_interference_update_x/clang/no_interference_update_x.relf +9b3040f919e299a9f231176d773adf91 correct/no_interference_update_x/clang_pic/a.out +55b5ee7a2bf23195ddcec40c77e01e6e correct/no_interference_update_x/clang_pic/no_interference_update_x.adt +9903aa54693487f43b2a1f5a89bd0fe6 correct/no_interference_update_x/clang_pic/no_interference_update_x.bir +26be2c27fe4eb7bf88c88f6683ae8e2b correct/no_interference_update_x/clang_pic/no_interference_update_x.gts +06cfe049057990d4949c77289ec1a6ca correct/no_interference_update_x/clang_pic/no_interference_update_x.relf +8f803dcdee791746d88ba438b7f67958 correct/no_interference_update_x/gcc/a.out +4f34aff46fda0fdb19563eb04f4f0066 correct/no_interference_update_x/gcc/no_interference_update_x.adt +8d4cb1a4be235cf0cf15e39ffc7e4432 correct/no_interference_update_x/gcc/no_interference_update_x.bir +71700c4d1e6accb06c1b506dcbbba074 correct/no_interference_update_x/gcc/no_interference_update_x.gts +7a81cca71e84da3885de716aa3695567 correct/no_interference_update_x/gcc/no_interference_update_x.relf +3c9c87894cd620438ca1f1ee7e22e75b correct/no_interference_update_x/gcc_O2/a.out +e9d8145ed52769608e520f1762d08002 correct/no_interference_update_x/gcc_O2/no_interference_update_x.adt +59355aca43df0f24dafd3fe145e941e4 correct/no_interference_update_x/gcc_O2/no_interference_update_x.bir +0a720387556384b9d9f87babebda4542 correct/no_interference_update_x/gcc_O2/no_interference_update_x.gts +3e54a7136bc456c4235393cf0f223a80 correct/no_interference_update_x/gcc_O2/no_interference_update_x.relf +e1ce38571657d3697fb6f5151e9f3042 correct/no_interference_update_x/gcc_pic/a.out +2b7d1a8167a5b520a0d82514aed59a64 correct/no_interference_update_x/gcc_pic/no_interference_update_x.adt +f4a408dcc3cff7a3a0b2c872a912e097 correct/no_interference_update_x/gcc_pic/no_interference_update_x.bir +41d73f65560fde3c03dcb108b365e4b5 correct/no_interference_update_x/gcc_pic/no_interference_update_x.gts +b8aac752a7424974c54be7e1cf21f428 correct/no_interference_update_x/gcc_pic/no_interference_update_x.relf +d977427d062972ddb070152f51cbdbb4 correct/no_interference_update_y/clang/a.out +ffecbd8fc23689dbcdee8510297e7fc9 correct/no_interference_update_y/clang/no_interference_update_y.adt +abf21c2d30e976783d9a3a2c745722d0 correct/no_interference_update_y/clang/no_interference_update_y.bir +b2521b1801d8f25518f77ffe2f51bc73 correct/no_interference_update_y/clang/no_interference_update_y.gts +73879667a9a816be334872b1b563d440 correct/no_interference_update_y/clang/no_interference_update_y.relf +f1e6a7d4d89b9aff403f45b916a34667 correct/no_interference_update_y/clang_pic/a.out +15b43865e2343d78b4b979af468607b2 correct/no_interference_update_y/clang_pic/no_interference_update_y.adt +7bb6589fcbf99947ae7937e9f2f4a140 correct/no_interference_update_y/clang_pic/no_interference_update_y.bir +5f75327d7dd3d64f0fdaf03d497cbd77 correct/no_interference_update_y/clang_pic/no_interference_update_y.gts +f2c120a81411c191b9d85f0d479d9b90 correct/no_interference_update_y/clang_pic/no_interference_update_y.relf +3f15921edf33747b6f65b33f8445a00d correct/no_interference_update_y/gcc/a.out +3cf9c36098c9be4e7180a47b9957904c correct/no_interference_update_y/gcc/no_interference_update_y.adt +f42d1772bed691600dc01ae2aa5726b9 correct/no_interference_update_y/gcc/no_interference_update_y.bir +455355ec4bed66d49f207aa9d78ce590 correct/no_interference_update_y/gcc/no_interference_update_y.gts +d576bf613221940fcc116301abe0a4e3 correct/no_interference_update_y/gcc/no_interference_update_y.relf +3c8c5e6049417d0cb1bd03b2e69454fb correct/no_interference_update_y/gcc_O2/a.out +e9d8145ed52769608e520f1762d08002 correct/no_interference_update_y/gcc_O2/no_interference_update_y.adt +59355aca43df0f24dafd3fe145e941e4 correct/no_interference_update_y/gcc_O2/no_interference_update_y.bir +774641ef2af35e7f210620019cdbfa68 correct/no_interference_update_y/gcc_O2/no_interference_update_y.gts +67837e255765fcf1e8ea22c28be24e0e correct/no_interference_update_y/gcc_O2/no_interference_update_y.relf +07e0d5170908b20bf9f5b4ab71f791c4 correct/no_interference_update_y/gcc_pic/a.out +c3baebb23b6b9d27e5c409073c2ea0ab correct/no_interference_update_y/gcc_pic/no_interference_update_y.adt +aae71f2d853687e9d1342005db95e75e correct/no_interference_update_y/gcc_pic/no_interference_update_y.bir +ca0156cc026484efed2f93686560eaa3 correct/no_interference_update_y/gcc_pic/no_interference_update_y.gts +6ecf28a648486e1fab847148b1cfec87 correct/no_interference_update_y/gcc_pic/no_interference_update_y.relf +2ed7511db22cffbe227f39ad6fb0f268 correct/secret_write/clang/a.out +b6c7611e1bfd8a0a8fa1e7af0f1e00eb correct/secret_write/clang_O2/a.out +32c112c782a51832305b7fafe19f9b27 correct/secret_write/clang_O2/secret_write.adt +dc97e3dd201bd1ce59af1f1fdb89bcf2 correct/secret_write/clang_O2/secret_write.bir +95d40713c5eb22dd3129991e6c6d60e6 correct/secret_write/clang_O2/secret_write.gts +22f686c97dcd03c84468312523fbe3f4 correct/secret_write/clang_O2/secret_write.relf +775dc3ba50643de99f4e83144e04280b correct/secret_write/clang_pic/a.out +517de547b219ea37001cd5940c387df9 correct/secret_write/clang_pic/secret_write.adt +6a5b6902feb6a58ee0ab1cb69a218881 correct/secret_write/clang_pic/secret_write.bir +5e14108bf6e56dc7879549271f979768 correct/secret_write/clang_pic/secret_write.gts +18e4b53191530c3398762f6aede1a1f9 correct/secret_write/clang_pic/secret_write.relf +eff1b39b7260913edec013021591a651 correct/secret_write/clang/secret_write.adt +f1d855cf4744531ff79bf510ce991f36 correct/secret_write/clang/secret_write.bir +e30984e42e59fcefe0ba154d682946c3 correct/secret_write/clang/secret_write.gts +fa904d4895e9029003754e551de16acb correct/secret_write/clang/secret_write.relf +604e4f725b6a5c8fb10db400aa14ce7f correct/secret_write/gcc/a.out +7937cdf0d3a4aba6f96576ff8ab5029a correct/secret_write/gcc_O2/a.out +674a5444ffa30fdbf4c50c8f1c5f5bd3 correct/secret_write/gcc_O2/secret_write.adt +9fb4b5fd347c52a6bdbfd59904e00e95 correct/secret_write/gcc_O2/secret_write.bir +ad627fdc999bfee51710edcc24718686 correct/secret_write/gcc_O2/secret_write.gts +e6449219eb8f71ee65aec685bed0139b correct/secret_write/gcc_O2/secret_write.relf +71fe52271b89529e402d63c06bbb00c9 correct/secret_write/gcc_pic/a.out +5dc41dda3b37251df26779d2704a30af correct/secret_write/gcc_pic/secret_write.adt +6154b052bd6c0d475c7bf07760d9e943 correct/secret_write/gcc_pic/secret_write.bir +2dff58f103a1f36b7424c0b7fa870363 correct/secret_write/gcc_pic/secret_write.gts +38bf262c0031f0f2729484bde2dba3ed correct/secret_write/gcc_pic/secret_write.relf +cfae0dd6f5898626d75d631a9633fccb correct/secret_write/gcc/secret_write.adt +0a7b7fa140adbe25dd4080ee16372652 correct/secret_write/gcc/secret_write.bir +8fe73b699ca7730206aba4adb12d9fb6 correct/secret_write/gcc/secret_write.gts +bc3a74246fb98f97d8b532b465fd26a8 correct/secret_write/gcc/secret_write.relf +1e3f3f53089ee0c894b9d27712f2d927 correct/switch/clang/a.out +0c158d2a54aaa9a49a8e3968ad5cc9c6 correct/switch/clang_O2/a.out +b28463c86ef5439226bf2b8bd74172e2 correct/switch/clang_O2/switch.adt +56c9abd9494cbc9dd6e69111f29812ad correct/switch/clang_O2/switch.bir +c60da4d0b8944f64a0b65822f9862b3e correct/switch/clang_O2/switch.gts +e891cdb3f87d0879b0327263ec3cfb94 correct/switch/clang_O2/switch.relf +1f427a89414cd248442da8cb58af345a correct/switch/clang/switch.adt +895b81d83475139a1005c20f778bd4e9 correct/switch/clang/switch.bir +2c122b837760f64dc9700696d37348ec correct/switch/clang/switch.gts +352697caf792aa289e4f15d13adafac5 correct/switch/clang/switch.relf +b2f2065f081071d5cb51b58cdeb28855 correct/switch/gcc/a.out +ec9913798ae0a417fc9bffd061e39cee correct/switch/gcc_O2/a.out +649180184eb3f8b6fda2372716f20697 correct/switch/gcc_O2/switch.adt +5620a40d2bae8c163725846fbf2c685d correct/switch/gcc_O2/switch.bir +bb0b880059d9ff9d57a31edcbf4af56a correct/switch/gcc_O2/switch.gts +2b5a3401e95600fc4d07a7e61743af0d correct/switch/gcc_O2/switch.relf +8ccd766670b5a393bf8801be7216eb90 correct/switch/gcc/switch.adt +abf9556e420d741207860fc59ad45e7d correct/switch/gcc/switch.bir +6dc9c73ede188d5f0afb37874eae54c3 correct/switch/gcc/switch.gts +f358ea2392a914c2e3ddfa908489b3b3 correct/switch/gcc/switch.relf +515a9ca66ff8458a4ccbf6e5d8a712ed correct/syscall/clang/a.out +bb04b16d71ceb1f52c42953497156b91 correct/syscall/clang_O2/a.out +6a049a286775ab4fd703eca208d2a031 correct/syscall/clang_O2/syscall.gts +23f35b0d9ec636b7f283d24d86e43756 correct/syscall/clang_O2/syscall.relf +42faa798c06e3f57e747edd72c5efc1c correct/syscall/clang/syscall.adt +0a6dca8a0ce09a9df56e28c243fd0285 correct/syscall/clang/syscall.bir +89d26e1524afae5ac13f22492506e250 correct/syscall/clang/syscall.gts +835d7eeff719c0666e265f8ace50ba98 correct/syscall/clang/syscall.relf +bc7d481b8545da1d3c96cc2da751429b correct/syscall/gcc/a.out +fc8678ab5c3a650a054f37f078fee94b correct/syscall/gcc_O2/a.out +54d3f63ea04f72d43fddb937b71ce408 correct/syscall/gcc_O2/syscall.adt +505fdedad00805b06ee4df9733e09808 correct/syscall/gcc_O2/syscall.bir +0e6110ec03c611a0a9a3d882424adc3c correct/syscall/gcc_O2/syscall.gts +ef5abedd2b740ce318c81d07d8bf3cc3 correct/syscall/gcc_O2/syscall.relf +a2879396e42f8fb262d5d8cd6670a3f9 correct/syscall/gcc/syscall.adt +c45a227a3cbaf73ca18d812cfe9f7d5f correct/syscall/gcc/syscall.bir +f322b978ca9db1b61a31321a0b3f445c correct/syscall/gcc/syscall.gts +0242a97c6a37b43e2b2e2e84e1e6ceb0 correct/syscall/gcc/syscall.relf +5b41082fef8fe310cc591610ff7c6794 correct/using_gamma_conditional/clang/a.out +021cbaabee26808629c089b3f57b3918 correct/using_gamma_conditional/clang_O2/a.out +a60c3c72b6786ad3e2bfa5ab8223be1c correct/using_gamma_conditional/clang_O2/using_gamma_conditional.adt +83fb24ac62b5673fac704936e95868fa correct/using_gamma_conditional/clang_O2/using_gamma_conditional.bir +09b8cb953b11f6b89218d32b38664986 correct/using_gamma_conditional/clang_O2/using_gamma_conditional.gts +b74f79ee39af938fa36c82f073c362df correct/using_gamma_conditional/clang_O2/using_gamma_conditional.relf +15b5d0f891a53c017b9a746c33686003 correct/using_gamma_conditional/clang_pic/a.out +0bc115baf544f4232d2c6ac5f14cf6ab correct/using_gamma_conditional/clang_pic/using_gamma_conditional.adt +b885135350d6b921155b539b5fffef41 correct/using_gamma_conditional/clang_pic/using_gamma_conditional.bir +b58f9dd0e2f485fd6c126b3392a1760a correct/using_gamma_conditional/clang_pic/using_gamma_conditional.gts +dbba58a029aa7b9d8e5665d68036a4b6 correct/using_gamma_conditional/clang_pic/using_gamma_conditional.relf +34bc5914ac91bc457029e7998d503d1d correct/using_gamma_conditional/clang/using_gamma_conditional.adt +2d91eca6da945b66cd71d3074f07221c correct/using_gamma_conditional/clang/using_gamma_conditional.bir +86555db26ccba8f18a5c39ab259e0c21 correct/using_gamma_conditional/clang/using_gamma_conditional.gts +2c861e62fb94a4d782fffb569ee043c2 correct/using_gamma_conditional/clang/using_gamma_conditional.relf +5f8c76abf0c301f5d8c5dc733d998e6c correct/using_gamma_conditional/gcc/a.out +2612aa33c892c8c4906f95f786e9786f correct/using_gamma_conditional/gcc_pic/a.out +27b0eb0fc40c56aebe4dc374d0834f68 correct/using_gamma_conditional/gcc_pic/using_gamma_conditional.adt +f0c0994f8a30e4ff591de647acdc1de6 correct/using_gamma_conditional/gcc_pic/using_gamma_conditional.bir +a7efe363ebd397fd7da2efafa4acf9e8 correct/using_gamma_conditional/gcc_pic/using_gamma_conditional.gts +f9833a0a656369c8148ec2a7ffe877b9 correct/using_gamma_conditional/gcc_pic/using_gamma_conditional.relf +9aae96c264809c35472a42ff2322f891 correct/using_gamma_conditional/gcc/using_gamma_conditional.adt +213384ee1966cab58321a4b7c7806306 correct/using_gamma_conditional/gcc/using_gamma_conditional.bir +06f90073eeae4ab209ffab95f1468b5b correct/using_gamma_conditional/gcc/using_gamma_conditional.gts +ecd1b29576288aacb6a908132fe73bb2 correct/using_gamma_conditional/gcc/using_gamma_conditional.relf +0900edc9a105392f3f5150c47406a16e correct/using_gamma_write_z/clang/a.out +c736c5200d8adcfaa3dcc41ea59bac91 correct/using_gamma_write_z/clang_pic/a.out +ebe563ec2406e6f3c02a7542700a2f23 correct/using_gamma_write_z/clang_pic/using_gamma_write_z.adt +9903aa54693487f43b2a1f5a89bd0fe6 correct/using_gamma_write_z/clang_pic/using_gamma_write_z.bir +70ba2abb2e7611f89efa8e8433b6ca38 correct/using_gamma_write_z/clang_pic/using_gamma_write_z.gts +45072469d3afd179072497e4127af93a correct/using_gamma_write_z/clang_pic/using_gamma_write_z.relf +c68ae9716d5c58f96f1d6fa0fa60a23e correct/using_gamma_write_z/clang/using_gamma_write_z.adt +abf21c2d30e976783d9a3a2c745722d0 correct/using_gamma_write_z/clang/using_gamma_write_z.bir +5ef82e97b9944425a115c9b7a0cdbd8c correct/using_gamma_write_z/clang/using_gamma_write_z.gts +1dc5ec5c03ce0c123c582e656d525b57 correct/using_gamma_write_z/clang/using_gamma_write_z.relf +1fd5028b55fe931340853849d42c0799 correct/using_gamma_write_z/gcc/a.out +4f8911db0e9008968bbc08860ebf3463 correct/using_gamma_write_z/gcc_O2/a.out +66a225b6c1b61f30a9ac704bc2b5427c correct/using_gamma_write_z/gcc_O2/using_gamma_write_z.adt +59355aca43df0f24dafd3fe145e941e4 correct/using_gamma_write_z/gcc_O2/using_gamma_write_z.bir +683444237dc4355319ede0b4b33e965b correct/using_gamma_write_z/gcc_O2/using_gamma_write_z.gts +ea7f0daad9fd3f050926ffab3c9dbd30 correct/using_gamma_write_z/gcc_O2/using_gamma_write_z.relf +900e43a5db4a416064ece8203656bdb6 correct/using_gamma_write_z/gcc_pic/a.out +c62c13c0bba8f5cbc4d2df0ff98ff8e2 correct/using_gamma_write_z/gcc_pic/using_gamma_write_z.adt +f4a408dcc3cff7a3a0b2c872a912e097 correct/using_gamma_write_z/gcc_pic/using_gamma_write_z.bir +09a86306fe32737931bff61ee8b6237b correct/using_gamma_write_z/gcc_pic/using_gamma_write_z.gts +4cabdae3e6a24ead7704da23e2a4d306 correct/using_gamma_write_z/gcc_pic/using_gamma_write_z.relf +35d4a1bec3466234e3644b13358ace55 correct/using_gamma_write_z/gcc/using_gamma_write_z.adt +f42d1772bed691600dc01ae2aa5726b9 correct/using_gamma_write_z/gcc/using_gamma_write_z.bir +250e19e219df5081934ab34097219b9c correct/using_gamma_write_z/gcc/using_gamma_write_z.gts +b7c61ce66698bbd328740a622c0be55d correct/using_gamma_write_z/gcc/using_gamma_write_z.relf +7953a8161ad8503a61edc3f8d400a481 extraspec_correct/malloc_memcpy_strlen_memset_free/clang_O2/a.out +776d60d352b95a25565682c2594d4481 extraspec_correct/malloc_memcpy_strlen_memset_free/clang_O2/malloc_memcpy_strlen_memset_free.adt +e6af82e00b489e8bc0ea1b7d2dab1612 extraspec_correct/malloc_memcpy_strlen_memset_free/clang_O2/malloc_memcpy_strlen_memset_free.bir +0ed91162ba8291d8d06ef4feb7e80c8c extraspec_correct/malloc_memcpy_strlen_memset_free/clang_O2/malloc_memcpy_strlen_memset_free.gts +b5ee617fb8c1b97a66a897742f321d96 extraspec_correct/malloc_memcpy_strlen_memset_free/clang_O2/malloc_memcpy_strlen_memset_free.relf +ca1c1c54b5447e999339ede0d4423583 extraspec_correct/malloc_memcpy_strlen_memset_free/gcc_O2/a.out +32fb8224d24324536976b17f29857b46 extraspec_correct/malloc_memcpy_strlen_memset_free/gcc_O2/malloc_memcpy_strlen_memset_free.adt +a17f4dde0c21ee9c093ded363a57394b extraspec_correct/malloc_memcpy_strlen_memset_free/gcc_O2/malloc_memcpy_strlen_memset_free.bir +2819395d1c2b61b1357f9c73b0d32674 extraspec_correct/malloc_memcpy_strlen_memset_free/gcc_O2/malloc_memcpy_strlen_memset_free.gts +d36f943dd19dd4dad2e745f875b05df9 extraspec_correct/malloc_memcpy_strlen_memset_free/gcc_O2/malloc_memcpy_strlen_memset_free.relf +3b63c88ee89db1b463950abdccfeb7c9 extraspec_incorrect/malloc_memcpy_strlen_memset_free/clang_O2/a.out +390ba27a222f0950688e3e7e27ce88a2 extraspec_incorrect/malloc_memcpy_strlen_memset_free/clang_O2/malloc_memcpy_strlen_memset_free.adt +9b6db4c6fe913b8003f56c7f76fc3be9 extraspec_incorrect/malloc_memcpy_strlen_memset_free/clang_O2/malloc_memcpy_strlen_memset_free.bir +67223863b5a332264bce7af8f809a22a extraspec_incorrect/malloc_memcpy_strlen_memset_free/clang_O2/malloc_memcpy_strlen_memset_free.gts +b9e29933d979b4ad2fd7b5c446553248 extraspec_incorrect/malloc_memcpy_strlen_memset_free/clang_O2/malloc_memcpy_strlen_memset_free.relf +95ea5959bd5afc121ff0b7abd6cca6d7 extraspec_incorrect/malloc_memcpy_strlen_memset_free/gcc_O2/a.out +0b1418f94d96cfb81d10bbba79792bf8 extraspec_incorrect/malloc_memcpy_strlen_memset_free/gcc_O2/malloc_memcpy_strlen_memset_free.adt +51e90424954b3046da3c0eb8c9d036ed extraspec_incorrect/malloc_memcpy_strlen_memset_free/gcc_O2/malloc_memcpy_strlen_memset_free.bir +1158af57fb0b8ded921651ef6f537f7d extraspec_incorrect/malloc_memcpy_strlen_memset_free/gcc_O2/malloc_memcpy_strlen_memset_free.gts +c8e6dad8976fa644e38cc5575a4cd23d extraspec_incorrect/malloc_memcpy_strlen_memset_free/gcc_O2/malloc_memcpy_strlen_memset_free.relf +5b1f77665f9504ef51465bdee56755cf incorrect/basicassign1/clang/a.out +deeb18db074096d649075ab4840efd34 incorrect/basicassign1/clang/basicassign1.adt +c550f55b7a5b9db0f91729fdcb5c81e1 incorrect/basicassign1/clang/basicassign1.bir +6eef8059f6b4eecedb9c68def10c633c incorrect/basicassign1/clang/basicassign1.gts +f8f254214515d616fa14c6ab237a0c54 incorrect/basicassign1/clang/basicassign1.relf +ffb3a0430fc01035959bacdadfeab93c incorrect/basicassign1/clang_O2/a.out +7cd34d61ca2bceab8b277f96a2797d27 incorrect/basicassign1/clang_O2/basicassign1.adt +499488e5cc23e93db3a003f95383e0b8 incorrect/basicassign1/clang_O2/basicassign1.bir +0542cf53768ae6089e2a15a9eaae2d0d incorrect/basicassign1/clang_O2/basicassign1.gts +eba0751f4f9daa422fceaea596d45697 incorrect/basicassign1/clang_O2/basicassign1.relf +e66b2935bce8ee495962c58d43cf2443 incorrect/basicassign1/clang_pic/a.out +3712947f7951e66fba538821e87200a9 incorrect/basicassign1/clang_pic/basicassign1.adt +9075a418c7e1dc3b59b3b652ca5329bd incorrect/basicassign1/clang_pic/basicassign1.bir +c7351a4786bff50138f4b088a09d0c95 incorrect/basicassign1/clang_pic/basicassign1.gts +f49a8bb41a3bf145b5889c87299a578b incorrect/basicassign1/clang_pic/basicassign1.relf +9d1a4d5866bbc0d4798faaff2d943a54 incorrect/basicassign1/gcc/a.out +12f0be934186ad3d803851c3a08ed524 incorrect/basicassign1/gcc/basicassign1.adt +6c956d99ec21783c672618fa9d755968 incorrect/basicassign1/gcc/basicassign1.bir +85cdc31df3715e451dc7fa129d126530 incorrect/basicassign1/gcc/basicassign1.gts +2e92d8ec09a9ea1b8196e5620166d48f incorrect/basicassign1/gcc/basicassign1.relf +2b3e42970190a95cabbc19ad27c72f73 incorrect/basicassign1/gcc_O2/a.out +d0200098486e8ffdbf34579d616baf43 incorrect/basicassign1/gcc_O2/basicassign1.adt +5b738b16cfdceca374e7ec5d1dc45d5a incorrect/basicassign1/gcc_O2/basicassign1.bir +bd3b1e4df2ffa7958c8a7a664791732d incorrect/basicassign1/gcc_O2/basicassign1.gts +c32c21274d303a4391cbf2f958af483e incorrect/basicassign1/gcc_O2/basicassign1.relf +01509a5aae57f1f6ea56d9af06b393fd incorrect/basicassign1/gcc_pic/a.out +744e91791f1bed47077ccdde2bd3f8d0 incorrect/basicassign1/gcc_pic/basicassign1.adt +f3fd913eabe03054524b5b8291fe8cdc incorrect/basicassign1/gcc_pic/basicassign1.bir +1eb06c3bf1eb0ea35660cd83328f5046 incorrect/basicassign1/gcc_pic/basicassign1.gts +ad6ef0faf978f21e0dfe364208239bd1 incorrect/basicassign1/gcc_pic/basicassign1.relf +0e58950dc77a8d63142b477e6fe6b591 incorrect/basicassign2/clang/a.out +af6b671032938ebdee106e412436e0e6 incorrect/basicassign2/clang/basicassign2.adt +295fee9670df4ebc3b352e88c32ea459 incorrect/basicassign2/clang/basicassign2.bir +70e6c3853d2efe605a3147be8a469d76 incorrect/basicassign2/clang/basicassign2.gts +453d7e73c7819c05048bd06dfcb7b2a8 incorrect/basicassign2/clang/basicassign2.relf +ac64aada3a83d648e7946181b82a36f1 incorrect/basicassign2/clang_O2/a.out +ea180e5d8aa11a68b92738a79e4b5b8a incorrect/basicassign2/clang_O2/basicassign2.adt +a227d4cab0e38e7b70e01ddcc4e85b71 incorrect/basicassign2/clang_O2/basicassign2.bir +354fc362e4cedac3149c2db37fff632c incorrect/basicassign2/clang_O2/basicassign2.gts +39b3650d3524adbbc91ef8f656ce564b incorrect/basicassign2/clang_O2/basicassign2.relf +2a5236c3334ff061e9aae55a8dd0fe88 incorrect/basicassign2/clang_pic/a.out +acb7ce148622ec39adb41e2e50839901 incorrect/basicassign2/clang_pic/basicassign2.adt +47ea1051f1874a66112adcfd6c7ef918 incorrect/basicassign2/clang_pic/basicassign2.bir +ddc1c34272c1e9a59a8708bf95f26cf7 incorrect/basicassign2/clang_pic/basicassign2.gts +e96203db91b7702f582c510975eb33be incorrect/basicassign2/clang_pic/basicassign2.relf +2bfb0128a856790bbda4cf7d53a9c242 incorrect/basicassign2/gcc/a.out +dc318643fcfd05ff990bf87bd3a7c228 incorrect/basicassign2/gcc/basicassign2.adt +e2b3a344d84c3f47af200c4b0e09e738 incorrect/basicassign2/gcc/basicassign2.bir +d9b55584e00f64ad6e76f18542e6637e incorrect/basicassign2/gcc/basicassign2.gts +816af3ed5ea608d92f87a695be05e2de incorrect/basicassign2/gcc/basicassign2.relf +2d14bf1e65d811d0628da6248153f22f incorrect/basicassign2/gcc_O2/a.out +80f5bb76f954960d5b205c3613ea57f6 incorrect/basicassign2/gcc_O2/basicassign2.adt +6cc4d2cdeeadfefbbad51ddabae9b6d9 incorrect/basicassign2/gcc_O2/basicassign2.bir +6067dd983257654e11c06998938187b4 incorrect/basicassign2/gcc_O2/basicassign2.gts +ffeeed473b25d66b8f37923c6e1cb5d0 incorrect/basicassign2/gcc_O2/basicassign2.relf +292aac63ddf2f4e716de8d52778cf1d6 incorrect/basicassign2/gcc_pic/a.out +efd92c305a85865e7e856245b7de9ae4 incorrect/basicassign2/gcc_pic/basicassign2.adt +2a7522776af7087d062cb7070d5ea9d2 incorrect/basicassign2/gcc_pic/basicassign2.bir +85582b816254a5f69b5a8b3f9e3f86d0 incorrect/basicassign2/gcc_pic/basicassign2.gts +dcf972da809769f4fcf4ac750b869ebb incorrect/basicassign2/gcc_pic/basicassign2.relf +f76da7406faf2be9a0035c7a8bd31ce4 incorrect/basicassign3/clang/a.out +a4e1bca153a6dccbd86b4f008cd02be1 incorrect/basicassign3/clang/basicassign3.adt +b3fe4a8f7827819d59fefb1a5afe20c4 incorrect/basicassign3/clang/basicassign3.bir +a5cf9340dfb25b5efe1c90b471d36bc1 incorrect/basicassign3/clang/basicassign3.gts +e68a39805bdcf29ab61b3d4fe7a008bf incorrect/basicassign3/clang/basicassign3.relf +2784d0b45b5d25eadde0d0bcafefd8f7 incorrect/basicassign3/clang_O2/a.out +ec2344ba70be3d72ce00d9ff5488d2d5 incorrect/basicassign3/clang_O2/basicassign3.adt +af2ccea6abcf47fac81f69de0f7f8f04 incorrect/basicassign3/clang_O2/basicassign3.bir +edb725a42c5163ae89dd561f7fc64a2c incorrect/basicassign3/clang_O2/basicassign3.gts +5d60e8fe7b05e748286dd6bd1b92225c incorrect/basicassign3/clang_O2/basicassign3.relf +9245d13c6c2b92d951145213bdb4cdd2 incorrect/basicassign3/clang_pic/a.out +a68ab4f5cad923ba3e2defd828bf4a28 incorrect/basicassign3/clang_pic/basicassign3.adt +4e89c2ee47af663f8d5718ad383d5caf incorrect/basicassign3/clang_pic/basicassign3.bir +8d120184fa4d588261a08c39b5c00b81 incorrect/basicassign3/clang_pic/basicassign3.gts +444bb939537688ee58eb07eeb37a14a7 incorrect/basicassign3/clang_pic/basicassign3.relf +7fa781205cfcdf3af12f8a6b3d60f7a2 incorrect/basicassign3/gcc/a.out +4d68e8b8d9b11f2ddf434b14c7c6dbda incorrect/basicassign3/gcc/basicassign3.adt +2a928cb6dea0928ffaae3b26eb84aa59 incorrect/basicassign3/gcc/basicassign3.bir +abb70c6a5e5b5845872d82de3c9fe3af incorrect/basicassign3/gcc/basicassign3.gts +5b61477b59b10bd9e6666d5bb97418ae incorrect/basicassign3/gcc/basicassign3.relf +08765465e9597bf3ee7da0d24797c9ec incorrect/basicassign3/gcc_O2/a.out +f44ee2f244fddf77d01e2b497113c5a1 incorrect/basicassign3/gcc_O2/basicassign3.adt +36c91cc22d260797a9b86f9d15bc2278 incorrect/basicassign3/gcc_O2/basicassign3.bir +0f57bd57c41d6b61864223ba4b3c79bc incorrect/basicassign3/gcc_O2/basicassign3.gts +a716ff78f9f0b6b1c2e8398f33eea491 incorrect/basicassign3/gcc_O2/basicassign3.relf +73bb96d52241c9ba4cc7381e04f44713 incorrect/basicassign3/gcc_pic/a.out +75c1c0b0a888d675be348de20e97dbdd incorrect/basicassign3/gcc_pic/basicassign3.adt +650a9cee912732e0a5e94983c4da28fe incorrect/basicassign3/gcc_pic/basicassign3.bir +4aa1a3031d768d3abb2e6540b7765921 incorrect/basicassign3/gcc_pic/basicassign3.gts +b2b901a1850dc203e1ad88f1da2b4d97 incorrect/basicassign3/gcc_pic/basicassign3.relf +2aacf01a16f46e016ba98e1252e2dfe7 incorrect/basicassign/clang/a.out +903bbf4a589cfb457ce89735b6f58998 incorrect/basicassign/clang/basicassign.adt +903aa68ce95959c95bd1248f3b4ffc09 incorrect/basicassign/clang/basicassign.bir +2d9fe51a7473a4808ea802417d9976c6 incorrect/basicassign/clang/basicassign.gts +6a42a0a5b75b4c38ce9c549a191f3dca incorrect/basicassign/clang/basicassign.relf +ba8987cdfca34b8e40c36f454b6b11be incorrect/basicassign/clang_O2/a.out +0bfaa3ac538571e0d2bccff2c0bfd274 incorrect/basicassign/clang_O2/basicassign.adt +7467eb7683651b521fcf8de9e917ea82 incorrect/basicassign/clang_O2/basicassign.bir +54438adae1332f7afc93664a5fd4bd31 incorrect/basicassign/clang_O2/basicassign.gts +079047f77e1f0387b868d7a1326dc83f incorrect/basicassign/clang_O2/basicassign.relf +ff1e173d8361422d2ba7321e24376a7a incorrect/basicassign/clang_pic/a.out +833f56d05e319f0be67bb420e58fb5d3 incorrect/basicassign/clang_pic/basicassign.adt +697b5a4cc2d910814fb189e1dee94e04 incorrect/basicassign/clang_pic/basicassign.bir +c5bfa878e264f0a742c741b1c421e57c incorrect/basicassign/clang_pic/basicassign.gts +f5808e858ffb337a55b704d64f05c521 incorrect/basicassign/clang_pic/basicassign.relf +422eb8033107856b45121128ffb26e30 incorrect/basicassign/gcc/a.out +5726552f38009a0fd92f763808207a11 incorrect/basicassign/gcc/basicassign.adt +fb5e548ac239684e39fa3796826f75d4 incorrect/basicassign/gcc/basicassign.bir +e7f1232438d381981fe46e2044bc1405 incorrect/basicassign/gcc/basicassign.gts +8a7f22f9351b0905bdba908fad44d341 incorrect/basicassign/gcc/basicassign.relf +12eb3300eb80bb58762d224cd341dd9f incorrect/basicassign/gcc_O2/a.out +0eee5035181f09f1afdd48b811676806 incorrect/basicassign/gcc_O2/basicassign.adt +9bfab5989107a59d046659aad9c64c74 incorrect/basicassign/gcc_O2/basicassign.bir +74afcfdcbbdce02956741d5ae4c614f3 incorrect/basicassign/gcc_O2/basicassign.gts +468c6df60a7765f2179b1026b3d075d7 incorrect/basicassign/gcc_O2/basicassign.relf +96b387f13285e2b53b1d672abc14018d incorrect/basicassign/gcc_pic/a.out +fe965850ec5ad321a44e1405b0243c23 incorrect/basicassign/gcc_pic/basicassign.adt +2c216e83502f20c46b0882eaaf14ba5e incorrect/basicassign/gcc_pic/basicassign.bir +440ffc9ae76bedb02135e93ef792eab1 incorrect/basicassign/gcc_pic/basicassign.gts +05ca6a8d30903467cf0acde35fa07a4e incorrect/basicassign/gcc_pic/basicassign.relf +e7ea8ae290b4385c99f2a5ebe1cb42ef incorrect/iflocal/clang/a.out +e2e1565ebb64bd5133c1e3928eb0ea41 incorrect/iflocal/clang/iflocal.adt +dd50bf2dea71804338962e5badb1aa68 incorrect/iflocal/clang/iflocal.bir +fd023738b9d14f7476ef3f61038aa315 incorrect/iflocal/clang/iflocal.gts +7df027a8b5dd4a4c9cdaaa41fc3bb90e incorrect/iflocal/clang/iflocal.relf +45c5f8851836f56e668b214e138b4401 incorrect/iflocal/gcc/a.out +49838137de38fd15701bab76ad89d2bc incorrect/iflocal/gcc/iflocal.adt +b6d8cef9c2471c88027c27cc8d0cca42 incorrect/iflocal/gcc/iflocal.bir +a6063732b2306343106ae73ce6835eea incorrect/iflocal/gcc/iflocal.gts +c3f196ed63ee15c028a1a91422ea5361 incorrect/iflocal/gcc/iflocal.relf +dfc6042b787d9375e2026c5e29e0a750 incorrect/nestedifglobal/clang/a.out +9e3841ec297f7b8663b2aa41460e80c8 incorrect/nestedifglobal/clang/nestedifglobal.adt +3beb30b73b0022fb5718347f71e19072 incorrect/nestedifglobal/clang/nestedifglobal.bir +b30a3e45f8576a8a1848eb1b58d99ba0 incorrect/nestedifglobal/clang/nestedifglobal.gts +08d0147e58c1b38851f1373d42e4640f incorrect/nestedifglobal/clang/nestedifglobal.relf +c3b267f7efa5aa8cb2eda7c87e042471 incorrect/nestedifglobal/clang_pic/a.out +9d8f1263953dcb871ae61b1933db00ab incorrect/nestedifglobal/clang_pic/nestedifglobal.adt +36216bfa0c5bfa6d0de031b17ee0a887 incorrect/nestedifglobal/clang_pic/nestedifglobal.bir +25bd1d95bf06006367af8e2e174bf5d7 incorrect/nestedifglobal/clang_pic/nestedifglobal.gts +b3c633ddd93dcc2a203d491c479b77b0 incorrect/nestedifglobal/clang_pic/nestedifglobal.relf +b0de489fabba537f5259cc9f416c19e1 incorrect/nestedifglobal/gcc/a.out +fe7a91ba10c07587137279426e53aca5 incorrect/nestedifglobal/gcc/nestedifglobal.adt +2ad9c00ac31d36103429787eeb5bd3a0 incorrect/nestedifglobal/gcc/nestedifglobal.bir +5f9b137d56c560b201f66bff2cd5da47 incorrect/nestedifglobal/gcc/nestedifglobal.gts +6dee997a2830cbabaff7d51283042253 incorrect/nestedifglobal/gcc/nestedifglobal.relf +5a4831f7c580188aa6ac336b0cf0f1a9 incorrect/nestedifglobal/gcc_pic/a.out +829639c034657a3d7b3c0006f77e5f0a incorrect/nestedifglobal/gcc_pic/nestedifglobal.adt +a08ef64a33e6641706414900e6c2c5f7 incorrect/nestedifglobal/gcc_pic/nestedifglobal.bir +2a50bc83927f7275ad3d55ffb9b178e9 incorrect/nestedifglobal/gcc_pic/nestedifglobal.gts +a47a028a779077c6ea3b796391c27097 incorrect/nestedifglobal/gcc_pic/nestedifglobal.relf +98bcf9cdba35dc418cc5f520d1adb6c1 indirect_calls/functionpointer/clang/a.out +5e4558a7d3b32a65e717ab85b233c8f8 indirect_calls/functionpointer/clang/functionpointer.adt +575c1c5b632e8ee231954694bafff25d indirect_calls/functionpointer/clang/functionpointer.bir +13f271148dae5ce19016350741e7004e indirect_calls/functionpointer/clang/functionpointer.relf +c32918302a12841090f3fe8bb2e30d63 indirect_calls/functionpointer/clang_O2/a.out +86ee88d058933c0c5cc1b484803d85ed indirect_calls/functionpointer/clang_O2/functionpointer.adt +903b10bf85f7eb3be73abe406158cdea indirect_calls/functionpointer/clang_O2/functionpointer.bir +3cbbed1e14c1876fa29519a1e472785d indirect_calls/functionpointer/clang_O2/functionpointer.gts +52eeb354c58e4eaed7d2974b40c17f49 indirect_calls/functionpointer/clang_O2/functionpointer.relf +cde0dd1493e74f760c4d3b85fbc38486 indirect_calls/functionpointer/clang_pic/a.out +e2f53148da788ad01910f707b19df54e indirect_calls/functionpointer/clang_pic/functionpointer.adt +4509a51c90ec89581f3e9f0cea0ec3c4 indirect_calls/functionpointer/clang_pic/functionpointer.bir +14df3f414fecb064a4079ce090044615 indirect_calls/functionpointer/clang_pic/functionpointer.relf +5db6785e37ec85bd8fff015a68f93bbc indirect_calls/functionpointer/gcc/a.out +7ad161007df5227568dc2dec7f42dd00 indirect_calls/functionpointer/gcc/functionpointer.adt +fcc3b3c751d05a5c52b98996af29030b indirect_calls/functionpointer/gcc/functionpointer.bir +0ab1a3412aaf5cecdcc948af1d119740 indirect_calls/functionpointer/gcc/functionpointer.relf +01a7ca8e98d1b618bb1a341e0352be95 indirect_calls/functionpointer/gcc_O2/a.out +c9068137bd5912a48dfbe8f7391ee62d indirect_calls/functionpointer/gcc_O2/functionpointer.adt +f918b5f6b681d8772240a60d2c5d25f6 indirect_calls/functionpointer/gcc_O2/functionpointer.bir +2e341ee800405ab5d8a8f3dbcb521e0b indirect_calls/functionpointer/gcc_O2/functionpointer.relf +fa4e1eeb3e808a9ef6dc2cd1f5e76714 indirect_calls/functionpointer/gcc_pic/a.out +52a2af77ac83f3a8ab9f1bee9b396679 indirect_calls/functionpointer/gcc_pic/functionpointer.adt +df83c01d368ba3aea3194cf79e3e93bf indirect_calls/functionpointer/gcc_pic/functionpointer.bir +b763d244a0125710048300c0332de1dd indirect_calls/functionpointer/gcc_pic/functionpointer.relf +cf83be26369d10dba380fb84b5269c22 indirect_calls/indirect_call/clang/a.out +6799733b0eb9ea40adadb026378251d6 indirect_calls/indirect_call/clang/indirect_call.adt +dd93594c541fde6d7a14151218dff1c1 indirect_calls/indirect_call/clang/indirect_call.bir +139d93f429d8076bafddc3cd8d5cef94 indirect_calls/indirect_call/clang/indirect_call.relf +605cf044775dc216d2facdb28cf6db20 indirect_calls/indirect_call/clang_pic/a.out +4f601bf4b2e0bd5f9ca0a8789f6ab7f8 indirect_calls/indirect_call/clang_pic/indirect_call.adt +909b10de60a0dcfbebdb507db0a89180 indirect_calls/indirect_call/clang_pic/indirect_call.bir +b085e7b0c11f01c5849cee99d1f0b226 indirect_calls/indirect_call/clang_pic/indirect_call.relf +e4ac384de28f7a47c89964a310629d04 indirect_calls/indirect_call/gcc/a.out +ee93e8d550d65856dd02bb63f70af7c6 indirect_calls/indirect_call/gcc/indirect_call.adt +4fc4c38ccd9c59166bf5db2fe2ae4dde indirect_calls/indirect_call/gcc/indirect_call.bir +dd6caa559d5e9f1dc667762431a7a07e indirect_calls/indirect_call/gcc/indirect_call.relf +52e9dafeff1c2f27a5fcde67978f561d indirect_calls/indirect_call/gcc_pic/a.out +aada043378532566ea817b385174065f indirect_calls/indirect_call/gcc_pic/indirect_call.adt +4deeba4f77b863b3408c47ce72b7e751 indirect_calls/indirect_call/gcc_pic/indirect_call.bir +f1b7c2382ac5cc0800c9bf3bd80d5287 indirect_calls/indirect_call/gcc_pic/indirect_call.relf +fa3ad51cc9e411e184d2279b1926eb6f indirect_calls/indirect_call_outparam/clang/a.out +6d0c20d0de14265fa769b9c1b55243fb indirect_calls/indirect_call_outparam/clang/indirect_call_outparam.adt +0412c26e4a0bb53942500beca2035584 indirect_calls/indirect_call_outparam/clang/indirect_call_outparam.bir +f0044071d4a516f47709c17029caa492 indirect_calls/indirect_call_outparam/clang/indirect_call_outparam.gts +2db85fd61b3cf160b666a4c7d1e560e0 indirect_calls/indirect_call_outparam/clang/indirect_call_outparam.relf +88ed6dc9099ec024264b7d0472011869 indirect_calls/indirect_call_outparam/gcc/a.out +75806ba23acf9f047efc5c06d130b29a indirect_calls/indirect_call_outparam/gcc/indirect_call_outparam.adt +d2a8d1fb581d318f33a8eb669b8bb4ed indirect_calls/indirect_call_outparam/gcc/indirect_call_outparam.bir +a01ab900cc2925a093ff92cbad037c48 indirect_calls/indirect_call_outparam/gcc/indirect_call_outparam.gts +bafb8d39b49955554cadf3f75665f158 indirect_calls/indirect_call_outparam/gcc/indirect_call_outparam.relf +1004ef92a545bd1bb156cc7c6d06f78c indirect_calls/jumptable2/clang/a.out +1c7264cafe5ce7412ffb2ee7837ef3e8 indirect_calls/jumptable2/clang/jumptable2.adt +83b4dfa3001e1b23221a19367f059b0a indirect_calls/jumptable2/clang/jumptable2.bir +f0309d8fe096729f5904f3307b87ea57 indirect_calls/jumptable2/clang/jumptable2.relf +8ed249d2745623a377d7d4cf48b529d8 indirect_calls/jumptable2/clang_O2/a.out +b40727bbe97560b722505aaac512e9e3 indirect_calls/jumptable2/clang_O2/jumptable2.adt +44b0a44319f4082259be23aa461fd41e indirect_calls/jumptable2/clang_O2/jumptable2.bir +f3580dbcac41cd338f2f098fc5943cd0 indirect_calls/jumptable2/clang_O2/jumptable2.relf +1b67710a1a01eb1e505a3b9317b4c805 indirect_calls/jumptable2/clang_pic/a.out +129242ce12574d72d850e27de39cadc6 indirect_calls/jumptable2/clang_pic/jumptable2.adt +29a13274d6d95607612ac8f10349526e indirect_calls/jumptable2/clang_pic/jumptable2.bir +28ef1b32ac18ba5970eeec6b96c55f7e indirect_calls/jumptable2/clang_pic/jumptable2.relf +2e004774d7aea692b2a018664ba4b564 indirect_calls/jumptable2/gcc/a.out +6fa5c1eaa755eec9ca4d53afd110e195 indirect_calls/jumptable2/gcc/jumptable2.adt +7f3e77791ca62845dd4ca021b9089bdd indirect_calls/jumptable2/gcc/jumptable2.bir +7e256a130afffbec24ccbaf45dd62c0a indirect_calls/jumptable2/gcc/jumptable2.relf +dc2e7bb72da986594bb9df137a355c0f indirect_calls/jumptable2/gcc_O2/a.out +7129474ccc796279c0f9acc0527cf359 indirect_calls/jumptable2/gcc_O2/jumptable2.adt +7387b089ed7a517a98c42bc6a199c3d6 indirect_calls/jumptable2/gcc_O2/jumptable2.bir +af5ce16ef0d57f4a3d7393fba2d77260 indirect_calls/jumptable2/gcc_O2/jumptable2.relf +a571978d1481691c232e6adcbdd05c29 indirect_calls/jumptable2/gcc_pic/a.out +2be04de0417c580d4501da592ee7fe66 indirect_calls/jumptable2/gcc_pic/jumptable2.adt +9a018f900cca5c0be3582450cc714e84 indirect_calls/jumptable2/gcc_pic/jumptable2.bir +d213632d0eb38765741aca7a8c3637dc indirect_calls/jumptable2/gcc_pic/jumptable2.relf +21e969ff34cbf7961d0acb332e527221 indirect_calls/jumptable3/clang/a.out +890fd1edaaa41c95024c660fca4808d2 indirect_calls/jumptable3/clang/jumptable3.adt +46272ea5f66ab5af1dfece905298a83d indirect_calls/jumptable3/clang/jumptable3.bir +55894e67ec113358ece735898e42da32 indirect_calls/jumptable3/clang/jumptable3.gts +6d0bbcadc7200713f531c69ccce5d8a1 indirect_calls/jumptable3/clang/jumptable3.relf +2139db7dfeec143aff5002a254b3908e indirect_calls/jumptable3/clang_O2/a.out +ae340649227c8f898f6f903dd11b7cf1 indirect_calls/jumptable3/clang_O2/jumptable3.adt +c4673b2c7d82cf3da4fec0ef4f970ee3 indirect_calls/jumptable3/clang_O2/jumptable3.bir +c2799ce47612a676e0ff57e02ee1040c indirect_calls/jumptable3/clang_O2/jumptable3.gts +411196bcdb8d9154e3bcc0d6c8ac9692 indirect_calls/jumptable3/clang_O2/jumptable3.relf +0f3036e107a49c5fed60a8aea1cbd682 indirect_calls/jumptable/clang/a.out +e31a2800b5d59f4316907f94418b7034 indirect_calls/jumptable/clang/jumptable.adt +8c411f1b9b3f0d6fa8b4251454705677 indirect_calls/jumptable/clang/jumptable.bir +e90636be465930f1c0cb6c849b1431c7 indirect_calls/jumptable/clang/jumptable.gts +8a717de62bbbccc16b10868289e8e9a6 indirect_calls/jumptable/clang/jumptable.relf +854bcc94a41d60c930f46ba09c9f03ef indirect_calls/jumptable/gcc/a.out +b1299aee553299667f82b405c4f1d411 indirect_calls/jumptable/gcc/jumptable.adt +cd2bfbeb7cb4f51eb9417d4c9f99aee8 indirect_calls/jumptable/gcc/jumptable.bir +3ec1a9e718165a169c2c65d541dc1b16 indirect_calls/jumptable/gcc/jumptable.gts +13c066e49315f1ef77ea7fe8bc8f2123 indirect_calls/jumptable/gcc/jumptable.relf +2ad9c46ee9c38b030eac0f9bef5569ac indirect_calls/switch2/clang/a.out +2fc3656899fc930f5c1259150b210f67 indirect_calls/switch2/clang/switch2.adt +c010533e7fd063ea533e55e19c840ac3 indirect_calls/switch2/clang/switch2.bir +3a2b413fa8e37eaa9b75bf2426cae7d9 indirect_calls/switch2/clang/switch2.gts +e67aafab534e34eae6a62026e46e2f3f indirect_calls/switch2/clang/switch2.relf +bb04b16d71ceb1f52c42953497156b91 indirect_calls/syscall/clang_O2/a.out +02371ffaa0e159863719114221c3198f indirect_calls/syscall/clang_O2/syscall.adt +74a5d13b840ca24ae82c45aebc23ee36 indirect_calls/syscall/clang_O2/syscall.bir +23f35b0d9ec636b7f283d24d86e43756 indirect_calls/syscall/clang_O2/syscall.relf +449c3bad4e7536a3cc228ed704f54ec9 memory_regions/heap_pointer/clang/a.out +b166d6ad2fddcf621276427b5991915a memory_regions/heap_pointer/clang/heap_pointer.adt +519643256d72675d16db5979ba4460d5 memory_regions/heap_pointer/clang/heap_pointer.bir +e4ded8854056de7a41cd52aba2b8ebcc memory_regions/heap_pointer/clang/heap_pointer.relf +9ac8e4802ecf93b2b9fb000c45a4a64a memory_regions/heap_pointer/clang_pic/a.out +9edee15a61463d668668dce709ffd9b8 memory_regions/heap_pointer/clang_pic/heap_pointer.adt +2c70baf4466005181b5b6722014685db memory_regions/heap_pointer/clang_pic/heap_pointer.bir +fa4001fb1b1846e1c42b003ba5eac47c memory_regions/heap_pointer/clang_pic/heap_pointer.relf +2fc029b184150edce20439bb2576bfa8 memory_regions/heap_pointer/gcc/a.out +39d7301d295b35551eae2b3d4e41db02 memory_regions/heap_pointer/gcc/heap_pointer.adt +a1b0ce1f2597e50beef2a7f1feda3c73 memory_regions/heap_pointer/gcc/heap_pointer.bir +6bbb6cd6c15fd9a63bbc3e78b07fcd94 memory_regions/heap_pointer/gcc/heap_pointer.relf +5f1669bdef38a2bf18172804422a2930 memory_regions/heap_pointer/gcc_pic/a.out +06104ba53742bc2cab2699610587031d memory_regions/heap_pointer/gcc_pic/heap_pointer.adt +cbdbe4a2afade5ae15937e9ea2c9a7ed memory_regions/heap_pointer/gcc_pic/heap_pointer.bir +ee378c6538f6495a230a566635703026 memory_regions/heap_pointer/gcc_pic/heap_pointer.relf +0e8d64c26eb38f0d8ff005a65a5ef096 memory_regions/stack_pointer/clang/a.out +4e6ea7de84fffe44fef2d7466aa627a8 memory_regions/stack_pointer/clang_pic/a.out +8a9fccb389f793c1bed7826017de6952 memory_regions/stack_pointer/clang_pic/stack_pointer.adt +4361521fb8342c2dbc4953ae017383b5 memory_regions/stack_pointer/clang_pic/stack_pointer.bir +66974a919e5da9ff72050a2abee95e5b memory_regions/stack_pointer/clang_pic/stack_pointer.relf +c5c8699aee3fd78f488339d33d0fd3db memory_regions/stack_pointer/clang/stack_pointer.adt +b399d13c16367b748d8f428c8b0f6636 memory_regions/stack_pointer/clang/stack_pointer.bir +9feca1fcb9449d1ca16863d73f63bc48 memory_regions/stack_pointer/clang/stack_pointer.relf +63f00b4d7c41225d1a37e6ee2018b1bf procedure_summaries/intervals1/gcc_O2/a.out +0b29a0f7ada788947d2922cd2b782c72 procedure_summaries/intervals1/gcc_O2/intervals1.adt +6a3f4681883aff4def22f858429135be procedure_summaries/intervals1/gcc_O2/intervals1.bir +de8db554d7eb4485dc913d4e93b56ced procedure_summaries/intervals1/gcc_O2/intervals1.gts +52053d7b7d58f71726bf60ec1cd0d9c6 procedure_summaries/intervals1/gcc_O2/intervals1.relf +6cf33fbcfb42c65f0a1381644cbe1ecf procedure_summaries/intervals2/gcc_O2/a.out +cf58cbc859c1ff87c10190ba676ba51e procedure_summaries/intervals2/gcc_O2/intervals2.adt +de10cd79d8fd22b413d37bde6d6772f5 procedure_summaries/intervals2/gcc_O2/intervals2.bir +953da3db5ec27da91da3a53223b3866d procedure_summaries/intervals2/gcc_O2/intervals2.gts +2173d8031db8d9e7fdc3b5e7bf23b6e0 procedure_summaries/intervals2/gcc_O2/intervals2.relf +5b228c19a3af37b5d4266f166cbfc373 procedure_summaries/procedure_summary2/gcc_O2/a.out +097863007279a6a711aee6aabf82bf66 procedure_summaries/procedure_summary2/gcc_O2/procedure_summary2.adt +541c808dba20682e62d1a30df0f78f12 procedure_summaries/procedure_summary2/gcc_O2/procedure_summary2.bir +6a118cda48eea464f345419bd75e7545 procedure_summaries/procedure_summary2/gcc_O2/procedure_summary2.gts +687ae99033a845a2e87342ecfea99677 procedure_summaries/procedure_summary2/gcc_O2/procedure_summary2.relf +9fe095f40d22cefa661e8ccb25aa00fe procedure_summaries/procedure_summary3/gcc_O2/a.out +ec4edfb5973727ca22b219e437dd1870 procedure_summaries/procedure_summary3/gcc_O2/procedure_summary3.adt +4898a27895e7344606c7c3f8f9b5808c procedure_summaries/procedure_summary3/gcc_O2/procedure_summary3.bir +f4b1137ade84f8da77984d4896c65a41 procedure_summaries/procedure_summary3/gcc_O2/procedure_summary3.gts +23889ef21ccf2bacbd2134dba052340b procedure_summaries/procedure_summary3/gcc_O2/procedure_summary3.relf +d40fdbda7bd2c52dcaaf7f9024995473 procedure_summaries/procedure_summary4/gcc_O2/a.out +2c5adc756bd882cba3162d6bbc8a80d2 procedure_summaries/procedure_summary4/gcc_O2/procedure_summary4.adt +f06328ce54998153360f3681d51861de procedure_summaries/procedure_summary4/gcc_O2/procedure_summary4.bir +60be787c29b396c235e5f929bc863e50 procedure_summaries/procedure_summary4/gcc_O2/procedure_summary4.gts +a825b17e56f7bf75b7b36faac7cc35dc procedure_summaries/procedure_summary4/gcc_O2/procedure_summary4.relf +16b45c56a66493255a57ff3ec1f58d5f procedure_summaries/procedure_summary5/gcc_O2/a.out +6d8455ecf6b632b89d569de611d382d1 procedure_summaries/procedure_summary5/gcc_O2/procedure_summary5.gts +e7cac78eea8207067df7fa9946846f51 procedure_summaries/procedure_summary5/gcc_O2/procedure_summary5.relf +4e8ab74907481bb806b7bad079d4ec4c procedure_summaries/procedure_summary/gcc/a.out +a0b4ba57d6059ac554e01b21e503a53c procedure_summaries/procedure_summary/gcc/procedure_summary.adt +952c695258b4c1a9a4c5e07546d721a1 procedure_summaries/procedure_summary/gcc/procedure_summary.bir +cc521e06569137b8e6d722f760cf19be procedure_summaries/procedure_summary/gcc/procedure_summary.gts +dd7c1f3412b9fa5d6cc50270c94f1403 procedure_summaries/procedure_summary/gcc/procedure_summary.relf +f947f673afd37cb1dcdbcb8a45cb0b1f procedure_summaries/wp1/gcc_O2/a.out +76d27171d704186e1c5c4a0419e3a9f5 procedure_summaries/wp1/gcc_O2/wp1.adt +fd11e7a12d7f06211997da8d92468c2b procedure_summaries/wp1/gcc_O2/wp1.bir +4d81af6d4dcf1d12ab641680ebaf9e24 procedure_summaries/wp1/gcc_O2/wp1.gts +70d452aa6c3993a27aace9d5fc012463 procedure_summaries/wp1/gcc_O2/wp1.relf diff --git a/src/test/compiled.url.txt b/src/test/compiled.url.txt new file mode 100644 index 000000000..696c7e003 --- /dev/null +++ b/src/test/compiled.url.txt @@ -0,0 +1,12 @@ +https://files.catbox.moe/9nn6b8.zst + +# this file should have a URL as its first line +# and a sha1sum as its last line. all other +# lines are ignored. +# +# sha1sum is used here because md5 collisions can be computed, +# and this file might be placed into a third-party server. +# +# make sure to update both URL and sha1sum simultaneously. + +1bbce115cdc97bf06daff1195aedb376e386e719 compiled.tar.zst diff --git a/src/test/correct/arrays_simple/clang/arrays_simple.adt b/src/test/correct/arrays_simple/clang/arrays_simple.adt deleted file mode 100644 index 7dee587ad..000000000 --- a/src/test/correct/arrays_simple/clang/arrays_simple.adt +++ /dev/null @@ -1,514 +0,0 @@ -Project(Attrs([Attr("filename","\"clang/arrays_simple.out\""), -Attr("image-specification","(declare abi (name str))\n(declare arch (name str))\n(declare base-address (addr int))\n(declare bias (off int))\n(declare bits (size int))\n(declare code-region (addr int) (size int) (off int))\n(declare code-start (addr int))\n(declare entry-point (addr int))\n(declare external-reference (addr int) (name str))\n(declare format (name str))\n(declare is-executable (flag bool))\n(declare is-little-endian (flag bool))\n(declare llvm:base-address (addr int))\n(declare llvm:code-entry (name str) (off int) (size int))\n(declare llvm:coff-import-library (name str))\n(declare llvm:coff-virtual-section-header (name str) (addr int) (size int))\n(declare llvm:elf-program-header (name str) (off int) (size int))\n(declare llvm:elf-program-header-flags (name str) (ld bool) (r bool) \n (w bool) (x bool))\n(declare llvm:elf-virtual-program-header (name str) (addr int) (size int))\n(declare llvm:entry-point (addr int))\n(declare llvm:macho-symbol (name str) (value int))\n(declare llvm:name-reference (at int) (name str))\n(declare llvm:relocation (at int) (addr int))\n(declare llvm:section-entry (name str) (addr int) (size int) (off int))\n(declare llvm:section-flags (name str) (r bool) (w bool) (x bool))\n(declare llvm:segment-command (name str) (off int) (size int))\n(declare llvm:segment-command-flags (name str) (r bool) (w bool) (x bool))\n(declare llvm:symbol-entry (name str) (addr int) (size int) (off int)\n (value int))\n(declare llvm:virtual-segment-command (name str) (addr int) (size int))\n(declare mapped (addr int) (size int) (off int))\n(declare named-region (addr int) (size int) (name str))\n(declare named-symbol (addr int) (name str))\n(declare require (name str))\n(declare section (addr int) (size int))\n(declare segment (addr int) (size int) (r bool) (w bool) (x bool))\n(declare subarch (name str))\n(declare symbol-chunk (addr int) (size int) (root int))\n(declare symbol-value (addr int) (value int))\n(declare system (name str))\n(declare vendor (name str))\n\n(abi unknown)\n(arch aarch64)\n(base-address 0)\n(bias 0)\n(bits 64)\n(code-region 1852 20 1852)\n(code-region 1536 316 1536)\n(code-region 1440 96 1440)\n(code-region 1408 24 1408)\n(code-start 1588)\n(code-start 1536)\n(code-start 1812)\n(entry-point 1536)\n(external-reference 69568 _ITM_deregisterTMCloneTable)\n(external-reference 69576 __cxa_finalize)\n(external-reference 69584 __gmon_start__)\n(external-reference 69600 _ITM_registerTMCloneTable)\n(external-reference 69632 __libc_start_main)\n(external-reference 69640 __cxa_finalize)\n(external-reference 69648 __gmon_start__)\n(external-reference 69656 abort)\n(format elf)\n(is-executable true)\n(is-little-endian true)\n(llvm:base-address 0)\n(llvm:code-entry abort 0 0)\n(llvm:code-entry __cxa_finalize 0 0)\n(llvm:code-entry __libc_start_main 0 0)\n(llvm:code-entry _init 1408 0)\n(llvm:code-entry main 1812 40)\n(llvm:code-entry _start 1536 52)\n(llvm:code-entry abort@GLIBC_2.17 0 0)\n(llvm:code-entry _fini 1852 0)\n(llvm:code-entry __cxa_finalize@GLIBC_2.17 0 0)\n(llvm:code-entry __libc_start_main@GLIBC_2.34 0 0)\n(llvm:code-entry frame_dummy 1808 0)\n(llvm:code-entry __do_global_dtors_aux 1728 0)\n(llvm:code-entry register_tm_clones 1664 0)\n(llvm:code-entry deregister_tm_clones 1616 0)\n(llvm:code-entry call_weak_fn 1588 20)\n(llvm:code-entry .fini 1852 20)\n(llvm:code-entry .text 1536 316)\n(llvm:code-entry .plt 1440 96)\n(llvm:code-entry .init 1408 24)\n(llvm:elf-program-header 08 3528 568)\n(llvm:elf-program-header 07 0 0)\n(llvm:elf-program-header 06 1876 60)\n(llvm:elf-program-header 05 596 68)\n(llvm:elf-program-header 04 3544 480)\n(llvm:elf-program-header 03 3528 616)\n(llvm:elf-program-header 02 0 2120)\n(llvm:elf-program-header 01 568 27)\n(llvm:elf-program-header 00 64 504)\n(llvm:elf-program-header-flags 08 false true false false)\n(llvm:elf-program-header-flags 07 false true true false)\n(llvm:elf-program-header-flags 06 false true false false)\n(llvm:elf-program-header-flags 05 false true false false)\n(llvm:elf-program-header-flags 04 false true true false)\n(llvm:elf-program-header-flags 03 true true true false)\n(llvm:elf-program-header-flags 02 true true false true)\n(llvm:elf-program-header-flags 01 false true false false)\n(llvm:elf-program-header-flags 00 false true false false)\n(llvm:elf-virtual-program-header 08 69064 568)\n(llvm:elf-virtual-program-header 07 0 0)\n(llvm:elf-virtual-program-header 06 1876 60)\n(llvm:elf-virtual-program-header 05 596 68)\n(llvm:elf-virtual-program-header 04 69080 480)\n(llvm:elf-virtual-program-header 03 69064 624)\n(llvm:elf-virtual-program-header 02 0 2120)\n(llvm:elf-virtual-program-header 01 568 27)\n(llvm:elf-virtual-program-header 00 64 504)\n(llvm:entry-point 1536)\n(llvm:name-reference 69656 abort)\n(llvm:name-reference 69648 __gmon_start__)\n(llvm:name-reference 69640 __cxa_finalize)\n(llvm:name-reference 69632 __libc_start_main)\n(llvm:name-reference 69600 _ITM_registerTMCloneTable)\n(llvm:name-reference 69584 __gmon_start__)\n(llvm:name-reference 69576 __cxa_finalize)\n(llvm:name-reference 69568 _ITM_deregisterTMCloneTable)\n(llvm:section-entry .shstrtab 0 259 6892)\n(llvm:section-entry .strtab 0 564 6328)\n(llvm:section-entry .symtab 0 2112 4216)\n(llvm:section-entry .comment 0 71 4144)\n(llvm:section-entry .bss 69680 8 4144)\n(llvm:section-entry .data 69664 16 4128)\n(llvm:section-entry .got.plt 69608 56 4072)\n(llvm:section-entry .got 69560 48 4024)\n(llvm:section-entry .dynamic 69080 480 3544)\n(llvm:section-entry .fini_array 69072 8 3536)\n(llvm:section-entry .init_array 69064 8 3528)\n(llvm:section-entry .eh_frame 1936 184 1936)\n(llvm:section-entry .eh_frame_hdr 1876 60 1876)\n(llvm:section-entry .rodata 1872 4 1872)\n(llvm:section-entry .fini 1852 20 1852)\n(llvm:section-entry .text 1536 316 1536)\n(llvm:section-entry .plt 1440 96 1440)\n(llvm:section-entry .init 1408 24 1408)\n(llvm:section-entry .rela.plt 1312 96 1312)\n(llvm:section-entry .rela.dyn 1120 192 1120)\n(llvm:section-entry .gnu.version_r 1072 48 1072)\n(llvm:section-entry .gnu.version 1054 18 1054)\n(llvm:section-entry .dynstr 912 141 912)\n(llvm:section-entry .dynsym 696 216 696)\n(llvm:section-entry .gnu.hash 664 28 664)\n(llvm:section-entry .note.ABI-tag 632 32 632)\n(llvm:section-entry .note.gnu.build-id 596 36 596)\n(llvm:section-entry .interp 568 27 568)\n(llvm:section-flags .shstrtab true false false)\n(llvm:section-flags .strtab true false false)\n(llvm:section-flags .symtab true false false)\n(llvm:section-flags .comment true false false)\n(llvm:section-flags .bss true true false)\n(llvm:section-flags .data true true false)\n(llvm:section-flags .got.plt true true false)\n(llvm:section-flags .got true true false)\n(llvm:section-flags .dynamic true true false)\n(llvm:section-flags .fini_array true true false)\n(llvm:section-flags .init_array true true false)\n(llvm:section-flags .eh_frame true false false)\n(llvm:section-flags .eh_frame_hdr true false false)\n(llvm:section-flags .rodata true false false)\n(llvm:section-flags .fini true false true)\n(llvm:section-flags .text true false true)\n(llvm:section-flags .plt true false true)\n(llvm:section-flags .init true false true)\n(llvm:section-flags .rela.plt true false false)\n(llvm:section-flags .rela.dyn true false false)\n(llvm:section-flags .gnu.version_r true false false)\n(llvm:section-flags .gnu.version true false false)\n(llvm:section-flags .dynstr true false false)\n(llvm:section-flags .dynsym true false false)\n(llvm:section-flags .gnu.hash true false false)\n(llvm:section-flags .note.ABI-tag true false false)\n(llvm:section-flags .note.gnu.build-id true false false)\n(llvm:section-flags .interp true false false)\n(llvm:symbol-entry abort 0 0 0 0)\n(llvm:symbol-entry __cxa_finalize 0 0 0 0)\n(llvm:symbol-entry __libc_start_main 0 0 0 0)\n(llvm:symbol-entry _init 1408 0 1408 1408)\n(llvm:symbol-entry main 1812 40 1812 1812)\n(llvm:symbol-entry _start 1536 52 1536 1536)\n(llvm:symbol-entry abort@GLIBC_2.17 0 0 0 0)\n(llvm:symbol-entry _fini 1852 0 1852 1852)\n(llvm:symbol-entry __cxa_finalize@GLIBC_2.17 0 0 0 0)\n(llvm:symbol-entry __libc_start_main@GLIBC_2.34 0 0 0 0)\n(llvm:symbol-entry frame_dummy 1808 0 1808 1808)\n(llvm:symbol-entry __do_global_dtors_aux 1728 0 1728 1728)\n(llvm:symbol-entry register_tm_clones 1664 0 1664 1664)\n(llvm:symbol-entry deregister_tm_clones 1616 0 1616 1616)\n(llvm:symbol-entry call_weak_fn 1588 20 1588 1588)\n(mapped 0 2120 0)\n(mapped 69064 616 3528)\n(named-region 0 2120 02)\n(named-region 69064 624 03)\n(named-region 568 27 .interp)\n(named-region 596 36 .note.gnu.build-id)\n(named-region 632 32 .note.ABI-tag)\n(named-region 664 28 .gnu.hash)\n(named-region 696 216 .dynsym)\n(named-region 912 141 .dynstr)\n(named-region 1054 18 .gnu.version)\n(named-region 1072 48 .gnu.version_r)\n(named-region 1120 192 .rela.dyn)\n(named-region 1312 96 .rela.plt)\n(named-region 1408 24 .init)\n(named-region 1440 96 .plt)\n(named-region 1536 316 .text)\n(named-region 1852 20 .fini)\n(named-region 1872 4 .rodata)\n(named-region 1876 60 .eh_frame_hdr)\n(named-region 1936 184 .eh_frame)\n(named-region 69064 8 .init_array)\n(named-region 69072 8 .fini_array)\n(named-region 69080 480 .dynamic)\n(named-region 69560 48 .got)\n(named-region 69608 56 .got.plt)\n(named-region 69664 16 .data)\n(named-region 69680 8 .bss)\n(named-region 0 71 .comment)\n(named-region 0 2112 .symtab)\n(named-region 0 564 .strtab)\n(named-region 0 259 .shstrtab)\n(named-symbol 1588 call_weak_fn)\n(named-symbol 1616 deregister_tm_clones)\n(named-symbol 1664 register_tm_clones)\n(named-symbol 1728 __do_global_dtors_aux)\n(named-symbol 1808 frame_dummy)\n(named-symbol 0 __libc_start_main@GLIBC_2.34)\n(named-symbol 0 __cxa_finalize@GLIBC_2.17)\n(named-symbol 1852 _fini)\n(named-symbol 0 abort@GLIBC_2.17)\n(named-symbol 1536 _start)\n(named-symbol 1812 main)\n(named-symbol 1408 _init)\n(named-symbol 0 __libc_start_main)\n(named-symbol 0 __cxa_finalize)\n(named-symbol 0 abort)\n(require libc.so.6)\n(section 568 27)\n(section 596 36)\n(section 632 32)\n(section 664 28)\n(section 696 216)\n(section 912 141)\n(section 1054 18)\n(section 1072 48)\n(section 1120 192)\n(section 1312 96)\n(section 1408 24)\n(section 1440 96)\n(section 1536 316)\n(section 1852 20)\n(section 1872 4)\n(section 1876 60)\n(section 1936 184)\n(section 69064 8)\n(section 69072 8)\n(section 69080 480)\n(section 69560 48)\n(section 69608 56)\n(section 69664 16)\n(section 69680 8)\n(section 0 71)\n(section 0 2112)\n(section 0 564)\n(section 0 259)\n(segment 0 2120 true false true)\n(segment 69064 624 true true false)\n(subarch v8)\n(symbol-chunk 1588 20 1588)\n(symbol-chunk 1536 52 1536)\n(symbol-chunk 1812 40 1812)\n(symbol-value 1588 1588)\n(symbol-value 1616 1616)\n(symbol-value 1664 1664)\n(symbol-value 1728 1728)\n(symbol-value 1808 1808)\n(symbol-value 1852 1852)\n(symbol-value 1536 1536)\n(symbol-value 1812 1812)\n(symbol-value 1408 1408)\n(symbol-value 0 0)\n(system \"\")\n(vendor \"\")\n"), -Attr("abi-name","\"aarch64-linux-gnu-elf\"")]), -Sections([Section(".shstrtab", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x00\x06\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xf0\x1b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x38\x00\x09\x00\x40\x00\x1d\x00\x1c\x00\x06\x00\x00\x00\x04\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x04\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x48\x08\x00\x00\x00\x00\x00\x00\x48\x08\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x01\x00\x00\x00\x06\x00\x00\x00\xc8\x0d\x00\x00\x00\x00\x00\x00\xc8\x0d\x01\x00\x00\x00\x00\x00\xc8\x0d\x01"), -Section(".strtab", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x00\x06\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xf0\x1b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x38\x00\x09\x00\x40\x00\x1d\x00\x1c\x00\x06\x00\x00\x00\x04\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x04\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x48\x08\x00\x00\x00\x00\x00\x00\x48\x08\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x01\x00\x00\x00\x06\x00\x00\x00\xc8\x0d\x00\x00\x00\x00\x00\x00\xc8\x0d\x01\x00\x00\x00\x00\x00\xc8\x0d\x01\x00\x00\x00\x00\x00\x68\x02\x00\x00\x00\x00\x00\x00\x70\x02\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x02\x00\x00\x00\x06\x00\x00\x00\xd8\x0d\x00\x00\x00\x00\x00\x00\xd8\x0d\x01\x00\x00\x00\x00\x00\xd8\x0d\x01\x00\x00\x00\x00\x00\xe0\x01\x00\x00\x00\x00\x00\x00\xe0\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x04\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x50\xe5\x74\x64\x04\x00\x00\x00\x54\x07\x00\x00\x00\x00\x00\x00\x54\x07\x00\x00\x00\x00\x00\x00\x54\x07\x00\x00\x00\x00\x00\x00\x3c\x00\x00\x00\x00\x00\x00\x00\x3c\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x51\xe5\x74\x64\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x52\xe5\x74\x64\x04\x00\x00\x00\xc8\x0d\x00\x00\x00\x00\x00\x00\xc8\x0d\x01\x00\x00\x00\x00\x00\xc8\x0d\x01\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00"), -Section(".symtab", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x00\x06\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xf0\x1b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x38\x00\x09\x00\x40\x00\x1d\x00\x1c\x00\x06\x00\x00\x00\x04\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x04\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x48\x08\x00\x00\x00\x00\x00\x00\x48\x08\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x01\x00\x00\x00\x06\x00\x00\x00\xc8\x0d\x00\x00\x00\x00\x00\x00\xc8\x0d\x01\x00\x00\x00\x00\x00\xc8\x0d\x01\x00\x00\x00\x00\x00\x68\x02\x00\x00\x00\x00\x00\x00\x70\x02\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x02\x00\x00\x00\x06\x00\x00\x00\xd8\x0d\x00\x00\x00\x00\x00\x00\xd8\x0d\x01\x00\x00\x00\x00\x00\xd8\x0d\x01\x00\x00\x00\x00\x00\xe0\x01\x00\x00\x00\x00\x00\x00\xe0\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x04\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x50\xe5\x74\x64\x04\x00\x00\x00\x54\x07\x00\x00\x00\x00\x00\x00\x54\x07\x00\x00\x00\x00\x00\x00\x54\x07\x00\x00\x00\x00\x00\x00\x3c\x00\x00\x00\x00\x00\x00\x00\x3c\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x51\xe5\x74\x64\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x52\xe5\x74\x64\x04\x00\x00\x00\xc8\x0d\x00\x00\x00\x00\x00\x00\xc8\x0d\x01\x00\x00\x00\x00\x00\xc8\x0d\x01\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x2f\x6c\x69\x62\x2f\x6c\x64\x2d\x6c\x69\x6e\x75\x78\x2d\x61\x61\x72\x63\x68\x36\x34\x2e\x73\x6f\x2e\x31\x00\x00\x04\x00\x00\x00\x14\x00\x00\x00\x03\x00\x00\x00\x47\x4e\x55\x00\x8b\x63\xff\xdb\x7b\xd7\xc7\x93\x31\x9d\xf8\x74\x3b\x85\xb7\x31\x0b\x78\x3e\x99\x04\x00\x00\x00\x10\x00\x00\x00\x01\x00\x00\x00\x47\x4e\x55\x00\x00\x00\x00\x00\x03\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x01\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x0b\x00\x80\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x17\x00\x20\x10\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x48\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x22\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x22\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x73\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5f\x5f\x63\x78\x61\x5f\x66\x69\x6e\x61\x6c\x69\x7a\x65\x00\x5f\x5f\x6c\x69\x62\x63\x5f\x73\x74\x61\x72\x74\x5f\x6d\x61\x69\x6e\x00\x61\x62\x6f\x72\x74\x00\x6c\x69\x62\x63\x2e\x73\x6f\x2e\x36\x00\x47\x4c\x49\x42\x43\x5f\x32\x2e\x31\x37\x00\x47\x4c\x49\x42\x43\x5f\x32\x2e\x33\x34\x00\x5f\x49\x54\x4d\x5f\x64\x65\x72\x65\x67\x69\x73\x74\x65\x72\x54\x4d\x43\x6c\x6f\x6e\x65\x54\x61\x62\x6c\x65\x00\x5f\x5f\x67\x6d\x6f\x6e\x5f\x73\x74\x61\x72\x74\x5f\x5f\x00\x5f\x49\x54\x4d\x5f\x72\x65\x67\x69\x73\x74\x65\x72\x54\x4d\x43\x6c\x6f\x6e\x65\x54\x61\x62\x6c\x65\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x01\x00\x03\x00\x01\x00\x03\x00\x01\x00\x01\x00\x02\x00\x28\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x97\x91\x96\x06\x00\x00\x03\x00\x32\x00\x00\x00\x10\x00\x00\x00\xb4\x91\x96\x06\x00\x00\x02\x00\x3d\x00\x00\x00\x00\x00\x00\x00\xc8\x0d\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x10\x07\x00\x00\x00\x00\x00\x00\xd0\x0d\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\xc0\x06\x00\x00\x00\x00\x00\x00\xd8\x0f\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x14\x07\x00\x00\x00\x00\x00\x00\x28\x10\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x28\x10\x01\x00\x00\x00\x00\x00\xc0\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xc8\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xd0\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe0\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x08\x10\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x10\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x18\x10\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1f\x20\x03\xd5\xfd\x7b\xbf\xa9\xfd\x03\x00\x91\x2a\x00\x00\x94\xfd\x7b\xc1\xa8\xc0\x03\x5f\xd6\x00\x00\x00\x00\x00\x00\x00\x00\xf0\x7b\xbf\xa9\x90\x00\x00\x90\x11\xfe\x47\xf9\x10\xe2\x3f\x91\x20\x02\x1f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x90\x00\x00\xb0\x11\x02\x40\xf9\x10\x02\x00\x91\x20\x02\x1f\xd6\x90\x00\x00\xb0\x11\x06\x40\xf9\x10\x22\x00\x91\x20\x02\x1f\xd6\x90\x00\x00\xb0\x11\x0a\x40\xf9\x10\x42\x00\x91\x20\x02\x1f\xd6\x90\x00\x00\xb0\x11\x0e\x40\xf9\x10\x62\x00\x91\x20\x02\x1f\xd6\x1f\x20\x03\xd5\x1d\x00\x80\xd2\x1e\x00\x80\xd2\xe5\x03\x00\xaa\xe1\x03\x40\xf9\xe2\x23\x00\x91\xe6\x03\x00\x91\x80\x00\x00\x90\x00\xec\x47\xf9\x03\x00\x80\xd2\x04\x00\x80\xd2\xe5\xff\xff\x97\xf0\xff\xff\x97\x80\x00\x00\x90\x00\xe8\x47\xf9\x40\x00\x00\xb4\xe8\xff\xff\x17\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x80\x00\x00\xb0\x00\xc0\x00\x91\x81\x00\x00\xb0\x21\xc0\x00\x91\x3f\x00\x00\xeb\xc0\x00\x00\x54\x81\x00\x00\x90\x21\xe0\x47\xf9\x61\x00\x00\xb4\xf0\x03\x01\xaa\x00\x02\x1f\xd6\xc0\x03\x5f\xd6\x80\x00\x00\xb0\x00\xc0\x00\x91\x81\x00\x00\xb0\x21\xc0\x00\x91\x21\x00\x00\xcb\x22\xfc\x7f\xd3\x41\x0c\x81\x8b\x21\xfc\x41\x93\xc1\x00\x00\xb4\x82\x00\x00\x90\x42\xf0\x47\xf9\x62\x00\x00\xb4\xf0\x03\x02\xaa\x00\x02\x1f\xd6\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\xfd\x7b\xbe\xa9\xfd\x03\x00\x91\xf3\x0b\x00\xf9\x93\x00\x00\xb0\x60\xc2\x40\x39\x40\x01\x00\x35\x80\x00\x00\x90\x00\xe4\x47\xf9\x80\x00\x00\xb4\x80\x00\x00\xb0\x00\x14\x40\xf9\xb9\xff\xff\x97\xd8\xff\xff\x97\x20\x00\x80\x52\x60\xc2\x00\x39\xf3\x0b\x40\xf9\xfd\x7b\xc2\xa8\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\xdc\xff\xff\x17\xff\x83\x00\xd1\x68\x00\x80\x52\xe8\x17\x00\xb9\xe8\x00\x80\x52\xe8\x1f\x00\xb9\xe8\x17\x40\xb9\xe8\x0b\x00\xb9\xe0\x03\x1f\x2a\xff\x83\x00\x91\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\xfd\x7b\xbf\xa9\xfd\x03\x00\x91\xfd\x7b\xc1\xa8\xc0\x03\x5f\xd6\x01\x00\x02\x00\x01\x1b\x03\x3b\x38\x00\x00\x00\x06\x00\x00\x00\xac\xfe\xff\xff\x50\x00\x00\x00\xfc\xfe\xff\xff\x64\x00\x00\x00\x2c\xff\xff\xff\x78\x00\x00\x00\x6c\xff\xff\xff\x8c\x00\x00\x00\xbc\xff\xff\xff\xb0\x00\x00\x00\xc0\xff\xff\xff\xd8\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x01\x7a\x52\x00\x04\x78\x1e\x01\x1b\x0c\x1f\x00\x10\x00\x00\x00\x18\x00\x00\x00\x54\xfe\xff\xff\x34\x00\x00\x00\x00\x41\x07\x1e\x10\x00\x00\x00\x2c\x00\x00\x00\x90\xfe\xff\xff\x30\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x40\x00\x00\x00\xac\xfe\xff\xff\x3c\x00\x00\x00\x00\x00\x00\x00\x20\x00\x00\x00\x54\x00\x00\x00\xd8\xfe\xff\xff\x48\x00\x00\x00\x00\x41\x0e\x20\x9d\x04\x9e\x03\x42\x93\x02\x4e\xde\xdd\xd3\x0e\x00\x00\x00\x00\x10\x00\x00\x00\x78\x00\x00\x00\x04\xff\xff\xff\x04\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x01\x7a\x52\x00\x01\x7c\x1e\x01\x1b\x0c\x1f\x00\x14\x00\x00\x00\x18\x00\x00\x00\xe0\xfe\xff\xff\x28\x00\x00\x00\x00\x44\x0e\x20"), -Section(".comment", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x00\x06\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xf0\x1b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x38\x00\x09\x00\x40\x00\x1d\x00\x1c\x00\x06\x00\x00\x00\x04\x00\x00"), -Section(".interp", 0x238, "\x2f\x6c\x69\x62\x2f\x6c\x64\x2d\x6c\x69\x6e\x75\x78\x2d\x61\x61\x72\x63\x68\x36\x34\x2e\x73\x6f\x2e\x31\x00"), -Section(".note.gnu.build-id", 0x254, "\x04\x00\x00\x00\x14\x00\x00\x00\x03\x00\x00\x00\x47\x4e\x55\x00\x8b\x63\xff\xdb\x7b\xd7\xc7\x93\x31\x9d\xf8\x74\x3b\x85\xb7\x31\x0b\x78\x3e\x99"), -Section(".note.ABI-tag", 0x278, "\x04\x00\x00\x00\x10\x00\x00\x00\x01\x00\x00\x00\x47\x4e\x55\x00\x00\x00\x00\x00\x03\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00"), -Section(".gnu.hash", 0x298, "\x01\x00\x00\x00\x01\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".dynsym", 0x2B8, "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x0b\x00\x80\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x17\x00\x20\x10\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x48\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x22\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x22\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x73\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".dynstr", 0x390, "\x00\x5f\x5f\x63\x78\x61\x5f\x66\x69\x6e\x61\x6c\x69\x7a\x65\x00\x5f\x5f\x6c\x69\x62\x63\x5f\x73\x74\x61\x72\x74\x5f\x6d\x61\x69\x6e\x00\x61\x62\x6f\x72\x74\x00\x6c\x69\x62\x63\x2e\x73\x6f\x2e\x36\x00\x47\x4c\x49\x42\x43\x5f\x32\x2e\x31\x37\x00\x47\x4c\x49\x42\x43\x5f\x32\x2e\x33\x34\x00\x5f\x49\x54\x4d\x5f\x64\x65\x72\x65\x67\x69\x73\x74\x65\x72\x54\x4d\x43\x6c\x6f\x6e\x65\x54\x61\x62\x6c\x65\x00\x5f\x5f\x67\x6d\x6f\x6e\x5f\x73\x74\x61\x72\x74\x5f\x5f\x00\x5f\x49\x54\x4d\x5f\x72\x65\x67\x69\x73\x74\x65\x72\x54\x4d\x43\x6c\x6f\x6e\x65\x54\x61\x62\x6c\x65\x00"), -Section(".gnu.version", 0x41E, "\x00\x00\x00\x00\x00\x00\x02\x00\x01\x00\x03\x00\x01\x00\x03\x00\x01\x00"), -Section(".gnu.version_r", 0x430, "\x01\x00\x02\x00\x28\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x97\x91\x96\x06\x00\x00\x03\x00\x32\x00\x00\x00\x10\x00\x00\x00\xb4\x91\x96\x06\x00\x00\x02\x00\x3d\x00\x00\x00\x00\x00\x00\x00"), -Section(".rela.dyn", 0x460, "\xc8\x0d\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x10\x07\x00\x00\x00\x00\x00\x00\xd0\x0d\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\xc0\x06\x00\x00\x00\x00\x00\x00\xd8\x0f\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x14\x07\x00\x00\x00\x00\x00\x00\x28\x10\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x28\x10\x01\x00\x00\x00\x00\x00\xc0\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xc8\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xd0\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe0\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".rela.plt", 0x520, "\x00\x10\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x08\x10\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x10\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x18\x10\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".init", 0x580, "\x1f\x20\x03\xd5\xfd\x7b\xbf\xa9\xfd\x03\x00\x91\x2a\x00\x00\x94\xfd\x7b\xc1\xa8\xc0\x03\x5f\xd6"), -Section(".plt", 0x5A0, "\xf0\x7b\xbf\xa9\x90\x00\x00\x90\x11\xfe\x47\xf9\x10\xe2\x3f\x91\x20\x02\x1f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x90\x00\x00\xb0\x11\x02\x40\xf9\x10\x02\x00\x91\x20\x02\x1f\xd6\x90\x00\x00\xb0\x11\x06\x40\xf9\x10\x22\x00\x91\x20\x02\x1f\xd6\x90\x00\x00\xb0\x11\x0a\x40\xf9\x10\x42\x00\x91\x20\x02\x1f\xd6\x90\x00\x00\xb0\x11\x0e\x40\xf9\x10\x62\x00\x91\x20\x02\x1f\xd6"), -Section(".fini", 0x73C, "\x1f\x20\x03\xd5\xfd\x7b\xbf\xa9\xfd\x03\x00\x91\xfd\x7b\xc1\xa8\xc0\x03\x5f\xd6"), -Section(".rodata", 0x750, "\x01\x00\x02\x00"), -Section(".eh_frame_hdr", 0x754, "\x01\x1b\x03\x3b\x38\x00\x00\x00\x06\x00\x00\x00\xac\xfe\xff\xff\x50\x00\x00\x00\xfc\xfe\xff\xff\x64\x00\x00\x00\x2c\xff\xff\xff\x78\x00\x00\x00\x6c\xff\xff\xff\x8c\x00\x00\x00\xbc\xff\xff\xff\xb0\x00\x00\x00\xc0\xff\xff\xff\xd8\x00\x00\x00"), -Section(".eh_frame", 0x790, "\x10\x00\x00\x00\x00\x00\x00\x00\x01\x7a\x52\x00\x04\x78\x1e\x01\x1b\x0c\x1f\x00\x10\x00\x00\x00\x18\x00\x00\x00\x54\xfe\xff\xff\x34\x00\x00\x00\x00\x41\x07\x1e\x10\x00\x00\x00\x2c\x00\x00\x00\x90\xfe\xff\xff\x30\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x40\x00\x00\x00\xac\xfe\xff\xff\x3c\x00\x00\x00\x00\x00\x00\x00\x20\x00\x00\x00\x54\x00\x00\x00\xd8\xfe\xff\xff\x48\x00\x00\x00\x00\x41\x0e\x20\x9d\x04\x9e\x03\x42\x93\x02\x4e\xde\xdd\xd3\x0e\x00\x00\x00\x00\x10\x00\x00\x00\x78\x00\x00\x00\x04\xff\xff\xff\x04\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x01\x7a\x52\x00\x01\x7c\x1e\x01\x1b\x0c\x1f\x00\x14\x00\x00\x00\x18\x00\x00\x00\xe0\xfe\xff\xff\x28\x00\x00\x00\x00\x44\x0e\x20\x60\x0e\x00\x00\x00\x00\x00\x00"), -Section(".fini_array", 0x10DD0, "\xc0\x06\x00\x00\x00\x00\x00\x00"), -Section(".dynamic", 0x10DD8, "\x01\x00\x00\x00\x00\x00\x00\x00\x28\x00\x00\x00\x00\x00\x00\x00\x0c\x00\x00\x00\x00\x00\x00\x00\x80\x05\x00\x00\x00\x00\x00\x00\x0d\x00\x00\x00\x00\x00\x00\x00\x3c\x07\x00\x00\x00\x00\x00\x00\x19\x00\x00\x00\x00\x00\x00\x00\xc8\x0d\x01\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x1a\x00\x00\x00\x00\x00\x00\x00\xd0\x0d\x01\x00\x00\x00\x00\x00\x1c\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\xf5\xfe\xff\x6f\x00\x00\x00\x00\x98\x02\x00\x00\x00\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x90\x03\x00\x00\x00\x00\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\xb8\x02\x00\x00\x00\x00\x00\x00\x0a\x00\x00\x00\x00\x00\x00\x00\x8d\x00\x00\x00\x00\x00\x00\x00\x0b\x00\x00\x00\x00\x00\x00\x00\x18\x00\x00\x00\x00\x00\x00\x00\x15\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\xe8\x0f\x01\x00\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x60\x00\x00\x00\x00\x00\x00\x00\x14\x00\x00\x00\x00\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x17\x00\x00\x00\x00\x00\x00\x00\x20\x05\x00\x00\x00\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x60\x04\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\xc0\x00\x00\x00\x00\x00\x00\x00\x09\x00\x00\x00\x00\x00\x00\x00\x18\x00\x00\x00\x00\x00\x00\x00\xfb\xff\xff\x6f\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\xfe\xff\xff\x6f\x00\x00\x00\x00\x30\x04\x00\x00\x00\x00\x00\x00\xff\xff\xff\x6f\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\xf0\xff\xff\x6f\x00\x00\x00\x00\x1e\x04\x00\x00\x00\x00\x00\x00\xf9\xff\xff\x6f\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".init_array", 0x10DC8, "\x10\x07\x00\x00\x00\x00\x00\x00"), -Section(".got", 0x10FB8, "\xd8\x0d\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x14\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".got.plt", 0x10FE8, "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xa0\x05\x00\x00\x00\x00\x00\x00\xa0\x05\x00\x00\x00\x00\x00\x00\xa0\x05\x00\x00\x00\x00\x00\x00\xa0\x05\x00\x00\x00\x00\x00\x00"), -Section(".data", 0x11020, "\x00\x00\x00\x00\x00\x00\x00\x00\x28\x10\x01\x00\x00\x00\x00\x00"), -Section(".text", 0x600, "\x1f\x20\x03\xd5\x1d\x00\x80\xd2\x1e\x00\x80\xd2\xe5\x03\x00\xaa\xe1\x03\x40\xf9\xe2\x23\x00\x91\xe6\x03\x00\x91\x80\x00\x00\x90\x00\xec\x47\xf9\x03\x00\x80\xd2\x04\x00\x80\xd2\xe5\xff\xff\x97\xf0\xff\xff\x97\x80\x00\x00\x90\x00\xe8\x47\xf9\x40\x00\x00\xb4\xe8\xff\xff\x17\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x80\x00\x00\xb0\x00\xc0\x00\x91\x81\x00\x00\xb0\x21\xc0\x00\x91\x3f\x00\x00\xeb\xc0\x00\x00\x54\x81\x00\x00\x90\x21\xe0\x47\xf9\x61\x00\x00\xb4\xf0\x03\x01\xaa\x00\x02\x1f\xd6\xc0\x03\x5f\xd6\x80\x00\x00\xb0\x00\xc0\x00\x91\x81\x00\x00\xb0\x21\xc0\x00\x91\x21\x00\x00\xcb\x22\xfc\x7f\xd3\x41\x0c\x81\x8b\x21\xfc\x41\x93\xc1\x00\x00\xb4\x82\x00\x00\x90\x42\xf0\x47\xf9\x62\x00\x00\xb4\xf0\x03\x02\xaa\x00\x02\x1f\xd6\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\xfd\x7b\xbe\xa9\xfd\x03\x00\x91\xf3\x0b\x00\xf9\x93\x00\x00\xb0\x60\xc2\x40\x39\x40\x01\x00\x35\x80\x00\x00\x90\x00\xe4\x47\xf9\x80\x00\x00\xb4\x80\x00\x00\xb0\x00\x14\x40\xf9\xb9\xff\xff\x97\xd8\xff\xff\x97\x20\x00\x80\x52\x60\xc2\x00\x39\xf3\x0b\x40\xf9\xfd\x7b\xc2\xa8\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\xdc\xff\xff\x17\xff\x83\x00\xd1\x68\x00\x80\x52\xe8\x17\x00\xb9\xe8\x00\x80\x52\xe8\x1f\x00\xb9\xe8\x17\x40\xb9\xe8\x0b\x00\xb9\xe0\x03\x1f\x2a\xff\x83\x00\x91\xc0\x03\x5f\xd6")]), -Memmap([Annotation(Region(0x0,0x847), Attr("segment","02 0 2120")), -Annotation(Region(0x600,0x633), Attr("symbol","\"_start\"")), -Annotation(Region(0x0,0x102), Attr("section","\".shstrtab\"")), -Annotation(Region(0x0,0x233), Attr("section","\".strtab\"")), -Annotation(Region(0x0,0x83F), Attr("section","\".symtab\"")), -Annotation(Region(0x0,0x46), Attr("section","\".comment\"")), -Annotation(Region(0x238,0x252), Attr("section","\".interp\"")), -Annotation(Region(0x254,0x277), Attr("section","\".note.gnu.build-id\"")), -Annotation(Region(0x278,0x297), Attr("section","\".note.ABI-tag\"")), -Annotation(Region(0x298,0x2B3), Attr("section","\".gnu.hash\"")), -Annotation(Region(0x2B8,0x38F), Attr("section","\".dynsym\"")), -Annotation(Region(0x390,0x41C), Attr("section","\".dynstr\"")), -Annotation(Region(0x41E,0x42F), Attr("section","\".gnu.version\"")), -Annotation(Region(0x430,0x45F), Attr("section","\".gnu.version_r\"")), -Annotation(Region(0x460,0x51F), Attr("section","\".rela.dyn\"")), -Annotation(Region(0x520,0x57F), Attr("section","\".rela.plt\"")), -Annotation(Region(0x580,0x597), Attr("section","\".init\"")), -Annotation(Region(0x5A0,0x5FF), Attr("section","\".plt\"")), -Annotation(Region(0x580,0x597), Attr("code-region","()")), -Annotation(Region(0x5A0,0x5FF), Attr("code-region","()")), -Annotation(Region(0x600,0x633), Attr("symbol-info","_start 0x600 52")), -Annotation(Region(0x634,0x647), Attr("symbol","\"call_weak_fn\"")), -Annotation(Region(0x634,0x647), Attr("symbol-info","call_weak_fn 0x634 20")), -Annotation(Region(0x714,0x73B), Attr("symbol","\"main\"")), -Annotation(Region(0x714,0x73B), Attr("symbol-info","main 0x714 40")), -Annotation(Region(0x73C,0x74F), Attr("section","\".fini\"")), -Annotation(Region(0x750,0x753), Attr("section","\".rodata\"")), -Annotation(Region(0x754,0x78F), Attr("section","\".eh_frame_hdr\"")), -Annotation(Region(0x790,0x847), Attr("section","\".eh_frame\"")), -Annotation(Region(0x10DC8,0x1102F), Attr("segment","03 0x10DC8 624")), -Annotation(Region(0x10DD0,0x10DD7), Attr("section","\".fini_array\"")), -Annotation(Region(0x10DD8,0x10FB7), Attr("section","\".dynamic\"")), -Annotation(Region(0x10DC8,0x10DCF), Attr("section","\".init_array\"")), -Annotation(Region(0x10FB8,0x10FE7), Attr("section","\".got\"")), -Annotation(Region(0x10FE8,0x1101F), Attr("section","\".got.plt\"")), -Annotation(Region(0x11020,0x1102F), Attr("section","\".data\"")), -Annotation(Region(0x600,0x73B), Attr("section","\".text\"")), -Annotation(Region(0x600,0x73B), Attr("code-region","()")), -Annotation(Region(0x73C,0x74F), Attr("code-region","()"))]), -Program(Tid(2_918, "%00000b66"), Attrs([]), - Subs([Sub(Tid(2_896, "@__cxa_finalize"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x5D0"), -Attr("stub","()")]), "__cxa_finalize", Args([Arg(Tid(2_919, "%00000b67"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("__cxa_finalize_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(2_304, "@__cxa_finalize"), - Attrs([Attr("address","0x5D0")]), Phis([]), -Defs([Def(Tid(2_552, "%000009f8"), Attrs([Attr("address","0x5D0"), -Attr("insn","adrp x16, #69632")]), Var("R16",Imm(64)), Int(69632,64)), -Def(Tid(2_559, "%000009ff"), Attrs([Attr("address","0x5D4"), -Attr("insn","ldr x17, [x16, #0x8]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(2_565, "%00000a05"), Attrs([Attr("address","0x5D8"), -Attr("insn","add x16, x16, #0x8")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(8,64)))]), Jmps([Call(Tid(2_570, "%00000a0a"), - Attrs([Attr("address","0x5DC"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), -Sub(Tid(2_897, "@__do_global_dtors_aux"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x6C0")]), - "__do_global_dtors_aux", Args([Arg(Tid(2_920, "%00000b68"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("__do_global_dtors_aux_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(2_094, "@__do_global_dtors_aux"), - Attrs([Attr("address","0x6C0")]), Phis([]), -Defs([Def(Tid(2_098, "%00000832"), Attrs([Attr("address","0x6C0"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("#3",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(18446744073709551584,64))), -Def(Tid(2_104, "%00000838"), Attrs([Attr("address","0x6C0"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("#3",Imm(64)),Var("R29",Imm(64)),LittleEndian(),64)), -Def(Tid(2_110, "%0000083e"), Attrs([Attr("address","0x6C0"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("#3",Imm(64)),Int(8,64)),Var("R30",Imm(64)),LittleEndian(),64)), -Def(Tid(2_114, "%00000842"), Attrs([Attr("address","0x6C0"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("R31",Imm(64)), -Var("#3",Imm(64))), Def(Tid(2_120, "%00000848"), - Attrs([Attr("address","0x6C4"), Attr("insn","mov x29, sp")]), - Var("R29",Imm(64)), Var("R31",Imm(64))), Def(Tid(2_128, "%00000850"), - Attrs([Attr("address","0x6C8"), Attr("insn","str x19, [sp, #0x10]")]), - Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(16,64)),Var("R19",Imm(64)),LittleEndian(),64)), -Def(Tid(2_133, "%00000855"), Attrs([Attr("address","0x6CC"), -Attr("insn","adrp x19, #69632")]), Var("R19",Imm(64)), Int(69632,64)), -Def(Tid(2_140, "%0000085c"), Attrs([Attr("address","0x6D0"), -Attr("insn","ldrb w0, [x19, #0x30]")]), Var("R0",Imm(64)), -UNSIGNED(64,Load(Var("mem",Mem(64,8)),PLUS(Var("R19",Imm(64)),Int(48,64)),LittleEndian(),8)))]), -Jmps([Goto(Tid(2_147, "%00000863"), Attrs([Attr("address","0x6D4"), -Attr("insn","cbnz w0, #0x28")]), - NEQ(Extract(31,0,Var("R0",Imm(64))),Int(0,32)), -Direct(Tid(2_145, "%00000861"))), Goto(Tid(2_898, "%00000b52"), Attrs([]), - Int(1,1), Direct(Tid(2_249, "%000008c9")))])), Blk(Tid(2_249, "%000008c9"), - Attrs([Attr("address","0x6D8")]), Phis([]), -Defs([Def(Tid(2_252, "%000008cc"), Attrs([Attr("address","0x6D8"), -Attr("insn","adrp x0, #65536")]), Var("R0",Imm(64)), Int(65536,64)), -Def(Tid(2_259, "%000008d3"), Attrs([Attr("address","0x6DC"), -Attr("insn","ldr x0, [x0, #0xfc8]")]), Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(4040,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(2_265, "%000008d9"), Attrs([Attr("address","0x6E0"), -Attr("insn","cbz x0, #0x10")]), EQ(Var("R0",Imm(64)),Int(0,64)), -Direct(Tid(2_263, "%000008d7"))), Goto(Tid(2_899, "%00000b53"), Attrs([]), - Int(1,1), Direct(Tid(2_288, "%000008f0")))])), Blk(Tid(2_288, "%000008f0"), - Attrs([Attr("address","0x6E4")]), Phis([]), -Defs([Def(Tid(2_291, "%000008f3"), Attrs([Attr("address","0x6E4"), -Attr("insn","adrp x0, #69632")]), Var("R0",Imm(64)), Int(69632,64)), -Def(Tid(2_298, "%000008fa"), Attrs([Attr("address","0x6E8"), -Attr("insn","ldr x0, [x0, #0x28]")]), Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(40,64)),LittleEndian(),64)), -Def(Tid(2_303, "%000008ff"), Attrs([Attr("address","0x6EC"), -Attr("insn","bl #-0x11c")]), Var("R30",Imm(64)), Int(1776,64))]), -Jmps([Call(Tid(2_306, "%00000902"), Attrs([Attr("address","0x6EC"), -Attr("insn","bl #-0x11c")]), Int(1,1), -(Direct(Tid(2_896, "@__cxa_finalize")),Direct(Tid(2_263, "%000008d7"))))])), -Blk(Tid(2_263, "%000008d7"), Attrs([Attr("address","0x6F0")]), Phis([]), -Defs([Def(Tid(2_271, "%000008df"), Attrs([Attr("address","0x6F0"), -Attr("insn","bl #-0xa0")]), Var("R30",Imm(64)), Int(1780,64))]), -Jmps([Call(Tid(2_273, "%000008e1"), Attrs([Attr("address","0x6F0"), -Attr("insn","bl #-0xa0")]), Int(1,1), -(Direct(Tid(2_910, "@deregister_tm_clones")),Direct(Tid(2_275, "%000008e3"))))])), -Blk(Tid(2_275, "%000008e3"), Attrs([Attr("address","0x6F4")]), Phis([]), -Defs([Def(Tid(2_278, "%000008e6"), Attrs([Attr("address","0x6F4"), -Attr("insn","mov w0, #0x1")]), Var("R0",Imm(64)), Int(1,64)), -Def(Tid(2_286, "%000008ee"), Attrs([Attr("address","0x6F8"), -Attr("insn","strb w0, [x19, #0x30]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R19",Imm(64)),Int(48,64)),Extract(7,0,Var("R0",Imm(64))),LittleEndian(),8))]), -Jmps([Goto(Tid(2_900, "%00000b54"), Attrs([]), Int(1,1), -Direct(Tid(2_145, "%00000861")))])), Blk(Tid(2_145, "%00000861"), - Attrs([Attr("address","0x6FC")]), Phis([]), -Defs([Def(Tid(2_155, "%0000086b"), Attrs([Attr("address","0x6FC"), -Attr("insn","ldr x19, [sp, #0x10]")]), Var("R19",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(16,64)),LittleEndian(),64)), -Def(Tid(2_162, "%00000872"), Attrs([Attr("address","0x700"), -Attr("insn","ldp x29, x30, [sp], #0x20")]), Var("R29",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(2_167, "%00000877"), Attrs([Attr("address","0x700"), -Attr("insn","ldp x29, x30, [sp], #0x20")]), Var("R30",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(2_171, "%0000087b"), Attrs([Attr("address","0x700"), -Attr("insn","ldp x29, x30, [sp], #0x20")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(32,64)))]), Jmps([Call(Tid(2_176, "%00000880"), - Attrs([Attr("address","0x704"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), Sub(Tid(2_901, "@__libc_start_main"), - Attrs([Attr("c.proto","signed (*)(signed (*)(signed , char** , char** );* main, signed , char** , \nvoid* auxv)"), -Attr("address","0x5C0"), Attr("stub","()")]), "__libc_start_main", - Args([Arg(Tid(2_921, "%00000b69"), - Attrs([Attr("c.layout","**[ : 64]"), -Attr("c.data","Top:u64 ptr ptr"), -Attr("c.type","signed (*)(signed , char** , char** );*")]), - Var("__libc_start_main_main",Imm(64)), Var("R0",Imm(64)), In()), -Arg(Tid(2_922, "%00000b6a"), Attrs([Attr("c.layout","[signed : 32]"), -Attr("c.data","Top:u32"), Attr("c.type","signed")]), - Var("__libc_start_main_arg2",Imm(32)), LOW(32,Var("R1",Imm(64))), In()), -Arg(Tid(2_923, "%00000b6b"), Attrs([Attr("c.layout","**[char : 8]"), -Attr("c.data","Top:u8 ptr ptr"), Attr("c.type","char**")]), - Var("__libc_start_main_arg3",Imm(64)), Var("R2",Imm(64)), Both()), -Arg(Tid(2_924, "%00000b6c"), Attrs([Attr("c.layout","*[ : 8]"), -Attr("c.data","{} ptr"), Attr("c.type","void*")]), - Var("__libc_start_main_auxv",Imm(64)), Var("R3",Imm(64)), Both()), -Arg(Tid(2_925, "%00000b6d"), Attrs([Attr("c.layout","[signed : 32]"), -Attr("c.data","Top:u32"), Attr("c.type","signed")]), - Var("__libc_start_main_result",Imm(32)), LOW(32,Var("R0",Imm(64))), -Out())]), Blks([Blk(Tid(1_927, "@__libc_start_main"), - Attrs([Attr("address","0x5C0")]), Phis([]), -Defs([Def(Tid(2_530, "%000009e2"), Attrs([Attr("address","0x5C0"), -Attr("insn","adrp x16, #69632")]), Var("R16",Imm(64)), Int(69632,64)), -Def(Tid(2_537, "%000009e9"), Attrs([Attr("address","0x5C4"), -Attr("insn","ldr x17, [x16]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R16",Imm(64)),LittleEndian(),64)), -Def(Tid(2_543, "%000009ef"), Attrs([Attr("address","0x5C8"), -Attr("insn","add x16, x16, #0x0")]), Var("R16",Imm(64)), -Var("R16",Imm(64)))]), Jmps([Call(Tid(2_548, "%000009f4"), - Attrs([Attr("address","0x5CC"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), Sub(Tid(2_902, "@_fini"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x73C")]), - "_fini", Args([Arg(Tid(2_926, "%00000b6e"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("_fini_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(1_495, "@_fini"), - Attrs([Attr("address","0x73C")]), Phis([]), -Defs([Def(Tid(1_501, "%000005dd"), Attrs([Attr("address","0x740"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("#0",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(18446744073709551600,64))), -Def(Tid(1_507, "%000005e3"), Attrs([Attr("address","0x740"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("#0",Imm(64)),Var("R29",Imm(64)),LittleEndian(),64)), -Def(Tid(1_513, "%000005e9"), Attrs([Attr("address","0x740"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("#0",Imm(64)),Int(8,64)),Var("R30",Imm(64)),LittleEndian(),64)), -Def(Tid(1_517, "%000005ed"), Attrs([Attr("address","0x740"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("R31",Imm(64)), -Var("#0",Imm(64))), Def(Tid(1_523, "%000005f3"), - Attrs([Attr("address","0x744"), Attr("insn","mov x29, sp")]), - Var("R29",Imm(64)), Var("R31",Imm(64))), Def(Tid(1_530, "%000005fa"), - Attrs([Attr("address","0x748"), Attr("insn","ldp x29, x30, [sp], #0x10")]), - Var("R29",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(1_535, "%000005ff"), Attrs([Attr("address","0x748"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R30",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(1_539, "%00000603"), Attrs([Attr("address","0x748"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(16,64)))]), Jmps([Call(Tid(1_544, "%00000608"), - Attrs([Attr("address","0x74C"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), Sub(Tid(2_903, "@_init"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x580")]), - "_init", Args([Arg(Tid(2_927, "%00000b6f"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("_init_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(2_728, "@_init"), - Attrs([Attr("address","0x580")]), Phis([]), -Defs([Def(Tid(2_734, "%00000aae"), Attrs([Attr("address","0x584"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("#5",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(18446744073709551600,64))), -Def(Tid(2_740, "%00000ab4"), Attrs([Attr("address","0x584"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("#5",Imm(64)),Var("R29",Imm(64)),LittleEndian(),64)), -Def(Tid(2_746, "%00000aba"), Attrs([Attr("address","0x584"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("#5",Imm(64)),Int(8,64)),Var("R30",Imm(64)),LittleEndian(),64)), -Def(Tid(2_750, "%00000abe"), Attrs([Attr("address","0x584"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("R31",Imm(64)), -Var("#5",Imm(64))), Def(Tid(2_756, "%00000ac4"), - Attrs([Attr("address","0x588"), Attr("insn","mov x29, sp")]), - Var("R29",Imm(64)), Var("R31",Imm(64))), Def(Tid(2_761, "%00000ac9"), - Attrs([Attr("address","0x58C"), Attr("insn","bl #0xa8")]), - Var("R30",Imm(64)), Int(1424,64))]), Jmps([Call(Tid(2_763, "%00000acb"), - Attrs([Attr("address","0x58C"), Attr("insn","bl #0xa8")]), Int(1,1), -(Direct(Tid(2_908, "@call_weak_fn")),Direct(Tid(2_765, "%00000acd"))))])), -Blk(Tid(2_765, "%00000acd"), Attrs([Attr("address","0x590")]), Phis([]), -Defs([Def(Tid(2_770, "%00000ad2"), Attrs([Attr("address","0x590"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R29",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(2_775, "%00000ad7"), Attrs([Attr("address","0x590"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R30",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(2_779, "%00000adb"), Attrs([Attr("address","0x590"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(16,64)))]), Jmps([Call(Tid(2_784, "%00000ae0"), - Attrs([Attr("address","0x594"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), Sub(Tid(2_904, "@_start"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x600"), -Attr("stub","()"), Attr("entry-point","()")]), "_start", - Args([Arg(Tid(2_928, "%00000b70"), Attrs([Attr("c.layout","[signed : 32]"), -Attr("c.data","Top:u32"), Attr("c.type","signed")]), - Var("_start_result",Imm(32)), LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(1_864, "@_start"), Attrs([Attr("address","0x600")]), Phis([]), -Defs([Def(Tid(1_869, "%0000074d"), Attrs([Attr("address","0x604"), -Attr("insn","mov x29, #0x0")]), Var("R29",Imm(64)), Int(0,64)), -Def(Tid(1_874, "%00000752"), Attrs([Attr("address","0x608"), -Attr("insn","mov x30, #0x0")]), Var("R30",Imm(64)), Int(0,64)), -Def(Tid(1_880, "%00000758"), Attrs([Attr("address","0x60C"), -Attr("insn","mov x5, x0")]), Var("R5",Imm(64)), Var("R0",Imm(64))), -Def(Tid(1_887, "%0000075f"), Attrs([Attr("address","0x610"), -Attr("insn","ldr x1, [sp]")]), Var("R1",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(1_893, "%00000765"), Attrs([Attr("address","0x614"), -Attr("insn","add x2, sp, #0x8")]), Var("R2",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(8,64))), Def(Tid(1_899, "%0000076b"), - Attrs([Attr("address","0x618"), Attr("insn","mov x6, sp")]), - Var("R6",Imm(64)), Var("R31",Imm(64))), Def(Tid(1_904, "%00000770"), - Attrs([Attr("address","0x61C"), Attr("insn","adrp x0, #65536")]), - Var("R0",Imm(64)), Int(65536,64)), Def(Tid(1_911, "%00000777"), - Attrs([Attr("address","0x620"), Attr("insn","ldr x0, [x0, #0xfd8]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(4056,64)),LittleEndian(),64)), -Def(Tid(1_916, "%0000077c"), Attrs([Attr("address","0x624"), -Attr("insn","mov x3, #0x0")]), Var("R3",Imm(64)), Int(0,64)), -Def(Tid(1_921, "%00000781"), Attrs([Attr("address","0x628"), -Attr("insn","mov x4, #0x0")]), Var("R4",Imm(64)), Int(0,64)), -Def(Tid(1_926, "%00000786"), Attrs([Attr("address","0x62C"), -Attr("insn","bl #-0x6c")]), Var("R30",Imm(64)), Int(1584,64))]), -Jmps([Call(Tid(1_929, "%00000789"), Attrs([Attr("address","0x62C"), -Attr("insn","bl #-0x6c")]), Int(1,1), -(Direct(Tid(2_901, "@__libc_start_main")),Direct(Tid(1_931, "%0000078b"))))])), -Blk(Tid(1_931, "%0000078b"), Attrs([Attr("address","0x630")]), Phis([]), -Defs([Def(Tid(1_934, "%0000078e"), Attrs([Attr("address","0x630"), -Attr("insn","bl #-0x40")]), Var("R30",Imm(64)), Int(1588,64))]), -Jmps([Call(Tid(1_937, "%00000791"), Attrs([Attr("address","0x630"), -Attr("insn","bl #-0x40")]), Int(1,1), -(Direct(Tid(2_907, "@abort")),Direct(Tid(2_905, "%00000b59"))))])), -Blk(Tid(2_905, "%00000b59"), Attrs([]), Phis([]), Defs([]), -Jmps([Call(Tid(2_906, "%00000b5a"), Attrs([]), Int(1,1), -(Direct(Tid(2_908, "@call_weak_fn")),))]))])), Sub(Tid(2_907, "@abort"), - Attrs([Attr("noreturn","()"), Attr("c.proto","void (*)(void)"), -Attr("address","0x5F0"), Attr("stub","()")]), "abort", Args([]), -Blks([Blk(Tid(1_935, "@abort"), Attrs([Attr("address","0x5F0")]), Phis([]), -Defs([Def(Tid(2_596, "%00000a24"), Attrs([Attr("address","0x5F0"), -Attr("insn","adrp x16, #69632")]), Var("R16",Imm(64)), Int(69632,64)), -Def(Tid(2_603, "%00000a2b"), Attrs([Attr("address","0x5F4"), -Attr("insn","ldr x17, [x16, #0x18]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(24,64)),LittleEndian(),64)), -Def(Tid(2_609, "%00000a31"), Attrs([Attr("address","0x5F8"), -Attr("insn","add x16, x16, #0x18")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(24,64)))]), Jmps([Call(Tid(2_614, "%00000a36"), - Attrs([Attr("address","0x5FC"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), Sub(Tid(2_908, "@call_weak_fn"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x634")]), - "call_weak_fn", Args([Arg(Tid(2_929, "%00000b71"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("call_weak_fn_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(1_939, "@call_weak_fn"), - Attrs([Attr("address","0x634")]), Phis([]), -Defs([Def(Tid(1_942, "%00000796"), Attrs([Attr("address","0x634"), -Attr("insn","adrp x0, #65536")]), Var("R0",Imm(64)), Int(65536,64)), -Def(Tid(1_949, "%0000079d"), Attrs([Attr("address","0x638"), -Attr("insn","ldr x0, [x0, #0xfd0]")]), Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(4048,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(1_955, "%000007a3"), Attrs([Attr("address","0x63C"), -Attr("insn","cbz x0, #0x8")]), EQ(Var("R0",Imm(64)),Int(0,64)), -Direct(Tid(1_953, "%000007a1"))), Goto(Tid(2_909, "%00000b5d"), Attrs([]), - Int(1,1), Direct(Tid(2_368, "%00000940")))])), Blk(Tid(1_953, "%000007a1"), - Attrs([Attr("address","0x644")]), Phis([]), Defs([]), -Jmps([Call(Tid(1_961, "%000007a9"), Attrs([Attr("address","0x644"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))])), -Blk(Tid(2_368, "%00000940"), Attrs([Attr("address","0x640")]), Phis([]), -Defs([]), Jmps([Goto(Tid(2_371, "%00000943"), Attrs([Attr("address","0x640"), -Attr("insn","b #-0x60")]), Int(1,1), -Direct(Tid(2_369, "@__gmon_start__")))])), Blk(Tid(2_369, "@__gmon_start__"), - Attrs([Attr("address","0x5E0")]), Phis([]), -Defs([Def(Tid(2_574, "%00000a0e"), Attrs([Attr("address","0x5E0"), -Attr("insn","adrp x16, #69632")]), Var("R16",Imm(64)), Int(69632,64)), -Def(Tid(2_581, "%00000a15"), Attrs([Attr("address","0x5E4"), -Attr("insn","ldr x17, [x16, #0x10]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(16,64)),LittleEndian(),64)), -Def(Tid(2_587, "%00000a1b"), Attrs([Attr("address","0x5E8"), -Attr("insn","add x16, x16, #0x10")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(16,64)))]), Jmps([Call(Tid(2_592, "%00000a20"), - Attrs([Attr("address","0x5EC"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), -Sub(Tid(2_910, "@deregister_tm_clones"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x650")]), - "deregister_tm_clones", Args([Arg(Tid(2_930, "%00000b72"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("deregister_tm_clones_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(1_967, "@deregister_tm_clones"), - Attrs([Attr("address","0x650")]), Phis([]), -Defs([Def(Tid(1_970, "%000007b2"), Attrs([Attr("address","0x650"), -Attr("insn","adrp x0, #69632")]), Var("R0",Imm(64)), Int(69632,64)), -Def(Tid(1_976, "%000007b8"), Attrs([Attr("address","0x654"), -Attr("insn","add x0, x0, #0x30")]), Var("R0",Imm(64)), -PLUS(Var("R0",Imm(64)),Int(48,64))), Def(Tid(1_981, "%000007bd"), - Attrs([Attr("address","0x658"), Attr("insn","adrp x1, #69632")]), - Var("R1",Imm(64)), Int(69632,64)), Def(Tid(1_987, "%000007c3"), - Attrs([Attr("address","0x65C"), Attr("insn","add x1, x1, #0x30")]), - Var("R1",Imm(64)), PLUS(Var("R1",Imm(64)),Int(48,64))), -Def(Tid(1_993, "%000007c9"), Attrs([Attr("address","0x660"), -Attr("insn","cmp x1, x0")]), Var("#1",Imm(64)), NOT(Var("R0",Imm(64)))), -Def(Tid(1_998, "%000007ce"), Attrs([Attr("address","0x660"), -Attr("insn","cmp x1, x0")]), Var("#2",Imm(64)), -PLUS(Var("R1",Imm(64)),NOT(Var("R0",Imm(64))))), Def(Tid(2_004, "%000007d4"), - Attrs([Attr("address","0x660"), Attr("insn","cmp x1, x0")]), - Var("VF",Imm(1)), -NEQ(SIGNED(65,PLUS(Var("#2",Imm(64)),Int(1,64))),PLUS(PLUS(SIGNED(65,Var("R1",Imm(64))),SIGNED(65,Var("#1",Imm(64)))),Int(1,65)))), -Def(Tid(2_010, "%000007da"), Attrs([Attr("address","0x660"), -Attr("insn","cmp x1, x0")]), Var("CF",Imm(1)), -NEQ(UNSIGNED(65,PLUS(Var("#2",Imm(64)),Int(1,64))),PLUS(PLUS(UNSIGNED(65,Var("R1",Imm(64))),UNSIGNED(65,Var("#1",Imm(64)))),Int(1,65)))), -Def(Tid(2_014, "%000007de"), Attrs([Attr("address","0x660"), -Attr("insn","cmp x1, x0")]), Var("ZF",Imm(1)), -EQ(PLUS(Var("#2",Imm(64)),Int(1,64)),Int(0,64))), -Def(Tid(2_018, "%000007e2"), Attrs([Attr("address","0x660"), -Attr("insn","cmp x1, x0")]), Var("NF",Imm(1)), -Extract(63,63,PLUS(Var("#2",Imm(64)),Int(1,64))))]), -Jmps([Goto(Tid(2_024, "%000007e8"), Attrs([Attr("address","0x664"), -Attr("insn","b.eq #0x18")]), EQ(Var("ZF",Imm(1)),Int(1,1)), -Direct(Tid(2_022, "%000007e6"))), Goto(Tid(2_911, "%00000b5f"), Attrs([]), - Int(1,1), Direct(Tid(2_338, "%00000922")))])), Blk(Tid(2_338, "%00000922"), - Attrs([Attr("address","0x668")]), Phis([]), -Defs([Def(Tid(2_341, "%00000925"), Attrs([Attr("address","0x668"), -Attr("insn","adrp x1, #65536")]), Var("R1",Imm(64)), Int(65536,64)), -Def(Tid(2_348, "%0000092c"), Attrs([Attr("address","0x66C"), -Attr("insn","ldr x1, [x1, #0xfc0]")]), Var("R1",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R1",Imm(64)),Int(4032,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(2_353, "%00000931"), Attrs([Attr("address","0x670"), -Attr("insn","cbz x1, #0xc")]), EQ(Var("R1",Imm(64)),Int(0,64)), -Direct(Tid(2_022, "%000007e6"))), Goto(Tid(2_912, "%00000b60"), Attrs([]), - Int(1,1), Direct(Tid(2_357, "%00000935")))])), Blk(Tid(2_022, "%000007e6"), - Attrs([Attr("address","0x67C")]), Phis([]), Defs([]), -Jmps([Call(Tid(2_030, "%000007ee"), Attrs([Attr("address","0x67C"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))])), -Blk(Tid(2_357, "%00000935"), Attrs([Attr("address","0x674")]), Phis([]), -Defs([Def(Tid(2_361, "%00000939"), Attrs([Attr("address","0x674"), -Attr("insn","mov x16, x1")]), Var("R16",Imm(64)), Var("R1",Imm(64)))]), -Jmps([Call(Tid(2_366, "%0000093e"), Attrs([Attr("address","0x678"), -Attr("insn","br x16")]), Int(1,1), (Indirect(Var("R16",Imm(64))),))]))])), -Sub(Tid(2_913, "@frame_dummy"), Attrs([Attr("c.proto","signed (*)(void)"), -Attr("address","0x710")]), "frame_dummy", Args([Arg(Tid(2_931, "%00000b73"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("frame_dummy_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(2_182, "@frame_dummy"), - Attrs([Attr("address","0x710")]), Phis([]), Defs([]), -Jmps([Call(Tid(2_184, "%00000888"), Attrs([Attr("address","0x710"), -Attr("insn","b #-0x90")]), Int(1,1), -(Direct(Tid(2_915, "@register_tm_clones")),))]))])), Sub(Tid(2_914, "@main"), - Attrs([Attr("c.proto","signed (*)(signed argc, const char** argv)"), -Attr("address","0x714")]), "main", Args([Arg(Tid(2_932, "%00000b74"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("main_argc",Imm(32)), -LOW(32,Var("R0",Imm(64))), In()), Arg(Tid(2_933, "%00000b75"), - Attrs([Attr("c.layout","**[char : 8]"), Attr("c.data","Top:u8 ptr ptr"), -Attr("c.type"," const char**")]), Var("main_argv",Imm(64)), -Var("R1",Imm(64)), Both()), Arg(Tid(2_934, "%00000b76"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("main_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(2_186, "@main"), - Attrs([Attr("address","0x714")]), Phis([]), -Defs([Def(Tid(2_190, "%0000088e"), Attrs([Attr("address","0x714"), -Attr("insn","sub sp, sp, #0x20")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(18446744073709551584,64))), -Def(Tid(2_195, "%00000893"), Attrs([Attr("address","0x718"), -Attr("insn","mov w8, #0x3")]), Var("R8",Imm(64)), Int(3,64)), -Def(Tid(2_203, "%0000089b"), Attrs([Attr("address","0x71C"), -Attr("insn","str w8, [sp, #0x14]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(20,64)),Extract(31,0,Var("R8",Imm(64))),LittleEndian(),32)), -Def(Tid(2_208, "%000008a0"), Attrs([Attr("address","0x720"), -Attr("insn","mov w8, #0x7")]), Var("R8",Imm(64)), Int(7,64)), -Def(Tid(2_216, "%000008a8"), Attrs([Attr("address","0x724"), -Attr("insn","str w8, [sp, #0x1c]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(28,64)),Extract(31,0,Var("R8",Imm(64))),LittleEndian(),32)), -Def(Tid(2_223, "%000008af"), Attrs([Attr("address","0x728"), -Attr("insn","ldr w8, [sp, #0x14]")]), Var("R8",Imm(64)), -UNSIGNED(64,Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(20,64)),LittleEndian(),32))), -Def(Tid(2_231, "%000008b7"), Attrs([Attr("address","0x72C"), -Attr("insn","str w8, [sp, #0x8]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),Extract(31,0,Var("R8",Imm(64))),LittleEndian(),32)), -Def(Tid(2_236, "%000008bc"), Attrs([Attr("address","0x730"), -Attr("insn","mov w0, wzr")]), Var("R0",Imm(64)), Int(0,64)), -Def(Tid(2_242, "%000008c2"), Attrs([Attr("address","0x734"), -Attr("insn","add sp, sp, #0x20")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(32,64)))]), Jmps([Call(Tid(2_247, "%000008c7"), - Attrs([Attr("address","0x738"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), -Sub(Tid(2_915, "@register_tm_clones"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x680")]), - "register_tm_clones", Args([Arg(Tid(2_935, "%00000b77"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("register_tm_clones_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(2_032, "@register_tm_clones"), - Attrs([Attr("address","0x680")]), Phis([]), -Defs([Def(Tid(2_035, "%000007f3"), Attrs([Attr("address","0x680"), -Attr("insn","adrp x0, #69632")]), Var("R0",Imm(64)), Int(69632,64)), -Def(Tid(2_041, "%000007f9"), Attrs([Attr("address","0x684"), -Attr("insn","add x0, x0, #0x30")]), Var("R0",Imm(64)), -PLUS(Var("R0",Imm(64)),Int(48,64))), Def(Tid(2_046, "%000007fe"), - Attrs([Attr("address","0x688"), Attr("insn","adrp x1, #69632")]), - Var("R1",Imm(64)), Int(69632,64)), Def(Tid(2_052, "%00000804"), - Attrs([Attr("address","0x68C"), Attr("insn","add x1, x1, #0x30")]), - Var("R1",Imm(64)), PLUS(Var("R1",Imm(64)),Int(48,64))), -Def(Tid(2_059, "%0000080b"), Attrs([Attr("address","0x690"), -Attr("insn","sub x1, x1, x0")]), Var("R1",Imm(64)), -PLUS(PLUS(Var("R1",Imm(64)),NOT(Var("R0",Imm(64)))),Int(1,64))), -Def(Tid(2_065, "%00000811"), Attrs([Attr("address","0x694"), -Attr("insn","lsr x2, x1, #63")]), Var("R2",Imm(64)), -Concat(Int(0,63),Extract(63,63,Var("R1",Imm(64))))), -Def(Tid(2_072, "%00000818"), Attrs([Attr("address","0x698"), -Attr("insn","add x1, x2, x1, asr #3")]), Var("R1",Imm(64)), -PLUS(Var("R2",Imm(64)),ARSHIFT(Var("R1",Imm(64)),Int(3,3)))), -Def(Tid(2_078, "%0000081e"), Attrs([Attr("address","0x69C"), -Attr("insn","asr x1, x1, #1")]), Var("R1",Imm(64)), -SIGNED(64,Extract(63,1,Var("R1",Imm(64)))))]), -Jmps([Goto(Tid(2_084, "%00000824"), Attrs([Attr("address","0x6A0"), -Attr("insn","cbz x1, #0x18")]), EQ(Var("R1",Imm(64)),Int(0,64)), -Direct(Tid(2_082, "%00000822"))), Goto(Tid(2_916, "%00000b64"), Attrs([]), - Int(1,1), Direct(Tid(2_308, "%00000904")))])), Blk(Tid(2_308, "%00000904"), - Attrs([Attr("address","0x6A4")]), Phis([]), -Defs([Def(Tid(2_311, "%00000907"), Attrs([Attr("address","0x6A4"), -Attr("insn","adrp x2, #65536")]), Var("R2",Imm(64)), Int(65536,64)), -Def(Tid(2_318, "%0000090e"), Attrs([Attr("address","0x6A8"), -Attr("insn","ldr x2, [x2, #0xfe0]")]), Var("R2",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R2",Imm(64)),Int(4064,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(2_323, "%00000913"), Attrs([Attr("address","0x6AC"), -Attr("insn","cbz x2, #0xc")]), EQ(Var("R2",Imm(64)),Int(0,64)), -Direct(Tid(2_082, "%00000822"))), Goto(Tid(2_917, "%00000b65"), Attrs([]), - Int(1,1), Direct(Tid(2_327, "%00000917")))])), Blk(Tid(2_082, "%00000822"), - Attrs([Attr("address","0x6B8")]), Phis([]), Defs([]), -Jmps([Call(Tid(2_090, "%0000082a"), Attrs([Attr("address","0x6B8"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))])), -Blk(Tid(2_327, "%00000917"), Attrs([Attr("address","0x6B0")]), Phis([]), -Defs([Def(Tid(2_331, "%0000091b"), Attrs([Attr("address","0x6B0"), -Attr("insn","mov x16, x2")]), Var("R16",Imm(64)), Var("R2",Imm(64)))]), -Jmps([Call(Tid(2_336, "%00000920"), Attrs([Attr("address","0x6B4"), -Attr("insn","br x16")]), Int(1,1), -(Indirect(Var("R16",Imm(64))),))]))]))]))) \ No newline at end of file diff --git a/src/test/correct/arrays_simple/clang/arrays_simple.bir b/src/test/correct/arrays_simple/clang/arrays_simple.bir deleted file mode 100644 index 1f2072f04..000000000 --- a/src/test/correct/arrays_simple/clang/arrays_simple.bir +++ /dev/null @@ -1,232 +0,0 @@ -00000b66: program -00000b50: sub __cxa_finalize(__cxa_finalize_result) -00000b67: __cxa_finalize_result :: out u32 = low:32[R0] - -00000900: -000009f8: R16 := 0x11000 -000009ff: R17 := mem[R16 + 8, el]:u64 -00000a05: R16 := R16 + 8 -00000a0a: call R17 with noreturn - -00000b51: sub __do_global_dtors_aux(__do_global_dtors_aux_result) -00000b68: __do_global_dtors_aux_result :: out u32 = low:32[R0] - -0000082e: -00000832: #3 := R31 - 0x20 -00000838: mem := mem with [#3, el]:u64 <- R29 -0000083e: mem := mem with [#3 + 8, el]:u64 <- R30 -00000842: R31 := #3 -00000848: R29 := R31 -00000850: mem := mem with [R31 + 0x10, el]:u64 <- R19 -00000855: R19 := 0x11000 -0000085c: R0 := pad:64[mem[R19 + 0x30]] -00000863: when 31:0[R0] <> 0 goto %00000861 -00000b52: goto %000008c9 - -000008c9: -000008cc: R0 := 0x10000 -000008d3: R0 := mem[R0 + 0xFC8, el]:u64 -000008d9: when R0 = 0 goto %000008d7 -00000b53: goto %000008f0 - -000008f0: -000008f3: R0 := 0x11000 -000008fa: R0 := mem[R0 + 0x28, el]:u64 -000008ff: R30 := 0x6F0 -00000902: call @__cxa_finalize with return %000008d7 - -000008d7: -000008df: R30 := 0x6F4 -000008e1: call @deregister_tm_clones with return %000008e3 - -000008e3: -000008e6: R0 := 1 -000008ee: mem := mem with [R19 + 0x30] <- 7:0[R0] -00000b54: goto %00000861 - -00000861: -0000086b: R19 := mem[R31 + 0x10, el]:u64 -00000872: R29 := mem[R31, el]:u64 -00000877: R30 := mem[R31 + 8, el]:u64 -0000087b: R31 := R31 + 0x20 -00000880: call R30 with noreturn - -00000b55: sub __libc_start_main(__libc_start_main_main, __libc_start_main_arg2, __libc_start_main_arg3, __libc_start_main_auxv, __libc_start_main_result) -00000b69: __libc_start_main_main :: in u64 = R0 -00000b6a: __libc_start_main_arg2 :: in u32 = low:32[R1] -00000b6b: __libc_start_main_arg3 :: in out u64 = R2 -00000b6c: __libc_start_main_auxv :: in out u64 = R3 -00000b6d: __libc_start_main_result :: out u32 = low:32[R0] - -00000787: -000009e2: R16 := 0x11000 -000009e9: R17 := mem[R16, el]:u64 -000009ef: R16 := R16 -000009f4: call R17 with noreturn - -00000b56: sub _fini(_fini_result) -00000b6e: _fini_result :: out u32 = low:32[R0] - -000005d7: -000005dd: #0 := R31 - 0x10 -000005e3: mem := mem with [#0, el]:u64 <- R29 -000005e9: mem := mem with [#0 + 8, el]:u64 <- R30 -000005ed: R31 := #0 -000005f3: R29 := R31 -000005fa: R29 := mem[R31, el]:u64 -000005ff: R30 := mem[R31 + 8, el]:u64 -00000603: R31 := R31 + 0x10 -00000608: call R30 with noreturn - -00000b57: sub _init(_init_result) -00000b6f: _init_result :: out u32 = low:32[R0] - -00000aa8: -00000aae: #5 := R31 - 0x10 -00000ab4: mem := mem with [#5, el]:u64 <- R29 -00000aba: mem := mem with [#5 + 8, el]:u64 <- R30 -00000abe: R31 := #5 -00000ac4: R29 := R31 -00000ac9: R30 := 0x590 -00000acb: call @call_weak_fn with return %00000acd - -00000acd: -00000ad2: R29 := mem[R31, el]:u64 -00000ad7: R30 := mem[R31 + 8, el]:u64 -00000adb: R31 := R31 + 0x10 -00000ae0: call R30 with noreturn - -00000b58: sub _start(_start_result) -00000b70: _start_result :: out u32 = low:32[R0] - -00000748: -0000074d: R29 := 0 -00000752: R30 := 0 -00000758: R5 := R0 -0000075f: R1 := mem[R31, el]:u64 -00000765: R2 := R31 + 8 -0000076b: R6 := R31 -00000770: R0 := 0x10000 -00000777: R0 := mem[R0 + 0xFD8, el]:u64 -0000077c: R3 := 0 -00000781: R4 := 0 -00000786: R30 := 0x630 -00000789: call @__libc_start_main with return %0000078b - -0000078b: -0000078e: R30 := 0x634 -00000791: call @abort with return %00000b59 - -00000b59: -00000b5a: call @call_weak_fn with noreturn - -00000b5b: sub abort() - - -0000078f: -00000a24: R16 := 0x11000 -00000a2b: R17 := mem[R16 + 0x18, el]:u64 -00000a31: R16 := R16 + 0x18 -00000a36: call R17 with noreturn - -00000b5c: sub call_weak_fn(call_weak_fn_result) -00000b71: call_weak_fn_result :: out u32 = low:32[R0] - -00000793: -00000796: R0 := 0x10000 -0000079d: R0 := mem[R0 + 0xFD0, el]:u64 -000007a3: when R0 = 0 goto %000007a1 -00000b5d: goto %00000940 - -000007a1: -000007a9: call R30 with noreturn - -00000940: -00000943: goto @__gmon_start__ - -00000941: -00000a0e: R16 := 0x11000 -00000a15: R17 := mem[R16 + 0x10, el]:u64 -00000a1b: R16 := R16 + 0x10 -00000a20: call R17 with noreturn - -00000b5e: sub deregister_tm_clones(deregister_tm_clones_result) -00000b72: deregister_tm_clones_result :: out u32 = low:32[R0] - -000007af: -000007b2: R0 := 0x11000 -000007b8: R0 := R0 + 0x30 -000007bd: R1 := 0x11000 -000007c3: R1 := R1 + 0x30 -000007c9: #1 := ~R0 -000007ce: #2 := R1 + ~R0 -000007d4: VF := extend:65[#2 + 1] <> extend:65[R1] + extend:65[#1] + 1 -000007da: CF := pad:65[#2 + 1] <> pad:65[R1] + pad:65[#1] + 1 -000007de: ZF := #2 + 1 = 0 -000007e2: NF := 63:63[#2 + 1] -000007e8: when ZF goto %000007e6 -00000b5f: goto %00000922 - -00000922: -00000925: R1 := 0x10000 -0000092c: R1 := mem[R1 + 0xFC0, el]:u64 -00000931: when R1 = 0 goto %000007e6 -00000b60: goto %00000935 - -000007e6: -000007ee: call R30 with noreturn - -00000935: -00000939: R16 := R1 -0000093e: call R16 with noreturn - -00000b61: sub frame_dummy(frame_dummy_result) -00000b73: frame_dummy_result :: out u32 = low:32[R0] - -00000886: -00000888: call @register_tm_clones with noreturn - -00000b62: sub main(main_argc, main_argv, main_result) -00000b74: main_argc :: in u32 = low:32[R0] -00000b75: main_argv :: in out u64 = R1 -00000b76: main_result :: out u32 = low:32[R0] - -0000088a: -0000088e: R31 := R31 - 0x20 -00000893: R8 := 3 -0000089b: mem := mem with [R31 + 0x14, el]:u32 <- 31:0[R8] -000008a0: R8 := 7 -000008a8: mem := mem with [R31 + 0x1C, el]:u32 <- 31:0[R8] -000008af: R8 := pad:64[mem[R31 + 0x14, el]:u32] -000008b7: mem := mem with [R31 + 8, el]:u32 <- 31:0[R8] -000008bc: R0 := 0 -000008c2: R31 := R31 + 0x20 -000008c7: call R30 with noreturn - -00000b63: sub register_tm_clones(register_tm_clones_result) -00000b77: register_tm_clones_result :: out u32 = low:32[R0] - -000007f0: -000007f3: R0 := 0x11000 -000007f9: R0 := R0 + 0x30 -000007fe: R1 := 0x11000 -00000804: R1 := R1 + 0x30 -0000080b: R1 := R1 + ~R0 + 1 -00000811: R2 := 0.63:63[R1] -00000818: R1 := R2 + (R1 ~>> 3) -0000081e: R1 := extend:64[63:1[R1]] -00000824: when R1 = 0 goto %00000822 -00000b64: goto %00000904 - -00000904: -00000907: R2 := 0x10000 -0000090e: R2 := mem[R2 + 0xFE0, el]:u64 -00000913: when R2 = 0 goto %00000822 -00000b65: goto %00000917 - -00000822: -0000082a: call R30 with noreturn - -00000917: -0000091b: R16 := R2 -00000920: call R16 with noreturn diff --git a/src/test/correct/arrays_simple/clang/arrays_simple.expected b/src/test/correct/arrays_simple/clang/arrays_simple.expected index 444f3bf6b..b9fe97f1b 100644 --- a/src/test/correct/arrays_simple/clang/arrays_simple.expected +++ b/src/test/correct/arrays_simple/clang/arrays_simple.expected @@ -1,24 +1,10 @@ var {:extern} Gamma_R0: bool; -var {:extern} Gamma_R31: bool; -var {:extern} Gamma_R8: bool; var {:extern} Gamma_mem: [bv64]bool; -var {:extern} Gamma_stack: [bv64]bool; var {:extern} R0: bv64; -var {:extern} R31: bv64; -var {:extern} R8: bv64; var {:extern} mem: [bv64]bv8; -var {:extern} stack: [bv64]bv8; const {:extern} $_IO_stdin_used_addr: bv64; -axiom ($_IO_stdin_used_addr == 1872bv64); +axiom ($_IO_stdin_used_addr == 2224bv64); function {:extern} {:bvbuiltin "bvadd"} bvadd64(bv64, bv64) returns (bv64); -function {:extern} gamma_load32(gammaMap: [bv64]bool, index: bv64) returns (bool) { - (gammaMap[bvadd64(index, 3bv64)] && (gammaMap[bvadd64(index, 2bv64)] && (gammaMap[bvadd64(index, 1bv64)] && gammaMap[index]))) -} - -function {:extern} gamma_store32(gammaMap: [bv64]bool, index: bv64, value: bool) returns ([bv64]bool) { - gammaMap[index := value][bvadd64(index, 1bv64) := value][bvadd64(index, 2bv64) := value][bvadd64(index, 3bv64) := value] -} - function {:extern} memory_load32_le(memory: [bv64]bv8, index: bv64) returns (bv32) { (memory[bvadd64(index, 3bv64)] ++ (memory[bvadd64(index, 2bv64)] ++ (memory[bvadd64(index, 1bv64)] ++ memory[index]))) } @@ -27,20 +13,15 @@ function {:extern} memory_load64_le(memory: [bv64]bv8, index: bv64) returns (bv6 (memory[bvadd64(index, 7bv64)] ++ (memory[bvadd64(index, 6bv64)] ++ (memory[bvadd64(index, 5bv64)] ++ (memory[bvadd64(index, 4bv64)] ++ (memory[bvadd64(index, 3bv64)] ++ (memory[bvadd64(index, 2bv64)] ++ (memory[bvadd64(index, 1bv64)] ++ memory[index]))))))) } -function {:extern} memory_store32_le(memory: [bv64]bv8, index: bv64, value: bv32) returns ([bv64]bv8) { - memory[index := value[8:0]][bvadd64(index, 1bv64) := value[16:8]][bvadd64(index, 2bv64) := value[24:16]][bvadd64(index, 3bv64) := value[32:24]] -} - -function {:extern} {:bvbuiltin "zero_extend 32"} zero_extend32_32(bv32) returns (bv64); procedure {:extern} rely(); modifies Gamma_mem, mem; ensures (Gamma_mem == old(Gamma_mem)); ensures (mem == old(mem)); - free ensures (memory_load32_le(mem, 1872bv64) == 131073bv32); - free ensures (memory_load64_le(mem, 69064bv64) == 1808bv64); - free ensures (memory_load64_le(mem, 69072bv64) == 1728bv64); - free ensures (memory_load64_le(mem, 69592bv64) == 1812bv64); - free ensures (memory_load64_le(mem, 69672bv64) == 69672bv64); + free ensures (memory_load32_le(mem, 2224bv64) == 131073bv32); + free ensures (memory_load64_le(mem, 130440bv64) == 2192bv64); + free ensures (memory_load64_le(mem, 130448bv64) == 2112bv64); + free ensures (memory_load64_le(mem, 131056bv64) == 2196bv64); + free ensures (memory_load64_le(mem, 131080bv64) == 131080bv64); procedure {:extern} rely_transitive(); modifies Gamma_mem, mem; @@ -58,45 +39,29 @@ procedure {:extern} rely_reflexive(); procedure {:extern} guarantee_reflexive(); modifies Gamma_mem, mem; -procedure main_1812(); - modifies Gamma_R0, Gamma_R31, Gamma_R8, Gamma_stack, R0, R31, R8, stack; - free requires (memory_load64_le(mem, 69664bv64) == 0bv64); - free requires (memory_load64_le(mem, 69672bv64) == 69672bv64); - free requires (memory_load32_le(mem, 1872bv64) == 131073bv32); - free requires (memory_load64_le(mem, 69064bv64) == 1808bv64); - free requires (memory_load64_le(mem, 69072bv64) == 1728bv64); - free requires (memory_load64_le(mem, 69592bv64) == 1812bv64); - free requires (memory_load64_le(mem, 69672bv64) == 69672bv64); - free ensures (Gamma_R31 == old(Gamma_R31)); - free ensures (R31 == old(R31)); - free ensures (memory_load32_le(mem, 1872bv64) == 131073bv32); - free ensures (memory_load64_le(mem, 69064bv64) == 1808bv64); - free ensures (memory_load64_le(mem, 69072bv64) == 1728bv64); - free ensures (memory_load64_le(mem, 69592bv64) == 1812bv64); - free ensures (memory_load64_le(mem, 69672bv64) == 69672bv64); +procedure main(); + modifies Gamma_R0, R0; + free requires (memory_load64_le(mem, 131072bv64) == 0bv64); + free requires (memory_load64_le(mem, 131080bv64) == 131080bv64); + free requires (memory_load32_le(mem, 2224bv64) == 131073bv32); + free requires (memory_load64_le(mem, 130440bv64) == 2192bv64); + free requires (memory_load64_le(mem, 130448bv64) == 2112bv64); + free requires (memory_load64_le(mem, 131056bv64) == 2196bv64); + free requires (memory_load64_le(mem, 131080bv64) == 131080bv64); + free ensures (memory_load32_le(mem, 2224bv64) == 131073bv32); + free ensures (memory_load64_le(mem, 130440bv64) == 2192bv64); + free ensures (memory_load64_le(mem, 130448bv64) == 2112bv64); + free ensures (memory_load64_le(mem, 131056bv64) == 2196bv64); + free ensures (memory_load64_le(mem, 131080bv64) == 131080bv64); -implementation main_1812() +implementation main() { - var Gamma_load18: bool; - var load18: bv32; lmain: assume {:captureState "lmain"} true; - R31, Gamma_R31 := bvadd64(R31, 18446744073709551584bv64), Gamma_R31; - R8, Gamma_R8 := 3bv64, true; - stack, Gamma_stack := memory_store32_le(stack, bvadd64(R31, 20bv64), R8[32:0]), gamma_store32(Gamma_stack, bvadd64(R31, 20bv64), Gamma_R8); - assume {:captureState "%0000089b"} true; - R8, Gamma_R8 := 7bv64, true; - stack, Gamma_stack := memory_store32_le(stack, bvadd64(R31, 28bv64), R8[32:0]), gamma_store32(Gamma_stack, bvadd64(R31, 28bv64), Gamma_R8); - assume {:captureState "%000008a8"} true; - load18, Gamma_load18 := memory_load32_le(stack, bvadd64(R31, 20bv64)), gamma_load32(Gamma_stack, bvadd64(R31, 20bv64)); - R8, Gamma_R8 := zero_extend32_32(load18), Gamma_load18; - stack, Gamma_stack := memory_store32_le(stack, bvadd64(R31, 8bv64), R8[32:0]), gamma_store32(Gamma_stack, bvadd64(R31, 8bv64), Gamma_R8); - assume {:captureState "%000008b7"} true; R0, Gamma_R0 := 0bv64, true; - R31, Gamma_R31 := bvadd64(R31, 32bv64), Gamma_R31; - goto main_1812_basil_return; - main_1812_basil_return: - assume {:captureState "main_1812_basil_return"} true; + goto main_basil_return; + main_basil_return: + assume {:captureState "main_basil_return"} true; return; } diff --git a/src/test/correct/arrays_simple/clang/arrays_simple.gts b/src/test/correct/arrays_simple/clang/arrays_simple.gts deleted file mode 100644 index 5f0437496..000000000 Binary files a/src/test/correct/arrays_simple/clang/arrays_simple.gts and /dev/null differ diff --git a/src/test/correct/arrays_simple/clang/arrays_simple.md5sum b/src/test/correct/arrays_simple/clang/arrays_simple.md5sum new file mode 100644 index 000000000..81ba2fe99 --- /dev/null +++ b/src/test/correct/arrays_simple/clang/arrays_simple.md5sum @@ -0,0 +1,5 @@ +6627cd0ee6e4284b01fa683ba9e49596 correct/arrays_simple/clang/a.out +c00fd57459aa1763f29e3db6befb2cbe correct/arrays_simple/clang/arrays_simple.adt +93950b8950c8fd9c5ee21479d407b28c correct/arrays_simple/clang/arrays_simple.bir +f62540a78e869f91cd784336dc145525 correct/arrays_simple/clang/arrays_simple.relf +ed8cfb791c05d819115387af0907870a correct/arrays_simple/clang/arrays_simple.gts diff --git a/src/test/correct/arrays_simple/clang/arrays_simple.relf b/src/test/correct/arrays_simple/clang/arrays_simple.relf deleted file mode 100644 index 3d3763965..000000000 --- a/src/test/correct/arrays_simple/clang/arrays_simple.relf +++ /dev/null @@ -1,121 +0,0 @@ - -Relocation section '.rela.dyn' at offset 0x460 contains 8 entries: - Offset Info Type Symbol's Value Symbol's Name + Addend -0000000000010dc8 0000000000000403 R_AARCH64_RELATIVE 710 -0000000000010dd0 0000000000000403 R_AARCH64_RELATIVE 6c0 -0000000000010fd8 0000000000000403 R_AARCH64_RELATIVE 714 -0000000000011028 0000000000000403 R_AARCH64_RELATIVE 11028 -0000000000010fc0 0000000400000401 R_AARCH64_GLOB_DAT 0000000000000000 _ITM_deregisterTMCloneTable + 0 -0000000000010fc8 0000000500000401 R_AARCH64_GLOB_DAT 0000000000000000 __cxa_finalize@GLIBC_2.17 + 0 -0000000000010fd0 0000000600000401 R_AARCH64_GLOB_DAT 0000000000000000 __gmon_start__ + 0 -0000000000010fe0 0000000800000401 R_AARCH64_GLOB_DAT 0000000000000000 _ITM_registerTMCloneTable + 0 - -Relocation section '.rela.plt' at offset 0x520 contains 4 entries: - Offset Info Type Symbol's Value Symbol's Name + Addend -0000000000011000 0000000300000402 R_AARCH64_JUMP_SLOT 0000000000000000 __libc_start_main@GLIBC_2.34 + 0 -0000000000011008 0000000500000402 R_AARCH64_JUMP_SLOT 0000000000000000 __cxa_finalize@GLIBC_2.17 + 0 -0000000000011010 0000000600000402 R_AARCH64_JUMP_SLOT 0000000000000000 __gmon_start__ + 0 -0000000000011018 0000000700000402 R_AARCH64_JUMP_SLOT 0000000000000000 abort@GLIBC_2.17 + 0 - -Symbol table '.dynsym' contains 9 entries: - Num: Value Size Type Bind Vis Ndx Name - 0: 0000000000000000 0 NOTYPE LOCAL DEFAULT UND - 1: 0000000000000580 0 SECTION LOCAL DEFAULT 11 .init - 2: 0000000000011020 0 SECTION LOCAL DEFAULT 23 .data - 3: 0000000000000000 0 FUNC GLOBAL DEFAULT UND __libc_start_main@GLIBC_2.34 (2) - 4: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_deregisterTMCloneTable - 5: 0000000000000000 0 FUNC WEAK DEFAULT UND __cxa_finalize@GLIBC_2.17 (3) - 6: 0000000000000000 0 NOTYPE WEAK DEFAULT UND __gmon_start__ - 7: 0000000000000000 0 FUNC GLOBAL DEFAULT UND abort@GLIBC_2.17 (3) - 8: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_registerTMCloneTable - -Symbol table '.symtab' contains 88 entries: - Num: Value Size Type Bind Vis Ndx Name - 0: 0000000000000000 0 NOTYPE LOCAL DEFAULT UND - 1: 0000000000000238 0 SECTION LOCAL DEFAULT 1 .interp - 2: 0000000000000254 0 SECTION LOCAL DEFAULT 2 .note.gnu.build-id - 3: 0000000000000278 0 SECTION LOCAL DEFAULT 3 .note.ABI-tag - 4: 0000000000000298 0 SECTION LOCAL DEFAULT 4 .gnu.hash - 5: 00000000000002b8 0 SECTION LOCAL DEFAULT 5 .dynsym - 6: 0000000000000390 0 SECTION LOCAL DEFAULT 6 .dynstr - 7: 000000000000041e 0 SECTION LOCAL DEFAULT 7 .gnu.version - 8: 0000000000000430 0 SECTION LOCAL DEFAULT 8 .gnu.version_r - 9: 0000000000000460 0 SECTION LOCAL DEFAULT 9 .rela.dyn - 10: 0000000000000520 0 SECTION LOCAL DEFAULT 10 .rela.plt - 11: 0000000000000580 0 SECTION LOCAL DEFAULT 11 .init - 12: 00000000000005a0 0 SECTION LOCAL DEFAULT 12 .plt - 13: 0000000000000600 0 SECTION LOCAL DEFAULT 13 .text - 14: 000000000000073c 0 SECTION LOCAL DEFAULT 14 .fini - 15: 0000000000000750 0 SECTION LOCAL DEFAULT 15 .rodata - 16: 0000000000000754 0 SECTION LOCAL DEFAULT 16 .eh_frame_hdr - 17: 0000000000000790 0 SECTION LOCAL DEFAULT 17 .eh_frame - 18: 0000000000010dc8 0 SECTION LOCAL DEFAULT 18 .init_array - 19: 0000000000010dd0 0 SECTION LOCAL DEFAULT 19 .fini_array - 20: 0000000000010dd8 0 SECTION LOCAL DEFAULT 20 .dynamic - 21: 0000000000010fb8 0 SECTION LOCAL DEFAULT 21 .got - 22: 0000000000010fe8 0 SECTION LOCAL DEFAULT 22 .got.plt - 23: 0000000000011020 0 SECTION LOCAL DEFAULT 23 .data - 24: 0000000000011030 0 SECTION LOCAL DEFAULT 24 .bss - 25: 0000000000000000 0 SECTION LOCAL DEFAULT 25 .comment - 26: 0000000000000000 0 FILE LOCAL DEFAULT ABS Scrt1.o - 27: 0000000000000278 0 NOTYPE LOCAL DEFAULT 3 $d - 28: 0000000000000278 32 OBJECT LOCAL DEFAULT 3 __abi_tag - 29: 0000000000000600 0 NOTYPE LOCAL DEFAULT 13 $x - 30: 00000000000007a4 0 NOTYPE LOCAL DEFAULT 17 $d - 31: 0000000000000750 0 NOTYPE LOCAL DEFAULT 15 $d - 32: 0000000000000000 0 FILE LOCAL DEFAULT ABS crti.o - 33: 0000000000000634 0 NOTYPE LOCAL DEFAULT 13 $x - 34: 0000000000000634 20 FUNC LOCAL DEFAULT 13 call_weak_fn - 35: 0000000000000580 0 NOTYPE LOCAL DEFAULT 11 $x - 36: 000000000000073c 0 NOTYPE LOCAL DEFAULT 14 $x - 37: 0000000000000000 0 FILE LOCAL DEFAULT ABS crtn.o - 38: 0000000000000590 0 NOTYPE LOCAL DEFAULT 11 $x - 39: 0000000000000748 0 NOTYPE LOCAL DEFAULT 14 $x - 40: 0000000000000000 0 FILE LOCAL DEFAULT ABS crtstuff.c - 41: 0000000000000650 0 NOTYPE LOCAL DEFAULT 13 $x - 42: 0000000000000650 0 FUNC LOCAL DEFAULT 13 deregister_tm_clones - 43: 0000000000000680 0 FUNC LOCAL DEFAULT 13 register_tm_clones - 44: 0000000000011028 0 NOTYPE LOCAL DEFAULT 23 $d - 45: 00000000000006c0 0 FUNC LOCAL DEFAULT 13 __do_global_dtors_aux - 46: 0000000000011030 1 OBJECT LOCAL DEFAULT 24 completed.0 - 47: 0000000000010dd0 0 NOTYPE LOCAL DEFAULT 19 $d - 48: 0000000000010dd0 0 OBJECT LOCAL DEFAULT 19 __do_global_dtors_aux_fini_array_entry - 49: 0000000000000710 0 FUNC LOCAL DEFAULT 13 frame_dummy - 50: 0000000000010dc8 0 NOTYPE LOCAL DEFAULT 18 $d - 51: 0000000000010dc8 0 OBJECT LOCAL DEFAULT 18 __frame_dummy_init_array_entry - 52: 00000000000007b8 0 NOTYPE LOCAL DEFAULT 17 $d - 53: 0000000000011030 0 NOTYPE LOCAL DEFAULT 24 $d - 54: 0000000000000000 0 FILE LOCAL DEFAULT ABS arrays_simple.c - 55: 0000000000000714 0 NOTYPE LOCAL DEFAULT 13 $x.0 - 56: 000000000000002a 0 NOTYPE LOCAL DEFAULT 25 $d.1 - 57: 0000000000000818 0 NOTYPE LOCAL DEFAULT 17 $d.2 - 58: 0000000000000000 0 FILE LOCAL DEFAULT ABS crtstuff.c - 59: 0000000000000844 0 NOTYPE LOCAL DEFAULT 17 $d - 60: 0000000000000844 0 OBJECT LOCAL DEFAULT 17 __FRAME_END__ - 61: 0000000000000000 0 FILE LOCAL DEFAULT ABS - 62: 0000000000010dd8 0 OBJECT LOCAL DEFAULT ABS _DYNAMIC - 63: 0000000000000754 0 NOTYPE LOCAL DEFAULT 16 __GNU_EH_FRAME_HDR - 64: 0000000000010fb8 0 OBJECT LOCAL DEFAULT ABS _GLOBAL_OFFSET_TABLE_ - 65: 00000000000005a0 0 NOTYPE LOCAL DEFAULT 12 $x - 66: 0000000000000000 0 FUNC GLOBAL DEFAULT UND __libc_start_main@GLIBC_2.34 - 67: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_deregisterTMCloneTable - 68: 0000000000011020 0 NOTYPE WEAK DEFAULT 23 data_start - 69: 0000000000011030 0 NOTYPE GLOBAL DEFAULT 24 __bss_start__ - 70: 0000000000000000 0 FUNC WEAK DEFAULT UND __cxa_finalize@GLIBC_2.17 - 71: 0000000000011038 0 NOTYPE GLOBAL DEFAULT 24 _bss_end__ - 72: 0000000000011030 0 NOTYPE GLOBAL DEFAULT 23 _edata - 73: 000000000000073c 0 FUNC GLOBAL HIDDEN 14 _fini - 74: 0000000000011038 0 NOTYPE GLOBAL DEFAULT 24 __bss_end__ - 75: 0000000000011020 0 NOTYPE GLOBAL DEFAULT 23 __data_start - 76: 0000000000000000 0 NOTYPE WEAK DEFAULT UND __gmon_start__ - 77: 0000000000011028 0 OBJECT GLOBAL HIDDEN 23 __dso_handle - 78: 0000000000000000 0 FUNC GLOBAL DEFAULT UND abort@GLIBC_2.17 - 79: 0000000000000750 4 OBJECT GLOBAL DEFAULT 15 _IO_stdin_used - 80: 0000000000011038 0 NOTYPE GLOBAL DEFAULT 24 _end - 81: 0000000000000600 52 FUNC GLOBAL DEFAULT 13 _start - 82: 0000000000011038 0 NOTYPE GLOBAL DEFAULT 24 __end__ - 83: 0000000000011030 0 NOTYPE GLOBAL DEFAULT 24 __bss_start - 84: 0000000000000714 40 FUNC GLOBAL DEFAULT 13 main - 85: 0000000000011030 0 OBJECT GLOBAL HIDDEN 23 __TMC_END__ - 86: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_registerTMCloneTable - 87: 0000000000000580 0 FUNC GLOBAL HIDDEN 11 _init diff --git a/src/test/correct/arrays_simple/clang/arrays_simple_gtirb.expected b/src/test/correct/arrays_simple/clang/arrays_simple_gtirb.expected index 24e323723..f1f30cc9b 100644 --- a/src/test/correct/arrays_simple/clang/arrays_simple_gtirb.expected +++ b/src/test/correct/arrays_simple/clang/arrays_simple_gtirb.expected @@ -1,24 +1,10 @@ var {:extern} Gamma_R0: bool; -var {:extern} Gamma_R31: bool; -var {:extern} Gamma_R8: bool; var {:extern} Gamma_mem: [bv64]bool; -var {:extern} Gamma_stack: [bv64]bool; var {:extern} R0: bv64; -var {:extern} R31: bv64; -var {:extern} R8: bv64; var {:extern} mem: [bv64]bv8; -var {:extern} stack: [bv64]bv8; const {:extern} $_IO_stdin_used_addr: bv64; -axiom ($_IO_stdin_used_addr == 1872bv64); +axiom ($_IO_stdin_used_addr == 2224bv64); function {:extern} {:bvbuiltin "bvadd"} bvadd64(bv64, bv64) returns (bv64); -function {:extern} gamma_load32(gammaMap: [bv64]bool, index: bv64) returns (bool) { - (gammaMap[bvadd64(index, 3bv64)] && (gammaMap[bvadd64(index, 2bv64)] && (gammaMap[bvadd64(index, 1bv64)] && gammaMap[index]))) -} - -function {:extern} gamma_store32(gammaMap: [bv64]bool, index: bv64, value: bool) returns ([bv64]bool) { - gammaMap[index := value][bvadd64(index, 1bv64) := value][bvadd64(index, 2bv64) := value][bvadd64(index, 3bv64) := value] -} - function {:extern} memory_load32_le(memory: [bv64]bv8, index: bv64) returns (bv32) { (memory[bvadd64(index, 3bv64)] ++ (memory[bvadd64(index, 2bv64)] ++ (memory[bvadd64(index, 1bv64)] ++ memory[index]))) } @@ -27,20 +13,15 @@ function {:extern} memory_load64_le(memory: [bv64]bv8, index: bv64) returns (bv6 (memory[bvadd64(index, 7bv64)] ++ (memory[bvadd64(index, 6bv64)] ++ (memory[bvadd64(index, 5bv64)] ++ (memory[bvadd64(index, 4bv64)] ++ (memory[bvadd64(index, 3bv64)] ++ (memory[bvadd64(index, 2bv64)] ++ (memory[bvadd64(index, 1bv64)] ++ memory[index]))))))) } -function {:extern} memory_store32_le(memory: [bv64]bv8, index: bv64, value: bv32) returns ([bv64]bv8) { - memory[index := value[8:0]][bvadd64(index, 1bv64) := value[16:8]][bvadd64(index, 2bv64) := value[24:16]][bvadd64(index, 3bv64) := value[32:24]] -} - -function {:extern} {:bvbuiltin "zero_extend 32"} zero_extend32_32(bv32) returns (bv64); procedure {:extern} rely(); modifies Gamma_mem, mem; ensures (Gamma_mem == old(Gamma_mem)); ensures (mem == old(mem)); - free ensures (memory_load32_le(mem, 1872bv64) == 131073bv32); - free ensures (memory_load64_le(mem, 69064bv64) == 1808bv64); - free ensures (memory_load64_le(mem, 69072bv64) == 1728bv64); - free ensures (memory_load64_le(mem, 69592bv64) == 1812bv64); - free ensures (memory_load64_le(mem, 69672bv64) == 69672bv64); + free ensures (memory_load32_le(mem, 2224bv64) == 131073bv32); + free ensures (memory_load64_le(mem, 130440bv64) == 2192bv64); + free ensures (memory_load64_le(mem, 130448bv64) == 2112bv64); + free ensures (memory_load64_le(mem, 131056bv64) == 2196bv64); + free ensures (memory_load64_le(mem, 131080bv64) == 131080bv64); procedure {:extern} rely_transitive(); modifies Gamma_mem, mem; @@ -58,45 +39,29 @@ procedure {:extern} rely_reflexive(); procedure {:extern} guarantee_reflexive(); modifies Gamma_mem, mem; -procedure main_1812(); - modifies Gamma_R0, Gamma_R31, Gamma_R8, Gamma_stack, R0, R31, R8, stack; - free requires (memory_load64_le(mem, 69664bv64) == 0bv64); - free requires (memory_load64_le(mem, 69672bv64) == 69672bv64); - free requires (memory_load32_le(mem, 1872bv64) == 131073bv32); - free requires (memory_load64_le(mem, 69064bv64) == 1808bv64); - free requires (memory_load64_le(mem, 69072bv64) == 1728bv64); - free requires (memory_load64_le(mem, 69592bv64) == 1812bv64); - free requires (memory_load64_le(mem, 69672bv64) == 69672bv64); - free ensures (Gamma_R31 == old(Gamma_R31)); - free ensures (R31 == old(R31)); - free ensures (memory_load32_le(mem, 1872bv64) == 131073bv32); - free ensures (memory_load64_le(mem, 69064bv64) == 1808bv64); - free ensures (memory_load64_le(mem, 69072bv64) == 1728bv64); - free ensures (memory_load64_le(mem, 69592bv64) == 1812bv64); - free ensures (memory_load64_le(mem, 69672bv64) == 69672bv64); +procedure main(); + modifies Gamma_R0, R0; + free requires (memory_load64_le(mem, 131072bv64) == 0bv64); + free requires (memory_load64_le(mem, 131080bv64) == 131080bv64); + free requires (memory_load32_le(mem, 2224bv64) == 131073bv32); + free requires (memory_load64_le(mem, 130440bv64) == 2192bv64); + free requires (memory_load64_le(mem, 130448bv64) == 2112bv64); + free requires (memory_load64_le(mem, 131056bv64) == 2196bv64); + free requires (memory_load64_le(mem, 131080bv64) == 131080bv64); + free ensures (memory_load32_le(mem, 2224bv64) == 131073bv32); + free ensures (memory_load64_le(mem, 130440bv64) == 2192bv64); + free ensures (memory_load64_le(mem, 130448bv64) == 2112bv64); + free ensures (memory_load64_le(mem, 131056bv64) == 2196bv64); + free ensures (memory_load64_le(mem, 131080bv64) == 131080bv64); -implementation main_1812() +implementation main() { - var Gamma_load8: bool; - var load8: bv32; - main_1812__0__hLpmd_ERQq2v3Sj7g4WZPA: - assume {:captureState "main_1812__0__hLpmd_ERQq2v3Sj7g4WZPA"} true; - R31, Gamma_R31 := bvadd64(R31, 18446744073709551584bv64), Gamma_R31; - R8, Gamma_R8 := 3bv64, true; - stack, Gamma_stack := memory_store32_le(stack, bvadd64(R31, 20bv64), R8[32:0]), gamma_store32(Gamma_stack, bvadd64(R31, 20bv64), Gamma_R8); - assume {:captureState "1820_0"} true; - R8, Gamma_R8 := 7bv64, true; - stack, Gamma_stack := memory_store32_le(stack, bvadd64(R31, 28bv64), R8[32:0]), gamma_store32(Gamma_stack, bvadd64(R31, 28bv64), Gamma_R8); - assume {:captureState "1828_0"} true; - load8, Gamma_load8 := memory_load32_le(stack, bvadd64(R31, 20bv64)), gamma_load32(Gamma_stack, bvadd64(R31, 20bv64)); - R8, Gamma_R8 := zero_extend32_32(load8), Gamma_load8; - stack, Gamma_stack := memory_store32_le(stack, bvadd64(R31, 8bv64), R8[32:0]), gamma_store32(Gamma_stack, bvadd64(R31, 8bv64), Gamma_R8); - assume {:captureState "1836_0"} true; + $main$__0__$cdQ2GS2~QhaOa7OUvPWMRQ: + assume {:captureState "$main$__0__$cdQ2GS2~QhaOa7OUvPWMRQ"} true; R0, Gamma_R0 := 0bv64, true; - R31, Gamma_R31 := bvadd64(R31, 32bv64), Gamma_R31; - goto main_1812_basil_return; - main_1812_basil_return: - assume {:captureState "main_1812_basil_return"} true; + goto main_basil_return; + main_basil_return: + assume {:captureState "main_basil_return"} true; return; } diff --git a/src/test/correct/basic_arrays_read/clang/basic_arrays_read.adt b/src/test/correct/basic_arrays_read/clang/basic_arrays_read.adt deleted file mode 100644 index c13183bab..000000000 --- a/src/test/correct/basic_arrays_read/clang/basic_arrays_read.adt +++ /dev/null @@ -1,499 +0,0 @@ -Project(Attrs([Attr("filename","\"clang/basic_arrays_read.out\""), -Attr("image-specification","(declare abi (name str))\n(declare arch (name str))\n(declare base-address (addr int))\n(declare bias (off int))\n(declare bits (size int))\n(declare code-region (addr int) (size int) (off int))\n(declare code-start (addr int))\n(declare entry-point (addr int))\n(declare external-reference (addr int) (name str))\n(declare format (name str))\n(declare is-executable (flag bool))\n(declare is-little-endian (flag bool))\n(declare llvm:base-address (addr int))\n(declare llvm:code-entry (name str) (off int) (size int))\n(declare llvm:coff-import-library (name str))\n(declare llvm:coff-virtual-section-header (name str) (addr int) (size int))\n(declare llvm:elf-program-header (name str) (off int) (size int))\n(declare llvm:elf-program-header-flags (name str) (ld bool) (r bool) \n (w bool) (x bool))\n(declare llvm:elf-virtual-program-header (name str) (addr int) (size int))\n(declare llvm:entry-point (addr int))\n(declare llvm:macho-symbol (name str) (value int))\n(declare llvm:name-reference (at int) (name str))\n(declare llvm:relocation (at int) (addr int))\n(declare llvm:section-entry (name str) (addr int) (size int) (off int))\n(declare llvm:section-flags (name str) (r bool) (w bool) (x bool))\n(declare llvm:segment-command (name str) (off int) (size int))\n(declare llvm:segment-command-flags (name str) (r bool) (w bool) (x bool))\n(declare llvm:symbol-entry (name str) (addr int) (size int) (off int)\n (value int))\n(declare llvm:virtual-segment-command (name str) (addr int) (size int))\n(declare mapped (addr int) (size int) (off int))\n(declare named-region (addr int) (size int) (name str))\n(declare named-symbol (addr int) (name str))\n(declare require (name str))\n(declare section (addr int) (size int))\n(declare segment (addr int) (size int) (r bool) (w bool) (x bool))\n(declare subarch (name str))\n(declare symbol-chunk (addr int) (size int) (root int))\n(declare symbol-value (addr int) (value int))\n(declare system (name str))\n(declare vendor (name str))\n\n(abi unknown)\n(arch aarch64)\n(base-address 0)\n(bias 0)\n(bits 64)\n(code-region 1840 20 1840)\n(code-region 1536 304 1536)\n(code-region 1440 96 1440)\n(code-region 1408 24 1408)\n(code-start 1588)\n(code-start 1536)\n(code-start 1812)\n(entry-point 1536)\n(external-reference 69568 _ITM_deregisterTMCloneTable)\n(external-reference 69576 __cxa_finalize)\n(external-reference 69584 __gmon_start__)\n(external-reference 69600 _ITM_registerTMCloneTable)\n(external-reference 69632 __libc_start_main)\n(external-reference 69640 __cxa_finalize)\n(external-reference 69648 __gmon_start__)\n(external-reference 69656 abort)\n(format elf)\n(is-executable true)\n(is-little-endian true)\n(llvm:base-address 0)\n(llvm:code-entry abort 0 0)\n(llvm:code-entry __cxa_finalize 0 0)\n(llvm:code-entry __libc_start_main 0 0)\n(llvm:code-entry _init 1408 0)\n(llvm:code-entry main 1812 28)\n(llvm:code-entry _start 1536 52)\n(llvm:code-entry abort@GLIBC_2.17 0 0)\n(llvm:code-entry _fini 1840 0)\n(llvm:code-entry __cxa_finalize@GLIBC_2.17 0 0)\n(llvm:code-entry __libc_start_main@GLIBC_2.34 0 0)\n(llvm:code-entry frame_dummy 1808 0)\n(llvm:code-entry __do_global_dtors_aux 1728 0)\n(llvm:code-entry register_tm_clones 1664 0)\n(llvm:code-entry deregister_tm_clones 1616 0)\n(llvm:code-entry call_weak_fn 1588 20)\n(llvm:code-entry .fini 1840 20)\n(llvm:code-entry .text 1536 304)\n(llvm:code-entry .plt 1440 96)\n(llvm:code-entry .init 1408 24)\n(llvm:elf-program-header 08 3528 568)\n(llvm:elf-program-header 07 0 0)\n(llvm:elf-program-header 06 1864 60)\n(llvm:elf-program-header 05 596 68)\n(llvm:elf-program-header 04 3544 480)\n(llvm:elf-program-header 03 3528 616)\n(llvm:elf-program-header 02 0 2112)\n(llvm:elf-program-header 01 568 27)\n(llvm:elf-program-header 00 64 504)\n(llvm:elf-program-header-flags 08 false true false false)\n(llvm:elf-program-header-flags 07 false true true false)\n(llvm:elf-program-header-flags 06 false true false false)\n(llvm:elf-program-header-flags 05 false true false false)\n(llvm:elf-program-header-flags 04 false true true false)\n(llvm:elf-program-header-flags 03 true true true false)\n(llvm:elf-program-header-flags 02 true true false true)\n(llvm:elf-program-header-flags 01 false true false false)\n(llvm:elf-program-header-flags 00 false true false false)\n(llvm:elf-virtual-program-header 08 69064 568)\n(llvm:elf-virtual-program-header 07 0 0)\n(llvm:elf-virtual-program-header 06 1864 60)\n(llvm:elf-virtual-program-header 05 596 68)\n(llvm:elf-virtual-program-header 04 69080 480)\n(llvm:elf-virtual-program-header 03 69064 632)\n(llvm:elf-virtual-program-header 02 0 2112)\n(llvm:elf-virtual-program-header 01 568 27)\n(llvm:elf-virtual-program-header 00 64 504)\n(llvm:entry-point 1536)\n(llvm:name-reference 69656 abort)\n(llvm:name-reference 69648 __gmon_start__)\n(llvm:name-reference 69640 __cxa_finalize)\n(llvm:name-reference 69632 __libc_start_main)\n(llvm:name-reference 69600 _ITM_registerTMCloneTable)\n(llvm:name-reference 69584 __gmon_start__)\n(llvm:name-reference 69576 __cxa_finalize)\n(llvm:name-reference 69568 _ITM_deregisterTMCloneTable)\n(llvm:section-entry .shstrtab 0 259 6953)\n(llvm:section-entry .strtab 0 577 6376)\n(llvm:section-entry .symtab 0 2160 4216)\n(llvm:section-entry .comment 0 71 4144)\n(llvm:section-entry .bss 69680 16 4144)\n(llvm:section-entry .data 69664 16 4128)\n(llvm:section-entry .got.plt 69608 56 4072)\n(llvm:section-entry .got 69560 48 4024)\n(llvm:section-entry .dynamic 69080 480 3544)\n(llvm:section-entry .fini_array 69072 8 3536)\n(llvm:section-entry .init_array 69064 8 3528)\n(llvm:section-entry .eh_frame 1928 184 1928)\n(llvm:section-entry .eh_frame_hdr 1864 60 1864)\n(llvm:section-entry .rodata 1860 4 1860)\n(llvm:section-entry .fini 1840 20 1840)\n(llvm:section-entry .text 1536 304 1536)\n(llvm:section-entry .plt 1440 96 1440)\n(llvm:section-entry .init 1408 24 1408)\n(llvm:section-entry .rela.plt 1312 96 1312)\n(llvm:section-entry .rela.dyn 1120 192 1120)\n(llvm:section-entry .gnu.version_r 1072 48 1072)\n(llvm:section-entry .gnu.version 1054 18 1054)\n(llvm:section-entry .dynstr 912 141 912)\n(llvm:section-entry .dynsym 696 216 696)\n(llvm:section-entry .gnu.hash 664 28 664)\n(llvm:section-entry .note.ABI-tag 632 32 632)\n(llvm:section-entry .note.gnu.build-id 596 36 596)\n(llvm:section-entry .interp 568 27 568)\n(llvm:section-flags .shstrtab true false false)\n(llvm:section-flags .strtab true false false)\n(llvm:section-flags .symtab true false false)\n(llvm:section-flags .comment true false false)\n(llvm:section-flags .bss true true false)\n(llvm:section-flags .data true true false)\n(llvm:section-flags .got.plt true true false)\n(llvm:section-flags .got true true false)\n(llvm:section-flags .dynamic true true false)\n(llvm:section-flags .fini_array true true false)\n(llvm:section-flags .init_array true true false)\n(llvm:section-flags .eh_frame true false false)\n(llvm:section-flags .eh_frame_hdr true false false)\n(llvm:section-flags .rodata true false false)\n(llvm:section-flags .fini true false true)\n(llvm:section-flags .text true false true)\n(llvm:section-flags .plt true false true)\n(llvm:section-flags .init true false true)\n(llvm:section-flags .rela.plt true false false)\n(llvm:section-flags .rela.dyn true false false)\n(llvm:section-flags .gnu.version_r true false false)\n(llvm:section-flags .gnu.version true false false)\n(llvm:section-flags .dynstr true false false)\n(llvm:section-flags .dynsym true false false)\n(llvm:section-flags .gnu.hash true false false)\n(llvm:section-flags .note.ABI-tag true false false)\n(llvm:section-flags .note.gnu.build-id true false false)\n(llvm:section-flags .interp true false false)\n(llvm:symbol-entry abort 0 0 0 0)\n(llvm:symbol-entry __cxa_finalize 0 0 0 0)\n(llvm:symbol-entry __libc_start_main 0 0 0 0)\n(llvm:symbol-entry _init 1408 0 1408 1408)\n(llvm:symbol-entry main 1812 28 1812 1812)\n(llvm:symbol-entry _start 1536 52 1536 1536)\n(llvm:symbol-entry abort@GLIBC_2.17 0 0 0 0)\n(llvm:symbol-entry _fini 1840 0 1840 1840)\n(llvm:symbol-entry __cxa_finalize@GLIBC_2.17 0 0 0 0)\n(llvm:symbol-entry __libc_start_main@GLIBC_2.34 0 0 0 0)\n(llvm:symbol-entry frame_dummy 1808 0 1808 1808)\n(llvm:symbol-entry __do_global_dtors_aux 1728 0 1728 1728)\n(llvm:symbol-entry register_tm_clones 1664 0 1664 1664)\n(llvm:symbol-entry deregister_tm_clones 1616 0 1616 1616)\n(llvm:symbol-entry call_weak_fn 1588 20 1588 1588)\n(mapped 0 2112 0)\n(mapped 69064 616 3528)\n(named-region 0 2112 02)\n(named-region 69064 632 03)\n(named-region 568 27 .interp)\n(named-region 596 36 .note.gnu.build-id)\n(named-region 632 32 .note.ABI-tag)\n(named-region 664 28 .gnu.hash)\n(named-region 696 216 .dynsym)\n(named-region 912 141 .dynstr)\n(named-region 1054 18 .gnu.version)\n(named-region 1072 48 .gnu.version_r)\n(named-region 1120 192 .rela.dyn)\n(named-region 1312 96 .rela.plt)\n(named-region 1408 24 .init)\n(named-region 1440 96 .plt)\n(named-region 1536 304 .text)\n(named-region 1840 20 .fini)\n(named-region 1860 4 .rodata)\n(named-region 1864 60 .eh_frame_hdr)\n(named-region 1928 184 .eh_frame)\n(named-region 69064 8 .init_array)\n(named-region 69072 8 .fini_array)\n(named-region 69080 480 .dynamic)\n(named-region 69560 48 .got)\n(named-region 69608 56 .got.plt)\n(named-region 69664 16 .data)\n(named-region 69680 16 .bss)\n(named-region 0 71 .comment)\n(named-region 0 2160 .symtab)\n(named-region 0 577 .strtab)\n(named-region 0 259 .shstrtab)\n(named-symbol 1588 call_weak_fn)\n(named-symbol 1616 deregister_tm_clones)\n(named-symbol 1664 register_tm_clones)\n(named-symbol 1728 __do_global_dtors_aux)\n(named-symbol 1808 frame_dummy)\n(named-symbol 0 __libc_start_main@GLIBC_2.34)\n(named-symbol 0 __cxa_finalize@GLIBC_2.17)\n(named-symbol 1840 _fini)\n(named-symbol 0 abort@GLIBC_2.17)\n(named-symbol 1536 _start)\n(named-symbol 1812 main)\n(named-symbol 1408 _init)\n(named-symbol 0 __libc_start_main)\n(named-symbol 0 __cxa_finalize)\n(named-symbol 0 abort)\n(require libc.so.6)\n(section 568 27)\n(section 596 36)\n(section 632 32)\n(section 664 28)\n(section 696 216)\n(section 912 141)\n(section 1054 18)\n(section 1072 48)\n(section 1120 192)\n(section 1312 96)\n(section 1408 24)\n(section 1440 96)\n(section 1536 304)\n(section 1840 20)\n(section 1860 4)\n(section 1864 60)\n(section 1928 184)\n(section 69064 8)\n(section 69072 8)\n(section 69080 480)\n(section 69560 48)\n(section 69608 56)\n(section 69664 16)\n(section 69680 16)\n(section 0 71)\n(section 0 2160)\n(section 0 577)\n(section 0 259)\n(segment 0 2112 true false true)\n(segment 69064 632 true true false)\n(subarch v8)\n(symbol-chunk 1588 20 1588)\n(symbol-chunk 1536 52 1536)\n(symbol-chunk 1812 28 1812)\n(symbol-value 1588 1588)\n(symbol-value 1616 1616)\n(symbol-value 1664 1664)\n(symbol-value 1728 1728)\n(symbol-value 1808 1808)\n(symbol-value 1840 1840)\n(symbol-value 1536 1536)\n(symbol-value 1812 1812)\n(symbol-value 1408 1408)\n(symbol-value 0 0)\n(system \"\")\n(vendor \"\")\n"), -Attr("abi-name","\"aarch64-linux-gnu-elf\"")]), -Sections([Section(".shstrtab", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x00\x06\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x30\x1c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x38\x00\x09\x00\x40\x00\x1d\x00\x1c\x00\x06\x00\x00\x00\x04\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x04\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x08\x00\x00\x00\x00\x00\x00\x40\x08\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x01\x00\x00\x00\x06\x00\x00\x00\xc8\x0d\x00\x00\x00\x00\x00\x00\xc8\x0d\x01\x00\x00\x00\x00\x00\xc8\x0d\x01"), -Section(".strtab", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x00\x06\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x30\x1c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x38\x00\x09\x00\x40\x00\x1d\x00\x1c\x00\x06\x00\x00\x00\x04\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x04\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x08\x00\x00\x00\x00\x00\x00\x40\x08\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x01\x00\x00\x00\x06\x00\x00\x00\xc8\x0d\x00\x00\x00\x00\x00\x00\xc8\x0d\x01\x00\x00\x00\x00\x00\xc8\x0d\x01\x00\x00\x00\x00\x00\x68\x02\x00\x00\x00\x00\x00\x00\x78\x02\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x02\x00\x00\x00\x06\x00\x00\x00\xd8\x0d\x00\x00\x00\x00\x00\x00\xd8\x0d\x01\x00\x00\x00\x00\x00\xd8\x0d\x01\x00\x00\x00\x00\x00\xe0\x01\x00\x00\x00\x00\x00\x00\xe0\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x04\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x50\xe5\x74\x64\x04\x00\x00\x00\x48\x07\x00\x00\x00\x00\x00\x00\x48\x07\x00\x00\x00\x00\x00\x00\x48\x07\x00\x00\x00\x00\x00\x00\x3c\x00\x00\x00\x00\x00\x00\x00\x3c\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x51\xe5\x74\x64\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x52\xe5\x74\x64\x04\x00\x00\x00\xc8\x0d\x00\x00\x00\x00\x00\x00\xc8\x0d\x01\x00\x00\x00\x00\x00\xc8\x0d\x01\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x2f\x6c\x69\x62\x2f\x6c\x64\x2d\x6c"), -Section(".comment", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x00\x06\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x30\x1c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x38\x00\x09\x00\x40\x00\x1d\x00\x1c\x00\x06\x00\x00\x00\x04\x00\x00"), -Section(".interp", 0x238, "\x2f\x6c\x69\x62\x2f\x6c\x64\x2d\x6c\x69\x6e\x75\x78\x2d\x61\x61\x72\x63\x68\x36\x34\x2e\x73\x6f\x2e\x31\x00"), -Section(".note.gnu.build-id", 0x254, "\x04\x00\x00\x00\x14\x00\x00\x00\x03\x00\x00\x00\x47\x4e\x55\x00\x04\x3a\x44\x7c\xd7\x14\x59\x87\xaf\xbd\x5e\x4c\x74\x4e\xeb\x01\x96\xc7\xe0\xca"), -Section(".note.ABI-tag", 0x278, "\x04\x00\x00\x00\x10\x00\x00\x00\x01\x00\x00\x00\x47\x4e\x55\x00\x00\x00\x00\x00\x03\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00"), -Section(".gnu.hash", 0x298, "\x01\x00\x00\x00\x01\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".dynsym", 0x2B8, "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x0b\x00\x80\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x17\x00\x20\x10\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x48\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x22\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x22\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x73\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".dynstr", 0x390, "\x00\x5f\x5f\x63\x78\x61\x5f\x66\x69\x6e\x61\x6c\x69\x7a\x65\x00\x5f\x5f\x6c\x69\x62\x63\x5f\x73\x74\x61\x72\x74\x5f\x6d\x61\x69\x6e\x00\x61\x62\x6f\x72\x74\x00\x6c\x69\x62\x63\x2e\x73\x6f\x2e\x36\x00\x47\x4c\x49\x42\x43\x5f\x32\x2e\x31\x37\x00\x47\x4c\x49\x42\x43\x5f\x32\x2e\x33\x34\x00\x5f\x49\x54\x4d\x5f\x64\x65\x72\x65\x67\x69\x73\x74\x65\x72\x54\x4d\x43\x6c\x6f\x6e\x65\x54\x61\x62\x6c\x65\x00\x5f\x5f\x67\x6d\x6f\x6e\x5f\x73\x74\x61\x72\x74\x5f\x5f\x00\x5f\x49\x54\x4d\x5f\x72\x65\x67\x69\x73\x74\x65\x72\x54\x4d\x43\x6c\x6f\x6e\x65\x54\x61\x62\x6c\x65\x00"), -Section(".gnu.version", 0x41E, "\x00\x00\x00\x00\x00\x00\x02\x00\x01\x00\x03\x00\x01\x00\x03\x00\x01\x00"), -Section(".gnu.version_r", 0x430, "\x01\x00\x02\x00\x28\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x97\x91\x96\x06\x00\x00\x03\x00\x32\x00\x00\x00\x10\x00\x00\x00\xb4\x91\x96\x06\x00\x00\x02\x00\x3d\x00\x00\x00\x00\x00\x00\x00"), -Section(".rela.dyn", 0x460, "\xc8\x0d\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x10\x07\x00\x00\x00\x00\x00\x00\xd0\x0d\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\xc0\x06\x00\x00\x00\x00\x00\x00\xd8\x0f\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x14\x07\x00\x00\x00\x00\x00\x00\x28\x10\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x28\x10\x01\x00\x00\x00\x00\x00\xc0\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xc8\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xd0\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe0\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".rela.plt", 0x520, "\x00\x10\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x08\x10\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x10\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x18\x10\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".init", 0x580, "\x1f\x20\x03\xd5\xfd\x7b\xbf\xa9\xfd\x03\x00\x91\x2a\x00\x00\x94\xfd\x7b\xc1\xa8\xc0\x03\x5f\xd6"), -Section(".plt", 0x5A0, "\xf0\x7b\xbf\xa9\x90\x00\x00\x90\x11\xfe\x47\xf9\x10\xe2\x3f\x91\x20\x02\x1f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x90\x00\x00\xb0\x11\x02\x40\xf9\x10\x02\x00\x91\x20\x02\x1f\xd6\x90\x00\x00\xb0\x11\x06\x40\xf9\x10\x22\x00\x91\x20\x02\x1f\xd6\x90\x00\x00\xb0\x11\x0a\x40\xf9\x10\x42\x00\x91\x20\x02\x1f\xd6\x90\x00\x00\xb0\x11\x0e\x40\xf9\x10\x62\x00\x91\x20\x02\x1f\xd6"), -Section(".text", 0x600, "\x1f\x20\x03\xd5\x1d\x00\x80\xd2\x1e\x00\x80\xd2\xe5\x03\x00\xaa\xe1\x03\x40\xf9\xe2\x23\x00\x91\xe6\x03\x00\x91\x80\x00\x00\x90\x00\xec\x47\xf9\x03\x00\x80\xd2\x04\x00\x80\xd2\xe5\xff\xff\x97\xf0\xff\xff\x97\x80\x00\x00\x90\x00\xe8\x47\xf9\x40\x00\x00\xb4\xe8\xff\xff\x17\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x80\x00\x00\xb0\x00\xc0\x00\x91\x81\x00\x00\xb0\x21\xc0\x00\x91\x3f\x00\x00\xeb\xc0\x00\x00\x54\x81\x00\x00\x90\x21\xe0\x47\xf9\x61\x00\x00\xb4\xf0\x03\x01\xaa\x00\x02\x1f\xd6\xc0\x03\x5f\xd6\x80\x00\x00\xb0\x00\xc0\x00\x91\x81\x00\x00\xb0\x21\xc0\x00\x91\x21\x00\x00\xcb\x22\xfc\x7f\xd3\x41\x0c\x81\x8b\x21\xfc\x41\x93\xc1\x00\x00\xb4\x82\x00\x00\x90\x42\xf0\x47\xf9\x62\x00\x00\xb4\xf0\x03\x02\xaa\x00\x02\x1f\xd6\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\xfd\x7b\xbe\xa9\xfd\x03\x00\x91\xf3\x0b\x00\xf9\x93\x00\x00\xb0\x60\xc2\x40\x39\x40\x01\x00\x35\x80\x00\x00\x90\x00\xe4\x47\xf9\x80\x00\x00\xb4\x80\x00\x00\xb0\x00\x14\x40\xf9\xb9\xff\xff\x97\xd8\xff\xff\x97\x20\x00\x80\x52\x60\xc2\x00\x39\xf3\x0b\x40\xf9\xfd\x7b\xc2\xa8\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\xdc\xff\xff\x17\xff\x43\x00\xd1\xff\x0f\x00\xb9\x88\x00\x00\xb0\x1f\x35\x00\xb9\x00\x35\x40\xb9\xff\x43\x00\x91\xc0\x03\x5f\xd6"), -Section(".fini", 0x730, "\x1f\x20\x03\xd5\xfd\x7b\xbf\xa9\xfd\x03\x00\x91\xfd\x7b\xc1\xa8\xc0\x03\x5f\xd6"), -Section(".rodata", 0x744, "\x01\x00\x02\x00"), -Section(".eh_frame_hdr", 0x748, "\x01\x1b\x03\x3b\x3c\x00\x00\x00\x06\x00\x00\x00\xb8\xfe\xff\xff\x54\x00\x00\x00\x08\xff\xff\xff\x68\x00\x00\x00\x38\xff\xff\xff\x7c\x00\x00\x00\x78\xff\xff\xff\x90\x00\x00\x00\xc8\xff\xff\xff\xb4\x00\x00\x00\xcc\xff\xff\xff\xdc\x00\x00\x00"), -Section(".eh_frame", 0x788, "\x10\x00\x00\x00\x00\x00\x00\x00\x01\x7a\x52\x00\x04\x78\x1e\x01\x1b\x0c\x1f\x00\x10\x00\x00\x00\x18\x00\x00\x00\x5c\xfe\xff\xff\x34\x00\x00\x00\x00\x41\x07\x1e\x10\x00\x00\x00\x2c\x00\x00\x00\x98\xfe\xff\xff\x30\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x40\x00\x00\x00\xb4\xfe\xff\xff\x3c\x00\x00\x00\x00\x00\x00\x00\x20\x00\x00\x00\x54\x00\x00\x00\xe0\xfe\xff\xff\x48\x00\x00\x00\x00\x41\x0e\x20\x9d\x04\x9e\x03\x42\x93\x02\x4e\xde\xdd\xd3\x0e\x00\x00\x00\x00\x10\x00\x00\x00\x78\x00\x00\x00\x0c\xff\xff\xff\x04\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x01\x7a\x52\x00\x01\x7c\x1e\x01\x1b\x0c\x1f\x00\x14\x00\x00\x00\x18\x00\x00\x00\xe8\xfe\xff\xff\x1c\x00\x00\x00\x00\x44\x0e\x10\x54\x0e\x00\x00\x00\x00\x00\x00"), -Section(".fini_array", 0x10DD0, "\xc0\x06\x00\x00\x00\x00\x00\x00"), -Section(".dynamic", 0x10DD8, "\x01\x00\x00\x00\x00\x00\x00\x00\x28\x00\x00\x00\x00\x00\x00\x00\x0c\x00\x00\x00\x00\x00\x00\x00\x80\x05\x00\x00\x00\x00\x00\x00\x0d\x00\x00\x00\x00\x00\x00\x00\x30\x07\x00\x00\x00\x00\x00\x00\x19\x00\x00\x00\x00\x00\x00\x00\xc8\x0d\x01\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x1a\x00\x00\x00\x00\x00\x00\x00\xd0\x0d\x01\x00\x00\x00\x00\x00\x1c\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\xf5\xfe\xff\x6f\x00\x00\x00\x00\x98\x02\x00\x00\x00\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x90\x03\x00\x00\x00\x00\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\xb8\x02\x00\x00\x00\x00\x00\x00\x0a\x00\x00\x00\x00\x00\x00\x00\x8d\x00\x00\x00\x00\x00\x00\x00\x0b\x00\x00\x00\x00\x00\x00\x00\x18\x00\x00\x00\x00\x00\x00\x00\x15\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\xe8\x0f\x01\x00\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x60\x00\x00\x00\x00\x00\x00\x00\x14\x00\x00\x00\x00\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x17\x00\x00\x00\x00\x00\x00\x00\x20\x05\x00\x00\x00\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x60\x04\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\xc0\x00\x00\x00\x00\x00\x00\x00\x09\x00\x00\x00\x00\x00\x00\x00\x18\x00\x00\x00\x00\x00\x00\x00\xfb\xff\xff\x6f\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\xfe\xff\xff\x6f\x00\x00\x00\x00\x30\x04\x00\x00\x00\x00\x00\x00\xff\xff\xff\x6f\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\xf0\xff\xff\x6f\x00\x00\x00\x00\x1e\x04\x00\x00\x00\x00\x00\x00\xf9\xff\xff\x6f\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".init_array", 0x10DC8, "\x10\x07\x00\x00\x00\x00\x00\x00"), -Section(".got", 0x10FB8, "\xd8\x0d\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x14\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".got.plt", 0x10FE8, "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xa0\x05\x00\x00\x00\x00\x00\x00\xa0\x05\x00\x00\x00\x00\x00\x00\xa0\x05\x00\x00\x00\x00\x00\x00\xa0\x05\x00\x00\x00\x00\x00\x00"), -Section(".data", 0x11020, "\x00\x00\x00\x00\x00\x00\x00\x00\x28\x10\x01\x00\x00\x00\x00\x00")]), -Memmap([Annotation(Region(0x0,0x83F), Attr("segment","02 0 2112")), -Annotation(Region(0x600,0x633), Attr("symbol","\"_start\"")), -Annotation(Region(0x0,0x102), Attr("section","\".shstrtab\"")), -Annotation(Region(0x0,0x240), Attr("section","\".strtab\"")), -Annotation(Region(0x0,0x46), Attr("section","\".comment\"")), -Annotation(Region(0x238,0x252), Attr("section","\".interp\"")), -Annotation(Region(0x254,0x277), Attr("section","\".note.gnu.build-id\"")), -Annotation(Region(0x278,0x297), Attr("section","\".note.ABI-tag\"")), -Annotation(Region(0x298,0x2B3), Attr("section","\".gnu.hash\"")), -Annotation(Region(0x2B8,0x38F), Attr("section","\".dynsym\"")), -Annotation(Region(0x390,0x41C), Attr("section","\".dynstr\"")), -Annotation(Region(0x41E,0x42F), Attr("section","\".gnu.version\"")), -Annotation(Region(0x430,0x45F), Attr("section","\".gnu.version_r\"")), -Annotation(Region(0x460,0x51F), Attr("section","\".rela.dyn\"")), -Annotation(Region(0x520,0x57F), Attr("section","\".rela.plt\"")), -Annotation(Region(0x580,0x597), Attr("section","\".init\"")), -Annotation(Region(0x5A0,0x5FF), Attr("section","\".plt\"")), -Annotation(Region(0x580,0x597), Attr("code-region","()")), -Annotation(Region(0x5A0,0x5FF), Attr("code-region","()")), -Annotation(Region(0x600,0x633), Attr("symbol-info","_start 0x600 52")), -Annotation(Region(0x634,0x647), Attr("symbol","\"call_weak_fn\"")), -Annotation(Region(0x634,0x647), Attr("symbol-info","call_weak_fn 0x634 20")), -Annotation(Region(0x600,0x72F), Attr("section","\".text\"")), -Annotation(Region(0x600,0x72F), Attr("code-region","()")), -Annotation(Region(0x714,0x72F), Attr("symbol","\"main\"")), -Annotation(Region(0x714,0x72F), Attr("symbol-info","main 0x714 28")), -Annotation(Region(0x730,0x743), Attr("section","\".fini\"")), -Annotation(Region(0x730,0x743), Attr("code-region","()")), -Annotation(Region(0x744,0x747), Attr("section","\".rodata\"")), -Annotation(Region(0x748,0x783), Attr("section","\".eh_frame_hdr\"")), -Annotation(Region(0x788,0x83F), Attr("section","\".eh_frame\"")), -Annotation(Region(0x10DC8,0x1102F), Attr("segment","03 0x10DC8 632")), -Annotation(Region(0x10DD0,0x10DD7), Attr("section","\".fini_array\"")), -Annotation(Region(0x10DD8,0x10FB7), Attr("section","\".dynamic\"")), -Annotation(Region(0x10DC8,0x10DCF), Attr("section","\".init_array\"")), -Annotation(Region(0x10FB8,0x10FE7), Attr("section","\".got\"")), -Annotation(Region(0x10FE8,0x1101F), Attr("section","\".got.plt\"")), -Annotation(Region(0x11020,0x1102F), Attr("section","\".data\""))]), -Program(Tid(1_444, "%000005a4"), Attrs([]), - Subs([Sub(Tid(1_394, "@__cxa_finalize"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x5D0"), -Attr("stub","()")]), "__cxa_finalize", Args([Arg(Tid(1_445, "%000005a5"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("__cxa_finalize_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(808, "@__cxa_finalize"), - Attrs([Attr("address","0x5D0")]), Phis([]), -Defs([Def(Tid(1_056, "%00000420"), Attrs([Attr("address","0x5D0"), -Attr("insn","adrp x16, #69632")]), Var("R16",Imm(64)), Int(69632,64)), -Def(Tid(1_063, "%00000427"), Attrs([Attr("address","0x5D4"), -Attr("insn","ldr x17, [x16, #0x8]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(1_069, "%0000042d"), Attrs([Attr("address","0x5D8"), -Attr("insn","add x16, x16, #0x8")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(8,64)))]), Jmps([Call(Tid(1_074, "%00000432"), - Attrs([Attr("address","0x5DC"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), -Sub(Tid(1_395, "@__do_global_dtors_aux"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x6C0")]), - "__do_global_dtors_aux", Args([Arg(Tid(1_446, "%000005a6"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("__do_global_dtors_aux_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(618, "@__do_global_dtors_aux"), - Attrs([Attr("address","0x6C0")]), Phis([]), Defs([Def(Tid(622, "%0000026e"), - Attrs([Attr("address","0x6C0"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("#3",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(18446744073709551584,64))), -Def(Tid(628, "%00000274"), Attrs([Attr("address","0x6C0"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("#3",Imm(64)),Var("R29",Imm(64)),LittleEndian(),64)), -Def(Tid(634, "%0000027a"), Attrs([Attr("address","0x6C0"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("#3",Imm(64)),Int(8,64)),Var("R30",Imm(64)),LittleEndian(),64)), -Def(Tid(638, "%0000027e"), Attrs([Attr("address","0x6C0"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("R31",Imm(64)), -Var("#3",Imm(64))), Def(Tid(644, "%00000284"), - Attrs([Attr("address","0x6C4"), Attr("insn","mov x29, sp")]), - Var("R29",Imm(64)), Var("R31",Imm(64))), Def(Tid(652, "%0000028c"), - Attrs([Attr("address","0x6C8"), Attr("insn","str x19, [sp, #0x10]")]), - Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(16,64)),Var("R19",Imm(64)),LittleEndian(),64)), -Def(Tid(657, "%00000291"), Attrs([Attr("address","0x6CC"), -Attr("insn","adrp x19, #69632")]), Var("R19",Imm(64)), Int(69632,64)), -Def(Tid(664, "%00000298"), Attrs([Attr("address","0x6D0"), -Attr("insn","ldrb w0, [x19, #0x30]")]), Var("R0",Imm(64)), -UNSIGNED(64,Load(Var("mem",Mem(64,8)),PLUS(Var("R19",Imm(64)),Int(48,64)),LittleEndian(),8)))]), -Jmps([Goto(Tid(671, "%0000029f"), Attrs([Attr("address","0x6D4"), -Attr("insn","cbnz w0, #0x28")]), - NEQ(Extract(31,0,Var("R0",Imm(64))),Int(0,32)), -Direct(Tid(669, "%0000029d"))), Goto(Tid(1_434, "%0000059a"), Attrs([]), - Int(1,1), Direct(Tid(753, "%000002f1")))])), Blk(Tid(753, "%000002f1"), - Attrs([Attr("address","0x6D8")]), Phis([]), Defs([Def(Tid(756, "%000002f4"), - Attrs([Attr("address","0x6D8"), Attr("insn","adrp x0, #65536")]), - Var("R0",Imm(64)), Int(65536,64)), Def(Tid(763, "%000002fb"), - Attrs([Attr("address","0x6DC"), Attr("insn","ldr x0, [x0, #0xfc8]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(4040,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(769, "%00000301"), Attrs([Attr("address","0x6E0"), -Attr("insn","cbz x0, #0x10")]), EQ(Var("R0",Imm(64)),Int(0,64)), -Direct(Tid(767, "%000002ff"))), Goto(Tid(1_435, "%0000059b"), Attrs([]), - Int(1,1), Direct(Tid(792, "%00000318")))])), Blk(Tid(792, "%00000318"), - Attrs([Attr("address","0x6E4")]), Phis([]), Defs([Def(Tid(795, "%0000031b"), - Attrs([Attr("address","0x6E4"), Attr("insn","adrp x0, #69632")]), - Var("R0",Imm(64)), Int(69632,64)), Def(Tid(802, "%00000322"), - Attrs([Attr("address","0x6E8"), Attr("insn","ldr x0, [x0, #0x28]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(40,64)),LittleEndian(),64)), -Def(Tid(807, "%00000327"), Attrs([Attr("address","0x6EC"), -Attr("insn","bl #-0x11c")]), Var("R30",Imm(64)), Int(1776,64))]), -Jmps([Call(Tid(810, "%0000032a"), Attrs([Attr("address","0x6EC"), -Attr("insn","bl #-0x11c")]), Int(1,1), -(Direct(Tid(1_394, "@__cxa_finalize")),Direct(Tid(767, "%000002ff"))))])), -Blk(Tid(767, "%000002ff"), Attrs([Attr("address","0x6F0")]), Phis([]), -Defs([Def(Tid(775, "%00000307"), Attrs([Attr("address","0x6F0"), -Attr("insn","bl #-0xa0")]), Var("R30",Imm(64)), Int(1780,64))]), -Jmps([Call(Tid(777, "%00000309"), Attrs([Attr("address","0x6F0"), -Attr("insn","bl #-0xa0")]), Int(1,1), -(Direct(Tid(1_408, "@deregister_tm_clones")),Direct(Tid(779, "%0000030b"))))])), -Blk(Tid(779, "%0000030b"), Attrs([Attr("address","0x6F4")]), Phis([]), -Defs([Def(Tid(782, "%0000030e"), Attrs([Attr("address","0x6F4"), -Attr("insn","mov w0, #0x1")]), Var("R0",Imm(64)), Int(1,64)), -Def(Tid(790, "%00000316"), Attrs([Attr("address","0x6F8"), -Attr("insn","strb w0, [x19, #0x30]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R19",Imm(64)),Int(48,64)),Extract(7,0,Var("R0",Imm(64))),LittleEndian(),8))]), -Jmps([Goto(Tid(1_436, "%0000059c"), Attrs([]), Int(1,1), -Direct(Tid(669, "%0000029d")))])), Blk(Tid(669, "%0000029d"), - Attrs([Attr("address","0x6FC")]), Phis([]), Defs([Def(Tid(679, "%000002a7"), - Attrs([Attr("address","0x6FC"), Attr("insn","ldr x19, [sp, #0x10]")]), - Var("R19",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(16,64)),LittleEndian(),64)), -Def(Tid(686, "%000002ae"), Attrs([Attr("address","0x700"), -Attr("insn","ldp x29, x30, [sp], #0x20")]), Var("R29",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(691, "%000002b3"), Attrs([Attr("address","0x700"), -Attr("insn","ldp x29, x30, [sp], #0x20")]), Var("R30",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(695, "%000002b7"), Attrs([Attr("address","0x700"), -Attr("insn","ldp x29, x30, [sp], #0x20")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(32,64)))]), Jmps([Call(Tid(700, "%000002bc"), - Attrs([Attr("address","0x704"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), Sub(Tid(1_399, "@__libc_start_main"), - Attrs([Attr("c.proto","signed (*)(signed (*)(signed , char** , char** );* main, signed , char** , \nvoid* auxv)"), -Attr("address","0x5C0"), Attr("stub","()")]), "__libc_start_main", - Args([Arg(Tid(1_447, "%000005a7"), - Attrs([Attr("c.layout","**[ : 64]"), -Attr("c.data","Top:u64 ptr ptr"), -Attr("c.type","signed (*)(signed , char** , char** );*")]), - Var("__libc_start_main_main",Imm(64)), Var("R0",Imm(64)), In()), -Arg(Tid(1_448, "%000005a8"), Attrs([Attr("c.layout","[signed : 32]"), -Attr("c.data","Top:u32"), Attr("c.type","signed")]), - Var("__libc_start_main_arg2",Imm(32)), LOW(32,Var("R1",Imm(64))), In()), -Arg(Tid(1_449, "%000005a9"), Attrs([Attr("c.layout","**[char : 8]"), -Attr("c.data","Top:u8 ptr ptr"), Attr("c.type","char**")]), - Var("__libc_start_main_arg3",Imm(64)), Var("R2",Imm(64)), Both()), -Arg(Tid(1_450, "%000005aa"), Attrs([Attr("c.layout","*[ : 8]"), -Attr("c.data","{} ptr"), Attr("c.type","void*")]), - Var("__libc_start_main_auxv",Imm(64)), Var("R3",Imm(64)), Both()), -Arg(Tid(1_451, "%000005ab"), Attrs([Attr("c.layout","[signed : 32]"), -Attr("c.data","Top:u32"), Attr("c.type","signed")]), - Var("__libc_start_main_result",Imm(32)), LOW(32,Var("R0",Imm(64))), -Out())]), Blks([Blk(Tid(451, "@__libc_start_main"), - Attrs([Attr("address","0x5C0")]), Phis([]), -Defs([Def(Tid(1_034, "%0000040a"), Attrs([Attr("address","0x5C0"), -Attr("insn","adrp x16, #69632")]), Var("R16",Imm(64)), Int(69632,64)), -Def(Tid(1_041, "%00000411"), Attrs([Attr("address","0x5C4"), -Attr("insn","ldr x17, [x16]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R16",Imm(64)),LittleEndian(),64)), -Def(Tid(1_047, "%00000417"), Attrs([Attr("address","0x5C8"), -Attr("insn","add x16, x16, #0x0")]), Var("R16",Imm(64)), -Var("R16",Imm(64)))]), Jmps([Call(Tid(1_052, "%0000041c"), - Attrs([Attr("address","0x5CC"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), Sub(Tid(1_400, "@_fini"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x730")]), - "_fini", Args([Arg(Tid(1_452, "%000005ac"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("_fini_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(31, "@_fini"), - Attrs([Attr("address","0x730")]), Phis([]), Defs([Def(Tid(37, "%00000025"), - Attrs([Attr("address","0x734"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("#0",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(18446744073709551600,64))), -Def(Tid(43, "%0000002b"), Attrs([Attr("address","0x734"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("#0",Imm(64)),Var("R29",Imm(64)),LittleEndian(),64)), -Def(Tid(49, "%00000031"), Attrs([Attr("address","0x734"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("#0",Imm(64)),Int(8,64)),Var("R30",Imm(64)),LittleEndian(),64)), -Def(Tid(53, "%00000035"), Attrs([Attr("address","0x734"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("R31",Imm(64)), -Var("#0",Imm(64))), Def(Tid(59, "%0000003b"), Attrs([Attr("address","0x738"), -Attr("insn","mov x29, sp")]), Var("R29",Imm(64)), Var("R31",Imm(64))), -Def(Tid(66, "%00000042"), Attrs([Attr("address","0x73C"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R29",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(71, "%00000047"), Attrs([Attr("address","0x73C"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R30",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(75, "%0000004b"), Attrs([Attr("address","0x73C"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(16,64)))]), Jmps([Call(Tid(80, "%00000050"), - Attrs([Attr("address","0x740"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), Sub(Tid(1_401, "@_init"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x580")]), - "_init", Args([Arg(Tid(1_453, "%000005ad"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("_init_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(1_229, "@_init"), - Attrs([Attr("address","0x580")]), Phis([]), -Defs([Def(Tid(1_235, "%000004d3"), Attrs([Attr("address","0x584"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("#5",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(18446744073709551600,64))), -Def(Tid(1_241, "%000004d9"), Attrs([Attr("address","0x584"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("#5",Imm(64)),Var("R29",Imm(64)),LittleEndian(),64)), -Def(Tid(1_247, "%000004df"), Attrs([Attr("address","0x584"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("#5",Imm(64)),Int(8,64)),Var("R30",Imm(64)),LittleEndian(),64)), -Def(Tid(1_251, "%000004e3"), Attrs([Attr("address","0x584"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("R31",Imm(64)), -Var("#5",Imm(64))), Def(Tid(1_257, "%000004e9"), - Attrs([Attr("address","0x588"), Attr("insn","mov x29, sp")]), - Var("R29",Imm(64)), Var("R31",Imm(64))), Def(Tid(1_262, "%000004ee"), - Attrs([Attr("address","0x58C"), Attr("insn","bl #0xa8")]), - Var("R30",Imm(64)), Int(1424,64))]), Jmps([Call(Tid(1_264, "%000004f0"), - Attrs([Attr("address","0x58C"), Attr("insn","bl #0xa8")]), Int(1,1), -(Direct(Tid(1_406, "@call_weak_fn")),Direct(Tid(1_266, "%000004f2"))))])), -Blk(Tid(1_266, "%000004f2"), Attrs([Attr("address","0x590")]), Phis([]), -Defs([Def(Tid(1_271, "%000004f7"), Attrs([Attr("address","0x590"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R29",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(1_276, "%000004fc"), Attrs([Attr("address","0x590"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R30",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(1_280, "%00000500"), Attrs([Attr("address","0x590"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(16,64)))]), Jmps([Call(Tid(1_285, "%00000505"), - Attrs([Attr("address","0x594"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), Sub(Tid(1_402, "@_start"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x600"), -Attr("stub","()"), Attr("entry-point","()")]), "_start", - Args([Arg(Tid(1_454, "%000005ae"), Attrs([Attr("c.layout","[signed : 32]"), -Attr("c.data","Top:u32"), Attr("c.type","signed")]), - Var("_start_result",Imm(32)), LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(388, "@_start"), Attrs([Attr("address","0x600")]), Phis([]), -Defs([Def(Tid(393, "%00000189"), Attrs([Attr("address","0x604"), -Attr("insn","mov x29, #0x0")]), Var("R29",Imm(64)), Int(0,64)), -Def(Tid(398, "%0000018e"), Attrs([Attr("address","0x608"), -Attr("insn","mov x30, #0x0")]), Var("R30",Imm(64)), Int(0,64)), -Def(Tid(404, "%00000194"), Attrs([Attr("address","0x60C"), -Attr("insn","mov x5, x0")]), Var("R5",Imm(64)), Var("R0",Imm(64))), -Def(Tid(411, "%0000019b"), Attrs([Attr("address","0x610"), -Attr("insn","ldr x1, [sp]")]), Var("R1",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(417, "%000001a1"), Attrs([Attr("address","0x614"), -Attr("insn","add x2, sp, #0x8")]), Var("R2",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(8,64))), Def(Tid(423, "%000001a7"), - Attrs([Attr("address","0x618"), Attr("insn","mov x6, sp")]), - Var("R6",Imm(64)), Var("R31",Imm(64))), Def(Tid(428, "%000001ac"), - Attrs([Attr("address","0x61C"), Attr("insn","adrp x0, #65536")]), - Var("R0",Imm(64)), Int(65536,64)), Def(Tid(435, "%000001b3"), - Attrs([Attr("address","0x620"), Attr("insn","ldr x0, [x0, #0xfd8]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(4056,64)),LittleEndian(),64)), -Def(Tid(440, "%000001b8"), Attrs([Attr("address","0x624"), -Attr("insn","mov x3, #0x0")]), Var("R3",Imm(64)), Int(0,64)), -Def(Tid(445, "%000001bd"), Attrs([Attr("address","0x628"), -Attr("insn","mov x4, #0x0")]), Var("R4",Imm(64)), Int(0,64)), -Def(Tid(450, "%000001c2"), Attrs([Attr("address","0x62C"), -Attr("insn","bl #-0x6c")]), Var("R30",Imm(64)), Int(1584,64))]), -Jmps([Call(Tid(453, "%000001c5"), Attrs([Attr("address","0x62C"), -Attr("insn","bl #-0x6c")]), Int(1,1), -(Direct(Tid(1_399, "@__libc_start_main")),Direct(Tid(455, "%000001c7"))))])), -Blk(Tid(455, "%000001c7"), Attrs([Attr("address","0x630")]), Phis([]), -Defs([Def(Tid(458, "%000001ca"), Attrs([Attr("address","0x630"), -Attr("insn","bl #-0x40")]), Var("R30",Imm(64)), Int(1588,64))]), -Jmps([Call(Tid(461, "%000001cd"), Attrs([Attr("address","0x630"), -Attr("insn","bl #-0x40")]), Int(1,1), -(Direct(Tid(1_405, "@abort")),Direct(Tid(1_437, "%0000059d"))))])), -Blk(Tid(1_437, "%0000059d"), Attrs([]), Phis([]), Defs([]), -Jmps([Call(Tid(1_438, "%0000059e"), Attrs([]), Int(1,1), -(Direct(Tid(1_406, "@call_weak_fn")),))]))])), Sub(Tid(1_405, "@abort"), - Attrs([Attr("noreturn","()"), Attr("c.proto","void (*)(void)"), -Attr("address","0x5F0"), Attr("stub","()")]), "abort", Args([]), -Blks([Blk(Tid(459, "@abort"), Attrs([Attr("address","0x5F0")]), Phis([]), -Defs([Def(Tid(1_100, "%0000044c"), Attrs([Attr("address","0x5F0"), -Attr("insn","adrp x16, #69632")]), Var("R16",Imm(64)), Int(69632,64)), -Def(Tid(1_107, "%00000453"), Attrs([Attr("address","0x5F4"), -Attr("insn","ldr x17, [x16, #0x18]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(24,64)),LittleEndian(),64)), -Def(Tid(1_113, "%00000459"), Attrs([Attr("address","0x5F8"), -Attr("insn","add x16, x16, #0x18")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(24,64)))]), Jmps([Call(Tid(1_118, "%0000045e"), - Attrs([Attr("address","0x5FC"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), Sub(Tid(1_406, "@call_weak_fn"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x634")]), - "call_weak_fn", Args([Arg(Tid(1_455, "%000005af"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("call_weak_fn_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(463, "@call_weak_fn"), - Attrs([Attr("address","0x634")]), Phis([]), Defs([Def(Tid(466, "%000001d2"), - Attrs([Attr("address","0x634"), Attr("insn","adrp x0, #65536")]), - Var("R0",Imm(64)), Int(65536,64)), Def(Tid(473, "%000001d9"), - Attrs([Attr("address","0x638"), Attr("insn","ldr x0, [x0, #0xfd0]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(4048,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(479, "%000001df"), Attrs([Attr("address","0x63C"), -Attr("insn","cbz x0, #0x8")]), EQ(Var("R0",Imm(64)),Int(0,64)), -Direct(Tid(477, "%000001dd"))), Goto(Tid(1_439, "%0000059f"), Attrs([]), - Int(1,1), Direct(Tid(872, "%00000368")))])), Blk(Tid(477, "%000001dd"), - Attrs([Attr("address","0x644")]), Phis([]), Defs([]), -Jmps([Call(Tid(485, "%000001e5"), Attrs([Attr("address","0x644"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))])), -Blk(Tid(872, "%00000368"), Attrs([Attr("address","0x640")]), Phis([]), -Defs([]), Jmps([Goto(Tid(875, "%0000036b"), Attrs([Attr("address","0x640"), -Attr("insn","b #-0x60")]), Int(1,1), Direct(Tid(873, "@__gmon_start__")))])), -Blk(Tid(873, "@__gmon_start__"), Attrs([Attr("address","0x5E0")]), Phis([]), -Defs([Def(Tid(1_078, "%00000436"), Attrs([Attr("address","0x5E0"), -Attr("insn","adrp x16, #69632")]), Var("R16",Imm(64)), Int(69632,64)), -Def(Tid(1_085, "%0000043d"), Attrs([Attr("address","0x5E4"), -Attr("insn","ldr x17, [x16, #0x10]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(16,64)),LittleEndian(),64)), -Def(Tid(1_091, "%00000443"), Attrs([Attr("address","0x5E8"), -Attr("insn","add x16, x16, #0x10")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(16,64)))]), Jmps([Call(Tid(1_096, "%00000448"), - Attrs([Attr("address","0x5EC"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), -Sub(Tid(1_408, "@deregister_tm_clones"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x650")]), - "deregister_tm_clones", Args([Arg(Tid(1_456, "%000005b0"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("deregister_tm_clones_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(491, "@deregister_tm_clones"), - Attrs([Attr("address","0x650")]), Phis([]), Defs([Def(Tid(494, "%000001ee"), - Attrs([Attr("address","0x650"), Attr("insn","adrp x0, #69632")]), - Var("R0",Imm(64)), Int(69632,64)), Def(Tid(500, "%000001f4"), - Attrs([Attr("address","0x654"), Attr("insn","add x0, x0, #0x30")]), - Var("R0",Imm(64)), PLUS(Var("R0",Imm(64)),Int(48,64))), -Def(Tid(505, "%000001f9"), Attrs([Attr("address","0x658"), -Attr("insn","adrp x1, #69632")]), Var("R1",Imm(64)), Int(69632,64)), -Def(Tid(511, "%000001ff"), Attrs([Attr("address","0x65C"), -Attr("insn","add x1, x1, #0x30")]), Var("R1",Imm(64)), -PLUS(Var("R1",Imm(64)),Int(48,64))), Def(Tid(517, "%00000205"), - Attrs([Attr("address","0x660"), Attr("insn","cmp x1, x0")]), - Var("#1",Imm(64)), NOT(Var("R0",Imm(64)))), Def(Tid(522, "%0000020a"), - Attrs([Attr("address","0x660"), Attr("insn","cmp x1, x0")]), - Var("#2",Imm(64)), PLUS(Var("R1",Imm(64)),NOT(Var("R0",Imm(64))))), -Def(Tid(528, "%00000210"), Attrs([Attr("address","0x660"), -Attr("insn","cmp x1, x0")]), Var("VF",Imm(1)), -NEQ(SIGNED(65,PLUS(Var("#2",Imm(64)),Int(1,64))),PLUS(PLUS(SIGNED(65,Var("R1",Imm(64))),SIGNED(65,Var("#1",Imm(64)))),Int(1,65)))), -Def(Tid(534, "%00000216"), Attrs([Attr("address","0x660"), -Attr("insn","cmp x1, x0")]), Var("CF",Imm(1)), -NEQ(UNSIGNED(65,PLUS(Var("#2",Imm(64)),Int(1,64))),PLUS(PLUS(UNSIGNED(65,Var("R1",Imm(64))),UNSIGNED(65,Var("#1",Imm(64)))),Int(1,65)))), -Def(Tid(538, "%0000021a"), Attrs([Attr("address","0x660"), -Attr("insn","cmp x1, x0")]), Var("ZF",Imm(1)), -EQ(PLUS(Var("#2",Imm(64)),Int(1,64)),Int(0,64))), Def(Tid(542, "%0000021e"), - Attrs([Attr("address","0x660"), Attr("insn","cmp x1, x0")]), - Var("NF",Imm(1)), Extract(63,63,PLUS(Var("#2",Imm(64)),Int(1,64))))]), -Jmps([Goto(Tid(548, "%00000224"), Attrs([Attr("address","0x664"), -Attr("insn","b.eq #0x18")]), EQ(Var("ZF",Imm(1)),Int(1,1)), -Direct(Tid(546, "%00000222"))), Goto(Tid(1_440, "%000005a0"), Attrs([]), - Int(1,1), Direct(Tid(842, "%0000034a")))])), Blk(Tid(842, "%0000034a"), - Attrs([Attr("address","0x668")]), Phis([]), Defs([Def(Tid(845, "%0000034d"), - Attrs([Attr("address","0x668"), Attr("insn","adrp x1, #65536")]), - Var("R1",Imm(64)), Int(65536,64)), Def(Tid(852, "%00000354"), - Attrs([Attr("address","0x66C"), Attr("insn","ldr x1, [x1, #0xfc0]")]), - Var("R1",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R1",Imm(64)),Int(4032,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(857, "%00000359"), Attrs([Attr("address","0x670"), -Attr("insn","cbz x1, #0xc")]), EQ(Var("R1",Imm(64)),Int(0,64)), -Direct(Tid(546, "%00000222"))), Goto(Tid(1_441, "%000005a1"), Attrs([]), - Int(1,1), Direct(Tid(861, "%0000035d")))])), Blk(Tid(546, "%00000222"), - Attrs([Attr("address","0x67C")]), Phis([]), Defs([]), -Jmps([Call(Tid(554, "%0000022a"), Attrs([Attr("address","0x67C"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))])), -Blk(Tid(861, "%0000035d"), Attrs([Attr("address","0x674")]), Phis([]), -Defs([Def(Tid(865, "%00000361"), Attrs([Attr("address","0x674"), -Attr("insn","mov x16, x1")]), Var("R16",Imm(64)), Var("R1",Imm(64)))]), -Jmps([Call(Tid(870, "%00000366"), Attrs([Attr("address","0x678"), -Attr("insn","br x16")]), Int(1,1), (Indirect(Var("R16",Imm(64))),))]))])), -Sub(Tid(1_411, "@frame_dummy"), Attrs([Attr("c.proto","signed (*)(void)"), -Attr("address","0x710")]), "frame_dummy", Args([Arg(Tid(1_457, "%000005b1"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("frame_dummy_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(706, "@frame_dummy"), - Attrs([Attr("address","0x710")]), Phis([]), Defs([]), -Jmps([Call(Tid(708, "%000002c4"), Attrs([Attr("address","0x710"), -Attr("insn","b #-0x90")]), Int(1,1), -(Direct(Tid(1_413, "@register_tm_clones")),))]))])), Sub(Tid(1_412, "@main"), - Attrs([Attr("c.proto","signed (*)(signed argc, const char** argv)"), -Attr("address","0x714")]), "main", Args([Arg(Tid(1_458, "%000005b2"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("main_argc",Imm(32)), -LOW(32,Var("R0",Imm(64))), In()), Arg(Tid(1_459, "%000005b3"), - Attrs([Attr("c.layout","**[char : 8]"), Attr("c.data","Top:u8 ptr ptr"), -Attr("c.type"," const char**")]), Var("main_argv",Imm(64)), -Var("R1",Imm(64)), Both()), Arg(Tid(1_460, "%000005b4"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("main_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(710, "@main"), - Attrs([Attr("address","0x714")]), Phis([]), Defs([Def(Tid(714, "%000002ca"), - Attrs([Attr("address","0x714"), Attr("insn","sub sp, sp, #0x10")]), - Var("R31",Imm(64)), PLUS(Var("R31",Imm(64)),Int(18446744073709551600,64))), -Def(Tid(721, "%000002d1"), Attrs([Attr("address","0x718"), -Attr("insn","str wzr, [sp, #0xc]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(12,64)),Int(0,32),LittleEndian(),32)), -Def(Tid(726, "%000002d6"), Attrs([Attr("address","0x71C"), -Attr("insn","adrp x8, #69632")]), Var("R8",Imm(64)), Int(69632,64)), -Def(Tid(733, "%000002dd"), Attrs([Attr("address","0x720"), -Attr("insn","str wzr, [x8, #0x34]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R8",Imm(64)),Int(52,64)),Int(0,32),LittleEndian(),32)), -Def(Tid(740, "%000002e4"), Attrs([Attr("address","0x724"), -Attr("insn","ldr w0, [x8, #0x34]")]), Var("R0",Imm(64)), -UNSIGNED(64,Load(Var("mem",Mem(64,8)),PLUS(Var("R8",Imm(64)),Int(52,64)),LittleEndian(),32))), -Def(Tid(746, "%000002ea"), Attrs([Attr("address","0x728"), -Attr("insn","add sp, sp, #0x10")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(16,64)))]), Jmps([Call(Tid(751, "%000002ef"), - Attrs([Attr("address","0x72C"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), -Sub(Tid(1_413, "@register_tm_clones"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x680")]), - "register_tm_clones", Args([Arg(Tid(1_461, "%000005b5"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("register_tm_clones_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(556, "@register_tm_clones"), Attrs([Attr("address","0x680")]), - Phis([]), Defs([Def(Tid(559, "%0000022f"), Attrs([Attr("address","0x680"), -Attr("insn","adrp x0, #69632")]), Var("R0",Imm(64)), Int(69632,64)), -Def(Tid(565, "%00000235"), Attrs([Attr("address","0x684"), -Attr("insn","add x0, x0, #0x30")]), Var("R0",Imm(64)), -PLUS(Var("R0",Imm(64)),Int(48,64))), Def(Tid(570, "%0000023a"), - Attrs([Attr("address","0x688"), Attr("insn","adrp x1, #69632")]), - Var("R1",Imm(64)), Int(69632,64)), Def(Tid(576, "%00000240"), - Attrs([Attr("address","0x68C"), Attr("insn","add x1, x1, #0x30")]), - Var("R1",Imm(64)), PLUS(Var("R1",Imm(64)),Int(48,64))), -Def(Tid(583, "%00000247"), Attrs([Attr("address","0x690"), -Attr("insn","sub x1, x1, x0")]), Var("R1",Imm(64)), -PLUS(PLUS(Var("R1",Imm(64)),NOT(Var("R0",Imm(64)))),Int(1,64))), -Def(Tid(589, "%0000024d"), Attrs([Attr("address","0x694"), -Attr("insn","lsr x2, x1, #63")]), Var("R2",Imm(64)), -Concat(Int(0,63),Extract(63,63,Var("R1",Imm(64))))), -Def(Tid(596, "%00000254"), Attrs([Attr("address","0x698"), -Attr("insn","add x1, x2, x1, asr #3")]), Var("R1",Imm(64)), -PLUS(Var("R2",Imm(64)),ARSHIFT(Var("R1",Imm(64)),Int(3,3)))), -Def(Tid(602, "%0000025a"), Attrs([Attr("address","0x69C"), -Attr("insn","asr x1, x1, #1")]), Var("R1",Imm(64)), -SIGNED(64,Extract(63,1,Var("R1",Imm(64)))))]), -Jmps([Goto(Tid(608, "%00000260"), Attrs([Attr("address","0x6A0"), -Attr("insn","cbz x1, #0x18")]), EQ(Var("R1",Imm(64)),Int(0,64)), -Direct(Tid(606, "%0000025e"))), Goto(Tid(1_442, "%000005a2"), Attrs([]), - Int(1,1), Direct(Tid(812, "%0000032c")))])), Blk(Tid(812, "%0000032c"), - Attrs([Attr("address","0x6A4")]), Phis([]), Defs([Def(Tid(815, "%0000032f"), - Attrs([Attr("address","0x6A4"), Attr("insn","adrp x2, #65536")]), - Var("R2",Imm(64)), Int(65536,64)), Def(Tid(822, "%00000336"), - Attrs([Attr("address","0x6A8"), Attr("insn","ldr x2, [x2, #0xfe0]")]), - Var("R2",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R2",Imm(64)),Int(4064,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(827, "%0000033b"), Attrs([Attr("address","0x6AC"), -Attr("insn","cbz x2, #0xc")]), EQ(Var("R2",Imm(64)),Int(0,64)), -Direct(Tid(606, "%0000025e"))), Goto(Tid(1_443, "%000005a3"), Attrs([]), - Int(1,1), Direct(Tid(831, "%0000033f")))])), Blk(Tid(606, "%0000025e"), - Attrs([Attr("address","0x6B8")]), Phis([]), Defs([]), -Jmps([Call(Tid(614, "%00000266"), Attrs([Attr("address","0x6B8"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))])), -Blk(Tid(831, "%0000033f"), Attrs([Attr("address","0x6B0")]), Phis([]), -Defs([Def(Tid(835, "%00000343"), Attrs([Attr("address","0x6B0"), -Attr("insn","mov x16, x2")]), Var("R16",Imm(64)), Var("R2",Imm(64)))]), -Jmps([Call(Tid(840, "%00000348"), Attrs([Attr("address","0x6B4"), -Attr("insn","br x16")]), Int(1,1), -(Indirect(Var("R16",Imm(64))),))]))]))]))) \ No newline at end of file diff --git a/src/test/correct/basic_arrays_read/clang/basic_arrays_read.bir b/src/test/correct/basic_arrays_read/clang/basic_arrays_read.bir deleted file mode 100644 index f32624fea..000000000 --- a/src/test/correct/basic_arrays_read/clang/basic_arrays_read.bir +++ /dev/null @@ -1,229 +0,0 @@ -000005a4: program -00000572: sub __cxa_finalize(__cxa_finalize_result) -000005a5: __cxa_finalize_result :: out u32 = low:32[R0] - -00000328: -00000420: R16 := 0x11000 -00000427: R17 := mem[R16 + 8, el]:u64 -0000042d: R16 := R16 + 8 -00000432: call R17 with noreturn - -00000573: sub __do_global_dtors_aux(__do_global_dtors_aux_result) -000005a6: __do_global_dtors_aux_result :: out u32 = low:32[R0] - -0000026a: -0000026e: #3 := R31 - 0x20 -00000274: mem := mem with [#3, el]:u64 <- R29 -0000027a: mem := mem with [#3 + 8, el]:u64 <- R30 -0000027e: R31 := #3 -00000284: R29 := R31 -0000028c: mem := mem with [R31 + 0x10, el]:u64 <- R19 -00000291: R19 := 0x11000 -00000298: R0 := pad:64[mem[R19 + 0x30]] -0000029f: when 31:0[R0] <> 0 goto %0000029d -0000059a: goto %000002f1 - -000002f1: -000002f4: R0 := 0x10000 -000002fb: R0 := mem[R0 + 0xFC8, el]:u64 -00000301: when R0 = 0 goto %000002ff -0000059b: goto %00000318 - -00000318: -0000031b: R0 := 0x11000 -00000322: R0 := mem[R0 + 0x28, el]:u64 -00000327: R30 := 0x6F0 -0000032a: call @__cxa_finalize with return %000002ff - -000002ff: -00000307: R30 := 0x6F4 -00000309: call @deregister_tm_clones with return %0000030b - -0000030b: -0000030e: R0 := 1 -00000316: mem := mem with [R19 + 0x30] <- 7:0[R0] -0000059c: goto %0000029d - -0000029d: -000002a7: R19 := mem[R31 + 0x10, el]:u64 -000002ae: R29 := mem[R31, el]:u64 -000002b3: R30 := mem[R31 + 8, el]:u64 -000002b7: R31 := R31 + 0x20 -000002bc: call R30 with noreturn - -00000577: sub __libc_start_main(__libc_start_main_main, __libc_start_main_arg2, __libc_start_main_arg3, __libc_start_main_auxv, __libc_start_main_result) -000005a7: __libc_start_main_main :: in u64 = R0 -000005a8: __libc_start_main_arg2 :: in u32 = low:32[R1] -000005a9: __libc_start_main_arg3 :: in out u64 = R2 -000005aa: __libc_start_main_auxv :: in out u64 = R3 -000005ab: __libc_start_main_result :: out u32 = low:32[R0] - -000001c3: -0000040a: R16 := 0x11000 -00000411: R17 := mem[R16, el]:u64 -00000417: R16 := R16 -0000041c: call R17 with noreturn - -00000578: sub _fini(_fini_result) -000005ac: _fini_result :: out u32 = low:32[R0] - -0000001f: -00000025: #0 := R31 - 0x10 -0000002b: mem := mem with [#0, el]:u64 <- R29 -00000031: mem := mem with [#0 + 8, el]:u64 <- R30 -00000035: R31 := #0 -0000003b: R29 := R31 -00000042: R29 := mem[R31, el]:u64 -00000047: R30 := mem[R31 + 8, el]:u64 -0000004b: R31 := R31 + 0x10 -00000050: call R30 with noreturn - -00000579: sub _init(_init_result) -000005ad: _init_result :: out u32 = low:32[R0] - -000004cd: -000004d3: #5 := R31 - 0x10 -000004d9: mem := mem with [#5, el]:u64 <- R29 -000004df: mem := mem with [#5 + 8, el]:u64 <- R30 -000004e3: R31 := #5 -000004e9: R29 := R31 -000004ee: R30 := 0x590 -000004f0: call @call_weak_fn with return %000004f2 - -000004f2: -000004f7: R29 := mem[R31, el]:u64 -000004fc: R30 := mem[R31 + 8, el]:u64 -00000500: R31 := R31 + 0x10 -00000505: call R30 with noreturn - -0000057a: sub _start(_start_result) -000005ae: _start_result :: out u32 = low:32[R0] - -00000184: -00000189: R29 := 0 -0000018e: R30 := 0 -00000194: R5 := R0 -0000019b: R1 := mem[R31, el]:u64 -000001a1: R2 := R31 + 8 -000001a7: R6 := R31 -000001ac: R0 := 0x10000 -000001b3: R0 := mem[R0 + 0xFD8, el]:u64 -000001b8: R3 := 0 -000001bd: R4 := 0 -000001c2: R30 := 0x630 -000001c5: call @__libc_start_main with return %000001c7 - -000001c7: -000001ca: R30 := 0x634 -000001cd: call @abort with return %0000059d - -0000059d: -0000059e: call @call_weak_fn with noreturn - -0000057d: sub abort() - - -000001cb: -0000044c: R16 := 0x11000 -00000453: R17 := mem[R16 + 0x18, el]:u64 -00000459: R16 := R16 + 0x18 -0000045e: call R17 with noreturn - -0000057e: sub call_weak_fn(call_weak_fn_result) -000005af: call_weak_fn_result :: out u32 = low:32[R0] - -000001cf: -000001d2: R0 := 0x10000 -000001d9: R0 := mem[R0 + 0xFD0, el]:u64 -000001df: when R0 = 0 goto %000001dd -0000059f: goto %00000368 - -000001dd: -000001e5: call R30 with noreturn - -00000368: -0000036b: goto @__gmon_start__ - -00000369: -00000436: R16 := 0x11000 -0000043d: R17 := mem[R16 + 0x10, el]:u64 -00000443: R16 := R16 + 0x10 -00000448: call R17 with noreturn - -00000580: sub deregister_tm_clones(deregister_tm_clones_result) -000005b0: deregister_tm_clones_result :: out u32 = low:32[R0] - -000001eb: -000001ee: R0 := 0x11000 -000001f4: R0 := R0 + 0x30 -000001f9: R1 := 0x11000 -000001ff: R1 := R1 + 0x30 -00000205: #1 := ~R0 -0000020a: #2 := R1 + ~R0 -00000210: VF := extend:65[#2 + 1] <> extend:65[R1] + extend:65[#1] + 1 -00000216: CF := pad:65[#2 + 1] <> pad:65[R1] + pad:65[#1] + 1 -0000021a: ZF := #2 + 1 = 0 -0000021e: NF := 63:63[#2 + 1] -00000224: when ZF goto %00000222 -000005a0: goto %0000034a - -0000034a: -0000034d: R1 := 0x10000 -00000354: R1 := mem[R1 + 0xFC0, el]:u64 -00000359: when R1 = 0 goto %00000222 -000005a1: goto %0000035d - -00000222: -0000022a: call R30 with noreturn - -0000035d: -00000361: R16 := R1 -00000366: call R16 with noreturn - -00000583: sub frame_dummy(frame_dummy_result) -000005b1: frame_dummy_result :: out u32 = low:32[R0] - -000002c2: -000002c4: call @register_tm_clones with noreturn - -00000584: sub main(main_argc, main_argv, main_result) -000005b2: main_argc :: in u32 = low:32[R0] -000005b3: main_argv :: in out u64 = R1 -000005b4: main_result :: out u32 = low:32[R0] - -000002c6: -000002ca: R31 := R31 - 0x10 -000002d1: mem := mem with [R31 + 0xC, el]:u32 <- 0 -000002d6: R8 := 0x11000 -000002dd: mem := mem with [R8 + 0x34, el]:u32 <- 0 -000002e4: R0 := pad:64[mem[R8 + 0x34, el]:u32] -000002ea: R31 := R31 + 0x10 -000002ef: call R30 with noreturn - -00000585: sub register_tm_clones(register_tm_clones_result) -000005b5: register_tm_clones_result :: out u32 = low:32[R0] - -0000022c: -0000022f: R0 := 0x11000 -00000235: R0 := R0 + 0x30 -0000023a: R1 := 0x11000 -00000240: R1 := R1 + 0x30 -00000247: R1 := R1 + ~R0 + 1 -0000024d: R2 := 0.63:63[R1] -00000254: R1 := R2 + (R1 ~>> 3) -0000025a: R1 := extend:64[63:1[R1]] -00000260: when R1 = 0 goto %0000025e -000005a2: goto %0000032c - -0000032c: -0000032f: R2 := 0x10000 -00000336: R2 := mem[R2 + 0xFE0, el]:u64 -0000033b: when R2 = 0 goto %0000025e -000005a3: goto %0000033f - -0000025e: -00000266: call R30 with noreturn - -0000033f: -00000343: R16 := R2 -00000348: call R16 with noreturn diff --git a/src/test/correct/basic_arrays_read/clang/basic_arrays_read.expected b/src/test/correct/basic_arrays_read/clang/basic_arrays_read.expected index b477637c5..c94155061 100644 --- a/src/test/correct/basic_arrays_read/clang/basic_arrays_read.expected +++ b/src/test/correct/basic_arrays_read/clang/basic_arrays_read.expected @@ -1,22 +1,18 @@ var {:extern} Gamma_R0: bool; -var {:extern} Gamma_R31: bool; var {:extern} Gamma_R8: bool; var {:extern} Gamma_mem: [bv64]bool; -var {:extern} Gamma_stack: [bv64]bool; var {:extern} R0: bv64; -var {:extern} R31: bv64; var {:extern} R8: bv64; var {:extern} mem: [bv64]bv8; -var {:extern} stack: [bv64]bv8; const {:extern} $arr_addr: bv64; -axiom ($arr_addr == 69684bv64); +axiom ($arr_addr == 131092bv64); function {:extern} L(mem$in: [bv64]bv8, index: bv64) returns (bool) { (if ((index == bvadd64($arr_addr, 4bv64)) || (index == bvadd64($arr_addr, 0bv64))) then false else false) } function {:extern} {:bvbuiltin "bvadd"} bvadd64(bv64, bv64) returns (bv64); -function {:extern} gamma_load32(gammaMap: [bv64]bool, index: bv64) returns (bool) { - (gammaMap[bvadd64(index, 3bv64)] && (gammaMap[bvadd64(index, 2bv64)] && (gammaMap[bvadd64(index, 1bv64)] && gammaMap[index]))) +function {:extern} gamma_load64(gammaMap: [bv64]bool, index: bv64) returns (bool) { + (gammaMap[bvadd64(index, 7bv64)] && (gammaMap[bvadd64(index, 6bv64)] && (gammaMap[bvadd64(index, 5bv64)] && (gammaMap[bvadd64(index, 4bv64)] && (gammaMap[bvadd64(index, 3bv64)] && (gammaMap[bvadd64(index, 2bv64)] && (gammaMap[bvadd64(index, 1bv64)] && gammaMap[index]))))))) } function {:extern} gamma_store32(gammaMap: [bv64]bool, index: bv64, value: bool) returns ([bv64]bool) { @@ -35,16 +31,16 @@ function {:extern} memory_store32_le(memory: [bv64]bv8, index: bv64, value: bv32 memory[index := value[8:0]][bvadd64(index, 1bv64) := value[16:8]][bvadd64(index, 2bv64) := value[24:16]][bvadd64(index, 3bv64) := value[32:24]] } -function {:extern} {:bvbuiltin "zero_extend 32"} zero_extend32_32(bv32) returns (bv64); procedure {:extern} rely(); modifies Gamma_mem, mem; ensures (forall i: bv64 :: (((mem[i] == old(mem[i])) ==> (Gamma_mem[i] == old(Gamma_mem[i]))))); ensures (old(memory_load32_le(mem, bvadd64($arr_addr, 0bv64))) == memory_load32_le(mem, bvadd64($arr_addr, 0bv64))); - free ensures (memory_load32_le(mem, 1860bv64) == 131073bv32); - free ensures (memory_load64_le(mem, 69064bv64) == 1808bv64); - free ensures (memory_load64_le(mem, 69072bv64) == 1728bv64); - free ensures (memory_load64_le(mem, 69592bv64) == 1812bv64); - free ensures (memory_load64_le(mem, 69672bv64) == 69672bv64); + free ensures (memory_load32_le(mem, 2300bv64) == 131073bv32); + free ensures (memory_load64_le(mem, 130432bv64) == 2256bv64); + free ensures (memory_load64_le(mem, 130440bv64) == 2176bv64); + free ensures (memory_load64_le(mem, 131048bv64) == 2260bv64); + free ensures (memory_load64_le(mem, 131056bv64) == 131092bv64); + free ensures (memory_load64_le(mem, 131080bv64) == 131080bv64); procedure {:extern} rely_transitive(); modifies Gamma_mem, mem; @@ -71,44 +67,41 @@ implementation {:extern} guarantee_reflexive() assert true; } -procedure main_1812(); - modifies Gamma_R0, Gamma_R31, Gamma_R8, Gamma_mem, Gamma_stack, R0, R31, R8, mem, stack; - free requires (memory_load64_le(mem, 69664bv64) == 0bv64); - free requires (memory_load64_le(mem, 69672bv64) == 69672bv64); - free requires (memory_load32_le(mem, 1860bv64) == 131073bv32); - free requires (memory_load64_le(mem, 69064bv64) == 1808bv64); - free requires (memory_load64_le(mem, 69072bv64) == 1728bv64); - free requires (memory_load64_le(mem, 69592bv64) == 1812bv64); - free requires (memory_load64_le(mem, 69672bv64) == 69672bv64); - free ensures (Gamma_R31 == old(Gamma_R31)); - free ensures (R31 == old(R31)); - free ensures (memory_load32_le(mem, 1860bv64) == 131073bv32); - free ensures (memory_load64_le(mem, 69064bv64) == 1808bv64); - free ensures (memory_load64_le(mem, 69072bv64) == 1728bv64); - free ensures (memory_load64_le(mem, 69592bv64) == 1812bv64); - free ensures (memory_load64_le(mem, 69672bv64) == 69672bv64); +procedure main(); + modifies Gamma_R0, Gamma_R8, Gamma_mem, R0, R8, mem; + free requires (memory_load64_le(mem, 131072bv64) == 0bv64); + free requires (memory_load64_le(mem, 131080bv64) == 131080bv64); + free requires (memory_load32_le(mem, 2300bv64) == 131073bv32); + free requires (memory_load64_le(mem, 130432bv64) == 2256bv64); + free requires (memory_load64_le(mem, 130440bv64) == 2176bv64); + free requires (memory_load64_le(mem, 131048bv64) == 2260bv64); + free requires (memory_load64_le(mem, 131056bv64) == 131092bv64); + free requires (memory_load64_le(mem, 131080bv64) == 131080bv64); + free ensures (memory_load32_le(mem, 2300bv64) == 131073bv32); + free ensures (memory_load64_le(mem, 130432bv64) == 2256bv64); + free ensures (memory_load64_le(mem, 130440bv64) == 2176bv64); + free ensures (memory_load64_le(mem, 131048bv64) == 2260bv64); + free ensures (memory_load64_le(mem, 131056bv64) == 131092bv64); + free ensures (memory_load64_le(mem, 131080bv64) == 131080bv64); -implementation main_1812() +implementation main() { - var Gamma_load18: bool; - var load18: bv32; + var $load$18: bv64; + var Gamma_$load$18: bool; lmain: assume {:captureState "lmain"} true; - R31, Gamma_R31 := bvadd64(R31, 18446744073709551600bv64), Gamma_R31; - stack, Gamma_stack := memory_store32_le(stack, bvadd64(R31, 12bv64), 0bv32), gamma_store32(Gamma_stack, bvadd64(R31, 12bv64), true); - assume {:captureState "%000002d1"} true; - R8, Gamma_R8 := 69632bv64, true; + R8, Gamma_R8 := 126976bv64, true; + R0, Gamma_R0 := 0bv64, true; call rely(); - assert (L(mem, bvadd64(R8, 52bv64)) ==> true); - mem, Gamma_mem := memory_store32_le(mem, bvadd64(R8, 52bv64), 0bv32), gamma_store32(Gamma_mem, bvadd64(R8, 52bv64), true); - assume {:captureState "%000002dd"} true; + $load$18, Gamma_$load$18 := memory_load64_le(mem, bvadd64(R8, 4080bv64)), (gamma_load64(Gamma_mem, bvadd64(R8, 4080bv64)) || L(mem, bvadd64(R8, 4080bv64))); + R8, Gamma_R8 := $load$18, Gamma_$load$18; call rely(); - load18, Gamma_load18 := memory_load32_le(mem, bvadd64(R8, 52bv64)), (gamma_load32(Gamma_mem, bvadd64(R8, 52bv64)) || L(mem, bvadd64(R8, 52bv64))); - R0, Gamma_R0 := zero_extend32_32(load18), Gamma_load18; - R31, Gamma_R31 := bvadd64(R31, 16bv64), Gamma_R31; - goto main_1812_basil_return; - main_1812_basil_return: - assume {:captureState "main_1812_basil_return"} true; + assert (L(mem, R8) ==> true); + mem, Gamma_mem := memory_store32_le(mem, R8, 0bv32), gamma_store32(Gamma_mem, R8, true); + assume {:captureState "%00000288"} true; + goto main_basil_return; + main_basil_return: + assume {:captureState "main_basil_return"} true; return; } diff --git a/src/test/correct/basic_arrays_read/clang/basic_arrays_read.gts b/src/test/correct/basic_arrays_read/clang/basic_arrays_read.gts deleted file mode 100644 index ffd85d82f..000000000 Binary files a/src/test/correct/basic_arrays_read/clang/basic_arrays_read.gts and /dev/null differ diff --git a/src/test/correct/basic_arrays_read/clang/basic_arrays_read.md5sum b/src/test/correct/basic_arrays_read/clang/basic_arrays_read.md5sum new file mode 100644 index 000000000..bf8992cdc --- /dev/null +++ b/src/test/correct/basic_arrays_read/clang/basic_arrays_read.md5sum @@ -0,0 +1,5 @@ +fc043a071fea8e3aa2ebe611110ed859 correct/basic_arrays_read/clang/a.out +0b01d1560cf9b869c66dcfee035a9c38 correct/basic_arrays_read/clang/basic_arrays_read.adt +c4dfbdac4f0cb31d7dbf1268ad6ef0fe correct/basic_arrays_read/clang/basic_arrays_read.bir +55f102b2fa11cfd4dfa4febaaaae27b6 correct/basic_arrays_read/clang/basic_arrays_read.relf +136b47bc9ca25a0b88c85087a7ec5636 correct/basic_arrays_read/clang/basic_arrays_read.gts diff --git a/src/test/correct/basic_arrays_read/clang/basic_arrays_read.relf b/src/test/correct/basic_arrays_read/clang/basic_arrays_read.relf deleted file mode 100644 index 579860a75..000000000 --- a/src/test/correct/basic_arrays_read/clang/basic_arrays_read.relf +++ /dev/null @@ -1,123 +0,0 @@ - -Relocation section '.rela.dyn' at offset 0x460 contains 8 entries: - Offset Info Type Symbol's Value Symbol's Name + Addend -0000000000010dc8 0000000000000403 R_AARCH64_RELATIVE 710 -0000000000010dd0 0000000000000403 R_AARCH64_RELATIVE 6c0 -0000000000010fd8 0000000000000403 R_AARCH64_RELATIVE 714 -0000000000011028 0000000000000403 R_AARCH64_RELATIVE 11028 -0000000000010fc0 0000000400000401 R_AARCH64_GLOB_DAT 0000000000000000 _ITM_deregisterTMCloneTable + 0 -0000000000010fc8 0000000500000401 R_AARCH64_GLOB_DAT 0000000000000000 __cxa_finalize@GLIBC_2.17 + 0 -0000000000010fd0 0000000600000401 R_AARCH64_GLOB_DAT 0000000000000000 __gmon_start__ + 0 -0000000000010fe0 0000000800000401 R_AARCH64_GLOB_DAT 0000000000000000 _ITM_registerTMCloneTable + 0 - -Relocation section '.rela.plt' at offset 0x520 contains 4 entries: - Offset Info Type Symbol's Value Symbol's Name + Addend -0000000000011000 0000000300000402 R_AARCH64_JUMP_SLOT 0000000000000000 __libc_start_main@GLIBC_2.34 + 0 -0000000000011008 0000000500000402 R_AARCH64_JUMP_SLOT 0000000000000000 __cxa_finalize@GLIBC_2.17 + 0 -0000000000011010 0000000600000402 R_AARCH64_JUMP_SLOT 0000000000000000 __gmon_start__ + 0 -0000000000011018 0000000700000402 R_AARCH64_JUMP_SLOT 0000000000000000 abort@GLIBC_2.17 + 0 - -Symbol table '.dynsym' contains 9 entries: - Num: Value Size Type Bind Vis Ndx Name - 0: 0000000000000000 0 NOTYPE LOCAL DEFAULT UND - 1: 0000000000000580 0 SECTION LOCAL DEFAULT 11 .init - 2: 0000000000011020 0 SECTION LOCAL DEFAULT 23 .data - 3: 0000000000000000 0 FUNC GLOBAL DEFAULT UND __libc_start_main@GLIBC_2.34 (2) - 4: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_deregisterTMCloneTable - 5: 0000000000000000 0 FUNC WEAK DEFAULT UND __cxa_finalize@GLIBC_2.17 (3) - 6: 0000000000000000 0 NOTYPE WEAK DEFAULT UND __gmon_start__ - 7: 0000000000000000 0 FUNC GLOBAL DEFAULT UND abort@GLIBC_2.17 (3) - 8: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_registerTMCloneTable - -Symbol table '.symtab' contains 90 entries: - Num: Value Size Type Bind Vis Ndx Name - 0: 0000000000000000 0 NOTYPE LOCAL DEFAULT UND - 1: 0000000000000238 0 SECTION LOCAL DEFAULT 1 .interp - 2: 0000000000000254 0 SECTION LOCAL DEFAULT 2 .note.gnu.build-id - 3: 0000000000000278 0 SECTION LOCAL DEFAULT 3 .note.ABI-tag - 4: 0000000000000298 0 SECTION LOCAL DEFAULT 4 .gnu.hash - 5: 00000000000002b8 0 SECTION LOCAL DEFAULT 5 .dynsym - 6: 0000000000000390 0 SECTION LOCAL DEFAULT 6 .dynstr - 7: 000000000000041e 0 SECTION LOCAL DEFAULT 7 .gnu.version - 8: 0000000000000430 0 SECTION LOCAL DEFAULT 8 .gnu.version_r - 9: 0000000000000460 0 SECTION LOCAL DEFAULT 9 .rela.dyn - 10: 0000000000000520 0 SECTION LOCAL DEFAULT 10 .rela.plt - 11: 0000000000000580 0 SECTION LOCAL DEFAULT 11 .init - 12: 00000000000005a0 0 SECTION LOCAL DEFAULT 12 .plt - 13: 0000000000000600 0 SECTION LOCAL DEFAULT 13 .text - 14: 0000000000000730 0 SECTION LOCAL DEFAULT 14 .fini - 15: 0000000000000744 0 SECTION LOCAL DEFAULT 15 .rodata - 16: 0000000000000748 0 SECTION LOCAL DEFAULT 16 .eh_frame_hdr - 17: 0000000000000788 0 SECTION LOCAL DEFAULT 17 .eh_frame - 18: 0000000000010dc8 0 SECTION LOCAL DEFAULT 18 .init_array - 19: 0000000000010dd0 0 SECTION LOCAL DEFAULT 19 .fini_array - 20: 0000000000010dd8 0 SECTION LOCAL DEFAULT 20 .dynamic - 21: 0000000000010fb8 0 SECTION LOCAL DEFAULT 21 .got - 22: 0000000000010fe8 0 SECTION LOCAL DEFAULT 22 .got.plt - 23: 0000000000011020 0 SECTION LOCAL DEFAULT 23 .data - 24: 0000000000011030 0 SECTION LOCAL DEFAULT 24 .bss - 25: 0000000000000000 0 SECTION LOCAL DEFAULT 25 .comment - 26: 0000000000000000 0 FILE LOCAL DEFAULT ABS Scrt1.o - 27: 0000000000000278 0 NOTYPE LOCAL DEFAULT 3 $d - 28: 0000000000000278 32 OBJECT LOCAL DEFAULT 3 __abi_tag - 29: 0000000000000600 0 NOTYPE LOCAL DEFAULT 13 $x - 30: 000000000000079c 0 NOTYPE LOCAL DEFAULT 17 $d - 31: 0000000000000744 0 NOTYPE LOCAL DEFAULT 15 $d - 32: 0000000000000000 0 FILE LOCAL DEFAULT ABS crti.o - 33: 0000000000000634 0 NOTYPE LOCAL DEFAULT 13 $x - 34: 0000000000000634 20 FUNC LOCAL DEFAULT 13 call_weak_fn - 35: 0000000000000580 0 NOTYPE LOCAL DEFAULT 11 $x - 36: 0000000000000730 0 NOTYPE LOCAL DEFAULT 14 $x - 37: 0000000000000000 0 FILE LOCAL DEFAULT ABS crtn.o - 38: 0000000000000590 0 NOTYPE LOCAL DEFAULT 11 $x - 39: 000000000000073c 0 NOTYPE LOCAL DEFAULT 14 $x - 40: 0000000000000000 0 FILE LOCAL DEFAULT ABS crtstuff.c - 41: 0000000000000650 0 NOTYPE LOCAL DEFAULT 13 $x - 42: 0000000000000650 0 FUNC LOCAL DEFAULT 13 deregister_tm_clones - 43: 0000000000000680 0 FUNC LOCAL DEFAULT 13 register_tm_clones - 44: 0000000000011028 0 NOTYPE LOCAL DEFAULT 23 $d - 45: 00000000000006c0 0 FUNC LOCAL DEFAULT 13 __do_global_dtors_aux - 46: 0000000000011030 1 OBJECT LOCAL DEFAULT 24 completed.0 - 47: 0000000000010dd0 0 NOTYPE LOCAL DEFAULT 19 $d - 48: 0000000000010dd0 0 OBJECT LOCAL DEFAULT 19 __do_global_dtors_aux_fini_array_entry - 49: 0000000000000710 0 FUNC LOCAL DEFAULT 13 frame_dummy - 50: 0000000000010dc8 0 NOTYPE LOCAL DEFAULT 18 $d - 51: 0000000000010dc8 0 OBJECT LOCAL DEFAULT 18 __frame_dummy_init_array_entry - 52: 00000000000007b0 0 NOTYPE LOCAL DEFAULT 17 $d - 53: 0000000000011030 0 NOTYPE LOCAL DEFAULT 24 $d - 54: 0000000000000000 0 FILE LOCAL DEFAULT ABS basic_arrays_read.c - 55: 0000000000000714 0 NOTYPE LOCAL DEFAULT 13 $x.0 - 56: 0000000000011034 0 NOTYPE LOCAL DEFAULT 24 $d.1 - 57: 000000000000002a 0 NOTYPE LOCAL DEFAULT 25 $d.2 - 58: 0000000000000810 0 NOTYPE LOCAL DEFAULT 17 $d.3 - 59: 0000000000000000 0 FILE LOCAL DEFAULT ABS crtstuff.c - 60: 000000000000083c 0 NOTYPE LOCAL DEFAULT 17 $d - 61: 000000000000083c 0 OBJECT LOCAL DEFAULT 17 __FRAME_END__ - 62: 0000000000000000 0 FILE LOCAL DEFAULT ABS - 63: 0000000000010dd8 0 OBJECT LOCAL DEFAULT ABS _DYNAMIC - 64: 0000000000000748 0 NOTYPE LOCAL DEFAULT 16 __GNU_EH_FRAME_HDR - 65: 0000000000010fb8 0 OBJECT LOCAL DEFAULT ABS _GLOBAL_OFFSET_TABLE_ - 66: 00000000000005a0 0 NOTYPE LOCAL DEFAULT 12 $x - 67: 0000000000000000 0 FUNC GLOBAL DEFAULT UND __libc_start_main@GLIBC_2.34 - 68: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_deregisterTMCloneTable - 69: 0000000000011020 0 NOTYPE WEAK DEFAULT 23 data_start - 70: 0000000000011030 0 NOTYPE GLOBAL DEFAULT 24 __bss_start__ - 71: 0000000000000000 0 FUNC WEAK DEFAULT UND __cxa_finalize@GLIBC_2.17 - 72: 0000000000011040 0 NOTYPE GLOBAL DEFAULT 24 _bss_end__ - 73: 0000000000011030 0 NOTYPE GLOBAL DEFAULT 23 _edata - 74: 0000000000000730 0 FUNC GLOBAL HIDDEN 14 _fini - 75: 0000000000011040 0 NOTYPE GLOBAL DEFAULT 24 __bss_end__ - 76: 0000000000011020 0 NOTYPE GLOBAL DEFAULT 23 __data_start - 77: 0000000000000000 0 NOTYPE WEAK DEFAULT UND __gmon_start__ - 78: 0000000000011028 0 OBJECT GLOBAL HIDDEN 23 __dso_handle - 79: 0000000000000000 0 FUNC GLOBAL DEFAULT UND abort@GLIBC_2.17 - 80: 0000000000000744 4 OBJECT GLOBAL DEFAULT 15 _IO_stdin_used - 81: 0000000000011040 0 NOTYPE GLOBAL DEFAULT 24 _end - 82: 0000000000000600 52 FUNC GLOBAL DEFAULT 13 _start - 83: 0000000000011040 0 NOTYPE GLOBAL DEFAULT 24 __end__ - 84: 0000000000011030 0 NOTYPE GLOBAL DEFAULT 24 __bss_start - 85: 0000000000000714 28 FUNC GLOBAL DEFAULT 13 main - 86: 0000000000011034 8 OBJECT GLOBAL DEFAULT 24 arr - 87: 0000000000011030 0 OBJECT GLOBAL HIDDEN 23 __TMC_END__ - 88: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_registerTMCloneTable - 89: 0000000000000580 0 FUNC GLOBAL HIDDEN 11 _init diff --git a/src/test/correct/basic_arrays_read/clang/basic_arrays_read_gtirb.expected b/src/test/correct/basic_arrays_read/clang/basic_arrays_read_gtirb.expected index 1493e328f..8f1fcb36b 100644 --- a/src/test/correct/basic_arrays_read/clang/basic_arrays_read_gtirb.expected +++ b/src/test/correct/basic_arrays_read/clang/basic_arrays_read_gtirb.expected @@ -1,22 +1,18 @@ var {:extern} Gamma_R0: bool; -var {:extern} Gamma_R31: bool; var {:extern} Gamma_R8: bool; var {:extern} Gamma_mem: [bv64]bool; -var {:extern} Gamma_stack: [bv64]bool; var {:extern} R0: bv64; -var {:extern} R31: bv64; var {:extern} R8: bv64; var {:extern} mem: [bv64]bv8; -var {:extern} stack: [bv64]bv8; const {:extern} $arr_addr: bv64; -axiom ($arr_addr == 69684bv64); +axiom ($arr_addr == 131092bv64); function {:extern} L(mem$in: [bv64]bv8, index: bv64) returns (bool) { (if ((index == bvadd64($arr_addr, 4bv64)) || (index == bvadd64($arr_addr, 0bv64))) then false else false) } function {:extern} {:bvbuiltin "bvadd"} bvadd64(bv64, bv64) returns (bv64); -function {:extern} gamma_load32(gammaMap: [bv64]bool, index: bv64) returns (bool) { - (gammaMap[bvadd64(index, 3bv64)] && (gammaMap[bvadd64(index, 2bv64)] && (gammaMap[bvadd64(index, 1bv64)] && gammaMap[index]))) +function {:extern} gamma_load64(gammaMap: [bv64]bool, index: bv64) returns (bool) { + (gammaMap[bvadd64(index, 7bv64)] && (gammaMap[bvadd64(index, 6bv64)] && (gammaMap[bvadd64(index, 5bv64)] && (gammaMap[bvadd64(index, 4bv64)] && (gammaMap[bvadd64(index, 3bv64)] && (gammaMap[bvadd64(index, 2bv64)] && (gammaMap[bvadd64(index, 1bv64)] && gammaMap[index]))))))) } function {:extern} gamma_store32(gammaMap: [bv64]bool, index: bv64, value: bool) returns ([bv64]bool) { @@ -35,16 +31,16 @@ function {:extern} memory_store32_le(memory: [bv64]bv8, index: bv64, value: bv32 memory[index := value[8:0]][bvadd64(index, 1bv64) := value[16:8]][bvadd64(index, 2bv64) := value[24:16]][bvadd64(index, 3bv64) := value[32:24]] } -function {:extern} {:bvbuiltin "zero_extend 32"} zero_extend32_32(bv32) returns (bv64); procedure {:extern} rely(); modifies Gamma_mem, mem; ensures (forall i: bv64 :: (((mem[i] == old(mem[i])) ==> (Gamma_mem[i] == old(Gamma_mem[i]))))); ensures (old(memory_load32_le(mem, bvadd64($arr_addr, 0bv64))) == memory_load32_le(mem, bvadd64($arr_addr, 0bv64))); - free ensures (memory_load32_le(mem, 1860bv64) == 131073bv32); - free ensures (memory_load64_le(mem, 69064bv64) == 1808bv64); - free ensures (memory_load64_le(mem, 69072bv64) == 1728bv64); - free ensures (memory_load64_le(mem, 69592bv64) == 1812bv64); - free ensures (memory_load64_le(mem, 69672bv64) == 69672bv64); + free ensures (memory_load32_le(mem, 2300bv64) == 131073bv32); + free ensures (memory_load64_le(mem, 130432bv64) == 2256bv64); + free ensures (memory_load64_le(mem, 130440bv64) == 2176bv64); + free ensures (memory_load64_le(mem, 131048bv64) == 2260bv64); + free ensures (memory_load64_le(mem, 131056bv64) == 131092bv64); + free ensures (memory_load64_le(mem, 131080bv64) == 131080bv64); procedure {:extern} rely_transitive(); modifies Gamma_mem, mem; @@ -71,44 +67,41 @@ implementation {:extern} guarantee_reflexive() assert true; } -procedure main_1812(); - modifies Gamma_R0, Gamma_R31, Gamma_R8, Gamma_mem, Gamma_stack, R0, R31, R8, mem, stack; - free requires (memory_load64_le(mem, 69664bv64) == 0bv64); - free requires (memory_load64_le(mem, 69672bv64) == 69672bv64); - free requires (memory_load32_le(mem, 1860bv64) == 131073bv32); - free requires (memory_load64_le(mem, 69064bv64) == 1808bv64); - free requires (memory_load64_le(mem, 69072bv64) == 1728bv64); - free requires (memory_load64_le(mem, 69592bv64) == 1812bv64); - free requires (memory_load64_le(mem, 69672bv64) == 69672bv64); - free ensures (Gamma_R31 == old(Gamma_R31)); - free ensures (R31 == old(R31)); - free ensures (memory_load32_le(mem, 1860bv64) == 131073bv32); - free ensures (memory_load64_le(mem, 69064bv64) == 1808bv64); - free ensures (memory_load64_le(mem, 69072bv64) == 1728bv64); - free ensures (memory_load64_le(mem, 69592bv64) == 1812bv64); - free ensures (memory_load64_le(mem, 69672bv64) == 69672bv64); +procedure main(); + modifies Gamma_R0, Gamma_R8, Gamma_mem, R0, R8, mem; + free requires (memory_load64_le(mem, 131072bv64) == 0bv64); + free requires (memory_load64_le(mem, 131080bv64) == 131080bv64); + free requires (memory_load32_le(mem, 2300bv64) == 131073bv32); + free requires (memory_load64_le(mem, 130432bv64) == 2256bv64); + free requires (memory_load64_le(mem, 130440bv64) == 2176bv64); + free requires (memory_load64_le(mem, 131048bv64) == 2260bv64); + free requires (memory_load64_le(mem, 131056bv64) == 131092bv64); + free requires (memory_load64_le(mem, 131080bv64) == 131080bv64); + free ensures (memory_load32_le(mem, 2300bv64) == 131073bv32); + free ensures (memory_load64_le(mem, 130432bv64) == 2256bv64); + free ensures (memory_load64_le(mem, 130440bv64) == 2176bv64); + free ensures (memory_load64_le(mem, 131048bv64) == 2260bv64); + free ensures (memory_load64_le(mem, 131056bv64) == 131092bv64); + free ensures (memory_load64_le(mem, 131080bv64) == 131080bv64); -implementation main_1812() +implementation main() { - var Gamma_load8: bool; - var load8: bv32; - main_1812__0__nH8DWmocTJOsal3tXpRbMg: - assume {:captureState "main_1812__0__nH8DWmocTJOsal3tXpRbMg"} true; - R31, Gamma_R31 := bvadd64(R31, 18446744073709551600bv64), Gamma_R31; - stack, Gamma_stack := memory_store32_le(stack, bvadd64(R31, 12bv64), 0bv32), gamma_store32(Gamma_stack, bvadd64(R31, 12bv64), true); - assume {:captureState "1816_0"} true; - R8, Gamma_R8 := 69632bv64, true; + var $load11: bv64; + var Gamma_$load11: bool; + $main$__0__$oqiqdATZTc6MDOYJqL9Aew: + assume {:captureState "$main$__0__$oqiqdATZTc6MDOYJqL9Aew"} true; + R8, Gamma_R8 := 126976bv64, true; + R0, Gamma_R0 := 0bv64, true; call rely(); - assert (L(mem, bvadd64(R8, 52bv64)) ==> true); - mem, Gamma_mem := memory_store32_le(mem, bvadd64(R8, 52bv64), 0bv32), gamma_store32(Gamma_mem, bvadd64(R8, 52bv64), true); - assume {:captureState "1824_0"} true; + $load11, Gamma_$load11 := memory_load64_le(mem, bvadd64(R8, 4080bv64)), (gamma_load64(Gamma_mem, bvadd64(R8, 4080bv64)) || L(mem, bvadd64(R8, 4080bv64))); + R8, Gamma_R8 := $load11, Gamma_$load11; call rely(); - load8, Gamma_load8 := memory_load32_le(mem, bvadd64(R8, 52bv64)), (gamma_load32(Gamma_mem, bvadd64(R8, 52bv64)) || L(mem, bvadd64(R8, 52bv64))); - R0, Gamma_R0 := zero_extend32_32(load8), Gamma_load8; - R31, Gamma_R31 := bvadd64(R31, 16bv64), Gamma_R31; - goto main_1812_basil_return; - main_1812_basil_return: - assume {:captureState "main_1812_basil_return"} true; + assert (L(mem, R8) ==> true); + mem, Gamma_mem := memory_store32_le(mem, R8, 0bv32), gamma_store32(Gamma_mem, R8, true); + assume {:captureState "2272$0"} true; + goto main_basil_return; + main_basil_return: + assume {:captureState "main_basil_return"} true; return; } diff --git a/src/test/correct/basic_arrays_read/clang_pic/basic_arrays_read.adt b/src/test/correct/basic_arrays_read/clang_pic/basic_arrays_read.adt deleted file mode 100644 index 8fd63b8d5..000000000 --- a/src/test/correct/basic_arrays_read/clang_pic/basic_arrays_read.adt +++ /dev/null @@ -1,504 +0,0 @@ -Project(Attrs([Attr("filename","\"clang_pic/basic_arrays_read.out\""), -Attr("image-specification","(declare abi (name str))\n(declare arch (name str))\n(declare base-address (addr int))\n(declare bias (off int))\n(declare bits (size int))\n(declare code-region (addr int) (size int) (off int))\n(declare code-start (addr int))\n(declare entry-point (addr int))\n(declare external-reference (addr int) (name str))\n(declare format (name str))\n(declare is-executable (flag bool))\n(declare is-little-endian (flag bool))\n(declare llvm:base-address (addr int))\n(declare llvm:code-entry (name str) (off int) (size int))\n(declare llvm:coff-import-library (name str))\n(declare llvm:coff-virtual-section-header (name str) (addr int) (size int))\n(declare llvm:elf-program-header (name str) (off int) (size int))\n(declare llvm:elf-program-header-flags (name str) (ld bool) (r bool) \n (w bool) (x bool))\n(declare llvm:elf-virtual-program-header (name str) (addr int) (size int))\n(declare llvm:entry-point (addr int))\n(declare llvm:macho-symbol (name str) (value int))\n(declare llvm:name-reference (at int) (name str))\n(declare llvm:relocation (at int) (addr int))\n(declare llvm:section-entry (name str) (addr int) (size int) (off int))\n(declare llvm:section-flags (name str) (r bool) (w bool) (x bool))\n(declare llvm:segment-command (name str) (off int) (size int))\n(declare llvm:segment-command-flags (name str) (r bool) (w bool) (x bool))\n(declare llvm:symbol-entry (name str) (addr int) (size int) (off int)\n (value int))\n(declare llvm:virtual-segment-command (name str) (addr int) (size int))\n(declare mapped (addr int) (size int) (off int))\n(declare named-region (addr int) (size int) (name str))\n(declare named-symbol (addr int) (name str))\n(declare require (name str))\n(declare section (addr int) (size int))\n(declare segment (addr int) (size int) (r bool) (w bool) (x bool))\n(declare subarch (name str))\n(declare symbol-chunk (addr int) (size int) (root int))\n(declare symbol-value (addr int) (value int))\n(declare system (name str))\n(declare vendor (name str))\n\n(abi unknown)\n(arch aarch64)\n(base-address 0)\n(bias 0)\n(bits 64)\n(code-region 1908 20 1908)\n(code-region 1600 308 1600)\n(code-region 1456 96 1456)\n(code-region 1432 24 1432)\n(code-start 1652)\n(code-start 1600)\n(code-start 1876)\n(entry-point 1600)\n(external-reference 69560 _ITM_deregisterTMCloneTable)\n(external-reference 69568 __cxa_finalize)\n(external-reference 69576 __gmon_start__)\n(external-reference 69600 _ITM_registerTMCloneTable)\n(external-reference 69632 __libc_start_main)\n(external-reference 69640 __cxa_finalize)\n(external-reference 69648 __gmon_start__)\n(external-reference 69656 abort)\n(format elf)\n(is-executable true)\n(is-little-endian true)\n(llvm:base-address 0)\n(llvm:code-entry abort 0 0)\n(llvm:code-entry __cxa_finalize 0 0)\n(llvm:code-entry __libc_start_main 0 0)\n(llvm:code-entry _init 1432 0)\n(llvm:code-entry main 1876 32)\n(llvm:code-entry _start 1600 52)\n(llvm:code-entry abort@GLIBC_2.17 0 0)\n(llvm:code-entry _fini 1908 0)\n(llvm:code-entry __cxa_finalize@GLIBC_2.17 0 0)\n(llvm:code-entry __libc_start_main@GLIBC_2.34 0 0)\n(llvm:code-entry frame_dummy 1872 0)\n(llvm:code-entry __do_global_dtors_aux 1792 0)\n(llvm:code-entry register_tm_clones 1728 0)\n(llvm:code-entry deregister_tm_clones 1680 0)\n(llvm:code-entry call_weak_fn 1652 20)\n(llvm:code-entry .fini 1908 20)\n(llvm:code-entry .text 1600 308)\n(llvm:code-entry .plt 1456 96)\n(llvm:code-entry .init 1432 24)\n(llvm:elf-program-header 08 3520 576)\n(llvm:elf-program-header 07 0 0)\n(llvm:elf-program-header 06 1932 60)\n(llvm:elf-program-header 05 596 68)\n(llvm:elf-program-header 04 3536 480)\n(llvm:elf-program-header 03 3520 624)\n(llvm:elf-program-header 02 0 2176)\n(llvm:elf-program-header 01 568 27)\n(llvm:elf-program-header 00 64 504)\n(llvm:elf-program-header-flags 08 false true false false)\n(llvm:elf-program-header-flags 07 false true true false)\n(llvm:elf-program-header-flags 06 false true false false)\n(llvm:elf-program-header-flags 05 false true false false)\n(llvm:elf-program-header-flags 04 false true true false)\n(llvm:elf-program-header-flags 03 true true true false)\n(llvm:elf-program-header-flags 02 true true false true)\n(llvm:elf-program-header-flags 01 false true false false)\n(llvm:elf-program-header-flags 00 false true false false)\n(llvm:elf-virtual-program-header 08 69056 576)\n(llvm:elf-virtual-program-header 07 0 0)\n(llvm:elf-virtual-program-header 06 1932 60)\n(llvm:elf-virtual-program-header 05 596 68)\n(llvm:elf-virtual-program-header 04 69072 480)\n(llvm:elf-virtual-program-header 03 69056 640)\n(llvm:elf-virtual-program-header 02 0 2176)\n(llvm:elf-virtual-program-header 01 568 27)\n(llvm:elf-virtual-program-header 00 64 504)\n(llvm:entry-point 1600)\n(llvm:name-reference 69656 abort)\n(llvm:name-reference 69648 __gmon_start__)\n(llvm:name-reference 69640 __cxa_finalize)\n(llvm:name-reference 69632 __libc_start_main)\n(llvm:name-reference 69600 _ITM_registerTMCloneTable)\n(llvm:name-reference 69576 __gmon_start__)\n(llvm:name-reference 69568 __cxa_finalize)\n(llvm:name-reference 69560 _ITM_deregisterTMCloneTable)\n(llvm:section-entry .shstrtab 0 259 6953)\n(llvm:section-entry .strtab 0 577 6376)\n(llvm:section-entry .symtab 0 2160 4216)\n(llvm:section-entry .comment 0 71 4144)\n(llvm:section-entry .bss 69680 16 4144)\n(llvm:section-entry .data 69664 16 4128)\n(llvm:section-entry .got.plt 69608 56 4072)\n(llvm:section-entry .got 69552 56 4016)\n(llvm:section-entry .dynamic 69072 480 3536)\n(llvm:section-entry .fini_array 69064 8 3528)\n(llvm:section-entry .init_array 69056 8 3520)\n(llvm:section-entry .eh_frame 1992 184 1992)\n(llvm:section-entry .eh_frame_hdr 1932 60 1932)\n(llvm:section-entry .rodata 1928 4 1928)\n(llvm:section-entry .fini 1908 20 1908)\n(llvm:section-entry .text 1600 308 1600)\n(llvm:section-entry .plt 1456 96 1456)\n(llvm:section-entry .init 1432 24 1432)\n(llvm:section-entry .rela.plt 1336 96 1336)\n(llvm:section-entry .rela.dyn 1120 216 1120)\n(llvm:section-entry .gnu.version_r 1072 48 1072)\n(llvm:section-entry .gnu.version 1054 18 1054)\n(llvm:section-entry .dynstr 912 141 912)\n(llvm:section-entry .dynsym 696 216 696)\n(llvm:section-entry .gnu.hash 664 28 664)\n(llvm:section-entry .note.ABI-tag 632 32 632)\n(llvm:section-entry .note.gnu.build-id 596 36 596)\n(llvm:section-entry .interp 568 27 568)\n(llvm:section-flags .shstrtab true false false)\n(llvm:section-flags .strtab true false false)\n(llvm:section-flags .symtab true false false)\n(llvm:section-flags .comment true false false)\n(llvm:section-flags .bss true true false)\n(llvm:section-flags .data true true false)\n(llvm:section-flags .got.plt true true false)\n(llvm:section-flags .got true true false)\n(llvm:section-flags .dynamic true true false)\n(llvm:section-flags .fini_array true true false)\n(llvm:section-flags .init_array true true false)\n(llvm:section-flags .eh_frame true false false)\n(llvm:section-flags .eh_frame_hdr true false false)\n(llvm:section-flags .rodata true false false)\n(llvm:section-flags .fini true false true)\n(llvm:section-flags .text true false true)\n(llvm:section-flags .plt true false true)\n(llvm:section-flags .init true false true)\n(llvm:section-flags .rela.plt true false false)\n(llvm:section-flags .rela.dyn true false false)\n(llvm:section-flags .gnu.version_r true false false)\n(llvm:section-flags .gnu.version true false false)\n(llvm:section-flags .dynstr true false false)\n(llvm:section-flags .dynsym true false false)\n(llvm:section-flags .gnu.hash true false false)\n(llvm:section-flags .note.ABI-tag true false false)\n(llvm:section-flags .note.gnu.build-id true false false)\n(llvm:section-flags .interp true false false)\n(llvm:symbol-entry abort 0 0 0 0)\n(llvm:symbol-entry __cxa_finalize 0 0 0 0)\n(llvm:symbol-entry __libc_start_main 0 0 0 0)\n(llvm:symbol-entry _init 1432 0 1432 1432)\n(llvm:symbol-entry main 1876 32 1876 1876)\n(llvm:symbol-entry _start 1600 52 1600 1600)\n(llvm:symbol-entry abort@GLIBC_2.17 0 0 0 0)\n(llvm:symbol-entry _fini 1908 0 1908 1908)\n(llvm:symbol-entry __cxa_finalize@GLIBC_2.17 0 0 0 0)\n(llvm:symbol-entry __libc_start_main@GLIBC_2.34 0 0 0 0)\n(llvm:symbol-entry frame_dummy 1872 0 1872 1872)\n(llvm:symbol-entry __do_global_dtors_aux 1792 0 1792 1792)\n(llvm:symbol-entry register_tm_clones 1728 0 1728 1728)\n(llvm:symbol-entry deregister_tm_clones 1680 0 1680 1680)\n(llvm:symbol-entry call_weak_fn 1652 20 1652 1652)\n(mapped 0 2176 0)\n(mapped 69056 624 3520)\n(named-region 0 2176 02)\n(named-region 69056 640 03)\n(named-region 568 27 .interp)\n(named-region 596 36 .note.gnu.build-id)\n(named-region 632 32 .note.ABI-tag)\n(named-region 664 28 .gnu.hash)\n(named-region 696 216 .dynsym)\n(named-region 912 141 .dynstr)\n(named-region 1054 18 .gnu.version)\n(named-region 1072 48 .gnu.version_r)\n(named-region 1120 216 .rela.dyn)\n(named-region 1336 96 .rela.plt)\n(named-region 1432 24 .init)\n(named-region 1456 96 .plt)\n(named-region 1600 308 .text)\n(named-region 1908 20 .fini)\n(named-region 1928 4 .rodata)\n(named-region 1932 60 .eh_frame_hdr)\n(named-region 1992 184 .eh_frame)\n(named-region 69056 8 .init_array)\n(named-region 69064 8 .fini_array)\n(named-region 69072 480 .dynamic)\n(named-region 69552 56 .got)\n(named-region 69608 56 .got.plt)\n(named-region 69664 16 .data)\n(named-region 69680 16 .bss)\n(named-region 0 71 .comment)\n(named-region 0 2160 .symtab)\n(named-region 0 577 .strtab)\n(named-region 0 259 .shstrtab)\n(named-symbol 1652 call_weak_fn)\n(named-symbol 1680 deregister_tm_clones)\n(named-symbol 1728 register_tm_clones)\n(named-symbol 1792 __do_global_dtors_aux)\n(named-symbol 1872 frame_dummy)\n(named-symbol 0 __libc_start_main@GLIBC_2.34)\n(named-symbol 0 __cxa_finalize@GLIBC_2.17)\n(named-symbol 1908 _fini)\n(named-symbol 0 abort@GLIBC_2.17)\n(named-symbol 1600 _start)\n(named-symbol 1876 main)\n(named-symbol 1432 _init)\n(named-symbol 0 __libc_start_main)\n(named-symbol 0 __cxa_finalize)\n(named-symbol 0 abort)\n(require libc.so.6)\n(section 568 27)\n(section 596 36)\n(section 632 32)\n(section 664 28)\n(section 696 216)\n(section 912 141)\n(section 1054 18)\n(section 1072 48)\n(section 1120 216)\n(section 1336 96)\n(section 1432 24)\n(section 1456 96)\n(section 1600 308)\n(section 1908 20)\n(section 1928 4)\n(section 1932 60)\n(section 1992 184)\n(section 69056 8)\n(section 69064 8)\n(section 69072 480)\n(section 69552 56)\n(section 69608 56)\n(section 69664 16)\n(section 69680 16)\n(section 0 71)\n(section 0 2160)\n(section 0 577)\n(section 0 259)\n(segment 0 2176 true false true)\n(segment 69056 640 true true false)\n(subarch v8)\n(symbol-chunk 1652 20 1652)\n(symbol-chunk 1600 52 1600)\n(symbol-chunk 1876 32 1876)\n(symbol-value 1652 1652)\n(symbol-value 1680 1680)\n(symbol-value 1728 1728)\n(symbol-value 1792 1792)\n(symbol-value 1872 1872)\n(symbol-value 1908 1908)\n(symbol-value 1600 1600)\n(symbol-value 1876 1876)\n(symbol-value 1432 1432)\n(symbol-value 0 0)\n(system \"\")\n(vendor \"\")\n"), -Attr("abi-name","\"aarch64-linux-gnu-elf\"")]), -Sections([Section(".shstrtab", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x40\x06\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x30\x1c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x38\x00\x09\x00\x40\x00\x1d\x00\x1c\x00\x06\x00\x00\x00\x04\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x04\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x80\x08\x00\x00\x00\x00\x00\x00\x80\x08\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x01\x00\x00\x00\x06\x00\x00\x00\xc0\x0d\x00\x00\x00\x00\x00\x00\xc0\x0d\x01\x00\x00\x00\x00\x00\xc0\x0d\x01"), -Section(".strtab", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x40\x06\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x30\x1c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x38\x00\x09\x00\x40\x00\x1d\x00\x1c\x00\x06\x00\x00\x00\x04\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x04\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x80\x08\x00\x00\x00\x00\x00\x00\x80\x08\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x01\x00\x00\x00\x06\x00\x00\x00\xc0\x0d\x00\x00\x00\x00\x00\x00\xc0\x0d\x01\x00\x00\x00\x00\x00\xc0\x0d\x01\x00\x00\x00\x00\x00\x70\x02\x00\x00\x00\x00\x00\x00\x80\x02\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x02\x00\x00\x00\x06\x00\x00\x00\xd0\x0d\x00\x00\x00\x00\x00\x00\xd0\x0d\x01\x00\x00\x00\x00\x00\xd0\x0d\x01\x00\x00\x00\x00\x00\xe0\x01\x00\x00\x00\x00\x00\x00\xe0\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x04\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x50\xe5\x74\x64\x04\x00\x00\x00\x8c\x07\x00\x00\x00\x00\x00\x00\x8c\x07\x00\x00\x00\x00\x00\x00\x8c\x07\x00\x00\x00\x00\x00\x00\x3c\x00\x00\x00\x00\x00\x00\x00\x3c\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x51\xe5\x74\x64\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x52\xe5\x74\x64\x04\x00\x00\x00\xc0\x0d\x00\x00\x00\x00\x00\x00\xc0\x0d\x01\x00\x00\x00\x00\x00\xc0\x0d\x01\x00\x00\x00\x00\x00\x40\x02\x00\x00\x00\x00\x00\x00\x40\x02\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x2f\x6c\x69\x62\x2f\x6c\x64\x2d\x6c"), -Section(".symtab", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x40\x06\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x30\x1c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x38\x00\x09\x00\x40\x00\x1d\x00\x1c\x00\x06\x00\x00\x00\x04\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x04\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x80\x08\x00\x00\x00\x00\x00\x00\x80\x08\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x01\x00\x00\x00\x06\x00\x00\x00\xc0\x0d\x00\x00\x00\x00\x00\x00\xc0\x0d\x01\x00\x00\x00\x00\x00\xc0\x0d\x01\x00\x00\x00\x00\x00\x70\x02\x00\x00\x00\x00\x00\x00\x80\x02\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x02\x00\x00\x00\x06\x00\x00\x00\xd0\x0d\x00\x00\x00\x00\x00\x00\xd0\x0d\x01\x00\x00\x00\x00\x00\xd0\x0d\x01\x00\x00\x00\x00\x00\xe0\x01\x00\x00\x00\x00\x00\x00\xe0\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x04\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x50\xe5\x74\x64\x04\x00\x00\x00\x8c\x07\x00\x00\x00\x00\x00\x00\x8c\x07\x00\x00\x00\x00\x00\x00\x8c\x07\x00\x00\x00\x00\x00\x00\x3c\x00\x00\x00\x00\x00\x00\x00\x3c\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x51\xe5\x74\x64\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x52\xe5\x74\x64\x04\x00\x00\x00\xc0\x0d\x00\x00\x00\x00\x00\x00\xc0\x0d\x01\x00\x00\x00\x00\x00\xc0\x0d\x01\x00\x00\x00\x00\x00\x40\x02\x00\x00\x00\x00\x00\x00\x40\x02\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x2f\x6c\x69\x62\x2f\x6c\x64\x2d\x6c\x69\x6e\x75\x78\x2d\x61\x61\x72\x63\x68\x36\x34\x2e\x73\x6f\x2e\x31\x00\x00\x04\x00\x00\x00\x14\x00\x00\x00\x03\x00\x00\x00\x47\x4e\x55\x00\xa1\x6e\xe4\x2e\x46\xec\x6e\x9e\x8e\x82\x54\x7c\x3c\x7c\x22\x52\x63\x32\x22\xca\x04\x00\x00\x00\x10\x00\x00\x00\x01\x00\x00\x00\x47\x4e\x55\x00\x00\x00\x00\x00\x03\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x01\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x0b\x00\x98\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x17\x00\x20\x10\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x48\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x22\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x22\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x73\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5f\x5f\x63\x78\x61\x5f\x66\x69\x6e\x61\x6c\x69\x7a\x65\x00\x5f\x5f\x6c\x69\x62\x63\x5f\x73\x74\x61\x72\x74\x5f\x6d\x61\x69\x6e\x00\x61\x62\x6f\x72\x74\x00\x6c\x69\x62\x63\x2e\x73\x6f\x2e\x36\x00\x47\x4c\x49\x42\x43\x5f\x32\x2e\x31\x37\x00\x47\x4c\x49\x42\x43\x5f\x32\x2e\x33\x34\x00\x5f\x49\x54\x4d\x5f\x64\x65\x72\x65\x67\x69\x73\x74\x65\x72\x54\x4d\x43\x6c\x6f\x6e\x65\x54\x61\x62\x6c\x65\x00\x5f\x5f\x67\x6d\x6f\x6e\x5f\x73\x74\x61\x72\x74\x5f\x5f\x00\x5f\x49\x54\x4d\x5f\x72\x65\x67\x69\x73\x74\x65\x72\x54\x4d\x43\x6c\x6f\x6e\x65\x54\x61\x62\x6c\x65\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x01\x00\x03\x00\x01\x00\x03\x00\x01\x00\x01\x00\x02\x00\x28\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x97\x91\x96\x06\x00\x00\x03\x00\x32\x00\x00\x00\x10\x00\x00\x00\xb4\x91\x96\x06\x00\x00\x02\x00\x3d\x00\x00\x00\x00\x00\x00\x00\xc0\x0d\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x50\x07\x00\x00\x00\x00\x00\x00\xc8\x0d\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\xd0\x0f\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x54\x07\x00\x00\x00\x00\x00\x00\xd8\x0f\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x34\x10\x01\x00\x00\x00\x00\x00\x28\x10\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x28\x10\x01\x00\x00\x00\x00\x00\xb8\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xc0\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xc8\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe0\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x08\x10\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x10\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x18\x10\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1f\x20\x03\xd5\xfd\x7b\xbf\xa9\xfd\x03\x00\x91\x34\x00\x00\x94\xfd\x7b\xc1\xa8\xc0\x03\x5f\xd6\xf0\x7b\xbf\xa9\x90\x00\x00\x90\x11\xfe\x47\xf9\x10\xe2\x3f\x91\x20\x02\x1f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x90\x00\x00\xb0\x11\x02\x40\xf9\x10\x02\x00\x91\x20\x02\x1f\xd6\x90\x00\x00\xb0\x11\x06\x40\xf9\x10\x22\x00\x91\x20\x02\x1f\xd6\x90\x00\x00\xb0\x11\x0a\x40\xf9\x10\x42\x00\x91\x20\x02\x1f\xd6\x90\x00\x00\xb0\x11\x0e\x40\xf9\x10\x62\x00\x91\x20\x02\x1f\xd6\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1f\x20\x03\xd5\x1d\x00\x80\xd2\x1e\x00\x80\xd2\xe5\x03\x00\xaa\xe1\x03\x40\xf9\xe2\x23\x00\x91\xe6\x03\x00\x91\x80\x00\x00\x90\x00\xe8\x47\xf9\x03\x00\x80\xd2\x04\x00\x80\xd2\xd9\xff\xff\x97\xe4\xff\xff\x97\x80\x00\x00\x90\x00\xe4\x47\xf9\x40\x00\x00\xb4\xdc\xff\xff\x17\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x80\x00\x00\xb0\x00\xc0\x00\x91\x81\x00\x00\xb0\x21\xc0\x00\x91\x3f\x00\x00\xeb\xc0\x00\x00\x54\x81\x00\x00\x90\x21\xdc\x47\xf9\x61\x00\x00\xb4\xf0\x03\x01\xaa\x00\x02\x1f\xd6\xc0\x03\x5f\xd6\x80\x00\x00\xb0\x00\xc0\x00\x91\x81\x00\x00\xb0\x21\xc0\x00\x91\x21\x00\x00\xcb\x22\xfc\x7f\xd3\x41\x0c\x81\x8b\x21\xfc\x41\x93\xc1\x00\x00\xb4\x82\x00\x00\x90\x42\xf0\x47\xf9\x62\x00\x00\xb4\xf0\x03\x02\xaa\x00\x02\x1f\xd6\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\xfd\x7b\xbe\xa9\xfd\x03\x00\x91\xf3\x0b\x00\xf9\x93\x00\x00\xb0\x60\xc2\x40\x39\x40\x01\x00\x35\x80\x00\x00\x90\x00\xe0\x47\xf9\x80\x00\x00\xb4\x80\x00\x00\xb0\x00\x14\x40\xf9\xad\xff\xff\x97\xd8\xff\xff\x97\x20\x00\x80\x52\x60\xc2\x00\x39\xf3\x0b\x40\xf9\xfd\x7b\xc2\xa8\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\xdc\xff\xff\x17\xff\x43\x00\xd1\xff\x0f\x00\xb9\x88\x00\x00\x90\x08\xed\x47\xf9\x1f\x01\x00\xb9\x00\x01\x40\xb9\xff\x43\x00\x91\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\xfd\x7b\xbf\xa9\xfd\x03\x00\x91\xfd\x7b\xc1\xa8\xc0\x03\x5f\xd6\x01\x00\x02\x00\x01\x1b\x03\x3b\x38\x00\x00\x00\x06\x00\x00\x00\xb4\xfe\xff\xff\x50\x00\x00\x00\x04\xff\xff\xff\x64\x00\x00\x00\x34\xff\xff\xff\x78\x00\x00\x00\x74\xff\xff\xff\x8c\x00\x00\x00\xc4\xff\xff\xff\xb0\x00\x00\x00\xc8\xff\xff\xff\xd8\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x01\x7a\x52\x00\x04\x78\x1e\x01\x1b\x0c\x1f\x00\x10\x00\x00\x00\x18\x00\x00\x00\x5c\xfe\xff\xff\x34\x00\x00\x00\x00\x41\x07\x1e\x10\x00\x00\x00\x2c\x00\x00\x00\x98\xfe\xff\xff\x30\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x40\x00\x00\x00\xb4\xfe\xff\xff\x3c\x00\x00\x00\x00\x00\x00\x00\x20\x00\x00\x00\x54\x00\x00\x00\xe0\xfe\xff\xff\x48\x00\x00\x00\x00\x41\x0e\x20\x9d\x04\x9e\x03\x42\x93\x02\x4e\xde\xdd\xd3\x0e\x00\x00\x00\x00\x10\x00\x00\x00\x78\x00\x00\x00\x0c\xff\xff\xff\x04\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x01\x7a\x52\x00\x01\x7c\x1e\x01\x1b\x0c\x1f\x00\x14\x00\x00\x00\x18\x00\x00\x00\xe8\xfe\xff\xff"), -Section(".comment", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x40\x06\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x30\x1c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x38\x00\x09\x00\x40\x00\x1d\x00\x1c\x00\x06\x00\x00\x00\x04\x00\x00"), -Section(".interp", 0x238, "\x2f\x6c\x69\x62\x2f\x6c\x64\x2d\x6c\x69\x6e\x75\x78\x2d\x61\x61\x72\x63\x68\x36\x34\x2e\x73\x6f\x2e\x31\x00"), -Section(".note.gnu.build-id", 0x254, "\x04\x00\x00\x00\x14\x00\x00\x00\x03\x00\x00\x00\x47\x4e\x55\x00\xa1\x6e\xe4\x2e\x46\xec\x6e\x9e\x8e\x82\x54\x7c\x3c\x7c\x22\x52\x63\x32\x22\xca"), -Section(".note.ABI-tag", 0x278, "\x04\x00\x00\x00\x10\x00\x00\x00\x01\x00\x00\x00\x47\x4e\x55\x00\x00\x00\x00\x00\x03\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00"), -Section(".gnu.hash", 0x298, "\x01\x00\x00\x00\x01\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".dynsym", 0x2B8, "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x0b\x00\x98\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x17\x00\x20\x10\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x48\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x22\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x22\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x73\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".dynstr", 0x390, "\x00\x5f\x5f\x63\x78\x61\x5f\x66\x69\x6e\x61\x6c\x69\x7a\x65\x00\x5f\x5f\x6c\x69\x62\x63\x5f\x73\x74\x61\x72\x74\x5f\x6d\x61\x69\x6e\x00\x61\x62\x6f\x72\x74\x00\x6c\x69\x62\x63\x2e\x73\x6f\x2e\x36\x00\x47\x4c\x49\x42\x43\x5f\x32\x2e\x31\x37\x00\x47\x4c\x49\x42\x43\x5f\x32\x2e\x33\x34\x00\x5f\x49\x54\x4d\x5f\x64\x65\x72\x65\x67\x69\x73\x74\x65\x72\x54\x4d\x43\x6c\x6f\x6e\x65\x54\x61\x62\x6c\x65\x00\x5f\x5f\x67\x6d\x6f\x6e\x5f\x73\x74\x61\x72\x74\x5f\x5f\x00\x5f\x49\x54\x4d\x5f\x72\x65\x67\x69\x73\x74\x65\x72\x54\x4d\x43\x6c\x6f\x6e\x65\x54\x61\x62\x6c\x65\x00"), -Section(".gnu.version", 0x41E, "\x00\x00\x00\x00\x00\x00\x02\x00\x01\x00\x03\x00\x01\x00\x03\x00\x01\x00"), -Section(".gnu.version_r", 0x430, "\x01\x00\x02\x00\x28\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x97\x91\x96\x06\x00\x00\x03\x00\x32\x00\x00\x00\x10\x00\x00\x00\xb4\x91\x96\x06\x00\x00\x02\x00\x3d\x00\x00\x00\x00\x00\x00\x00"), -Section(".rela.dyn", 0x460, "\xc0\x0d\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x50\x07\x00\x00\x00\x00\x00\x00\xc8\x0d\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\xd0\x0f\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x54\x07\x00\x00\x00\x00\x00\x00\xd8\x0f\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x34\x10\x01\x00\x00\x00\x00\x00\x28\x10\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x28\x10\x01\x00\x00\x00\x00\x00\xb8\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xc0\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xc8\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe0\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".rela.plt", 0x538, "\x00\x10\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x08\x10\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x10\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x18\x10\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".init", 0x598, "\x1f\x20\x03\xd5\xfd\x7b\xbf\xa9\xfd\x03\x00\x91\x34\x00\x00\x94\xfd\x7b\xc1\xa8\xc0\x03\x5f\xd6"), -Section(".plt", 0x5B0, "\xf0\x7b\xbf\xa9\x90\x00\x00\x90\x11\xfe\x47\xf9\x10\xe2\x3f\x91\x20\x02\x1f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x90\x00\x00\xb0\x11\x02\x40\xf9\x10\x02\x00\x91\x20\x02\x1f\xd6\x90\x00\x00\xb0\x11\x06\x40\xf9\x10\x22\x00\x91\x20\x02\x1f\xd6\x90\x00\x00\xb0\x11\x0a\x40\xf9\x10\x42\x00\x91\x20\x02\x1f\xd6\x90\x00\x00\xb0\x11\x0e\x40\xf9\x10\x62\x00\x91\x20\x02\x1f\xd6"), -Section(".fini", 0x774, "\x1f\x20\x03\xd5\xfd\x7b\xbf\xa9\xfd\x03\x00\x91\xfd\x7b\xc1\xa8\xc0\x03\x5f\xd6"), -Section(".rodata", 0x788, "\x01\x00\x02\x00"), -Section(".eh_frame_hdr", 0x78C, "\x01\x1b\x03\x3b\x38\x00\x00\x00\x06\x00\x00\x00\xb4\xfe\xff\xff\x50\x00\x00\x00\x04\xff\xff\xff\x64\x00\x00\x00\x34\xff\xff\xff\x78\x00\x00\x00\x74\xff\xff\xff\x8c\x00\x00\x00\xc4\xff\xff\xff\xb0\x00\x00\x00\xc8\xff\xff\xff\xd8\x00\x00\x00"), -Section(".eh_frame", 0x7C8, "\x10\x00\x00\x00\x00\x00\x00\x00\x01\x7a\x52\x00\x04\x78\x1e\x01\x1b\x0c\x1f\x00\x10\x00\x00\x00\x18\x00\x00\x00\x5c\xfe\xff\xff\x34\x00\x00\x00\x00\x41\x07\x1e\x10\x00\x00\x00\x2c\x00\x00\x00\x98\xfe\xff\xff\x30\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x40\x00\x00\x00\xb4\xfe\xff\xff\x3c\x00\x00\x00\x00\x00\x00\x00\x20\x00\x00\x00\x54\x00\x00\x00\xe0\xfe\xff\xff\x48\x00\x00\x00\x00\x41\x0e\x20\x9d\x04\x9e\x03\x42\x93\x02\x4e\xde\xdd\xd3\x0e\x00\x00\x00\x00\x10\x00\x00\x00\x78\x00\x00\x00\x0c\xff\xff\xff\x04\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x01\x7a\x52\x00\x01\x7c\x1e\x01\x1b\x0c\x1f\x00\x14\x00\x00\x00\x18\x00\x00\x00\xe8\xfe\xff\xff\x20\x00\x00\x00\x00\x44\x0e\x10\x58\x0e\x00\x00\x00\x00\x00\x00"), -Section(".fini_array", 0x10DC8, "\x00\x07\x00\x00\x00\x00\x00\x00"), -Section(".dynamic", 0x10DD0, "\x01\x00\x00\x00\x00\x00\x00\x00\x28\x00\x00\x00\x00\x00\x00\x00\x0c\x00\x00\x00\x00\x00\x00\x00\x98\x05\x00\x00\x00\x00\x00\x00\x0d\x00\x00\x00\x00\x00\x00\x00\x74\x07\x00\x00\x00\x00\x00\x00\x19\x00\x00\x00\x00\x00\x00\x00\xc0\x0d\x01\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x1a\x00\x00\x00\x00\x00\x00\x00\xc8\x0d\x01\x00\x00\x00\x00\x00\x1c\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\xf5\xfe\xff\x6f\x00\x00\x00\x00\x98\x02\x00\x00\x00\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x90\x03\x00\x00\x00\x00\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\xb8\x02\x00\x00\x00\x00\x00\x00\x0a\x00\x00\x00\x00\x00\x00\x00\x8d\x00\x00\x00\x00\x00\x00\x00\x0b\x00\x00\x00\x00\x00\x00\x00\x18\x00\x00\x00\x00\x00\x00\x00\x15\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\xe8\x0f\x01\x00\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x60\x00\x00\x00\x00\x00\x00\x00\x14\x00\x00\x00\x00\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x17\x00\x00\x00\x00\x00\x00\x00\x38\x05\x00\x00\x00\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x60\x04\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\xd8\x00\x00\x00\x00\x00\x00\x00\x09\x00\x00\x00\x00\x00\x00\x00\x18\x00\x00\x00\x00\x00\x00\x00\xfb\xff\xff\x6f\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\xfe\xff\xff\x6f\x00\x00\x00\x00\x30\x04\x00\x00\x00\x00\x00\x00\xff\xff\xff\x6f\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\xf0\xff\xff\x6f\x00\x00\x00\x00\x1e\x04\x00\x00\x00\x00\x00\x00\xf9\xff\xff\x6f\x00\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".init_array", 0x10DC0, "\x50\x07\x00\x00\x00\x00\x00\x00"), -Section(".got", 0x10FB0, "\xd0\x0d\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x54\x07\x00\x00\x00\x00\x00\x00\x34\x10\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".got.plt", 0x10FE8, "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xb0\x05\x00\x00\x00\x00\x00\x00\xb0\x05\x00\x00\x00\x00\x00\x00\xb0\x05\x00\x00\x00\x00\x00\x00\xb0\x05\x00\x00\x00\x00\x00\x00"), -Section(".data", 0x11020, "\x00\x00\x00\x00\x00\x00\x00\x00\x28\x10\x01\x00\x00\x00\x00\x00"), -Section(".text", 0x640, "\x1f\x20\x03\xd5\x1d\x00\x80\xd2\x1e\x00\x80\xd2\xe5\x03\x00\xaa\xe1\x03\x40\xf9\xe2\x23\x00\x91\xe6\x03\x00\x91\x80\x00\x00\x90\x00\xe8\x47\xf9\x03\x00\x80\xd2\x04\x00\x80\xd2\xd9\xff\xff\x97\xe4\xff\xff\x97\x80\x00\x00\x90\x00\xe4\x47\xf9\x40\x00\x00\xb4\xdc\xff\xff\x17\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x80\x00\x00\xb0\x00\xc0\x00\x91\x81\x00\x00\xb0\x21\xc0\x00\x91\x3f\x00\x00\xeb\xc0\x00\x00\x54\x81\x00\x00\x90\x21\xdc\x47\xf9\x61\x00\x00\xb4\xf0\x03\x01\xaa\x00\x02\x1f\xd6\xc0\x03\x5f\xd6\x80\x00\x00\xb0\x00\xc0\x00\x91\x81\x00\x00\xb0\x21\xc0\x00\x91\x21\x00\x00\xcb\x22\xfc\x7f\xd3\x41\x0c\x81\x8b\x21\xfc\x41\x93\xc1\x00\x00\xb4\x82\x00\x00\x90\x42\xf0\x47\xf9\x62\x00\x00\xb4\xf0\x03\x02\xaa\x00\x02\x1f\xd6\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\xfd\x7b\xbe\xa9\xfd\x03\x00\x91\xf3\x0b\x00\xf9\x93\x00\x00\xb0\x60\xc2\x40\x39\x40\x01\x00\x35\x80\x00\x00\x90\x00\xe0\x47\xf9\x80\x00\x00\xb4\x80\x00\x00\xb0\x00\x14\x40\xf9\xad\xff\xff\x97\xd8\xff\xff\x97\x20\x00\x80\x52\x60\xc2\x00\x39\xf3\x0b\x40\xf9\xfd\x7b\xc2\xa8\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\xdc\xff\xff\x17\xff\x43\x00\xd1\xff\x0f\x00\xb9\x88\x00\x00\x90\x08\xed\x47\xf9\x1f\x01\x00\xb9\x00\x01\x40\xb9\xff\x43\x00\x91\xc0\x03\x5f\xd6")]), -Memmap([Annotation(Region(0x0,0x87F), Attr("segment","02 0 2176")), -Annotation(Region(0x640,0x673), Attr("symbol","\"_start\"")), -Annotation(Region(0x0,0x102), Attr("section","\".shstrtab\"")), -Annotation(Region(0x0,0x240), Attr("section","\".strtab\"")), -Annotation(Region(0x0,0x86F), Attr("section","\".symtab\"")), -Annotation(Region(0x0,0x46), Attr("section","\".comment\"")), -Annotation(Region(0x238,0x252), Attr("section","\".interp\"")), -Annotation(Region(0x254,0x277), Attr("section","\".note.gnu.build-id\"")), -Annotation(Region(0x278,0x297), Attr("section","\".note.ABI-tag\"")), -Annotation(Region(0x298,0x2B3), Attr("section","\".gnu.hash\"")), -Annotation(Region(0x2B8,0x38F), Attr("section","\".dynsym\"")), -Annotation(Region(0x390,0x41C), Attr("section","\".dynstr\"")), -Annotation(Region(0x41E,0x42F), Attr("section","\".gnu.version\"")), -Annotation(Region(0x430,0x45F), Attr("section","\".gnu.version_r\"")), -Annotation(Region(0x460,0x537), Attr("section","\".rela.dyn\"")), -Annotation(Region(0x538,0x597), Attr("section","\".rela.plt\"")), -Annotation(Region(0x598,0x5AF), Attr("section","\".init\"")), -Annotation(Region(0x5B0,0x60F), Attr("section","\".plt\"")), -Annotation(Region(0x598,0x5AF), Attr("code-region","()")), -Annotation(Region(0x5B0,0x60F), Attr("code-region","()")), -Annotation(Region(0x640,0x673), Attr("symbol-info","_start 0x640 52")), -Annotation(Region(0x674,0x687), Attr("symbol","\"call_weak_fn\"")), -Annotation(Region(0x674,0x687), Attr("symbol-info","call_weak_fn 0x674 20")), -Annotation(Region(0x754,0x773), Attr("symbol","\"main\"")), -Annotation(Region(0x754,0x773), Attr("symbol-info","main 0x754 32")), -Annotation(Region(0x774,0x787), Attr("section","\".fini\"")), -Annotation(Region(0x788,0x78B), Attr("section","\".rodata\"")), -Annotation(Region(0x78C,0x7C7), Attr("section","\".eh_frame_hdr\"")), -Annotation(Region(0x7C8,0x87F), Attr("section","\".eh_frame\"")), -Annotation(Region(0x10DC0,0x1102F), Attr("segment","03 0x10DC0 640")), -Annotation(Region(0x10DC8,0x10DCF), Attr("section","\".fini_array\"")), -Annotation(Region(0x10DD0,0x10FAF), Attr("section","\".dynamic\"")), -Annotation(Region(0x10DC0,0x10DC7), Attr("section","\".init_array\"")), -Annotation(Region(0x10FB0,0x10FE7), Attr("section","\".got\"")), -Annotation(Region(0x10FE8,0x1101F), Attr("section","\".got.plt\"")), -Annotation(Region(0x11020,0x1102F), Attr("section","\".data\"")), -Annotation(Region(0x640,0x773), Attr("section","\".text\"")), -Annotation(Region(0x640,0x773), Attr("code-region","()")), -Annotation(Region(0x774,0x787), Attr("code-region","()"))]), -Program(Tid(1_373, "%0000055d"), Attrs([]), - Subs([Sub(Tid(1_323, "@__cxa_finalize"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x5E0"), -Attr("stub","()")]), "__cxa_finalize", Args([Arg(Tid(1_374, "%0000055e"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("__cxa_finalize_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(819, "@__cxa_finalize"), - Attrs([Attr("address","0x5E0")]), Phis([]), -Defs([Def(Tid(1_067, "%0000042b"), Attrs([Attr("address","0x5E0"), -Attr("insn","adrp x16, #69632")]), Var("R16",Imm(64)), Int(69632,64)), -Def(Tid(1_074, "%00000432"), Attrs([Attr("address","0x5E4"), -Attr("insn","ldr x17, [x16, #0x8]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(1_080, "%00000438"), Attrs([Attr("address","0x5E8"), -Attr("insn","add x16, x16, #0x8")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(8,64)))]), Jmps([Call(Tid(1_085, "%0000043d"), - Attrs([Attr("address","0x5EC"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), -Sub(Tid(1_324, "@__do_global_dtors_aux"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x700")]), - "__do_global_dtors_aux", Args([Arg(Tid(1_375, "%0000055f"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("__do_global_dtors_aux_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(622, "@__do_global_dtors_aux"), - Attrs([Attr("address","0x700")]), Phis([]), Defs([Def(Tid(626, "%00000272"), - Attrs([Attr("address","0x700"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("#3",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(18446744073709551584,64))), -Def(Tid(632, "%00000278"), Attrs([Attr("address","0x700"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("#3",Imm(64)),Var("R29",Imm(64)),LittleEndian(),64)), -Def(Tid(638, "%0000027e"), Attrs([Attr("address","0x700"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("#3",Imm(64)),Int(8,64)),Var("R30",Imm(64)),LittleEndian(),64)), -Def(Tid(642, "%00000282"), Attrs([Attr("address","0x700"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("R31",Imm(64)), -Var("#3",Imm(64))), Def(Tid(648, "%00000288"), - Attrs([Attr("address","0x704"), Attr("insn","mov x29, sp")]), - Var("R29",Imm(64)), Var("R31",Imm(64))), Def(Tid(656, "%00000290"), - Attrs([Attr("address","0x708"), Attr("insn","str x19, [sp, #0x10]")]), - Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(16,64)),Var("R19",Imm(64)),LittleEndian(),64)), -Def(Tid(661, "%00000295"), Attrs([Attr("address","0x70C"), -Attr("insn","adrp x19, #69632")]), Var("R19",Imm(64)), Int(69632,64)), -Def(Tid(668, "%0000029c"), Attrs([Attr("address","0x710"), -Attr("insn","ldrb w0, [x19, #0x30]")]), Var("R0",Imm(64)), -UNSIGNED(64,Load(Var("mem",Mem(64,8)),PLUS(Var("R19",Imm(64)),Int(48,64)),LittleEndian(),8)))]), -Jmps([Goto(Tid(675, "%000002a3"), Attrs([Attr("address","0x714"), -Attr("insn","cbnz w0, #0x28")]), - NEQ(Extract(31,0,Var("R0",Imm(64))),Int(0,32)), -Direct(Tid(673, "%000002a1"))), Goto(Tid(1_363, "%00000553"), Attrs([]), - Int(1,1), Direct(Tid(764, "%000002fc")))])), Blk(Tid(764, "%000002fc"), - Attrs([Attr("address","0x718")]), Phis([]), Defs([Def(Tid(767, "%000002ff"), - Attrs([Attr("address","0x718"), Attr("insn","adrp x0, #65536")]), - Var("R0",Imm(64)), Int(65536,64)), Def(Tid(774, "%00000306"), - Attrs([Attr("address","0x71C"), Attr("insn","ldr x0, [x0, #0xfc0]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(4032,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(780, "%0000030c"), Attrs([Attr("address","0x720"), -Attr("insn","cbz x0, #0x10")]), EQ(Var("R0",Imm(64)),Int(0,64)), -Direct(Tid(778, "%0000030a"))), Goto(Tid(1_364, "%00000554"), Attrs([]), - Int(1,1), Direct(Tid(803, "%00000323")))])), Blk(Tid(803, "%00000323"), - Attrs([Attr("address","0x724")]), Phis([]), Defs([Def(Tid(806, "%00000326"), - Attrs([Attr("address","0x724"), Attr("insn","adrp x0, #69632")]), - Var("R0",Imm(64)), Int(69632,64)), Def(Tid(813, "%0000032d"), - Attrs([Attr("address","0x728"), Attr("insn","ldr x0, [x0, #0x28]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(40,64)),LittleEndian(),64)), -Def(Tid(818, "%00000332"), Attrs([Attr("address","0x72C"), -Attr("insn","bl #-0x14c")]), Var("R30",Imm(64)), Int(1840,64))]), -Jmps([Call(Tid(821, "%00000335"), Attrs([Attr("address","0x72C"), -Attr("insn","bl #-0x14c")]), Int(1,1), -(Direct(Tid(1_323, "@__cxa_finalize")),Direct(Tid(778, "%0000030a"))))])), -Blk(Tid(778, "%0000030a"), Attrs([Attr("address","0x730")]), Phis([]), -Defs([Def(Tid(786, "%00000312"), Attrs([Attr("address","0x730"), -Attr("insn","bl #-0xa0")]), Var("R30",Imm(64)), Int(1844,64))]), -Jmps([Call(Tid(788, "%00000314"), Attrs([Attr("address","0x730"), -Attr("insn","bl #-0xa0")]), Int(1,1), -(Direct(Tid(1_337, "@deregister_tm_clones")),Direct(Tid(790, "%00000316"))))])), -Blk(Tid(790, "%00000316"), Attrs([Attr("address","0x734")]), Phis([]), -Defs([Def(Tid(793, "%00000319"), Attrs([Attr("address","0x734"), -Attr("insn","mov w0, #0x1")]), Var("R0",Imm(64)), Int(1,64)), -Def(Tid(801, "%00000321"), Attrs([Attr("address","0x738"), -Attr("insn","strb w0, [x19, #0x30]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R19",Imm(64)),Int(48,64)),Extract(7,0,Var("R0",Imm(64))),LittleEndian(),8))]), -Jmps([Goto(Tid(1_365, "%00000555"), Attrs([]), Int(1,1), -Direct(Tid(673, "%000002a1")))])), Blk(Tid(673, "%000002a1"), - Attrs([Attr("address","0x73C")]), Phis([]), Defs([Def(Tid(683, "%000002ab"), - Attrs([Attr("address","0x73C"), Attr("insn","ldr x19, [sp, #0x10]")]), - Var("R19",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(16,64)),LittleEndian(),64)), -Def(Tid(690, "%000002b2"), Attrs([Attr("address","0x740"), -Attr("insn","ldp x29, x30, [sp], #0x20")]), Var("R29",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(695, "%000002b7"), Attrs([Attr("address","0x740"), -Attr("insn","ldp x29, x30, [sp], #0x20")]), Var("R30",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(699, "%000002bb"), Attrs([Attr("address","0x740"), -Attr("insn","ldp x29, x30, [sp], #0x20")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(32,64)))]), Jmps([Call(Tid(704, "%000002c0"), - Attrs([Attr("address","0x744"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), Sub(Tid(1_328, "@__libc_start_main"), - Attrs([Attr("c.proto","signed (*)(signed (*)(signed , char** , char** );* main, signed , char** , \nvoid* auxv)"), -Attr("address","0x5D0"), Attr("stub","()")]), "__libc_start_main", - Args([Arg(Tid(1_376, "%00000560"), - Attrs([Attr("c.layout","**[ : 64]"), -Attr("c.data","Top:u64 ptr ptr"), -Attr("c.type","signed (*)(signed , char** , char** );*")]), - Var("__libc_start_main_main",Imm(64)), Var("R0",Imm(64)), In()), -Arg(Tid(1_377, "%00000561"), Attrs([Attr("c.layout","[signed : 32]"), -Attr("c.data","Top:u32"), Attr("c.type","signed")]), - Var("__libc_start_main_arg2",Imm(32)), LOW(32,Var("R1",Imm(64))), In()), -Arg(Tid(1_378, "%00000562"), Attrs([Attr("c.layout","**[char : 8]"), -Attr("c.data","Top:u8 ptr ptr"), Attr("c.type","char**")]), - Var("__libc_start_main_arg3",Imm(64)), Var("R2",Imm(64)), Both()), -Arg(Tid(1_379, "%00000563"), Attrs([Attr("c.layout","*[ : 8]"), -Attr("c.data","{} ptr"), Attr("c.type","void*")]), - Var("__libc_start_main_auxv",Imm(64)), Var("R3",Imm(64)), Both()), -Arg(Tid(1_380, "%00000564"), Attrs([Attr("c.layout","[signed : 32]"), -Attr("c.data","Top:u32"), Attr("c.type","signed")]), - Var("__libc_start_main_result",Imm(32)), LOW(32,Var("R0",Imm(64))), -Out())]), Blks([Blk(Tid(455, "@__libc_start_main"), - Attrs([Attr("address","0x5D0")]), Phis([]), -Defs([Def(Tid(1_045, "%00000415"), Attrs([Attr("address","0x5D0"), -Attr("insn","adrp x16, #69632")]), Var("R16",Imm(64)), Int(69632,64)), -Def(Tid(1_052, "%0000041c"), Attrs([Attr("address","0x5D4"), -Attr("insn","ldr x17, [x16]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R16",Imm(64)),LittleEndian(),64)), -Def(Tid(1_058, "%00000422"), Attrs([Attr("address","0x5D8"), -Attr("insn","add x16, x16, #0x0")]), Var("R16",Imm(64)), -Var("R16",Imm(64)))]), Jmps([Call(Tid(1_063, "%00000427"), - Attrs([Attr("address","0x5DC"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), Sub(Tid(1_329, "@_fini"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x774")]), - "_fini", Args([Arg(Tid(1_381, "%00000565"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("_fini_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(31, "@_fini"), - Attrs([Attr("address","0x774")]), Phis([]), Defs([Def(Tid(37, "%00000025"), - Attrs([Attr("address","0x778"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("#0",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(18446744073709551600,64))), -Def(Tid(43, "%0000002b"), Attrs([Attr("address","0x778"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("#0",Imm(64)),Var("R29",Imm(64)),LittleEndian(),64)), -Def(Tid(49, "%00000031"), Attrs([Attr("address","0x778"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("#0",Imm(64)),Int(8,64)),Var("R30",Imm(64)),LittleEndian(),64)), -Def(Tid(53, "%00000035"), Attrs([Attr("address","0x778"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("R31",Imm(64)), -Var("#0",Imm(64))), Def(Tid(59, "%0000003b"), Attrs([Attr("address","0x77C"), -Attr("insn","mov x29, sp")]), Var("R29",Imm(64)), Var("R31",Imm(64))), -Def(Tid(66, "%00000042"), Attrs([Attr("address","0x780"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R29",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(71, "%00000047"), Attrs([Attr("address","0x780"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R30",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(75, "%0000004b"), Attrs([Attr("address","0x780"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(16,64)))]), Jmps([Call(Tid(80, "%00000050"), - Attrs([Attr("address","0x784"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), Sub(Tid(1_330, "@_init"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x598")]), - "_init", Args([Arg(Tid(1_382, "%00000566"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("_init_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(1_157, "@_init"), - Attrs([Attr("address","0x598")]), Phis([]), -Defs([Def(Tid(1_163, "%0000048b"), Attrs([Attr("address","0x59C"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("#5",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(18446744073709551600,64))), -Def(Tid(1_169, "%00000491"), Attrs([Attr("address","0x59C"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("#5",Imm(64)),Var("R29",Imm(64)),LittleEndian(),64)), -Def(Tid(1_175, "%00000497"), Attrs([Attr("address","0x59C"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("#5",Imm(64)),Int(8,64)),Var("R30",Imm(64)),LittleEndian(),64)), -Def(Tid(1_179, "%0000049b"), Attrs([Attr("address","0x59C"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("R31",Imm(64)), -Var("#5",Imm(64))), Def(Tid(1_185, "%000004a1"), - Attrs([Attr("address","0x5A0"), Attr("insn","mov x29, sp")]), - Var("R29",Imm(64)), Var("R31",Imm(64))), Def(Tid(1_190, "%000004a6"), - Attrs([Attr("address","0x5A4"), Attr("insn","bl #0xd0")]), - Var("R30",Imm(64)), Int(1448,64))]), Jmps([Call(Tid(1_192, "%000004a8"), - Attrs([Attr("address","0x5A4"), Attr("insn","bl #0xd0")]), Int(1,1), -(Direct(Tid(1_335, "@call_weak_fn")),Direct(Tid(1_194, "%000004aa"))))])), -Blk(Tid(1_194, "%000004aa"), Attrs([Attr("address","0x5A8")]), Phis([]), -Defs([Def(Tid(1_199, "%000004af"), Attrs([Attr("address","0x5A8"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R29",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(1_204, "%000004b4"), Attrs([Attr("address","0x5A8"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R30",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(1_208, "%000004b8"), Attrs([Attr("address","0x5A8"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(16,64)))]), Jmps([Call(Tid(1_213, "%000004bd"), - Attrs([Attr("address","0x5AC"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), Sub(Tid(1_331, "@_start"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x640"), -Attr("entry-point","()")]), "_start", Args([Arg(Tid(1_383, "%00000567"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("_start_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(392, "@_start"), - Attrs([Attr("address","0x640")]), Phis([]), Defs([Def(Tid(397, "%0000018d"), - Attrs([Attr("address","0x644"), Attr("insn","mov x29, #0x0")]), - Var("R29",Imm(64)), Int(0,64)), Def(Tid(402, "%00000192"), - Attrs([Attr("address","0x648"), Attr("insn","mov x30, #0x0")]), - Var("R30",Imm(64)), Int(0,64)), Def(Tid(408, "%00000198"), - Attrs([Attr("address","0x64C"), Attr("insn","mov x5, x0")]), - Var("R5",Imm(64)), Var("R0",Imm(64))), Def(Tid(415, "%0000019f"), - Attrs([Attr("address","0x650"), Attr("insn","ldr x1, [sp]")]), - Var("R1",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(421, "%000001a5"), Attrs([Attr("address","0x654"), -Attr("insn","add x2, sp, #0x8")]), Var("R2",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(8,64))), Def(Tid(427, "%000001ab"), - Attrs([Attr("address","0x658"), Attr("insn","mov x6, sp")]), - Var("R6",Imm(64)), Var("R31",Imm(64))), Def(Tid(432, "%000001b0"), - Attrs([Attr("address","0x65C"), Attr("insn","adrp x0, #65536")]), - Var("R0",Imm(64)), Int(65536,64)), Def(Tid(439, "%000001b7"), - Attrs([Attr("address","0x660"), Attr("insn","ldr x0, [x0, #0xfd0]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(4048,64)),LittleEndian(),64)), -Def(Tid(444, "%000001bc"), Attrs([Attr("address","0x664"), -Attr("insn","mov x3, #0x0")]), Var("R3",Imm(64)), Int(0,64)), -Def(Tid(449, "%000001c1"), Attrs([Attr("address","0x668"), -Attr("insn","mov x4, #0x0")]), Var("R4",Imm(64)), Int(0,64)), -Def(Tid(454, "%000001c6"), Attrs([Attr("address","0x66C"), -Attr("insn","bl #-0x9c")]), Var("R30",Imm(64)), Int(1648,64))]), -Jmps([Call(Tid(457, "%000001c9"), Attrs([Attr("address","0x66C"), -Attr("insn","bl #-0x9c")]), Int(1,1), -(Direct(Tid(1_328, "@__libc_start_main")),Direct(Tid(459, "%000001cb"))))])), -Blk(Tid(459, "%000001cb"), Attrs([Attr("address","0x670")]), Phis([]), -Defs([Def(Tid(462, "%000001ce"), Attrs([Attr("address","0x670"), -Attr("insn","bl #-0x70")]), Var("R30",Imm(64)), Int(1652,64))]), -Jmps([Call(Tid(465, "%000001d1"), Attrs([Attr("address","0x670"), -Attr("insn","bl #-0x70")]), Int(1,1), -(Direct(Tid(1_334, "@abort")),Direct(Tid(1_366, "%00000556"))))])), -Blk(Tid(1_366, "%00000556"), Attrs([]), Phis([]), Defs([]), -Jmps([Call(Tid(1_367, "%00000557"), Attrs([]), Int(1,1), -(Direct(Tid(1_335, "@call_weak_fn")),))]))])), Sub(Tid(1_334, "@abort"), - Attrs([Attr("noreturn","()"), Attr("c.proto","void (*)(void)"), -Attr("address","0x600"), Attr("stub","()")]), "abort", Args([]), -Blks([Blk(Tid(463, "@abort"), Attrs([Attr("address","0x600")]), Phis([]), -Defs([Def(Tid(1_111, "%00000457"), Attrs([Attr("address","0x600"), -Attr("insn","adrp x16, #69632")]), Var("R16",Imm(64)), Int(69632,64)), -Def(Tid(1_118, "%0000045e"), Attrs([Attr("address","0x604"), -Attr("insn","ldr x17, [x16, #0x18]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(24,64)),LittleEndian(),64)), -Def(Tid(1_124, "%00000464"), Attrs([Attr("address","0x608"), -Attr("insn","add x16, x16, #0x18")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(24,64)))]), Jmps([Call(Tid(1_129, "%00000469"), - Attrs([Attr("address","0x60C"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), Sub(Tid(1_335, "@call_weak_fn"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x674")]), - "call_weak_fn", Args([Arg(Tid(1_384, "%00000568"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("call_weak_fn_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(467, "@call_weak_fn"), - Attrs([Attr("address","0x674")]), Phis([]), Defs([Def(Tid(470, "%000001d6"), - Attrs([Attr("address","0x674"), Attr("insn","adrp x0, #65536")]), - Var("R0",Imm(64)), Int(65536,64)), Def(Tid(477, "%000001dd"), - Attrs([Attr("address","0x678"), Attr("insn","ldr x0, [x0, #0xfc8]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(4040,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(483, "%000001e3"), Attrs([Attr("address","0x67C"), -Attr("insn","cbz x0, #0x8")]), EQ(Var("R0",Imm(64)),Int(0,64)), -Direct(Tid(481, "%000001e1"))), Goto(Tid(1_368, "%00000558"), Attrs([]), - Int(1,1), Direct(Tid(883, "%00000373")))])), Blk(Tid(481, "%000001e1"), - Attrs([Attr("address","0x684")]), Phis([]), Defs([]), -Jmps([Call(Tid(489, "%000001e9"), Attrs([Attr("address","0x684"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))])), -Blk(Tid(883, "%00000373"), Attrs([Attr("address","0x680")]), Phis([]), -Defs([]), Jmps([Goto(Tid(886, "%00000376"), Attrs([Attr("address","0x680"), -Attr("insn","b #-0x90")]), Int(1,1), Direct(Tid(884, "@__gmon_start__")))])), -Blk(Tid(884, "@__gmon_start__"), Attrs([Attr("address","0x5F0")]), Phis([]), -Defs([Def(Tid(1_089, "%00000441"), Attrs([Attr("address","0x5F0"), -Attr("insn","adrp x16, #69632")]), Var("R16",Imm(64)), Int(69632,64)), -Def(Tid(1_096, "%00000448"), Attrs([Attr("address","0x5F4"), -Attr("insn","ldr x17, [x16, #0x10]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(16,64)),LittleEndian(),64)), -Def(Tid(1_102, "%0000044e"), Attrs([Attr("address","0x5F8"), -Attr("insn","add x16, x16, #0x10")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(16,64)))]), Jmps([Call(Tid(1_107, "%00000453"), - Attrs([Attr("address","0x5FC"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), -Sub(Tid(1_337, "@deregister_tm_clones"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x690")]), - "deregister_tm_clones", Args([Arg(Tid(1_385, "%00000569"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("deregister_tm_clones_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(495, "@deregister_tm_clones"), - Attrs([Attr("address","0x690")]), Phis([]), Defs([Def(Tid(498, "%000001f2"), - Attrs([Attr("address","0x690"), Attr("insn","adrp x0, #69632")]), - Var("R0",Imm(64)), Int(69632,64)), Def(Tid(504, "%000001f8"), - Attrs([Attr("address","0x694"), Attr("insn","add x0, x0, #0x30")]), - Var("R0",Imm(64)), PLUS(Var("R0",Imm(64)),Int(48,64))), -Def(Tid(509, "%000001fd"), Attrs([Attr("address","0x698"), -Attr("insn","adrp x1, #69632")]), Var("R1",Imm(64)), Int(69632,64)), -Def(Tid(515, "%00000203"), Attrs([Attr("address","0x69C"), -Attr("insn","add x1, x1, #0x30")]), Var("R1",Imm(64)), -PLUS(Var("R1",Imm(64)),Int(48,64))), Def(Tid(521, "%00000209"), - Attrs([Attr("address","0x6A0"), Attr("insn","cmp x1, x0")]), - Var("#1",Imm(64)), NOT(Var("R0",Imm(64)))), Def(Tid(526, "%0000020e"), - Attrs([Attr("address","0x6A0"), Attr("insn","cmp x1, x0")]), - Var("#2",Imm(64)), PLUS(Var("R1",Imm(64)),NOT(Var("R0",Imm(64))))), -Def(Tid(532, "%00000214"), Attrs([Attr("address","0x6A0"), -Attr("insn","cmp x1, x0")]), Var("VF",Imm(1)), -NEQ(SIGNED(65,PLUS(Var("#2",Imm(64)),Int(1,64))),PLUS(PLUS(SIGNED(65,Var("R1",Imm(64))),SIGNED(65,Var("#1",Imm(64)))),Int(1,65)))), -Def(Tid(538, "%0000021a"), Attrs([Attr("address","0x6A0"), -Attr("insn","cmp x1, x0")]), Var("CF",Imm(1)), -NEQ(UNSIGNED(65,PLUS(Var("#2",Imm(64)),Int(1,64))),PLUS(PLUS(UNSIGNED(65,Var("R1",Imm(64))),UNSIGNED(65,Var("#1",Imm(64)))),Int(1,65)))), -Def(Tid(542, "%0000021e"), Attrs([Attr("address","0x6A0"), -Attr("insn","cmp x1, x0")]), Var("ZF",Imm(1)), -EQ(PLUS(Var("#2",Imm(64)),Int(1,64)),Int(0,64))), Def(Tid(546, "%00000222"), - Attrs([Attr("address","0x6A0"), Attr("insn","cmp x1, x0")]), - Var("NF",Imm(1)), Extract(63,63,PLUS(Var("#2",Imm(64)),Int(1,64))))]), -Jmps([Goto(Tid(552, "%00000228"), Attrs([Attr("address","0x6A4"), -Attr("insn","b.eq #0x18")]), EQ(Var("ZF",Imm(1)),Int(1,1)), -Direct(Tid(550, "%00000226"))), Goto(Tid(1_369, "%00000559"), Attrs([]), - Int(1,1), Direct(Tid(853, "%00000355")))])), Blk(Tid(853, "%00000355"), - Attrs([Attr("address","0x6A8")]), Phis([]), Defs([Def(Tid(856, "%00000358"), - Attrs([Attr("address","0x6A8"), Attr("insn","adrp x1, #65536")]), - Var("R1",Imm(64)), Int(65536,64)), Def(Tid(863, "%0000035f"), - Attrs([Attr("address","0x6AC"), Attr("insn","ldr x1, [x1, #0xfb8]")]), - Var("R1",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R1",Imm(64)),Int(4024,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(868, "%00000364"), Attrs([Attr("address","0x6B0"), -Attr("insn","cbz x1, #0xc")]), EQ(Var("R1",Imm(64)),Int(0,64)), -Direct(Tid(550, "%00000226"))), Goto(Tid(1_370, "%0000055a"), Attrs([]), - Int(1,1), Direct(Tid(872, "%00000368")))])), Blk(Tid(550, "%00000226"), - Attrs([Attr("address","0x6BC")]), Phis([]), Defs([]), -Jmps([Call(Tid(558, "%0000022e"), Attrs([Attr("address","0x6BC"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))])), -Blk(Tid(872, "%00000368"), Attrs([Attr("address","0x6B4")]), Phis([]), -Defs([Def(Tid(876, "%0000036c"), Attrs([Attr("address","0x6B4"), -Attr("insn","mov x16, x1")]), Var("R16",Imm(64)), Var("R1",Imm(64)))]), -Jmps([Call(Tid(881, "%00000371"), Attrs([Attr("address","0x6B8"), -Attr("insn","br x16")]), Int(1,1), (Indirect(Var("R16",Imm(64))),))]))])), -Sub(Tid(1_340, "@frame_dummy"), Attrs([Attr("c.proto","signed (*)(void)"), -Attr("address","0x750")]), "frame_dummy", Args([Arg(Tid(1_386, "%0000056a"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("frame_dummy_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(710, "@frame_dummy"), - Attrs([Attr("address","0x750")]), Phis([]), Defs([]), -Jmps([Call(Tid(712, "%000002c8"), Attrs([Attr("address","0x750"), -Attr("insn","b #-0x90")]), Int(1,1), -(Direct(Tid(1_342, "@register_tm_clones")),))]))])), Sub(Tid(1_341, "@main"), - Attrs([Attr("c.proto","signed (*)(signed argc, const char** argv)"), -Attr("address","0x754")]), "main", Args([Arg(Tid(1_387, "%0000056b"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("main_argc",Imm(32)), -LOW(32,Var("R0",Imm(64))), In()), Arg(Tid(1_388, "%0000056c"), - Attrs([Attr("c.layout","**[char : 8]"), Attr("c.data","Top:u8 ptr ptr"), -Attr("c.type"," const char**")]), Var("main_argv",Imm(64)), -Var("R1",Imm(64)), Both()), Arg(Tid(1_389, "%0000056d"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("main_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(714, "@main"), - Attrs([Attr("address","0x754")]), Phis([]), Defs([Def(Tid(718, "%000002ce"), - Attrs([Attr("address","0x754"), Attr("insn","sub sp, sp, #0x10")]), - Var("R31",Imm(64)), PLUS(Var("R31",Imm(64)),Int(18446744073709551600,64))), -Def(Tid(725, "%000002d5"), Attrs([Attr("address","0x758"), -Attr("insn","str wzr, [sp, #0xc]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(12,64)),Int(0,32),LittleEndian(),32)), -Def(Tid(730, "%000002da"), Attrs([Attr("address","0x75C"), -Attr("insn","adrp x8, #65536")]), Var("R8",Imm(64)), Int(65536,64)), -Def(Tid(737, "%000002e1"), Attrs([Attr("address","0x760"), -Attr("insn","ldr x8, [x8, #0xfd8]")]), Var("R8",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R8",Imm(64)),Int(4056,64)),LittleEndian(),64)), -Def(Tid(744, "%000002e8"), Attrs([Attr("address","0x764"), -Attr("insn","str wzr, [x8]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("R8",Imm(64)),Int(0,32),LittleEndian(),32)), -Def(Tid(751, "%000002ef"), Attrs([Attr("address","0x768"), -Attr("insn","ldr w0, [x8]")]), Var("R0",Imm(64)), -UNSIGNED(64,Load(Var("mem",Mem(64,8)),Var("R8",Imm(64)),LittleEndian(),32))), -Def(Tid(757, "%000002f5"), Attrs([Attr("address","0x76C"), -Attr("insn","add sp, sp, #0x10")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(16,64)))]), Jmps([Call(Tid(762, "%000002fa"), - Attrs([Attr("address","0x770"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), -Sub(Tid(1_342, "@register_tm_clones"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x6C0")]), - "register_tm_clones", Args([Arg(Tid(1_390, "%0000056e"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("register_tm_clones_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(560, "@register_tm_clones"), Attrs([Attr("address","0x6C0")]), - Phis([]), Defs([Def(Tid(563, "%00000233"), Attrs([Attr("address","0x6C0"), -Attr("insn","adrp x0, #69632")]), Var("R0",Imm(64)), Int(69632,64)), -Def(Tid(569, "%00000239"), Attrs([Attr("address","0x6C4"), -Attr("insn","add x0, x0, #0x30")]), Var("R0",Imm(64)), -PLUS(Var("R0",Imm(64)),Int(48,64))), Def(Tid(574, "%0000023e"), - Attrs([Attr("address","0x6C8"), Attr("insn","adrp x1, #69632")]), - Var("R1",Imm(64)), Int(69632,64)), Def(Tid(580, "%00000244"), - Attrs([Attr("address","0x6CC"), Attr("insn","add x1, x1, #0x30")]), - Var("R1",Imm(64)), PLUS(Var("R1",Imm(64)),Int(48,64))), -Def(Tid(587, "%0000024b"), Attrs([Attr("address","0x6D0"), -Attr("insn","sub x1, x1, x0")]), Var("R1",Imm(64)), -PLUS(PLUS(Var("R1",Imm(64)),NOT(Var("R0",Imm(64)))),Int(1,64))), -Def(Tid(593, "%00000251"), Attrs([Attr("address","0x6D4"), -Attr("insn","lsr x2, x1, #63")]), Var("R2",Imm(64)), -Concat(Int(0,63),Extract(63,63,Var("R1",Imm(64))))), -Def(Tid(600, "%00000258"), Attrs([Attr("address","0x6D8"), -Attr("insn","add x1, x2, x1, asr #3")]), Var("R1",Imm(64)), -PLUS(Var("R2",Imm(64)),ARSHIFT(Var("R1",Imm(64)),Int(3,3)))), -Def(Tid(606, "%0000025e"), Attrs([Attr("address","0x6DC"), -Attr("insn","asr x1, x1, #1")]), Var("R1",Imm(64)), -SIGNED(64,Extract(63,1,Var("R1",Imm(64)))))]), -Jmps([Goto(Tid(612, "%00000264"), Attrs([Attr("address","0x6E0"), -Attr("insn","cbz x1, #0x18")]), EQ(Var("R1",Imm(64)),Int(0,64)), -Direct(Tid(610, "%00000262"))), Goto(Tid(1_371, "%0000055b"), Attrs([]), - Int(1,1), Direct(Tid(823, "%00000337")))])), Blk(Tid(823, "%00000337"), - Attrs([Attr("address","0x6E4")]), Phis([]), Defs([Def(Tid(826, "%0000033a"), - Attrs([Attr("address","0x6E4"), Attr("insn","adrp x2, #65536")]), - Var("R2",Imm(64)), Int(65536,64)), Def(Tid(833, "%00000341"), - Attrs([Attr("address","0x6E8"), Attr("insn","ldr x2, [x2, #0xfe0]")]), - Var("R2",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R2",Imm(64)),Int(4064,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(838, "%00000346"), Attrs([Attr("address","0x6EC"), -Attr("insn","cbz x2, #0xc")]), EQ(Var("R2",Imm(64)),Int(0,64)), -Direct(Tid(610, "%00000262"))), Goto(Tid(1_372, "%0000055c"), Attrs([]), - Int(1,1), Direct(Tid(842, "%0000034a")))])), Blk(Tid(610, "%00000262"), - Attrs([Attr("address","0x6F8")]), Phis([]), Defs([]), -Jmps([Call(Tid(618, "%0000026a"), Attrs([Attr("address","0x6F8"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))])), -Blk(Tid(842, "%0000034a"), Attrs([Attr("address","0x6F0")]), Phis([]), -Defs([Def(Tid(846, "%0000034e"), Attrs([Attr("address","0x6F0"), -Attr("insn","mov x16, x2")]), Var("R16",Imm(64)), Var("R2",Imm(64)))]), -Jmps([Call(Tid(851, "%00000353"), Attrs([Attr("address","0x6F4"), -Attr("insn","br x16")]), Int(1,1), -(Indirect(Var("R16",Imm(64))),))]))]))]))) \ No newline at end of file diff --git a/src/test/correct/basic_arrays_read/clang_pic/basic_arrays_read.bir b/src/test/correct/basic_arrays_read/clang_pic/basic_arrays_read.bir deleted file mode 100644 index b9d374407..000000000 --- a/src/test/correct/basic_arrays_read/clang_pic/basic_arrays_read.bir +++ /dev/null @@ -1,230 +0,0 @@ -0000055d: program -0000052b: sub __cxa_finalize(__cxa_finalize_result) -0000055e: __cxa_finalize_result :: out u32 = low:32[R0] - -00000333: -0000042b: R16 := 0x11000 -00000432: R17 := mem[R16 + 8, el]:u64 -00000438: R16 := R16 + 8 -0000043d: call R17 with noreturn - -0000052c: sub __do_global_dtors_aux(__do_global_dtors_aux_result) -0000055f: __do_global_dtors_aux_result :: out u32 = low:32[R0] - -0000026e: -00000272: #3 := R31 - 0x20 -00000278: mem := mem with [#3, el]:u64 <- R29 -0000027e: mem := mem with [#3 + 8, el]:u64 <- R30 -00000282: R31 := #3 -00000288: R29 := R31 -00000290: mem := mem with [R31 + 0x10, el]:u64 <- R19 -00000295: R19 := 0x11000 -0000029c: R0 := pad:64[mem[R19 + 0x30]] -000002a3: when 31:0[R0] <> 0 goto %000002a1 -00000553: goto %000002fc - -000002fc: -000002ff: R0 := 0x10000 -00000306: R0 := mem[R0 + 0xFC0, el]:u64 -0000030c: when R0 = 0 goto %0000030a -00000554: goto %00000323 - -00000323: -00000326: R0 := 0x11000 -0000032d: R0 := mem[R0 + 0x28, el]:u64 -00000332: R30 := 0x730 -00000335: call @__cxa_finalize with return %0000030a - -0000030a: -00000312: R30 := 0x734 -00000314: call @deregister_tm_clones with return %00000316 - -00000316: -00000319: R0 := 1 -00000321: mem := mem with [R19 + 0x30] <- 7:0[R0] -00000555: goto %000002a1 - -000002a1: -000002ab: R19 := mem[R31 + 0x10, el]:u64 -000002b2: R29 := mem[R31, el]:u64 -000002b7: R30 := mem[R31 + 8, el]:u64 -000002bb: R31 := R31 + 0x20 -000002c0: call R30 with noreturn - -00000530: sub __libc_start_main(__libc_start_main_main, __libc_start_main_arg2, __libc_start_main_arg3, __libc_start_main_auxv, __libc_start_main_result) -00000560: __libc_start_main_main :: in u64 = R0 -00000561: __libc_start_main_arg2 :: in u32 = low:32[R1] -00000562: __libc_start_main_arg3 :: in out u64 = R2 -00000563: __libc_start_main_auxv :: in out u64 = R3 -00000564: __libc_start_main_result :: out u32 = low:32[R0] - -000001c7: -00000415: R16 := 0x11000 -0000041c: R17 := mem[R16, el]:u64 -00000422: R16 := R16 -00000427: call R17 with noreturn - -00000531: sub _fini(_fini_result) -00000565: _fini_result :: out u32 = low:32[R0] - -0000001f: -00000025: #0 := R31 - 0x10 -0000002b: mem := mem with [#0, el]:u64 <- R29 -00000031: mem := mem with [#0 + 8, el]:u64 <- R30 -00000035: R31 := #0 -0000003b: R29 := R31 -00000042: R29 := mem[R31, el]:u64 -00000047: R30 := mem[R31 + 8, el]:u64 -0000004b: R31 := R31 + 0x10 -00000050: call R30 with noreturn - -00000532: sub _init(_init_result) -00000566: _init_result :: out u32 = low:32[R0] - -00000485: -0000048b: #5 := R31 - 0x10 -00000491: mem := mem with [#5, el]:u64 <- R29 -00000497: mem := mem with [#5 + 8, el]:u64 <- R30 -0000049b: R31 := #5 -000004a1: R29 := R31 -000004a6: R30 := 0x5A8 -000004a8: call @call_weak_fn with return %000004aa - -000004aa: -000004af: R29 := mem[R31, el]:u64 -000004b4: R30 := mem[R31 + 8, el]:u64 -000004b8: R31 := R31 + 0x10 -000004bd: call R30 with noreturn - -00000533: sub _start(_start_result) -00000567: _start_result :: out u32 = low:32[R0] - -00000188: -0000018d: R29 := 0 -00000192: R30 := 0 -00000198: R5 := R0 -0000019f: R1 := mem[R31, el]:u64 -000001a5: R2 := R31 + 8 -000001ab: R6 := R31 -000001b0: R0 := 0x10000 -000001b7: R0 := mem[R0 + 0xFD0, el]:u64 -000001bc: R3 := 0 -000001c1: R4 := 0 -000001c6: R30 := 0x670 -000001c9: call @__libc_start_main with return %000001cb - -000001cb: -000001ce: R30 := 0x674 -000001d1: call @abort with return %00000556 - -00000556: -00000557: call @call_weak_fn with noreturn - -00000536: sub abort() - - -000001cf: -00000457: R16 := 0x11000 -0000045e: R17 := mem[R16 + 0x18, el]:u64 -00000464: R16 := R16 + 0x18 -00000469: call R17 with noreturn - -00000537: sub call_weak_fn(call_weak_fn_result) -00000568: call_weak_fn_result :: out u32 = low:32[R0] - -000001d3: -000001d6: R0 := 0x10000 -000001dd: R0 := mem[R0 + 0xFC8, el]:u64 -000001e3: when R0 = 0 goto %000001e1 -00000558: goto %00000373 - -000001e1: -000001e9: call R30 with noreturn - -00000373: -00000376: goto @__gmon_start__ - -00000374: -00000441: R16 := 0x11000 -00000448: R17 := mem[R16 + 0x10, el]:u64 -0000044e: R16 := R16 + 0x10 -00000453: call R17 with noreturn - -00000539: sub deregister_tm_clones(deregister_tm_clones_result) -00000569: deregister_tm_clones_result :: out u32 = low:32[R0] - -000001ef: -000001f2: R0 := 0x11000 -000001f8: R0 := R0 + 0x30 -000001fd: R1 := 0x11000 -00000203: R1 := R1 + 0x30 -00000209: #1 := ~R0 -0000020e: #2 := R1 + ~R0 -00000214: VF := extend:65[#2 + 1] <> extend:65[R1] + extend:65[#1] + 1 -0000021a: CF := pad:65[#2 + 1] <> pad:65[R1] + pad:65[#1] + 1 -0000021e: ZF := #2 + 1 = 0 -00000222: NF := 63:63[#2 + 1] -00000228: when ZF goto %00000226 -00000559: goto %00000355 - -00000355: -00000358: R1 := 0x10000 -0000035f: R1 := mem[R1 + 0xFB8, el]:u64 -00000364: when R1 = 0 goto %00000226 -0000055a: goto %00000368 - -00000226: -0000022e: call R30 with noreturn - -00000368: -0000036c: R16 := R1 -00000371: call R16 with noreturn - -0000053c: sub frame_dummy(frame_dummy_result) -0000056a: frame_dummy_result :: out u32 = low:32[R0] - -000002c6: -000002c8: call @register_tm_clones with noreturn - -0000053d: sub main(main_argc, main_argv, main_result) -0000056b: main_argc :: in u32 = low:32[R0] -0000056c: main_argv :: in out u64 = R1 -0000056d: main_result :: out u32 = low:32[R0] - -000002ca: -000002ce: R31 := R31 - 0x10 -000002d5: mem := mem with [R31 + 0xC, el]:u32 <- 0 -000002da: R8 := 0x10000 -000002e1: R8 := mem[R8 + 0xFD8, el]:u64 -000002e8: mem := mem with [R8, el]:u32 <- 0 -000002ef: R0 := pad:64[mem[R8, el]:u32] -000002f5: R31 := R31 + 0x10 -000002fa: call R30 with noreturn - -0000053e: sub register_tm_clones(register_tm_clones_result) -0000056e: register_tm_clones_result :: out u32 = low:32[R0] - -00000230: -00000233: R0 := 0x11000 -00000239: R0 := R0 + 0x30 -0000023e: R1 := 0x11000 -00000244: R1 := R1 + 0x30 -0000024b: R1 := R1 + ~R0 + 1 -00000251: R2 := 0.63:63[R1] -00000258: R1 := R2 + (R1 ~>> 3) -0000025e: R1 := extend:64[63:1[R1]] -00000264: when R1 = 0 goto %00000262 -0000055b: goto %00000337 - -00000337: -0000033a: R2 := 0x10000 -00000341: R2 := mem[R2 + 0xFE0, el]:u64 -00000346: when R2 = 0 goto %00000262 -0000055c: goto %0000034a - -00000262: -0000026a: call R30 with noreturn - -0000034a: -0000034e: R16 := R2 -00000353: call R16 with noreturn diff --git a/src/test/correct/basic_arrays_read/clang_pic/basic_arrays_read.expected b/src/test/correct/basic_arrays_read/clang_pic/basic_arrays_read.expected index c78b3f266..c94155061 100644 --- a/src/test/correct/basic_arrays_read/clang_pic/basic_arrays_read.expected +++ b/src/test/correct/basic_arrays_read/clang_pic/basic_arrays_read.expected @@ -1,24 +1,16 @@ var {:extern} Gamma_R0: bool; -var {:extern} Gamma_R31: bool; var {:extern} Gamma_R8: bool; var {:extern} Gamma_mem: [bv64]bool; -var {:extern} Gamma_stack: [bv64]bool; var {:extern} R0: bv64; -var {:extern} R31: bv64; var {:extern} R8: bv64; var {:extern} mem: [bv64]bv8; -var {:extern} stack: [bv64]bv8; const {:extern} $arr_addr: bv64; -axiom ($arr_addr == 69684bv64); +axiom ($arr_addr == 131092bv64); function {:extern} L(mem$in: [bv64]bv8, index: bv64) returns (bool) { (if ((index == bvadd64($arr_addr, 4bv64)) || (index == bvadd64($arr_addr, 0bv64))) then false else false) } function {:extern} {:bvbuiltin "bvadd"} bvadd64(bv64, bv64) returns (bv64); -function {:extern} gamma_load32(gammaMap: [bv64]bool, index: bv64) returns (bool) { - (gammaMap[bvadd64(index, 3bv64)] && (gammaMap[bvadd64(index, 2bv64)] && (gammaMap[bvadd64(index, 1bv64)] && gammaMap[index]))) -} - function {:extern} gamma_load64(gammaMap: [bv64]bool, index: bv64) returns (bool) { (gammaMap[bvadd64(index, 7bv64)] && (gammaMap[bvadd64(index, 6bv64)] && (gammaMap[bvadd64(index, 5bv64)] && (gammaMap[bvadd64(index, 4bv64)] && (gammaMap[bvadd64(index, 3bv64)] && (gammaMap[bvadd64(index, 2bv64)] && (gammaMap[bvadd64(index, 1bv64)] && gammaMap[index]))))))) } @@ -39,17 +31,16 @@ function {:extern} memory_store32_le(memory: [bv64]bv8, index: bv64, value: bv32 memory[index := value[8:0]][bvadd64(index, 1bv64) := value[16:8]][bvadd64(index, 2bv64) := value[24:16]][bvadd64(index, 3bv64) := value[32:24]] } -function {:extern} {:bvbuiltin "zero_extend 32"} zero_extend32_32(bv32) returns (bv64); procedure {:extern} rely(); modifies Gamma_mem, mem; ensures (forall i: bv64 :: (((mem[i] == old(mem[i])) ==> (Gamma_mem[i] == old(Gamma_mem[i]))))); ensures (old(memory_load32_le(mem, bvadd64($arr_addr, 0bv64))) == memory_load32_le(mem, bvadd64($arr_addr, 0bv64))); - free ensures (memory_load32_le(mem, 1928bv64) == 131073bv32); - free ensures (memory_load64_le(mem, 69056bv64) == 1872bv64); - free ensures (memory_load64_le(mem, 69064bv64) == 1792bv64); - free ensures (memory_load64_le(mem, 69584bv64) == 1876bv64); - free ensures (memory_load64_le(mem, 69592bv64) == 69684bv64); - free ensures (memory_load64_le(mem, 69672bv64) == 69672bv64); + free ensures (memory_load32_le(mem, 2300bv64) == 131073bv32); + free ensures (memory_load64_le(mem, 130432bv64) == 2256bv64); + free ensures (memory_load64_le(mem, 130440bv64) == 2176bv64); + free ensures (memory_load64_le(mem, 131048bv64) == 2260bv64); + free ensures (memory_load64_le(mem, 131056bv64) == 131092bv64); + free ensures (memory_load64_le(mem, 131080bv64) == 131080bv64); procedure {:extern} rely_transitive(); modifies Gamma_mem, mem; @@ -76,51 +67,41 @@ implementation {:extern} guarantee_reflexive() assert true; } -procedure main_1876(); - modifies Gamma_R0, Gamma_R31, Gamma_R8, Gamma_mem, Gamma_stack, R0, R31, R8, mem, stack; - free requires (memory_load64_le(mem, 69664bv64) == 0bv64); - free requires (memory_load64_le(mem, 69672bv64) == 69672bv64); - free requires (memory_load32_le(mem, 1928bv64) == 131073bv32); - free requires (memory_load64_le(mem, 69056bv64) == 1872bv64); - free requires (memory_load64_le(mem, 69064bv64) == 1792bv64); - free requires (memory_load64_le(mem, 69584bv64) == 1876bv64); - free requires (memory_load64_le(mem, 69592bv64) == 69684bv64); - free requires (memory_load64_le(mem, 69672bv64) == 69672bv64); - free ensures (Gamma_R31 == old(Gamma_R31)); - free ensures (R31 == old(R31)); - free ensures (memory_load32_le(mem, 1928bv64) == 131073bv32); - free ensures (memory_load64_le(mem, 69056bv64) == 1872bv64); - free ensures (memory_load64_le(mem, 69064bv64) == 1792bv64); - free ensures (memory_load64_le(mem, 69584bv64) == 1876bv64); - free ensures (memory_load64_le(mem, 69592bv64) == 69684bv64); - free ensures (memory_load64_le(mem, 69672bv64) == 69672bv64); - -implementation main_1876() +procedure main(); + modifies Gamma_R0, Gamma_R8, Gamma_mem, R0, R8, mem; + free requires (memory_load64_le(mem, 131072bv64) == 0bv64); + free requires (memory_load64_le(mem, 131080bv64) == 131080bv64); + free requires (memory_load32_le(mem, 2300bv64) == 131073bv32); + free requires (memory_load64_le(mem, 130432bv64) == 2256bv64); + free requires (memory_load64_le(mem, 130440bv64) == 2176bv64); + free requires (memory_load64_le(mem, 131048bv64) == 2260bv64); + free requires (memory_load64_le(mem, 131056bv64) == 131092bv64); + free requires (memory_load64_le(mem, 131080bv64) == 131080bv64); + free ensures (memory_load32_le(mem, 2300bv64) == 131073bv32); + free ensures (memory_load64_le(mem, 130432bv64) == 2256bv64); + free ensures (memory_load64_le(mem, 130440bv64) == 2176bv64); + free ensures (memory_load64_le(mem, 131048bv64) == 2260bv64); + free ensures (memory_load64_le(mem, 131056bv64) == 131092bv64); + free ensures (memory_load64_le(mem, 131080bv64) == 131080bv64); + +implementation main() { - var Gamma_load18: bool; - var Gamma_load19: bool; - var load18: bv64; - var load19: bv32; + var $load$18: bv64; + var Gamma_$load$18: bool; lmain: assume {:captureState "lmain"} true; - R31, Gamma_R31 := bvadd64(R31, 18446744073709551600bv64), Gamma_R31; - stack, Gamma_stack := memory_store32_le(stack, bvadd64(R31, 12bv64), 0bv32), gamma_store32(Gamma_stack, bvadd64(R31, 12bv64), true); - assume {:captureState "%000002d5"} true; - R8, Gamma_R8 := 65536bv64, true; + R8, Gamma_R8 := 126976bv64, true; + R0, Gamma_R0 := 0bv64, true; call rely(); - load18, Gamma_load18 := memory_load64_le(mem, bvadd64(R8, 4056bv64)), (gamma_load64(Gamma_mem, bvadd64(R8, 4056bv64)) || L(mem, bvadd64(R8, 4056bv64))); - R8, Gamma_R8 := load18, Gamma_load18; + $load$18, Gamma_$load$18 := memory_load64_le(mem, bvadd64(R8, 4080bv64)), (gamma_load64(Gamma_mem, bvadd64(R8, 4080bv64)) || L(mem, bvadd64(R8, 4080bv64))); + R8, Gamma_R8 := $load$18, Gamma_$load$18; call rely(); assert (L(mem, R8) ==> true); mem, Gamma_mem := memory_store32_le(mem, R8, 0bv32), gamma_store32(Gamma_mem, R8, true); - assume {:captureState "%000002e8"} true; - call rely(); - load19, Gamma_load19 := memory_load32_le(mem, R8), (gamma_load32(Gamma_mem, R8) || L(mem, R8)); - R0, Gamma_R0 := zero_extend32_32(load19), Gamma_load19; - R31, Gamma_R31 := bvadd64(R31, 16bv64), Gamma_R31; - goto main_1876_basil_return; - main_1876_basil_return: - assume {:captureState "main_1876_basil_return"} true; + assume {:captureState "%00000288"} true; + goto main_basil_return; + main_basil_return: + assume {:captureState "main_basil_return"} true; return; } diff --git a/src/test/correct/basic_arrays_read/clang_pic/basic_arrays_read.gts b/src/test/correct/basic_arrays_read/clang_pic/basic_arrays_read.gts deleted file mode 100644 index a5a3f5869..000000000 Binary files a/src/test/correct/basic_arrays_read/clang_pic/basic_arrays_read.gts and /dev/null differ diff --git a/src/test/correct/basic_arrays_read/clang_pic/basic_arrays_read.md5sum b/src/test/correct/basic_arrays_read/clang_pic/basic_arrays_read.md5sum new file mode 100644 index 000000000..2a321c193 --- /dev/null +++ b/src/test/correct/basic_arrays_read/clang_pic/basic_arrays_read.md5sum @@ -0,0 +1,5 @@ +7393484719dd5993060ec1a00b2f3c1d correct/basic_arrays_read/clang_pic/a.out +f3669f9128227dbbdb547143c6039a3f correct/basic_arrays_read/clang_pic/basic_arrays_read.adt +595dbddd37b0754b7d163e24347d459a correct/basic_arrays_read/clang_pic/basic_arrays_read.bir +65fcf0be602ffe2c008321d0e53dfced correct/basic_arrays_read/clang_pic/basic_arrays_read.relf +cf79c3ae4dd8f61c7e1fca01d7fe43f6 correct/basic_arrays_read/clang_pic/basic_arrays_read.gts diff --git a/src/test/correct/basic_arrays_read/clang_pic/basic_arrays_read.relf b/src/test/correct/basic_arrays_read/clang_pic/basic_arrays_read.relf deleted file mode 100644 index 42fe89af1..000000000 --- a/src/test/correct/basic_arrays_read/clang_pic/basic_arrays_read.relf +++ /dev/null @@ -1,124 +0,0 @@ - -Relocation section '.rela.dyn' at offset 0x460 contains 9 entries: - Offset Info Type Symbol's Value Symbol's Name + Addend -0000000000010dc0 0000000000000403 R_AARCH64_RELATIVE 750 -0000000000010dc8 0000000000000403 R_AARCH64_RELATIVE 700 -0000000000010fd0 0000000000000403 R_AARCH64_RELATIVE 754 -0000000000010fd8 0000000000000403 R_AARCH64_RELATIVE 11034 -0000000000011028 0000000000000403 R_AARCH64_RELATIVE 11028 -0000000000010fb8 0000000400000401 R_AARCH64_GLOB_DAT 0000000000000000 _ITM_deregisterTMCloneTable + 0 -0000000000010fc0 0000000500000401 R_AARCH64_GLOB_DAT 0000000000000000 __cxa_finalize@GLIBC_2.17 + 0 -0000000000010fc8 0000000600000401 R_AARCH64_GLOB_DAT 0000000000000000 __gmon_start__ + 0 -0000000000010fe0 0000000800000401 R_AARCH64_GLOB_DAT 0000000000000000 _ITM_registerTMCloneTable + 0 - -Relocation section '.rela.plt' at offset 0x538 contains 4 entries: - Offset Info Type Symbol's Value Symbol's Name + Addend -0000000000011000 0000000300000402 R_AARCH64_JUMP_SLOT 0000000000000000 __libc_start_main@GLIBC_2.34 + 0 -0000000000011008 0000000500000402 R_AARCH64_JUMP_SLOT 0000000000000000 __cxa_finalize@GLIBC_2.17 + 0 -0000000000011010 0000000600000402 R_AARCH64_JUMP_SLOT 0000000000000000 __gmon_start__ + 0 -0000000000011018 0000000700000402 R_AARCH64_JUMP_SLOT 0000000000000000 abort@GLIBC_2.17 + 0 - -Symbol table '.dynsym' contains 9 entries: - Num: Value Size Type Bind Vis Ndx Name - 0: 0000000000000000 0 NOTYPE LOCAL DEFAULT UND - 1: 0000000000000598 0 SECTION LOCAL DEFAULT 11 .init - 2: 0000000000011020 0 SECTION LOCAL DEFAULT 23 .data - 3: 0000000000000000 0 FUNC GLOBAL DEFAULT UND __libc_start_main@GLIBC_2.34 (2) - 4: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_deregisterTMCloneTable - 5: 0000000000000000 0 FUNC WEAK DEFAULT UND __cxa_finalize@GLIBC_2.17 (3) - 6: 0000000000000000 0 NOTYPE WEAK DEFAULT UND __gmon_start__ - 7: 0000000000000000 0 FUNC GLOBAL DEFAULT UND abort@GLIBC_2.17 (3) - 8: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_registerTMCloneTable - -Symbol table '.symtab' contains 90 entries: - Num: Value Size Type Bind Vis Ndx Name - 0: 0000000000000000 0 NOTYPE LOCAL DEFAULT UND - 1: 0000000000000238 0 SECTION LOCAL DEFAULT 1 .interp - 2: 0000000000000254 0 SECTION LOCAL DEFAULT 2 .note.gnu.build-id - 3: 0000000000000278 0 SECTION LOCAL DEFAULT 3 .note.ABI-tag - 4: 0000000000000298 0 SECTION LOCAL DEFAULT 4 .gnu.hash - 5: 00000000000002b8 0 SECTION LOCAL DEFAULT 5 .dynsym - 6: 0000000000000390 0 SECTION LOCAL DEFAULT 6 .dynstr - 7: 000000000000041e 0 SECTION LOCAL DEFAULT 7 .gnu.version - 8: 0000000000000430 0 SECTION LOCAL DEFAULT 8 .gnu.version_r - 9: 0000000000000460 0 SECTION LOCAL DEFAULT 9 .rela.dyn - 10: 0000000000000538 0 SECTION LOCAL DEFAULT 10 .rela.plt - 11: 0000000000000598 0 SECTION LOCAL DEFAULT 11 .init - 12: 00000000000005b0 0 SECTION LOCAL DEFAULT 12 .plt - 13: 0000000000000640 0 SECTION LOCAL DEFAULT 13 .text - 14: 0000000000000774 0 SECTION LOCAL DEFAULT 14 .fini - 15: 0000000000000788 0 SECTION LOCAL DEFAULT 15 .rodata - 16: 000000000000078c 0 SECTION LOCAL DEFAULT 16 .eh_frame_hdr - 17: 00000000000007c8 0 SECTION LOCAL DEFAULT 17 .eh_frame - 18: 0000000000010dc0 0 SECTION LOCAL DEFAULT 18 .init_array - 19: 0000000000010dc8 0 SECTION LOCAL DEFAULT 19 .fini_array - 20: 0000000000010dd0 0 SECTION LOCAL DEFAULT 20 .dynamic - 21: 0000000000010fb0 0 SECTION LOCAL DEFAULT 21 .got - 22: 0000000000010fe8 0 SECTION LOCAL DEFAULT 22 .got.plt - 23: 0000000000011020 0 SECTION LOCAL DEFAULT 23 .data - 24: 0000000000011030 0 SECTION LOCAL DEFAULT 24 .bss - 25: 0000000000000000 0 SECTION LOCAL DEFAULT 25 .comment - 26: 0000000000000000 0 FILE LOCAL DEFAULT ABS Scrt1.o - 27: 0000000000000278 0 NOTYPE LOCAL DEFAULT 3 $d - 28: 0000000000000278 32 OBJECT LOCAL DEFAULT 3 __abi_tag - 29: 0000000000000640 0 NOTYPE LOCAL DEFAULT 13 $x - 30: 00000000000007dc 0 NOTYPE LOCAL DEFAULT 17 $d - 31: 0000000000000788 0 NOTYPE LOCAL DEFAULT 15 $d - 32: 0000000000000000 0 FILE LOCAL DEFAULT ABS crti.o - 33: 0000000000000674 0 NOTYPE LOCAL DEFAULT 13 $x - 34: 0000000000000674 20 FUNC LOCAL DEFAULT 13 call_weak_fn - 35: 0000000000000598 0 NOTYPE LOCAL DEFAULT 11 $x - 36: 0000000000000774 0 NOTYPE LOCAL DEFAULT 14 $x - 37: 0000000000000000 0 FILE LOCAL DEFAULT ABS crtn.o - 38: 00000000000005a8 0 NOTYPE LOCAL DEFAULT 11 $x - 39: 0000000000000780 0 NOTYPE LOCAL DEFAULT 14 $x - 40: 0000000000000000 0 FILE LOCAL DEFAULT ABS crtstuff.c - 41: 0000000000000690 0 NOTYPE LOCAL DEFAULT 13 $x - 42: 0000000000000690 0 FUNC LOCAL DEFAULT 13 deregister_tm_clones - 43: 00000000000006c0 0 FUNC LOCAL DEFAULT 13 register_tm_clones - 44: 0000000000011028 0 NOTYPE LOCAL DEFAULT 23 $d - 45: 0000000000000700 0 FUNC LOCAL DEFAULT 13 __do_global_dtors_aux - 46: 0000000000011030 1 OBJECT LOCAL DEFAULT 24 completed.0 - 47: 0000000000010dc8 0 NOTYPE LOCAL DEFAULT 19 $d - 48: 0000000000010dc8 0 OBJECT LOCAL DEFAULT 19 __do_global_dtors_aux_fini_array_entry - 49: 0000000000000750 0 FUNC LOCAL DEFAULT 13 frame_dummy - 50: 0000000000010dc0 0 NOTYPE LOCAL DEFAULT 18 $d - 51: 0000000000010dc0 0 OBJECT LOCAL DEFAULT 18 __frame_dummy_init_array_entry - 52: 00000000000007f0 0 NOTYPE LOCAL DEFAULT 17 $d - 53: 0000000000011030 0 NOTYPE LOCAL DEFAULT 24 $d - 54: 0000000000000000 0 FILE LOCAL DEFAULT ABS basic_arrays_read.c - 55: 0000000000000754 0 NOTYPE LOCAL DEFAULT 13 $x.0 - 56: 0000000000011034 0 NOTYPE LOCAL DEFAULT 24 $d.1 - 57: 000000000000002a 0 NOTYPE LOCAL DEFAULT 25 $d.2 - 58: 0000000000000850 0 NOTYPE LOCAL DEFAULT 17 $d.3 - 59: 0000000000000000 0 FILE LOCAL DEFAULT ABS crtstuff.c - 60: 000000000000087c 0 NOTYPE LOCAL DEFAULT 17 $d - 61: 000000000000087c 0 OBJECT LOCAL DEFAULT 17 __FRAME_END__ - 62: 0000000000000000 0 FILE LOCAL DEFAULT ABS - 63: 0000000000010dd0 0 OBJECT LOCAL DEFAULT ABS _DYNAMIC - 64: 000000000000078c 0 NOTYPE LOCAL DEFAULT 16 __GNU_EH_FRAME_HDR - 65: 0000000000010fb0 0 OBJECT LOCAL DEFAULT ABS _GLOBAL_OFFSET_TABLE_ - 66: 00000000000005b0 0 NOTYPE LOCAL DEFAULT 12 $x - 67: 0000000000000000 0 FUNC GLOBAL DEFAULT UND __libc_start_main@GLIBC_2.34 - 68: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_deregisterTMCloneTable - 69: 0000000000011020 0 NOTYPE WEAK DEFAULT 23 data_start - 70: 0000000000011030 0 NOTYPE GLOBAL DEFAULT 24 __bss_start__ - 71: 0000000000000000 0 FUNC WEAK DEFAULT UND __cxa_finalize@GLIBC_2.17 - 72: 0000000000011040 0 NOTYPE GLOBAL DEFAULT 24 _bss_end__ - 73: 0000000000011030 0 NOTYPE GLOBAL DEFAULT 23 _edata - 74: 0000000000000774 0 FUNC GLOBAL HIDDEN 14 _fini - 75: 0000000000011040 0 NOTYPE GLOBAL DEFAULT 24 __bss_end__ - 76: 0000000000011020 0 NOTYPE GLOBAL DEFAULT 23 __data_start - 77: 0000000000000000 0 NOTYPE WEAK DEFAULT UND __gmon_start__ - 78: 0000000000011028 0 OBJECT GLOBAL HIDDEN 23 __dso_handle - 79: 0000000000000000 0 FUNC GLOBAL DEFAULT UND abort@GLIBC_2.17 - 80: 0000000000000788 4 OBJECT GLOBAL DEFAULT 15 _IO_stdin_used - 81: 0000000000011040 0 NOTYPE GLOBAL DEFAULT 24 _end - 82: 0000000000000640 52 FUNC GLOBAL DEFAULT 13 _start - 83: 0000000000011040 0 NOTYPE GLOBAL DEFAULT 24 __end__ - 84: 0000000000011030 0 NOTYPE GLOBAL DEFAULT 24 __bss_start - 85: 0000000000000754 32 FUNC GLOBAL DEFAULT 13 main - 86: 0000000000011034 8 OBJECT GLOBAL DEFAULT 24 arr - 87: 0000000000011030 0 OBJECT GLOBAL HIDDEN 23 __TMC_END__ - 88: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_registerTMCloneTable - 89: 0000000000000598 0 FUNC GLOBAL HIDDEN 11 _init diff --git a/src/test/correct/basic_arrays_read/clang_pic/basic_arrays_read_gtirb.expected b/src/test/correct/basic_arrays_read/clang_pic/basic_arrays_read_gtirb.expected index ba5926012..8f1fcb36b 100644 --- a/src/test/correct/basic_arrays_read/clang_pic/basic_arrays_read_gtirb.expected +++ b/src/test/correct/basic_arrays_read/clang_pic/basic_arrays_read_gtirb.expected @@ -1,24 +1,16 @@ var {:extern} Gamma_R0: bool; -var {:extern} Gamma_R31: bool; var {:extern} Gamma_R8: bool; var {:extern} Gamma_mem: [bv64]bool; -var {:extern} Gamma_stack: [bv64]bool; var {:extern} R0: bv64; -var {:extern} R31: bv64; var {:extern} R8: bv64; var {:extern} mem: [bv64]bv8; -var {:extern} stack: [bv64]bv8; const {:extern} $arr_addr: bv64; -axiom ($arr_addr == 69684bv64); +axiom ($arr_addr == 131092bv64); function {:extern} L(mem$in: [bv64]bv8, index: bv64) returns (bool) { (if ((index == bvadd64($arr_addr, 4bv64)) || (index == bvadd64($arr_addr, 0bv64))) then false else false) } function {:extern} {:bvbuiltin "bvadd"} bvadd64(bv64, bv64) returns (bv64); -function {:extern} gamma_load32(gammaMap: [bv64]bool, index: bv64) returns (bool) { - (gammaMap[bvadd64(index, 3bv64)] && (gammaMap[bvadd64(index, 2bv64)] && (gammaMap[bvadd64(index, 1bv64)] && gammaMap[index]))) -} - function {:extern} gamma_load64(gammaMap: [bv64]bool, index: bv64) returns (bool) { (gammaMap[bvadd64(index, 7bv64)] && (gammaMap[bvadd64(index, 6bv64)] && (gammaMap[bvadd64(index, 5bv64)] && (gammaMap[bvadd64(index, 4bv64)] && (gammaMap[bvadd64(index, 3bv64)] && (gammaMap[bvadd64(index, 2bv64)] && (gammaMap[bvadd64(index, 1bv64)] && gammaMap[index]))))))) } @@ -39,17 +31,16 @@ function {:extern} memory_store32_le(memory: [bv64]bv8, index: bv64, value: bv32 memory[index := value[8:0]][bvadd64(index, 1bv64) := value[16:8]][bvadd64(index, 2bv64) := value[24:16]][bvadd64(index, 3bv64) := value[32:24]] } -function {:extern} {:bvbuiltin "zero_extend 32"} zero_extend32_32(bv32) returns (bv64); procedure {:extern} rely(); modifies Gamma_mem, mem; ensures (forall i: bv64 :: (((mem[i] == old(mem[i])) ==> (Gamma_mem[i] == old(Gamma_mem[i]))))); ensures (old(memory_load32_le(mem, bvadd64($arr_addr, 0bv64))) == memory_load32_le(mem, bvadd64($arr_addr, 0bv64))); - free ensures (memory_load32_le(mem, 1928bv64) == 131073bv32); - free ensures (memory_load64_le(mem, 69056bv64) == 1872bv64); - free ensures (memory_load64_le(mem, 69064bv64) == 1792bv64); - free ensures (memory_load64_le(mem, 69584bv64) == 1876bv64); - free ensures (memory_load64_le(mem, 69592bv64) == 69684bv64); - free ensures (memory_load64_le(mem, 69672bv64) == 69672bv64); + free ensures (memory_load32_le(mem, 2300bv64) == 131073bv32); + free ensures (memory_load64_le(mem, 130432bv64) == 2256bv64); + free ensures (memory_load64_le(mem, 130440bv64) == 2176bv64); + free ensures (memory_load64_le(mem, 131048bv64) == 2260bv64); + free ensures (memory_load64_le(mem, 131056bv64) == 131092bv64); + free ensures (memory_load64_le(mem, 131080bv64) == 131080bv64); procedure {:extern} rely_transitive(); modifies Gamma_mem, mem; @@ -76,51 +67,41 @@ implementation {:extern} guarantee_reflexive() assert true; } -procedure main_1876(); - modifies Gamma_R0, Gamma_R31, Gamma_R8, Gamma_mem, Gamma_stack, R0, R31, R8, mem, stack; - free requires (memory_load64_le(mem, 69664bv64) == 0bv64); - free requires (memory_load64_le(mem, 69672bv64) == 69672bv64); - free requires (memory_load32_le(mem, 1928bv64) == 131073bv32); - free requires (memory_load64_le(mem, 69056bv64) == 1872bv64); - free requires (memory_load64_le(mem, 69064bv64) == 1792bv64); - free requires (memory_load64_le(mem, 69584bv64) == 1876bv64); - free requires (memory_load64_le(mem, 69592bv64) == 69684bv64); - free requires (memory_load64_le(mem, 69672bv64) == 69672bv64); - free ensures (Gamma_R31 == old(Gamma_R31)); - free ensures (R31 == old(R31)); - free ensures (memory_load32_le(mem, 1928bv64) == 131073bv32); - free ensures (memory_load64_le(mem, 69056bv64) == 1872bv64); - free ensures (memory_load64_le(mem, 69064bv64) == 1792bv64); - free ensures (memory_load64_le(mem, 69584bv64) == 1876bv64); - free ensures (memory_load64_le(mem, 69592bv64) == 69684bv64); - free ensures (memory_load64_le(mem, 69672bv64) == 69672bv64); - -implementation main_1876() +procedure main(); + modifies Gamma_R0, Gamma_R8, Gamma_mem, R0, R8, mem; + free requires (memory_load64_le(mem, 131072bv64) == 0bv64); + free requires (memory_load64_le(mem, 131080bv64) == 131080bv64); + free requires (memory_load32_le(mem, 2300bv64) == 131073bv32); + free requires (memory_load64_le(mem, 130432bv64) == 2256bv64); + free requires (memory_load64_le(mem, 130440bv64) == 2176bv64); + free requires (memory_load64_le(mem, 131048bv64) == 2260bv64); + free requires (memory_load64_le(mem, 131056bv64) == 131092bv64); + free requires (memory_load64_le(mem, 131080bv64) == 131080bv64); + free ensures (memory_load32_le(mem, 2300bv64) == 131073bv32); + free ensures (memory_load64_le(mem, 130432bv64) == 2256bv64); + free ensures (memory_load64_le(mem, 130440bv64) == 2176bv64); + free ensures (memory_load64_le(mem, 131048bv64) == 2260bv64); + free ensures (memory_load64_le(mem, 131056bv64) == 131092bv64); + free ensures (memory_load64_le(mem, 131080bv64) == 131080bv64); + +implementation main() { - var Gamma_load15: bool; - var Gamma_load16: bool; - var load15: bv64; - var load16: bv32; - main_1876__0__CGPwXKgfQxikvfXy7SP7PQ: - assume {:captureState "main_1876__0__CGPwXKgfQxikvfXy7SP7PQ"} true; - R31, Gamma_R31 := bvadd64(R31, 18446744073709551600bv64), Gamma_R31; - stack, Gamma_stack := memory_store32_le(stack, bvadd64(R31, 12bv64), 0bv32), gamma_store32(Gamma_stack, bvadd64(R31, 12bv64), true); - assume {:captureState "1880_0"} true; - R8, Gamma_R8 := 65536bv64, true; + var $load11: bv64; + var Gamma_$load11: bool; + $main$__0__$oqiqdATZTc6MDOYJqL9Aew: + assume {:captureState "$main$__0__$oqiqdATZTc6MDOYJqL9Aew"} true; + R8, Gamma_R8 := 126976bv64, true; + R0, Gamma_R0 := 0bv64, true; call rely(); - load15, Gamma_load15 := memory_load64_le(mem, bvadd64(R8, 4056bv64)), (gamma_load64(Gamma_mem, bvadd64(R8, 4056bv64)) || L(mem, bvadd64(R8, 4056bv64))); - R8, Gamma_R8 := load15, Gamma_load15; + $load11, Gamma_$load11 := memory_load64_le(mem, bvadd64(R8, 4080bv64)), (gamma_load64(Gamma_mem, bvadd64(R8, 4080bv64)) || L(mem, bvadd64(R8, 4080bv64))); + R8, Gamma_R8 := $load11, Gamma_$load11; call rely(); assert (L(mem, R8) ==> true); mem, Gamma_mem := memory_store32_le(mem, R8, 0bv32), gamma_store32(Gamma_mem, R8, true); - assume {:captureState "1892_0"} true; - call rely(); - load16, Gamma_load16 := memory_load32_le(mem, R8), (gamma_load32(Gamma_mem, R8) || L(mem, R8)); - R0, Gamma_R0 := zero_extend32_32(load16), Gamma_load16; - R31, Gamma_R31 := bvadd64(R31, 16bv64), Gamma_R31; - goto main_1876_basil_return; - main_1876_basil_return: - assume {:captureState "main_1876_basil_return"} true; + assume {:captureState "2272$0"} true; + goto main_basil_return; + main_basil_return: + assume {:captureState "main_basil_return"} true; return; } diff --git a/src/test/correct/basic_arrays_read/gcc/basic_arrays_read.adt b/src/test/correct/basic_arrays_read/gcc/basic_arrays_read.adt deleted file mode 100644 index df76e60b5..000000000 --- a/src/test/correct/basic_arrays_read/gcc/basic_arrays_read.adt +++ /dev/null @@ -1,496 +0,0 @@ -Project(Attrs([Attr("filename","\"gcc/basic_arrays_read.out\""), -Attr("image-specification","(declare abi (name str))\n(declare arch (name str))\n(declare base-address (addr int))\n(declare bias (off int))\n(declare bits (size int))\n(declare code-region (addr int) (size int) (off int))\n(declare code-start (addr int))\n(declare entry-point (addr int))\n(declare external-reference (addr int) (name str))\n(declare format (name str))\n(declare is-executable (flag bool))\n(declare is-little-endian (flag bool))\n(declare llvm:base-address (addr int))\n(declare llvm:code-entry (name str) (off int) (size int))\n(declare llvm:coff-import-library (name str))\n(declare llvm:coff-virtual-section-header (name str) (addr int) (size int))\n(declare llvm:elf-program-header (name str) (off int) (size int))\n(declare llvm:elf-program-header-flags (name str) (ld bool) (r bool) \n (w bool) (x bool))\n(declare llvm:elf-virtual-program-header (name str) (addr int) (size int))\n(declare llvm:entry-point (addr int))\n(declare llvm:macho-symbol (name str) (value int))\n(declare llvm:name-reference (at int) (name str))\n(declare llvm:relocation (at int) (addr int))\n(declare llvm:section-entry (name str) (addr int) (size int) (off int))\n(declare llvm:section-flags (name str) (r bool) (w bool) (x bool))\n(declare llvm:segment-command (name str) (off int) (size int))\n(declare llvm:segment-command-flags (name str) (r bool) (w bool) (x bool))\n(declare llvm:symbol-entry (name str) (addr int) (size int) (off int)\n (value int))\n(declare llvm:virtual-segment-command (name str) (addr int) (size int))\n(declare mapped (addr int) (size int) (off int))\n(declare named-region (addr int) (size int) (name str))\n(declare named-symbol (addr int) (name str))\n(declare require (name str))\n(declare section (addr int) (size int))\n(declare segment (addr int) (size int) (r bool) (w bool) (x bool))\n(declare subarch (name str))\n(declare symbol-chunk (addr int) (size int) (root int))\n(declare symbol-value (addr int) (value int))\n(declare system (name str))\n(declare vendor (name str))\n\n(abi unknown)\n(arch aarch64)\n(base-address 0)\n(bias 0)\n(bits 64)\n(code-region 1840 20 1840)\n(code-region 1536 304 1536)\n(code-region 1440 96 1440)\n(code-region 1408 24 1408)\n(code-start 1588)\n(code-start 1536)\n(code-start 1812)\n(entry-point 1536)\n(external-reference 69592 _ITM_deregisterTMCloneTable)\n(external-reference 69600 __cxa_finalize)\n(external-reference 69608 __gmon_start__)\n(external-reference 69624 _ITM_registerTMCloneTable)\n(external-reference 69552 __libc_start_main)\n(external-reference 69560 __cxa_finalize)\n(external-reference 69568 __gmon_start__)\n(external-reference 69576 abort)\n(format elf)\n(is-executable true)\n(is-little-endian true)\n(llvm:base-address 0)\n(llvm:code-entry abort 0 0)\n(llvm:code-entry __cxa_finalize 0 0)\n(llvm:code-entry __libc_start_main 0 0)\n(llvm:code-entry _init 1408 0)\n(llvm:code-entry main 1812 28)\n(llvm:code-entry _start 1536 52)\n(llvm:code-entry abort@GLIBC_2.17 0 0)\n(llvm:code-entry _fini 1840 0)\n(llvm:code-entry __cxa_finalize@GLIBC_2.17 0 0)\n(llvm:code-entry __libc_start_main@GLIBC_2.34 0 0)\n(llvm:code-entry frame_dummy 1808 0)\n(llvm:code-entry __do_global_dtors_aux 1728 0)\n(llvm:code-entry register_tm_clones 1664 0)\n(llvm:code-entry deregister_tm_clones 1616 0)\n(llvm:code-entry call_weak_fn 1588 20)\n(llvm:code-entry .fini 1840 20)\n(llvm:code-entry .text 1536 304)\n(llvm:code-entry .plt 1440 96)\n(llvm:code-entry .init 1408 24)\n(llvm:elf-program-header 08 3480 616)\n(llvm:elf-program-header 07 0 0)\n(llvm:elf-program-header 06 1864 60)\n(llvm:elf-program-header 05 596 68)\n(llvm:elf-program-header 04 3496 496)\n(llvm:elf-program-header 03 3480 632)\n(llvm:elf-program-header 02 0 2088)\n(llvm:elf-program-header 01 568 27)\n(llvm:elf-program-header 00 64 504)\n(llvm:elf-program-header-flags 08 false true false false)\n(llvm:elf-program-header-flags 07 false true true false)\n(llvm:elf-program-header-flags 06 false true false false)\n(llvm:elf-program-header-flags 05 false true false false)\n(llvm:elf-program-header-flags 04 false true true false)\n(llvm:elf-program-header-flags 03 true true true false)\n(llvm:elf-program-header-flags 02 true true false true)\n(llvm:elf-program-header-flags 01 false true false false)\n(llvm:elf-program-header-flags 00 false true false false)\n(llvm:elf-virtual-program-header 08 69016 616)\n(llvm:elf-virtual-program-header 07 0 0)\n(llvm:elf-virtual-program-header 06 1864 60)\n(llvm:elf-virtual-program-header 05 596 68)\n(llvm:elf-virtual-program-header 04 69032 496)\n(llvm:elf-virtual-program-header 03 69016 648)\n(llvm:elf-virtual-program-header 02 0 2088)\n(llvm:elf-virtual-program-header 01 568 27)\n(llvm:elf-virtual-program-header 00 64 504)\n(llvm:entry-point 1536)\n(llvm:name-reference 69576 abort)\n(llvm:name-reference 69568 __gmon_start__)\n(llvm:name-reference 69560 __cxa_finalize)\n(llvm:name-reference 69552 __libc_start_main)\n(llvm:name-reference 69624 _ITM_registerTMCloneTable)\n(llvm:name-reference 69608 __gmon_start__)\n(llvm:name-reference 69600 __cxa_finalize)\n(llvm:name-reference 69592 _ITM_deregisterTMCloneTable)\n(llvm:section-entry .shstrtab 0 250 6829)\n(llvm:section-entry .strtab 0 557 6272)\n(llvm:section-entry .symtab 0 2112 4160)\n(llvm:section-entry .comment 0 43 4112)\n(llvm:section-entry .bss 69648 16 4112)\n(llvm:section-entry .data 69632 16 4096)\n(llvm:section-entry .got 69528 104 3992)\n(llvm:section-entry .dynamic 69032 496 3496)\n(llvm:section-entry .fini_array 69024 8 3488)\n(llvm:section-entry .init_array 69016 8 3480)\n(llvm:section-entry .eh_frame 1928 160 1928)\n(llvm:section-entry .eh_frame_hdr 1864 60 1864)\n(llvm:section-entry .rodata 1860 4 1860)\n(llvm:section-entry .fini 1840 20 1840)\n(llvm:section-entry .text 1536 304 1536)\n(llvm:section-entry .plt 1440 96 1440)\n(llvm:section-entry .init 1408 24 1408)\n(llvm:section-entry .rela.plt 1312 96 1312)\n(llvm:section-entry .rela.dyn 1120 192 1120)\n(llvm:section-entry .gnu.version_r 1072 48 1072)\n(llvm:section-entry .gnu.version 1054 18 1054)\n(llvm:section-entry .dynstr 912 141 912)\n(llvm:section-entry .dynsym 696 216 696)\n(llvm:section-entry .gnu.hash 664 28 664)\n(llvm:section-entry .note.ABI-tag 632 32 632)\n(llvm:section-entry .note.gnu.build-id 596 36 596)\n(llvm:section-entry .interp 568 27 568)\n(llvm:section-flags .shstrtab true false false)\n(llvm:section-flags .strtab true false false)\n(llvm:section-flags .symtab true false false)\n(llvm:section-flags .comment true false false)\n(llvm:section-flags .bss true true false)\n(llvm:section-flags .data true true false)\n(llvm:section-flags .got true true false)\n(llvm:section-flags .dynamic true true false)\n(llvm:section-flags .fini_array true true false)\n(llvm:section-flags .init_array true true false)\n(llvm:section-flags .eh_frame true false false)\n(llvm:section-flags .eh_frame_hdr true false false)\n(llvm:section-flags .rodata true false false)\n(llvm:section-flags .fini true false true)\n(llvm:section-flags .text true false true)\n(llvm:section-flags .plt true false true)\n(llvm:section-flags .init true false true)\n(llvm:section-flags .rela.plt true false false)\n(llvm:section-flags .rela.dyn true false false)\n(llvm:section-flags .gnu.version_r true false false)\n(llvm:section-flags .gnu.version true false false)\n(llvm:section-flags .dynstr true false false)\n(llvm:section-flags .dynsym true false false)\n(llvm:section-flags .gnu.hash true false false)\n(llvm:section-flags .note.ABI-tag true false false)\n(llvm:section-flags .note.gnu.build-id true false false)\n(llvm:section-flags .interp true false false)\n(llvm:symbol-entry abort 0 0 0 0)\n(llvm:symbol-entry __cxa_finalize 0 0 0 0)\n(llvm:symbol-entry __libc_start_main 0 0 0 0)\n(llvm:symbol-entry _init 1408 0 1408 1408)\n(llvm:symbol-entry main 1812 28 1812 1812)\n(llvm:symbol-entry _start 1536 52 1536 1536)\n(llvm:symbol-entry abort@GLIBC_2.17 0 0 0 0)\n(llvm:symbol-entry _fini 1840 0 1840 1840)\n(llvm:symbol-entry __cxa_finalize@GLIBC_2.17 0 0 0 0)\n(llvm:symbol-entry __libc_start_main@GLIBC_2.34 0 0 0 0)\n(llvm:symbol-entry frame_dummy 1808 0 1808 1808)\n(llvm:symbol-entry __do_global_dtors_aux 1728 0 1728 1728)\n(llvm:symbol-entry register_tm_clones 1664 0 1664 1664)\n(llvm:symbol-entry deregister_tm_clones 1616 0 1616 1616)\n(llvm:symbol-entry call_weak_fn 1588 20 1588 1588)\n(mapped 0 2088 0)\n(mapped 69016 632 3480)\n(named-region 0 2088 02)\n(named-region 69016 648 03)\n(named-region 568 27 .interp)\n(named-region 596 36 .note.gnu.build-id)\n(named-region 632 32 .note.ABI-tag)\n(named-region 664 28 .gnu.hash)\n(named-region 696 216 .dynsym)\n(named-region 912 141 .dynstr)\n(named-region 1054 18 .gnu.version)\n(named-region 1072 48 .gnu.version_r)\n(named-region 1120 192 .rela.dyn)\n(named-region 1312 96 .rela.plt)\n(named-region 1408 24 .init)\n(named-region 1440 96 .plt)\n(named-region 1536 304 .text)\n(named-region 1840 20 .fini)\n(named-region 1860 4 .rodata)\n(named-region 1864 60 .eh_frame_hdr)\n(named-region 1928 160 .eh_frame)\n(named-region 69016 8 .init_array)\n(named-region 69024 8 .fini_array)\n(named-region 69032 496 .dynamic)\n(named-region 69528 104 .got)\n(named-region 69632 16 .data)\n(named-region 69648 16 .bss)\n(named-region 0 43 .comment)\n(named-region 0 2112 .symtab)\n(named-region 0 557 .strtab)\n(named-region 0 250 .shstrtab)\n(named-symbol 1588 call_weak_fn)\n(named-symbol 1616 deregister_tm_clones)\n(named-symbol 1664 register_tm_clones)\n(named-symbol 1728 __do_global_dtors_aux)\n(named-symbol 1808 frame_dummy)\n(named-symbol 0 __libc_start_main@GLIBC_2.34)\n(named-symbol 0 __cxa_finalize@GLIBC_2.17)\n(named-symbol 1840 _fini)\n(named-symbol 0 abort@GLIBC_2.17)\n(named-symbol 1536 _start)\n(named-symbol 1812 main)\n(named-symbol 1408 _init)\n(named-symbol 0 __libc_start_main)\n(named-symbol 0 __cxa_finalize)\n(named-symbol 0 abort)\n(require libc.so.6)\n(section 568 27)\n(section 596 36)\n(section 632 32)\n(section 664 28)\n(section 696 216)\n(section 912 141)\n(section 1054 18)\n(section 1072 48)\n(section 1120 192)\n(section 1312 96)\n(section 1408 24)\n(section 1440 96)\n(section 1536 304)\n(section 1840 20)\n(section 1860 4)\n(section 1864 60)\n(section 1928 160)\n(section 69016 8)\n(section 69024 8)\n(section 69032 496)\n(section 69528 104)\n(section 69632 16)\n(section 69648 16)\n(section 0 43)\n(section 0 2112)\n(section 0 557)\n(section 0 250)\n(segment 0 2088 true false true)\n(segment 69016 648 true true false)\n(subarch v8)\n(symbol-chunk 1588 20 1588)\n(symbol-chunk 1536 52 1536)\n(symbol-chunk 1812 28 1812)\n(symbol-value 1588 1588)\n(symbol-value 1616 1616)\n(symbol-value 1664 1664)\n(symbol-value 1728 1728)\n(symbol-value 1808 1808)\n(symbol-value 1840 1840)\n(symbol-value 1536 1536)\n(symbol-value 1812 1812)\n(symbol-value 1408 1408)\n(symbol-value 0 0)\n(system \"\")\n(vendor \"\")\n"), -Attr("abi-name","\"aarch64-linux-gnu-elf\"")]), -Sections([Section(".shstrtab", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x00\x06\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xa8\x1b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x38\x00\x09\x00\x40\x00\x1c\x00\x1b\x00\x06\x00\x00\x00\x04\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x04\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x28\x08\x00\x00\x00\x00\x00\x00\x28\x08\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x01\x00\x00\x00\x06\x00\x00\x00\x98\x0d\x00\x00\x00\x00\x00\x00\x98\x0d"), -Section(".strtab", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x00\x06\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xa8\x1b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x38\x00\x09\x00\x40\x00\x1c\x00\x1b\x00\x06\x00\x00\x00\x04\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x04\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x28\x08\x00\x00\x00\x00\x00\x00\x28\x08\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x01\x00\x00\x00\x06\x00\x00\x00\x98\x0d\x00\x00\x00\x00\x00\x00\x98\x0d\x01\x00\x00\x00\x00\x00\x98\x0d\x01\x00\x00\x00\x00\x00\x78\x02\x00\x00\x00\x00\x00\x00\x88\x02\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x02\x00\x00\x00\x06\x00\x00\x00\xa8\x0d\x00\x00\x00\x00\x00\x00\xa8\x0d\x01\x00\x00\x00\x00\x00\xa8\x0d\x01\x00\x00\x00\x00\x00\xf0\x01\x00\x00\x00\x00\x00\x00\xf0\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x04\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x50\xe5\x74\x64\x04\x00\x00\x00\x48\x07\x00\x00\x00\x00\x00\x00\x48\x07\x00\x00\x00\x00\x00\x00\x48\x07\x00\x00\x00\x00\x00\x00\x3c\x00\x00\x00\x00\x00\x00\x00\x3c\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x51\xe5\x74\x64\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x52\xe5\x74\x64\x04\x00\x00\x00\x98\x0d\x00\x00\x00\x00\x00\x00\x98\x0d\x01\x00\x00\x00\x00\x00\x98\x0d\x01\x00\x00\x00\x00\x00\x68\x02\x00\x00\x00\x00\x00\x00\x68\x02\x00\x00\x00"), -Section(".comment", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x00\x06\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xa8\x1b\x00"), -Section(".interp", 0x238, "\x2f\x6c\x69\x62\x2f\x6c\x64\x2d\x6c\x69\x6e\x75\x78\x2d\x61\x61\x72\x63\x68\x36\x34\x2e\x73\x6f\x2e\x31\x00"), -Section(".note.gnu.build-id", 0x254, "\x04\x00\x00\x00\x14\x00\x00\x00\x03\x00\x00\x00\x47\x4e\x55\x00\x17\x94\xd6\xde\xc2\xb6\xa3\xeb\xbc\xe4\xe3\x90\xf1\xbc\x2d\xa1\x96\x78\x49\x2d"), -Section(".note.ABI-tag", 0x278, "\x04\x00\x00\x00\x10\x00\x00\x00\x01\x00\x00\x00\x47\x4e\x55\x00\x00\x00\x00\x00\x03\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00"), -Section(".gnu.hash", 0x298, "\x01\x00\x00\x00\x01\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".dynsym", 0x2B8, "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x0b\x00\x80\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x16\x00\x00\x10\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x48\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x22\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x22\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x73\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".dynstr", 0x390, "\x00\x5f\x5f\x63\x78\x61\x5f\x66\x69\x6e\x61\x6c\x69\x7a\x65\x00\x5f\x5f\x6c\x69\x62\x63\x5f\x73\x74\x61\x72\x74\x5f\x6d\x61\x69\x6e\x00\x61\x62\x6f\x72\x74\x00\x6c\x69\x62\x63\x2e\x73\x6f\x2e\x36\x00\x47\x4c\x49\x42\x43\x5f\x32\x2e\x31\x37\x00\x47\x4c\x49\x42\x43\x5f\x32\x2e\x33\x34\x00\x5f\x49\x54\x4d\x5f\x64\x65\x72\x65\x67\x69\x73\x74\x65\x72\x54\x4d\x43\x6c\x6f\x6e\x65\x54\x61\x62\x6c\x65\x00\x5f\x5f\x67\x6d\x6f\x6e\x5f\x73\x74\x61\x72\x74\x5f\x5f\x00\x5f\x49\x54\x4d\x5f\x72\x65\x67\x69\x73\x74\x65\x72\x54\x4d\x43\x6c\x6f\x6e\x65\x54\x61\x62\x6c\x65\x00"), -Section(".gnu.version", 0x41E, "\x00\x00\x00\x00\x00\x00\x02\x00\x01\x00\x03\x00\x01\x00\x03\x00\x01\x00"), -Section(".gnu.version_r", 0x430, "\x01\x00\x02\x00\x28\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x97\x91\x96\x06\x00\x00\x03\x00\x32\x00\x00\x00\x10\x00\x00\x00\xb4\x91\x96\x06\x00\x00\x02\x00\x3d\x00\x00\x00\x00\x00\x00\x00"), -Section(".rela.dyn", 0x460, "\x98\x0d\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x10\x07\x00\x00\x00\x00\x00\x00\xa0\x0d\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\xc0\x06\x00\x00\x00\x00\x00\x00\xf0\x0f\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x14\x07\x00\x00\x00\x00\x00\x00\x08\x10\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x08\x10\x01\x00\x00\x00\x00\x00\xd8\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe0\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe8\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xf8\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".rela.plt", 0x520, "\xb0\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xb8\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xc0\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xc8\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".init", 0x580, "\x1f\x20\x03\xd5\xfd\x7b\xbf\xa9\xfd\x03\x00\x91\x2a\x00\x00\x94\xfd\x7b\xc1\xa8\xc0\x03\x5f\xd6"), -Section(".plt", 0x5A0, "\xf0\x7b\xbf\xa9\x90\x00\x00\x90\x11\xd6\x47\xf9\x10\xa2\x3e\x91\x20\x02\x1f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x90\x00\x00\x90\x11\xda\x47\xf9\x10\xc2\x3e\x91\x20\x02\x1f\xd6\x90\x00\x00\x90\x11\xde\x47\xf9\x10\xe2\x3e\x91\x20\x02\x1f\xd6\x90\x00\x00\x90\x11\xe2\x47\xf9\x10\x02\x3f\x91\x20\x02\x1f\xd6\x90\x00\x00\x90\x11\xe6\x47\xf9\x10\x22\x3f\x91\x20\x02\x1f\xd6"), -Section(".text", 0x600, "\x1f\x20\x03\xd5\x1d\x00\x80\xd2\x1e\x00\x80\xd2\xe5\x03\x00\xaa\xe1\x03\x40\xf9\xe2\x23\x00\x91\xe6\x03\x00\x91\x80\x00\x00\x90\x00\xf8\x47\xf9\x03\x00\x80\xd2\x04\x00\x80\xd2\xe5\xff\xff\x97\xf0\xff\xff\x97\x80\x00\x00\x90\x00\xf4\x47\xf9\x40\x00\x00\xb4\xe8\xff\xff\x17\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x80\x00\x00\xb0\x00\x40\x00\x91\x81\x00\x00\xb0\x21\x40\x00\x91\x3f\x00\x00\xeb\xc0\x00\x00\x54\x81\x00\x00\x90\x21\xec\x47\xf9\x61\x00\x00\xb4\xf0\x03\x01\xaa\x00\x02\x1f\xd6\xc0\x03\x5f\xd6\x80\x00\x00\xb0\x00\x40\x00\x91\x81\x00\x00\xb0\x21\x40\x00\x91\x21\x00\x00\xcb\x22\xfc\x7f\xd3\x41\x0c\x81\x8b\x21\xfc\x41\x93\xc1\x00\x00\xb4\x82\x00\x00\x90\x42\xfc\x47\xf9\x62\x00\x00\xb4\xf0\x03\x02\xaa\x00\x02\x1f\xd6\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\xfd\x7b\xbe\xa9\xfd\x03\x00\x91\xf3\x0b\x00\xf9\x93\x00\x00\xb0\x60\x42\x40\x39\x40\x01\x00\x35\x80\x00\x00\x90\x00\xf0\x47\xf9\x80\x00\x00\xb4\x80\x00\x00\xb0\x00\x04\x40\xf9\xb9\xff\xff\x97\xd8\xff\xff\x97\x20\x00\x80\x52\x60\x42\x00\x39\xf3\x0b\x40\xf9\xfd\x7b\xc2\xa8\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\xdc\xff\xff\x17\x80\x00\x00\xb0\x00\x60\x00\x91\x1f\x00\x00\xb9\x80\x00\x00\xb0\x00\x60\x00\x91\x00\x00\x40\xb9\xc0\x03\x5f\xd6"), -Section(".fini", 0x730, "\x1f\x20\x03\xd5\xfd\x7b\xbf\xa9\xfd\x03\x00\x91\xfd\x7b\xc1\xa8\xc0\x03\x5f\xd6"), -Section(".rodata", 0x744, "\x01\x00\x02\x00"), -Section(".eh_frame_hdr", 0x748, "\x01\x1b\x03\x3b\x3c\x00\x00\x00\x06\x00\x00\x00\xb8\xfe\xff\xff\x54\x00\x00\x00\x08\xff\xff\xff\x68\x00\x00\x00\x38\xff\xff\xff\x7c\x00\x00\x00\x78\xff\xff\xff\x90\x00\x00\x00\xc8\xff\xff\xff\xb4\x00\x00\x00\xcc\xff\xff\xff\xc8\x00\x00\x00"), -Section(".eh_frame", 0x788, "\x10\x00\x00\x00\x00\x00\x00\x00\x01\x7a\x52\x00\x04\x78\x1e\x01\x1b\x0c\x1f\x00\x10\x00\x00\x00\x18\x00\x00\x00\x5c\xfe\xff\xff\x34\x00\x00\x00\x00\x41\x07\x1e\x10\x00\x00\x00\x2c\x00\x00\x00\x98\xfe\xff\xff\x30\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x40\x00\x00\x00\xb4\xfe\xff\xff\x3c\x00\x00\x00\x00\x00\x00\x00\x20\x00\x00\x00\x54\x00\x00\x00\xe0\xfe\xff\xff\x48\x00\x00\x00\x00\x41\x0e\x20\x9d\x04\x9e\x03\x42\x93\x02\x4e\xde\xdd\xd3\x0e\x00\x00\x00\x00\x10\x00\x00\x00\x78\x00\x00\x00\x0c\xff\xff\xff\x04\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x8c\x00\x00\x00\xfc\xfe\xff\xff\x1c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".fini_array", 0x10DA0, "\xc0\x06\x00\x00\x00\x00\x00\x00"), -Section(".dynamic", 0x10DA8, "\x01\x00\x00\x00\x00\x00\x00\x00\x28\x00\x00\x00\x00\x00\x00\x00\x0c\x00\x00\x00\x00\x00\x00\x00\x80\x05\x00\x00\x00\x00\x00\x00\x0d\x00\x00\x00\x00\x00\x00\x00\x30\x07\x00\x00\x00\x00\x00\x00\x19\x00\x00\x00\x00\x00\x00\x00\x98\x0d\x01\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x1a\x00\x00\x00\x00\x00\x00\x00\xa0\x0d\x01\x00\x00\x00\x00\x00\x1c\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\xf5\xfe\xff\x6f\x00\x00\x00\x00\x98\x02\x00\x00\x00\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x90\x03\x00\x00\x00\x00\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\xb8\x02\x00\x00\x00\x00\x00\x00\x0a\x00\x00\x00\x00\x00\x00\x00\x8d\x00\x00\x00\x00\x00\x00\x00\x0b\x00\x00\x00\x00\x00\x00\x00\x18\x00\x00\x00\x00\x00\x00\x00\x15\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x98\x0f\x01\x00\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x60\x00\x00\x00\x00\x00\x00\x00\x14\x00\x00\x00\x00\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x17\x00\x00\x00\x00\x00\x00\x00\x20\x05\x00\x00\x00\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x60\x04\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\xc0\x00\x00\x00\x00\x00\x00\x00\x09\x00\x00\x00\x00\x00\x00\x00\x18\x00\x00\x00\x00\x00\x00\x00\x1e\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\xfb\xff\xff\x6f\x00\x00\x00\x00\x01\x00\x00\x08\x00\x00\x00\x00\xfe\xff\xff\x6f\x00\x00\x00\x00\x30\x04\x00\x00\x00\x00\x00\x00\xff\xff\xff\x6f\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\xf0\xff\xff\x6f\x00\x00\x00\x00\x1e\x04\x00\x00\x00\x00\x00\x00\xf9\xff\xff\x6f\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".got", 0x10F98, "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xa0\x05\x00\x00\x00\x00\x00\x00\xa0\x05\x00\x00\x00\x00\x00\x00\xa0\x05\x00\x00\x00\x00\x00\x00\xa0\x05\x00\x00\x00\x00\x00\x00\xa8\x0d\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x14\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".data", 0x11000, "\x00\x00\x00\x00\x00\x00\x00\x00\x08\x10\x01\x00\x00\x00\x00\x00"), -Section(".init_array", 0x10D98, "\x10\x07\x00\x00\x00\x00\x00\x00")]), -Memmap([Annotation(Region(0x0,0x827), Attr("segment","02 0 2088")), -Annotation(Region(0x600,0x633), Attr("symbol","\"_start\"")), -Annotation(Region(0x0,0xF9), Attr("section","\".shstrtab\"")), -Annotation(Region(0x0,0x22C), Attr("section","\".strtab\"")), -Annotation(Region(0x0,0x2A), Attr("section","\".comment\"")), -Annotation(Region(0x238,0x252), Attr("section","\".interp\"")), -Annotation(Region(0x254,0x277), Attr("section","\".note.gnu.build-id\"")), -Annotation(Region(0x278,0x297), Attr("section","\".note.ABI-tag\"")), -Annotation(Region(0x298,0x2B3), Attr("section","\".gnu.hash\"")), -Annotation(Region(0x2B8,0x38F), Attr("section","\".dynsym\"")), -Annotation(Region(0x390,0x41C), Attr("section","\".dynstr\"")), -Annotation(Region(0x41E,0x42F), Attr("section","\".gnu.version\"")), -Annotation(Region(0x430,0x45F), Attr("section","\".gnu.version_r\"")), -Annotation(Region(0x460,0x51F), Attr("section","\".rela.dyn\"")), -Annotation(Region(0x520,0x57F), Attr("section","\".rela.plt\"")), -Annotation(Region(0x580,0x597), Attr("section","\".init\"")), -Annotation(Region(0x5A0,0x5FF), Attr("section","\".plt\"")), -Annotation(Region(0x580,0x597), Attr("code-region","()")), -Annotation(Region(0x5A0,0x5FF), Attr("code-region","()")), -Annotation(Region(0x600,0x633), Attr("symbol-info","_start 0x600 52")), -Annotation(Region(0x634,0x647), Attr("symbol","\"call_weak_fn\"")), -Annotation(Region(0x634,0x647), Attr("symbol-info","call_weak_fn 0x634 20")), -Annotation(Region(0x600,0x72F), Attr("section","\".text\"")), -Annotation(Region(0x600,0x72F), Attr("code-region","()")), -Annotation(Region(0x714,0x72F), Attr("symbol","\"main\"")), -Annotation(Region(0x714,0x72F), Attr("symbol-info","main 0x714 28")), -Annotation(Region(0x730,0x743), Attr("section","\".fini\"")), -Annotation(Region(0x730,0x743), Attr("code-region","()")), -Annotation(Region(0x744,0x747), Attr("section","\".rodata\"")), -Annotation(Region(0x748,0x783), Attr("section","\".eh_frame_hdr\"")), -Annotation(Region(0x788,0x827), Attr("section","\".eh_frame\"")), -Annotation(Region(0x10D98,0x1100F), Attr("segment","03 0x10D98 648")), -Annotation(Region(0x10DA0,0x10DA7), Attr("section","\".fini_array\"")), -Annotation(Region(0x10DA8,0x10F97), Attr("section","\".dynamic\"")), -Annotation(Region(0x10F98,0x10FFF), Attr("section","\".got\"")), -Annotation(Region(0x11000,0x1100F), Attr("section","\".data\"")), -Annotation(Region(0x10D98,0x10D9F), Attr("section","\".init_array\""))]), -Program(Tid(1_442, "%000005a2"), Attrs([]), - Subs([Sub(Tid(1_392, "@__cxa_finalize"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x5D0"), -Attr("stub","()")]), "__cxa_finalize", Args([Arg(Tid(1_443, "%000005a3"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("__cxa_finalize_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(806, "@__cxa_finalize"), - Attrs([Attr("address","0x5D0")]), Phis([]), -Defs([Def(Tid(1_054, "%0000041e"), Attrs([Attr("address","0x5D0"), -Attr("insn","adrp x16, #65536")]), Var("R16",Imm(64)), Int(65536,64)), -Def(Tid(1_061, "%00000425"), Attrs([Attr("address","0x5D4"), -Attr("insn","ldr x17, [x16, #0xfb8]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(4024,64)),LittleEndian(),64)), -Def(Tid(1_067, "%0000042b"), Attrs([Attr("address","0x5D8"), -Attr("insn","add x16, x16, #0xfb8")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(4024,64)))]), Jmps([Call(Tid(1_072, "%00000430"), - Attrs([Attr("address","0x5DC"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), -Sub(Tid(1_393, "@__do_global_dtors_aux"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x6C0")]), - "__do_global_dtors_aux", Args([Arg(Tid(1_444, "%000005a4"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("__do_global_dtors_aux_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(618, "@__do_global_dtors_aux"), - Attrs([Attr("address","0x6C0")]), Phis([]), Defs([Def(Tid(622, "%0000026e"), - Attrs([Attr("address","0x6C0"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("#3",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(18446744073709551584,64))), -Def(Tid(628, "%00000274"), Attrs([Attr("address","0x6C0"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("#3",Imm(64)),Var("R29",Imm(64)),LittleEndian(),64)), -Def(Tid(634, "%0000027a"), Attrs([Attr("address","0x6C0"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("#3",Imm(64)),Int(8,64)),Var("R30",Imm(64)),LittleEndian(),64)), -Def(Tid(638, "%0000027e"), Attrs([Attr("address","0x6C0"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("R31",Imm(64)), -Var("#3",Imm(64))), Def(Tid(644, "%00000284"), - Attrs([Attr("address","0x6C4"), Attr("insn","mov x29, sp")]), - Var("R29",Imm(64)), Var("R31",Imm(64))), Def(Tid(652, "%0000028c"), - Attrs([Attr("address","0x6C8"), Attr("insn","str x19, [sp, #0x10]")]), - Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(16,64)),Var("R19",Imm(64)),LittleEndian(),64)), -Def(Tid(657, "%00000291"), Attrs([Attr("address","0x6CC"), -Attr("insn","adrp x19, #69632")]), Var("R19",Imm(64)), Int(69632,64)), -Def(Tid(664, "%00000298"), Attrs([Attr("address","0x6D0"), -Attr("insn","ldrb w0, [x19, #0x10]")]), Var("R0",Imm(64)), -UNSIGNED(64,Load(Var("mem",Mem(64,8)),PLUS(Var("R19",Imm(64)),Int(16,64)),LittleEndian(),8)))]), -Jmps([Goto(Tid(671, "%0000029f"), Attrs([Attr("address","0x6D4"), -Attr("insn","cbnz w0, #0x28")]), - NEQ(Extract(31,0,Var("R0",Imm(64))),Int(0,32)), -Direct(Tid(669, "%0000029d"))), Goto(Tid(1_432, "%00000598"), Attrs([]), - Int(1,1), Direct(Tid(751, "%000002ef")))])), Blk(Tid(751, "%000002ef"), - Attrs([Attr("address","0x6D8")]), Phis([]), Defs([Def(Tid(754, "%000002f2"), - Attrs([Attr("address","0x6D8"), Attr("insn","adrp x0, #65536")]), - Var("R0",Imm(64)), Int(65536,64)), Def(Tid(761, "%000002f9"), - Attrs([Attr("address","0x6DC"), Attr("insn","ldr x0, [x0, #0xfe0]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(4064,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(767, "%000002ff"), Attrs([Attr("address","0x6E0"), -Attr("insn","cbz x0, #0x10")]), EQ(Var("R0",Imm(64)),Int(0,64)), -Direct(Tid(765, "%000002fd"))), Goto(Tid(1_433, "%00000599"), Attrs([]), - Int(1,1), Direct(Tid(790, "%00000316")))])), Blk(Tid(790, "%00000316"), - Attrs([Attr("address","0x6E4")]), Phis([]), Defs([Def(Tid(793, "%00000319"), - Attrs([Attr("address","0x6E4"), Attr("insn","adrp x0, #69632")]), - Var("R0",Imm(64)), Int(69632,64)), Def(Tid(800, "%00000320"), - Attrs([Attr("address","0x6E8"), Attr("insn","ldr x0, [x0, #0x8]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(805, "%00000325"), Attrs([Attr("address","0x6EC"), -Attr("insn","bl #-0x11c")]), Var("R30",Imm(64)), Int(1776,64))]), -Jmps([Call(Tid(808, "%00000328"), Attrs([Attr("address","0x6EC"), -Attr("insn","bl #-0x11c")]), Int(1,1), -(Direct(Tid(1_392, "@__cxa_finalize")),Direct(Tid(765, "%000002fd"))))])), -Blk(Tid(765, "%000002fd"), Attrs([Attr("address","0x6F0")]), Phis([]), -Defs([Def(Tid(773, "%00000305"), Attrs([Attr("address","0x6F0"), -Attr("insn","bl #-0xa0")]), Var("R30",Imm(64)), Int(1780,64))]), -Jmps([Call(Tid(775, "%00000307"), Attrs([Attr("address","0x6F0"), -Attr("insn","bl #-0xa0")]), Int(1,1), -(Direct(Tid(1_406, "@deregister_tm_clones")),Direct(Tid(777, "%00000309"))))])), -Blk(Tid(777, "%00000309"), Attrs([Attr("address","0x6F4")]), Phis([]), -Defs([Def(Tid(780, "%0000030c"), Attrs([Attr("address","0x6F4"), -Attr("insn","mov w0, #0x1")]), Var("R0",Imm(64)), Int(1,64)), -Def(Tid(788, "%00000314"), Attrs([Attr("address","0x6F8"), -Attr("insn","strb w0, [x19, #0x10]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R19",Imm(64)),Int(16,64)),Extract(7,0,Var("R0",Imm(64))),LittleEndian(),8))]), -Jmps([Goto(Tid(1_434, "%0000059a"), Attrs([]), Int(1,1), -Direct(Tid(669, "%0000029d")))])), Blk(Tid(669, "%0000029d"), - Attrs([Attr("address","0x6FC")]), Phis([]), Defs([Def(Tid(679, "%000002a7"), - Attrs([Attr("address","0x6FC"), Attr("insn","ldr x19, [sp, #0x10]")]), - Var("R19",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(16,64)),LittleEndian(),64)), -Def(Tid(686, "%000002ae"), Attrs([Attr("address","0x700"), -Attr("insn","ldp x29, x30, [sp], #0x20")]), Var("R29",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(691, "%000002b3"), Attrs([Attr("address","0x700"), -Attr("insn","ldp x29, x30, [sp], #0x20")]), Var("R30",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(695, "%000002b7"), Attrs([Attr("address","0x700"), -Attr("insn","ldp x29, x30, [sp], #0x20")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(32,64)))]), Jmps([Call(Tid(700, "%000002bc"), - Attrs([Attr("address","0x704"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), Sub(Tid(1_397, "@__libc_start_main"), - Attrs([Attr("c.proto","signed (*)(signed (*)(signed , char** , char** );* main, signed , char** , \nvoid* auxv)"), -Attr("address","0x5C0"), Attr("stub","()")]), "__libc_start_main", - Args([Arg(Tid(1_445, "%000005a5"), - Attrs([Attr("c.layout","**[ : 64]"), -Attr("c.data","Top:u64 ptr ptr"), -Attr("c.type","signed (*)(signed , char** , char** );*")]), - Var("__libc_start_main_main",Imm(64)), Var("R0",Imm(64)), In()), -Arg(Tid(1_446, "%000005a6"), Attrs([Attr("c.layout","[signed : 32]"), -Attr("c.data","Top:u32"), Attr("c.type","signed")]), - Var("__libc_start_main_arg2",Imm(32)), LOW(32,Var("R1",Imm(64))), In()), -Arg(Tid(1_447, "%000005a7"), Attrs([Attr("c.layout","**[char : 8]"), -Attr("c.data","Top:u8 ptr ptr"), Attr("c.type","char**")]), - Var("__libc_start_main_arg3",Imm(64)), Var("R2",Imm(64)), Both()), -Arg(Tid(1_448, "%000005a8"), Attrs([Attr("c.layout","*[ : 8]"), -Attr("c.data","{} ptr"), Attr("c.type","void*")]), - Var("__libc_start_main_auxv",Imm(64)), Var("R3",Imm(64)), Both()), -Arg(Tid(1_449, "%000005a9"), Attrs([Attr("c.layout","[signed : 32]"), -Attr("c.data","Top:u32"), Attr("c.type","signed")]), - Var("__libc_start_main_result",Imm(32)), LOW(32,Var("R0",Imm(64))), -Out())]), Blks([Blk(Tid(451, "@__libc_start_main"), - Attrs([Attr("address","0x5C0")]), Phis([]), -Defs([Def(Tid(1_032, "%00000408"), Attrs([Attr("address","0x5C0"), -Attr("insn","adrp x16, #65536")]), Var("R16",Imm(64)), Int(65536,64)), -Def(Tid(1_039, "%0000040f"), Attrs([Attr("address","0x5C4"), -Attr("insn","ldr x17, [x16, #0xfb0]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(4016,64)),LittleEndian(),64)), -Def(Tid(1_045, "%00000415"), Attrs([Attr("address","0x5C8"), -Attr("insn","add x16, x16, #0xfb0")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(4016,64)))]), Jmps([Call(Tid(1_050, "%0000041a"), - Attrs([Attr("address","0x5CC"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), Sub(Tid(1_398, "@_fini"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x730")]), - "_fini", Args([Arg(Tid(1_450, "%000005aa"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("_fini_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(31, "@_fini"), - Attrs([Attr("address","0x730")]), Phis([]), Defs([Def(Tid(37, "%00000025"), - Attrs([Attr("address","0x734"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("#0",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(18446744073709551600,64))), -Def(Tid(43, "%0000002b"), Attrs([Attr("address","0x734"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("#0",Imm(64)),Var("R29",Imm(64)),LittleEndian(),64)), -Def(Tid(49, "%00000031"), Attrs([Attr("address","0x734"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("#0",Imm(64)),Int(8,64)),Var("R30",Imm(64)),LittleEndian(),64)), -Def(Tid(53, "%00000035"), Attrs([Attr("address","0x734"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("R31",Imm(64)), -Var("#0",Imm(64))), Def(Tid(59, "%0000003b"), Attrs([Attr("address","0x738"), -Attr("insn","mov x29, sp")]), Var("R29",Imm(64)), Var("R31",Imm(64))), -Def(Tid(66, "%00000042"), Attrs([Attr("address","0x73C"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R29",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(71, "%00000047"), Attrs([Attr("address","0x73C"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R30",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(75, "%0000004b"), Attrs([Attr("address","0x73C"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(16,64)))]), Jmps([Call(Tid(80, "%00000050"), - Attrs([Attr("address","0x740"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), Sub(Tid(1_399, "@_init"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x580")]), - "_init", Args([Arg(Tid(1_451, "%000005ab"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("_init_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(1_227, "@_init"), - Attrs([Attr("address","0x580")]), Phis([]), -Defs([Def(Tid(1_233, "%000004d1"), Attrs([Attr("address","0x584"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("#5",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(18446744073709551600,64))), -Def(Tid(1_239, "%000004d7"), Attrs([Attr("address","0x584"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("#5",Imm(64)),Var("R29",Imm(64)),LittleEndian(),64)), -Def(Tid(1_245, "%000004dd"), Attrs([Attr("address","0x584"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("#5",Imm(64)),Int(8,64)),Var("R30",Imm(64)),LittleEndian(),64)), -Def(Tid(1_249, "%000004e1"), Attrs([Attr("address","0x584"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("R31",Imm(64)), -Var("#5",Imm(64))), Def(Tid(1_255, "%000004e7"), - Attrs([Attr("address","0x588"), Attr("insn","mov x29, sp")]), - Var("R29",Imm(64)), Var("R31",Imm(64))), Def(Tid(1_260, "%000004ec"), - Attrs([Attr("address","0x58C"), Attr("insn","bl #0xa8")]), - Var("R30",Imm(64)), Int(1424,64))]), Jmps([Call(Tid(1_262, "%000004ee"), - Attrs([Attr("address","0x58C"), Attr("insn","bl #0xa8")]), Int(1,1), -(Direct(Tid(1_404, "@call_weak_fn")),Direct(Tid(1_264, "%000004f0"))))])), -Blk(Tid(1_264, "%000004f0"), Attrs([Attr("address","0x590")]), Phis([]), -Defs([Def(Tid(1_269, "%000004f5"), Attrs([Attr("address","0x590"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R29",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(1_274, "%000004fa"), Attrs([Attr("address","0x590"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R30",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(1_278, "%000004fe"), Attrs([Attr("address","0x590"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(16,64)))]), Jmps([Call(Tid(1_283, "%00000503"), - Attrs([Attr("address","0x594"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), Sub(Tid(1_400, "@_start"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x600"), -Attr("stub","()"), Attr("entry-point","()")]), "_start", - Args([Arg(Tid(1_452, "%000005ac"), Attrs([Attr("c.layout","[signed : 32]"), -Attr("c.data","Top:u32"), Attr("c.type","signed")]), - Var("_start_result",Imm(32)), LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(388, "@_start"), Attrs([Attr("address","0x600")]), Phis([]), -Defs([Def(Tid(393, "%00000189"), Attrs([Attr("address","0x604"), -Attr("insn","mov x29, #0x0")]), Var("R29",Imm(64)), Int(0,64)), -Def(Tid(398, "%0000018e"), Attrs([Attr("address","0x608"), -Attr("insn","mov x30, #0x0")]), Var("R30",Imm(64)), Int(0,64)), -Def(Tid(404, "%00000194"), Attrs([Attr("address","0x60C"), -Attr("insn","mov x5, x0")]), Var("R5",Imm(64)), Var("R0",Imm(64))), -Def(Tid(411, "%0000019b"), Attrs([Attr("address","0x610"), -Attr("insn","ldr x1, [sp]")]), Var("R1",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(417, "%000001a1"), Attrs([Attr("address","0x614"), -Attr("insn","add x2, sp, #0x8")]), Var("R2",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(8,64))), Def(Tid(423, "%000001a7"), - Attrs([Attr("address","0x618"), Attr("insn","mov x6, sp")]), - Var("R6",Imm(64)), Var("R31",Imm(64))), Def(Tid(428, "%000001ac"), - Attrs([Attr("address","0x61C"), Attr("insn","adrp x0, #65536")]), - Var("R0",Imm(64)), Int(65536,64)), Def(Tid(435, "%000001b3"), - Attrs([Attr("address","0x620"), Attr("insn","ldr x0, [x0, #0xff0]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(4080,64)),LittleEndian(),64)), -Def(Tid(440, "%000001b8"), Attrs([Attr("address","0x624"), -Attr("insn","mov x3, #0x0")]), Var("R3",Imm(64)), Int(0,64)), -Def(Tid(445, "%000001bd"), Attrs([Attr("address","0x628"), -Attr("insn","mov x4, #0x0")]), Var("R4",Imm(64)), Int(0,64)), -Def(Tid(450, "%000001c2"), Attrs([Attr("address","0x62C"), -Attr("insn","bl #-0x6c")]), Var("R30",Imm(64)), Int(1584,64))]), -Jmps([Call(Tid(453, "%000001c5"), Attrs([Attr("address","0x62C"), -Attr("insn","bl #-0x6c")]), Int(1,1), -(Direct(Tid(1_397, "@__libc_start_main")),Direct(Tid(455, "%000001c7"))))])), -Blk(Tid(455, "%000001c7"), Attrs([Attr("address","0x630")]), Phis([]), -Defs([Def(Tid(458, "%000001ca"), Attrs([Attr("address","0x630"), -Attr("insn","bl #-0x40")]), Var("R30",Imm(64)), Int(1588,64))]), -Jmps([Call(Tid(461, "%000001cd"), Attrs([Attr("address","0x630"), -Attr("insn","bl #-0x40")]), Int(1,1), -(Direct(Tid(1_403, "@abort")),Direct(Tid(1_435, "%0000059b"))))])), -Blk(Tid(1_435, "%0000059b"), Attrs([]), Phis([]), Defs([]), -Jmps([Call(Tid(1_436, "%0000059c"), Attrs([]), Int(1,1), -(Direct(Tid(1_404, "@call_weak_fn")),))]))])), Sub(Tid(1_403, "@abort"), - Attrs([Attr("noreturn","()"), Attr("c.proto","void (*)(void)"), -Attr("address","0x5F0"), Attr("stub","()")]), "abort", Args([]), -Blks([Blk(Tid(459, "@abort"), Attrs([Attr("address","0x5F0")]), Phis([]), -Defs([Def(Tid(1_098, "%0000044a"), Attrs([Attr("address","0x5F0"), -Attr("insn","adrp x16, #65536")]), Var("R16",Imm(64)), Int(65536,64)), -Def(Tid(1_105, "%00000451"), Attrs([Attr("address","0x5F4"), -Attr("insn","ldr x17, [x16, #0xfc8]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(4040,64)),LittleEndian(),64)), -Def(Tid(1_111, "%00000457"), Attrs([Attr("address","0x5F8"), -Attr("insn","add x16, x16, #0xfc8")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(4040,64)))]), Jmps([Call(Tid(1_116, "%0000045c"), - Attrs([Attr("address","0x5FC"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), Sub(Tid(1_404, "@call_weak_fn"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x634")]), - "call_weak_fn", Args([Arg(Tid(1_453, "%000005ad"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("call_weak_fn_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(463, "@call_weak_fn"), - Attrs([Attr("address","0x634")]), Phis([]), Defs([Def(Tid(466, "%000001d2"), - Attrs([Attr("address","0x634"), Attr("insn","adrp x0, #65536")]), - Var("R0",Imm(64)), Int(65536,64)), Def(Tid(473, "%000001d9"), - Attrs([Attr("address","0x638"), Attr("insn","ldr x0, [x0, #0xfe8]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(4072,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(479, "%000001df"), Attrs([Attr("address","0x63C"), -Attr("insn","cbz x0, #0x8")]), EQ(Var("R0",Imm(64)),Int(0,64)), -Direct(Tid(477, "%000001dd"))), Goto(Tid(1_437, "%0000059d"), Attrs([]), - Int(1,1), Direct(Tid(870, "%00000366")))])), Blk(Tid(477, "%000001dd"), - Attrs([Attr("address","0x644")]), Phis([]), Defs([]), -Jmps([Call(Tid(485, "%000001e5"), Attrs([Attr("address","0x644"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))])), -Blk(Tid(870, "%00000366"), Attrs([Attr("address","0x640")]), Phis([]), -Defs([]), Jmps([Goto(Tid(873, "%00000369"), Attrs([Attr("address","0x640"), -Attr("insn","b #-0x60")]), Int(1,1), Direct(Tid(871, "@__gmon_start__")))])), -Blk(Tid(871, "@__gmon_start__"), Attrs([Attr("address","0x5E0")]), Phis([]), -Defs([Def(Tid(1_076, "%00000434"), Attrs([Attr("address","0x5E0"), -Attr("insn","adrp x16, #65536")]), Var("R16",Imm(64)), Int(65536,64)), -Def(Tid(1_083, "%0000043b"), Attrs([Attr("address","0x5E4"), -Attr("insn","ldr x17, [x16, #0xfc0]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(4032,64)),LittleEndian(),64)), -Def(Tid(1_089, "%00000441"), Attrs([Attr("address","0x5E8"), -Attr("insn","add x16, x16, #0xfc0")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(4032,64)))]), Jmps([Call(Tid(1_094, "%00000446"), - Attrs([Attr("address","0x5EC"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), -Sub(Tid(1_406, "@deregister_tm_clones"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x650")]), - "deregister_tm_clones", Args([Arg(Tid(1_454, "%000005ae"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("deregister_tm_clones_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(491, "@deregister_tm_clones"), - Attrs([Attr("address","0x650")]), Phis([]), Defs([Def(Tid(494, "%000001ee"), - Attrs([Attr("address","0x650"), Attr("insn","adrp x0, #69632")]), - Var("R0",Imm(64)), Int(69632,64)), Def(Tid(500, "%000001f4"), - Attrs([Attr("address","0x654"), Attr("insn","add x0, x0, #0x10")]), - Var("R0",Imm(64)), PLUS(Var("R0",Imm(64)),Int(16,64))), -Def(Tid(505, "%000001f9"), Attrs([Attr("address","0x658"), -Attr("insn","adrp x1, #69632")]), Var("R1",Imm(64)), Int(69632,64)), -Def(Tid(511, "%000001ff"), Attrs([Attr("address","0x65C"), -Attr("insn","add x1, x1, #0x10")]), Var("R1",Imm(64)), -PLUS(Var("R1",Imm(64)),Int(16,64))), Def(Tid(517, "%00000205"), - Attrs([Attr("address","0x660"), Attr("insn","cmp x1, x0")]), - Var("#1",Imm(64)), NOT(Var("R0",Imm(64)))), Def(Tid(522, "%0000020a"), - Attrs([Attr("address","0x660"), Attr("insn","cmp x1, x0")]), - Var("#2",Imm(64)), PLUS(Var("R1",Imm(64)),NOT(Var("R0",Imm(64))))), -Def(Tid(528, "%00000210"), Attrs([Attr("address","0x660"), -Attr("insn","cmp x1, x0")]), Var("VF",Imm(1)), -NEQ(SIGNED(65,PLUS(Var("#2",Imm(64)),Int(1,64))),PLUS(PLUS(SIGNED(65,Var("R1",Imm(64))),SIGNED(65,Var("#1",Imm(64)))),Int(1,65)))), -Def(Tid(534, "%00000216"), Attrs([Attr("address","0x660"), -Attr("insn","cmp x1, x0")]), Var("CF",Imm(1)), -NEQ(UNSIGNED(65,PLUS(Var("#2",Imm(64)),Int(1,64))),PLUS(PLUS(UNSIGNED(65,Var("R1",Imm(64))),UNSIGNED(65,Var("#1",Imm(64)))),Int(1,65)))), -Def(Tid(538, "%0000021a"), Attrs([Attr("address","0x660"), -Attr("insn","cmp x1, x0")]), Var("ZF",Imm(1)), -EQ(PLUS(Var("#2",Imm(64)),Int(1,64)),Int(0,64))), Def(Tid(542, "%0000021e"), - Attrs([Attr("address","0x660"), Attr("insn","cmp x1, x0")]), - Var("NF",Imm(1)), Extract(63,63,PLUS(Var("#2",Imm(64)),Int(1,64))))]), -Jmps([Goto(Tid(548, "%00000224"), Attrs([Attr("address","0x664"), -Attr("insn","b.eq #0x18")]), EQ(Var("ZF",Imm(1)),Int(1,1)), -Direct(Tid(546, "%00000222"))), Goto(Tid(1_438, "%0000059e"), Attrs([]), - Int(1,1), Direct(Tid(840, "%00000348")))])), Blk(Tid(840, "%00000348"), - Attrs([Attr("address","0x668")]), Phis([]), Defs([Def(Tid(843, "%0000034b"), - Attrs([Attr("address","0x668"), Attr("insn","adrp x1, #65536")]), - Var("R1",Imm(64)), Int(65536,64)), Def(Tid(850, "%00000352"), - Attrs([Attr("address","0x66C"), Attr("insn","ldr x1, [x1, #0xfd8]")]), - Var("R1",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R1",Imm(64)),Int(4056,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(855, "%00000357"), Attrs([Attr("address","0x670"), -Attr("insn","cbz x1, #0xc")]), EQ(Var("R1",Imm(64)),Int(0,64)), -Direct(Tid(546, "%00000222"))), Goto(Tid(1_439, "%0000059f"), Attrs([]), - Int(1,1), Direct(Tid(859, "%0000035b")))])), Blk(Tid(546, "%00000222"), - Attrs([Attr("address","0x67C")]), Phis([]), Defs([]), -Jmps([Call(Tid(554, "%0000022a"), Attrs([Attr("address","0x67C"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))])), -Blk(Tid(859, "%0000035b"), Attrs([Attr("address","0x674")]), Phis([]), -Defs([Def(Tid(863, "%0000035f"), Attrs([Attr("address","0x674"), -Attr("insn","mov x16, x1")]), Var("R16",Imm(64)), Var("R1",Imm(64)))]), -Jmps([Call(Tid(868, "%00000364"), Attrs([Attr("address","0x678"), -Attr("insn","br x16")]), Int(1,1), (Indirect(Var("R16",Imm(64))),))]))])), -Sub(Tid(1_409, "@frame_dummy"), Attrs([Attr("c.proto","signed (*)(void)"), -Attr("address","0x710")]), "frame_dummy", Args([Arg(Tid(1_455, "%000005af"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("frame_dummy_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(706, "@frame_dummy"), - Attrs([Attr("address","0x710")]), Phis([]), Defs([]), -Jmps([Call(Tid(708, "%000002c4"), Attrs([Attr("address","0x710"), -Attr("insn","b #-0x90")]), Int(1,1), -(Direct(Tid(1_411, "@register_tm_clones")),))]))])), Sub(Tid(1_410, "@main"), - Attrs([Attr("c.proto","signed (*)(signed argc, const char** argv)"), -Attr("address","0x714")]), "main", Args([Arg(Tid(1_456, "%000005b0"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("main_argc",Imm(32)), -LOW(32,Var("R0",Imm(64))), In()), Arg(Tid(1_457, "%000005b1"), - Attrs([Attr("c.layout","**[char : 8]"), Attr("c.data","Top:u8 ptr ptr"), -Attr("c.type"," const char**")]), Var("main_argv",Imm(64)), -Var("R1",Imm(64)), Both()), Arg(Tid(1_458, "%000005b2"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("main_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(710, "@main"), - Attrs([Attr("address","0x714")]), Phis([]), Defs([Def(Tid(713, "%000002c9"), - Attrs([Attr("address","0x714"), Attr("insn","adrp x0, #69632")]), - Var("R0",Imm(64)), Int(69632,64)), Def(Tid(719, "%000002cf"), - Attrs([Attr("address","0x718"), Attr("insn","add x0, x0, #0x18")]), - Var("R0",Imm(64)), PLUS(Var("R0",Imm(64)),Int(24,64))), -Def(Tid(726, "%000002d6"), Attrs([Attr("address","0x71C"), -Attr("insn","str wzr, [x0]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("R0",Imm(64)),Int(0,32),LittleEndian(),32)), -Def(Tid(731, "%000002db"), Attrs([Attr("address","0x720"), -Attr("insn","adrp x0, #69632")]), Var("R0",Imm(64)), Int(69632,64)), -Def(Tid(737, "%000002e1"), Attrs([Attr("address","0x724"), -Attr("insn","add x0, x0, #0x18")]), Var("R0",Imm(64)), -PLUS(Var("R0",Imm(64)),Int(24,64))), Def(Tid(744, "%000002e8"), - Attrs([Attr("address","0x728"), Attr("insn","ldr w0, [x0]")]), - Var("R0",Imm(64)), -UNSIGNED(64,Load(Var("mem",Mem(64,8)),Var("R0",Imm(64)),LittleEndian(),32)))]), -Jmps([Call(Tid(749, "%000002ed"), Attrs([Attr("address","0x72C"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))]))])), -Sub(Tid(1_411, "@register_tm_clones"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x680")]), - "register_tm_clones", Args([Arg(Tid(1_459, "%000005b3"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("register_tm_clones_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(556, "@register_tm_clones"), Attrs([Attr("address","0x680")]), - Phis([]), Defs([Def(Tid(559, "%0000022f"), Attrs([Attr("address","0x680"), -Attr("insn","adrp x0, #69632")]), Var("R0",Imm(64)), Int(69632,64)), -Def(Tid(565, "%00000235"), Attrs([Attr("address","0x684"), -Attr("insn","add x0, x0, #0x10")]), Var("R0",Imm(64)), -PLUS(Var("R0",Imm(64)),Int(16,64))), Def(Tid(570, "%0000023a"), - Attrs([Attr("address","0x688"), Attr("insn","adrp x1, #69632")]), - Var("R1",Imm(64)), Int(69632,64)), Def(Tid(576, "%00000240"), - Attrs([Attr("address","0x68C"), Attr("insn","add x1, x1, #0x10")]), - Var("R1",Imm(64)), PLUS(Var("R1",Imm(64)),Int(16,64))), -Def(Tid(583, "%00000247"), Attrs([Attr("address","0x690"), -Attr("insn","sub x1, x1, x0")]), Var("R1",Imm(64)), -PLUS(PLUS(Var("R1",Imm(64)),NOT(Var("R0",Imm(64)))),Int(1,64))), -Def(Tid(589, "%0000024d"), Attrs([Attr("address","0x694"), -Attr("insn","lsr x2, x1, #63")]), Var("R2",Imm(64)), -Concat(Int(0,63),Extract(63,63,Var("R1",Imm(64))))), -Def(Tid(596, "%00000254"), Attrs([Attr("address","0x698"), -Attr("insn","add x1, x2, x1, asr #3")]), Var("R1",Imm(64)), -PLUS(Var("R2",Imm(64)),ARSHIFT(Var("R1",Imm(64)),Int(3,3)))), -Def(Tid(602, "%0000025a"), Attrs([Attr("address","0x69C"), -Attr("insn","asr x1, x1, #1")]), Var("R1",Imm(64)), -SIGNED(64,Extract(63,1,Var("R1",Imm(64)))))]), -Jmps([Goto(Tid(608, "%00000260"), Attrs([Attr("address","0x6A0"), -Attr("insn","cbz x1, #0x18")]), EQ(Var("R1",Imm(64)),Int(0,64)), -Direct(Tid(606, "%0000025e"))), Goto(Tid(1_440, "%000005a0"), Attrs([]), - Int(1,1), Direct(Tid(810, "%0000032a")))])), Blk(Tid(810, "%0000032a"), - Attrs([Attr("address","0x6A4")]), Phis([]), Defs([Def(Tid(813, "%0000032d"), - Attrs([Attr("address","0x6A4"), Attr("insn","adrp x2, #65536")]), - Var("R2",Imm(64)), Int(65536,64)), Def(Tid(820, "%00000334"), - Attrs([Attr("address","0x6A8"), Attr("insn","ldr x2, [x2, #0xff8]")]), - Var("R2",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R2",Imm(64)),Int(4088,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(825, "%00000339"), Attrs([Attr("address","0x6AC"), -Attr("insn","cbz x2, #0xc")]), EQ(Var("R2",Imm(64)),Int(0,64)), -Direct(Tid(606, "%0000025e"))), Goto(Tid(1_441, "%000005a1"), Attrs([]), - Int(1,1), Direct(Tid(829, "%0000033d")))])), Blk(Tid(606, "%0000025e"), - Attrs([Attr("address","0x6B8")]), Phis([]), Defs([]), -Jmps([Call(Tid(614, "%00000266"), Attrs([Attr("address","0x6B8"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))])), -Blk(Tid(829, "%0000033d"), Attrs([Attr("address","0x6B0")]), Phis([]), -Defs([Def(Tid(833, "%00000341"), Attrs([Attr("address","0x6B0"), -Attr("insn","mov x16, x2")]), Var("R16",Imm(64)), Var("R2",Imm(64)))]), -Jmps([Call(Tid(838, "%00000346"), Attrs([Attr("address","0x6B4"), -Attr("insn","br x16")]), Int(1,1), -(Indirect(Var("R16",Imm(64))),))]))]))]))) \ No newline at end of file diff --git a/src/test/correct/basic_arrays_read/gcc/basic_arrays_read.bir b/src/test/correct/basic_arrays_read/gcc/basic_arrays_read.bir deleted file mode 100644 index 74849f0bc..000000000 --- a/src/test/correct/basic_arrays_read/gcc/basic_arrays_read.bir +++ /dev/null @@ -1,229 +0,0 @@ -000005a2: program -00000570: sub __cxa_finalize(__cxa_finalize_result) -000005a3: __cxa_finalize_result :: out u32 = low:32[R0] - -00000326: -0000041e: R16 := 0x10000 -00000425: R17 := mem[R16 + 0xFB8, el]:u64 -0000042b: R16 := R16 + 0xFB8 -00000430: call R17 with noreturn - -00000571: sub __do_global_dtors_aux(__do_global_dtors_aux_result) -000005a4: __do_global_dtors_aux_result :: out u32 = low:32[R0] - -0000026a: -0000026e: #3 := R31 - 0x20 -00000274: mem := mem with [#3, el]:u64 <- R29 -0000027a: mem := mem with [#3 + 8, el]:u64 <- R30 -0000027e: R31 := #3 -00000284: R29 := R31 -0000028c: mem := mem with [R31 + 0x10, el]:u64 <- R19 -00000291: R19 := 0x11000 -00000298: R0 := pad:64[mem[R19 + 0x10]] -0000029f: when 31:0[R0] <> 0 goto %0000029d -00000598: goto %000002ef - -000002ef: -000002f2: R0 := 0x10000 -000002f9: R0 := mem[R0 + 0xFE0, el]:u64 -000002ff: when R0 = 0 goto %000002fd -00000599: goto %00000316 - -00000316: -00000319: R0 := 0x11000 -00000320: R0 := mem[R0 + 8, el]:u64 -00000325: R30 := 0x6F0 -00000328: call @__cxa_finalize with return %000002fd - -000002fd: -00000305: R30 := 0x6F4 -00000307: call @deregister_tm_clones with return %00000309 - -00000309: -0000030c: R0 := 1 -00000314: mem := mem with [R19 + 0x10] <- 7:0[R0] -0000059a: goto %0000029d - -0000029d: -000002a7: R19 := mem[R31 + 0x10, el]:u64 -000002ae: R29 := mem[R31, el]:u64 -000002b3: R30 := mem[R31 + 8, el]:u64 -000002b7: R31 := R31 + 0x20 -000002bc: call R30 with noreturn - -00000575: sub __libc_start_main(__libc_start_main_main, __libc_start_main_arg2, __libc_start_main_arg3, __libc_start_main_auxv, __libc_start_main_result) -000005a5: __libc_start_main_main :: in u64 = R0 -000005a6: __libc_start_main_arg2 :: in u32 = low:32[R1] -000005a7: __libc_start_main_arg3 :: in out u64 = R2 -000005a8: __libc_start_main_auxv :: in out u64 = R3 -000005a9: __libc_start_main_result :: out u32 = low:32[R0] - -000001c3: -00000408: R16 := 0x10000 -0000040f: R17 := mem[R16 + 0xFB0, el]:u64 -00000415: R16 := R16 + 0xFB0 -0000041a: call R17 with noreturn - -00000576: sub _fini(_fini_result) -000005aa: _fini_result :: out u32 = low:32[R0] - -0000001f: -00000025: #0 := R31 - 0x10 -0000002b: mem := mem with [#0, el]:u64 <- R29 -00000031: mem := mem with [#0 + 8, el]:u64 <- R30 -00000035: R31 := #0 -0000003b: R29 := R31 -00000042: R29 := mem[R31, el]:u64 -00000047: R30 := mem[R31 + 8, el]:u64 -0000004b: R31 := R31 + 0x10 -00000050: call R30 with noreturn - -00000577: sub _init(_init_result) -000005ab: _init_result :: out u32 = low:32[R0] - -000004cb: -000004d1: #5 := R31 - 0x10 -000004d7: mem := mem with [#5, el]:u64 <- R29 -000004dd: mem := mem with [#5 + 8, el]:u64 <- R30 -000004e1: R31 := #5 -000004e7: R29 := R31 -000004ec: R30 := 0x590 -000004ee: call @call_weak_fn with return %000004f0 - -000004f0: -000004f5: R29 := mem[R31, el]:u64 -000004fa: R30 := mem[R31 + 8, el]:u64 -000004fe: R31 := R31 + 0x10 -00000503: call R30 with noreturn - -00000578: sub _start(_start_result) -000005ac: _start_result :: out u32 = low:32[R0] - -00000184: -00000189: R29 := 0 -0000018e: R30 := 0 -00000194: R5 := R0 -0000019b: R1 := mem[R31, el]:u64 -000001a1: R2 := R31 + 8 -000001a7: R6 := R31 -000001ac: R0 := 0x10000 -000001b3: R0 := mem[R0 + 0xFF0, el]:u64 -000001b8: R3 := 0 -000001bd: R4 := 0 -000001c2: R30 := 0x630 -000001c5: call @__libc_start_main with return %000001c7 - -000001c7: -000001ca: R30 := 0x634 -000001cd: call @abort with return %0000059b - -0000059b: -0000059c: call @call_weak_fn with noreturn - -0000057b: sub abort() - - -000001cb: -0000044a: R16 := 0x10000 -00000451: R17 := mem[R16 + 0xFC8, el]:u64 -00000457: R16 := R16 + 0xFC8 -0000045c: call R17 with noreturn - -0000057c: sub call_weak_fn(call_weak_fn_result) -000005ad: call_weak_fn_result :: out u32 = low:32[R0] - -000001cf: -000001d2: R0 := 0x10000 -000001d9: R0 := mem[R0 + 0xFE8, el]:u64 -000001df: when R0 = 0 goto %000001dd -0000059d: goto %00000366 - -000001dd: -000001e5: call R30 with noreturn - -00000366: -00000369: goto @__gmon_start__ - -00000367: -00000434: R16 := 0x10000 -0000043b: R17 := mem[R16 + 0xFC0, el]:u64 -00000441: R16 := R16 + 0xFC0 -00000446: call R17 with noreturn - -0000057e: sub deregister_tm_clones(deregister_tm_clones_result) -000005ae: deregister_tm_clones_result :: out u32 = low:32[R0] - -000001eb: -000001ee: R0 := 0x11000 -000001f4: R0 := R0 + 0x10 -000001f9: R1 := 0x11000 -000001ff: R1 := R1 + 0x10 -00000205: #1 := ~R0 -0000020a: #2 := R1 + ~R0 -00000210: VF := extend:65[#2 + 1] <> extend:65[R1] + extend:65[#1] + 1 -00000216: CF := pad:65[#2 + 1] <> pad:65[R1] + pad:65[#1] + 1 -0000021a: ZF := #2 + 1 = 0 -0000021e: NF := 63:63[#2 + 1] -00000224: when ZF goto %00000222 -0000059e: goto %00000348 - -00000348: -0000034b: R1 := 0x10000 -00000352: R1 := mem[R1 + 0xFD8, el]:u64 -00000357: when R1 = 0 goto %00000222 -0000059f: goto %0000035b - -00000222: -0000022a: call R30 with noreturn - -0000035b: -0000035f: R16 := R1 -00000364: call R16 with noreturn - -00000581: sub frame_dummy(frame_dummy_result) -000005af: frame_dummy_result :: out u32 = low:32[R0] - -000002c2: -000002c4: call @register_tm_clones with noreturn - -00000582: sub main(main_argc, main_argv, main_result) -000005b0: main_argc :: in u32 = low:32[R0] -000005b1: main_argv :: in out u64 = R1 -000005b2: main_result :: out u32 = low:32[R0] - -000002c6: -000002c9: R0 := 0x11000 -000002cf: R0 := R0 + 0x18 -000002d6: mem := mem with [R0, el]:u32 <- 0 -000002db: R0 := 0x11000 -000002e1: R0 := R0 + 0x18 -000002e8: R0 := pad:64[mem[R0, el]:u32] -000002ed: call R30 with noreturn - -00000583: sub register_tm_clones(register_tm_clones_result) -000005b3: register_tm_clones_result :: out u32 = low:32[R0] - -0000022c: -0000022f: R0 := 0x11000 -00000235: R0 := R0 + 0x10 -0000023a: R1 := 0x11000 -00000240: R1 := R1 + 0x10 -00000247: R1 := R1 + ~R0 + 1 -0000024d: R2 := 0.63:63[R1] -00000254: R1 := R2 + (R1 ~>> 3) -0000025a: R1 := extend:64[63:1[R1]] -00000260: when R1 = 0 goto %0000025e -000005a0: goto %0000032a - -0000032a: -0000032d: R2 := 0x10000 -00000334: R2 := mem[R2 + 0xFF8, el]:u64 -00000339: when R2 = 0 goto %0000025e -000005a1: goto %0000033d - -0000025e: -00000266: call R30 with noreturn - -0000033d: -00000341: R16 := R2 -00000346: call R16 with noreturn diff --git a/src/test/correct/basic_arrays_read/gcc/basic_arrays_read.expected b/src/test/correct/basic_arrays_read/gcc/basic_arrays_read.expected index 1113b4e5b..1d9020ee3 100644 --- a/src/test/correct/basic_arrays_read/gcc/basic_arrays_read.expected +++ b/src/test/correct/basic_arrays_read/gcc/basic_arrays_read.expected @@ -1,16 +1,18 @@ var {:extern} Gamma_R0: bool; +var {:extern} Gamma_R1: bool; var {:extern} Gamma_mem: [bv64]bool; var {:extern} R0: bv64; +var {:extern} R1: bv64; var {:extern} mem: [bv64]bv8; const {:extern} $arr_addr: bv64; -axiom ($arr_addr == 69656bv64); +axiom ($arr_addr == 4325400bv64); function {:extern} L(mem$in: [bv64]bv8, index: bv64) returns (bool) { (if ((index == bvadd64($arr_addr, 4bv64)) || (index == bvadd64($arr_addr, 0bv64))) then false else false) } function {:extern} {:bvbuiltin "bvadd"} bvadd64(bv64, bv64) returns (bv64); -function {:extern} gamma_load32(gammaMap: [bv64]bool, index: bv64) returns (bool) { - (gammaMap[bvadd64(index, 3bv64)] && (gammaMap[bvadd64(index, 2bv64)] && (gammaMap[bvadd64(index, 1bv64)] && gammaMap[index]))) +function {:extern} gamma_load64(gammaMap: [bv64]bool, index: bv64) returns (bool) { + (gammaMap[bvadd64(index, 7bv64)] && (gammaMap[bvadd64(index, 6bv64)] && (gammaMap[bvadd64(index, 5bv64)] && (gammaMap[bvadd64(index, 4bv64)] && (gammaMap[bvadd64(index, 3bv64)] && (gammaMap[bvadd64(index, 2bv64)] && (gammaMap[bvadd64(index, 1bv64)] && gammaMap[index]))))))) } function {:extern} gamma_store32(gammaMap: [bv64]bool, index: bv64, value: bool) returns ([bv64]bool) { @@ -29,16 +31,11 @@ function {:extern} memory_store32_le(memory: [bv64]bv8, index: bv64, value: bv32 memory[index := value[8:0]][bvadd64(index, 1bv64) := value[16:8]][bvadd64(index, 2bv64) := value[24:16]][bvadd64(index, 3bv64) := value[32:24]] } -function {:extern} {:bvbuiltin "zero_extend 32"} zero_extend32_32(bv32) returns (bv64); procedure {:extern} rely(); modifies Gamma_mem, mem; ensures (forall i: bv64 :: (((mem[i] == old(mem[i])) ==> (Gamma_mem[i] == old(Gamma_mem[i]))))); ensures (old(memory_load32_le(mem, bvadd64($arr_addr, 0bv64))) == memory_load32_le(mem, bvadd64($arr_addr, 0bv64))); - free ensures (memory_load32_le(mem, 1860bv64) == 131073bv32); - free ensures (memory_load64_le(mem, 69016bv64) == 1808bv64); - free ensures (memory_load64_le(mem, 69024bv64) == 1728bv64); - free ensures (memory_load64_le(mem, 69616bv64) == 1812bv64); - free ensures (memory_load64_le(mem, 69640bv64) == 69640bv64); + free ensures (memory_load32_le(mem, 4196312bv64) == 131073bv32); procedure {:extern} rely_transitive(); modifies Gamma_mem, mem; @@ -65,41 +62,31 @@ implementation {:extern} guarantee_reflexive() assert true; } -procedure main_1812(); - modifies Gamma_R0, Gamma_mem, R0, mem; - free requires (memory_load64_le(mem, 69632bv64) == 0bv64); - free requires (memory_load64_le(mem, 69640bv64) == 69640bv64); - free requires (memory_load32_le(mem, 1860bv64) == 131073bv32); - free requires (memory_load64_le(mem, 69016bv64) == 1808bv64); - free requires (memory_load64_le(mem, 69024bv64) == 1728bv64); - free requires (memory_load64_le(mem, 69616bv64) == 1812bv64); - free requires (memory_load64_le(mem, 69640bv64) == 69640bv64); - free ensures (memory_load32_le(mem, 1860bv64) == 131073bv32); - free ensures (memory_load64_le(mem, 69016bv64) == 1808bv64); - free ensures (memory_load64_le(mem, 69024bv64) == 1728bv64); - free ensures (memory_load64_le(mem, 69616bv64) == 1812bv64); - free ensures (memory_load64_le(mem, 69640bv64) == 69640bv64); +procedure main(); + modifies Gamma_R0, Gamma_R1, Gamma_mem, R0, R1, mem; + free requires (memory_load64_le(mem, 4325376bv64) == 0bv64); + free requires (memory_load64_le(mem, 4325384bv64) == 0bv64); + free requires (memory_load32_le(mem, 4196312bv64) == 131073bv32); + free ensures (memory_load32_le(mem, 4196312bv64) == 131073bv32); -implementation main_1812() +implementation main() { - var Gamma_load18: bool; - var load18: bv32; + var $load$14: bv64; + var Gamma_$load$14: bool; lmain: assume {:captureState "lmain"} true; - R0, Gamma_R0 := 69632bv64, true; - R0, Gamma_R0 := bvadd64(R0, 24bv64), Gamma_R0; + R1, Gamma_R1 := 4321280bv64, true; call rely(); - assert (L(mem, R0) ==> true); - mem, Gamma_mem := memory_store32_le(mem, R0, 0bv32), gamma_store32(Gamma_mem, R0, true); - assume {:captureState "%000002d6"} true; - R0, Gamma_R0 := 69632bv64, true; - R0, Gamma_R0 := bvadd64(R0, 24bv64), Gamma_R0; + $load$14, Gamma_$load$14 := memory_load64_le(mem, bvadd64(R1, 4080bv64)), (gamma_load64(Gamma_mem, bvadd64(R1, 4080bv64)) || L(mem, bvadd64(R1, 4080bv64))); + R1, Gamma_R1 := $load$14, Gamma_$load$14; + R0, Gamma_R0 := 0bv64, true; call rely(); - load18, Gamma_load18 := memory_load32_le(mem, R0), (gamma_load32(Gamma_mem, R0) || L(mem, R0)); - R0, Gamma_R0 := zero_extend32_32(load18), Gamma_load18; - goto main_1812_basil_return; - main_1812_basil_return: - assume {:captureState "main_1812_basil_return"} true; + assert (L(mem, R1) ==> true); + mem, Gamma_mem := memory_store32_le(mem, R1, 0bv32), gamma_store32(Gamma_mem, R1, true); + assume {:captureState "%00000254"} true; + goto main_basil_return; + main_basil_return: + assume {:captureState "main_basil_return"} true; return; } diff --git a/src/test/correct/basic_arrays_read/gcc/basic_arrays_read.gts b/src/test/correct/basic_arrays_read/gcc/basic_arrays_read.gts deleted file mode 100644 index 8078997fa..000000000 Binary files a/src/test/correct/basic_arrays_read/gcc/basic_arrays_read.gts and /dev/null differ diff --git a/src/test/correct/basic_arrays_read/gcc/basic_arrays_read.md5sum b/src/test/correct/basic_arrays_read/gcc/basic_arrays_read.md5sum new file mode 100644 index 000000000..d93b53c7d --- /dev/null +++ b/src/test/correct/basic_arrays_read/gcc/basic_arrays_read.md5sum @@ -0,0 +1,5 @@ +548a79cd3199b0f70599f61176ed7cf3 correct/basic_arrays_read/gcc/a.out +e792a0c493eae8e834699f96cae11a5a correct/basic_arrays_read/gcc/basic_arrays_read.adt +b04fa20ce4855b86e0f200eee67bd827 correct/basic_arrays_read/gcc/basic_arrays_read.bir +4b6469e0e806683ae4ed52b2aa470a02 correct/basic_arrays_read/gcc/basic_arrays_read.relf +73bd9f99b70b4668a6e85edc5b8d1f60 correct/basic_arrays_read/gcc/basic_arrays_read.gts diff --git a/src/test/correct/basic_arrays_read/gcc/basic_arrays_read.relf b/src/test/correct/basic_arrays_read/gcc/basic_arrays_read.relf deleted file mode 100644 index ebab8e3b6..000000000 --- a/src/test/correct/basic_arrays_read/gcc/basic_arrays_read.relf +++ /dev/null @@ -1,121 +0,0 @@ - -Relocation section '.rela.dyn' at offset 0x460 contains 8 entries: - Offset Info Type Symbol's Value Symbol's Name + Addend -0000000000010d98 0000000000000403 R_AARCH64_RELATIVE 710 -0000000000010da0 0000000000000403 R_AARCH64_RELATIVE 6c0 -0000000000010ff0 0000000000000403 R_AARCH64_RELATIVE 714 -0000000000011008 0000000000000403 R_AARCH64_RELATIVE 11008 -0000000000010fd8 0000000400000401 R_AARCH64_GLOB_DAT 0000000000000000 _ITM_deregisterTMCloneTable + 0 -0000000000010fe0 0000000500000401 R_AARCH64_GLOB_DAT 0000000000000000 __cxa_finalize@GLIBC_2.17 + 0 -0000000000010fe8 0000000600000401 R_AARCH64_GLOB_DAT 0000000000000000 __gmon_start__ + 0 -0000000000010ff8 0000000800000401 R_AARCH64_GLOB_DAT 0000000000000000 _ITM_registerTMCloneTable + 0 - -Relocation section '.rela.plt' at offset 0x520 contains 4 entries: - Offset Info Type Symbol's Value Symbol's Name + Addend -0000000000010fb0 0000000300000402 R_AARCH64_JUMP_SLOT 0000000000000000 __libc_start_main@GLIBC_2.34 + 0 -0000000000010fb8 0000000500000402 R_AARCH64_JUMP_SLOT 0000000000000000 __cxa_finalize@GLIBC_2.17 + 0 -0000000000010fc0 0000000600000402 R_AARCH64_JUMP_SLOT 0000000000000000 __gmon_start__ + 0 -0000000000010fc8 0000000700000402 R_AARCH64_JUMP_SLOT 0000000000000000 abort@GLIBC_2.17 + 0 - -Symbol table '.dynsym' contains 9 entries: - Num: Value Size Type Bind Vis Ndx Name - 0: 0000000000000000 0 NOTYPE LOCAL DEFAULT UND - 1: 0000000000000580 0 SECTION LOCAL DEFAULT 11 .init - 2: 0000000000011000 0 SECTION LOCAL DEFAULT 22 .data - 3: 0000000000000000 0 FUNC GLOBAL DEFAULT UND __libc_start_main@GLIBC_2.34 (2) - 4: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_deregisterTMCloneTable - 5: 0000000000000000 0 FUNC WEAK DEFAULT UND __cxa_finalize@GLIBC_2.17 (3) - 6: 0000000000000000 0 NOTYPE WEAK DEFAULT UND __gmon_start__ - 7: 0000000000000000 0 FUNC GLOBAL DEFAULT UND abort@GLIBC_2.17 (3) - 8: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_registerTMCloneTable - -Symbol table '.symtab' contains 88 entries: - Num: Value Size Type Bind Vis Ndx Name - 0: 0000000000000000 0 NOTYPE LOCAL DEFAULT UND - 1: 0000000000000238 0 SECTION LOCAL DEFAULT 1 .interp - 2: 0000000000000254 0 SECTION LOCAL DEFAULT 2 .note.gnu.build-id - 3: 0000000000000278 0 SECTION LOCAL DEFAULT 3 .note.ABI-tag - 4: 0000000000000298 0 SECTION LOCAL DEFAULT 4 .gnu.hash - 5: 00000000000002b8 0 SECTION LOCAL DEFAULT 5 .dynsym - 6: 0000000000000390 0 SECTION LOCAL DEFAULT 6 .dynstr - 7: 000000000000041e 0 SECTION LOCAL DEFAULT 7 .gnu.version - 8: 0000000000000430 0 SECTION LOCAL DEFAULT 8 .gnu.version_r - 9: 0000000000000460 0 SECTION LOCAL DEFAULT 9 .rela.dyn - 10: 0000000000000520 0 SECTION LOCAL DEFAULT 10 .rela.plt - 11: 0000000000000580 0 SECTION LOCAL DEFAULT 11 .init - 12: 00000000000005a0 0 SECTION LOCAL DEFAULT 12 .plt - 13: 0000000000000600 0 SECTION LOCAL DEFAULT 13 .text - 14: 0000000000000730 0 SECTION LOCAL DEFAULT 14 .fini - 15: 0000000000000744 0 SECTION LOCAL DEFAULT 15 .rodata - 16: 0000000000000748 0 SECTION LOCAL DEFAULT 16 .eh_frame_hdr - 17: 0000000000000788 0 SECTION LOCAL DEFAULT 17 .eh_frame - 18: 0000000000010d98 0 SECTION LOCAL DEFAULT 18 .init_array - 19: 0000000000010da0 0 SECTION LOCAL DEFAULT 19 .fini_array - 20: 0000000000010da8 0 SECTION LOCAL DEFAULT 20 .dynamic - 21: 0000000000010f98 0 SECTION LOCAL DEFAULT 21 .got - 22: 0000000000011000 0 SECTION LOCAL DEFAULT 22 .data - 23: 0000000000011010 0 SECTION LOCAL DEFAULT 23 .bss - 24: 0000000000000000 0 SECTION LOCAL DEFAULT 24 .comment - 25: 0000000000000000 0 FILE LOCAL DEFAULT ABS Scrt1.o - 26: 0000000000000278 0 NOTYPE LOCAL DEFAULT 3 $d - 27: 0000000000000278 32 OBJECT LOCAL DEFAULT 3 __abi_tag - 28: 0000000000000600 0 NOTYPE LOCAL DEFAULT 13 $x - 29: 000000000000079c 0 NOTYPE LOCAL DEFAULT 17 $d - 30: 0000000000000744 0 NOTYPE LOCAL DEFAULT 15 $d - 31: 0000000000000000 0 FILE LOCAL DEFAULT ABS crti.o - 32: 0000000000000634 0 NOTYPE LOCAL DEFAULT 13 $x - 33: 0000000000000634 20 FUNC LOCAL DEFAULT 13 call_weak_fn - 34: 0000000000000580 0 NOTYPE LOCAL DEFAULT 11 $x - 35: 0000000000000730 0 NOTYPE LOCAL DEFAULT 14 $x - 36: 0000000000000000 0 FILE LOCAL DEFAULT ABS crtn.o - 37: 0000000000000590 0 NOTYPE LOCAL DEFAULT 11 $x - 38: 000000000000073c 0 NOTYPE LOCAL DEFAULT 14 $x - 39: 0000000000000000 0 FILE LOCAL DEFAULT ABS crtstuff.c - 40: 0000000000000650 0 NOTYPE LOCAL DEFAULT 13 $x - 41: 0000000000000650 0 FUNC LOCAL DEFAULT 13 deregister_tm_clones - 42: 0000000000000680 0 FUNC LOCAL DEFAULT 13 register_tm_clones - 43: 0000000000011008 0 NOTYPE LOCAL DEFAULT 22 $d - 44: 00000000000006c0 0 FUNC LOCAL DEFAULT 13 __do_global_dtors_aux - 45: 0000000000011010 1 OBJECT LOCAL DEFAULT 23 completed.0 - 46: 0000000000010da0 0 NOTYPE LOCAL DEFAULT 19 $d - 47: 0000000000010da0 0 OBJECT LOCAL DEFAULT 19 __do_global_dtors_aux_fini_array_entry - 48: 0000000000000710 0 FUNC LOCAL DEFAULT 13 frame_dummy - 49: 0000000000010d98 0 NOTYPE LOCAL DEFAULT 18 $d - 50: 0000000000010d98 0 OBJECT LOCAL DEFAULT 18 __frame_dummy_init_array_entry - 51: 00000000000007b0 0 NOTYPE LOCAL DEFAULT 17 $d - 52: 0000000000011010 0 NOTYPE LOCAL DEFAULT 23 $d - 53: 0000000000000000 0 FILE LOCAL DEFAULT ABS basic_arrays_read.c - 54: 0000000000011018 0 NOTYPE LOCAL DEFAULT 23 $d - 55: 0000000000000714 0 NOTYPE LOCAL DEFAULT 13 $x - 56: 0000000000000810 0 NOTYPE LOCAL DEFAULT 17 $d - 57: 0000000000000000 0 FILE LOCAL DEFAULT ABS crtstuff.c - 58: 0000000000000824 0 NOTYPE LOCAL DEFAULT 17 $d - 59: 0000000000000824 0 OBJECT LOCAL DEFAULT 17 __FRAME_END__ - 60: 0000000000000000 0 FILE LOCAL DEFAULT ABS - 61: 0000000000010da8 0 OBJECT LOCAL DEFAULT ABS _DYNAMIC - 62: 0000000000000748 0 NOTYPE LOCAL DEFAULT 16 __GNU_EH_FRAME_HDR - 63: 0000000000010fd0 0 OBJECT LOCAL DEFAULT ABS _GLOBAL_OFFSET_TABLE_ - 64: 00000000000005a0 0 NOTYPE LOCAL DEFAULT 12 $x - 65: 0000000000000000 0 FUNC GLOBAL DEFAULT UND __libc_start_main@GLIBC_2.34 - 66: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_deregisterTMCloneTable - 67: 0000000000011000 0 NOTYPE WEAK DEFAULT 22 data_start - 68: 0000000000011010 0 NOTYPE GLOBAL DEFAULT 23 __bss_start__ - 69: 0000000000000000 0 FUNC WEAK DEFAULT UND __cxa_finalize@GLIBC_2.17 - 70: 0000000000011020 0 NOTYPE GLOBAL DEFAULT 23 _bss_end__ - 71: 0000000000011010 0 NOTYPE GLOBAL DEFAULT 22 _edata - 72: 0000000000000730 0 FUNC GLOBAL HIDDEN 14 _fini - 73: 0000000000011020 0 NOTYPE GLOBAL DEFAULT 23 __bss_end__ - 74: 0000000000011000 0 NOTYPE GLOBAL DEFAULT 22 __data_start - 75: 0000000000000000 0 NOTYPE WEAK DEFAULT UND __gmon_start__ - 76: 0000000000011008 0 OBJECT GLOBAL HIDDEN 22 __dso_handle - 77: 0000000000000000 0 FUNC GLOBAL DEFAULT UND abort@GLIBC_2.17 - 78: 0000000000000744 4 OBJECT GLOBAL DEFAULT 15 _IO_stdin_used - 79: 0000000000011020 0 NOTYPE GLOBAL DEFAULT 23 _end - 80: 0000000000000600 52 FUNC GLOBAL DEFAULT 13 _start - 81: 0000000000011020 0 NOTYPE GLOBAL DEFAULT 23 __end__ - 82: 0000000000011010 0 NOTYPE GLOBAL DEFAULT 23 __bss_start - 83: 0000000000000714 28 FUNC GLOBAL DEFAULT 13 main - 84: 0000000000011018 8 OBJECT GLOBAL DEFAULT 23 arr - 85: 0000000000011010 0 OBJECT GLOBAL HIDDEN 22 __TMC_END__ - 86: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_registerTMCloneTable - 87: 0000000000000580 0 FUNC GLOBAL HIDDEN 11 _init diff --git a/src/test/correct/basic_arrays_read/gcc/basic_arrays_read_gtirb.expected b/src/test/correct/basic_arrays_read/gcc/basic_arrays_read_gtirb.expected index dac86764f..4d5c3bc71 100644 --- a/src/test/correct/basic_arrays_read/gcc/basic_arrays_read_gtirb.expected +++ b/src/test/correct/basic_arrays_read/gcc/basic_arrays_read_gtirb.expected @@ -1,16 +1,18 @@ var {:extern} Gamma_R0: bool; +var {:extern} Gamma_R1: bool; var {:extern} Gamma_mem: [bv64]bool; var {:extern} R0: bv64; +var {:extern} R1: bv64; var {:extern} mem: [bv64]bv8; const {:extern} $arr_addr: bv64; -axiom ($arr_addr == 69656bv64); +axiom ($arr_addr == 4325400bv64); function {:extern} L(mem$in: [bv64]bv8, index: bv64) returns (bool) { (if ((index == bvadd64($arr_addr, 4bv64)) || (index == bvadd64($arr_addr, 0bv64))) then false else false) } function {:extern} {:bvbuiltin "bvadd"} bvadd64(bv64, bv64) returns (bv64); -function {:extern} gamma_load32(gammaMap: [bv64]bool, index: bv64) returns (bool) { - (gammaMap[bvadd64(index, 3bv64)] && (gammaMap[bvadd64(index, 2bv64)] && (gammaMap[bvadd64(index, 1bv64)] && gammaMap[index]))) +function {:extern} gamma_load64(gammaMap: [bv64]bool, index: bv64) returns (bool) { + (gammaMap[bvadd64(index, 7bv64)] && (gammaMap[bvadd64(index, 6bv64)] && (gammaMap[bvadd64(index, 5bv64)] && (gammaMap[bvadd64(index, 4bv64)] && (gammaMap[bvadd64(index, 3bv64)] && (gammaMap[bvadd64(index, 2bv64)] && (gammaMap[bvadd64(index, 1bv64)] && gammaMap[index]))))))) } function {:extern} gamma_store32(gammaMap: [bv64]bool, index: bv64, value: bool) returns ([bv64]bool) { @@ -29,16 +31,11 @@ function {:extern} memory_store32_le(memory: [bv64]bv8, index: bv64, value: bv32 memory[index := value[8:0]][bvadd64(index, 1bv64) := value[16:8]][bvadd64(index, 2bv64) := value[24:16]][bvadd64(index, 3bv64) := value[32:24]] } -function {:extern} {:bvbuiltin "zero_extend 32"} zero_extend32_32(bv32) returns (bv64); procedure {:extern} rely(); modifies Gamma_mem, mem; ensures (forall i: bv64 :: (((mem[i] == old(mem[i])) ==> (Gamma_mem[i] == old(Gamma_mem[i]))))); ensures (old(memory_load32_le(mem, bvadd64($arr_addr, 0bv64))) == memory_load32_le(mem, bvadd64($arr_addr, 0bv64))); - free ensures (memory_load32_le(mem, 1860bv64) == 131073bv32); - free ensures (memory_load64_le(mem, 69016bv64) == 1808bv64); - free ensures (memory_load64_le(mem, 69024bv64) == 1728bv64); - free ensures (memory_load64_le(mem, 69616bv64) == 1812bv64); - free ensures (memory_load64_le(mem, 69640bv64) == 69640bv64); + free ensures (memory_load32_le(mem, 4196312bv64) == 131073bv32); procedure {:extern} rely_transitive(); modifies Gamma_mem, mem; @@ -65,41 +62,31 @@ implementation {:extern} guarantee_reflexive() assert true; } -procedure main_1812(); - modifies Gamma_R0, Gamma_mem, R0, mem; - free requires (memory_load64_le(mem, 69632bv64) == 0bv64); - free requires (memory_load64_le(mem, 69640bv64) == 69640bv64); - free requires (memory_load32_le(mem, 1860bv64) == 131073bv32); - free requires (memory_load64_le(mem, 69016bv64) == 1808bv64); - free requires (memory_load64_le(mem, 69024bv64) == 1728bv64); - free requires (memory_load64_le(mem, 69616bv64) == 1812bv64); - free requires (memory_load64_le(mem, 69640bv64) == 69640bv64); - free ensures (memory_load32_le(mem, 1860bv64) == 131073bv32); - free ensures (memory_load64_le(mem, 69016bv64) == 1808bv64); - free ensures (memory_load64_le(mem, 69024bv64) == 1728bv64); - free ensures (memory_load64_le(mem, 69616bv64) == 1812bv64); - free ensures (memory_load64_le(mem, 69640bv64) == 69640bv64); +procedure main(); + modifies Gamma_R0, Gamma_R1, Gamma_mem, R0, R1, mem; + free requires (memory_load64_le(mem, 4325376bv64) == 0bv64); + free requires (memory_load64_le(mem, 4325384bv64) == 0bv64); + free requires (memory_load32_le(mem, 4196312bv64) == 131073bv32); + free ensures (memory_load32_le(mem, 4196312bv64) == 131073bv32); -implementation main_1812() +implementation main() { - var Gamma_load1: bool; - var load1: bv32; - main_1812__0__LzETjB03RAicd22wmYTXcg: - assume {:captureState "main_1812__0__LzETjB03RAicd22wmYTXcg"} true; - R0, Gamma_R0 := 69632bv64, true; - R0, Gamma_R0 := bvadd64(R0, 24bv64), Gamma_R0; + var $load3: bv64; + var Gamma_$load3: bool; + $main$__0__$wtDzxxOjSJeWxzGBUpQYxA: + assume {:captureState "$main$__0__$wtDzxxOjSJeWxzGBUpQYxA"} true; + R1, Gamma_R1 := 4321280bv64, true; call rely(); - assert (L(mem, R0) ==> true); - mem, Gamma_mem := memory_store32_le(mem, R0, 0bv32), gamma_store32(Gamma_mem, R0, true); - assume {:captureState "1820_0"} true; - R0, Gamma_R0 := 69632bv64, true; - R0, Gamma_R0 := bvadd64(R0, 24bv64), Gamma_R0; + $load3, Gamma_$load3 := memory_load64_le(mem, bvadd64(R1, 4080bv64)), (gamma_load64(Gamma_mem, bvadd64(R1, 4080bv64)) || L(mem, bvadd64(R1, 4080bv64))); + R1, Gamma_R1 := $load3, Gamma_$load3; + R0, Gamma_R0 := 0bv64, true; call rely(); - load1, Gamma_load1 := memory_load32_le(mem, R0), (gamma_load32(Gamma_mem, R0) || L(mem, R0)); - R0, Gamma_R0 := zero_extend32_32(load1), Gamma_load1; - goto main_1812_basil_return; - main_1812_basil_return: - assume {:captureState "main_1812_basil_return"} true; + assert (L(mem, R1) ==> true); + mem, Gamma_mem := memory_store32_le(mem, R1, 0bv32), gamma_store32(Gamma_mem, R1, true); + assume {:captureState "4195980$0"} true; + goto main_basil_return; + main_basil_return: + assume {:captureState "main_basil_return"} true; return; } diff --git a/src/test/correct/basic_arrays_read/gcc_pic/basic_arrays_read.adt b/src/test/correct/basic_arrays_read/gcc_pic/basic_arrays_read.adt deleted file mode 100644 index 9c1e5d43b..000000000 --- a/src/test/correct/basic_arrays_read/gcc_pic/basic_arrays_read.adt +++ /dev/null @@ -1,499 +0,0 @@ -Project(Attrs([Attr("filename","\"gcc_pic/basic_arrays_read.out\""), -Attr("image-specification","(declare abi (name str))\n(declare arch (name str))\n(declare base-address (addr int))\n(declare bias (off int))\n(declare bits (size int))\n(declare code-region (addr int) (size int) (off int))\n(declare code-start (addr int))\n(declare entry-point (addr int))\n(declare external-reference (addr int) (name str))\n(declare format (name str))\n(declare is-executable (flag bool))\n(declare is-little-endian (flag bool))\n(declare llvm:base-address (addr int))\n(declare llvm:code-entry (name str) (off int) (size int))\n(declare llvm:coff-import-library (name str))\n(declare llvm:coff-virtual-section-header (name str) (addr int) (size int))\n(declare llvm:elf-program-header (name str) (off int) (size int))\n(declare llvm:elf-program-header-flags (name str) (ld bool) (r bool) \n (w bool) (x bool))\n(declare llvm:elf-virtual-program-header (name str) (addr int) (size int))\n(declare llvm:entry-point (addr int))\n(declare llvm:macho-symbol (name str) (value int))\n(declare llvm:name-reference (at int) (name str))\n(declare llvm:relocation (at int) (addr int))\n(declare llvm:section-entry (name str) (addr int) (size int) (off int))\n(declare llvm:section-flags (name str) (r bool) (w bool) (x bool))\n(declare llvm:segment-command (name str) (off int) (size int))\n(declare llvm:segment-command-flags (name str) (r bool) (w bool) (x bool))\n(declare llvm:symbol-entry (name str) (addr int) (size int) (off int)\n (value int))\n(declare llvm:virtual-segment-command (name str) (addr int) (size int))\n(declare mapped (addr int) (size int) (off int))\n(declare named-region (addr int) (size int) (name str))\n(declare named-symbol (addr int) (name str))\n(declare require (name str))\n(declare section (addr int) (size int))\n(declare segment (addr int) (size int) (r bool) (w bool) (x bool))\n(declare subarch (name str))\n(declare symbol-chunk (addr int) (size int) (root int))\n(declare symbol-value (addr int) (value int))\n(declare system (name str))\n(declare vendor (name str))\n\n(abi unknown)\n(arch aarch64)\n(base-address 0)\n(bias 0)\n(bits 64)\n(code-region 1904 20 1904)\n(code-region 1600 304 1600)\n(code-region 1456 96 1456)\n(code-region 1432 24 1432)\n(code-start 1652)\n(code-start 1600)\n(code-start 1876)\n(entry-point 1600)\n(external-reference 69584 _ITM_deregisterTMCloneTable)\n(external-reference 69592 __cxa_finalize)\n(external-reference 69600 __gmon_start__)\n(external-reference 69624 _ITM_registerTMCloneTable)\n(external-reference 69544 __libc_start_main)\n(external-reference 69552 __cxa_finalize)\n(external-reference 69560 __gmon_start__)\n(external-reference 69568 abort)\n(format elf)\n(is-executable true)\n(is-little-endian true)\n(llvm:base-address 0)\n(llvm:code-entry abort 0 0)\n(llvm:code-entry __cxa_finalize 0 0)\n(llvm:code-entry __libc_start_main 0 0)\n(llvm:code-entry _init 1432 0)\n(llvm:code-entry main 1876 28)\n(llvm:code-entry _start 1600 52)\n(llvm:code-entry abort@GLIBC_2.17 0 0)\n(llvm:code-entry _fini 1904 0)\n(llvm:code-entry __cxa_finalize@GLIBC_2.17 0 0)\n(llvm:code-entry __libc_start_main@GLIBC_2.34 0 0)\n(llvm:code-entry frame_dummy 1872 0)\n(llvm:code-entry __do_global_dtors_aux 1792 0)\n(llvm:code-entry register_tm_clones 1728 0)\n(llvm:code-entry deregister_tm_clones 1680 0)\n(llvm:code-entry call_weak_fn 1652 20)\n(llvm:code-entry .fini 1904 20)\n(llvm:code-entry .text 1600 304)\n(llvm:code-entry .plt 1456 96)\n(llvm:code-entry .init 1432 24)\n(llvm:elf-program-header 08 3472 624)\n(llvm:elf-program-header 07 0 0)\n(llvm:elf-program-header 06 1928 60)\n(llvm:elf-program-header 05 596 68)\n(llvm:elf-program-header 04 3488 496)\n(llvm:elf-program-header 03 3472 640)\n(llvm:elf-program-header 02 0 2152)\n(llvm:elf-program-header 01 568 27)\n(llvm:elf-program-header 00 64 504)\n(llvm:elf-program-header-flags 08 false true false false)\n(llvm:elf-program-header-flags 07 false true true false)\n(llvm:elf-program-header-flags 06 false true false false)\n(llvm:elf-program-header-flags 05 false true false false)\n(llvm:elf-program-header-flags 04 false true true false)\n(llvm:elf-program-header-flags 03 true true true false)\n(llvm:elf-program-header-flags 02 true true false true)\n(llvm:elf-program-header-flags 01 false true false false)\n(llvm:elf-program-header-flags 00 false true false false)\n(llvm:elf-virtual-program-header 08 69008 624)\n(llvm:elf-virtual-program-header 07 0 0)\n(llvm:elf-virtual-program-header 06 1928 60)\n(llvm:elf-virtual-program-header 05 596 68)\n(llvm:elf-virtual-program-header 04 69024 496)\n(llvm:elf-virtual-program-header 03 69008 656)\n(llvm:elf-virtual-program-header 02 0 2152)\n(llvm:elf-virtual-program-header 01 568 27)\n(llvm:elf-virtual-program-header 00 64 504)\n(llvm:entry-point 1600)\n(llvm:name-reference 69568 abort)\n(llvm:name-reference 69560 __gmon_start__)\n(llvm:name-reference 69552 __cxa_finalize)\n(llvm:name-reference 69544 __libc_start_main)\n(llvm:name-reference 69624 _ITM_registerTMCloneTable)\n(llvm:name-reference 69600 __gmon_start__)\n(llvm:name-reference 69592 __cxa_finalize)\n(llvm:name-reference 69584 _ITM_deregisterTMCloneTable)\n(llvm:section-entry .shstrtab 0 250 6829)\n(llvm:section-entry .strtab 0 557 6272)\n(llvm:section-entry .symtab 0 2112 4160)\n(llvm:section-entry .comment 0 43 4112)\n(llvm:section-entry .bss 69648 16 4112)\n(llvm:section-entry .data 69632 16 4096)\n(llvm:section-entry .got 69520 112 3984)\n(llvm:section-entry .dynamic 69024 496 3488)\n(llvm:section-entry .fini_array 69016 8 3480)\n(llvm:section-entry .init_array 69008 8 3472)\n(llvm:section-entry .eh_frame 1992 160 1992)\n(llvm:section-entry .eh_frame_hdr 1928 60 1928)\n(llvm:section-entry .rodata 1924 4 1924)\n(llvm:section-entry .fini 1904 20 1904)\n(llvm:section-entry .text 1600 304 1600)\n(llvm:section-entry .plt 1456 96 1456)\n(llvm:section-entry .init 1432 24 1432)\n(llvm:section-entry .rela.plt 1336 96 1336)\n(llvm:section-entry .rela.dyn 1120 216 1120)\n(llvm:section-entry .gnu.version_r 1072 48 1072)\n(llvm:section-entry .gnu.version 1054 18 1054)\n(llvm:section-entry .dynstr 912 141 912)\n(llvm:section-entry .dynsym 696 216 696)\n(llvm:section-entry .gnu.hash 664 28 664)\n(llvm:section-entry .note.ABI-tag 632 32 632)\n(llvm:section-entry .note.gnu.build-id 596 36 596)\n(llvm:section-entry .interp 568 27 568)\n(llvm:section-flags .shstrtab true false false)\n(llvm:section-flags .strtab true false false)\n(llvm:section-flags .symtab true false false)\n(llvm:section-flags .comment true false false)\n(llvm:section-flags .bss true true false)\n(llvm:section-flags .data true true false)\n(llvm:section-flags .got true true false)\n(llvm:section-flags .dynamic true true false)\n(llvm:section-flags .fini_array true true false)\n(llvm:section-flags .init_array true true false)\n(llvm:section-flags .eh_frame true false false)\n(llvm:section-flags .eh_frame_hdr true false false)\n(llvm:section-flags .rodata true false false)\n(llvm:section-flags .fini true false true)\n(llvm:section-flags .text true false true)\n(llvm:section-flags .plt true false true)\n(llvm:section-flags .init true false true)\n(llvm:section-flags .rela.plt true false false)\n(llvm:section-flags .rela.dyn true false false)\n(llvm:section-flags .gnu.version_r true false false)\n(llvm:section-flags .gnu.version true false false)\n(llvm:section-flags .dynstr true false false)\n(llvm:section-flags .dynsym true false false)\n(llvm:section-flags .gnu.hash true false false)\n(llvm:section-flags .note.ABI-tag true false false)\n(llvm:section-flags .note.gnu.build-id true false false)\n(llvm:section-flags .interp true false false)\n(llvm:symbol-entry abort 0 0 0 0)\n(llvm:symbol-entry __cxa_finalize 0 0 0 0)\n(llvm:symbol-entry __libc_start_main 0 0 0 0)\n(llvm:symbol-entry _init 1432 0 1432 1432)\n(llvm:symbol-entry main 1876 28 1876 1876)\n(llvm:symbol-entry _start 1600 52 1600 1600)\n(llvm:symbol-entry abort@GLIBC_2.17 0 0 0 0)\n(llvm:symbol-entry _fini 1904 0 1904 1904)\n(llvm:symbol-entry __cxa_finalize@GLIBC_2.17 0 0 0 0)\n(llvm:symbol-entry __libc_start_main@GLIBC_2.34 0 0 0 0)\n(llvm:symbol-entry frame_dummy 1872 0 1872 1872)\n(llvm:symbol-entry __do_global_dtors_aux 1792 0 1792 1792)\n(llvm:symbol-entry register_tm_clones 1728 0 1728 1728)\n(llvm:symbol-entry deregister_tm_clones 1680 0 1680 1680)\n(llvm:symbol-entry call_weak_fn 1652 20 1652 1652)\n(mapped 0 2152 0)\n(mapped 69008 640 3472)\n(named-region 0 2152 02)\n(named-region 69008 656 03)\n(named-region 568 27 .interp)\n(named-region 596 36 .note.gnu.build-id)\n(named-region 632 32 .note.ABI-tag)\n(named-region 664 28 .gnu.hash)\n(named-region 696 216 .dynsym)\n(named-region 912 141 .dynstr)\n(named-region 1054 18 .gnu.version)\n(named-region 1072 48 .gnu.version_r)\n(named-region 1120 216 .rela.dyn)\n(named-region 1336 96 .rela.plt)\n(named-region 1432 24 .init)\n(named-region 1456 96 .plt)\n(named-region 1600 304 .text)\n(named-region 1904 20 .fini)\n(named-region 1924 4 .rodata)\n(named-region 1928 60 .eh_frame_hdr)\n(named-region 1992 160 .eh_frame)\n(named-region 69008 8 .init_array)\n(named-region 69016 8 .fini_array)\n(named-region 69024 496 .dynamic)\n(named-region 69520 112 .got)\n(named-region 69632 16 .data)\n(named-region 69648 16 .bss)\n(named-region 0 43 .comment)\n(named-region 0 2112 .symtab)\n(named-region 0 557 .strtab)\n(named-region 0 250 .shstrtab)\n(named-symbol 1652 call_weak_fn)\n(named-symbol 1680 deregister_tm_clones)\n(named-symbol 1728 register_tm_clones)\n(named-symbol 1792 __do_global_dtors_aux)\n(named-symbol 1872 frame_dummy)\n(named-symbol 0 __libc_start_main@GLIBC_2.34)\n(named-symbol 0 __cxa_finalize@GLIBC_2.17)\n(named-symbol 1904 _fini)\n(named-symbol 0 abort@GLIBC_2.17)\n(named-symbol 1600 _start)\n(named-symbol 1876 main)\n(named-symbol 1432 _init)\n(named-symbol 0 __libc_start_main)\n(named-symbol 0 __cxa_finalize)\n(named-symbol 0 abort)\n(require libc.so.6)\n(section 568 27)\n(section 596 36)\n(section 632 32)\n(section 664 28)\n(section 696 216)\n(section 912 141)\n(section 1054 18)\n(section 1072 48)\n(section 1120 216)\n(section 1336 96)\n(section 1432 24)\n(section 1456 96)\n(section 1600 304)\n(section 1904 20)\n(section 1924 4)\n(section 1928 60)\n(section 1992 160)\n(section 69008 8)\n(section 69016 8)\n(section 69024 496)\n(section 69520 112)\n(section 69632 16)\n(section 69648 16)\n(section 0 43)\n(section 0 2112)\n(section 0 557)\n(section 0 250)\n(segment 0 2152 true false true)\n(segment 69008 656 true true false)\n(subarch v8)\n(symbol-chunk 1652 20 1652)\n(symbol-chunk 1600 52 1600)\n(symbol-chunk 1876 28 1876)\n(symbol-value 1652 1652)\n(symbol-value 1680 1680)\n(symbol-value 1728 1728)\n(symbol-value 1792 1792)\n(symbol-value 1872 1872)\n(symbol-value 1904 1904)\n(symbol-value 1600 1600)\n(symbol-value 1876 1876)\n(symbol-value 1432 1432)\n(symbol-value 0 0)\n(system \"\")\n(vendor \"\")\n"), -Attr("abi-name","\"aarch64-linux-gnu-elf\"")]), -Sections([Section(".shstrtab", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x40\x06\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xa8\x1b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x38\x00\x09\x00\x40\x00\x1c\x00\x1b\x00\x06\x00\x00\x00\x04\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x04\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x68\x08\x00\x00\x00\x00\x00\x00\x68\x08\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x01\x00\x00\x00\x06\x00\x00\x00\x90\x0d\x00\x00\x00\x00\x00\x00\x90\x0d"), -Section(".strtab", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x40\x06\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xa8\x1b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x38\x00\x09\x00\x40\x00\x1c\x00\x1b\x00\x06\x00\x00\x00\x04\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x04\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x68\x08\x00\x00\x00\x00\x00\x00\x68\x08\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x01\x00\x00\x00\x06\x00\x00\x00\x90\x0d\x00\x00\x00\x00\x00\x00\x90\x0d\x01\x00\x00\x00\x00\x00\x90\x0d\x01\x00\x00\x00\x00\x00\x80\x02\x00\x00\x00\x00\x00\x00\x90\x02\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x02\x00\x00\x00\x06\x00\x00\x00\xa0\x0d\x00\x00\x00\x00\x00\x00\xa0\x0d\x01\x00\x00\x00\x00\x00\xa0\x0d\x01\x00\x00\x00\x00\x00\xf0\x01\x00\x00\x00\x00\x00\x00\xf0\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x04\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x50\xe5\x74\x64\x04\x00\x00\x00\x88\x07\x00\x00\x00\x00\x00\x00\x88\x07\x00\x00\x00\x00\x00\x00\x88\x07\x00\x00\x00\x00\x00\x00\x3c\x00\x00\x00\x00\x00\x00\x00\x3c\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x51\xe5\x74\x64\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x52\xe5\x74\x64\x04\x00\x00\x00\x90\x0d\x00\x00\x00\x00\x00\x00\x90\x0d\x01\x00\x00\x00\x00\x00\x90\x0d\x01\x00\x00\x00\x00\x00\x70\x02\x00\x00\x00\x00\x00\x00\x70\x02\x00\x00\x00"), -Section(".symtab", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x40\x06\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xa8\x1b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x38\x00\x09\x00\x40\x00\x1c\x00\x1b\x00\x06\x00\x00\x00\x04\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x04\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x68\x08\x00\x00\x00\x00\x00\x00\x68\x08\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x01\x00\x00\x00\x06\x00\x00\x00\x90\x0d\x00\x00\x00\x00\x00\x00\x90\x0d\x01\x00\x00\x00\x00\x00\x90\x0d\x01\x00\x00\x00\x00\x00\x80\x02\x00\x00\x00\x00\x00\x00\x90\x02\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x02\x00\x00\x00\x06\x00\x00\x00\xa0\x0d\x00\x00\x00\x00\x00\x00\xa0\x0d\x01\x00\x00\x00\x00\x00\xa0\x0d\x01\x00\x00\x00\x00\x00\xf0\x01\x00\x00\x00\x00\x00\x00\xf0\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x04\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x50\xe5\x74\x64\x04\x00\x00\x00\x88\x07\x00\x00\x00\x00\x00\x00\x88\x07\x00\x00\x00\x00\x00\x00\x88\x07\x00\x00\x00\x00\x00\x00\x3c\x00\x00\x00\x00\x00\x00\x00\x3c\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x51\xe5\x74\x64\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x52\xe5\x74\x64\x04\x00\x00\x00\x90\x0d\x00\x00\x00\x00\x00\x00\x90\x0d\x01\x00\x00\x00\x00\x00\x90\x0d\x01\x00\x00\x00\x00\x00\x70\x02\x00\x00\x00\x00\x00\x00\x70\x02\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x2f\x6c\x69\x62\x2f\x6c\x64\x2d\x6c\x69\x6e\x75\x78\x2d\x61\x61\x72\x63\x68\x36\x34\x2e\x73\x6f\x2e\x31\x00\x00\x04\x00\x00\x00\x14\x00\x00\x00\x03\x00\x00\x00\x47\x4e\x55\x00\x25\x41\xa0\xc3\x96\x09\x84\x30\x85\x7e\xf3\x8e\x45\x9b\x36\x0b\x3b\xa2\xb3\x26\x04\x00\x00\x00\x10\x00\x00\x00\x01\x00\x00\x00\x47\x4e\x55\x00\x00\x00\x00\x00\x03\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x01\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x0b\x00\x98\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x16\x00\x00\x10\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x48\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x22\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x22\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x73\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5f\x5f\x63\x78\x61\x5f\x66\x69\x6e\x61\x6c\x69\x7a\x65\x00\x5f\x5f\x6c\x69\x62\x63\x5f\x73\x74\x61\x72\x74\x5f\x6d\x61\x69\x6e\x00\x61\x62\x6f\x72\x74\x00\x6c\x69\x62\x63\x2e\x73\x6f\x2e\x36\x00\x47\x4c\x49\x42\x43\x5f\x32\x2e\x31\x37\x00\x47\x4c\x49\x42\x43\x5f\x32\x2e\x33\x34\x00\x5f\x49\x54\x4d\x5f\x64\x65\x72\x65\x67\x69\x73\x74\x65\x72\x54\x4d\x43\x6c\x6f\x6e\x65\x54\x61\x62\x6c\x65\x00\x5f\x5f\x67\x6d\x6f\x6e\x5f\x73\x74\x61\x72\x74\x5f\x5f\x00\x5f\x49\x54\x4d\x5f\x72\x65\x67\x69\x73\x74\x65\x72\x54\x4d\x43\x6c\x6f\x6e\x65\x54\x61\x62\x6c\x65\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x01\x00\x03\x00\x01\x00\x03\x00\x01\x00\x01\x00\x02\x00\x28\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x97\x91\x96\x06\x00\x00\x03\x00\x32\x00\x00\x00\x10\x00\x00\x00\xb4\x91\x96\x06\x00\x00\x02\x00\x3d\x00\x00\x00\x00\x00\x00\x00\x90\x0d\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x50\x07\x00\x00\x00\x00\x00\x00\x98\x0d\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\xe8\x0f\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x54\x07\x00\x00\x00\x00\x00\x00\xf0\x0f\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x18\x10\x01\x00\x00\x00\x00\x00\x08\x10\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x08\x10\x01\x00\x00\x00\x00\x00\xd0\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xd8\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe0\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xf8\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xa8\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xb0\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xb8\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xc0\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1f\x20\x03\xd5\xfd\x7b\xbf\xa9\xfd\x03\x00\x91\x34\x00\x00\x94\xfd\x7b\xc1\xa8\xc0\x03\x5f\xd6\xf0\x7b\xbf\xa9\x90\x00\x00\x90\x11\xd2\x47\xf9\x10\x82\x3e\x91\x20\x02\x1f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x90\x00\x00\x90\x11\xd6\x47\xf9\x10\xa2\x3e\x91\x20\x02\x1f\xd6\x90\x00\x00\x90\x11\xda\x47\xf9\x10\xc2\x3e\x91\x20\x02\x1f\xd6\x90\x00\x00\x90\x11\xde\x47\xf9\x10\xe2\x3e\x91\x20\x02\x1f\xd6\x90\x00\x00\x90\x11\xe2\x47\xf9\x10\x02\x3f\x91\x20\x02\x1f\xd6\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1f\x20\x03\xd5\x1d\x00\x80\xd2\x1e\x00\x80\xd2\xe5\x03\x00\xaa\xe1\x03\x40\xf9\xe2\x23\x00\x91\xe6\x03\x00\x91\x80\x00\x00\x90\x00\xf4\x47\xf9\x03\x00\x80\xd2\x04\x00\x80\xd2\xd9\xff\xff\x97\xe4\xff\xff\x97\x80\x00\x00\x90\x00\xf0\x47\xf9\x40\x00\x00\xb4\xdc\xff\xff\x17\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x80\x00\x00\xb0\x00\x40\x00\x91\x81\x00\x00\xb0\x21\x40\x00\x91\x3f\x00\x00\xeb\xc0\x00\x00\x54\x81\x00\x00\x90\x21\xe8\x47\xf9\x61\x00\x00\xb4\xf0\x03\x01\xaa\x00\x02\x1f\xd6\xc0\x03\x5f\xd6\x80\x00\x00\xb0\x00\x40\x00\x91\x81\x00\x00\xb0\x21\x40\x00\x91\x21\x00\x00\xcb\x22\xfc\x7f\xd3\x41\x0c\x81\x8b\x21\xfc\x41\x93\xc1\x00\x00\xb4\x82\x00\x00\x90\x42\xfc\x47\xf9\x62\x00\x00\xb4\xf0\x03\x02\xaa\x00\x02\x1f\xd6\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\xfd\x7b\xbe\xa9\xfd\x03\x00\x91\xf3\x0b\x00\xf9\x93\x00\x00\xb0\x60\x42\x40\x39\x40\x01\x00\x35\x80\x00\x00\x90\x00\xec\x47\xf9\x80\x00\x00\xb4\x80\x00\x00\xb0\x00\x04\x40\xf9\xad\xff\xff\x97\xd8\xff\xff\x97\x20\x00\x80\x52\x60\x42\x00\x39\xf3\x0b\x40\xf9\xfd\x7b\xc2\xa8\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\xdc\xff\xff\x17\x80\x00\x00\x90\x00\xf8\x47\xf9\x1f\x00\x00\xb9\x80\x00\x00\x90\x00\xf8\x47\xf9\x00\x00\x40\xb9\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\xfd\x7b\xbf\xa9\xfd\x03\x00\x91\xfd\x7b\xc1\xa8\xc0\x03\x5f\xd6\x01\x00\x02\x00\x01\x1b\x03\x3b\x3c\x00\x00\x00\x06\x00\x00\x00\xb8\xfe\xff\xff\x54\x00\x00\x00\x08\xff\xff\xff\x68\x00\x00\x00\x38\xff\xff\xff\x7c\x00\x00\x00\x78\xff\xff\xff\x90\x00\x00\x00\xc8\xff\xff\xff\xb4\x00\x00\x00\xcc\xff\xff\xff\xc8\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x01\x7a\x52\x00\x04\x78\x1e\x01\x1b\x0c\x1f\x00\x10\x00\x00\x00\x18\x00\x00\x00\x5c\xfe\xff\xff\x34\x00\x00\x00\x00\x41\x07\x1e\x10\x00\x00\x00\x2c\x00\x00\x00\x98\xfe\xff\xff\x30\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x40\x00\x00\x00\xb4\xfe\xff\xff\x3c\x00\x00\x00\x00\x00\x00\x00\x20\x00\x00\x00\x54\x00\x00\x00\xe0\xfe\xff\xff\x48\x00\x00\x00\x00\x41\x0e\x20\x9d\x04\x9e\x03\x42\x93\x02\x4e\xde\xdd\xd3\x0e\x00\x00\x00\x00\x10\x00\x00\x00"), -Section(".comment", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x40\x06\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xa8\x1b\x00"), -Section(".interp", 0x238, "\x2f\x6c\x69\x62\x2f\x6c\x64\x2d\x6c\x69\x6e\x75\x78\x2d\x61\x61\x72\x63\x68\x36\x34\x2e\x73\x6f\x2e\x31\x00"), -Section(".note.gnu.build-id", 0x254, "\x04\x00\x00\x00\x14\x00\x00\x00\x03\x00\x00\x00\x47\x4e\x55\x00\x25\x41\xa0\xc3\x96\x09\x84\x30\x85\x7e\xf3\x8e\x45\x9b\x36\x0b\x3b\xa2\xb3\x26"), -Section(".note.ABI-tag", 0x278, "\x04\x00\x00\x00\x10\x00\x00\x00\x01\x00\x00\x00\x47\x4e\x55\x00\x00\x00\x00\x00\x03\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00"), -Section(".gnu.hash", 0x298, "\x01\x00\x00\x00\x01\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".dynsym", 0x2B8, "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x0b\x00\x98\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x16\x00\x00\x10\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x48\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x22\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x22\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x73\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".dynstr", 0x390, "\x00\x5f\x5f\x63\x78\x61\x5f\x66\x69\x6e\x61\x6c\x69\x7a\x65\x00\x5f\x5f\x6c\x69\x62\x63\x5f\x73\x74\x61\x72\x74\x5f\x6d\x61\x69\x6e\x00\x61\x62\x6f\x72\x74\x00\x6c\x69\x62\x63\x2e\x73\x6f\x2e\x36\x00\x47\x4c\x49\x42\x43\x5f\x32\x2e\x31\x37\x00\x47\x4c\x49\x42\x43\x5f\x32\x2e\x33\x34\x00\x5f\x49\x54\x4d\x5f\x64\x65\x72\x65\x67\x69\x73\x74\x65\x72\x54\x4d\x43\x6c\x6f\x6e\x65\x54\x61\x62\x6c\x65\x00\x5f\x5f\x67\x6d\x6f\x6e\x5f\x73\x74\x61\x72\x74\x5f\x5f\x00\x5f\x49\x54\x4d\x5f\x72\x65\x67\x69\x73\x74\x65\x72\x54\x4d\x43\x6c\x6f\x6e\x65\x54\x61\x62\x6c\x65\x00"), -Section(".gnu.version", 0x41E, "\x00\x00\x00\x00\x00\x00\x02\x00\x01\x00\x03\x00\x01\x00\x03\x00\x01\x00"), -Section(".gnu.version_r", 0x430, "\x01\x00\x02\x00\x28\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x97\x91\x96\x06\x00\x00\x03\x00\x32\x00\x00\x00\x10\x00\x00\x00\xb4\x91\x96\x06\x00\x00\x02\x00\x3d\x00\x00\x00\x00\x00\x00\x00"), -Section(".rela.dyn", 0x460, "\x90\x0d\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x50\x07\x00\x00\x00\x00\x00\x00\x98\x0d\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\xe8\x0f\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x54\x07\x00\x00\x00\x00\x00\x00\xf0\x0f\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x18\x10\x01\x00\x00\x00\x00\x00\x08\x10\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x08\x10\x01\x00\x00\x00\x00\x00\xd0\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xd8\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe0\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xf8\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".rela.plt", 0x538, "\xa8\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xb0\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xb8\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xc0\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".init", 0x598, "\x1f\x20\x03\xd5\xfd\x7b\xbf\xa9\xfd\x03\x00\x91\x34\x00\x00\x94\xfd\x7b\xc1\xa8\xc0\x03\x5f\xd6"), -Section(".plt", 0x5B0, "\xf0\x7b\xbf\xa9\x90\x00\x00\x90\x11\xd2\x47\xf9\x10\x82\x3e\x91\x20\x02\x1f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x90\x00\x00\x90\x11\xd6\x47\xf9\x10\xa2\x3e\x91\x20\x02\x1f\xd6\x90\x00\x00\x90\x11\xda\x47\xf9\x10\xc2\x3e\x91\x20\x02\x1f\xd6\x90\x00\x00\x90\x11\xde\x47\xf9\x10\xe2\x3e\x91\x20\x02\x1f\xd6\x90\x00\x00\x90\x11\xe2\x47\xf9\x10\x02\x3f\x91\x20\x02\x1f\xd6"), -Section(".fini", 0x770, "\x1f\x20\x03\xd5\xfd\x7b\xbf\xa9\xfd\x03\x00\x91\xfd\x7b\xc1\xa8\xc0\x03\x5f\xd6"), -Section(".rodata", 0x784, "\x01\x00\x02\x00"), -Section(".eh_frame_hdr", 0x788, "\x01\x1b\x03\x3b\x3c\x00\x00\x00\x06\x00\x00\x00\xb8\xfe\xff\xff\x54\x00\x00\x00\x08\xff\xff\xff\x68\x00\x00\x00\x38\xff\xff\xff\x7c\x00\x00\x00\x78\xff\xff\xff\x90\x00\x00\x00\xc8\xff\xff\xff\xb4\x00\x00\x00\xcc\xff\xff\xff\xc8\x00\x00\x00"), -Section(".eh_frame", 0x7C8, "\x10\x00\x00\x00\x00\x00\x00\x00\x01\x7a\x52\x00\x04\x78\x1e\x01\x1b\x0c\x1f\x00\x10\x00\x00\x00\x18\x00\x00\x00\x5c\xfe\xff\xff\x34\x00\x00\x00\x00\x41\x07\x1e\x10\x00\x00\x00\x2c\x00\x00\x00\x98\xfe\xff\xff\x30\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x40\x00\x00\x00\xb4\xfe\xff\xff\x3c\x00\x00\x00\x00\x00\x00\x00\x20\x00\x00\x00\x54\x00\x00\x00\xe0\xfe\xff\xff\x48\x00\x00\x00\x00\x41\x0e\x20\x9d\x04\x9e\x03\x42\x93\x02\x4e\xde\xdd\xd3\x0e\x00\x00\x00\x00\x10\x00\x00\x00\x78\x00\x00\x00\x0c\xff\xff\xff\x04\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x8c\x00\x00\x00\xfc\xfe\xff\xff\x1c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".fini_array", 0x10D98, "\x00\x07\x00\x00\x00\x00\x00\x00"), -Section(".dynamic", 0x10DA0, "\x01\x00\x00\x00\x00\x00\x00\x00\x28\x00\x00\x00\x00\x00\x00\x00\x0c\x00\x00\x00\x00\x00\x00\x00\x98\x05\x00\x00\x00\x00\x00\x00\x0d\x00\x00\x00\x00\x00\x00\x00\x70\x07\x00\x00\x00\x00\x00\x00\x19\x00\x00\x00\x00\x00\x00\x00\x90\x0d\x01\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x1a\x00\x00\x00\x00\x00\x00\x00\x98\x0d\x01\x00\x00\x00\x00\x00\x1c\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\xf5\xfe\xff\x6f\x00\x00\x00\x00\x98\x02\x00\x00\x00\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x90\x03\x00\x00\x00\x00\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\xb8\x02\x00\x00\x00\x00\x00\x00\x0a\x00\x00\x00\x00\x00\x00\x00\x8d\x00\x00\x00\x00\x00\x00\x00\x0b\x00\x00\x00\x00\x00\x00\x00\x18\x00\x00\x00\x00\x00\x00\x00\x15\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x90\x0f\x01\x00\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x60\x00\x00\x00\x00\x00\x00\x00\x14\x00\x00\x00\x00\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x17\x00\x00\x00\x00\x00\x00\x00\x38\x05\x00\x00\x00\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x60\x04\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\xd8\x00\x00\x00\x00\x00\x00\x00\x09\x00\x00\x00\x00\x00\x00\x00\x18\x00\x00\x00\x00\x00\x00\x00\x1e\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\xfb\xff\xff\x6f\x00\x00\x00\x00\x01\x00\x00\x08\x00\x00\x00\x00\xfe\xff\xff\x6f\x00\x00\x00\x00\x30\x04\x00\x00\x00\x00\x00\x00\xff\xff\xff\x6f\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\xf0\xff\xff\x6f\x00\x00\x00\x00\x1e\x04\x00\x00\x00\x00\x00\x00\xf9\xff\xff\x6f\x00\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".got", 0x10F90, "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xb0\x05\x00\x00\x00\x00\x00\x00\xb0\x05\x00\x00\x00\x00\x00\x00\xb0\x05\x00\x00\x00\x00\x00\x00\xb0\x05\x00\x00\x00\x00\x00\x00\xa0\x0d\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x54\x07\x00\x00\x00\x00\x00\x00\x18\x10\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".data", 0x11000, "\x00\x00\x00\x00\x00\x00\x00\x00\x08\x10\x01\x00\x00\x00\x00\x00"), -Section(".init_array", 0x10D90, "\x50\x07\x00\x00\x00\x00\x00\x00"), -Section(".text", 0x640, "\x1f\x20\x03\xd5\x1d\x00\x80\xd2\x1e\x00\x80\xd2\xe5\x03\x00\xaa\xe1\x03\x40\xf9\xe2\x23\x00\x91\xe6\x03\x00\x91\x80\x00\x00\x90\x00\xf4\x47\xf9\x03\x00\x80\xd2\x04\x00\x80\xd2\xd9\xff\xff\x97\xe4\xff\xff\x97\x80\x00\x00\x90\x00\xf0\x47\xf9\x40\x00\x00\xb4\xdc\xff\xff\x17\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x80\x00\x00\xb0\x00\x40\x00\x91\x81\x00\x00\xb0\x21\x40\x00\x91\x3f\x00\x00\xeb\xc0\x00\x00\x54\x81\x00\x00\x90\x21\xe8\x47\xf9\x61\x00\x00\xb4\xf0\x03\x01\xaa\x00\x02\x1f\xd6\xc0\x03\x5f\xd6\x80\x00\x00\xb0\x00\x40\x00\x91\x81\x00\x00\xb0\x21\x40\x00\x91\x21\x00\x00\xcb\x22\xfc\x7f\xd3\x41\x0c\x81\x8b\x21\xfc\x41\x93\xc1\x00\x00\xb4\x82\x00\x00\x90\x42\xfc\x47\xf9\x62\x00\x00\xb4\xf0\x03\x02\xaa\x00\x02\x1f\xd6\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\xfd\x7b\xbe\xa9\xfd\x03\x00\x91\xf3\x0b\x00\xf9\x93\x00\x00\xb0\x60\x42\x40\x39\x40\x01\x00\x35\x80\x00\x00\x90\x00\xec\x47\xf9\x80\x00\x00\xb4\x80\x00\x00\xb0\x00\x04\x40\xf9\xad\xff\xff\x97\xd8\xff\xff\x97\x20\x00\x80\x52\x60\x42\x00\x39\xf3\x0b\x40\xf9\xfd\x7b\xc2\xa8\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\xdc\xff\xff\x17\x80\x00\x00\x90\x00\xf8\x47\xf9\x1f\x00\x00\xb9\x80\x00\x00\x90\x00\xf8\x47\xf9\x00\x00\x40\xb9\xc0\x03\x5f\xd6")]), -Memmap([Annotation(Region(0x0,0x867), Attr("segment","02 0 2152")), -Annotation(Region(0x640,0x673), Attr("symbol","\"_start\"")), -Annotation(Region(0x0,0xF9), Attr("section","\".shstrtab\"")), -Annotation(Region(0x0,0x22C), Attr("section","\".strtab\"")), -Annotation(Region(0x0,0x83F), Attr("section","\".symtab\"")), -Annotation(Region(0x0,0x2A), Attr("section","\".comment\"")), -Annotation(Region(0x238,0x252), Attr("section","\".interp\"")), -Annotation(Region(0x254,0x277), Attr("section","\".note.gnu.build-id\"")), -Annotation(Region(0x278,0x297), Attr("section","\".note.ABI-tag\"")), -Annotation(Region(0x298,0x2B3), Attr("section","\".gnu.hash\"")), -Annotation(Region(0x2B8,0x38F), Attr("section","\".dynsym\"")), -Annotation(Region(0x390,0x41C), Attr("section","\".dynstr\"")), -Annotation(Region(0x41E,0x42F), Attr("section","\".gnu.version\"")), -Annotation(Region(0x430,0x45F), Attr("section","\".gnu.version_r\"")), -Annotation(Region(0x460,0x537), Attr("section","\".rela.dyn\"")), -Annotation(Region(0x538,0x597), Attr("section","\".rela.plt\"")), -Annotation(Region(0x598,0x5AF), Attr("section","\".init\"")), -Annotation(Region(0x5B0,0x60F), Attr("section","\".plt\"")), -Annotation(Region(0x598,0x5AF), Attr("code-region","()")), -Annotation(Region(0x5B0,0x60F), Attr("code-region","()")), -Annotation(Region(0x640,0x673), Attr("symbol-info","_start 0x640 52")), -Annotation(Region(0x674,0x687), Attr("symbol","\"call_weak_fn\"")), -Annotation(Region(0x674,0x687), Attr("symbol-info","call_weak_fn 0x674 20")), -Annotation(Region(0x754,0x76F), Attr("symbol","\"main\"")), -Annotation(Region(0x754,0x76F), Attr("symbol-info","main 0x754 28")), -Annotation(Region(0x770,0x783), Attr("section","\".fini\"")), -Annotation(Region(0x784,0x787), Attr("section","\".rodata\"")), -Annotation(Region(0x788,0x7C3), Attr("section","\".eh_frame_hdr\"")), -Annotation(Region(0x7C8,0x867), Attr("section","\".eh_frame\"")), -Annotation(Region(0x10D90,0x1100F), Attr("segment","03 0x10D90 656")), -Annotation(Region(0x10D98,0x10D9F), Attr("section","\".fini_array\"")), -Annotation(Region(0x10DA0,0x10F8F), Attr("section","\".dynamic\"")), -Annotation(Region(0x10F90,0x10FFF), Attr("section","\".got\"")), -Annotation(Region(0x11000,0x1100F), Attr("section","\".data\"")), -Annotation(Region(0x10D90,0x10D97), Attr("section","\".init_array\"")), -Annotation(Region(0x640,0x76F), Attr("section","\".text\"")), -Annotation(Region(0x640,0x76F), Attr("code-region","()")), -Annotation(Region(0x770,0x783), Attr("code-region","()"))]), -Program(Tid(1_361, "%00000551"), Attrs([]), - Subs([Sub(Tid(1_311, "@__cxa_finalize"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x5E0"), -Attr("stub","()")]), "__cxa_finalize", Args([Arg(Tid(1_362, "%00000552"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("__cxa_finalize_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(808, "@__cxa_finalize"), - Attrs([Attr("address","0x5E0")]), Phis([]), -Defs([Def(Tid(1_056, "%00000420"), Attrs([Attr("address","0x5E0"), -Attr("insn","adrp x16, #65536")]), Var("R16",Imm(64)), Int(65536,64)), -Def(Tid(1_063, "%00000427"), Attrs([Attr("address","0x5E4"), -Attr("insn","ldr x17, [x16, #0xfb0]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(4016,64)),LittleEndian(),64)), -Def(Tid(1_069, "%0000042d"), Attrs([Attr("address","0x5E8"), -Attr("insn","add x16, x16, #0xfb0")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(4016,64)))]), Jmps([Call(Tid(1_074, "%00000432"), - Attrs([Attr("address","0x5EC"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), -Sub(Tid(1_312, "@__do_global_dtors_aux"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x700")]), - "__do_global_dtors_aux", Args([Arg(Tid(1_363, "%00000553"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("__do_global_dtors_aux_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(618, "@__do_global_dtors_aux"), - Attrs([Attr("address","0x700")]), Phis([]), Defs([Def(Tid(622, "%0000026e"), - Attrs([Attr("address","0x700"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("#3",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(18446744073709551584,64))), -Def(Tid(628, "%00000274"), Attrs([Attr("address","0x700"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("#3",Imm(64)),Var("R29",Imm(64)),LittleEndian(),64)), -Def(Tid(634, "%0000027a"), Attrs([Attr("address","0x700"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("#3",Imm(64)),Int(8,64)),Var("R30",Imm(64)),LittleEndian(),64)), -Def(Tid(638, "%0000027e"), Attrs([Attr("address","0x700"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("R31",Imm(64)), -Var("#3",Imm(64))), Def(Tid(644, "%00000284"), - Attrs([Attr("address","0x704"), Attr("insn","mov x29, sp")]), - Var("R29",Imm(64)), Var("R31",Imm(64))), Def(Tid(652, "%0000028c"), - Attrs([Attr("address","0x708"), Attr("insn","str x19, [sp, #0x10]")]), - Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(16,64)),Var("R19",Imm(64)),LittleEndian(),64)), -Def(Tid(657, "%00000291"), Attrs([Attr("address","0x70C"), -Attr("insn","adrp x19, #69632")]), Var("R19",Imm(64)), Int(69632,64)), -Def(Tid(664, "%00000298"), Attrs([Attr("address","0x710"), -Attr("insn","ldrb w0, [x19, #0x10]")]), Var("R0",Imm(64)), -UNSIGNED(64,Load(Var("mem",Mem(64,8)),PLUS(Var("R19",Imm(64)),Int(16,64)),LittleEndian(),8)))]), -Jmps([Goto(Tid(671, "%0000029f"), Attrs([Attr("address","0x714"), -Attr("insn","cbnz w0, #0x28")]), - NEQ(Extract(31,0,Var("R0",Imm(64))),Int(0,32)), -Direct(Tid(669, "%0000029d"))), Goto(Tid(1_351, "%00000547"), Attrs([]), - Int(1,1), Direct(Tid(753, "%000002f1")))])), Blk(Tid(753, "%000002f1"), - Attrs([Attr("address","0x718")]), Phis([]), Defs([Def(Tid(756, "%000002f4"), - Attrs([Attr("address","0x718"), Attr("insn","adrp x0, #65536")]), - Var("R0",Imm(64)), Int(65536,64)), Def(Tid(763, "%000002fb"), - Attrs([Attr("address","0x71C"), Attr("insn","ldr x0, [x0, #0xfd8]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(4056,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(769, "%00000301"), Attrs([Attr("address","0x720"), -Attr("insn","cbz x0, #0x10")]), EQ(Var("R0",Imm(64)),Int(0,64)), -Direct(Tid(767, "%000002ff"))), Goto(Tid(1_352, "%00000548"), Attrs([]), - Int(1,1), Direct(Tid(792, "%00000318")))])), Blk(Tid(792, "%00000318"), - Attrs([Attr("address","0x724")]), Phis([]), Defs([Def(Tid(795, "%0000031b"), - Attrs([Attr("address","0x724"), Attr("insn","adrp x0, #69632")]), - Var("R0",Imm(64)), Int(69632,64)), Def(Tid(802, "%00000322"), - Attrs([Attr("address","0x728"), Attr("insn","ldr x0, [x0, #0x8]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(807, "%00000327"), Attrs([Attr("address","0x72C"), -Attr("insn","bl #-0x14c")]), Var("R30",Imm(64)), Int(1840,64))]), -Jmps([Call(Tid(810, "%0000032a"), Attrs([Attr("address","0x72C"), -Attr("insn","bl #-0x14c")]), Int(1,1), -(Direct(Tid(1_311, "@__cxa_finalize")),Direct(Tid(767, "%000002ff"))))])), -Blk(Tid(767, "%000002ff"), Attrs([Attr("address","0x730")]), Phis([]), -Defs([Def(Tid(775, "%00000307"), Attrs([Attr("address","0x730"), -Attr("insn","bl #-0xa0")]), Var("R30",Imm(64)), Int(1844,64))]), -Jmps([Call(Tid(777, "%00000309"), Attrs([Attr("address","0x730"), -Attr("insn","bl #-0xa0")]), Int(1,1), -(Direct(Tid(1_325, "@deregister_tm_clones")),Direct(Tid(779, "%0000030b"))))])), -Blk(Tid(779, "%0000030b"), Attrs([Attr("address","0x734")]), Phis([]), -Defs([Def(Tid(782, "%0000030e"), Attrs([Attr("address","0x734"), -Attr("insn","mov w0, #0x1")]), Var("R0",Imm(64)), Int(1,64)), -Def(Tid(790, "%00000316"), Attrs([Attr("address","0x738"), -Attr("insn","strb w0, [x19, #0x10]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R19",Imm(64)),Int(16,64)),Extract(7,0,Var("R0",Imm(64))),LittleEndian(),8))]), -Jmps([Goto(Tid(1_353, "%00000549"), Attrs([]), Int(1,1), -Direct(Tid(669, "%0000029d")))])), Blk(Tid(669, "%0000029d"), - Attrs([Attr("address","0x73C")]), Phis([]), Defs([Def(Tid(679, "%000002a7"), - Attrs([Attr("address","0x73C"), Attr("insn","ldr x19, [sp, #0x10]")]), - Var("R19",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(16,64)),LittleEndian(),64)), -Def(Tid(686, "%000002ae"), Attrs([Attr("address","0x740"), -Attr("insn","ldp x29, x30, [sp], #0x20")]), Var("R29",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(691, "%000002b3"), Attrs([Attr("address","0x740"), -Attr("insn","ldp x29, x30, [sp], #0x20")]), Var("R30",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(695, "%000002b7"), Attrs([Attr("address","0x740"), -Attr("insn","ldp x29, x30, [sp], #0x20")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(32,64)))]), Jmps([Call(Tid(700, "%000002bc"), - Attrs([Attr("address","0x744"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), Sub(Tid(1_316, "@__libc_start_main"), - Attrs([Attr("c.proto","signed (*)(signed (*)(signed , char** , char** );* main, signed , char** , \nvoid* auxv)"), -Attr("address","0x5D0"), Attr("stub","()")]), "__libc_start_main", - Args([Arg(Tid(1_364, "%00000554"), - Attrs([Attr("c.layout","**[ : 64]"), -Attr("c.data","Top:u64 ptr ptr"), -Attr("c.type","signed (*)(signed , char** , char** );*")]), - Var("__libc_start_main_main",Imm(64)), Var("R0",Imm(64)), In()), -Arg(Tid(1_365, "%00000555"), Attrs([Attr("c.layout","[signed : 32]"), -Attr("c.data","Top:u32"), Attr("c.type","signed")]), - Var("__libc_start_main_arg2",Imm(32)), LOW(32,Var("R1",Imm(64))), In()), -Arg(Tid(1_366, "%00000556"), Attrs([Attr("c.layout","**[char : 8]"), -Attr("c.data","Top:u8 ptr ptr"), Attr("c.type","char**")]), - Var("__libc_start_main_arg3",Imm(64)), Var("R2",Imm(64)), Both()), -Arg(Tid(1_367, "%00000557"), Attrs([Attr("c.layout","*[ : 8]"), -Attr("c.data","{} ptr"), Attr("c.type","void*")]), - Var("__libc_start_main_auxv",Imm(64)), Var("R3",Imm(64)), Both()), -Arg(Tid(1_368, "%00000558"), Attrs([Attr("c.layout","[signed : 32]"), -Attr("c.data","Top:u32"), Attr("c.type","signed")]), - Var("__libc_start_main_result",Imm(32)), LOW(32,Var("R0",Imm(64))), -Out())]), Blks([Blk(Tid(451, "@__libc_start_main"), - Attrs([Attr("address","0x5D0")]), Phis([]), -Defs([Def(Tid(1_034, "%0000040a"), Attrs([Attr("address","0x5D0"), -Attr("insn","adrp x16, #65536")]), Var("R16",Imm(64)), Int(65536,64)), -Def(Tid(1_041, "%00000411"), Attrs([Attr("address","0x5D4"), -Attr("insn","ldr x17, [x16, #0xfa8]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(4008,64)),LittleEndian(),64)), -Def(Tid(1_047, "%00000417"), Attrs([Attr("address","0x5D8"), -Attr("insn","add x16, x16, #0xfa8")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(4008,64)))]), Jmps([Call(Tid(1_052, "%0000041c"), - Attrs([Attr("address","0x5DC"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), Sub(Tid(1_317, "@_fini"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x770")]), - "_fini", Args([Arg(Tid(1_369, "%00000559"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("_fini_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(31, "@_fini"), - Attrs([Attr("address","0x770")]), Phis([]), Defs([Def(Tid(37, "%00000025"), - Attrs([Attr("address","0x774"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("#0",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(18446744073709551600,64))), -Def(Tid(43, "%0000002b"), Attrs([Attr("address","0x774"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("#0",Imm(64)),Var("R29",Imm(64)),LittleEndian(),64)), -Def(Tid(49, "%00000031"), Attrs([Attr("address","0x774"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("#0",Imm(64)),Int(8,64)),Var("R30",Imm(64)),LittleEndian(),64)), -Def(Tid(53, "%00000035"), Attrs([Attr("address","0x774"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("R31",Imm(64)), -Var("#0",Imm(64))), Def(Tid(59, "%0000003b"), Attrs([Attr("address","0x778"), -Attr("insn","mov x29, sp")]), Var("R29",Imm(64)), Var("R31",Imm(64))), -Def(Tid(66, "%00000042"), Attrs([Attr("address","0x77C"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R29",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(71, "%00000047"), Attrs([Attr("address","0x77C"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R30",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(75, "%0000004b"), Attrs([Attr("address","0x77C"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(16,64)))]), Jmps([Call(Tid(80, "%00000050"), - Attrs([Attr("address","0x780"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), Sub(Tid(1_318, "@_init"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x598")]), - "_init", Args([Arg(Tid(1_370, "%0000055a"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("_init_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(1_146, "@_init"), - Attrs([Attr("address","0x598")]), Phis([]), -Defs([Def(Tid(1_152, "%00000480"), Attrs([Attr("address","0x59C"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("#5",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(18446744073709551600,64))), -Def(Tid(1_158, "%00000486"), Attrs([Attr("address","0x59C"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("#5",Imm(64)),Var("R29",Imm(64)),LittleEndian(),64)), -Def(Tid(1_164, "%0000048c"), Attrs([Attr("address","0x59C"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("#5",Imm(64)),Int(8,64)),Var("R30",Imm(64)),LittleEndian(),64)), -Def(Tid(1_168, "%00000490"), Attrs([Attr("address","0x59C"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("R31",Imm(64)), -Var("#5",Imm(64))), Def(Tid(1_174, "%00000496"), - Attrs([Attr("address","0x5A0"), Attr("insn","mov x29, sp")]), - Var("R29",Imm(64)), Var("R31",Imm(64))), Def(Tid(1_179, "%0000049b"), - Attrs([Attr("address","0x5A4"), Attr("insn","bl #0xd0")]), - Var("R30",Imm(64)), Int(1448,64))]), Jmps([Call(Tid(1_181, "%0000049d"), - Attrs([Attr("address","0x5A4"), Attr("insn","bl #0xd0")]), Int(1,1), -(Direct(Tid(1_323, "@call_weak_fn")),Direct(Tid(1_183, "%0000049f"))))])), -Blk(Tid(1_183, "%0000049f"), Attrs([Attr("address","0x5A8")]), Phis([]), -Defs([Def(Tid(1_188, "%000004a4"), Attrs([Attr("address","0x5A8"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R29",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(1_193, "%000004a9"), Attrs([Attr("address","0x5A8"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R30",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(1_197, "%000004ad"), Attrs([Attr("address","0x5A8"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(16,64)))]), Jmps([Call(Tid(1_202, "%000004b2"), - Attrs([Attr("address","0x5AC"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), Sub(Tid(1_319, "@_start"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x640"), -Attr("entry-point","()")]), "_start", Args([Arg(Tid(1_371, "%0000055b"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("_start_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(388, "@_start"), - Attrs([Attr("address","0x640")]), Phis([]), Defs([Def(Tid(393, "%00000189"), - Attrs([Attr("address","0x644"), Attr("insn","mov x29, #0x0")]), - Var("R29",Imm(64)), Int(0,64)), Def(Tid(398, "%0000018e"), - Attrs([Attr("address","0x648"), Attr("insn","mov x30, #0x0")]), - Var("R30",Imm(64)), Int(0,64)), Def(Tid(404, "%00000194"), - Attrs([Attr("address","0x64C"), Attr("insn","mov x5, x0")]), - Var("R5",Imm(64)), Var("R0",Imm(64))), Def(Tid(411, "%0000019b"), - Attrs([Attr("address","0x650"), Attr("insn","ldr x1, [sp]")]), - Var("R1",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(417, "%000001a1"), Attrs([Attr("address","0x654"), -Attr("insn","add x2, sp, #0x8")]), Var("R2",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(8,64))), Def(Tid(423, "%000001a7"), - Attrs([Attr("address","0x658"), Attr("insn","mov x6, sp")]), - Var("R6",Imm(64)), Var("R31",Imm(64))), Def(Tid(428, "%000001ac"), - Attrs([Attr("address","0x65C"), Attr("insn","adrp x0, #65536")]), - Var("R0",Imm(64)), Int(65536,64)), Def(Tid(435, "%000001b3"), - Attrs([Attr("address","0x660"), Attr("insn","ldr x0, [x0, #0xfe8]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(4072,64)),LittleEndian(),64)), -Def(Tid(440, "%000001b8"), Attrs([Attr("address","0x664"), -Attr("insn","mov x3, #0x0")]), Var("R3",Imm(64)), Int(0,64)), -Def(Tid(445, "%000001bd"), Attrs([Attr("address","0x668"), -Attr("insn","mov x4, #0x0")]), Var("R4",Imm(64)), Int(0,64)), -Def(Tid(450, "%000001c2"), Attrs([Attr("address","0x66C"), -Attr("insn","bl #-0x9c")]), Var("R30",Imm(64)), Int(1648,64))]), -Jmps([Call(Tid(453, "%000001c5"), Attrs([Attr("address","0x66C"), -Attr("insn","bl #-0x9c")]), Int(1,1), -(Direct(Tid(1_316, "@__libc_start_main")),Direct(Tid(455, "%000001c7"))))])), -Blk(Tid(455, "%000001c7"), Attrs([Attr("address","0x670")]), Phis([]), -Defs([Def(Tid(458, "%000001ca"), Attrs([Attr("address","0x670"), -Attr("insn","bl #-0x70")]), Var("R30",Imm(64)), Int(1652,64))]), -Jmps([Call(Tid(461, "%000001cd"), Attrs([Attr("address","0x670"), -Attr("insn","bl #-0x70")]), Int(1,1), -(Direct(Tid(1_322, "@abort")),Direct(Tid(1_354, "%0000054a"))))])), -Blk(Tid(1_354, "%0000054a"), Attrs([]), Phis([]), Defs([]), -Jmps([Call(Tid(1_355, "%0000054b"), Attrs([]), Int(1,1), -(Direct(Tid(1_323, "@call_weak_fn")),))]))])), Sub(Tid(1_322, "@abort"), - Attrs([Attr("noreturn","()"), Attr("c.proto","void (*)(void)"), -Attr("address","0x600"), Attr("stub","()")]), "abort", Args([]), -Blks([Blk(Tid(459, "@abort"), Attrs([Attr("address","0x600")]), Phis([]), -Defs([Def(Tid(1_100, "%0000044c"), Attrs([Attr("address","0x600"), -Attr("insn","adrp x16, #65536")]), Var("R16",Imm(64)), Int(65536,64)), -Def(Tid(1_107, "%00000453"), Attrs([Attr("address","0x604"), -Attr("insn","ldr x17, [x16, #0xfc0]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(4032,64)),LittleEndian(),64)), -Def(Tid(1_113, "%00000459"), Attrs([Attr("address","0x608"), -Attr("insn","add x16, x16, #0xfc0")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(4032,64)))]), Jmps([Call(Tid(1_118, "%0000045e"), - Attrs([Attr("address","0x60C"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), Sub(Tid(1_323, "@call_weak_fn"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x674")]), - "call_weak_fn", Args([Arg(Tid(1_372, "%0000055c"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("call_weak_fn_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(463, "@call_weak_fn"), - Attrs([Attr("address","0x674")]), Phis([]), Defs([Def(Tid(466, "%000001d2"), - Attrs([Attr("address","0x674"), Attr("insn","adrp x0, #65536")]), - Var("R0",Imm(64)), Int(65536,64)), Def(Tid(473, "%000001d9"), - Attrs([Attr("address","0x678"), Attr("insn","ldr x0, [x0, #0xfe0]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(4064,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(479, "%000001df"), Attrs([Attr("address","0x67C"), -Attr("insn","cbz x0, #0x8")]), EQ(Var("R0",Imm(64)),Int(0,64)), -Direct(Tid(477, "%000001dd"))), Goto(Tid(1_356, "%0000054c"), Attrs([]), - Int(1,1), Direct(Tid(872, "%00000368")))])), Blk(Tid(477, "%000001dd"), - Attrs([Attr("address","0x684")]), Phis([]), Defs([]), -Jmps([Call(Tid(485, "%000001e5"), Attrs([Attr("address","0x684"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))])), -Blk(Tid(872, "%00000368"), Attrs([Attr("address","0x680")]), Phis([]), -Defs([]), Jmps([Goto(Tid(875, "%0000036b"), Attrs([Attr("address","0x680"), -Attr("insn","b #-0x90")]), Int(1,1), Direct(Tid(873, "@__gmon_start__")))])), -Blk(Tid(873, "@__gmon_start__"), Attrs([Attr("address","0x5F0")]), Phis([]), -Defs([Def(Tid(1_078, "%00000436"), Attrs([Attr("address","0x5F0"), -Attr("insn","adrp x16, #65536")]), Var("R16",Imm(64)), Int(65536,64)), -Def(Tid(1_085, "%0000043d"), Attrs([Attr("address","0x5F4"), -Attr("insn","ldr x17, [x16, #0xfb8]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(4024,64)),LittleEndian(),64)), -Def(Tid(1_091, "%00000443"), Attrs([Attr("address","0x5F8"), -Attr("insn","add x16, x16, #0xfb8")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(4024,64)))]), Jmps([Call(Tid(1_096, "%00000448"), - Attrs([Attr("address","0x5FC"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), -Sub(Tid(1_325, "@deregister_tm_clones"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x690")]), - "deregister_tm_clones", Args([Arg(Tid(1_373, "%0000055d"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("deregister_tm_clones_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(491, "@deregister_tm_clones"), - Attrs([Attr("address","0x690")]), Phis([]), Defs([Def(Tid(494, "%000001ee"), - Attrs([Attr("address","0x690"), Attr("insn","adrp x0, #69632")]), - Var("R0",Imm(64)), Int(69632,64)), Def(Tid(500, "%000001f4"), - Attrs([Attr("address","0x694"), Attr("insn","add x0, x0, #0x10")]), - Var("R0",Imm(64)), PLUS(Var("R0",Imm(64)),Int(16,64))), -Def(Tid(505, "%000001f9"), Attrs([Attr("address","0x698"), -Attr("insn","adrp x1, #69632")]), Var("R1",Imm(64)), Int(69632,64)), -Def(Tid(511, "%000001ff"), Attrs([Attr("address","0x69C"), -Attr("insn","add x1, x1, #0x10")]), Var("R1",Imm(64)), -PLUS(Var("R1",Imm(64)),Int(16,64))), Def(Tid(517, "%00000205"), - Attrs([Attr("address","0x6A0"), Attr("insn","cmp x1, x0")]), - Var("#1",Imm(64)), NOT(Var("R0",Imm(64)))), Def(Tid(522, "%0000020a"), - Attrs([Attr("address","0x6A0"), Attr("insn","cmp x1, x0")]), - Var("#2",Imm(64)), PLUS(Var("R1",Imm(64)),NOT(Var("R0",Imm(64))))), -Def(Tid(528, "%00000210"), Attrs([Attr("address","0x6A0"), -Attr("insn","cmp x1, x0")]), Var("VF",Imm(1)), -NEQ(SIGNED(65,PLUS(Var("#2",Imm(64)),Int(1,64))),PLUS(PLUS(SIGNED(65,Var("R1",Imm(64))),SIGNED(65,Var("#1",Imm(64)))),Int(1,65)))), -Def(Tid(534, "%00000216"), Attrs([Attr("address","0x6A0"), -Attr("insn","cmp x1, x0")]), Var("CF",Imm(1)), -NEQ(UNSIGNED(65,PLUS(Var("#2",Imm(64)),Int(1,64))),PLUS(PLUS(UNSIGNED(65,Var("R1",Imm(64))),UNSIGNED(65,Var("#1",Imm(64)))),Int(1,65)))), -Def(Tid(538, "%0000021a"), Attrs([Attr("address","0x6A0"), -Attr("insn","cmp x1, x0")]), Var("ZF",Imm(1)), -EQ(PLUS(Var("#2",Imm(64)),Int(1,64)),Int(0,64))), Def(Tid(542, "%0000021e"), - Attrs([Attr("address","0x6A0"), Attr("insn","cmp x1, x0")]), - Var("NF",Imm(1)), Extract(63,63,PLUS(Var("#2",Imm(64)),Int(1,64))))]), -Jmps([Goto(Tid(548, "%00000224"), Attrs([Attr("address","0x6A4"), -Attr("insn","b.eq #0x18")]), EQ(Var("ZF",Imm(1)),Int(1,1)), -Direct(Tid(546, "%00000222"))), Goto(Tid(1_357, "%0000054d"), Attrs([]), - Int(1,1), Direct(Tid(842, "%0000034a")))])), Blk(Tid(842, "%0000034a"), - Attrs([Attr("address","0x6A8")]), Phis([]), Defs([Def(Tid(845, "%0000034d"), - Attrs([Attr("address","0x6A8"), Attr("insn","adrp x1, #65536")]), - Var("R1",Imm(64)), Int(65536,64)), Def(Tid(852, "%00000354"), - Attrs([Attr("address","0x6AC"), Attr("insn","ldr x1, [x1, #0xfd0]")]), - Var("R1",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R1",Imm(64)),Int(4048,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(857, "%00000359"), Attrs([Attr("address","0x6B0"), -Attr("insn","cbz x1, #0xc")]), EQ(Var("R1",Imm(64)),Int(0,64)), -Direct(Tid(546, "%00000222"))), Goto(Tid(1_358, "%0000054e"), Attrs([]), - Int(1,1), Direct(Tid(861, "%0000035d")))])), Blk(Tid(546, "%00000222"), - Attrs([Attr("address","0x6BC")]), Phis([]), Defs([]), -Jmps([Call(Tid(554, "%0000022a"), Attrs([Attr("address","0x6BC"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))])), -Blk(Tid(861, "%0000035d"), Attrs([Attr("address","0x6B4")]), Phis([]), -Defs([Def(Tid(865, "%00000361"), Attrs([Attr("address","0x6B4"), -Attr("insn","mov x16, x1")]), Var("R16",Imm(64)), Var("R1",Imm(64)))]), -Jmps([Call(Tid(870, "%00000366"), Attrs([Attr("address","0x6B8"), -Attr("insn","br x16")]), Int(1,1), (Indirect(Var("R16",Imm(64))),))]))])), -Sub(Tid(1_328, "@frame_dummy"), Attrs([Attr("c.proto","signed (*)(void)"), -Attr("address","0x750")]), "frame_dummy", Args([Arg(Tid(1_374, "%0000055e"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("frame_dummy_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(706, "@frame_dummy"), - Attrs([Attr("address","0x750")]), Phis([]), Defs([]), -Jmps([Call(Tid(708, "%000002c4"), Attrs([Attr("address","0x750"), -Attr("insn","b #-0x90")]), Int(1,1), -(Direct(Tid(1_330, "@register_tm_clones")),))]))])), Sub(Tid(1_329, "@main"), - Attrs([Attr("c.proto","signed (*)(signed argc, const char** argv)"), -Attr("address","0x754")]), "main", Args([Arg(Tid(1_375, "%0000055f"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("main_argc",Imm(32)), -LOW(32,Var("R0",Imm(64))), In()), Arg(Tid(1_376, "%00000560"), - Attrs([Attr("c.layout","**[char : 8]"), Attr("c.data","Top:u8 ptr ptr"), -Attr("c.type"," const char**")]), Var("main_argv",Imm(64)), -Var("R1",Imm(64)), Both()), Arg(Tid(1_377, "%00000561"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("main_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(710, "@main"), - Attrs([Attr("address","0x754")]), Phis([]), Defs([Def(Tid(713, "%000002c9"), - Attrs([Attr("address","0x754"), Attr("insn","adrp x0, #65536")]), - Var("R0",Imm(64)), Int(65536,64)), Def(Tid(720, "%000002d0"), - Attrs([Attr("address","0x758"), Attr("insn","ldr x0, [x0, #0xff0]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(4080,64)),LittleEndian(),64)), -Def(Tid(727, "%000002d7"), Attrs([Attr("address","0x75C"), -Attr("insn","str wzr, [x0]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("R0",Imm(64)),Int(0,32),LittleEndian(),32)), -Def(Tid(732, "%000002dc"), Attrs([Attr("address","0x760"), -Attr("insn","adrp x0, #65536")]), Var("R0",Imm(64)), Int(65536,64)), -Def(Tid(739, "%000002e3"), Attrs([Attr("address","0x764"), -Attr("insn","ldr x0, [x0, #0xff0]")]), Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(4080,64)),LittleEndian(),64)), -Def(Tid(746, "%000002ea"), Attrs([Attr("address","0x768"), -Attr("insn","ldr w0, [x0]")]), Var("R0",Imm(64)), -UNSIGNED(64,Load(Var("mem",Mem(64,8)),Var("R0",Imm(64)),LittleEndian(),32)))]), -Jmps([Call(Tid(751, "%000002ef"), Attrs([Attr("address","0x76C"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))]))])), -Sub(Tid(1_330, "@register_tm_clones"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x6C0")]), - "register_tm_clones", Args([Arg(Tid(1_378, "%00000562"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("register_tm_clones_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(556, "@register_tm_clones"), Attrs([Attr("address","0x6C0")]), - Phis([]), Defs([Def(Tid(559, "%0000022f"), Attrs([Attr("address","0x6C0"), -Attr("insn","adrp x0, #69632")]), Var("R0",Imm(64)), Int(69632,64)), -Def(Tid(565, "%00000235"), Attrs([Attr("address","0x6C4"), -Attr("insn","add x0, x0, #0x10")]), Var("R0",Imm(64)), -PLUS(Var("R0",Imm(64)),Int(16,64))), Def(Tid(570, "%0000023a"), - Attrs([Attr("address","0x6C8"), Attr("insn","adrp x1, #69632")]), - Var("R1",Imm(64)), Int(69632,64)), Def(Tid(576, "%00000240"), - Attrs([Attr("address","0x6CC"), Attr("insn","add x1, x1, #0x10")]), - Var("R1",Imm(64)), PLUS(Var("R1",Imm(64)),Int(16,64))), -Def(Tid(583, "%00000247"), Attrs([Attr("address","0x6D0"), -Attr("insn","sub x1, x1, x0")]), Var("R1",Imm(64)), -PLUS(PLUS(Var("R1",Imm(64)),NOT(Var("R0",Imm(64)))),Int(1,64))), -Def(Tid(589, "%0000024d"), Attrs([Attr("address","0x6D4"), -Attr("insn","lsr x2, x1, #63")]), Var("R2",Imm(64)), -Concat(Int(0,63),Extract(63,63,Var("R1",Imm(64))))), -Def(Tid(596, "%00000254"), Attrs([Attr("address","0x6D8"), -Attr("insn","add x1, x2, x1, asr #3")]), Var("R1",Imm(64)), -PLUS(Var("R2",Imm(64)),ARSHIFT(Var("R1",Imm(64)),Int(3,3)))), -Def(Tid(602, "%0000025a"), Attrs([Attr("address","0x6DC"), -Attr("insn","asr x1, x1, #1")]), Var("R1",Imm(64)), -SIGNED(64,Extract(63,1,Var("R1",Imm(64)))))]), -Jmps([Goto(Tid(608, "%00000260"), Attrs([Attr("address","0x6E0"), -Attr("insn","cbz x1, #0x18")]), EQ(Var("R1",Imm(64)),Int(0,64)), -Direct(Tid(606, "%0000025e"))), Goto(Tid(1_359, "%0000054f"), Attrs([]), - Int(1,1), Direct(Tid(812, "%0000032c")))])), Blk(Tid(812, "%0000032c"), - Attrs([Attr("address","0x6E4")]), Phis([]), Defs([Def(Tid(815, "%0000032f"), - Attrs([Attr("address","0x6E4"), Attr("insn","adrp x2, #65536")]), - Var("R2",Imm(64)), Int(65536,64)), Def(Tid(822, "%00000336"), - Attrs([Attr("address","0x6E8"), Attr("insn","ldr x2, [x2, #0xff8]")]), - Var("R2",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R2",Imm(64)),Int(4088,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(827, "%0000033b"), Attrs([Attr("address","0x6EC"), -Attr("insn","cbz x2, #0xc")]), EQ(Var("R2",Imm(64)),Int(0,64)), -Direct(Tid(606, "%0000025e"))), Goto(Tid(1_360, "%00000550"), Attrs([]), - Int(1,1), Direct(Tid(831, "%0000033f")))])), Blk(Tid(606, "%0000025e"), - Attrs([Attr("address","0x6F8")]), Phis([]), Defs([]), -Jmps([Call(Tid(614, "%00000266"), Attrs([Attr("address","0x6F8"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))])), -Blk(Tid(831, "%0000033f"), Attrs([Attr("address","0x6F0")]), Phis([]), -Defs([Def(Tid(835, "%00000343"), Attrs([Attr("address","0x6F0"), -Attr("insn","mov x16, x2")]), Var("R16",Imm(64)), Var("R2",Imm(64)))]), -Jmps([Call(Tid(840, "%00000348"), Attrs([Attr("address","0x6F4"), -Attr("insn","br x16")]), Int(1,1), -(Indirect(Var("R16",Imm(64))),))]))]))]))) \ No newline at end of file diff --git a/src/test/correct/basic_arrays_read/gcc_pic/basic_arrays_read.bir b/src/test/correct/basic_arrays_read/gcc_pic/basic_arrays_read.bir deleted file mode 100644 index 6cb4804f5..000000000 --- a/src/test/correct/basic_arrays_read/gcc_pic/basic_arrays_read.bir +++ /dev/null @@ -1,229 +0,0 @@ -00000551: program -0000051f: sub __cxa_finalize(__cxa_finalize_result) -00000552: __cxa_finalize_result :: out u32 = low:32[R0] - -00000328: -00000420: R16 := 0x10000 -00000427: R17 := mem[R16 + 0xFB0, el]:u64 -0000042d: R16 := R16 + 0xFB0 -00000432: call R17 with noreturn - -00000520: sub __do_global_dtors_aux(__do_global_dtors_aux_result) -00000553: __do_global_dtors_aux_result :: out u32 = low:32[R0] - -0000026a: -0000026e: #3 := R31 - 0x20 -00000274: mem := mem with [#3, el]:u64 <- R29 -0000027a: mem := mem with [#3 + 8, el]:u64 <- R30 -0000027e: R31 := #3 -00000284: R29 := R31 -0000028c: mem := mem with [R31 + 0x10, el]:u64 <- R19 -00000291: R19 := 0x11000 -00000298: R0 := pad:64[mem[R19 + 0x10]] -0000029f: when 31:0[R0] <> 0 goto %0000029d -00000547: goto %000002f1 - -000002f1: -000002f4: R0 := 0x10000 -000002fb: R0 := mem[R0 + 0xFD8, el]:u64 -00000301: when R0 = 0 goto %000002ff -00000548: goto %00000318 - -00000318: -0000031b: R0 := 0x11000 -00000322: R0 := mem[R0 + 8, el]:u64 -00000327: R30 := 0x730 -0000032a: call @__cxa_finalize with return %000002ff - -000002ff: -00000307: R30 := 0x734 -00000309: call @deregister_tm_clones with return %0000030b - -0000030b: -0000030e: R0 := 1 -00000316: mem := mem with [R19 + 0x10] <- 7:0[R0] -00000549: goto %0000029d - -0000029d: -000002a7: R19 := mem[R31 + 0x10, el]:u64 -000002ae: R29 := mem[R31, el]:u64 -000002b3: R30 := mem[R31 + 8, el]:u64 -000002b7: R31 := R31 + 0x20 -000002bc: call R30 with noreturn - -00000524: sub __libc_start_main(__libc_start_main_main, __libc_start_main_arg2, __libc_start_main_arg3, __libc_start_main_auxv, __libc_start_main_result) -00000554: __libc_start_main_main :: in u64 = R0 -00000555: __libc_start_main_arg2 :: in u32 = low:32[R1] -00000556: __libc_start_main_arg3 :: in out u64 = R2 -00000557: __libc_start_main_auxv :: in out u64 = R3 -00000558: __libc_start_main_result :: out u32 = low:32[R0] - -000001c3: -0000040a: R16 := 0x10000 -00000411: R17 := mem[R16 + 0xFA8, el]:u64 -00000417: R16 := R16 + 0xFA8 -0000041c: call R17 with noreturn - -00000525: sub _fini(_fini_result) -00000559: _fini_result :: out u32 = low:32[R0] - -0000001f: -00000025: #0 := R31 - 0x10 -0000002b: mem := mem with [#0, el]:u64 <- R29 -00000031: mem := mem with [#0 + 8, el]:u64 <- R30 -00000035: R31 := #0 -0000003b: R29 := R31 -00000042: R29 := mem[R31, el]:u64 -00000047: R30 := mem[R31 + 8, el]:u64 -0000004b: R31 := R31 + 0x10 -00000050: call R30 with noreturn - -00000526: sub _init(_init_result) -0000055a: _init_result :: out u32 = low:32[R0] - -0000047a: -00000480: #5 := R31 - 0x10 -00000486: mem := mem with [#5, el]:u64 <- R29 -0000048c: mem := mem with [#5 + 8, el]:u64 <- R30 -00000490: R31 := #5 -00000496: R29 := R31 -0000049b: R30 := 0x5A8 -0000049d: call @call_weak_fn with return %0000049f - -0000049f: -000004a4: R29 := mem[R31, el]:u64 -000004a9: R30 := mem[R31 + 8, el]:u64 -000004ad: R31 := R31 + 0x10 -000004b2: call R30 with noreturn - -00000527: sub _start(_start_result) -0000055b: _start_result :: out u32 = low:32[R0] - -00000184: -00000189: R29 := 0 -0000018e: R30 := 0 -00000194: R5 := R0 -0000019b: R1 := mem[R31, el]:u64 -000001a1: R2 := R31 + 8 -000001a7: R6 := R31 -000001ac: R0 := 0x10000 -000001b3: R0 := mem[R0 + 0xFE8, el]:u64 -000001b8: R3 := 0 -000001bd: R4 := 0 -000001c2: R30 := 0x670 -000001c5: call @__libc_start_main with return %000001c7 - -000001c7: -000001ca: R30 := 0x674 -000001cd: call @abort with return %0000054a - -0000054a: -0000054b: call @call_weak_fn with noreturn - -0000052a: sub abort() - - -000001cb: -0000044c: R16 := 0x10000 -00000453: R17 := mem[R16 + 0xFC0, el]:u64 -00000459: R16 := R16 + 0xFC0 -0000045e: call R17 with noreturn - -0000052b: sub call_weak_fn(call_weak_fn_result) -0000055c: call_weak_fn_result :: out u32 = low:32[R0] - -000001cf: -000001d2: R0 := 0x10000 -000001d9: R0 := mem[R0 + 0xFE0, el]:u64 -000001df: when R0 = 0 goto %000001dd -0000054c: goto %00000368 - -000001dd: -000001e5: call R30 with noreturn - -00000368: -0000036b: goto @__gmon_start__ - -00000369: -00000436: R16 := 0x10000 -0000043d: R17 := mem[R16 + 0xFB8, el]:u64 -00000443: R16 := R16 + 0xFB8 -00000448: call R17 with noreturn - -0000052d: sub deregister_tm_clones(deregister_tm_clones_result) -0000055d: deregister_tm_clones_result :: out u32 = low:32[R0] - -000001eb: -000001ee: R0 := 0x11000 -000001f4: R0 := R0 + 0x10 -000001f9: R1 := 0x11000 -000001ff: R1 := R1 + 0x10 -00000205: #1 := ~R0 -0000020a: #2 := R1 + ~R0 -00000210: VF := extend:65[#2 + 1] <> extend:65[R1] + extend:65[#1] + 1 -00000216: CF := pad:65[#2 + 1] <> pad:65[R1] + pad:65[#1] + 1 -0000021a: ZF := #2 + 1 = 0 -0000021e: NF := 63:63[#2 + 1] -00000224: when ZF goto %00000222 -0000054d: goto %0000034a - -0000034a: -0000034d: R1 := 0x10000 -00000354: R1 := mem[R1 + 0xFD0, el]:u64 -00000359: when R1 = 0 goto %00000222 -0000054e: goto %0000035d - -00000222: -0000022a: call R30 with noreturn - -0000035d: -00000361: R16 := R1 -00000366: call R16 with noreturn - -00000530: sub frame_dummy(frame_dummy_result) -0000055e: frame_dummy_result :: out u32 = low:32[R0] - -000002c2: -000002c4: call @register_tm_clones with noreturn - -00000531: sub main(main_argc, main_argv, main_result) -0000055f: main_argc :: in u32 = low:32[R0] -00000560: main_argv :: in out u64 = R1 -00000561: main_result :: out u32 = low:32[R0] - -000002c6: -000002c9: R0 := 0x10000 -000002d0: R0 := mem[R0 + 0xFF0, el]:u64 -000002d7: mem := mem with [R0, el]:u32 <- 0 -000002dc: R0 := 0x10000 -000002e3: R0 := mem[R0 + 0xFF0, el]:u64 -000002ea: R0 := pad:64[mem[R0, el]:u32] -000002ef: call R30 with noreturn - -00000532: sub register_tm_clones(register_tm_clones_result) -00000562: register_tm_clones_result :: out u32 = low:32[R0] - -0000022c: -0000022f: R0 := 0x11000 -00000235: R0 := R0 + 0x10 -0000023a: R1 := 0x11000 -00000240: R1 := R1 + 0x10 -00000247: R1 := R1 + ~R0 + 1 -0000024d: R2 := 0.63:63[R1] -00000254: R1 := R2 + (R1 ~>> 3) -0000025a: R1 := extend:64[63:1[R1]] -00000260: when R1 = 0 goto %0000025e -0000054f: goto %0000032c - -0000032c: -0000032f: R2 := 0x10000 -00000336: R2 := mem[R2 + 0xFF8, el]:u64 -0000033b: when R2 = 0 goto %0000025e -00000550: goto %0000033f - -0000025e: -00000266: call R30 with noreturn - -0000033f: -00000343: R16 := R2 -00000348: call R16 with noreturn diff --git a/src/test/correct/basic_arrays_read/gcc_pic/basic_arrays_read.expected b/src/test/correct/basic_arrays_read/gcc_pic/basic_arrays_read.expected index 0ac23d87f..02cbd4125 100644 --- a/src/test/correct/basic_arrays_read/gcc_pic/basic_arrays_read.expected +++ b/src/test/correct/basic_arrays_read/gcc_pic/basic_arrays_read.expected @@ -1,18 +1,16 @@ var {:extern} Gamma_R0: bool; +var {:extern} Gamma_R1: bool; var {:extern} Gamma_mem: [bv64]bool; var {:extern} R0: bv64; +var {:extern} R1: bv64; var {:extern} mem: [bv64]bv8; const {:extern} $arr_addr: bv64; -axiom ($arr_addr == 69656bv64); +axiom ($arr_addr == 4325400bv64); function {:extern} L(mem$in: [bv64]bv8, index: bv64) returns (bool) { (if ((index == bvadd64($arr_addr, 4bv64)) || (index == bvadd64($arr_addr, 0bv64))) then false else false) } function {:extern} {:bvbuiltin "bvadd"} bvadd64(bv64, bv64) returns (bv64); -function {:extern} gamma_load32(gammaMap: [bv64]bool, index: bv64) returns (bool) { - (gammaMap[bvadd64(index, 3bv64)] && (gammaMap[bvadd64(index, 2bv64)] && (gammaMap[bvadd64(index, 1bv64)] && gammaMap[index]))) -} - function {:extern} gamma_load64(gammaMap: [bv64]bool, index: bv64) returns (bool) { (gammaMap[bvadd64(index, 7bv64)] && (gammaMap[bvadd64(index, 6bv64)] && (gammaMap[bvadd64(index, 5bv64)] && (gammaMap[bvadd64(index, 4bv64)] && (gammaMap[bvadd64(index, 3bv64)] && (gammaMap[bvadd64(index, 2bv64)] && (gammaMap[bvadd64(index, 1bv64)] && gammaMap[index]))))))) } @@ -33,17 +31,11 @@ function {:extern} memory_store32_le(memory: [bv64]bv8, index: bv64, value: bv32 memory[index := value[8:0]][bvadd64(index, 1bv64) := value[16:8]][bvadd64(index, 2bv64) := value[24:16]][bvadd64(index, 3bv64) := value[32:24]] } -function {:extern} {:bvbuiltin "zero_extend 32"} zero_extend32_32(bv32) returns (bv64); procedure {:extern} rely(); modifies Gamma_mem, mem; ensures (forall i: bv64 :: (((mem[i] == old(mem[i])) ==> (Gamma_mem[i] == old(Gamma_mem[i]))))); ensures (old(memory_load32_le(mem, bvadd64($arr_addr, 0bv64))) == memory_load32_le(mem, bvadd64($arr_addr, 0bv64))); - free ensures (memory_load32_le(mem, 1924bv64) == 131073bv32); - free ensures (memory_load64_le(mem, 69008bv64) == 1872bv64); - free ensures (memory_load64_le(mem, 69016bv64) == 1792bv64); - free ensures (memory_load64_le(mem, 69608bv64) == 1876bv64); - free ensures (memory_load64_le(mem, 69616bv64) == 69656bv64); - free ensures (memory_load64_le(mem, 69640bv64) == 69640bv64); + free ensures (memory_load32_le(mem, 4196312bv64) == 131073bv32); procedure {:extern} rely_transitive(); modifies Gamma_mem, mem; @@ -70,51 +62,31 @@ implementation {:extern} guarantee_reflexive() assert true; } -procedure main_1876(); - modifies Gamma_R0, Gamma_mem, R0, mem; - free requires (memory_load64_le(mem, 69632bv64) == 0bv64); - free requires (memory_load64_le(mem, 69640bv64) == 69640bv64); - free requires (memory_load32_le(mem, 1924bv64) == 131073bv32); - free requires (memory_load64_le(mem, 69008bv64) == 1872bv64); - free requires (memory_load64_le(mem, 69016bv64) == 1792bv64); - free requires (memory_load64_le(mem, 69608bv64) == 1876bv64); - free requires (memory_load64_le(mem, 69616bv64) == 69656bv64); - free requires (memory_load64_le(mem, 69640bv64) == 69640bv64); - free ensures (memory_load32_le(mem, 1924bv64) == 131073bv32); - free ensures (memory_load64_le(mem, 69008bv64) == 1872bv64); - free ensures (memory_load64_le(mem, 69016bv64) == 1792bv64); - free ensures (memory_load64_le(mem, 69608bv64) == 1876bv64); - free ensures (memory_load64_le(mem, 69616bv64) == 69656bv64); - free ensures (memory_load64_le(mem, 69640bv64) == 69640bv64); +procedure main(); + modifies Gamma_R0, Gamma_R1, Gamma_mem, R0, R1, mem; + free requires (memory_load64_le(mem, 4325376bv64) == 0bv64); + free requires (memory_load64_le(mem, 4325384bv64) == 0bv64); + free requires (memory_load32_le(mem, 4196312bv64) == 131073bv32); + free ensures (memory_load32_le(mem, 4196312bv64) == 131073bv32); -implementation main_1876() +implementation main() { - var Gamma_load18: bool; - var Gamma_load19: bool; - var Gamma_load20: bool; - var load18: bv64; - var load19: bv64; - var load20: bv32; + var $load$14: bv64; + var Gamma_$load$14: bool; lmain: assume {:captureState "lmain"} true; - R0, Gamma_R0 := 65536bv64, true; - call rely(); - load18, Gamma_load18 := memory_load64_le(mem, bvadd64(R0, 4080bv64)), (gamma_load64(Gamma_mem, bvadd64(R0, 4080bv64)) || L(mem, bvadd64(R0, 4080bv64))); - R0, Gamma_R0 := load18, Gamma_load18; - call rely(); - assert (L(mem, R0) ==> true); - mem, Gamma_mem := memory_store32_le(mem, R0, 0bv32), gamma_store32(Gamma_mem, R0, true); - assume {:captureState "%000002d7"} true; - R0, Gamma_R0 := 65536bv64, true; + R1, Gamma_R1 := 4321280bv64, true; + R0, Gamma_R0 := 0bv64, true; call rely(); - load19, Gamma_load19 := memory_load64_le(mem, bvadd64(R0, 4080bv64)), (gamma_load64(Gamma_mem, bvadd64(R0, 4080bv64)) || L(mem, bvadd64(R0, 4080bv64))); - R0, Gamma_R0 := load19, Gamma_load19; + $load$14, Gamma_$load$14 := memory_load64_le(mem, bvadd64(R1, 4080bv64)), (gamma_load64(Gamma_mem, bvadd64(R1, 4080bv64)) || L(mem, bvadd64(R1, 4080bv64))); + R1, Gamma_R1 := $load$14, Gamma_$load$14; call rely(); - load20, Gamma_load20 := memory_load32_le(mem, R0), (gamma_load32(Gamma_mem, R0) || L(mem, R0)); - R0, Gamma_R0 := zero_extend32_32(load20), Gamma_load20; - goto main_1876_basil_return; - main_1876_basil_return: - assume {:captureState "main_1876_basil_return"} true; + assert (L(mem, R1) ==> true); + mem, Gamma_mem := memory_store32_le(mem, R1, 0bv32), gamma_store32(Gamma_mem, R1, true); + assume {:captureState "%00000254"} true; + goto main_basil_return; + main_basil_return: + assume {:captureState "main_basil_return"} true; return; } diff --git a/src/test/correct/basic_arrays_read/gcc_pic/basic_arrays_read.gts b/src/test/correct/basic_arrays_read/gcc_pic/basic_arrays_read.gts deleted file mode 100644 index 196ca0a00..000000000 Binary files a/src/test/correct/basic_arrays_read/gcc_pic/basic_arrays_read.gts and /dev/null differ diff --git a/src/test/correct/basic_arrays_read/gcc_pic/basic_arrays_read.md5sum b/src/test/correct/basic_arrays_read/gcc_pic/basic_arrays_read.md5sum new file mode 100644 index 000000000..a037e9fec --- /dev/null +++ b/src/test/correct/basic_arrays_read/gcc_pic/basic_arrays_read.md5sum @@ -0,0 +1,5 @@ +2ec3ea4df676e55fc3672a90a86e73a1 correct/basic_arrays_read/gcc_pic/a.out +7d47f5a795fc25fd0567f2e477afae9a correct/basic_arrays_read/gcc_pic/basic_arrays_read.adt +e9a41fec788800eb7ef843a68290e7fd correct/basic_arrays_read/gcc_pic/basic_arrays_read.bir +abab84b9ba2cfc7c3cde55a19e97745e correct/basic_arrays_read/gcc_pic/basic_arrays_read.relf +6e01dae302ed9a7e49cdc58f631e080b correct/basic_arrays_read/gcc_pic/basic_arrays_read.gts diff --git a/src/test/correct/basic_arrays_read/gcc_pic/basic_arrays_read.relf b/src/test/correct/basic_arrays_read/gcc_pic/basic_arrays_read.relf deleted file mode 100644 index 558abdcd6..000000000 --- a/src/test/correct/basic_arrays_read/gcc_pic/basic_arrays_read.relf +++ /dev/null @@ -1,122 +0,0 @@ - -Relocation section '.rela.dyn' at offset 0x460 contains 9 entries: - Offset Info Type Symbol's Value Symbol's Name + Addend -0000000000010d90 0000000000000403 R_AARCH64_RELATIVE 750 -0000000000010d98 0000000000000403 R_AARCH64_RELATIVE 700 -0000000000010fe8 0000000000000403 R_AARCH64_RELATIVE 754 -0000000000010ff0 0000000000000403 R_AARCH64_RELATIVE 11018 -0000000000011008 0000000000000403 R_AARCH64_RELATIVE 11008 -0000000000010fd0 0000000400000401 R_AARCH64_GLOB_DAT 0000000000000000 _ITM_deregisterTMCloneTable + 0 -0000000000010fd8 0000000500000401 R_AARCH64_GLOB_DAT 0000000000000000 __cxa_finalize@GLIBC_2.17 + 0 -0000000000010fe0 0000000600000401 R_AARCH64_GLOB_DAT 0000000000000000 __gmon_start__ + 0 -0000000000010ff8 0000000800000401 R_AARCH64_GLOB_DAT 0000000000000000 _ITM_registerTMCloneTable + 0 - -Relocation section '.rela.plt' at offset 0x538 contains 4 entries: - Offset Info Type Symbol's Value Symbol's Name + Addend -0000000000010fa8 0000000300000402 R_AARCH64_JUMP_SLOT 0000000000000000 __libc_start_main@GLIBC_2.34 + 0 -0000000000010fb0 0000000500000402 R_AARCH64_JUMP_SLOT 0000000000000000 __cxa_finalize@GLIBC_2.17 + 0 -0000000000010fb8 0000000600000402 R_AARCH64_JUMP_SLOT 0000000000000000 __gmon_start__ + 0 -0000000000010fc0 0000000700000402 R_AARCH64_JUMP_SLOT 0000000000000000 abort@GLIBC_2.17 + 0 - -Symbol table '.dynsym' contains 9 entries: - Num: Value Size Type Bind Vis Ndx Name - 0: 0000000000000000 0 NOTYPE LOCAL DEFAULT UND - 1: 0000000000000598 0 SECTION LOCAL DEFAULT 11 .init - 2: 0000000000011000 0 SECTION LOCAL DEFAULT 22 .data - 3: 0000000000000000 0 FUNC GLOBAL DEFAULT UND __libc_start_main@GLIBC_2.34 (2) - 4: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_deregisterTMCloneTable - 5: 0000000000000000 0 FUNC WEAK DEFAULT UND __cxa_finalize@GLIBC_2.17 (3) - 6: 0000000000000000 0 NOTYPE WEAK DEFAULT UND __gmon_start__ - 7: 0000000000000000 0 FUNC GLOBAL DEFAULT UND abort@GLIBC_2.17 (3) - 8: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_registerTMCloneTable - -Symbol table '.symtab' contains 88 entries: - Num: Value Size Type Bind Vis Ndx Name - 0: 0000000000000000 0 NOTYPE LOCAL DEFAULT UND - 1: 0000000000000238 0 SECTION LOCAL DEFAULT 1 .interp - 2: 0000000000000254 0 SECTION LOCAL DEFAULT 2 .note.gnu.build-id - 3: 0000000000000278 0 SECTION LOCAL DEFAULT 3 .note.ABI-tag - 4: 0000000000000298 0 SECTION LOCAL DEFAULT 4 .gnu.hash - 5: 00000000000002b8 0 SECTION LOCAL DEFAULT 5 .dynsym - 6: 0000000000000390 0 SECTION LOCAL DEFAULT 6 .dynstr - 7: 000000000000041e 0 SECTION LOCAL DEFAULT 7 .gnu.version - 8: 0000000000000430 0 SECTION LOCAL DEFAULT 8 .gnu.version_r - 9: 0000000000000460 0 SECTION LOCAL DEFAULT 9 .rela.dyn - 10: 0000000000000538 0 SECTION LOCAL DEFAULT 10 .rela.plt - 11: 0000000000000598 0 SECTION LOCAL DEFAULT 11 .init - 12: 00000000000005b0 0 SECTION LOCAL DEFAULT 12 .plt - 13: 0000000000000640 0 SECTION LOCAL DEFAULT 13 .text - 14: 0000000000000770 0 SECTION LOCAL DEFAULT 14 .fini - 15: 0000000000000784 0 SECTION LOCAL DEFAULT 15 .rodata - 16: 0000000000000788 0 SECTION LOCAL DEFAULT 16 .eh_frame_hdr - 17: 00000000000007c8 0 SECTION LOCAL DEFAULT 17 .eh_frame - 18: 0000000000010d90 0 SECTION LOCAL DEFAULT 18 .init_array - 19: 0000000000010d98 0 SECTION LOCAL DEFAULT 19 .fini_array - 20: 0000000000010da0 0 SECTION LOCAL DEFAULT 20 .dynamic - 21: 0000000000010f90 0 SECTION LOCAL DEFAULT 21 .got - 22: 0000000000011000 0 SECTION LOCAL DEFAULT 22 .data - 23: 0000000000011010 0 SECTION LOCAL DEFAULT 23 .bss - 24: 0000000000000000 0 SECTION LOCAL DEFAULT 24 .comment - 25: 0000000000000000 0 FILE LOCAL DEFAULT ABS Scrt1.o - 26: 0000000000000278 0 NOTYPE LOCAL DEFAULT 3 $d - 27: 0000000000000278 32 OBJECT LOCAL DEFAULT 3 __abi_tag - 28: 0000000000000640 0 NOTYPE LOCAL DEFAULT 13 $x - 29: 00000000000007dc 0 NOTYPE LOCAL DEFAULT 17 $d - 30: 0000000000000784 0 NOTYPE LOCAL DEFAULT 15 $d - 31: 0000000000000000 0 FILE LOCAL DEFAULT ABS crti.o - 32: 0000000000000674 0 NOTYPE LOCAL DEFAULT 13 $x - 33: 0000000000000674 20 FUNC LOCAL DEFAULT 13 call_weak_fn - 34: 0000000000000598 0 NOTYPE LOCAL DEFAULT 11 $x - 35: 0000000000000770 0 NOTYPE LOCAL DEFAULT 14 $x - 36: 0000000000000000 0 FILE LOCAL DEFAULT ABS crtn.o - 37: 00000000000005a8 0 NOTYPE LOCAL DEFAULT 11 $x - 38: 000000000000077c 0 NOTYPE LOCAL DEFAULT 14 $x - 39: 0000000000000000 0 FILE LOCAL DEFAULT ABS crtstuff.c - 40: 0000000000000690 0 NOTYPE LOCAL DEFAULT 13 $x - 41: 0000000000000690 0 FUNC LOCAL DEFAULT 13 deregister_tm_clones - 42: 00000000000006c0 0 FUNC LOCAL DEFAULT 13 register_tm_clones - 43: 0000000000011008 0 NOTYPE LOCAL DEFAULT 22 $d - 44: 0000000000000700 0 FUNC LOCAL DEFAULT 13 __do_global_dtors_aux - 45: 0000000000011010 1 OBJECT LOCAL DEFAULT 23 completed.0 - 46: 0000000000010d98 0 NOTYPE LOCAL DEFAULT 19 $d - 47: 0000000000010d98 0 OBJECT LOCAL DEFAULT 19 __do_global_dtors_aux_fini_array_entry - 48: 0000000000000750 0 FUNC LOCAL DEFAULT 13 frame_dummy - 49: 0000000000010d90 0 NOTYPE LOCAL DEFAULT 18 $d - 50: 0000000000010d90 0 OBJECT LOCAL DEFAULT 18 __frame_dummy_init_array_entry - 51: 00000000000007f0 0 NOTYPE LOCAL DEFAULT 17 $d - 52: 0000000000011010 0 NOTYPE LOCAL DEFAULT 23 $d - 53: 0000000000000000 0 FILE LOCAL DEFAULT ABS basic_arrays_read.c - 54: 0000000000011018 0 NOTYPE LOCAL DEFAULT 23 $d - 55: 0000000000000754 0 NOTYPE LOCAL DEFAULT 13 $x - 56: 0000000000000850 0 NOTYPE LOCAL DEFAULT 17 $d - 57: 0000000000000000 0 FILE LOCAL DEFAULT ABS crtstuff.c - 58: 0000000000000864 0 NOTYPE LOCAL DEFAULT 17 $d - 59: 0000000000000864 0 OBJECT LOCAL DEFAULT 17 __FRAME_END__ - 60: 0000000000000000 0 FILE LOCAL DEFAULT ABS - 61: 0000000000010da0 0 OBJECT LOCAL DEFAULT ABS _DYNAMIC - 62: 0000000000000788 0 NOTYPE LOCAL DEFAULT 16 __GNU_EH_FRAME_HDR - 63: 0000000000010fc8 0 OBJECT LOCAL DEFAULT ABS _GLOBAL_OFFSET_TABLE_ - 64: 00000000000005b0 0 NOTYPE LOCAL DEFAULT 12 $x - 65: 0000000000000000 0 FUNC GLOBAL DEFAULT UND __libc_start_main@GLIBC_2.34 - 66: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_deregisterTMCloneTable - 67: 0000000000011000 0 NOTYPE WEAK DEFAULT 22 data_start - 68: 0000000000011010 0 NOTYPE GLOBAL DEFAULT 23 __bss_start__ - 69: 0000000000000000 0 FUNC WEAK DEFAULT UND __cxa_finalize@GLIBC_2.17 - 70: 0000000000011020 0 NOTYPE GLOBAL DEFAULT 23 _bss_end__ - 71: 0000000000011010 0 NOTYPE GLOBAL DEFAULT 22 _edata - 72: 0000000000000770 0 FUNC GLOBAL HIDDEN 14 _fini - 73: 0000000000011020 0 NOTYPE GLOBAL DEFAULT 23 __bss_end__ - 74: 0000000000011000 0 NOTYPE GLOBAL DEFAULT 22 __data_start - 75: 0000000000000000 0 NOTYPE WEAK DEFAULT UND __gmon_start__ - 76: 0000000000011008 0 OBJECT GLOBAL HIDDEN 22 __dso_handle - 77: 0000000000000000 0 FUNC GLOBAL DEFAULT UND abort@GLIBC_2.17 - 78: 0000000000000784 4 OBJECT GLOBAL DEFAULT 15 _IO_stdin_used - 79: 0000000000011020 0 NOTYPE GLOBAL DEFAULT 23 _end - 80: 0000000000000640 52 FUNC GLOBAL DEFAULT 13 _start - 81: 0000000000011020 0 NOTYPE GLOBAL DEFAULT 23 __end__ - 82: 0000000000011010 0 NOTYPE GLOBAL DEFAULT 23 __bss_start - 83: 0000000000000754 28 FUNC GLOBAL DEFAULT 13 main - 84: 0000000000011018 8 OBJECT GLOBAL DEFAULT 23 arr - 85: 0000000000011010 0 OBJECT GLOBAL HIDDEN 22 __TMC_END__ - 86: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_registerTMCloneTable - 87: 0000000000000598 0 FUNC GLOBAL HIDDEN 11 _init diff --git a/src/test/correct/basic_arrays_read/gcc_pic/basic_arrays_read_gtirb.expected b/src/test/correct/basic_arrays_read/gcc_pic/basic_arrays_read_gtirb.expected index 60122c3ac..2e83cc154 100644 --- a/src/test/correct/basic_arrays_read/gcc_pic/basic_arrays_read_gtirb.expected +++ b/src/test/correct/basic_arrays_read/gcc_pic/basic_arrays_read_gtirb.expected @@ -1,18 +1,16 @@ var {:extern} Gamma_R0: bool; +var {:extern} Gamma_R1: bool; var {:extern} Gamma_mem: [bv64]bool; var {:extern} R0: bv64; +var {:extern} R1: bv64; var {:extern} mem: [bv64]bv8; const {:extern} $arr_addr: bv64; -axiom ($arr_addr == 69656bv64); +axiom ($arr_addr == 4325400bv64); function {:extern} L(mem$in: [bv64]bv8, index: bv64) returns (bool) { (if ((index == bvadd64($arr_addr, 4bv64)) || (index == bvadd64($arr_addr, 0bv64))) then false else false) } function {:extern} {:bvbuiltin "bvadd"} bvadd64(bv64, bv64) returns (bv64); -function {:extern} gamma_load32(gammaMap: [bv64]bool, index: bv64) returns (bool) { - (gammaMap[bvadd64(index, 3bv64)] && (gammaMap[bvadd64(index, 2bv64)] && (gammaMap[bvadd64(index, 1bv64)] && gammaMap[index]))) -} - function {:extern} gamma_load64(gammaMap: [bv64]bool, index: bv64) returns (bool) { (gammaMap[bvadd64(index, 7bv64)] && (gammaMap[bvadd64(index, 6bv64)] && (gammaMap[bvadd64(index, 5bv64)] && (gammaMap[bvadd64(index, 4bv64)] && (gammaMap[bvadd64(index, 3bv64)] && (gammaMap[bvadd64(index, 2bv64)] && (gammaMap[bvadd64(index, 1bv64)] && gammaMap[index]))))))) } @@ -33,17 +31,11 @@ function {:extern} memory_store32_le(memory: [bv64]bv8, index: bv64, value: bv32 memory[index := value[8:0]][bvadd64(index, 1bv64) := value[16:8]][bvadd64(index, 2bv64) := value[24:16]][bvadd64(index, 3bv64) := value[32:24]] } -function {:extern} {:bvbuiltin "zero_extend 32"} zero_extend32_32(bv32) returns (bv64); procedure {:extern} rely(); modifies Gamma_mem, mem; ensures (forall i: bv64 :: (((mem[i] == old(mem[i])) ==> (Gamma_mem[i] == old(Gamma_mem[i]))))); ensures (old(memory_load32_le(mem, bvadd64($arr_addr, 0bv64))) == memory_load32_le(mem, bvadd64($arr_addr, 0bv64))); - free ensures (memory_load32_le(mem, 1924bv64) == 131073bv32); - free ensures (memory_load64_le(mem, 69008bv64) == 1872bv64); - free ensures (memory_load64_le(mem, 69016bv64) == 1792bv64); - free ensures (memory_load64_le(mem, 69608bv64) == 1876bv64); - free ensures (memory_load64_le(mem, 69616bv64) == 69656bv64); - free ensures (memory_load64_le(mem, 69640bv64) == 69640bv64); + free ensures (memory_load32_le(mem, 4196312bv64) == 131073bv32); procedure {:extern} rely_transitive(); modifies Gamma_mem, mem; @@ -70,51 +62,31 @@ implementation {:extern} guarantee_reflexive() assert true; } -procedure main_1876(); - modifies Gamma_R0, Gamma_mem, R0, mem; - free requires (memory_load64_le(mem, 69632bv64) == 0bv64); - free requires (memory_load64_le(mem, 69640bv64) == 69640bv64); - free requires (memory_load32_le(mem, 1924bv64) == 131073bv32); - free requires (memory_load64_le(mem, 69008bv64) == 1872bv64); - free requires (memory_load64_le(mem, 69016bv64) == 1792bv64); - free requires (memory_load64_le(mem, 69608bv64) == 1876bv64); - free requires (memory_load64_le(mem, 69616bv64) == 69656bv64); - free requires (memory_load64_le(mem, 69640bv64) == 69640bv64); - free ensures (memory_load32_le(mem, 1924bv64) == 131073bv32); - free ensures (memory_load64_le(mem, 69008bv64) == 1872bv64); - free ensures (memory_load64_le(mem, 69016bv64) == 1792bv64); - free ensures (memory_load64_le(mem, 69608bv64) == 1876bv64); - free ensures (memory_load64_le(mem, 69616bv64) == 69656bv64); - free ensures (memory_load64_le(mem, 69640bv64) == 69640bv64); +procedure main(); + modifies Gamma_R0, Gamma_R1, Gamma_mem, R0, R1, mem; + free requires (memory_load64_le(mem, 4325376bv64) == 0bv64); + free requires (memory_load64_le(mem, 4325384bv64) == 0bv64); + free requires (memory_load32_le(mem, 4196312bv64) == 131073bv32); + free ensures (memory_load32_le(mem, 4196312bv64) == 131073bv32); -implementation main_1876() +implementation main() { - var Gamma_load10: bool; - var Gamma_load11: bool; - var Gamma_load9: bool; - var load10: bv64; - var load11: bv32; - var load9: bv64; - main_1876__0__H8IsYbn_SQGlYyUfKVFdig: - assume {:captureState "main_1876__0__H8IsYbn_SQGlYyUfKVFdig"} true; - R0, Gamma_R0 := 65536bv64, true; - call rely(); - load9, Gamma_load9 := memory_load64_le(mem, bvadd64(R0, 4080bv64)), (gamma_load64(Gamma_mem, bvadd64(R0, 4080bv64)) || L(mem, bvadd64(R0, 4080bv64))); - R0, Gamma_R0 := load9, Gamma_load9; - call rely(); - assert (L(mem, R0) ==> true); - mem, Gamma_mem := memory_store32_le(mem, R0, 0bv32), gamma_store32(Gamma_mem, R0, true); - assume {:captureState "1884_0"} true; - R0, Gamma_R0 := 65536bv64, true; + var $load3: bv64; + var Gamma_$load3: bool; + $main$__0__$wtDzxxOjSJeWxzGBUpQYxA: + assume {:captureState "$main$__0__$wtDzxxOjSJeWxzGBUpQYxA"} true; + R1, Gamma_R1 := 4321280bv64, true; + R0, Gamma_R0 := 0bv64, true; call rely(); - load10, Gamma_load10 := memory_load64_le(mem, bvadd64(R0, 4080bv64)), (gamma_load64(Gamma_mem, bvadd64(R0, 4080bv64)) || L(mem, bvadd64(R0, 4080bv64))); - R0, Gamma_R0 := load10, Gamma_load10; + $load3, Gamma_$load3 := memory_load64_le(mem, bvadd64(R1, 4080bv64)), (gamma_load64(Gamma_mem, bvadd64(R1, 4080bv64)) || L(mem, bvadd64(R1, 4080bv64))); + R1, Gamma_R1 := $load3, Gamma_$load3; call rely(); - load11, Gamma_load11 := memory_load32_le(mem, R0), (gamma_load32(Gamma_mem, R0) || L(mem, R0)); - R0, Gamma_R0 := zero_extend32_32(load11), Gamma_load11; - goto main_1876_basil_return; - main_1876_basil_return: - assume {:captureState "main_1876_basil_return"} true; + assert (L(mem, R1) ==> true); + mem, Gamma_mem := memory_store32_le(mem, R1, 0bv32), gamma_store32(Gamma_mem, R1, true); + assume {:captureState "4195980$0"} true; + goto main_basil_return; + main_basil_return: + assume {:captureState "main_basil_return"} true; return; } diff --git a/src/test/correct/basic_arrays_write/clang/basic_arrays_write.adt b/src/test/correct/basic_arrays_write/clang/basic_arrays_write.adt deleted file mode 100644 index ffacf0fae..000000000 --- a/src/test/correct/basic_arrays_write/clang/basic_arrays_write.adt +++ /dev/null @@ -1,504 +0,0 @@ -Project(Attrs([Attr("filename","\"clang/basic_arrays_write.out\""), -Attr("image-specification","(declare abi (name str))\n(declare arch (name str))\n(declare base-address (addr int))\n(declare bias (off int))\n(declare bits (size int))\n(declare code-region (addr int) (size int) (off int))\n(declare code-start (addr int))\n(declare entry-point (addr int))\n(declare external-reference (addr int) (name str))\n(declare format (name str))\n(declare is-executable (flag bool))\n(declare is-little-endian (flag bool))\n(declare llvm:base-address (addr int))\n(declare llvm:code-entry (name str) (off int) (size int))\n(declare llvm:coff-import-library (name str))\n(declare llvm:coff-virtual-section-header (name str) (addr int) (size int))\n(declare llvm:elf-program-header (name str) (off int) (size int))\n(declare llvm:elf-program-header-flags (name str) (ld bool) (r bool) \n (w bool) (x bool))\n(declare llvm:elf-virtual-program-header (name str) (addr int) (size int))\n(declare llvm:entry-point (addr int))\n(declare llvm:macho-symbol (name str) (value int))\n(declare llvm:name-reference (at int) (name str))\n(declare llvm:relocation (at int) (addr int))\n(declare llvm:section-entry (name str) (addr int) (size int) (off int))\n(declare llvm:section-flags (name str) (r bool) (w bool) (x bool))\n(declare llvm:segment-command (name str) (off int) (size int))\n(declare llvm:segment-command-flags (name str) (r bool) (w bool) (x bool))\n(declare llvm:symbol-entry (name str) (addr int) (size int) (off int)\n (value int))\n(declare llvm:virtual-segment-command (name str) (addr int) (size int))\n(declare mapped (addr int) (size int) (off int))\n(declare named-region (addr int) (size int) (name str))\n(declare named-symbol (addr int) (name str))\n(declare require (name str))\n(declare section (addr int) (size int))\n(declare segment (addr int) (size int) (r bool) (w bool) (x bool))\n(declare subarch (name str))\n(declare symbol-chunk (addr int) (size int) (root int))\n(declare symbol-value (addr int) (value int))\n(declare system (name str))\n(declare vendor (name str))\n\n(abi unknown)\n(arch aarch64)\n(base-address 0)\n(bias 0)\n(bits 64)\n(code-region 1848 20 1848)\n(code-region 1536 312 1536)\n(code-region 1440 96 1440)\n(code-region 1408 24 1408)\n(code-start 1588)\n(code-start 1536)\n(code-start 1812)\n(entry-point 1536)\n(external-reference 69568 _ITM_deregisterTMCloneTable)\n(external-reference 69576 __cxa_finalize)\n(external-reference 69584 __gmon_start__)\n(external-reference 69600 _ITM_registerTMCloneTable)\n(external-reference 69632 __libc_start_main)\n(external-reference 69640 __cxa_finalize)\n(external-reference 69648 __gmon_start__)\n(external-reference 69656 abort)\n(format elf)\n(is-executable true)\n(is-little-endian true)\n(llvm:base-address 0)\n(llvm:code-entry abort 0 0)\n(llvm:code-entry __cxa_finalize 0 0)\n(llvm:code-entry __libc_start_main 0 0)\n(llvm:code-entry _init 1408 0)\n(llvm:code-entry main 1812 36)\n(llvm:code-entry _start 1536 52)\n(llvm:code-entry abort@GLIBC_2.17 0 0)\n(llvm:code-entry _fini 1848 0)\n(llvm:code-entry __cxa_finalize@GLIBC_2.17 0 0)\n(llvm:code-entry __libc_start_main@GLIBC_2.34 0 0)\n(llvm:code-entry frame_dummy 1808 0)\n(llvm:code-entry __do_global_dtors_aux 1728 0)\n(llvm:code-entry register_tm_clones 1664 0)\n(llvm:code-entry deregister_tm_clones 1616 0)\n(llvm:code-entry call_weak_fn 1588 20)\n(llvm:code-entry .fini 1848 20)\n(llvm:code-entry .text 1536 312)\n(llvm:code-entry .plt 1440 96)\n(llvm:code-entry .init 1408 24)\n(llvm:elf-program-header 08 3528 568)\n(llvm:elf-program-header 07 0 0)\n(llvm:elf-program-header 06 1872 60)\n(llvm:elf-program-header 05 596 68)\n(llvm:elf-program-header 04 3544 480)\n(llvm:elf-program-header 03 3528 616)\n(llvm:elf-program-header 02 0 2120)\n(llvm:elf-program-header 01 568 27)\n(llvm:elf-program-header 00 64 504)\n(llvm:elf-program-header-flags 08 false true false false)\n(llvm:elf-program-header-flags 07 false true true false)\n(llvm:elf-program-header-flags 06 false true false false)\n(llvm:elf-program-header-flags 05 false true false false)\n(llvm:elf-program-header-flags 04 false true true false)\n(llvm:elf-program-header-flags 03 true true true false)\n(llvm:elf-program-header-flags 02 true true false true)\n(llvm:elf-program-header-flags 01 false true false false)\n(llvm:elf-program-header-flags 00 false true false false)\n(llvm:elf-virtual-program-header 08 69064 568)\n(llvm:elf-virtual-program-header 07 0 0)\n(llvm:elf-virtual-program-header 06 1872 60)\n(llvm:elf-virtual-program-header 05 596 68)\n(llvm:elf-virtual-program-header 04 69080 480)\n(llvm:elf-virtual-program-header 03 69064 632)\n(llvm:elf-virtual-program-header 02 0 2120)\n(llvm:elf-virtual-program-header 01 568 27)\n(llvm:elf-virtual-program-header 00 64 504)\n(llvm:entry-point 1536)\n(llvm:name-reference 69656 abort)\n(llvm:name-reference 69648 __gmon_start__)\n(llvm:name-reference 69640 __cxa_finalize)\n(llvm:name-reference 69632 __libc_start_main)\n(llvm:name-reference 69600 _ITM_registerTMCloneTable)\n(llvm:name-reference 69584 __gmon_start__)\n(llvm:name-reference 69576 __cxa_finalize)\n(llvm:name-reference 69568 _ITM_deregisterTMCloneTable)\n(llvm:section-entry .shstrtab 0 259 6954)\n(llvm:section-entry .strtab 0 578 6376)\n(llvm:section-entry .symtab 0 2160 4216)\n(llvm:section-entry .comment 0 71 4144)\n(llvm:section-entry .bss 69680 16 4144)\n(llvm:section-entry .data 69664 16 4128)\n(llvm:section-entry .got.plt 69608 56 4072)\n(llvm:section-entry .got 69560 48 4024)\n(llvm:section-entry .dynamic 69080 480 3544)\n(llvm:section-entry .fini_array 69072 8 3536)\n(llvm:section-entry .init_array 69064 8 3528)\n(llvm:section-entry .eh_frame 1936 184 1936)\n(llvm:section-entry .eh_frame_hdr 1872 60 1872)\n(llvm:section-entry .rodata 1868 4 1868)\n(llvm:section-entry .fini 1848 20 1848)\n(llvm:section-entry .text 1536 312 1536)\n(llvm:section-entry .plt 1440 96 1440)\n(llvm:section-entry .init 1408 24 1408)\n(llvm:section-entry .rela.plt 1312 96 1312)\n(llvm:section-entry .rela.dyn 1120 192 1120)\n(llvm:section-entry .gnu.version_r 1072 48 1072)\n(llvm:section-entry .gnu.version 1054 18 1054)\n(llvm:section-entry .dynstr 912 141 912)\n(llvm:section-entry .dynsym 696 216 696)\n(llvm:section-entry .gnu.hash 664 28 664)\n(llvm:section-entry .note.ABI-tag 632 32 632)\n(llvm:section-entry .note.gnu.build-id 596 36 596)\n(llvm:section-entry .interp 568 27 568)\n(llvm:section-flags .shstrtab true false false)\n(llvm:section-flags .strtab true false false)\n(llvm:section-flags .symtab true false false)\n(llvm:section-flags .comment true false false)\n(llvm:section-flags .bss true true false)\n(llvm:section-flags .data true true false)\n(llvm:section-flags .got.plt true true false)\n(llvm:section-flags .got true true false)\n(llvm:section-flags .dynamic true true false)\n(llvm:section-flags .fini_array true true false)\n(llvm:section-flags .init_array true true false)\n(llvm:section-flags .eh_frame true false false)\n(llvm:section-flags .eh_frame_hdr true false false)\n(llvm:section-flags .rodata true false false)\n(llvm:section-flags .fini true false true)\n(llvm:section-flags .text true false true)\n(llvm:section-flags .plt true false true)\n(llvm:section-flags .init true false true)\n(llvm:section-flags .rela.plt true false false)\n(llvm:section-flags .rela.dyn true false false)\n(llvm:section-flags .gnu.version_r true false false)\n(llvm:section-flags .gnu.version true false false)\n(llvm:section-flags .dynstr true false false)\n(llvm:section-flags .dynsym true false false)\n(llvm:section-flags .gnu.hash true false false)\n(llvm:section-flags .note.ABI-tag true false false)\n(llvm:section-flags .note.gnu.build-id true false false)\n(llvm:section-flags .interp true false false)\n(llvm:symbol-entry abort 0 0 0 0)\n(llvm:symbol-entry __cxa_finalize 0 0 0 0)\n(llvm:symbol-entry __libc_start_main 0 0 0 0)\n(llvm:symbol-entry _init 1408 0 1408 1408)\n(llvm:symbol-entry main 1812 36 1812 1812)\n(llvm:symbol-entry _start 1536 52 1536 1536)\n(llvm:symbol-entry abort@GLIBC_2.17 0 0 0 0)\n(llvm:symbol-entry _fini 1848 0 1848 1848)\n(llvm:symbol-entry __cxa_finalize@GLIBC_2.17 0 0 0 0)\n(llvm:symbol-entry __libc_start_main@GLIBC_2.34 0 0 0 0)\n(llvm:symbol-entry frame_dummy 1808 0 1808 1808)\n(llvm:symbol-entry __do_global_dtors_aux 1728 0 1728 1728)\n(llvm:symbol-entry register_tm_clones 1664 0 1664 1664)\n(llvm:symbol-entry deregister_tm_clones 1616 0 1616 1616)\n(llvm:symbol-entry call_weak_fn 1588 20 1588 1588)\n(mapped 0 2120 0)\n(mapped 69064 616 3528)\n(named-region 0 2120 02)\n(named-region 69064 632 03)\n(named-region 568 27 .interp)\n(named-region 596 36 .note.gnu.build-id)\n(named-region 632 32 .note.ABI-tag)\n(named-region 664 28 .gnu.hash)\n(named-region 696 216 .dynsym)\n(named-region 912 141 .dynstr)\n(named-region 1054 18 .gnu.version)\n(named-region 1072 48 .gnu.version_r)\n(named-region 1120 192 .rela.dyn)\n(named-region 1312 96 .rela.plt)\n(named-region 1408 24 .init)\n(named-region 1440 96 .plt)\n(named-region 1536 312 .text)\n(named-region 1848 20 .fini)\n(named-region 1868 4 .rodata)\n(named-region 1872 60 .eh_frame_hdr)\n(named-region 1936 184 .eh_frame)\n(named-region 69064 8 .init_array)\n(named-region 69072 8 .fini_array)\n(named-region 69080 480 .dynamic)\n(named-region 69560 48 .got)\n(named-region 69608 56 .got.plt)\n(named-region 69664 16 .data)\n(named-region 69680 16 .bss)\n(named-region 0 71 .comment)\n(named-region 0 2160 .symtab)\n(named-region 0 578 .strtab)\n(named-region 0 259 .shstrtab)\n(named-symbol 1588 call_weak_fn)\n(named-symbol 1616 deregister_tm_clones)\n(named-symbol 1664 register_tm_clones)\n(named-symbol 1728 __do_global_dtors_aux)\n(named-symbol 1808 frame_dummy)\n(named-symbol 0 __libc_start_main@GLIBC_2.34)\n(named-symbol 0 __cxa_finalize@GLIBC_2.17)\n(named-symbol 1848 _fini)\n(named-symbol 0 abort@GLIBC_2.17)\n(named-symbol 1536 _start)\n(named-symbol 1812 main)\n(named-symbol 1408 _init)\n(named-symbol 0 __libc_start_main)\n(named-symbol 0 __cxa_finalize)\n(named-symbol 0 abort)\n(require libc.so.6)\n(section 568 27)\n(section 596 36)\n(section 632 32)\n(section 664 28)\n(section 696 216)\n(section 912 141)\n(section 1054 18)\n(section 1072 48)\n(section 1120 192)\n(section 1312 96)\n(section 1408 24)\n(section 1440 96)\n(section 1536 312)\n(section 1848 20)\n(section 1868 4)\n(section 1872 60)\n(section 1936 184)\n(section 69064 8)\n(section 69072 8)\n(section 69080 480)\n(section 69560 48)\n(section 69608 56)\n(section 69664 16)\n(section 69680 16)\n(section 0 71)\n(section 0 2160)\n(section 0 578)\n(section 0 259)\n(segment 0 2120 true false true)\n(segment 69064 632 true true false)\n(subarch v8)\n(symbol-chunk 1588 20 1588)\n(symbol-chunk 1536 52 1536)\n(symbol-chunk 1812 36 1812)\n(symbol-value 1588 1588)\n(symbol-value 1616 1616)\n(symbol-value 1664 1664)\n(symbol-value 1728 1728)\n(symbol-value 1808 1808)\n(symbol-value 1848 1848)\n(symbol-value 1536 1536)\n(symbol-value 1812 1812)\n(symbol-value 1408 1408)\n(symbol-value 0 0)\n(system \"\")\n(vendor \"\")\n"), -Attr("abi-name","\"aarch64-linux-gnu-elf\"")]), -Sections([Section(".shstrtab", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x00\x06\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x30\x1c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x38\x00\x09\x00\x40\x00\x1d\x00\x1c\x00\x06\x00\x00\x00\x04\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x04\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x48\x08\x00\x00\x00\x00\x00\x00\x48\x08\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x01\x00\x00\x00\x06\x00\x00\x00\xc8\x0d\x00\x00\x00\x00\x00\x00\xc8\x0d\x01\x00\x00\x00\x00\x00\xc8\x0d\x01"), -Section(".strtab", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x00\x06\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x30\x1c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x38\x00\x09\x00\x40\x00\x1d\x00\x1c\x00\x06\x00\x00\x00\x04\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x04\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x48\x08\x00\x00\x00\x00\x00\x00\x48\x08\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x01\x00\x00\x00\x06\x00\x00\x00\xc8\x0d\x00\x00\x00\x00\x00\x00\xc8\x0d\x01\x00\x00\x00\x00\x00\xc8\x0d\x01\x00\x00\x00\x00\x00\x68\x02\x00\x00\x00\x00\x00\x00\x78\x02\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x02\x00\x00\x00\x06\x00\x00\x00\xd8\x0d\x00\x00\x00\x00\x00\x00\xd8\x0d\x01\x00\x00\x00\x00\x00\xd8\x0d\x01\x00\x00\x00\x00\x00\xe0\x01\x00\x00\x00\x00\x00\x00\xe0\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x04\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x50\xe5\x74\x64\x04\x00\x00\x00\x50\x07\x00\x00\x00\x00\x00\x00\x50\x07\x00\x00\x00\x00\x00\x00\x50\x07\x00\x00\x00\x00\x00\x00\x3c\x00\x00\x00\x00\x00\x00\x00\x3c\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x51\xe5\x74\x64\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x52\xe5\x74\x64\x04\x00\x00\x00\xc8\x0d\x00\x00\x00\x00\x00\x00\xc8\x0d\x01\x00\x00\x00\x00\x00\xc8\x0d\x01\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x2f\x6c\x69\x62\x2f\x6c\x64\x2d\x6c\x69"), -Section(".comment", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x00\x06\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x30\x1c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x38\x00\x09\x00\x40\x00\x1d\x00\x1c\x00\x06\x00\x00\x00\x04\x00\x00"), -Section(".interp", 0x238, "\x2f\x6c\x69\x62\x2f\x6c\x64\x2d\x6c\x69\x6e\x75\x78\x2d\x61\x61\x72\x63\x68\x36\x34\x2e\x73\x6f\x2e\x31\x00"), -Section(".note.gnu.build-id", 0x254, "\x04\x00\x00\x00\x14\x00\x00\x00\x03\x00\x00\x00\x47\x4e\x55\x00\xad\x22\xba\xbb\xdd\x29\xcc\x81\x2b\xbb\xb1\x98\xf4\x83\xde\x78\xe9\xec\xf6\x37"), -Section(".note.ABI-tag", 0x278, "\x04\x00\x00\x00\x10\x00\x00\x00\x01\x00\x00\x00\x47\x4e\x55\x00\x00\x00\x00\x00\x03\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00"), -Section(".gnu.hash", 0x298, "\x01\x00\x00\x00\x01\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".dynsym", 0x2B8, "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x0b\x00\x80\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x17\x00\x20\x10\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x48\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x22\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x22\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x73\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".dynstr", 0x390, "\x00\x5f\x5f\x63\x78\x61\x5f\x66\x69\x6e\x61\x6c\x69\x7a\x65\x00\x5f\x5f\x6c\x69\x62\x63\x5f\x73\x74\x61\x72\x74\x5f\x6d\x61\x69\x6e\x00\x61\x62\x6f\x72\x74\x00\x6c\x69\x62\x63\x2e\x73\x6f\x2e\x36\x00\x47\x4c\x49\x42\x43\x5f\x32\x2e\x31\x37\x00\x47\x4c\x49\x42\x43\x5f\x32\x2e\x33\x34\x00\x5f\x49\x54\x4d\x5f\x64\x65\x72\x65\x67\x69\x73\x74\x65\x72\x54\x4d\x43\x6c\x6f\x6e\x65\x54\x61\x62\x6c\x65\x00\x5f\x5f\x67\x6d\x6f\x6e\x5f\x73\x74\x61\x72\x74\x5f\x5f\x00\x5f\x49\x54\x4d\x5f\x72\x65\x67\x69\x73\x74\x65\x72\x54\x4d\x43\x6c\x6f\x6e\x65\x54\x61\x62\x6c\x65\x00"), -Section(".gnu.version", 0x41E, "\x00\x00\x00\x00\x00\x00\x02\x00\x01\x00\x03\x00\x01\x00\x03\x00\x01\x00"), -Section(".gnu.version_r", 0x430, "\x01\x00\x02\x00\x28\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x97\x91\x96\x06\x00\x00\x03\x00\x32\x00\x00\x00\x10\x00\x00\x00\xb4\x91\x96\x06\x00\x00\x02\x00\x3d\x00\x00\x00\x00\x00\x00\x00"), -Section(".rela.dyn", 0x460, "\xc8\x0d\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x10\x07\x00\x00\x00\x00\x00\x00\xd0\x0d\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\xc0\x06\x00\x00\x00\x00\x00\x00\xd8\x0f\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x14\x07\x00\x00\x00\x00\x00\x00\x28\x10\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x28\x10\x01\x00\x00\x00\x00\x00\xc0\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xc8\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xd0\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe0\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".rela.plt", 0x520, "\x00\x10\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x08\x10\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x10\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x18\x10\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".init", 0x580, "\x1f\x20\x03\xd5\xfd\x7b\xbf\xa9\xfd\x03\x00\x91\x2a\x00\x00\x94\xfd\x7b\xc1\xa8\xc0\x03\x5f\xd6"), -Section(".plt", 0x5A0, "\xf0\x7b\xbf\xa9\x90\x00\x00\x90\x11\xfe\x47\xf9\x10\xe2\x3f\x91\x20\x02\x1f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x90\x00\x00\xb0\x11\x02\x40\xf9\x10\x02\x00\x91\x20\x02\x1f\xd6\x90\x00\x00\xb0\x11\x06\x40\xf9\x10\x22\x00\x91\x20\x02\x1f\xd6\x90\x00\x00\xb0\x11\x0a\x40\xf9\x10\x42\x00\x91\x20\x02\x1f\xd6\x90\x00\x00\xb0\x11\x0e\x40\xf9\x10\x62\x00\x91\x20\x02\x1f\xd6"), -Section(".text", 0x600, "\x1f\x20\x03\xd5\x1d\x00\x80\xd2\x1e\x00\x80\xd2\xe5\x03\x00\xaa\xe1\x03\x40\xf9\xe2\x23\x00\x91\xe6\x03\x00\x91\x80\x00\x00\x90\x00\xec\x47\xf9\x03\x00\x80\xd2\x04\x00\x80\xd2\xe5\xff\xff\x97\xf0\xff\xff\x97\x80\x00\x00\x90\x00\xe8\x47\xf9\x40\x00\x00\xb4\xe8\xff\xff\x17\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x80\x00\x00\xb0\x00\xc0\x00\x91\x81\x00\x00\xb0\x21\xc0\x00\x91\x3f\x00\x00\xeb\xc0\x00\x00\x54\x81\x00\x00\x90\x21\xe0\x47\xf9\x61\x00\x00\xb4\xf0\x03\x01\xaa\x00\x02\x1f\xd6\xc0\x03\x5f\xd6\x80\x00\x00\xb0\x00\xc0\x00\x91\x81\x00\x00\xb0\x21\xc0\x00\x91\x21\x00\x00\xcb\x22\xfc\x7f\xd3\x41\x0c\x81\x8b\x21\xfc\x41\x93\xc1\x00\x00\xb4\x82\x00\x00\x90\x42\xf0\x47\xf9\x62\x00\x00\xb4\xf0\x03\x02\xaa\x00\x02\x1f\xd6\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\xfd\x7b\xbe\xa9\xfd\x03\x00\x91\xf3\x0b\x00\xf9\x93\x00\x00\xb0\x60\xc2\x40\x39\x40\x01\x00\x35\x80\x00\x00\x90\x00\xe4\x47\xf9\x80\x00\x00\xb4\x80\x00\x00\xb0\x00\x14\x40\xf9\xb9\xff\xff\x97\xd8\xff\xff\x97\x20\x00\x80\x52\x60\xc2\x00\x39\xf3\x0b\x40\xf9\xfd\x7b\xc2\xa8\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\xdc\xff\xff\x17\xff\x43\x00\xd1\x89\x00\x00\xb0\x29\xd1\x00\x91\xe0\x0f\x00\xb9\xe8\x0f\x40\xb9\x28\x05\x00\xb9\xe0\x03\x1f\x2a\xff\x43\x00\x91\xc0\x03\x5f\xd6"), -Section(".fini", 0x738, "\x1f\x20\x03\xd5\xfd\x7b\xbf\xa9\xfd\x03\x00\x91\xfd\x7b\xc1\xa8\xc0\x03\x5f\xd6"), -Section(".rodata", 0x74C, "\x01\x00\x02\x00"), -Section(".eh_frame_hdr", 0x750, "\x01\x1b\x03\x3b\x3c\x00\x00\x00\x06\x00\x00\x00\xb0\xfe\xff\xff\x54\x00\x00\x00\x00\xff\xff\xff\x68\x00\x00\x00\x30\xff\xff\xff\x7c\x00\x00\x00\x70\xff\xff\xff\x90\x00\x00\x00\xc0\xff\xff\xff\xb4\x00\x00\x00\xc4\xff\xff\xff\xdc\x00\x00\x00"), -Section(".eh_frame", 0x790, "\x10\x00\x00\x00\x00\x00\x00\x00\x01\x7a\x52\x00\x04\x78\x1e\x01\x1b\x0c\x1f\x00\x10\x00\x00\x00\x18\x00\x00\x00\x54\xfe\xff\xff\x34\x00\x00\x00\x00\x41\x07\x1e\x10\x00\x00\x00\x2c\x00\x00\x00\x90\xfe\xff\xff\x30\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x40\x00\x00\x00\xac\xfe\xff\xff\x3c\x00\x00\x00\x00\x00\x00\x00\x20\x00\x00\x00\x54\x00\x00\x00\xd8\xfe\xff\xff\x48\x00\x00\x00\x00\x41\x0e\x20\x9d\x04\x9e\x03\x42\x93\x02\x4e\xde\xdd\xd3\x0e\x00\x00\x00\x00\x10\x00\x00\x00\x78\x00\x00\x00\x04\xff\xff\xff\x04\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x01\x7a\x52\x00\x01\x7c\x1e\x01\x1b\x0c\x1f\x00\x14\x00\x00\x00\x18\x00\x00\x00\xe0\xfe\xff\xff\x24\x00\x00\x00\x00\x44\x0e\x10\x5c\x0e\x00\x00\x00\x00\x00\x00"), -Section(".fini_array", 0x10DD0, "\xc0\x06\x00\x00\x00\x00\x00\x00"), -Section(".dynamic", 0x10DD8, "\x01\x00\x00\x00\x00\x00\x00\x00\x28\x00\x00\x00\x00\x00\x00\x00\x0c\x00\x00\x00\x00\x00\x00\x00\x80\x05\x00\x00\x00\x00\x00\x00\x0d\x00\x00\x00\x00\x00\x00\x00\x38\x07\x00\x00\x00\x00\x00\x00\x19\x00\x00\x00\x00\x00\x00\x00\xc8\x0d\x01\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x1a\x00\x00\x00\x00\x00\x00\x00\xd0\x0d\x01\x00\x00\x00\x00\x00\x1c\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\xf5\xfe\xff\x6f\x00\x00\x00\x00\x98\x02\x00\x00\x00\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x90\x03\x00\x00\x00\x00\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\xb8\x02\x00\x00\x00\x00\x00\x00\x0a\x00\x00\x00\x00\x00\x00\x00\x8d\x00\x00\x00\x00\x00\x00\x00\x0b\x00\x00\x00\x00\x00\x00\x00\x18\x00\x00\x00\x00\x00\x00\x00\x15\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\xe8\x0f\x01\x00\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x60\x00\x00\x00\x00\x00\x00\x00\x14\x00\x00\x00\x00\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x17\x00\x00\x00\x00\x00\x00\x00\x20\x05\x00\x00\x00\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x60\x04\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\xc0\x00\x00\x00\x00\x00\x00\x00\x09\x00\x00\x00\x00\x00\x00\x00\x18\x00\x00\x00\x00\x00\x00\x00\xfb\xff\xff\x6f\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\xfe\xff\xff\x6f\x00\x00\x00\x00\x30\x04\x00\x00\x00\x00\x00\x00\xff\xff\xff\x6f\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\xf0\xff\xff\x6f\x00\x00\x00\x00\x1e\x04\x00\x00\x00\x00\x00\x00\xf9\xff\xff\x6f\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".init_array", 0x10DC8, "\x10\x07\x00\x00\x00\x00\x00\x00"), -Section(".got", 0x10FB8, "\xd8\x0d\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x14\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".got.plt", 0x10FE8, "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xa0\x05\x00\x00\x00\x00\x00\x00\xa0\x05\x00\x00\x00\x00\x00\x00\xa0\x05\x00\x00\x00\x00\x00\x00\xa0\x05\x00\x00\x00\x00\x00\x00"), -Section(".data", 0x11020, "\x00\x00\x00\x00\x00\x00\x00\x00\x28\x10\x01\x00\x00\x00\x00\x00")]), -Memmap([Annotation(Region(0x0,0x847), Attr("segment","02 0 2120")), -Annotation(Region(0x600,0x633), Attr("symbol","\"_start\"")), -Annotation(Region(0x0,0x102), Attr("section","\".shstrtab\"")), -Annotation(Region(0x0,0x241), Attr("section","\".strtab\"")), -Annotation(Region(0x0,0x46), Attr("section","\".comment\"")), -Annotation(Region(0x238,0x252), Attr("section","\".interp\"")), -Annotation(Region(0x254,0x277), Attr("section","\".note.gnu.build-id\"")), -Annotation(Region(0x278,0x297), Attr("section","\".note.ABI-tag\"")), -Annotation(Region(0x298,0x2B3), Attr("section","\".gnu.hash\"")), -Annotation(Region(0x2B8,0x38F), Attr("section","\".dynsym\"")), -Annotation(Region(0x390,0x41C), Attr("section","\".dynstr\"")), -Annotation(Region(0x41E,0x42F), Attr("section","\".gnu.version\"")), -Annotation(Region(0x430,0x45F), Attr("section","\".gnu.version_r\"")), -Annotation(Region(0x460,0x51F), Attr("section","\".rela.dyn\"")), -Annotation(Region(0x520,0x57F), Attr("section","\".rela.plt\"")), -Annotation(Region(0x580,0x597), Attr("section","\".init\"")), -Annotation(Region(0x5A0,0x5FF), Attr("section","\".plt\"")), -Annotation(Region(0x580,0x597), Attr("code-region","()")), -Annotation(Region(0x5A0,0x5FF), Attr("code-region","()")), -Annotation(Region(0x600,0x633), Attr("symbol-info","_start 0x600 52")), -Annotation(Region(0x634,0x647), Attr("symbol","\"call_weak_fn\"")), -Annotation(Region(0x634,0x647), Attr("symbol-info","call_weak_fn 0x634 20")), -Annotation(Region(0x600,0x737), Attr("section","\".text\"")), -Annotation(Region(0x600,0x737), Attr("code-region","()")), -Annotation(Region(0x714,0x737), Attr("symbol","\"main\"")), -Annotation(Region(0x714,0x737), Attr("symbol-info","main 0x714 36")), -Annotation(Region(0x738,0x74B), Attr("section","\".fini\"")), -Annotation(Region(0x738,0x74B), Attr("code-region","()")), -Annotation(Region(0x74C,0x74F), Attr("section","\".rodata\"")), -Annotation(Region(0x750,0x78B), Attr("section","\".eh_frame_hdr\"")), -Annotation(Region(0x790,0x847), Attr("section","\".eh_frame\"")), -Annotation(Region(0x10DC8,0x1102F), Attr("segment","03 0x10DC8 632")), -Annotation(Region(0x10DD0,0x10DD7), Attr("section","\".fini_array\"")), -Annotation(Region(0x10DD8,0x10FB7), Attr("section","\".dynamic\"")), -Annotation(Region(0x10DC8,0x10DCF), Attr("section","\".init_array\"")), -Annotation(Region(0x10FB8,0x10FE7), Attr("section","\".got\"")), -Annotation(Region(0x10FE8,0x1101F), Attr("section","\".got.plt\"")), -Annotation(Region(0x11020,0x1102F), Attr("section","\".data\""))]), -Program(Tid(1_469, "%000005bd"), Attrs([]), - Subs([Sub(Tid(1_419, "@__cxa_finalize"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x5D0"), -Attr("stub","()")]), "__cxa_finalize", Args([Arg(Tid(1_470, "%000005be"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("__cxa_finalize_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(829, "@__cxa_finalize"), - Attrs([Attr("address","0x5D0")]), Phis([]), -Defs([Def(Tid(1_077, "%00000435"), Attrs([Attr("address","0x5D0"), -Attr("insn","adrp x16, #69632")]), Var("R16",Imm(64)), Int(69632,64)), -Def(Tid(1_084, "%0000043c"), Attrs([Attr("address","0x5D4"), -Attr("insn","ldr x17, [x16, #0x8]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(1_090, "%00000442"), Attrs([Attr("address","0x5D8"), -Attr("insn","add x16, x16, #0x8")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(8,64)))]), Jmps([Call(Tid(1_095, "%00000447"), - Attrs([Attr("address","0x5DC"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), -Sub(Tid(1_420, "@__do_global_dtors_aux"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x6C0")]), - "__do_global_dtors_aux", Args([Arg(Tid(1_471, "%000005bf"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("__do_global_dtors_aux_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(626, "@__do_global_dtors_aux"), - Attrs([Attr("address","0x6C0")]), Phis([]), Defs([Def(Tid(630, "%00000276"), - Attrs([Attr("address","0x6C0"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("#3",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(18446744073709551584,64))), -Def(Tid(636, "%0000027c"), Attrs([Attr("address","0x6C0"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("#3",Imm(64)),Var("R29",Imm(64)),LittleEndian(),64)), -Def(Tid(642, "%00000282"), Attrs([Attr("address","0x6C0"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("#3",Imm(64)),Int(8,64)),Var("R30",Imm(64)),LittleEndian(),64)), -Def(Tid(646, "%00000286"), Attrs([Attr("address","0x6C0"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("R31",Imm(64)), -Var("#3",Imm(64))), Def(Tid(652, "%0000028c"), - Attrs([Attr("address","0x6C4"), Attr("insn","mov x29, sp")]), - Var("R29",Imm(64)), Var("R31",Imm(64))), Def(Tid(660, "%00000294"), - Attrs([Attr("address","0x6C8"), Attr("insn","str x19, [sp, #0x10]")]), - Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(16,64)),Var("R19",Imm(64)),LittleEndian(),64)), -Def(Tid(665, "%00000299"), Attrs([Attr("address","0x6CC"), -Attr("insn","adrp x19, #69632")]), Var("R19",Imm(64)), Int(69632,64)), -Def(Tid(672, "%000002a0"), Attrs([Attr("address","0x6D0"), -Attr("insn","ldrb w0, [x19, #0x30]")]), Var("R0",Imm(64)), -UNSIGNED(64,Load(Var("mem",Mem(64,8)),PLUS(Var("R19",Imm(64)),Int(48,64)),LittleEndian(),8)))]), -Jmps([Goto(Tid(679, "%000002a7"), Attrs([Attr("address","0x6D4"), -Attr("insn","cbnz w0, #0x28")]), - NEQ(Extract(31,0,Var("R0",Imm(64))),Int(0,32)), -Direct(Tid(677, "%000002a5"))), Goto(Tid(1_459, "%000005b3"), Attrs([]), - Int(1,1), Direct(Tid(774, "%00000306")))])), Blk(Tid(774, "%00000306"), - Attrs([Attr("address","0x6D8")]), Phis([]), Defs([Def(Tid(777, "%00000309"), - Attrs([Attr("address","0x6D8"), Attr("insn","adrp x0, #65536")]), - Var("R0",Imm(64)), Int(65536,64)), Def(Tid(784, "%00000310"), - Attrs([Attr("address","0x6DC"), Attr("insn","ldr x0, [x0, #0xfc8]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(4040,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(790, "%00000316"), Attrs([Attr("address","0x6E0"), -Attr("insn","cbz x0, #0x10")]), EQ(Var("R0",Imm(64)),Int(0,64)), -Direct(Tid(788, "%00000314"))), Goto(Tid(1_460, "%000005b4"), Attrs([]), - Int(1,1), Direct(Tid(813, "%0000032d")))])), Blk(Tid(813, "%0000032d"), - Attrs([Attr("address","0x6E4")]), Phis([]), Defs([Def(Tid(816, "%00000330"), - Attrs([Attr("address","0x6E4"), Attr("insn","adrp x0, #69632")]), - Var("R0",Imm(64)), Int(69632,64)), Def(Tid(823, "%00000337"), - Attrs([Attr("address","0x6E8"), Attr("insn","ldr x0, [x0, #0x28]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(40,64)),LittleEndian(),64)), -Def(Tid(828, "%0000033c"), Attrs([Attr("address","0x6EC"), -Attr("insn","bl #-0x11c")]), Var("R30",Imm(64)), Int(1776,64))]), -Jmps([Call(Tid(831, "%0000033f"), Attrs([Attr("address","0x6EC"), -Attr("insn","bl #-0x11c")]), Int(1,1), -(Direct(Tid(1_419, "@__cxa_finalize")),Direct(Tid(788, "%00000314"))))])), -Blk(Tid(788, "%00000314"), Attrs([Attr("address","0x6F0")]), Phis([]), -Defs([Def(Tid(796, "%0000031c"), Attrs([Attr("address","0x6F0"), -Attr("insn","bl #-0xa0")]), Var("R30",Imm(64)), Int(1780,64))]), -Jmps([Call(Tid(798, "%0000031e"), Attrs([Attr("address","0x6F0"), -Attr("insn","bl #-0xa0")]), Int(1,1), -(Direct(Tid(1_433, "@deregister_tm_clones")),Direct(Tid(800, "%00000320"))))])), -Blk(Tid(800, "%00000320"), Attrs([Attr("address","0x6F4")]), Phis([]), -Defs([Def(Tid(803, "%00000323"), Attrs([Attr("address","0x6F4"), -Attr("insn","mov w0, #0x1")]), Var("R0",Imm(64)), Int(1,64)), -Def(Tid(811, "%0000032b"), Attrs([Attr("address","0x6F8"), -Attr("insn","strb w0, [x19, #0x30]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R19",Imm(64)),Int(48,64)),Extract(7,0,Var("R0",Imm(64))),LittleEndian(),8))]), -Jmps([Goto(Tid(1_461, "%000005b5"), Attrs([]), Int(1,1), -Direct(Tid(677, "%000002a5")))])), Blk(Tid(677, "%000002a5"), - Attrs([Attr("address","0x6FC")]), Phis([]), Defs([Def(Tid(687, "%000002af"), - Attrs([Attr("address","0x6FC"), Attr("insn","ldr x19, [sp, #0x10]")]), - Var("R19",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(16,64)),LittleEndian(),64)), -Def(Tid(694, "%000002b6"), Attrs([Attr("address","0x700"), -Attr("insn","ldp x29, x30, [sp], #0x20")]), Var("R29",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(699, "%000002bb"), Attrs([Attr("address","0x700"), -Attr("insn","ldp x29, x30, [sp], #0x20")]), Var("R30",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(703, "%000002bf"), Attrs([Attr("address","0x700"), -Attr("insn","ldp x29, x30, [sp], #0x20")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(32,64)))]), Jmps([Call(Tid(708, "%000002c4"), - Attrs([Attr("address","0x704"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), Sub(Tid(1_424, "@__libc_start_main"), - Attrs([Attr("c.proto","signed (*)(signed (*)(signed , char** , char** );* main, signed , char** , \nvoid* auxv)"), -Attr("address","0x5C0"), Attr("stub","()")]), "__libc_start_main", - Args([Arg(Tid(1_472, "%000005c0"), - Attrs([Attr("c.layout","**[ : 64]"), -Attr("c.data","Top:u64 ptr ptr"), -Attr("c.type","signed (*)(signed , char** , char** );*")]), - Var("__libc_start_main_main",Imm(64)), Var("R0",Imm(64)), In()), -Arg(Tid(1_473, "%000005c1"), Attrs([Attr("c.layout","[signed : 32]"), -Attr("c.data","Top:u32"), Attr("c.type","signed")]), - Var("__libc_start_main_arg2",Imm(32)), LOW(32,Var("R1",Imm(64))), In()), -Arg(Tid(1_474, "%000005c2"), Attrs([Attr("c.layout","**[char : 8]"), -Attr("c.data","Top:u8 ptr ptr"), Attr("c.type","char**")]), - Var("__libc_start_main_arg3",Imm(64)), Var("R2",Imm(64)), Both()), -Arg(Tid(1_475, "%000005c3"), Attrs([Attr("c.layout","*[ : 8]"), -Attr("c.data","{} ptr"), Attr("c.type","void*")]), - Var("__libc_start_main_auxv",Imm(64)), Var("R3",Imm(64)), Both()), -Arg(Tid(1_476, "%000005c4"), Attrs([Attr("c.layout","[signed : 32]"), -Attr("c.data","Top:u32"), Attr("c.type","signed")]), - Var("__libc_start_main_result",Imm(32)), LOW(32,Var("R0",Imm(64))), -Out())]), Blks([Blk(Tid(459, "@__libc_start_main"), - Attrs([Attr("address","0x5C0")]), Phis([]), -Defs([Def(Tid(1_055, "%0000041f"), Attrs([Attr("address","0x5C0"), -Attr("insn","adrp x16, #69632")]), Var("R16",Imm(64)), Int(69632,64)), -Def(Tid(1_062, "%00000426"), Attrs([Attr("address","0x5C4"), -Attr("insn","ldr x17, [x16]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R16",Imm(64)),LittleEndian(),64)), -Def(Tid(1_068, "%0000042c"), Attrs([Attr("address","0x5C8"), -Attr("insn","add x16, x16, #0x0")]), Var("R16",Imm(64)), -Var("R16",Imm(64)))]), Jmps([Call(Tid(1_073, "%00000431"), - Attrs([Attr("address","0x5CC"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), Sub(Tid(1_425, "@_fini"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x738")]), - "_fini", Args([Arg(Tid(1_477, "%000005c5"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("_fini_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(31, "@_fini"), - Attrs([Attr("address","0x738")]), Phis([]), Defs([Def(Tid(37, "%00000025"), - Attrs([Attr("address","0x73C"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("#0",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(18446744073709551600,64))), -Def(Tid(43, "%0000002b"), Attrs([Attr("address","0x73C"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("#0",Imm(64)),Var("R29",Imm(64)),LittleEndian(),64)), -Def(Tid(49, "%00000031"), Attrs([Attr("address","0x73C"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("#0",Imm(64)),Int(8,64)),Var("R30",Imm(64)),LittleEndian(),64)), -Def(Tid(53, "%00000035"), Attrs([Attr("address","0x73C"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("R31",Imm(64)), -Var("#0",Imm(64))), Def(Tid(59, "%0000003b"), Attrs([Attr("address","0x740"), -Attr("insn","mov x29, sp")]), Var("R29",Imm(64)), Var("R31",Imm(64))), -Def(Tid(66, "%00000042"), Attrs([Attr("address","0x744"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R29",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(71, "%00000047"), Attrs([Attr("address","0x744"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R30",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(75, "%0000004b"), Attrs([Attr("address","0x744"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(16,64)))]), Jmps([Call(Tid(80, "%00000050"), - Attrs([Attr("address","0x748"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), Sub(Tid(1_426, "@_init"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x580")]), - "_init", Args([Arg(Tid(1_478, "%000005c6"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("_init_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(1_252, "@_init"), - Attrs([Attr("address","0x580")]), Phis([]), -Defs([Def(Tid(1_258, "%000004ea"), Attrs([Attr("address","0x584"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("#5",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(18446744073709551600,64))), -Def(Tid(1_264, "%000004f0"), Attrs([Attr("address","0x584"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("#5",Imm(64)),Var("R29",Imm(64)),LittleEndian(),64)), -Def(Tid(1_270, "%000004f6"), Attrs([Attr("address","0x584"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("#5",Imm(64)),Int(8,64)),Var("R30",Imm(64)),LittleEndian(),64)), -Def(Tid(1_274, "%000004fa"), Attrs([Attr("address","0x584"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("R31",Imm(64)), -Var("#5",Imm(64))), Def(Tid(1_280, "%00000500"), - Attrs([Attr("address","0x588"), Attr("insn","mov x29, sp")]), - Var("R29",Imm(64)), Var("R31",Imm(64))), Def(Tid(1_285, "%00000505"), - Attrs([Attr("address","0x58C"), Attr("insn","bl #0xa8")]), - Var("R30",Imm(64)), Int(1424,64))]), Jmps([Call(Tid(1_287, "%00000507"), - Attrs([Attr("address","0x58C"), Attr("insn","bl #0xa8")]), Int(1,1), -(Direct(Tid(1_431, "@call_weak_fn")),Direct(Tid(1_289, "%00000509"))))])), -Blk(Tid(1_289, "%00000509"), Attrs([Attr("address","0x590")]), Phis([]), -Defs([Def(Tid(1_294, "%0000050e"), Attrs([Attr("address","0x590"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R29",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(1_299, "%00000513"), Attrs([Attr("address","0x590"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R30",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(1_303, "%00000517"), Attrs([Attr("address","0x590"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(16,64)))]), Jmps([Call(Tid(1_308, "%0000051c"), - Attrs([Attr("address","0x594"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), Sub(Tid(1_427, "@_start"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x600"), -Attr("stub","()"), Attr("entry-point","()")]), "_start", - Args([Arg(Tid(1_479, "%000005c7"), Attrs([Attr("c.layout","[signed : 32]"), -Attr("c.data","Top:u32"), Attr("c.type","signed")]), - Var("_start_result",Imm(32)), LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(396, "@_start"), Attrs([Attr("address","0x600")]), Phis([]), -Defs([Def(Tid(401, "%00000191"), Attrs([Attr("address","0x604"), -Attr("insn","mov x29, #0x0")]), Var("R29",Imm(64)), Int(0,64)), -Def(Tid(406, "%00000196"), Attrs([Attr("address","0x608"), -Attr("insn","mov x30, #0x0")]), Var("R30",Imm(64)), Int(0,64)), -Def(Tid(412, "%0000019c"), Attrs([Attr("address","0x60C"), -Attr("insn","mov x5, x0")]), Var("R5",Imm(64)), Var("R0",Imm(64))), -Def(Tid(419, "%000001a3"), Attrs([Attr("address","0x610"), -Attr("insn","ldr x1, [sp]")]), Var("R1",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(425, "%000001a9"), Attrs([Attr("address","0x614"), -Attr("insn","add x2, sp, #0x8")]), Var("R2",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(8,64))), Def(Tid(431, "%000001af"), - Attrs([Attr("address","0x618"), Attr("insn","mov x6, sp")]), - Var("R6",Imm(64)), Var("R31",Imm(64))), Def(Tid(436, "%000001b4"), - Attrs([Attr("address","0x61C"), Attr("insn","adrp x0, #65536")]), - Var("R0",Imm(64)), Int(65536,64)), Def(Tid(443, "%000001bb"), - Attrs([Attr("address","0x620"), Attr("insn","ldr x0, [x0, #0xfd8]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(4056,64)),LittleEndian(),64)), -Def(Tid(448, "%000001c0"), Attrs([Attr("address","0x624"), -Attr("insn","mov x3, #0x0")]), Var("R3",Imm(64)), Int(0,64)), -Def(Tid(453, "%000001c5"), Attrs([Attr("address","0x628"), -Attr("insn","mov x4, #0x0")]), Var("R4",Imm(64)), Int(0,64)), -Def(Tid(458, "%000001ca"), Attrs([Attr("address","0x62C"), -Attr("insn","bl #-0x6c")]), Var("R30",Imm(64)), Int(1584,64))]), -Jmps([Call(Tid(461, "%000001cd"), Attrs([Attr("address","0x62C"), -Attr("insn","bl #-0x6c")]), Int(1,1), -(Direct(Tid(1_424, "@__libc_start_main")),Direct(Tid(463, "%000001cf"))))])), -Blk(Tid(463, "%000001cf"), Attrs([Attr("address","0x630")]), Phis([]), -Defs([Def(Tid(466, "%000001d2"), Attrs([Attr("address","0x630"), -Attr("insn","bl #-0x40")]), Var("R30",Imm(64)), Int(1588,64))]), -Jmps([Call(Tid(469, "%000001d5"), Attrs([Attr("address","0x630"), -Attr("insn","bl #-0x40")]), Int(1,1), -(Direct(Tid(1_430, "@abort")),Direct(Tid(1_462, "%000005b6"))))])), -Blk(Tid(1_462, "%000005b6"), Attrs([]), Phis([]), Defs([]), -Jmps([Call(Tid(1_463, "%000005b7"), Attrs([]), Int(1,1), -(Direct(Tid(1_431, "@call_weak_fn")),))]))])), Sub(Tid(1_430, "@abort"), - Attrs([Attr("noreturn","()"), Attr("c.proto","void (*)(void)"), -Attr("address","0x5F0"), Attr("stub","()")]), "abort", Args([]), -Blks([Blk(Tid(467, "@abort"), Attrs([Attr("address","0x5F0")]), Phis([]), -Defs([Def(Tid(1_121, "%00000461"), Attrs([Attr("address","0x5F0"), -Attr("insn","adrp x16, #69632")]), Var("R16",Imm(64)), Int(69632,64)), -Def(Tid(1_128, "%00000468"), Attrs([Attr("address","0x5F4"), -Attr("insn","ldr x17, [x16, #0x18]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(24,64)),LittleEndian(),64)), -Def(Tid(1_134, "%0000046e"), Attrs([Attr("address","0x5F8"), -Attr("insn","add x16, x16, #0x18")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(24,64)))]), Jmps([Call(Tid(1_139, "%00000473"), - Attrs([Attr("address","0x5FC"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), Sub(Tid(1_431, "@call_weak_fn"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x634")]), - "call_weak_fn", Args([Arg(Tid(1_480, "%000005c8"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("call_weak_fn_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(471, "@call_weak_fn"), - Attrs([Attr("address","0x634")]), Phis([]), Defs([Def(Tid(474, "%000001da"), - Attrs([Attr("address","0x634"), Attr("insn","adrp x0, #65536")]), - Var("R0",Imm(64)), Int(65536,64)), Def(Tid(481, "%000001e1"), - Attrs([Attr("address","0x638"), Attr("insn","ldr x0, [x0, #0xfd0]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(4048,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(487, "%000001e7"), Attrs([Attr("address","0x63C"), -Attr("insn","cbz x0, #0x8")]), EQ(Var("R0",Imm(64)),Int(0,64)), -Direct(Tid(485, "%000001e5"))), Goto(Tid(1_464, "%000005b8"), Attrs([]), - Int(1,1), Direct(Tid(893, "%0000037d")))])), Blk(Tid(485, "%000001e5"), - Attrs([Attr("address","0x644")]), Phis([]), Defs([]), -Jmps([Call(Tid(493, "%000001ed"), Attrs([Attr("address","0x644"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))])), -Blk(Tid(893, "%0000037d"), Attrs([Attr("address","0x640")]), Phis([]), -Defs([]), Jmps([Goto(Tid(896, "%00000380"), Attrs([Attr("address","0x640"), -Attr("insn","b #-0x60")]), Int(1,1), Direct(Tid(894, "@__gmon_start__")))])), -Blk(Tid(894, "@__gmon_start__"), Attrs([Attr("address","0x5E0")]), Phis([]), -Defs([Def(Tid(1_099, "%0000044b"), Attrs([Attr("address","0x5E0"), -Attr("insn","adrp x16, #69632")]), Var("R16",Imm(64)), Int(69632,64)), -Def(Tid(1_106, "%00000452"), Attrs([Attr("address","0x5E4"), -Attr("insn","ldr x17, [x16, #0x10]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(16,64)),LittleEndian(),64)), -Def(Tid(1_112, "%00000458"), Attrs([Attr("address","0x5E8"), -Attr("insn","add x16, x16, #0x10")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(16,64)))]), Jmps([Call(Tid(1_117, "%0000045d"), - Attrs([Attr("address","0x5EC"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), -Sub(Tid(1_433, "@deregister_tm_clones"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x650")]), - "deregister_tm_clones", Args([Arg(Tid(1_481, "%000005c9"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("deregister_tm_clones_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(499, "@deregister_tm_clones"), - Attrs([Attr("address","0x650")]), Phis([]), Defs([Def(Tid(502, "%000001f6"), - Attrs([Attr("address","0x650"), Attr("insn","adrp x0, #69632")]), - Var("R0",Imm(64)), Int(69632,64)), Def(Tid(508, "%000001fc"), - Attrs([Attr("address","0x654"), Attr("insn","add x0, x0, #0x30")]), - Var("R0",Imm(64)), PLUS(Var("R0",Imm(64)),Int(48,64))), -Def(Tid(513, "%00000201"), Attrs([Attr("address","0x658"), -Attr("insn","adrp x1, #69632")]), Var("R1",Imm(64)), Int(69632,64)), -Def(Tid(519, "%00000207"), Attrs([Attr("address","0x65C"), -Attr("insn","add x1, x1, #0x30")]), Var("R1",Imm(64)), -PLUS(Var("R1",Imm(64)),Int(48,64))), Def(Tid(525, "%0000020d"), - Attrs([Attr("address","0x660"), Attr("insn","cmp x1, x0")]), - Var("#1",Imm(64)), NOT(Var("R0",Imm(64)))), Def(Tid(530, "%00000212"), - Attrs([Attr("address","0x660"), Attr("insn","cmp x1, x0")]), - Var("#2",Imm(64)), PLUS(Var("R1",Imm(64)),NOT(Var("R0",Imm(64))))), -Def(Tid(536, "%00000218"), Attrs([Attr("address","0x660"), -Attr("insn","cmp x1, x0")]), Var("VF",Imm(1)), -NEQ(SIGNED(65,PLUS(Var("#2",Imm(64)),Int(1,64))),PLUS(PLUS(SIGNED(65,Var("R1",Imm(64))),SIGNED(65,Var("#1",Imm(64)))),Int(1,65)))), -Def(Tid(542, "%0000021e"), Attrs([Attr("address","0x660"), -Attr("insn","cmp x1, x0")]), Var("CF",Imm(1)), -NEQ(UNSIGNED(65,PLUS(Var("#2",Imm(64)),Int(1,64))),PLUS(PLUS(UNSIGNED(65,Var("R1",Imm(64))),UNSIGNED(65,Var("#1",Imm(64)))),Int(1,65)))), -Def(Tid(546, "%00000222"), Attrs([Attr("address","0x660"), -Attr("insn","cmp x1, x0")]), Var("ZF",Imm(1)), -EQ(PLUS(Var("#2",Imm(64)),Int(1,64)),Int(0,64))), Def(Tid(550, "%00000226"), - Attrs([Attr("address","0x660"), Attr("insn","cmp x1, x0")]), - Var("NF",Imm(1)), Extract(63,63,PLUS(Var("#2",Imm(64)),Int(1,64))))]), -Jmps([Goto(Tid(556, "%0000022c"), Attrs([Attr("address","0x664"), -Attr("insn","b.eq #0x18")]), EQ(Var("ZF",Imm(1)),Int(1,1)), -Direct(Tid(554, "%0000022a"))), Goto(Tid(1_465, "%000005b9"), Attrs([]), - Int(1,1), Direct(Tid(863, "%0000035f")))])), Blk(Tid(863, "%0000035f"), - Attrs([Attr("address","0x668")]), Phis([]), Defs([Def(Tid(866, "%00000362"), - Attrs([Attr("address","0x668"), Attr("insn","adrp x1, #65536")]), - Var("R1",Imm(64)), Int(65536,64)), Def(Tid(873, "%00000369"), - Attrs([Attr("address","0x66C"), Attr("insn","ldr x1, [x1, #0xfc0]")]), - Var("R1",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R1",Imm(64)),Int(4032,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(878, "%0000036e"), Attrs([Attr("address","0x670"), -Attr("insn","cbz x1, #0xc")]), EQ(Var("R1",Imm(64)),Int(0,64)), -Direct(Tid(554, "%0000022a"))), Goto(Tid(1_466, "%000005ba"), Attrs([]), - Int(1,1), Direct(Tid(882, "%00000372")))])), Blk(Tid(554, "%0000022a"), - Attrs([Attr("address","0x67C")]), Phis([]), Defs([]), -Jmps([Call(Tid(562, "%00000232"), Attrs([Attr("address","0x67C"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))])), -Blk(Tid(882, "%00000372"), Attrs([Attr("address","0x674")]), Phis([]), -Defs([Def(Tid(886, "%00000376"), Attrs([Attr("address","0x674"), -Attr("insn","mov x16, x1")]), Var("R16",Imm(64)), Var("R1",Imm(64)))]), -Jmps([Call(Tid(891, "%0000037b"), Attrs([Attr("address","0x678"), -Attr("insn","br x16")]), Int(1,1), (Indirect(Var("R16",Imm(64))),))]))])), -Sub(Tid(1_436, "@frame_dummy"), Attrs([Attr("c.proto","signed (*)(void)"), -Attr("address","0x710")]), "frame_dummy", Args([Arg(Tid(1_482, "%000005ca"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("frame_dummy_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(714, "@frame_dummy"), - Attrs([Attr("address","0x710")]), Phis([]), Defs([]), -Jmps([Call(Tid(716, "%000002cc"), Attrs([Attr("address","0x710"), -Attr("insn","b #-0x90")]), Int(1,1), -(Direct(Tid(1_438, "@register_tm_clones")),))]))])), Sub(Tid(1_437, "@main"), - Attrs([Attr("c.proto","signed (*)(signed argc, const char** argv)"), -Attr("address","0x714")]), "main", Args([Arg(Tid(1_483, "%000005cb"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("main_argc",Imm(32)), -LOW(32,Var("R0",Imm(64))), In()), Arg(Tid(1_484, "%000005cc"), - Attrs([Attr("c.layout","**[char : 8]"), Attr("c.data","Top:u8 ptr ptr"), -Attr("c.type"," const char**")]), Var("main_argv",Imm(64)), -Var("R1",Imm(64)), Both()), Arg(Tid(1_485, "%000005cd"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("main_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(718, "@main"), - Attrs([Attr("address","0x714")]), Phis([]), Defs([Def(Tid(722, "%000002d2"), - Attrs([Attr("address","0x714"), Attr("insn","sub sp, sp, #0x10")]), - Var("R31",Imm(64)), PLUS(Var("R31",Imm(64)),Int(18446744073709551600,64))), -Def(Tid(727, "%000002d7"), Attrs([Attr("address","0x718"), -Attr("insn","adrp x9, #69632")]), Var("R9",Imm(64)), Int(69632,64)), -Def(Tid(733, "%000002dd"), Attrs([Attr("address","0x71C"), -Attr("insn","add x9, x9, #0x34")]), Var("R9",Imm(64)), -PLUS(Var("R9",Imm(64)),Int(52,64))), Def(Tid(741, "%000002e5"), - Attrs([Attr("address","0x720"), Attr("insn","str w0, [sp, #0xc]")]), - Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(12,64)),Extract(31,0,Var("R0",Imm(64))),LittleEndian(),32)), -Def(Tid(748, "%000002ec"), Attrs([Attr("address","0x724"), -Attr("insn","ldr w8, [sp, #0xc]")]), Var("R8",Imm(64)), -UNSIGNED(64,Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(12,64)),LittleEndian(),32))), -Def(Tid(756, "%000002f4"), Attrs([Attr("address","0x728"), -Attr("insn","str w8, [x9, #0x4]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R9",Imm(64)),Int(4,64)),Extract(31,0,Var("R8",Imm(64))),LittleEndian(),32)), -Def(Tid(761, "%000002f9"), Attrs([Attr("address","0x72C"), -Attr("insn","mov w0, wzr")]), Var("R0",Imm(64)), Int(0,64)), -Def(Tid(767, "%000002ff"), Attrs([Attr("address","0x730"), -Attr("insn","add sp, sp, #0x10")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(16,64)))]), Jmps([Call(Tid(772, "%00000304"), - Attrs([Attr("address","0x734"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), -Sub(Tid(1_438, "@register_tm_clones"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x680")]), - "register_tm_clones", Args([Arg(Tid(1_486, "%000005ce"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("register_tm_clones_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(564, "@register_tm_clones"), Attrs([Attr("address","0x680")]), - Phis([]), Defs([Def(Tid(567, "%00000237"), Attrs([Attr("address","0x680"), -Attr("insn","adrp x0, #69632")]), Var("R0",Imm(64)), Int(69632,64)), -Def(Tid(573, "%0000023d"), Attrs([Attr("address","0x684"), -Attr("insn","add x0, x0, #0x30")]), Var("R0",Imm(64)), -PLUS(Var("R0",Imm(64)),Int(48,64))), Def(Tid(578, "%00000242"), - Attrs([Attr("address","0x688"), Attr("insn","adrp x1, #69632")]), - Var("R1",Imm(64)), Int(69632,64)), Def(Tid(584, "%00000248"), - Attrs([Attr("address","0x68C"), Attr("insn","add x1, x1, #0x30")]), - Var("R1",Imm(64)), PLUS(Var("R1",Imm(64)),Int(48,64))), -Def(Tid(591, "%0000024f"), Attrs([Attr("address","0x690"), -Attr("insn","sub x1, x1, x0")]), Var("R1",Imm(64)), -PLUS(PLUS(Var("R1",Imm(64)),NOT(Var("R0",Imm(64)))),Int(1,64))), -Def(Tid(597, "%00000255"), Attrs([Attr("address","0x694"), -Attr("insn","lsr x2, x1, #63")]), Var("R2",Imm(64)), -Concat(Int(0,63),Extract(63,63,Var("R1",Imm(64))))), -Def(Tid(604, "%0000025c"), Attrs([Attr("address","0x698"), -Attr("insn","add x1, x2, x1, asr #3")]), Var("R1",Imm(64)), -PLUS(Var("R2",Imm(64)),ARSHIFT(Var("R1",Imm(64)),Int(3,3)))), -Def(Tid(610, "%00000262"), Attrs([Attr("address","0x69C"), -Attr("insn","asr x1, x1, #1")]), Var("R1",Imm(64)), -SIGNED(64,Extract(63,1,Var("R1",Imm(64)))))]), -Jmps([Goto(Tid(616, "%00000268"), Attrs([Attr("address","0x6A0"), -Attr("insn","cbz x1, #0x18")]), EQ(Var("R1",Imm(64)),Int(0,64)), -Direct(Tid(614, "%00000266"))), Goto(Tid(1_467, "%000005bb"), Attrs([]), - Int(1,1), Direct(Tid(833, "%00000341")))])), Blk(Tid(833, "%00000341"), - Attrs([Attr("address","0x6A4")]), Phis([]), Defs([Def(Tid(836, "%00000344"), - Attrs([Attr("address","0x6A4"), Attr("insn","adrp x2, #65536")]), - Var("R2",Imm(64)), Int(65536,64)), Def(Tid(843, "%0000034b"), - Attrs([Attr("address","0x6A8"), Attr("insn","ldr x2, [x2, #0xfe0]")]), - Var("R2",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R2",Imm(64)),Int(4064,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(848, "%00000350"), Attrs([Attr("address","0x6AC"), -Attr("insn","cbz x2, #0xc")]), EQ(Var("R2",Imm(64)),Int(0,64)), -Direct(Tid(614, "%00000266"))), Goto(Tid(1_468, "%000005bc"), Attrs([]), - Int(1,1), Direct(Tid(852, "%00000354")))])), Blk(Tid(614, "%00000266"), - Attrs([Attr("address","0x6B8")]), Phis([]), Defs([]), -Jmps([Call(Tid(622, "%0000026e"), Attrs([Attr("address","0x6B8"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))])), -Blk(Tid(852, "%00000354"), Attrs([Attr("address","0x6B0")]), Phis([]), -Defs([Def(Tid(856, "%00000358"), Attrs([Attr("address","0x6B0"), -Attr("insn","mov x16, x2")]), Var("R16",Imm(64)), Var("R2",Imm(64)))]), -Jmps([Call(Tid(861, "%0000035d"), Attrs([Attr("address","0x6B4"), -Attr("insn","br x16")]), Int(1,1), -(Indirect(Var("R16",Imm(64))),))]))]))]))) \ No newline at end of file diff --git a/src/test/correct/basic_arrays_write/clang/basic_arrays_write.bir b/src/test/correct/basic_arrays_write/clang/basic_arrays_write.bir deleted file mode 100644 index 29acc0f34..000000000 --- a/src/test/correct/basic_arrays_write/clang/basic_arrays_write.bir +++ /dev/null @@ -1,231 +0,0 @@ -000005bd: program -0000058b: sub __cxa_finalize(__cxa_finalize_result) -000005be: __cxa_finalize_result :: out u32 = low:32[R0] - -0000033d: -00000435: R16 := 0x11000 -0000043c: R17 := mem[R16 + 8, el]:u64 -00000442: R16 := R16 + 8 -00000447: call R17 with noreturn - -0000058c: sub __do_global_dtors_aux(__do_global_dtors_aux_result) -000005bf: __do_global_dtors_aux_result :: out u32 = low:32[R0] - -00000272: -00000276: #3 := R31 - 0x20 -0000027c: mem := mem with [#3, el]:u64 <- R29 -00000282: mem := mem with [#3 + 8, el]:u64 <- R30 -00000286: R31 := #3 -0000028c: R29 := R31 -00000294: mem := mem with [R31 + 0x10, el]:u64 <- R19 -00000299: R19 := 0x11000 -000002a0: R0 := pad:64[mem[R19 + 0x30]] -000002a7: when 31:0[R0] <> 0 goto %000002a5 -000005b3: goto %00000306 - -00000306: -00000309: R0 := 0x10000 -00000310: R0 := mem[R0 + 0xFC8, el]:u64 -00000316: when R0 = 0 goto %00000314 -000005b4: goto %0000032d - -0000032d: -00000330: R0 := 0x11000 -00000337: R0 := mem[R0 + 0x28, el]:u64 -0000033c: R30 := 0x6F0 -0000033f: call @__cxa_finalize with return %00000314 - -00000314: -0000031c: R30 := 0x6F4 -0000031e: call @deregister_tm_clones with return %00000320 - -00000320: -00000323: R0 := 1 -0000032b: mem := mem with [R19 + 0x30] <- 7:0[R0] -000005b5: goto %000002a5 - -000002a5: -000002af: R19 := mem[R31 + 0x10, el]:u64 -000002b6: R29 := mem[R31, el]:u64 -000002bb: R30 := mem[R31 + 8, el]:u64 -000002bf: R31 := R31 + 0x20 -000002c4: call R30 with noreturn - -00000590: sub __libc_start_main(__libc_start_main_main, __libc_start_main_arg2, __libc_start_main_arg3, __libc_start_main_auxv, __libc_start_main_result) -000005c0: __libc_start_main_main :: in u64 = R0 -000005c1: __libc_start_main_arg2 :: in u32 = low:32[R1] -000005c2: __libc_start_main_arg3 :: in out u64 = R2 -000005c3: __libc_start_main_auxv :: in out u64 = R3 -000005c4: __libc_start_main_result :: out u32 = low:32[R0] - -000001cb: -0000041f: R16 := 0x11000 -00000426: R17 := mem[R16, el]:u64 -0000042c: R16 := R16 -00000431: call R17 with noreturn - -00000591: sub _fini(_fini_result) -000005c5: _fini_result :: out u32 = low:32[R0] - -0000001f: -00000025: #0 := R31 - 0x10 -0000002b: mem := mem with [#0, el]:u64 <- R29 -00000031: mem := mem with [#0 + 8, el]:u64 <- R30 -00000035: R31 := #0 -0000003b: R29 := R31 -00000042: R29 := mem[R31, el]:u64 -00000047: R30 := mem[R31 + 8, el]:u64 -0000004b: R31 := R31 + 0x10 -00000050: call R30 with noreturn - -00000592: sub _init(_init_result) -000005c6: _init_result :: out u32 = low:32[R0] - -000004e4: -000004ea: #5 := R31 - 0x10 -000004f0: mem := mem with [#5, el]:u64 <- R29 -000004f6: mem := mem with [#5 + 8, el]:u64 <- R30 -000004fa: R31 := #5 -00000500: R29 := R31 -00000505: R30 := 0x590 -00000507: call @call_weak_fn with return %00000509 - -00000509: -0000050e: R29 := mem[R31, el]:u64 -00000513: R30 := mem[R31 + 8, el]:u64 -00000517: R31 := R31 + 0x10 -0000051c: call R30 with noreturn - -00000593: sub _start(_start_result) -000005c7: _start_result :: out u32 = low:32[R0] - -0000018c: -00000191: R29 := 0 -00000196: R30 := 0 -0000019c: R5 := R0 -000001a3: R1 := mem[R31, el]:u64 -000001a9: R2 := R31 + 8 -000001af: R6 := R31 -000001b4: R0 := 0x10000 -000001bb: R0 := mem[R0 + 0xFD8, el]:u64 -000001c0: R3 := 0 -000001c5: R4 := 0 -000001ca: R30 := 0x630 -000001cd: call @__libc_start_main with return %000001cf - -000001cf: -000001d2: R30 := 0x634 -000001d5: call @abort with return %000005b6 - -000005b6: -000005b7: call @call_weak_fn with noreturn - -00000596: sub abort() - - -000001d3: -00000461: R16 := 0x11000 -00000468: R17 := mem[R16 + 0x18, el]:u64 -0000046e: R16 := R16 + 0x18 -00000473: call R17 with noreturn - -00000597: sub call_weak_fn(call_weak_fn_result) -000005c8: call_weak_fn_result :: out u32 = low:32[R0] - -000001d7: -000001da: R0 := 0x10000 -000001e1: R0 := mem[R0 + 0xFD0, el]:u64 -000001e7: when R0 = 0 goto %000001e5 -000005b8: goto %0000037d - -000001e5: -000001ed: call R30 with noreturn - -0000037d: -00000380: goto @__gmon_start__ - -0000037e: -0000044b: R16 := 0x11000 -00000452: R17 := mem[R16 + 0x10, el]:u64 -00000458: R16 := R16 + 0x10 -0000045d: call R17 with noreturn - -00000599: sub deregister_tm_clones(deregister_tm_clones_result) -000005c9: deregister_tm_clones_result :: out u32 = low:32[R0] - -000001f3: -000001f6: R0 := 0x11000 -000001fc: R0 := R0 + 0x30 -00000201: R1 := 0x11000 -00000207: R1 := R1 + 0x30 -0000020d: #1 := ~R0 -00000212: #2 := R1 + ~R0 -00000218: VF := extend:65[#2 + 1] <> extend:65[R1] + extend:65[#1] + 1 -0000021e: CF := pad:65[#2 + 1] <> pad:65[R1] + pad:65[#1] + 1 -00000222: ZF := #2 + 1 = 0 -00000226: NF := 63:63[#2 + 1] -0000022c: when ZF goto %0000022a -000005b9: goto %0000035f - -0000035f: -00000362: R1 := 0x10000 -00000369: R1 := mem[R1 + 0xFC0, el]:u64 -0000036e: when R1 = 0 goto %0000022a -000005ba: goto %00000372 - -0000022a: -00000232: call R30 with noreturn - -00000372: -00000376: R16 := R1 -0000037b: call R16 with noreturn - -0000059c: sub frame_dummy(frame_dummy_result) -000005ca: frame_dummy_result :: out u32 = low:32[R0] - -000002ca: -000002cc: call @register_tm_clones with noreturn - -0000059d: sub main(main_argc, main_argv, main_result) -000005cb: main_argc :: in u32 = low:32[R0] -000005cc: main_argv :: in out u64 = R1 -000005cd: main_result :: out u32 = low:32[R0] - -000002ce: -000002d2: R31 := R31 - 0x10 -000002d7: R9 := 0x11000 -000002dd: R9 := R9 + 0x34 -000002e5: mem := mem with [R31 + 0xC, el]:u32 <- 31:0[R0] -000002ec: R8 := pad:64[mem[R31 + 0xC, el]:u32] -000002f4: mem := mem with [R9 + 4, el]:u32 <- 31:0[R8] -000002f9: R0 := 0 -000002ff: R31 := R31 + 0x10 -00000304: call R30 with noreturn - -0000059e: sub register_tm_clones(register_tm_clones_result) -000005ce: register_tm_clones_result :: out u32 = low:32[R0] - -00000234: -00000237: R0 := 0x11000 -0000023d: R0 := R0 + 0x30 -00000242: R1 := 0x11000 -00000248: R1 := R1 + 0x30 -0000024f: R1 := R1 + ~R0 + 1 -00000255: R2 := 0.63:63[R1] -0000025c: R1 := R2 + (R1 ~>> 3) -00000262: R1 := extend:64[63:1[R1]] -00000268: when R1 = 0 goto %00000266 -000005bb: goto %00000341 - -00000341: -00000344: R2 := 0x10000 -0000034b: R2 := mem[R2 + 0xFE0, el]:u64 -00000350: when R2 = 0 goto %00000266 -000005bc: goto %00000354 - -00000266: -0000026e: call R30 with noreturn - -00000354: -00000358: R16 := R2 -0000035d: call R16 with noreturn diff --git a/src/test/correct/basic_arrays_write/clang/basic_arrays_write.expected b/src/test/correct/basic_arrays_write/clang/basic_arrays_write.expected index 6b7aed7fe..099eecaba 100644 --- a/src/test/correct/basic_arrays_write/clang/basic_arrays_write.expected +++ b/src/test/correct/basic_arrays_write/clang/basic_arrays_write.expected @@ -1,24 +1,20 @@ var {:extern} Gamma_R0: bool; -var {:extern} Gamma_R31: bool; var {:extern} Gamma_R8: bool; var {:extern} Gamma_R9: bool; var {:extern} Gamma_mem: [bv64]bool; -var {:extern} Gamma_stack: [bv64]bool; var {:extern} R0: bv64; -var {:extern} R31: bv64; var {:extern} R8: bv64; var {:extern} R9: bv64; var {:extern} mem: [bv64]bv8; -var {:extern} stack: [bv64]bv8; const {:extern} $arr_addr: bv64; -axiom ($arr_addr == 69684bv64); +axiom ($arr_addr == 131092bv64); function {:extern} L(mem$in: [bv64]bv8, index: bv64) returns (bool) { (if ((index == bvadd64($arr_addr, 4bv64)) || (index == bvadd64($arr_addr, 0bv64))) then false else false) } function {:extern} {:bvbuiltin "bvadd"} bvadd64(bv64, bv64) returns (bv64); -function {:extern} gamma_load32(gammaMap: [bv64]bool, index: bv64) returns (bool) { - (gammaMap[bvadd64(index, 3bv64)] && (gammaMap[bvadd64(index, 2bv64)] && (gammaMap[bvadd64(index, 1bv64)] && gammaMap[index]))) +function {:extern} gamma_load64(gammaMap: [bv64]bool, index: bv64) returns (bool) { + (gammaMap[bvadd64(index, 7bv64)] && (gammaMap[bvadd64(index, 6bv64)] && (gammaMap[bvadd64(index, 5bv64)] && (gammaMap[bvadd64(index, 4bv64)] && (gammaMap[bvadd64(index, 3bv64)] && (gammaMap[bvadd64(index, 2bv64)] && (gammaMap[bvadd64(index, 1bv64)] && gammaMap[index]))))))) } function {:extern} gamma_store32(gammaMap: [bv64]bool, index: bv64, value: bool) returns ([bv64]bool) { @@ -42,11 +38,12 @@ procedure {:extern} rely(); modifies Gamma_mem, mem; ensures (forall i: bv64 :: (((mem[i] == old(mem[i])) ==> (Gamma_mem[i] == old(Gamma_mem[i]))))); ensures true; - free ensures (memory_load32_le(mem, 1868bv64) == 131073bv32); - free ensures (memory_load64_le(mem, 69064bv64) == 1808bv64); - free ensures (memory_load64_le(mem, 69072bv64) == 1728bv64); - free ensures (memory_load64_le(mem, 69592bv64) == 1812bv64); - free ensures (memory_load64_le(mem, 69672bv64) == 69672bv64); + free ensures (memory_load32_le(mem, 2304bv64) == 131073bv32); + free ensures (memory_load64_le(mem, 130432bv64) == 2256bv64); + free ensures (memory_load64_le(mem, 130440bv64) == 2176bv64); + free ensures (memory_load64_le(mem, 131048bv64) == 2260bv64); + free ensures (memory_load64_le(mem, 131056bv64) == 131092bv64); + free ensures (memory_load64_le(mem, 131080bv64) == 131080bv64); procedure {:extern} rely_transitive(); modifies Gamma_mem, mem; @@ -73,49 +70,46 @@ implementation {:extern} guarantee_reflexive() assert (memory_load32_le(mem, bvadd64($arr_addr, 0bv64)) == memory_load32_le(mem, bvadd64($arr_addr, 0bv64))); } -procedure main_1812(); - modifies Gamma_R0, Gamma_R31, Gamma_R8, Gamma_R9, Gamma_mem, Gamma_stack, R0, R31, R8, R9, mem, stack; +procedure main(); + modifies Gamma_R0, Gamma_R8, Gamma_R9, Gamma_mem, R0, R8, R9, mem; requires (Gamma_R0 == false); - free requires (memory_load64_le(mem, 69664bv64) == 0bv64); - free requires (memory_load64_le(mem, 69672bv64) == 69672bv64); - free requires (memory_load32_le(mem, 1868bv64) == 131073bv32); - free requires (memory_load64_le(mem, 69064bv64) == 1808bv64); - free requires (memory_load64_le(mem, 69072bv64) == 1728bv64); - free requires (memory_load64_le(mem, 69592bv64) == 1812bv64); - free requires (memory_load64_le(mem, 69672bv64) == 69672bv64); - free ensures (Gamma_R31 == old(Gamma_R31)); - free ensures (R31 == old(R31)); - free ensures (memory_load32_le(mem, 1868bv64) == 131073bv32); - free ensures (memory_load64_le(mem, 69064bv64) == 1808bv64); - free ensures (memory_load64_le(mem, 69072bv64) == 1728bv64); - free ensures (memory_load64_le(mem, 69592bv64) == 1812bv64); - free ensures (memory_load64_le(mem, 69672bv64) == 69672bv64); + free requires (memory_load64_le(mem, 131072bv64) == 0bv64); + free requires (memory_load64_le(mem, 131080bv64) == 131080bv64); + free requires (memory_load32_le(mem, 2304bv64) == 131073bv32); + free requires (memory_load64_le(mem, 130432bv64) == 2256bv64); + free requires (memory_load64_le(mem, 130440bv64) == 2176bv64); + free requires (memory_load64_le(mem, 131048bv64) == 2260bv64); + free requires (memory_load64_le(mem, 131056bv64) == 131092bv64); + free requires (memory_load64_le(mem, 131080bv64) == 131080bv64); + free ensures (memory_load32_le(mem, 2304bv64) == 131073bv32); + free ensures (memory_load64_le(mem, 130432bv64) == 2256bv64); + free ensures (memory_load64_le(mem, 130440bv64) == 2176bv64); + free ensures (memory_load64_le(mem, 131048bv64) == 2260bv64); + free ensures (memory_load64_le(mem, 131056bv64) == 131092bv64); + free ensures (memory_load64_le(mem, 131080bv64) == 131080bv64); -implementation main_1812() +implementation main() { - var Gamma_load18: bool; + var $load$18: bv64; + var Gamma_$load$18: bool; var arr$0_old: bv32; - var load18: bv32; lmain: assume {:captureState "lmain"} true; - R31, Gamma_R31 := bvadd64(R31, 18446744073709551600bv64), Gamma_R31; - R9, Gamma_R9 := 69632bv64, true; - R9, Gamma_R9 := bvadd64(R9, 52bv64), Gamma_R9; - stack, Gamma_stack := memory_store32_le(stack, bvadd64(R31, 12bv64), R0[32:0]), gamma_store32(Gamma_stack, bvadd64(R31, 12bv64), Gamma_R0); - assume {:captureState "%000002e5"} true; - load18, Gamma_load18 := memory_load32_le(stack, bvadd64(R31, 12bv64)), gamma_load32(Gamma_stack, bvadd64(R31, 12bv64)); - R8, Gamma_R8 := zero_extend32_32(load18), Gamma_load18; + R9, Gamma_R9 := 126976bv64, true; + R8, Gamma_R8 := zero_extend32_32(R0[32:0]), Gamma_R0; + R0, Gamma_R0 := 0bv64, true; + call rely(); + $load$18, Gamma_$load$18 := memory_load64_le(mem, bvadd64(R9, 4080bv64)), (gamma_load64(Gamma_mem, bvadd64(R9, 4080bv64)) || L(mem, bvadd64(R9, 4080bv64))); + R9, Gamma_R9 := $load$18, Gamma_$load$18; call rely(); - arr$0_old := memory_load32_le(mem, bvadd64($arr_addr, 0bv64)); assert (L(mem, bvadd64(R9, 4bv64)) ==> Gamma_R8); + arr$0_old := memory_load32_le(mem, bvadd64($arr_addr, 0bv64)); mem, Gamma_mem := memory_store32_le(mem, bvadd64(R9, 4bv64), R8[32:0]), gamma_store32(Gamma_mem, bvadd64(R9, 4bv64), Gamma_R8); assert (arr$0_old == memory_load32_le(mem, bvadd64($arr_addr, 0bv64))); - assume {:captureState "%000002f4"} true; - R0, Gamma_R0 := 0bv64, true; - R31, Gamma_R31 := bvadd64(R31, 16bv64), Gamma_R31; - goto main_1812_basil_return; - main_1812_basil_return: - assume {:captureState "main_1812_basil_return"} true; + assume {:captureState "%0000028c"} true; + goto main_basil_return; + main_basil_return: + assume {:captureState "main_basil_return"} true; return; } diff --git a/src/test/correct/basic_arrays_write/clang/basic_arrays_write.gts b/src/test/correct/basic_arrays_write/clang/basic_arrays_write.gts deleted file mode 100644 index 4f95f3624..000000000 Binary files a/src/test/correct/basic_arrays_write/clang/basic_arrays_write.gts and /dev/null differ diff --git a/src/test/correct/basic_arrays_write/clang/basic_arrays_write.md5sum b/src/test/correct/basic_arrays_write/clang/basic_arrays_write.md5sum new file mode 100644 index 000000000..4dfc2a8bc --- /dev/null +++ b/src/test/correct/basic_arrays_write/clang/basic_arrays_write.md5sum @@ -0,0 +1,5 @@ +2a8b67b90c8c9dcf60e0f29b1ef34a98 correct/basic_arrays_write/clang/a.out +030f4c04a4973021eb20dfcb8a7b3010 correct/basic_arrays_write/clang/basic_arrays_write.adt +f37cd13705ac5181cf9df434b5273448 correct/basic_arrays_write/clang/basic_arrays_write.bir +1c587cc635e6a20924302ae7ee743792 correct/basic_arrays_write/clang/basic_arrays_write.relf +b8a392f80775b06aefb0be3450c01bdf correct/basic_arrays_write/clang/basic_arrays_write.gts diff --git a/src/test/correct/basic_arrays_write/clang/basic_arrays_write.relf b/src/test/correct/basic_arrays_write/clang/basic_arrays_write.relf deleted file mode 100644 index 9545b2368..000000000 --- a/src/test/correct/basic_arrays_write/clang/basic_arrays_write.relf +++ /dev/null @@ -1,123 +0,0 @@ - -Relocation section '.rela.dyn' at offset 0x460 contains 8 entries: - Offset Info Type Symbol's Value Symbol's Name + Addend -0000000000010dc8 0000000000000403 R_AARCH64_RELATIVE 710 -0000000000010dd0 0000000000000403 R_AARCH64_RELATIVE 6c0 -0000000000010fd8 0000000000000403 R_AARCH64_RELATIVE 714 -0000000000011028 0000000000000403 R_AARCH64_RELATIVE 11028 -0000000000010fc0 0000000400000401 R_AARCH64_GLOB_DAT 0000000000000000 _ITM_deregisterTMCloneTable + 0 -0000000000010fc8 0000000500000401 R_AARCH64_GLOB_DAT 0000000000000000 __cxa_finalize@GLIBC_2.17 + 0 -0000000000010fd0 0000000600000401 R_AARCH64_GLOB_DAT 0000000000000000 __gmon_start__ + 0 -0000000000010fe0 0000000800000401 R_AARCH64_GLOB_DAT 0000000000000000 _ITM_registerTMCloneTable + 0 - -Relocation section '.rela.plt' at offset 0x520 contains 4 entries: - Offset Info Type Symbol's Value Symbol's Name + Addend -0000000000011000 0000000300000402 R_AARCH64_JUMP_SLOT 0000000000000000 __libc_start_main@GLIBC_2.34 + 0 -0000000000011008 0000000500000402 R_AARCH64_JUMP_SLOT 0000000000000000 __cxa_finalize@GLIBC_2.17 + 0 -0000000000011010 0000000600000402 R_AARCH64_JUMP_SLOT 0000000000000000 __gmon_start__ + 0 -0000000000011018 0000000700000402 R_AARCH64_JUMP_SLOT 0000000000000000 abort@GLIBC_2.17 + 0 - -Symbol table '.dynsym' contains 9 entries: - Num: Value Size Type Bind Vis Ndx Name - 0: 0000000000000000 0 NOTYPE LOCAL DEFAULT UND - 1: 0000000000000580 0 SECTION LOCAL DEFAULT 11 .init - 2: 0000000000011020 0 SECTION LOCAL DEFAULT 23 .data - 3: 0000000000000000 0 FUNC GLOBAL DEFAULT UND __libc_start_main@GLIBC_2.34 (2) - 4: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_deregisterTMCloneTable - 5: 0000000000000000 0 FUNC WEAK DEFAULT UND __cxa_finalize@GLIBC_2.17 (3) - 6: 0000000000000000 0 NOTYPE WEAK DEFAULT UND __gmon_start__ - 7: 0000000000000000 0 FUNC GLOBAL DEFAULT UND abort@GLIBC_2.17 (3) - 8: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_registerTMCloneTable - -Symbol table '.symtab' contains 90 entries: - Num: Value Size Type Bind Vis Ndx Name - 0: 0000000000000000 0 NOTYPE LOCAL DEFAULT UND - 1: 0000000000000238 0 SECTION LOCAL DEFAULT 1 .interp - 2: 0000000000000254 0 SECTION LOCAL DEFAULT 2 .note.gnu.build-id - 3: 0000000000000278 0 SECTION LOCAL DEFAULT 3 .note.ABI-tag - 4: 0000000000000298 0 SECTION LOCAL DEFAULT 4 .gnu.hash - 5: 00000000000002b8 0 SECTION LOCAL DEFAULT 5 .dynsym - 6: 0000000000000390 0 SECTION LOCAL DEFAULT 6 .dynstr - 7: 000000000000041e 0 SECTION LOCAL DEFAULT 7 .gnu.version - 8: 0000000000000430 0 SECTION LOCAL DEFAULT 8 .gnu.version_r - 9: 0000000000000460 0 SECTION LOCAL DEFAULT 9 .rela.dyn - 10: 0000000000000520 0 SECTION LOCAL DEFAULT 10 .rela.plt - 11: 0000000000000580 0 SECTION LOCAL DEFAULT 11 .init - 12: 00000000000005a0 0 SECTION LOCAL DEFAULT 12 .plt - 13: 0000000000000600 0 SECTION LOCAL DEFAULT 13 .text - 14: 0000000000000738 0 SECTION LOCAL DEFAULT 14 .fini - 15: 000000000000074c 0 SECTION LOCAL DEFAULT 15 .rodata - 16: 0000000000000750 0 SECTION LOCAL DEFAULT 16 .eh_frame_hdr - 17: 0000000000000790 0 SECTION LOCAL DEFAULT 17 .eh_frame - 18: 0000000000010dc8 0 SECTION LOCAL DEFAULT 18 .init_array - 19: 0000000000010dd0 0 SECTION LOCAL DEFAULT 19 .fini_array - 20: 0000000000010dd8 0 SECTION LOCAL DEFAULT 20 .dynamic - 21: 0000000000010fb8 0 SECTION LOCAL DEFAULT 21 .got - 22: 0000000000010fe8 0 SECTION LOCAL DEFAULT 22 .got.plt - 23: 0000000000011020 0 SECTION LOCAL DEFAULT 23 .data - 24: 0000000000011030 0 SECTION LOCAL DEFAULT 24 .bss - 25: 0000000000000000 0 SECTION LOCAL DEFAULT 25 .comment - 26: 0000000000000000 0 FILE LOCAL DEFAULT ABS Scrt1.o - 27: 0000000000000278 0 NOTYPE LOCAL DEFAULT 3 $d - 28: 0000000000000278 32 OBJECT LOCAL DEFAULT 3 __abi_tag - 29: 0000000000000600 0 NOTYPE LOCAL DEFAULT 13 $x - 30: 00000000000007a4 0 NOTYPE LOCAL DEFAULT 17 $d - 31: 000000000000074c 0 NOTYPE LOCAL DEFAULT 15 $d - 32: 0000000000000000 0 FILE LOCAL DEFAULT ABS crti.o - 33: 0000000000000634 0 NOTYPE LOCAL DEFAULT 13 $x - 34: 0000000000000634 20 FUNC LOCAL DEFAULT 13 call_weak_fn - 35: 0000000000000580 0 NOTYPE LOCAL DEFAULT 11 $x - 36: 0000000000000738 0 NOTYPE LOCAL DEFAULT 14 $x - 37: 0000000000000000 0 FILE LOCAL DEFAULT ABS crtn.o - 38: 0000000000000590 0 NOTYPE LOCAL DEFAULT 11 $x - 39: 0000000000000744 0 NOTYPE LOCAL DEFAULT 14 $x - 40: 0000000000000000 0 FILE LOCAL DEFAULT ABS crtstuff.c - 41: 0000000000000650 0 NOTYPE LOCAL DEFAULT 13 $x - 42: 0000000000000650 0 FUNC LOCAL DEFAULT 13 deregister_tm_clones - 43: 0000000000000680 0 FUNC LOCAL DEFAULT 13 register_tm_clones - 44: 0000000000011028 0 NOTYPE LOCAL DEFAULT 23 $d - 45: 00000000000006c0 0 FUNC LOCAL DEFAULT 13 __do_global_dtors_aux - 46: 0000000000011030 1 OBJECT LOCAL DEFAULT 24 completed.0 - 47: 0000000000010dd0 0 NOTYPE LOCAL DEFAULT 19 $d - 48: 0000000000010dd0 0 OBJECT LOCAL DEFAULT 19 __do_global_dtors_aux_fini_array_entry - 49: 0000000000000710 0 FUNC LOCAL DEFAULT 13 frame_dummy - 50: 0000000000010dc8 0 NOTYPE LOCAL DEFAULT 18 $d - 51: 0000000000010dc8 0 OBJECT LOCAL DEFAULT 18 __frame_dummy_init_array_entry - 52: 00000000000007b8 0 NOTYPE LOCAL DEFAULT 17 $d - 53: 0000000000011030 0 NOTYPE LOCAL DEFAULT 24 $d - 54: 0000000000000000 0 FILE LOCAL DEFAULT ABS basic_arrays_write.c - 55: 0000000000000714 0 NOTYPE LOCAL DEFAULT 13 $x.0 - 56: 0000000000011034 0 NOTYPE LOCAL DEFAULT 24 $d.1 - 57: 000000000000002a 0 NOTYPE LOCAL DEFAULT 25 $d.2 - 58: 0000000000000818 0 NOTYPE LOCAL DEFAULT 17 $d.3 - 59: 0000000000000000 0 FILE LOCAL DEFAULT ABS crtstuff.c - 60: 0000000000000844 0 NOTYPE LOCAL DEFAULT 17 $d - 61: 0000000000000844 0 OBJECT LOCAL DEFAULT 17 __FRAME_END__ - 62: 0000000000000000 0 FILE LOCAL DEFAULT ABS - 63: 0000000000010dd8 0 OBJECT LOCAL DEFAULT ABS _DYNAMIC - 64: 0000000000000750 0 NOTYPE LOCAL DEFAULT 16 __GNU_EH_FRAME_HDR - 65: 0000000000010fb8 0 OBJECT LOCAL DEFAULT ABS _GLOBAL_OFFSET_TABLE_ - 66: 00000000000005a0 0 NOTYPE LOCAL DEFAULT 12 $x - 67: 0000000000000000 0 FUNC GLOBAL DEFAULT UND __libc_start_main@GLIBC_2.34 - 68: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_deregisterTMCloneTable - 69: 0000000000011020 0 NOTYPE WEAK DEFAULT 23 data_start - 70: 0000000000011030 0 NOTYPE GLOBAL DEFAULT 24 __bss_start__ - 71: 0000000000000000 0 FUNC WEAK DEFAULT UND __cxa_finalize@GLIBC_2.17 - 72: 0000000000011040 0 NOTYPE GLOBAL DEFAULT 24 _bss_end__ - 73: 0000000000011030 0 NOTYPE GLOBAL DEFAULT 23 _edata - 74: 0000000000000738 0 FUNC GLOBAL HIDDEN 14 _fini - 75: 0000000000011040 0 NOTYPE GLOBAL DEFAULT 24 __bss_end__ - 76: 0000000000011020 0 NOTYPE GLOBAL DEFAULT 23 __data_start - 77: 0000000000000000 0 NOTYPE WEAK DEFAULT UND __gmon_start__ - 78: 0000000000011028 0 OBJECT GLOBAL HIDDEN 23 __dso_handle - 79: 0000000000000000 0 FUNC GLOBAL DEFAULT UND abort@GLIBC_2.17 - 80: 000000000000074c 4 OBJECT GLOBAL DEFAULT 15 _IO_stdin_used - 81: 0000000000011040 0 NOTYPE GLOBAL DEFAULT 24 _end - 82: 0000000000000600 52 FUNC GLOBAL DEFAULT 13 _start - 83: 0000000000011040 0 NOTYPE GLOBAL DEFAULT 24 __end__ - 84: 0000000000011030 0 NOTYPE GLOBAL DEFAULT 24 __bss_start - 85: 0000000000000714 36 FUNC GLOBAL DEFAULT 13 main - 86: 0000000000011034 8 OBJECT GLOBAL DEFAULT 24 arr - 87: 0000000000011030 0 OBJECT GLOBAL HIDDEN 23 __TMC_END__ - 88: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_registerTMCloneTable - 89: 0000000000000580 0 FUNC GLOBAL HIDDEN 11 _init diff --git a/src/test/correct/basic_arrays_write/clang/basic_arrays_write_gtirb.expected b/src/test/correct/basic_arrays_write/clang/basic_arrays_write_gtirb.expected index 5144a00c7..f92fcd979 100644 --- a/src/test/correct/basic_arrays_write/clang/basic_arrays_write_gtirb.expected +++ b/src/test/correct/basic_arrays_write/clang/basic_arrays_write_gtirb.expected @@ -1,24 +1,20 @@ var {:extern} Gamma_R0: bool; -var {:extern} Gamma_R31: bool; var {:extern} Gamma_R8: bool; var {:extern} Gamma_R9: bool; var {:extern} Gamma_mem: [bv64]bool; -var {:extern} Gamma_stack: [bv64]bool; var {:extern} R0: bv64; -var {:extern} R31: bv64; var {:extern} R8: bv64; var {:extern} R9: bv64; var {:extern} mem: [bv64]bv8; -var {:extern} stack: [bv64]bv8; const {:extern} $arr_addr: bv64; -axiom ($arr_addr == 69684bv64); +axiom ($arr_addr == 131092bv64); function {:extern} L(mem$in: [bv64]bv8, index: bv64) returns (bool) { (if ((index == bvadd64($arr_addr, 4bv64)) || (index == bvadd64($arr_addr, 0bv64))) then false else false) } function {:extern} {:bvbuiltin "bvadd"} bvadd64(bv64, bv64) returns (bv64); -function {:extern} gamma_load32(gammaMap: [bv64]bool, index: bv64) returns (bool) { - (gammaMap[bvadd64(index, 3bv64)] && (gammaMap[bvadd64(index, 2bv64)] && (gammaMap[bvadd64(index, 1bv64)] && gammaMap[index]))) +function {:extern} gamma_load64(gammaMap: [bv64]bool, index: bv64) returns (bool) { + (gammaMap[bvadd64(index, 7bv64)] && (gammaMap[bvadd64(index, 6bv64)] && (gammaMap[bvadd64(index, 5bv64)] && (gammaMap[bvadd64(index, 4bv64)] && (gammaMap[bvadd64(index, 3bv64)] && (gammaMap[bvadd64(index, 2bv64)] && (gammaMap[bvadd64(index, 1bv64)] && gammaMap[index]))))))) } function {:extern} gamma_store32(gammaMap: [bv64]bool, index: bv64, value: bool) returns ([bv64]bool) { @@ -42,11 +38,12 @@ procedure {:extern} rely(); modifies Gamma_mem, mem; ensures (forall i: bv64 :: (((mem[i] == old(mem[i])) ==> (Gamma_mem[i] == old(Gamma_mem[i]))))); ensures true; - free ensures (memory_load32_le(mem, 1868bv64) == 131073bv32); - free ensures (memory_load64_le(mem, 69064bv64) == 1808bv64); - free ensures (memory_load64_le(mem, 69072bv64) == 1728bv64); - free ensures (memory_load64_le(mem, 69592bv64) == 1812bv64); - free ensures (memory_load64_le(mem, 69672bv64) == 69672bv64); + free ensures (memory_load32_le(mem, 2304bv64) == 131073bv32); + free ensures (memory_load64_le(mem, 130432bv64) == 2256bv64); + free ensures (memory_load64_le(mem, 130440bv64) == 2176bv64); + free ensures (memory_load64_le(mem, 131048bv64) == 2260bv64); + free ensures (memory_load64_le(mem, 131056bv64) == 131092bv64); + free ensures (memory_load64_le(mem, 131080bv64) == 131080bv64); procedure {:extern} rely_transitive(); modifies Gamma_mem, mem; @@ -73,49 +70,46 @@ implementation {:extern} guarantee_reflexive() assert (memory_load32_le(mem, bvadd64($arr_addr, 0bv64)) == memory_load32_le(mem, bvadd64($arr_addr, 0bv64))); } -procedure main_1812(); - modifies Gamma_R0, Gamma_R31, Gamma_R8, Gamma_R9, Gamma_mem, Gamma_stack, R0, R31, R8, R9, mem, stack; +procedure main(); + modifies Gamma_R0, Gamma_R8, Gamma_R9, Gamma_mem, R0, R8, R9, mem; requires (Gamma_R0 == false); - free requires (memory_load64_le(mem, 69664bv64) == 0bv64); - free requires (memory_load64_le(mem, 69672bv64) == 69672bv64); - free requires (memory_load32_le(mem, 1868bv64) == 131073bv32); - free requires (memory_load64_le(mem, 69064bv64) == 1808bv64); - free requires (memory_load64_le(mem, 69072bv64) == 1728bv64); - free requires (memory_load64_le(mem, 69592bv64) == 1812bv64); - free requires (memory_load64_le(mem, 69672bv64) == 69672bv64); - free ensures (Gamma_R31 == old(Gamma_R31)); - free ensures (R31 == old(R31)); - free ensures (memory_load32_le(mem, 1868bv64) == 131073bv32); - free ensures (memory_load64_le(mem, 69064bv64) == 1808bv64); - free ensures (memory_load64_le(mem, 69072bv64) == 1728bv64); - free ensures (memory_load64_le(mem, 69592bv64) == 1812bv64); - free ensures (memory_load64_le(mem, 69672bv64) == 69672bv64); + free requires (memory_load64_le(mem, 131072bv64) == 0bv64); + free requires (memory_load64_le(mem, 131080bv64) == 131080bv64); + free requires (memory_load32_le(mem, 2304bv64) == 131073bv32); + free requires (memory_load64_le(mem, 130432bv64) == 2256bv64); + free requires (memory_load64_le(mem, 130440bv64) == 2176bv64); + free requires (memory_load64_le(mem, 131048bv64) == 2260bv64); + free requires (memory_load64_le(mem, 131056bv64) == 131092bv64); + free requires (memory_load64_le(mem, 131080bv64) == 131080bv64); + free ensures (memory_load32_le(mem, 2304bv64) == 131073bv32); + free ensures (memory_load64_le(mem, 130432bv64) == 2256bv64); + free ensures (memory_load64_le(mem, 130440bv64) == 2176bv64); + free ensures (memory_load64_le(mem, 131048bv64) == 2260bv64); + free ensures (memory_load64_le(mem, 131056bv64) == 131092bv64); + free ensures (memory_load64_le(mem, 131080bv64) == 131080bv64); -implementation main_1812() +implementation main() { - var Gamma_load12: bool; + var $load11: bv64; + var Gamma_$load11: bool; var arr$0_old: bv32; - var load12: bv32; - main_1812__0__pfAb81AKR8CuFLyGhCrxEg: - assume {:captureState "main_1812__0__pfAb81AKR8CuFLyGhCrxEg"} true; - R31, Gamma_R31 := bvadd64(R31, 18446744073709551600bv64), Gamma_R31; - R9, Gamma_R9 := 69632bv64, true; - R9, Gamma_R9 := bvadd64(R9, 52bv64), Gamma_R9; - stack, Gamma_stack := memory_store32_le(stack, bvadd64(R31, 12bv64), R0[32:0]), gamma_store32(Gamma_stack, bvadd64(R31, 12bv64), Gamma_R0); - assume {:captureState "1824_0"} true; - load12, Gamma_load12 := memory_load32_le(stack, bvadd64(R31, 12bv64)), gamma_load32(Gamma_stack, bvadd64(R31, 12bv64)); - R8, Gamma_R8 := zero_extend32_32(load12), Gamma_load12; + $main$__0__$oqiqdATZTc6MDOYJqL9Aew: + assume {:captureState "$main$__0__$oqiqdATZTc6MDOYJqL9Aew"} true; + R9, Gamma_R9 := 126976bv64, true; + R8, Gamma_R8 := zero_extend32_32(R0[32:0]), Gamma_R0; + R0, Gamma_R0 := 0bv64, true; + call rely(); + $load11, Gamma_$load11 := memory_load64_le(mem, bvadd64(R9, 4080bv64)), (gamma_load64(Gamma_mem, bvadd64(R9, 4080bv64)) || L(mem, bvadd64(R9, 4080bv64))); + R9, Gamma_R9 := $load11, Gamma_$load11; call rely(); - arr$0_old := memory_load32_le(mem, bvadd64($arr_addr, 0bv64)); assert (L(mem, bvadd64(R9, 4bv64)) ==> Gamma_R8); + arr$0_old := memory_load32_le(mem, bvadd64($arr_addr, 0bv64)); mem, Gamma_mem := memory_store32_le(mem, bvadd64(R9, 4bv64), R8[32:0]), gamma_store32(Gamma_mem, bvadd64(R9, 4bv64), Gamma_R8); assert (arr$0_old == memory_load32_le(mem, bvadd64($arr_addr, 0bv64))); - assume {:captureState "1832_0"} true; - R0, Gamma_R0 := 0bv64, true; - R31, Gamma_R31 := bvadd64(R31, 16bv64), Gamma_R31; - goto main_1812_basil_return; - main_1812_basil_return: - assume {:captureState "main_1812_basil_return"} true; + assume {:captureState "2276$0"} true; + goto main_basil_return; + main_basil_return: + assume {:captureState "main_basil_return"} true; return; } diff --git a/src/test/correct/basic_arrays_write/clang_O2/basic_arrays_write.adt b/src/test/correct/basic_arrays_write/clang_O2/basic_arrays_write.adt deleted file mode 100644 index 41e144aad..000000000 --- a/src/test/correct/basic_arrays_write/clang_O2/basic_arrays_write.adt +++ /dev/null @@ -1,492 +0,0 @@ -Project(Attrs([Attr("filename","\"clang_O2/basic_arrays_write.out\""), -Attr("image-specification","(declare abi (name str))\n(declare arch (name str))\n(declare base-address (addr int))\n(declare bias (off int))\n(declare bits (size int))\n(declare code-region (addr int) (size int) (off int))\n(declare code-start (addr int))\n(declare entry-point (addr int))\n(declare external-reference (addr int) (name str))\n(declare format (name str))\n(declare is-executable (flag bool))\n(declare is-little-endian (flag bool))\n(declare llvm:base-address (addr int))\n(declare llvm:code-entry (name str) (off int) (size int))\n(declare llvm:coff-import-library (name str))\n(declare llvm:coff-virtual-section-header (name str) (addr int) (size int))\n(declare llvm:elf-program-header (name str) (off int) (size int))\n(declare llvm:elf-program-header-flags (name str) (ld bool) (r bool) \n (w bool) (x bool))\n(declare llvm:elf-virtual-program-header (name str) (addr int) (size int))\n(declare llvm:entry-point (addr int))\n(declare llvm:macho-symbol (name str) (value int))\n(declare llvm:name-reference (at int) (name str))\n(declare llvm:relocation (at int) (addr int))\n(declare llvm:section-entry (name str) (addr int) (size int) (off int))\n(declare llvm:section-flags (name str) (r bool) (w bool) (x bool))\n(declare llvm:segment-command (name str) (off int) (size int))\n(declare llvm:segment-command-flags (name str) (r bool) (w bool) (x bool))\n(declare llvm:symbol-entry (name str) (addr int) (size int) (off int)\n (value int))\n(declare llvm:virtual-segment-command (name str) (addr int) (size int))\n(declare mapped (addr int) (size int) (off int))\n(declare named-region (addr int) (size int) (name str))\n(declare named-symbol (addr int) (name str))\n(declare require (name str))\n(declare section (addr int) (size int))\n(declare segment (addr int) (size int) (r bool) (w bool) (x bool))\n(declare subarch (name str))\n(declare symbol-chunk (addr int) (size int) (root int))\n(declare symbol-value (addr int) (value int))\n(declare system (name str))\n(declare vendor (name str))\n\n(abi unknown)\n(arch aarch64)\n(base-address 0)\n(bias 0)\n(bits 64)\n(code-region 1832 20 1832)\n(code-region 1536 296 1536)\n(code-region 1440 96 1440)\n(code-region 1408 24 1408)\n(code-start 1588)\n(code-start 1536)\n(code-start 1812)\n(entry-point 1536)\n(external-reference 69568 _ITM_deregisterTMCloneTable)\n(external-reference 69576 __cxa_finalize)\n(external-reference 69584 __gmon_start__)\n(external-reference 69600 _ITM_registerTMCloneTable)\n(external-reference 69632 __libc_start_main)\n(external-reference 69640 __cxa_finalize)\n(external-reference 69648 __gmon_start__)\n(external-reference 69656 abort)\n(format elf)\n(is-executable true)\n(is-little-endian true)\n(llvm:base-address 0)\n(llvm:code-entry abort 0 0)\n(llvm:code-entry __cxa_finalize 0 0)\n(llvm:code-entry __libc_start_main 0 0)\n(llvm:code-entry _init 1408 0)\n(llvm:code-entry main 1812 20)\n(llvm:code-entry _start 1536 52)\n(llvm:code-entry abort@GLIBC_2.17 0 0)\n(llvm:code-entry _fini 1832 0)\n(llvm:code-entry __cxa_finalize@GLIBC_2.17 0 0)\n(llvm:code-entry __libc_start_main@GLIBC_2.34 0 0)\n(llvm:code-entry frame_dummy 1808 0)\n(llvm:code-entry __do_global_dtors_aux 1728 0)\n(llvm:code-entry register_tm_clones 1664 0)\n(llvm:code-entry deregister_tm_clones 1616 0)\n(llvm:code-entry call_weak_fn 1588 20)\n(llvm:code-entry .fini 1832 20)\n(llvm:code-entry .text 1536 296)\n(llvm:code-entry .plt 1440 96)\n(llvm:code-entry .init 1408 24)\n(llvm:elf-program-header 08 3528 568)\n(llvm:elf-program-header 07 0 0)\n(llvm:elf-program-header 06 1856 60)\n(llvm:elf-program-header 05 596 68)\n(llvm:elf-program-header 04 3544 480)\n(llvm:elf-program-header 03 3528 616)\n(llvm:elf-program-header 02 0 2100)\n(llvm:elf-program-header 01 568 27)\n(llvm:elf-program-header 00 64 504)\n(llvm:elf-program-header-flags 08 false true false false)\n(llvm:elf-program-header-flags 07 false true true false)\n(llvm:elf-program-header-flags 06 false true false false)\n(llvm:elf-program-header-flags 05 false true false false)\n(llvm:elf-program-header-flags 04 false true true false)\n(llvm:elf-program-header-flags 03 true true true false)\n(llvm:elf-program-header-flags 02 true true false true)\n(llvm:elf-program-header-flags 01 false true false false)\n(llvm:elf-program-header-flags 00 false true false false)\n(llvm:elf-virtual-program-header 08 69064 568)\n(llvm:elf-virtual-program-header 07 0 0)\n(llvm:elf-virtual-program-header 06 1856 60)\n(llvm:elf-virtual-program-header 05 596 68)\n(llvm:elf-virtual-program-header 04 69080 480)\n(llvm:elf-virtual-program-header 03 69064 632)\n(llvm:elf-virtual-program-header 02 0 2100)\n(llvm:elf-virtual-program-header 01 568 27)\n(llvm:elf-virtual-program-header 00 64 504)\n(llvm:entry-point 1536)\n(llvm:name-reference 69656 abort)\n(llvm:name-reference 69648 __gmon_start__)\n(llvm:name-reference 69640 __cxa_finalize)\n(llvm:name-reference 69632 __libc_start_main)\n(llvm:name-reference 69600 _ITM_registerTMCloneTable)\n(llvm:name-reference 69584 __gmon_start__)\n(llvm:name-reference 69576 __cxa_finalize)\n(llvm:name-reference 69568 _ITM_deregisterTMCloneTable)\n(llvm:section-entry .shstrtab 0 259 6954)\n(llvm:section-entry .strtab 0 578 6376)\n(llvm:section-entry .symtab 0 2160 4216)\n(llvm:section-entry .comment 0 71 4144)\n(llvm:section-entry .bss 69680 16 4144)\n(llvm:section-entry .data 69664 16 4128)\n(llvm:section-entry .got.plt 69608 56 4072)\n(llvm:section-entry .got 69560 48 4024)\n(llvm:section-entry .dynamic 69080 480 3544)\n(llvm:section-entry .fini_array 69072 8 3536)\n(llvm:section-entry .init_array 69064 8 3528)\n(llvm:section-entry .eh_frame 1920 180 1920)\n(llvm:section-entry .eh_frame_hdr 1856 60 1856)\n(llvm:section-entry .rodata 1852 4 1852)\n(llvm:section-entry .fini 1832 20 1832)\n(llvm:section-entry .text 1536 296 1536)\n(llvm:section-entry .plt 1440 96 1440)\n(llvm:section-entry .init 1408 24 1408)\n(llvm:section-entry .rela.plt 1312 96 1312)\n(llvm:section-entry .rela.dyn 1120 192 1120)\n(llvm:section-entry .gnu.version_r 1072 48 1072)\n(llvm:section-entry .gnu.version 1054 18 1054)\n(llvm:section-entry .dynstr 912 141 912)\n(llvm:section-entry .dynsym 696 216 696)\n(llvm:section-entry .gnu.hash 664 28 664)\n(llvm:section-entry .note.ABI-tag 632 32 632)\n(llvm:section-entry .note.gnu.build-id 596 36 596)\n(llvm:section-entry .interp 568 27 568)\n(llvm:section-flags .shstrtab true false false)\n(llvm:section-flags .strtab true false false)\n(llvm:section-flags .symtab true false false)\n(llvm:section-flags .comment true false false)\n(llvm:section-flags .bss true true false)\n(llvm:section-flags .data true true false)\n(llvm:section-flags .got.plt true true false)\n(llvm:section-flags .got true true false)\n(llvm:section-flags .dynamic true true false)\n(llvm:section-flags .fini_array true true false)\n(llvm:section-flags .init_array true true false)\n(llvm:section-flags .eh_frame true false false)\n(llvm:section-flags .eh_frame_hdr true false false)\n(llvm:section-flags .rodata true false false)\n(llvm:section-flags .fini true false true)\n(llvm:section-flags .text true false true)\n(llvm:section-flags .plt true false true)\n(llvm:section-flags .init true false true)\n(llvm:section-flags .rela.plt true false false)\n(llvm:section-flags .rela.dyn true false false)\n(llvm:section-flags .gnu.version_r true false false)\n(llvm:section-flags .gnu.version true false false)\n(llvm:section-flags .dynstr true false false)\n(llvm:section-flags .dynsym true false false)\n(llvm:section-flags .gnu.hash true false false)\n(llvm:section-flags .note.ABI-tag true false false)\n(llvm:section-flags .note.gnu.build-id true false false)\n(llvm:section-flags .interp true false false)\n(llvm:symbol-entry abort 0 0 0 0)\n(llvm:symbol-entry __cxa_finalize 0 0 0 0)\n(llvm:symbol-entry __libc_start_main 0 0 0 0)\n(llvm:symbol-entry _init 1408 0 1408 1408)\n(llvm:symbol-entry main 1812 20 1812 1812)\n(llvm:symbol-entry _start 1536 52 1536 1536)\n(llvm:symbol-entry abort@GLIBC_2.17 0 0 0 0)\n(llvm:symbol-entry _fini 1832 0 1832 1832)\n(llvm:symbol-entry __cxa_finalize@GLIBC_2.17 0 0 0 0)\n(llvm:symbol-entry __libc_start_main@GLIBC_2.34 0 0 0 0)\n(llvm:symbol-entry frame_dummy 1808 0 1808 1808)\n(llvm:symbol-entry __do_global_dtors_aux 1728 0 1728 1728)\n(llvm:symbol-entry register_tm_clones 1664 0 1664 1664)\n(llvm:symbol-entry deregister_tm_clones 1616 0 1616 1616)\n(llvm:symbol-entry call_weak_fn 1588 20 1588 1588)\n(mapped 0 2100 0)\n(mapped 69064 616 3528)\n(named-region 0 2100 02)\n(named-region 69064 632 03)\n(named-region 568 27 .interp)\n(named-region 596 36 .note.gnu.build-id)\n(named-region 632 32 .note.ABI-tag)\n(named-region 664 28 .gnu.hash)\n(named-region 696 216 .dynsym)\n(named-region 912 141 .dynstr)\n(named-region 1054 18 .gnu.version)\n(named-region 1072 48 .gnu.version_r)\n(named-region 1120 192 .rela.dyn)\n(named-region 1312 96 .rela.plt)\n(named-region 1408 24 .init)\n(named-region 1440 96 .plt)\n(named-region 1536 296 .text)\n(named-region 1832 20 .fini)\n(named-region 1852 4 .rodata)\n(named-region 1856 60 .eh_frame_hdr)\n(named-region 1920 180 .eh_frame)\n(named-region 69064 8 .init_array)\n(named-region 69072 8 .fini_array)\n(named-region 69080 480 .dynamic)\n(named-region 69560 48 .got)\n(named-region 69608 56 .got.plt)\n(named-region 69664 16 .data)\n(named-region 69680 16 .bss)\n(named-region 0 71 .comment)\n(named-region 0 2160 .symtab)\n(named-region 0 578 .strtab)\n(named-region 0 259 .shstrtab)\n(named-symbol 1588 call_weak_fn)\n(named-symbol 1616 deregister_tm_clones)\n(named-symbol 1664 register_tm_clones)\n(named-symbol 1728 __do_global_dtors_aux)\n(named-symbol 1808 frame_dummy)\n(named-symbol 0 __libc_start_main@GLIBC_2.34)\n(named-symbol 0 __cxa_finalize@GLIBC_2.17)\n(named-symbol 1832 _fini)\n(named-symbol 0 abort@GLIBC_2.17)\n(named-symbol 1536 _start)\n(named-symbol 1812 main)\n(named-symbol 1408 _init)\n(named-symbol 0 __libc_start_main)\n(named-symbol 0 __cxa_finalize)\n(named-symbol 0 abort)\n(require libc.so.6)\n(section 568 27)\n(section 596 36)\n(section 632 32)\n(section 664 28)\n(section 696 216)\n(section 912 141)\n(section 1054 18)\n(section 1072 48)\n(section 1120 192)\n(section 1312 96)\n(section 1408 24)\n(section 1440 96)\n(section 1536 296)\n(section 1832 20)\n(section 1852 4)\n(section 1856 60)\n(section 1920 180)\n(section 69064 8)\n(section 69072 8)\n(section 69080 480)\n(section 69560 48)\n(section 69608 56)\n(section 69664 16)\n(section 69680 16)\n(section 0 71)\n(section 0 2160)\n(section 0 578)\n(section 0 259)\n(segment 0 2100 true false true)\n(segment 69064 632 true true false)\n(subarch v8)\n(symbol-chunk 1588 20 1588)\n(symbol-chunk 1536 52 1536)\n(symbol-chunk 1812 20 1812)\n(symbol-value 1588 1588)\n(symbol-value 1616 1616)\n(symbol-value 1664 1664)\n(symbol-value 1728 1728)\n(symbol-value 1808 1808)\n(symbol-value 1832 1832)\n(symbol-value 1536 1536)\n(symbol-value 1812 1812)\n(symbol-value 1408 1408)\n(symbol-value 0 0)\n(system \"\")\n(vendor \"\")\n"), -Attr("abi-name","\"aarch64-linux-gnu-elf\"")]), -Sections([Section(".shstrtab", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x00\x06\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x30\x1c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x38\x00\x09\x00\x40\x00\x1d\x00\x1c\x00\x06\x00\x00\x00\x04\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x04\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x34\x08\x00\x00\x00\x00\x00\x00\x34\x08\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x01\x00\x00\x00\x06\x00\x00\x00\xc8\x0d\x00\x00\x00\x00\x00\x00\xc8\x0d\x01\x00\x00\x00\x00\x00\xc8\x0d\x01"), -Section(".strtab", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x00\x06\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x30\x1c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x38\x00\x09\x00\x40\x00\x1d\x00\x1c\x00\x06\x00\x00\x00\x04\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x04\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x34\x08\x00\x00\x00\x00\x00\x00\x34\x08\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x01\x00\x00\x00\x06\x00\x00\x00\xc8\x0d\x00\x00\x00\x00\x00\x00\xc8\x0d\x01\x00\x00\x00\x00\x00\xc8\x0d\x01\x00\x00\x00\x00\x00\x68\x02\x00\x00\x00\x00\x00\x00\x78\x02\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x02\x00\x00\x00\x06\x00\x00\x00\xd8\x0d\x00\x00\x00\x00\x00\x00\xd8\x0d\x01\x00\x00\x00\x00\x00\xd8\x0d\x01\x00\x00\x00\x00\x00\xe0\x01\x00\x00\x00\x00\x00\x00\xe0\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x04\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x50\xe5\x74\x64\x04\x00\x00\x00\x40\x07\x00\x00\x00\x00\x00\x00\x40\x07\x00\x00\x00\x00\x00\x00\x40\x07\x00\x00\x00\x00\x00\x00\x3c\x00\x00\x00\x00\x00\x00\x00\x3c\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x51\xe5\x74\x64\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x52\xe5\x74\x64\x04\x00\x00\x00\xc8\x0d\x00\x00\x00\x00\x00\x00\xc8\x0d\x01\x00\x00\x00\x00\x00\xc8\x0d\x01\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x2f\x6c\x69\x62\x2f\x6c\x64\x2d\x6c\x69"), -Section(".comment", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x00\x06\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x30\x1c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x38\x00\x09\x00\x40\x00\x1d\x00\x1c\x00\x06\x00\x00\x00\x04\x00\x00"), -Section(".interp", 0x238, "\x2f\x6c\x69\x62\x2f\x6c\x64\x2d\x6c\x69\x6e\x75\x78\x2d\x61\x61\x72\x63\x68\x36\x34\x2e\x73\x6f\x2e\x31\x00"), -Section(".note.gnu.build-id", 0x254, "\x04\x00\x00\x00\x14\x00\x00\x00\x03\x00\x00\x00\x47\x4e\x55\x00\x21\x65\x88\x8f\x6f\x81\x83\x8a\xbb\x0a\xac\x67\x37\x48\xdd\x71\x16\xe4\x78\x82"), -Section(".note.ABI-tag", 0x278, "\x04\x00\x00\x00\x10\x00\x00\x00\x01\x00\x00\x00\x47\x4e\x55\x00\x00\x00\x00\x00\x03\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00"), -Section(".gnu.hash", 0x298, "\x01\x00\x00\x00\x01\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".dynsym", 0x2B8, "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x0b\x00\x80\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x17\x00\x20\x10\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x48\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x22\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x22\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x73\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".dynstr", 0x390, "\x00\x5f\x5f\x63\x78\x61\x5f\x66\x69\x6e\x61\x6c\x69\x7a\x65\x00\x5f\x5f\x6c\x69\x62\x63\x5f\x73\x74\x61\x72\x74\x5f\x6d\x61\x69\x6e\x00\x61\x62\x6f\x72\x74\x00\x6c\x69\x62\x63\x2e\x73\x6f\x2e\x36\x00\x47\x4c\x49\x42\x43\x5f\x32\x2e\x31\x37\x00\x47\x4c\x49\x42\x43\x5f\x32\x2e\x33\x34\x00\x5f\x49\x54\x4d\x5f\x64\x65\x72\x65\x67\x69\x73\x74\x65\x72\x54\x4d\x43\x6c\x6f\x6e\x65\x54\x61\x62\x6c\x65\x00\x5f\x5f\x67\x6d\x6f\x6e\x5f\x73\x74\x61\x72\x74\x5f\x5f\x00\x5f\x49\x54\x4d\x5f\x72\x65\x67\x69\x73\x74\x65\x72\x54\x4d\x43\x6c\x6f\x6e\x65\x54\x61\x62\x6c\x65\x00"), -Section(".gnu.version", 0x41E, "\x00\x00\x00\x00\x00\x00\x02\x00\x01\x00\x03\x00\x01\x00\x03\x00\x01\x00"), -Section(".gnu.version_r", 0x430, "\x01\x00\x02\x00\x28\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x97\x91\x96\x06\x00\x00\x03\x00\x32\x00\x00\x00\x10\x00\x00\x00\xb4\x91\x96\x06\x00\x00\x02\x00\x3d\x00\x00\x00\x00\x00\x00\x00"), -Section(".rela.dyn", 0x460, "\xc8\x0d\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x10\x07\x00\x00\x00\x00\x00\x00\xd0\x0d\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\xc0\x06\x00\x00\x00\x00\x00\x00\xd8\x0f\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x14\x07\x00\x00\x00\x00\x00\x00\x28\x10\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x28\x10\x01\x00\x00\x00\x00\x00\xc0\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xc8\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xd0\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe0\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".rela.plt", 0x520, "\x00\x10\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x08\x10\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x10\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x18\x10\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".init", 0x580, "\x1f\x20\x03\xd5\xfd\x7b\xbf\xa9\xfd\x03\x00\x91\x2a\x00\x00\x94\xfd\x7b\xc1\xa8\xc0\x03\x5f\xd6"), -Section(".plt", 0x5A0, "\xf0\x7b\xbf\xa9\x90\x00\x00\x90\x11\xfe\x47\xf9\x10\xe2\x3f\x91\x20\x02\x1f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x90\x00\x00\xb0\x11\x02\x40\xf9\x10\x02\x00\x91\x20\x02\x1f\xd6\x90\x00\x00\xb0\x11\x06\x40\xf9\x10\x22\x00\x91\x20\x02\x1f\xd6\x90\x00\x00\xb0\x11\x0a\x40\xf9\x10\x42\x00\x91\x20\x02\x1f\xd6\x90\x00\x00\xb0\x11\x0e\x40\xf9\x10\x62\x00\x91\x20\x02\x1f\xd6"), -Section(".text", 0x600, "\x1f\x20\x03\xd5\x1d\x00\x80\xd2\x1e\x00\x80\xd2\xe5\x03\x00\xaa\xe1\x03\x40\xf9\xe2\x23\x00\x91\xe6\x03\x00\x91\x80\x00\x00\x90\x00\xec\x47\xf9\x03\x00\x80\xd2\x04\x00\x80\xd2\xe5\xff\xff\x97\xf0\xff\xff\x97\x80\x00\x00\x90\x00\xe8\x47\xf9\x40\x00\x00\xb4\xe8\xff\xff\x17\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x80\x00\x00\xb0\x00\xc0\x00\x91\x81\x00\x00\xb0\x21\xc0\x00\x91\x3f\x00\x00\xeb\xc0\x00\x00\x54\x81\x00\x00\x90\x21\xe0\x47\xf9\x61\x00\x00\xb4\xf0\x03\x01\xaa\x00\x02\x1f\xd6\xc0\x03\x5f\xd6\x80\x00\x00\xb0\x00\xc0\x00\x91\x81\x00\x00\xb0\x21\xc0\x00\x91\x21\x00\x00\xcb\x22\xfc\x7f\xd3\x41\x0c\x81\x8b\x21\xfc\x41\x93\xc1\x00\x00\xb4\x82\x00\x00\x90\x42\xf0\x47\xf9\x62\x00\x00\xb4\xf0\x03\x02\xaa\x00\x02\x1f\xd6\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\xfd\x7b\xbe\xa9\xfd\x03\x00\x91\xf3\x0b\x00\xf9\x93\x00\x00\xb0\x60\xc2\x40\x39\x40\x01\x00\x35\x80\x00\x00\x90\x00\xe4\x47\xf9\x80\x00\x00\xb4\x80\x00\x00\xb0\x00\x14\x40\xf9\xb9\xff\xff\x97\xd8\xff\xff\x97\x20\x00\x80\x52\x60\xc2\x00\x39\xf3\x0b\x40\xf9\xfd\x7b\xc2\xa8\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\xdc\xff\xff\x17\xe8\x03\x00\x2a\x89\x00\x00\xb0\xe0\x03\x1f\x2a\x28\x39\x00\xb9\xc0\x03\x5f\xd6"), -Section(".fini", 0x728, "\x1f\x20\x03\xd5\xfd\x7b\xbf\xa9\xfd\x03\x00\x91\xfd\x7b\xc1\xa8\xc0\x03\x5f\xd6"), -Section(".rodata", 0x73C, "\x01\x00\x02\x00"), -Section(".eh_frame_hdr", 0x740, "\x01\x1b\x03\x3b\x3c\x00\x00\x00\x06\x00\x00\x00\xc0\xfe\xff\xff\x54\x00\x00\x00\x10\xff\xff\xff\x68\x00\x00\x00\x40\xff\xff\xff\x7c\x00\x00\x00\x80\xff\xff\xff\x90\x00\x00\x00\xd0\xff\xff\xff\xb4\x00\x00\x00\xd4\xff\xff\xff\xdc\x00\x00\x00"), -Section(".eh_frame", 0x780, "\x10\x00\x00\x00\x00\x00\x00\x00\x01\x7a\x52\x00\x04\x78\x1e\x01\x1b\x0c\x1f\x00\x10\x00\x00\x00\x18\x00\x00\x00\x64\xfe\xff\xff\x34\x00\x00\x00\x00\x41\x07\x1e\x10\x00\x00\x00\x2c\x00\x00\x00\xa0\xfe\xff\xff\x30\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x40\x00\x00\x00\xbc\xfe\xff\xff\x3c\x00\x00\x00\x00\x00\x00\x00\x20\x00\x00\x00\x54\x00\x00\x00\xe8\xfe\xff\xff\x48\x00\x00\x00\x00\x41\x0e\x20\x9d\x04\x9e\x03\x42\x93\x02\x4e\xde\xdd\xd3\x0e\x00\x00\x00\x00\x10\x00\x00\x00\x78\x00\x00\x00\x14\xff\xff\xff\x04\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x01\x7a\x52\x00\x01\x7c\x1e\x01\x1b\x0c\x1f\x00\x10\x00\x00\x00\x18\x00\x00\x00\xf0\xfe\xff\xff\x14\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".fini_array", 0x10DD0, "\xc0\x06\x00\x00\x00\x00\x00\x00"), -Section(".dynamic", 0x10DD8, "\x01\x00\x00\x00\x00\x00\x00\x00\x28\x00\x00\x00\x00\x00\x00\x00\x0c\x00\x00\x00\x00\x00\x00\x00\x80\x05\x00\x00\x00\x00\x00\x00\x0d\x00\x00\x00\x00\x00\x00\x00\x28\x07\x00\x00\x00\x00\x00\x00\x19\x00\x00\x00\x00\x00\x00\x00\xc8\x0d\x01\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x1a\x00\x00\x00\x00\x00\x00\x00\xd0\x0d\x01\x00\x00\x00\x00\x00\x1c\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\xf5\xfe\xff\x6f\x00\x00\x00\x00\x98\x02\x00\x00\x00\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x90\x03\x00\x00\x00\x00\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\xb8\x02\x00\x00\x00\x00\x00\x00\x0a\x00\x00\x00\x00\x00\x00\x00\x8d\x00\x00\x00\x00\x00\x00\x00\x0b\x00\x00\x00\x00\x00\x00\x00\x18\x00\x00\x00\x00\x00\x00\x00\x15\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\xe8\x0f\x01\x00\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x60\x00\x00\x00\x00\x00\x00\x00\x14\x00\x00\x00\x00\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x17\x00\x00\x00\x00\x00\x00\x00\x20\x05\x00\x00\x00\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x60\x04\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\xc0\x00\x00\x00\x00\x00\x00\x00\x09\x00\x00\x00\x00\x00\x00\x00\x18\x00\x00\x00\x00\x00\x00\x00\xfb\xff\xff\x6f\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\xfe\xff\xff\x6f\x00\x00\x00\x00\x30\x04\x00\x00\x00\x00\x00\x00\xff\xff\xff\x6f\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\xf0\xff\xff\x6f\x00\x00\x00\x00\x1e\x04\x00\x00\x00\x00\x00\x00\xf9\xff\xff\x6f\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".init_array", 0x10DC8, "\x10\x07\x00\x00\x00\x00\x00\x00"), -Section(".got", 0x10FB8, "\xd8\x0d\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x14\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".got.plt", 0x10FE8, "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xa0\x05\x00\x00\x00\x00\x00\x00\xa0\x05\x00\x00\x00\x00\x00\x00\xa0\x05\x00\x00\x00\x00\x00\x00\xa0\x05\x00\x00\x00\x00\x00\x00"), -Section(".data", 0x11020, "\x00\x00\x00\x00\x00\x00\x00\x00\x28\x10\x01\x00\x00\x00\x00\x00")]), -Memmap([Annotation(Region(0x0,0x833), Attr("segment","02 0 2100")), -Annotation(Region(0x600,0x633), Attr("symbol","\"_start\"")), -Annotation(Region(0x0,0x102), Attr("section","\".shstrtab\"")), -Annotation(Region(0x0,0x241), Attr("section","\".strtab\"")), -Annotation(Region(0x0,0x46), Attr("section","\".comment\"")), -Annotation(Region(0x238,0x252), Attr("section","\".interp\"")), -Annotation(Region(0x254,0x277), Attr("section","\".note.gnu.build-id\"")), -Annotation(Region(0x278,0x297), Attr("section","\".note.ABI-tag\"")), -Annotation(Region(0x298,0x2B3), Attr("section","\".gnu.hash\"")), -Annotation(Region(0x2B8,0x38F), Attr("section","\".dynsym\"")), -Annotation(Region(0x390,0x41C), Attr("section","\".dynstr\"")), -Annotation(Region(0x41E,0x42F), Attr("section","\".gnu.version\"")), -Annotation(Region(0x430,0x45F), Attr("section","\".gnu.version_r\"")), -Annotation(Region(0x460,0x51F), Attr("section","\".rela.dyn\"")), -Annotation(Region(0x520,0x57F), Attr("section","\".rela.plt\"")), -Annotation(Region(0x580,0x597), Attr("section","\".init\"")), -Annotation(Region(0x5A0,0x5FF), Attr("section","\".plt\"")), -Annotation(Region(0x580,0x597), Attr("code-region","()")), -Annotation(Region(0x5A0,0x5FF), Attr("code-region","()")), -Annotation(Region(0x600,0x633), Attr("symbol-info","_start 0x600 52")), -Annotation(Region(0x634,0x647), Attr("symbol","\"call_weak_fn\"")), -Annotation(Region(0x634,0x647), Attr("symbol-info","call_weak_fn 0x634 20")), -Annotation(Region(0x600,0x727), Attr("section","\".text\"")), -Annotation(Region(0x600,0x727), Attr("code-region","()")), -Annotation(Region(0x714,0x727), Attr("symbol","\"main\"")), -Annotation(Region(0x714,0x727), Attr("symbol-info","main 0x714 20")), -Annotation(Region(0x728,0x73B), Attr("section","\".fini\"")), -Annotation(Region(0x728,0x73B), Attr("code-region","()")), -Annotation(Region(0x73C,0x73F), Attr("section","\".rodata\"")), -Annotation(Region(0x740,0x77B), Attr("section","\".eh_frame_hdr\"")), -Annotation(Region(0x780,0x833), Attr("section","\".eh_frame\"")), -Annotation(Region(0x10DC8,0x1102F), Attr("segment","03 0x10DC8 632")), -Annotation(Region(0x10DD0,0x10DD7), Attr("section","\".fini_array\"")), -Annotation(Region(0x10DD8,0x10FB7), Attr("section","\".dynamic\"")), -Annotation(Region(0x10DC8,0x10DCF), Attr("section","\".init_array\"")), -Annotation(Region(0x10FB8,0x10FE7), Attr("section","\".got\"")), -Annotation(Region(0x10FE8,0x1101F), Attr("section","\".got.plt\"")), -Annotation(Region(0x11020,0x1102F), Attr("section","\".data\""))]), -Program(Tid(1_418, "%0000058a"), Attrs([]), - Subs([Sub(Tid(1_368, "@__cxa_finalize"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x5D0"), -Attr("stub","()")]), "__cxa_finalize", Args([Arg(Tid(1_419, "%0000058b"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("__cxa_finalize_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(786, "@__cxa_finalize"), - Attrs([Attr("address","0x5D0")]), Phis([]), -Defs([Def(Tid(1_034, "%0000040a"), Attrs([Attr("address","0x5D0"), -Attr("insn","adrp x16, #69632")]), Var("R16",Imm(64)), Int(69632,64)), -Def(Tid(1_041, "%00000411"), Attrs([Attr("address","0x5D4"), -Attr("insn","ldr x17, [x16, #0x8]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(1_047, "%00000417"), Attrs([Attr("address","0x5D8"), -Attr("insn","add x16, x16, #0x8")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(8,64)))]), Jmps([Call(Tid(1_052, "%0000041c"), - Attrs([Attr("address","0x5DC"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), -Sub(Tid(1_369, "@__do_global_dtors_aux"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x6C0")]), - "__do_global_dtors_aux", Args([Arg(Tid(1_420, "%0000058c"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("__do_global_dtors_aux_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(610, "@__do_global_dtors_aux"), - Attrs([Attr("address","0x6C0")]), Phis([]), Defs([Def(Tid(614, "%00000266"), - Attrs([Attr("address","0x6C0"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("#3",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(18446744073709551584,64))), -Def(Tid(620, "%0000026c"), Attrs([Attr("address","0x6C0"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("#3",Imm(64)),Var("R29",Imm(64)),LittleEndian(),64)), -Def(Tid(626, "%00000272"), Attrs([Attr("address","0x6C0"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("#3",Imm(64)),Int(8,64)),Var("R30",Imm(64)),LittleEndian(),64)), -Def(Tid(630, "%00000276"), Attrs([Attr("address","0x6C0"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("R31",Imm(64)), -Var("#3",Imm(64))), Def(Tid(636, "%0000027c"), - Attrs([Attr("address","0x6C4"), Attr("insn","mov x29, sp")]), - Var("R29",Imm(64)), Var("R31",Imm(64))), Def(Tid(644, "%00000284"), - Attrs([Attr("address","0x6C8"), Attr("insn","str x19, [sp, #0x10]")]), - Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(16,64)),Var("R19",Imm(64)),LittleEndian(),64)), -Def(Tid(649, "%00000289"), Attrs([Attr("address","0x6CC"), -Attr("insn","adrp x19, #69632")]), Var("R19",Imm(64)), Int(69632,64)), -Def(Tid(656, "%00000290"), Attrs([Attr("address","0x6D0"), -Attr("insn","ldrb w0, [x19, #0x30]")]), Var("R0",Imm(64)), -UNSIGNED(64,Load(Var("mem",Mem(64,8)),PLUS(Var("R19",Imm(64)),Int(48,64)),LittleEndian(),8)))]), -Jmps([Goto(Tid(663, "%00000297"), Attrs([Attr("address","0x6D4"), -Attr("insn","cbnz w0, #0x28")]), - NEQ(Extract(31,0,Var("R0",Imm(64))),Int(0,32)), -Direct(Tid(661, "%00000295"))), Goto(Tid(1_408, "%00000580"), Attrs([]), - Int(1,1), Direct(Tid(731, "%000002db")))])), Blk(Tid(731, "%000002db"), - Attrs([Attr("address","0x6D8")]), Phis([]), Defs([Def(Tid(734, "%000002de"), - Attrs([Attr("address","0x6D8"), Attr("insn","adrp x0, #65536")]), - Var("R0",Imm(64)), Int(65536,64)), Def(Tid(741, "%000002e5"), - Attrs([Attr("address","0x6DC"), Attr("insn","ldr x0, [x0, #0xfc8]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(4040,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(747, "%000002eb"), Attrs([Attr("address","0x6E0"), -Attr("insn","cbz x0, #0x10")]), EQ(Var("R0",Imm(64)),Int(0,64)), -Direct(Tid(745, "%000002e9"))), Goto(Tid(1_409, "%00000581"), Attrs([]), - Int(1,1), Direct(Tid(770, "%00000302")))])), Blk(Tid(770, "%00000302"), - Attrs([Attr("address","0x6E4")]), Phis([]), Defs([Def(Tid(773, "%00000305"), - Attrs([Attr("address","0x6E4"), Attr("insn","adrp x0, #69632")]), - Var("R0",Imm(64)), Int(69632,64)), Def(Tid(780, "%0000030c"), - Attrs([Attr("address","0x6E8"), Attr("insn","ldr x0, [x0, #0x28]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(40,64)),LittleEndian(),64)), -Def(Tid(785, "%00000311"), Attrs([Attr("address","0x6EC"), -Attr("insn","bl #-0x11c")]), Var("R30",Imm(64)), Int(1776,64))]), -Jmps([Call(Tid(788, "%00000314"), Attrs([Attr("address","0x6EC"), -Attr("insn","bl #-0x11c")]), Int(1,1), -(Direct(Tid(1_368, "@__cxa_finalize")),Direct(Tid(745, "%000002e9"))))])), -Blk(Tid(745, "%000002e9"), Attrs([Attr("address","0x6F0")]), Phis([]), -Defs([Def(Tid(753, "%000002f1"), Attrs([Attr("address","0x6F0"), -Attr("insn","bl #-0xa0")]), Var("R30",Imm(64)), Int(1780,64))]), -Jmps([Call(Tid(755, "%000002f3"), Attrs([Attr("address","0x6F0"), -Attr("insn","bl #-0xa0")]), Int(1,1), -(Direct(Tid(1_382, "@deregister_tm_clones")),Direct(Tid(757, "%000002f5"))))])), -Blk(Tid(757, "%000002f5"), Attrs([Attr("address","0x6F4")]), Phis([]), -Defs([Def(Tid(760, "%000002f8"), Attrs([Attr("address","0x6F4"), -Attr("insn","mov w0, #0x1")]), Var("R0",Imm(64)), Int(1,64)), -Def(Tid(768, "%00000300"), Attrs([Attr("address","0x6F8"), -Attr("insn","strb w0, [x19, #0x30]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R19",Imm(64)),Int(48,64)),Extract(7,0,Var("R0",Imm(64))),LittleEndian(),8))]), -Jmps([Goto(Tid(1_410, "%00000582"), Attrs([]), Int(1,1), -Direct(Tid(661, "%00000295")))])), Blk(Tid(661, "%00000295"), - Attrs([Attr("address","0x6FC")]), Phis([]), Defs([Def(Tid(671, "%0000029f"), - Attrs([Attr("address","0x6FC"), Attr("insn","ldr x19, [sp, #0x10]")]), - Var("R19",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(16,64)),LittleEndian(),64)), -Def(Tid(678, "%000002a6"), Attrs([Attr("address","0x700"), -Attr("insn","ldp x29, x30, [sp], #0x20")]), Var("R29",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(683, "%000002ab"), Attrs([Attr("address","0x700"), -Attr("insn","ldp x29, x30, [sp], #0x20")]), Var("R30",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(687, "%000002af"), Attrs([Attr("address","0x700"), -Attr("insn","ldp x29, x30, [sp], #0x20")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(32,64)))]), Jmps([Call(Tid(692, "%000002b4"), - Attrs([Attr("address","0x704"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), Sub(Tid(1_373, "@__libc_start_main"), - Attrs([Attr("c.proto","signed (*)(signed (*)(signed , char** , char** );* main, signed , char** , \nvoid* auxv)"), -Attr("address","0x5C0"), Attr("stub","()")]), "__libc_start_main", - Args([Arg(Tid(1_421, "%0000058d"), - Attrs([Attr("c.layout","**[ : 64]"), -Attr("c.data","Top:u64 ptr ptr"), -Attr("c.type","signed (*)(signed , char** , char** );*")]), - Var("__libc_start_main_main",Imm(64)), Var("R0",Imm(64)), In()), -Arg(Tid(1_422, "%0000058e"), Attrs([Attr("c.layout","[signed : 32]"), -Attr("c.data","Top:u32"), Attr("c.type","signed")]), - Var("__libc_start_main_arg2",Imm(32)), LOW(32,Var("R1",Imm(64))), In()), -Arg(Tid(1_423, "%0000058f"), Attrs([Attr("c.layout","**[char : 8]"), -Attr("c.data","Top:u8 ptr ptr"), Attr("c.type","char**")]), - Var("__libc_start_main_arg3",Imm(64)), Var("R2",Imm(64)), Both()), -Arg(Tid(1_424, "%00000590"), Attrs([Attr("c.layout","*[ : 8]"), -Attr("c.data","{} ptr"), Attr("c.type","void*")]), - Var("__libc_start_main_auxv",Imm(64)), Var("R3",Imm(64)), Both()), -Arg(Tid(1_425, "%00000591"), Attrs([Attr("c.layout","[signed : 32]"), -Attr("c.data","Top:u32"), Attr("c.type","signed")]), - Var("__libc_start_main_result",Imm(32)), LOW(32,Var("R0",Imm(64))), -Out())]), Blks([Blk(Tid(443, "@__libc_start_main"), - Attrs([Attr("address","0x5C0")]), Phis([]), -Defs([Def(Tid(1_012, "%000003f4"), Attrs([Attr("address","0x5C0"), -Attr("insn","adrp x16, #69632")]), Var("R16",Imm(64)), Int(69632,64)), -Def(Tid(1_019, "%000003fb"), Attrs([Attr("address","0x5C4"), -Attr("insn","ldr x17, [x16]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R16",Imm(64)),LittleEndian(),64)), -Def(Tid(1_025, "%00000401"), Attrs([Attr("address","0x5C8"), -Attr("insn","add x16, x16, #0x0")]), Var("R16",Imm(64)), -Var("R16",Imm(64)))]), Jmps([Call(Tid(1_030, "%00000406"), - Attrs([Attr("address","0x5CC"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), Sub(Tid(1_374, "@_fini"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x728")]), - "_fini", Args([Arg(Tid(1_426, "%00000592"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("_fini_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(31, "@_fini"), - Attrs([Attr("address","0x728")]), Phis([]), Defs([Def(Tid(37, "%00000025"), - Attrs([Attr("address","0x72C"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("#0",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(18446744073709551600,64))), -Def(Tid(43, "%0000002b"), Attrs([Attr("address","0x72C"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("#0",Imm(64)),Var("R29",Imm(64)),LittleEndian(),64)), -Def(Tid(49, "%00000031"), Attrs([Attr("address","0x72C"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("#0",Imm(64)),Int(8,64)),Var("R30",Imm(64)),LittleEndian(),64)), -Def(Tid(53, "%00000035"), Attrs([Attr("address","0x72C"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("R31",Imm(64)), -Var("#0",Imm(64))), Def(Tid(59, "%0000003b"), Attrs([Attr("address","0x730"), -Attr("insn","mov x29, sp")]), Var("R29",Imm(64)), Var("R31",Imm(64))), -Def(Tid(66, "%00000042"), Attrs([Attr("address","0x734"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R29",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(71, "%00000047"), Attrs([Attr("address","0x734"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R30",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(75, "%0000004b"), Attrs([Attr("address","0x734"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(16,64)))]), Jmps([Call(Tid(80, "%00000050"), - Attrs([Attr("address","0x738"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), Sub(Tid(1_375, "@_init"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x580")]), - "_init", Args([Arg(Tid(1_427, "%00000593"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("_init_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(1_205, "@_init"), - Attrs([Attr("address","0x580")]), Phis([]), -Defs([Def(Tid(1_211, "%000004bb"), Attrs([Attr("address","0x584"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("#5",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(18446744073709551600,64))), -Def(Tid(1_217, "%000004c1"), Attrs([Attr("address","0x584"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("#5",Imm(64)),Var("R29",Imm(64)),LittleEndian(),64)), -Def(Tid(1_223, "%000004c7"), Attrs([Attr("address","0x584"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("#5",Imm(64)),Int(8,64)),Var("R30",Imm(64)),LittleEndian(),64)), -Def(Tid(1_227, "%000004cb"), Attrs([Attr("address","0x584"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("R31",Imm(64)), -Var("#5",Imm(64))), Def(Tid(1_233, "%000004d1"), - Attrs([Attr("address","0x588"), Attr("insn","mov x29, sp")]), - Var("R29",Imm(64)), Var("R31",Imm(64))), Def(Tid(1_238, "%000004d6"), - Attrs([Attr("address","0x58C"), Attr("insn","bl #0xa8")]), - Var("R30",Imm(64)), Int(1424,64))]), Jmps([Call(Tid(1_240, "%000004d8"), - Attrs([Attr("address","0x58C"), Attr("insn","bl #0xa8")]), Int(1,1), -(Direct(Tid(1_380, "@call_weak_fn")),Direct(Tid(1_242, "%000004da"))))])), -Blk(Tid(1_242, "%000004da"), Attrs([Attr("address","0x590")]), Phis([]), -Defs([Def(Tid(1_247, "%000004df"), Attrs([Attr("address","0x590"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R29",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(1_252, "%000004e4"), Attrs([Attr("address","0x590"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R30",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(1_256, "%000004e8"), Attrs([Attr("address","0x590"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(16,64)))]), Jmps([Call(Tid(1_261, "%000004ed"), - Attrs([Attr("address","0x594"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), Sub(Tid(1_376, "@_start"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x600"), -Attr("stub","()"), Attr("entry-point","()")]), "_start", - Args([Arg(Tid(1_428, "%00000594"), Attrs([Attr("c.layout","[signed : 32]"), -Attr("c.data","Top:u32"), Attr("c.type","signed")]), - Var("_start_result",Imm(32)), LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(380, "@_start"), Attrs([Attr("address","0x600")]), Phis([]), -Defs([Def(Tid(385, "%00000181"), Attrs([Attr("address","0x604"), -Attr("insn","mov x29, #0x0")]), Var("R29",Imm(64)), Int(0,64)), -Def(Tid(390, "%00000186"), Attrs([Attr("address","0x608"), -Attr("insn","mov x30, #0x0")]), Var("R30",Imm(64)), Int(0,64)), -Def(Tid(396, "%0000018c"), Attrs([Attr("address","0x60C"), -Attr("insn","mov x5, x0")]), Var("R5",Imm(64)), Var("R0",Imm(64))), -Def(Tid(403, "%00000193"), Attrs([Attr("address","0x610"), -Attr("insn","ldr x1, [sp]")]), Var("R1",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(409, "%00000199"), Attrs([Attr("address","0x614"), -Attr("insn","add x2, sp, #0x8")]), Var("R2",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(8,64))), Def(Tid(415, "%0000019f"), - Attrs([Attr("address","0x618"), Attr("insn","mov x6, sp")]), - Var("R6",Imm(64)), Var("R31",Imm(64))), Def(Tid(420, "%000001a4"), - Attrs([Attr("address","0x61C"), Attr("insn","adrp x0, #65536")]), - Var("R0",Imm(64)), Int(65536,64)), Def(Tid(427, "%000001ab"), - Attrs([Attr("address","0x620"), Attr("insn","ldr x0, [x0, #0xfd8]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(4056,64)),LittleEndian(),64)), -Def(Tid(432, "%000001b0"), Attrs([Attr("address","0x624"), -Attr("insn","mov x3, #0x0")]), Var("R3",Imm(64)), Int(0,64)), -Def(Tid(437, "%000001b5"), Attrs([Attr("address","0x628"), -Attr("insn","mov x4, #0x0")]), Var("R4",Imm(64)), Int(0,64)), -Def(Tid(442, "%000001ba"), Attrs([Attr("address","0x62C"), -Attr("insn","bl #-0x6c")]), Var("R30",Imm(64)), Int(1584,64))]), -Jmps([Call(Tid(445, "%000001bd"), Attrs([Attr("address","0x62C"), -Attr("insn","bl #-0x6c")]), Int(1,1), -(Direct(Tid(1_373, "@__libc_start_main")),Direct(Tid(447, "%000001bf"))))])), -Blk(Tid(447, "%000001bf"), Attrs([Attr("address","0x630")]), Phis([]), -Defs([Def(Tid(450, "%000001c2"), Attrs([Attr("address","0x630"), -Attr("insn","bl #-0x40")]), Var("R30",Imm(64)), Int(1588,64))]), -Jmps([Call(Tid(453, "%000001c5"), Attrs([Attr("address","0x630"), -Attr("insn","bl #-0x40")]), Int(1,1), -(Direct(Tid(1_379, "@abort")),Direct(Tid(1_411, "%00000583"))))])), -Blk(Tid(1_411, "%00000583"), Attrs([]), Phis([]), Defs([]), -Jmps([Call(Tid(1_412, "%00000584"), Attrs([]), Int(1,1), -(Direct(Tid(1_380, "@call_weak_fn")),))]))])), Sub(Tid(1_379, "@abort"), - Attrs([Attr("noreturn","()"), Attr("c.proto","void (*)(void)"), -Attr("address","0x5F0"), Attr("stub","()")]), "abort", Args([]), -Blks([Blk(Tid(451, "@abort"), Attrs([Attr("address","0x5F0")]), Phis([]), -Defs([Def(Tid(1_078, "%00000436"), Attrs([Attr("address","0x5F0"), -Attr("insn","adrp x16, #69632")]), Var("R16",Imm(64)), Int(69632,64)), -Def(Tid(1_085, "%0000043d"), Attrs([Attr("address","0x5F4"), -Attr("insn","ldr x17, [x16, #0x18]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(24,64)),LittleEndian(),64)), -Def(Tid(1_091, "%00000443"), Attrs([Attr("address","0x5F8"), -Attr("insn","add x16, x16, #0x18")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(24,64)))]), Jmps([Call(Tid(1_096, "%00000448"), - Attrs([Attr("address","0x5FC"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), Sub(Tid(1_380, "@call_weak_fn"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x634")]), - "call_weak_fn", Args([Arg(Tid(1_429, "%00000595"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("call_weak_fn_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(455, "@call_weak_fn"), - Attrs([Attr("address","0x634")]), Phis([]), Defs([Def(Tid(458, "%000001ca"), - Attrs([Attr("address","0x634"), Attr("insn","adrp x0, #65536")]), - Var("R0",Imm(64)), Int(65536,64)), Def(Tid(465, "%000001d1"), - Attrs([Attr("address","0x638"), Attr("insn","ldr x0, [x0, #0xfd0]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(4048,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(471, "%000001d7"), Attrs([Attr("address","0x63C"), -Attr("insn","cbz x0, #0x8")]), EQ(Var("R0",Imm(64)),Int(0,64)), -Direct(Tid(469, "%000001d5"))), Goto(Tid(1_413, "%00000585"), Attrs([]), - Int(1,1), Direct(Tid(850, "%00000352")))])), Blk(Tid(469, "%000001d5"), - Attrs([Attr("address","0x644")]), Phis([]), Defs([]), -Jmps([Call(Tid(477, "%000001dd"), Attrs([Attr("address","0x644"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))])), -Blk(Tid(850, "%00000352"), Attrs([Attr("address","0x640")]), Phis([]), -Defs([]), Jmps([Goto(Tid(853, "%00000355"), Attrs([Attr("address","0x640"), -Attr("insn","b #-0x60")]), Int(1,1), Direct(Tid(851, "@__gmon_start__")))])), -Blk(Tid(851, "@__gmon_start__"), Attrs([Attr("address","0x5E0")]), Phis([]), -Defs([Def(Tid(1_056, "%00000420"), Attrs([Attr("address","0x5E0"), -Attr("insn","adrp x16, #69632")]), Var("R16",Imm(64)), Int(69632,64)), -Def(Tid(1_063, "%00000427"), Attrs([Attr("address","0x5E4"), -Attr("insn","ldr x17, [x16, #0x10]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(16,64)),LittleEndian(),64)), -Def(Tid(1_069, "%0000042d"), Attrs([Attr("address","0x5E8"), -Attr("insn","add x16, x16, #0x10")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(16,64)))]), Jmps([Call(Tid(1_074, "%00000432"), - Attrs([Attr("address","0x5EC"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), -Sub(Tid(1_382, "@deregister_tm_clones"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x650")]), - "deregister_tm_clones", Args([Arg(Tid(1_430, "%00000596"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("deregister_tm_clones_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(483, "@deregister_tm_clones"), - Attrs([Attr("address","0x650")]), Phis([]), Defs([Def(Tid(486, "%000001e6"), - Attrs([Attr("address","0x650"), Attr("insn","adrp x0, #69632")]), - Var("R0",Imm(64)), Int(69632,64)), Def(Tid(492, "%000001ec"), - Attrs([Attr("address","0x654"), Attr("insn","add x0, x0, #0x30")]), - Var("R0",Imm(64)), PLUS(Var("R0",Imm(64)),Int(48,64))), -Def(Tid(497, "%000001f1"), Attrs([Attr("address","0x658"), -Attr("insn","adrp x1, #69632")]), Var("R1",Imm(64)), Int(69632,64)), -Def(Tid(503, "%000001f7"), Attrs([Attr("address","0x65C"), -Attr("insn","add x1, x1, #0x30")]), Var("R1",Imm(64)), -PLUS(Var("R1",Imm(64)),Int(48,64))), Def(Tid(509, "%000001fd"), - Attrs([Attr("address","0x660"), Attr("insn","cmp x1, x0")]), - Var("#1",Imm(64)), NOT(Var("R0",Imm(64)))), Def(Tid(514, "%00000202"), - Attrs([Attr("address","0x660"), Attr("insn","cmp x1, x0")]), - Var("#2",Imm(64)), PLUS(Var("R1",Imm(64)),NOT(Var("R0",Imm(64))))), -Def(Tid(520, "%00000208"), Attrs([Attr("address","0x660"), -Attr("insn","cmp x1, x0")]), Var("VF",Imm(1)), -NEQ(SIGNED(65,PLUS(Var("#2",Imm(64)),Int(1,64))),PLUS(PLUS(SIGNED(65,Var("R1",Imm(64))),SIGNED(65,Var("#1",Imm(64)))),Int(1,65)))), -Def(Tid(526, "%0000020e"), Attrs([Attr("address","0x660"), -Attr("insn","cmp x1, x0")]), Var("CF",Imm(1)), -NEQ(UNSIGNED(65,PLUS(Var("#2",Imm(64)),Int(1,64))),PLUS(PLUS(UNSIGNED(65,Var("R1",Imm(64))),UNSIGNED(65,Var("#1",Imm(64)))),Int(1,65)))), -Def(Tid(530, "%00000212"), Attrs([Attr("address","0x660"), -Attr("insn","cmp x1, x0")]), Var("ZF",Imm(1)), -EQ(PLUS(Var("#2",Imm(64)),Int(1,64)),Int(0,64))), Def(Tid(534, "%00000216"), - Attrs([Attr("address","0x660"), Attr("insn","cmp x1, x0")]), - Var("NF",Imm(1)), Extract(63,63,PLUS(Var("#2",Imm(64)),Int(1,64))))]), -Jmps([Goto(Tid(540, "%0000021c"), Attrs([Attr("address","0x664"), -Attr("insn","b.eq #0x18")]), EQ(Var("ZF",Imm(1)),Int(1,1)), -Direct(Tid(538, "%0000021a"))), Goto(Tid(1_414, "%00000586"), Attrs([]), - Int(1,1), Direct(Tid(820, "%00000334")))])), Blk(Tid(820, "%00000334"), - Attrs([Attr("address","0x668")]), Phis([]), Defs([Def(Tid(823, "%00000337"), - Attrs([Attr("address","0x668"), Attr("insn","adrp x1, #65536")]), - Var("R1",Imm(64)), Int(65536,64)), Def(Tid(830, "%0000033e"), - Attrs([Attr("address","0x66C"), Attr("insn","ldr x1, [x1, #0xfc0]")]), - Var("R1",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R1",Imm(64)),Int(4032,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(835, "%00000343"), Attrs([Attr("address","0x670"), -Attr("insn","cbz x1, #0xc")]), EQ(Var("R1",Imm(64)),Int(0,64)), -Direct(Tid(538, "%0000021a"))), Goto(Tid(1_415, "%00000587"), Attrs([]), - Int(1,1), Direct(Tid(839, "%00000347")))])), Blk(Tid(538, "%0000021a"), - Attrs([Attr("address","0x67C")]), Phis([]), Defs([]), -Jmps([Call(Tid(546, "%00000222"), Attrs([Attr("address","0x67C"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))])), -Blk(Tid(839, "%00000347"), Attrs([Attr("address","0x674")]), Phis([]), -Defs([Def(Tid(843, "%0000034b"), Attrs([Attr("address","0x674"), -Attr("insn","mov x16, x1")]), Var("R16",Imm(64)), Var("R1",Imm(64)))]), -Jmps([Call(Tid(848, "%00000350"), Attrs([Attr("address","0x678"), -Attr("insn","br x16")]), Int(1,1), (Indirect(Var("R16",Imm(64))),))]))])), -Sub(Tid(1_385, "@frame_dummy"), Attrs([Attr("c.proto","signed (*)(void)"), -Attr("address","0x710")]), "frame_dummy", Args([Arg(Tid(1_431, "%00000597"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("frame_dummy_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(698, "@frame_dummy"), - Attrs([Attr("address","0x710")]), Phis([]), Defs([]), -Jmps([Call(Tid(700, "%000002bc"), Attrs([Attr("address","0x710"), -Attr("insn","b #-0x90")]), Int(1,1), -(Direct(Tid(1_387, "@register_tm_clones")),))]))])), Sub(Tid(1_386, "@main"), - Attrs([Attr("c.proto","signed (*)(signed argc, const char** argv)"), -Attr("address","0x714")]), "main", Args([Arg(Tid(1_432, "%00000598"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("main_argc",Imm(32)), -LOW(32,Var("R0",Imm(64))), In()), Arg(Tid(1_433, "%00000599"), - Attrs([Attr("c.layout","**[char : 8]"), Attr("c.data","Top:u8 ptr ptr"), -Attr("c.type"," const char**")]), Var("main_argv",Imm(64)), -Var("R1",Imm(64)), Both()), Arg(Tid(1_434, "%0000059a"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("main_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(702, "@main"), - Attrs([Attr("address","0x714")]), Phis([]), Defs([Def(Tid(706, "%000002c2"), - Attrs([Attr("address","0x714"), Attr("insn","mov w8, w0")]), - Var("R8",Imm(64)), UNSIGNED(64,Extract(31,0,Var("R0",Imm(64))))), -Def(Tid(711, "%000002c7"), Attrs([Attr("address","0x718"), -Attr("insn","adrp x9, #69632")]), Var("R9",Imm(64)), Int(69632,64)), -Def(Tid(716, "%000002cc"), Attrs([Attr("address","0x71C"), -Attr("insn","mov w0, wzr")]), Var("R0",Imm(64)), Int(0,64)), -Def(Tid(724, "%000002d4"), Attrs([Attr("address","0x720"), -Attr("insn","str w8, [x9, #0x38]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R9",Imm(64)),Int(56,64)),Extract(31,0,Var("R8",Imm(64))),LittleEndian(),32))]), -Jmps([Call(Tid(729, "%000002d9"), Attrs([Attr("address","0x724"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))]))])), -Sub(Tid(1_387, "@register_tm_clones"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x680")]), - "register_tm_clones", Args([Arg(Tid(1_435, "%0000059b"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("register_tm_clones_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(548, "@register_tm_clones"), Attrs([Attr("address","0x680")]), - Phis([]), Defs([Def(Tid(551, "%00000227"), Attrs([Attr("address","0x680"), -Attr("insn","adrp x0, #69632")]), Var("R0",Imm(64)), Int(69632,64)), -Def(Tid(557, "%0000022d"), Attrs([Attr("address","0x684"), -Attr("insn","add x0, x0, #0x30")]), Var("R0",Imm(64)), -PLUS(Var("R0",Imm(64)),Int(48,64))), Def(Tid(562, "%00000232"), - Attrs([Attr("address","0x688"), Attr("insn","adrp x1, #69632")]), - Var("R1",Imm(64)), Int(69632,64)), Def(Tid(568, "%00000238"), - Attrs([Attr("address","0x68C"), Attr("insn","add x1, x1, #0x30")]), - Var("R1",Imm(64)), PLUS(Var("R1",Imm(64)),Int(48,64))), -Def(Tid(575, "%0000023f"), Attrs([Attr("address","0x690"), -Attr("insn","sub x1, x1, x0")]), Var("R1",Imm(64)), -PLUS(PLUS(Var("R1",Imm(64)),NOT(Var("R0",Imm(64)))),Int(1,64))), -Def(Tid(581, "%00000245"), Attrs([Attr("address","0x694"), -Attr("insn","lsr x2, x1, #63")]), Var("R2",Imm(64)), -Concat(Int(0,63),Extract(63,63,Var("R1",Imm(64))))), -Def(Tid(588, "%0000024c"), Attrs([Attr("address","0x698"), -Attr("insn","add x1, x2, x1, asr #3")]), Var("R1",Imm(64)), -PLUS(Var("R2",Imm(64)),ARSHIFT(Var("R1",Imm(64)),Int(3,3)))), -Def(Tid(594, "%00000252"), Attrs([Attr("address","0x69C"), -Attr("insn","asr x1, x1, #1")]), Var("R1",Imm(64)), -SIGNED(64,Extract(63,1,Var("R1",Imm(64)))))]), -Jmps([Goto(Tid(600, "%00000258"), Attrs([Attr("address","0x6A0"), -Attr("insn","cbz x1, #0x18")]), EQ(Var("R1",Imm(64)),Int(0,64)), -Direct(Tid(598, "%00000256"))), Goto(Tid(1_416, "%00000588"), Attrs([]), - Int(1,1), Direct(Tid(790, "%00000316")))])), Blk(Tid(790, "%00000316"), - Attrs([Attr("address","0x6A4")]), Phis([]), Defs([Def(Tid(793, "%00000319"), - Attrs([Attr("address","0x6A4"), Attr("insn","adrp x2, #65536")]), - Var("R2",Imm(64)), Int(65536,64)), Def(Tid(800, "%00000320"), - Attrs([Attr("address","0x6A8"), Attr("insn","ldr x2, [x2, #0xfe0]")]), - Var("R2",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R2",Imm(64)),Int(4064,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(805, "%00000325"), Attrs([Attr("address","0x6AC"), -Attr("insn","cbz x2, #0xc")]), EQ(Var("R2",Imm(64)),Int(0,64)), -Direct(Tid(598, "%00000256"))), Goto(Tid(1_417, "%00000589"), Attrs([]), - Int(1,1), Direct(Tid(809, "%00000329")))])), Blk(Tid(598, "%00000256"), - Attrs([Attr("address","0x6B8")]), Phis([]), Defs([]), -Jmps([Call(Tid(606, "%0000025e"), Attrs([Attr("address","0x6B8"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))])), -Blk(Tid(809, "%00000329"), Attrs([Attr("address","0x6B0")]), Phis([]), -Defs([Def(Tid(813, "%0000032d"), Attrs([Attr("address","0x6B0"), -Attr("insn","mov x16, x2")]), Var("R16",Imm(64)), Var("R2",Imm(64)))]), -Jmps([Call(Tid(818, "%00000332"), Attrs([Attr("address","0x6B4"), -Attr("insn","br x16")]), Int(1,1), -(Indirect(Var("R16",Imm(64))),))]))]))]))) \ No newline at end of file diff --git a/src/test/correct/basic_arrays_write/clang_O2/basic_arrays_write.bir b/src/test/correct/basic_arrays_write/clang_O2/basic_arrays_write.bir deleted file mode 100644 index d721059b2..000000000 --- a/src/test/correct/basic_arrays_write/clang_O2/basic_arrays_write.bir +++ /dev/null @@ -1,227 +0,0 @@ -0000058a: program -00000558: sub __cxa_finalize(__cxa_finalize_result) -0000058b: __cxa_finalize_result :: out u32 = low:32[R0] - -00000312: -0000040a: R16 := 0x11000 -00000411: R17 := mem[R16 + 8, el]:u64 -00000417: R16 := R16 + 8 -0000041c: call R17 with noreturn - -00000559: sub __do_global_dtors_aux(__do_global_dtors_aux_result) -0000058c: __do_global_dtors_aux_result :: out u32 = low:32[R0] - -00000262: -00000266: #3 := R31 - 0x20 -0000026c: mem := mem with [#3, el]:u64 <- R29 -00000272: mem := mem with [#3 + 8, el]:u64 <- R30 -00000276: R31 := #3 -0000027c: R29 := R31 -00000284: mem := mem with [R31 + 0x10, el]:u64 <- R19 -00000289: R19 := 0x11000 -00000290: R0 := pad:64[mem[R19 + 0x30]] -00000297: when 31:0[R0] <> 0 goto %00000295 -00000580: goto %000002db - -000002db: -000002de: R0 := 0x10000 -000002e5: R0 := mem[R0 + 0xFC8, el]:u64 -000002eb: when R0 = 0 goto %000002e9 -00000581: goto %00000302 - -00000302: -00000305: R0 := 0x11000 -0000030c: R0 := mem[R0 + 0x28, el]:u64 -00000311: R30 := 0x6F0 -00000314: call @__cxa_finalize with return %000002e9 - -000002e9: -000002f1: R30 := 0x6F4 -000002f3: call @deregister_tm_clones with return %000002f5 - -000002f5: -000002f8: R0 := 1 -00000300: mem := mem with [R19 + 0x30] <- 7:0[R0] -00000582: goto %00000295 - -00000295: -0000029f: R19 := mem[R31 + 0x10, el]:u64 -000002a6: R29 := mem[R31, el]:u64 -000002ab: R30 := mem[R31 + 8, el]:u64 -000002af: R31 := R31 + 0x20 -000002b4: call R30 with noreturn - -0000055d: sub __libc_start_main(__libc_start_main_main, __libc_start_main_arg2, __libc_start_main_arg3, __libc_start_main_auxv, __libc_start_main_result) -0000058d: __libc_start_main_main :: in u64 = R0 -0000058e: __libc_start_main_arg2 :: in u32 = low:32[R1] -0000058f: __libc_start_main_arg3 :: in out u64 = R2 -00000590: __libc_start_main_auxv :: in out u64 = R3 -00000591: __libc_start_main_result :: out u32 = low:32[R0] - -000001bb: -000003f4: R16 := 0x11000 -000003fb: R17 := mem[R16, el]:u64 -00000401: R16 := R16 -00000406: call R17 with noreturn - -0000055e: sub _fini(_fini_result) -00000592: _fini_result :: out u32 = low:32[R0] - -0000001f: -00000025: #0 := R31 - 0x10 -0000002b: mem := mem with [#0, el]:u64 <- R29 -00000031: mem := mem with [#0 + 8, el]:u64 <- R30 -00000035: R31 := #0 -0000003b: R29 := R31 -00000042: R29 := mem[R31, el]:u64 -00000047: R30 := mem[R31 + 8, el]:u64 -0000004b: R31 := R31 + 0x10 -00000050: call R30 with noreturn - -0000055f: sub _init(_init_result) -00000593: _init_result :: out u32 = low:32[R0] - -000004b5: -000004bb: #5 := R31 - 0x10 -000004c1: mem := mem with [#5, el]:u64 <- R29 -000004c7: mem := mem with [#5 + 8, el]:u64 <- R30 -000004cb: R31 := #5 -000004d1: R29 := R31 -000004d6: R30 := 0x590 -000004d8: call @call_weak_fn with return %000004da - -000004da: -000004df: R29 := mem[R31, el]:u64 -000004e4: R30 := mem[R31 + 8, el]:u64 -000004e8: R31 := R31 + 0x10 -000004ed: call R30 with noreturn - -00000560: sub _start(_start_result) -00000594: _start_result :: out u32 = low:32[R0] - -0000017c: -00000181: R29 := 0 -00000186: R30 := 0 -0000018c: R5 := R0 -00000193: R1 := mem[R31, el]:u64 -00000199: R2 := R31 + 8 -0000019f: R6 := R31 -000001a4: R0 := 0x10000 -000001ab: R0 := mem[R0 + 0xFD8, el]:u64 -000001b0: R3 := 0 -000001b5: R4 := 0 -000001ba: R30 := 0x630 -000001bd: call @__libc_start_main with return %000001bf - -000001bf: -000001c2: R30 := 0x634 -000001c5: call @abort with return %00000583 - -00000583: -00000584: call @call_weak_fn with noreturn - -00000563: sub abort() - - -000001c3: -00000436: R16 := 0x11000 -0000043d: R17 := mem[R16 + 0x18, el]:u64 -00000443: R16 := R16 + 0x18 -00000448: call R17 with noreturn - -00000564: sub call_weak_fn(call_weak_fn_result) -00000595: call_weak_fn_result :: out u32 = low:32[R0] - -000001c7: -000001ca: R0 := 0x10000 -000001d1: R0 := mem[R0 + 0xFD0, el]:u64 -000001d7: when R0 = 0 goto %000001d5 -00000585: goto %00000352 - -000001d5: -000001dd: call R30 with noreturn - -00000352: -00000355: goto @__gmon_start__ - -00000353: -00000420: R16 := 0x11000 -00000427: R17 := mem[R16 + 0x10, el]:u64 -0000042d: R16 := R16 + 0x10 -00000432: call R17 with noreturn - -00000566: sub deregister_tm_clones(deregister_tm_clones_result) -00000596: deregister_tm_clones_result :: out u32 = low:32[R0] - -000001e3: -000001e6: R0 := 0x11000 -000001ec: R0 := R0 + 0x30 -000001f1: R1 := 0x11000 -000001f7: R1 := R1 + 0x30 -000001fd: #1 := ~R0 -00000202: #2 := R1 + ~R0 -00000208: VF := extend:65[#2 + 1] <> extend:65[R1] + extend:65[#1] + 1 -0000020e: CF := pad:65[#2 + 1] <> pad:65[R1] + pad:65[#1] + 1 -00000212: ZF := #2 + 1 = 0 -00000216: NF := 63:63[#2 + 1] -0000021c: when ZF goto %0000021a -00000586: goto %00000334 - -00000334: -00000337: R1 := 0x10000 -0000033e: R1 := mem[R1 + 0xFC0, el]:u64 -00000343: when R1 = 0 goto %0000021a -00000587: goto %00000347 - -0000021a: -00000222: call R30 with noreturn - -00000347: -0000034b: R16 := R1 -00000350: call R16 with noreturn - -00000569: sub frame_dummy(frame_dummy_result) -00000597: frame_dummy_result :: out u32 = low:32[R0] - -000002ba: -000002bc: call @register_tm_clones with noreturn - -0000056a: sub main(main_argc, main_argv, main_result) -00000598: main_argc :: in u32 = low:32[R0] -00000599: main_argv :: in out u64 = R1 -0000059a: main_result :: out u32 = low:32[R0] - -000002be: -000002c2: R8 := pad:64[31:0[R0]] -000002c7: R9 := 0x11000 -000002cc: R0 := 0 -000002d4: mem := mem with [R9 + 0x38, el]:u32 <- 31:0[R8] -000002d9: call R30 with noreturn - -0000056b: sub register_tm_clones(register_tm_clones_result) -0000059b: register_tm_clones_result :: out u32 = low:32[R0] - -00000224: -00000227: R0 := 0x11000 -0000022d: R0 := R0 + 0x30 -00000232: R1 := 0x11000 -00000238: R1 := R1 + 0x30 -0000023f: R1 := R1 + ~R0 + 1 -00000245: R2 := 0.63:63[R1] -0000024c: R1 := R2 + (R1 ~>> 3) -00000252: R1 := extend:64[63:1[R1]] -00000258: when R1 = 0 goto %00000256 -00000588: goto %00000316 - -00000316: -00000319: R2 := 0x10000 -00000320: R2 := mem[R2 + 0xFE0, el]:u64 -00000325: when R2 = 0 goto %00000256 -00000589: goto %00000329 - -00000256: -0000025e: call R30 with noreturn - -00000329: -0000032d: R16 := R2 -00000332: call R16 with noreturn diff --git a/src/test/correct/basic_arrays_write/clang_O2/basic_arrays_write.expected b/src/test/correct/basic_arrays_write/clang_O2/basic_arrays_write.expected index 7e00c6b57..099eecaba 100644 --- a/src/test/correct/basic_arrays_write/clang_O2/basic_arrays_write.expected +++ b/src/test/correct/basic_arrays_write/clang_O2/basic_arrays_write.expected @@ -7,12 +7,16 @@ var {:extern} R8: bv64; var {:extern} R9: bv64; var {:extern} mem: [bv64]bv8; const {:extern} $arr_addr: bv64; -axiom ($arr_addr == 69684bv64); +axiom ($arr_addr == 131092bv64); function {:extern} L(mem$in: [bv64]bv8, index: bv64) returns (bool) { (if ((index == bvadd64($arr_addr, 4bv64)) || (index == bvadd64($arr_addr, 0bv64))) then false else false) } function {:extern} {:bvbuiltin "bvadd"} bvadd64(bv64, bv64) returns (bv64); +function {:extern} gamma_load64(gammaMap: [bv64]bool, index: bv64) returns (bool) { + (gammaMap[bvadd64(index, 7bv64)] && (gammaMap[bvadd64(index, 6bv64)] && (gammaMap[bvadd64(index, 5bv64)] && (gammaMap[bvadd64(index, 4bv64)] && (gammaMap[bvadd64(index, 3bv64)] && (gammaMap[bvadd64(index, 2bv64)] && (gammaMap[bvadd64(index, 1bv64)] && gammaMap[index]))))))) +} + function {:extern} gamma_store32(gammaMap: [bv64]bool, index: bv64, value: bool) returns ([bv64]bool) { gammaMap[index := value][bvadd64(index, 1bv64) := value][bvadd64(index, 2bv64) := value][bvadd64(index, 3bv64) := value] } @@ -34,11 +38,12 @@ procedure {:extern} rely(); modifies Gamma_mem, mem; ensures (forall i: bv64 :: (((mem[i] == old(mem[i])) ==> (Gamma_mem[i] == old(Gamma_mem[i]))))); ensures true; - free ensures (memory_load32_le(mem, 1852bv64) == 131073bv32); - free ensures (memory_load64_le(mem, 69064bv64) == 1808bv64); - free ensures (memory_load64_le(mem, 69072bv64) == 1728bv64); - free ensures (memory_load64_le(mem, 69592bv64) == 1812bv64); - free ensures (memory_load64_le(mem, 69672bv64) == 69672bv64); + free ensures (memory_load32_le(mem, 2304bv64) == 131073bv32); + free ensures (memory_load64_le(mem, 130432bv64) == 2256bv64); + free ensures (memory_load64_le(mem, 130440bv64) == 2176bv64); + free ensures (memory_load64_le(mem, 131048bv64) == 2260bv64); + free ensures (memory_load64_le(mem, 131056bv64) == 131092bv64); + free ensures (memory_load64_le(mem, 131080bv64) == 131080bv64); procedure {:extern} rely_transitive(); modifies Gamma_mem, mem; @@ -65,39 +70,46 @@ implementation {:extern} guarantee_reflexive() assert (memory_load32_le(mem, bvadd64($arr_addr, 0bv64)) == memory_load32_le(mem, bvadd64($arr_addr, 0bv64))); } -procedure main_1812(); +procedure main(); modifies Gamma_R0, Gamma_R8, Gamma_R9, Gamma_mem, R0, R8, R9, mem; requires (Gamma_R0 == false); - free requires (memory_load64_le(mem, 69664bv64) == 0bv64); - free requires (memory_load64_le(mem, 69672bv64) == 69672bv64); - free requires (memory_load32_le(mem, 1852bv64) == 131073bv32); - free requires (memory_load64_le(mem, 69064bv64) == 1808bv64); - free requires (memory_load64_le(mem, 69072bv64) == 1728bv64); - free requires (memory_load64_le(mem, 69592bv64) == 1812bv64); - free requires (memory_load64_le(mem, 69672bv64) == 69672bv64); - free ensures (memory_load32_le(mem, 1852bv64) == 131073bv32); - free ensures (memory_load64_le(mem, 69064bv64) == 1808bv64); - free ensures (memory_load64_le(mem, 69072bv64) == 1728bv64); - free ensures (memory_load64_le(mem, 69592bv64) == 1812bv64); - free ensures (memory_load64_le(mem, 69672bv64) == 69672bv64); + free requires (memory_load64_le(mem, 131072bv64) == 0bv64); + free requires (memory_load64_le(mem, 131080bv64) == 131080bv64); + free requires (memory_load32_le(mem, 2304bv64) == 131073bv32); + free requires (memory_load64_le(mem, 130432bv64) == 2256bv64); + free requires (memory_load64_le(mem, 130440bv64) == 2176bv64); + free requires (memory_load64_le(mem, 131048bv64) == 2260bv64); + free requires (memory_load64_le(mem, 131056bv64) == 131092bv64); + free requires (memory_load64_le(mem, 131080bv64) == 131080bv64); + free ensures (memory_load32_le(mem, 2304bv64) == 131073bv32); + free ensures (memory_load64_le(mem, 130432bv64) == 2256bv64); + free ensures (memory_load64_le(mem, 130440bv64) == 2176bv64); + free ensures (memory_load64_le(mem, 131048bv64) == 2260bv64); + free ensures (memory_load64_le(mem, 131056bv64) == 131092bv64); + free ensures (memory_load64_le(mem, 131080bv64) == 131080bv64); -implementation main_1812() +implementation main() { + var $load$18: bv64; + var Gamma_$load$18: bool; var arr$0_old: bv32; lmain: assume {:captureState "lmain"} true; + R9, Gamma_R9 := 126976bv64, true; R8, Gamma_R8 := zero_extend32_32(R0[32:0]), Gamma_R0; - R9, Gamma_R9 := 69632bv64, true; R0, Gamma_R0 := 0bv64, true; call rely(); + $load$18, Gamma_$load$18 := memory_load64_le(mem, bvadd64(R9, 4080bv64)), (gamma_load64(Gamma_mem, bvadd64(R9, 4080bv64)) || L(mem, bvadd64(R9, 4080bv64))); + R9, Gamma_R9 := $load$18, Gamma_$load$18; + call rely(); + assert (L(mem, bvadd64(R9, 4bv64)) ==> Gamma_R8); arr$0_old := memory_load32_le(mem, bvadd64($arr_addr, 0bv64)); - assert (L(mem, bvadd64(R9, 56bv64)) ==> Gamma_R8); - mem, Gamma_mem := memory_store32_le(mem, bvadd64(R9, 56bv64), R8[32:0]), gamma_store32(Gamma_mem, bvadd64(R9, 56bv64), Gamma_R8); + mem, Gamma_mem := memory_store32_le(mem, bvadd64(R9, 4bv64), R8[32:0]), gamma_store32(Gamma_mem, bvadd64(R9, 4bv64), Gamma_R8); assert (arr$0_old == memory_load32_le(mem, bvadd64($arr_addr, 0bv64))); - assume {:captureState "%000002d4"} true; - goto main_1812_basil_return; - main_1812_basil_return: - assume {:captureState "main_1812_basil_return"} true; + assume {:captureState "%0000028c"} true; + goto main_basil_return; + main_basil_return: + assume {:captureState "main_basil_return"} true; return; } diff --git a/src/test/correct/basic_arrays_write/clang_O2/basic_arrays_write.gts b/src/test/correct/basic_arrays_write/clang_O2/basic_arrays_write.gts deleted file mode 100644 index 1dad59e32..000000000 Binary files a/src/test/correct/basic_arrays_write/clang_O2/basic_arrays_write.gts and /dev/null differ diff --git a/src/test/correct/basic_arrays_write/clang_O2/basic_arrays_write.md5sum b/src/test/correct/basic_arrays_write/clang_O2/basic_arrays_write.md5sum new file mode 100644 index 000000000..86acf7eb6 --- /dev/null +++ b/src/test/correct/basic_arrays_write/clang_O2/basic_arrays_write.md5sum @@ -0,0 +1,5 @@ +5710688e753221ae0ff83b1913cb8fcc correct/basic_arrays_write/clang_O2/a.out +e39a3b6e782d3aee96224850344f38a6 correct/basic_arrays_write/clang_O2/basic_arrays_write.adt +de60e0948adef7af01c7a1e877b22940 correct/basic_arrays_write/clang_O2/basic_arrays_write.bir +b7d9560ce26856e8f4c212aae658d55e correct/basic_arrays_write/clang_O2/basic_arrays_write.relf +4efcceb01f56a465b75a993e977e9181 correct/basic_arrays_write/clang_O2/basic_arrays_write.gts diff --git a/src/test/correct/basic_arrays_write/clang_O2/basic_arrays_write.relf b/src/test/correct/basic_arrays_write/clang_O2/basic_arrays_write.relf deleted file mode 100644 index 575461b33..000000000 --- a/src/test/correct/basic_arrays_write/clang_O2/basic_arrays_write.relf +++ /dev/null @@ -1,123 +0,0 @@ - -Relocation section '.rela.dyn' at offset 0x460 contains 8 entries: - Offset Info Type Symbol's Value Symbol's Name + Addend -0000000000010dc8 0000000000000403 R_AARCH64_RELATIVE 710 -0000000000010dd0 0000000000000403 R_AARCH64_RELATIVE 6c0 -0000000000010fd8 0000000000000403 R_AARCH64_RELATIVE 714 -0000000000011028 0000000000000403 R_AARCH64_RELATIVE 11028 -0000000000010fc0 0000000400000401 R_AARCH64_GLOB_DAT 0000000000000000 _ITM_deregisterTMCloneTable + 0 -0000000000010fc8 0000000500000401 R_AARCH64_GLOB_DAT 0000000000000000 __cxa_finalize@GLIBC_2.17 + 0 -0000000000010fd0 0000000600000401 R_AARCH64_GLOB_DAT 0000000000000000 __gmon_start__ + 0 -0000000000010fe0 0000000800000401 R_AARCH64_GLOB_DAT 0000000000000000 _ITM_registerTMCloneTable + 0 - -Relocation section '.rela.plt' at offset 0x520 contains 4 entries: - Offset Info Type Symbol's Value Symbol's Name + Addend -0000000000011000 0000000300000402 R_AARCH64_JUMP_SLOT 0000000000000000 __libc_start_main@GLIBC_2.34 + 0 -0000000000011008 0000000500000402 R_AARCH64_JUMP_SLOT 0000000000000000 __cxa_finalize@GLIBC_2.17 + 0 -0000000000011010 0000000600000402 R_AARCH64_JUMP_SLOT 0000000000000000 __gmon_start__ + 0 -0000000000011018 0000000700000402 R_AARCH64_JUMP_SLOT 0000000000000000 abort@GLIBC_2.17 + 0 - -Symbol table '.dynsym' contains 9 entries: - Num: Value Size Type Bind Vis Ndx Name - 0: 0000000000000000 0 NOTYPE LOCAL DEFAULT UND - 1: 0000000000000580 0 SECTION LOCAL DEFAULT 11 .init - 2: 0000000000011020 0 SECTION LOCAL DEFAULT 23 .data - 3: 0000000000000000 0 FUNC GLOBAL DEFAULT UND __libc_start_main@GLIBC_2.34 (2) - 4: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_deregisterTMCloneTable - 5: 0000000000000000 0 FUNC WEAK DEFAULT UND __cxa_finalize@GLIBC_2.17 (3) - 6: 0000000000000000 0 NOTYPE WEAK DEFAULT UND __gmon_start__ - 7: 0000000000000000 0 FUNC GLOBAL DEFAULT UND abort@GLIBC_2.17 (3) - 8: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_registerTMCloneTable - -Symbol table '.symtab' contains 90 entries: - Num: Value Size Type Bind Vis Ndx Name - 0: 0000000000000000 0 NOTYPE LOCAL DEFAULT UND - 1: 0000000000000238 0 SECTION LOCAL DEFAULT 1 .interp - 2: 0000000000000254 0 SECTION LOCAL DEFAULT 2 .note.gnu.build-id - 3: 0000000000000278 0 SECTION LOCAL DEFAULT 3 .note.ABI-tag - 4: 0000000000000298 0 SECTION LOCAL DEFAULT 4 .gnu.hash - 5: 00000000000002b8 0 SECTION LOCAL DEFAULT 5 .dynsym - 6: 0000000000000390 0 SECTION LOCAL DEFAULT 6 .dynstr - 7: 000000000000041e 0 SECTION LOCAL DEFAULT 7 .gnu.version - 8: 0000000000000430 0 SECTION LOCAL DEFAULT 8 .gnu.version_r - 9: 0000000000000460 0 SECTION LOCAL DEFAULT 9 .rela.dyn - 10: 0000000000000520 0 SECTION LOCAL DEFAULT 10 .rela.plt - 11: 0000000000000580 0 SECTION LOCAL DEFAULT 11 .init - 12: 00000000000005a0 0 SECTION LOCAL DEFAULT 12 .plt - 13: 0000000000000600 0 SECTION LOCAL DEFAULT 13 .text - 14: 0000000000000728 0 SECTION LOCAL DEFAULT 14 .fini - 15: 000000000000073c 0 SECTION LOCAL DEFAULT 15 .rodata - 16: 0000000000000740 0 SECTION LOCAL DEFAULT 16 .eh_frame_hdr - 17: 0000000000000780 0 SECTION LOCAL DEFAULT 17 .eh_frame - 18: 0000000000010dc8 0 SECTION LOCAL DEFAULT 18 .init_array - 19: 0000000000010dd0 0 SECTION LOCAL DEFAULT 19 .fini_array - 20: 0000000000010dd8 0 SECTION LOCAL DEFAULT 20 .dynamic - 21: 0000000000010fb8 0 SECTION LOCAL DEFAULT 21 .got - 22: 0000000000010fe8 0 SECTION LOCAL DEFAULT 22 .got.plt - 23: 0000000000011020 0 SECTION LOCAL DEFAULT 23 .data - 24: 0000000000011030 0 SECTION LOCAL DEFAULT 24 .bss - 25: 0000000000000000 0 SECTION LOCAL DEFAULT 25 .comment - 26: 0000000000000000 0 FILE LOCAL DEFAULT ABS Scrt1.o - 27: 0000000000000278 0 NOTYPE LOCAL DEFAULT 3 $d - 28: 0000000000000278 32 OBJECT LOCAL DEFAULT 3 __abi_tag - 29: 0000000000000600 0 NOTYPE LOCAL DEFAULT 13 $x - 30: 0000000000000794 0 NOTYPE LOCAL DEFAULT 17 $d - 31: 000000000000073c 0 NOTYPE LOCAL DEFAULT 15 $d - 32: 0000000000000000 0 FILE LOCAL DEFAULT ABS crti.o - 33: 0000000000000634 0 NOTYPE LOCAL DEFAULT 13 $x - 34: 0000000000000634 20 FUNC LOCAL DEFAULT 13 call_weak_fn - 35: 0000000000000580 0 NOTYPE LOCAL DEFAULT 11 $x - 36: 0000000000000728 0 NOTYPE LOCAL DEFAULT 14 $x - 37: 0000000000000000 0 FILE LOCAL DEFAULT ABS crtn.o - 38: 0000000000000590 0 NOTYPE LOCAL DEFAULT 11 $x - 39: 0000000000000734 0 NOTYPE LOCAL DEFAULT 14 $x - 40: 0000000000000000 0 FILE LOCAL DEFAULT ABS crtstuff.c - 41: 0000000000000650 0 NOTYPE LOCAL DEFAULT 13 $x - 42: 0000000000000650 0 FUNC LOCAL DEFAULT 13 deregister_tm_clones - 43: 0000000000000680 0 FUNC LOCAL DEFAULT 13 register_tm_clones - 44: 0000000000011028 0 NOTYPE LOCAL DEFAULT 23 $d - 45: 00000000000006c0 0 FUNC LOCAL DEFAULT 13 __do_global_dtors_aux - 46: 0000000000011030 1 OBJECT LOCAL DEFAULT 24 completed.0 - 47: 0000000000010dd0 0 NOTYPE LOCAL DEFAULT 19 $d - 48: 0000000000010dd0 0 OBJECT LOCAL DEFAULT 19 __do_global_dtors_aux_fini_array_entry - 49: 0000000000000710 0 FUNC LOCAL DEFAULT 13 frame_dummy - 50: 0000000000010dc8 0 NOTYPE LOCAL DEFAULT 18 $d - 51: 0000000000010dc8 0 OBJECT LOCAL DEFAULT 18 __frame_dummy_init_array_entry - 52: 00000000000007a8 0 NOTYPE LOCAL DEFAULT 17 $d - 53: 0000000000011030 0 NOTYPE LOCAL DEFAULT 24 $d - 54: 0000000000000000 0 FILE LOCAL DEFAULT ABS basic_arrays_write.c - 55: 0000000000000714 0 NOTYPE LOCAL DEFAULT 13 $x.0 - 56: 0000000000011034 0 NOTYPE LOCAL DEFAULT 24 $d.1 - 57: 000000000000002a 0 NOTYPE LOCAL DEFAULT 25 $d.2 - 58: 0000000000000808 0 NOTYPE LOCAL DEFAULT 17 $d.3 - 59: 0000000000000000 0 FILE LOCAL DEFAULT ABS crtstuff.c - 60: 0000000000000830 0 NOTYPE LOCAL DEFAULT 17 $d - 61: 0000000000000830 0 OBJECT LOCAL DEFAULT 17 __FRAME_END__ - 62: 0000000000000000 0 FILE LOCAL DEFAULT ABS - 63: 0000000000010dd8 0 OBJECT LOCAL DEFAULT ABS _DYNAMIC - 64: 0000000000000740 0 NOTYPE LOCAL DEFAULT 16 __GNU_EH_FRAME_HDR - 65: 0000000000010fb8 0 OBJECT LOCAL DEFAULT ABS _GLOBAL_OFFSET_TABLE_ - 66: 00000000000005a0 0 NOTYPE LOCAL DEFAULT 12 $x - 67: 0000000000000000 0 FUNC GLOBAL DEFAULT UND __libc_start_main@GLIBC_2.34 - 68: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_deregisterTMCloneTable - 69: 0000000000011020 0 NOTYPE WEAK DEFAULT 23 data_start - 70: 0000000000011030 0 NOTYPE GLOBAL DEFAULT 24 __bss_start__ - 71: 0000000000000000 0 FUNC WEAK DEFAULT UND __cxa_finalize@GLIBC_2.17 - 72: 0000000000011040 0 NOTYPE GLOBAL DEFAULT 24 _bss_end__ - 73: 0000000000011030 0 NOTYPE GLOBAL DEFAULT 23 _edata - 74: 0000000000000728 0 FUNC GLOBAL HIDDEN 14 _fini - 75: 0000000000011040 0 NOTYPE GLOBAL DEFAULT 24 __bss_end__ - 76: 0000000000011020 0 NOTYPE GLOBAL DEFAULT 23 __data_start - 77: 0000000000000000 0 NOTYPE WEAK DEFAULT UND __gmon_start__ - 78: 0000000000011028 0 OBJECT GLOBAL HIDDEN 23 __dso_handle - 79: 0000000000000000 0 FUNC GLOBAL DEFAULT UND abort@GLIBC_2.17 - 80: 000000000000073c 4 OBJECT GLOBAL DEFAULT 15 _IO_stdin_used - 81: 0000000000011040 0 NOTYPE GLOBAL DEFAULT 24 _end - 82: 0000000000000600 52 FUNC GLOBAL DEFAULT 13 _start - 83: 0000000000011040 0 NOTYPE GLOBAL DEFAULT 24 __end__ - 84: 0000000000011030 0 NOTYPE GLOBAL DEFAULT 24 __bss_start - 85: 0000000000000714 20 FUNC GLOBAL DEFAULT 13 main - 86: 0000000000011034 8 OBJECT GLOBAL DEFAULT 24 arr - 87: 0000000000011030 0 OBJECT GLOBAL HIDDEN 23 __TMC_END__ - 88: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_registerTMCloneTable - 89: 0000000000000580 0 FUNC GLOBAL HIDDEN 11 _init diff --git a/src/test/correct/basic_arrays_write/clang_O2/basic_arrays_write_gtirb.expected b/src/test/correct/basic_arrays_write/clang_O2/basic_arrays_write_gtirb.expected index 71bff5ea4..f92fcd979 100644 --- a/src/test/correct/basic_arrays_write/clang_O2/basic_arrays_write_gtirb.expected +++ b/src/test/correct/basic_arrays_write/clang_O2/basic_arrays_write_gtirb.expected @@ -7,12 +7,16 @@ var {:extern} R8: bv64; var {:extern} R9: bv64; var {:extern} mem: [bv64]bv8; const {:extern} $arr_addr: bv64; -axiom ($arr_addr == 69684bv64); +axiom ($arr_addr == 131092bv64); function {:extern} L(mem$in: [bv64]bv8, index: bv64) returns (bool) { (if ((index == bvadd64($arr_addr, 4bv64)) || (index == bvadd64($arr_addr, 0bv64))) then false else false) } function {:extern} {:bvbuiltin "bvadd"} bvadd64(bv64, bv64) returns (bv64); +function {:extern} gamma_load64(gammaMap: [bv64]bool, index: bv64) returns (bool) { + (gammaMap[bvadd64(index, 7bv64)] && (gammaMap[bvadd64(index, 6bv64)] && (gammaMap[bvadd64(index, 5bv64)] && (gammaMap[bvadd64(index, 4bv64)] && (gammaMap[bvadd64(index, 3bv64)] && (gammaMap[bvadd64(index, 2bv64)] && (gammaMap[bvadd64(index, 1bv64)] && gammaMap[index]))))))) +} + function {:extern} gamma_store32(gammaMap: [bv64]bool, index: bv64, value: bool) returns ([bv64]bool) { gammaMap[index := value][bvadd64(index, 1bv64) := value][bvadd64(index, 2bv64) := value][bvadd64(index, 3bv64) := value] } @@ -34,11 +38,12 @@ procedure {:extern} rely(); modifies Gamma_mem, mem; ensures (forall i: bv64 :: (((mem[i] == old(mem[i])) ==> (Gamma_mem[i] == old(Gamma_mem[i]))))); ensures true; - free ensures (memory_load32_le(mem, 1852bv64) == 131073bv32); - free ensures (memory_load64_le(mem, 69064bv64) == 1808bv64); - free ensures (memory_load64_le(mem, 69072bv64) == 1728bv64); - free ensures (memory_load64_le(mem, 69592bv64) == 1812bv64); - free ensures (memory_load64_le(mem, 69672bv64) == 69672bv64); + free ensures (memory_load32_le(mem, 2304bv64) == 131073bv32); + free ensures (memory_load64_le(mem, 130432bv64) == 2256bv64); + free ensures (memory_load64_le(mem, 130440bv64) == 2176bv64); + free ensures (memory_load64_le(mem, 131048bv64) == 2260bv64); + free ensures (memory_load64_le(mem, 131056bv64) == 131092bv64); + free ensures (memory_load64_le(mem, 131080bv64) == 131080bv64); procedure {:extern} rely_transitive(); modifies Gamma_mem, mem; @@ -65,39 +70,46 @@ implementation {:extern} guarantee_reflexive() assert (memory_load32_le(mem, bvadd64($arr_addr, 0bv64)) == memory_load32_le(mem, bvadd64($arr_addr, 0bv64))); } -procedure main_1812(); +procedure main(); modifies Gamma_R0, Gamma_R8, Gamma_R9, Gamma_mem, R0, R8, R9, mem; requires (Gamma_R0 == false); - free requires (memory_load64_le(mem, 69664bv64) == 0bv64); - free requires (memory_load64_le(mem, 69672bv64) == 69672bv64); - free requires (memory_load32_le(mem, 1852bv64) == 131073bv32); - free requires (memory_load64_le(mem, 69064bv64) == 1808bv64); - free requires (memory_load64_le(mem, 69072bv64) == 1728bv64); - free requires (memory_load64_le(mem, 69592bv64) == 1812bv64); - free requires (memory_load64_le(mem, 69672bv64) == 69672bv64); - free ensures (memory_load32_le(mem, 1852bv64) == 131073bv32); - free ensures (memory_load64_le(mem, 69064bv64) == 1808bv64); - free ensures (memory_load64_le(mem, 69072bv64) == 1728bv64); - free ensures (memory_load64_le(mem, 69592bv64) == 1812bv64); - free ensures (memory_load64_le(mem, 69672bv64) == 69672bv64); + free requires (memory_load64_le(mem, 131072bv64) == 0bv64); + free requires (memory_load64_le(mem, 131080bv64) == 131080bv64); + free requires (memory_load32_le(mem, 2304bv64) == 131073bv32); + free requires (memory_load64_le(mem, 130432bv64) == 2256bv64); + free requires (memory_load64_le(mem, 130440bv64) == 2176bv64); + free requires (memory_load64_le(mem, 131048bv64) == 2260bv64); + free requires (memory_load64_le(mem, 131056bv64) == 131092bv64); + free requires (memory_load64_le(mem, 131080bv64) == 131080bv64); + free ensures (memory_load32_le(mem, 2304bv64) == 131073bv32); + free ensures (memory_load64_le(mem, 130432bv64) == 2256bv64); + free ensures (memory_load64_le(mem, 130440bv64) == 2176bv64); + free ensures (memory_load64_le(mem, 131048bv64) == 2260bv64); + free ensures (memory_load64_le(mem, 131056bv64) == 131092bv64); + free ensures (memory_load64_le(mem, 131080bv64) == 131080bv64); -implementation main_1812() +implementation main() { + var $load11: bv64; + var Gamma_$load11: bool; var arr$0_old: bv32; - main_1812__0__9B_32roeToOuqgp1UmQUlw: - assume {:captureState "main_1812__0__9B_32roeToOuqgp1UmQUlw"} true; + $main$__0__$oqiqdATZTc6MDOYJqL9Aew: + assume {:captureState "$main$__0__$oqiqdATZTc6MDOYJqL9Aew"} true; + R9, Gamma_R9 := 126976bv64, true; R8, Gamma_R8 := zero_extend32_32(R0[32:0]), Gamma_R0; - R9, Gamma_R9 := 69632bv64, true; R0, Gamma_R0 := 0bv64, true; call rely(); + $load11, Gamma_$load11 := memory_load64_le(mem, bvadd64(R9, 4080bv64)), (gamma_load64(Gamma_mem, bvadd64(R9, 4080bv64)) || L(mem, bvadd64(R9, 4080bv64))); + R9, Gamma_R9 := $load11, Gamma_$load11; + call rely(); + assert (L(mem, bvadd64(R9, 4bv64)) ==> Gamma_R8); arr$0_old := memory_load32_le(mem, bvadd64($arr_addr, 0bv64)); - assert (L(mem, bvadd64(R9, 56bv64)) ==> Gamma_R8); - mem, Gamma_mem := memory_store32_le(mem, bvadd64(R9, 56bv64), R8[32:0]), gamma_store32(Gamma_mem, bvadd64(R9, 56bv64), Gamma_R8); + mem, Gamma_mem := memory_store32_le(mem, bvadd64(R9, 4bv64), R8[32:0]), gamma_store32(Gamma_mem, bvadd64(R9, 4bv64), Gamma_R8); assert (arr$0_old == memory_load32_le(mem, bvadd64($arr_addr, 0bv64))); - assume {:captureState "1824_0"} true; - goto main_1812_basil_return; - main_1812_basil_return: - assume {:captureState "main_1812_basil_return"} true; + assume {:captureState "2276$0"} true; + goto main_basil_return; + main_basil_return: + assume {:captureState "main_basil_return"} true; return; } diff --git a/src/test/correct/basic_arrays_write/clang_pic/basic_arrays_write.adt b/src/test/correct/basic_arrays_write/clang_pic/basic_arrays_write.adt deleted file mode 100644 index b107e7813..000000000 --- a/src/test/correct/basic_arrays_write/clang_pic/basic_arrays_write.adt +++ /dev/null @@ -1,506 +0,0 @@ -Project(Attrs([Attr("filename","\"clang_pic/basic_arrays_write.out\""), -Attr("image-specification","(declare abi (name str))\n(declare arch (name str))\n(declare base-address (addr int))\n(declare bias (off int))\n(declare bits (size int))\n(declare code-region (addr int) (size int) (off int))\n(declare code-start (addr int))\n(declare entry-point (addr int))\n(declare external-reference (addr int) (name str))\n(declare format (name str))\n(declare is-executable (flag bool))\n(declare is-little-endian (flag bool))\n(declare llvm:base-address (addr int))\n(declare llvm:code-entry (name str) (off int) (size int))\n(declare llvm:coff-import-library (name str))\n(declare llvm:coff-virtual-section-header (name str) (addr int) (size int))\n(declare llvm:elf-program-header (name str) (off int) (size int))\n(declare llvm:elf-program-header-flags (name str) (ld bool) (r bool) \n (w bool) (x bool))\n(declare llvm:elf-virtual-program-header (name str) (addr int) (size int))\n(declare llvm:entry-point (addr int))\n(declare llvm:macho-symbol (name str) (value int))\n(declare llvm:name-reference (at int) (name str))\n(declare llvm:relocation (at int) (addr int))\n(declare llvm:section-entry (name str) (addr int) (size int) (off int))\n(declare llvm:section-flags (name str) (r bool) (w bool) (x bool))\n(declare llvm:segment-command (name str) (off int) (size int))\n(declare llvm:segment-command-flags (name str) (r bool) (w bool) (x bool))\n(declare llvm:symbol-entry (name str) (addr int) (size int) (off int)\n (value int))\n(declare llvm:virtual-segment-command (name str) (addr int) (size int))\n(declare mapped (addr int) (size int) (off int))\n(declare named-region (addr int) (size int) (name str))\n(declare named-symbol (addr int) (name str))\n(declare require (name str))\n(declare section (addr int) (size int))\n(declare segment (addr int) (size int) (r bool) (w bool) (x bool))\n(declare subarch (name str))\n(declare symbol-chunk (addr int) (size int) (root int))\n(declare symbol-value (addr int) (value int))\n(declare system (name str))\n(declare vendor (name str))\n\n(abi unknown)\n(arch aarch64)\n(base-address 0)\n(bias 0)\n(bits 64)\n(code-region 1912 20 1912)\n(code-region 1600 312 1600)\n(code-region 1456 96 1456)\n(code-region 1432 24 1432)\n(code-start 1652)\n(code-start 1600)\n(code-start 1876)\n(entry-point 1600)\n(external-reference 69560 _ITM_deregisterTMCloneTable)\n(external-reference 69568 __cxa_finalize)\n(external-reference 69576 __gmon_start__)\n(external-reference 69600 _ITM_registerTMCloneTable)\n(external-reference 69632 __libc_start_main)\n(external-reference 69640 __cxa_finalize)\n(external-reference 69648 __gmon_start__)\n(external-reference 69656 abort)\n(format elf)\n(is-executable true)\n(is-little-endian true)\n(llvm:base-address 0)\n(llvm:code-entry abort 0 0)\n(llvm:code-entry __cxa_finalize 0 0)\n(llvm:code-entry __libc_start_main 0 0)\n(llvm:code-entry _init 1432 0)\n(llvm:code-entry main 1876 36)\n(llvm:code-entry _start 1600 52)\n(llvm:code-entry abort@GLIBC_2.17 0 0)\n(llvm:code-entry _fini 1912 0)\n(llvm:code-entry __cxa_finalize@GLIBC_2.17 0 0)\n(llvm:code-entry __libc_start_main@GLIBC_2.34 0 0)\n(llvm:code-entry frame_dummy 1872 0)\n(llvm:code-entry __do_global_dtors_aux 1792 0)\n(llvm:code-entry register_tm_clones 1728 0)\n(llvm:code-entry deregister_tm_clones 1680 0)\n(llvm:code-entry call_weak_fn 1652 20)\n(llvm:code-entry .fini 1912 20)\n(llvm:code-entry .text 1600 312)\n(llvm:code-entry .plt 1456 96)\n(llvm:code-entry .init 1432 24)\n(llvm:elf-program-header 08 3520 576)\n(llvm:elf-program-header 07 0 0)\n(llvm:elf-program-header 06 1936 60)\n(llvm:elf-program-header 05 596 68)\n(llvm:elf-program-header 04 3536 480)\n(llvm:elf-program-header 03 3520 624)\n(llvm:elf-program-header 02 0 2184)\n(llvm:elf-program-header 01 568 27)\n(llvm:elf-program-header 00 64 504)\n(llvm:elf-program-header-flags 08 false true false false)\n(llvm:elf-program-header-flags 07 false true true false)\n(llvm:elf-program-header-flags 06 false true false false)\n(llvm:elf-program-header-flags 05 false true false false)\n(llvm:elf-program-header-flags 04 false true true false)\n(llvm:elf-program-header-flags 03 true true true false)\n(llvm:elf-program-header-flags 02 true true false true)\n(llvm:elf-program-header-flags 01 false true false false)\n(llvm:elf-program-header-flags 00 false true false false)\n(llvm:elf-virtual-program-header 08 69056 576)\n(llvm:elf-virtual-program-header 07 0 0)\n(llvm:elf-virtual-program-header 06 1936 60)\n(llvm:elf-virtual-program-header 05 596 68)\n(llvm:elf-virtual-program-header 04 69072 480)\n(llvm:elf-virtual-program-header 03 69056 640)\n(llvm:elf-virtual-program-header 02 0 2184)\n(llvm:elf-virtual-program-header 01 568 27)\n(llvm:elf-virtual-program-header 00 64 504)\n(llvm:entry-point 1600)\n(llvm:name-reference 69656 abort)\n(llvm:name-reference 69648 __gmon_start__)\n(llvm:name-reference 69640 __cxa_finalize)\n(llvm:name-reference 69632 __libc_start_main)\n(llvm:name-reference 69600 _ITM_registerTMCloneTable)\n(llvm:name-reference 69576 __gmon_start__)\n(llvm:name-reference 69568 __cxa_finalize)\n(llvm:name-reference 69560 _ITM_deregisterTMCloneTable)\n(llvm:section-entry .shstrtab 0 259 6954)\n(llvm:section-entry .strtab 0 578 6376)\n(llvm:section-entry .symtab 0 2160 4216)\n(llvm:section-entry .comment 0 71 4144)\n(llvm:section-entry .bss 69680 16 4144)\n(llvm:section-entry .data 69664 16 4128)\n(llvm:section-entry .got.plt 69608 56 4072)\n(llvm:section-entry .got 69552 56 4016)\n(llvm:section-entry .dynamic 69072 480 3536)\n(llvm:section-entry .fini_array 69064 8 3528)\n(llvm:section-entry .init_array 69056 8 3520)\n(llvm:section-entry .eh_frame 2000 184 2000)\n(llvm:section-entry .eh_frame_hdr 1936 60 1936)\n(llvm:section-entry .rodata 1932 4 1932)\n(llvm:section-entry .fini 1912 20 1912)\n(llvm:section-entry .text 1600 312 1600)\n(llvm:section-entry .plt 1456 96 1456)\n(llvm:section-entry .init 1432 24 1432)\n(llvm:section-entry .rela.plt 1336 96 1336)\n(llvm:section-entry .rela.dyn 1120 216 1120)\n(llvm:section-entry .gnu.version_r 1072 48 1072)\n(llvm:section-entry .gnu.version 1054 18 1054)\n(llvm:section-entry .dynstr 912 141 912)\n(llvm:section-entry .dynsym 696 216 696)\n(llvm:section-entry .gnu.hash 664 28 664)\n(llvm:section-entry .note.ABI-tag 632 32 632)\n(llvm:section-entry .note.gnu.build-id 596 36 596)\n(llvm:section-entry .interp 568 27 568)\n(llvm:section-flags .shstrtab true false false)\n(llvm:section-flags .strtab true false false)\n(llvm:section-flags .symtab true false false)\n(llvm:section-flags .comment true false false)\n(llvm:section-flags .bss true true false)\n(llvm:section-flags .data true true false)\n(llvm:section-flags .got.plt true true false)\n(llvm:section-flags .got true true false)\n(llvm:section-flags .dynamic true true false)\n(llvm:section-flags .fini_array true true false)\n(llvm:section-flags .init_array true true false)\n(llvm:section-flags .eh_frame true false false)\n(llvm:section-flags .eh_frame_hdr true false false)\n(llvm:section-flags .rodata true false false)\n(llvm:section-flags .fini true false true)\n(llvm:section-flags .text true false true)\n(llvm:section-flags .plt true false true)\n(llvm:section-flags .init true false true)\n(llvm:section-flags .rela.plt true false false)\n(llvm:section-flags .rela.dyn true false false)\n(llvm:section-flags .gnu.version_r true false false)\n(llvm:section-flags .gnu.version true false false)\n(llvm:section-flags .dynstr true false false)\n(llvm:section-flags .dynsym true false false)\n(llvm:section-flags .gnu.hash true false false)\n(llvm:section-flags .note.ABI-tag true false false)\n(llvm:section-flags .note.gnu.build-id true false false)\n(llvm:section-flags .interp true false false)\n(llvm:symbol-entry abort 0 0 0 0)\n(llvm:symbol-entry __cxa_finalize 0 0 0 0)\n(llvm:symbol-entry __libc_start_main 0 0 0 0)\n(llvm:symbol-entry _init 1432 0 1432 1432)\n(llvm:symbol-entry main 1876 36 1876 1876)\n(llvm:symbol-entry _start 1600 52 1600 1600)\n(llvm:symbol-entry abort@GLIBC_2.17 0 0 0 0)\n(llvm:symbol-entry _fini 1912 0 1912 1912)\n(llvm:symbol-entry __cxa_finalize@GLIBC_2.17 0 0 0 0)\n(llvm:symbol-entry __libc_start_main@GLIBC_2.34 0 0 0 0)\n(llvm:symbol-entry frame_dummy 1872 0 1872 1872)\n(llvm:symbol-entry __do_global_dtors_aux 1792 0 1792 1792)\n(llvm:symbol-entry register_tm_clones 1728 0 1728 1728)\n(llvm:symbol-entry deregister_tm_clones 1680 0 1680 1680)\n(llvm:symbol-entry call_weak_fn 1652 20 1652 1652)\n(mapped 0 2184 0)\n(mapped 69056 624 3520)\n(named-region 0 2184 02)\n(named-region 69056 640 03)\n(named-region 568 27 .interp)\n(named-region 596 36 .note.gnu.build-id)\n(named-region 632 32 .note.ABI-tag)\n(named-region 664 28 .gnu.hash)\n(named-region 696 216 .dynsym)\n(named-region 912 141 .dynstr)\n(named-region 1054 18 .gnu.version)\n(named-region 1072 48 .gnu.version_r)\n(named-region 1120 216 .rela.dyn)\n(named-region 1336 96 .rela.plt)\n(named-region 1432 24 .init)\n(named-region 1456 96 .plt)\n(named-region 1600 312 .text)\n(named-region 1912 20 .fini)\n(named-region 1932 4 .rodata)\n(named-region 1936 60 .eh_frame_hdr)\n(named-region 2000 184 .eh_frame)\n(named-region 69056 8 .init_array)\n(named-region 69064 8 .fini_array)\n(named-region 69072 480 .dynamic)\n(named-region 69552 56 .got)\n(named-region 69608 56 .got.plt)\n(named-region 69664 16 .data)\n(named-region 69680 16 .bss)\n(named-region 0 71 .comment)\n(named-region 0 2160 .symtab)\n(named-region 0 578 .strtab)\n(named-region 0 259 .shstrtab)\n(named-symbol 1652 call_weak_fn)\n(named-symbol 1680 deregister_tm_clones)\n(named-symbol 1728 register_tm_clones)\n(named-symbol 1792 __do_global_dtors_aux)\n(named-symbol 1872 frame_dummy)\n(named-symbol 0 __libc_start_main@GLIBC_2.34)\n(named-symbol 0 __cxa_finalize@GLIBC_2.17)\n(named-symbol 1912 _fini)\n(named-symbol 0 abort@GLIBC_2.17)\n(named-symbol 1600 _start)\n(named-symbol 1876 main)\n(named-symbol 1432 _init)\n(named-symbol 0 __libc_start_main)\n(named-symbol 0 __cxa_finalize)\n(named-symbol 0 abort)\n(require libc.so.6)\n(section 568 27)\n(section 596 36)\n(section 632 32)\n(section 664 28)\n(section 696 216)\n(section 912 141)\n(section 1054 18)\n(section 1072 48)\n(section 1120 216)\n(section 1336 96)\n(section 1432 24)\n(section 1456 96)\n(section 1600 312)\n(section 1912 20)\n(section 1932 4)\n(section 1936 60)\n(section 2000 184)\n(section 69056 8)\n(section 69064 8)\n(section 69072 480)\n(section 69552 56)\n(section 69608 56)\n(section 69664 16)\n(section 69680 16)\n(section 0 71)\n(section 0 2160)\n(section 0 578)\n(section 0 259)\n(segment 0 2184 true false true)\n(segment 69056 640 true true false)\n(subarch v8)\n(symbol-chunk 1652 20 1652)\n(symbol-chunk 1600 52 1600)\n(symbol-chunk 1876 36 1876)\n(symbol-value 1652 1652)\n(symbol-value 1680 1680)\n(symbol-value 1728 1728)\n(symbol-value 1792 1792)\n(symbol-value 1872 1872)\n(symbol-value 1912 1912)\n(symbol-value 1600 1600)\n(symbol-value 1876 1876)\n(symbol-value 1432 1432)\n(symbol-value 0 0)\n(system \"\")\n(vendor \"\")\n"), -Attr("abi-name","\"aarch64-linux-gnu-elf\"")]), -Sections([Section(".shstrtab", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x40\x06\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x30\x1c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x38\x00\x09\x00\x40\x00\x1d\x00\x1c\x00\x06\x00\x00\x00\x04\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x04\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x88\x08\x00\x00\x00\x00\x00\x00\x88\x08\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x01\x00\x00\x00\x06\x00\x00\x00\xc0\x0d\x00\x00\x00\x00\x00\x00\xc0\x0d\x01\x00\x00\x00\x00\x00\xc0\x0d\x01"), -Section(".strtab", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x40\x06\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x30\x1c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x38\x00\x09\x00\x40\x00\x1d\x00\x1c\x00\x06\x00\x00\x00\x04\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x04\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x88\x08\x00\x00\x00\x00\x00\x00\x88\x08\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x01\x00\x00\x00\x06\x00\x00\x00\xc0\x0d\x00\x00\x00\x00\x00\x00\xc0\x0d\x01\x00\x00\x00\x00\x00\xc0\x0d\x01\x00\x00\x00\x00\x00\x70\x02\x00\x00\x00\x00\x00\x00\x80\x02\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x02\x00\x00\x00\x06\x00\x00\x00\xd0\x0d\x00\x00\x00\x00\x00\x00\xd0\x0d\x01\x00\x00\x00\x00\x00\xd0\x0d\x01\x00\x00\x00\x00\x00\xe0\x01\x00\x00\x00\x00\x00\x00\xe0\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x04\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x50\xe5\x74\x64\x04\x00\x00\x00\x90\x07\x00\x00\x00\x00\x00\x00\x90\x07\x00\x00\x00\x00\x00\x00\x90\x07\x00\x00\x00\x00\x00\x00\x3c\x00\x00\x00\x00\x00\x00\x00\x3c\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x51\xe5\x74\x64\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x52\xe5\x74\x64\x04\x00\x00\x00\xc0\x0d\x00\x00\x00\x00\x00\x00\xc0\x0d\x01\x00\x00\x00\x00\x00\xc0\x0d\x01\x00\x00\x00\x00\x00\x40\x02\x00\x00\x00\x00\x00\x00\x40\x02\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x2f\x6c\x69\x62\x2f\x6c\x64\x2d\x6c\x69"), -Section(".symtab", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x40\x06\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x30\x1c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x38\x00\x09\x00\x40\x00\x1d\x00\x1c\x00\x06\x00\x00\x00\x04\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x04\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x88\x08\x00\x00\x00\x00\x00\x00\x88\x08\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x01\x00\x00\x00\x06\x00\x00\x00\xc0\x0d\x00\x00\x00\x00\x00\x00\xc0\x0d\x01\x00\x00\x00\x00\x00\xc0\x0d\x01\x00\x00\x00\x00\x00\x70\x02\x00\x00\x00\x00\x00\x00\x80\x02\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x02\x00\x00\x00\x06\x00\x00\x00\xd0\x0d\x00\x00\x00\x00\x00\x00\xd0\x0d\x01\x00\x00\x00\x00\x00\xd0\x0d\x01\x00\x00\x00\x00\x00\xe0\x01\x00\x00\x00\x00\x00\x00\xe0\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x04\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x50\xe5\x74\x64\x04\x00\x00\x00\x90\x07\x00\x00\x00\x00\x00\x00\x90\x07\x00\x00\x00\x00\x00\x00\x90\x07\x00\x00\x00\x00\x00\x00\x3c\x00\x00\x00\x00\x00\x00\x00\x3c\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x51\xe5\x74\x64\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x52\xe5\x74\x64\x04\x00\x00\x00\xc0\x0d\x00\x00\x00\x00\x00\x00\xc0\x0d\x01\x00\x00\x00\x00\x00\xc0\x0d\x01\x00\x00\x00\x00\x00\x40\x02\x00\x00\x00\x00\x00\x00\x40\x02\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x2f\x6c\x69\x62\x2f\x6c\x64\x2d\x6c\x69\x6e\x75\x78\x2d\x61\x61\x72\x63\x68\x36\x34\x2e\x73\x6f\x2e\x31\x00\x00\x04\x00\x00\x00\x14\x00\x00\x00\x03\x00\x00\x00\x47\x4e\x55\x00\x5b\x75\x80\xa9\xb2\x9e\x04\xde\xe5\xae\x8d\x9c\x98\x7f\x96\x84\x8c\xd8\xf1\x7b\x04\x00\x00\x00\x10\x00\x00\x00\x01\x00\x00\x00\x47\x4e\x55\x00\x00\x00\x00\x00\x03\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x01\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x0b\x00\x98\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x17\x00\x20\x10\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x48\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x22\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x22\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x73\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5f\x5f\x63\x78\x61\x5f\x66\x69\x6e\x61\x6c\x69\x7a\x65\x00\x5f\x5f\x6c\x69\x62\x63\x5f\x73\x74\x61\x72\x74\x5f\x6d\x61\x69\x6e\x00\x61\x62\x6f\x72\x74\x00\x6c\x69\x62\x63\x2e\x73\x6f\x2e\x36\x00\x47\x4c\x49\x42\x43\x5f\x32\x2e\x31\x37\x00\x47\x4c\x49\x42\x43\x5f\x32\x2e\x33\x34\x00\x5f\x49\x54\x4d\x5f\x64\x65\x72\x65\x67\x69\x73\x74\x65\x72\x54\x4d\x43\x6c\x6f\x6e\x65\x54\x61\x62\x6c\x65\x00\x5f\x5f\x67\x6d\x6f\x6e\x5f\x73\x74\x61\x72\x74\x5f\x5f\x00\x5f\x49\x54\x4d\x5f\x72\x65\x67\x69\x73\x74\x65\x72\x54\x4d\x43\x6c\x6f\x6e\x65\x54\x61\x62\x6c\x65\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x01\x00\x03\x00\x01\x00\x03\x00\x01\x00\x01\x00\x02\x00\x28\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x97\x91\x96\x06\x00\x00\x03\x00\x32\x00\x00\x00\x10\x00\x00\x00\xb4\x91\x96\x06\x00\x00\x02\x00\x3d\x00\x00\x00\x00\x00\x00\x00\xc0\x0d\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x50\x07\x00\x00\x00\x00\x00\x00\xc8\x0d\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\xd0\x0f\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x54\x07\x00\x00\x00\x00\x00\x00\xd8\x0f\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x34\x10\x01\x00\x00\x00\x00\x00\x28\x10\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x28\x10\x01\x00\x00\x00\x00\x00\xb8\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xc0\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xc8\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe0\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x08\x10\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x10\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x18\x10\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1f\x20\x03\xd5\xfd\x7b\xbf\xa9\xfd\x03\x00\x91\x34\x00\x00\x94\xfd\x7b\xc1\xa8\xc0\x03\x5f\xd6\xf0\x7b\xbf\xa9\x90\x00\x00\x90\x11\xfe\x47\xf9\x10\xe2\x3f\x91\x20\x02\x1f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x90\x00\x00\xb0\x11\x02\x40\xf9\x10\x02\x00\x91\x20\x02\x1f\xd6\x90\x00\x00\xb0\x11\x06\x40\xf9\x10\x22\x00\x91\x20\x02\x1f\xd6\x90\x00\x00\xb0\x11\x0a\x40\xf9\x10\x42\x00\x91\x20\x02\x1f\xd6\x90\x00\x00\xb0\x11\x0e\x40\xf9\x10\x62\x00\x91\x20\x02\x1f\xd6\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1f\x20\x03\xd5\x1d\x00\x80\xd2\x1e\x00\x80\xd2\xe5\x03\x00\xaa\xe1\x03\x40\xf9\xe2\x23\x00\x91\xe6\x03\x00\x91\x80\x00\x00\x90\x00\xe8\x47\xf9\x03\x00\x80\xd2\x04\x00\x80\xd2\xd9\xff\xff\x97\xe4\xff\xff\x97\x80\x00\x00\x90\x00\xe4\x47\xf9\x40\x00\x00\xb4\xdc\xff\xff\x17\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x80\x00\x00\xb0\x00\xc0\x00\x91\x81\x00\x00\xb0\x21\xc0\x00\x91\x3f\x00\x00\xeb\xc0\x00\x00\x54\x81\x00\x00\x90\x21\xdc\x47\xf9\x61\x00\x00\xb4\xf0\x03\x01\xaa\x00\x02\x1f\xd6\xc0\x03\x5f\xd6\x80\x00\x00\xb0\x00\xc0\x00\x91\x81\x00\x00\xb0\x21\xc0\x00\x91\x21\x00\x00\xcb\x22\xfc\x7f\xd3\x41\x0c\x81\x8b\x21\xfc\x41\x93\xc1\x00\x00\xb4\x82\x00\x00\x90\x42\xf0\x47\xf9\x62\x00\x00\xb4\xf0\x03\x02\xaa\x00\x02\x1f\xd6\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\xfd\x7b\xbe\xa9\xfd\x03\x00\x91\xf3\x0b\x00\xf9\x93\x00\x00\xb0\x60\xc2\x40\x39\x40\x01\x00\x35\x80\x00\x00\x90\x00\xe0\x47\xf9\x80\x00\x00\xb4\x80\x00\x00\xb0\x00\x14\x40\xf9\xad\xff\xff\x97\xd8\xff\xff\x97\x20\x00\x80\x52\x60\xc2\x00\x39\xf3\x0b\x40\xf9\xfd\x7b\xc2\xa8\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\xdc\xff\xff\x17\xff\x43\x00\xd1\x89\x00\x00\x90\x29\xed\x47\xf9\xe0\x0f\x00\xb9\xe8\x0f\x40\xb9\x28\x05\x00\xb9\xe0\x03\x1f\x2a\xff\x43\x00\x91\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\xfd\x7b\xbf\xa9\xfd\x03\x00\x91\xfd\x7b\xc1\xa8\xc0\x03\x5f\xd6\x01\x00\x02\x00\x01\x1b\x03\x3b\x3c\x00\x00\x00\x06\x00\x00\x00\xb0\xfe\xff\xff\x54\x00\x00\x00\x00\xff\xff\xff\x68\x00\x00\x00\x30\xff\xff\xff\x7c\x00\x00\x00\x70\xff\xff\xff\x90\x00\x00\x00\xc0\xff\xff\xff\xb4\x00\x00\x00\xc4\xff\xff\xff\xdc\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x01\x7a\x52\x00\x04\x78\x1e\x01\x1b\x0c\x1f\x00\x10\x00\x00\x00\x18\x00\x00\x00\x54\xfe\xff\xff\x34\x00\x00\x00\x00\x41\x07\x1e\x10\x00\x00\x00\x2c\x00\x00\x00\x90\xfe\xff\xff\x30\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x40\x00\x00\x00\xac\xfe\xff\xff\x3c\x00\x00\x00\x00\x00\x00\x00\x20\x00\x00\x00\x54\x00\x00\x00\xd8\xfe\xff\xff\x48\x00\x00\x00\x00\x41\x0e\x20\x9d\x04\x9e\x03\x42\x93\x02\x4e\xde\xdd\xd3\x0e\x00\x00\x00\x00\x10\x00\x00\x00\x78\x00\x00\x00\x04\xff\xff\xff\x04\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x01\x7a\x52\x00\x01\x7c\x1e\x01\x1b\x0c\x1f\x00\x14\x00\x00\x00"), -Section(".comment", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x40\x06\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x30\x1c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x38\x00\x09\x00\x40\x00\x1d\x00\x1c\x00\x06\x00\x00\x00\x04\x00\x00"), -Section(".interp", 0x238, "\x2f\x6c\x69\x62\x2f\x6c\x64\x2d\x6c\x69\x6e\x75\x78\x2d\x61\x61\x72\x63\x68\x36\x34\x2e\x73\x6f\x2e\x31\x00"), -Section(".note.gnu.build-id", 0x254, "\x04\x00\x00\x00\x14\x00\x00\x00\x03\x00\x00\x00\x47\x4e\x55\x00\x5b\x75\x80\xa9\xb2\x9e\x04\xde\xe5\xae\x8d\x9c\x98\x7f\x96\x84\x8c\xd8\xf1\x7b"), -Section(".note.ABI-tag", 0x278, "\x04\x00\x00\x00\x10\x00\x00\x00\x01\x00\x00\x00\x47\x4e\x55\x00\x00\x00\x00\x00\x03\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00"), -Section(".gnu.hash", 0x298, "\x01\x00\x00\x00\x01\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".dynsym", 0x2B8, "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x0b\x00\x98\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x17\x00\x20\x10\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x48\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x22\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x22\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x73\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".dynstr", 0x390, "\x00\x5f\x5f\x63\x78\x61\x5f\x66\x69\x6e\x61\x6c\x69\x7a\x65\x00\x5f\x5f\x6c\x69\x62\x63\x5f\x73\x74\x61\x72\x74\x5f\x6d\x61\x69\x6e\x00\x61\x62\x6f\x72\x74\x00\x6c\x69\x62\x63\x2e\x73\x6f\x2e\x36\x00\x47\x4c\x49\x42\x43\x5f\x32\x2e\x31\x37\x00\x47\x4c\x49\x42\x43\x5f\x32\x2e\x33\x34\x00\x5f\x49\x54\x4d\x5f\x64\x65\x72\x65\x67\x69\x73\x74\x65\x72\x54\x4d\x43\x6c\x6f\x6e\x65\x54\x61\x62\x6c\x65\x00\x5f\x5f\x67\x6d\x6f\x6e\x5f\x73\x74\x61\x72\x74\x5f\x5f\x00\x5f\x49\x54\x4d\x5f\x72\x65\x67\x69\x73\x74\x65\x72\x54\x4d\x43\x6c\x6f\x6e\x65\x54\x61\x62\x6c\x65\x00"), -Section(".gnu.version", 0x41E, "\x00\x00\x00\x00\x00\x00\x02\x00\x01\x00\x03\x00\x01\x00\x03\x00\x01\x00"), -Section(".gnu.version_r", 0x430, "\x01\x00\x02\x00\x28\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x97\x91\x96\x06\x00\x00\x03\x00\x32\x00\x00\x00\x10\x00\x00\x00\xb4\x91\x96\x06\x00\x00\x02\x00\x3d\x00\x00\x00\x00\x00\x00\x00"), -Section(".rela.dyn", 0x460, "\xc0\x0d\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x50\x07\x00\x00\x00\x00\x00\x00\xc8\x0d\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\xd0\x0f\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x54\x07\x00\x00\x00\x00\x00\x00\xd8\x0f\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x34\x10\x01\x00\x00\x00\x00\x00\x28\x10\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x28\x10\x01\x00\x00\x00\x00\x00\xb8\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xc0\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xc8\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe0\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".rela.plt", 0x538, "\x00\x10\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x08\x10\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x10\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x18\x10\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".init", 0x598, "\x1f\x20\x03\xd5\xfd\x7b\xbf\xa9\xfd\x03\x00\x91\x34\x00\x00\x94\xfd\x7b\xc1\xa8\xc0\x03\x5f\xd6"), -Section(".plt", 0x5B0, "\xf0\x7b\xbf\xa9\x90\x00\x00\x90\x11\xfe\x47\xf9\x10\xe2\x3f\x91\x20\x02\x1f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x90\x00\x00\xb0\x11\x02\x40\xf9\x10\x02\x00\x91\x20\x02\x1f\xd6\x90\x00\x00\xb0\x11\x06\x40\xf9\x10\x22\x00\x91\x20\x02\x1f\xd6\x90\x00\x00\xb0\x11\x0a\x40\xf9\x10\x42\x00\x91\x20\x02\x1f\xd6\x90\x00\x00\xb0\x11\x0e\x40\xf9\x10\x62\x00\x91\x20\x02\x1f\xd6"), -Section(".fini", 0x778, "\x1f\x20\x03\xd5\xfd\x7b\xbf\xa9\xfd\x03\x00\x91\xfd\x7b\xc1\xa8\xc0\x03\x5f\xd6"), -Section(".rodata", 0x78C, "\x01\x00\x02\x00"), -Section(".eh_frame_hdr", 0x790, "\x01\x1b\x03\x3b\x3c\x00\x00\x00\x06\x00\x00\x00\xb0\xfe\xff\xff\x54\x00\x00\x00\x00\xff\xff\xff\x68\x00\x00\x00\x30\xff\xff\xff\x7c\x00\x00\x00\x70\xff\xff\xff\x90\x00\x00\x00\xc0\xff\xff\xff\xb4\x00\x00\x00\xc4\xff\xff\xff\xdc\x00\x00\x00"), -Section(".eh_frame", 0x7D0, "\x10\x00\x00\x00\x00\x00\x00\x00\x01\x7a\x52\x00\x04\x78\x1e\x01\x1b\x0c\x1f\x00\x10\x00\x00\x00\x18\x00\x00\x00\x54\xfe\xff\xff\x34\x00\x00\x00\x00\x41\x07\x1e\x10\x00\x00\x00\x2c\x00\x00\x00\x90\xfe\xff\xff\x30\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x40\x00\x00\x00\xac\xfe\xff\xff\x3c\x00\x00\x00\x00\x00\x00\x00\x20\x00\x00\x00\x54\x00\x00\x00\xd8\xfe\xff\xff\x48\x00\x00\x00\x00\x41\x0e\x20\x9d\x04\x9e\x03\x42\x93\x02\x4e\xde\xdd\xd3\x0e\x00\x00\x00\x00\x10\x00\x00\x00\x78\x00\x00\x00\x04\xff\xff\xff\x04\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x01\x7a\x52\x00\x01\x7c\x1e\x01\x1b\x0c\x1f\x00\x14\x00\x00\x00\x18\x00\x00\x00\xe0\xfe\xff\xff\x24\x00\x00\x00\x00\x44\x0e\x10\x5c\x0e\x00\x00\x00\x00\x00\x00"), -Section(".fini_array", 0x10DC8, "\x00\x07\x00\x00\x00\x00\x00\x00"), -Section(".dynamic", 0x10DD0, "\x01\x00\x00\x00\x00\x00\x00\x00\x28\x00\x00\x00\x00\x00\x00\x00\x0c\x00\x00\x00\x00\x00\x00\x00\x98\x05\x00\x00\x00\x00\x00\x00\x0d\x00\x00\x00\x00\x00\x00\x00\x78\x07\x00\x00\x00\x00\x00\x00\x19\x00\x00\x00\x00\x00\x00\x00\xc0\x0d\x01\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x1a\x00\x00\x00\x00\x00\x00\x00\xc8\x0d\x01\x00\x00\x00\x00\x00\x1c\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\xf5\xfe\xff\x6f\x00\x00\x00\x00\x98\x02\x00\x00\x00\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x90\x03\x00\x00\x00\x00\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\xb8\x02\x00\x00\x00\x00\x00\x00\x0a\x00\x00\x00\x00\x00\x00\x00\x8d\x00\x00\x00\x00\x00\x00\x00\x0b\x00\x00\x00\x00\x00\x00\x00\x18\x00\x00\x00\x00\x00\x00\x00\x15\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\xe8\x0f\x01\x00\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x60\x00\x00\x00\x00\x00\x00\x00\x14\x00\x00\x00\x00\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x17\x00\x00\x00\x00\x00\x00\x00\x38\x05\x00\x00\x00\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x60\x04\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\xd8\x00\x00\x00\x00\x00\x00\x00\x09\x00\x00\x00\x00\x00\x00\x00\x18\x00\x00\x00\x00\x00\x00\x00\xfb\xff\xff\x6f\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\xfe\xff\xff\x6f\x00\x00\x00\x00\x30\x04\x00\x00\x00\x00\x00\x00\xff\xff\xff\x6f\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\xf0\xff\xff\x6f\x00\x00\x00\x00\x1e\x04\x00\x00\x00\x00\x00\x00\xf9\xff\xff\x6f\x00\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".init_array", 0x10DC0, "\x50\x07\x00\x00\x00\x00\x00\x00"), -Section(".got", 0x10FB0, "\xd0\x0d\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x54\x07\x00\x00\x00\x00\x00\x00\x34\x10\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".got.plt", 0x10FE8, "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xb0\x05\x00\x00\x00\x00\x00\x00\xb0\x05\x00\x00\x00\x00\x00\x00\xb0\x05\x00\x00\x00\x00\x00\x00\xb0\x05\x00\x00\x00\x00\x00\x00"), -Section(".data", 0x11020, "\x00\x00\x00\x00\x00\x00\x00\x00\x28\x10\x01\x00\x00\x00\x00\x00"), -Section(".text", 0x640, "\x1f\x20\x03\xd5\x1d\x00\x80\xd2\x1e\x00\x80\xd2\xe5\x03\x00\xaa\xe1\x03\x40\xf9\xe2\x23\x00\x91\xe6\x03\x00\x91\x80\x00\x00\x90\x00\xe8\x47\xf9\x03\x00\x80\xd2\x04\x00\x80\xd2\xd9\xff\xff\x97\xe4\xff\xff\x97\x80\x00\x00\x90\x00\xe4\x47\xf9\x40\x00\x00\xb4\xdc\xff\xff\x17\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x80\x00\x00\xb0\x00\xc0\x00\x91\x81\x00\x00\xb0\x21\xc0\x00\x91\x3f\x00\x00\xeb\xc0\x00\x00\x54\x81\x00\x00\x90\x21\xdc\x47\xf9\x61\x00\x00\xb4\xf0\x03\x01\xaa\x00\x02\x1f\xd6\xc0\x03\x5f\xd6\x80\x00\x00\xb0\x00\xc0\x00\x91\x81\x00\x00\xb0\x21\xc0\x00\x91\x21\x00\x00\xcb\x22\xfc\x7f\xd3\x41\x0c\x81\x8b\x21\xfc\x41\x93\xc1\x00\x00\xb4\x82\x00\x00\x90\x42\xf0\x47\xf9\x62\x00\x00\xb4\xf0\x03\x02\xaa\x00\x02\x1f\xd6\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\xfd\x7b\xbe\xa9\xfd\x03\x00\x91\xf3\x0b\x00\xf9\x93\x00\x00\xb0\x60\xc2\x40\x39\x40\x01\x00\x35\x80\x00\x00\x90\x00\xe0\x47\xf9\x80\x00\x00\xb4\x80\x00\x00\xb0\x00\x14\x40\xf9\xad\xff\xff\x97\xd8\xff\xff\x97\x20\x00\x80\x52\x60\xc2\x00\x39\xf3\x0b\x40\xf9\xfd\x7b\xc2\xa8\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\xdc\xff\xff\x17\xff\x43\x00\xd1\x89\x00\x00\x90\x29\xed\x47\xf9\xe0\x0f\x00\xb9\xe8\x0f\x40\xb9\x28\x05\x00\xb9\xe0\x03\x1f\x2a\xff\x43\x00\x91\xc0\x03\x5f\xd6")]), -Memmap([Annotation(Region(0x0,0x887), Attr("segment","02 0 2184")), -Annotation(Region(0x640,0x673), Attr("symbol","\"_start\"")), -Annotation(Region(0x0,0x102), Attr("section","\".shstrtab\"")), -Annotation(Region(0x0,0x241), Attr("section","\".strtab\"")), -Annotation(Region(0x0,0x86F), Attr("section","\".symtab\"")), -Annotation(Region(0x0,0x46), Attr("section","\".comment\"")), -Annotation(Region(0x238,0x252), Attr("section","\".interp\"")), -Annotation(Region(0x254,0x277), Attr("section","\".note.gnu.build-id\"")), -Annotation(Region(0x278,0x297), Attr("section","\".note.ABI-tag\"")), -Annotation(Region(0x298,0x2B3), Attr("section","\".gnu.hash\"")), -Annotation(Region(0x2B8,0x38F), Attr("section","\".dynsym\"")), -Annotation(Region(0x390,0x41C), Attr("section","\".dynstr\"")), -Annotation(Region(0x41E,0x42F), Attr("section","\".gnu.version\"")), -Annotation(Region(0x430,0x45F), Attr("section","\".gnu.version_r\"")), -Annotation(Region(0x460,0x537), Attr("section","\".rela.dyn\"")), -Annotation(Region(0x538,0x597), Attr("section","\".rela.plt\"")), -Annotation(Region(0x598,0x5AF), Attr("section","\".init\"")), -Annotation(Region(0x5B0,0x60F), Attr("section","\".plt\"")), -Annotation(Region(0x598,0x5AF), Attr("code-region","()")), -Annotation(Region(0x5B0,0x60F), Attr("code-region","()")), -Annotation(Region(0x640,0x673), Attr("symbol-info","_start 0x640 52")), -Annotation(Region(0x674,0x687), Attr("symbol","\"call_weak_fn\"")), -Annotation(Region(0x674,0x687), Attr("symbol-info","call_weak_fn 0x674 20")), -Annotation(Region(0x754,0x777), Attr("symbol","\"main\"")), -Annotation(Region(0x754,0x777), Attr("symbol-info","main 0x754 36")), -Annotation(Region(0x778,0x78B), Attr("section","\".fini\"")), -Annotation(Region(0x78C,0x78F), Attr("section","\".rodata\"")), -Annotation(Region(0x790,0x7CB), Attr("section","\".eh_frame_hdr\"")), -Annotation(Region(0x7D0,0x887), Attr("section","\".eh_frame\"")), -Annotation(Region(0x10DC0,0x1102F), Attr("segment","03 0x10DC0 640")), -Annotation(Region(0x10DC8,0x10DCF), Attr("section","\".fini_array\"")), -Annotation(Region(0x10DD0,0x10FAF), Attr("section","\".dynamic\"")), -Annotation(Region(0x10DC0,0x10DC7), Attr("section","\".init_array\"")), -Annotation(Region(0x10FB0,0x10FE7), Attr("section","\".got\"")), -Annotation(Region(0x10FE8,0x1101F), Attr("section","\".got.plt\"")), -Annotation(Region(0x11020,0x1102F), Attr("section","\".data\"")), -Annotation(Region(0x640,0x777), Attr("section","\".text\"")), -Annotation(Region(0x640,0x777), Attr("code-region","()")), -Annotation(Region(0x778,0x78B), Attr("code-region","()"))]), -Program(Tid(1_385, "%00000569"), Attrs([]), - Subs([Sub(Tid(1_335, "@__cxa_finalize"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x5E0"), -Attr("stub","()")]), "__cxa_finalize", Args([Arg(Tid(1_386, "%0000056a"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("__cxa_finalize_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(830, "@__cxa_finalize"), - Attrs([Attr("address","0x5E0")]), Phis([]), -Defs([Def(Tid(1_078, "%00000436"), Attrs([Attr("address","0x5E0"), -Attr("insn","adrp x16, #69632")]), Var("R16",Imm(64)), Int(69632,64)), -Def(Tid(1_085, "%0000043d"), Attrs([Attr("address","0x5E4"), -Attr("insn","ldr x17, [x16, #0x8]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(1_091, "%00000443"), Attrs([Attr("address","0x5E8"), -Attr("insn","add x16, x16, #0x8")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(8,64)))]), Jmps([Call(Tid(1_096, "%00000448"), - Attrs([Attr("address","0x5EC"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), -Sub(Tid(1_336, "@__do_global_dtors_aux"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x700")]), - "__do_global_dtors_aux", Args([Arg(Tid(1_387, "%0000056b"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("__do_global_dtors_aux_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(626, "@__do_global_dtors_aux"), - Attrs([Attr("address","0x700")]), Phis([]), Defs([Def(Tid(630, "%00000276"), - Attrs([Attr("address","0x700"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("#3",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(18446744073709551584,64))), -Def(Tid(636, "%0000027c"), Attrs([Attr("address","0x700"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("#3",Imm(64)),Var("R29",Imm(64)),LittleEndian(),64)), -Def(Tid(642, "%00000282"), Attrs([Attr("address","0x700"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("#3",Imm(64)),Int(8,64)),Var("R30",Imm(64)),LittleEndian(),64)), -Def(Tid(646, "%00000286"), Attrs([Attr("address","0x700"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("R31",Imm(64)), -Var("#3",Imm(64))), Def(Tid(652, "%0000028c"), - Attrs([Attr("address","0x704"), Attr("insn","mov x29, sp")]), - Var("R29",Imm(64)), Var("R31",Imm(64))), Def(Tid(660, "%00000294"), - Attrs([Attr("address","0x708"), Attr("insn","str x19, [sp, #0x10]")]), - Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(16,64)),Var("R19",Imm(64)),LittleEndian(),64)), -Def(Tid(665, "%00000299"), Attrs([Attr("address","0x70C"), -Attr("insn","adrp x19, #69632")]), Var("R19",Imm(64)), Int(69632,64)), -Def(Tid(672, "%000002a0"), Attrs([Attr("address","0x710"), -Attr("insn","ldrb w0, [x19, #0x30]")]), Var("R0",Imm(64)), -UNSIGNED(64,Load(Var("mem",Mem(64,8)),PLUS(Var("R19",Imm(64)),Int(48,64)),LittleEndian(),8)))]), -Jmps([Goto(Tid(679, "%000002a7"), Attrs([Attr("address","0x714"), -Attr("insn","cbnz w0, #0x28")]), - NEQ(Extract(31,0,Var("R0",Imm(64))),Int(0,32)), -Direct(Tid(677, "%000002a5"))), Goto(Tid(1_375, "%0000055f"), Attrs([]), - Int(1,1), Direct(Tid(775, "%00000307")))])), Blk(Tid(775, "%00000307"), - Attrs([Attr("address","0x718")]), Phis([]), Defs([Def(Tid(778, "%0000030a"), - Attrs([Attr("address","0x718"), Attr("insn","adrp x0, #65536")]), - Var("R0",Imm(64)), Int(65536,64)), Def(Tid(785, "%00000311"), - Attrs([Attr("address","0x71C"), Attr("insn","ldr x0, [x0, #0xfc0]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(4032,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(791, "%00000317"), Attrs([Attr("address","0x720"), -Attr("insn","cbz x0, #0x10")]), EQ(Var("R0",Imm(64)),Int(0,64)), -Direct(Tid(789, "%00000315"))), Goto(Tid(1_376, "%00000560"), Attrs([]), - Int(1,1), Direct(Tid(814, "%0000032e")))])), Blk(Tid(814, "%0000032e"), - Attrs([Attr("address","0x724")]), Phis([]), Defs([Def(Tid(817, "%00000331"), - Attrs([Attr("address","0x724"), Attr("insn","adrp x0, #69632")]), - Var("R0",Imm(64)), Int(69632,64)), Def(Tid(824, "%00000338"), - Attrs([Attr("address","0x728"), Attr("insn","ldr x0, [x0, #0x28]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(40,64)),LittleEndian(),64)), -Def(Tid(829, "%0000033d"), Attrs([Attr("address","0x72C"), -Attr("insn","bl #-0x14c")]), Var("R30",Imm(64)), Int(1840,64))]), -Jmps([Call(Tid(832, "%00000340"), Attrs([Attr("address","0x72C"), -Attr("insn","bl #-0x14c")]), Int(1,1), -(Direct(Tid(1_335, "@__cxa_finalize")),Direct(Tid(789, "%00000315"))))])), -Blk(Tid(789, "%00000315"), Attrs([Attr("address","0x730")]), Phis([]), -Defs([Def(Tid(797, "%0000031d"), Attrs([Attr("address","0x730"), -Attr("insn","bl #-0xa0")]), Var("R30",Imm(64)), Int(1844,64))]), -Jmps([Call(Tid(799, "%0000031f"), Attrs([Attr("address","0x730"), -Attr("insn","bl #-0xa0")]), Int(1,1), -(Direct(Tid(1_349, "@deregister_tm_clones")),Direct(Tid(801, "%00000321"))))])), -Blk(Tid(801, "%00000321"), Attrs([Attr("address","0x734")]), Phis([]), -Defs([Def(Tid(804, "%00000324"), Attrs([Attr("address","0x734"), -Attr("insn","mov w0, #0x1")]), Var("R0",Imm(64)), Int(1,64)), -Def(Tid(812, "%0000032c"), Attrs([Attr("address","0x738"), -Attr("insn","strb w0, [x19, #0x30]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R19",Imm(64)),Int(48,64)),Extract(7,0,Var("R0",Imm(64))),LittleEndian(),8))]), -Jmps([Goto(Tid(1_377, "%00000561"), Attrs([]), Int(1,1), -Direct(Tid(677, "%000002a5")))])), Blk(Tid(677, "%000002a5"), - Attrs([Attr("address","0x73C")]), Phis([]), Defs([Def(Tid(687, "%000002af"), - Attrs([Attr("address","0x73C"), Attr("insn","ldr x19, [sp, #0x10]")]), - Var("R19",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(16,64)),LittleEndian(),64)), -Def(Tid(694, "%000002b6"), Attrs([Attr("address","0x740"), -Attr("insn","ldp x29, x30, [sp], #0x20")]), Var("R29",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(699, "%000002bb"), Attrs([Attr("address","0x740"), -Attr("insn","ldp x29, x30, [sp], #0x20")]), Var("R30",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(703, "%000002bf"), Attrs([Attr("address","0x740"), -Attr("insn","ldp x29, x30, [sp], #0x20")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(32,64)))]), Jmps([Call(Tid(708, "%000002c4"), - Attrs([Attr("address","0x744"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), Sub(Tid(1_340, "@__libc_start_main"), - Attrs([Attr("c.proto","signed (*)(signed (*)(signed , char** , char** );* main, signed , char** , \nvoid* auxv)"), -Attr("address","0x5D0"), Attr("stub","()")]), "__libc_start_main", - Args([Arg(Tid(1_388, "%0000056c"), - Attrs([Attr("c.layout","**[ : 64]"), -Attr("c.data","Top:u64 ptr ptr"), -Attr("c.type","signed (*)(signed , char** , char** );*")]), - Var("__libc_start_main_main",Imm(64)), Var("R0",Imm(64)), In()), -Arg(Tid(1_389, "%0000056d"), Attrs([Attr("c.layout","[signed : 32]"), -Attr("c.data","Top:u32"), Attr("c.type","signed")]), - Var("__libc_start_main_arg2",Imm(32)), LOW(32,Var("R1",Imm(64))), In()), -Arg(Tid(1_390, "%0000056e"), Attrs([Attr("c.layout","**[char : 8]"), -Attr("c.data","Top:u8 ptr ptr"), Attr("c.type","char**")]), - Var("__libc_start_main_arg3",Imm(64)), Var("R2",Imm(64)), Both()), -Arg(Tid(1_391, "%0000056f"), Attrs([Attr("c.layout","*[ : 8]"), -Attr("c.data","{} ptr"), Attr("c.type","void*")]), - Var("__libc_start_main_auxv",Imm(64)), Var("R3",Imm(64)), Both()), -Arg(Tid(1_392, "%00000570"), Attrs([Attr("c.layout","[signed : 32]"), -Attr("c.data","Top:u32"), Attr("c.type","signed")]), - Var("__libc_start_main_result",Imm(32)), LOW(32,Var("R0",Imm(64))), -Out())]), Blks([Blk(Tid(459, "@__libc_start_main"), - Attrs([Attr("address","0x5D0")]), Phis([]), -Defs([Def(Tid(1_056, "%00000420"), Attrs([Attr("address","0x5D0"), -Attr("insn","adrp x16, #69632")]), Var("R16",Imm(64)), Int(69632,64)), -Def(Tid(1_063, "%00000427"), Attrs([Attr("address","0x5D4"), -Attr("insn","ldr x17, [x16]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R16",Imm(64)),LittleEndian(),64)), -Def(Tid(1_069, "%0000042d"), Attrs([Attr("address","0x5D8"), -Attr("insn","add x16, x16, #0x0")]), Var("R16",Imm(64)), -Var("R16",Imm(64)))]), Jmps([Call(Tid(1_074, "%00000432"), - Attrs([Attr("address","0x5DC"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), Sub(Tid(1_341, "@_fini"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x778")]), - "_fini", Args([Arg(Tid(1_393, "%00000571"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("_fini_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(31, "@_fini"), - Attrs([Attr("address","0x778")]), Phis([]), Defs([Def(Tid(37, "%00000025"), - Attrs([Attr("address","0x77C"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("#0",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(18446744073709551600,64))), -Def(Tid(43, "%0000002b"), Attrs([Attr("address","0x77C"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("#0",Imm(64)),Var("R29",Imm(64)),LittleEndian(),64)), -Def(Tid(49, "%00000031"), Attrs([Attr("address","0x77C"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("#0",Imm(64)),Int(8,64)),Var("R30",Imm(64)),LittleEndian(),64)), -Def(Tid(53, "%00000035"), Attrs([Attr("address","0x77C"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("R31",Imm(64)), -Var("#0",Imm(64))), Def(Tid(59, "%0000003b"), Attrs([Attr("address","0x780"), -Attr("insn","mov x29, sp")]), Var("R29",Imm(64)), Var("R31",Imm(64))), -Def(Tid(66, "%00000042"), Attrs([Attr("address","0x784"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R29",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(71, "%00000047"), Attrs([Attr("address","0x784"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R30",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(75, "%0000004b"), Attrs([Attr("address","0x784"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(16,64)))]), Jmps([Call(Tid(80, "%00000050"), - Attrs([Attr("address","0x788"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), Sub(Tid(1_342, "@_init"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x598")]), - "_init", Args([Arg(Tid(1_394, "%00000572"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("_init_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(1_168, "@_init"), - Attrs([Attr("address","0x598")]), Phis([]), -Defs([Def(Tid(1_174, "%00000496"), Attrs([Attr("address","0x59C"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("#5",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(18446744073709551600,64))), -Def(Tid(1_180, "%0000049c"), Attrs([Attr("address","0x59C"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("#5",Imm(64)),Var("R29",Imm(64)),LittleEndian(),64)), -Def(Tid(1_186, "%000004a2"), Attrs([Attr("address","0x59C"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("#5",Imm(64)),Int(8,64)),Var("R30",Imm(64)),LittleEndian(),64)), -Def(Tid(1_190, "%000004a6"), Attrs([Attr("address","0x59C"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("R31",Imm(64)), -Var("#5",Imm(64))), Def(Tid(1_196, "%000004ac"), - Attrs([Attr("address","0x5A0"), Attr("insn","mov x29, sp")]), - Var("R29",Imm(64)), Var("R31",Imm(64))), Def(Tid(1_201, "%000004b1"), - Attrs([Attr("address","0x5A4"), Attr("insn","bl #0xd0")]), - Var("R30",Imm(64)), Int(1448,64))]), Jmps([Call(Tid(1_203, "%000004b3"), - Attrs([Attr("address","0x5A4"), Attr("insn","bl #0xd0")]), Int(1,1), -(Direct(Tid(1_347, "@call_weak_fn")),Direct(Tid(1_205, "%000004b5"))))])), -Blk(Tid(1_205, "%000004b5"), Attrs([Attr("address","0x5A8")]), Phis([]), -Defs([Def(Tid(1_210, "%000004ba"), Attrs([Attr("address","0x5A8"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R29",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(1_215, "%000004bf"), Attrs([Attr("address","0x5A8"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R30",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(1_219, "%000004c3"), Attrs([Attr("address","0x5A8"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(16,64)))]), Jmps([Call(Tid(1_224, "%000004c8"), - Attrs([Attr("address","0x5AC"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), Sub(Tid(1_343, "@_start"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x640"), -Attr("entry-point","()")]), "_start", Args([Arg(Tid(1_395, "%00000573"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("_start_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(396, "@_start"), - Attrs([Attr("address","0x640")]), Phis([]), Defs([Def(Tid(401, "%00000191"), - Attrs([Attr("address","0x644"), Attr("insn","mov x29, #0x0")]), - Var("R29",Imm(64)), Int(0,64)), Def(Tid(406, "%00000196"), - Attrs([Attr("address","0x648"), Attr("insn","mov x30, #0x0")]), - Var("R30",Imm(64)), Int(0,64)), Def(Tid(412, "%0000019c"), - Attrs([Attr("address","0x64C"), Attr("insn","mov x5, x0")]), - Var("R5",Imm(64)), Var("R0",Imm(64))), Def(Tid(419, "%000001a3"), - Attrs([Attr("address","0x650"), Attr("insn","ldr x1, [sp]")]), - Var("R1",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(425, "%000001a9"), Attrs([Attr("address","0x654"), -Attr("insn","add x2, sp, #0x8")]), Var("R2",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(8,64))), Def(Tid(431, "%000001af"), - Attrs([Attr("address","0x658"), Attr("insn","mov x6, sp")]), - Var("R6",Imm(64)), Var("R31",Imm(64))), Def(Tid(436, "%000001b4"), - Attrs([Attr("address","0x65C"), Attr("insn","adrp x0, #65536")]), - Var("R0",Imm(64)), Int(65536,64)), Def(Tid(443, "%000001bb"), - Attrs([Attr("address","0x660"), Attr("insn","ldr x0, [x0, #0xfd0]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(4048,64)),LittleEndian(),64)), -Def(Tid(448, "%000001c0"), Attrs([Attr("address","0x664"), -Attr("insn","mov x3, #0x0")]), Var("R3",Imm(64)), Int(0,64)), -Def(Tid(453, "%000001c5"), Attrs([Attr("address","0x668"), -Attr("insn","mov x4, #0x0")]), Var("R4",Imm(64)), Int(0,64)), -Def(Tid(458, "%000001ca"), Attrs([Attr("address","0x66C"), -Attr("insn","bl #-0x9c")]), Var("R30",Imm(64)), Int(1648,64))]), -Jmps([Call(Tid(461, "%000001cd"), Attrs([Attr("address","0x66C"), -Attr("insn","bl #-0x9c")]), Int(1,1), -(Direct(Tid(1_340, "@__libc_start_main")),Direct(Tid(463, "%000001cf"))))])), -Blk(Tid(463, "%000001cf"), Attrs([Attr("address","0x670")]), Phis([]), -Defs([Def(Tid(466, "%000001d2"), Attrs([Attr("address","0x670"), -Attr("insn","bl #-0x70")]), Var("R30",Imm(64)), Int(1652,64))]), -Jmps([Call(Tid(469, "%000001d5"), Attrs([Attr("address","0x670"), -Attr("insn","bl #-0x70")]), Int(1,1), -(Direct(Tid(1_346, "@abort")),Direct(Tid(1_378, "%00000562"))))])), -Blk(Tid(1_378, "%00000562"), Attrs([]), Phis([]), Defs([]), -Jmps([Call(Tid(1_379, "%00000563"), Attrs([]), Int(1,1), -(Direct(Tid(1_347, "@call_weak_fn")),))]))])), Sub(Tid(1_346, "@abort"), - Attrs([Attr("noreturn","()"), Attr("c.proto","void (*)(void)"), -Attr("address","0x600"), Attr("stub","()")]), "abort", Args([]), -Blks([Blk(Tid(467, "@abort"), Attrs([Attr("address","0x600")]), Phis([]), -Defs([Def(Tid(1_122, "%00000462"), Attrs([Attr("address","0x600"), -Attr("insn","adrp x16, #69632")]), Var("R16",Imm(64)), Int(69632,64)), -Def(Tid(1_129, "%00000469"), Attrs([Attr("address","0x604"), -Attr("insn","ldr x17, [x16, #0x18]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(24,64)),LittleEndian(),64)), -Def(Tid(1_135, "%0000046f"), Attrs([Attr("address","0x608"), -Attr("insn","add x16, x16, #0x18")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(24,64)))]), Jmps([Call(Tid(1_140, "%00000474"), - Attrs([Attr("address","0x60C"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), Sub(Tid(1_347, "@call_weak_fn"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x674")]), - "call_weak_fn", Args([Arg(Tid(1_396, "%00000574"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("call_weak_fn_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(471, "@call_weak_fn"), - Attrs([Attr("address","0x674")]), Phis([]), Defs([Def(Tid(474, "%000001da"), - Attrs([Attr("address","0x674"), Attr("insn","adrp x0, #65536")]), - Var("R0",Imm(64)), Int(65536,64)), Def(Tid(481, "%000001e1"), - Attrs([Attr("address","0x678"), Attr("insn","ldr x0, [x0, #0xfc8]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(4040,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(487, "%000001e7"), Attrs([Attr("address","0x67C"), -Attr("insn","cbz x0, #0x8")]), EQ(Var("R0",Imm(64)),Int(0,64)), -Direct(Tid(485, "%000001e5"))), Goto(Tid(1_380, "%00000564"), Attrs([]), - Int(1,1), Direct(Tid(894, "%0000037e")))])), Blk(Tid(485, "%000001e5"), - Attrs([Attr("address","0x684")]), Phis([]), Defs([]), -Jmps([Call(Tid(493, "%000001ed"), Attrs([Attr("address","0x684"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))])), -Blk(Tid(894, "%0000037e"), Attrs([Attr("address","0x680")]), Phis([]), -Defs([]), Jmps([Goto(Tid(897, "%00000381"), Attrs([Attr("address","0x680"), -Attr("insn","b #-0x90")]), Int(1,1), Direct(Tid(895, "@__gmon_start__")))])), -Blk(Tid(895, "@__gmon_start__"), Attrs([Attr("address","0x5F0")]), Phis([]), -Defs([Def(Tid(1_100, "%0000044c"), Attrs([Attr("address","0x5F0"), -Attr("insn","adrp x16, #69632")]), Var("R16",Imm(64)), Int(69632,64)), -Def(Tid(1_107, "%00000453"), Attrs([Attr("address","0x5F4"), -Attr("insn","ldr x17, [x16, #0x10]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(16,64)),LittleEndian(),64)), -Def(Tid(1_113, "%00000459"), Attrs([Attr("address","0x5F8"), -Attr("insn","add x16, x16, #0x10")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(16,64)))]), Jmps([Call(Tid(1_118, "%0000045e"), - Attrs([Attr("address","0x5FC"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), -Sub(Tid(1_349, "@deregister_tm_clones"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x690")]), - "deregister_tm_clones", Args([Arg(Tid(1_397, "%00000575"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("deregister_tm_clones_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(499, "@deregister_tm_clones"), - Attrs([Attr("address","0x690")]), Phis([]), Defs([Def(Tid(502, "%000001f6"), - Attrs([Attr("address","0x690"), Attr("insn","adrp x0, #69632")]), - Var("R0",Imm(64)), Int(69632,64)), Def(Tid(508, "%000001fc"), - Attrs([Attr("address","0x694"), Attr("insn","add x0, x0, #0x30")]), - Var("R0",Imm(64)), PLUS(Var("R0",Imm(64)),Int(48,64))), -Def(Tid(513, "%00000201"), Attrs([Attr("address","0x698"), -Attr("insn","adrp x1, #69632")]), Var("R1",Imm(64)), Int(69632,64)), -Def(Tid(519, "%00000207"), Attrs([Attr("address","0x69C"), -Attr("insn","add x1, x1, #0x30")]), Var("R1",Imm(64)), -PLUS(Var("R1",Imm(64)),Int(48,64))), Def(Tid(525, "%0000020d"), - Attrs([Attr("address","0x6A0"), Attr("insn","cmp x1, x0")]), - Var("#1",Imm(64)), NOT(Var("R0",Imm(64)))), Def(Tid(530, "%00000212"), - Attrs([Attr("address","0x6A0"), Attr("insn","cmp x1, x0")]), - Var("#2",Imm(64)), PLUS(Var("R1",Imm(64)),NOT(Var("R0",Imm(64))))), -Def(Tid(536, "%00000218"), Attrs([Attr("address","0x6A0"), -Attr("insn","cmp x1, x0")]), Var("VF",Imm(1)), -NEQ(SIGNED(65,PLUS(Var("#2",Imm(64)),Int(1,64))),PLUS(PLUS(SIGNED(65,Var("R1",Imm(64))),SIGNED(65,Var("#1",Imm(64)))),Int(1,65)))), -Def(Tid(542, "%0000021e"), Attrs([Attr("address","0x6A0"), -Attr("insn","cmp x1, x0")]), Var("CF",Imm(1)), -NEQ(UNSIGNED(65,PLUS(Var("#2",Imm(64)),Int(1,64))),PLUS(PLUS(UNSIGNED(65,Var("R1",Imm(64))),UNSIGNED(65,Var("#1",Imm(64)))),Int(1,65)))), -Def(Tid(546, "%00000222"), Attrs([Attr("address","0x6A0"), -Attr("insn","cmp x1, x0")]), Var("ZF",Imm(1)), -EQ(PLUS(Var("#2",Imm(64)),Int(1,64)),Int(0,64))), Def(Tid(550, "%00000226"), - Attrs([Attr("address","0x6A0"), Attr("insn","cmp x1, x0")]), - Var("NF",Imm(1)), Extract(63,63,PLUS(Var("#2",Imm(64)),Int(1,64))))]), -Jmps([Goto(Tid(556, "%0000022c"), Attrs([Attr("address","0x6A4"), -Attr("insn","b.eq #0x18")]), EQ(Var("ZF",Imm(1)),Int(1,1)), -Direct(Tid(554, "%0000022a"))), Goto(Tid(1_381, "%00000565"), Attrs([]), - Int(1,1), Direct(Tid(864, "%00000360")))])), Blk(Tid(864, "%00000360"), - Attrs([Attr("address","0x6A8")]), Phis([]), Defs([Def(Tid(867, "%00000363"), - Attrs([Attr("address","0x6A8"), Attr("insn","adrp x1, #65536")]), - Var("R1",Imm(64)), Int(65536,64)), Def(Tid(874, "%0000036a"), - Attrs([Attr("address","0x6AC"), Attr("insn","ldr x1, [x1, #0xfb8]")]), - Var("R1",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R1",Imm(64)),Int(4024,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(879, "%0000036f"), Attrs([Attr("address","0x6B0"), -Attr("insn","cbz x1, #0xc")]), EQ(Var("R1",Imm(64)),Int(0,64)), -Direct(Tid(554, "%0000022a"))), Goto(Tid(1_382, "%00000566"), Attrs([]), - Int(1,1), Direct(Tid(883, "%00000373")))])), Blk(Tid(554, "%0000022a"), - Attrs([Attr("address","0x6BC")]), Phis([]), Defs([]), -Jmps([Call(Tid(562, "%00000232"), Attrs([Attr("address","0x6BC"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))])), -Blk(Tid(883, "%00000373"), Attrs([Attr("address","0x6B4")]), Phis([]), -Defs([Def(Tid(887, "%00000377"), Attrs([Attr("address","0x6B4"), -Attr("insn","mov x16, x1")]), Var("R16",Imm(64)), Var("R1",Imm(64)))]), -Jmps([Call(Tid(892, "%0000037c"), Attrs([Attr("address","0x6B8"), -Attr("insn","br x16")]), Int(1,1), (Indirect(Var("R16",Imm(64))),))]))])), -Sub(Tid(1_352, "@frame_dummy"), Attrs([Attr("c.proto","signed (*)(void)"), -Attr("address","0x750")]), "frame_dummy", Args([Arg(Tid(1_398, "%00000576"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("frame_dummy_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(714, "@frame_dummy"), - Attrs([Attr("address","0x750")]), Phis([]), Defs([]), -Jmps([Call(Tid(716, "%000002cc"), Attrs([Attr("address","0x750"), -Attr("insn","b #-0x90")]), Int(1,1), -(Direct(Tid(1_354, "@register_tm_clones")),))]))])), Sub(Tid(1_353, "@main"), - Attrs([Attr("c.proto","signed (*)(signed argc, const char** argv)"), -Attr("address","0x754")]), "main", Args([Arg(Tid(1_399, "%00000577"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("main_argc",Imm(32)), -LOW(32,Var("R0",Imm(64))), In()), Arg(Tid(1_400, "%00000578"), - Attrs([Attr("c.layout","**[char : 8]"), Attr("c.data","Top:u8 ptr ptr"), -Attr("c.type"," const char**")]), Var("main_argv",Imm(64)), -Var("R1",Imm(64)), Both()), Arg(Tid(1_401, "%00000579"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("main_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(718, "@main"), - Attrs([Attr("address","0x754")]), Phis([]), Defs([Def(Tid(722, "%000002d2"), - Attrs([Attr("address","0x754"), Attr("insn","sub sp, sp, #0x10")]), - Var("R31",Imm(64)), PLUS(Var("R31",Imm(64)),Int(18446744073709551600,64))), -Def(Tid(727, "%000002d7"), Attrs([Attr("address","0x758"), -Attr("insn","adrp x9, #65536")]), Var("R9",Imm(64)), Int(65536,64)), -Def(Tid(734, "%000002de"), Attrs([Attr("address","0x75C"), -Attr("insn","ldr x9, [x9, #0xfd8]")]), Var("R9",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R9",Imm(64)),Int(4056,64)),LittleEndian(),64)), -Def(Tid(742, "%000002e6"), Attrs([Attr("address","0x760"), -Attr("insn","str w0, [sp, #0xc]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(12,64)),Extract(31,0,Var("R0",Imm(64))),LittleEndian(),32)), -Def(Tid(749, "%000002ed"), Attrs([Attr("address","0x764"), -Attr("insn","ldr w8, [sp, #0xc]")]), Var("R8",Imm(64)), -UNSIGNED(64,Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(12,64)),LittleEndian(),32))), -Def(Tid(757, "%000002f5"), Attrs([Attr("address","0x768"), -Attr("insn","str w8, [x9, #0x4]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R9",Imm(64)),Int(4,64)),Extract(31,0,Var("R8",Imm(64))),LittleEndian(),32)), -Def(Tid(762, "%000002fa"), Attrs([Attr("address","0x76C"), -Attr("insn","mov w0, wzr")]), Var("R0",Imm(64)), Int(0,64)), -Def(Tid(768, "%00000300"), Attrs([Attr("address","0x770"), -Attr("insn","add sp, sp, #0x10")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(16,64)))]), Jmps([Call(Tid(773, "%00000305"), - Attrs([Attr("address","0x774"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), -Sub(Tid(1_354, "@register_tm_clones"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x6C0")]), - "register_tm_clones", Args([Arg(Tid(1_402, "%0000057a"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("register_tm_clones_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(564, "@register_tm_clones"), Attrs([Attr("address","0x6C0")]), - Phis([]), Defs([Def(Tid(567, "%00000237"), Attrs([Attr("address","0x6C0"), -Attr("insn","adrp x0, #69632")]), Var("R0",Imm(64)), Int(69632,64)), -Def(Tid(573, "%0000023d"), Attrs([Attr("address","0x6C4"), -Attr("insn","add x0, x0, #0x30")]), Var("R0",Imm(64)), -PLUS(Var("R0",Imm(64)),Int(48,64))), Def(Tid(578, "%00000242"), - Attrs([Attr("address","0x6C8"), Attr("insn","adrp x1, #69632")]), - Var("R1",Imm(64)), Int(69632,64)), Def(Tid(584, "%00000248"), - Attrs([Attr("address","0x6CC"), Attr("insn","add x1, x1, #0x30")]), - Var("R1",Imm(64)), PLUS(Var("R1",Imm(64)),Int(48,64))), -Def(Tid(591, "%0000024f"), Attrs([Attr("address","0x6D0"), -Attr("insn","sub x1, x1, x0")]), Var("R1",Imm(64)), -PLUS(PLUS(Var("R1",Imm(64)),NOT(Var("R0",Imm(64)))),Int(1,64))), -Def(Tid(597, "%00000255"), Attrs([Attr("address","0x6D4"), -Attr("insn","lsr x2, x1, #63")]), Var("R2",Imm(64)), -Concat(Int(0,63),Extract(63,63,Var("R1",Imm(64))))), -Def(Tid(604, "%0000025c"), Attrs([Attr("address","0x6D8"), -Attr("insn","add x1, x2, x1, asr #3")]), Var("R1",Imm(64)), -PLUS(Var("R2",Imm(64)),ARSHIFT(Var("R1",Imm(64)),Int(3,3)))), -Def(Tid(610, "%00000262"), Attrs([Attr("address","0x6DC"), -Attr("insn","asr x1, x1, #1")]), Var("R1",Imm(64)), -SIGNED(64,Extract(63,1,Var("R1",Imm(64)))))]), -Jmps([Goto(Tid(616, "%00000268"), Attrs([Attr("address","0x6E0"), -Attr("insn","cbz x1, #0x18")]), EQ(Var("R1",Imm(64)),Int(0,64)), -Direct(Tid(614, "%00000266"))), Goto(Tid(1_383, "%00000567"), Attrs([]), - Int(1,1), Direct(Tid(834, "%00000342")))])), Blk(Tid(834, "%00000342"), - Attrs([Attr("address","0x6E4")]), Phis([]), Defs([Def(Tid(837, "%00000345"), - Attrs([Attr("address","0x6E4"), Attr("insn","adrp x2, #65536")]), - Var("R2",Imm(64)), Int(65536,64)), Def(Tid(844, "%0000034c"), - Attrs([Attr("address","0x6E8"), Attr("insn","ldr x2, [x2, #0xfe0]")]), - Var("R2",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R2",Imm(64)),Int(4064,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(849, "%00000351"), Attrs([Attr("address","0x6EC"), -Attr("insn","cbz x2, #0xc")]), EQ(Var("R2",Imm(64)),Int(0,64)), -Direct(Tid(614, "%00000266"))), Goto(Tid(1_384, "%00000568"), Attrs([]), - Int(1,1), Direct(Tid(853, "%00000355")))])), Blk(Tid(614, "%00000266"), - Attrs([Attr("address","0x6F8")]), Phis([]), Defs([]), -Jmps([Call(Tid(622, "%0000026e"), Attrs([Attr("address","0x6F8"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))])), -Blk(Tid(853, "%00000355"), Attrs([Attr("address","0x6F0")]), Phis([]), -Defs([Def(Tid(857, "%00000359"), Attrs([Attr("address","0x6F0"), -Attr("insn","mov x16, x2")]), Var("R16",Imm(64)), Var("R2",Imm(64)))]), -Jmps([Call(Tid(862, "%0000035e"), Attrs([Attr("address","0x6F4"), -Attr("insn","br x16")]), Int(1,1), -(Indirect(Var("R16",Imm(64))),))]))]))]))) \ No newline at end of file diff --git a/src/test/correct/basic_arrays_write/clang_pic/basic_arrays_write.bir b/src/test/correct/basic_arrays_write/clang_pic/basic_arrays_write.bir deleted file mode 100644 index cd313fa98..000000000 --- a/src/test/correct/basic_arrays_write/clang_pic/basic_arrays_write.bir +++ /dev/null @@ -1,231 +0,0 @@ -00000569: program -00000537: sub __cxa_finalize(__cxa_finalize_result) -0000056a: __cxa_finalize_result :: out u32 = low:32[R0] - -0000033e: -00000436: R16 := 0x11000 -0000043d: R17 := mem[R16 + 8, el]:u64 -00000443: R16 := R16 + 8 -00000448: call R17 with noreturn - -00000538: sub __do_global_dtors_aux(__do_global_dtors_aux_result) -0000056b: __do_global_dtors_aux_result :: out u32 = low:32[R0] - -00000272: -00000276: #3 := R31 - 0x20 -0000027c: mem := mem with [#3, el]:u64 <- R29 -00000282: mem := mem with [#3 + 8, el]:u64 <- R30 -00000286: R31 := #3 -0000028c: R29 := R31 -00000294: mem := mem with [R31 + 0x10, el]:u64 <- R19 -00000299: R19 := 0x11000 -000002a0: R0 := pad:64[mem[R19 + 0x30]] -000002a7: when 31:0[R0] <> 0 goto %000002a5 -0000055f: goto %00000307 - -00000307: -0000030a: R0 := 0x10000 -00000311: R0 := mem[R0 + 0xFC0, el]:u64 -00000317: when R0 = 0 goto %00000315 -00000560: goto %0000032e - -0000032e: -00000331: R0 := 0x11000 -00000338: R0 := mem[R0 + 0x28, el]:u64 -0000033d: R30 := 0x730 -00000340: call @__cxa_finalize with return %00000315 - -00000315: -0000031d: R30 := 0x734 -0000031f: call @deregister_tm_clones with return %00000321 - -00000321: -00000324: R0 := 1 -0000032c: mem := mem with [R19 + 0x30] <- 7:0[R0] -00000561: goto %000002a5 - -000002a5: -000002af: R19 := mem[R31 + 0x10, el]:u64 -000002b6: R29 := mem[R31, el]:u64 -000002bb: R30 := mem[R31 + 8, el]:u64 -000002bf: R31 := R31 + 0x20 -000002c4: call R30 with noreturn - -0000053c: sub __libc_start_main(__libc_start_main_main, __libc_start_main_arg2, __libc_start_main_arg3, __libc_start_main_auxv, __libc_start_main_result) -0000056c: __libc_start_main_main :: in u64 = R0 -0000056d: __libc_start_main_arg2 :: in u32 = low:32[R1] -0000056e: __libc_start_main_arg3 :: in out u64 = R2 -0000056f: __libc_start_main_auxv :: in out u64 = R3 -00000570: __libc_start_main_result :: out u32 = low:32[R0] - -000001cb: -00000420: R16 := 0x11000 -00000427: R17 := mem[R16, el]:u64 -0000042d: R16 := R16 -00000432: call R17 with noreturn - -0000053d: sub _fini(_fini_result) -00000571: _fini_result :: out u32 = low:32[R0] - -0000001f: -00000025: #0 := R31 - 0x10 -0000002b: mem := mem with [#0, el]:u64 <- R29 -00000031: mem := mem with [#0 + 8, el]:u64 <- R30 -00000035: R31 := #0 -0000003b: R29 := R31 -00000042: R29 := mem[R31, el]:u64 -00000047: R30 := mem[R31 + 8, el]:u64 -0000004b: R31 := R31 + 0x10 -00000050: call R30 with noreturn - -0000053e: sub _init(_init_result) -00000572: _init_result :: out u32 = low:32[R0] - -00000490: -00000496: #5 := R31 - 0x10 -0000049c: mem := mem with [#5, el]:u64 <- R29 -000004a2: mem := mem with [#5 + 8, el]:u64 <- R30 -000004a6: R31 := #5 -000004ac: R29 := R31 -000004b1: R30 := 0x5A8 -000004b3: call @call_weak_fn with return %000004b5 - -000004b5: -000004ba: R29 := mem[R31, el]:u64 -000004bf: R30 := mem[R31 + 8, el]:u64 -000004c3: R31 := R31 + 0x10 -000004c8: call R30 with noreturn - -0000053f: sub _start(_start_result) -00000573: _start_result :: out u32 = low:32[R0] - -0000018c: -00000191: R29 := 0 -00000196: R30 := 0 -0000019c: R5 := R0 -000001a3: R1 := mem[R31, el]:u64 -000001a9: R2 := R31 + 8 -000001af: R6 := R31 -000001b4: R0 := 0x10000 -000001bb: R0 := mem[R0 + 0xFD0, el]:u64 -000001c0: R3 := 0 -000001c5: R4 := 0 -000001ca: R30 := 0x670 -000001cd: call @__libc_start_main with return %000001cf - -000001cf: -000001d2: R30 := 0x674 -000001d5: call @abort with return %00000562 - -00000562: -00000563: call @call_weak_fn with noreturn - -00000542: sub abort() - - -000001d3: -00000462: R16 := 0x11000 -00000469: R17 := mem[R16 + 0x18, el]:u64 -0000046f: R16 := R16 + 0x18 -00000474: call R17 with noreturn - -00000543: sub call_weak_fn(call_weak_fn_result) -00000574: call_weak_fn_result :: out u32 = low:32[R0] - -000001d7: -000001da: R0 := 0x10000 -000001e1: R0 := mem[R0 + 0xFC8, el]:u64 -000001e7: when R0 = 0 goto %000001e5 -00000564: goto %0000037e - -000001e5: -000001ed: call R30 with noreturn - -0000037e: -00000381: goto @__gmon_start__ - -0000037f: -0000044c: R16 := 0x11000 -00000453: R17 := mem[R16 + 0x10, el]:u64 -00000459: R16 := R16 + 0x10 -0000045e: call R17 with noreturn - -00000545: sub deregister_tm_clones(deregister_tm_clones_result) -00000575: deregister_tm_clones_result :: out u32 = low:32[R0] - -000001f3: -000001f6: R0 := 0x11000 -000001fc: R0 := R0 + 0x30 -00000201: R1 := 0x11000 -00000207: R1 := R1 + 0x30 -0000020d: #1 := ~R0 -00000212: #2 := R1 + ~R0 -00000218: VF := extend:65[#2 + 1] <> extend:65[R1] + extend:65[#1] + 1 -0000021e: CF := pad:65[#2 + 1] <> pad:65[R1] + pad:65[#1] + 1 -00000222: ZF := #2 + 1 = 0 -00000226: NF := 63:63[#2 + 1] -0000022c: when ZF goto %0000022a -00000565: goto %00000360 - -00000360: -00000363: R1 := 0x10000 -0000036a: R1 := mem[R1 + 0xFB8, el]:u64 -0000036f: when R1 = 0 goto %0000022a -00000566: goto %00000373 - -0000022a: -00000232: call R30 with noreturn - -00000373: -00000377: R16 := R1 -0000037c: call R16 with noreturn - -00000548: sub frame_dummy(frame_dummy_result) -00000576: frame_dummy_result :: out u32 = low:32[R0] - -000002ca: -000002cc: call @register_tm_clones with noreturn - -00000549: sub main(main_argc, main_argv, main_result) -00000577: main_argc :: in u32 = low:32[R0] -00000578: main_argv :: in out u64 = R1 -00000579: main_result :: out u32 = low:32[R0] - -000002ce: -000002d2: R31 := R31 - 0x10 -000002d7: R9 := 0x10000 -000002de: R9 := mem[R9 + 0xFD8, el]:u64 -000002e6: mem := mem with [R31 + 0xC, el]:u32 <- 31:0[R0] -000002ed: R8 := pad:64[mem[R31 + 0xC, el]:u32] -000002f5: mem := mem with [R9 + 4, el]:u32 <- 31:0[R8] -000002fa: R0 := 0 -00000300: R31 := R31 + 0x10 -00000305: call R30 with noreturn - -0000054a: sub register_tm_clones(register_tm_clones_result) -0000057a: register_tm_clones_result :: out u32 = low:32[R0] - -00000234: -00000237: R0 := 0x11000 -0000023d: R0 := R0 + 0x30 -00000242: R1 := 0x11000 -00000248: R1 := R1 + 0x30 -0000024f: R1 := R1 + ~R0 + 1 -00000255: R2 := 0.63:63[R1] -0000025c: R1 := R2 + (R1 ~>> 3) -00000262: R1 := extend:64[63:1[R1]] -00000268: when R1 = 0 goto %00000266 -00000567: goto %00000342 - -00000342: -00000345: R2 := 0x10000 -0000034c: R2 := mem[R2 + 0xFE0, el]:u64 -00000351: when R2 = 0 goto %00000266 -00000568: goto %00000355 - -00000266: -0000026e: call R30 with noreturn - -00000355: -00000359: R16 := R2 -0000035e: call R16 with noreturn diff --git a/src/test/correct/basic_arrays_write/clang_pic/basic_arrays_write.expected b/src/test/correct/basic_arrays_write/clang_pic/basic_arrays_write.expected index 471ab631e..099eecaba 100644 --- a/src/test/correct/basic_arrays_write/clang_pic/basic_arrays_write.expected +++ b/src/test/correct/basic_arrays_write/clang_pic/basic_arrays_write.expected @@ -1,26 +1,18 @@ var {:extern} Gamma_R0: bool; -var {:extern} Gamma_R31: bool; var {:extern} Gamma_R8: bool; var {:extern} Gamma_R9: bool; var {:extern} Gamma_mem: [bv64]bool; -var {:extern} Gamma_stack: [bv64]bool; var {:extern} R0: bv64; -var {:extern} R31: bv64; var {:extern} R8: bv64; var {:extern} R9: bv64; var {:extern} mem: [bv64]bv8; -var {:extern} stack: [bv64]bv8; const {:extern} $arr_addr: bv64; -axiom ($arr_addr == 69684bv64); +axiom ($arr_addr == 131092bv64); function {:extern} L(mem$in: [bv64]bv8, index: bv64) returns (bool) { (if ((index == bvadd64($arr_addr, 4bv64)) || (index == bvadd64($arr_addr, 0bv64))) then false else false) } function {:extern} {:bvbuiltin "bvadd"} bvadd64(bv64, bv64) returns (bv64); -function {:extern} gamma_load32(gammaMap: [bv64]bool, index: bv64) returns (bool) { - (gammaMap[bvadd64(index, 3bv64)] && (gammaMap[bvadd64(index, 2bv64)] && (gammaMap[bvadd64(index, 1bv64)] && gammaMap[index]))) -} - function {:extern} gamma_load64(gammaMap: [bv64]bool, index: bv64) returns (bool) { (gammaMap[bvadd64(index, 7bv64)] && (gammaMap[bvadd64(index, 6bv64)] && (gammaMap[bvadd64(index, 5bv64)] && (gammaMap[bvadd64(index, 4bv64)] && (gammaMap[bvadd64(index, 3bv64)] && (gammaMap[bvadd64(index, 2bv64)] && (gammaMap[bvadd64(index, 1bv64)] && gammaMap[index]))))))) } @@ -46,12 +38,12 @@ procedure {:extern} rely(); modifies Gamma_mem, mem; ensures (forall i: bv64 :: (((mem[i] == old(mem[i])) ==> (Gamma_mem[i] == old(Gamma_mem[i]))))); ensures true; - free ensures (memory_load32_le(mem, 1932bv64) == 131073bv32); - free ensures (memory_load64_le(mem, 69056bv64) == 1872bv64); - free ensures (memory_load64_le(mem, 69064bv64) == 1792bv64); - free ensures (memory_load64_le(mem, 69584bv64) == 1876bv64); - free ensures (memory_load64_le(mem, 69592bv64) == 69684bv64); - free ensures (memory_load64_le(mem, 69672bv64) == 69672bv64); + free ensures (memory_load32_le(mem, 2304bv64) == 131073bv32); + free ensures (memory_load64_le(mem, 130432bv64) == 2256bv64); + free ensures (memory_load64_le(mem, 130440bv64) == 2176bv64); + free ensures (memory_load64_le(mem, 131048bv64) == 2260bv64); + free ensures (memory_load64_le(mem, 131056bv64) == 131092bv64); + free ensures (memory_load64_le(mem, 131080bv64) == 131080bv64); procedure {:extern} rely_transitive(); modifies Gamma_mem, mem; @@ -78,55 +70,46 @@ implementation {:extern} guarantee_reflexive() assert (memory_load32_le(mem, bvadd64($arr_addr, 0bv64)) == memory_load32_le(mem, bvadd64($arr_addr, 0bv64))); } -procedure main_1876(); - modifies Gamma_R0, Gamma_R31, Gamma_R8, Gamma_R9, Gamma_mem, Gamma_stack, R0, R31, R8, R9, mem, stack; +procedure main(); + modifies Gamma_R0, Gamma_R8, Gamma_R9, Gamma_mem, R0, R8, R9, mem; requires (Gamma_R0 == false); - free requires (memory_load64_le(mem, 69664bv64) == 0bv64); - free requires (memory_load64_le(mem, 69672bv64) == 69672bv64); - free requires (memory_load32_le(mem, 1932bv64) == 131073bv32); - free requires (memory_load64_le(mem, 69056bv64) == 1872bv64); - free requires (memory_load64_le(mem, 69064bv64) == 1792bv64); - free requires (memory_load64_le(mem, 69584bv64) == 1876bv64); - free requires (memory_load64_le(mem, 69592bv64) == 69684bv64); - free requires (memory_load64_le(mem, 69672bv64) == 69672bv64); - free ensures (Gamma_R31 == old(Gamma_R31)); - free ensures (R31 == old(R31)); - free ensures (memory_load32_le(mem, 1932bv64) == 131073bv32); - free ensures (memory_load64_le(mem, 69056bv64) == 1872bv64); - free ensures (memory_load64_le(mem, 69064bv64) == 1792bv64); - free ensures (memory_load64_le(mem, 69584bv64) == 1876bv64); - free ensures (memory_load64_le(mem, 69592bv64) == 69684bv64); - free ensures (memory_load64_le(mem, 69672bv64) == 69672bv64); - -implementation main_1876() + free requires (memory_load64_le(mem, 131072bv64) == 0bv64); + free requires (memory_load64_le(mem, 131080bv64) == 131080bv64); + free requires (memory_load32_le(mem, 2304bv64) == 131073bv32); + free requires (memory_load64_le(mem, 130432bv64) == 2256bv64); + free requires (memory_load64_le(mem, 130440bv64) == 2176bv64); + free requires (memory_load64_le(mem, 131048bv64) == 2260bv64); + free requires (memory_load64_le(mem, 131056bv64) == 131092bv64); + free requires (memory_load64_le(mem, 131080bv64) == 131080bv64); + free ensures (memory_load32_le(mem, 2304bv64) == 131073bv32); + free ensures (memory_load64_le(mem, 130432bv64) == 2256bv64); + free ensures (memory_load64_le(mem, 130440bv64) == 2176bv64); + free ensures (memory_load64_le(mem, 131048bv64) == 2260bv64); + free ensures (memory_load64_le(mem, 131056bv64) == 131092bv64); + free ensures (memory_load64_le(mem, 131080bv64) == 131080bv64); + +implementation main() { - var Gamma_load18: bool; - var Gamma_load19: bool; + var $load$18: bv64; + var Gamma_$load$18: bool; var arr$0_old: bv32; - var load18: bv64; - var load19: bv32; lmain: assume {:captureState "lmain"} true; - R31, Gamma_R31 := bvadd64(R31, 18446744073709551600bv64), Gamma_R31; - R9, Gamma_R9 := 65536bv64, true; + R9, Gamma_R9 := 126976bv64, true; + R8, Gamma_R8 := zero_extend32_32(R0[32:0]), Gamma_R0; + R0, Gamma_R0 := 0bv64, true; call rely(); - load18, Gamma_load18 := memory_load64_le(mem, bvadd64(R9, 4056bv64)), (gamma_load64(Gamma_mem, bvadd64(R9, 4056bv64)) || L(mem, bvadd64(R9, 4056bv64))); - R9, Gamma_R9 := load18, Gamma_load18; - stack, Gamma_stack := memory_store32_le(stack, bvadd64(R31, 12bv64), R0[32:0]), gamma_store32(Gamma_stack, bvadd64(R31, 12bv64), Gamma_R0); - assume {:captureState "%000002e6"} true; - load19, Gamma_load19 := memory_load32_le(stack, bvadd64(R31, 12bv64)), gamma_load32(Gamma_stack, bvadd64(R31, 12bv64)); - R8, Gamma_R8 := zero_extend32_32(load19), Gamma_load19; + $load$18, Gamma_$load$18 := memory_load64_le(mem, bvadd64(R9, 4080bv64)), (gamma_load64(Gamma_mem, bvadd64(R9, 4080bv64)) || L(mem, bvadd64(R9, 4080bv64))); + R9, Gamma_R9 := $load$18, Gamma_$load$18; call rely(); - arr$0_old := memory_load32_le(mem, bvadd64($arr_addr, 0bv64)); assert (L(mem, bvadd64(R9, 4bv64)) ==> Gamma_R8); + arr$0_old := memory_load32_le(mem, bvadd64($arr_addr, 0bv64)); mem, Gamma_mem := memory_store32_le(mem, bvadd64(R9, 4bv64), R8[32:0]), gamma_store32(Gamma_mem, bvadd64(R9, 4bv64), Gamma_R8); assert (arr$0_old == memory_load32_le(mem, bvadd64($arr_addr, 0bv64))); - assume {:captureState "%000002f5"} true; - R0, Gamma_R0 := 0bv64, true; - R31, Gamma_R31 := bvadd64(R31, 16bv64), Gamma_R31; - goto main_1876_basil_return; - main_1876_basil_return: - assume {:captureState "main_1876_basil_return"} true; + assume {:captureState "%0000028c"} true; + goto main_basil_return; + main_basil_return: + assume {:captureState "main_basil_return"} true; return; } diff --git a/src/test/correct/basic_arrays_write/clang_pic/basic_arrays_write.gts b/src/test/correct/basic_arrays_write/clang_pic/basic_arrays_write.gts deleted file mode 100644 index 5e0c3f8d0..000000000 Binary files a/src/test/correct/basic_arrays_write/clang_pic/basic_arrays_write.gts and /dev/null differ diff --git a/src/test/correct/basic_arrays_write/clang_pic/basic_arrays_write.md5sum b/src/test/correct/basic_arrays_write/clang_pic/basic_arrays_write.md5sum new file mode 100644 index 000000000..0b2e2a85b --- /dev/null +++ b/src/test/correct/basic_arrays_write/clang_pic/basic_arrays_write.md5sum @@ -0,0 +1,5 @@ +75c34632b47c4036e93b11aab69e0ccb correct/basic_arrays_write/clang_pic/a.out +d9ae2a8663bc7444360b966ffe8ee3f3 correct/basic_arrays_write/clang_pic/basic_arrays_write.adt +0cff015d98c9b42206035ddcfaee0efa correct/basic_arrays_write/clang_pic/basic_arrays_write.bir +fdd1c48d023e34a57a328c2a68f7b0c5 correct/basic_arrays_write/clang_pic/basic_arrays_write.relf +86002c84d07ff1fe22b98f7088ef5ef6 correct/basic_arrays_write/clang_pic/basic_arrays_write.gts diff --git a/src/test/correct/basic_arrays_write/clang_pic/basic_arrays_write.relf b/src/test/correct/basic_arrays_write/clang_pic/basic_arrays_write.relf deleted file mode 100644 index 2b1a747b3..000000000 --- a/src/test/correct/basic_arrays_write/clang_pic/basic_arrays_write.relf +++ /dev/null @@ -1,124 +0,0 @@ - -Relocation section '.rela.dyn' at offset 0x460 contains 9 entries: - Offset Info Type Symbol's Value Symbol's Name + Addend -0000000000010dc0 0000000000000403 R_AARCH64_RELATIVE 750 -0000000000010dc8 0000000000000403 R_AARCH64_RELATIVE 700 -0000000000010fd0 0000000000000403 R_AARCH64_RELATIVE 754 -0000000000010fd8 0000000000000403 R_AARCH64_RELATIVE 11034 -0000000000011028 0000000000000403 R_AARCH64_RELATIVE 11028 -0000000000010fb8 0000000400000401 R_AARCH64_GLOB_DAT 0000000000000000 _ITM_deregisterTMCloneTable + 0 -0000000000010fc0 0000000500000401 R_AARCH64_GLOB_DAT 0000000000000000 __cxa_finalize@GLIBC_2.17 + 0 -0000000000010fc8 0000000600000401 R_AARCH64_GLOB_DAT 0000000000000000 __gmon_start__ + 0 -0000000000010fe0 0000000800000401 R_AARCH64_GLOB_DAT 0000000000000000 _ITM_registerTMCloneTable + 0 - -Relocation section '.rela.plt' at offset 0x538 contains 4 entries: - Offset Info Type Symbol's Value Symbol's Name + Addend -0000000000011000 0000000300000402 R_AARCH64_JUMP_SLOT 0000000000000000 __libc_start_main@GLIBC_2.34 + 0 -0000000000011008 0000000500000402 R_AARCH64_JUMP_SLOT 0000000000000000 __cxa_finalize@GLIBC_2.17 + 0 -0000000000011010 0000000600000402 R_AARCH64_JUMP_SLOT 0000000000000000 __gmon_start__ + 0 -0000000000011018 0000000700000402 R_AARCH64_JUMP_SLOT 0000000000000000 abort@GLIBC_2.17 + 0 - -Symbol table '.dynsym' contains 9 entries: - Num: Value Size Type Bind Vis Ndx Name - 0: 0000000000000000 0 NOTYPE LOCAL DEFAULT UND - 1: 0000000000000598 0 SECTION LOCAL DEFAULT 11 .init - 2: 0000000000011020 0 SECTION LOCAL DEFAULT 23 .data - 3: 0000000000000000 0 FUNC GLOBAL DEFAULT UND __libc_start_main@GLIBC_2.34 (2) - 4: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_deregisterTMCloneTable - 5: 0000000000000000 0 FUNC WEAK DEFAULT UND __cxa_finalize@GLIBC_2.17 (3) - 6: 0000000000000000 0 NOTYPE WEAK DEFAULT UND __gmon_start__ - 7: 0000000000000000 0 FUNC GLOBAL DEFAULT UND abort@GLIBC_2.17 (3) - 8: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_registerTMCloneTable - -Symbol table '.symtab' contains 90 entries: - Num: Value Size Type Bind Vis Ndx Name - 0: 0000000000000000 0 NOTYPE LOCAL DEFAULT UND - 1: 0000000000000238 0 SECTION LOCAL DEFAULT 1 .interp - 2: 0000000000000254 0 SECTION LOCAL DEFAULT 2 .note.gnu.build-id - 3: 0000000000000278 0 SECTION LOCAL DEFAULT 3 .note.ABI-tag - 4: 0000000000000298 0 SECTION LOCAL DEFAULT 4 .gnu.hash - 5: 00000000000002b8 0 SECTION LOCAL DEFAULT 5 .dynsym - 6: 0000000000000390 0 SECTION LOCAL DEFAULT 6 .dynstr - 7: 000000000000041e 0 SECTION LOCAL DEFAULT 7 .gnu.version - 8: 0000000000000430 0 SECTION LOCAL DEFAULT 8 .gnu.version_r - 9: 0000000000000460 0 SECTION LOCAL DEFAULT 9 .rela.dyn - 10: 0000000000000538 0 SECTION LOCAL DEFAULT 10 .rela.plt - 11: 0000000000000598 0 SECTION LOCAL DEFAULT 11 .init - 12: 00000000000005b0 0 SECTION LOCAL DEFAULT 12 .plt - 13: 0000000000000640 0 SECTION LOCAL DEFAULT 13 .text - 14: 0000000000000778 0 SECTION LOCAL DEFAULT 14 .fini - 15: 000000000000078c 0 SECTION LOCAL DEFAULT 15 .rodata - 16: 0000000000000790 0 SECTION LOCAL DEFAULT 16 .eh_frame_hdr - 17: 00000000000007d0 0 SECTION LOCAL DEFAULT 17 .eh_frame - 18: 0000000000010dc0 0 SECTION LOCAL DEFAULT 18 .init_array - 19: 0000000000010dc8 0 SECTION LOCAL DEFAULT 19 .fini_array - 20: 0000000000010dd0 0 SECTION LOCAL DEFAULT 20 .dynamic - 21: 0000000000010fb0 0 SECTION LOCAL DEFAULT 21 .got - 22: 0000000000010fe8 0 SECTION LOCAL DEFAULT 22 .got.plt - 23: 0000000000011020 0 SECTION LOCAL DEFAULT 23 .data - 24: 0000000000011030 0 SECTION LOCAL DEFAULT 24 .bss - 25: 0000000000000000 0 SECTION LOCAL DEFAULT 25 .comment - 26: 0000000000000000 0 FILE LOCAL DEFAULT ABS Scrt1.o - 27: 0000000000000278 0 NOTYPE LOCAL DEFAULT 3 $d - 28: 0000000000000278 32 OBJECT LOCAL DEFAULT 3 __abi_tag - 29: 0000000000000640 0 NOTYPE LOCAL DEFAULT 13 $x - 30: 00000000000007e4 0 NOTYPE LOCAL DEFAULT 17 $d - 31: 000000000000078c 0 NOTYPE LOCAL DEFAULT 15 $d - 32: 0000000000000000 0 FILE LOCAL DEFAULT ABS crti.o - 33: 0000000000000674 0 NOTYPE LOCAL DEFAULT 13 $x - 34: 0000000000000674 20 FUNC LOCAL DEFAULT 13 call_weak_fn - 35: 0000000000000598 0 NOTYPE LOCAL DEFAULT 11 $x - 36: 0000000000000778 0 NOTYPE LOCAL DEFAULT 14 $x - 37: 0000000000000000 0 FILE LOCAL DEFAULT ABS crtn.o - 38: 00000000000005a8 0 NOTYPE LOCAL DEFAULT 11 $x - 39: 0000000000000784 0 NOTYPE LOCAL DEFAULT 14 $x - 40: 0000000000000000 0 FILE LOCAL DEFAULT ABS crtstuff.c - 41: 0000000000000690 0 NOTYPE LOCAL DEFAULT 13 $x - 42: 0000000000000690 0 FUNC LOCAL DEFAULT 13 deregister_tm_clones - 43: 00000000000006c0 0 FUNC LOCAL DEFAULT 13 register_tm_clones - 44: 0000000000011028 0 NOTYPE LOCAL DEFAULT 23 $d - 45: 0000000000000700 0 FUNC LOCAL DEFAULT 13 __do_global_dtors_aux - 46: 0000000000011030 1 OBJECT LOCAL DEFAULT 24 completed.0 - 47: 0000000000010dc8 0 NOTYPE LOCAL DEFAULT 19 $d - 48: 0000000000010dc8 0 OBJECT LOCAL DEFAULT 19 __do_global_dtors_aux_fini_array_entry - 49: 0000000000000750 0 FUNC LOCAL DEFAULT 13 frame_dummy - 50: 0000000000010dc0 0 NOTYPE LOCAL DEFAULT 18 $d - 51: 0000000000010dc0 0 OBJECT LOCAL DEFAULT 18 __frame_dummy_init_array_entry - 52: 00000000000007f8 0 NOTYPE LOCAL DEFAULT 17 $d - 53: 0000000000011030 0 NOTYPE LOCAL DEFAULT 24 $d - 54: 0000000000000000 0 FILE LOCAL DEFAULT ABS basic_arrays_write.c - 55: 0000000000000754 0 NOTYPE LOCAL DEFAULT 13 $x.0 - 56: 0000000000011034 0 NOTYPE LOCAL DEFAULT 24 $d.1 - 57: 000000000000002a 0 NOTYPE LOCAL DEFAULT 25 $d.2 - 58: 0000000000000858 0 NOTYPE LOCAL DEFAULT 17 $d.3 - 59: 0000000000000000 0 FILE LOCAL DEFAULT ABS crtstuff.c - 60: 0000000000000884 0 NOTYPE LOCAL DEFAULT 17 $d - 61: 0000000000000884 0 OBJECT LOCAL DEFAULT 17 __FRAME_END__ - 62: 0000000000000000 0 FILE LOCAL DEFAULT ABS - 63: 0000000000010dd0 0 OBJECT LOCAL DEFAULT ABS _DYNAMIC - 64: 0000000000000790 0 NOTYPE LOCAL DEFAULT 16 __GNU_EH_FRAME_HDR - 65: 0000000000010fb0 0 OBJECT LOCAL DEFAULT ABS _GLOBAL_OFFSET_TABLE_ - 66: 00000000000005b0 0 NOTYPE LOCAL DEFAULT 12 $x - 67: 0000000000000000 0 FUNC GLOBAL DEFAULT UND __libc_start_main@GLIBC_2.34 - 68: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_deregisterTMCloneTable - 69: 0000000000011020 0 NOTYPE WEAK DEFAULT 23 data_start - 70: 0000000000011030 0 NOTYPE GLOBAL DEFAULT 24 __bss_start__ - 71: 0000000000000000 0 FUNC WEAK DEFAULT UND __cxa_finalize@GLIBC_2.17 - 72: 0000000000011040 0 NOTYPE GLOBAL DEFAULT 24 _bss_end__ - 73: 0000000000011030 0 NOTYPE GLOBAL DEFAULT 23 _edata - 74: 0000000000000778 0 FUNC GLOBAL HIDDEN 14 _fini - 75: 0000000000011040 0 NOTYPE GLOBAL DEFAULT 24 __bss_end__ - 76: 0000000000011020 0 NOTYPE GLOBAL DEFAULT 23 __data_start - 77: 0000000000000000 0 NOTYPE WEAK DEFAULT UND __gmon_start__ - 78: 0000000000011028 0 OBJECT GLOBAL HIDDEN 23 __dso_handle - 79: 0000000000000000 0 FUNC GLOBAL DEFAULT UND abort@GLIBC_2.17 - 80: 000000000000078c 4 OBJECT GLOBAL DEFAULT 15 _IO_stdin_used - 81: 0000000000011040 0 NOTYPE GLOBAL DEFAULT 24 _end - 82: 0000000000000640 52 FUNC GLOBAL DEFAULT 13 _start - 83: 0000000000011040 0 NOTYPE GLOBAL DEFAULT 24 __end__ - 84: 0000000000011030 0 NOTYPE GLOBAL DEFAULT 24 __bss_start - 85: 0000000000000754 36 FUNC GLOBAL DEFAULT 13 main - 86: 0000000000011034 8 OBJECT GLOBAL DEFAULT 24 arr - 87: 0000000000011030 0 OBJECT GLOBAL HIDDEN 23 __TMC_END__ - 88: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_registerTMCloneTable - 89: 0000000000000598 0 FUNC GLOBAL HIDDEN 11 _init diff --git a/src/test/correct/basic_arrays_write/clang_pic/basic_arrays_write_gtirb.expected b/src/test/correct/basic_arrays_write/clang_pic/basic_arrays_write_gtirb.expected index e3afa7d9b..f92fcd979 100644 --- a/src/test/correct/basic_arrays_write/clang_pic/basic_arrays_write_gtirb.expected +++ b/src/test/correct/basic_arrays_write/clang_pic/basic_arrays_write_gtirb.expected @@ -1,26 +1,18 @@ var {:extern} Gamma_R0: bool; -var {:extern} Gamma_R31: bool; var {:extern} Gamma_R8: bool; var {:extern} Gamma_R9: bool; var {:extern} Gamma_mem: [bv64]bool; -var {:extern} Gamma_stack: [bv64]bool; var {:extern} R0: bv64; -var {:extern} R31: bv64; var {:extern} R8: bv64; var {:extern} R9: bv64; var {:extern} mem: [bv64]bv8; -var {:extern} stack: [bv64]bv8; const {:extern} $arr_addr: bv64; -axiom ($arr_addr == 69684bv64); +axiom ($arr_addr == 131092bv64); function {:extern} L(mem$in: [bv64]bv8, index: bv64) returns (bool) { (if ((index == bvadd64($arr_addr, 4bv64)) || (index == bvadd64($arr_addr, 0bv64))) then false else false) } function {:extern} {:bvbuiltin "bvadd"} bvadd64(bv64, bv64) returns (bv64); -function {:extern} gamma_load32(gammaMap: [bv64]bool, index: bv64) returns (bool) { - (gammaMap[bvadd64(index, 3bv64)] && (gammaMap[bvadd64(index, 2bv64)] && (gammaMap[bvadd64(index, 1bv64)] && gammaMap[index]))) -} - function {:extern} gamma_load64(gammaMap: [bv64]bool, index: bv64) returns (bool) { (gammaMap[bvadd64(index, 7bv64)] && (gammaMap[bvadd64(index, 6bv64)] && (gammaMap[bvadd64(index, 5bv64)] && (gammaMap[bvadd64(index, 4bv64)] && (gammaMap[bvadd64(index, 3bv64)] && (gammaMap[bvadd64(index, 2bv64)] && (gammaMap[bvadd64(index, 1bv64)] && gammaMap[index]))))))) } @@ -46,12 +38,12 @@ procedure {:extern} rely(); modifies Gamma_mem, mem; ensures (forall i: bv64 :: (((mem[i] == old(mem[i])) ==> (Gamma_mem[i] == old(Gamma_mem[i]))))); ensures true; - free ensures (memory_load32_le(mem, 1932bv64) == 131073bv32); - free ensures (memory_load64_le(mem, 69056bv64) == 1872bv64); - free ensures (memory_load64_le(mem, 69064bv64) == 1792bv64); - free ensures (memory_load64_le(mem, 69584bv64) == 1876bv64); - free ensures (memory_load64_le(mem, 69592bv64) == 69684bv64); - free ensures (memory_load64_le(mem, 69672bv64) == 69672bv64); + free ensures (memory_load32_le(mem, 2304bv64) == 131073bv32); + free ensures (memory_load64_le(mem, 130432bv64) == 2256bv64); + free ensures (memory_load64_le(mem, 130440bv64) == 2176bv64); + free ensures (memory_load64_le(mem, 131048bv64) == 2260bv64); + free ensures (memory_load64_le(mem, 131056bv64) == 131092bv64); + free ensures (memory_load64_le(mem, 131080bv64) == 131080bv64); procedure {:extern} rely_transitive(); modifies Gamma_mem, mem; @@ -78,55 +70,46 @@ implementation {:extern} guarantee_reflexive() assert (memory_load32_le(mem, bvadd64($arr_addr, 0bv64)) == memory_load32_le(mem, bvadd64($arr_addr, 0bv64))); } -procedure main_1876(); - modifies Gamma_R0, Gamma_R31, Gamma_R8, Gamma_R9, Gamma_mem, Gamma_stack, R0, R31, R8, R9, mem, stack; +procedure main(); + modifies Gamma_R0, Gamma_R8, Gamma_R9, Gamma_mem, R0, R8, R9, mem; requires (Gamma_R0 == false); - free requires (memory_load64_le(mem, 69664bv64) == 0bv64); - free requires (memory_load64_le(mem, 69672bv64) == 69672bv64); - free requires (memory_load32_le(mem, 1932bv64) == 131073bv32); - free requires (memory_load64_le(mem, 69056bv64) == 1872bv64); - free requires (memory_load64_le(mem, 69064bv64) == 1792bv64); - free requires (memory_load64_le(mem, 69584bv64) == 1876bv64); - free requires (memory_load64_le(mem, 69592bv64) == 69684bv64); - free requires (memory_load64_le(mem, 69672bv64) == 69672bv64); - free ensures (Gamma_R31 == old(Gamma_R31)); - free ensures (R31 == old(R31)); - free ensures (memory_load32_le(mem, 1932bv64) == 131073bv32); - free ensures (memory_load64_le(mem, 69056bv64) == 1872bv64); - free ensures (memory_load64_le(mem, 69064bv64) == 1792bv64); - free ensures (memory_load64_le(mem, 69584bv64) == 1876bv64); - free ensures (memory_load64_le(mem, 69592bv64) == 69684bv64); - free ensures (memory_load64_le(mem, 69672bv64) == 69672bv64); - -implementation main_1876() + free requires (memory_load64_le(mem, 131072bv64) == 0bv64); + free requires (memory_load64_le(mem, 131080bv64) == 131080bv64); + free requires (memory_load32_le(mem, 2304bv64) == 131073bv32); + free requires (memory_load64_le(mem, 130432bv64) == 2256bv64); + free requires (memory_load64_le(mem, 130440bv64) == 2176bv64); + free requires (memory_load64_le(mem, 131048bv64) == 2260bv64); + free requires (memory_load64_le(mem, 131056bv64) == 131092bv64); + free requires (memory_load64_le(mem, 131080bv64) == 131080bv64); + free ensures (memory_load32_le(mem, 2304bv64) == 131073bv32); + free ensures (memory_load64_le(mem, 130432bv64) == 2256bv64); + free ensures (memory_load64_le(mem, 130440bv64) == 2176bv64); + free ensures (memory_load64_le(mem, 131048bv64) == 2260bv64); + free ensures (memory_load64_le(mem, 131056bv64) == 131092bv64); + free ensures (memory_load64_le(mem, 131080bv64) == 131080bv64); + +implementation main() { - var Gamma_load18: bool; - var Gamma_load19: bool; + var $load11: bv64; + var Gamma_$load11: bool; var arr$0_old: bv32; - var load18: bv64; - var load19: bv32; - main_1876__0__QhI~JImIRPKZUYP_OR5sGw: - assume {:captureState "main_1876__0__QhI~JImIRPKZUYP_OR5sGw"} true; - R31, Gamma_R31 := bvadd64(R31, 18446744073709551600bv64), Gamma_R31; - R9, Gamma_R9 := 65536bv64, true; + $main$__0__$oqiqdATZTc6MDOYJqL9Aew: + assume {:captureState "$main$__0__$oqiqdATZTc6MDOYJqL9Aew"} true; + R9, Gamma_R9 := 126976bv64, true; + R8, Gamma_R8 := zero_extend32_32(R0[32:0]), Gamma_R0; + R0, Gamma_R0 := 0bv64, true; call rely(); - load18, Gamma_load18 := memory_load64_le(mem, bvadd64(R9, 4056bv64)), (gamma_load64(Gamma_mem, bvadd64(R9, 4056bv64)) || L(mem, bvadd64(R9, 4056bv64))); - R9, Gamma_R9 := load18, Gamma_load18; - stack, Gamma_stack := memory_store32_le(stack, bvadd64(R31, 12bv64), R0[32:0]), gamma_store32(Gamma_stack, bvadd64(R31, 12bv64), Gamma_R0); - assume {:captureState "1888_0"} true; - load19, Gamma_load19 := memory_load32_le(stack, bvadd64(R31, 12bv64)), gamma_load32(Gamma_stack, bvadd64(R31, 12bv64)); - R8, Gamma_R8 := zero_extend32_32(load19), Gamma_load19; + $load11, Gamma_$load11 := memory_load64_le(mem, bvadd64(R9, 4080bv64)), (gamma_load64(Gamma_mem, bvadd64(R9, 4080bv64)) || L(mem, bvadd64(R9, 4080bv64))); + R9, Gamma_R9 := $load11, Gamma_$load11; call rely(); - arr$0_old := memory_load32_le(mem, bvadd64($arr_addr, 0bv64)); assert (L(mem, bvadd64(R9, 4bv64)) ==> Gamma_R8); + arr$0_old := memory_load32_le(mem, bvadd64($arr_addr, 0bv64)); mem, Gamma_mem := memory_store32_le(mem, bvadd64(R9, 4bv64), R8[32:0]), gamma_store32(Gamma_mem, bvadd64(R9, 4bv64), Gamma_R8); assert (arr$0_old == memory_load32_le(mem, bvadd64($arr_addr, 0bv64))); - assume {:captureState "1896_0"} true; - R0, Gamma_R0 := 0bv64, true; - R31, Gamma_R31 := bvadd64(R31, 16bv64), Gamma_R31; - goto main_1876_basil_return; - main_1876_basil_return: - assume {:captureState "main_1876_basil_return"} true; + assume {:captureState "2276$0"} true; + goto main_basil_return; + main_basil_return: + assume {:captureState "main_basil_return"} true; return; } diff --git a/src/test/correct/basic_arrays_write/gcc/basic_arrays_write.adt b/src/test/correct/basic_arrays_write/gcc/basic_arrays_write.adt deleted file mode 100644 index fb5e4f85c..000000000 --- a/src/test/correct/basic_arrays_write/gcc/basic_arrays_write.adt +++ /dev/null @@ -1,502 +0,0 @@ -Project(Attrs([Attr("filename","\"gcc/basic_arrays_write.out\""), -Attr("image-specification","(declare abi (name str))\n(declare arch (name str))\n(declare base-address (addr int))\n(declare bias (off int))\n(declare bits (size int))\n(declare code-region (addr int) (size int) (off int))\n(declare code-start (addr int))\n(declare entry-point (addr int))\n(declare external-reference (addr int) (name str))\n(declare format (name str))\n(declare is-executable (flag bool))\n(declare is-little-endian (flag bool))\n(declare llvm:base-address (addr int))\n(declare llvm:code-entry (name str) (off int) (size int))\n(declare llvm:coff-import-library (name str))\n(declare llvm:coff-virtual-section-header (name str) (addr int) (size int))\n(declare llvm:elf-program-header (name str) (off int) (size int))\n(declare llvm:elf-program-header-flags (name str) (ld bool) (r bool) \n (w bool) (x bool))\n(declare llvm:elf-virtual-program-header (name str) (addr int) (size int))\n(declare llvm:entry-point (addr int))\n(declare llvm:macho-symbol (name str) (value int))\n(declare llvm:name-reference (at int) (name str))\n(declare llvm:relocation (at int) (addr int))\n(declare llvm:section-entry (name str) (addr int) (size int) (off int))\n(declare llvm:section-flags (name str) (r bool) (w bool) (x bool))\n(declare llvm:segment-command (name str) (off int) (size int))\n(declare llvm:segment-command-flags (name str) (r bool) (w bool) (x bool))\n(declare llvm:symbol-entry (name str) (addr int) (size int) (off int)\n (value int))\n(declare llvm:virtual-segment-command (name str) (addr int) (size int))\n(declare mapped (addr int) (size int) (off int))\n(declare named-region (addr int) (size int) (name str))\n(declare named-symbol (addr int) (name str))\n(declare require (name str))\n(declare section (addr int) (size int))\n(declare segment (addr int) (size int) (r bool) (w bool) (x bool))\n(declare subarch (name str))\n(declare symbol-chunk (addr int) (size int) (root int))\n(declare symbol-value (addr int) (value int))\n(declare system (name str))\n(declare vendor (name str))\n\n(abi unknown)\n(arch aarch64)\n(base-address 0)\n(bias 0)\n(bits 64)\n(code-region 1848 20 1848)\n(code-region 1536 312 1536)\n(code-region 1440 96 1440)\n(code-region 1408 24 1408)\n(code-start 1588)\n(code-start 1536)\n(code-start 1812)\n(entry-point 1536)\n(external-reference 69592 _ITM_deregisterTMCloneTable)\n(external-reference 69600 __cxa_finalize)\n(external-reference 69608 __gmon_start__)\n(external-reference 69624 _ITM_registerTMCloneTable)\n(external-reference 69552 __libc_start_main)\n(external-reference 69560 __cxa_finalize)\n(external-reference 69568 __gmon_start__)\n(external-reference 69576 abort)\n(format elf)\n(is-executable true)\n(is-little-endian true)\n(llvm:base-address 0)\n(llvm:code-entry abort 0 0)\n(llvm:code-entry __cxa_finalize 0 0)\n(llvm:code-entry __libc_start_main 0 0)\n(llvm:code-entry _init 1408 0)\n(llvm:code-entry main 1812 36)\n(llvm:code-entry _start 1536 52)\n(llvm:code-entry abort@GLIBC_2.17 0 0)\n(llvm:code-entry _fini 1848 0)\n(llvm:code-entry __cxa_finalize@GLIBC_2.17 0 0)\n(llvm:code-entry __libc_start_main@GLIBC_2.34 0 0)\n(llvm:code-entry frame_dummy 1808 0)\n(llvm:code-entry __do_global_dtors_aux 1728 0)\n(llvm:code-entry register_tm_clones 1664 0)\n(llvm:code-entry deregister_tm_clones 1616 0)\n(llvm:code-entry call_weak_fn 1588 20)\n(llvm:code-entry .fini 1848 20)\n(llvm:code-entry .text 1536 312)\n(llvm:code-entry .plt 1440 96)\n(llvm:code-entry .init 1408 24)\n(llvm:elf-program-header 08 3480 616)\n(llvm:elf-program-header 07 0 0)\n(llvm:elf-program-header 06 1872 60)\n(llvm:elf-program-header 05 596 68)\n(llvm:elf-program-header 04 3496 496)\n(llvm:elf-program-header 03 3480 632)\n(llvm:elf-program-header 02 0 2100)\n(llvm:elf-program-header 01 568 27)\n(llvm:elf-program-header 00 64 504)\n(llvm:elf-program-header-flags 08 false true false false)\n(llvm:elf-program-header-flags 07 false true true false)\n(llvm:elf-program-header-flags 06 false true false false)\n(llvm:elf-program-header-flags 05 false true false false)\n(llvm:elf-program-header-flags 04 false true true false)\n(llvm:elf-program-header-flags 03 true true true false)\n(llvm:elf-program-header-flags 02 true true false true)\n(llvm:elf-program-header-flags 01 false true false false)\n(llvm:elf-program-header-flags 00 false true false false)\n(llvm:elf-virtual-program-header 08 69016 616)\n(llvm:elf-virtual-program-header 07 0 0)\n(llvm:elf-virtual-program-header 06 1872 60)\n(llvm:elf-virtual-program-header 05 596 68)\n(llvm:elf-virtual-program-header 04 69032 496)\n(llvm:elf-virtual-program-header 03 69016 648)\n(llvm:elf-virtual-program-header 02 0 2100)\n(llvm:elf-virtual-program-header 01 568 27)\n(llvm:elf-virtual-program-header 00 64 504)\n(llvm:entry-point 1536)\n(llvm:name-reference 69576 abort)\n(llvm:name-reference 69568 __gmon_start__)\n(llvm:name-reference 69560 __cxa_finalize)\n(llvm:name-reference 69552 __libc_start_main)\n(llvm:name-reference 69624 _ITM_registerTMCloneTable)\n(llvm:name-reference 69608 __gmon_start__)\n(llvm:name-reference 69600 __cxa_finalize)\n(llvm:name-reference 69592 _ITM_deregisterTMCloneTable)\n(llvm:section-entry .shstrtab 0 250 6830)\n(llvm:section-entry .strtab 0 558 6272)\n(llvm:section-entry .symtab 0 2112 4160)\n(llvm:section-entry .comment 0 43 4112)\n(llvm:section-entry .bss 69648 16 4112)\n(llvm:section-entry .data 69632 16 4096)\n(llvm:section-entry .got 69528 104 3992)\n(llvm:section-entry .dynamic 69032 496 3496)\n(llvm:section-entry .fini_array 69024 8 3488)\n(llvm:section-entry .init_array 69016 8 3480)\n(llvm:section-entry .eh_frame 1936 164 1936)\n(llvm:section-entry .eh_frame_hdr 1872 60 1872)\n(llvm:section-entry .rodata 1868 4 1868)\n(llvm:section-entry .fini 1848 20 1848)\n(llvm:section-entry .text 1536 312 1536)\n(llvm:section-entry .plt 1440 96 1440)\n(llvm:section-entry .init 1408 24 1408)\n(llvm:section-entry .rela.plt 1312 96 1312)\n(llvm:section-entry .rela.dyn 1120 192 1120)\n(llvm:section-entry .gnu.version_r 1072 48 1072)\n(llvm:section-entry .gnu.version 1054 18 1054)\n(llvm:section-entry .dynstr 912 141 912)\n(llvm:section-entry .dynsym 696 216 696)\n(llvm:section-entry .gnu.hash 664 28 664)\n(llvm:section-entry .note.ABI-tag 632 32 632)\n(llvm:section-entry .note.gnu.build-id 596 36 596)\n(llvm:section-entry .interp 568 27 568)\n(llvm:section-flags .shstrtab true false false)\n(llvm:section-flags .strtab true false false)\n(llvm:section-flags .symtab true false false)\n(llvm:section-flags .comment true false false)\n(llvm:section-flags .bss true true false)\n(llvm:section-flags .data true true false)\n(llvm:section-flags .got true true false)\n(llvm:section-flags .dynamic true true false)\n(llvm:section-flags .fini_array true true false)\n(llvm:section-flags .init_array true true false)\n(llvm:section-flags .eh_frame true false false)\n(llvm:section-flags .eh_frame_hdr true false false)\n(llvm:section-flags .rodata true false false)\n(llvm:section-flags .fini true false true)\n(llvm:section-flags .text true false true)\n(llvm:section-flags .plt true false true)\n(llvm:section-flags .init true false true)\n(llvm:section-flags .rela.plt true false false)\n(llvm:section-flags .rela.dyn true false false)\n(llvm:section-flags .gnu.version_r true false false)\n(llvm:section-flags .gnu.version true false false)\n(llvm:section-flags .dynstr true false false)\n(llvm:section-flags .dynsym true false false)\n(llvm:section-flags .gnu.hash true false false)\n(llvm:section-flags .note.ABI-tag true false false)\n(llvm:section-flags .note.gnu.build-id true false false)\n(llvm:section-flags .interp true false false)\n(llvm:symbol-entry abort 0 0 0 0)\n(llvm:symbol-entry __cxa_finalize 0 0 0 0)\n(llvm:symbol-entry __libc_start_main 0 0 0 0)\n(llvm:symbol-entry _init 1408 0 1408 1408)\n(llvm:symbol-entry main 1812 36 1812 1812)\n(llvm:symbol-entry _start 1536 52 1536 1536)\n(llvm:symbol-entry abort@GLIBC_2.17 0 0 0 0)\n(llvm:symbol-entry _fini 1848 0 1848 1848)\n(llvm:symbol-entry __cxa_finalize@GLIBC_2.17 0 0 0 0)\n(llvm:symbol-entry __libc_start_main@GLIBC_2.34 0 0 0 0)\n(llvm:symbol-entry frame_dummy 1808 0 1808 1808)\n(llvm:symbol-entry __do_global_dtors_aux 1728 0 1728 1728)\n(llvm:symbol-entry register_tm_clones 1664 0 1664 1664)\n(llvm:symbol-entry deregister_tm_clones 1616 0 1616 1616)\n(llvm:symbol-entry call_weak_fn 1588 20 1588 1588)\n(mapped 0 2100 0)\n(mapped 69016 632 3480)\n(named-region 0 2100 02)\n(named-region 69016 648 03)\n(named-region 568 27 .interp)\n(named-region 596 36 .note.gnu.build-id)\n(named-region 632 32 .note.ABI-tag)\n(named-region 664 28 .gnu.hash)\n(named-region 696 216 .dynsym)\n(named-region 912 141 .dynstr)\n(named-region 1054 18 .gnu.version)\n(named-region 1072 48 .gnu.version_r)\n(named-region 1120 192 .rela.dyn)\n(named-region 1312 96 .rela.plt)\n(named-region 1408 24 .init)\n(named-region 1440 96 .plt)\n(named-region 1536 312 .text)\n(named-region 1848 20 .fini)\n(named-region 1868 4 .rodata)\n(named-region 1872 60 .eh_frame_hdr)\n(named-region 1936 164 .eh_frame)\n(named-region 69016 8 .init_array)\n(named-region 69024 8 .fini_array)\n(named-region 69032 496 .dynamic)\n(named-region 69528 104 .got)\n(named-region 69632 16 .data)\n(named-region 69648 16 .bss)\n(named-region 0 43 .comment)\n(named-region 0 2112 .symtab)\n(named-region 0 558 .strtab)\n(named-region 0 250 .shstrtab)\n(named-symbol 1588 call_weak_fn)\n(named-symbol 1616 deregister_tm_clones)\n(named-symbol 1664 register_tm_clones)\n(named-symbol 1728 __do_global_dtors_aux)\n(named-symbol 1808 frame_dummy)\n(named-symbol 0 __libc_start_main@GLIBC_2.34)\n(named-symbol 0 __cxa_finalize@GLIBC_2.17)\n(named-symbol 1848 _fini)\n(named-symbol 0 abort@GLIBC_2.17)\n(named-symbol 1536 _start)\n(named-symbol 1812 main)\n(named-symbol 1408 _init)\n(named-symbol 0 __libc_start_main)\n(named-symbol 0 __cxa_finalize)\n(named-symbol 0 abort)\n(require libc.so.6)\n(section 568 27)\n(section 596 36)\n(section 632 32)\n(section 664 28)\n(section 696 216)\n(section 912 141)\n(section 1054 18)\n(section 1072 48)\n(section 1120 192)\n(section 1312 96)\n(section 1408 24)\n(section 1440 96)\n(section 1536 312)\n(section 1848 20)\n(section 1868 4)\n(section 1872 60)\n(section 1936 164)\n(section 69016 8)\n(section 69024 8)\n(section 69032 496)\n(section 69528 104)\n(section 69632 16)\n(section 69648 16)\n(section 0 43)\n(section 0 2112)\n(section 0 558)\n(section 0 250)\n(segment 0 2100 true false true)\n(segment 69016 648 true true false)\n(subarch v8)\n(symbol-chunk 1588 20 1588)\n(symbol-chunk 1536 52 1536)\n(symbol-chunk 1812 36 1812)\n(symbol-value 1588 1588)\n(symbol-value 1616 1616)\n(symbol-value 1664 1664)\n(symbol-value 1728 1728)\n(symbol-value 1808 1808)\n(symbol-value 1848 1848)\n(symbol-value 1536 1536)\n(symbol-value 1812 1812)\n(symbol-value 1408 1408)\n(symbol-value 0 0)\n(system \"\")\n(vendor \"\")\n"), -Attr("abi-name","\"aarch64-linux-gnu-elf\"")]), -Sections([Section(".shstrtab", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x00\x06\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xa8\x1b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x38\x00\x09\x00\x40\x00\x1c\x00\x1b\x00\x06\x00\x00\x00\x04\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x04\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x34\x08\x00\x00\x00\x00\x00\x00\x34\x08\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x01\x00\x00\x00\x06\x00\x00\x00\x98\x0d\x00\x00\x00\x00\x00\x00\x98\x0d"), -Section(".strtab", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x00\x06\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xa8\x1b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x38\x00\x09\x00\x40\x00\x1c\x00\x1b\x00\x06\x00\x00\x00\x04\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x04\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x34\x08\x00\x00\x00\x00\x00\x00\x34\x08\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x01\x00\x00\x00\x06\x00\x00\x00\x98\x0d\x00\x00\x00\x00\x00\x00\x98\x0d\x01\x00\x00\x00\x00\x00\x98\x0d\x01\x00\x00\x00\x00\x00\x78\x02\x00\x00\x00\x00\x00\x00\x88\x02\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x02\x00\x00\x00\x06\x00\x00\x00\xa8\x0d\x00\x00\x00\x00\x00\x00\xa8\x0d\x01\x00\x00\x00\x00\x00\xa8\x0d\x01\x00\x00\x00\x00\x00\xf0\x01\x00\x00\x00\x00\x00\x00\xf0\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x04\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x50\xe5\x74\x64\x04\x00\x00\x00\x50\x07\x00\x00\x00\x00\x00\x00\x50\x07\x00\x00\x00\x00\x00\x00\x50\x07\x00\x00\x00\x00\x00\x00\x3c\x00\x00\x00\x00\x00\x00\x00\x3c\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x51\xe5\x74\x64\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x52\xe5\x74\x64\x04\x00\x00\x00\x98\x0d\x00\x00\x00\x00\x00\x00\x98\x0d\x01\x00\x00\x00\x00\x00\x98\x0d\x01\x00\x00\x00\x00\x00\x68\x02\x00\x00\x00\x00\x00\x00\x68\x02\x00\x00\x00\x00"), -Section(".comment", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x00\x06\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xa8\x1b\x00"), -Section(".interp", 0x238, "\x2f\x6c\x69\x62\x2f\x6c\x64\x2d\x6c\x69\x6e\x75\x78\x2d\x61\x61\x72\x63\x68\x36\x34\x2e\x73\x6f\x2e\x31\x00"), -Section(".note.gnu.build-id", 0x254, "\x04\x00\x00\x00\x14\x00\x00\x00\x03\x00\x00\x00\x47\x4e\x55\x00\xed\x68\x74\x42\x1c\xfb\xf4\xa3\xd1\x83\xc3\x33\x5a\x80\x46\xcf\x09\x36\x70\x17"), -Section(".note.ABI-tag", 0x278, "\x04\x00\x00\x00\x10\x00\x00\x00\x01\x00\x00\x00\x47\x4e\x55\x00\x00\x00\x00\x00\x03\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00"), -Section(".gnu.hash", 0x298, "\x01\x00\x00\x00\x01\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".dynsym", 0x2B8, "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x0b\x00\x80\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x16\x00\x00\x10\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x48\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x22\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x22\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x73\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".dynstr", 0x390, "\x00\x5f\x5f\x63\x78\x61\x5f\x66\x69\x6e\x61\x6c\x69\x7a\x65\x00\x5f\x5f\x6c\x69\x62\x63\x5f\x73\x74\x61\x72\x74\x5f\x6d\x61\x69\x6e\x00\x61\x62\x6f\x72\x74\x00\x6c\x69\x62\x63\x2e\x73\x6f\x2e\x36\x00\x47\x4c\x49\x42\x43\x5f\x32\x2e\x31\x37\x00\x47\x4c\x49\x42\x43\x5f\x32\x2e\x33\x34\x00\x5f\x49\x54\x4d\x5f\x64\x65\x72\x65\x67\x69\x73\x74\x65\x72\x54\x4d\x43\x6c\x6f\x6e\x65\x54\x61\x62\x6c\x65\x00\x5f\x5f\x67\x6d\x6f\x6e\x5f\x73\x74\x61\x72\x74\x5f\x5f\x00\x5f\x49\x54\x4d\x5f\x72\x65\x67\x69\x73\x74\x65\x72\x54\x4d\x43\x6c\x6f\x6e\x65\x54\x61\x62\x6c\x65\x00"), -Section(".gnu.version", 0x41E, "\x00\x00\x00\x00\x00\x00\x02\x00\x01\x00\x03\x00\x01\x00\x03\x00\x01\x00"), -Section(".gnu.version_r", 0x430, "\x01\x00\x02\x00\x28\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x97\x91\x96\x06\x00\x00\x03\x00\x32\x00\x00\x00\x10\x00\x00\x00\xb4\x91\x96\x06\x00\x00\x02\x00\x3d\x00\x00\x00\x00\x00\x00\x00"), -Section(".rela.dyn", 0x460, "\x98\x0d\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x10\x07\x00\x00\x00\x00\x00\x00\xa0\x0d\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\xc0\x06\x00\x00\x00\x00\x00\x00\xf0\x0f\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x14\x07\x00\x00\x00\x00\x00\x00\x08\x10\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x08\x10\x01\x00\x00\x00\x00\x00\xd8\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe0\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe8\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xf8\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".rela.plt", 0x520, "\xb0\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xb8\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xc0\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xc8\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".init", 0x580, "\x1f\x20\x03\xd5\xfd\x7b\xbf\xa9\xfd\x03\x00\x91\x2a\x00\x00\x94\xfd\x7b\xc1\xa8\xc0\x03\x5f\xd6"), -Section(".plt", 0x5A0, "\xf0\x7b\xbf\xa9\x90\x00\x00\x90\x11\xd6\x47\xf9\x10\xa2\x3e\x91\x20\x02\x1f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x90\x00\x00\x90\x11\xda\x47\xf9\x10\xc2\x3e\x91\x20\x02\x1f\xd6\x90\x00\x00\x90\x11\xde\x47\xf9\x10\xe2\x3e\x91\x20\x02\x1f\xd6\x90\x00\x00\x90\x11\xe2\x47\xf9\x10\x02\x3f\x91\x20\x02\x1f\xd6\x90\x00\x00\x90\x11\xe6\x47\xf9\x10\x22\x3f\x91\x20\x02\x1f\xd6"), -Section(".text", 0x600, "\x1f\x20\x03\xd5\x1d\x00\x80\xd2\x1e\x00\x80\xd2\xe5\x03\x00\xaa\xe1\x03\x40\xf9\xe2\x23\x00\x91\xe6\x03\x00\x91\x80\x00\x00\x90\x00\xf8\x47\xf9\x03\x00\x80\xd2\x04\x00\x80\xd2\xe5\xff\xff\x97\xf0\xff\xff\x97\x80\x00\x00\x90\x00\xf4\x47\xf9\x40\x00\x00\xb4\xe8\xff\xff\x17\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x80\x00\x00\xb0\x00\x40\x00\x91\x81\x00\x00\xb0\x21\x40\x00\x91\x3f\x00\x00\xeb\xc0\x00\x00\x54\x81\x00\x00\x90\x21\xec\x47\xf9\x61\x00\x00\xb4\xf0\x03\x01\xaa\x00\x02\x1f\xd6\xc0\x03\x5f\xd6\x80\x00\x00\xb0\x00\x40\x00\x91\x81\x00\x00\xb0\x21\x40\x00\x91\x21\x00\x00\xcb\x22\xfc\x7f\xd3\x41\x0c\x81\x8b\x21\xfc\x41\x93\xc1\x00\x00\xb4\x82\x00\x00\x90\x42\xfc\x47\xf9\x62\x00\x00\xb4\xf0\x03\x02\xaa\x00\x02\x1f\xd6\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\xfd\x7b\xbe\xa9\xfd\x03\x00\x91\xf3\x0b\x00\xf9\x93\x00\x00\xb0\x60\x42\x40\x39\x40\x01\x00\x35\x80\x00\x00\x90\x00\xf0\x47\xf9\x80\x00\x00\xb4\x80\x00\x00\xb0\x00\x04\x40\xf9\xb9\xff\xff\x97\xd8\xff\xff\x97\x20\x00\x80\x52\x60\x42\x00\x39\xf3\x0b\x40\xf9\xfd\x7b\xc2\xa8\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\xdc\xff\xff\x17\xff\x43\x00\xd1\xe0\x0f\x00\xb9\x80\x00\x00\xb0\x00\x60\x00\x91\xe1\x0f\x40\xb9\x01\x04\x00\xb9\x00\x00\x80\x52\xff\x43\x00\x91\xc0\x03\x5f\xd6"), -Section(".fini", 0x738, "\x1f\x20\x03\xd5\xfd\x7b\xbf\xa9\xfd\x03\x00\x91\xfd\x7b\xc1\xa8\xc0\x03\x5f\xd6"), -Section(".rodata", 0x74C, "\x01\x00\x02\x00"), -Section(".eh_frame_hdr", 0x750, "\x01\x1b\x03\x3b\x3c\x00\x00\x00\x06\x00\x00\x00\xb0\xfe\xff\xff\x54\x00\x00\x00\x00\xff\xff\xff\x68\x00\x00\x00\x30\xff\xff\xff\x7c\x00\x00\x00\x70\xff\xff\xff\x90\x00\x00\x00\xc0\xff\xff\xff\xb4\x00\x00\x00\xc4\xff\xff\xff\xc8\x00\x00\x00"), -Section(".eh_frame", 0x790, "\x10\x00\x00\x00\x00\x00\x00\x00\x01\x7a\x52\x00\x04\x78\x1e\x01\x1b\x0c\x1f\x00\x10\x00\x00\x00\x18\x00\x00\x00\x54\xfe\xff\xff\x34\x00\x00\x00\x00\x41\x07\x1e\x10\x00\x00\x00\x2c\x00\x00\x00\x90\xfe\xff\xff\x30\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x40\x00\x00\x00\xac\xfe\xff\xff\x3c\x00\x00\x00\x00\x00\x00\x00\x20\x00\x00\x00\x54\x00\x00\x00\xd8\xfe\xff\xff\x48\x00\x00\x00\x00\x41\x0e\x20\x9d\x04\x9e\x03\x42\x93\x02\x4e\xde\xdd\xd3\x0e\x00\x00\x00\x00\x10\x00\x00\x00\x78\x00\x00\x00\x04\xff\xff\xff\x04\x00\x00\x00\x00\x00\x00\x00\x14\x00\x00\x00\x8c\x00\x00\x00\xf4\xfe\xff\xff\x24\x00\x00\x00\x00\x41\x0e\x10\x47\x0e\x00\x00\x00\x00\x00\x00"), -Section(".fini_array", 0x10DA0, "\xc0\x06\x00\x00\x00\x00\x00\x00"), -Section(".dynamic", 0x10DA8, "\x01\x00\x00\x00\x00\x00\x00\x00\x28\x00\x00\x00\x00\x00\x00\x00\x0c\x00\x00\x00\x00\x00\x00\x00\x80\x05\x00\x00\x00\x00\x00\x00\x0d\x00\x00\x00\x00\x00\x00\x00\x38\x07\x00\x00\x00\x00\x00\x00\x19\x00\x00\x00\x00\x00\x00\x00\x98\x0d\x01\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x1a\x00\x00\x00\x00\x00\x00\x00\xa0\x0d\x01\x00\x00\x00\x00\x00\x1c\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\xf5\xfe\xff\x6f\x00\x00\x00\x00\x98\x02\x00\x00\x00\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x90\x03\x00\x00\x00\x00\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\xb8\x02\x00\x00\x00\x00\x00\x00\x0a\x00\x00\x00\x00\x00\x00\x00\x8d\x00\x00\x00\x00\x00\x00\x00\x0b\x00\x00\x00\x00\x00\x00\x00\x18\x00\x00\x00\x00\x00\x00\x00\x15\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x98\x0f\x01\x00\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x60\x00\x00\x00\x00\x00\x00\x00\x14\x00\x00\x00\x00\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x17\x00\x00\x00\x00\x00\x00\x00\x20\x05\x00\x00\x00\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x60\x04\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\xc0\x00\x00\x00\x00\x00\x00\x00\x09\x00\x00\x00\x00\x00\x00\x00\x18\x00\x00\x00\x00\x00\x00\x00\x1e\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\xfb\xff\xff\x6f\x00\x00\x00\x00\x01\x00\x00\x08\x00\x00\x00\x00\xfe\xff\xff\x6f\x00\x00\x00\x00\x30\x04\x00\x00\x00\x00\x00\x00\xff\xff\xff\x6f\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\xf0\xff\xff\x6f\x00\x00\x00\x00\x1e\x04\x00\x00\x00\x00\x00\x00\xf9\xff\xff\x6f\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".got", 0x10F98, "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xa0\x05\x00\x00\x00\x00\x00\x00\xa0\x05\x00\x00\x00\x00\x00\x00\xa0\x05\x00\x00\x00\x00\x00\x00\xa0\x05\x00\x00\x00\x00\x00\x00\xa8\x0d\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x14\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".data", 0x11000, "\x00\x00\x00\x00\x00\x00\x00\x00\x08\x10\x01\x00\x00\x00\x00\x00"), -Section(".init_array", 0x10D98, "\x10\x07\x00\x00\x00\x00\x00\x00")]), -Memmap([Annotation(Region(0x0,0x833), Attr("segment","02 0 2100")), -Annotation(Region(0x600,0x633), Attr("symbol","\"_start\"")), -Annotation(Region(0x0,0xF9), Attr("section","\".shstrtab\"")), -Annotation(Region(0x0,0x22D), Attr("section","\".strtab\"")), -Annotation(Region(0x0,0x2A), Attr("section","\".comment\"")), -Annotation(Region(0x238,0x252), Attr("section","\".interp\"")), -Annotation(Region(0x254,0x277), Attr("section","\".note.gnu.build-id\"")), -Annotation(Region(0x278,0x297), Attr("section","\".note.ABI-tag\"")), -Annotation(Region(0x298,0x2B3), Attr("section","\".gnu.hash\"")), -Annotation(Region(0x2B8,0x38F), Attr("section","\".dynsym\"")), -Annotation(Region(0x390,0x41C), Attr("section","\".dynstr\"")), -Annotation(Region(0x41E,0x42F), Attr("section","\".gnu.version\"")), -Annotation(Region(0x430,0x45F), Attr("section","\".gnu.version_r\"")), -Annotation(Region(0x460,0x51F), Attr("section","\".rela.dyn\"")), -Annotation(Region(0x520,0x57F), Attr("section","\".rela.plt\"")), -Annotation(Region(0x580,0x597), Attr("section","\".init\"")), -Annotation(Region(0x5A0,0x5FF), Attr("section","\".plt\"")), -Annotation(Region(0x580,0x597), Attr("code-region","()")), -Annotation(Region(0x5A0,0x5FF), Attr("code-region","()")), -Annotation(Region(0x600,0x633), Attr("symbol-info","_start 0x600 52")), -Annotation(Region(0x634,0x647), Attr("symbol","\"call_weak_fn\"")), -Annotation(Region(0x634,0x647), Attr("symbol-info","call_weak_fn 0x634 20")), -Annotation(Region(0x600,0x737), Attr("section","\".text\"")), -Annotation(Region(0x600,0x737), Attr("code-region","()")), -Annotation(Region(0x714,0x737), Attr("symbol","\"main\"")), -Annotation(Region(0x714,0x737), Attr("symbol-info","main 0x714 36")), -Annotation(Region(0x738,0x74B), Attr("section","\".fini\"")), -Annotation(Region(0x738,0x74B), Attr("code-region","()")), -Annotation(Region(0x74C,0x74F), Attr("section","\".rodata\"")), -Annotation(Region(0x750,0x78B), Attr("section","\".eh_frame_hdr\"")), -Annotation(Region(0x790,0x833), Attr("section","\".eh_frame\"")), -Annotation(Region(0x10D98,0x1100F), Attr("segment","03 0x10D98 648")), -Annotation(Region(0x10DA0,0x10DA7), Attr("section","\".fini_array\"")), -Annotation(Region(0x10DA8,0x10F97), Attr("section","\".dynamic\"")), -Annotation(Region(0x10F98,0x10FFF), Attr("section","\".got\"")), -Annotation(Region(0x11000,0x1100F), Attr("section","\".data\"")), -Annotation(Region(0x10D98,0x10D9F), Attr("section","\".init_array\""))]), -Program(Tid(1_469, "%000005bd"), Attrs([]), - Subs([Sub(Tid(1_419, "@__cxa_finalize"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x5D0"), -Attr("stub","()")]), "__cxa_finalize", Args([Arg(Tid(1_470, "%000005be"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("__cxa_finalize_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(829, "@__cxa_finalize"), - Attrs([Attr("address","0x5D0")]), Phis([]), -Defs([Def(Tid(1_077, "%00000435"), Attrs([Attr("address","0x5D0"), -Attr("insn","adrp x16, #65536")]), Var("R16",Imm(64)), Int(65536,64)), -Def(Tid(1_084, "%0000043c"), Attrs([Attr("address","0x5D4"), -Attr("insn","ldr x17, [x16, #0xfb8]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(4024,64)),LittleEndian(),64)), -Def(Tid(1_090, "%00000442"), Attrs([Attr("address","0x5D8"), -Attr("insn","add x16, x16, #0xfb8")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(4024,64)))]), Jmps([Call(Tid(1_095, "%00000447"), - Attrs([Attr("address","0x5DC"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), -Sub(Tid(1_420, "@__do_global_dtors_aux"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x6C0")]), - "__do_global_dtors_aux", Args([Arg(Tid(1_471, "%000005bf"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("__do_global_dtors_aux_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(626, "@__do_global_dtors_aux"), - Attrs([Attr("address","0x6C0")]), Phis([]), Defs([Def(Tid(630, "%00000276"), - Attrs([Attr("address","0x6C0"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("#3",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(18446744073709551584,64))), -Def(Tid(636, "%0000027c"), Attrs([Attr("address","0x6C0"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("#3",Imm(64)),Var("R29",Imm(64)),LittleEndian(),64)), -Def(Tid(642, "%00000282"), Attrs([Attr("address","0x6C0"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("#3",Imm(64)),Int(8,64)),Var("R30",Imm(64)),LittleEndian(),64)), -Def(Tid(646, "%00000286"), Attrs([Attr("address","0x6C0"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("R31",Imm(64)), -Var("#3",Imm(64))), Def(Tid(652, "%0000028c"), - Attrs([Attr("address","0x6C4"), Attr("insn","mov x29, sp")]), - Var("R29",Imm(64)), Var("R31",Imm(64))), Def(Tid(660, "%00000294"), - Attrs([Attr("address","0x6C8"), Attr("insn","str x19, [sp, #0x10]")]), - Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(16,64)),Var("R19",Imm(64)),LittleEndian(),64)), -Def(Tid(665, "%00000299"), Attrs([Attr("address","0x6CC"), -Attr("insn","adrp x19, #69632")]), Var("R19",Imm(64)), Int(69632,64)), -Def(Tid(672, "%000002a0"), Attrs([Attr("address","0x6D0"), -Attr("insn","ldrb w0, [x19, #0x10]")]), Var("R0",Imm(64)), -UNSIGNED(64,Load(Var("mem",Mem(64,8)),PLUS(Var("R19",Imm(64)),Int(16,64)),LittleEndian(),8)))]), -Jmps([Goto(Tid(679, "%000002a7"), Attrs([Attr("address","0x6D4"), -Attr("insn","cbnz w0, #0x28")]), - NEQ(Extract(31,0,Var("R0",Imm(64))),Int(0,32)), -Direct(Tid(677, "%000002a5"))), Goto(Tid(1_459, "%000005b3"), Attrs([]), - Int(1,1), Direct(Tid(774, "%00000306")))])), Blk(Tid(774, "%00000306"), - Attrs([Attr("address","0x6D8")]), Phis([]), Defs([Def(Tid(777, "%00000309"), - Attrs([Attr("address","0x6D8"), Attr("insn","adrp x0, #65536")]), - Var("R0",Imm(64)), Int(65536,64)), Def(Tid(784, "%00000310"), - Attrs([Attr("address","0x6DC"), Attr("insn","ldr x0, [x0, #0xfe0]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(4064,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(790, "%00000316"), Attrs([Attr("address","0x6E0"), -Attr("insn","cbz x0, #0x10")]), EQ(Var("R0",Imm(64)),Int(0,64)), -Direct(Tid(788, "%00000314"))), Goto(Tid(1_460, "%000005b4"), Attrs([]), - Int(1,1), Direct(Tid(813, "%0000032d")))])), Blk(Tid(813, "%0000032d"), - Attrs([Attr("address","0x6E4")]), Phis([]), Defs([Def(Tid(816, "%00000330"), - Attrs([Attr("address","0x6E4"), Attr("insn","adrp x0, #69632")]), - Var("R0",Imm(64)), Int(69632,64)), Def(Tid(823, "%00000337"), - Attrs([Attr("address","0x6E8"), Attr("insn","ldr x0, [x0, #0x8]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(828, "%0000033c"), Attrs([Attr("address","0x6EC"), -Attr("insn","bl #-0x11c")]), Var("R30",Imm(64)), Int(1776,64))]), -Jmps([Call(Tid(831, "%0000033f"), Attrs([Attr("address","0x6EC"), -Attr("insn","bl #-0x11c")]), Int(1,1), -(Direct(Tid(1_419, "@__cxa_finalize")),Direct(Tid(788, "%00000314"))))])), -Blk(Tid(788, "%00000314"), Attrs([Attr("address","0x6F0")]), Phis([]), -Defs([Def(Tid(796, "%0000031c"), Attrs([Attr("address","0x6F0"), -Attr("insn","bl #-0xa0")]), Var("R30",Imm(64)), Int(1780,64))]), -Jmps([Call(Tid(798, "%0000031e"), Attrs([Attr("address","0x6F0"), -Attr("insn","bl #-0xa0")]), Int(1,1), -(Direct(Tid(1_433, "@deregister_tm_clones")),Direct(Tid(800, "%00000320"))))])), -Blk(Tid(800, "%00000320"), Attrs([Attr("address","0x6F4")]), Phis([]), -Defs([Def(Tid(803, "%00000323"), Attrs([Attr("address","0x6F4"), -Attr("insn","mov w0, #0x1")]), Var("R0",Imm(64)), Int(1,64)), -Def(Tid(811, "%0000032b"), Attrs([Attr("address","0x6F8"), -Attr("insn","strb w0, [x19, #0x10]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R19",Imm(64)),Int(16,64)),Extract(7,0,Var("R0",Imm(64))),LittleEndian(),8))]), -Jmps([Goto(Tid(1_461, "%000005b5"), Attrs([]), Int(1,1), -Direct(Tid(677, "%000002a5")))])), Blk(Tid(677, "%000002a5"), - Attrs([Attr("address","0x6FC")]), Phis([]), Defs([Def(Tid(687, "%000002af"), - Attrs([Attr("address","0x6FC"), Attr("insn","ldr x19, [sp, #0x10]")]), - Var("R19",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(16,64)),LittleEndian(),64)), -Def(Tid(694, "%000002b6"), Attrs([Attr("address","0x700"), -Attr("insn","ldp x29, x30, [sp], #0x20")]), Var("R29",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(699, "%000002bb"), Attrs([Attr("address","0x700"), -Attr("insn","ldp x29, x30, [sp], #0x20")]), Var("R30",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(703, "%000002bf"), Attrs([Attr("address","0x700"), -Attr("insn","ldp x29, x30, [sp], #0x20")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(32,64)))]), Jmps([Call(Tid(708, "%000002c4"), - Attrs([Attr("address","0x704"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), Sub(Tid(1_424, "@__libc_start_main"), - Attrs([Attr("c.proto","signed (*)(signed (*)(signed , char** , char** );* main, signed , char** , \nvoid* auxv)"), -Attr("address","0x5C0"), Attr("stub","()")]), "__libc_start_main", - Args([Arg(Tid(1_472, "%000005c0"), - Attrs([Attr("c.layout","**[ : 64]"), -Attr("c.data","Top:u64 ptr ptr"), -Attr("c.type","signed (*)(signed , char** , char** );*")]), - Var("__libc_start_main_main",Imm(64)), Var("R0",Imm(64)), In()), -Arg(Tid(1_473, "%000005c1"), Attrs([Attr("c.layout","[signed : 32]"), -Attr("c.data","Top:u32"), Attr("c.type","signed")]), - Var("__libc_start_main_arg2",Imm(32)), LOW(32,Var("R1",Imm(64))), In()), -Arg(Tid(1_474, "%000005c2"), Attrs([Attr("c.layout","**[char : 8]"), -Attr("c.data","Top:u8 ptr ptr"), Attr("c.type","char**")]), - Var("__libc_start_main_arg3",Imm(64)), Var("R2",Imm(64)), Both()), -Arg(Tid(1_475, "%000005c3"), Attrs([Attr("c.layout","*[ : 8]"), -Attr("c.data","{} ptr"), Attr("c.type","void*")]), - Var("__libc_start_main_auxv",Imm(64)), Var("R3",Imm(64)), Both()), -Arg(Tid(1_476, "%000005c4"), Attrs([Attr("c.layout","[signed : 32]"), -Attr("c.data","Top:u32"), Attr("c.type","signed")]), - Var("__libc_start_main_result",Imm(32)), LOW(32,Var("R0",Imm(64))), -Out())]), Blks([Blk(Tid(459, "@__libc_start_main"), - Attrs([Attr("address","0x5C0")]), Phis([]), -Defs([Def(Tid(1_055, "%0000041f"), Attrs([Attr("address","0x5C0"), -Attr("insn","adrp x16, #65536")]), Var("R16",Imm(64)), Int(65536,64)), -Def(Tid(1_062, "%00000426"), Attrs([Attr("address","0x5C4"), -Attr("insn","ldr x17, [x16, #0xfb0]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(4016,64)),LittleEndian(),64)), -Def(Tid(1_068, "%0000042c"), Attrs([Attr("address","0x5C8"), -Attr("insn","add x16, x16, #0xfb0")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(4016,64)))]), Jmps([Call(Tid(1_073, "%00000431"), - Attrs([Attr("address","0x5CC"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), Sub(Tid(1_425, "@_fini"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x738")]), - "_fini", Args([Arg(Tid(1_477, "%000005c5"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("_fini_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(31, "@_fini"), - Attrs([Attr("address","0x738")]), Phis([]), Defs([Def(Tid(37, "%00000025"), - Attrs([Attr("address","0x73C"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("#0",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(18446744073709551600,64))), -Def(Tid(43, "%0000002b"), Attrs([Attr("address","0x73C"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("#0",Imm(64)),Var("R29",Imm(64)),LittleEndian(),64)), -Def(Tid(49, "%00000031"), Attrs([Attr("address","0x73C"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("#0",Imm(64)),Int(8,64)),Var("R30",Imm(64)),LittleEndian(),64)), -Def(Tid(53, "%00000035"), Attrs([Attr("address","0x73C"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("R31",Imm(64)), -Var("#0",Imm(64))), Def(Tid(59, "%0000003b"), Attrs([Attr("address","0x740"), -Attr("insn","mov x29, sp")]), Var("R29",Imm(64)), Var("R31",Imm(64))), -Def(Tid(66, "%00000042"), Attrs([Attr("address","0x744"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R29",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(71, "%00000047"), Attrs([Attr("address","0x744"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R30",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(75, "%0000004b"), Attrs([Attr("address","0x744"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(16,64)))]), Jmps([Call(Tid(80, "%00000050"), - Attrs([Attr("address","0x748"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), Sub(Tid(1_426, "@_init"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x580")]), - "_init", Args([Arg(Tid(1_478, "%000005c6"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("_init_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(1_252, "@_init"), - Attrs([Attr("address","0x580")]), Phis([]), -Defs([Def(Tid(1_258, "%000004ea"), Attrs([Attr("address","0x584"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("#5",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(18446744073709551600,64))), -Def(Tid(1_264, "%000004f0"), Attrs([Attr("address","0x584"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("#5",Imm(64)),Var("R29",Imm(64)),LittleEndian(),64)), -Def(Tid(1_270, "%000004f6"), Attrs([Attr("address","0x584"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("#5",Imm(64)),Int(8,64)),Var("R30",Imm(64)),LittleEndian(),64)), -Def(Tid(1_274, "%000004fa"), Attrs([Attr("address","0x584"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("R31",Imm(64)), -Var("#5",Imm(64))), Def(Tid(1_280, "%00000500"), - Attrs([Attr("address","0x588"), Attr("insn","mov x29, sp")]), - Var("R29",Imm(64)), Var("R31",Imm(64))), Def(Tid(1_285, "%00000505"), - Attrs([Attr("address","0x58C"), Attr("insn","bl #0xa8")]), - Var("R30",Imm(64)), Int(1424,64))]), Jmps([Call(Tid(1_287, "%00000507"), - Attrs([Attr("address","0x58C"), Attr("insn","bl #0xa8")]), Int(1,1), -(Direct(Tid(1_431, "@call_weak_fn")),Direct(Tid(1_289, "%00000509"))))])), -Blk(Tid(1_289, "%00000509"), Attrs([Attr("address","0x590")]), Phis([]), -Defs([Def(Tid(1_294, "%0000050e"), Attrs([Attr("address","0x590"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R29",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(1_299, "%00000513"), Attrs([Attr("address","0x590"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R30",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(1_303, "%00000517"), Attrs([Attr("address","0x590"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(16,64)))]), Jmps([Call(Tid(1_308, "%0000051c"), - Attrs([Attr("address","0x594"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), Sub(Tid(1_427, "@_start"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x600"), -Attr("stub","()"), Attr("entry-point","()")]), "_start", - Args([Arg(Tid(1_479, "%000005c7"), Attrs([Attr("c.layout","[signed : 32]"), -Attr("c.data","Top:u32"), Attr("c.type","signed")]), - Var("_start_result",Imm(32)), LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(396, "@_start"), Attrs([Attr("address","0x600")]), Phis([]), -Defs([Def(Tid(401, "%00000191"), Attrs([Attr("address","0x604"), -Attr("insn","mov x29, #0x0")]), Var("R29",Imm(64)), Int(0,64)), -Def(Tid(406, "%00000196"), Attrs([Attr("address","0x608"), -Attr("insn","mov x30, #0x0")]), Var("R30",Imm(64)), Int(0,64)), -Def(Tid(412, "%0000019c"), Attrs([Attr("address","0x60C"), -Attr("insn","mov x5, x0")]), Var("R5",Imm(64)), Var("R0",Imm(64))), -Def(Tid(419, "%000001a3"), Attrs([Attr("address","0x610"), -Attr("insn","ldr x1, [sp]")]), Var("R1",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(425, "%000001a9"), Attrs([Attr("address","0x614"), -Attr("insn","add x2, sp, #0x8")]), Var("R2",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(8,64))), Def(Tid(431, "%000001af"), - Attrs([Attr("address","0x618"), Attr("insn","mov x6, sp")]), - Var("R6",Imm(64)), Var("R31",Imm(64))), Def(Tid(436, "%000001b4"), - Attrs([Attr("address","0x61C"), Attr("insn","adrp x0, #65536")]), - Var("R0",Imm(64)), Int(65536,64)), Def(Tid(443, "%000001bb"), - Attrs([Attr("address","0x620"), Attr("insn","ldr x0, [x0, #0xff0]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(4080,64)),LittleEndian(),64)), -Def(Tid(448, "%000001c0"), Attrs([Attr("address","0x624"), -Attr("insn","mov x3, #0x0")]), Var("R3",Imm(64)), Int(0,64)), -Def(Tid(453, "%000001c5"), Attrs([Attr("address","0x628"), -Attr("insn","mov x4, #0x0")]), Var("R4",Imm(64)), Int(0,64)), -Def(Tid(458, "%000001ca"), Attrs([Attr("address","0x62C"), -Attr("insn","bl #-0x6c")]), Var("R30",Imm(64)), Int(1584,64))]), -Jmps([Call(Tid(461, "%000001cd"), Attrs([Attr("address","0x62C"), -Attr("insn","bl #-0x6c")]), Int(1,1), -(Direct(Tid(1_424, "@__libc_start_main")),Direct(Tid(463, "%000001cf"))))])), -Blk(Tid(463, "%000001cf"), Attrs([Attr("address","0x630")]), Phis([]), -Defs([Def(Tid(466, "%000001d2"), Attrs([Attr("address","0x630"), -Attr("insn","bl #-0x40")]), Var("R30",Imm(64)), Int(1588,64))]), -Jmps([Call(Tid(469, "%000001d5"), Attrs([Attr("address","0x630"), -Attr("insn","bl #-0x40")]), Int(1,1), -(Direct(Tid(1_430, "@abort")),Direct(Tid(1_462, "%000005b6"))))])), -Blk(Tid(1_462, "%000005b6"), Attrs([]), Phis([]), Defs([]), -Jmps([Call(Tid(1_463, "%000005b7"), Attrs([]), Int(1,1), -(Direct(Tid(1_431, "@call_weak_fn")),))]))])), Sub(Tid(1_430, "@abort"), - Attrs([Attr("noreturn","()"), Attr("c.proto","void (*)(void)"), -Attr("address","0x5F0"), Attr("stub","()")]), "abort", Args([]), -Blks([Blk(Tid(467, "@abort"), Attrs([Attr("address","0x5F0")]), Phis([]), -Defs([Def(Tid(1_121, "%00000461"), Attrs([Attr("address","0x5F0"), -Attr("insn","adrp x16, #65536")]), Var("R16",Imm(64)), Int(65536,64)), -Def(Tid(1_128, "%00000468"), Attrs([Attr("address","0x5F4"), -Attr("insn","ldr x17, [x16, #0xfc8]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(4040,64)),LittleEndian(),64)), -Def(Tid(1_134, "%0000046e"), Attrs([Attr("address","0x5F8"), -Attr("insn","add x16, x16, #0xfc8")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(4040,64)))]), Jmps([Call(Tid(1_139, "%00000473"), - Attrs([Attr("address","0x5FC"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), Sub(Tid(1_431, "@call_weak_fn"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x634")]), - "call_weak_fn", Args([Arg(Tid(1_480, "%000005c8"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("call_weak_fn_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(471, "@call_weak_fn"), - Attrs([Attr("address","0x634")]), Phis([]), Defs([Def(Tid(474, "%000001da"), - Attrs([Attr("address","0x634"), Attr("insn","adrp x0, #65536")]), - Var("R0",Imm(64)), Int(65536,64)), Def(Tid(481, "%000001e1"), - Attrs([Attr("address","0x638"), Attr("insn","ldr x0, [x0, #0xfe8]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(4072,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(487, "%000001e7"), Attrs([Attr("address","0x63C"), -Attr("insn","cbz x0, #0x8")]), EQ(Var("R0",Imm(64)),Int(0,64)), -Direct(Tid(485, "%000001e5"))), Goto(Tid(1_464, "%000005b8"), Attrs([]), - Int(1,1), Direct(Tid(893, "%0000037d")))])), Blk(Tid(485, "%000001e5"), - Attrs([Attr("address","0x644")]), Phis([]), Defs([]), -Jmps([Call(Tid(493, "%000001ed"), Attrs([Attr("address","0x644"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))])), -Blk(Tid(893, "%0000037d"), Attrs([Attr("address","0x640")]), Phis([]), -Defs([]), Jmps([Goto(Tid(896, "%00000380"), Attrs([Attr("address","0x640"), -Attr("insn","b #-0x60")]), Int(1,1), Direct(Tid(894, "@__gmon_start__")))])), -Blk(Tid(894, "@__gmon_start__"), Attrs([Attr("address","0x5E0")]), Phis([]), -Defs([Def(Tid(1_099, "%0000044b"), Attrs([Attr("address","0x5E0"), -Attr("insn","adrp x16, #65536")]), Var("R16",Imm(64)), Int(65536,64)), -Def(Tid(1_106, "%00000452"), Attrs([Attr("address","0x5E4"), -Attr("insn","ldr x17, [x16, #0xfc0]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(4032,64)),LittleEndian(),64)), -Def(Tid(1_112, "%00000458"), Attrs([Attr("address","0x5E8"), -Attr("insn","add x16, x16, #0xfc0")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(4032,64)))]), Jmps([Call(Tid(1_117, "%0000045d"), - Attrs([Attr("address","0x5EC"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), -Sub(Tid(1_433, "@deregister_tm_clones"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x650")]), - "deregister_tm_clones", Args([Arg(Tid(1_481, "%000005c9"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("deregister_tm_clones_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(499, "@deregister_tm_clones"), - Attrs([Attr("address","0x650")]), Phis([]), Defs([Def(Tid(502, "%000001f6"), - Attrs([Attr("address","0x650"), Attr("insn","adrp x0, #69632")]), - Var("R0",Imm(64)), Int(69632,64)), Def(Tid(508, "%000001fc"), - Attrs([Attr("address","0x654"), Attr("insn","add x0, x0, #0x10")]), - Var("R0",Imm(64)), PLUS(Var("R0",Imm(64)),Int(16,64))), -Def(Tid(513, "%00000201"), Attrs([Attr("address","0x658"), -Attr("insn","adrp x1, #69632")]), Var("R1",Imm(64)), Int(69632,64)), -Def(Tid(519, "%00000207"), Attrs([Attr("address","0x65C"), -Attr("insn","add x1, x1, #0x10")]), Var("R1",Imm(64)), -PLUS(Var("R1",Imm(64)),Int(16,64))), Def(Tid(525, "%0000020d"), - Attrs([Attr("address","0x660"), Attr("insn","cmp x1, x0")]), - Var("#1",Imm(64)), NOT(Var("R0",Imm(64)))), Def(Tid(530, "%00000212"), - Attrs([Attr("address","0x660"), Attr("insn","cmp x1, x0")]), - Var("#2",Imm(64)), PLUS(Var("R1",Imm(64)),NOT(Var("R0",Imm(64))))), -Def(Tid(536, "%00000218"), Attrs([Attr("address","0x660"), -Attr("insn","cmp x1, x0")]), Var("VF",Imm(1)), -NEQ(SIGNED(65,PLUS(Var("#2",Imm(64)),Int(1,64))),PLUS(PLUS(SIGNED(65,Var("R1",Imm(64))),SIGNED(65,Var("#1",Imm(64)))),Int(1,65)))), -Def(Tid(542, "%0000021e"), Attrs([Attr("address","0x660"), -Attr("insn","cmp x1, x0")]), Var("CF",Imm(1)), -NEQ(UNSIGNED(65,PLUS(Var("#2",Imm(64)),Int(1,64))),PLUS(PLUS(UNSIGNED(65,Var("R1",Imm(64))),UNSIGNED(65,Var("#1",Imm(64)))),Int(1,65)))), -Def(Tid(546, "%00000222"), Attrs([Attr("address","0x660"), -Attr("insn","cmp x1, x0")]), Var("ZF",Imm(1)), -EQ(PLUS(Var("#2",Imm(64)),Int(1,64)),Int(0,64))), Def(Tid(550, "%00000226"), - Attrs([Attr("address","0x660"), Attr("insn","cmp x1, x0")]), - Var("NF",Imm(1)), Extract(63,63,PLUS(Var("#2",Imm(64)),Int(1,64))))]), -Jmps([Goto(Tid(556, "%0000022c"), Attrs([Attr("address","0x664"), -Attr("insn","b.eq #0x18")]), EQ(Var("ZF",Imm(1)),Int(1,1)), -Direct(Tid(554, "%0000022a"))), Goto(Tid(1_465, "%000005b9"), Attrs([]), - Int(1,1), Direct(Tid(863, "%0000035f")))])), Blk(Tid(863, "%0000035f"), - Attrs([Attr("address","0x668")]), Phis([]), Defs([Def(Tid(866, "%00000362"), - Attrs([Attr("address","0x668"), Attr("insn","adrp x1, #65536")]), - Var("R1",Imm(64)), Int(65536,64)), Def(Tid(873, "%00000369"), - Attrs([Attr("address","0x66C"), Attr("insn","ldr x1, [x1, #0xfd8]")]), - Var("R1",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R1",Imm(64)),Int(4056,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(878, "%0000036e"), Attrs([Attr("address","0x670"), -Attr("insn","cbz x1, #0xc")]), EQ(Var("R1",Imm(64)),Int(0,64)), -Direct(Tid(554, "%0000022a"))), Goto(Tid(1_466, "%000005ba"), Attrs([]), - Int(1,1), Direct(Tid(882, "%00000372")))])), Blk(Tid(554, "%0000022a"), - Attrs([Attr("address","0x67C")]), Phis([]), Defs([]), -Jmps([Call(Tid(562, "%00000232"), Attrs([Attr("address","0x67C"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))])), -Blk(Tid(882, "%00000372"), Attrs([Attr("address","0x674")]), Phis([]), -Defs([Def(Tid(886, "%00000376"), Attrs([Attr("address","0x674"), -Attr("insn","mov x16, x1")]), Var("R16",Imm(64)), Var("R1",Imm(64)))]), -Jmps([Call(Tid(891, "%0000037b"), Attrs([Attr("address","0x678"), -Attr("insn","br x16")]), Int(1,1), (Indirect(Var("R16",Imm(64))),))]))])), -Sub(Tid(1_436, "@frame_dummy"), Attrs([Attr("c.proto","signed (*)(void)"), -Attr("address","0x710")]), "frame_dummy", Args([Arg(Tid(1_482, "%000005ca"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("frame_dummy_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(714, "@frame_dummy"), - Attrs([Attr("address","0x710")]), Phis([]), Defs([]), -Jmps([Call(Tid(716, "%000002cc"), Attrs([Attr("address","0x710"), -Attr("insn","b #-0x90")]), Int(1,1), -(Direct(Tid(1_438, "@register_tm_clones")),))]))])), Sub(Tid(1_437, "@main"), - Attrs([Attr("c.proto","signed (*)(signed argc, const char** argv)"), -Attr("address","0x714")]), "main", Args([Arg(Tid(1_483, "%000005cb"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("main_argc",Imm(32)), -LOW(32,Var("R0",Imm(64))), In()), Arg(Tid(1_484, "%000005cc"), - Attrs([Attr("c.layout","**[char : 8]"), Attr("c.data","Top:u8 ptr ptr"), -Attr("c.type"," const char**")]), Var("main_argv",Imm(64)), -Var("R1",Imm(64)), Both()), Arg(Tid(1_485, "%000005cd"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("main_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(718, "@main"), - Attrs([Attr("address","0x714")]), Phis([]), Defs([Def(Tid(722, "%000002d2"), - Attrs([Attr("address","0x714"), Attr("insn","sub sp, sp, #0x10")]), - Var("R31",Imm(64)), PLUS(Var("R31",Imm(64)),Int(18446744073709551600,64))), -Def(Tid(730, "%000002da"), Attrs([Attr("address","0x718"), -Attr("insn","str w0, [sp, #0xc]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(12,64)),Extract(31,0,Var("R0",Imm(64))),LittleEndian(),32)), -Def(Tid(735, "%000002df"), Attrs([Attr("address","0x71C"), -Attr("insn","adrp x0, #69632")]), Var("R0",Imm(64)), Int(69632,64)), -Def(Tid(741, "%000002e5"), Attrs([Attr("address","0x720"), -Attr("insn","add x0, x0, #0x18")]), Var("R0",Imm(64)), -PLUS(Var("R0",Imm(64)),Int(24,64))), Def(Tid(748, "%000002ec"), - Attrs([Attr("address","0x724"), Attr("insn","ldr w1, [sp, #0xc]")]), - Var("R1",Imm(64)), -UNSIGNED(64,Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(12,64)),LittleEndian(),32))), -Def(Tid(756, "%000002f4"), Attrs([Attr("address","0x728"), -Attr("insn","str w1, [x0, #0x4]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(4,64)),Extract(31,0,Var("R1",Imm(64))),LittleEndian(),32)), -Def(Tid(761, "%000002f9"), Attrs([Attr("address","0x72C"), -Attr("insn","mov w0, #0x0")]), Var("R0",Imm(64)), Int(0,64)), -Def(Tid(767, "%000002ff"), Attrs([Attr("address","0x730"), -Attr("insn","add sp, sp, #0x10")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(16,64)))]), Jmps([Call(Tid(772, "%00000304"), - Attrs([Attr("address","0x734"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), -Sub(Tid(1_438, "@register_tm_clones"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x680")]), - "register_tm_clones", Args([Arg(Tid(1_486, "%000005ce"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("register_tm_clones_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(564, "@register_tm_clones"), Attrs([Attr("address","0x680")]), - Phis([]), Defs([Def(Tid(567, "%00000237"), Attrs([Attr("address","0x680"), -Attr("insn","adrp x0, #69632")]), Var("R0",Imm(64)), Int(69632,64)), -Def(Tid(573, "%0000023d"), Attrs([Attr("address","0x684"), -Attr("insn","add x0, x0, #0x10")]), Var("R0",Imm(64)), -PLUS(Var("R0",Imm(64)),Int(16,64))), Def(Tid(578, "%00000242"), - Attrs([Attr("address","0x688"), Attr("insn","adrp x1, #69632")]), - Var("R1",Imm(64)), Int(69632,64)), Def(Tid(584, "%00000248"), - Attrs([Attr("address","0x68C"), Attr("insn","add x1, x1, #0x10")]), - Var("R1",Imm(64)), PLUS(Var("R1",Imm(64)),Int(16,64))), -Def(Tid(591, "%0000024f"), Attrs([Attr("address","0x690"), -Attr("insn","sub x1, x1, x0")]), Var("R1",Imm(64)), -PLUS(PLUS(Var("R1",Imm(64)),NOT(Var("R0",Imm(64)))),Int(1,64))), -Def(Tid(597, "%00000255"), Attrs([Attr("address","0x694"), -Attr("insn","lsr x2, x1, #63")]), Var("R2",Imm(64)), -Concat(Int(0,63),Extract(63,63,Var("R1",Imm(64))))), -Def(Tid(604, "%0000025c"), Attrs([Attr("address","0x698"), -Attr("insn","add x1, x2, x1, asr #3")]), Var("R1",Imm(64)), -PLUS(Var("R2",Imm(64)),ARSHIFT(Var("R1",Imm(64)),Int(3,3)))), -Def(Tid(610, "%00000262"), Attrs([Attr("address","0x69C"), -Attr("insn","asr x1, x1, #1")]), Var("R1",Imm(64)), -SIGNED(64,Extract(63,1,Var("R1",Imm(64)))))]), -Jmps([Goto(Tid(616, "%00000268"), Attrs([Attr("address","0x6A0"), -Attr("insn","cbz x1, #0x18")]), EQ(Var("R1",Imm(64)),Int(0,64)), -Direct(Tid(614, "%00000266"))), Goto(Tid(1_467, "%000005bb"), Attrs([]), - Int(1,1), Direct(Tid(833, "%00000341")))])), Blk(Tid(833, "%00000341"), - Attrs([Attr("address","0x6A4")]), Phis([]), Defs([Def(Tid(836, "%00000344"), - Attrs([Attr("address","0x6A4"), Attr("insn","adrp x2, #65536")]), - Var("R2",Imm(64)), Int(65536,64)), Def(Tid(843, "%0000034b"), - Attrs([Attr("address","0x6A8"), Attr("insn","ldr x2, [x2, #0xff8]")]), - Var("R2",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R2",Imm(64)),Int(4088,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(848, "%00000350"), Attrs([Attr("address","0x6AC"), -Attr("insn","cbz x2, #0xc")]), EQ(Var("R2",Imm(64)),Int(0,64)), -Direct(Tid(614, "%00000266"))), Goto(Tid(1_468, "%000005bc"), Attrs([]), - Int(1,1), Direct(Tid(852, "%00000354")))])), Blk(Tid(614, "%00000266"), - Attrs([Attr("address","0x6B8")]), Phis([]), Defs([]), -Jmps([Call(Tid(622, "%0000026e"), Attrs([Attr("address","0x6B8"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))])), -Blk(Tid(852, "%00000354"), Attrs([Attr("address","0x6B0")]), Phis([]), -Defs([Def(Tid(856, "%00000358"), Attrs([Attr("address","0x6B0"), -Attr("insn","mov x16, x2")]), Var("R16",Imm(64)), Var("R2",Imm(64)))]), -Jmps([Call(Tid(861, "%0000035d"), Attrs([Attr("address","0x6B4"), -Attr("insn","br x16")]), Int(1,1), -(Indirect(Var("R16",Imm(64))),))]))]))]))) \ No newline at end of file diff --git a/src/test/correct/basic_arrays_write/gcc/basic_arrays_write.bir b/src/test/correct/basic_arrays_write/gcc/basic_arrays_write.bir deleted file mode 100644 index d5fb5434f..000000000 --- a/src/test/correct/basic_arrays_write/gcc/basic_arrays_write.bir +++ /dev/null @@ -1,231 +0,0 @@ -000005bd: program -0000058b: sub __cxa_finalize(__cxa_finalize_result) -000005be: __cxa_finalize_result :: out u32 = low:32[R0] - -0000033d: -00000435: R16 := 0x10000 -0000043c: R17 := mem[R16 + 0xFB8, el]:u64 -00000442: R16 := R16 + 0xFB8 -00000447: call R17 with noreturn - -0000058c: sub __do_global_dtors_aux(__do_global_dtors_aux_result) -000005bf: __do_global_dtors_aux_result :: out u32 = low:32[R0] - -00000272: -00000276: #3 := R31 - 0x20 -0000027c: mem := mem with [#3, el]:u64 <- R29 -00000282: mem := mem with [#3 + 8, el]:u64 <- R30 -00000286: R31 := #3 -0000028c: R29 := R31 -00000294: mem := mem with [R31 + 0x10, el]:u64 <- R19 -00000299: R19 := 0x11000 -000002a0: R0 := pad:64[mem[R19 + 0x10]] -000002a7: when 31:0[R0] <> 0 goto %000002a5 -000005b3: goto %00000306 - -00000306: -00000309: R0 := 0x10000 -00000310: R0 := mem[R0 + 0xFE0, el]:u64 -00000316: when R0 = 0 goto %00000314 -000005b4: goto %0000032d - -0000032d: -00000330: R0 := 0x11000 -00000337: R0 := mem[R0 + 8, el]:u64 -0000033c: R30 := 0x6F0 -0000033f: call @__cxa_finalize with return %00000314 - -00000314: -0000031c: R30 := 0x6F4 -0000031e: call @deregister_tm_clones with return %00000320 - -00000320: -00000323: R0 := 1 -0000032b: mem := mem with [R19 + 0x10] <- 7:0[R0] -000005b5: goto %000002a5 - -000002a5: -000002af: R19 := mem[R31 + 0x10, el]:u64 -000002b6: R29 := mem[R31, el]:u64 -000002bb: R30 := mem[R31 + 8, el]:u64 -000002bf: R31 := R31 + 0x20 -000002c4: call R30 with noreturn - -00000590: sub __libc_start_main(__libc_start_main_main, __libc_start_main_arg2, __libc_start_main_arg3, __libc_start_main_auxv, __libc_start_main_result) -000005c0: __libc_start_main_main :: in u64 = R0 -000005c1: __libc_start_main_arg2 :: in u32 = low:32[R1] -000005c2: __libc_start_main_arg3 :: in out u64 = R2 -000005c3: __libc_start_main_auxv :: in out u64 = R3 -000005c4: __libc_start_main_result :: out u32 = low:32[R0] - -000001cb: -0000041f: R16 := 0x10000 -00000426: R17 := mem[R16 + 0xFB0, el]:u64 -0000042c: R16 := R16 + 0xFB0 -00000431: call R17 with noreturn - -00000591: sub _fini(_fini_result) -000005c5: _fini_result :: out u32 = low:32[R0] - -0000001f: -00000025: #0 := R31 - 0x10 -0000002b: mem := mem with [#0, el]:u64 <- R29 -00000031: mem := mem with [#0 + 8, el]:u64 <- R30 -00000035: R31 := #0 -0000003b: R29 := R31 -00000042: R29 := mem[R31, el]:u64 -00000047: R30 := mem[R31 + 8, el]:u64 -0000004b: R31 := R31 + 0x10 -00000050: call R30 with noreturn - -00000592: sub _init(_init_result) -000005c6: _init_result :: out u32 = low:32[R0] - -000004e4: -000004ea: #5 := R31 - 0x10 -000004f0: mem := mem with [#5, el]:u64 <- R29 -000004f6: mem := mem with [#5 + 8, el]:u64 <- R30 -000004fa: R31 := #5 -00000500: R29 := R31 -00000505: R30 := 0x590 -00000507: call @call_weak_fn with return %00000509 - -00000509: -0000050e: R29 := mem[R31, el]:u64 -00000513: R30 := mem[R31 + 8, el]:u64 -00000517: R31 := R31 + 0x10 -0000051c: call R30 with noreturn - -00000593: sub _start(_start_result) -000005c7: _start_result :: out u32 = low:32[R0] - -0000018c: -00000191: R29 := 0 -00000196: R30 := 0 -0000019c: R5 := R0 -000001a3: R1 := mem[R31, el]:u64 -000001a9: R2 := R31 + 8 -000001af: R6 := R31 -000001b4: R0 := 0x10000 -000001bb: R0 := mem[R0 + 0xFF0, el]:u64 -000001c0: R3 := 0 -000001c5: R4 := 0 -000001ca: R30 := 0x630 -000001cd: call @__libc_start_main with return %000001cf - -000001cf: -000001d2: R30 := 0x634 -000001d5: call @abort with return %000005b6 - -000005b6: -000005b7: call @call_weak_fn with noreturn - -00000596: sub abort() - - -000001d3: -00000461: R16 := 0x10000 -00000468: R17 := mem[R16 + 0xFC8, el]:u64 -0000046e: R16 := R16 + 0xFC8 -00000473: call R17 with noreturn - -00000597: sub call_weak_fn(call_weak_fn_result) -000005c8: call_weak_fn_result :: out u32 = low:32[R0] - -000001d7: -000001da: R0 := 0x10000 -000001e1: R0 := mem[R0 + 0xFE8, el]:u64 -000001e7: when R0 = 0 goto %000001e5 -000005b8: goto %0000037d - -000001e5: -000001ed: call R30 with noreturn - -0000037d: -00000380: goto @__gmon_start__ - -0000037e: -0000044b: R16 := 0x10000 -00000452: R17 := mem[R16 + 0xFC0, el]:u64 -00000458: R16 := R16 + 0xFC0 -0000045d: call R17 with noreturn - -00000599: sub deregister_tm_clones(deregister_tm_clones_result) -000005c9: deregister_tm_clones_result :: out u32 = low:32[R0] - -000001f3: -000001f6: R0 := 0x11000 -000001fc: R0 := R0 + 0x10 -00000201: R1 := 0x11000 -00000207: R1 := R1 + 0x10 -0000020d: #1 := ~R0 -00000212: #2 := R1 + ~R0 -00000218: VF := extend:65[#2 + 1] <> extend:65[R1] + extend:65[#1] + 1 -0000021e: CF := pad:65[#2 + 1] <> pad:65[R1] + pad:65[#1] + 1 -00000222: ZF := #2 + 1 = 0 -00000226: NF := 63:63[#2 + 1] -0000022c: when ZF goto %0000022a -000005b9: goto %0000035f - -0000035f: -00000362: R1 := 0x10000 -00000369: R1 := mem[R1 + 0xFD8, el]:u64 -0000036e: when R1 = 0 goto %0000022a -000005ba: goto %00000372 - -0000022a: -00000232: call R30 with noreturn - -00000372: -00000376: R16 := R1 -0000037b: call R16 with noreturn - -0000059c: sub frame_dummy(frame_dummy_result) -000005ca: frame_dummy_result :: out u32 = low:32[R0] - -000002ca: -000002cc: call @register_tm_clones with noreturn - -0000059d: sub main(main_argc, main_argv, main_result) -000005cb: main_argc :: in u32 = low:32[R0] -000005cc: main_argv :: in out u64 = R1 -000005cd: main_result :: out u32 = low:32[R0] - -000002ce: -000002d2: R31 := R31 - 0x10 -000002da: mem := mem with [R31 + 0xC, el]:u32 <- 31:0[R0] -000002df: R0 := 0x11000 -000002e5: R0 := R0 + 0x18 -000002ec: R1 := pad:64[mem[R31 + 0xC, el]:u32] -000002f4: mem := mem with [R0 + 4, el]:u32 <- 31:0[R1] -000002f9: R0 := 0 -000002ff: R31 := R31 + 0x10 -00000304: call R30 with noreturn - -0000059e: sub register_tm_clones(register_tm_clones_result) -000005ce: register_tm_clones_result :: out u32 = low:32[R0] - -00000234: -00000237: R0 := 0x11000 -0000023d: R0 := R0 + 0x10 -00000242: R1 := 0x11000 -00000248: R1 := R1 + 0x10 -0000024f: R1 := R1 + ~R0 + 1 -00000255: R2 := 0.63:63[R1] -0000025c: R1 := R2 + (R1 ~>> 3) -00000262: R1 := extend:64[63:1[R1]] -00000268: when R1 = 0 goto %00000266 -000005bb: goto %00000341 - -00000341: -00000344: R2 := 0x10000 -0000034b: R2 := mem[R2 + 0xFF8, el]:u64 -00000350: when R2 = 0 goto %00000266 -000005bc: goto %00000354 - -00000266: -0000026e: call R30 with noreturn - -00000354: -00000358: R16 := R2 -0000035d: call R16 with noreturn diff --git a/src/test/correct/basic_arrays_write/gcc/basic_arrays_write.expected b/src/test/correct/basic_arrays_write/gcc/basic_arrays_write.expected index 28ef1cc9b..2f9a5daf6 100644 --- a/src/test/correct/basic_arrays_write/gcc/basic_arrays_write.expected +++ b/src/test/correct/basic_arrays_write/gcc/basic_arrays_write.expected @@ -71,7 +71,7 @@ implementation {:extern} guarantee_reflexive() assert (memory_load32_le(mem, bvadd64($arr_addr, 0bv64)) == memory_load32_le(mem, bvadd64($arr_addr, 0bv64))); } -procedure main_1812(); +procedure main(); modifies Gamma_R0, Gamma_R1, Gamma_R31, Gamma_mem, Gamma_stack, R0, R1, R31, mem, stack; requires (Gamma_R0 == false); free requires (memory_load64_le(mem, 69632bv64) == 0bv64); @@ -89,11 +89,11 @@ procedure main_1812(); free ensures (memory_load64_le(mem, 69616bv64) == 1812bv64); free ensures (memory_load64_le(mem, 69640bv64) == 69640bv64); -implementation main_1812() +implementation main() { - var Gamma_load18: bool; + var $load$18: bv32; + var Gamma_$load$18: bool; var arr$0_old: bv32; - var load18: bv32; lmain: assume {:captureState "lmain"} true; R31, Gamma_R31 := bvadd64(R31, 18446744073709551600bv64), Gamma_R31; @@ -101,19 +101,19 @@ implementation main_1812() assume {:captureState "%000002da"} true; R0, Gamma_R0 := 69632bv64, true; R0, Gamma_R0 := bvadd64(R0, 24bv64), Gamma_R0; - load18, Gamma_load18 := memory_load32_le(stack, bvadd64(R31, 12bv64)), gamma_load32(Gamma_stack, bvadd64(R31, 12bv64)); - R1, Gamma_R1 := zero_extend32_32(load18), Gamma_load18; + $load$18, Gamma_$load$18 := memory_load32_le(stack, bvadd64(R31, 12bv64)), gamma_load32(Gamma_stack, bvadd64(R31, 12bv64)); + R1, Gamma_R1 := zero_extend32_32($load$18), Gamma_$load$18; call rely(); - arr$0_old := memory_load32_le(mem, bvadd64($arr_addr, 0bv64)); assert (L(mem, bvadd64(R0, 4bv64)) ==> Gamma_R1); + arr$0_old := memory_load32_le(mem, bvadd64($arr_addr, 0bv64)); mem, Gamma_mem := memory_store32_le(mem, bvadd64(R0, 4bv64), R1[32:0]), gamma_store32(Gamma_mem, bvadd64(R0, 4bv64), Gamma_R1); assert (arr$0_old == memory_load32_le(mem, bvadd64($arr_addr, 0bv64))); assume {:captureState "%000002f4"} true; R0, Gamma_R0 := 0bv64, true; R31, Gamma_R31 := bvadd64(R31, 16bv64), Gamma_R31; - goto main_1812_basil_return; - main_1812_basil_return: - assume {:captureState "main_1812_basil_return"} true; + goto main_basil_return; + main_basil_return: + assume {:captureState "main_basil_return"} true; return; } diff --git a/src/test/correct/basic_arrays_write/gcc/basic_arrays_write.gts b/src/test/correct/basic_arrays_write/gcc/basic_arrays_write.gts deleted file mode 100644 index 8af1252a9..000000000 Binary files a/src/test/correct/basic_arrays_write/gcc/basic_arrays_write.gts and /dev/null differ diff --git a/src/test/correct/basic_arrays_write/gcc/basic_arrays_write.md5sum b/src/test/correct/basic_arrays_write/gcc/basic_arrays_write.md5sum new file mode 100644 index 000000000..9b3b864bb --- /dev/null +++ b/src/test/correct/basic_arrays_write/gcc/basic_arrays_write.md5sum @@ -0,0 +1,5 @@ +6317081fdd9d72c32fcf6b6e2706c7d7 correct/basic_arrays_write/gcc/a.out +a6cba4b0ff6064958f56d895b9885fd6 correct/basic_arrays_write/gcc/basic_arrays_write.adt +1be5e696de06aff4e1109d1b21d8bdd4 correct/basic_arrays_write/gcc/basic_arrays_write.bir +dc0588f4fc8b588b8d5bf288c79c6062 correct/basic_arrays_write/gcc/basic_arrays_write.relf +7678763dd986b09b34cdd711b29198a0 correct/basic_arrays_write/gcc/basic_arrays_write.gts diff --git a/src/test/correct/basic_arrays_write/gcc/basic_arrays_write.relf b/src/test/correct/basic_arrays_write/gcc/basic_arrays_write.relf deleted file mode 100644 index 23984effb..000000000 --- a/src/test/correct/basic_arrays_write/gcc/basic_arrays_write.relf +++ /dev/null @@ -1,121 +0,0 @@ - -Relocation section '.rela.dyn' at offset 0x460 contains 8 entries: - Offset Info Type Symbol's Value Symbol's Name + Addend -0000000000010d98 0000000000000403 R_AARCH64_RELATIVE 710 -0000000000010da0 0000000000000403 R_AARCH64_RELATIVE 6c0 -0000000000010ff0 0000000000000403 R_AARCH64_RELATIVE 714 -0000000000011008 0000000000000403 R_AARCH64_RELATIVE 11008 -0000000000010fd8 0000000400000401 R_AARCH64_GLOB_DAT 0000000000000000 _ITM_deregisterTMCloneTable + 0 -0000000000010fe0 0000000500000401 R_AARCH64_GLOB_DAT 0000000000000000 __cxa_finalize@GLIBC_2.17 + 0 -0000000000010fe8 0000000600000401 R_AARCH64_GLOB_DAT 0000000000000000 __gmon_start__ + 0 -0000000000010ff8 0000000800000401 R_AARCH64_GLOB_DAT 0000000000000000 _ITM_registerTMCloneTable + 0 - -Relocation section '.rela.plt' at offset 0x520 contains 4 entries: - Offset Info Type Symbol's Value Symbol's Name + Addend -0000000000010fb0 0000000300000402 R_AARCH64_JUMP_SLOT 0000000000000000 __libc_start_main@GLIBC_2.34 + 0 -0000000000010fb8 0000000500000402 R_AARCH64_JUMP_SLOT 0000000000000000 __cxa_finalize@GLIBC_2.17 + 0 -0000000000010fc0 0000000600000402 R_AARCH64_JUMP_SLOT 0000000000000000 __gmon_start__ + 0 -0000000000010fc8 0000000700000402 R_AARCH64_JUMP_SLOT 0000000000000000 abort@GLIBC_2.17 + 0 - -Symbol table '.dynsym' contains 9 entries: - Num: Value Size Type Bind Vis Ndx Name - 0: 0000000000000000 0 NOTYPE LOCAL DEFAULT UND - 1: 0000000000000580 0 SECTION LOCAL DEFAULT 11 .init - 2: 0000000000011000 0 SECTION LOCAL DEFAULT 22 .data - 3: 0000000000000000 0 FUNC GLOBAL DEFAULT UND __libc_start_main@GLIBC_2.34 (2) - 4: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_deregisterTMCloneTable - 5: 0000000000000000 0 FUNC WEAK DEFAULT UND __cxa_finalize@GLIBC_2.17 (3) - 6: 0000000000000000 0 NOTYPE WEAK DEFAULT UND __gmon_start__ - 7: 0000000000000000 0 FUNC GLOBAL DEFAULT UND abort@GLIBC_2.17 (3) - 8: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_registerTMCloneTable - -Symbol table '.symtab' contains 88 entries: - Num: Value Size Type Bind Vis Ndx Name - 0: 0000000000000000 0 NOTYPE LOCAL DEFAULT UND - 1: 0000000000000238 0 SECTION LOCAL DEFAULT 1 .interp - 2: 0000000000000254 0 SECTION LOCAL DEFAULT 2 .note.gnu.build-id - 3: 0000000000000278 0 SECTION LOCAL DEFAULT 3 .note.ABI-tag - 4: 0000000000000298 0 SECTION LOCAL DEFAULT 4 .gnu.hash - 5: 00000000000002b8 0 SECTION LOCAL DEFAULT 5 .dynsym - 6: 0000000000000390 0 SECTION LOCAL DEFAULT 6 .dynstr - 7: 000000000000041e 0 SECTION LOCAL DEFAULT 7 .gnu.version - 8: 0000000000000430 0 SECTION LOCAL DEFAULT 8 .gnu.version_r - 9: 0000000000000460 0 SECTION LOCAL DEFAULT 9 .rela.dyn - 10: 0000000000000520 0 SECTION LOCAL DEFAULT 10 .rela.plt - 11: 0000000000000580 0 SECTION LOCAL DEFAULT 11 .init - 12: 00000000000005a0 0 SECTION LOCAL DEFAULT 12 .plt - 13: 0000000000000600 0 SECTION LOCAL DEFAULT 13 .text - 14: 0000000000000738 0 SECTION LOCAL DEFAULT 14 .fini - 15: 000000000000074c 0 SECTION LOCAL DEFAULT 15 .rodata - 16: 0000000000000750 0 SECTION LOCAL DEFAULT 16 .eh_frame_hdr - 17: 0000000000000790 0 SECTION LOCAL DEFAULT 17 .eh_frame - 18: 0000000000010d98 0 SECTION LOCAL DEFAULT 18 .init_array - 19: 0000000000010da0 0 SECTION LOCAL DEFAULT 19 .fini_array - 20: 0000000000010da8 0 SECTION LOCAL DEFAULT 20 .dynamic - 21: 0000000000010f98 0 SECTION LOCAL DEFAULT 21 .got - 22: 0000000000011000 0 SECTION LOCAL DEFAULT 22 .data - 23: 0000000000011010 0 SECTION LOCAL DEFAULT 23 .bss - 24: 0000000000000000 0 SECTION LOCAL DEFAULT 24 .comment - 25: 0000000000000000 0 FILE LOCAL DEFAULT ABS Scrt1.o - 26: 0000000000000278 0 NOTYPE LOCAL DEFAULT 3 $d - 27: 0000000000000278 32 OBJECT LOCAL DEFAULT 3 __abi_tag - 28: 0000000000000600 0 NOTYPE LOCAL DEFAULT 13 $x - 29: 00000000000007a4 0 NOTYPE LOCAL DEFAULT 17 $d - 30: 000000000000074c 0 NOTYPE LOCAL DEFAULT 15 $d - 31: 0000000000000000 0 FILE LOCAL DEFAULT ABS crti.o - 32: 0000000000000634 0 NOTYPE LOCAL DEFAULT 13 $x - 33: 0000000000000634 20 FUNC LOCAL DEFAULT 13 call_weak_fn - 34: 0000000000000580 0 NOTYPE LOCAL DEFAULT 11 $x - 35: 0000000000000738 0 NOTYPE LOCAL DEFAULT 14 $x - 36: 0000000000000000 0 FILE LOCAL DEFAULT ABS crtn.o - 37: 0000000000000590 0 NOTYPE LOCAL DEFAULT 11 $x - 38: 0000000000000744 0 NOTYPE LOCAL DEFAULT 14 $x - 39: 0000000000000000 0 FILE LOCAL DEFAULT ABS crtstuff.c - 40: 0000000000000650 0 NOTYPE LOCAL DEFAULT 13 $x - 41: 0000000000000650 0 FUNC LOCAL DEFAULT 13 deregister_tm_clones - 42: 0000000000000680 0 FUNC LOCAL DEFAULT 13 register_tm_clones - 43: 0000000000011008 0 NOTYPE LOCAL DEFAULT 22 $d - 44: 00000000000006c0 0 FUNC LOCAL DEFAULT 13 __do_global_dtors_aux - 45: 0000000000011010 1 OBJECT LOCAL DEFAULT 23 completed.0 - 46: 0000000000010da0 0 NOTYPE LOCAL DEFAULT 19 $d - 47: 0000000000010da0 0 OBJECT LOCAL DEFAULT 19 __do_global_dtors_aux_fini_array_entry - 48: 0000000000000710 0 FUNC LOCAL DEFAULT 13 frame_dummy - 49: 0000000000010d98 0 NOTYPE LOCAL DEFAULT 18 $d - 50: 0000000000010d98 0 OBJECT LOCAL DEFAULT 18 __frame_dummy_init_array_entry - 51: 00000000000007b8 0 NOTYPE LOCAL DEFAULT 17 $d - 52: 0000000000011010 0 NOTYPE LOCAL DEFAULT 23 $d - 53: 0000000000000000 0 FILE LOCAL DEFAULT ABS basic_arrays_write.c - 54: 0000000000011018 0 NOTYPE LOCAL DEFAULT 23 $d - 55: 0000000000000714 0 NOTYPE LOCAL DEFAULT 13 $x - 56: 0000000000000818 0 NOTYPE LOCAL DEFAULT 17 $d - 57: 0000000000000000 0 FILE LOCAL DEFAULT ABS crtstuff.c - 58: 0000000000000830 0 NOTYPE LOCAL DEFAULT 17 $d - 59: 0000000000000830 0 OBJECT LOCAL DEFAULT 17 __FRAME_END__ - 60: 0000000000000000 0 FILE LOCAL DEFAULT ABS - 61: 0000000000010da8 0 OBJECT LOCAL DEFAULT ABS _DYNAMIC - 62: 0000000000000750 0 NOTYPE LOCAL DEFAULT 16 __GNU_EH_FRAME_HDR - 63: 0000000000010fd0 0 OBJECT LOCAL DEFAULT ABS _GLOBAL_OFFSET_TABLE_ - 64: 00000000000005a0 0 NOTYPE LOCAL DEFAULT 12 $x - 65: 0000000000000000 0 FUNC GLOBAL DEFAULT UND __libc_start_main@GLIBC_2.34 - 66: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_deregisterTMCloneTable - 67: 0000000000011000 0 NOTYPE WEAK DEFAULT 22 data_start - 68: 0000000000011010 0 NOTYPE GLOBAL DEFAULT 23 __bss_start__ - 69: 0000000000000000 0 FUNC WEAK DEFAULT UND __cxa_finalize@GLIBC_2.17 - 70: 0000000000011020 0 NOTYPE GLOBAL DEFAULT 23 _bss_end__ - 71: 0000000000011010 0 NOTYPE GLOBAL DEFAULT 22 _edata - 72: 0000000000000738 0 FUNC GLOBAL HIDDEN 14 _fini - 73: 0000000000011020 0 NOTYPE GLOBAL DEFAULT 23 __bss_end__ - 74: 0000000000011000 0 NOTYPE GLOBAL DEFAULT 22 __data_start - 75: 0000000000000000 0 NOTYPE WEAK DEFAULT UND __gmon_start__ - 76: 0000000000011008 0 OBJECT GLOBAL HIDDEN 22 __dso_handle - 77: 0000000000000000 0 FUNC GLOBAL DEFAULT UND abort@GLIBC_2.17 - 78: 000000000000074c 4 OBJECT GLOBAL DEFAULT 15 _IO_stdin_used - 79: 0000000000011020 0 NOTYPE GLOBAL DEFAULT 23 _end - 80: 0000000000000600 52 FUNC GLOBAL DEFAULT 13 _start - 81: 0000000000011020 0 NOTYPE GLOBAL DEFAULT 23 __end__ - 82: 0000000000011010 0 NOTYPE GLOBAL DEFAULT 23 __bss_start - 83: 0000000000000714 36 FUNC GLOBAL DEFAULT 13 main - 84: 0000000000011018 8 OBJECT GLOBAL DEFAULT 23 arr - 85: 0000000000011010 0 OBJECT GLOBAL HIDDEN 22 __TMC_END__ - 86: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_registerTMCloneTable - 87: 0000000000000580 0 FUNC GLOBAL HIDDEN 11 _init diff --git a/src/test/correct/basic_arrays_write/gcc/basic_arrays_write_gtirb.expected b/src/test/correct/basic_arrays_write/gcc/basic_arrays_write_gtirb.expected index 862cab56d..b4aadf30e 100644 --- a/src/test/correct/basic_arrays_write/gcc/basic_arrays_write_gtirb.expected +++ b/src/test/correct/basic_arrays_write/gcc/basic_arrays_write_gtirb.expected @@ -71,7 +71,7 @@ implementation {:extern} guarantee_reflexive() assert (memory_load32_le(mem, bvadd64($arr_addr, 0bv64)) == memory_load32_le(mem, bvadd64($arr_addr, 0bv64))); } -procedure main_1812(); +procedure main(); modifies Gamma_R0, Gamma_R1, Gamma_R31, Gamma_mem, Gamma_stack, R0, R1, R31, mem, stack; requires (Gamma_R0 == false); free requires (memory_load64_le(mem, 69632bv64) == 0bv64); @@ -89,31 +89,31 @@ procedure main_1812(); free ensures (memory_load64_le(mem, 69616bv64) == 1812bv64); free ensures (memory_load64_le(mem, 69640bv64) == 69640bv64); -implementation main_1812() +implementation main() { - var Gamma_load13: bool; + var $load13: bv32; + var Gamma_$load13: bool; var arr$0_old: bv32; - var load13: bv32; - main_1812__0__xPJOAvxpQvOT0IITWVjgKA: - assume {:captureState "main_1812__0__xPJOAvxpQvOT0IITWVjgKA"} true; + $main$__0__$xPJOAvxpQvOT0IITWVjgKA: + assume {:captureState "$main$__0__$xPJOAvxpQvOT0IITWVjgKA"} true; R31, Gamma_R31 := bvadd64(R31, 18446744073709551600bv64), Gamma_R31; stack, Gamma_stack := memory_store32_le(stack, bvadd64(R31, 12bv64), R0[32:0]), gamma_store32(Gamma_stack, bvadd64(R31, 12bv64), Gamma_R0); - assume {:captureState "1816_0"} true; + assume {:captureState "1816$0"} true; R0, Gamma_R0 := 69632bv64, true; R0, Gamma_R0 := bvadd64(R0, 24bv64), Gamma_R0; - load13, Gamma_load13 := memory_load32_le(stack, bvadd64(R31, 12bv64)), gamma_load32(Gamma_stack, bvadd64(R31, 12bv64)); - R1, Gamma_R1 := zero_extend32_32(load13), Gamma_load13; + $load13, Gamma_$load13 := memory_load32_le(stack, bvadd64(R31, 12bv64)), gamma_load32(Gamma_stack, bvadd64(R31, 12bv64)); + R1, Gamma_R1 := zero_extend32_32($load13), Gamma_$load13; call rely(); - arr$0_old := memory_load32_le(mem, bvadd64($arr_addr, 0bv64)); assert (L(mem, bvadd64(R0, 4bv64)) ==> Gamma_R1); + arr$0_old := memory_load32_le(mem, bvadd64($arr_addr, 0bv64)); mem, Gamma_mem := memory_store32_le(mem, bvadd64(R0, 4bv64), R1[32:0]), gamma_store32(Gamma_mem, bvadd64(R0, 4bv64), Gamma_R1); assert (arr$0_old == memory_load32_le(mem, bvadd64($arr_addr, 0bv64))); - assume {:captureState "1832_0"} true; + assume {:captureState "1832$0"} true; R0, Gamma_R0 := 0bv64, true; R31, Gamma_R31 := bvadd64(R31, 16bv64), Gamma_R31; - goto main_1812_basil_return; - main_1812_basil_return: - assume {:captureState "main_1812_basil_return"} true; + goto main_basil_return; + main_basil_return: + assume {:captureState "main_basil_return"} true; return; } diff --git a/src/test/correct/basic_arrays_write/gcc_O2/basic_arrays_write.adt b/src/test/correct/basic_arrays_write/gcc_O2/basic_arrays_write.adt deleted file mode 100644 index 4e31a6aca..000000000 --- a/src/test/correct/basic_arrays_write/gcc_O2/basic_arrays_write.adt +++ /dev/null @@ -1,493 +0,0 @@ -Project(Attrs([Attr("filename","\"gcc_O2/basic_arrays_write.out\""), -Attr("image-specification","(declare abi (name str))\n(declare arch (name str))\n(declare base-address (addr int))\n(declare bias (off int))\n(declare bits (size int))\n(declare code-region (addr int) (size int) (off int))\n(declare code-start (addr int))\n(declare entry-point (addr int))\n(declare external-reference (addr int) (name str))\n(declare format (name str))\n(declare is-executable (flag bool))\n(declare is-little-endian (flag bool))\n(declare llvm:base-address (addr int))\n(declare llvm:code-entry (name str) (off int) (size int))\n(declare llvm:coff-import-library (name str))\n(declare llvm:coff-virtual-section-header (name str) (addr int) (size int))\n(declare llvm:elf-program-header (name str) (off int) (size int))\n(declare llvm:elf-program-header-flags (name str) (ld bool) (r bool) \n (w bool) (x bool))\n(declare llvm:elf-virtual-program-header (name str) (addr int) (size int))\n(declare llvm:entry-point (addr int))\n(declare llvm:macho-symbol (name str) (value int))\n(declare llvm:name-reference (at int) (name str))\n(declare llvm:relocation (at int) (addr int))\n(declare llvm:section-entry (name str) (addr int) (size int) (off int))\n(declare llvm:section-flags (name str) (r bool) (w bool) (x bool))\n(declare llvm:segment-command (name str) (off int) (size int))\n(declare llvm:segment-command-flags (name str) (r bool) (w bool) (x bool))\n(declare llvm:symbol-entry (name str) (addr int) (size int) (off int)\n (value int))\n(declare llvm:virtual-segment-command (name str) (addr int) (size int))\n(declare mapped (addr int) (size int) (off int))\n(declare named-region (addr int) (size int) (name str))\n(declare named-symbol (addr int) (name str))\n(declare require (name str))\n(declare section (addr int) (size int))\n(declare segment (addr int) (size int) (r bool) (w bool) (x bool))\n(declare subarch (name str))\n(declare symbol-chunk (addr int) (size int) (root int))\n(declare symbol-value (addr int) (value int))\n(declare system (name str))\n(declare vendor (name str))\n\n(abi unknown)\n(arch aarch64)\n(base-address 0)\n(bias 0)\n(bits 64)\n(code-region 1876 20 1876)\n(code-region 1536 340 1536)\n(code-region 1440 96 1440)\n(code-region 1408 24 1408)\n(code-start 1652)\n(code-start 1600)\n(code-start 1536)\n(entry-point 1600)\n(external-reference 69592 _ITM_deregisterTMCloneTable)\n(external-reference 69600 __cxa_finalize)\n(external-reference 69608 __gmon_start__)\n(external-reference 69624 _ITM_registerTMCloneTable)\n(external-reference 69552 __libc_start_main)\n(external-reference 69560 __cxa_finalize)\n(external-reference 69568 __gmon_start__)\n(external-reference 69576 abort)\n(format elf)\n(is-executable true)\n(is-little-endian true)\n(llvm:base-address 0)\n(llvm:code-entry abort 0 0)\n(llvm:code-entry __cxa_finalize 0 0)\n(llvm:code-entry __libc_start_main 0 0)\n(llvm:code-entry _init 1408 0)\n(llvm:code-entry main 1536 20)\n(llvm:code-entry _start 1600 52)\n(llvm:code-entry abort@GLIBC_2.17 0 0)\n(llvm:code-entry _fini 1876 0)\n(llvm:code-entry __cxa_finalize@GLIBC_2.17 0 0)\n(llvm:code-entry __libc_start_main@GLIBC_2.34 0 0)\n(llvm:code-entry frame_dummy 1872 0)\n(llvm:code-entry __do_global_dtors_aux 1792 0)\n(llvm:code-entry register_tm_clones 1728 0)\n(llvm:code-entry deregister_tm_clones 1680 0)\n(llvm:code-entry call_weak_fn 1652 20)\n(llvm:code-entry .fini 1876 20)\n(llvm:code-entry .text 1536 340)\n(llvm:code-entry .plt 1440 96)\n(llvm:code-entry .init 1408 24)\n(llvm:elf-program-header 08 3480 616)\n(llvm:elf-program-header 07 0 0)\n(llvm:elf-program-header 06 1900 60)\n(llvm:elf-program-header 05 596 68)\n(llvm:elf-program-header 04 3496 496)\n(llvm:elf-program-header 03 3480 632)\n(llvm:elf-program-header 02 0 2120)\n(llvm:elf-program-header 01 568 27)\n(llvm:elf-program-header 00 64 504)\n(llvm:elf-program-header-flags 08 false true false false)\n(llvm:elf-program-header-flags 07 false true true false)\n(llvm:elf-program-header-flags 06 false true false false)\n(llvm:elf-program-header-flags 05 false true false false)\n(llvm:elf-program-header-flags 04 false true true false)\n(llvm:elf-program-header-flags 03 true true true false)\n(llvm:elf-program-header-flags 02 true true false true)\n(llvm:elf-program-header-flags 01 false true false false)\n(llvm:elf-program-header-flags 00 false true false false)\n(llvm:elf-virtual-program-header 08 69016 616)\n(llvm:elf-virtual-program-header 07 0 0)\n(llvm:elf-virtual-program-header 06 1900 60)\n(llvm:elf-virtual-program-header 05 596 68)\n(llvm:elf-virtual-program-header 04 69032 496)\n(llvm:elf-virtual-program-header 03 69016 648)\n(llvm:elf-virtual-program-header 02 0 2120)\n(llvm:elf-virtual-program-header 01 568 27)\n(llvm:elf-virtual-program-header 00 64 504)\n(llvm:entry-point 1600)\n(llvm:name-reference 69576 abort)\n(llvm:name-reference 69568 __gmon_start__)\n(llvm:name-reference 69560 __cxa_finalize)\n(llvm:name-reference 69552 __libc_start_main)\n(llvm:name-reference 69624 _ITM_registerTMCloneTable)\n(llvm:name-reference 69608 __gmon_start__)\n(llvm:name-reference 69600 __cxa_finalize)\n(llvm:name-reference 69592 _ITM_deregisterTMCloneTable)\n(llvm:section-entry .shstrtab 0 250 6830)\n(llvm:section-entry .strtab 0 558 6272)\n(llvm:section-entry .symtab 0 2112 4160)\n(llvm:section-entry .comment 0 43 4112)\n(llvm:section-entry .bss 69648 16 4112)\n(llvm:section-entry .data 69632 16 4096)\n(llvm:section-entry .got 69528 104 3992)\n(llvm:section-entry .dynamic 69032 496 3496)\n(llvm:section-entry .fini_array 69024 8 3488)\n(llvm:section-entry .init_array 69016 8 3480)\n(llvm:section-entry .eh_frame 1960 160 1960)\n(llvm:section-entry .eh_frame_hdr 1900 60 1900)\n(llvm:section-entry .rodata 1896 4 1896)\n(llvm:section-entry .fini 1876 20 1876)\n(llvm:section-entry .text 1536 340 1536)\n(llvm:section-entry .plt 1440 96 1440)\n(llvm:section-entry .init 1408 24 1408)\n(llvm:section-entry .rela.plt 1312 96 1312)\n(llvm:section-entry .rela.dyn 1120 192 1120)\n(llvm:section-entry .gnu.version_r 1072 48 1072)\n(llvm:section-entry .gnu.version 1054 18 1054)\n(llvm:section-entry .dynstr 912 141 912)\n(llvm:section-entry .dynsym 696 216 696)\n(llvm:section-entry .gnu.hash 664 28 664)\n(llvm:section-entry .note.ABI-tag 632 32 632)\n(llvm:section-entry .note.gnu.build-id 596 36 596)\n(llvm:section-entry .interp 568 27 568)\n(llvm:section-flags .shstrtab true false false)\n(llvm:section-flags .strtab true false false)\n(llvm:section-flags .symtab true false false)\n(llvm:section-flags .comment true false false)\n(llvm:section-flags .bss true true false)\n(llvm:section-flags .data true true false)\n(llvm:section-flags .got true true false)\n(llvm:section-flags .dynamic true true false)\n(llvm:section-flags .fini_array true true false)\n(llvm:section-flags .init_array true true false)\n(llvm:section-flags .eh_frame true false false)\n(llvm:section-flags .eh_frame_hdr true false false)\n(llvm:section-flags .rodata true false false)\n(llvm:section-flags .fini true false true)\n(llvm:section-flags .text true false true)\n(llvm:section-flags .plt true false true)\n(llvm:section-flags .init true false true)\n(llvm:section-flags .rela.plt true false false)\n(llvm:section-flags .rela.dyn true false false)\n(llvm:section-flags .gnu.version_r true false false)\n(llvm:section-flags .gnu.version true false false)\n(llvm:section-flags .dynstr true false false)\n(llvm:section-flags .dynsym true false false)\n(llvm:section-flags .gnu.hash true false false)\n(llvm:section-flags .note.ABI-tag true false false)\n(llvm:section-flags .note.gnu.build-id true false false)\n(llvm:section-flags .interp true false false)\n(llvm:symbol-entry abort 0 0 0 0)\n(llvm:symbol-entry __cxa_finalize 0 0 0 0)\n(llvm:symbol-entry __libc_start_main 0 0 0 0)\n(llvm:symbol-entry _init 1408 0 1408 1408)\n(llvm:symbol-entry main 1536 20 1536 1536)\n(llvm:symbol-entry _start 1600 52 1600 1600)\n(llvm:symbol-entry abort@GLIBC_2.17 0 0 0 0)\n(llvm:symbol-entry _fini 1876 0 1876 1876)\n(llvm:symbol-entry __cxa_finalize@GLIBC_2.17 0 0 0 0)\n(llvm:symbol-entry __libc_start_main@GLIBC_2.34 0 0 0 0)\n(llvm:symbol-entry frame_dummy 1872 0 1872 1872)\n(llvm:symbol-entry __do_global_dtors_aux 1792 0 1792 1792)\n(llvm:symbol-entry register_tm_clones 1728 0 1728 1728)\n(llvm:symbol-entry deregister_tm_clones 1680 0 1680 1680)\n(llvm:symbol-entry call_weak_fn 1652 20 1652 1652)\n(mapped 0 2120 0)\n(mapped 69016 632 3480)\n(named-region 0 2120 02)\n(named-region 69016 648 03)\n(named-region 568 27 .interp)\n(named-region 596 36 .note.gnu.build-id)\n(named-region 632 32 .note.ABI-tag)\n(named-region 664 28 .gnu.hash)\n(named-region 696 216 .dynsym)\n(named-region 912 141 .dynstr)\n(named-region 1054 18 .gnu.version)\n(named-region 1072 48 .gnu.version_r)\n(named-region 1120 192 .rela.dyn)\n(named-region 1312 96 .rela.plt)\n(named-region 1408 24 .init)\n(named-region 1440 96 .plt)\n(named-region 1536 340 .text)\n(named-region 1876 20 .fini)\n(named-region 1896 4 .rodata)\n(named-region 1900 60 .eh_frame_hdr)\n(named-region 1960 160 .eh_frame)\n(named-region 69016 8 .init_array)\n(named-region 69024 8 .fini_array)\n(named-region 69032 496 .dynamic)\n(named-region 69528 104 .got)\n(named-region 69632 16 .data)\n(named-region 69648 16 .bss)\n(named-region 0 43 .comment)\n(named-region 0 2112 .symtab)\n(named-region 0 558 .strtab)\n(named-region 0 250 .shstrtab)\n(named-symbol 1652 call_weak_fn)\n(named-symbol 1680 deregister_tm_clones)\n(named-symbol 1728 register_tm_clones)\n(named-symbol 1792 __do_global_dtors_aux)\n(named-symbol 1872 frame_dummy)\n(named-symbol 0 __libc_start_main@GLIBC_2.34)\n(named-symbol 0 __cxa_finalize@GLIBC_2.17)\n(named-symbol 1876 _fini)\n(named-symbol 0 abort@GLIBC_2.17)\n(named-symbol 1600 _start)\n(named-symbol 1536 main)\n(named-symbol 1408 _init)\n(named-symbol 0 __libc_start_main)\n(named-symbol 0 __cxa_finalize)\n(named-symbol 0 abort)\n(require libc.so.6)\n(section 568 27)\n(section 596 36)\n(section 632 32)\n(section 664 28)\n(section 696 216)\n(section 912 141)\n(section 1054 18)\n(section 1072 48)\n(section 1120 192)\n(section 1312 96)\n(section 1408 24)\n(section 1440 96)\n(section 1536 340)\n(section 1876 20)\n(section 1896 4)\n(section 1900 60)\n(section 1960 160)\n(section 69016 8)\n(section 69024 8)\n(section 69032 496)\n(section 69528 104)\n(section 69632 16)\n(section 69648 16)\n(section 0 43)\n(section 0 2112)\n(section 0 558)\n(section 0 250)\n(segment 0 2120 true false true)\n(segment 69016 648 true true false)\n(subarch v8)\n(symbol-chunk 1652 20 1652)\n(symbol-chunk 1600 52 1600)\n(symbol-chunk 1536 20 1536)\n(symbol-value 1652 1652)\n(symbol-value 1680 1680)\n(symbol-value 1728 1728)\n(symbol-value 1792 1792)\n(symbol-value 1872 1872)\n(symbol-value 1876 1876)\n(symbol-value 1600 1600)\n(symbol-value 1536 1536)\n(symbol-value 1408 1408)\n(symbol-value 0 0)\n(system \"\")\n(vendor \"\")\n"), -Attr("abi-name","\"aarch64-linux-gnu-elf\"")]), -Sections([Section(".shstrtab", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x40\x06\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xa8\x1b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x38\x00\x09\x00\x40\x00\x1c\x00\x1b\x00\x06\x00\x00\x00\x04\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x04\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x48\x08\x00\x00\x00\x00\x00\x00\x48\x08\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x01\x00\x00\x00\x06\x00\x00\x00\x98\x0d\x00\x00\x00\x00\x00\x00\x98\x0d"), -Section(".strtab", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x40\x06\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xa8\x1b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x38\x00\x09\x00\x40\x00\x1c\x00\x1b\x00\x06\x00\x00\x00\x04\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x04\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x48\x08\x00\x00\x00\x00\x00\x00\x48\x08\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x01\x00\x00\x00\x06\x00\x00\x00\x98\x0d\x00\x00\x00\x00\x00\x00\x98\x0d\x01\x00\x00\x00\x00\x00\x98\x0d\x01\x00\x00\x00\x00\x00\x78\x02\x00\x00\x00\x00\x00\x00\x88\x02\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x02\x00\x00\x00\x06\x00\x00\x00\xa8\x0d\x00\x00\x00\x00\x00\x00\xa8\x0d\x01\x00\x00\x00\x00\x00\xa8\x0d\x01\x00\x00\x00\x00\x00\xf0\x01\x00\x00\x00\x00\x00\x00\xf0\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x04\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x50\xe5\x74\x64\x04\x00\x00\x00\x6c\x07\x00\x00\x00\x00\x00\x00\x6c\x07\x00\x00\x00\x00\x00\x00\x6c\x07\x00\x00\x00\x00\x00\x00\x3c\x00\x00\x00\x00\x00\x00\x00\x3c\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x51\xe5\x74\x64\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x52\xe5\x74\x64\x04\x00\x00\x00\x98\x0d\x00\x00\x00\x00\x00\x00\x98\x0d\x01\x00\x00\x00\x00\x00\x98\x0d\x01\x00\x00\x00\x00\x00\x68\x02\x00\x00\x00\x00\x00\x00\x68\x02\x00\x00\x00\x00"), -Section(".symtab", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x40\x06\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xa8\x1b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x38\x00\x09\x00\x40\x00\x1c\x00\x1b\x00\x06\x00\x00\x00\x04\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x04\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x48\x08\x00\x00\x00\x00\x00\x00\x48\x08\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x01\x00\x00\x00\x06\x00\x00\x00\x98\x0d\x00\x00\x00\x00\x00\x00\x98\x0d\x01\x00\x00\x00\x00\x00\x98\x0d\x01\x00\x00\x00\x00\x00\x78\x02\x00\x00\x00\x00\x00\x00\x88\x02\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x02\x00\x00\x00\x06\x00\x00\x00\xa8\x0d\x00\x00\x00\x00\x00\x00\xa8\x0d\x01\x00\x00\x00\x00\x00\xa8\x0d\x01\x00\x00\x00\x00\x00\xf0\x01\x00\x00\x00\x00\x00\x00\xf0\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x04\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x50\xe5\x74\x64\x04\x00\x00\x00\x6c\x07\x00\x00\x00\x00\x00\x00\x6c\x07\x00\x00\x00\x00\x00\x00\x6c\x07\x00\x00\x00\x00\x00\x00\x3c\x00\x00\x00\x00\x00\x00\x00\x3c\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x51\xe5\x74\x64\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x52\xe5\x74\x64\x04\x00\x00\x00\x98\x0d\x00\x00\x00\x00\x00\x00\x98\x0d\x01\x00\x00\x00\x00\x00\x98\x0d\x01\x00\x00\x00\x00\x00\x68\x02\x00\x00\x00\x00\x00\x00\x68\x02\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x2f\x6c\x69\x62\x2f\x6c\x64\x2d\x6c\x69\x6e\x75\x78\x2d\x61\x61\x72\x63\x68\x36\x34\x2e\x73\x6f\x2e\x31\x00\x00\x04\x00\x00\x00\x14\x00\x00\x00\x03\x00\x00\x00\x47\x4e\x55\x00\x50\xf4\x02\xa1\x31\x28\xfb\x38\x78\x42\xcd\x9f\xbd\x50\x04\x4d\x19\x29\xe9\x26\x04\x00\x00\x00\x10\x00\x00\x00\x01\x00\x00\x00\x47\x4e\x55\x00\x00\x00\x00\x00\x03\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x01\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x0b\x00\x80\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x16\x00\x00\x10\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x48\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x22\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x22\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x73\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5f\x5f\x63\x78\x61\x5f\x66\x69\x6e\x61\x6c\x69\x7a\x65\x00\x5f\x5f\x6c\x69\x62\x63\x5f\x73\x74\x61\x72\x74\x5f\x6d\x61\x69\x6e\x00\x61\x62\x6f\x72\x74\x00\x6c\x69\x62\x63\x2e\x73\x6f\x2e\x36\x00\x47\x4c\x49\x42\x43\x5f\x32\x2e\x31\x37\x00\x47\x4c\x49\x42\x43\x5f\x32\x2e\x33\x34\x00\x5f\x49\x54\x4d\x5f\x64\x65\x72\x65\x67\x69\x73\x74\x65\x72\x54\x4d\x43\x6c\x6f\x6e\x65\x54\x61\x62\x6c\x65\x00\x5f\x5f\x67\x6d\x6f\x6e\x5f\x73\x74\x61\x72\x74\x5f\x5f\x00\x5f\x49\x54\x4d\x5f\x72\x65\x67\x69\x73\x74\x65\x72\x54\x4d\x43\x6c\x6f\x6e\x65\x54\x61\x62\x6c\x65\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x01\x00\x03\x00\x01\x00\x03\x00\x01\x00\x01\x00\x02\x00\x28\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x97\x91\x96\x06\x00\x00\x03\x00\x32\x00\x00\x00\x10\x00\x00\x00\xb4\x91\x96\x06\x00\x00\x02\x00\x3d\x00\x00\x00\x00\x00\x00\x00\x98\x0d\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x50\x07\x00\x00\x00\x00\x00\x00\xa0\x0d\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\xf0\x0f\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x00\x06\x00\x00\x00\x00\x00\x00\x08\x10\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x08\x10\x01\x00\x00\x00\x00\x00\xd8\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe0\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe8\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xf8\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xb0\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xb8\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xc0\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xc8\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1f\x20\x03\xd5\xfd\x7b\xbf\xa9\xfd\x03\x00\x91\x3a\x00\x00\x94\xfd\x7b\xc1\xa8\xc0\x03\x5f\xd6\x00\x00\x00\x00\x00\x00\x00\x00\xf0\x7b\xbf\xa9\x90\x00\x00\x90\x11\xd6\x47\xf9\x10\xa2\x3e\x91\x20\x02\x1f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x90\x00\x00\x90\x11\xda\x47\xf9\x10\xc2\x3e\x91\x20\x02\x1f\xd6\x90\x00\x00\x90\x11\xde\x47\xf9\x10\xe2\x3e\x91\x20\x02\x1f\xd6\x90\x00\x00\x90\x11\xe2\x47\xf9\x10\x02\x3f\x91\x20\x02\x1f\xd6\x90\x00\x00\x90\x11\xe6\x47\xf9\x10\x22\x3f\x91\x20\x02\x1f\xd6\x81\x00\x00\xb0\xe2\x03\x00\x2a\x00\x00\x80\x52\x22\x1c\x00\xb9\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1d\x00\x80\xd2\x1e\x00\x80\xd2\xe5\x03\x00\xaa\xe1\x03\x40\xf9\xe2\x23\x00\x91\xe6\x03\x00\x91\x80\x00\x00\x90\x00\xf8\x47\xf9\x03\x00\x80\xd2\x04\x00\x80\xd2\xd5\xff\xff\x97\xe0\xff\xff\x97\x80\x00\x00\x90\x00\xf4\x47\xf9\x40\x00\x00\xb4\xd8\xff\xff\x17\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x80\x00\x00\xb0\x00\x40\x00\x91\x81\x00\x00\xb0\x21\x40\x00\x91\x3f\x00\x00\xeb\xc0\x00\x00\x54\x81\x00\x00\x90\x21\xec\x47\xf9\x61\x00\x00\xb4\xf0\x03\x01\xaa\x00\x02\x1f\xd6\xc0\x03\x5f\xd6\x80\x00\x00\xb0\x00\x40\x00\x91\x81\x00\x00\xb0\x21\x40\x00\x91\x21\x00\x00\xcb\x22\xfc\x7f\xd3\x41\x0c\x81\x8b\x21\xfc\x41\x93\xc1\x00\x00\xb4\x82\x00\x00\x90\x42\xfc\x47\xf9\x62\x00\x00\xb4\xf0\x03\x02\xaa\x00\x02\x1f\xd6\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\xfd\x7b\xbe\xa9\xfd\x03\x00\x91\xf3\x0b\x00\xf9\x93\x00\x00\xb0\x60\x42\x40\x39\x40\x01\x00\x35\x80\x00\x00\x90\x00\xf0\x47\xf9\x80\x00\x00\xb4\x80\x00\x00\xb0\x00\x04\x40\xf9\xa9\xff\xff\x97\xd8\xff\xff\x97\x20\x00\x80\x52\x60\x42\x00\x39\xf3\x0b\x40\xf9\xfd\x7b\xc2\xa8\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\xdc\xff\xff\x17\x1f\x20\x03\xd5\xfd\x7b\xbf\xa9\xfd\x03\x00\x91\xfd\x7b\xc1\xa8\xc0\x03\x5f\xd6\x01\x00\x02\x00\x01\x1b\x03\x3b\x38\x00\x00\x00\x06\x00\x00\x00\x94\xfe\xff\xff\xc4\x00\x00\x00\xd4\xfe\xff\xff\x50\x00\x00\x00\x24\xff\xff\xff\x64\x00\x00\x00\x54\xff\xff\xff\x78\x00\x00\x00\x94\xff\xff\xff\x8c\x00\x00\x00\xe4\xff\xff\xff\xb0\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x01\x7a\x52\x00\x04\x78\x1e\x01\x1b\x0c\x1f\x00\x10\x00\x00\x00\x18\x00\x00\x00\x7c\xfe\xff\xff\x34\x00\x00\x00\x00\x41\x07\x1e\x10\x00\x00\x00\x2c\x00\x00\x00\xb8\xfe\xff\xff\x30\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x40\x00\x00\x00\xd4\xfe\xff\xff\x3c\x00\x00\x00\x00\x00\x00\x00\x20\x00\x00\x00\x54\x00\x00\x00\x00\xff\xff\xff\x48\x00\x00\x00\x00\x41\x0e\x20\x9d\x04\x9e\x03\x42\x93\x02\x4e\xde\xdd\xd3\x0e\x00\x00\x00\x00\x10\x00\x00\x00\x78\x00\x00\x00\x2c\xff\xff\xff\x04\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x8c\x00\x00\x00\xc8\xfd\xff\xff\x14\x00\x00\x00"), -Section(".comment", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x40\x06\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xa8\x1b\x00"), -Section(".interp", 0x238, "\x2f\x6c\x69\x62\x2f\x6c\x64\x2d\x6c\x69\x6e\x75\x78\x2d\x61\x61\x72\x63\x68\x36\x34\x2e\x73\x6f\x2e\x31\x00"), -Section(".note.gnu.build-id", 0x254, "\x04\x00\x00\x00\x14\x00\x00\x00\x03\x00\x00\x00\x47\x4e\x55\x00\x50\xf4\x02\xa1\x31\x28\xfb\x38\x78\x42\xcd\x9f\xbd\x50\x04\x4d\x19\x29\xe9\x26"), -Section(".note.ABI-tag", 0x278, "\x04\x00\x00\x00\x10\x00\x00\x00\x01\x00\x00\x00\x47\x4e\x55\x00\x00\x00\x00\x00\x03\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00"), -Section(".gnu.hash", 0x298, "\x01\x00\x00\x00\x01\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".dynsym", 0x2B8, "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x0b\x00\x80\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x16\x00\x00\x10\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x48\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x22\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x22\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x73\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".dynstr", 0x390, "\x00\x5f\x5f\x63\x78\x61\x5f\x66\x69\x6e\x61\x6c\x69\x7a\x65\x00\x5f\x5f\x6c\x69\x62\x63\x5f\x73\x74\x61\x72\x74\x5f\x6d\x61\x69\x6e\x00\x61\x62\x6f\x72\x74\x00\x6c\x69\x62\x63\x2e\x73\x6f\x2e\x36\x00\x47\x4c\x49\x42\x43\x5f\x32\x2e\x31\x37\x00\x47\x4c\x49\x42\x43\x5f\x32\x2e\x33\x34\x00\x5f\x49\x54\x4d\x5f\x64\x65\x72\x65\x67\x69\x73\x74\x65\x72\x54\x4d\x43\x6c\x6f\x6e\x65\x54\x61\x62\x6c\x65\x00\x5f\x5f\x67\x6d\x6f\x6e\x5f\x73\x74\x61\x72\x74\x5f\x5f\x00\x5f\x49\x54\x4d\x5f\x72\x65\x67\x69\x73\x74\x65\x72\x54\x4d\x43\x6c\x6f\x6e\x65\x54\x61\x62\x6c\x65\x00"), -Section(".gnu.version", 0x41E, "\x00\x00\x00\x00\x00\x00\x02\x00\x01\x00\x03\x00\x01\x00\x03\x00\x01\x00"), -Section(".gnu.version_r", 0x430, "\x01\x00\x02\x00\x28\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x97\x91\x96\x06\x00\x00\x03\x00\x32\x00\x00\x00\x10\x00\x00\x00\xb4\x91\x96\x06\x00\x00\x02\x00\x3d\x00\x00\x00\x00\x00\x00\x00"), -Section(".rela.dyn", 0x460, "\x98\x0d\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x50\x07\x00\x00\x00\x00\x00\x00\xa0\x0d\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\xf0\x0f\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x00\x06\x00\x00\x00\x00\x00\x00\x08\x10\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x08\x10\x01\x00\x00\x00\x00\x00\xd8\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe0\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe8\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xf8\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".rela.plt", 0x520, "\xb0\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xb8\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xc0\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xc8\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".init", 0x580, "\x1f\x20\x03\xd5\xfd\x7b\xbf\xa9\xfd\x03\x00\x91\x3a\x00\x00\x94\xfd\x7b\xc1\xa8\xc0\x03\x5f\xd6"), -Section(".plt", 0x5A0, "\xf0\x7b\xbf\xa9\x90\x00\x00\x90\x11\xd6\x47\xf9\x10\xa2\x3e\x91\x20\x02\x1f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x90\x00\x00\x90\x11\xda\x47\xf9\x10\xc2\x3e\x91\x20\x02\x1f\xd6\x90\x00\x00\x90\x11\xde\x47\xf9\x10\xe2\x3e\x91\x20\x02\x1f\xd6\x90\x00\x00\x90\x11\xe2\x47\xf9\x10\x02\x3f\x91\x20\x02\x1f\xd6\x90\x00\x00\x90\x11\xe6\x47\xf9\x10\x22\x3f\x91\x20\x02\x1f\xd6"), -Section(".fini", 0x754, "\x1f\x20\x03\xd5\xfd\x7b\xbf\xa9\xfd\x03\x00\x91\xfd\x7b\xc1\xa8\xc0\x03\x5f\xd6"), -Section(".rodata", 0x768, "\x01\x00\x02\x00"), -Section(".eh_frame_hdr", 0x76C, "\x01\x1b\x03\x3b\x38\x00\x00\x00\x06\x00\x00\x00\x94\xfe\xff\xff\xc4\x00\x00\x00\xd4\xfe\xff\xff\x50\x00\x00\x00\x24\xff\xff\xff\x64\x00\x00\x00\x54\xff\xff\xff\x78\x00\x00\x00\x94\xff\xff\xff\x8c\x00\x00\x00\xe4\xff\xff\xff\xb0\x00\x00\x00"), -Section(".eh_frame", 0x7A8, "\x10\x00\x00\x00\x00\x00\x00\x00\x01\x7a\x52\x00\x04\x78\x1e\x01\x1b\x0c\x1f\x00\x10\x00\x00\x00\x18\x00\x00\x00\x7c\xfe\xff\xff\x34\x00\x00\x00\x00\x41\x07\x1e\x10\x00\x00\x00\x2c\x00\x00\x00\xb8\xfe\xff\xff\x30\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x40\x00\x00\x00\xd4\xfe\xff\xff\x3c\x00\x00\x00\x00\x00\x00\x00\x20\x00\x00\x00\x54\x00\x00\x00\x00\xff\xff\xff\x48\x00\x00\x00\x00\x41\x0e\x20\x9d\x04\x9e\x03\x42\x93\x02\x4e\xde\xdd\xd3\x0e\x00\x00\x00\x00\x10\x00\x00\x00\x78\x00\x00\x00\x2c\xff\xff\xff\x04\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x8c\x00\x00\x00\xc8\xfd\xff\xff\x14\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".fini_array", 0x10DA0, "\x00\x07\x00\x00\x00\x00\x00\x00"), -Section(".dynamic", 0x10DA8, "\x01\x00\x00\x00\x00\x00\x00\x00\x28\x00\x00\x00\x00\x00\x00\x00\x0c\x00\x00\x00\x00\x00\x00\x00\x80\x05\x00\x00\x00\x00\x00\x00\x0d\x00\x00\x00\x00\x00\x00\x00\x54\x07\x00\x00\x00\x00\x00\x00\x19\x00\x00\x00\x00\x00\x00\x00\x98\x0d\x01\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x1a\x00\x00\x00\x00\x00\x00\x00\xa0\x0d\x01\x00\x00\x00\x00\x00\x1c\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\xf5\xfe\xff\x6f\x00\x00\x00\x00\x98\x02\x00\x00\x00\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x90\x03\x00\x00\x00\x00\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\xb8\x02\x00\x00\x00\x00\x00\x00\x0a\x00\x00\x00\x00\x00\x00\x00\x8d\x00\x00\x00\x00\x00\x00\x00\x0b\x00\x00\x00\x00\x00\x00\x00\x18\x00\x00\x00\x00\x00\x00\x00\x15\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x98\x0f\x01\x00\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x60\x00\x00\x00\x00\x00\x00\x00\x14\x00\x00\x00\x00\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x17\x00\x00\x00\x00\x00\x00\x00\x20\x05\x00\x00\x00\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x60\x04\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\xc0\x00\x00\x00\x00\x00\x00\x00\x09\x00\x00\x00\x00\x00\x00\x00\x18\x00\x00\x00\x00\x00\x00\x00\x1e\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\xfb\xff\xff\x6f\x00\x00\x00\x00\x01\x00\x00\x08\x00\x00\x00\x00\xfe\xff\xff\x6f\x00\x00\x00\x00\x30\x04\x00\x00\x00\x00\x00\x00\xff\xff\xff\x6f\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\xf0\xff\xff\x6f\x00\x00\x00\x00\x1e\x04\x00\x00\x00\x00\x00\x00\xf9\xff\xff\x6f\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".init_array", 0x10D98, "\x50\x07\x00\x00\x00\x00\x00\x00"), -Section(".got", 0x10F98, "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xa0\x05\x00\x00\x00\x00\x00\x00\xa0\x05\x00\x00\x00\x00\x00\x00\xa0\x05\x00\x00\x00\x00\x00\x00\xa0\x05\x00\x00\x00\x00\x00\x00\xa8\x0d\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".data", 0x11000, "\x00\x00\x00\x00\x00\x00\x00\x00\x08\x10\x01\x00\x00\x00\x00\x00"), -Section(".text", 0x600, "\x81\x00\x00\xb0\xe2\x03\x00\x2a\x00\x00\x80\x52\x22\x1c\x00\xb9\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1d\x00\x80\xd2\x1e\x00\x80\xd2\xe5\x03\x00\xaa\xe1\x03\x40\xf9\xe2\x23\x00\x91\xe6\x03\x00\x91\x80\x00\x00\x90\x00\xf8\x47\xf9\x03\x00\x80\xd2\x04\x00\x80\xd2\xd5\xff\xff\x97\xe0\xff\xff\x97\x80\x00\x00\x90\x00\xf4\x47\xf9\x40\x00\x00\xb4\xd8\xff\xff\x17\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x80\x00\x00\xb0\x00\x40\x00\x91\x81\x00\x00\xb0\x21\x40\x00\x91\x3f\x00\x00\xeb\xc0\x00\x00\x54\x81\x00\x00\x90\x21\xec\x47\xf9\x61\x00\x00\xb4\xf0\x03\x01\xaa\x00\x02\x1f\xd6\xc0\x03\x5f\xd6\x80\x00\x00\xb0\x00\x40\x00\x91\x81\x00\x00\xb0\x21\x40\x00\x91\x21\x00\x00\xcb\x22\xfc\x7f\xd3\x41\x0c\x81\x8b\x21\xfc\x41\x93\xc1\x00\x00\xb4\x82\x00\x00\x90\x42\xfc\x47\xf9\x62\x00\x00\xb4\xf0\x03\x02\xaa\x00\x02\x1f\xd6\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\xfd\x7b\xbe\xa9\xfd\x03\x00\x91\xf3\x0b\x00\xf9\x93\x00\x00\xb0\x60\x42\x40\x39\x40\x01\x00\x35\x80\x00\x00\x90\x00\xf0\x47\xf9\x80\x00\x00\xb4\x80\x00\x00\xb0\x00\x04\x40\xf9\xa9\xff\xff\x97\xd8\xff\xff\x97\x20\x00\x80\x52\x60\x42\x00\x39\xf3\x0b\x40\xf9\xfd\x7b\xc2\xa8\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\xdc\xff\xff\x17")]), -Memmap([Annotation(Region(0x0,0x847), Attr("segment","02 0 2120")), -Annotation(Region(0x600,0x613), Attr("symbol","\"main\"")), -Annotation(Region(0x0,0xF9), Attr("section","\".shstrtab\"")), -Annotation(Region(0x0,0x22D), Attr("section","\".strtab\"")), -Annotation(Region(0x0,0x83F), Attr("section","\".symtab\"")), -Annotation(Region(0x0,0x2A), Attr("section","\".comment\"")), -Annotation(Region(0x238,0x252), Attr("section","\".interp\"")), -Annotation(Region(0x254,0x277), Attr("section","\".note.gnu.build-id\"")), -Annotation(Region(0x278,0x297), Attr("section","\".note.ABI-tag\"")), -Annotation(Region(0x298,0x2B3), Attr("section","\".gnu.hash\"")), -Annotation(Region(0x2B8,0x38F), Attr("section","\".dynsym\"")), -Annotation(Region(0x390,0x41C), Attr("section","\".dynstr\"")), -Annotation(Region(0x41E,0x42F), Attr("section","\".gnu.version\"")), -Annotation(Region(0x430,0x45F), Attr("section","\".gnu.version_r\"")), -Annotation(Region(0x460,0x51F), Attr("section","\".rela.dyn\"")), -Annotation(Region(0x520,0x57F), Attr("section","\".rela.plt\"")), -Annotation(Region(0x580,0x597), Attr("section","\".init\"")), -Annotation(Region(0x5A0,0x5FF), Attr("section","\".plt\"")), -Annotation(Region(0x580,0x597), Attr("code-region","()")), -Annotation(Region(0x5A0,0x5FF), Attr("code-region","()")), -Annotation(Region(0x600,0x613), Attr("symbol-info","main 0x600 20")), -Annotation(Region(0x640,0x673), Attr("symbol","\"_start\"")), -Annotation(Region(0x640,0x673), Attr("symbol-info","_start 0x640 52")), -Annotation(Region(0x674,0x687), Attr("symbol","\"call_weak_fn\"")), -Annotation(Region(0x674,0x687), Attr("symbol-info","call_weak_fn 0x674 20")), -Annotation(Region(0x754,0x767), Attr("section","\".fini\"")), -Annotation(Region(0x768,0x76B), Attr("section","\".rodata\"")), -Annotation(Region(0x76C,0x7A7), Attr("section","\".eh_frame_hdr\"")), -Annotation(Region(0x7A8,0x847), Attr("section","\".eh_frame\"")), -Annotation(Region(0x10D98,0x1100F), Attr("segment","03 0x10D98 648")), -Annotation(Region(0x10DA0,0x10DA7), Attr("section","\".fini_array\"")), -Annotation(Region(0x10DA8,0x10F97), Attr("section","\".dynamic\"")), -Annotation(Region(0x10D98,0x10D9F), Attr("section","\".init_array\"")), -Annotation(Region(0x10F98,0x10FFF), Attr("section","\".got\"")), -Annotation(Region(0x11000,0x1100F), Attr("section","\".data\"")), -Annotation(Region(0x600,0x753), Attr("section","\".text\"")), -Annotation(Region(0x600,0x753), Attr("code-region","()")), -Annotation(Region(0x754,0x767), Attr("code-region","()"))]), -Program(Tid(1_506, "%000005e2"), Attrs([]), - Subs([Sub(Tid(1_456, "@__cxa_finalize"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x5D0"), -Attr("stub","()")]), "__cxa_finalize", Args([Arg(Tid(1_507, "%000005e3"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("__cxa_finalize_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(852, "@__cxa_finalize"), - Attrs([Attr("address","0x5D0")]), Phis([]), -Defs([Def(Tid(1_100, "%0000044c"), Attrs([Attr("address","0x5D0"), -Attr("insn","adrp x16, #65536")]), Var("R16",Imm(64)), Int(65536,64)), -Def(Tid(1_107, "%00000453"), Attrs([Attr("address","0x5D4"), -Attr("insn","ldr x17, [x16, #0xfb8]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(4024,64)),LittleEndian(),64)), -Def(Tid(1_113, "%00000459"), Attrs([Attr("address","0x5D8"), -Attr("insn","add x16, x16, #0xfb8")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(4024,64)))]), Jmps([Call(Tid(1_118, "%0000045e"), - Attrs([Attr("address","0x5DC"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), -Sub(Tid(1_457, "@__do_global_dtors_aux"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x700")]), - "__do_global_dtors_aux", Args([Arg(Tid(1_508, "%000005e4"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("__do_global_dtors_aux_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(705, "@__do_global_dtors_aux"), - Attrs([Attr("address","0x700")]), Phis([]), Defs([Def(Tid(709, "%000002c5"), - Attrs([Attr("address","0x700"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("#3",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(18446744073709551584,64))), -Def(Tid(715, "%000002cb"), Attrs([Attr("address","0x700"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("#3",Imm(64)),Var("R29",Imm(64)),LittleEndian(),64)), -Def(Tid(721, "%000002d1"), Attrs([Attr("address","0x700"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("#3",Imm(64)),Int(8,64)),Var("R30",Imm(64)),LittleEndian(),64)), -Def(Tid(725, "%000002d5"), Attrs([Attr("address","0x700"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("R31",Imm(64)), -Var("#3",Imm(64))), Def(Tid(731, "%000002db"), - Attrs([Attr("address","0x704"), Attr("insn","mov x29, sp")]), - Var("R29",Imm(64)), Var("R31",Imm(64))), Def(Tid(739, "%000002e3"), - Attrs([Attr("address","0x708"), Attr("insn","str x19, [sp, #0x10]")]), - Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(16,64)),Var("R19",Imm(64)),LittleEndian(),64)), -Def(Tid(744, "%000002e8"), Attrs([Attr("address","0x70C"), -Attr("insn","adrp x19, #69632")]), Var("R19",Imm(64)), Int(69632,64)), -Def(Tid(751, "%000002ef"), Attrs([Attr("address","0x710"), -Attr("insn","ldrb w0, [x19, #0x10]")]), Var("R0",Imm(64)), -UNSIGNED(64,Load(Var("mem",Mem(64,8)),PLUS(Var("R19",Imm(64)),Int(16,64)),LittleEndian(),8)))]), -Jmps([Goto(Tid(758, "%000002f6"), Attrs([Attr("address","0x714"), -Attr("insn","cbnz w0, #0x28")]), - NEQ(Extract(31,0,Var("R0",Imm(64))),Int(0,32)), -Direct(Tid(756, "%000002f4"))), Goto(Tid(1_496, "%000005d8"), Attrs([]), - Int(1,1), Direct(Tid(797, "%0000031d")))])), Blk(Tid(797, "%0000031d"), - Attrs([Attr("address","0x718")]), Phis([]), Defs([Def(Tid(800, "%00000320"), - Attrs([Attr("address","0x718"), Attr("insn","adrp x0, #65536")]), - Var("R0",Imm(64)), Int(65536,64)), Def(Tid(807, "%00000327"), - Attrs([Attr("address","0x71C"), Attr("insn","ldr x0, [x0, #0xfe0]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(4064,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(813, "%0000032d"), Attrs([Attr("address","0x720"), -Attr("insn","cbz x0, #0x10")]), EQ(Var("R0",Imm(64)),Int(0,64)), -Direct(Tid(811, "%0000032b"))), Goto(Tid(1_497, "%000005d9"), Attrs([]), - Int(1,1), Direct(Tid(836, "%00000344")))])), Blk(Tid(836, "%00000344"), - Attrs([Attr("address","0x724")]), Phis([]), Defs([Def(Tid(839, "%00000347"), - Attrs([Attr("address","0x724"), Attr("insn","adrp x0, #69632")]), - Var("R0",Imm(64)), Int(69632,64)), Def(Tid(846, "%0000034e"), - Attrs([Attr("address","0x728"), Attr("insn","ldr x0, [x0, #0x8]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(851, "%00000353"), Attrs([Attr("address","0x72C"), -Attr("insn","bl #-0x15c")]), Var("R30",Imm(64)), Int(1840,64))]), -Jmps([Call(Tid(854, "%00000356"), Attrs([Attr("address","0x72C"), -Attr("insn","bl #-0x15c")]), Int(1,1), -(Direct(Tid(1_456, "@__cxa_finalize")),Direct(Tid(811, "%0000032b"))))])), -Blk(Tid(811, "%0000032b"), Attrs([Attr("address","0x730")]), Phis([]), -Defs([Def(Tid(819, "%00000333"), Attrs([Attr("address","0x730"), -Attr("insn","bl #-0xa0")]), Var("R30",Imm(64)), Int(1844,64))]), -Jmps([Call(Tid(821, "%00000335"), Attrs([Attr("address","0x730"), -Attr("insn","bl #-0xa0")]), Int(1,1), -(Direct(Tid(1_470, "@deregister_tm_clones")),Direct(Tid(823, "%00000337"))))])), -Blk(Tid(823, "%00000337"), Attrs([Attr("address","0x734")]), Phis([]), -Defs([Def(Tid(826, "%0000033a"), Attrs([Attr("address","0x734"), -Attr("insn","mov w0, #0x1")]), Var("R0",Imm(64)), Int(1,64)), -Def(Tid(834, "%00000342"), Attrs([Attr("address","0x738"), -Attr("insn","strb w0, [x19, #0x10]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R19",Imm(64)),Int(16,64)),Extract(7,0,Var("R0",Imm(64))),LittleEndian(),8))]), -Jmps([Goto(Tid(1_498, "%000005da"), Attrs([]), Int(1,1), -Direct(Tid(756, "%000002f4")))])), Blk(Tid(756, "%000002f4"), - Attrs([Attr("address","0x73C")]), Phis([]), Defs([Def(Tid(766, "%000002fe"), - Attrs([Attr("address","0x73C"), Attr("insn","ldr x19, [sp, #0x10]")]), - Var("R19",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(16,64)),LittleEndian(),64)), -Def(Tid(773, "%00000305"), Attrs([Attr("address","0x740"), -Attr("insn","ldp x29, x30, [sp], #0x20")]), Var("R29",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(778, "%0000030a"), Attrs([Attr("address","0x740"), -Attr("insn","ldp x29, x30, [sp], #0x20")]), Var("R30",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(782, "%0000030e"), Attrs([Attr("address","0x740"), -Attr("insn","ldp x29, x30, [sp], #0x20")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(32,64)))]), Jmps([Call(Tid(787, "%00000313"), - Attrs([Attr("address","0x744"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), Sub(Tid(1_461, "@__libc_start_main"), - Attrs([Attr("c.proto","signed (*)(signed (*)(signed , char** , char** );* main, signed , char** , \nvoid* auxv)"), -Attr("address","0x5C0"), Attr("stub","()")]), "__libc_start_main", - Args([Arg(Tid(1_509, "%000005e5"), - Attrs([Attr("c.layout","**[ : 64]"), -Attr("c.data","Top:u64 ptr ptr"), -Attr("c.type","signed (*)(signed , char** , char** );*")]), - Var("__libc_start_main_main",Imm(64)), Var("R0",Imm(64)), In()), -Arg(Tid(1_510, "%000005e6"), Attrs([Attr("c.layout","[signed : 32]"), -Attr("c.data","Top:u32"), Attr("c.type","signed")]), - Var("__libc_start_main_arg2",Imm(32)), LOW(32,Var("R1",Imm(64))), In()), -Arg(Tid(1_511, "%000005e7"), Attrs([Attr("c.layout","**[char : 8]"), -Attr("c.data","Top:u8 ptr ptr"), Attr("c.type","char**")]), - Var("__libc_start_main_arg3",Imm(64)), Var("R2",Imm(64)), Both()), -Arg(Tid(1_512, "%000005e8"), Attrs([Attr("c.layout","*[ : 8]"), -Attr("c.data","{} ptr"), Attr("c.type","void*")]), - Var("__libc_start_main_auxv",Imm(64)), Var("R3",Imm(64)), Both()), -Arg(Tid(1_513, "%000005e9"), Attrs([Attr("c.layout","[signed : 32]"), -Attr("c.data","Top:u32"), Attr("c.type","signed")]), - Var("__libc_start_main_result",Imm(32)), LOW(32,Var("R0",Imm(64))), -Out())]), Blks([Blk(Tid(538, "@__libc_start_main"), - Attrs([Attr("address","0x5C0")]), Phis([]), -Defs([Def(Tid(1_078, "%00000436"), Attrs([Attr("address","0x5C0"), -Attr("insn","adrp x16, #65536")]), Var("R16",Imm(64)), Int(65536,64)), -Def(Tid(1_085, "%0000043d"), Attrs([Attr("address","0x5C4"), -Attr("insn","ldr x17, [x16, #0xfb0]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(4016,64)),LittleEndian(),64)), -Def(Tid(1_091, "%00000443"), Attrs([Attr("address","0x5C8"), -Attr("insn","add x16, x16, #0xfb0")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(4016,64)))]), Jmps([Call(Tid(1_096, "%00000448"), - Attrs([Attr("address","0x5CC"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), Sub(Tid(1_462, "@_fini"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x754")]), - "_fini", Args([Arg(Tid(1_514, "%000005ea"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("_fini_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(31, "@_fini"), - Attrs([Attr("address","0x754")]), Phis([]), Defs([Def(Tid(37, "%00000025"), - Attrs([Attr("address","0x758"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("#0",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(18446744073709551600,64))), -Def(Tid(43, "%0000002b"), Attrs([Attr("address","0x758"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("#0",Imm(64)),Var("R29",Imm(64)),LittleEndian(),64)), -Def(Tid(49, "%00000031"), Attrs([Attr("address","0x758"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("#0",Imm(64)),Int(8,64)),Var("R30",Imm(64)),LittleEndian(),64)), -Def(Tid(53, "%00000035"), Attrs([Attr("address","0x758"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("R31",Imm(64)), -Var("#0",Imm(64))), Def(Tid(59, "%0000003b"), Attrs([Attr("address","0x75C"), -Attr("insn","mov x29, sp")]), Var("R29",Imm(64)), Var("R31",Imm(64))), -Def(Tid(66, "%00000042"), Attrs([Attr("address","0x760"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R29",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(71, "%00000047"), Attrs([Attr("address","0x760"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R30",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(75, "%0000004b"), Attrs([Attr("address","0x760"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(16,64)))]), Jmps([Call(Tid(80, "%00000050"), - Attrs([Attr("address","0x764"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), Sub(Tid(1_463, "@_init"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x580")]), - "_init", Args([Arg(Tid(1_515, "%000005eb"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("_init_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(1_282, "@_init"), - Attrs([Attr("address","0x580")]), Phis([]), -Defs([Def(Tid(1_288, "%00000508"), Attrs([Attr("address","0x584"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("#5",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(18446744073709551600,64))), -Def(Tid(1_294, "%0000050e"), Attrs([Attr("address","0x584"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("#5",Imm(64)),Var("R29",Imm(64)),LittleEndian(),64)), -Def(Tid(1_300, "%00000514"), Attrs([Attr("address","0x584"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("#5",Imm(64)),Int(8,64)),Var("R30",Imm(64)),LittleEndian(),64)), -Def(Tid(1_304, "%00000518"), Attrs([Attr("address","0x584"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("R31",Imm(64)), -Var("#5",Imm(64))), Def(Tid(1_310, "%0000051e"), - Attrs([Attr("address","0x588"), Attr("insn","mov x29, sp")]), - Var("R29",Imm(64)), Var("R31",Imm(64))), Def(Tid(1_315, "%00000523"), - Attrs([Attr("address","0x58C"), Attr("insn","bl #0xe8")]), - Var("R30",Imm(64)), Int(1424,64))]), Jmps([Call(Tid(1_317, "%00000525"), - Attrs([Attr("address","0x58C"), Attr("insn","bl #0xe8")]), Int(1,1), -(Direct(Tid(1_468, "@call_weak_fn")),Direct(Tid(1_319, "%00000527"))))])), -Blk(Tid(1_319, "%00000527"), Attrs([Attr("address","0x590")]), Phis([]), -Defs([Def(Tid(1_324, "%0000052c"), Attrs([Attr("address","0x590"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R29",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(1_329, "%00000531"), Attrs([Attr("address","0x590"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R30",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(1_333, "%00000535"), Attrs([Attr("address","0x590"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(16,64)))]), Jmps([Call(Tid(1_338, "%0000053a"), - Attrs([Attr("address","0x594"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), Sub(Tid(1_464, "@_start"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x640"), -Attr("entry-point","()")]), "_start", Args([Arg(Tid(1_516, "%000005ec"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("_start_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(475, "@_start"), - Attrs([Attr("address","0x640")]), Phis([]), Defs([Def(Tid(480, "%000001e0"), - Attrs([Attr("address","0x644"), Attr("insn","mov x29, #0x0")]), - Var("R29",Imm(64)), Int(0,64)), Def(Tid(485, "%000001e5"), - Attrs([Attr("address","0x648"), Attr("insn","mov x30, #0x0")]), - Var("R30",Imm(64)), Int(0,64)), Def(Tid(491, "%000001eb"), - Attrs([Attr("address","0x64C"), Attr("insn","mov x5, x0")]), - Var("R5",Imm(64)), Var("R0",Imm(64))), Def(Tid(498, "%000001f2"), - Attrs([Attr("address","0x650"), Attr("insn","ldr x1, [sp]")]), - Var("R1",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(504, "%000001f8"), Attrs([Attr("address","0x654"), -Attr("insn","add x2, sp, #0x8")]), Var("R2",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(8,64))), Def(Tid(510, "%000001fe"), - Attrs([Attr("address","0x658"), Attr("insn","mov x6, sp")]), - Var("R6",Imm(64)), Var("R31",Imm(64))), Def(Tid(515, "%00000203"), - Attrs([Attr("address","0x65C"), Attr("insn","adrp x0, #65536")]), - Var("R0",Imm(64)), Int(65536,64)), Def(Tid(522, "%0000020a"), - Attrs([Attr("address","0x660"), Attr("insn","ldr x0, [x0, #0xff0]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(4080,64)),LittleEndian(),64)), -Def(Tid(527, "%0000020f"), Attrs([Attr("address","0x664"), -Attr("insn","mov x3, #0x0")]), Var("R3",Imm(64)), Int(0,64)), -Def(Tid(532, "%00000214"), Attrs([Attr("address","0x668"), -Attr("insn","mov x4, #0x0")]), Var("R4",Imm(64)), Int(0,64)), -Def(Tid(537, "%00000219"), Attrs([Attr("address","0x66C"), -Attr("insn","bl #-0xac")]), Var("R30",Imm(64)), Int(1648,64))]), -Jmps([Call(Tid(540, "%0000021c"), Attrs([Attr("address","0x66C"), -Attr("insn","bl #-0xac")]), Int(1,1), -(Direct(Tid(1_461, "@__libc_start_main")),Direct(Tid(542, "%0000021e"))))])), -Blk(Tid(542, "%0000021e"), Attrs([Attr("address","0x670")]), Phis([]), -Defs([Def(Tid(545, "%00000221"), Attrs([Attr("address","0x670"), -Attr("insn","bl #-0x80")]), Var("R30",Imm(64)), Int(1652,64))]), -Jmps([Call(Tid(548, "%00000224"), Attrs([Attr("address","0x670"), -Attr("insn","bl #-0x80")]), Int(1,1), -(Direct(Tid(1_467, "@abort")),Direct(Tid(1_499, "%000005db"))))])), -Blk(Tid(1_499, "%000005db"), Attrs([]), Phis([]), Defs([]), -Jmps([Call(Tid(1_500, "%000005dc"), Attrs([]), Int(1,1), -(Direct(Tid(1_468, "@call_weak_fn")),))]))])), Sub(Tid(1_467, "@abort"), - Attrs([Attr("noreturn","()"), Attr("c.proto","void (*)(void)"), -Attr("address","0x5F0"), Attr("stub","()")]), "abort", Args([]), -Blks([Blk(Tid(546, "@abort"), Attrs([Attr("address","0x5F0")]), Phis([]), -Defs([Def(Tid(1_144, "%00000478"), Attrs([Attr("address","0x5F0"), -Attr("insn","adrp x16, #65536")]), Var("R16",Imm(64)), Int(65536,64)), -Def(Tid(1_151, "%0000047f"), Attrs([Attr("address","0x5F4"), -Attr("insn","ldr x17, [x16, #0xfc8]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(4040,64)),LittleEndian(),64)), -Def(Tid(1_157, "%00000485"), Attrs([Attr("address","0x5F8"), -Attr("insn","add x16, x16, #0xfc8")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(4040,64)))]), Jmps([Call(Tid(1_162, "%0000048a"), - Attrs([Attr("address","0x5FC"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), Sub(Tid(1_468, "@call_weak_fn"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x674")]), - "call_weak_fn", Args([Arg(Tid(1_517, "%000005ed"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("call_weak_fn_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(550, "@call_weak_fn"), - Attrs([Attr("address","0x674")]), Phis([]), Defs([Def(Tid(553, "%00000229"), - Attrs([Attr("address","0x674"), Attr("insn","adrp x0, #65536")]), - Var("R0",Imm(64)), Int(65536,64)), Def(Tid(560, "%00000230"), - Attrs([Attr("address","0x678"), Attr("insn","ldr x0, [x0, #0xfe8]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(4072,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(566, "%00000236"), Attrs([Attr("address","0x67C"), -Attr("insn","cbz x0, #0x8")]), EQ(Var("R0",Imm(64)),Int(0,64)), -Direct(Tid(564, "%00000234"))), Goto(Tid(1_501, "%000005dd"), Attrs([]), - Int(1,1), Direct(Tid(916, "%00000394")))])), Blk(Tid(564, "%00000234"), - Attrs([Attr("address","0x684")]), Phis([]), Defs([]), -Jmps([Call(Tid(572, "%0000023c"), Attrs([Attr("address","0x684"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))])), -Blk(Tid(916, "%00000394"), Attrs([Attr("address","0x680")]), Phis([]), -Defs([]), Jmps([Goto(Tid(919, "%00000397"), Attrs([Attr("address","0x680"), -Attr("insn","b #-0xa0")]), Int(1,1), Direct(Tid(917, "@__gmon_start__")))])), -Blk(Tid(917, "@__gmon_start__"), Attrs([Attr("address","0x5E0")]), Phis([]), -Defs([Def(Tid(1_122, "%00000462"), Attrs([Attr("address","0x5E0"), -Attr("insn","adrp x16, #65536")]), Var("R16",Imm(64)), Int(65536,64)), -Def(Tid(1_129, "%00000469"), Attrs([Attr("address","0x5E4"), -Attr("insn","ldr x17, [x16, #0xfc0]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(4032,64)),LittleEndian(),64)), -Def(Tid(1_135, "%0000046f"), Attrs([Attr("address","0x5E8"), -Attr("insn","add x16, x16, #0xfc0")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(4032,64)))]), Jmps([Call(Tid(1_140, "%00000474"), - Attrs([Attr("address","0x5EC"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), -Sub(Tid(1_470, "@deregister_tm_clones"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x690")]), - "deregister_tm_clones", Args([Arg(Tid(1_518, "%000005ee"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("deregister_tm_clones_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(578, "@deregister_tm_clones"), - Attrs([Attr("address","0x690")]), Phis([]), Defs([Def(Tid(581, "%00000245"), - Attrs([Attr("address","0x690"), Attr("insn","adrp x0, #69632")]), - Var("R0",Imm(64)), Int(69632,64)), Def(Tid(587, "%0000024b"), - Attrs([Attr("address","0x694"), Attr("insn","add x0, x0, #0x10")]), - Var("R0",Imm(64)), PLUS(Var("R0",Imm(64)),Int(16,64))), -Def(Tid(592, "%00000250"), Attrs([Attr("address","0x698"), -Attr("insn","adrp x1, #69632")]), Var("R1",Imm(64)), Int(69632,64)), -Def(Tid(598, "%00000256"), Attrs([Attr("address","0x69C"), -Attr("insn","add x1, x1, #0x10")]), Var("R1",Imm(64)), -PLUS(Var("R1",Imm(64)),Int(16,64))), Def(Tid(604, "%0000025c"), - Attrs([Attr("address","0x6A0"), Attr("insn","cmp x1, x0")]), - Var("#1",Imm(64)), NOT(Var("R0",Imm(64)))), Def(Tid(609, "%00000261"), - Attrs([Attr("address","0x6A0"), Attr("insn","cmp x1, x0")]), - Var("#2",Imm(64)), PLUS(Var("R1",Imm(64)),NOT(Var("R0",Imm(64))))), -Def(Tid(615, "%00000267"), Attrs([Attr("address","0x6A0"), -Attr("insn","cmp x1, x0")]), Var("VF",Imm(1)), -NEQ(SIGNED(65,PLUS(Var("#2",Imm(64)),Int(1,64))),PLUS(PLUS(SIGNED(65,Var("R1",Imm(64))),SIGNED(65,Var("#1",Imm(64)))),Int(1,65)))), -Def(Tid(621, "%0000026d"), Attrs([Attr("address","0x6A0"), -Attr("insn","cmp x1, x0")]), Var("CF",Imm(1)), -NEQ(UNSIGNED(65,PLUS(Var("#2",Imm(64)),Int(1,64))),PLUS(PLUS(UNSIGNED(65,Var("R1",Imm(64))),UNSIGNED(65,Var("#1",Imm(64)))),Int(1,65)))), -Def(Tid(625, "%00000271"), Attrs([Attr("address","0x6A0"), -Attr("insn","cmp x1, x0")]), Var("ZF",Imm(1)), -EQ(PLUS(Var("#2",Imm(64)),Int(1,64)),Int(0,64))), Def(Tid(629, "%00000275"), - Attrs([Attr("address","0x6A0"), Attr("insn","cmp x1, x0")]), - Var("NF",Imm(1)), Extract(63,63,PLUS(Var("#2",Imm(64)),Int(1,64))))]), -Jmps([Goto(Tid(635, "%0000027b"), Attrs([Attr("address","0x6A4"), -Attr("insn","b.eq #0x18")]), EQ(Var("ZF",Imm(1)),Int(1,1)), -Direct(Tid(633, "%00000279"))), Goto(Tid(1_502, "%000005de"), Attrs([]), - Int(1,1), Direct(Tid(886, "%00000376")))])), Blk(Tid(886, "%00000376"), - Attrs([Attr("address","0x6A8")]), Phis([]), Defs([Def(Tid(889, "%00000379"), - Attrs([Attr("address","0x6A8"), Attr("insn","adrp x1, #65536")]), - Var("R1",Imm(64)), Int(65536,64)), Def(Tid(896, "%00000380"), - Attrs([Attr("address","0x6AC"), Attr("insn","ldr x1, [x1, #0xfd8]")]), - Var("R1",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R1",Imm(64)),Int(4056,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(901, "%00000385"), Attrs([Attr("address","0x6B0"), -Attr("insn","cbz x1, #0xc")]), EQ(Var("R1",Imm(64)),Int(0,64)), -Direct(Tid(633, "%00000279"))), Goto(Tid(1_503, "%000005df"), Attrs([]), - Int(1,1), Direct(Tid(905, "%00000389")))])), Blk(Tid(633, "%00000279"), - Attrs([Attr("address","0x6BC")]), Phis([]), Defs([]), -Jmps([Call(Tid(641, "%00000281"), Attrs([Attr("address","0x6BC"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))])), -Blk(Tid(905, "%00000389"), Attrs([Attr("address","0x6B4")]), Phis([]), -Defs([Def(Tid(909, "%0000038d"), Attrs([Attr("address","0x6B4"), -Attr("insn","mov x16, x1")]), Var("R16",Imm(64)), Var("R1",Imm(64)))]), -Jmps([Call(Tid(914, "%00000392"), Attrs([Attr("address","0x6B8"), -Attr("insn","br x16")]), Int(1,1), (Indirect(Var("R16",Imm(64))),))]))])), -Sub(Tid(1_473, "@frame_dummy"), Attrs([Attr("c.proto","signed (*)(void)"), -Attr("address","0x750")]), "frame_dummy", Args([Arg(Tid(1_519, "%000005ef"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("frame_dummy_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(793, "@frame_dummy"), - Attrs([Attr("address","0x750")]), Phis([]), Defs([]), -Jmps([Call(Tid(795, "%0000031b"), Attrs([Attr("address","0x750"), -Attr("insn","b #-0x90")]), Int(1,1), -(Direct(Tid(1_475, "@register_tm_clones")),))]))])), Sub(Tid(1_474, "@main"), - Attrs([Attr("c.proto","signed (*)(signed argc, const char** argv)"), -Attr("address","0x600"), Attr("stub","()")]), "main", - Args([Arg(Tid(1_520, "%000005f0"), Attrs([Attr("c.layout","[signed : 32]"), -Attr("c.data","Top:u32"), Attr("c.type","signed")]), - Var("main_argc",Imm(32)), LOW(32,Var("R0",Imm(64))), In()), -Arg(Tid(1_521, "%000005f1"), Attrs([Attr("c.layout","**[char : 8]"), -Attr("c.data","Top:u8 ptr ptr"), Attr("c.type"," const char**")]), - Var("main_argv",Imm(64)), Var("R1",Imm(64)), Both()), -Arg(Tid(1_522, "%000005f2"), Attrs([Attr("c.layout","[signed : 32]"), -Attr("c.data","Top:u32"), Attr("c.type","signed")]), - Var("main_result",Imm(32)), LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(424, "@main"), Attrs([Attr("address","0x600")]), Phis([]), -Defs([Def(Tid(427, "%000001ab"), Attrs([Attr("address","0x600"), -Attr("insn","adrp x1, #69632")]), Var("R1",Imm(64)), Int(69632,64)), -Def(Tid(433, "%000001b1"), Attrs([Attr("address","0x604"), -Attr("insn","mov w2, w0")]), Var("R2",Imm(64)), -UNSIGNED(64,Extract(31,0,Var("R0",Imm(64))))), Def(Tid(438, "%000001b6"), - Attrs([Attr("address","0x608"), Attr("insn","mov w0, #0x0")]), - Var("R0",Imm(64)), Int(0,64)), Def(Tid(446, "%000001be"), - Attrs([Attr("address","0x60C"), Attr("insn","str w2, [x1, #0x1c]")]), - Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R1",Imm(64)),Int(28,64)),Extract(31,0,Var("R2",Imm(64))),LittleEndian(),32))]), -Jmps([Call(Tid(451, "%000001c3"), Attrs([Attr("address","0x610"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))]))])), -Sub(Tid(1_475, "@register_tm_clones"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x6C0")]), - "register_tm_clones", Args([Arg(Tid(1_523, "%000005f3"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("register_tm_clones_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(643, "@register_tm_clones"), Attrs([Attr("address","0x6C0")]), - Phis([]), Defs([Def(Tid(646, "%00000286"), Attrs([Attr("address","0x6C0"), -Attr("insn","adrp x0, #69632")]), Var("R0",Imm(64)), Int(69632,64)), -Def(Tid(652, "%0000028c"), Attrs([Attr("address","0x6C4"), -Attr("insn","add x0, x0, #0x10")]), Var("R0",Imm(64)), -PLUS(Var("R0",Imm(64)),Int(16,64))), Def(Tid(657, "%00000291"), - Attrs([Attr("address","0x6C8"), Attr("insn","adrp x1, #69632")]), - Var("R1",Imm(64)), Int(69632,64)), Def(Tid(663, "%00000297"), - Attrs([Attr("address","0x6CC"), Attr("insn","add x1, x1, #0x10")]), - Var("R1",Imm(64)), PLUS(Var("R1",Imm(64)),Int(16,64))), -Def(Tid(670, "%0000029e"), Attrs([Attr("address","0x6D0"), -Attr("insn","sub x1, x1, x0")]), Var("R1",Imm(64)), -PLUS(PLUS(Var("R1",Imm(64)),NOT(Var("R0",Imm(64)))),Int(1,64))), -Def(Tid(676, "%000002a4"), Attrs([Attr("address","0x6D4"), -Attr("insn","lsr x2, x1, #63")]), Var("R2",Imm(64)), -Concat(Int(0,63),Extract(63,63,Var("R1",Imm(64))))), -Def(Tid(683, "%000002ab"), Attrs([Attr("address","0x6D8"), -Attr("insn","add x1, x2, x1, asr #3")]), Var("R1",Imm(64)), -PLUS(Var("R2",Imm(64)),ARSHIFT(Var("R1",Imm(64)),Int(3,3)))), -Def(Tid(689, "%000002b1"), Attrs([Attr("address","0x6DC"), -Attr("insn","asr x1, x1, #1")]), Var("R1",Imm(64)), -SIGNED(64,Extract(63,1,Var("R1",Imm(64)))))]), -Jmps([Goto(Tid(695, "%000002b7"), Attrs([Attr("address","0x6E0"), -Attr("insn","cbz x1, #0x18")]), EQ(Var("R1",Imm(64)),Int(0,64)), -Direct(Tid(693, "%000002b5"))), Goto(Tid(1_504, "%000005e0"), Attrs([]), - Int(1,1), Direct(Tid(856, "%00000358")))])), Blk(Tid(856, "%00000358"), - Attrs([Attr("address","0x6E4")]), Phis([]), Defs([Def(Tid(859, "%0000035b"), - Attrs([Attr("address","0x6E4"), Attr("insn","adrp x2, #65536")]), - Var("R2",Imm(64)), Int(65536,64)), Def(Tid(866, "%00000362"), - Attrs([Attr("address","0x6E8"), Attr("insn","ldr x2, [x2, #0xff8]")]), - Var("R2",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R2",Imm(64)),Int(4088,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(871, "%00000367"), Attrs([Attr("address","0x6EC"), -Attr("insn","cbz x2, #0xc")]), EQ(Var("R2",Imm(64)),Int(0,64)), -Direct(Tid(693, "%000002b5"))), Goto(Tid(1_505, "%000005e1"), Attrs([]), - Int(1,1), Direct(Tid(875, "%0000036b")))])), Blk(Tid(693, "%000002b5"), - Attrs([Attr("address","0x6F8")]), Phis([]), Defs([]), -Jmps([Call(Tid(701, "%000002bd"), Attrs([Attr("address","0x6F8"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))])), -Blk(Tid(875, "%0000036b"), Attrs([Attr("address","0x6F0")]), Phis([]), -Defs([Def(Tid(879, "%0000036f"), Attrs([Attr("address","0x6F0"), -Attr("insn","mov x16, x2")]), Var("R16",Imm(64)), Var("R2",Imm(64)))]), -Jmps([Call(Tid(884, "%00000374"), Attrs([Attr("address","0x6F4"), -Attr("insn","br x16")]), Int(1,1), -(Indirect(Var("R16",Imm(64))),))]))]))]))) \ No newline at end of file diff --git a/src/test/correct/basic_arrays_write/gcc_O2/basic_arrays_write.bir b/src/test/correct/basic_arrays_write/gcc_O2/basic_arrays_write.bir deleted file mode 100644 index ea470fd1b..000000000 --- a/src/test/correct/basic_arrays_write/gcc_O2/basic_arrays_write.bir +++ /dev/null @@ -1,227 +0,0 @@ -000005e2: program -000005b0: sub __cxa_finalize(__cxa_finalize_result) -000005e3: __cxa_finalize_result :: out u32 = low:32[R0] - -00000354: -0000044c: R16 := 0x10000 -00000453: R17 := mem[R16 + 0xFB8, el]:u64 -00000459: R16 := R16 + 0xFB8 -0000045e: call R17 with noreturn - -000005b1: sub __do_global_dtors_aux(__do_global_dtors_aux_result) -000005e4: __do_global_dtors_aux_result :: out u32 = low:32[R0] - -000002c1: -000002c5: #3 := R31 - 0x20 -000002cb: mem := mem with [#3, el]:u64 <- R29 -000002d1: mem := mem with [#3 + 8, el]:u64 <- R30 -000002d5: R31 := #3 -000002db: R29 := R31 -000002e3: mem := mem with [R31 + 0x10, el]:u64 <- R19 -000002e8: R19 := 0x11000 -000002ef: R0 := pad:64[mem[R19 + 0x10]] -000002f6: when 31:0[R0] <> 0 goto %000002f4 -000005d8: goto %0000031d - -0000031d: -00000320: R0 := 0x10000 -00000327: R0 := mem[R0 + 0xFE0, el]:u64 -0000032d: when R0 = 0 goto %0000032b -000005d9: goto %00000344 - -00000344: -00000347: R0 := 0x11000 -0000034e: R0 := mem[R0 + 8, el]:u64 -00000353: R30 := 0x730 -00000356: call @__cxa_finalize with return %0000032b - -0000032b: -00000333: R30 := 0x734 -00000335: call @deregister_tm_clones with return %00000337 - -00000337: -0000033a: R0 := 1 -00000342: mem := mem with [R19 + 0x10] <- 7:0[R0] -000005da: goto %000002f4 - -000002f4: -000002fe: R19 := mem[R31 + 0x10, el]:u64 -00000305: R29 := mem[R31, el]:u64 -0000030a: R30 := mem[R31 + 8, el]:u64 -0000030e: R31 := R31 + 0x20 -00000313: call R30 with noreturn - -000005b5: sub __libc_start_main(__libc_start_main_main, __libc_start_main_arg2, __libc_start_main_arg3, __libc_start_main_auxv, __libc_start_main_result) -000005e5: __libc_start_main_main :: in u64 = R0 -000005e6: __libc_start_main_arg2 :: in u32 = low:32[R1] -000005e7: __libc_start_main_arg3 :: in out u64 = R2 -000005e8: __libc_start_main_auxv :: in out u64 = R3 -000005e9: __libc_start_main_result :: out u32 = low:32[R0] - -0000021a: -00000436: R16 := 0x10000 -0000043d: R17 := mem[R16 + 0xFB0, el]:u64 -00000443: R16 := R16 + 0xFB0 -00000448: call R17 with noreturn - -000005b6: sub _fini(_fini_result) -000005ea: _fini_result :: out u32 = low:32[R0] - -0000001f: -00000025: #0 := R31 - 0x10 -0000002b: mem := mem with [#0, el]:u64 <- R29 -00000031: mem := mem with [#0 + 8, el]:u64 <- R30 -00000035: R31 := #0 -0000003b: R29 := R31 -00000042: R29 := mem[R31, el]:u64 -00000047: R30 := mem[R31 + 8, el]:u64 -0000004b: R31 := R31 + 0x10 -00000050: call R30 with noreturn - -000005b7: sub _init(_init_result) -000005eb: _init_result :: out u32 = low:32[R0] - -00000502: -00000508: #5 := R31 - 0x10 -0000050e: mem := mem with [#5, el]:u64 <- R29 -00000514: mem := mem with [#5 + 8, el]:u64 <- R30 -00000518: R31 := #5 -0000051e: R29 := R31 -00000523: R30 := 0x590 -00000525: call @call_weak_fn with return %00000527 - -00000527: -0000052c: R29 := mem[R31, el]:u64 -00000531: R30 := mem[R31 + 8, el]:u64 -00000535: R31 := R31 + 0x10 -0000053a: call R30 with noreturn - -000005b8: sub _start(_start_result) -000005ec: _start_result :: out u32 = low:32[R0] - -000001db: -000001e0: R29 := 0 -000001e5: R30 := 0 -000001eb: R5 := R0 -000001f2: R1 := mem[R31, el]:u64 -000001f8: R2 := R31 + 8 -000001fe: R6 := R31 -00000203: R0 := 0x10000 -0000020a: R0 := mem[R0 + 0xFF0, el]:u64 -0000020f: R3 := 0 -00000214: R4 := 0 -00000219: R30 := 0x670 -0000021c: call @__libc_start_main with return %0000021e - -0000021e: -00000221: R30 := 0x674 -00000224: call @abort with return %000005db - -000005db: -000005dc: call @call_weak_fn with noreturn - -000005bb: sub abort() - - -00000222: -00000478: R16 := 0x10000 -0000047f: R17 := mem[R16 + 0xFC8, el]:u64 -00000485: R16 := R16 + 0xFC8 -0000048a: call R17 with noreturn - -000005bc: sub call_weak_fn(call_weak_fn_result) -000005ed: call_weak_fn_result :: out u32 = low:32[R0] - -00000226: -00000229: R0 := 0x10000 -00000230: R0 := mem[R0 + 0xFE8, el]:u64 -00000236: when R0 = 0 goto %00000234 -000005dd: goto %00000394 - -00000234: -0000023c: call R30 with noreturn - -00000394: -00000397: goto @__gmon_start__ - -00000395: -00000462: R16 := 0x10000 -00000469: R17 := mem[R16 + 0xFC0, el]:u64 -0000046f: R16 := R16 + 0xFC0 -00000474: call R17 with noreturn - -000005be: sub deregister_tm_clones(deregister_tm_clones_result) -000005ee: deregister_tm_clones_result :: out u32 = low:32[R0] - -00000242: -00000245: R0 := 0x11000 -0000024b: R0 := R0 + 0x10 -00000250: R1 := 0x11000 -00000256: R1 := R1 + 0x10 -0000025c: #1 := ~R0 -00000261: #2 := R1 + ~R0 -00000267: VF := extend:65[#2 + 1] <> extend:65[R1] + extend:65[#1] + 1 -0000026d: CF := pad:65[#2 + 1] <> pad:65[R1] + pad:65[#1] + 1 -00000271: ZF := #2 + 1 = 0 -00000275: NF := 63:63[#2 + 1] -0000027b: when ZF goto %00000279 -000005de: goto %00000376 - -00000376: -00000379: R1 := 0x10000 -00000380: R1 := mem[R1 + 0xFD8, el]:u64 -00000385: when R1 = 0 goto %00000279 -000005df: goto %00000389 - -00000279: -00000281: call R30 with noreturn - -00000389: -0000038d: R16 := R1 -00000392: call R16 with noreturn - -000005c1: sub frame_dummy(frame_dummy_result) -000005ef: frame_dummy_result :: out u32 = low:32[R0] - -00000319: -0000031b: call @register_tm_clones with noreturn - -000005c2: sub main(main_argc, main_argv, main_result) -000005f0: main_argc :: in u32 = low:32[R0] -000005f1: main_argv :: in out u64 = R1 -000005f2: main_result :: out u32 = low:32[R0] - -000001a8: -000001ab: R1 := 0x11000 -000001b1: R2 := pad:64[31:0[R0]] -000001b6: R0 := 0 -000001be: mem := mem with [R1 + 0x1C, el]:u32 <- 31:0[R2] -000001c3: call R30 with noreturn - -000005c3: sub register_tm_clones(register_tm_clones_result) -000005f3: register_tm_clones_result :: out u32 = low:32[R0] - -00000283: -00000286: R0 := 0x11000 -0000028c: R0 := R0 + 0x10 -00000291: R1 := 0x11000 -00000297: R1 := R1 + 0x10 -0000029e: R1 := R1 + ~R0 + 1 -000002a4: R2 := 0.63:63[R1] -000002ab: R1 := R2 + (R1 ~>> 3) -000002b1: R1 := extend:64[63:1[R1]] -000002b7: when R1 = 0 goto %000002b5 -000005e0: goto %00000358 - -00000358: -0000035b: R2 := 0x10000 -00000362: R2 := mem[R2 + 0xFF8, el]:u64 -00000367: when R2 = 0 goto %000002b5 -000005e1: goto %0000036b - -000002b5: -000002bd: call R30 with noreturn - -0000036b: -0000036f: R16 := R2 -00000374: call R16 with noreturn diff --git a/src/test/correct/basic_arrays_write/gcc_O2/basic_arrays_write.expected b/src/test/correct/basic_arrays_write/gcc_O2/basic_arrays_write.expected index 526b3bfee..846543f7b 100644 --- a/src/test/correct/basic_arrays_write/gcc_O2/basic_arrays_write.expected +++ b/src/test/correct/basic_arrays_write/gcc_O2/basic_arrays_write.expected @@ -65,7 +65,7 @@ implementation {:extern} guarantee_reflexive() assert (memory_load32_le(mem, bvadd64($arr_addr, 0bv64)) == memory_load32_le(mem, bvadd64($arr_addr, 0bv64))); } -procedure main_1536(); +procedure main(); modifies Gamma_R0, Gamma_R1, Gamma_R2, Gamma_mem, R0, R1, R2, mem; requires (Gamma_R0 == false); free requires (memory_load64_le(mem, 69632bv64) == 0bv64); @@ -81,7 +81,7 @@ procedure main_1536(); free ensures (memory_load64_le(mem, 69616bv64) == 1536bv64); free ensures (memory_load64_le(mem, 69640bv64) == 69640bv64); -implementation main_1536() +implementation main() { var arr$0_old: bv32; lmain: @@ -90,14 +90,14 @@ implementation main_1536() R2, Gamma_R2 := zero_extend32_32(R0[32:0]), Gamma_R0; R0, Gamma_R0 := 0bv64, true; call rely(); - arr$0_old := memory_load32_le(mem, bvadd64($arr_addr, 0bv64)); assert (L(mem, bvadd64(R1, 28bv64)) ==> Gamma_R2); + arr$0_old := memory_load32_le(mem, bvadd64($arr_addr, 0bv64)); mem, Gamma_mem := memory_store32_le(mem, bvadd64(R1, 28bv64), R2[32:0]), gamma_store32(Gamma_mem, bvadd64(R1, 28bv64), Gamma_R2); assert (arr$0_old == memory_load32_le(mem, bvadd64($arr_addr, 0bv64))); assume {:captureState "%000001be"} true; - goto main_1536_basil_return; - main_1536_basil_return: - assume {:captureState "main_1536_basil_return"} true; + goto main_basil_return; + main_basil_return: + assume {:captureState "main_basil_return"} true; return; } diff --git a/src/test/correct/basic_arrays_write/gcc_O2/basic_arrays_write.gts b/src/test/correct/basic_arrays_write/gcc_O2/basic_arrays_write.gts deleted file mode 100644 index 4049ef225..000000000 Binary files a/src/test/correct/basic_arrays_write/gcc_O2/basic_arrays_write.gts and /dev/null differ diff --git a/src/test/correct/basic_arrays_write/gcc_O2/basic_arrays_write.md5sum b/src/test/correct/basic_arrays_write/gcc_O2/basic_arrays_write.md5sum new file mode 100644 index 000000000..c23a0e279 --- /dev/null +++ b/src/test/correct/basic_arrays_write/gcc_O2/basic_arrays_write.md5sum @@ -0,0 +1,5 @@ +ab59da2591b9127e5ad7fcf704a42a5e correct/basic_arrays_write/gcc_O2/a.out +31bfb523d38a99c0a98adf7509a81594 correct/basic_arrays_write/gcc_O2/basic_arrays_write.adt +90bf1f6cb7cd67c3c9efb07a104f81d3 correct/basic_arrays_write/gcc_O2/basic_arrays_write.bir +b0464b80b14ba1000b3ef8960da1fce1 correct/basic_arrays_write/gcc_O2/basic_arrays_write.relf +83d9d8ce03099e86fa4fe3d1bd9e02c9 correct/basic_arrays_write/gcc_O2/basic_arrays_write.gts diff --git a/src/test/correct/basic_arrays_write/gcc_O2/basic_arrays_write.relf b/src/test/correct/basic_arrays_write/gcc_O2/basic_arrays_write.relf deleted file mode 100644 index ae7ea4fda..000000000 --- a/src/test/correct/basic_arrays_write/gcc_O2/basic_arrays_write.relf +++ /dev/null @@ -1,121 +0,0 @@ - -Relocation section '.rela.dyn' at offset 0x460 contains 8 entries: - Offset Info Type Symbol's Value Symbol's Name + Addend -0000000000010d98 0000000000000403 R_AARCH64_RELATIVE 750 -0000000000010da0 0000000000000403 R_AARCH64_RELATIVE 700 -0000000000010ff0 0000000000000403 R_AARCH64_RELATIVE 600 -0000000000011008 0000000000000403 R_AARCH64_RELATIVE 11008 -0000000000010fd8 0000000400000401 R_AARCH64_GLOB_DAT 0000000000000000 _ITM_deregisterTMCloneTable + 0 -0000000000010fe0 0000000500000401 R_AARCH64_GLOB_DAT 0000000000000000 __cxa_finalize@GLIBC_2.17 + 0 -0000000000010fe8 0000000600000401 R_AARCH64_GLOB_DAT 0000000000000000 __gmon_start__ + 0 -0000000000010ff8 0000000800000401 R_AARCH64_GLOB_DAT 0000000000000000 _ITM_registerTMCloneTable + 0 - -Relocation section '.rela.plt' at offset 0x520 contains 4 entries: - Offset Info Type Symbol's Value Symbol's Name + Addend -0000000000010fb0 0000000300000402 R_AARCH64_JUMP_SLOT 0000000000000000 __libc_start_main@GLIBC_2.34 + 0 -0000000000010fb8 0000000500000402 R_AARCH64_JUMP_SLOT 0000000000000000 __cxa_finalize@GLIBC_2.17 + 0 -0000000000010fc0 0000000600000402 R_AARCH64_JUMP_SLOT 0000000000000000 __gmon_start__ + 0 -0000000000010fc8 0000000700000402 R_AARCH64_JUMP_SLOT 0000000000000000 abort@GLIBC_2.17 + 0 - -Symbol table '.dynsym' contains 9 entries: - Num: Value Size Type Bind Vis Ndx Name - 0: 0000000000000000 0 NOTYPE LOCAL DEFAULT UND - 1: 0000000000000580 0 SECTION LOCAL DEFAULT 11 .init - 2: 0000000000011000 0 SECTION LOCAL DEFAULT 22 .data - 3: 0000000000000000 0 FUNC GLOBAL DEFAULT UND __libc_start_main@GLIBC_2.34 (2) - 4: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_deregisterTMCloneTable - 5: 0000000000000000 0 FUNC WEAK DEFAULT UND __cxa_finalize@GLIBC_2.17 (3) - 6: 0000000000000000 0 NOTYPE WEAK DEFAULT UND __gmon_start__ - 7: 0000000000000000 0 FUNC GLOBAL DEFAULT UND abort@GLIBC_2.17 (3) - 8: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_registerTMCloneTable - -Symbol table '.symtab' contains 88 entries: - Num: Value Size Type Bind Vis Ndx Name - 0: 0000000000000000 0 NOTYPE LOCAL DEFAULT UND - 1: 0000000000000238 0 SECTION LOCAL DEFAULT 1 .interp - 2: 0000000000000254 0 SECTION LOCAL DEFAULT 2 .note.gnu.build-id - 3: 0000000000000278 0 SECTION LOCAL DEFAULT 3 .note.ABI-tag - 4: 0000000000000298 0 SECTION LOCAL DEFAULT 4 .gnu.hash - 5: 00000000000002b8 0 SECTION LOCAL DEFAULT 5 .dynsym - 6: 0000000000000390 0 SECTION LOCAL DEFAULT 6 .dynstr - 7: 000000000000041e 0 SECTION LOCAL DEFAULT 7 .gnu.version - 8: 0000000000000430 0 SECTION LOCAL DEFAULT 8 .gnu.version_r - 9: 0000000000000460 0 SECTION LOCAL DEFAULT 9 .rela.dyn - 10: 0000000000000520 0 SECTION LOCAL DEFAULT 10 .rela.plt - 11: 0000000000000580 0 SECTION LOCAL DEFAULT 11 .init - 12: 00000000000005a0 0 SECTION LOCAL DEFAULT 12 .plt - 13: 0000000000000600 0 SECTION LOCAL DEFAULT 13 .text - 14: 0000000000000754 0 SECTION LOCAL DEFAULT 14 .fini - 15: 0000000000000768 0 SECTION LOCAL DEFAULT 15 .rodata - 16: 000000000000076c 0 SECTION LOCAL DEFAULT 16 .eh_frame_hdr - 17: 00000000000007a8 0 SECTION LOCAL DEFAULT 17 .eh_frame - 18: 0000000000010d98 0 SECTION LOCAL DEFAULT 18 .init_array - 19: 0000000000010da0 0 SECTION LOCAL DEFAULT 19 .fini_array - 20: 0000000000010da8 0 SECTION LOCAL DEFAULT 20 .dynamic - 21: 0000000000010f98 0 SECTION LOCAL DEFAULT 21 .got - 22: 0000000000011000 0 SECTION LOCAL DEFAULT 22 .data - 23: 0000000000011010 0 SECTION LOCAL DEFAULT 23 .bss - 24: 0000000000000000 0 SECTION LOCAL DEFAULT 24 .comment - 25: 0000000000000000 0 FILE LOCAL DEFAULT ABS Scrt1.o - 26: 0000000000000278 0 NOTYPE LOCAL DEFAULT 3 $d - 27: 0000000000000278 32 OBJECT LOCAL DEFAULT 3 __abi_tag - 28: 0000000000000640 0 NOTYPE LOCAL DEFAULT 13 $x - 29: 00000000000007bc 0 NOTYPE LOCAL DEFAULT 17 $d - 30: 0000000000000768 0 NOTYPE LOCAL DEFAULT 15 $d - 31: 0000000000000000 0 FILE LOCAL DEFAULT ABS crti.o - 32: 0000000000000674 0 NOTYPE LOCAL DEFAULT 13 $x - 33: 0000000000000674 20 FUNC LOCAL DEFAULT 13 call_weak_fn - 34: 0000000000000580 0 NOTYPE LOCAL DEFAULT 11 $x - 35: 0000000000000754 0 NOTYPE LOCAL DEFAULT 14 $x - 36: 0000000000000000 0 FILE LOCAL DEFAULT ABS crtn.o - 37: 0000000000000590 0 NOTYPE LOCAL DEFAULT 11 $x - 38: 0000000000000760 0 NOTYPE LOCAL DEFAULT 14 $x - 39: 0000000000000000 0 FILE LOCAL DEFAULT ABS basic_arrays_write.c - 40: 0000000000000600 0 NOTYPE LOCAL DEFAULT 13 $x - 41: 0000000000011018 0 NOTYPE LOCAL DEFAULT 23 $d - 42: 0000000000000830 0 NOTYPE LOCAL DEFAULT 17 $d - 43: 0000000000000000 0 FILE LOCAL DEFAULT ABS crtstuff.c - 44: 0000000000000690 0 NOTYPE LOCAL DEFAULT 13 $x - 45: 0000000000000690 0 FUNC LOCAL DEFAULT 13 deregister_tm_clones - 46: 00000000000006c0 0 FUNC LOCAL DEFAULT 13 register_tm_clones - 47: 0000000000011008 0 NOTYPE LOCAL DEFAULT 22 $d - 48: 0000000000000700 0 FUNC LOCAL DEFAULT 13 __do_global_dtors_aux - 49: 0000000000011010 1 OBJECT LOCAL DEFAULT 23 completed.0 - 50: 0000000000010da0 0 NOTYPE LOCAL DEFAULT 19 $d - 51: 0000000000010da0 0 OBJECT LOCAL DEFAULT 19 __do_global_dtors_aux_fini_array_entry - 52: 0000000000000750 0 FUNC LOCAL DEFAULT 13 frame_dummy - 53: 0000000000010d98 0 NOTYPE LOCAL DEFAULT 18 $d - 54: 0000000000010d98 0 OBJECT LOCAL DEFAULT 18 __frame_dummy_init_array_entry - 55: 00000000000007d0 0 NOTYPE LOCAL DEFAULT 17 $d - 56: 0000000000011010 0 NOTYPE LOCAL DEFAULT 23 $d - 57: 0000000000000000 0 FILE LOCAL DEFAULT ABS crtstuff.c - 58: 0000000000000844 0 NOTYPE LOCAL DEFAULT 17 $d - 59: 0000000000000844 0 OBJECT LOCAL DEFAULT 17 __FRAME_END__ - 60: 0000000000000000 0 FILE LOCAL DEFAULT ABS - 61: 0000000000010da8 0 OBJECT LOCAL DEFAULT ABS _DYNAMIC - 62: 000000000000076c 0 NOTYPE LOCAL DEFAULT 16 __GNU_EH_FRAME_HDR - 63: 0000000000010fd0 0 OBJECT LOCAL DEFAULT ABS _GLOBAL_OFFSET_TABLE_ - 64: 00000000000005a0 0 NOTYPE LOCAL DEFAULT 12 $x - 65: 0000000000000000 0 FUNC GLOBAL DEFAULT UND __libc_start_main@GLIBC_2.34 - 66: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_deregisterTMCloneTable - 67: 0000000000011000 0 NOTYPE WEAK DEFAULT 22 data_start - 68: 0000000000011010 0 NOTYPE GLOBAL DEFAULT 23 __bss_start__ - 69: 0000000000000000 0 FUNC WEAK DEFAULT UND __cxa_finalize@GLIBC_2.17 - 70: 0000000000011020 0 NOTYPE GLOBAL DEFAULT 23 _bss_end__ - 71: 0000000000011010 0 NOTYPE GLOBAL DEFAULT 22 _edata - 72: 0000000000000754 0 FUNC GLOBAL HIDDEN 14 _fini - 73: 0000000000011020 0 NOTYPE GLOBAL DEFAULT 23 __bss_end__ - 74: 0000000000011000 0 NOTYPE GLOBAL DEFAULT 22 __data_start - 75: 0000000000000000 0 NOTYPE WEAK DEFAULT UND __gmon_start__ - 76: 0000000000011008 0 OBJECT GLOBAL HIDDEN 22 __dso_handle - 77: 0000000000000000 0 FUNC GLOBAL DEFAULT UND abort@GLIBC_2.17 - 78: 0000000000000768 4 OBJECT GLOBAL DEFAULT 15 _IO_stdin_used - 79: 0000000000011020 0 NOTYPE GLOBAL DEFAULT 23 _end - 80: 0000000000000640 52 FUNC GLOBAL DEFAULT 13 _start - 81: 0000000000011020 0 NOTYPE GLOBAL DEFAULT 23 __end__ - 82: 0000000000011010 0 NOTYPE GLOBAL DEFAULT 23 __bss_start - 83: 0000000000000600 20 FUNC GLOBAL DEFAULT 13 main - 84: 0000000000011018 8 OBJECT GLOBAL DEFAULT 23 arr - 85: 0000000000011010 0 OBJECT GLOBAL HIDDEN 22 __TMC_END__ - 86: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_registerTMCloneTable - 87: 0000000000000580 0 FUNC GLOBAL HIDDEN 11 _init diff --git a/src/test/correct/basic_arrays_write/gcc_O2/basic_arrays_write_gtirb.expected b/src/test/correct/basic_arrays_write/gcc_O2/basic_arrays_write_gtirb.expected index c0eb2b34f..0fe8d5e9c 100644 --- a/src/test/correct/basic_arrays_write/gcc_O2/basic_arrays_write_gtirb.expected +++ b/src/test/correct/basic_arrays_write/gcc_O2/basic_arrays_write_gtirb.expected @@ -65,7 +65,7 @@ implementation {:extern} guarantee_reflexive() assert (memory_load32_le(mem, bvadd64($arr_addr, 0bv64)) == memory_load32_le(mem, bvadd64($arr_addr, 0bv64))); } -procedure main_1536(); +procedure main(); modifies Gamma_R0, Gamma_R1, Gamma_R2, Gamma_mem, R0, R1, R2, mem; requires (Gamma_R0 == false); free requires (memory_load64_le(mem, 69632bv64) == 0bv64); @@ -81,23 +81,23 @@ procedure main_1536(); free ensures (memory_load64_le(mem, 69616bv64) == 1536bv64); free ensures (memory_load64_le(mem, 69640bv64) == 69640bv64); -implementation main_1536() +implementation main() { var arr$0_old: bv32; - main_1536__0__V~T77jbITpWbEe~BkyODXA: - assume {:captureState "main_1536__0__V~T77jbITpWbEe~BkyODXA"} true; + $main$__0__$V~T77jbITpWbEe~BkyODXA: + assume {:captureState "$main$__0__$V~T77jbITpWbEe~BkyODXA"} true; R1, Gamma_R1 := 69632bv64, true; R2, Gamma_R2 := zero_extend32_32(R0[32:0]), Gamma_R0; R0, Gamma_R0 := 0bv64, true; call rely(); - arr$0_old := memory_load32_le(mem, bvadd64($arr_addr, 0bv64)); assert (L(mem, bvadd64(R1, 28bv64)) ==> Gamma_R2); + arr$0_old := memory_load32_le(mem, bvadd64($arr_addr, 0bv64)); mem, Gamma_mem := memory_store32_le(mem, bvadd64(R1, 28bv64), R2[32:0]), gamma_store32(Gamma_mem, bvadd64(R1, 28bv64), Gamma_R2); assert (arr$0_old == memory_load32_le(mem, bvadd64($arr_addr, 0bv64))); - assume {:captureState "1548_0"} true; - goto main_1536_basil_return; - main_1536_basil_return: - assume {:captureState "main_1536_basil_return"} true; + assume {:captureState "1548$0"} true; + goto main_basil_return; + main_basil_return: + assume {:captureState "main_basil_return"} true; return; } diff --git a/src/test/correct/basic_arrays_write/gcc_pic/basic_arrays_write.adt b/src/test/correct/basic_arrays_write/gcc_pic/basic_arrays_write.adt deleted file mode 100644 index c83481cee..000000000 --- a/src/test/correct/basic_arrays_write/gcc_pic/basic_arrays_write.adt +++ /dev/null @@ -1,504 +0,0 @@ -Project(Attrs([Attr("filename","\"gcc_pic/basic_arrays_write.out\""), -Attr("image-specification","(declare abi (name str))\n(declare arch (name str))\n(declare base-address (addr int))\n(declare bias (off int))\n(declare bits (size int))\n(declare code-region (addr int) (size int) (off int))\n(declare code-start (addr int))\n(declare entry-point (addr int))\n(declare external-reference (addr int) (name str))\n(declare format (name str))\n(declare is-executable (flag bool))\n(declare is-little-endian (flag bool))\n(declare llvm:base-address (addr int))\n(declare llvm:code-entry (name str) (off int) (size int))\n(declare llvm:coff-import-library (name str))\n(declare llvm:coff-virtual-section-header (name str) (addr int) (size int))\n(declare llvm:elf-program-header (name str) (off int) (size int))\n(declare llvm:elf-program-header-flags (name str) (ld bool) (r bool) \n (w bool) (x bool))\n(declare llvm:elf-virtual-program-header (name str) (addr int) (size int))\n(declare llvm:entry-point (addr int))\n(declare llvm:macho-symbol (name str) (value int))\n(declare llvm:name-reference (at int) (name str))\n(declare llvm:relocation (at int) (addr int))\n(declare llvm:section-entry (name str) (addr int) (size int) (off int))\n(declare llvm:section-flags (name str) (r bool) (w bool) (x bool))\n(declare llvm:segment-command (name str) (off int) (size int))\n(declare llvm:segment-command-flags (name str) (r bool) (w bool) (x bool))\n(declare llvm:symbol-entry (name str) (addr int) (size int) (off int)\n (value int))\n(declare llvm:virtual-segment-command (name str) (addr int) (size int))\n(declare mapped (addr int) (size int) (off int))\n(declare named-region (addr int) (size int) (name str))\n(declare named-symbol (addr int) (name str))\n(declare require (name str))\n(declare section (addr int) (size int))\n(declare segment (addr int) (size int) (r bool) (w bool) (x bool))\n(declare subarch (name str))\n(declare symbol-chunk (addr int) (size int) (root int))\n(declare symbol-value (addr int) (value int))\n(declare system (name str))\n(declare vendor (name str))\n\n(abi unknown)\n(arch aarch64)\n(base-address 0)\n(bias 0)\n(bits 64)\n(code-region 1912 20 1912)\n(code-region 1600 312 1600)\n(code-region 1456 96 1456)\n(code-region 1432 24 1432)\n(code-start 1652)\n(code-start 1600)\n(code-start 1876)\n(entry-point 1600)\n(external-reference 69584 _ITM_deregisterTMCloneTable)\n(external-reference 69592 __cxa_finalize)\n(external-reference 69600 __gmon_start__)\n(external-reference 69624 _ITM_registerTMCloneTable)\n(external-reference 69544 __libc_start_main)\n(external-reference 69552 __cxa_finalize)\n(external-reference 69560 __gmon_start__)\n(external-reference 69568 abort)\n(format elf)\n(is-executable true)\n(is-little-endian true)\n(llvm:base-address 0)\n(llvm:code-entry abort 0 0)\n(llvm:code-entry __cxa_finalize 0 0)\n(llvm:code-entry __libc_start_main 0 0)\n(llvm:code-entry _init 1432 0)\n(llvm:code-entry main 1876 36)\n(llvm:code-entry _start 1600 52)\n(llvm:code-entry abort@GLIBC_2.17 0 0)\n(llvm:code-entry _fini 1912 0)\n(llvm:code-entry __cxa_finalize@GLIBC_2.17 0 0)\n(llvm:code-entry __libc_start_main@GLIBC_2.34 0 0)\n(llvm:code-entry frame_dummy 1872 0)\n(llvm:code-entry __do_global_dtors_aux 1792 0)\n(llvm:code-entry register_tm_clones 1728 0)\n(llvm:code-entry deregister_tm_clones 1680 0)\n(llvm:code-entry call_weak_fn 1652 20)\n(llvm:code-entry .fini 1912 20)\n(llvm:code-entry .text 1600 312)\n(llvm:code-entry .plt 1456 96)\n(llvm:code-entry .init 1432 24)\n(llvm:elf-program-header 08 3472 624)\n(llvm:elf-program-header 07 0 0)\n(llvm:elf-program-header 06 1936 60)\n(llvm:elf-program-header 05 596 68)\n(llvm:elf-program-header 04 3488 496)\n(llvm:elf-program-header 03 3472 640)\n(llvm:elf-program-header 02 0 2164)\n(llvm:elf-program-header 01 568 27)\n(llvm:elf-program-header 00 64 504)\n(llvm:elf-program-header-flags 08 false true false false)\n(llvm:elf-program-header-flags 07 false true true false)\n(llvm:elf-program-header-flags 06 false true false false)\n(llvm:elf-program-header-flags 05 false true false false)\n(llvm:elf-program-header-flags 04 false true true false)\n(llvm:elf-program-header-flags 03 true true true false)\n(llvm:elf-program-header-flags 02 true true false true)\n(llvm:elf-program-header-flags 01 false true false false)\n(llvm:elf-program-header-flags 00 false true false false)\n(llvm:elf-virtual-program-header 08 69008 624)\n(llvm:elf-virtual-program-header 07 0 0)\n(llvm:elf-virtual-program-header 06 1936 60)\n(llvm:elf-virtual-program-header 05 596 68)\n(llvm:elf-virtual-program-header 04 69024 496)\n(llvm:elf-virtual-program-header 03 69008 656)\n(llvm:elf-virtual-program-header 02 0 2164)\n(llvm:elf-virtual-program-header 01 568 27)\n(llvm:elf-virtual-program-header 00 64 504)\n(llvm:entry-point 1600)\n(llvm:name-reference 69568 abort)\n(llvm:name-reference 69560 __gmon_start__)\n(llvm:name-reference 69552 __cxa_finalize)\n(llvm:name-reference 69544 __libc_start_main)\n(llvm:name-reference 69624 _ITM_registerTMCloneTable)\n(llvm:name-reference 69600 __gmon_start__)\n(llvm:name-reference 69592 __cxa_finalize)\n(llvm:name-reference 69584 _ITM_deregisterTMCloneTable)\n(llvm:section-entry .shstrtab 0 250 6830)\n(llvm:section-entry .strtab 0 558 6272)\n(llvm:section-entry .symtab 0 2112 4160)\n(llvm:section-entry .comment 0 43 4112)\n(llvm:section-entry .bss 69648 16 4112)\n(llvm:section-entry .data 69632 16 4096)\n(llvm:section-entry .got 69520 112 3984)\n(llvm:section-entry .dynamic 69024 496 3488)\n(llvm:section-entry .fini_array 69016 8 3480)\n(llvm:section-entry .init_array 69008 8 3472)\n(llvm:section-entry .eh_frame 2000 164 2000)\n(llvm:section-entry .eh_frame_hdr 1936 60 1936)\n(llvm:section-entry .rodata 1932 4 1932)\n(llvm:section-entry .fini 1912 20 1912)\n(llvm:section-entry .text 1600 312 1600)\n(llvm:section-entry .plt 1456 96 1456)\n(llvm:section-entry .init 1432 24 1432)\n(llvm:section-entry .rela.plt 1336 96 1336)\n(llvm:section-entry .rela.dyn 1120 216 1120)\n(llvm:section-entry .gnu.version_r 1072 48 1072)\n(llvm:section-entry .gnu.version 1054 18 1054)\n(llvm:section-entry .dynstr 912 141 912)\n(llvm:section-entry .dynsym 696 216 696)\n(llvm:section-entry .gnu.hash 664 28 664)\n(llvm:section-entry .note.ABI-tag 632 32 632)\n(llvm:section-entry .note.gnu.build-id 596 36 596)\n(llvm:section-entry .interp 568 27 568)\n(llvm:section-flags .shstrtab true false false)\n(llvm:section-flags .strtab true false false)\n(llvm:section-flags .symtab true false false)\n(llvm:section-flags .comment true false false)\n(llvm:section-flags .bss true true false)\n(llvm:section-flags .data true true false)\n(llvm:section-flags .got true true false)\n(llvm:section-flags .dynamic true true false)\n(llvm:section-flags .fini_array true true false)\n(llvm:section-flags .init_array true true false)\n(llvm:section-flags .eh_frame true false false)\n(llvm:section-flags .eh_frame_hdr true false false)\n(llvm:section-flags .rodata true false false)\n(llvm:section-flags .fini true false true)\n(llvm:section-flags .text true false true)\n(llvm:section-flags .plt true false true)\n(llvm:section-flags .init true false true)\n(llvm:section-flags .rela.plt true false false)\n(llvm:section-flags .rela.dyn true false false)\n(llvm:section-flags .gnu.version_r true false false)\n(llvm:section-flags .gnu.version true false false)\n(llvm:section-flags .dynstr true false false)\n(llvm:section-flags .dynsym true false false)\n(llvm:section-flags .gnu.hash true false false)\n(llvm:section-flags .note.ABI-tag true false false)\n(llvm:section-flags .note.gnu.build-id true false false)\n(llvm:section-flags .interp true false false)\n(llvm:symbol-entry abort 0 0 0 0)\n(llvm:symbol-entry __cxa_finalize 0 0 0 0)\n(llvm:symbol-entry __libc_start_main 0 0 0 0)\n(llvm:symbol-entry _init 1432 0 1432 1432)\n(llvm:symbol-entry main 1876 36 1876 1876)\n(llvm:symbol-entry _start 1600 52 1600 1600)\n(llvm:symbol-entry abort@GLIBC_2.17 0 0 0 0)\n(llvm:symbol-entry _fini 1912 0 1912 1912)\n(llvm:symbol-entry __cxa_finalize@GLIBC_2.17 0 0 0 0)\n(llvm:symbol-entry __libc_start_main@GLIBC_2.34 0 0 0 0)\n(llvm:symbol-entry frame_dummy 1872 0 1872 1872)\n(llvm:symbol-entry __do_global_dtors_aux 1792 0 1792 1792)\n(llvm:symbol-entry register_tm_clones 1728 0 1728 1728)\n(llvm:symbol-entry deregister_tm_clones 1680 0 1680 1680)\n(llvm:symbol-entry call_weak_fn 1652 20 1652 1652)\n(mapped 0 2164 0)\n(mapped 69008 640 3472)\n(named-region 0 2164 02)\n(named-region 69008 656 03)\n(named-region 568 27 .interp)\n(named-region 596 36 .note.gnu.build-id)\n(named-region 632 32 .note.ABI-tag)\n(named-region 664 28 .gnu.hash)\n(named-region 696 216 .dynsym)\n(named-region 912 141 .dynstr)\n(named-region 1054 18 .gnu.version)\n(named-region 1072 48 .gnu.version_r)\n(named-region 1120 216 .rela.dyn)\n(named-region 1336 96 .rela.plt)\n(named-region 1432 24 .init)\n(named-region 1456 96 .plt)\n(named-region 1600 312 .text)\n(named-region 1912 20 .fini)\n(named-region 1932 4 .rodata)\n(named-region 1936 60 .eh_frame_hdr)\n(named-region 2000 164 .eh_frame)\n(named-region 69008 8 .init_array)\n(named-region 69016 8 .fini_array)\n(named-region 69024 496 .dynamic)\n(named-region 69520 112 .got)\n(named-region 69632 16 .data)\n(named-region 69648 16 .bss)\n(named-region 0 43 .comment)\n(named-region 0 2112 .symtab)\n(named-region 0 558 .strtab)\n(named-region 0 250 .shstrtab)\n(named-symbol 1652 call_weak_fn)\n(named-symbol 1680 deregister_tm_clones)\n(named-symbol 1728 register_tm_clones)\n(named-symbol 1792 __do_global_dtors_aux)\n(named-symbol 1872 frame_dummy)\n(named-symbol 0 __libc_start_main@GLIBC_2.34)\n(named-symbol 0 __cxa_finalize@GLIBC_2.17)\n(named-symbol 1912 _fini)\n(named-symbol 0 abort@GLIBC_2.17)\n(named-symbol 1600 _start)\n(named-symbol 1876 main)\n(named-symbol 1432 _init)\n(named-symbol 0 __libc_start_main)\n(named-symbol 0 __cxa_finalize)\n(named-symbol 0 abort)\n(require libc.so.6)\n(section 568 27)\n(section 596 36)\n(section 632 32)\n(section 664 28)\n(section 696 216)\n(section 912 141)\n(section 1054 18)\n(section 1072 48)\n(section 1120 216)\n(section 1336 96)\n(section 1432 24)\n(section 1456 96)\n(section 1600 312)\n(section 1912 20)\n(section 1932 4)\n(section 1936 60)\n(section 2000 164)\n(section 69008 8)\n(section 69016 8)\n(section 69024 496)\n(section 69520 112)\n(section 69632 16)\n(section 69648 16)\n(section 0 43)\n(section 0 2112)\n(section 0 558)\n(section 0 250)\n(segment 0 2164 true false true)\n(segment 69008 656 true true false)\n(subarch v8)\n(symbol-chunk 1652 20 1652)\n(symbol-chunk 1600 52 1600)\n(symbol-chunk 1876 36 1876)\n(symbol-value 1652 1652)\n(symbol-value 1680 1680)\n(symbol-value 1728 1728)\n(symbol-value 1792 1792)\n(symbol-value 1872 1872)\n(symbol-value 1912 1912)\n(symbol-value 1600 1600)\n(symbol-value 1876 1876)\n(symbol-value 1432 1432)\n(symbol-value 0 0)\n(system \"\")\n(vendor \"\")\n"), -Attr("abi-name","\"aarch64-linux-gnu-elf\"")]), -Sections([Section(".shstrtab", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x40\x06\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xa8\x1b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x38\x00\x09\x00\x40\x00\x1c\x00\x1b\x00\x06\x00\x00\x00\x04\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x04\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x74\x08\x00\x00\x00\x00\x00\x00\x74\x08\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x01\x00\x00\x00\x06\x00\x00\x00\x90\x0d\x00\x00\x00\x00\x00\x00\x90\x0d"), -Section(".strtab", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x40\x06\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xa8\x1b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x38\x00\x09\x00\x40\x00\x1c\x00\x1b\x00\x06\x00\x00\x00\x04\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x04\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x74\x08\x00\x00\x00\x00\x00\x00\x74\x08\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x01\x00\x00\x00\x06\x00\x00\x00\x90\x0d\x00\x00\x00\x00\x00\x00\x90\x0d\x01\x00\x00\x00\x00\x00\x90\x0d\x01\x00\x00\x00\x00\x00\x80\x02\x00\x00\x00\x00\x00\x00\x90\x02\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x02\x00\x00\x00\x06\x00\x00\x00\xa0\x0d\x00\x00\x00\x00\x00\x00\xa0\x0d\x01\x00\x00\x00\x00\x00\xa0\x0d\x01\x00\x00\x00\x00\x00\xf0\x01\x00\x00\x00\x00\x00\x00\xf0\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x04\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x50\xe5\x74\x64\x04\x00\x00\x00\x90\x07\x00\x00\x00\x00\x00\x00\x90\x07\x00\x00\x00\x00\x00\x00\x90\x07\x00\x00\x00\x00\x00\x00\x3c\x00\x00\x00\x00\x00\x00\x00\x3c\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x51\xe5\x74\x64\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x52\xe5\x74\x64\x04\x00\x00\x00\x90\x0d\x00\x00\x00\x00\x00\x00\x90\x0d\x01\x00\x00\x00\x00\x00\x90\x0d\x01\x00\x00\x00\x00\x00\x70\x02\x00\x00\x00\x00\x00\x00\x70\x02\x00\x00\x00\x00"), -Section(".symtab", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x40\x06\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xa8\x1b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x38\x00\x09\x00\x40\x00\x1c\x00\x1b\x00\x06\x00\x00\x00\x04\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x04\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x74\x08\x00\x00\x00\x00\x00\x00\x74\x08\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x01\x00\x00\x00\x06\x00\x00\x00\x90\x0d\x00\x00\x00\x00\x00\x00\x90\x0d\x01\x00\x00\x00\x00\x00\x90\x0d\x01\x00\x00\x00\x00\x00\x80\x02\x00\x00\x00\x00\x00\x00\x90\x02\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x02\x00\x00\x00\x06\x00\x00\x00\xa0\x0d\x00\x00\x00\x00\x00\x00\xa0\x0d\x01\x00\x00\x00\x00\x00\xa0\x0d\x01\x00\x00\x00\x00\x00\xf0\x01\x00\x00\x00\x00\x00\x00\xf0\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x04\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x50\xe5\x74\x64\x04\x00\x00\x00\x90\x07\x00\x00\x00\x00\x00\x00\x90\x07\x00\x00\x00\x00\x00\x00\x90\x07\x00\x00\x00\x00\x00\x00\x3c\x00\x00\x00\x00\x00\x00\x00\x3c\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x51\xe5\x74\x64\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x52\xe5\x74\x64\x04\x00\x00\x00\x90\x0d\x00\x00\x00\x00\x00\x00\x90\x0d\x01\x00\x00\x00\x00\x00\x90\x0d\x01\x00\x00\x00\x00\x00\x70\x02\x00\x00\x00\x00\x00\x00\x70\x02\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x2f\x6c\x69\x62\x2f\x6c\x64\x2d\x6c\x69\x6e\x75\x78\x2d\x61\x61\x72\x63\x68\x36\x34\x2e\x73\x6f\x2e\x31\x00\x00\x04\x00\x00\x00\x14\x00\x00\x00\x03\x00\x00\x00\x47\x4e\x55\x00\x7a\xd5\xd1\x50\xc2\x9e\x6e\x0d\x9a\x34\x1d\xa5\x33\xc0\x63\xac\xf7\x28\xef\x67\x04\x00\x00\x00\x10\x00\x00\x00\x01\x00\x00\x00\x47\x4e\x55\x00\x00\x00\x00\x00\x03\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x01\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x0b\x00\x98\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x16\x00\x00\x10\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x48\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x22\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x22\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x73\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5f\x5f\x63\x78\x61\x5f\x66\x69\x6e\x61\x6c\x69\x7a\x65\x00\x5f\x5f\x6c\x69\x62\x63\x5f\x73\x74\x61\x72\x74\x5f\x6d\x61\x69\x6e\x00\x61\x62\x6f\x72\x74\x00\x6c\x69\x62\x63\x2e\x73\x6f\x2e\x36\x00\x47\x4c\x49\x42\x43\x5f\x32\x2e\x31\x37\x00\x47\x4c\x49\x42\x43\x5f\x32\x2e\x33\x34\x00\x5f\x49\x54\x4d\x5f\x64\x65\x72\x65\x67\x69\x73\x74\x65\x72\x54\x4d\x43\x6c\x6f\x6e\x65\x54\x61\x62\x6c\x65\x00\x5f\x5f\x67\x6d\x6f\x6e\x5f\x73\x74\x61\x72\x74\x5f\x5f\x00\x5f\x49\x54\x4d\x5f\x72\x65\x67\x69\x73\x74\x65\x72\x54\x4d\x43\x6c\x6f\x6e\x65\x54\x61\x62\x6c\x65\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x01\x00\x03\x00\x01\x00\x03\x00\x01\x00\x01\x00\x02\x00\x28\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x97\x91\x96\x06\x00\x00\x03\x00\x32\x00\x00\x00\x10\x00\x00\x00\xb4\x91\x96\x06\x00\x00\x02\x00\x3d\x00\x00\x00\x00\x00\x00\x00\x90\x0d\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x50\x07\x00\x00\x00\x00\x00\x00\x98\x0d\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\xe8\x0f\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x54\x07\x00\x00\x00\x00\x00\x00\xf0\x0f\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x18\x10\x01\x00\x00\x00\x00\x00\x08\x10\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x08\x10\x01\x00\x00\x00\x00\x00\xd0\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xd8\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe0\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xf8\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xa8\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xb0\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xb8\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xc0\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1f\x20\x03\xd5\xfd\x7b\xbf\xa9\xfd\x03\x00\x91\x34\x00\x00\x94\xfd\x7b\xc1\xa8\xc0\x03\x5f\xd6\xf0\x7b\xbf\xa9\x90\x00\x00\x90\x11\xd2\x47\xf9\x10\x82\x3e\x91\x20\x02\x1f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x90\x00\x00\x90\x11\xd6\x47\xf9\x10\xa2\x3e\x91\x20\x02\x1f\xd6\x90\x00\x00\x90\x11\xda\x47\xf9\x10\xc2\x3e\x91\x20\x02\x1f\xd6\x90\x00\x00\x90\x11\xde\x47\xf9\x10\xe2\x3e\x91\x20\x02\x1f\xd6\x90\x00\x00\x90\x11\xe2\x47\xf9\x10\x02\x3f\x91\x20\x02\x1f\xd6\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1f\x20\x03\xd5\x1d\x00\x80\xd2\x1e\x00\x80\xd2\xe5\x03\x00\xaa\xe1\x03\x40\xf9\xe2\x23\x00\x91\xe6\x03\x00\x91\x80\x00\x00\x90\x00\xf4\x47\xf9\x03\x00\x80\xd2\x04\x00\x80\xd2\xd9\xff\xff\x97\xe4\xff\xff\x97\x80\x00\x00\x90\x00\xf0\x47\xf9\x40\x00\x00\xb4\xdc\xff\xff\x17\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x80\x00\x00\xb0\x00\x40\x00\x91\x81\x00\x00\xb0\x21\x40\x00\x91\x3f\x00\x00\xeb\xc0\x00\x00\x54\x81\x00\x00\x90\x21\xe8\x47\xf9\x61\x00\x00\xb4\xf0\x03\x01\xaa\x00\x02\x1f\xd6\xc0\x03\x5f\xd6\x80\x00\x00\xb0\x00\x40\x00\x91\x81\x00\x00\xb0\x21\x40\x00\x91\x21\x00\x00\xcb\x22\xfc\x7f\xd3\x41\x0c\x81\x8b\x21\xfc\x41\x93\xc1\x00\x00\xb4\x82\x00\x00\x90\x42\xfc\x47\xf9\x62\x00\x00\xb4\xf0\x03\x02\xaa\x00\x02\x1f\xd6\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\xfd\x7b\xbe\xa9\xfd\x03\x00\x91\xf3\x0b\x00\xf9\x93\x00\x00\xb0\x60\x42\x40\x39\x40\x01\x00\x35\x80\x00\x00\x90\x00\xec\x47\xf9\x80\x00\x00\xb4\x80\x00\x00\xb0\x00\x04\x40\xf9\xad\xff\xff\x97\xd8\xff\xff\x97\x20\x00\x80\x52\x60\x42\x00\x39\xf3\x0b\x40\xf9\xfd\x7b\xc2\xa8\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\xdc\xff\xff\x17\xff\x43\x00\xd1\xe0\x0f\x00\xb9\x80\x00\x00\x90\x00\xf8\x47\xf9\xe1\x0f\x40\xb9\x01\x04\x00\xb9\x00\x00\x80\x52\xff\x43\x00\x91\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\xfd\x7b\xbf\xa9\xfd\x03\x00\x91\xfd\x7b\xc1\xa8\xc0\x03\x5f\xd6\x01\x00\x02\x00\x01\x1b\x03\x3b\x3c\x00\x00\x00\x06\x00\x00\x00\xb0\xfe\xff\xff\x54\x00\x00\x00\x00\xff\xff\xff\x68\x00\x00\x00\x30\xff\xff\xff\x7c\x00\x00\x00\x70\xff\xff\xff\x90\x00\x00\x00\xc0\xff\xff\xff\xb4\x00\x00\x00\xc4\xff\xff\xff\xc8\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x01\x7a\x52\x00\x04\x78\x1e\x01\x1b\x0c\x1f\x00\x10\x00\x00\x00\x18\x00\x00\x00\x54\xfe\xff\xff\x34\x00\x00\x00\x00\x41\x07\x1e\x10\x00\x00\x00\x2c\x00\x00\x00\x90\xfe\xff\xff\x30\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x40\x00\x00\x00\xac\xfe\xff\xff\x3c\x00\x00\x00\x00\x00\x00\x00\x20\x00\x00\x00\x54\x00\x00\x00\xd8\xfe\xff\xff\x48\x00\x00\x00\x00\x41\x0e\x20\x9d\x04\x9e\x03\x42\x93\x02\x4e\xde\xdd\xd3\x0e"), -Section(".comment", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x40\x06\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xa8\x1b\x00"), -Section(".interp", 0x238, "\x2f\x6c\x69\x62\x2f\x6c\x64\x2d\x6c\x69\x6e\x75\x78\x2d\x61\x61\x72\x63\x68\x36\x34\x2e\x73\x6f\x2e\x31\x00"), -Section(".note.gnu.build-id", 0x254, "\x04\x00\x00\x00\x14\x00\x00\x00\x03\x00\x00\x00\x47\x4e\x55\x00\x7a\xd5\xd1\x50\xc2\x9e\x6e\x0d\x9a\x34\x1d\xa5\x33\xc0\x63\xac\xf7\x28\xef\x67"), -Section(".note.ABI-tag", 0x278, "\x04\x00\x00\x00\x10\x00\x00\x00\x01\x00\x00\x00\x47\x4e\x55\x00\x00\x00\x00\x00\x03\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00"), -Section(".gnu.hash", 0x298, "\x01\x00\x00\x00\x01\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".dynsym", 0x2B8, "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x0b\x00\x98\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x16\x00\x00\x10\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x48\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x22\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x22\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x73\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".dynstr", 0x390, "\x00\x5f\x5f\x63\x78\x61\x5f\x66\x69\x6e\x61\x6c\x69\x7a\x65\x00\x5f\x5f\x6c\x69\x62\x63\x5f\x73\x74\x61\x72\x74\x5f\x6d\x61\x69\x6e\x00\x61\x62\x6f\x72\x74\x00\x6c\x69\x62\x63\x2e\x73\x6f\x2e\x36\x00\x47\x4c\x49\x42\x43\x5f\x32\x2e\x31\x37\x00\x47\x4c\x49\x42\x43\x5f\x32\x2e\x33\x34\x00\x5f\x49\x54\x4d\x5f\x64\x65\x72\x65\x67\x69\x73\x74\x65\x72\x54\x4d\x43\x6c\x6f\x6e\x65\x54\x61\x62\x6c\x65\x00\x5f\x5f\x67\x6d\x6f\x6e\x5f\x73\x74\x61\x72\x74\x5f\x5f\x00\x5f\x49\x54\x4d\x5f\x72\x65\x67\x69\x73\x74\x65\x72\x54\x4d\x43\x6c\x6f\x6e\x65\x54\x61\x62\x6c\x65\x00"), -Section(".gnu.version", 0x41E, "\x00\x00\x00\x00\x00\x00\x02\x00\x01\x00\x03\x00\x01\x00\x03\x00\x01\x00"), -Section(".gnu.version_r", 0x430, "\x01\x00\x02\x00\x28\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x97\x91\x96\x06\x00\x00\x03\x00\x32\x00\x00\x00\x10\x00\x00\x00\xb4\x91\x96\x06\x00\x00\x02\x00\x3d\x00\x00\x00\x00\x00\x00\x00"), -Section(".rela.dyn", 0x460, "\x90\x0d\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x50\x07\x00\x00\x00\x00\x00\x00\x98\x0d\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\xe8\x0f\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x54\x07\x00\x00\x00\x00\x00\x00\xf0\x0f\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x18\x10\x01\x00\x00\x00\x00\x00\x08\x10\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x08\x10\x01\x00\x00\x00\x00\x00\xd0\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xd8\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe0\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xf8\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".rela.plt", 0x538, "\xa8\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xb0\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xb8\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xc0\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".init", 0x598, "\x1f\x20\x03\xd5\xfd\x7b\xbf\xa9\xfd\x03\x00\x91\x34\x00\x00\x94\xfd\x7b\xc1\xa8\xc0\x03\x5f\xd6"), -Section(".plt", 0x5B0, "\xf0\x7b\xbf\xa9\x90\x00\x00\x90\x11\xd2\x47\xf9\x10\x82\x3e\x91\x20\x02\x1f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x90\x00\x00\x90\x11\xd6\x47\xf9\x10\xa2\x3e\x91\x20\x02\x1f\xd6\x90\x00\x00\x90\x11\xda\x47\xf9\x10\xc2\x3e\x91\x20\x02\x1f\xd6\x90\x00\x00\x90\x11\xde\x47\xf9\x10\xe2\x3e\x91\x20\x02\x1f\xd6\x90\x00\x00\x90\x11\xe2\x47\xf9\x10\x02\x3f\x91\x20\x02\x1f\xd6"), -Section(".fini", 0x778, "\x1f\x20\x03\xd5\xfd\x7b\xbf\xa9\xfd\x03\x00\x91\xfd\x7b\xc1\xa8\xc0\x03\x5f\xd6"), -Section(".rodata", 0x78C, "\x01\x00\x02\x00"), -Section(".eh_frame_hdr", 0x790, "\x01\x1b\x03\x3b\x3c\x00\x00\x00\x06\x00\x00\x00\xb0\xfe\xff\xff\x54\x00\x00\x00\x00\xff\xff\xff\x68\x00\x00\x00\x30\xff\xff\xff\x7c\x00\x00\x00\x70\xff\xff\xff\x90\x00\x00\x00\xc0\xff\xff\xff\xb4\x00\x00\x00\xc4\xff\xff\xff\xc8\x00\x00\x00"), -Section(".eh_frame", 0x7D0, "\x10\x00\x00\x00\x00\x00\x00\x00\x01\x7a\x52\x00\x04\x78\x1e\x01\x1b\x0c\x1f\x00\x10\x00\x00\x00\x18\x00\x00\x00\x54\xfe\xff\xff\x34\x00\x00\x00\x00\x41\x07\x1e\x10\x00\x00\x00\x2c\x00\x00\x00\x90\xfe\xff\xff\x30\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x40\x00\x00\x00\xac\xfe\xff\xff\x3c\x00\x00\x00\x00\x00\x00\x00\x20\x00\x00\x00\x54\x00\x00\x00\xd8\xfe\xff\xff\x48\x00\x00\x00\x00\x41\x0e\x20\x9d\x04\x9e\x03\x42\x93\x02\x4e\xde\xdd\xd3\x0e\x00\x00\x00\x00\x10\x00\x00\x00\x78\x00\x00\x00\x04\xff\xff\xff\x04\x00\x00\x00\x00\x00\x00\x00\x14\x00\x00\x00\x8c\x00\x00\x00\xf4\xfe\xff\xff\x24\x00\x00\x00\x00\x41\x0e\x10\x47\x0e\x00\x00\x00\x00\x00\x00"), -Section(".fini_array", 0x10D98, "\x00\x07\x00\x00\x00\x00\x00\x00"), -Section(".dynamic", 0x10DA0, "\x01\x00\x00\x00\x00\x00\x00\x00\x28\x00\x00\x00\x00\x00\x00\x00\x0c\x00\x00\x00\x00\x00\x00\x00\x98\x05\x00\x00\x00\x00\x00\x00\x0d\x00\x00\x00\x00\x00\x00\x00\x78\x07\x00\x00\x00\x00\x00\x00\x19\x00\x00\x00\x00\x00\x00\x00\x90\x0d\x01\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x1a\x00\x00\x00\x00\x00\x00\x00\x98\x0d\x01\x00\x00\x00\x00\x00\x1c\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\xf5\xfe\xff\x6f\x00\x00\x00\x00\x98\x02\x00\x00\x00\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x90\x03\x00\x00\x00\x00\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\xb8\x02\x00\x00\x00\x00\x00\x00\x0a\x00\x00\x00\x00\x00\x00\x00\x8d\x00\x00\x00\x00\x00\x00\x00\x0b\x00\x00\x00\x00\x00\x00\x00\x18\x00\x00\x00\x00\x00\x00\x00\x15\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x90\x0f\x01\x00\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x60\x00\x00\x00\x00\x00\x00\x00\x14\x00\x00\x00\x00\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x17\x00\x00\x00\x00\x00\x00\x00\x38\x05\x00\x00\x00\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x60\x04\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\xd8\x00\x00\x00\x00\x00\x00\x00\x09\x00\x00\x00\x00\x00\x00\x00\x18\x00\x00\x00\x00\x00\x00\x00\x1e\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\xfb\xff\xff\x6f\x00\x00\x00\x00\x01\x00\x00\x08\x00\x00\x00\x00\xfe\xff\xff\x6f\x00\x00\x00\x00\x30\x04\x00\x00\x00\x00\x00\x00\xff\xff\xff\x6f\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\xf0\xff\xff\x6f\x00\x00\x00\x00\x1e\x04\x00\x00\x00\x00\x00\x00\xf9\xff\xff\x6f\x00\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".got", 0x10F90, "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xb0\x05\x00\x00\x00\x00\x00\x00\xb0\x05\x00\x00\x00\x00\x00\x00\xb0\x05\x00\x00\x00\x00\x00\x00\xb0\x05\x00\x00\x00\x00\x00\x00\xa0\x0d\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x54\x07\x00\x00\x00\x00\x00\x00\x18\x10\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".data", 0x11000, "\x00\x00\x00\x00\x00\x00\x00\x00\x08\x10\x01\x00\x00\x00\x00\x00"), -Section(".init_array", 0x10D90, "\x50\x07\x00\x00\x00\x00\x00\x00"), -Section(".text", 0x640, "\x1f\x20\x03\xd5\x1d\x00\x80\xd2\x1e\x00\x80\xd2\xe5\x03\x00\xaa\xe1\x03\x40\xf9\xe2\x23\x00\x91\xe6\x03\x00\x91\x80\x00\x00\x90\x00\xf4\x47\xf9\x03\x00\x80\xd2\x04\x00\x80\xd2\xd9\xff\xff\x97\xe4\xff\xff\x97\x80\x00\x00\x90\x00\xf0\x47\xf9\x40\x00\x00\xb4\xdc\xff\xff\x17\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x80\x00\x00\xb0\x00\x40\x00\x91\x81\x00\x00\xb0\x21\x40\x00\x91\x3f\x00\x00\xeb\xc0\x00\x00\x54\x81\x00\x00\x90\x21\xe8\x47\xf9\x61\x00\x00\xb4\xf0\x03\x01\xaa\x00\x02\x1f\xd6\xc0\x03\x5f\xd6\x80\x00\x00\xb0\x00\x40\x00\x91\x81\x00\x00\xb0\x21\x40\x00\x91\x21\x00\x00\xcb\x22\xfc\x7f\xd3\x41\x0c\x81\x8b\x21\xfc\x41\x93\xc1\x00\x00\xb4\x82\x00\x00\x90\x42\xfc\x47\xf9\x62\x00\x00\xb4\xf0\x03\x02\xaa\x00\x02\x1f\xd6\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\xfd\x7b\xbe\xa9\xfd\x03\x00\x91\xf3\x0b\x00\xf9\x93\x00\x00\xb0\x60\x42\x40\x39\x40\x01\x00\x35\x80\x00\x00\x90\x00\xec\x47\xf9\x80\x00\x00\xb4\x80\x00\x00\xb0\x00\x04\x40\xf9\xad\xff\xff\x97\xd8\xff\xff\x97\x20\x00\x80\x52\x60\x42\x00\x39\xf3\x0b\x40\xf9\xfd\x7b\xc2\xa8\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\xdc\xff\xff\x17\xff\x43\x00\xd1\xe0\x0f\x00\xb9\x80\x00\x00\x90\x00\xf8\x47\xf9\xe1\x0f\x40\xb9\x01\x04\x00\xb9\x00\x00\x80\x52\xff\x43\x00\x91\xc0\x03\x5f\xd6")]), -Memmap([Annotation(Region(0x0,0x873), Attr("segment","02 0 2164")), -Annotation(Region(0x640,0x673), Attr("symbol","\"_start\"")), -Annotation(Region(0x0,0xF9), Attr("section","\".shstrtab\"")), -Annotation(Region(0x0,0x22D), Attr("section","\".strtab\"")), -Annotation(Region(0x0,0x83F), Attr("section","\".symtab\"")), -Annotation(Region(0x0,0x2A), Attr("section","\".comment\"")), -Annotation(Region(0x238,0x252), Attr("section","\".interp\"")), -Annotation(Region(0x254,0x277), Attr("section","\".note.gnu.build-id\"")), -Annotation(Region(0x278,0x297), Attr("section","\".note.ABI-tag\"")), -Annotation(Region(0x298,0x2B3), Attr("section","\".gnu.hash\"")), -Annotation(Region(0x2B8,0x38F), Attr("section","\".dynsym\"")), -Annotation(Region(0x390,0x41C), Attr("section","\".dynstr\"")), -Annotation(Region(0x41E,0x42F), Attr("section","\".gnu.version\"")), -Annotation(Region(0x430,0x45F), Attr("section","\".gnu.version_r\"")), -Annotation(Region(0x460,0x537), Attr("section","\".rela.dyn\"")), -Annotation(Region(0x538,0x597), Attr("section","\".rela.plt\"")), -Annotation(Region(0x598,0x5AF), Attr("section","\".init\"")), -Annotation(Region(0x5B0,0x60F), Attr("section","\".plt\"")), -Annotation(Region(0x598,0x5AF), Attr("code-region","()")), -Annotation(Region(0x5B0,0x60F), Attr("code-region","()")), -Annotation(Region(0x640,0x673), Attr("symbol-info","_start 0x640 52")), -Annotation(Region(0x674,0x687), Attr("symbol","\"call_weak_fn\"")), -Annotation(Region(0x674,0x687), Attr("symbol-info","call_weak_fn 0x674 20")), -Annotation(Region(0x754,0x777), Attr("symbol","\"main\"")), -Annotation(Region(0x754,0x777), Attr("symbol-info","main 0x754 36")), -Annotation(Region(0x778,0x78B), Attr("section","\".fini\"")), -Annotation(Region(0x78C,0x78F), Attr("section","\".rodata\"")), -Annotation(Region(0x790,0x7CB), Attr("section","\".eh_frame_hdr\"")), -Annotation(Region(0x7D0,0x873), Attr("section","\".eh_frame\"")), -Annotation(Region(0x10D90,0x1100F), Attr("segment","03 0x10D90 656")), -Annotation(Region(0x10D98,0x10D9F), Attr("section","\".fini_array\"")), -Annotation(Region(0x10DA0,0x10F8F), Attr("section","\".dynamic\"")), -Annotation(Region(0x10F90,0x10FFF), Attr("section","\".got\"")), -Annotation(Region(0x11000,0x1100F), Attr("section","\".data\"")), -Annotation(Region(0x10D90,0x10D97), Attr("section","\".init_array\"")), -Annotation(Region(0x640,0x777), Attr("section","\".text\"")), -Annotation(Region(0x640,0x777), Attr("code-region","()")), -Annotation(Region(0x778,0x78B), Attr("code-region","()"))]), -Program(Tid(1_385, "%00000569"), Attrs([]), - Subs([Sub(Tid(1_335, "@__cxa_finalize"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x5E0"), -Attr("stub","()")]), "__cxa_finalize", Args([Arg(Tid(1_386, "%0000056a"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("__cxa_finalize_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(830, "@__cxa_finalize"), - Attrs([Attr("address","0x5E0")]), Phis([]), -Defs([Def(Tid(1_078, "%00000436"), Attrs([Attr("address","0x5E0"), -Attr("insn","adrp x16, #65536")]), Var("R16",Imm(64)), Int(65536,64)), -Def(Tid(1_085, "%0000043d"), Attrs([Attr("address","0x5E4"), -Attr("insn","ldr x17, [x16, #0xfb0]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(4016,64)),LittleEndian(),64)), -Def(Tid(1_091, "%00000443"), Attrs([Attr("address","0x5E8"), -Attr("insn","add x16, x16, #0xfb0")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(4016,64)))]), Jmps([Call(Tid(1_096, "%00000448"), - Attrs([Attr("address","0x5EC"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), -Sub(Tid(1_336, "@__do_global_dtors_aux"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x700")]), - "__do_global_dtors_aux", Args([Arg(Tid(1_387, "%0000056b"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("__do_global_dtors_aux_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(626, "@__do_global_dtors_aux"), - Attrs([Attr("address","0x700")]), Phis([]), Defs([Def(Tid(630, "%00000276"), - Attrs([Attr("address","0x700"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("#3",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(18446744073709551584,64))), -Def(Tid(636, "%0000027c"), Attrs([Attr("address","0x700"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("#3",Imm(64)),Var("R29",Imm(64)),LittleEndian(),64)), -Def(Tid(642, "%00000282"), Attrs([Attr("address","0x700"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("#3",Imm(64)),Int(8,64)),Var("R30",Imm(64)),LittleEndian(),64)), -Def(Tid(646, "%00000286"), Attrs([Attr("address","0x700"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("R31",Imm(64)), -Var("#3",Imm(64))), Def(Tid(652, "%0000028c"), - Attrs([Attr("address","0x704"), Attr("insn","mov x29, sp")]), - Var("R29",Imm(64)), Var("R31",Imm(64))), Def(Tid(660, "%00000294"), - Attrs([Attr("address","0x708"), Attr("insn","str x19, [sp, #0x10]")]), - Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(16,64)),Var("R19",Imm(64)),LittleEndian(),64)), -Def(Tid(665, "%00000299"), Attrs([Attr("address","0x70C"), -Attr("insn","adrp x19, #69632")]), Var("R19",Imm(64)), Int(69632,64)), -Def(Tid(672, "%000002a0"), Attrs([Attr("address","0x710"), -Attr("insn","ldrb w0, [x19, #0x10]")]), Var("R0",Imm(64)), -UNSIGNED(64,Load(Var("mem",Mem(64,8)),PLUS(Var("R19",Imm(64)),Int(16,64)),LittleEndian(),8)))]), -Jmps([Goto(Tid(679, "%000002a7"), Attrs([Attr("address","0x714"), -Attr("insn","cbnz w0, #0x28")]), - NEQ(Extract(31,0,Var("R0",Imm(64))),Int(0,32)), -Direct(Tid(677, "%000002a5"))), Goto(Tid(1_375, "%0000055f"), Attrs([]), - Int(1,1), Direct(Tid(775, "%00000307")))])), Blk(Tid(775, "%00000307"), - Attrs([Attr("address","0x718")]), Phis([]), Defs([Def(Tid(778, "%0000030a"), - Attrs([Attr("address","0x718"), Attr("insn","adrp x0, #65536")]), - Var("R0",Imm(64)), Int(65536,64)), Def(Tid(785, "%00000311"), - Attrs([Attr("address","0x71C"), Attr("insn","ldr x0, [x0, #0xfd8]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(4056,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(791, "%00000317"), Attrs([Attr("address","0x720"), -Attr("insn","cbz x0, #0x10")]), EQ(Var("R0",Imm(64)),Int(0,64)), -Direct(Tid(789, "%00000315"))), Goto(Tid(1_376, "%00000560"), Attrs([]), - Int(1,1), Direct(Tid(814, "%0000032e")))])), Blk(Tid(814, "%0000032e"), - Attrs([Attr("address","0x724")]), Phis([]), Defs([Def(Tid(817, "%00000331"), - Attrs([Attr("address","0x724"), Attr("insn","adrp x0, #69632")]), - Var("R0",Imm(64)), Int(69632,64)), Def(Tid(824, "%00000338"), - Attrs([Attr("address","0x728"), Attr("insn","ldr x0, [x0, #0x8]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(829, "%0000033d"), Attrs([Attr("address","0x72C"), -Attr("insn","bl #-0x14c")]), Var("R30",Imm(64)), Int(1840,64))]), -Jmps([Call(Tid(832, "%00000340"), Attrs([Attr("address","0x72C"), -Attr("insn","bl #-0x14c")]), Int(1,1), -(Direct(Tid(1_335, "@__cxa_finalize")),Direct(Tid(789, "%00000315"))))])), -Blk(Tid(789, "%00000315"), Attrs([Attr("address","0x730")]), Phis([]), -Defs([Def(Tid(797, "%0000031d"), Attrs([Attr("address","0x730"), -Attr("insn","bl #-0xa0")]), Var("R30",Imm(64)), Int(1844,64))]), -Jmps([Call(Tid(799, "%0000031f"), Attrs([Attr("address","0x730"), -Attr("insn","bl #-0xa0")]), Int(1,1), -(Direct(Tid(1_349, "@deregister_tm_clones")),Direct(Tid(801, "%00000321"))))])), -Blk(Tid(801, "%00000321"), Attrs([Attr("address","0x734")]), Phis([]), -Defs([Def(Tid(804, "%00000324"), Attrs([Attr("address","0x734"), -Attr("insn","mov w0, #0x1")]), Var("R0",Imm(64)), Int(1,64)), -Def(Tid(812, "%0000032c"), Attrs([Attr("address","0x738"), -Attr("insn","strb w0, [x19, #0x10]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R19",Imm(64)),Int(16,64)),Extract(7,0,Var("R0",Imm(64))),LittleEndian(),8))]), -Jmps([Goto(Tid(1_377, "%00000561"), Attrs([]), Int(1,1), -Direct(Tid(677, "%000002a5")))])), Blk(Tid(677, "%000002a5"), - Attrs([Attr("address","0x73C")]), Phis([]), Defs([Def(Tid(687, "%000002af"), - Attrs([Attr("address","0x73C"), Attr("insn","ldr x19, [sp, #0x10]")]), - Var("R19",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(16,64)),LittleEndian(),64)), -Def(Tid(694, "%000002b6"), Attrs([Attr("address","0x740"), -Attr("insn","ldp x29, x30, [sp], #0x20")]), Var("R29",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(699, "%000002bb"), Attrs([Attr("address","0x740"), -Attr("insn","ldp x29, x30, [sp], #0x20")]), Var("R30",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(703, "%000002bf"), Attrs([Attr("address","0x740"), -Attr("insn","ldp x29, x30, [sp], #0x20")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(32,64)))]), Jmps([Call(Tid(708, "%000002c4"), - Attrs([Attr("address","0x744"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), Sub(Tid(1_340, "@__libc_start_main"), - Attrs([Attr("c.proto","signed (*)(signed (*)(signed , char** , char** );* main, signed , char** , \nvoid* auxv)"), -Attr("address","0x5D0"), Attr("stub","()")]), "__libc_start_main", - Args([Arg(Tid(1_388, "%0000056c"), - Attrs([Attr("c.layout","**[ : 64]"), -Attr("c.data","Top:u64 ptr ptr"), -Attr("c.type","signed (*)(signed , char** , char** );*")]), - Var("__libc_start_main_main",Imm(64)), Var("R0",Imm(64)), In()), -Arg(Tid(1_389, "%0000056d"), Attrs([Attr("c.layout","[signed : 32]"), -Attr("c.data","Top:u32"), Attr("c.type","signed")]), - Var("__libc_start_main_arg2",Imm(32)), LOW(32,Var("R1",Imm(64))), In()), -Arg(Tid(1_390, "%0000056e"), Attrs([Attr("c.layout","**[char : 8]"), -Attr("c.data","Top:u8 ptr ptr"), Attr("c.type","char**")]), - Var("__libc_start_main_arg3",Imm(64)), Var("R2",Imm(64)), Both()), -Arg(Tid(1_391, "%0000056f"), Attrs([Attr("c.layout","*[ : 8]"), -Attr("c.data","{} ptr"), Attr("c.type","void*")]), - Var("__libc_start_main_auxv",Imm(64)), Var("R3",Imm(64)), Both()), -Arg(Tid(1_392, "%00000570"), Attrs([Attr("c.layout","[signed : 32]"), -Attr("c.data","Top:u32"), Attr("c.type","signed")]), - Var("__libc_start_main_result",Imm(32)), LOW(32,Var("R0",Imm(64))), -Out())]), Blks([Blk(Tid(459, "@__libc_start_main"), - Attrs([Attr("address","0x5D0")]), Phis([]), -Defs([Def(Tid(1_056, "%00000420"), Attrs([Attr("address","0x5D0"), -Attr("insn","adrp x16, #65536")]), Var("R16",Imm(64)), Int(65536,64)), -Def(Tid(1_063, "%00000427"), Attrs([Attr("address","0x5D4"), -Attr("insn","ldr x17, [x16, #0xfa8]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(4008,64)),LittleEndian(),64)), -Def(Tid(1_069, "%0000042d"), Attrs([Attr("address","0x5D8"), -Attr("insn","add x16, x16, #0xfa8")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(4008,64)))]), Jmps([Call(Tid(1_074, "%00000432"), - Attrs([Attr("address","0x5DC"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), Sub(Tid(1_341, "@_fini"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x778")]), - "_fini", Args([Arg(Tid(1_393, "%00000571"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("_fini_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(31, "@_fini"), - Attrs([Attr("address","0x778")]), Phis([]), Defs([Def(Tid(37, "%00000025"), - Attrs([Attr("address","0x77C"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("#0",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(18446744073709551600,64))), -Def(Tid(43, "%0000002b"), Attrs([Attr("address","0x77C"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("#0",Imm(64)),Var("R29",Imm(64)),LittleEndian(),64)), -Def(Tid(49, "%00000031"), Attrs([Attr("address","0x77C"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("#0",Imm(64)),Int(8,64)),Var("R30",Imm(64)),LittleEndian(),64)), -Def(Tid(53, "%00000035"), Attrs([Attr("address","0x77C"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("R31",Imm(64)), -Var("#0",Imm(64))), Def(Tid(59, "%0000003b"), Attrs([Attr("address","0x780"), -Attr("insn","mov x29, sp")]), Var("R29",Imm(64)), Var("R31",Imm(64))), -Def(Tid(66, "%00000042"), Attrs([Attr("address","0x784"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R29",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(71, "%00000047"), Attrs([Attr("address","0x784"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R30",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(75, "%0000004b"), Attrs([Attr("address","0x784"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(16,64)))]), Jmps([Call(Tid(80, "%00000050"), - Attrs([Attr("address","0x788"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), Sub(Tid(1_342, "@_init"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x598")]), - "_init", Args([Arg(Tid(1_394, "%00000572"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("_init_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(1_168, "@_init"), - Attrs([Attr("address","0x598")]), Phis([]), -Defs([Def(Tid(1_174, "%00000496"), Attrs([Attr("address","0x59C"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("#5",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(18446744073709551600,64))), -Def(Tid(1_180, "%0000049c"), Attrs([Attr("address","0x59C"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("#5",Imm(64)),Var("R29",Imm(64)),LittleEndian(),64)), -Def(Tid(1_186, "%000004a2"), Attrs([Attr("address","0x59C"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("#5",Imm(64)),Int(8,64)),Var("R30",Imm(64)),LittleEndian(),64)), -Def(Tid(1_190, "%000004a6"), Attrs([Attr("address","0x59C"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("R31",Imm(64)), -Var("#5",Imm(64))), Def(Tid(1_196, "%000004ac"), - Attrs([Attr("address","0x5A0"), Attr("insn","mov x29, sp")]), - Var("R29",Imm(64)), Var("R31",Imm(64))), Def(Tid(1_201, "%000004b1"), - Attrs([Attr("address","0x5A4"), Attr("insn","bl #0xd0")]), - Var("R30",Imm(64)), Int(1448,64))]), Jmps([Call(Tid(1_203, "%000004b3"), - Attrs([Attr("address","0x5A4"), Attr("insn","bl #0xd0")]), Int(1,1), -(Direct(Tid(1_347, "@call_weak_fn")),Direct(Tid(1_205, "%000004b5"))))])), -Blk(Tid(1_205, "%000004b5"), Attrs([Attr("address","0x5A8")]), Phis([]), -Defs([Def(Tid(1_210, "%000004ba"), Attrs([Attr("address","0x5A8"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R29",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(1_215, "%000004bf"), Attrs([Attr("address","0x5A8"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R30",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(1_219, "%000004c3"), Attrs([Attr("address","0x5A8"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(16,64)))]), Jmps([Call(Tid(1_224, "%000004c8"), - Attrs([Attr("address","0x5AC"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), Sub(Tid(1_343, "@_start"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x640"), -Attr("entry-point","()")]), "_start", Args([Arg(Tid(1_395, "%00000573"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("_start_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(396, "@_start"), - Attrs([Attr("address","0x640")]), Phis([]), Defs([Def(Tid(401, "%00000191"), - Attrs([Attr("address","0x644"), Attr("insn","mov x29, #0x0")]), - Var("R29",Imm(64)), Int(0,64)), Def(Tid(406, "%00000196"), - Attrs([Attr("address","0x648"), Attr("insn","mov x30, #0x0")]), - Var("R30",Imm(64)), Int(0,64)), Def(Tid(412, "%0000019c"), - Attrs([Attr("address","0x64C"), Attr("insn","mov x5, x0")]), - Var("R5",Imm(64)), Var("R0",Imm(64))), Def(Tid(419, "%000001a3"), - Attrs([Attr("address","0x650"), Attr("insn","ldr x1, [sp]")]), - Var("R1",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(425, "%000001a9"), Attrs([Attr("address","0x654"), -Attr("insn","add x2, sp, #0x8")]), Var("R2",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(8,64))), Def(Tid(431, "%000001af"), - Attrs([Attr("address","0x658"), Attr("insn","mov x6, sp")]), - Var("R6",Imm(64)), Var("R31",Imm(64))), Def(Tid(436, "%000001b4"), - Attrs([Attr("address","0x65C"), Attr("insn","adrp x0, #65536")]), - Var("R0",Imm(64)), Int(65536,64)), Def(Tid(443, "%000001bb"), - Attrs([Attr("address","0x660"), Attr("insn","ldr x0, [x0, #0xfe8]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(4072,64)),LittleEndian(),64)), -Def(Tid(448, "%000001c0"), Attrs([Attr("address","0x664"), -Attr("insn","mov x3, #0x0")]), Var("R3",Imm(64)), Int(0,64)), -Def(Tid(453, "%000001c5"), Attrs([Attr("address","0x668"), -Attr("insn","mov x4, #0x0")]), Var("R4",Imm(64)), Int(0,64)), -Def(Tid(458, "%000001ca"), Attrs([Attr("address","0x66C"), -Attr("insn","bl #-0x9c")]), Var("R30",Imm(64)), Int(1648,64))]), -Jmps([Call(Tid(461, "%000001cd"), Attrs([Attr("address","0x66C"), -Attr("insn","bl #-0x9c")]), Int(1,1), -(Direct(Tid(1_340, "@__libc_start_main")),Direct(Tid(463, "%000001cf"))))])), -Blk(Tid(463, "%000001cf"), Attrs([Attr("address","0x670")]), Phis([]), -Defs([Def(Tid(466, "%000001d2"), Attrs([Attr("address","0x670"), -Attr("insn","bl #-0x70")]), Var("R30",Imm(64)), Int(1652,64))]), -Jmps([Call(Tid(469, "%000001d5"), Attrs([Attr("address","0x670"), -Attr("insn","bl #-0x70")]), Int(1,1), -(Direct(Tid(1_346, "@abort")),Direct(Tid(1_378, "%00000562"))))])), -Blk(Tid(1_378, "%00000562"), Attrs([]), Phis([]), Defs([]), -Jmps([Call(Tid(1_379, "%00000563"), Attrs([]), Int(1,1), -(Direct(Tid(1_347, "@call_weak_fn")),))]))])), Sub(Tid(1_346, "@abort"), - Attrs([Attr("noreturn","()"), Attr("c.proto","void (*)(void)"), -Attr("address","0x600"), Attr("stub","()")]), "abort", Args([]), -Blks([Blk(Tid(467, "@abort"), Attrs([Attr("address","0x600")]), Phis([]), -Defs([Def(Tid(1_122, "%00000462"), Attrs([Attr("address","0x600"), -Attr("insn","adrp x16, #65536")]), Var("R16",Imm(64)), Int(65536,64)), -Def(Tid(1_129, "%00000469"), Attrs([Attr("address","0x604"), -Attr("insn","ldr x17, [x16, #0xfc0]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(4032,64)),LittleEndian(),64)), -Def(Tid(1_135, "%0000046f"), Attrs([Attr("address","0x608"), -Attr("insn","add x16, x16, #0xfc0")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(4032,64)))]), Jmps([Call(Tid(1_140, "%00000474"), - Attrs([Attr("address","0x60C"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), Sub(Tid(1_347, "@call_weak_fn"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x674")]), - "call_weak_fn", Args([Arg(Tid(1_396, "%00000574"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("call_weak_fn_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(471, "@call_weak_fn"), - Attrs([Attr("address","0x674")]), Phis([]), Defs([Def(Tid(474, "%000001da"), - Attrs([Attr("address","0x674"), Attr("insn","adrp x0, #65536")]), - Var("R0",Imm(64)), Int(65536,64)), Def(Tid(481, "%000001e1"), - Attrs([Attr("address","0x678"), Attr("insn","ldr x0, [x0, #0xfe0]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(4064,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(487, "%000001e7"), Attrs([Attr("address","0x67C"), -Attr("insn","cbz x0, #0x8")]), EQ(Var("R0",Imm(64)),Int(0,64)), -Direct(Tid(485, "%000001e5"))), Goto(Tid(1_380, "%00000564"), Attrs([]), - Int(1,1), Direct(Tid(894, "%0000037e")))])), Blk(Tid(485, "%000001e5"), - Attrs([Attr("address","0x684")]), Phis([]), Defs([]), -Jmps([Call(Tid(493, "%000001ed"), Attrs([Attr("address","0x684"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))])), -Blk(Tid(894, "%0000037e"), Attrs([Attr("address","0x680")]), Phis([]), -Defs([]), Jmps([Goto(Tid(897, "%00000381"), Attrs([Attr("address","0x680"), -Attr("insn","b #-0x90")]), Int(1,1), Direct(Tid(895, "@__gmon_start__")))])), -Blk(Tid(895, "@__gmon_start__"), Attrs([Attr("address","0x5F0")]), Phis([]), -Defs([Def(Tid(1_100, "%0000044c"), Attrs([Attr("address","0x5F0"), -Attr("insn","adrp x16, #65536")]), Var("R16",Imm(64)), Int(65536,64)), -Def(Tid(1_107, "%00000453"), Attrs([Attr("address","0x5F4"), -Attr("insn","ldr x17, [x16, #0xfb8]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(4024,64)),LittleEndian(),64)), -Def(Tid(1_113, "%00000459"), Attrs([Attr("address","0x5F8"), -Attr("insn","add x16, x16, #0xfb8")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(4024,64)))]), Jmps([Call(Tid(1_118, "%0000045e"), - Attrs([Attr("address","0x5FC"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), -Sub(Tid(1_349, "@deregister_tm_clones"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x690")]), - "deregister_tm_clones", Args([Arg(Tid(1_397, "%00000575"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("deregister_tm_clones_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(499, "@deregister_tm_clones"), - Attrs([Attr("address","0x690")]), Phis([]), Defs([Def(Tid(502, "%000001f6"), - Attrs([Attr("address","0x690"), Attr("insn","adrp x0, #69632")]), - Var("R0",Imm(64)), Int(69632,64)), Def(Tid(508, "%000001fc"), - Attrs([Attr("address","0x694"), Attr("insn","add x0, x0, #0x10")]), - Var("R0",Imm(64)), PLUS(Var("R0",Imm(64)),Int(16,64))), -Def(Tid(513, "%00000201"), Attrs([Attr("address","0x698"), -Attr("insn","adrp x1, #69632")]), Var("R1",Imm(64)), Int(69632,64)), -Def(Tid(519, "%00000207"), Attrs([Attr("address","0x69C"), -Attr("insn","add x1, x1, #0x10")]), Var("R1",Imm(64)), -PLUS(Var("R1",Imm(64)),Int(16,64))), Def(Tid(525, "%0000020d"), - Attrs([Attr("address","0x6A0"), Attr("insn","cmp x1, x0")]), - Var("#1",Imm(64)), NOT(Var("R0",Imm(64)))), Def(Tid(530, "%00000212"), - Attrs([Attr("address","0x6A0"), Attr("insn","cmp x1, x0")]), - Var("#2",Imm(64)), PLUS(Var("R1",Imm(64)),NOT(Var("R0",Imm(64))))), -Def(Tid(536, "%00000218"), Attrs([Attr("address","0x6A0"), -Attr("insn","cmp x1, x0")]), Var("VF",Imm(1)), -NEQ(SIGNED(65,PLUS(Var("#2",Imm(64)),Int(1,64))),PLUS(PLUS(SIGNED(65,Var("R1",Imm(64))),SIGNED(65,Var("#1",Imm(64)))),Int(1,65)))), -Def(Tid(542, "%0000021e"), Attrs([Attr("address","0x6A0"), -Attr("insn","cmp x1, x0")]), Var("CF",Imm(1)), -NEQ(UNSIGNED(65,PLUS(Var("#2",Imm(64)),Int(1,64))),PLUS(PLUS(UNSIGNED(65,Var("R1",Imm(64))),UNSIGNED(65,Var("#1",Imm(64)))),Int(1,65)))), -Def(Tid(546, "%00000222"), Attrs([Attr("address","0x6A0"), -Attr("insn","cmp x1, x0")]), Var("ZF",Imm(1)), -EQ(PLUS(Var("#2",Imm(64)),Int(1,64)),Int(0,64))), Def(Tid(550, "%00000226"), - Attrs([Attr("address","0x6A0"), Attr("insn","cmp x1, x0")]), - Var("NF",Imm(1)), Extract(63,63,PLUS(Var("#2",Imm(64)),Int(1,64))))]), -Jmps([Goto(Tid(556, "%0000022c"), Attrs([Attr("address","0x6A4"), -Attr("insn","b.eq #0x18")]), EQ(Var("ZF",Imm(1)),Int(1,1)), -Direct(Tid(554, "%0000022a"))), Goto(Tid(1_381, "%00000565"), Attrs([]), - Int(1,1), Direct(Tid(864, "%00000360")))])), Blk(Tid(864, "%00000360"), - Attrs([Attr("address","0x6A8")]), Phis([]), Defs([Def(Tid(867, "%00000363"), - Attrs([Attr("address","0x6A8"), Attr("insn","adrp x1, #65536")]), - Var("R1",Imm(64)), Int(65536,64)), Def(Tid(874, "%0000036a"), - Attrs([Attr("address","0x6AC"), Attr("insn","ldr x1, [x1, #0xfd0]")]), - Var("R1",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R1",Imm(64)),Int(4048,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(879, "%0000036f"), Attrs([Attr("address","0x6B0"), -Attr("insn","cbz x1, #0xc")]), EQ(Var("R1",Imm(64)),Int(0,64)), -Direct(Tid(554, "%0000022a"))), Goto(Tid(1_382, "%00000566"), Attrs([]), - Int(1,1), Direct(Tid(883, "%00000373")))])), Blk(Tid(554, "%0000022a"), - Attrs([Attr("address","0x6BC")]), Phis([]), Defs([]), -Jmps([Call(Tid(562, "%00000232"), Attrs([Attr("address","0x6BC"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))])), -Blk(Tid(883, "%00000373"), Attrs([Attr("address","0x6B4")]), Phis([]), -Defs([Def(Tid(887, "%00000377"), Attrs([Attr("address","0x6B4"), -Attr("insn","mov x16, x1")]), Var("R16",Imm(64)), Var("R1",Imm(64)))]), -Jmps([Call(Tid(892, "%0000037c"), Attrs([Attr("address","0x6B8"), -Attr("insn","br x16")]), Int(1,1), (Indirect(Var("R16",Imm(64))),))]))])), -Sub(Tid(1_352, "@frame_dummy"), Attrs([Attr("c.proto","signed (*)(void)"), -Attr("address","0x750")]), "frame_dummy", Args([Arg(Tid(1_398, "%00000576"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("frame_dummy_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(714, "@frame_dummy"), - Attrs([Attr("address","0x750")]), Phis([]), Defs([]), -Jmps([Call(Tid(716, "%000002cc"), Attrs([Attr("address","0x750"), -Attr("insn","b #-0x90")]), Int(1,1), -(Direct(Tid(1_354, "@register_tm_clones")),))]))])), Sub(Tid(1_353, "@main"), - Attrs([Attr("c.proto","signed (*)(signed argc, const char** argv)"), -Attr("address","0x754")]), "main", Args([Arg(Tid(1_399, "%00000577"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("main_argc",Imm(32)), -LOW(32,Var("R0",Imm(64))), In()), Arg(Tid(1_400, "%00000578"), - Attrs([Attr("c.layout","**[char : 8]"), Attr("c.data","Top:u8 ptr ptr"), -Attr("c.type"," const char**")]), Var("main_argv",Imm(64)), -Var("R1",Imm(64)), Both()), Arg(Tid(1_401, "%00000579"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("main_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(718, "@main"), - Attrs([Attr("address","0x754")]), Phis([]), Defs([Def(Tid(722, "%000002d2"), - Attrs([Attr("address","0x754"), Attr("insn","sub sp, sp, #0x10")]), - Var("R31",Imm(64)), PLUS(Var("R31",Imm(64)),Int(18446744073709551600,64))), -Def(Tid(730, "%000002da"), Attrs([Attr("address","0x758"), -Attr("insn","str w0, [sp, #0xc]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(12,64)),Extract(31,0,Var("R0",Imm(64))),LittleEndian(),32)), -Def(Tid(735, "%000002df"), Attrs([Attr("address","0x75C"), -Attr("insn","adrp x0, #65536")]), Var("R0",Imm(64)), Int(65536,64)), -Def(Tid(742, "%000002e6"), Attrs([Attr("address","0x760"), -Attr("insn","ldr x0, [x0, #0xff0]")]), Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(4080,64)),LittleEndian(),64)), -Def(Tid(749, "%000002ed"), Attrs([Attr("address","0x764"), -Attr("insn","ldr w1, [sp, #0xc]")]), Var("R1",Imm(64)), -UNSIGNED(64,Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(12,64)),LittleEndian(),32))), -Def(Tid(757, "%000002f5"), Attrs([Attr("address","0x768"), -Attr("insn","str w1, [x0, #0x4]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(4,64)),Extract(31,0,Var("R1",Imm(64))),LittleEndian(),32)), -Def(Tid(762, "%000002fa"), Attrs([Attr("address","0x76C"), -Attr("insn","mov w0, #0x0")]), Var("R0",Imm(64)), Int(0,64)), -Def(Tid(768, "%00000300"), Attrs([Attr("address","0x770"), -Attr("insn","add sp, sp, #0x10")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(16,64)))]), Jmps([Call(Tid(773, "%00000305"), - Attrs([Attr("address","0x774"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), -Sub(Tid(1_354, "@register_tm_clones"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x6C0")]), - "register_tm_clones", Args([Arg(Tid(1_402, "%0000057a"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("register_tm_clones_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(564, "@register_tm_clones"), Attrs([Attr("address","0x6C0")]), - Phis([]), Defs([Def(Tid(567, "%00000237"), Attrs([Attr("address","0x6C0"), -Attr("insn","adrp x0, #69632")]), Var("R0",Imm(64)), Int(69632,64)), -Def(Tid(573, "%0000023d"), Attrs([Attr("address","0x6C4"), -Attr("insn","add x0, x0, #0x10")]), Var("R0",Imm(64)), -PLUS(Var("R0",Imm(64)),Int(16,64))), Def(Tid(578, "%00000242"), - Attrs([Attr("address","0x6C8"), Attr("insn","adrp x1, #69632")]), - Var("R1",Imm(64)), Int(69632,64)), Def(Tid(584, "%00000248"), - Attrs([Attr("address","0x6CC"), Attr("insn","add x1, x1, #0x10")]), - Var("R1",Imm(64)), PLUS(Var("R1",Imm(64)),Int(16,64))), -Def(Tid(591, "%0000024f"), Attrs([Attr("address","0x6D0"), -Attr("insn","sub x1, x1, x0")]), Var("R1",Imm(64)), -PLUS(PLUS(Var("R1",Imm(64)),NOT(Var("R0",Imm(64)))),Int(1,64))), -Def(Tid(597, "%00000255"), Attrs([Attr("address","0x6D4"), -Attr("insn","lsr x2, x1, #63")]), Var("R2",Imm(64)), -Concat(Int(0,63),Extract(63,63,Var("R1",Imm(64))))), -Def(Tid(604, "%0000025c"), Attrs([Attr("address","0x6D8"), -Attr("insn","add x1, x2, x1, asr #3")]), Var("R1",Imm(64)), -PLUS(Var("R2",Imm(64)),ARSHIFT(Var("R1",Imm(64)),Int(3,3)))), -Def(Tid(610, "%00000262"), Attrs([Attr("address","0x6DC"), -Attr("insn","asr x1, x1, #1")]), Var("R1",Imm(64)), -SIGNED(64,Extract(63,1,Var("R1",Imm(64)))))]), -Jmps([Goto(Tid(616, "%00000268"), Attrs([Attr("address","0x6E0"), -Attr("insn","cbz x1, #0x18")]), EQ(Var("R1",Imm(64)),Int(0,64)), -Direct(Tid(614, "%00000266"))), Goto(Tid(1_383, "%00000567"), Attrs([]), - Int(1,1), Direct(Tid(834, "%00000342")))])), Blk(Tid(834, "%00000342"), - Attrs([Attr("address","0x6E4")]), Phis([]), Defs([Def(Tid(837, "%00000345"), - Attrs([Attr("address","0x6E4"), Attr("insn","adrp x2, #65536")]), - Var("R2",Imm(64)), Int(65536,64)), Def(Tid(844, "%0000034c"), - Attrs([Attr("address","0x6E8"), Attr("insn","ldr x2, [x2, #0xff8]")]), - Var("R2",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R2",Imm(64)),Int(4088,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(849, "%00000351"), Attrs([Attr("address","0x6EC"), -Attr("insn","cbz x2, #0xc")]), EQ(Var("R2",Imm(64)),Int(0,64)), -Direct(Tid(614, "%00000266"))), Goto(Tid(1_384, "%00000568"), Attrs([]), - Int(1,1), Direct(Tid(853, "%00000355")))])), Blk(Tid(614, "%00000266"), - Attrs([Attr("address","0x6F8")]), Phis([]), Defs([]), -Jmps([Call(Tid(622, "%0000026e"), Attrs([Attr("address","0x6F8"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))])), -Blk(Tid(853, "%00000355"), Attrs([Attr("address","0x6F0")]), Phis([]), -Defs([Def(Tid(857, "%00000359"), Attrs([Attr("address","0x6F0"), -Attr("insn","mov x16, x2")]), Var("R16",Imm(64)), Var("R2",Imm(64)))]), -Jmps([Call(Tid(862, "%0000035e"), Attrs([Attr("address","0x6F4"), -Attr("insn","br x16")]), Int(1,1), -(Indirect(Var("R16",Imm(64))),))]))]))]))) \ No newline at end of file diff --git a/src/test/correct/basic_arrays_write/gcc_pic/basic_arrays_write.bir b/src/test/correct/basic_arrays_write/gcc_pic/basic_arrays_write.bir deleted file mode 100644 index 7a70e1380..000000000 --- a/src/test/correct/basic_arrays_write/gcc_pic/basic_arrays_write.bir +++ /dev/null @@ -1,231 +0,0 @@ -00000569: program -00000537: sub __cxa_finalize(__cxa_finalize_result) -0000056a: __cxa_finalize_result :: out u32 = low:32[R0] - -0000033e: -00000436: R16 := 0x10000 -0000043d: R17 := mem[R16 + 0xFB0, el]:u64 -00000443: R16 := R16 + 0xFB0 -00000448: call R17 with noreturn - -00000538: sub __do_global_dtors_aux(__do_global_dtors_aux_result) -0000056b: __do_global_dtors_aux_result :: out u32 = low:32[R0] - -00000272: -00000276: #3 := R31 - 0x20 -0000027c: mem := mem with [#3, el]:u64 <- R29 -00000282: mem := mem with [#3 + 8, el]:u64 <- R30 -00000286: R31 := #3 -0000028c: R29 := R31 -00000294: mem := mem with [R31 + 0x10, el]:u64 <- R19 -00000299: R19 := 0x11000 -000002a0: R0 := pad:64[mem[R19 + 0x10]] -000002a7: when 31:0[R0] <> 0 goto %000002a5 -0000055f: goto %00000307 - -00000307: -0000030a: R0 := 0x10000 -00000311: R0 := mem[R0 + 0xFD8, el]:u64 -00000317: when R0 = 0 goto %00000315 -00000560: goto %0000032e - -0000032e: -00000331: R0 := 0x11000 -00000338: R0 := mem[R0 + 8, el]:u64 -0000033d: R30 := 0x730 -00000340: call @__cxa_finalize with return %00000315 - -00000315: -0000031d: R30 := 0x734 -0000031f: call @deregister_tm_clones with return %00000321 - -00000321: -00000324: R0 := 1 -0000032c: mem := mem with [R19 + 0x10] <- 7:0[R0] -00000561: goto %000002a5 - -000002a5: -000002af: R19 := mem[R31 + 0x10, el]:u64 -000002b6: R29 := mem[R31, el]:u64 -000002bb: R30 := mem[R31 + 8, el]:u64 -000002bf: R31 := R31 + 0x20 -000002c4: call R30 with noreturn - -0000053c: sub __libc_start_main(__libc_start_main_main, __libc_start_main_arg2, __libc_start_main_arg3, __libc_start_main_auxv, __libc_start_main_result) -0000056c: __libc_start_main_main :: in u64 = R0 -0000056d: __libc_start_main_arg2 :: in u32 = low:32[R1] -0000056e: __libc_start_main_arg3 :: in out u64 = R2 -0000056f: __libc_start_main_auxv :: in out u64 = R3 -00000570: __libc_start_main_result :: out u32 = low:32[R0] - -000001cb: -00000420: R16 := 0x10000 -00000427: R17 := mem[R16 + 0xFA8, el]:u64 -0000042d: R16 := R16 + 0xFA8 -00000432: call R17 with noreturn - -0000053d: sub _fini(_fini_result) -00000571: _fini_result :: out u32 = low:32[R0] - -0000001f: -00000025: #0 := R31 - 0x10 -0000002b: mem := mem with [#0, el]:u64 <- R29 -00000031: mem := mem with [#0 + 8, el]:u64 <- R30 -00000035: R31 := #0 -0000003b: R29 := R31 -00000042: R29 := mem[R31, el]:u64 -00000047: R30 := mem[R31 + 8, el]:u64 -0000004b: R31 := R31 + 0x10 -00000050: call R30 with noreturn - -0000053e: sub _init(_init_result) -00000572: _init_result :: out u32 = low:32[R0] - -00000490: -00000496: #5 := R31 - 0x10 -0000049c: mem := mem with [#5, el]:u64 <- R29 -000004a2: mem := mem with [#5 + 8, el]:u64 <- R30 -000004a6: R31 := #5 -000004ac: R29 := R31 -000004b1: R30 := 0x5A8 -000004b3: call @call_weak_fn with return %000004b5 - -000004b5: -000004ba: R29 := mem[R31, el]:u64 -000004bf: R30 := mem[R31 + 8, el]:u64 -000004c3: R31 := R31 + 0x10 -000004c8: call R30 with noreturn - -0000053f: sub _start(_start_result) -00000573: _start_result :: out u32 = low:32[R0] - -0000018c: -00000191: R29 := 0 -00000196: R30 := 0 -0000019c: R5 := R0 -000001a3: R1 := mem[R31, el]:u64 -000001a9: R2 := R31 + 8 -000001af: R6 := R31 -000001b4: R0 := 0x10000 -000001bb: R0 := mem[R0 + 0xFE8, el]:u64 -000001c0: R3 := 0 -000001c5: R4 := 0 -000001ca: R30 := 0x670 -000001cd: call @__libc_start_main with return %000001cf - -000001cf: -000001d2: R30 := 0x674 -000001d5: call @abort with return %00000562 - -00000562: -00000563: call @call_weak_fn with noreturn - -00000542: sub abort() - - -000001d3: -00000462: R16 := 0x10000 -00000469: R17 := mem[R16 + 0xFC0, el]:u64 -0000046f: R16 := R16 + 0xFC0 -00000474: call R17 with noreturn - -00000543: sub call_weak_fn(call_weak_fn_result) -00000574: call_weak_fn_result :: out u32 = low:32[R0] - -000001d7: -000001da: R0 := 0x10000 -000001e1: R0 := mem[R0 + 0xFE0, el]:u64 -000001e7: when R0 = 0 goto %000001e5 -00000564: goto %0000037e - -000001e5: -000001ed: call R30 with noreturn - -0000037e: -00000381: goto @__gmon_start__ - -0000037f: -0000044c: R16 := 0x10000 -00000453: R17 := mem[R16 + 0xFB8, el]:u64 -00000459: R16 := R16 + 0xFB8 -0000045e: call R17 with noreturn - -00000545: sub deregister_tm_clones(deregister_tm_clones_result) -00000575: deregister_tm_clones_result :: out u32 = low:32[R0] - -000001f3: -000001f6: R0 := 0x11000 -000001fc: R0 := R0 + 0x10 -00000201: R1 := 0x11000 -00000207: R1 := R1 + 0x10 -0000020d: #1 := ~R0 -00000212: #2 := R1 + ~R0 -00000218: VF := extend:65[#2 + 1] <> extend:65[R1] + extend:65[#1] + 1 -0000021e: CF := pad:65[#2 + 1] <> pad:65[R1] + pad:65[#1] + 1 -00000222: ZF := #2 + 1 = 0 -00000226: NF := 63:63[#2 + 1] -0000022c: when ZF goto %0000022a -00000565: goto %00000360 - -00000360: -00000363: R1 := 0x10000 -0000036a: R1 := mem[R1 + 0xFD0, el]:u64 -0000036f: when R1 = 0 goto %0000022a -00000566: goto %00000373 - -0000022a: -00000232: call R30 with noreturn - -00000373: -00000377: R16 := R1 -0000037c: call R16 with noreturn - -00000548: sub frame_dummy(frame_dummy_result) -00000576: frame_dummy_result :: out u32 = low:32[R0] - -000002ca: -000002cc: call @register_tm_clones with noreturn - -00000549: sub main(main_argc, main_argv, main_result) -00000577: main_argc :: in u32 = low:32[R0] -00000578: main_argv :: in out u64 = R1 -00000579: main_result :: out u32 = low:32[R0] - -000002ce: -000002d2: R31 := R31 - 0x10 -000002da: mem := mem with [R31 + 0xC, el]:u32 <- 31:0[R0] -000002df: R0 := 0x10000 -000002e6: R0 := mem[R0 + 0xFF0, el]:u64 -000002ed: R1 := pad:64[mem[R31 + 0xC, el]:u32] -000002f5: mem := mem with [R0 + 4, el]:u32 <- 31:0[R1] -000002fa: R0 := 0 -00000300: R31 := R31 + 0x10 -00000305: call R30 with noreturn - -0000054a: sub register_tm_clones(register_tm_clones_result) -0000057a: register_tm_clones_result :: out u32 = low:32[R0] - -00000234: -00000237: R0 := 0x11000 -0000023d: R0 := R0 + 0x10 -00000242: R1 := 0x11000 -00000248: R1 := R1 + 0x10 -0000024f: R1 := R1 + ~R0 + 1 -00000255: R2 := 0.63:63[R1] -0000025c: R1 := R2 + (R1 ~>> 3) -00000262: R1 := extend:64[63:1[R1]] -00000268: when R1 = 0 goto %00000266 -00000567: goto %00000342 - -00000342: -00000345: R2 := 0x10000 -0000034c: R2 := mem[R2 + 0xFF8, el]:u64 -00000351: when R2 = 0 goto %00000266 -00000568: goto %00000355 - -00000266: -0000026e: call R30 with noreturn - -00000355: -00000359: R16 := R2 -0000035e: call R16 with noreturn diff --git a/src/test/correct/basic_arrays_write/gcc_pic/basic_arrays_write.expected b/src/test/correct/basic_arrays_write/gcc_pic/basic_arrays_write.expected index 2aa210ab4..7468cf507 100644 --- a/src/test/correct/basic_arrays_write/gcc_pic/basic_arrays_write.expected +++ b/src/test/correct/basic_arrays_write/gcc_pic/basic_arrays_write.expected @@ -76,7 +76,7 @@ implementation {:extern} guarantee_reflexive() assert (memory_load32_le(mem, bvadd64($arr_addr, 0bv64)) == memory_load32_le(mem, bvadd64($arr_addr, 0bv64))); } -procedure main_1876(); +procedure main(); modifies Gamma_R0, Gamma_R1, Gamma_R31, Gamma_mem, Gamma_stack, R0, R1, R31, mem, stack; requires (Gamma_R0 == false); free requires (memory_load64_le(mem, 69632bv64) == 0bv64); @@ -96,13 +96,13 @@ procedure main_1876(); free ensures (memory_load64_le(mem, 69616bv64) == 69656bv64); free ensures (memory_load64_le(mem, 69640bv64) == 69640bv64); -implementation main_1876() +implementation main() { - var Gamma_load18: bool; - var Gamma_load19: bool; + var $load$18: bv64; + var $load$19: bv32; + var Gamma_$load$18: bool; + var Gamma_$load$19: bool; var arr$0_old: bv32; - var load18: bv64; - var load19: bv32; lmain: assume {:captureState "lmain"} true; R31, Gamma_R31 := bvadd64(R31, 18446744073709551600bv64), Gamma_R31; @@ -110,21 +110,21 @@ implementation main_1876() assume {:captureState "%000002da"} true; R0, Gamma_R0 := 65536bv64, true; call rely(); - load18, Gamma_load18 := memory_load64_le(mem, bvadd64(R0, 4080bv64)), (gamma_load64(Gamma_mem, bvadd64(R0, 4080bv64)) || L(mem, bvadd64(R0, 4080bv64))); - R0, Gamma_R0 := load18, Gamma_load18; - load19, Gamma_load19 := memory_load32_le(stack, bvadd64(R31, 12bv64)), gamma_load32(Gamma_stack, bvadd64(R31, 12bv64)); - R1, Gamma_R1 := zero_extend32_32(load19), Gamma_load19; + $load$18, Gamma_$load$18 := memory_load64_le(mem, bvadd64(R0, 4080bv64)), (gamma_load64(Gamma_mem, bvadd64(R0, 4080bv64)) || L(mem, bvadd64(R0, 4080bv64))); + R0, Gamma_R0 := $load$18, Gamma_$load$18; + $load$19, Gamma_$load$19 := memory_load32_le(stack, bvadd64(R31, 12bv64)), gamma_load32(Gamma_stack, bvadd64(R31, 12bv64)); + R1, Gamma_R1 := zero_extend32_32($load$19), Gamma_$load$19; call rely(); - arr$0_old := memory_load32_le(mem, bvadd64($arr_addr, 0bv64)); assert (L(mem, bvadd64(R0, 4bv64)) ==> Gamma_R1); + arr$0_old := memory_load32_le(mem, bvadd64($arr_addr, 0bv64)); mem, Gamma_mem := memory_store32_le(mem, bvadd64(R0, 4bv64), R1[32:0]), gamma_store32(Gamma_mem, bvadd64(R0, 4bv64), Gamma_R1); assert (arr$0_old == memory_load32_le(mem, bvadd64($arr_addr, 0bv64))); assume {:captureState "%000002f5"} true; R0, Gamma_R0 := 0bv64, true; R31, Gamma_R31 := bvadd64(R31, 16bv64), Gamma_R31; - goto main_1876_basil_return; - main_1876_basil_return: - assume {:captureState "main_1876_basil_return"} true; + goto main_basil_return; + main_basil_return: + assume {:captureState "main_basil_return"} true; return; } diff --git a/src/test/correct/basic_arrays_write/gcc_pic/basic_arrays_write.gts b/src/test/correct/basic_arrays_write/gcc_pic/basic_arrays_write.gts deleted file mode 100644 index 252649920..000000000 Binary files a/src/test/correct/basic_arrays_write/gcc_pic/basic_arrays_write.gts and /dev/null differ diff --git a/src/test/correct/basic_arrays_write/gcc_pic/basic_arrays_write.md5sum b/src/test/correct/basic_arrays_write/gcc_pic/basic_arrays_write.md5sum new file mode 100644 index 000000000..2fa4a668d --- /dev/null +++ b/src/test/correct/basic_arrays_write/gcc_pic/basic_arrays_write.md5sum @@ -0,0 +1,5 @@ +d170e2f7a82967edd19e0595dfd44674 correct/basic_arrays_write/gcc_pic/a.out +f1c897b3dc53805fa7f9c1fdb38d28b1 correct/basic_arrays_write/gcc_pic/basic_arrays_write.adt +2be63132251bd15af03299e548f001d6 correct/basic_arrays_write/gcc_pic/basic_arrays_write.bir +73c16396cf7a22fa6c2b04f59ffade19 correct/basic_arrays_write/gcc_pic/basic_arrays_write.relf +fc86f7f1115f61fc2c113e82b8d2ac4c correct/basic_arrays_write/gcc_pic/basic_arrays_write.gts diff --git a/src/test/correct/basic_arrays_write/gcc_pic/basic_arrays_write.relf b/src/test/correct/basic_arrays_write/gcc_pic/basic_arrays_write.relf deleted file mode 100644 index f5c608c22..000000000 --- a/src/test/correct/basic_arrays_write/gcc_pic/basic_arrays_write.relf +++ /dev/null @@ -1,122 +0,0 @@ - -Relocation section '.rela.dyn' at offset 0x460 contains 9 entries: - Offset Info Type Symbol's Value Symbol's Name + Addend -0000000000010d90 0000000000000403 R_AARCH64_RELATIVE 750 -0000000000010d98 0000000000000403 R_AARCH64_RELATIVE 700 -0000000000010fe8 0000000000000403 R_AARCH64_RELATIVE 754 -0000000000010ff0 0000000000000403 R_AARCH64_RELATIVE 11018 -0000000000011008 0000000000000403 R_AARCH64_RELATIVE 11008 -0000000000010fd0 0000000400000401 R_AARCH64_GLOB_DAT 0000000000000000 _ITM_deregisterTMCloneTable + 0 -0000000000010fd8 0000000500000401 R_AARCH64_GLOB_DAT 0000000000000000 __cxa_finalize@GLIBC_2.17 + 0 -0000000000010fe0 0000000600000401 R_AARCH64_GLOB_DAT 0000000000000000 __gmon_start__ + 0 -0000000000010ff8 0000000800000401 R_AARCH64_GLOB_DAT 0000000000000000 _ITM_registerTMCloneTable + 0 - -Relocation section '.rela.plt' at offset 0x538 contains 4 entries: - Offset Info Type Symbol's Value Symbol's Name + Addend -0000000000010fa8 0000000300000402 R_AARCH64_JUMP_SLOT 0000000000000000 __libc_start_main@GLIBC_2.34 + 0 -0000000000010fb0 0000000500000402 R_AARCH64_JUMP_SLOT 0000000000000000 __cxa_finalize@GLIBC_2.17 + 0 -0000000000010fb8 0000000600000402 R_AARCH64_JUMP_SLOT 0000000000000000 __gmon_start__ + 0 -0000000000010fc0 0000000700000402 R_AARCH64_JUMP_SLOT 0000000000000000 abort@GLIBC_2.17 + 0 - -Symbol table '.dynsym' contains 9 entries: - Num: Value Size Type Bind Vis Ndx Name - 0: 0000000000000000 0 NOTYPE LOCAL DEFAULT UND - 1: 0000000000000598 0 SECTION LOCAL DEFAULT 11 .init - 2: 0000000000011000 0 SECTION LOCAL DEFAULT 22 .data - 3: 0000000000000000 0 FUNC GLOBAL DEFAULT UND __libc_start_main@GLIBC_2.34 (2) - 4: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_deregisterTMCloneTable - 5: 0000000000000000 0 FUNC WEAK DEFAULT UND __cxa_finalize@GLIBC_2.17 (3) - 6: 0000000000000000 0 NOTYPE WEAK DEFAULT UND __gmon_start__ - 7: 0000000000000000 0 FUNC GLOBAL DEFAULT UND abort@GLIBC_2.17 (3) - 8: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_registerTMCloneTable - -Symbol table '.symtab' contains 88 entries: - Num: Value Size Type Bind Vis Ndx Name - 0: 0000000000000000 0 NOTYPE LOCAL DEFAULT UND - 1: 0000000000000238 0 SECTION LOCAL DEFAULT 1 .interp - 2: 0000000000000254 0 SECTION LOCAL DEFAULT 2 .note.gnu.build-id - 3: 0000000000000278 0 SECTION LOCAL DEFAULT 3 .note.ABI-tag - 4: 0000000000000298 0 SECTION LOCAL DEFAULT 4 .gnu.hash - 5: 00000000000002b8 0 SECTION LOCAL DEFAULT 5 .dynsym - 6: 0000000000000390 0 SECTION LOCAL DEFAULT 6 .dynstr - 7: 000000000000041e 0 SECTION LOCAL DEFAULT 7 .gnu.version - 8: 0000000000000430 0 SECTION LOCAL DEFAULT 8 .gnu.version_r - 9: 0000000000000460 0 SECTION LOCAL DEFAULT 9 .rela.dyn - 10: 0000000000000538 0 SECTION LOCAL DEFAULT 10 .rela.plt - 11: 0000000000000598 0 SECTION LOCAL DEFAULT 11 .init - 12: 00000000000005b0 0 SECTION LOCAL DEFAULT 12 .plt - 13: 0000000000000640 0 SECTION LOCAL DEFAULT 13 .text - 14: 0000000000000778 0 SECTION LOCAL DEFAULT 14 .fini - 15: 000000000000078c 0 SECTION LOCAL DEFAULT 15 .rodata - 16: 0000000000000790 0 SECTION LOCAL DEFAULT 16 .eh_frame_hdr - 17: 00000000000007d0 0 SECTION LOCAL DEFAULT 17 .eh_frame - 18: 0000000000010d90 0 SECTION LOCAL DEFAULT 18 .init_array - 19: 0000000000010d98 0 SECTION LOCAL DEFAULT 19 .fini_array - 20: 0000000000010da0 0 SECTION LOCAL DEFAULT 20 .dynamic - 21: 0000000000010f90 0 SECTION LOCAL DEFAULT 21 .got - 22: 0000000000011000 0 SECTION LOCAL DEFAULT 22 .data - 23: 0000000000011010 0 SECTION LOCAL DEFAULT 23 .bss - 24: 0000000000000000 0 SECTION LOCAL DEFAULT 24 .comment - 25: 0000000000000000 0 FILE LOCAL DEFAULT ABS Scrt1.o - 26: 0000000000000278 0 NOTYPE LOCAL DEFAULT 3 $d - 27: 0000000000000278 32 OBJECT LOCAL DEFAULT 3 __abi_tag - 28: 0000000000000640 0 NOTYPE LOCAL DEFAULT 13 $x - 29: 00000000000007e4 0 NOTYPE LOCAL DEFAULT 17 $d - 30: 000000000000078c 0 NOTYPE LOCAL DEFAULT 15 $d - 31: 0000000000000000 0 FILE LOCAL DEFAULT ABS crti.o - 32: 0000000000000674 0 NOTYPE LOCAL DEFAULT 13 $x - 33: 0000000000000674 20 FUNC LOCAL DEFAULT 13 call_weak_fn - 34: 0000000000000598 0 NOTYPE LOCAL DEFAULT 11 $x - 35: 0000000000000778 0 NOTYPE LOCAL DEFAULT 14 $x - 36: 0000000000000000 0 FILE LOCAL DEFAULT ABS crtn.o - 37: 00000000000005a8 0 NOTYPE LOCAL DEFAULT 11 $x - 38: 0000000000000784 0 NOTYPE LOCAL DEFAULT 14 $x - 39: 0000000000000000 0 FILE LOCAL DEFAULT ABS crtstuff.c - 40: 0000000000000690 0 NOTYPE LOCAL DEFAULT 13 $x - 41: 0000000000000690 0 FUNC LOCAL DEFAULT 13 deregister_tm_clones - 42: 00000000000006c0 0 FUNC LOCAL DEFAULT 13 register_tm_clones - 43: 0000000000011008 0 NOTYPE LOCAL DEFAULT 22 $d - 44: 0000000000000700 0 FUNC LOCAL DEFAULT 13 __do_global_dtors_aux - 45: 0000000000011010 1 OBJECT LOCAL DEFAULT 23 completed.0 - 46: 0000000000010d98 0 NOTYPE LOCAL DEFAULT 19 $d - 47: 0000000000010d98 0 OBJECT LOCAL DEFAULT 19 __do_global_dtors_aux_fini_array_entry - 48: 0000000000000750 0 FUNC LOCAL DEFAULT 13 frame_dummy - 49: 0000000000010d90 0 NOTYPE LOCAL DEFAULT 18 $d - 50: 0000000000010d90 0 OBJECT LOCAL DEFAULT 18 __frame_dummy_init_array_entry - 51: 00000000000007f8 0 NOTYPE LOCAL DEFAULT 17 $d - 52: 0000000000011010 0 NOTYPE LOCAL DEFAULT 23 $d - 53: 0000000000000000 0 FILE LOCAL DEFAULT ABS basic_arrays_write.c - 54: 0000000000011018 0 NOTYPE LOCAL DEFAULT 23 $d - 55: 0000000000000754 0 NOTYPE LOCAL DEFAULT 13 $x - 56: 0000000000000858 0 NOTYPE LOCAL DEFAULT 17 $d - 57: 0000000000000000 0 FILE LOCAL DEFAULT ABS crtstuff.c - 58: 0000000000000870 0 NOTYPE LOCAL DEFAULT 17 $d - 59: 0000000000000870 0 OBJECT LOCAL DEFAULT 17 __FRAME_END__ - 60: 0000000000000000 0 FILE LOCAL DEFAULT ABS - 61: 0000000000010da0 0 OBJECT LOCAL DEFAULT ABS _DYNAMIC - 62: 0000000000000790 0 NOTYPE LOCAL DEFAULT 16 __GNU_EH_FRAME_HDR - 63: 0000000000010fc8 0 OBJECT LOCAL DEFAULT ABS _GLOBAL_OFFSET_TABLE_ - 64: 00000000000005b0 0 NOTYPE LOCAL DEFAULT 12 $x - 65: 0000000000000000 0 FUNC GLOBAL DEFAULT UND __libc_start_main@GLIBC_2.34 - 66: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_deregisterTMCloneTable - 67: 0000000000011000 0 NOTYPE WEAK DEFAULT 22 data_start - 68: 0000000000011010 0 NOTYPE GLOBAL DEFAULT 23 __bss_start__ - 69: 0000000000000000 0 FUNC WEAK DEFAULT UND __cxa_finalize@GLIBC_2.17 - 70: 0000000000011020 0 NOTYPE GLOBAL DEFAULT 23 _bss_end__ - 71: 0000000000011010 0 NOTYPE GLOBAL DEFAULT 22 _edata - 72: 0000000000000778 0 FUNC GLOBAL HIDDEN 14 _fini - 73: 0000000000011020 0 NOTYPE GLOBAL DEFAULT 23 __bss_end__ - 74: 0000000000011000 0 NOTYPE GLOBAL DEFAULT 22 __data_start - 75: 0000000000000000 0 NOTYPE WEAK DEFAULT UND __gmon_start__ - 76: 0000000000011008 0 OBJECT GLOBAL HIDDEN 22 __dso_handle - 77: 0000000000000000 0 FUNC GLOBAL DEFAULT UND abort@GLIBC_2.17 - 78: 000000000000078c 4 OBJECT GLOBAL DEFAULT 15 _IO_stdin_used - 79: 0000000000011020 0 NOTYPE GLOBAL DEFAULT 23 _end - 80: 0000000000000640 52 FUNC GLOBAL DEFAULT 13 _start - 81: 0000000000011020 0 NOTYPE GLOBAL DEFAULT 23 __end__ - 82: 0000000000011010 0 NOTYPE GLOBAL DEFAULT 23 __bss_start - 83: 0000000000000754 36 FUNC GLOBAL DEFAULT 13 main - 84: 0000000000011018 8 OBJECT GLOBAL DEFAULT 23 arr - 85: 0000000000011010 0 OBJECT GLOBAL HIDDEN 22 __TMC_END__ - 86: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_registerTMCloneTable - 87: 0000000000000598 0 FUNC GLOBAL HIDDEN 11 _init diff --git a/src/test/correct/basic_arrays_write/gcc_pic/basic_arrays_write_gtirb.expected b/src/test/correct/basic_arrays_write/gcc_pic/basic_arrays_write_gtirb.expected index d38c45a05..cf130fd64 100644 --- a/src/test/correct/basic_arrays_write/gcc_pic/basic_arrays_write_gtirb.expected +++ b/src/test/correct/basic_arrays_write/gcc_pic/basic_arrays_write_gtirb.expected @@ -76,7 +76,7 @@ implementation {:extern} guarantee_reflexive() assert (memory_load32_le(mem, bvadd64($arr_addr, 0bv64)) == memory_load32_le(mem, bvadd64($arr_addr, 0bv64))); } -procedure main_1876(); +procedure main(); modifies Gamma_R0, Gamma_R1, Gamma_R31, Gamma_mem, Gamma_stack, R0, R1, R31, mem, stack; requires (Gamma_R0 == false); free requires (memory_load64_le(mem, 69632bv64) == 0bv64); @@ -96,35 +96,35 @@ procedure main_1876(); free ensures (memory_load64_le(mem, 69616bv64) == 69656bv64); free ensures (memory_load64_le(mem, 69640bv64) == 69640bv64); -implementation main_1876() +implementation main() { - var Gamma_load10: bool; - var Gamma_load11: bool; + var $load10: bv64; + var $load11: bv32; + var Gamma_$load10: bool; + var Gamma_$load11: bool; var arr$0_old: bv32; - var load10: bv64; - var load11: bv32; - main_1876__0__QDmuMUDLRx6nO2lgyEhfoQ: - assume {:captureState "main_1876__0__QDmuMUDLRx6nO2lgyEhfoQ"} true; + $main$__0__$QDmuMUDLRx6nO2lgyEhfoQ: + assume {:captureState "$main$__0__$QDmuMUDLRx6nO2lgyEhfoQ"} true; R31, Gamma_R31 := bvadd64(R31, 18446744073709551600bv64), Gamma_R31; stack, Gamma_stack := memory_store32_le(stack, bvadd64(R31, 12bv64), R0[32:0]), gamma_store32(Gamma_stack, bvadd64(R31, 12bv64), Gamma_R0); - assume {:captureState "1880_0"} true; + assume {:captureState "1880$0"} true; R0, Gamma_R0 := 65536bv64, true; call rely(); - load10, Gamma_load10 := memory_load64_le(mem, bvadd64(R0, 4080bv64)), (gamma_load64(Gamma_mem, bvadd64(R0, 4080bv64)) || L(mem, bvadd64(R0, 4080bv64))); - R0, Gamma_R0 := load10, Gamma_load10; - load11, Gamma_load11 := memory_load32_le(stack, bvadd64(R31, 12bv64)), gamma_load32(Gamma_stack, bvadd64(R31, 12bv64)); - R1, Gamma_R1 := zero_extend32_32(load11), Gamma_load11; + $load10, Gamma_$load10 := memory_load64_le(mem, bvadd64(R0, 4080bv64)), (gamma_load64(Gamma_mem, bvadd64(R0, 4080bv64)) || L(mem, bvadd64(R0, 4080bv64))); + R0, Gamma_R0 := $load10, Gamma_$load10; + $load11, Gamma_$load11 := memory_load32_le(stack, bvadd64(R31, 12bv64)), gamma_load32(Gamma_stack, bvadd64(R31, 12bv64)); + R1, Gamma_R1 := zero_extend32_32($load11), Gamma_$load11; call rely(); - arr$0_old := memory_load32_le(mem, bvadd64($arr_addr, 0bv64)); assert (L(mem, bvadd64(R0, 4bv64)) ==> Gamma_R1); + arr$0_old := memory_load32_le(mem, bvadd64($arr_addr, 0bv64)); mem, Gamma_mem := memory_store32_le(mem, bvadd64(R0, 4bv64), R1[32:0]), gamma_store32(Gamma_mem, bvadd64(R0, 4bv64), Gamma_R1); assert (arr$0_old == memory_load32_le(mem, bvadd64($arr_addr, 0bv64))); - assume {:captureState "1896_0"} true; + assume {:captureState "1896$0"} true; R0, Gamma_R0 := 0bv64, true; R31, Gamma_R31 := bvadd64(R31, 16bv64), Gamma_R31; - goto main_1876_basil_return; - main_1876_basil_return: - assume {:captureState "main_1876_basil_return"} true; + goto main_basil_return; + main_basil_return: + assume {:captureState "main_basil_return"} true; return; } diff --git a/src/test/correct/basic_assign_assign/clang/basic_assign_assign.adt b/src/test/correct/basic_assign_assign/clang/basic_assign_assign.adt deleted file mode 100644 index bc8c591f0..000000000 --- a/src/test/correct/basic_assign_assign/clang/basic_assign_assign.adt +++ /dev/null @@ -1,492 +0,0 @@ -Project(Attrs([Attr("filename","\"clang/basic_assign_assign.out\""), -Attr("image-specification","(declare abi (name str))\n(declare arch (name str))\n(declare base-address (addr int))\n(declare bias (off int))\n(declare bits (size int))\n(declare code-region (addr int) (size int) (off int))\n(declare code-start (addr int))\n(declare entry-point (addr int))\n(declare external-reference (addr int) (name str))\n(declare format (name str))\n(declare is-executable (flag bool))\n(declare is-little-endian (flag bool))\n(declare llvm:base-address (addr int))\n(declare llvm:code-entry (name str) (off int) (size int))\n(declare llvm:coff-import-library (name str))\n(declare llvm:coff-virtual-section-header (name str) (addr int) (size int))\n(declare llvm:elf-program-header (name str) (off int) (size int))\n(declare llvm:elf-program-header-flags (name str) (ld bool) (r bool) \n (w bool) (x bool))\n(declare llvm:elf-virtual-program-header (name str) (addr int) (size int))\n(declare llvm:entry-point (addr int))\n(declare llvm:macho-symbol (name str) (value int))\n(declare llvm:name-reference (at int) (name str))\n(declare llvm:relocation (at int) (addr int))\n(declare llvm:section-entry (name str) (addr int) (size int) (off int))\n(declare llvm:section-flags (name str) (r bool) (w bool) (x bool))\n(declare llvm:segment-command (name str) (off int) (size int))\n(declare llvm:segment-command-flags (name str) (r bool) (w bool) (x bool))\n(declare llvm:symbol-entry (name str) (addr int) (size int) (off int)\n (value int))\n(declare llvm:virtual-segment-command (name str) (addr int) (size int))\n(declare mapped (addr int) (size int) (off int))\n(declare named-region (addr int) (size int) (name str))\n(declare named-symbol (addr int) (name str))\n(declare require (name str))\n(declare section (addr int) (size int))\n(declare segment (addr int) (size int) (r bool) (w bool) (x bool))\n(declare subarch (name str))\n(declare symbol-chunk (addr int) (size int) (root int))\n(declare symbol-value (addr int) (value int))\n(declare system (name str))\n(declare vendor (name str))\n\n(abi unknown)\n(arch aarch64)\n(base-address 0)\n(bias 0)\n(bits 64)\n(code-region 1832 20 1832)\n(code-region 1536 296 1536)\n(code-region 1440 96 1440)\n(code-region 1408 24 1408)\n(code-start 1588)\n(code-start 1536)\n(code-start 1812)\n(entry-point 1536)\n(external-reference 69568 _ITM_deregisterTMCloneTable)\n(external-reference 69576 __cxa_finalize)\n(external-reference 69584 __gmon_start__)\n(external-reference 69600 _ITM_registerTMCloneTable)\n(external-reference 69632 __libc_start_main)\n(external-reference 69640 __cxa_finalize)\n(external-reference 69648 __gmon_start__)\n(external-reference 69656 abort)\n(format elf)\n(is-executable true)\n(is-little-endian true)\n(llvm:base-address 0)\n(llvm:code-entry abort 0 0)\n(llvm:code-entry __cxa_finalize 0 0)\n(llvm:code-entry __libc_start_main 0 0)\n(llvm:code-entry _init 1408 0)\n(llvm:code-entry main 1812 20)\n(llvm:code-entry _start 1536 52)\n(llvm:code-entry abort@GLIBC_2.17 0 0)\n(llvm:code-entry _fini 1832 0)\n(llvm:code-entry __cxa_finalize@GLIBC_2.17 0 0)\n(llvm:code-entry __libc_start_main@GLIBC_2.34 0 0)\n(llvm:code-entry frame_dummy 1808 0)\n(llvm:code-entry __do_global_dtors_aux 1728 0)\n(llvm:code-entry register_tm_clones 1664 0)\n(llvm:code-entry deregister_tm_clones 1616 0)\n(llvm:code-entry call_weak_fn 1588 20)\n(llvm:code-entry .fini 1832 20)\n(llvm:code-entry .text 1536 296)\n(llvm:code-entry .plt 1440 96)\n(llvm:code-entry .init 1408 24)\n(llvm:elf-program-header 08 3528 568)\n(llvm:elf-program-header 07 0 0)\n(llvm:elf-program-header 06 1856 60)\n(llvm:elf-program-header 05 596 68)\n(llvm:elf-program-header 04 3544 480)\n(llvm:elf-program-header 03 3528 616)\n(llvm:elf-program-header 02 0 2100)\n(llvm:elf-program-header 01 568 27)\n(llvm:elf-program-header 00 64 504)\n(llvm:elf-program-header-flags 08 false true false false)\n(llvm:elf-program-header-flags 07 false true true false)\n(llvm:elf-program-header-flags 06 false true false false)\n(llvm:elf-program-header-flags 05 false true false false)\n(llvm:elf-program-header-flags 04 false true true false)\n(llvm:elf-program-header-flags 03 true true true false)\n(llvm:elf-program-header-flags 02 true true false true)\n(llvm:elf-program-header-flags 01 false true false false)\n(llvm:elf-program-header-flags 00 false true false false)\n(llvm:elf-virtual-program-header 08 69064 568)\n(llvm:elf-virtual-program-header 07 0 0)\n(llvm:elf-virtual-program-header 06 1856 60)\n(llvm:elf-virtual-program-header 05 596 68)\n(llvm:elf-virtual-program-header 04 69080 480)\n(llvm:elf-virtual-program-header 03 69064 624)\n(llvm:elf-virtual-program-header 02 0 2100)\n(llvm:elf-virtual-program-header 01 568 27)\n(llvm:elf-virtual-program-header 00 64 504)\n(llvm:entry-point 1536)\n(llvm:name-reference 69656 abort)\n(llvm:name-reference 69648 __gmon_start__)\n(llvm:name-reference 69640 __cxa_finalize)\n(llvm:name-reference 69632 __libc_start_main)\n(llvm:name-reference 69600 _ITM_registerTMCloneTable)\n(llvm:name-reference 69584 __gmon_start__)\n(llvm:name-reference 69576 __cxa_finalize)\n(llvm:name-reference 69568 _ITM_deregisterTMCloneTable)\n(llvm:section-entry .shstrtab 0 259 6951)\n(llvm:section-entry .strtab 0 575 6376)\n(llvm:section-entry .symtab 0 2160 4216)\n(llvm:section-entry .comment 0 71 4144)\n(llvm:section-entry .bss 69680 8 4144)\n(llvm:section-entry .data 69664 16 4128)\n(llvm:section-entry .got.plt 69608 56 4072)\n(llvm:section-entry .got 69560 48 4024)\n(llvm:section-entry .dynamic 69080 480 3544)\n(llvm:section-entry .fini_array 69072 8 3536)\n(llvm:section-entry .init_array 69064 8 3528)\n(llvm:section-entry .eh_frame 1920 180 1920)\n(llvm:section-entry .eh_frame_hdr 1856 60 1856)\n(llvm:section-entry .rodata 1852 4 1852)\n(llvm:section-entry .fini 1832 20 1832)\n(llvm:section-entry .text 1536 296 1536)\n(llvm:section-entry .plt 1440 96 1440)\n(llvm:section-entry .init 1408 24 1408)\n(llvm:section-entry .rela.plt 1312 96 1312)\n(llvm:section-entry .rela.dyn 1120 192 1120)\n(llvm:section-entry .gnu.version_r 1072 48 1072)\n(llvm:section-entry .gnu.version 1054 18 1054)\n(llvm:section-entry .dynstr 912 141 912)\n(llvm:section-entry .dynsym 696 216 696)\n(llvm:section-entry .gnu.hash 664 28 664)\n(llvm:section-entry .note.ABI-tag 632 32 632)\n(llvm:section-entry .note.gnu.build-id 596 36 596)\n(llvm:section-entry .interp 568 27 568)\n(llvm:section-flags .shstrtab true false false)\n(llvm:section-flags .strtab true false false)\n(llvm:section-flags .symtab true false false)\n(llvm:section-flags .comment true false false)\n(llvm:section-flags .bss true true false)\n(llvm:section-flags .data true true false)\n(llvm:section-flags .got.plt true true false)\n(llvm:section-flags .got true true false)\n(llvm:section-flags .dynamic true true false)\n(llvm:section-flags .fini_array true true false)\n(llvm:section-flags .init_array true true false)\n(llvm:section-flags .eh_frame true false false)\n(llvm:section-flags .eh_frame_hdr true false false)\n(llvm:section-flags .rodata true false false)\n(llvm:section-flags .fini true false true)\n(llvm:section-flags .text true false true)\n(llvm:section-flags .plt true false true)\n(llvm:section-flags .init true false true)\n(llvm:section-flags .rela.plt true false false)\n(llvm:section-flags .rela.dyn true false false)\n(llvm:section-flags .gnu.version_r true false false)\n(llvm:section-flags .gnu.version true false false)\n(llvm:section-flags .dynstr true false false)\n(llvm:section-flags .dynsym true false false)\n(llvm:section-flags .gnu.hash true false false)\n(llvm:section-flags .note.ABI-tag true false false)\n(llvm:section-flags .note.gnu.build-id true false false)\n(llvm:section-flags .interp true false false)\n(llvm:symbol-entry abort 0 0 0 0)\n(llvm:symbol-entry __cxa_finalize 0 0 0 0)\n(llvm:symbol-entry __libc_start_main 0 0 0 0)\n(llvm:symbol-entry _init 1408 0 1408 1408)\n(llvm:symbol-entry main 1812 20 1812 1812)\n(llvm:symbol-entry _start 1536 52 1536 1536)\n(llvm:symbol-entry abort@GLIBC_2.17 0 0 0 0)\n(llvm:symbol-entry _fini 1832 0 1832 1832)\n(llvm:symbol-entry __cxa_finalize@GLIBC_2.17 0 0 0 0)\n(llvm:symbol-entry __libc_start_main@GLIBC_2.34 0 0 0 0)\n(llvm:symbol-entry frame_dummy 1808 0 1808 1808)\n(llvm:symbol-entry __do_global_dtors_aux 1728 0 1728 1728)\n(llvm:symbol-entry register_tm_clones 1664 0 1664 1664)\n(llvm:symbol-entry deregister_tm_clones 1616 0 1616 1616)\n(llvm:symbol-entry call_weak_fn 1588 20 1588 1588)\n(mapped 0 2100 0)\n(mapped 69064 616 3528)\n(named-region 0 2100 02)\n(named-region 69064 624 03)\n(named-region 568 27 .interp)\n(named-region 596 36 .note.gnu.build-id)\n(named-region 632 32 .note.ABI-tag)\n(named-region 664 28 .gnu.hash)\n(named-region 696 216 .dynsym)\n(named-region 912 141 .dynstr)\n(named-region 1054 18 .gnu.version)\n(named-region 1072 48 .gnu.version_r)\n(named-region 1120 192 .rela.dyn)\n(named-region 1312 96 .rela.plt)\n(named-region 1408 24 .init)\n(named-region 1440 96 .plt)\n(named-region 1536 296 .text)\n(named-region 1832 20 .fini)\n(named-region 1852 4 .rodata)\n(named-region 1856 60 .eh_frame_hdr)\n(named-region 1920 180 .eh_frame)\n(named-region 69064 8 .init_array)\n(named-region 69072 8 .fini_array)\n(named-region 69080 480 .dynamic)\n(named-region 69560 48 .got)\n(named-region 69608 56 .got.plt)\n(named-region 69664 16 .data)\n(named-region 69680 8 .bss)\n(named-region 0 71 .comment)\n(named-region 0 2160 .symtab)\n(named-region 0 575 .strtab)\n(named-region 0 259 .shstrtab)\n(named-symbol 1588 call_weak_fn)\n(named-symbol 1616 deregister_tm_clones)\n(named-symbol 1664 register_tm_clones)\n(named-symbol 1728 __do_global_dtors_aux)\n(named-symbol 1808 frame_dummy)\n(named-symbol 0 __libc_start_main@GLIBC_2.34)\n(named-symbol 0 __cxa_finalize@GLIBC_2.17)\n(named-symbol 1832 _fini)\n(named-symbol 0 abort@GLIBC_2.17)\n(named-symbol 1536 _start)\n(named-symbol 1812 main)\n(named-symbol 1408 _init)\n(named-symbol 0 __libc_start_main)\n(named-symbol 0 __cxa_finalize)\n(named-symbol 0 abort)\n(require libc.so.6)\n(section 568 27)\n(section 596 36)\n(section 632 32)\n(section 664 28)\n(section 696 216)\n(section 912 141)\n(section 1054 18)\n(section 1072 48)\n(section 1120 192)\n(section 1312 96)\n(section 1408 24)\n(section 1440 96)\n(section 1536 296)\n(section 1832 20)\n(section 1852 4)\n(section 1856 60)\n(section 1920 180)\n(section 69064 8)\n(section 69072 8)\n(section 69080 480)\n(section 69560 48)\n(section 69608 56)\n(section 69664 16)\n(section 69680 8)\n(section 0 71)\n(section 0 2160)\n(section 0 575)\n(section 0 259)\n(segment 0 2100 true false true)\n(segment 69064 624 true true false)\n(subarch v8)\n(symbol-chunk 1588 20 1588)\n(symbol-chunk 1536 52 1536)\n(symbol-chunk 1812 20 1812)\n(symbol-value 1588 1588)\n(symbol-value 1616 1616)\n(symbol-value 1664 1664)\n(symbol-value 1728 1728)\n(symbol-value 1808 1808)\n(symbol-value 1832 1832)\n(symbol-value 1536 1536)\n(symbol-value 1812 1812)\n(symbol-value 1408 1408)\n(symbol-value 0 0)\n(system \"\")\n(vendor \"\")\n"), -Attr("abi-name","\"aarch64-linux-gnu-elf\"")]), -Sections([Section(".shstrtab", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x00\x06\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x30\x1c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x38\x00\x09\x00\x40\x00\x1d\x00\x1c\x00\x06\x00\x00\x00\x04\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x04\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x34\x08\x00\x00\x00\x00\x00\x00\x34\x08\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x01\x00\x00\x00\x06\x00\x00\x00\xc8\x0d\x00\x00\x00\x00\x00\x00\xc8\x0d\x01\x00\x00\x00\x00\x00\xc8\x0d\x01"), -Section(".strtab", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x00\x06\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x30\x1c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x38\x00\x09\x00\x40\x00\x1d\x00\x1c\x00\x06\x00\x00\x00\x04\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x04\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x34\x08\x00\x00\x00\x00\x00\x00\x34\x08\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x01\x00\x00\x00\x06\x00\x00\x00\xc8\x0d\x00\x00\x00\x00\x00\x00\xc8\x0d\x01\x00\x00\x00\x00\x00\xc8\x0d\x01\x00\x00\x00\x00\x00\x68\x02\x00\x00\x00\x00\x00\x00\x70\x02\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x02\x00\x00\x00\x06\x00\x00\x00\xd8\x0d\x00\x00\x00\x00\x00\x00\xd8\x0d\x01\x00\x00\x00\x00\x00\xd8\x0d\x01\x00\x00\x00\x00\x00\xe0\x01\x00\x00\x00\x00\x00\x00\xe0\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x04\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x50\xe5\x74\x64\x04\x00\x00\x00\x40\x07\x00\x00\x00\x00\x00\x00\x40\x07\x00\x00\x00\x00\x00\x00\x40\x07\x00\x00\x00\x00\x00\x00\x3c\x00\x00\x00\x00\x00\x00\x00\x3c\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x51\xe5\x74\x64\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x52\xe5\x74\x64\x04\x00\x00\x00\xc8\x0d\x00\x00\x00\x00\x00\x00\xc8\x0d\x01\x00\x00\x00\x00\x00\xc8\x0d\x01\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x2f\x6c\x69\x62\x2f\x6c\x64"), -Section(".comment", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x00\x06\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x30\x1c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x38\x00\x09\x00\x40\x00\x1d\x00\x1c\x00\x06\x00\x00\x00\x04\x00\x00"), -Section(".interp", 0x238, "\x2f\x6c\x69\x62\x2f\x6c\x64\x2d\x6c\x69\x6e\x75\x78\x2d\x61\x61\x72\x63\x68\x36\x34\x2e\x73\x6f\x2e\x31\x00"), -Section(".note.gnu.build-id", 0x254, "\x04\x00\x00\x00\x14\x00\x00\x00\x03\x00\x00\x00\x47\x4e\x55\x00\xda\x2c\x6b\xc6\xbe\x98\x9c\x25\x19\xc1\x9f\x28\x5e\x17\x3a\x50\xac\x29\x8f\xc5"), -Section(".note.ABI-tag", 0x278, "\x04\x00\x00\x00\x10\x00\x00\x00\x01\x00\x00\x00\x47\x4e\x55\x00\x00\x00\x00\x00\x03\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00"), -Section(".gnu.hash", 0x298, "\x01\x00\x00\x00\x01\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".dynsym", 0x2B8, "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x0b\x00\x80\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x17\x00\x20\x10\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x48\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x22\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x22\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x73\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".dynstr", 0x390, "\x00\x5f\x5f\x63\x78\x61\x5f\x66\x69\x6e\x61\x6c\x69\x7a\x65\x00\x5f\x5f\x6c\x69\x62\x63\x5f\x73\x74\x61\x72\x74\x5f\x6d\x61\x69\x6e\x00\x61\x62\x6f\x72\x74\x00\x6c\x69\x62\x63\x2e\x73\x6f\x2e\x36\x00\x47\x4c\x49\x42\x43\x5f\x32\x2e\x31\x37\x00\x47\x4c\x49\x42\x43\x5f\x32\x2e\x33\x34\x00\x5f\x49\x54\x4d\x5f\x64\x65\x72\x65\x67\x69\x73\x74\x65\x72\x54\x4d\x43\x6c\x6f\x6e\x65\x54\x61\x62\x6c\x65\x00\x5f\x5f\x67\x6d\x6f\x6e\x5f\x73\x74\x61\x72\x74\x5f\x5f\x00\x5f\x49\x54\x4d\x5f\x72\x65\x67\x69\x73\x74\x65\x72\x54\x4d\x43\x6c\x6f\x6e\x65\x54\x61\x62\x6c\x65\x00"), -Section(".gnu.version", 0x41E, "\x00\x00\x00\x00\x00\x00\x02\x00\x01\x00\x03\x00\x01\x00\x03\x00\x01\x00"), -Section(".gnu.version_r", 0x430, "\x01\x00\x02\x00\x28\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x97\x91\x96\x06\x00\x00\x03\x00\x32\x00\x00\x00\x10\x00\x00\x00\xb4\x91\x96\x06\x00\x00\x02\x00\x3d\x00\x00\x00\x00\x00\x00\x00"), -Section(".rela.dyn", 0x460, "\xc8\x0d\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x10\x07\x00\x00\x00\x00\x00\x00\xd0\x0d\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\xc0\x06\x00\x00\x00\x00\x00\x00\xd8\x0f\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x14\x07\x00\x00\x00\x00\x00\x00\x28\x10\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x28\x10\x01\x00\x00\x00\x00\x00\xc0\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xc8\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xd0\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe0\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".rela.plt", 0x520, "\x00\x10\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x08\x10\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x10\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x18\x10\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".init", 0x580, "\x1f\x20\x03\xd5\xfd\x7b\xbf\xa9\xfd\x03\x00\x91\x2a\x00\x00\x94\xfd\x7b\xc1\xa8\xc0\x03\x5f\xd6"), -Section(".plt", 0x5A0, "\xf0\x7b\xbf\xa9\x90\x00\x00\x90\x11\xfe\x47\xf9\x10\xe2\x3f\x91\x20\x02\x1f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x90\x00\x00\xb0\x11\x02\x40\xf9\x10\x02\x00\x91\x20\x02\x1f\xd6\x90\x00\x00\xb0\x11\x06\x40\xf9\x10\x22\x00\x91\x20\x02\x1f\xd6\x90\x00\x00\xb0\x11\x0a\x40\xf9\x10\x42\x00\x91\x20\x02\x1f\xd6\x90\x00\x00\xb0\x11\x0e\x40\xf9\x10\x62\x00\x91\x20\x02\x1f\xd6"), -Section(".text", 0x600, "\x1f\x20\x03\xd5\x1d\x00\x80\xd2\x1e\x00\x80\xd2\xe5\x03\x00\xaa\xe1\x03\x40\xf9\xe2\x23\x00\x91\xe6\x03\x00\x91\x80\x00\x00\x90\x00\xec\x47\xf9\x03\x00\x80\xd2\x04\x00\x80\xd2\xe5\xff\xff\x97\xf0\xff\xff\x97\x80\x00\x00\x90\x00\xe8\x47\xf9\x40\x00\x00\xb4\xe8\xff\xff\x17\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x80\x00\x00\xb0\x00\xc0\x00\x91\x81\x00\x00\xb0\x21\xc0\x00\x91\x3f\x00\x00\xeb\xc0\x00\x00\x54\x81\x00\x00\x90\x21\xe0\x47\xf9\x61\x00\x00\xb4\xf0\x03\x01\xaa\x00\x02\x1f\xd6\xc0\x03\x5f\xd6\x80\x00\x00\xb0\x00\xc0\x00\x91\x81\x00\x00\xb0\x21\xc0\x00\x91\x21\x00\x00\xcb\x22\xfc\x7f\xd3\x41\x0c\x81\x8b\x21\xfc\x41\x93\xc1\x00\x00\xb4\x82\x00\x00\x90\x42\xf0\x47\xf9\x62\x00\x00\xb4\xf0\x03\x02\xaa\x00\x02\x1f\xd6\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\xfd\x7b\xbe\xa9\xfd\x03\x00\x91\xf3\x0b\x00\xf9\x93\x00\x00\xb0\x60\xc2\x40\x39\x40\x01\x00\x35\x80\x00\x00\x90\x00\xe4\x47\xf9\x80\x00\x00\xb4\x80\x00\x00\xb0\x00\x14\x40\xf9\xb9\xff\xff\x97\xd8\xff\xff\x97\x20\x00\x80\x52\x60\xc2\x00\x39\xf3\x0b\x40\xf9\xfd\x7b\xc2\xa8\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\xdc\xff\xff\x17\x89\x00\x00\xb0\xa8\x00\x80\x52\x28\x35\x00\xb9\xe0\x03\x1f\x2a\xc0\x03\x5f\xd6"), -Section(".fini", 0x728, "\x1f\x20\x03\xd5\xfd\x7b\xbf\xa9\xfd\x03\x00\x91\xfd\x7b\xc1\xa8\xc0\x03\x5f\xd6"), -Section(".rodata", 0x73C, "\x01\x00\x02\x00"), -Section(".eh_frame_hdr", 0x740, "\x01\x1b\x03\x3b\x3c\x00\x00\x00\x06\x00\x00\x00\xc0\xfe\xff\xff\x54\x00\x00\x00\x10\xff\xff\xff\x68\x00\x00\x00\x40\xff\xff\xff\x7c\x00\x00\x00\x80\xff\xff\xff\x90\x00\x00\x00\xd0\xff\xff\xff\xb4\x00\x00\x00\xd4\xff\xff\xff\xdc\x00\x00\x00"), -Section(".eh_frame", 0x780, "\x10\x00\x00\x00\x00\x00\x00\x00\x01\x7a\x52\x00\x04\x78\x1e\x01\x1b\x0c\x1f\x00\x10\x00\x00\x00\x18\x00\x00\x00\x64\xfe\xff\xff\x34\x00\x00\x00\x00\x41\x07\x1e\x10\x00\x00\x00\x2c\x00\x00\x00\xa0\xfe\xff\xff\x30\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x40\x00\x00\x00\xbc\xfe\xff\xff\x3c\x00\x00\x00\x00\x00\x00\x00\x20\x00\x00\x00\x54\x00\x00\x00\xe8\xfe\xff\xff\x48\x00\x00\x00\x00\x41\x0e\x20\x9d\x04\x9e\x03\x42\x93\x02\x4e\xde\xdd\xd3\x0e\x00\x00\x00\x00\x10\x00\x00\x00\x78\x00\x00\x00\x14\xff\xff\xff\x04\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x01\x7a\x52\x00\x01\x7c\x1e\x01\x1b\x0c\x1f\x00\x10\x00\x00\x00\x18\x00\x00\x00\xf0\xfe\xff\xff\x14\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".fini_array", 0x10DD0, "\xc0\x06\x00\x00\x00\x00\x00\x00"), -Section(".dynamic", 0x10DD8, "\x01\x00\x00\x00\x00\x00\x00\x00\x28\x00\x00\x00\x00\x00\x00\x00\x0c\x00\x00\x00\x00\x00\x00\x00\x80\x05\x00\x00\x00\x00\x00\x00\x0d\x00\x00\x00\x00\x00\x00\x00\x28\x07\x00\x00\x00\x00\x00\x00\x19\x00\x00\x00\x00\x00\x00\x00\xc8\x0d\x01\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x1a\x00\x00\x00\x00\x00\x00\x00\xd0\x0d\x01\x00\x00\x00\x00\x00\x1c\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\xf5\xfe\xff\x6f\x00\x00\x00\x00\x98\x02\x00\x00\x00\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x90\x03\x00\x00\x00\x00\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\xb8\x02\x00\x00\x00\x00\x00\x00\x0a\x00\x00\x00\x00\x00\x00\x00\x8d\x00\x00\x00\x00\x00\x00\x00\x0b\x00\x00\x00\x00\x00\x00\x00\x18\x00\x00\x00\x00\x00\x00\x00\x15\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\xe8\x0f\x01\x00\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x60\x00\x00\x00\x00\x00\x00\x00\x14\x00\x00\x00\x00\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x17\x00\x00\x00\x00\x00\x00\x00\x20\x05\x00\x00\x00\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x60\x04\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\xc0\x00\x00\x00\x00\x00\x00\x00\x09\x00\x00\x00\x00\x00\x00\x00\x18\x00\x00\x00\x00\x00\x00\x00\xfb\xff\xff\x6f\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\xfe\xff\xff\x6f\x00\x00\x00\x00\x30\x04\x00\x00\x00\x00\x00\x00\xff\xff\xff\x6f\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\xf0\xff\xff\x6f\x00\x00\x00\x00\x1e\x04\x00\x00\x00\x00\x00\x00\xf9\xff\xff\x6f\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".init_array", 0x10DC8, "\x10\x07\x00\x00\x00\x00\x00\x00"), -Section(".got", 0x10FB8, "\xd8\x0d\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x14\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".got.plt", 0x10FE8, "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xa0\x05\x00\x00\x00\x00\x00\x00\xa0\x05\x00\x00\x00\x00\x00\x00\xa0\x05\x00\x00\x00\x00\x00\x00\xa0\x05\x00\x00\x00\x00\x00\x00"), -Section(".data", 0x11020, "\x00\x00\x00\x00\x00\x00\x00\x00\x28\x10\x01\x00\x00\x00\x00\x00")]), -Memmap([Annotation(Region(0x0,0x833), Attr("segment","02 0 2100")), -Annotation(Region(0x600,0x633), Attr("symbol","\"_start\"")), -Annotation(Region(0x0,0x102), Attr("section","\".shstrtab\"")), -Annotation(Region(0x0,0x23E), Attr("section","\".strtab\"")), -Annotation(Region(0x0,0x46), Attr("section","\".comment\"")), -Annotation(Region(0x238,0x252), Attr("section","\".interp\"")), -Annotation(Region(0x254,0x277), Attr("section","\".note.gnu.build-id\"")), -Annotation(Region(0x278,0x297), Attr("section","\".note.ABI-tag\"")), -Annotation(Region(0x298,0x2B3), Attr("section","\".gnu.hash\"")), -Annotation(Region(0x2B8,0x38F), Attr("section","\".dynsym\"")), -Annotation(Region(0x390,0x41C), Attr("section","\".dynstr\"")), -Annotation(Region(0x41E,0x42F), Attr("section","\".gnu.version\"")), -Annotation(Region(0x430,0x45F), Attr("section","\".gnu.version_r\"")), -Annotation(Region(0x460,0x51F), Attr("section","\".rela.dyn\"")), -Annotation(Region(0x520,0x57F), Attr("section","\".rela.plt\"")), -Annotation(Region(0x580,0x597), Attr("section","\".init\"")), -Annotation(Region(0x5A0,0x5FF), Attr("section","\".plt\"")), -Annotation(Region(0x580,0x597), Attr("code-region","()")), -Annotation(Region(0x5A0,0x5FF), Attr("code-region","()")), -Annotation(Region(0x600,0x633), Attr("symbol-info","_start 0x600 52")), -Annotation(Region(0x634,0x647), Attr("symbol","\"call_weak_fn\"")), -Annotation(Region(0x634,0x647), Attr("symbol-info","call_weak_fn 0x634 20")), -Annotation(Region(0x600,0x727), Attr("section","\".text\"")), -Annotation(Region(0x600,0x727), Attr("code-region","()")), -Annotation(Region(0x714,0x727), Attr("symbol","\"main\"")), -Annotation(Region(0x714,0x727), Attr("symbol-info","main 0x714 20")), -Annotation(Region(0x728,0x73B), Attr("section","\".fini\"")), -Annotation(Region(0x728,0x73B), Attr("code-region","()")), -Annotation(Region(0x73C,0x73F), Attr("section","\".rodata\"")), -Annotation(Region(0x740,0x77B), Attr("section","\".eh_frame_hdr\"")), -Annotation(Region(0x780,0x833), Attr("section","\".eh_frame\"")), -Annotation(Region(0x10DC8,0x1102F), Attr("segment","03 0x10DC8 624")), -Annotation(Region(0x10DD0,0x10DD7), Attr("section","\".fini_array\"")), -Annotation(Region(0x10DD8,0x10FB7), Attr("section","\".dynamic\"")), -Annotation(Region(0x10DC8,0x10DCF), Attr("section","\".init_array\"")), -Annotation(Region(0x10FB8,0x10FE7), Attr("section","\".got\"")), -Annotation(Region(0x10FE8,0x1101F), Attr("section","\".got.plt\"")), -Annotation(Region(0x11020,0x1102F), Attr("section","\".data\""))]), -Program(Tid(1_417, "%00000589"), Attrs([]), - Subs([Sub(Tid(1_367, "@__cxa_finalize"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x5D0"), -Attr("stub","()")]), "__cxa_finalize", Args([Arg(Tid(1_418, "%0000058a"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("__cxa_finalize_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(785, "@__cxa_finalize"), - Attrs([Attr("address","0x5D0")]), Phis([]), -Defs([Def(Tid(1_033, "%00000409"), Attrs([Attr("address","0x5D0"), -Attr("insn","adrp x16, #69632")]), Var("R16",Imm(64)), Int(69632,64)), -Def(Tid(1_040, "%00000410"), Attrs([Attr("address","0x5D4"), -Attr("insn","ldr x17, [x16, #0x8]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(1_046, "%00000416"), Attrs([Attr("address","0x5D8"), -Attr("insn","add x16, x16, #0x8")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(8,64)))]), Jmps([Call(Tid(1_051, "%0000041b"), - Attrs([Attr("address","0x5DC"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), -Sub(Tid(1_368, "@__do_global_dtors_aux"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x6C0")]), - "__do_global_dtors_aux", Args([Arg(Tid(1_419, "%0000058b"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("__do_global_dtors_aux_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(610, "@__do_global_dtors_aux"), - Attrs([Attr("address","0x6C0")]), Phis([]), Defs([Def(Tid(614, "%00000266"), - Attrs([Attr("address","0x6C0"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("#3",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(18446744073709551584,64))), -Def(Tid(620, "%0000026c"), Attrs([Attr("address","0x6C0"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("#3",Imm(64)),Var("R29",Imm(64)),LittleEndian(),64)), -Def(Tid(626, "%00000272"), Attrs([Attr("address","0x6C0"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("#3",Imm(64)),Int(8,64)),Var("R30",Imm(64)),LittleEndian(),64)), -Def(Tid(630, "%00000276"), Attrs([Attr("address","0x6C0"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("R31",Imm(64)), -Var("#3",Imm(64))), Def(Tid(636, "%0000027c"), - Attrs([Attr("address","0x6C4"), Attr("insn","mov x29, sp")]), - Var("R29",Imm(64)), Var("R31",Imm(64))), Def(Tid(644, "%00000284"), - Attrs([Attr("address","0x6C8"), Attr("insn","str x19, [sp, #0x10]")]), - Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(16,64)),Var("R19",Imm(64)),LittleEndian(),64)), -Def(Tid(649, "%00000289"), Attrs([Attr("address","0x6CC"), -Attr("insn","adrp x19, #69632")]), Var("R19",Imm(64)), Int(69632,64)), -Def(Tid(656, "%00000290"), Attrs([Attr("address","0x6D0"), -Attr("insn","ldrb w0, [x19, #0x30]")]), Var("R0",Imm(64)), -UNSIGNED(64,Load(Var("mem",Mem(64,8)),PLUS(Var("R19",Imm(64)),Int(48,64)),LittleEndian(),8)))]), -Jmps([Goto(Tid(663, "%00000297"), Attrs([Attr("address","0x6D4"), -Attr("insn","cbnz w0, #0x28")]), - NEQ(Extract(31,0,Var("R0",Imm(64))),Int(0,32)), -Direct(Tid(661, "%00000295"))), Goto(Tid(1_407, "%0000057f"), Attrs([]), - Int(1,1), Direct(Tid(730, "%000002da")))])), Blk(Tid(730, "%000002da"), - Attrs([Attr("address","0x6D8")]), Phis([]), Defs([Def(Tid(733, "%000002dd"), - Attrs([Attr("address","0x6D8"), Attr("insn","adrp x0, #65536")]), - Var("R0",Imm(64)), Int(65536,64)), Def(Tid(740, "%000002e4"), - Attrs([Attr("address","0x6DC"), Attr("insn","ldr x0, [x0, #0xfc8]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(4040,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(746, "%000002ea"), Attrs([Attr("address","0x6E0"), -Attr("insn","cbz x0, #0x10")]), EQ(Var("R0",Imm(64)),Int(0,64)), -Direct(Tid(744, "%000002e8"))), Goto(Tid(1_408, "%00000580"), Attrs([]), - Int(1,1), Direct(Tid(769, "%00000301")))])), Blk(Tid(769, "%00000301"), - Attrs([Attr("address","0x6E4")]), Phis([]), Defs([Def(Tid(772, "%00000304"), - Attrs([Attr("address","0x6E4"), Attr("insn","adrp x0, #69632")]), - Var("R0",Imm(64)), Int(69632,64)), Def(Tid(779, "%0000030b"), - Attrs([Attr("address","0x6E8"), Attr("insn","ldr x0, [x0, #0x28]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(40,64)),LittleEndian(),64)), -Def(Tid(784, "%00000310"), Attrs([Attr("address","0x6EC"), -Attr("insn","bl #-0x11c")]), Var("R30",Imm(64)), Int(1776,64))]), -Jmps([Call(Tid(787, "%00000313"), Attrs([Attr("address","0x6EC"), -Attr("insn","bl #-0x11c")]), Int(1,1), -(Direct(Tid(1_367, "@__cxa_finalize")),Direct(Tid(744, "%000002e8"))))])), -Blk(Tid(744, "%000002e8"), Attrs([Attr("address","0x6F0")]), Phis([]), -Defs([Def(Tid(752, "%000002f0"), Attrs([Attr("address","0x6F0"), -Attr("insn","bl #-0xa0")]), Var("R30",Imm(64)), Int(1780,64))]), -Jmps([Call(Tid(754, "%000002f2"), Attrs([Attr("address","0x6F0"), -Attr("insn","bl #-0xa0")]), Int(1,1), -(Direct(Tid(1_381, "@deregister_tm_clones")),Direct(Tid(756, "%000002f4"))))])), -Blk(Tid(756, "%000002f4"), Attrs([Attr("address","0x6F4")]), Phis([]), -Defs([Def(Tid(759, "%000002f7"), Attrs([Attr("address","0x6F4"), -Attr("insn","mov w0, #0x1")]), Var("R0",Imm(64)), Int(1,64)), -Def(Tid(767, "%000002ff"), Attrs([Attr("address","0x6F8"), -Attr("insn","strb w0, [x19, #0x30]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R19",Imm(64)),Int(48,64)),Extract(7,0,Var("R0",Imm(64))),LittleEndian(),8))]), -Jmps([Goto(Tid(1_409, "%00000581"), Attrs([]), Int(1,1), -Direct(Tid(661, "%00000295")))])), Blk(Tid(661, "%00000295"), - Attrs([Attr("address","0x6FC")]), Phis([]), Defs([Def(Tid(671, "%0000029f"), - Attrs([Attr("address","0x6FC"), Attr("insn","ldr x19, [sp, #0x10]")]), - Var("R19",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(16,64)),LittleEndian(),64)), -Def(Tid(678, "%000002a6"), Attrs([Attr("address","0x700"), -Attr("insn","ldp x29, x30, [sp], #0x20")]), Var("R29",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(683, "%000002ab"), Attrs([Attr("address","0x700"), -Attr("insn","ldp x29, x30, [sp], #0x20")]), Var("R30",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(687, "%000002af"), Attrs([Attr("address","0x700"), -Attr("insn","ldp x29, x30, [sp], #0x20")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(32,64)))]), Jmps([Call(Tid(692, "%000002b4"), - Attrs([Attr("address","0x704"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), Sub(Tid(1_372, "@__libc_start_main"), - Attrs([Attr("c.proto","signed (*)(signed (*)(signed , char** , char** );* main, signed , char** , \nvoid* auxv)"), -Attr("address","0x5C0"), Attr("stub","()")]), "__libc_start_main", - Args([Arg(Tid(1_420, "%0000058c"), - Attrs([Attr("c.layout","**[ : 64]"), -Attr("c.data","Top:u64 ptr ptr"), -Attr("c.type","signed (*)(signed , char** , char** );*")]), - Var("__libc_start_main_main",Imm(64)), Var("R0",Imm(64)), In()), -Arg(Tid(1_421, "%0000058d"), Attrs([Attr("c.layout","[signed : 32]"), -Attr("c.data","Top:u32"), Attr("c.type","signed")]), - Var("__libc_start_main_arg2",Imm(32)), LOW(32,Var("R1",Imm(64))), In()), -Arg(Tid(1_422, "%0000058e"), Attrs([Attr("c.layout","**[char : 8]"), -Attr("c.data","Top:u8 ptr ptr"), Attr("c.type","char**")]), - Var("__libc_start_main_arg3",Imm(64)), Var("R2",Imm(64)), Both()), -Arg(Tid(1_423, "%0000058f"), Attrs([Attr("c.layout","*[ : 8]"), -Attr("c.data","{} ptr"), Attr("c.type","void*")]), - Var("__libc_start_main_auxv",Imm(64)), Var("R3",Imm(64)), Both()), -Arg(Tid(1_424, "%00000590"), Attrs([Attr("c.layout","[signed : 32]"), -Attr("c.data","Top:u32"), Attr("c.type","signed")]), - Var("__libc_start_main_result",Imm(32)), LOW(32,Var("R0",Imm(64))), -Out())]), Blks([Blk(Tid(443, "@__libc_start_main"), - Attrs([Attr("address","0x5C0")]), Phis([]), -Defs([Def(Tid(1_011, "%000003f3"), Attrs([Attr("address","0x5C0"), -Attr("insn","adrp x16, #69632")]), Var("R16",Imm(64)), Int(69632,64)), -Def(Tid(1_018, "%000003fa"), Attrs([Attr("address","0x5C4"), -Attr("insn","ldr x17, [x16]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R16",Imm(64)),LittleEndian(),64)), -Def(Tid(1_024, "%00000400"), Attrs([Attr("address","0x5C8"), -Attr("insn","add x16, x16, #0x0")]), Var("R16",Imm(64)), -Var("R16",Imm(64)))]), Jmps([Call(Tid(1_029, "%00000405"), - Attrs([Attr("address","0x5CC"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), Sub(Tid(1_373, "@_fini"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x728")]), - "_fini", Args([Arg(Tid(1_425, "%00000591"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("_fini_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(31, "@_fini"), - Attrs([Attr("address","0x728")]), Phis([]), Defs([Def(Tid(37, "%00000025"), - Attrs([Attr("address","0x72C"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("#0",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(18446744073709551600,64))), -Def(Tid(43, "%0000002b"), Attrs([Attr("address","0x72C"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("#0",Imm(64)),Var("R29",Imm(64)),LittleEndian(),64)), -Def(Tid(49, "%00000031"), Attrs([Attr("address","0x72C"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("#0",Imm(64)),Int(8,64)),Var("R30",Imm(64)),LittleEndian(),64)), -Def(Tid(53, "%00000035"), Attrs([Attr("address","0x72C"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("R31",Imm(64)), -Var("#0",Imm(64))), Def(Tid(59, "%0000003b"), Attrs([Attr("address","0x730"), -Attr("insn","mov x29, sp")]), Var("R29",Imm(64)), Var("R31",Imm(64))), -Def(Tid(66, "%00000042"), Attrs([Attr("address","0x734"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R29",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(71, "%00000047"), Attrs([Attr("address","0x734"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R30",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(75, "%0000004b"), Attrs([Attr("address","0x734"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(16,64)))]), Jmps([Call(Tid(80, "%00000050"), - Attrs([Attr("address","0x738"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), Sub(Tid(1_374, "@_init"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x580")]), - "_init", Args([Arg(Tid(1_426, "%00000592"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("_init_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(1_204, "@_init"), - Attrs([Attr("address","0x580")]), Phis([]), -Defs([Def(Tid(1_210, "%000004ba"), Attrs([Attr("address","0x584"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("#5",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(18446744073709551600,64))), -Def(Tid(1_216, "%000004c0"), Attrs([Attr("address","0x584"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("#5",Imm(64)),Var("R29",Imm(64)),LittleEndian(),64)), -Def(Tid(1_222, "%000004c6"), Attrs([Attr("address","0x584"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("#5",Imm(64)),Int(8,64)),Var("R30",Imm(64)),LittleEndian(),64)), -Def(Tid(1_226, "%000004ca"), Attrs([Attr("address","0x584"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("R31",Imm(64)), -Var("#5",Imm(64))), Def(Tid(1_232, "%000004d0"), - Attrs([Attr("address","0x588"), Attr("insn","mov x29, sp")]), - Var("R29",Imm(64)), Var("R31",Imm(64))), Def(Tid(1_237, "%000004d5"), - Attrs([Attr("address","0x58C"), Attr("insn","bl #0xa8")]), - Var("R30",Imm(64)), Int(1424,64))]), Jmps([Call(Tid(1_239, "%000004d7"), - Attrs([Attr("address","0x58C"), Attr("insn","bl #0xa8")]), Int(1,1), -(Direct(Tid(1_379, "@call_weak_fn")),Direct(Tid(1_241, "%000004d9"))))])), -Blk(Tid(1_241, "%000004d9"), Attrs([Attr("address","0x590")]), Phis([]), -Defs([Def(Tid(1_246, "%000004de"), Attrs([Attr("address","0x590"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R29",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(1_251, "%000004e3"), Attrs([Attr("address","0x590"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R30",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(1_255, "%000004e7"), Attrs([Attr("address","0x590"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(16,64)))]), Jmps([Call(Tid(1_260, "%000004ec"), - Attrs([Attr("address","0x594"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), Sub(Tid(1_375, "@_start"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x600"), -Attr("stub","()"), Attr("entry-point","()")]), "_start", - Args([Arg(Tid(1_427, "%00000593"), Attrs([Attr("c.layout","[signed : 32]"), -Attr("c.data","Top:u32"), Attr("c.type","signed")]), - Var("_start_result",Imm(32)), LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(380, "@_start"), Attrs([Attr("address","0x600")]), Phis([]), -Defs([Def(Tid(385, "%00000181"), Attrs([Attr("address","0x604"), -Attr("insn","mov x29, #0x0")]), Var("R29",Imm(64)), Int(0,64)), -Def(Tid(390, "%00000186"), Attrs([Attr("address","0x608"), -Attr("insn","mov x30, #0x0")]), Var("R30",Imm(64)), Int(0,64)), -Def(Tid(396, "%0000018c"), Attrs([Attr("address","0x60C"), -Attr("insn","mov x5, x0")]), Var("R5",Imm(64)), Var("R0",Imm(64))), -Def(Tid(403, "%00000193"), Attrs([Attr("address","0x610"), -Attr("insn","ldr x1, [sp]")]), Var("R1",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(409, "%00000199"), Attrs([Attr("address","0x614"), -Attr("insn","add x2, sp, #0x8")]), Var("R2",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(8,64))), Def(Tid(415, "%0000019f"), - Attrs([Attr("address","0x618"), Attr("insn","mov x6, sp")]), - Var("R6",Imm(64)), Var("R31",Imm(64))), Def(Tid(420, "%000001a4"), - Attrs([Attr("address","0x61C"), Attr("insn","adrp x0, #65536")]), - Var("R0",Imm(64)), Int(65536,64)), Def(Tid(427, "%000001ab"), - Attrs([Attr("address","0x620"), Attr("insn","ldr x0, [x0, #0xfd8]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(4056,64)),LittleEndian(),64)), -Def(Tid(432, "%000001b0"), Attrs([Attr("address","0x624"), -Attr("insn","mov x3, #0x0")]), Var("R3",Imm(64)), Int(0,64)), -Def(Tid(437, "%000001b5"), Attrs([Attr("address","0x628"), -Attr("insn","mov x4, #0x0")]), Var("R4",Imm(64)), Int(0,64)), -Def(Tid(442, "%000001ba"), Attrs([Attr("address","0x62C"), -Attr("insn","bl #-0x6c")]), Var("R30",Imm(64)), Int(1584,64))]), -Jmps([Call(Tid(445, "%000001bd"), Attrs([Attr("address","0x62C"), -Attr("insn","bl #-0x6c")]), Int(1,1), -(Direct(Tid(1_372, "@__libc_start_main")),Direct(Tid(447, "%000001bf"))))])), -Blk(Tid(447, "%000001bf"), Attrs([Attr("address","0x630")]), Phis([]), -Defs([Def(Tid(450, "%000001c2"), Attrs([Attr("address","0x630"), -Attr("insn","bl #-0x40")]), Var("R30",Imm(64)), Int(1588,64))]), -Jmps([Call(Tid(453, "%000001c5"), Attrs([Attr("address","0x630"), -Attr("insn","bl #-0x40")]), Int(1,1), -(Direct(Tid(1_378, "@abort")),Direct(Tid(1_410, "%00000582"))))])), -Blk(Tid(1_410, "%00000582"), Attrs([]), Phis([]), Defs([]), -Jmps([Call(Tid(1_411, "%00000583"), Attrs([]), Int(1,1), -(Direct(Tid(1_379, "@call_weak_fn")),))]))])), Sub(Tid(1_378, "@abort"), - Attrs([Attr("noreturn","()"), Attr("c.proto","void (*)(void)"), -Attr("address","0x5F0"), Attr("stub","()")]), "abort", Args([]), -Blks([Blk(Tid(451, "@abort"), Attrs([Attr("address","0x5F0")]), Phis([]), -Defs([Def(Tid(1_077, "%00000435"), Attrs([Attr("address","0x5F0"), -Attr("insn","adrp x16, #69632")]), Var("R16",Imm(64)), Int(69632,64)), -Def(Tid(1_084, "%0000043c"), Attrs([Attr("address","0x5F4"), -Attr("insn","ldr x17, [x16, #0x18]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(24,64)),LittleEndian(),64)), -Def(Tid(1_090, "%00000442"), Attrs([Attr("address","0x5F8"), -Attr("insn","add x16, x16, #0x18")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(24,64)))]), Jmps([Call(Tid(1_095, "%00000447"), - Attrs([Attr("address","0x5FC"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), Sub(Tid(1_379, "@call_weak_fn"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x634")]), - "call_weak_fn", Args([Arg(Tid(1_428, "%00000594"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("call_weak_fn_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(455, "@call_weak_fn"), - Attrs([Attr("address","0x634")]), Phis([]), Defs([Def(Tid(458, "%000001ca"), - Attrs([Attr("address","0x634"), Attr("insn","adrp x0, #65536")]), - Var("R0",Imm(64)), Int(65536,64)), Def(Tid(465, "%000001d1"), - Attrs([Attr("address","0x638"), Attr("insn","ldr x0, [x0, #0xfd0]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(4048,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(471, "%000001d7"), Attrs([Attr("address","0x63C"), -Attr("insn","cbz x0, #0x8")]), EQ(Var("R0",Imm(64)),Int(0,64)), -Direct(Tid(469, "%000001d5"))), Goto(Tid(1_412, "%00000584"), Attrs([]), - Int(1,1), Direct(Tid(849, "%00000351")))])), Blk(Tid(469, "%000001d5"), - Attrs([Attr("address","0x644")]), Phis([]), Defs([]), -Jmps([Call(Tid(477, "%000001dd"), Attrs([Attr("address","0x644"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))])), -Blk(Tid(849, "%00000351"), Attrs([Attr("address","0x640")]), Phis([]), -Defs([]), Jmps([Goto(Tid(852, "%00000354"), Attrs([Attr("address","0x640"), -Attr("insn","b #-0x60")]), Int(1,1), Direct(Tid(850, "@__gmon_start__")))])), -Blk(Tid(850, "@__gmon_start__"), Attrs([Attr("address","0x5E0")]), Phis([]), -Defs([Def(Tid(1_055, "%0000041f"), Attrs([Attr("address","0x5E0"), -Attr("insn","adrp x16, #69632")]), Var("R16",Imm(64)), Int(69632,64)), -Def(Tid(1_062, "%00000426"), Attrs([Attr("address","0x5E4"), -Attr("insn","ldr x17, [x16, #0x10]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(16,64)),LittleEndian(),64)), -Def(Tid(1_068, "%0000042c"), Attrs([Attr("address","0x5E8"), -Attr("insn","add x16, x16, #0x10")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(16,64)))]), Jmps([Call(Tid(1_073, "%00000431"), - Attrs([Attr("address","0x5EC"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), -Sub(Tid(1_381, "@deregister_tm_clones"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x650")]), - "deregister_tm_clones", Args([Arg(Tid(1_429, "%00000595"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("deregister_tm_clones_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(483, "@deregister_tm_clones"), - Attrs([Attr("address","0x650")]), Phis([]), Defs([Def(Tid(486, "%000001e6"), - Attrs([Attr("address","0x650"), Attr("insn","adrp x0, #69632")]), - Var("R0",Imm(64)), Int(69632,64)), Def(Tid(492, "%000001ec"), - Attrs([Attr("address","0x654"), Attr("insn","add x0, x0, #0x30")]), - Var("R0",Imm(64)), PLUS(Var("R0",Imm(64)),Int(48,64))), -Def(Tid(497, "%000001f1"), Attrs([Attr("address","0x658"), -Attr("insn","adrp x1, #69632")]), Var("R1",Imm(64)), Int(69632,64)), -Def(Tid(503, "%000001f7"), Attrs([Attr("address","0x65C"), -Attr("insn","add x1, x1, #0x30")]), Var("R1",Imm(64)), -PLUS(Var("R1",Imm(64)),Int(48,64))), Def(Tid(509, "%000001fd"), - Attrs([Attr("address","0x660"), Attr("insn","cmp x1, x0")]), - Var("#1",Imm(64)), NOT(Var("R0",Imm(64)))), Def(Tid(514, "%00000202"), - Attrs([Attr("address","0x660"), Attr("insn","cmp x1, x0")]), - Var("#2",Imm(64)), PLUS(Var("R1",Imm(64)),NOT(Var("R0",Imm(64))))), -Def(Tid(520, "%00000208"), Attrs([Attr("address","0x660"), -Attr("insn","cmp x1, x0")]), Var("VF",Imm(1)), -NEQ(SIGNED(65,PLUS(Var("#2",Imm(64)),Int(1,64))),PLUS(PLUS(SIGNED(65,Var("R1",Imm(64))),SIGNED(65,Var("#1",Imm(64)))),Int(1,65)))), -Def(Tid(526, "%0000020e"), Attrs([Attr("address","0x660"), -Attr("insn","cmp x1, x0")]), Var("CF",Imm(1)), -NEQ(UNSIGNED(65,PLUS(Var("#2",Imm(64)),Int(1,64))),PLUS(PLUS(UNSIGNED(65,Var("R1",Imm(64))),UNSIGNED(65,Var("#1",Imm(64)))),Int(1,65)))), -Def(Tid(530, "%00000212"), Attrs([Attr("address","0x660"), -Attr("insn","cmp x1, x0")]), Var("ZF",Imm(1)), -EQ(PLUS(Var("#2",Imm(64)),Int(1,64)),Int(0,64))), Def(Tid(534, "%00000216"), - Attrs([Attr("address","0x660"), Attr("insn","cmp x1, x0")]), - Var("NF",Imm(1)), Extract(63,63,PLUS(Var("#2",Imm(64)),Int(1,64))))]), -Jmps([Goto(Tid(540, "%0000021c"), Attrs([Attr("address","0x664"), -Attr("insn","b.eq #0x18")]), EQ(Var("ZF",Imm(1)),Int(1,1)), -Direct(Tid(538, "%0000021a"))), Goto(Tid(1_413, "%00000585"), Attrs([]), - Int(1,1), Direct(Tid(819, "%00000333")))])), Blk(Tid(819, "%00000333"), - Attrs([Attr("address","0x668")]), Phis([]), Defs([Def(Tid(822, "%00000336"), - Attrs([Attr("address","0x668"), Attr("insn","adrp x1, #65536")]), - Var("R1",Imm(64)), Int(65536,64)), Def(Tid(829, "%0000033d"), - Attrs([Attr("address","0x66C"), Attr("insn","ldr x1, [x1, #0xfc0]")]), - Var("R1",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R1",Imm(64)),Int(4032,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(834, "%00000342"), Attrs([Attr("address","0x670"), -Attr("insn","cbz x1, #0xc")]), EQ(Var("R1",Imm(64)),Int(0,64)), -Direct(Tid(538, "%0000021a"))), Goto(Tid(1_414, "%00000586"), Attrs([]), - Int(1,1), Direct(Tid(838, "%00000346")))])), Blk(Tid(538, "%0000021a"), - Attrs([Attr("address","0x67C")]), Phis([]), Defs([]), -Jmps([Call(Tid(546, "%00000222"), Attrs([Attr("address","0x67C"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))])), -Blk(Tid(838, "%00000346"), Attrs([Attr("address","0x674")]), Phis([]), -Defs([Def(Tid(842, "%0000034a"), Attrs([Attr("address","0x674"), -Attr("insn","mov x16, x1")]), Var("R16",Imm(64)), Var("R1",Imm(64)))]), -Jmps([Call(Tid(847, "%0000034f"), Attrs([Attr("address","0x678"), -Attr("insn","br x16")]), Int(1,1), (Indirect(Var("R16",Imm(64))),))]))])), -Sub(Tid(1_384, "@frame_dummy"), Attrs([Attr("c.proto","signed (*)(void)"), -Attr("address","0x710")]), "frame_dummy", Args([Arg(Tid(1_430, "%00000596"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("frame_dummy_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(698, "@frame_dummy"), - Attrs([Attr("address","0x710")]), Phis([]), Defs([]), -Jmps([Call(Tid(700, "%000002bc"), Attrs([Attr("address","0x710"), -Attr("insn","b #-0x90")]), Int(1,1), -(Direct(Tid(1_386, "@register_tm_clones")),))]))])), Sub(Tid(1_385, "@main"), - Attrs([Attr("c.proto","signed (*)(signed argc, const char** argv)"), -Attr("address","0x714")]), "main", Args([Arg(Tid(1_431, "%00000597"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("main_argc",Imm(32)), -LOW(32,Var("R0",Imm(64))), In()), Arg(Tid(1_432, "%00000598"), - Attrs([Attr("c.layout","**[char : 8]"), Attr("c.data","Top:u8 ptr ptr"), -Attr("c.type"," const char**")]), Var("main_argv",Imm(64)), -Var("R1",Imm(64)), Both()), Arg(Tid(1_433, "%00000599"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("main_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(702, "@main"), - Attrs([Attr("address","0x714")]), Phis([]), Defs([Def(Tid(705, "%000002c1"), - Attrs([Attr("address","0x714"), Attr("insn","adrp x9, #69632")]), - Var("R9",Imm(64)), Int(69632,64)), Def(Tid(710, "%000002c6"), - Attrs([Attr("address","0x718"), Attr("insn","mov w8, #0x5")]), - Var("R8",Imm(64)), Int(5,64)), Def(Tid(718, "%000002ce"), - Attrs([Attr("address","0x71C"), Attr("insn","str w8, [x9, #0x34]")]), - Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R9",Imm(64)),Int(52,64)),Extract(31,0,Var("R8",Imm(64))),LittleEndian(),32)), -Def(Tid(723, "%000002d3"), Attrs([Attr("address","0x720"), -Attr("insn","mov w0, wzr")]), Var("R0",Imm(64)), Int(0,64))]), -Jmps([Call(Tid(728, "%000002d8"), Attrs([Attr("address","0x724"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))]))])), -Sub(Tid(1_386, "@register_tm_clones"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x680")]), - "register_tm_clones", Args([Arg(Tid(1_434, "%0000059a"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("register_tm_clones_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(548, "@register_tm_clones"), Attrs([Attr("address","0x680")]), - Phis([]), Defs([Def(Tid(551, "%00000227"), Attrs([Attr("address","0x680"), -Attr("insn","adrp x0, #69632")]), Var("R0",Imm(64)), Int(69632,64)), -Def(Tid(557, "%0000022d"), Attrs([Attr("address","0x684"), -Attr("insn","add x0, x0, #0x30")]), Var("R0",Imm(64)), -PLUS(Var("R0",Imm(64)),Int(48,64))), Def(Tid(562, "%00000232"), - Attrs([Attr("address","0x688"), Attr("insn","adrp x1, #69632")]), - Var("R1",Imm(64)), Int(69632,64)), Def(Tid(568, "%00000238"), - Attrs([Attr("address","0x68C"), Attr("insn","add x1, x1, #0x30")]), - Var("R1",Imm(64)), PLUS(Var("R1",Imm(64)),Int(48,64))), -Def(Tid(575, "%0000023f"), Attrs([Attr("address","0x690"), -Attr("insn","sub x1, x1, x0")]), Var("R1",Imm(64)), -PLUS(PLUS(Var("R1",Imm(64)),NOT(Var("R0",Imm(64)))),Int(1,64))), -Def(Tid(581, "%00000245"), Attrs([Attr("address","0x694"), -Attr("insn","lsr x2, x1, #63")]), Var("R2",Imm(64)), -Concat(Int(0,63),Extract(63,63,Var("R1",Imm(64))))), -Def(Tid(588, "%0000024c"), Attrs([Attr("address","0x698"), -Attr("insn","add x1, x2, x1, asr #3")]), Var("R1",Imm(64)), -PLUS(Var("R2",Imm(64)),ARSHIFT(Var("R1",Imm(64)),Int(3,3)))), -Def(Tid(594, "%00000252"), Attrs([Attr("address","0x69C"), -Attr("insn","asr x1, x1, #1")]), Var("R1",Imm(64)), -SIGNED(64,Extract(63,1,Var("R1",Imm(64)))))]), -Jmps([Goto(Tid(600, "%00000258"), Attrs([Attr("address","0x6A0"), -Attr("insn","cbz x1, #0x18")]), EQ(Var("R1",Imm(64)),Int(0,64)), -Direct(Tid(598, "%00000256"))), Goto(Tid(1_415, "%00000587"), Attrs([]), - Int(1,1), Direct(Tid(789, "%00000315")))])), Blk(Tid(789, "%00000315"), - Attrs([Attr("address","0x6A4")]), Phis([]), Defs([Def(Tid(792, "%00000318"), - Attrs([Attr("address","0x6A4"), Attr("insn","adrp x2, #65536")]), - Var("R2",Imm(64)), Int(65536,64)), Def(Tid(799, "%0000031f"), - Attrs([Attr("address","0x6A8"), Attr("insn","ldr x2, [x2, #0xfe0]")]), - Var("R2",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R2",Imm(64)),Int(4064,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(804, "%00000324"), Attrs([Attr("address","0x6AC"), -Attr("insn","cbz x2, #0xc")]), EQ(Var("R2",Imm(64)),Int(0,64)), -Direct(Tid(598, "%00000256"))), Goto(Tid(1_416, "%00000588"), Attrs([]), - Int(1,1), Direct(Tid(808, "%00000328")))])), Blk(Tid(598, "%00000256"), - Attrs([Attr("address","0x6B8")]), Phis([]), Defs([]), -Jmps([Call(Tid(606, "%0000025e"), Attrs([Attr("address","0x6B8"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))])), -Blk(Tid(808, "%00000328"), Attrs([Attr("address","0x6B0")]), Phis([]), -Defs([Def(Tid(812, "%0000032c"), Attrs([Attr("address","0x6B0"), -Attr("insn","mov x16, x2")]), Var("R16",Imm(64)), Var("R2",Imm(64)))]), -Jmps([Call(Tid(817, "%00000331"), Attrs([Attr("address","0x6B4"), -Attr("insn","br x16")]), Int(1,1), -(Indirect(Var("R16",Imm(64))),))]))]))]))) \ No newline at end of file diff --git a/src/test/correct/basic_assign_assign/clang/basic_assign_assign.bir b/src/test/correct/basic_assign_assign/clang/basic_assign_assign.bir deleted file mode 100644 index debd819cd..000000000 --- a/src/test/correct/basic_assign_assign/clang/basic_assign_assign.bir +++ /dev/null @@ -1,227 +0,0 @@ -00000589: program -00000557: sub __cxa_finalize(__cxa_finalize_result) -0000058a: __cxa_finalize_result :: out u32 = low:32[R0] - -00000311: -00000409: R16 := 0x11000 -00000410: R17 := mem[R16 + 8, el]:u64 -00000416: R16 := R16 + 8 -0000041b: call R17 with noreturn - -00000558: sub __do_global_dtors_aux(__do_global_dtors_aux_result) -0000058b: __do_global_dtors_aux_result :: out u32 = low:32[R0] - -00000262: -00000266: #3 := R31 - 0x20 -0000026c: mem := mem with [#3, el]:u64 <- R29 -00000272: mem := mem with [#3 + 8, el]:u64 <- R30 -00000276: R31 := #3 -0000027c: R29 := R31 -00000284: mem := mem with [R31 + 0x10, el]:u64 <- R19 -00000289: R19 := 0x11000 -00000290: R0 := pad:64[mem[R19 + 0x30]] -00000297: when 31:0[R0] <> 0 goto %00000295 -0000057f: goto %000002da - -000002da: -000002dd: R0 := 0x10000 -000002e4: R0 := mem[R0 + 0xFC8, el]:u64 -000002ea: when R0 = 0 goto %000002e8 -00000580: goto %00000301 - -00000301: -00000304: R0 := 0x11000 -0000030b: R0 := mem[R0 + 0x28, el]:u64 -00000310: R30 := 0x6F0 -00000313: call @__cxa_finalize with return %000002e8 - -000002e8: -000002f0: R30 := 0x6F4 -000002f2: call @deregister_tm_clones with return %000002f4 - -000002f4: -000002f7: R0 := 1 -000002ff: mem := mem with [R19 + 0x30] <- 7:0[R0] -00000581: goto %00000295 - -00000295: -0000029f: R19 := mem[R31 + 0x10, el]:u64 -000002a6: R29 := mem[R31, el]:u64 -000002ab: R30 := mem[R31 + 8, el]:u64 -000002af: R31 := R31 + 0x20 -000002b4: call R30 with noreturn - -0000055c: sub __libc_start_main(__libc_start_main_main, __libc_start_main_arg2, __libc_start_main_arg3, __libc_start_main_auxv, __libc_start_main_result) -0000058c: __libc_start_main_main :: in u64 = R0 -0000058d: __libc_start_main_arg2 :: in u32 = low:32[R1] -0000058e: __libc_start_main_arg3 :: in out u64 = R2 -0000058f: __libc_start_main_auxv :: in out u64 = R3 -00000590: __libc_start_main_result :: out u32 = low:32[R0] - -000001bb: -000003f3: R16 := 0x11000 -000003fa: R17 := mem[R16, el]:u64 -00000400: R16 := R16 -00000405: call R17 with noreturn - -0000055d: sub _fini(_fini_result) -00000591: _fini_result :: out u32 = low:32[R0] - -0000001f: -00000025: #0 := R31 - 0x10 -0000002b: mem := mem with [#0, el]:u64 <- R29 -00000031: mem := mem with [#0 + 8, el]:u64 <- R30 -00000035: R31 := #0 -0000003b: R29 := R31 -00000042: R29 := mem[R31, el]:u64 -00000047: R30 := mem[R31 + 8, el]:u64 -0000004b: R31 := R31 + 0x10 -00000050: call R30 with noreturn - -0000055e: sub _init(_init_result) -00000592: _init_result :: out u32 = low:32[R0] - -000004b4: -000004ba: #5 := R31 - 0x10 -000004c0: mem := mem with [#5, el]:u64 <- R29 -000004c6: mem := mem with [#5 + 8, el]:u64 <- R30 -000004ca: R31 := #5 -000004d0: R29 := R31 -000004d5: R30 := 0x590 -000004d7: call @call_weak_fn with return %000004d9 - -000004d9: -000004de: R29 := mem[R31, el]:u64 -000004e3: R30 := mem[R31 + 8, el]:u64 -000004e7: R31 := R31 + 0x10 -000004ec: call R30 with noreturn - -0000055f: sub _start(_start_result) -00000593: _start_result :: out u32 = low:32[R0] - -0000017c: -00000181: R29 := 0 -00000186: R30 := 0 -0000018c: R5 := R0 -00000193: R1 := mem[R31, el]:u64 -00000199: R2 := R31 + 8 -0000019f: R6 := R31 -000001a4: R0 := 0x10000 -000001ab: R0 := mem[R0 + 0xFD8, el]:u64 -000001b0: R3 := 0 -000001b5: R4 := 0 -000001ba: R30 := 0x630 -000001bd: call @__libc_start_main with return %000001bf - -000001bf: -000001c2: R30 := 0x634 -000001c5: call @abort with return %00000582 - -00000582: -00000583: call @call_weak_fn with noreturn - -00000562: sub abort() - - -000001c3: -00000435: R16 := 0x11000 -0000043c: R17 := mem[R16 + 0x18, el]:u64 -00000442: R16 := R16 + 0x18 -00000447: call R17 with noreturn - -00000563: sub call_weak_fn(call_weak_fn_result) -00000594: call_weak_fn_result :: out u32 = low:32[R0] - -000001c7: -000001ca: R0 := 0x10000 -000001d1: R0 := mem[R0 + 0xFD0, el]:u64 -000001d7: when R0 = 0 goto %000001d5 -00000584: goto %00000351 - -000001d5: -000001dd: call R30 with noreturn - -00000351: -00000354: goto @__gmon_start__ - -00000352: -0000041f: R16 := 0x11000 -00000426: R17 := mem[R16 + 0x10, el]:u64 -0000042c: R16 := R16 + 0x10 -00000431: call R17 with noreturn - -00000565: sub deregister_tm_clones(deregister_tm_clones_result) -00000595: deregister_tm_clones_result :: out u32 = low:32[R0] - -000001e3: -000001e6: R0 := 0x11000 -000001ec: R0 := R0 + 0x30 -000001f1: R1 := 0x11000 -000001f7: R1 := R1 + 0x30 -000001fd: #1 := ~R0 -00000202: #2 := R1 + ~R0 -00000208: VF := extend:65[#2 + 1] <> extend:65[R1] + extend:65[#1] + 1 -0000020e: CF := pad:65[#2 + 1] <> pad:65[R1] + pad:65[#1] + 1 -00000212: ZF := #2 + 1 = 0 -00000216: NF := 63:63[#2 + 1] -0000021c: when ZF goto %0000021a -00000585: goto %00000333 - -00000333: -00000336: R1 := 0x10000 -0000033d: R1 := mem[R1 + 0xFC0, el]:u64 -00000342: when R1 = 0 goto %0000021a -00000586: goto %00000346 - -0000021a: -00000222: call R30 with noreturn - -00000346: -0000034a: R16 := R1 -0000034f: call R16 with noreturn - -00000568: sub frame_dummy(frame_dummy_result) -00000596: frame_dummy_result :: out u32 = low:32[R0] - -000002ba: -000002bc: call @register_tm_clones with noreturn - -00000569: sub main(main_argc, main_argv, main_result) -00000597: main_argc :: in u32 = low:32[R0] -00000598: main_argv :: in out u64 = R1 -00000599: main_result :: out u32 = low:32[R0] - -000002be: -000002c1: R9 := 0x11000 -000002c6: R8 := 5 -000002ce: mem := mem with [R9 + 0x34, el]:u32 <- 31:0[R8] -000002d3: R0 := 0 -000002d8: call R30 with noreturn - -0000056a: sub register_tm_clones(register_tm_clones_result) -0000059a: register_tm_clones_result :: out u32 = low:32[R0] - -00000224: -00000227: R0 := 0x11000 -0000022d: R0 := R0 + 0x30 -00000232: R1 := 0x11000 -00000238: R1 := R1 + 0x30 -0000023f: R1 := R1 + ~R0 + 1 -00000245: R2 := 0.63:63[R1] -0000024c: R1 := R2 + (R1 ~>> 3) -00000252: R1 := extend:64[63:1[R1]] -00000258: when R1 = 0 goto %00000256 -00000587: goto %00000315 - -00000315: -00000318: R2 := 0x10000 -0000031f: R2 := mem[R2 + 0xFE0, el]:u64 -00000324: when R2 = 0 goto %00000256 -00000588: goto %00000328 - -00000256: -0000025e: call R30 with noreturn - -00000328: -0000032c: R16 := R2 -00000331: call R16 with noreturn diff --git a/src/test/correct/basic_assign_assign/clang/basic_assign_assign.expected b/src/test/correct/basic_assign_assign/clang/basic_assign_assign.expected index a6082769a..e0f272850 100644 --- a/src/test/correct/basic_assign_assign/clang/basic_assign_assign.expected +++ b/src/test/correct/basic_assign_assign/clang/basic_assign_assign.expected @@ -7,12 +7,16 @@ var {:extern} R8: bv64; var {:extern} R9: bv64; var {:extern} mem: [bv64]bv8; const {:extern} $x_addr: bv64; -axiom ($x_addr == 69684bv64); +axiom ($x_addr == 131092bv64); function {:extern} L(mem$in: [bv64]bv8, index: bv64) returns (bool) { (if (index == $x_addr) then true else false) } function {:extern} {:bvbuiltin "bvadd"} bvadd64(bv64, bv64) returns (bv64); +function {:extern} gamma_load64(gammaMap: [bv64]bool, index: bv64) returns (bool) { + (gammaMap[bvadd64(index, 7bv64)] && (gammaMap[bvadd64(index, 6bv64)] && (gammaMap[bvadd64(index, 5bv64)] && (gammaMap[bvadd64(index, 4bv64)] && (gammaMap[bvadd64(index, 3bv64)] && (gammaMap[bvadd64(index, 2bv64)] && (gammaMap[bvadd64(index, 1bv64)] && gammaMap[index]))))))) +} + function {:extern} gamma_store32(gammaMap: [bv64]bool, index: bv64, value: bool) returns ([bv64]bool) { gammaMap[index := value][bvadd64(index, 1bv64) := value][bvadd64(index, 2bv64) := value][bvadd64(index, 3bv64) := value] } @@ -33,11 +37,12 @@ procedure {:extern} rely(); modifies Gamma_mem, mem; ensures (forall i: bv64 :: (((mem[i] == old(mem[i])) ==> (Gamma_mem[i] == old(Gamma_mem[i]))))); ensures (((memory_load32_le(mem, $x_addr) == old(memory_load32_le(mem, $x_addr))) || (memory_load32_le(mem, $x_addr) == 1bv32)) || (memory_load32_le(mem, $x_addr) == 6bv32)); - free ensures (memory_load32_le(mem, 1852bv64) == 131073bv32); - free ensures (memory_load64_le(mem, 69064bv64) == 1808bv64); - free ensures (memory_load64_le(mem, 69072bv64) == 1728bv64); - free ensures (memory_load64_le(mem, 69592bv64) == 1812bv64); - free ensures (memory_load64_le(mem, 69672bv64) == 69672bv64); + free ensures (memory_load32_le(mem, 2304bv64) == 131073bv32); + free ensures (memory_load64_le(mem, 130432bv64) == 2256bv64); + free ensures (memory_load64_le(mem, 130440bv64) == 2176bv64); + free ensures (memory_load64_le(mem, 131040bv64) == 131092bv64); + free ensures (memory_load64_le(mem, 131056bv64) == 2260bv64); + free ensures (memory_load64_le(mem, 131080bv64) == 131080bv64); procedure {:extern} rely_transitive(); modifies Gamma_mem, mem; @@ -64,40 +69,47 @@ implementation {:extern} guarantee_reflexive() assert ((memory_load32_le(mem, $x_addr) == memory_load32_le(mem, $x_addr)) || (memory_load32_le(mem, $x_addr) == 5bv32)); } -procedure main_1812(); +procedure main(); modifies Gamma_R0, Gamma_R8, Gamma_R9, Gamma_mem, R0, R8, R9, mem; requires (memory_load32_le(mem, $x_addr) == 0bv32); - free requires (memory_load64_le(mem, 69664bv64) == 0bv64); - free requires (memory_load64_le(mem, 69672bv64) == 69672bv64); - free requires (memory_load32_le(mem, 1852bv64) == 131073bv32); - free requires (memory_load64_le(mem, 69064bv64) == 1808bv64); - free requires (memory_load64_le(mem, 69072bv64) == 1728bv64); - free requires (memory_load64_le(mem, 69592bv64) == 1812bv64); - free requires (memory_load64_le(mem, 69672bv64) == 69672bv64); + free requires (memory_load64_le(mem, 131072bv64) == 0bv64); + free requires (memory_load64_le(mem, 131080bv64) == 131080bv64); + free requires (memory_load32_le(mem, 2304bv64) == 131073bv32); + free requires (memory_load64_le(mem, 130432bv64) == 2256bv64); + free requires (memory_load64_le(mem, 130440bv64) == 2176bv64); + free requires (memory_load64_le(mem, 131040bv64) == 131092bv64); + free requires (memory_load64_le(mem, 131056bv64) == 2260bv64); + free requires (memory_load64_le(mem, 131080bv64) == 131080bv64); ensures ((memory_load32_le(mem, $x_addr) == 5bv32) || (memory_load32_le(mem, $x_addr) == 6bv32)); - free ensures (memory_load32_le(mem, 1852bv64) == 131073bv32); - free ensures (memory_load64_le(mem, 69064bv64) == 1808bv64); - free ensures (memory_load64_le(mem, 69072bv64) == 1728bv64); - free ensures (memory_load64_le(mem, 69592bv64) == 1812bv64); - free ensures (memory_load64_le(mem, 69672bv64) == 69672bv64); + free ensures (memory_load32_le(mem, 2304bv64) == 131073bv32); + free ensures (memory_load64_le(mem, 130432bv64) == 2256bv64); + free ensures (memory_load64_le(mem, 130440bv64) == 2176bv64); + free ensures (memory_load64_le(mem, 131040bv64) == 131092bv64); + free ensures (memory_load64_le(mem, 131056bv64) == 2260bv64); + free ensures (memory_load64_le(mem, 131080bv64) == 131080bv64); -implementation main_1812() +implementation main() { + var $load$18: bv64; + var Gamma_$load$18: bool; var x_old: bv32; lmain: assume {:captureState "lmain"} true; - R9, Gamma_R9 := 69632bv64, true; - R8, Gamma_R8 := 5bv64, true; + R8, Gamma_R8 := 126976bv64, true; + R9, Gamma_R9 := 5bv64, true; + R0, Gamma_R0 := 0bv64, true; call rely(); + $load$18, Gamma_$load$18 := memory_load64_le(mem, bvadd64(R8, 4064bv64)), (gamma_load64(Gamma_mem, bvadd64(R8, 4064bv64)) || L(mem, bvadd64(R8, 4064bv64))); + R8, Gamma_R8 := $load$18, Gamma_$load$18; + call rely(); + assert (L(mem, R8) ==> Gamma_R9); x_old := memory_load32_le(mem, $x_addr); - assert (L(mem, bvadd64(R9, 52bv64)) ==> Gamma_R8); - mem, Gamma_mem := memory_store32_le(mem, bvadd64(R9, 52bv64), R8[32:0]), gamma_store32(Gamma_mem, bvadd64(R9, 52bv64), Gamma_R8); + mem, Gamma_mem := memory_store32_le(mem, R8, R9[32:0]), gamma_store32(Gamma_mem, R8, Gamma_R9); assert ((memory_load32_le(mem, $x_addr) == x_old) || (memory_load32_le(mem, $x_addr) == 5bv32)); - assume {:captureState "%000002ce"} true; - R0, Gamma_R0 := 0bv64, true; - goto main_1812_basil_return; - main_1812_basil_return: - assume {:captureState "main_1812_basil_return"} true; + assume {:captureState "%0000028c"} true; + goto main_basil_return; + main_basil_return: + assume {:captureState "main_basil_return"} true; return; } diff --git a/src/test/correct/basic_assign_assign/clang/basic_assign_assign.gts b/src/test/correct/basic_assign_assign/clang/basic_assign_assign.gts deleted file mode 100644 index 5c865f24a..000000000 Binary files a/src/test/correct/basic_assign_assign/clang/basic_assign_assign.gts and /dev/null differ diff --git a/src/test/correct/basic_assign_assign/clang/basic_assign_assign.md5sum b/src/test/correct/basic_assign_assign/clang/basic_assign_assign.md5sum new file mode 100644 index 000000000..253bbd152 --- /dev/null +++ b/src/test/correct/basic_assign_assign/clang/basic_assign_assign.md5sum @@ -0,0 +1,5 @@ +83051939b2d0d31609916229d20ca32d correct/basic_assign_assign/clang/a.out +0638d1b55b0edda1de4194c69456c306 correct/basic_assign_assign/clang/basic_assign_assign.adt +02e5cf098d91b55c6cc5c2425b1aa7fd correct/basic_assign_assign/clang/basic_assign_assign.bir +2115105a2422276d79c45e44922105a9 correct/basic_assign_assign/clang/basic_assign_assign.relf +0167b0a70490ffd2d5eb184b702c7f02 correct/basic_assign_assign/clang/basic_assign_assign.gts diff --git a/src/test/correct/basic_assign_assign/clang/basic_assign_assign.relf b/src/test/correct/basic_assign_assign/clang/basic_assign_assign.relf deleted file mode 100644 index b80923def..000000000 --- a/src/test/correct/basic_assign_assign/clang/basic_assign_assign.relf +++ /dev/null @@ -1,123 +0,0 @@ - -Relocation section '.rela.dyn' at offset 0x460 contains 8 entries: - Offset Info Type Symbol's Value Symbol's Name + Addend -0000000000010dc8 0000000000000403 R_AARCH64_RELATIVE 710 -0000000000010dd0 0000000000000403 R_AARCH64_RELATIVE 6c0 -0000000000010fd8 0000000000000403 R_AARCH64_RELATIVE 714 -0000000000011028 0000000000000403 R_AARCH64_RELATIVE 11028 -0000000000010fc0 0000000400000401 R_AARCH64_GLOB_DAT 0000000000000000 _ITM_deregisterTMCloneTable + 0 -0000000000010fc8 0000000500000401 R_AARCH64_GLOB_DAT 0000000000000000 __cxa_finalize@GLIBC_2.17 + 0 -0000000000010fd0 0000000600000401 R_AARCH64_GLOB_DAT 0000000000000000 __gmon_start__ + 0 -0000000000010fe0 0000000800000401 R_AARCH64_GLOB_DAT 0000000000000000 _ITM_registerTMCloneTable + 0 - -Relocation section '.rela.plt' at offset 0x520 contains 4 entries: - Offset Info Type Symbol's Value Symbol's Name + Addend -0000000000011000 0000000300000402 R_AARCH64_JUMP_SLOT 0000000000000000 __libc_start_main@GLIBC_2.34 + 0 -0000000000011008 0000000500000402 R_AARCH64_JUMP_SLOT 0000000000000000 __cxa_finalize@GLIBC_2.17 + 0 -0000000000011010 0000000600000402 R_AARCH64_JUMP_SLOT 0000000000000000 __gmon_start__ + 0 -0000000000011018 0000000700000402 R_AARCH64_JUMP_SLOT 0000000000000000 abort@GLIBC_2.17 + 0 - -Symbol table '.dynsym' contains 9 entries: - Num: Value Size Type Bind Vis Ndx Name - 0: 0000000000000000 0 NOTYPE LOCAL DEFAULT UND - 1: 0000000000000580 0 SECTION LOCAL DEFAULT 11 .init - 2: 0000000000011020 0 SECTION LOCAL DEFAULT 23 .data - 3: 0000000000000000 0 FUNC GLOBAL DEFAULT UND __libc_start_main@GLIBC_2.34 (2) - 4: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_deregisterTMCloneTable - 5: 0000000000000000 0 FUNC WEAK DEFAULT UND __cxa_finalize@GLIBC_2.17 (3) - 6: 0000000000000000 0 NOTYPE WEAK DEFAULT UND __gmon_start__ - 7: 0000000000000000 0 FUNC GLOBAL DEFAULT UND abort@GLIBC_2.17 (3) - 8: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_registerTMCloneTable - -Symbol table '.symtab' contains 90 entries: - Num: Value Size Type Bind Vis Ndx Name - 0: 0000000000000000 0 NOTYPE LOCAL DEFAULT UND - 1: 0000000000000238 0 SECTION LOCAL DEFAULT 1 .interp - 2: 0000000000000254 0 SECTION LOCAL DEFAULT 2 .note.gnu.build-id - 3: 0000000000000278 0 SECTION LOCAL DEFAULT 3 .note.ABI-tag - 4: 0000000000000298 0 SECTION LOCAL DEFAULT 4 .gnu.hash - 5: 00000000000002b8 0 SECTION LOCAL DEFAULT 5 .dynsym - 6: 0000000000000390 0 SECTION LOCAL DEFAULT 6 .dynstr - 7: 000000000000041e 0 SECTION LOCAL DEFAULT 7 .gnu.version - 8: 0000000000000430 0 SECTION LOCAL DEFAULT 8 .gnu.version_r - 9: 0000000000000460 0 SECTION LOCAL DEFAULT 9 .rela.dyn - 10: 0000000000000520 0 SECTION LOCAL DEFAULT 10 .rela.plt - 11: 0000000000000580 0 SECTION LOCAL DEFAULT 11 .init - 12: 00000000000005a0 0 SECTION LOCAL DEFAULT 12 .plt - 13: 0000000000000600 0 SECTION LOCAL DEFAULT 13 .text - 14: 0000000000000728 0 SECTION LOCAL DEFAULT 14 .fini - 15: 000000000000073c 0 SECTION LOCAL DEFAULT 15 .rodata - 16: 0000000000000740 0 SECTION LOCAL DEFAULT 16 .eh_frame_hdr - 17: 0000000000000780 0 SECTION LOCAL DEFAULT 17 .eh_frame - 18: 0000000000010dc8 0 SECTION LOCAL DEFAULT 18 .init_array - 19: 0000000000010dd0 0 SECTION LOCAL DEFAULT 19 .fini_array - 20: 0000000000010dd8 0 SECTION LOCAL DEFAULT 20 .dynamic - 21: 0000000000010fb8 0 SECTION LOCAL DEFAULT 21 .got - 22: 0000000000010fe8 0 SECTION LOCAL DEFAULT 22 .got.plt - 23: 0000000000011020 0 SECTION LOCAL DEFAULT 23 .data - 24: 0000000000011030 0 SECTION LOCAL DEFAULT 24 .bss - 25: 0000000000000000 0 SECTION LOCAL DEFAULT 25 .comment - 26: 0000000000000000 0 FILE LOCAL DEFAULT ABS Scrt1.o - 27: 0000000000000278 0 NOTYPE LOCAL DEFAULT 3 $d - 28: 0000000000000278 32 OBJECT LOCAL DEFAULT 3 __abi_tag - 29: 0000000000000600 0 NOTYPE LOCAL DEFAULT 13 $x - 30: 0000000000000794 0 NOTYPE LOCAL DEFAULT 17 $d - 31: 000000000000073c 0 NOTYPE LOCAL DEFAULT 15 $d - 32: 0000000000000000 0 FILE LOCAL DEFAULT ABS crti.o - 33: 0000000000000634 0 NOTYPE LOCAL DEFAULT 13 $x - 34: 0000000000000634 20 FUNC LOCAL DEFAULT 13 call_weak_fn - 35: 0000000000000580 0 NOTYPE LOCAL DEFAULT 11 $x - 36: 0000000000000728 0 NOTYPE LOCAL DEFAULT 14 $x - 37: 0000000000000000 0 FILE LOCAL DEFAULT ABS crtn.o - 38: 0000000000000590 0 NOTYPE LOCAL DEFAULT 11 $x - 39: 0000000000000734 0 NOTYPE LOCAL DEFAULT 14 $x - 40: 0000000000000000 0 FILE LOCAL DEFAULT ABS crtstuff.c - 41: 0000000000000650 0 NOTYPE LOCAL DEFAULT 13 $x - 42: 0000000000000650 0 FUNC LOCAL DEFAULT 13 deregister_tm_clones - 43: 0000000000000680 0 FUNC LOCAL DEFAULT 13 register_tm_clones - 44: 0000000000011028 0 NOTYPE LOCAL DEFAULT 23 $d - 45: 00000000000006c0 0 FUNC LOCAL DEFAULT 13 __do_global_dtors_aux - 46: 0000000000011030 1 OBJECT LOCAL DEFAULT 24 completed.0 - 47: 0000000000010dd0 0 NOTYPE LOCAL DEFAULT 19 $d - 48: 0000000000010dd0 0 OBJECT LOCAL DEFAULT 19 __do_global_dtors_aux_fini_array_entry - 49: 0000000000000710 0 FUNC LOCAL DEFAULT 13 frame_dummy - 50: 0000000000010dc8 0 NOTYPE LOCAL DEFAULT 18 $d - 51: 0000000000010dc8 0 OBJECT LOCAL DEFAULT 18 __frame_dummy_init_array_entry - 52: 00000000000007a8 0 NOTYPE LOCAL DEFAULT 17 $d - 53: 0000000000011030 0 NOTYPE LOCAL DEFAULT 24 $d - 54: 0000000000000000 0 FILE LOCAL DEFAULT ABS basic_assign_assign.c - 55: 0000000000000714 0 NOTYPE LOCAL DEFAULT 13 $x.0 - 56: 0000000000011034 0 NOTYPE LOCAL DEFAULT 24 $d.1 - 57: 000000000000002a 0 NOTYPE LOCAL DEFAULT 25 $d.2 - 58: 0000000000000808 0 NOTYPE LOCAL DEFAULT 17 $d.3 - 59: 0000000000000000 0 FILE LOCAL DEFAULT ABS crtstuff.c - 60: 0000000000000830 0 NOTYPE LOCAL DEFAULT 17 $d - 61: 0000000000000830 0 OBJECT LOCAL DEFAULT 17 __FRAME_END__ - 62: 0000000000000000 0 FILE LOCAL DEFAULT ABS - 63: 0000000000010dd8 0 OBJECT LOCAL DEFAULT ABS _DYNAMIC - 64: 0000000000000740 0 NOTYPE LOCAL DEFAULT 16 __GNU_EH_FRAME_HDR - 65: 0000000000010fb8 0 OBJECT LOCAL DEFAULT ABS _GLOBAL_OFFSET_TABLE_ - 66: 00000000000005a0 0 NOTYPE LOCAL DEFAULT 12 $x - 67: 0000000000000000 0 FUNC GLOBAL DEFAULT UND __libc_start_main@GLIBC_2.34 - 68: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_deregisterTMCloneTable - 69: 0000000000011020 0 NOTYPE WEAK DEFAULT 23 data_start - 70: 0000000000011030 0 NOTYPE GLOBAL DEFAULT 24 __bss_start__ - 71: 0000000000000000 0 FUNC WEAK DEFAULT UND __cxa_finalize@GLIBC_2.17 - 72: 0000000000011038 0 NOTYPE GLOBAL DEFAULT 24 _bss_end__ - 73: 0000000000011030 0 NOTYPE GLOBAL DEFAULT 23 _edata - 74: 0000000000011034 4 OBJECT GLOBAL DEFAULT 24 x - 75: 0000000000000728 0 FUNC GLOBAL HIDDEN 14 _fini - 76: 0000000000011038 0 NOTYPE GLOBAL DEFAULT 24 __bss_end__ - 77: 0000000000011020 0 NOTYPE GLOBAL DEFAULT 23 __data_start - 78: 0000000000000000 0 NOTYPE WEAK DEFAULT UND __gmon_start__ - 79: 0000000000011028 0 OBJECT GLOBAL HIDDEN 23 __dso_handle - 80: 0000000000000000 0 FUNC GLOBAL DEFAULT UND abort@GLIBC_2.17 - 81: 000000000000073c 4 OBJECT GLOBAL DEFAULT 15 _IO_stdin_used - 82: 0000000000011038 0 NOTYPE GLOBAL DEFAULT 24 _end - 83: 0000000000000600 52 FUNC GLOBAL DEFAULT 13 _start - 84: 0000000000011038 0 NOTYPE GLOBAL DEFAULT 24 __end__ - 85: 0000000000011030 0 NOTYPE GLOBAL DEFAULT 24 __bss_start - 86: 0000000000000714 20 FUNC GLOBAL DEFAULT 13 main - 87: 0000000000011030 0 OBJECT GLOBAL HIDDEN 23 __TMC_END__ - 88: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_registerTMCloneTable - 89: 0000000000000580 0 FUNC GLOBAL HIDDEN 11 _init diff --git a/src/test/correct/basic_assign_assign/clang/basic_assign_assign_gtirb.expected b/src/test/correct/basic_assign_assign/clang/basic_assign_assign_gtirb.expected index 35332b7c9..c2be6c759 100644 --- a/src/test/correct/basic_assign_assign/clang/basic_assign_assign_gtirb.expected +++ b/src/test/correct/basic_assign_assign/clang/basic_assign_assign_gtirb.expected @@ -7,12 +7,16 @@ var {:extern} R8: bv64; var {:extern} R9: bv64; var {:extern} mem: [bv64]bv8; const {:extern} $x_addr: bv64; -axiom ($x_addr == 69684bv64); +axiom ($x_addr == 131092bv64); function {:extern} L(mem$in: [bv64]bv8, index: bv64) returns (bool) { (if (index == $x_addr) then true else false) } function {:extern} {:bvbuiltin "bvadd"} bvadd64(bv64, bv64) returns (bv64); +function {:extern} gamma_load64(gammaMap: [bv64]bool, index: bv64) returns (bool) { + (gammaMap[bvadd64(index, 7bv64)] && (gammaMap[bvadd64(index, 6bv64)] && (gammaMap[bvadd64(index, 5bv64)] && (gammaMap[bvadd64(index, 4bv64)] && (gammaMap[bvadd64(index, 3bv64)] && (gammaMap[bvadd64(index, 2bv64)] && (gammaMap[bvadd64(index, 1bv64)] && gammaMap[index]))))))) +} + function {:extern} gamma_store32(gammaMap: [bv64]bool, index: bv64, value: bool) returns ([bv64]bool) { gammaMap[index := value][bvadd64(index, 1bv64) := value][bvadd64(index, 2bv64) := value][bvadd64(index, 3bv64) := value] } @@ -33,11 +37,12 @@ procedure {:extern} rely(); modifies Gamma_mem, mem; ensures (forall i: bv64 :: (((mem[i] == old(mem[i])) ==> (Gamma_mem[i] == old(Gamma_mem[i]))))); ensures (((memory_load32_le(mem, $x_addr) == old(memory_load32_le(mem, $x_addr))) || (memory_load32_le(mem, $x_addr) == 1bv32)) || (memory_load32_le(mem, $x_addr) == 6bv32)); - free ensures (memory_load32_le(mem, 1852bv64) == 131073bv32); - free ensures (memory_load64_le(mem, 69064bv64) == 1808bv64); - free ensures (memory_load64_le(mem, 69072bv64) == 1728bv64); - free ensures (memory_load64_le(mem, 69592bv64) == 1812bv64); - free ensures (memory_load64_le(mem, 69672bv64) == 69672bv64); + free ensures (memory_load32_le(mem, 2304bv64) == 131073bv32); + free ensures (memory_load64_le(mem, 130432bv64) == 2256bv64); + free ensures (memory_load64_le(mem, 130440bv64) == 2176bv64); + free ensures (memory_load64_le(mem, 131040bv64) == 131092bv64); + free ensures (memory_load64_le(mem, 131056bv64) == 2260bv64); + free ensures (memory_load64_le(mem, 131080bv64) == 131080bv64); procedure {:extern} rely_transitive(); modifies Gamma_mem, mem; @@ -64,40 +69,47 @@ implementation {:extern} guarantee_reflexive() assert ((memory_load32_le(mem, $x_addr) == memory_load32_le(mem, $x_addr)) || (memory_load32_le(mem, $x_addr) == 5bv32)); } -procedure main_1812(); +procedure main(); modifies Gamma_R0, Gamma_R8, Gamma_R9, Gamma_mem, R0, R8, R9, mem; requires (memory_load32_le(mem, $x_addr) == 0bv32); - free requires (memory_load64_le(mem, 69664bv64) == 0bv64); - free requires (memory_load64_le(mem, 69672bv64) == 69672bv64); - free requires (memory_load32_le(mem, 1852bv64) == 131073bv32); - free requires (memory_load64_le(mem, 69064bv64) == 1808bv64); - free requires (memory_load64_le(mem, 69072bv64) == 1728bv64); - free requires (memory_load64_le(mem, 69592bv64) == 1812bv64); - free requires (memory_load64_le(mem, 69672bv64) == 69672bv64); + free requires (memory_load64_le(mem, 131072bv64) == 0bv64); + free requires (memory_load64_le(mem, 131080bv64) == 131080bv64); + free requires (memory_load32_le(mem, 2304bv64) == 131073bv32); + free requires (memory_load64_le(mem, 130432bv64) == 2256bv64); + free requires (memory_load64_le(mem, 130440bv64) == 2176bv64); + free requires (memory_load64_le(mem, 131040bv64) == 131092bv64); + free requires (memory_load64_le(mem, 131056bv64) == 2260bv64); + free requires (memory_load64_le(mem, 131080bv64) == 131080bv64); ensures ((memory_load32_le(mem, $x_addr) == 5bv32) || (memory_load32_le(mem, $x_addr) == 6bv32)); - free ensures (memory_load32_le(mem, 1852bv64) == 131073bv32); - free ensures (memory_load64_le(mem, 69064bv64) == 1808bv64); - free ensures (memory_load64_le(mem, 69072bv64) == 1728bv64); - free ensures (memory_load64_le(mem, 69592bv64) == 1812bv64); - free ensures (memory_load64_le(mem, 69672bv64) == 69672bv64); + free ensures (memory_load32_le(mem, 2304bv64) == 131073bv32); + free ensures (memory_load64_le(mem, 130432bv64) == 2256bv64); + free ensures (memory_load64_le(mem, 130440bv64) == 2176bv64); + free ensures (memory_load64_le(mem, 131040bv64) == 131092bv64); + free ensures (memory_load64_le(mem, 131056bv64) == 2260bv64); + free ensures (memory_load64_le(mem, 131080bv64) == 131080bv64); -implementation main_1812() +implementation main() { + var $load11: bv64; + var Gamma_$load11: bool; var x_old: bv32; - main_1812__0__Zdsp6UAuTvmVrSYb5TVuFA: - assume {:captureState "main_1812__0__Zdsp6UAuTvmVrSYb5TVuFA"} true; - R9, Gamma_R9 := 69632bv64, true; - R8, Gamma_R8 := 5bv64, true; + $main$__0__$oqiqdATZTc6MDOYJqL9Aew: + assume {:captureState "$main$__0__$oqiqdATZTc6MDOYJqL9Aew"} true; + R8, Gamma_R8 := 126976bv64, true; + R9, Gamma_R9 := 5bv64, true; + R0, Gamma_R0 := 0bv64, true; call rely(); + $load11, Gamma_$load11 := memory_load64_le(mem, bvadd64(R8, 4064bv64)), (gamma_load64(Gamma_mem, bvadd64(R8, 4064bv64)) || L(mem, bvadd64(R8, 4064bv64))); + R8, Gamma_R8 := $load11, Gamma_$load11; + call rely(); + assert (L(mem, R8) ==> Gamma_R9); x_old := memory_load32_le(mem, $x_addr); - assert (L(mem, bvadd64(R9, 52bv64)) ==> Gamma_R8); - mem, Gamma_mem := memory_store32_le(mem, bvadd64(R9, 52bv64), R8[32:0]), gamma_store32(Gamma_mem, bvadd64(R9, 52bv64), Gamma_R8); + mem, Gamma_mem := memory_store32_le(mem, R8, R9[32:0]), gamma_store32(Gamma_mem, R8, Gamma_R9); assert ((memory_load32_le(mem, $x_addr) == x_old) || (memory_load32_le(mem, $x_addr) == 5bv32)); - assume {:captureState "1820_0"} true; - R0, Gamma_R0 := 0bv64, true; - goto main_1812_basil_return; - main_1812_basil_return: - assume {:captureState "main_1812_basil_return"} true; + assume {:captureState "2276$0"} true; + goto main_basil_return; + main_basil_return: + assume {:captureState "main_basil_return"} true; return; } diff --git a/src/test/correct/basic_assign_assign/clang_pic/basic_assign_assign.adt b/src/test/correct/basic_assign_assign/clang_pic/basic_assign_assign.adt deleted file mode 100644 index 2993339f3..000000000 --- a/src/test/correct/basic_assign_assign/clang_pic/basic_assign_assign.adt +++ /dev/null @@ -1,497 +0,0 @@ -Project(Attrs([Attr("filename","\"clang_pic/basic_assign_assign.out\""), -Attr("image-specification","(declare abi (name str))\n(declare arch (name str))\n(declare base-address (addr int))\n(declare bias (off int))\n(declare bits (size int))\n(declare code-region (addr int) (size int) (off int))\n(declare code-start (addr int))\n(declare entry-point (addr int))\n(declare external-reference (addr int) (name str))\n(declare format (name str))\n(declare is-executable (flag bool))\n(declare is-little-endian (flag bool))\n(declare llvm:base-address (addr int))\n(declare llvm:code-entry (name str) (off int) (size int))\n(declare llvm:coff-import-library (name str))\n(declare llvm:coff-virtual-section-header (name str) (addr int) (size int))\n(declare llvm:elf-program-header (name str) (off int) (size int))\n(declare llvm:elf-program-header-flags (name str) (ld bool) (r bool) \n (w bool) (x bool))\n(declare llvm:elf-virtual-program-header (name str) (addr int) (size int))\n(declare llvm:entry-point (addr int))\n(declare llvm:macho-symbol (name str) (value int))\n(declare llvm:name-reference (at int) (name str))\n(declare llvm:relocation (at int) (addr int))\n(declare llvm:section-entry (name str) (addr int) (size int) (off int))\n(declare llvm:section-flags (name str) (r bool) (w bool) (x bool))\n(declare llvm:segment-command (name str) (off int) (size int))\n(declare llvm:segment-command-flags (name str) (r bool) (w bool) (x bool))\n(declare llvm:symbol-entry (name str) (addr int) (size int) (off int)\n (value int))\n(declare llvm:virtual-segment-command (name str) (addr int) (size int))\n(declare mapped (addr int) (size int) (off int))\n(declare named-region (addr int) (size int) (name str))\n(declare named-symbol (addr int) (name str))\n(declare require (name str))\n(declare section (addr int) (size int))\n(declare segment (addr int) (size int) (r bool) (w bool) (x bool))\n(declare subarch (name str))\n(declare symbol-chunk (addr int) (size int) (root int))\n(declare symbol-value (addr int) (value int))\n(declare system (name str))\n(declare vendor (name str))\n\n(abi unknown)\n(arch aarch64)\n(base-address 0)\n(bias 0)\n(bits 64)\n(code-region 1900 20 1900)\n(code-region 1600 300 1600)\n(code-region 1456 96 1456)\n(code-region 1432 24 1432)\n(code-start 1652)\n(code-start 1600)\n(code-start 1876)\n(entry-point 1600)\n(external-reference 69560 _ITM_deregisterTMCloneTable)\n(external-reference 69568 __cxa_finalize)\n(external-reference 69584 __gmon_start__)\n(external-reference 69600 _ITM_registerTMCloneTable)\n(external-reference 69632 __libc_start_main)\n(external-reference 69640 __cxa_finalize)\n(external-reference 69648 __gmon_start__)\n(external-reference 69656 abort)\n(format elf)\n(is-executable true)\n(is-little-endian true)\n(llvm:base-address 0)\n(llvm:code-entry abort 0 0)\n(llvm:code-entry __cxa_finalize 0 0)\n(llvm:code-entry __libc_start_main 0 0)\n(llvm:code-entry _init 1432 0)\n(llvm:code-entry main 1876 24)\n(llvm:code-entry _start 1600 52)\n(llvm:code-entry abort@GLIBC_2.17 0 0)\n(llvm:code-entry _fini 1900 0)\n(llvm:code-entry __cxa_finalize@GLIBC_2.17 0 0)\n(llvm:code-entry __libc_start_main@GLIBC_2.34 0 0)\n(llvm:code-entry frame_dummy 1872 0)\n(llvm:code-entry __do_global_dtors_aux 1792 0)\n(llvm:code-entry register_tm_clones 1728 0)\n(llvm:code-entry deregister_tm_clones 1680 0)\n(llvm:code-entry call_weak_fn 1652 20)\n(llvm:code-entry .fini 1900 20)\n(llvm:code-entry .text 1600 300)\n(llvm:code-entry .plt 1456 96)\n(llvm:code-entry .init 1432 24)\n(llvm:elf-program-header 08 3520 576)\n(llvm:elf-program-header 07 0 0)\n(llvm:elf-program-header 06 1924 60)\n(llvm:elf-program-header 05 596 68)\n(llvm:elf-program-header 04 3536 480)\n(llvm:elf-program-header 03 3520 624)\n(llvm:elf-program-header 02 0 2164)\n(llvm:elf-program-header 01 568 27)\n(llvm:elf-program-header 00 64 504)\n(llvm:elf-program-header-flags 08 false true false false)\n(llvm:elf-program-header-flags 07 false true true false)\n(llvm:elf-program-header-flags 06 false true false false)\n(llvm:elf-program-header-flags 05 false true false false)\n(llvm:elf-program-header-flags 04 false true true false)\n(llvm:elf-program-header-flags 03 true true true false)\n(llvm:elf-program-header-flags 02 true true false true)\n(llvm:elf-program-header-flags 01 false true false false)\n(llvm:elf-program-header-flags 00 false true false false)\n(llvm:elf-virtual-program-header 08 69056 576)\n(llvm:elf-virtual-program-header 07 0 0)\n(llvm:elf-virtual-program-header 06 1924 60)\n(llvm:elf-virtual-program-header 05 596 68)\n(llvm:elf-virtual-program-header 04 69072 480)\n(llvm:elf-virtual-program-header 03 69056 632)\n(llvm:elf-virtual-program-header 02 0 2164)\n(llvm:elf-virtual-program-header 01 568 27)\n(llvm:elf-virtual-program-header 00 64 504)\n(llvm:entry-point 1600)\n(llvm:name-reference 69656 abort)\n(llvm:name-reference 69648 __gmon_start__)\n(llvm:name-reference 69640 __cxa_finalize)\n(llvm:name-reference 69632 __libc_start_main)\n(llvm:name-reference 69600 _ITM_registerTMCloneTable)\n(llvm:name-reference 69584 __gmon_start__)\n(llvm:name-reference 69568 __cxa_finalize)\n(llvm:name-reference 69560 _ITM_deregisterTMCloneTable)\n(llvm:section-entry .shstrtab 0 259 6951)\n(llvm:section-entry .strtab 0 575 6376)\n(llvm:section-entry .symtab 0 2160 4216)\n(llvm:section-entry .comment 0 71 4144)\n(llvm:section-entry .bss 69680 8 4144)\n(llvm:section-entry .data 69664 16 4128)\n(llvm:section-entry .got.plt 69608 56 4072)\n(llvm:section-entry .got 69552 56 4016)\n(llvm:section-entry .dynamic 69072 480 3536)\n(llvm:section-entry .fini_array 69064 8 3528)\n(llvm:section-entry .init_array 69056 8 3520)\n(llvm:section-entry .eh_frame 1984 180 1984)\n(llvm:section-entry .eh_frame_hdr 1924 60 1924)\n(llvm:section-entry .rodata 1920 4 1920)\n(llvm:section-entry .fini 1900 20 1900)\n(llvm:section-entry .text 1600 300 1600)\n(llvm:section-entry .plt 1456 96 1456)\n(llvm:section-entry .init 1432 24 1432)\n(llvm:section-entry .rela.plt 1336 96 1336)\n(llvm:section-entry .rela.dyn 1120 216 1120)\n(llvm:section-entry .gnu.version_r 1072 48 1072)\n(llvm:section-entry .gnu.version 1054 18 1054)\n(llvm:section-entry .dynstr 912 141 912)\n(llvm:section-entry .dynsym 696 216 696)\n(llvm:section-entry .gnu.hash 664 28 664)\n(llvm:section-entry .note.ABI-tag 632 32 632)\n(llvm:section-entry .note.gnu.build-id 596 36 596)\n(llvm:section-entry .interp 568 27 568)\n(llvm:section-flags .shstrtab true false false)\n(llvm:section-flags .strtab true false false)\n(llvm:section-flags .symtab true false false)\n(llvm:section-flags .comment true false false)\n(llvm:section-flags .bss true true false)\n(llvm:section-flags .data true true false)\n(llvm:section-flags .got.plt true true false)\n(llvm:section-flags .got true true false)\n(llvm:section-flags .dynamic true true false)\n(llvm:section-flags .fini_array true true false)\n(llvm:section-flags .init_array true true false)\n(llvm:section-flags .eh_frame true false false)\n(llvm:section-flags .eh_frame_hdr true false false)\n(llvm:section-flags .rodata true false false)\n(llvm:section-flags .fini true false true)\n(llvm:section-flags .text true false true)\n(llvm:section-flags .plt true false true)\n(llvm:section-flags .init true false true)\n(llvm:section-flags .rela.plt true false false)\n(llvm:section-flags .rela.dyn true false false)\n(llvm:section-flags .gnu.version_r true false false)\n(llvm:section-flags .gnu.version true false false)\n(llvm:section-flags .dynstr true false false)\n(llvm:section-flags .dynsym true false false)\n(llvm:section-flags .gnu.hash true false false)\n(llvm:section-flags .note.ABI-tag true false false)\n(llvm:section-flags .note.gnu.build-id true false false)\n(llvm:section-flags .interp true false false)\n(llvm:symbol-entry abort 0 0 0 0)\n(llvm:symbol-entry __cxa_finalize 0 0 0 0)\n(llvm:symbol-entry __libc_start_main 0 0 0 0)\n(llvm:symbol-entry _init 1432 0 1432 1432)\n(llvm:symbol-entry main 1876 24 1876 1876)\n(llvm:symbol-entry _start 1600 52 1600 1600)\n(llvm:symbol-entry abort@GLIBC_2.17 0 0 0 0)\n(llvm:symbol-entry _fini 1900 0 1900 1900)\n(llvm:symbol-entry __cxa_finalize@GLIBC_2.17 0 0 0 0)\n(llvm:symbol-entry __libc_start_main@GLIBC_2.34 0 0 0 0)\n(llvm:symbol-entry frame_dummy 1872 0 1872 1872)\n(llvm:symbol-entry __do_global_dtors_aux 1792 0 1792 1792)\n(llvm:symbol-entry register_tm_clones 1728 0 1728 1728)\n(llvm:symbol-entry deregister_tm_clones 1680 0 1680 1680)\n(llvm:symbol-entry call_weak_fn 1652 20 1652 1652)\n(mapped 0 2164 0)\n(mapped 69056 624 3520)\n(named-region 0 2164 02)\n(named-region 69056 632 03)\n(named-region 568 27 .interp)\n(named-region 596 36 .note.gnu.build-id)\n(named-region 632 32 .note.ABI-tag)\n(named-region 664 28 .gnu.hash)\n(named-region 696 216 .dynsym)\n(named-region 912 141 .dynstr)\n(named-region 1054 18 .gnu.version)\n(named-region 1072 48 .gnu.version_r)\n(named-region 1120 216 .rela.dyn)\n(named-region 1336 96 .rela.plt)\n(named-region 1432 24 .init)\n(named-region 1456 96 .plt)\n(named-region 1600 300 .text)\n(named-region 1900 20 .fini)\n(named-region 1920 4 .rodata)\n(named-region 1924 60 .eh_frame_hdr)\n(named-region 1984 180 .eh_frame)\n(named-region 69056 8 .init_array)\n(named-region 69064 8 .fini_array)\n(named-region 69072 480 .dynamic)\n(named-region 69552 56 .got)\n(named-region 69608 56 .got.plt)\n(named-region 69664 16 .data)\n(named-region 69680 8 .bss)\n(named-region 0 71 .comment)\n(named-region 0 2160 .symtab)\n(named-region 0 575 .strtab)\n(named-region 0 259 .shstrtab)\n(named-symbol 1652 call_weak_fn)\n(named-symbol 1680 deregister_tm_clones)\n(named-symbol 1728 register_tm_clones)\n(named-symbol 1792 __do_global_dtors_aux)\n(named-symbol 1872 frame_dummy)\n(named-symbol 0 __libc_start_main@GLIBC_2.34)\n(named-symbol 0 __cxa_finalize@GLIBC_2.17)\n(named-symbol 1900 _fini)\n(named-symbol 0 abort@GLIBC_2.17)\n(named-symbol 1600 _start)\n(named-symbol 1876 main)\n(named-symbol 1432 _init)\n(named-symbol 0 __libc_start_main)\n(named-symbol 0 __cxa_finalize)\n(named-symbol 0 abort)\n(require libc.so.6)\n(section 568 27)\n(section 596 36)\n(section 632 32)\n(section 664 28)\n(section 696 216)\n(section 912 141)\n(section 1054 18)\n(section 1072 48)\n(section 1120 216)\n(section 1336 96)\n(section 1432 24)\n(section 1456 96)\n(section 1600 300)\n(section 1900 20)\n(section 1920 4)\n(section 1924 60)\n(section 1984 180)\n(section 69056 8)\n(section 69064 8)\n(section 69072 480)\n(section 69552 56)\n(section 69608 56)\n(section 69664 16)\n(section 69680 8)\n(section 0 71)\n(section 0 2160)\n(section 0 575)\n(section 0 259)\n(segment 0 2164 true false true)\n(segment 69056 632 true true false)\n(subarch v8)\n(symbol-chunk 1652 20 1652)\n(symbol-chunk 1600 52 1600)\n(symbol-chunk 1876 24 1876)\n(symbol-value 1652 1652)\n(symbol-value 1680 1680)\n(symbol-value 1728 1728)\n(symbol-value 1792 1792)\n(symbol-value 1872 1872)\n(symbol-value 1900 1900)\n(symbol-value 1600 1600)\n(symbol-value 1876 1876)\n(symbol-value 1432 1432)\n(symbol-value 0 0)\n(system \"\")\n(vendor \"\")\n"), -Attr("abi-name","\"aarch64-linux-gnu-elf\"")]), -Sections([Section(".shstrtab", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x40\x06\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x30\x1c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x38\x00\x09\x00\x40\x00\x1d\x00\x1c\x00\x06\x00\x00\x00\x04\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x04\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x74\x08\x00\x00\x00\x00\x00\x00\x74\x08\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x01\x00\x00\x00\x06\x00\x00\x00\xc0\x0d\x00\x00\x00\x00\x00\x00\xc0\x0d\x01\x00\x00\x00\x00\x00\xc0\x0d\x01"), -Section(".strtab", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x40\x06\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x30\x1c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x38\x00\x09\x00\x40\x00\x1d\x00\x1c\x00\x06\x00\x00\x00\x04\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x04\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x74\x08\x00\x00\x00\x00\x00\x00\x74\x08\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x01\x00\x00\x00\x06\x00\x00\x00\xc0\x0d\x00\x00\x00\x00\x00\x00\xc0\x0d\x01\x00\x00\x00\x00\x00\xc0\x0d\x01\x00\x00\x00\x00\x00\x70\x02\x00\x00\x00\x00\x00\x00\x78\x02\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x02\x00\x00\x00\x06\x00\x00\x00\xd0\x0d\x00\x00\x00\x00\x00\x00\xd0\x0d\x01\x00\x00\x00\x00\x00\xd0\x0d\x01\x00\x00\x00\x00\x00\xe0\x01\x00\x00\x00\x00\x00\x00\xe0\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x04\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x50\xe5\x74\x64\x04\x00\x00\x00\x84\x07\x00\x00\x00\x00\x00\x00\x84\x07\x00\x00\x00\x00\x00\x00\x84\x07\x00\x00\x00\x00\x00\x00\x3c\x00\x00\x00\x00\x00\x00\x00\x3c\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x51\xe5\x74\x64\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x52\xe5\x74\x64\x04\x00\x00\x00\xc0\x0d\x00\x00\x00\x00\x00\x00\xc0\x0d\x01\x00\x00\x00\x00\x00\xc0\x0d\x01\x00\x00\x00\x00\x00\x40\x02\x00\x00\x00\x00\x00\x00\x40\x02\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x2f\x6c\x69\x62\x2f\x6c\x64"), -Section(".symtab", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x40\x06\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x30\x1c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x38\x00\x09\x00\x40\x00\x1d\x00\x1c\x00\x06\x00\x00\x00\x04\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x04\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x74\x08\x00\x00\x00\x00\x00\x00\x74\x08\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x01\x00\x00\x00\x06\x00\x00\x00\xc0\x0d\x00\x00\x00\x00\x00\x00\xc0\x0d\x01\x00\x00\x00\x00\x00\xc0\x0d\x01\x00\x00\x00\x00\x00\x70\x02\x00\x00\x00\x00\x00\x00\x78\x02\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x02\x00\x00\x00\x06\x00\x00\x00\xd0\x0d\x00\x00\x00\x00\x00\x00\xd0\x0d\x01\x00\x00\x00\x00\x00\xd0\x0d\x01\x00\x00\x00\x00\x00\xe0\x01\x00\x00\x00\x00\x00\x00\xe0\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x04\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x50\xe5\x74\x64\x04\x00\x00\x00\x84\x07\x00\x00\x00\x00\x00\x00\x84\x07\x00\x00\x00\x00\x00\x00\x84\x07\x00\x00\x00\x00\x00\x00\x3c\x00\x00\x00\x00\x00\x00\x00\x3c\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x51\xe5\x74\x64\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x52\xe5\x74\x64\x04\x00\x00\x00\xc0\x0d\x00\x00\x00\x00\x00\x00\xc0\x0d\x01\x00\x00\x00\x00\x00\xc0\x0d\x01\x00\x00\x00\x00\x00\x40\x02\x00\x00\x00\x00\x00\x00\x40\x02\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x2f\x6c\x69\x62\x2f\x6c\x64\x2d\x6c\x69\x6e\x75\x78\x2d\x61\x61\x72\x63\x68\x36\x34\x2e\x73\x6f\x2e\x31\x00\x00\x04\x00\x00\x00\x14\x00\x00\x00\x03\x00\x00\x00\x47\x4e\x55\x00\xca\x49\xd0\xc2\xf6\x37\xd5\xf4\x58\xf9\xa7\xee\x6e\x31\xf1\x78\xb4\x6c\x83\xe2\x04\x00\x00\x00\x10\x00\x00\x00\x01\x00\x00\x00\x47\x4e\x55\x00\x00\x00\x00\x00\x03\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x01\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x0b\x00\x98\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x17\x00\x20\x10\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x48\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x22\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x22\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x73\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5f\x5f\x63\x78\x61\x5f\x66\x69\x6e\x61\x6c\x69\x7a\x65\x00\x5f\x5f\x6c\x69\x62\x63\x5f\x73\x74\x61\x72\x74\x5f\x6d\x61\x69\x6e\x00\x61\x62\x6f\x72\x74\x00\x6c\x69\x62\x63\x2e\x73\x6f\x2e\x36\x00\x47\x4c\x49\x42\x43\x5f\x32\x2e\x31\x37\x00\x47\x4c\x49\x42\x43\x5f\x32\x2e\x33\x34\x00\x5f\x49\x54\x4d\x5f\x64\x65\x72\x65\x67\x69\x73\x74\x65\x72\x54\x4d\x43\x6c\x6f\x6e\x65\x54\x61\x62\x6c\x65\x00\x5f\x5f\x67\x6d\x6f\x6e\x5f\x73\x74\x61\x72\x74\x5f\x5f\x00\x5f\x49\x54\x4d\x5f\x72\x65\x67\x69\x73\x74\x65\x72\x54\x4d\x43\x6c\x6f\x6e\x65\x54\x61\x62\x6c\x65\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x01\x00\x03\x00\x01\x00\x03\x00\x01\x00\x01\x00\x02\x00\x28\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x97\x91\x96\x06\x00\x00\x03\x00\x32\x00\x00\x00\x10\x00\x00\x00\xb4\x91\x96\x06\x00\x00\x02\x00\x3d\x00\x00\x00\x00\x00\x00\x00\xc0\x0d\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x50\x07\x00\x00\x00\x00\x00\x00\xc8\x0d\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\xc8\x0f\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x34\x10\x01\x00\x00\x00\x00\x00\xd8\x0f\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x54\x07\x00\x00\x00\x00\x00\x00\x28\x10\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x28\x10\x01\x00\x00\x00\x00\x00\xb8\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xc0\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xd0\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe0\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x08\x10\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x10\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x18\x10\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1f\x20\x03\xd5\xfd\x7b\xbf\xa9\xfd\x03\x00\x91\x34\x00\x00\x94\xfd\x7b\xc1\xa8\xc0\x03\x5f\xd6\xf0\x7b\xbf\xa9\x90\x00\x00\x90\x11\xfe\x47\xf9\x10\xe2\x3f\x91\x20\x02\x1f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x90\x00\x00\xb0\x11\x02\x40\xf9\x10\x02\x00\x91\x20\x02\x1f\xd6\x90\x00\x00\xb0\x11\x06\x40\xf9\x10\x22\x00\x91\x20\x02\x1f\xd6\x90\x00\x00\xb0\x11\x0a\x40\xf9\x10\x42\x00\x91\x20\x02\x1f\xd6\x90\x00\x00\xb0\x11\x0e\x40\xf9\x10\x62\x00\x91\x20\x02\x1f\xd6\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1f\x20\x03\xd5\x1d\x00\x80\xd2\x1e\x00\x80\xd2\xe5\x03\x00\xaa\xe1\x03\x40\xf9\xe2\x23\x00\x91\xe6\x03\x00\x91\x80\x00\x00\x90\x00\xec\x47\xf9\x03\x00\x80\xd2\x04\x00\x80\xd2\xd9\xff\xff\x97\xe4\xff\xff\x97\x80\x00\x00\x90\x00\xe8\x47\xf9\x40\x00\x00\xb4\xdc\xff\xff\x17\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x80\x00\x00\xb0\x00\xc0\x00\x91\x81\x00\x00\xb0\x21\xc0\x00\x91\x3f\x00\x00\xeb\xc0\x00\x00\x54\x81\x00\x00\x90\x21\xdc\x47\xf9\x61\x00\x00\xb4\xf0\x03\x01\xaa\x00\x02\x1f\xd6\xc0\x03\x5f\xd6\x80\x00\x00\xb0\x00\xc0\x00\x91\x81\x00\x00\xb0\x21\xc0\x00\x91\x21\x00\x00\xcb\x22\xfc\x7f\xd3\x41\x0c\x81\x8b\x21\xfc\x41\x93\xc1\x00\x00\xb4\x82\x00\x00\x90\x42\xf0\x47\xf9\x62\x00\x00\xb4\xf0\x03\x02\xaa\x00\x02\x1f\xd6\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\xfd\x7b\xbe\xa9\xfd\x03\x00\x91\xf3\x0b\x00\xf9\x93\x00\x00\xb0\x60\xc2\x40\x39\x40\x01\x00\x35\x80\x00\x00\x90\x00\xe0\x47\xf9\x80\x00\x00\xb4\x80\x00\x00\xb0\x00\x14\x40\xf9\xad\xff\xff\x97\xd8\xff\xff\x97\x20\x00\x80\x52\x60\xc2\x00\x39\xf3\x0b\x40\xf9\xfd\x7b\xc2\xa8\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\xdc\xff\xff\x17\x89\x00\x00\x90\x29\xe5\x47\xf9\xa8\x00\x80\x52\x28\x01\x00\xb9\xe0\x03\x1f\x2a\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\xfd\x7b\xbf\xa9\xfd\x03\x00\x91\xfd\x7b\xc1\xa8\xc0\x03\x5f\xd6\x01\x00\x02\x00\x01\x1b\x03\x3b\x38\x00\x00\x00\x06\x00\x00\x00\xbc\xfe\xff\xff\x50\x00\x00\x00\x0c\xff\xff\xff\x64\x00\x00\x00\x3c\xff\xff\xff\x78\x00\x00\x00\x7c\xff\xff\xff\x8c\x00\x00\x00\xcc\xff\xff\xff\xb0\x00\x00\x00\xd0\xff\xff\xff\xd8\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x01\x7a\x52\x00\x04\x78\x1e\x01\x1b\x0c\x1f\x00\x10\x00\x00\x00\x18\x00\x00\x00\x64\xfe\xff\xff\x34\x00\x00\x00\x00\x41\x07\x1e\x10\x00\x00\x00\x2c\x00\x00\x00\xa0\xfe\xff\xff\x30\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x40\x00\x00\x00\xbc\xfe\xff\xff\x3c\x00\x00\x00\x00\x00\x00\x00\x20\x00\x00\x00\x54\x00\x00\x00\xe8\xfe\xff\xff\x48\x00\x00\x00\x00\x41\x0e\x20\x9d\x04\x9e\x03\x42\x93\x02\x4e\xde\xdd\xd3\x0e\x00\x00\x00\x00\x10\x00\x00\x00\x78\x00\x00\x00\x14\xff\xff\xff\x04\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x01\x7a\x52\x00\x01\x7c\x1e\x01\x1b\x0c\x1f\x00\x10\x00\x00\x00\x18\x00\x00\x00\xf0\xfe\xff\xff\x18\x00\x00\x00\x00\x00\x00\x00"), -Section(".comment", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x40\x06\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x30\x1c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x38\x00\x09\x00\x40\x00\x1d\x00\x1c\x00\x06\x00\x00\x00\x04\x00\x00"), -Section(".interp", 0x238, "\x2f\x6c\x69\x62\x2f\x6c\x64\x2d\x6c\x69\x6e\x75\x78\x2d\x61\x61\x72\x63\x68\x36\x34\x2e\x73\x6f\x2e\x31\x00"), -Section(".note.gnu.build-id", 0x254, "\x04\x00\x00\x00\x14\x00\x00\x00\x03\x00\x00\x00\x47\x4e\x55\x00\xca\x49\xd0\xc2\xf6\x37\xd5\xf4\x58\xf9\xa7\xee\x6e\x31\xf1\x78\xb4\x6c\x83\xe2"), -Section(".note.ABI-tag", 0x278, "\x04\x00\x00\x00\x10\x00\x00\x00\x01\x00\x00\x00\x47\x4e\x55\x00\x00\x00\x00\x00\x03\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00"), -Section(".gnu.hash", 0x298, "\x01\x00\x00\x00\x01\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".dynsym", 0x2B8, "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x0b\x00\x98\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x17\x00\x20\x10\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x48\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x22\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x22\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x73\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".dynstr", 0x390, "\x00\x5f\x5f\x63\x78\x61\x5f\x66\x69\x6e\x61\x6c\x69\x7a\x65\x00\x5f\x5f\x6c\x69\x62\x63\x5f\x73\x74\x61\x72\x74\x5f\x6d\x61\x69\x6e\x00\x61\x62\x6f\x72\x74\x00\x6c\x69\x62\x63\x2e\x73\x6f\x2e\x36\x00\x47\x4c\x49\x42\x43\x5f\x32\x2e\x31\x37\x00\x47\x4c\x49\x42\x43\x5f\x32\x2e\x33\x34\x00\x5f\x49\x54\x4d\x5f\x64\x65\x72\x65\x67\x69\x73\x74\x65\x72\x54\x4d\x43\x6c\x6f\x6e\x65\x54\x61\x62\x6c\x65\x00\x5f\x5f\x67\x6d\x6f\x6e\x5f\x73\x74\x61\x72\x74\x5f\x5f\x00\x5f\x49\x54\x4d\x5f\x72\x65\x67\x69\x73\x74\x65\x72\x54\x4d\x43\x6c\x6f\x6e\x65\x54\x61\x62\x6c\x65\x00"), -Section(".gnu.version", 0x41E, "\x00\x00\x00\x00\x00\x00\x02\x00\x01\x00\x03\x00\x01\x00\x03\x00\x01\x00"), -Section(".gnu.version_r", 0x430, "\x01\x00\x02\x00\x28\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x97\x91\x96\x06\x00\x00\x03\x00\x32\x00\x00\x00\x10\x00\x00\x00\xb4\x91\x96\x06\x00\x00\x02\x00\x3d\x00\x00\x00\x00\x00\x00\x00"), -Section(".rela.dyn", 0x460, "\xc0\x0d\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x50\x07\x00\x00\x00\x00\x00\x00\xc8\x0d\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\xc8\x0f\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x34\x10\x01\x00\x00\x00\x00\x00\xd8\x0f\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x54\x07\x00\x00\x00\x00\x00\x00\x28\x10\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x28\x10\x01\x00\x00\x00\x00\x00\xb8\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xc0\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xd0\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe0\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".rela.plt", 0x538, "\x00\x10\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x08\x10\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x10\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x18\x10\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".init", 0x598, "\x1f\x20\x03\xd5\xfd\x7b\xbf\xa9\xfd\x03\x00\x91\x34\x00\x00\x94\xfd\x7b\xc1\xa8\xc0\x03\x5f\xd6"), -Section(".plt", 0x5B0, "\xf0\x7b\xbf\xa9\x90\x00\x00\x90\x11\xfe\x47\xf9\x10\xe2\x3f\x91\x20\x02\x1f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x90\x00\x00\xb0\x11\x02\x40\xf9\x10\x02\x00\x91\x20\x02\x1f\xd6\x90\x00\x00\xb0\x11\x06\x40\xf9\x10\x22\x00\x91\x20\x02\x1f\xd6\x90\x00\x00\xb0\x11\x0a\x40\xf9\x10\x42\x00\x91\x20\x02\x1f\xd6\x90\x00\x00\xb0\x11\x0e\x40\xf9\x10\x62\x00\x91\x20\x02\x1f\xd6"), -Section(".fini", 0x76C, "\x1f\x20\x03\xd5\xfd\x7b\xbf\xa9\xfd\x03\x00\x91\xfd\x7b\xc1\xa8\xc0\x03\x5f\xd6"), -Section(".rodata", 0x780, "\x01\x00\x02\x00"), -Section(".eh_frame_hdr", 0x784, "\x01\x1b\x03\x3b\x38\x00\x00\x00\x06\x00\x00\x00\xbc\xfe\xff\xff\x50\x00\x00\x00\x0c\xff\xff\xff\x64\x00\x00\x00\x3c\xff\xff\xff\x78\x00\x00\x00\x7c\xff\xff\xff\x8c\x00\x00\x00\xcc\xff\xff\xff\xb0\x00\x00\x00\xd0\xff\xff\xff\xd8\x00\x00\x00"), -Section(".eh_frame", 0x7C0, "\x10\x00\x00\x00\x00\x00\x00\x00\x01\x7a\x52\x00\x04\x78\x1e\x01\x1b\x0c\x1f\x00\x10\x00\x00\x00\x18\x00\x00\x00\x64\xfe\xff\xff\x34\x00\x00\x00\x00\x41\x07\x1e\x10\x00\x00\x00\x2c\x00\x00\x00\xa0\xfe\xff\xff\x30\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x40\x00\x00\x00\xbc\xfe\xff\xff\x3c\x00\x00\x00\x00\x00\x00\x00\x20\x00\x00\x00\x54\x00\x00\x00\xe8\xfe\xff\xff\x48\x00\x00\x00\x00\x41\x0e\x20\x9d\x04\x9e\x03\x42\x93\x02\x4e\xde\xdd\xd3\x0e\x00\x00\x00\x00\x10\x00\x00\x00\x78\x00\x00\x00\x14\xff\xff\xff\x04\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x01\x7a\x52\x00\x01\x7c\x1e\x01\x1b\x0c\x1f\x00\x10\x00\x00\x00\x18\x00\x00\x00\xf0\xfe\xff\xff\x18\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".fini_array", 0x10DC8, "\x00\x07\x00\x00\x00\x00\x00\x00"), -Section(".dynamic", 0x10DD0, "\x01\x00\x00\x00\x00\x00\x00\x00\x28\x00\x00\x00\x00\x00\x00\x00\x0c\x00\x00\x00\x00\x00\x00\x00\x98\x05\x00\x00\x00\x00\x00\x00\x0d\x00\x00\x00\x00\x00\x00\x00\x6c\x07\x00\x00\x00\x00\x00\x00\x19\x00\x00\x00\x00\x00\x00\x00\xc0\x0d\x01\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x1a\x00\x00\x00\x00\x00\x00\x00\xc8\x0d\x01\x00\x00\x00\x00\x00\x1c\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\xf5\xfe\xff\x6f\x00\x00\x00\x00\x98\x02\x00\x00\x00\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x90\x03\x00\x00\x00\x00\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\xb8\x02\x00\x00\x00\x00\x00\x00\x0a\x00\x00\x00\x00\x00\x00\x00\x8d\x00\x00\x00\x00\x00\x00\x00\x0b\x00\x00\x00\x00\x00\x00\x00\x18\x00\x00\x00\x00\x00\x00\x00\x15\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\xe8\x0f\x01\x00\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x60\x00\x00\x00\x00\x00\x00\x00\x14\x00\x00\x00\x00\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x17\x00\x00\x00\x00\x00\x00\x00\x38\x05\x00\x00\x00\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x60\x04\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\xd8\x00\x00\x00\x00\x00\x00\x00\x09\x00\x00\x00\x00\x00\x00\x00\x18\x00\x00\x00\x00\x00\x00\x00\xfb\xff\xff\x6f\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\xfe\xff\xff\x6f\x00\x00\x00\x00\x30\x04\x00\x00\x00\x00\x00\x00\xff\xff\xff\x6f\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\xf0\xff\xff\x6f\x00\x00\x00\x00\x1e\x04\x00\x00\x00\x00\x00\x00\xf9\xff\xff\x6f\x00\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".init_array", 0x10DC0, "\x50\x07\x00\x00\x00\x00\x00\x00"), -Section(".got", 0x10FB0, "\xd0\x0d\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x34\x10\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x54\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".got.plt", 0x10FE8, "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xb0\x05\x00\x00\x00\x00\x00\x00\xb0\x05\x00\x00\x00\x00\x00\x00\xb0\x05\x00\x00\x00\x00\x00\x00\xb0\x05\x00\x00\x00\x00\x00\x00"), -Section(".data", 0x11020, "\x00\x00\x00\x00\x00\x00\x00\x00\x28\x10\x01\x00\x00\x00\x00\x00"), -Section(".text", 0x640, "\x1f\x20\x03\xd5\x1d\x00\x80\xd2\x1e\x00\x80\xd2\xe5\x03\x00\xaa\xe1\x03\x40\xf9\xe2\x23\x00\x91\xe6\x03\x00\x91\x80\x00\x00\x90\x00\xec\x47\xf9\x03\x00\x80\xd2\x04\x00\x80\xd2\xd9\xff\xff\x97\xe4\xff\xff\x97\x80\x00\x00\x90\x00\xe8\x47\xf9\x40\x00\x00\xb4\xdc\xff\xff\x17\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x80\x00\x00\xb0\x00\xc0\x00\x91\x81\x00\x00\xb0\x21\xc0\x00\x91\x3f\x00\x00\xeb\xc0\x00\x00\x54\x81\x00\x00\x90\x21\xdc\x47\xf9\x61\x00\x00\xb4\xf0\x03\x01\xaa\x00\x02\x1f\xd6\xc0\x03\x5f\xd6\x80\x00\x00\xb0\x00\xc0\x00\x91\x81\x00\x00\xb0\x21\xc0\x00\x91\x21\x00\x00\xcb\x22\xfc\x7f\xd3\x41\x0c\x81\x8b\x21\xfc\x41\x93\xc1\x00\x00\xb4\x82\x00\x00\x90\x42\xf0\x47\xf9\x62\x00\x00\xb4\xf0\x03\x02\xaa\x00\x02\x1f\xd6\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\xfd\x7b\xbe\xa9\xfd\x03\x00\x91\xf3\x0b\x00\xf9\x93\x00\x00\xb0\x60\xc2\x40\x39\x40\x01\x00\x35\x80\x00\x00\x90\x00\xe0\x47\xf9\x80\x00\x00\xb4\x80\x00\x00\xb0\x00\x14\x40\xf9\xad\xff\xff\x97\xd8\xff\xff\x97\x20\x00\x80\x52\x60\xc2\x00\x39\xf3\x0b\x40\xf9\xfd\x7b\xc2\xa8\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\xdc\xff\xff\x17\x89\x00\x00\x90\x29\xe5\x47\xf9\xa8\x00\x80\x52\x28\x01\x00\xb9\xe0\x03\x1f\x2a\xc0\x03\x5f\xd6")]), -Memmap([Annotation(Region(0x0,0x873), Attr("segment","02 0 2164")), -Annotation(Region(0x640,0x673), Attr("symbol","\"_start\"")), -Annotation(Region(0x0,0x102), Attr("section","\".shstrtab\"")), -Annotation(Region(0x0,0x23E), Attr("section","\".strtab\"")), -Annotation(Region(0x0,0x86F), Attr("section","\".symtab\"")), -Annotation(Region(0x0,0x46), Attr("section","\".comment\"")), -Annotation(Region(0x238,0x252), Attr("section","\".interp\"")), -Annotation(Region(0x254,0x277), Attr("section","\".note.gnu.build-id\"")), -Annotation(Region(0x278,0x297), Attr("section","\".note.ABI-tag\"")), -Annotation(Region(0x298,0x2B3), Attr("section","\".gnu.hash\"")), -Annotation(Region(0x2B8,0x38F), Attr("section","\".dynsym\"")), -Annotation(Region(0x390,0x41C), Attr("section","\".dynstr\"")), -Annotation(Region(0x41E,0x42F), Attr("section","\".gnu.version\"")), -Annotation(Region(0x430,0x45F), Attr("section","\".gnu.version_r\"")), -Annotation(Region(0x460,0x537), Attr("section","\".rela.dyn\"")), -Annotation(Region(0x538,0x597), Attr("section","\".rela.plt\"")), -Annotation(Region(0x598,0x5AF), Attr("section","\".init\"")), -Annotation(Region(0x5B0,0x60F), Attr("section","\".plt\"")), -Annotation(Region(0x598,0x5AF), Attr("code-region","()")), -Annotation(Region(0x5B0,0x60F), Attr("code-region","()")), -Annotation(Region(0x640,0x673), Attr("symbol-info","_start 0x640 52")), -Annotation(Region(0x674,0x687), Attr("symbol","\"call_weak_fn\"")), -Annotation(Region(0x674,0x687), Attr("symbol-info","call_weak_fn 0x674 20")), -Annotation(Region(0x754,0x76B), Attr("symbol","\"main\"")), -Annotation(Region(0x754,0x76B), Attr("symbol-info","main 0x754 24")), -Annotation(Region(0x76C,0x77F), Attr("section","\".fini\"")), -Annotation(Region(0x780,0x783), Attr("section","\".rodata\"")), -Annotation(Region(0x784,0x7BF), Attr("section","\".eh_frame_hdr\"")), -Annotation(Region(0x7C0,0x873), Attr("section","\".eh_frame\"")), -Annotation(Region(0x10DC0,0x1102F), Attr("segment","03 0x10DC0 632")), -Annotation(Region(0x10DC8,0x10DCF), Attr("section","\".fini_array\"")), -Annotation(Region(0x10DD0,0x10FAF), Attr("section","\".dynamic\"")), -Annotation(Region(0x10DC0,0x10DC7), Attr("section","\".init_array\"")), -Annotation(Region(0x10FB0,0x10FE7), Attr("section","\".got\"")), -Annotation(Region(0x10FE8,0x1101F), Attr("section","\".got.plt\"")), -Annotation(Region(0x11020,0x1102F), Attr("section","\".data\"")), -Annotation(Region(0x640,0x76B), Attr("section","\".text\"")), -Annotation(Region(0x640,0x76B), Attr("code-region","()")), -Annotation(Region(0x76C,0x77F), Attr("code-region","()"))]), -Program(Tid(1_348, "%00000544"), Attrs([]), - Subs([Sub(Tid(1_298, "@__cxa_finalize"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x5E0"), -Attr("stub","()")]), "__cxa_finalize", Args([Arg(Tid(1_349, "%00000545"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("__cxa_finalize_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(796, "@__cxa_finalize"), - Attrs([Attr("address","0x5E0")]), Phis([]), -Defs([Def(Tid(1_044, "%00000414"), Attrs([Attr("address","0x5E0"), -Attr("insn","adrp x16, #69632")]), Var("R16",Imm(64)), Int(69632,64)), -Def(Tid(1_051, "%0000041b"), Attrs([Attr("address","0x5E4"), -Attr("insn","ldr x17, [x16, #0x8]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(1_057, "%00000421"), Attrs([Attr("address","0x5E8"), -Attr("insn","add x16, x16, #0x8")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(8,64)))]), Jmps([Call(Tid(1_062, "%00000426"), - Attrs([Attr("address","0x5EC"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), -Sub(Tid(1_299, "@__do_global_dtors_aux"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x700")]), - "__do_global_dtors_aux", Args([Arg(Tid(1_350, "%00000546"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("__do_global_dtors_aux_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(614, "@__do_global_dtors_aux"), - Attrs([Attr("address","0x700")]), Phis([]), Defs([Def(Tid(618, "%0000026a"), - Attrs([Attr("address","0x700"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("#3",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(18446744073709551584,64))), -Def(Tid(624, "%00000270"), Attrs([Attr("address","0x700"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("#3",Imm(64)),Var("R29",Imm(64)),LittleEndian(),64)), -Def(Tid(630, "%00000276"), Attrs([Attr("address","0x700"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("#3",Imm(64)),Int(8,64)),Var("R30",Imm(64)),LittleEndian(),64)), -Def(Tid(634, "%0000027a"), Attrs([Attr("address","0x700"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("R31",Imm(64)), -Var("#3",Imm(64))), Def(Tid(640, "%00000280"), - Attrs([Attr("address","0x704"), Attr("insn","mov x29, sp")]), - Var("R29",Imm(64)), Var("R31",Imm(64))), Def(Tid(648, "%00000288"), - Attrs([Attr("address","0x708"), Attr("insn","str x19, [sp, #0x10]")]), - Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(16,64)),Var("R19",Imm(64)),LittleEndian(),64)), -Def(Tid(653, "%0000028d"), Attrs([Attr("address","0x70C"), -Attr("insn","adrp x19, #69632")]), Var("R19",Imm(64)), Int(69632,64)), -Def(Tid(660, "%00000294"), Attrs([Attr("address","0x710"), -Attr("insn","ldrb w0, [x19, #0x30]")]), Var("R0",Imm(64)), -UNSIGNED(64,Load(Var("mem",Mem(64,8)),PLUS(Var("R19",Imm(64)),Int(48,64)),LittleEndian(),8)))]), -Jmps([Goto(Tid(667, "%0000029b"), Attrs([Attr("address","0x714"), -Attr("insn","cbnz w0, #0x28")]), - NEQ(Extract(31,0,Var("R0",Imm(64))),Int(0,32)), -Direct(Tid(665, "%00000299"))), Goto(Tid(1_338, "%0000053a"), Attrs([]), - Int(1,1), Direct(Tid(741, "%000002e5")))])), Blk(Tid(741, "%000002e5"), - Attrs([Attr("address","0x718")]), Phis([]), Defs([Def(Tid(744, "%000002e8"), - Attrs([Attr("address","0x718"), Attr("insn","adrp x0, #65536")]), - Var("R0",Imm(64)), Int(65536,64)), Def(Tid(751, "%000002ef"), - Attrs([Attr("address","0x71C"), Attr("insn","ldr x0, [x0, #0xfc0]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(4032,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(757, "%000002f5"), Attrs([Attr("address","0x720"), -Attr("insn","cbz x0, #0x10")]), EQ(Var("R0",Imm(64)),Int(0,64)), -Direct(Tid(755, "%000002f3"))), Goto(Tid(1_339, "%0000053b"), Attrs([]), - Int(1,1), Direct(Tid(780, "%0000030c")))])), Blk(Tid(780, "%0000030c"), - Attrs([Attr("address","0x724")]), Phis([]), Defs([Def(Tid(783, "%0000030f"), - Attrs([Attr("address","0x724"), Attr("insn","adrp x0, #69632")]), - Var("R0",Imm(64)), Int(69632,64)), Def(Tid(790, "%00000316"), - Attrs([Attr("address","0x728"), Attr("insn","ldr x0, [x0, #0x28]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(40,64)),LittleEndian(),64)), -Def(Tid(795, "%0000031b"), Attrs([Attr("address","0x72C"), -Attr("insn","bl #-0x14c")]), Var("R30",Imm(64)), Int(1840,64))]), -Jmps([Call(Tid(798, "%0000031e"), Attrs([Attr("address","0x72C"), -Attr("insn","bl #-0x14c")]), Int(1,1), -(Direct(Tid(1_298, "@__cxa_finalize")),Direct(Tid(755, "%000002f3"))))])), -Blk(Tid(755, "%000002f3"), Attrs([Attr("address","0x730")]), Phis([]), -Defs([Def(Tid(763, "%000002fb"), Attrs([Attr("address","0x730"), -Attr("insn","bl #-0xa0")]), Var("R30",Imm(64)), Int(1844,64))]), -Jmps([Call(Tid(765, "%000002fd"), Attrs([Attr("address","0x730"), -Attr("insn","bl #-0xa0")]), Int(1,1), -(Direct(Tid(1_312, "@deregister_tm_clones")),Direct(Tid(767, "%000002ff"))))])), -Blk(Tid(767, "%000002ff"), Attrs([Attr("address","0x734")]), Phis([]), -Defs([Def(Tid(770, "%00000302"), Attrs([Attr("address","0x734"), -Attr("insn","mov w0, #0x1")]), Var("R0",Imm(64)), Int(1,64)), -Def(Tid(778, "%0000030a"), Attrs([Attr("address","0x738"), -Attr("insn","strb w0, [x19, #0x30]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R19",Imm(64)),Int(48,64)),Extract(7,0,Var("R0",Imm(64))),LittleEndian(),8))]), -Jmps([Goto(Tid(1_340, "%0000053c"), Attrs([]), Int(1,1), -Direct(Tid(665, "%00000299")))])), Blk(Tid(665, "%00000299"), - Attrs([Attr("address","0x73C")]), Phis([]), Defs([Def(Tid(675, "%000002a3"), - Attrs([Attr("address","0x73C"), Attr("insn","ldr x19, [sp, #0x10]")]), - Var("R19",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(16,64)),LittleEndian(),64)), -Def(Tid(682, "%000002aa"), Attrs([Attr("address","0x740"), -Attr("insn","ldp x29, x30, [sp], #0x20")]), Var("R29",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(687, "%000002af"), Attrs([Attr("address","0x740"), -Attr("insn","ldp x29, x30, [sp], #0x20")]), Var("R30",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(691, "%000002b3"), Attrs([Attr("address","0x740"), -Attr("insn","ldp x29, x30, [sp], #0x20")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(32,64)))]), Jmps([Call(Tid(696, "%000002b8"), - Attrs([Attr("address","0x744"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), Sub(Tid(1_303, "@__libc_start_main"), - Attrs([Attr("c.proto","signed (*)(signed (*)(signed , char** , char** );* main, signed , char** , \nvoid* auxv)"), -Attr("address","0x5D0"), Attr("stub","()")]), "__libc_start_main", - Args([Arg(Tid(1_351, "%00000547"), - Attrs([Attr("c.layout","**[ : 64]"), -Attr("c.data","Top:u64 ptr ptr"), -Attr("c.type","signed (*)(signed , char** , char** );*")]), - Var("__libc_start_main_main",Imm(64)), Var("R0",Imm(64)), In()), -Arg(Tid(1_352, "%00000548"), Attrs([Attr("c.layout","[signed : 32]"), -Attr("c.data","Top:u32"), Attr("c.type","signed")]), - Var("__libc_start_main_arg2",Imm(32)), LOW(32,Var("R1",Imm(64))), In()), -Arg(Tid(1_353, "%00000549"), Attrs([Attr("c.layout","**[char : 8]"), -Attr("c.data","Top:u8 ptr ptr"), Attr("c.type","char**")]), - Var("__libc_start_main_arg3",Imm(64)), Var("R2",Imm(64)), Both()), -Arg(Tid(1_354, "%0000054a"), Attrs([Attr("c.layout","*[ : 8]"), -Attr("c.data","{} ptr"), Attr("c.type","void*")]), - Var("__libc_start_main_auxv",Imm(64)), Var("R3",Imm(64)), Both()), -Arg(Tid(1_355, "%0000054b"), Attrs([Attr("c.layout","[signed : 32]"), -Attr("c.data","Top:u32"), Attr("c.type","signed")]), - Var("__libc_start_main_result",Imm(32)), LOW(32,Var("R0",Imm(64))), -Out())]), Blks([Blk(Tid(447, "@__libc_start_main"), - Attrs([Attr("address","0x5D0")]), Phis([]), -Defs([Def(Tid(1_022, "%000003fe"), Attrs([Attr("address","0x5D0"), -Attr("insn","adrp x16, #69632")]), Var("R16",Imm(64)), Int(69632,64)), -Def(Tid(1_029, "%00000405"), Attrs([Attr("address","0x5D4"), -Attr("insn","ldr x17, [x16]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R16",Imm(64)),LittleEndian(),64)), -Def(Tid(1_035, "%0000040b"), Attrs([Attr("address","0x5D8"), -Attr("insn","add x16, x16, #0x0")]), Var("R16",Imm(64)), -Var("R16",Imm(64)))]), Jmps([Call(Tid(1_040, "%00000410"), - Attrs([Attr("address","0x5DC"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), Sub(Tid(1_304, "@_fini"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x76C")]), - "_fini", Args([Arg(Tid(1_356, "%0000054c"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("_fini_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(31, "@_fini"), - Attrs([Attr("address","0x76C")]), Phis([]), Defs([Def(Tid(37, "%00000025"), - Attrs([Attr("address","0x770"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("#0",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(18446744073709551600,64))), -Def(Tid(43, "%0000002b"), Attrs([Attr("address","0x770"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("#0",Imm(64)),Var("R29",Imm(64)),LittleEndian(),64)), -Def(Tid(49, "%00000031"), Attrs([Attr("address","0x770"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("#0",Imm(64)),Int(8,64)),Var("R30",Imm(64)),LittleEndian(),64)), -Def(Tid(53, "%00000035"), Attrs([Attr("address","0x770"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("R31",Imm(64)), -Var("#0",Imm(64))), Def(Tid(59, "%0000003b"), Attrs([Attr("address","0x774"), -Attr("insn","mov x29, sp")]), Var("R29",Imm(64)), Var("R31",Imm(64))), -Def(Tid(66, "%00000042"), Attrs([Attr("address","0x778"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R29",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(71, "%00000047"), Attrs([Attr("address","0x778"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R30",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(75, "%0000004b"), Attrs([Attr("address","0x778"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(16,64)))]), Jmps([Call(Tid(80, "%00000050"), - Attrs([Attr("address","0x77C"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), Sub(Tid(1_305, "@_init"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x598")]), - "_init", Args([Arg(Tid(1_357, "%0000054d"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("_init_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(1_134, "@_init"), - Attrs([Attr("address","0x598")]), Phis([]), -Defs([Def(Tid(1_140, "%00000474"), Attrs([Attr("address","0x59C"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("#5",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(18446744073709551600,64))), -Def(Tid(1_146, "%0000047a"), Attrs([Attr("address","0x59C"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("#5",Imm(64)),Var("R29",Imm(64)),LittleEndian(),64)), -Def(Tid(1_152, "%00000480"), Attrs([Attr("address","0x59C"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("#5",Imm(64)),Int(8,64)),Var("R30",Imm(64)),LittleEndian(),64)), -Def(Tid(1_156, "%00000484"), Attrs([Attr("address","0x59C"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("R31",Imm(64)), -Var("#5",Imm(64))), Def(Tid(1_162, "%0000048a"), - Attrs([Attr("address","0x5A0"), Attr("insn","mov x29, sp")]), - Var("R29",Imm(64)), Var("R31",Imm(64))), Def(Tid(1_167, "%0000048f"), - Attrs([Attr("address","0x5A4"), Attr("insn","bl #0xd0")]), - Var("R30",Imm(64)), Int(1448,64))]), Jmps([Call(Tid(1_169, "%00000491"), - Attrs([Attr("address","0x5A4"), Attr("insn","bl #0xd0")]), Int(1,1), -(Direct(Tid(1_310, "@call_weak_fn")),Direct(Tid(1_171, "%00000493"))))])), -Blk(Tid(1_171, "%00000493"), Attrs([Attr("address","0x5A8")]), Phis([]), -Defs([Def(Tid(1_176, "%00000498"), Attrs([Attr("address","0x5A8"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R29",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(1_181, "%0000049d"), Attrs([Attr("address","0x5A8"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R30",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(1_185, "%000004a1"), Attrs([Attr("address","0x5A8"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(16,64)))]), Jmps([Call(Tid(1_190, "%000004a6"), - Attrs([Attr("address","0x5AC"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), Sub(Tid(1_306, "@_start"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x640"), -Attr("entry-point","()")]), "_start", Args([Arg(Tid(1_358, "%0000054e"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("_start_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(384, "@_start"), - Attrs([Attr("address","0x640")]), Phis([]), Defs([Def(Tid(389, "%00000185"), - Attrs([Attr("address","0x644"), Attr("insn","mov x29, #0x0")]), - Var("R29",Imm(64)), Int(0,64)), Def(Tid(394, "%0000018a"), - Attrs([Attr("address","0x648"), Attr("insn","mov x30, #0x0")]), - Var("R30",Imm(64)), Int(0,64)), Def(Tid(400, "%00000190"), - Attrs([Attr("address","0x64C"), Attr("insn","mov x5, x0")]), - Var("R5",Imm(64)), Var("R0",Imm(64))), Def(Tid(407, "%00000197"), - Attrs([Attr("address","0x650"), Attr("insn","ldr x1, [sp]")]), - Var("R1",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(413, "%0000019d"), Attrs([Attr("address","0x654"), -Attr("insn","add x2, sp, #0x8")]), Var("R2",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(8,64))), Def(Tid(419, "%000001a3"), - Attrs([Attr("address","0x658"), Attr("insn","mov x6, sp")]), - Var("R6",Imm(64)), Var("R31",Imm(64))), Def(Tid(424, "%000001a8"), - Attrs([Attr("address","0x65C"), Attr("insn","adrp x0, #65536")]), - Var("R0",Imm(64)), Int(65536,64)), Def(Tid(431, "%000001af"), - Attrs([Attr("address","0x660"), Attr("insn","ldr x0, [x0, #0xfd8]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(4056,64)),LittleEndian(),64)), -Def(Tid(436, "%000001b4"), Attrs([Attr("address","0x664"), -Attr("insn","mov x3, #0x0")]), Var("R3",Imm(64)), Int(0,64)), -Def(Tid(441, "%000001b9"), Attrs([Attr("address","0x668"), -Attr("insn","mov x4, #0x0")]), Var("R4",Imm(64)), Int(0,64)), -Def(Tid(446, "%000001be"), Attrs([Attr("address","0x66C"), -Attr("insn","bl #-0x9c")]), Var("R30",Imm(64)), Int(1648,64))]), -Jmps([Call(Tid(449, "%000001c1"), Attrs([Attr("address","0x66C"), -Attr("insn","bl #-0x9c")]), Int(1,1), -(Direct(Tid(1_303, "@__libc_start_main")),Direct(Tid(451, "%000001c3"))))])), -Blk(Tid(451, "%000001c3"), Attrs([Attr("address","0x670")]), Phis([]), -Defs([Def(Tid(454, "%000001c6"), Attrs([Attr("address","0x670"), -Attr("insn","bl #-0x70")]), Var("R30",Imm(64)), Int(1652,64))]), -Jmps([Call(Tid(457, "%000001c9"), Attrs([Attr("address","0x670"), -Attr("insn","bl #-0x70")]), Int(1,1), -(Direct(Tid(1_309, "@abort")),Direct(Tid(1_341, "%0000053d"))))])), -Blk(Tid(1_341, "%0000053d"), Attrs([]), Phis([]), Defs([]), -Jmps([Call(Tid(1_342, "%0000053e"), Attrs([]), Int(1,1), -(Direct(Tid(1_310, "@call_weak_fn")),))]))])), Sub(Tid(1_309, "@abort"), - Attrs([Attr("noreturn","()"), Attr("c.proto","void (*)(void)"), -Attr("address","0x600"), Attr("stub","()")]), "abort", Args([]), -Blks([Blk(Tid(455, "@abort"), Attrs([Attr("address","0x600")]), Phis([]), -Defs([Def(Tid(1_088, "%00000440"), Attrs([Attr("address","0x600"), -Attr("insn","adrp x16, #69632")]), Var("R16",Imm(64)), Int(69632,64)), -Def(Tid(1_095, "%00000447"), Attrs([Attr("address","0x604"), -Attr("insn","ldr x17, [x16, #0x18]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(24,64)),LittleEndian(),64)), -Def(Tid(1_101, "%0000044d"), Attrs([Attr("address","0x608"), -Attr("insn","add x16, x16, #0x18")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(24,64)))]), Jmps([Call(Tid(1_106, "%00000452"), - Attrs([Attr("address","0x60C"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), Sub(Tid(1_310, "@call_weak_fn"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x674")]), - "call_weak_fn", Args([Arg(Tid(1_359, "%0000054f"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("call_weak_fn_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(459, "@call_weak_fn"), - Attrs([Attr("address","0x674")]), Phis([]), Defs([Def(Tid(462, "%000001ce"), - Attrs([Attr("address","0x674"), Attr("insn","adrp x0, #65536")]), - Var("R0",Imm(64)), Int(65536,64)), Def(Tid(469, "%000001d5"), - Attrs([Attr("address","0x678"), Attr("insn","ldr x0, [x0, #0xfd0]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(4048,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(475, "%000001db"), Attrs([Attr("address","0x67C"), -Attr("insn","cbz x0, #0x8")]), EQ(Var("R0",Imm(64)),Int(0,64)), -Direct(Tid(473, "%000001d9"))), Goto(Tid(1_343, "%0000053f"), Attrs([]), - Int(1,1), Direct(Tid(860, "%0000035c")))])), Blk(Tid(473, "%000001d9"), - Attrs([Attr("address","0x684")]), Phis([]), Defs([]), -Jmps([Call(Tid(481, "%000001e1"), Attrs([Attr("address","0x684"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))])), -Blk(Tid(860, "%0000035c"), Attrs([Attr("address","0x680")]), Phis([]), -Defs([]), Jmps([Goto(Tid(863, "%0000035f"), Attrs([Attr("address","0x680"), -Attr("insn","b #-0x90")]), Int(1,1), Direct(Tid(861, "@__gmon_start__")))])), -Blk(Tid(861, "@__gmon_start__"), Attrs([Attr("address","0x5F0")]), Phis([]), -Defs([Def(Tid(1_066, "%0000042a"), Attrs([Attr("address","0x5F0"), -Attr("insn","adrp x16, #69632")]), Var("R16",Imm(64)), Int(69632,64)), -Def(Tid(1_073, "%00000431"), Attrs([Attr("address","0x5F4"), -Attr("insn","ldr x17, [x16, #0x10]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(16,64)),LittleEndian(),64)), -Def(Tid(1_079, "%00000437"), Attrs([Attr("address","0x5F8"), -Attr("insn","add x16, x16, #0x10")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(16,64)))]), Jmps([Call(Tid(1_084, "%0000043c"), - Attrs([Attr("address","0x5FC"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), -Sub(Tid(1_312, "@deregister_tm_clones"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x690")]), - "deregister_tm_clones", Args([Arg(Tid(1_360, "%00000550"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("deregister_tm_clones_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(487, "@deregister_tm_clones"), - Attrs([Attr("address","0x690")]), Phis([]), Defs([Def(Tid(490, "%000001ea"), - Attrs([Attr("address","0x690"), Attr("insn","adrp x0, #69632")]), - Var("R0",Imm(64)), Int(69632,64)), Def(Tid(496, "%000001f0"), - Attrs([Attr("address","0x694"), Attr("insn","add x0, x0, #0x30")]), - Var("R0",Imm(64)), PLUS(Var("R0",Imm(64)),Int(48,64))), -Def(Tid(501, "%000001f5"), Attrs([Attr("address","0x698"), -Attr("insn","adrp x1, #69632")]), Var("R1",Imm(64)), Int(69632,64)), -Def(Tid(507, "%000001fb"), Attrs([Attr("address","0x69C"), -Attr("insn","add x1, x1, #0x30")]), Var("R1",Imm(64)), -PLUS(Var("R1",Imm(64)),Int(48,64))), Def(Tid(513, "%00000201"), - Attrs([Attr("address","0x6A0"), Attr("insn","cmp x1, x0")]), - Var("#1",Imm(64)), NOT(Var("R0",Imm(64)))), Def(Tid(518, "%00000206"), - Attrs([Attr("address","0x6A0"), Attr("insn","cmp x1, x0")]), - Var("#2",Imm(64)), PLUS(Var("R1",Imm(64)),NOT(Var("R0",Imm(64))))), -Def(Tid(524, "%0000020c"), Attrs([Attr("address","0x6A0"), -Attr("insn","cmp x1, x0")]), Var("VF",Imm(1)), -NEQ(SIGNED(65,PLUS(Var("#2",Imm(64)),Int(1,64))),PLUS(PLUS(SIGNED(65,Var("R1",Imm(64))),SIGNED(65,Var("#1",Imm(64)))),Int(1,65)))), -Def(Tid(530, "%00000212"), Attrs([Attr("address","0x6A0"), -Attr("insn","cmp x1, x0")]), Var("CF",Imm(1)), -NEQ(UNSIGNED(65,PLUS(Var("#2",Imm(64)),Int(1,64))),PLUS(PLUS(UNSIGNED(65,Var("R1",Imm(64))),UNSIGNED(65,Var("#1",Imm(64)))),Int(1,65)))), -Def(Tid(534, "%00000216"), Attrs([Attr("address","0x6A0"), -Attr("insn","cmp x1, x0")]), Var("ZF",Imm(1)), -EQ(PLUS(Var("#2",Imm(64)),Int(1,64)),Int(0,64))), Def(Tid(538, "%0000021a"), - Attrs([Attr("address","0x6A0"), Attr("insn","cmp x1, x0")]), - Var("NF",Imm(1)), Extract(63,63,PLUS(Var("#2",Imm(64)),Int(1,64))))]), -Jmps([Goto(Tid(544, "%00000220"), Attrs([Attr("address","0x6A4"), -Attr("insn","b.eq #0x18")]), EQ(Var("ZF",Imm(1)),Int(1,1)), -Direct(Tid(542, "%0000021e"))), Goto(Tid(1_344, "%00000540"), Attrs([]), - Int(1,1), Direct(Tid(830, "%0000033e")))])), Blk(Tid(830, "%0000033e"), - Attrs([Attr("address","0x6A8")]), Phis([]), Defs([Def(Tid(833, "%00000341"), - Attrs([Attr("address","0x6A8"), Attr("insn","adrp x1, #65536")]), - Var("R1",Imm(64)), Int(65536,64)), Def(Tid(840, "%00000348"), - Attrs([Attr("address","0x6AC"), Attr("insn","ldr x1, [x1, #0xfb8]")]), - Var("R1",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R1",Imm(64)),Int(4024,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(845, "%0000034d"), Attrs([Attr("address","0x6B0"), -Attr("insn","cbz x1, #0xc")]), EQ(Var("R1",Imm(64)),Int(0,64)), -Direct(Tid(542, "%0000021e"))), Goto(Tid(1_345, "%00000541"), Attrs([]), - Int(1,1), Direct(Tid(849, "%00000351")))])), Blk(Tid(542, "%0000021e"), - Attrs([Attr("address","0x6BC")]), Phis([]), Defs([]), -Jmps([Call(Tid(550, "%00000226"), Attrs([Attr("address","0x6BC"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))])), -Blk(Tid(849, "%00000351"), Attrs([Attr("address","0x6B4")]), Phis([]), -Defs([Def(Tid(853, "%00000355"), Attrs([Attr("address","0x6B4"), -Attr("insn","mov x16, x1")]), Var("R16",Imm(64)), Var("R1",Imm(64)))]), -Jmps([Call(Tid(858, "%0000035a"), Attrs([Attr("address","0x6B8"), -Attr("insn","br x16")]), Int(1,1), (Indirect(Var("R16",Imm(64))),))]))])), -Sub(Tid(1_315, "@frame_dummy"), Attrs([Attr("c.proto","signed (*)(void)"), -Attr("address","0x750")]), "frame_dummy", Args([Arg(Tid(1_361, "%00000551"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("frame_dummy_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(702, "@frame_dummy"), - Attrs([Attr("address","0x750")]), Phis([]), Defs([]), -Jmps([Call(Tid(704, "%000002c0"), Attrs([Attr("address","0x750"), -Attr("insn","b #-0x90")]), Int(1,1), -(Direct(Tid(1_317, "@register_tm_clones")),))]))])), Sub(Tid(1_316, "@main"), - Attrs([Attr("c.proto","signed (*)(signed argc, const char** argv)"), -Attr("address","0x754")]), "main", Args([Arg(Tid(1_362, "%00000552"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("main_argc",Imm(32)), -LOW(32,Var("R0",Imm(64))), In()), Arg(Tid(1_363, "%00000553"), - Attrs([Attr("c.layout","**[char : 8]"), Attr("c.data","Top:u8 ptr ptr"), -Attr("c.type"," const char**")]), Var("main_argv",Imm(64)), -Var("R1",Imm(64)), Both()), Arg(Tid(1_364, "%00000554"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("main_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(706, "@main"), - Attrs([Attr("address","0x754")]), Phis([]), Defs([Def(Tid(709, "%000002c5"), - Attrs([Attr("address","0x754"), Attr("insn","adrp x9, #65536")]), - Var("R9",Imm(64)), Int(65536,64)), Def(Tid(716, "%000002cc"), - Attrs([Attr("address","0x758"), Attr("insn","ldr x9, [x9, #0xfc8]")]), - Var("R9",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R9",Imm(64)),Int(4040,64)),LittleEndian(),64)), -Def(Tid(721, "%000002d1"), Attrs([Attr("address","0x75C"), -Attr("insn","mov w8, #0x5")]), Var("R8",Imm(64)), Int(5,64)), -Def(Tid(729, "%000002d9"), Attrs([Attr("address","0x760"), -Attr("insn","str w8, [x9]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("R9",Imm(64)),Extract(31,0,Var("R8",Imm(64))),LittleEndian(),32)), -Def(Tid(734, "%000002de"), Attrs([Attr("address","0x764"), -Attr("insn","mov w0, wzr")]), Var("R0",Imm(64)), Int(0,64))]), -Jmps([Call(Tid(739, "%000002e3"), Attrs([Attr("address","0x768"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))]))])), -Sub(Tid(1_317, "@register_tm_clones"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x6C0")]), - "register_tm_clones", Args([Arg(Tid(1_365, "%00000555"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("register_tm_clones_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(552, "@register_tm_clones"), Attrs([Attr("address","0x6C0")]), - Phis([]), Defs([Def(Tid(555, "%0000022b"), Attrs([Attr("address","0x6C0"), -Attr("insn","adrp x0, #69632")]), Var("R0",Imm(64)), Int(69632,64)), -Def(Tid(561, "%00000231"), Attrs([Attr("address","0x6C4"), -Attr("insn","add x0, x0, #0x30")]), Var("R0",Imm(64)), -PLUS(Var("R0",Imm(64)),Int(48,64))), Def(Tid(566, "%00000236"), - Attrs([Attr("address","0x6C8"), Attr("insn","adrp x1, #69632")]), - Var("R1",Imm(64)), Int(69632,64)), Def(Tid(572, "%0000023c"), - Attrs([Attr("address","0x6CC"), Attr("insn","add x1, x1, #0x30")]), - Var("R1",Imm(64)), PLUS(Var("R1",Imm(64)),Int(48,64))), -Def(Tid(579, "%00000243"), Attrs([Attr("address","0x6D0"), -Attr("insn","sub x1, x1, x0")]), Var("R1",Imm(64)), -PLUS(PLUS(Var("R1",Imm(64)),NOT(Var("R0",Imm(64)))),Int(1,64))), -Def(Tid(585, "%00000249"), Attrs([Attr("address","0x6D4"), -Attr("insn","lsr x2, x1, #63")]), Var("R2",Imm(64)), -Concat(Int(0,63),Extract(63,63,Var("R1",Imm(64))))), -Def(Tid(592, "%00000250"), Attrs([Attr("address","0x6D8"), -Attr("insn","add x1, x2, x1, asr #3")]), Var("R1",Imm(64)), -PLUS(Var("R2",Imm(64)),ARSHIFT(Var("R1",Imm(64)),Int(3,3)))), -Def(Tid(598, "%00000256"), Attrs([Attr("address","0x6DC"), -Attr("insn","asr x1, x1, #1")]), Var("R1",Imm(64)), -SIGNED(64,Extract(63,1,Var("R1",Imm(64)))))]), -Jmps([Goto(Tid(604, "%0000025c"), Attrs([Attr("address","0x6E0"), -Attr("insn","cbz x1, #0x18")]), EQ(Var("R1",Imm(64)),Int(0,64)), -Direct(Tid(602, "%0000025a"))), Goto(Tid(1_346, "%00000542"), Attrs([]), - Int(1,1), Direct(Tid(800, "%00000320")))])), Blk(Tid(800, "%00000320"), - Attrs([Attr("address","0x6E4")]), Phis([]), Defs([Def(Tid(803, "%00000323"), - Attrs([Attr("address","0x6E4"), Attr("insn","adrp x2, #65536")]), - Var("R2",Imm(64)), Int(65536,64)), Def(Tid(810, "%0000032a"), - Attrs([Attr("address","0x6E8"), Attr("insn","ldr x2, [x2, #0xfe0]")]), - Var("R2",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R2",Imm(64)),Int(4064,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(815, "%0000032f"), Attrs([Attr("address","0x6EC"), -Attr("insn","cbz x2, #0xc")]), EQ(Var("R2",Imm(64)),Int(0,64)), -Direct(Tid(602, "%0000025a"))), Goto(Tid(1_347, "%00000543"), Attrs([]), - Int(1,1), Direct(Tid(819, "%00000333")))])), Blk(Tid(602, "%0000025a"), - Attrs([Attr("address","0x6F8")]), Phis([]), Defs([]), -Jmps([Call(Tid(610, "%00000262"), Attrs([Attr("address","0x6F8"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))])), -Blk(Tid(819, "%00000333"), Attrs([Attr("address","0x6F0")]), Phis([]), -Defs([Def(Tid(823, "%00000337"), Attrs([Attr("address","0x6F0"), -Attr("insn","mov x16, x2")]), Var("R16",Imm(64)), Var("R2",Imm(64)))]), -Jmps([Call(Tid(828, "%0000033c"), Attrs([Attr("address","0x6F4"), -Attr("insn","br x16")]), Int(1,1), -(Indirect(Var("R16",Imm(64))),))]))]))]))) \ No newline at end of file diff --git a/src/test/correct/basic_assign_assign/clang_pic/basic_assign_assign.bir b/src/test/correct/basic_assign_assign/clang_pic/basic_assign_assign.bir deleted file mode 100644 index 8605b1e73..000000000 --- a/src/test/correct/basic_assign_assign/clang_pic/basic_assign_assign.bir +++ /dev/null @@ -1,228 +0,0 @@ -00000544: program -00000512: sub __cxa_finalize(__cxa_finalize_result) -00000545: __cxa_finalize_result :: out u32 = low:32[R0] - -0000031c: -00000414: R16 := 0x11000 -0000041b: R17 := mem[R16 + 8, el]:u64 -00000421: R16 := R16 + 8 -00000426: call R17 with noreturn - -00000513: sub __do_global_dtors_aux(__do_global_dtors_aux_result) -00000546: __do_global_dtors_aux_result :: out u32 = low:32[R0] - -00000266: -0000026a: #3 := R31 - 0x20 -00000270: mem := mem with [#3, el]:u64 <- R29 -00000276: mem := mem with [#3 + 8, el]:u64 <- R30 -0000027a: R31 := #3 -00000280: R29 := R31 -00000288: mem := mem with [R31 + 0x10, el]:u64 <- R19 -0000028d: R19 := 0x11000 -00000294: R0 := pad:64[mem[R19 + 0x30]] -0000029b: when 31:0[R0] <> 0 goto %00000299 -0000053a: goto %000002e5 - -000002e5: -000002e8: R0 := 0x10000 -000002ef: R0 := mem[R0 + 0xFC0, el]:u64 -000002f5: when R0 = 0 goto %000002f3 -0000053b: goto %0000030c - -0000030c: -0000030f: R0 := 0x11000 -00000316: R0 := mem[R0 + 0x28, el]:u64 -0000031b: R30 := 0x730 -0000031e: call @__cxa_finalize with return %000002f3 - -000002f3: -000002fb: R30 := 0x734 -000002fd: call @deregister_tm_clones with return %000002ff - -000002ff: -00000302: R0 := 1 -0000030a: mem := mem with [R19 + 0x30] <- 7:0[R0] -0000053c: goto %00000299 - -00000299: -000002a3: R19 := mem[R31 + 0x10, el]:u64 -000002aa: R29 := mem[R31, el]:u64 -000002af: R30 := mem[R31 + 8, el]:u64 -000002b3: R31 := R31 + 0x20 -000002b8: call R30 with noreturn - -00000517: sub __libc_start_main(__libc_start_main_main, __libc_start_main_arg2, __libc_start_main_arg3, __libc_start_main_auxv, __libc_start_main_result) -00000547: __libc_start_main_main :: in u64 = R0 -00000548: __libc_start_main_arg2 :: in u32 = low:32[R1] -00000549: __libc_start_main_arg3 :: in out u64 = R2 -0000054a: __libc_start_main_auxv :: in out u64 = R3 -0000054b: __libc_start_main_result :: out u32 = low:32[R0] - -000001bf: -000003fe: R16 := 0x11000 -00000405: R17 := mem[R16, el]:u64 -0000040b: R16 := R16 -00000410: call R17 with noreturn - -00000518: sub _fini(_fini_result) -0000054c: _fini_result :: out u32 = low:32[R0] - -0000001f: -00000025: #0 := R31 - 0x10 -0000002b: mem := mem with [#0, el]:u64 <- R29 -00000031: mem := mem with [#0 + 8, el]:u64 <- R30 -00000035: R31 := #0 -0000003b: R29 := R31 -00000042: R29 := mem[R31, el]:u64 -00000047: R30 := mem[R31 + 8, el]:u64 -0000004b: R31 := R31 + 0x10 -00000050: call R30 with noreturn - -00000519: sub _init(_init_result) -0000054d: _init_result :: out u32 = low:32[R0] - -0000046e: -00000474: #5 := R31 - 0x10 -0000047a: mem := mem with [#5, el]:u64 <- R29 -00000480: mem := mem with [#5 + 8, el]:u64 <- R30 -00000484: R31 := #5 -0000048a: R29 := R31 -0000048f: R30 := 0x5A8 -00000491: call @call_weak_fn with return %00000493 - -00000493: -00000498: R29 := mem[R31, el]:u64 -0000049d: R30 := mem[R31 + 8, el]:u64 -000004a1: R31 := R31 + 0x10 -000004a6: call R30 with noreturn - -0000051a: sub _start(_start_result) -0000054e: _start_result :: out u32 = low:32[R0] - -00000180: -00000185: R29 := 0 -0000018a: R30 := 0 -00000190: R5 := R0 -00000197: R1 := mem[R31, el]:u64 -0000019d: R2 := R31 + 8 -000001a3: R6 := R31 -000001a8: R0 := 0x10000 -000001af: R0 := mem[R0 + 0xFD8, el]:u64 -000001b4: R3 := 0 -000001b9: R4 := 0 -000001be: R30 := 0x670 -000001c1: call @__libc_start_main with return %000001c3 - -000001c3: -000001c6: R30 := 0x674 -000001c9: call @abort with return %0000053d - -0000053d: -0000053e: call @call_weak_fn with noreturn - -0000051d: sub abort() - - -000001c7: -00000440: R16 := 0x11000 -00000447: R17 := mem[R16 + 0x18, el]:u64 -0000044d: R16 := R16 + 0x18 -00000452: call R17 with noreturn - -0000051e: sub call_weak_fn(call_weak_fn_result) -0000054f: call_weak_fn_result :: out u32 = low:32[R0] - -000001cb: -000001ce: R0 := 0x10000 -000001d5: R0 := mem[R0 + 0xFD0, el]:u64 -000001db: when R0 = 0 goto %000001d9 -0000053f: goto %0000035c - -000001d9: -000001e1: call R30 with noreturn - -0000035c: -0000035f: goto @__gmon_start__ - -0000035d: -0000042a: R16 := 0x11000 -00000431: R17 := mem[R16 + 0x10, el]:u64 -00000437: R16 := R16 + 0x10 -0000043c: call R17 with noreturn - -00000520: sub deregister_tm_clones(deregister_tm_clones_result) -00000550: deregister_tm_clones_result :: out u32 = low:32[R0] - -000001e7: -000001ea: R0 := 0x11000 -000001f0: R0 := R0 + 0x30 -000001f5: R1 := 0x11000 -000001fb: R1 := R1 + 0x30 -00000201: #1 := ~R0 -00000206: #2 := R1 + ~R0 -0000020c: VF := extend:65[#2 + 1] <> extend:65[R1] + extend:65[#1] + 1 -00000212: CF := pad:65[#2 + 1] <> pad:65[R1] + pad:65[#1] + 1 -00000216: ZF := #2 + 1 = 0 -0000021a: NF := 63:63[#2 + 1] -00000220: when ZF goto %0000021e -00000540: goto %0000033e - -0000033e: -00000341: R1 := 0x10000 -00000348: R1 := mem[R1 + 0xFB8, el]:u64 -0000034d: when R1 = 0 goto %0000021e -00000541: goto %00000351 - -0000021e: -00000226: call R30 with noreturn - -00000351: -00000355: R16 := R1 -0000035a: call R16 with noreturn - -00000523: sub frame_dummy(frame_dummy_result) -00000551: frame_dummy_result :: out u32 = low:32[R0] - -000002be: -000002c0: call @register_tm_clones with noreturn - -00000524: sub main(main_argc, main_argv, main_result) -00000552: main_argc :: in u32 = low:32[R0] -00000553: main_argv :: in out u64 = R1 -00000554: main_result :: out u32 = low:32[R0] - -000002c2: -000002c5: R9 := 0x10000 -000002cc: R9 := mem[R9 + 0xFC8, el]:u64 -000002d1: R8 := 5 -000002d9: mem := mem with [R9, el]:u32 <- 31:0[R8] -000002de: R0 := 0 -000002e3: call R30 with noreturn - -00000525: sub register_tm_clones(register_tm_clones_result) -00000555: register_tm_clones_result :: out u32 = low:32[R0] - -00000228: -0000022b: R0 := 0x11000 -00000231: R0 := R0 + 0x30 -00000236: R1 := 0x11000 -0000023c: R1 := R1 + 0x30 -00000243: R1 := R1 + ~R0 + 1 -00000249: R2 := 0.63:63[R1] -00000250: R1 := R2 + (R1 ~>> 3) -00000256: R1 := extend:64[63:1[R1]] -0000025c: when R1 = 0 goto %0000025a -00000542: goto %00000320 - -00000320: -00000323: R2 := 0x10000 -0000032a: R2 := mem[R2 + 0xFE0, el]:u64 -0000032f: when R2 = 0 goto %0000025a -00000543: goto %00000333 - -0000025a: -00000262: call R30 with noreturn - -00000333: -00000337: R16 := R2 -0000033c: call R16 with noreturn diff --git a/src/test/correct/basic_assign_assign/clang_pic/basic_assign_assign.expected b/src/test/correct/basic_assign_assign/clang_pic/basic_assign_assign.expected index e8a337145..e0f272850 100644 --- a/src/test/correct/basic_assign_assign/clang_pic/basic_assign_assign.expected +++ b/src/test/correct/basic_assign_assign/clang_pic/basic_assign_assign.expected @@ -7,7 +7,7 @@ var {:extern} R8: bv64; var {:extern} R9: bv64; var {:extern} mem: [bv64]bv8; const {:extern} $x_addr: bv64; -axiom ($x_addr == 69684bv64); +axiom ($x_addr == 131092bv64); function {:extern} L(mem$in: [bv64]bv8, index: bv64) returns (bool) { (if (index == $x_addr) then true else false) } @@ -37,12 +37,12 @@ procedure {:extern} rely(); modifies Gamma_mem, mem; ensures (forall i: bv64 :: (((mem[i] == old(mem[i])) ==> (Gamma_mem[i] == old(Gamma_mem[i]))))); ensures (((memory_load32_le(mem, $x_addr) == old(memory_load32_le(mem, $x_addr))) || (memory_load32_le(mem, $x_addr) == 1bv32)) || (memory_load32_le(mem, $x_addr) == 6bv32)); - free ensures (memory_load32_le(mem, 1920bv64) == 131073bv32); - free ensures (memory_load64_le(mem, 69056bv64) == 1872bv64); - free ensures (memory_load64_le(mem, 69064bv64) == 1792bv64); - free ensures (memory_load64_le(mem, 69576bv64) == 69684bv64); - free ensures (memory_load64_le(mem, 69592bv64) == 1876bv64); - free ensures (memory_load64_le(mem, 69672bv64) == 69672bv64); + free ensures (memory_load32_le(mem, 2304bv64) == 131073bv32); + free ensures (memory_load64_le(mem, 130432bv64) == 2256bv64); + free ensures (memory_load64_le(mem, 130440bv64) == 2176bv64); + free ensures (memory_load64_le(mem, 131040bv64) == 131092bv64); + free ensures (memory_load64_le(mem, 131056bv64) == 2260bv64); + free ensures (memory_load64_le(mem, 131080bv64) == 131080bv64); procedure {:extern} rely_transitive(); modifies Gamma_mem, mem; @@ -69,47 +69,47 @@ implementation {:extern} guarantee_reflexive() assert ((memory_load32_le(mem, $x_addr) == memory_load32_le(mem, $x_addr)) || (memory_load32_le(mem, $x_addr) == 5bv32)); } -procedure main_1876(); +procedure main(); modifies Gamma_R0, Gamma_R8, Gamma_R9, Gamma_mem, R0, R8, R9, mem; requires (memory_load32_le(mem, $x_addr) == 0bv32); - free requires (memory_load64_le(mem, 69664bv64) == 0bv64); - free requires (memory_load64_le(mem, 69672bv64) == 69672bv64); - free requires (memory_load32_le(mem, 1920bv64) == 131073bv32); - free requires (memory_load64_le(mem, 69056bv64) == 1872bv64); - free requires (memory_load64_le(mem, 69064bv64) == 1792bv64); - free requires (memory_load64_le(mem, 69576bv64) == 69684bv64); - free requires (memory_load64_le(mem, 69592bv64) == 1876bv64); - free requires (memory_load64_le(mem, 69672bv64) == 69672bv64); + free requires (memory_load64_le(mem, 131072bv64) == 0bv64); + free requires (memory_load64_le(mem, 131080bv64) == 131080bv64); + free requires (memory_load32_le(mem, 2304bv64) == 131073bv32); + free requires (memory_load64_le(mem, 130432bv64) == 2256bv64); + free requires (memory_load64_le(mem, 130440bv64) == 2176bv64); + free requires (memory_load64_le(mem, 131040bv64) == 131092bv64); + free requires (memory_load64_le(mem, 131056bv64) == 2260bv64); + free requires (memory_load64_le(mem, 131080bv64) == 131080bv64); ensures ((memory_load32_le(mem, $x_addr) == 5bv32) || (memory_load32_le(mem, $x_addr) == 6bv32)); - free ensures (memory_load32_le(mem, 1920bv64) == 131073bv32); - free ensures (memory_load64_le(mem, 69056bv64) == 1872bv64); - free ensures (memory_load64_le(mem, 69064bv64) == 1792bv64); - free ensures (memory_load64_le(mem, 69576bv64) == 69684bv64); - free ensures (memory_load64_le(mem, 69592bv64) == 1876bv64); - free ensures (memory_load64_le(mem, 69672bv64) == 69672bv64); + free ensures (memory_load32_le(mem, 2304bv64) == 131073bv32); + free ensures (memory_load64_le(mem, 130432bv64) == 2256bv64); + free ensures (memory_load64_le(mem, 130440bv64) == 2176bv64); + free ensures (memory_load64_le(mem, 131040bv64) == 131092bv64); + free ensures (memory_load64_le(mem, 131056bv64) == 2260bv64); + free ensures (memory_load64_le(mem, 131080bv64) == 131080bv64); -implementation main_1876() +implementation main() { - var Gamma_load18: bool; - var load18: bv64; + var $load$18: bv64; + var Gamma_$load$18: bool; var x_old: bv32; lmain: assume {:captureState "lmain"} true; - R9, Gamma_R9 := 65536bv64, true; + R8, Gamma_R8 := 126976bv64, true; + R9, Gamma_R9 := 5bv64, true; + R0, Gamma_R0 := 0bv64, true; call rely(); - load18, Gamma_load18 := memory_load64_le(mem, bvadd64(R9, 4040bv64)), (gamma_load64(Gamma_mem, bvadd64(R9, 4040bv64)) || L(mem, bvadd64(R9, 4040bv64))); - R9, Gamma_R9 := load18, Gamma_load18; - R8, Gamma_R8 := 5bv64, true; + $load$18, Gamma_$load$18 := memory_load64_le(mem, bvadd64(R8, 4064bv64)), (gamma_load64(Gamma_mem, bvadd64(R8, 4064bv64)) || L(mem, bvadd64(R8, 4064bv64))); + R8, Gamma_R8 := $load$18, Gamma_$load$18; call rely(); + assert (L(mem, R8) ==> Gamma_R9); x_old := memory_load32_le(mem, $x_addr); - assert (L(mem, R9) ==> Gamma_R8); - mem, Gamma_mem := memory_store32_le(mem, R9, R8[32:0]), gamma_store32(Gamma_mem, R9, Gamma_R8); + mem, Gamma_mem := memory_store32_le(mem, R8, R9[32:0]), gamma_store32(Gamma_mem, R8, Gamma_R9); assert ((memory_load32_le(mem, $x_addr) == x_old) || (memory_load32_le(mem, $x_addr) == 5bv32)); - assume {:captureState "%000002d9"} true; - R0, Gamma_R0 := 0bv64, true; - goto main_1876_basil_return; - main_1876_basil_return: - assume {:captureState "main_1876_basil_return"} true; + assume {:captureState "%0000028c"} true; + goto main_basil_return; + main_basil_return: + assume {:captureState "main_basil_return"} true; return; } diff --git a/src/test/correct/basic_assign_assign/clang_pic/basic_assign_assign.gts b/src/test/correct/basic_assign_assign/clang_pic/basic_assign_assign.gts deleted file mode 100644 index efe55146e..000000000 Binary files a/src/test/correct/basic_assign_assign/clang_pic/basic_assign_assign.gts and /dev/null differ diff --git a/src/test/correct/basic_assign_assign/clang_pic/basic_assign_assign.md5sum b/src/test/correct/basic_assign_assign/clang_pic/basic_assign_assign.md5sum new file mode 100644 index 000000000..27918c109 --- /dev/null +++ b/src/test/correct/basic_assign_assign/clang_pic/basic_assign_assign.md5sum @@ -0,0 +1,5 @@ +0a0cc6690d5c82e57ee4b7d04eb85d7d correct/basic_assign_assign/clang_pic/a.out +24f0232df0c5795bef61815d2cc96044 correct/basic_assign_assign/clang_pic/basic_assign_assign.adt +1d9a23e3e845875c7fef596f46e4ebd2 correct/basic_assign_assign/clang_pic/basic_assign_assign.bir +20b786cd526498091af606cc1012b2a5 correct/basic_assign_assign/clang_pic/basic_assign_assign.relf +902c85e44f0d9c5d295a5d9d0f049d2c correct/basic_assign_assign/clang_pic/basic_assign_assign.gts diff --git a/src/test/correct/basic_assign_assign/clang_pic/basic_assign_assign.relf b/src/test/correct/basic_assign_assign/clang_pic/basic_assign_assign.relf deleted file mode 100644 index 061c45760..000000000 --- a/src/test/correct/basic_assign_assign/clang_pic/basic_assign_assign.relf +++ /dev/null @@ -1,124 +0,0 @@ - -Relocation section '.rela.dyn' at offset 0x460 contains 9 entries: - Offset Info Type Symbol's Value Symbol's Name + Addend -0000000000010dc0 0000000000000403 R_AARCH64_RELATIVE 750 -0000000000010dc8 0000000000000403 R_AARCH64_RELATIVE 700 -0000000000010fc8 0000000000000403 R_AARCH64_RELATIVE 11034 -0000000000010fd8 0000000000000403 R_AARCH64_RELATIVE 754 -0000000000011028 0000000000000403 R_AARCH64_RELATIVE 11028 -0000000000010fb8 0000000400000401 R_AARCH64_GLOB_DAT 0000000000000000 _ITM_deregisterTMCloneTable + 0 -0000000000010fc0 0000000500000401 R_AARCH64_GLOB_DAT 0000000000000000 __cxa_finalize@GLIBC_2.17 + 0 -0000000000010fd0 0000000600000401 R_AARCH64_GLOB_DAT 0000000000000000 __gmon_start__ + 0 -0000000000010fe0 0000000800000401 R_AARCH64_GLOB_DAT 0000000000000000 _ITM_registerTMCloneTable + 0 - -Relocation section '.rela.plt' at offset 0x538 contains 4 entries: - Offset Info Type Symbol's Value Symbol's Name + Addend -0000000000011000 0000000300000402 R_AARCH64_JUMP_SLOT 0000000000000000 __libc_start_main@GLIBC_2.34 + 0 -0000000000011008 0000000500000402 R_AARCH64_JUMP_SLOT 0000000000000000 __cxa_finalize@GLIBC_2.17 + 0 -0000000000011010 0000000600000402 R_AARCH64_JUMP_SLOT 0000000000000000 __gmon_start__ + 0 -0000000000011018 0000000700000402 R_AARCH64_JUMP_SLOT 0000000000000000 abort@GLIBC_2.17 + 0 - -Symbol table '.dynsym' contains 9 entries: - Num: Value Size Type Bind Vis Ndx Name - 0: 0000000000000000 0 NOTYPE LOCAL DEFAULT UND - 1: 0000000000000598 0 SECTION LOCAL DEFAULT 11 .init - 2: 0000000000011020 0 SECTION LOCAL DEFAULT 23 .data - 3: 0000000000000000 0 FUNC GLOBAL DEFAULT UND __libc_start_main@GLIBC_2.34 (2) - 4: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_deregisterTMCloneTable - 5: 0000000000000000 0 FUNC WEAK DEFAULT UND __cxa_finalize@GLIBC_2.17 (3) - 6: 0000000000000000 0 NOTYPE WEAK DEFAULT UND __gmon_start__ - 7: 0000000000000000 0 FUNC GLOBAL DEFAULT UND abort@GLIBC_2.17 (3) - 8: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_registerTMCloneTable - -Symbol table '.symtab' contains 90 entries: - Num: Value Size Type Bind Vis Ndx Name - 0: 0000000000000000 0 NOTYPE LOCAL DEFAULT UND - 1: 0000000000000238 0 SECTION LOCAL DEFAULT 1 .interp - 2: 0000000000000254 0 SECTION LOCAL DEFAULT 2 .note.gnu.build-id - 3: 0000000000000278 0 SECTION LOCAL DEFAULT 3 .note.ABI-tag - 4: 0000000000000298 0 SECTION LOCAL DEFAULT 4 .gnu.hash - 5: 00000000000002b8 0 SECTION LOCAL DEFAULT 5 .dynsym - 6: 0000000000000390 0 SECTION LOCAL DEFAULT 6 .dynstr - 7: 000000000000041e 0 SECTION LOCAL DEFAULT 7 .gnu.version - 8: 0000000000000430 0 SECTION LOCAL DEFAULT 8 .gnu.version_r - 9: 0000000000000460 0 SECTION LOCAL DEFAULT 9 .rela.dyn - 10: 0000000000000538 0 SECTION LOCAL DEFAULT 10 .rela.plt - 11: 0000000000000598 0 SECTION LOCAL DEFAULT 11 .init - 12: 00000000000005b0 0 SECTION LOCAL DEFAULT 12 .plt - 13: 0000000000000640 0 SECTION LOCAL DEFAULT 13 .text - 14: 000000000000076c 0 SECTION LOCAL DEFAULT 14 .fini - 15: 0000000000000780 0 SECTION LOCAL DEFAULT 15 .rodata - 16: 0000000000000784 0 SECTION LOCAL DEFAULT 16 .eh_frame_hdr - 17: 00000000000007c0 0 SECTION LOCAL DEFAULT 17 .eh_frame - 18: 0000000000010dc0 0 SECTION LOCAL DEFAULT 18 .init_array - 19: 0000000000010dc8 0 SECTION LOCAL DEFAULT 19 .fini_array - 20: 0000000000010dd0 0 SECTION LOCAL DEFAULT 20 .dynamic - 21: 0000000000010fb0 0 SECTION LOCAL DEFAULT 21 .got - 22: 0000000000010fe8 0 SECTION LOCAL DEFAULT 22 .got.plt - 23: 0000000000011020 0 SECTION LOCAL DEFAULT 23 .data - 24: 0000000000011030 0 SECTION LOCAL DEFAULT 24 .bss - 25: 0000000000000000 0 SECTION LOCAL DEFAULT 25 .comment - 26: 0000000000000000 0 FILE LOCAL DEFAULT ABS Scrt1.o - 27: 0000000000000278 0 NOTYPE LOCAL DEFAULT 3 $d - 28: 0000000000000278 32 OBJECT LOCAL DEFAULT 3 __abi_tag - 29: 0000000000000640 0 NOTYPE LOCAL DEFAULT 13 $x - 30: 00000000000007d4 0 NOTYPE LOCAL DEFAULT 17 $d - 31: 0000000000000780 0 NOTYPE LOCAL DEFAULT 15 $d - 32: 0000000000000000 0 FILE LOCAL DEFAULT ABS crti.o - 33: 0000000000000674 0 NOTYPE LOCAL DEFAULT 13 $x - 34: 0000000000000674 20 FUNC LOCAL DEFAULT 13 call_weak_fn - 35: 0000000000000598 0 NOTYPE LOCAL DEFAULT 11 $x - 36: 000000000000076c 0 NOTYPE LOCAL DEFAULT 14 $x - 37: 0000000000000000 0 FILE LOCAL DEFAULT ABS crtn.o - 38: 00000000000005a8 0 NOTYPE LOCAL DEFAULT 11 $x - 39: 0000000000000778 0 NOTYPE LOCAL DEFAULT 14 $x - 40: 0000000000000000 0 FILE LOCAL DEFAULT ABS crtstuff.c - 41: 0000000000000690 0 NOTYPE LOCAL DEFAULT 13 $x - 42: 0000000000000690 0 FUNC LOCAL DEFAULT 13 deregister_tm_clones - 43: 00000000000006c0 0 FUNC LOCAL DEFAULT 13 register_tm_clones - 44: 0000000000011028 0 NOTYPE LOCAL DEFAULT 23 $d - 45: 0000000000000700 0 FUNC LOCAL DEFAULT 13 __do_global_dtors_aux - 46: 0000000000011030 1 OBJECT LOCAL DEFAULT 24 completed.0 - 47: 0000000000010dc8 0 NOTYPE LOCAL DEFAULT 19 $d - 48: 0000000000010dc8 0 OBJECT LOCAL DEFAULT 19 __do_global_dtors_aux_fini_array_entry - 49: 0000000000000750 0 FUNC LOCAL DEFAULT 13 frame_dummy - 50: 0000000000010dc0 0 NOTYPE LOCAL DEFAULT 18 $d - 51: 0000000000010dc0 0 OBJECT LOCAL DEFAULT 18 __frame_dummy_init_array_entry - 52: 00000000000007e8 0 NOTYPE LOCAL DEFAULT 17 $d - 53: 0000000000011030 0 NOTYPE LOCAL DEFAULT 24 $d - 54: 0000000000000000 0 FILE LOCAL DEFAULT ABS basic_assign_assign.c - 55: 0000000000000754 0 NOTYPE LOCAL DEFAULT 13 $x.0 - 56: 0000000000011034 0 NOTYPE LOCAL DEFAULT 24 $d.1 - 57: 000000000000002a 0 NOTYPE LOCAL DEFAULT 25 $d.2 - 58: 0000000000000848 0 NOTYPE LOCAL DEFAULT 17 $d.3 - 59: 0000000000000000 0 FILE LOCAL DEFAULT ABS crtstuff.c - 60: 0000000000000870 0 NOTYPE LOCAL DEFAULT 17 $d - 61: 0000000000000870 0 OBJECT LOCAL DEFAULT 17 __FRAME_END__ - 62: 0000000000000000 0 FILE LOCAL DEFAULT ABS - 63: 0000000000010dd0 0 OBJECT LOCAL DEFAULT ABS _DYNAMIC - 64: 0000000000000784 0 NOTYPE LOCAL DEFAULT 16 __GNU_EH_FRAME_HDR - 65: 0000000000010fb0 0 OBJECT LOCAL DEFAULT ABS _GLOBAL_OFFSET_TABLE_ - 66: 00000000000005b0 0 NOTYPE LOCAL DEFAULT 12 $x - 67: 0000000000000000 0 FUNC GLOBAL DEFAULT UND __libc_start_main@GLIBC_2.34 - 68: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_deregisterTMCloneTable - 69: 0000000000011020 0 NOTYPE WEAK DEFAULT 23 data_start - 70: 0000000000011030 0 NOTYPE GLOBAL DEFAULT 24 __bss_start__ - 71: 0000000000000000 0 FUNC WEAK DEFAULT UND __cxa_finalize@GLIBC_2.17 - 72: 0000000000011038 0 NOTYPE GLOBAL DEFAULT 24 _bss_end__ - 73: 0000000000011030 0 NOTYPE GLOBAL DEFAULT 23 _edata - 74: 0000000000011034 4 OBJECT GLOBAL DEFAULT 24 x - 75: 000000000000076c 0 FUNC GLOBAL HIDDEN 14 _fini - 76: 0000000000011038 0 NOTYPE GLOBAL DEFAULT 24 __bss_end__ - 77: 0000000000011020 0 NOTYPE GLOBAL DEFAULT 23 __data_start - 78: 0000000000000000 0 NOTYPE WEAK DEFAULT UND __gmon_start__ - 79: 0000000000011028 0 OBJECT GLOBAL HIDDEN 23 __dso_handle - 80: 0000000000000000 0 FUNC GLOBAL DEFAULT UND abort@GLIBC_2.17 - 81: 0000000000000780 4 OBJECT GLOBAL DEFAULT 15 _IO_stdin_used - 82: 0000000000011038 0 NOTYPE GLOBAL DEFAULT 24 _end - 83: 0000000000000640 52 FUNC GLOBAL DEFAULT 13 _start - 84: 0000000000011038 0 NOTYPE GLOBAL DEFAULT 24 __end__ - 85: 0000000000011030 0 NOTYPE GLOBAL DEFAULT 24 __bss_start - 86: 0000000000000754 24 FUNC GLOBAL DEFAULT 13 main - 87: 0000000000011030 0 OBJECT GLOBAL HIDDEN 23 __TMC_END__ - 88: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_registerTMCloneTable - 89: 0000000000000598 0 FUNC GLOBAL HIDDEN 11 _init diff --git a/src/test/correct/basic_assign_assign/clang_pic/basic_assign_assign_gtirb.expected b/src/test/correct/basic_assign_assign/clang_pic/basic_assign_assign_gtirb.expected index 3d03f3443..c2be6c759 100644 --- a/src/test/correct/basic_assign_assign/clang_pic/basic_assign_assign_gtirb.expected +++ b/src/test/correct/basic_assign_assign/clang_pic/basic_assign_assign_gtirb.expected @@ -7,7 +7,7 @@ var {:extern} R8: bv64; var {:extern} R9: bv64; var {:extern} mem: [bv64]bv8; const {:extern} $x_addr: bv64; -axiom ($x_addr == 69684bv64); +axiom ($x_addr == 131092bv64); function {:extern} L(mem$in: [bv64]bv8, index: bv64) returns (bool) { (if (index == $x_addr) then true else false) } @@ -37,12 +37,12 @@ procedure {:extern} rely(); modifies Gamma_mem, mem; ensures (forall i: bv64 :: (((mem[i] == old(mem[i])) ==> (Gamma_mem[i] == old(Gamma_mem[i]))))); ensures (((memory_load32_le(mem, $x_addr) == old(memory_load32_le(mem, $x_addr))) || (memory_load32_le(mem, $x_addr) == 1bv32)) || (memory_load32_le(mem, $x_addr) == 6bv32)); - free ensures (memory_load32_le(mem, 1920bv64) == 131073bv32); - free ensures (memory_load64_le(mem, 69056bv64) == 1872bv64); - free ensures (memory_load64_le(mem, 69064bv64) == 1792bv64); - free ensures (memory_load64_le(mem, 69576bv64) == 69684bv64); - free ensures (memory_load64_le(mem, 69592bv64) == 1876bv64); - free ensures (memory_load64_le(mem, 69672bv64) == 69672bv64); + free ensures (memory_load32_le(mem, 2304bv64) == 131073bv32); + free ensures (memory_load64_le(mem, 130432bv64) == 2256bv64); + free ensures (memory_load64_le(mem, 130440bv64) == 2176bv64); + free ensures (memory_load64_le(mem, 131040bv64) == 131092bv64); + free ensures (memory_load64_le(mem, 131056bv64) == 2260bv64); + free ensures (memory_load64_le(mem, 131080bv64) == 131080bv64); procedure {:extern} rely_transitive(); modifies Gamma_mem, mem; @@ -69,47 +69,47 @@ implementation {:extern} guarantee_reflexive() assert ((memory_load32_le(mem, $x_addr) == memory_load32_le(mem, $x_addr)) || (memory_load32_le(mem, $x_addr) == 5bv32)); } -procedure main_1876(); +procedure main(); modifies Gamma_R0, Gamma_R8, Gamma_R9, Gamma_mem, R0, R8, R9, mem; requires (memory_load32_le(mem, $x_addr) == 0bv32); - free requires (memory_load64_le(mem, 69664bv64) == 0bv64); - free requires (memory_load64_le(mem, 69672bv64) == 69672bv64); - free requires (memory_load32_le(mem, 1920bv64) == 131073bv32); - free requires (memory_load64_le(mem, 69056bv64) == 1872bv64); - free requires (memory_load64_le(mem, 69064bv64) == 1792bv64); - free requires (memory_load64_le(mem, 69576bv64) == 69684bv64); - free requires (memory_load64_le(mem, 69592bv64) == 1876bv64); - free requires (memory_load64_le(mem, 69672bv64) == 69672bv64); + free requires (memory_load64_le(mem, 131072bv64) == 0bv64); + free requires (memory_load64_le(mem, 131080bv64) == 131080bv64); + free requires (memory_load32_le(mem, 2304bv64) == 131073bv32); + free requires (memory_load64_le(mem, 130432bv64) == 2256bv64); + free requires (memory_load64_le(mem, 130440bv64) == 2176bv64); + free requires (memory_load64_le(mem, 131040bv64) == 131092bv64); + free requires (memory_load64_le(mem, 131056bv64) == 2260bv64); + free requires (memory_load64_le(mem, 131080bv64) == 131080bv64); ensures ((memory_load32_le(mem, $x_addr) == 5bv32) || (memory_load32_le(mem, $x_addr) == 6bv32)); - free ensures (memory_load32_le(mem, 1920bv64) == 131073bv32); - free ensures (memory_load64_le(mem, 69056bv64) == 1872bv64); - free ensures (memory_load64_le(mem, 69064bv64) == 1792bv64); - free ensures (memory_load64_le(mem, 69576bv64) == 69684bv64); - free ensures (memory_load64_le(mem, 69592bv64) == 1876bv64); - free ensures (memory_load64_le(mem, 69672bv64) == 69672bv64); + free ensures (memory_load32_le(mem, 2304bv64) == 131073bv32); + free ensures (memory_load64_le(mem, 130432bv64) == 2256bv64); + free ensures (memory_load64_le(mem, 130440bv64) == 2176bv64); + free ensures (memory_load64_le(mem, 131040bv64) == 131092bv64); + free ensures (memory_load64_le(mem, 131056bv64) == 2260bv64); + free ensures (memory_load64_le(mem, 131080bv64) == 131080bv64); -implementation main_1876() +implementation main() { - var Gamma_load16: bool; - var load16: bv64; + var $load11: bv64; + var Gamma_$load11: bool; var x_old: bv32; - main_1876__0__Qq63bBfPSoWeSaa0hhOw6Q: - assume {:captureState "main_1876__0__Qq63bBfPSoWeSaa0hhOw6Q"} true; - R9, Gamma_R9 := 65536bv64, true; + $main$__0__$oqiqdATZTc6MDOYJqL9Aew: + assume {:captureState "$main$__0__$oqiqdATZTc6MDOYJqL9Aew"} true; + R8, Gamma_R8 := 126976bv64, true; + R9, Gamma_R9 := 5bv64, true; + R0, Gamma_R0 := 0bv64, true; call rely(); - load16, Gamma_load16 := memory_load64_le(mem, bvadd64(R9, 4040bv64)), (gamma_load64(Gamma_mem, bvadd64(R9, 4040bv64)) || L(mem, bvadd64(R9, 4040bv64))); - R9, Gamma_R9 := load16, Gamma_load16; - R8, Gamma_R8 := 5bv64, true; + $load11, Gamma_$load11 := memory_load64_le(mem, bvadd64(R8, 4064bv64)), (gamma_load64(Gamma_mem, bvadd64(R8, 4064bv64)) || L(mem, bvadd64(R8, 4064bv64))); + R8, Gamma_R8 := $load11, Gamma_$load11; call rely(); + assert (L(mem, R8) ==> Gamma_R9); x_old := memory_load32_le(mem, $x_addr); - assert (L(mem, R9) ==> Gamma_R8); - mem, Gamma_mem := memory_store32_le(mem, R9, R8[32:0]), gamma_store32(Gamma_mem, R9, Gamma_R8); + mem, Gamma_mem := memory_store32_le(mem, R8, R9[32:0]), gamma_store32(Gamma_mem, R8, Gamma_R9); assert ((memory_load32_le(mem, $x_addr) == x_old) || (memory_load32_le(mem, $x_addr) == 5bv32)); - assume {:captureState "1888_0"} true; - R0, Gamma_R0 := 0bv64, true; - goto main_1876_basil_return; - main_1876_basil_return: - assume {:captureState "main_1876_basil_return"} true; + assume {:captureState "2276$0"} true; + goto main_basil_return; + main_basil_return: + assume {:captureState "main_basil_return"} true; return; } diff --git a/src/test/correct/basic_assign_assign/gcc/basic_assign_assign.adt b/src/test/correct/basic_assign_assign/gcc/basic_assign_assign.adt deleted file mode 100644 index fa2c3b121..000000000 --- a/src/test/correct/basic_assign_assign/gcc/basic_assign_assign.adt +++ /dev/null @@ -1,492 +0,0 @@ -Project(Attrs([Attr("filename","\"gcc/basic_assign_assign.out\""), -Attr("image-specification","(declare abi (name str))\n(declare arch (name str))\n(declare base-address (addr int))\n(declare bias (off int))\n(declare bits (size int))\n(declare code-region (addr int) (size int) (off int))\n(declare code-start (addr int))\n(declare entry-point (addr int))\n(declare external-reference (addr int) (name str))\n(declare format (name str))\n(declare is-executable (flag bool))\n(declare is-little-endian (flag bool))\n(declare llvm:base-address (addr int))\n(declare llvm:code-entry (name str) (off int) (size int))\n(declare llvm:coff-import-library (name str))\n(declare llvm:coff-virtual-section-header (name str) (addr int) (size int))\n(declare llvm:elf-program-header (name str) (off int) (size int))\n(declare llvm:elf-program-header-flags (name str) (ld bool) (r bool) \n (w bool) (x bool))\n(declare llvm:elf-virtual-program-header (name str) (addr int) (size int))\n(declare llvm:entry-point (addr int))\n(declare llvm:macho-symbol (name str) (value int))\n(declare llvm:name-reference (at int) (name str))\n(declare llvm:relocation (at int) (addr int))\n(declare llvm:section-entry (name str) (addr int) (size int) (off int))\n(declare llvm:section-flags (name str) (r bool) (w bool) (x bool))\n(declare llvm:segment-command (name str) (off int) (size int))\n(declare llvm:segment-command-flags (name str) (r bool) (w bool) (x bool))\n(declare llvm:symbol-entry (name str) (addr int) (size int) (off int)\n (value int))\n(declare llvm:virtual-segment-command (name str) (addr int) (size int))\n(declare mapped (addr int) (size int) (off int))\n(declare named-region (addr int) (size int) (name str))\n(declare named-symbol (addr int) (name str))\n(declare require (name str))\n(declare section (addr int) (size int))\n(declare segment (addr int) (size int) (r bool) (w bool) (x bool))\n(declare subarch (name str))\n(declare symbol-chunk (addr int) (size int) (root int))\n(declare symbol-value (addr int) (value int))\n(declare system (name str))\n(declare vendor (name str))\n\n(abi unknown)\n(arch aarch64)\n(base-address 0)\n(bias 0)\n(bits 64)\n(code-region 1836 20 1836)\n(code-region 1536 300 1536)\n(code-region 1440 96 1440)\n(code-region 1408 24 1408)\n(code-start 1588)\n(code-start 1536)\n(code-start 1812)\n(entry-point 1536)\n(external-reference 69592 _ITM_deregisterTMCloneTable)\n(external-reference 69600 __cxa_finalize)\n(external-reference 69608 __gmon_start__)\n(external-reference 69624 _ITM_registerTMCloneTable)\n(external-reference 69552 __libc_start_main)\n(external-reference 69560 __cxa_finalize)\n(external-reference 69568 __gmon_start__)\n(external-reference 69576 abort)\n(format elf)\n(is-executable true)\n(is-little-endian true)\n(llvm:base-address 0)\n(llvm:code-entry abort 0 0)\n(llvm:code-entry __cxa_finalize 0 0)\n(llvm:code-entry __libc_start_main 0 0)\n(llvm:code-entry _init 1408 0)\n(llvm:code-entry main 1812 24)\n(llvm:code-entry _start 1536 52)\n(llvm:code-entry abort@GLIBC_2.17 0 0)\n(llvm:code-entry _fini 1836 0)\n(llvm:code-entry __cxa_finalize@GLIBC_2.17 0 0)\n(llvm:code-entry __libc_start_main@GLIBC_2.34 0 0)\n(llvm:code-entry frame_dummy 1808 0)\n(llvm:code-entry __do_global_dtors_aux 1728 0)\n(llvm:code-entry register_tm_clones 1664 0)\n(llvm:code-entry deregister_tm_clones 1616 0)\n(llvm:code-entry call_weak_fn 1588 20)\n(llvm:code-entry .fini 1836 20)\n(llvm:code-entry .text 1536 300)\n(llvm:code-entry .plt 1440 96)\n(llvm:code-entry .init 1408 24)\n(llvm:elf-program-header 08 3480 616)\n(llvm:elf-program-header 07 0 0)\n(llvm:elf-program-header 06 1860 60)\n(llvm:elf-program-header 05 596 68)\n(llvm:elf-program-header 04 3496 496)\n(llvm:elf-program-header 03 3480 632)\n(llvm:elf-program-header 02 0 2080)\n(llvm:elf-program-header 01 568 27)\n(llvm:elf-program-header 00 64 504)\n(llvm:elf-program-header-flags 08 false true false false)\n(llvm:elf-program-header-flags 07 false true true false)\n(llvm:elf-program-header-flags 06 false true false false)\n(llvm:elf-program-header-flags 05 false true false false)\n(llvm:elf-program-header-flags 04 false true true false)\n(llvm:elf-program-header-flags 03 true true true false)\n(llvm:elf-program-header-flags 02 true true false true)\n(llvm:elf-program-header-flags 01 false true false false)\n(llvm:elf-program-header-flags 00 false true false false)\n(llvm:elf-virtual-program-header 08 69016 616)\n(llvm:elf-virtual-program-header 07 0 0)\n(llvm:elf-virtual-program-header 06 1860 60)\n(llvm:elf-virtual-program-header 05 596 68)\n(llvm:elf-virtual-program-header 04 69032 496)\n(llvm:elf-virtual-program-header 03 69016 640)\n(llvm:elf-virtual-program-header 02 0 2080)\n(llvm:elf-virtual-program-header 01 568 27)\n(llvm:elf-virtual-program-header 00 64 504)\n(llvm:entry-point 1536)\n(llvm:name-reference 69576 abort)\n(llvm:name-reference 69568 __gmon_start__)\n(llvm:name-reference 69560 __cxa_finalize)\n(llvm:name-reference 69552 __libc_start_main)\n(llvm:name-reference 69624 _ITM_registerTMCloneTable)\n(llvm:name-reference 69608 __gmon_start__)\n(llvm:name-reference 69600 __cxa_finalize)\n(llvm:name-reference 69592 _ITM_deregisterTMCloneTable)\n(llvm:section-entry .shstrtab 0 250 6827)\n(llvm:section-entry .strtab 0 555 6272)\n(llvm:section-entry .symtab 0 2112 4160)\n(llvm:section-entry .comment 0 43 4112)\n(llvm:section-entry .bss 69648 8 4112)\n(llvm:section-entry .data 69632 16 4096)\n(llvm:section-entry .got 69528 104 3992)\n(llvm:section-entry .dynamic 69032 496 3496)\n(llvm:section-entry .fini_array 69024 8 3488)\n(llvm:section-entry .init_array 69016 8 3480)\n(llvm:section-entry .eh_frame 1920 160 1920)\n(llvm:section-entry .eh_frame_hdr 1860 60 1860)\n(llvm:section-entry .rodata 1856 4 1856)\n(llvm:section-entry .fini 1836 20 1836)\n(llvm:section-entry .text 1536 300 1536)\n(llvm:section-entry .plt 1440 96 1440)\n(llvm:section-entry .init 1408 24 1408)\n(llvm:section-entry .rela.plt 1312 96 1312)\n(llvm:section-entry .rela.dyn 1120 192 1120)\n(llvm:section-entry .gnu.version_r 1072 48 1072)\n(llvm:section-entry .gnu.version 1054 18 1054)\n(llvm:section-entry .dynstr 912 141 912)\n(llvm:section-entry .dynsym 696 216 696)\n(llvm:section-entry .gnu.hash 664 28 664)\n(llvm:section-entry .note.ABI-tag 632 32 632)\n(llvm:section-entry .note.gnu.build-id 596 36 596)\n(llvm:section-entry .interp 568 27 568)\n(llvm:section-flags .shstrtab true false false)\n(llvm:section-flags .strtab true false false)\n(llvm:section-flags .symtab true false false)\n(llvm:section-flags .comment true false false)\n(llvm:section-flags .bss true true false)\n(llvm:section-flags .data true true false)\n(llvm:section-flags .got true true false)\n(llvm:section-flags .dynamic true true false)\n(llvm:section-flags .fini_array true true false)\n(llvm:section-flags .init_array true true false)\n(llvm:section-flags .eh_frame true false false)\n(llvm:section-flags .eh_frame_hdr true false false)\n(llvm:section-flags .rodata true false false)\n(llvm:section-flags .fini true false true)\n(llvm:section-flags .text true false true)\n(llvm:section-flags .plt true false true)\n(llvm:section-flags .init true false true)\n(llvm:section-flags .rela.plt true false false)\n(llvm:section-flags .rela.dyn true false false)\n(llvm:section-flags .gnu.version_r true false false)\n(llvm:section-flags .gnu.version true false false)\n(llvm:section-flags .dynstr true false false)\n(llvm:section-flags .dynsym true false false)\n(llvm:section-flags .gnu.hash true false false)\n(llvm:section-flags .note.ABI-tag true false false)\n(llvm:section-flags .note.gnu.build-id true false false)\n(llvm:section-flags .interp true false false)\n(llvm:symbol-entry abort 0 0 0 0)\n(llvm:symbol-entry __cxa_finalize 0 0 0 0)\n(llvm:symbol-entry __libc_start_main 0 0 0 0)\n(llvm:symbol-entry _init 1408 0 1408 1408)\n(llvm:symbol-entry main 1812 24 1812 1812)\n(llvm:symbol-entry _start 1536 52 1536 1536)\n(llvm:symbol-entry abort@GLIBC_2.17 0 0 0 0)\n(llvm:symbol-entry _fini 1836 0 1836 1836)\n(llvm:symbol-entry __cxa_finalize@GLIBC_2.17 0 0 0 0)\n(llvm:symbol-entry __libc_start_main@GLIBC_2.34 0 0 0 0)\n(llvm:symbol-entry frame_dummy 1808 0 1808 1808)\n(llvm:symbol-entry __do_global_dtors_aux 1728 0 1728 1728)\n(llvm:symbol-entry register_tm_clones 1664 0 1664 1664)\n(llvm:symbol-entry deregister_tm_clones 1616 0 1616 1616)\n(llvm:symbol-entry call_weak_fn 1588 20 1588 1588)\n(mapped 0 2080 0)\n(mapped 69016 632 3480)\n(named-region 0 2080 02)\n(named-region 69016 640 03)\n(named-region 568 27 .interp)\n(named-region 596 36 .note.gnu.build-id)\n(named-region 632 32 .note.ABI-tag)\n(named-region 664 28 .gnu.hash)\n(named-region 696 216 .dynsym)\n(named-region 912 141 .dynstr)\n(named-region 1054 18 .gnu.version)\n(named-region 1072 48 .gnu.version_r)\n(named-region 1120 192 .rela.dyn)\n(named-region 1312 96 .rela.plt)\n(named-region 1408 24 .init)\n(named-region 1440 96 .plt)\n(named-region 1536 300 .text)\n(named-region 1836 20 .fini)\n(named-region 1856 4 .rodata)\n(named-region 1860 60 .eh_frame_hdr)\n(named-region 1920 160 .eh_frame)\n(named-region 69016 8 .init_array)\n(named-region 69024 8 .fini_array)\n(named-region 69032 496 .dynamic)\n(named-region 69528 104 .got)\n(named-region 69632 16 .data)\n(named-region 69648 8 .bss)\n(named-region 0 43 .comment)\n(named-region 0 2112 .symtab)\n(named-region 0 555 .strtab)\n(named-region 0 250 .shstrtab)\n(named-symbol 1588 call_weak_fn)\n(named-symbol 1616 deregister_tm_clones)\n(named-symbol 1664 register_tm_clones)\n(named-symbol 1728 __do_global_dtors_aux)\n(named-symbol 1808 frame_dummy)\n(named-symbol 0 __libc_start_main@GLIBC_2.34)\n(named-symbol 0 __cxa_finalize@GLIBC_2.17)\n(named-symbol 1836 _fini)\n(named-symbol 0 abort@GLIBC_2.17)\n(named-symbol 1536 _start)\n(named-symbol 1812 main)\n(named-symbol 1408 _init)\n(named-symbol 0 __libc_start_main)\n(named-symbol 0 __cxa_finalize)\n(named-symbol 0 abort)\n(require libc.so.6)\n(section 568 27)\n(section 596 36)\n(section 632 32)\n(section 664 28)\n(section 696 216)\n(section 912 141)\n(section 1054 18)\n(section 1072 48)\n(section 1120 192)\n(section 1312 96)\n(section 1408 24)\n(section 1440 96)\n(section 1536 300)\n(section 1836 20)\n(section 1856 4)\n(section 1860 60)\n(section 1920 160)\n(section 69016 8)\n(section 69024 8)\n(section 69032 496)\n(section 69528 104)\n(section 69632 16)\n(section 69648 8)\n(section 0 43)\n(section 0 2112)\n(section 0 555)\n(section 0 250)\n(segment 0 2080 true false true)\n(segment 69016 640 true true false)\n(subarch v8)\n(symbol-chunk 1588 20 1588)\n(symbol-chunk 1536 52 1536)\n(symbol-chunk 1812 24 1812)\n(symbol-value 1588 1588)\n(symbol-value 1616 1616)\n(symbol-value 1664 1664)\n(symbol-value 1728 1728)\n(symbol-value 1808 1808)\n(symbol-value 1836 1836)\n(symbol-value 1536 1536)\n(symbol-value 1812 1812)\n(symbol-value 1408 1408)\n(symbol-value 0 0)\n(system \"\")\n(vendor \"\")\n"), -Attr("abi-name","\"aarch64-linux-gnu-elf\"")]), -Sections([Section(".shstrtab", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x00\x06\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xa8\x1b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x38\x00\x09\x00\x40\x00\x1c\x00\x1b\x00\x06\x00\x00\x00\x04\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x04\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x20\x08\x00\x00\x00\x00\x00\x00\x20\x08\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x01\x00\x00\x00\x06\x00\x00\x00\x98\x0d\x00\x00\x00\x00\x00\x00\x98\x0d"), -Section(".strtab", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x00\x06\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xa8\x1b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x38\x00\x09\x00\x40\x00\x1c\x00\x1b\x00\x06\x00\x00\x00\x04\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x04\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x20\x08\x00\x00\x00\x00\x00\x00\x20\x08\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x01\x00\x00\x00\x06\x00\x00\x00\x98\x0d\x00\x00\x00\x00\x00\x00\x98\x0d\x01\x00\x00\x00\x00\x00\x98\x0d\x01\x00\x00\x00\x00\x00\x78\x02\x00\x00\x00\x00\x00\x00\x80\x02\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x02\x00\x00\x00\x06\x00\x00\x00\xa8\x0d\x00\x00\x00\x00\x00\x00\xa8\x0d\x01\x00\x00\x00\x00\x00\xa8\x0d\x01\x00\x00\x00\x00\x00\xf0\x01\x00\x00\x00\x00\x00\x00\xf0\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x04\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x50\xe5\x74\x64\x04\x00\x00\x00\x44\x07\x00\x00\x00\x00\x00\x00\x44\x07\x00\x00\x00\x00\x00\x00\x44\x07\x00\x00\x00\x00\x00\x00\x3c\x00\x00\x00\x00\x00\x00\x00\x3c\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x51\xe5\x74\x64\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x52\xe5\x74\x64\x04\x00\x00\x00\x98\x0d\x00\x00\x00\x00\x00\x00\x98\x0d\x01\x00\x00\x00\x00\x00\x98\x0d\x01\x00\x00\x00\x00\x00\x68\x02\x00\x00\x00\x00\x00\x00\x68\x02\x00"), -Section(".comment", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x00\x06\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xa8\x1b\x00"), -Section(".interp", 0x238, "\x2f\x6c\x69\x62\x2f\x6c\x64\x2d\x6c\x69\x6e\x75\x78\x2d\x61\x61\x72\x63\x68\x36\x34\x2e\x73\x6f\x2e\x31\x00"), -Section(".note.gnu.build-id", 0x254, "\x04\x00\x00\x00\x14\x00\x00\x00\x03\x00\x00\x00\x47\x4e\x55\x00\xfd\xb7\x20\xd9\x0e\x30\x72\xba\xa5\xac\x35\x8e\xaa\x1e\x61\x94\xfe\xc5\x4d\xac"), -Section(".note.ABI-tag", 0x278, "\x04\x00\x00\x00\x10\x00\x00\x00\x01\x00\x00\x00\x47\x4e\x55\x00\x00\x00\x00\x00\x03\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00"), -Section(".gnu.hash", 0x298, "\x01\x00\x00\x00\x01\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".dynsym", 0x2B8, "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x0b\x00\x80\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x16\x00\x00\x10\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x48\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x22\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x22\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x73\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".dynstr", 0x390, "\x00\x5f\x5f\x63\x78\x61\x5f\x66\x69\x6e\x61\x6c\x69\x7a\x65\x00\x5f\x5f\x6c\x69\x62\x63\x5f\x73\x74\x61\x72\x74\x5f\x6d\x61\x69\x6e\x00\x61\x62\x6f\x72\x74\x00\x6c\x69\x62\x63\x2e\x73\x6f\x2e\x36\x00\x47\x4c\x49\x42\x43\x5f\x32\x2e\x31\x37\x00\x47\x4c\x49\x42\x43\x5f\x32\x2e\x33\x34\x00\x5f\x49\x54\x4d\x5f\x64\x65\x72\x65\x67\x69\x73\x74\x65\x72\x54\x4d\x43\x6c\x6f\x6e\x65\x54\x61\x62\x6c\x65\x00\x5f\x5f\x67\x6d\x6f\x6e\x5f\x73\x74\x61\x72\x74\x5f\x5f\x00\x5f\x49\x54\x4d\x5f\x72\x65\x67\x69\x73\x74\x65\x72\x54\x4d\x43\x6c\x6f\x6e\x65\x54\x61\x62\x6c\x65\x00"), -Section(".gnu.version", 0x41E, "\x00\x00\x00\x00\x00\x00\x02\x00\x01\x00\x03\x00\x01\x00\x03\x00\x01\x00"), -Section(".gnu.version_r", 0x430, "\x01\x00\x02\x00\x28\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x97\x91\x96\x06\x00\x00\x03\x00\x32\x00\x00\x00\x10\x00\x00\x00\xb4\x91\x96\x06\x00\x00\x02\x00\x3d\x00\x00\x00\x00\x00\x00\x00"), -Section(".rela.dyn", 0x460, "\x98\x0d\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x10\x07\x00\x00\x00\x00\x00\x00\xa0\x0d\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\xc0\x06\x00\x00\x00\x00\x00\x00\xf0\x0f\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x14\x07\x00\x00\x00\x00\x00\x00\x08\x10\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x08\x10\x01\x00\x00\x00\x00\x00\xd8\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe0\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe8\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xf8\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".rela.plt", 0x520, "\xb0\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xb8\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xc0\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xc8\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".init", 0x580, "\x1f\x20\x03\xd5\xfd\x7b\xbf\xa9\xfd\x03\x00\x91\x2a\x00\x00\x94\xfd\x7b\xc1\xa8\xc0\x03\x5f\xd6"), -Section(".plt", 0x5A0, "\xf0\x7b\xbf\xa9\x90\x00\x00\x90\x11\xd6\x47\xf9\x10\xa2\x3e\x91\x20\x02\x1f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x90\x00\x00\x90\x11\xda\x47\xf9\x10\xc2\x3e\x91\x20\x02\x1f\xd6\x90\x00\x00\x90\x11\xde\x47\xf9\x10\xe2\x3e\x91\x20\x02\x1f\xd6\x90\x00\x00\x90\x11\xe2\x47\xf9\x10\x02\x3f\x91\x20\x02\x1f\xd6\x90\x00\x00\x90\x11\xe6\x47\xf9\x10\x22\x3f\x91\x20\x02\x1f\xd6"), -Section(".text", 0x600, "\x1f\x20\x03\xd5\x1d\x00\x80\xd2\x1e\x00\x80\xd2\xe5\x03\x00\xaa\xe1\x03\x40\xf9\xe2\x23\x00\x91\xe6\x03\x00\x91\x80\x00\x00\x90\x00\xf8\x47\xf9\x03\x00\x80\xd2\x04\x00\x80\xd2\xe5\xff\xff\x97\xf0\xff\xff\x97\x80\x00\x00\x90\x00\xf4\x47\xf9\x40\x00\x00\xb4\xe8\xff\xff\x17\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x80\x00\x00\xb0\x00\x40\x00\x91\x81\x00\x00\xb0\x21\x40\x00\x91\x3f\x00\x00\xeb\xc0\x00\x00\x54\x81\x00\x00\x90\x21\xec\x47\xf9\x61\x00\x00\xb4\xf0\x03\x01\xaa\x00\x02\x1f\xd6\xc0\x03\x5f\xd6\x80\x00\x00\xb0\x00\x40\x00\x91\x81\x00\x00\xb0\x21\x40\x00\x91\x21\x00\x00\xcb\x22\xfc\x7f\xd3\x41\x0c\x81\x8b\x21\xfc\x41\x93\xc1\x00\x00\xb4\x82\x00\x00\x90\x42\xfc\x47\xf9\x62\x00\x00\xb4\xf0\x03\x02\xaa\x00\x02\x1f\xd6\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\xfd\x7b\xbe\xa9\xfd\x03\x00\x91\xf3\x0b\x00\xf9\x93\x00\x00\xb0\x60\x42\x40\x39\x40\x01\x00\x35\x80\x00\x00\x90\x00\xf0\x47\xf9\x80\x00\x00\xb4\x80\x00\x00\xb0\x00\x04\x40\xf9\xb9\xff\xff\x97\xd8\xff\xff\x97\x20\x00\x80\x52\x60\x42\x00\x39\xf3\x0b\x40\xf9\xfd\x7b\xc2\xa8\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\xdc\xff\xff\x17\x80\x00\x00\xb0\x00\x50\x00\x91\xa1\x00\x80\x52\x01\x00\x00\xb9\x00\x00\x80\x52\xc0\x03\x5f\xd6"), -Section(".fini", 0x72C, "\x1f\x20\x03\xd5\xfd\x7b\xbf\xa9\xfd\x03\x00\x91\xfd\x7b\xc1\xa8\xc0\x03\x5f\xd6"), -Section(".rodata", 0x740, "\x01\x00\x02\x00"), -Section(".eh_frame_hdr", 0x744, "\x01\x1b\x03\x3b\x38\x00\x00\x00\x06\x00\x00\x00\xbc\xfe\xff\xff\x50\x00\x00\x00\x0c\xff\xff\xff\x64\x00\x00\x00\x3c\xff\xff\xff\x78\x00\x00\x00\x7c\xff\xff\xff\x8c\x00\x00\x00\xcc\xff\xff\xff\xb0\x00\x00\x00\xd0\xff\xff\xff\xc4\x00\x00\x00"), -Section(".eh_frame", 0x780, "\x10\x00\x00\x00\x00\x00\x00\x00\x01\x7a\x52\x00\x04\x78\x1e\x01\x1b\x0c\x1f\x00\x10\x00\x00\x00\x18\x00\x00\x00\x64\xfe\xff\xff\x34\x00\x00\x00\x00\x41\x07\x1e\x10\x00\x00\x00\x2c\x00\x00\x00\xa0\xfe\xff\xff\x30\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x40\x00\x00\x00\xbc\xfe\xff\xff\x3c\x00\x00\x00\x00\x00\x00\x00\x20\x00\x00\x00\x54\x00\x00\x00\xe8\xfe\xff\xff\x48\x00\x00\x00\x00\x41\x0e\x20\x9d\x04\x9e\x03\x42\x93\x02\x4e\xde\xdd\xd3\x0e\x00\x00\x00\x00\x10\x00\x00\x00\x78\x00\x00\x00\x14\xff\xff\xff\x04\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x8c\x00\x00\x00\x04\xff\xff\xff\x18\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".fini_array", 0x10DA0, "\xc0\x06\x00\x00\x00\x00\x00\x00"), -Section(".dynamic", 0x10DA8, "\x01\x00\x00\x00\x00\x00\x00\x00\x28\x00\x00\x00\x00\x00\x00\x00\x0c\x00\x00\x00\x00\x00\x00\x00\x80\x05\x00\x00\x00\x00\x00\x00\x0d\x00\x00\x00\x00\x00\x00\x00\x2c\x07\x00\x00\x00\x00\x00\x00\x19\x00\x00\x00\x00\x00\x00\x00\x98\x0d\x01\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x1a\x00\x00\x00\x00\x00\x00\x00\xa0\x0d\x01\x00\x00\x00\x00\x00\x1c\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\xf5\xfe\xff\x6f\x00\x00\x00\x00\x98\x02\x00\x00\x00\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x90\x03\x00\x00\x00\x00\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\xb8\x02\x00\x00\x00\x00\x00\x00\x0a\x00\x00\x00\x00\x00\x00\x00\x8d\x00\x00\x00\x00\x00\x00\x00\x0b\x00\x00\x00\x00\x00\x00\x00\x18\x00\x00\x00\x00\x00\x00\x00\x15\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x98\x0f\x01\x00\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x60\x00\x00\x00\x00\x00\x00\x00\x14\x00\x00\x00\x00\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x17\x00\x00\x00\x00\x00\x00\x00\x20\x05\x00\x00\x00\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x60\x04\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\xc0\x00\x00\x00\x00\x00\x00\x00\x09\x00\x00\x00\x00\x00\x00\x00\x18\x00\x00\x00\x00\x00\x00\x00\x1e\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\xfb\xff\xff\x6f\x00\x00\x00\x00\x01\x00\x00\x08\x00\x00\x00\x00\xfe\xff\xff\x6f\x00\x00\x00\x00\x30\x04\x00\x00\x00\x00\x00\x00\xff\xff\xff\x6f\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\xf0\xff\xff\x6f\x00\x00\x00\x00\x1e\x04\x00\x00\x00\x00\x00\x00\xf9\xff\xff\x6f\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".got", 0x10F98, "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xa0\x05\x00\x00\x00\x00\x00\x00\xa0\x05\x00\x00\x00\x00\x00\x00\xa0\x05\x00\x00\x00\x00\x00\x00\xa0\x05\x00\x00\x00\x00\x00\x00\xa8\x0d\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x14\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".data", 0x11000, "\x00\x00\x00\x00\x00\x00\x00\x00\x08\x10\x01\x00\x00\x00\x00\x00"), -Section(".init_array", 0x10D98, "\x10\x07\x00\x00\x00\x00\x00\x00")]), -Memmap([Annotation(Region(0x0,0x81F), Attr("segment","02 0 2080")), -Annotation(Region(0x600,0x633), Attr("symbol","\"_start\"")), -Annotation(Region(0x0,0xF9), Attr("section","\".shstrtab\"")), -Annotation(Region(0x0,0x22A), Attr("section","\".strtab\"")), -Annotation(Region(0x0,0x2A), Attr("section","\".comment\"")), -Annotation(Region(0x238,0x252), Attr("section","\".interp\"")), -Annotation(Region(0x254,0x277), Attr("section","\".note.gnu.build-id\"")), -Annotation(Region(0x278,0x297), Attr("section","\".note.ABI-tag\"")), -Annotation(Region(0x298,0x2B3), Attr("section","\".gnu.hash\"")), -Annotation(Region(0x2B8,0x38F), Attr("section","\".dynsym\"")), -Annotation(Region(0x390,0x41C), Attr("section","\".dynstr\"")), -Annotation(Region(0x41E,0x42F), Attr("section","\".gnu.version\"")), -Annotation(Region(0x430,0x45F), Attr("section","\".gnu.version_r\"")), -Annotation(Region(0x460,0x51F), Attr("section","\".rela.dyn\"")), -Annotation(Region(0x520,0x57F), Attr("section","\".rela.plt\"")), -Annotation(Region(0x580,0x597), Attr("section","\".init\"")), -Annotation(Region(0x5A0,0x5FF), Attr("section","\".plt\"")), -Annotation(Region(0x580,0x597), Attr("code-region","()")), -Annotation(Region(0x5A0,0x5FF), Attr("code-region","()")), -Annotation(Region(0x600,0x633), Attr("symbol-info","_start 0x600 52")), -Annotation(Region(0x634,0x647), Attr("symbol","\"call_weak_fn\"")), -Annotation(Region(0x634,0x647), Attr("symbol-info","call_weak_fn 0x634 20")), -Annotation(Region(0x600,0x72B), Attr("section","\".text\"")), -Annotation(Region(0x600,0x72B), Attr("code-region","()")), -Annotation(Region(0x714,0x72B), Attr("symbol","\"main\"")), -Annotation(Region(0x714,0x72B), Attr("symbol-info","main 0x714 24")), -Annotation(Region(0x72C,0x73F), Attr("section","\".fini\"")), -Annotation(Region(0x72C,0x73F), Attr("code-region","()")), -Annotation(Region(0x740,0x743), Attr("section","\".rodata\"")), -Annotation(Region(0x744,0x77F), Attr("section","\".eh_frame_hdr\"")), -Annotation(Region(0x780,0x81F), Attr("section","\".eh_frame\"")), -Annotation(Region(0x10D98,0x1100F), Attr("segment","03 0x10D98 640")), -Annotation(Region(0x10DA0,0x10DA7), Attr("section","\".fini_array\"")), -Annotation(Region(0x10DA8,0x10F97), Attr("section","\".dynamic\"")), -Annotation(Region(0x10F98,0x10FFF), Attr("section","\".got\"")), -Annotation(Region(0x11000,0x1100F), Attr("section","\".data\"")), -Annotation(Region(0x10D98,0x10D9F), Attr("section","\".init_array\""))]), -Program(Tid(1_429, "%00000595"), Attrs([]), - Subs([Sub(Tid(1_379, "@__cxa_finalize"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x5D0"), -Attr("stub","()")]), "__cxa_finalize", Args([Arg(Tid(1_430, "%00000596"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("__cxa_finalize_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(795, "@__cxa_finalize"), - Attrs([Attr("address","0x5D0")]), Phis([]), -Defs([Def(Tid(1_043, "%00000413"), Attrs([Attr("address","0x5D0"), -Attr("insn","adrp x16, #65536")]), Var("R16",Imm(64)), Int(65536,64)), -Def(Tid(1_050, "%0000041a"), Attrs([Attr("address","0x5D4"), -Attr("insn","ldr x17, [x16, #0xfb8]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(4024,64)),LittleEndian(),64)), -Def(Tid(1_056, "%00000420"), Attrs([Attr("address","0x5D8"), -Attr("insn","add x16, x16, #0xfb8")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(4024,64)))]), Jmps([Call(Tid(1_061, "%00000425"), - Attrs([Attr("address","0x5DC"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), -Sub(Tid(1_380, "@__do_global_dtors_aux"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x6C0")]), - "__do_global_dtors_aux", Args([Arg(Tid(1_431, "%00000597"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("__do_global_dtors_aux_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(614, "@__do_global_dtors_aux"), - Attrs([Attr("address","0x6C0")]), Phis([]), Defs([Def(Tid(618, "%0000026a"), - Attrs([Attr("address","0x6C0"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("#3",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(18446744073709551584,64))), -Def(Tid(624, "%00000270"), Attrs([Attr("address","0x6C0"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("#3",Imm(64)),Var("R29",Imm(64)),LittleEndian(),64)), -Def(Tid(630, "%00000276"), Attrs([Attr("address","0x6C0"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("#3",Imm(64)),Int(8,64)),Var("R30",Imm(64)),LittleEndian(),64)), -Def(Tid(634, "%0000027a"), Attrs([Attr("address","0x6C0"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("R31",Imm(64)), -Var("#3",Imm(64))), Def(Tid(640, "%00000280"), - Attrs([Attr("address","0x6C4"), Attr("insn","mov x29, sp")]), - Var("R29",Imm(64)), Var("R31",Imm(64))), Def(Tid(648, "%00000288"), - Attrs([Attr("address","0x6C8"), Attr("insn","str x19, [sp, #0x10]")]), - Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(16,64)),Var("R19",Imm(64)),LittleEndian(),64)), -Def(Tid(653, "%0000028d"), Attrs([Attr("address","0x6CC"), -Attr("insn","adrp x19, #69632")]), Var("R19",Imm(64)), Int(69632,64)), -Def(Tid(660, "%00000294"), Attrs([Attr("address","0x6D0"), -Attr("insn","ldrb w0, [x19, #0x10]")]), Var("R0",Imm(64)), -UNSIGNED(64,Load(Var("mem",Mem(64,8)),PLUS(Var("R19",Imm(64)),Int(16,64)),LittleEndian(),8)))]), -Jmps([Goto(Tid(667, "%0000029b"), Attrs([Attr("address","0x6D4"), -Attr("insn","cbnz w0, #0x28")]), - NEQ(Extract(31,0,Var("R0",Imm(64))),Int(0,32)), -Direct(Tid(665, "%00000299"))), Goto(Tid(1_419, "%0000058b"), Attrs([]), - Int(1,1), Direct(Tid(740, "%000002e4")))])), Blk(Tid(740, "%000002e4"), - Attrs([Attr("address","0x6D8")]), Phis([]), Defs([Def(Tid(743, "%000002e7"), - Attrs([Attr("address","0x6D8"), Attr("insn","adrp x0, #65536")]), - Var("R0",Imm(64)), Int(65536,64)), Def(Tid(750, "%000002ee"), - Attrs([Attr("address","0x6DC"), Attr("insn","ldr x0, [x0, #0xfe0]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(4064,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(756, "%000002f4"), Attrs([Attr("address","0x6E0"), -Attr("insn","cbz x0, #0x10")]), EQ(Var("R0",Imm(64)),Int(0,64)), -Direct(Tid(754, "%000002f2"))), Goto(Tid(1_420, "%0000058c"), Attrs([]), - Int(1,1), Direct(Tid(779, "%0000030b")))])), Blk(Tid(779, "%0000030b"), - Attrs([Attr("address","0x6E4")]), Phis([]), Defs([Def(Tid(782, "%0000030e"), - Attrs([Attr("address","0x6E4"), Attr("insn","adrp x0, #69632")]), - Var("R0",Imm(64)), Int(69632,64)), Def(Tid(789, "%00000315"), - Attrs([Attr("address","0x6E8"), Attr("insn","ldr x0, [x0, #0x8]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(794, "%0000031a"), Attrs([Attr("address","0x6EC"), -Attr("insn","bl #-0x11c")]), Var("R30",Imm(64)), Int(1776,64))]), -Jmps([Call(Tid(797, "%0000031d"), Attrs([Attr("address","0x6EC"), -Attr("insn","bl #-0x11c")]), Int(1,1), -(Direct(Tid(1_379, "@__cxa_finalize")),Direct(Tid(754, "%000002f2"))))])), -Blk(Tid(754, "%000002f2"), Attrs([Attr("address","0x6F0")]), Phis([]), -Defs([Def(Tid(762, "%000002fa"), Attrs([Attr("address","0x6F0"), -Attr("insn","bl #-0xa0")]), Var("R30",Imm(64)), Int(1780,64))]), -Jmps([Call(Tid(764, "%000002fc"), Attrs([Attr("address","0x6F0"), -Attr("insn","bl #-0xa0")]), Int(1,1), -(Direct(Tid(1_393, "@deregister_tm_clones")),Direct(Tid(766, "%000002fe"))))])), -Blk(Tid(766, "%000002fe"), Attrs([Attr("address","0x6F4")]), Phis([]), -Defs([Def(Tid(769, "%00000301"), Attrs([Attr("address","0x6F4"), -Attr("insn","mov w0, #0x1")]), Var("R0",Imm(64)), Int(1,64)), -Def(Tid(777, "%00000309"), Attrs([Attr("address","0x6F8"), -Attr("insn","strb w0, [x19, #0x10]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R19",Imm(64)),Int(16,64)),Extract(7,0,Var("R0",Imm(64))),LittleEndian(),8))]), -Jmps([Goto(Tid(1_421, "%0000058d"), Attrs([]), Int(1,1), -Direct(Tid(665, "%00000299")))])), Blk(Tid(665, "%00000299"), - Attrs([Attr("address","0x6FC")]), Phis([]), Defs([Def(Tid(675, "%000002a3"), - Attrs([Attr("address","0x6FC"), Attr("insn","ldr x19, [sp, #0x10]")]), - Var("R19",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(16,64)),LittleEndian(),64)), -Def(Tid(682, "%000002aa"), Attrs([Attr("address","0x700"), -Attr("insn","ldp x29, x30, [sp], #0x20")]), Var("R29",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(687, "%000002af"), Attrs([Attr("address","0x700"), -Attr("insn","ldp x29, x30, [sp], #0x20")]), Var("R30",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(691, "%000002b3"), Attrs([Attr("address","0x700"), -Attr("insn","ldp x29, x30, [sp], #0x20")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(32,64)))]), Jmps([Call(Tid(696, "%000002b8"), - Attrs([Attr("address","0x704"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), Sub(Tid(1_384, "@__libc_start_main"), - Attrs([Attr("c.proto","signed (*)(signed (*)(signed , char** , char** );* main, signed , char** , \nvoid* auxv)"), -Attr("address","0x5C0"), Attr("stub","()")]), "__libc_start_main", - Args([Arg(Tid(1_432, "%00000598"), - Attrs([Attr("c.layout","**[ : 64]"), -Attr("c.data","Top:u64 ptr ptr"), -Attr("c.type","signed (*)(signed , char** , char** );*")]), - Var("__libc_start_main_main",Imm(64)), Var("R0",Imm(64)), In()), -Arg(Tid(1_433, "%00000599"), Attrs([Attr("c.layout","[signed : 32]"), -Attr("c.data","Top:u32"), Attr("c.type","signed")]), - Var("__libc_start_main_arg2",Imm(32)), LOW(32,Var("R1",Imm(64))), In()), -Arg(Tid(1_434, "%0000059a"), Attrs([Attr("c.layout","**[char : 8]"), -Attr("c.data","Top:u8 ptr ptr"), Attr("c.type","char**")]), - Var("__libc_start_main_arg3",Imm(64)), Var("R2",Imm(64)), Both()), -Arg(Tid(1_435, "%0000059b"), Attrs([Attr("c.layout","*[ : 8]"), -Attr("c.data","{} ptr"), Attr("c.type","void*")]), - Var("__libc_start_main_auxv",Imm(64)), Var("R3",Imm(64)), Both()), -Arg(Tid(1_436, "%0000059c"), Attrs([Attr("c.layout","[signed : 32]"), -Attr("c.data","Top:u32"), Attr("c.type","signed")]), - Var("__libc_start_main_result",Imm(32)), LOW(32,Var("R0",Imm(64))), -Out())]), Blks([Blk(Tid(447, "@__libc_start_main"), - Attrs([Attr("address","0x5C0")]), Phis([]), -Defs([Def(Tid(1_021, "%000003fd"), Attrs([Attr("address","0x5C0"), -Attr("insn","adrp x16, #65536")]), Var("R16",Imm(64)), Int(65536,64)), -Def(Tid(1_028, "%00000404"), Attrs([Attr("address","0x5C4"), -Attr("insn","ldr x17, [x16, #0xfb0]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(4016,64)),LittleEndian(),64)), -Def(Tid(1_034, "%0000040a"), Attrs([Attr("address","0x5C8"), -Attr("insn","add x16, x16, #0xfb0")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(4016,64)))]), Jmps([Call(Tid(1_039, "%0000040f"), - Attrs([Attr("address","0x5CC"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), Sub(Tid(1_385, "@_fini"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x72C")]), - "_fini", Args([Arg(Tid(1_437, "%0000059d"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("_fini_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(31, "@_fini"), - Attrs([Attr("address","0x72C")]), Phis([]), Defs([Def(Tid(37, "%00000025"), - Attrs([Attr("address","0x730"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("#0",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(18446744073709551600,64))), -Def(Tid(43, "%0000002b"), Attrs([Attr("address","0x730"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("#0",Imm(64)),Var("R29",Imm(64)),LittleEndian(),64)), -Def(Tid(49, "%00000031"), Attrs([Attr("address","0x730"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("#0",Imm(64)),Int(8,64)),Var("R30",Imm(64)),LittleEndian(),64)), -Def(Tid(53, "%00000035"), Attrs([Attr("address","0x730"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("R31",Imm(64)), -Var("#0",Imm(64))), Def(Tid(59, "%0000003b"), Attrs([Attr("address","0x734"), -Attr("insn","mov x29, sp")]), Var("R29",Imm(64)), Var("R31",Imm(64))), -Def(Tid(66, "%00000042"), Attrs([Attr("address","0x738"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R29",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(71, "%00000047"), Attrs([Attr("address","0x738"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R30",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(75, "%0000004b"), Attrs([Attr("address","0x738"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(16,64)))]), Jmps([Call(Tid(80, "%00000050"), - Attrs([Attr("address","0x73C"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), Sub(Tid(1_386, "@_init"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x580")]), - "_init", Args([Arg(Tid(1_438, "%0000059e"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("_init_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(1_215, "@_init"), - Attrs([Attr("address","0x580")]), Phis([]), -Defs([Def(Tid(1_221, "%000004c5"), Attrs([Attr("address","0x584"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("#5",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(18446744073709551600,64))), -Def(Tid(1_227, "%000004cb"), Attrs([Attr("address","0x584"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("#5",Imm(64)),Var("R29",Imm(64)),LittleEndian(),64)), -Def(Tid(1_233, "%000004d1"), Attrs([Attr("address","0x584"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("#5",Imm(64)),Int(8,64)),Var("R30",Imm(64)),LittleEndian(),64)), -Def(Tid(1_237, "%000004d5"), Attrs([Attr("address","0x584"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("R31",Imm(64)), -Var("#5",Imm(64))), Def(Tid(1_243, "%000004db"), - Attrs([Attr("address","0x588"), Attr("insn","mov x29, sp")]), - Var("R29",Imm(64)), Var("R31",Imm(64))), Def(Tid(1_248, "%000004e0"), - Attrs([Attr("address","0x58C"), Attr("insn","bl #0xa8")]), - Var("R30",Imm(64)), Int(1424,64))]), Jmps([Call(Tid(1_250, "%000004e2"), - Attrs([Attr("address","0x58C"), Attr("insn","bl #0xa8")]), Int(1,1), -(Direct(Tid(1_391, "@call_weak_fn")),Direct(Tid(1_252, "%000004e4"))))])), -Blk(Tid(1_252, "%000004e4"), Attrs([Attr("address","0x590")]), Phis([]), -Defs([Def(Tid(1_257, "%000004e9"), Attrs([Attr("address","0x590"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R29",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(1_262, "%000004ee"), Attrs([Attr("address","0x590"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R30",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(1_266, "%000004f2"), Attrs([Attr("address","0x590"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(16,64)))]), Jmps([Call(Tid(1_271, "%000004f7"), - Attrs([Attr("address","0x594"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), Sub(Tid(1_387, "@_start"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x600"), -Attr("stub","()"), Attr("entry-point","()")]), "_start", - Args([Arg(Tid(1_439, "%0000059f"), Attrs([Attr("c.layout","[signed : 32]"), -Attr("c.data","Top:u32"), Attr("c.type","signed")]), - Var("_start_result",Imm(32)), LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(384, "@_start"), Attrs([Attr("address","0x600")]), Phis([]), -Defs([Def(Tid(389, "%00000185"), Attrs([Attr("address","0x604"), -Attr("insn","mov x29, #0x0")]), Var("R29",Imm(64)), Int(0,64)), -Def(Tid(394, "%0000018a"), Attrs([Attr("address","0x608"), -Attr("insn","mov x30, #0x0")]), Var("R30",Imm(64)), Int(0,64)), -Def(Tid(400, "%00000190"), Attrs([Attr("address","0x60C"), -Attr("insn","mov x5, x0")]), Var("R5",Imm(64)), Var("R0",Imm(64))), -Def(Tid(407, "%00000197"), Attrs([Attr("address","0x610"), -Attr("insn","ldr x1, [sp]")]), Var("R1",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(413, "%0000019d"), Attrs([Attr("address","0x614"), -Attr("insn","add x2, sp, #0x8")]), Var("R2",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(8,64))), Def(Tid(419, "%000001a3"), - Attrs([Attr("address","0x618"), Attr("insn","mov x6, sp")]), - Var("R6",Imm(64)), Var("R31",Imm(64))), Def(Tid(424, "%000001a8"), - Attrs([Attr("address","0x61C"), Attr("insn","adrp x0, #65536")]), - Var("R0",Imm(64)), Int(65536,64)), Def(Tid(431, "%000001af"), - Attrs([Attr("address","0x620"), Attr("insn","ldr x0, [x0, #0xff0]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(4080,64)),LittleEndian(),64)), -Def(Tid(436, "%000001b4"), Attrs([Attr("address","0x624"), -Attr("insn","mov x3, #0x0")]), Var("R3",Imm(64)), Int(0,64)), -Def(Tid(441, "%000001b9"), Attrs([Attr("address","0x628"), -Attr("insn","mov x4, #0x0")]), Var("R4",Imm(64)), Int(0,64)), -Def(Tid(446, "%000001be"), Attrs([Attr("address","0x62C"), -Attr("insn","bl #-0x6c")]), Var("R30",Imm(64)), Int(1584,64))]), -Jmps([Call(Tid(449, "%000001c1"), Attrs([Attr("address","0x62C"), -Attr("insn","bl #-0x6c")]), Int(1,1), -(Direct(Tid(1_384, "@__libc_start_main")),Direct(Tid(451, "%000001c3"))))])), -Blk(Tid(451, "%000001c3"), Attrs([Attr("address","0x630")]), Phis([]), -Defs([Def(Tid(454, "%000001c6"), Attrs([Attr("address","0x630"), -Attr("insn","bl #-0x40")]), Var("R30",Imm(64)), Int(1588,64))]), -Jmps([Call(Tid(457, "%000001c9"), Attrs([Attr("address","0x630"), -Attr("insn","bl #-0x40")]), Int(1,1), -(Direct(Tid(1_390, "@abort")),Direct(Tid(1_422, "%0000058e"))))])), -Blk(Tid(1_422, "%0000058e"), Attrs([]), Phis([]), Defs([]), -Jmps([Call(Tid(1_423, "%0000058f"), Attrs([]), Int(1,1), -(Direct(Tid(1_391, "@call_weak_fn")),))]))])), Sub(Tid(1_390, "@abort"), - Attrs([Attr("noreturn","()"), Attr("c.proto","void (*)(void)"), -Attr("address","0x5F0"), Attr("stub","()")]), "abort", Args([]), -Blks([Blk(Tid(455, "@abort"), Attrs([Attr("address","0x5F0")]), Phis([]), -Defs([Def(Tid(1_087, "%0000043f"), Attrs([Attr("address","0x5F0"), -Attr("insn","adrp x16, #65536")]), Var("R16",Imm(64)), Int(65536,64)), -Def(Tid(1_094, "%00000446"), Attrs([Attr("address","0x5F4"), -Attr("insn","ldr x17, [x16, #0xfc8]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(4040,64)),LittleEndian(),64)), -Def(Tid(1_100, "%0000044c"), Attrs([Attr("address","0x5F8"), -Attr("insn","add x16, x16, #0xfc8")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(4040,64)))]), Jmps([Call(Tid(1_105, "%00000451"), - Attrs([Attr("address","0x5FC"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), Sub(Tid(1_391, "@call_weak_fn"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x634")]), - "call_weak_fn", Args([Arg(Tid(1_440, "%000005a0"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("call_weak_fn_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(459, "@call_weak_fn"), - Attrs([Attr("address","0x634")]), Phis([]), Defs([Def(Tid(462, "%000001ce"), - Attrs([Attr("address","0x634"), Attr("insn","adrp x0, #65536")]), - Var("R0",Imm(64)), Int(65536,64)), Def(Tid(469, "%000001d5"), - Attrs([Attr("address","0x638"), Attr("insn","ldr x0, [x0, #0xfe8]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(4072,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(475, "%000001db"), Attrs([Attr("address","0x63C"), -Attr("insn","cbz x0, #0x8")]), EQ(Var("R0",Imm(64)),Int(0,64)), -Direct(Tid(473, "%000001d9"))), Goto(Tid(1_424, "%00000590"), Attrs([]), - Int(1,1), Direct(Tid(859, "%0000035b")))])), Blk(Tid(473, "%000001d9"), - Attrs([Attr("address","0x644")]), Phis([]), Defs([]), -Jmps([Call(Tid(481, "%000001e1"), Attrs([Attr("address","0x644"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))])), -Blk(Tid(859, "%0000035b"), Attrs([Attr("address","0x640")]), Phis([]), -Defs([]), Jmps([Goto(Tid(862, "%0000035e"), Attrs([Attr("address","0x640"), -Attr("insn","b #-0x60")]), Int(1,1), Direct(Tid(860, "@__gmon_start__")))])), -Blk(Tid(860, "@__gmon_start__"), Attrs([Attr("address","0x5E0")]), Phis([]), -Defs([Def(Tid(1_065, "%00000429"), Attrs([Attr("address","0x5E0"), -Attr("insn","adrp x16, #65536")]), Var("R16",Imm(64)), Int(65536,64)), -Def(Tid(1_072, "%00000430"), Attrs([Attr("address","0x5E4"), -Attr("insn","ldr x17, [x16, #0xfc0]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(4032,64)),LittleEndian(),64)), -Def(Tid(1_078, "%00000436"), Attrs([Attr("address","0x5E8"), -Attr("insn","add x16, x16, #0xfc0")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(4032,64)))]), Jmps([Call(Tid(1_083, "%0000043b"), - Attrs([Attr("address","0x5EC"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), -Sub(Tid(1_393, "@deregister_tm_clones"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x650")]), - "deregister_tm_clones", Args([Arg(Tid(1_441, "%000005a1"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("deregister_tm_clones_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(487, "@deregister_tm_clones"), - Attrs([Attr("address","0x650")]), Phis([]), Defs([Def(Tid(490, "%000001ea"), - Attrs([Attr("address","0x650"), Attr("insn","adrp x0, #69632")]), - Var("R0",Imm(64)), Int(69632,64)), Def(Tid(496, "%000001f0"), - Attrs([Attr("address","0x654"), Attr("insn","add x0, x0, #0x10")]), - Var("R0",Imm(64)), PLUS(Var("R0",Imm(64)),Int(16,64))), -Def(Tid(501, "%000001f5"), Attrs([Attr("address","0x658"), -Attr("insn","adrp x1, #69632")]), Var("R1",Imm(64)), Int(69632,64)), -Def(Tid(507, "%000001fb"), Attrs([Attr("address","0x65C"), -Attr("insn","add x1, x1, #0x10")]), Var("R1",Imm(64)), -PLUS(Var("R1",Imm(64)),Int(16,64))), Def(Tid(513, "%00000201"), - Attrs([Attr("address","0x660"), Attr("insn","cmp x1, x0")]), - Var("#1",Imm(64)), NOT(Var("R0",Imm(64)))), Def(Tid(518, "%00000206"), - Attrs([Attr("address","0x660"), Attr("insn","cmp x1, x0")]), - Var("#2",Imm(64)), PLUS(Var("R1",Imm(64)),NOT(Var("R0",Imm(64))))), -Def(Tid(524, "%0000020c"), Attrs([Attr("address","0x660"), -Attr("insn","cmp x1, x0")]), Var("VF",Imm(1)), -NEQ(SIGNED(65,PLUS(Var("#2",Imm(64)),Int(1,64))),PLUS(PLUS(SIGNED(65,Var("R1",Imm(64))),SIGNED(65,Var("#1",Imm(64)))),Int(1,65)))), -Def(Tid(530, "%00000212"), Attrs([Attr("address","0x660"), -Attr("insn","cmp x1, x0")]), Var("CF",Imm(1)), -NEQ(UNSIGNED(65,PLUS(Var("#2",Imm(64)),Int(1,64))),PLUS(PLUS(UNSIGNED(65,Var("R1",Imm(64))),UNSIGNED(65,Var("#1",Imm(64)))),Int(1,65)))), -Def(Tid(534, "%00000216"), Attrs([Attr("address","0x660"), -Attr("insn","cmp x1, x0")]), Var("ZF",Imm(1)), -EQ(PLUS(Var("#2",Imm(64)),Int(1,64)),Int(0,64))), Def(Tid(538, "%0000021a"), - Attrs([Attr("address","0x660"), Attr("insn","cmp x1, x0")]), - Var("NF",Imm(1)), Extract(63,63,PLUS(Var("#2",Imm(64)),Int(1,64))))]), -Jmps([Goto(Tid(544, "%00000220"), Attrs([Attr("address","0x664"), -Attr("insn","b.eq #0x18")]), EQ(Var("ZF",Imm(1)),Int(1,1)), -Direct(Tid(542, "%0000021e"))), Goto(Tid(1_425, "%00000591"), Attrs([]), - Int(1,1), Direct(Tid(829, "%0000033d")))])), Blk(Tid(829, "%0000033d"), - Attrs([Attr("address","0x668")]), Phis([]), Defs([Def(Tid(832, "%00000340"), - Attrs([Attr("address","0x668"), Attr("insn","adrp x1, #65536")]), - Var("R1",Imm(64)), Int(65536,64)), Def(Tid(839, "%00000347"), - Attrs([Attr("address","0x66C"), Attr("insn","ldr x1, [x1, #0xfd8]")]), - Var("R1",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R1",Imm(64)),Int(4056,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(844, "%0000034c"), Attrs([Attr("address","0x670"), -Attr("insn","cbz x1, #0xc")]), EQ(Var("R1",Imm(64)),Int(0,64)), -Direct(Tid(542, "%0000021e"))), Goto(Tid(1_426, "%00000592"), Attrs([]), - Int(1,1), Direct(Tid(848, "%00000350")))])), Blk(Tid(542, "%0000021e"), - Attrs([Attr("address","0x67C")]), Phis([]), Defs([]), -Jmps([Call(Tid(550, "%00000226"), Attrs([Attr("address","0x67C"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))])), -Blk(Tid(848, "%00000350"), Attrs([Attr("address","0x674")]), Phis([]), -Defs([Def(Tid(852, "%00000354"), Attrs([Attr("address","0x674"), -Attr("insn","mov x16, x1")]), Var("R16",Imm(64)), Var("R1",Imm(64)))]), -Jmps([Call(Tid(857, "%00000359"), Attrs([Attr("address","0x678"), -Attr("insn","br x16")]), Int(1,1), (Indirect(Var("R16",Imm(64))),))]))])), -Sub(Tid(1_396, "@frame_dummy"), Attrs([Attr("c.proto","signed (*)(void)"), -Attr("address","0x710")]), "frame_dummy", Args([Arg(Tid(1_442, "%000005a2"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("frame_dummy_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(702, "@frame_dummy"), - Attrs([Attr("address","0x710")]), Phis([]), Defs([]), -Jmps([Call(Tid(704, "%000002c0"), Attrs([Attr("address","0x710"), -Attr("insn","b #-0x90")]), Int(1,1), -(Direct(Tid(1_398, "@register_tm_clones")),))]))])), Sub(Tid(1_397, "@main"), - Attrs([Attr("c.proto","signed (*)(signed argc, const char** argv)"), -Attr("address","0x714")]), "main", Args([Arg(Tid(1_443, "%000005a3"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("main_argc",Imm(32)), -LOW(32,Var("R0",Imm(64))), In()), Arg(Tid(1_444, "%000005a4"), - Attrs([Attr("c.layout","**[char : 8]"), Attr("c.data","Top:u8 ptr ptr"), -Attr("c.type"," const char**")]), Var("main_argv",Imm(64)), -Var("R1",Imm(64)), Both()), Arg(Tid(1_445, "%000005a5"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("main_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(706, "@main"), - Attrs([Attr("address","0x714")]), Phis([]), Defs([Def(Tid(709, "%000002c5"), - Attrs([Attr("address","0x714"), Attr("insn","adrp x0, #69632")]), - Var("R0",Imm(64)), Int(69632,64)), Def(Tid(715, "%000002cb"), - Attrs([Attr("address","0x718"), Attr("insn","add x0, x0, #0x14")]), - Var("R0",Imm(64)), PLUS(Var("R0",Imm(64)),Int(20,64))), -Def(Tid(720, "%000002d0"), Attrs([Attr("address","0x71C"), -Attr("insn","mov w1, #0x5")]), Var("R1",Imm(64)), Int(5,64)), -Def(Tid(728, "%000002d8"), Attrs([Attr("address","0x720"), -Attr("insn","str w1, [x0]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("R0",Imm(64)),Extract(31,0,Var("R1",Imm(64))),LittleEndian(),32)), -Def(Tid(733, "%000002dd"), Attrs([Attr("address","0x724"), -Attr("insn","mov w0, #0x0")]), Var("R0",Imm(64)), Int(0,64))]), -Jmps([Call(Tid(738, "%000002e2"), Attrs([Attr("address","0x728"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))]))])), -Sub(Tid(1_398, "@register_tm_clones"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x680")]), - "register_tm_clones", Args([Arg(Tid(1_446, "%000005a6"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("register_tm_clones_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(552, "@register_tm_clones"), Attrs([Attr("address","0x680")]), - Phis([]), Defs([Def(Tid(555, "%0000022b"), Attrs([Attr("address","0x680"), -Attr("insn","adrp x0, #69632")]), Var("R0",Imm(64)), Int(69632,64)), -Def(Tid(561, "%00000231"), Attrs([Attr("address","0x684"), -Attr("insn","add x0, x0, #0x10")]), Var("R0",Imm(64)), -PLUS(Var("R0",Imm(64)),Int(16,64))), Def(Tid(566, "%00000236"), - Attrs([Attr("address","0x688"), Attr("insn","adrp x1, #69632")]), - Var("R1",Imm(64)), Int(69632,64)), Def(Tid(572, "%0000023c"), - Attrs([Attr("address","0x68C"), Attr("insn","add x1, x1, #0x10")]), - Var("R1",Imm(64)), PLUS(Var("R1",Imm(64)),Int(16,64))), -Def(Tid(579, "%00000243"), Attrs([Attr("address","0x690"), -Attr("insn","sub x1, x1, x0")]), Var("R1",Imm(64)), -PLUS(PLUS(Var("R1",Imm(64)),NOT(Var("R0",Imm(64)))),Int(1,64))), -Def(Tid(585, "%00000249"), Attrs([Attr("address","0x694"), -Attr("insn","lsr x2, x1, #63")]), Var("R2",Imm(64)), -Concat(Int(0,63),Extract(63,63,Var("R1",Imm(64))))), -Def(Tid(592, "%00000250"), Attrs([Attr("address","0x698"), -Attr("insn","add x1, x2, x1, asr #3")]), Var("R1",Imm(64)), -PLUS(Var("R2",Imm(64)),ARSHIFT(Var("R1",Imm(64)),Int(3,3)))), -Def(Tid(598, "%00000256"), Attrs([Attr("address","0x69C"), -Attr("insn","asr x1, x1, #1")]), Var("R1",Imm(64)), -SIGNED(64,Extract(63,1,Var("R1",Imm(64)))))]), -Jmps([Goto(Tid(604, "%0000025c"), Attrs([Attr("address","0x6A0"), -Attr("insn","cbz x1, #0x18")]), EQ(Var("R1",Imm(64)),Int(0,64)), -Direct(Tid(602, "%0000025a"))), Goto(Tid(1_427, "%00000593"), Attrs([]), - Int(1,1), Direct(Tid(799, "%0000031f")))])), Blk(Tid(799, "%0000031f"), - Attrs([Attr("address","0x6A4")]), Phis([]), Defs([Def(Tid(802, "%00000322"), - Attrs([Attr("address","0x6A4"), Attr("insn","adrp x2, #65536")]), - Var("R2",Imm(64)), Int(65536,64)), Def(Tid(809, "%00000329"), - Attrs([Attr("address","0x6A8"), Attr("insn","ldr x2, [x2, #0xff8]")]), - Var("R2",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R2",Imm(64)),Int(4088,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(814, "%0000032e"), Attrs([Attr("address","0x6AC"), -Attr("insn","cbz x2, #0xc")]), EQ(Var("R2",Imm(64)),Int(0,64)), -Direct(Tid(602, "%0000025a"))), Goto(Tid(1_428, "%00000594"), Attrs([]), - Int(1,1), Direct(Tid(818, "%00000332")))])), Blk(Tid(602, "%0000025a"), - Attrs([Attr("address","0x6B8")]), Phis([]), Defs([]), -Jmps([Call(Tid(610, "%00000262"), Attrs([Attr("address","0x6B8"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))])), -Blk(Tid(818, "%00000332"), Attrs([Attr("address","0x6B0")]), Phis([]), -Defs([Def(Tid(822, "%00000336"), Attrs([Attr("address","0x6B0"), -Attr("insn","mov x16, x2")]), Var("R16",Imm(64)), Var("R2",Imm(64)))]), -Jmps([Call(Tid(827, "%0000033b"), Attrs([Attr("address","0x6B4"), -Attr("insn","br x16")]), Int(1,1), -(Indirect(Var("R16",Imm(64))),))]))]))]))) \ No newline at end of file diff --git a/src/test/correct/basic_assign_assign/gcc/basic_assign_assign.bir b/src/test/correct/basic_assign_assign/gcc/basic_assign_assign.bir deleted file mode 100644 index 696e306b4..000000000 --- a/src/test/correct/basic_assign_assign/gcc/basic_assign_assign.bir +++ /dev/null @@ -1,228 +0,0 @@ -00000595: program -00000563: sub __cxa_finalize(__cxa_finalize_result) -00000596: __cxa_finalize_result :: out u32 = low:32[R0] - -0000031b: -00000413: R16 := 0x10000 -0000041a: R17 := mem[R16 + 0xFB8, el]:u64 -00000420: R16 := R16 + 0xFB8 -00000425: call R17 with noreturn - -00000564: sub __do_global_dtors_aux(__do_global_dtors_aux_result) -00000597: __do_global_dtors_aux_result :: out u32 = low:32[R0] - -00000266: -0000026a: #3 := R31 - 0x20 -00000270: mem := mem with [#3, el]:u64 <- R29 -00000276: mem := mem with [#3 + 8, el]:u64 <- R30 -0000027a: R31 := #3 -00000280: R29 := R31 -00000288: mem := mem with [R31 + 0x10, el]:u64 <- R19 -0000028d: R19 := 0x11000 -00000294: R0 := pad:64[mem[R19 + 0x10]] -0000029b: when 31:0[R0] <> 0 goto %00000299 -0000058b: goto %000002e4 - -000002e4: -000002e7: R0 := 0x10000 -000002ee: R0 := mem[R0 + 0xFE0, el]:u64 -000002f4: when R0 = 0 goto %000002f2 -0000058c: goto %0000030b - -0000030b: -0000030e: R0 := 0x11000 -00000315: R0 := mem[R0 + 8, el]:u64 -0000031a: R30 := 0x6F0 -0000031d: call @__cxa_finalize with return %000002f2 - -000002f2: -000002fa: R30 := 0x6F4 -000002fc: call @deregister_tm_clones with return %000002fe - -000002fe: -00000301: R0 := 1 -00000309: mem := mem with [R19 + 0x10] <- 7:0[R0] -0000058d: goto %00000299 - -00000299: -000002a3: R19 := mem[R31 + 0x10, el]:u64 -000002aa: R29 := mem[R31, el]:u64 -000002af: R30 := mem[R31 + 8, el]:u64 -000002b3: R31 := R31 + 0x20 -000002b8: call R30 with noreturn - -00000568: sub __libc_start_main(__libc_start_main_main, __libc_start_main_arg2, __libc_start_main_arg3, __libc_start_main_auxv, __libc_start_main_result) -00000598: __libc_start_main_main :: in u64 = R0 -00000599: __libc_start_main_arg2 :: in u32 = low:32[R1] -0000059a: __libc_start_main_arg3 :: in out u64 = R2 -0000059b: __libc_start_main_auxv :: in out u64 = R3 -0000059c: __libc_start_main_result :: out u32 = low:32[R0] - -000001bf: -000003fd: R16 := 0x10000 -00000404: R17 := mem[R16 + 0xFB0, el]:u64 -0000040a: R16 := R16 + 0xFB0 -0000040f: call R17 with noreturn - -00000569: sub _fini(_fini_result) -0000059d: _fini_result :: out u32 = low:32[R0] - -0000001f: -00000025: #0 := R31 - 0x10 -0000002b: mem := mem with [#0, el]:u64 <- R29 -00000031: mem := mem with [#0 + 8, el]:u64 <- R30 -00000035: R31 := #0 -0000003b: R29 := R31 -00000042: R29 := mem[R31, el]:u64 -00000047: R30 := mem[R31 + 8, el]:u64 -0000004b: R31 := R31 + 0x10 -00000050: call R30 with noreturn - -0000056a: sub _init(_init_result) -0000059e: _init_result :: out u32 = low:32[R0] - -000004bf: -000004c5: #5 := R31 - 0x10 -000004cb: mem := mem with [#5, el]:u64 <- R29 -000004d1: mem := mem with [#5 + 8, el]:u64 <- R30 -000004d5: R31 := #5 -000004db: R29 := R31 -000004e0: R30 := 0x590 -000004e2: call @call_weak_fn with return %000004e4 - -000004e4: -000004e9: R29 := mem[R31, el]:u64 -000004ee: R30 := mem[R31 + 8, el]:u64 -000004f2: R31 := R31 + 0x10 -000004f7: call R30 with noreturn - -0000056b: sub _start(_start_result) -0000059f: _start_result :: out u32 = low:32[R0] - -00000180: -00000185: R29 := 0 -0000018a: R30 := 0 -00000190: R5 := R0 -00000197: R1 := mem[R31, el]:u64 -0000019d: R2 := R31 + 8 -000001a3: R6 := R31 -000001a8: R0 := 0x10000 -000001af: R0 := mem[R0 + 0xFF0, el]:u64 -000001b4: R3 := 0 -000001b9: R4 := 0 -000001be: R30 := 0x630 -000001c1: call @__libc_start_main with return %000001c3 - -000001c3: -000001c6: R30 := 0x634 -000001c9: call @abort with return %0000058e - -0000058e: -0000058f: call @call_weak_fn with noreturn - -0000056e: sub abort() - - -000001c7: -0000043f: R16 := 0x10000 -00000446: R17 := mem[R16 + 0xFC8, el]:u64 -0000044c: R16 := R16 + 0xFC8 -00000451: call R17 with noreturn - -0000056f: sub call_weak_fn(call_weak_fn_result) -000005a0: call_weak_fn_result :: out u32 = low:32[R0] - -000001cb: -000001ce: R0 := 0x10000 -000001d5: R0 := mem[R0 + 0xFE8, el]:u64 -000001db: when R0 = 0 goto %000001d9 -00000590: goto %0000035b - -000001d9: -000001e1: call R30 with noreturn - -0000035b: -0000035e: goto @__gmon_start__ - -0000035c: -00000429: R16 := 0x10000 -00000430: R17 := mem[R16 + 0xFC0, el]:u64 -00000436: R16 := R16 + 0xFC0 -0000043b: call R17 with noreturn - -00000571: sub deregister_tm_clones(deregister_tm_clones_result) -000005a1: deregister_tm_clones_result :: out u32 = low:32[R0] - -000001e7: -000001ea: R0 := 0x11000 -000001f0: R0 := R0 + 0x10 -000001f5: R1 := 0x11000 -000001fb: R1 := R1 + 0x10 -00000201: #1 := ~R0 -00000206: #2 := R1 + ~R0 -0000020c: VF := extend:65[#2 + 1] <> extend:65[R1] + extend:65[#1] + 1 -00000212: CF := pad:65[#2 + 1] <> pad:65[R1] + pad:65[#1] + 1 -00000216: ZF := #2 + 1 = 0 -0000021a: NF := 63:63[#2 + 1] -00000220: when ZF goto %0000021e -00000591: goto %0000033d - -0000033d: -00000340: R1 := 0x10000 -00000347: R1 := mem[R1 + 0xFD8, el]:u64 -0000034c: when R1 = 0 goto %0000021e -00000592: goto %00000350 - -0000021e: -00000226: call R30 with noreturn - -00000350: -00000354: R16 := R1 -00000359: call R16 with noreturn - -00000574: sub frame_dummy(frame_dummy_result) -000005a2: frame_dummy_result :: out u32 = low:32[R0] - -000002be: -000002c0: call @register_tm_clones with noreturn - -00000575: sub main(main_argc, main_argv, main_result) -000005a3: main_argc :: in u32 = low:32[R0] -000005a4: main_argv :: in out u64 = R1 -000005a5: main_result :: out u32 = low:32[R0] - -000002c2: -000002c5: R0 := 0x11000 -000002cb: R0 := R0 + 0x14 -000002d0: R1 := 5 -000002d8: mem := mem with [R0, el]:u32 <- 31:0[R1] -000002dd: R0 := 0 -000002e2: call R30 with noreturn - -00000576: sub register_tm_clones(register_tm_clones_result) -000005a6: register_tm_clones_result :: out u32 = low:32[R0] - -00000228: -0000022b: R0 := 0x11000 -00000231: R0 := R0 + 0x10 -00000236: R1 := 0x11000 -0000023c: R1 := R1 + 0x10 -00000243: R1 := R1 + ~R0 + 1 -00000249: R2 := 0.63:63[R1] -00000250: R1 := R2 + (R1 ~>> 3) -00000256: R1 := extend:64[63:1[R1]] -0000025c: when R1 = 0 goto %0000025a -00000593: goto %0000031f - -0000031f: -00000322: R2 := 0x10000 -00000329: R2 := mem[R2 + 0xFF8, el]:u64 -0000032e: when R2 = 0 goto %0000025a -00000594: goto %00000332 - -0000025a: -00000262: call R30 with noreturn - -00000332: -00000336: R16 := R2 -0000033b: call R16 with noreturn diff --git a/src/test/correct/basic_assign_assign/gcc/basic_assign_assign.expected b/src/test/correct/basic_assign_assign/gcc/basic_assign_assign.expected index 8536e294e..2bc7acf80 100644 --- a/src/test/correct/basic_assign_assign/gcc/basic_assign_assign.expected +++ b/src/test/correct/basic_assign_assign/gcc/basic_assign_assign.expected @@ -62,7 +62,7 @@ implementation {:extern} guarantee_reflexive() assert ((memory_load32_le(mem, $x_addr) == memory_load32_le(mem, $x_addr)) || (memory_load32_le(mem, $x_addr) == 5bv32)); } -procedure main_1812(); +procedure main(); modifies Gamma_R0, Gamma_R1, Gamma_mem, R0, R1, mem; requires (memory_load32_le(mem, $x_addr) == 0bv32); free requires (memory_load64_le(mem, 69632bv64) == 0bv64); @@ -79,7 +79,7 @@ procedure main_1812(); free ensures (memory_load64_le(mem, 69616bv64) == 1812bv64); free ensures (memory_load64_le(mem, 69640bv64) == 69640bv64); -implementation main_1812() +implementation main() { var x_old: bv32; lmain: @@ -88,15 +88,15 @@ implementation main_1812() R0, Gamma_R0 := bvadd64(R0, 20bv64), Gamma_R0; R1, Gamma_R1 := 5bv64, true; call rely(); - x_old := memory_load32_le(mem, $x_addr); assert (L(mem, R0) ==> Gamma_R1); + x_old := memory_load32_le(mem, $x_addr); mem, Gamma_mem := memory_store32_le(mem, R0, R1[32:0]), gamma_store32(Gamma_mem, R0, Gamma_R1); assert ((memory_load32_le(mem, $x_addr) == x_old) || (memory_load32_le(mem, $x_addr) == 5bv32)); assume {:captureState "%000002d8"} true; R0, Gamma_R0 := 0bv64, true; - goto main_1812_basil_return; - main_1812_basil_return: - assume {:captureState "main_1812_basil_return"} true; + goto main_basil_return; + main_basil_return: + assume {:captureState "main_basil_return"} true; return; } diff --git a/src/test/correct/basic_assign_assign/gcc/basic_assign_assign.gts b/src/test/correct/basic_assign_assign/gcc/basic_assign_assign.gts deleted file mode 100644 index d8141e361..000000000 Binary files a/src/test/correct/basic_assign_assign/gcc/basic_assign_assign.gts and /dev/null differ diff --git a/src/test/correct/basic_assign_assign/gcc/basic_assign_assign.md5sum b/src/test/correct/basic_assign_assign/gcc/basic_assign_assign.md5sum new file mode 100644 index 000000000..f0ac2bd9c --- /dev/null +++ b/src/test/correct/basic_assign_assign/gcc/basic_assign_assign.md5sum @@ -0,0 +1,5 @@ +9ce50a943bcd29e62b70c6105bb8a145 correct/basic_assign_assign/gcc/a.out +21c778cd13b55e5c03689c68d2c6bb71 correct/basic_assign_assign/gcc/basic_assign_assign.adt +91705df2a7fd53ece382c0d839adf2e0 correct/basic_assign_assign/gcc/basic_assign_assign.bir +ae53fb220db05dabf2111b8514490bfb correct/basic_assign_assign/gcc/basic_assign_assign.relf +5d72404421184f9aee15ace9ebdce84d correct/basic_assign_assign/gcc/basic_assign_assign.gts diff --git a/src/test/correct/basic_assign_assign/gcc/basic_assign_assign.relf b/src/test/correct/basic_assign_assign/gcc/basic_assign_assign.relf deleted file mode 100644 index 62abc4551..000000000 --- a/src/test/correct/basic_assign_assign/gcc/basic_assign_assign.relf +++ /dev/null @@ -1,121 +0,0 @@ - -Relocation section '.rela.dyn' at offset 0x460 contains 8 entries: - Offset Info Type Symbol's Value Symbol's Name + Addend -0000000000010d98 0000000000000403 R_AARCH64_RELATIVE 710 -0000000000010da0 0000000000000403 R_AARCH64_RELATIVE 6c0 -0000000000010ff0 0000000000000403 R_AARCH64_RELATIVE 714 -0000000000011008 0000000000000403 R_AARCH64_RELATIVE 11008 -0000000000010fd8 0000000400000401 R_AARCH64_GLOB_DAT 0000000000000000 _ITM_deregisterTMCloneTable + 0 -0000000000010fe0 0000000500000401 R_AARCH64_GLOB_DAT 0000000000000000 __cxa_finalize@GLIBC_2.17 + 0 -0000000000010fe8 0000000600000401 R_AARCH64_GLOB_DAT 0000000000000000 __gmon_start__ + 0 -0000000000010ff8 0000000800000401 R_AARCH64_GLOB_DAT 0000000000000000 _ITM_registerTMCloneTable + 0 - -Relocation section '.rela.plt' at offset 0x520 contains 4 entries: - Offset Info Type Symbol's Value Symbol's Name + Addend -0000000000010fb0 0000000300000402 R_AARCH64_JUMP_SLOT 0000000000000000 __libc_start_main@GLIBC_2.34 + 0 -0000000000010fb8 0000000500000402 R_AARCH64_JUMP_SLOT 0000000000000000 __cxa_finalize@GLIBC_2.17 + 0 -0000000000010fc0 0000000600000402 R_AARCH64_JUMP_SLOT 0000000000000000 __gmon_start__ + 0 -0000000000010fc8 0000000700000402 R_AARCH64_JUMP_SLOT 0000000000000000 abort@GLIBC_2.17 + 0 - -Symbol table '.dynsym' contains 9 entries: - Num: Value Size Type Bind Vis Ndx Name - 0: 0000000000000000 0 NOTYPE LOCAL DEFAULT UND - 1: 0000000000000580 0 SECTION LOCAL DEFAULT 11 .init - 2: 0000000000011000 0 SECTION LOCAL DEFAULT 22 .data - 3: 0000000000000000 0 FUNC GLOBAL DEFAULT UND __libc_start_main@GLIBC_2.34 (2) - 4: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_deregisterTMCloneTable - 5: 0000000000000000 0 FUNC WEAK DEFAULT UND __cxa_finalize@GLIBC_2.17 (3) - 6: 0000000000000000 0 NOTYPE WEAK DEFAULT UND __gmon_start__ - 7: 0000000000000000 0 FUNC GLOBAL DEFAULT UND abort@GLIBC_2.17 (3) - 8: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_registerTMCloneTable - -Symbol table '.symtab' contains 88 entries: - Num: Value Size Type Bind Vis Ndx Name - 0: 0000000000000000 0 NOTYPE LOCAL DEFAULT UND - 1: 0000000000000238 0 SECTION LOCAL DEFAULT 1 .interp - 2: 0000000000000254 0 SECTION LOCAL DEFAULT 2 .note.gnu.build-id - 3: 0000000000000278 0 SECTION LOCAL DEFAULT 3 .note.ABI-tag - 4: 0000000000000298 0 SECTION LOCAL DEFAULT 4 .gnu.hash - 5: 00000000000002b8 0 SECTION LOCAL DEFAULT 5 .dynsym - 6: 0000000000000390 0 SECTION LOCAL DEFAULT 6 .dynstr - 7: 000000000000041e 0 SECTION LOCAL DEFAULT 7 .gnu.version - 8: 0000000000000430 0 SECTION LOCAL DEFAULT 8 .gnu.version_r - 9: 0000000000000460 0 SECTION LOCAL DEFAULT 9 .rela.dyn - 10: 0000000000000520 0 SECTION LOCAL DEFAULT 10 .rela.plt - 11: 0000000000000580 0 SECTION LOCAL DEFAULT 11 .init - 12: 00000000000005a0 0 SECTION LOCAL DEFAULT 12 .plt - 13: 0000000000000600 0 SECTION LOCAL DEFAULT 13 .text - 14: 000000000000072c 0 SECTION LOCAL DEFAULT 14 .fini - 15: 0000000000000740 0 SECTION LOCAL DEFAULT 15 .rodata - 16: 0000000000000744 0 SECTION LOCAL DEFAULT 16 .eh_frame_hdr - 17: 0000000000000780 0 SECTION LOCAL DEFAULT 17 .eh_frame - 18: 0000000000010d98 0 SECTION LOCAL DEFAULT 18 .init_array - 19: 0000000000010da0 0 SECTION LOCAL DEFAULT 19 .fini_array - 20: 0000000000010da8 0 SECTION LOCAL DEFAULT 20 .dynamic - 21: 0000000000010f98 0 SECTION LOCAL DEFAULT 21 .got - 22: 0000000000011000 0 SECTION LOCAL DEFAULT 22 .data - 23: 0000000000011010 0 SECTION LOCAL DEFAULT 23 .bss - 24: 0000000000000000 0 SECTION LOCAL DEFAULT 24 .comment - 25: 0000000000000000 0 FILE LOCAL DEFAULT ABS Scrt1.o - 26: 0000000000000278 0 NOTYPE LOCAL DEFAULT 3 $d - 27: 0000000000000278 32 OBJECT LOCAL DEFAULT 3 __abi_tag - 28: 0000000000000600 0 NOTYPE LOCAL DEFAULT 13 $x - 29: 0000000000000794 0 NOTYPE LOCAL DEFAULT 17 $d - 30: 0000000000000740 0 NOTYPE LOCAL DEFAULT 15 $d - 31: 0000000000000000 0 FILE LOCAL DEFAULT ABS crti.o - 32: 0000000000000634 0 NOTYPE LOCAL DEFAULT 13 $x - 33: 0000000000000634 20 FUNC LOCAL DEFAULT 13 call_weak_fn - 34: 0000000000000580 0 NOTYPE LOCAL DEFAULT 11 $x - 35: 000000000000072c 0 NOTYPE LOCAL DEFAULT 14 $x - 36: 0000000000000000 0 FILE LOCAL DEFAULT ABS crtn.o - 37: 0000000000000590 0 NOTYPE LOCAL DEFAULT 11 $x - 38: 0000000000000738 0 NOTYPE LOCAL DEFAULT 14 $x - 39: 0000000000000000 0 FILE LOCAL DEFAULT ABS crtstuff.c - 40: 0000000000000650 0 NOTYPE LOCAL DEFAULT 13 $x - 41: 0000000000000650 0 FUNC LOCAL DEFAULT 13 deregister_tm_clones - 42: 0000000000000680 0 FUNC LOCAL DEFAULT 13 register_tm_clones - 43: 0000000000011008 0 NOTYPE LOCAL DEFAULT 22 $d - 44: 00000000000006c0 0 FUNC LOCAL DEFAULT 13 __do_global_dtors_aux - 45: 0000000000011010 1 OBJECT LOCAL DEFAULT 23 completed.0 - 46: 0000000000010da0 0 NOTYPE LOCAL DEFAULT 19 $d - 47: 0000000000010da0 0 OBJECT LOCAL DEFAULT 19 __do_global_dtors_aux_fini_array_entry - 48: 0000000000000710 0 FUNC LOCAL DEFAULT 13 frame_dummy - 49: 0000000000010d98 0 NOTYPE LOCAL DEFAULT 18 $d - 50: 0000000000010d98 0 OBJECT LOCAL DEFAULT 18 __frame_dummy_init_array_entry - 51: 00000000000007a8 0 NOTYPE LOCAL DEFAULT 17 $d - 52: 0000000000011010 0 NOTYPE LOCAL DEFAULT 23 $d - 53: 0000000000000000 0 FILE LOCAL DEFAULT ABS basic_assign_assign.c - 54: 0000000000011014 0 NOTYPE LOCAL DEFAULT 23 $d - 55: 0000000000000714 0 NOTYPE LOCAL DEFAULT 13 $x - 56: 0000000000000808 0 NOTYPE LOCAL DEFAULT 17 $d - 57: 0000000000000000 0 FILE LOCAL DEFAULT ABS crtstuff.c - 58: 000000000000081c 0 NOTYPE LOCAL DEFAULT 17 $d - 59: 000000000000081c 0 OBJECT LOCAL DEFAULT 17 __FRAME_END__ - 60: 0000000000000000 0 FILE LOCAL DEFAULT ABS - 61: 0000000000010da8 0 OBJECT LOCAL DEFAULT ABS _DYNAMIC - 62: 0000000000000744 0 NOTYPE LOCAL DEFAULT 16 __GNU_EH_FRAME_HDR - 63: 0000000000010fd0 0 OBJECT LOCAL DEFAULT ABS _GLOBAL_OFFSET_TABLE_ - 64: 00000000000005a0 0 NOTYPE LOCAL DEFAULT 12 $x - 65: 0000000000000000 0 FUNC GLOBAL DEFAULT UND __libc_start_main@GLIBC_2.34 - 66: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_deregisterTMCloneTable - 67: 0000000000011000 0 NOTYPE WEAK DEFAULT 22 data_start - 68: 0000000000011010 0 NOTYPE GLOBAL DEFAULT 23 __bss_start__ - 69: 0000000000000000 0 FUNC WEAK DEFAULT UND __cxa_finalize@GLIBC_2.17 - 70: 0000000000011018 0 NOTYPE GLOBAL DEFAULT 23 _bss_end__ - 71: 0000000000011010 0 NOTYPE GLOBAL DEFAULT 22 _edata - 72: 0000000000011014 4 OBJECT GLOBAL DEFAULT 23 x - 73: 000000000000072c 0 FUNC GLOBAL HIDDEN 14 _fini - 74: 0000000000011018 0 NOTYPE GLOBAL DEFAULT 23 __bss_end__ - 75: 0000000000011000 0 NOTYPE GLOBAL DEFAULT 22 __data_start - 76: 0000000000000000 0 NOTYPE WEAK DEFAULT UND __gmon_start__ - 77: 0000000000011008 0 OBJECT GLOBAL HIDDEN 22 __dso_handle - 78: 0000000000000000 0 FUNC GLOBAL DEFAULT UND abort@GLIBC_2.17 - 79: 0000000000000740 4 OBJECT GLOBAL DEFAULT 15 _IO_stdin_used - 80: 0000000000011018 0 NOTYPE GLOBAL DEFAULT 23 _end - 81: 0000000000000600 52 FUNC GLOBAL DEFAULT 13 _start - 82: 0000000000011018 0 NOTYPE GLOBAL DEFAULT 23 __end__ - 83: 0000000000011010 0 NOTYPE GLOBAL DEFAULT 23 __bss_start - 84: 0000000000000714 24 FUNC GLOBAL DEFAULT 13 main - 85: 0000000000011010 0 OBJECT GLOBAL HIDDEN 22 __TMC_END__ - 86: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_registerTMCloneTable - 87: 0000000000000580 0 FUNC GLOBAL HIDDEN 11 _init diff --git a/src/test/correct/basic_assign_assign/gcc/basic_assign_assign_gtirb.expected b/src/test/correct/basic_assign_assign/gcc/basic_assign_assign_gtirb.expected index b61d0c0d8..163ad1ce6 100644 --- a/src/test/correct/basic_assign_assign/gcc/basic_assign_assign_gtirb.expected +++ b/src/test/correct/basic_assign_assign/gcc/basic_assign_assign_gtirb.expected @@ -62,7 +62,7 @@ implementation {:extern} guarantee_reflexive() assert ((memory_load32_le(mem, $x_addr) == memory_load32_le(mem, $x_addr)) || (memory_load32_le(mem, $x_addr) == 5bv32)); } -procedure main_1812(); +procedure main(); modifies Gamma_R0, Gamma_R1, Gamma_mem, R0, R1, mem; requires (memory_load32_le(mem, $x_addr) == 0bv32); free requires (memory_load64_le(mem, 69632bv64) == 0bv64); @@ -79,24 +79,24 @@ procedure main_1812(); free ensures (memory_load64_le(mem, 69616bv64) == 1812bv64); free ensures (memory_load64_le(mem, 69640bv64) == 69640bv64); -implementation main_1812() +implementation main() { var x_old: bv32; - main_1812__0__Wqz78H8dRsSZVuDqF6tLlA: - assume {:captureState "main_1812__0__Wqz78H8dRsSZVuDqF6tLlA"} true; + $main$__0__$Wqz78H8dRsSZVuDqF6tLlA: + assume {:captureState "$main$__0__$Wqz78H8dRsSZVuDqF6tLlA"} true; R0, Gamma_R0 := 69632bv64, true; R0, Gamma_R0 := bvadd64(R0, 20bv64), Gamma_R0; R1, Gamma_R1 := 5bv64, true; call rely(); - x_old := memory_load32_le(mem, $x_addr); assert (L(mem, R0) ==> Gamma_R1); + x_old := memory_load32_le(mem, $x_addr); mem, Gamma_mem := memory_store32_le(mem, R0, R1[32:0]), gamma_store32(Gamma_mem, R0, Gamma_R1); assert ((memory_load32_le(mem, $x_addr) == x_old) || (memory_load32_le(mem, $x_addr) == 5bv32)); - assume {:captureState "1824_0"} true; + assume {:captureState "1824$0"} true; R0, Gamma_R0 := 0bv64, true; - goto main_1812_basil_return; - main_1812_basil_return: - assume {:captureState "main_1812_basil_return"} true; + goto main_basil_return; + main_basil_return: + assume {:captureState "main_basil_return"} true; return; } diff --git a/src/test/correct/basic_assign_assign/gcc_O2/basic_assign_assign.adt b/src/test/correct/basic_assign_assign/gcc_O2/basic_assign_assign.adt deleted file mode 100644 index 5ae77f7ac..000000000 --- a/src/test/correct/basic_assign_assign/gcc_O2/basic_assign_assign.adt +++ /dev/null @@ -1,492 +0,0 @@ -Project(Attrs([Attr("filename","\"gcc_O2/basic_assign_assign.out\""), -Attr("image-specification","(declare abi (name str))\n(declare arch (name str))\n(declare base-address (addr int))\n(declare bias (off int))\n(declare bits (size int))\n(declare code-region (addr int) (size int) (off int))\n(declare code-start (addr int))\n(declare entry-point (addr int))\n(declare external-reference (addr int) (name str))\n(declare format (name str))\n(declare is-executable (flag bool))\n(declare is-little-endian (flag bool))\n(declare llvm:base-address (addr int))\n(declare llvm:code-entry (name str) (off int) (size int))\n(declare llvm:coff-import-library (name str))\n(declare llvm:coff-virtual-section-header (name str) (addr int) (size int))\n(declare llvm:elf-program-header (name str) (off int) (size int))\n(declare llvm:elf-program-header-flags (name str) (ld bool) (r bool) \n (w bool) (x bool))\n(declare llvm:elf-virtual-program-header (name str) (addr int) (size int))\n(declare llvm:entry-point (addr int))\n(declare llvm:macho-symbol (name str) (value int))\n(declare llvm:name-reference (at int) (name str))\n(declare llvm:relocation (at int) (addr int))\n(declare llvm:section-entry (name str) (addr int) (size int) (off int))\n(declare llvm:section-flags (name str) (r bool) (w bool) (x bool))\n(declare llvm:segment-command (name str) (off int) (size int))\n(declare llvm:segment-command-flags (name str) (r bool) (w bool) (x bool))\n(declare llvm:symbol-entry (name str) (addr int) (size int) (off int)\n (value int))\n(declare llvm:virtual-segment-command (name str) (addr int) (size int))\n(declare mapped (addr int) (size int) (off int))\n(declare named-region (addr int) (size int) (name str))\n(declare named-symbol (addr int) (name str))\n(declare require (name str))\n(declare section (addr int) (size int))\n(declare segment (addr int) (size int) (r bool) (w bool) (x bool))\n(declare subarch (name str))\n(declare symbol-chunk (addr int) (size int) (root int))\n(declare symbol-value (addr int) (value int))\n(declare system (name str))\n(declare vendor (name str))\n\n(abi unknown)\n(arch aarch64)\n(base-address 0)\n(bias 0)\n(bits 64)\n(code-region 1876 20 1876)\n(code-region 1536 340 1536)\n(code-region 1440 96 1440)\n(code-region 1408 24 1408)\n(code-start 1652)\n(code-start 1600)\n(code-start 1536)\n(entry-point 1600)\n(external-reference 69592 _ITM_deregisterTMCloneTable)\n(external-reference 69600 __cxa_finalize)\n(external-reference 69608 __gmon_start__)\n(external-reference 69624 _ITM_registerTMCloneTable)\n(external-reference 69552 __libc_start_main)\n(external-reference 69560 __cxa_finalize)\n(external-reference 69568 __gmon_start__)\n(external-reference 69576 abort)\n(format elf)\n(is-executable true)\n(is-little-endian true)\n(llvm:base-address 0)\n(llvm:code-entry abort 0 0)\n(llvm:code-entry __cxa_finalize 0 0)\n(llvm:code-entry __libc_start_main 0 0)\n(llvm:code-entry _init 1408 0)\n(llvm:code-entry main 1536 20)\n(llvm:code-entry _start 1600 52)\n(llvm:code-entry abort@GLIBC_2.17 0 0)\n(llvm:code-entry _fini 1876 0)\n(llvm:code-entry __cxa_finalize@GLIBC_2.17 0 0)\n(llvm:code-entry __libc_start_main@GLIBC_2.34 0 0)\n(llvm:code-entry frame_dummy 1872 0)\n(llvm:code-entry __do_global_dtors_aux 1792 0)\n(llvm:code-entry register_tm_clones 1728 0)\n(llvm:code-entry deregister_tm_clones 1680 0)\n(llvm:code-entry call_weak_fn 1652 20)\n(llvm:code-entry .fini 1876 20)\n(llvm:code-entry .text 1536 340)\n(llvm:code-entry .plt 1440 96)\n(llvm:code-entry .init 1408 24)\n(llvm:elf-program-header 08 3480 616)\n(llvm:elf-program-header 07 0 0)\n(llvm:elf-program-header 06 1900 60)\n(llvm:elf-program-header 05 596 68)\n(llvm:elf-program-header 04 3496 496)\n(llvm:elf-program-header 03 3480 632)\n(llvm:elf-program-header 02 0 2120)\n(llvm:elf-program-header 01 568 27)\n(llvm:elf-program-header 00 64 504)\n(llvm:elf-program-header-flags 08 false true false false)\n(llvm:elf-program-header-flags 07 false true true false)\n(llvm:elf-program-header-flags 06 false true false false)\n(llvm:elf-program-header-flags 05 false true false false)\n(llvm:elf-program-header-flags 04 false true true false)\n(llvm:elf-program-header-flags 03 true true true false)\n(llvm:elf-program-header-flags 02 true true false true)\n(llvm:elf-program-header-flags 01 false true false false)\n(llvm:elf-program-header-flags 00 false true false false)\n(llvm:elf-virtual-program-header 08 69016 616)\n(llvm:elf-virtual-program-header 07 0 0)\n(llvm:elf-virtual-program-header 06 1900 60)\n(llvm:elf-virtual-program-header 05 596 68)\n(llvm:elf-virtual-program-header 04 69032 496)\n(llvm:elf-virtual-program-header 03 69016 640)\n(llvm:elf-virtual-program-header 02 0 2120)\n(llvm:elf-virtual-program-header 01 568 27)\n(llvm:elf-virtual-program-header 00 64 504)\n(llvm:entry-point 1600)\n(llvm:name-reference 69576 abort)\n(llvm:name-reference 69568 __gmon_start__)\n(llvm:name-reference 69560 __cxa_finalize)\n(llvm:name-reference 69552 __libc_start_main)\n(llvm:name-reference 69624 _ITM_registerTMCloneTable)\n(llvm:name-reference 69608 __gmon_start__)\n(llvm:name-reference 69600 __cxa_finalize)\n(llvm:name-reference 69592 _ITM_deregisterTMCloneTable)\n(llvm:section-entry .shstrtab 0 250 6827)\n(llvm:section-entry .strtab 0 555 6272)\n(llvm:section-entry .symtab 0 2112 4160)\n(llvm:section-entry .comment 0 43 4112)\n(llvm:section-entry .bss 69648 8 4112)\n(llvm:section-entry .data 69632 16 4096)\n(llvm:section-entry .got 69528 104 3992)\n(llvm:section-entry .dynamic 69032 496 3496)\n(llvm:section-entry .fini_array 69024 8 3488)\n(llvm:section-entry .init_array 69016 8 3480)\n(llvm:section-entry .eh_frame 1960 160 1960)\n(llvm:section-entry .eh_frame_hdr 1900 60 1900)\n(llvm:section-entry .rodata 1896 4 1896)\n(llvm:section-entry .fini 1876 20 1876)\n(llvm:section-entry .text 1536 340 1536)\n(llvm:section-entry .plt 1440 96 1440)\n(llvm:section-entry .init 1408 24 1408)\n(llvm:section-entry .rela.plt 1312 96 1312)\n(llvm:section-entry .rela.dyn 1120 192 1120)\n(llvm:section-entry .gnu.version_r 1072 48 1072)\n(llvm:section-entry .gnu.version 1054 18 1054)\n(llvm:section-entry .dynstr 912 141 912)\n(llvm:section-entry .dynsym 696 216 696)\n(llvm:section-entry .gnu.hash 664 28 664)\n(llvm:section-entry .note.ABI-tag 632 32 632)\n(llvm:section-entry .note.gnu.build-id 596 36 596)\n(llvm:section-entry .interp 568 27 568)\n(llvm:section-flags .shstrtab true false false)\n(llvm:section-flags .strtab true false false)\n(llvm:section-flags .symtab true false false)\n(llvm:section-flags .comment true false false)\n(llvm:section-flags .bss true true false)\n(llvm:section-flags .data true true false)\n(llvm:section-flags .got true true false)\n(llvm:section-flags .dynamic true true false)\n(llvm:section-flags .fini_array true true false)\n(llvm:section-flags .init_array true true false)\n(llvm:section-flags .eh_frame true false false)\n(llvm:section-flags .eh_frame_hdr true false false)\n(llvm:section-flags .rodata true false false)\n(llvm:section-flags .fini true false true)\n(llvm:section-flags .text true false true)\n(llvm:section-flags .plt true false true)\n(llvm:section-flags .init true false true)\n(llvm:section-flags .rela.plt true false false)\n(llvm:section-flags .rela.dyn true false false)\n(llvm:section-flags .gnu.version_r true false false)\n(llvm:section-flags .gnu.version true false false)\n(llvm:section-flags .dynstr true false false)\n(llvm:section-flags .dynsym true false false)\n(llvm:section-flags .gnu.hash true false false)\n(llvm:section-flags .note.ABI-tag true false false)\n(llvm:section-flags .note.gnu.build-id true false false)\n(llvm:section-flags .interp true false false)\n(llvm:symbol-entry abort 0 0 0 0)\n(llvm:symbol-entry __cxa_finalize 0 0 0 0)\n(llvm:symbol-entry __libc_start_main 0 0 0 0)\n(llvm:symbol-entry _init 1408 0 1408 1408)\n(llvm:symbol-entry main 1536 20 1536 1536)\n(llvm:symbol-entry _start 1600 52 1600 1600)\n(llvm:symbol-entry abort@GLIBC_2.17 0 0 0 0)\n(llvm:symbol-entry _fini 1876 0 1876 1876)\n(llvm:symbol-entry __cxa_finalize@GLIBC_2.17 0 0 0 0)\n(llvm:symbol-entry __libc_start_main@GLIBC_2.34 0 0 0 0)\n(llvm:symbol-entry frame_dummy 1872 0 1872 1872)\n(llvm:symbol-entry __do_global_dtors_aux 1792 0 1792 1792)\n(llvm:symbol-entry register_tm_clones 1728 0 1728 1728)\n(llvm:symbol-entry deregister_tm_clones 1680 0 1680 1680)\n(llvm:symbol-entry call_weak_fn 1652 20 1652 1652)\n(mapped 0 2120 0)\n(mapped 69016 632 3480)\n(named-region 0 2120 02)\n(named-region 69016 640 03)\n(named-region 568 27 .interp)\n(named-region 596 36 .note.gnu.build-id)\n(named-region 632 32 .note.ABI-tag)\n(named-region 664 28 .gnu.hash)\n(named-region 696 216 .dynsym)\n(named-region 912 141 .dynstr)\n(named-region 1054 18 .gnu.version)\n(named-region 1072 48 .gnu.version_r)\n(named-region 1120 192 .rela.dyn)\n(named-region 1312 96 .rela.plt)\n(named-region 1408 24 .init)\n(named-region 1440 96 .plt)\n(named-region 1536 340 .text)\n(named-region 1876 20 .fini)\n(named-region 1896 4 .rodata)\n(named-region 1900 60 .eh_frame_hdr)\n(named-region 1960 160 .eh_frame)\n(named-region 69016 8 .init_array)\n(named-region 69024 8 .fini_array)\n(named-region 69032 496 .dynamic)\n(named-region 69528 104 .got)\n(named-region 69632 16 .data)\n(named-region 69648 8 .bss)\n(named-region 0 43 .comment)\n(named-region 0 2112 .symtab)\n(named-region 0 555 .strtab)\n(named-region 0 250 .shstrtab)\n(named-symbol 1652 call_weak_fn)\n(named-symbol 1680 deregister_tm_clones)\n(named-symbol 1728 register_tm_clones)\n(named-symbol 1792 __do_global_dtors_aux)\n(named-symbol 1872 frame_dummy)\n(named-symbol 0 __libc_start_main@GLIBC_2.34)\n(named-symbol 0 __cxa_finalize@GLIBC_2.17)\n(named-symbol 1876 _fini)\n(named-symbol 0 abort@GLIBC_2.17)\n(named-symbol 1600 _start)\n(named-symbol 1536 main)\n(named-symbol 1408 _init)\n(named-symbol 0 __libc_start_main)\n(named-symbol 0 __cxa_finalize)\n(named-symbol 0 abort)\n(require libc.so.6)\n(section 568 27)\n(section 596 36)\n(section 632 32)\n(section 664 28)\n(section 696 216)\n(section 912 141)\n(section 1054 18)\n(section 1072 48)\n(section 1120 192)\n(section 1312 96)\n(section 1408 24)\n(section 1440 96)\n(section 1536 340)\n(section 1876 20)\n(section 1896 4)\n(section 1900 60)\n(section 1960 160)\n(section 69016 8)\n(section 69024 8)\n(section 69032 496)\n(section 69528 104)\n(section 69632 16)\n(section 69648 8)\n(section 0 43)\n(section 0 2112)\n(section 0 555)\n(section 0 250)\n(segment 0 2120 true false true)\n(segment 69016 640 true true false)\n(subarch v8)\n(symbol-chunk 1652 20 1652)\n(symbol-chunk 1600 52 1600)\n(symbol-chunk 1536 20 1536)\n(symbol-value 1652 1652)\n(symbol-value 1680 1680)\n(symbol-value 1728 1728)\n(symbol-value 1792 1792)\n(symbol-value 1872 1872)\n(symbol-value 1876 1876)\n(symbol-value 1600 1600)\n(symbol-value 1536 1536)\n(symbol-value 1408 1408)\n(symbol-value 0 0)\n(system \"\")\n(vendor \"\")\n"), -Attr("abi-name","\"aarch64-linux-gnu-elf\"")]), -Sections([Section(".shstrtab", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x40\x06\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xa8\x1b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x38\x00\x09\x00\x40\x00\x1c\x00\x1b\x00\x06\x00\x00\x00\x04\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x04\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x48\x08\x00\x00\x00\x00\x00\x00\x48\x08\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x01\x00\x00\x00\x06\x00\x00\x00\x98\x0d\x00\x00\x00\x00\x00\x00\x98\x0d"), -Section(".strtab", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x40\x06\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xa8\x1b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x38\x00\x09\x00\x40\x00\x1c\x00\x1b\x00\x06\x00\x00\x00\x04\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x04\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x48\x08\x00\x00\x00\x00\x00\x00\x48\x08\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x01\x00\x00\x00\x06\x00\x00\x00\x98\x0d\x00\x00\x00\x00\x00\x00\x98\x0d\x01\x00\x00\x00\x00\x00\x98\x0d\x01\x00\x00\x00\x00\x00\x78\x02\x00\x00\x00\x00\x00\x00\x80\x02\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x02\x00\x00\x00\x06\x00\x00\x00\xa8\x0d\x00\x00\x00\x00\x00\x00\xa8\x0d\x01\x00\x00\x00\x00\x00\xa8\x0d\x01\x00\x00\x00\x00\x00\xf0\x01\x00\x00\x00\x00\x00\x00\xf0\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x04\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x50\xe5\x74\x64\x04\x00\x00\x00\x6c\x07\x00\x00\x00\x00\x00\x00\x6c\x07\x00\x00\x00\x00\x00\x00\x6c\x07\x00\x00\x00\x00\x00\x00\x3c\x00\x00\x00\x00\x00\x00\x00\x3c\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x51\xe5\x74\x64\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x52\xe5\x74\x64\x04\x00\x00\x00\x98\x0d\x00\x00\x00\x00\x00\x00\x98\x0d\x01\x00\x00\x00\x00\x00\x98\x0d\x01\x00\x00\x00\x00\x00\x68\x02\x00\x00\x00\x00\x00\x00\x68\x02\x00"), -Section(".symtab", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x40\x06\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xa8\x1b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x38\x00\x09\x00\x40\x00\x1c\x00\x1b\x00\x06\x00\x00\x00\x04\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x04\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x48\x08\x00\x00\x00\x00\x00\x00\x48\x08\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x01\x00\x00\x00\x06\x00\x00\x00\x98\x0d\x00\x00\x00\x00\x00\x00\x98\x0d\x01\x00\x00\x00\x00\x00\x98\x0d\x01\x00\x00\x00\x00\x00\x78\x02\x00\x00\x00\x00\x00\x00\x80\x02\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x02\x00\x00\x00\x06\x00\x00\x00\xa8\x0d\x00\x00\x00\x00\x00\x00\xa8\x0d\x01\x00\x00\x00\x00\x00\xa8\x0d\x01\x00\x00\x00\x00\x00\xf0\x01\x00\x00\x00\x00\x00\x00\xf0\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x04\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x50\xe5\x74\x64\x04\x00\x00\x00\x6c\x07\x00\x00\x00\x00\x00\x00\x6c\x07\x00\x00\x00\x00\x00\x00\x6c\x07\x00\x00\x00\x00\x00\x00\x3c\x00\x00\x00\x00\x00\x00\x00\x3c\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x51\xe5\x74\x64\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x52\xe5\x74\x64\x04\x00\x00\x00\x98\x0d\x00\x00\x00\x00\x00\x00\x98\x0d\x01\x00\x00\x00\x00\x00\x98\x0d\x01\x00\x00\x00\x00\x00\x68\x02\x00\x00\x00\x00\x00\x00\x68\x02\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x2f\x6c\x69\x62\x2f\x6c\x64\x2d\x6c\x69\x6e\x75\x78\x2d\x61\x61\x72\x63\x68\x36\x34\x2e\x73\x6f\x2e\x31\x00\x00\x04\x00\x00\x00\x14\x00\x00\x00\x03\x00\x00\x00\x47\x4e\x55\x00\xa1\xc4\x82\xa9\xbb\xd0\x2a\xb2\x74\xb1\xab\xb2\xb4\x13\x7f\x06\x66\x86\xa9\xa1\x04\x00\x00\x00\x10\x00\x00\x00\x01\x00\x00\x00\x47\x4e\x55\x00\x00\x00\x00\x00\x03\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x01\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x0b\x00\x80\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x16\x00\x00\x10\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x48\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x22\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x22\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x73\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5f\x5f\x63\x78\x61\x5f\x66\x69\x6e\x61\x6c\x69\x7a\x65\x00\x5f\x5f\x6c\x69\x62\x63\x5f\x73\x74\x61\x72\x74\x5f\x6d\x61\x69\x6e\x00\x61\x62\x6f\x72\x74\x00\x6c\x69\x62\x63\x2e\x73\x6f\x2e\x36\x00\x47\x4c\x49\x42\x43\x5f\x32\x2e\x31\x37\x00\x47\x4c\x49\x42\x43\x5f\x32\x2e\x33\x34\x00\x5f\x49\x54\x4d\x5f\x64\x65\x72\x65\x67\x69\x73\x74\x65\x72\x54\x4d\x43\x6c\x6f\x6e\x65\x54\x61\x62\x6c\x65\x00\x5f\x5f\x67\x6d\x6f\x6e\x5f\x73\x74\x61\x72\x74\x5f\x5f\x00\x5f\x49\x54\x4d\x5f\x72\x65\x67\x69\x73\x74\x65\x72\x54\x4d\x43\x6c\x6f\x6e\x65\x54\x61\x62\x6c\x65\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x01\x00\x03\x00\x01\x00\x03\x00\x01\x00\x01\x00\x02\x00\x28\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x97\x91\x96\x06\x00\x00\x03\x00\x32\x00\x00\x00\x10\x00\x00\x00\xb4\x91\x96\x06\x00\x00\x02\x00\x3d\x00\x00\x00\x00\x00\x00\x00\x98\x0d\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x50\x07\x00\x00\x00\x00\x00\x00\xa0\x0d\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\xf0\x0f\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x00\x06\x00\x00\x00\x00\x00\x00\x08\x10\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x08\x10\x01\x00\x00\x00\x00\x00\xd8\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe0\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe8\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xf8\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xb0\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xb8\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xc0\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xc8\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1f\x20\x03\xd5\xfd\x7b\xbf\xa9\xfd\x03\x00\x91\x3a\x00\x00\x94\xfd\x7b\xc1\xa8\xc0\x03\x5f\xd6\x00\x00\x00\x00\x00\x00\x00\x00\xf0\x7b\xbf\xa9\x90\x00\x00\x90\x11\xd6\x47\xf9\x10\xa2\x3e\x91\x20\x02\x1f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x90\x00\x00\x90\x11\xda\x47\xf9\x10\xc2\x3e\x91\x20\x02\x1f\xd6\x90\x00\x00\x90\x11\xde\x47\xf9\x10\xe2\x3e\x91\x20\x02\x1f\xd6\x90\x00\x00\x90\x11\xe2\x47\xf9\x10\x02\x3f\x91\x20\x02\x1f\xd6\x90\x00\x00\x90\x11\xe6\x47\xf9\x10\x22\x3f\x91\x20\x02\x1f\xd6\x81\x00\x00\xb0\xa2\x00\x80\x52\x00\x00\x80\x52\x22\x14\x00\xb9\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1d\x00\x80\xd2\x1e\x00\x80\xd2\xe5\x03\x00\xaa\xe1\x03\x40\xf9\xe2\x23\x00\x91\xe6\x03\x00\x91\x80\x00\x00\x90\x00\xf8\x47\xf9\x03\x00\x80\xd2\x04\x00\x80\xd2\xd5\xff\xff\x97\xe0\xff\xff\x97\x80\x00\x00\x90\x00\xf4\x47\xf9\x40\x00\x00\xb4\xd8\xff\xff\x17\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x80\x00\x00\xb0\x00\x40\x00\x91\x81\x00\x00\xb0\x21\x40\x00\x91\x3f\x00\x00\xeb\xc0\x00\x00\x54\x81\x00\x00\x90\x21\xec\x47\xf9\x61\x00\x00\xb4\xf0\x03\x01\xaa\x00\x02\x1f\xd6\xc0\x03\x5f\xd6\x80\x00\x00\xb0\x00\x40\x00\x91\x81\x00\x00\xb0\x21\x40\x00\x91\x21\x00\x00\xcb\x22\xfc\x7f\xd3\x41\x0c\x81\x8b\x21\xfc\x41\x93\xc1\x00\x00\xb4\x82\x00\x00\x90\x42\xfc\x47\xf9\x62\x00\x00\xb4\xf0\x03\x02\xaa\x00\x02\x1f\xd6\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\xfd\x7b\xbe\xa9\xfd\x03\x00\x91\xf3\x0b\x00\xf9\x93\x00\x00\xb0\x60\x42\x40\x39\x40\x01\x00\x35\x80\x00\x00\x90\x00\xf0\x47\xf9\x80\x00\x00\xb4\x80\x00\x00\xb0\x00\x04\x40\xf9\xa9\xff\xff\x97\xd8\xff\xff\x97\x20\x00\x80\x52\x60\x42\x00\x39\xf3\x0b\x40\xf9\xfd\x7b\xc2\xa8\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\xdc\xff\xff\x17\x1f\x20\x03\xd5\xfd\x7b\xbf\xa9\xfd\x03\x00\x91\xfd\x7b\xc1\xa8\xc0\x03\x5f\xd6\x01\x00\x02\x00\x01\x1b\x03\x3b\x38\x00\x00\x00\x06\x00\x00\x00\x94\xfe\xff\xff\xc4\x00\x00\x00\xd4\xfe\xff\xff\x50\x00\x00\x00\x24\xff\xff\xff\x64\x00\x00\x00\x54\xff\xff\xff\x78\x00\x00\x00\x94\xff\xff\xff\x8c\x00\x00\x00\xe4\xff\xff\xff\xb0\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x01\x7a\x52\x00\x04\x78\x1e\x01\x1b\x0c\x1f\x00\x10\x00\x00\x00\x18\x00\x00\x00\x7c\xfe\xff\xff\x34\x00\x00\x00\x00\x41\x07\x1e\x10\x00\x00\x00\x2c\x00\x00\x00\xb8\xfe\xff\xff\x30\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x40\x00\x00\x00\xd4\xfe\xff\xff\x3c\x00\x00\x00\x00\x00\x00\x00\x20\x00\x00\x00\x54\x00\x00\x00\x00\xff\xff\xff\x48\x00\x00\x00\x00\x41\x0e\x20\x9d\x04\x9e\x03\x42\x93\x02\x4e\xde\xdd\xd3\x0e\x00\x00\x00\x00\x10\x00\x00\x00\x78\x00\x00\x00\x2c\xff\xff\xff\x04\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x8c\x00\x00\x00\xc8\xfd\xff\xff\x14\x00\x00\x00"), -Section(".comment", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x40\x06\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xa8\x1b\x00"), -Section(".interp", 0x238, "\x2f\x6c\x69\x62\x2f\x6c\x64\x2d\x6c\x69\x6e\x75\x78\x2d\x61\x61\x72\x63\x68\x36\x34\x2e\x73\x6f\x2e\x31\x00"), -Section(".note.gnu.build-id", 0x254, "\x04\x00\x00\x00\x14\x00\x00\x00\x03\x00\x00\x00\x47\x4e\x55\x00\xa1\xc4\x82\xa9\xbb\xd0\x2a\xb2\x74\xb1\xab\xb2\xb4\x13\x7f\x06\x66\x86\xa9\xa1"), -Section(".note.ABI-tag", 0x278, "\x04\x00\x00\x00\x10\x00\x00\x00\x01\x00\x00\x00\x47\x4e\x55\x00\x00\x00\x00\x00\x03\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00"), -Section(".gnu.hash", 0x298, "\x01\x00\x00\x00\x01\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".dynsym", 0x2B8, "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x0b\x00\x80\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x16\x00\x00\x10\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x48\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x22\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x22\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x73\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".dynstr", 0x390, "\x00\x5f\x5f\x63\x78\x61\x5f\x66\x69\x6e\x61\x6c\x69\x7a\x65\x00\x5f\x5f\x6c\x69\x62\x63\x5f\x73\x74\x61\x72\x74\x5f\x6d\x61\x69\x6e\x00\x61\x62\x6f\x72\x74\x00\x6c\x69\x62\x63\x2e\x73\x6f\x2e\x36\x00\x47\x4c\x49\x42\x43\x5f\x32\x2e\x31\x37\x00\x47\x4c\x49\x42\x43\x5f\x32\x2e\x33\x34\x00\x5f\x49\x54\x4d\x5f\x64\x65\x72\x65\x67\x69\x73\x74\x65\x72\x54\x4d\x43\x6c\x6f\x6e\x65\x54\x61\x62\x6c\x65\x00\x5f\x5f\x67\x6d\x6f\x6e\x5f\x73\x74\x61\x72\x74\x5f\x5f\x00\x5f\x49\x54\x4d\x5f\x72\x65\x67\x69\x73\x74\x65\x72\x54\x4d\x43\x6c\x6f\x6e\x65\x54\x61\x62\x6c\x65\x00"), -Section(".gnu.version", 0x41E, "\x00\x00\x00\x00\x00\x00\x02\x00\x01\x00\x03\x00\x01\x00\x03\x00\x01\x00"), -Section(".gnu.version_r", 0x430, "\x01\x00\x02\x00\x28\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x97\x91\x96\x06\x00\x00\x03\x00\x32\x00\x00\x00\x10\x00\x00\x00\xb4\x91\x96\x06\x00\x00\x02\x00\x3d\x00\x00\x00\x00\x00\x00\x00"), -Section(".rela.dyn", 0x460, "\x98\x0d\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x50\x07\x00\x00\x00\x00\x00\x00\xa0\x0d\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\xf0\x0f\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x00\x06\x00\x00\x00\x00\x00\x00\x08\x10\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x08\x10\x01\x00\x00\x00\x00\x00\xd8\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe0\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe8\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xf8\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".rela.plt", 0x520, "\xb0\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xb8\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xc0\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xc8\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".init", 0x580, "\x1f\x20\x03\xd5\xfd\x7b\xbf\xa9\xfd\x03\x00\x91\x3a\x00\x00\x94\xfd\x7b\xc1\xa8\xc0\x03\x5f\xd6"), -Section(".plt", 0x5A0, "\xf0\x7b\xbf\xa9\x90\x00\x00\x90\x11\xd6\x47\xf9\x10\xa2\x3e\x91\x20\x02\x1f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x90\x00\x00\x90\x11\xda\x47\xf9\x10\xc2\x3e\x91\x20\x02\x1f\xd6\x90\x00\x00\x90\x11\xde\x47\xf9\x10\xe2\x3e\x91\x20\x02\x1f\xd6\x90\x00\x00\x90\x11\xe2\x47\xf9\x10\x02\x3f\x91\x20\x02\x1f\xd6\x90\x00\x00\x90\x11\xe6\x47\xf9\x10\x22\x3f\x91\x20\x02\x1f\xd6"), -Section(".fini", 0x754, "\x1f\x20\x03\xd5\xfd\x7b\xbf\xa9\xfd\x03\x00\x91\xfd\x7b\xc1\xa8\xc0\x03\x5f\xd6"), -Section(".rodata", 0x768, "\x01\x00\x02\x00"), -Section(".eh_frame_hdr", 0x76C, "\x01\x1b\x03\x3b\x38\x00\x00\x00\x06\x00\x00\x00\x94\xfe\xff\xff\xc4\x00\x00\x00\xd4\xfe\xff\xff\x50\x00\x00\x00\x24\xff\xff\xff\x64\x00\x00\x00\x54\xff\xff\xff\x78\x00\x00\x00\x94\xff\xff\xff\x8c\x00\x00\x00\xe4\xff\xff\xff\xb0\x00\x00\x00"), -Section(".eh_frame", 0x7A8, "\x10\x00\x00\x00\x00\x00\x00\x00\x01\x7a\x52\x00\x04\x78\x1e\x01\x1b\x0c\x1f\x00\x10\x00\x00\x00\x18\x00\x00\x00\x7c\xfe\xff\xff\x34\x00\x00\x00\x00\x41\x07\x1e\x10\x00\x00\x00\x2c\x00\x00\x00\xb8\xfe\xff\xff\x30\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x40\x00\x00\x00\xd4\xfe\xff\xff\x3c\x00\x00\x00\x00\x00\x00\x00\x20\x00\x00\x00\x54\x00\x00\x00\x00\xff\xff\xff\x48\x00\x00\x00\x00\x41\x0e\x20\x9d\x04\x9e\x03\x42\x93\x02\x4e\xde\xdd\xd3\x0e\x00\x00\x00\x00\x10\x00\x00\x00\x78\x00\x00\x00\x2c\xff\xff\xff\x04\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x8c\x00\x00\x00\xc8\xfd\xff\xff\x14\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".fini_array", 0x10DA0, "\x00\x07\x00\x00\x00\x00\x00\x00"), -Section(".dynamic", 0x10DA8, "\x01\x00\x00\x00\x00\x00\x00\x00\x28\x00\x00\x00\x00\x00\x00\x00\x0c\x00\x00\x00\x00\x00\x00\x00\x80\x05\x00\x00\x00\x00\x00\x00\x0d\x00\x00\x00\x00\x00\x00\x00\x54\x07\x00\x00\x00\x00\x00\x00\x19\x00\x00\x00\x00\x00\x00\x00\x98\x0d\x01\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x1a\x00\x00\x00\x00\x00\x00\x00\xa0\x0d\x01\x00\x00\x00\x00\x00\x1c\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\xf5\xfe\xff\x6f\x00\x00\x00\x00\x98\x02\x00\x00\x00\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x90\x03\x00\x00\x00\x00\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\xb8\x02\x00\x00\x00\x00\x00\x00\x0a\x00\x00\x00\x00\x00\x00\x00\x8d\x00\x00\x00\x00\x00\x00\x00\x0b\x00\x00\x00\x00\x00\x00\x00\x18\x00\x00\x00\x00\x00\x00\x00\x15\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x98\x0f\x01\x00\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x60\x00\x00\x00\x00\x00\x00\x00\x14\x00\x00\x00\x00\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x17\x00\x00\x00\x00\x00\x00\x00\x20\x05\x00\x00\x00\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x60\x04\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\xc0\x00\x00\x00\x00\x00\x00\x00\x09\x00\x00\x00\x00\x00\x00\x00\x18\x00\x00\x00\x00\x00\x00\x00\x1e\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\xfb\xff\xff\x6f\x00\x00\x00\x00\x01\x00\x00\x08\x00\x00\x00\x00\xfe\xff\xff\x6f\x00\x00\x00\x00\x30\x04\x00\x00\x00\x00\x00\x00\xff\xff\xff\x6f\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\xf0\xff\xff\x6f\x00\x00\x00\x00\x1e\x04\x00\x00\x00\x00\x00\x00\xf9\xff\xff\x6f\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".init_array", 0x10D98, "\x50\x07\x00\x00\x00\x00\x00\x00"), -Section(".got", 0x10F98, "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xa0\x05\x00\x00\x00\x00\x00\x00\xa0\x05\x00\x00\x00\x00\x00\x00\xa0\x05\x00\x00\x00\x00\x00\x00\xa0\x05\x00\x00\x00\x00\x00\x00\xa8\x0d\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".data", 0x11000, "\x00\x00\x00\x00\x00\x00\x00\x00\x08\x10\x01\x00\x00\x00\x00\x00"), -Section(".text", 0x600, "\x81\x00\x00\xb0\xa2\x00\x80\x52\x00\x00\x80\x52\x22\x14\x00\xb9\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1d\x00\x80\xd2\x1e\x00\x80\xd2\xe5\x03\x00\xaa\xe1\x03\x40\xf9\xe2\x23\x00\x91\xe6\x03\x00\x91\x80\x00\x00\x90\x00\xf8\x47\xf9\x03\x00\x80\xd2\x04\x00\x80\xd2\xd5\xff\xff\x97\xe0\xff\xff\x97\x80\x00\x00\x90\x00\xf4\x47\xf9\x40\x00\x00\xb4\xd8\xff\xff\x17\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x80\x00\x00\xb0\x00\x40\x00\x91\x81\x00\x00\xb0\x21\x40\x00\x91\x3f\x00\x00\xeb\xc0\x00\x00\x54\x81\x00\x00\x90\x21\xec\x47\xf9\x61\x00\x00\xb4\xf0\x03\x01\xaa\x00\x02\x1f\xd6\xc0\x03\x5f\xd6\x80\x00\x00\xb0\x00\x40\x00\x91\x81\x00\x00\xb0\x21\x40\x00\x91\x21\x00\x00\xcb\x22\xfc\x7f\xd3\x41\x0c\x81\x8b\x21\xfc\x41\x93\xc1\x00\x00\xb4\x82\x00\x00\x90\x42\xfc\x47\xf9\x62\x00\x00\xb4\xf0\x03\x02\xaa\x00\x02\x1f\xd6\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\xfd\x7b\xbe\xa9\xfd\x03\x00\x91\xf3\x0b\x00\xf9\x93\x00\x00\xb0\x60\x42\x40\x39\x40\x01\x00\x35\x80\x00\x00\x90\x00\xf0\x47\xf9\x80\x00\x00\xb4\x80\x00\x00\xb0\x00\x04\x40\xf9\xa9\xff\xff\x97\xd8\xff\xff\x97\x20\x00\x80\x52\x60\x42\x00\x39\xf3\x0b\x40\xf9\xfd\x7b\xc2\xa8\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\xdc\xff\xff\x17")]), -Memmap([Annotation(Region(0x0,0x847), Attr("segment","02 0 2120")), -Annotation(Region(0x600,0x613), Attr("symbol","\"main\"")), -Annotation(Region(0x0,0xF9), Attr("section","\".shstrtab\"")), -Annotation(Region(0x0,0x22A), Attr("section","\".strtab\"")), -Annotation(Region(0x0,0x83F), Attr("section","\".symtab\"")), -Annotation(Region(0x0,0x2A), Attr("section","\".comment\"")), -Annotation(Region(0x238,0x252), Attr("section","\".interp\"")), -Annotation(Region(0x254,0x277), Attr("section","\".note.gnu.build-id\"")), -Annotation(Region(0x278,0x297), Attr("section","\".note.ABI-tag\"")), -Annotation(Region(0x298,0x2B3), Attr("section","\".gnu.hash\"")), -Annotation(Region(0x2B8,0x38F), Attr("section","\".dynsym\"")), -Annotation(Region(0x390,0x41C), Attr("section","\".dynstr\"")), -Annotation(Region(0x41E,0x42F), Attr("section","\".gnu.version\"")), -Annotation(Region(0x430,0x45F), Attr("section","\".gnu.version_r\"")), -Annotation(Region(0x460,0x51F), Attr("section","\".rela.dyn\"")), -Annotation(Region(0x520,0x57F), Attr("section","\".rela.plt\"")), -Annotation(Region(0x580,0x597), Attr("section","\".init\"")), -Annotation(Region(0x5A0,0x5FF), Attr("section","\".plt\"")), -Annotation(Region(0x580,0x597), Attr("code-region","()")), -Annotation(Region(0x5A0,0x5FF), Attr("code-region","()")), -Annotation(Region(0x600,0x613), Attr("symbol-info","main 0x600 20")), -Annotation(Region(0x640,0x673), Attr("symbol","\"_start\"")), -Annotation(Region(0x640,0x673), Attr("symbol-info","_start 0x640 52")), -Annotation(Region(0x674,0x687), Attr("symbol","\"call_weak_fn\"")), -Annotation(Region(0x674,0x687), Attr("symbol-info","call_weak_fn 0x674 20")), -Annotation(Region(0x754,0x767), Attr("section","\".fini\"")), -Annotation(Region(0x768,0x76B), Attr("section","\".rodata\"")), -Annotation(Region(0x76C,0x7A7), Attr("section","\".eh_frame_hdr\"")), -Annotation(Region(0x7A8,0x847), Attr("section","\".eh_frame\"")), -Annotation(Region(0x10D98,0x1100F), Attr("segment","03 0x10D98 640")), -Annotation(Region(0x10DA0,0x10DA7), Attr("section","\".fini_array\"")), -Annotation(Region(0x10DA8,0x10F97), Attr("section","\".dynamic\"")), -Annotation(Region(0x10D98,0x10D9F), Attr("section","\".init_array\"")), -Annotation(Region(0x10F98,0x10FFF), Attr("section","\".got\"")), -Annotation(Region(0x11000,0x1100F), Attr("section","\".data\"")), -Annotation(Region(0x600,0x753), Attr("section","\".text\"")), -Annotation(Region(0x600,0x753), Attr("code-region","()")), -Annotation(Region(0x754,0x767), Attr("code-region","()"))]), -Program(Tid(1_505, "%000005e1"), Attrs([]), - Subs([Sub(Tid(1_455, "@__cxa_finalize"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x5D0"), -Attr("stub","()")]), "__cxa_finalize", Args([Arg(Tid(1_506, "%000005e2"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("__cxa_finalize_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(851, "@__cxa_finalize"), - Attrs([Attr("address","0x5D0")]), Phis([]), -Defs([Def(Tid(1_099, "%0000044b"), Attrs([Attr("address","0x5D0"), -Attr("insn","adrp x16, #65536")]), Var("R16",Imm(64)), Int(65536,64)), -Def(Tid(1_106, "%00000452"), Attrs([Attr("address","0x5D4"), -Attr("insn","ldr x17, [x16, #0xfb8]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(4024,64)),LittleEndian(),64)), -Def(Tid(1_112, "%00000458"), Attrs([Attr("address","0x5D8"), -Attr("insn","add x16, x16, #0xfb8")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(4024,64)))]), Jmps([Call(Tid(1_117, "%0000045d"), - Attrs([Attr("address","0x5DC"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), -Sub(Tid(1_456, "@__do_global_dtors_aux"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x700")]), - "__do_global_dtors_aux", Args([Arg(Tid(1_507, "%000005e3"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("__do_global_dtors_aux_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(704, "@__do_global_dtors_aux"), - Attrs([Attr("address","0x700")]), Phis([]), Defs([Def(Tid(708, "%000002c4"), - Attrs([Attr("address","0x700"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("#3",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(18446744073709551584,64))), -Def(Tid(714, "%000002ca"), Attrs([Attr("address","0x700"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("#3",Imm(64)),Var("R29",Imm(64)),LittleEndian(),64)), -Def(Tid(720, "%000002d0"), Attrs([Attr("address","0x700"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("#3",Imm(64)),Int(8,64)),Var("R30",Imm(64)),LittleEndian(),64)), -Def(Tid(724, "%000002d4"), Attrs([Attr("address","0x700"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("R31",Imm(64)), -Var("#3",Imm(64))), Def(Tid(730, "%000002da"), - Attrs([Attr("address","0x704"), Attr("insn","mov x29, sp")]), - Var("R29",Imm(64)), Var("R31",Imm(64))), Def(Tid(738, "%000002e2"), - Attrs([Attr("address","0x708"), Attr("insn","str x19, [sp, #0x10]")]), - Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(16,64)),Var("R19",Imm(64)),LittleEndian(),64)), -Def(Tid(743, "%000002e7"), Attrs([Attr("address","0x70C"), -Attr("insn","adrp x19, #69632")]), Var("R19",Imm(64)), Int(69632,64)), -Def(Tid(750, "%000002ee"), Attrs([Attr("address","0x710"), -Attr("insn","ldrb w0, [x19, #0x10]")]), Var("R0",Imm(64)), -UNSIGNED(64,Load(Var("mem",Mem(64,8)),PLUS(Var("R19",Imm(64)),Int(16,64)),LittleEndian(),8)))]), -Jmps([Goto(Tid(757, "%000002f5"), Attrs([Attr("address","0x714"), -Attr("insn","cbnz w0, #0x28")]), - NEQ(Extract(31,0,Var("R0",Imm(64))),Int(0,32)), -Direct(Tid(755, "%000002f3"))), Goto(Tid(1_495, "%000005d7"), Attrs([]), - Int(1,1), Direct(Tid(796, "%0000031c")))])), Blk(Tid(796, "%0000031c"), - Attrs([Attr("address","0x718")]), Phis([]), Defs([Def(Tid(799, "%0000031f"), - Attrs([Attr("address","0x718"), Attr("insn","adrp x0, #65536")]), - Var("R0",Imm(64)), Int(65536,64)), Def(Tid(806, "%00000326"), - Attrs([Attr("address","0x71C"), Attr("insn","ldr x0, [x0, #0xfe0]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(4064,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(812, "%0000032c"), Attrs([Attr("address","0x720"), -Attr("insn","cbz x0, #0x10")]), EQ(Var("R0",Imm(64)),Int(0,64)), -Direct(Tid(810, "%0000032a"))), Goto(Tid(1_496, "%000005d8"), Attrs([]), - Int(1,1), Direct(Tid(835, "%00000343")))])), Blk(Tid(835, "%00000343"), - Attrs([Attr("address","0x724")]), Phis([]), Defs([Def(Tid(838, "%00000346"), - Attrs([Attr("address","0x724"), Attr("insn","adrp x0, #69632")]), - Var("R0",Imm(64)), Int(69632,64)), Def(Tid(845, "%0000034d"), - Attrs([Attr("address","0x728"), Attr("insn","ldr x0, [x0, #0x8]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(850, "%00000352"), Attrs([Attr("address","0x72C"), -Attr("insn","bl #-0x15c")]), Var("R30",Imm(64)), Int(1840,64))]), -Jmps([Call(Tid(853, "%00000355"), Attrs([Attr("address","0x72C"), -Attr("insn","bl #-0x15c")]), Int(1,1), -(Direct(Tid(1_455, "@__cxa_finalize")),Direct(Tid(810, "%0000032a"))))])), -Blk(Tid(810, "%0000032a"), Attrs([Attr("address","0x730")]), Phis([]), -Defs([Def(Tid(818, "%00000332"), Attrs([Attr("address","0x730"), -Attr("insn","bl #-0xa0")]), Var("R30",Imm(64)), Int(1844,64))]), -Jmps([Call(Tid(820, "%00000334"), Attrs([Attr("address","0x730"), -Attr("insn","bl #-0xa0")]), Int(1,1), -(Direct(Tid(1_469, "@deregister_tm_clones")),Direct(Tid(822, "%00000336"))))])), -Blk(Tid(822, "%00000336"), Attrs([Attr("address","0x734")]), Phis([]), -Defs([Def(Tid(825, "%00000339"), Attrs([Attr("address","0x734"), -Attr("insn","mov w0, #0x1")]), Var("R0",Imm(64)), Int(1,64)), -Def(Tid(833, "%00000341"), Attrs([Attr("address","0x738"), -Attr("insn","strb w0, [x19, #0x10]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R19",Imm(64)),Int(16,64)),Extract(7,0,Var("R0",Imm(64))),LittleEndian(),8))]), -Jmps([Goto(Tid(1_497, "%000005d9"), Attrs([]), Int(1,1), -Direct(Tid(755, "%000002f3")))])), Blk(Tid(755, "%000002f3"), - Attrs([Attr("address","0x73C")]), Phis([]), Defs([Def(Tid(765, "%000002fd"), - Attrs([Attr("address","0x73C"), Attr("insn","ldr x19, [sp, #0x10]")]), - Var("R19",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(16,64)),LittleEndian(),64)), -Def(Tid(772, "%00000304"), Attrs([Attr("address","0x740"), -Attr("insn","ldp x29, x30, [sp], #0x20")]), Var("R29",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(777, "%00000309"), Attrs([Attr("address","0x740"), -Attr("insn","ldp x29, x30, [sp], #0x20")]), Var("R30",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(781, "%0000030d"), Attrs([Attr("address","0x740"), -Attr("insn","ldp x29, x30, [sp], #0x20")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(32,64)))]), Jmps([Call(Tid(786, "%00000312"), - Attrs([Attr("address","0x744"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), Sub(Tid(1_460, "@__libc_start_main"), - Attrs([Attr("c.proto","signed (*)(signed (*)(signed , char** , char** );* main, signed , char** , \nvoid* auxv)"), -Attr("address","0x5C0"), Attr("stub","()")]), "__libc_start_main", - Args([Arg(Tid(1_508, "%000005e4"), - Attrs([Attr("c.layout","**[ : 64]"), -Attr("c.data","Top:u64 ptr ptr"), -Attr("c.type","signed (*)(signed , char** , char** );*")]), - Var("__libc_start_main_main",Imm(64)), Var("R0",Imm(64)), In()), -Arg(Tid(1_509, "%000005e5"), Attrs([Attr("c.layout","[signed : 32]"), -Attr("c.data","Top:u32"), Attr("c.type","signed")]), - Var("__libc_start_main_arg2",Imm(32)), LOW(32,Var("R1",Imm(64))), In()), -Arg(Tid(1_510, "%000005e6"), Attrs([Attr("c.layout","**[char : 8]"), -Attr("c.data","Top:u8 ptr ptr"), Attr("c.type","char**")]), - Var("__libc_start_main_arg3",Imm(64)), Var("R2",Imm(64)), Both()), -Arg(Tid(1_511, "%000005e7"), Attrs([Attr("c.layout","*[ : 8]"), -Attr("c.data","{} ptr"), Attr("c.type","void*")]), - Var("__libc_start_main_auxv",Imm(64)), Var("R3",Imm(64)), Both()), -Arg(Tid(1_512, "%000005e8"), Attrs([Attr("c.layout","[signed : 32]"), -Attr("c.data","Top:u32"), Attr("c.type","signed")]), - Var("__libc_start_main_result",Imm(32)), LOW(32,Var("R0",Imm(64))), -Out())]), Blks([Blk(Tid(537, "@__libc_start_main"), - Attrs([Attr("address","0x5C0")]), Phis([]), -Defs([Def(Tid(1_077, "%00000435"), Attrs([Attr("address","0x5C0"), -Attr("insn","adrp x16, #65536")]), Var("R16",Imm(64)), Int(65536,64)), -Def(Tid(1_084, "%0000043c"), Attrs([Attr("address","0x5C4"), -Attr("insn","ldr x17, [x16, #0xfb0]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(4016,64)),LittleEndian(),64)), -Def(Tid(1_090, "%00000442"), Attrs([Attr("address","0x5C8"), -Attr("insn","add x16, x16, #0xfb0")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(4016,64)))]), Jmps([Call(Tid(1_095, "%00000447"), - Attrs([Attr("address","0x5CC"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), Sub(Tid(1_461, "@_fini"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x754")]), - "_fini", Args([Arg(Tid(1_513, "%000005e9"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("_fini_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(31, "@_fini"), - Attrs([Attr("address","0x754")]), Phis([]), Defs([Def(Tid(37, "%00000025"), - Attrs([Attr("address","0x758"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("#0",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(18446744073709551600,64))), -Def(Tid(43, "%0000002b"), Attrs([Attr("address","0x758"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("#0",Imm(64)),Var("R29",Imm(64)),LittleEndian(),64)), -Def(Tid(49, "%00000031"), Attrs([Attr("address","0x758"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("#0",Imm(64)),Int(8,64)),Var("R30",Imm(64)),LittleEndian(),64)), -Def(Tid(53, "%00000035"), Attrs([Attr("address","0x758"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("R31",Imm(64)), -Var("#0",Imm(64))), Def(Tid(59, "%0000003b"), Attrs([Attr("address","0x75C"), -Attr("insn","mov x29, sp")]), Var("R29",Imm(64)), Var("R31",Imm(64))), -Def(Tid(66, "%00000042"), Attrs([Attr("address","0x760"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R29",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(71, "%00000047"), Attrs([Attr("address","0x760"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R30",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(75, "%0000004b"), Attrs([Attr("address","0x760"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(16,64)))]), Jmps([Call(Tid(80, "%00000050"), - Attrs([Attr("address","0x764"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), Sub(Tid(1_462, "@_init"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x580")]), - "_init", Args([Arg(Tid(1_514, "%000005ea"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("_init_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(1_281, "@_init"), - Attrs([Attr("address","0x580")]), Phis([]), -Defs([Def(Tid(1_287, "%00000507"), Attrs([Attr("address","0x584"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("#5",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(18446744073709551600,64))), -Def(Tid(1_293, "%0000050d"), Attrs([Attr("address","0x584"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("#5",Imm(64)),Var("R29",Imm(64)),LittleEndian(),64)), -Def(Tid(1_299, "%00000513"), Attrs([Attr("address","0x584"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("#5",Imm(64)),Int(8,64)),Var("R30",Imm(64)),LittleEndian(),64)), -Def(Tid(1_303, "%00000517"), Attrs([Attr("address","0x584"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("R31",Imm(64)), -Var("#5",Imm(64))), Def(Tid(1_309, "%0000051d"), - Attrs([Attr("address","0x588"), Attr("insn","mov x29, sp")]), - Var("R29",Imm(64)), Var("R31",Imm(64))), Def(Tid(1_314, "%00000522"), - Attrs([Attr("address","0x58C"), Attr("insn","bl #0xe8")]), - Var("R30",Imm(64)), Int(1424,64))]), Jmps([Call(Tid(1_316, "%00000524"), - Attrs([Attr("address","0x58C"), Attr("insn","bl #0xe8")]), Int(1,1), -(Direct(Tid(1_467, "@call_weak_fn")),Direct(Tid(1_318, "%00000526"))))])), -Blk(Tid(1_318, "%00000526"), Attrs([Attr("address","0x590")]), Phis([]), -Defs([Def(Tid(1_323, "%0000052b"), Attrs([Attr("address","0x590"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R29",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(1_328, "%00000530"), Attrs([Attr("address","0x590"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R30",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(1_332, "%00000534"), Attrs([Attr("address","0x590"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(16,64)))]), Jmps([Call(Tid(1_337, "%00000539"), - Attrs([Attr("address","0x594"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), Sub(Tid(1_463, "@_start"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x640"), -Attr("entry-point","()")]), "_start", Args([Arg(Tid(1_515, "%000005eb"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("_start_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(474, "@_start"), - Attrs([Attr("address","0x640")]), Phis([]), Defs([Def(Tid(479, "%000001df"), - Attrs([Attr("address","0x644"), Attr("insn","mov x29, #0x0")]), - Var("R29",Imm(64)), Int(0,64)), Def(Tid(484, "%000001e4"), - Attrs([Attr("address","0x648"), Attr("insn","mov x30, #0x0")]), - Var("R30",Imm(64)), Int(0,64)), Def(Tid(490, "%000001ea"), - Attrs([Attr("address","0x64C"), Attr("insn","mov x5, x0")]), - Var("R5",Imm(64)), Var("R0",Imm(64))), Def(Tid(497, "%000001f1"), - Attrs([Attr("address","0x650"), Attr("insn","ldr x1, [sp]")]), - Var("R1",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(503, "%000001f7"), Attrs([Attr("address","0x654"), -Attr("insn","add x2, sp, #0x8")]), Var("R2",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(8,64))), Def(Tid(509, "%000001fd"), - Attrs([Attr("address","0x658"), Attr("insn","mov x6, sp")]), - Var("R6",Imm(64)), Var("R31",Imm(64))), Def(Tid(514, "%00000202"), - Attrs([Attr("address","0x65C"), Attr("insn","adrp x0, #65536")]), - Var("R0",Imm(64)), Int(65536,64)), Def(Tid(521, "%00000209"), - Attrs([Attr("address","0x660"), Attr("insn","ldr x0, [x0, #0xff0]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(4080,64)),LittleEndian(),64)), -Def(Tid(526, "%0000020e"), Attrs([Attr("address","0x664"), -Attr("insn","mov x3, #0x0")]), Var("R3",Imm(64)), Int(0,64)), -Def(Tid(531, "%00000213"), Attrs([Attr("address","0x668"), -Attr("insn","mov x4, #0x0")]), Var("R4",Imm(64)), Int(0,64)), -Def(Tid(536, "%00000218"), Attrs([Attr("address","0x66C"), -Attr("insn","bl #-0xac")]), Var("R30",Imm(64)), Int(1648,64))]), -Jmps([Call(Tid(539, "%0000021b"), Attrs([Attr("address","0x66C"), -Attr("insn","bl #-0xac")]), Int(1,1), -(Direct(Tid(1_460, "@__libc_start_main")),Direct(Tid(541, "%0000021d"))))])), -Blk(Tid(541, "%0000021d"), Attrs([Attr("address","0x670")]), Phis([]), -Defs([Def(Tid(544, "%00000220"), Attrs([Attr("address","0x670"), -Attr("insn","bl #-0x80")]), Var("R30",Imm(64)), Int(1652,64))]), -Jmps([Call(Tid(547, "%00000223"), Attrs([Attr("address","0x670"), -Attr("insn","bl #-0x80")]), Int(1,1), -(Direct(Tid(1_466, "@abort")),Direct(Tid(1_498, "%000005da"))))])), -Blk(Tid(1_498, "%000005da"), Attrs([]), Phis([]), Defs([]), -Jmps([Call(Tid(1_499, "%000005db"), Attrs([]), Int(1,1), -(Direct(Tid(1_467, "@call_weak_fn")),))]))])), Sub(Tid(1_466, "@abort"), - Attrs([Attr("noreturn","()"), Attr("c.proto","void (*)(void)"), -Attr("address","0x5F0"), Attr("stub","()")]), "abort", Args([]), -Blks([Blk(Tid(545, "@abort"), Attrs([Attr("address","0x5F0")]), Phis([]), -Defs([Def(Tid(1_143, "%00000477"), Attrs([Attr("address","0x5F0"), -Attr("insn","adrp x16, #65536")]), Var("R16",Imm(64)), Int(65536,64)), -Def(Tid(1_150, "%0000047e"), Attrs([Attr("address","0x5F4"), -Attr("insn","ldr x17, [x16, #0xfc8]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(4040,64)),LittleEndian(),64)), -Def(Tid(1_156, "%00000484"), Attrs([Attr("address","0x5F8"), -Attr("insn","add x16, x16, #0xfc8")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(4040,64)))]), Jmps([Call(Tid(1_161, "%00000489"), - Attrs([Attr("address","0x5FC"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), Sub(Tid(1_467, "@call_weak_fn"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x674")]), - "call_weak_fn", Args([Arg(Tid(1_516, "%000005ec"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("call_weak_fn_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(549, "@call_weak_fn"), - Attrs([Attr("address","0x674")]), Phis([]), Defs([Def(Tid(552, "%00000228"), - Attrs([Attr("address","0x674"), Attr("insn","adrp x0, #65536")]), - Var("R0",Imm(64)), Int(65536,64)), Def(Tid(559, "%0000022f"), - Attrs([Attr("address","0x678"), Attr("insn","ldr x0, [x0, #0xfe8]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(4072,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(565, "%00000235"), Attrs([Attr("address","0x67C"), -Attr("insn","cbz x0, #0x8")]), EQ(Var("R0",Imm(64)),Int(0,64)), -Direct(Tid(563, "%00000233"))), Goto(Tid(1_500, "%000005dc"), Attrs([]), - Int(1,1), Direct(Tid(915, "%00000393")))])), Blk(Tid(563, "%00000233"), - Attrs([Attr("address","0x684")]), Phis([]), Defs([]), -Jmps([Call(Tid(571, "%0000023b"), Attrs([Attr("address","0x684"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))])), -Blk(Tid(915, "%00000393"), Attrs([Attr("address","0x680")]), Phis([]), -Defs([]), Jmps([Goto(Tid(918, "%00000396"), Attrs([Attr("address","0x680"), -Attr("insn","b #-0xa0")]), Int(1,1), Direct(Tid(916, "@__gmon_start__")))])), -Blk(Tid(916, "@__gmon_start__"), Attrs([Attr("address","0x5E0")]), Phis([]), -Defs([Def(Tid(1_121, "%00000461"), Attrs([Attr("address","0x5E0"), -Attr("insn","adrp x16, #65536")]), Var("R16",Imm(64)), Int(65536,64)), -Def(Tid(1_128, "%00000468"), Attrs([Attr("address","0x5E4"), -Attr("insn","ldr x17, [x16, #0xfc0]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(4032,64)),LittleEndian(),64)), -Def(Tid(1_134, "%0000046e"), Attrs([Attr("address","0x5E8"), -Attr("insn","add x16, x16, #0xfc0")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(4032,64)))]), Jmps([Call(Tid(1_139, "%00000473"), - Attrs([Attr("address","0x5EC"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), -Sub(Tid(1_469, "@deregister_tm_clones"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x690")]), - "deregister_tm_clones", Args([Arg(Tid(1_517, "%000005ed"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("deregister_tm_clones_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(577, "@deregister_tm_clones"), - Attrs([Attr("address","0x690")]), Phis([]), Defs([Def(Tid(580, "%00000244"), - Attrs([Attr("address","0x690"), Attr("insn","adrp x0, #69632")]), - Var("R0",Imm(64)), Int(69632,64)), Def(Tid(586, "%0000024a"), - Attrs([Attr("address","0x694"), Attr("insn","add x0, x0, #0x10")]), - Var("R0",Imm(64)), PLUS(Var("R0",Imm(64)),Int(16,64))), -Def(Tid(591, "%0000024f"), Attrs([Attr("address","0x698"), -Attr("insn","adrp x1, #69632")]), Var("R1",Imm(64)), Int(69632,64)), -Def(Tid(597, "%00000255"), Attrs([Attr("address","0x69C"), -Attr("insn","add x1, x1, #0x10")]), Var("R1",Imm(64)), -PLUS(Var("R1",Imm(64)),Int(16,64))), Def(Tid(603, "%0000025b"), - Attrs([Attr("address","0x6A0"), Attr("insn","cmp x1, x0")]), - Var("#1",Imm(64)), NOT(Var("R0",Imm(64)))), Def(Tid(608, "%00000260"), - Attrs([Attr("address","0x6A0"), Attr("insn","cmp x1, x0")]), - Var("#2",Imm(64)), PLUS(Var("R1",Imm(64)),NOT(Var("R0",Imm(64))))), -Def(Tid(614, "%00000266"), Attrs([Attr("address","0x6A0"), -Attr("insn","cmp x1, x0")]), Var("VF",Imm(1)), -NEQ(SIGNED(65,PLUS(Var("#2",Imm(64)),Int(1,64))),PLUS(PLUS(SIGNED(65,Var("R1",Imm(64))),SIGNED(65,Var("#1",Imm(64)))),Int(1,65)))), -Def(Tid(620, "%0000026c"), Attrs([Attr("address","0x6A0"), -Attr("insn","cmp x1, x0")]), Var("CF",Imm(1)), -NEQ(UNSIGNED(65,PLUS(Var("#2",Imm(64)),Int(1,64))),PLUS(PLUS(UNSIGNED(65,Var("R1",Imm(64))),UNSIGNED(65,Var("#1",Imm(64)))),Int(1,65)))), -Def(Tid(624, "%00000270"), Attrs([Attr("address","0x6A0"), -Attr("insn","cmp x1, x0")]), Var("ZF",Imm(1)), -EQ(PLUS(Var("#2",Imm(64)),Int(1,64)),Int(0,64))), Def(Tid(628, "%00000274"), - Attrs([Attr("address","0x6A0"), Attr("insn","cmp x1, x0")]), - Var("NF",Imm(1)), Extract(63,63,PLUS(Var("#2",Imm(64)),Int(1,64))))]), -Jmps([Goto(Tid(634, "%0000027a"), Attrs([Attr("address","0x6A4"), -Attr("insn","b.eq #0x18")]), EQ(Var("ZF",Imm(1)),Int(1,1)), -Direct(Tid(632, "%00000278"))), Goto(Tid(1_501, "%000005dd"), Attrs([]), - Int(1,1), Direct(Tid(885, "%00000375")))])), Blk(Tid(885, "%00000375"), - Attrs([Attr("address","0x6A8")]), Phis([]), Defs([Def(Tid(888, "%00000378"), - Attrs([Attr("address","0x6A8"), Attr("insn","adrp x1, #65536")]), - Var("R1",Imm(64)), Int(65536,64)), Def(Tid(895, "%0000037f"), - Attrs([Attr("address","0x6AC"), Attr("insn","ldr x1, [x1, #0xfd8]")]), - Var("R1",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R1",Imm(64)),Int(4056,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(900, "%00000384"), Attrs([Attr("address","0x6B0"), -Attr("insn","cbz x1, #0xc")]), EQ(Var("R1",Imm(64)),Int(0,64)), -Direct(Tid(632, "%00000278"))), Goto(Tid(1_502, "%000005de"), Attrs([]), - Int(1,1), Direct(Tid(904, "%00000388")))])), Blk(Tid(632, "%00000278"), - Attrs([Attr("address","0x6BC")]), Phis([]), Defs([]), -Jmps([Call(Tid(640, "%00000280"), Attrs([Attr("address","0x6BC"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))])), -Blk(Tid(904, "%00000388"), Attrs([Attr("address","0x6B4")]), Phis([]), -Defs([Def(Tid(908, "%0000038c"), Attrs([Attr("address","0x6B4"), -Attr("insn","mov x16, x1")]), Var("R16",Imm(64)), Var("R1",Imm(64)))]), -Jmps([Call(Tid(913, "%00000391"), Attrs([Attr("address","0x6B8"), -Attr("insn","br x16")]), Int(1,1), (Indirect(Var("R16",Imm(64))),))]))])), -Sub(Tid(1_472, "@frame_dummy"), Attrs([Attr("c.proto","signed (*)(void)"), -Attr("address","0x750")]), "frame_dummy", Args([Arg(Tid(1_518, "%000005ee"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("frame_dummy_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(792, "@frame_dummy"), - Attrs([Attr("address","0x750")]), Phis([]), Defs([]), -Jmps([Call(Tid(794, "%0000031a"), Attrs([Attr("address","0x750"), -Attr("insn","b #-0x90")]), Int(1,1), -(Direct(Tid(1_474, "@register_tm_clones")),))]))])), Sub(Tid(1_473, "@main"), - Attrs([Attr("c.proto","signed (*)(signed argc, const char** argv)"), -Attr("address","0x600"), Attr("stub","()")]), "main", - Args([Arg(Tid(1_519, "%000005ef"), Attrs([Attr("c.layout","[signed : 32]"), -Attr("c.data","Top:u32"), Attr("c.type","signed")]), - Var("main_argc",Imm(32)), LOW(32,Var("R0",Imm(64))), In()), -Arg(Tid(1_520, "%000005f0"), Attrs([Attr("c.layout","**[char : 8]"), -Attr("c.data","Top:u8 ptr ptr"), Attr("c.type"," const char**")]), - Var("main_argv",Imm(64)), Var("R1",Imm(64)), Both()), -Arg(Tid(1_521, "%000005f1"), Attrs([Attr("c.layout","[signed : 32]"), -Attr("c.data","Top:u32"), Attr("c.type","signed")]), - Var("main_result",Imm(32)), LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(424, "@main"), Attrs([Attr("address","0x600")]), Phis([]), -Defs([Def(Tid(427, "%000001ab"), Attrs([Attr("address","0x600"), -Attr("insn","adrp x1, #69632")]), Var("R1",Imm(64)), Int(69632,64)), -Def(Tid(432, "%000001b0"), Attrs([Attr("address","0x604"), -Attr("insn","mov w2, #0x5")]), Var("R2",Imm(64)), Int(5,64)), -Def(Tid(437, "%000001b5"), Attrs([Attr("address","0x608"), -Attr("insn","mov w0, #0x0")]), Var("R0",Imm(64)), Int(0,64)), -Def(Tid(445, "%000001bd"), Attrs([Attr("address","0x60C"), -Attr("insn","str w2, [x1, #0x14]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R1",Imm(64)),Int(20,64)),Extract(31,0,Var("R2",Imm(64))),LittleEndian(),32))]), -Jmps([Call(Tid(450, "%000001c2"), Attrs([Attr("address","0x610"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))]))])), -Sub(Tid(1_474, "@register_tm_clones"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x6C0")]), - "register_tm_clones", Args([Arg(Tid(1_522, "%000005f2"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("register_tm_clones_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(642, "@register_tm_clones"), Attrs([Attr("address","0x6C0")]), - Phis([]), Defs([Def(Tid(645, "%00000285"), Attrs([Attr("address","0x6C0"), -Attr("insn","adrp x0, #69632")]), Var("R0",Imm(64)), Int(69632,64)), -Def(Tid(651, "%0000028b"), Attrs([Attr("address","0x6C4"), -Attr("insn","add x0, x0, #0x10")]), Var("R0",Imm(64)), -PLUS(Var("R0",Imm(64)),Int(16,64))), Def(Tid(656, "%00000290"), - Attrs([Attr("address","0x6C8"), Attr("insn","adrp x1, #69632")]), - Var("R1",Imm(64)), Int(69632,64)), Def(Tid(662, "%00000296"), - Attrs([Attr("address","0x6CC"), Attr("insn","add x1, x1, #0x10")]), - Var("R1",Imm(64)), PLUS(Var("R1",Imm(64)),Int(16,64))), -Def(Tid(669, "%0000029d"), Attrs([Attr("address","0x6D0"), -Attr("insn","sub x1, x1, x0")]), Var("R1",Imm(64)), -PLUS(PLUS(Var("R1",Imm(64)),NOT(Var("R0",Imm(64)))),Int(1,64))), -Def(Tid(675, "%000002a3"), Attrs([Attr("address","0x6D4"), -Attr("insn","lsr x2, x1, #63")]), Var("R2",Imm(64)), -Concat(Int(0,63),Extract(63,63,Var("R1",Imm(64))))), -Def(Tid(682, "%000002aa"), Attrs([Attr("address","0x6D8"), -Attr("insn","add x1, x2, x1, asr #3")]), Var("R1",Imm(64)), -PLUS(Var("R2",Imm(64)),ARSHIFT(Var("R1",Imm(64)),Int(3,3)))), -Def(Tid(688, "%000002b0"), Attrs([Attr("address","0x6DC"), -Attr("insn","asr x1, x1, #1")]), Var("R1",Imm(64)), -SIGNED(64,Extract(63,1,Var("R1",Imm(64)))))]), -Jmps([Goto(Tid(694, "%000002b6"), Attrs([Attr("address","0x6E0"), -Attr("insn","cbz x1, #0x18")]), EQ(Var("R1",Imm(64)),Int(0,64)), -Direct(Tid(692, "%000002b4"))), Goto(Tid(1_503, "%000005df"), Attrs([]), - Int(1,1), Direct(Tid(855, "%00000357")))])), Blk(Tid(855, "%00000357"), - Attrs([Attr("address","0x6E4")]), Phis([]), Defs([Def(Tid(858, "%0000035a"), - Attrs([Attr("address","0x6E4"), Attr("insn","adrp x2, #65536")]), - Var("R2",Imm(64)), Int(65536,64)), Def(Tid(865, "%00000361"), - Attrs([Attr("address","0x6E8"), Attr("insn","ldr x2, [x2, #0xff8]")]), - Var("R2",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R2",Imm(64)),Int(4088,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(870, "%00000366"), Attrs([Attr("address","0x6EC"), -Attr("insn","cbz x2, #0xc")]), EQ(Var("R2",Imm(64)),Int(0,64)), -Direct(Tid(692, "%000002b4"))), Goto(Tid(1_504, "%000005e0"), Attrs([]), - Int(1,1), Direct(Tid(874, "%0000036a")))])), Blk(Tid(692, "%000002b4"), - Attrs([Attr("address","0x6F8")]), Phis([]), Defs([]), -Jmps([Call(Tid(700, "%000002bc"), Attrs([Attr("address","0x6F8"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))])), -Blk(Tid(874, "%0000036a"), Attrs([Attr("address","0x6F0")]), Phis([]), -Defs([Def(Tid(878, "%0000036e"), Attrs([Attr("address","0x6F0"), -Attr("insn","mov x16, x2")]), Var("R16",Imm(64)), Var("R2",Imm(64)))]), -Jmps([Call(Tid(883, "%00000373"), Attrs([Attr("address","0x6F4"), -Attr("insn","br x16")]), Int(1,1), -(Indirect(Var("R16",Imm(64))),))]))]))]))) \ No newline at end of file diff --git a/src/test/correct/basic_assign_assign/gcc_O2/basic_assign_assign.bir b/src/test/correct/basic_assign_assign/gcc_O2/basic_assign_assign.bir deleted file mode 100644 index 413aac9a9..000000000 --- a/src/test/correct/basic_assign_assign/gcc_O2/basic_assign_assign.bir +++ /dev/null @@ -1,227 +0,0 @@ -000005e1: program -000005af: sub __cxa_finalize(__cxa_finalize_result) -000005e2: __cxa_finalize_result :: out u32 = low:32[R0] - -00000353: -0000044b: R16 := 0x10000 -00000452: R17 := mem[R16 + 0xFB8, el]:u64 -00000458: R16 := R16 + 0xFB8 -0000045d: call R17 with noreturn - -000005b0: sub __do_global_dtors_aux(__do_global_dtors_aux_result) -000005e3: __do_global_dtors_aux_result :: out u32 = low:32[R0] - -000002c0: -000002c4: #3 := R31 - 0x20 -000002ca: mem := mem with [#3, el]:u64 <- R29 -000002d0: mem := mem with [#3 + 8, el]:u64 <- R30 -000002d4: R31 := #3 -000002da: R29 := R31 -000002e2: mem := mem with [R31 + 0x10, el]:u64 <- R19 -000002e7: R19 := 0x11000 -000002ee: R0 := pad:64[mem[R19 + 0x10]] -000002f5: when 31:0[R0] <> 0 goto %000002f3 -000005d7: goto %0000031c - -0000031c: -0000031f: R0 := 0x10000 -00000326: R0 := mem[R0 + 0xFE0, el]:u64 -0000032c: when R0 = 0 goto %0000032a -000005d8: goto %00000343 - -00000343: -00000346: R0 := 0x11000 -0000034d: R0 := mem[R0 + 8, el]:u64 -00000352: R30 := 0x730 -00000355: call @__cxa_finalize with return %0000032a - -0000032a: -00000332: R30 := 0x734 -00000334: call @deregister_tm_clones with return %00000336 - -00000336: -00000339: R0 := 1 -00000341: mem := mem with [R19 + 0x10] <- 7:0[R0] -000005d9: goto %000002f3 - -000002f3: -000002fd: R19 := mem[R31 + 0x10, el]:u64 -00000304: R29 := mem[R31, el]:u64 -00000309: R30 := mem[R31 + 8, el]:u64 -0000030d: R31 := R31 + 0x20 -00000312: call R30 with noreturn - -000005b4: sub __libc_start_main(__libc_start_main_main, __libc_start_main_arg2, __libc_start_main_arg3, __libc_start_main_auxv, __libc_start_main_result) -000005e4: __libc_start_main_main :: in u64 = R0 -000005e5: __libc_start_main_arg2 :: in u32 = low:32[R1] -000005e6: __libc_start_main_arg3 :: in out u64 = R2 -000005e7: __libc_start_main_auxv :: in out u64 = R3 -000005e8: __libc_start_main_result :: out u32 = low:32[R0] - -00000219: -00000435: R16 := 0x10000 -0000043c: R17 := mem[R16 + 0xFB0, el]:u64 -00000442: R16 := R16 + 0xFB0 -00000447: call R17 with noreturn - -000005b5: sub _fini(_fini_result) -000005e9: _fini_result :: out u32 = low:32[R0] - -0000001f: -00000025: #0 := R31 - 0x10 -0000002b: mem := mem with [#0, el]:u64 <- R29 -00000031: mem := mem with [#0 + 8, el]:u64 <- R30 -00000035: R31 := #0 -0000003b: R29 := R31 -00000042: R29 := mem[R31, el]:u64 -00000047: R30 := mem[R31 + 8, el]:u64 -0000004b: R31 := R31 + 0x10 -00000050: call R30 with noreturn - -000005b6: sub _init(_init_result) -000005ea: _init_result :: out u32 = low:32[R0] - -00000501: -00000507: #5 := R31 - 0x10 -0000050d: mem := mem with [#5, el]:u64 <- R29 -00000513: mem := mem with [#5 + 8, el]:u64 <- R30 -00000517: R31 := #5 -0000051d: R29 := R31 -00000522: R30 := 0x590 -00000524: call @call_weak_fn with return %00000526 - -00000526: -0000052b: R29 := mem[R31, el]:u64 -00000530: R30 := mem[R31 + 8, el]:u64 -00000534: R31 := R31 + 0x10 -00000539: call R30 with noreturn - -000005b7: sub _start(_start_result) -000005eb: _start_result :: out u32 = low:32[R0] - -000001da: -000001df: R29 := 0 -000001e4: R30 := 0 -000001ea: R5 := R0 -000001f1: R1 := mem[R31, el]:u64 -000001f7: R2 := R31 + 8 -000001fd: R6 := R31 -00000202: R0 := 0x10000 -00000209: R0 := mem[R0 + 0xFF0, el]:u64 -0000020e: R3 := 0 -00000213: R4 := 0 -00000218: R30 := 0x670 -0000021b: call @__libc_start_main with return %0000021d - -0000021d: -00000220: R30 := 0x674 -00000223: call @abort with return %000005da - -000005da: -000005db: call @call_weak_fn with noreturn - -000005ba: sub abort() - - -00000221: -00000477: R16 := 0x10000 -0000047e: R17 := mem[R16 + 0xFC8, el]:u64 -00000484: R16 := R16 + 0xFC8 -00000489: call R17 with noreturn - -000005bb: sub call_weak_fn(call_weak_fn_result) -000005ec: call_weak_fn_result :: out u32 = low:32[R0] - -00000225: -00000228: R0 := 0x10000 -0000022f: R0 := mem[R0 + 0xFE8, el]:u64 -00000235: when R0 = 0 goto %00000233 -000005dc: goto %00000393 - -00000233: -0000023b: call R30 with noreturn - -00000393: -00000396: goto @__gmon_start__ - -00000394: -00000461: R16 := 0x10000 -00000468: R17 := mem[R16 + 0xFC0, el]:u64 -0000046e: R16 := R16 + 0xFC0 -00000473: call R17 with noreturn - -000005bd: sub deregister_tm_clones(deregister_tm_clones_result) -000005ed: deregister_tm_clones_result :: out u32 = low:32[R0] - -00000241: -00000244: R0 := 0x11000 -0000024a: R0 := R0 + 0x10 -0000024f: R1 := 0x11000 -00000255: R1 := R1 + 0x10 -0000025b: #1 := ~R0 -00000260: #2 := R1 + ~R0 -00000266: VF := extend:65[#2 + 1] <> extend:65[R1] + extend:65[#1] + 1 -0000026c: CF := pad:65[#2 + 1] <> pad:65[R1] + pad:65[#1] + 1 -00000270: ZF := #2 + 1 = 0 -00000274: NF := 63:63[#2 + 1] -0000027a: when ZF goto %00000278 -000005dd: goto %00000375 - -00000375: -00000378: R1 := 0x10000 -0000037f: R1 := mem[R1 + 0xFD8, el]:u64 -00000384: when R1 = 0 goto %00000278 -000005de: goto %00000388 - -00000278: -00000280: call R30 with noreturn - -00000388: -0000038c: R16 := R1 -00000391: call R16 with noreturn - -000005c0: sub frame_dummy(frame_dummy_result) -000005ee: frame_dummy_result :: out u32 = low:32[R0] - -00000318: -0000031a: call @register_tm_clones with noreturn - -000005c1: sub main(main_argc, main_argv, main_result) -000005ef: main_argc :: in u32 = low:32[R0] -000005f0: main_argv :: in out u64 = R1 -000005f1: main_result :: out u32 = low:32[R0] - -000001a8: -000001ab: R1 := 0x11000 -000001b0: R2 := 5 -000001b5: R0 := 0 -000001bd: mem := mem with [R1 + 0x14, el]:u32 <- 31:0[R2] -000001c2: call R30 with noreturn - -000005c2: sub register_tm_clones(register_tm_clones_result) -000005f2: register_tm_clones_result :: out u32 = low:32[R0] - -00000282: -00000285: R0 := 0x11000 -0000028b: R0 := R0 + 0x10 -00000290: R1 := 0x11000 -00000296: R1 := R1 + 0x10 -0000029d: R1 := R1 + ~R0 + 1 -000002a3: R2 := 0.63:63[R1] -000002aa: R1 := R2 + (R1 ~>> 3) -000002b0: R1 := extend:64[63:1[R1]] -000002b6: when R1 = 0 goto %000002b4 -000005df: goto %00000357 - -00000357: -0000035a: R2 := 0x10000 -00000361: R2 := mem[R2 + 0xFF8, el]:u64 -00000366: when R2 = 0 goto %000002b4 -000005e0: goto %0000036a - -000002b4: -000002bc: call R30 with noreturn - -0000036a: -0000036e: R16 := R2 -00000373: call R16 with noreturn diff --git a/src/test/correct/basic_assign_assign/gcc_O2/basic_assign_assign.expected b/src/test/correct/basic_assign_assign/gcc_O2/basic_assign_assign.expected index e9be7bd6f..962054198 100644 --- a/src/test/correct/basic_assign_assign/gcc_O2/basic_assign_assign.expected +++ b/src/test/correct/basic_assign_assign/gcc_O2/basic_assign_assign.expected @@ -64,7 +64,7 @@ implementation {:extern} guarantee_reflexive() assert ((memory_load32_le(mem, $x_addr) == memory_load32_le(mem, $x_addr)) || (memory_load32_le(mem, $x_addr) == 5bv32)); } -procedure main_1536(); +procedure main(); modifies Gamma_R0, Gamma_R1, Gamma_R2, Gamma_mem, R0, R1, R2, mem; requires (memory_load32_le(mem, $x_addr) == 0bv32); free requires (memory_load64_le(mem, 69632bv64) == 0bv64); @@ -81,7 +81,7 @@ procedure main_1536(); free ensures (memory_load64_le(mem, 69616bv64) == 1536bv64); free ensures (memory_load64_le(mem, 69640bv64) == 69640bv64); -implementation main_1536() +implementation main() { var x_old: bv32; lmain: @@ -90,14 +90,14 @@ implementation main_1536() R2, Gamma_R2 := 5bv64, true; R0, Gamma_R0 := 0bv64, true; call rely(); - x_old := memory_load32_le(mem, $x_addr); assert (L(mem, bvadd64(R1, 20bv64)) ==> Gamma_R2); + x_old := memory_load32_le(mem, $x_addr); mem, Gamma_mem := memory_store32_le(mem, bvadd64(R1, 20bv64), R2[32:0]), gamma_store32(Gamma_mem, bvadd64(R1, 20bv64), Gamma_R2); assert ((memory_load32_le(mem, $x_addr) == x_old) || (memory_load32_le(mem, $x_addr) == 5bv32)); assume {:captureState "%000001bd"} true; - goto main_1536_basil_return; - main_1536_basil_return: - assume {:captureState "main_1536_basil_return"} true; + goto main_basil_return; + main_basil_return: + assume {:captureState "main_basil_return"} true; return; } diff --git a/src/test/correct/basic_assign_assign/gcc_O2/basic_assign_assign.gts b/src/test/correct/basic_assign_assign/gcc_O2/basic_assign_assign.gts deleted file mode 100644 index ce3dc5eac..000000000 Binary files a/src/test/correct/basic_assign_assign/gcc_O2/basic_assign_assign.gts and /dev/null differ diff --git a/src/test/correct/basic_assign_assign/gcc_O2/basic_assign_assign.md5sum b/src/test/correct/basic_assign_assign/gcc_O2/basic_assign_assign.md5sum new file mode 100644 index 000000000..09b754c1f --- /dev/null +++ b/src/test/correct/basic_assign_assign/gcc_O2/basic_assign_assign.md5sum @@ -0,0 +1,5 @@ +d9aaa09b9a57f2d472c7d927ca08bdb6 correct/basic_assign_assign/gcc_O2/a.out +f4dfc7c5d1ea7ac276528d072905102b correct/basic_assign_assign/gcc_O2/basic_assign_assign.adt +760aefd7dd022ff0e224a215f42ec341 correct/basic_assign_assign/gcc_O2/basic_assign_assign.bir +505d4900d5cd56dba8350c745faba1b2 correct/basic_assign_assign/gcc_O2/basic_assign_assign.relf +338d03959bb10fc3823f85430d6fa74d correct/basic_assign_assign/gcc_O2/basic_assign_assign.gts diff --git a/src/test/correct/basic_assign_assign/gcc_O2/basic_assign_assign.relf b/src/test/correct/basic_assign_assign/gcc_O2/basic_assign_assign.relf deleted file mode 100644 index c1b2dd073..000000000 --- a/src/test/correct/basic_assign_assign/gcc_O2/basic_assign_assign.relf +++ /dev/null @@ -1,121 +0,0 @@ - -Relocation section '.rela.dyn' at offset 0x460 contains 8 entries: - Offset Info Type Symbol's Value Symbol's Name + Addend -0000000000010d98 0000000000000403 R_AARCH64_RELATIVE 750 -0000000000010da0 0000000000000403 R_AARCH64_RELATIVE 700 -0000000000010ff0 0000000000000403 R_AARCH64_RELATIVE 600 -0000000000011008 0000000000000403 R_AARCH64_RELATIVE 11008 -0000000000010fd8 0000000400000401 R_AARCH64_GLOB_DAT 0000000000000000 _ITM_deregisterTMCloneTable + 0 -0000000000010fe0 0000000500000401 R_AARCH64_GLOB_DAT 0000000000000000 __cxa_finalize@GLIBC_2.17 + 0 -0000000000010fe8 0000000600000401 R_AARCH64_GLOB_DAT 0000000000000000 __gmon_start__ + 0 -0000000000010ff8 0000000800000401 R_AARCH64_GLOB_DAT 0000000000000000 _ITM_registerTMCloneTable + 0 - -Relocation section '.rela.plt' at offset 0x520 contains 4 entries: - Offset Info Type Symbol's Value Symbol's Name + Addend -0000000000010fb0 0000000300000402 R_AARCH64_JUMP_SLOT 0000000000000000 __libc_start_main@GLIBC_2.34 + 0 -0000000000010fb8 0000000500000402 R_AARCH64_JUMP_SLOT 0000000000000000 __cxa_finalize@GLIBC_2.17 + 0 -0000000000010fc0 0000000600000402 R_AARCH64_JUMP_SLOT 0000000000000000 __gmon_start__ + 0 -0000000000010fc8 0000000700000402 R_AARCH64_JUMP_SLOT 0000000000000000 abort@GLIBC_2.17 + 0 - -Symbol table '.dynsym' contains 9 entries: - Num: Value Size Type Bind Vis Ndx Name - 0: 0000000000000000 0 NOTYPE LOCAL DEFAULT UND - 1: 0000000000000580 0 SECTION LOCAL DEFAULT 11 .init - 2: 0000000000011000 0 SECTION LOCAL DEFAULT 22 .data - 3: 0000000000000000 0 FUNC GLOBAL DEFAULT UND __libc_start_main@GLIBC_2.34 (2) - 4: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_deregisterTMCloneTable - 5: 0000000000000000 0 FUNC WEAK DEFAULT UND __cxa_finalize@GLIBC_2.17 (3) - 6: 0000000000000000 0 NOTYPE WEAK DEFAULT UND __gmon_start__ - 7: 0000000000000000 0 FUNC GLOBAL DEFAULT UND abort@GLIBC_2.17 (3) - 8: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_registerTMCloneTable - -Symbol table '.symtab' contains 88 entries: - Num: Value Size Type Bind Vis Ndx Name - 0: 0000000000000000 0 NOTYPE LOCAL DEFAULT UND - 1: 0000000000000238 0 SECTION LOCAL DEFAULT 1 .interp - 2: 0000000000000254 0 SECTION LOCAL DEFAULT 2 .note.gnu.build-id - 3: 0000000000000278 0 SECTION LOCAL DEFAULT 3 .note.ABI-tag - 4: 0000000000000298 0 SECTION LOCAL DEFAULT 4 .gnu.hash - 5: 00000000000002b8 0 SECTION LOCAL DEFAULT 5 .dynsym - 6: 0000000000000390 0 SECTION LOCAL DEFAULT 6 .dynstr - 7: 000000000000041e 0 SECTION LOCAL DEFAULT 7 .gnu.version - 8: 0000000000000430 0 SECTION LOCAL DEFAULT 8 .gnu.version_r - 9: 0000000000000460 0 SECTION LOCAL DEFAULT 9 .rela.dyn - 10: 0000000000000520 0 SECTION LOCAL DEFAULT 10 .rela.plt - 11: 0000000000000580 0 SECTION LOCAL DEFAULT 11 .init - 12: 00000000000005a0 0 SECTION LOCAL DEFAULT 12 .plt - 13: 0000000000000600 0 SECTION LOCAL DEFAULT 13 .text - 14: 0000000000000754 0 SECTION LOCAL DEFAULT 14 .fini - 15: 0000000000000768 0 SECTION LOCAL DEFAULT 15 .rodata - 16: 000000000000076c 0 SECTION LOCAL DEFAULT 16 .eh_frame_hdr - 17: 00000000000007a8 0 SECTION LOCAL DEFAULT 17 .eh_frame - 18: 0000000000010d98 0 SECTION LOCAL DEFAULT 18 .init_array - 19: 0000000000010da0 0 SECTION LOCAL DEFAULT 19 .fini_array - 20: 0000000000010da8 0 SECTION LOCAL DEFAULT 20 .dynamic - 21: 0000000000010f98 0 SECTION LOCAL DEFAULT 21 .got - 22: 0000000000011000 0 SECTION LOCAL DEFAULT 22 .data - 23: 0000000000011010 0 SECTION LOCAL DEFAULT 23 .bss - 24: 0000000000000000 0 SECTION LOCAL DEFAULT 24 .comment - 25: 0000000000000000 0 FILE LOCAL DEFAULT ABS Scrt1.o - 26: 0000000000000278 0 NOTYPE LOCAL DEFAULT 3 $d - 27: 0000000000000278 32 OBJECT LOCAL DEFAULT 3 __abi_tag - 28: 0000000000000640 0 NOTYPE LOCAL DEFAULT 13 $x - 29: 00000000000007bc 0 NOTYPE LOCAL DEFAULT 17 $d - 30: 0000000000000768 0 NOTYPE LOCAL DEFAULT 15 $d - 31: 0000000000000000 0 FILE LOCAL DEFAULT ABS crti.o - 32: 0000000000000674 0 NOTYPE LOCAL DEFAULT 13 $x - 33: 0000000000000674 20 FUNC LOCAL DEFAULT 13 call_weak_fn - 34: 0000000000000580 0 NOTYPE LOCAL DEFAULT 11 $x - 35: 0000000000000754 0 NOTYPE LOCAL DEFAULT 14 $x - 36: 0000000000000000 0 FILE LOCAL DEFAULT ABS crtn.o - 37: 0000000000000590 0 NOTYPE LOCAL DEFAULT 11 $x - 38: 0000000000000760 0 NOTYPE LOCAL DEFAULT 14 $x - 39: 0000000000000000 0 FILE LOCAL DEFAULT ABS basic_assign_assign.c - 40: 0000000000000600 0 NOTYPE LOCAL DEFAULT 13 $x - 41: 0000000000011014 0 NOTYPE LOCAL DEFAULT 23 $d - 42: 0000000000000830 0 NOTYPE LOCAL DEFAULT 17 $d - 43: 0000000000000000 0 FILE LOCAL DEFAULT ABS crtstuff.c - 44: 0000000000000690 0 NOTYPE LOCAL DEFAULT 13 $x - 45: 0000000000000690 0 FUNC LOCAL DEFAULT 13 deregister_tm_clones - 46: 00000000000006c0 0 FUNC LOCAL DEFAULT 13 register_tm_clones - 47: 0000000000011008 0 NOTYPE LOCAL DEFAULT 22 $d - 48: 0000000000000700 0 FUNC LOCAL DEFAULT 13 __do_global_dtors_aux - 49: 0000000000011010 1 OBJECT LOCAL DEFAULT 23 completed.0 - 50: 0000000000010da0 0 NOTYPE LOCAL DEFAULT 19 $d - 51: 0000000000010da0 0 OBJECT LOCAL DEFAULT 19 __do_global_dtors_aux_fini_array_entry - 52: 0000000000000750 0 FUNC LOCAL DEFAULT 13 frame_dummy - 53: 0000000000010d98 0 NOTYPE LOCAL DEFAULT 18 $d - 54: 0000000000010d98 0 OBJECT LOCAL DEFAULT 18 __frame_dummy_init_array_entry - 55: 00000000000007d0 0 NOTYPE LOCAL DEFAULT 17 $d - 56: 0000000000011010 0 NOTYPE LOCAL DEFAULT 23 $d - 57: 0000000000000000 0 FILE LOCAL DEFAULT ABS crtstuff.c - 58: 0000000000000844 0 NOTYPE LOCAL DEFAULT 17 $d - 59: 0000000000000844 0 OBJECT LOCAL DEFAULT 17 __FRAME_END__ - 60: 0000000000000000 0 FILE LOCAL DEFAULT ABS - 61: 0000000000010da8 0 OBJECT LOCAL DEFAULT ABS _DYNAMIC - 62: 000000000000076c 0 NOTYPE LOCAL DEFAULT 16 __GNU_EH_FRAME_HDR - 63: 0000000000010fd0 0 OBJECT LOCAL DEFAULT ABS _GLOBAL_OFFSET_TABLE_ - 64: 00000000000005a0 0 NOTYPE LOCAL DEFAULT 12 $x - 65: 0000000000000000 0 FUNC GLOBAL DEFAULT UND __libc_start_main@GLIBC_2.34 - 66: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_deregisterTMCloneTable - 67: 0000000000011000 0 NOTYPE WEAK DEFAULT 22 data_start - 68: 0000000000011010 0 NOTYPE GLOBAL DEFAULT 23 __bss_start__ - 69: 0000000000000000 0 FUNC WEAK DEFAULT UND __cxa_finalize@GLIBC_2.17 - 70: 0000000000011018 0 NOTYPE GLOBAL DEFAULT 23 _bss_end__ - 71: 0000000000011010 0 NOTYPE GLOBAL DEFAULT 22 _edata - 72: 0000000000011014 4 OBJECT GLOBAL DEFAULT 23 x - 73: 0000000000000754 0 FUNC GLOBAL HIDDEN 14 _fini - 74: 0000000000011018 0 NOTYPE GLOBAL DEFAULT 23 __bss_end__ - 75: 0000000000011000 0 NOTYPE GLOBAL DEFAULT 22 __data_start - 76: 0000000000000000 0 NOTYPE WEAK DEFAULT UND __gmon_start__ - 77: 0000000000011008 0 OBJECT GLOBAL HIDDEN 22 __dso_handle - 78: 0000000000000000 0 FUNC GLOBAL DEFAULT UND abort@GLIBC_2.17 - 79: 0000000000000768 4 OBJECT GLOBAL DEFAULT 15 _IO_stdin_used - 80: 0000000000011018 0 NOTYPE GLOBAL DEFAULT 23 _end - 81: 0000000000000640 52 FUNC GLOBAL DEFAULT 13 _start - 82: 0000000000011018 0 NOTYPE GLOBAL DEFAULT 23 __end__ - 83: 0000000000011010 0 NOTYPE GLOBAL DEFAULT 23 __bss_start - 84: 0000000000000600 20 FUNC GLOBAL DEFAULT 13 main - 85: 0000000000011010 0 OBJECT GLOBAL HIDDEN 22 __TMC_END__ - 86: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_registerTMCloneTable - 87: 0000000000000580 0 FUNC GLOBAL HIDDEN 11 _init diff --git a/src/test/correct/basic_assign_assign/gcc_O2/basic_assign_assign_gtirb.expected b/src/test/correct/basic_assign_assign/gcc_O2/basic_assign_assign_gtirb.expected index 9f09a2425..b581f7d08 100644 --- a/src/test/correct/basic_assign_assign/gcc_O2/basic_assign_assign_gtirb.expected +++ b/src/test/correct/basic_assign_assign/gcc_O2/basic_assign_assign_gtirb.expected @@ -64,7 +64,7 @@ implementation {:extern} guarantee_reflexive() assert ((memory_load32_le(mem, $x_addr) == memory_load32_le(mem, $x_addr)) || (memory_load32_le(mem, $x_addr) == 5bv32)); } -procedure main_1536(); +procedure main(); modifies Gamma_R0, Gamma_R1, Gamma_R2, Gamma_mem, R0, R1, R2, mem; requires (memory_load32_le(mem, $x_addr) == 0bv32); free requires (memory_load64_le(mem, 69632bv64) == 0bv64); @@ -81,23 +81,23 @@ procedure main_1536(); free ensures (memory_load64_le(mem, 69616bv64) == 1536bv64); free ensures (memory_load64_le(mem, 69640bv64) == 69640bv64); -implementation main_1536() +implementation main() { var x_old: bv32; - main_1536__0__0n7MZQ5WQm2ayeQrMFoqXw: - assume {:captureState "main_1536__0__0n7MZQ5WQm2ayeQrMFoqXw"} true; + $main$__0__$0n7MZQ5WQm2ayeQrMFoqXw: + assume {:captureState "$main$__0__$0n7MZQ5WQm2ayeQrMFoqXw"} true; R1, Gamma_R1 := 69632bv64, true; R2, Gamma_R2 := 5bv64, true; R0, Gamma_R0 := 0bv64, true; call rely(); - x_old := memory_load32_le(mem, $x_addr); assert (L(mem, bvadd64(R1, 20bv64)) ==> Gamma_R2); + x_old := memory_load32_le(mem, $x_addr); mem, Gamma_mem := memory_store32_le(mem, bvadd64(R1, 20bv64), R2[32:0]), gamma_store32(Gamma_mem, bvadd64(R1, 20bv64), Gamma_R2); assert ((memory_load32_le(mem, $x_addr) == x_old) || (memory_load32_le(mem, $x_addr) == 5bv32)); - assume {:captureState "1548_0"} true; - goto main_1536_basil_return; - main_1536_basil_return: - assume {:captureState "main_1536_basil_return"} true; + assume {:captureState "1548$0"} true; + goto main_basil_return; + main_basil_return: + assume {:captureState "main_basil_return"} true; return; } diff --git a/src/test/correct/basic_assign_assign/gcc_pic/basic_assign_assign.adt b/src/test/correct/basic_assign_assign/gcc_pic/basic_assign_assign.adt deleted file mode 100644 index 3eeb1578c..000000000 --- a/src/test/correct/basic_assign_assign/gcc_pic/basic_assign_assign.adt +++ /dev/null @@ -1,495 +0,0 @@ -Project(Attrs([Attr("filename","\"gcc_pic/basic_assign_assign.out\""), -Attr("image-specification","(declare abi (name str))\n(declare arch (name str))\n(declare base-address (addr int))\n(declare bias (off int))\n(declare bits (size int))\n(declare code-region (addr int) (size int) (off int))\n(declare code-start (addr int))\n(declare entry-point (addr int))\n(declare external-reference (addr int) (name str))\n(declare format (name str))\n(declare is-executable (flag bool))\n(declare is-little-endian (flag bool))\n(declare llvm:base-address (addr int))\n(declare llvm:code-entry (name str) (off int) (size int))\n(declare llvm:coff-import-library (name str))\n(declare llvm:coff-virtual-section-header (name str) (addr int) (size int))\n(declare llvm:elf-program-header (name str) (off int) (size int))\n(declare llvm:elf-program-header-flags (name str) (ld bool) (r bool) \n (w bool) (x bool))\n(declare llvm:elf-virtual-program-header (name str) (addr int) (size int))\n(declare llvm:entry-point (addr int))\n(declare llvm:macho-symbol (name str) (value int))\n(declare llvm:name-reference (at int) (name str))\n(declare llvm:relocation (at int) (addr int))\n(declare llvm:section-entry (name str) (addr int) (size int) (off int))\n(declare llvm:section-flags (name str) (r bool) (w bool) (x bool))\n(declare llvm:segment-command (name str) (off int) (size int))\n(declare llvm:segment-command-flags (name str) (r bool) (w bool) (x bool))\n(declare llvm:symbol-entry (name str) (addr int) (size int) (off int)\n (value int))\n(declare llvm:virtual-segment-command (name str) (addr int) (size int))\n(declare mapped (addr int) (size int) (off int))\n(declare named-region (addr int) (size int) (name str))\n(declare named-symbol (addr int) (name str))\n(declare require (name str))\n(declare section (addr int) (size int))\n(declare segment (addr int) (size int) (r bool) (w bool) (x bool))\n(declare subarch (name str))\n(declare symbol-chunk (addr int) (size int) (root int))\n(declare symbol-value (addr int) (value int))\n(declare system (name str))\n(declare vendor (name str))\n\n(abi unknown)\n(arch aarch64)\n(base-address 0)\n(bias 0)\n(bits 64)\n(code-region 1900 20 1900)\n(code-region 1600 300 1600)\n(code-region 1456 96 1456)\n(code-region 1432 24 1432)\n(code-start 1652)\n(code-start 1600)\n(code-start 1876)\n(entry-point 1600)\n(external-reference 69584 _ITM_deregisterTMCloneTable)\n(external-reference 69592 __cxa_finalize)\n(external-reference 69608 __gmon_start__)\n(external-reference 69624 _ITM_registerTMCloneTable)\n(external-reference 69544 __libc_start_main)\n(external-reference 69552 __cxa_finalize)\n(external-reference 69560 __gmon_start__)\n(external-reference 69568 abort)\n(format elf)\n(is-executable true)\n(is-little-endian true)\n(llvm:base-address 0)\n(llvm:code-entry abort 0 0)\n(llvm:code-entry __cxa_finalize 0 0)\n(llvm:code-entry __libc_start_main 0 0)\n(llvm:code-entry _init 1432 0)\n(llvm:code-entry main 1876 24)\n(llvm:code-entry _start 1600 52)\n(llvm:code-entry abort@GLIBC_2.17 0 0)\n(llvm:code-entry _fini 1900 0)\n(llvm:code-entry __cxa_finalize@GLIBC_2.17 0 0)\n(llvm:code-entry __libc_start_main@GLIBC_2.34 0 0)\n(llvm:code-entry frame_dummy 1872 0)\n(llvm:code-entry __do_global_dtors_aux 1792 0)\n(llvm:code-entry register_tm_clones 1728 0)\n(llvm:code-entry deregister_tm_clones 1680 0)\n(llvm:code-entry call_weak_fn 1652 20)\n(llvm:code-entry .fini 1900 20)\n(llvm:code-entry .text 1600 300)\n(llvm:code-entry .plt 1456 96)\n(llvm:code-entry .init 1432 24)\n(llvm:elf-program-header 08 3472 624)\n(llvm:elf-program-header 07 0 0)\n(llvm:elf-program-header 06 1924 60)\n(llvm:elf-program-header 05 596 68)\n(llvm:elf-program-header 04 3488 496)\n(llvm:elf-program-header 03 3472 640)\n(llvm:elf-program-header 02 0 2144)\n(llvm:elf-program-header 01 568 27)\n(llvm:elf-program-header 00 64 504)\n(llvm:elf-program-header-flags 08 false true false false)\n(llvm:elf-program-header-flags 07 false true true false)\n(llvm:elf-program-header-flags 06 false true false false)\n(llvm:elf-program-header-flags 05 false true false false)\n(llvm:elf-program-header-flags 04 false true true false)\n(llvm:elf-program-header-flags 03 true true true false)\n(llvm:elf-program-header-flags 02 true true false true)\n(llvm:elf-program-header-flags 01 false true false false)\n(llvm:elf-program-header-flags 00 false true false false)\n(llvm:elf-virtual-program-header 08 69008 624)\n(llvm:elf-virtual-program-header 07 0 0)\n(llvm:elf-virtual-program-header 06 1924 60)\n(llvm:elf-virtual-program-header 05 596 68)\n(llvm:elf-virtual-program-header 04 69024 496)\n(llvm:elf-virtual-program-header 03 69008 648)\n(llvm:elf-virtual-program-header 02 0 2144)\n(llvm:elf-virtual-program-header 01 568 27)\n(llvm:elf-virtual-program-header 00 64 504)\n(llvm:entry-point 1600)\n(llvm:name-reference 69568 abort)\n(llvm:name-reference 69560 __gmon_start__)\n(llvm:name-reference 69552 __cxa_finalize)\n(llvm:name-reference 69544 __libc_start_main)\n(llvm:name-reference 69624 _ITM_registerTMCloneTable)\n(llvm:name-reference 69608 __gmon_start__)\n(llvm:name-reference 69592 __cxa_finalize)\n(llvm:name-reference 69584 _ITM_deregisterTMCloneTable)\n(llvm:section-entry .shstrtab 0 250 6827)\n(llvm:section-entry .strtab 0 555 6272)\n(llvm:section-entry .symtab 0 2112 4160)\n(llvm:section-entry .comment 0 43 4112)\n(llvm:section-entry .bss 69648 8 4112)\n(llvm:section-entry .data 69632 16 4096)\n(llvm:section-entry .got 69520 112 3984)\n(llvm:section-entry .dynamic 69024 496 3488)\n(llvm:section-entry .fini_array 69016 8 3480)\n(llvm:section-entry .init_array 69008 8 3472)\n(llvm:section-entry .eh_frame 1984 160 1984)\n(llvm:section-entry .eh_frame_hdr 1924 60 1924)\n(llvm:section-entry .rodata 1920 4 1920)\n(llvm:section-entry .fini 1900 20 1900)\n(llvm:section-entry .text 1600 300 1600)\n(llvm:section-entry .plt 1456 96 1456)\n(llvm:section-entry .init 1432 24 1432)\n(llvm:section-entry .rela.plt 1336 96 1336)\n(llvm:section-entry .rela.dyn 1120 216 1120)\n(llvm:section-entry .gnu.version_r 1072 48 1072)\n(llvm:section-entry .gnu.version 1054 18 1054)\n(llvm:section-entry .dynstr 912 141 912)\n(llvm:section-entry .dynsym 696 216 696)\n(llvm:section-entry .gnu.hash 664 28 664)\n(llvm:section-entry .note.ABI-tag 632 32 632)\n(llvm:section-entry .note.gnu.build-id 596 36 596)\n(llvm:section-entry .interp 568 27 568)\n(llvm:section-flags .shstrtab true false false)\n(llvm:section-flags .strtab true false false)\n(llvm:section-flags .symtab true false false)\n(llvm:section-flags .comment true false false)\n(llvm:section-flags .bss true true false)\n(llvm:section-flags .data true true false)\n(llvm:section-flags .got true true false)\n(llvm:section-flags .dynamic true true false)\n(llvm:section-flags .fini_array true true false)\n(llvm:section-flags .init_array true true false)\n(llvm:section-flags .eh_frame true false false)\n(llvm:section-flags .eh_frame_hdr true false false)\n(llvm:section-flags .rodata true false false)\n(llvm:section-flags .fini true false true)\n(llvm:section-flags .text true false true)\n(llvm:section-flags .plt true false true)\n(llvm:section-flags .init true false true)\n(llvm:section-flags .rela.plt true false false)\n(llvm:section-flags .rela.dyn true false false)\n(llvm:section-flags .gnu.version_r true false false)\n(llvm:section-flags .gnu.version true false false)\n(llvm:section-flags .dynstr true false false)\n(llvm:section-flags .dynsym true false false)\n(llvm:section-flags .gnu.hash true false false)\n(llvm:section-flags .note.ABI-tag true false false)\n(llvm:section-flags .note.gnu.build-id true false false)\n(llvm:section-flags .interp true false false)\n(llvm:symbol-entry abort 0 0 0 0)\n(llvm:symbol-entry __cxa_finalize 0 0 0 0)\n(llvm:symbol-entry __libc_start_main 0 0 0 0)\n(llvm:symbol-entry _init 1432 0 1432 1432)\n(llvm:symbol-entry main 1876 24 1876 1876)\n(llvm:symbol-entry _start 1600 52 1600 1600)\n(llvm:symbol-entry abort@GLIBC_2.17 0 0 0 0)\n(llvm:symbol-entry _fini 1900 0 1900 1900)\n(llvm:symbol-entry __cxa_finalize@GLIBC_2.17 0 0 0 0)\n(llvm:symbol-entry __libc_start_main@GLIBC_2.34 0 0 0 0)\n(llvm:symbol-entry frame_dummy 1872 0 1872 1872)\n(llvm:symbol-entry __do_global_dtors_aux 1792 0 1792 1792)\n(llvm:symbol-entry register_tm_clones 1728 0 1728 1728)\n(llvm:symbol-entry deregister_tm_clones 1680 0 1680 1680)\n(llvm:symbol-entry call_weak_fn 1652 20 1652 1652)\n(mapped 0 2144 0)\n(mapped 69008 640 3472)\n(named-region 0 2144 02)\n(named-region 69008 648 03)\n(named-region 568 27 .interp)\n(named-region 596 36 .note.gnu.build-id)\n(named-region 632 32 .note.ABI-tag)\n(named-region 664 28 .gnu.hash)\n(named-region 696 216 .dynsym)\n(named-region 912 141 .dynstr)\n(named-region 1054 18 .gnu.version)\n(named-region 1072 48 .gnu.version_r)\n(named-region 1120 216 .rela.dyn)\n(named-region 1336 96 .rela.plt)\n(named-region 1432 24 .init)\n(named-region 1456 96 .plt)\n(named-region 1600 300 .text)\n(named-region 1900 20 .fini)\n(named-region 1920 4 .rodata)\n(named-region 1924 60 .eh_frame_hdr)\n(named-region 1984 160 .eh_frame)\n(named-region 69008 8 .init_array)\n(named-region 69016 8 .fini_array)\n(named-region 69024 496 .dynamic)\n(named-region 69520 112 .got)\n(named-region 69632 16 .data)\n(named-region 69648 8 .bss)\n(named-region 0 43 .comment)\n(named-region 0 2112 .symtab)\n(named-region 0 555 .strtab)\n(named-region 0 250 .shstrtab)\n(named-symbol 1652 call_weak_fn)\n(named-symbol 1680 deregister_tm_clones)\n(named-symbol 1728 register_tm_clones)\n(named-symbol 1792 __do_global_dtors_aux)\n(named-symbol 1872 frame_dummy)\n(named-symbol 0 __libc_start_main@GLIBC_2.34)\n(named-symbol 0 __cxa_finalize@GLIBC_2.17)\n(named-symbol 1900 _fini)\n(named-symbol 0 abort@GLIBC_2.17)\n(named-symbol 1600 _start)\n(named-symbol 1876 main)\n(named-symbol 1432 _init)\n(named-symbol 0 __libc_start_main)\n(named-symbol 0 __cxa_finalize)\n(named-symbol 0 abort)\n(require libc.so.6)\n(section 568 27)\n(section 596 36)\n(section 632 32)\n(section 664 28)\n(section 696 216)\n(section 912 141)\n(section 1054 18)\n(section 1072 48)\n(section 1120 216)\n(section 1336 96)\n(section 1432 24)\n(section 1456 96)\n(section 1600 300)\n(section 1900 20)\n(section 1920 4)\n(section 1924 60)\n(section 1984 160)\n(section 69008 8)\n(section 69016 8)\n(section 69024 496)\n(section 69520 112)\n(section 69632 16)\n(section 69648 8)\n(section 0 43)\n(section 0 2112)\n(section 0 555)\n(section 0 250)\n(segment 0 2144 true false true)\n(segment 69008 648 true true false)\n(subarch v8)\n(symbol-chunk 1652 20 1652)\n(symbol-chunk 1600 52 1600)\n(symbol-chunk 1876 24 1876)\n(symbol-value 1652 1652)\n(symbol-value 1680 1680)\n(symbol-value 1728 1728)\n(symbol-value 1792 1792)\n(symbol-value 1872 1872)\n(symbol-value 1900 1900)\n(symbol-value 1600 1600)\n(symbol-value 1876 1876)\n(symbol-value 1432 1432)\n(symbol-value 0 0)\n(system \"\")\n(vendor \"\")\n"), -Attr("abi-name","\"aarch64-linux-gnu-elf\"")]), -Sections([Section(".shstrtab", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x40\x06\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xa8\x1b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x38\x00\x09\x00\x40\x00\x1c\x00\x1b\x00\x06\x00\x00\x00\x04\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x04\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x60\x08\x00\x00\x00\x00\x00\x00\x60\x08\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x01\x00\x00\x00\x06\x00\x00\x00\x90\x0d\x00\x00\x00\x00\x00\x00\x90\x0d"), -Section(".strtab", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x40\x06\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xa8\x1b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x38\x00\x09\x00\x40\x00\x1c\x00\x1b\x00\x06\x00\x00\x00\x04\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x04\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x60\x08\x00\x00\x00\x00\x00\x00\x60\x08\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x01\x00\x00\x00\x06\x00\x00\x00\x90\x0d\x00\x00\x00\x00\x00\x00\x90\x0d\x01\x00\x00\x00\x00\x00\x90\x0d\x01\x00\x00\x00\x00\x00\x80\x02\x00\x00\x00\x00\x00\x00\x88\x02\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x02\x00\x00\x00\x06\x00\x00\x00\xa0\x0d\x00\x00\x00\x00\x00\x00\xa0\x0d\x01\x00\x00\x00\x00\x00\xa0\x0d\x01\x00\x00\x00\x00\x00\xf0\x01\x00\x00\x00\x00\x00\x00\xf0\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x04\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x50\xe5\x74\x64\x04\x00\x00\x00\x84\x07\x00\x00\x00\x00\x00\x00\x84\x07\x00\x00\x00\x00\x00\x00\x84\x07\x00\x00\x00\x00\x00\x00\x3c\x00\x00\x00\x00\x00\x00\x00\x3c\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x51\xe5\x74\x64\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x52\xe5\x74\x64\x04\x00\x00\x00\x90\x0d\x00\x00\x00\x00\x00\x00\x90\x0d\x01\x00\x00\x00\x00\x00\x90\x0d\x01\x00\x00\x00\x00\x00\x70\x02\x00\x00\x00\x00\x00\x00\x70\x02\x00"), -Section(".symtab", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x40\x06\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xa8\x1b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x38\x00\x09\x00\x40\x00\x1c\x00\x1b\x00\x06\x00\x00\x00\x04\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x04\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x60\x08\x00\x00\x00\x00\x00\x00\x60\x08\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x01\x00\x00\x00\x06\x00\x00\x00\x90\x0d\x00\x00\x00\x00\x00\x00\x90\x0d\x01\x00\x00\x00\x00\x00\x90\x0d\x01\x00\x00\x00\x00\x00\x80\x02\x00\x00\x00\x00\x00\x00\x88\x02\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x02\x00\x00\x00\x06\x00\x00\x00\xa0\x0d\x00\x00\x00\x00\x00\x00\xa0\x0d\x01\x00\x00\x00\x00\x00\xa0\x0d\x01\x00\x00\x00\x00\x00\xf0\x01\x00\x00\x00\x00\x00\x00\xf0\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x04\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x50\xe5\x74\x64\x04\x00\x00\x00\x84\x07\x00\x00\x00\x00\x00\x00\x84\x07\x00\x00\x00\x00\x00\x00\x84\x07\x00\x00\x00\x00\x00\x00\x3c\x00\x00\x00\x00\x00\x00\x00\x3c\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x51\xe5\x74\x64\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x52\xe5\x74\x64\x04\x00\x00\x00\x90\x0d\x00\x00\x00\x00\x00\x00\x90\x0d\x01\x00\x00\x00\x00\x00\x90\x0d\x01\x00\x00\x00\x00\x00\x70\x02\x00\x00\x00\x00\x00\x00\x70\x02\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x2f\x6c\x69\x62\x2f\x6c\x64\x2d\x6c\x69\x6e\x75\x78\x2d\x61\x61\x72\x63\x68\x36\x34\x2e\x73\x6f\x2e\x31\x00\x00\x04\x00\x00\x00\x14\x00\x00\x00\x03\x00\x00\x00\x47\x4e\x55\x00\x84\x53\x14\x97\x50\x7f\x90\xdd\x73\x65\x75\xec\x62\x61\x4a\x81\xbb\x34\x8a\x2d\x04\x00\x00\x00\x10\x00\x00\x00\x01\x00\x00\x00\x47\x4e\x55\x00\x00\x00\x00\x00\x03\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x01\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x0b\x00\x98\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x16\x00\x00\x10\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x48\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x22\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x22\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x73\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5f\x5f\x63\x78\x61\x5f\x66\x69\x6e\x61\x6c\x69\x7a\x65\x00\x5f\x5f\x6c\x69\x62\x63\x5f\x73\x74\x61\x72\x74\x5f\x6d\x61\x69\x6e\x00\x61\x62\x6f\x72\x74\x00\x6c\x69\x62\x63\x2e\x73\x6f\x2e\x36\x00\x47\x4c\x49\x42\x43\x5f\x32\x2e\x31\x37\x00\x47\x4c\x49\x42\x43\x5f\x32\x2e\x33\x34\x00\x5f\x49\x54\x4d\x5f\x64\x65\x72\x65\x67\x69\x73\x74\x65\x72\x54\x4d\x43\x6c\x6f\x6e\x65\x54\x61\x62\x6c\x65\x00\x5f\x5f\x67\x6d\x6f\x6e\x5f\x73\x74\x61\x72\x74\x5f\x5f\x00\x5f\x49\x54\x4d\x5f\x72\x65\x67\x69\x73\x74\x65\x72\x54\x4d\x43\x6c\x6f\x6e\x65\x54\x61\x62\x6c\x65\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x01\x00\x03\x00\x01\x00\x03\x00\x01\x00\x01\x00\x02\x00\x28\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x97\x91\x96\x06\x00\x00\x03\x00\x32\x00\x00\x00\x10\x00\x00\x00\xb4\x91\x96\x06\x00\x00\x02\x00\x3d\x00\x00\x00\x00\x00\x00\x00\x90\x0d\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x50\x07\x00\x00\x00\x00\x00\x00\x98\x0d\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\xe0\x0f\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x14\x10\x01\x00\x00\x00\x00\x00\xf0\x0f\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x54\x07\x00\x00\x00\x00\x00\x00\x08\x10\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x08\x10\x01\x00\x00\x00\x00\x00\xd0\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xd8\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe8\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xf8\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xa8\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xb0\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xb8\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xc0\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1f\x20\x03\xd5\xfd\x7b\xbf\xa9\xfd\x03\x00\x91\x34\x00\x00\x94\xfd\x7b\xc1\xa8\xc0\x03\x5f\xd6\xf0\x7b\xbf\xa9\x90\x00\x00\x90\x11\xd2\x47\xf9\x10\x82\x3e\x91\x20\x02\x1f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x90\x00\x00\x90\x11\xd6\x47\xf9\x10\xa2\x3e\x91\x20\x02\x1f\xd6\x90\x00\x00\x90\x11\xda\x47\xf9\x10\xc2\x3e\x91\x20\x02\x1f\xd6\x90\x00\x00\x90\x11\xde\x47\xf9\x10\xe2\x3e\x91\x20\x02\x1f\xd6\x90\x00\x00\x90\x11\xe2\x47\xf9\x10\x02\x3f\x91\x20\x02\x1f\xd6\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1f\x20\x03\xd5\x1d\x00\x80\xd2\x1e\x00\x80\xd2\xe5\x03\x00\xaa\xe1\x03\x40\xf9\xe2\x23\x00\x91\xe6\x03\x00\x91\x80\x00\x00\x90\x00\xf8\x47\xf9\x03\x00\x80\xd2\x04\x00\x80\xd2\xd9\xff\xff\x97\xe4\xff\xff\x97\x80\x00\x00\x90\x00\xf4\x47\xf9\x40\x00\x00\xb4\xdc\xff\xff\x17\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x80\x00\x00\xb0\x00\x40\x00\x91\x81\x00\x00\xb0\x21\x40\x00\x91\x3f\x00\x00\xeb\xc0\x00\x00\x54\x81\x00\x00\x90\x21\xe8\x47\xf9\x61\x00\x00\xb4\xf0\x03\x01\xaa\x00\x02\x1f\xd6\xc0\x03\x5f\xd6\x80\x00\x00\xb0\x00\x40\x00\x91\x81\x00\x00\xb0\x21\x40\x00\x91\x21\x00\x00\xcb\x22\xfc\x7f\xd3\x41\x0c\x81\x8b\x21\xfc\x41\x93\xc1\x00\x00\xb4\x82\x00\x00\x90\x42\xfc\x47\xf9\x62\x00\x00\xb4\xf0\x03\x02\xaa\x00\x02\x1f\xd6\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\xfd\x7b\xbe\xa9\xfd\x03\x00\x91\xf3\x0b\x00\xf9\x93\x00\x00\xb0\x60\x42\x40\x39\x40\x01\x00\x35\x80\x00\x00\x90\x00\xec\x47\xf9\x80\x00\x00\xb4\x80\x00\x00\xb0\x00\x04\x40\xf9\xad\xff\xff\x97\xd8\xff\xff\x97\x20\x00\x80\x52\x60\x42\x00\x39\xf3\x0b\x40\xf9\xfd\x7b\xc2\xa8\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\xdc\xff\xff\x17\x80\x00\x00\x90\x00\xf0\x47\xf9\xa1\x00\x80\x52\x01\x00\x00\xb9\x00\x00\x80\x52\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\xfd\x7b\xbf\xa9\xfd\x03\x00\x91\xfd\x7b\xc1\xa8\xc0\x03\x5f\xd6\x01\x00\x02\x00\x01\x1b\x03\x3b\x38\x00\x00\x00\x06\x00\x00\x00\xbc\xfe\xff\xff\x50\x00\x00\x00\x0c\xff\xff\xff\x64\x00\x00\x00\x3c\xff\xff\xff\x78\x00\x00\x00\x7c\xff\xff\xff\x8c\x00\x00\x00\xcc\xff\xff\xff\xb0\x00\x00\x00\xd0\xff\xff\xff\xc4\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x01\x7a\x52\x00\x04\x78\x1e\x01\x1b\x0c\x1f\x00\x10\x00\x00\x00\x18\x00\x00\x00\x64\xfe\xff\xff\x34\x00\x00\x00\x00\x41\x07\x1e\x10\x00\x00\x00\x2c\x00\x00\x00\xa0\xfe\xff\xff\x30\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x40\x00\x00\x00\xbc\xfe\xff\xff\x3c\x00\x00\x00\x00\x00\x00\x00\x20\x00\x00\x00\x54\x00\x00\x00\xe8\xfe\xff\xff\x48\x00\x00\x00\x00\x41\x0e\x20\x9d\x04\x9e\x03\x42\x93\x02\x4e\xde\xdd\xd3\x0e\x00\x00\x00\x00\x10\x00\x00\x00\x78\x00\x00\x00\x14\xff\xff\xff"), -Section(".comment", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x40\x06\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xa8\x1b\x00"), -Section(".interp", 0x238, "\x2f\x6c\x69\x62\x2f\x6c\x64\x2d\x6c\x69\x6e\x75\x78\x2d\x61\x61\x72\x63\x68\x36\x34\x2e\x73\x6f\x2e\x31\x00"), -Section(".note.gnu.build-id", 0x254, "\x04\x00\x00\x00\x14\x00\x00\x00\x03\x00\x00\x00\x47\x4e\x55\x00\x84\x53\x14\x97\x50\x7f\x90\xdd\x73\x65\x75\xec\x62\x61\x4a\x81\xbb\x34\x8a\x2d"), -Section(".note.ABI-tag", 0x278, "\x04\x00\x00\x00\x10\x00\x00\x00\x01\x00\x00\x00\x47\x4e\x55\x00\x00\x00\x00\x00\x03\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00"), -Section(".gnu.hash", 0x298, "\x01\x00\x00\x00\x01\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".dynsym", 0x2B8, "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x0b\x00\x98\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x16\x00\x00\x10\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x48\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x22\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x22\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x73\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".dynstr", 0x390, "\x00\x5f\x5f\x63\x78\x61\x5f\x66\x69\x6e\x61\x6c\x69\x7a\x65\x00\x5f\x5f\x6c\x69\x62\x63\x5f\x73\x74\x61\x72\x74\x5f\x6d\x61\x69\x6e\x00\x61\x62\x6f\x72\x74\x00\x6c\x69\x62\x63\x2e\x73\x6f\x2e\x36\x00\x47\x4c\x49\x42\x43\x5f\x32\x2e\x31\x37\x00\x47\x4c\x49\x42\x43\x5f\x32\x2e\x33\x34\x00\x5f\x49\x54\x4d\x5f\x64\x65\x72\x65\x67\x69\x73\x74\x65\x72\x54\x4d\x43\x6c\x6f\x6e\x65\x54\x61\x62\x6c\x65\x00\x5f\x5f\x67\x6d\x6f\x6e\x5f\x73\x74\x61\x72\x74\x5f\x5f\x00\x5f\x49\x54\x4d\x5f\x72\x65\x67\x69\x73\x74\x65\x72\x54\x4d\x43\x6c\x6f\x6e\x65\x54\x61\x62\x6c\x65\x00"), -Section(".gnu.version", 0x41E, "\x00\x00\x00\x00\x00\x00\x02\x00\x01\x00\x03\x00\x01\x00\x03\x00\x01\x00"), -Section(".gnu.version_r", 0x430, "\x01\x00\x02\x00\x28\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x97\x91\x96\x06\x00\x00\x03\x00\x32\x00\x00\x00\x10\x00\x00\x00\xb4\x91\x96\x06\x00\x00\x02\x00\x3d\x00\x00\x00\x00\x00\x00\x00"), -Section(".rela.dyn", 0x460, "\x90\x0d\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x50\x07\x00\x00\x00\x00\x00\x00\x98\x0d\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\xe0\x0f\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x14\x10\x01\x00\x00\x00\x00\x00\xf0\x0f\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x54\x07\x00\x00\x00\x00\x00\x00\x08\x10\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x08\x10\x01\x00\x00\x00\x00\x00\xd0\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xd8\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe8\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xf8\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".rela.plt", 0x538, "\xa8\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xb0\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xb8\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xc0\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".init", 0x598, "\x1f\x20\x03\xd5\xfd\x7b\xbf\xa9\xfd\x03\x00\x91\x34\x00\x00\x94\xfd\x7b\xc1\xa8\xc0\x03\x5f\xd6"), -Section(".plt", 0x5B0, "\xf0\x7b\xbf\xa9\x90\x00\x00\x90\x11\xd2\x47\xf9\x10\x82\x3e\x91\x20\x02\x1f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x90\x00\x00\x90\x11\xd6\x47\xf9\x10\xa2\x3e\x91\x20\x02\x1f\xd6\x90\x00\x00\x90\x11\xda\x47\xf9\x10\xc2\x3e\x91\x20\x02\x1f\xd6\x90\x00\x00\x90\x11\xde\x47\xf9\x10\xe2\x3e\x91\x20\x02\x1f\xd6\x90\x00\x00\x90\x11\xe2\x47\xf9\x10\x02\x3f\x91\x20\x02\x1f\xd6"), -Section(".fini", 0x76C, "\x1f\x20\x03\xd5\xfd\x7b\xbf\xa9\xfd\x03\x00\x91\xfd\x7b\xc1\xa8\xc0\x03\x5f\xd6"), -Section(".rodata", 0x780, "\x01\x00\x02\x00"), -Section(".eh_frame_hdr", 0x784, "\x01\x1b\x03\x3b\x38\x00\x00\x00\x06\x00\x00\x00\xbc\xfe\xff\xff\x50\x00\x00\x00\x0c\xff\xff\xff\x64\x00\x00\x00\x3c\xff\xff\xff\x78\x00\x00\x00\x7c\xff\xff\xff\x8c\x00\x00\x00\xcc\xff\xff\xff\xb0\x00\x00\x00\xd0\xff\xff\xff\xc4\x00\x00\x00"), -Section(".eh_frame", 0x7C0, "\x10\x00\x00\x00\x00\x00\x00\x00\x01\x7a\x52\x00\x04\x78\x1e\x01\x1b\x0c\x1f\x00\x10\x00\x00\x00\x18\x00\x00\x00\x64\xfe\xff\xff\x34\x00\x00\x00\x00\x41\x07\x1e\x10\x00\x00\x00\x2c\x00\x00\x00\xa0\xfe\xff\xff\x30\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x40\x00\x00\x00\xbc\xfe\xff\xff\x3c\x00\x00\x00\x00\x00\x00\x00\x20\x00\x00\x00\x54\x00\x00\x00\xe8\xfe\xff\xff\x48\x00\x00\x00\x00\x41\x0e\x20\x9d\x04\x9e\x03\x42\x93\x02\x4e\xde\xdd\xd3\x0e\x00\x00\x00\x00\x10\x00\x00\x00\x78\x00\x00\x00\x14\xff\xff\xff\x04\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x8c\x00\x00\x00\x04\xff\xff\xff\x18\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".fini_array", 0x10D98, "\x00\x07\x00\x00\x00\x00\x00\x00"), -Section(".dynamic", 0x10DA0, "\x01\x00\x00\x00\x00\x00\x00\x00\x28\x00\x00\x00\x00\x00\x00\x00\x0c\x00\x00\x00\x00\x00\x00\x00\x98\x05\x00\x00\x00\x00\x00\x00\x0d\x00\x00\x00\x00\x00\x00\x00\x6c\x07\x00\x00\x00\x00\x00\x00\x19\x00\x00\x00\x00\x00\x00\x00\x90\x0d\x01\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x1a\x00\x00\x00\x00\x00\x00\x00\x98\x0d\x01\x00\x00\x00\x00\x00\x1c\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\xf5\xfe\xff\x6f\x00\x00\x00\x00\x98\x02\x00\x00\x00\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x90\x03\x00\x00\x00\x00\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\xb8\x02\x00\x00\x00\x00\x00\x00\x0a\x00\x00\x00\x00\x00\x00\x00\x8d\x00\x00\x00\x00\x00\x00\x00\x0b\x00\x00\x00\x00\x00\x00\x00\x18\x00\x00\x00\x00\x00\x00\x00\x15\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x90\x0f\x01\x00\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x60\x00\x00\x00\x00\x00\x00\x00\x14\x00\x00\x00\x00\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x17\x00\x00\x00\x00\x00\x00\x00\x38\x05\x00\x00\x00\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x60\x04\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\xd8\x00\x00\x00\x00\x00\x00\x00\x09\x00\x00\x00\x00\x00\x00\x00\x18\x00\x00\x00\x00\x00\x00\x00\x1e\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\xfb\xff\xff\x6f\x00\x00\x00\x00\x01\x00\x00\x08\x00\x00\x00\x00\xfe\xff\xff\x6f\x00\x00\x00\x00\x30\x04\x00\x00\x00\x00\x00\x00\xff\xff\xff\x6f\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\xf0\xff\xff\x6f\x00\x00\x00\x00\x1e\x04\x00\x00\x00\x00\x00\x00\xf9\xff\xff\x6f\x00\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".got", 0x10F90, "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xb0\x05\x00\x00\x00\x00\x00\x00\xb0\x05\x00\x00\x00\x00\x00\x00\xb0\x05\x00\x00\x00\x00\x00\x00\xb0\x05\x00\x00\x00\x00\x00\x00\xa0\x0d\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x14\x10\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x54\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".data", 0x11000, "\x00\x00\x00\x00\x00\x00\x00\x00\x08\x10\x01\x00\x00\x00\x00\x00"), -Section(".init_array", 0x10D90, "\x50\x07\x00\x00\x00\x00\x00\x00"), -Section(".text", 0x640, "\x1f\x20\x03\xd5\x1d\x00\x80\xd2\x1e\x00\x80\xd2\xe5\x03\x00\xaa\xe1\x03\x40\xf9\xe2\x23\x00\x91\xe6\x03\x00\x91\x80\x00\x00\x90\x00\xf8\x47\xf9\x03\x00\x80\xd2\x04\x00\x80\xd2\xd9\xff\xff\x97\xe4\xff\xff\x97\x80\x00\x00\x90\x00\xf4\x47\xf9\x40\x00\x00\xb4\xdc\xff\xff\x17\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x80\x00\x00\xb0\x00\x40\x00\x91\x81\x00\x00\xb0\x21\x40\x00\x91\x3f\x00\x00\xeb\xc0\x00\x00\x54\x81\x00\x00\x90\x21\xe8\x47\xf9\x61\x00\x00\xb4\xf0\x03\x01\xaa\x00\x02\x1f\xd6\xc0\x03\x5f\xd6\x80\x00\x00\xb0\x00\x40\x00\x91\x81\x00\x00\xb0\x21\x40\x00\x91\x21\x00\x00\xcb\x22\xfc\x7f\xd3\x41\x0c\x81\x8b\x21\xfc\x41\x93\xc1\x00\x00\xb4\x82\x00\x00\x90\x42\xfc\x47\xf9\x62\x00\x00\xb4\xf0\x03\x02\xaa\x00\x02\x1f\xd6\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\xfd\x7b\xbe\xa9\xfd\x03\x00\x91\xf3\x0b\x00\xf9\x93\x00\x00\xb0\x60\x42\x40\x39\x40\x01\x00\x35\x80\x00\x00\x90\x00\xec\x47\xf9\x80\x00\x00\xb4\x80\x00\x00\xb0\x00\x04\x40\xf9\xad\xff\xff\x97\xd8\xff\xff\x97\x20\x00\x80\x52\x60\x42\x00\x39\xf3\x0b\x40\xf9\xfd\x7b\xc2\xa8\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\xdc\xff\xff\x17\x80\x00\x00\x90\x00\xf0\x47\xf9\xa1\x00\x80\x52\x01\x00\x00\xb9\x00\x00\x80\x52\xc0\x03\x5f\xd6")]), -Memmap([Annotation(Region(0x0,0x85F), Attr("segment","02 0 2144")), -Annotation(Region(0x640,0x673), Attr("symbol","\"_start\"")), -Annotation(Region(0x0,0xF9), Attr("section","\".shstrtab\"")), -Annotation(Region(0x0,0x22A), Attr("section","\".strtab\"")), -Annotation(Region(0x0,0x83F), Attr("section","\".symtab\"")), -Annotation(Region(0x0,0x2A), Attr("section","\".comment\"")), -Annotation(Region(0x238,0x252), Attr("section","\".interp\"")), -Annotation(Region(0x254,0x277), Attr("section","\".note.gnu.build-id\"")), -Annotation(Region(0x278,0x297), Attr("section","\".note.ABI-tag\"")), -Annotation(Region(0x298,0x2B3), Attr("section","\".gnu.hash\"")), -Annotation(Region(0x2B8,0x38F), Attr("section","\".dynsym\"")), -Annotation(Region(0x390,0x41C), Attr("section","\".dynstr\"")), -Annotation(Region(0x41E,0x42F), Attr("section","\".gnu.version\"")), -Annotation(Region(0x430,0x45F), Attr("section","\".gnu.version_r\"")), -Annotation(Region(0x460,0x537), Attr("section","\".rela.dyn\"")), -Annotation(Region(0x538,0x597), Attr("section","\".rela.plt\"")), -Annotation(Region(0x598,0x5AF), Attr("section","\".init\"")), -Annotation(Region(0x5B0,0x60F), Attr("section","\".plt\"")), -Annotation(Region(0x598,0x5AF), Attr("code-region","()")), -Annotation(Region(0x5B0,0x60F), Attr("code-region","()")), -Annotation(Region(0x640,0x673), Attr("symbol-info","_start 0x640 52")), -Annotation(Region(0x674,0x687), Attr("symbol","\"call_weak_fn\"")), -Annotation(Region(0x674,0x687), Attr("symbol-info","call_weak_fn 0x674 20")), -Annotation(Region(0x754,0x76B), Attr("symbol","\"main\"")), -Annotation(Region(0x754,0x76B), Attr("symbol-info","main 0x754 24")), -Annotation(Region(0x76C,0x77F), Attr("section","\".fini\"")), -Annotation(Region(0x780,0x783), Attr("section","\".rodata\"")), -Annotation(Region(0x784,0x7BF), Attr("section","\".eh_frame_hdr\"")), -Annotation(Region(0x7C0,0x85F), Attr("section","\".eh_frame\"")), -Annotation(Region(0x10D90,0x1100F), Attr("segment","03 0x10D90 648")), -Annotation(Region(0x10D98,0x10D9F), Attr("section","\".fini_array\"")), -Annotation(Region(0x10DA0,0x10F8F), Attr("section","\".dynamic\"")), -Annotation(Region(0x10F90,0x10FFF), Attr("section","\".got\"")), -Annotation(Region(0x11000,0x1100F), Attr("section","\".data\"")), -Annotation(Region(0x10D90,0x10D97), Attr("section","\".init_array\"")), -Annotation(Region(0x640,0x76B), Attr("section","\".text\"")), -Annotation(Region(0x640,0x76B), Attr("code-region","()")), -Annotation(Region(0x76C,0x77F), Attr("code-region","()"))]), -Program(Tid(1_348, "%00000544"), Attrs([]), - Subs([Sub(Tid(1_298, "@__cxa_finalize"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x5E0"), -Attr("stub","()")]), "__cxa_finalize", Args([Arg(Tid(1_349, "%00000545"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("__cxa_finalize_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(796, "@__cxa_finalize"), - Attrs([Attr("address","0x5E0")]), Phis([]), -Defs([Def(Tid(1_044, "%00000414"), Attrs([Attr("address","0x5E0"), -Attr("insn","adrp x16, #65536")]), Var("R16",Imm(64)), Int(65536,64)), -Def(Tid(1_051, "%0000041b"), Attrs([Attr("address","0x5E4"), -Attr("insn","ldr x17, [x16, #0xfb0]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(4016,64)),LittleEndian(),64)), -Def(Tid(1_057, "%00000421"), Attrs([Attr("address","0x5E8"), -Attr("insn","add x16, x16, #0xfb0")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(4016,64)))]), Jmps([Call(Tid(1_062, "%00000426"), - Attrs([Attr("address","0x5EC"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), -Sub(Tid(1_299, "@__do_global_dtors_aux"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x700")]), - "__do_global_dtors_aux", Args([Arg(Tid(1_350, "%00000546"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("__do_global_dtors_aux_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(614, "@__do_global_dtors_aux"), - Attrs([Attr("address","0x700")]), Phis([]), Defs([Def(Tid(618, "%0000026a"), - Attrs([Attr("address","0x700"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("#3",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(18446744073709551584,64))), -Def(Tid(624, "%00000270"), Attrs([Attr("address","0x700"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("#3",Imm(64)),Var("R29",Imm(64)),LittleEndian(),64)), -Def(Tid(630, "%00000276"), Attrs([Attr("address","0x700"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("#3",Imm(64)),Int(8,64)),Var("R30",Imm(64)),LittleEndian(),64)), -Def(Tid(634, "%0000027a"), Attrs([Attr("address","0x700"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("R31",Imm(64)), -Var("#3",Imm(64))), Def(Tid(640, "%00000280"), - Attrs([Attr("address","0x704"), Attr("insn","mov x29, sp")]), - Var("R29",Imm(64)), Var("R31",Imm(64))), Def(Tid(648, "%00000288"), - Attrs([Attr("address","0x708"), Attr("insn","str x19, [sp, #0x10]")]), - Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(16,64)),Var("R19",Imm(64)),LittleEndian(),64)), -Def(Tid(653, "%0000028d"), Attrs([Attr("address","0x70C"), -Attr("insn","adrp x19, #69632")]), Var("R19",Imm(64)), Int(69632,64)), -Def(Tid(660, "%00000294"), Attrs([Attr("address","0x710"), -Attr("insn","ldrb w0, [x19, #0x10]")]), Var("R0",Imm(64)), -UNSIGNED(64,Load(Var("mem",Mem(64,8)),PLUS(Var("R19",Imm(64)),Int(16,64)),LittleEndian(),8)))]), -Jmps([Goto(Tid(667, "%0000029b"), Attrs([Attr("address","0x714"), -Attr("insn","cbnz w0, #0x28")]), - NEQ(Extract(31,0,Var("R0",Imm(64))),Int(0,32)), -Direct(Tid(665, "%00000299"))), Goto(Tid(1_338, "%0000053a"), Attrs([]), - Int(1,1), Direct(Tid(741, "%000002e5")))])), Blk(Tid(741, "%000002e5"), - Attrs([Attr("address","0x718")]), Phis([]), Defs([Def(Tid(744, "%000002e8"), - Attrs([Attr("address","0x718"), Attr("insn","adrp x0, #65536")]), - Var("R0",Imm(64)), Int(65536,64)), Def(Tid(751, "%000002ef"), - Attrs([Attr("address","0x71C"), Attr("insn","ldr x0, [x0, #0xfd8]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(4056,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(757, "%000002f5"), Attrs([Attr("address","0x720"), -Attr("insn","cbz x0, #0x10")]), EQ(Var("R0",Imm(64)),Int(0,64)), -Direct(Tid(755, "%000002f3"))), Goto(Tid(1_339, "%0000053b"), Attrs([]), - Int(1,1), Direct(Tid(780, "%0000030c")))])), Blk(Tid(780, "%0000030c"), - Attrs([Attr("address","0x724")]), Phis([]), Defs([Def(Tid(783, "%0000030f"), - Attrs([Attr("address","0x724"), Attr("insn","adrp x0, #69632")]), - Var("R0",Imm(64)), Int(69632,64)), Def(Tid(790, "%00000316"), - Attrs([Attr("address","0x728"), Attr("insn","ldr x0, [x0, #0x8]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(795, "%0000031b"), Attrs([Attr("address","0x72C"), -Attr("insn","bl #-0x14c")]), Var("R30",Imm(64)), Int(1840,64))]), -Jmps([Call(Tid(798, "%0000031e"), Attrs([Attr("address","0x72C"), -Attr("insn","bl #-0x14c")]), Int(1,1), -(Direct(Tid(1_298, "@__cxa_finalize")),Direct(Tid(755, "%000002f3"))))])), -Blk(Tid(755, "%000002f3"), Attrs([Attr("address","0x730")]), Phis([]), -Defs([Def(Tid(763, "%000002fb"), Attrs([Attr("address","0x730"), -Attr("insn","bl #-0xa0")]), Var("R30",Imm(64)), Int(1844,64))]), -Jmps([Call(Tid(765, "%000002fd"), Attrs([Attr("address","0x730"), -Attr("insn","bl #-0xa0")]), Int(1,1), -(Direct(Tid(1_312, "@deregister_tm_clones")),Direct(Tid(767, "%000002ff"))))])), -Blk(Tid(767, "%000002ff"), Attrs([Attr("address","0x734")]), Phis([]), -Defs([Def(Tid(770, "%00000302"), Attrs([Attr("address","0x734"), -Attr("insn","mov w0, #0x1")]), Var("R0",Imm(64)), Int(1,64)), -Def(Tid(778, "%0000030a"), Attrs([Attr("address","0x738"), -Attr("insn","strb w0, [x19, #0x10]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R19",Imm(64)),Int(16,64)),Extract(7,0,Var("R0",Imm(64))),LittleEndian(),8))]), -Jmps([Goto(Tid(1_340, "%0000053c"), Attrs([]), Int(1,1), -Direct(Tid(665, "%00000299")))])), Blk(Tid(665, "%00000299"), - Attrs([Attr("address","0x73C")]), Phis([]), Defs([Def(Tid(675, "%000002a3"), - Attrs([Attr("address","0x73C"), Attr("insn","ldr x19, [sp, #0x10]")]), - Var("R19",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(16,64)),LittleEndian(),64)), -Def(Tid(682, "%000002aa"), Attrs([Attr("address","0x740"), -Attr("insn","ldp x29, x30, [sp], #0x20")]), Var("R29",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(687, "%000002af"), Attrs([Attr("address","0x740"), -Attr("insn","ldp x29, x30, [sp], #0x20")]), Var("R30",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(691, "%000002b3"), Attrs([Attr("address","0x740"), -Attr("insn","ldp x29, x30, [sp], #0x20")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(32,64)))]), Jmps([Call(Tid(696, "%000002b8"), - Attrs([Attr("address","0x744"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), Sub(Tid(1_303, "@__libc_start_main"), - Attrs([Attr("c.proto","signed (*)(signed (*)(signed , char** , char** );* main, signed , char** , \nvoid* auxv)"), -Attr("address","0x5D0"), Attr("stub","()")]), "__libc_start_main", - Args([Arg(Tid(1_351, "%00000547"), - Attrs([Attr("c.layout","**[ : 64]"), -Attr("c.data","Top:u64 ptr ptr"), -Attr("c.type","signed (*)(signed , char** , char** );*")]), - Var("__libc_start_main_main",Imm(64)), Var("R0",Imm(64)), In()), -Arg(Tid(1_352, "%00000548"), Attrs([Attr("c.layout","[signed : 32]"), -Attr("c.data","Top:u32"), Attr("c.type","signed")]), - Var("__libc_start_main_arg2",Imm(32)), LOW(32,Var("R1",Imm(64))), In()), -Arg(Tid(1_353, "%00000549"), Attrs([Attr("c.layout","**[char : 8]"), -Attr("c.data","Top:u8 ptr ptr"), Attr("c.type","char**")]), - Var("__libc_start_main_arg3",Imm(64)), Var("R2",Imm(64)), Both()), -Arg(Tid(1_354, "%0000054a"), Attrs([Attr("c.layout","*[ : 8]"), -Attr("c.data","{} ptr"), Attr("c.type","void*")]), - Var("__libc_start_main_auxv",Imm(64)), Var("R3",Imm(64)), Both()), -Arg(Tid(1_355, "%0000054b"), Attrs([Attr("c.layout","[signed : 32]"), -Attr("c.data","Top:u32"), Attr("c.type","signed")]), - Var("__libc_start_main_result",Imm(32)), LOW(32,Var("R0",Imm(64))), -Out())]), Blks([Blk(Tid(447, "@__libc_start_main"), - Attrs([Attr("address","0x5D0")]), Phis([]), -Defs([Def(Tid(1_022, "%000003fe"), Attrs([Attr("address","0x5D0"), -Attr("insn","adrp x16, #65536")]), Var("R16",Imm(64)), Int(65536,64)), -Def(Tid(1_029, "%00000405"), Attrs([Attr("address","0x5D4"), -Attr("insn","ldr x17, [x16, #0xfa8]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(4008,64)),LittleEndian(),64)), -Def(Tid(1_035, "%0000040b"), Attrs([Attr("address","0x5D8"), -Attr("insn","add x16, x16, #0xfa8")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(4008,64)))]), Jmps([Call(Tid(1_040, "%00000410"), - Attrs([Attr("address","0x5DC"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), Sub(Tid(1_304, "@_fini"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x76C")]), - "_fini", Args([Arg(Tid(1_356, "%0000054c"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("_fini_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(31, "@_fini"), - Attrs([Attr("address","0x76C")]), Phis([]), Defs([Def(Tid(37, "%00000025"), - Attrs([Attr("address","0x770"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("#0",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(18446744073709551600,64))), -Def(Tid(43, "%0000002b"), Attrs([Attr("address","0x770"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("#0",Imm(64)),Var("R29",Imm(64)),LittleEndian(),64)), -Def(Tid(49, "%00000031"), Attrs([Attr("address","0x770"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("#0",Imm(64)),Int(8,64)),Var("R30",Imm(64)),LittleEndian(),64)), -Def(Tid(53, "%00000035"), Attrs([Attr("address","0x770"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("R31",Imm(64)), -Var("#0",Imm(64))), Def(Tid(59, "%0000003b"), Attrs([Attr("address","0x774"), -Attr("insn","mov x29, sp")]), Var("R29",Imm(64)), Var("R31",Imm(64))), -Def(Tid(66, "%00000042"), Attrs([Attr("address","0x778"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R29",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(71, "%00000047"), Attrs([Attr("address","0x778"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R30",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(75, "%0000004b"), Attrs([Attr("address","0x778"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(16,64)))]), Jmps([Call(Tid(80, "%00000050"), - Attrs([Attr("address","0x77C"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), Sub(Tid(1_305, "@_init"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x598")]), - "_init", Args([Arg(Tid(1_357, "%0000054d"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("_init_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(1_134, "@_init"), - Attrs([Attr("address","0x598")]), Phis([]), -Defs([Def(Tid(1_140, "%00000474"), Attrs([Attr("address","0x59C"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("#5",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(18446744073709551600,64))), -Def(Tid(1_146, "%0000047a"), Attrs([Attr("address","0x59C"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("#5",Imm(64)),Var("R29",Imm(64)),LittleEndian(),64)), -Def(Tid(1_152, "%00000480"), Attrs([Attr("address","0x59C"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("#5",Imm(64)),Int(8,64)),Var("R30",Imm(64)),LittleEndian(),64)), -Def(Tid(1_156, "%00000484"), Attrs([Attr("address","0x59C"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("R31",Imm(64)), -Var("#5",Imm(64))), Def(Tid(1_162, "%0000048a"), - Attrs([Attr("address","0x5A0"), Attr("insn","mov x29, sp")]), - Var("R29",Imm(64)), Var("R31",Imm(64))), Def(Tid(1_167, "%0000048f"), - Attrs([Attr("address","0x5A4"), Attr("insn","bl #0xd0")]), - Var("R30",Imm(64)), Int(1448,64))]), Jmps([Call(Tid(1_169, "%00000491"), - Attrs([Attr("address","0x5A4"), Attr("insn","bl #0xd0")]), Int(1,1), -(Direct(Tid(1_310, "@call_weak_fn")),Direct(Tid(1_171, "%00000493"))))])), -Blk(Tid(1_171, "%00000493"), Attrs([Attr("address","0x5A8")]), Phis([]), -Defs([Def(Tid(1_176, "%00000498"), Attrs([Attr("address","0x5A8"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R29",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(1_181, "%0000049d"), Attrs([Attr("address","0x5A8"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R30",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(1_185, "%000004a1"), Attrs([Attr("address","0x5A8"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(16,64)))]), Jmps([Call(Tid(1_190, "%000004a6"), - Attrs([Attr("address","0x5AC"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), Sub(Tid(1_306, "@_start"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x640"), -Attr("entry-point","()")]), "_start", Args([Arg(Tid(1_358, "%0000054e"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("_start_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(384, "@_start"), - Attrs([Attr("address","0x640")]), Phis([]), Defs([Def(Tid(389, "%00000185"), - Attrs([Attr("address","0x644"), Attr("insn","mov x29, #0x0")]), - Var("R29",Imm(64)), Int(0,64)), Def(Tid(394, "%0000018a"), - Attrs([Attr("address","0x648"), Attr("insn","mov x30, #0x0")]), - Var("R30",Imm(64)), Int(0,64)), Def(Tid(400, "%00000190"), - Attrs([Attr("address","0x64C"), Attr("insn","mov x5, x0")]), - Var("R5",Imm(64)), Var("R0",Imm(64))), Def(Tid(407, "%00000197"), - Attrs([Attr("address","0x650"), Attr("insn","ldr x1, [sp]")]), - Var("R1",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(413, "%0000019d"), Attrs([Attr("address","0x654"), -Attr("insn","add x2, sp, #0x8")]), Var("R2",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(8,64))), Def(Tid(419, "%000001a3"), - Attrs([Attr("address","0x658"), Attr("insn","mov x6, sp")]), - Var("R6",Imm(64)), Var("R31",Imm(64))), Def(Tid(424, "%000001a8"), - Attrs([Attr("address","0x65C"), Attr("insn","adrp x0, #65536")]), - Var("R0",Imm(64)), Int(65536,64)), Def(Tid(431, "%000001af"), - Attrs([Attr("address","0x660"), Attr("insn","ldr x0, [x0, #0xff0]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(4080,64)),LittleEndian(),64)), -Def(Tid(436, "%000001b4"), Attrs([Attr("address","0x664"), -Attr("insn","mov x3, #0x0")]), Var("R3",Imm(64)), Int(0,64)), -Def(Tid(441, "%000001b9"), Attrs([Attr("address","0x668"), -Attr("insn","mov x4, #0x0")]), Var("R4",Imm(64)), Int(0,64)), -Def(Tid(446, "%000001be"), Attrs([Attr("address","0x66C"), -Attr("insn","bl #-0x9c")]), Var("R30",Imm(64)), Int(1648,64))]), -Jmps([Call(Tid(449, "%000001c1"), Attrs([Attr("address","0x66C"), -Attr("insn","bl #-0x9c")]), Int(1,1), -(Direct(Tid(1_303, "@__libc_start_main")),Direct(Tid(451, "%000001c3"))))])), -Blk(Tid(451, "%000001c3"), Attrs([Attr("address","0x670")]), Phis([]), -Defs([Def(Tid(454, "%000001c6"), Attrs([Attr("address","0x670"), -Attr("insn","bl #-0x70")]), Var("R30",Imm(64)), Int(1652,64))]), -Jmps([Call(Tid(457, "%000001c9"), Attrs([Attr("address","0x670"), -Attr("insn","bl #-0x70")]), Int(1,1), -(Direct(Tid(1_309, "@abort")),Direct(Tid(1_341, "%0000053d"))))])), -Blk(Tid(1_341, "%0000053d"), Attrs([]), Phis([]), Defs([]), -Jmps([Call(Tid(1_342, "%0000053e"), Attrs([]), Int(1,1), -(Direct(Tid(1_310, "@call_weak_fn")),))]))])), Sub(Tid(1_309, "@abort"), - Attrs([Attr("noreturn","()"), Attr("c.proto","void (*)(void)"), -Attr("address","0x600"), Attr("stub","()")]), "abort", Args([]), -Blks([Blk(Tid(455, "@abort"), Attrs([Attr("address","0x600")]), Phis([]), -Defs([Def(Tid(1_088, "%00000440"), Attrs([Attr("address","0x600"), -Attr("insn","adrp x16, #65536")]), Var("R16",Imm(64)), Int(65536,64)), -Def(Tid(1_095, "%00000447"), Attrs([Attr("address","0x604"), -Attr("insn","ldr x17, [x16, #0xfc0]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(4032,64)),LittleEndian(),64)), -Def(Tid(1_101, "%0000044d"), Attrs([Attr("address","0x608"), -Attr("insn","add x16, x16, #0xfc0")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(4032,64)))]), Jmps([Call(Tid(1_106, "%00000452"), - Attrs([Attr("address","0x60C"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), Sub(Tid(1_310, "@call_weak_fn"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x674")]), - "call_weak_fn", Args([Arg(Tid(1_359, "%0000054f"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("call_weak_fn_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(459, "@call_weak_fn"), - Attrs([Attr("address","0x674")]), Phis([]), Defs([Def(Tid(462, "%000001ce"), - Attrs([Attr("address","0x674"), Attr("insn","adrp x0, #65536")]), - Var("R0",Imm(64)), Int(65536,64)), Def(Tid(469, "%000001d5"), - Attrs([Attr("address","0x678"), Attr("insn","ldr x0, [x0, #0xfe8]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(4072,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(475, "%000001db"), Attrs([Attr("address","0x67C"), -Attr("insn","cbz x0, #0x8")]), EQ(Var("R0",Imm(64)),Int(0,64)), -Direct(Tid(473, "%000001d9"))), Goto(Tid(1_343, "%0000053f"), Attrs([]), - Int(1,1), Direct(Tid(860, "%0000035c")))])), Blk(Tid(473, "%000001d9"), - Attrs([Attr("address","0x684")]), Phis([]), Defs([]), -Jmps([Call(Tid(481, "%000001e1"), Attrs([Attr("address","0x684"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))])), -Blk(Tid(860, "%0000035c"), Attrs([Attr("address","0x680")]), Phis([]), -Defs([]), Jmps([Goto(Tid(863, "%0000035f"), Attrs([Attr("address","0x680"), -Attr("insn","b #-0x90")]), Int(1,1), Direct(Tid(861, "@__gmon_start__")))])), -Blk(Tid(861, "@__gmon_start__"), Attrs([Attr("address","0x5F0")]), Phis([]), -Defs([Def(Tid(1_066, "%0000042a"), Attrs([Attr("address","0x5F0"), -Attr("insn","adrp x16, #65536")]), Var("R16",Imm(64)), Int(65536,64)), -Def(Tid(1_073, "%00000431"), Attrs([Attr("address","0x5F4"), -Attr("insn","ldr x17, [x16, #0xfb8]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(4024,64)),LittleEndian(),64)), -Def(Tid(1_079, "%00000437"), Attrs([Attr("address","0x5F8"), -Attr("insn","add x16, x16, #0xfb8")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(4024,64)))]), Jmps([Call(Tid(1_084, "%0000043c"), - Attrs([Attr("address","0x5FC"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), -Sub(Tid(1_312, "@deregister_tm_clones"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x690")]), - "deregister_tm_clones", Args([Arg(Tid(1_360, "%00000550"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("deregister_tm_clones_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(487, "@deregister_tm_clones"), - Attrs([Attr("address","0x690")]), Phis([]), Defs([Def(Tid(490, "%000001ea"), - Attrs([Attr("address","0x690"), Attr("insn","adrp x0, #69632")]), - Var("R0",Imm(64)), Int(69632,64)), Def(Tid(496, "%000001f0"), - Attrs([Attr("address","0x694"), Attr("insn","add x0, x0, #0x10")]), - Var("R0",Imm(64)), PLUS(Var("R0",Imm(64)),Int(16,64))), -Def(Tid(501, "%000001f5"), Attrs([Attr("address","0x698"), -Attr("insn","adrp x1, #69632")]), Var("R1",Imm(64)), Int(69632,64)), -Def(Tid(507, "%000001fb"), Attrs([Attr("address","0x69C"), -Attr("insn","add x1, x1, #0x10")]), Var("R1",Imm(64)), -PLUS(Var("R1",Imm(64)),Int(16,64))), Def(Tid(513, "%00000201"), - Attrs([Attr("address","0x6A0"), Attr("insn","cmp x1, x0")]), - Var("#1",Imm(64)), NOT(Var("R0",Imm(64)))), Def(Tid(518, "%00000206"), - Attrs([Attr("address","0x6A0"), Attr("insn","cmp x1, x0")]), - Var("#2",Imm(64)), PLUS(Var("R1",Imm(64)),NOT(Var("R0",Imm(64))))), -Def(Tid(524, "%0000020c"), Attrs([Attr("address","0x6A0"), -Attr("insn","cmp x1, x0")]), Var("VF",Imm(1)), -NEQ(SIGNED(65,PLUS(Var("#2",Imm(64)),Int(1,64))),PLUS(PLUS(SIGNED(65,Var("R1",Imm(64))),SIGNED(65,Var("#1",Imm(64)))),Int(1,65)))), -Def(Tid(530, "%00000212"), Attrs([Attr("address","0x6A0"), -Attr("insn","cmp x1, x0")]), Var("CF",Imm(1)), -NEQ(UNSIGNED(65,PLUS(Var("#2",Imm(64)),Int(1,64))),PLUS(PLUS(UNSIGNED(65,Var("R1",Imm(64))),UNSIGNED(65,Var("#1",Imm(64)))),Int(1,65)))), -Def(Tid(534, "%00000216"), Attrs([Attr("address","0x6A0"), -Attr("insn","cmp x1, x0")]), Var("ZF",Imm(1)), -EQ(PLUS(Var("#2",Imm(64)),Int(1,64)),Int(0,64))), Def(Tid(538, "%0000021a"), - Attrs([Attr("address","0x6A0"), Attr("insn","cmp x1, x0")]), - Var("NF",Imm(1)), Extract(63,63,PLUS(Var("#2",Imm(64)),Int(1,64))))]), -Jmps([Goto(Tid(544, "%00000220"), Attrs([Attr("address","0x6A4"), -Attr("insn","b.eq #0x18")]), EQ(Var("ZF",Imm(1)),Int(1,1)), -Direct(Tid(542, "%0000021e"))), Goto(Tid(1_344, "%00000540"), Attrs([]), - Int(1,1), Direct(Tid(830, "%0000033e")))])), Blk(Tid(830, "%0000033e"), - Attrs([Attr("address","0x6A8")]), Phis([]), Defs([Def(Tid(833, "%00000341"), - Attrs([Attr("address","0x6A8"), Attr("insn","adrp x1, #65536")]), - Var("R1",Imm(64)), Int(65536,64)), Def(Tid(840, "%00000348"), - Attrs([Attr("address","0x6AC"), Attr("insn","ldr x1, [x1, #0xfd0]")]), - Var("R1",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R1",Imm(64)),Int(4048,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(845, "%0000034d"), Attrs([Attr("address","0x6B0"), -Attr("insn","cbz x1, #0xc")]), EQ(Var("R1",Imm(64)),Int(0,64)), -Direct(Tid(542, "%0000021e"))), Goto(Tid(1_345, "%00000541"), Attrs([]), - Int(1,1), Direct(Tid(849, "%00000351")))])), Blk(Tid(542, "%0000021e"), - Attrs([Attr("address","0x6BC")]), Phis([]), Defs([]), -Jmps([Call(Tid(550, "%00000226"), Attrs([Attr("address","0x6BC"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))])), -Blk(Tid(849, "%00000351"), Attrs([Attr("address","0x6B4")]), Phis([]), -Defs([Def(Tid(853, "%00000355"), Attrs([Attr("address","0x6B4"), -Attr("insn","mov x16, x1")]), Var("R16",Imm(64)), Var("R1",Imm(64)))]), -Jmps([Call(Tid(858, "%0000035a"), Attrs([Attr("address","0x6B8"), -Attr("insn","br x16")]), Int(1,1), (Indirect(Var("R16",Imm(64))),))]))])), -Sub(Tid(1_315, "@frame_dummy"), Attrs([Attr("c.proto","signed (*)(void)"), -Attr("address","0x750")]), "frame_dummy", Args([Arg(Tid(1_361, "%00000551"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("frame_dummy_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(702, "@frame_dummy"), - Attrs([Attr("address","0x750")]), Phis([]), Defs([]), -Jmps([Call(Tid(704, "%000002c0"), Attrs([Attr("address","0x750"), -Attr("insn","b #-0x90")]), Int(1,1), -(Direct(Tid(1_317, "@register_tm_clones")),))]))])), Sub(Tid(1_316, "@main"), - Attrs([Attr("c.proto","signed (*)(signed argc, const char** argv)"), -Attr("address","0x754")]), "main", Args([Arg(Tid(1_362, "%00000552"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("main_argc",Imm(32)), -LOW(32,Var("R0",Imm(64))), In()), Arg(Tid(1_363, "%00000553"), - Attrs([Attr("c.layout","**[char : 8]"), Attr("c.data","Top:u8 ptr ptr"), -Attr("c.type"," const char**")]), Var("main_argv",Imm(64)), -Var("R1",Imm(64)), Both()), Arg(Tid(1_364, "%00000554"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("main_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(706, "@main"), - Attrs([Attr("address","0x754")]), Phis([]), Defs([Def(Tid(709, "%000002c5"), - Attrs([Attr("address","0x754"), Attr("insn","adrp x0, #65536")]), - Var("R0",Imm(64)), Int(65536,64)), Def(Tid(716, "%000002cc"), - Attrs([Attr("address","0x758"), Attr("insn","ldr x0, [x0, #0xfe0]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(4064,64)),LittleEndian(),64)), -Def(Tid(721, "%000002d1"), Attrs([Attr("address","0x75C"), -Attr("insn","mov w1, #0x5")]), Var("R1",Imm(64)), Int(5,64)), -Def(Tid(729, "%000002d9"), Attrs([Attr("address","0x760"), -Attr("insn","str w1, [x0]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("R0",Imm(64)),Extract(31,0,Var("R1",Imm(64))),LittleEndian(),32)), -Def(Tid(734, "%000002de"), Attrs([Attr("address","0x764"), -Attr("insn","mov w0, #0x0")]), Var("R0",Imm(64)), Int(0,64))]), -Jmps([Call(Tid(739, "%000002e3"), Attrs([Attr("address","0x768"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))]))])), -Sub(Tid(1_317, "@register_tm_clones"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x6C0")]), - "register_tm_clones", Args([Arg(Tid(1_365, "%00000555"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("register_tm_clones_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(552, "@register_tm_clones"), Attrs([Attr("address","0x6C0")]), - Phis([]), Defs([Def(Tid(555, "%0000022b"), Attrs([Attr("address","0x6C0"), -Attr("insn","adrp x0, #69632")]), Var("R0",Imm(64)), Int(69632,64)), -Def(Tid(561, "%00000231"), Attrs([Attr("address","0x6C4"), -Attr("insn","add x0, x0, #0x10")]), Var("R0",Imm(64)), -PLUS(Var("R0",Imm(64)),Int(16,64))), Def(Tid(566, "%00000236"), - Attrs([Attr("address","0x6C8"), Attr("insn","adrp x1, #69632")]), - Var("R1",Imm(64)), Int(69632,64)), Def(Tid(572, "%0000023c"), - Attrs([Attr("address","0x6CC"), Attr("insn","add x1, x1, #0x10")]), - Var("R1",Imm(64)), PLUS(Var("R1",Imm(64)),Int(16,64))), -Def(Tid(579, "%00000243"), Attrs([Attr("address","0x6D0"), -Attr("insn","sub x1, x1, x0")]), Var("R1",Imm(64)), -PLUS(PLUS(Var("R1",Imm(64)),NOT(Var("R0",Imm(64)))),Int(1,64))), -Def(Tid(585, "%00000249"), Attrs([Attr("address","0x6D4"), -Attr("insn","lsr x2, x1, #63")]), Var("R2",Imm(64)), -Concat(Int(0,63),Extract(63,63,Var("R1",Imm(64))))), -Def(Tid(592, "%00000250"), Attrs([Attr("address","0x6D8"), -Attr("insn","add x1, x2, x1, asr #3")]), Var("R1",Imm(64)), -PLUS(Var("R2",Imm(64)),ARSHIFT(Var("R1",Imm(64)),Int(3,3)))), -Def(Tid(598, "%00000256"), Attrs([Attr("address","0x6DC"), -Attr("insn","asr x1, x1, #1")]), Var("R1",Imm(64)), -SIGNED(64,Extract(63,1,Var("R1",Imm(64)))))]), -Jmps([Goto(Tid(604, "%0000025c"), Attrs([Attr("address","0x6E0"), -Attr("insn","cbz x1, #0x18")]), EQ(Var("R1",Imm(64)),Int(0,64)), -Direct(Tid(602, "%0000025a"))), Goto(Tid(1_346, "%00000542"), Attrs([]), - Int(1,1), Direct(Tid(800, "%00000320")))])), Blk(Tid(800, "%00000320"), - Attrs([Attr("address","0x6E4")]), Phis([]), Defs([Def(Tid(803, "%00000323"), - Attrs([Attr("address","0x6E4"), Attr("insn","adrp x2, #65536")]), - Var("R2",Imm(64)), Int(65536,64)), Def(Tid(810, "%0000032a"), - Attrs([Attr("address","0x6E8"), Attr("insn","ldr x2, [x2, #0xff8]")]), - Var("R2",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R2",Imm(64)),Int(4088,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(815, "%0000032f"), Attrs([Attr("address","0x6EC"), -Attr("insn","cbz x2, #0xc")]), EQ(Var("R2",Imm(64)),Int(0,64)), -Direct(Tid(602, "%0000025a"))), Goto(Tid(1_347, "%00000543"), Attrs([]), - Int(1,1), Direct(Tid(819, "%00000333")))])), Blk(Tid(602, "%0000025a"), - Attrs([Attr("address","0x6F8")]), Phis([]), Defs([]), -Jmps([Call(Tid(610, "%00000262"), Attrs([Attr("address","0x6F8"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))])), -Blk(Tid(819, "%00000333"), Attrs([Attr("address","0x6F0")]), Phis([]), -Defs([Def(Tid(823, "%00000337"), Attrs([Attr("address","0x6F0"), -Attr("insn","mov x16, x2")]), Var("R16",Imm(64)), Var("R2",Imm(64)))]), -Jmps([Call(Tid(828, "%0000033c"), Attrs([Attr("address","0x6F4"), -Attr("insn","br x16")]), Int(1,1), -(Indirect(Var("R16",Imm(64))),))]))]))]))) \ No newline at end of file diff --git a/src/test/correct/basic_assign_assign/gcc_pic/basic_assign_assign.bir b/src/test/correct/basic_assign_assign/gcc_pic/basic_assign_assign.bir deleted file mode 100644 index 6581e8417..000000000 --- a/src/test/correct/basic_assign_assign/gcc_pic/basic_assign_assign.bir +++ /dev/null @@ -1,228 +0,0 @@ -00000544: program -00000512: sub __cxa_finalize(__cxa_finalize_result) -00000545: __cxa_finalize_result :: out u32 = low:32[R0] - -0000031c: -00000414: R16 := 0x10000 -0000041b: R17 := mem[R16 + 0xFB0, el]:u64 -00000421: R16 := R16 + 0xFB0 -00000426: call R17 with noreturn - -00000513: sub __do_global_dtors_aux(__do_global_dtors_aux_result) -00000546: __do_global_dtors_aux_result :: out u32 = low:32[R0] - -00000266: -0000026a: #3 := R31 - 0x20 -00000270: mem := mem with [#3, el]:u64 <- R29 -00000276: mem := mem with [#3 + 8, el]:u64 <- R30 -0000027a: R31 := #3 -00000280: R29 := R31 -00000288: mem := mem with [R31 + 0x10, el]:u64 <- R19 -0000028d: R19 := 0x11000 -00000294: R0 := pad:64[mem[R19 + 0x10]] -0000029b: when 31:0[R0] <> 0 goto %00000299 -0000053a: goto %000002e5 - -000002e5: -000002e8: R0 := 0x10000 -000002ef: R0 := mem[R0 + 0xFD8, el]:u64 -000002f5: when R0 = 0 goto %000002f3 -0000053b: goto %0000030c - -0000030c: -0000030f: R0 := 0x11000 -00000316: R0 := mem[R0 + 8, el]:u64 -0000031b: R30 := 0x730 -0000031e: call @__cxa_finalize with return %000002f3 - -000002f3: -000002fb: R30 := 0x734 -000002fd: call @deregister_tm_clones with return %000002ff - -000002ff: -00000302: R0 := 1 -0000030a: mem := mem with [R19 + 0x10] <- 7:0[R0] -0000053c: goto %00000299 - -00000299: -000002a3: R19 := mem[R31 + 0x10, el]:u64 -000002aa: R29 := mem[R31, el]:u64 -000002af: R30 := mem[R31 + 8, el]:u64 -000002b3: R31 := R31 + 0x20 -000002b8: call R30 with noreturn - -00000517: sub __libc_start_main(__libc_start_main_main, __libc_start_main_arg2, __libc_start_main_arg3, __libc_start_main_auxv, __libc_start_main_result) -00000547: __libc_start_main_main :: in u64 = R0 -00000548: __libc_start_main_arg2 :: in u32 = low:32[R1] -00000549: __libc_start_main_arg3 :: in out u64 = R2 -0000054a: __libc_start_main_auxv :: in out u64 = R3 -0000054b: __libc_start_main_result :: out u32 = low:32[R0] - -000001bf: -000003fe: R16 := 0x10000 -00000405: R17 := mem[R16 + 0xFA8, el]:u64 -0000040b: R16 := R16 + 0xFA8 -00000410: call R17 with noreturn - -00000518: sub _fini(_fini_result) -0000054c: _fini_result :: out u32 = low:32[R0] - -0000001f: -00000025: #0 := R31 - 0x10 -0000002b: mem := mem with [#0, el]:u64 <- R29 -00000031: mem := mem with [#0 + 8, el]:u64 <- R30 -00000035: R31 := #0 -0000003b: R29 := R31 -00000042: R29 := mem[R31, el]:u64 -00000047: R30 := mem[R31 + 8, el]:u64 -0000004b: R31 := R31 + 0x10 -00000050: call R30 with noreturn - -00000519: sub _init(_init_result) -0000054d: _init_result :: out u32 = low:32[R0] - -0000046e: -00000474: #5 := R31 - 0x10 -0000047a: mem := mem with [#5, el]:u64 <- R29 -00000480: mem := mem with [#5 + 8, el]:u64 <- R30 -00000484: R31 := #5 -0000048a: R29 := R31 -0000048f: R30 := 0x5A8 -00000491: call @call_weak_fn with return %00000493 - -00000493: -00000498: R29 := mem[R31, el]:u64 -0000049d: R30 := mem[R31 + 8, el]:u64 -000004a1: R31 := R31 + 0x10 -000004a6: call R30 with noreturn - -0000051a: sub _start(_start_result) -0000054e: _start_result :: out u32 = low:32[R0] - -00000180: -00000185: R29 := 0 -0000018a: R30 := 0 -00000190: R5 := R0 -00000197: R1 := mem[R31, el]:u64 -0000019d: R2 := R31 + 8 -000001a3: R6 := R31 -000001a8: R0 := 0x10000 -000001af: R0 := mem[R0 + 0xFF0, el]:u64 -000001b4: R3 := 0 -000001b9: R4 := 0 -000001be: R30 := 0x670 -000001c1: call @__libc_start_main with return %000001c3 - -000001c3: -000001c6: R30 := 0x674 -000001c9: call @abort with return %0000053d - -0000053d: -0000053e: call @call_weak_fn with noreturn - -0000051d: sub abort() - - -000001c7: -00000440: R16 := 0x10000 -00000447: R17 := mem[R16 + 0xFC0, el]:u64 -0000044d: R16 := R16 + 0xFC0 -00000452: call R17 with noreturn - -0000051e: sub call_weak_fn(call_weak_fn_result) -0000054f: call_weak_fn_result :: out u32 = low:32[R0] - -000001cb: -000001ce: R0 := 0x10000 -000001d5: R0 := mem[R0 + 0xFE8, el]:u64 -000001db: when R0 = 0 goto %000001d9 -0000053f: goto %0000035c - -000001d9: -000001e1: call R30 with noreturn - -0000035c: -0000035f: goto @__gmon_start__ - -0000035d: -0000042a: R16 := 0x10000 -00000431: R17 := mem[R16 + 0xFB8, el]:u64 -00000437: R16 := R16 + 0xFB8 -0000043c: call R17 with noreturn - -00000520: sub deregister_tm_clones(deregister_tm_clones_result) -00000550: deregister_tm_clones_result :: out u32 = low:32[R0] - -000001e7: -000001ea: R0 := 0x11000 -000001f0: R0 := R0 + 0x10 -000001f5: R1 := 0x11000 -000001fb: R1 := R1 + 0x10 -00000201: #1 := ~R0 -00000206: #2 := R1 + ~R0 -0000020c: VF := extend:65[#2 + 1] <> extend:65[R1] + extend:65[#1] + 1 -00000212: CF := pad:65[#2 + 1] <> pad:65[R1] + pad:65[#1] + 1 -00000216: ZF := #2 + 1 = 0 -0000021a: NF := 63:63[#2 + 1] -00000220: when ZF goto %0000021e -00000540: goto %0000033e - -0000033e: -00000341: R1 := 0x10000 -00000348: R1 := mem[R1 + 0xFD0, el]:u64 -0000034d: when R1 = 0 goto %0000021e -00000541: goto %00000351 - -0000021e: -00000226: call R30 with noreturn - -00000351: -00000355: R16 := R1 -0000035a: call R16 with noreturn - -00000523: sub frame_dummy(frame_dummy_result) -00000551: frame_dummy_result :: out u32 = low:32[R0] - -000002be: -000002c0: call @register_tm_clones with noreturn - -00000524: sub main(main_argc, main_argv, main_result) -00000552: main_argc :: in u32 = low:32[R0] -00000553: main_argv :: in out u64 = R1 -00000554: main_result :: out u32 = low:32[R0] - -000002c2: -000002c5: R0 := 0x10000 -000002cc: R0 := mem[R0 + 0xFE0, el]:u64 -000002d1: R1 := 5 -000002d9: mem := mem with [R0, el]:u32 <- 31:0[R1] -000002de: R0 := 0 -000002e3: call R30 with noreturn - -00000525: sub register_tm_clones(register_tm_clones_result) -00000555: register_tm_clones_result :: out u32 = low:32[R0] - -00000228: -0000022b: R0 := 0x11000 -00000231: R0 := R0 + 0x10 -00000236: R1 := 0x11000 -0000023c: R1 := R1 + 0x10 -00000243: R1 := R1 + ~R0 + 1 -00000249: R2 := 0.63:63[R1] -00000250: R1 := R2 + (R1 ~>> 3) -00000256: R1 := extend:64[63:1[R1]] -0000025c: when R1 = 0 goto %0000025a -00000542: goto %00000320 - -00000320: -00000323: R2 := 0x10000 -0000032a: R2 := mem[R2 + 0xFF8, el]:u64 -0000032f: when R2 = 0 goto %0000025a -00000543: goto %00000333 - -0000025a: -00000262: call R30 with noreturn - -00000333: -00000337: R16 := R2 -0000033c: call R16 with noreturn diff --git a/src/test/correct/basic_assign_assign/gcc_pic/basic_assign_assign.expected b/src/test/correct/basic_assign_assign/gcc_pic/basic_assign_assign.expected index 246458b72..1821ace3c 100644 --- a/src/test/correct/basic_assign_assign/gcc_pic/basic_assign_assign.expected +++ b/src/test/correct/basic_assign_assign/gcc_pic/basic_assign_assign.expected @@ -67,7 +67,7 @@ implementation {:extern} guarantee_reflexive() assert ((memory_load32_le(mem, $x_addr) == memory_load32_le(mem, $x_addr)) || (memory_load32_le(mem, $x_addr) == 5bv32)); } -procedure main_1876(); +procedure main(); modifies Gamma_R0, Gamma_R1, Gamma_mem, R0, R1, mem; requires (memory_load32_le(mem, $x_addr) == 0bv32); free requires (memory_load64_le(mem, 69632bv64) == 0bv64); @@ -86,28 +86,28 @@ procedure main_1876(); free ensures (memory_load64_le(mem, 69616bv64) == 1876bv64); free ensures (memory_load64_le(mem, 69640bv64) == 69640bv64); -implementation main_1876() +implementation main() { - var Gamma_load18: bool; - var load18: bv64; + var $load$18: bv64; + var Gamma_$load$18: bool; var x_old: bv32; lmain: assume {:captureState "lmain"} true; R0, Gamma_R0 := 65536bv64, true; call rely(); - load18, Gamma_load18 := memory_load64_le(mem, bvadd64(R0, 4064bv64)), (gamma_load64(Gamma_mem, bvadd64(R0, 4064bv64)) || L(mem, bvadd64(R0, 4064bv64))); - R0, Gamma_R0 := load18, Gamma_load18; + $load$18, Gamma_$load$18 := memory_load64_le(mem, bvadd64(R0, 4064bv64)), (gamma_load64(Gamma_mem, bvadd64(R0, 4064bv64)) || L(mem, bvadd64(R0, 4064bv64))); + R0, Gamma_R0 := $load$18, Gamma_$load$18; R1, Gamma_R1 := 5bv64, true; call rely(); - x_old := memory_load32_le(mem, $x_addr); assert (L(mem, R0) ==> Gamma_R1); + x_old := memory_load32_le(mem, $x_addr); mem, Gamma_mem := memory_store32_le(mem, R0, R1[32:0]), gamma_store32(Gamma_mem, R0, Gamma_R1); assert ((memory_load32_le(mem, $x_addr) == x_old) || (memory_load32_le(mem, $x_addr) == 5bv32)); assume {:captureState "%000002d9"} true; R0, Gamma_R0 := 0bv64, true; - goto main_1876_basil_return; - main_1876_basil_return: - assume {:captureState "main_1876_basil_return"} true; + goto main_basil_return; + main_basil_return: + assume {:captureState "main_basil_return"} true; return; } diff --git a/src/test/correct/basic_assign_assign/gcc_pic/basic_assign_assign.gts b/src/test/correct/basic_assign_assign/gcc_pic/basic_assign_assign.gts deleted file mode 100644 index 3d09b726d..000000000 Binary files a/src/test/correct/basic_assign_assign/gcc_pic/basic_assign_assign.gts and /dev/null differ diff --git a/src/test/correct/basic_assign_assign/gcc_pic/basic_assign_assign.md5sum b/src/test/correct/basic_assign_assign/gcc_pic/basic_assign_assign.md5sum new file mode 100644 index 000000000..c9c2f87f8 --- /dev/null +++ b/src/test/correct/basic_assign_assign/gcc_pic/basic_assign_assign.md5sum @@ -0,0 +1,5 @@ +492379d6d0802469baa0f9dbe330b788 correct/basic_assign_assign/gcc_pic/a.out +7bc66266c5d04890770a0b991428522d correct/basic_assign_assign/gcc_pic/basic_assign_assign.adt +9142ce501cb318c6e656992234b04cde correct/basic_assign_assign/gcc_pic/basic_assign_assign.bir +f1052c3cc21d4119a9ac0bce9a0b0834 correct/basic_assign_assign/gcc_pic/basic_assign_assign.relf +f0d82f47de7107cc3682fc9e826ffe97 correct/basic_assign_assign/gcc_pic/basic_assign_assign.gts diff --git a/src/test/correct/basic_assign_assign/gcc_pic/basic_assign_assign.relf b/src/test/correct/basic_assign_assign/gcc_pic/basic_assign_assign.relf deleted file mode 100644 index 264d24569..000000000 --- a/src/test/correct/basic_assign_assign/gcc_pic/basic_assign_assign.relf +++ /dev/null @@ -1,122 +0,0 @@ - -Relocation section '.rela.dyn' at offset 0x460 contains 9 entries: - Offset Info Type Symbol's Value Symbol's Name + Addend -0000000000010d90 0000000000000403 R_AARCH64_RELATIVE 750 -0000000000010d98 0000000000000403 R_AARCH64_RELATIVE 700 -0000000000010fe0 0000000000000403 R_AARCH64_RELATIVE 11014 -0000000000010ff0 0000000000000403 R_AARCH64_RELATIVE 754 -0000000000011008 0000000000000403 R_AARCH64_RELATIVE 11008 -0000000000010fd0 0000000400000401 R_AARCH64_GLOB_DAT 0000000000000000 _ITM_deregisterTMCloneTable + 0 -0000000000010fd8 0000000500000401 R_AARCH64_GLOB_DAT 0000000000000000 __cxa_finalize@GLIBC_2.17 + 0 -0000000000010fe8 0000000600000401 R_AARCH64_GLOB_DAT 0000000000000000 __gmon_start__ + 0 -0000000000010ff8 0000000800000401 R_AARCH64_GLOB_DAT 0000000000000000 _ITM_registerTMCloneTable + 0 - -Relocation section '.rela.plt' at offset 0x538 contains 4 entries: - Offset Info Type Symbol's Value Symbol's Name + Addend -0000000000010fa8 0000000300000402 R_AARCH64_JUMP_SLOT 0000000000000000 __libc_start_main@GLIBC_2.34 + 0 -0000000000010fb0 0000000500000402 R_AARCH64_JUMP_SLOT 0000000000000000 __cxa_finalize@GLIBC_2.17 + 0 -0000000000010fb8 0000000600000402 R_AARCH64_JUMP_SLOT 0000000000000000 __gmon_start__ + 0 -0000000000010fc0 0000000700000402 R_AARCH64_JUMP_SLOT 0000000000000000 abort@GLIBC_2.17 + 0 - -Symbol table '.dynsym' contains 9 entries: - Num: Value Size Type Bind Vis Ndx Name - 0: 0000000000000000 0 NOTYPE LOCAL DEFAULT UND - 1: 0000000000000598 0 SECTION LOCAL DEFAULT 11 .init - 2: 0000000000011000 0 SECTION LOCAL DEFAULT 22 .data - 3: 0000000000000000 0 FUNC GLOBAL DEFAULT UND __libc_start_main@GLIBC_2.34 (2) - 4: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_deregisterTMCloneTable - 5: 0000000000000000 0 FUNC WEAK DEFAULT UND __cxa_finalize@GLIBC_2.17 (3) - 6: 0000000000000000 0 NOTYPE WEAK DEFAULT UND __gmon_start__ - 7: 0000000000000000 0 FUNC GLOBAL DEFAULT UND abort@GLIBC_2.17 (3) - 8: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_registerTMCloneTable - -Symbol table '.symtab' contains 88 entries: - Num: Value Size Type Bind Vis Ndx Name - 0: 0000000000000000 0 NOTYPE LOCAL DEFAULT UND - 1: 0000000000000238 0 SECTION LOCAL DEFAULT 1 .interp - 2: 0000000000000254 0 SECTION LOCAL DEFAULT 2 .note.gnu.build-id - 3: 0000000000000278 0 SECTION LOCAL DEFAULT 3 .note.ABI-tag - 4: 0000000000000298 0 SECTION LOCAL DEFAULT 4 .gnu.hash - 5: 00000000000002b8 0 SECTION LOCAL DEFAULT 5 .dynsym - 6: 0000000000000390 0 SECTION LOCAL DEFAULT 6 .dynstr - 7: 000000000000041e 0 SECTION LOCAL DEFAULT 7 .gnu.version - 8: 0000000000000430 0 SECTION LOCAL DEFAULT 8 .gnu.version_r - 9: 0000000000000460 0 SECTION LOCAL DEFAULT 9 .rela.dyn - 10: 0000000000000538 0 SECTION LOCAL DEFAULT 10 .rela.plt - 11: 0000000000000598 0 SECTION LOCAL DEFAULT 11 .init - 12: 00000000000005b0 0 SECTION LOCAL DEFAULT 12 .plt - 13: 0000000000000640 0 SECTION LOCAL DEFAULT 13 .text - 14: 000000000000076c 0 SECTION LOCAL DEFAULT 14 .fini - 15: 0000000000000780 0 SECTION LOCAL DEFAULT 15 .rodata - 16: 0000000000000784 0 SECTION LOCAL DEFAULT 16 .eh_frame_hdr - 17: 00000000000007c0 0 SECTION LOCAL DEFAULT 17 .eh_frame - 18: 0000000000010d90 0 SECTION LOCAL DEFAULT 18 .init_array - 19: 0000000000010d98 0 SECTION LOCAL DEFAULT 19 .fini_array - 20: 0000000000010da0 0 SECTION LOCAL DEFAULT 20 .dynamic - 21: 0000000000010f90 0 SECTION LOCAL DEFAULT 21 .got - 22: 0000000000011000 0 SECTION LOCAL DEFAULT 22 .data - 23: 0000000000011010 0 SECTION LOCAL DEFAULT 23 .bss - 24: 0000000000000000 0 SECTION LOCAL DEFAULT 24 .comment - 25: 0000000000000000 0 FILE LOCAL DEFAULT ABS Scrt1.o - 26: 0000000000000278 0 NOTYPE LOCAL DEFAULT 3 $d - 27: 0000000000000278 32 OBJECT LOCAL DEFAULT 3 __abi_tag - 28: 0000000000000640 0 NOTYPE LOCAL DEFAULT 13 $x - 29: 00000000000007d4 0 NOTYPE LOCAL DEFAULT 17 $d - 30: 0000000000000780 0 NOTYPE LOCAL DEFAULT 15 $d - 31: 0000000000000000 0 FILE LOCAL DEFAULT ABS crti.o - 32: 0000000000000674 0 NOTYPE LOCAL DEFAULT 13 $x - 33: 0000000000000674 20 FUNC LOCAL DEFAULT 13 call_weak_fn - 34: 0000000000000598 0 NOTYPE LOCAL DEFAULT 11 $x - 35: 000000000000076c 0 NOTYPE LOCAL DEFAULT 14 $x - 36: 0000000000000000 0 FILE LOCAL DEFAULT ABS crtn.o - 37: 00000000000005a8 0 NOTYPE LOCAL DEFAULT 11 $x - 38: 0000000000000778 0 NOTYPE LOCAL DEFAULT 14 $x - 39: 0000000000000000 0 FILE LOCAL DEFAULT ABS crtstuff.c - 40: 0000000000000690 0 NOTYPE LOCAL DEFAULT 13 $x - 41: 0000000000000690 0 FUNC LOCAL DEFAULT 13 deregister_tm_clones - 42: 00000000000006c0 0 FUNC LOCAL DEFAULT 13 register_tm_clones - 43: 0000000000011008 0 NOTYPE LOCAL DEFAULT 22 $d - 44: 0000000000000700 0 FUNC LOCAL DEFAULT 13 __do_global_dtors_aux - 45: 0000000000011010 1 OBJECT LOCAL DEFAULT 23 completed.0 - 46: 0000000000010d98 0 NOTYPE LOCAL DEFAULT 19 $d - 47: 0000000000010d98 0 OBJECT LOCAL DEFAULT 19 __do_global_dtors_aux_fini_array_entry - 48: 0000000000000750 0 FUNC LOCAL DEFAULT 13 frame_dummy - 49: 0000000000010d90 0 NOTYPE LOCAL DEFAULT 18 $d - 50: 0000000000010d90 0 OBJECT LOCAL DEFAULT 18 __frame_dummy_init_array_entry - 51: 00000000000007e8 0 NOTYPE LOCAL DEFAULT 17 $d - 52: 0000000000011010 0 NOTYPE LOCAL DEFAULT 23 $d - 53: 0000000000000000 0 FILE LOCAL DEFAULT ABS basic_assign_assign.c - 54: 0000000000011014 0 NOTYPE LOCAL DEFAULT 23 $d - 55: 0000000000000754 0 NOTYPE LOCAL DEFAULT 13 $x - 56: 0000000000000848 0 NOTYPE LOCAL DEFAULT 17 $d - 57: 0000000000000000 0 FILE LOCAL DEFAULT ABS crtstuff.c - 58: 000000000000085c 0 NOTYPE LOCAL DEFAULT 17 $d - 59: 000000000000085c 0 OBJECT LOCAL DEFAULT 17 __FRAME_END__ - 60: 0000000000000000 0 FILE LOCAL DEFAULT ABS - 61: 0000000000010da0 0 OBJECT LOCAL DEFAULT ABS _DYNAMIC - 62: 0000000000000784 0 NOTYPE LOCAL DEFAULT 16 __GNU_EH_FRAME_HDR - 63: 0000000000010fc8 0 OBJECT LOCAL DEFAULT ABS _GLOBAL_OFFSET_TABLE_ - 64: 00000000000005b0 0 NOTYPE LOCAL DEFAULT 12 $x - 65: 0000000000000000 0 FUNC GLOBAL DEFAULT UND __libc_start_main@GLIBC_2.34 - 66: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_deregisterTMCloneTable - 67: 0000000000011000 0 NOTYPE WEAK DEFAULT 22 data_start - 68: 0000000000011010 0 NOTYPE GLOBAL DEFAULT 23 __bss_start__ - 69: 0000000000000000 0 FUNC WEAK DEFAULT UND __cxa_finalize@GLIBC_2.17 - 70: 0000000000011018 0 NOTYPE GLOBAL DEFAULT 23 _bss_end__ - 71: 0000000000011010 0 NOTYPE GLOBAL DEFAULT 22 _edata - 72: 0000000000011014 4 OBJECT GLOBAL DEFAULT 23 x - 73: 000000000000076c 0 FUNC GLOBAL HIDDEN 14 _fini - 74: 0000000000011018 0 NOTYPE GLOBAL DEFAULT 23 __bss_end__ - 75: 0000000000011000 0 NOTYPE GLOBAL DEFAULT 22 __data_start - 76: 0000000000000000 0 NOTYPE WEAK DEFAULT UND __gmon_start__ - 77: 0000000000011008 0 OBJECT GLOBAL HIDDEN 22 __dso_handle - 78: 0000000000000000 0 FUNC GLOBAL DEFAULT UND abort@GLIBC_2.17 - 79: 0000000000000780 4 OBJECT GLOBAL DEFAULT 15 _IO_stdin_used - 80: 0000000000011018 0 NOTYPE GLOBAL DEFAULT 23 _end - 81: 0000000000000640 52 FUNC GLOBAL DEFAULT 13 _start - 82: 0000000000011018 0 NOTYPE GLOBAL DEFAULT 23 __end__ - 83: 0000000000011010 0 NOTYPE GLOBAL DEFAULT 23 __bss_start - 84: 0000000000000754 24 FUNC GLOBAL DEFAULT 13 main - 85: 0000000000011010 0 OBJECT GLOBAL HIDDEN 22 __TMC_END__ - 86: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_registerTMCloneTable - 87: 0000000000000598 0 FUNC GLOBAL HIDDEN 11 _init diff --git a/src/test/correct/basic_assign_assign/gcc_pic/basic_assign_assign_gtirb.expected b/src/test/correct/basic_assign_assign/gcc_pic/basic_assign_assign_gtirb.expected index 45a58c11d..9e40dc08f 100644 --- a/src/test/correct/basic_assign_assign/gcc_pic/basic_assign_assign_gtirb.expected +++ b/src/test/correct/basic_assign_assign/gcc_pic/basic_assign_assign_gtirb.expected @@ -67,7 +67,7 @@ implementation {:extern} guarantee_reflexive() assert ((memory_load32_le(mem, $x_addr) == memory_load32_le(mem, $x_addr)) || (memory_load32_le(mem, $x_addr) == 5bv32)); } -procedure main_1876(); +procedure main(); modifies Gamma_R0, Gamma_R1, Gamma_mem, R0, R1, mem; requires (memory_load32_le(mem, $x_addr) == 0bv32); free requires (memory_load64_le(mem, 69632bv64) == 0bv64); @@ -86,28 +86,28 @@ procedure main_1876(); free ensures (memory_load64_le(mem, 69616bv64) == 1876bv64); free ensures (memory_load64_le(mem, 69640bv64) == 69640bv64); -implementation main_1876() +implementation main() { - var Gamma_load2: bool; - var load2: bv64; + var $load2: bv64; + var Gamma_$load2: bool; var x_old: bv32; - main_1876__0__2duqIb9aRtKZChm_n6bdGQ: - assume {:captureState "main_1876__0__2duqIb9aRtKZChm_n6bdGQ"} true; + $main$__0__$2duqIb9aRtKZChm_n6bdGQ: + assume {:captureState "$main$__0__$2duqIb9aRtKZChm_n6bdGQ"} true; R0, Gamma_R0 := 65536bv64, true; call rely(); - load2, Gamma_load2 := memory_load64_le(mem, bvadd64(R0, 4064bv64)), (gamma_load64(Gamma_mem, bvadd64(R0, 4064bv64)) || L(mem, bvadd64(R0, 4064bv64))); - R0, Gamma_R0 := load2, Gamma_load2; + $load2, Gamma_$load2 := memory_load64_le(mem, bvadd64(R0, 4064bv64)), (gamma_load64(Gamma_mem, bvadd64(R0, 4064bv64)) || L(mem, bvadd64(R0, 4064bv64))); + R0, Gamma_R0 := $load2, Gamma_$load2; R1, Gamma_R1 := 5bv64, true; call rely(); - x_old := memory_load32_le(mem, $x_addr); assert (L(mem, R0) ==> Gamma_R1); + x_old := memory_load32_le(mem, $x_addr); mem, Gamma_mem := memory_store32_le(mem, R0, R1[32:0]), gamma_store32(Gamma_mem, R0, Gamma_R1); assert ((memory_load32_le(mem, $x_addr) == x_old) || (memory_load32_le(mem, $x_addr) == 5bv32)); - assume {:captureState "1888_0"} true; + assume {:captureState "1888$0"} true; R0, Gamma_R0 := 0bv64, true; - goto main_1876_basil_return; - main_1876_basil_return: - assume {:captureState "main_1876_basil_return"} true; + goto main_basil_return; + main_basil_return: + assume {:captureState "main_basil_return"} true; return; } diff --git a/src/test/correct/basic_assign_increment/clang/basic_assign_increment.adt b/src/test/correct/basic_assign_increment/clang/basic_assign_increment.adt deleted file mode 100644 index 6d429611e..000000000 --- a/src/test/correct/basic_assign_increment/clang/basic_assign_increment.adt +++ /dev/null @@ -1,496 +0,0 @@ -Project(Attrs([Attr("filename","\"clang/basic_assign_increment.out\""), -Attr("image-specification","(declare abi (name str))\n(declare arch (name str))\n(declare base-address (addr int))\n(declare bias (off int))\n(declare bits (size int))\n(declare code-region (addr int) (size int) (off int))\n(declare code-start (addr int))\n(declare entry-point (addr int))\n(declare external-reference (addr int) (name str))\n(declare format (name str))\n(declare is-executable (flag bool))\n(declare is-little-endian (flag bool))\n(declare llvm:base-address (addr int))\n(declare llvm:code-entry (name str) (off int) (size int))\n(declare llvm:coff-import-library (name str))\n(declare llvm:coff-virtual-section-header (name str) (addr int) (size int))\n(declare llvm:elf-program-header (name str) (off int) (size int))\n(declare llvm:elf-program-header-flags (name str) (ld bool) (r bool) \n (w bool) (x bool))\n(declare llvm:elf-virtual-program-header (name str) (addr int) (size int))\n(declare llvm:entry-point (addr int))\n(declare llvm:macho-symbol (name str) (value int))\n(declare llvm:name-reference (at int) (name str))\n(declare llvm:relocation (at int) (addr int))\n(declare llvm:section-entry (name str) (addr int) (size int) (off int))\n(declare llvm:section-flags (name str) (r bool) (w bool) (x bool))\n(declare llvm:segment-command (name str) (off int) (size int))\n(declare llvm:segment-command-flags (name str) (r bool) (w bool) (x bool))\n(declare llvm:symbol-entry (name str) (addr int) (size int) (off int)\n (value int))\n(declare llvm:virtual-segment-command (name str) (addr int) (size int))\n(declare mapped (addr int) (size int) (off int))\n(declare named-region (addr int) (size int) (name str))\n(declare named-symbol (addr int) (name str))\n(declare require (name str))\n(declare section (addr int) (size int))\n(declare segment (addr int) (size int) (r bool) (w bool) (x bool))\n(declare subarch (name str))\n(declare symbol-chunk (addr int) (size int) (root int))\n(declare symbol-value (addr int) (value int))\n(declare system (name str))\n(declare vendor (name str))\n\n(abi unknown)\n(arch aarch64)\n(base-address 0)\n(bias 0)\n(bits 64)\n(code-region 1836 20 1836)\n(code-region 1536 300 1536)\n(code-region 1440 96 1440)\n(code-region 1408 24 1408)\n(code-start 1588)\n(code-start 1536)\n(code-start 1812)\n(entry-point 1536)\n(external-reference 69568 _ITM_deregisterTMCloneTable)\n(external-reference 69576 __cxa_finalize)\n(external-reference 69584 __gmon_start__)\n(external-reference 69600 _ITM_registerTMCloneTable)\n(external-reference 69632 __libc_start_main)\n(external-reference 69640 __cxa_finalize)\n(external-reference 69648 __gmon_start__)\n(external-reference 69656 abort)\n(format elf)\n(is-executable true)\n(is-little-endian true)\n(llvm:base-address 0)\n(llvm:code-entry abort 0 0)\n(llvm:code-entry __cxa_finalize 0 0)\n(llvm:code-entry __libc_start_main 0 0)\n(llvm:code-entry _init 1408 0)\n(llvm:code-entry main 1812 24)\n(llvm:code-entry _start 1536 52)\n(llvm:code-entry abort@GLIBC_2.17 0 0)\n(llvm:code-entry _fini 1836 0)\n(llvm:code-entry __cxa_finalize@GLIBC_2.17 0 0)\n(llvm:code-entry __libc_start_main@GLIBC_2.34 0 0)\n(llvm:code-entry frame_dummy 1808 0)\n(llvm:code-entry __do_global_dtors_aux 1728 0)\n(llvm:code-entry register_tm_clones 1664 0)\n(llvm:code-entry deregister_tm_clones 1616 0)\n(llvm:code-entry call_weak_fn 1588 20)\n(llvm:code-entry .fini 1836 20)\n(llvm:code-entry .text 1536 300)\n(llvm:code-entry .plt 1440 96)\n(llvm:code-entry .init 1408 24)\n(llvm:elf-program-header 08 3528 568)\n(llvm:elf-program-header 07 0 0)\n(llvm:elf-program-header 06 1860 60)\n(llvm:elf-program-header 05 596 68)\n(llvm:elf-program-header 04 3544 480)\n(llvm:elf-program-header 03 3528 616)\n(llvm:elf-program-header 02 0 2100)\n(llvm:elf-program-header 01 568 27)\n(llvm:elf-program-header 00 64 504)\n(llvm:elf-program-header-flags 08 false true false false)\n(llvm:elf-program-header-flags 07 false true true false)\n(llvm:elf-program-header-flags 06 false true false false)\n(llvm:elf-program-header-flags 05 false true false false)\n(llvm:elf-program-header-flags 04 false true true false)\n(llvm:elf-program-header-flags 03 true true true false)\n(llvm:elf-program-header-flags 02 true true false true)\n(llvm:elf-program-header-flags 01 false true false false)\n(llvm:elf-program-header-flags 00 false true false false)\n(llvm:elf-virtual-program-header 08 69064 568)\n(llvm:elf-virtual-program-header 07 0 0)\n(llvm:elf-virtual-program-header 06 1860 60)\n(llvm:elf-virtual-program-header 05 596 68)\n(llvm:elf-virtual-program-header 04 69080 480)\n(llvm:elf-virtual-program-header 03 69064 624)\n(llvm:elf-virtual-program-header 02 0 2100)\n(llvm:elf-virtual-program-header 01 568 27)\n(llvm:elf-virtual-program-header 00 64 504)\n(llvm:entry-point 1536)\n(llvm:name-reference 69656 abort)\n(llvm:name-reference 69648 __gmon_start__)\n(llvm:name-reference 69640 __cxa_finalize)\n(llvm:name-reference 69632 __libc_start_main)\n(llvm:name-reference 69600 _ITM_registerTMCloneTable)\n(llvm:name-reference 69584 __gmon_start__)\n(llvm:name-reference 69576 __cxa_finalize)\n(llvm:name-reference 69568 _ITM_deregisterTMCloneTable)\n(llvm:section-entry .shstrtab 0 259 6954)\n(llvm:section-entry .strtab 0 578 6376)\n(llvm:section-entry .symtab 0 2160 4216)\n(llvm:section-entry .comment 0 71 4144)\n(llvm:section-entry .bss 69680 8 4144)\n(llvm:section-entry .data 69664 16 4128)\n(llvm:section-entry .got.plt 69608 56 4072)\n(llvm:section-entry .got 69560 48 4024)\n(llvm:section-entry .dynamic 69080 480 3544)\n(llvm:section-entry .fini_array 69072 8 3536)\n(llvm:section-entry .init_array 69064 8 3528)\n(llvm:section-entry .eh_frame 1920 180 1920)\n(llvm:section-entry .eh_frame_hdr 1860 60 1860)\n(llvm:section-entry .rodata 1856 4 1856)\n(llvm:section-entry .fini 1836 20 1836)\n(llvm:section-entry .text 1536 300 1536)\n(llvm:section-entry .plt 1440 96 1440)\n(llvm:section-entry .init 1408 24 1408)\n(llvm:section-entry .rela.plt 1312 96 1312)\n(llvm:section-entry .rela.dyn 1120 192 1120)\n(llvm:section-entry .gnu.version_r 1072 48 1072)\n(llvm:section-entry .gnu.version 1054 18 1054)\n(llvm:section-entry .dynstr 912 141 912)\n(llvm:section-entry .dynsym 696 216 696)\n(llvm:section-entry .gnu.hash 664 28 664)\n(llvm:section-entry .note.ABI-tag 632 32 632)\n(llvm:section-entry .note.gnu.build-id 596 36 596)\n(llvm:section-entry .interp 568 27 568)\n(llvm:section-flags .shstrtab true false false)\n(llvm:section-flags .strtab true false false)\n(llvm:section-flags .symtab true false false)\n(llvm:section-flags .comment true false false)\n(llvm:section-flags .bss true true false)\n(llvm:section-flags .data true true false)\n(llvm:section-flags .got.plt true true false)\n(llvm:section-flags .got true true false)\n(llvm:section-flags .dynamic true true false)\n(llvm:section-flags .fini_array true true false)\n(llvm:section-flags .init_array true true false)\n(llvm:section-flags .eh_frame true false false)\n(llvm:section-flags .eh_frame_hdr true false false)\n(llvm:section-flags .rodata true false false)\n(llvm:section-flags .fini true false true)\n(llvm:section-flags .text true false true)\n(llvm:section-flags .plt true false true)\n(llvm:section-flags .init true false true)\n(llvm:section-flags .rela.plt true false false)\n(llvm:section-flags .rela.dyn true false false)\n(llvm:section-flags .gnu.version_r true false false)\n(llvm:section-flags .gnu.version true false false)\n(llvm:section-flags .dynstr true false false)\n(llvm:section-flags .dynsym true false false)\n(llvm:section-flags .gnu.hash true false false)\n(llvm:section-flags .note.ABI-tag true false false)\n(llvm:section-flags .note.gnu.build-id true false false)\n(llvm:section-flags .interp true false false)\n(llvm:symbol-entry abort 0 0 0 0)\n(llvm:symbol-entry __cxa_finalize 0 0 0 0)\n(llvm:symbol-entry __libc_start_main 0 0 0 0)\n(llvm:symbol-entry _init 1408 0 1408 1408)\n(llvm:symbol-entry main 1812 24 1812 1812)\n(llvm:symbol-entry _start 1536 52 1536 1536)\n(llvm:symbol-entry abort@GLIBC_2.17 0 0 0 0)\n(llvm:symbol-entry _fini 1836 0 1836 1836)\n(llvm:symbol-entry __cxa_finalize@GLIBC_2.17 0 0 0 0)\n(llvm:symbol-entry __libc_start_main@GLIBC_2.34 0 0 0 0)\n(llvm:symbol-entry frame_dummy 1808 0 1808 1808)\n(llvm:symbol-entry __do_global_dtors_aux 1728 0 1728 1728)\n(llvm:symbol-entry register_tm_clones 1664 0 1664 1664)\n(llvm:symbol-entry deregister_tm_clones 1616 0 1616 1616)\n(llvm:symbol-entry call_weak_fn 1588 20 1588 1588)\n(mapped 0 2100 0)\n(mapped 69064 616 3528)\n(named-region 0 2100 02)\n(named-region 69064 624 03)\n(named-region 568 27 .interp)\n(named-region 596 36 .note.gnu.build-id)\n(named-region 632 32 .note.ABI-tag)\n(named-region 664 28 .gnu.hash)\n(named-region 696 216 .dynsym)\n(named-region 912 141 .dynstr)\n(named-region 1054 18 .gnu.version)\n(named-region 1072 48 .gnu.version_r)\n(named-region 1120 192 .rela.dyn)\n(named-region 1312 96 .rela.plt)\n(named-region 1408 24 .init)\n(named-region 1440 96 .plt)\n(named-region 1536 300 .text)\n(named-region 1836 20 .fini)\n(named-region 1856 4 .rodata)\n(named-region 1860 60 .eh_frame_hdr)\n(named-region 1920 180 .eh_frame)\n(named-region 69064 8 .init_array)\n(named-region 69072 8 .fini_array)\n(named-region 69080 480 .dynamic)\n(named-region 69560 48 .got)\n(named-region 69608 56 .got.plt)\n(named-region 69664 16 .data)\n(named-region 69680 8 .bss)\n(named-region 0 71 .comment)\n(named-region 0 2160 .symtab)\n(named-region 0 578 .strtab)\n(named-region 0 259 .shstrtab)\n(named-symbol 1588 call_weak_fn)\n(named-symbol 1616 deregister_tm_clones)\n(named-symbol 1664 register_tm_clones)\n(named-symbol 1728 __do_global_dtors_aux)\n(named-symbol 1808 frame_dummy)\n(named-symbol 0 __libc_start_main@GLIBC_2.34)\n(named-symbol 0 __cxa_finalize@GLIBC_2.17)\n(named-symbol 1836 _fini)\n(named-symbol 0 abort@GLIBC_2.17)\n(named-symbol 1536 _start)\n(named-symbol 1812 main)\n(named-symbol 1408 _init)\n(named-symbol 0 __libc_start_main)\n(named-symbol 0 __cxa_finalize)\n(named-symbol 0 abort)\n(require libc.so.6)\n(section 568 27)\n(section 596 36)\n(section 632 32)\n(section 664 28)\n(section 696 216)\n(section 912 141)\n(section 1054 18)\n(section 1072 48)\n(section 1120 192)\n(section 1312 96)\n(section 1408 24)\n(section 1440 96)\n(section 1536 300)\n(section 1836 20)\n(section 1856 4)\n(section 1860 60)\n(section 1920 180)\n(section 69064 8)\n(section 69072 8)\n(section 69080 480)\n(section 69560 48)\n(section 69608 56)\n(section 69664 16)\n(section 69680 8)\n(section 0 71)\n(section 0 2160)\n(section 0 578)\n(section 0 259)\n(segment 0 2100 true false true)\n(segment 69064 624 true true false)\n(subarch v8)\n(symbol-chunk 1588 20 1588)\n(symbol-chunk 1536 52 1536)\n(symbol-chunk 1812 24 1812)\n(symbol-value 1588 1588)\n(symbol-value 1616 1616)\n(symbol-value 1664 1664)\n(symbol-value 1728 1728)\n(symbol-value 1808 1808)\n(symbol-value 1836 1836)\n(symbol-value 1536 1536)\n(symbol-value 1812 1812)\n(symbol-value 1408 1408)\n(symbol-value 0 0)\n(system \"\")\n(vendor \"\")\n"), -Attr("abi-name","\"aarch64-linux-gnu-elf\"")]), -Sections([Section(".shstrtab", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x00\x06\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x30\x1c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x38\x00\x09\x00\x40\x00\x1d\x00\x1c\x00\x06\x00\x00\x00\x04\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x04\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x34\x08\x00\x00\x00\x00\x00\x00\x34\x08\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x01\x00\x00\x00\x06\x00\x00\x00\xc8\x0d\x00\x00\x00\x00\x00\x00\xc8\x0d\x01\x00\x00\x00\x00\x00\xc8\x0d\x01"), -Section(".strtab", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x00\x06\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x30\x1c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x38\x00\x09\x00\x40\x00\x1d\x00\x1c\x00\x06\x00\x00\x00\x04\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x04\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x34\x08\x00\x00\x00\x00\x00\x00\x34\x08\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x01\x00\x00\x00\x06\x00\x00\x00\xc8\x0d\x00\x00\x00\x00\x00\x00\xc8\x0d\x01\x00\x00\x00\x00\x00\xc8\x0d\x01\x00\x00\x00\x00\x00\x68\x02\x00\x00\x00\x00\x00\x00\x70\x02\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x02\x00\x00\x00\x06\x00\x00\x00\xd8\x0d\x00\x00\x00\x00\x00\x00\xd8\x0d\x01\x00\x00\x00\x00\x00\xd8\x0d\x01\x00\x00\x00\x00\x00\xe0\x01\x00\x00\x00\x00\x00\x00\xe0\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x04\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x50\xe5\x74\x64\x04\x00\x00\x00\x44\x07\x00\x00\x00\x00\x00\x00\x44\x07\x00\x00\x00\x00\x00\x00\x44\x07\x00\x00\x00\x00\x00\x00\x3c\x00\x00\x00\x00\x00\x00\x00\x3c\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x51\xe5\x74\x64\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x52\xe5\x74\x64\x04\x00\x00\x00\xc8\x0d\x00\x00\x00\x00\x00\x00\xc8\x0d\x01\x00\x00\x00\x00\x00\xc8\x0d\x01\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x2f\x6c\x69\x62\x2f\x6c\x64\x2d\x6c\x69"), -Section(".comment", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x00\x06\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x30\x1c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x38\x00\x09\x00\x40\x00\x1d\x00\x1c\x00\x06\x00\x00\x00\x04\x00\x00"), -Section(".interp", 0x238, "\x2f\x6c\x69\x62\x2f\x6c\x64\x2d\x6c\x69\x6e\x75\x78\x2d\x61\x61\x72\x63\x68\x36\x34\x2e\x73\x6f\x2e\x31\x00"), -Section(".note.gnu.build-id", 0x254, "\x04\x00\x00\x00\x14\x00\x00\x00\x03\x00\x00\x00\x47\x4e\x55\x00\xd9\xfd\x44\x10\xae\xf6\xa1\xe7\x27\xb5\x90\x34\x2f\x43\xb1\xbc\xb1\x87\xe8\x41"), -Section(".note.ABI-tag", 0x278, "\x04\x00\x00\x00\x10\x00\x00\x00\x01\x00\x00\x00\x47\x4e\x55\x00\x00\x00\x00\x00\x03\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00"), -Section(".gnu.hash", 0x298, "\x01\x00\x00\x00\x01\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".dynsym", 0x2B8, "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x0b\x00\x80\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x17\x00\x20\x10\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x48\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x22\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x22\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x73\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".dynstr", 0x390, "\x00\x5f\x5f\x63\x78\x61\x5f\x66\x69\x6e\x61\x6c\x69\x7a\x65\x00\x5f\x5f\x6c\x69\x62\x63\x5f\x73\x74\x61\x72\x74\x5f\x6d\x61\x69\x6e\x00\x61\x62\x6f\x72\x74\x00\x6c\x69\x62\x63\x2e\x73\x6f\x2e\x36\x00\x47\x4c\x49\x42\x43\x5f\x32\x2e\x31\x37\x00\x47\x4c\x49\x42\x43\x5f\x32\x2e\x33\x34\x00\x5f\x49\x54\x4d\x5f\x64\x65\x72\x65\x67\x69\x73\x74\x65\x72\x54\x4d\x43\x6c\x6f\x6e\x65\x54\x61\x62\x6c\x65\x00\x5f\x5f\x67\x6d\x6f\x6e\x5f\x73\x74\x61\x72\x74\x5f\x5f\x00\x5f\x49\x54\x4d\x5f\x72\x65\x67\x69\x73\x74\x65\x72\x54\x4d\x43\x6c\x6f\x6e\x65\x54\x61\x62\x6c\x65\x00"), -Section(".gnu.version", 0x41E, "\x00\x00\x00\x00\x00\x00\x02\x00\x01\x00\x03\x00\x01\x00\x03\x00\x01\x00"), -Section(".gnu.version_r", 0x430, "\x01\x00\x02\x00\x28\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x97\x91\x96\x06\x00\x00\x03\x00\x32\x00\x00\x00\x10\x00\x00\x00\xb4\x91\x96\x06\x00\x00\x02\x00\x3d\x00\x00\x00\x00\x00\x00\x00"), -Section(".rela.dyn", 0x460, "\xc8\x0d\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x10\x07\x00\x00\x00\x00\x00\x00\xd0\x0d\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\xc0\x06\x00\x00\x00\x00\x00\x00\xd8\x0f\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x14\x07\x00\x00\x00\x00\x00\x00\x28\x10\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x28\x10\x01\x00\x00\x00\x00\x00\xc0\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xc8\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xd0\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe0\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".rela.plt", 0x520, "\x00\x10\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x08\x10\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x10\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x18\x10\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".init", 0x580, "\x1f\x20\x03\xd5\xfd\x7b\xbf\xa9\xfd\x03\x00\x91\x2a\x00\x00\x94\xfd\x7b\xc1\xa8\xc0\x03\x5f\xd6"), -Section(".plt", 0x5A0, "\xf0\x7b\xbf\xa9\x90\x00\x00\x90\x11\xfe\x47\xf9\x10\xe2\x3f\x91\x20\x02\x1f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x90\x00\x00\xb0\x11\x02\x40\xf9\x10\x02\x00\x91\x20\x02\x1f\xd6\x90\x00\x00\xb0\x11\x06\x40\xf9\x10\x22\x00\x91\x20\x02\x1f\xd6\x90\x00\x00\xb0\x11\x0a\x40\xf9\x10\x42\x00\x91\x20\x02\x1f\xd6\x90\x00\x00\xb0\x11\x0e\x40\xf9\x10\x62\x00\x91\x20\x02\x1f\xd6"), -Section(".text", 0x600, "\x1f\x20\x03\xd5\x1d\x00\x80\xd2\x1e\x00\x80\xd2\xe5\x03\x00\xaa\xe1\x03\x40\xf9\xe2\x23\x00\x91\xe6\x03\x00\x91\x80\x00\x00\x90\x00\xec\x47\xf9\x03\x00\x80\xd2\x04\x00\x80\xd2\xe5\xff\xff\x97\xf0\xff\xff\x97\x80\x00\x00\x90\x00\xe8\x47\xf9\x40\x00\x00\xb4\xe8\xff\xff\x17\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x80\x00\x00\xb0\x00\xc0\x00\x91\x81\x00\x00\xb0\x21\xc0\x00\x91\x3f\x00\x00\xeb\xc0\x00\x00\x54\x81\x00\x00\x90\x21\xe0\x47\xf9\x61\x00\x00\xb4\xf0\x03\x01\xaa\x00\x02\x1f\xd6\xc0\x03\x5f\xd6\x80\x00\x00\xb0\x00\xc0\x00\x91\x81\x00\x00\xb0\x21\xc0\x00\x91\x21\x00\x00\xcb\x22\xfc\x7f\xd3\x41\x0c\x81\x8b\x21\xfc\x41\x93\xc1\x00\x00\xb4\x82\x00\x00\x90\x42\xf0\x47\xf9\x62\x00\x00\xb4\xf0\x03\x02\xaa\x00\x02\x1f\xd6\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\xfd\x7b\xbe\xa9\xfd\x03\x00\x91\xf3\x0b\x00\xf9\x93\x00\x00\xb0\x60\xc2\x40\x39\x40\x01\x00\x35\x80\x00\x00\x90\x00\xe4\x47\xf9\x80\x00\x00\xb4\x80\x00\x00\xb0\x00\x14\x40\xf9\xb9\xff\xff\x97\xd8\xff\xff\x97\x20\x00\x80\x52\x60\xc2\x00\x39\xf3\x0b\x40\xf9\xfd\x7b\xc2\xa8\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\xdc\xff\xff\x17\x89\x00\x00\xb0\x28\x35\x40\xb9\x08\x05\x00\x11\x28\x35\x00\xb9\xe0\x03\x1f\x2a\xc0\x03\x5f\xd6"), -Section(".fini", 0x72C, "\x1f\x20\x03\xd5\xfd\x7b\xbf\xa9\xfd\x03\x00\x91\xfd\x7b\xc1\xa8\xc0\x03\x5f\xd6"), -Section(".rodata", 0x740, "\x01\x00\x02\x00"), -Section(".eh_frame_hdr", 0x744, "\x01\x1b\x03\x3b\x38\x00\x00\x00\x06\x00\x00\x00\xbc\xfe\xff\xff\x50\x00\x00\x00\x0c\xff\xff\xff\x64\x00\x00\x00\x3c\xff\xff\xff\x78\x00\x00\x00\x7c\xff\xff\xff\x8c\x00\x00\x00\xcc\xff\xff\xff\xb0\x00\x00\x00\xd0\xff\xff\xff\xd8\x00\x00\x00"), -Section(".eh_frame", 0x780, "\x10\x00\x00\x00\x00\x00\x00\x00\x01\x7a\x52\x00\x04\x78\x1e\x01\x1b\x0c\x1f\x00\x10\x00\x00\x00\x18\x00\x00\x00\x64\xfe\xff\xff\x34\x00\x00\x00\x00\x41\x07\x1e\x10\x00\x00\x00\x2c\x00\x00\x00\xa0\xfe\xff\xff\x30\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x40\x00\x00\x00\xbc\xfe\xff\xff\x3c\x00\x00\x00\x00\x00\x00\x00\x20\x00\x00\x00\x54\x00\x00\x00\xe8\xfe\xff\xff\x48\x00\x00\x00\x00\x41\x0e\x20\x9d\x04\x9e\x03\x42\x93\x02\x4e\xde\xdd\xd3\x0e\x00\x00\x00\x00\x10\x00\x00\x00\x78\x00\x00\x00\x14\xff\xff\xff\x04\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x01\x7a\x52\x00\x01\x7c\x1e\x01\x1b\x0c\x1f\x00\x10\x00\x00\x00\x18\x00\x00\x00\xf0\xfe\xff\xff\x18\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".fini_array", 0x10DD0, "\xc0\x06\x00\x00\x00\x00\x00\x00"), -Section(".dynamic", 0x10DD8, "\x01\x00\x00\x00\x00\x00\x00\x00\x28\x00\x00\x00\x00\x00\x00\x00\x0c\x00\x00\x00\x00\x00\x00\x00\x80\x05\x00\x00\x00\x00\x00\x00\x0d\x00\x00\x00\x00\x00\x00\x00\x2c\x07\x00\x00\x00\x00\x00\x00\x19\x00\x00\x00\x00\x00\x00\x00\xc8\x0d\x01\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x1a\x00\x00\x00\x00\x00\x00\x00\xd0\x0d\x01\x00\x00\x00\x00\x00\x1c\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\xf5\xfe\xff\x6f\x00\x00\x00\x00\x98\x02\x00\x00\x00\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x90\x03\x00\x00\x00\x00\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\xb8\x02\x00\x00\x00\x00\x00\x00\x0a\x00\x00\x00\x00\x00\x00\x00\x8d\x00\x00\x00\x00\x00\x00\x00\x0b\x00\x00\x00\x00\x00\x00\x00\x18\x00\x00\x00\x00\x00\x00\x00\x15\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\xe8\x0f\x01\x00\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x60\x00\x00\x00\x00\x00\x00\x00\x14\x00\x00\x00\x00\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x17\x00\x00\x00\x00\x00\x00\x00\x20\x05\x00\x00\x00\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x60\x04\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\xc0\x00\x00\x00\x00\x00\x00\x00\x09\x00\x00\x00\x00\x00\x00\x00\x18\x00\x00\x00\x00\x00\x00\x00\xfb\xff\xff\x6f\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\xfe\xff\xff\x6f\x00\x00\x00\x00\x30\x04\x00\x00\x00\x00\x00\x00\xff\xff\xff\x6f\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\xf0\xff\xff\x6f\x00\x00\x00\x00\x1e\x04\x00\x00\x00\x00\x00\x00\xf9\xff\xff\x6f\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".init_array", 0x10DC8, "\x10\x07\x00\x00\x00\x00\x00\x00"), -Section(".got", 0x10FB8, "\xd8\x0d\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x14\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".got.plt", 0x10FE8, "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xa0\x05\x00\x00\x00\x00\x00\x00\xa0\x05\x00\x00\x00\x00\x00\x00\xa0\x05\x00\x00\x00\x00\x00\x00\xa0\x05\x00\x00\x00\x00\x00\x00"), -Section(".data", 0x11020, "\x00\x00\x00\x00\x00\x00\x00\x00\x28\x10\x01\x00\x00\x00\x00\x00")]), -Memmap([Annotation(Region(0x0,0x833), Attr("segment","02 0 2100")), -Annotation(Region(0x600,0x633), Attr("symbol","\"_start\"")), -Annotation(Region(0x0,0x102), Attr("section","\".shstrtab\"")), -Annotation(Region(0x0,0x241), Attr("section","\".strtab\"")), -Annotation(Region(0x0,0x46), Attr("section","\".comment\"")), -Annotation(Region(0x238,0x252), Attr("section","\".interp\"")), -Annotation(Region(0x254,0x277), Attr("section","\".note.gnu.build-id\"")), -Annotation(Region(0x278,0x297), Attr("section","\".note.ABI-tag\"")), -Annotation(Region(0x298,0x2B3), Attr("section","\".gnu.hash\"")), -Annotation(Region(0x2B8,0x38F), Attr("section","\".dynsym\"")), -Annotation(Region(0x390,0x41C), Attr("section","\".dynstr\"")), -Annotation(Region(0x41E,0x42F), Attr("section","\".gnu.version\"")), -Annotation(Region(0x430,0x45F), Attr("section","\".gnu.version_r\"")), -Annotation(Region(0x460,0x51F), Attr("section","\".rela.dyn\"")), -Annotation(Region(0x520,0x57F), Attr("section","\".rela.plt\"")), -Annotation(Region(0x580,0x597), Attr("section","\".init\"")), -Annotation(Region(0x5A0,0x5FF), Attr("section","\".plt\"")), -Annotation(Region(0x580,0x597), Attr("code-region","()")), -Annotation(Region(0x5A0,0x5FF), Attr("code-region","()")), -Annotation(Region(0x600,0x633), Attr("symbol-info","_start 0x600 52")), -Annotation(Region(0x634,0x647), Attr("symbol","\"call_weak_fn\"")), -Annotation(Region(0x634,0x647), Attr("symbol-info","call_weak_fn 0x634 20")), -Annotation(Region(0x600,0x72B), Attr("section","\".text\"")), -Annotation(Region(0x600,0x72B), Attr("code-region","()")), -Annotation(Region(0x714,0x72B), Attr("symbol","\"main\"")), -Annotation(Region(0x714,0x72B), Attr("symbol-info","main 0x714 24")), -Annotation(Region(0x72C,0x73F), Attr("section","\".fini\"")), -Annotation(Region(0x72C,0x73F), Attr("code-region","()")), -Annotation(Region(0x740,0x743), Attr("section","\".rodata\"")), -Annotation(Region(0x744,0x77F), Attr("section","\".eh_frame_hdr\"")), -Annotation(Region(0x780,0x833), Attr("section","\".eh_frame\"")), -Annotation(Region(0x10DC8,0x1102F), Attr("segment","03 0x10DC8 624")), -Annotation(Region(0x10DD0,0x10DD7), Attr("section","\".fini_array\"")), -Annotation(Region(0x10DD8,0x10FB7), Attr("section","\".dynamic\"")), -Annotation(Region(0x10DC8,0x10DCF), Attr("section","\".init_array\"")), -Annotation(Region(0x10FB8,0x10FE7), Attr("section","\".got\"")), -Annotation(Region(0x10FE8,0x1101F), Attr("section","\".got.plt\"")), -Annotation(Region(0x11020,0x1102F), Attr("section","\".data\""))]), -Program(Tid(1_431, "%00000597"), Attrs([]), - Subs([Sub(Tid(1_381, "@__cxa_finalize"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x5D0"), -Attr("stub","()")]), "__cxa_finalize", Args([Arg(Tid(1_432, "%00000598"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("__cxa_finalize_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(797, "@__cxa_finalize"), - Attrs([Attr("address","0x5D0")]), Phis([]), -Defs([Def(Tid(1_045, "%00000415"), Attrs([Attr("address","0x5D0"), -Attr("insn","adrp x16, #69632")]), Var("R16",Imm(64)), Int(69632,64)), -Def(Tid(1_052, "%0000041c"), Attrs([Attr("address","0x5D4"), -Attr("insn","ldr x17, [x16, #0x8]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(1_058, "%00000422"), Attrs([Attr("address","0x5D8"), -Attr("insn","add x16, x16, #0x8")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(8,64)))]), Jmps([Call(Tid(1_063, "%00000427"), - Attrs([Attr("address","0x5DC"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), -Sub(Tid(1_382, "@__do_global_dtors_aux"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x6C0")]), - "__do_global_dtors_aux", Args([Arg(Tid(1_433, "%00000599"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("__do_global_dtors_aux_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(614, "@__do_global_dtors_aux"), - Attrs([Attr("address","0x6C0")]), Phis([]), Defs([Def(Tid(618, "%0000026a"), - Attrs([Attr("address","0x6C0"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("#3",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(18446744073709551584,64))), -Def(Tid(624, "%00000270"), Attrs([Attr("address","0x6C0"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("#3",Imm(64)),Var("R29",Imm(64)),LittleEndian(),64)), -Def(Tid(630, "%00000276"), Attrs([Attr("address","0x6C0"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("#3",Imm(64)),Int(8,64)),Var("R30",Imm(64)),LittleEndian(),64)), -Def(Tid(634, "%0000027a"), Attrs([Attr("address","0x6C0"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("R31",Imm(64)), -Var("#3",Imm(64))), Def(Tid(640, "%00000280"), - Attrs([Attr("address","0x6C4"), Attr("insn","mov x29, sp")]), - Var("R29",Imm(64)), Var("R31",Imm(64))), Def(Tid(648, "%00000288"), - Attrs([Attr("address","0x6C8"), Attr("insn","str x19, [sp, #0x10]")]), - Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(16,64)),Var("R19",Imm(64)),LittleEndian(),64)), -Def(Tid(653, "%0000028d"), Attrs([Attr("address","0x6CC"), -Attr("insn","adrp x19, #69632")]), Var("R19",Imm(64)), Int(69632,64)), -Def(Tid(660, "%00000294"), Attrs([Attr("address","0x6D0"), -Attr("insn","ldrb w0, [x19, #0x30]")]), Var("R0",Imm(64)), -UNSIGNED(64,Load(Var("mem",Mem(64,8)),PLUS(Var("R19",Imm(64)),Int(48,64)),LittleEndian(),8)))]), -Jmps([Goto(Tid(667, "%0000029b"), Attrs([Attr("address","0x6D4"), -Attr("insn","cbnz w0, #0x28")]), - NEQ(Extract(31,0,Var("R0",Imm(64))),Int(0,32)), -Direct(Tid(665, "%00000299"))), Goto(Tid(1_421, "%0000058d"), Attrs([]), - Int(1,1), Direct(Tid(742, "%000002e6")))])), Blk(Tid(742, "%000002e6"), - Attrs([Attr("address","0x6D8")]), Phis([]), Defs([Def(Tid(745, "%000002e9"), - Attrs([Attr("address","0x6D8"), Attr("insn","adrp x0, #65536")]), - Var("R0",Imm(64)), Int(65536,64)), Def(Tid(752, "%000002f0"), - Attrs([Attr("address","0x6DC"), Attr("insn","ldr x0, [x0, #0xfc8]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(4040,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(758, "%000002f6"), Attrs([Attr("address","0x6E0"), -Attr("insn","cbz x0, #0x10")]), EQ(Var("R0",Imm(64)),Int(0,64)), -Direct(Tid(756, "%000002f4"))), Goto(Tid(1_422, "%0000058e"), Attrs([]), - Int(1,1), Direct(Tid(781, "%0000030d")))])), Blk(Tid(781, "%0000030d"), - Attrs([Attr("address","0x6E4")]), Phis([]), Defs([Def(Tid(784, "%00000310"), - Attrs([Attr("address","0x6E4"), Attr("insn","adrp x0, #69632")]), - Var("R0",Imm(64)), Int(69632,64)), Def(Tid(791, "%00000317"), - Attrs([Attr("address","0x6E8"), Attr("insn","ldr x0, [x0, #0x28]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(40,64)),LittleEndian(),64)), -Def(Tid(796, "%0000031c"), Attrs([Attr("address","0x6EC"), -Attr("insn","bl #-0x11c")]), Var("R30",Imm(64)), Int(1776,64))]), -Jmps([Call(Tid(799, "%0000031f"), Attrs([Attr("address","0x6EC"), -Attr("insn","bl #-0x11c")]), Int(1,1), -(Direct(Tid(1_381, "@__cxa_finalize")),Direct(Tid(756, "%000002f4"))))])), -Blk(Tid(756, "%000002f4"), Attrs([Attr("address","0x6F0")]), Phis([]), -Defs([Def(Tid(764, "%000002fc"), Attrs([Attr("address","0x6F0"), -Attr("insn","bl #-0xa0")]), Var("R30",Imm(64)), Int(1780,64))]), -Jmps([Call(Tid(766, "%000002fe"), Attrs([Attr("address","0x6F0"), -Attr("insn","bl #-0xa0")]), Int(1,1), -(Direct(Tid(1_395, "@deregister_tm_clones")),Direct(Tid(768, "%00000300"))))])), -Blk(Tid(768, "%00000300"), Attrs([Attr("address","0x6F4")]), Phis([]), -Defs([Def(Tid(771, "%00000303"), Attrs([Attr("address","0x6F4"), -Attr("insn","mov w0, #0x1")]), Var("R0",Imm(64)), Int(1,64)), -Def(Tid(779, "%0000030b"), Attrs([Attr("address","0x6F8"), -Attr("insn","strb w0, [x19, #0x30]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R19",Imm(64)),Int(48,64)),Extract(7,0,Var("R0",Imm(64))),LittleEndian(),8))]), -Jmps([Goto(Tid(1_423, "%0000058f"), Attrs([]), Int(1,1), -Direct(Tid(665, "%00000299")))])), Blk(Tid(665, "%00000299"), - Attrs([Attr("address","0x6FC")]), Phis([]), Defs([Def(Tid(675, "%000002a3"), - Attrs([Attr("address","0x6FC"), Attr("insn","ldr x19, [sp, #0x10]")]), - Var("R19",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(16,64)),LittleEndian(),64)), -Def(Tid(682, "%000002aa"), Attrs([Attr("address","0x700"), -Attr("insn","ldp x29, x30, [sp], #0x20")]), Var("R29",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(687, "%000002af"), Attrs([Attr("address","0x700"), -Attr("insn","ldp x29, x30, [sp], #0x20")]), Var("R30",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(691, "%000002b3"), Attrs([Attr("address","0x700"), -Attr("insn","ldp x29, x30, [sp], #0x20")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(32,64)))]), Jmps([Call(Tid(696, "%000002b8"), - Attrs([Attr("address","0x704"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), Sub(Tid(1_386, "@__libc_start_main"), - Attrs([Attr("c.proto","signed (*)(signed (*)(signed , char** , char** );* main, signed , char** , \nvoid* auxv)"), -Attr("address","0x5C0"), Attr("stub","()")]), "__libc_start_main", - Args([Arg(Tid(1_434, "%0000059a"), - Attrs([Attr("c.layout","**[ : 64]"), -Attr("c.data","Top:u64 ptr ptr"), -Attr("c.type","signed (*)(signed , char** , char** );*")]), - Var("__libc_start_main_main",Imm(64)), Var("R0",Imm(64)), In()), -Arg(Tid(1_435, "%0000059b"), Attrs([Attr("c.layout","[signed : 32]"), -Attr("c.data","Top:u32"), Attr("c.type","signed")]), - Var("__libc_start_main_arg2",Imm(32)), LOW(32,Var("R1",Imm(64))), In()), -Arg(Tid(1_436, "%0000059c"), Attrs([Attr("c.layout","**[char : 8]"), -Attr("c.data","Top:u8 ptr ptr"), Attr("c.type","char**")]), - Var("__libc_start_main_arg3",Imm(64)), Var("R2",Imm(64)), Both()), -Arg(Tid(1_437, "%0000059d"), Attrs([Attr("c.layout","*[ : 8]"), -Attr("c.data","{} ptr"), Attr("c.type","void*")]), - Var("__libc_start_main_auxv",Imm(64)), Var("R3",Imm(64)), Both()), -Arg(Tid(1_438, "%0000059e"), Attrs([Attr("c.layout","[signed : 32]"), -Attr("c.data","Top:u32"), Attr("c.type","signed")]), - Var("__libc_start_main_result",Imm(32)), LOW(32,Var("R0",Imm(64))), -Out())]), Blks([Blk(Tid(447, "@__libc_start_main"), - Attrs([Attr("address","0x5C0")]), Phis([]), -Defs([Def(Tid(1_023, "%000003ff"), Attrs([Attr("address","0x5C0"), -Attr("insn","adrp x16, #69632")]), Var("R16",Imm(64)), Int(69632,64)), -Def(Tid(1_030, "%00000406"), Attrs([Attr("address","0x5C4"), -Attr("insn","ldr x17, [x16]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R16",Imm(64)),LittleEndian(),64)), -Def(Tid(1_036, "%0000040c"), Attrs([Attr("address","0x5C8"), -Attr("insn","add x16, x16, #0x0")]), Var("R16",Imm(64)), -Var("R16",Imm(64)))]), Jmps([Call(Tid(1_041, "%00000411"), - Attrs([Attr("address","0x5CC"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), Sub(Tid(1_387, "@_fini"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x72C")]), - "_fini", Args([Arg(Tid(1_439, "%0000059f"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("_fini_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(31, "@_fini"), - Attrs([Attr("address","0x72C")]), Phis([]), Defs([Def(Tid(37, "%00000025"), - Attrs([Attr("address","0x730"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("#0",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(18446744073709551600,64))), -Def(Tid(43, "%0000002b"), Attrs([Attr("address","0x730"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("#0",Imm(64)),Var("R29",Imm(64)),LittleEndian(),64)), -Def(Tid(49, "%00000031"), Attrs([Attr("address","0x730"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("#0",Imm(64)),Int(8,64)),Var("R30",Imm(64)),LittleEndian(),64)), -Def(Tid(53, "%00000035"), Attrs([Attr("address","0x730"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("R31",Imm(64)), -Var("#0",Imm(64))), Def(Tid(59, "%0000003b"), Attrs([Attr("address","0x734"), -Attr("insn","mov x29, sp")]), Var("R29",Imm(64)), Var("R31",Imm(64))), -Def(Tid(66, "%00000042"), Attrs([Attr("address","0x738"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R29",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(71, "%00000047"), Attrs([Attr("address","0x738"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R30",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(75, "%0000004b"), Attrs([Attr("address","0x738"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(16,64)))]), Jmps([Call(Tid(80, "%00000050"), - Attrs([Attr("address","0x73C"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), Sub(Tid(1_388, "@_init"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x580")]), - "_init", Args([Arg(Tid(1_440, "%000005a0"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("_init_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(1_217, "@_init"), - Attrs([Attr("address","0x580")]), Phis([]), -Defs([Def(Tid(1_223, "%000004c7"), Attrs([Attr("address","0x584"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("#5",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(18446744073709551600,64))), -Def(Tid(1_229, "%000004cd"), Attrs([Attr("address","0x584"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("#5",Imm(64)),Var("R29",Imm(64)),LittleEndian(),64)), -Def(Tid(1_235, "%000004d3"), Attrs([Attr("address","0x584"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("#5",Imm(64)),Int(8,64)),Var("R30",Imm(64)),LittleEndian(),64)), -Def(Tid(1_239, "%000004d7"), Attrs([Attr("address","0x584"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("R31",Imm(64)), -Var("#5",Imm(64))), Def(Tid(1_245, "%000004dd"), - Attrs([Attr("address","0x588"), Attr("insn","mov x29, sp")]), - Var("R29",Imm(64)), Var("R31",Imm(64))), Def(Tid(1_250, "%000004e2"), - Attrs([Attr("address","0x58C"), Attr("insn","bl #0xa8")]), - Var("R30",Imm(64)), Int(1424,64))]), Jmps([Call(Tid(1_252, "%000004e4"), - Attrs([Attr("address","0x58C"), Attr("insn","bl #0xa8")]), Int(1,1), -(Direct(Tid(1_393, "@call_weak_fn")),Direct(Tid(1_254, "%000004e6"))))])), -Blk(Tid(1_254, "%000004e6"), Attrs([Attr("address","0x590")]), Phis([]), -Defs([Def(Tid(1_259, "%000004eb"), Attrs([Attr("address","0x590"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R29",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(1_264, "%000004f0"), Attrs([Attr("address","0x590"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R30",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(1_268, "%000004f4"), Attrs([Attr("address","0x590"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(16,64)))]), Jmps([Call(Tid(1_273, "%000004f9"), - Attrs([Attr("address","0x594"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), Sub(Tid(1_389, "@_start"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x600"), -Attr("stub","()"), Attr("entry-point","()")]), "_start", - Args([Arg(Tid(1_441, "%000005a1"), Attrs([Attr("c.layout","[signed : 32]"), -Attr("c.data","Top:u32"), Attr("c.type","signed")]), - Var("_start_result",Imm(32)), LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(384, "@_start"), Attrs([Attr("address","0x600")]), Phis([]), -Defs([Def(Tid(389, "%00000185"), Attrs([Attr("address","0x604"), -Attr("insn","mov x29, #0x0")]), Var("R29",Imm(64)), Int(0,64)), -Def(Tid(394, "%0000018a"), Attrs([Attr("address","0x608"), -Attr("insn","mov x30, #0x0")]), Var("R30",Imm(64)), Int(0,64)), -Def(Tid(400, "%00000190"), Attrs([Attr("address","0x60C"), -Attr("insn","mov x5, x0")]), Var("R5",Imm(64)), Var("R0",Imm(64))), -Def(Tid(407, "%00000197"), Attrs([Attr("address","0x610"), -Attr("insn","ldr x1, [sp]")]), Var("R1",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(413, "%0000019d"), Attrs([Attr("address","0x614"), -Attr("insn","add x2, sp, #0x8")]), Var("R2",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(8,64))), Def(Tid(419, "%000001a3"), - Attrs([Attr("address","0x618"), Attr("insn","mov x6, sp")]), - Var("R6",Imm(64)), Var("R31",Imm(64))), Def(Tid(424, "%000001a8"), - Attrs([Attr("address","0x61C"), Attr("insn","adrp x0, #65536")]), - Var("R0",Imm(64)), Int(65536,64)), Def(Tid(431, "%000001af"), - Attrs([Attr("address","0x620"), Attr("insn","ldr x0, [x0, #0xfd8]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(4056,64)),LittleEndian(),64)), -Def(Tid(436, "%000001b4"), Attrs([Attr("address","0x624"), -Attr("insn","mov x3, #0x0")]), Var("R3",Imm(64)), Int(0,64)), -Def(Tid(441, "%000001b9"), Attrs([Attr("address","0x628"), -Attr("insn","mov x4, #0x0")]), Var("R4",Imm(64)), Int(0,64)), -Def(Tid(446, "%000001be"), Attrs([Attr("address","0x62C"), -Attr("insn","bl #-0x6c")]), Var("R30",Imm(64)), Int(1584,64))]), -Jmps([Call(Tid(449, "%000001c1"), Attrs([Attr("address","0x62C"), -Attr("insn","bl #-0x6c")]), Int(1,1), -(Direct(Tid(1_386, "@__libc_start_main")),Direct(Tid(451, "%000001c3"))))])), -Blk(Tid(451, "%000001c3"), Attrs([Attr("address","0x630")]), Phis([]), -Defs([Def(Tid(454, "%000001c6"), Attrs([Attr("address","0x630"), -Attr("insn","bl #-0x40")]), Var("R30",Imm(64)), Int(1588,64))]), -Jmps([Call(Tid(457, "%000001c9"), Attrs([Attr("address","0x630"), -Attr("insn","bl #-0x40")]), Int(1,1), -(Direct(Tid(1_392, "@abort")),Direct(Tid(1_424, "%00000590"))))])), -Blk(Tid(1_424, "%00000590"), Attrs([]), Phis([]), Defs([]), -Jmps([Call(Tid(1_425, "%00000591"), Attrs([]), Int(1,1), -(Direct(Tid(1_393, "@call_weak_fn")),))]))])), Sub(Tid(1_392, "@abort"), - Attrs([Attr("noreturn","()"), Attr("c.proto","void (*)(void)"), -Attr("address","0x5F0"), Attr("stub","()")]), "abort", Args([]), -Blks([Blk(Tid(455, "@abort"), Attrs([Attr("address","0x5F0")]), Phis([]), -Defs([Def(Tid(1_089, "%00000441"), Attrs([Attr("address","0x5F0"), -Attr("insn","adrp x16, #69632")]), Var("R16",Imm(64)), Int(69632,64)), -Def(Tid(1_096, "%00000448"), Attrs([Attr("address","0x5F4"), -Attr("insn","ldr x17, [x16, #0x18]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(24,64)),LittleEndian(),64)), -Def(Tid(1_102, "%0000044e"), Attrs([Attr("address","0x5F8"), -Attr("insn","add x16, x16, #0x18")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(24,64)))]), Jmps([Call(Tid(1_107, "%00000453"), - Attrs([Attr("address","0x5FC"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), Sub(Tid(1_393, "@call_weak_fn"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x634")]), - "call_weak_fn", Args([Arg(Tid(1_442, "%000005a2"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("call_weak_fn_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(459, "@call_weak_fn"), - Attrs([Attr("address","0x634")]), Phis([]), Defs([Def(Tid(462, "%000001ce"), - Attrs([Attr("address","0x634"), Attr("insn","adrp x0, #65536")]), - Var("R0",Imm(64)), Int(65536,64)), Def(Tid(469, "%000001d5"), - Attrs([Attr("address","0x638"), Attr("insn","ldr x0, [x0, #0xfd0]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(4048,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(475, "%000001db"), Attrs([Attr("address","0x63C"), -Attr("insn","cbz x0, #0x8")]), EQ(Var("R0",Imm(64)),Int(0,64)), -Direct(Tid(473, "%000001d9"))), Goto(Tid(1_426, "%00000592"), Attrs([]), - Int(1,1), Direct(Tid(861, "%0000035d")))])), Blk(Tid(473, "%000001d9"), - Attrs([Attr("address","0x644")]), Phis([]), Defs([]), -Jmps([Call(Tid(481, "%000001e1"), Attrs([Attr("address","0x644"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))])), -Blk(Tid(861, "%0000035d"), Attrs([Attr("address","0x640")]), Phis([]), -Defs([]), Jmps([Goto(Tid(864, "%00000360"), Attrs([Attr("address","0x640"), -Attr("insn","b #-0x60")]), Int(1,1), Direct(Tid(862, "@__gmon_start__")))])), -Blk(Tid(862, "@__gmon_start__"), Attrs([Attr("address","0x5E0")]), Phis([]), -Defs([Def(Tid(1_067, "%0000042b"), Attrs([Attr("address","0x5E0"), -Attr("insn","adrp x16, #69632")]), Var("R16",Imm(64)), Int(69632,64)), -Def(Tid(1_074, "%00000432"), Attrs([Attr("address","0x5E4"), -Attr("insn","ldr x17, [x16, #0x10]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(16,64)),LittleEndian(),64)), -Def(Tid(1_080, "%00000438"), Attrs([Attr("address","0x5E8"), -Attr("insn","add x16, x16, #0x10")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(16,64)))]), Jmps([Call(Tid(1_085, "%0000043d"), - Attrs([Attr("address","0x5EC"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), -Sub(Tid(1_395, "@deregister_tm_clones"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x650")]), - "deregister_tm_clones", Args([Arg(Tid(1_443, "%000005a3"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("deregister_tm_clones_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(487, "@deregister_tm_clones"), - Attrs([Attr("address","0x650")]), Phis([]), Defs([Def(Tid(490, "%000001ea"), - Attrs([Attr("address","0x650"), Attr("insn","adrp x0, #69632")]), - Var("R0",Imm(64)), Int(69632,64)), Def(Tid(496, "%000001f0"), - Attrs([Attr("address","0x654"), Attr("insn","add x0, x0, #0x30")]), - Var("R0",Imm(64)), PLUS(Var("R0",Imm(64)),Int(48,64))), -Def(Tid(501, "%000001f5"), Attrs([Attr("address","0x658"), -Attr("insn","adrp x1, #69632")]), Var("R1",Imm(64)), Int(69632,64)), -Def(Tid(507, "%000001fb"), Attrs([Attr("address","0x65C"), -Attr("insn","add x1, x1, #0x30")]), Var("R1",Imm(64)), -PLUS(Var("R1",Imm(64)),Int(48,64))), Def(Tid(513, "%00000201"), - Attrs([Attr("address","0x660"), Attr("insn","cmp x1, x0")]), - Var("#1",Imm(64)), NOT(Var("R0",Imm(64)))), Def(Tid(518, "%00000206"), - Attrs([Attr("address","0x660"), Attr("insn","cmp x1, x0")]), - Var("#2",Imm(64)), PLUS(Var("R1",Imm(64)),NOT(Var("R0",Imm(64))))), -Def(Tid(524, "%0000020c"), Attrs([Attr("address","0x660"), -Attr("insn","cmp x1, x0")]), Var("VF",Imm(1)), -NEQ(SIGNED(65,PLUS(Var("#2",Imm(64)),Int(1,64))),PLUS(PLUS(SIGNED(65,Var("R1",Imm(64))),SIGNED(65,Var("#1",Imm(64)))),Int(1,65)))), -Def(Tid(530, "%00000212"), Attrs([Attr("address","0x660"), -Attr("insn","cmp x1, x0")]), Var("CF",Imm(1)), -NEQ(UNSIGNED(65,PLUS(Var("#2",Imm(64)),Int(1,64))),PLUS(PLUS(UNSIGNED(65,Var("R1",Imm(64))),UNSIGNED(65,Var("#1",Imm(64)))),Int(1,65)))), -Def(Tid(534, "%00000216"), Attrs([Attr("address","0x660"), -Attr("insn","cmp x1, x0")]), Var("ZF",Imm(1)), -EQ(PLUS(Var("#2",Imm(64)),Int(1,64)),Int(0,64))), Def(Tid(538, "%0000021a"), - Attrs([Attr("address","0x660"), Attr("insn","cmp x1, x0")]), - Var("NF",Imm(1)), Extract(63,63,PLUS(Var("#2",Imm(64)),Int(1,64))))]), -Jmps([Goto(Tid(544, "%00000220"), Attrs([Attr("address","0x664"), -Attr("insn","b.eq #0x18")]), EQ(Var("ZF",Imm(1)),Int(1,1)), -Direct(Tid(542, "%0000021e"))), Goto(Tid(1_427, "%00000593"), Attrs([]), - Int(1,1), Direct(Tid(831, "%0000033f")))])), Blk(Tid(831, "%0000033f"), - Attrs([Attr("address","0x668")]), Phis([]), Defs([Def(Tid(834, "%00000342"), - Attrs([Attr("address","0x668"), Attr("insn","adrp x1, #65536")]), - Var("R1",Imm(64)), Int(65536,64)), Def(Tid(841, "%00000349"), - Attrs([Attr("address","0x66C"), Attr("insn","ldr x1, [x1, #0xfc0]")]), - Var("R1",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R1",Imm(64)),Int(4032,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(846, "%0000034e"), Attrs([Attr("address","0x670"), -Attr("insn","cbz x1, #0xc")]), EQ(Var("R1",Imm(64)),Int(0,64)), -Direct(Tid(542, "%0000021e"))), Goto(Tid(1_428, "%00000594"), Attrs([]), - Int(1,1), Direct(Tid(850, "%00000352")))])), Blk(Tid(542, "%0000021e"), - Attrs([Attr("address","0x67C")]), Phis([]), Defs([]), -Jmps([Call(Tid(550, "%00000226"), Attrs([Attr("address","0x67C"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))])), -Blk(Tid(850, "%00000352"), Attrs([Attr("address","0x674")]), Phis([]), -Defs([Def(Tid(854, "%00000356"), Attrs([Attr("address","0x674"), -Attr("insn","mov x16, x1")]), Var("R16",Imm(64)), Var("R1",Imm(64)))]), -Jmps([Call(Tid(859, "%0000035b"), Attrs([Attr("address","0x678"), -Attr("insn","br x16")]), Int(1,1), (Indirect(Var("R16",Imm(64))),))]))])), -Sub(Tid(1_398, "@frame_dummy"), Attrs([Attr("c.proto","signed (*)(void)"), -Attr("address","0x710")]), "frame_dummy", Args([Arg(Tid(1_444, "%000005a4"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("frame_dummy_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(702, "@frame_dummy"), - Attrs([Attr("address","0x710")]), Phis([]), Defs([]), -Jmps([Call(Tid(704, "%000002c0"), Attrs([Attr("address","0x710"), -Attr("insn","b #-0x90")]), Int(1,1), -(Direct(Tid(1_400, "@register_tm_clones")),))]))])), Sub(Tid(1_399, "@main"), - Attrs([Attr("c.proto","signed (*)(signed argc, const char** argv)"), -Attr("address","0x714")]), "main", Args([Arg(Tid(1_445, "%000005a5"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("main_argc",Imm(32)), -LOW(32,Var("R0",Imm(64))), In()), Arg(Tid(1_446, "%000005a6"), - Attrs([Attr("c.layout","**[char : 8]"), Attr("c.data","Top:u8 ptr ptr"), -Attr("c.type"," const char**")]), Var("main_argv",Imm(64)), -Var("R1",Imm(64)), Both()), Arg(Tid(1_447, "%000005a7"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("main_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(706, "@main"), - Attrs([Attr("address","0x714")]), Phis([]), Defs([Def(Tid(709, "%000002c5"), - Attrs([Attr("address","0x714"), Attr("insn","adrp x9, #69632")]), - Var("R9",Imm(64)), Int(69632,64)), Def(Tid(716, "%000002cc"), - Attrs([Attr("address","0x718"), Attr("insn","ldr w8, [x9, #0x34]")]), - Var("R8",Imm(64)), -UNSIGNED(64,Load(Var("mem",Mem(64,8)),PLUS(Var("R9",Imm(64)),Int(52,64)),LittleEndian(),32))), -Def(Tid(722, "%000002d2"), Attrs([Attr("address","0x71C"), -Attr("insn","add w8, w8, #0x1")]), Var("R8",Imm(64)), -UNSIGNED(64,PLUS(Extract(31,0,Var("R8",Imm(64))),Int(1,32)))), -Def(Tid(730, "%000002da"), Attrs([Attr("address","0x720"), -Attr("insn","str w8, [x9, #0x34]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R9",Imm(64)),Int(52,64)),Extract(31,0,Var("R8",Imm(64))),LittleEndian(),32)), -Def(Tid(735, "%000002df"), Attrs([Attr("address","0x724"), -Attr("insn","mov w0, wzr")]), Var("R0",Imm(64)), Int(0,64))]), -Jmps([Call(Tid(740, "%000002e4"), Attrs([Attr("address","0x728"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))]))])), -Sub(Tid(1_400, "@register_tm_clones"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x680")]), - "register_tm_clones", Args([Arg(Tid(1_448, "%000005a8"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("register_tm_clones_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(552, "@register_tm_clones"), Attrs([Attr("address","0x680")]), - Phis([]), Defs([Def(Tid(555, "%0000022b"), Attrs([Attr("address","0x680"), -Attr("insn","adrp x0, #69632")]), Var("R0",Imm(64)), Int(69632,64)), -Def(Tid(561, "%00000231"), Attrs([Attr("address","0x684"), -Attr("insn","add x0, x0, #0x30")]), Var("R0",Imm(64)), -PLUS(Var("R0",Imm(64)),Int(48,64))), Def(Tid(566, "%00000236"), - Attrs([Attr("address","0x688"), Attr("insn","adrp x1, #69632")]), - Var("R1",Imm(64)), Int(69632,64)), Def(Tid(572, "%0000023c"), - Attrs([Attr("address","0x68C"), Attr("insn","add x1, x1, #0x30")]), - Var("R1",Imm(64)), PLUS(Var("R1",Imm(64)),Int(48,64))), -Def(Tid(579, "%00000243"), Attrs([Attr("address","0x690"), -Attr("insn","sub x1, x1, x0")]), Var("R1",Imm(64)), -PLUS(PLUS(Var("R1",Imm(64)),NOT(Var("R0",Imm(64)))),Int(1,64))), -Def(Tid(585, "%00000249"), Attrs([Attr("address","0x694"), -Attr("insn","lsr x2, x1, #63")]), Var("R2",Imm(64)), -Concat(Int(0,63),Extract(63,63,Var("R1",Imm(64))))), -Def(Tid(592, "%00000250"), Attrs([Attr("address","0x698"), -Attr("insn","add x1, x2, x1, asr #3")]), Var("R1",Imm(64)), -PLUS(Var("R2",Imm(64)),ARSHIFT(Var("R1",Imm(64)),Int(3,3)))), -Def(Tid(598, "%00000256"), Attrs([Attr("address","0x69C"), -Attr("insn","asr x1, x1, #1")]), Var("R1",Imm(64)), -SIGNED(64,Extract(63,1,Var("R1",Imm(64)))))]), -Jmps([Goto(Tid(604, "%0000025c"), Attrs([Attr("address","0x6A0"), -Attr("insn","cbz x1, #0x18")]), EQ(Var("R1",Imm(64)),Int(0,64)), -Direct(Tid(602, "%0000025a"))), Goto(Tid(1_429, "%00000595"), Attrs([]), - Int(1,1), Direct(Tid(801, "%00000321")))])), Blk(Tid(801, "%00000321"), - Attrs([Attr("address","0x6A4")]), Phis([]), Defs([Def(Tid(804, "%00000324"), - Attrs([Attr("address","0x6A4"), Attr("insn","adrp x2, #65536")]), - Var("R2",Imm(64)), Int(65536,64)), Def(Tid(811, "%0000032b"), - Attrs([Attr("address","0x6A8"), Attr("insn","ldr x2, [x2, #0xfe0]")]), - Var("R2",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R2",Imm(64)),Int(4064,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(816, "%00000330"), Attrs([Attr("address","0x6AC"), -Attr("insn","cbz x2, #0xc")]), EQ(Var("R2",Imm(64)),Int(0,64)), -Direct(Tid(602, "%0000025a"))), Goto(Tid(1_430, "%00000596"), Attrs([]), - Int(1,1), Direct(Tid(820, "%00000334")))])), Blk(Tid(602, "%0000025a"), - Attrs([Attr("address","0x6B8")]), Phis([]), Defs([]), -Jmps([Call(Tid(610, "%00000262"), Attrs([Attr("address","0x6B8"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))])), -Blk(Tid(820, "%00000334"), Attrs([Attr("address","0x6B0")]), Phis([]), -Defs([Def(Tid(824, "%00000338"), Attrs([Attr("address","0x6B0"), -Attr("insn","mov x16, x2")]), Var("R16",Imm(64)), Var("R2",Imm(64)))]), -Jmps([Call(Tid(829, "%0000033d"), Attrs([Attr("address","0x6B4"), -Attr("insn","br x16")]), Int(1,1), -(Indirect(Var("R16",Imm(64))),))]))]))]))) \ No newline at end of file diff --git a/src/test/correct/basic_assign_increment/clang/basic_assign_increment.bir b/src/test/correct/basic_assign_increment/clang/basic_assign_increment.bir deleted file mode 100644 index 11509ce55..000000000 --- a/src/test/correct/basic_assign_increment/clang/basic_assign_increment.bir +++ /dev/null @@ -1,228 +0,0 @@ -00000597: program -00000565: sub __cxa_finalize(__cxa_finalize_result) -00000598: __cxa_finalize_result :: out u32 = low:32[R0] - -0000031d: -00000415: R16 := 0x11000 -0000041c: R17 := mem[R16 + 8, el]:u64 -00000422: R16 := R16 + 8 -00000427: call R17 with noreturn - -00000566: sub __do_global_dtors_aux(__do_global_dtors_aux_result) -00000599: __do_global_dtors_aux_result :: out u32 = low:32[R0] - -00000266: -0000026a: #3 := R31 - 0x20 -00000270: mem := mem with [#3, el]:u64 <- R29 -00000276: mem := mem with [#3 + 8, el]:u64 <- R30 -0000027a: R31 := #3 -00000280: R29 := R31 -00000288: mem := mem with [R31 + 0x10, el]:u64 <- R19 -0000028d: R19 := 0x11000 -00000294: R0 := pad:64[mem[R19 + 0x30]] -0000029b: when 31:0[R0] <> 0 goto %00000299 -0000058d: goto %000002e6 - -000002e6: -000002e9: R0 := 0x10000 -000002f0: R0 := mem[R0 + 0xFC8, el]:u64 -000002f6: when R0 = 0 goto %000002f4 -0000058e: goto %0000030d - -0000030d: -00000310: R0 := 0x11000 -00000317: R0 := mem[R0 + 0x28, el]:u64 -0000031c: R30 := 0x6F0 -0000031f: call @__cxa_finalize with return %000002f4 - -000002f4: -000002fc: R30 := 0x6F4 -000002fe: call @deregister_tm_clones with return %00000300 - -00000300: -00000303: R0 := 1 -0000030b: mem := mem with [R19 + 0x30] <- 7:0[R0] -0000058f: goto %00000299 - -00000299: -000002a3: R19 := mem[R31 + 0x10, el]:u64 -000002aa: R29 := mem[R31, el]:u64 -000002af: R30 := mem[R31 + 8, el]:u64 -000002b3: R31 := R31 + 0x20 -000002b8: call R30 with noreturn - -0000056a: sub __libc_start_main(__libc_start_main_main, __libc_start_main_arg2, __libc_start_main_arg3, __libc_start_main_auxv, __libc_start_main_result) -0000059a: __libc_start_main_main :: in u64 = R0 -0000059b: __libc_start_main_arg2 :: in u32 = low:32[R1] -0000059c: __libc_start_main_arg3 :: in out u64 = R2 -0000059d: __libc_start_main_auxv :: in out u64 = R3 -0000059e: __libc_start_main_result :: out u32 = low:32[R0] - -000001bf: -000003ff: R16 := 0x11000 -00000406: R17 := mem[R16, el]:u64 -0000040c: R16 := R16 -00000411: call R17 with noreturn - -0000056b: sub _fini(_fini_result) -0000059f: _fini_result :: out u32 = low:32[R0] - -0000001f: -00000025: #0 := R31 - 0x10 -0000002b: mem := mem with [#0, el]:u64 <- R29 -00000031: mem := mem with [#0 + 8, el]:u64 <- R30 -00000035: R31 := #0 -0000003b: R29 := R31 -00000042: R29 := mem[R31, el]:u64 -00000047: R30 := mem[R31 + 8, el]:u64 -0000004b: R31 := R31 + 0x10 -00000050: call R30 with noreturn - -0000056c: sub _init(_init_result) -000005a0: _init_result :: out u32 = low:32[R0] - -000004c1: -000004c7: #5 := R31 - 0x10 -000004cd: mem := mem with [#5, el]:u64 <- R29 -000004d3: mem := mem with [#5 + 8, el]:u64 <- R30 -000004d7: R31 := #5 -000004dd: R29 := R31 -000004e2: R30 := 0x590 -000004e4: call @call_weak_fn with return %000004e6 - -000004e6: -000004eb: R29 := mem[R31, el]:u64 -000004f0: R30 := mem[R31 + 8, el]:u64 -000004f4: R31 := R31 + 0x10 -000004f9: call R30 with noreturn - -0000056d: sub _start(_start_result) -000005a1: _start_result :: out u32 = low:32[R0] - -00000180: -00000185: R29 := 0 -0000018a: R30 := 0 -00000190: R5 := R0 -00000197: R1 := mem[R31, el]:u64 -0000019d: R2 := R31 + 8 -000001a3: R6 := R31 -000001a8: R0 := 0x10000 -000001af: R0 := mem[R0 + 0xFD8, el]:u64 -000001b4: R3 := 0 -000001b9: R4 := 0 -000001be: R30 := 0x630 -000001c1: call @__libc_start_main with return %000001c3 - -000001c3: -000001c6: R30 := 0x634 -000001c9: call @abort with return %00000590 - -00000590: -00000591: call @call_weak_fn with noreturn - -00000570: sub abort() - - -000001c7: -00000441: R16 := 0x11000 -00000448: R17 := mem[R16 + 0x18, el]:u64 -0000044e: R16 := R16 + 0x18 -00000453: call R17 with noreturn - -00000571: sub call_weak_fn(call_weak_fn_result) -000005a2: call_weak_fn_result :: out u32 = low:32[R0] - -000001cb: -000001ce: R0 := 0x10000 -000001d5: R0 := mem[R0 + 0xFD0, el]:u64 -000001db: when R0 = 0 goto %000001d9 -00000592: goto %0000035d - -000001d9: -000001e1: call R30 with noreturn - -0000035d: -00000360: goto @__gmon_start__ - -0000035e: -0000042b: R16 := 0x11000 -00000432: R17 := mem[R16 + 0x10, el]:u64 -00000438: R16 := R16 + 0x10 -0000043d: call R17 with noreturn - -00000573: sub deregister_tm_clones(deregister_tm_clones_result) -000005a3: deregister_tm_clones_result :: out u32 = low:32[R0] - -000001e7: -000001ea: R0 := 0x11000 -000001f0: R0 := R0 + 0x30 -000001f5: R1 := 0x11000 -000001fb: R1 := R1 + 0x30 -00000201: #1 := ~R0 -00000206: #2 := R1 + ~R0 -0000020c: VF := extend:65[#2 + 1] <> extend:65[R1] + extend:65[#1] + 1 -00000212: CF := pad:65[#2 + 1] <> pad:65[R1] + pad:65[#1] + 1 -00000216: ZF := #2 + 1 = 0 -0000021a: NF := 63:63[#2 + 1] -00000220: when ZF goto %0000021e -00000593: goto %0000033f - -0000033f: -00000342: R1 := 0x10000 -00000349: R1 := mem[R1 + 0xFC0, el]:u64 -0000034e: when R1 = 0 goto %0000021e -00000594: goto %00000352 - -0000021e: -00000226: call R30 with noreturn - -00000352: -00000356: R16 := R1 -0000035b: call R16 with noreturn - -00000576: sub frame_dummy(frame_dummy_result) -000005a4: frame_dummy_result :: out u32 = low:32[R0] - -000002be: -000002c0: call @register_tm_clones with noreturn - -00000577: sub main(main_argc, main_argv, main_result) -000005a5: main_argc :: in u32 = low:32[R0] -000005a6: main_argv :: in out u64 = R1 -000005a7: main_result :: out u32 = low:32[R0] - -000002c2: -000002c5: R9 := 0x11000 -000002cc: R8 := pad:64[mem[R9 + 0x34, el]:u32] -000002d2: R8 := pad:64[31:0[R8] + 1] -000002da: mem := mem with [R9 + 0x34, el]:u32 <- 31:0[R8] -000002df: R0 := 0 -000002e4: call R30 with noreturn - -00000578: sub register_tm_clones(register_tm_clones_result) -000005a8: register_tm_clones_result :: out u32 = low:32[R0] - -00000228: -0000022b: R0 := 0x11000 -00000231: R0 := R0 + 0x30 -00000236: R1 := 0x11000 -0000023c: R1 := R1 + 0x30 -00000243: R1 := R1 + ~R0 + 1 -00000249: R2 := 0.63:63[R1] -00000250: R1 := R2 + (R1 ~>> 3) -00000256: R1 := extend:64[63:1[R1]] -0000025c: when R1 = 0 goto %0000025a -00000595: goto %00000321 - -00000321: -00000324: R2 := 0x10000 -0000032b: R2 := mem[R2 + 0xFE0, el]:u64 -00000330: when R2 = 0 goto %0000025a -00000596: goto %00000334 - -0000025a: -00000262: call R30 with noreturn - -00000334: -00000338: R16 := R2 -0000033d: call R16 with noreturn diff --git a/src/test/correct/basic_assign_increment/clang/basic_assign_increment.expected b/src/test/correct/basic_assign_increment/clang/basic_assign_increment.expected index 424b54347..ca7037d69 100644 --- a/src/test/correct/basic_assign_increment/clang/basic_assign_increment.expected +++ b/src/test/correct/basic_assign_increment/clang/basic_assign_increment.expected @@ -7,7 +7,7 @@ var {:extern} R8: bv64; var {:extern} R9: bv64; var {:extern} mem: [bv64]bv8; const {:extern} $x_addr: bv64; -axiom ($x_addr == 69684bv64); +axiom ($x_addr == 131092bv64); function {:extern} L(mem$in: [bv64]bv8, index: bv64) returns (bool) { (if (index == $x_addr) then true else false) } @@ -18,6 +18,10 @@ function {:extern} gamma_load32(gammaMap: [bv64]bool, index: bv64) returns (bool (gammaMap[bvadd64(index, 3bv64)] && (gammaMap[bvadd64(index, 2bv64)] && (gammaMap[bvadd64(index, 1bv64)] && gammaMap[index]))) } +function {:extern} gamma_load64(gammaMap: [bv64]bool, index: bv64) returns (bool) { + (gammaMap[bvadd64(index, 7bv64)] && (gammaMap[bvadd64(index, 6bv64)] && (gammaMap[bvadd64(index, 5bv64)] && (gammaMap[bvadd64(index, 4bv64)] && (gammaMap[bvadd64(index, 3bv64)] && (gammaMap[bvadd64(index, 2bv64)] && (gammaMap[bvadd64(index, 1bv64)] && gammaMap[index]))))))) +} + function {:extern} gamma_store32(gammaMap: [bv64]bool, index: bv64, value: bool) returns ([bv64]bool) { gammaMap[index := value][bvadd64(index, 1bv64) := value][bvadd64(index, 2bv64) := value][bvadd64(index, 3bv64) := value] } @@ -39,11 +43,12 @@ procedure {:extern} rely(); modifies Gamma_mem, mem; ensures (forall i: bv64 :: (((mem[i] == old(mem[i])) ==> (Gamma_mem[i] == old(Gamma_mem[i]))))); ensures ((memory_load32_le(mem, $x_addr) == old(memory_load32_le(mem, $x_addr))) || (memory_load32_le(mem, $x_addr) == 5bv32)); - free ensures (memory_load32_le(mem, 1856bv64) == 131073bv32); - free ensures (memory_load64_le(mem, 69064bv64) == 1808bv64); - free ensures (memory_load64_le(mem, 69072bv64) == 1728bv64); - free ensures (memory_load64_le(mem, 69592bv64) == 1812bv64); - free ensures (memory_load64_le(mem, 69672bv64) == 69672bv64); + free ensures (memory_load32_le(mem, 2308bv64) == 131073bv32); + free ensures (memory_load64_le(mem, 130432bv64) == 2256bv64); + free ensures (memory_load64_le(mem, 130440bv64) == 2176bv64); + free ensures (memory_load64_le(mem, 131040bv64) == 131092bv64); + free ensures (memory_load64_le(mem, 131056bv64) == 2260bv64); + free ensures (memory_load64_le(mem, 131080bv64) == 131080bv64); procedure {:extern} rely_transitive(); modifies Gamma_mem, mem; @@ -70,45 +75,52 @@ implementation {:extern} guarantee_reflexive() assert (((memory_load32_le(mem, $x_addr) == memory_load32_le(mem, $x_addr)) || (memory_load32_le(mem, $x_addr) == 1bv32)) || (memory_load32_le(mem, $x_addr) == 6bv32)); } -procedure main_1812(); +procedure main(); modifies Gamma_R0, Gamma_R8, Gamma_R9, Gamma_mem, R0, R8, R9, mem; requires (memory_load32_le(mem, $x_addr) == 0bv32); - free requires (memory_load64_le(mem, 69664bv64) == 0bv64); - free requires (memory_load64_le(mem, 69672bv64) == 69672bv64); - free requires (memory_load32_le(mem, 1856bv64) == 131073bv32); - free requires (memory_load64_le(mem, 69064bv64) == 1808bv64); - free requires (memory_load64_le(mem, 69072bv64) == 1728bv64); - free requires (memory_load64_le(mem, 69592bv64) == 1812bv64); - free requires (memory_load64_le(mem, 69672bv64) == 69672bv64); + free requires (memory_load64_le(mem, 131072bv64) == 0bv64); + free requires (memory_load64_le(mem, 131080bv64) == 131080bv64); + free requires (memory_load32_le(mem, 2308bv64) == 131073bv32); + free requires (memory_load64_le(mem, 130432bv64) == 2256bv64); + free requires (memory_load64_le(mem, 130440bv64) == 2176bv64); + free requires (memory_load64_le(mem, 131040bv64) == 131092bv64); + free requires (memory_load64_le(mem, 131056bv64) == 2260bv64); + free requires (memory_load64_le(mem, 131080bv64) == 131080bv64); ensures (((memory_load32_le(mem, $x_addr) == 1bv32) || (memory_load32_le(mem, $x_addr) == 5bv32)) || (memory_load32_le(mem, $x_addr) == 6bv32)); - free ensures (memory_load32_le(mem, 1856bv64) == 131073bv32); - free ensures (memory_load64_le(mem, 69064bv64) == 1808bv64); - free ensures (memory_load64_le(mem, 69072bv64) == 1728bv64); - free ensures (memory_load64_le(mem, 69592bv64) == 1812bv64); - free ensures (memory_load64_le(mem, 69672bv64) == 69672bv64); + free ensures (memory_load32_le(mem, 2308bv64) == 131073bv32); + free ensures (memory_load64_le(mem, 130432bv64) == 2256bv64); + free ensures (memory_load64_le(mem, 130440bv64) == 2176bv64); + free ensures (memory_load64_le(mem, 131040bv64) == 131092bv64); + free ensures (memory_load64_le(mem, 131056bv64) == 2260bv64); + free ensures (memory_load64_le(mem, 131080bv64) == 131080bv64); -implementation main_1812() +implementation main() { - var Gamma_load18: bool; - var load18: bv32; + var $load$18: bv64; + var $load$19: bv32; + var Gamma_$load$18: bool; + var Gamma_$load$19: bool; var x_old: bv32; lmain: assume {:captureState "lmain"} true; - R9, Gamma_R9 := 69632bv64, true; + R8, Gamma_R8 := 126976bv64, true; + R0, Gamma_R0 := 0bv64, true; call rely(); - load18, Gamma_load18 := memory_load32_le(mem, bvadd64(R9, 52bv64)), (gamma_load32(Gamma_mem, bvadd64(R9, 52bv64)) || L(mem, bvadd64(R9, 52bv64))); - R8, Gamma_R8 := zero_extend32_32(load18), Gamma_load18; - R8, Gamma_R8 := zero_extend32_32(bvadd32(R8[32:0], 1bv32)), Gamma_R8; + $load$18, Gamma_$load$18 := memory_load64_le(mem, bvadd64(R8, 4064bv64)), (gamma_load64(Gamma_mem, bvadd64(R8, 4064bv64)) || L(mem, bvadd64(R8, 4064bv64))); + R8, Gamma_R8 := $load$18, Gamma_$load$18; call rely(); + $load$19, Gamma_$load$19 := memory_load32_le(mem, R8), (gamma_load32(Gamma_mem, R8) || L(mem, R8)); + R9, Gamma_R9 := zero_extend32_32($load$19), Gamma_$load$19; + R9, Gamma_R9 := zero_extend32_32(bvadd32(R9[32:0], 1bv32)), Gamma_R9; + call rely(); + assert (L(mem, R8) ==> Gamma_R9); x_old := memory_load32_le(mem, $x_addr); - assert (L(mem, bvadd64(R9, 52bv64)) ==> Gamma_R8); - mem, Gamma_mem := memory_store32_le(mem, bvadd64(R9, 52bv64), R8[32:0]), gamma_store32(Gamma_mem, bvadd64(R9, 52bv64), Gamma_R8); + mem, Gamma_mem := memory_store32_le(mem, R8, R9[32:0]), gamma_store32(Gamma_mem, R8, Gamma_R9); assert (((memory_load32_le(mem, $x_addr) == x_old) || (memory_load32_le(mem, $x_addr) == 1bv32)) || (memory_load32_le(mem, $x_addr) == 6bv32)); - assume {:captureState "%000002da"} true; - R0, Gamma_R0 := 0bv64, true; - goto main_1812_basil_return; - main_1812_basil_return: - assume {:captureState "main_1812_basil_return"} true; + assume {:captureState "%00000290"} true; + goto main_basil_return; + main_basil_return: + assume {:captureState "main_basil_return"} true; return; } diff --git a/src/test/correct/basic_assign_increment/clang/basic_assign_increment.gts b/src/test/correct/basic_assign_increment/clang/basic_assign_increment.gts deleted file mode 100644 index b5743bd44..000000000 Binary files a/src/test/correct/basic_assign_increment/clang/basic_assign_increment.gts and /dev/null differ diff --git a/src/test/correct/basic_assign_increment/clang/basic_assign_increment.md5sum b/src/test/correct/basic_assign_increment/clang/basic_assign_increment.md5sum new file mode 100644 index 000000000..e848df394 --- /dev/null +++ b/src/test/correct/basic_assign_increment/clang/basic_assign_increment.md5sum @@ -0,0 +1,5 @@ +417507352bcc01af22daf2472ca62740 correct/basic_assign_increment/clang/a.out +7c030f0ad5ee0f32bfcc7ed5156ca122 correct/basic_assign_increment/clang/basic_assign_increment.adt +b08cf59200250a2fda02331efafb9803 correct/basic_assign_increment/clang/basic_assign_increment.bir +c8b5c4581bb4fa1010112858b34510e8 correct/basic_assign_increment/clang/basic_assign_increment.relf +0fa2a96f3e77a5c73596b582d105f0f0 correct/basic_assign_increment/clang/basic_assign_increment.gts diff --git a/src/test/correct/basic_assign_increment/clang/basic_assign_increment.relf b/src/test/correct/basic_assign_increment/clang/basic_assign_increment.relf deleted file mode 100644 index ad07ba517..000000000 --- a/src/test/correct/basic_assign_increment/clang/basic_assign_increment.relf +++ /dev/null @@ -1,123 +0,0 @@ - -Relocation section '.rela.dyn' at offset 0x460 contains 8 entries: - Offset Info Type Symbol's Value Symbol's Name + Addend -0000000000010dc8 0000000000000403 R_AARCH64_RELATIVE 710 -0000000000010dd0 0000000000000403 R_AARCH64_RELATIVE 6c0 -0000000000010fd8 0000000000000403 R_AARCH64_RELATIVE 714 -0000000000011028 0000000000000403 R_AARCH64_RELATIVE 11028 -0000000000010fc0 0000000400000401 R_AARCH64_GLOB_DAT 0000000000000000 _ITM_deregisterTMCloneTable + 0 -0000000000010fc8 0000000500000401 R_AARCH64_GLOB_DAT 0000000000000000 __cxa_finalize@GLIBC_2.17 + 0 -0000000000010fd0 0000000600000401 R_AARCH64_GLOB_DAT 0000000000000000 __gmon_start__ + 0 -0000000000010fe0 0000000800000401 R_AARCH64_GLOB_DAT 0000000000000000 _ITM_registerTMCloneTable + 0 - -Relocation section '.rela.plt' at offset 0x520 contains 4 entries: - Offset Info Type Symbol's Value Symbol's Name + Addend -0000000000011000 0000000300000402 R_AARCH64_JUMP_SLOT 0000000000000000 __libc_start_main@GLIBC_2.34 + 0 -0000000000011008 0000000500000402 R_AARCH64_JUMP_SLOT 0000000000000000 __cxa_finalize@GLIBC_2.17 + 0 -0000000000011010 0000000600000402 R_AARCH64_JUMP_SLOT 0000000000000000 __gmon_start__ + 0 -0000000000011018 0000000700000402 R_AARCH64_JUMP_SLOT 0000000000000000 abort@GLIBC_2.17 + 0 - -Symbol table '.dynsym' contains 9 entries: - Num: Value Size Type Bind Vis Ndx Name - 0: 0000000000000000 0 NOTYPE LOCAL DEFAULT UND - 1: 0000000000000580 0 SECTION LOCAL DEFAULT 11 .init - 2: 0000000000011020 0 SECTION LOCAL DEFAULT 23 .data - 3: 0000000000000000 0 FUNC GLOBAL DEFAULT UND __libc_start_main@GLIBC_2.34 (2) - 4: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_deregisterTMCloneTable - 5: 0000000000000000 0 FUNC WEAK DEFAULT UND __cxa_finalize@GLIBC_2.17 (3) - 6: 0000000000000000 0 NOTYPE WEAK DEFAULT UND __gmon_start__ - 7: 0000000000000000 0 FUNC GLOBAL DEFAULT UND abort@GLIBC_2.17 (3) - 8: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_registerTMCloneTable - -Symbol table '.symtab' contains 90 entries: - Num: Value Size Type Bind Vis Ndx Name - 0: 0000000000000000 0 NOTYPE LOCAL DEFAULT UND - 1: 0000000000000238 0 SECTION LOCAL DEFAULT 1 .interp - 2: 0000000000000254 0 SECTION LOCAL DEFAULT 2 .note.gnu.build-id - 3: 0000000000000278 0 SECTION LOCAL DEFAULT 3 .note.ABI-tag - 4: 0000000000000298 0 SECTION LOCAL DEFAULT 4 .gnu.hash - 5: 00000000000002b8 0 SECTION LOCAL DEFAULT 5 .dynsym - 6: 0000000000000390 0 SECTION LOCAL DEFAULT 6 .dynstr - 7: 000000000000041e 0 SECTION LOCAL DEFAULT 7 .gnu.version - 8: 0000000000000430 0 SECTION LOCAL DEFAULT 8 .gnu.version_r - 9: 0000000000000460 0 SECTION LOCAL DEFAULT 9 .rela.dyn - 10: 0000000000000520 0 SECTION LOCAL DEFAULT 10 .rela.plt - 11: 0000000000000580 0 SECTION LOCAL DEFAULT 11 .init - 12: 00000000000005a0 0 SECTION LOCAL DEFAULT 12 .plt - 13: 0000000000000600 0 SECTION LOCAL DEFAULT 13 .text - 14: 000000000000072c 0 SECTION LOCAL DEFAULT 14 .fini - 15: 0000000000000740 0 SECTION LOCAL DEFAULT 15 .rodata - 16: 0000000000000744 0 SECTION LOCAL DEFAULT 16 .eh_frame_hdr - 17: 0000000000000780 0 SECTION LOCAL DEFAULT 17 .eh_frame - 18: 0000000000010dc8 0 SECTION LOCAL DEFAULT 18 .init_array - 19: 0000000000010dd0 0 SECTION LOCAL DEFAULT 19 .fini_array - 20: 0000000000010dd8 0 SECTION LOCAL DEFAULT 20 .dynamic - 21: 0000000000010fb8 0 SECTION LOCAL DEFAULT 21 .got - 22: 0000000000010fe8 0 SECTION LOCAL DEFAULT 22 .got.plt - 23: 0000000000011020 0 SECTION LOCAL DEFAULT 23 .data - 24: 0000000000011030 0 SECTION LOCAL DEFAULT 24 .bss - 25: 0000000000000000 0 SECTION LOCAL DEFAULT 25 .comment - 26: 0000000000000000 0 FILE LOCAL DEFAULT ABS Scrt1.o - 27: 0000000000000278 0 NOTYPE LOCAL DEFAULT 3 $d - 28: 0000000000000278 32 OBJECT LOCAL DEFAULT 3 __abi_tag - 29: 0000000000000600 0 NOTYPE LOCAL DEFAULT 13 $x - 30: 0000000000000794 0 NOTYPE LOCAL DEFAULT 17 $d - 31: 0000000000000740 0 NOTYPE LOCAL DEFAULT 15 $d - 32: 0000000000000000 0 FILE LOCAL DEFAULT ABS crti.o - 33: 0000000000000634 0 NOTYPE LOCAL DEFAULT 13 $x - 34: 0000000000000634 20 FUNC LOCAL DEFAULT 13 call_weak_fn - 35: 0000000000000580 0 NOTYPE LOCAL DEFAULT 11 $x - 36: 000000000000072c 0 NOTYPE LOCAL DEFAULT 14 $x - 37: 0000000000000000 0 FILE LOCAL DEFAULT ABS crtn.o - 38: 0000000000000590 0 NOTYPE LOCAL DEFAULT 11 $x - 39: 0000000000000738 0 NOTYPE LOCAL DEFAULT 14 $x - 40: 0000000000000000 0 FILE LOCAL DEFAULT ABS crtstuff.c - 41: 0000000000000650 0 NOTYPE LOCAL DEFAULT 13 $x - 42: 0000000000000650 0 FUNC LOCAL DEFAULT 13 deregister_tm_clones - 43: 0000000000000680 0 FUNC LOCAL DEFAULT 13 register_tm_clones - 44: 0000000000011028 0 NOTYPE LOCAL DEFAULT 23 $d - 45: 00000000000006c0 0 FUNC LOCAL DEFAULT 13 __do_global_dtors_aux - 46: 0000000000011030 1 OBJECT LOCAL DEFAULT 24 completed.0 - 47: 0000000000010dd0 0 NOTYPE LOCAL DEFAULT 19 $d - 48: 0000000000010dd0 0 OBJECT LOCAL DEFAULT 19 __do_global_dtors_aux_fini_array_entry - 49: 0000000000000710 0 FUNC LOCAL DEFAULT 13 frame_dummy - 50: 0000000000010dc8 0 NOTYPE LOCAL DEFAULT 18 $d - 51: 0000000000010dc8 0 OBJECT LOCAL DEFAULT 18 __frame_dummy_init_array_entry - 52: 00000000000007a8 0 NOTYPE LOCAL DEFAULT 17 $d - 53: 0000000000011030 0 NOTYPE LOCAL DEFAULT 24 $d - 54: 0000000000000000 0 FILE LOCAL DEFAULT ABS basic_assign_increment.c - 55: 0000000000000714 0 NOTYPE LOCAL DEFAULT 13 $x.0 - 56: 0000000000011034 0 NOTYPE LOCAL DEFAULT 24 $d.1 - 57: 000000000000002a 0 NOTYPE LOCAL DEFAULT 25 $d.2 - 58: 0000000000000808 0 NOTYPE LOCAL DEFAULT 17 $d.3 - 59: 0000000000000000 0 FILE LOCAL DEFAULT ABS crtstuff.c - 60: 0000000000000830 0 NOTYPE LOCAL DEFAULT 17 $d - 61: 0000000000000830 0 OBJECT LOCAL DEFAULT 17 __FRAME_END__ - 62: 0000000000000000 0 FILE LOCAL DEFAULT ABS - 63: 0000000000010dd8 0 OBJECT LOCAL DEFAULT ABS _DYNAMIC - 64: 0000000000000744 0 NOTYPE LOCAL DEFAULT 16 __GNU_EH_FRAME_HDR - 65: 0000000000010fb8 0 OBJECT LOCAL DEFAULT ABS _GLOBAL_OFFSET_TABLE_ - 66: 00000000000005a0 0 NOTYPE LOCAL DEFAULT 12 $x - 67: 0000000000000000 0 FUNC GLOBAL DEFAULT UND __libc_start_main@GLIBC_2.34 - 68: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_deregisterTMCloneTable - 69: 0000000000011020 0 NOTYPE WEAK DEFAULT 23 data_start - 70: 0000000000011030 0 NOTYPE GLOBAL DEFAULT 24 __bss_start__ - 71: 0000000000000000 0 FUNC WEAK DEFAULT UND __cxa_finalize@GLIBC_2.17 - 72: 0000000000011038 0 NOTYPE GLOBAL DEFAULT 24 _bss_end__ - 73: 0000000000011030 0 NOTYPE GLOBAL DEFAULT 23 _edata - 74: 0000000000011034 4 OBJECT GLOBAL DEFAULT 24 x - 75: 000000000000072c 0 FUNC GLOBAL HIDDEN 14 _fini - 76: 0000000000011038 0 NOTYPE GLOBAL DEFAULT 24 __bss_end__ - 77: 0000000000011020 0 NOTYPE GLOBAL DEFAULT 23 __data_start - 78: 0000000000000000 0 NOTYPE WEAK DEFAULT UND __gmon_start__ - 79: 0000000000011028 0 OBJECT GLOBAL HIDDEN 23 __dso_handle - 80: 0000000000000000 0 FUNC GLOBAL DEFAULT UND abort@GLIBC_2.17 - 81: 0000000000000740 4 OBJECT GLOBAL DEFAULT 15 _IO_stdin_used - 82: 0000000000011038 0 NOTYPE GLOBAL DEFAULT 24 _end - 83: 0000000000000600 52 FUNC GLOBAL DEFAULT 13 _start - 84: 0000000000011038 0 NOTYPE GLOBAL DEFAULT 24 __end__ - 85: 0000000000011030 0 NOTYPE GLOBAL DEFAULT 24 __bss_start - 86: 0000000000000714 24 FUNC GLOBAL DEFAULT 13 main - 87: 0000000000011030 0 OBJECT GLOBAL HIDDEN 23 __TMC_END__ - 88: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_registerTMCloneTable - 89: 0000000000000580 0 FUNC GLOBAL HIDDEN 11 _init diff --git a/src/test/correct/basic_assign_increment/clang/basic_assign_increment_gtirb.expected b/src/test/correct/basic_assign_increment/clang/basic_assign_increment_gtirb.expected index 52ac9d74e..496bf6269 100644 --- a/src/test/correct/basic_assign_increment/clang/basic_assign_increment_gtirb.expected +++ b/src/test/correct/basic_assign_increment/clang/basic_assign_increment_gtirb.expected @@ -7,7 +7,7 @@ var {:extern} R8: bv64; var {:extern} R9: bv64; var {:extern} mem: [bv64]bv8; const {:extern} $x_addr: bv64; -axiom ($x_addr == 69684bv64); +axiom ($x_addr == 131092bv64); function {:extern} L(mem$in: [bv64]bv8, index: bv64) returns (bool) { (if (index == $x_addr) then true else false) } @@ -18,6 +18,10 @@ function {:extern} gamma_load32(gammaMap: [bv64]bool, index: bv64) returns (bool (gammaMap[bvadd64(index, 3bv64)] && (gammaMap[bvadd64(index, 2bv64)] && (gammaMap[bvadd64(index, 1bv64)] && gammaMap[index]))) } +function {:extern} gamma_load64(gammaMap: [bv64]bool, index: bv64) returns (bool) { + (gammaMap[bvadd64(index, 7bv64)] && (gammaMap[bvadd64(index, 6bv64)] && (gammaMap[bvadd64(index, 5bv64)] && (gammaMap[bvadd64(index, 4bv64)] && (gammaMap[bvadd64(index, 3bv64)] && (gammaMap[bvadd64(index, 2bv64)] && (gammaMap[bvadd64(index, 1bv64)] && gammaMap[index]))))))) +} + function {:extern} gamma_store32(gammaMap: [bv64]bool, index: bv64, value: bool) returns ([bv64]bool) { gammaMap[index := value][bvadd64(index, 1bv64) := value][bvadd64(index, 2bv64) := value][bvadd64(index, 3bv64) := value] } @@ -39,11 +43,12 @@ procedure {:extern} rely(); modifies Gamma_mem, mem; ensures (forall i: bv64 :: (((mem[i] == old(mem[i])) ==> (Gamma_mem[i] == old(Gamma_mem[i]))))); ensures ((memory_load32_le(mem, $x_addr) == old(memory_load32_le(mem, $x_addr))) || (memory_load32_le(mem, $x_addr) == 5bv32)); - free ensures (memory_load32_le(mem, 1856bv64) == 131073bv32); - free ensures (memory_load64_le(mem, 69064bv64) == 1808bv64); - free ensures (memory_load64_le(mem, 69072bv64) == 1728bv64); - free ensures (memory_load64_le(mem, 69592bv64) == 1812bv64); - free ensures (memory_load64_le(mem, 69672bv64) == 69672bv64); + free ensures (memory_load32_le(mem, 2308bv64) == 131073bv32); + free ensures (memory_load64_le(mem, 130432bv64) == 2256bv64); + free ensures (memory_load64_le(mem, 130440bv64) == 2176bv64); + free ensures (memory_load64_le(mem, 131040bv64) == 131092bv64); + free ensures (memory_load64_le(mem, 131056bv64) == 2260bv64); + free ensures (memory_load64_le(mem, 131080bv64) == 131080bv64); procedure {:extern} rely_transitive(); modifies Gamma_mem, mem; @@ -70,45 +75,52 @@ implementation {:extern} guarantee_reflexive() assert (((memory_load32_le(mem, $x_addr) == memory_load32_le(mem, $x_addr)) || (memory_load32_le(mem, $x_addr) == 1bv32)) || (memory_load32_le(mem, $x_addr) == 6bv32)); } -procedure main_1812(); +procedure main(); modifies Gamma_R0, Gamma_R8, Gamma_R9, Gamma_mem, R0, R8, R9, mem; requires (memory_load32_le(mem, $x_addr) == 0bv32); - free requires (memory_load64_le(mem, 69664bv64) == 0bv64); - free requires (memory_load64_le(mem, 69672bv64) == 69672bv64); - free requires (memory_load32_le(mem, 1856bv64) == 131073bv32); - free requires (memory_load64_le(mem, 69064bv64) == 1808bv64); - free requires (memory_load64_le(mem, 69072bv64) == 1728bv64); - free requires (memory_load64_le(mem, 69592bv64) == 1812bv64); - free requires (memory_load64_le(mem, 69672bv64) == 69672bv64); + free requires (memory_load64_le(mem, 131072bv64) == 0bv64); + free requires (memory_load64_le(mem, 131080bv64) == 131080bv64); + free requires (memory_load32_le(mem, 2308bv64) == 131073bv32); + free requires (memory_load64_le(mem, 130432bv64) == 2256bv64); + free requires (memory_load64_le(mem, 130440bv64) == 2176bv64); + free requires (memory_load64_le(mem, 131040bv64) == 131092bv64); + free requires (memory_load64_le(mem, 131056bv64) == 2260bv64); + free requires (memory_load64_le(mem, 131080bv64) == 131080bv64); ensures (((memory_load32_le(mem, $x_addr) == 1bv32) || (memory_load32_le(mem, $x_addr) == 5bv32)) || (memory_load32_le(mem, $x_addr) == 6bv32)); - free ensures (memory_load32_le(mem, 1856bv64) == 131073bv32); - free ensures (memory_load64_le(mem, 69064bv64) == 1808bv64); - free ensures (memory_load64_le(mem, 69072bv64) == 1728bv64); - free ensures (memory_load64_le(mem, 69592bv64) == 1812bv64); - free ensures (memory_load64_le(mem, 69672bv64) == 69672bv64); + free ensures (memory_load32_le(mem, 2308bv64) == 131073bv32); + free ensures (memory_load64_le(mem, 130432bv64) == 2256bv64); + free ensures (memory_load64_le(mem, 130440bv64) == 2176bv64); + free ensures (memory_load64_le(mem, 131040bv64) == 131092bv64); + free ensures (memory_load64_le(mem, 131056bv64) == 2260bv64); + free ensures (memory_load64_le(mem, 131080bv64) == 131080bv64); -implementation main_1812() +implementation main() { - var Gamma_load3: bool; - var load3: bv32; + var $load11: bv64; + var $load12: bv32; + var Gamma_$load11: bool; + var Gamma_$load12: bool; var x_old: bv32; - main_1812__0__H_EeiA6dR0KUx9b5mWQKhQ: - assume {:captureState "main_1812__0__H_EeiA6dR0KUx9b5mWQKhQ"} true; - R9, Gamma_R9 := 69632bv64, true; + $main$__0__$oqiqdATZTc6MDOYJqL9Aew: + assume {:captureState "$main$__0__$oqiqdATZTc6MDOYJqL9Aew"} true; + R8, Gamma_R8 := 126976bv64, true; + R0, Gamma_R0 := 0bv64, true; call rely(); - load3, Gamma_load3 := memory_load32_le(mem, bvadd64(R9, 52bv64)), (gamma_load32(Gamma_mem, bvadd64(R9, 52bv64)) || L(mem, bvadd64(R9, 52bv64))); - R8, Gamma_R8 := zero_extend32_32(load3), Gamma_load3; - R8, Gamma_R8 := zero_extend32_32(bvadd32(R8[32:0], 1bv32)), Gamma_R8; + $load11, Gamma_$load11 := memory_load64_le(mem, bvadd64(R8, 4064bv64)), (gamma_load64(Gamma_mem, bvadd64(R8, 4064bv64)) || L(mem, bvadd64(R8, 4064bv64))); + R8, Gamma_R8 := $load11, Gamma_$load11; call rely(); + $load12, Gamma_$load12 := memory_load32_le(mem, R8), (gamma_load32(Gamma_mem, R8) || L(mem, R8)); + R9, Gamma_R9 := zero_extend32_32($load12), Gamma_$load12; + R9, Gamma_R9 := zero_extend32_32(bvadd32(R9[32:0], 1bv32)), Gamma_R9; + call rely(); + assert (L(mem, R8) ==> Gamma_R9); x_old := memory_load32_le(mem, $x_addr); - assert (L(mem, bvadd64(R9, 52bv64)) ==> Gamma_R8); - mem, Gamma_mem := memory_store32_le(mem, bvadd64(R9, 52bv64), R8[32:0]), gamma_store32(Gamma_mem, bvadd64(R9, 52bv64), Gamma_R8); + mem, Gamma_mem := memory_store32_le(mem, R8, R9[32:0]), gamma_store32(Gamma_mem, R8, Gamma_R9); assert (((memory_load32_le(mem, $x_addr) == x_old) || (memory_load32_le(mem, $x_addr) == 1bv32)) || (memory_load32_le(mem, $x_addr) == 6bv32)); - assume {:captureState "1824_0"} true; - R0, Gamma_R0 := 0bv64, true; - goto main_1812_basil_return; - main_1812_basil_return: - assume {:captureState "main_1812_basil_return"} true; + assume {:captureState "2280$0"} true; + goto main_basil_return; + main_basil_return: + assume {:captureState "main_basil_return"} true; return; } diff --git a/src/test/correct/basic_assign_increment/clang_pic/basic_assign_increment.adt b/src/test/correct/basic_assign_increment/clang_pic/basic_assign_increment.adt deleted file mode 100644 index 79ae6b3e9..000000000 --- a/src/test/correct/basic_assign_increment/clang_pic/basic_assign_increment.adt +++ /dev/null @@ -1,501 +0,0 @@ -Project(Attrs([Attr("filename","\"clang_pic/basic_assign_increment.out\""), -Attr("image-specification","(declare abi (name str))\n(declare arch (name str))\n(declare base-address (addr int))\n(declare bias (off int))\n(declare bits (size int))\n(declare code-region (addr int) (size int) (off int))\n(declare code-start (addr int))\n(declare entry-point (addr int))\n(declare external-reference (addr int) (name str))\n(declare format (name str))\n(declare is-executable (flag bool))\n(declare is-little-endian (flag bool))\n(declare llvm:base-address (addr int))\n(declare llvm:code-entry (name str) (off int) (size int))\n(declare llvm:coff-import-library (name str))\n(declare llvm:coff-virtual-section-header (name str) (addr int) (size int))\n(declare llvm:elf-program-header (name str) (off int) (size int))\n(declare llvm:elf-program-header-flags (name str) (ld bool) (r bool) \n (w bool) (x bool))\n(declare llvm:elf-virtual-program-header (name str) (addr int) (size int))\n(declare llvm:entry-point (addr int))\n(declare llvm:macho-symbol (name str) (value int))\n(declare llvm:name-reference (at int) (name str))\n(declare llvm:relocation (at int) (addr int))\n(declare llvm:section-entry (name str) (addr int) (size int) (off int))\n(declare llvm:section-flags (name str) (r bool) (w bool) (x bool))\n(declare llvm:segment-command (name str) (off int) (size int))\n(declare llvm:segment-command-flags (name str) (r bool) (w bool) (x bool))\n(declare llvm:symbol-entry (name str) (addr int) (size int) (off int)\n (value int))\n(declare llvm:virtual-segment-command (name str) (addr int) (size int))\n(declare mapped (addr int) (size int) (off int))\n(declare named-region (addr int) (size int) (name str))\n(declare named-symbol (addr int) (name str))\n(declare require (name str))\n(declare section (addr int) (size int))\n(declare segment (addr int) (size int) (r bool) (w bool) (x bool))\n(declare subarch (name str))\n(declare symbol-chunk (addr int) (size int) (root int))\n(declare symbol-value (addr int) (value int))\n(declare system (name str))\n(declare vendor (name str))\n\n(abi unknown)\n(arch aarch64)\n(base-address 0)\n(bias 0)\n(bits 64)\n(code-region 1904 20 1904)\n(code-region 1600 304 1600)\n(code-region 1456 96 1456)\n(code-region 1432 24 1432)\n(code-start 1652)\n(code-start 1600)\n(code-start 1876)\n(entry-point 1600)\n(external-reference 69560 _ITM_deregisterTMCloneTable)\n(external-reference 69568 __cxa_finalize)\n(external-reference 69584 __gmon_start__)\n(external-reference 69600 _ITM_registerTMCloneTable)\n(external-reference 69632 __libc_start_main)\n(external-reference 69640 __cxa_finalize)\n(external-reference 69648 __gmon_start__)\n(external-reference 69656 abort)\n(format elf)\n(is-executable true)\n(is-little-endian true)\n(llvm:base-address 0)\n(llvm:code-entry abort 0 0)\n(llvm:code-entry __cxa_finalize 0 0)\n(llvm:code-entry __libc_start_main 0 0)\n(llvm:code-entry _init 1432 0)\n(llvm:code-entry main 1876 28)\n(llvm:code-entry _start 1600 52)\n(llvm:code-entry abort@GLIBC_2.17 0 0)\n(llvm:code-entry _fini 1904 0)\n(llvm:code-entry __cxa_finalize@GLIBC_2.17 0 0)\n(llvm:code-entry __libc_start_main@GLIBC_2.34 0 0)\n(llvm:code-entry frame_dummy 1872 0)\n(llvm:code-entry __do_global_dtors_aux 1792 0)\n(llvm:code-entry register_tm_clones 1728 0)\n(llvm:code-entry deregister_tm_clones 1680 0)\n(llvm:code-entry call_weak_fn 1652 20)\n(llvm:code-entry .fini 1904 20)\n(llvm:code-entry .text 1600 304)\n(llvm:code-entry .plt 1456 96)\n(llvm:code-entry .init 1432 24)\n(llvm:elf-program-header 08 3520 576)\n(llvm:elf-program-header 07 0 0)\n(llvm:elf-program-header 06 1928 60)\n(llvm:elf-program-header 05 596 68)\n(llvm:elf-program-header 04 3536 480)\n(llvm:elf-program-header 03 3520 624)\n(llvm:elf-program-header 02 0 2172)\n(llvm:elf-program-header 01 568 27)\n(llvm:elf-program-header 00 64 504)\n(llvm:elf-program-header-flags 08 false true false false)\n(llvm:elf-program-header-flags 07 false true true false)\n(llvm:elf-program-header-flags 06 false true false false)\n(llvm:elf-program-header-flags 05 false true false false)\n(llvm:elf-program-header-flags 04 false true true false)\n(llvm:elf-program-header-flags 03 true true true false)\n(llvm:elf-program-header-flags 02 true true false true)\n(llvm:elf-program-header-flags 01 false true false false)\n(llvm:elf-program-header-flags 00 false true false false)\n(llvm:elf-virtual-program-header 08 69056 576)\n(llvm:elf-virtual-program-header 07 0 0)\n(llvm:elf-virtual-program-header 06 1928 60)\n(llvm:elf-virtual-program-header 05 596 68)\n(llvm:elf-virtual-program-header 04 69072 480)\n(llvm:elf-virtual-program-header 03 69056 632)\n(llvm:elf-virtual-program-header 02 0 2172)\n(llvm:elf-virtual-program-header 01 568 27)\n(llvm:elf-virtual-program-header 00 64 504)\n(llvm:entry-point 1600)\n(llvm:name-reference 69656 abort)\n(llvm:name-reference 69648 __gmon_start__)\n(llvm:name-reference 69640 __cxa_finalize)\n(llvm:name-reference 69632 __libc_start_main)\n(llvm:name-reference 69600 _ITM_registerTMCloneTable)\n(llvm:name-reference 69584 __gmon_start__)\n(llvm:name-reference 69568 __cxa_finalize)\n(llvm:name-reference 69560 _ITM_deregisterTMCloneTable)\n(llvm:section-entry .shstrtab 0 259 6954)\n(llvm:section-entry .strtab 0 578 6376)\n(llvm:section-entry .symtab 0 2160 4216)\n(llvm:section-entry .comment 0 71 4144)\n(llvm:section-entry .bss 69680 8 4144)\n(llvm:section-entry .data 69664 16 4128)\n(llvm:section-entry .got.plt 69608 56 4072)\n(llvm:section-entry .got 69552 56 4016)\n(llvm:section-entry .dynamic 69072 480 3536)\n(llvm:section-entry .fini_array 69064 8 3528)\n(llvm:section-entry .init_array 69056 8 3520)\n(llvm:section-entry .eh_frame 1992 180 1992)\n(llvm:section-entry .eh_frame_hdr 1928 60 1928)\n(llvm:section-entry .rodata 1924 4 1924)\n(llvm:section-entry .fini 1904 20 1904)\n(llvm:section-entry .text 1600 304 1600)\n(llvm:section-entry .plt 1456 96 1456)\n(llvm:section-entry .init 1432 24 1432)\n(llvm:section-entry .rela.plt 1336 96 1336)\n(llvm:section-entry .rela.dyn 1120 216 1120)\n(llvm:section-entry .gnu.version_r 1072 48 1072)\n(llvm:section-entry .gnu.version 1054 18 1054)\n(llvm:section-entry .dynstr 912 141 912)\n(llvm:section-entry .dynsym 696 216 696)\n(llvm:section-entry .gnu.hash 664 28 664)\n(llvm:section-entry .note.ABI-tag 632 32 632)\n(llvm:section-entry .note.gnu.build-id 596 36 596)\n(llvm:section-entry .interp 568 27 568)\n(llvm:section-flags .shstrtab true false false)\n(llvm:section-flags .strtab true false false)\n(llvm:section-flags .symtab true false false)\n(llvm:section-flags .comment true false false)\n(llvm:section-flags .bss true true false)\n(llvm:section-flags .data true true false)\n(llvm:section-flags .got.plt true true false)\n(llvm:section-flags .got true true false)\n(llvm:section-flags .dynamic true true false)\n(llvm:section-flags .fini_array true true false)\n(llvm:section-flags .init_array true true false)\n(llvm:section-flags .eh_frame true false false)\n(llvm:section-flags .eh_frame_hdr true false false)\n(llvm:section-flags .rodata true false false)\n(llvm:section-flags .fini true false true)\n(llvm:section-flags .text true false true)\n(llvm:section-flags .plt true false true)\n(llvm:section-flags .init true false true)\n(llvm:section-flags .rela.plt true false false)\n(llvm:section-flags .rela.dyn true false false)\n(llvm:section-flags .gnu.version_r true false false)\n(llvm:section-flags .gnu.version true false false)\n(llvm:section-flags .dynstr true false false)\n(llvm:section-flags .dynsym true false false)\n(llvm:section-flags .gnu.hash true false false)\n(llvm:section-flags .note.ABI-tag true false false)\n(llvm:section-flags .note.gnu.build-id true false false)\n(llvm:section-flags .interp true false false)\n(llvm:symbol-entry abort 0 0 0 0)\n(llvm:symbol-entry __cxa_finalize 0 0 0 0)\n(llvm:symbol-entry __libc_start_main 0 0 0 0)\n(llvm:symbol-entry _init 1432 0 1432 1432)\n(llvm:symbol-entry main 1876 28 1876 1876)\n(llvm:symbol-entry _start 1600 52 1600 1600)\n(llvm:symbol-entry abort@GLIBC_2.17 0 0 0 0)\n(llvm:symbol-entry _fini 1904 0 1904 1904)\n(llvm:symbol-entry __cxa_finalize@GLIBC_2.17 0 0 0 0)\n(llvm:symbol-entry __libc_start_main@GLIBC_2.34 0 0 0 0)\n(llvm:symbol-entry frame_dummy 1872 0 1872 1872)\n(llvm:symbol-entry __do_global_dtors_aux 1792 0 1792 1792)\n(llvm:symbol-entry register_tm_clones 1728 0 1728 1728)\n(llvm:symbol-entry deregister_tm_clones 1680 0 1680 1680)\n(llvm:symbol-entry call_weak_fn 1652 20 1652 1652)\n(mapped 0 2172 0)\n(mapped 69056 624 3520)\n(named-region 0 2172 02)\n(named-region 69056 632 03)\n(named-region 568 27 .interp)\n(named-region 596 36 .note.gnu.build-id)\n(named-region 632 32 .note.ABI-tag)\n(named-region 664 28 .gnu.hash)\n(named-region 696 216 .dynsym)\n(named-region 912 141 .dynstr)\n(named-region 1054 18 .gnu.version)\n(named-region 1072 48 .gnu.version_r)\n(named-region 1120 216 .rela.dyn)\n(named-region 1336 96 .rela.plt)\n(named-region 1432 24 .init)\n(named-region 1456 96 .plt)\n(named-region 1600 304 .text)\n(named-region 1904 20 .fini)\n(named-region 1924 4 .rodata)\n(named-region 1928 60 .eh_frame_hdr)\n(named-region 1992 180 .eh_frame)\n(named-region 69056 8 .init_array)\n(named-region 69064 8 .fini_array)\n(named-region 69072 480 .dynamic)\n(named-region 69552 56 .got)\n(named-region 69608 56 .got.plt)\n(named-region 69664 16 .data)\n(named-region 69680 8 .bss)\n(named-region 0 71 .comment)\n(named-region 0 2160 .symtab)\n(named-region 0 578 .strtab)\n(named-region 0 259 .shstrtab)\n(named-symbol 1652 call_weak_fn)\n(named-symbol 1680 deregister_tm_clones)\n(named-symbol 1728 register_tm_clones)\n(named-symbol 1792 __do_global_dtors_aux)\n(named-symbol 1872 frame_dummy)\n(named-symbol 0 __libc_start_main@GLIBC_2.34)\n(named-symbol 0 __cxa_finalize@GLIBC_2.17)\n(named-symbol 1904 _fini)\n(named-symbol 0 abort@GLIBC_2.17)\n(named-symbol 1600 _start)\n(named-symbol 1876 main)\n(named-symbol 1432 _init)\n(named-symbol 0 __libc_start_main)\n(named-symbol 0 __cxa_finalize)\n(named-symbol 0 abort)\n(require libc.so.6)\n(section 568 27)\n(section 596 36)\n(section 632 32)\n(section 664 28)\n(section 696 216)\n(section 912 141)\n(section 1054 18)\n(section 1072 48)\n(section 1120 216)\n(section 1336 96)\n(section 1432 24)\n(section 1456 96)\n(section 1600 304)\n(section 1904 20)\n(section 1924 4)\n(section 1928 60)\n(section 1992 180)\n(section 69056 8)\n(section 69064 8)\n(section 69072 480)\n(section 69552 56)\n(section 69608 56)\n(section 69664 16)\n(section 69680 8)\n(section 0 71)\n(section 0 2160)\n(section 0 578)\n(section 0 259)\n(segment 0 2172 true false true)\n(segment 69056 632 true true false)\n(subarch v8)\n(symbol-chunk 1652 20 1652)\n(symbol-chunk 1600 52 1600)\n(symbol-chunk 1876 28 1876)\n(symbol-value 1652 1652)\n(symbol-value 1680 1680)\n(symbol-value 1728 1728)\n(symbol-value 1792 1792)\n(symbol-value 1872 1872)\n(symbol-value 1904 1904)\n(symbol-value 1600 1600)\n(symbol-value 1876 1876)\n(symbol-value 1432 1432)\n(symbol-value 0 0)\n(system \"\")\n(vendor \"\")\n"), -Attr("abi-name","\"aarch64-linux-gnu-elf\"")]), -Sections([Section(".shstrtab", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x40\x06\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x30\x1c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x38\x00\x09\x00\x40\x00\x1d\x00\x1c\x00\x06\x00\x00\x00\x04\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x04\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x08\x00\x00\x00\x00\x00\x00\x7c\x08\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x01\x00\x00\x00\x06\x00\x00\x00\xc0\x0d\x00\x00\x00\x00\x00\x00\xc0\x0d\x01\x00\x00\x00\x00\x00\xc0\x0d\x01"), -Section(".strtab", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x40\x06\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x30\x1c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x38\x00\x09\x00\x40\x00\x1d\x00\x1c\x00\x06\x00\x00\x00\x04\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x04\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x08\x00\x00\x00\x00\x00\x00\x7c\x08\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x01\x00\x00\x00\x06\x00\x00\x00\xc0\x0d\x00\x00\x00\x00\x00\x00\xc0\x0d\x01\x00\x00\x00\x00\x00\xc0\x0d\x01\x00\x00\x00\x00\x00\x70\x02\x00\x00\x00\x00\x00\x00\x78\x02\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x02\x00\x00\x00\x06\x00\x00\x00\xd0\x0d\x00\x00\x00\x00\x00\x00\xd0\x0d\x01\x00\x00\x00\x00\x00\xd0\x0d\x01\x00\x00\x00\x00\x00\xe0\x01\x00\x00\x00\x00\x00\x00\xe0\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x04\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x50\xe5\x74\x64\x04\x00\x00\x00\x88\x07\x00\x00\x00\x00\x00\x00\x88\x07\x00\x00\x00\x00\x00\x00\x88\x07\x00\x00\x00\x00\x00\x00\x3c\x00\x00\x00\x00\x00\x00\x00\x3c\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x51\xe5\x74\x64\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x52\xe5\x74\x64\x04\x00\x00\x00\xc0\x0d\x00\x00\x00\x00\x00\x00\xc0\x0d\x01\x00\x00\x00\x00\x00\xc0\x0d\x01\x00\x00\x00\x00\x00\x40\x02\x00\x00\x00\x00\x00\x00\x40\x02\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x2f\x6c\x69\x62\x2f\x6c\x64\x2d\x6c\x69"), -Section(".symtab", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x40\x06\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x30\x1c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x38\x00\x09\x00\x40\x00\x1d\x00\x1c\x00\x06\x00\x00\x00\x04\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x04\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x08\x00\x00\x00\x00\x00\x00\x7c\x08\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x01\x00\x00\x00\x06\x00\x00\x00\xc0\x0d\x00\x00\x00\x00\x00\x00\xc0\x0d\x01\x00\x00\x00\x00\x00\xc0\x0d\x01\x00\x00\x00\x00\x00\x70\x02\x00\x00\x00\x00\x00\x00\x78\x02\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x02\x00\x00\x00\x06\x00\x00\x00\xd0\x0d\x00\x00\x00\x00\x00\x00\xd0\x0d\x01\x00\x00\x00\x00\x00\xd0\x0d\x01\x00\x00\x00\x00\x00\xe0\x01\x00\x00\x00\x00\x00\x00\xe0\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x04\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x50\xe5\x74\x64\x04\x00\x00\x00\x88\x07\x00\x00\x00\x00\x00\x00\x88\x07\x00\x00\x00\x00\x00\x00\x88\x07\x00\x00\x00\x00\x00\x00\x3c\x00\x00\x00\x00\x00\x00\x00\x3c\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x51\xe5\x74\x64\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x52\xe5\x74\x64\x04\x00\x00\x00\xc0\x0d\x00\x00\x00\x00\x00\x00\xc0\x0d\x01\x00\x00\x00\x00\x00\xc0\x0d\x01\x00\x00\x00\x00\x00\x40\x02\x00\x00\x00\x00\x00\x00\x40\x02\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x2f\x6c\x69\x62\x2f\x6c\x64\x2d\x6c\x69\x6e\x75\x78\x2d\x61\x61\x72\x63\x68\x36\x34\x2e\x73\x6f\x2e\x31\x00\x00\x04\x00\x00\x00\x14\x00\x00\x00\x03\x00\x00\x00\x47\x4e\x55\x00\x88\xae\x13\x95\xa6\x99\xd0\xcf\x28\x51\xed\xa4\xa8\x38\xd8\xe1\x7e\xb9\x68\xe7\x04\x00\x00\x00\x10\x00\x00\x00\x01\x00\x00\x00\x47\x4e\x55\x00\x00\x00\x00\x00\x03\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x01\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x0b\x00\x98\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x17\x00\x20\x10\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x48\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x22\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x22\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x73\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5f\x5f\x63\x78\x61\x5f\x66\x69\x6e\x61\x6c\x69\x7a\x65\x00\x5f\x5f\x6c\x69\x62\x63\x5f\x73\x74\x61\x72\x74\x5f\x6d\x61\x69\x6e\x00\x61\x62\x6f\x72\x74\x00\x6c\x69\x62\x63\x2e\x73\x6f\x2e\x36\x00\x47\x4c\x49\x42\x43\x5f\x32\x2e\x31\x37\x00\x47\x4c\x49\x42\x43\x5f\x32\x2e\x33\x34\x00\x5f\x49\x54\x4d\x5f\x64\x65\x72\x65\x67\x69\x73\x74\x65\x72\x54\x4d\x43\x6c\x6f\x6e\x65\x54\x61\x62\x6c\x65\x00\x5f\x5f\x67\x6d\x6f\x6e\x5f\x73\x74\x61\x72\x74\x5f\x5f\x00\x5f\x49\x54\x4d\x5f\x72\x65\x67\x69\x73\x74\x65\x72\x54\x4d\x43\x6c\x6f\x6e\x65\x54\x61\x62\x6c\x65\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x01\x00\x03\x00\x01\x00\x03\x00\x01\x00\x01\x00\x02\x00\x28\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x97\x91\x96\x06\x00\x00\x03\x00\x32\x00\x00\x00\x10\x00\x00\x00\xb4\x91\x96\x06\x00\x00\x02\x00\x3d\x00\x00\x00\x00\x00\x00\x00\xc0\x0d\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x50\x07\x00\x00\x00\x00\x00\x00\xc8\x0d\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\xc8\x0f\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x34\x10\x01\x00\x00\x00\x00\x00\xd8\x0f\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x54\x07\x00\x00\x00\x00\x00\x00\x28\x10\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x28\x10\x01\x00\x00\x00\x00\x00\xb8\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xc0\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xd0\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe0\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x08\x10\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x10\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x18\x10\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1f\x20\x03\xd5\xfd\x7b\xbf\xa9\xfd\x03\x00\x91\x34\x00\x00\x94\xfd\x7b\xc1\xa8\xc0\x03\x5f\xd6\xf0\x7b\xbf\xa9\x90\x00\x00\x90\x11\xfe\x47\xf9\x10\xe2\x3f\x91\x20\x02\x1f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x90\x00\x00\xb0\x11\x02\x40\xf9\x10\x02\x00\x91\x20\x02\x1f\xd6\x90\x00\x00\xb0\x11\x06\x40\xf9\x10\x22\x00\x91\x20\x02\x1f\xd6\x90\x00\x00\xb0\x11\x0a\x40\xf9\x10\x42\x00\x91\x20\x02\x1f\xd6\x90\x00\x00\xb0\x11\x0e\x40\xf9\x10\x62\x00\x91\x20\x02\x1f\xd6\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1f\x20\x03\xd5\x1d\x00\x80\xd2\x1e\x00\x80\xd2\xe5\x03\x00\xaa\xe1\x03\x40\xf9\xe2\x23\x00\x91\xe6\x03\x00\x91\x80\x00\x00\x90\x00\xec\x47\xf9\x03\x00\x80\xd2\x04\x00\x80\xd2\xd9\xff\xff\x97\xe4\xff\xff\x97\x80\x00\x00\x90\x00\xe8\x47\xf9\x40\x00\x00\xb4\xdc\xff\xff\x17\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x80\x00\x00\xb0\x00\xc0\x00\x91\x81\x00\x00\xb0\x21\xc0\x00\x91\x3f\x00\x00\xeb\xc0\x00\x00\x54\x81\x00\x00\x90\x21\xdc\x47\xf9\x61\x00\x00\xb4\xf0\x03\x01\xaa\x00\x02\x1f\xd6\xc0\x03\x5f\xd6\x80\x00\x00\xb0\x00\xc0\x00\x91\x81\x00\x00\xb0\x21\xc0\x00\x91\x21\x00\x00\xcb\x22\xfc\x7f\xd3\x41\x0c\x81\x8b\x21\xfc\x41\x93\xc1\x00\x00\xb4\x82\x00\x00\x90\x42\xf0\x47\xf9\x62\x00\x00\xb4\xf0\x03\x02\xaa\x00\x02\x1f\xd6\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\xfd\x7b\xbe\xa9\xfd\x03\x00\x91\xf3\x0b\x00\xf9\x93\x00\x00\xb0\x60\xc2\x40\x39\x40\x01\x00\x35\x80\x00\x00\x90\x00\xe0\x47\xf9\x80\x00\x00\xb4\x80\x00\x00\xb0\x00\x14\x40\xf9\xad\xff\xff\x97\xd8\xff\xff\x97\x20\x00\x80\x52\x60\xc2\x00\x39\xf3\x0b\x40\xf9\xfd\x7b\xc2\xa8\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\xdc\xff\xff\x17\x89\x00\x00\x90\x29\xe5\x47\xf9\x28\x01\x40\xb9\x08\x05\x00\x11\x28\x01\x00\xb9\xe0\x03\x1f\x2a\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\xfd\x7b\xbf\xa9\xfd\x03\x00\x91\xfd\x7b\xc1\xa8\xc0\x03\x5f\xd6\x01\x00\x02\x00\x01\x1b\x03\x3b\x3c\x00\x00\x00\x06\x00\x00\x00\xb8\xfe\xff\xff\x54\x00\x00\x00\x08\xff\xff\xff\x68\x00\x00\x00\x38\xff\xff\xff\x7c\x00\x00\x00\x78\xff\xff\xff\x90\x00\x00\x00\xc8\xff\xff\xff\xb4\x00\x00\x00\xcc\xff\xff\xff\xdc\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x01\x7a\x52\x00\x04\x78\x1e\x01\x1b\x0c\x1f\x00\x10\x00\x00\x00\x18\x00\x00\x00\x5c\xfe\xff\xff\x34\x00\x00\x00\x00\x41\x07\x1e\x10\x00\x00\x00\x2c\x00\x00\x00\x98\xfe\xff\xff\x30\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x40\x00\x00\x00\xb4\xfe\xff\xff\x3c\x00\x00\x00\x00\x00\x00\x00\x20\x00\x00\x00\x54\x00\x00\x00\xe0\xfe\xff\xff\x48\x00\x00\x00\x00\x41\x0e\x20\x9d\x04\x9e\x03\x42\x93\x02\x4e\xde\xdd\xd3\x0e\x00\x00\x00\x00\x10\x00\x00\x00\x78\x00\x00\x00\x0c\xff\xff\xff\x04\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x01\x7a\x52\x00\x01\x7c\x1e\x01\x1b\x0c\x1f\x00\x10\x00\x00\x00\x18\x00\x00\x00\xe8\xfe\xff\xff"), -Section(".comment", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x40\x06\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x30\x1c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x38\x00\x09\x00\x40\x00\x1d\x00\x1c\x00\x06\x00\x00\x00\x04\x00\x00"), -Section(".interp", 0x238, "\x2f\x6c\x69\x62\x2f\x6c\x64\x2d\x6c\x69\x6e\x75\x78\x2d\x61\x61\x72\x63\x68\x36\x34\x2e\x73\x6f\x2e\x31\x00"), -Section(".note.gnu.build-id", 0x254, "\x04\x00\x00\x00\x14\x00\x00\x00\x03\x00\x00\x00\x47\x4e\x55\x00\x88\xae\x13\x95\xa6\x99\xd0\xcf\x28\x51\xed\xa4\xa8\x38\xd8\xe1\x7e\xb9\x68\xe7"), -Section(".note.ABI-tag", 0x278, "\x04\x00\x00\x00\x10\x00\x00\x00\x01\x00\x00\x00\x47\x4e\x55\x00\x00\x00\x00\x00\x03\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00"), -Section(".gnu.hash", 0x298, "\x01\x00\x00\x00\x01\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".dynsym", 0x2B8, "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x0b\x00\x98\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x17\x00\x20\x10\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x48\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x22\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x22\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x73\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".dynstr", 0x390, "\x00\x5f\x5f\x63\x78\x61\x5f\x66\x69\x6e\x61\x6c\x69\x7a\x65\x00\x5f\x5f\x6c\x69\x62\x63\x5f\x73\x74\x61\x72\x74\x5f\x6d\x61\x69\x6e\x00\x61\x62\x6f\x72\x74\x00\x6c\x69\x62\x63\x2e\x73\x6f\x2e\x36\x00\x47\x4c\x49\x42\x43\x5f\x32\x2e\x31\x37\x00\x47\x4c\x49\x42\x43\x5f\x32\x2e\x33\x34\x00\x5f\x49\x54\x4d\x5f\x64\x65\x72\x65\x67\x69\x73\x74\x65\x72\x54\x4d\x43\x6c\x6f\x6e\x65\x54\x61\x62\x6c\x65\x00\x5f\x5f\x67\x6d\x6f\x6e\x5f\x73\x74\x61\x72\x74\x5f\x5f\x00\x5f\x49\x54\x4d\x5f\x72\x65\x67\x69\x73\x74\x65\x72\x54\x4d\x43\x6c\x6f\x6e\x65\x54\x61\x62\x6c\x65\x00"), -Section(".gnu.version", 0x41E, "\x00\x00\x00\x00\x00\x00\x02\x00\x01\x00\x03\x00\x01\x00\x03\x00\x01\x00"), -Section(".gnu.version_r", 0x430, "\x01\x00\x02\x00\x28\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x97\x91\x96\x06\x00\x00\x03\x00\x32\x00\x00\x00\x10\x00\x00\x00\xb4\x91\x96\x06\x00\x00\x02\x00\x3d\x00\x00\x00\x00\x00\x00\x00"), -Section(".rela.dyn", 0x460, "\xc0\x0d\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x50\x07\x00\x00\x00\x00\x00\x00\xc8\x0d\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\xc8\x0f\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x34\x10\x01\x00\x00\x00\x00\x00\xd8\x0f\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x54\x07\x00\x00\x00\x00\x00\x00\x28\x10\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x28\x10\x01\x00\x00\x00\x00\x00\xb8\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xc0\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xd0\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe0\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".rela.plt", 0x538, "\x00\x10\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x08\x10\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x10\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x18\x10\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".init", 0x598, "\x1f\x20\x03\xd5\xfd\x7b\xbf\xa9\xfd\x03\x00\x91\x34\x00\x00\x94\xfd\x7b\xc1\xa8\xc0\x03\x5f\xd6"), -Section(".plt", 0x5B0, "\xf0\x7b\xbf\xa9\x90\x00\x00\x90\x11\xfe\x47\xf9\x10\xe2\x3f\x91\x20\x02\x1f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x90\x00\x00\xb0\x11\x02\x40\xf9\x10\x02\x00\x91\x20\x02\x1f\xd6\x90\x00\x00\xb0\x11\x06\x40\xf9\x10\x22\x00\x91\x20\x02\x1f\xd6\x90\x00\x00\xb0\x11\x0a\x40\xf9\x10\x42\x00\x91\x20\x02\x1f\xd6\x90\x00\x00\xb0\x11\x0e\x40\xf9\x10\x62\x00\x91\x20\x02\x1f\xd6"), -Section(".fini", 0x770, "\x1f\x20\x03\xd5\xfd\x7b\xbf\xa9\xfd\x03\x00\x91\xfd\x7b\xc1\xa8\xc0\x03\x5f\xd6"), -Section(".rodata", 0x784, "\x01\x00\x02\x00"), -Section(".eh_frame_hdr", 0x788, "\x01\x1b\x03\x3b\x3c\x00\x00\x00\x06\x00\x00\x00\xb8\xfe\xff\xff\x54\x00\x00\x00\x08\xff\xff\xff\x68\x00\x00\x00\x38\xff\xff\xff\x7c\x00\x00\x00\x78\xff\xff\xff\x90\x00\x00\x00\xc8\xff\xff\xff\xb4\x00\x00\x00\xcc\xff\xff\xff\xdc\x00\x00\x00"), -Section(".eh_frame", 0x7C8, "\x10\x00\x00\x00\x00\x00\x00\x00\x01\x7a\x52\x00\x04\x78\x1e\x01\x1b\x0c\x1f\x00\x10\x00\x00\x00\x18\x00\x00\x00\x5c\xfe\xff\xff\x34\x00\x00\x00\x00\x41\x07\x1e\x10\x00\x00\x00\x2c\x00\x00\x00\x98\xfe\xff\xff\x30\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x40\x00\x00\x00\xb4\xfe\xff\xff\x3c\x00\x00\x00\x00\x00\x00\x00\x20\x00\x00\x00\x54\x00\x00\x00\xe0\xfe\xff\xff\x48\x00\x00\x00\x00\x41\x0e\x20\x9d\x04\x9e\x03\x42\x93\x02\x4e\xde\xdd\xd3\x0e\x00\x00\x00\x00\x10\x00\x00\x00\x78\x00\x00\x00\x0c\xff\xff\xff\x04\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x01\x7a\x52\x00\x01\x7c\x1e\x01\x1b\x0c\x1f\x00\x10\x00\x00\x00\x18\x00\x00\x00\xe8\xfe\xff\xff\x1c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".fini_array", 0x10DC8, "\x00\x07\x00\x00\x00\x00\x00\x00"), -Section(".dynamic", 0x10DD0, "\x01\x00\x00\x00\x00\x00\x00\x00\x28\x00\x00\x00\x00\x00\x00\x00\x0c\x00\x00\x00\x00\x00\x00\x00\x98\x05\x00\x00\x00\x00\x00\x00\x0d\x00\x00\x00\x00\x00\x00\x00\x70\x07\x00\x00\x00\x00\x00\x00\x19\x00\x00\x00\x00\x00\x00\x00\xc0\x0d\x01\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x1a\x00\x00\x00\x00\x00\x00\x00\xc8\x0d\x01\x00\x00\x00\x00\x00\x1c\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\xf5\xfe\xff\x6f\x00\x00\x00\x00\x98\x02\x00\x00\x00\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x90\x03\x00\x00\x00\x00\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\xb8\x02\x00\x00\x00\x00\x00\x00\x0a\x00\x00\x00\x00\x00\x00\x00\x8d\x00\x00\x00\x00\x00\x00\x00\x0b\x00\x00\x00\x00\x00\x00\x00\x18\x00\x00\x00\x00\x00\x00\x00\x15\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\xe8\x0f\x01\x00\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x60\x00\x00\x00\x00\x00\x00\x00\x14\x00\x00\x00\x00\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x17\x00\x00\x00\x00\x00\x00\x00\x38\x05\x00\x00\x00\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x60\x04\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\xd8\x00\x00\x00\x00\x00\x00\x00\x09\x00\x00\x00\x00\x00\x00\x00\x18\x00\x00\x00\x00\x00\x00\x00\xfb\xff\xff\x6f\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\xfe\xff\xff\x6f\x00\x00\x00\x00\x30\x04\x00\x00\x00\x00\x00\x00\xff\xff\xff\x6f\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\xf0\xff\xff\x6f\x00\x00\x00\x00\x1e\x04\x00\x00\x00\x00\x00\x00\xf9\xff\xff\x6f\x00\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".init_array", 0x10DC0, "\x50\x07\x00\x00\x00\x00\x00\x00"), -Section(".got", 0x10FB0, "\xd0\x0d\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x34\x10\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x54\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".got.plt", 0x10FE8, "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xb0\x05\x00\x00\x00\x00\x00\x00\xb0\x05\x00\x00\x00\x00\x00\x00\xb0\x05\x00\x00\x00\x00\x00\x00\xb0\x05\x00\x00\x00\x00\x00\x00"), -Section(".data", 0x11020, "\x00\x00\x00\x00\x00\x00\x00\x00\x28\x10\x01\x00\x00\x00\x00\x00"), -Section(".text", 0x640, "\x1f\x20\x03\xd5\x1d\x00\x80\xd2\x1e\x00\x80\xd2\xe5\x03\x00\xaa\xe1\x03\x40\xf9\xe2\x23\x00\x91\xe6\x03\x00\x91\x80\x00\x00\x90\x00\xec\x47\xf9\x03\x00\x80\xd2\x04\x00\x80\xd2\xd9\xff\xff\x97\xe4\xff\xff\x97\x80\x00\x00\x90\x00\xe8\x47\xf9\x40\x00\x00\xb4\xdc\xff\xff\x17\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x80\x00\x00\xb0\x00\xc0\x00\x91\x81\x00\x00\xb0\x21\xc0\x00\x91\x3f\x00\x00\xeb\xc0\x00\x00\x54\x81\x00\x00\x90\x21\xdc\x47\xf9\x61\x00\x00\xb4\xf0\x03\x01\xaa\x00\x02\x1f\xd6\xc0\x03\x5f\xd6\x80\x00\x00\xb0\x00\xc0\x00\x91\x81\x00\x00\xb0\x21\xc0\x00\x91\x21\x00\x00\xcb\x22\xfc\x7f\xd3\x41\x0c\x81\x8b\x21\xfc\x41\x93\xc1\x00\x00\xb4\x82\x00\x00\x90\x42\xf0\x47\xf9\x62\x00\x00\xb4\xf0\x03\x02\xaa\x00\x02\x1f\xd6\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\xfd\x7b\xbe\xa9\xfd\x03\x00\x91\xf3\x0b\x00\xf9\x93\x00\x00\xb0\x60\xc2\x40\x39\x40\x01\x00\x35\x80\x00\x00\x90\x00\xe0\x47\xf9\x80\x00\x00\xb4\x80\x00\x00\xb0\x00\x14\x40\xf9\xad\xff\xff\x97\xd8\xff\xff\x97\x20\x00\x80\x52\x60\xc2\x00\x39\xf3\x0b\x40\xf9\xfd\x7b\xc2\xa8\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\xdc\xff\xff\x17\x89\x00\x00\x90\x29\xe5\x47\xf9\x28\x01\x40\xb9\x08\x05\x00\x11\x28\x01\x00\xb9\xe0\x03\x1f\x2a\xc0\x03\x5f\xd6")]), -Memmap([Annotation(Region(0x0,0x87B), Attr("segment","02 0 2172")), -Annotation(Region(0x640,0x673), Attr("symbol","\"_start\"")), -Annotation(Region(0x0,0x102), Attr("section","\".shstrtab\"")), -Annotation(Region(0x0,0x241), Attr("section","\".strtab\"")), -Annotation(Region(0x0,0x86F), Attr("section","\".symtab\"")), -Annotation(Region(0x0,0x46), Attr("section","\".comment\"")), -Annotation(Region(0x238,0x252), Attr("section","\".interp\"")), -Annotation(Region(0x254,0x277), Attr("section","\".note.gnu.build-id\"")), -Annotation(Region(0x278,0x297), Attr("section","\".note.ABI-tag\"")), -Annotation(Region(0x298,0x2B3), Attr("section","\".gnu.hash\"")), -Annotation(Region(0x2B8,0x38F), Attr("section","\".dynsym\"")), -Annotation(Region(0x390,0x41C), Attr("section","\".dynstr\"")), -Annotation(Region(0x41E,0x42F), Attr("section","\".gnu.version\"")), -Annotation(Region(0x430,0x45F), Attr("section","\".gnu.version_r\"")), -Annotation(Region(0x460,0x537), Attr("section","\".rela.dyn\"")), -Annotation(Region(0x538,0x597), Attr("section","\".rela.plt\"")), -Annotation(Region(0x598,0x5AF), Attr("section","\".init\"")), -Annotation(Region(0x5B0,0x60F), Attr("section","\".plt\"")), -Annotation(Region(0x598,0x5AF), Attr("code-region","()")), -Annotation(Region(0x5B0,0x60F), Attr("code-region","()")), -Annotation(Region(0x640,0x673), Attr("symbol-info","_start 0x640 52")), -Annotation(Region(0x674,0x687), Attr("symbol","\"call_weak_fn\"")), -Annotation(Region(0x674,0x687), Attr("symbol-info","call_weak_fn 0x674 20")), -Annotation(Region(0x754,0x76F), Attr("symbol","\"main\"")), -Annotation(Region(0x754,0x76F), Attr("symbol-info","main 0x754 28")), -Annotation(Region(0x770,0x783), Attr("section","\".fini\"")), -Annotation(Region(0x784,0x787), Attr("section","\".rodata\"")), -Annotation(Region(0x788,0x7C3), Attr("section","\".eh_frame_hdr\"")), -Annotation(Region(0x7C8,0x87B), Attr("section","\".eh_frame\"")), -Annotation(Region(0x10DC0,0x1102F), Attr("segment","03 0x10DC0 632")), -Annotation(Region(0x10DC8,0x10DCF), Attr("section","\".fini_array\"")), -Annotation(Region(0x10DD0,0x10FAF), Attr("section","\".dynamic\"")), -Annotation(Region(0x10DC0,0x10DC7), Attr("section","\".init_array\"")), -Annotation(Region(0x10FB0,0x10FE7), Attr("section","\".got\"")), -Annotation(Region(0x10FE8,0x1101F), Attr("section","\".got.plt\"")), -Annotation(Region(0x11020,0x1102F), Attr("section","\".data\"")), -Annotation(Region(0x640,0x76F), Attr("section","\".text\"")), -Annotation(Region(0x640,0x76F), Attr("code-region","()")), -Annotation(Region(0x770,0x783), Attr("code-region","()"))]), -Program(Tid(1_361, "%00000551"), Attrs([]), - Subs([Sub(Tid(1_311, "@__cxa_finalize"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x5E0"), -Attr("stub","()")]), "__cxa_finalize", Args([Arg(Tid(1_362, "%00000552"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("__cxa_finalize_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(808, "@__cxa_finalize"), - Attrs([Attr("address","0x5E0")]), Phis([]), -Defs([Def(Tid(1_056, "%00000420"), Attrs([Attr("address","0x5E0"), -Attr("insn","adrp x16, #69632")]), Var("R16",Imm(64)), Int(69632,64)), -Def(Tid(1_063, "%00000427"), Attrs([Attr("address","0x5E4"), -Attr("insn","ldr x17, [x16, #0x8]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(1_069, "%0000042d"), Attrs([Attr("address","0x5E8"), -Attr("insn","add x16, x16, #0x8")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(8,64)))]), Jmps([Call(Tid(1_074, "%00000432"), - Attrs([Attr("address","0x5EC"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), -Sub(Tid(1_312, "@__do_global_dtors_aux"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x700")]), - "__do_global_dtors_aux", Args([Arg(Tid(1_363, "%00000553"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("__do_global_dtors_aux_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(618, "@__do_global_dtors_aux"), - Attrs([Attr("address","0x700")]), Phis([]), Defs([Def(Tid(622, "%0000026e"), - Attrs([Attr("address","0x700"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("#3",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(18446744073709551584,64))), -Def(Tid(628, "%00000274"), Attrs([Attr("address","0x700"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("#3",Imm(64)),Var("R29",Imm(64)),LittleEndian(),64)), -Def(Tid(634, "%0000027a"), Attrs([Attr("address","0x700"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("#3",Imm(64)),Int(8,64)),Var("R30",Imm(64)),LittleEndian(),64)), -Def(Tid(638, "%0000027e"), Attrs([Attr("address","0x700"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("R31",Imm(64)), -Var("#3",Imm(64))), Def(Tid(644, "%00000284"), - Attrs([Attr("address","0x704"), Attr("insn","mov x29, sp")]), - Var("R29",Imm(64)), Var("R31",Imm(64))), Def(Tid(652, "%0000028c"), - Attrs([Attr("address","0x708"), Attr("insn","str x19, [sp, #0x10]")]), - Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(16,64)),Var("R19",Imm(64)),LittleEndian(),64)), -Def(Tid(657, "%00000291"), Attrs([Attr("address","0x70C"), -Attr("insn","adrp x19, #69632")]), Var("R19",Imm(64)), Int(69632,64)), -Def(Tid(664, "%00000298"), Attrs([Attr("address","0x710"), -Attr("insn","ldrb w0, [x19, #0x30]")]), Var("R0",Imm(64)), -UNSIGNED(64,Load(Var("mem",Mem(64,8)),PLUS(Var("R19",Imm(64)),Int(48,64)),LittleEndian(),8)))]), -Jmps([Goto(Tid(671, "%0000029f"), Attrs([Attr("address","0x714"), -Attr("insn","cbnz w0, #0x28")]), - NEQ(Extract(31,0,Var("R0",Imm(64))),Int(0,32)), -Direct(Tid(669, "%0000029d"))), Goto(Tid(1_351, "%00000547"), Attrs([]), - Int(1,1), Direct(Tid(753, "%000002f1")))])), Blk(Tid(753, "%000002f1"), - Attrs([Attr("address","0x718")]), Phis([]), Defs([Def(Tid(756, "%000002f4"), - Attrs([Attr("address","0x718"), Attr("insn","adrp x0, #65536")]), - Var("R0",Imm(64)), Int(65536,64)), Def(Tid(763, "%000002fb"), - Attrs([Attr("address","0x71C"), Attr("insn","ldr x0, [x0, #0xfc0]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(4032,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(769, "%00000301"), Attrs([Attr("address","0x720"), -Attr("insn","cbz x0, #0x10")]), EQ(Var("R0",Imm(64)),Int(0,64)), -Direct(Tid(767, "%000002ff"))), Goto(Tid(1_352, "%00000548"), Attrs([]), - Int(1,1), Direct(Tid(792, "%00000318")))])), Blk(Tid(792, "%00000318"), - Attrs([Attr("address","0x724")]), Phis([]), Defs([Def(Tid(795, "%0000031b"), - Attrs([Attr("address","0x724"), Attr("insn","adrp x0, #69632")]), - Var("R0",Imm(64)), Int(69632,64)), Def(Tid(802, "%00000322"), - Attrs([Attr("address","0x728"), Attr("insn","ldr x0, [x0, #0x28]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(40,64)),LittleEndian(),64)), -Def(Tid(807, "%00000327"), Attrs([Attr("address","0x72C"), -Attr("insn","bl #-0x14c")]), Var("R30",Imm(64)), Int(1840,64))]), -Jmps([Call(Tid(810, "%0000032a"), Attrs([Attr("address","0x72C"), -Attr("insn","bl #-0x14c")]), Int(1,1), -(Direct(Tid(1_311, "@__cxa_finalize")),Direct(Tid(767, "%000002ff"))))])), -Blk(Tid(767, "%000002ff"), Attrs([Attr("address","0x730")]), Phis([]), -Defs([Def(Tid(775, "%00000307"), Attrs([Attr("address","0x730"), -Attr("insn","bl #-0xa0")]), Var("R30",Imm(64)), Int(1844,64))]), -Jmps([Call(Tid(777, "%00000309"), Attrs([Attr("address","0x730"), -Attr("insn","bl #-0xa0")]), Int(1,1), -(Direct(Tid(1_325, "@deregister_tm_clones")),Direct(Tid(779, "%0000030b"))))])), -Blk(Tid(779, "%0000030b"), Attrs([Attr("address","0x734")]), Phis([]), -Defs([Def(Tid(782, "%0000030e"), Attrs([Attr("address","0x734"), -Attr("insn","mov w0, #0x1")]), Var("R0",Imm(64)), Int(1,64)), -Def(Tid(790, "%00000316"), Attrs([Attr("address","0x738"), -Attr("insn","strb w0, [x19, #0x30]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R19",Imm(64)),Int(48,64)),Extract(7,0,Var("R0",Imm(64))),LittleEndian(),8))]), -Jmps([Goto(Tid(1_353, "%00000549"), Attrs([]), Int(1,1), -Direct(Tid(669, "%0000029d")))])), Blk(Tid(669, "%0000029d"), - Attrs([Attr("address","0x73C")]), Phis([]), Defs([Def(Tid(679, "%000002a7"), - Attrs([Attr("address","0x73C"), Attr("insn","ldr x19, [sp, #0x10]")]), - Var("R19",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(16,64)),LittleEndian(),64)), -Def(Tid(686, "%000002ae"), Attrs([Attr("address","0x740"), -Attr("insn","ldp x29, x30, [sp], #0x20")]), Var("R29",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(691, "%000002b3"), Attrs([Attr("address","0x740"), -Attr("insn","ldp x29, x30, [sp], #0x20")]), Var("R30",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(695, "%000002b7"), Attrs([Attr("address","0x740"), -Attr("insn","ldp x29, x30, [sp], #0x20")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(32,64)))]), Jmps([Call(Tid(700, "%000002bc"), - Attrs([Attr("address","0x744"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), Sub(Tid(1_316, "@__libc_start_main"), - Attrs([Attr("c.proto","signed (*)(signed (*)(signed , char** , char** );* main, signed , char** , \nvoid* auxv)"), -Attr("address","0x5D0"), Attr("stub","()")]), "__libc_start_main", - Args([Arg(Tid(1_364, "%00000554"), - Attrs([Attr("c.layout","**[ : 64]"), -Attr("c.data","Top:u64 ptr ptr"), -Attr("c.type","signed (*)(signed , char** , char** );*")]), - Var("__libc_start_main_main",Imm(64)), Var("R0",Imm(64)), In()), -Arg(Tid(1_365, "%00000555"), Attrs([Attr("c.layout","[signed : 32]"), -Attr("c.data","Top:u32"), Attr("c.type","signed")]), - Var("__libc_start_main_arg2",Imm(32)), LOW(32,Var("R1",Imm(64))), In()), -Arg(Tid(1_366, "%00000556"), Attrs([Attr("c.layout","**[char : 8]"), -Attr("c.data","Top:u8 ptr ptr"), Attr("c.type","char**")]), - Var("__libc_start_main_arg3",Imm(64)), Var("R2",Imm(64)), Both()), -Arg(Tid(1_367, "%00000557"), Attrs([Attr("c.layout","*[ : 8]"), -Attr("c.data","{} ptr"), Attr("c.type","void*")]), - Var("__libc_start_main_auxv",Imm(64)), Var("R3",Imm(64)), Both()), -Arg(Tid(1_368, "%00000558"), Attrs([Attr("c.layout","[signed : 32]"), -Attr("c.data","Top:u32"), Attr("c.type","signed")]), - Var("__libc_start_main_result",Imm(32)), LOW(32,Var("R0",Imm(64))), -Out())]), Blks([Blk(Tid(451, "@__libc_start_main"), - Attrs([Attr("address","0x5D0")]), Phis([]), -Defs([Def(Tid(1_034, "%0000040a"), Attrs([Attr("address","0x5D0"), -Attr("insn","adrp x16, #69632")]), Var("R16",Imm(64)), Int(69632,64)), -Def(Tid(1_041, "%00000411"), Attrs([Attr("address","0x5D4"), -Attr("insn","ldr x17, [x16]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R16",Imm(64)),LittleEndian(),64)), -Def(Tid(1_047, "%00000417"), Attrs([Attr("address","0x5D8"), -Attr("insn","add x16, x16, #0x0")]), Var("R16",Imm(64)), -Var("R16",Imm(64)))]), Jmps([Call(Tid(1_052, "%0000041c"), - Attrs([Attr("address","0x5DC"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), Sub(Tid(1_317, "@_fini"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x770")]), - "_fini", Args([Arg(Tid(1_369, "%00000559"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("_fini_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(31, "@_fini"), - Attrs([Attr("address","0x770")]), Phis([]), Defs([Def(Tid(37, "%00000025"), - Attrs([Attr("address","0x774"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("#0",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(18446744073709551600,64))), -Def(Tid(43, "%0000002b"), Attrs([Attr("address","0x774"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("#0",Imm(64)),Var("R29",Imm(64)),LittleEndian(),64)), -Def(Tid(49, "%00000031"), Attrs([Attr("address","0x774"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("#0",Imm(64)),Int(8,64)),Var("R30",Imm(64)),LittleEndian(),64)), -Def(Tid(53, "%00000035"), Attrs([Attr("address","0x774"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("R31",Imm(64)), -Var("#0",Imm(64))), Def(Tid(59, "%0000003b"), Attrs([Attr("address","0x778"), -Attr("insn","mov x29, sp")]), Var("R29",Imm(64)), Var("R31",Imm(64))), -Def(Tid(66, "%00000042"), Attrs([Attr("address","0x77C"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R29",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(71, "%00000047"), Attrs([Attr("address","0x77C"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R30",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(75, "%0000004b"), Attrs([Attr("address","0x77C"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(16,64)))]), Jmps([Call(Tid(80, "%00000050"), - Attrs([Attr("address","0x780"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), Sub(Tid(1_318, "@_init"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x598")]), - "_init", Args([Arg(Tid(1_370, "%0000055a"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("_init_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(1_146, "@_init"), - Attrs([Attr("address","0x598")]), Phis([]), -Defs([Def(Tid(1_152, "%00000480"), Attrs([Attr("address","0x59C"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("#5",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(18446744073709551600,64))), -Def(Tid(1_158, "%00000486"), Attrs([Attr("address","0x59C"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("#5",Imm(64)),Var("R29",Imm(64)),LittleEndian(),64)), -Def(Tid(1_164, "%0000048c"), Attrs([Attr("address","0x59C"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("#5",Imm(64)),Int(8,64)),Var("R30",Imm(64)),LittleEndian(),64)), -Def(Tid(1_168, "%00000490"), Attrs([Attr("address","0x59C"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("R31",Imm(64)), -Var("#5",Imm(64))), Def(Tid(1_174, "%00000496"), - Attrs([Attr("address","0x5A0"), Attr("insn","mov x29, sp")]), - Var("R29",Imm(64)), Var("R31",Imm(64))), Def(Tid(1_179, "%0000049b"), - Attrs([Attr("address","0x5A4"), Attr("insn","bl #0xd0")]), - Var("R30",Imm(64)), Int(1448,64))]), Jmps([Call(Tid(1_181, "%0000049d"), - Attrs([Attr("address","0x5A4"), Attr("insn","bl #0xd0")]), Int(1,1), -(Direct(Tid(1_323, "@call_weak_fn")),Direct(Tid(1_183, "%0000049f"))))])), -Blk(Tid(1_183, "%0000049f"), Attrs([Attr("address","0x5A8")]), Phis([]), -Defs([Def(Tid(1_188, "%000004a4"), Attrs([Attr("address","0x5A8"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R29",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(1_193, "%000004a9"), Attrs([Attr("address","0x5A8"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R30",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(1_197, "%000004ad"), Attrs([Attr("address","0x5A8"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(16,64)))]), Jmps([Call(Tid(1_202, "%000004b2"), - Attrs([Attr("address","0x5AC"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), Sub(Tid(1_319, "@_start"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x640"), -Attr("entry-point","()")]), "_start", Args([Arg(Tid(1_371, "%0000055b"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("_start_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(388, "@_start"), - Attrs([Attr("address","0x640")]), Phis([]), Defs([Def(Tid(393, "%00000189"), - Attrs([Attr("address","0x644"), Attr("insn","mov x29, #0x0")]), - Var("R29",Imm(64)), Int(0,64)), Def(Tid(398, "%0000018e"), - Attrs([Attr("address","0x648"), Attr("insn","mov x30, #0x0")]), - Var("R30",Imm(64)), Int(0,64)), Def(Tid(404, "%00000194"), - Attrs([Attr("address","0x64C"), Attr("insn","mov x5, x0")]), - Var("R5",Imm(64)), Var("R0",Imm(64))), Def(Tid(411, "%0000019b"), - Attrs([Attr("address","0x650"), Attr("insn","ldr x1, [sp]")]), - Var("R1",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(417, "%000001a1"), Attrs([Attr("address","0x654"), -Attr("insn","add x2, sp, #0x8")]), Var("R2",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(8,64))), Def(Tid(423, "%000001a7"), - Attrs([Attr("address","0x658"), Attr("insn","mov x6, sp")]), - Var("R6",Imm(64)), Var("R31",Imm(64))), Def(Tid(428, "%000001ac"), - Attrs([Attr("address","0x65C"), Attr("insn","adrp x0, #65536")]), - Var("R0",Imm(64)), Int(65536,64)), Def(Tid(435, "%000001b3"), - Attrs([Attr("address","0x660"), Attr("insn","ldr x0, [x0, #0xfd8]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(4056,64)),LittleEndian(),64)), -Def(Tid(440, "%000001b8"), Attrs([Attr("address","0x664"), -Attr("insn","mov x3, #0x0")]), Var("R3",Imm(64)), Int(0,64)), -Def(Tid(445, "%000001bd"), Attrs([Attr("address","0x668"), -Attr("insn","mov x4, #0x0")]), Var("R4",Imm(64)), Int(0,64)), -Def(Tid(450, "%000001c2"), Attrs([Attr("address","0x66C"), -Attr("insn","bl #-0x9c")]), Var("R30",Imm(64)), Int(1648,64))]), -Jmps([Call(Tid(453, "%000001c5"), Attrs([Attr("address","0x66C"), -Attr("insn","bl #-0x9c")]), Int(1,1), -(Direct(Tid(1_316, "@__libc_start_main")),Direct(Tid(455, "%000001c7"))))])), -Blk(Tid(455, "%000001c7"), Attrs([Attr("address","0x670")]), Phis([]), -Defs([Def(Tid(458, "%000001ca"), Attrs([Attr("address","0x670"), -Attr("insn","bl #-0x70")]), Var("R30",Imm(64)), Int(1652,64))]), -Jmps([Call(Tid(461, "%000001cd"), Attrs([Attr("address","0x670"), -Attr("insn","bl #-0x70")]), Int(1,1), -(Direct(Tid(1_322, "@abort")),Direct(Tid(1_354, "%0000054a"))))])), -Blk(Tid(1_354, "%0000054a"), Attrs([]), Phis([]), Defs([]), -Jmps([Call(Tid(1_355, "%0000054b"), Attrs([]), Int(1,1), -(Direct(Tid(1_323, "@call_weak_fn")),))]))])), Sub(Tid(1_322, "@abort"), - Attrs([Attr("noreturn","()"), Attr("c.proto","void (*)(void)"), -Attr("address","0x600"), Attr("stub","()")]), "abort", Args([]), -Blks([Blk(Tid(459, "@abort"), Attrs([Attr("address","0x600")]), Phis([]), -Defs([Def(Tid(1_100, "%0000044c"), Attrs([Attr("address","0x600"), -Attr("insn","adrp x16, #69632")]), Var("R16",Imm(64)), Int(69632,64)), -Def(Tid(1_107, "%00000453"), Attrs([Attr("address","0x604"), -Attr("insn","ldr x17, [x16, #0x18]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(24,64)),LittleEndian(),64)), -Def(Tid(1_113, "%00000459"), Attrs([Attr("address","0x608"), -Attr("insn","add x16, x16, #0x18")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(24,64)))]), Jmps([Call(Tid(1_118, "%0000045e"), - Attrs([Attr("address","0x60C"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), Sub(Tid(1_323, "@call_weak_fn"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x674")]), - "call_weak_fn", Args([Arg(Tid(1_372, "%0000055c"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("call_weak_fn_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(463, "@call_weak_fn"), - Attrs([Attr("address","0x674")]), Phis([]), Defs([Def(Tid(466, "%000001d2"), - Attrs([Attr("address","0x674"), Attr("insn","adrp x0, #65536")]), - Var("R0",Imm(64)), Int(65536,64)), Def(Tid(473, "%000001d9"), - Attrs([Attr("address","0x678"), Attr("insn","ldr x0, [x0, #0xfd0]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(4048,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(479, "%000001df"), Attrs([Attr("address","0x67C"), -Attr("insn","cbz x0, #0x8")]), EQ(Var("R0",Imm(64)),Int(0,64)), -Direct(Tid(477, "%000001dd"))), Goto(Tid(1_356, "%0000054c"), Attrs([]), - Int(1,1), Direct(Tid(872, "%00000368")))])), Blk(Tid(477, "%000001dd"), - Attrs([Attr("address","0x684")]), Phis([]), Defs([]), -Jmps([Call(Tid(485, "%000001e5"), Attrs([Attr("address","0x684"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))])), -Blk(Tid(872, "%00000368"), Attrs([Attr("address","0x680")]), Phis([]), -Defs([]), Jmps([Goto(Tid(875, "%0000036b"), Attrs([Attr("address","0x680"), -Attr("insn","b #-0x90")]), Int(1,1), Direct(Tid(873, "@__gmon_start__")))])), -Blk(Tid(873, "@__gmon_start__"), Attrs([Attr("address","0x5F0")]), Phis([]), -Defs([Def(Tid(1_078, "%00000436"), Attrs([Attr("address","0x5F0"), -Attr("insn","adrp x16, #69632")]), Var("R16",Imm(64)), Int(69632,64)), -Def(Tid(1_085, "%0000043d"), Attrs([Attr("address","0x5F4"), -Attr("insn","ldr x17, [x16, #0x10]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(16,64)),LittleEndian(),64)), -Def(Tid(1_091, "%00000443"), Attrs([Attr("address","0x5F8"), -Attr("insn","add x16, x16, #0x10")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(16,64)))]), Jmps([Call(Tid(1_096, "%00000448"), - Attrs([Attr("address","0x5FC"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), -Sub(Tid(1_325, "@deregister_tm_clones"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x690")]), - "deregister_tm_clones", Args([Arg(Tid(1_373, "%0000055d"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("deregister_tm_clones_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(491, "@deregister_tm_clones"), - Attrs([Attr("address","0x690")]), Phis([]), Defs([Def(Tid(494, "%000001ee"), - Attrs([Attr("address","0x690"), Attr("insn","adrp x0, #69632")]), - Var("R0",Imm(64)), Int(69632,64)), Def(Tid(500, "%000001f4"), - Attrs([Attr("address","0x694"), Attr("insn","add x0, x0, #0x30")]), - Var("R0",Imm(64)), PLUS(Var("R0",Imm(64)),Int(48,64))), -Def(Tid(505, "%000001f9"), Attrs([Attr("address","0x698"), -Attr("insn","adrp x1, #69632")]), Var("R1",Imm(64)), Int(69632,64)), -Def(Tid(511, "%000001ff"), Attrs([Attr("address","0x69C"), -Attr("insn","add x1, x1, #0x30")]), Var("R1",Imm(64)), -PLUS(Var("R1",Imm(64)),Int(48,64))), Def(Tid(517, "%00000205"), - Attrs([Attr("address","0x6A0"), Attr("insn","cmp x1, x0")]), - Var("#1",Imm(64)), NOT(Var("R0",Imm(64)))), Def(Tid(522, "%0000020a"), - Attrs([Attr("address","0x6A0"), Attr("insn","cmp x1, x0")]), - Var("#2",Imm(64)), PLUS(Var("R1",Imm(64)),NOT(Var("R0",Imm(64))))), -Def(Tid(528, "%00000210"), Attrs([Attr("address","0x6A0"), -Attr("insn","cmp x1, x0")]), Var("VF",Imm(1)), -NEQ(SIGNED(65,PLUS(Var("#2",Imm(64)),Int(1,64))),PLUS(PLUS(SIGNED(65,Var("R1",Imm(64))),SIGNED(65,Var("#1",Imm(64)))),Int(1,65)))), -Def(Tid(534, "%00000216"), Attrs([Attr("address","0x6A0"), -Attr("insn","cmp x1, x0")]), Var("CF",Imm(1)), -NEQ(UNSIGNED(65,PLUS(Var("#2",Imm(64)),Int(1,64))),PLUS(PLUS(UNSIGNED(65,Var("R1",Imm(64))),UNSIGNED(65,Var("#1",Imm(64)))),Int(1,65)))), -Def(Tid(538, "%0000021a"), Attrs([Attr("address","0x6A0"), -Attr("insn","cmp x1, x0")]), Var("ZF",Imm(1)), -EQ(PLUS(Var("#2",Imm(64)),Int(1,64)),Int(0,64))), Def(Tid(542, "%0000021e"), - Attrs([Attr("address","0x6A0"), Attr("insn","cmp x1, x0")]), - Var("NF",Imm(1)), Extract(63,63,PLUS(Var("#2",Imm(64)),Int(1,64))))]), -Jmps([Goto(Tid(548, "%00000224"), Attrs([Attr("address","0x6A4"), -Attr("insn","b.eq #0x18")]), EQ(Var("ZF",Imm(1)),Int(1,1)), -Direct(Tid(546, "%00000222"))), Goto(Tid(1_357, "%0000054d"), Attrs([]), - Int(1,1), Direct(Tid(842, "%0000034a")))])), Blk(Tid(842, "%0000034a"), - Attrs([Attr("address","0x6A8")]), Phis([]), Defs([Def(Tid(845, "%0000034d"), - Attrs([Attr("address","0x6A8"), Attr("insn","adrp x1, #65536")]), - Var("R1",Imm(64)), Int(65536,64)), Def(Tid(852, "%00000354"), - Attrs([Attr("address","0x6AC"), Attr("insn","ldr x1, [x1, #0xfb8]")]), - Var("R1",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R1",Imm(64)),Int(4024,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(857, "%00000359"), Attrs([Attr("address","0x6B0"), -Attr("insn","cbz x1, #0xc")]), EQ(Var("R1",Imm(64)),Int(0,64)), -Direct(Tid(546, "%00000222"))), Goto(Tid(1_358, "%0000054e"), Attrs([]), - Int(1,1), Direct(Tid(861, "%0000035d")))])), Blk(Tid(546, "%00000222"), - Attrs([Attr("address","0x6BC")]), Phis([]), Defs([]), -Jmps([Call(Tid(554, "%0000022a"), Attrs([Attr("address","0x6BC"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))])), -Blk(Tid(861, "%0000035d"), Attrs([Attr("address","0x6B4")]), Phis([]), -Defs([Def(Tid(865, "%00000361"), Attrs([Attr("address","0x6B4"), -Attr("insn","mov x16, x1")]), Var("R16",Imm(64)), Var("R1",Imm(64)))]), -Jmps([Call(Tid(870, "%00000366"), Attrs([Attr("address","0x6B8"), -Attr("insn","br x16")]), Int(1,1), (Indirect(Var("R16",Imm(64))),))]))])), -Sub(Tid(1_328, "@frame_dummy"), Attrs([Attr("c.proto","signed (*)(void)"), -Attr("address","0x750")]), "frame_dummy", Args([Arg(Tid(1_374, "%0000055e"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("frame_dummy_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(706, "@frame_dummy"), - Attrs([Attr("address","0x750")]), Phis([]), Defs([]), -Jmps([Call(Tid(708, "%000002c4"), Attrs([Attr("address","0x750"), -Attr("insn","b #-0x90")]), Int(1,1), -(Direct(Tid(1_330, "@register_tm_clones")),))]))])), Sub(Tid(1_329, "@main"), - Attrs([Attr("c.proto","signed (*)(signed argc, const char** argv)"), -Attr("address","0x754")]), "main", Args([Arg(Tid(1_375, "%0000055f"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("main_argc",Imm(32)), -LOW(32,Var("R0",Imm(64))), In()), Arg(Tid(1_376, "%00000560"), - Attrs([Attr("c.layout","**[char : 8]"), Attr("c.data","Top:u8 ptr ptr"), -Attr("c.type"," const char**")]), Var("main_argv",Imm(64)), -Var("R1",Imm(64)), Both()), Arg(Tid(1_377, "%00000561"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("main_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(710, "@main"), - Attrs([Attr("address","0x754")]), Phis([]), Defs([Def(Tid(713, "%000002c9"), - Attrs([Attr("address","0x754"), Attr("insn","adrp x9, #65536")]), - Var("R9",Imm(64)), Int(65536,64)), Def(Tid(720, "%000002d0"), - Attrs([Attr("address","0x758"), Attr("insn","ldr x9, [x9, #0xfc8]")]), - Var("R9",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R9",Imm(64)),Int(4040,64)),LittleEndian(),64)), -Def(Tid(727, "%000002d7"), Attrs([Attr("address","0x75C"), -Attr("insn","ldr w8, [x9]")]), Var("R8",Imm(64)), -UNSIGNED(64,Load(Var("mem",Mem(64,8)),Var("R9",Imm(64)),LittleEndian(),32))), -Def(Tid(733, "%000002dd"), Attrs([Attr("address","0x760"), -Attr("insn","add w8, w8, #0x1")]), Var("R8",Imm(64)), -UNSIGNED(64,PLUS(Extract(31,0,Var("R8",Imm(64))),Int(1,32)))), -Def(Tid(741, "%000002e5"), Attrs([Attr("address","0x764"), -Attr("insn","str w8, [x9]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("R9",Imm(64)),Extract(31,0,Var("R8",Imm(64))),LittleEndian(),32)), -Def(Tid(746, "%000002ea"), Attrs([Attr("address","0x768"), -Attr("insn","mov w0, wzr")]), Var("R0",Imm(64)), Int(0,64))]), -Jmps([Call(Tid(751, "%000002ef"), Attrs([Attr("address","0x76C"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))]))])), -Sub(Tid(1_330, "@register_tm_clones"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x6C0")]), - "register_tm_clones", Args([Arg(Tid(1_378, "%00000562"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("register_tm_clones_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(556, "@register_tm_clones"), Attrs([Attr("address","0x6C0")]), - Phis([]), Defs([Def(Tid(559, "%0000022f"), Attrs([Attr("address","0x6C0"), -Attr("insn","adrp x0, #69632")]), Var("R0",Imm(64)), Int(69632,64)), -Def(Tid(565, "%00000235"), Attrs([Attr("address","0x6C4"), -Attr("insn","add x0, x0, #0x30")]), Var("R0",Imm(64)), -PLUS(Var("R0",Imm(64)),Int(48,64))), Def(Tid(570, "%0000023a"), - Attrs([Attr("address","0x6C8"), Attr("insn","adrp x1, #69632")]), - Var("R1",Imm(64)), Int(69632,64)), Def(Tid(576, "%00000240"), - Attrs([Attr("address","0x6CC"), Attr("insn","add x1, x1, #0x30")]), - Var("R1",Imm(64)), PLUS(Var("R1",Imm(64)),Int(48,64))), -Def(Tid(583, "%00000247"), Attrs([Attr("address","0x6D0"), -Attr("insn","sub x1, x1, x0")]), Var("R1",Imm(64)), -PLUS(PLUS(Var("R1",Imm(64)),NOT(Var("R0",Imm(64)))),Int(1,64))), -Def(Tid(589, "%0000024d"), Attrs([Attr("address","0x6D4"), -Attr("insn","lsr x2, x1, #63")]), Var("R2",Imm(64)), -Concat(Int(0,63),Extract(63,63,Var("R1",Imm(64))))), -Def(Tid(596, "%00000254"), Attrs([Attr("address","0x6D8"), -Attr("insn","add x1, x2, x1, asr #3")]), Var("R1",Imm(64)), -PLUS(Var("R2",Imm(64)),ARSHIFT(Var("R1",Imm(64)),Int(3,3)))), -Def(Tid(602, "%0000025a"), Attrs([Attr("address","0x6DC"), -Attr("insn","asr x1, x1, #1")]), Var("R1",Imm(64)), -SIGNED(64,Extract(63,1,Var("R1",Imm(64)))))]), -Jmps([Goto(Tid(608, "%00000260"), Attrs([Attr("address","0x6E0"), -Attr("insn","cbz x1, #0x18")]), EQ(Var("R1",Imm(64)),Int(0,64)), -Direct(Tid(606, "%0000025e"))), Goto(Tid(1_359, "%0000054f"), Attrs([]), - Int(1,1), Direct(Tid(812, "%0000032c")))])), Blk(Tid(812, "%0000032c"), - Attrs([Attr("address","0x6E4")]), Phis([]), Defs([Def(Tid(815, "%0000032f"), - Attrs([Attr("address","0x6E4"), Attr("insn","adrp x2, #65536")]), - Var("R2",Imm(64)), Int(65536,64)), Def(Tid(822, "%00000336"), - Attrs([Attr("address","0x6E8"), Attr("insn","ldr x2, [x2, #0xfe0]")]), - Var("R2",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R2",Imm(64)),Int(4064,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(827, "%0000033b"), Attrs([Attr("address","0x6EC"), -Attr("insn","cbz x2, #0xc")]), EQ(Var("R2",Imm(64)),Int(0,64)), -Direct(Tid(606, "%0000025e"))), Goto(Tid(1_360, "%00000550"), Attrs([]), - Int(1,1), Direct(Tid(831, "%0000033f")))])), Blk(Tid(606, "%0000025e"), - Attrs([Attr("address","0x6F8")]), Phis([]), Defs([]), -Jmps([Call(Tid(614, "%00000266"), Attrs([Attr("address","0x6F8"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))])), -Blk(Tid(831, "%0000033f"), Attrs([Attr("address","0x6F0")]), Phis([]), -Defs([Def(Tid(835, "%00000343"), Attrs([Attr("address","0x6F0"), -Attr("insn","mov x16, x2")]), Var("R16",Imm(64)), Var("R2",Imm(64)))]), -Jmps([Call(Tid(840, "%00000348"), Attrs([Attr("address","0x6F4"), -Attr("insn","br x16")]), Int(1,1), -(Indirect(Var("R16",Imm(64))),))]))]))]))) \ No newline at end of file diff --git a/src/test/correct/basic_assign_increment/clang_pic/basic_assign_increment.bir b/src/test/correct/basic_assign_increment/clang_pic/basic_assign_increment.bir deleted file mode 100644 index 2f705be4e..000000000 --- a/src/test/correct/basic_assign_increment/clang_pic/basic_assign_increment.bir +++ /dev/null @@ -1,229 +0,0 @@ -00000551: program -0000051f: sub __cxa_finalize(__cxa_finalize_result) -00000552: __cxa_finalize_result :: out u32 = low:32[R0] - -00000328: -00000420: R16 := 0x11000 -00000427: R17 := mem[R16 + 8, el]:u64 -0000042d: R16 := R16 + 8 -00000432: call R17 with noreturn - -00000520: sub __do_global_dtors_aux(__do_global_dtors_aux_result) -00000553: __do_global_dtors_aux_result :: out u32 = low:32[R0] - -0000026a: -0000026e: #3 := R31 - 0x20 -00000274: mem := mem with [#3, el]:u64 <- R29 -0000027a: mem := mem with [#3 + 8, el]:u64 <- R30 -0000027e: R31 := #3 -00000284: R29 := R31 -0000028c: mem := mem with [R31 + 0x10, el]:u64 <- R19 -00000291: R19 := 0x11000 -00000298: R0 := pad:64[mem[R19 + 0x30]] -0000029f: when 31:0[R0] <> 0 goto %0000029d -00000547: goto %000002f1 - -000002f1: -000002f4: R0 := 0x10000 -000002fb: R0 := mem[R0 + 0xFC0, el]:u64 -00000301: when R0 = 0 goto %000002ff -00000548: goto %00000318 - -00000318: -0000031b: R0 := 0x11000 -00000322: R0 := mem[R0 + 0x28, el]:u64 -00000327: R30 := 0x730 -0000032a: call @__cxa_finalize with return %000002ff - -000002ff: -00000307: R30 := 0x734 -00000309: call @deregister_tm_clones with return %0000030b - -0000030b: -0000030e: R0 := 1 -00000316: mem := mem with [R19 + 0x30] <- 7:0[R0] -00000549: goto %0000029d - -0000029d: -000002a7: R19 := mem[R31 + 0x10, el]:u64 -000002ae: R29 := mem[R31, el]:u64 -000002b3: R30 := mem[R31 + 8, el]:u64 -000002b7: R31 := R31 + 0x20 -000002bc: call R30 with noreturn - -00000524: sub __libc_start_main(__libc_start_main_main, __libc_start_main_arg2, __libc_start_main_arg3, __libc_start_main_auxv, __libc_start_main_result) -00000554: __libc_start_main_main :: in u64 = R0 -00000555: __libc_start_main_arg2 :: in u32 = low:32[R1] -00000556: __libc_start_main_arg3 :: in out u64 = R2 -00000557: __libc_start_main_auxv :: in out u64 = R3 -00000558: __libc_start_main_result :: out u32 = low:32[R0] - -000001c3: -0000040a: R16 := 0x11000 -00000411: R17 := mem[R16, el]:u64 -00000417: R16 := R16 -0000041c: call R17 with noreturn - -00000525: sub _fini(_fini_result) -00000559: _fini_result :: out u32 = low:32[R0] - -0000001f: -00000025: #0 := R31 - 0x10 -0000002b: mem := mem with [#0, el]:u64 <- R29 -00000031: mem := mem with [#0 + 8, el]:u64 <- R30 -00000035: R31 := #0 -0000003b: R29 := R31 -00000042: R29 := mem[R31, el]:u64 -00000047: R30 := mem[R31 + 8, el]:u64 -0000004b: R31 := R31 + 0x10 -00000050: call R30 with noreturn - -00000526: sub _init(_init_result) -0000055a: _init_result :: out u32 = low:32[R0] - -0000047a: -00000480: #5 := R31 - 0x10 -00000486: mem := mem with [#5, el]:u64 <- R29 -0000048c: mem := mem with [#5 + 8, el]:u64 <- R30 -00000490: R31 := #5 -00000496: R29 := R31 -0000049b: R30 := 0x5A8 -0000049d: call @call_weak_fn with return %0000049f - -0000049f: -000004a4: R29 := mem[R31, el]:u64 -000004a9: R30 := mem[R31 + 8, el]:u64 -000004ad: R31 := R31 + 0x10 -000004b2: call R30 with noreturn - -00000527: sub _start(_start_result) -0000055b: _start_result :: out u32 = low:32[R0] - -00000184: -00000189: R29 := 0 -0000018e: R30 := 0 -00000194: R5 := R0 -0000019b: R1 := mem[R31, el]:u64 -000001a1: R2 := R31 + 8 -000001a7: R6 := R31 -000001ac: R0 := 0x10000 -000001b3: R0 := mem[R0 + 0xFD8, el]:u64 -000001b8: R3 := 0 -000001bd: R4 := 0 -000001c2: R30 := 0x670 -000001c5: call @__libc_start_main with return %000001c7 - -000001c7: -000001ca: R30 := 0x674 -000001cd: call @abort with return %0000054a - -0000054a: -0000054b: call @call_weak_fn with noreturn - -0000052a: sub abort() - - -000001cb: -0000044c: R16 := 0x11000 -00000453: R17 := mem[R16 + 0x18, el]:u64 -00000459: R16 := R16 + 0x18 -0000045e: call R17 with noreturn - -0000052b: sub call_weak_fn(call_weak_fn_result) -0000055c: call_weak_fn_result :: out u32 = low:32[R0] - -000001cf: -000001d2: R0 := 0x10000 -000001d9: R0 := mem[R0 + 0xFD0, el]:u64 -000001df: when R0 = 0 goto %000001dd -0000054c: goto %00000368 - -000001dd: -000001e5: call R30 with noreturn - -00000368: -0000036b: goto @__gmon_start__ - -00000369: -00000436: R16 := 0x11000 -0000043d: R17 := mem[R16 + 0x10, el]:u64 -00000443: R16 := R16 + 0x10 -00000448: call R17 with noreturn - -0000052d: sub deregister_tm_clones(deregister_tm_clones_result) -0000055d: deregister_tm_clones_result :: out u32 = low:32[R0] - -000001eb: -000001ee: R0 := 0x11000 -000001f4: R0 := R0 + 0x30 -000001f9: R1 := 0x11000 -000001ff: R1 := R1 + 0x30 -00000205: #1 := ~R0 -0000020a: #2 := R1 + ~R0 -00000210: VF := extend:65[#2 + 1] <> extend:65[R1] + extend:65[#1] + 1 -00000216: CF := pad:65[#2 + 1] <> pad:65[R1] + pad:65[#1] + 1 -0000021a: ZF := #2 + 1 = 0 -0000021e: NF := 63:63[#2 + 1] -00000224: when ZF goto %00000222 -0000054d: goto %0000034a - -0000034a: -0000034d: R1 := 0x10000 -00000354: R1 := mem[R1 + 0xFB8, el]:u64 -00000359: when R1 = 0 goto %00000222 -0000054e: goto %0000035d - -00000222: -0000022a: call R30 with noreturn - -0000035d: -00000361: R16 := R1 -00000366: call R16 with noreturn - -00000530: sub frame_dummy(frame_dummy_result) -0000055e: frame_dummy_result :: out u32 = low:32[R0] - -000002c2: -000002c4: call @register_tm_clones with noreturn - -00000531: sub main(main_argc, main_argv, main_result) -0000055f: main_argc :: in u32 = low:32[R0] -00000560: main_argv :: in out u64 = R1 -00000561: main_result :: out u32 = low:32[R0] - -000002c6: -000002c9: R9 := 0x10000 -000002d0: R9 := mem[R9 + 0xFC8, el]:u64 -000002d7: R8 := pad:64[mem[R9, el]:u32] -000002dd: R8 := pad:64[31:0[R8] + 1] -000002e5: mem := mem with [R9, el]:u32 <- 31:0[R8] -000002ea: R0 := 0 -000002ef: call R30 with noreturn - -00000532: sub register_tm_clones(register_tm_clones_result) -00000562: register_tm_clones_result :: out u32 = low:32[R0] - -0000022c: -0000022f: R0 := 0x11000 -00000235: R0 := R0 + 0x30 -0000023a: R1 := 0x11000 -00000240: R1 := R1 + 0x30 -00000247: R1 := R1 + ~R0 + 1 -0000024d: R2 := 0.63:63[R1] -00000254: R1 := R2 + (R1 ~>> 3) -0000025a: R1 := extend:64[63:1[R1]] -00000260: when R1 = 0 goto %0000025e -0000054f: goto %0000032c - -0000032c: -0000032f: R2 := 0x10000 -00000336: R2 := mem[R2 + 0xFE0, el]:u64 -0000033b: when R2 = 0 goto %0000025e -00000550: goto %0000033f - -0000025e: -00000266: call R30 with noreturn - -0000033f: -00000343: R16 := R2 -00000348: call R16 with noreturn diff --git a/src/test/correct/basic_assign_increment/clang_pic/basic_assign_increment.expected b/src/test/correct/basic_assign_increment/clang_pic/basic_assign_increment.expected index 60f1f5dc9..ca7037d69 100644 --- a/src/test/correct/basic_assign_increment/clang_pic/basic_assign_increment.expected +++ b/src/test/correct/basic_assign_increment/clang_pic/basic_assign_increment.expected @@ -7,7 +7,7 @@ var {:extern} R8: bv64; var {:extern} R9: bv64; var {:extern} mem: [bv64]bv8; const {:extern} $x_addr: bv64; -axiom ($x_addr == 69684bv64); +axiom ($x_addr == 131092bv64); function {:extern} L(mem$in: [bv64]bv8, index: bv64) returns (bool) { (if (index == $x_addr) then true else false) } @@ -43,12 +43,12 @@ procedure {:extern} rely(); modifies Gamma_mem, mem; ensures (forall i: bv64 :: (((mem[i] == old(mem[i])) ==> (Gamma_mem[i] == old(Gamma_mem[i]))))); ensures ((memory_load32_le(mem, $x_addr) == old(memory_load32_le(mem, $x_addr))) || (memory_load32_le(mem, $x_addr) == 5bv32)); - free ensures (memory_load32_le(mem, 1924bv64) == 131073bv32); - free ensures (memory_load64_le(mem, 69056bv64) == 1872bv64); - free ensures (memory_load64_le(mem, 69064bv64) == 1792bv64); - free ensures (memory_load64_le(mem, 69576bv64) == 69684bv64); - free ensures (memory_load64_le(mem, 69592bv64) == 1876bv64); - free ensures (memory_load64_le(mem, 69672bv64) == 69672bv64); + free ensures (memory_load32_le(mem, 2308bv64) == 131073bv32); + free ensures (memory_load64_le(mem, 130432bv64) == 2256bv64); + free ensures (memory_load64_le(mem, 130440bv64) == 2176bv64); + free ensures (memory_load64_le(mem, 131040bv64) == 131092bv64); + free ensures (memory_load64_le(mem, 131056bv64) == 2260bv64); + free ensures (memory_load64_le(mem, 131080bv64) == 131080bv64); procedure {:extern} rely_transitive(); modifies Gamma_mem, mem; @@ -75,52 +75,52 @@ implementation {:extern} guarantee_reflexive() assert (((memory_load32_le(mem, $x_addr) == memory_load32_le(mem, $x_addr)) || (memory_load32_le(mem, $x_addr) == 1bv32)) || (memory_load32_le(mem, $x_addr) == 6bv32)); } -procedure main_1876(); +procedure main(); modifies Gamma_R0, Gamma_R8, Gamma_R9, Gamma_mem, R0, R8, R9, mem; requires (memory_load32_le(mem, $x_addr) == 0bv32); - free requires (memory_load64_le(mem, 69664bv64) == 0bv64); - free requires (memory_load64_le(mem, 69672bv64) == 69672bv64); - free requires (memory_load32_le(mem, 1924bv64) == 131073bv32); - free requires (memory_load64_le(mem, 69056bv64) == 1872bv64); - free requires (memory_load64_le(mem, 69064bv64) == 1792bv64); - free requires (memory_load64_le(mem, 69576bv64) == 69684bv64); - free requires (memory_load64_le(mem, 69592bv64) == 1876bv64); - free requires (memory_load64_le(mem, 69672bv64) == 69672bv64); + free requires (memory_load64_le(mem, 131072bv64) == 0bv64); + free requires (memory_load64_le(mem, 131080bv64) == 131080bv64); + free requires (memory_load32_le(mem, 2308bv64) == 131073bv32); + free requires (memory_load64_le(mem, 130432bv64) == 2256bv64); + free requires (memory_load64_le(mem, 130440bv64) == 2176bv64); + free requires (memory_load64_le(mem, 131040bv64) == 131092bv64); + free requires (memory_load64_le(mem, 131056bv64) == 2260bv64); + free requires (memory_load64_le(mem, 131080bv64) == 131080bv64); ensures (((memory_load32_le(mem, $x_addr) == 1bv32) || (memory_load32_le(mem, $x_addr) == 5bv32)) || (memory_load32_le(mem, $x_addr) == 6bv32)); - free ensures (memory_load32_le(mem, 1924bv64) == 131073bv32); - free ensures (memory_load64_le(mem, 69056bv64) == 1872bv64); - free ensures (memory_load64_le(mem, 69064bv64) == 1792bv64); - free ensures (memory_load64_le(mem, 69576bv64) == 69684bv64); - free ensures (memory_load64_le(mem, 69592bv64) == 1876bv64); - free ensures (memory_load64_le(mem, 69672bv64) == 69672bv64); - -implementation main_1876() + free ensures (memory_load32_le(mem, 2308bv64) == 131073bv32); + free ensures (memory_load64_le(mem, 130432bv64) == 2256bv64); + free ensures (memory_load64_le(mem, 130440bv64) == 2176bv64); + free ensures (memory_load64_le(mem, 131040bv64) == 131092bv64); + free ensures (memory_load64_le(mem, 131056bv64) == 2260bv64); + free ensures (memory_load64_le(mem, 131080bv64) == 131080bv64); + +implementation main() { - var Gamma_load18: bool; - var Gamma_load19: bool; - var load18: bv64; - var load19: bv32; + var $load$18: bv64; + var $load$19: bv32; + var Gamma_$load$18: bool; + var Gamma_$load$19: bool; var x_old: bv32; lmain: assume {:captureState "lmain"} true; - R9, Gamma_R9 := 65536bv64, true; + R8, Gamma_R8 := 126976bv64, true; + R0, Gamma_R0 := 0bv64, true; call rely(); - load18, Gamma_load18 := memory_load64_le(mem, bvadd64(R9, 4040bv64)), (gamma_load64(Gamma_mem, bvadd64(R9, 4040bv64)) || L(mem, bvadd64(R9, 4040bv64))); - R9, Gamma_R9 := load18, Gamma_load18; + $load$18, Gamma_$load$18 := memory_load64_le(mem, bvadd64(R8, 4064bv64)), (gamma_load64(Gamma_mem, bvadd64(R8, 4064bv64)) || L(mem, bvadd64(R8, 4064bv64))); + R8, Gamma_R8 := $load$18, Gamma_$load$18; call rely(); - load19, Gamma_load19 := memory_load32_le(mem, R9), (gamma_load32(Gamma_mem, R9) || L(mem, R9)); - R8, Gamma_R8 := zero_extend32_32(load19), Gamma_load19; - R8, Gamma_R8 := zero_extend32_32(bvadd32(R8[32:0], 1bv32)), Gamma_R8; + $load$19, Gamma_$load$19 := memory_load32_le(mem, R8), (gamma_load32(Gamma_mem, R8) || L(mem, R8)); + R9, Gamma_R9 := zero_extend32_32($load$19), Gamma_$load$19; + R9, Gamma_R9 := zero_extend32_32(bvadd32(R9[32:0], 1bv32)), Gamma_R9; call rely(); + assert (L(mem, R8) ==> Gamma_R9); x_old := memory_load32_le(mem, $x_addr); - assert (L(mem, R9) ==> Gamma_R8); - mem, Gamma_mem := memory_store32_le(mem, R9, R8[32:0]), gamma_store32(Gamma_mem, R9, Gamma_R8); + mem, Gamma_mem := memory_store32_le(mem, R8, R9[32:0]), gamma_store32(Gamma_mem, R8, Gamma_R9); assert (((memory_load32_le(mem, $x_addr) == x_old) || (memory_load32_le(mem, $x_addr) == 1bv32)) || (memory_load32_le(mem, $x_addr) == 6bv32)); - assume {:captureState "%000002e5"} true; - R0, Gamma_R0 := 0bv64, true; - goto main_1876_basil_return; - main_1876_basil_return: - assume {:captureState "main_1876_basil_return"} true; + assume {:captureState "%00000290"} true; + goto main_basil_return; + main_basil_return: + assume {:captureState "main_basil_return"} true; return; } diff --git a/src/test/correct/basic_assign_increment/clang_pic/basic_assign_increment.gts b/src/test/correct/basic_assign_increment/clang_pic/basic_assign_increment.gts deleted file mode 100644 index a9c41d574..000000000 Binary files a/src/test/correct/basic_assign_increment/clang_pic/basic_assign_increment.gts and /dev/null differ diff --git a/src/test/correct/basic_assign_increment/clang_pic/basic_assign_increment.md5sum b/src/test/correct/basic_assign_increment/clang_pic/basic_assign_increment.md5sum new file mode 100644 index 000000000..6a0426426 --- /dev/null +++ b/src/test/correct/basic_assign_increment/clang_pic/basic_assign_increment.md5sum @@ -0,0 +1,5 @@ +f0cb726eb4c0b6e6cf48e3aa3a00077f correct/basic_assign_increment/clang_pic/a.out +0d1c47af5e4f3d5c132074d41013b67e correct/basic_assign_increment/clang_pic/basic_assign_increment.adt +f78b949c3074398d7d8c445c7528c412 correct/basic_assign_increment/clang_pic/basic_assign_increment.bir +2f88c58226c36a2df0a3993e8048088d correct/basic_assign_increment/clang_pic/basic_assign_increment.relf +e46ea09301e2480667d359982985c3a2 correct/basic_assign_increment/clang_pic/basic_assign_increment.gts diff --git a/src/test/correct/basic_assign_increment/clang_pic/basic_assign_increment.relf b/src/test/correct/basic_assign_increment/clang_pic/basic_assign_increment.relf deleted file mode 100644 index 64675a379..000000000 --- a/src/test/correct/basic_assign_increment/clang_pic/basic_assign_increment.relf +++ /dev/null @@ -1,124 +0,0 @@ - -Relocation section '.rela.dyn' at offset 0x460 contains 9 entries: - Offset Info Type Symbol's Value Symbol's Name + Addend -0000000000010dc0 0000000000000403 R_AARCH64_RELATIVE 750 -0000000000010dc8 0000000000000403 R_AARCH64_RELATIVE 700 -0000000000010fc8 0000000000000403 R_AARCH64_RELATIVE 11034 -0000000000010fd8 0000000000000403 R_AARCH64_RELATIVE 754 -0000000000011028 0000000000000403 R_AARCH64_RELATIVE 11028 -0000000000010fb8 0000000400000401 R_AARCH64_GLOB_DAT 0000000000000000 _ITM_deregisterTMCloneTable + 0 -0000000000010fc0 0000000500000401 R_AARCH64_GLOB_DAT 0000000000000000 __cxa_finalize@GLIBC_2.17 + 0 -0000000000010fd0 0000000600000401 R_AARCH64_GLOB_DAT 0000000000000000 __gmon_start__ + 0 -0000000000010fe0 0000000800000401 R_AARCH64_GLOB_DAT 0000000000000000 _ITM_registerTMCloneTable + 0 - -Relocation section '.rela.plt' at offset 0x538 contains 4 entries: - Offset Info Type Symbol's Value Symbol's Name + Addend -0000000000011000 0000000300000402 R_AARCH64_JUMP_SLOT 0000000000000000 __libc_start_main@GLIBC_2.34 + 0 -0000000000011008 0000000500000402 R_AARCH64_JUMP_SLOT 0000000000000000 __cxa_finalize@GLIBC_2.17 + 0 -0000000000011010 0000000600000402 R_AARCH64_JUMP_SLOT 0000000000000000 __gmon_start__ + 0 -0000000000011018 0000000700000402 R_AARCH64_JUMP_SLOT 0000000000000000 abort@GLIBC_2.17 + 0 - -Symbol table '.dynsym' contains 9 entries: - Num: Value Size Type Bind Vis Ndx Name - 0: 0000000000000000 0 NOTYPE LOCAL DEFAULT UND - 1: 0000000000000598 0 SECTION LOCAL DEFAULT 11 .init - 2: 0000000000011020 0 SECTION LOCAL DEFAULT 23 .data - 3: 0000000000000000 0 FUNC GLOBAL DEFAULT UND __libc_start_main@GLIBC_2.34 (2) - 4: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_deregisterTMCloneTable - 5: 0000000000000000 0 FUNC WEAK DEFAULT UND __cxa_finalize@GLIBC_2.17 (3) - 6: 0000000000000000 0 NOTYPE WEAK DEFAULT UND __gmon_start__ - 7: 0000000000000000 0 FUNC GLOBAL DEFAULT UND abort@GLIBC_2.17 (3) - 8: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_registerTMCloneTable - -Symbol table '.symtab' contains 90 entries: - Num: Value Size Type Bind Vis Ndx Name - 0: 0000000000000000 0 NOTYPE LOCAL DEFAULT UND - 1: 0000000000000238 0 SECTION LOCAL DEFAULT 1 .interp - 2: 0000000000000254 0 SECTION LOCAL DEFAULT 2 .note.gnu.build-id - 3: 0000000000000278 0 SECTION LOCAL DEFAULT 3 .note.ABI-tag - 4: 0000000000000298 0 SECTION LOCAL DEFAULT 4 .gnu.hash - 5: 00000000000002b8 0 SECTION LOCAL DEFAULT 5 .dynsym - 6: 0000000000000390 0 SECTION LOCAL DEFAULT 6 .dynstr - 7: 000000000000041e 0 SECTION LOCAL DEFAULT 7 .gnu.version - 8: 0000000000000430 0 SECTION LOCAL DEFAULT 8 .gnu.version_r - 9: 0000000000000460 0 SECTION LOCAL DEFAULT 9 .rela.dyn - 10: 0000000000000538 0 SECTION LOCAL DEFAULT 10 .rela.plt - 11: 0000000000000598 0 SECTION LOCAL DEFAULT 11 .init - 12: 00000000000005b0 0 SECTION LOCAL DEFAULT 12 .plt - 13: 0000000000000640 0 SECTION LOCAL DEFAULT 13 .text - 14: 0000000000000770 0 SECTION LOCAL DEFAULT 14 .fini - 15: 0000000000000784 0 SECTION LOCAL DEFAULT 15 .rodata - 16: 0000000000000788 0 SECTION LOCAL DEFAULT 16 .eh_frame_hdr - 17: 00000000000007c8 0 SECTION LOCAL DEFAULT 17 .eh_frame - 18: 0000000000010dc0 0 SECTION LOCAL DEFAULT 18 .init_array - 19: 0000000000010dc8 0 SECTION LOCAL DEFAULT 19 .fini_array - 20: 0000000000010dd0 0 SECTION LOCAL DEFAULT 20 .dynamic - 21: 0000000000010fb0 0 SECTION LOCAL DEFAULT 21 .got - 22: 0000000000010fe8 0 SECTION LOCAL DEFAULT 22 .got.plt - 23: 0000000000011020 0 SECTION LOCAL DEFAULT 23 .data - 24: 0000000000011030 0 SECTION LOCAL DEFAULT 24 .bss - 25: 0000000000000000 0 SECTION LOCAL DEFAULT 25 .comment - 26: 0000000000000000 0 FILE LOCAL DEFAULT ABS Scrt1.o - 27: 0000000000000278 0 NOTYPE LOCAL DEFAULT 3 $d - 28: 0000000000000278 32 OBJECT LOCAL DEFAULT 3 __abi_tag - 29: 0000000000000640 0 NOTYPE LOCAL DEFAULT 13 $x - 30: 00000000000007dc 0 NOTYPE LOCAL DEFAULT 17 $d - 31: 0000000000000784 0 NOTYPE LOCAL DEFAULT 15 $d - 32: 0000000000000000 0 FILE LOCAL DEFAULT ABS crti.o - 33: 0000000000000674 0 NOTYPE LOCAL DEFAULT 13 $x - 34: 0000000000000674 20 FUNC LOCAL DEFAULT 13 call_weak_fn - 35: 0000000000000598 0 NOTYPE LOCAL DEFAULT 11 $x - 36: 0000000000000770 0 NOTYPE LOCAL DEFAULT 14 $x - 37: 0000000000000000 0 FILE LOCAL DEFAULT ABS crtn.o - 38: 00000000000005a8 0 NOTYPE LOCAL DEFAULT 11 $x - 39: 000000000000077c 0 NOTYPE LOCAL DEFAULT 14 $x - 40: 0000000000000000 0 FILE LOCAL DEFAULT ABS crtstuff.c - 41: 0000000000000690 0 NOTYPE LOCAL DEFAULT 13 $x - 42: 0000000000000690 0 FUNC LOCAL DEFAULT 13 deregister_tm_clones - 43: 00000000000006c0 0 FUNC LOCAL DEFAULT 13 register_tm_clones - 44: 0000000000011028 0 NOTYPE LOCAL DEFAULT 23 $d - 45: 0000000000000700 0 FUNC LOCAL DEFAULT 13 __do_global_dtors_aux - 46: 0000000000011030 1 OBJECT LOCAL DEFAULT 24 completed.0 - 47: 0000000000010dc8 0 NOTYPE LOCAL DEFAULT 19 $d - 48: 0000000000010dc8 0 OBJECT LOCAL DEFAULT 19 __do_global_dtors_aux_fini_array_entry - 49: 0000000000000750 0 FUNC LOCAL DEFAULT 13 frame_dummy - 50: 0000000000010dc0 0 NOTYPE LOCAL DEFAULT 18 $d - 51: 0000000000010dc0 0 OBJECT LOCAL DEFAULT 18 __frame_dummy_init_array_entry - 52: 00000000000007f0 0 NOTYPE LOCAL DEFAULT 17 $d - 53: 0000000000011030 0 NOTYPE LOCAL DEFAULT 24 $d - 54: 0000000000000000 0 FILE LOCAL DEFAULT ABS basic_assign_increment.c - 55: 0000000000000754 0 NOTYPE LOCAL DEFAULT 13 $x.0 - 56: 0000000000011034 0 NOTYPE LOCAL DEFAULT 24 $d.1 - 57: 000000000000002a 0 NOTYPE LOCAL DEFAULT 25 $d.2 - 58: 0000000000000850 0 NOTYPE LOCAL DEFAULT 17 $d.3 - 59: 0000000000000000 0 FILE LOCAL DEFAULT ABS crtstuff.c - 60: 0000000000000878 0 NOTYPE LOCAL DEFAULT 17 $d - 61: 0000000000000878 0 OBJECT LOCAL DEFAULT 17 __FRAME_END__ - 62: 0000000000000000 0 FILE LOCAL DEFAULT ABS - 63: 0000000000010dd0 0 OBJECT LOCAL DEFAULT ABS _DYNAMIC - 64: 0000000000000788 0 NOTYPE LOCAL DEFAULT 16 __GNU_EH_FRAME_HDR - 65: 0000000000010fb0 0 OBJECT LOCAL DEFAULT ABS _GLOBAL_OFFSET_TABLE_ - 66: 00000000000005b0 0 NOTYPE LOCAL DEFAULT 12 $x - 67: 0000000000000000 0 FUNC GLOBAL DEFAULT UND __libc_start_main@GLIBC_2.34 - 68: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_deregisterTMCloneTable - 69: 0000000000011020 0 NOTYPE WEAK DEFAULT 23 data_start - 70: 0000000000011030 0 NOTYPE GLOBAL DEFAULT 24 __bss_start__ - 71: 0000000000000000 0 FUNC WEAK DEFAULT UND __cxa_finalize@GLIBC_2.17 - 72: 0000000000011038 0 NOTYPE GLOBAL DEFAULT 24 _bss_end__ - 73: 0000000000011030 0 NOTYPE GLOBAL DEFAULT 23 _edata - 74: 0000000000011034 4 OBJECT GLOBAL DEFAULT 24 x - 75: 0000000000000770 0 FUNC GLOBAL HIDDEN 14 _fini - 76: 0000000000011038 0 NOTYPE GLOBAL DEFAULT 24 __bss_end__ - 77: 0000000000011020 0 NOTYPE GLOBAL DEFAULT 23 __data_start - 78: 0000000000000000 0 NOTYPE WEAK DEFAULT UND __gmon_start__ - 79: 0000000000011028 0 OBJECT GLOBAL HIDDEN 23 __dso_handle - 80: 0000000000000000 0 FUNC GLOBAL DEFAULT UND abort@GLIBC_2.17 - 81: 0000000000000784 4 OBJECT GLOBAL DEFAULT 15 _IO_stdin_used - 82: 0000000000011038 0 NOTYPE GLOBAL DEFAULT 24 _end - 83: 0000000000000640 52 FUNC GLOBAL DEFAULT 13 _start - 84: 0000000000011038 0 NOTYPE GLOBAL DEFAULT 24 __end__ - 85: 0000000000011030 0 NOTYPE GLOBAL DEFAULT 24 __bss_start - 86: 0000000000000754 28 FUNC GLOBAL DEFAULT 13 main - 87: 0000000000011030 0 OBJECT GLOBAL HIDDEN 23 __TMC_END__ - 88: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_registerTMCloneTable - 89: 0000000000000598 0 FUNC GLOBAL HIDDEN 11 _init diff --git a/src/test/correct/basic_assign_increment/clang_pic/basic_assign_increment_gtirb.expected b/src/test/correct/basic_assign_increment/clang_pic/basic_assign_increment_gtirb.expected index 31cb78406..496bf6269 100644 --- a/src/test/correct/basic_assign_increment/clang_pic/basic_assign_increment_gtirb.expected +++ b/src/test/correct/basic_assign_increment/clang_pic/basic_assign_increment_gtirb.expected @@ -7,7 +7,7 @@ var {:extern} R8: bv64; var {:extern} R9: bv64; var {:extern} mem: [bv64]bv8; const {:extern} $x_addr: bv64; -axiom ($x_addr == 69684bv64); +axiom ($x_addr == 131092bv64); function {:extern} L(mem$in: [bv64]bv8, index: bv64) returns (bool) { (if (index == $x_addr) then true else false) } @@ -43,12 +43,12 @@ procedure {:extern} rely(); modifies Gamma_mem, mem; ensures (forall i: bv64 :: (((mem[i] == old(mem[i])) ==> (Gamma_mem[i] == old(Gamma_mem[i]))))); ensures ((memory_load32_le(mem, $x_addr) == old(memory_load32_le(mem, $x_addr))) || (memory_load32_le(mem, $x_addr) == 5bv32)); - free ensures (memory_load32_le(mem, 1924bv64) == 131073bv32); - free ensures (memory_load64_le(mem, 69056bv64) == 1872bv64); - free ensures (memory_load64_le(mem, 69064bv64) == 1792bv64); - free ensures (memory_load64_le(mem, 69576bv64) == 69684bv64); - free ensures (memory_load64_le(mem, 69592bv64) == 1876bv64); - free ensures (memory_load64_le(mem, 69672bv64) == 69672bv64); + free ensures (memory_load32_le(mem, 2308bv64) == 131073bv32); + free ensures (memory_load64_le(mem, 130432bv64) == 2256bv64); + free ensures (memory_load64_le(mem, 130440bv64) == 2176bv64); + free ensures (memory_load64_le(mem, 131040bv64) == 131092bv64); + free ensures (memory_load64_le(mem, 131056bv64) == 2260bv64); + free ensures (memory_load64_le(mem, 131080bv64) == 131080bv64); procedure {:extern} rely_transitive(); modifies Gamma_mem, mem; @@ -75,52 +75,52 @@ implementation {:extern} guarantee_reflexive() assert (((memory_load32_le(mem, $x_addr) == memory_load32_le(mem, $x_addr)) || (memory_load32_le(mem, $x_addr) == 1bv32)) || (memory_load32_le(mem, $x_addr) == 6bv32)); } -procedure main_1876(); +procedure main(); modifies Gamma_R0, Gamma_R8, Gamma_R9, Gamma_mem, R0, R8, R9, mem; requires (memory_load32_le(mem, $x_addr) == 0bv32); - free requires (memory_load64_le(mem, 69664bv64) == 0bv64); - free requires (memory_load64_le(mem, 69672bv64) == 69672bv64); - free requires (memory_load32_le(mem, 1924bv64) == 131073bv32); - free requires (memory_load64_le(mem, 69056bv64) == 1872bv64); - free requires (memory_load64_le(mem, 69064bv64) == 1792bv64); - free requires (memory_load64_le(mem, 69576bv64) == 69684bv64); - free requires (memory_load64_le(mem, 69592bv64) == 1876bv64); - free requires (memory_load64_le(mem, 69672bv64) == 69672bv64); + free requires (memory_load64_le(mem, 131072bv64) == 0bv64); + free requires (memory_load64_le(mem, 131080bv64) == 131080bv64); + free requires (memory_load32_le(mem, 2308bv64) == 131073bv32); + free requires (memory_load64_le(mem, 130432bv64) == 2256bv64); + free requires (memory_load64_le(mem, 130440bv64) == 2176bv64); + free requires (memory_load64_le(mem, 131040bv64) == 131092bv64); + free requires (memory_load64_le(mem, 131056bv64) == 2260bv64); + free requires (memory_load64_le(mem, 131080bv64) == 131080bv64); ensures (((memory_load32_le(mem, $x_addr) == 1bv32) || (memory_load32_le(mem, $x_addr) == 5bv32)) || (memory_load32_le(mem, $x_addr) == 6bv32)); - free ensures (memory_load32_le(mem, 1924bv64) == 131073bv32); - free ensures (memory_load64_le(mem, 69056bv64) == 1872bv64); - free ensures (memory_load64_le(mem, 69064bv64) == 1792bv64); - free ensures (memory_load64_le(mem, 69576bv64) == 69684bv64); - free ensures (memory_load64_le(mem, 69592bv64) == 1876bv64); - free ensures (memory_load64_le(mem, 69672bv64) == 69672bv64); - -implementation main_1876() + free ensures (memory_load32_le(mem, 2308bv64) == 131073bv32); + free ensures (memory_load64_le(mem, 130432bv64) == 2256bv64); + free ensures (memory_load64_le(mem, 130440bv64) == 2176bv64); + free ensures (memory_load64_le(mem, 131040bv64) == 131092bv64); + free ensures (memory_load64_le(mem, 131056bv64) == 2260bv64); + free ensures (memory_load64_le(mem, 131080bv64) == 131080bv64); + +implementation main() { - var Gamma_load4: bool; - var Gamma_load5: bool; - var load4: bv64; - var load5: bv32; + var $load11: bv64; + var $load12: bv32; + var Gamma_$load11: bool; + var Gamma_$load12: bool; var x_old: bv32; - main_1876__0__bZWV3u7ES1C1enASABiKYQ: - assume {:captureState "main_1876__0__bZWV3u7ES1C1enASABiKYQ"} true; - R9, Gamma_R9 := 65536bv64, true; + $main$__0__$oqiqdATZTc6MDOYJqL9Aew: + assume {:captureState "$main$__0__$oqiqdATZTc6MDOYJqL9Aew"} true; + R8, Gamma_R8 := 126976bv64, true; + R0, Gamma_R0 := 0bv64, true; call rely(); - load4, Gamma_load4 := memory_load64_le(mem, bvadd64(R9, 4040bv64)), (gamma_load64(Gamma_mem, bvadd64(R9, 4040bv64)) || L(mem, bvadd64(R9, 4040bv64))); - R9, Gamma_R9 := load4, Gamma_load4; + $load11, Gamma_$load11 := memory_load64_le(mem, bvadd64(R8, 4064bv64)), (gamma_load64(Gamma_mem, bvadd64(R8, 4064bv64)) || L(mem, bvadd64(R8, 4064bv64))); + R8, Gamma_R8 := $load11, Gamma_$load11; call rely(); - load5, Gamma_load5 := memory_load32_le(mem, R9), (gamma_load32(Gamma_mem, R9) || L(mem, R9)); - R8, Gamma_R8 := zero_extend32_32(load5), Gamma_load5; - R8, Gamma_R8 := zero_extend32_32(bvadd32(R8[32:0], 1bv32)), Gamma_R8; + $load12, Gamma_$load12 := memory_load32_le(mem, R8), (gamma_load32(Gamma_mem, R8) || L(mem, R8)); + R9, Gamma_R9 := zero_extend32_32($load12), Gamma_$load12; + R9, Gamma_R9 := zero_extend32_32(bvadd32(R9[32:0], 1bv32)), Gamma_R9; call rely(); + assert (L(mem, R8) ==> Gamma_R9); x_old := memory_load32_le(mem, $x_addr); - assert (L(mem, R9) ==> Gamma_R8); - mem, Gamma_mem := memory_store32_le(mem, R9, R8[32:0]), gamma_store32(Gamma_mem, R9, Gamma_R8); + mem, Gamma_mem := memory_store32_le(mem, R8, R9[32:0]), gamma_store32(Gamma_mem, R8, Gamma_R9); assert (((memory_load32_le(mem, $x_addr) == x_old) || (memory_load32_le(mem, $x_addr) == 1bv32)) || (memory_load32_le(mem, $x_addr) == 6bv32)); - assume {:captureState "1892_0"} true; - R0, Gamma_R0 := 0bv64, true; - goto main_1876_basil_return; - main_1876_basil_return: - assume {:captureState "main_1876_basil_return"} true; + assume {:captureState "2280$0"} true; + goto main_basil_return; + main_basil_return: + assume {:captureState "main_basil_return"} true; return; } diff --git a/src/test/correct/basic_assign_increment/gcc/basic_assign_increment.adt b/src/test/correct/basic_assign_increment/gcc/basic_assign_increment.adt deleted file mode 100644 index dfffe0baa..000000000 --- a/src/test/correct/basic_assign_increment/gcc/basic_assign_increment.adt +++ /dev/null @@ -1,501 +0,0 @@ -Project(Attrs([Attr("filename","\"gcc/basic_assign_increment.out\""), -Attr("image-specification","(declare abi (name str))\n(declare arch (name str))\n(declare base-address (addr int))\n(declare bias (off int))\n(declare bits (size int))\n(declare code-region (addr int) (size int) (off int))\n(declare code-start (addr int))\n(declare entry-point (addr int))\n(declare external-reference (addr int) (name str))\n(declare format (name str))\n(declare is-executable (flag bool))\n(declare is-little-endian (flag bool))\n(declare llvm:base-address (addr int))\n(declare llvm:code-entry (name str) (off int) (size int))\n(declare llvm:coff-import-library (name str))\n(declare llvm:coff-virtual-section-header (name str) (addr int) (size int))\n(declare llvm:elf-program-header (name str) (off int) (size int))\n(declare llvm:elf-program-header-flags (name str) (ld bool) (r bool) \n (w bool) (x bool))\n(declare llvm:elf-virtual-program-header (name str) (addr int) (size int))\n(declare llvm:entry-point (addr int))\n(declare llvm:macho-symbol (name str) (value int))\n(declare llvm:name-reference (at int) (name str))\n(declare llvm:relocation (at int) (addr int))\n(declare llvm:section-entry (name str) (addr int) (size int) (off int))\n(declare llvm:section-flags (name str) (r bool) (w bool) (x bool))\n(declare llvm:segment-command (name str) (off int) (size int))\n(declare llvm:segment-command-flags (name str) (r bool) (w bool) (x bool))\n(declare llvm:symbol-entry (name str) (addr int) (size int) (off int)\n (value int))\n(declare llvm:virtual-segment-command (name str) (addr int) (size int))\n(declare mapped (addr int) (size int) (off int))\n(declare named-region (addr int) (size int) (name str))\n(declare named-symbol (addr int) (name str))\n(declare require (name str))\n(declare section (addr int) (size int))\n(declare segment (addr int) (size int) (r bool) (w bool) (x bool))\n(declare subarch (name str))\n(declare symbol-chunk (addr int) (size int) (root int))\n(declare symbol-value (addr int) (value int))\n(declare system (name str))\n(declare vendor (name str))\n\n(abi unknown)\n(arch aarch64)\n(base-address 0)\n(bias 0)\n(bits 64)\n(code-region 1848 20 1848)\n(code-region 1536 312 1536)\n(code-region 1440 96 1440)\n(code-region 1408 24 1408)\n(code-start 1588)\n(code-start 1536)\n(code-start 1812)\n(entry-point 1536)\n(external-reference 69592 _ITM_deregisterTMCloneTable)\n(external-reference 69600 __cxa_finalize)\n(external-reference 69608 __gmon_start__)\n(external-reference 69624 _ITM_registerTMCloneTable)\n(external-reference 69552 __libc_start_main)\n(external-reference 69560 __cxa_finalize)\n(external-reference 69568 __gmon_start__)\n(external-reference 69576 abort)\n(format elf)\n(is-executable true)\n(is-little-endian true)\n(llvm:base-address 0)\n(llvm:code-entry abort 0 0)\n(llvm:code-entry __cxa_finalize 0 0)\n(llvm:code-entry __libc_start_main 0 0)\n(llvm:code-entry _init 1408 0)\n(llvm:code-entry main 1812 36)\n(llvm:code-entry _start 1536 52)\n(llvm:code-entry abort@GLIBC_2.17 0 0)\n(llvm:code-entry _fini 1848 0)\n(llvm:code-entry __cxa_finalize@GLIBC_2.17 0 0)\n(llvm:code-entry __libc_start_main@GLIBC_2.34 0 0)\n(llvm:code-entry frame_dummy 1808 0)\n(llvm:code-entry __do_global_dtors_aux 1728 0)\n(llvm:code-entry register_tm_clones 1664 0)\n(llvm:code-entry deregister_tm_clones 1616 0)\n(llvm:code-entry call_weak_fn 1588 20)\n(llvm:code-entry .fini 1848 20)\n(llvm:code-entry .text 1536 312)\n(llvm:code-entry .plt 1440 96)\n(llvm:code-entry .init 1408 24)\n(llvm:elf-program-header 08 3480 616)\n(llvm:elf-program-header 07 0 0)\n(llvm:elf-program-header 06 1872 60)\n(llvm:elf-program-header 05 596 68)\n(llvm:elf-program-header 04 3496 496)\n(llvm:elf-program-header 03 3480 632)\n(llvm:elf-program-header 02 0 2096)\n(llvm:elf-program-header 01 568 27)\n(llvm:elf-program-header 00 64 504)\n(llvm:elf-program-header-flags 08 false true false false)\n(llvm:elf-program-header-flags 07 false true true false)\n(llvm:elf-program-header-flags 06 false true false false)\n(llvm:elf-program-header-flags 05 false true false false)\n(llvm:elf-program-header-flags 04 false true true false)\n(llvm:elf-program-header-flags 03 true true true false)\n(llvm:elf-program-header-flags 02 true true false true)\n(llvm:elf-program-header-flags 01 false true false false)\n(llvm:elf-program-header-flags 00 false true false false)\n(llvm:elf-virtual-program-header 08 69016 616)\n(llvm:elf-virtual-program-header 07 0 0)\n(llvm:elf-virtual-program-header 06 1872 60)\n(llvm:elf-virtual-program-header 05 596 68)\n(llvm:elf-virtual-program-header 04 69032 496)\n(llvm:elf-virtual-program-header 03 69016 640)\n(llvm:elf-virtual-program-header 02 0 2096)\n(llvm:elf-virtual-program-header 01 568 27)\n(llvm:elf-virtual-program-header 00 64 504)\n(llvm:entry-point 1536)\n(llvm:name-reference 69576 abort)\n(llvm:name-reference 69568 __gmon_start__)\n(llvm:name-reference 69560 __cxa_finalize)\n(llvm:name-reference 69552 __libc_start_main)\n(llvm:name-reference 69624 _ITM_registerTMCloneTable)\n(llvm:name-reference 69608 __gmon_start__)\n(llvm:name-reference 69600 __cxa_finalize)\n(llvm:name-reference 69592 _ITM_deregisterTMCloneTable)\n(llvm:section-entry .shstrtab 0 250 6830)\n(llvm:section-entry .strtab 0 558 6272)\n(llvm:section-entry .symtab 0 2112 4160)\n(llvm:section-entry .comment 0 43 4112)\n(llvm:section-entry .bss 69648 8 4112)\n(llvm:section-entry .data 69632 16 4096)\n(llvm:section-entry .got 69528 104 3992)\n(llvm:section-entry .dynamic 69032 496 3496)\n(llvm:section-entry .fini_array 69024 8 3488)\n(llvm:section-entry .init_array 69016 8 3480)\n(llvm:section-entry .eh_frame 1936 160 1936)\n(llvm:section-entry .eh_frame_hdr 1872 60 1872)\n(llvm:section-entry .rodata 1868 4 1868)\n(llvm:section-entry .fini 1848 20 1848)\n(llvm:section-entry .text 1536 312 1536)\n(llvm:section-entry .plt 1440 96 1440)\n(llvm:section-entry .init 1408 24 1408)\n(llvm:section-entry .rela.plt 1312 96 1312)\n(llvm:section-entry .rela.dyn 1120 192 1120)\n(llvm:section-entry .gnu.version_r 1072 48 1072)\n(llvm:section-entry .gnu.version 1054 18 1054)\n(llvm:section-entry .dynstr 912 141 912)\n(llvm:section-entry .dynsym 696 216 696)\n(llvm:section-entry .gnu.hash 664 28 664)\n(llvm:section-entry .note.ABI-tag 632 32 632)\n(llvm:section-entry .note.gnu.build-id 596 36 596)\n(llvm:section-entry .interp 568 27 568)\n(llvm:section-flags .shstrtab true false false)\n(llvm:section-flags .strtab true false false)\n(llvm:section-flags .symtab true false false)\n(llvm:section-flags .comment true false false)\n(llvm:section-flags .bss true true false)\n(llvm:section-flags .data true true false)\n(llvm:section-flags .got true true false)\n(llvm:section-flags .dynamic true true false)\n(llvm:section-flags .fini_array true true false)\n(llvm:section-flags .init_array true true false)\n(llvm:section-flags .eh_frame true false false)\n(llvm:section-flags .eh_frame_hdr true false false)\n(llvm:section-flags .rodata true false false)\n(llvm:section-flags .fini true false true)\n(llvm:section-flags .text true false true)\n(llvm:section-flags .plt true false true)\n(llvm:section-flags .init true false true)\n(llvm:section-flags .rela.plt true false false)\n(llvm:section-flags .rela.dyn true false false)\n(llvm:section-flags .gnu.version_r true false false)\n(llvm:section-flags .gnu.version true false false)\n(llvm:section-flags .dynstr true false false)\n(llvm:section-flags .dynsym true false false)\n(llvm:section-flags .gnu.hash true false false)\n(llvm:section-flags .note.ABI-tag true false false)\n(llvm:section-flags .note.gnu.build-id true false false)\n(llvm:section-flags .interp true false false)\n(llvm:symbol-entry abort 0 0 0 0)\n(llvm:symbol-entry __cxa_finalize 0 0 0 0)\n(llvm:symbol-entry __libc_start_main 0 0 0 0)\n(llvm:symbol-entry _init 1408 0 1408 1408)\n(llvm:symbol-entry main 1812 36 1812 1812)\n(llvm:symbol-entry _start 1536 52 1536 1536)\n(llvm:symbol-entry abort@GLIBC_2.17 0 0 0 0)\n(llvm:symbol-entry _fini 1848 0 1848 1848)\n(llvm:symbol-entry __cxa_finalize@GLIBC_2.17 0 0 0 0)\n(llvm:symbol-entry __libc_start_main@GLIBC_2.34 0 0 0 0)\n(llvm:symbol-entry frame_dummy 1808 0 1808 1808)\n(llvm:symbol-entry __do_global_dtors_aux 1728 0 1728 1728)\n(llvm:symbol-entry register_tm_clones 1664 0 1664 1664)\n(llvm:symbol-entry deregister_tm_clones 1616 0 1616 1616)\n(llvm:symbol-entry call_weak_fn 1588 20 1588 1588)\n(mapped 0 2096 0)\n(mapped 69016 632 3480)\n(named-region 0 2096 02)\n(named-region 69016 640 03)\n(named-region 568 27 .interp)\n(named-region 596 36 .note.gnu.build-id)\n(named-region 632 32 .note.ABI-tag)\n(named-region 664 28 .gnu.hash)\n(named-region 696 216 .dynsym)\n(named-region 912 141 .dynstr)\n(named-region 1054 18 .gnu.version)\n(named-region 1072 48 .gnu.version_r)\n(named-region 1120 192 .rela.dyn)\n(named-region 1312 96 .rela.plt)\n(named-region 1408 24 .init)\n(named-region 1440 96 .plt)\n(named-region 1536 312 .text)\n(named-region 1848 20 .fini)\n(named-region 1868 4 .rodata)\n(named-region 1872 60 .eh_frame_hdr)\n(named-region 1936 160 .eh_frame)\n(named-region 69016 8 .init_array)\n(named-region 69024 8 .fini_array)\n(named-region 69032 496 .dynamic)\n(named-region 69528 104 .got)\n(named-region 69632 16 .data)\n(named-region 69648 8 .bss)\n(named-region 0 43 .comment)\n(named-region 0 2112 .symtab)\n(named-region 0 558 .strtab)\n(named-region 0 250 .shstrtab)\n(named-symbol 1588 call_weak_fn)\n(named-symbol 1616 deregister_tm_clones)\n(named-symbol 1664 register_tm_clones)\n(named-symbol 1728 __do_global_dtors_aux)\n(named-symbol 1808 frame_dummy)\n(named-symbol 0 __libc_start_main@GLIBC_2.34)\n(named-symbol 0 __cxa_finalize@GLIBC_2.17)\n(named-symbol 1848 _fini)\n(named-symbol 0 abort@GLIBC_2.17)\n(named-symbol 1536 _start)\n(named-symbol 1812 main)\n(named-symbol 1408 _init)\n(named-symbol 0 __libc_start_main)\n(named-symbol 0 __cxa_finalize)\n(named-symbol 0 abort)\n(require libc.so.6)\n(section 568 27)\n(section 596 36)\n(section 632 32)\n(section 664 28)\n(section 696 216)\n(section 912 141)\n(section 1054 18)\n(section 1072 48)\n(section 1120 192)\n(section 1312 96)\n(section 1408 24)\n(section 1440 96)\n(section 1536 312)\n(section 1848 20)\n(section 1868 4)\n(section 1872 60)\n(section 1936 160)\n(section 69016 8)\n(section 69024 8)\n(section 69032 496)\n(section 69528 104)\n(section 69632 16)\n(section 69648 8)\n(section 0 43)\n(section 0 2112)\n(section 0 558)\n(section 0 250)\n(segment 0 2096 true false true)\n(segment 69016 640 true true false)\n(subarch v8)\n(symbol-chunk 1588 20 1588)\n(symbol-chunk 1536 52 1536)\n(symbol-chunk 1812 36 1812)\n(symbol-value 1588 1588)\n(symbol-value 1616 1616)\n(symbol-value 1664 1664)\n(symbol-value 1728 1728)\n(symbol-value 1808 1808)\n(symbol-value 1848 1848)\n(symbol-value 1536 1536)\n(symbol-value 1812 1812)\n(symbol-value 1408 1408)\n(symbol-value 0 0)\n(system \"\")\n(vendor \"\")\n"), -Attr("abi-name","\"aarch64-linux-gnu-elf\"")]), -Sections([Section(".shstrtab", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x00\x06\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xa8\x1b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x38\x00\x09\x00\x40\x00\x1c\x00\x1b\x00\x06\x00\x00\x00\x04\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x04\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x30\x08\x00\x00\x00\x00\x00\x00\x30\x08\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x01\x00\x00\x00\x06\x00\x00\x00\x98\x0d\x00\x00\x00\x00\x00\x00\x98\x0d"), -Section(".strtab", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x00\x06\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xa8\x1b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x38\x00\x09\x00\x40\x00\x1c\x00\x1b\x00\x06\x00\x00\x00\x04\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x04\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x30\x08\x00\x00\x00\x00\x00\x00\x30\x08\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x01\x00\x00\x00\x06\x00\x00\x00\x98\x0d\x00\x00\x00\x00\x00\x00\x98\x0d\x01\x00\x00\x00\x00\x00\x98\x0d\x01\x00\x00\x00\x00\x00\x78\x02\x00\x00\x00\x00\x00\x00\x80\x02\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x02\x00\x00\x00\x06\x00\x00\x00\xa8\x0d\x00\x00\x00\x00\x00\x00\xa8\x0d\x01\x00\x00\x00\x00\x00\xa8\x0d\x01\x00\x00\x00\x00\x00\xf0\x01\x00\x00\x00\x00\x00\x00\xf0\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x04\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x50\xe5\x74\x64\x04\x00\x00\x00\x50\x07\x00\x00\x00\x00\x00\x00\x50\x07\x00\x00\x00\x00\x00\x00\x50\x07\x00\x00\x00\x00\x00\x00\x3c\x00\x00\x00\x00\x00\x00\x00\x3c\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x51\xe5\x74\x64\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x52\xe5\x74\x64\x04\x00\x00\x00\x98\x0d\x00\x00\x00\x00\x00\x00\x98\x0d\x01\x00\x00\x00\x00\x00\x98\x0d\x01\x00\x00\x00\x00\x00\x68\x02\x00\x00\x00\x00\x00\x00\x68\x02\x00\x00\x00\x00"), -Section(".comment", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x00\x06\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xa8\x1b\x00"), -Section(".interp", 0x238, "\x2f\x6c\x69\x62\x2f\x6c\x64\x2d\x6c\x69\x6e\x75\x78\x2d\x61\x61\x72\x63\x68\x36\x34\x2e\x73\x6f\x2e\x31\x00"), -Section(".note.gnu.build-id", 0x254, "\x04\x00\x00\x00\x14\x00\x00\x00\x03\x00\x00\x00\x47\x4e\x55\x00\x79\x14\x3b\x40\xb0\xc0\xc3\x1c\xc7\x61\x87\x57\x65\xca\x84\x27\xaa\x97\x31\xb8"), -Section(".note.ABI-tag", 0x278, "\x04\x00\x00\x00\x10\x00\x00\x00\x01\x00\x00\x00\x47\x4e\x55\x00\x00\x00\x00\x00\x03\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00"), -Section(".gnu.hash", 0x298, "\x01\x00\x00\x00\x01\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".dynsym", 0x2B8, "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x0b\x00\x80\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x16\x00\x00\x10\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x48\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x22\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x22\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x73\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".dynstr", 0x390, "\x00\x5f\x5f\x63\x78\x61\x5f\x66\x69\x6e\x61\x6c\x69\x7a\x65\x00\x5f\x5f\x6c\x69\x62\x63\x5f\x73\x74\x61\x72\x74\x5f\x6d\x61\x69\x6e\x00\x61\x62\x6f\x72\x74\x00\x6c\x69\x62\x63\x2e\x73\x6f\x2e\x36\x00\x47\x4c\x49\x42\x43\x5f\x32\x2e\x31\x37\x00\x47\x4c\x49\x42\x43\x5f\x32\x2e\x33\x34\x00\x5f\x49\x54\x4d\x5f\x64\x65\x72\x65\x67\x69\x73\x74\x65\x72\x54\x4d\x43\x6c\x6f\x6e\x65\x54\x61\x62\x6c\x65\x00\x5f\x5f\x67\x6d\x6f\x6e\x5f\x73\x74\x61\x72\x74\x5f\x5f\x00\x5f\x49\x54\x4d\x5f\x72\x65\x67\x69\x73\x74\x65\x72\x54\x4d\x43\x6c\x6f\x6e\x65\x54\x61\x62\x6c\x65\x00"), -Section(".gnu.version", 0x41E, "\x00\x00\x00\x00\x00\x00\x02\x00\x01\x00\x03\x00\x01\x00\x03\x00\x01\x00"), -Section(".gnu.version_r", 0x430, "\x01\x00\x02\x00\x28\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x97\x91\x96\x06\x00\x00\x03\x00\x32\x00\x00\x00\x10\x00\x00\x00\xb4\x91\x96\x06\x00\x00\x02\x00\x3d\x00\x00\x00\x00\x00\x00\x00"), -Section(".rela.dyn", 0x460, "\x98\x0d\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x10\x07\x00\x00\x00\x00\x00\x00\xa0\x0d\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\xc0\x06\x00\x00\x00\x00\x00\x00\xf0\x0f\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x14\x07\x00\x00\x00\x00\x00\x00\x08\x10\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x08\x10\x01\x00\x00\x00\x00\x00\xd8\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe0\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe8\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xf8\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".rela.plt", 0x520, "\xb0\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xb8\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xc0\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xc8\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".init", 0x580, "\x1f\x20\x03\xd5\xfd\x7b\xbf\xa9\xfd\x03\x00\x91\x2a\x00\x00\x94\xfd\x7b\xc1\xa8\xc0\x03\x5f\xd6"), -Section(".plt", 0x5A0, "\xf0\x7b\xbf\xa9\x90\x00\x00\x90\x11\xd6\x47\xf9\x10\xa2\x3e\x91\x20\x02\x1f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x90\x00\x00\x90\x11\xda\x47\xf9\x10\xc2\x3e\x91\x20\x02\x1f\xd6\x90\x00\x00\x90\x11\xde\x47\xf9\x10\xe2\x3e\x91\x20\x02\x1f\xd6\x90\x00\x00\x90\x11\xe2\x47\xf9\x10\x02\x3f\x91\x20\x02\x1f\xd6\x90\x00\x00\x90\x11\xe6\x47\xf9\x10\x22\x3f\x91\x20\x02\x1f\xd6"), -Section(".text", 0x600, "\x1f\x20\x03\xd5\x1d\x00\x80\xd2\x1e\x00\x80\xd2\xe5\x03\x00\xaa\xe1\x03\x40\xf9\xe2\x23\x00\x91\xe6\x03\x00\x91\x80\x00\x00\x90\x00\xf8\x47\xf9\x03\x00\x80\xd2\x04\x00\x80\xd2\xe5\xff\xff\x97\xf0\xff\xff\x97\x80\x00\x00\x90\x00\xf4\x47\xf9\x40\x00\x00\xb4\xe8\xff\xff\x17\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x80\x00\x00\xb0\x00\x40\x00\x91\x81\x00\x00\xb0\x21\x40\x00\x91\x3f\x00\x00\xeb\xc0\x00\x00\x54\x81\x00\x00\x90\x21\xec\x47\xf9\x61\x00\x00\xb4\xf0\x03\x01\xaa\x00\x02\x1f\xd6\xc0\x03\x5f\xd6\x80\x00\x00\xb0\x00\x40\x00\x91\x81\x00\x00\xb0\x21\x40\x00\x91\x21\x00\x00\xcb\x22\xfc\x7f\xd3\x41\x0c\x81\x8b\x21\xfc\x41\x93\xc1\x00\x00\xb4\x82\x00\x00\x90\x42\xfc\x47\xf9\x62\x00\x00\xb4\xf0\x03\x02\xaa\x00\x02\x1f\xd6\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\xfd\x7b\xbe\xa9\xfd\x03\x00\x91\xf3\x0b\x00\xf9\x93\x00\x00\xb0\x60\x42\x40\x39\x40\x01\x00\x35\x80\x00\x00\x90\x00\xf0\x47\xf9\x80\x00\x00\xb4\x80\x00\x00\xb0\x00\x04\x40\xf9\xb9\xff\xff\x97\xd8\xff\xff\x97\x20\x00\x80\x52\x60\x42\x00\x39\xf3\x0b\x40\xf9\xfd\x7b\xc2\xa8\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\xdc\xff\xff\x17\x80\x00\x00\xb0\x00\x50\x00\x91\x00\x00\x40\xb9\x01\x04\x00\x11\x80\x00\x00\xb0\x00\x50\x00\x91\x01\x00\x00\xb9\x00\x00\x80\x52\xc0\x03\x5f\xd6"), -Section(".fini", 0x738, "\x1f\x20\x03\xd5\xfd\x7b\xbf\xa9\xfd\x03\x00\x91\xfd\x7b\xc1\xa8\xc0\x03\x5f\xd6"), -Section(".rodata", 0x74C, "\x01\x00\x02\x00"), -Section(".eh_frame_hdr", 0x750, "\x01\x1b\x03\x3b\x3c\x00\x00\x00\x06\x00\x00\x00\xb0\xfe\xff\xff\x54\x00\x00\x00\x00\xff\xff\xff\x68\x00\x00\x00\x30\xff\xff\xff\x7c\x00\x00\x00\x70\xff\xff\xff\x90\x00\x00\x00\xc0\xff\xff\xff\xb4\x00\x00\x00\xc4\xff\xff\xff\xc8\x00\x00\x00"), -Section(".eh_frame", 0x790, "\x10\x00\x00\x00\x00\x00\x00\x00\x01\x7a\x52\x00\x04\x78\x1e\x01\x1b\x0c\x1f\x00\x10\x00\x00\x00\x18\x00\x00\x00\x54\xfe\xff\xff\x34\x00\x00\x00\x00\x41\x07\x1e\x10\x00\x00\x00\x2c\x00\x00\x00\x90\xfe\xff\xff\x30\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x40\x00\x00\x00\xac\xfe\xff\xff\x3c\x00\x00\x00\x00\x00\x00\x00\x20\x00\x00\x00\x54\x00\x00\x00\xd8\xfe\xff\xff\x48\x00\x00\x00\x00\x41\x0e\x20\x9d\x04\x9e\x03\x42\x93\x02\x4e\xde\xdd\xd3\x0e\x00\x00\x00\x00\x10\x00\x00\x00\x78\x00\x00\x00\x04\xff\xff\xff\x04\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x8c\x00\x00\x00\xf4\xfe\xff\xff\x24\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".fini_array", 0x10DA0, "\xc0\x06\x00\x00\x00\x00\x00\x00"), -Section(".dynamic", 0x10DA8, "\x01\x00\x00\x00\x00\x00\x00\x00\x28\x00\x00\x00\x00\x00\x00\x00\x0c\x00\x00\x00\x00\x00\x00\x00\x80\x05\x00\x00\x00\x00\x00\x00\x0d\x00\x00\x00\x00\x00\x00\x00\x38\x07\x00\x00\x00\x00\x00\x00\x19\x00\x00\x00\x00\x00\x00\x00\x98\x0d\x01\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x1a\x00\x00\x00\x00\x00\x00\x00\xa0\x0d\x01\x00\x00\x00\x00\x00\x1c\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\xf5\xfe\xff\x6f\x00\x00\x00\x00\x98\x02\x00\x00\x00\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x90\x03\x00\x00\x00\x00\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\xb8\x02\x00\x00\x00\x00\x00\x00\x0a\x00\x00\x00\x00\x00\x00\x00\x8d\x00\x00\x00\x00\x00\x00\x00\x0b\x00\x00\x00\x00\x00\x00\x00\x18\x00\x00\x00\x00\x00\x00\x00\x15\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x98\x0f\x01\x00\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x60\x00\x00\x00\x00\x00\x00\x00\x14\x00\x00\x00\x00\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x17\x00\x00\x00\x00\x00\x00\x00\x20\x05\x00\x00\x00\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x60\x04\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\xc0\x00\x00\x00\x00\x00\x00\x00\x09\x00\x00\x00\x00\x00\x00\x00\x18\x00\x00\x00\x00\x00\x00\x00\x1e\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\xfb\xff\xff\x6f\x00\x00\x00\x00\x01\x00\x00\x08\x00\x00\x00\x00\xfe\xff\xff\x6f\x00\x00\x00\x00\x30\x04\x00\x00\x00\x00\x00\x00\xff\xff\xff\x6f\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\xf0\xff\xff\x6f\x00\x00\x00\x00\x1e\x04\x00\x00\x00\x00\x00\x00\xf9\xff\xff\x6f\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".got", 0x10F98, "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xa0\x05\x00\x00\x00\x00\x00\x00\xa0\x05\x00\x00\x00\x00\x00\x00\xa0\x05\x00\x00\x00\x00\x00\x00\xa0\x05\x00\x00\x00\x00\x00\x00\xa8\x0d\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x14\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".data", 0x11000, "\x00\x00\x00\x00\x00\x00\x00\x00\x08\x10\x01\x00\x00\x00\x00\x00"), -Section(".init_array", 0x10D98, "\x10\x07\x00\x00\x00\x00\x00\x00")]), -Memmap([Annotation(Region(0x0,0x82F), Attr("segment","02 0 2096")), -Annotation(Region(0x600,0x633), Attr("symbol","\"_start\"")), -Annotation(Region(0x0,0xF9), Attr("section","\".shstrtab\"")), -Annotation(Region(0x0,0x22D), Attr("section","\".strtab\"")), -Annotation(Region(0x0,0x2A), Attr("section","\".comment\"")), -Annotation(Region(0x238,0x252), Attr("section","\".interp\"")), -Annotation(Region(0x254,0x277), Attr("section","\".note.gnu.build-id\"")), -Annotation(Region(0x278,0x297), Attr("section","\".note.ABI-tag\"")), -Annotation(Region(0x298,0x2B3), Attr("section","\".gnu.hash\"")), -Annotation(Region(0x2B8,0x38F), Attr("section","\".dynsym\"")), -Annotation(Region(0x390,0x41C), Attr("section","\".dynstr\"")), -Annotation(Region(0x41E,0x42F), Attr("section","\".gnu.version\"")), -Annotation(Region(0x430,0x45F), Attr("section","\".gnu.version_r\"")), -Annotation(Region(0x460,0x51F), Attr("section","\".rela.dyn\"")), -Annotation(Region(0x520,0x57F), Attr("section","\".rela.plt\"")), -Annotation(Region(0x580,0x597), Attr("section","\".init\"")), -Annotation(Region(0x5A0,0x5FF), Attr("section","\".plt\"")), -Annotation(Region(0x580,0x597), Attr("code-region","()")), -Annotation(Region(0x5A0,0x5FF), Attr("code-region","()")), -Annotation(Region(0x600,0x633), Attr("symbol-info","_start 0x600 52")), -Annotation(Region(0x634,0x647), Attr("symbol","\"call_weak_fn\"")), -Annotation(Region(0x634,0x647), Attr("symbol-info","call_weak_fn 0x634 20")), -Annotation(Region(0x600,0x737), Attr("section","\".text\"")), -Annotation(Region(0x600,0x737), Attr("code-region","()")), -Annotation(Region(0x714,0x737), Attr("symbol","\"main\"")), -Annotation(Region(0x714,0x737), Attr("symbol-info","main 0x714 36")), -Annotation(Region(0x738,0x74B), Attr("section","\".fini\"")), -Annotation(Region(0x738,0x74B), Attr("code-region","()")), -Annotation(Region(0x74C,0x74F), Attr("section","\".rodata\"")), -Annotation(Region(0x750,0x78B), Attr("section","\".eh_frame_hdr\"")), -Annotation(Region(0x790,0x82F), Attr("section","\".eh_frame\"")), -Annotation(Region(0x10D98,0x1100F), Attr("segment","03 0x10D98 640")), -Annotation(Region(0x10DA0,0x10DA7), Attr("section","\".fini_array\"")), -Annotation(Region(0x10DA8,0x10F97), Attr("section","\".dynamic\"")), -Annotation(Region(0x10F98,0x10FFF), Attr("section","\".got\"")), -Annotation(Region(0x11000,0x1100F), Attr("section","\".data\"")), -Annotation(Region(0x10D98,0x10D9F), Attr("section","\".init_array\""))]), -Program(Tid(1_466, "%000005ba"), Attrs([]), - Subs([Sub(Tid(1_416, "@__cxa_finalize"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x5D0"), -Attr("stub","()")]), "__cxa_finalize", Args([Arg(Tid(1_467, "%000005bb"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("__cxa_finalize_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(826, "@__cxa_finalize"), - Attrs([Attr("address","0x5D0")]), Phis([]), -Defs([Def(Tid(1_074, "%00000432"), Attrs([Attr("address","0x5D0"), -Attr("insn","adrp x16, #65536")]), Var("R16",Imm(64)), Int(65536,64)), -Def(Tid(1_081, "%00000439"), Attrs([Attr("address","0x5D4"), -Attr("insn","ldr x17, [x16, #0xfb8]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(4024,64)),LittleEndian(),64)), -Def(Tid(1_087, "%0000043f"), Attrs([Attr("address","0x5D8"), -Attr("insn","add x16, x16, #0xfb8")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(4024,64)))]), Jmps([Call(Tid(1_092, "%00000444"), - Attrs([Attr("address","0x5DC"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), -Sub(Tid(1_417, "@__do_global_dtors_aux"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x6C0")]), - "__do_global_dtors_aux", Args([Arg(Tid(1_468, "%000005bc"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("__do_global_dtors_aux_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(626, "@__do_global_dtors_aux"), - Attrs([Attr("address","0x6C0")]), Phis([]), Defs([Def(Tid(630, "%00000276"), - Attrs([Attr("address","0x6C0"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("#3",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(18446744073709551584,64))), -Def(Tid(636, "%0000027c"), Attrs([Attr("address","0x6C0"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("#3",Imm(64)),Var("R29",Imm(64)),LittleEndian(),64)), -Def(Tid(642, "%00000282"), Attrs([Attr("address","0x6C0"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("#3",Imm(64)),Int(8,64)),Var("R30",Imm(64)),LittleEndian(),64)), -Def(Tid(646, "%00000286"), Attrs([Attr("address","0x6C0"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("R31",Imm(64)), -Var("#3",Imm(64))), Def(Tid(652, "%0000028c"), - Attrs([Attr("address","0x6C4"), Attr("insn","mov x29, sp")]), - Var("R29",Imm(64)), Var("R31",Imm(64))), Def(Tid(660, "%00000294"), - Attrs([Attr("address","0x6C8"), Attr("insn","str x19, [sp, #0x10]")]), - Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(16,64)),Var("R19",Imm(64)),LittleEndian(),64)), -Def(Tid(665, "%00000299"), Attrs([Attr("address","0x6CC"), -Attr("insn","adrp x19, #69632")]), Var("R19",Imm(64)), Int(69632,64)), -Def(Tid(672, "%000002a0"), Attrs([Attr("address","0x6D0"), -Attr("insn","ldrb w0, [x19, #0x10]")]), Var("R0",Imm(64)), -UNSIGNED(64,Load(Var("mem",Mem(64,8)),PLUS(Var("R19",Imm(64)),Int(16,64)),LittleEndian(),8)))]), -Jmps([Goto(Tid(679, "%000002a7"), Attrs([Attr("address","0x6D4"), -Attr("insn","cbnz w0, #0x28")]), - NEQ(Extract(31,0,Var("R0",Imm(64))),Int(0,32)), -Direct(Tid(677, "%000002a5"))), Goto(Tid(1_456, "%000005b0"), Attrs([]), - Int(1,1), Direct(Tid(771, "%00000303")))])), Blk(Tid(771, "%00000303"), - Attrs([Attr("address","0x6D8")]), Phis([]), Defs([Def(Tid(774, "%00000306"), - Attrs([Attr("address","0x6D8"), Attr("insn","adrp x0, #65536")]), - Var("R0",Imm(64)), Int(65536,64)), Def(Tid(781, "%0000030d"), - Attrs([Attr("address","0x6DC"), Attr("insn","ldr x0, [x0, #0xfe0]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(4064,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(787, "%00000313"), Attrs([Attr("address","0x6E0"), -Attr("insn","cbz x0, #0x10")]), EQ(Var("R0",Imm(64)),Int(0,64)), -Direct(Tid(785, "%00000311"))), Goto(Tid(1_457, "%000005b1"), Attrs([]), - Int(1,1), Direct(Tid(810, "%0000032a")))])), Blk(Tid(810, "%0000032a"), - Attrs([Attr("address","0x6E4")]), Phis([]), Defs([Def(Tid(813, "%0000032d"), - Attrs([Attr("address","0x6E4"), Attr("insn","adrp x0, #69632")]), - Var("R0",Imm(64)), Int(69632,64)), Def(Tid(820, "%00000334"), - Attrs([Attr("address","0x6E8"), Attr("insn","ldr x0, [x0, #0x8]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(825, "%00000339"), Attrs([Attr("address","0x6EC"), -Attr("insn","bl #-0x11c")]), Var("R30",Imm(64)), Int(1776,64))]), -Jmps([Call(Tid(828, "%0000033c"), Attrs([Attr("address","0x6EC"), -Attr("insn","bl #-0x11c")]), Int(1,1), -(Direct(Tid(1_416, "@__cxa_finalize")),Direct(Tid(785, "%00000311"))))])), -Blk(Tid(785, "%00000311"), Attrs([Attr("address","0x6F0")]), Phis([]), -Defs([Def(Tid(793, "%00000319"), Attrs([Attr("address","0x6F0"), -Attr("insn","bl #-0xa0")]), Var("R30",Imm(64)), Int(1780,64))]), -Jmps([Call(Tid(795, "%0000031b"), Attrs([Attr("address","0x6F0"), -Attr("insn","bl #-0xa0")]), Int(1,1), -(Direct(Tid(1_430, "@deregister_tm_clones")),Direct(Tid(797, "%0000031d"))))])), -Blk(Tid(797, "%0000031d"), Attrs([Attr("address","0x6F4")]), Phis([]), -Defs([Def(Tid(800, "%00000320"), Attrs([Attr("address","0x6F4"), -Attr("insn","mov w0, #0x1")]), Var("R0",Imm(64)), Int(1,64)), -Def(Tid(808, "%00000328"), Attrs([Attr("address","0x6F8"), -Attr("insn","strb w0, [x19, #0x10]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R19",Imm(64)),Int(16,64)),Extract(7,0,Var("R0",Imm(64))),LittleEndian(),8))]), -Jmps([Goto(Tid(1_458, "%000005b2"), Attrs([]), Int(1,1), -Direct(Tid(677, "%000002a5")))])), Blk(Tid(677, "%000002a5"), - Attrs([Attr("address","0x6FC")]), Phis([]), Defs([Def(Tid(687, "%000002af"), - Attrs([Attr("address","0x6FC"), Attr("insn","ldr x19, [sp, #0x10]")]), - Var("R19",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(16,64)),LittleEndian(),64)), -Def(Tid(694, "%000002b6"), Attrs([Attr("address","0x700"), -Attr("insn","ldp x29, x30, [sp], #0x20")]), Var("R29",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(699, "%000002bb"), Attrs([Attr("address","0x700"), -Attr("insn","ldp x29, x30, [sp], #0x20")]), Var("R30",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(703, "%000002bf"), Attrs([Attr("address","0x700"), -Attr("insn","ldp x29, x30, [sp], #0x20")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(32,64)))]), Jmps([Call(Tid(708, "%000002c4"), - Attrs([Attr("address","0x704"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), Sub(Tid(1_421, "@__libc_start_main"), - Attrs([Attr("c.proto","signed (*)(signed (*)(signed , char** , char** );* main, signed , char** , \nvoid* auxv)"), -Attr("address","0x5C0"), Attr("stub","()")]), "__libc_start_main", - Args([Arg(Tid(1_469, "%000005bd"), - Attrs([Attr("c.layout","**[ : 64]"), -Attr("c.data","Top:u64 ptr ptr"), -Attr("c.type","signed (*)(signed , char** , char** );*")]), - Var("__libc_start_main_main",Imm(64)), Var("R0",Imm(64)), In()), -Arg(Tid(1_470, "%000005be"), Attrs([Attr("c.layout","[signed : 32]"), -Attr("c.data","Top:u32"), Attr("c.type","signed")]), - Var("__libc_start_main_arg2",Imm(32)), LOW(32,Var("R1",Imm(64))), In()), -Arg(Tid(1_471, "%000005bf"), Attrs([Attr("c.layout","**[char : 8]"), -Attr("c.data","Top:u8 ptr ptr"), Attr("c.type","char**")]), - Var("__libc_start_main_arg3",Imm(64)), Var("R2",Imm(64)), Both()), -Arg(Tid(1_472, "%000005c0"), Attrs([Attr("c.layout","*[ : 8]"), -Attr("c.data","{} ptr"), Attr("c.type","void*")]), - Var("__libc_start_main_auxv",Imm(64)), Var("R3",Imm(64)), Both()), -Arg(Tid(1_473, "%000005c1"), Attrs([Attr("c.layout","[signed : 32]"), -Attr("c.data","Top:u32"), Attr("c.type","signed")]), - Var("__libc_start_main_result",Imm(32)), LOW(32,Var("R0",Imm(64))), -Out())]), Blks([Blk(Tid(459, "@__libc_start_main"), - Attrs([Attr("address","0x5C0")]), Phis([]), -Defs([Def(Tid(1_052, "%0000041c"), Attrs([Attr("address","0x5C0"), -Attr("insn","adrp x16, #65536")]), Var("R16",Imm(64)), Int(65536,64)), -Def(Tid(1_059, "%00000423"), Attrs([Attr("address","0x5C4"), -Attr("insn","ldr x17, [x16, #0xfb0]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(4016,64)),LittleEndian(),64)), -Def(Tid(1_065, "%00000429"), Attrs([Attr("address","0x5C8"), -Attr("insn","add x16, x16, #0xfb0")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(4016,64)))]), Jmps([Call(Tid(1_070, "%0000042e"), - Attrs([Attr("address","0x5CC"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), Sub(Tid(1_422, "@_fini"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x738")]), - "_fini", Args([Arg(Tid(1_474, "%000005c2"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("_fini_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(31, "@_fini"), - Attrs([Attr("address","0x738")]), Phis([]), Defs([Def(Tid(37, "%00000025"), - Attrs([Attr("address","0x73C"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("#0",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(18446744073709551600,64))), -Def(Tid(43, "%0000002b"), Attrs([Attr("address","0x73C"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("#0",Imm(64)),Var("R29",Imm(64)),LittleEndian(),64)), -Def(Tid(49, "%00000031"), Attrs([Attr("address","0x73C"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("#0",Imm(64)),Int(8,64)),Var("R30",Imm(64)),LittleEndian(),64)), -Def(Tid(53, "%00000035"), Attrs([Attr("address","0x73C"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("R31",Imm(64)), -Var("#0",Imm(64))), Def(Tid(59, "%0000003b"), Attrs([Attr("address","0x740"), -Attr("insn","mov x29, sp")]), Var("R29",Imm(64)), Var("R31",Imm(64))), -Def(Tid(66, "%00000042"), Attrs([Attr("address","0x744"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R29",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(71, "%00000047"), Attrs([Attr("address","0x744"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R30",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(75, "%0000004b"), Attrs([Attr("address","0x744"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(16,64)))]), Jmps([Call(Tid(80, "%00000050"), - Attrs([Attr("address","0x748"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), Sub(Tid(1_423, "@_init"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x580")]), - "_init", Args([Arg(Tid(1_475, "%000005c3"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("_init_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(1_249, "@_init"), - Attrs([Attr("address","0x580")]), Phis([]), -Defs([Def(Tid(1_255, "%000004e7"), Attrs([Attr("address","0x584"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("#5",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(18446744073709551600,64))), -Def(Tid(1_261, "%000004ed"), Attrs([Attr("address","0x584"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("#5",Imm(64)),Var("R29",Imm(64)),LittleEndian(),64)), -Def(Tid(1_267, "%000004f3"), Attrs([Attr("address","0x584"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("#5",Imm(64)),Int(8,64)),Var("R30",Imm(64)),LittleEndian(),64)), -Def(Tid(1_271, "%000004f7"), Attrs([Attr("address","0x584"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("R31",Imm(64)), -Var("#5",Imm(64))), Def(Tid(1_277, "%000004fd"), - Attrs([Attr("address","0x588"), Attr("insn","mov x29, sp")]), - Var("R29",Imm(64)), Var("R31",Imm(64))), Def(Tid(1_282, "%00000502"), - Attrs([Attr("address","0x58C"), Attr("insn","bl #0xa8")]), - Var("R30",Imm(64)), Int(1424,64))]), Jmps([Call(Tid(1_284, "%00000504"), - Attrs([Attr("address","0x58C"), Attr("insn","bl #0xa8")]), Int(1,1), -(Direct(Tid(1_428, "@call_weak_fn")),Direct(Tid(1_286, "%00000506"))))])), -Blk(Tid(1_286, "%00000506"), Attrs([Attr("address","0x590")]), Phis([]), -Defs([Def(Tid(1_291, "%0000050b"), Attrs([Attr("address","0x590"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R29",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(1_296, "%00000510"), Attrs([Attr("address","0x590"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R30",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(1_300, "%00000514"), Attrs([Attr("address","0x590"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(16,64)))]), Jmps([Call(Tid(1_305, "%00000519"), - Attrs([Attr("address","0x594"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), Sub(Tid(1_424, "@_start"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x600"), -Attr("stub","()"), Attr("entry-point","()")]), "_start", - Args([Arg(Tid(1_476, "%000005c4"), Attrs([Attr("c.layout","[signed : 32]"), -Attr("c.data","Top:u32"), Attr("c.type","signed")]), - Var("_start_result",Imm(32)), LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(396, "@_start"), Attrs([Attr("address","0x600")]), Phis([]), -Defs([Def(Tid(401, "%00000191"), Attrs([Attr("address","0x604"), -Attr("insn","mov x29, #0x0")]), Var("R29",Imm(64)), Int(0,64)), -Def(Tid(406, "%00000196"), Attrs([Attr("address","0x608"), -Attr("insn","mov x30, #0x0")]), Var("R30",Imm(64)), Int(0,64)), -Def(Tid(412, "%0000019c"), Attrs([Attr("address","0x60C"), -Attr("insn","mov x5, x0")]), Var("R5",Imm(64)), Var("R0",Imm(64))), -Def(Tid(419, "%000001a3"), Attrs([Attr("address","0x610"), -Attr("insn","ldr x1, [sp]")]), Var("R1",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(425, "%000001a9"), Attrs([Attr("address","0x614"), -Attr("insn","add x2, sp, #0x8")]), Var("R2",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(8,64))), Def(Tid(431, "%000001af"), - Attrs([Attr("address","0x618"), Attr("insn","mov x6, sp")]), - Var("R6",Imm(64)), Var("R31",Imm(64))), Def(Tid(436, "%000001b4"), - Attrs([Attr("address","0x61C"), Attr("insn","adrp x0, #65536")]), - Var("R0",Imm(64)), Int(65536,64)), Def(Tid(443, "%000001bb"), - Attrs([Attr("address","0x620"), Attr("insn","ldr x0, [x0, #0xff0]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(4080,64)),LittleEndian(),64)), -Def(Tid(448, "%000001c0"), Attrs([Attr("address","0x624"), -Attr("insn","mov x3, #0x0")]), Var("R3",Imm(64)), Int(0,64)), -Def(Tid(453, "%000001c5"), Attrs([Attr("address","0x628"), -Attr("insn","mov x4, #0x0")]), Var("R4",Imm(64)), Int(0,64)), -Def(Tid(458, "%000001ca"), Attrs([Attr("address","0x62C"), -Attr("insn","bl #-0x6c")]), Var("R30",Imm(64)), Int(1584,64))]), -Jmps([Call(Tid(461, "%000001cd"), Attrs([Attr("address","0x62C"), -Attr("insn","bl #-0x6c")]), Int(1,1), -(Direct(Tid(1_421, "@__libc_start_main")),Direct(Tid(463, "%000001cf"))))])), -Blk(Tid(463, "%000001cf"), Attrs([Attr("address","0x630")]), Phis([]), -Defs([Def(Tid(466, "%000001d2"), Attrs([Attr("address","0x630"), -Attr("insn","bl #-0x40")]), Var("R30",Imm(64)), Int(1588,64))]), -Jmps([Call(Tid(469, "%000001d5"), Attrs([Attr("address","0x630"), -Attr("insn","bl #-0x40")]), Int(1,1), -(Direct(Tid(1_427, "@abort")),Direct(Tid(1_459, "%000005b3"))))])), -Blk(Tid(1_459, "%000005b3"), Attrs([]), Phis([]), Defs([]), -Jmps([Call(Tid(1_460, "%000005b4"), Attrs([]), Int(1,1), -(Direct(Tid(1_428, "@call_weak_fn")),))]))])), Sub(Tid(1_427, "@abort"), - Attrs([Attr("noreturn","()"), Attr("c.proto","void (*)(void)"), -Attr("address","0x5F0"), Attr("stub","()")]), "abort", Args([]), -Blks([Blk(Tid(467, "@abort"), Attrs([Attr("address","0x5F0")]), Phis([]), -Defs([Def(Tid(1_118, "%0000045e"), Attrs([Attr("address","0x5F0"), -Attr("insn","adrp x16, #65536")]), Var("R16",Imm(64)), Int(65536,64)), -Def(Tid(1_125, "%00000465"), Attrs([Attr("address","0x5F4"), -Attr("insn","ldr x17, [x16, #0xfc8]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(4040,64)),LittleEndian(),64)), -Def(Tid(1_131, "%0000046b"), Attrs([Attr("address","0x5F8"), -Attr("insn","add x16, x16, #0xfc8")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(4040,64)))]), Jmps([Call(Tid(1_136, "%00000470"), - Attrs([Attr("address","0x5FC"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), Sub(Tid(1_428, "@call_weak_fn"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x634")]), - "call_weak_fn", Args([Arg(Tid(1_477, "%000005c5"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("call_weak_fn_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(471, "@call_weak_fn"), - Attrs([Attr("address","0x634")]), Phis([]), Defs([Def(Tid(474, "%000001da"), - Attrs([Attr("address","0x634"), Attr("insn","adrp x0, #65536")]), - Var("R0",Imm(64)), Int(65536,64)), Def(Tid(481, "%000001e1"), - Attrs([Attr("address","0x638"), Attr("insn","ldr x0, [x0, #0xfe8]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(4072,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(487, "%000001e7"), Attrs([Attr("address","0x63C"), -Attr("insn","cbz x0, #0x8")]), EQ(Var("R0",Imm(64)),Int(0,64)), -Direct(Tid(485, "%000001e5"))), Goto(Tid(1_461, "%000005b5"), Attrs([]), - Int(1,1), Direct(Tid(890, "%0000037a")))])), Blk(Tid(485, "%000001e5"), - Attrs([Attr("address","0x644")]), Phis([]), Defs([]), -Jmps([Call(Tid(493, "%000001ed"), Attrs([Attr("address","0x644"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))])), -Blk(Tid(890, "%0000037a"), Attrs([Attr("address","0x640")]), Phis([]), -Defs([]), Jmps([Goto(Tid(893, "%0000037d"), Attrs([Attr("address","0x640"), -Attr("insn","b #-0x60")]), Int(1,1), Direct(Tid(891, "@__gmon_start__")))])), -Blk(Tid(891, "@__gmon_start__"), Attrs([Attr("address","0x5E0")]), Phis([]), -Defs([Def(Tid(1_096, "%00000448"), Attrs([Attr("address","0x5E0"), -Attr("insn","adrp x16, #65536")]), Var("R16",Imm(64)), Int(65536,64)), -Def(Tid(1_103, "%0000044f"), Attrs([Attr("address","0x5E4"), -Attr("insn","ldr x17, [x16, #0xfc0]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(4032,64)),LittleEndian(),64)), -Def(Tid(1_109, "%00000455"), Attrs([Attr("address","0x5E8"), -Attr("insn","add x16, x16, #0xfc0")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(4032,64)))]), Jmps([Call(Tid(1_114, "%0000045a"), - Attrs([Attr("address","0x5EC"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), -Sub(Tid(1_430, "@deregister_tm_clones"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x650")]), - "deregister_tm_clones", Args([Arg(Tid(1_478, "%000005c6"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("deregister_tm_clones_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(499, "@deregister_tm_clones"), - Attrs([Attr("address","0x650")]), Phis([]), Defs([Def(Tid(502, "%000001f6"), - Attrs([Attr("address","0x650"), Attr("insn","adrp x0, #69632")]), - Var("R0",Imm(64)), Int(69632,64)), Def(Tid(508, "%000001fc"), - Attrs([Attr("address","0x654"), Attr("insn","add x0, x0, #0x10")]), - Var("R0",Imm(64)), PLUS(Var("R0",Imm(64)),Int(16,64))), -Def(Tid(513, "%00000201"), Attrs([Attr("address","0x658"), -Attr("insn","adrp x1, #69632")]), Var("R1",Imm(64)), Int(69632,64)), -Def(Tid(519, "%00000207"), Attrs([Attr("address","0x65C"), -Attr("insn","add x1, x1, #0x10")]), Var("R1",Imm(64)), -PLUS(Var("R1",Imm(64)),Int(16,64))), Def(Tid(525, "%0000020d"), - Attrs([Attr("address","0x660"), Attr("insn","cmp x1, x0")]), - Var("#1",Imm(64)), NOT(Var("R0",Imm(64)))), Def(Tid(530, "%00000212"), - Attrs([Attr("address","0x660"), Attr("insn","cmp x1, x0")]), - Var("#2",Imm(64)), PLUS(Var("R1",Imm(64)),NOT(Var("R0",Imm(64))))), -Def(Tid(536, "%00000218"), Attrs([Attr("address","0x660"), -Attr("insn","cmp x1, x0")]), Var("VF",Imm(1)), -NEQ(SIGNED(65,PLUS(Var("#2",Imm(64)),Int(1,64))),PLUS(PLUS(SIGNED(65,Var("R1",Imm(64))),SIGNED(65,Var("#1",Imm(64)))),Int(1,65)))), -Def(Tid(542, "%0000021e"), Attrs([Attr("address","0x660"), -Attr("insn","cmp x1, x0")]), Var("CF",Imm(1)), -NEQ(UNSIGNED(65,PLUS(Var("#2",Imm(64)),Int(1,64))),PLUS(PLUS(UNSIGNED(65,Var("R1",Imm(64))),UNSIGNED(65,Var("#1",Imm(64)))),Int(1,65)))), -Def(Tid(546, "%00000222"), Attrs([Attr("address","0x660"), -Attr("insn","cmp x1, x0")]), Var("ZF",Imm(1)), -EQ(PLUS(Var("#2",Imm(64)),Int(1,64)),Int(0,64))), Def(Tid(550, "%00000226"), - Attrs([Attr("address","0x660"), Attr("insn","cmp x1, x0")]), - Var("NF",Imm(1)), Extract(63,63,PLUS(Var("#2",Imm(64)),Int(1,64))))]), -Jmps([Goto(Tid(556, "%0000022c"), Attrs([Attr("address","0x664"), -Attr("insn","b.eq #0x18")]), EQ(Var("ZF",Imm(1)),Int(1,1)), -Direct(Tid(554, "%0000022a"))), Goto(Tid(1_462, "%000005b6"), Attrs([]), - Int(1,1), Direct(Tid(860, "%0000035c")))])), Blk(Tid(860, "%0000035c"), - Attrs([Attr("address","0x668")]), Phis([]), Defs([Def(Tid(863, "%0000035f"), - Attrs([Attr("address","0x668"), Attr("insn","adrp x1, #65536")]), - Var("R1",Imm(64)), Int(65536,64)), Def(Tid(870, "%00000366"), - Attrs([Attr("address","0x66C"), Attr("insn","ldr x1, [x1, #0xfd8]")]), - Var("R1",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R1",Imm(64)),Int(4056,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(875, "%0000036b"), Attrs([Attr("address","0x670"), -Attr("insn","cbz x1, #0xc")]), EQ(Var("R1",Imm(64)),Int(0,64)), -Direct(Tid(554, "%0000022a"))), Goto(Tid(1_463, "%000005b7"), Attrs([]), - Int(1,1), Direct(Tid(879, "%0000036f")))])), Blk(Tid(554, "%0000022a"), - Attrs([Attr("address","0x67C")]), Phis([]), Defs([]), -Jmps([Call(Tid(562, "%00000232"), Attrs([Attr("address","0x67C"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))])), -Blk(Tid(879, "%0000036f"), Attrs([Attr("address","0x674")]), Phis([]), -Defs([Def(Tid(883, "%00000373"), Attrs([Attr("address","0x674"), -Attr("insn","mov x16, x1")]), Var("R16",Imm(64)), Var("R1",Imm(64)))]), -Jmps([Call(Tid(888, "%00000378"), Attrs([Attr("address","0x678"), -Attr("insn","br x16")]), Int(1,1), (Indirect(Var("R16",Imm(64))),))]))])), -Sub(Tid(1_433, "@frame_dummy"), Attrs([Attr("c.proto","signed (*)(void)"), -Attr("address","0x710")]), "frame_dummy", Args([Arg(Tid(1_479, "%000005c7"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("frame_dummy_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(714, "@frame_dummy"), - Attrs([Attr("address","0x710")]), Phis([]), Defs([]), -Jmps([Call(Tid(716, "%000002cc"), Attrs([Attr("address","0x710"), -Attr("insn","b #-0x90")]), Int(1,1), -(Direct(Tid(1_435, "@register_tm_clones")),))]))])), Sub(Tid(1_434, "@main"), - Attrs([Attr("c.proto","signed (*)(signed argc, const char** argv)"), -Attr("address","0x714")]), "main", Args([Arg(Tid(1_480, "%000005c8"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("main_argc",Imm(32)), -LOW(32,Var("R0",Imm(64))), In()), Arg(Tid(1_481, "%000005c9"), - Attrs([Attr("c.layout","**[char : 8]"), Attr("c.data","Top:u8 ptr ptr"), -Attr("c.type"," const char**")]), Var("main_argv",Imm(64)), -Var("R1",Imm(64)), Both()), Arg(Tid(1_482, "%000005ca"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("main_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(718, "@main"), - Attrs([Attr("address","0x714")]), Phis([]), Defs([Def(Tid(721, "%000002d1"), - Attrs([Attr("address","0x714"), Attr("insn","adrp x0, #69632")]), - Var("R0",Imm(64)), Int(69632,64)), Def(Tid(727, "%000002d7"), - Attrs([Attr("address","0x718"), Attr("insn","add x0, x0, #0x14")]), - Var("R0",Imm(64)), PLUS(Var("R0",Imm(64)),Int(20,64))), -Def(Tid(734, "%000002de"), Attrs([Attr("address","0x71C"), -Attr("insn","ldr w0, [x0]")]), Var("R0",Imm(64)), -UNSIGNED(64,Load(Var("mem",Mem(64,8)),Var("R0",Imm(64)),LittleEndian(),32))), -Def(Tid(740, "%000002e4"), Attrs([Attr("address","0x720"), -Attr("insn","add w1, w0, #0x1")]), Var("R1",Imm(64)), -UNSIGNED(64,PLUS(Extract(31,0,Var("R0",Imm(64))),Int(1,32)))), -Def(Tid(745, "%000002e9"), Attrs([Attr("address","0x724"), -Attr("insn","adrp x0, #69632")]), Var("R0",Imm(64)), Int(69632,64)), -Def(Tid(751, "%000002ef"), Attrs([Attr("address","0x728"), -Attr("insn","add x0, x0, #0x14")]), Var("R0",Imm(64)), -PLUS(Var("R0",Imm(64)),Int(20,64))), Def(Tid(759, "%000002f7"), - Attrs([Attr("address","0x72C"), Attr("insn","str w1, [x0]")]), - Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("R0",Imm(64)),Extract(31,0,Var("R1",Imm(64))),LittleEndian(),32)), -Def(Tid(764, "%000002fc"), Attrs([Attr("address","0x730"), -Attr("insn","mov w0, #0x0")]), Var("R0",Imm(64)), Int(0,64))]), -Jmps([Call(Tid(769, "%00000301"), Attrs([Attr("address","0x734"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))]))])), -Sub(Tid(1_435, "@register_tm_clones"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x680")]), - "register_tm_clones", Args([Arg(Tid(1_483, "%000005cb"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("register_tm_clones_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(564, "@register_tm_clones"), Attrs([Attr("address","0x680")]), - Phis([]), Defs([Def(Tid(567, "%00000237"), Attrs([Attr("address","0x680"), -Attr("insn","adrp x0, #69632")]), Var("R0",Imm(64)), Int(69632,64)), -Def(Tid(573, "%0000023d"), Attrs([Attr("address","0x684"), -Attr("insn","add x0, x0, #0x10")]), Var("R0",Imm(64)), -PLUS(Var("R0",Imm(64)),Int(16,64))), Def(Tid(578, "%00000242"), - Attrs([Attr("address","0x688"), Attr("insn","adrp x1, #69632")]), - Var("R1",Imm(64)), Int(69632,64)), Def(Tid(584, "%00000248"), - Attrs([Attr("address","0x68C"), Attr("insn","add x1, x1, #0x10")]), - Var("R1",Imm(64)), PLUS(Var("R1",Imm(64)),Int(16,64))), -Def(Tid(591, "%0000024f"), Attrs([Attr("address","0x690"), -Attr("insn","sub x1, x1, x0")]), Var("R1",Imm(64)), -PLUS(PLUS(Var("R1",Imm(64)),NOT(Var("R0",Imm(64)))),Int(1,64))), -Def(Tid(597, "%00000255"), Attrs([Attr("address","0x694"), -Attr("insn","lsr x2, x1, #63")]), Var("R2",Imm(64)), -Concat(Int(0,63),Extract(63,63,Var("R1",Imm(64))))), -Def(Tid(604, "%0000025c"), Attrs([Attr("address","0x698"), -Attr("insn","add x1, x2, x1, asr #3")]), Var("R1",Imm(64)), -PLUS(Var("R2",Imm(64)),ARSHIFT(Var("R1",Imm(64)),Int(3,3)))), -Def(Tid(610, "%00000262"), Attrs([Attr("address","0x69C"), -Attr("insn","asr x1, x1, #1")]), Var("R1",Imm(64)), -SIGNED(64,Extract(63,1,Var("R1",Imm(64)))))]), -Jmps([Goto(Tid(616, "%00000268"), Attrs([Attr("address","0x6A0"), -Attr("insn","cbz x1, #0x18")]), EQ(Var("R1",Imm(64)),Int(0,64)), -Direct(Tid(614, "%00000266"))), Goto(Tid(1_464, "%000005b8"), Attrs([]), - Int(1,1), Direct(Tid(830, "%0000033e")))])), Blk(Tid(830, "%0000033e"), - Attrs([Attr("address","0x6A4")]), Phis([]), Defs([Def(Tid(833, "%00000341"), - Attrs([Attr("address","0x6A4"), Attr("insn","adrp x2, #65536")]), - Var("R2",Imm(64)), Int(65536,64)), Def(Tid(840, "%00000348"), - Attrs([Attr("address","0x6A8"), Attr("insn","ldr x2, [x2, #0xff8]")]), - Var("R2",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R2",Imm(64)),Int(4088,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(845, "%0000034d"), Attrs([Attr("address","0x6AC"), -Attr("insn","cbz x2, #0xc")]), EQ(Var("R2",Imm(64)),Int(0,64)), -Direct(Tid(614, "%00000266"))), Goto(Tid(1_465, "%000005b9"), Attrs([]), - Int(1,1), Direct(Tid(849, "%00000351")))])), Blk(Tid(614, "%00000266"), - Attrs([Attr("address","0x6B8")]), Phis([]), Defs([]), -Jmps([Call(Tid(622, "%0000026e"), Attrs([Attr("address","0x6B8"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))])), -Blk(Tid(849, "%00000351"), Attrs([Attr("address","0x6B0")]), Phis([]), -Defs([Def(Tid(853, "%00000355"), Attrs([Attr("address","0x6B0"), -Attr("insn","mov x16, x2")]), Var("R16",Imm(64)), Var("R2",Imm(64)))]), -Jmps([Call(Tid(858, "%0000035a"), Attrs([Attr("address","0x6B4"), -Attr("insn","br x16")]), Int(1,1), -(Indirect(Var("R16",Imm(64))),))]))]))]))) \ No newline at end of file diff --git a/src/test/correct/basic_assign_increment/gcc/basic_assign_increment.bir b/src/test/correct/basic_assign_increment/gcc/basic_assign_increment.bir deleted file mode 100644 index 2ef7d5b61..000000000 --- a/src/test/correct/basic_assign_increment/gcc/basic_assign_increment.bir +++ /dev/null @@ -1,231 +0,0 @@ -000005ba: program -00000588: sub __cxa_finalize(__cxa_finalize_result) -000005bb: __cxa_finalize_result :: out u32 = low:32[R0] - -0000033a: -00000432: R16 := 0x10000 -00000439: R17 := mem[R16 + 0xFB8, el]:u64 -0000043f: R16 := R16 + 0xFB8 -00000444: call R17 with noreturn - -00000589: sub __do_global_dtors_aux(__do_global_dtors_aux_result) -000005bc: __do_global_dtors_aux_result :: out u32 = low:32[R0] - -00000272: -00000276: #3 := R31 - 0x20 -0000027c: mem := mem with [#3, el]:u64 <- R29 -00000282: mem := mem with [#3 + 8, el]:u64 <- R30 -00000286: R31 := #3 -0000028c: R29 := R31 -00000294: mem := mem with [R31 + 0x10, el]:u64 <- R19 -00000299: R19 := 0x11000 -000002a0: R0 := pad:64[mem[R19 + 0x10]] -000002a7: when 31:0[R0] <> 0 goto %000002a5 -000005b0: goto %00000303 - -00000303: -00000306: R0 := 0x10000 -0000030d: R0 := mem[R0 + 0xFE0, el]:u64 -00000313: when R0 = 0 goto %00000311 -000005b1: goto %0000032a - -0000032a: -0000032d: R0 := 0x11000 -00000334: R0 := mem[R0 + 8, el]:u64 -00000339: R30 := 0x6F0 -0000033c: call @__cxa_finalize with return %00000311 - -00000311: -00000319: R30 := 0x6F4 -0000031b: call @deregister_tm_clones with return %0000031d - -0000031d: -00000320: R0 := 1 -00000328: mem := mem with [R19 + 0x10] <- 7:0[R0] -000005b2: goto %000002a5 - -000002a5: -000002af: R19 := mem[R31 + 0x10, el]:u64 -000002b6: R29 := mem[R31, el]:u64 -000002bb: R30 := mem[R31 + 8, el]:u64 -000002bf: R31 := R31 + 0x20 -000002c4: call R30 with noreturn - -0000058d: sub __libc_start_main(__libc_start_main_main, __libc_start_main_arg2, __libc_start_main_arg3, __libc_start_main_auxv, __libc_start_main_result) -000005bd: __libc_start_main_main :: in u64 = R0 -000005be: __libc_start_main_arg2 :: in u32 = low:32[R1] -000005bf: __libc_start_main_arg3 :: in out u64 = R2 -000005c0: __libc_start_main_auxv :: in out u64 = R3 -000005c1: __libc_start_main_result :: out u32 = low:32[R0] - -000001cb: -0000041c: R16 := 0x10000 -00000423: R17 := mem[R16 + 0xFB0, el]:u64 -00000429: R16 := R16 + 0xFB0 -0000042e: call R17 with noreturn - -0000058e: sub _fini(_fini_result) -000005c2: _fini_result :: out u32 = low:32[R0] - -0000001f: -00000025: #0 := R31 - 0x10 -0000002b: mem := mem with [#0, el]:u64 <- R29 -00000031: mem := mem with [#0 + 8, el]:u64 <- R30 -00000035: R31 := #0 -0000003b: R29 := R31 -00000042: R29 := mem[R31, el]:u64 -00000047: R30 := mem[R31 + 8, el]:u64 -0000004b: R31 := R31 + 0x10 -00000050: call R30 with noreturn - -0000058f: sub _init(_init_result) -000005c3: _init_result :: out u32 = low:32[R0] - -000004e1: -000004e7: #5 := R31 - 0x10 -000004ed: mem := mem with [#5, el]:u64 <- R29 -000004f3: mem := mem with [#5 + 8, el]:u64 <- R30 -000004f7: R31 := #5 -000004fd: R29 := R31 -00000502: R30 := 0x590 -00000504: call @call_weak_fn with return %00000506 - -00000506: -0000050b: R29 := mem[R31, el]:u64 -00000510: R30 := mem[R31 + 8, el]:u64 -00000514: R31 := R31 + 0x10 -00000519: call R30 with noreturn - -00000590: sub _start(_start_result) -000005c4: _start_result :: out u32 = low:32[R0] - -0000018c: -00000191: R29 := 0 -00000196: R30 := 0 -0000019c: R5 := R0 -000001a3: R1 := mem[R31, el]:u64 -000001a9: R2 := R31 + 8 -000001af: R6 := R31 -000001b4: R0 := 0x10000 -000001bb: R0 := mem[R0 + 0xFF0, el]:u64 -000001c0: R3 := 0 -000001c5: R4 := 0 -000001ca: R30 := 0x630 -000001cd: call @__libc_start_main with return %000001cf - -000001cf: -000001d2: R30 := 0x634 -000001d5: call @abort with return %000005b3 - -000005b3: -000005b4: call @call_weak_fn with noreturn - -00000593: sub abort() - - -000001d3: -0000045e: R16 := 0x10000 -00000465: R17 := mem[R16 + 0xFC8, el]:u64 -0000046b: R16 := R16 + 0xFC8 -00000470: call R17 with noreturn - -00000594: sub call_weak_fn(call_weak_fn_result) -000005c5: call_weak_fn_result :: out u32 = low:32[R0] - -000001d7: -000001da: R0 := 0x10000 -000001e1: R0 := mem[R0 + 0xFE8, el]:u64 -000001e7: when R0 = 0 goto %000001e5 -000005b5: goto %0000037a - -000001e5: -000001ed: call R30 with noreturn - -0000037a: -0000037d: goto @__gmon_start__ - -0000037b: -00000448: R16 := 0x10000 -0000044f: R17 := mem[R16 + 0xFC0, el]:u64 -00000455: R16 := R16 + 0xFC0 -0000045a: call R17 with noreturn - -00000596: sub deregister_tm_clones(deregister_tm_clones_result) -000005c6: deregister_tm_clones_result :: out u32 = low:32[R0] - -000001f3: -000001f6: R0 := 0x11000 -000001fc: R0 := R0 + 0x10 -00000201: R1 := 0x11000 -00000207: R1 := R1 + 0x10 -0000020d: #1 := ~R0 -00000212: #2 := R1 + ~R0 -00000218: VF := extend:65[#2 + 1] <> extend:65[R1] + extend:65[#1] + 1 -0000021e: CF := pad:65[#2 + 1] <> pad:65[R1] + pad:65[#1] + 1 -00000222: ZF := #2 + 1 = 0 -00000226: NF := 63:63[#2 + 1] -0000022c: when ZF goto %0000022a -000005b6: goto %0000035c - -0000035c: -0000035f: R1 := 0x10000 -00000366: R1 := mem[R1 + 0xFD8, el]:u64 -0000036b: when R1 = 0 goto %0000022a -000005b7: goto %0000036f - -0000022a: -00000232: call R30 with noreturn - -0000036f: -00000373: R16 := R1 -00000378: call R16 with noreturn - -00000599: sub frame_dummy(frame_dummy_result) -000005c7: frame_dummy_result :: out u32 = low:32[R0] - -000002ca: -000002cc: call @register_tm_clones with noreturn - -0000059a: sub main(main_argc, main_argv, main_result) -000005c8: main_argc :: in u32 = low:32[R0] -000005c9: main_argv :: in out u64 = R1 -000005ca: main_result :: out u32 = low:32[R0] - -000002ce: -000002d1: R0 := 0x11000 -000002d7: R0 := R0 + 0x14 -000002de: R0 := pad:64[mem[R0, el]:u32] -000002e4: R1 := pad:64[31:0[R0] + 1] -000002e9: R0 := 0x11000 -000002ef: R0 := R0 + 0x14 -000002f7: mem := mem with [R0, el]:u32 <- 31:0[R1] -000002fc: R0 := 0 -00000301: call R30 with noreturn - -0000059b: sub register_tm_clones(register_tm_clones_result) -000005cb: register_tm_clones_result :: out u32 = low:32[R0] - -00000234: -00000237: R0 := 0x11000 -0000023d: R0 := R0 + 0x10 -00000242: R1 := 0x11000 -00000248: R1 := R1 + 0x10 -0000024f: R1 := R1 + ~R0 + 1 -00000255: R2 := 0.63:63[R1] -0000025c: R1 := R2 + (R1 ~>> 3) -00000262: R1 := extend:64[63:1[R1]] -00000268: when R1 = 0 goto %00000266 -000005b8: goto %0000033e - -0000033e: -00000341: R2 := 0x10000 -00000348: R2 := mem[R2 + 0xFF8, el]:u64 -0000034d: when R2 = 0 goto %00000266 -000005b9: goto %00000351 - -00000266: -0000026e: call R30 with noreturn - -00000351: -00000355: R16 := R2 -0000035a: call R16 with noreturn diff --git a/src/test/correct/basic_assign_increment/gcc/basic_assign_increment.expected b/src/test/correct/basic_assign_increment/gcc/basic_assign_increment.expected index e9ddc5c93..9286a0646 100644 --- a/src/test/correct/basic_assign_increment/gcc/basic_assign_increment.expected +++ b/src/test/correct/basic_assign_increment/gcc/basic_assign_increment.expected @@ -68,7 +68,7 @@ implementation {:extern} guarantee_reflexive() assert (((memory_load32_le(mem, $x_addr) == memory_load32_le(mem, $x_addr)) || (memory_load32_le(mem, $x_addr) == 1bv32)) || (memory_load32_le(mem, $x_addr) == 6bv32)); } -procedure main_1812(); +procedure main(); modifies Gamma_R0, Gamma_R1, Gamma_mem, R0, R1, mem; requires (memory_load32_le(mem, $x_addr) == 0bv32); free requires (memory_load64_le(mem, 69632bv64) == 0bv64); @@ -85,31 +85,31 @@ procedure main_1812(); free ensures (memory_load64_le(mem, 69616bv64) == 1812bv64); free ensures (memory_load64_le(mem, 69640bv64) == 69640bv64); -implementation main_1812() +implementation main() { - var Gamma_load18: bool; - var load18: bv32; + var $load$18: bv32; + var Gamma_$load$18: bool; var x_old: bv32; lmain: assume {:captureState "lmain"} true; R0, Gamma_R0 := 69632bv64, true; R0, Gamma_R0 := bvadd64(R0, 20bv64), Gamma_R0; call rely(); - load18, Gamma_load18 := memory_load32_le(mem, R0), (gamma_load32(Gamma_mem, R0) || L(mem, R0)); - R0, Gamma_R0 := zero_extend32_32(load18), Gamma_load18; + $load$18, Gamma_$load$18 := memory_load32_le(mem, R0), (gamma_load32(Gamma_mem, R0) || L(mem, R0)); + R0, Gamma_R0 := zero_extend32_32($load$18), Gamma_$load$18; R1, Gamma_R1 := zero_extend32_32(bvadd32(R0[32:0], 1bv32)), Gamma_R0; R0, Gamma_R0 := 69632bv64, true; R0, Gamma_R0 := bvadd64(R0, 20bv64), Gamma_R0; call rely(); - x_old := memory_load32_le(mem, $x_addr); assert (L(mem, R0) ==> Gamma_R1); + x_old := memory_load32_le(mem, $x_addr); mem, Gamma_mem := memory_store32_le(mem, R0, R1[32:0]), gamma_store32(Gamma_mem, R0, Gamma_R1); assert (((memory_load32_le(mem, $x_addr) == x_old) || (memory_load32_le(mem, $x_addr) == 1bv32)) || (memory_load32_le(mem, $x_addr) == 6bv32)); assume {:captureState "%000002f7"} true; R0, Gamma_R0 := 0bv64, true; - goto main_1812_basil_return; - main_1812_basil_return: - assume {:captureState "main_1812_basil_return"} true; + goto main_basil_return; + main_basil_return: + assume {:captureState "main_basil_return"} true; return; } diff --git a/src/test/correct/basic_assign_increment/gcc/basic_assign_increment.gts b/src/test/correct/basic_assign_increment/gcc/basic_assign_increment.gts deleted file mode 100644 index 0f5ce28ba..000000000 Binary files a/src/test/correct/basic_assign_increment/gcc/basic_assign_increment.gts and /dev/null differ diff --git a/src/test/correct/basic_assign_increment/gcc/basic_assign_increment.md5sum b/src/test/correct/basic_assign_increment/gcc/basic_assign_increment.md5sum new file mode 100644 index 000000000..31d2fb7ab --- /dev/null +++ b/src/test/correct/basic_assign_increment/gcc/basic_assign_increment.md5sum @@ -0,0 +1,5 @@ +05efe4bafba786fc693ac47f90aa1d28 correct/basic_assign_increment/gcc/a.out +90e0f81a40b263241e2b7f02131e8ada correct/basic_assign_increment/gcc/basic_assign_increment.adt +374bac841225672d9ff8808445fa4708 correct/basic_assign_increment/gcc/basic_assign_increment.bir +192f1dd4922f64f988b0e5247898fbd4 correct/basic_assign_increment/gcc/basic_assign_increment.relf +9391e26df1ce475f33563e9d0505a0fa correct/basic_assign_increment/gcc/basic_assign_increment.gts diff --git a/src/test/correct/basic_assign_increment/gcc/basic_assign_increment.relf b/src/test/correct/basic_assign_increment/gcc/basic_assign_increment.relf deleted file mode 100644 index 20f957dbf..000000000 --- a/src/test/correct/basic_assign_increment/gcc/basic_assign_increment.relf +++ /dev/null @@ -1,121 +0,0 @@ - -Relocation section '.rela.dyn' at offset 0x460 contains 8 entries: - Offset Info Type Symbol's Value Symbol's Name + Addend -0000000000010d98 0000000000000403 R_AARCH64_RELATIVE 710 -0000000000010da0 0000000000000403 R_AARCH64_RELATIVE 6c0 -0000000000010ff0 0000000000000403 R_AARCH64_RELATIVE 714 -0000000000011008 0000000000000403 R_AARCH64_RELATIVE 11008 -0000000000010fd8 0000000400000401 R_AARCH64_GLOB_DAT 0000000000000000 _ITM_deregisterTMCloneTable + 0 -0000000000010fe0 0000000500000401 R_AARCH64_GLOB_DAT 0000000000000000 __cxa_finalize@GLIBC_2.17 + 0 -0000000000010fe8 0000000600000401 R_AARCH64_GLOB_DAT 0000000000000000 __gmon_start__ + 0 -0000000000010ff8 0000000800000401 R_AARCH64_GLOB_DAT 0000000000000000 _ITM_registerTMCloneTable + 0 - -Relocation section '.rela.plt' at offset 0x520 contains 4 entries: - Offset Info Type Symbol's Value Symbol's Name + Addend -0000000000010fb0 0000000300000402 R_AARCH64_JUMP_SLOT 0000000000000000 __libc_start_main@GLIBC_2.34 + 0 -0000000000010fb8 0000000500000402 R_AARCH64_JUMP_SLOT 0000000000000000 __cxa_finalize@GLIBC_2.17 + 0 -0000000000010fc0 0000000600000402 R_AARCH64_JUMP_SLOT 0000000000000000 __gmon_start__ + 0 -0000000000010fc8 0000000700000402 R_AARCH64_JUMP_SLOT 0000000000000000 abort@GLIBC_2.17 + 0 - -Symbol table '.dynsym' contains 9 entries: - Num: Value Size Type Bind Vis Ndx Name - 0: 0000000000000000 0 NOTYPE LOCAL DEFAULT UND - 1: 0000000000000580 0 SECTION LOCAL DEFAULT 11 .init - 2: 0000000000011000 0 SECTION LOCAL DEFAULT 22 .data - 3: 0000000000000000 0 FUNC GLOBAL DEFAULT UND __libc_start_main@GLIBC_2.34 (2) - 4: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_deregisterTMCloneTable - 5: 0000000000000000 0 FUNC WEAK DEFAULT UND __cxa_finalize@GLIBC_2.17 (3) - 6: 0000000000000000 0 NOTYPE WEAK DEFAULT UND __gmon_start__ - 7: 0000000000000000 0 FUNC GLOBAL DEFAULT UND abort@GLIBC_2.17 (3) - 8: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_registerTMCloneTable - -Symbol table '.symtab' contains 88 entries: - Num: Value Size Type Bind Vis Ndx Name - 0: 0000000000000000 0 NOTYPE LOCAL DEFAULT UND - 1: 0000000000000238 0 SECTION LOCAL DEFAULT 1 .interp - 2: 0000000000000254 0 SECTION LOCAL DEFAULT 2 .note.gnu.build-id - 3: 0000000000000278 0 SECTION LOCAL DEFAULT 3 .note.ABI-tag - 4: 0000000000000298 0 SECTION LOCAL DEFAULT 4 .gnu.hash - 5: 00000000000002b8 0 SECTION LOCAL DEFAULT 5 .dynsym - 6: 0000000000000390 0 SECTION LOCAL DEFAULT 6 .dynstr - 7: 000000000000041e 0 SECTION LOCAL DEFAULT 7 .gnu.version - 8: 0000000000000430 0 SECTION LOCAL DEFAULT 8 .gnu.version_r - 9: 0000000000000460 0 SECTION LOCAL DEFAULT 9 .rela.dyn - 10: 0000000000000520 0 SECTION LOCAL DEFAULT 10 .rela.plt - 11: 0000000000000580 0 SECTION LOCAL DEFAULT 11 .init - 12: 00000000000005a0 0 SECTION LOCAL DEFAULT 12 .plt - 13: 0000000000000600 0 SECTION LOCAL DEFAULT 13 .text - 14: 0000000000000738 0 SECTION LOCAL DEFAULT 14 .fini - 15: 000000000000074c 0 SECTION LOCAL DEFAULT 15 .rodata - 16: 0000000000000750 0 SECTION LOCAL DEFAULT 16 .eh_frame_hdr - 17: 0000000000000790 0 SECTION LOCAL DEFAULT 17 .eh_frame - 18: 0000000000010d98 0 SECTION LOCAL DEFAULT 18 .init_array - 19: 0000000000010da0 0 SECTION LOCAL DEFAULT 19 .fini_array - 20: 0000000000010da8 0 SECTION LOCAL DEFAULT 20 .dynamic - 21: 0000000000010f98 0 SECTION LOCAL DEFAULT 21 .got - 22: 0000000000011000 0 SECTION LOCAL DEFAULT 22 .data - 23: 0000000000011010 0 SECTION LOCAL DEFAULT 23 .bss - 24: 0000000000000000 0 SECTION LOCAL DEFAULT 24 .comment - 25: 0000000000000000 0 FILE LOCAL DEFAULT ABS Scrt1.o - 26: 0000000000000278 0 NOTYPE LOCAL DEFAULT 3 $d - 27: 0000000000000278 32 OBJECT LOCAL DEFAULT 3 __abi_tag - 28: 0000000000000600 0 NOTYPE LOCAL DEFAULT 13 $x - 29: 00000000000007a4 0 NOTYPE LOCAL DEFAULT 17 $d - 30: 000000000000074c 0 NOTYPE LOCAL DEFAULT 15 $d - 31: 0000000000000000 0 FILE LOCAL DEFAULT ABS crti.o - 32: 0000000000000634 0 NOTYPE LOCAL DEFAULT 13 $x - 33: 0000000000000634 20 FUNC LOCAL DEFAULT 13 call_weak_fn - 34: 0000000000000580 0 NOTYPE LOCAL DEFAULT 11 $x - 35: 0000000000000738 0 NOTYPE LOCAL DEFAULT 14 $x - 36: 0000000000000000 0 FILE LOCAL DEFAULT ABS crtn.o - 37: 0000000000000590 0 NOTYPE LOCAL DEFAULT 11 $x - 38: 0000000000000744 0 NOTYPE LOCAL DEFAULT 14 $x - 39: 0000000000000000 0 FILE LOCAL DEFAULT ABS crtstuff.c - 40: 0000000000000650 0 NOTYPE LOCAL DEFAULT 13 $x - 41: 0000000000000650 0 FUNC LOCAL DEFAULT 13 deregister_tm_clones - 42: 0000000000000680 0 FUNC LOCAL DEFAULT 13 register_tm_clones - 43: 0000000000011008 0 NOTYPE LOCAL DEFAULT 22 $d - 44: 00000000000006c0 0 FUNC LOCAL DEFAULT 13 __do_global_dtors_aux - 45: 0000000000011010 1 OBJECT LOCAL DEFAULT 23 completed.0 - 46: 0000000000010da0 0 NOTYPE LOCAL DEFAULT 19 $d - 47: 0000000000010da0 0 OBJECT LOCAL DEFAULT 19 __do_global_dtors_aux_fini_array_entry - 48: 0000000000000710 0 FUNC LOCAL DEFAULT 13 frame_dummy - 49: 0000000000010d98 0 NOTYPE LOCAL DEFAULT 18 $d - 50: 0000000000010d98 0 OBJECT LOCAL DEFAULT 18 __frame_dummy_init_array_entry - 51: 00000000000007b8 0 NOTYPE LOCAL DEFAULT 17 $d - 52: 0000000000011010 0 NOTYPE LOCAL DEFAULT 23 $d - 53: 0000000000000000 0 FILE LOCAL DEFAULT ABS basic_assign_increment.c - 54: 0000000000011014 0 NOTYPE LOCAL DEFAULT 23 $d - 55: 0000000000000714 0 NOTYPE LOCAL DEFAULT 13 $x - 56: 0000000000000818 0 NOTYPE LOCAL DEFAULT 17 $d - 57: 0000000000000000 0 FILE LOCAL DEFAULT ABS crtstuff.c - 58: 000000000000082c 0 NOTYPE LOCAL DEFAULT 17 $d - 59: 000000000000082c 0 OBJECT LOCAL DEFAULT 17 __FRAME_END__ - 60: 0000000000000000 0 FILE LOCAL DEFAULT ABS - 61: 0000000000010da8 0 OBJECT LOCAL DEFAULT ABS _DYNAMIC - 62: 0000000000000750 0 NOTYPE LOCAL DEFAULT 16 __GNU_EH_FRAME_HDR - 63: 0000000000010fd0 0 OBJECT LOCAL DEFAULT ABS _GLOBAL_OFFSET_TABLE_ - 64: 00000000000005a0 0 NOTYPE LOCAL DEFAULT 12 $x - 65: 0000000000000000 0 FUNC GLOBAL DEFAULT UND __libc_start_main@GLIBC_2.34 - 66: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_deregisterTMCloneTable - 67: 0000000000011000 0 NOTYPE WEAK DEFAULT 22 data_start - 68: 0000000000011010 0 NOTYPE GLOBAL DEFAULT 23 __bss_start__ - 69: 0000000000000000 0 FUNC WEAK DEFAULT UND __cxa_finalize@GLIBC_2.17 - 70: 0000000000011018 0 NOTYPE GLOBAL DEFAULT 23 _bss_end__ - 71: 0000000000011010 0 NOTYPE GLOBAL DEFAULT 22 _edata - 72: 0000000000011014 4 OBJECT GLOBAL DEFAULT 23 x - 73: 0000000000000738 0 FUNC GLOBAL HIDDEN 14 _fini - 74: 0000000000011018 0 NOTYPE GLOBAL DEFAULT 23 __bss_end__ - 75: 0000000000011000 0 NOTYPE GLOBAL DEFAULT 22 __data_start - 76: 0000000000000000 0 NOTYPE WEAK DEFAULT UND __gmon_start__ - 77: 0000000000011008 0 OBJECT GLOBAL HIDDEN 22 __dso_handle - 78: 0000000000000000 0 FUNC GLOBAL DEFAULT UND abort@GLIBC_2.17 - 79: 000000000000074c 4 OBJECT GLOBAL DEFAULT 15 _IO_stdin_used - 80: 0000000000011018 0 NOTYPE GLOBAL DEFAULT 23 _end - 81: 0000000000000600 52 FUNC GLOBAL DEFAULT 13 _start - 82: 0000000000011018 0 NOTYPE GLOBAL DEFAULT 23 __end__ - 83: 0000000000011010 0 NOTYPE GLOBAL DEFAULT 23 __bss_start - 84: 0000000000000714 36 FUNC GLOBAL DEFAULT 13 main - 85: 0000000000011010 0 OBJECT GLOBAL HIDDEN 22 __TMC_END__ - 86: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_registerTMCloneTable - 87: 0000000000000580 0 FUNC GLOBAL HIDDEN 11 _init diff --git a/src/test/correct/basic_assign_increment/gcc/basic_assign_increment_gtirb.expected b/src/test/correct/basic_assign_increment/gcc/basic_assign_increment_gtirb.expected index 2d81886aa..78a7e3bd9 100644 --- a/src/test/correct/basic_assign_increment/gcc/basic_assign_increment_gtirb.expected +++ b/src/test/correct/basic_assign_increment/gcc/basic_assign_increment_gtirb.expected @@ -68,7 +68,7 @@ implementation {:extern} guarantee_reflexive() assert (((memory_load32_le(mem, $x_addr) == memory_load32_le(mem, $x_addr)) || (memory_load32_le(mem, $x_addr) == 1bv32)) || (memory_load32_le(mem, $x_addr) == 6bv32)); } -procedure main_1812(); +procedure main(); modifies Gamma_R0, Gamma_R1, Gamma_mem, R0, R1, mem; requires (memory_load32_le(mem, $x_addr) == 0bv32); free requires (memory_load64_le(mem, 69632bv64) == 0bv64); @@ -85,31 +85,31 @@ procedure main_1812(); free ensures (memory_load64_le(mem, 69616bv64) == 1812bv64); free ensures (memory_load64_le(mem, 69640bv64) == 69640bv64); -implementation main_1812() +implementation main() { - var Gamma_load1: bool; - var load1: bv32; + var $load1: bv32; + var Gamma_$load1: bool; var x_old: bv32; - main_1812__0__wuKKiZcoTsun5X2agtHvyA: - assume {:captureState "main_1812__0__wuKKiZcoTsun5X2agtHvyA"} true; + $main$__0__$wuKKiZcoTsun5X2agtHvyA: + assume {:captureState "$main$__0__$wuKKiZcoTsun5X2agtHvyA"} true; R0, Gamma_R0 := 69632bv64, true; R0, Gamma_R0 := bvadd64(R0, 20bv64), Gamma_R0; call rely(); - load1, Gamma_load1 := memory_load32_le(mem, R0), (gamma_load32(Gamma_mem, R0) || L(mem, R0)); - R0, Gamma_R0 := zero_extend32_32(load1), Gamma_load1; + $load1, Gamma_$load1 := memory_load32_le(mem, R0), (gamma_load32(Gamma_mem, R0) || L(mem, R0)); + R0, Gamma_R0 := zero_extend32_32($load1), Gamma_$load1; R1, Gamma_R1 := zero_extend32_32(bvadd32(R0[32:0], 1bv32)), Gamma_R0; R0, Gamma_R0 := 69632bv64, true; R0, Gamma_R0 := bvadd64(R0, 20bv64), Gamma_R0; call rely(); - x_old := memory_load32_le(mem, $x_addr); assert (L(mem, R0) ==> Gamma_R1); + x_old := memory_load32_le(mem, $x_addr); mem, Gamma_mem := memory_store32_le(mem, R0, R1[32:0]), gamma_store32(Gamma_mem, R0, Gamma_R1); assert (((memory_load32_le(mem, $x_addr) == x_old) || (memory_load32_le(mem, $x_addr) == 1bv32)) || (memory_load32_le(mem, $x_addr) == 6bv32)); - assume {:captureState "1836_0"} true; + assume {:captureState "1836$0"} true; R0, Gamma_R0 := 0bv64, true; - goto main_1812_basil_return; - main_1812_basil_return: - assume {:captureState "main_1812_basil_return"} true; + goto main_basil_return; + main_basil_return: + assume {:captureState "main_basil_return"} true; return; } diff --git a/src/test/correct/basic_assign_increment/gcc_O2/basic_assign_increment.adt b/src/test/correct/basic_assign_increment/gcc_O2/basic_assign_increment.adt deleted file mode 100644 index 00f3cd786..000000000 --- a/src/test/correct/basic_assign_increment/gcc_O2/basic_assign_increment.adt +++ /dev/null @@ -1,496 +0,0 @@ -Project(Attrs([Attr("filename","\"gcc_O2/basic_assign_increment.out\""), -Attr("image-specification","(declare abi (name str))\n(declare arch (name str))\n(declare base-address (addr int))\n(declare bias (off int))\n(declare bits (size int))\n(declare code-region (addr int) (size int) (off int))\n(declare code-start (addr int))\n(declare entry-point (addr int))\n(declare external-reference (addr int) (name str))\n(declare format (name str))\n(declare is-executable (flag bool))\n(declare is-little-endian (flag bool))\n(declare llvm:base-address (addr int))\n(declare llvm:code-entry (name str) (off int) (size int))\n(declare llvm:coff-import-library (name str))\n(declare llvm:coff-virtual-section-header (name str) (addr int) (size int))\n(declare llvm:elf-program-header (name str) (off int) (size int))\n(declare llvm:elf-program-header-flags (name str) (ld bool) (r bool) \n (w bool) (x bool))\n(declare llvm:elf-virtual-program-header (name str) (addr int) (size int))\n(declare llvm:entry-point (addr int))\n(declare llvm:macho-symbol (name str) (value int))\n(declare llvm:name-reference (at int) (name str))\n(declare llvm:relocation (at int) (addr int))\n(declare llvm:section-entry (name str) (addr int) (size int) (off int))\n(declare llvm:section-flags (name str) (r bool) (w bool) (x bool))\n(declare llvm:segment-command (name str) (off int) (size int))\n(declare llvm:segment-command-flags (name str) (r bool) (w bool) (x bool))\n(declare llvm:symbol-entry (name str) (addr int) (size int) (off int)\n (value int))\n(declare llvm:virtual-segment-command (name str) (addr int) (size int))\n(declare mapped (addr int) (size int) (off int))\n(declare named-region (addr int) (size int) (name str))\n(declare named-symbol (addr int) (name str))\n(declare require (name str))\n(declare section (addr int) (size int))\n(declare segment (addr int) (size int) (r bool) (w bool) (x bool))\n(declare subarch (name str))\n(declare symbol-chunk (addr int) (size int) (root int))\n(declare symbol-value (addr int) (value int))\n(declare system (name str))\n(declare vendor (name str))\n\n(abi unknown)\n(arch aarch64)\n(base-address 0)\n(bias 0)\n(bits 64)\n(code-region 1876 20 1876)\n(code-region 1536 340 1536)\n(code-region 1440 96 1440)\n(code-region 1408 24 1408)\n(code-start 1652)\n(code-start 1600)\n(code-start 1536)\n(entry-point 1600)\n(external-reference 69592 _ITM_deregisterTMCloneTable)\n(external-reference 69600 __cxa_finalize)\n(external-reference 69608 __gmon_start__)\n(external-reference 69624 _ITM_registerTMCloneTable)\n(external-reference 69552 __libc_start_main)\n(external-reference 69560 __cxa_finalize)\n(external-reference 69568 __gmon_start__)\n(external-reference 69576 abort)\n(format elf)\n(is-executable true)\n(is-little-endian true)\n(llvm:base-address 0)\n(llvm:code-entry abort 0 0)\n(llvm:code-entry __cxa_finalize 0 0)\n(llvm:code-entry __libc_start_main 0 0)\n(llvm:code-entry _init 1408 0)\n(llvm:code-entry main 1536 24)\n(llvm:code-entry _start 1600 52)\n(llvm:code-entry abort@GLIBC_2.17 0 0)\n(llvm:code-entry _fini 1876 0)\n(llvm:code-entry __cxa_finalize@GLIBC_2.17 0 0)\n(llvm:code-entry __libc_start_main@GLIBC_2.34 0 0)\n(llvm:code-entry frame_dummy 1872 0)\n(llvm:code-entry __do_global_dtors_aux 1792 0)\n(llvm:code-entry register_tm_clones 1728 0)\n(llvm:code-entry deregister_tm_clones 1680 0)\n(llvm:code-entry call_weak_fn 1652 20)\n(llvm:code-entry .fini 1876 20)\n(llvm:code-entry .text 1536 340)\n(llvm:code-entry .plt 1440 96)\n(llvm:code-entry .init 1408 24)\n(llvm:elf-program-header 08 3480 616)\n(llvm:elf-program-header 07 0 0)\n(llvm:elf-program-header 06 1900 60)\n(llvm:elf-program-header 05 596 68)\n(llvm:elf-program-header 04 3496 496)\n(llvm:elf-program-header 03 3480 632)\n(llvm:elf-program-header 02 0 2120)\n(llvm:elf-program-header 01 568 27)\n(llvm:elf-program-header 00 64 504)\n(llvm:elf-program-header-flags 08 false true false false)\n(llvm:elf-program-header-flags 07 false true true false)\n(llvm:elf-program-header-flags 06 false true false false)\n(llvm:elf-program-header-flags 05 false true false false)\n(llvm:elf-program-header-flags 04 false true true false)\n(llvm:elf-program-header-flags 03 true true true false)\n(llvm:elf-program-header-flags 02 true true false true)\n(llvm:elf-program-header-flags 01 false true false false)\n(llvm:elf-program-header-flags 00 false true false false)\n(llvm:elf-virtual-program-header 08 69016 616)\n(llvm:elf-virtual-program-header 07 0 0)\n(llvm:elf-virtual-program-header 06 1900 60)\n(llvm:elf-virtual-program-header 05 596 68)\n(llvm:elf-virtual-program-header 04 69032 496)\n(llvm:elf-virtual-program-header 03 69016 640)\n(llvm:elf-virtual-program-header 02 0 2120)\n(llvm:elf-virtual-program-header 01 568 27)\n(llvm:elf-virtual-program-header 00 64 504)\n(llvm:entry-point 1600)\n(llvm:name-reference 69576 abort)\n(llvm:name-reference 69568 __gmon_start__)\n(llvm:name-reference 69560 __cxa_finalize)\n(llvm:name-reference 69552 __libc_start_main)\n(llvm:name-reference 69624 _ITM_registerTMCloneTable)\n(llvm:name-reference 69608 __gmon_start__)\n(llvm:name-reference 69600 __cxa_finalize)\n(llvm:name-reference 69592 _ITM_deregisterTMCloneTable)\n(llvm:section-entry .shstrtab 0 250 6830)\n(llvm:section-entry .strtab 0 558 6272)\n(llvm:section-entry .symtab 0 2112 4160)\n(llvm:section-entry .comment 0 43 4112)\n(llvm:section-entry .bss 69648 8 4112)\n(llvm:section-entry .data 69632 16 4096)\n(llvm:section-entry .got 69528 104 3992)\n(llvm:section-entry .dynamic 69032 496 3496)\n(llvm:section-entry .fini_array 69024 8 3488)\n(llvm:section-entry .init_array 69016 8 3480)\n(llvm:section-entry .eh_frame 1960 160 1960)\n(llvm:section-entry .eh_frame_hdr 1900 60 1900)\n(llvm:section-entry .rodata 1896 4 1896)\n(llvm:section-entry .fini 1876 20 1876)\n(llvm:section-entry .text 1536 340 1536)\n(llvm:section-entry .plt 1440 96 1440)\n(llvm:section-entry .init 1408 24 1408)\n(llvm:section-entry .rela.plt 1312 96 1312)\n(llvm:section-entry .rela.dyn 1120 192 1120)\n(llvm:section-entry .gnu.version_r 1072 48 1072)\n(llvm:section-entry .gnu.version 1054 18 1054)\n(llvm:section-entry .dynstr 912 141 912)\n(llvm:section-entry .dynsym 696 216 696)\n(llvm:section-entry .gnu.hash 664 28 664)\n(llvm:section-entry .note.ABI-tag 632 32 632)\n(llvm:section-entry .note.gnu.build-id 596 36 596)\n(llvm:section-entry .interp 568 27 568)\n(llvm:section-flags .shstrtab true false false)\n(llvm:section-flags .strtab true false false)\n(llvm:section-flags .symtab true false false)\n(llvm:section-flags .comment true false false)\n(llvm:section-flags .bss true true false)\n(llvm:section-flags .data true true false)\n(llvm:section-flags .got true true false)\n(llvm:section-flags .dynamic true true false)\n(llvm:section-flags .fini_array true true false)\n(llvm:section-flags .init_array true true false)\n(llvm:section-flags .eh_frame true false false)\n(llvm:section-flags .eh_frame_hdr true false false)\n(llvm:section-flags .rodata true false false)\n(llvm:section-flags .fini true false true)\n(llvm:section-flags .text true false true)\n(llvm:section-flags .plt true false true)\n(llvm:section-flags .init true false true)\n(llvm:section-flags .rela.plt true false false)\n(llvm:section-flags .rela.dyn true false false)\n(llvm:section-flags .gnu.version_r true false false)\n(llvm:section-flags .gnu.version true false false)\n(llvm:section-flags .dynstr true false false)\n(llvm:section-flags .dynsym true false false)\n(llvm:section-flags .gnu.hash true false false)\n(llvm:section-flags .note.ABI-tag true false false)\n(llvm:section-flags .note.gnu.build-id true false false)\n(llvm:section-flags .interp true false false)\n(llvm:symbol-entry abort 0 0 0 0)\n(llvm:symbol-entry __cxa_finalize 0 0 0 0)\n(llvm:symbol-entry __libc_start_main 0 0 0 0)\n(llvm:symbol-entry _init 1408 0 1408 1408)\n(llvm:symbol-entry main 1536 24 1536 1536)\n(llvm:symbol-entry _start 1600 52 1600 1600)\n(llvm:symbol-entry abort@GLIBC_2.17 0 0 0 0)\n(llvm:symbol-entry _fini 1876 0 1876 1876)\n(llvm:symbol-entry __cxa_finalize@GLIBC_2.17 0 0 0 0)\n(llvm:symbol-entry __libc_start_main@GLIBC_2.34 0 0 0 0)\n(llvm:symbol-entry frame_dummy 1872 0 1872 1872)\n(llvm:symbol-entry __do_global_dtors_aux 1792 0 1792 1792)\n(llvm:symbol-entry register_tm_clones 1728 0 1728 1728)\n(llvm:symbol-entry deregister_tm_clones 1680 0 1680 1680)\n(llvm:symbol-entry call_weak_fn 1652 20 1652 1652)\n(mapped 0 2120 0)\n(mapped 69016 632 3480)\n(named-region 0 2120 02)\n(named-region 69016 640 03)\n(named-region 568 27 .interp)\n(named-region 596 36 .note.gnu.build-id)\n(named-region 632 32 .note.ABI-tag)\n(named-region 664 28 .gnu.hash)\n(named-region 696 216 .dynsym)\n(named-region 912 141 .dynstr)\n(named-region 1054 18 .gnu.version)\n(named-region 1072 48 .gnu.version_r)\n(named-region 1120 192 .rela.dyn)\n(named-region 1312 96 .rela.plt)\n(named-region 1408 24 .init)\n(named-region 1440 96 .plt)\n(named-region 1536 340 .text)\n(named-region 1876 20 .fini)\n(named-region 1896 4 .rodata)\n(named-region 1900 60 .eh_frame_hdr)\n(named-region 1960 160 .eh_frame)\n(named-region 69016 8 .init_array)\n(named-region 69024 8 .fini_array)\n(named-region 69032 496 .dynamic)\n(named-region 69528 104 .got)\n(named-region 69632 16 .data)\n(named-region 69648 8 .bss)\n(named-region 0 43 .comment)\n(named-region 0 2112 .symtab)\n(named-region 0 558 .strtab)\n(named-region 0 250 .shstrtab)\n(named-symbol 1652 call_weak_fn)\n(named-symbol 1680 deregister_tm_clones)\n(named-symbol 1728 register_tm_clones)\n(named-symbol 1792 __do_global_dtors_aux)\n(named-symbol 1872 frame_dummy)\n(named-symbol 0 __libc_start_main@GLIBC_2.34)\n(named-symbol 0 __cxa_finalize@GLIBC_2.17)\n(named-symbol 1876 _fini)\n(named-symbol 0 abort@GLIBC_2.17)\n(named-symbol 1600 _start)\n(named-symbol 1536 main)\n(named-symbol 1408 _init)\n(named-symbol 0 __libc_start_main)\n(named-symbol 0 __cxa_finalize)\n(named-symbol 0 abort)\n(require libc.so.6)\n(section 568 27)\n(section 596 36)\n(section 632 32)\n(section 664 28)\n(section 696 216)\n(section 912 141)\n(section 1054 18)\n(section 1072 48)\n(section 1120 192)\n(section 1312 96)\n(section 1408 24)\n(section 1440 96)\n(section 1536 340)\n(section 1876 20)\n(section 1896 4)\n(section 1900 60)\n(section 1960 160)\n(section 69016 8)\n(section 69024 8)\n(section 69032 496)\n(section 69528 104)\n(section 69632 16)\n(section 69648 8)\n(section 0 43)\n(section 0 2112)\n(section 0 558)\n(section 0 250)\n(segment 0 2120 true false true)\n(segment 69016 640 true true false)\n(subarch v8)\n(symbol-chunk 1652 20 1652)\n(symbol-chunk 1600 52 1600)\n(symbol-chunk 1536 24 1536)\n(symbol-value 1652 1652)\n(symbol-value 1680 1680)\n(symbol-value 1728 1728)\n(symbol-value 1792 1792)\n(symbol-value 1872 1872)\n(symbol-value 1876 1876)\n(symbol-value 1600 1600)\n(symbol-value 1536 1536)\n(symbol-value 1408 1408)\n(symbol-value 0 0)\n(system \"\")\n(vendor \"\")\n"), -Attr("abi-name","\"aarch64-linux-gnu-elf\"")]), -Sections([Section(".shstrtab", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x40\x06\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xa8\x1b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x38\x00\x09\x00\x40\x00\x1c\x00\x1b\x00\x06\x00\x00\x00\x04\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x04\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x48\x08\x00\x00\x00\x00\x00\x00\x48\x08\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x01\x00\x00\x00\x06\x00\x00\x00\x98\x0d\x00\x00\x00\x00\x00\x00\x98\x0d"), -Section(".strtab", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x40\x06\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xa8\x1b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x38\x00\x09\x00\x40\x00\x1c\x00\x1b\x00\x06\x00\x00\x00\x04\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x04\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x48\x08\x00\x00\x00\x00\x00\x00\x48\x08\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x01\x00\x00\x00\x06\x00\x00\x00\x98\x0d\x00\x00\x00\x00\x00\x00\x98\x0d\x01\x00\x00\x00\x00\x00\x98\x0d\x01\x00\x00\x00\x00\x00\x78\x02\x00\x00\x00\x00\x00\x00\x80\x02\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x02\x00\x00\x00\x06\x00\x00\x00\xa8\x0d\x00\x00\x00\x00\x00\x00\xa8\x0d\x01\x00\x00\x00\x00\x00\xa8\x0d\x01\x00\x00\x00\x00\x00\xf0\x01\x00\x00\x00\x00\x00\x00\xf0\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x04\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x50\xe5\x74\x64\x04\x00\x00\x00\x6c\x07\x00\x00\x00\x00\x00\x00\x6c\x07\x00\x00\x00\x00\x00\x00\x6c\x07\x00\x00\x00\x00\x00\x00\x3c\x00\x00\x00\x00\x00\x00\x00\x3c\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x51\xe5\x74\x64\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x52\xe5\x74\x64\x04\x00\x00\x00\x98\x0d\x00\x00\x00\x00\x00\x00\x98\x0d\x01\x00\x00\x00\x00\x00\x98\x0d\x01\x00\x00\x00\x00\x00\x68\x02\x00\x00\x00\x00\x00\x00\x68\x02\x00\x00\x00\x00"), -Section(".symtab", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x40\x06\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xa8\x1b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x38\x00\x09\x00\x40\x00\x1c\x00\x1b\x00\x06\x00\x00\x00\x04\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x04\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x48\x08\x00\x00\x00\x00\x00\x00\x48\x08\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x01\x00\x00\x00\x06\x00\x00\x00\x98\x0d\x00\x00\x00\x00\x00\x00\x98\x0d\x01\x00\x00\x00\x00\x00\x98\x0d\x01\x00\x00\x00\x00\x00\x78\x02\x00\x00\x00\x00\x00\x00\x80\x02\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x02\x00\x00\x00\x06\x00\x00\x00\xa8\x0d\x00\x00\x00\x00\x00\x00\xa8\x0d\x01\x00\x00\x00\x00\x00\xa8\x0d\x01\x00\x00\x00\x00\x00\xf0\x01\x00\x00\x00\x00\x00\x00\xf0\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x04\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x50\xe5\x74\x64\x04\x00\x00\x00\x6c\x07\x00\x00\x00\x00\x00\x00\x6c\x07\x00\x00\x00\x00\x00\x00\x6c\x07\x00\x00\x00\x00\x00\x00\x3c\x00\x00\x00\x00\x00\x00\x00\x3c\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x51\xe5\x74\x64\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x52\xe5\x74\x64\x04\x00\x00\x00\x98\x0d\x00\x00\x00\x00\x00\x00\x98\x0d\x01\x00\x00\x00\x00\x00\x98\x0d\x01\x00\x00\x00\x00\x00\x68\x02\x00\x00\x00\x00\x00\x00\x68\x02\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x2f\x6c\x69\x62\x2f\x6c\x64\x2d\x6c\x69\x6e\x75\x78\x2d\x61\x61\x72\x63\x68\x36\x34\x2e\x73\x6f\x2e\x31\x00\x00\x04\x00\x00\x00\x14\x00\x00\x00\x03\x00\x00\x00\x47\x4e\x55\x00\x64\x1b\x07\x8c\x8b\x7c\x8e\x55\xe2\xae\x05\x22\x80\x58\x6b\x4a\x5a\xd9\xc8\x45\x04\x00\x00\x00\x10\x00\x00\x00\x01\x00\x00\x00\x47\x4e\x55\x00\x00\x00\x00\x00\x03\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x01\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x0b\x00\x80\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x16\x00\x00\x10\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x48\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x22\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x22\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x73\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5f\x5f\x63\x78\x61\x5f\x66\x69\x6e\x61\x6c\x69\x7a\x65\x00\x5f\x5f\x6c\x69\x62\x63\x5f\x73\x74\x61\x72\x74\x5f\x6d\x61\x69\x6e\x00\x61\x62\x6f\x72\x74\x00\x6c\x69\x62\x63\x2e\x73\x6f\x2e\x36\x00\x47\x4c\x49\x42\x43\x5f\x32\x2e\x31\x37\x00\x47\x4c\x49\x42\x43\x5f\x32\x2e\x33\x34\x00\x5f\x49\x54\x4d\x5f\x64\x65\x72\x65\x67\x69\x73\x74\x65\x72\x54\x4d\x43\x6c\x6f\x6e\x65\x54\x61\x62\x6c\x65\x00\x5f\x5f\x67\x6d\x6f\x6e\x5f\x73\x74\x61\x72\x74\x5f\x5f\x00\x5f\x49\x54\x4d\x5f\x72\x65\x67\x69\x73\x74\x65\x72\x54\x4d\x43\x6c\x6f\x6e\x65\x54\x61\x62\x6c\x65\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x01\x00\x03\x00\x01\x00\x03\x00\x01\x00\x01\x00\x02\x00\x28\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x97\x91\x96\x06\x00\x00\x03\x00\x32\x00\x00\x00\x10\x00\x00\x00\xb4\x91\x96\x06\x00\x00\x02\x00\x3d\x00\x00\x00\x00\x00\x00\x00\x98\x0d\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x50\x07\x00\x00\x00\x00\x00\x00\xa0\x0d\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\xf0\x0f\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x00\x06\x00\x00\x00\x00\x00\x00\x08\x10\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x08\x10\x01\x00\x00\x00\x00\x00\xd8\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe0\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe8\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xf8\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xb0\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xb8\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xc0\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xc8\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1f\x20\x03\xd5\xfd\x7b\xbf\xa9\xfd\x03\x00\x91\x3a\x00\x00\x94\xfd\x7b\xc1\xa8\xc0\x03\x5f\xd6\x00\x00\x00\x00\x00\x00\x00\x00\xf0\x7b\xbf\xa9\x90\x00\x00\x90\x11\xd6\x47\xf9\x10\xa2\x3e\x91\x20\x02\x1f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x90\x00\x00\x90\x11\xda\x47\xf9\x10\xc2\x3e\x91\x20\x02\x1f\xd6\x90\x00\x00\x90\x11\xde\x47\xf9\x10\xe2\x3e\x91\x20\x02\x1f\xd6\x90\x00\x00\x90\x11\xe2\x47\xf9\x10\x02\x3f\x91\x20\x02\x1f\xd6\x90\x00\x00\x90\x11\xe6\x47\xf9\x10\x22\x3f\x91\x20\x02\x1f\xd6\x82\x00\x00\xb0\x00\x00\x80\x52\x41\x14\x40\xb9\x21\x04\x00\x11\x41\x14\x00\xb9\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1d\x00\x80\xd2\x1e\x00\x80\xd2\xe5\x03\x00\xaa\xe1\x03\x40\xf9\xe2\x23\x00\x91\xe6\x03\x00\x91\x80\x00\x00\x90\x00\xf8\x47\xf9\x03\x00\x80\xd2\x04\x00\x80\xd2\xd5\xff\xff\x97\xe0\xff\xff\x97\x80\x00\x00\x90\x00\xf4\x47\xf9\x40\x00\x00\xb4\xd8\xff\xff\x17\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x80\x00\x00\xb0\x00\x40\x00\x91\x81\x00\x00\xb0\x21\x40\x00\x91\x3f\x00\x00\xeb\xc0\x00\x00\x54\x81\x00\x00\x90\x21\xec\x47\xf9\x61\x00\x00\xb4\xf0\x03\x01\xaa\x00\x02\x1f\xd6\xc0\x03\x5f\xd6\x80\x00\x00\xb0\x00\x40\x00\x91\x81\x00\x00\xb0\x21\x40\x00\x91\x21\x00\x00\xcb\x22\xfc\x7f\xd3\x41\x0c\x81\x8b\x21\xfc\x41\x93\xc1\x00\x00\xb4\x82\x00\x00\x90\x42\xfc\x47\xf9\x62\x00\x00\xb4\xf0\x03\x02\xaa\x00\x02\x1f\xd6\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\xfd\x7b\xbe\xa9\xfd\x03\x00\x91\xf3\x0b\x00\xf9\x93\x00\x00\xb0\x60\x42\x40\x39\x40\x01\x00\x35\x80\x00\x00\x90\x00\xf0\x47\xf9\x80\x00\x00\xb4\x80\x00\x00\xb0\x00\x04\x40\xf9\xa9\xff\xff\x97\xd8\xff\xff\x97\x20\x00\x80\x52\x60\x42\x00\x39\xf3\x0b\x40\xf9\xfd\x7b\xc2\xa8\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\xdc\xff\xff\x17\x1f\x20\x03\xd5\xfd\x7b\xbf\xa9\xfd\x03\x00\x91\xfd\x7b\xc1\xa8\xc0\x03\x5f\xd6\x01\x00\x02\x00\x01\x1b\x03\x3b\x38\x00\x00\x00\x06\x00\x00\x00\x94\xfe\xff\xff\xc4\x00\x00\x00\xd4\xfe\xff\xff\x50\x00\x00\x00\x24\xff\xff\xff\x64\x00\x00\x00\x54\xff\xff\xff\x78\x00\x00\x00\x94\xff\xff\xff\x8c\x00\x00\x00\xe4\xff\xff\xff\xb0\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x01\x7a\x52\x00\x04\x78\x1e\x01\x1b\x0c\x1f\x00\x10\x00\x00\x00\x18\x00\x00\x00\x7c\xfe\xff\xff\x34\x00\x00\x00\x00\x41\x07\x1e\x10\x00\x00\x00\x2c\x00\x00\x00\xb8\xfe\xff\xff\x30\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x40\x00\x00\x00\xd4\xfe\xff\xff\x3c\x00\x00\x00\x00\x00\x00\x00\x20\x00\x00\x00\x54\x00\x00\x00\x00\xff\xff\xff\x48\x00\x00\x00\x00\x41\x0e\x20\x9d\x04\x9e\x03\x42\x93\x02\x4e\xde\xdd\xd3\x0e\x00\x00\x00\x00\x10\x00\x00\x00\x78\x00\x00\x00\x2c\xff\xff\xff\x04\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x8c\x00\x00\x00\xc8\xfd\xff\xff\x18\x00\x00\x00"), -Section(".comment", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x40\x06\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xa8\x1b\x00"), -Section(".interp", 0x238, "\x2f\x6c\x69\x62\x2f\x6c\x64\x2d\x6c\x69\x6e\x75\x78\x2d\x61\x61\x72\x63\x68\x36\x34\x2e\x73\x6f\x2e\x31\x00"), -Section(".note.gnu.build-id", 0x254, "\x04\x00\x00\x00\x14\x00\x00\x00\x03\x00\x00\x00\x47\x4e\x55\x00\x64\x1b\x07\x8c\x8b\x7c\x8e\x55\xe2\xae\x05\x22\x80\x58\x6b\x4a\x5a\xd9\xc8\x45"), -Section(".note.ABI-tag", 0x278, "\x04\x00\x00\x00\x10\x00\x00\x00\x01\x00\x00\x00\x47\x4e\x55\x00\x00\x00\x00\x00\x03\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00"), -Section(".gnu.hash", 0x298, "\x01\x00\x00\x00\x01\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".dynsym", 0x2B8, "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x0b\x00\x80\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x16\x00\x00\x10\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x48\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x22\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x22\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x73\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".dynstr", 0x390, "\x00\x5f\x5f\x63\x78\x61\x5f\x66\x69\x6e\x61\x6c\x69\x7a\x65\x00\x5f\x5f\x6c\x69\x62\x63\x5f\x73\x74\x61\x72\x74\x5f\x6d\x61\x69\x6e\x00\x61\x62\x6f\x72\x74\x00\x6c\x69\x62\x63\x2e\x73\x6f\x2e\x36\x00\x47\x4c\x49\x42\x43\x5f\x32\x2e\x31\x37\x00\x47\x4c\x49\x42\x43\x5f\x32\x2e\x33\x34\x00\x5f\x49\x54\x4d\x5f\x64\x65\x72\x65\x67\x69\x73\x74\x65\x72\x54\x4d\x43\x6c\x6f\x6e\x65\x54\x61\x62\x6c\x65\x00\x5f\x5f\x67\x6d\x6f\x6e\x5f\x73\x74\x61\x72\x74\x5f\x5f\x00\x5f\x49\x54\x4d\x5f\x72\x65\x67\x69\x73\x74\x65\x72\x54\x4d\x43\x6c\x6f\x6e\x65\x54\x61\x62\x6c\x65\x00"), -Section(".gnu.version", 0x41E, "\x00\x00\x00\x00\x00\x00\x02\x00\x01\x00\x03\x00\x01\x00\x03\x00\x01\x00"), -Section(".gnu.version_r", 0x430, "\x01\x00\x02\x00\x28\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x97\x91\x96\x06\x00\x00\x03\x00\x32\x00\x00\x00\x10\x00\x00\x00\xb4\x91\x96\x06\x00\x00\x02\x00\x3d\x00\x00\x00\x00\x00\x00\x00"), -Section(".rela.dyn", 0x460, "\x98\x0d\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x50\x07\x00\x00\x00\x00\x00\x00\xa0\x0d\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\xf0\x0f\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x00\x06\x00\x00\x00\x00\x00\x00\x08\x10\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x08\x10\x01\x00\x00\x00\x00\x00\xd8\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe0\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe8\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xf8\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".rela.plt", 0x520, "\xb0\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xb8\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xc0\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xc8\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".init", 0x580, "\x1f\x20\x03\xd5\xfd\x7b\xbf\xa9\xfd\x03\x00\x91\x3a\x00\x00\x94\xfd\x7b\xc1\xa8\xc0\x03\x5f\xd6"), -Section(".plt", 0x5A0, "\xf0\x7b\xbf\xa9\x90\x00\x00\x90\x11\xd6\x47\xf9\x10\xa2\x3e\x91\x20\x02\x1f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x90\x00\x00\x90\x11\xda\x47\xf9\x10\xc2\x3e\x91\x20\x02\x1f\xd6\x90\x00\x00\x90\x11\xde\x47\xf9\x10\xe2\x3e\x91\x20\x02\x1f\xd6\x90\x00\x00\x90\x11\xe2\x47\xf9\x10\x02\x3f\x91\x20\x02\x1f\xd6\x90\x00\x00\x90\x11\xe6\x47\xf9\x10\x22\x3f\x91\x20\x02\x1f\xd6"), -Section(".fini", 0x754, "\x1f\x20\x03\xd5\xfd\x7b\xbf\xa9\xfd\x03\x00\x91\xfd\x7b\xc1\xa8\xc0\x03\x5f\xd6"), -Section(".rodata", 0x768, "\x01\x00\x02\x00"), -Section(".eh_frame_hdr", 0x76C, "\x01\x1b\x03\x3b\x38\x00\x00\x00\x06\x00\x00\x00\x94\xfe\xff\xff\xc4\x00\x00\x00\xd4\xfe\xff\xff\x50\x00\x00\x00\x24\xff\xff\xff\x64\x00\x00\x00\x54\xff\xff\xff\x78\x00\x00\x00\x94\xff\xff\xff\x8c\x00\x00\x00\xe4\xff\xff\xff\xb0\x00\x00\x00"), -Section(".eh_frame", 0x7A8, "\x10\x00\x00\x00\x00\x00\x00\x00\x01\x7a\x52\x00\x04\x78\x1e\x01\x1b\x0c\x1f\x00\x10\x00\x00\x00\x18\x00\x00\x00\x7c\xfe\xff\xff\x34\x00\x00\x00\x00\x41\x07\x1e\x10\x00\x00\x00\x2c\x00\x00\x00\xb8\xfe\xff\xff\x30\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x40\x00\x00\x00\xd4\xfe\xff\xff\x3c\x00\x00\x00\x00\x00\x00\x00\x20\x00\x00\x00\x54\x00\x00\x00\x00\xff\xff\xff\x48\x00\x00\x00\x00\x41\x0e\x20\x9d\x04\x9e\x03\x42\x93\x02\x4e\xde\xdd\xd3\x0e\x00\x00\x00\x00\x10\x00\x00\x00\x78\x00\x00\x00\x2c\xff\xff\xff\x04\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x8c\x00\x00\x00\xc8\xfd\xff\xff\x18\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".fini_array", 0x10DA0, "\x00\x07\x00\x00\x00\x00\x00\x00"), -Section(".dynamic", 0x10DA8, "\x01\x00\x00\x00\x00\x00\x00\x00\x28\x00\x00\x00\x00\x00\x00\x00\x0c\x00\x00\x00\x00\x00\x00\x00\x80\x05\x00\x00\x00\x00\x00\x00\x0d\x00\x00\x00\x00\x00\x00\x00\x54\x07\x00\x00\x00\x00\x00\x00\x19\x00\x00\x00\x00\x00\x00\x00\x98\x0d\x01\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x1a\x00\x00\x00\x00\x00\x00\x00\xa0\x0d\x01\x00\x00\x00\x00\x00\x1c\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\xf5\xfe\xff\x6f\x00\x00\x00\x00\x98\x02\x00\x00\x00\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x90\x03\x00\x00\x00\x00\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\xb8\x02\x00\x00\x00\x00\x00\x00\x0a\x00\x00\x00\x00\x00\x00\x00\x8d\x00\x00\x00\x00\x00\x00\x00\x0b\x00\x00\x00\x00\x00\x00\x00\x18\x00\x00\x00\x00\x00\x00\x00\x15\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x98\x0f\x01\x00\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x60\x00\x00\x00\x00\x00\x00\x00\x14\x00\x00\x00\x00\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x17\x00\x00\x00\x00\x00\x00\x00\x20\x05\x00\x00\x00\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x60\x04\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\xc0\x00\x00\x00\x00\x00\x00\x00\x09\x00\x00\x00\x00\x00\x00\x00\x18\x00\x00\x00\x00\x00\x00\x00\x1e\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\xfb\xff\xff\x6f\x00\x00\x00\x00\x01\x00\x00\x08\x00\x00\x00\x00\xfe\xff\xff\x6f\x00\x00\x00\x00\x30\x04\x00\x00\x00\x00\x00\x00\xff\xff\xff\x6f\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\xf0\xff\xff\x6f\x00\x00\x00\x00\x1e\x04\x00\x00\x00\x00\x00\x00\xf9\xff\xff\x6f\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".init_array", 0x10D98, "\x50\x07\x00\x00\x00\x00\x00\x00"), -Section(".got", 0x10F98, "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xa0\x05\x00\x00\x00\x00\x00\x00\xa0\x05\x00\x00\x00\x00\x00\x00\xa0\x05\x00\x00\x00\x00\x00\x00\xa0\x05\x00\x00\x00\x00\x00\x00\xa8\x0d\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".data", 0x11000, "\x00\x00\x00\x00\x00\x00\x00\x00\x08\x10\x01\x00\x00\x00\x00\x00"), -Section(".text", 0x600, "\x82\x00\x00\xb0\x00\x00\x80\x52\x41\x14\x40\xb9\x21\x04\x00\x11\x41\x14\x00\xb9\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1d\x00\x80\xd2\x1e\x00\x80\xd2\xe5\x03\x00\xaa\xe1\x03\x40\xf9\xe2\x23\x00\x91\xe6\x03\x00\x91\x80\x00\x00\x90\x00\xf8\x47\xf9\x03\x00\x80\xd2\x04\x00\x80\xd2\xd5\xff\xff\x97\xe0\xff\xff\x97\x80\x00\x00\x90\x00\xf4\x47\xf9\x40\x00\x00\xb4\xd8\xff\xff\x17\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x80\x00\x00\xb0\x00\x40\x00\x91\x81\x00\x00\xb0\x21\x40\x00\x91\x3f\x00\x00\xeb\xc0\x00\x00\x54\x81\x00\x00\x90\x21\xec\x47\xf9\x61\x00\x00\xb4\xf0\x03\x01\xaa\x00\x02\x1f\xd6\xc0\x03\x5f\xd6\x80\x00\x00\xb0\x00\x40\x00\x91\x81\x00\x00\xb0\x21\x40\x00\x91\x21\x00\x00\xcb\x22\xfc\x7f\xd3\x41\x0c\x81\x8b\x21\xfc\x41\x93\xc1\x00\x00\xb4\x82\x00\x00\x90\x42\xfc\x47\xf9\x62\x00\x00\xb4\xf0\x03\x02\xaa\x00\x02\x1f\xd6\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\xfd\x7b\xbe\xa9\xfd\x03\x00\x91\xf3\x0b\x00\xf9\x93\x00\x00\xb0\x60\x42\x40\x39\x40\x01\x00\x35\x80\x00\x00\x90\x00\xf0\x47\xf9\x80\x00\x00\xb4\x80\x00\x00\xb0\x00\x04\x40\xf9\xa9\xff\xff\x97\xd8\xff\xff\x97\x20\x00\x80\x52\x60\x42\x00\x39\xf3\x0b\x40\xf9\xfd\x7b\xc2\xa8\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\xdc\xff\xff\x17")]), -Memmap([Annotation(Region(0x0,0x847), Attr("segment","02 0 2120")), -Annotation(Region(0x600,0x617), Attr("symbol","\"main\"")), -Annotation(Region(0x0,0xF9), Attr("section","\".shstrtab\"")), -Annotation(Region(0x0,0x22D), Attr("section","\".strtab\"")), -Annotation(Region(0x0,0x83F), Attr("section","\".symtab\"")), -Annotation(Region(0x0,0x2A), Attr("section","\".comment\"")), -Annotation(Region(0x238,0x252), Attr("section","\".interp\"")), -Annotation(Region(0x254,0x277), Attr("section","\".note.gnu.build-id\"")), -Annotation(Region(0x278,0x297), Attr("section","\".note.ABI-tag\"")), -Annotation(Region(0x298,0x2B3), Attr("section","\".gnu.hash\"")), -Annotation(Region(0x2B8,0x38F), Attr("section","\".dynsym\"")), -Annotation(Region(0x390,0x41C), Attr("section","\".dynstr\"")), -Annotation(Region(0x41E,0x42F), Attr("section","\".gnu.version\"")), -Annotation(Region(0x430,0x45F), Attr("section","\".gnu.version_r\"")), -Annotation(Region(0x460,0x51F), Attr("section","\".rela.dyn\"")), -Annotation(Region(0x520,0x57F), Attr("section","\".rela.plt\"")), -Annotation(Region(0x580,0x597), Attr("section","\".init\"")), -Annotation(Region(0x5A0,0x5FF), Attr("section","\".plt\"")), -Annotation(Region(0x580,0x597), Attr("code-region","()")), -Annotation(Region(0x5A0,0x5FF), Attr("code-region","()")), -Annotation(Region(0x600,0x617), Attr("symbol-info","main 0x600 24")), -Annotation(Region(0x640,0x673), Attr("symbol","\"_start\"")), -Annotation(Region(0x640,0x673), Attr("symbol-info","_start 0x640 52")), -Annotation(Region(0x674,0x687), Attr("symbol","\"call_weak_fn\"")), -Annotation(Region(0x674,0x687), Attr("symbol-info","call_weak_fn 0x674 20")), -Annotation(Region(0x754,0x767), Attr("section","\".fini\"")), -Annotation(Region(0x768,0x76B), Attr("section","\".rodata\"")), -Annotation(Region(0x76C,0x7A7), Attr("section","\".eh_frame_hdr\"")), -Annotation(Region(0x7A8,0x847), Attr("section","\".eh_frame\"")), -Annotation(Region(0x10D98,0x1100F), Attr("segment","03 0x10D98 640")), -Annotation(Region(0x10DA0,0x10DA7), Attr("section","\".fini_array\"")), -Annotation(Region(0x10DA8,0x10F97), Attr("section","\".dynamic\"")), -Annotation(Region(0x10D98,0x10D9F), Attr("section","\".init_array\"")), -Annotation(Region(0x10F98,0x10FFF), Attr("section","\".got\"")), -Annotation(Region(0x11000,0x1100F), Attr("section","\".data\"")), -Annotation(Region(0x600,0x753), Attr("section","\".text\"")), -Annotation(Region(0x600,0x753), Attr("code-region","()")), -Annotation(Region(0x754,0x767), Attr("code-region","()"))]), -Program(Tid(1_511, "%000005e7"), Attrs([]), - Subs([Sub(Tid(1_461, "@__cxa_finalize"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x5D0"), -Attr("stub","()")]), "__cxa_finalize", Args([Arg(Tid(1_512, "%000005e8"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("__cxa_finalize_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(857, "@__cxa_finalize"), - Attrs([Attr("address","0x5D0")]), Phis([]), -Defs([Def(Tid(1_105, "%00000451"), Attrs([Attr("address","0x5D0"), -Attr("insn","adrp x16, #65536")]), Var("R16",Imm(64)), Int(65536,64)), -Def(Tid(1_112, "%00000458"), Attrs([Attr("address","0x5D4"), -Attr("insn","ldr x17, [x16, #0xfb8]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(4024,64)),LittleEndian(),64)), -Def(Tid(1_118, "%0000045e"), Attrs([Attr("address","0x5D8"), -Attr("insn","add x16, x16, #0xfb8")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(4024,64)))]), Jmps([Call(Tid(1_123, "%00000463"), - Attrs([Attr("address","0x5DC"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), -Sub(Tid(1_462, "@__do_global_dtors_aux"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x700")]), - "__do_global_dtors_aux", Args([Arg(Tid(1_513, "%000005e9"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("__do_global_dtors_aux_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(710, "@__do_global_dtors_aux"), - Attrs([Attr("address","0x700")]), Phis([]), Defs([Def(Tid(714, "%000002ca"), - Attrs([Attr("address","0x700"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("#3",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(18446744073709551584,64))), -Def(Tid(720, "%000002d0"), Attrs([Attr("address","0x700"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("#3",Imm(64)),Var("R29",Imm(64)),LittleEndian(),64)), -Def(Tid(726, "%000002d6"), Attrs([Attr("address","0x700"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("#3",Imm(64)),Int(8,64)),Var("R30",Imm(64)),LittleEndian(),64)), -Def(Tid(730, "%000002da"), Attrs([Attr("address","0x700"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("R31",Imm(64)), -Var("#3",Imm(64))), Def(Tid(736, "%000002e0"), - Attrs([Attr("address","0x704"), Attr("insn","mov x29, sp")]), - Var("R29",Imm(64)), Var("R31",Imm(64))), Def(Tid(744, "%000002e8"), - Attrs([Attr("address","0x708"), Attr("insn","str x19, [sp, #0x10]")]), - Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(16,64)),Var("R19",Imm(64)),LittleEndian(),64)), -Def(Tid(749, "%000002ed"), Attrs([Attr("address","0x70C"), -Attr("insn","adrp x19, #69632")]), Var("R19",Imm(64)), Int(69632,64)), -Def(Tid(756, "%000002f4"), Attrs([Attr("address","0x710"), -Attr("insn","ldrb w0, [x19, #0x10]")]), Var("R0",Imm(64)), -UNSIGNED(64,Load(Var("mem",Mem(64,8)),PLUS(Var("R19",Imm(64)),Int(16,64)),LittleEndian(),8)))]), -Jmps([Goto(Tid(763, "%000002fb"), Attrs([Attr("address","0x714"), -Attr("insn","cbnz w0, #0x28")]), - NEQ(Extract(31,0,Var("R0",Imm(64))),Int(0,32)), -Direct(Tid(761, "%000002f9"))), Goto(Tid(1_501, "%000005dd"), Attrs([]), - Int(1,1), Direct(Tid(802, "%00000322")))])), Blk(Tid(802, "%00000322"), - Attrs([Attr("address","0x718")]), Phis([]), Defs([Def(Tid(805, "%00000325"), - Attrs([Attr("address","0x718"), Attr("insn","adrp x0, #65536")]), - Var("R0",Imm(64)), Int(65536,64)), Def(Tid(812, "%0000032c"), - Attrs([Attr("address","0x71C"), Attr("insn","ldr x0, [x0, #0xfe0]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(4064,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(818, "%00000332"), Attrs([Attr("address","0x720"), -Attr("insn","cbz x0, #0x10")]), EQ(Var("R0",Imm(64)),Int(0,64)), -Direct(Tid(816, "%00000330"))), Goto(Tid(1_502, "%000005de"), Attrs([]), - Int(1,1), Direct(Tid(841, "%00000349")))])), Blk(Tid(841, "%00000349"), - Attrs([Attr("address","0x724")]), Phis([]), Defs([Def(Tid(844, "%0000034c"), - Attrs([Attr("address","0x724"), Attr("insn","adrp x0, #69632")]), - Var("R0",Imm(64)), Int(69632,64)), Def(Tid(851, "%00000353"), - Attrs([Attr("address","0x728"), Attr("insn","ldr x0, [x0, #0x8]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(856, "%00000358"), Attrs([Attr("address","0x72C"), -Attr("insn","bl #-0x15c")]), Var("R30",Imm(64)), Int(1840,64))]), -Jmps([Call(Tid(859, "%0000035b"), Attrs([Attr("address","0x72C"), -Attr("insn","bl #-0x15c")]), Int(1,1), -(Direct(Tid(1_461, "@__cxa_finalize")),Direct(Tid(816, "%00000330"))))])), -Blk(Tid(816, "%00000330"), Attrs([Attr("address","0x730")]), Phis([]), -Defs([Def(Tid(824, "%00000338"), Attrs([Attr("address","0x730"), -Attr("insn","bl #-0xa0")]), Var("R30",Imm(64)), Int(1844,64))]), -Jmps([Call(Tid(826, "%0000033a"), Attrs([Attr("address","0x730"), -Attr("insn","bl #-0xa0")]), Int(1,1), -(Direct(Tid(1_475, "@deregister_tm_clones")),Direct(Tid(828, "%0000033c"))))])), -Blk(Tid(828, "%0000033c"), Attrs([Attr("address","0x734")]), Phis([]), -Defs([Def(Tid(831, "%0000033f"), Attrs([Attr("address","0x734"), -Attr("insn","mov w0, #0x1")]), Var("R0",Imm(64)), Int(1,64)), -Def(Tid(839, "%00000347"), Attrs([Attr("address","0x738"), -Attr("insn","strb w0, [x19, #0x10]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R19",Imm(64)),Int(16,64)),Extract(7,0,Var("R0",Imm(64))),LittleEndian(),8))]), -Jmps([Goto(Tid(1_503, "%000005df"), Attrs([]), Int(1,1), -Direct(Tid(761, "%000002f9")))])), Blk(Tid(761, "%000002f9"), - Attrs([Attr("address","0x73C")]), Phis([]), Defs([Def(Tid(771, "%00000303"), - Attrs([Attr("address","0x73C"), Attr("insn","ldr x19, [sp, #0x10]")]), - Var("R19",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(16,64)),LittleEndian(),64)), -Def(Tid(778, "%0000030a"), Attrs([Attr("address","0x740"), -Attr("insn","ldp x29, x30, [sp], #0x20")]), Var("R29",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(783, "%0000030f"), Attrs([Attr("address","0x740"), -Attr("insn","ldp x29, x30, [sp], #0x20")]), Var("R30",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(787, "%00000313"), Attrs([Attr("address","0x740"), -Attr("insn","ldp x29, x30, [sp], #0x20")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(32,64)))]), Jmps([Call(Tid(792, "%00000318"), - Attrs([Attr("address","0x744"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), Sub(Tid(1_466, "@__libc_start_main"), - Attrs([Attr("c.proto","signed (*)(signed (*)(signed , char** , char** );* main, signed , char** , \nvoid* auxv)"), -Attr("address","0x5C0"), Attr("stub","()")]), "__libc_start_main", - Args([Arg(Tid(1_514, "%000005ea"), - Attrs([Attr("c.layout","**[ : 64]"), -Attr("c.data","Top:u64 ptr ptr"), -Attr("c.type","signed (*)(signed , char** , char** );*")]), - Var("__libc_start_main_main",Imm(64)), Var("R0",Imm(64)), In()), -Arg(Tid(1_515, "%000005eb"), Attrs([Attr("c.layout","[signed : 32]"), -Attr("c.data","Top:u32"), Attr("c.type","signed")]), - Var("__libc_start_main_arg2",Imm(32)), LOW(32,Var("R1",Imm(64))), In()), -Arg(Tid(1_516, "%000005ec"), Attrs([Attr("c.layout","**[char : 8]"), -Attr("c.data","Top:u8 ptr ptr"), Attr("c.type","char**")]), - Var("__libc_start_main_arg3",Imm(64)), Var("R2",Imm(64)), Both()), -Arg(Tid(1_517, "%000005ed"), Attrs([Attr("c.layout","*[ : 8]"), -Attr("c.data","{} ptr"), Attr("c.type","void*")]), - Var("__libc_start_main_auxv",Imm(64)), Var("R3",Imm(64)), Both()), -Arg(Tid(1_518, "%000005ee"), Attrs([Attr("c.layout","[signed : 32]"), -Attr("c.data","Top:u32"), Attr("c.type","signed")]), - Var("__libc_start_main_result",Imm(32)), LOW(32,Var("R0",Imm(64))), -Out())]), Blks([Blk(Tid(543, "@__libc_start_main"), - Attrs([Attr("address","0x5C0")]), Phis([]), -Defs([Def(Tid(1_083, "%0000043b"), Attrs([Attr("address","0x5C0"), -Attr("insn","adrp x16, #65536")]), Var("R16",Imm(64)), Int(65536,64)), -Def(Tid(1_090, "%00000442"), Attrs([Attr("address","0x5C4"), -Attr("insn","ldr x17, [x16, #0xfb0]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(4016,64)),LittleEndian(),64)), -Def(Tid(1_096, "%00000448"), Attrs([Attr("address","0x5C8"), -Attr("insn","add x16, x16, #0xfb0")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(4016,64)))]), Jmps([Call(Tid(1_101, "%0000044d"), - Attrs([Attr("address","0x5CC"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), Sub(Tid(1_467, "@_fini"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x754")]), - "_fini", Args([Arg(Tid(1_519, "%000005ef"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("_fini_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(31, "@_fini"), - Attrs([Attr("address","0x754")]), Phis([]), Defs([Def(Tid(37, "%00000025"), - Attrs([Attr("address","0x758"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("#0",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(18446744073709551600,64))), -Def(Tid(43, "%0000002b"), Attrs([Attr("address","0x758"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("#0",Imm(64)),Var("R29",Imm(64)),LittleEndian(),64)), -Def(Tid(49, "%00000031"), Attrs([Attr("address","0x758"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("#0",Imm(64)),Int(8,64)),Var("R30",Imm(64)),LittleEndian(),64)), -Def(Tid(53, "%00000035"), Attrs([Attr("address","0x758"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("R31",Imm(64)), -Var("#0",Imm(64))), Def(Tid(59, "%0000003b"), Attrs([Attr("address","0x75C"), -Attr("insn","mov x29, sp")]), Var("R29",Imm(64)), Var("R31",Imm(64))), -Def(Tid(66, "%00000042"), Attrs([Attr("address","0x760"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R29",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(71, "%00000047"), Attrs([Attr("address","0x760"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R30",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(75, "%0000004b"), Attrs([Attr("address","0x760"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(16,64)))]), Jmps([Call(Tid(80, "%00000050"), - Attrs([Attr("address","0x764"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), Sub(Tid(1_468, "@_init"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x580")]), - "_init", Args([Arg(Tid(1_520, "%000005f0"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("_init_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(1_287, "@_init"), - Attrs([Attr("address","0x580")]), Phis([]), -Defs([Def(Tid(1_293, "%0000050d"), Attrs([Attr("address","0x584"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("#5",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(18446744073709551600,64))), -Def(Tid(1_299, "%00000513"), Attrs([Attr("address","0x584"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("#5",Imm(64)),Var("R29",Imm(64)),LittleEndian(),64)), -Def(Tid(1_305, "%00000519"), Attrs([Attr("address","0x584"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("#5",Imm(64)),Int(8,64)),Var("R30",Imm(64)),LittleEndian(),64)), -Def(Tid(1_309, "%0000051d"), Attrs([Attr("address","0x584"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("R31",Imm(64)), -Var("#5",Imm(64))), Def(Tid(1_315, "%00000523"), - Attrs([Attr("address","0x588"), Attr("insn","mov x29, sp")]), - Var("R29",Imm(64)), Var("R31",Imm(64))), Def(Tid(1_320, "%00000528"), - Attrs([Attr("address","0x58C"), Attr("insn","bl #0xe8")]), - Var("R30",Imm(64)), Int(1424,64))]), Jmps([Call(Tid(1_322, "%0000052a"), - Attrs([Attr("address","0x58C"), Attr("insn","bl #0xe8")]), Int(1,1), -(Direct(Tid(1_473, "@call_weak_fn")),Direct(Tid(1_324, "%0000052c"))))])), -Blk(Tid(1_324, "%0000052c"), Attrs([Attr("address","0x590")]), Phis([]), -Defs([Def(Tid(1_329, "%00000531"), Attrs([Attr("address","0x590"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R29",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(1_334, "%00000536"), Attrs([Attr("address","0x590"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R30",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(1_338, "%0000053a"), Attrs([Attr("address","0x590"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(16,64)))]), Jmps([Call(Tid(1_343, "%0000053f"), - Attrs([Attr("address","0x594"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), Sub(Tid(1_469, "@_start"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x640"), -Attr("entry-point","()")]), "_start", Args([Arg(Tid(1_521, "%000005f1"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("_start_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(480, "@_start"), - Attrs([Attr("address","0x640")]), Phis([]), Defs([Def(Tid(485, "%000001e5"), - Attrs([Attr("address","0x644"), Attr("insn","mov x29, #0x0")]), - Var("R29",Imm(64)), Int(0,64)), Def(Tid(490, "%000001ea"), - Attrs([Attr("address","0x648"), Attr("insn","mov x30, #0x0")]), - Var("R30",Imm(64)), Int(0,64)), Def(Tid(496, "%000001f0"), - Attrs([Attr("address","0x64C"), Attr("insn","mov x5, x0")]), - Var("R5",Imm(64)), Var("R0",Imm(64))), Def(Tid(503, "%000001f7"), - Attrs([Attr("address","0x650"), Attr("insn","ldr x1, [sp]")]), - Var("R1",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(509, "%000001fd"), Attrs([Attr("address","0x654"), -Attr("insn","add x2, sp, #0x8")]), Var("R2",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(8,64))), Def(Tid(515, "%00000203"), - Attrs([Attr("address","0x658"), Attr("insn","mov x6, sp")]), - Var("R6",Imm(64)), Var("R31",Imm(64))), Def(Tid(520, "%00000208"), - Attrs([Attr("address","0x65C"), Attr("insn","adrp x0, #65536")]), - Var("R0",Imm(64)), Int(65536,64)), Def(Tid(527, "%0000020f"), - Attrs([Attr("address","0x660"), Attr("insn","ldr x0, [x0, #0xff0]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(4080,64)),LittleEndian(),64)), -Def(Tid(532, "%00000214"), Attrs([Attr("address","0x664"), -Attr("insn","mov x3, #0x0")]), Var("R3",Imm(64)), Int(0,64)), -Def(Tid(537, "%00000219"), Attrs([Attr("address","0x668"), -Attr("insn","mov x4, #0x0")]), Var("R4",Imm(64)), Int(0,64)), -Def(Tid(542, "%0000021e"), Attrs([Attr("address","0x66C"), -Attr("insn","bl #-0xac")]), Var("R30",Imm(64)), Int(1648,64))]), -Jmps([Call(Tid(545, "%00000221"), Attrs([Attr("address","0x66C"), -Attr("insn","bl #-0xac")]), Int(1,1), -(Direct(Tid(1_466, "@__libc_start_main")),Direct(Tid(547, "%00000223"))))])), -Blk(Tid(547, "%00000223"), Attrs([Attr("address","0x670")]), Phis([]), -Defs([Def(Tid(550, "%00000226"), Attrs([Attr("address","0x670"), -Attr("insn","bl #-0x80")]), Var("R30",Imm(64)), Int(1652,64))]), -Jmps([Call(Tid(553, "%00000229"), Attrs([Attr("address","0x670"), -Attr("insn","bl #-0x80")]), Int(1,1), -(Direct(Tid(1_472, "@abort")),Direct(Tid(1_504, "%000005e0"))))])), -Blk(Tid(1_504, "%000005e0"), Attrs([]), Phis([]), Defs([]), -Jmps([Call(Tid(1_505, "%000005e1"), Attrs([]), Int(1,1), -(Direct(Tid(1_473, "@call_weak_fn")),))]))])), Sub(Tid(1_472, "@abort"), - Attrs([Attr("noreturn","()"), Attr("c.proto","void (*)(void)"), -Attr("address","0x5F0"), Attr("stub","()")]), "abort", Args([]), -Blks([Blk(Tid(551, "@abort"), Attrs([Attr("address","0x5F0")]), Phis([]), -Defs([Def(Tid(1_149, "%0000047d"), Attrs([Attr("address","0x5F0"), -Attr("insn","adrp x16, #65536")]), Var("R16",Imm(64)), Int(65536,64)), -Def(Tid(1_156, "%00000484"), Attrs([Attr("address","0x5F4"), -Attr("insn","ldr x17, [x16, #0xfc8]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(4040,64)),LittleEndian(),64)), -Def(Tid(1_162, "%0000048a"), Attrs([Attr("address","0x5F8"), -Attr("insn","add x16, x16, #0xfc8")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(4040,64)))]), Jmps([Call(Tid(1_167, "%0000048f"), - Attrs([Attr("address","0x5FC"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), Sub(Tid(1_473, "@call_weak_fn"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x674")]), - "call_weak_fn", Args([Arg(Tid(1_522, "%000005f2"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("call_weak_fn_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(555, "@call_weak_fn"), - Attrs([Attr("address","0x674")]), Phis([]), Defs([Def(Tid(558, "%0000022e"), - Attrs([Attr("address","0x674"), Attr("insn","adrp x0, #65536")]), - Var("R0",Imm(64)), Int(65536,64)), Def(Tid(565, "%00000235"), - Attrs([Attr("address","0x678"), Attr("insn","ldr x0, [x0, #0xfe8]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(4072,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(571, "%0000023b"), Attrs([Attr("address","0x67C"), -Attr("insn","cbz x0, #0x8")]), EQ(Var("R0",Imm(64)),Int(0,64)), -Direct(Tid(569, "%00000239"))), Goto(Tid(1_506, "%000005e2"), Attrs([]), - Int(1,1), Direct(Tid(921, "%00000399")))])), Blk(Tid(569, "%00000239"), - Attrs([Attr("address","0x684")]), Phis([]), Defs([]), -Jmps([Call(Tid(577, "%00000241"), Attrs([Attr("address","0x684"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))])), -Blk(Tid(921, "%00000399"), Attrs([Attr("address","0x680")]), Phis([]), -Defs([]), Jmps([Goto(Tid(924, "%0000039c"), Attrs([Attr("address","0x680"), -Attr("insn","b #-0xa0")]), Int(1,1), Direct(Tid(922, "@__gmon_start__")))])), -Blk(Tid(922, "@__gmon_start__"), Attrs([Attr("address","0x5E0")]), Phis([]), -Defs([Def(Tid(1_127, "%00000467"), Attrs([Attr("address","0x5E0"), -Attr("insn","adrp x16, #65536")]), Var("R16",Imm(64)), Int(65536,64)), -Def(Tid(1_134, "%0000046e"), Attrs([Attr("address","0x5E4"), -Attr("insn","ldr x17, [x16, #0xfc0]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(4032,64)),LittleEndian(),64)), -Def(Tid(1_140, "%00000474"), Attrs([Attr("address","0x5E8"), -Attr("insn","add x16, x16, #0xfc0")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(4032,64)))]), Jmps([Call(Tid(1_145, "%00000479"), - Attrs([Attr("address","0x5EC"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), -Sub(Tid(1_475, "@deregister_tm_clones"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x690")]), - "deregister_tm_clones", Args([Arg(Tid(1_523, "%000005f3"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("deregister_tm_clones_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(583, "@deregister_tm_clones"), - Attrs([Attr("address","0x690")]), Phis([]), Defs([Def(Tid(586, "%0000024a"), - Attrs([Attr("address","0x690"), Attr("insn","adrp x0, #69632")]), - Var("R0",Imm(64)), Int(69632,64)), Def(Tid(592, "%00000250"), - Attrs([Attr("address","0x694"), Attr("insn","add x0, x0, #0x10")]), - Var("R0",Imm(64)), PLUS(Var("R0",Imm(64)),Int(16,64))), -Def(Tid(597, "%00000255"), Attrs([Attr("address","0x698"), -Attr("insn","adrp x1, #69632")]), Var("R1",Imm(64)), Int(69632,64)), -Def(Tid(603, "%0000025b"), Attrs([Attr("address","0x69C"), -Attr("insn","add x1, x1, #0x10")]), Var("R1",Imm(64)), -PLUS(Var("R1",Imm(64)),Int(16,64))), Def(Tid(609, "%00000261"), - Attrs([Attr("address","0x6A0"), Attr("insn","cmp x1, x0")]), - Var("#1",Imm(64)), NOT(Var("R0",Imm(64)))), Def(Tid(614, "%00000266"), - Attrs([Attr("address","0x6A0"), Attr("insn","cmp x1, x0")]), - Var("#2",Imm(64)), PLUS(Var("R1",Imm(64)),NOT(Var("R0",Imm(64))))), -Def(Tid(620, "%0000026c"), Attrs([Attr("address","0x6A0"), -Attr("insn","cmp x1, x0")]), Var("VF",Imm(1)), -NEQ(SIGNED(65,PLUS(Var("#2",Imm(64)),Int(1,64))),PLUS(PLUS(SIGNED(65,Var("R1",Imm(64))),SIGNED(65,Var("#1",Imm(64)))),Int(1,65)))), -Def(Tid(626, "%00000272"), Attrs([Attr("address","0x6A0"), -Attr("insn","cmp x1, x0")]), Var("CF",Imm(1)), -NEQ(UNSIGNED(65,PLUS(Var("#2",Imm(64)),Int(1,64))),PLUS(PLUS(UNSIGNED(65,Var("R1",Imm(64))),UNSIGNED(65,Var("#1",Imm(64)))),Int(1,65)))), -Def(Tid(630, "%00000276"), Attrs([Attr("address","0x6A0"), -Attr("insn","cmp x1, x0")]), Var("ZF",Imm(1)), -EQ(PLUS(Var("#2",Imm(64)),Int(1,64)),Int(0,64))), Def(Tid(634, "%0000027a"), - Attrs([Attr("address","0x6A0"), Attr("insn","cmp x1, x0")]), - Var("NF",Imm(1)), Extract(63,63,PLUS(Var("#2",Imm(64)),Int(1,64))))]), -Jmps([Goto(Tid(640, "%00000280"), Attrs([Attr("address","0x6A4"), -Attr("insn","b.eq #0x18")]), EQ(Var("ZF",Imm(1)),Int(1,1)), -Direct(Tid(638, "%0000027e"))), Goto(Tid(1_507, "%000005e3"), Attrs([]), - Int(1,1), Direct(Tid(891, "%0000037b")))])), Blk(Tid(891, "%0000037b"), - Attrs([Attr("address","0x6A8")]), Phis([]), Defs([Def(Tid(894, "%0000037e"), - Attrs([Attr("address","0x6A8"), Attr("insn","adrp x1, #65536")]), - Var("R1",Imm(64)), Int(65536,64)), Def(Tid(901, "%00000385"), - Attrs([Attr("address","0x6AC"), Attr("insn","ldr x1, [x1, #0xfd8]")]), - Var("R1",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R1",Imm(64)),Int(4056,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(906, "%0000038a"), Attrs([Attr("address","0x6B0"), -Attr("insn","cbz x1, #0xc")]), EQ(Var("R1",Imm(64)),Int(0,64)), -Direct(Tid(638, "%0000027e"))), Goto(Tid(1_508, "%000005e4"), Attrs([]), - Int(1,1), Direct(Tid(910, "%0000038e")))])), Blk(Tid(638, "%0000027e"), - Attrs([Attr("address","0x6BC")]), Phis([]), Defs([]), -Jmps([Call(Tid(646, "%00000286"), Attrs([Attr("address","0x6BC"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))])), -Blk(Tid(910, "%0000038e"), Attrs([Attr("address","0x6B4")]), Phis([]), -Defs([Def(Tid(914, "%00000392"), Attrs([Attr("address","0x6B4"), -Attr("insn","mov x16, x1")]), Var("R16",Imm(64)), Var("R1",Imm(64)))]), -Jmps([Call(Tid(919, "%00000397"), Attrs([Attr("address","0x6B8"), -Attr("insn","br x16")]), Int(1,1), (Indirect(Var("R16",Imm(64))),))]))])), -Sub(Tid(1_478, "@frame_dummy"), Attrs([Attr("c.proto","signed (*)(void)"), -Attr("address","0x750")]), "frame_dummy", Args([Arg(Tid(1_524, "%000005f4"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("frame_dummy_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(798, "@frame_dummy"), - Attrs([Attr("address","0x750")]), Phis([]), Defs([]), -Jmps([Call(Tid(800, "%00000320"), Attrs([Attr("address","0x750"), -Attr("insn","b #-0x90")]), Int(1,1), -(Direct(Tid(1_480, "@register_tm_clones")),))]))])), Sub(Tid(1_479, "@main"), - Attrs([Attr("c.proto","signed (*)(signed argc, const char** argv)"), -Attr("address","0x600"), Attr("stub","()")]), "main", - Args([Arg(Tid(1_525, "%000005f5"), Attrs([Attr("c.layout","[signed : 32]"), -Attr("c.data","Top:u32"), Attr("c.type","signed")]), - Var("main_argc",Imm(32)), LOW(32,Var("R0",Imm(64))), In()), -Arg(Tid(1_526, "%000005f6"), Attrs([Attr("c.layout","**[char : 8]"), -Attr("c.data","Top:u8 ptr ptr"), Attr("c.type"," const char**")]), - Var("main_argv",Imm(64)), Var("R1",Imm(64)), Both()), -Arg(Tid(1_527, "%000005f7"), Attrs([Attr("c.layout","[signed : 32]"), -Attr("c.data","Top:u32"), Attr("c.type","signed")]), - Var("main_result",Imm(32)), LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(424, "@main"), Attrs([Attr("address","0x600")]), Phis([]), -Defs([Def(Tid(427, "%000001ab"), Attrs([Attr("address","0x600"), -Attr("insn","adrp x2, #69632")]), Var("R2",Imm(64)), Int(69632,64)), -Def(Tid(432, "%000001b0"), Attrs([Attr("address","0x604"), -Attr("insn","mov w0, #0x0")]), Var("R0",Imm(64)), Int(0,64)), -Def(Tid(439, "%000001b7"), Attrs([Attr("address","0x608"), -Attr("insn","ldr w1, [x2, #0x14]")]), Var("R1",Imm(64)), -UNSIGNED(64,Load(Var("mem",Mem(64,8)),PLUS(Var("R2",Imm(64)),Int(20,64)),LittleEndian(),32))), -Def(Tid(445, "%000001bd"), Attrs([Attr("address","0x60C"), -Attr("insn","add w1, w1, #0x1")]), Var("R1",Imm(64)), -UNSIGNED(64,PLUS(Extract(31,0,Var("R1",Imm(64))),Int(1,32)))), -Def(Tid(453, "%000001c5"), Attrs([Attr("address","0x610"), -Attr("insn","str w1, [x2, #0x14]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R2",Imm(64)),Int(20,64)),Extract(31,0,Var("R1",Imm(64))),LittleEndian(),32))]), -Jmps([Call(Tid(458, "%000001ca"), Attrs([Attr("address","0x614"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))]))])), -Sub(Tid(1_480, "@register_tm_clones"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x6C0")]), - "register_tm_clones", Args([Arg(Tid(1_528, "%000005f8"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("register_tm_clones_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(648, "@register_tm_clones"), Attrs([Attr("address","0x6C0")]), - Phis([]), Defs([Def(Tid(651, "%0000028b"), Attrs([Attr("address","0x6C0"), -Attr("insn","adrp x0, #69632")]), Var("R0",Imm(64)), Int(69632,64)), -Def(Tid(657, "%00000291"), Attrs([Attr("address","0x6C4"), -Attr("insn","add x0, x0, #0x10")]), Var("R0",Imm(64)), -PLUS(Var("R0",Imm(64)),Int(16,64))), Def(Tid(662, "%00000296"), - Attrs([Attr("address","0x6C8"), Attr("insn","adrp x1, #69632")]), - Var("R1",Imm(64)), Int(69632,64)), Def(Tid(668, "%0000029c"), - Attrs([Attr("address","0x6CC"), Attr("insn","add x1, x1, #0x10")]), - Var("R1",Imm(64)), PLUS(Var("R1",Imm(64)),Int(16,64))), -Def(Tid(675, "%000002a3"), Attrs([Attr("address","0x6D0"), -Attr("insn","sub x1, x1, x0")]), Var("R1",Imm(64)), -PLUS(PLUS(Var("R1",Imm(64)),NOT(Var("R0",Imm(64)))),Int(1,64))), -Def(Tid(681, "%000002a9"), Attrs([Attr("address","0x6D4"), -Attr("insn","lsr x2, x1, #63")]), Var("R2",Imm(64)), -Concat(Int(0,63),Extract(63,63,Var("R1",Imm(64))))), -Def(Tid(688, "%000002b0"), Attrs([Attr("address","0x6D8"), -Attr("insn","add x1, x2, x1, asr #3")]), Var("R1",Imm(64)), -PLUS(Var("R2",Imm(64)),ARSHIFT(Var("R1",Imm(64)),Int(3,3)))), -Def(Tid(694, "%000002b6"), Attrs([Attr("address","0x6DC"), -Attr("insn","asr x1, x1, #1")]), Var("R1",Imm(64)), -SIGNED(64,Extract(63,1,Var("R1",Imm(64)))))]), -Jmps([Goto(Tid(700, "%000002bc"), Attrs([Attr("address","0x6E0"), -Attr("insn","cbz x1, #0x18")]), EQ(Var("R1",Imm(64)),Int(0,64)), -Direct(Tid(698, "%000002ba"))), Goto(Tid(1_509, "%000005e5"), Attrs([]), - Int(1,1), Direct(Tid(861, "%0000035d")))])), Blk(Tid(861, "%0000035d"), - Attrs([Attr("address","0x6E4")]), Phis([]), Defs([Def(Tid(864, "%00000360"), - Attrs([Attr("address","0x6E4"), Attr("insn","adrp x2, #65536")]), - Var("R2",Imm(64)), Int(65536,64)), Def(Tid(871, "%00000367"), - Attrs([Attr("address","0x6E8"), Attr("insn","ldr x2, [x2, #0xff8]")]), - Var("R2",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R2",Imm(64)),Int(4088,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(876, "%0000036c"), Attrs([Attr("address","0x6EC"), -Attr("insn","cbz x2, #0xc")]), EQ(Var("R2",Imm(64)),Int(0,64)), -Direct(Tid(698, "%000002ba"))), Goto(Tid(1_510, "%000005e6"), Attrs([]), - Int(1,1), Direct(Tid(880, "%00000370")))])), Blk(Tid(698, "%000002ba"), - Attrs([Attr("address","0x6F8")]), Phis([]), Defs([]), -Jmps([Call(Tid(706, "%000002c2"), Attrs([Attr("address","0x6F8"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))])), -Blk(Tid(880, "%00000370"), Attrs([Attr("address","0x6F0")]), Phis([]), -Defs([Def(Tid(884, "%00000374"), Attrs([Attr("address","0x6F0"), -Attr("insn","mov x16, x2")]), Var("R16",Imm(64)), Var("R2",Imm(64)))]), -Jmps([Call(Tid(889, "%00000379"), Attrs([Attr("address","0x6F4"), -Attr("insn","br x16")]), Int(1,1), -(Indirect(Var("R16",Imm(64))),))]))]))]))) \ No newline at end of file diff --git a/src/test/correct/basic_assign_increment/gcc_O2/basic_assign_increment.bir b/src/test/correct/basic_assign_increment/gcc_O2/basic_assign_increment.bir deleted file mode 100644 index 1046cff7d..000000000 --- a/src/test/correct/basic_assign_increment/gcc_O2/basic_assign_increment.bir +++ /dev/null @@ -1,228 +0,0 @@ -000005e7: program -000005b5: sub __cxa_finalize(__cxa_finalize_result) -000005e8: __cxa_finalize_result :: out u32 = low:32[R0] - -00000359: -00000451: R16 := 0x10000 -00000458: R17 := mem[R16 + 0xFB8, el]:u64 -0000045e: R16 := R16 + 0xFB8 -00000463: call R17 with noreturn - -000005b6: sub __do_global_dtors_aux(__do_global_dtors_aux_result) -000005e9: __do_global_dtors_aux_result :: out u32 = low:32[R0] - -000002c6: -000002ca: #3 := R31 - 0x20 -000002d0: mem := mem with [#3, el]:u64 <- R29 -000002d6: mem := mem with [#3 + 8, el]:u64 <- R30 -000002da: R31 := #3 -000002e0: R29 := R31 -000002e8: mem := mem with [R31 + 0x10, el]:u64 <- R19 -000002ed: R19 := 0x11000 -000002f4: R0 := pad:64[mem[R19 + 0x10]] -000002fb: when 31:0[R0] <> 0 goto %000002f9 -000005dd: goto %00000322 - -00000322: -00000325: R0 := 0x10000 -0000032c: R0 := mem[R0 + 0xFE0, el]:u64 -00000332: when R0 = 0 goto %00000330 -000005de: goto %00000349 - -00000349: -0000034c: R0 := 0x11000 -00000353: R0 := mem[R0 + 8, el]:u64 -00000358: R30 := 0x730 -0000035b: call @__cxa_finalize with return %00000330 - -00000330: -00000338: R30 := 0x734 -0000033a: call @deregister_tm_clones with return %0000033c - -0000033c: -0000033f: R0 := 1 -00000347: mem := mem with [R19 + 0x10] <- 7:0[R0] -000005df: goto %000002f9 - -000002f9: -00000303: R19 := mem[R31 + 0x10, el]:u64 -0000030a: R29 := mem[R31, el]:u64 -0000030f: R30 := mem[R31 + 8, el]:u64 -00000313: R31 := R31 + 0x20 -00000318: call R30 with noreturn - -000005ba: sub __libc_start_main(__libc_start_main_main, __libc_start_main_arg2, __libc_start_main_arg3, __libc_start_main_auxv, __libc_start_main_result) -000005ea: __libc_start_main_main :: in u64 = R0 -000005eb: __libc_start_main_arg2 :: in u32 = low:32[R1] -000005ec: __libc_start_main_arg3 :: in out u64 = R2 -000005ed: __libc_start_main_auxv :: in out u64 = R3 -000005ee: __libc_start_main_result :: out u32 = low:32[R0] - -0000021f: -0000043b: R16 := 0x10000 -00000442: R17 := mem[R16 + 0xFB0, el]:u64 -00000448: R16 := R16 + 0xFB0 -0000044d: call R17 with noreturn - -000005bb: sub _fini(_fini_result) -000005ef: _fini_result :: out u32 = low:32[R0] - -0000001f: -00000025: #0 := R31 - 0x10 -0000002b: mem := mem with [#0, el]:u64 <- R29 -00000031: mem := mem with [#0 + 8, el]:u64 <- R30 -00000035: R31 := #0 -0000003b: R29 := R31 -00000042: R29 := mem[R31, el]:u64 -00000047: R30 := mem[R31 + 8, el]:u64 -0000004b: R31 := R31 + 0x10 -00000050: call R30 with noreturn - -000005bc: sub _init(_init_result) -000005f0: _init_result :: out u32 = low:32[R0] - -00000507: -0000050d: #5 := R31 - 0x10 -00000513: mem := mem with [#5, el]:u64 <- R29 -00000519: mem := mem with [#5 + 8, el]:u64 <- R30 -0000051d: R31 := #5 -00000523: R29 := R31 -00000528: R30 := 0x590 -0000052a: call @call_weak_fn with return %0000052c - -0000052c: -00000531: R29 := mem[R31, el]:u64 -00000536: R30 := mem[R31 + 8, el]:u64 -0000053a: R31 := R31 + 0x10 -0000053f: call R30 with noreturn - -000005bd: sub _start(_start_result) -000005f1: _start_result :: out u32 = low:32[R0] - -000001e0: -000001e5: R29 := 0 -000001ea: R30 := 0 -000001f0: R5 := R0 -000001f7: R1 := mem[R31, el]:u64 -000001fd: R2 := R31 + 8 -00000203: R6 := R31 -00000208: R0 := 0x10000 -0000020f: R0 := mem[R0 + 0xFF0, el]:u64 -00000214: R3 := 0 -00000219: R4 := 0 -0000021e: R30 := 0x670 -00000221: call @__libc_start_main with return %00000223 - -00000223: -00000226: R30 := 0x674 -00000229: call @abort with return %000005e0 - -000005e0: -000005e1: call @call_weak_fn with noreturn - -000005c0: sub abort() - - -00000227: -0000047d: R16 := 0x10000 -00000484: R17 := mem[R16 + 0xFC8, el]:u64 -0000048a: R16 := R16 + 0xFC8 -0000048f: call R17 with noreturn - -000005c1: sub call_weak_fn(call_weak_fn_result) -000005f2: call_weak_fn_result :: out u32 = low:32[R0] - -0000022b: -0000022e: R0 := 0x10000 -00000235: R0 := mem[R0 + 0xFE8, el]:u64 -0000023b: when R0 = 0 goto %00000239 -000005e2: goto %00000399 - -00000239: -00000241: call R30 with noreturn - -00000399: -0000039c: goto @__gmon_start__ - -0000039a: -00000467: R16 := 0x10000 -0000046e: R17 := mem[R16 + 0xFC0, el]:u64 -00000474: R16 := R16 + 0xFC0 -00000479: call R17 with noreturn - -000005c3: sub deregister_tm_clones(deregister_tm_clones_result) -000005f3: deregister_tm_clones_result :: out u32 = low:32[R0] - -00000247: -0000024a: R0 := 0x11000 -00000250: R0 := R0 + 0x10 -00000255: R1 := 0x11000 -0000025b: R1 := R1 + 0x10 -00000261: #1 := ~R0 -00000266: #2 := R1 + ~R0 -0000026c: VF := extend:65[#2 + 1] <> extend:65[R1] + extend:65[#1] + 1 -00000272: CF := pad:65[#2 + 1] <> pad:65[R1] + pad:65[#1] + 1 -00000276: ZF := #2 + 1 = 0 -0000027a: NF := 63:63[#2 + 1] -00000280: when ZF goto %0000027e -000005e3: goto %0000037b - -0000037b: -0000037e: R1 := 0x10000 -00000385: R1 := mem[R1 + 0xFD8, el]:u64 -0000038a: when R1 = 0 goto %0000027e -000005e4: goto %0000038e - -0000027e: -00000286: call R30 with noreturn - -0000038e: -00000392: R16 := R1 -00000397: call R16 with noreturn - -000005c6: sub frame_dummy(frame_dummy_result) -000005f4: frame_dummy_result :: out u32 = low:32[R0] - -0000031e: -00000320: call @register_tm_clones with noreturn - -000005c7: sub main(main_argc, main_argv, main_result) -000005f5: main_argc :: in u32 = low:32[R0] -000005f6: main_argv :: in out u64 = R1 -000005f7: main_result :: out u32 = low:32[R0] - -000001a8: -000001ab: R2 := 0x11000 -000001b0: R0 := 0 -000001b7: R1 := pad:64[mem[R2 + 0x14, el]:u32] -000001bd: R1 := pad:64[31:0[R1] + 1] -000001c5: mem := mem with [R2 + 0x14, el]:u32 <- 31:0[R1] -000001ca: call R30 with noreturn - -000005c8: sub register_tm_clones(register_tm_clones_result) -000005f8: register_tm_clones_result :: out u32 = low:32[R0] - -00000288: -0000028b: R0 := 0x11000 -00000291: R0 := R0 + 0x10 -00000296: R1 := 0x11000 -0000029c: R1 := R1 + 0x10 -000002a3: R1 := R1 + ~R0 + 1 -000002a9: R2 := 0.63:63[R1] -000002b0: R1 := R2 + (R1 ~>> 3) -000002b6: R1 := extend:64[63:1[R1]] -000002bc: when R1 = 0 goto %000002ba -000005e5: goto %0000035d - -0000035d: -00000360: R2 := 0x10000 -00000367: R2 := mem[R2 + 0xFF8, el]:u64 -0000036c: when R2 = 0 goto %000002ba -000005e6: goto %00000370 - -000002ba: -000002c2: call R30 with noreturn - -00000370: -00000374: R16 := R2 -00000379: call R16 with noreturn diff --git a/src/test/correct/basic_assign_increment/gcc_O2/basic_assign_increment.expected b/src/test/correct/basic_assign_increment/gcc_O2/basic_assign_increment.expected index fbac4e418..158fb3140 100644 --- a/src/test/correct/basic_assign_increment/gcc_O2/basic_assign_increment.expected +++ b/src/test/correct/basic_assign_increment/gcc_O2/basic_assign_increment.expected @@ -70,7 +70,7 @@ implementation {:extern} guarantee_reflexive() assert (((memory_load32_le(mem, $x_addr) == memory_load32_le(mem, $x_addr)) || (memory_load32_le(mem, $x_addr) == 1bv32)) || (memory_load32_le(mem, $x_addr) == 6bv32)); } -procedure main_1536(); +procedure main(); modifies Gamma_R0, Gamma_R1, Gamma_R2, Gamma_mem, R0, R1, R2, mem; requires (memory_load32_le(mem, $x_addr) == 0bv32); free requires (memory_load64_le(mem, 69632bv64) == 0bv64); @@ -87,28 +87,28 @@ procedure main_1536(); free ensures (memory_load64_le(mem, 69616bv64) == 1536bv64); free ensures (memory_load64_le(mem, 69640bv64) == 69640bv64); -implementation main_1536() +implementation main() { - var Gamma_load18: bool; - var load18: bv32; + var $load$18: bv32; + var Gamma_$load$18: bool; var x_old: bv32; lmain: assume {:captureState "lmain"} true; R2, Gamma_R2 := 69632bv64, true; R0, Gamma_R0 := 0bv64, true; call rely(); - load18, Gamma_load18 := memory_load32_le(mem, bvadd64(R2, 20bv64)), (gamma_load32(Gamma_mem, bvadd64(R2, 20bv64)) || L(mem, bvadd64(R2, 20bv64))); - R1, Gamma_R1 := zero_extend32_32(load18), Gamma_load18; + $load$18, Gamma_$load$18 := memory_load32_le(mem, bvadd64(R2, 20bv64)), (gamma_load32(Gamma_mem, bvadd64(R2, 20bv64)) || L(mem, bvadd64(R2, 20bv64))); + R1, Gamma_R1 := zero_extend32_32($load$18), Gamma_$load$18; R1, Gamma_R1 := zero_extend32_32(bvadd32(R1[32:0], 1bv32)), Gamma_R1; call rely(); - x_old := memory_load32_le(mem, $x_addr); assert (L(mem, bvadd64(R2, 20bv64)) ==> Gamma_R1); + x_old := memory_load32_le(mem, $x_addr); mem, Gamma_mem := memory_store32_le(mem, bvadd64(R2, 20bv64), R1[32:0]), gamma_store32(Gamma_mem, bvadd64(R2, 20bv64), Gamma_R1); assert (((memory_load32_le(mem, $x_addr) == x_old) || (memory_load32_le(mem, $x_addr) == 1bv32)) || (memory_load32_le(mem, $x_addr) == 6bv32)); assume {:captureState "%000001c5"} true; - goto main_1536_basil_return; - main_1536_basil_return: - assume {:captureState "main_1536_basil_return"} true; + goto main_basil_return; + main_basil_return: + assume {:captureState "main_basil_return"} true; return; } diff --git a/src/test/correct/basic_assign_increment/gcc_O2/basic_assign_increment.gts b/src/test/correct/basic_assign_increment/gcc_O2/basic_assign_increment.gts deleted file mode 100644 index 6215709a7..000000000 Binary files a/src/test/correct/basic_assign_increment/gcc_O2/basic_assign_increment.gts and /dev/null differ diff --git a/src/test/correct/basic_assign_increment/gcc_O2/basic_assign_increment.md5sum b/src/test/correct/basic_assign_increment/gcc_O2/basic_assign_increment.md5sum new file mode 100644 index 000000000..ba7cfc823 --- /dev/null +++ b/src/test/correct/basic_assign_increment/gcc_O2/basic_assign_increment.md5sum @@ -0,0 +1,5 @@ +9d4663e5bcee42194c7450c207b0b21e correct/basic_assign_increment/gcc_O2/a.out +d06fd4115a2b280219d9a54d8940c6ad correct/basic_assign_increment/gcc_O2/basic_assign_increment.adt +1b93be41cdbc28d35c007c94bd65d541 correct/basic_assign_increment/gcc_O2/basic_assign_increment.bir +7f0fd5ab8f88873371cceed65eeb096c correct/basic_assign_increment/gcc_O2/basic_assign_increment.relf +42e728c007842487f4fa54a669766d7d correct/basic_assign_increment/gcc_O2/basic_assign_increment.gts diff --git a/src/test/correct/basic_assign_increment/gcc_O2/basic_assign_increment.relf b/src/test/correct/basic_assign_increment/gcc_O2/basic_assign_increment.relf deleted file mode 100644 index b9295d595..000000000 --- a/src/test/correct/basic_assign_increment/gcc_O2/basic_assign_increment.relf +++ /dev/null @@ -1,121 +0,0 @@ - -Relocation section '.rela.dyn' at offset 0x460 contains 8 entries: - Offset Info Type Symbol's Value Symbol's Name + Addend -0000000000010d98 0000000000000403 R_AARCH64_RELATIVE 750 -0000000000010da0 0000000000000403 R_AARCH64_RELATIVE 700 -0000000000010ff0 0000000000000403 R_AARCH64_RELATIVE 600 -0000000000011008 0000000000000403 R_AARCH64_RELATIVE 11008 -0000000000010fd8 0000000400000401 R_AARCH64_GLOB_DAT 0000000000000000 _ITM_deregisterTMCloneTable + 0 -0000000000010fe0 0000000500000401 R_AARCH64_GLOB_DAT 0000000000000000 __cxa_finalize@GLIBC_2.17 + 0 -0000000000010fe8 0000000600000401 R_AARCH64_GLOB_DAT 0000000000000000 __gmon_start__ + 0 -0000000000010ff8 0000000800000401 R_AARCH64_GLOB_DAT 0000000000000000 _ITM_registerTMCloneTable + 0 - -Relocation section '.rela.plt' at offset 0x520 contains 4 entries: - Offset Info Type Symbol's Value Symbol's Name + Addend -0000000000010fb0 0000000300000402 R_AARCH64_JUMP_SLOT 0000000000000000 __libc_start_main@GLIBC_2.34 + 0 -0000000000010fb8 0000000500000402 R_AARCH64_JUMP_SLOT 0000000000000000 __cxa_finalize@GLIBC_2.17 + 0 -0000000000010fc0 0000000600000402 R_AARCH64_JUMP_SLOT 0000000000000000 __gmon_start__ + 0 -0000000000010fc8 0000000700000402 R_AARCH64_JUMP_SLOT 0000000000000000 abort@GLIBC_2.17 + 0 - -Symbol table '.dynsym' contains 9 entries: - Num: Value Size Type Bind Vis Ndx Name - 0: 0000000000000000 0 NOTYPE LOCAL DEFAULT UND - 1: 0000000000000580 0 SECTION LOCAL DEFAULT 11 .init - 2: 0000000000011000 0 SECTION LOCAL DEFAULT 22 .data - 3: 0000000000000000 0 FUNC GLOBAL DEFAULT UND __libc_start_main@GLIBC_2.34 (2) - 4: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_deregisterTMCloneTable - 5: 0000000000000000 0 FUNC WEAK DEFAULT UND __cxa_finalize@GLIBC_2.17 (3) - 6: 0000000000000000 0 NOTYPE WEAK DEFAULT UND __gmon_start__ - 7: 0000000000000000 0 FUNC GLOBAL DEFAULT UND abort@GLIBC_2.17 (3) - 8: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_registerTMCloneTable - -Symbol table '.symtab' contains 88 entries: - Num: Value Size Type Bind Vis Ndx Name - 0: 0000000000000000 0 NOTYPE LOCAL DEFAULT UND - 1: 0000000000000238 0 SECTION LOCAL DEFAULT 1 .interp - 2: 0000000000000254 0 SECTION LOCAL DEFAULT 2 .note.gnu.build-id - 3: 0000000000000278 0 SECTION LOCAL DEFAULT 3 .note.ABI-tag - 4: 0000000000000298 0 SECTION LOCAL DEFAULT 4 .gnu.hash - 5: 00000000000002b8 0 SECTION LOCAL DEFAULT 5 .dynsym - 6: 0000000000000390 0 SECTION LOCAL DEFAULT 6 .dynstr - 7: 000000000000041e 0 SECTION LOCAL DEFAULT 7 .gnu.version - 8: 0000000000000430 0 SECTION LOCAL DEFAULT 8 .gnu.version_r - 9: 0000000000000460 0 SECTION LOCAL DEFAULT 9 .rela.dyn - 10: 0000000000000520 0 SECTION LOCAL DEFAULT 10 .rela.plt - 11: 0000000000000580 0 SECTION LOCAL DEFAULT 11 .init - 12: 00000000000005a0 0 SECTION LOCAL DEFAULT 12 .plt - 13: 0000000000000600 0 SECTION LOCAL DEFAULT 13 .text - 14: 0000000000000754 0 SECTION LOCAL DEFAULT 14 .fini - 15: 0000000000000768 0 SECTION LOCAL DEFAULT 15 .rodata - 16: 000000000000076c 0 SECTION LOCAL DEFAULT 16 .eh_frame_hdr - 17: 00000000000007a8 0 SECTION LOCAL DEFAULT 17 .eh_frame - 18: 0000000000010d98 0 SECTION LOCAL DEFAULT 18 .init_array - 19: 0000000000010da0 0 SECTION LOCAL DEFAULT 19 .fini_array - 20: 0000000000010da8 0 SECTION LOCAL DEFAULT 20 .dynamic - 21: 0000000000010f98 0 SECTION LOCAL DEFAULT 21 .got - 22: 0000000000011000 0 SECTION LOCAL DEFAULT 22 .data - 23: 0000000000011010 0 SECTION LOCAL DEFAULT 23 .bss - 24: 0000000000000000 0 SECTION LOCAL DEFAULT 24 .comment - 25: 0000000000000000 0 FILE LOCAL DEFAULT ABS Scrt1.o - 26: 0000000000000278 0 NOTYPE LOCAL DEFAULT 3 $d - 27: 0000000000000278 32 OBJECT LOCAL DEFAULT 3 __abi_tag - 28: 0000000000000640 0 NOTYPE LOCAL DEFAULT 13 $x - 29: 00000000000007bc 0 NOTYPE LOCAL DEFAULT 17 $d - 30: 0000000000000768 0 NOTYPE LOCAL DEFAULT 15 $d - 31: 0000000000000000 0 FILE LOCAL DEFAULT ABS crti.o - 32: 0000000000000674 0 NOTYPE LOCAL DEFAULT 13 $x - 33: 0000000000000674 20 FUNC LOCAL DEFAULT 13 call_weak_fn - 34: 0000000000000580 0 NOTYPE LOCAL DEFAULT 11 $x - 35: 0000000000000754 0 NOTYPE LOCAL DEFAULT 14 $x - 36: 0000000000000000 0 FILE LOCAL DEFAULT ABS crtn.o - 37: 0000000000000590 0 NOTYPE LOCAL DEFAULT 11 $x - 38: 0000000000000760 0 NOTYPE LOCAL DEFAULT 14 $x - 39: 0000000000000000 0 FILE LOCAL DEFAULT ABS basic_assign_increment.c - 40: 0000000000000600 0 NOTYPE LOCAL DEFAULT 13 $x - 41: 0000000000011014 0 NOTYPE LOCAL DEFAULT 23 $d - 42: 0000000000000830 0 NOTYPE LOCAL DEFAULT 17 $d - 43: 0000000000000000 0 FILE LOCAL DEFAULT ABS crtstuff.c - 44: 0000000000000690 0 NOTYPE LOCAL DEFAULT 13 $x - 45: 0000000000000690 0 FUNC LOCAL DEFAULT 13 deregister_tm_clones - 46: 00000000000006c0 0 FUNC LOCAL DEFAULT 13 register_tm_clones - 47: 0000000000011008 0 NOTYPE LOCAL DEFAULT 22 $d - 48: 0000000000000700 0 FUNC LOCAL DEFAULT 13 __do_global_dtors_aux - 49: 0000000000011010 1 OBJECT LOCAL DEFAULT 23 completed.0 - 50: 0000000000010da0 0 NOTYPE LOCAL DEFAULT 19 $d - 51: 0000000000010da0 0 OBJECT LOCAL DEFAULT 19 __do_global_dtors_aux_fini_array_entry - 52: 0000000000000750 0 FUNC LOCAL DEFAULT 13 frame_dummy - 53: 0000000000010d98 0 NOTYPE LOCAL DEFAULT 18 $d - 54: 0000000000010d98 0 OBJECT LOCAL DEFAULT 18 __frame_dummy_init_array_entry - 55: 00000000000007d0 0 NOTYPE LOCAL DEFAULT 17 $d - 56: 0000000000011010 0 NOTYPE LOCAL DEFAULT 23 $d - 57: 0000000000000000 0 FILE LOCAL DEFAULT ABS crtstuff.c - 58: 0000000000000844 0 NOTYPE LOCAL DEFAULT 17 $d - 59: 0000000000000844 0 OBJECT LOCAL DEFAULT 17 __FRAME_END__ - 60: 0000000000000000 0 FILE LOCAL DEFAULT ABS - 61: 0000000000010da8 0 OBJECT LOCAL DEFAULT ABS _DYNAMIC - 62: 000000000000076c 0 NOTYPE LOCAL DEFAULT 16 __GNU_EH_FRAME_HDR - 63: 0000000000010fd0 0 OBJECT LOCAL DEFAULT ABS _GLOBAL_OFFSET_TABLE_ - 64: 00000000000005a0 0 NOTYPE LOCAL DEFAULT 12 $x - 65: 0000000000000000 0 FUNC GLOBAL DEFAULT UND __libc_start_main@GLIBC_2.34 - 66: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_deregisterTMCloneTable - 67: 0000000000011000 0 NOTYPE WEAK DEFAULT 22 data_start - 68: 0000000000011010 0 NOTYPE GLOBAL DEFAULT 23 __bss_start__ - 69: 0000000000000000 0 FUNC WEAK DEFAULT UND __cxa_finalize@GLIBC_2.17 - 70: 0000000000011018 0 NOTYPE GLOBAL DEFAULT 23 _bss_end__ - 71: 0000000000011010 0 NOTYPE GLOBAL DEFAULT 22 _edata - 72: 0000000000011014 4 OBJECT GLOBAL DEFAULT 23 x - 73: 0000000000000754 0 FUNC GLOBAL HIDDEN 14 _fini - 74: 0000000000011018 0 NOTYPE GLOBAL DEFAULT 23 __bss_end__ - 75: 0000000000011000 0 NOTYPE GLOBAL DEFAULT 22 __data_start - 76: 0000000000000000 0 NOTYPE WEAK DEFAULT UND __gmon_start__ - 77: 0000000000011008 0 OBJECT GLOBAL HIDDEN 22 __dso_handle - 78: 0000000000000000 0 FUNC GLOBAL DEFAULT UND abort@GLIBC_2.17 - 79: 0000000000000768 4 OBJECT GLOBAL DEFAULT 15 _IO_stdin_used - 80: 0000000000011018 0 NOTYPE GLOBAL DEFAULT 23 _end - 81: 0000000000000640 52 FUNC GLOBAL DEFAULT 13 _start - 82: 0000000000011018 0 NOTYPE GLOBAL DEFAULT 23 __end__ - 83: 0000000000011010 0 NOTYPE GLOBAL DEFAULT 23 __bss_start - 84: 0000000000000600 24 FUNC GLOBAL DEFAULT 13 main - 85: 0000000000011010 0 OBJECT GLOBAL HIDDEN 22 __TMC_END__ - 86: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_registerTMCloneTable - 87: 0000000000000580 0 FUNC GLOBAL HIDDEN 11 _init diff --git a/src/test/correct/basic_assign_increment/gcc_O2/basic_assign_increment_gtirb.expected b/src/test/correct/basic_assign_increment/gcc_O2/basic_assign_increment_gtirb.expected index 2dda22280..7bd8a0ec1 100644 --- a/src/test/correct/basic_assign_increment/gcc_O2/basic_assign_increment_gtirb.expected +++ b/src/test/correct/basic_assign_increment/gcc_O2/basic_assign_increment_gtirb.expected @@ -70,7 +70,7 @@ implementation {:extern} guarantee_reflexive() assert (((memory_load32_le(mem, $x_addr) == memory_load32_le(mem, $x_addr)) || (memory_load32_le(mem, $x_addr) == 1bv32)) || (memory_load32_le(mem, $x_addr) == 6bv32)); } -procedure main_1536(); +procedure main(); modifies Gamma_R0, Gamma_R1, Gamma_R2, Gamma_mem, R0, R1, R2, mem; requires (memory_load32_le(mem, $x_addr) == 0bv32); free requires (memory_load64_le(mem, 69632bv64) == 0bv64); @@ -87,28 +87,28 @@ procedure main_1536(); free ensures (memory_load64_le(mem, 69616bv64) == 1536bv64); free ensures (memory_load64_le(mem, 69640bv64) == 69640bv64); -implementation main_1536() +implementation main() { - var Gamma_load8: bool; - var load8: bv32; + var $load8: bv32; + var Gamma_$load8: bool; var x_old: bv32; - main_1536__0__xDQgkCAvTRyzcNBtjizdZg: - assume {:captureState "main_1536__0__xDQgkCAvTRyzcNBtjizdZg"} true; + $main$__0__$xDQgkCAvTRyzcNBtjizdZg: + assume {:captureState "$main$__0__$xDQgkCAvTRyzcNBtjizdZg"} true; R2, Gamma_R2 := 69632bv64, true; R0, Gamma_R0 := 0bv64, true; call rely(); - load8, Gamma_load8 := memory_load32_le(mem, bvadd64(R2, 20bv64)), (gamma_load32(Gamma_mem, bvadd64(R2, 20bv64)) || L(mem, bvadd64(R2, 20bv64))); - R1, Gamma_R1 := zero_extend32_32(load8), Gamma_load8; + $load8, Gamma_$load8 := memory_load32_le(mem, bvadd64(R2, 20bv64)), (gamma_load32(Gamma_mem, bvadd64(R2, 20bv64)) || L(mem, bvadd64(R2, 20bv64))); + R1, Gamma_R1 := zero_extend32_32($load8), Gamma_$load8; R1, Gamma_R1 := zero_extend32_32(bvadd32(R1[32:0], 1bv32)), Gamma_R1; call rely(); - x_old := memory_load32_le(mem, $x_addr); assert (L(mem, bvadd64(R2, 20bv64)) ==> Gamma_R1); + x_old := memory_load32_le(mem, $x_addr); mem, Gamma_mem := memory_store32_le(mem, bvadd64(R2, 20bv64), R1[32:0]), gamma_store32(Gamma_mem, bvadd64(R2, 20bv64), Gamma_R1); assert (((memory_load32_le(mem, $x_addr) == x_old) || (memory_load32_le(mem, $x_addr) == 1bv32)) || (memory_load32_le(mem, $x_addr) == 6bv32)); - assume {:captureState "1552_0"} true; - goto main_1536_basil_return; - main_1536_basil_return: - assume {:captureState "main_1536_basil_return"} true; + assume {:captureState "1552$0"} true; + goto main_basil_return; + main_basil_return: + assume {:captureState "main_basil_return"} true; return; } diff --git a/src/test/correct/basic_assign_increment/gcc_pic/basic_assign_increment.adt b/src/test/correct/basic_assign_increment/gcc_pic/basic_assign_increment.adt deleted file mode 100644 index 872ccbb85..000000000 --- a/src/test/correct/basic_assign_increment/gcc_pic/basic_assign_increment.adt +++ /dev/null @@ -1,504 +0,0 @@ -Project(Attrs([Attr("filename","\"gcc_pic/basic_assign_increment.out\""), -Attr("image-specification","(declare abi (name str))\n(declare arch (name str))\n(declare base-address (addr int))\n(declare bias (off int))\n(declare bits (size int))\n(declare code-region (addr int) (size int) (off int))\n(declare code-start (addr int))\n(declare entry-point (addr int))\n(declare external-reference (addr int) (name str))\n(declare format (name str))\n(declare is-executable (flag bool))\n(declare is-little-endian (flag bool))\n(declare llvm:base-address (addr int))\n(declare llvm:code-entry (name str) (off int) (size int))\n(declare llvm:coff-import-library (name str))\n(declare llvm:coff-virtual-section-header (name str) (addr int) (size int))\n(declare llvm:elf-program-header (name str) (off int) (size int))\n(declare llvm:elf-program-header-flags (name str) (ld bool) (r bool) \n (w bool) (x bool))\n(declare llvm:elf-virtual-program-header (name str) (addr int) (size int))\n(declare llvm:entry-point (addr int))\n(declare llvm:macho-symbol (name str) (value int))\n(declare llvm:name-reference (at int) (name str))\n(declare llvm:relocation (at int) (addr int))\n(declare llvm:section-entry (name str) (addr int) (size int) (off int))\n(declare llvm:section-flags (name str) (r bool) (w bool) (x bool))\n(declare llvm:segment-command (name str) (off int) (size int))\n(declare llvm:segment-command-flags (name str) (r bool) (w bool) (x bool))\n(declare llvm:symbol-entry (name str) (addr int) (size int) (off int)\n (value int))\n(declare llvm:virtual-segment-command (name str) (addr int) (size int))\n(declare mapped (addr int) (size int) (off int))\n(declare named-region (addr int) (size int) (name str))\n(declare named-symbol (addr int) (name str))\n(declare require (name str))\n(declare section (addr int) (size int))\n(declare segment (addr int) (size int) (r bool) (w bool) (x bool))\n(declare subarch (name str))\n(declare symbol-chunk (addr int) (size int) (root int))\n(declare symbol-value (addr int) (value int))\n(declare system (name str))\n(declare vendor (name str))\n\n(abi unknown)\n(arch aarch64)\n(base-address 0)\n(bias 0)\n(bits 64)\n(code-region 1912 20 1912)\n(code-region 1600 312 1600)\n(code-region 1456 96 1456)\n(code-region 1432 24 1432)\n(code-start 1652)\n(code-start 1600)\n(code-start 1876)\n(entry-point 1600)\n(external-reference 69584 _ITM_deregisterTMCloneTable)\n(external-reference 69592 __cxa_finalize)\n(external-reference 69608 __gmon_start__)\n(external-reference 69624 _ITM_registerTMCloneTable)\n(external-reference 69544 __libc_start_main)\n(external-reference 69552 __cxa_finalize)\n(external-reference 69560 __gmon_start__)\n(external-reference 69568 abort)\n(format elf)\n(is-executable true)\n(is-little-endian true)\n(llvm:base-address 0)\n(llvm:code-entry abort 0 0)\n(llvm:code-entry __cxa_finalize 0 0)\n(llvm:code-entry __libc_start_main 0 0)\n(llvm:code-entry _init 1432 0)\n(llvm:code-entry main 1876 36)\n(llvm:code-entry _start 1600 52)\n(llvm:code-entry abort@GLIBC_2.17 0 0)\n(llvm:code-entry _fini 1912 0)\n(llvm:code-entry __cxa_finalize@GLIBC_2.17 0 0)\n(llvm:code-entry __libc_start_main@GLIBC_2.34 0 0)\n(llvm:code-entry frame_dummy 1872 0)\n(llvm:code-entry __do_global_dtors_aux 1792 0)\n(llvm:code-entry register_tm_clones 1728 0)\n(llvm:code-entry deregister_tm_clones 1680 0)\n(llvm:code-entry call_weak_fn 1652 20)\n(llvm:code-entry .fini 1912 20)\n(llvm:code-entry .text 1600 312)\n(llvm:code-entry .plt 1456 96)\n(llvm:code-entry .init 1432 24)\n(llvm:elf-program-header 08 3472 624)\n(llvm:elf-program-header 07 0 0)\n(llvm:elf-program-header 06 1936 60)\n(llvm:elf-program-header 05 596 68)\n(llvm:elf-program-header 04 3488 496)\n(llvm:elf-program-header 03 3472 640)\n(llvm:elf-program-header 02 0 2160)\n(llvm:elf-program-header 01 568 27)\n(llvm:elf-program-header 00 64 504)\n(llvm:elf-program-header-flags 08 false true false false)\n(llvm:elf-program-header-flags 07 false true true false)\n(llvm:elf-program-header-flags 06 false true false false)\n(llvm:elf-program-header-flags 05 false true false false)\n(llvm:elf-program-header-flags 04 false true true false)\n(llvm:elf-program-header-flags 03 true true true false)\n(llvm:elf-program-header-flags 02 true true false true)\n(llvm:elf-program-header-flags 01 false true false false)\n(llvm:elf-program-header-flags 00 false true false false)\n(llvm:elf-virtual-program-header 08 69008 624)\n(llvm:elf-virtual-program-header 07 0 0)\n(llvm:elf-virtual-program-header 06 1936 60)\n(llvm:elf-virtual-program-header 05 596 68)\n(llvm:elf-virtual-program-header 04 69024 496)\n(llvm:elf-virtual-program-header 03 69008 648)\n(llvm:elf-virtual-program-header 02 0 2160)\n(llvm:elf-virtual-program-header 01 568 27)\n(llvm:elf-virtual-program-header 00 64 504)\n(llvm:entry-point 1600)\n(llvm:name-reference 69568 abort)\n(llvm:name-reference 69560 __gmon_start__)\n(llvm:name-reference 69552 __cxa_finalize)\n(llvm:name-reference 69544 __libc_start_main)\n(llvm:name-reference 69624 _ITM_registerTMCloneTable)\n(llvm:name-reference 69608 __gmon_start__)\n(llvm:name-reference 69592 __cxa_finalize)\n(llvm:name-reference 69584 _ITM_deregisterTMCloneTable)\n(llvm:section-entry .shstrtab 0 250 6830)\n(llvm:section-entry .strtab 0 558 6272)\n(llvm:section-entry .symtab 0 2112 4160)\n(llvm:section-entry .comment 0 43 4112)\n(llvm:section-entry .bss 69648 8 4112)\n(llvm:section-entry .data 69632 16 4096)\n(llvm:section-entry .got 69520 112 3984)\n(llvm:section-entry .dynamic 69024 496 3488)\n(llvm:section-entry .fini_array 69016 8 3480)\n(llvm:section-entry .init_array 69008 8 3472)\n(llvm:section-entry .eh_frame 2000 160 2000)\n(llvm:section-entry .eh_frame_hdr 1936 60 1936)\n(llvm:section-entry .rodata 1932 4 1932)\n(llvm:section-entry .fini 1912 20 1912)\n(llvm:section-entry .text 1600 312 1600)\n(llvm:section-entry .plt 1456 96 1456)\n(llvm:section-entry .init 1432 24 1432)\n(llvm:section-entry .rela.plt 1336 96 1336)\n(llvm:section-entry .rela.dyn 1120 216 1120)\n(llvm:section-entry .gnu.version_r 1072 48 1072)\n(llvm:section-entry .gnu.version 1054 18 1054)\n(llvm:section-entry .dynstr 912 141 912)\n(llvm:section-entry .dynsym 696 216 696)\n(llvm:section-entry .gnu.hash 664 28 664)\n(llvm:section-entry .note.ABI-tag 632 32 632)\n(llvm:section-entry .note.gnu.build-id 596 36 596)\n(llvm:section-entry .interp 568 27 568)\n(llvm:section-flags .shstrtab true false false)\n(llvm:section-flags .strtab true false false)\n(llvm:section-flags .symtab true false false)\n(llvm:section-flags .comment true false false)\n(llvm:section-flags .bss true true false)\n(llvm:section-flags .data true true false)\n(llvm:section-flags .got true true false)\n(llvm:section-flags .dynamic true true false)\n(llvm:section-flags .fini_array true true false)\n(llvm:section-flags .init_array true true false)\n(llvm:section-flags .eh_frame true false false)\n(llvm:section-flags .eh_frame_hdr true false false)\n(llvm:section-flags .rodata true false false)\n(llvm:section-flags .fini true false true)\n(llvm:section-flags .text true false true)\n(llvm:section-flags .plt true false true)\n(llvm:section-flags .init true false true)\n(llvm:section-flags .rela.plt true false false)\n(llvm:section-flags .rela.dyn true false false)\n(llvm:section-flags .gnu.version_r true false false)\n(llvm:section-flags .gnu.version true false false)\n(llvm:section-flags .dynstr true false false)\n(llvm:section-flags .dynsym true false false)\n(llvm:section-flags .gnu.hash true false false)\n(llvm:section-flags .note.ABI-tag true false false)\n(llvm:section-flags .note.gnu.build-id true false false)\n(llvm:section-flags .interp true false false)\n(llvm:symbol-entry abort 0 0 0 0)\n(llvm:symbol-entry __cxa_finalize 0 0 0 0)\n(llvm:symbol-entry __libc_start_main 0 0 0 0)\n(llvm:symbol-entry _init 1432 0 1432 1432)\n(llvm:symbol-entry main 1876 36 1876 1876)\n(llvm:symbol-entry _start 1600 52 1600 1600)\n(llvm:symbol-entry abort@GLIBC_2.17 0 0 0 0)\n(llvm:symbol-entry _fini 1912 0 1912 1912)\n(llvm:symbol-entry __cxa_finalize@GLIBC_2.17 0 0 0 0)\n(llvm:symbol-entry __libc_start_main@GLIBC_2.34 0 0 0 0)\n(llvm:symbol-entry frame_dummy 1872 0 1872 1872)\n(llvm:symbol-entry __do_global_dtors_aux 1792 0 1792 1792)\n(llvm:symbol-entry register_tm_clones 1728 0 1728 1728)\n(llvm:symbol-entry deregister_tm_clones 1680 0 1680 1680)\n(llvm:symbol-entry call_weak_fn 1652 20 1652 1652)\n(mapped 0 2160 0)\n(mapped 69008 640 3472)\n(named-region 0 2160 02)\n(named-region 69008 648 03)\n(named-region 568 27 .interp)\n(named-region 596 36 .note.gnu.build-id)\n(named-region 632 32 .note.ABI-tag)\n(named-region 664 28 .gnu.hash)\n(named-region 696 216 .dynsym)\n(named-region 912 141 .dynstr)\n(named-region 1054 18 .gnu.version)\n(named-region 1072 48 .gnu.version_r)\n(named-region 1120 216 .rela.dyn)\n(named-region 1336 96 .rela.plt)\n(named-region 1432 24 .init)\n(named-region 1456 96 .plt)\n(named-region 1600 312 .text)\n(named-region 1912 20 .fini)\n(named-region 1932 4 .rodata)\n(named-region 1936 60 .eh_frame_hdr)\n(named-region 2000 160 .eh_frame)\n(named-region 69008 8 .init_array)\n(named-region 69016 8 .fini_array)\n(named-region 69024 496 .dynamic)\n(named-region 69520 112 .got)\n(named-region 69632 16 .data)\n(named-region 69648 8 .bss)\n(named-region 0 43 .comment)\n(named-region 0 2112 .symtab)\n(named-region 0 558 .strtab)\n(named-region 0 250 .shstrtab)\n(named-symbol 1652 call_weak_fn)\n(named-symbol 1680 deregister_tm_clones)\n(named-symbol 1728 register_tm_clones)\n(named-symbol 1792 __do_global_dtors_aux)\n(named-symbol 1872 frame_dummy)\n(named-symbol 0 __libc_start_main@GLIBC_2.34)\n(named-symbol 0 __cxa_finalize@GLIBC_2.17)\n(named-symbol 1912 _fini)\n(named-symbol 0 abort@GLIBC_2.17)\n(named-symbol 1600 _start)\n(named-symbol 1876 main)\n(named-symbol 1432 _init)\n(named-symbol 0 __libc_start_main)\n(named-symbol 0 __cxa_finalize)\n(named-symbol 0 abort)\n(require libc.so.6)\n(section 568 27)\n(section 596 36)\n(section 632 32)\n(section 664 28)\n(section 696 216)\n(section 912 141)\n(section 1054 18)\n(section 1072 48)\n(section 1120 216)\n(section 1336 96)\n(section 1432 24)\n(section 1456 96)\n(section 1600 312)\n(section 1912 20)\n(section 1932 4)\n(section 1936 60)\n(section 2000 160)\n(section 69008 8)\n(section 69016 8)\n(section 69024 496)\n(section 69520 112)\n(section 69632 16)\n(section 69648 8)\n(section 0 43)\n(section 0 2112)\n(section 0 558)\n(section 0 250)\n(segment 0 2160 true false true)\n(segment 69008 648 true true false)\n(subarch v8)\n(symbol-chunk 1652 20 1652)\n(symbol-chunk 1600 52 1600)\n(symbol-chunk 1876 36 1876)\n(symbol-value 1652 1652)\n(symbol-value 1680 1680)\n(symbol-value 1728 1728)\n(symbol-value 1792 1792)\n(symbol-value 1872 1872)\n(symbol-value 1912 1912)\n(symbol-value 1600 1600)\n(symbol-value 1876 1876)\n(symbol-value 1432 1432)\n(symbol-value 0 0)\n(system \"\")\n(vendor \"\")\n"), -Attr("abi-name","\"aarch64-linux-gnu-elf\"")]), -Sections([Section(".shstrtab", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x40\x06\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xa8\x1b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x38\x00\x09\x00\x40\x00\x1c\x00\x1b\x00\x06\x00\x00\x00\x04\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x04\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x70\x08\x00\x00\x00\x00\x00\x00\x70\x08\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x01\x00\x00\x00\x06\x00\x00\x00\x90\x0d\x00\x00\x00\x00\x00\x00\x90\x0d"), -Section(".strtab", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x40\x06\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xa8\x1b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x38\x00\x09\x00\x40\x00\x1c\x00\x1b\x00\x06\x00\x00\x00\x04\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x04\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x70\x08\x00\x00\x00\x00\x00\x00\x70\x08\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x01\x00\x00\x00\x06\x00\x00\x00\x90\x0d\x00\x00\x00\x00\x00\x00\x90\x0d\x01\x00\x00\x00\x00\x00\x90\x0d\x01\x00\x00\x00\x00\x00\x80\x02\x00\x00\x00\x00\x00\x00\x88\x02\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x02\x00\x00\x00\x06\x00\x00\x00\xa0\x0d\x00\x00\x00\x00\x00\x00\xa0\x0d\x01\x00\x00\x00\x00\x00\xa0\x0d\x01\x00\x00\x00\x00\x00\xf0\x01\x00\x00\x00\x00\x00\x00\xf0\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x04\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x50\xe5\x74\x64\x04\x00\x00\x00\x90\x07\x00\x00\x00\x00\x00\x00\x90\x07\x00\x00\x00\x00\x00\x00\x90\x07\x00\x00\x00\x00\x00\x00\x3c\x00\x00\x00\x00\x00\x00\x00\x3c\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x51\xe5\x74\x64\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x52\xe5\x74\x64\x04\x00\x00\x00\x90\x0d\x00\x00\x00\x00\x00\x00\x90\x0d\x01\x00\x00\x00\x00\x00\x90\x0d\x01\x00\x00\x00\x00\x00\x70\x02\x00\x00\x00\x00\x00\x00\x70\x02\x00\x00\x00\x00"), -Section(".symtab", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x40\x06\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xa8\x1b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x38\x00\x09\x00\x40\x00\x1c\x00\x1b\x00\x06\x00\x00\x00\x04\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x04\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x70\x08\x00\x00\x00\x00\x00\x00\x70\x08\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x01\x00\x00\x00\x06\x00\x00\x00\x90\x0d\x00\x00\x00\x00\x00\x00\x90\x0d\x01\x00\x00\x00\x00\x00\x90\x0d\x01\x00\x00\x00\x00\x00\x80\x02\x00\x00\x00\x00\x00\x00\x88\x02\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x02\x00\x00\x00\x06\x00\x00\x00\xa0\x0d\x00\x00\x00\x00\x00\x00\xa0\x0d\x01\x00\x00\x00\x00\x00\xa0\x0d\x01\x00\x00\x00\x00\x00\xf0\x01\x00\x00\x00\x00\x00\x00\xf0\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x04\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x50\xe5\x74\x64\x04\x00\x00\x00\x90\x07\x00\x00\x00\x00\x00\x00\x90\x07\x00\x00\x00\x00\x00\x00\x90\x07\x00\x00\x00\x00\x00\x00\x3c\x00\x00\x00\x00\x00\x00\x00\x3c\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x51\xe5\x74\x64\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x52\xe5\x74\x64\x04\x00\x00\x00\x90\x0d\x00\x00\x00\x00\x00\x00\x90\x0d\x01\x00\x00\x00\x00\x00\x90\x0d\x01\x00\x00\x00\x00\x00\x70\x02\x00\x00\x00\x00\x00\x00\x70\x02\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x2f\x6c\x69\x62\x2f\x6c\x64\x2d\x6c\x69\x6e\x75\x78\x2d\x61\x61\x72\x63\x68\x36\x34\x2e\x73\x6f\x2e\x31\x00\x00\x04\x00\x00\x00\x14\x00\x00\x00\x03\x00\x00\x00\x47\x4e\x55\x00\xd4\x77\x2e\x1a\x7b\x2b\xf2\x48\x09\x8d\x33\xce\xf9\x9b\x0e\x76\x14\x68\xa6\xfc\x04\x00\x00\x00\x10\x00\x00\x00\x01\x00\x00\x00\x47\x4e\x55\x00\x00\x00\x00\x00\x03\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x01\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x0b\x00\x98\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x16\x00\x00\x10\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x48\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x22\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x22\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x73\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5f\x5f\x63\x78\x61\x5f\x66\x69\x6e\x61\x6c\x69\x7a\x65\x00\x5f\x5f\x6c\x69\x62\x63\x5f\x73\x74\x61\x72\x74\x5f\x6d\x61\x69\x6e\x00\x61\x62\x6f\x72\x74\x00\x6c\x69\x62\x63\x2e\x73\x6f\x2e\x36\x00\x47\x4c\x49\x42\x43\x5f\x32\x2e\x31\x37\x00\x47\x4c\x49\x42\x43\x5f\x32\x2e\x33\x34\x00\x5f\x49\x54\x4d\x5f\x64\x65\x72\x65\x67\x69\x73\x74\x65\x72\x54\x4d\x43\x6c\x6f\x6e\x65\x54\x61\x62\x6c\x65\x00\x5f\x5f\x67\x6d\x6f\x6e\x5f\x73\x74\x61\x72\x74\x5f\x5f\x00\x5f\x49\x54\x4d\x5f\x72\x65\x67\x69\x73\x74\x65\x72\x54\x4d\x43\x6c\x6f\x6e\x65\x54\x61\x62\x6c\x65\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x01\x00\x03\x00\x01\x00\x03\x00\x01\x00\x01\x00\x02\x00\x28\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x97\x91\x96\x06\x00\x00\x03\x00\x32\x00\x00\x00\x10\x00\x00\x00\xb4\x91\x96\x06\x00\x00\x02\x00\x3d\x00\x00\x00\x00\x00\x00\x00\x90\x0d\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x50\x07\x00\x00\x00\x00\x00\x00\x98\x0d\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\xe0\x0f\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x14\x10\x01\x00\x00\x00\x00\x00\xf0\x0f\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x54\x07\x00\x00\x00\x00\x00\x00\x08\x10\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x08\x10\x01\x00\x00\x00\x00\x00\xd0\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xd8\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe8\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xf8\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xa8\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xb0\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xb8\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xc0\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1f\x20\x03\xd5\xfd\x7b\xbf\xa9\xfd\x03\x00\x91\x34\x00\x00\x94\xfd\x7b\xc1\xa8\xc0\x03\x5f\xd6\xf0\x7b\xbf\xa9\x90\x00\x00\x90\x11\xd2\x47\xf9\x10\x82\x3e\x91\x20\x02\x1f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x90\x00\x00\x90\x11\xd6\x47\xf9\x10\xa2\x3e\x91\x20\x02\x1f\xd6\x90\x00\x00\x90\x11\xda\x47\xf9\x10\xc2\x3e\x91\x20\x02\x1f\xd6\x90\x00\x00\x90\x11\xde\x47\xf9\x10\xe2\x3e\x91\x20\x02\x1f\xd6\x90\x00\x00\x90\x11\xe2\x47\xf9\x10\x02\x3f\x91\x20\x02\x1f\xd6\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1f\x20\x03\xd5\x1d\x00\x80\xd2\x1e\x00\x80\xd2\xe5\x03\x00\xaa\xe1\x03\x40\xf9\xe2\x23\x00\x91\xe6\x03\x00\x91\x80\x00\x00\x90\x00\xf8\x47\xf9\x03\x00\x80\xd2\x04\x00\x80\xd2\xd9\xff\xff\x97\xe4\xff\xff\x97\x80\x00\x00\x90\x00\xf4\x47\xf9\x40\x00\x00\xb4\xdc\xff\xff\x17\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x80\x00\x00\xb0\x00\x40\x00\x91\x81\x00\x00\xb0\x21\x40\x00\x91\x3f\x00\x00\xeb\xc0\x00\x00\x54\x81\x00\x00\x90\x21\xe8\x47\xf9\x61\x00\x00\xb4\xf0\x03\x01\xaa\x00\x02\x1f\xd6\xc0\x03\x5f\xd6\x80\x00\x00\xb0\x00\x40\x00\x91\x81\x00\x00\xb0\x21\x40\x00\x91\x21\x00\x00\xcb\x22\xfc\x7f\xd3\x41\x0c\x81\x8b\x21\xfc\x41\x93\xc1\x00\x00\xb4\x82\x00\x00\x90\x42\xfc\x47\xf9\x62\x00\x00\xb4\xf0\x03\x02\xaa\x00\x02\x1f\xd6\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\xfd\x7b\xbe\xa9\xfd\x03\x00\x91\xf3\x0b\x00\xf9\x93\x00\x00\xb0\x60\x42\x40\x39\x40\x01\x00\x35\x80\x00\x00\x90\x00\xec\x47\xf9\x80\x00\x00\xb4\x80\x00\x00\xb0\x00\x04\x40\xf9\xad\xff\xff\x97\xd8\xff\xff\x97\x20\x00\x80\x52\x60\x42\x00\x39\xf3\x0b\x40\xf9\xfd\x7b\xc2\xa8\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\xdc\xff\xff\x17\x80\x00\x00\x90\x00\xf0\x47\xf9\x00\x00\x40\xb9\x01\x04\x00\x11\x80\x00\x00\x90\x00\xf0\x47\xf9\x01\x00\x00\xb9\x00\x00\x80\x52\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\xfd\x7b\xbf\xa9\xfd\x03\x00\x91\xfd\x7b\xc1\xa8\xc0\x03\x5f\xd6\x01\x00\x02\x00\x01\x1b\x03\x3b\x3c\x00\x00\x00\x06\x00\x00\x00\xb0\xfe\xff\xff\x54\x00\x00\x00\x00\xff\xff\xff\x68\x00\x00\x00\x30\xff\xff\xff\x7c\x00\x00\x00\x70\xff\xff\xff\x90\x00\x00\x00\xc0\xff\xff\xff\xb4\x00\x00\x00\xc4\xff\xff\xff\xc8\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x01\x7a\x52\x00\x04\x78\x1e\x01\x1b\x0c\x1f\x00\x10\x00\x00\x00\x18\x00\x00\x00\x54\xfe\xff\xff\x34\x00\x00\x00\x00\x41\x07\x1e\x10\x00\x00\x00\x2c\x00\x00\x00\x90\xfe\xff\xff\x30\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x40\x00\x00\x00\xac\xfe\xff\xff\x3c\x00\x00\x00\x00\x00\x00\x00\x20\x00\x00\x00\x54\x00\x00\x00\xd8\xfe\xff\xff\x48\x00\x00\x00\x00\x41\x0e\x20\x9d\x04\x9e\x03\x42\x93\x02\x4e\xde\xdd\xd3\x0e"), -Section(".comment", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x40\x06\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xa8\x1b\x00"), -Section(".interp", 0x238, "\x2f\x6c\x69\x62\x2f\x6c\x64\x2d\x6c\x69\x6e\x75\x78\x2d\x61\x61\x72\x63\x68\x36\x34\x2e\x73\x6f\x2e\x31\x00"), -Section(".note.gnu.build-id", 0x254, "\x04\x00\x00\x00\x14\x00\x00\x00\x03\x00\x00\x00\x47\x4e\x55\x00\xd4\x77\x2e\x1a\x7b\x2b\xf2\x48\x09\x8d\x33\xce\xf9\x9b\x0e\x76\x14\x68\xa6\xfc"), -Section(".note.ABI-tag", 0x278, "\x04\x00\x00\x00\x10\x00\x00\x00\x01\x00\x00\x00\x47\x4e\x55\x00\x00\x00\x00\x00\x03\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00"), -Section(".gnu.hash", 0x298, "\x01\x00\x00\x00\x01\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".dynsym", 0x2B8, "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x0b\x00\x98\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x16\x00\x00\x10\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x48\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x22\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x22\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x73\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".dynstr", 0x390, "\x00\x5f\x5f\x63\x78\x61\x5f\x66\x69\x6e\x61\x6c\x69\x7a\x65\x00\x5f\x5f\x6c\x69\x62\x63\x5f\x73\x74\x61\x72\x74\x5f\x6d\x61\x69\x6e\x00\x61\x62\x6f\x72\x74\x00\x6c\x69\x62\x63\x2e\x73\x6f\x2e\x36\x00\x47\x4c\x49\x42\x43\x5f\x32\x2e\x31\x37\x00\x47\x4c\x49\x42\x43\x5f\x32\x2e\x33\x34\x00\x5f\x49\x54\x4d\x5f\x64\x65\x72\x65\x67\x69\x73\x74\x65\x72\x54\x4d\x43\x6c\x6f\x6e\x65\x54\x61\x62\x6c\x65\x00\x5f\x5f\x67\x6d\x6f\x6e\x5f\x73\x74\x61\x72\x74\x5f\x5f\x00\x5f\x49\x54\x4d\x5f\x72\x65\x67\x69\x73\x74\x65\x72\x54\x4d\x43\x6c\x6f\x6e\x65\x54\x61\x62\x6c\x65\x00"), -Section(".gnu.version", 0x41E, "\x00\x00\x00\x00\x00\x00\x02\x00\x01\x00\x03\x00\x01\x00\x03\x00\x01\x00"), -Section(".gnu.version_r", 0x430, "\x01\x00\x02\x00\x28\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x97\x91\x96\x06\x00\x00\x03\x00\x32\x00\x00\x00\x10\x00\x00\x00\xb4\x91\x96\x06\x00\x00\x02\x00\x3d\x00\x00\x00\x00\x00\x00\x00"), -Section(".rela.dyn", 0x460, "\x90\x0d\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x50\x07\x00\x00\x00\x00\x00\x00\x98\x0d\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\xe0\x0f\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x14\x10\x01\x00\x00\x00\x00\x00\xf0\x0f\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x54\x07\x00\x00\x00\x00\x00\x00\x08\x10\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x08\x10\x01\x00\x00\x00\x00\x00\xd0\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xd8\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe8\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xf8\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".rela.plt", 0x538, "\xa8\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xb0\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xb8\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xc0\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".init", 0x598, "\x1f\x20\x03\xd5\xfd\x7b\xbf\xa9\xfd\x03\x00\x91\x34\x00\x00\x94\xfd\x7b\xc1\xa8\xc0\x03\x5f\xd6"), -Section(".plt", 0x5B0, "\xf0\x7b\xbf\xa9\x90\x00\x00\x90\x11\xd2\x47\xf9\x10\x82\x3e\x91\x20\x02\x1f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x90\x00\x00\x90\x11\xd6\x47\xf9\x10\xa2\x3e\x91\x20\x02\x1f\xd6\x90\x00\x00\x90\x11\xda\x47\xf9\x10\xc2\x3e\x91\x20\x02\x1f\xd6\x90\x00\x00\x90\x11\xde\x47\xf9\x10\xe2\x3e\x91\x20\x02\x1f\xd6\x90\x00\x00\x90\x11\xe2\x47\xf9\x10\x02\x3f\x91\x20\x02\x1f\xd6"), -Section(".fini", 0x778, "\x1f\x20\x03\xd5\xfd\x7b\xbf\xa9\xfd\x03\x00\x91\xfd\x7b\xc1\xa8\xc0\x03\x5f\xd6"), -Section(".rodata", 0x78C, "\x01\x00\x02\x00"), -Section(".eh_frame_hdr", 0x790, "\x01\x1b\x03\x3b\x3c\x00\x00\x00\x06\x00\x00\x00\xb0\xfe\xff\xff\x54\x00\x00\x00\x00\xff\xff\xff\x68\x00\x00\x00\x30\xff\xff\xff\x7c\x00\x00\x00\x70\xff\xff\xff\x90\x00\x00\x00\xc0\xff\xff\xff\xb4\x00\x00\x00\xc4\xff\xff\xff\xc8\x00\x00\x00"), -Section(".eh_frame", 0x7D0, "\x10\x00\x00\x00\x00\x00\x00\x00\x01\x7a\x52\x00\x04\x78\x1e\x01\x1b\x0c\x1f\x00\x10\x00\x00\x00\x18\x00\x00\x00\x54\xfe\xff\xff\x34\x00\x00\x00\x00\x41\x07\x1e\x10\x00\x00\x00\x2c\x00\x00\x00\x90\xfe\xff\xff\x30\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x40\x00\x00\x00\xac\xfe\xff\xff\x3c\x00\x00\x00\x00\x00\x00\x00\x20\x00\x00\x00\x54\x00\x00\x00\xd8\xfe\xff\xff\x48\x00\x00\x00\x00\x41\x0e\x20\x9d\x04\x9e\x03\x42\x93\x02\x4e\xde\xdd\xd3\x0e\x00\x00\x00\x00\x10\x00\x00\x00\x78\x00\x00\x00\x04\xff\xff\xff\x04\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x8c\x00\x00\x00\xf4\xfe\xff\xff\x24\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".fini_array", 0x10D98, "\x00\x07\x00\x00\x00\x00\x00\x00"), -Section(".dynamic", 0x10DA0, "\x01\x00\x00\x00\x00\x00\x00\x00\x28\x00\x00\x00\x00\x00\x00\x00\x0c\x00\x00\x00\x00\x00\x00\x00\x98\x05\x00\x00\x00\x00\x00\x00\x0d\x00\x00\x00\x00\x00\x00\x00\x78\x07\x00\x00\x00\x00\x00\x00\x19\x00\x00\x00\x00\x00\x00\x00\x90\x0d\x01\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x1a\x00\x00\x00\x00\x00\x00\x00\x98\x0d\x01\x00\x00\x00\x00\x00\x1c\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\xf5\xfe\xff\x6f\x00\x00\x00\x00\x98\x02\x00\x00\x00\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x90\x03\x00\x00\x00\x00\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\xb8\x02\x00\x00\x00\x00\x00\x00\x0a\x00\x00\x00\x00\x00\x00\x00\x8d\x00\x00\x00\x00\x00\x00\x00\x0b\x00\x00\x00\x00\x00\x00\x00\x18\x00\x00\x00\x00\x00\x00\x00\x15\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x90\x0f\x01\x00\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x60\x00\x00\x00\x00\x00\x00\x00\x14\x00\x00\x00\x00\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x17\x00\x00\x00\x00\x00\x00\x00\x38\x05\x00\x00\x00\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x60\x04\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\xd8\x00\x00\x00\x00\x00\x00\x00\x09\x00\x00\x00\x00\x00\x00\x00\x18\x00\x00\x00\x00\x00\x00\x00\x1e\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\xfb\xff\xff\x6f\x00\x00\x00\x00\x01\x00\x00\x08\x00\x00\x00\x00\xfe\xff\xff\x6f\x00\x00\x00\x00\x30\x04\x00\x00\x00\x00\x00\x00\xff\xff\xff\x6f\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\xf0\xff\xff\x6f\x00\x00\x00\x00\x1e\x04\x00\x00\x00\x00\x00\x00\xf9\xff\xff\x6f\x00\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".got", 0x10F90, "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xb0\x05\x00\x00\x00\x00\x00\x00\xb0\x05\x00\x00\x00\x00\x00\x00\xb0\x05\x00\x00\x00\x00\x00\x00\xb0\x05\x00\x00\x00\x00\x00\x00\xa0\x0d\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x14\x10\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x54\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".data", 0x11000, "\x00\x00\x00\x00\x00\x00\x00\x00\x08\x10\x01\x00\x00\x00\x00\x00"), -Section(".init_array", 0x10D90, "\x50\x07\x00\x00\x00\x00\x00\x00"), -Section(".text", 0x640, "\x1f\x20\x03\xd5\x1d\x00\x80\xd2\x1e\x00\x80\xd2\xe5\x03\x00\xaa\xe1\x03\x40\xf9\xe2\x23\x00\x91\xe6\x03\x00\x91\x80\x00\x00\x90\x00\xf8\x47\xf9\x03\x00\x80\xd2\x04\x00\x80\xd2\xd9\xff\xff\x97\xe4\xff\xff\x97\x80\x00\x00\x90\x00\xf4\x47\xf9\x40\x00\x00\xb4\xdc\xff\xff\x17\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x80\x00\x00\xb0\x00\x40\x00\x91\x81\x00\x00\xb0\x21\x40\x00\x91\x3f\x00\x00\xeb\xc0\x00\x00\x54\x81\x00\x00\x90\x21\xe8\x47\xf9\x61\x00\x00\xb4\xf0\x03\x01\xaa\x00\x02\x1f\xd6\xc0\x03\x5f\xd6\x80\x00\x00\xb0\x00\x40\x00\x91\x81\x00\x00\xb0\x21\x40\x00\x91\x21\x00\x00\xcb\x22\xfc\x7f\xd3\x41\x0c\x81\x8b\x21\xfc\x41\x93\xc1\x00\x00\xb4\x82\x00\x00\x90\x42\xfc\x47\xf9\x62\x00\x00\xb4\xf0\x03\x02\xaa\x00\x02\x1f\xd6\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\xfd\x7b\xbe\xa9\xfd\x03\x00\x91\xf3\x0b\x00\xf9\x93\x00\x00\xb0\x60\x42\x40\x39\x40\x01\x00\x35\x80\x00\x00\x90\x00\xec\x47\xf9\x80\x00\x00\xb4\x80\x00\x00\xb0\x00\x04\x40\xf9\xad\xff\xff\x97\xd8\xff\xff\x97\x20\x00\x80\x52\x60\x42\x00\x39\xf3\x0b\x40\xf9\xfd\x7b\xc2\xa8\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\xdc\xff\xff\x17\x80\x00\x00\x90\x00\xf0\x47\xf9\x00\x00\x40\xb9\x01\x04\x00\x11\x80\x00\x00\x90\x00\xf0\x47\xf9\x01\x00\x00\xb9\x00\x00\x80\x52\xc0\x03\x5f\xd6")]), -Memmap([Annotation(Region(0x0,0x86F), Attr("segment","02 0 2160")), -Annotation(Region(0x640,0x673), Attr("symbol","\"_start\"")), -Annotation(Region(0x0,0xF9), Attr("section","\".shstrtab\"")), -Annotation(Region(0x0,0x22D), Attr("section","\".strtab\"")), -Annotation(Region(0x0,0x83F), Attr("section","\".symtab\"")), -Annotation(Region(0x0,0x2A), Attr("section","\".comment\"")), -Annotation(Region(0x238,0x252), Attr("section","\".interp\"")), -Annotation(Region(0x254,0x277), Attr("section","\".note.gnu.build-id\"")), -Annotation(Region(0x278,0x297), Attr("section","\".note.ABI-tag\"")), -Annotation(Region(0x298,0x2B3), Attr("section","\".gnu.hash\"")), -Annotation(Region(0x2B8,0x38F), Attr("section","\".dynsym\"")), -Annotation(Region(0x390,0x41C), Attr("section","\".dynstr\"")), -Annotation(Region(0x41E,0x42F), Attr("section","\".gnu.version\"")), -Annotation(Region(0x430,0x45F), Attr("section","\".gnu.version_r\"")), -Annotation(Region(0x460,0x537), Attr("section","\".rela.dyn\"")), -Annotation(Region(0x538,0x597), Attr("section","\".rela.plt\"")), -Annotation(Region(0x598,0x5AF), Attr("section","\".init\"")), -Annotation(Region(0x5B0,0x60F), Attr("section","\".plt\"")), -Annotation(Region(0x598,0x5AF), Attr("code-region","()")), -Annotation(Region(0x5B0,0x60F), Attr("code-region","()")), -Annotation(Region(0x640,0x673), Attr("symbol-info","_start 0x640 52")), -Annotation(Region(0x674,0x687), Attr("symbol","\"call_weak_fn\"")), -Annotation(Region(0x674,0x687), Attr("symbol-info","call_weak_fn 0x674 20")), -Annotation(Region(0x754,0x777), Attr("symbol","\"main\"")), -Annotation(Region(0x754,0x777), Attr("symbol-info","main 0x754 36")), -Annotation(Region(0x778,0x78B), Attr("section","\".fini\"")), -Annotation(Region(0x78C,0x78F), Attr("section","\".rodata\"")), -Annotation(Region(0x790,0x7CB), Attr("section","\".eh_frame_hdr\"")), -Annotation(Region(0x7D0,0x86F), Attr("section","\".eh_frame\"")), -Annotation(Region(0x10D90,0x1100F), Attr("segment","03 0x10D90 648")), -Annotation(Region(0x10D98,0x10D9F), Attr("section","\".fini_array\"")), -Annotation(Region(0x10DA0,0x10F8F), Attr("section","\".dynamic\"")), -Annotation(Region(0x10F90,0x10FFF), Attr("section","\".got\"")), -Annotation(Region(0x11000,0x1100F), Attr("section","\".data\"")), -Annotation(Region(0x10D90,0x10D97), Attr("section","\".init_array\"")), -Annotation(Region(0x640,0x777), Attr("section","\".text\"")), -Annotation(Region(0x640,0x777), Attr("code-region","()")), -Annotation(Region(0x778,0x78B), Attr("code-region","()"))]), -Program(Tid(1_383, "%00000567"), Attrs([]), - Subs([Sub(Tid(1_333, "@__cxa_finalize"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x5E0"), -Attr("stub","()")]), "__cxa_finalize", Args([Arg(Tid(1_384, "%00000568"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("__cxa_finalize_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(828, "@__cxa_finalize"), - Attrs([Attr("address","0x5E0")]), Phis([]), -Defs([Def(Tid(1_076, "%00000434"), Attrs([Attr("address","0x5E0"), -Attr("insn","adrp x16, #65536")]), Var("R16",Imm(64)), Int(65536,64)), -Def(Tid(1_083, "%0000043b"), Attrs([Attr("address","0x5E4"), -Attr("insn","ldr x17, [x16, #0xfb0]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(4016,64)),LittleEndian(),64)), -Def(Tid(1_089, "%00000441"), Attrs([Attr("address","0x5E8"), -Attr("insn","add x16, x16, #0xfb0")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(4016,64)))]), Jmps([Call(Tid(1_094, "%00000446"), - Attrs([Attr("address","0x5EC"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), -Sub(Tid(1_334, "@__do_global_dtors_aux"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x700")]), - "__do_global_dtors_aux", Args([Arg(Tid(1_385, "%00000569"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("__do_global_dtors_aux_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(626, "@__do_global_dtors_aux"), - Attrs([Attr("address","0x700")]), Phis([]), Defs([Def(Tid(630, "%00000276"), - Attrs([Attr("address","0x700"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("#3",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(18446744073709551584,64))), -Def(Tid(636, "%0000027c"), Attrs([Attr("address","0x700"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("#3",Imm(64)),Var("R29",Imm(64)),LittleEndian(),64)), -Def(Tid(642, "%00000282"), Attrs([Attr("address","0x700"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("#3",Imm(64)),Int(8,64)),Var("R30",Imm(64)),LittleEndian(),64)), -Def(Tid(646, "%00000286"), Attrs([Attr("address","0x700"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("R31",Imm(64)), -Var("#3",Imm(64))), Def(Tid(652, "%0000028c"), - Attrs([Attr("address","0x704"), Attr("insn","mov x29, sp")]), - Var("R29",Imm(64)), Var("R31",Imm(64))), Def(Tid(660, "%00000294"), - Attrs([Attr("address","0x708"), Attr("insn","str x19, [sp, #0x10]")]), - Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(16,64)),Var("R19",Imm(64)),LittleEndian(),64)), -Def(Tid(665, "%00000299"), Attrs([Attr("address","0x70C"), -Attr("insn","adrp x19, #69632")]), Var("R19",Imm(64)), Int(69632,64)), -Def(Tid(672, "%000002a0"), Attrs([Attr("address","0x710"), -Attr("insn","ldrb w0, [x19, #0x10]")]), Var("R0",Imm(64)), -UNSIGNED(64,Load(Var("mem",Mem(64,8)),PLUS(Var("R19",Imm(64)),Int(16,64)),LittleEndian(),8)))]), -Jmps([Goto(Tid(679, "%000002a7"), Attrs([Attr("address","0x714"), -Attr("insn","cbnz w0, #0x28")]), - NEQ(Extract(31,0,Var("R0",Imm(64))),Int(0,32)), -Direct(Tid(677, "%000002a5"))), Goto(Tid(1_373, "%0000055d"), Attrs([]), - Int(1,1), Direct(Tid(773, "%00000305")))])), Blk(Tid(773, "%00000305"), - Attrs([Attr("address","0x718")]), Phis([]), Defs([Def(Tid(776, "%00000308"), - Attrs([Attr("address","0x718"), Attr("insn","adrp x0, #65536")]), - Var("R0",Imm(64)), Int(65536,64)), Def(Tid(783, "%0000030f"), - Attrs([Attr("address","0x71C"), Attr("insn","ldr x0, [x0, #0xfd8]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(4056,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(789, "%00000315"), Attrs([Attr("address","0x720"), -Attr("insn","cbz x0, #0x10")]), EQ(Var("R0",Imm(64)),Int(0,64)), -Direct(Tid(787, "%00000313"))), Goto(Tid(1_374, "%0000055e"), Attrs([]), - Int(1,1), Direct(Tid(812, "%0000032c")))])), Blk(Tid(812, "%0000032c"), - Attrs([Attr("address","0x724")]), Phis([]), Defs([Def(Tid(815, "%0000032f"), - Attrs([Attr("address","0x724"), Attr("insn","adrp x0, #69632")]), - Var("R0",Imm(64)), Int(69632,64)), Def(Tid(822, "%00000336"), - Attrs([Attr("address","0x728"), Attr("insn","ldr x0, [x0, #0x8]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(827, "%0000033b"), Attrs([Attr("address","0x72C"), -Attr("insn","bl #-0x14c")]), Var("R30",Imm(64)), Int(1840,64))]), -Jmps([Call(Tid(830, "%0000033e"), Attrs([Attr("address","0x72C"), -Attr("insn","bl #-0x14c")]), Int(1,1), -(Direct(Tid(1_333, "@__cxa_finalize")),Direct(Tid(787, "%00000313"))))])), -Blk(Tid(787, "%00000313"), Attrs([Attr("address","0x730")]), Phis([]), -Defs([Def(Tid(795, "%0000031b"), Attrs([Attr("address","0x730"), -Attr("insn","bl #-0xa0")]), Var("R30",Imm(64)), Int(1844,64))]), -Jmps([Call(Tid(797, "%0000031d"), Attrs([Attr("address","0x730"), -Attr("insn","bl #-0xa0")]), Int(1,1), -(Direct(Tid(1_347, "@deregister_tm_clones")),Direct(Tid(799, "%0000031f"))))])), -Blk(Tid(799, "%0000031f"), Attrs([Attr("address","0x734")]), Phis([]), -Defs([Def(Tid(802, "%00000322"), Attrs([Attr("address","0x734"), -Attr("insn","mov w0, #0x1")]), Var("R0",Imm(64)), Int(1,64)), -Def(Tid(810, "%0000032a"), Attrs([Attr("address","0x738"), -Attr("insn","strb w0, [x19, #0x10]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R19",Imm(64)),Int(16,64)),Extract(7,0,Var("R0",Imm(64))),LittleEndian(),8))]), -Jmps([Goto(Tid(1_375, "%0000055f"), Attrs([]), Int(1,1), -Direct(Tid(677, "%000002a5")))])), Blk(Tid(677, "%000002a5"), - Attrs([Attr("address","0x73C")]), Phis([]), Defs([Def(Tid(687, "%000002af"), - Attrs([Attr("address","0x73C"), Attr("insn","ldr x19, [sp, #0x10]")]), - Var("R19",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(16,64)),LittleEndian(),64)), -Def(Tid(694, "%000002b6"), Attrs([Attr("address","0x740"), -Attr("insn","ldp x29, x30, [sp], #0x20")]), Var("R29",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(699, "%000002bb"), Attrs([Attr("address","0x740"), -Attr("insn","ldp x29, x30, [sp], #0x20")]), Var("R30",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(703, "%000002bf"), Attrs([Attr("address","0x740"), -Attr("insn","ldp x29, x30, [sp], #0x20")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(32,64)))]), Jmps([Call(Tid(708, "%000002c4"), - Attrs([Attr("address","0x744"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), Sub(Tid(1_338, "@__libc_start_main"), - Attrs([Attr("c.proto","signed (*)(signed (*)(signed , char** , char** );* main, signed , char** , \nvoid* auxv)"), -Attr("address","0x5D0"), Attr("stub","()")]), "__libc_start_main", - Args([Arg(Tid(1_386, "%0000056a"), - Attrs([Attr("c.layout","**[ : 64]"), -Attr("c.data","Top:u64 ptr ptr"), -Attr("c.type","signed (*)(signed , char** , char** );*")]), - Var("__libc_start_main_main",Imm(64)), Var("R0",Imm(64)), In()), -Arg(Tid(1_387, "%0000056b"), Attrs([Attr("c.layout","[signed : 32]"), -Attr("c.data","Top:u32"), Attr("c.type","signed")]), - Var("__libc_start_main_arg2",Imm(32)), LOW(32,Var("R1",Imm(64))), In()), -Arg(Tid(1_388, "%0000056c"), Attrs([Attr("c.layout","**[char : 8]"), -Attr("c.data","Top:u8 ptr ptr"), Attr("c.type","char**")]), - Var("__libc_start_main_arg3",Imm(64)), Var("R2",Imm(64)), Both()), -Arg(Tid(1_389, "%0000056d"), Attrs([Attr("c.layout","*[ : 8]"), -Attr("c.data","{} ptr"), Attr("c.type","void*")]), - Var("__libc_start_main_auxv",Imm(64)), Var("R3",Imm(64)), Both()), -Arg(Tid(1_390, "%0000056e"), Attrs([Attr("c.layout","[signed : 32]"), -Attr("c.data","Top:u32"), Attr("c.type","signed")]), - Var("__libc_start_main_result",Imm(32)), LOW(32,Var("R0",Imm(64))), -Out())]), Blks([Blk(Tid(459, "@__libc_start_main"), - Attrs([Attr("address","0x5D0")]), Phis([]), -Defs([Def(Tid(1_054, "%0000041e"), Attrs([Attr("address","0x5D0"), -Attr("insn","adrp x16, #65536")]), Var("R16",Imm(64)), Int(65536,64)), -Def(Tid(1_061, "%00000425"), Attrs([Attr("address","0x5D4"), -Attr("insn","ldr x17, [x16, #0xfa8]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(4008,64)),LittleEndian(),64)), -Def(Tid(1_067, "%0000042b"), Attrs([Attr("address","0x5D8"), -Attr("insn","add x16, x16, #0xfa8")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(4008,64)))]), Jmps([Call(Tid(1_072, "%00000430"), - Attrs([Attr("address","0x5DC"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), Sub(Tid(1_339, "@_fini"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x778")]), - "_fini", Args([Arg(Tid(1_391, "%0000056f"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("_fini_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(31, "@_fini"), - Attrs([Attr("address","0x778")]), Phis([]), Defs([Def(Tid(37, "%00000025"), - Attrs([Attr("address","0x77C"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("#0",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(18446744073709551600,64))), -Def(Tid(43, "%0000002b"), Attrs([Attr("address","0x77C"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("#0",Imm(64)),Var("R29",Imm(64)),LittleEndian(),64)), -Def(Tid(49, "%00000031"), Attrs([Attr("address","0x77C"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("#0",Imm(64)),Int(8,64)),Var("R30",Imm(64)),LittleEndian(),64)), -Def(Tid(53, "%00000035"), Attrs([Attr("address","0x77C"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("R31",Imm(64)), -Var("#0",Imm(64))), Def(Tid(59, "%0000003b"), Attrs([Attr("address","0x780"), -Attr("insn","mov x29, sp")]), Var("R29",Imm(64)), Var("R31",Imm(64))), -Def(Tid(66, "%00000042"), Attrs([Attr("address","0x784"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R29",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(71, "%00000047"), Attrs([Attr("address","0x784"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R30",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(75, "%0000004b"), Attrs([Attr("address","0x784"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(16,64)))]), Jmps([Call(Tid(80, "%00000050"), - Attrs([Attr("address","0x788"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), Sub(Tid(1_340, "@_init"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x598")]), - "_init", Args([Arg(Tid(1_392, "%00000570"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("_init_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(1_166, "@_init"), - Attrs([Attr("address","0x598")]), Phis([]), -Defs([Def(Tid(1_172, "%00000494"), Attrs([Attr("address","0x59C"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("#5",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(18446744073709551600,64))), -Def(Tid(1_178, "%0000049a"), Attrs([Attr("address","0x59C"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("#5",Imm(64)),Var("R29",Imm(64)),LittleEndian(),64)), -Def(Tid(1_184, "%000004a0"), Attrs([Attr("address","0x59C"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("#5",Imm(64)),Int(8,64)),Var("R30",Imm(64)),LittleEndian(),64)), -Def(Tid(1_188, "%000004a4"), Attrs([Attr("address","0x59C"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("R31",Imm(64)), -Var("#5",Imm(64))), Def(Tid(1_194, "%000004aa"), - Attrs([Attr("address","0x5A0"), Attr("insn","mov x29, sp")]), - Var("R29",Imm(64)), Var("R31",Imm(64))), Def(Tid(1_199, "%000004af"), - Attrs([Attr("address","0x5A4"), Attr("insn","bl #0xd0")]), - Var("R30",Imm(64)), Int(1448,64))]), Jmps([Call(Tid(1_201, "%000004b1"), - Attrs([Attr("address","0x5A4"), Attr("insn","bl #0xd0")]), Int(1,1), -(Direct(Tid(1_345, "@call_weak_fn")),Direct(Tid(1_203, "%000004b3"))))])), -Blk(Tid(1_203, "%000004b3"), Attrs([Attr("address","0x5A8")]), Phis([]), -Defs([Def(Tid(1_208, "%000004b8"), Attrs([Attr("address","0x5A8"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R29",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(1_213, "%000004bd"), Attrs([Attr("address","0x5A8"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R30",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(1_217, "%000004c1"), Attrs([Attr("address","0x5A8"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(16,64)))]), Jmps([Call(Tid(1_222, "%000004c6"), - Attrs([Attr("address","0x5AC"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), Sub(Tid(1_341, "@_start"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x640"), -Attr("entry-point","()")]), "_start", Args([Arg(Tid(1_393, "%00000571"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("_start_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(396, "@_start"), - Attrs([Attr("address","0x640")]), Phis([]), Defs([Def(Tid(401, "%00000191"), - Attrs([Attr("address","0x644"), Attr("insn","mov x29, #0x0")]), - Var("R29",Imm(64)), Int(0,64)), Def(Tid(406, "%00000196"), - Attrs([Attr("address","0x648"), Attr("insn","mov x30, #0x0")]), - Var("R30",Imm(64)), Int(0,64)), Def(Tid(412, "%0000019c"), - Attrs([Attr("address","0x64C"), Attr("insn","mov x5, x0")]), - Var("R5",Imm(64)), Var("R0",Imm(64))), Def(Tid(419, "%000001a3"), - Attrs([Attr("address","0x650"), Attr("insn","ldr x1, [sp]")]), - Var("R1",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(425, "%000001a9"), Attrs([Attr("address","0x654"), -Attr("insn","add x2, sp, #0x8")]), Var("R2",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(8,64))), Def(Tid(431, "%000001af"), - Attrs([Attr("address","0x658"), Attr("insn","mov x6, sp")]), - Var("R6",Imm(64)), Var("R31",Imm(64))), Def(Tid(436, "%000001b4"), - Attrs([Attr("address","0x65C"), Attr("insn","adrp x0, #65536")]), - Var("R0",Imm(64)), Int(65536,64)), Def(Tid(443, "%000001bb"), - Attrs([Attr("address","0x660"), Attr("insn","ldr x0, [x0, #0xff0]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(4080,64)),LittleEndian(),64)), -Def(Tid(448, "%000001c0"), Attrs([Attr("address","0x664"), -Attr("insn","mov x3, #0x0")]), Var("R3",Imm(64)), Int(0,64)), -Def(Tid(453, "%000001c5"), Attrs([Attr("address","0x668"), -Attr("insn","mov x4, #0x0")]), Var("R4",Imm(64)), Int(0,64)), -Def(Tid(458, "%000001ca"), Attrs([Attr("address","0x66C"), -Attr("insn","bl #-0x9c")]), Var("R30",Imm(64)), Int(1648,64))]), -Jmps([Call(Tid(461, "%000001cd"), Attrs([Attr("address","0x66C"), -Attr("insn","bl #-0x9c")]), Int(1,1), -(Direct(Tid(1_338, "@__libc_start_main")),Direct(Tid(463, "%000001cf"))))])), -Blk(Tid(463, "%000001cf"), Attrs([Attr("address","0x670")]), Phis([]), -Defs([Def(Tid(466, "%000001d2"), Attrs([Attr("address","0x670"), -Attr("insn","bl #-0x70")]), Var("R30",Imm(64)), Int(1652,64))]), -Jmps([Call(Tid(469, "%000001d5"), Attrs([Attr("address","0x670"), -Attr("insn","bl #-0x70")]), Int(1,1), -(Direct(Tid(1_344, "@abort")),Direct(Tid(1_376, "%00000560"))))])), -Blk(Tid(1_376, "%00000560"), Attrs([]), Phis([]), Defs([]), -Jmps([Call(Tid(1_377, "%00000561"), Attrs([]), Int(1,1), -(Direct(Tid(1_345, "@call_weak_fn")),))]))])), Sub(Tid(1_344, "@abort"), - Attrs([Attr("noreturn","()"), Attr("c.proto","void (*)(void)"), -Attr("address","0x600"), Attr("stub","()")]), "abort", Args([]), -Blks([Blk(Tid(467, "@abort"), Attrs([Attr("address","0x600")]), Phis([]), -Defs([Def(Tid(1_120, "%00000460"), Attrs([Attr("address","0x600"), -Attr("insn","adrp x16, #65536")]), Var("R16",Imm(64)), Int(65536,64)), -Def(Tid(1_127, "%00000467"), Attrs([Attr("address","0x604"), -Attr("insn","ldr x17, [x16, #0xfc0]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(4032,64)),LittleEndian(),64)), -Def(Tid(1_133, "%0000046d"), Attrs([Attr("address","0x608"), -Attr("insn","add x16, x16, #0xfc0")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(4032,64)))]), Jmps([Call(Tid(1_138, "%00000472"), - Attrs([Attr("address","0x60C"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), Sub(Tid(1_345, "@call_weak_fn"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x674")]), - "call_weak_fn", Args([Arg(Tid(1_394, "%00000572"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("call_weak_fn_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(471, "@call_weak_fn"), - Attrs([Attr("address","0x674")]), Phis([]), Defs([Def(Tid(474, "%000001da"), - Attrs([Attr("address","0x674"), Attr("insn","adrp x0, #65536")]), - Var("R0",Imm(64)), Int(65536,64)), Def(Tid(481, "%000001e1"), - Attrs([Attr("address","0x678"), Attr("insn","ldr x0, [x0, #0xfe8]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(4072,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(487, "%000001e7"), Attrs([Attr("address","0x67C"), -Attr("insn","cbz x0, #0x8")]), EQ(Var("R0",Imm(64)),Int(0,64)), -Direct(Tid(485, "%000001e5"))), Goto(Tid(1_378, "%00000562"), Attrs([]), - Int(1,1), Direct(Tid(892, "%0000037c")))])), Blk(Tid(485, "%000001e5"), - Attrs([Attr("address","0x684")]), Phis([]), Defs([]), -Jmps([Call(Tid(493, "%000001ed"), Attrs([Attr("address","0x684"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))])), -Blk(Tid(892, "%0000037c"), Attrs([Attr("address","0x680")]), Phis([]), -Defs([]), Jmps([Goto(Tid(895, "%0000037f"), Attrs([Attr("address","0x680"), -Attr("insn","b #-0x90")]), Int(1,1), Direct(Tid(893, "@__gmon_start__")))])), -Blk(Tid(893, "@__gmon_start__"), Attrs([Attr("address","0x5F0")]), Phis([]), -Defs([Def(Tid(1_098, "%0000044a"), Attrs([Attr("address","0x5F0"), -Attr("insn","adrp x16, #65536")]), Var("R16",Imm(64)), Int(65536,64)), -Def(Tid(1_105, "%00000451"), Attrs([Attr("address","0x5F4"), -Attr("insn","ldr x17, [x16, #0xfb8]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(4024,64)),LittleEndian(),64)), -Def(Tid(1_111, "%00000457"), Attrs([Attr("address","0x5F8"), -Attr("insn","add x16, x16, #0xfb8")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(4024,64)))]), Jmps([Call(Tid(1_116, "%0000045c"), - Attrs([Attr("address","0x5FC"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), -Sub(Tid(1_347, "@deregister_tm_clones"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x690")]), - "deregister_tm_clones", Args([Arg(Tid(1_395, "%00000573"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("deregister_tm_clones_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(499, "@deregister_tm_clones"), - Attrs([Attr("address","0x690")]), Phis([]), Defs([Def(Tid(502, "%000001f6"), - Attrs([Attr("address","0x690"), Attr("insn","adrp x0, #69632")]), - Var("R0",Imm(64)), Int(69632,64)), Def(Tid(508, "%000001fc"), - Attrs([Attr("address","0x694"), Attr("insn","add x0, x0, #0x10")]), - Var("R0",Imm(64)), PLUS(Var("R0",Imm(64)),Int(16,64))), -Def(Tid(513, "%00000201"), Attrs([Attr("address","0x698"), -Attr("insn","adrp x1, #69632")]), Var("R1",Imm(64)), Int(69632,64)), -Def(Tid(519, "%00000207"), Attrs([Attr("address","0x69C"), -Attr("insn","add x1, x1, #0x10")]), Var("R1",Imm(64)), -PLUS(Var("R1",Imm(64)),Int(16,64))), Def(Tid(525, "%0000020d"), - Attrs([Attr("address","0x6A0"), Attr("insn","cmp x1, x0")]), - Var("#1",Imm(64)), NOT(Var("R0",Imm(64)))), Def(Tid(530, "%00000212"), - Attrs([Attr("address","0x6A0"), Attr("insn","cmp x1, x0")]), - Var("#2",Imm(64)), PLUS(Var("R1",Imm(64)),NOT(Var("R0",Imm(64))))), -Def(Tid(536, "%00000218"), Attrs([Attr("address","0x6A0"), -Attr("insn","cmp x1, x0")]), Var("VF",Imm(1)), -NEQ(SIGNED(65,PLUS(Var("#2",Imm(64)),Int(1,64))),PLUS(PLUS(SIGNED(65,Var("R1",Imm(64))),SIGNED(65,Var("#1",Imm(64)))),Int(1,65)))), -Def(Tid(542, "%0000021e"), Attrs([Attr("address","0x6A0"), -Attr("insn","cmp x1, x0")]), Var("CF",Imm(1)), -NEQ(UNSIGNED(65,PLUS(Var("#2",Imm(64)),Int(1,64))),PLUS(PLUS(UNSIGNED(65,Var("R1",Imm(64))),UNSIGNED(65,Var("#1",Imm(64)))),Int(1,65)))), -Def(Tid(546, "%00000222"), Attrs([Attr("address","0x6A0"), -Attr("insn","cmp x1, x0")]), Var("ZF",Imm(1)), -EQ(PLUS(Var("#2",Imm(64)),Int(1,64)),Int(0,64))), Def(Tid(550, "%00000226"), - Attrs([Attr("address","0x6A0"), Attr("insn","cmp x1, x0")]), - Var("NF",Imm(1)), Extract(63,63,PLUS(Var("#2",Imm(64)),Int(1,64))))]), -Jmps([Goto(Tid(556, "%0000022c"), Attrs([Attr("address","0x6A4"), -Attr("insn","b.eq #0x18")]), EQ(Var("ZF",Imm(1)),Int(1,1)), -Direct(Tid(554, "%0000022a"))), Goto(Tid(1_379, "%00000563"), Attrs([]), - Int(1,1), Direct(Tid(862, "%0000035e")))])), Blk(Tid(862, "%0000035e"), - Attrs([Attr("address","0x6A8")]), Phis([]), Defs([Def(Tid(865, "%00000361"), - Attrs([Attr("address","0x6A8"), Attr("insn","adrp x1, #65536")]), - Var("R1",Imm(64)), Int(65536,64)), Def(Tid(872, "%00000368"), - Attrs([Attr("address","0x6AC"), Attr("insn","ldr x1, [x1, #0xfd0]")]), - Var("R1",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R1",Imm(64)),Int(4048,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(877, "%0000036d"), Attrs([Attr("address","0x6B0"), -Attr("insn","cbz x1, #0xc")]), EQ(Var("R1",Imm(64)),Int(0,64)), -Direct(Tid(554, "%0000022a"))), Goto(Tid(1_380, "%00000564"), Attrs([]), - Int(1,1), Direct(Tid(881, "%00000371")))])), Blk(Tid(554, "%0000022a"), - Attrs([Attr("address","0x6BC")]), Phis([]), Defs([]), -Jmps([Call(Tid(562, "%00000232"), Attrs([Attr("address","0x6BC"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))])), -Blk(Tid(881, "%00000371"), Attrs([Attr("address","0x6B4")]), Phis([]), -Defs([Def(Tid(885, "%00000375"), Attrs([Attr("address","0x6B4"), -Attr("insn","mov x16, x1")]), Var("R16",Imm(64)), Var("R1",Imm(64)))]), -Jmps([Call(Tid(890, "%0000037a"), Attrs([Attr("address","0x6B8"), -Attr("insn","br x16")]), Int(1,1), (Indirect(Var("R16",Imm(64))),))]))])), -Sub(Tid(1_350, "@frame_dummy"), Attrs([Attr("c.proto","signed (*)(void)"), -Attr("address","0x750")]), "frame_dummy", Args([Arg(Tid(1_396, "%00000574"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("frame_dummy_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(714, "@frame_dummy"), - Attrs([Attr("address","0x750")]), Phis([]), Defs([]), -Jmps([Call(Tid(716, "%000002cc"), Attrs([Attr("address","0x750"), -Attr("insn","b #-0x90")]), Int(1,1), -(Direct(Tid(1_352, "@register_tm_clones")),))]))])), Sub(Tid(1_351, "@main"), - Attrs([Attr("c.proto","signed (*)(signed argc, const char** argv)"), -Attr("address","0x754")]), "main", Args([Arg(Tid(1_397, "%00000575"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("main_argc",Imm(32)), -LOW(32,Var("R0",Imm(64))), In()), Arg(Tid(1_398, "%00000576"), - Attrs([Attr("c.layout","**[char : 8]"), Attr("c.data","Top:u8 ptr ptr"), -Attr("c.type"," const char**")]), Var("main_argv",Imm(64)), -Var("R1",Imm(64)), Both()), Arg(Tid(1_399, "%00000577"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("main_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(718, "@main"), - Attrs([Attr("address","0x754")]), Phis([]), Defs([Def(Tid(721, "%000002d1"), - Attrs([Attr("address","0x754"), Attr("insn","adrp x0, #65536")]), - Var("R0",Imm(64)), Int(65536,64)), Def(Tid(728, "%000002d8"), - Attrs([Attr("address","0x758"), Attr("insn","ldr x0, [x0, #0xfe0]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(4064,64)),LittleEndian(),64)), -Def(Tid(735, "%000002df"), Attrs([Attr("address","0x75C"), -Attr("insn","ldr w0, [x0]")]), Var("R0",Imm(64)), -UNSIGNED(64,Load(Var("mem",Mem(64,8)),Var("R0",Imm(64)),LittleEndian(),32))), -Def(Tid(741, "%000002e5"), Attrs([Attr("address","0x760"), -Attr("insn","add w1, w0, #0x1")]), Var("R1",Imm(64)), -UNSIGNED(64,PLUS(Extract(31,0,Var("R0",Imm(64))),Int(1,32)))), -Def(Tid(746, "%000002ea"), Attrs([Attr("address","0x764"), -Attr("insn","adrp x0, #65536")]), Var("R0",Imm(64)), Int(65536,64)), -Def(Tid(753, "%000002f1"), Attrs([Attr("address","0x768"), -Attr("insn","ldr x0, [x0, #0xfe0]")]), Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(4064,64)),LittleEndian(),64)), -Def(Tid(761, "%000002f9"), Attrs([Attr("address","0x76C"), -Attr("insn","str w1, [x0]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("R0",Imm(64)),Extract(31,0,Var("R1",Imm(64))),LittleEndian(),32)), -Def(Tid(766, "%000002fe"), Attrs([Attr("address","0x770"), -Attr("insn","mov w0, #0x0")]), Var("R0",Imm(64)), Int(0,64))]), -Jmps([Call(Tid(771, "%00000303"), Attrs([Attr("address","0x774"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))]))])), -Sub(Tid(1_352, "@register_tm_clones"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x6C0")]), - "register_tm_clones", Args([Arg(Tid(1_400, "%00000578"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("register_tm_clones_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(564, "@register_tm_clones"), Attrs([Attr("address","0x6C0")]), - Phis([]), Defs([Def(Tid(567, "%00000237"), Attrs([Attr("address","0x6C0"), -Attr("insn","adrp x0, #69632")]), Var("R0",Imm(64)), Int(69632,64)), -Def(Tid(573, "%0000023d"), Attrs([Attr("address","0x6C4"), -Attr("insn","add x0, x0, #0x10")]), Var("R0",Imm(64)), -PLUS(Var("R0",Imm(64)),Int(16,64))), Def(Tid(578, "%00000242"), - Attrs([Attr("address","0x6C8"), Attr("insn","adrp x1, #69632")]), - Var("R1",Imm(64)), Int(69632,64)), Def(Tid(584, "%00000248"), - Attrs([Attr("address","0x6CC"), Attr("insn","add x1, x1, #0x10")]), - Var("R1",Imm(64)), PLUS(Var("R1",Imm(64)),Int(16,64))), -Def(Tid(591, "%0000024f"), Attrs([Attr("address","0x6D0"), -Attr("insn","sub x1, x1, x0")]), Var("R1",Imm(64)), -PLUS(PLUS(Var("R1",Imm(64)),NOT(Var("R0",Imm(64)))),Int(1,64))), -Def(Tid(597, "%00000255"), Attrs([Attr("address","0x6D4"), -Attr("insn","lsr x2, x1, #63")]), Var("R2",Imm(64)), -Concat(Int(0,63),Extract(63,63,Var("R1",Imm(64))))), -Def(Tid(604, "%0000025c"), Attrs([Attr("address","0x6D8"), -Attr("insn","add x1, x2, x1, asr #3")]), Var("R1",Imm(64)), -PLUS(Var("R2",Imm(64)),ARSHIFT(Var("R1",Imm(64)),Int(3,3)))), -Def(Tid(610, "%00000262"), Attrs([Attr("address","0x6DC"), -Attr("insn","asr x1, x1, #1")]), Var("R1",Imm(64)), -SIGNED(64,Extract(63,1,Var("R1",Imm(64)))))]), -Jmps([Goto(Tid(616, "%00000268"), Attrs([Attr("address","0x6E0"), -Attr("insn","cbz x1, #0x18")]), EQ(Var("R1",Imm(64)),Int(0,64)), -Direct(Tid(614, "%00000266"))), Goto(Tid(1_381, "%00000565"), Attrs([]), - Int(1,1), Direct(Tid(832, "%00000340")))])), Blk(Tid(832, "%00000340"), - Attrs([Attr("address","0x6E4")]), Phis([]), Defs([Def(Tid(835, "%00000343"), - Attrs([Attr("address","0x6E4"), Attr("insn","adrp x2, #65536")]), - Var("R2",Imm(64)), Int(65536,64)), Def(Tid(842, "%0000034a"), - Attrs([Attr("address","0x6E8"), Attr("insn","ldr x2, [x2, #0xff8]")]), - Var("R2",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R2",Imm(64)),Int(4088,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(847, "%0000034f"), Attrs([Attr("address","0x6EC"), -Attr("insn","cbz x2, #0xc")]), EQ(Var("R2",Imm(64)),Int(0,64)), -Direct(Tid(614, "%00000266"))), Goto(Tid(1_382, "%00000566"), Attrs([]), - Int(1,1), Direct(Tid(851, "%00000353")))])), Blk(Tid(614, "%00000266"), - Attrs([Attr("address","0x6F8")]), Phis([]), Defs([]), -Jmps([Call(Tid(622, "%0000026e"), Attrs([Attr("address","0x6F8"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))])), -Blk(Tid(851, "%00000353"), Attrs([Attr("address","0x6F0")]), Phis([]), -Defs([Def(Tid(855, "%00000357"), Attrs([Attr("address","0x6F0"), -Attr("insn","mov x16, x2")]), Var("R16",Imm(64)), Var("R2",Imm(64)))]), -Jmps([Call(Tid(860, "%0000035c"), Attrs([Attr("address","0x6F4"), -Attr("insn","br x16")]), Int(1,1), -(Indirect(Var("R16",Imm(64))),))]))]))]))) \ No newline at end of file diff --git a/src/test/correct/basic_assign_increment/gcc_pic/basic_assign_increment.bir b/src/test/correct/basic_assign_increment/gcc_pic/basic_assign_increment.bir deleted file mode 100644 index e5b82d791..000000000 --- a/src/test/correct/basic_assign_increment/gcc_pic/basic_assign_increment.bir +++ /dev/null @@ -1,231 +0,0 @@ -00000567: program -00000535: sub __cxa_finalize(__cxa_finalize_result) -00000568: __cxa_finalize_result :: out u32 = low:32[R0] - -0000033c: -00000434: R16 := 0x10000 -0000043b: R17 := mem[R16 + 0xFB0, el]:u64 -00000441: R16 := R16 + 0xFB0 -00000446: call R17 with noreturn - -00000536: sub __do_global_dtors_aux(__do_global_dtors_aux_result) -00000569: __do_global_dtors_aux_result :: out u32 = low:32[R0] - -00000272: -00000276: #3 := R31 - 0x20 -0000027c: mem := mem with [#3, el]:u64 <- R29 -00000282: mem := mem with [#3 + 8, el]:u64 <- R30 -00000286: R31 := #3 -0000028c: R29 := R31 -00000294: mem := mem with [R31 + 0x10, el]:u64 <- R19 -00000299: R19 := 0x11000 -000002a0: R0 := pad:64[mem[R19 + 0x10]] -000002a7: when 31:0[R0] <> 0 goto %000002a5 -0000055d: goto %00000305 - -00000305: -00000308: R0 := 0x10000 -0000030f: R0 := mem[R0 + 0xFD8, el]:u64 -00000315: when R0 = 0 goto %00000313 -0000055e: goto %0000032c - -0000032c: -0000032f: R0 := 0x11000 -00000336: R0 := mem[R0 + 8, el]:u64 -0000033b: R30 := 0x730 -0000033e: call @__cxa_finalize with return %00000313 - -00000313: -0000031b: R30 := 0x734 -0000031d: call @deregister_tm_clones with return %0000031f - -0000031f: -00000322: R0 := 1 -0000032a: mem := mem with [R19 + 0x10] <- 7:0[R0] -0000055f: goto %000002a5 - -000002a5: -000002af: R19 := mem[R31 + 0x10, el]:u64 -000002b6: R29 := mem[R31, el]:u64 -000002bb: R30 := mem[R31 + 8, el]:u64 -000002bf: R31 := R31 + 0x20 -000002c4: call R30 with noreturn - -0000053a: sub __libc_start_main(__libc_start_main_main, __libc_start_main_arg2, __libc_start_main_arg3, __libc_start_main_auxv, __libc_start_main_result) -0000056a: __libc_start_main_main :: in u64 = R0 -0000056b: __libc_start_main_arg2 :: in u32 = low:32[R1] -0000056c: __libc_start_main_arg3 :: in out u64 = R2 -0000056d: __libc_start_main_auxv :: in out u64 = R3 -0000056e: __libc_start_main_result :: out u32 = low:32[R0] - -000001cb: -0000041e: R16 := 0x10000 -00000425: R17 := mem[R16 + 0xFA8, el]:u64 -0000042b: R16 := R16 + 0xFA8 -00000430: call R17 with noreturn - -0000053b: sub _fini(_fini_result) -0000056f: _fini_result :: out u32 = low:32[R0] - -0000001f: -00000025: #0 := R31 - 0x10 -0000002b: mem := mem with [#0, el]:u64 <- R29 -00000031: mem := mem with [#0 + 8, el]:u64 <- R30 -00000035: R31 := #0 -0000003b: R29 := R31 -00000042: R29 := mem[R31, el]:u64 -00000047: R30 := mem[R31 + 8, el]:u64 -0000004b: R31 := R31 + 0x10 -00000050: call R30 with noreturn - -0000053c: sub _init(_init_result) -00000570: _init_result :: out u32 = low:32[R0] - -0000048e: -00000494: #5 := R31 - 0x10 -0000049a: mem := mem with [#5, el]:u64 <- R29 -000004a0: mem := mem with [#5 + 8, el]:u64 <- R30 -000004a4: R31 := #5 -000004aa: R29 := R31 -000004af: R30 := 0x5A8 -000004b1: call @call_weak_fn with return %000004b3 - -000004b3: -000004b8: R29 := mem[R31, el]:u64 -000004bd: R30 := mem[R31 + 8, el]:u64 -000004c1: R31 := R31 + 0x10 -000004c6: call R30 with noreturn - -0000053d: sub _start(_start_result) -00000571: _start_result :: out u32 = low:32[R0] - -0000018c: -00000191: R29 := 0 -00000196: R30 := 0 -0000019c: R5 := R0 -000001a3: R1 := mem[R31, el]:u64 -000001a9: R2 := R31 + 8 -000001af: R6 := R31 -000001b4: R0 := 0x10000 -000001bb: R0 := mem[R0 + 0xFF0, el]:u64 -000001c0: R3 := 0 -000001c5: R4 := 0 -000001ca: R30 := 0x670 -000001cd: call @__libc_start_main with return %000001cf - -000001cf: -000001d2: R30 := 0x674 -000001d5: call @abort with return %00000560 - -00000560: -00000561: call @call_weak_fn with noreturn - -00000540: sub abort() - - -000001d3: -00000460: R16 := 0x10000 -00000467: R17 := mem[R16 + 0xFC0, el]:u64 -0000046d: R16 := R16 + 0xFC0 -00000472: call R17 with noreturn - -00000541: sub call_weak_fn(call_weak_fn_result) -00000572: call_weak_fn_result :: out u32 = low:32[R0] - -000001d7: -000001da: R0 := 0x10000 -000001e1: R0 := mem[R0 + 0xFE8, el]:u64 -000001e7: when R0 = 0 goto %000001e5 -00000562: goto %0000037c - -000001e5: -000001ed: call R30 with noreturn - -0000037c: -0000037f: goto @__gmon_start__ - -0000037d: -0000044a: R16 := 0x10000 -00000451: R17 := mem[R16 + 0xFB8, el]:u64 -00000457: R16 := R16 + 0xFB8 -0000045c: call R17 with noreturn - -00000543: sub deregister_tm_clones(deregister_tm_clones_result) -00000573: deregister_tm_clones_result :: out u32 = low:32[R0] - -000001f3: -000001f6: R0 := 0x11000 -000001fc: R0 := R0 + 0x10 -00000201: R1 := 0x11000 -00000207: R1 := R1 + 0x10 -0000020d: #1 := ~R0 -00000212: #2 := R1 + ~R0 -00000218: VF := extend:65[#2 + 1] <> extend:65[R1] + extend:65[#1] + 1 -0000021e: CF := pad:65[#2 + 1] <> pad:65[R1] + pad:65[#1] + 1 -00000222: ZF := #2 + 1 = 0 -00000226: NF := 63:63[#2 + 1] -0000022c: when ZF goto %0000022a -00000563: goto %0000035e - -0000035e: -00000361: R1 := 0x10000 -00000368: R1 := mem[R1 + 0xFD0, el]:u64 -0000036d: when R1 = 0 goto %0000022a -00000564: goto %00000371 - -0000022a: -00000232: call R30 with noreturn - -00000371: -00000375: R16 := R1 -0000037a: call R16 with noreturn - -00000546: sub frame_dummy(frame_dummy_result) -00000574: frame_dummy_result :: out u32 = low:32[R0] - -000002ca: -000002cc: call @register_tm_clones with noreturn - -00000547: sub main(main_argc, main_argv, main_result) -00000575: main_argc :: in u32 = low:32[R0] -00000576: main_argv :: in out u64 = R1 -00000577: main_result :: out u32 = low:32[R0] - -000002ce: -000002d1: R0 := 0x10000 -000002d8: R0 := mem[R0 + 0xFE0, el]:u64 -000002df: R0 := pad:64[mem[R0, el]:u32] -000002e5: R1 := pad:64[31:0[R0] + 1] -000002ea: R0 := 0x10000 -000002f1: R0 := mem[R0 + 0xFE0, el]:u64 -000002f9: mem := mem with [R0, el]:u32 <- 31:0[R1] -000002fe: R0 := 0 -00000303: call R30 with noreturn - -00000548: sub register_tm_clones(register_tm_clones_result) -00000578: register_tm_clones_result :: out u32 = low:32[R0] - -00000234: -00000237: R0 := 0x11000 -0000023d: R0 := R0 + 0x10 -00000242: R1 := 0x11000 -00000248: R1 := R1 + 0x10 -0000024f: R1 := R1 + ~R0 + 1 -00000255: R2 := 0.63:63[R1] -0000025c: R1 := R2 + (R1 ~>> 3) -00000262: R1 := extend:64[63:1[R1]] -00000268: when R1 = 0 goto %00000266 -00000565: goto %00000340 - -00000340: -00000343: R2 := 0x10000 -0000034a: R2 := mem[R2 + 0xFF8, el]:u64 -0000034f: when R2 = 0 goto %00000266 -00000566: goto %00000353 - -00000266: -0000026e: call R30 with noreturn - -00000353: -00000357: R16 := R2 -0000035c: call R16 with noreturn diff --git a/src/test/correct/basic_assign_increment/gcc_pic/basic_assign_increment.expected b/src/test/correct/basic_assign_increment/gcc_pic/basic_assign_increment.expected index 43f6e240d..e4d13c830 100644 --- a/src/test/correct/basic_assign_increment/gcc_pic/basic_assign_increment.expected +++ b/src/test/correct/basic_assign_increment/gcc_pic/basic_assign_increment.expected @@ -73,7 +73,7 @@ implementation {:extern} guarantee_reflexive() assert (((memory_load32_le(mem, $x_addr) == memory_load32_le(mem, $x_addr)) || (memory_load32_le(mem, $x_addr) == 1bv32)) || (memory_load32_le(mem, $x_addr) == 6bv32)); } -procedure main_1876(); +procedure main(); modifies Gamma_R0, Gamma_R1, Gamma_mem, R0, R1, mem; requires (memory_load32_le(mem, $x_addr) == 0bv32); free requires (memory_load64_le(mem, 69632bv64) == 0bv64); @@ -92,39 +92,39 @@ procedure main_1876(); free ensures (memory_load64_le(mem, 69616bv64) == 1876bv64); free ensures (memory_load64_le(mem, 69640bv64) == 69640bv64); -implementation main_1876() +implementation main() { - var Gamma_load18: bool; - var Gamma_load19: bool; - var Gamma_load20: bool; - var load18: bv64; - var load19: bv32; - var load20: bv64; + var $load$18: bv64; + var $load$19: bv32; + var $load$20: bv64; + var Gamma_$load$18: bool; + var Gamma_$load$19: bool; + var Gamma_$load$20: bool; var x_old: bv32; lmain: assume {:captureState "lmain"} true; R0, Gamma_R0 := 65536bv64, true; call rely(); - load18, Gamma_load18 := memory_load64_le(mem, bvadd64(R0, 4064bv64)), (gamma_load64(Gamma_mem, bvadd64(R0, 4064bv64)) || L(mem, bvadd64(R0, 4064bv64))); - R0, Gamma_R0 := load18, Gamma_load18; + $load$18, Gamma_$load$18 := memory_load64_le(mem, bvadd64(R0, 4064bv64)), (gamma_load64(Gamma_mem, bvadd64(R0, 4064bv64)) || L(mem, bvadd64(R0, 4064bv64))); + R0, Gamma_R0 := $load$18, Gamma_$load$18; call rely(); - load19, Gamma_load19 := memory_load32_le(mem, R0), (gamma_load32(Gamma_mem, R0) || L(mem, R0)); - R0, Gamma_R0 := zero_extend32_32(load19), Gamma_load19; + $load$19, Gamma_$load$19 := memory_load32_le(mem, R0), (gamma_load32(Gamma_mem, R0) || L(mem, R0)); + R0, Gamma_R0 := zero_extend32_32($load$19), Gamma_$load$19; R1, Gamma_R1 := zero_extend32_32(bvadd32(R0[32:0], 1bv32)), Gamma_R0; R0, Gamma_R0 := 65536bv64, true; call rely(); - load20, Gamma_load20 := memory_load64_le(mem, bvadd64(R0, 4064bv64)), (gamma_load64(Gamma_mem, bvadd64(R0, 4064bv64)) || L(mem, bvadd64(R0, 4064bv64))); - R0, Gamma_R0 := load20, Gamma_load20; + $load$20, Gamma_$load$20 := memory_load64_le(mem, bvadd64(R0, 4064bv64)), (gamma_load64(Gamma_mem, bvadd64(R0, 4064bv64)) || L(mem, bvadd64(R0, 4064bv64))); + R0, Gamma_R0 := $load$20, Gamma_$load$20; call rely(); - x_old := memory_load32_le(mem, $x_addr); assert (L(mem, R0) ==> Gamma_R1); + x_old := memory_load32_le(mem, $x_addr); mem, Gamma_mem := memory_store32_le(mem, R0, R1[32:0]), gamma_store32(Gamma_mem, R0, Gamma_R1); assert (((memory_load32_le(mem, $x_addr) == x_old) || (memory_load32_le(mem, $x_addr) == 1bv32)) || (memory_load32_le(mem, $x_addr) == 6bv32)); assume {:captureState "%000002f9"} true; R0, Gamma_R0 := 0bv64, true; - goto main_1876_basil_return; - main_1876_basil_return: - assume {:captureState "main_1876_basil_return"} true; + goto main_basil_return; + main_basil_return: + assume {:captureState "main_basil_return"} true; return; } diff --git a/src/test/correct/basic_assign_increment/gcc_pic/basic_assign_increment.gts b/src/test/correct/basic_assign_increment/gcc_pic/basic_assign_increment.gts deleted file mode 100644 index 2f7a306b4..000000000 Binary files a/src/test/correct/basic_assign_increment/gcc_pic/basic_assign_increment.gts and /dev/null differ diff --git a/src/test/correct/basic_assign_increment/gcc_pic/basic_assign_increment.md5sum b/src/test/correct/basic_assign_increment/gcc_pic/basic_assign_increment.md5sum new file mode 100644 index 000000000..fec41c36f --- /dev/null +++ b/src/test/correct/basic_assign_increment/gcc_pic/basic_assign_increment.md5sum @@ -0,0 +1,5 @@ +4fe37778650b1268c395baaddb0a20e9 correct/basic_assign_increment/gcc_pic/a.out +d08d1e71be26a641c9197d5f8abe11c1 correct/basic_assign_increment/gcc_pic/basic_assign_increment.adt +6067b5fe1c73c5309a32c1fc09333d00 correct/basic_assign_increment/gcc_pic/basic_assign_increment.bir +ba7ac4727a588e65e9cced10bcc235fc correct/basic_assign_increment/gcc_pic/basic_assign_increment.relf +176a32c73cf57d59b275134f3a265c41 correct/basic_assign_increment/gcc_pic/basic_assign_increment.gts diff --git a/src/test/correct/basic_assign_increment/gcc_pic/basic_assign_increment.relf b/src/test/correct/basic_assign_increment/gcc_pic/basic_assign_increment.relf deleted file mode 100644 index 9285b5a58..000000000 --- a/src/test/correct/basic_assign_increment/gcc_pic/basic_assign_increment.relf +++ /dev/null @@ -1,122 +0,0 @@ - -Relocation section '.rela.dyn' at offset 0x460 contains 9 entries: - Offset Info Type Symbol's Value Symbol's Name + Addend -0000000000010d90 0000000000000403 R_AARCH64_RELATIVE 750 -0000000000010d98 0000000000000403 R_AARCH64_RELATIVE 700 -0000000000010fe0 0000000000000403 R_AARCH64_RELATIVE 11014 -0000000000010ff0 0000000000000403 R_AARCH64_RELATIVE 754 -0000000000011008 0000000000000403 R_AARCH64_RELATIVE 11008 -0000000000010fd0 0000000400000401 R_AARCH64_GLOB_DAT 0000000000000000 _ITM_deregisterTMCloneTable + 0 -0000000000010fd8 0000000500000401 R_AARCH64_GLOB_DAT 0000000000000000 __cxa_finalize@GLIBC_2.17 + 0 -0000000000010fe8 0000000600000401 R_AARCH64_GLOB_DAT 0000000000000000 __gmon_start__ + 0 -0000000000010ff8 0000000800000401 R_AARCH64_GLOB_DAT 0000000000000000 _ITM_registerTMCloneTable + 0 - -Relocation section '.rela.plt' at offset 0x538 contains 4 entries: - Offset Info Type Symbol's Value Symbol's Name + Addend -0000000000010fa8 0000000300000402 R_AARCH64_JUMP_SLOT 0000000000000000 __libc_start_main@GLIBC_2.34 + 0 -0000000000010fb0 0000000500000402 R_AARCH64_JUMP_SLOT 0000000000000000 __cxa_finalize@GLIBC_2.17 + 0 -0000000000010fb8 0000000600000402 R_AARCH64_JUMP_SLOT 0000000000000000 __gmon_start__ + 0 -0000000000010fc0 0000000700000402 R_AARCH64_JUMP_SLOT 0000000000000000 abort@GLIBC_2.17 + 0 - -Symbol table '.dynsym' contains 9 entries: - Num: Value Size Type Bind Vis Ndx Name - 0: 0000000000000000 0 NOTYPE LOCAL DEFAULT UND - 1: 0000000000000598 0 SECTION LOCAL DEFAULT 11 .init - 2: 0000000000011000 0 SECTION LOCAL DEFAULT 22 .data - 3: 0000000000000000 0 FUNC GLOBAL DEFAULT UND __libc_start_main@GLIBC_2.34 (2) - 4: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_deregisterTMCloneTable - 5: 0000000000000000 0 FUNC WEAK DEFAULT UND __cxa_finalize@GLIBC_2.17 (3) - 6: 0000000000000000 0 NOTYPE WEAK DEFAULT UND __gmon_start__ - 7: 0000000000000000 0 FUNC GLOBAL DEFAULT UND abort@GLIBC_2.17 (3) - 8: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_registerTMCloneTable - -Symbol table '.symtab' contains 88 entries: - Num: Value Size Type Bind Vis Ndx Name - 0: 0000000000000000 0 NOTYPE LOCAL DEFAULT UND - 1: 0000000000000238 0 SECTION LOCAL DEFAULT 1 .interp - 2: 0000000000000254 0 SECTION LOCAL DEFAULT 2 .note.gnu.build-id - 3: 0000000000000278 0 SECTION LOCAL DEFAULT 3 .note.ABI-tag - 4: 0000000000000298 0 SECTION LOCAL DEFAULT 4 .gnu.hash - 5: 00000000000002b8 0 SECTION LOCAL DEFAULT 5 .dynsym - 6: 0000000000000390 0 SECTION LOCAL DEFAULT 6 .dynstr - 7: 000000000000041e 0 SECTION LOCAL DEFAULT 7 .gnu.version - 8: 0000000000000430 0 SECTION LOCAL DEFAULT 8 .gnu.version_r - 9: 0000000000000460 0 SECTION LOCAL DEFAULT 9 .rela.dyn - 10: 0000000000000538 0 SECTION LOCAL DEFAULT 10 .rela.plt - 11: 0000000000000598 0 SECTION LOCAL DEFAULT 11 .init - 12: 00000000000005b0 0 SECTION LOCAL DEFAULT 12 .plt - 13: 0000000000000640 0 SECTION LOCAL DEFAULT 13 .text - 14: 0000000000000778 0 SECTION LOCAL DEFAULT 14 .fini - 15: 000000000000078c 0 SECTION LOCAL DEFAULT 15 .rodata - 16: 0000000000000790 0 SECTION LOCAL DEFAULT 16 .eh_frame_hdr - 17: 00000000000007d0 0 SECTION LOCAL DEFAULT 17 .eh_frame - 18: 0000000000010d90 0 SECTION LOCAL DEFAULT 18 .init_array - 19: 0000000000010d98 0 SECTION LOCAL DEFAULT 19 .fini_array - 20: 0000000000010da0 0 SECTION LOCAL DEFAULT 20 .dynamic - 21: 0000000000010f90 0 SECTION LOCAL DEFAULT 21 .got - 22: 0000000000011000 0 SECTION LOCAL DEFAULT 22 .data - 23: 0000000000011010 0 SECTION LOCAL DEFAULT 23 .bss - 24: 0000000000000000 0 SECTION LOCAL DEFAULT 24 .comment - 25: 0000000000000000 0 FILE LOCAL DEFAULT ABS Scrt1.o - 26: 0000000000000278 0 NOTYPE LOCAL DEFAULT 3 $d - 27: 0000000000000278 32 OBJECT LOCAL DEFAULT 3 __abi_tag - 28: 0000000000000640 0 NOTYPE LOCAL DEFAULT 13 $x - 29: 00000000000007e4 0 NOTYPE LOCAL DEFAULT 17 $d - 30: 000000000000078c 0 NOTYPE LOCAL DEFAULT 15 $d - 31: 0000000000000000 0 FILE LOCAL DEFAULT ABS crti.o - 32: 0000000000000674 0 NOTYPE LOCAL DEFAULT 13 $x - 33: 0000000000000674 20 FUNC LOCAL DEFAULT 13 call_weak_fn - 34: 0000000000000598 0 NOTYPE LOCAL DEFAULT 11 $x - 35: 0000000000000778 0 NOTYPE LOCAL DEFAULT 14 $x - 36: 0000000000000000 0 FILE LOCAL DEFAULT ABS crtn.o - 37: 00000000000005a8 0 NOTYPE LOCAL DEFAULT 11 $x - 38: 0000000000000784 0 NOTYPE LOCAL DEFAULT 14 $x - 39: 0000000000000000 0 FILE LOCAL DEFAULT ABS crtstuff.c - 40: 0000000000000690 0 NOTYPE LOCAL DEFAULT 13 $x - 41: 0000000000000690 0 FUNC LOCAL DEFAULT 13 deregister_tm_clones - 42: 00000000000006c0 0 FUNC LOCAL DEFAULT 13 register_tm_clones - 43: 0000000000011008 0 NOTYPE LOCAL DEFAULT 22 $d - 44: 0000000000000700 0 FUNC LOCAL DEFAULT 13 __do_global_dtors_aux - 45: 0000000000011010 1 OBJECT LOCAL DEFAULT 23 completed.0 - 46: 0000000000010d98 0 NOTYPE LOCAL DEFAULT 19 $d - 47: 0000000000010d98 0 OBJECT LOCAL DEFAULT 19 __do_global_dtors_aux_fini_array_entry - 48: 0000000000000750 0 FUNC LOCAL DEFAULT 13 frame_dummy - 49: 0000000000010d90 0 NOTYPE LOCAL DEFAULT 18 $d - 50: 0000000000010d90 0 OBJECT LOCAL DEFAULT 18 __frame_dummy_init_array_entry - 51: 00000000000007f8 0 NOTYPE LOCAL DEFAULT 17 $d - 52: 0000000000011010 0 NOTYPE LOCAL DEFAULT 23 $d - 53: 0000000000000000 0 FILE LOCAL DEFAULT ABS basic_assign_increment.c - 54: 0000000000011014 0 NOTYPE LOCAL DEFAULT 23 $d - 55: 0000000000000754 0 NOTYPE LOCAL DEFAULT 13 $x - 56: 0000000000000858 0 NOTYPE LOCAL DEFAULT 17 $d - 57: 0000000000000000 0 FILE LOCAL DEFAULT ABS crtstuff.c - 58: 000000000000086c 0 NOTYPE LOCAL DEFAULT 17 $d - 59: 000000000000086c 0 OBJECT LOCAL DEFAULT 17 __FRAME_END__ - 60: 0000000000000000 0 FILE LOCAL DEFAULT ABS - 61: 0000000000010da0 0 OBJECT LOCAL DEFAULT ABS _DYNAMIC - 62: 0000000000000790 0 NOTYPE LOCAL DEFAULT 16 __GNU_EH_FRAME_HDR - 63: 0000000000010fc8 0 OBJECT LOCAL DEFAULT ABS _GLOBAL_OFFSET_TABLE_ - 64: 00000000000005b0 0 NOTYPE LOCAL DEFAULT 12 $x - 65: 0000000000000000 0 FUNC GLOBAL DEFAULT UND __libc_start_main@GLIBC_2.34 - 66: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_deregisterTMCloneTable - 67: 0000000000011000 0 NOTYPE WEAK DEFAULT 22 data_start - 68: 0000000000011010 0 NOTYPE GLOBAL DEFAULT 23 __bss_start__ - 69: 0000000000000000 0 FUNC WEAK DEFAULT UND __cxa_finalize@GLIBC_2.17 - 70: 0000000000011018 0 NOTYPE GLOBAL DEFAULT 23 _bss_end__ - 71: 0000000000011010 0 NOTYPE GLOBAL DEFAULT 22 _edata - 72: 0000000000011014 4 OBJECT GLOBAL DEFAULT 23 x - 73: 0000000000000778 0 FUNC GLOBAL HIDDEN 14 _fini - 74: 0000000000011018 0 NOTYPE GLOBAL DEFAULT 23 __bss_end__ - 75: 0000000000011000 0 NOTYPE GLOBAL DEFAULT 22 __data_start - 76: 0000000000000000 0 NOTYPE WEAK DEFAULT UND __gmon_start__ - 77: 0000000000011008 0 OBJECT GLOBAL HIDDEN 22 __dso_handle - 78: 0000000000000000 0 FUNC GLOBAL DEFAULT UND abort@GLIBC_2.17 - 79: 000000000000078c 4 OBJECT GLOBAL DEFAULT 15 _IO_stdin_used - 80: 0000000000011018 0 NOTYPE GLOBAL DEFAULT 23 _end - 81: 0000000000000640 52 FUNC GLOBAL DEFAULT 13 _start - 82: 0000000000011018 0 NOTYPE GLOBAL DEFAULT 23 __end__ - 83: 0000000000011010 0 NOTYPE GLOBAL DEFAULT 23 __bss_start - 84: 0000000000000754 36 FUNC GLOBAL DEFAULT 13 main - 85: 0000000000011010 0 OBJECT GLOBAL HIDDEN 22 __TMC_END__ - 86: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_registerTMCloneTable - 87: 0000000000000598 0 FUNC GLOBAL HIDDEN 11 _init diff --git a/src/test/correct/basic_assign_increment/gcc_pic/basic_assign_increment_gtirb.expected b/src/test/correct/basic_assign_increment/gcc_pic/basic_assign_increment_gtirb.expected index f5e5edbc3..b2d37f517 100644 --- a/src/test/correct/basic_assign_increment/gcc_pic/basic_assign_increment_gtirb.expected +++ b/src/test/correct/basic_assign_increment/gcc_pic/basic_assign_increment_gtirb.expected @@ -73,7 +73,7 @@ implementation {:extern} guarantee_reflexive() assert (((memory_load32_le(mem, $x_addr) == memory_load32_le(mem, $x_addr)) || (memory_load32_le(mem, $x_addr) == 1bv32)) || (memory_load32_le(mem, $x_addr) == 6bv32)); } -procedure main_1876(); +procedure main(); modifies Gamma_R0, Gamma_R1, Gamma_mem, R0, R1, mem; requires (memory_load32_le(mem, $x_addr) == 0bv32); free requires (memory_load64_le(mem, 69632bv64) == 0bv64); @@ -92,39 +92,39 @@ procedure main_1876(); free ensures (memory_load64_le(mem, 69616bv64) == 1876bv64); free ensures (memory_load64_le(mem, 69640bv64) == 69640bv64); -implementation main_1876() +implementation main() { - var Gamma_load20: bool; - var Gamma_load21: bool; - var Gamma_load22: bool; - var load20: bv64; - var load21: bv32; - var load22: bv64; + var $load20: bv64; + var $load21: bv32; + var $load22: bv64; + var Gamma_$load20: bool; + var Gamma_$load21: bool; + var Gamma_$load22: bool; var x_old: bv32; - main_1876__0__x4rdl4IySJOtuvEUdyndvg: - assume {:captureState "main_1876__0__x4rdl4IySJOtuvEUdyndvg"} true; + $main$__0__$x4rdl4IySJOtuvEUdyndvg: + assume {:captureState "$main$__0__$x4rdl4IySJOtuvEUdyndvg"} true; R0, Gamma_R0 := 65536bv64, true; call rely(); - load20, Gamma_load20 := memory_load64_le(mem, bvadd64(R0, 4064bv64)), (gamma_load64(Gamma_mem, bvadd64(R0, 4064bv64)) || L(mem, bvadd64(R0, 4064bv64))); - R0, Gamma_R0 := load20, Gamma_load20; + $load20, Gamma_$load20 := memory_load64_le(mem, bvadd64(R0, 4064bv64)), (gamma_load64(Gamma_mem, bvadd64(R0, 4064bv64)) || L(mem, bvadd64(R0, 4064bv64))); + R0, Gamma_R0 := $load20, Gamma_$load20; call rely(); - load21, Gamma_load21 := memory_load32_le(mem, R0), (gamma_load32(Gamma_mem, R0) || L(mem, R0)); - R0, Gamma_R0 := zero_extend32_32(load21), Gamma_load21; + $load21, Gamma_$load21 := memory_load32_le(mem, R0), (gamma_load32(Gamma_mem, R0) || L(mem, R0)); + R0, Gamma_R0 := zero_extend32_32($load21), Gamma_$load21; R1, Gamma_R1 := zero_extend32_32(bvadd32(R0[32:0], 1bv32)), Gamma_R0; R0, Gamma_R0 := 65536bv64, true; call rely(); - load22, Gamma_load22 := memory_load64_le(mem, bvadd64(R0, 4064bv64)), (gamma_load64(Gamma_mem, bvadd64(R0, 4064bv64)) || L(mem, bvadd64(R0, 4064bv64))); - R0, Gamma_R0 := load22, Gamma_load22; + $load22, Gamma_$load22 := memory_load64_le(mem, bvadd64(R0, 4064bv64)), (gamma_load64(Gamma_mem, bvadd64(R0, 4064bv64)) || L(mem, bvadd64(R0, 4064bv64))); + R0, Gamma_R0 := $load22, Gamma_$load22; call rely(); - x_old := memory_load32_le(mem, $x_addr); assert (L(mem, R0) ==> Gamma_R1); + x_old := memory_load32_le(mem, $x_addr); mem, Gamma_mem := memory_store32_le(mem, R0, R1[32:0]), gamma_store32(Gamma_mem, R0, Gamma_R1); assert (((memory_load32_le(mem, $x_addr) == x_old) || (memory_load32_le(mem, $x_addr) == 1bv32)) || (memory_load32_le(mem, $x_addr) == 6bv32)); - assume {:captureState "1900_0"} true; + assume {:captureState "1900$0"} true; R0, Gamma_R0 := 0bv64, true; - goto main_1876_basil_return; - main_1876_basil_return: - assume {:captureState "main_1876_basil_return"} true; + goto main_basil_return; + main_basil_return: + assume {:captureState "main_basil_return"} true; return; } diff --git a/src/test/correct/basic_function_call_caller/clang/basic_function_call_caller.adt b/src/test/correct/basic_function_call_caller/clang/basic_function_call_caller.adt deleted file mode 100644 index 9a5fd77c5..000000000 --- a/src/test/correct/basic_function_call_caller/clang/basic_function_call_caller.adt +++ /dev/null @@ -1,544 +0,0 @@ -Project(Attrs([Attr("filename","\"clang/basic_function_call_caller.out\""), -Attr("image-specification","(declare abi (name str))\n(declare arch (name str))\n(declare base-address (addr int))\n(declare bias (off int))\n(declare bits (size int))\n(declare code-region (addr int) (size int) (off int))\n(declare code-start (addr int))\n(declare entry-point (addr int))\n(declare external-reference (addr int) (name str))\n(declare format (name str))\n(declare is-executable (flag bool))\n(declare is-little-endian (flag bool))\n(declare llvm:base-address (addr int))\n(declare llvm:code-entry (name str) (off int) (size int))\n(declare llvm:coff-import-library (name str))\n(declare llvm:coff-virtual-section-header (name str) (addr int) (size int))\n(declare llvm:elf-program-header (name str) (off int) (size int))\n(declare llvm:elf-program-header-flags (name str) (ld bool) (r bool) \n (w bool) (x bool))\n(declare llvm:elf-virtual-program-header (name str) (addr int) (size int))\n(declare llvm:entry-point (addr int))\n(declare llvm:macho-symbol (name str) (value int))\n(declare llvm:name-reference (at int) (name str))\n(declare llvm:relocation (at int) (addr int))\n(declare llvm:section-entry (name str) (addr int) (size int) (off int))\n(declare llvm:section-flags (name str) (r bool) (w bool) (x bool))\n(declare llvm:segment-command (name str) (off int) (size int))\n(declare llvm:segment-command-flags (name str) (r bool) (w bool) (x bool))\n(declare llvm:symbol-entry (name str) (addr int) (size int) (off int)\n (value int))\n(declare llvm:virtual-segment-command (name str) (addr int) (size int))\n(declare mapped (addr int) (size int) (off int))\n(declare named-region (addr int) (size int) (name str))\n(declare named-symbol (addr int) (name str))\n(declare require (name str))\n(declare section (addr int) (size int))\n(declare segment (addr int) (size int) (r bool) (w bool) (x bool))\n(declare subarch (name str))\n(declare symbol-chunk (addr int) (size int) (root int))\n(declare symbol-value (addr int) (value int))\n(declare system (name str))\n(declare vendor (name str))\n\n(abi unknown)\n(arch aarch64)\n(base-address 0)\n(bias 0)\n(bits 64)\n(code-region 1876 20 1876)\n(code-region 1536 340 1536)\n(code-region 1440 96 1440)\n(code-region 1408 24 1408)\n(code-start 1588)\n(code-start 1536)\n(code-start 1812)\n(code-start 1820)\n(entry-point 1536)\n(external-reference 69568 _ITM_deregisterTMCloneTable)\n(external-reference 69576 __cxa_finalize)\n(external-reference 69584 __gmon_start__)\n(external-reference 69600 _ITM_registerTMCloneTable)\n(external-reference 69632 __libc_start_main)\n(external-reference 69640 __cxa_finalize)\n(external-reference 69648 __gmon_start__)\n(external-reference 69656 abort)\n(format elf)\n(is-executable true)\n(is-little-endian true)\n(llvm:base-address 0)\n(llvm:code-entry abort 0 0)\n(llvm:code-entry __cxa_finalize 0 0)\n(llvm:code-entry __libc_start_main 0 0)\n(llvm:code-entry _init 1408 0)\n(llvm:code-entry main 1820 56)\n(llvm:code-entry zero 1812 8)\n(llvm:code-entry _start 1536 52)\n(llvm:code-entry abort@GLIBC_2.17 0 0)\n(llvm:code-entry _fini 1876 0)\n(llvm:code-entry __cxa_finalize@GLIBC_2.17 0 0)\n(llvm:code-entry __libc_start_main@GLIBC_2.34 0 0)\n(llvm:code-entry frame_dummy 1808 0)\n(llvm:code-entry __do_global_dtors_aux 1728 0)\n(llvm:code-entry register_tm_clones 1664 0)\n(llvm:code-entry deregister_tm_clones 1616 0)\n(llvm:code-entry call_weak_fn 1588 20)\n(llvm:code-entry .fini 1876 20)\n(llvm:code-entry .text 1536 340)\n(llvm:code-entry .plt 1440 96)\n(llvm:code-entry .init 1408 24)\n(llvm:elf-program-header 08 3528 568)\n(llvm:elf-program-header 07 0 0)\n(llvm:elf-program-header 06 1900 68)\n(llvm:elf-program-header 05 596 68)\n(llvm:elf-program-header 04 3544 480)\n(llvm:elf-program-header 03 3528 616)\n(llvm:elf-program-header 02 0 2188)\n(llvm:elf-program-header 01 568 27)\n(llvm:elf-program-header 00 64 504)\n(llvm:elf-program-header-flags 08 false true false false)\n(llvm:elf-program-header-flags 07 false true true false)\n(llvm:elf-program-header-flags 06 false true false false)\n(llvm:elf-program-header-flags 05 false true false false)\n(llvm:elf-program-header-flags 04 false true true false)\n(llvm:elf-program-header-flags 03 true true true false)\n(llvm:elf-program-header-flags 02 true true false true)\n(llvm:elf-program-header-flags 01 false true false false)\n(llvm:elf-program-header-flags 00 false true false false)\n(llvm:elf-virtual-program-header 08 69064 568)\n(llvm:elf-virtual-program-header 07 0 0)\n(llvm:elf-virtual-program-header 06 1900 68)\n(llvm:elf-virtual-program-header 05 596 68)\n(llvm:elf-virtual-program-header 04 69080 480)\n(llvm:elf-virtual-program-header 03 69064 632)\n(llvm:elf-virtual-program-header 02 0 2188)\n(llvm:elf-virtual-program-header 01 568 27)\n(llvm:elf-virtual-program-header 00 64 504)\n(llvm:entry-point 1536)\n(llvm:name-reference 69656 abort)\n(llvm:name-reference 69648 __gmon_start__)\n(llvm:name-reference 69640 __cxa_finalize)\n(llvm:name-reference 69632 __libc_start_main)\n(llvm:name-reference 69600 _ITM_registerTMCloneTable)\n(llvm:name-reference 69584 __gmon_start__)\n(llvm:name-reference 69576 __cxa_finalize)\n(llvm:name-reference 69568 _ITM_deregisterTMCloneTable)\n(llvm:section-entry .shstrtab 0 259 7011)\n(llvm:section-entry .strtab 0 587 6424)\n(llvm:section-entry .symtab 0 2208 4216)\n(llvm:section-entry .comment 0 71 4144)\n(llvm:section-entry .bss 69680 16 4144)\n(llvm:section-entry .data 69664 16 4128)\n(llvm:section-entry .got.plt 69608 56 4072)\n(llvm:section-entry .got 69560 48 4024)\n(llvm:section-entry .dynamic 69080 480 3544)\n(llvm:section-entry .fini_array 69072 8 3536)\n(llvm:section-entry .init_array 69064 8 3528)\n(llvm:section-entry .eh_frame 1968 220 1968)\n(llvm:section-entry .eh_frame_hdr 1900 68 1900)\n(llvm:section-entry .rodata 1896 4 1896)\n(llvm:section-entry .fini 1876 20 1876)\n(llvm:section-entry .text 1536 340 1536)\n(llvm:section-entry .plt 1440 96 1440)\n(llvm:section-entry .init 1408 24 1408)\n(llvm:section-entry .rela.plt 1312 96 1312)\n(llvm:section-entry .rela.dyn 1120 192 1120)\n(llvm:section-entry .gnu.version_r 1072 48 1072)\n(llvm:section-entry .gnu.version 1054 18 1054)\n(llvm:section-entry .dynstr 912 141 912)\n(llvm:section-entry .dynsym 696 216 696)\n(llvm:section-entry .gnu.hash 664 28 664)\n(llvm:section-entry .note.ABI-tag 632 32 632)\n(llvm:section-entry .note.gnu.build-id 596 36 596)\n(llvm:section-entry .interp 568 27 568)\n(llvm:section-flags .shstrtab true false false)\n(llvm:section-flags .strtab true false false)\n(llvm:section-flags .symtab true false false)\n(llvm:section-flags .comment true false false)\n(llvm:section-flags .bss true true false)\n(llvm:section-flags .data true true false)\n(llvm:section-flags .got.plt true true false)\n(llvm:section-flags .got true true false)\n(llvm:section-flags .dynamic true true false)\n(llvm:section-flags .fini_array true true false)\n(llvm:section-flags .init_array true true false)\n(llvm:section-flags .eh_frame true false false)\n(llvm:section-flags .eh_frame_hdr true false false)\n(llvm:section-flags .rodata true false false)\n(llvm:section-flags .fini true false true)\n(llvm:section-flags .text true false true)\n(llvm:section-flags .plt true false true)\n(llvm:section-flags .init true false true)\n(llvm:section-flags .rela.plt true false false)\n(llvm:section-flags .rela.dyn true false false)\n(llvm:section-flags .gnu.version_r true false false)\n(llvm:section-flags .gnu.version true false false)\n(llvm:section-flags .dynstr true false false)\n(llvm:section-flags .dynsym true false false)\n(llvm:section-flags .gnu.hash true false false)\n(llvm:section-flags .note.ABI-tag true false false)\n(llvm:section-flags .note.gnu.build-id true false false)\n(llvm:section-flags .interp true false false)\n(llvm:symbol-entry abort 0 0 0 0)\n(llvm:symbol-entry __cxa_finalize 0 0 0 0)\n(llvm:symbol-entry __libc_start_main 0 0 0 0)\n(llvm:symbol-entry _init 1408 0 1408 1408)\n(llvm:symbol-entry main 1820 56 1820 1820)\n(llvm:symbol-entry zero 1812 8 1812 1812)\n(llvm:symbol-entry _start 1536 52 1536 1536)\n(llvm:symbol-entry abort@GLIBC_2.17 0 0 0 0)\n(llvm:symbol-entry _fini 1876 0 1876 1876)\n(llvm:symbol-entry __cxa_finalize@GLIBC_2.17 0 0 0 0)\n(llvm:symbol-entry __libc_start_main@GLIBC_2.34 0 0 0 0)\n(llvm:symbol-entry frame_dummy 1808 0 1808 1808)\n(llvm:symbol-entry __do_global_dtors_aux 1728 0 1728 1728)\n(llvm:symbol-entry register_tm_clones 1664 0 1664 1664)\n(llvm:symbol-entry deregister_tm_clones 1616 0 1616 1616)\n(llvm:symbol-entry call_weak_fn 1588 20 1588 1588)\n(mapped 0 2188 0)\n(mapped 69064 616 3528)\n(named-region 0 2188 02)\n(named-region 69064 632 03)\n(named-region 568 27 .interp)\n(named-region 596 36 .note.gnu.build-id)\n(named-region 632 32 .note.ABI-tag)\n(named-region 664 28 .gnu.hash)\n(named-region 696 216 .dynsym)\n(named-region 912 141 .dynstr)\n(named-region 1054 18 .gnu.version)\n(named-region 1072 48 .gnu.version_r)\n(named-region 1120 192 .rela.dyn)\n(named-region 1312 96 .rela.plt)\n(named-region 1408 24 .init)\n(named-region 1440 96 .plt)\n(named-region 1536 340 .text)\n(named-region 1876 20 .fini)\n(named-region 1896 4 .rodata)\n(named-region 1900 68 .eh_frame_hdr)\n(named-region 1968 220 .eh_frame)\n(named-region 69064 8 .init_array)\n(named-region 69072 8 .fini_array)\n(named-region 69080 480 .dynamic)\n(named-region 69560 48 .got)\n(named-region 69608 56 .got.plt)\n(named-region 69664 16 .data)\n(named-region 69680 16 .bss)\n(named-region 0 71 .comment)\n(named-region 0 2208 .symtab)\n(named-region 0 587 .strtab)\n(named-region 0 259 .shstrtab)\n(named-symbol 1588 call_weak_fn)\n(named-symbol 1616 deregister_tm_clones)\n(named-symbol 1664 register_tm_clones)\n(named-symbol 1728 __do_global_dtors_aux)\n(named-symbol 1808 frame_dummy)\n(named-symbol 0 __libc_start_main@GLIBC_2.34)\n(named-symbol 0 __cxa_finalize@GLIBC_2.17)\n(named-symbol 1876 _fini)\n(named-symbol 0 abort@GLIBC_2.17)\n(named-symbol 1536 _start)\n(named-symbol 1812 zero)\n(named-symbol 1820 main)\n(named-symbol 1408 _init)\n(named-symbol 0 __libc_start_main)\n(named-symbol 0 __cxa_finalize)\n(named-symbol 0 abort)\n(require libc.so.6)\n(section 568 27)\n(section 596 36)\n(section 632 32)\n(section 664 28)\n(section 696 216)\n(section 912 141)\n(section 1054 18)\n(section 1072 48)\n(section 1120 192)\n(section 1312 96)\n(section 1408 24)\n(section 1440 96)\n(section 1536 340)\n(section 1876 20)\n(section 1896 4)\n(section 1900 68)\n(section 1968 220)\n(section 69064 8)\n(section 69072 8)\n(section 69080 480)\n(section 69560 48)\n(section 69608 56)\n(section 69664 16)\n(section 69680 16)\n(section 0 71)\n(section 0 2208)\n(section 0 587)\n(section 0 259)\n(segment 0 2188 true false true)\n(segment 69064 632 true true false)\n(subarch v8)\n(symbol-chunk 1588 20 1588)\n(symbol-chunk 1536 52 1536)\n(symbol-chunk 1812 8 1812)\n(symbol-chunk 1820 56 1820)\n(symbol-value 1588 1588)\n(symbol-value 1616 1616)\n(symbol-value 1664 1664)\n(symbol-value 1728 1728)\n(symbol-value 1808 1808)\n(symbol-value 1876 1876)\n(symbol-value 1536 1536)\n(symbol-value 1812 1812)\n(symbol-value 1820 1820)\n(symbol-value 1408 1408)\n(symbol-value 0 0)\n(system \"\")\n(vendor \"\")\n"), -Attr("abi-name","\"aarch64-linux-gnu-elf\"")]), -Sections([Section(".shstrtab", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x00\x06\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x68\x1c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x38\x00\x09\x00\x40\x00\x1d\x00\x1c\x00\x06\x00\x00\x00\x04\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x04\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x8c\x08\x00\x00\x00\x00\x00\x00\x8c\x08\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x01\x00\x00\x00\x06\x00\x00\x00\xc8\x0d\x00\x00\x00\x00\x00\x00\xc8\x0d\x01\x00\x00\x00\x00\x00\xc8\x0d\x01"), -Section(".strtab", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x00\x06\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x68\x1c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x38\x00\x09\x00\x40\x00\x1d\x00\x1c\x00\x06\x00\x00\x00\x04\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x04\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x8c\x08\x00\x00\x00\x00\x00\x00\x8c\x08\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x01\x00\x00\x00\x06\x00\x00\x00\xc8\x0d\x00\x00\x00\x00\x00\x00\xc8\x0d\x01\x00\x00\x00\x00\x00\xc8\x0d\x01\x00\x00\x00\x00\x00\x68\x02\x00\x00\x00\x00\x00\x00\x78\x02\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x02\x00\x00\x00\x06\x00\x00\x00\xd8\x0d\x00\x00\x00\x00\x00\x00\xd8\x0d\x01\x00\x00\x00\x00\x00\xd8\x0d\x01\x00\x00\x00\x00\x00\xe0\x01\x00\x00\x00\x00\x00\x00\xe0\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x04\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x50\xe5\x74\x64\x04\x00\x00\x00\x6c\x07\x00\x00\x00\x00\x00\x00\x6c\x07\x00\x00\x00\x00\x00\x00\x6c\x07\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x51\xe5\x74\x64\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x52\xe5\x74\x64\x04\x00\x00\x00\xc8\x0d\x00\x00\x00\x00\x00\x00\xc8\x0d\x01\x00\x00\x00\x00\x00\xc8\x0d\x01\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x2f\x6c\x69\x62\x2f\x6c\x64\x2d\x6c\x69\x6e\x75\x78\x2d\x61\x61\x72\x63\x68"), -Section(".comment", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x00\x06\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x68\x1c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x38\x00\x09\x00\x40\x00\x1d\x00\x1c\x00\x06\x00\x00\x00\x04\x00\x00"), -Section(".interp", 0x238, "\x2f\x6c\x69\x62\x2f\x6c\x64\x2d\x6c\x69\x6e\x75\x78\x2d\x61\x61\x72\x63\x68\x36\x34\x2e\x73\x6f\x2e\x31\x00"), -Section(".note.gnu.build-id", 0x254, "\x04\x00\x00\x00\x14\x00\x00\x00\x03\x00\x00\x00\x47\x4e\x55\x00\x67\x27\x14\xf2\x7d\x33\x7a\xe5\xba\x1d\xdb\x2e\x34\x42\xa4\x3b\xe2\x08\x20\x80"), -Section(".note.ABI-tag", 0x278, "\x04\x00\x00\x00\x10\x00\x00\x00\x01\x00\x00\x00\x47\x4e\x55\x00\x00\x00\x00\x00\x03\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00"), -Section(".gnu.hash", 0x298, "\x01\x00\x00\x00\x01\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".dynsym", 0x2B8, "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x0b\x00\x80\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x17\x00\x20\x10\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x48\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x22\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x22\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x73\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".dynstr", 0x390, "\x00\x5f\x5f\x63\x78\x61\x5f\x66\x69\x6e\x61\x6c\x69\x7a\x65\x00\x5f\x5f\x6c\x69\x62\x63\x5f\x73\x74\x61\x72\x74\x5f\x6d\x61\x69\x6e\x00\x61\x62\x6f\x72\x74\x00\x6c\x69\x62\x63\x2e\x73\x6f\x2e\x36\x00\x47\x4c\x49\x42\x43\x5f\x32\x2e\x31\x37\x00\x47\x4c\x49\x42\x43\x5f\x32\x2e\x33\x34\x00\x5f\x49\x54\x4d\x5f\x64\x65\x72\x65\x67\x69\x73\x74\x65\x72\x54\x4d\x43\x6c\x6f\x6e\x65\x54\x61\x62\x6c\x65\x00\x5f\x5f\x67\x6d\x6f\x6e\x5f\x73\x74\x61\x72\x74\x5f\x5f\x00\x5f\x49\x54\x4d\x5f\x72\x65\x67\x69\x73\x74\x65\x72\x54\x4d\x43\x6c\x6f\x6e\x65\x54\x61\x62\x6c\x65\x00"), -Section(".gnu.version", 0x41E, "\x00\x00\x00\x00\x00\x00\x02\x00\x01\x00\x03\x00\x01\x00\x03\x00\x01\x00"), -Section(".gnu.version_r", 0x430, "\x01\x00\x02\x00\x28\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x97\x91\x96\x06\x00\x00\x03\x00\x32\x00\x00\x00\x10\x00\x00\x00\xb4\x91\x96\x06\x00\x00\x02\x00\x3d\x00\x00\x00\x00\x00\x00\x00"), -Section(".rela.dyn", 0x460, "\xc8\x0d\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x10\x07\x00\x00\x00\x00\x00\x00\xd0\x0d\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\xc0\x06\x00\x00\x00\x00\x00\x00\xd8\x0f\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x1c\x07\x00\x00\x00\x00\x00\x00\x28\x10\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x28\x10\x01\x00\x00\x00\x00\x00\xc0\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xc8\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xd0\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe0\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".rela.plt", 0x520, "\x00\x10\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x08\x10\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x10\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x18\x10\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".init", 0x580, "\x1f\x20\x03\xd5\xfd\x7b\xbf\xa9\xfd\x03\x00\x91\x2a\x00\x00\x94\xfd\x7b\xc1\xa8\xc0\x03\x5f\xd6"), -Section(".plt", 0x5A0, "\xf0\x7b\xbf\xa9\x90\x00\x00\x90\x11\xfe\x47\xf9\x10\xe2\x3f\x91\x20\x02\x1f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x90\x00\x00\xb0\x11\x02\x40\xf9\x10\x02\x00\x91\x20\x02\x1f\xd6\x90\x00\x00\xb0\x11\x06\x40\xf9\x10\x22\x00\x91\x20\x02\x1f\xd6\x90\x00\x00\xb0\x11\x0a\x40\xf9\x10\x42\x00\x91\x20\x02\x1f\xd6\x90\x00\x00\xb0\x11\x0e\x40\xf9\x10\x62\x00\x91\x20\x02\x1f\xd6"), -Section(".text", 0x600, "\x1f\x20\x03\xd5\x1d\x00\x80\xd2\x1e\x00\x80\xd2\xe5\x03\x00\xaa\xe1\x03\x40\xf9\xe2\x23\x00\x91\xe6\x03\x00\x91\x80\x00\x00\x90\x00\xec\x47\xf9\x03\x00\x80\xd2\x04\x00\x80\xd2\xe5\xff\xff\x97\xf0\xff\xff\x97\x80\x00\x00\x90\x00\xe8\x47\xf9\x40\x00\x00\xb4\xe8\xff\xff\x17\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x80\x00\x00\xb0\x00\xc0\x00\x91\x81\x00\x00\xb0\x21\xc0\x00\x91\x3f\x00\x00\xeb\xc0\x00\x00\x54\x81\x00\x00\x90\x21\xe0\x47\xf9\x61\x00\x00\xb4\xf0\x03\x01\xaa\x00\x02\x1f\xd6\xc0\x03\x5f\xd6\x80\x00\x00\xb0\x00\xc0\x00\x91\x81\x00\x00\xb0\x21\xc0\x00\x91\x21\x00\x00\xcb\x22\xfc\x7f\xd3\x41\x0c\x81\x8b\x21\xfc\x41\x93\xc1\x00\x00\xb4\x82\x00\x00\x90\x42\xf0\x47\xf9\x62\x00\x00\xb4\xf0\x03\x02\xaa\x00\x02\x1f\xd6\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\xfd\x7b\xbe\xa9\xfd\x03\x00\x91\xf3\x0b\x00\xf9\x93\x00\x00\xb0\x60\xc2\x40\x39\x40\x01\x00\x35\x80\x00\x00\x90\x00\xe4\x47\xf9\x80\x00\x00\xb4\x80\x00\x00\xb0\x00\x14\x40\xf9\xb9\xff\xff\x97\xd8\xff\xff\x97\x20\x00\x80\x52\x60\xc2\x00\x39\xf3\x0b\x40\xf9\xfd\x7b\xc2\xa8\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\xdc\xff\xff\x17\xe0\x03\x1f\x2a\xc0\x03\x5f\xd6\xff\x83\x00\xd1\xfd\x7b\x01\xa9\xfd\x43\x00\x91\xa0\xc3\x1f\xb8\xfa\xff\xff\x97\x88\x00\x00\xb0\x00\x35\x00\xb9\xa8\xc3\x5f\xb8\x89\x00\x00\xb0\x28\x39\x00\xb9\xe0\x03\x1f\x2a\xfd\x7b\x41\xa9\xff\x83\x00\x91\xc0\x03\x5f\xd6"), -Section(".fini", 0x754, "\x1f\x20\x03\xd5\xfd\x7b\xbf\xa9\xfd\x03\x00\x91\xfd\x7b\xc1\xa8\xc0\x03\x5f\xd6"), -Section(".rodata", 0x768, "\x01\x00\x02\x00"), -Section(".eh_frame_hdr", 0x76C, "\x01\x1b\x03\x3b\x40\x00\x00\x00\x07\x00\x00\x00\x94\xfe\xff\xff\x58\x00\x00\x00\xe4\xfe\xff\xff\x6c\x00\x00\x00\x14\xff\xff\xff\x80\x00\x00\x00\x54\xff\xff\xff\x94\x00\x00\x00\xa4\xff\xff\xff\xb8\x00\x00\x00\xa8\xff\xff\xff\xe0\x00\x00\x00\xb0\xff\xff\xff\xf4\x00\x00\x00"), -Section(".eh_frame", 0x7B0, "\x10\x00\x00\x00\x00\x00\x00\x00\x01\x7a\x52\x00\x04\x78\x1e\x01\x1b\x0c\x1f\x00\x10\x00\x00\x00\x18\x00\x00\x00\x34\xfe\xff\xff\x34\x00\x00\x00\x00\x41\x07\x1e\x10\x00\x00\x00\x2c\x00\x00\x00\x70\xfe\xff\xff\x30\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x40\x00\x00\x00\x8c\xfe\xff\xff\x3c\x00\x00\x00\x00\x00\x00\x00\x20\x00\x00\x00\x54\x00\x00\x00\xb8\xfe\xff\xff\x48\x00\x00\x00\x00\x41\x0e\x20\x9d\x04\x9e\x03\x42\x93\x02\x4e\xde\xdd\xd3\x0e\x00\x00\x00\x00\x10\x00\x00\x00\x78\x00\x00\x00\xe4\xfe\xff\xff\x04\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x01\x7a\x52\x00\x01\x7c\x1e\x01\x1b\x0c\x1f\x00\x10\x00\x00\x00\x18\x00\x00\x00\xc0\xfe\xff\xff\x08\x00\x00\x00\x00\x00\x00\x00\x24\x00\x00\x00\x2c\x00\x00\x00\xb4\xfe\xff\xff\x38\x00\x00\x00\x00\x44\x0e\x20\x48\x0c\x1d\x10\x9e\x02\x9d\x04\x60\x0c\x1f\x20\x48\x0e\x00\xde\xdd\x00\x00\x00\x00\x00\x00\x00"), -Section(".fini_array", 0x10DD0, "\xc0\x06\x00\x00\x00\x00\x00\x00"), -Section(".dynamic", 0x10DD8, "\x01\x00\x00\x00\x00\x00\x00\x00\x28\x00\x00\x00\x00\x00\x00\x00\x0c\x00\x00\x00\x00\x00\x00\x00\x80\x05\x00\x00\x00\x00\x00\x00\x0d\x00\x00\x00\x00\x00\x00\x00\x54\x07\x00\x00\x00\x00\x00\x00\x19\x00\x00\x00\x00\x00\x00\x00\xc8\x0d\x01\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x1a\x00\x00\x00\x00\x00\x00\x00\xd0\x0d\x01\x00\x00\x00\x00\x00\x1c\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\xf5\xfe\xff\x6f\x00\x00\x00\x00\x98\x02\x00\x00\x00\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x90\x03\x00\x00\x00\x00\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\xb8\x02\x00\x00\x00\x00\x00\x00\x0a\x00\x00\x00\x00\x00\x00\x00\x8d\x00\x00\x00\x00\x00\x00\x00\x0b\x00\x00\x00\x00\x00\x00\x00\x18\x00\x00\x00\x00\x00\x00\x00\x15\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\xe8\x0f\x01\x00\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x60\x00\x00\x00\x00\x00\x00\x00\x14\x00\x00\x00\x00\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x17\x00\x00\x00\x00\x00\x00\x00\x20\x05\x00\x00\x00\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x60\x04\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\xc0\x00\x00\x00\x00\x00\x00\x00\x09\x00\x00\x00\x00\x00\x00\x00\x18\x00\x00\x00\x00\x00\x00\x00\xfb\xff\xff\x6f\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\xfe\xff\xff\x6f\x00\x00\x00\x00\x30\x04\x00\x00\x00\x00\x00\x00\xff\xff\xff\x6f\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\xf0\xff\xff\x6f\x00\x00\x00\x00\x1e\x04\x00\x00\x00\x00\x00\x00\xf9\xff\xff\x6f\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".got", 0x10FB8, "\xd8\x0d\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1c\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".got.plt", 0x10FE8, "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xa0\x05\x00\x00\x00\x00\x00\x00\xa0\x05\x00\x00\x00\x00\x00\x00\xa0\x05\x00\x00\x00\x00\x00\x00\xa0\x05\x00\x00\x00\x00\x00\x00"), -Section(".data", 0x11020, "\x00\x00\x00\x00\x00\x00\x00\x00\x28\x10\x01\x00\x00\x00\x00\x00"), -Section(".init_array", 0x10DC8, "\x10\x07\x00\x00\x00\x00\x00\x00")]), -Memmap([Annotation(Region(0x0,0x88B), Attr("segment","02 0 2188")), -Annotation(Region(0x600,0x633), Attr("symbol","\"_start\"")), -Annotation(Region(0x0,0x102), Attr("section","\".shstrtab\"")), -Annotation(Region(0x0,0x24A), Attr("section","\".strtab\"")), -Annotation(Region(0x0,0x46), Attr("section","\".comment\"")), -Annotation(Region(0x238,0x252), Attr("section","\".interp\"")), -Annotation(Region(0x254,0x277), Attr("section","\".note.gnu.build-id\"")), -Annotation(Region(0x278,0x297), Attr("section","\".note.ABI-tag\"")), -Annotation(Region(0x298,0x2B3), Attr("section","\".gnu.hash\"")), -Annotation(Region(0x2B8,0x38F), Attr("section","\".dynsym\"")), -Annotation(Region(0x390,0x41C), Attr("section","\".dynstr\"")), -Annotation(Region(0x41E,0x42F), Attr("section","\".gnu.version\"")), -Annotation(Region(0x430,0x45F), Attr("section","\".gnu.version_r\"")), -Annotation(Region(0x460,0x51F), Attr("section","\".rela.dyn\"")), -Annotation(Region(0x520,0x57F), Attr("section","\".rela.plt\"")), -Annotation(Region(0x580,0x597), Attr("section","\".init\"")), -Annotation(Region(0x5A0,0x5FF), Attr("section","\".plt\"")), -Annotation(Region(0x580,0x597), Attr("code-region","()")), -Annotation(Region(0x5A0,0x5FF), Attr("code-region","()")), -Annotation(Region(0x600,0x633), Attr("symbol-info","_start 0x600 52")), -Annotation(Region(0x634,0x647), Attr("symbol","\"call_weak_fn\"")), -Annotation(Region(0x634,0x647), Attr("symbol-info","call_weak_fn 0x634 20")), -Annotation(Region(0x714,0x71B), Attr("symbol","\"zero\"")), -Annotation(Region(0x600,0x753), Attr("section","\".text\"")), -Annotation(Region(0x600,0x753), Attr("code-region","()")), -Annotation(Region(0x714,0x71B), Attr("symbol-info","zero 0x714 8")), -Annotation(Region(0x71C,0x753), Attr("symbol","\"main\"")), -Annotation(Region(0x71C,0x753), Attr("symbol-info","main 0x71C 56")), -Annotation(Region(0x754,0x767), Attr("section","\".fini\"")), -Annotation(Region(0x754,0x767), Attr("code-region","()")), -Annotation(Region(0x768,0x76B), Attr("section","\".rodata\"")), -Annotation(Region(0x76C,0x7AF), Attr("section","\".eh_frame_hdr\"")), -Annotation(Region(0x7B0,0x88B), Attr("section","\".eh_frame\"")), -Annotation(Region(0x10DC8,0x1102F), Attr("segment","03 0x10DC8 632")), -Annotation(Region(0x10DD0,0x10DD7), Attr("section","\".fini_array\"")), -Annotation(Region(0x10DD8,0x10FB7), Attr("section","\".dynamic\"")), -Annotation(Region(0x10FB8,0x10FE7), Attr("section","\".got\"")), -Annotation(Region(0x10FE8,0x1101F), Attr("section","\".got.plt\"")), -Annotation(Region(0x11020,0x1102F), Attr("section","\".data\"")), -Annotation(Region(0x10DC8,0x10DCF), Attr("section","\".init_array\""))]), -Program(Tid(1_577, "%00000629"), Attrs([]), - Subs([Sub(Tid(1_525, "@__cxa_finalize"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x5D0"), -Attr("stub","()")]), "__cxa_finalize", Args([Arg(Tid(1_578, "%0000062a"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("__cxa_finalize_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(921, "@__cxa_finalize"), - Attrs([Attr("address","0x5D0")]), Phis([]), -Defs([Def(Tid(1_169, "%00000491"), Attrs([Attr("address","0x5D0"), -Attr("insn","adrp x16, #69632")]), Var("R16",Imm(64)), Int(69632,64)), -Def(Tid(1_176, "%00000498"), Attrs([Attr("address","0x5D4"), -Attr("insn","ldr x17, [x16, #0x8]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(1_182, "%0000049e"), Attrs([Attr("address","0x5D8"), -Attr("insn","add x16, x16, #0x8")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(8,64)))]), Jmps([Call(Tid(1_187, "%000004a3"), - Attrs([Attr("address","0x5DC"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), -Sub(Tid(1_526, "@__do_global_dtors_aux"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x6C0")]), - "__do_global_dtors_aux", Args([Arg(Tid(1_579, "%0000062b"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("__do_global_dtors_aux_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(654, "@__do_global_dtors_aux"), - Attrs([Attr("address","0x6C0")]), Phis([]), Defs([Def(Tid(658, "%00000292"), - Attrs([Attr("address","0x6C0"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("#3",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(18446744073709551584,64))), -Def(Tid(664, "%00000298"), Attrs([Attr("address","0x6C0"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("#3",Imm(64)),Var("R29",Imm(64)),LittleEndian(),64)), -Def(Tid(670, "%0000029e"), Attrs([Attr("address","0x6C0"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("#3",Imm(64)),Int(8,64)),Var("R30",Imm(64)),LittleEndian(),64)), -Def(Tid(674, "%000002a2"), Attrs([Attr("address","0x6C0"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("R31",Imm(64)), -Var("#3",Imm(64))), Def(Tid(680, "%000002a8"), - Attrs([Attr("address","0x6C4"), Attr("insn","mov x29, sp")]), - Var("R29",Imm(64)), Var("R31",Imm(64))), Def(Tid(688, "%000002b0"), - Attrs([Attr("address","0x6C8"), Attr("insn","str x19, [sp, #0x10]")]), - Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(16,64)),Var("R19",Imm(64)),LittleEndian(),64)), -Def(Tid(693, "%000002b5"), Attrs([Attr("address","0x6CC"), -Attr("insn","adrp x19, #69632")]), Var("R19",Imm(64)), Int(69632,64)), -Def(Tid(700, "%000002bc"), Attrs([Attr("address","0x6D0"), -Attr("insn","ldrb w0, [x19, #0x30]")]), Var("R0",Imm(64)), -UNSIGNED(64,Load(Var("mem",Mem(64,8)),PLUS(Var("R19",Imm(64)),Int(48,64)),LittleEndian(),8)))]), -Jmps([Goto(Tid(707, "%000002c3"), Attrs([Attr("address","0x6D4"), -Attr("insn","cbnz w0, #0x28")]), - NEQ(Extract(31,0,Var("R0",Imm(64))),Int(0,32)), -Direct(Tid(705, "%000002c1"))), Goto(Tid(1_567, "%0000061f"), Attrs([]), - Int(1,1), Direct(Tid(866, "%00000362")))])), Blk(Tid(866, "%00000362"), - Attrs([Attr("address","0x6D8")]), Phis([]), Defs([Def(Tid(869, "%00000365"), - Attrs([Attr("address","0x6D8"), Attr("insn","adrp x0, #65536")]), - Var("R0",Imm(64)), Int(65536,64)), Def(Tid(876, "%0000036c"), - Attrs([Attr("address","0x6DC"), Attr("insn","ldr x0, [x0, #0xfc8]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(4040,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(882, "%00000372"), Attrs([Attr("address","0x6E0"), -Attr("insn","cbz x0, #0x10")]), EQ(Var("R0",Imm(64)),Int(0,64)), -Direct(Tid(880, "%00000370"))), Goto(Tid(1_568, "%00000620"), Attrs([]), - Int(1,1), Direct(Tid(905, "%00000389")))])), Blk(Tid(905, "%00000389"), - Attrs([Attr("address","0x6E4")]), Phis([]), Defs([Def(Tid(908, "%0000038c"), - Attrs([Attr("address","0x6E4"), Attr("insn","adrp x0, #69632")]), - Var("R0",Imm(64)), Int(69632,64)), Def(Tid(915, "%00000393"), - Attrs([Attr("address","0x6E8"), Attr("insn","ldr x0, [x0, #0x28]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(40,64)),LittleEndian(),64)), -Def(Tid(920, "%00000398"), Attrs([Attr("address","0x6EC"), -Attr("insn","bl #-0x11c")]), Var("R30",Imm(64)), Int(1776,64))]), -Jmps([Call(Tid(923, "%0000039b"), Attrs([Attr("address","0x6EC"), -Attr("insn","bl #-0x11c")]), Int(1,1), -(Direct(Tid(1_525, "@__cxa_finalize")),Direct(Tid(880, "%00000370"))))])), -Blk(Tid(880, "%00000370"), Attrs([Attr("address","0x6F0")]), Phis([]), -Defs([Def(Tid(888, "%00000378"), Attrs([Attr("address","0x6F0"), -Attr("insn","bl #-0xa0")]), Var("R30",Imm(64)), Int(1780,64))]), -Jmps([Call(Tid(890, "%0000037a"), Attrs([Attr("address","0x6F0"), -Attr("insn","bl #-0xa0")]), Int(1,1), -(Direct(Tid(1_539, "@deregister_tm_clones")),Direct(Tid(892, "%0000037c"))))])), -Blk(Tid(892, "%0000037c"), Attrs([Attr("address","0x6F4")]), Phis([]), -Defs([Def(Tid(895, "%0000037f"), Attrs([Attr("address","0x6F4"), -Attr("insn","mov w0, #0x1")]), Var("R0",Imm(64)), Int(1,64)), -Def(Tid(903, "%00000387"), Attrs([Attr("address","0x6F8"), -Attr("insn","strb w0, [x19, #0x30]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R19",Imm(64)),Int(48,64)),Extract(7,0,Var("R0",Imm(64))),LittleEndian(),8))]), -Jmps([Goto(Tid(1_569, "%00000621"), Attrs([]), Int(1,1), -Direct(Tid(705, "%000002c1")))])), Blk(Tid(705, "%000002c1"), - Attrs([Attr("address","0x6FC")]), Phis([]), Defs([Def(Tid(715, "%000002cb"), - Attrs([Attr("address","0x6FC"), Attr("insn","ldr x19, [sp, #0x10]")]), - Var("R19",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(16,64)),LittleEndian(),64)), -Def(Tid(722, "%000002d2"), Attrs([Attr("address","0x700"), -Attr("insn","ldp x29, x30, [sp], #0x20")]), Var("R29",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(727, "%000002d7"), Attrs([Attr("address","0x700"), -Attr("insn","ldp x29, x30, [sp], #0x20")]), Var("R30",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(731, "%000002db"), Attrs([Attr("address","0x700"), -Attr("insn","ldp x29, x30, [sp], #0x20")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(32,64)))]), Jmps([Call(Tid(736, "%000002e0"), - Attrs([Attr("address","0x704"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), Sub(Tid(1_530, "@__libc_start_main"), - Attrs([Attr("c.proto","signed (*)(signed (*)(signed , char** , char** );* main, signed , char** , \nvoid* auxv)"), -Attr("address","0x5C0"), Attr("stub","()")]), "__libc_start_main", - Args([Arg(Tid(1_580, "%0000062c"), - Attrs([Attr("c.layout","**[ : 64]"), -Attr("c.data","Top:u64 ptr ptr"), -Attr("c.type","signed (*)(signed , char** , char** );*")]), - Var("__libc_start_main_main",Imm(64)), Var("R0",Imm(64)), In()), -Arg(Tid(1_581, "%0000062d"), Attrs([Attr("c.layout","[signed : 32]"), -Attr("c.data","Top:u32"), Attr("c.type","signed")]), - Var("__libc_start_main_arg2",Imm(32)), LOW(32,Var("R1",Imm(64))), In()), -Arg(Tid(1_582, "%0000062e"), Attrs([Attr("c.layout","**[char : 8]"), -Attr("c.data","Top:u8 ptr ptr"), Attr("c.type","char**")]), - Var("__libc_start_main_arg3",Imm(64)), Var("R2",Imm(64)), Both()), -Arg(Tid(1_583, "%0000062f"), Attrs([Attr("c.layout","*[ : 8]"), -Attr("c.data","{} ptr"), Attr("c.type","void*")]), - Var("__libc_start_main_auxv",Imm(64)), Var("R3",Imm(64)), Both()), -Arg(Tid(1_584, "%00000630"), Attrs([Attr("c.layout","[signed : 32]"), -Attr("c.data","Top:u32"), Attr("c.type","signed")]), - Var("__libc_start_main_result",Imm(32)), LOW(32,Var("R0",Imm(64))), -Out())]), Blks([Blk(Tid(487, "@__libc_start_main"), - Attrs([Attr("address","0x5C0")]), Phis([]), -Defs([Def(Tid(1_147, "%0000047b"), Attrs([Attr("address","0x5C0"), -Attr("insn","adrp x16, #69632")]), Var("R16",Imm(64)), Int(69632,64)), -Def(Tid(1_154, "%00000482"), Attrs([Attr("address","0x5C4"), -Attr("insn","ldr x17, [x16]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R16",Imm(64)),LittleEndian(),64)), -Def(Tid(1_160, "%00000488"), Attrs([Attr("address","0x5C8"), -Attr("insn","add x16, x16, #0x0")]), Var("R16",Imm(64)), -Var("R16",Imm(64)))]), Jmps([Call(Tid(1_165, "%0000048d"), - Attrs([Attr("address","0x5CC"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), Sub(Tid(1_531, "@_fini"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x754")]), - "_fini", Args([Arg(Tid(1_585, "%00000631"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("_fini_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(31, "@_fini"), - Attrs([Attr("address","0x754")]), Phis([]), Defs([Def(Tid(37, "%00000025"), - Attrs([Attr("address","0x758"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("#0",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(18446744073709551600,64))), -Def(Tid(43, "%0000002b"), Attrs([Attr("address","0x758"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("#0",Imm(64)),Var("R29",Imm(64)),LittleEndian(),64)), -Def(Tid(49, "%00000031"), Attrs([Attr("address","0x758"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("#0",Imm(64)),Int(8,64)),Var("R30",Imm(64)),LittleEndian(),64)), -Def(Tid(53, "%00000035"), Attrs([Attr("address","0x758"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("R31",Imm(64)), -Var("#0",Imm(64))), Def(Tid(59, "%0000003b"), Attrs([Attr("address","0x75C"), -Attr("insn","mov x29, sp")]), Var("R29",Imm(64)), Var("R31",Imm(64))), -Def(Tid(66, "%00000042"), Attrs([Attr("address","0x760"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R29",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(71, "%00000047"), Attrs([Attr("address","0x760"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R30",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(75, "%0000004b"), Attrs([Attr("address","0x760"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(16,64)))]), Jmps([Call(Tid(80, "%00000050"), - Attrs([Attr("address","0x764"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), Sub(Tid(1_532, "@_init"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x580")]), - "_init", Args([Arg(Tid(1_586, "%00000632"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("_init_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(1_351, "@_init"), - Attrs([Attr("address","0x580")]), Phis([]), -Defs([Def(Tid(1_357, "%0000054d"), Attrs([Attr("address","0x584"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("#7",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(18446744073709551600,64))), -Def(Tid(1_363, "%00000553"), Attrs([Attr("address","0x584"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("#7",Imm(64)),Var("R29",Imm(64)),LittleEndian(),64)), -Def(Tid(1_369, "%00000559"), Attrs([Attr("address","0x584"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("#7",Imm(64)),Int(8,64)),Var("R30",Imm(64)),LittleEndian(),64)), -Def(Tid(1_373, "%0000055d"), Attrs([Attr("address","0x584"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("R31",Imm(64)), -Var("#7",Imm(64))), Def(Tid(1_379, "%00000563"), - Attrs([Attr("address","0x588"), Attr("insn","mov x29, sp")]), - Var("R29",Imm(64)), Var("R31",Imm(64))), Def(Tid(1_384, "%00000568"), - Attrs([Attr("address","0x58C"), Attr("insn","bl #0xa8")]), - Var("R30",Imm(64)), Int(1424,64))]), Jmps([Call(Tid(1_386, "%0000056a"), - Attrs([Attr("address","0x58C"), Attr("insn","bl #0xa8")]), Int(1,1), -(Direct(Tid(1_537, "@call_weak_fn")),Direct(Tid(1_388, "%0000056c"))))])), -Blk(Tid(1_388, "%0000056c"), Attrs([Attr("address","0x590")]), Phis([]), -Defs([Def(Tid(1_393, "%00000571"), Attrs([Attr("address","0x590"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R29",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(1_398, "%00000576"), Attrs([Attr("address","0x590"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R30",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(1_402, "%0000057a"), Attrs([Attr("address","0x590"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(16,64)))]), Jmps([Call(Tid(1_407, "%0000057f"), - Attrs([Attr("address","0x594"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), Sub(Tid(1_533, "@_start"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x600"), -Attr("stub","()"), Attr("entry-point","()")]), "_start", - Args([Arg(Tid(1_587, "%00000633"), Attrs([Attr("c.layout","[signed : 32]"), -Attr("c.data","Top:u32"), Attr("c.type","signed")]), - Var("_start_result",Imm(32)), LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(424, "@_start"), Attrs([Attr("address","0x600")]), Phis([]), -Defs([Def(Tid(429, "%000001ad"), Attrs([Attr("address","0x604"), -Attr("insn","mov x29, #0x0")]), Var("R29",Imm(64)), Int(0,64)), -Def(Tid(434, "%000001b2"), Attrs([Attr("address","0x608"), -Attr("insn","mov x30, #0x0")]), Var("R30",Imm(64)), Int(0,64)), -Def(Tid(440, "%000001b8"), Attrs([Attr("address","0x60C"), -Attr("insn","mov x5, x0")]), Var("R5",Imm(64)), Var("R0",Imm(64))), -Def(Tid(447, "%000001bf"), Attrs([Attr("address","0x610"), -Attr("insn","ldr x1, [sp]")]), Var("R1",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(453, "%000001c5"), Attrs([Attr("address","0x614"), -Attr("insn","add x2, sp, #0x8")]), Var("R2",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(8,64))), Def(Tid(459, "%000001cb"), - Attrs([Attr("address","0x618"), Attr("insn","mov x6, sp")]), - Var("R6",Imm(64)), Var("R31",Imm(64))), Def(Tid(464, "%000001d0"), - Attrs([Attr("address","0x61C"), Attr("insn","adrp x0, #65536")]), - Var("R0",Imm(64)), Int(65536,64)), Def(Tid(471, "%000001d7"), - Attrs([Attr("address","0x620"), Attr("insn","ldr x0, [x0, #0xfd8]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(4056,64)),LittleEndian(),64)), -Def(Tid(476, "%000001dc"), Attrs([Attr("address","0x624"), -Attr("insn","mov x3, #0x0")]), Var("R3",Imm(64)), Int(0,64)), -Def(Tid(481, "%000001e1"), Attrs([Attr("address","0x628"), -Attr("insn","mov x4, #0x0")]), Var("R4",Imm(64)), Int(0,64)), -Def(Tid(486, "%000001e6"), Attrs([Attr("address","0x62C"), -Attr("insn","bl #-0x6c")]), Var("R30",Imm(64)), Int(1584,64))]), -Jmps([Call(Tid(489, "%000001e9"), Attrs([Attr("address","0x62C"), -Attr("insn","bl #-0x6c")]), Int(1,1), -(Direct(Tid(1_530, "@__libc_start_main")),Direct(Tid(491, "%000001eb"))))])), -Blk(Tid(491, "%000001eb"), Attrs([Attr("address","0x630")]), Phis([]), -Defs([Def(Tid(494, "%000001ee"), Attrs([Attr("address","0x630"), -Attr("insn","bl #-0x40")]), Var("R30",Imm(64)), Int(1588,64))]), -Jmps([Call(Tid(497, "%000001f1"), Attrs([Attr("address","0x630"), -Attr("insn","bl #-0x40")]), Int(1,1), -(Direct(Tid(1_536, "@abort")),Direct(Tid(1_570, "%00000622"))))])), -Blk(Tid(1_570, "%00000622"), Attrs([]), Phis([]), Defs([]), -Jmps([Call(Tid(1_571, "%00000623"), Attrs([]), Int(1,1), -(Direct(Tid(1_537, "@call_weak_fn")),))]))])), Sub(Tid(1_536, "@abort"), - Attrs([Attr("noreturn","()"), Attr("c.proto","void (*)(void)"), -Attr("address","0x5F0"), Attr("stub","()")]), "abort", Args([]), -Blks([Blk(Tid(495, "@abort"), Attrs([Attr("address","0x5F0")]), Phis([]), -Defs([Def(Tid(1_213, "%000004bd"), Attrs([Attr("address","0x5F0"), -Attr("insn","adrp x16, #69632")]), Var("R16",Imm(64)), Int(69632,64)), -Def(Tid(1_220, "%000004c4"), Attrs([Attr("address","0x5F4"), -Attr("insn","ldr x17, [x16, #0x18]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(24,64)),LittleEndian(),64)), -Def(Tid(1_226, "%000004ca"), Attrs([Attr("address","0x5F8"), -Attr("insn","add x16, x16, #0x18")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(24,64)))]), Jmps([Call(Tid(1_231, "%000004cf"), - Attrs([Attr("address","0x5FC"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), Sub(Tid(1_537, "@call_weak_fn"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x634")]), - "call_weak_fn", Args([Arg(Tid(1_588, "%00000634"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("call_weak_fn_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(499, "@call_weak_fn"), - Attrs([Attr("address","0x634")]), Phis([]), Defs([Def(Tid(502, "%000001f6"), - Attrs([Attr("address","0x634"), Attr("insn","adrp x0, #65536")]), - Var("R0",Imm(64)), Int(65536,64)), Def(Tid(509, "%000001fd"), - Attrs([Attr("address","0x638"), Attr("insn","ldr x0, [x0, #0xfd0]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(4048,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(515, "%00000203"), Attrs([Attr("address","0x63C"), -Attr("insn","cbz x0, #0x8")]), EQ(Var("R0",Imm(64)),Int(0,64)), -Direct(Tid(513, "%00000201"))), Goto(Tid(1_572, "%00000624"), Attrs([]), - Int(1,1), Direct(Tid(985, "%000003d9")))])), Blk(Tid(513, "%00000201"), - Attrs([Attr("address","0x644")]), Phis([]), Defs([]), -Jmps([Call(Tid(521, "%00000209"), Attrs([Attr("address","0x644"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))])), -Blk(Tid(985, "%000003d9"), Attrs([Attr("address","0x640")]), Phis([]), -Defs([]), Jmps([Goto(Tid(988, "%000003dc"), Attrs([Attr("address","0x640"), -Attr("insn","b #-0x60")]), Int(1,1), Direct(Tid(986, "@__gmon_start__")))])), -Blk(Tid(986, "@__gmon_start__"), Attrs([Attr("address","0x5E0")]), Phis([]), -Defs([Def(Tid(1_191, "%000004a7"), Attrs([Attr("address","0x5E0"), -Attr("insn","adrp x16, #69632")]), Var("R16",Imm(64)), Int(69632,64)), -Def(Tid(1_198, "%000004ae"), Attrs([Attr("address","0x5E4"), -Attr("insn","ldr x17, [x16, #0x10]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(16,64)),LittleEndian(),64)), -Def(Tid(1_204, "%000004b4"), Attrs([Attr("address","0x5E8"), -Attr("insn","add x16, x16, #0x10")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(16,64)))]), Jmps([Call(Tid(1_209, "%000004b9"), - Attrs([Attr("address","0x5EC"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), -Sub(Tid(1_539, "@deregister_tm_clones"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x650")]), - "deregister_tm_clones", Args([Arg(Tid(1_589, "%00000635"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("deregister_tm_clones_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(527, "@deregister_tm_clones"), - Attrs([Attr("address","0x650")]), Phis([]), Defs([Def(Tid(530, "%00000212"), - Attrs([Attr("address","0x650"), Attr("insn","adrp x0, #69632")]), - Var("R0",Imm(64)), Int(69632,64)), Def(Tid(536, "%00000218"), - Attrs([Attr("address","0x654"), Attr("insn","add x0, x0, #0x30")]), - Var("R0",Imm(64)), PLUS(Var("R0",Imm(64)),Int(48,64))), -Def(Tid(541, "%0000021d"), Attrs([Attr("address","0x658"), -Attr("insn","adrp x1, #69632")]), Var("R1",Imm(64)), Int(69632,64)), -Def(Tid(547, "%00000223"), Attrs([Attr("address","0x65C"), -Attr("insn","add x1, x1, #0x30")]), Var("R1",Imm(64)), -PLUS(Var("R1",Imm(64)),Int(48,64))), Def(Tid(553, "%00000229"), - Attrs([Attr("address","0x660"), Attr("insn","cmp x1, x0")]), - Var("#1",Imm(64)), NOT(Var("R0",Imm(64)))), Def(Tid(558, "%0000022e"), - Attrs([Attr("address","0x660"), Attr("insn","cmp x1, x0")]), - Var("#2",Imm(64)), PLUS(Var("R1",Imm(64)),NOT(Var("R0",Imm(64))))), -Def(Tid(564, "%00000234"), Attrs([Attr("address","0x660"), -Attr("insn","cmp x1, x0")]), Var("VF",Imm(1)), -NEQ(SIGNED(65,PLUS(Var("#2",Imm(64)),Int(1,64))),PLUS(PLUS(SIGNED(65,Var("R1",Imm(64))),SIGNED(65,Var("#1",Imm(64)))),Int(1,65)))), -Def(Tid(570, "%0000023a"), Attrs([Attr("address","0x660"), -Attr("insn","cmp x1, x0")]), Var("CF",Imm(1)), -NEQ(UNSIGNED(65,PLUS(Var("#2",Imm(64)),Int(1,64))),PLUS(PLUS(UNSIGNED(65,Var("R1",Imm(64))),UNSIGNED(65,Var("#1",Imm(64)))),Int(1,65)))), -Def(Tid(574, "%0000023e"), Attrs([Attr("address","0x660"), -Attr("insn","cmp x1, x0")]), Var("ZF",Imm(1)), -EQ(PLUS(Var("#2",Imm(64)),Int(1,64)),Int(0,64))), Def(Tid(578, "%00000242"), - Attrs([Attr("address","0x660"), Attr("insn","cmp x1, x0")]), - Var("NF",Imm(1)), Extract(63,63,PLUS(Var("#2",Imm(64)),Int(1,64))))]), -Jmps([Goto(Tid(584, "%00000248"), Attrs([Attr("address","0x664"), -Attr("insn","b.eq #0x18")]), EQ(Var("ZF",Imm(1)),Int(1,1)), -Direct(Tid(582, "%00000246"))), Goto(Tid(1_573, "%00000625"), Attrs([]), - Int(1,1), Direct(Tid(955, "%000003bb")))])), Blk(Tid(955, "%000003bb"), - Attrs([Attr("address","0x668")]), Phis([]), Defs([Def(Tid(958, "%000003be"), - Attrs([Attr("address","0x668"), Attr("insn","adrp x1, #65536")]), - Var("R1",Imm(64)), Int(65536,64)), Def(Tid(965, "%000003c5"), - Attrs([Attr("address","0x66C"), Attr("insn","ldr x1, [x1, #0xfc0]")]), - Var("R1",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R1",Imm(64)),Int(4032,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(970, "%000003ca"), Attrs([Attr("address","0x670"), -Attr("insn","cbz x1, #0xc")]), EQ(Var("R1",Imm(64)),Int(0,64)), -Direct(Tid(582, "%00000246"))), Goto(Tid(1_574, "%00000626"), Attrs([]), - Int(1,1), Direct(Tid(974, "%000003ce")))])), Blk(Tid(582, "%00000246"), - Attrs([Attr("address","0x67C")]), Phis([]), Defs([]), -Jmps([Call(Tid(590, "%0000024e"), Attrs([Attr("address","0x67C"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))])), -Blk(Tid(974, "%000003ce"), Attrs([Attr("address","0x674")]), Phis([]), -Defs([Def(Tid(978, "%000003d2"), Attrs([Attr("address","0x674"), -Attr("insn","mov x16, x1")]), Var("R16",Imm(64)), Var("R1",Imm(64)))]), -Jmps([Call(Tid(983, "%000003d7"), Attrs([Attr("address","0x678"), -Attr("insn","br x16")]), Int(1,1), (Indirect(Var("R16",Imm(64))),))]))])), -Sub(Tid(1_542, "@frame_dummy"), Attrs([Attr("c.proto","signed (*)(void)"), -Attr("address","0x710")]), "frame_dummy", Args([Arg(Tid(1_590, "%00000636"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("frame_dummy_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(742, "@frame_dummy"), - Attrs([Attr("address","0x710")]), Phis([]), Defs([]), -Jmps([Call(Tid(744, "%000002e8"), Attrs([Attr("address","0x710"), -Attr("insn","b #-0x90")]), Int(1,1), -(Direct(Tid(1_544, "@register_tm_clones")),))]))])), Sub(Tid(1_543, "@main"), - Attrs([Attr("c.proto","signed (*)(signed argc, const char** argv)"), -Attr("address","0x71C")]), "main", Args([Arg(Tid(1_591, "%00000637"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("main_argc",Imm(32)), -LOW(32,Var("R0",Imm(64))), In()), Arg(Tid(1_592, "%00000638"), - Attrs([Attr("c.layout","**[char : 8]"), Attr("c.data","Top:u8 ptr ptr"), -Attr("c.type"," const char**")]), Var("main_argv",Imm(64)), -Var("R1",Imm(64)), Both()), Arg(Tid(1_593, "%00000639"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("main_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(756, "@main"), - Attrs([Attr("address","0x71C")]), Phis([]), Defs([Def(Tid(760, "%000002f8"), - Attrs([Attr("address","0x71C"), Attr("insn","sub sp, sp, #0x20")]), - Var("R31",Imm(64)), PLUS(Var("R31",Imm(64)),Int(18446744073709551584,64))), -Def(Tid(766, "%000002fe"), Attrs([Attr("address","0x720"), -Attr("insn","stp x29, x30, [sp, #0x10]")]), Var("#4",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(16,64))), Def(Tid(772, "%00000304"), - Attrs([Attr("address","0x720"), Attr("insn","stp x29, x30, [sp, #0x10]")]), - Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("#4",Imm(64)),Var("R29",Imm(64)),LittleEndian(),64)), -Def(Tid(778, "%0000030a"), Attrs([Attr("address","0x720"), -Attr("insn","stp x29, x30, [sp, #0x10]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("#4",Imm(64)),Int(8,64)),Var("R30",Imm(64)),LittleEndian(),64)), -Def(Tid(784, "%00000310"), Attrs([Attr("address","0x724"), -Attr("insn","add x29, sp, #0x10")]), Var("R29",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(16,64))), Def(Tid(792, "%00000318"), - Attrs([Attr("address","0x728"), Attr("insn","stur w0, [x29, #-0x4]")]), - Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R29",Imm(64)),Int(18446744073709551612,64)),Extract(31,0,Var("R0",Imm(64))),LittleEndian(),32)), -Def(Tid(797, "%0000031d"), Attrs([Attr("address","0x72C"), -Attr("insn","bl #-0x18")]), Var("R30",Imm(64)), Int(1840,64))]), -Jmps([Call(Tid(799, "%0000031f"), Attrs([Attr("address","0x72C"), -Attr("insn","bl #-0x18")]), Int(1,1), -(Direct(Tid(1_547, "@zero")),Direct(Tid(801, "%00000321"))))])), -Blk(Tid(801, "%00000321"), Attrs([Attr("address","0x730")]), Phis([]), -Defs([Def(Tid(804, "%00000324"), Attrs([Attr("address","0x730"), -Attr("insn","adrp x8, #69632")]), Var("R8",Imm(64)), Int(69632,64)), -Def(Tid(812, "%0000032c"), Attrs([Attr("address","0x734"), -Attr("insn","str w0, [x8, #0x34]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R8",Imm(64)),Int(52,64)),Extract(31,0,Var("R0",Imm(64))),LittleEndian(),32)), -Def(Tid(819, "%00000333"), Attrs([Attr("address","0x738"), -Attr("insn","ldur w8, [x29, #-0x4]")]), Var("R8",Imm(64)), -UNSIGNED(64,Load(Var("mem",Mem(64,8)),PLUS(Var("R29",Imm(64)),Int(18446744073709551612,64)),LittleEndian(),32))), -Def(Tid(824, "%00000338"), Attrs([Attr("address","0x73C"), -Attr("insn","adrp x9, #69632")]), Var("R9",Imm(64)), Int(69632,64)), -Def(Tid(832, "%00000340"), Attrs([Attr("address","0x740"), -Attr("insn","str w8, [x9, #0x38]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R9",Imm(64)),Int(56,64)),Extract(31,0,Var("R8",Imm(64))),LittleEndian(),32)), -Def(Tid(837, "%00000345"), Attrs([Attr("address","0x744"), -Attr("insn","mov w0, wzr")]), Var("R0",Imm(64)), Int(0,64)), -Def(Tid(843, "%0000034b"), Attrs([Attr("address","0x748"), -Attr("insn","ldp x29, x30, [sp, #0x10]")]), Var("#5",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(16,64))), Def(Tid(848, "%00000350"), - Attrs([Attr("address","0x748"), Attr("insn","ldp x29, x30, [sp, #0x10]")]), - Var("R29",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("#5",Imm(64)),LittleEndian(),64)), -Def(Tid(853, "%00000355"), Attrs([Attr("address","0x748"), -Attr("insn","ldp x29, x30, [sp, #0x10]")]), Var("R30",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("#5",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(859, "%0000035b"), Attrs([Attr("address","0x74C"), -Attr("insn","add sp, sp, #0x20")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(32,64)))]), Jmps([Call(Tid(864, "%00000360"), - Attrs([Attr("address","0x750"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), -Sub(Tid(1_544, "@register_tm_clones"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x680")]), - "register_tm_clones", Args([Arg(Tid(1_594, "%0000063a"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("register_tm_clones_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(592, "@register_tm_clones"), Attrs([Attr("address","0x680")]), - Phis([]), Defs([Def(Tid(595, "%00000253"), Attrs([Attr("address","0x680"), -Attr("insn","adrp x0, #69632")]), Var("R0",Imm(64)), Int(69632,64)), -Def(Tid(601, "%00000259"), Attrs([Attr("address","0x684"), -Attr("insn","add x0, x0, #0x30")]), Var("R0",Imm(64)), -PLUS(Var("R0",Imm(64)),Int(48,64))), Def(Tid(606, "%0000025e"), - Attrs([Attr("address","0x688"), Attr("insn","adrp x1, #69632")]), - Var("R1",Imm(64)), Int(69632,64)), Def(Tid(612, "%00000264"), - Attrs([Attr("address","0x68C"), Attr("insn","add x1, x1, #0x30")]), - Var("R1",Imm(64)), PLUS(Var("R1",Imm(64)),Int(48,64))), -Def(Tid(619, "%0000026b"), Attrs([Attr("address","0x690"), -Attr("insn","sub x1, x1, x0")]), Var("R1",Imm(64)), -PLUS(PLUS(Var("R1",Imm(64)),NOT(Var("R0",Imm(64)))),Int(1,64))), -Def(Tid(625, "%00000271"), Attrs([Attr("address","0x694"), -Attr("insn","lsr x2, x1, #63")]), Var("R2",Imm(64)), -Concat(Int(0,63),Extract(63,63,Var("R1",Imm(64))))), -Def(Tid(632, "%00000278"), Attrs([Attr("address","0x698"), -Attr("insn","add x1, x2, x1, asr #3")]), Var("R1",Imm(64)), -PLUS(Var("R2",Imm(64)),ARSHIFT(Var("R1",Imm(64)),Int(3,3)))), -Def(Tid(638, "%0000027e"), Attrs([Attr("address","0x69C"), -Attr("insn","asr x1, x1, #1")]), Var("R1",Imm(64)), -SIGNED(64,Extract(63,1,Var("R1",Imm(64)))))]), -Jmps([Goto(Tid(644, "%00000284"), Attrs([Attr("address","0x6A0"), -Attr("insn","cbz x1, #0x18")]), EQ(Var("R1",Imm(64)),Int(0,64)), -Direct(Tid(642, "%00000282"))), Goto(Tid(1_575, "%00000627"), Attrs([]), - Int(1,1), Direct(Tid(925, "%0000039d")))])), Blk(Tid(925, "%0000039d"), - Attrs([Attr("address","0x6A4")]), Phis([]), Defs([Def(Tid(928, "%000003a0"), - Attrs([Attr("address","0x6A4"), Attr("insn","adrp x2, #65536")]), - Var("R2",Imm(64)), Int(65536,64)), Def(Tid(935, "%000003a7"), - Attrs([Attr("address","0x6A8"), Attr("insn","ldr x2, [x2, #0xfe0]")]), - Var("R2",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R2",Imm(64)),Int(4064,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(940, "%000003ac"), Attrs([Attr("address","0x6AC"), -Attr("insn","cbz x2, #0xc")]), EQ(Var("R2",Imm(64)),Int(0,64)), -Direct(Tid(642, "%00000282"))), Goto(Tid(1_576, "%00000628"), Attrs([]), - Int(1,1), Direct(Tid(944, "%000003b0")))])), Blk(Tid(642, "%00000282"), - Attrs([Attr("address","0x6B8")]), Phis([]), Defs([]), -Jmps([Call(Tid(650, "%0000028a"), Attrs([Attr("address","0x6B8"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))])), -Blk(Tid(944, "%000003b0"), Attrs([Attr("address","0x6B0")]), Phis([]), -Defs([Def(Tid(948, "%000003b4"), Attrs([Attr("address","0x6B0"), -Attr("insn","mov x16, x2")]), Var("R16",Imm(64)), Var("R2",Imm(64)))]), -Jmps([Call(Tid(953, "%000003b9"), Attrs([Attr("address","0x6B4"), -Attr("insn","br x16")]), Int(1,1), (Indirect(Var("R16",Imm(64))),))]))])), -Sub(Tid(1_547, "@zero"), Attrs([Attr("c.proto","signed (*)(void)"), -Attr("address","0x714")]), "zero", Args([Arg(Tid(1_595, "%0000063b"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("zero_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(746, "@zero"), - Attrs([Attr("address","0x714")]), Phis([]), Defs([Def(Tid(749, "%000002ed"), - Attrs([Attr("address","0x714"), Attr("insn","mov w0, wzr")]), - Var("R0",Imm(64)), Int(0,64))]), Jmps([Call(Tid(754, "%000002f2"), - Attrs([Attr("address","0x718"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))]))]))) \ No newline at end of file diff --git a/src/test/correct/basic_function_call_caller/clang/basic_function_call_caller.bir b/src/test/correct/basic_function_call_caller/clang/basic_function_call_caller.bir deleted file mode 100644 index 2310e654d..000000000 --- a/src/test/correct/basic_function_call_caller/clang/basic_function_call_caller.bir +++ /dev/null @@ -1,250 +0,0 @@ -00000629: program -000005f5: sub __cxa_finalize(__cxa_finalize_result) -0000062a: __cxa_finalize_result :: out u32 = low:32[R0] - -00000399: -00000491: R16 := 0x11000 -00000498: R17 := mem[R16 + 8, el]:u64 -0000049e: R16 := R16 + 8 -000004a3: call R17 with noreturn - -000005f6: sub __do_global_dtors_aux(__do_global_dtors_aux_result) -0000062b: __do_global_dtors_aux_result :: out u32 = low:32[R0] - -0000028e: -00000292: #3 := R31 - 0x20 -00000298: mem := mem with [#3, el]:u64 <- R29 -0000029e: mem := mem with [#3 + 8, el]:u64 <- R30 -000002a2: R31 := #3 -000002a8: R29 := R31 -000002b0: mem := mem with [R31 + 0x10, el]:u64 <- R19 -000002b5: R19 := 0x11000 -000002bc: R0 := pad:64[mem[R19 + 0x30]] -000002c3: when 31:0[R0] <> 0 goto %000002c1 -0000061f: goto %00000362 - -00000362: -00000365: R0 := 0x10000 -0000036c: R0 := mem[R0 + 0xFC8, el]:u64 -00000372: when R0 = 0 goto %00000370 -00000620: goto %00000389 - -00000389: -0000038c: R0 := 0x11000 -00000393: R0 := mem[R0 + 0x28, el]:u64 -00000398: R30 := 0x6F0 -0000039b: call @__cxa_finalize with return %00000370 - -00000370: -00000378: R30 := 0x6F4 -0000037a: call @deregister_tm_clones with return %0000037c - -0000037c: -0000037f: R0 := 1 -00000387: mem := mem with [R19 + 0x30] <- 7:0[R0] -00000621: goto %000002c1 - -000002c1: -000002cb: R19 := mem[R31 + 0x10, el]:u64 -000002d2: R29 := mem[R31, el]:u64 -000002d7: R30 := mem[R31 + 8, el]:u64 -000002db: R31 := R31 + 0x20 -000002e0: call R30 with noreturn - -000005fa: sub __libc_start_main(__libc_start_main_main, __libc_start_main_arg2, __libc_start_main_arg3, __libc_start_main_auxv, __libc_start_main_result) -0000062c: __libc_start_main_main :: in u64 = R0 -0000062d: __libc_start_main_arg2 :: in u32 = low:32[R1] -0000062e: __libc_start_main_arg3 :: in out u64 = R2 -0000062f: __libc_start_main_auxv :: in out u64 = R3 -00000630: __libc_start_main_result :: out u32 = low:32[R0] - -000001e7: -0000047b: R16 := 0x11000 -00000482: R17 := mem[R16, el]:u64 -00000488: R16 := R16 -0000048d: call R17 with noreturn - -000005fb: sub _fini(_fini_result) -00000631: _fini_result :: out u32 = low:32[R0] - -0000001f: -00000025: #0 := R31 - 0x10 -0000002b: mem := mem with [#0, el]:u64 <- R29 -00000031: mem := mem with [#0 + 8, el]:u64 <- R30 -00000035: R31 := #0 -0000003b: R29 := R31 -00000042: R29 := mem[R31, el]:u64 -00000047: R30 := mem[R31 + 8, el]:u64 -0000004b: R31 := R31 + 0x10 -00000050: call R30 with noreturn - -000005fc: sub _init(_init_result) -00000632: _init_result :: out u32 = low:32[R0] - -00000547: -0000054d: #7 := R31 - 0x10 -00000553: mem := mem with [#7, el]:u64 <- R29 -00000559: mem := mem with [#7 + 8, el]:u64 <- R30 -0000055d: R31 := #7 -00000563: R29 := R31 -00000568: R30 := 0x590 -0000056a: call @call_weak_fn with return %0000056c - -0000056c: -00000571: R29 := mem[R31, el]:u64 -00000576: R30 := mem[R31 + 8, el]:u64 -0000057a: R31 := R31 + 0x10 -0000057f: call R30 with noreturn - -000005fd: sub _start(_start_result) -00000633: _start_result :: out u32 = low:32[R0] - -000001a8: -000001ad: R29 := 0 -000001b2: R30 := 0 -000001b8: R5 := R0 -000001bf: R1 := mem[R31, el]:u64 -000001c5: R2 := R31 + 8 -000001cb: R6 := R31 -000001d0: R0 := 0x10000 -000001d7: R0 := mem[R0 + 0xFD8, el]:u64 -000001dc: R3 := 0 -000001e1: R4 := 0 -000001e6: R30 := 0x630 -000001e9: call @__libc_start_main with return %000001eb - -000001eb: -000001ee: R30 := 0x634 -000001f1: call @abort with return %00000622 - -00000622: -00000623: call @call_weak_fn with noreturn - -00000600: sub abort() - - -000001ef: -000004bd: R16 := 0x11000 -000004c4: R17 := mem[R16 + 0x18, el]:u64 -000004ca: R16 := R16 + 0x18 -000004cf: call R17 with noreturn - -00000601: sub call_weak_fn(call_weak_fn_result) -00000634: call_weak_fn_result :: out u32 = low:32[R0] - -000001f3: -000001f6: R0 := 0x10000 -000001fd: R0 := mem[R0 + 0xFD0, el]:u64 -00000203: when R0 = 0 goto %00000201 -00000624: goto %000003d9 - -00000201: -00000209: call R30 with noreturn - -000003d9: -000003dc: goto @__gmon_start__ - -000003da: -000004a7: R16 := 0x11000 -000004ae: R17 := mem[R16 + 0x10, el]:u64 -000004b4: R16 := R16 + 0x10 -000004b9: call R17 with noreturn - -00000603: sub deregister_tm_clones(deregister_tm_clones_result) -00000635: deregister_tm_clones_result :: out u32 = low:32[R0] - -0000020f: -00000212: R0 := 0x11000 -00000218: R0 := R0 + 0x30 -0000021d: R1 := 0x11000 -00000223: R1 := R1 + 0x30 -00000229: #1 := ~R0 -0000022e: #2 := R1 + ~R0 -00000234: VF := extend:65[#2 + 1] <> extend:65[R1] + extend:65[#1] + 1 -0000023a: CF := pad:65[#2 + 1] <> pad:65[R1] + pad:65[#1] + 1 -0000023e: ZF := #2 + 1 = 0 -00000242: NF := 63:63[#2 + 1] -00000248: when ZF goto %00000246 -00000625: goto %000003bb - -000003bb: -000003be: R1 := 0x10000 -000003c5: R1 := mem[R1 + 0xFC0, el]:u64 -000003ca: when R1 = 0 goto %00000246 -00000626: goto %000003ce - -00000246: -0000024e: call R30 with noreturn - -000003ce: -000003d2: R16 := R1 -000003d7: call R16 with noreturn - -00000606: sub frame_dummy(frame_dummy_result) -00000636: frame_dummy_result :: out u32 = low:32[R0] - -000002e6: -000002e8: call @register_tm_clones with noreturn - -00000607: sub main(main_argc, main_argv, main_result) -00000637: main_argc :: in u32 = low:32[R0] -00000638: main_argv :: in out u64 = R1 -00000639: main_result :: out u32 = low:32[R0] - -000002f4: -000002f8: R31 := R31 - 0x20 -000002fe: #4 := R31 + 0x10 -00000304: mem := mem with [#4, el]:u64 <- R29 -0000030a: mem := mem with [#4 + 8, el]:u64 <- R30 -00000310: R29 := R31 + 0x10 -00000318: mem := mem with [R29 - 4, el]:u32 <- 31:0[R0] -0000031d: R30 := 0x730 -0000031f: call @zero with return %00000321 - -00000321: -00000324: R8 := 0x11000 -0000032c: mem := mem with [R8 + 0x34, el]:u32 <- 31:0[R0] -00000333: R8 := pad:64[mem[R29 - 4, el]:u32] -00000338: R9 := 0x11000 -00000340: mem := mem with [R9 + 0x38, el]:u32 <- 31:0[R8] -00000345: R0 := 0 -0000034b: #5 := R31 + 0x10 -00000350: R29 := mem[#5, el]:u64 -00000355: R30 := mem[#5 + 8, el]:u64 -0000035b: R31 := R31 + 0x20 -00000360: call R30 with noreturn - -00000608: sub register_tm_clones(register_tm_clones_result) -0000063a: register_tm_clones_result :: out u32 = low:32[R0] - -00000250: -00000253: R0 := 0x11000 -00000259: R0 := R0 + 0x30 -0000025e: R1 := 0x11000 -00000264: R1 := R1 + 0x30 -0000026b: R1 := R1 + ~R0 + 1 -00000271: R2 := 0.63:63[R1] -00000278: R1 := R2 + (R1 ~>> 3) -0000027e: R1 := extend:64[63:1[R1]] -00000284: when R1 = 0 goto %00000282 -00000627: goto %0000039d - -0000039d: -000003a0: R2 := 0x10000 -000003a7: R2 := mem[R2 + 0xFE0, el]:u64 -000003ac: when R2 = 0 goto %00000282 -00000628: goto %000003b0 - -00000282: -0000028a: call R30 with noreturn - -000003b0: -000003b4: R16 := R2 -000003b9: call R16 with noreturn - -0000060b: sub zero(zero_result) -0000063b: zero_result :: out u32 = low:32[R0] - -000002ea: -000002ed: R0 := 0 -000002f2: call R30 with noreturn diff --git a/src/test/correct/basic_function_call_caller/clang/basic_function_call_caller.expected b/src/test/correct/basic_function_call_caller/clang/basic_function_call_caller.expected index fda6018b3..f080e06d5 100644 --- a/src/test/correct/basic_function_call_caller/clang/basic_function_call_caller.expected +++ b/src/test/correct/basic_function_call_caller/clang/basic_function_call_caller.expected @@ -1,23 +1,17 @@ var {:extern} Gamma_R0: bool; -var {:extern} Gamma_R29: bool; -var {:extern} Gamma_R30: bool; -var {:extern} Gamma_R31: bool; +var {:extern} Gamma_R10: bool; var {:extern} Gamma_R8: bool; var {:extern} Gamma_R9: bool; var {:extern} Gamma_mem: [bv64]bool; -var {:extern} Gamma_stack: [bv64]bool; var {:extern} R0: bv64; -var {:extern} R29: bv64; -var {:extern} R30: bv64; -var {:extern} R31: bv64; +var {:extern} R10: bv64; var {:extern} R8: bv64; var {:extern} R9: bv64; var {:extern} mem: [bv64]bv8; -var {:extern} stack: [bv64]bv8; const {:extern} $x_addr: bv64; -axiom ($x_addr == 69684bv64); +axiom ($x_addr == 131092bv64); const {:extern} $y_addr: bv64; -axiom ($y_addr == 69688bv64); +axiom ($y_addr == 131096bv64); function {:extern} L(mem$in: [bv64]bv8, index: bv64) returns (bool) { (if (index == $y_addr) then (memory_load32_le(mem$in, $x_addr) == 1bv32) else (if (index == $x_addr) then true else false)) } @@ -35,10 +29,6 @@ function {:extern} gamma_store32(gammaMap: [bv64]bool, index: bv64, value: bool) gammaMap[index := value][bvadd64(index, 1bv64) := value][bvadd64(index, 2bv64) := value][bvadd64(index, 3bv64) := value] } -function {:extern} gamma_store64(gammaMap: [bv64]bool, index: bv64, value: bool) returns ([bv64]bool) { - gammaMap[index := value][bvadd64(index, 1bv64) := value][bvadd64(index, 2bv64) := value][bvadd64(index, 3bv64) := value][bvadd64(index, 4bv64) := value][bvadd64(index, 5bv64) := value][bvadd64(index, 6bv64) := value][bvadd64(index, 7bv64) := value] -} - function {:extern} memory_load32_le(memory: [bv64]bv8, index: bv64) returns (bv32) { (memory[bvadd64(index, 3bv64)] ++ (memory[bvadd64(index, 2bv64)] ++ (memory[bvadd64(index, 1bv64)] ++ memory[index]))) } @@ -51,21 +41,19 @@ function {:extern} memory_store32_le(memory: [bv64]bv8, index: bv64, value: bv32 memory[index := value[8:0]][bvadd64(index, 1bv64) := value[16:8]][bvadd64(index, 2bv64) := value[24:16]][bvadd64(index, 3bv64) := value[32:24]] } -function {:extern} memory_store64_le(memory: [bv64]bv8, index: bv64, value: bv64) returns ([bv64]bv8) { - memory[index := value[8:0]][bvadd64(index, 1bv64) := value[16:8]][bvadd64(index, 2bv64) := value[24:16]][bvadd64(index, 3bv64) := value[32:24]][bvadd64(index, 4bv64) := value[40:32]][bvadd64(index, 5bv64) := value[48:40]][bvadd64(index, 6bv64) := value[56:48]][bvadd64(index, 7bv64) := value[64:56]] -} - function {:extern} {:bvbuiltin "zero_extend 32"} zero_extend32_32(bv32) returns (bv64); procedure {:extern} rely(); modifies Gamma_mem, mem; ensures (forall i: bv64 :: (((mem[i] == old(mem[i])) ==> (Gamma_mem[i] == old(Gamma_mem[i]))))); ensures (memory_load32_le(mem, $x_addr) == old(memory_load32_le(mem, $x_addr))); ensures (memory_load32_le(mem, $y_addr) == old(memory_load32_le(mem, $y_addr))); - free ensures (memory_load32_le(mem, 1896bv64) == 131073bv32); - free ensures (memory_load64_le(mem, 69064bv64) == 1808bv64); - free ensures (memory_load64_le(mem, 69072bv64) == 1728bv64); - free ensures (memory_load64_le(mem, 69592bv64) == 1820bv64); - free ensures (memory_load64_le(mem, 69672bv64) == 69672bv64); + free ensures (memory_load32_le(mem, 2324bv64) == 131073bv32); + free ensures (memory_load64_le(mem, 130424bv64) == 2256bv64); + free ensures (memory_load64_le(mem, 130432bv64) == 2176bv64); + free ensures (memory_load64_le(mem, 131032bv64) == 131092bv64); + free ensures (memory_load64_le(mem, 131048bv64) == 131096bv64); + free ensures (memory_load64_le(mem, 131056bv64) == 2268bv64); + free ensures (memory_load64_le(mem, 131080bv64) == 131080bv64); procedure {:extern} rely_transitive(); modifies Gamma_mem, mem; @@ -95,113 +83,67 @@ implementation {:extern} guarantee_reflexive() assert (gamma_load32(Gamma_mem, $y_addr) ==> ((memory_load32_le(mem, $x_addr) == 0bv32) || gamma_load32(Gamma_mem, $y_addr))); } -procedure main_1820(); - modifies Gamma_R0, Gamma_R29, Gamma_R30, Gamma_R31, Gamma_R8, Gamma_R9, Gamma_mem, Gamma_stack, R0, R29, R30, R31, R8, R9, mem, stack; +procedure main(); + modifies Gamma_R0, Gamma_R10, Gamma_R8, Gamma_R9, Gamma_mem, R0, R10, R8, R9, mem; requires (Gamma_R0 == false); - free requires (memory_load64_le(mem, 69664bv64) == 0bv64); - free requires (memory_load64_le(mem, 69672bv64) == 69672bv64); - free requires (memory_load32_le(mem, 1896bv64) == 131073bv32); - free requires (memory_load64_le(mem, 69064bv64) == 1808bv64); - free requires (memory_load64_le(mem, 69072bv64) == 1728bv64); - free requires (memory_load64_le(mem, 69592bv64) == 1820bv64); - free requires (memory_load64_le(mem, 69672bv64) == 69672bv64); - free ensures (Gamma_R29 == old(Gamma_R29)); - free ensures (Gamma_R31 == old(Gamma_R31)); - free ensures (R29 == old(R29)); - free ensures (R31 == old(R31)); - free ensures (memory_load32_le(mem, 1896bv64) == 131073bv32); - free ensures (memory_load64_le(mem, 69064bv64) == 1808bv64); - free ensures (memory_load64_le(mem, 69072bv64) == 1728bv64); - free ensures (memory_load64_le(mem, 69592bv64) == 1820bv64); - free ensures (memory_load64_le(mem, 69672bv64) == 69672bv64); - -implementation main_1820() + free requires (memory_load64_le(mem, 131072bv64) == 0bv64); + free requires (memory_load64_le(mem, 131080bv64) == 131080bv64); + free requires (memory_load32_le(mem, 2324bv64) == 131073bv32); + free requires (memory_load64_le(mem, 130424bv64) == 2256bv64); + free requires (memory_load64_le(mem, 130432bv64) == 2176bv64); + free requires (memory_load64_le(mem, 131032bv64) == 131092bv64); + free requires (memory_load64_le(mem, 131048bv64) == 131096bv64); + free requires (memory_load64_le(mem, 131056bv64) == 2268bv64); + free requires (memory_load64_le(mem, 131080bv64) == 131080bv64); + free ensures (memory_load32_le(mem, 2324bv64) == 131073bv32); + free ensures (memory_load64_le(mem, 130424bv64) == 2256bv64); + free ensures (memory_load64_le(mem, 130432bv64) == 2176bv64); + free ensures (memory_load64_le(mem, 131032bv64) == 131092bv64); + free ensures (memory_load64_le(mem, 131048bv64) == 131096bv64); + free ensures (memory_load64_le(mem, 131056bv64) == 2268bv64); + free ensures (memory_load64_le(mem, 131080bv64) == 131080bv64); + +implementation main() { - var #4: bv64; - var #5: bv64; - var Gamma_#4: bool; - var Gamma_#5: bool; - var Gamma_load18: bool; - var Gamma_load19: bool; - var Gamma_load20: bool; + var $load$18: bv64; + var $load$19: bv64; + var Gamma_$load$18: bool; + var Gamma_$load$19: bool; var Gamma_y_old: bool; - var load18: bv32; - var load19: bv64; - var load20: bv64; var x_old: bv32; lmain: assume {:captureState "lmain"} true; - R31, Gamma_R31 := bvadd64(R31, 18446744073709551584bv64), Gamma_R31; - #4, Gamma_#4 := bvadd64(R31, 16bv64), Gamma_R31; - stack, Gamma_stack := memory_store64_le(stack, #4, R29), gamma_store64(Gamma_stack, #4, Gamma_R29); - assume {:captureState "%00000304"} true; - stack, Gamma_stack := memory_store64_le(stack, bvadd64(#4, 8bv64), R30), gamma_store64(Gamma_stack, bvadd64(#4, 8bv64), Gamma_R30); - assume {:captureState "%0000030a"} true; - R29, Gamma_R29 := bvadd64(R31, 16bv64), Gamma_R31; - stack, Gamma_stack := memory_store32_le(stack, bvadd64(R29, 18446744073709551612bv64), R0[32:0]), gamma_store32(Gamma_stack, bvadd64(R29, 18446744073709551612bv64), Gamma_R0); - assume {:captureState "%00000318"} true; - R30, Gamma_R30 := 1840bv64, true; - call zero_1812(); - goto l00000321; - l00000321: - assume {:captureState "l00000321"} true; - R8, Gamma_R8 := 69632bv64, true; + R9, Gamma_R9 := 126976bv64, true; + R10, Gamma_R10 := 126976bv64, true; + R8, Gamma_R8 := zero_extend32_32(R0[32:0]), Gamma_R0; + call rely(); + $load$18, Gamma_$load$18 := memory_load64_le(mem, bvadd64(R9, 4056bv64)), (gamma_load64(Gamma_mem, bvadd64(R9, 4056bv64)) || L(mem, bvadd64(R9, 4056bv64))); + R9, Gamma_R9 := $load$18, Gamma_$load$18; + call rely(); + $load$19, Gamma_$load$19 := memory_load64_le(mem, bvadd64(R10, 4072bv64)), (gamma_load64(Gamma_mem, bvadd64(R10, 4072bv64)) || L(mem, bvadd64(R10, 4072bv64))); + R10, Gamma_R10 := $load$19, Gamma_$load$19; + R0, Gamma_R0 := 0bv64, true; call rely(); + assert (L(mem, R9) ==> true); x_old := memory_load32_le(mem, $x_addr); Gamma_y_old := (gamma_load32(Gamma_mem, $y_addr) || L(mem, $y_addr)); - assert (L(mem, bvadd64(R8, 52bv64)) ==> Gamma_R0); - mem, Gamma_mem := memory_store32_le(mem, bvadd64(R8, 52bv64), R0[32:0]), gamma_store32(Gamma_mem, bvadd64(R8, 52bv64), Gamma_R0); - assert ((bvadd64(R8, 52bv64) == $x_addr) ==> (L(mem, $y_addr) ==> Gamma_y_old)); + mem, Gamma_mem := memory_store32_le(mem, R9, 0bv32), gamma_store32(Gamma_mem, R9, true); + assert ((R9 == $x_addr) ==> (L(mem, $y_addr) ==> Gamma_y_old)); assert ((x_old == 0bv32) ==> (memory_load32_le(mem, $x_addr) == 0bv32)); assert (Gamma_y_old ==> ((memory_load32_le(mem, $x_addr) == 0bv32) || gamma_load32(Gamma_mem, $y_addr))); - assume {:captureState "%0000032c"} true; - load18, Gamma_load18 := memory_load32_le(stack, bvadd64(R29, 18446744073709551612bv64)), gamma_load32(Gamma_stack, bvadd64(R29, 18446744073709551612bv64)); - R8, Gamma_R8 := zero_extend32_32(load18), Gamma_load18; - R9, Gamma_R9 := 69632bv64, true; + assume {:captureState "%00000294"} true; call rely(); + assert (L(mem, R10) ==> Gamma_R8); x_old := memory_load32_le(mem, $x_addr); Gamma_y_old := (gamma_load32(Gamma_mem, $y_addr) || L(mem, $y_addr)); - assert (L(mem, bvadd64(R9, 56bv64)) ==> Gamma_R8); - mem, Gamma_mem := memory_store32_le(mem, bvadd64(R9, 56bv64), R8[32:0]), gamma_store32(Gamma_mem, bvadd64(R9, 56bv64), Gamma_R8); - assert ((bvadd64(R9, 56bv64) == $x_addr) ==> (L(mem, $y_addr) ==> Gamma_y_old)); + mem, Gamma_mem := memory_store32_le(mem, R10, R8[32:0]), gamma_store32(Gamma_mem, R10, Gamma_R8); + assert ((R10 == $x_addr) ==> (L(mem, $y_addr) ==> Gamma_y_old)); assert ((x_old == 0bv32) ==> (memory_load32_le(mem, $x_addr) == 0bv32)); assert (Gamma_y_old ==> ((memory_load32_le(mem, $x_addr) == 0bv32) || gamma_load32(Gamma_mem, $y_addr))); - assume {:captureState "%00000340"} true; - R0, Gamma_R0 := 0bv64, true; - #5, Gamma_#5 := bvadd64(R31, 16bv64), Gamma_R31; - load19, Gamma_load19 := memory_load64_le(stack, #5), gamma_load64(Gamma_stack, #5); - R29, Gamma_R29 := load19, Gamma_load19; - load20, Gamma_load20 := memory_load64_le(stack, bvadd64(#5, 8bv64)), gamma_load64(Gamma_stack, bvadd64(#5, 8bv64)); - R30, Gamma_R30 := load20, Gamma_load20; - R31, Gamma_R31 := bvadd64(R31, 32bv64), Gamma_R31; - goto main_1820_basil_return; - main_1820_basil_return: - assume {:captureState "main_1820_basil_return"} true; - return; -} - -procedure zero_1812(); - modifies Gamma_R0, R0; - free requires (memory_load32_le(mem, 1896bv64) == 131073bv32); - free requires (memory_load64_le(mem, 69064bv64) == 1808bv64); - free requires (memory_load64_le(mem, 69072bv64) == 1728bv64); - free requires (memory_load64_le(mem, 69592bv64) == 1820bv64); - free requires (memory_load64_le(mem, 69672bv64) == 69672bv64); - ensures ((R0[32:0] == 0bv32) && Gamma_R0); - free ensures (memory_load32_le(mem, 1896bv64) == 131073bv32); - free ensures (memory_load64_le(mem, 69064bv64) == 1808bv64); - free ensures (memory_load64_le(mem, 69072bv64) == 1728bv64); - free ensures (memory_load64_le(mem, 69592bv64) == 1820bv64); - free ensures (memory_load64_le(mem, 69672bv64) == 69672bv64); - -implementation zero_1812() -{ - lzero: - assume {:captureState "lzero"} true; - R0, Gamma_R0 := 0bv64, true; - goto zero_1812_basil_return; - zero_1812_basil_return: - assume {:captureState "zero_1812_basil_return"} true; + assume {:captureState "%00000298"} true; + goto main_basil_return; + main_basil_return: + assume {:captureState "main_basil_return"} true; return; } diff --git a/src/test/correct/basic_function_call_caller/clang/basic_function_call_caller.gts b/src/test/correct/basic_function_call_caller/clang/basic_function_call_caller.gts deleted file mode 100644 index 32bf751b9..000000000 Binary files a/src/test/correct/basic_function_call_caller/clang/basic_function_call_caller.gts and /dev/null differ diff --git a/src/test/correct/basic_function_call_caller/clang/basic_function_call_caller.md5sum b/src/test/correct/basic_function_call_caller/clang/basic_function_call_caller.md5sum new file mode 100644 index 000000000..220c34d82 --- /dev/null +++ b/src/test/correct/basic_function_call_caller/clang/basic_function_call_caller.md5sum @@ -0,0 +1,5 @@ +f986da266b89f4f97cc2c1248d904493 correct/basic_function_call_caller/clang/a.out +134280ea3158cba03f6733d96187327d correct/basic_function_call_caller/clang/basic_function_call_caller.adt +4a32baad81e19b349faecfbf88bad9d8 correct/basic_function_call_caller/clang/basic_function_call_caller.bir +dedca6fa5c785affc06767b664cdfe29 correct/basic_function_call_caller/clang/basic_function_call_caller.relf +97683f8cfe59afec926fe365fa4256de correct/basic_function_call_caller/clang/basic_function_call_caller.gts diff --git a/src/test/correct/basic_function_call_caller/clang/basic_function_call_caller.relf b/src/test/correct/basic_function_call_caller/clang/basic_function_call_caller.relf deleted file mode 100644 index f4793b5a1..000000000 --- a/src/test/correct/basic_function_call_caller/clang/basic_function_call_caller.relf +++ /dev/null @@ -1,125 +0,0 @@ - -Relocation section '.rela.dyn' at offset 0x460 contains 8 entries: - Offset Info Type Symbol's Value Symbol's Name + Addend -0000000000010dc8 0000000000000403 R_AARCH64_RELATIVE 710 -0000000000010dd0 0000000000000403 R_AARCH64_RELATIVE 6c0 -0000000000010fd8 0000000000000403 R_AARCH64_RELATIVE 71c -0000000000011028 0000000000000403 R_AARCH64_RELATIVE 11028 -0000000000010fc0 0000000400000401 R_AARCH64_GLOB_DAT 0000000000000000 _ITM_deregisterTMCloneTable + 0 -0000000000010fc8 0000000500000401 R_AARCH64_GLOB_DAT 0000000000000000 __cxa_finalize@GLIBC_2.17 + 0 -0000000000010fd0 0000000600000401 R_AARCH64_GLOB_DAT 0000000000000000 __gmon_start__ + 0 -0000000000010fe0 0000000800000401 R_AARCH64_GLOB_DAT 0000000000000000 _ITM_registerTMCloneTable + 0 - -Relocation section '.rela.plt' at offset 0x520 contains 4 entries: - Offset Info Type Symbol's Value Symbol's Name + Addend -0000000000011000 0000000300000402 R_AARCH64_JUMP_SLOT 0000000000000000 __libc_start_main@GLIBC_2.34 + 0 -0000000000011008 0000000500000402 R_AARCH64_JUMP_SLOT 0000000000000000 __cxa_finalize@GLIBC_2.17 + 0 -0000000000011010 0000000600000402 R_AARCH64_JUMP_SLOT 0000000000000000 __gmon_start__ + 0 -0000000000011018 0000000700000402 R_AARCH64_JUMP_SLOT 0000000000000000 abort@GLIBC_2.17 + 0 - -Symbol table '.dynsym' contains 9 entries: - Num: Value Size Type Bind Vis Ndx Name - 0: 0000000000000000 0 NOTYPE LOCAL DEFAULT UND - 1: 0000000000000580 0 SECTION LOCAL DEFAULT 11 .init - 2: 0000000000011020 0 SECTION LOCAL DEFAULT 23 .data - 3: 0000000000000000 0 FUNC GLOBAL DEFAULT UND __libc_start_main@GLIBC_2.34 (2) - 4: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_deregisterTMCloneTable - 5: 0000000000000000 0 FUNC WEAK DEFAULT UND __cxa_finalize@GLIBC_2.17 (3) - 6: 0000000000000000 0 NOTYPE WEAK DEFAULT UND __gmon_start__ - 7: 0000000000000000 0 FUNC GLOBAL DEFAULT UND abort@GLIBC_2.17 (3) - 8: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_registerTMCloneTable - -Symbol table '.symtab' contains 92 entries: - Num: Value Size Type Bind Vis Ndx Name - 0: 0000000000000000 0 NOTYPE LOCAL DEFAULT UND - 1: 0000000000000238 0 SECTION LOCAL DEFAULT 1 .interp - 2: 0000000000000254 0 SECTION LOCAL DEFAULT 2 .note.gnu.build-id - 3: 0000000000000278 0 SECTION LOCAL DEFAULT 3 .note.ABI-tag - 4: 0000000000000298 0 SECTION LOCAL DEFAULT 4 .gnu.hash - 5: 00000000000002b8 0 SECTION LOCAL DEFAULT 5 .dynsym - 6: 0000000000000390 0 SECTION LOCAL DEFAULT 6 .dynstr - 7: 000000000000041e 0 SECTION LOCAL DEFAULT 7 .gnu.version - 8: 0000000000000430 0 SECTION LOCAL DEFAULT 8 .gnu.version_r - 9: 0000000000000460 0 SECTION LOCAL DEFAULT 9 .rela.dyn - 10: 0000000000000520 0 SECTION LOCAL DEFAULT 10 .rela.plt - 11: 0000000000000580 0 SECTION LOCAL DEFAULT 11 .init - 12: 00000000000005a0 0 SECTION LOCAL DEFAULT 12 .plt - 13: 0000000000000600 0 SECTION LOCAL DEFAULT 13 .text - 14: 0000000000000754 0 SECTION LOCAL DEFAULT 14 .fini - 15: 0000000000000768 0 SECTION LOCAL DEFAULT 15 .rodata - 16: 000000000000076c 0 SECTION LOCAL DEFAULT 16 .eh_frame_hdr - 17: 00000000000007b0 0 SECTION LOCAL DEFAULT 17 .eh_frame - 18: 0000000000010dc8 0 SECTION LOCAL DEFAULT 18 .init_array - 19: 0000000000010dd0 0 SECTION LOCAL DEFAULT 19 .fini_array - 20: 0000000000010dd8 0 SECTION LOCAL DEFAULT 20 .dynamic - 21: 0000000000010fb8 0 SECTION LOCAL DEFAULT 21 .got - 22: 0000000000010fe8 0 SECTION LOCAL DEFAULT 22 .got.plt - 23: 0000000000011020 0 SECTION LOCAL DEFAULT 23 .data - 24: 0000000000011030 0 SECTION LOCAL DEFAULT 24 .bss - 25: 0000000000000000 0 SECTION LOCAL DEFAULT 25 .comment - 26: 0000000000000000 0 FILE LOCAL DEFAULT ABS Scrt1.o - 27: 0000000000000278 0 NOTYPE LOCAL DEFAULT 3 $d - 28: 0000000000000278 32 OBJECT LOCAL DEFAULT 3 __abi_tag - 29: 0000000000000600 0 NOTYPE LOCAL DEFAULT 13 $x - 30: 00000000000007c4 0 NOTYPE LOCAL DEFAULT 17 $d - 31: 0000000000000768 0 NOTYPE LOCAL DEFAULT 15 $d - 32: 0000000000000000 0 FILE LOCAL DEFAULT ABS crti.o - 33: 0000000000000634 0 NOTYPE LOCAL DEFAULT 13 $x - 34: 0000000000000634 20 FUNC LOCAL DEFAULT 13 call_weak_fn - 35: 0000000000000580 0 NOTYPE LOCAL DEFAULT 11 $x - 36: 0000000000000754 0 NOTYPE LOCAL DEFAULT 14 $x - 37: 0000000000000000 0 FILE LOCAL DEFAULT ABS crtn.o - 38: 0000000000000590 0 NOTYPE LOCAL DEFAULT 11 $x - 39: 0000000000000760 0 NOTYPE LOCAL DEFAULT 14 $x - 40: 0000000000000000 0 FILE LOCAL DEFAULT ABS crtstuff.c - 41: 0000000000000650 0 NOTYPE LOCAL DEFAULT 13 $x - 42: 0000000000000650 0 FUNC LOCAL DEFAULT 13 deregister_tm_clones - 43: 0000000000000680 0 FUNC LOCAL DEFAULT 13 register_tm_clones - 44: 0000000000011028 0 NOTYPE LOCAL DEFAULT 23 $d - 45: 00000000000006c0 0 FUNC LOCAL DEFAULT 13 __do_global_dtors_aux - 46: 0000000000011030 1 OBJECT LOCAL DEFAULT 24 completed.0 - 47: 0000000000010dd0 0 NOTYPE LOCAL DEFAULT 19 $d - 48: 0000000000010dd0 0 OBJECT LOCAL DEFAULT 19 __do_global_dtors_aux_fini_array_entry - 49: 0000000000000710 0 FUNC LOCAL DEFAULT 13 frame_dummy - 50: 0000000000010dc8 0 NOTYPE LOCAL DEFAULT 18 $d - 51: 0000000000010dc8 0 OBJECT LOCAL DEFAULT 18 __frame_dummy_init_array_entry - 52: 00000000000007d8 0 NOTYPE LOCAL DEFAULT 17 $d - 53: 0000000000011030 0 NOTYPE LOCAL DEFAULT 24 $d - 54: 0000000000000000 0 FILE LOCAL DEFAULT ABS basic_function_call_caller.c - 55: 0000000000000714 0 NOTYPE LOCAL DEFAULT 13 $x.0 - 56: 0000000000011034 0 NOTYPE LOCAL DEFAULT 24 $d.1 - 57: 000000000000002a 0 NOTYPE LOCAL DEFAULT 25 $d.2 - 58: 0000000000000838 0 NOTYPE LOCAL DEFAULT 17 $d.3 - 59: 0000000000000000 0 FILE LOCAL DEFAULT ABS crtstuff.c - 60: 0000000000000888 0 NOTYPE LOCAL DEFAULT 17 $d - 61: 0000000000000888 0 OBJECT LOCAL DEFAULT 17 __FRAME_END__ - 62: 0000000000000000 0 FILE LOCAL DEFAULT ABS - 63: 0000000000010dd8 0 OBJECT LOCAL DEFAULT ABS _DYNAMIC - 64: 000000000000076c 0 NOTYPE LOCAL DEFAULT 16 __GNU_EH_FRAME_HDR - 65: 0000000000010fb8 0 OBJECT LOCAL DEFAULT ABS _GLOBAL_OFFSET_TABLE_ - 66: 00000000000005a0 0 NOTYPE LOCAL DEFAULT 12 $x - 67: 0000000000000000 0 FUNC GLOBAL DEFAULT UND __libc_start_main@GLIBC_2.34 - 68: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_deregisterTMCloneTable - 69: 0000000000011020 0 NOTYPE WEAK DEFAULT 23 data_start - 70: 0000000000011030 0 NOTYPE GLOBAL DEFAULT 24 __bss_start__ - 71: 0000000000000000 0 FUNC WEAK DEFAULT UND __cxa_finalize@GLIBC_2.17 - 72: 0000000000011040 0 NOTYPE GLOBAL DEFAULT 24 _bss_end__ - 73: 0000000000011030 0 NOTYPE GLOBAL DEFAULT 23 _edata - 74: 0000000000011034 4 OBJECT GLOBAL DEFAULT 24 x - 75: 0000000000000754 0 FUNC GLOBAL HIDDEN 14 _fini - 76: 0000000000011040 0 NOTYPE GLOBAL DEFAULT 24 __bss_end__ - 77: 0000000000011020 0 NOTYPE GLOBAL DEFAULT 23 __data_start - 78: 0000000000000000 0 NOTYPE WEAK DEFAULT UND __gmon_start__ - 79: 0000000000011028 0 OBJECT GLOBAL HIDDEN 23 __dso_handle - 80: 0000000000000000 0 FUNC GLOBAL DEFAULT UND abort@GLIBC_2.17 - 81: 0000000000000768 4 OBJECT GLOBAL DEFAULT 15 _IO_stdin_used - 82: 0000000000011040 0 NOTYPE GLOBAL DEFAULT 24 _end - 83: 0000000000000600 52 FUNC GLOBAL DEFAULT 13 _start - 84: 0000000000000714 8 FUNC GLOBAL DEFAULT 13 zero - 85: 0000000000011040 0 NOTYPE GLOBAL DEFAULT 24 __end__ - 86: 0000000000011038 4 OBJECT GLOBAL DEFAULT 24 y - 87: 0000000000011030 0 NOTYPE GLOBAL DEFAULT 24 __bss_start - 88: 000000000000071c 56 FUNC GLOBAL DEFAULT 13 main - 89: 0000000000011030 0 OBJECT GLOBAL HIDDEN 23 __TMC_END__ - 90: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_registerTMCloneTable - 91: 0000000000000580 0 FUNC GLOBAL HIDDEN 11 _init diff --git a/src/test/correct/basic_function_call_caller/clang/basic_function_call_caller_gtirb.expected b/src/test/correct/basic_function_call_caller/clang/basic_function_call_caller_gtirb.expected index eaeb537bb..9c0748cea 100644 --- a/src/test/correct/basic_function_call_caller/clang/basic_function_call_caller_gtirb.expected +++ b/src/test/correct/basic_function_call_caller/clang/basic_function_call_caller_gtirb.expected @@ -1,23 +1,17 @@ var {:extern} Gamma_R0: bool; -var {:extern} Gamma_R29: bool; -var {:extern} Gamma_R30: bool; -var {:extern} Gamma_R31: bool; +var {:extern} Gamma_R10: bool; var {:extern} Gamma_R8: bool; var {:extern} Gamma_R9: bool; var {:extern} Gamma_mem: [bv64]bool; -var {:extern} Gamma_stack: [bv64]bool; var {:extern} R0: bv64; -var {:extern} R29: bv64; -var {:extern} R30: bv64; -var {:extern} R31: bv64; +var {:extern} R10: bv64; var {:extern} R8: bv64; var {:extern} R9: bv64; var {:extern} mem: [bv64]bv8; -var {:extern} stack: [bv64]bv8; const {:extern} $x_addr: bv64; -axiom ($x_addr == 69684bv64); +axiom ($x_addr == 131092bv64); const {:extern} $y_addr: bv64; -axiom ($y_addr == 69688bv64); +axiom ($y_addr == 131096bv64); function {:extern} L(mem$in: [bv64]bv8, index: bv64) returns (bool) { (if (index == $y_addr) then (memory_load32_le(mem$in, $x_addr) == 1bv32) else (if (index == $x_addr) then true else false)) } @@ -35,10 +29,6 @@ function {:extern} gamma_store32(gammaMap: [bv64]bool, index: bv64, value: bool) gammaMap[index := value][bvadd64(index, 1bv64) := value][bvadd64(index, 2bv64) := value][bvadd64(index, 3bv64) := value] } -function {:extern} gamma_store64(gammaMap: [bv64]bool, index: bv64, value: bool) returns ([bv64]bool) { - gammaMap[index := value][bvadd64(index, 1bv64) := value][bvadd64(index, 2bv64) := value][bvadd64(index, 3bv64) := value][bvadd64(index, 4bv64) := value][bvadd64(index, 5bv64) := value][bvadd64(index, 6bv64) := value][bvadd64(index, 7bv64) := value] -} - function {:extern} memory_load32_le(memory: [bv64]bv8, index: bv64) returns (bv32) { (memory[bvadd64(index, 3bv64)] ++ (memory[bvadd64(index, 2bv64)] ++ (memory[bvadd64(index, 1bv64)] ++ memory[index]))) } @@ -51,21 +41,19 @@ function {:extern} memory_store32_le(memory: [bv64]bv8, index: bv64, value: bv32 memory[index := value[8:0]][bvadd64(index, 1bv64) := value[16:8]][bvadd64(index, 2bv64) := value[24:16]][bvadd64(index, 3bv64) := value[32:24]] } -function {:extern} memory_store64_le(memory: [bv64]bv8, index: bv64, value: bv64) returns ([bv64]bv8) { - memory[index := value[8:0]][bvadd64(index, 1bv64) := value[16:8]][bvadd64(index, 2bv64) := value[24:16]][bvadd64(index, 3bv64) := value[32:24]][bvadd64(index, 4bv64) := value[40:32]][bvadd64(index, 5bv64) := value[48:40]][bvadd64(index, 6bv64) := value[56:48]][bvadd64(index, 7bv64) := value[64:56]] -} - function {:extern} {:bvbuiltin "zero_extend 32"} zero_extend32_32(bv32) returns (bv64); procedure {:extern} rely(); modifies Gamma_mem, mem; ensures (forall i: bv64 :: (((mem[i] == old(mem[i])) ==> (Gamma_mem[i] == old(Gamma_mem[i]))))); ensures (memory_load32_le(mem, $x_addr) == old(memory_load32_le(mem, $x_addr))); ensures (memory_load32_le(mem, $y_addr) == old(memory_load32_le(mem, $y_addr))); - free ensures (memory_load32_le(mem, 1896bv64) == 131073bv32); - free ensures (memory_load64_le(mem, 69064bv64) == 1808bv64); - free ensures (memory_load64_le(mem, 69072bv64) == 1728bv64); - free ensures (memory_load64_le(mem, 69592bv64) == 1820bv64); - free ensures (memory_load64_le(mem, 69672bv64) == 69672bv64); + free ensures (memory_load32_le(mem, 2324bv64) == 131073bv32); + free ensures (memory_load64_le(mem, 130424bv64) == 2256bv64); + free ensures (memory_load64_le(mem, 130432bv64) == 2176bv64); + free ensures (memory_load64_le(mem, 131032bv64) == 131092bv64); + free ensures (memory_load64_le(mem, 131048bv64) == 131096bv64); + free ensures (memory_load64_le(mem, 131056bv64) == 2268bv64); + free ensures (memory_load64_le(mem, 131080bv64) == 131080bv64); procedure {:extern} rely_transitive(); modifies Gamma_mem, mem; @@ -95,113 +83,67 @@ implementation {:extern} guarantee_reflexive() assert (gamma_load32(Gamma_mem, $y_addr) ==> ((memory_load32_le(mem, $x_addr) == 0bv32) || gamma_load32(Gamma_mem, $y_addr))); } -procedure main_1820(); - modifies Gamma_R0, Gamma_R29, Gamma_R30, Gamma_R31, Gamma_R8, Gamma_R9, Gamma_mem, Gamma_stack, R0, R29, R30, R31, R8, R9, mem, stack; +procedure main(); + modifies Gamma_R0, Gamma_R10, Gamma_R8, Gamma_R9, Gamma_mem, R0, R10, R8, R9, mem; requires (Gamma_R0 == false); - free requires (memory_load64_le(mem, 69664bv64) == 0bv64); - free requires (memory_load64_le(mem, 69672bv64) == 69672bv64); - free requires (memory_load32_le(mem, 1896bv64) == 131073bv32); - free requires (memory_load64_le(mem, 69064bv64) == 1808bv64); - free requires (memory_load64_le(mem, 69072bv64) == 1728bv64); - free requires (memory_load64_le(mem, 69592bv64) == 1820bv64); - free requires (memory_load64_le(mem, 69672bv64) == 69672bv64); - free ensures (Gamma_R29 == old(Gamma_R29)); - free ensures (Gamma_R31 == old(Gamma_R31)); - free ensures (R29 == old(R29)); - free ensures (R31 == old(R31)); - free ensures (memory_load32_le(mem, 1896bv64) == 131073bv32); - free ensures (memory_load64_le(mem, 69064bv64) == 1808bv64); - free ensures (memory_load64_le(mem, 69072bv64) == 1728bv64); - free ensures (memory_load64_le(mem, 69592bv64) == 1820bv64); - free ensures (memory_load64_le(mem, 69672bv64) == 69672bv64); - -implementation main_1820() + free requires (memory_load64_le(mem, 131072bv64) == 0bv64); + free requires (memory_load64_le(mem, 131080bv64) == 131080bv64); + free requires (memory_load32_le(mem, 2324bv64) == 131073bv32); + free requires (memory_load64_le(mem, 130424bv64) == 2256bv64); + free requires (memory_load64_le(mem, 130432bv64) == 2176bv64); + free requires (memory_load64_le(mem, 131032bv64) == 131092bv64); + free requires (memory_load64_le(mem, 131048bv64) == 131096bv64); + free requires (memory_load64_le(mem, 131056bv64) == 2268bv64); + free requires (memory_load64_le(mem, 131080bv64) == 131080bv64); + free ensures (memory_load32_le(mem, 2324bv64) == 131073bv32); + free ensures (memory_load64_le(mem, 130424bv64) == 2256bv64); + free ensures (memory_load64_le(mem, 130432bv64) == 2176bv64); + free ensures (memory_load64_le(mem, 131032bv64) == 131092bv64); + free ensures (memory_load64_le(mem, 131048bv64) == 131096bv64); + free ensures (memory_load64_le(mem, 131056bv64) == 2268bv64); + free ensures (memory_load64_le(mem, 131080bv64) == 131080bv64); + +implementation main() { - var Cse0__5_0_1: bv64; - var Cse0__5_1_6: bv64; - var Gamma_Cse0__5_0_1: bool; - var Gamma_Cse0__5_1_6: bool; - var Gamma_load4: bool; - var Gamma_load5: bool; - var Gamma_load6: bool; + var $load8: bv64; + var $load9: bv64; + var Gamma_$load8: bool; + var Gamma_$load9: bool; var Gamma_y_old: bool; - var load4: bv32; - var load5: bv64; - var load6: bv64; var x_old: bv32; - main_1820__0__cikrXZAWRXiUPK6lrh286g: - assume {:captureState "main_1820__0__cikrXZAWRXiUPK6lrh286g"} true; - R31, Gamma_R31 := bvadd64(R31, 18446744073709551584bv64), Gamma_R31; - Cse0__5_0_1, Gamma_Cse0__5_0_1 := bvadd64(R31, 16bv64), Gamma_R31; - stack, Gamma_stack := memory_store64_le(stack, Cse0__5_0_1, R29), gamma_store64(Gamma_stack, Cse0__5_0_1, Gamma_R29); - assume {:captureState "1824_1"} true; - stack, Gamma_stack := memory_store64_le(stack, bvadd64(Cse0__5_0_1, 8bv64), R30), gamma_store64(Gamma_stack, bvadd64(Cse0__5_0_1, 8bv64), Gamma_R30); - assume {:captureState "1824_2"} true; - R29, Gamma_R29 := bvadd64(R31, 16bv64), Gamma_R31; - stack, Gamma_stack := memory_store32_le(stack, bvadd64(R29, 18446744073709551612bv64), R0[32:0]), gamma_store32(Gamma_stack, bvadd64(R29, 18446744073709551612bv64), Gamma_R0); - assume {:captureState "1832_0"} true; - R30, Gamma_R30 := 1840bv64, true; - call zero_1812(); - goto main_1820__1__tUsSswMeSRWNOjHB4V55Fw; - main_1820__1__tUsSswMeSRWNOjHB4V55Fw: - assume {:captureState "main_1820__1__tUsSswMeSRWNOjHB4V55Fw"} true; - R8, Gamma_R8 := 69632bv64, true; + $main$__0__$TxTRm4kpQiq_Xgistx~xbQ: + assume {:captureState "$main$__0__$TxTRm4kpQiq_Xgistx~xbQ"} true; + R9, Gamma_R9 := 126976bv64, true; + R10, Gamma_R10 := 126976bv64, true; + R8, Gamma_R8 := zero_extend32_32(R0[32:0]), Gamma_R0; + call rely(); + $load8, Gamma_$load8 := memory_load64_le(mem, bvadd64(R9, 4056bv64)), (gamma_load64(Gamma_mem, bvadd64(R9, 4056bv64)) || L(mem, bvadd64(R9, 4056bv64))); + R9, Gamma_R9 := $load8, Gamma_$load8; + call rely(); + $load9, Gamma_$load9 := memory_load64_le(mem, bvadd64(R10, 4072bv64)), (gamma_load64(Gamma_mem, bvadd64(R10, 4072bv64)) || L(mem, bvadd64(R10, 4072bv64))); + R10, Gamma_R10 := $load9, Gamma_$load9; + R0, Gamma_R0 := 0bv64, true; call rely(); + assert (L(mem, R9) ==> true); x_old := memory_load32_le(mem, $x_addr); Gamma_y_old := (gamma_load32(Gamma_mem, $y_addr) || L(mem, $y_addr)); - assert (L(mem, bvadd64(R8, 52bv64)) ==> Gamma_R0); - mem, Gamma_mem := memory_store32_le(mem, bvadd64(R8, 52bv64), R0[32:0]), gamma_store32(Gamma_mem, bvadd64(R8, 52bv64), Gamma_R0); - assert ((bvadd64(R8, 52bv64) == $x_addr) ==> (L(mem, $y_addr) ==> Gamma_y_old)); + mem, Gamma_mem := memory_store32_le(mem, R9, 0bv32), gamma_store32(Gamma_mem, R9, true); + assert ((R9 == $x_addr) ==> (L(mem, $y_addr) ==> Gamma_y_old)); assert ((x_old == 0bv32) ==> (memory_load32_le(mem, $x_addr) == 0bv32)); assert (Gamma_y_old ==> ((memory_load32_le(mem, $x_addr) == 0bv32) || gamma_load32(Gamma_mem, $y_addr))); - assume {:captureState "1844_0"} true; - load4, Gamma_load4 := memory_load32_le(stack, bvadd64(R29, 18446744073709551612bv64)), gamma_load32(Gamma_stack, bvadd64(R29, 18446744073709551612bv64)); - R8, Gamma_R8 := zero_extend32_32(load4), Gamma_load4; - R9, Gamma_R9 := 69632bv64, true; + assume {:captureState "2292$0"} true; call rely(); + assert (L(mem, R10) ==> Gamma_R8); x_old := memory_load32_le(mem, $x_addr); Gamma_y_old := (gamma_load32(Gamma_mem, $y_addr) || L(mem, $y_addr)); - assert (L(mem, bvadd64(R9, 56bv64)) ==> Gamma_R8); - mem, Gamma_mem := memory_store32_le(mem, bvadd64(R9, 56bv64), R8[32:0]), gamma_store32(Gamma_mem, bvadd64(R9, 56bv64), Gamma_R8); - assert ((bvadd64(R9, 56bv64) == $x_addr) ==> (L(mem, $y_addr) ==> Gamma_y_old)); + mem, Gamma_mem := memory_store32_le(mem, R10, R8[32:0]), gamma_store32(Gamma_mem, R10, Gamma_R8); + assert ((R10 == $x_addr) ==> (L(mem, $y_addr) ==> Gamma_y_old)); assert ((x_old == 0bv32) ==> (memory_load32_le(mem, $x_addr) == 0bv32)); assert (Gamma_y_old ==> ((memory_load32_le(mem, $x_addr) == 0bv32) || gamma_load32(Gamma_mem, $y_addr))); - assume {:captureState "1856_0"} true; - R0, Gamma_R0 := 0bv64, true; - Cse0__5_1_6, Gamma_Cse0__5_1_6 := bvadd64(R31, 16bv64), Gamma_R31; - load5, Gamma_load5 := memory_load64_le(stack, Cse0__5_1_6), gamma_load64(Gamma_stack, Cse0__5_1_6); - R29, Gamma_R29 := load5, Gamma_load5; - load6, Gamma_load6 := memory_load64_le(stack, bvadd64(Cse0__5_1_6, 8bv64)), gamma_load64(Gamma_stack, bvadd64(Cse0__5_1_6, 8bv64)); - R30, Gamma_R30 := load6, Gamma_load6; - R31, Gamma_R31 := bvadd64(R31, 32bv64), Gamma_R31; - goto main_1820_basil_return; - main_1820_basil_return: - assume {:captureState "main_1820_basil_return"} true; - return; -} - -procedure zero_1812(); - modifies Gamma_R0, R0; - free requires (memory_load32_le(mem, 1896bv64) == 131073bv32); - free requires (memory_load64_le(mem, 69064bv64) == 1808bv64); - free requires (memory_load64_le(mem, 69072bv64) == 1728bv64); - free requires (memory_load64_le(mem, 69592bv64) == 1820bv64); - free requires (memory_load64_le(mem, 69672bv64) == 69672bv64); - ensures ((R0[32:0] == 0bv32) && Gamma_R0); - free ensures (memory_load32_le(mem, 1896bv64) == 131073bv32); - free ensures (memory_load64_le(mem, 69064bv64) == 1808bv64); - free ensures (memory_load64_le(mem, 69072bv64) == 1728bv64); - free ensures (memory_load64_le(mem, 69592bv64) == 1820bv64); - free ensures (memory_load64_le(mem, 69672bv64) == 69672bv64); - -implementation zero_1812() -{ - zero_1812__0__dXyEHeAuQ5WTjIZmtrK5_w: - assume {:captureState "zero_1812__0__dXyEHeAuQ5WTjIZmtrK5_w"} true; - R0, Gamma_R0 := 0bv64, true; - goto zero_1812_basil_return; - zero_1812_basil_return: - assume {:captureState "zero_1812_basil_return"} true; + assume {:captureState "2296$0"} true; + goto main_basil_return; + main_basil_return: + assume {:captureState "main_basil_return"} true; return; } diff --git a/src/test/correct/basic_function_call_caller/clang_O2/basic_function_call_caller.adt b/src/test/correct/basic_function_call_caller/clang_O2/basic_function_call_caller.adt deleted file mode 100644 index 8a7ba8dc5..000000000 --- a/src/test/correct/basic_function_call_caller/clang_O2/basic_function_call_caller.adt +++ /dev/null @@ -1,508 +0,0 @@ -Project(Attrs([Attr("filename","\"clang_O2/basic_function_call_caller.out\""), -Attr("image-specification","(declare abi (name str))\n(declare arch (name str))\n(declare base-address (addr int))\n(declare bias (off int))\n(declare bits (size int))\n(declare code-region (addr int) (size int) (off int))\n(declare code-start (addr int))\n(declare entry-point (addr int))\n(declare external-reference (addr int) (name str))\n(declare format (name str))\n(declare is-executable (flag bool))\n(declare is-little-endian (flag bool))\n(declare llvm:base-address (addr int))\n(declare llvm:code-entry (name str) (off int) (size int))\n(declare llvm:coff-import-library (name str))\n(declare llvm:coff-virtual-section-header (name str) (addr int) (size int))\n(declare llvm:elf-program-header (name str) (off int) (size int))\n(declare llvm:elf-program-header-flags (name str) (ld bool) (r bool) \n (w bool) (x bool))\n(declare llvm:elf-virtual-program-header (name str) (addr int) (size int))\n(declare llvm:entry-point (addr int))\n(declare llvm:macho-symbol (name str) (value int))\n(declare llvm:name-reference (at int) (name str))\n(declare llvm:relocation (at int) (addr int))\n(declare llvm:section-entry (name str) (addr int) (size int) (off int))\n(declare llvm:section-flags (name str) (r bool) (w bool) (x bool))\n(declare llvm:segment-command (name str) (off int) (size int))\n(declare llvm:segment-command-flags (name str) (r bool) (w bool) (x bool))\n(declare llvm:symbol-entry (name str) (addr int) (size int) (off int)\n (value int))\n(declare llvm:virtual-segment-command (name str) (addr int) (size int))\n(declare mapped (addr int) (size int) (off int))\n(declare named-region (addr int) (size int) (name str))\n(declare named-symbol (addr int) (name str))\n(declare require (name str))\n(declare section (addr int) (size int))\n(declare segment (addr int) (size int) (r bool) (w bool) (x bool))\n(declare subarch (name str))\n(declare symbol-chunk (addr int) (size int) (root int))\n(declare symbol-value (addr int) (value int))\n(declare system (name str))\n(declare vendor (name str))\n\n(abi unknown)\n(arch aarch64)\n(base-address 0)\n(bias 0)\n(bits 64)\n(code-region 1848 20 1848)\n(code-region 1536 312 1536)\n(code-region 1440 96 1440)\n(code-region 1408 24 1408)\n(code-start 1588)\n(code-start 1536)\n(code-start 1812)\n(code-start 1820)\n(entry-point 1536)\n(external-reference 69568 _ITM_deregisterTMCloneTable)\n(external-reference 69576 __cxa_finalize)\n(external-reference 69584 __gmon_start__)\n(external-reference 69600 _ITM_registerTMCloneTable)\n(external-reference 69632 __libc_start_main)\n(external-reference 69640 __cxa_finalize)\n(external-reference 69648 __gmon_start__)\n(external-reference 69656 abort)\n(format elf)\n(is-executable true)\n(is-little-endian true)\n(llvm:base-address 0)\n(llvm:code-entry abort 0 0)\n(llvm:code-entry __cxa_finalize 0 0)\n(llvm:code-entry __libc_start_main 0 0)\n(llvm:code-entry _init 1408 0)\n(llvm:code-entry main 1820 28)\n(llvm:code-entry zero 1812 8)\n(llvm:code-entry _start 1536 52)\n(llvm:code-entry abort@GLIBC_2.17 0 0)\n(llvm:code-entry _fini 1848 0)\n(llvm:code-entry __cxa_finalize@GLIBC_2.17 0 0)\n(llvm:code-entry __libc_start_main@GLIBC_2.34 0 0)\n(llvm:code-entry frame_dummy 1808 0)\n(llvm:code-entry __do_global_dtors_aux 1728 0)\n(llvm:code-entry register_tm_clones 1664 0)\n(llvm:code-entry deregister_tm_clones 1616 0)\n(llvm:code-entry call_weak_fn 1588 20)\n(llvm:code-entry .fini 1848 20)\n(llvm:code-entry .text 1536 312)\n(llvm:code-entry .plt 1440 96)\n(llvm:code-entry .init 1408 24)\n(llvm:elf-program-header 08 3528 568)\n(llvm:elf-program-header 07 0 0)\n(llvm:elf-program-header 06 1872 68)\n(llvm:elf-program-header 05 596 68)\n(llvm:elf-program-header 04 3544 480)\n(llvm:elf-program-header 03 3528 616)\n(llvm:elf-program-header 02 0 2144)\n(llvm:elf-program-header 01 568 27)\n(llvm:elf-program-header 00 64 504)\n(llvm:elf-program-header-flags 08 false true false false)\n(llvm:elf-program-header-flags 07 false true true false)\n(llvm:elf-program-header-flags 06 false true false false)\n(llvm:elf-program-header-flags 05 false true false false)\n(llvm:elf-program-header-flags 04 false true true false)\n(llvm:elf-program-header-flags 03 true true true false)\n(llvm:elf-program-header-flags 02 true true false true)\n(llvm:elf-program-header-flags 01 false true false false)\n(llvm:elf-program-header-flags 00 false true false false)\n(llvm:elf-virtual-program-header 08 69064 568)\n(llvm:elf-virtual-program-header 07 0 0)\n(llvm:elf-virtual-program-header 06 1872 68)\n(llvm:elf-virtual-program-header 05 596 68)\n(llvm:elf-virtual-program-header 04 69080 480)\n(llvm:elf-virtual-program-header 03 69064 632)\n(llvm:elf-virtual-program-header 02 0 2144)\n(llvm:elf-virtual-program-header 01 568 27)\n(llvm:elf-virtual-program-header 00 64 504)\n(llvm:entry-point 1536)\n(llvm:name-reference 69656 abort)\n(llvm:name-reference 69648 __gmon_start__)\n(llvm:name-reference 69640 __cxa_finalize)\n(llvm:name-reference 69632 __libc_start_main)\n(llvm:name-reference 69600 _ITM_registerTMCloneTable)\n(llvm:name-reference 69584 __gmon_start__)\n(llvm:name-reference 69576 __cxa_finalize)\n(llvm:name-reference 69568 _ITM_deregisterTMCloneTable)\n(llvm:section-entry .shstrtab 0 259 7011)\n(llvm:section-entry .strtab 0 587 6424)\n(llvm:section-entry .symtab 0 2208 4216)\n(llvm:section-entry .comment 0 71 4144)\n(llvm:section-entry .bss 69680 16 4144)\n(llvm:section-entry .data 69664 16 4128)\n(llvm:section-entry .got.plt 69608 56 4072)\n(llvm:section-entry .got 69560 48 4024)\n(llvm:section-entry .dynamic 69080 480 3544)\n(llvm:section-entry .fini_array 69072 8 3536)\n(llvm:section-entry .init_array 69064 8 3528)\n(llvm:section-entry .eh_frame 1944 200 1944)\n(llvm:section-entry .eh_frame_hdr 1872 68 1872)\n(llvm:section-entry .rodata 1868 4 1868)\n(llvm:section-entry .fini 1848 20 1848)\n(llvm:section-entry .text 1536 312 1536)\n(llvm:section-entry .plt 1440 96 1440)\n(llvm:section-entry .init 1408 24 1408)\n(llvm:section-entry .rela.plt 1312 96 1312)\n(llvm:section-entry .rela.dyn 1120 192 1120)\n(llvm:section-entry .gnu.version_r 1072 48 1072)\n(llvm:section-entry .gnu.version 1054 18 1054)\n(llvm:section-entry .dynstr 912 141 912)\n(llvm:section-entry .dynsym 696 216 696)\n(llvm:section-entry .gnu.hash 664 28 664)\n(llvm:section-entry .note.ABI-tag 632 32 632)\n(llvm:section-entry .note.gnu.build-id 596 36 596)\n(llvm:section-entry .interp 568 27 568)\n(llvm:section-flags .shstrtab true false false)\n(llvm:section-flags .strtab true false false)\n(llvm:section-flags .symtab true false false)\n(llvm:section-flags .comment true false false)\n(llvm:section-flags .bss true true false)\n(llvm:section-flags .data true true false)\n(llvm:section-flags .got.plt true true false)\n(llvm:section-flags .got true true false)\n(llvm:section-flags .dynamic true true false)\n(llvm:section-flags .fini_array true true false)\n(llvm:section-flags .init_array true true false)\n(llvm:section-flags .eh_frame true false false)\n(llvm:section-flags .eh_frame_hdr true false false)\n(llvm:section-flags .rodata true false false)\n(llvm:section-flags .fini true false true)\n(llvm:section-flags .text true false true)\n(llvm:section-flags .plt true false true)\n(llvm:section-flags .init true false true)\n(llvm:section-flags .rela.plt true false false)\n(llvm:section-flags .rela.dyn true false false)\n(llvm:section-flags .gnu.version_r true false false)\n(llvm:section-flags .gnu.version true false false)\n(llvm:section-flags .dynstr true false false)\n(llvm:section-flags .dynsym true false false)\n(llvm:section-flags .gnu.hash true false false)\n(llvm:section-flags .note.ABI-tag true false false)\n(llvm:section-flags .note.gnu.build-id true false false)\n(llvm:section-flags .interp true false false)\n(llvm:symbol-entry abort 0 0 0 0)\n(llvm:symbol-entry __cxa_finalize 0 0 0 0)\n(llvm:symbol-entry __libc_start_main 0 0 0 0)\n(llvm:symbol-entry _init 1408 0 1408 1408)\n(llvm:symbol-entry main 1820 28 1820 1820)\n(llvm:symbol-entry zero 1812 8 1812 1812)\n(llvm:symbol-entry _start 1536 52 1536 1536)\n(llvm:symbol-entry abort@GLIBC_2.17 0 0 0 0)\n(llvm:symbol-entry _fini 1848 0 1848 1848)\n(llvm:symbol-entry __cxa_finalize@GLIBC_2.17 0 0 0 0)\n(llvm:symbol-entry __libc_start_main@GLIBC_2.34 0 0 0 0)\n(llvm:symbol-entry frame_dummy 1808 0 1808 1808)\n(llvm:symbol-entry __do_global_dtors_aux 1728 0 1728 1728)\n(llvm:symbol-entry register_tm_clones 1664 0 1664 1664)\n(llvm:symbol-entry deregister_tm_clones 1616 0 1616 1616)\n(llvm:symbol-entry call_weak_fn 1588 20 1588 1588)\n(mapped 0 2144 0)\n(mapped 69064 616 3528)\n(named-region 0 2144 02)\n(named-region 69064 632 03)\n(named-region 568 27 .interp)\n(named-region 596 36 .note.gnu.build-id)\n(named-region 632 32 .note.ABI-tag)\n(named-region 664 28 .gnu.hash)\n(named-region 696 216 .dynsym)\n(named-region 912 141 .dynstr)\n(named-region 1054 18 .gnu.version)\n(named-region 1072 48 .gnu.version_r)\n(named-region 1120 192 .rela.dyn)\n(named-region 1312 96 .rela.plt)\n(named-region 1408 24 .init)\n(named-region 1440 96 .plt)\n(named-region 1536 312 .text)\n(named-region 1848 20 .fini)\n(named-region 1868 4 .rodata)\n(named-region 1872 68 .eh_frame_hdr)\n(named-region 1944 200 .eh_frame)\n(named-region 69064 8 .init_array)\n(named-region 69072 8 .fini_array)\n(named-region 69080 480 .dynamic)\n(named-region 69560 48 .got)\n(named-region 69608 56 .got.plt)\n(named-region 69664 16 .data)\n(named-region 69680 16 .bss)\n(named-region 0 71 .comment)\n(named-region 0 2208 .symtab)\n(named-region 0 587 .strtab)\n(named-region 0 259 .shstrtab)\n(named-symbol 1588 call_weak_fn)\n(named-symbol 1616 deregister_tm_clones)\n(named-symbol 1664 register_tm_clones)\n(named-symbol 1728 __do_global_dtors_aux)\n(named-symbol 1808 frame_dummy)\n(named-symbol 0 __libc_start_main@GLIBC_2.34)\n(named-symbol 0 __cxa_finalize@GLIBC_2.17)\n(named-symbol 1848 _fini)\n(named-symbol 0 abort@GLIBC_2.17)\n(named-symbol 1536 _start)\n(named-symbol 1812 zero)\n(named-symbol 1820 main)\n(named-symbol 1408 _init)\n(named-symbol 0 __libc_start_main)\n(named-symbol 0 __cxa_finalize)\n(named-symbol 0 abort)\n(require libc.so.6)\n(section 568 27)\n(section 596 36)\n(section 632 32)\n(section 664 28)\n(section 696 216)\n(section 912 141)\n(section 1054 18)\n(section 1072 48)\n(section 1120 192)\n(section 1312 96)\n(section 1408 24)\n(section 1440 96)\n(section 1536 312)\n(section 1848 20)\n(section 1868 4)\n(section 1872 68)\n(section 1944 200)\n(section 69064 8)\n(section 69072 8)\n(section 69080 480)\n(section 69560 48)\n(section 69608 56)\n(section 69664 16)\n(section 69680 16)\n(section 0 71)\n(section 0 2208)\n(section 0 587)\n(section 0 259)\n(segment 0 2144 true false true)\n(segment 69064 632 true true false)\n(subarch v8)\n(symbol-chunk 1588 20 1588)\n(symbol-chunk 1536 52 1536)\n(symbol-chunk 1812 8 1812)\n(symbol-chunk 1820 28 1820)\n(symbol-value 1588 1588)\n(symbol-value 1616 1616)\n(symbol-value 1664 1664)\n(symbol-value 1728 1728)\n(symbol-value 1808 1808)\n(symbol-value 1848 1848)\n(symbol-value 1536 1536)\n(symbol-value 1812 1812)\n(symbol-value 1820 1820)\n(symbol-value 1408 1408)\n(symbol-value 0 0)\n(system \"\")\n(vendor \"\")\n"), -Attr("abi-name","\"aarch64-linux-gnu-elf\"")]), -Sections([Section(".shstrtab", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x00\x06\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x68\x1c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x38\x00\x09\x00\x40\x00\x1d\x00\x1c\x00\x06\x00\x00\x00\x04\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x04\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x60\x08\x00\x00\x00\x00\x00\x00\x60\x08\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x01\x00\x00\x00\x06\x00\x00\x00\xc8\x0d\x00\x00\x00\x00\x00\x00\xc8\x0d\x01\x00\x00\x00\x00\x00\xc8\x0d\x01"), -Section(".strtab", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x00\x06\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x68\x1c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x38\x00\x09\x00\x40\x00\x1d\x00\x1c\x00\x06\x00\x00\x00\x04\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x04\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x60\x08\x00\x00\x00\x00\x00\x00\x60\x08\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x01\x00\x00\x00\x06\x00\x00\x00\xc8\x0d\x00\x00\x00\x00\x00\x00\xc8\x0d\x01\x00\x00\x00\x00\x00\xc8\x0d\x01\x00\x00\x00\x00\x00\x68\x02\x00\x00\x00\x00\x00\x00\x78\x02\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x02\x00\x00\x00\x06\x00\x00\x00\xd8\x0d\x00\x00\x00\x00\x00\x00\xd8\x0d\x01\x00\x00\x00\x00\x00\xd8\x0d\x01\x00\x00\x00\x00\x00\xe0\x01\x00\x00\x00\x00\x00\x00\xe0\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x04\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x50\xe5\x74\x64\x04\x00\x00\x00\x50\x07\x00\x00\x00\x00\x00\x00\x50\x07\x00\x00\x00\x00\x00\x00\x50\x07\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x51\xe5\x74\x64\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x52\xe5\x74\x64\x04\x00\x00\x00\xc8\x0d\x00\x00\x00\x00\x00\x00\xc8\x0d\x01\x00\x00\x00\x00\x00\xc8\x0d\x01\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x2f\x6c\x69\x62\x2f\x6c\x64\x2d\x6c\x69\x6e\x75\x78\x2d\x61\x61\x72\x63\x68"), -Section(".comment", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x00\x06\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x68\x1c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x38\x00\x09\x00\x40\x00\x1d\x00\x1c\x00\x06\x00\x00\x00\x04\x00\x00"), -Section(".interp", 0x238, "\x2f\x6c\x69\x62\x2f\x6c\x64\x2d\x6c\x69\x6e\x75\x78\x2d\x61\x61\x72\x63\x68\x36\x34\x2e\x73\x6f\x2e\x31\x00"), -Section(".note.gnu.build-id", 0x254, "\x04\x00\x00\x00\x14\x00\x00\x00\x03\x00\x00\x00\x47\x4e\x55\x00\xda\x86\x26\x68\xcf\xec\xc7\x0b\x72\x27\xce\x06\x2e\xbb\x97\xed\x73\x1d\x0f\x5c"), -Section(".note.ABI-tag", 0x278, "\x04\x00\x00\x00\x10\x00\x00\x00\x01\x00\x00\x00\x47\x4e\x55\x00\x00\x00\x00\x00\x03\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00"), -Section(".gnu.hash", 0x298, "\x01\x00\x00\x00\x01\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".dynsym", 0x2B8, "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x0b\x00\x80\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x17\x00\x20\x10\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x48\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x22\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x22\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x73\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".dynstr", 0x390, "\x00\x5f\x5f\x63\x78\x61\x5f\x66\x69\x6e\x61\x6c\x69\x7a\x65\x00\x5f\x5f\x6c\x69\x62\x63\x5f\x73\x74\x61\x72\x74\x5f\x6d\x61\x69\x6e\x00\x61\x62\x6f\x72\x74\x00\x6c\x69\x62\x63\x2e\x73\x6f\x2e\x36\x00\x47\x4c\x49\x42\x43\x5f\x32\x2e\x31\x37\x00\x47\x4c\x49\x42\x43\x5f\x32\x2e\x33\x34\x00\x5f\x49\x54\x4d\x5f\x64\x65\x72\x65\x67\x69\x73\x74\x65\x72\x54\x4d\x43\x6c\x6f\x6e\x65\x54\x61\x62\x6c\x65\x00\x5f\x5f\x67\x6d\x6f\x6e\x5f\x73\x74\x61\x72\x74\x5f\x5f\x00\x5f\x49\x54\x4d\x5f\x72\x65\x67\x69\x73\x74\x65\x72\x54\x4d\x43\x6c\x6f\x6e\x65\x54\x61\x62\x6c\x65\x00"), -Section(".gnu.version", 0x41E, "\x00\x00\x00\x00\x00\x00\x02\x00\x01\x00\x03\x00\x01\x00\x03\x00\x01\x00"), -Section(".gnu.version_r", 0x430, "\x01\x00\x02\x00\x28\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x97\x91\x96\x06\x00\x00\x03\x00\x32\x00\x00\x00\x10\x00\x00\x00\xb4\x91\x96\x06\x00\x00\x02\x00\x3d\x00\x00\x00\x00\x00\x00\x00"), -Section(".rela.dyn", 0x460, "\xc8\x0d\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x10\x07\x00\x00\x00\x00\x00\x00\xd0\x0d\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\xc0\x06\x00\x00\x00\x00\x00\x00\xd8\x0f\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x1c\x07\x00\x00\x00\x00\x00\x00\x28\x10\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x28\x10\x01\x00\x00\x00\x00\x00\xc0\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xc8\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xd0\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe0\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".rela.plt", 0x520, "\x00\x10\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x08\x10\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x10\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x18\x10\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".init", 0x580, "\x1f\x20\x03\xd5\xfd\x7b\xbf\xa9\xfd\x03\x00\x91\x2a\x00\x00\x94\xfd\x7b\xc1\xa8\xc0\x03\x5f\xd6"), -Section(".plt", 0x5A0, "\xf0\x7b\xbf\xa9\x90\x00\x00\x90\x11\xfe\x47\xf9\x10\xe2\x3f\x91\x20\x02\x1f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x90\x00\x00\xb0\x11\x02\x40\xf9\x10\x02\x00\x91\x20\x02\x1f\xd6\x90\x00\x00\xb0\x11\x06\x40\xf9\x10\x22\x00\x91\x20\x02\x1f\xd6\x90\x00\x00\xb0\x11\x0a\x40\xf9\x10\x42\x00\x91\x20\x02\x1f\xd6\x90\x00\x00\xb0\x11\x0e\x40\xf9\x10\x62\x00\x91\x20\x02\x1f\xd6"), -Section(".text", 0x600, "\x1f\x20\x03\xd5\x1d\x00\x80\xd2\x1e\x00\x80\xd2\xe5\x03\x00\xaa\xe1\x03\x40\xf9\xe2\x23\x00\x91\xe6\x03\x00\x91\x80\x00\x00\x90\x00\xec\x47\xf9\x03\x00\x80\xd2\x04\x00\x80\xd2\xe5\xff\xff\x97\xf0\xff\xff\x97\x80\x00\x00\x90\x00\xe8\x47\xf9\x40\x00\x00\xb4\xe8\xff\xff\x17\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x80\x00\x00\xb0\x00\xc0\x00\x91\x81\x00\x00\xb0\x21\xc0\x00\x91\x3f\x00\x00\xeb\xc0\x00\x00\x54\x81\x00\x00\x90\x21\xe0\x47\xf9\x61\x00\x00\xb4\xf0\x03\x01\xaa\x00\x02\x1f\xd6\xc0\x03\x5f\xd6\x80\x00\x00\xb0\x00\xc0\x00\x91\x81\x00\x00\xb0\x21\xc0\x00\x91\x21\x00\x00\xcb\x22\xfc\x7f\xd3\x41\x0c\x81\x8b\x21\xfc\x41\x93\xc1\x00\x00\xb4\x82\x00\x00\x90\x42\xf0\x47\xf9\x62\x00\x00\xb4\xf0\x03\x02\xaa\x00\x02\x1f\xd6\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\xfd\x7b\xbe\xa9\xfd\x03\x00\x91\xf3\x0b\x00\xf9\x93\x00\x00\xb0\x60\xc2\x40\x39\x40\x01\x00\x35\x80\x00\x00\x90\x00\xe4\x47\xf9\x80\x00\x00\xb4\x80\x00\x00\xb0\x00\x14\x40\xf9\xb9\xff\xff\x97\xd8\xff\xff\x97\x20\x00\x80\x52\x60\xc2\x00\x39\xf3\x0b\x40\xf9\xfd\x7b\xc2\xa8\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\xdc\xff\xff\x17\xe0\x03\x1f\x2a\xc0\x03\x5f\xd6\xe8\x03\x00\x2a\xe0\x03\x1f\x2a\x89\x00\x00\xb0\x8a\x00\x00\xb0\x3f\x35\x00\xb9\x48\x39\x00\xb9\xc0\x03\x5f\xd6"), -Section(".fini", 0x738, "\x1f\x20\x03\xd5\xfd\x7b\xbf\xa9\xfd\x03\x00\x91\xfd\x7b\xc1\xa8\xc0\x03\x5f\xd6"), -Section(".rodata", 0x74C, "\x01\x00\x02\x00"), -Section(".eh_frame_hdr", 0x750, "\x01\x1b\x03\x3b\x44\x00\x00\x00\x07\x00\x00\x00\xb0\xfe\xff\xff\x5c\x00\x00\x00\x00\xff\xff\xff\x70\x00\x00\x00\x30\xff\xff\xff\x84\x00\x00\x00\x70\xff\xff\xff\x98\x00\x00\x00\xc0\xff\xff\xff\xbc\x00\x00\x00\xc4\xff\xff\xff\xe4\x00\x00\x00\xcc\xff\xff\xff\xf8\x00\x00\x00"), -Section(".eh_frame", 0x798, "\x10\x00\x00\x00\x00\x00\x00\x00\x01\x7a\x52\x00\x04\x78\x1e\x01\x1b\x0c\x1f\x00\x10\x00\x00\x00\x18\x00\x00\x00\x4c\xfe\xff\xff\x34\x00\x00\x00\x00\x41\x07\x1e\x10\x00\x00\x00\x2c\x00\x00\x00\x88\xfe\xff\xff\x30\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x40\x00\x00\x00\xa4\xfe\xff\xff\x3c\x00\x00\x00\x00\x00\x00\x00\x20\x00\x00\x00\x54\x00\x00\x00\xd0\xfe\xff\xff\x48\x00\x00\x00\x00\x41\x0e\x20\x9d\x04\x9e\x03\x42\x93\x02\x4e\xde\xdd\xd3\x0e\x00\x00\x00\x00\x10\x00\x00\x00\x78\x00\x00\x00\xfc\xfe\xff\xff\x04\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x01\x7a\x52\x00\x01\x7c\x1e\x01\x1b\x0c\x1f\x00\x10\x00\x00\x00\x18\x00\x00\x00\xd8\xfe\xff\xff\x08\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x2c\x00\x00\x00\xcc\xfe\xff\xff\x1c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".fini_array", 0x10DD0, "\xc0\x06\x00\x00\x00\x00\x00\x00"), -Section(".dynamic", 0x10DD8, "\x01\x00\x00\x00\x00\x00\x00\x00\x28\x00\x00\x00\x00\x00\x00\x00\x0c\x00\x00\x00\x00\x00\x00\x00\x80\x05\x00\x00\x00\x00\x00\x00\x0d\x00\x00\x00\x00\x00\x00\x00\x38\x07\x00\x00\x00\x00\x00\x00\x19\x00\x00\x00\x00\x00\x00\x00\xc8\x0d\x01\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x1a\x00\x00\x00\x00\x00\x00\x00\xd0\x0d\x01\x00\x00\x00\x00\x00\x1c\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\xf5\xfe\xff\x6f\x00\x00\x00\x00\x98\x02\x00\x00\x00\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x90\x03\x00\x00\x00\x00\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\xb8\x02\x00\x00\x00\x00\x00\x00\x0a\x00\x00\x00\x00\x00\x00\x00\x8d\x00\x00\x00\x00\x00\x00\x00\x0b\x00\x00\x00\x00\x00\x00\x00\x18\x00\x00\x00\x00\x00\x00\x00\x15\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\xe8\x0f\x01\x00\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x60\x00\x00\x00\x00\x00\x00\x00\x14\x00\x00\x00\x00\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x17\x00\x00\x00\x00\x00\x00\x00\x20\x05\x00\x00\x00\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x60\x04\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\xc0\x00\x00\x00\x00\x00\x00\x00\x09\x00\x00\x00\x00\x00\x00\x00\x18\x00\x00\x00\x00\x00\x00\x00\xfb\xff\xff\x6f\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\xfe\xff\xff\x6f\x00\x00\x00\x00\x30\x04\x00\x00\x00\x00\x00\x00\xff\xff\xff\x6f\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\xf0\xff\xff\x6f\x00\x00\x00\x00\x1e\x04\x00\x00\x00\x00\x00\x00\xf9\xff\xff\x6f\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".got", 0x10FB8, "\xd8\x0d\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1c\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".got.plt", 0x10FE8, "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xa0\x05\x00\x00\x00\x00\x00\x00\xa0\x05\x00\x00\x00\x00\x00\x00\xa0\x05\x00\x00\x00\x00\x00\x00\xa0\x05\x00\x00\x00\x00\x00\x00"), -Section(".data", 0x11020, "\x00\x00\x00\x00\x00\x00\x00\x00\x28\x10\x01\x00\x00\x00\x00\x00"), -Section(".init_array", 0x10DC8, "\x10\x07\x00\x00\x00\x00\x00\x00")]), -Memmap([Annotation(Region(0x0,0x85F), Attr("segment","02 0 2144")), -Annotation(Region(0x600,0x633), Attr("symbol","\"_start\"")), -Annotation(Region(0x0,0x102), Attr("section","\".shstrtab\"")), -Annotation(Region(0x0,0x24A), Attr("section","\".strtab\"")), -Annotation(Region(0x0,0x46), Attr("section","\".comment\"")), -Annotation(Region(0x238,0x252), Attr("section","\".interp\"")), -Annotation(Region(0x254,0x277), Attr("section","\".note.gnu.build-id\"")), -Annotation(Region(0x278,0x297), Attr("section","\".note.ABI-tag\"")), -Annotation(Region(0x298,0x2B3), Attr("section","\".gnu.hash\"")), -Annotation(Region(0x2B8,0x38F), Attr("section","\".dynsym\"")), -Annotation(Region(0x390,0x41C), Attr("section","\".dynstr\"")), -Annotation(Region(0x41E,0x42F), Attr("section","\".gnu.version\"")), -Annotation(Region(0x430,0x45F), Attr("section","\".gnu.version_r\"")), -Annotation(Region(0x460,0x51F), Attr("section","\".rela.dyn\"")), -Annotation(Region(0x520,0x57F), Attr("section","\".rela.plt\"")), -Annotation(Region(0x580,0x597), Attr("section","\".init\"")), -Annotation(Region(0x5A0,0x5FF), Attr("section","\".plt\"")), -Annotation(Region(0x580,0x597), Attr("code-region","()")), -Annotation(Region(0x5A0,0x5FF), Attr("code-region","()")), -Annotation(Region(0x600,0x633), Attr("symbol-info","_start 0x600 52")), -Annotation(Region(0x634,0x647), Attr("symbol","\"call_weak_fn\"")), -Annotation(Region(0x634,0x647), Attr("symbol-info","call_weak_fn 0x634 20")), -Annotation(Region(0x714,0x71B), Attr("symbol","\"zero\"")), -Annotation(Region(0x600,0x737), Attr("section","\".text\"")), -Annotation(Region(0x600,0x737), Attr("code-region","()")), -Annotation(Region(0x714,0x71B), Attr("symbol-info","zero 0x714 8")), -Annotation(Region(0x71C,0x737), Attr("symbol","\"main\"")), -Annotation(Region(0x71C,0x737), Attr("symbol-info","main 0x71C 28")), -Annotation(Region(0x738,0x74B), Attr("section","\".fini\"")), -Annotation(Region(0x738,0x74B), Attr("code-region","()")), -Annotation(Region(0x74C,0x74F), Attr("section","\".rodata\"")), -Annotation(Region(0x750,0x793), Attr("section","\".eh_frame_hdr\"")), -Annotation(Region(0x798,0x85F), Attr("section","\".eh_frame\"")), -Annotation(Region(0x10DC8,0x1102F), Attr("segment","03 0x10DC8 632")), -Annotation(Region(0x10DD0,0x10DD7), Attr("section","\".fini_array\"")), -Annotation(Region(0x10DD8,0x10FB7), Attr("section","\".dynamic\"")), -Annotation(Region(0x10FB8,0x10FE7), Attr("section","\".got\"")), -Annotation(Region(0x10FE8,0x1101F), Attr("section","\".got.plt\"")), -Annotation(Region(0x11020,0x1102F), Attr("section","\".data\"")), -Annotation(Region(0x10DC8,0x10DCF), Attr("section","\".init_array\""))]), -Program(Tid(1_466, "%000005ba"), Attrs([]), - Subs([Sub(Tid(1_414, "@__cxa_finalize"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x5D0"), -Attr("stub","()")]), "__cxa_finalize", Args([Arg(Tid(1_467, "%000005bb"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("__cxa_finalize_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(824, "@__cxa_finalize"), - Attrs([Attr("address","0x5D0")]), Phis([]), -Defs([Def(Tid(1_072, "%00000430"), Attrs([Attr("address","0x5D0"), -Attr("insn","adrp x16, #69632")]), Var("R16",Imm(64)), Int(69632,64)), -Def(Tid(1_079, "%00000437"), Attrs([Attr("address","0x5D4"), -Attr("insn","ldr x17, [x16, #0x8]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(1_085, "%0000043d"), Attrs([Attr("address","0x5D8"), -Attr("insn","add x16, x16, #0x8")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(8,64)))]), Jmps([Call(Tid(1_090, "%00000442"), - Attrs([Attr("address","0x5DC"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), -Sub(Tid(1_415, "@__do_global_dtors_aux"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x6C0")]), - "__do_global_dtors_aux", Args([Arg(Tid(1_468, "%000005bc"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("__do_global_dtors_aux_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(626, "@__do_global_dtors_aux"), - Attrs([Attr("address","0x6C0")]), Phis([]), Defs([Def(Tid(630, "%00000276"), - Attrs([Attr("address","0x6C0"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("#3",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(18446744073709551584,64))), -Def(Tid(636, "%0000027c"), Attrs([Attr("address","0x6C0"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("#3",Imm(64)),Var("R29",Imm(64)),LittleEndian(),64)), -Def(Tid(642, "%00000282"), Attrs([Attr("address","0x6C0"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("#3",Imm(64)),Int(8,64)),Var("R30",Imm(64)),LittleEndian(),64)), -Def(Tid(646, "%00000286"), Attrs([Attr("address","0x6C0"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("R31",Imm(64)), -Var("#3",Imm(64))), Def(Tid(652, "%0000028c"), - Attrs([Attr("address","0x6C4"), Attr("insn","mov x29, sp")]), - Var("R29",Imm(64)), Var("R31",Imm(64))), Def(Tid(660, "%00000294"), - Attrs([Attr("address","0x6C8"), Attr("insn","str x19, [sp, #0x10]")]), - Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(16,64)),Var("R19",Imm(64)),LittleEndian(),64)), -Def(Tid(665, "%00000299"), Attrs([Attr("address","0x6CC"), -Attr("insn","adrp x19, #69632")]), Var("R19",Imm(64)), Int(69632,64)), -Def(Tid(672, "%000002a0"), Attrs([Attr("address","0x6D0"), -Attr("insn","ldrb w0, [x19, #0x30]")]), Var("R0",Imm(64)), -UNSIGNED(64,Load(Var("mem",Mem(64,8)),PLUS(Var("R19",Imm(64)),Int(48,64)),LittleEndian(),8)))]), -Jmps([Goto(Tid(679, "%000002a7"), Attrs([Attr("address","0x6D4"), -Attr("insn","cbnz w0, #0x28")]), - NEQ(Extract(31,0,Var("R0",Imm(64))),Int(0,32)), -Direct(Tid(677, "%000002a5"))), Goto(Tid(1_456, "%000005b0"), Attrs([]), - Int(1,1), Direct(Tid(769, "%00000301")))])), Blk(Tid(769, "%00000301"), - Attrs([Attr("address","0x6D8")]), Phis([]), Defs([Def(Tid(772, "%00000304"), - Attrs([Attr("address","0x6D8"), Attr("insn","adrp x0, #65536")]), - Var("R0",Imm(64)), Int(65536,64)), Def(Tid(779, "%0000030b"), - Attrs([Attr("address","0x6DC"), Attr("insn","ldr x0, [x0, #0xfc8]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(4040,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(785, "%00000311"), Attrs([Attr("address","0x6E0"), -Attr("insn","cbz x0, #0x10")]), EQ(Var("R0",Imm(64)),Int(0,64)), -Direct(Tid(783, "%0000030f"))), Goto(Tid(1_457, "%000005b1"), Attrs([]), - Int(1,1), Direct(Tid(808, "%00000328")))])), Blk(Tid(808, "%00000328"), - Attrs([Attr("address","0x6E4")]), Phis([]), Defs([Def(Tid(811, "%0000032b"), - Attrs([Attr("address","0x6E4"), Attr("insn","adrp x0, #69632")]), - Var("R0",Imm(64)), Int(69632,64)), Def(Tid(818, "%00000332"), - Attrs([Attr("address","0x6E8"), Attr("insn","ldr x0, [x0, #0x28]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(40,64)),LittleEndian(),64)), -Def(Tid(823, "%00000337"), Attrs([Attr("address","0x6EC"), -Attr("insn","bl #-0x11c")]), Var("R30",Imm(64)), Int(1776,64))]), -Jmps([Call(Tid(826, "%0000033a"), Attrs([Attr("address","0x6EC"), -Attr("insn","bl #-0x11c")]), Int(1,1), -(Direct(Tid(1_414, "@__cxa_finalize")),Direct(Tid(783, "%0000030f"))))])), -Blk(Tid(783, "%0000030f"), Attrs([Attr("address","0x6F0")]), Phis([]), -Defs([Def(Tid(791, "%00000317"), Attrs([Attr("address","0x6F0"), -Attr("insn","bl #-0xa0")]), Var("R30",Imm(64)), Int(1780,64))]), -Jmps([Call(Tid(793, "%00000319"), Attrs([Attr("address","0x6F0"), -Attr("insn","bl #-0xa0")]), Int(1,1), -(Direct(Tid(1_428, "@deregister_tm_clones")),Direct(Tid(795, "%0000031b"))))])), -Blk(Tid(795, "%0000031b"), Attrs([Attr("address","0x6F4")]), Phis([]), -Defs([Def(Tid(798, "%0000031e"), Attrs([Attr("address","0x6F4"), -Attr("insn","mov w0, #0x1")]), Var("R0",Imm(64)), Int(1,64)), -Def(Tid(806, "%00000326"), Attrs([Attr("address","0x6F8"), -Attr("insn","strb w0, [x19, #0x30]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R19",Imm(64)),Int(48,64)),Extract(7,0,Var("R0",Imm(64))),LittleEndian(),8))]), -Jmps([Goto(Tid(1_458, "%000005b2"), Attrs([]), Int(1,1), -Direct(Tid(677, "%000002a5")))])), Blk(Tid(677, "%000002a5"), - Attrs([Attr("address","0x6FC")]), Phis([]), Defs([Def(Tid(687, "%000002af"), - Attrs([Attr("address","0x6FC"), Attr("insn","ldr x19, [sp, #0x10]")]), - Var("R19",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(16,64)),LittleEndian(),64)), -Def(Tid(694, "%000002b6"), Attrs([Attr("address","0x700"), -Attr("insn","ldp x29, x30, [sp], #0x20")]), Var("R29",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(699, "%000002bb"), Attrs([Attr("address","0x700"), -Attr("insn","ldp x29, x30, [sp], #0x20")]), Var("R30",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(703, "%000002bf"), Attrs([Attr("address","0x700"), -Attr("insn","ldp x29, x30, [sp], #0x20")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(32,64)))]), Jmps([Call(Tid(708, "%000002c4"), - Attrs([Attr("address","0x704"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), Sub(Tid(1_419, "@__libc_start_main"), - Attrs([Attr("c.proto","signed (*)(signed (*)(signed , char** , char** );* main, signed , char** , \nvoid* auxv)"), -Attr("address","0x5C0"), Attr("stub","()")]), "__libc_start_main", - Args([Arg(Tid(1_469, "%000005bd"), - Attrs([Attr("c.layout","**[ : 64]"), -Attr("c.data","Top:u64 ptr ptr"), -Attr("c.type","signed (*)(signed , char** , char** );*")]), - Var("__libc_start_main_main",Imm(64)), Var("R0",Imm(64)), In()), -Arg(Tid(1_470, "%000005be"), Attrs([Attr("c.layout","[signed : 32]"), -Attr("c.data","Top:u32"), Attr("c.type","signed")]), - Var("__libc_start_main_arg2",Imm(32)), LOW(32,Var("R1",Imm(64))), In()), -Arg(Tid(1_471, "%000005bf"), Attrs([Attr("c.layout","**[char : 8]"), -Attr("c.data","Top:u8 ptr ptr"), Attr("c.type","char**")]), - Var("__libc_start_main_arg3",Imm(64)), Var("R2",Imm(64)), Both()), -Arg(Tid(1_472, "%000005c0"), Attrs([Attr("c.layout","*[ : 8]"), -Attr("c.data","{} ptr"), Attr("c.type","void*")]), - Var("__libc_start_main_auxv",Imm(64)), Var("R3",Imm(64)), Both()), -Arg(Tid(1_473, "%000005c1"), Attrs([Attr("c.layout","[signed : 32]"), -Attr("c.data","Top:u32"), Attr("c.type","signed")]), - Var("__libc_start_main_result",Imm(32)), LOW(32,Var("R0",Imm(64))), -Out())]), Blks([Blk(Tid(459, "@__libc_start_main"), - Attrs([Attr("address","0x5C0")]), Phis([]), -Defs([Def(Tid(1_050, "%0000041a"), Attrs([Attr("address","0x5C0"), -Attr("insn","adrp x16, #69632")]), Var("R16",Imm(64)), Int(69632,64)), -Def(Tid(1_057, "%00000421"), Attrs([Attr("address","0x5C4"), -Attr("insn","ldr x17, [x16]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R16",Imm(64)),LittleEndian(),64)), -Def(Tid(1_063, "%00000427"), Attrs([Attr("address","0x5C8"), -Attr("insn","add x16, x16, #0x0")]), Var("R16",Imm(64)), -Var("R16",Imm(64)))]), Jmps([Call(Tid(1_068, "%0000042c"), - Attrs([Attr("address","0x5CC"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), Sub(Tid(1_420, "@_fini"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x738")]), - "_fini", Args([Arg(Tid(1_474, "%000005c2"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("_fini_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(31, "@_fini"), - Attrs([Attr("address","0x738")]), Phis([]), Defs([Def(Tid(37, "%00000025"), - Attrs([Attr("address","0x73C"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("#0",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(18446744073709551600,64))), -Def(Tid(43, "%0000002b"), Attrs([Attr("address","0x73C"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("#0",Imm(64)),Var("R29",Imm(64)),LittleEndian(),64)), -Def(Tid(49, "%00000031"), Attrs([Attr("address","0x73C"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("#0",Imm(64)),Int(8,64)),Var("R30",Imm(64)),LittleEndian(),64)), -Def(Tid(53, "%00000035"), Attrs([Attr("address","0x73C"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("R31",Imm(64)), -Var("#0",Imm(64))), Def(Tid(59, "%0000003b"), Attrs([Attr("address","0x740"), -Attr("insn","mov x29, sp")]), Var("R29",Imm(64)), Var("R31",Imm(64))), -Def(Tid(66, "%00000042"), Attrs([Attr("address","0x744"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R29",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(71, "%00000047"), Attrs([Attr("address","0x744"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R30",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(75, "%0000004b"), Attrs([Attr("address","0x744"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(16,64)))]), Jmps([Call(Tid(80, "%00000050"), - Attrs([Attr("address","0x748"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), Sub(Tid(1_421, "@_init"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x580")]), - "_init", Args([Arg(Tid(1_475, "%000005c3"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("_init_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(1_247, "@_init"), - Attrs([Attr("address","0x580")]), Phis([]), -Defs([Def(Tid(1_253, "%000004e5"), Attrs([Attr("address","0x584"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("#5",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(18446744073709551600,64))), -Def(Tid(1_259, "%000004eb"), Attrs([Attr("address","0x584"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("#5",Imm(64)),Var("R29",Imm(64)),LittleEndian(),64)), -Def(Tid(1_265, "%000004f1"), Attrs([Attr("address","0x584"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("#5",Imm(64)),Int(8,64)),Var("R30",Imm(64)),LittleEndian(),64)), -Def(Tid(1_269, "%000004f5"), Attrs([Attr("address","0x584"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("R31",Imm(64)), -Var("#5",Imm(64))), Def(Tid(1_275, "%000004fb"), - Attrs([Attr("address","0x588"), Attr("insn","mov x29, sp")]), - Var("R29",Imm(64)), Var("R31",Imm(64))), Def(Tid(1_280, "%00000500"), - Attrs([Attr("address","0x58C"), Attr("insn","bl #0xa8")]), - Var("R30",Imm(64)), Int(1424,64))]), Jmps([Call(Tid(1_282, "%00000502"), - Attrs([Attr("address","0x58C"), Attr("insn","bl #0xa8")]), Int(1,1), -(Direct(Tid(1_426, "@call_weak_fn")),Direct(Tid(1_284, "%00000504"))))])), -Blk(Tid(1_284, "%00000504"), Attrs([Attr("address","0x590")]), Phis([]), -Defs([Def(Tid(1_289, "%00000509"), Attrs([Attr("address","0x590"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R29",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(1_294, "%0000050e"), Attrs([Attr("address","0x590"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R30",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(1_298, "%00000512"), Attrs([Attr("address","0x590"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(16,64)))]), Jmps([Call(Tid(1_303, "%00000517"), - Attrs([Attr("address","0x594"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), Sub(Tid(1_422, "@_start"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x600"), -Attr("stub","()"), Attr("entry-point","()")]), "_start", - Args([Arg(Tid(1_476, "%000005c4"), Attrs([Attr("c.layout","[signed : 32]"), -Attr("c.data","Top:u32"), Attr("c.type","signed")]), - Var("_start_result",Imm(32)), LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(396, "@_start"), Attrs([Attr("address","0x600")]), Phis([]), -Defs([Def(Tid(401, "%00000191"), Attrs([Attr("address","0x604"), -Attr("insn","mov x29, #0x0")]), Var("R29",Imm(64)), Int(0,64)), -Def(Tid(406, "%00000196"), Attrs([Attr("address","0x608"), -Attr("insn","mov x30, #0x0")]), Var("R30",Imm(64)), Int(0,64)), -Def(Tid(412, "%0000019c"), Attrs([Attr("address","0x60C"), -Attr("insn","mov x5, x0")]), Var("R5",Imm(64)), Var("R0",Imm(64))), -Def(Tid(419, "%000001a3"), Attrs([Attr("address","0x610"), -Attr("insn","ldr x1, [sp]")]), Var("R1",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(425, "%000001a9"), Attrs([Attr("address","0x614"), -Attr("insn","add x2, sp, #0x8")]), Var("R2",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(8,64))), Def(Tid(431, "%000001af"), - Attrs([Attr("address","0x618"), Attr("insn","mov x6, sp")]), - Var("R6",Imm(64)), Var("R31",Imm(64))), Def(Tid(436, "%000001b4"), - Attrs([Attr("address","0x61C"), Attr("insn","adrp x0, #65536")]), - Var("R0",Imm(64)), Int(65536,64)), Def(Tid(443, "%000001bb"), - Attrs([Attr("address","0x620"), Attr("insn","ldr x0, [x0, #0xfd8]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(4056,64)),LittleEndian(),64)), -Def(Tid(448, "%000001c0"), Attrs([Attr("address","0x624"), -Attr("insn","mov x3, #0x0")]), Var("R3",Imm(64)), Int(0,64)), -Def(Tid(453, "%000001c5"), Attrs([Attr("address","0x628"), -Attr("insn","mov x4, #0x0")]), Var("R4",Imm(64)), Int(0,64)), -Def(Tid(458, "%000001ca"), Attrs([Attr("address","0x62C"), -Attr("insn","bl #-0x6c")]), Var("R30",Imm(64)), Int(1584,64))]), -Jmps([Call(Tid(461, "%000001cd"), Attrs([Attr("address","0x62C"), -Attr("insn","bl #-0x6c")]), Int(1,1), -(Direct(Tid(1_419, "@__libc_start_main")),Direct(Tid(463, "%000001cf"))))])), -Blk(Tid(463, "%000001cf"), Attrs([Attr("address","0x630")]), Phis([]), -Defs([Def(Tid(466, "%000001d2"), Attrs([Attr("address","0x630"), -Attr("insn","bl #-0x40")]), Var("R30",Imm(64)), Int(1588,64))]), -Jmps([Call(Tid(469, "%000001d5"), Attrs([Attr("address","0x630"), -Attr("insn","bl #-0x40")]), Int(1,1), -(Direct(Tid(1_425, "@abort")),Direct(Tid(1_459, "%000005b3"))))])), -Blk(Tid(1_459, "%000005b3"), Attrs([]), Phis([]), Defs([]), -Jmps([Call(Tid(1_460, "%000005b4"), Attrs([]), Int(1,1), -(Direct(Tid(1_426, "@call_weak_fn")),))]))])), Sub(Tid(1_425, "@abort"), - Attrs([Attr("noreturn","()"), Attr("c.proto","void (*)(void)"), -Attr("address","0x5F0"), Attr("stub","()")]), "abort", Args([]), -Blks([Blk(Tid(467, "@abort"), Attrs([Attr("address","0x5F0")]), Phis([]), -Defs([Def(Tid(1_116, "%0000045c"), Attrs([Attr("address","0x5F0"), -Attr("insn","adrp x16, #69632")]), Var("R16",Imm(64)), Int(69632,64)), -Def(Tid(1_123, "%00000463"), Attrs([Attr("address","0x5F4"), -Attr("insn","ldr x17, [x16, #0x18]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(24,64)),LittleEndian(),64)), -Def(Tid(1_129, "%00000469"), Attrs([Attr("address","0x5F8"), -Attr("insn","add x16, x16, #0x18")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(24,64)))]), Jmps([Call(Tid(1_134, "%0000046e"), - Attrs([Attr("address","0x5FC"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), Sub(Tid(1_426, "@call_weak_fn"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x634")]), - "call_weak_fn", Args([Arg(Tid(1_477, "%000005c5"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("call_weak_fn_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(471, "@call_weak_fn"), - Attrs([Attr("address","0x634")]), Phis([]), Defs([Def(Tid(474, "%000001da"), - Attrs([Attr("address","0x634"), Attr("insn","adrp x0, #65536")]), - Var("R0",Imm(64)), Int(65536,64)), Def(Tid(481, "%000001e1"), - Attrs([Attr("address","0x638"), Attr("insn","ldr x0, [x0, #0xfd0]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(4048,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(487, "%000001e7"), Attrs([Attr("address","0x63C"), -Attr("insn","cbz x0, #0x8")]), EQ(Var("R0",Imm(64)),Int(0,64)), -Direct(Tid(485, "%000001e5"))), Goto(Tid(1_461, "%000005b5"), Attrs([]), - Int(1,1), Direct(Tid(888, "%00000378")))])), Blk(Tid(485, "%000001e5"), - Attrs([Attr("address","0x644")]), Phis([]), Defs([]), -Jmps([Call(Tid(493, "%000001ed"), Attrs([Attr("address","0x644"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))])), -Blk(Tid(888, "%00000378"), Attrs([Attr("address","0x640")]), Phis([]), -Defs([]), Jmps([Goto(Tid(891, "%0000037b"), Attrs([Attr("address","0x640"), -Attr("insn","b #-0x60")]), Int(1,1), Direct(Tid(889, "@__gmon_start__")))])), -Blk(Tid(889, "@__gmon_start__"), Attrs([Attr("address","0x5E0")]), Phis([]), -Defs([Def(Tid(1_094, "%00000446"), Attrs([Attr("address","0x5E0"), -Attr("insn","adrp x16, #69632")]), Var("R16",Imm(64)), Int(69632,64)), -Def(Tid(1_101, "%0000044d"), Attrs([Attr("address","0x5E4"), -Attr("insn","ldr x17, [x16, #0x10]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(16,64)),LittleEndian(),64)), -Def(Tid(1_107, "%00000453"), Attrs([Attr("address","0x5E8"), -Attr("insn","add x16, x16, #0x10")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(16,64)))]), Jmps([Call(Tid(1_112, "%00000458"), - Attrs([Attr("address","0x5EC"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), -Sub(Tid(1_428, "@deregister_tm_clones"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x650")]), - "deregister_tm_clones", Args([Arg(Tid(1_478, "%000005c6"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("deregister_tm_clones_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(499, "@deregister_tm_clones"), - Attrs([Attr("address","0x650")]), Phis([]), Defs([Def(Tid(502, "%000001f6"), - Attrs([Attr("address","0x650"), Attr("insn","adrp x0, #69632")]), - Var("R0",Imm(64)), Int(69632,64)), Def(Tid(508, "%000001fc"), - Attrs([Attr("address","0x654"), Attr("insn","add x0, x0, #0x30")]), - Var("R0",Imm(64)), PLUS(Var("R0",Imm(64)),Int(48,64))), -Def(Tid(513, "%00000201"), Attrs([Attr("address","0x658"), -Attr("insn","adrp x1, #69632")]), Var("R1",Imm(64)), Int(69632,64)), -Def(Tid(519, "%00000207"), Attrs([Attr("address","0x65C"), -Attr("insn","add x1, x1, #0x30")]), Var("R1",Imm(64)), -PLUS(Var("R1",Imm(64)),Int(48,64))), Def(Tid(525, "%0000020d"), - Attrs([Attr("address","0x660"), Attr("insn","cmp x1, x0")]), - Var("#1",Imm(64)), NOT(Var("R0",Imm(64)))), Def(Tid(530, "%00000212"), - Attrs([Attr("address","0x660"), Attr("insn","cmp x1, x0")]), - Var("#2",Imm(64)), PLUS(Var("R1",Imm(64)),NOT(Var("R0",Imm(64))))), -Def(Tid(536, "%00000218"), Attrs([Attr("address","0x660"), -Attr("insn","cmp x1, x0")]), Var("VF",Imm(1)), -NEQ(SIGNED(65,PLUS(Var("#2",Imm(64)),Int(1,64))),PLUS(PLUS(SIGNED(65,Var("R1",Imm(64))),SIGNED(65,Var("#1",Imm(64)))),Int(1,65)))), -Def(Tid(542, "%0000021e"), Attrs([Attr("address","0x660"), -Attr("insn","cmp x1, x0")]), Var("CF",Imm(1)), -NEQ(UNSIGNED(65,PLUS(Var("#2",Imm(64)),Int(1,64))),PLUS(PLUS(UNSIGNED(65,Var("R1",Imm(64))),UNSIGNED(65,Var("#1",Imm(64)))),Int(1,65)))), -Def(Tid(546, "%00000222"), Attrs([Attr("address","0x660"), -Attr("insn","cmp x1, x0")]), Var("ZF",Imm(1)), -EQ(PLUS(Var("#2",Imm(64)),Int(1,64)),Int(0,64))), Def(Tid(550, "%00000226"), - Attrs([Attr("address","0x660"), Attr("insn","cmp x1, x0")]), - Var("NF",Imm(1)), Extract(63,63,PLUS(Var("#2",Imm(64)),Int(1,64))))]), -Jmps([Goto(Tid(556, "%0000022c"), Attrs([Attr("address","0x664"), -Attr("insn","b.eq #0x18")]), EQ(Var("ZF",Imm(1)),Int(1,1)), -Direct(Tid(554, "%0000022a"))), Goto(Tid(1_462, "%000005b6"), Attrs([]), - Int(1,1), Direct(Tid(858, "%0000035a")))])), Blk(Tid(858, "%0000035a"), - Attrs([Attr("address","0x668")]), Phis([]), Defs([Def(Tid(861, "%0000035d"), - Attrs([Attr("address","0x668"), Attr("insn","adrp x1, #65536")]), - Var("R1",Imm(64)), Int(65536,64)), Def(Tid(868, "%00000364"), - Attrs([Attr("address","0x66C"), Attr("insn","ldr x1, [x1, #0xfc0]")]), - Var("R1",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R1",Imm(64)),Int(4032,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(873, "%00000369"), Attrs([Attr("address","0x670"), -Attr("insn","cbz x1, #0xc")]), EQ(Var("R1",Imm(64)),Int(0,64)), -Direct(Tid(554, "%0000022a"))), Goto(Tid(1_463, "%000005b7"), Attrs([]), - Int(1,1), Direct(Tid(877, "%0000036d")))])), Blk(Tid(554, "%0000022a"), - Attrs([Attr("address","0x67C")]), Phis([]), Defs([]), -Jmps([Call(Tid(562, "%00000232"), Attrs([Attr("address","0x67C"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))])), -Blk(Tid(877, "%0000036d"), Attrs([Attr("address","0x674")]), Phis([]), -Defs([Def(Tid(881, "%00000371"), Attrs([Attr("address","0x674"), -Attr("insn","mov x16, x1")]), Var("R16",Imm(64)), Var("R1",Imm(64)))]), -Jmps([Call(Tid(886, "%00000376"), Attrs([Attr("address","0x678"), -Attr("insn","br x16")]), Int(1,1), (Indirect(Var("R16",Imm(64))),))]))])), -Sub(Tid(1_431, "@frame_dummy"), Attrs([Attr("c.proto","signed (*)(void)"), -Attr("address","0x710")]), "frame_dummy", Args([Arg(Tid(1_479, "%000005c7"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("frame_dummy_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(714, "@frame_dummy"), - Attrs([Attr("address","0x710")]), Phis([]), Defs([]), -Jmps([Call(Tid(716, "%000002cc"), Attrs([Attr("address","0x710"), -Attr("insn","b #-0x90")]), Int(1,1), -(Direct(Tid(1_433, "@register_tm_clones")),))]))])), Sub(Tid(1_432, "@main"), - Attrs([Attr("c.proto","signed (*)(signed argc, const char** argv)"), -Attr("address","0x71C")]), "main", Args([Arg(Tid(1_480, "%000005c8"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("main_argc",Imm(32)), -LOW(32,Var("R0",Imm(64))), In()), Arg(Tid(1_481, "%000005c9"), - Attrs([Attr("c.layout","**[char : 8]"), Attr("c.data","Top:u8 ptr ptr"), -Attr("c.type"," const char**")]), Var("main_argv",Imm(64)), -Var("R1",Imm(64)), Both()), Arg(Tid(1_482, "%000005ca"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("main_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(728, "@main"), - Attrs([Attr("address","0x71C")]), Phis([]), Defs([Def(Tid(732, "%000002dc"), - Attrs([Attr("address","0x71C"), Attr("insn","mov w8, w0")]), - Var("R8",Imm(64)), UNSIGNED(64,Extract(31,0,Var("R0",Imm(64))))), -Def(Tid(737, "%000002e1"), Attrs([Attr("address","0x720"), -Attr("insn","mov w0, wzr")]), Var("R0",Imm(64)), Int(0,64)), -Def(Tid(742, "%000002e6"), Attrs([Attr("address","0x724"), -Attr("insn","adrp x9, #69632")]), Var("R9",Imm(64)), Int(69632,64)), -Def(Tid(747, "%000002eb"), Attrs([Attr("address","0x728"), -Attr("insn","adrp x10, #69632")]), Var("R10",Imm(64)), Int(69632,64)), -Def(Tid(754, "%000002f2"), Attrs([Attr("address","0x72C"), -Attr("insn","str wzr, [x9, #0x34]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R9",Imm(64)),Int(52,64)),Int(0,32),LittleEndian(),32)), -Def(Tid(762, "%000002fa"), Attrs([Attr("address","0x730"), -Attr("insn","str w8, [x10, #0x38]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R10",Imm(64)),Int(56,64)),Extract(31,0,Var("R8",Imm(64))),LittleEndian(),32))]), -Jmps([Call(Tid(767, "%000002ff"), Attrs([Attr("address","0x734"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))]))])), -Sub(Tid(1_433, "@register_tm_clones"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x680")]), - "register_tm_clones", Args([Arg(Tid(1_483, "%000005cb"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("register_tm_clones_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(564, "@register_tm_clones"), Attrs([Attr("address","0x680")]), - Phis([]), Defs([Def(Tid(567, "%00000237"), Attrs([Attr("address","0x680"), -Attr("insn","adrp x0, #69632")]), Var("R0",Imm(64)), Int(69632,64)), -Def(Tid(573, "%0000023d"), Attrs([Attr("address","0x684"), -Attr("insn","add x0, x0, #0x30")]), Var("R0",Imm(64)), -PLUS(Var("R0",Imm(64)),Int(48,64))), Def(Tid(578, "%00000242"), - Attrs([Attr("address","0x688"), Attr("insn","adrp x1, #69632")]), - Var("R1",Imm(64)), Int(69632,64)), Def(Tid(584, "%00000248"), - Attrs([Attr("address","0x68C"), Attr("insn","add x1, x1, #0x30")]), - Var("R1",Imm(64)), PLUS(Var("R1",Imm(64)),Int(48,64))), -Def(Tid(591, "%0000024f"), Attrs([Attr("address","0x690"), -Attr("insn","sub x1, x1, x0")]), Var("R1",Imm(64)), -PLUS(PLUS(Var("R1",Imm(64)),NOT(Var("R0",Imm(64)))),Int(1,64))), -Def(Tid(597, "%00000255"), Attrs([Attr("address","0x694"), -Attr("insn","lsr x2, x1, #63")]), Var("R2",Imm(64)), -Concat(Int(0,63),Extract(63,63,Var("R1",Imm(64))))), -Def(Tid(604, "%0000025c"), Attrs([Attr("address","0x698"), -Attr("insn","add x1, x2, x1, asr #3")]), Var("R1",Imm(64)), -PLUS(Var("R2",Imm(64)),ARSHIFT(Var("R1",Imm(64)),Int(3,3)))), -Def(Tid(610, "%00000262"), Attrs([Attr("address","0x69C"), -Attr("insn","asr x1, x1, #1")]), Var("R1",Imm(64)), -SIGNED(64,Extract(63,1,Var("R1",Imm(64)))))]), -Jmps([Goto(Tid(616, "%00000268"), Attrs([Attr("address","0x6A0"), -Attr("insn","cbz x1, #0x18")]), EQ(Var("R1",Imm(64)),Int(0,64)), -Direct(Tid(614, "%00000266"))), Goto(Tid(1_464, "%000005b8"), Attrs([]), - Int(1,1), Direct(Tid(828, "%0000033c")))])), Blk(Tid(828, "%0000033c"), - Attrs([Attr("address","0x6A4")]), Phis([]), Defs([Def(Tid(831, "%0000033f"), - Attrs([Attr("address","0x6A4"), Attr("insn","adrp x2, #65536")]), - Var("R2",Imm(64)), Int(65536,64)), Def(Tid(838, "%00000346"), - Attrs([Attr("address","0x6A8"), Attr("insn","ldr x2, [x2, #0xfe0]")]), - Var("R2",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R2",Imm(64)),Int(4064,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(843, "%0000034b"), Attrs([Attr("address","0x6AC"), -Attr("insn","cbz x2, #0xc")]), EQ(Var("R2",Imm(64)),Int(0,64)), -Direct(Tid(614, "%00000266"))), Goto(Tid(1_465, "%000005b9"), Attrs([]), - Int(1,1), Direct(Tid(847, "%0000034f")))])), Blk(Tid(614, "%00000266"), - Attrs([Attr("address","0x6B8")]), Phis([]), Defs([]), -Jmps([Call(Tid(622, "%0000026e"), Attrs([Attr("address","0x6B8"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))])), -Blk(Tid(847, "%0000034f"), Attrs([Attr("address","0x6B0")]), Phis([]), -Defs([Def(Tid(851, "%00000353"), Attrs([Attr("address","0x6B0"), -Attr("insn","mov x16, x2")]), Var("R16",Imm(64)), Var("R2",Imm(64)))]), -Jmps([Call(Tid(856, "%00000358"), Attrs([Attr("address","0x6B4"), -Attr("insn","br x16")]), Int(1,1), (Indirect(Var("R16",Imm(64))),))]))])), -Sub(Tid(1_436, "@zero"), Attrs([Attr("c.proto","signed (*)(void)"), -Attr("address","0x714")]), "zero", Args([Arg(Tid(1_484, "%000005cc"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("zero_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(718, "@zero"), - Attrs([Attr("address","0x714")]), Phis([]), Defs([Def(Tid(721, "%000002d1"), - Attrs([Attr("address","0x714"), Attr("insn","mov w0, wzr")]), - Var("R0",Imm(64)), Int(0,64))]), Jmps([Call(Tid(726, "%000002d6"), - Attrs([Attr("address","0x718"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))]))]))) \ No newline at end of file diff --git a/src/test/correct/basic_function_call_caller/clang_O2/basic_function_call_caller.bir b/src/test/correct/basic_function_call_caller/clang_O2/basic_function_call_caller.bir deleted file mode 100644 index 976dce59c..000000000 --- a/src/test/correct/basic_function_call_caller/clang_O2/basic_function_call_caller.bir +++ /dev/null @@ -1,236 +0,0 @@ -000005ba: program -00000586: sub __cxa_finalize(__cxa_finalize_result) -000005bb: __cxa_finalize_result :: out u32 = low:32[R0] - -00000338: -00000430: R16 := 0x11000 -00000437: R17 := mem[R16 + 8, el]:u64 -0000043d: R16 := R16 + 8 -00000442: call R17 with noreturn - -00000587: sub __do_global_dtors_aux(__do_global_dtors_aux_result) -000005bc: __do_global_dtors_aux_result :: out u32 = low:32[R0] - -00000272: -00000276: #3 := R31 - 0x20 -0000027c: mem := mem with [#3, el]:u64 <- R29 -00000282: mem := mem with [#3 + 8, el]:u64 <- R30 -00000286: R31 := #3 -0000028c: R29 := R31 -00000294: mem := mem with [R31 + 0x10, el]:u64 <- R19 -00000299: R19 := 0x11000 -000002a0: R0 := pad:64[mem[R19 + 0x30]] -000002a7: when 31:0[R0] <> 0 goto %000002a5 -000005b0: goto %00000301 - -00000301: -00000304: R0 := 0x10000 -0000030b: R0 := mem[R0 + 0xFC8, el]:u64 -00000311: when R0 = 0 goto %0000030f -000005b1: goto %00000328 - -00000328: -0000032b: R0 := 0x11000 -00000332: R0 := mem[R0 + 0x28, el]:u64 -00000337: R30 := 0x6F0 -0000033a: call @__cxa_finalize with return %0000030f - -0000030f: -00000317: R30 := 0x6F4 -00000319: call @deregister_tm_clones with return %0000031b - -0000031b: -0000031e: R0 := 1 -00000326: mem := mem with [R19 + 0x30] <- 7:0[R0] -000005b2: goto %000002a5 - -000002a5: -000002af: R19 := mem[R31 + 0x10, el]:u64 -000002b6: R29 := mem[R31, el]:u64 -000002bb: R30 := mem[R31 + 8, el]:u64 -000002bf: R31 := R31 + 0x20 -000002c4: call R30 with noreturn - -0000058b: sub __libc_start_main(__libc_start_main_main, __libc_start_main_arg2, __libc_start_main_arg3, __libc_start_main_auxv, __libc_start_main_result) -000005bd: __libc_start_main_main :: in u64 = R0 -000005be: __libc_start_main_arg2 :: in u32 = low:32[R1] -000005bf: __libc_start_main_arg3 :: in out u64 = R2 -000005c0: __libc_start_main_auxv :: in out u64 = R3 -000005c1: __libc_start_main_result :: out u32 = low:32[R0] - -000001cb: -0000041a: R16 := 0x11000 -00000421: R17 := mem[R16, el]:u64 -00000427: R16 := R16 -0000042c: call R17 with noreturn - -0000058c: sub _fini(_fini_result) -000005c2: _fini_result :: out u32 = low:32[R0] - -0000001f: -00000025: #0 := R31 - 0x10 -0000002b: mem := mem with [#0, el]:u64 <- R29 -00000031: mem := mem with [#0 + 8, el]:u64 <- R30 -00000035: R31 := #0 -0000003b: R29 := R31 -00000042: R29 := mem[R31, el]:u64 -00000047: R30 := mem[R31 + 8, el]:u64 -0000004b: R31 := R31 + 0x10 -00000050: call R30 with noreturn - -0000058d: sub _init(_init_result) -000005c3: _init_result :: out u32 = low:32[R0] - -000004df: -000004e5: #5 := R31 - 0x10 -000004eb: mem := mem with [#5, el]:u64 <- R29 -000004f1: mem := mem with [#5 + 8, el]:u64 <- R30 -000004f5: R31 := #5 -000004fb: R29 := R31 -00000500: R30 := 0x590 -00000502: call @call_weak_fn with return %00000504 - -00000504: -00000509: R29 := mem[R31, el]:u64 -0000050e: R30 := mem[R31 + 8, el]:u64 -00000512: R31 := R31 + 0x10 -00000517: call R30 with noreturn - -0000058e: sub _start(_start_result) -000005c4: _start_result :: out u32 = low:32[R0] - -0000018c: -00000191: R29 := 0 -00000196: R30 := 0 -0000019c: R5 := R0 -000001a3: R1 := mem[R31, el]:u64 -000001a9: R2 := R31 + 8 -000001af: R6 := R31 -000001b4: R0 := 0x10000 -000001bb: R0 := mem[R0 + 0xFD8, el]:u64 -000001c0: R3 := 0 -000001c5: R4 := 0 -000001ca: R30 := 0x630 -000001cd: call @__libc_start_main with return %000001cf - -000001cf: -000001d2: R30 := 0x634 -000001d5: call @abort with return %000005b3 - -000005b3: -000005b4: call @call_weak_fn with noreturn - -00000591: sub abort() - - -000001d3: -0000045c: R16 := 0x11000 -00000463: R17 := mem[R16 + 0x18, el]:u64 -00000469: R16 := R16 + 0x18 -0000046e: call R17 with noreturn - -00000592: sub call_weak_fn(call_weak_fn_result) -000005c5: call_weak_fn_result :: out u32 = low:32[R0] - -000001d7: -000001da: R0 := 0x10000 -000001e1: R0 := mem[R0 + 0xFD0, el]:u64 -000001e7: when R0 = 0 goto %000001e5 -000005b5: goto %00000378 - -000001e5: -000001ed: call R30 with noreturn - -00000378: -0000037b: goto @__gmon_start__ - -00000379: -00000446: R16 := 0x11000 -0000044d: R17 := mem[R16 + 0x10, el]:u64 -00000453: R16 := R16 + 0x10 -00000458: call R17 with noreturn - -00000594: sub deregister_tm_clones(deregister_tm_clones_result) -000005c6: deregister_tm_clones_result :: out u32 = low:32[R0] - -000001f3: -000001f6: R0 := 0x11000 -000001fc: R0 := R0 + 0x30 -00000201: R1 := 0x11000 -00000207: R1 := R1 + 0x30 -0000020d: #1 := ~R0 -00000212: #2 := R1 + ~R0 -00000218: VF := extend:65[#2 + 1] <> extend:65[R1] + extend:65[#1] + 1 -0000021e: CF := pad:65[#2 + 1] <> pad:65[R1] + pad:65[#1] + 1 -00000222: ZF := #2 + 1 = 0 -00000226: NF := 63:63[#2 + 1] -0000022c: when ZF goto %0000022a -000005b6: goto %0000035a - -0000035a: -0000035d: R1 := 0x10000 -00000364: R1 := mem[R1 + 0xFC0, el]:u64 -00000369: when R1 = 0 goto %0000022a -000005b7: goto %0000036d - -0000022a: -00000232: call R30 with noreturn - -0000036d: -00000371: R16 := R1 -00000376: call R16 with noreturn - -00000597: sub frame_dummy(frame_dummy_result) -000005c7: frame_dummy_result :: out u32 = low:32[R0] - -000002ca: -000002cc: call @register_tm_clones with noreturn - -00000598: sub main(main_argc, main_argv, main_result) -000005c8: main_argc :: in u32 = low:32[R0] -000005c9: main_argv :: in out u64 = R1 -000005ca: main_result :: out u32 = low:32[R0] - -000002d8: -000002dc: R8 := pad:64[31:0[R0]] -000002e1: R0 := 0 -000002e6: R9 := 0x11000 -000002eb: R10 := 0x11000 -000002f2: mem := mem with [R9 + 0x34, el]:u32 <- 0 -000002fa: mem := mem with [R10 + 0x38, el]:u32 <- 31:0[R8] -000002ff: call R30 with noreturn - -00000599: sub register_tm_clones(register_tm_clones_result) -000005cb: register_tm_clones_result :: out u32 = low:32[R0] - -00000234: -00000237: R0 := 0x11000 -0000023d: R0 := R0 + 0x30 -00000242: R1 := 0x11000 -00000248: R1 := R1 + 0x30 -0000024f: R1 := R1 + ~R0 + 1 -00000255: R2 := 0.63:63[R1] -0000025c: R1 := R2 + (R1 ~>> 3) -00000262: R1 := extend:64[63:1[R1]] -00000268: when R1 = 0 goto %00000266 -000005b8: goto %0000033c - -0000033c: -0000033f: R2 := 0x10000 -00000346: R2 := mem[R2 + 0xFE0, el]:u64 -0000034b: when R2 = 0 goto %00000266 -000005b9: goto %0000034f - -00000266: -0000026e: call R30 with noreturn - -0000034f: -00000353: R16 := R2 -00000358: call R16 with noreturn - -0000059c: sub zero(zero_result) -000005cc: zero_result :: out u32 = low:32[R0] - -000002ce: -000002d1: R0 := 0 -000002d6: call R30 with noreturn diff --git a/src/test/correct/basic_function_call_caller/clang_O2/basic_function_call_caller.expected b/src/test/correct/basic_function_call_caller/clang_O2/basic_function_call_caller.expected index 7d6b48a0d..f080e06d5 100644 --- a/src/test/correct/basic_function_call_caller/clang_O2/basic_function_call_caller.expected +++ b/src/test/correct/basic_function_call_caller/clang_O2/basic_function_call_caller.expected @@ -9,9 +9,9 @@ var {:extern} R8: bv64; var {:extern} R9: bv64; var {:extern} mem: [bv64]bv8; const {:extern} $x_addr: bv64; -axiom ($x_addr == 69684bv64); +axiom ($x_addr == 131092bv64); const {:extern} $y_addr: bv64; -axiom ($y_addr == 69688bv64); +axiom ($y_addr == 131096bv64); function {:extern} L(mem$in: [bv64]bv8, index: bv64) returns (bool) { (if (index == $y_addr) then (memory_load32_le(mem$in, $x_addr) == 1bv32) else (if (index == $x_addr) then true else false)) } @@ -21,6 +21,10 @@ function {:extern} gamma_load32(gammaMap: [bv64]bool, index: bv64) returns (bool (gammaMap[bvadd64(index, 3bv64)] && (gammaMap[bvadd64(index, 2bv64)] && (gammaMap[bvadd64(index, 1bv64)] && gammaMap[index]))) } +function {:extern} gamma_load64(gammaMap: [bv64]bool, index: bv64) returns (bool) { + (gammaMap[bvadd64(index, 7bv64)] && (gammaMap[bvadd64(index, 6bv64)] && (gammaMap[bvadd64(index, 5bv64)] && (gammaMap[bvadd64(index, 4bv64)] && (gammaMap[bvadd64(index, 3bv64)] && (gammaMap[bvadd64(index, 2bv64)] && (gammaMap[bvadd64(index, 1bv64)] && gammaMap[index]))))))) +} + function {:extern} gamma_store32(gammaMap: [bv64]bool, index: bv64, value: bool) returns ([bv64]bool) { gammaMap[index := value][bvadd64(index, 1bv64) := value][bvadd64(index, 2bv64) := value][bvadd64(index, 3bv64) := value] } @@ -43,11 +47,13 @@ procedure {:extern} rely(); ensures (forall i: bv64 :: (((mem[i] == old(mem[i])) ==> (Gamma_mem[i] == old(Gamma_mem[i]))))); ensures (memory_load32_le(mem, $x_addr) == old(memory_load32_le(mem, $x_addr))); ensures (memory_load32_le(mem, $y_addr) == old(memory_load32_le(mem, $y_addr))); - free ensures (memory_load32_le(mem, 1868bv64) == 131073bv32); - free ensures (memory_load64_le(mem, 69064bv64) == 1808bv64); - free ensures (memory_load64_le(mem, 69072bv64) == 1728bv64); - free ensures (memory_load64_le(mem, 69592bv64) == 1820bv64); - free ensures (memory_load64_le(mem, 69672bv64) == 69672bv64); + free ensures (memory_load32_le(mem, 2324bv64) == 131073bv32); + free ensures (memory_load64_le(mem, 130424bv64) == 2256bv64); + free ensures (memory_load64_le(mem, 130432bv64) == 2176bv64); + free ensures (memory_load64_le(mem, 131032bv64) == 131092bv64); + free ensures (memory_load64_le(mem, 131048bv64) == 131096bv64); + free ensures (memory_load64_le(mem, 131056bv64) == 2268bv64); + free ensures (memory_load64_le(mem, 131080bv64) == 131080bv64); procedure {:extern} rely_transitive(); modifies Gamma_mem, mem; @@ -77,53 +83,67 @@ implementation {:extern} guarantee_reflexive() assert (gamma_load32(Gamma_mem, $y_addr) ==> ((memory_load32_le(mem, $x_addr) == 0bv32) || gamma_load32(Gamma_mem, $y_addr))); } -procedure main_1820(); +procedure main(); modifies Gamma_R0, Gamma_R10, Gamma_R8, Gamma_R9, Gamma_mem, R0, R10, R8, R9, mem; requires (Gamma_R0 == false); - free requires (memory_load64_le(mem, 69664bv64) == 0bv64); - free requires (memory_load64_le(mem, 69672bv64) == 69672bv64); - free requires (memory_load32_le(mem, 1868bv64) == 131073bv32); - free requires (memory_load64_le(mem, 69064bv64) == 1808bv64); - free requires (memory_load64_le(mem, 69072bv64) == 1728bv64); - free requires (memory_load64_le(mem, 69592bv64) == 1820bv64); - free requires (memory_load64_le(mem, 69672bv64) == 69672bv64); - free ensures (memory_load32_le(mem, 1868bv64) == 131073bv32); - free ensures (memory_load64_le(mem, 69064bv64) == 1808bv64); - free ensures (memory_load64_le(mem, 69072bv64) == 1728bv64); - free ensures (memory_load64_le(mem, 69592bv64) == 1820bv64); - free ensures (memory_load64_le(mem, 69672bv64) == 69672bv64); - -implementation main_1820() + free requires (memory_load64_le(mem, 131072bv64) == 0bv64); + free requires (memory_load64_le(mem, 131080bv64) == 131080bv64); + free requires (memory_load32_le(mem, 2324bv64) == 131073bv32); + free requires (memory_load64_le(mem, 130424bv64) == 2256bv64); + free requires (memory_load64_le(mem, 130432bv64) == 2176bv64); + free requires (memory_load64_le(mem, 131032bv64) == 131092bv64); + free requires (memory_load64_le(mem, 131048bv64) == 131096bv64); + free requires (memory_load64_le(mem, 131056bv64) == 2268bv64); + free requires (memory_load64_le(mem, 131080bv64) == 131080bv64); + free ensures (memory_load32_le(mem, 2324bv64) == 131073bv32); + free ensures (memory_load64_le(mem, 130424bv64) == 2256bv64); + free ensures (memory_load64_le(mem, 130432bv64) == 2176bv64); + free ensures (memory_load64_le(mem, 131032bv64) == 131092bv64); + free ensures (memory_load64_le(mem, 131048bv64) == 131096bv64); + free ensures (memory_load64_le(mem, 131056bv64) == 2268bv64); + free ensures (memory_load64_le(mem, 131080bv64) == 131080bv64); + +implementation main() { + var $load$18: bv64; + var $load$19: bv64; + var Gamma_$load$18: bool; + var Gamma_$load$19: bool; var Gamma_y_old: bool; var x_old: bv32; lmain: assume {:captureState "lmain"} true; + R9, Gamma_R9 := 126976bv64, true; + R10, Gamma_R10 := 126976bv64, true; R8, Gamma_R8 := zero_extend32_32(R0[32:0]), Gamma_R0; + call rely(); + $load$18, Gamma_$load$18 := memory_load64_le(mem, bvadd64(R9, 4056bv64)), (gamma_load64(Gamma_mem, bvadd64(R9, 4056bv64)) || L(mem, bvadd64(R9, 4056bv64))); + R9, Gamma_R9 := $load$18, Gamma_$load$18; + call rely(); + $load$19, Gamma_$load$19 := memory_load64_le(mem, bvadd64(R10, 4072bv64)), (gamma_load64(Gamma_mem, bvadd64(R10, 4072bv64)) || L(mem, bvadd64(R10, 4072bv64))); + R10, Gamma_R10 := $load$19, Gamma_$load$19; R0, Gamma_R0 := 0bv64, true; - R9, Gamma_R9 := 69632bv64, true; - R10, Gamma_R10 := 69632bv64, true; call rely(); + assert (L(mem, R9) ==> true); x_old := memory_load32_le(mem, $x_addr); Gamma_y_old := (gamma_load32(Gamma_mem, $y_addr) || L(mem, $y_addr)); - assert (L(mem, bvadd64(R9, 52bv64)) ==> true); - mem, Gamma_mem := memory_store32_le(mem, bvadd64(R9, 52bv64), 0bv32), gamma_store32(Gamma_mem, bvadd64(R9, 52bv64), true); - assert ((bvadd64(R9, 52bv64) == $x_addr) ==> (L(mem, $y_addr) ==> Gamma_y_old)); + mem, Gamma_mem := memory_store32_le(mem, R9, 0bv32), gamma_store32(Gamma_mem, R9, true); + assert ((R9 == $x_addr) ==> (L(mem, $y_addr) ==> Gamma_y_old)); assert ((x_old == 0bv32) ==> (memory_load32_le(mem, $x_addr) == 0bv32)); assert (Gamma_y_old ==> ((memory_load32_le(mem, $x_addr) == 0bv32) || gamma_load32(Gamma_mem, $y_addr))); - assume {:captureState "%000002f2"} true; + assume {:captureState "%00000294"} true; call rely(); + assert (L(mem, R10) ==> Gamma_R8); x_old := memory_load32_le(mem, $x_addr); Gamma_y_old := (gamma_load32(Gamma_mem, $y_addr) || L(mem, $y_addr)); - assert (L(mem, bvadd64(R10, 56bv64)) ==> Gamma_R8); - mem, Gamma_mem := memory_store32_le(mem, bvadd64(R10, 56bv64), R8[32:0]), gamma_store32(Gamma_mem, bvadd64(R10, 56bv64), Gamma_R8); - assert ((bvadd64(R10, 56bv64) == $x_addr) ==> (L(mem, $y_addr) ==> Gamma_y_old)); + mem, Gamma_mem := memory_store32_le(mem, R10, R8[32:0]), gamma_store32(Gamma_mem, R10, Gamma_R8); + assert ((R10 == $x_addr) ==> (L(mem, $y_addr) ==> Gamma_y_old)); assert ((x_old == 0bv32) ==> (memory_load32_le(mem, $x_addr) == 0bv32)); assert (Gamma_y_old ==> ((memory_load32_le(mem, $x_addr) == 0bv32) || gamma_load32(Gamma_mem, $y_addr))); - assume {:captureState "%000002fa"} true; - goto main_1820_basil_return; - main_1820_basil_return: - assume {:captureState "main_1820_basil_return"} true; + assume {:captureState "%00000298"} true; + goto main_basil_return; + main_basil_return: + assume {:captureState "main_basil_return"} true; return; } diff --git a/src/test/correct/basic_function_call_caller/clang_O2/basic_function_call_caller.gts b/src/test/correct/basic_function_call_caller/clang_O2/basic_function_call_caller.gts deleted file mode 100644 index d73b9e055..000000000 Binary files a/src/test/correct/basic_function_call_caller/clang_O2/basic_function_call_caller.gts and /dev/null differ diff --git a/src/test/correct/basic_function_call_caller/clang_O2/basic_function_call_caller.md5sum b/src/test/correct/basic_function_call_caller/clang_O2/basic_function_call_caller.md5sum new file mode 100644 index 000000000..68ea4a923 --- /dev/null +++ b/src/test/correct/basic_function_call_caller/clang_O2/basic_function_call_caller.md5sum @@ -0,0 +1,5 @@ +52cb3080163cb2059a838e67c28e7971 correct/basic_function_call_caller/clang_O2/a.out +c4b34592f87c4d35239afb348061883b correct/basic_function_call_caller/clang_O2/basic_function_call_caller.adt +aec794db8655d25a671593f77d4ab066 correct/basic_function_call_caller/clang_O2/basic_function_call_caller.bir +1a1118206a35a0fa716f72610cf7bb3f correct/basic_function_call_caller/clang_O2/basic_function_call_caller.relf +1070b97a9c97de70576ce2cec8267b66 correct/basic_function_call_caller/clang_O2/basic_function_call_caller.gts diff --git a/src/test/correct/basic_function_call_caller/clang_O2/basic_function_call_caller.relf b/src/test/correct/basic_function_call_caller/clang_O2/basic_function_call_caller.relf deleted file mode 100644 index 52d4c3017..000000000 --- a/src/test/correct/basic_function_call_caller/clang_O2/basic_function_call_caller.relf +++ /dev/null @@ -1,125 +0,0 @@ - -Relocation section '.rela.dyn' at offset 0x460 contains 8 entries: - Offset Info Type Symbol's Value Symbol's Name + Addend -0000000000010dc8 0000000000000403 R_AARCH64_RELATIVE 710 -0000000000010dd0 0000000000000403 R_AARCH64_RELATIVE 6c0 -0000000000010fd8 0000000000000403 R_AARCH64_RELATIVE 71c -0000000000011028 0000000000000403 R_AARCH64_RELATIVE 11028 -0000000000010fc0 0000000400000401 R_AARCH64_GLOB_DAT 0000000000000000 _ITM_deregisterTMCloneTable + 0 -0000000000010fc8 0000000500000401 R_AARCH64_GLOB_DAT 0000000000000000 __cxa_finalize@GLIBC_2.17 + 0 -0000000000010fd0 0000000600000401 R_AARCH64_GLOB_DAT 0000000000000000 __gmon_start__ + 0 -0000000000010fe0 0000000800000401 R_AARCH64_GLOB_DAT 0000000000000000 _ITM_registerTMCloneTable + 0 - -Relocation section '.rela.plt' at offset 0x520 contains 4 entries: - Offset Info Type Symbol's Value Symbol's Name + Addend -0000000000011000 0000000300000402 R_AARCH64_JUMP_SLOT 0000000000000000 __libc_start_main@GLIBC_2.34 + 0 -0000000000011008 0000000500000402 R_AARCH64_JUMP_SLOT 0000000000000000 __cxa_finalize@GLIBC_2.17 + 0 -0000000000011010 0000000600000402 R_AARCH64_JUMP_SLOT 0000000000000000 __gmon_start__ + 0 -0000000000011018 0000000700000402 R_AARCH64_JUMP_SLOT 0000000000000000 abort@GLIBC_2.17 + 0 - -Symbol table '.dynsym' contains 9 entries: - Num: Value Size Type Bind Vis Ndx Name - 0: 0000000000000000 0 NOTYPE LOCAL DEFAULT UND - 1: 0000000000000580 0 SECTION LOCAL DEFAULT 11 .init - 2: 0000000000011020 0 SECTION LOCAL DEFAULT 23 .data - 3: 0000000000000000 0 FUNC GLOBAL DEFAULT UND __libc_start_main@GLIBC_2.34 (2) - 4: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_deregisterTMCloneTable - 5: 0000000000000000 0 FUNC WEAK DEFAULT UND __cxa_finalize@GLIBC_2.17 (3) - 6: 0000000000000000 0 NOTYPE WEAK DEFAULT UND __gmon_start__ - 7: 0000000000000000 0 FUNC GLOBAL DEFAULT UND abort@GLIBC_2.17 (3) - 8: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_registerTMCloneTable - -Symbol table '.symtab' contains 92 entries: - Num: Value Size Type Bind Vis Ndx Name - 0: 0000000000000000 0 NOTYPE LOCAL DEFAULT UND - 1: 0000000000000238 0 SECTION LOCAL DEFAULT 1 .interp - 2: 0000000000000254 0 SECTION LOCAL DEFAULT 2 .note.gnu.build-id - 3: 0000000000000278 0 SECTION LOCAL DEFAULT 3 .note.ABI-tag - 4: 0000000000000298 0 SECTION LOCAL DEFAULT 4 .gnu.hash - 5: 00000000000002b8 0 SECTION LOCAL DEFAULT 5 .dynsym - 6: 0000000000000390 0 SECTION LOCAL DEFAULT 6 .dynstr - 7: 000000000000041e 0 SECTION LOCAL DEFAULT 7 .gnu.version - 8: 0000000000000430 0 SECTION LOCAL DEFAULT 8 .gnu.version_r - 9: 0000000000000460 0 SECTION LOCAL DEFAULT 9 .rela.dyn - 10: 0000000000000520 0 SECTION LOCAL DEFAULT 10 .rela.plt - 11: 0000000000000580 0 SECTION LOCAL DEFAULT 11 .init - 12: 00000000000005a0 0 SECTION LOCAL DEFAULT 12 .plt - 13: 0000000000000600 0 SECTION LOCAL DEFAULT 13 .text - 14: 0000000000000738 0 SECTION LOCAL DEFAULT 14 .fini - 15: 000000000000074c 0 SECTION LOCAL DEFAULT 15 .rodata - 16: 0000000000000750 0 SECTION LOCAL DEFAULT 16 .eh_frame_hdr - 17: 0000000000000798 0 SECTION LOCAL DEFAULT 17 .eh_frame - 18: 0000000000010dc8 0 SECTION LOCAL DEFAULT 18 .init_array - 19: 0000000000010dd0 0 SECTION LOCAL DEFAULT 19 .fini_array - 20: 0000000000010dd8 0 SECTION LOCAL DEFAULT 20 .dynamic - 21: 0000000000010fb8 0 SECTION LOCAL DEFAULT 21 .got - 22: 0000000000010fe8 0 SECTION LOCAL DEFAULT 22 .got.plt - 23: 0000000000011020 0 SECTION LOCAL DEFAULT 23 .data - 24: 0000000000011030 0 SECTION LOCAL DEFAULT 24 .bss - 25: 0000000000000000 0 SECTION LOCAL DEFAULT 25 .comment - 26: 0000000000000000 0 FILE LOCAL DEFAULT ABS Scrt1.o - 27: 0000000000000278 0 NOTYPE LOCAL DEFAULT 3 $d - 28: 0000000000000278 32 OBJECT LOCAL DEFAULT 3 __abi_tag - 29: 0000000000000600 0 NOTYPE LOCAL DEFAULT 13 $x - 30: 00000000000007ac 0 NOTYPE LOCAL DEFAULT 17 $d - 31: 000000000000074c 0 NOTYPE LOCAL DEFAULT 15 $d - 32: 0000000000000000 0 FILE LOCAL DEFAULT ABS crti.o - 33: 0000000000000634 0 NOTYPE LOCAL DEFAULT 13 $x - 34: 0000000000000634 20 FUNC LOCAL DEFAULT 13 call_weak_fn - 35: 0000000000000580 0 NOTYPE LOCAL DEFAULT 11 $x - 36: 0000000000000738 0 NOTYPE LOCAL DEFAULT 14 $x - 37: 0000000000000000 0 FILE LOCAL DEFAULT ABS crtn.o - 38: 0000000000000590 0 NOTYPE LOCAL DEFAULT 11 $x - 39: 0000000000000744 0 NOTYPE LOCAL DEFAULT 14 $x - 40: 0000000000000000 0 FILE LOCAL DEFAULT ABS crtstuff.c - 41: 0000000000000650 0 NOTYPE LOCAL DEFAULT 13 $x - 42: 0000000000000650 0 FUNC LOCAL DEFAULT 13 deregister_tm_clones - 43: 0000000000000680 0 FUNC LOCAL DEFAULT 13 register_tm_clones - 44: 0000000000011028 0 NOTYPE LOCAL DEFAULT 23 $d - 45: 00000000000006c0 0 FUNC LOCAL DEFAULT 13 __do_global_dtors_aux - 46: 0000000000011030 1 OBJECT LOCAL DEFAULT 24 completed.0 - 47: 0000000000010dd0 0 NOTYPE LOCAL DEFAULT 19 $d - 48: 0000000000010dd0 0 OBJECT LOCAL DEFAULT 19 __do_global_dtors_aux_fini_array_entry - 49: 0000000000000710 0 FUNC LOCAL DEFAULT 13 frame_dummy - 50: 0000000000010dc8 0 NOTYPE LOCAL DEFAULT 18 $d - 51: 0000000000010dc8 0 OBJECT LOCAL DEFAULT 18 __frame_dummy_init_array_entry - 52: 00000000000007c0 0 NOTYPE LOCAL DEFAULT 17 $d - 53: 0000000000011030 0 NOTYPE LOCAL DEFAULT 24 $d - 54: 0000000000000000 0 FILE LOCAL DEFAULT ABS basic_function_call_caller.c - 55: 0000000000000714 0 NOTYPE LOCAL DEFAULT 13 $x.0 - 56: 0000000000011034 0 NOTYPE LOCAL DEFAULT 24 $d.1 - 57: 000000000000002a 0 NOTYPE LOCAL DEFAULT 25 $d.2 - 58: 0000000000000820 0 NOTYPE LOCAL DEFAULT 17 $d.3 - 59: 0000000000000000 0 FILE LOCAL DEFAULT ABS crtstuff.c - 60: 000000000000085c 0 NOTYPE LOCAL DEFAULT 17 $d - 61: 000000000000085c 0 OBJECT LOCAL DEFAULT 17 __FRAME_END__ - 62: 0000000000000000 0 FILE LOCAL DEFAULT ABS - 63: 0000000000010dd8 0 OBJECT LOCAL DEFAULT ABS _DYNAMIC - 64: 0000000000000750 0 NOTYPE LOCAL DEFAULT 16 __GNU_EH_FRAME_HDR - 65: 0000000000010fb8 0 OBJECT LOCAL DEFAULT ABS _GLOBAL_OFFSET_TABLE_ - 66: 00000000000005a0 0 NOTYPE LOCAL DEFAULT 12 $x - 67: 0000000000000000 0 FUNC GLOBAL DEFAULT UND __libc_start_main@GLIBC_2.34 - 68: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_deregisterTMCloneTable - 69: 0000000000011020 0 NOTYPE WEAK DEFAULT 23 data_start - 70: 0000000000011030 0 NOTYPE GLOBAL DEFAULT 24 __bss_start__ - 71: 0000000000000000 0 FUNC WEAK DEFAULT UND __cxa_finalize@GLIBC_2.17 - 72: 0000000000011040 0 NOTYPE GLOBAL DEFAULT 24 _bss_end__ - 73: 0000000000011030 0 NOTYPE GLOBAL DEFAULT 23 _edata - 74: 0000000000011034 4 OBJECT GLOBAL DEFAULT 24 x - 75: 0000000000000738 0 FUNC GLOBAL HIDDEN 14 _fini - 76: 0000000000011040 0 NOTYPE GLOBAL DEFAULT 24 __bss_end__ - 77: 0000000000011020 0 NOTYPE GLOBAL DEFAULT 23 __data_start - 78: 0000000000000000 0 NOTYPE WEAK DEFAULT UND __gmon_start__ - 79: 0000000000011028 0 OBJECT GLOBAL HIDDEN 23 __dso_handle - 80: 0000000000000000 0 FUNC GLOBAL DEFAULT UND abort@GLIBC_2.17 - 81: 000000000000074c 4 OBJECT GLOBAL DEFAULT 15 _IO_stdin_used - 82: 0000000000011040 0 NOTYPE GLOBAL DEFAULT 24 _end - 83: 0000000000000600 52 FUNC GLOBAL DEFAULT 13 _start - 84: 0000000000000714 8 FUNC GLOBAL DEFAULT 13 zero - 85: 0000000000011040 0 NOTYPE GLOBAL DEFAULT 24 __end__ - 86: 0000000000011038 4 OBJECT GLOBAL DEFAULT 24 y - 87: 0000000000011030 0 NOTYPE GLOBAL DEFAULT 24 __bss_start - 88: 000000000000071c 28 FUNC GLOBAL DEFAULT 13 main - 89: 0000000000011030 0 OBJECT GLOBAL HIDDEN 23 __TMC_END__ - 90: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_registerTMCloneTable - 91: 0000000000000580 0 FUNC GLOBAL HIDDEN 11 _init diff --git a/src/test/correct/basic_function_call_caller/clang_O2/basic_function_call_caller_gtirb.expected b/src/test/correct/basic_function_call_caller/clang_O2/basic_function_call_caller_gtirb.expected index 6fc5c30a8..9c0748cea 100644 --- a/src/test/correct/basic_function_call_caller/clang_O2/basic_function_call_caller_gtirb.expected +++ b/src/test/correct/basic_function_call_caller/clang_O2/basic_function_call_caller_gtirb.expected @@ -9,9 +9,9 @@ var {:extern} R8: bv64; var {:extern} R9: bv64; var {:extern} mem: [bv64]bv8; const {:extern} $x_addr: bv64; -axiom ($x_addr == 69684bv64); +axiom ($x_addr == 131092bv64); const {:extern} $y_addr: bv64; -axiom ($y_addr == 69688bv64); +axiom ($y_addr == 131096bv64); function {:extern} L(mem$in: [bv64]bv8, index: bv64) returns (bool) { (if (index == $y_addr) then (memory_load32_le(mem$in, $x_addr) == 1bv32) else (if (index == $x_addr) then true else false)) } @@ -21,6 +21,10 @@ function {:extern} gamma_load32(gammaMap: [bv64]bool, index: bv64) returns (bool (gammaMap[bvadd64(index, 3bv64)] && (gammaMap[bvadd64(index, 2bv64)] && (gammaMap[bvadd64(index, 1bv64)] && gammaMap[index]))) } +function {:extern} gamma_load64(gammaMap: [bv64]bool, index: bv64) returns (bool) { + (gammaMap[bvadd64(index, 7bv64)] && (gammaMap[bvadd64(index, 6bv64)] && (gammaMap[bvadd64(index, 5bv64)] && (gammaMap[bvadd64(index, 4bv64)] && (gammaMap[bvadd64(index, 3bv64)] && (gammaMap[bvadd64(index, 2bv64)] && (gammaMap[bvadd64(index, 1bv64)] && gammaMap[index]))))))) +} + function {:extern} gamma_store32(gammaMap: [bv64]bool, index: bv64, value: bool) returns ([bv64]bool) { gammaMap[index := value][bvadd64(index, 1bv64) := value][bvadd64(index, 2bv64) := value][bvadd64(index, 3bv64) := value] } @@ -43,11 +47,13 @@ procedure {:extern} rely(); ensures (forall i: bv64 :: (((mem[i] == old(mem[i])) ==> (Gamma_mem[i] == old(Gamma_mem[i]))))); ensures (memory_load32_le(mem, $x_addr) == old(memory_load32_le(mem, $x_addr))); ensures (memory_load32_le(mem, $y_addr) == old(memory_load32_le(mem, $y_addr))); - free ensures (memory_load32_le(mem, 1868bv64) == 131073bv32); - free ensures (memory_load64_le(mem, 69064bv64) == 1808bv64); - free ensures (memory_load64_le(mem, 69072bv64) == 1728bv64); - free ensures (memory_load64_le(mem, 69592bv64) == 1820bv64); - free ensures (memory_load64_le(mem, 69672bv64) == 69672bv64); + free ensures (memory_load32_le(mem, 2324bv64) == 131073bv32); + free ensures (memory_load64_le(mem, 130424bv64) == 2256bv64); + free ensures (memory_load64_le(mem, 130432bv64) == 2176bv64); + free ensures (memory_load64_le(mem, 131032bv64) == 131092bv64); + free ensures (memory_load64_le(mem, 131048bv64) == 131096bv64); + free ensures (memory_load64_le(mem, 131056bv64) == 2268bv64); + free ensures (memory_load64_le(mem, 131080bv64) == 131080bv64); procedure {:extern} rely_transitive(); modifies Gamma_mem, mem; @@ -77,53 +83,67 @@ implementation {:extern} guarantee_reflexive() assert (gamma_load32(Gamma_mem, $y_addr) ==> ((memory_load32_le(mem, $x_addr) == 0bv32) || gamma_load32(Gamma_mem, $y_addr))); } -procedure main_1820(); +procedure main(); modifies Gamma_R0, Gamma_R10, Gamma_R8, Gamma_R9, Gamma_mem, R0, R10, R8, R9, mem; requires (Gamma_R0 == false); - free requires (memory_load64_le(mem, 69664bv64) == 0bv64); - free requires (memory_load64_le(mem, 69672bv64) == 69672bv64); - free requires (memory_load32_le(mem, 1868bv64) == 131073bv32); - free requires (memory_load64_le(mem, 69064bv64) == 1808bv64); - free requires (memory_load64_le(mem, 69072bv64) == 1728bv64); - free requires (memory_load64_le(mem, 69592bv64) == 1820bv64); - free requires (memory_load64_le(mem, 69672bv64) == 69672bv64); - free ensures (memory_load32_le(mem, 1868bv64) == 131073bv32); - free ensures (memory_load64_le(mem, 69064bv64) == 1808bv64); - free ensures (memory_load64_le(mem, 69072bv64) == 1728bv64); - free ensures (memory_load64_le(mem, 69592bv64) == 1820bv64); - free ensures (memory_load64_le(mem, 69672bv64) == 69672bv64); - -implementation main_1820() + free requires (memory_load64_le(mem, 131072bv64) == 0bv64); + free requires (memory_load64_le(mem, 131080bv64) == 131080bv64); + free requires (memory_load32_le(mem, 2324bv64) == 131073bv32); + free requires (memory_load64_le(mem, 130424bv64) == 2256bv64); + free requires (memory_load64_le(mem, 130432bv64) == 2176bv64); + free requires (memory_load64_le(mem, 131032bv64) == 131092bv64); + free requires (memory_load64_le(mem, 131048bv64) == 131096bv64); + free requires (memory_load64_le(mem, 131056bv64) == 2268bv64); + free requires (memory_load64_le(mem, 131080bv64) == 131080bv64); + free ensures (memory_load32_le(mem, 2324bv64) == 131073bv32); + free ensures (memory_load64_le(mem, 130424bv64) == 2256bv64); + free ensures (memory_load64_le(mem, 130432bv64) == 2176bv64); + free ensures (memory_load64_le(mem, 131032bv64) == 131092bv64); + free ensures (memory_load64_le(mem, 131048bv64) == 131096bv64); + free ensures (memory_load64_le(mem, 131056bv64) == 2268bv64); + free ensures (memory_load64_le(mem, 131080bv64) == 131080bv64); + +implementation main() { + var $load8: bv64; + var $load9: bv64; + var Gamma_$load8: bool; + var Gamma_$load9: bool; var Gamma_y_old: bool; var x_old: bv32; - main_1820__0__R19aP0IbQWWtedSj9WMhiQ: - assume {:captureState "main_1820__0__R19aP0IbQWWtedSj9WMhiQ"} true; + $main$__0__$TxTRm4kpQiq_Xgistx~xbQ: + assume {:captureState "$main$__0__$TxTRm4kpQiq_Xgistx~xbQ"} true; + R9, Gamma_R9 := 126976bv64, true; + R10, Gamma_R10 := 126976bv64, true; R8, Gamma_R8 := zero_extend32_32(R0[32:0]), Gamma_R0; + call rely(); + $load8, Gamma_$load8 := memory_load64_le(mem, bvadd64(R9, 4056bv64)), (gamma_load64(Gamma_mem, bvadd64(R9, 4056bv64)) || L(mem, bvadd64(R9, 4056bv64))); + R9, Gamma_R9 := $load8, Gamma_$load8; + call rely(); + $load9, Gamma_$load9 := memory_load64_le(mem, bvadd64(R10, 4072bv64)), (gamma_load64(Gamma_mem, bvadd64(R10, 4072bv64)) || L(mem, bvadd64(R10, 4072bv64))); + R10, Gamma_R10 := $load9, Gamma_$load9; R0, Gamma_R0 := 0bv64, true; - R9, Gamma_R9 := 69632bv64, true; - R10, Gamma_R10 := 69632bv64, true; call rely(); + assert (L(mem, R9) ==> true); x_old := memory_load32_le(mem, $x_addr); Gamma_y_old := (gamma_load32(Gamma_mem, $y_addr) || L(mem, $y_addr)); - assert (L(mem, bvadd64(R9, 52bv64)) ==> true); - mem, Gamma_mem := memory_store32_le(mem, bvadd64(R9, 52bv64), 0bv32), gamma_store32(Gamma_mem, bvadd64(R9, 52bv64), true); - assert ((bvadd64(R9, 52bv64) == $x_addr) ==> (L(mem, $y_addr) ==> Gamma_y_old)); + mem, Gamma_mem := memory_store32_le(mem, R9, 0bv32), gamma_store32(Gamma_mem, R9, true); + assert ((R9 == $x_addr) ==> (L(mem, $y_addr) ==> Gamma_y_old)); assert ((x_old == 0bv32) ==> (memory_load32_le(mem, $x_addr) == 0bv32)); assert (Gamma_y_old ==> ((memory_load32_le(mem, $x_addr) == 0bv32) || gamma_load32(Gamma_mem, $y_addr))); - assume {:captureState "1836_0"} true; + assume {:captureState "2292$0"} true; call rely(); + assert (L(mem, R10) ==> Gamma_R8); x_old := memory_load32_le(mem, $x_addr); Gamma_y_old := (gamma_load32(Gamma_mem, $y_addr) || L(mem, $y_addr)); - assert (L(mem, bvadd64(R10, 56bv64)) ==> Gamma_R8); - mem, Gamma_mem := memory_store32_le(mem, bvadd64(R10, 56bv64), R8[32:0]), gamma_store32(Gamma_mem, bvadd64(R10, 56bv64), Gamma_R8); - assert ((bvadd64(R10, 56bv64) == $x_addr) ==> (L(mem, $y_addr) ==> Gamma_y_old)); + mem, Gamma_mem := memory_store32_le(mem, R10, R8[32:0]), gamma_store32(Gamma_mem, R10, Gamma_R8); + assert ((R10 == $x_addr) ==> (L(mem, $y_addr) ==> Gamma_y_old)); assert ((x_old == 0bv32) ==> (memory_load32_le(mem, $x_addr) == 0bv32)); assert (Gamma_y_old ==> ((memory_load32_le(mem, $x_addr) == 0bv32) || gamma_load32(Gamma_mem, $y_addr))); - assume {:captureState "1840_0"} true; - goto main_1820_basil_return; - main_1820_basil_return: - assume {:captureState "main_1820_basil_return"} true; + assume {:captureState "2296$0"} true; + goto main_basil_return; + main_basil_return: + assume {:captureState "main_basil_return"} true; return; } diff --git a/src/test/correct/basic_function_call_caller/clang_pic/basic_function_call_caller.adt b/src/test/correct/basic_function_call_caller/clang_pic/basic_function_call_caller.adt deleted file mode 100644 index b0fc6c9fd..000000000 --- a/src/test/correct/basic_function_call_caller/clang_pic/basic_function_call_caller.adt +++ /dev/null @@ -1,553 +0,0 @@ -Project(Attrs([Attr("filename","\"clang_pic/basic_function_call_caller.out\""), -Attr("image-specification","(declare abi (name str))\n(declare arch (name str))\n(declare base-address (addr int))\n(declare bias (off int))\n(declare bits (size int))\n(declare code-region (addr int) (size int) (off int))\n(declare code-start (addr int))\n(declare entry-point (addr int))\n(declare external-reference (addr int) (name str))\n(declare format (name str))\n(declare is-executable (flag bool))\n(declare is-little-endian (flag bool))\n(declare llvm:base-address (addr int))\n(declare llvm:code-entry (name str) (off int) (size int))\n(declare llvm:coff-import-library (name str))\n(declare llvm:coff-virtual-section-header (name str) (addr int) (size int))\n(declare llvm:elf-program-header (name str) (off int) (size int))\n(declare llvm:elf-program-header-flags (name str) (ld bool) (r bool) \n (w bool) (x bool))\n(declare llvm:elf-virtual-program-header (name str) (addr int) (size int))\n(declare llvm:entry-point (addr int))\n(declare llvm:macho-symbol (name str) (value int))\n(declare llvm:name-reference (at int) (name str))\n(declare llvm:relocation (at int) (addr int))\n(declare llvm:section-entry (name str) (addr int) (size int) (off int))\n(declare llvm:section-flags (name str) (r bool) (w bool) (x bool))\n(declare llvm:segment-command (name str) (off int) (size int))\n(declare llvm:segment-command-flags (name str) (r bool) (w bool) (x bool))\n(declare llvm:symbol-entry (name str) (addr int) (size int) (off int)\n (value int))\n(declare llvm:virtual-segment-command (name str) (addr int) (size int))\n(declare mapped (addr int) (size int) (off int))\n(declare named-region (addr int) (size int) (name str))\n(declare named-symbol (addr int) (name str))\n(declare require (name str))\n(declare section (addr int) (size int))\n(declare segment (addr int) (size int) (r bool) (w bool) (x bool))\n(declare subarch (name str))\n(declare symbol-chunk (addr int) (size int) (root int))\n(declare symbol-value (addr int) (value int))\n(declare system (name str))\n(declare vendor (name str))\n\n(abi unknown)\n(arch aarch64)\n(base-address 0)\n(bias 0)\n(bits 64)\n(code-region 1948 20 1948)\n(code-region 1600 348 1600)\n(code-region 1488 96 1488)\n(code-region 1456 24 1456)\n(code-start 1652)\n(code-start 1600)\n(code-start 1876)\n(code-start 1884)\n(entry-point 1600)\n(external-reference 69552 _ITM_deregisterTMCloneTable)\n(external-reference 69560 __cxa_finalize)\n(external-reference 69576 __gmon_start__)\n(external-reference 69600 _ITM_registerTMCloneTable)\n(external-reference 69632 __libc_start_main)\n(external-reference 69640 __cxa_finalize)\n(external-reference 69648 __gmon_start__)\n(external-reference 69656 abort)\n(format elf)\n(is-executable true)\n(is-little-endian true)\n(llvm:base-address 0)\n(llvm:code-entry abort 0 0)\n(llvm:code-entry __cxa_finalize 0 0)\n(llvm:code-entry __libc_start_main 0 0)\n(llvm:code-entry _init 1456 0)\n(llvm:code-entry main 1884 64)\n(llvm:code-entry zero 1876 8)\n(llvm:code-entry _start 1600 52)\n(llvm:code-entry abort@GLIBC_2.17 0 0)\n(llvm:code-entry _fini 1948 0)\n(llvm:code-entry __cxa_finalize@GLIBC_2.17 0 0)\n(llvm:code-entry __libc_start_main@GLIBC_2.34 0 0)\n(llvm:code-entry frame_dummy 1872 0)\n(llvm:code-entry __do_global_dtors_aux 1792 0)\n(llvm:code-entry register_tm_clones 1728 0)\n(llvm:code-entry deregister_tm_clones 1680 0)\n(llvm:code-entry call_weak_fn 1652 20)\n(llvm:code-entry .fini 1948 20)\n(llvm:code-entry .text 1600 348)\n(llvm:code-entry .plt 1488 96)\n(llvm:code-entry .init 1456 24)\n(llvm:elf-program-header 08 3512 584)\n(llvm:elf-program-header 07 0 0)\n(llvm:elf-program-header 06 1972 68)\n(llvm:elf-program-header 05 596 68)\n(llvm:elf-program-header 04 3528 480)\n(llvm:elf-program-header 03 3512 632)\n(llvm:elf-program-header 02 0 2260)\n(llvm:elf-program-header 01 568 27)\n(llvm:elf-program-header 00 64 504)\n(llvm:elf-program-header-flags 08 false true false false)\n(llvm:elf-program-header-flags 07 false true true false)\n(llvm:elf-program-header-flags 06 false true false false)\n(llvm:elf-program-header-flags 05 false true false false)\n(llvm:elf-program-header-flags 04 false true true false)\n(llvm:elf-program-header-flags 03 true true true false)\n(llvm:elf-program-header-flags 02 true true false true)\n(llvm:elf-program-header-flags 01 false true false false)\n(llvm:elf-program-header-flags 00 false true false false)\n(llvm:elf-virtual-program-header 08 69048 584)\n(llvm:elf-virtual-program-header 07 0 0)\n(llvm:elf-virtual-program-header 06 1972 68)\n(llvm:elf-virtual-program-header 05 596 68)\n(llvm:elf-virtual-program-header 04 69064 480)\n(llvm:elf-virtual-program-header 03 69048 648)\n(llvm:elf-virtual-program-header 02 0 2260)\n(llvm:elf-virtual-program-header 01 568 27)\n(llvm:elf-virtual-program-header 00 64 504)\n(llvm:entry-point 1600)\n(llvm:name-reference 69656 abort)\n(llvm:name-reference 69648 __gmon_start__)\n(llvm:name-reference 69640 __cxa_finalize)\n(llvm:name-reference 69632 __libc_start_main)\n(llvm:name-reference 69600 _ITM_registerTMCloneTable)\n(llvm:name-reference 69576 __gmon_start__)\n(llvm:name-reference 69560 __cxa_finalize)\n(llvm:name-reference 69552 _ITM_deregisterTMCloneTable)\n(llvm:section-entry .shstrtab 0 259 7011)\n(llvm:section-entry .strtab 0 587 6424)\n(llvm:section-entry .symtab 0 2208 4216)\n(llvm:section-entry .comment 0 71 4144)\n(llvm:section-entry .bss 69680 16 4144)\n(llvm:section-entry .data 69664 16 4128)\n(llvm:section-entry .got.plt 69608 56 4072)\n(llvm:section-entry .got 69544 64 4008)\n(llvm:section-entry .dynamic 69064 480 3528)\n(llvm:section-entry .fini_array 69056 8 3520)\n(llvm:section-entry .init_array 69048 8 3512)\n(llvm:section-entry .eh_frame 2040 220 2040)\n(llvm:section-entry .eh_frame_hdr 1972 68 1972)\n(llvm:section-entry .rodata 1968 4 1968)\n(llvm:section-entry .fini 1948 20 1948)\n(llvm:section-entry .text 1600 348 1600)\n(llvm:section-entry .plt 1488 96 1488)\n(llvm:section-entry .init 1456 24 1456)\n(llvm:section-entry .rela.plt 1360 96 1360)\n(llvm:section-entry .rela.dyn 1120 240 1120)\n(llvm:section-entry .gnu.version_r 1072 48 1072)\n(llvm:section-entry .gnu.version 1054 18 1054)\n(llvm:section-entry .dynstr 912 141 912)\n(llvm:section-entry .dynsym 696 216 696)\n(llvm:section-entry .gnu.hash 664 28 664)\n(llvm:section-entry .note.ABI-tag 632 32 632)\n(llvm:section-entry .note.gnu.build-id 596 36 596)\n(llvm:section-entry .interp 568 27 568)\n(llvm:section-flags .shstrtab true false false)\n(llvm:section-flags .strtab true false false)\n(llvm:section-flags .symtab true false false)\n(llvm:section-flags .comment true false false)\n(llvm:section-flags .bss true true false)\n(llvm:section-flags .data true true false)\n(llvm:section-flags .got.plt true true false)\n(llvm:section-flags .got true true false)\n(llvm:section-flags .dynamic true true false)\n(llvm:section-flags .fini_array true true false)\n(llvm:section-flags .init_array true true false)\n(llvm:section-flags .eh_frame true false false)\n(llvm:section-flags .eh_frame_hdr true false false)\n(llvm:section-flags .rodata true false false)\n(llvm:section-flags .fini true false true)\n(llvm:section-flags .text true false true)\n(llvm:section-flags .plt true false true)\n(llvm:section-flags .init true false true)\n(llvm:section-flags .rela.plt true false false)\n(llvm:section-flags .rela.dyn true false false)\n(llvm:section-flags .gnu.version_r true false false)\n(llvm:section-flags .gnu.version true false false)\n(llvm:section-flags .dynstr true false false)\n(llvm:section-flags .dynsym true false false)\n(llvm:section-flags .gnu.hash true false false)\n(llvm:section-flags .note.ABI-tag true false false)\n(llvm:section-flags .note.gnu.build-id true false false)\n(llvm:section-flags .interp true false false)\n(llvm:symbol-entry abort 0 0 0 0)\n(llvm:symbol-entry __cxa_finalize 0 0 0 0)\n(llvm:symbol-entry __libc_start_main 0 0 0 0)\n(llvm:symbol-entry _init 1456 0 1456 1456)\n(llvm:symbol-entry main 1884 64 1884 1884)\n(llvm:symbol-entry zero 1876 8 1876 1876)\n(llvm:symbol-entry _start 1600 52 1600 1600)\n(llvm:symbol-entry abort@GLIBC_2.17 0 0 0 0)\n(llvm:symbol-entry _fini 1948 0 1948 1948)\n(llvm:symbol-entry __cxa_finalize@GLIBC_2.17 0 0 0 0)\n(llvm:symbol-entry __libc_start_main@GLIBC_2.34 0 0 0 0)\n(llvm:symbol-entry frame_dummy 1872 0 1872 1872)\n(llvm:symbol-entry __do_global_dtors_aux 1792 0 1792 1792)\n(llvm:symbol-entry register_tm_clones 1728 0 1728 1728)\n(llvm:symbol-entry deregister_tm_clones 1680 0 1680 1680)\n(llvm:symbol-entry call_weak_fn 1652 20 1652 1652)\n(mapped 0 2260 0)\n(mapped 69048 632 3512)\n(named-region 0 2260 02)\n(named-region 69048 648 03)\n(named-region 568 27 .interp)\n(named-region 596 36 .note.gnu.build-id)\n(named-region 632 32 .note.ABI-tag)\n(named-region 664 28 .gnu.hash)\n(named-region 696 216 .dynsym)\n(named-region 912 141 .dynstr)\n(named-region 1054 18 .gnu.version)\n(named-region 1072 48 .gnu.version_r)\n(named-region 1120 240 .rela.dyn)\n(named-region 1360 96 .rela.plt)\n(named-region 1456 24 .init)\n(named-region 1488 96 .plt)\n(named-region 1600 348 .text)\n(named-region 1948 20 .fini)\n(named-region 1968 4 .rodata)\n(named-region 1972 68 .eh_frame_hdr)\n(named-region 2040 220 .eh_frame)\n(named-region 69048 8 .init_array)\n(named-region 69056 8 .fini_array)\n(named-region 69064 480 .dynamic)\n(named-region 69544 64 .got)\n(named-region 69608 56 .got.plt)\n(named-region 69664 16 .data)\n(named-region 69680 16 .bss)\n(named-region 0 71 .comment)\n(named-region 0 2208 .symtab)\n(named-region 0 587 .strtab)\n(named-region 0 259 .shstrtab)\n(named-symbol 1652 call_weak_fn)\n(named-symbol 1680 deregister_tm_clones)\n(named-symbol 1728 register_tm_clones)\n(named-symbol 1792 __do_global_dtors_aux)\n(named-symbol 1872 frame_dummy)\n(named-symbol 0 __libc_start_main@GLIBC_2.34)\n(named-symbol 0 __cxa_finalize@GLIBC_2.17)\n(named-symbol 1948 _fini)\n(named-symbol 0 abort@GLIBC_2.17)\n(named-symbol 1600 _start)\n(named-symbol 1876 zero)\n(named-symbol 1884 main)\n(named-symbol 1456 _init)\n(named-symbol 0 __libc_start_main)\n(named-symbol 0 __cxa_finalize)\n(named-symbol 0 abort)\n(require libc.so.6)\n(section 568 27)\n(section 596 36)\n(section 632 32)\n(section 664 28)\n(section 696 216)\n(section 912 141)\n(section 1054 18)\n(section 1072 48)\n(section 1120 240)\n(section 1360 96)\n(section 1456 24)\n(section 1488 96)\n(section 1600 348)\n(section 1948 20)\n(section 1968 4)\n(section 1972 68)\n(section 2040 220)\n(section 69048 8)\n(section 69056 8)\n(section 69064 480)\n(section 69544 64)\n(section 69608 56)\n(section 69664 16)\n(section 69680 16)\n(section 0 71)\n(section 0 2208)\n(section 0 587)\n(section 0 259)\n(segment 0 2260 true false true)\n(segment 69048 648 true true false)\n(subarch v8)\n(symbol-chunk 1652 20 1652)\n(symbol-chunk 1600 52 1600)\n(symbol-chunk 1876 8 1876)\n(symbol-chunk 1884 64 1884)\n(symbol-value 1652 1652)\n(symbol-value 1680 1680)\n(symbol-value 1728 1728)\n(symbol-value 1792 1792)\n(symbol-value 1872 1872)\n(symbol-value 1948 1948)\n(symbol-value 1600 1600)\n(symbol-value 1876 1876)\n(symbol-value 1884 1884)\n(symbol-value 1456 1456)\n(symbol-value 0 0)\n(system \"\")\n(vendor \"\")\n"), -Attr("abi-name","\"aarch64-linux-gnu-elf\"")]), -Sections([Section(".shstrtab", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x40\x06\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x68\x1c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x38\x00\x09\x00\x40\x00\x1d\x00\x1c\x00\x06\x00\x00\x00\x04\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x04\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xd4\x08\x00\x00\x00\x00\x00\x00\xd4\x08\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x01\x00\x00\x00\x06\x00\x00\x00\xb8\x0d\x00\x00\x00\x00\x00\x00\xb8\x0d\x01\x00\x00\x00\x00\x00\xb8\x0d\x01"), -Section(".strtab", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x40\x06\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x68\x1c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x38\x00\x09\x00\x40\x00\x1d\x00\x1c\x00\x06\x00\x00\x00\x04\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x04\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xd4\x08\x00\x00\x00\x00\x00\x00\xd4\x08\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x01\x00\x00\x00\x06\x00\x00\x00\xb8\x0d\x00\x00\x00\x00\x00\x00\xb8\x0d\x01\x00\x00\x00\x00\x00\xb8\x0d\x01\x00\x00\x00\x00\x00\x78\x02\x00\x00\x00\x00\x00\x00\x88\x02\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x02\x00\x00\x00\x06\x00\x00\x00\xc8\x0d\x00\x00\x00\x00\x00\x00\xc8\x0d\x01\x00\x00\x00\x00\x00\xc8\x0d\x01\x00\x00\x00\x00\x00\xe0\x01\x00\x00\x00\x00\x00\x00\xe0\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x04\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x50\xe5\x74\x64\x04\x00\x00\x00\xb4\x07\x00\x00\x00\x00\x00\x00\xb4\x07\x00\x00\x00\x00\x00\x00\xb4\x07\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x51\xe5\x74\x64\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x52\xe5\x74\x64\x04\x00\x00\x00\xb8\x0d\x00\x00\x00\x00\x00\x00\xb8\x0d\x01\x00\x00\x00\x00\x00\xb8\x0d\x01\x00\x00\x00\x00\x00\x48\x02\x00\x00\x00\x00\x00\x00\x48\x02\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x2f\x6c\x69\x62\x2f\x6c\x64\x2d\x6c\x69\x6e\x75\x78\x2d\x61\x61\x72\x63\x68"), -Section(".symtab", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x40\x06\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x68\x1c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x38\x00\x09\x00\x40\x00\x1d\x00\x1c\x00\x06\x00\x00\x00\x04\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x04\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xd4\x08\x00\x00\x00\x00\x00\x00\xd4\x08\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x01\x00\x00\x00\x06\x00\x00\x00\xb8\x0d\x00\x00\x00\x00\x00\x00\xb8\x0d\x01\x00\x00\x00\x00\x00\xb8\x0d\x01\x00\x00\x00\x00\x00\x78\x02\x00\x00\x00\x00\x00\x00\x88\x02\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x02\x00\x00\x00\x06\x00\x00\x00\xc8\x0d\x00\x00\x00\x00\x00\x00\xc8\x0d\x01\x00\x00\x00\x00\x00\xc8\x0d\x01\x00\x00\x00\x00\x00\xe0\x01\x00\x00\x00\x00\x00\x00\xe0\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x04\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x50\xe5\x74\x64\x04\x00\x00\x00\xb4\x07\x00\x00\x00\x00\x00\x00\xb4\x07\x00\x00\x00\x00\x00\x00\xb4\x07\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x51\xe5\x74\x64\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x52\xe5\x74\x64\x04\x00\x00\x00\xb8\x0d\x00\x00\x00\x00\x00\x00\xb8\x0d\x01\x00\x00\x00\x00\x00\xb8\x0d\x01\x00\x00\x00\x00\x00\x48\x02\x00\x00\x00\x00\x00\x00\x48\x02\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x2f\x6c\x69\x62\x2f\x6c\x64\x2d\x6c\x69\x6e\x75\x78\x2d\x61\x61\x72\x63\x68\x36\x34\x2e\x73\x6f\x2e\x31\x00\x00\x04\x00\x00\x00\x14\x00\x00\x00\x03\x00\x00\x00\x47\x4e\x55\x00\x21\xb1\x94\x91\x8e\x16\xeb\xfa\x97\xf7\xfa\xb5\x65\x10\x92\x7f\x4f\xe5\xf1\xfe\x04\x00\x00\x00\x10\x00\x00\x00\x01\x00\x00\x00\x47\x4e\x55\x00\x00\x00\x00\x00\x03\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x01\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x0b\x00\xb0\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x17\x00\x20\x10\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x48\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x22\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x22\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x73\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5f\x5f\x63\x78\x61\x5f\x66\x69\x6e\x61\x6c\x69\x7a\x65\x00\x5f\x5f\x6c\x69\x62\x63\x5f\x73\x74\x61\x72\x74\x5f\x6d\x61\x69\x6e\x00\x61\x62\x6f\x72\x74\x00\x6c\x69\x62\x63\x2e\x73\x6f\x2e\x36\x00\x47\x4c\x49\x42\x43\x5f\x32\x2e\x31\x37\x00\x47\x4c\x49\x42\x43\x5f\x32\x2e\x33\x34\x00\x5f\x49\x54\x4d\x5f\x64\x65\x72\x65\x67\x69\x73\x74\x65\x72\x54\x4d\x43\x6c\x6f\x6e\x65\x54\x61\x62\x6c\x65\x00\x5f\x5f\x67\x6d\x6f\x6e\x5f\x73\x74\x61\x72\x74\x5f\x5f\x00\x5f\x49\x54\x4d\x5f\x72\x65\x67\x69\x73\x74\x65\x72\x54\x4d\x43\x6c\x6f\x6e\x65\x54\x61\x62\x6c\x65\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x01\x00\x03\x00\x01\x00\x03\x00\x01\x00\x01\x00\x02\x00\x28\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x97\x91\x96\x06\x00\x00\x03\x00\x32\x00\x00\x00\x10\x00\x00\x00\xb4\x91\x96\x06\x00\x00\x02\x00\x3d\x00\x00\x00\x00\x00\x00\x00\xb8\x0d\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x50\x07\x00\x00\x00\x00\x00\x00\xc0\x0d\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\xc0\x0f\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x34\x10\x01\x00\x00\x00\x00\x00\xd0\x0f\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x38\x10\x01\x00\x00\x00\x00\x00\xd8\x0f\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x5c\x07\x00\x00\x00\x00\x00\x00\x28\x10\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x28\x10\x01\x00\x00\x00\x00\x00\xb0\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xb8\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xc8\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe0\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x08\x10\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x10\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x18\x10\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1f\x20\x03\xd5\xfd\x7b\xbf\xa9\xfd\x03\x00\x91\x2e\x00\x00\x94\xfd\x7b\xc1\xa8\xc0\x03\x5f\xd6\x00\x00\x00\x00\x00\x00\x00\x00\xf0\x7b\xbf\xa9\x90\x00\x00\x90\x11\xfe\x47\xf9\x10\xe2\x3f\x91\x20\x02\x1f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x90\x00\x00\xb0\x11\x02\x40\xf9\x10\x02\x00\x91\x20\x02\x1f\xd6\x90\x00\x00\xb0\x11\x06\x40\xf9\x10\x22\x00\x91\x20\x02\x1f\xd6\x90\x00\x00\xb0\x11\x0a\x40\xf9\x10\x42\x00\x91\x20\x02\x1f\xd6\x90\x00\x00\xb0\x11\x0e\x40\xf9\x10\x62\x00\x91\x20\x02\x1f\xd6\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1f\x20\x03\xd5\x1d\x00\x80\xd2\x1e\x00\x80\xd2\xe5\x03\x00\xaa\xe1\x03\x40\xf9\xe2\x23\x00\x91\xe6\x03\x00\x91\x80\x00\x00\x90\x00\xec\x47\xf9\x03\x00\x80\xd2\x04\x00\x80\xd2\xe1\xff\xff\x97\xec\xff\xff\x97\x80\x00\x00\x90\x00\xe4\x47\xf9\x40\x00\x00\xb4\xe4\xff\xff\x17\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x80\x00\x00\xb0\x00\xc0\x00\x91\x81\x00\x00\xb0\x21\xc0\x00\x91\x3f\x00\x00\xeb\xc0\x00\x00\x54\x81\x00\x00\x90\x21\xd8\x47\xf9\x61\x00\x00\xb4\xf0\x03\x01\xaa\x00\x02\x1f\xd6\xc0\x03\x5f\xd6\x80\x00\x00\xb0\x00\xc0\x00\x91\x81\x00\x00\xb0\x21\xc0\x00\x91\x21\x00\x00\xcb\x22\xfc\x7f\xd3\x41\x0c\x81\x8b\x21\xfc\x41\x93\xc1\x00\x00\xb4\x82\x00\x00\x90\x42\xf0\x47\xf9\x62\x00\x00\xb4\xf0\x03\x02\xaa\x00\x02\x1f\xd6\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\xfd\x7b\xbe\xa9\xfd\x03\x00\x91\xf3\x0b\x00\xf9\x93\x00\x00\xb0\x60\xc2\x40\x39\x40\x01\x00\x35\x80\x00\x00\x90\x00\xdc\x47\xf9\x80\x00\x00\xb4\x80\x00\x00\xb0\x00\x14\x40\xf9\xb5\xff\xff\x97\xd8\xff\xff\x97\x20\x00\x80\x52\x60\xc2\x00\x39\xf3\x0b\x40\xf9\xfd\x7b\xc2\xa8\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\xdc\xff\xff\x17\xe0\x03\x1f\x2a\xc0\x03\x5f\xd6\xff\x83\x00\xd1\xfd\x7b\x01\xa9\xfd\x43\x00\x91\xa0\xc3\x1f\xb8\xfa\xff\xff\x97\x88\x00\x00\x90\x08\xe1\x47\xf9\x00\x01\x00\xb9\xa8\xc3\x5f\xb8\x89\x00\x00\x90\x29\xe9\x47\xf9\x28\x01\x00\xb9\xe0\x03\x1f\x2a\xfd\x7b\x41\xa9\xff\x83\x00\x91\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\xfd\x7b\xbf\xa9\xfd\x03\x00\x91\xfd\x7b\xc1\xa8\xc0\x03\x5f\xd6\x01\x00\x02\x00\x01\x1b\x03\x3b\x40\x00\x00\x00\x07\x00\x00\x00\x8c\xfe\xff\xff\x58\x00\x00\x00\xdc\xfe\xff\xff\x6c\x00\x00\x00\x0c\xff\xff\xff\x80\x00\x00\x00\x4c\xff\xff\xff\x94\x00\x00\x00\x9c\xff\xff\xff\xb8\x00\x00\x00\xa0\xff\xff\xff\xe0\x00\x00\x00\xa8\xff\xff\xff\xf4\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x01\x7a\x52\x00\x04\x78\x1e\x01\x1b\x0c\x1f\x00\x10\x00\x00\x00\x18\x00\x00\x00\x2c\xfe\xff\xff\x34\x00\x00\x00\x00\x41\x07\x1e\x10\x00\x00\x00\x2c\x00\x00\x00\x68\xfe\xff\xff\x30\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x40\x00\x00\x00\x84\xfe\xff\xff\x3c\x00\x00\x00\x00\x00\x00\x00\x20\x00\x00\x00\x54\x00\x00\x00\xb0\xfe\xff\xff\x48\x00\x00\x00\x00\x41\x0e\x20\x9d\x04\x9e\x03\x42\x93\x02\x4e\xde\xdd\xd3\x0e\x00\x00\x00\x00\x10\x00\x00\x00\x78\x00\x00\x00\xdc\xfe\xff\xff\x04\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x01\x7a\x52\x00\x01\x7c\x1e\x01\x1b\x0c\x1f\x00\x10\x00\x00\x00\x18\x00\x00\x00\xb8\xfe\xff\xff"), -Section(".comment", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x40\x06\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x68\x1c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x38\x00\x09\x00\x40\x00\x1d\x00\x1c\x00\x06\x00\x00\x00\x04\x00\x00"), -Section(".interp", 0x238, "\x2f\x6c\x69\x62\x2f\x6c\x64\x2d\x6c\x69\x6e\x75\x78\x2d\x61\x61\x72\x63\x68\x36\x34\x2e\x73\x6f\x2e\x31\x00"), -Section(".note.gnu.build-id", 0x254, "\x04\x00\x00\x00\x14\x00\x00\x00\x03\x00\x00\x00\x47\x4e\x55\x00\x21\xb1\x94\x91\x8e\x16\xeb\xfa\x97\xf7\xfa\xb5\x65\x10\x92\x7f\x4f\xe5\xf1\xfe"), -Section(".note.ABI-tag", 0x278, "\x04\x00\x00\x00\x10\x00\x00\x00\x01\x00\x00\x00\x47\x4e\x55\x00\x00\x00\x00\x00\x03\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00"), -Section(".gnu.hash", 0x298, "\x01\x00\x00\x00\x01\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".dynsym", 0x2B8, "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x0b\x00\xb0\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x17\x00\x20\x10\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x48\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x22\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x22\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x73\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".dynstr", 0x390, "\x00\x5f\x5f\x63\x78\x61\x5f\x66\x69\x6e\x61\x6c\x69\x7a\x65\x00\x5f\x5f\x6c\x69\x62\x63\x5f\x73\x74\x61\x72\x74\x5f\x6d\x61\x69\x6e\x00\x61\x62\x6f\x72\x74\x00\x6c\x69\x62\x63\x2e\x73\x6f\x2e\x36\x00\x47\x4c\x49\x42\x43\x5f\x32\x2e\x31\x37\x00\x47\x4c\x49\x42\x43\x5f\x32\x2e\x33\x34\x00\x5f\x49\x54\x4d\x5f\x64\x65\x72\x65\x67\x69\x73\x74\x65\x72\x54\x4d\x43\x6c\x6f\x6e\x65\x54\x61\x62\x6c\x65\x00\x5f\x5f\x67\x6d\x6f\x6e\x5f\x73\x74\x61\x72\x74\x5f\x5f\x00\x5f\x49\x54\x4d\x5f\x72\x65\x67\x69\x73\x74\x65\x72\x54\x4d\x43\x6c\x6f\x6e\x65\x54\x61\x62\x6c\x65\x00"), -Section(".gnu.version", 0x41E, "\x00\x00\x00\x00\x00\x00\x02\x00\x01\x00\x03\x00\x01\x00\x03\x00\x01\x00"), -Section(".gnu.version_r", 0x430, "\x01\x00\x02\x00\x28\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x97\x91\x96\x06\x00\x00\x03\x00\x32\x00\x00\x00\x10\x00\x00\x00\xb4\x91\x96\x06\x00\x00\x02\x00\x3d\x00\x00\x00\x00\x00\x00\x00"), -Section(".rela.dyn", 0x460, "\xb8\x0d\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x50\x07\x00\x00\x00\x00\x00\x00\xc0\x0d\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\xc0\x0f\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x34\x10\x01\x00\x00\x00\x00\x00\xd0\x0f\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x38\x10\x01\x00\x00\x00\x00\x00\xd8\x0f\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x5c\x07\x00\x00\x00\x00\x00\x00\x28\x10\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x28\x10\x01\x00\x00\x00\x00\x00\xb0\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xb8\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xc8\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe0\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".rela.plt", 0x550, "\x00\x10\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x08\x10\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x10\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x18\x10\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".init", 0x5B0, "\x1f\x20\x03\xd5\xfd\x7b\xbf\xa9\xfd\x03\x00\x91\x2e\x00\x00\x94\xfd\x7b\xc1\xa8\xc0\x03\x5f\xd6"), -Section(".plt", 0x5D0, "\xf0\x7b\xbf\xa9\x90\x00\x00\x90\x11\xfe\x47\xf9\x10\xe2\x3f\x91\x20\x02\x1f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x90\x00\x00\xb0\x11\x02\x40\xf9\x10\x02\x00\x91\x20\x02\x1f\xd6\x90\x00\x00\xb0\x11\x06\x40\xf9\x10\x22\x00\x91\x20\x02\x1f\xd6\x90\x00\x00\xb0\x11\x0a\x40\xf9\x10\x42\x00\x91\x20\x02\x1f\xd6\x90\x00\x00\xb0\x11\x0e\x40\xf9\x10\x62\x00\x91\x20\x02\x1f\xd6"), -Section(".fini", 0x79C, "\x1f\x20\x03\xd5\xfd\x7b\xbf\xa9\xfd\x03\x00\x91\xfd\x7b\xc1\xa8\xc0\x03\x5f\xd6"), -Section(".rodata", 0x7B0, "\x01\x00\x02\x00"), -Section(".eh_frame_hdr", 0x7B4, "\x01\x1b\x03\x3b\x40\x00\x00\x00\x07\x00\x00\x00\x8c\xfe\xff\xff\x58\x00\x00\x00\xdc\xfe\xff\xff\x6c\x00\x00\x00\x0c\xff\xff\xff\x80\x00\x00\x00\x4c\xff\xff\xff\x94\x00\x00\x00\x9c\xff\xff\xff\xb8\x00\x00\x00\xa0\xff\xff\xff\xe0\x00\x00\x00\xa8\xff\xff\xff\xf4\x00\x00\x00"), -Section(".eh_frame", 0x7F8, "\x10\x00\x00\x00\x00\x00\x00\x00\x01\x7a\x52\x00\x04\x78\x1e\x01\x1b\x0c\x1f\x00\x10\x00\x00\x00\x18\x00\x00\x00\x2c\xfe\xff\xff\x34\x00\x00\x00\x00\x41\x07\x1e\x10\x00\x00\x00\x2c\x00\x00\x00\x68\xfe\xff\xff\x30\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x40\x00\x00\x00\x84\xfe\xff\xff\x3c\x00\x00\x00\x00\x00\x00\x00\x20\x00\x00\x00\x54\x00\x00\x00\xb0\xfe\xff\xff\x48\x00\x00\x00\x00\x41\x0e\x20\x9d\x04\x9e\x03\x42\x93\x02\x4e\xde\xdd\xd3\x0e\x00\x00\x00\x00\x10\x00\x00\x00\x78\x00\x00\x00\xdc\xfe\xff\xff\x04\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x01\x7a\x52\x00\x01\x7c\x1e\x01\x1b\x0c\x1f\x00\x10\x00\x00\x00\x18\x00\x00\x00\xb8\xfe\xff\xff\x08\x00\x00\x00\x00\x00\x00\x00\x24\x00\x00\x00\x2c\x00\x00\x00\xac\xfe\xff\xff\x40\x00\x00\x00\x00\x44\x0e\x20\x48\x0c\x1d\x10\x9e\x02\x9d\x04\x68\x0c\x1f\x20\x48\x0e\x00\xde\xdd\x00\x00\x00\x00\x00\x00\x00"), -Section(".fini_array", 0x10DC0, "\x00\x07\x00\x00\x00\x00\x00\x00"), -Section(".dynamic", 0x10DC8, "\x01\x00\x00\x00\x00\x00\x00\x00\x28\x00\x00\x00\x00\x00\x00\x00\x0c\x00\x00\x00\x00\x00\x00\x00\xb0\x05\x00\x00\x00\x00\x00\x00\x0d\x00\x00\x00\x00\x00\x00\x00\x9c\x07\x00\x00\x00\x00\x00\x00\x19\x00\x00\x00\x00\x00\x00\x00\xb8\x0d\x01\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x1a\x00\x00\x00\x00\x00\x00\x00\xc0\x0d\x01\x00\x00\x00\x00\x00\x1c\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\xf5\xfe\xff\x6f\x00\x00\x00\x00\x98\x02\x00\x00\x00\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x90\x03\x00\x00\x00\x00\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\xb8\x02\x00\x00\x00\x00\x00\x00\x0a\x00\x00\x00\x00\x00\x00\x00\x8d\x00\x00\x00\x00\x00\x00\x00\x0b\x00\x00\x00\x00\x00\x00\x00\x18\x00\x00\x00\x00\x00\x00\x00\x15\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\xe8\x0f\x01\x00\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x60\x00\x00\x00\x00\x00\x00\x00\x14\x00\x00\x00\x00\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x17\x00\x00\x00\x00\x00\x00\x00\x50\x05\x00\x00\x00\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x60\x04\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\xf0\x00\x00\x00\x00\x00\x00\x00\x09\x00\x00\x00\x00\x00\x00\x00\x18\x00\x00\x00\x00\x00\x00\x00\xfb\xff\xff\x6f\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\xfe\xff\xff\x6f\x00\x00\x00\x00\x30\x04\x00\x00\x00\x00\x00\x00\xff\xff\xff\x6f\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\xf0\xff\xff\x6f\x00\x00\x00\x00\x1e\x04\x00\x00\x00\x00\x00\x00\xf9\xff\xff\x6f\x00\x00\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".got", 0x10FA8, "\xc8\x0d\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x34\x10\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x38\x10\x01\x00\x00\x00\x00\x00\x5c\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".got.plt", 0x10FE8, "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xd0\x05\x00\x00\x00\x00\x00\x00\xd0\x05\x00\x00\x00\x00\x00\x00\xd0\x05\x00\x00\x00\x00\x00\x00\xd0\x05\x00\x00\x00\x00\x00\x00"), -Section(".data", 0x11020, "\x00\x00\x00\x00\x00\x00\x00\x00\x28\x10\x01\x00\x00\x00\x00\x00"), -Section(".init_array", 0x10DB8, "\x50\x07\x00\x00\x00\x00\x00\x00"), -Section(".text", 0x640, "\x1f\x20\x03\xd5\x1d\x00\x80\xd2\x1e\x00\x80\xd2\xe5\x03\x00\xaa\xe1\x03\x40\xf9\xe2\x23\x00\x91\xe6\x03\x00\x91\x80\x00\x00\x90\x00\xec\x47\xf9\x03\x00\x80\xd2\x04\x00\x80\xd2\xe1\xff\xff\x97\xec\xff\xff\x97\x80\x00\x00\x90\x00\xe4\x47\xf9\x40\x00\x00\xb4\xe4\xff\xff\x17\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x80\x00\x00\xb0\x00\xc0\x00\x91\x81\x00\x00\xb0\x21\xc0\x00\x91\x3f\x00\x00\xeb\xc0\x00\x00\x54\x81\x00\x00\x90\x21\xd8\x47\xf9\x61\x00\x00\xb4\xf0\x03\x01\xaa\x00\x02\x1f\xd6\xc0\x03\x5f\xd6\x80\x00\x00\xb0\x00\xc0\x00\x91\x81\x00\x00\xb0\x21\xc0\x00\x91\x21\x00\x00\xcb\x22\xfc\x7f\xd3\x41\x0c\x81\x8b\x21\xfc\x41\x93\xc1\x00\x00\xb4\x82\x00\x00\x90\x42\xf0\x47\xf9\x62\x00\x00\xb4\xf0\x03\x02\xaa\x00\x02\x1f\xd6\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\xfd\x7b\xbe\xa9\xfd\x03\x00\x91\xf3\x0b\x00\xf9\x93\x00\x00\xb0\x60\xc2\x40\x39\x40\x01\x00\x35\x80\x00\x00\x90\x00\xdc\x47\xf9\x80\x00\x00\xb4\x80\x00\x00\xb0\x00\x14\x40\xf9\xb5\xff\xff\x97\xd8\xff\xff\x97\x20\x00\x80\x52\x60\xc2\x00\x39\xf3\x0b\x40\xf9\xfd\x7b\xc2\xa8\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\xdc\xff\xff\x17\xe0\x03\x1f\x2a\xc0\x03\x5f\xd6\xff\x83\x00\xd1\xfd\x7b\x01\xa9\xfd\x43\x00\x91\xa0\xc3\x1f\xb8\xfa\xff\xff\x97\x88\x00\x00\x90\x08\xe1\x47\xf9\x00\x01\x00\xb9\xa8\xc3\x5f\xb8\x89\x00\x00\x90\x29\xe9\x47\xf9\x28\x01\x00\xb9\xe0\x03\x1f\x2a\xfd\x7b\x41\xa9\xff\x83\x00\x91\xc0\x03\x5f\xd6")]), -Memmap([Annotation(Region(0x0,0x8D3), Attr("segment","02 0 2260")), -Annotation(Region(0x640,0x673), Attr("symbol","\"_start\"")), -Annotation(Region(0x0,0x102), Attr("section","\".shstrtab\"")), -Annotation(Region(0x0,0x24A), Attr("section","\".strtab\"")), -Annotation(Region(0x0,0x89F), Attr("section","\".symtab\"")), -Annotation(Region(0x0,0x46), Attr("section","\".comment\"")), -Annotation(Region(0x238,0x252), Attr("section","\".interp\"")), -Annotation(Region(0x254,0x277), Attr("section","\".note.gnu.build-id\"")), -Annotation(Region(0x278,0x297), Attr("section","\".note.ABI-tag\"")), -Annotation(Region(0x298,0x2B3), Attr("section","\".gnu.hash\"")), -Annotation(Region(0x2B8,0x38F), Attr("section","\".dynsym\"")), -Annotation(Region(0x390,0x41C), Attr("section","\".dynstr\"")), -Annotation(Region(0x41E,0x42F), Attr("section","\".gnu.version\"")), -Annotation(Region(0x430,0x45F), Attr("section","\".gnu.version_r\"")), -Annotation(Region(0x460,0x54F), Attr("section","\".rela.dyn\"")), -Annotation(Region(0x550,0x5AF), Attr("section","\".rela.plt\"")), -Annotation(Region(0x5B0,0x5C7), Attr("section","\".init\"")), -Annotation(Region(0x5D0,0x62F), Attr("section","\".plt\"")), -Annotation(Region(0x5B0,0x5C7), Attr("code-region","()")), -Annotation(Region(0x5D0,0x62F), Attr("code-region","()")), -Annotation(Region(0x640,0x673), Attr("symbol-info","_start 0x640 52")), -Annotation(Region(0x674,0x687), Attr("symbol","\"call_weak_fn\"")), -Annotation(Region(0x674,0x687), Attr("symbol-info","call_weak_fn 0x674 20")), -Annotation(Region(0x754,0x75B), Attr("symbol","\"zero\"")), -Annotation(Region(0x640,0x79B), Attr("code-region","()")), -Annotation(Region(0x754,0x75B), Attr("symbol-info","zero 0x754 8")), -Annotation(Region(0x75C,0x79B), Attr("symbol","\"main\"")), -Annotation(Region(0x75C,0x79B), Attr("symbol-info","main 0x75C 64")), -Annotation(Region(0x79C,0x7AF), Attr("section","\".fini\"")), -Annotation(Region(0x7B0,0x7B3), Attr("section","\".rodata\"")), -Annotation(Region(0x7B4,0x7F7), Attr("section","\".eh_frame_hdr\"")), -Annotation(Region(0x7F8,0x8D3), Attr("section","\".eh_frame\"")), -Annotation(Region(0x10DB8,0x1102F), Attr("segment","03 0x10DB8 648")), -Annotation(Region(0x10DC0,0x10DC7), Attr("section","\".fini_array\"")), -Annotation(Region(0x10DC8,0x10FA7), Attr("section","\".dynamic\"")), -Annotation(Region(0x10FA8,0x10FE7), Attr("section","\".got\"")), -Annotation(Region(0x10FE8,0x1101F), Attr("section","\".got.plt\"")), -Annotation(Region(0x11020,0x1102F), Attr("section","\".data\"")), -Annotation(Region(0x10DB8,0x10DBF), Attr("section","\".init_array\"")), -Annotation(Region(0x640,0x79B), Attr("section","\".text\"")), -Annotation(Region(0x79C,0x7AF), Attr("code-region","()"))]), -Program(Tid(1_484, "%000005cc"), Attrs([]), - Subs([Sub(Tid(1_432, "@__cxa_finalize"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x600"), -Attr("stub","()")]), "__cxa_finalize", Args([Arg(Tid(1_485, "%000005cd"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("__cxa_finalize_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(943, "@__cxa_finalize"), - Attrs([Attr("address","0x600")]), Phis([]), -Defs([Def(Tid(1_191, "%000004a7"), Attrs([Attr("address","0x600"), -Attr("insn","adrp x16, #69632")]), Var("R16",Imm(64)), Int(69632,64)), -Def(Tid(1_198, "%000004ae"), Attrs([Attr("address","0x604"), -Attr("insn","ldr x17, [x16, #0x8]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(1_204, "%000004b4"), Attrs([Attr("address","0x608"), -Attr("insn","add x16, x16, #0x8")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(8,64)))]), Jmps([Call(Tid(1_209, "%000004b9"), - Attrs([Attr("address","0x60C"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), -Sub(Tid(1_433, "@__do_global_dtors_aux"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x700")]), - "__do_global_dtors_aux", Args([Arg(Tid(1_486, "%000005ce"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("__do_global_dtors_aux_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(662, "@__do_global_dtors_aux"), - Attrs([Attr("address","0x700")]), Phis([]), Defs([Def(Tid(666, "%0000029a"), - Attrs([Attr("address","0x700"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("#3",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(18446744073709551584,64))), -Def(Tid(672, "%000002a0"), Attrs([Attr("address","0x700"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("#3",Imm(64)),Var("R29",Imm(64)),LittleEndian(),64)), -Def(Tid(678, "%000002a6"), Attrs([Attr("address","0x700"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("#3",Imm(64)),Int(8,64)),Var("R30",Imm(64)),LittleEndian(),64)), -Def(Tid(682, "%000002aa"), Attrs([Attr("address","0x700"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("R31",Imm(64)), -Var("#3",Imm(64))), Def(Tid(688, "%000002b0"), - Attrs([Attr("address","0x704"), Attr("insn","mov x29, sp")]), - Var("R29",Imm(64)), Var("R31",Imm(64))), Def(Tid(696, "%000002b8"), - Attrs([Attr("address","0x708"), Attr("insn","str x19, [sp, #0x10]")]), - Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(16,64)),Var("R19",Imm(64)),LittleEndian(),64)), -Def(Tid(701, "%000002bd"), Attrs([Attr("address","0x70C"), -Attr("insn","adrp x19, #69632")]), Var("R19",Imm(64)), Int(69632,64)), -Def(Tid(708, "%000002c4"), Attrs([Attr("address","0x710"), -Attr("insn","ldrb w0, [x19, #0x30]")]), Var("R0",Imm(64)), -UNSIGNED(64,Load(Var("mem",Mem(64,8)),PLUS(Var("R19",Imm(64)),Int(48,64)),LittleEndian(),8)))]), -Jmps([Goto(Tid(715, "%000002cb"), Attrs([Attr("address","0x714"), -Attr("insn","cbnz w0, #0x28")]), - NEQ(Extract(31,0,Var("R0",Imm(64))),Int(0,32)), -Direct(Tid(713, "%000002c9"))), Goto(Tid(1_474, "%000005c2"), Attrs([]), - Int(1,1), Direct(Tid(888, "%00000378")))])), Blk(Tid(888, "%00000378"), - Attrs([Attr("address","0x718")]), Phis([]), Defs([Def(Tid(891, "%0000037b"), - Attrs([Attr("address","0x718"), Attr("insn","adrp x0, #65536")]), - Var("R0",Imm(64)), Int(65536,64)), Def(Tid(898, "%00000382"), - Attrs([Attr("address","0x71C"), Attr("insn","ldr x0, [x0, #0xfb8]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(4024,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(904, "%00000388"), Attrs([Attr("address","0x720"), -Attr("insn","cbz x0, #0x10")]), EQ(Var("R0",Imm(64)),Int(0,64)), -Direct(Tid(902, "%00000386"))), Goto(Tid(1_475, "%000005c3"), Attrs([]), - Int(1,1), Direct(Tid(927, "%0000039f")))])), Blk(Tid(927, "%0000039f"), - Attrs([Attr("address","0x724")]), Phis([]), Defs([Def(Tid(930, "%000003a2"), - Attrs([Attr("address","0x724"), Attr("insn","adrp x0, #69632")]), - Var("R0",Imm(64)), Int(69632,64)), Def(Tid(937, "%000003a9"), - Attrs([Attr("address","0x728"), Attr("insn","ldr x0, [x0, #0x28]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(40,64)),LittleEndian(),64)), -Def(Tid(942, "%000003ae"), Attrs([Attr("address","0x72C"), -Attr("insn","bl #-0x12c")]), Var("R30",Imm(64)), Int(1840,64))]), -Jmps([Call(Tid(945, "%000003b1"), Attrs([Attr("address","0x72C"), -Attr("insn","bl #-0x12c")]), Int(1,1), -(Direct(Tid(1_432, "@__cxa_finalize")),Direct(Tid(902, "%00000386"))))])), -Blk(Tid(902, "%00000386"), Attrs([Attr("address","0x730")]), Phis([]), -Defs([Def(Tid(910, "%0000038e"), Attrs([Attr("address","0x730"), -Attr("insn","bl #-0xa0")]), Var("R30",Imm(64)), Int(1844,64))]), -Jmps([Call(Tid(912, "%00000390"), Attrs([Attr("address","0x730"), -Attr("insn","bl #-0xa0")]), Int(1,1), -(Direct(Tid(1_446, "@deregister_tm_clones")),Direct(Tid(914, "%00000392"))))])), -Blk(Tid(914, "%00000392"), Attrs([Attr("address","0x734")]), Phis([]), -Defs([Def(Tid(917, "%00000395"), Attrs([Attr("address","0x734"), -Attr("insn","mov w0, #0x1")]), Var("R0",Imm(64)), Int(1,64)), -Def(Tid(925, "%0000039d"), Attrs([Attr("address","0x738"), -Attr("insn","strb w0, [x19, #0x30]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R19",Imm(64)),Int(48,64)),Extract(7,0,Var("R0",Imm(64))),LittleEndian(),8))]), -Jmps([Goto(Tid(1_476, "%000005c4"), Attrs([]), Int(1,1), -Direct(Tid(713, "%000002c9")))])), Blk(Tid(713, "%000002c9"), - Attrs([Attr("address","0x73C")]), Phis([]), Defs([Def(Tid(723, "%000002d3"), - Attrs([Attr("address","0x73C"), Attr("insn","ldr x19, [sp, #0x10]")]), - Var("R19",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(16,64)),LittleEndian(),64)), -Def(Tid(730, "%000002da"), Attrs([Attr("address","0x740"), -Attr("insn","ldp x29, x30, [sp], #0x20")]), Var("R29",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(735, "%000002df"), Attrs([Attr("address","0x740"), -Attr("insn","ldp x29, x30, [sp], #0x20")]), Var("R30",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(739, "%000002e3"), Attrs([Attr("address","0x740"), -Attr("insn","ldp x29, x30, [sp], #0x20")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(32,64)))]), Jmps([Call(Tid(744, "%000002e8"), - Attrs([Attr("address","0x744"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), Sub(Tid(1_437, "@__libc_start_main"), - Attrs([Attr("c.proto","signed (*)(signed (*)(signed , char** , char** );* main, signed , char** , \nvoid* auxv)"), -Attr("address","0x5F0"), Attr("stub","()")]), "__libc_start_main", - Args([Arg(Tid(1_487, "%000005cf"), - Attrs([Attr("c.layout","**[ : 64]"), -Attr("c.data","Top:u64 ptr ptr"), -Attr("c.type","signed (*)(signed , char** , char** );*")]), - Var("__libc_start_main_main",Imm(64)), Var("R0",Imm(64)), In()), -Arg(Tid(1_488, "%000005d0"), Attrs([Attr("c.layout","[signed : 32]"), -Attr("c.data","Top:u32"), Attr("c.type","signed")]), - Var("__libc_start_main_arg2",Imm(32)), LOW(32,Var("R1",Imm(64))), In()), -Arg(Tid(1_489, "%000005d1"), Attrs([Attr("c.layout","**[char : 8]"), -Attr("c.data","Top:u8 ptr ptr"), Attr("c.type","char**")]), - Var("__libc_start_main_arg3",Imm(64)), Var("R2",Imm(64)), Both()), -Arg(Tid(1_490, "%000005d2"), Attrs([Attr("c.layout","*[ : 8]"), -Attr("c.data","{} ptr"), Attr("c.type","void*")]), - Var("__libc_start_main_auxv",Imm(64)), Var("R3",Imm(64)), Both()), -Arg(Tid(1_491, "%000005d3"), Attrs([Attr("c.layout","[signed : 32]"), -Attr("c.data","Top:u32"), Attr("c.type","signed")]), - Var("__libc_start_main_result",Imm(32)), LOW(32,Var("R0",Imm(64))), -Out())]), Blks([Blk(Tid(495, "@__libc_start_main"), - Attrs([Attr("address","0x5F0")]), Phis([]), -Defs([Def(Tid(1_169, "%00000491"), Attrs([Attr("address","0x5F0"), -Attr("insn","adrp x16, #69632")]), Var("R16",Imm(64)), Int(69632,64)), -Def(Tid(1_176, "%00000498"), Attrs([Attr("address","0x5F4"), -Attr("insn","ldr x17, [x16]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R16",Imm(64)),LittleEndian(),64)), -Def(Tid(1_182, "%0000049e"), Attrs([Attr("address","0x5F8"), -Attr("insn","add x16, x16, #0x0")]), Var("R16",Imm(64)), -Var("R16",Imm(64)))]), Jmps([Call(Tid(1_187, "%000004a3"), - Attrs([Attr("address","0x5FC"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), Sub(Tid(1_438, "@_fini"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x79C")]), - "_fini", Args([Arg(Tid(1_492, "%000005d4"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("_fini_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(31, "@_fini"), - Attrs([Attr("address","0x79C")]), Phis([]), Defs([Def(Tid(37, "%00000025"), - Attrs([Attr("address","0x7A0"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("#0",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(18446744073709551600,64))), -Def(Tid(43, "%0000002b"), Attrs([Attr("address","0x7A0"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("#0",Imm(64)),Var("R29",Imm(64)),LittleEndian(),64)), -Def(Tid(49, "%00000031"), Attrs([Attr("address","0x7A0"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("#0",Imm(64)),Int(8,64)),Var("R30",Imm(64)),LittleEndian(),64)), -Def(Tid(53, "%00000035"), Attrs([Attr("address","0x7A0"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("R31",Imm(64)), -Var("#0",Imm(64))), Def(Tid(59, "%0000003b"), Attrs([Attr("address","0x7A4"), -Attr("insn","mov x29, sp")]), Var("R29",Imm(64)), Var("R31",Imm(64))), -Def(Tid(66, "%00000042"), Attrs([Attr("address","0x7A8"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R29",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(71, "%00000047"), Attrs([Attr("address","0x7A8"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R30",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(75, "%0000004b"), Attrs([Attr("address","0x7A8"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(16,64)))]), Jmps([Call(Tid(80, "%00000050"), - Attrs([Attr("address","0x7AC"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), Sub(Tid(1_439, "@_init"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x5B0")]), - "_init", Args([Arg(Tid(1_493, "%000005d5"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("_init_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(1_281, "@_init"), - Attrs([Attr("address","0x5B0")]), Phis([]), -Defs([Def(Tid(1_287, "%00000507"), Attrs([Attr("address","0x5B4"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("#7",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(18446744073709551600,64))), -Def(Tid(1_293, "%0000050d"), Attrs([Attr("address","0x5B4"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("#7",Imm(64)),Var("R29",Imm(64)),LittleEndian(),64)), -Def(Tid(1_299, "%00000513"), Attrs([Attr("address","0x5B4"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("#7",Imm(64)),Int(8,64)),Var("R30",Imm(64)),LittleEndian(),64)), -Def(Tid(1_303, "%00000517"), Attrs([Attr("address","0x5B4"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("R31",Imm(64)), -Var("#7",Imm(64))), Def(Tid(1_309, "%0000051d"), - Attrs([Attr("address","0x5B8"), Attr("insn","mov x29, sp")]), - Var("R29",Imm(64)), Var("R31",Imm(64))), Def(Tid(1_314, "%00000522"), - Attrs([Attr("address","0x5BC"), Attr("insn","bl #0xb8")]), - Var("R30",Imm(64)), Int(1472,64))]), Jmps([Call(Tid(1_316, "%00000524"), - Attrs([Attr("address","0x5BC"), Attr("insn","bl #0xb8")]), Int(1,1), -(Direct(Tid(1_444, "@call_weak_fn")),Direct(Tid(1_318, "%00000526"))))])), -Blk(Tid(1_318, "%00000526"), Attrs([Attr("address","0x5C0")]), Phis([]), -Defs([Def(Tid(1_323, "%0000052b"), Attrs([Attr("address","0x5C0"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R29",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(1_328, "%00000530"), Attrs([Attr("address","0x5C0"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R30",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(1_332, "%00000534"), Attrs([Attr("address","0x5C0"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(16,64)))]), Jmps([Call(Tid(1_337, "%00000539"), - Attrs([Attr("address","0x5C4"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), Sub(Tid(1_440, "@_start"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x640"), -Attr("entry-point","()")]), "_start", Args([Arg(Tid(1_494, "%000005d6"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("_start_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(432, "@_start"), - Attrs([Attr("address","0x640")]), Phis([]), Defs([Def(Tid(437, "%000001b5"), - Attrs([Attr("address","0x644"), Attr("insn","mov x29, #0x0")]), - Var("R29",Imm(64)), Int(0,64)), Def(Tid(442, "%000001ba"), - Attrs([Attr("address","0x648"), Attr("insn","mov x30, #0x0")]), - Var("R30",Imm(64)), Int(0,64)), Def(Tid(448, "%000001c0"), - Attrs([Attr("address","0x64C"), Attr("insn","mov x5, x0")]), - Var("R5",Imm(64)), Var("R0",Imm(64))), Def(Tid(455, "%000001c7"), - Attrs([Attr("address","0x650"), Attr("insn","ldr x1, [sp]")]), - Var("R1",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(461, "%000001cd"), Attrs([Attr("address","0x654"), -Attr("insn","add x2, sp, #0x8")]), Var("R2",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(8,64))), Def(Tid(467, "%000001d3"), - Attrs([Attr("address","0x658"), Attr("insn","mov x6, sp")]), - Var("R6",Imm(64)), Var("R31",Imm(64))), Def(Tid(472, "%000001d8"), - Attrs([Attr("address","0x65C"), Attr("insn","adrp x0, #65536")]), - Var("R0",Imm(64)), Int(65536,64)), Def(Tid(479, "%000001df"), - Attrs([Attr("address","0x660"), Attr("insn","ldr x0, [x0, #0xfd8]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(4056,64)),LittleEndian(),64)), -Def(Tid(484, "%000001e4"), Attrs([Attr("address","0x664"), -Attr("insn","mov x3, #0x0")]), Var("R3",Imm(64)), Int(0,64)), -Def(Tid(489, "%000001e9"), Attrs([Attr("address","0x668"), -Attr("insn","mov x4, #0x0")]), Var("R4",Imm(64)), Int(0,64)), -Def(Tid(494, "%000001ee"), Attrs([Attr("address","0x66C"), -Attr("insn","bl #-0x7c")]), Var("R30",Imm(64)), Int(1648,64))]), -Jmps([Call(Tid(497, "%000001f1"), Attrs([Attr("address","0x66C"), -Attr("insn","bl #-0x7c")]), Int(1,1), -(Direct(Tid(1_437, "@__libc_start_main")),Direct(Tid(499, "%000001f3"))))])), -Blk(Tid(499, "%000001f3"), Attrs([Attr("address","0x670")]), Phis([]), -Defs([Def(Tid(502, "%000001f6"), Attrs([Attr("address","0x670"), -Attr("insn","bl #-0x50")]), Var("R30",Imm(64)), Int(1652,64))]), -Jmps([Call(Tid(505, "%000001f9"), Attrs([Attr("address","0x670"), -Attr("insn","bl #-0x50")]), Int(1,1), -(Direct(Tid(1_443, "@abort")),Direct(Tid(1_477, "%000005c5"))))])), -Blk(Tid(1_477, "%000005c5"), Attrs([]), Phis([]), Defs([]), -Jmps([Call(Tid(1_478, "%000005c6"), Attrs([]), Int(1,1), -(Direct(Tid(1_444, "@call_weak_fn")),))]))])), Sub(Tid(1_443, "@abort"), - Attrs([Attr("noreturn","()"), Attr("c.proto","void (*)(void)"), -Attr("address","0x620"), Attr("stub","()")]), "abort", Args([]), -Blks([Blk(Tid(503, "@abort"), Attrs([Attr("address","0x620")]), Phis([]), -Defs([Def(Tid(1_235, "%000004d3"), Attrs([Attr("address","0x620"), -Attr("insn","adrp x16, #69632")]), Var("R16",Imm(64)), Int(69632,64)), -Def(Tid(1_242, "%000004da"), Attrs([Attr("address","0x624"), -Attr("insn","ldr x17, [x16, #0x18]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(24,64)),LittleEndian(),64)), -Def(Tid(1_248, "%000004e0"), Attrs([Attr("address","0x628"), -Attr("insn","add x16, x16, #0x18")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(24,64)))]), Jmps([Call(Tid(1_253, "%000004e5"), - Attrs([Attr("address","0x62C"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), Sub(Tid(1_444, "@call_weak_fn"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x674")]), - "call_weak_fn", Args([Arg(Tid(1_495, "%000005d7"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("call_weak_fn_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(507, "@call_weak_fn"), - Attrs([Attr("address","0x674")]), Phis([]), Defs([Def(Tid(510, "%000001fe"), - Attrs([Attr("address","0x674"), Attr("insn","adrp x0, #65536")]), - Var("R0",Imm(64)), Int(65536,64)), Def(Tid(517, "%00000205"), - Attrs([Attr("address","0x678"), Attr("insn","ldr x0, [x0, #0xfc8]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(4040,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(523, "%0000020b"), Attrs([Attr("address","0x67C"), -Attr("insn","cbz x0, #0x8")]), EQ(Var("R0",Imm(64)),Int(0,64)), -Direct(Tid(521, "%00000209"))), Goto(Tid(1_479, "%000005c7"), Attrs([]), - Int(1,1), Direct(Tid(1_007, "%000003ef")))])), Blk(Tid(521, "%00000209"), - Attrs([Attr("address","0x684")]), Phis([]), Defs([]), -Jmps([Call(Tid(529, "%00000211"), Attrs([Attr("address","0x684"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))])), -Blk(Tid(1_007, "%000003ef"), Attrs([Attr("address","0x680")]), Phis([]), -Defs([]), Jmps([Goto(Tid(1_010, "%000003f2"), Attrs([Attr("address","0x680"), -Attr("insn","b #-0x70")]), Int(1,1), -Direct(Tid(1_008, "@__gmon_start__")))])), Blk(Tid(1_008, "@__gmon_start__"), - Attrs([Attr("address","0x610")]), Phis([]), -Defs([Def(Tid(1_213, "%000004bd"), Attrs([Attr("address","0x610"), -Attr("insn","adrp x16, #69632")]), Var("R16",Imm(64)), Int(69632,64)), -Def(Tid(1_220, "%000004c4"), Attrs([Attr("address","0x614"), -Attr("insn","ldr x17, [x16, #0x10]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(16,64)),LittleEndian(),64)), -Def(Tid(1_226, "%000004ca"), Attrs([Attr("address","0x618"), -Attr("insn","add x16, x16, #0x10")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(16,64)))]), Jmps([Call(Tid(1_231, "%000004cf"), - Attrs([Attr("address","0x61C"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), -Sub(Tid(1_446, "@deregister_tm_clones"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x690")]), - "deregister_tm_clones", Args([Arg(Tid(1_496, "%000005d8"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("deregister_tm_clones_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(535, "@deregister_tm_clones"), - Attrs([Attr("address","0x690")]), Phis([]), Defs([Def(Tid(538, "%0000021a"), - Attrs([Attr("address","0x690"), Attr("insn","adrp x0, #69632")]), - Var("R0",Imm(64)), Int(69632,64)), Def(Tid(544, "%00000220"), - Attrs([Attr("address","0x694"), Attr("insn","add x0, x0, #0x30")]), - Var("R0",Imm(64)), PLUS(Var("R0",Imm(64)),Int(48,64))), -Def(Tid(549, "%00000225"), Attrs([Attr("address","0x698"), -Attr("insn","adrp x1, #69632")]), Var("R1",Imm(64)), Int(69632,64)), -Def(Tid(555, "%0000022b"), Attrs([Attr("address","0x69C"), -Attr("insn","add x1, x1, #0x30")]), Var("R1",Imm(64)), -PLUS(Var("R1",Imm(64)),Int(48,64))), Def(Tid(561, "%00000231"), - Attrs([Attr("address","0x6A0"), Attr("insn","cmp x1, x0")]), - Var("#1",Imm(64)), NOT(Var("R0",Imm(64)))), Def(Tid(566, "%00000236"), - Attrs([Attr("address","0x6A0"), Attr("insn","cmp x1, x0")]), - Var("#2",Imm(64)), PLUS(Var("R1",Imm(64)),NOT(Var("R0",Imm(64))))), -Def(Tid(572, "%0000023c"), Attrs([Attr("address","0x6A0"), -Attr("insn","cmp x1, x0")]), Var("VF",Imm(1)), -NEQ(SIGNED(65,PLUS(Var("#2",Imm(64)),Int(1,64))),PLUS(PLUS(SIGNED(65,Var("R1",Imm(64))),SIGNED(65,Var("#1",Imm(64)))),Int(1,65)))), -Def(Tid(578, "%00000242"), Attrs([Attr("address","0x6A0"), -Attr("insn","cmp x1, x0")]), Var("CF",Imm(1)), -NEQ(UNSIGNED(65,PLUS(Var("#2",Imm(64)),Int(1,64))),PLUS(PLUS(UNSIGNED(65,Var("R1",Imm(64))),UNSIGNED(65,Var("#1",Imm(64)))),Int(1,65)))), -Def(Tid(582, "%00000246"), Attrs([Attr("address","0x6A0"), -Attr("insn","cmp x1, x0")]), Var("ZF",Imm(1)), -EQ(PLUS(Var("#2",Imm(64)),Int(1,64)),Int(0,64))), Def(Tid(586, "%0000024a"), - Attrs([Attr("address","0x6A0"), Attr("insn","cmp x1, x0")]), - Var("NF",Imm(1)), Extract(63,63,PLUS(Var("#2",Imm(64)),Int(1,64))))]), -Jmps([Goto(Tid(592, "%00000250"), Attrs([Attr("address","0x6A4"), -Attr("insn","b.eq #0x18")]), EQ(Var("ZF",Imm(1)),Int(1,1)), -Direct(Tid(590, "%0000024e"))), Goto(Tid(1_480, "%000005c8"), Attrs([]), - Int(1,1), Direct(Tid(977, "%000003d1")))])), Blk(Tid(977, "%000003d1"), - Attrs([Attr("address","0x6A8")]), Phis([]), Defs([Def(Tid(980, "%000003d4"), - Attrs([Attr("address","0x6A8"), Attr("insn","adrp x1, #65536")]), - Var("R1",Imm(64)), Int(65536,64)), Def(Tid(987, "%000003db"), - Attrs([Attr("address","0x6AC"), Attr("insn","ldr x1, [x1, #0xfb0]")]), - Var("R1",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R1",Imm(64)),Int(4016,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(992, "%000003e0"), Attrs([Attr("address","0x6B0"), -Attr("insn","cbz x1, #0xc")]), EQ(Var("R1",Imm(64)),Int(0,64)), -Direct(Tid(590, "%0000024e"))), Goto(Tid(1_481, "%000005c9"), Attrs([]), - Int(1,1), Direct(Tid(996, "%000003e4")))])), Blk(Tid(590, "%0000024e"), - Attrs([Attr("address","0x6BC")]), Phis([]), Defs([]), -Jmps([Call(Tid(598, "%00000256"), Attrs([Attr("address","0x6BC"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))])), -Blk(Tid(996, "%000003e4"), Attrs([Attr("address","0x6B4")]), Phis([]), -Defs([Def(Tid(1_000, "%000003e8"), Attrs([Attr("address","0x6B4"), -Attr("insn","mov x16, x1")]), Var("R16",Imm(64)), Var("R1",Imm(64)))]), -Jmps([Call(Tid(1_005, "%000003ed"), Attrs([Attr("address","0x6B8"), -Attr("insn","br x16")]), Int(1,1), (Indirect(Var("R16",Imm(64))),))]))])), -Sub(Tid(1_449, "@frame_dummy"), Attrs([Attr("c.proto","signed (*)(void)"), -Attr("address","0x750")]), "frame_dummy", Args([Arg(Tid(1_497, "%000005d9"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("frame_dummy_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(750, "@frame_dummy"), - Attrs([Attr("address","0x750")]), Phis([]), Defs([]), -Jmps([Call(Tid(752, "%000002f0"), Attrs([Attr("address","0x750"), -Attr("insn","b #-0x90")]), Int(1,1), -(Direct(Tid(1_451, "@register_tm_clones")),))]))])), Sub(Tid(1_450, "@main"), - Attrs([Attr("c.proto","signed (*)(signed argc, const char** argv)"), -Attr("address","0x75C")]), "main", Args([Arg(Tid(1_498, "%000005da"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("main_argc",Imm(32)), -LOW(32,Var("R0",Imm(64))), In()), Arg(Tid(1_499, "%000005db"), - Attrs([Attr("c.layout","**[char : 8]"), Attr("c.data","Top:u8 ptr ptr"), -Attr("c.type"," const char**")]), Var("main_argv",Imm(64)), -Var("R1",Imm(64)), Both()), Arg(Tid(1_500, "%000005dc"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("main_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(764, "@main"), - Attrs([Attr("address","0x75C")]), Phis([]), Defs([Def(Tid(768, "%00000300"), - Attrs([Attr("address","0x75C"), Attr("insn","sub sp, sp, #0x20")]), - Var("R31",Imm(64)), PLUS(Var("R31",Imm(64)),Int(18446744073709551584,64))), -Def(Tid(774, "%00000306"), Attrs([Attr("address","0x760"), -Attr("insn","stp x29, x30, [sp, #0x10]")]), Var("#4",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(16,64))), Def(Tid(780, "%0000030c"), - Attrs([Attr("address","0x760"), Attr("insn","stp x29, x30, [sp, #0x10]")]), - Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("#4",Imm(64)),Var("R29",Imm(64)),LittleEndian(),64)), -Def(Tid(786, "%00000312"), Attrs([Attr("address","0x760"), -Attr("insn","stp x29, x30, [sp, #0x10]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("#4",Imm(64)),Int(8,64)),Var("R30",Imm(64)),LittleEndian(),64)), -Def(Tid(792, "%00000318"), Attrs([Attr("address","0x764"), -Attr("insn","add x29, sp, #0x10")]), Var("R29",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(16,64))), Def(Tid(800, "%00000320"), - Attrs([Attr("address","0x768"), Attr("insn","stur w0, [x29, #-0x4]")]), - Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R29",Imm(64)),Int(18446744073709551612,64)),Extract(31,0,Var("R0",Imm(64))),LittleEndian(),32)), -Def(Tid(805, "%00000325"), Attrs([Attr("address","0x76C"), -Attr("insn","bl #-0x18")]), Var("R30",Imm(64)), Int(1904,64))]), -Jmps([Call(Tid(807, "%00000327"), Attrs([Attr("address","0x76C"), -Attr("insn","bl #-0x18")]), Int(1,1), -(Direct(Tid(1_454, "@zero")),Direct(Tid(809, "%00000329"))))])), -Blk(Tid(809, "%00000329"), Attrs([Attr("address","0x770")]), Phis([]), -Defs([Def(Tid(812, "%0000032c"), Attrs([Attr("address","0x770"), -Attr("insn","adrp x8, #65536")]), Var("R8",Imm(64)), Int(65536,64)), -Def(Tid(819, "%00000333"), Attrs([Attr("address","0x774"), -Attr("insn","ldr x8, [x8, #0xfc0]")]), Var("R8",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R8",Imm(64)),Int(4032,64)),LittleEndian(),64)), -Def(Tid(827, "%0000033b"), Attrs([Attr("address","0x778"), -Attr("insn","str w0, [x8]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("R8",Imm(64)),Extract(31,0,Var("R0",Imm(64))),LittleEndian(),32)), -Def(Tid(834, "%00000342"), Attrs([Attr("address","0x77C"), -Attr("insn","ldur w8, [x29, #-0x4]")]), Var("R8",Imm(64)), -UNSIGNED(64,Load(Var("mem",Mem(64,8)),PLUS(Var("R29",Imm(64)),Int(18446744073709551612,64)),LittleEndian(),32))), -Def(Tid(839, "%00000347"), Attrs([Attr("address","0x780"), -Attr("insn","adrp x9, #65536")]), Var("R9",Imm(64)), Int(65536,64)), -Def(Tid(846, "%0000034e"), Attrs([Attr("address","0x784"), -Attr("insn","ldr x9, [x9, #0xfd0]")]), Var("R9",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R9",Imm(64)),Int(4048,64)),LittleEndian(),64)), -Def(Tid(854, "%00000356"), Attrs([Attr("address","0x788"), -Attr("insn","str w8, [x9]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("R9",Imm(64)),Extract(31,0,Var("R8",Imm(64))),LittleEndian(),32)), -Def(Tid(859, "%0000035b"), Attrs([Attr("address","0x78C"), -Attr("insn","mov w0, wzr")]), Var("R0",Imm(64)), Int(0,64)), -Def(Tid(865, "%00000361"), Attrs([Attr("address","0x790"), -Attr("insn","ldp x29, x30, [sp, #0x10]")]), Var("#5",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(16,64))), Def(Tid(870, "%00000366"), - Attrs([Attr("address","0x790"), Attr("insn","ldp x29, x30, [sp, #0x10]")]), - Var("R29",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("#5",Imm(64)),LittleEndian(),64)), -Def(Tid(875, "%0000036b"), Attrs([Attr("address","0x790"), -Attr("insn","ldp x29, x30, [sp, #0x10]")]), Var("R30",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("#5",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(881, "%00000371"), Attrs([Attr("address","0x794"), -Attr("insn","add sp, sp, #0x20")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(32,64)))]), Jmps([Call(Tid(886, "%00000376"), - Attrs([Attr("address","0x798"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), -Sub(Tid(1_451, "@register_tm_clones"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x6C0")]), - "register_tm_clones", Args([Arg(Tid(1_501, "%000005dd"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("register_tm_clones_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(600, "@register_tm_clones"), Attrs([Attr("address","0x6C0")]), - Phis([]), Defs([Def(Tid(603, "%0000025b"), Attrs([Attr("address","0x6C0"), -Attr("insn","adrp x0, #69632")]), Var("R0",Imm(64)), Int(69632,64)), -Def(Tid(609, "%00000261"), Attrs([Attr("address","0x6C4"), -Attr("insn","add x0, x0, #0x30")]), Var("R0",Imm(64)), -PLUS(Var("R0",Imm(64)),Int(48,64))), Def(Tid(614, "%00000266"), - Attrs([Attr("address","0x6C8"), Attr("insn","adrp x1, #69632")]), - Var("R1",Imm(64)), Int(69632,64)), Def(Tid(620, "%0000026c"), - Attrs([Attr("address","0x6CC"), Attr("insn","add x1, x1, #0x30")]), - Var("R1",Imm(64)), PLUS(Var("R1",Imm(64)),Int(48,64))), -Def(Tid(627, "%00000273"), Attrs([Attr("address","0x6D0"), -Attr("insn","sub x1, x1, x0")]), Var("R1",Imm(64)), -PLUS(PLUS(Var("R1",Imm(64)),NOT(Var("R0",Imm(64)))),Int(1,64))), -Def(Tid(633, "%00000279"), Attrs([Attr("address","0x6D4"), -Attr("insn","lsr x2, x1, #63")]), Var("R2",Imm(64)), -Concat(Int(0,63),Extract(63,63,Var("R1",Imm(64))))), -Def(Tid(640, "%00000280"), Attrs([Attr("address","0x6D8"), -Attr("insn","add x1, x2, x1, asr #3")]), Var("R1",Imm(64)), -PLUS(Var("R2",Imm(64)),ARSHIFT(Var("R1",Imm(64)),Int(3,3)))), -Def(Tid(646, "%00000286"), Attrs([Attr("address","0x6DC"), -Attr("insn","asr x1, x1, #1")]), Var("R1",Imm(64)), -SIGNED(64,Extract(63,1,Var("R1",Imm(64)))))]), -Jmps([Goto(Tid(652, "%0000028c"), Attrs([Attr("address","0x6E0"), -Attr("insn","cbz x1, #0x18")]), EQ(Var("R1",Imm(64)),Int(0,64)), -Direct(Tid(650, "%0000028a"))), Goto(Tid(1_482, "%000005ca"), Attrs([]), - Int(1,1), Direct(Tid(947, "%000003b3")))])), Blk(Tid(947, "%000003b3"), - Attrs([Attr("address","0x6E4")]), Phis([]), Defs([Def(Tid(950, "%000003b6"), - Attrs([Attr("address","0x6E4"), Attr("insn","adrp x2, #65536")]), - Var("R2",Imm(64)), Int(65536,64)), Def(Tid(957, "%000003bd"), - Attrs([Attr("address","0x6E8"), Attr("insn","ldr x2, [x2, #0xfe0]")]), - Var("R2",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R2",Imm(64)),Int(4064,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(962, "%000003c2"), Attrs([Attr("address","0x6EC"), -Attr("insn","cbz x2, #0xc")]), EQ(Var("R2",Imm(64)),Int(0,64)), -Direct(Tid(650, "%0000028a"))), Goto(Tid(1_483, "%000005cb"), Attrs([]), - Int(1,1), Direct(Tid(966, "%000003c6")))])), Blk(Tid(650, "%0000028a"), - Attrs([Attr("address","0x6F8")]), Phis([]), Defs([]), -Jmps([Call(Tid(658, "%00000292"), Attrs([Attr("address","0x6F8"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))])), -Blk(Tid(966, "%000003c6"), Attrs([Attr("address","0x6F0")]), Phis([]), -Defs([Def(Tid(970, "%000003ca"), Attrs([Attr("address","0x6F0"), -Attr("insn","mov x16, x2")]), Var("R16",Imm(64)), Var("R2",Imm(64)))]), -Jmps([Call(Tid(975, "%000003cf"), Attrs([Attr("address","0x6F4"), -Attr("insn","br x16")]), Int(1,1), (Indirect(Var("R16",Imm(64))),))]))])), -Sub(Tid(1_454, "@zero"), Attrs([Attr("c.proto","signed (*)(void)"), -Attr("address","0x754")]), "zero", Args([Arg(Tid(1_502, "%000005de"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("zero_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(754, "@zero"), - Attrs([Attr("address","0x754")]), Phis([]), Defs([Def(Tid(757, "%000002f5"), - Attrs([Attr("address","0x754"), Attr("insn","mov w0, wzr")]), - Var("R0",Imm(64)), Int(0,64))]), Jmps([Call(Tid(762, "%000002fa"), - Attrs([Attr("address","0x758"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))]))]))) \ No newline at end of file diff --git a/src/test/correct/basic_function_call_caller/clang_pic/basic_function_call_caller.bir b/src/test/correct/basic_function_call_caller/clang_pic/basic_function_call_caller.bir deleted file mode 100644 index 3bd539ebe..000000000 --- a/src/test/correct/basic_function_call_caller/clang_pic/basic_function_call_caller.bir +++ /dev/null @@ -1,252 +0,0 @@ -000005cc: program -00000598: sub __cxa_finalize(__cxa_finalize_result) -000005cd: __cxa_finalize_result :: out u32 = low:32[R0] - -000003af: -000004a7: R16 := 0x11000 -000004ae: R17 := mem[R16 + 8, el]:u64 -000004b4: R16 := R16 + 8 -000004b9: call R17 with noreturn - -00000599: sub __do_global_dtors_aux(__do_global_dtors_aux_result) -000005ce: __do_global_dtors_aux_result :: out u32 = low:32[R0] - -00000296: -0000029a: #3 := R31 - 0x20 -000002a0: mem := mem with [#3, el]:u64 <- R29 -000002a6: mem := mem with [#3 + 8, el]:u64 <- R30 -000002aa: R31 := #3 -000002b0: R29 := R31 -000002b8: mem := mem with [R31 + 0x10, el]:u64 <- R19 -000002bd: R19 := 0x11000 -000002c4: R0 := pad:64[mem[R19 + 0x30]] -000002cb: when 31:0[R0] <> 0 goto %000002c9 -000005c2: goto %00000378 - -00000378: -0000037b: R0 := 0x10000 -00000382: R0 := mem[R0 + 0xFB8, el]:u64 -00000388: when R0 = 0 goto %00000386 -000005c3: goto %0000039f - -0000039f: -000003a2: R0 := 0x11000 -000003a9: R0 := mem[R0 + 0x28, el]:u64 -000003ae: R30 := 0x730 -000003b1: call @__cxa_finalize with return %00000386 - -00000386: -0000038e: R30 := 0x734 -00000390: call @deregister_tm_clones with return %00000392 - -00000392: -00000395: R0 := 1 -0000039d: mem := mem with [R19 + 0x30] <- 7:0[R0] -000005c4: goto %000002c9 - -000002c9: -000002d3: R19 := mem[R31 + 0x10, el]:u64 -000002da: R29 := mem[R31, el]:u64 -000002df: R30 := mem[R31 + 8, el]:u64 -000002e3: R31 := R31 + 0x20 -000002e8: call R30 with noreturn - -0000059d: sub __libc_start_main(__libc_start_main_main, __libc_start_main_arg2, __libc_start_main_arg3, __libc_start_main_auxv, __libc_start_main_result) -000005cf: __libc_start_main_main :: in u64 = R0 -000005d0: __libc_start_main_arg2 :: in u32 = low:32[R1] -000005d1: __libc_start_main_arg3 :: in out u64 = R2 -000005d2: __libc_start_main_auxv :: in out u64 = R3 -000005d3: __libc_start_main_result :: out u32 = low:32[R0] - -000001ef: -00000491: R16 := 0x11000 -00000498: R17 := mem[R16, el]:u64 -0000049e: R16 := R16 -000004a3: call R17 with noreturn - -0000059e: sub _fini(_fini_result) -000005d4: _fini_result :: out u32 = low:32[R0] - -0000001f: -00000025: #0 := R31 - 0x10 -0000002b: mem := mem with [#0, el]:u64 <- R29 -00000031: mem := mem with [#0 + 8, el]:u64 <- R30 -00000035: R31 := #0 -0000003b: R29 := R31 -00000042: R29 := mem[R31, el]:u64 -00000047: R30 := mem[R31 + 8, el]:u64 -0000004b: R31 := R31 + 0x10 -00000050: call R30 with noreturn - -0000059f: sub _init(_init_result) -000005d5: _init_result :: out u32 = low:32[R0] - -00000501: -00000507: #7 := R31 - 0x10 -0000050d: mem := mem with [#7, el]:u64 <- R29 -00000513: mem := mem with [#7 + 8, el]:u64 <- R30 -00000517: R31 := #7 -0000051d: R29 := R31 -00000522: R30 := 0x5C0 -00000524: call @call_weak_fn with return %00000526 - -00000526: -0000052b: R29 := mem[R31, el]:u64 -00000530: R30 := mem[R31 + 8, el]:u64 -00000534: R31 := R31 + 0x10 -00000539: call R30 with noreturn - -000005a0: sub _start(_start_result) -000005d6: _start_result :: out u32 = low:32[R0] - -000001b0: -000001b5: R29 := 0 -000001ba: R30 := 0 -000001c0: R5 := R0 -000001c7: R1 := mem[R31, el]:u64 -000001cd: R2 := R31 + 8 -000001d3: R6 := R31 -000001d8: R0 := 0x10000 -000001df: R0 := mem[R0 + 0xFD8, el]:u64 -000001e4: R3 := 0 -000001e9: R4 := 0 -000001ee: R30 := 0x670 -000001f1: call @__libc_start_main with return %000001f3 - -000001f3: -000001f6: R30 := 0x674 -000001f9: call @abort with return %000005c5 - -000005c5: -000005c6: call @call_weak_fn with noreturn - -000005a3: sub abort() - - -000001f7: -000004d3: R16 := 0x11000 -000004da: R17 := mem[R16 + 0x18, el]:u64 -000004e0: R16 := R16 + 0x18 -000004e5: call R17 with noreturn - -000005a4: sub call_weak_fn(call_weak_fn_result) -000005d7: call_weak_fn_result :: out u32 = low:32[R0] - -000001fb: -000001fe: R0 := 0x10000 -00000205: R0 := mem[R0 + 0xFC8, el]:u64 -0000020b: when R0 = 0 goto %00000209 -000005c7: goto %000003ef - -00000209: -00000211: call R30 with noreturn - -000003ef: -000003f2: goto @__gmon_start__ - -000003f0: -000004bd: R16 := 0x11000 -000004c4: R17 := mem[R16 + 0x10, el]:u64 -000004ca: R16 := R16 + 0x10 -000004cf: call R17 with noreturn - -000005a6: sub deregister_tm_clones(deregister_tm_clones_result) -000005d8: deregister_tm_clones_result :: out u32 = low:32[R0] - -00000217: -0000021a: R0 := 0x11000 -00000220: R0 := R0 + 0x30 -00000225: R1 := 0x11000 -0000022b: R1 := R1 + 0x30 -00000231: #1 := ~R0 -00000236: #2 := R1 + ~R0 -0000023c: VF := extend:65[#2 + 1] <> extend:65[R1] + extend:65[#1] + 1 -00000242: CF := pad:65[#2 + 1] <> pad:65[R1] + pad:65[#1] + 1 -00000246: ZF := #2 + 1 = 0 -0000024a: NF := 63:63[#2 + 1] -00000250: when ZF goto %0000024e -000005c8: goto %000003d1 - -000003d1: -000003d4: R1 := 0x10000 -000003db: R1 := mem[R1 + 0xFB0, el]:u64 -000003e0: when R1 = 0 goto %0000024e -000005c9: goto %000003e4 - -0000024e: -00000256: call R30 with noreturn - -000003e4: -000003e8: R16 := R1 -000003ed: call R16 with noreturn - -000005a9: sub frame_dummy(frame_dummy_result) -000005d9: frame_dummy_result :: out u32 = low:32[R0] - -000002ee: -000002f0: call @register_tm_clones with noreturn - -000005aa: sub main(main_argc, main_argv, main_result) -000005da: main_argc :: in u32 = low:32[R0] -000005db: main_argv :: in out u64 = R1 -000005dc: main_result :: out u32 = low:32[R0] - -000002fc: -00000300: R31 := R31 - 0x20 -00000306: #4 := R31 + 0x10 -0000030c: mem := mem with [#4, el]:u64 <- R29 -00000312: mem := mem with [#4 + 8, el]:u64 <- R30 -00000318: R29 := R31 + 0x10 -00000320: mem := mem with [R29 - 4, el]:u32 <- 31:0[R0] -00000325: R30 := 0x770 -00000327: call @zero with return %00000329 - -00000329: -0000032c: R8 := 0x10000 -00000333: R8 := mem[R8 + 0xFC0, el]:u64 -0000033b: mem := mem with [R8, el]:u32 <- 31:0[R0] -00000342: R8 := pad:64[mem[R29 - 4, el]:u32] -00000347: R9 := 0x10000 -0000034e: R9 := mem[R9 + 0xFD0, el]:u64 -00000356: mem := mem with [R9, el]:u32 <- 31:0[R8] -0000035b: R0 := 0 -00000361: #5 := R31 + 0x10 -00000366: R29 := mem[#5, el]:u64 -0000036b: R30 := mem[#5 + 8, el]:u64 -00000371: R31 := R31 + 0x20 -00000376: call R30 with noreturn - -000005ab: sub register_tm_clones(register_tm_clones_result) -000005dd: register_tm_clones_result :: out u32 = low:32[R0] - -00000258: -0000025b: R0 := 0x11000 -00000261: R0 := R0 + 0x30 -00000266: R1 := 0x11000 -0000026c: R1 := R1 + 0x30 -00000273: R1 := R1 + ~R0 + 1 -00000279: R2 := 0.63:63[R1] -00000280: R1 := R2 + (R1 ~>> 3) -00000286: R1 := extend:64[63:1[R1]] -0000028c: when R1 = 0 goto %0000028a -000005ca: goto %000003b3 - -000003b3: -000003b6: R2 := 0x10000 -000003bd: R2 := mem[R2 + 0xFE0, el]:u64 -000003c2: when R2 = 0 goto %0000028a -000005cb: goto %000003c6 - -0000028a: -00000292: call R30 with noreturn - -000003c6: -000003ca: R16 := R2 -000003cf: call R16 with noreturn - -000005ae: sub zero(zero_result) -000005de: zero_result :: out u32 = low:32[R0] - -000002f2: -000002f5: R0 := 0 -000002fa: call R30 with noreturn diff --git a/src/test/correct/basic_function_call_caller/clang_pic/basic_function_call_caller.expected b/src/test/correct/basic_function_call_caller/clang_pic/basic_function_call_caller.expected index 32b7bb1be..f080e06d5 100644 --- a/src/test/correct/basic_function_call_caller/clang_pic/basic_function_call_caller.expected +++ b/src/test/correct/basic_function_call_caller/clang_pic/basic_function_call_caller.expected @@ -1,23 +1,17 @@ var {:extern} Gamma_R0: bool; -var {:extern} Gamma_R29: bool; -var {:extern} Gamma_R30: bool; -var {:extern} Gamma_R31: bool; +var {:extern} Gamma_R10: bool; var {:extern} Gamma_R8: bool; var {:extern} Gamma_R9: bool; var {:extern} Gamma_mem: [bv64]bool; -var {:extern} Gamma_stack: [bv64]bool; var {:extern} R0: bv64; -var {:extern} R29: bv64; -var {:extern} R30: bv64; -var {:extern} R31: bv64; +var {:extern} R10: bv64; var {:extern} R8: bv64; var {:extern} R9: bv64; var {:extern} mem: [bv64]bv8; -var {:extern} stack: [bv64]bv8; const {:extern} $x_addr: bv64; -axiom ($x_addr == 69684bv64); +axiom ($x_addr == 131092bv64); const {:extern} $y_addr: bv64; -axiom ($y_addr == 69688bv64); +axiom ($y_addr == 131096bv64); function {:extern} L(mem$in: [bv64]bv8, index: bv64) returns (bool) { (if (index == $y_addr) then (memory_load32_le(mem$in, $x_addr) == 1bv32) else (if (index == $x_addr) then true else false)) } @@ -35,10 +29,6 @@ function {:extern} gamma_store32(gammaMap: [bv64]bool, index: bv64, value: bool) gammaMap[index := value][bvadd64(index, 1bv64) := value][bvadd64(index, 2bv64) := value][bvadd64(index, 3bv64) := value] } -function {:extern} gamma_store64(gammaMap: [bv64]bool, index: bv64, value: bool) returns ([bv64]bool) { - gammaMap[index := value][bvadd64(index, 1bv64) := value][bvadd64(index, 2bv64) := value][bvadd64(index, 3bv64) := value][bvadd64(index, 4bv64) := value][bvadd64(index, 5bv64) := value][bvadd64(index, 6bv64) := value][bvadd64(index, 7bv64) := value] -} - function {:extern} memory_load32_le(memory: [bv64]bv8, index: bv64) returns (bv32) { (memory[bvadd64(index, 3bv64)] ++ (memory[bvadd64(index, 2bv64)] ++ (memory[bvadd64(index, 1bv64)] ++ memory[index]))) } @@ -51,23 +41,19 @@ function {:extern} memory_store32_le(memory: [bv64]bv8, index: bv64, value: bv32 memory[index := value[8:0]][bvadd64(index, 1bv64) := value[16:8]][bvadd64(index, 2bv64) := value[24:16]][bvadd64(index, 3bv64) := value[32:24]] } -function {:extern} memory_store64_le(memory: [bv64]bv8, index: bv64, value: bv64) returns ([bv64]bv8) { - memory[index := value[8:0]][bvadd64(index, 1bv64) := value[16:8]][bvadd64(index, 2bv64) := value[24:16]][bvadd64(index, 3bv64) := value[32:24]][bvadd64(index, 4bv64) := value[40:32]][bvadd64(index, 5bv64) := value[48:40]][bvadd64(index, 6bv64) := value[56:48]][bvadd64(index, 7bv64) := value[64:56]] -} - function {:extern} {:bvbuiltin "zero_extend 32"} zero_extend32_32(bv32) returns (bv64); procedure {:extern} rely(); modifies Gamma_mem, mem; ensures (forall i: bv64 :: (((mem[i] == old(mem[i])) ==> (Gamma_mem[i] == old(Gamma_mem[i]))))); ensures (memory_load32_le(mem, $x_addr) == old(memory_load32_le(mem, $x_addr))); ensures (memory_load32_le(mem, $y_addr) == old(memory_load32_le(mem, $y_addr))); - free ensures (memory_load32_le(mem, 1968bv64) == 131073bv32); - free ensures (memory_load64_le(mem, 69048bv64) == 1872bv64); - free ensures (memory_load64_le(mem, 69056bv64) == 1792bv64); - free ensures (memory_load64_le(mem, 69568bv64) == 69684bv64); - free ensures (memory_load64_le(mem, 69584bv64) == 69688bv64); - free ensures (memory_load64_le(mem, 69592bv64) == 1884bv64); - free ensures (memory_load64_le(mem, 69672bv64) == 69672bv64); + free ensures (memory_load32_le(mem, 2324bv64) == 131073bv32); + free ensures (memory_load64_le(mem, 130424bv64) == 2256bv64); + free ensures (memory_load64_le(mem, 130432bv64) == 2176bv64); + free ensures (memory_load64_le(mem, 131032bv64) == 131092bv64); + free ensures (memory_load64_le(mem, 131048bv64) == 131096bv64); + free ensures (memory_load64_le(mem, 131056bv64) == 2268bv64); + free ensures (memory_load64_le(mem, 131080bv64) == 131080bv64); procedure {:extern} rely_transitive(); modifies Gamma_mem, mem; @@ -97,131 +83,67 @@ implementation {:extern} guarantee_reflexive() assert (gamma_load32(Gamma_mem, $y_addr) ==> ((memory_load32_le(mem, $x_addr) == 0bv32) || gamma_load32(Gamma_mem, $y_addr))); } -procedure main_1884(); - modifies Gamma_R0, Gamma_R29, Gamma_R30, Gamma_R31, Gamma_R8, Gamma_R9, Gamma_mem, Gamma_stack, R0, R29, R30, R31, R8, R9, mem, stack; +procedure main(); + modifies Gamma_R0, Gamma_R10, Gamma_R8, Gamma_R9, Gamma_mem, R0, R10, R8, R9, mem; requires (Gamma_R0 == false); - free requires (memory_load64_le(mem, 69664bv64) == 0bv64); - free requires (memory_load64_le(mem, 69672bv64) == 69672bv64); - free requires (memory_load32_le(mem, 1968bv64) == 131073bv32); - free requires (memory_load64_le(mem, 69048bv64) == 1872bv64); - free requires (memory_load64_le(mem, 69056bv64) == 1792bv64); - free requires (memory_load64_le(mem, 69568bv64) == 69684bv64); - free requires (memory_load64_le(mem, 69584bv64) == 69688bv64); - free requires (memory_load64_le(mem, 69592bv64) == 1884bv64); - free requires (memory_load64_le(mem, 69672bv64) == 69672bv64); - free ensures (Gamma_R29 == old(Gamma_R29)); - free ensures (Gamma_R31 == old(Gamma_R31)); - free ensures (R29 == old(R29)); - free ensures (R31 == old(R31)); - free ensures (memory_load32_le(mem, 1968bv64) == 131073bv32); - free ensures (memory_load64_le(mem, 69048bv64) == 1872bv64); - free ensures (memory_load64_le(mem, 69056bv64) == 1792bv64); - free ensures (memory_load64_le(mem, 69568bv64) == 69684bv64); - free ensures (memory_load64_le(mem, 69584bv64) == 69688bv64); - free ensures (memory_load64_le(mem, 69592bv64) == 1884bv64); - free ensures (memory_load64_le(mem, 69672bv64) == 69672bv64); - -implementation main_1884() + free requires (memory_load64_le(mem, 131072bv64) == 0bv64); + free requires (memory_load64_le(mem, 131080bv64) == 131080bv64); + free requires (memory_load32_le(mem, 2324bv64) == 131073bv32); + free requires (memory_load64_le(mem, 130424bv64) == 2256bv64); + free requires (memory_load64_le(mem, 130432bv64) == 2176bv64); + free requires (memory_load64_le(mem, 131032bv64) == 131092bv64); + free requires (memory_load64_le(mem, 131048bv64) == 131096bv64); + free requires (memory_load64_le(mem, 131056bv64) == 2268bv64); + free requires (memory_load64_le(mem, 131080bv64) == 131080bv64); + free ensures (memory_load32_le(mem, 2324bv64) == 131073bv32); + free ensures (memory_load64_le(mem, 130424bv64) == 2256bv64); + free ensures (memory_load64_le(mem, 130432bv64) == 2176bv64); + free ensures (memory_load64_le(mem, 131032bv64) == 131092bv64); + free ensures (memory_load64_le(mem, 131048bv64) == 131096bv64); + free ensures (memory_load64_le(mem, 131056bv64) == 2268bv64); + free ensures (memory_load64_le(mem, 131080bv64) == 131080bv64); + +implementation main() { - var #4: bv64; - var #5: bv64; - var Gamma_#4: bool; - var Gamma_#5: bool; - var Gamma_load18: bool; - var Gamma_load19: bool; - var Gamma_load20: bool; - var Gamma_load21: bool; - var Gamma_load22: bool; + var $load$18: bv64; + var $load$19: bv64; + var Gamma_$load$18: bool; + var Gamma_$load$19: bool; var Gamma_y_old: bool; - var load18: bv64; - var load19: bv32; - var load20: bv64; - var load21: bv64; - var load22: bv64; var x_old: bv32; lmain: assume {:captureState "lmain"} true; - R31, Gamma_R31 := bvadd64(R31, 18446744073709551584bv64), Gamma_R31; - #4, Gamma_#4 := bvadd64(R31, 16bv64), Gamma_R31; - stack, Gamma_stack := memory_store64_le(stack, #4, R29), gamma_store64(Gamma_stack, #4, Gamma_R29); - assume {:captureState "%0000030c"} true; - stack, Gamma_stack := memory_store64_le(stack, bvadd64(#4, 8bv64), R30), gamma_store64(Gamma_stack, bvadd64(#4, 8bv64), Gamma_R30); - assume {:captureState "%00000312"} true; - R29, Gamma_R29 := bvadd64(R31, 16bv64), Gamma_R31; - stack, Gamma_stack := memory_store32_le(stack, bvadd64(R29, 18446744073709551612bv64), R0[32:0]), gamma_store32(Gamma_stack, bvadd64(R29, 18446744073709551612bv64), Gamma_R0); - assume {:captureState "%00000320"} true; - R30, Gamma_R30 := 1904bv64, true; - call zero_1876(); - goto l00000329; - l00000329: - assume {:captureState "l00000329"} true; - R8, Gamma_R8 := 65536bv64, true; + R9, Gamma_R9 := 126976bv64, true; + R10, Gamma_R10 := 126976bv64, true; + R8, Gamma_R8 := zero_extend32_32(R0[32:0]), Gamma_R0; call rely(); - load18, Gamma_load18 := memory_load64_le(mem, bvadd64(R8, 4032bv64)), (gamma_load64(Gamma_mem, bvadd64(R8, 4032bv64)) || L(mem, bvadd64(R8, 4032bv64))); - R8, Gamma_R8 := load18, Gamma_load18; + $load$18, Gamma_$load$18 := memory_load64_le(mem, bvadd64(R9, 4056bv64)), (gamma_load64(Gamma_mem, bvadd64(R9, 4056bv64)) || L(mem, bvadd64(R9, 4056bv64))); + R9, Gamma_R9 := $load$18, Gamma_$load$18; call rely(); + $load$19, Gamma_$load$19 := memory_load64_le(mem, bvadd64(R10, 4072bv64)), (gamma_load64(Gamma_mem, bvadd64(R10, 4072bv64)) || L(mem, bvadd64(R10, 4072bv64))); + R10, Gamma_R10 := $load$19, Gamma_$load$19; + R0, Gamma_R0 := 0bv64, true; + call rely(); + assert (L(mem, R9) ==> true); x_old := memory_load32_le(mem, $x_addr); Gamma_y_old := (gamma_load32(Gamma_mem, $y_addr) || L(mem, $y_addr)); - assert (L(mem, R8) ==> Gamma_R0); - mem, Gamma_mem := memory_store32_le(mem, R8, R0[32:0]), gamma_store32(Gamma_mem, R8, Gamma_R0); - assert ((R8 == $x_addr) ==> (L(mem, $y_addr) ==> Gamma_y_old)); + mem, Gamma_mem := memory_store32_le(mem, R9, 0bv32), gamma_store32(Gamma_mem, R9, true); + assert ((R9 == $x_addr) ==> (L(mem, $y_addr) ==> Gamma_y_old)); assert ((x_old == 0bv32) ==> (memory_load32_le(mem, $x_addr) == 0bv32)); assert (Gamma_y_old ==> ((memory_load32_le(mem, $x_addr) == 0bv32) || gamma_load32(Gamma_mem, $y_addr))); - assume {:captureState "%0000033b"} true; - load19, Gamma_load19 := memory_load32_le(stack, bvadd64(R29, 18446744073709551612bv64)), gamma_load32(Gamma_stack, bvadd64(R29, 18446744073709551612bv64)); - R8, Gamma_R8 := zero_extend32_32(load19), Gamma_load19; - R9, Gamma_R9 := 65536bv64, true; - call rely(); - load20, Gamma_load20 := memory_load64_le(mem, bvadd64(R9, 4048bv64)), (gamma_load64(Gamma_mem, bvadd64(R9, 4048bv64)) || L(mem, bvadd64(R9, 4048bv64))); - R9, Gamma_R9 := load20, Gamma_load20; + assume {:captureState "%00000294"} true; call rely(); + assert (L(mem, R10) ==> Gamma_R8); x_old := memory_load32_le(mem, $x_addr); Gamma_y_old := (gamma_load32(Gamma_mem, $y_addr) || L(mem, $y_addr)); - assert (L(mem, R9) ==> Gamma_R8); - mem, Gamma_mem := memory_store32_le(mem, R9, R8[32:0]), gamma_store32(Gamma_mem, R9, Gamma_R8); - assert ((R9 == $x_addr) ==> (L(mem, $y_addr) ==> Gamma_y_old)); + mem, Gamma_mem := memory_store32_le(mem, R10, R8[32:0]), gamma_store32(Gamma_mem, R10, Gamma_R8); + assert ((R10 == $x_addr) ==> (L(mem, $y_addr) ==> Gamma_y_old)); assert ((x_old == 0bv32) ==> (memory_load32_le(mem, $x_addr) == 0bv32)); assert (Gamma_y_old ==> ((memory_load32_le(mem, $x_addr) == 0bv32) || gamma_load32(Gamma_mem, $y_addr))); - assume {:captureState "%00000356"} true; - R0, Gamma_R0 := 0bv64, true; - #5, Gamma_#5 := bvadd64(R31, 16bv64), Gamma_R31; - load21, Gamma_load21 := memory_load64_le(stack, #5), gamma_load64(Gamma_stack, #5); - R29, Gamma_R29 := load21, Gamma_load21; - load22, Gamma_load22 := memory_load64_le(stack, bvadd64(#5, 8bv64)), gamma_load64(Gamma_stack, bvadd64(#5, 8bv64)); - R30, Gamma_R30 := load22, Gamma_load22; - R31, Gamma_R31 := bvadd64(R31, 32bv64), Gamma_R31; - goto main_1884_basil_return; - main_1884_basil_return: - assume {:captureState "main_1884_basil_return"} true; - return; -} - -procedure zero_1876(); - modifies Gamma_R0, R0; - free requires (memory_load32_le(mem, 1968bv64) == 131073bv32); - free requires (memory_load64_le(mem, 69048bv64) == 1872bv64); - free requires (memory_load64_le(mem, 69056bv64) == 1792bv64); - free requires (memory_load64_le(mem, 69568bv64) == 69684bv64); - free requires (memory_load64_le(mem, 69584bv64) == 69688bv64); - free requires (memory_load64_le(mem, 69592bv64) == 1884bv64); - free requires (memory_load64_le(mem, 69672bv64) == 69672bv64); - ensures ((R0[32:0] == 0bv32) && Gamma_R0); - free ensures (memory_load32_le(mem, 1968bv64) == 131073bv32); - free ensures (memory_load64_le(mem, 69048bv64) == 1872bv64); - free ensures (memory_load64_le(mem, 69056bv64) == 1792bv64); - free ensures (memory_load64_le(mem, 69568bv64) == 69684bv64); - free ensures (memory_load64_le(mem, 69584bv64) == 69688bv64); - free ensures (memory_load64_le(mem, 69592bv64) == 1884bv64); - free ensures (memory_load64_le(mem, 69672bv64) == 69672bv64); - -implementation zero_1876() -{ - lzero: - assume {:captureState "lzero"} true; - R0, Gamma_R0 := 0bv64, true; - goto zero_1876_basil_return; - zero_1876_basil_return: - assume {:captureState "zero_1876_basil_return"} true; + assume {:captureState "%00000298"} true; + goto main_basil_return; + main_basil_return: + assume {:captureState "main_basil_return"} true; return; } diff --git a/src/test/correct/basic_function_call_caller/clang_pic/basic_function_call_caller.gts b/src/test/correct/basic_function_call_caller/clang_pic/basic_function_call_caller.gts deleted file mode 100644 index 2a8538e2b..000000000 Binary files a/src/test/correct/basic_function_call_caller/clang_pic/basic_function_call_caller.gts and /dev/null differ diff --git a/src/test/correct/basic_function_call_caller/clang_pic/basic_function_call_caller.md5sum b/src/test/correct/basic_function_call_caller/clang_pic/basic_function_call_caller.md5sum new file mode 100644 index 000000000..a7025da86 --- /dev/null +++ b/src/test/correct/basic_function_call_caller/clang_pic/basic_function_call_caller.md5sum @@ -0,0 +1,5 @@ +fea15c31d44f4b357a7d72d90b821380 correct/basic_function_call_caller/clang_pic/a.out +4cce2513f5463a3b5cd1da2cce4e2127 correct/basic_function_call_caller/clang_pic/basic_function_call_caller.adt +f48b225f8a3e33e4fffc1c98aadd8df1 correct/basic_function_call_caller/clang_pic/basic_function_call_caller.bir +e47ef7dc85531399fc65a68a8000697b correct/basic_function_call_caller/clang_pic/basic_function_call_caller.relf +f0b1ef44db5d9f96e90824c495421b01 correct/basic_function_call_caller/clang_pic/basic_function_call_caller.gts diff --git a/src/test/correct/basic_function_call_caller/clang_pic/basic_function_call_caller.relf b/src/test/correct/basic_function_call_caller/clang_pic/basic_function_call_caller.relf deleted file mode 100644 index ec1df1c29..000000000 --- a/src/test/correct/basic_function_call_caller/clang_pic/basic_function_call_caller.relf +++ /dev/null @@ -1,127 +0,0 @@ - -Relocation section '.rela.dyn' at offset 0x460 contains 10 entries: - Offset Info Type Symbol's Value Symbol's Name + Addend -0000000000010db8 0000000000000403 R_AARCH64_RELATIVE 750 -0000000000010dc0 0000000000000403 R_AARCH64_RELATIVE 700 -0000000000010fc0 0000000000000403 R_AARCH64_RELATIVE 11034 -0000000000010fd0 0000000000000403 R_AARCH64_RELATIVE 11038 -0000000000010fd8 0000000000000403 R_AARCH64_RELATIVE 75c -0000000000011028 0000000000000403 R_AARCH64_RELATIVE 11028 -0000000000010fb0 0000000400000401 R_AARCH64_GLOB_DAT 0000000000000000 _ITM_deregisterTMCloneTable + 0 -0000000000010fb8 0000000500000401 R_AARCH64_GLOB_DAT 0000000000000000 __cxa_finalize@GLIBC_2.17 + 0 -0000000000010fc8 0000000600000401 R_AARCH64_GLOB_DAT 0000000000000000 __gmon_start__ + 0 -0000000000010fe0 0000000800000401 R_AARCH64_GLOB_DAT 0000000000000000 _ITM_registerTMCloneTable + 0 - -Relocation section '.rela.plt' at offset 0x550 contains 4 entries: - Offset Info Type Symbol's Value Symbol's Name + Addend -0000000000011000 0000000300000402 R_AARCH64_JUMP_SLOT 0000000000000000 __libc_start_main@GLIBC_2.34 + 0 -0000000000011008 0000000500000402 R_AARCH64_JUMP_SLOT 0000000000000000 __cxa_finalize@GLIBC_2.17 + 0 -0000000000011010 0000000600000402 R_AARCH64_JUMP_SLOT 0000000000000000 __gmon_start__ + 0 -0000000000011018 0000000700000402 R_AARCH64_JUMP_SLOT 0000000000000000 abort@GLIBC_2.17 + 0 - -Symbol table '.dynsym' contains 9 entries: - Num: Value Size Type Bind Vis Ndx Name - 0: 0000000000000000 0 NOTYPE LOCAL DEFAULT UND - 1: 00000000000005b0 0 SECTION LOCAL DEFAULT 11 .init - 2: 0000000000011020 0 SECTION LOCAL DEFAULT 23 .data - 3: 0000000000000000 0 FUNC GLOBAL DEFAULT UND __libc_start_main@GLIBC_2.34 (2) - 4: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_deregisterTMCloneTable - 5: 0000000000000000 0 FUNC WEAK DEFAULT UND __cxa_finalize@GLIBC_2.17 (3) - 6: 0000000000000000 0 NOTYPE WEAK DEFAULT UND __gmon_start__ - 7: 0000000000000000 0 FUNC GLOBAL DEFAULT UND abort@GLIBC_2.17 (3) - 8: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_registerTMCloneTable - -Symbol table '.symtab' contains 92 entries: - Num: Value Size Type Bind Vis Ndx Name - 0: 0000000000000000 0 NOTYPE LOCAL DEFAULT UND - 1: 0000000000000238 0 SECTION LOCAL DEFAULT 1 .interp - 2: 0000000000000254 0 SECTION LOCAL DEFAULT 2 .note.gnu.build-id - 3: 0000000000000278 0 SECTION LOCAL DEFAULT 3 .note.ABI-tag - 4: 0000000000000298 0 SECTION LOCAL DEFAULT 4 .gnu.hash - 5: 00000000000002b8 0 SECTION LOCAL DEFAULT 5 .dynsym - 6: 0000000000000390 0 SECTION LOCAL DEFAULT 6 .dynstr - 7: 000000000000041e 0 SECTION LOCAL DEFAULT 7 .gnu.version - 8: 0000000000000430 0 SECTION LOCAL DEFAULT 8 .gnu.version_r - 9: 0000000000000460 0 SECTION LOCAL DEFAULT 9 .rela.dyn - 10: 0000000000000550 0 SECTION LOCAL DEFAULT 10 .rela.plt - 11: 00000000000005b0 0 SECTION LOCAL DEFAULT 11 .init - 12: 00000000000005d0 0 SECTION LOCAL DEFAULT 12 .plt - 13: 0000000000000640 0 SECTION LOCAL DEFAULT 13 .text - 14: 000000000000079c 0 SECTION LOCAL DEFAULT 14 .fini - 15: 00000000000007b0 0 SECTION LOCAL DEFAULT 15 .rodata - 16: 00000000000007b4 0 SECTION LOCAL DEFAULT 16 .eh_frame_hdr - 17: 00000000000007f8 0 SECTION LOCAL DEFAULT 17 .eh_frame - 18: 0000000000010db8 0 SECTION LOCAL DEFAULT 18 .init_array - 19: 0000000000010dc0 0 SECTION LOCAL DEFAULT 19 .fini_array - 20: 0000000000010dc8 0 SECTION LOCAL DEFAULT 20 .dynamic - 21: 0000000000010fa8 0 SECTION LOCAL DEFAULT 21 .got - 22: 0000000000010fe8 0 SECTION LOCAL DEFAULT 22 .got.plt - 23: 0000000000011020 0 SECTION LOCAL DEFAULT 23 .data - 24: 0000000000011030 0 SECTION LOCAL DEFAULT 24 .bss - 25: 0000000000000000 0 SECTION LOCAL DEFAULT 25 .comment - 26: 0000000000000000 0 FILE LOCAL DEFAULT ABS Scrt1.o - 27: 0000000000000278 0 NOTYPE LOCAL DEFAULT 3 $d - 28: 0000000000000278 32 OBJECT LOCAL DEFAULT 3 __abi_tag - 29: 0000000000000640 0 NOTYPE LOCAL DEFAULT 13 $x - 30: 000000000000080c 0 NOTYPE LOCAL DEFAULT 17 $d - 31: 00000000000007b0 0 NOTYPE LOCAL DEFAULT 15 $d - 32: 0000000000000000 0 FILE LOCAL DEFAULT ABS crti.o - 33: 0000000000000674 0 NOTYPE LOCAL DEFAULT 13 $x - 34: 0000000000000674 20 FUNC LOCAL DEFAULT 13 call_weak_fn - 35: 00000000000005b0 0 NOTYPE LOCAL DEFAULT 11 $x - 36: 000000000000079c 0 NOTYPE LOCAL DEFAULT 14 $x - 37: 0000000000000000 0 FILE LOCAL DEFAULT ABS crtn.o - 38: 00000000000005c0 0 NOTYPE LOCAL DEFAULT 11 $x - 39: 00000000000007a8 0 NOTYPE LOCAL DEFAULT 14 $x - 40: 0000000000000000 0 FILE LOCAL DEFAULT ABS crtstuff.c - 41: 0000000000000690 0 NOTYPE LOCAL DEFAULT 13 $x - 42: 0000000000000690 0 FUNC LOCAL DEFAULT 13 deregister_tm_clones - 43: 00000000000006c0 0 FUNC LOCAL DEFAULT 13 register_tm_clones - 44: 0000000000011028 0 NOTYPE LOCAL DEFAULT 23 $d - 45: 0000000000000700 0 FUNC LOCAL DEFAULT 13 __do_global_dtors_aux - 46: 0000000000011030 1 OBJECT LOCAL DEFAULT 24 completed.0 - 47: 0000000000010dc0 0 NOTYPE LOCAL DEFAULT 19 $d - 48: 0000000000010dc0 0 OBJECT LOCAL DEFAULT 19 __do_global_dtors_aux_fini_array_entry - 49: 0000000000000750 0 FUNC LOCAL DEFAULT 13 frame_dummy - 50: 0000000000010db8 0 NOTYPE LOCAL DEFAULT 18 $d - 51: 0000000000010db8 0 OBJECT LOCAL DEFAULT 18 __frame_dummy_init_array_entry - 52: 0000000000000820 0 NOTYPE LOCAL DEFAULT 17 $d - 53: 0000000000011030 0 NOTYPE LOCAL DEFAULT 24 $d - 54: 0000000000000000 0 FILE LOCAL DEFAULT ABS basic_function_call_caller.c - 55: 0000000000000754 0 NOTYPE LOCAL DEFAULT 13 $x.0 - 56: 0000000000011034 0 NOTYPE LOCAL DEFAULT 24 $d.1 - 57: 000000000000002a 0 NOTYPE LOCAL DEFAULT 25 $d.2 - 58: 0000000000000880 0 NOTYPE LOCAL DEFAULT 17 $d.3 - 59: 0000000000000000 0 FILE LOCAL DEFAULT ABS crtstuff.c - 60: 00000000000008d0 0 NOTYPE LOCAL DEFAULT 17 $d - 61: 00000000000008d0 0 OBJECT LOCAL DEFAULT 17 __FRAME_END__ - 62: 0000000000000000 0 FILE LOCAL DEFAULT ABS - 63: 0000000000010dc8 0 OBJECT LOCAL DEFAULT ABS _DYNAMIC - 64: 00000000000007b4 0 NOTYPE LOCAL DEFAULT 16 __GNU_EH_FRAME_HDR - 65: 0000000000010fa8 0 OBJECT LOCAL DEFAULT ABS _GLOBAL_OFFSET_TABLE_ - 66: 00000000000005d0 0 NOTYPE LOCAL DEFAULT 12 $x - 67: 0000000000000000 0 FUNC GLOBAL DEFAULT UND __libc_start_main@GLIBC_2.34 - 68: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_deregisterTMCloneTable - 69: 0000000000011020 0 NOTYPE WEAK DEFAULT 23 data_start - 70: 0000000000011030 0 NOTYPE GLOBAL DEFAULT 24 __bss_start__ - 71: 0000000000000000 0 FUNC WEAK DEFAULT UND __cxa_finalize@GLIBC_2.17 - 72: 0000000000011040 0 NOTYPE GLOBAL DEFAULT 24 _bss_end__ - 73: 0000000000011030 0 NOTYPE GLOBAL DEFAULT 23 _edata - 74: 0000000000011034 4 OBJECT GLOBAL DEFAULT 24 x - 75: 000000000000079c 0 FUNC GLOBAL HIDDEN 14 _fini - 76: 0000000000011040 0 NOTYPE GLOBAL DEFAULT 24 __bss_end__ - 77: 0000000000011020 0 NOTYPE GLOBAL DEFAULT 23 __data_start - 78: 0000000000000000 0 NOTYPE WEAK DEFAULT UND __gmon_start__ - 79: 0000000000011028 0 OBJECT GLOBAL HIDDEN 23 __dso_handle - 80: 0000000000000000 0 FUNC GLOBAL DEFAULT UND abort@GLIBC_2.17 - 81: 00000000000007b0 4 OBJECT GLOBAL DEFAULT 15 _IO_stdin_used - 82: 0000000000011040 0 NOTYPE GLOBAL DEFAULT 24 _end - 83: 0000000000000640 52 FUNC GLOBAL DEFAULT 13 _start - 84: 0000000000000754 8 FUNC GLOBAL DEFAULT 13 zero - 85: 0000000000011040 0 NOTYPE GLOBAL DEFAULT 24 __end__ - 86: 0000000000011038 4 OBJECT GLOBAL DEFAULT 24 y - 87: 0000000000011030 0 NOTYPE GLOBAL DEFAULT 24 __bss_start - 88: 000000000000075c 64 FUNC GLOBAL DEFAULT 13 main - 89: 0000000000011030 0 OBJECT GLOBAL HIDDEN 23 __TMC_END__ - 90: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_registerTMCloneTable - 91: 00000000000005b0 0 FUNC GLOBAL HIDDEN 11 _init diff --git a/src/test/correct/basic_function_call_caller/clang_pic/basic_function_call_caller_gtirb.expected b/src/test/correct/basic_function_call_caller/clang_pic/basic_function_call_caller_gtirb.expected index c8ed2cffe..9c0748cea 100644 --- a/src/test/correct/basic_function_call_caller/clang_pic/basic_function_call_caller_gtirb.expected +++ b/src/test/correct/basic_function_call_caller/clang_pic/basic_function_call_caller_gtirb.expected @@ -1,23 +1,17 @@ var {:extern} Gamma_R0: bool; -var {:extern} Gamma_R29: bool; -var {:extern} Gamma_R30: bool; -var {:extern} Gamma_R31: bool; +var {:extern} Gamma_R10: bool; var {:extern} Gamma_R8: bool; var {:extern} Gamma_R9: bool; var {:extern} Gamma_mem: [bv64]bool; -var {:extern} Gamma_stack: [bv64]bool; var {:extern} R0: bv64; -var {:extern} R29: bv64; -var {:extern} R30: bv64; -var {:extern} R31: bv64; +var {:extern} R10: bv64; var {:extern} R8: bv64; var {:extern} R9: bv64; var {:extern} mem: [bv64]bv8; -var {:extern} stack: [bv64]bv8; const {:extern} $x_addr: bv64; -axiom ($x_addr == 69684bv64); +axiom ($x_addr == 131092bv64); const {:extern} $y_addr: bv64; -axiom ($y_addr == 69688bv64); +axiom ($y_addr == 131096bv64); function {:extern} L(mem$in: [bv64]bv8, index: bv64) returns (bool) { (if (index == $y_addr) then (memory_load32_le(mem$in, $x_addr) == 1bv32) else (if (index == $x_addr) then true else false)) } @@ -35,10 +29,6 @@ function {:extern} gamma_store32(gammaMap: [bv64]bool, index: bv64, value: bool) gammaMap[index := value][bvadd64(index, 1bv64) := value][bvadd64(index, 2bv64) := value][bvadd64(index, 3bv64) := value] } -function {:extern} gamma_store64(gammaMap: [bv64]bool, index: bv64, value: bool) returns ([bv64]bool) { - gammaMap[index := value][bvadd64(index, 1bv64) := value][bvadd64(index, 2bv64) := value][bvadd64(index, 3bv64) := value][bvadd64(index, 4bv64) := value][bvadd64(index, 5bv64) := value][bvadd64(index, 6bv64) := value][bvadd64(index, 7bv64) := value] -} - function {:extern} memory_load32_le(memory: [bv64]bv8, index: bv64) returns (bv32) { (memory[bvadd64(index, 3bv64)] ++ (memory[bvadd64(index, 2bv64)] ++ (memory[bvadd64(index, 1bv64)] ++ memory[index]))) } @@ -51,23 +41,19 @@ function {:extern} memory_store32_le(memory: [bv64]bv8, index: bv64, value: bv32 memory[index := value[8:0]][bvadd64(index, 1bv64) := value[16:8]][bvadd64(index, 2bv64) := value[24:16]][bvadd64(index, 3bv64) := value[32:24]] } -function {:extern} memory_store64_le(memory: [bv64]bv8, index: bv64, value: bv64) returns ([bv64]bv8) { - memory[index := value[8:0]][bvadd64(index, 1bv64) := value[16:8]][bvadd64(index, 2bv64) := value[24:16]][bvadd64(index, 3bv64) := value[32:24]][bvadd64(index, 4bv64) := value[40:32]][bvadd64(index, 5bv64) := value[48:40]][bvadd64(index, 6bv64) := value[56:48]][bvadd64(index, 7bv64) := value[64:56]] -} - function {:extern} {:bvbuiltin "zero_extend 32"} zero_extend32_32(bv32) returns (bv64); procedure {:extern} rely(); modifies Gamma_mem, mem; ensures (forall i: bv64 :: (((mem[i] == old(mem[i])) ==> (Gamma_mem[i] == old(Gamma_mem[i]))))); ensures (memory_load32_le(mem, $x_addr) == old(memory_load32_le(mem, $x_addr))); ensures (memory_load32_le(mem, $y_addr) == old(memory_load32_le(mem, $y_addr))); - free ensures (memory_load32_le(mem, 1968bv64) == 131073bv32); - free ensures (memory_load64_le(mem, 69048bv64) == 1872bv64); - free ensures (memory_load64_le(mem, 69056bv64) == 1792bv64); - free ensures (memory_load64_le(mem, 69568bv64) == 69684bv64); - free ensures (memory_load64_le(mem, 69584bv64) == 69688bv64); - free ensures (memory_load64_le(mem, 69592bv64) == 1884bv64); - free ensures (memory_load64_le(mem, 69672bv64) == 69672bv64); + free ensures (memory_load32_le(mem, 2324bv64) == 131073bv32); + free ensures (memory_load64_le(mem, 130424bv64) == 2256bv64); + free ensures (memory_load64_le(mem, 130432bv64) == 2176bv64); + free ensures (memory_load64_le(mem, 131032bv64) == 131092bv64); + free ensures (memory_load64_le(mem, 131048bv64) == 131096bv64); + free ensures (memory_load64_le(mem, 131056bv64) == 2268bv64); + free ensures (memory_load64_le(mem, 131080bv64) == 131080bv64); procedure {:extern} rely_transitive(); modifies Gamma_mem, mem; @@ -97,131 +83,67 @@ implementation {:extern} guarantee_reflexive() assert (gamma_load32(Gamma_mem, $y_addr) ==> ((memory_load32_le(mem, $x_addr) == 0bv32) || gamma_load32(Gamma_mem, $y_addr))); } -procedure zero_1876(); - modifies Gamma_R0, R0; - free requires (memory_load32_le(mem, 1968bv64) == 131073bv32); - free requires (memory_load64_le(mem, 69048bv64) == 1872bv64); - free requires (memory_load64_le(mem, 69056bv64) == 1792bv64); - free requires (memory_load64_le(mem, 69568bv64) == 69684bv64); - free requires (memory_load64_le(mem, 69584bv64) == 69688bv64); - free requires (memory_load64_le(mem, 69592bv64) == 1884bv64); - free requires (memory_load64_le(mem, 69672bv64) == 69672bv64); - ensures ((R0[32:0] == 0bv32) && Gamma_R0); - free ensures (memory_load32_le(mem, 1968bv64) == 131073bv32); - free ensures (memory_load64_le(mem, 69048bv64) == 1872bv64); - free ensures (memory_load64_le(mem, 69056bv64) == 1792bv64); - free ensures (memory_load64_le(mem, 69568bv64) == 69684bv64); - free ensures (memory_load64_le(mem, 69584bv64) == 69688bv64); - free ensures (memory_load64_le(mem, 69592bv64) == 1884bv64); - free ensures (memory_load64_le(mem, 69672bv64) == 69672bv64); - -implementation zero_1876() -{ - zero_1876__0__1fqyj6pOSBuFGojVzGfGVg: - assume {:captureState "zero_1876__0__1fqyj6pOSBuFGojVzGfGVg"} true; - R0, Gamma_R0 := 0bv64, true; - goto zero_1876_basil_return; - zero_1876_basil_return: - assume {:captureState "zero_1876_basil_return"} true; - return; -} - -procedure main_1884(); - modifies Gamma_R0, Gamma_R29, Gamma_R30, Gamma_R31, Gamma_R8, Gamma_R9, Gamma_mem, Gamma_stack, R0, R29, R30, R31, R8, R9, mem, stack; +procedure main(); + modifies Gamma_R0, Gamma_R10, Gamma_R8, Gamma_R9, Gamma_mem, R0, R10, R8, R9, mem; requires (Gamma_R0 == false); - free requires (memory_load64_le(mem, 69664bv64) == 0bv64); - free requires (memory_load64_le(mem, 69672bv64) == 69672bv64); - free requires (memory_load32_le(mem, 1968bv64) == 131073bv32); - free requires (memory_load64_le(mem, 69048bv64) == 1872bv64); - free requires (memory_load64_le(mem, 69056bv64) == 1792bv64); - free requires (memory_load64_le(mem, 69568bv64) == 69684bv64); - free requires (memory_load64_le(mem, 69584bv64) == 69688bv64); - free requires (memory_load64_le(mem, 69592bv64) == 1884bv64); - free requires (memory_load64_le(mem, 69672bv64) == 69672bv64); - free ensures (Gamma_R29 == old(Gamma_R29)); - free ensures (Gamma_R31 == old(Gamma_R31)); - free ensures (R29 == old(R29)); - free ensures (R31 == old(R31)); - free ensures (memory_load32_le(mem, 1968bv64) == 131073bv32); - free ensures (memory_load64_le(mem, 69048bv64) == 1872bv64); - free ensures (memory_load64_le(mem, 69056bv64) == 1792bv64); - free ensures (memory_load64_le(mem, 69568bv64) == 69684bv64); - free ensures (memory_load64_le(mem, 69584bv64) == 69688bv64); - free ensures (memory_load64_le(mem, 69592bv64) == 1884bv64); - free ensures (memory_load64_le(mem, 69672bv64) == 69672bv64); - -implementation main_1884() + free requires (memory_load64_le(mem, 131072bv64) == 0bv64); + free requires (memory_load64_le(mem, 131080bv64) == 131080bv64); + free requires (memory_load32_le(mem, 2324bv64) == 131073bv32); + free requires (memory_load64_le(mem, 130424bv64) == 2256bv64); + free requires (memory_load64_le(mem, 130432bv64) == 2176bv64); + free requires (memory_load64_le(mem, 131032bv64) == 131092bv64); + free requires (memory_load64_le(mem, 131048bv64) == 131096bv64); + free requires (memory_load64_le(mem, 131056bv64) == 2268bv64); + free requires (memory_load64_le(mem, 131080bv64) == 131080bv64); + free ensures (memory_load32_le(mem, 2324bv64) == 131073bv32); + free ensures (memory_load64_le(mem, 130424bv64) == 2256bv64); + free ensures (memory_load64_le(mem, 130432bv64) == 2176bv64); + free ensures (memory_load64_le(mem, 131032bv64) == 131092bv64); + free ensures (memory_load64_le(mem, 131048bv64) == 131096bv64); + free ensures (memory_load64_le(mem, 131056bv64) == 2268bv64); + free ensures (memory_load64_le(mem, 131080bv64) == 131080bv64); + +implementation main() { - var Cse0__5_0_8: bv64; - var Cse0__5_1_1: bv64; - var Gamma_Cse0__5_0_8: bool; - var Gamma_Cse0__5_1_1: bool; - var Gamma_load5: bool; - var Gamma_load6: bool; - var Gamma_load7: bool; - var Gamma_load8: bool; - var Gamma_load9: bool; + var $load8: bv64; + var $load9: bv64; + var Gamma_$load8: bool; + var Gamma_$load9: bool; var Gamma_y_old: bool; - var load5: bv64; - var load6: bv32; - var load7: bv64; - var load8: bv64; - var load9: bv64; var x_old: bv32; - main_1884__0__5CsLNppuR5eqRvmqjx~n_g: - assume {:captureState "main_1884__0__5CsLNppuR5eqRvmqjx~n_g"} true; - R31, Gamma_R31 := bvadd64(R31, 18446744073709551584bv64), Gamma_R31; - Cse0__5_1_1, Gamma_Cse0__5_1_1 := bvadd64(R31, 16bv64), Gamma_R31; - stack, Gamma_stack := memory_store64_le(stack, Cse0__5_1_1, R29), gamma_store64(Gamma_stack, Cse0__5_1_1, Gamma_R29); - assume {:captureState "1888_1"} true; - stack, Gamma_stack := memory_store64_le(stack, bvadd64(Cse0__5_1_1, 8bv64), R30), gamma_store64(Gamma_stack, bvadd64(Cse0__5_1_1, 8bv64), Gamma_R30); - assume {:captureState "1888_2"} true; - R29, Gamma_R29 := bvadd64(R31, 16bv64), Gamma_R31; - stack, Gamma_stack := memory_store32_le(stack, bvadd64(R29, 18446744073709551612bv64), R0[32:0]), gamma_store32(Gamma_stack, bvadd64(R29, 18446744073709551612bv64), Gamma_R0); - assume {:captureState "1896_0"} true; - R30, Gamma_R30 := 1904bv64, true; - call zero_1876(); - goto main_1884__1__kSn83H7yT_uMmQNkg3LR7w; - main_1884__1__kSn83H7yT_uMmQNkg3LR7w: - assume {:captureState "main_1884__1__kSn83H7yT_uMmQNkg3LR7w"} true; - R8, Gamma_R8 := 65536bv64, true; + $main$__0__$TxTRm4kpQiq_Xgistx~xbQ: + assume {:captureState "$main$__0__$TxTRm4kpQiq_Xgistx~xbQ"} true; + R9, Gamma_R9 := 126976bv64, true; + R10, Gamma_R10 := 126976bv64, true; + R8, Gamma_R8 := zero_extend32_32(R0[32:0]), Gamma_R0; + call rely(); + $load8, Gamma_$load8 := memory_load64_le(mem, bvadd64(R9, 4056bv64)), (gamma_load64(Gamma_mem, bvadd64(R9, 4056bv64)) || L(mem, bvadd64(R9, 4056bv64))); + R9, Gamma_R9 := $load8, Gamma_$load8; call rely(); - load5, Gamma_load5 := memory_load64_le(mem, bvadd64(R8, 4032bv64)), (gamma_load64(Gamma_mem, bvadd64(R8, 4032bv64)) || L(mem, bvadd64(R8, 4032bv64))); - R8, Gamma_R8 := load5, Gamma_load5; + $load9, Gamma_$load9 := memory_load64_le(mem, bvadd64(R10, 4072bv64)), (gamma_load64(Gamma_mem, bvadd64(R10, 4072bv64)) || L(mem, bvadd64(R10, 4072bv64))); + R10, Gamma_R10 := $load9, Gamma_$load9; + R0, Gamma_R0 := 0bv64, true; call rely(); + assert (L(mem, R9) ==> true); x_old := memory_load32_le(mem, $x_addr); Gamma_y_old := (gamma_load32(Gamma_mem, $y_addr) || L(mem, $y_addr)); - assert (L(mem, R8) ==> Gamma_R0); - mem, Gamma_mem := memory_store32_le(mem, R8, R0[32:0]), gamma_store32(Gamma_mem, R8, Gamma_R0); - assert ((R8 == $x_addr) ==> (L(mem, $y_addr) ==> Gamma_y_old)); + mem, Gamma_mem := memory_store32_le(mem, R9, 0bv32), gamma_store32(Gamma_mem, R9, true); + assert ((R9 == $x_addr) ==> (L(mem, $y_addr) ==> Gamma_y_old)); assert ((x_old == 0bv32) ==> (memory_load32_le(mem, $x_addr) == 0bv32)); assert (Gamma_y_old ==> ((memory_load32_le(mem, $x_addr) == 0bv32) || gamma_load32(Gamma_mem, $y_addr))); - assume {:captureState "1912_0"} true; - load6, Gamma_load6 := memory_load32_le(stack, bvadd64(R29, 18446744073709551612bv64)), gamma_load32(Gamma_stack, bvadd64(R29, 18446744073709551612bv64)); - R8, Gamma_R8 := zero_extend32_32(load6), Gamma_load6; - R9, Gamma_R9 := 65536bv64, true; - call rely(); - load7, Gamma_load7 := memory_load64_le(mem, bvadd64(R9, 4048bv64)), (gamma_load64(Gamma_mem, bvadd64(R9, 4048bv64)) || L(mem, bvadd64(R9, 4048bv64))); - R9, Gamma_R9 := load7, Gamma_load7; + assume {:captureState "2292$0"} true; call rely(); + assert (L(mem, R10) ==> Gamma_R8); x_old := memory_load32_le(mem, $x_addr); Gamma_y_old := (gamma_load32(Gamma_mem, $y_addr) || L(mem, $y_addr)); - assert (L(mem, R9) ==> Gamma_R8); - mem, Gamma_mem := memory_store32_le(mem, R9, R8[32:0]), gamma_store32(Gamma_mem, R9, Gamma_R8); - assert ((R9 == $x_addr) ==> (L(mem, $y_addr) ==> Gamma_y_old)); + mem, Gamma_mem := memory_store32_le(mem, R10, R8[32:0]), gamma_store32(Gamma_mem, R10, Gamma_R8); + assert ((R10 == $x_addr) ==> (L(mem, $y_addr) ==> Gamma_y_old)); assert ((x_old == 0bv32) ==> (memory_load32_le(mem, $x_addr) == 0bv32)); assert (Gamma_y_old ==> ((memory_load32_le(mem, $x_addr) == 0bv32) || gamma_load32(Gamma_mem, $y_addr))); - assume {:captureState "1928_0"} true; - R0, Gamma_R0 := 0bv64, true; - Cse0__5_0_8, Gamma_Cse0__5_0_8 := bvadd64(R31, 16bv64), Gamma_R31; - load8, Gamma_load8 := memory_load64_le(stack, Cse0__5_0_8), gamma_load64(Gamma_stack, Cse0__5_0_8); - R29, Gamma_R29 := load8, Gamma_load8; - load9, Gamma_load9 := memory_load64_le(stack, bvadd64(Cse0__5_0_8, 8bv64)), gamma_load64(Gamma_stack, bvadd64(Cse0__5_0_8, 8bv64)); - R30, Gamma_R30 := load9, Gamma_load9; - R31, Gamma_R31 := bvadd64(R31, 32bv64), Gamma_R31; - goto main_1884_basil_return; - main_1884_basil_return: - assume {:captureState "main_1884_basil_return"} true; + assume {:captureState "2296$0"} true; + goto main_basil_return; + main_basil_return: + assume {:captureState "main_basil_return"} true; return; } diff --git a/src/test/correct/basic_function_call_caller/gcc/basic_function_call_caller.adt b/src/test/correct/basic_function_call_caller/gcc/basic_function_call_caller.adt deleted file mode 100644 index 8dd24952e..000000000 --- a/src/test/correct/basic_function_call_caller/gcc/basic_function_call_caller.adt +++ /dev/null @@ -1,550 +0,0 @@ -Project(Attrs([Attr("filename","\"gcc/basic_function_call_caller.out\""), -Attr("image-specification","(declare abi (name str))\n(declare arch (name str))\n(declare base-address (addr int))\n(declare bias (off int))\n(declare bits (size int))\n(declare code-region (addr int) (size int) (off int))\n(declare code-start (addr int))\n(declare entry-point (addr int))\n(declare external-reference (addr int) (name str))\n(declare format (name str))\n(declare is-executable (flag bool))\n(declare is-little-endian (flag bool))\n(declare llvm:base-address (addr int))\n(declare llvm:code-entry (name str) (off int) (size int))\n(declare llvm:coff-import-library (name str))\n(declare llvm:coff-virtual-section-header (name str) (addr int) (size int))\n(declare llvm:elf-program-header (name str) (off int) (size int))\n(declare llvm:elf-program-header-flags (name str) (ld bool) (r bool) \n (w bool) (x bool))\n(declare llvm:elf-virtual-program-header (name str) (addr int) (size int))\n(declare llvm:entry-point (addr int))\n(declare llvm:macho-symbol (name str) (value int))\n(declare llvm:name-reference (at int) (name str))\n(declare llvm:relocation (at int) (addr int))\n(declare llvm:section-entry (name str) (addr int) (size int) (off int))\n(declare llvm:section-flags (name str) (r bool) (w bool) (x bool))\n(declare llvm:segment-command (name str) (off int) (size int))\n(declare llvm:segment-command-flags (name str) (r bool) (w bool) (x bool))\n(declare llvm:symbol-entry (name str) (addr int) (size int) (off int)\n (value int))\n(declare llvm:virtual-segment-command (name str) (addr int) (size int))\n(declare mapped (addr int) (size int) (off int))\n(declare named-region (addr int) (size int) (name str))\n(declare named-symbol (addr int) (name str))\n(declare require (name str))\n(declare section (addr int) (size int))\n(declare segment (addr int) (size int) (r bool) (w bool) (x bool))\n(declare subarch (name str))\n(declare symbol-chunk (addr int) (size int) (root int))\n(declare symbol-value (addr int) (value int))\n(declare system (name str))\n(declare vendor (name str))\n\n(abi unknown)\n(arch aarch64)\n(base-address 0)\n(bias 0)\n(bits 64)\n(code-region 1880 20 1880)\n(code-region 1536 344 1536)\n(code-region 1440 96 1440)\n(code-region 1408 24 1408)\n(code-start 1588)\n(code-start 1536)\n(code-start 1812)\n(code-start 1820)\n(entry-point 1536)\n(external-reference 69592 _ITM_deregisterTMCloneTable)\n(external-reference 69600 __cxa_finalize)\n(external-reference 69608 __gmon_start__)\n(external-reference 69624 _ITM_registerTMCloneTable)\n(external-reference 69552 __libc_start_main)\n(external-reference 69560 __cxa_finalize)\n(external-reference 69568 __gmon_start__)\n(external-reference 69576 abort)\n(format elf)\n(is-executable true)\n(is-little-endian true)\n(llvm:base-address 0)\n(llvm:code-entry abort 0 0)\n(llvm:code-entry __cxa_finalize 0 0)\n(llvm:code-entry __libc_start_main 0 0)\n(llvm:code-entry _init 1408 0)\n(llvm:code-entry main 1820 60)\n(llvm:code-entry zero 1812 8)\n(llvm:code-entry _start 1536 52)\n(llvm:code-entry abort@GLIBC_2.17 0 0)\n(llvm:code-entry _fini 1880 0)\n(llvm:code-entry __cxa_finalize@GLIBC_2.17 0 0)\n(llvm:code-entry __libc_start_main@GLIBC_2.34 0 0)\n(llvm:code-entry frame_dummy 1808 0)\n(llvm:code-entry __do_global_dtors_aux 1728 0)\n(llvm:code-entry register_tm_clones 1664 0)\n(llvm:code-entry deregister_tm_clones 1616 0)\n(llvm:code-entry call_weak_fn 1588 20)\n(llvm:code-entry .fini 1880 20)\n(llvm:code-entry .text 1536 344)\n(llvm:code-entry .plt 1440 96)\n(llvm:code-entry .init 1408 24)\n(llvm:elf-program-header 08 3480 616)\n(llvm:elf-program-header 07 0 0)\n(llvm:elf-program-header 06 1904 68)\n(llvm:elf-program-header 05 596 68)\n(llvm:elf-program-header 04 3496 496)\n(llvm:elf-program-header 03 3480 632)\n(llvm:elf-program-header 02 0 2168)\n(llvm:elf-program-header 01 568 27)\n(llvm:elf-program-header 00 64 504)\n(llvm:elf-program-header-flags 08 false true false false)\n(llvm:elf-program-header-flags 07 false true true false)\n(llvm:elf-program-header-flags 06 false true false false)\n(llvm:elf-program-header-flags 05 false true false false)\n(llvm:elf-program-header-flags 04 false true true false)\n(llvm:elf-program-header-flags 03 true true true false)\n(llvm:elf-program-header-flags 02 true true false true)\n(llvm:elf-program-header-flags 01 false true false false)\n(llvm:elf-program-header-flags 00 false true false false)\n(llvm:elf-virtual-program-header 08 69016 616)\n(llvm:elf-virtual-program-header 07 0 0)\n(llvm:elf-virtual-program-header 06 1904 68)\n(llvm:elf-virtual-program-header 05 596 68)\n(llvm:elf-virtual-program-header 04 69032 496)\n(llvm:elf-virtual-program-header 03 69016 648)\n(llvm:elf-virtual-program-header 02 0 2168)\n(llvm:elf-virtual-program-header 01 568 27)\n(llvm:elf-virtual-program-header 00 64 504)\n(llvm:entry-point 1536)\n(llvm:name-reference 69576 abort)\n(llvm:name-reference 69568 __gmon_start__)\n(llvm:name-reference 69560 __cxa_finalize)\n(llvm:name-reference 69552 __libc_start_main)\n(llvm:name-reference 69624 _ITM_registerTMCloneTable)\n(llvm:name-reference 69608 __gmon_start__)\n(llvm:name-reference 69600 __cxa_finalize)\n(llvm:name-reference 69592 _ITM_deregisterTMCloneTable)\n(llvm:section-entry .shstrtab 0 250 6887)\n(llvm:section-entry .strtab 0 567 6320)\n(llvm:section-entry .symtab 0 2160 4160)\n(llvm:section-entry .comment 0 43 4112)\n(llvm:section-entry .bss 69648 16 4112)\n(llvm:section-entry .data 69632 16 4096)\n(llvm:section-entry .got 69528 104 3992)\n(llvm:section-entry .dynamic 69032 496 3496)\n(llvm:section-entry .fini_array 69024 8 3488)\n(llvm:section-entry .init_array 69016 8 3480)\n(llvm:section-entry .eh_frame 1976 192 1976)\n(llvm:section-entry .eh_frame_hdr 1904 68 1904)\n(llvm:section-entry .rodata 1900 4 1900)\n(llvm:section-entry .fini 1880 20 1880)\n(llvm:section-entry .text 1536 344 1536)\n(llvm:section-entry .plt 1440 96 1440)\n(llvm:section-entry .init 1408 24 1408)\n(llvm:section-entry .rela.plt 1312 96 1312)\n(llvm:section-entry .rela.dyn 1120 192 1120)\n(llvm:section-entry .gnu.version_r 1072 48 1072)\n(llvm:section-entry .gnu.version 1054 18 1054)\n(llvm:section-entry .dynstr 912 141 912)\n(llvm:section-entry .dynsym 696 216 696)\n(llvm:section-entry .gnu.hash 664 28 664)\n(llvm:section-entry .note.ABI-tag 632 32 632)\n(llvm:section-entry .note.gnu.build-id 596 36 596)\n(llvm:section-entry .interp 568 27 568)\n(llvm:section-flags .shstrtab true false false)\n(llvm:section-flags .strtab true false false)\n(llvm:section-flags .symtab true false false)\n(llvm:section-flags .comment true false false)\n(llvm:section-flags .bss true true false)\n(llvm:section-flags .data true true false)\n(llvm:section-flags .got true true false)\n(llvm:section-flags .dynamic true true false)\n(llvm:section-flags .fini_array true true false)\n(llvm:section-flags .init_array true true false)\n(llvm:section-flags .eh_frame true false false)\n(llvm:section-flags .eh_frame_hdr true false false)\n(llvm:section-flags .rodata true false false)\n(llvm:section-flags .fini true false true)\n(llvm:section-flags .text true false true)\n(llvm:section-flags .plt true false true)\n(llvm:section-flags .init true false true)\n(llvm:section-flags .rela.plt true false false)\n(llvm:section-flags .rela.dyn true false false)\n(llvm:section-flags .gnu.version_r true false false)\n(llvm:section-flags .gnu.version true false false)\n(llvm:section-flags .dynstr true false false)\n(llvm:section-flags .dynsym true false false)\n(llvm:section-flags .gnu.hash true false false)\n(llvm:section-flags .note.ABI-tag true false false)\n(llvm:section-flags .note.gnu.build-id true false false)\n(llvm:section-flags .interp true false false)\n(llvm:symbol-entry abort 0 0 0 0)\n(llvm:symbol-entry __cxa_finalize 0 0 0 0)\n(llvm:symbol-entry __libc_start_main 0 0 0 0)\n(llvm:symbol-entry _init 1408 0 1408 1408)\n(llvm:symbol-entry main 1820 60 1820 1820)\n(llvm:symbol-entry zero 1812 8 1812 1812)\n(llvm:symbol-entry _start 1536 52 1536 1536)\n(llvm:symbol-entry abort@GLIBC_2.17 0 0 0 0)\n(llvm:symbol-entry _fini 1880 0 1880 1880)\n(llvm:symbol-entry __cxa_finalize@GLIBC_2.17 0 0 0 0)\n(llvm:symbol-entry __libc_start_main@GLIBC_2.34 0 0 0 0)\n(llvm:symbol-entry frame_dummy 1808 0 1808 1808)\n(llvm:symbol-entry __do_global_dtors_aux 1728 0 1728 1728)\n(llvm:symbol-entry register_tm_clones 1664 0 1664 1664)\n(llvm:symbol-entry deregister_tm_clones 1616 0 1616 1616)\n(llvm:symbol-entry call_weak_fn 1588 20 1588 1588)\n(mapped 0 2168 0)\n(mapped 69016 632 3480)\n(named-region 0 2168 02)\n(named-region 69016 648 03)\n(named-region 568 27 .interp)\n(named-region 596 36 .note.gnu.build-id)\n(named-region 632 32 .note.ABI-tag)\n(named-region 664 28 .gnu.hash)\n(named-region 696 216 .dynsym)\n(named-region 912 141 .dynstr)\n(named-region 1054 18 .gnu.version)\n(named-region 1072 48 .gnu.version_r)\n(named-region 1120 192 .rela.dyn)\n(named-region 1312 96 .rela.plt)\n(named-region 1408 24 .init)\n(named-region 1440 96 .plt)\n(named-region 1536 344 .text)\n(named-region 1880 20 .fini)\n(named-region 1900 4 .rodata)\n(named-region 1904 68 .eh_frame_hdr)\n(named-region 1976 192 .eh_frame)\n(named-region 69016 8 .init_array)\n(named-region 69024 8 .fini_array)\n(named-region 69032 496 .dynamic)\n(named-region 69528 104 .got)\n(named-region 69632 16 .data)\n(named-region 69648 16 .bss)\n(named-region 0 43 .comment)\n(named-region 0 2160 .symtab)\n(named-region 0 567 .strtab)\n(named-region 0 250 .shstrtab)\n(named-symbol 1588 call_weak_fn)\n(named-symbol 1616 deregister_tm_clones)\n(named-symbol 1664 register_tm_clones)\n(named-symbol 1728 __do_global_dtors_aux)\n(named-symbol 1808 frame_dummy)\n(named-symbol 0 __libc_start_main@GLIBC_2.34)\n(named-symbol 0 __cxa_finalize@GLIBC_2.17)\n(named-symbol 1880 _fini)\n(named-symbol 0 abort@GLIBC_2.17)\n(named-symbol 1536 _start)\n(named-symbol 1812 zero)\n(named-symbol 1820 main)\n(named-symbol 1408 _init)\n(named-symbol 0 __libc_start_main)\n(named-symbol 0 __cxa_finalize)\n(named-symbol 0 abort)\n(require libc.so.6)\n(section 568 27)\n(section 596 36)\n(section 632 32)\n(section 664 28)\n(section 696 216)\n(section 912 141)\n(section 1054 18)\n(section 1072 48)\n(section 1120 192)\n(section 1312 96)\n(section 1408 24)\n(section 1440 96)\n(section 1536 344)\n(section 1880 20)\n(section 1900 4)\n(section 1904 68)\n(section 1976 192)\n(section 69016 8)\n(section 69024 8)\n(section 69032 496)\n(section 69528 104)\n(section 69632 16)\n(section 69648 16)\n(section 0 43)\n(section 0 2160)\n(section 0 567)\n(section 0 250)\n(segment 0 2168 true false true)\n(segment 69016 648 true true false)\n(subarch v8)\n(symbol-chunk 1588 20 1588)\n(symbol-chunk 1536 52 1536)\n(symbol-chunk 1812 8 1812)\n(symbol-chunk 1820 60 1820)\n(symbol-value 1588 1588)\n(symbol-value 1616 1616)\n(symbol-value 1664 1664)\n(symbol-value 1728 1728)\n(symbol-value 1808 1808)\n(symbol-value 1880 1880)\n(symbol-value 1536 1536)\n(symbol-value 1812 1812)\n(symbol-value 1820 1820)\n(symbol-value 1408 1408)\n(symbol-value 0 0)\n(system \"\")\n(vendor \"\")\n"), -Attr("abi-name","\"aarch64-linux-gnu-elf\"")]), -Sections([Section(".shstrtab", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x00\x06\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xe8\x1b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x38\x00\x09\x00\x40\x00\x1c\x00\x1b\x00\x06\x00\x00\x00\x04\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x04\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x78\x08\x00\x00\x00\x00\x00\x00\x78\x08\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x01\x00\x00\x00\x06\x00\x00\x00\x98\x0d\x00\x00\x00\x00\x00\x00\x98\x0d"), -Section(".strtab", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x00\x06\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xe8\x1b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x38\x00\x09\x00\x40\x00\x1c\x00\x1b\x00\x06\x00\x00\x00\x04\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x04\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x78\x08\x00\x00\x00\x00\x00\x00\x78\x08\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x01\x00\x00\x00\x06\x00\x00\x00\x98\x0d\x00\x00\x00\x00\x00\x00\x98\x0d\x01\x00\x00\x00\x00\x00\x98\x0d\x01\x00\x00\x00\x00\x00\x78\x02\x00\x00\x00\x00\x00\x00\x88\x02\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x02\x00\x00\x00\x06\x00\x00\x00\xa8\x0d\x00\x00\x00\x00\x00\x00\xa8\x0d\x01\x00\x00\x00\x00\x00\xa8\x0d\x01\x00\x00\x00\x00\x00\xf0\x01\x00\x00\x00\x00\x00\x00\xf0\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x04\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x50\xe5\x74\x64\x04\x00\x00\x00\x70\x07\x00\x00\x00\x00\x00\x00\x70\x07\x00\x00\x00\x00\x00\x00\x70\x07\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x51\xe5\x74\x64\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x52\xe5\x74\x64\x04\x00\x00\x00\x98\x0d\x00\x00\x00\x00\x00\x00\x98\x0d\x01\x00\x00\x00\x00\x00\x98\x0d\x01\x00\x00\x00\x00\x00\x68\x02\x00\x00\x00\x00\x00\x00\x68\x02\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00"), -Section(".symtab", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x00\x06\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xe8\x1b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x38\x00\x09\x00\x40\x00\x1c\x00\x1b\x00\x06\x00\x00\x00\x04\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x04\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x78\x08\x00\x00\x00\x00\x00\x00\x78\x08\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x01\x00\x00\x00\x06\x00\x00\x00\x98\x0d\x00\x00\x00\x00\x00\x00\x98\x0d\x01\x00\x00\x00\x00\x00\x98\x0d\x01\x00\x00\x00\x00\x00\x78\x02\x00\x00\x00\x00\x00\x00\x88\x02\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x02\x00\x00\x00\x06\x00\x00\x00\xa8\x0d\x00\x00\x00\x00\x00\x00\xa8\x0d\x01\x00\x00\x00\x00\x00\xa8\x0d\x01\x00\x00\x00\x00\x00\xf0\x01\x00\x00\x00\x00\x00\x00\xf0\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x04\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x50\xe5\x74\x64\x04\x00\x00\x00\x70\x07\x00\x00\x00\x00\x00\x00\x70\x07\x00\x00\x00\x00\x00\x00\x70\x07\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x51\xe5\x74\x64\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x52\xe5\x74\x64\x04\x00\x00\x00\x98\x0d\x00\x00\x00\x00\x00\x00\x98\x0d\x01\x00\x00\x00\x00\x00\x98\x0d\x01\x00\x00\x00\x00\x00\x68\x02\x00\x00\x00\x00\x00\x00\x68\x02\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x2f\x6c\x69\x62\x2f\x6c\x64\x2d\x6c\x69\x6e\x75\x78\x2d\x61\x61\x72\x63\x68\x36\x34\x2e\x73\x6f\x2e\x31\x00\x00\x04\x00\x00\x00\x14\x00\x00\x00\x03\x00\x00\x00\x47\x4e\x55\x00\x65\xff\x56\xcd\x06\x0c\xd2\x32\x45\x8e\xf2\x05\x5f\x22\x5e\xeb\x8c\x91\x15\x37\x04\x00\x00\x00\x10\x00\x00\x00\x01\x00\x00\x00\x47\x4e\x55\x00\x00\x00\x00\x00\x03\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x01\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x0b\x00\x80\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x16\x00\x00\x10\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x48\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x22\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x22\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x73\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5f\x5f\x63\x78\x61\x5f\x66\x69\x6e\x61\x6c\x69\x7a\x65\x00\x5f\x5f\x6c\x69\x62\x63\x5f\x73\x74\x61\x72\x74\x5f\x6d\x61\x69\x6e\x00\x61\x62\x6f\x72\x74\x00\x6c\x69\x62\x63\x2e\x73\x6f\x2e\x36\x00\x47\x4c\x49\x42\x43\x5f\x32\x2e\x31\x37\x00\x47\x4c\x49\x42\x43\x5f\x32\x2e\x33\x34\x00\x5f\x49\x54\x4d\x5f\x64\x65\x72\x65\x67\x69\x73\x74\x65\x72\x54\x4d\x43\x6c\x6f\x6e\x65\x54\x61\x62\x6c\x65\x00\x5f\x5f\x67\x6d\x6f\x6e\x5f\x73\x74\x61\x72\x74\x5f\x5f\x00\x5f\x49\x54\x4d\x5f\x72\x65\x67\x69\x73\x74\x65\x72\x54\x4d\x43\x6c\x6f\x6e\x65\x54\x61\x62\x6c\x65\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x01\x00\x03\x00\x01\x00\x03\x00\x01\x00\x01\x00\x02\x00\x28\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x97\x91\x96\x06\x00\x00\x03\x00\x32\x00\x00\x00\x10\x00\x00\x00\xb4\x91\x96\x06\x00\x00\x02\x00\x3d\x00\x00\x00\x00\x00\x00\x00\x98\x0d\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x10\x07\x00\x00\x00\x00\x00\x00\xa0\x0d\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\xc0\x06\x00\x00\x00\x00\x00\x00\xf0\x0f\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x1c\x07\x00\x00\x00\x00\x00\x00\x08\x10\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x08\x10\x01\x00\x00\x00\x00\x00\xd8\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe0\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe8\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xf8\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xb0\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xb8\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xc0\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xc8\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1f\x20\x03\xd5\xfd\x7b\xbf\xa9\xfd\x03\x00\x91\x2a\x00\x00\x94\xfd\x7b\xc1\xa8\xc0\x03\x5f\xd6\x00\x00\x00\x00\x00\x00\x00\x00\xf0\x7b\xbf\xa9\x90\x00\x00\x90\x11\xd6\x47\xf9\x10\xa2\x3e\x91\x20\x02\x1f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x90\x00\x00\x90\x11\xda\x47\xf9\x10\xc2\x3e\x91\x20\x02\x1f\xd6\x90\x00\x00\x90\x11\xde\x47\xf9\x10\xe2\x3e\x91\x20\x02\x1f\xd6\x90\x00\x00\x90\x11\xe2\x47\xf9\x10\x02\x3f\x91\x20\x02\x1f\xd6\x90\x00\x00\x90\x11\xe6\x47\xf9\x10\x22\x3f\x91\x20\x02\x1f\xd6\x1f\x20\x03\xd5\x1d\x00\x80\xd2\x1e\x00\x80\xd2\xe5\x03\x00\xaa\xe1\x03\x40\xf9\xe2\x23\x00\x91\xe6\x03\x00\x91\x80\x00\x00\x90\x00\xf8\x47\xf9\x03\x00\x80\xd2\x04\x00\x80\xd2\xe5\xff\xff\x97\xf0\xff\xff\x97\x80\x00\x00\x90\x00\xf4\x47\xf9\x40\x00\x00\xb4\xe8\xff\xff\x17\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x80\x00\x00\xb0\x00\x40\x00\x91\x81\x00\x00\xb0\x21\x40\x00\x91\x3f\x00\x00\xeb\xc0\x00\x00\x54\x81\x00\x00\x90\x21\xec\x47\xf9\x61\x00\x00\xb4\xf0\x03\x01\xaa\x00\x02\x1f\xd6\xc0\x03\x5f\xd6\x80\x00\x00\xb0\x00\x40\x00\x91\x81\x00\x00\xb0\x21\x40\x00\x91\x21\x00\x00\xcb\x22\xfc\x7f\xd3\x41\x0c\x81\x8b\x21\xfc\x41\x93\xc1\x00\x00\xb4\x82\x00\x00\x90\x42\xfc\x47\xf9\x62\x00\x00\xb4\xf0\x03\x02\xaa\x00\x02\x1f\xd6\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\xfd\x7b\xbe\xa9\xfd\x03\x00\x91\xf3\x0b\x00\xf9\x93\x00\x00\xb0\x60\x42\x40\x39\x40\x01\x00\x35\x80\x00\x00\x90\x00\xf0\x47\xf9\x80\x00\x00\xb4\x80\x00\x00\xb0\x00\x04\x40\xf9\xb9\xff\xff\x97\xd8\xff\xff\x97\x20\x00\x80\x52\x60\x42\x00\x39\xf3\x0b\x40\xf9\xfd\x7b\xc2\xa8\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\xdc\xff\xff\x17\x00\x00\x80\x52\xc0\x03\x5f\xd6\xfd\x7b\xbe\xa9\xfd\x03\x00\x91\xe0\x1f\x00\xb9\xfb\xff\xff\x97\xe1\x03\x00\x2a\x80\x00\x00\xb0\x00\x50\x00\x91\x01\x00\x00\xb9\x80\x00\x00\xb0\x00\x60\x00\x91\xe1\x1f\x40\xb9\x01\x00\x00\xb9\x00\x00\x80\x52\xfd\x7b\xc2\xa8\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\xfd\x7b\xbf\xa9\xfd\x03\x00\x91\xfd\x7b\xc1\xa8\xc0\x03\x5f\xd6\x01\x00\x02\x00\x01\x1b\x03\x3b\x44\x00\x00\x00\x07\x00\x00\x00\x90\xfe\xff\xff\x5c\x00\x00\x00\xe0\xfe\xff\xff\x70\x00\x00\x00\x10\xff\xff\xff\x84\x00\x00\x00\x50\xff\xff\xff\x98\x00\x00\x00\xa0\xff\xff\xff\xbc\x00\x00\x00\xa4\xff\xff\xff\xd0\x00\x00\x00\xac\xff\xff\xff\xe4\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x01\x7a\x52\x00\x04\x78\x1e\x01\x1b\x0c\x1f\x00\x10\x00\x00\x00\x18\x00\x00\x00\x2c\xfe\xff\xff\x34\x00\x00\x00\x00\x41\x07\x1e\x10\x00\x00\x00\x2c\x00\x00\x00\x68\xfe\xff\xff\x30\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x40\x00\x00\x00\x84\xfe\xff\xff\x3c\x00\x00\x00\x00\x00\x00\x00\x20\x00\x00\x00\x54\x00\x00\x00\xb0\xfe\xff\xff\x48\x00\x00\x00\x00\x41\x0e\x20\x9d\x04\x9e\x03\x42\x93\x02\x4e\xde\xdd\xd3\x0e\x00\x00\x00\x00\x10\x00\x00\x00\x78\x00\x00\x00\xdc\xfe\xff\xff\x04\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x8c\x00\x00\x00\xcc\xfe\xff\xff\x08\x00\x00\x00\x00\x00\x00\x00\x1c\x00\x00\x00\xa0\x00\x00\x00\xc0\xfe\xff\xff\x3c\x00\x00\x00\x00\x41\x0e\x20\x9d\x04\x9e\x03\x4d\xde\xdd\x0e"), -Section(".comment", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x00\x06\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xe8\x1b\x00"), -Section(".interp", 0x238, "\x2f\x6c\x69\x62\x2f\x6c\x64\x2d\x6c\x69\x6e\x75\x78\x2d\x61\x61\x72\x63\x68\x36\x34\x2e\x73\x6f\x2e\x31\x00"), -Section(".note.gnu.build-id", 0x254, "\x04\x00\x00\x00\x14\x00\x00\x00\x03\x00\x00\x00\x47\x4e\x55\x00\x65\xff\x56\xcd\x06\x0c\xd2\x32\x45\x8e\xf2\x05\x5f\x22\x5e\xeb\x8c\x91\x15\x37"), -Section(".note.ABI-tag", 0x278, "\x04\x00\x00\x00\x10\x00\x00\x00\x01\x00\x00\x00\x47\x4e\x55\x00\x00\x00\x00\x00\x03\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00"), -Section(".gnu.hash", 0x298, "\x01\x00\x00\x00\x01\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".dynsym", 0x2B8, "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x0b\x00\x80\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x16\x00\x00\x10\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x48\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x22\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x22\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x73\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".dynstr", 0x390, "\x00\x5f\x5f\x63\x78\x61\x5f\x66\x69\x6e\x61\x6c\x69\x7a\x65\x00\x5f\x5f\x6c\x69\x62\x63\x5f\x73\x74\x61\x72\x74\x5f\x6d\x61\x69\x6e\x00\x61\x62\x6f\x72\x74\x00\x6c\x69\x62\x63\x2e\x73\x6f\x2e\x36\x00\x47\x4c\x49\x42\x43\x5f\x32\x2e\x31\x37\x00\x47\x4c\x49\x42\x43\x5f\x32\x2e\x33\x34\x00\x5f\x49\x54\x4d\x5f\x64\x65\x72\x65\x67\x69\x73\x74\x65\x72\x54\x4d\x43\x6c\x6f\x6e\x65\x54\x61\x62\x6c\x65\x00\x5f\x5f\x67\x6d\x6f\x6e\x5f\x73\x74\x61\x72\x74\x5f\x5f\x00\x5f\x49\x54\x4d\x5f\x72\x65\x67\x69\x73\x74\x65\x72\x54\x4d\x43\x6c\x6f\x6e\x65\x54\x61\x62\x6c\x65\x00"), -Section(".gnu.version", 0x41E, "\x00\x00\x00\x00\x00\x00\x02\x00\x01\x00\x03\x00\x01\x00\x03\x00\x01\x00"), -Section(".gnu.version_r", 0x430, "\x01\x00\x02\x00\x28\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x97\x91\x96\x06\x00\x00\x03\x00\x32\x00\x00\x00\x10\x00\x00\x00\xb4\x91\x96\x06\x00\x00\x02\x00\x3d\x00\x00\x00\x00\x00\x00\x00"), -Section(".rela.dyn", 0x460, "\x98\x0d\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x10\x07\x00\x00\x00\x00\x00\x00\xa0\x0d\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\xc0\x06\x00\x00\x00\x00\x00\x00\xf0\x0f\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x1c\x07\x00\x00\x00\x00\x00\x00\x08\x10\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x08\x10\x01\x00\x00\x00\x00\x00\xd8\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe0\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe8\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xf8\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".rela.plt", 0x520, "\xb0\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xb8\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xc0\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xc8\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".init", 0x580, "\x1f\x20\x03\xd5\xfd\x7b\xbf\xa9\xfd\x03\x00\x91\x2a\x00\x00\x94\xfd\x7b\xc1\xa8\xc0\x03\x5f\xd6"), -Section(".plt", 0x5A0, "\xf0\x7b\xbf\xa9\x90\x00\x00\x90\x11\xd6\x47\xf9\x10\xa2\x3e\x91\x20\x02\x1f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x90\x00\x00\x90\x11\xda\x47\xf9\x10\xc2\x3e\x91\x20\x02\x1f\xd6\x90\x00\x00\x90\x11\xde\x47\xf9\x10\xe2\x3e\x91\x20\x02\x1f\xd6\x90\x00\x00\x90\x11\xe2\x47\xf9\x10\x02\x3f\x91\x20\x02\x1f\xd6\x90\x00\x00\x90\x11\xe6\x47\xf9\x10\x22\x3f\x91\x20\x02\x1f\xd6"), -Section(".fini", 0x758, "\x1f\x20\x03\xd5\xfd\x7b\xbf\xa9\xfd\x03\x00\x91\xfd\x7b\xc1\xa8\xc0\x03\x5f\xd6"), -Section(".rodata", 0x76C, "\x01\x00\x02\x00"), -Section(".eh_frame_hdr", 0x770, "\x01\x1b\x03\x3b\x44\x00\x00\x00\x07\x00\x00\x00\x90\xfe\xff\xff\x5c\x00\x00\x00\xe0\xfe\xff\xff\x70\x00\x00\x00\x10\xff\xff\xff\x84\x00\x00\x00\x50\xff\xff\xff\x98\x00\x00\x00\xa0\xff\xff\xff\xbc\x00\x00\x00\xa4\xff\xff\xff\xd0\x00\x00\x00\xac\xff\xff\xff\xe4\x00\x00\x00"), -Section(".eh_frame", 0x7B8, "\x10\x00\x00\x00\x00\x00\x00\x00\x01\x7a\x52\x00\x04\x78\x1e\x01\x1b\x0c\x1f\x00\x10\x00\x00\x00\x18\x00\x00\x00\x2c\xfe\xff\xff\x34\x00\x00\x00\x00\x41\x07\x1e\x10\x00\x00\x00\x2c\x00\x00\x00\x68\xfe\xff\xff\x30\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x40\x00\x00\x00\x84\xfe\xff\xff\x3c\x00\x00\x00\x00\x00\x00\x00\x20\x00\x00\x00\x54\x00\x00\x00\xb0\xfe\xff\xff\x48\x00\x00\x00\x00\x41\x0e\x20\x9d\x04\x9e\x03\x42\x93\x02\x4e\xde\xdd\xd3\x0e\x00\x00\x00\x00\x10\x00\x00\x00\x78\x00\x00\x00\xdc\xfe\xff\xff\x04\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x8c\x00\x00\x00\xcc\xfe\xff\xff\x08\x00\x00\x00\x00\x00\x00\x00\x1c\x00\x00\x00\xa0\x00\x00\x00\xc0\xfe\xff\xff\x3c\x00\x00\x00\x00\x41\x0e\x20\x9d\x04\x9e\x03\x4d\xde\xdd\x0e\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".fini_array", 0x10DA0, "\xc0\x06\x00\x00\x00\x00\x00\x00"), -Section(".dynamic", 0x10DA8, "\x01\x00\x00\x00\x00\x00\x00\x00\x28\x00\x00\x00\x00\x00\x00\x00\x0c\x00\x00\x00\x00\x00\x00\x00\x80\x05\x00\x00\x00\x00\x00\x00\x0d\x00\x00\x00\x00\x00\x00\x00\x58\x07\x00\x00\x00\x00\x00\x00\x19\x00\x00\x00\x00\x00\x00\x00\x98\x0d\x01\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x1a\x00\x00\x00\x00\x00\x00\x00\xa0\x0d\x01\x00\x00\x00\x00\x00\x1c\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\xf5\xfe\xff\x6f\x00\x00\x00\x00\x98\x02\x00\x00\x00\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x90\x03\x00\x00\x00\x00\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\xb8\x02\x00\x00\x00\x00\x00\x00\x0a\x00\x00\x00\x00\x00\x00\x00\x8d\x00\x00\x00\x00\x00\x00\x00\x0b\x00\x00\x00\x00\x00\x00\x00\x18\x00\x00\x00\x00\x00\x00\x00\x15\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x98\x0f\x01\x00\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x60\x00\x00\x00\x00\x00\x00\x00\x14\x00\x00\x00\x00\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x17\x00\x00\x00\x00\x00\x00\x00\x20\x05\x00\x00\x00\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x60\x04\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\xc0\x00\x00\x00\x00\x00\x00\x00\x09\x00\x00\x00\x00\x00\x00\x00\x18\x00\x00\x00\x00\x00\x00\x00\x1e\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\xfb\xff\xff\x6f\x00\x00\x00\x00\x01\x00\x00\x08\x00\x00\x00\x00\xfe\xff\xff\x6f\x00\x00\x00\x00\x30\x04\x00\x00\x00\x00\x00\x00\xff\xff\xff\x6f\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\xf0\xff\xff\x6f\x00\x00\x00\x00\x1e\x04\x00\x00\x00\x00\x00\x00\xf9\xff\xff\x6f\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".got", 0x10F98, "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xa0\x05\x00\x00\x00\x00\x00\x00\xa0\x05\x00\x00\x00\x00\x00\x00\xa0\x05\x00\x00\x00\x00\x00\x00\xa0\x05\x00\x00\x00\x00\x00\x00\xa8\x0d\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1c\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".data", 0x11000, "\x00\x00\x00\x00\x00\x00\x00\x00\x08\x10\x01\x00\x00\x00\x00\x00"), -Section(".init_array", 0x10D98, "\x10\x07\x00\x00\x00\x00\x00\x00"), -Section(".text", 0x600, "\x1f\x20\x03\xd5\x1d\x00\x80\xd2\x1e\x00\x80\xd2\xe5\x03\x00\xaa\xe1\x03\x40\xf9\xe2\x23\x00\x91\xe6\x03\x00\x91\x80\x00\x00\x90\x00\xf8\x47\xf9\x03\x00\x80\xd2\x04\x00\x80\xd2\xe5\xff\xff\x97\xf0\xff\xff\x97\x80\x00\x00\x90\x00\xf4\x47\xf9\x40\x00\x00\xb4\xe8\xff\xff\x17\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x80\x00\x00\xb0\x00\x40\x00\x91\x81\x00\x00\xb0\x21\x40\x00\x91\x3f\x00\x00\xeb\xc0\x00\x00\x54\x81\x00\x00\x90\x21\xec\x47\xf9\x61\x00\x00\xb4\xf0\x03\x01\xaa\x00\x02\x1f\xd6\xc0\x03\x5f\xd6\x80\x00\x00\xb0\x00\x40\x00\x91\x81\x00\x00\xb0\x21\x40\x00\x91\x21\x00\x00\xcb\x22\xfc\x7f\xd3\x41\x0c\x81\x8b\x21\xfc\x41\x93\xc1\x00\x00\xb4\x82\x00\x00\x90\x42\xfc\x47\xf9\x62\x00\x00\xb4\xf0\x03\x02\xaa\x00\x02\x1f\xd6\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\xfd\x7b\xbe\xa9\xfd\x03\x00\x91\xf3\x0b\x00\xf9\x93\x00\x00\xb0\x60\x42\x40\x39\x40\x01\x00\x35\x80\x00\x00\x90\x00\xf0\x47\xf9\x80\x00\x00\xb4\x80\x00\x00\xb0\x00\x04\x40\xf9\xb9\xff\xff\x97\xd8\xff\xff\x97\x20\x00\x80\x52\x60\x42\x00\x39\xf3\x0b\x40\xf9\xfd\x7b\xc2\xa8\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\xdc\xff\xff\x17\x00\x00\x80\x52\xc0\x03\x5f\xd6\xfd\x7b\xbe\xa9\xfd\x03\x00\x91\xe0\x1f\x00\xb9\xfb\xff\xff\x97\xe1\x03\x00\x2a\x80\x00\x00\xb0\x00\x50\x00\x91\x01\x00\x00\xb9\x80\x00\x00\xb0\x00\x60\x00\x91\xe1\x1f\x40\xb9\x01\x00\x00\xb9\x00\x00\x80\x52\xfd\x7b\xc2\xa8\xc0\x03\x5f\xd6")]), -Memmap([Annotation(Region(0x0,0x877), Attr("segment","02 0 2168")), -Annotation(Region(0x600,0x633), Attr("symbol","\"_start\"")), -Annotation(Region(0x0,0xF9), Attr("section","\".shstrtab\"")), -Annotation(Region(0x0,0x236), Attr("section","\".strtab\"")), -Annotation(Region(0x0,0x86F), Attr("section","\".symtab\"")), -Annotation(Region(0x0,0x2A), Attr("section","\".comment\"")), -Annotation(Region(0x238,0x252), Attr("section","\".interp\"")), -Annotation(Region(0x254,0x277), Attr("section","\".note.gnu.build-id\"")), -Annotation(Region(0x278,0x297), Attr("section","\".note.ABI-tag\"")), -Annotation(Region(0x298,0x2B3), Attr("section","\".gnu.hash\"")), -Annotation(Region(0x2B8,0x38F), Attr("section","\".dynsym\"")), -Annotation(Region(0x390,0x41C), Attr("section","\".dynstr\"")), -Annotation(Region(0x41E,0x42F), Attr("section","\".gnu.version\"")), -Annotation(Region(0x430,0x45F), Attr("section","\".gnu.version_r\"")), -Annotation(Region(0x460,0x51F), Attr("section","\".rela.dyn\"")), -Annotation(Region(0x520,0x57F), Attr("section","\".rela.plt\"")), -Annotation(Region(0x580,0x597), Attr("section","\".init\"")), -Annotation(Region(0x5A0,0x5FF), Attr("section","\".plt\"")), -Annotation(Region(0x580,0x597), Attr("code-region","()")), -Annotation(Region(0x5A0,0x5FF), Attr("code-region","()")), -Annotation(Region(0x600,0x633), Attr("symbol-info","_start 0x600 52")), -Annotation(Region(0x634,0x647), Attr("symbol","\"call_weak_fn\"")), -Annotation(Region(0x634,0x647), Attr("symbol-info","call_weak_fn 0x634 20")), -Annotation(Region(0x714,0x71B), Attr("symbol","\"zero\"")), -Annotation(Region(0x600,0x757), Attr("code-region","()")), -Annotation(Region(0x714,0x71B), Attr("symbol-info","zero 0x714 8")), -Annotation(Region(0x71C,0x757), Attr("symbol","\"main\"")), -Annotation(Region(0x71C,0x757), Attr("symbol-info","main 0x71C 60")), -Annotation(Region(0x758,0x76B), Attr("section","\".fini\"")), -Annotation(Region(0x76C,0x76F), Attr("section","\".rodata\"")), -Annotation(Region(0x770,0x7B3), Attr("section","\".eh_frame_hdr\"")), -Annotation(Region(0x7B8,0x877), Attr("section","\".eh_frame\"")), -Annotation(Region(0x10D98,0x1100F), Attr("segment","03 0x10D98 648")), -Annotation(Region(0x10DA0,0x10DA7), Attr("section","\".fini_array\"")), -Annotation(Region(0x10DA8,0x10F97), Attr("section","\".dynamic\"")), -Annotation(Region(0x10F98,0x10FFF), Attr("section","\".got\"")), -Annotation(Region(0x11000,0x1100F), Attr("section","\".data\"")), -Annotation(Region(0x10D98,0x10D9F), Attr("section","\".init_array\"")), -Annotation(Region(0x600,0x757), Attr("section","\".text\"")), -Annotation(Region(0x758,0x76B), Attr("code-region","()"))]), -Program(Tid(1_593, "%00000639"), Attrs([]), - Subs([Sub(Tid(1_541, "@__cxa_finalize"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x5D0"), -Attr("stub","()")]), "__cxa_finalize", Args([Arg(Tid(1_594, "%0000063a"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("__cxa_finalize_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(935, "@__cxa_finalize"), - Attrs([Attr("address","0x5D0")]), Phis([]), -Defs([Def(Tid(1_183, "%0000049f"), Attrs([Attr("address","0x5D0"), -Attr("insn","adrp x16, #65536")]), Var("R16",Imm(64)), Int(65536,64)), -Def(Tid(1_190, "%000004a6"), Attrs([Attr("address","0x5D4"), -Attr("insn","ldr x17, [x16, #0xfb8]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(4024,64)),LittleEndian(),64)), -Def(Tid(1_196, "%000004ac"), Attrs([Attr("address","0x5D8"), -Attr("insn","add x16, x16, #0xfb8")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(4024,64)))]), Jmps([Call(Tid(1_201, "%000004b1"), - Attrs([Attr("address","0x5DC"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), -Sub(Tid(1_542, "@__do_global_dtors_aux"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x6C0")]), - "__do_global_dtors_aux", Args([Arg(Tid(1_595, "%0000063b"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("__do_global_dtors_aux_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(658, "@__do_global_dtors_aux"), - Attrs([Attr("address","0x6C0")]), Phis([]), Defs([Def(Tid(662, "%00000296"), - Attrs([Attr("address","0x6C0"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("#3",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(18446744073709551584,64))), -Def(Tid(668, "%0000029c"), Attrs([Attr("address","0x6C0"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("#3",Imm(64)),Var("R29",Imm(64)),LittleEndian(),64)), -Def(Tid(674, "%000002a2"), Attrs([Attr("address","0x6C0"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("#3",Imm(64)),Int(8,64)),Var("R30",Imm(64)),LittleEndian(),64)), -Def(Tid(678, "%000002a6"), Attrs([Attr("address","0x6C0"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("R31",Imm(64)), -Var("#3",Imm(64))), Def(Tid(684, "%000002ac"), - Attrs([Attr("address","0x6C4"), Attr("insn","mov x29, sp")]), - Var("R29",Imm(64)), Var("R31",Imm(64))), Def(Tid(692, "%000002b4"), - Attrs([Attr("address","0x6C8"), Attr("insn","str x19, [sp, #0x10]")]), - Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(16,64)),Var("R19",Imm(64)),LittleEndian(),64)), -Def(Tid(697, "%000002b9"), Attrs([Attr("address","0x6CC"), -Attr("insn","adrp x19, #69632")]), Var("R19",Imm(64)), Int(69632,64)), -Def(Tid(704, "%000002c0"), Attrs([Attr("address","0x6D0"), -Attr("insn","ldrb w0, [x19, #0x10]")]), Var("R0",Imm(64)), -UNSIGNED(64,Load(Var("mem",Mem(64,8)),PLUS(Var("R19",Imm(64)),Int(16,64)),LittleEndian(),8)))]), -Jmps([Goto(Tid(711, "%000002c7"), Attrs([Attr("address","0x6D4"), -Attr("insn","cbnz w0, #0x28")]), - NEQ(Extract(31,0,Var("R0",Imm(64))),Int(0,32)), -Direct(Tid(709, "%000002c5"))), Goto(Tid(1_583, "%0000062f"), Attrs([]), - Int(1,1), Direct(Tid(880, "%00000370")))])), Blk(Tid(880, "%00000370"), - Attrs([Attr("address","0x6D8")]), Phis([]), Defs([Def(Tid(883, "%00000373"), - Attrs([Attr("address","0x6D8"), Attr("insn","adrp x0, #65536")]), - Var("R0",Imm(64)), Int(65536,64)), Def(Tid(890, "%0000037a"), - Attrs([Attr("address","0x6DC"), Attr("insn","ldr x0, [x0, #0xfe0]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(4064,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(896, "%00000380"), Attrs([Attr("address","0x6E0"), -Attr("insn","cbz x0, #0x10")]), EQ(Var("R0",Imm(64)),Int(0,64)), -Direct(Tid(894, "%0000037e"))), Goto(Tid(1_584, "%00000630"), Attrs([]), - Int(1,1), Direct(Tid(919, "%00000397")))])), Blk(Tid(919, "%00000397"), - Attrs([Attr("address","0x6E4")]), Phis([]), Defs([Def(Tid(922, "%0000039a"), - Attrs([Attr("address","0x6E4"), Attr("insn","adrp x0, #69632")]), - Var("R0",Imm(64)), Int(69632,64)), Def(Tid(929, "%000003a1"), - Attrs([Attr("address","0x6E8"), Attr("insn","ldr x0, [x0, #0x8]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(934, "%000003a6"), Attrs([Attr("address","0x6EC"), -Attr("insn","bl #-0x11c")]), Var("R30",Imm(64)), Int(1776,64))]), -Jmps([Call(Tid(937, "%000003a9"), Attrs([Attr("address","0x6EC"), -Attr("insn","bl #-0x11c")]), Int(1,1), -(Direct(Tid(1_541, "@__cxa_finalize")),Direct(Tid(894, "%0000037e"))))])), -Blk(Tid(894, "%0000037e"), Attrs([Attr("address","0x6F0")]), Phis([]), -Defs([Def(Tid(902, "%00000386"), Attrs([Attr("address","0x6F0"), -Attr("insn","bl #-0xa0")]), Var("R30",Imm(64)), Int(1780,64))]), -Jmps([Call(Tid(904, "%00000388"), Attrs([Attr("address","0x6F0"), -Attr("insn","bl #-0xa0")]), Int(1,1), -(Direct(Tid(1_555, "@deregister_tm_clones")),Direct(Tid(906, "%0000038a"))))])), -Blk(Tid(906, "%0000038a"), Attrs([Attr("address","0x6F4")]), Phis([]), -Defs([Def(Tid(909, "%0000038d"), Attrs([Attr("address","0x6F4"), -Attr("insn","mov w0, #0x1")]), Var("R0",Imm(64)), Int(1,64)), -Def(Tid(917, "%00000395"), Attrs([Attr("address","0x6F8"), -Attr("insn","strb w0, [x19, #0x10]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R19",Imm(64)),Int(16,64)),Extract(7,0,Var("R0",Imm(64))),LittleEndian(),8))]), -Jmps([Goto(Tid(1_585, "%00000631"), Attrs([]), Int(1,1), -Direct(Tid(709, "%000002c5")))])), Blk(Tid(709, "%000002c5"), - Attrs([Attr("address","0x6FC")]), Phis([]), Defs([Def(Tid(719, "%000002cf"), - Attrs([Attr("address","0x6FC"), Attr("insn","ldr x19, [sp, #0x10]")]), - Var("R19",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(16,64)),LittleEndian(),64)), -Def(Tid(726, "%000002d6"), Attrs([Attr("address","0x700"), -Attr("insn","ldp x29, x30, [sp], #0x20")]), Var("R29",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(731, "%000002db"), Attrs([Attr("address","0x700"), -Attr("insn","ldp x29, x30, [sp], #0x20")]), Var("R30",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(735, "%000002df"), Attrs([Attr("address","0x700"), -Attr("insn","ldp x29, x30, [sp], #0x20")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(32,64)))]), Jmps([Call(Tid(740, "%000002e4"), - Attrs([Attr("address","0x704"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), Sub(Tid(1_546, "@__libc_start_main"), - Attrs([Attr("c.proto","signed (*)(signed (*)(signed , char** , char** );* main, signed , char** , \nvoid* auxv)"), -Attr("address","0x5C0"), Attr("stub","()")]), "__libc_start_main", - Args([Arg(Tid(1_596, "%0000063c"), - Attrs([Attr("c.layout","**[ : 64]"), -Attr("c.data","Top:u64 ptr ptr"), -Attr("c.type","signed (*)(signed , char** , char** );*")]), - Var("__libc_start_main_main",Imm(64)), Var("R0",Imm(64)), In()), -Arg(Tid(1_597, "%0000063d"), Attrs([Attr("c.layout","[signed : 32]"), -Attr("c.data","Top:u32"), Attr("c.type","signed")]), - Var("__libc_start_main_arg2",Imm(32)), LOW(32,Var("R1",Imm(64))), In()), -Arg(Tid(1_598, "%0000063e"), Attrs([Attr("c.layout","**[char : 8]"), -Attr("c.data","Top:u8 ptr ptr"), Attr("c.type","char**")]), - Var("__libc_start_main_arg3",Imm(64)), Var("R2",Imm(64)), Both()), -Arg(Tid(1_599, "%0000063f"), Attrs([Attr("c.layout","*[ : 8]"), -Attr("c.data","{} ptr"), Attr("c.type","void*")]), - Var("__libc_start_main_auxv",Imm(64)), Var("R3",Imm(64)), Both()), -Arg(Tid(1_600, "%00000640"), Attrs([Attr("c.layout","[signed : 32]"), -Attr("c.data","Top:u32"), Attr("c.type","signed")]), - Var("__libc_start_main_result",Imm(32)), LOW(32,Var("R0",Imm(64))), -Out())]), Blks([Blk(Tid(491, "@__libc_start_main"), - Attrs([Attr("address","0x5C0")]), Phis([]), -Defs([Def(Tid(1_161, "%00000489"), Attrs([Attr("address","0x5C0"), -Attr("insn","adrp x16, #65536")]), Var("R16",Imm(64)), Int(65536,64)), -Def(Tid(1_168, "%00000490"), Attrs([Attr("address","0x5C4"), -Attr("insn","ldr x17, [x16, #0xfb0]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(4016,64)),LittleEndian(),64)), -Def(Tid(1_174, "%00000496"), Attrs([Attr("address","0x5C8"), -Attr("insn","add x16, x16, #0xfb0")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(4016,64)))]), Jmps([Call(Tid(1_179, "%0000049b"), - Attrs([Attr("address","0x5CC"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), Sub(Tid(1_547, "@_fini"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x758")]), - "_fini", Args([Arg(Tid(1_601, "%00000641"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("_fini_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(31, "@_fini"), - Attrs([Attr("address","0x758")]), Phis([]), Defs([Def(Tid(37, "%00000025"), - Attrs([Attr("address","0x75C"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("#0",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(18446744073709551600,64))), -Def(Tid(43, "%0000002b"), Attrs([Attr("address","0x75C"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("#0",Imm(64)),Var("R29",Imm(64)),LittleEndian(),64)), -Def(Tid(49, "%00000031"), Attrs([Attr("address","0x75C"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("#0",Imm(64)),Int(8,64)),Var("R30",Imm(64)),LittleEndian(),64)), -Def(Tid(53, "%00000035"), Attrs([Attr("address","0x75C"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("R31",Imm(64)), -Var("#0",Imm(64))), Def(Tid(59, "%0000003b"), Attrs([Attr("address","0x760"), -Attr("insn","mov x29, sp")]), Var("R29",Imm(64)), Var("R31",Imm(64))), -Def(Tid(66, "%00000042"), Attrs([Attr("address","0x764"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R29",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(71, "%00000047"), Attrs([Attr("address","0x764"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R30",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(75, "%0000004b"), Attrs([Attr("address","0x764"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(16,64)))]), Jmps([Call(Tid(80, "%00000050"), - Attrs([Attr("address","0x768"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), Sub(Tid(1_548, "@_init"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x580")]), - "_init", Args([Arg(Tid(1_602, "%00000642"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("_init_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(1_366, "@_init"), - Attrs([Attr("address","0x580")]), Phis([]), -Defs([Def(Tid(1_372, "%0000055c"), Attrs([Attr("address","0x584"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("#6",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(18446744073709551600,64))), -Def(Tid(1_378, "%00000562"), Attrs([Attr("address","0x584"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("#6",Imm(64)),Var("R29",Imm(64)),LittleEndian(),64)), -Def(Tid(1_384, "%00000568"), Attrs([Attr("address","0x584"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("#6",Imm(64)),Int(8,64)),Var("R30",Imm(64)),LittleEndian(),64)), -Def(Tid(1_388, "%0000056c"), Attrs([Attr("address","0x584"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("R31",Imm(64)), -Var("#6",Imm(64))), Def(Tid(1_394, "%00000572"), - Attrs([Attr("address","0x588"), Attr("insn","mov x29, sp")]), - Var("R29",Imm(64)), Var("R31",Imm(64))), Def(Tid(1_399, "%00000577"), - Attrs([Attr("address","0x58C"), Attr("insn","bl #0xa8")]), - Var("R30",Imm(64)), Int(1424,64))]), Jmps([Call(Tid(1_401, "%00000579"), - Attrs([Attr("address","0x58C"), Attr("insn","bl #0xa8")]), Int(1,1), -(Direct(Tid(1_553, "@call_weak_fn")),Direct(Tid(1_403, "%0000057b"))))])), -Blk(Tid(1_403, "%0000057b"), Attrs([Attr("address","0x590")]), Phis([]), -Defs([Def(Tid(1_408, "%00000580"), Attrs([Attr("address","0x590"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R29",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(1_413, "%00000585"), Attrs([Attr("address","0x590"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R30",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(1_417, "%00000589"), Attrs([Attr("address","0x590"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(16,64)))]), Jmps([Call(Tid(1_422, "%0000058e"), - Attrs([Attr("address","0x594"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), Sub(Tid(1_549, "@_start"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x600"), -Attr("stub","()"), Attr("entry-point","()")]), "_start", - Args([Arg(Tid(1_603, "%00000643"), Attrs([Attr("c.layout","[signed : 32]"), -Attr("c.data","Top:u32"), Attr("c.type","signed")]), - Var("_start_result",Imm(32)), LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(428, "@_start"), Attrs([Attr("address","0x600")]), Phis([]), -Defs([Def(Tid(433, "%000001b1"), Attrs([Attr("address","0x604"), -Attr("insn","mov x29, #0x0")]), Var("R29",Imm(64)), Int(0,64)), -Def(Tid(438, "%000001b6"), Attrs([Attr("address","0x608"), -Attr("insn","mov x30, #0x0")]), Var("R30",Imm(64)), Int(0,64)), -Def(Tid(444, "%000001bc"), Attrs([Attr("address","0x60C"), -Attr("insn","mov x5, x0")]), Var("R5",Imm(64)), Var("R0",Imm(64))), -Def(Tid(451, "%000001c3"), Attrs([Attr("address","0x610"), -Attr("insn","ldr x1, [sp]")]), Var("R1",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(457, "%000001c9"), Attrs([Attr("address","0x614"), -Attr("insn","add x2, sp, #0x8")]), Var("R2",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(8,64))), Def(Tid(463, "%000001cf"), - Attrs([Attr("address","0x618"), Attr("insn","mov x6, sp")]), - Var("R6",Imm(64)), Var("R31",Imm(64))), Def(Tid(468, "%000001d4"), - Attrs([Attr("address","0x61C"), Attr("insn","adrp x0, #65536")]), - Var("R0",Imm(64)), Int(65536,64)), Def(Tid(475, "%000001db"), - Attrs([Attr("address","0x620"), Attr("insn","ldr x0, [x0, #0xff0]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(4080,64)),LittleEndian(),64)), -Def(Tid(480, "%000001e0"), Attrs([Attr("address","0x624"), -Attr("insn","mov x3, #0x0")]), Var("R3",Imm(64)), Int(0,64)), -Def(Tid(485, "%000001e5"), Attrs([Attr("address","0x628"), -Attr("insn","mov x4, #0x0")]), Var("R4",Imm(64)), Int(0,64)), -Def(Tid(490, "%000001ea"), Attrs([Attr("address","0x62C"), -Attr("insn","bl #-0x6c")]), Var("R30",Imm(64)), Int(1584,64))]), -Jmps([Call(Tid(493, "%000001ed"), Attrs([Attr("address","0x62C"), -Attr("insn","bl #-0x6c")]), Int(1,1), -(Direct(Tid(1_546, "@__libc_start_main")),Direct(Tid(495, "%000001ef"))))])), -Blk(Tid(495, "%000001ef"), Attrs([Attr("address","0x630")]), Phis([]), -Defs([Def(Tid(498, "%000001f2"), Attrs([Attr("address","0x630"), -Attr("insn","bl #-0x40")]), Var("R30",Imm(64)), Int(1588,64))]), -Jmps([Call(Tid(501, "%000001f5"), Attrs([Attr("address","0x630"), -Attr("insn","bl #-0x40")]), Int(1,1), -(Direct(Tid(1_552, "@abort")),Direct(Tid(1_586, "%00000632"))))])), -Blk(Tid(1_586, "%00000632"), Attrs([]), Phis([]), Defs([]), -Jmps([Call(Tid(1_587, "%00000633"), Attrs([]), Int(1,1), -(Direct(Tid(1_553, "@call_weak_fn")),))]))])), Sub(Tid(1_552, "@abort"), - Attrs([Attr("noreturn","()"), Attr("c.proto","void (*)(void)"), -Attr("address","0x5F0"), Attr("stub","()")]), "abort", Args([]), -Blks([Blk(Tid(499, "@abort"), Attrs([Attr("address","0x5F0")]), Phis([]), -Defs([Def(Tid(1_227, "%000004cb"), Attrs([Attr("address","0x5F0"), -Attr("insn","adrp x16, #65536")]), Var("R16",Imm(64)), Int(65536,64)), -Def(Tid(1_234, "%000004d2"), Attrs([Attr("address","0x5F4"), -Attr("insn","ldr x17, [x16, #0xfc8]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(4040,64)),LittleEndian(),64)), -Def(Tid(1_240, "%000004d8"), Attrs([Attr("address","0x5F8"), -Attr("insn","add x16, x16, #0xfc8")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(4040,64)))]), Jmps([Call(Tid(1_245, "%000004dd"), - Attrs([Attr("address","0x5FC"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), Sub(Tid(1_553, "@call_weak_fn"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x634")]), - "call_weak_fn", Args([Arg(Tid(1_604, "%00000644"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("call_weak_fn_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(503, "@call_weak_fn"), - Attrs([Attr("address","0x634")]), Phis([]), Defs([Def(Tid(506, "%000001fa"), - Attrs([Attr("address","0x634"), Attr("insn","adrp x0, #65536")]), - Var("R0",Imm(64)), Int(65536,64)), Def(Tid(513, "%00000201"), - Attrs([Attr("address","0x638"), Attr("insn","ldr x0, [x0, #0xfe8]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(4072,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(519, "%00000207"), Attrs([Attr("address","0x63C"), -Attr("insn","cbz x0, #0x8")]), EQ(Var("R0",Imm(64)),Int(0,64)), -Direct(Tid(517, "%00000205"))), Goto(Tid(1_588, "%00000634"), Attrs([]), - Int(1,1), Direct(Tid(999, "%000003e7")))])), Blk(Tid(517, "%00000205"), - Attrs([Attr("address","0x644")]), Phis([]), Defs([]), -Jmps([Call(Tid(525, "%0000020d"), Attrs([Attr("address","0x644"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))])), -Blk(Tid(999, "%000003e7"), Attrs([Attr("address","0x640")]), Phis([]), -Defs([]), Jmps([Goto(Tid(1_002, "%000003ea"), Attrs([Attr("address","0x640"), -Attr("insn","b #-0x60")]), Int(1,1), -Direct(Tid(1_000, "@__gmon_start__")))])), Blk(Tid(1_000, "@__gmon_start__"), - Attrs([Attr("address","0x5E0")]), Phis([]), -Defs([Def(Tid(1_205, "%000004b5"), Attrs([Attr("address","0x5E0"), -Attr("insn","adrp x16, #65536")]), Var("R16",Imm(64)), Int(65536,64)), -Def(Tid(1_212, "%000004bc"), Attrs([Attr("address","0x5E4"), -Attr("insn","ldr x17, [x16, #0xfc0]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(4032,64)),LittleEndian(),64)), -Def(Tid(1_218, "%000004c2"), Attrs([Attr("address","0x5E8"), -Attr("insn","add x16, x16, #0xfc0")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(4032,64)))]), Jmps([Call(Tid(1_223, "%000004c7"), - Attrs([Attr("address","0x5EC"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), -Sub(Tid(1_555, "@deregister_tm_clones"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x650")]), - "deregister_tm_clones", Args([Arg(Tid(1_605, "%00000645"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("deregister_tm_clones_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(531, "@deregister_tm_clones"), - Attrs([Attr("address","0x650")]), Phis([]), Defs([Def(Tid(534, "%00000216"), - Attrs([Attr("address","0x650"), Attr("insn","adrp x0, #69632")]), - Var("R0",Imm(64)), Int(69632,64)), Def(Tid(540, "%0000021c"), - Attrs([Attr("address","0x654"), Attr("insn","add x0, x0, #0x10")]), - Var("R0",Imm(64)), PLUS(Var("R0",Imm(64)),Int(16,64))), -Def(Tid(545, "%00000221"), Attrs([Attr("address","0x658"), -Attr("insn","adrp x1, #69632")]), Var("R1",Imm(64)), Int(69632,64)), -Def(Tid(551, "%00000227"), Attrs([Attr("address","0x65C"), -Attr("insn","add x1, x1, #0x10")]), Var("R1",Imm(64)), -PLUS(Var("R1",Imm(64)),Int(16,64))), Def(Tid(557, "%0000022d"), - Attrs([Attr("address","0x660"), Attr("insn","cmp x1, x0")]), - Var("#1",Imm(64)), NOT(Var("R0",Imm(64)))), Def(Tid(562, "%00000232"), - Attrs([Attr("address","0x660"), Attr("insn","cmp x1, x0")]), - Var("#2",Imm(64)), PLUS(Var("R1",Imm(64)),NOT(Var("R0",Imm(64))))), -Def(Tid(568, "%00000238"), Attrs([Attr("address","0x660"), -Attr("insn","cmp x1, x0")]), Var("VF",Imm(1)), -NEQ(SIGNED(65,PLUS(Var("#2",Imm(64)),Int(1,64))),PLUS(PLUS(SIGNED(65,Var("R1",Imm(64))),SIGNED(65,Var("#1",Imm(64)))),Int(1,65)))), -Def(Tid(574, "%0000023e"), Attrs([Attr("address","0x660"), -Attr("insn","cmp x1, x0")]), Var("CF",Imm(1)), -NEQ(UNSIGNED(65,PLUS(Var("#2",Imm(64)),Int(1,64))),PLUS(PLUS(UNSIGNED(65,Var("R1",Imm(64))),UNSIGNED(65,Var("#1",Imm(64)))),Int(1,65)))), -Def(Tid(578, "%00000242"), Attrs([Attr("address","0x660"), -Attr("insn","cmp x1, x0")]), Var("ZF",Imm(1)), -EQ(PLUS(Var("#2",Imm(64)),Int(1,64)),Int(0,64))), Def(Tid(582, "%00000246"), - Attrs([Attr("address","0x660"), Attr("insn","cmp x1, x0")]), - Var("NF",Imm(1)), Extract(63,63,PLUS(Var("#2",Imm(64)),Int(1,64))))]), -Jmps([Goto(Tid(588, "%0000024c"), Attrs([Attr("address","0x664"), -Attr("insn","b.eq #0x18")]), EQ(Var("ZF",Imm(1)),Int(1,1)), -Direct(Tid(586, "%0000024a"))), Goto(Tid(1_589, "%00000635"), Attrs([]), - Int(1,1), Direct(Tid(969, "%000003c9")))])), Blk(Tid(969, "%000003c9"), - Attrs([Attr("address","0x668")]), Phis([]), Defs([Def(Tid(972, "%000003cc"), - Attrs([Attr("address","0x668"), Attr("insn","adrp x1, #65536")]), - Var("R1",Imm(64)), Int(65536,64)), Def(Tid(979, "%000003d3"), - Attrs([Attr("address","0x66C"), Attr("insn","ldr x1, [x1, #0xfd8]")]), - Var("R1",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R1",Imm(64)),Int(4056,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(984, "%000003d8"), Attrs([Attr("address","0x670"), -Attr("insn","cbz x1, #0xc")]), EQ(Var("R1",Imm(64)),Int(0,64)), -Direct(Tid(586, "%0000024a"))), Goto(Tid(1_590, "%00000636"), Attrs([]), - Int(1,1), Direct(Tid(988, "%000003dc")))])), Blk(Tid(586, "%0000024a"), - Attrs([Attr("address","0x67C")]), Phis([]), Defs([]), -Jmps([Call(Tid(594, "%00000252"), Attrs([Attr("address","0x67C"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))])), -Blk(Tid(988, "%000003dc"), Attrs([Attr("address","0x674")]), Phis([]), -Defs([Def(Tid(992, "%000003e0"), Attrs([Attr("address","0x674"), -Attr("insn","mov x16, x1")]), Var("R16",Imm(64)), Var("R1",Imm(64)))]), -Jmps([Call(Tid(997, "%000003e5"), Attrs([Attr("address","0x678"), -Attr("insn","br x16")]), Int(1,1), (Indirect(Var("R16",Imm(64))),))]))])), -Sub(Tid(1_558, "@frame_dummy"), Attrs([Attr("c.proto","signed (*)(void)"), -Attr("address","0x710")]), "frame_dummy", Args([Arg(Tid(1_606, "%00000646"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("frame_dummy_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(746, "@frame_dummy"), - Attrs([Attr("address","0x710")]), Phis([]), Defs([]), -Jmps([Call(Tid(748, "%000002ec"), Attrs([Attr("address","0x710"), -Attr("insn","b #-0x90")]), Int(1,1), -(Direct(Tid(1_560, "@register_tm_clones")),))]))])), Sub(Tid(1_559, "@main"), - Attrs([Attr("c.proto","signed (*)(signed argc, const char** argv)"), -Attr("address","0x71C")]), "main", Args([Arg(Tid(1_607, "%00000647"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("main_argc",Imm(32)), -LOW(32,Var("R0",Imm(64))), In()), Arg(Tid(1_608, "%00000648"), - Attrs([Attr("c.layout","**[char : 8]"), Attr("c.data","Top:u8 ptr ptr"), -Attr("c.type"," const char**")]), Var("main_argv",Imm(64)), -Var("R1",Imm(64)), Both()), Arg(Tid(1_609, "%00000649"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("main_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(760, "@main"), - Attrs([Attr("address","0x71C")]), Phis([]), Defs([Def(Tid(764, "%000002fc"), - Attrs([Attr("address","0x71C"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("#4",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(18446744073709551584,64))), -Def(Tid(770, "%00000302"), Attrs([Attr("address","0x71C"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("#4",Imm(64)),Var("R29",Imm(64)),LittleEndian(),64)), -Def(Tid(776, "%00000308"), Attrs([Attr("address","0x71C"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("#4",Imm(64)),Int(8,64)),Var("R30",Imm(64)),LittleEndian(),64)), -Def(Tid(780, "%0000030c"), Attrs([Attr("address","0x71C"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("R31",Imm(64)), -Var("#4",Imm(64))), Def(Tid(786, "%00000312"), - Attrs([Attr("address","0x720"), Attr("insn","mov x29, sp")]), - Var("R29",Imm(64)), Var("R31",Imm(64))), Def(Tid(794, "%0000031a"), - Attrs([Attr("address","0x724"), Attr("insn","str w0, [sp, #0x1c]")]), - Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(28,64)),Extract(31,0,Var("R0",Imm(64))),LittleEndian(),32)), -Def(Tid(799, "%0000031f"), Attrs([Attr("address","0x728"), -Attr("insn","bl #-0x14")]), Var("R30",Imm(64)), Int(1836,64))]), -Jmps([Call(Tid(801, "%00000321"), Attrs([Attr("address","0x728"), -Attr("insn","bl #-0x14")]), Int(1,1), -(Direct(Tid(1_563, "@zero")),Direct(Tid(803, "%00000323"))))])), -Blk(Tid(803, "%00000323"), Attrs([Attr("address","0x72C")]), Phis([]), -Defs([Def(Tid(807, "%00000327"), Attrs([Attr("address","0x72C"), -Attr("insn","mov w1, w0")]), Var("R1",Imm(64)), -UNSIGNED(64,Extract(31,0,Var("R0",Imm(64))))), Def(Tid(812, "%0000032c"), - Attrs([Attr("address","0x730"), Attr("insn","adrp x0, #69632")]), - Var("R0",Imm(64)), Int(69632,64)), Def(Tid(818, "%00000332"), - Attrs([Attr("address","0x734"), Attr("insn","add x0, x0, #0x14")]), - Var("R0",Imm(64)), PLUS(Var("R0",Imm(64)),Int(20,64))), -Def(Tid(826, "%0000033a"), Attrs([Attr("address","0x738"), -Attr("insn","str w1, [x0]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("R0",Imm(64)),Extract(31,0,Var("R1",Imm(64))),LittleEndian(),32)), -Def(Tid(831, "%0000033f"), Attrs([Attr("address","0x73C"), -Attr("insn","adrp x0, #69632")]), Var("R0",Imm(64)), Int(69632,64)), -Def(Tid(837, "%00000345"), Attrs([Attr("address","0x740"), -Attr("insn","add x0, x0, #0x18")]), Var("R0",Imm(64)), -PLUS(Var("R0",Imm(64)),Int(24,64))), Def(Tid(844, "%0000034c"), - Attrs([Attr("address","0x744"), Attr("insn","ldr w1, [sp, #0x1c]")]), - Var("R1",Imm(64)), -UNSIGNED(64,Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(28,64)),LittleEndian(),32))), -Def(Tid(852, "%00000354"), Attrs([Attr("address","0x748"), -Attr("insn","str w1, [x0]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("R0",Imm(64)),Extract(31,0,Var("R1",Imm(64))),LittleEndian(),32)), -Def(Tid(857, "%00000359"), Attrs([Attr("address","0x74C"), -Attr("insn","mov w0, #0x0")]), Var("R0",Imm(64)), Int(0,64)), -Def(Tid(864, "%00000360"), Attrs([Attr("address","0x750"), -Attr("insn","ldp x29, x30, [sp], #0x20")]), Var("R29",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(869, "%00000365"), Attrs([Attr("address","0x750"), -Attr("insn","ldp x29, x30, [sp], #0x20")]), Var("R30",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(873, "%00000369"), Attrs([Attr("address","0x750"), -Attr("insn","ldp x29, x30, [sp], #0x20")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(32,64)))]), Jmps([Call(Tid(878, "%0000036e"), - Attrs([Attr("address","0x754"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), -Sub(Tid(1_560, "@register_tm_clones"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x680")]), - "register_tm_clones", Args([Arg(Tid(1_610, "%0000064a"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("register_tm_clones_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(596, "@register_tm_clones"), Attrs([Attr("address","0x680")]), - Phis([]), Defs([Def(Tid(599, "%00000257"), Attrs([Attr("address","0x680"), -Attr("insn","adrp x0, #69632")]), Var("R0",Imm(64)), Int(69632,64)), -Def(Tid(605, "%0000025d"), Attrs([Attr("address","0x684"), -Attr("insn","add x0, x0, #0x10")]), Var("R0",Imm(64)), -PLUS(Var("R0",Imm(64)),Int(16,64))), Def(Tid(610, "%00000262"), - Attrs([Attr("address","0x688"), Attr("insn","adrp x1, #69632")]), - Var("R1",Imm(64)), Int(69632,64)), Def(Tid(616, "%00000268"), - Attrs([Attr("address","0x68C"), Attr("insn","add x1, x1, #0x10")]), - Var("R1",Imm(64)), PLUS(Var("R1",Imm(64)),Int(16,64))), -Def(Tid(623, "%0000026f"), Attrs([Attr("address","0x690"), -Attr("insn","sub x1, x1, x0")]), Var("R1",Imm(64)), -PLUS(PLUS(Var("R1",Imm(64)),NOT(Var("R0",Imm(64)))),Int(1,64))), -Def(Tid(629, "%00000275"), Attrs([Attr("address","0x694"), -Attr("insn","lsr x2, x1, #63")]), Var("R2",Imm(64)), -Concat(Int(0,63),Extract(63,63,Var("R1",Imm(64))))), -Def(Tid(636, "%0000027c"), Attrs([Attr("address","0x698"), -Attr("insn","add x1, x2, x1, asr #3")]), Var("R1",Imm(64)), -PLUS(Var("R2",Imm(64)),ARSHIFT(Var("R1",Imm(64)),Int(3,3)))), -Def(Tid(642, "%00000282"), Attrs([Attr("address","0x69C"), -Attr("insn","asr x1, x1, #1")]), Var("R1",Imm(64)), -SIGNED(64,Extract(63,1,Var("R1",Imm(64)))))]), -Jmps([Goto(Tid(648, "%00000288"), Attrs([Attr("address","0x6A0"), -Attr("insn","cbz x1, #0x18")]), EQ(Var("R1",Imm(64)),Int(0,64)), -Direct(Tid(646, "%00000286"))), Goto(Tid(1_591, "%00000637"), Attrs([]), - Int(1,1), Direct(Tid(939, "%000003ab")))])), Blk(Tid(939, "%000003ab"), - Attrs([Attr("address","0x6A4")]), Phis([]), Defs([Def(Tid(942, "%000003ae"), - Attrs([Attr("address","0x6A4"), Attr("insn","adrp x2, #65536")]), - Var("R2",Imm(64)), Int(65536,64)), Def(Tid(949, "%000003b5"), - Attrs([Attr("address","0x6A8"), Attr("insn","ldr x2, [x2, #0xff8]")]), - Var("R2",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R2",Imm(64)),Int(4088,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(954, "%000003ba"), Attrs([Attr("address","0x6AC"), -Attr("insn","cbz x2, #0xc")]), EQ(Var("R2",Imm(64)),Int(0,64)), -Direct(Tid(646, "%00000286"))), Goto(Tid(1_592, "%00000638"), Attrs([]), - Int(1,1), Direct(Tid(958, "%000003be")))])), Blk(Tid(646, "%00000286"), - Attrs([Attr("address","0x6B8")]), Phis([]), Defs([]), -Jmps([Call(Tid(654, "%0000028e"), Attrs([Attr("address","0x6B8"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))])), -Blk(Tid(958, "%000003be"), Attrs([Attr("address","0x6B0")]), Phis([]), -Defs([Def(Tid(962, "%000003c2"), Attrs([Attr("address","0x6B0"), -Attr("insn","mov x16, x2")]), Var("R16",Imm(64)), Var("R2",Imm(64)))]), -Jmps([Call(Tid(967, "%000003c7"), Attrs([Attr("address","0x6B4"), -Attr("insn","br x16")]), Int(1,1), (Indirect(Var("R16",Imm(64))),))]))])), -Sub(Tid(1_563, "@zero"), Attrs([Attr("c.proto","signed (*)(void)"), -Attr("address","0x714")]), "zero", Args([Arg(Tid(1_611, "%0000064b"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("zero_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(750, "@zero"), - Attrs([Attr("address","0x714")]), Phis([]), Defs([Def(Tid(753, "%000002f1"), - Attrs([Attr("address","0x714"), Attr("insn","mov w0, #0x0")]), - Var("R0",Imm(64)), Int(0,64))]), Jmps([Call(Tid(758, "%000002f6"), - Attrs([Attr("address","0x718"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))]))]))) \ No newline at end of file diff --git a/src/test/correct/basic_function_call_caller/gcc/basic_function_call_caller.bir b/src/test/correct/basic_function_call_caller/gcc/basic_function_call_caller.bir deleted file mode 100644 index 3f3a22272..000000000 --- a/src/test/correct/basic_function_call_caller/gcc/basic_function_call_caller.bir +++ /dev/null @@ -1,252 +0,0 @@ -00000639: program -00000605: sub __cxa_finalize(__cxa_finalize_result) -0000063a: __cxa_finalize_result :: out u32 = low:32[R0] - -000003a7: -0000049f: R16 := 0x10000 -000004a6: R17 := mem[R16 + 0xFB8, el]:u64 -000004ac: R16 := R16 + 0xFB8 -000004b1: call R17 with noreturn - -00000606: sub __do_global_dtors_aux(__do_global_dtors_aux_result) -0000063b: __do_global_dtors_aux_result :: out u32 = low:32[R0] - -00000292: -00000296: #3 := R31 - 0x20 -0000029c: mem := mem with [#3, el]:u64 <- R29 -000002a2: mem := mem with [#3 + 8, el]:u64 <- R30 -000002a6: R31 := #3 -000002ac: R29 := R31 -000002b4: mem := mem with [R31 + 0x10, el]:u64 <- R19 -000002b9: R19 := 0x11000 -000002c0: R0 := pad:64[mem[R19 + 0x10]] -000002c7: when 31:0[R0] <> 0 goto %000002c5 -0000062f: goto %00000370 - -00000370: -00000373: R0 := 0x10000 -0000037a: R0 := mem[R0 + 0xFE0, el]:u64 -00000380: when R0 = 0 goto %0000037e -00000630: goto %00000397 - -00000397: -0000039a: R0 := 0x11000 -000003a1: R0 := mem[R0 + 8, el]:u64 -000003a6: R30 := 0x6F0 -000003a9: call @__cxa_finalize with return %0000037e - -0000037e: -00000386: R30 := 0x6F4 -00000388: call @deregister_tm_clones with return %0000038a - -0000038a: -0000038d: R0 := 1 -00000395: mem := mem with [R19 + 0x10] <- 7:0[R0] -00000631: goto %000002c5 - -000002c5: -000002cf: R19 := mem[R31 + 0x10, el]:u64 -000002d6: R29 := mem[R31, el]:u64 -000002db: R30 := mem[R31 + 8, el]:u64 -000002df: R31 := R31 + 0x20 -000002e4: call R30 with noreturn - -0000060a: sub __libc_start_main(__libc_start_main_main, __libc_start_main_arg2, __libc_start_main_arg3, __libc_start_main_auxv, __libc_start_main_result) -0000063c: __libc_start_main_main :: in u64 = R0 -0000063d: __libc_start_main_arg2 :: in u32 = low:32[R1] -0000063e: __libc_start_main_arg3 :: in out u64 = R2 -0000063f: __libc_start_main_auxv :: in out u64 = R3 -00000640: __libc_start_main_result :: out u32 = low:32[R0] - -000001eb: -00000489: R16 := 0x10000 -00000490: R17 := mem[R16 + 0xFB0, el]:u64 -00000496: R16 := R16 + 0xFB0 -0000049b: call R17 with noreturn - -0000060b: sub _fini(_fini_result) -00000641: _fini_result :: out u32 = low:32[R0] - -0000001f: -00000025: #0 := R31 - 0x10 -0000002b: mem := mem with [#0, el]:u64 <- R29 -00000031: mem := mem with [#0 + 8, el]:u64 <- R30 -00000035: R31 := #0 -0000003b: R29 := R31 -00000042: R29 := mem[R31, el]:u64 -00000047: R30 := mem[R31 + 8, el]:u64 -0000004b: R31 := R31 + 0x10 -00000050: call R30 with noreturn - -0000060c: sub _init(_init_result) -00000642: _init_result :: out u32 = low:32[R0] - -00000556: -0000055c: #6 := R31 - 0x10 -00000562: mem := mem with [#6, el]:u64 <- R29 -00000568: mem := mem with [#6 + 8, el]:u64 <- R30 -0000056c: R31 := #6 -00000572: R29 := R31 -00000577: R30 := 0x590 -00000579: call @call_weak_fn with return %0000057b - -0000057b: -00000580: R29 := mem[R31, el]:u64 -00000585: R30 := mem[R31 + 8, el]:u64 -00000589: R31 := R31 + 0x10 -0000058e: call R30 with noreturn - -0000060d: sub _start(_start_result) -00000643: _start_result :: out u32 = low:32[R0] - -000001ac: -000001b1: R29 := 0 -000001b6: R30 := 0 -000001bc: R5 := R0 -000001c3: R1 := mem[R31, el]:u64 -000001c9: R2 := R31 + 8 -000001cf: R6 := R31 -000001d4: R0 := 0x10000 -000001db: R0 := mem[R0 + 0xFF0, el]:u64 -000001e0: R3 := 0 -000001e5: R4 := 0 -000001ea: R30 := 0x630 -000001ed: call @__libc_start_main with return %000001ef - -000001ef: -000001f2: R30 := 0x634 -000001f5: call @abort with return %00000632 - -00000632: -00000633: call @call_weak_fn with noreturn - -00000610: sub abort() - - -000001f3: -000004cb: R16 := 0x10000 -000004d2: R17 := mem[R16 + 0xFC8, el]:u64 -000004d8: R16 := R16 + 0xFC8 -000004dd: call R17 with noreturn - -00000611: sub call_weak_fn(call_weak_fn_result) -00000644: call_weak_fn_result :: out u32 = low:32[R0] - -000001f7: -000001fa: R0 := 0x10000 -00000201: R0 := mem[R0 + 0xFE8, el]:u64 -00000207: when R0 = 0 goto %00000205 -00000634: goto %000003e7 - -00000205: -0000020d: call R30 with noreturn - -000003e7: -000003ea: goto @__gmon_start__ - -000003e8: -000004b5: R16 := 0x10000 -000004bc: R17 := mem[R16 + 0xFC0, el]:u64 -000004c2: R16 := R16 + 0xFC0 -000004c7: call R17 with noreturn - -00000613: sub deregister_tm_clones(deregister_tm_clones_result) -00000645: deregister_tm_clones_result :: out u32 = low:32[R0] - -00000213: -00000216: R0 := 0x11000 -0000021c: R0 := R0 + 0x10 -00000221: R1 := 0x11000 -00000227: R1 := R1 + 0x10 -0000022d: #1 := ~R0 -00000232: #2 := R1 + ~R0 -00000238: VF := extend:65[#2 + 1] <> extend:65[R1] + extend:65[#1] + 1 -0000023e: CF := pad:65[#2 + 1] <> pad:65[R1] + pad:65[#1] + 1 -00000242: ZF := #2 + 1 = 0 -00000246: NF := 63:63[#2 + 1] -0000024c: when ZF goto %0000024a -00000635: goto %000003c9 - -000003c9: -000003cc: R1 := 0x10000 -000003d3: R1 := mem[R1 + 0xFD8, el]:u64 -000003d8: when R1 = 0 goto %0000024a -00000636: goto %000003dc - -0000024a: -00000252: call R30 with noreturn - -000003dc: -000003e0: R16 := R1 -000003e5: call R16 with noreturn - -00000616: sub frame_dummy(frame_dummy_result) -00000646: frame_dummy_result :: out u32 = low:32[R0] - -000002ea: -000002ec: call @register_tm_clones with noreturn - -00000617: sub main(main_argc, main_argv, main_result) -00000647: main_argc :: in u32 = low:32[R0] -00000648: main_argv :: in out u64 = R1 -00000649: main_result :: out u32 = low:32[R0] - -000002f8: -000002fc: #4 := R31 - 0x20 -00000302: mem := mem with [#4, el]:u64 <- R29 -00000308: mem := mem with [#4 + 8, el]:u64 <- R30 -0000030c: R31 := #4 -00000312: R29 := R31 -0000031a: mem := mem with [R31 + 0x1C, el]:u32 <- 31:0[R0] -0000031f: R30 := 0x72C -00000321: call @zero with return %00000323 - -00000323: -00000327: R1 := pad:64[31:0[R0]] -0000032c: R0 := 0x11000 -00000332: R0 := R0 + 0x14 -0000033a: mem := mem with [R0, el]:u32 <- 31:0[R1] -0000033f: R0 := 0x11000 -00000345: R0 := R0 + 0x18 -0000034c: R1 := pad:64[mem[R31 + 0x1C, el]:u32] -00000354: mem := mem with [R0, el]:u32 <- 31:0[R1] -00000359: R0 := 0 -00000360: R29 := mem[R31, el]:u64 -00000365: R30 := mem[R31 + 8, el]:u64 -00000369: R31 := R31 + 0x20 -0000036e: call R30 with noreturn - -00000618: sub register_tm_clones(register_tm_clones_result) -0000064a: register_tm_clones_result :: out u32 = low:32[R0] - -00000254: -00000257: R0 := 0x11000 -0000025d: R0 := R0 + 0x10 -00000262: R1 := 0x11000 -00000268: R1 := R1 + 0x10 -0000026f: R1 := R1 + ~R0 + 1 -00000275: R2 := 0.63:63[R1] -0000027c: R1 := R2 + (R1 ~>> 3) -00000282: R1 := extend:64[63:1[R1]] -00000288: when R1 = 0 goto %00000286 -00000637: goto %000003ab - -000003ab: -000003ae: R2 := 0x10000 -000003b5: R2 := mem[R2 + 0xFF8, el]:u64 -000003ba: when R2 = 0 goto %00000286 -00000638: goto %000003be - -00000286: -0000028e: call R30 with noreturn - -000003be: -000003c2: R16 := R2 -000003c7: call R16 with noreturn - -0000061b: sub zero(zero_result) -0000064b: zero_result :: out u32 = low:32[R0] - -000002ee: -000002f1: R0 := 0 -000002f6: call R30 with noreturn diff --git a/src/test/correct/basic_function_call_caller/gcc/basic_function_call_caller.expected b/src/test/correct/basic_function_call_caller/gcc/basic_function_call_caller.expected index bcfaf97a8..ab6788bb3 100644 --- a/src/test/correct/basic_function_call_caller/gcc/basic_function_call_caller.expected +++ b/src/test/correct/basic_function_call_caller/gcc/basic_function_call_caller.expected @@ -93,7 +93,7 @@ implementation {:extern} guarantee_reflexive() assert (gamma_load32(Gamma_mem, $y_addr) ==> ((memory_load32_le(mem, $x_addr) == 0bv32) || gamma_load32(Gamma_mem, $y_addr))); } -procedure main_1820(); +procedure main(); modifies Gamma_R0, Gamma_R1, Gamma_R29, Gamma_R30, Gamma_R31, Gamma_mem, Gamma_stack, R0, R1, R29, R30, R31, mem, stack; requires (Gamma_R0 == false); free requires (memory_load64_le(mem, 69632bv64) == 0bv64); @@ -113,17 +113,17 @@ procedure main_1820(); free ensures (memory_load64_le(mem, 69616bv64) == 1820bv64); free ensures (memory_load64_le(mem, 69640bv64) == 69640bv64); -implementation main_1820() +implementation main() { var #4: bv64; + var $load$18: bv32; + var $load$19: bv64; + var $load$20: bv64; var Gamma_#4: bool; - var Gamma_load18: bool; - var Gamma_load19: bool; - var Gamma_load20: bool; + var Gamma_$load$18: bool; + var Gamma_$load$19: bool; + var Gamma_$load$20: bool; var Gamma_y_old: bool; - var load18: bv32; - var load19: bv64; - var load20: bv64; var x_old: bv32; lmain: assume {:captureState "lmain"} true; @@ -137,7 +137,7 @@ implementation main_1820() stack, Gamma_stack := memory_store32_le(stack, bvadd64(R31, 28bv64), R0[32:0]), gamma_store32(Gamma_stack, bvadd64(R31, 28bv64), Gamma_R0); assume {:captureState "%0000031a"} true; R30, Gamma_R30 := 1836bv64, true; - call zero_1812(); + call zero(); goto l00000323; l00000323: assume {:captureState "l00000323"} true; @@ -145,9 +145,9 @@ implementation main_1820() R0, Gamma_R0 := 69632bv64, true; R0, Gamma_R0 := bvadd64(R0, 20bv64), Gamma_R0; call rely(); + assert (L(mem, R0) ==> Gamma_R1); x_old := memory_load32_le(mem, $x_addr); Gamma_y_old := (gamma_load32(Gamma_mem, $y_addr) || L(mem, $y_addr)); - assert (L(mem, R0) ==> Gamma_R1); mem, Gamma_mem := memory_store32_le(mem, R0, R1[32:0]), gamma_store32(Gamma_mem, R0, Gamma_R1); assert ((R0 == $x_addr) ==> (L(mem, $y_addr) ==> Gamma_y_old)); assert ((x_old == 0bv32) ==> (memory_load32_le(mem, $x_addr) == 0bv32)); @@ -155,30 +155,30 @@ implementation main_1820() assume {:captureState "%0000033a"} true; R0, Gamma_R0 := 69632bv64, true; R0, Gamma_R0 := bvadd64(R0, 24bv64), Gamma_R0; - load18, Gamma_load18 := memory_load32_le(stack, bvadd64(R31, 28bv64)), gamma_load32(Gamma_stack, bvadd64(R31, 28bv64)); - R1, Gamma_R1 := zero_extend32_32(load18), Gamma_load18; + $load$18, Gamma_$load$18 := memory_load32_le(stack, bvadd64(R31, 28bv64)), gamma_load32(Gamma_stack, bvadd64(R31, 28bv64)); + R1, Gamma_R1 := zero_extend32_32($load$18), Gamma_$load$18; call rely(); + assert (L(mem, R0) ==> Gamma_R1); x_old := memory_load32_le(mem, $x_addr); Gamma_y_old := (gamma_load32(Gamma_mem, $y_addr) || L(mem, $y_addr)); - assert (L(mem, R0) ==> Gamma_R1); mem, Gamma_mem := memory_store32_le(mem, R0, R1[32:0]), gamma_store32(Gamma_mem, R0, Gamma_R1); assert ((R0 == $x_addr) ==> (L(mem, $y_addr) ==> Gamma_y_old)); assert ((x_old == 0bv32) ==> (memory_load32_le(mem, $x_addr) == 0bv32)); assert (Gamma_y_old ==> ((memory_load32_le(mem, $x_addr) == 0bv32) || gamma_load32(Gamma_mem, $y_addr))); assume {:captureState "%00000354"} true; R0, Gamma_R0 := 0bv64, true; - load19, Gamma_load19 := memory_load64_le(stack, R31), gamma_load64(Gamma_stack, R31); - R29, Gamma_R29 := load19, Gamma_load19; - load20, Gamma_load20 := memory_load64_le(stack, bvadd64(R31, 8bv64)), gamma_load64(Gamma_stack, bvadd64(R31, 8bv64)); - R30, Gamma_R30 := load20, Gamma_load20; + $load$19, Gamma_$load$19 := memory_load64_le(stack, R31), gamma_load64(Gamma_stack, R31); + R29, Gamma_R29 := $load$19, Gamma_$load$19; + $load$20, Gamma_$load$20 := memory_load64_le(stack, bvadd64(R31, 8bv64)), gamma_load64(Gamma_stack, bvadd64(R31, 8bv64)); + R30, Gamma_R30 := $load$20, Gamma_$load$20; R31, Gamma_R31 := bvadd64(R31, 32bv64), Gamma_R31; - goto main_1820_basil_return; - main_1820_basil_return: - assume {:captureState "main_1820_basil_return"} true; + goto main_basil_return; + main_basil_return: + assume {:captureState "main_basil_return"} true; return; } -procedure zero_1812(); +procedure zero(); modifies Gamma_R0, R0; free requires (memory_load32_le(mem, 1900bv64) == 131073bv32); free requires (memory_load64_le(mem, 69016bv64) == 1808bv64); @@ -192,14 +192,14 @@ procedure zero_1812(); free ensures (memory_load64_le(mem, 69616bv64) == 1820bv64); free ensures (memory_load64_le(mem, 69640bv64) == 69640bv64); -implementation zero_1812() +implementation zero() { lzero: assume {:captureState "lzero"} true; R0, Gamma_R0 := 0bv64, true; - goto zero_1812_basil_return; - zero_1812_basil_return: - assume {:captureState "zero_1812_basil_return"} true; + goto zero_basil_return; + zero_basil_return: + assume {:captureState "zero_basil_return"} true; return; } diff --git a/src/test/correct/basic_function_call_caller/gcc/basic_function_call_caller.gts b/src/test/correct/basic_function_call_caller/gcc/basic_function_call_caller.gts deleted file mode 100644 index 2a8ffc520..000000000 Binary files a/src/test/correct/basic_function_call_caller/gcc/basic_function_call_caller.gts and /dev/null differ diff --git a/src/test/correct/basic_function_call_caller/gcc/basic_function_call_caller.md5sum b/src/test/correct/basic_function_call_caller/gcc/basic_function_call_caller.md5sum new file mode 100644 index 000000000..e13b71d61 --- /dev/null +++ b/src/test/correct/basic_function_call_caller/gcc/basic_function_call_caller.md5sum @@ -0,0 +1,5 @@ +99fed675a6fbbe30b1061cf57857b310 correct/basic_function_call_caller/gcc/a.out +f3942721a84b683bca9bf31594efe4ec correct/basic_function_call_caller/gcc/basic_function_call_caller.adt +76a9abde783028cd71a527a4bf2880fc correct/basic_function_call_caller/gcc/basic_function_call_caller.bir +53f1efbb7edbd7622ca23b1d70425f8b correct/basic_function_call_caller/gcc/basic_function_call_caller.relf +b6a8d1beaff2d0aa7e2b34a3587c4d2f correct/basic_function_call_caller/gcc/basic_function_call_caller.gts diff --git a/src/test/correct/basic_function_call_caller/gcc/basic_function_call_caller.relf b/src/test/correct/basic_function_call_caller/gcc/basic_function_call_caller.relf deleted file mode 100644 index 969d65251..000000000 --- a/src/test/correct/basic_function_call_caller/gcc/basic_function_call_caller.relf +++ /dev/null @@ -1,123 +0,0 @@ - -Relocation section '.rela.dyn' at offset 0x460 contains 8 entries: - Offset Info Type Symbol's Value Symbol's Name + Addend -0000000000010d98 0000000000000403 R_AARCH64_RELATIVE 710 -0000000000010da0 0000000000000403 R_AARCH64_RELATIVE 6c0 -0000000000010ff0 0000000000000403 R_AARCH64_RELATIVE 71c -0000000000011008 0000000000000403 R_AARCH64_RELATIVE 11008 -0000000000010fd8 0000000400000401 R_AARCH64_GLOB_DAT 0000000000000000 _ITM_deregisterTMCloneTable + 0 -0000000000010fe0 0000000500000401 R_AARCH64_GLOB_DAT 0000000000000000 __cxa_finalize@GLIBC_2.17 + 0 -0000000000010fe8 0000000600000401 R_AARCH64_GLOB_DAT 0000000000000000 __gmon_start__ + 0 -0000000000010ff8 0000000800000401 R_AARCH64_GLOB_DAT 0000000000000000 _ITM_registerTMCloneTable + 0 - -Relocation section '.rela.plt' at offset 0x520 contains 4 entries: - Offset Info Type Symbol's Value Symbol's Name + Addend -0000000000010fb0 0000000300000402 R_AARCH64_JUMP_SLOT 0000000000000000 __libc_start_main@GLIBC_2.34 + 0 -0000000000010fb8 0000000500000402 R_AARCH64_JUMP_SLOT 0000000000000000 __cxa_finalize@GLIBC_2.17 + 0 -0000000000010fc0 0000000600000402 R_AARCH64_JUMP_SLOT 0000000000000000 __gmon_start__ + 0 -0000000000010fc8 0000000700000402 R_AARCH64_JUMP_SLOT 0000000000000000 abort@GLIBC_2.17 + 0 - -Symbol table '.dynsym' contains 9 entries: - Num: Value Size Type Bind Vis Ndx Name - 0: 0000000000000000 0 NOTYPE LOCAL DEFAULT UND - 1: 0000000000000580 0 SECTION LOCAL DEFAULT 11 .init - 2: 0000000000011000 0 SECTION LOCAL DEFAULT 22 .data - 3: 0000000000000000 0 FUNC GLOBAL DEFAULT UND __libc_start_main@GLIBC_2.34 (2) - 4: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_deregisterTMCloneTable - 5: 0000000000000000 0 FUNC WEAK DEFAULT UND __cxa_finalize@GLIBC_2.17 (3) - 6: 0000000000000000 0 NOTYPE WEAK DEFAULT UND __gmon_start__ - 7: 0000000000000000 0 FUNC GLOBAL DEFAULT UND abort@GLIBC_2.17 (3) - 8: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_registerTMCloneTable - -Symbol table '.symtab' contains 90 entries: - Num: Value Size Type Bind Vis Ndx Name - 0: 0000000000000000 0 NOTYPE LOCAL DEFAULT UND - 1: 0000000000000238 0 SECTION LOCAL DEFAULT 1 .interp - 2: 0000000000000254 0 SECTION LOCAL DEFAULT 2 .note.gnu.build-id - 3: 0000000000000278 0 SECTION LOCAL DEFAULT 3 .note.ABI-tag - 4: 0000000000000298 0 SECTION LOCAL DEFAULT 4 .gnu.hash - 5: 00000000000002b8 0 SECTION LOCAL DEFAULT 5 .dynsym - 6: 0000000000000390 0 SECTION LOCAL DEFAULT 6 .dynstr - 7: 000000000000041e 0 SECTION LOCAL DEFAULT 7 .gnu.version - 8: 0000000000000430 0 SECTION LOCAL DEFAULT 8 .gnu.version_r - 9: 0000000000000460 0 SECTION LOCAL DEFAULT 9 .rela.dyn - 10: 0000000000000520 0 SECTION LOCAL DEFAULT 10 .rela.plt - 11: 0000000000000580 0 SECTION LOCAL DEFAULT 11 .init - 12: 00000000000005a0 0 SECTION LOCAL DEFAULT 12 .plt - 13: 0000000000000600 0 SECTION LOCAL DEFAULT 13 .text - 14: 0000000000000758 0 SECTION LOCAL DEFAULT 14 .fini - 15: 000000000000076c 0 SECTION LOCAL DEFAULT 15 .rodata - 16: 0000000000000770 0 SECTION LOCAL DEFAULT 16 .eh_frame_hdr - 17: 00000000000007b8 0 SECTION LOCAL DEFAULT 17 .eh_frame - 18: 0000000000010d98 0 SECTION LOCAL DEFAULT 18 .init_array - 19: 0000000000010da0 0 SECTION LOCAL DEFAULT 19 .fini_array - 20: 0000000000010da8 0 SECTION LOCAL DEFAULT 20 .dynamic - 21: 0000000000010f98 0 SECTION LOCAL DEFAULT 21 .got - 22: 0000000000011000 0 SECTION LOCAL DEFAULT 22 .data - 23: 0000000000011010 0 SECTION LOCAL DEFAULT 23 .bss - 24: 0000000000000000 0 SECTION LOCAL DEFAULT 24 .comment - 25: 0000000000000000 0 FILE LOCAL DEFAULT ABS Scrt1.o - 26: 0000000000000278 0 NOTYPE LOCAL DEFAULT 3 $d - 27: 0000000000000278 32 OBJECT LOCAL DEFAULT 3 __abi_tag - 28: 0000000000000600 0 NOTYPE LOCAL DEFAULT 13 $x - 29: 00000000000007cc 0 NOTYPE LOCAL DEFAULT 17 $d - 30: 000000000000076c 0 NOTYPE LOCAL DEFAULT 15 $d - 31: 0000000000000000 0 FILE LOCAL DEFAULT ABS crti.o - 32: 0000000000000634 0 NOTYPE LOCAL DEFAULT 13 $x - 33: 0000000000000634 20 FUNC LOCAL DEFAULT 13 call_weak_fn - 34: 0000000000000580 0 NOTYPE LOCAL DEFAULT 11 $x - 35: 0000000000000758 0 NOTYPE LOCAL DEFAULT 14 $x - 36: 0000000000000000 0 FILE LOCAL DEFAULT ABS crtn.o - 37: 0000000000000590 0 NOTYPE LOCAL DEFAULT 11 $x - 38: 0000000000000764 0 NOTYPE LOCAL DEFAULT 14 $x - 39: 0000000000000000 0 FILE LOCAL DEFAULT ABS crtstuff.c - 40: 0000000000000650 0 NOTYPE LOCAL DEFAULT 13 $x - 41: 0000000000000650 0 FUNC LOCAL DEFAULT 13 deregister_tm_clones - 42: 0000000000000680 0 FUNC LOCAL DEFAULT 13 register_tm_clones - 43: 0000000000011008 0 NOTYPE LOCAL DEFAULT 22 $d - 44: 00000000000006c0 0 FUNC LOCAL DEFAULT 13 __do_global_dtors_aux - 45: 0000000000011010 1 OBJECT LOCAL DEFAULT 23 completed.0 - 46: 0000000000010da0 0 NOTYPE LOCAL DEFAULT 19 $d - 47: 0000000000010da0 0 OBJECT LOCAL DEFAULT 19 __do_global_dtors_aux_fini_array_entry - 48: 0000000000000710 0 FUNC LOCAL DEFAULT 13 frame_dummy - 49: 0000000000010d98 0 NOTYPE LOCAL DEFAULT 18 $d - 50: 0000000000010d98 0 OBJECT LOCAL DEFAULT 18 __frame_dummy_init_array_entry - 51: 00000000000007e0 0 NOTYPE LOCAL DEFAULT 17 $d - 52: 0000000000011010 0 NOTYPE LOCAL DEFAULT 23 $d - 53: 0000000000000000 0 FILE LOCAL DEFAULT ABS basic_function_call_caller.c - 54: 0000000000011014 0 NOTYPE LOCAL DEFAULT 23 $d - 55: 0000000000000714 0 NOTYPE LOCAL DEFAULT 13 $x - 56: 0000000000000840 0 NOTYPE LOCAL DEFAULT 17 $d - 57: 0000000000000000 0 FILE LOCAL DEFAULT ABS crtstuff.c - 58: 0000000000000874 0 NOTYPE LOCAL DEFAULT 17 $d - 59: 0000000000000874 0 OBJECT LOCAL DEFAULT 17 __FRAME_END__ - 60: 0000000000000000 0 FILE LOCAL DEFAULT ABS - 61: 0000000000010da8 0 OBJECT LOCAL DEFAULT ABS _DYNAMIC - 62: 0000000000000770 0 NOTYPE LOCAL DEFAULT 16 __GNU_EH_FRAME_HDR - 63: 0000000000010fd0 0 OBJECT LOCAL DEFAULT ABS _GLOBAL_OFFSET_TABLE_ - 64: 00000000000005a0 0 NOTYPE LOCAL DEFAULT 12 $x - 65: 0000000000000000 0 FUNC GLOBAL DEFAULT UND __libc_start_main@GLIBC_2.34 - 66: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_deregisterTMCloneTable - 67: 0000000000011000 0 NOTYPE WEAK DEFAULT 22 data_start - 68: 0000000000011010 0 NOTYPE GLOBAL DEFAULT 23 __bss_start__ - 69: 0000000000000000 0 FUNC WEAK DEFAULT UND __cxa_finalize@GLIBC_2.17 - 70: 0000000000011020 0 NOTYPE GLOBAL DEFAULT 23 _bss_end__ - 71: 0000000000011010 0 NOTYPE GLOBAL DEFAULT 22 _edata - 72: 0000000000011014 4 OBJECT GLOBAL DEFAULT 23 x - 73: 0000000000000758 0 FUNC GLOBAL HIDDEN 14 _fini - 74: 0000000000011020 0 NOTYPE GLOBAL DEFAULT 23 __bss_end__ - 75: 0000000000011000 0 NOTYPE GLOBAL DEFAULT 22 __data_start - 76: 0000000000000000 0 NOTYPE WEAK DEFAULT UND __gmon_start__ - 77: 0000000000011008 0 OBJECT GLOBAL HIDDEN 22 __dso_handle - 78: 0000000000000000 0 FUNC GLOBAL DEFAULT UND abort@GLIBC_2.17 - 79: 000000000000076c 4 OBJECT GLOBAL DEFAULT 15 _IO_stdin_used - 80: 0000000000011020 0 NOTYPE GLOBAL DEFAULT 23 _end - 81: 0000000000000600 52 FUNC GLOBAL DEFAULT 13 _start - 82: 0000000000000714 8 FUNC GLOBAL DEFAULT 13 zero - 83: 0000000000011020 0 NOTYPE GLOBAL DEFAULT 23 __end__ - 84: 0000000000011018 4 OBJECT GLOBAL DEFAULT 23 y - 85: 0000000000011010 0 NOTYPE GLOBAL DEFAULT 23 __bss_start - 86: 000000000000071c 60 FUNC GLOBAL DEFAULT 13 main - 87: 0000000000011010 0 OBJECT GLOBAL HIDDEN 22 __TMC_END__ - 88: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_registerTMCloneTable - 89: 0000000000000580 0 FUNC GLOBAL HIDDEN 11 _init diff --git a/src/test/correct/basic_function_call_caller/gcc/basic_function_call_caller_gtirb.expected b/src/test/correct/basic_function_call_caller/gcc/basic_function_call_caller_gtirb.expected index 354d2a855..82642d5b7 100644 --- a/src/test/correct/basic_function_call_caller/gcc/basic_function_call_caller_gtirb.expected +++ b/src/test/correct/basic_function_call_caller/gcc/basic_function_call_caller_gtirb.expected @@ -93,7 +93,7 @@ implementation {:extern} guarantee_reflexive() assert (gamma_load32(Gamma_mem, $y_addr) ==> ((memory_load32_le(mem, $x_addr) == 0bv32) || gamma_load32(Gamma_mem, $y_addr))); } -procedure main_1820(); +procedure main(); modifies Gamma_R0, Gamma_R1, Gamma_R29, Gamma_R30, Gamma_R31, Gamma_mem, Gamma_stack, R0, R1, R29, R30, R31, mem, stack; requires (Gamma_R0 == false); free requires (memory_load64_le(mem, 69632bv64) == 0bv64); @@ -113,72 +113,72 @@ procedure main_1820(); free ensures (memory_load64_le(mem, 69616bv64) == 1820bv64); free ensures (memory_load64_le(mem, 69640bv64) == 69640bv64); -implementation main_1820() +implementation main() { - var Cse0__5_1_0: bv64; - var Gamma_Cse0__5_1_0: bool; - var Gamma_load10: bool; - var Gamma_load8: bool; - var Gamma_load9: bool; + var $load10: bv64; + var $load8: bv32; + var $load9: bv64; + var Cse0__5$1$0: bv64; + var Gamma_$load10: bool; + var Gamma_$load8: bool; + var Gamma_$load9: bool; + var Gamma_Cse0__5$1$0: bool; var Gamma_y_old: bool; - var load10: bv64; - var load8: bv32; - var load9: bv64; var x_old: bv32; - main_1820__0__~dme1bffThCZlg_upQTe8w: - assume {:captureState "main_1820__0__~dme1bffThCZlg_upQTe8w"} true; - Cse0__5_1_0, Gamma_Cse0__5_1_0 := bvadd64(R31, 18446744073709551584bv64), Gamma_R31; - stack, Gamma_stack := memory_store64_le(stack, Cse0__5_1_0, R29), gamma_store64(Gamma_stack, Cse0__5_1_0, Gamma_R29); - assume {:captureState "1820_1"} true; - stack, Gamma_stack := memory_store64_le(stack, bvadd64(Cse0__5_1_0, 8bv64), R30), gamma_store64(Gamma_stack, bvadd64(Cse0__5_1_0, 8bv64), Gamma_R30); - assume {:captureState "1820_2"} true; - R31, Gamma_R31 := Cse0__5_1_0, Gamma_Cse0__5_1_0; + $main$__0__$~dme1bffThCZlg_upQTe8w: + assume {:captureState "$main$__0__$~dme1bffThCZlg_upQTe8w"} true; + Cse0__5$1$0, Gamma_Cse0__5$1$0 := bvadd64(R31, 18446744073709551584bv64), Gamma_R31; + stack, Gamma_stack := memory_store64_le(stack, Cse0__5$1$0, R29), gamma_store64(Gamma_stack, Cse0__5$1$0, Gamma_R29); + assume {:captureState "1820$1"} true; + stack, Gamma_stack := memory_store64_le(stack, bvadd64(Cse0__5$1$0, 8bv64), R30), gamma_store64(Gamma_stack, bvadd64(Cse0__5$1$0, 8bv64), Gamma_R30); + assume {:captureState "1820$2"} true; + R31, Gamma_R31 := Cse0__5$1$0, Gamma_Cse0__5$1$0; R29, Gamma_R29 := R31, Gamma_R31; stack, Gamma_stack := memory_store32_le(stack, bvadd64(R31, 28bv64), R0[32:0]), gamma_store32(Gamma_stack, bvadd64(R31, 28bv64), Gamma_R0); - assume {:captureState "1828_0"} true; + assume {:captureState "1828$0"} true; R30, Gamma_R30 := 1836bv64, true; - call zero_1812(); - goto main_1820__1__4QSzcV2tT5urJoQQ7JLeVA; - main_1820__1__4QSzcV2tT5urJoQQ7JLeVA: - assume {:captureState "main_1820__1__4QSzcV2tT5urJoQQ7JLeVA"} true; + call zero(); + goto $main$__1__$4QSzcV2tT5urJoQQ7JLeVA; + $main$__1__$4QSzcV2tT5urJoQQ7JLeVA: + assume {:captureState "$main$__1__$4QSzcV2tT5urJoQQ7JLeVA"} true; R1, Gamma_R1 := zero_extend32_32(R0[32:0]), Gamma_R0; R0, Gamma_R0 := 69632bv64, true; R0, Gamma_R0 := bvadd64(R0, 20bv64), Gamma_R0; call rely(); + assert (L(mem, R0) ==> Gamma_R1); x_old := memory_load32_le(mem, $x_addr); Gamma_y_old := (gamma_load32(Gamma_mem, $y_addr) || L(mem, $y_addr)); - assert (L(mem, R0) ==> Gamma_R1); mem, Gamma_mem := memory_store32_le(mem, R0, R1[32:0]), gamma_store32(Gamma_mem, R0, Gamma_R1); assert ((R0 == $x_addr) ==> (L(mem, $y_addr) ==> Gamma_y_old)); assert ((x_old == 0bv32) ==> (memory_load32_le(mem, $x_addr) == 0bv32)); assert (Gamma_y_old ==> ((memory_load32_le(mem, $x_addr) == 0bv32) || gamma_load32(Gamma_mem, $y_addr))); - assume {:captureState "1848_0"} true; + assume {:captureState "1848$0"} true; R0, Gamma_R0 := 69632bv64, true; R0, Gamma_R0 := bvadd64(R0, 24bv64), Gamma_R0; - load8, Gamma_load8 := memory_load32_le(stack, bvadd64(R31, 28bv64)), gamma_load32(Gamma_stack, bvadd64(R31, 28bv64)); - R1, Gamma_R1 := zero_extend32_32(load8), Gamma_load8; + $load8, Gamma_$load8 := memory_load32_le(stack, bvadd64(R31, 28bv64)), gamma_load32(Gamma_stack, bvadd64(R31, 28bv64)); + R1, Gamma_R1 := zero_extend32_32($load8), Gamma_$load8; call rely(); + assert (L(mem, R0) ==> Gamma_R1); x_old := memory_load32_le(mem, $x_addr); Gamma_y_old := (gamma_load32(Gamma_mem, $y_addr) || L(mem, $y_addr)); - assert (L(mem, R0) ==> Gamma_R1); mem, Gamma_mem := memory_store32_le(mem, R0, R1[32:0]), gamma_store32(Gamma_mem, R0, Gamma_R1); assert ((R0 == $x_addr) ==> (L(mem, $y_addr) ==> Gamma_y_old)); assert ((x_old == 0bv32) ==> (memory_load32_le(mem, $x_addr) == 0bv32)); assert (Gamma_y_old ==> ((memory_load32_le(mem, $x_addr) == 0bv32) || gamma_load32(Gamma_mem, $y_addr))); - assume {:captureState "1864_0"} true; + assume {:captureState "1864$0"} true; R0, Gamma_R0 := 0bv64, true; - load9, Gamma_load9 := memory_load64_le(stack, R31), gamma_load64(Gamma_stack, R31); - R29, Gamma_R29 := load9, Gamma_load9; - load10, Gamma_load10 := memory_load64_le(stack, bvadd64(R31, 8bv64)), gamma_load64(Gamma_stack, bvadd64(R31, 8bv64)); - R30, Gamma_R30 := load10, Gamma_load10; + $load9, Gamma_$load9 := memory_load64_le(stack, R31), gamma_load64(Gamma_stack, R31); + R29, Gamma_R29 := $load9, Gamma_$load9; + $load10, Gamma_$load10 := memory_load64_le(stack, bvadd64(R31, 8bv64)), gamma_load64(Gamma_stack, bvadd64(R31, 8bv64)); + R30, Gamma_R30 := $load10, Gamma_$load10; R31, Gamma_R31 := bvadd64(R31, 32bv64), Gamma_R31; - goto main_1820_basil_return; - main_1820_basil_return: - assume {:captureState "main_1820_basil_return"} true; + goto main_basil_return; + main_basil_return: + assume {:captureState "main_basil_return"} true; return; } -procedure zero_1812(); +procedure zero(); modifies Gamma_R0, R0; free requires (memory_load32_le(mem, 1900bv64) == 131073bv32); free requires (memory_load64_le(mem, 69016bv64) == 1808bv64); @@ -192,14 +192,14 @@ procedure zero_1812(); free ensures (memory_load64_le(mem, 69616bv64) == 1820bv64); free ensures (memory_load64_le(mem, 69640bv64) == 69640bv64); -implementation zero_1812() +implementation zero() { - zero_1812__0__DyyShWZ6Q~qk7gwUxVGJdA: - assume {:captureState "zero_1812__0__DyyShWZ6Q~qk7gwUxVGJdA"} true; + $zero$__0__$DyyShWZ6Q~qk7gwUxVGJdA: + assume {:captureState "$zero$__0__$DyyShWZ6Q~qk7gwUxVGJdA"} true; R0, Gamma_R0 := 0bv64, true; - goto zero_1812_basil_return; - zero_1812_basil_return: - assume {:captureState "zero_1812_basil_return"} true; + goto zero_basil_return; + zero_basil_return: + assume {:captureState "zero_basil_return"} true; return; } diff --git a/src/test/correct/basic_function_call_caller/gcc_O2/basic_function_call_caller.adt b/src/test/correct/basic_function_call_caller/gcc_O2/basic_function_call_caller.adt deleted file mode 100644 index 59e9c76e4..000000000 --- a/src/test/correct/basic_function_call_caller/gcc_O2/basic_function_call_caller.adt +++ /dev/null @@ -1,507 +0,0 @@ -Project(Attrs([Attr("filename","\"gcc_O2/basic_function_call_caller.out\""), -Attr("image-specification","(declare abi (name str))\n(declare arch (name str))\n(declare base-address (addr int))\n(declare bias (off int))\n(declare bits (size int))\n(declare code-region (addr int) (size int) (off int))\n(declare code-start (addr int))\n(declare entry-point (addr int))\n(declare external-reference (addr int) (name str))\n(declare format (name str))\n(declare is-executable (flag bool))\n(declare is-little-endian (flag bool))\n(declare llvm:base-address (addr int))\n(declare llvm:code-entry (name str) (off int) (size int))\n(declare llvm:coff-import-library (name str))\n(declare llvm:coff-virtual-section-header (name str) (addr int) (size int))\n(declare llvm:elf-program-header (name str) (off int) (size int))\n(declare llvm:elf-program-header-flags (name str) (ld bool) (r bool) \n (w bool) (x bool))\n(declare llvm:elf-virtual-program-header (name str) (addr int) (size int))\n(declare llvm:entry-point (addr int))\n(declare llvm:macho-symbol (name str) (value int))\n(declare llvm:name-reference (at int) (name str))\n(declare llvm:relocation (at int) (addr int))\n(declare llvm:section-entry (name str) (addr int) (size int) (off int))\n(declare llvm:section-flags (name str) (r bool) (w bool) (x bool))\n(declare llvm:segment-command (name str) (off int) (size int))\n(declare llvm:segment-command-flags (name str) (r bool) (w bool) (x bool))\n(declare llvm:symbol-entry (name str) (addr int) (size int) (off int)\n (value int))\n(declare llvm:virtual-segment-command (name str) (addr int) (size int))\n(declare mapped (addr int) (size int) (off int))\n(declare named-region (addr int) (size int) (name str))\n(declare named-symbol (addr int) (name str))\n(declare require (name str))\n(declare section (addr int) (size int))\n(declare segment (addr int) (size int) (r bool) (w bool) (x bool))\n(declare subarch (name str))\n(declare symbol-chunk (addr int) (size int) (root int))\n(declare symbol-value (addr int) (value int))\n(declare system (name str))\n(declare vendor (name str))\n\n(abi unknown)\n(arch aarch64)\n(base-address 0)\n(bias 0)\n(bits 64)\n(code-region 1896 20 1896)\n(code-region 1536 360 1536)\n(code-region 1440 96 1440)\n(code-region 1408 24 1408)\n(code-start 1652)\n(code-start 1600)\n(code-start 1888)\n(code-start 1536)\n(entry-point 1600)\n(external-reference 69592 _ITM_deregisterTMCloneTable)\n(external-reference 69600 __cxa_finalize)\n(external-reference 69608 __gmon_start__)\n(external-reference 69624 _ITM_registerTMCloneTable)\n(external-reference 69552 __libc_start_main)\n(external-reference 69560 __cxa_finalize)\n(external-reference 69568 __gmon_start__)\n(external-reference 69576 abort)\n(format elf)\n(is-executable true)\n(is-little-endian true)\n(llvm:base-address 0)\n(llvm:code-entry abort 0 0)\n(llvm:code-entry __cxa_finalize 0 0)\n(llvm:code-entry __libc_start_main 0 0)\n(llvm:code-entry _init 1408 0)\n(llvm:code-entry main 1536 28)\n(llvm:code-entry zero 1888 8)\n(llvm:code-entry _start 1600 52)\n(llvm:code-entry abort@GLIBC_2.17 0 0)\n(llvm:code-entry _fini 1896 0)\n(llvm:code-entry __cxa_finalize@GLIBC_2.17 0 0)\n(llvm:code-entry __libc_start_main@GLIBC_2.34 0 0)\n(llvm:code-entry frame_dummy 1872 0)\n(llvm:code-entry __do_global_dtors_aux 1792 0)\n(llvm:code-entry register_tm_clones 1728 0)\n(llvm:code-entry deregister_tm_clones 1680 0)\n(llvm:code-entry call_weak_fn 1652 20)\n(llvm:code-entry .fini 1896 20)\n(llvm:code-entry .text 1536 360)\n(llvm:code-entry .plt 1440 96)\n(llvm:code-entry .init 1408 24)\n(llvm:elf-program-header 08 3480 616)\n(llvm:elf-program-header 07 0 0)\n(llvm:elf-program-header 06 1920 68)\n(llvm:elf-program-header 05 596 68)\n(llvm:elf-program-header 04 3496 496)\n(llvm:elf-program-header 03 3480 632)\n(llvm:elf-program-header 02 0 2172)\n(llvm:elf-program-header 01 568 27)\n(llvm:elf-program-header 00 64 504)\n(llvm:elf-program-header-flags 08 false true false false)\n(llvm:elf-program-header-flags 07 false true true false)\n(llvm:elf-program-header-flags 06 false true false false)\n(llvm:elf-program-header-flags 05 false true false false)\n(llvm:elf-program-header-flags 04 false true true false)\n(llvm:elf-program-header-flags 03 true true true false)\n(llvm:elf-program-header-flags 02 true true false true)\n(llvm:elf-program-header-flags 01 false true false false)\n(llvm:elf-program-header-flags 00 false true false false)\n(llvm:elf-virtual-program-header 08 69016 616)\n(llvm:elf-virtual-program-header 07 0 0)\n(llvm:elf-virtual-program-header 06 1920 68)\n(llvm:elf-virtual-program-header 05 596 68)\n(llvm:elf-virtual-program-header 04 69032 496)\n(llvm:elf-virtual-program-header 03 69016 648)\n(llvm:elf-virtual-program-header 02 0 2172)\n(llvm:elf-virtual-program-header 01 568 27)\n(llvm:elf-virtual-program-header 00 64 504)\n(llvm:entry-point 1600)\n(llvm:name-reference 69576 abort)\n(llvm:name-reference 69568 __gmon_start__)\n(llvm:name-reference 69560 __cxa_finalize)\n(llvm:name-reference 69552 __libc_start_main)\n(llvm:name-reference 69624 _ITM_registerTMCloneTable)\n(llvm:name-reference 69608 __gmon_start__)\n(llvm:name-reference 69600 __cxa_finalize)\n(llvm:name-reference 69592 _ITM_deregisterTMCloneTable)\n(llvm:section-entry .shstrtab 0 250 6911)\n(llvm:section-entry .strtab 0 567 6344)\n(llvm:section-entry .symtab 0 2184 4160)\n(llvm:section-entry .comment 0 43 4112)\n(llvm:section-entry .bss 69648 16 4112)\n(llvm:section-entry .data 69632 16 4096)\n(llvm:section-entry .got 69528 104 3992)\n(llvm:section-entry .dynamic 69032 496 3496)\n(llvm:section-entry .fini_array 69024 8 3488)\n(llvm:section-entry .init_array 69016 8 3480)\n(llvm:section-entry .eh_frame 1992 180 1992)\n(llvm:section-entry .eh_frame_hdr 1920 68 1920)\n(llvm:section-entry .rodata 1916 4 1916)\n(llvm:section-entry .fini 1896 20 1896)\n(llvm:section-entry .text 1536 360 1536)\n(llvm:section-entry .plt 1440 96 1440)\n(llvm:section-entry .init 1408 24 1408)\n(llvm:section-entry .rela.plt 1312 96 1312)\n(llvm:section-entry .rela.dyn 1120 192 1120)\n(llvm:section-entry .gnu.version_r 1072 48 1072)\n(llvm:section-entry .gnu.version 1054 18 1054)\n(llvm:section-entry .dynstr 912 141 912)\n(llvm:section-entry .dynsym 696 216 696)\n(llvm:section-entry .gnu.hash 664 28 664)\n(llvm:section-entry .note.ABI-tag 632 32 632)\n(llvm:section-entry .note.gnu.build-id 596 36 596)\n(llvm:section-entry .interp 568 27 568)\n(llvm:section-flags .shstrtab true false false)\n(llvm:section-flags .strtab true false false)\n(llvm:section-flags .symtab true false false)\n(llvm:section-flags .comment true false false)\n(llvm:section-flags .bss true true false)\n(llvm:section-flags .data true true false)\n(llvm:section-flags .got true true false)\n(llvm:section-flags .dynamic true true false)\n(llvm:section-flags .fini_array true true false)\n(llvm:section-flags .init_array true true false)\n(llvm:section-flags .eh_frame true false false)\n(llvm:section-flags .eh_frame_hdr true false false)\n(llvm:section-flags .rodata true false false)\n(llvm:section-flags .fini true false true)\n(llvm:section-flags .text true false true)\n(llvm:section-flags .plt true false true)\n(llvm:section-flags .init true false true)\n(llvm:section-flags .rela.plt true false false)\n(llvm:section-flags .rela.dyn true false false)\n(llvm:section-flags .gnu.version_r true false false)\n(llvm:section-flags .gnu.version true false false)\n(llvm:section-flags .dynstr true false false)\n(llvm:section-flags .dynsym true false false)\n(llvm:section-flags .gnu.hash true false false)\n(llvm:section-flags .note.ABI-tag true false false)\n(llvm:section-flags .note.gnu.build-id true false false)\n(llvm:section-flags .interp true false false)\n(llvm:symbol-entry abort 0 0 0 0)\n(llvm:symbol-entry __cxa_finalize 0 0 0 0)\n(llvm:symbol-entry __libc_start_main 0 0 0 0)\n(llvm:symbol-entry _init 1408 0 1408 1408)\n(llvm:symbol-entry main 1536 28 1536 1536)\n(llvm:symbol-entry zero 1888 8 1888 1888)\n(llvm:symbol-entry _start 1600 52 1600 1600)\n(llvm:symbol-entry abort@GLIBC_2.17 0 0 0 0)\n(llvm:symbol-entry _fini 1896 0 1896 1896)\n(llvm:symbol-entry __cxa_finalize@GLIBC_2.17 0 0 0 0)\n(llvm:symbol-entry __libc_start_main@GLIBC_2.34 0 0 0 0)\n(llvm:symbol-entry frame_dummy 1872 0 1872 1872)\n(llvm:symbol-entry __do_global_dtors_aux 1792 0 1792 1792)\n(llvm:symbol-entry register_tm_clones 1728 0 1728 1728)\n(llvm:symbol-entry deregister_tm_clones 1680 0 1680 1680)\n(llvm:symbol-entry call_weak_fn 1652 20 1652 1652)\n(mapped 0 2172 0)\n(mapped 69016 632 3480)\n(named-region 0 2172 02)\n(named-region 69016 648 03)\n(named-region 568 27 .interp)\n(named-region 596 36 .note.gnu.build-id)\n(named-region 632 32 .note.ABI-tag)\n(named-region 664 28 .gnu.hash)\n(named-region 696 216 .dynsym)\n(named-region 912 141 .dynstr)\n(named-region 1054 18 .gnu.version)\n(named-region 1072 48 .gnu.version_r)\n(named-region 1120 192 .rela.dyn)\n(named-region 1312 96 .rela.plt)\n(named-region 1408 24 .init)\n(named-region 1440 96 .plt)\n(named-region 1536 360 .text)\n(named-region 1896 20 .fini)\n(named-region 1916 4 .rodata)\n(named-region 1920 68 .eh_frame_hdr)\n(named-region 1992 180 .eh_frame)\n(named-region 69016 8 .init_array)\n(named-region 69024 8 .fini_array)\n(named-region 69032 496 .dynamic)\n(named-region 69528 104 .got)\n(named-region 69632 16 .data)\n(named-region 69648 16 .bss)\n(named-region 0 43 .comment)\n(named-region 0 2184 .symtab)\n(named-region 0 567 .strtab)\n(named-region 0 250 .shstrtab)\n(named-symbol 1652 call_weak_fn)\n(named-symbol 1680 deregister_tm_clones)\n(named-symbol 1728 register_tm_clones)\n(named-symbol 1792 __do_global_dtors_aux)\n(named-symbol 1872 frame_dummy)\n(named-symbol 0 __libc_start_main@GLIBC_2.34)\n(named-symbol 0 __cxa_finalize@GLIBC_2.17)\n(named-symbol 1896 _fini)\n(named-symbol 0 abort@GLIBC_2.17)\n(named-symbol 1600 _start)\n(named-symbol 1888 zero)\n(named-symbol 1536 main)\n(named-symbol 1408 _init)\n(named-symbol 0 __libc_start_main)\n(named-symbol 0 __cxa_finalize)\n(named-symbol 0 abort)\n(require libc.so.6)\n(section 568 27)\n(section 596 36)\n(section 632 32)\n(section 664 28)\n(section 696 216)\n(section 912 141)\n(section 1054 18)\n(section 1072 48)\n(section 1120 192)\n(section 1312 96)\n(section 1408 24)\n(section 1440 96)\n(section 1536 360)\n(section 1896 20)\n(section 1916 4)\n(section 1920 68)\n(section 1992 180)\n(section 69016 8)\n(section 69024 8)\n(section 69032 496)\n(section 69528 104)\n(section 69632 16)\n(section 69648 16)\n(section 0 43)\n(section 0 2184)\n(section 0 567)\n(section 0 250)\n(segment 0 2172 true false true)\n(segment 69016 648 true true false)\n(subarch v8)\n(symbol-chunk 1652 20 1652)\n(symbol-chunk 1600 52 1600)\n(symbol-chunk 1888 8 1888)\n(symbol-chunk 1536 28 1536)\n(symbol-value 1652 1652)\n(symbol-value 1680 1680)\n(symbol-value 1728 1728)\n(symbol-value 1792 1792)\n(symbol-value 1872 1872)\n(symbol-value 1896 1896)\n(symbol-value 1600 1600)\n(symbol-value 1888 1888)\n(symbol-value 1536 1536)\n(symbol-value 1408 1408)\n(symbol-value 0 0)\n(system \"\")\n(vendor \"\")\n"), -Attr("abi-name","\"aarch64-linux-gnu-elf\"")]), -Sections([Section(".shstrtab", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x40\x06\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x00\x1c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x38\x00\x09\x00\x40\x00\x1c\x00\x1b\x00\x06\x00\x00\x00\x04\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x04\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x08\x00\x00\x00\x00\x00\x00\x7c\x08\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x01\x00\x00\x00\x06\x00\x00\x00\x98\x0d\x00\x00\x00\x00\x00\x00\x98\x0d"), -Section(".strtab", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x40\x06\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x00\x1c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x38\x00\x09\x00\x40\x00\x1c\x00\x1b\x00\x06\x00\x00\x00\x04\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x04\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x08\x00\x00\x00\x00\x00\x00\x7c\x08\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x01\x00\x00\x00\x06\x00\x00\x00\x98\x0d\x00\x00\x00\x00\x00\x00\x98\x0d\x01\x00\x00\x00\x00\x00\x98\x0d\x01\x00\x00\x00\x00\x00\x78\x02\x00\x00\x00\x00\x00\x00\x88\x02\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x02\x00\x00\x00\x06\x00\x00\x00\xa8\x0d\x00\x00\x00\x00\x00\x00\xa8\x0d\x01\x00\x00\x00\x00\x00\xa8\x0d\x01\x00\x00\x00\x00\x00\xf0\x01\x00\x00\x00\x00\x00\x00\xf0\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x04\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x50\xe5\x74\x64\x04\x00\x00\x00\x80\x07\x00\x00\x00\x00\x00\x00\x80\x07\x00\x00\x00\x00\x00\x00\x80\x07\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x51\xe5\x74\x64\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x52\xe5\x74\x64\x04\x00\x00\x00\x98\x0d\x00\x00\x00\x00\x00\x00\x98\x0d\x01\x00\x00\x00\x00\x00\x98\x0d\x01\x00\x00\x00\x00\x00\x68\x02\x00\x00\x00\x00\x00\x00\x68\x02\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00"), -Section(".comment", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x40\x06\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x00\x1c\x00"), -Section(".interp", 0x238, "\x2f\x6c\x69\x62\x2f\x6c\x64\x2d\x6c\x69\x6e\x75\x78\x2d\x61\x61\x72\x63\x68\x36\x34\x2e\x73\x6f\x2e\x31\x00"), -Section(".note.gnu.build-id", 0x254, "\x04\x00\x00\x00\x14\x00\x00\x00\x03\x00\x00\x00\x47\x4e\x55\x00\x30\x65\x40\xdf\x68\x90\x72\x63\xa5\x95\xb9\x60\x32\x48\xdc\x83\x6e\x9f\x25\xbc"), -Section(".note.ABI-tag", 0x278, "\x04\x00\x00\x00\x10\x00\x00\x00\x01\x00\x00\x00\x47\x4e\x55\x00\x00\x00\x00\x00\x03\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00"), -Section(".gnu.hash", 0x298, "\x01\x00\x00\x00\x01\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".dynsym", 0x2B8, "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x0b\x00\x80\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x16\x00\x00\x10\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x48\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x22\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x22\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x73\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".dynstr", 0x390, "\x00\x5f\x5f\x63\x78\x61\x5f\x66\x69\x6e\x61\x6c\x69\x7a\x65\x00\x5f\x5f\x6c\x69\x62\x63\x5f\x73\x74\x61\x72\x74\x5f\x6d\x61\x69\x6e\x00\x61\x62\x6f\x72\x74\x00\x6c\x69\x62\x63\x2e\x73\x6f\x2e\x36\x00\x47\x4c\x49\x42\x43\x5f\x32\x2e\x31\x37\x00\x47\x4c\x49\x42\x43\x5f\x32\x2e\x33\x34\x00\x5f\x49\x54\x4d\x5f\x64\x65\x72\x65\x67\x69\x73\x74\x65\x72\x54\x4d\x43\x6c\x6f\x6e\x65\x54\x61\x62\x6c\x65\x00\x5f\x5f\x67\x6d\x6f\x6e\x5f\x73\x74\x61\x72\x74\x5f\x5f\x00\x5f\x49\x54\x4d\x5f\x72\x65\x67\x69\x73\x74\x65\x72\x54\x4d\x43\x6c\x6f\x6e\x65\x54\x61\x62\x6c\x65\x00"), -Section(".gnu.version", 0x41E, "\x00\x00\x00\x00\x00\x00\x02\x00\x01\x00\x03\x00\x01\x00\x03\x00\x01\x00"), -Section(".gnu.version_r", 0x430, "\x01\x00\x02\x00\x28\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x97\x91\x96\x06\x00\x00\x03\x00\x32\x00\x00\x00\x10\x00\x00\x00\xb4\x91\x96\x06\x00\x00\x02\x00\x3d\x00\x00\x00\x00\x00\x00\x00"), -Section(".rela.dyn", 0x460, "\x98\x0d\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x50\x07\x00\x00\x00\x00\x00\x00\xa0\x0d\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\xf0\x0f\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x00\x06\x00\x00\x00\x00\x00\x00\x08\x10\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x08\x10\x01\x00\x00\x00\x00\x00\xd8\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe0\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe8\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xf8\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".rela.plt", 0x520, "\xb0\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xb8\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xc0\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xc8\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".init", 0x580, "\x1f\x20\x03\xd5\xfd\x7b\xbf\xa9\xfd\x03\x00\x91\x3a\x00\x00\x94\xfd\x7b\xc1\xa8\xc0\x03\x5f\xd6"), -Section(".plt", 0x5A0, "\xf0\x7b\xbf\xa9\x90\x00\x00\x90\x11\xd6\x47\xf9\x10\xa2\x3e\x91\x20\x02\x1f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x90\x00\x00\x90\x11\xda\x47\xf9\x10\xc2\x3e\x91\x20\x02\x1f\xd6\x90\x00\x00\x90\x11\xde\x47\xf9\x10\xe2\x3e\x91\x20\x02\x1f\xd6\x90\x00\x00\x90\x11\xe2\x47\xf9\x10\x02\x3f\x91\x20\x02\x1f\xd6\x90\x00\x00\x90\x11\xe6\x47\xf9\x10\x22\x3f\x91\x20\x02\x1f\xd6"), -Section(".text", 0x600, "\x81\x00\x00\xb0\x22\x50\x00\x91\xe3\x03\x00\x2a\x00\x00\x80\x52\x3f\x14\x00\xb9\x43\x04\x00\xb9\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1d\x00\x80\xd2\x1e\x00\x80\xd2\xe5\x03\x00\xaa\xe1\x03\x40\xf9\xe2\x23\x00\x91\xe6\x03\x00\x91\x80\x00\x00\x90\x00\xf8\x47\xf9\x03\x00\x80\xd2\x04\x00\x80\xd2\xd5\xff\xff\x97\xe0\xff\xff\x97\x80\x00\x00\x90\x00\xf4\x47\xf9\x40\x00\x00\xb4\xd8\xff\xff\x17\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x80\x00\x00\xb0\x00\x40\x00\x91\x81\x00\x00\xb0\x21\x40\x00\x91\x3f\x00\x00\xeb\xc0\x00\x00\x54\x81\x00\x00\x90\x21\xec\x47\xf9\x61\x00\x00\xb4\xf0\x03\x01\xaa\x00\x02\x1f\xd6\xc0\x03\x5f\xd6\x80\x00\x00\xb0\x00\x40\x00\x91\x81\x00\x00\xb0\x21\x40\x00\x91\x21\x00\x00\xcb\x22\xfc\x7f\xd3\x41\x0c\x81\x8b\x21\xfc\x41\x93\xc1\x00\x00\xb4\x82\x00\x00\x90\x42\xfc\x47\xf9\x62\x00\x00\xb4\xf0\x03\x02\xaa\x00\x02\x1f\xd6\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\xfd\x7b\xbe\xa9\xfd\x03\x00\x91\xf3\x0b\x00\xf9\x93\x00\x00\xb0\x60\x42\x40\x39\x40\x01\x00\x35\x80\x00\x00\x90\x00\xf0\x47\xf9\x80\x00\x00\xb4\x80\x00\x00\xb0\x00\x04\x40\xf9\xa9\xff\xff\x97\xd8\xff\xff\x97\x20\x00\x80\x52\x60\x42\x00\x39\xf3\x0b\x40\xf9\xfd\x7b\xc2\xa8\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\xdc\xff\xff\x17\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x00\x00\x80\x52\xc0\x03\x5f\xd6"), -Section(".fini", 0x768, "\x1f\x20\x03\xd5\xfd\x7b\xbf\xa9\xfd\x03\x00\x91\xfd\x7b\xc1\xa8\xc0\x03\x5f\xd6"), -Section(".rodata", 0x77C, "\x01\x00\x02\x00"), -Section(".eh_frame_hdr", 0x780, "\x01\x1b\x03\x3b\x44\x00\x00\x00\x07\x00\x00\x00\x80\xfe\xff\xff\xe4\x00\x00\x00\xc0\xfe\xff\xff\x5c\x00\x00\x00\x10\xff\xff\xff\x70\x00\x00\x00\x40\xff\xff\xff\x84\x00\x00\x00\x80\xff\xff\xff\x98\x00\x00\x00\xd0\xff\xff\xff\xbc\x00\x00\x00\xe0\xff\xff\xff\xd0\x00\x00\x00"), -Section(".eh_frame", 0x7C8, "\x10\x00\x00\x00\x00\x00\x00\x00\x01\x7a\x52\x00\x04\x78\x1e\x01\x1b\x0c\x1f\x00\x10\x00\x00\x00\x18\x00\x00\x00\x5c\xfe\xff\xff\x34\x00\x00\x00\x00\x41\x07\x1e\x10\x00\x00\x00\x2c\x00\x00\x00\x98\xfe\xff\xff\x30\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x40\x00\x00\x00\xb4\xfe\xff\xff\x3c\x00\x00\x00\x00\x00\x00\x00\x20\x00\x00\x00\x54\x00\x00\x00\xe0\xfe\xff\xff\x48\x00\x00\x00\x00\x41\x0e\x20\x9d\x04\x9e\x03\x42\x93\x02\x4e\xde\xdd\xd3\x0e\x00\x00\x00\x00\x10\x00\x00\x00\x78\x00\x00\x00\x0c\xff\xff\xff\x04\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x8c\x00\x00\x00\x08\xff\xff\xff\x08\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\xa0\x00\x00\x00\x94\xfd\xff\xff\x1c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".fini_array", 0x10DA0, "\x00\x07\x00\x00\x00\x00\x00\x00"), -Section(".dynamic", 0x10DA8, "\x01\x00\x00\x00\x00\x00\x00\x00\x28\x00\x00\x00\x00\x00\x00\x00\x0c\x00\x00\x00\x00\x00\x00\x00\x80\x05\x00\x00\x00\x00\x00\x00\x0d\x00\x00\x00\x00\x00\x00\x00\x68\x07\x00\x00\x00\x00\x00\x00\x19\x00\x00\x00\x00\x00\x00\x00\x98\x0d\x01\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x1a\x00\x00\x00\x00\x00\x00\x00\xa0\x0d\x01\x00\x00\x00\x00\x00\x1c\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\xf5\xfe\xff\x6f\x00\x00\x00\x00\x98\x02\x00\x00\x00\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x90\x03\x00\x00\x00\x00\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\xb8\x02\x00\x00\x00\x00\x00\x00\x0a\x00\x00\x00\x00\x00\x00\x00\x8d\x00\x00\x00\x00\x00\x00\x00\x0b\x00\x00\x00\x00\x00\x00\x00\x18\x00\x00\x00\x00\x00\x00\x00\x15\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x98\x0f\x01\x00\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x60\x00\x00\x00\x00\x00\x00\x00\x14\x00\x00\x00\x00\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x17\x00\x00\x00\x00\x00\x00\x00\x20\x05\x00\x00\x00\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x60\x04\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\xc0\x00\x00\x00\x00\x00\x00\x00\x09\x00\x00\x00\x00\x00\x00\x00\x18\x00\x00\x00\x00\x00\x00\x00\x1e\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\xfb\xff\xff\x6f\x00\x00\x00\x00\x01\x00\x00\x08\x00\x00\x00\x00\xfe\xff\xff\x6f\x00\x00\x00\x00\x30\x04\x00\x00\x00\x00\x00\x00\xff\xff\xff\x6f\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\xf0\xff\xff\x6f\x00\x00\x00\x00\x1e\x04\x00\x00\x00\x00\x00\x00\xf9\xff\xff\x6f\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".init_array", 0x10D98, "\x50\x07\x00\x00\x00\x00\x00\x00"), -Section(".got", 0x10F98, "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xa0\x05\x00\x00\x00\x00\x00\x00\xa0\x05\x00\x00\x00\x00\x00\x00\xa0\x05\x00\x00\x00\x00\x00\x00\xa0\x05\x00\x00\x00\x00\x00\x00\xa8\x0d\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".data", 0x11000, "\x00\x00\x00\x00\x00\x00\x00\x00\x08\x10\x01\x00\x00\x00\x00\x00")]), -Memmap([Annotation(Region(0x0,0x87B), Attr("segment","02 0 2172")), -Annotation(Region(0x600,0x61B), Attr("symbol","\"main\"")), -Annotation(Region(0x0,0xF9), Attr("section","\".shstrtab\"")), -Annotation(Region(0x0,0x236), Attr("section","\".strtab\"")), -Annotation(Region(0x0,0x2A), Attr("section","\".comment\"")), -Annotation(Region(0x238,0x252), Attr("section","\".interp\"")), -Annotation(Region(0x254,0x277), Attr("section","\".note.gnu.build-id\"")), -Annotation(Region(0x278,0x297), Attr("section","\".note.ABI-tag\"")), -Annotation(Region(0x298,0x2B3), Attr("section","\".gnu.hash\"")), -Annotation(Region(0x2B8,0x38F), Attr("section","\".dynsym\"")), -Annotation(Region(0x390,0x41C), Attr("section","\".dynstr\"")), -Annotation(Region(0x41E,0x42F), Attr("section","\".gnu.version\"")), -Annotation(Region(0x430,0x45F), Attr("section","\".gnu.version_r\"")), -Annotation(Region(0x460,0x51F), Attr("section","\".rela.dyn\"")), -Annotation(Region(0x520,0x57F), Attr("section","\".rela.plt\"")), -Annotation(Region(0x580,0x597), Attr("section","\".init\"")), -Annotation(Region(0x5A0,0x5FF), Attr("section","\".plt\"")), -Annotation(Region(0x580,0x597), Attr("code-region","()")), -Annotation(Region(0x5A0,0x5FF), Attr("code-region","()")), -Annotation(Region(0x600,0x61B), Attr("symbol-info","main 0x600 28")), -Annotation(Region(0x640,0x673), Attr("symbol","\"_start\"")), -Annotation(Region(0x640,0x673), Attr("symbol-info","_start 0x640 52")), -Annotation(Region(0x674,0x687), Attr("symbol","\"call_weak_fn\"")), -Annotation(Region(0x674,0x687), Attr("symbol-info","call_weak_fn 0x674 20")), -Annotation(Region(0x760,0x767), Attr("symbol","\"zero\"")), -Annotation(Region(0x600,0x767), Attr("section","\".text\"")), -Annotation(Region(0x600,0x767), Attr("code-region","()")), -Annotation(Region(0x760,0x767), Attr("symbol-info","zero 0x760 8")), -Annotation(Region(0x768,0x77B), Attr("section","\".fini\"")), -Annotation(Region(0x768,0x77B), Attr("code-region","()")), -Annotation(Region(0x77C,0x77F), Attr("section","\".rodata\"")), -Annotation(Region(0x780,0x7C3), Attr("section","\".eh_frame_hdr\"")), -Annotation(Region(0x7C8,0x87B), Attr("section","\".eh_frame\"")), -Annotation(Region(0x10D98,0x1100F), Attr("segment","03 0x10D98 648")), -Annotation(Region(0x10DA0,0x10DA7), Attr("section","\".fini_array\"")), -Annotation(Region(0x10DA8,0x10F97), Attr("section","\".dynamic\"")), -Annotation(Region(0x10D98,0x10D9F), Attr("section","\".init_array\"")), -Annotation(Region(0x10F98,0x10FFF), Attr("section","\".got\"")), -Annotation(Region(0x11000,0x1100F), Attr("section","\".data\""))]), -Program(Tid(1_563, "%0000061b"), Attrs([]), - Subs([Sub(Tid(1_511, "@__cxa_finalize"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x5D0"), -Attr("stub","()")]), "__cxa_finalize", Args([Arg(Tid(1_564, "%0000061c"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("__cxa_finalize_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(897, "@__cxa_finalize"), - Attrs([Attr("address","0x5D0")]), Phis([]), -Defs([Def(Tid(1_145, "%00000479"), Attrs([Attr("address","0x5D0"), -Attr("insn","adrp x16, #65536")]), Var("R16",Imm(64)), Int(65536,64)), -Def(Tid(1_152, "%00000480"), Attrs([Attr("address","0x5D4"), -Attr("insn","ldr x17, [x16, #0xfb8]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(4024,64)),LittleEndian(),64)), -Def(Tid(1_158, "%00000486"), Attrs([Attr("address","0x5D8"), -Attr("insn","add x16, x16, #0xfb8")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(4024,64)))]), Jmps([Call(Tid(1_163, "%0000048b"), - Attrs([Attr("address","0x5DC"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), -Sub(Tid(1_512, "@__do_global_dtors_aux"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x700")]), - "__do_global_dtors_aux", Args([Arg(Tid(1_565, "%0000061d"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("__do_global_dtors_aux_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(734, "@__do_global_dtors_aux"), - Attrs([Attr("address","0x700")]), Phis([]), Defs([Def(Tid(738, "%000002e2"), - Attrs([Attr("address","0x700"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("#3",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(18446744073709551584,64))), -Def(Tid(744, "%000002e8"), Attrs([Attr("address","0x700"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("#3",Imm(64)),Var("R29",Imm(64)),LittleEndian(),64)), -Def(Tid(750, "%000002ee"), Attrs([Attr("address","0x700"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("#3",Imm(64)),Int(8,64)),Var("R30",Imm(64)),LittleEndian(),64)), -Def(Tid(754, "%000002f2"), Attrs([Attr("address","0x700"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("R31",Imm(64)), -Var("#3",Imm(64))), Def(Tid(760, "%000002f8"), - Attrs([Attr("address","0x704"), Attr("insn","mov x29, sp")]), - Var("R29",Imm(64)), Var("R31",Imm(64))), Def(Tid(768, "%00000300"), - Attrs([Attr("address","0x708"), Attr("insn","str x19, [sp, #0x10]")]), - Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(16,64)),Var("R19",Imm(64)),LittleEndian(),64)), -Def(Tid(773, "%00000305"), Attrs([Attr("address","0x70C"), -Attr("insn","adrp x19, #69632")]), Var("R19",Imm(64)), Int(69632,64)), -Def(Tid(780, "%0000030c"), Attrs([Attr("address","0x710"), -Attr("insn","ldrb w0, [x19, #0x10]")]), Var("R0",Imm(64)), -UNSIGNED(64,Load(Var("mem",Mem(64,8)),PLUS(Var("R19",Imm(64)),Int(16,64)),LittleEndian(),8)))]), -Jmps([Goto(Tid(787, "%00000313"), Attrs([Attr("address","0x714"), -Attr("insn","cbnz w0, #0x28")]), - NEQ(Extract(31,0,Var("R0",Imm(64))),Int(0,32)), -Direct(Tid(785, "%00000311"))), Goto(Tid(1_553, "%00000611"), Attrs([]), - Int(1,1), Direct(Tid(842, "%0000034a")))])), Blk(Tid(842, "%0000034a"), - Attrs([Attr("address","0x718")]), Phis([]), Defs([Def(Tid(845, "%0000034d"), - Attrs([Attr("address","0x718"), Attr("insn","adrp x0, #65536")]), - Var("R0",Imm(64)), Int(65536,64)), Def(Tid(852, "%00000354"), - Attrs([Attr("address","0x71C"), Attr("insn","ldr x0, [x0, #0xfe0]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(4064,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(858, "%0000035a"), Attrs([Attr("address","0x720"), -Attr("insn","cbz x0, #0x10")]), EQ(Var("R0",Imm(64)),Int(0,64)), -Direct(Tid(856, "%00000358"))), Goto(Tid(1_554, "%00000612"), Attrs([]), - Int(1,1), Direct(Tid(881, "%00000371")))])), Blk(Tid(881, "%00000371"), - Attrs([Attr("address","0x724")]), Phis([]), Defs([Def(Tid(884, "%00000374"), - Attrs([Attr("address","0x724"), Attr("insn","adrp x0, #69632")]), - Var("R0",Imm(64)), Int(69632,64)), Def(Tid(891, "%0000037b"), - Attrs([Attr("address","0x728"), Attr("insn","ldr x0, [x0, #0x8]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(896, "%00000380"), Attrs([Attr("address","0x72C"), -Attr("insn","bl #-0x15c")]), Var("R30",Imm(64)), Int(1840,64))]), -Jmps([Call(Tid(899, "%00000383"), Attrs([Attr("address","0x72C"), -Attr("insn","bl #-0x15c")]), Int(1,1), -(Direct(Tid(1_511, "@__cxa_finalize")),Direct(Tid(856, "%00000358"))))])), -Blk(Tid(856, "%00000358"), Attrs([Attr("address","0x730")]), Phis([]), -Defs([Def(Tid(864, "%00000360"), Attrs([Attr("address","0x730"), -Attr("insn","bl #-0xa0")]), Var("R30",Imm(64)), Int(1844,64))]), -Jmps([Call(Tid(866, "%00000362"), Attrs([Attr("address","0x730"), -Attr("insn","bl #-0xa0")]), Int(1,1), -(Direct(Tid(1_525, "@deregister_tm_clones")),Direct(Tid(868, "%00000364"))))])), -Blk(Tid(868, "%00000364"), Attrs([Attr("address","0x734")]), Phis([]), -Defs([Def(Tid(871, "%00000367"), Attrs([Attr("address","0x734"), -Attr("insn","mov w0, #0x1")]), Var("R0",Imm(64)), Int(1,64)), -Def(Tid(879, "%0000036f"), Attrs([Attr("address","0x738"), -Attr("insn","strb w0, [x19, #0x10]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R19",Imm(64)),Int(16,64)),Extract(7,0,Var("R0",Imm(64))),LittleEndian(),8))]), -Jmps([Goto(Tid(1_555, "%00000613"), Attrs([]), Int(1,1), -Direct(Tid(785, "%00000311")))])), Blk(Tid(785, "%00000311"), - Attrs([Attr("address","0x73C")]), Phis([]), Defs([Def(Tid(795, "%0000031b"), - Attrs([Attr("address","0x73C"), Attr("insn","ldr x19, [sp, #0x10]")]), - Var("R19",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(16,64)),LittleEndian(),64)), -Def(Tid(802, "%00000322"), Attrs([Attr("address","0x740"), -Attr("insn","ldp x29, x30, [sp], #0x20")]), Var("R29",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(807, "%00000327"), Attrs([Attr("address","0x740"), -Attr("insn","ldp x29, x30, [sp], #0x20")]), Var("R30",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(811, "%0000032b"), Attrs([Attr("address","0x740"), -Attr("insn","ldp x29, x30, [sp], #0x20")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(32,64)))]), Jmps([Call(Tid(816, "%00000330"), - Attrs([Attr("address","0x744"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), Sub(Tid(1_516, "@__libc_start_main"), - Attrs([Attr("c.proto","signed (*)(signed (*)(signed , char** , char** );* main, signed , char** , \nvoid* auxv)"), -Attr("address","0x5C0"), Attr("stub","()")]), "__libc_start_main", - Args([Arg(Tid(1_566, "%0000061e"), - Attrs([Attr("c.layout","**[ : 64]"), -Attr("c.data","Top:u64 ptr ptr"), -Attr("c.type","signed (*)(signed , char** , char** );*")]), - Var("__libc_start_main_main",Imm(64)), Var("R0",Imm(64)), In()), -Arg(Tid(1_567, "%0000061f"), Attrs([Attr("c.layout","[signed : 32]"), -Attr("c.data","Top:u32"), Attr("c.type","signed")]), - Var("__libc_start_main_arg2",Imm(32)), LOW(32,Var("R1",Imm(64))), In()), -Arg(Tid(1_568, "%00000620"), Attrs([Attr("c.layout","**[char : 8]"), -Attr("c.data","Top:u8 ptr ptr"), Attr("c.type","char**")]), - Var("__libc_start_main_arg3",Imm(64)), Var("R2",Imm(64)), Both()), -Arg(Tid(1_569, "%00000621"), Attrs([Attr("c.layout","*[ : 8]"), -Attr("c.data","{} ptr"), Attr("c.type","void*")]), - Var("__libc_start_main_auxv",Imm(64)), Var("R3",Imm(64)), Both()), -Arg(Tid(1_570, "%00000622"), Attrs([Attr("c.layout","[signed : 32]"), -Attr("c.data","Top:u32"), Attr("c.type","signed")]), - Var("__libc_start_main_result",Imm(32)), LOW(32,Var("R0",Imm(64))), -Out())]), Blks([Blk(Tid(567, "@__libc_start_main"), - Attrs([Attr("address","0x5C0")]), Phis([]), -Defs([Def(Tid(1_123, "%00000463"), Attrs([Attr("address","0x5C0"), -Attr("insn","adrp x16, #65536")]), Var("R16",Imm(64)), Int(65536,64)), -Def(Tid(1_130, "%0000046a"), Attrs([Attr("address","0x5C4"), -Attr("insn","ldr x17, [x16, #0xfb0]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(4016,64)),LittleEndian(),64)), -Def(Tid(1_136, "%00000470"), Attrs([Attr("address","0x5C8"), -Attr("insn","add x16, x16, #0xfb0")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(4016,64)))]), Jmps([Call(Tid(1_141, "%00000475"), - Attrs([Attr("address","0x5CC"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), Sub(Tid(1_517, "@_fini"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x768")]), - "_fini", Args([Arg(Tid(1_571, "%00000623"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("_fini_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(31, "@_fini"), - Attrs([Attr("address","0x768")]), Phis([]), Defs([Def(Tid(37, "%00000025"), - Attrs([Attr("address","0x76C"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("#0",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(18446744073709551600,64))), -Def(Tid(43, "%0000002b"), Attrs([Attr("address","0x76C"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("#0",Imm(64)),Var("R29",Imm(64)),LittleEndian(),64)), -Def(Tid(49, "%00000031"), Attrs([Attr("address","0x76C"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("#0",Imm(64)),Int(8,64)),Var("R30",Imm(64)),LittleEndian(),64)), -Def(Tid(53, "%00000035"), Attrs([Attr("address","0x76C"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("R31",Imm(64)), -Var("#0",Imm(64))), Def(Tid(59, "%0000003b"), Attrs([Attr("address","0x770"), -Attr("insn","mov x29, sp")]), Var("R29",Imm(64)), Var("R31",Imm(64))), -Def(Tid(66, "%00000042"), Attrs([Attr("address","0x774"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R29",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(71, "%00000047"), Attrs([Attr("address","0x774"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R30",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(75, "%0000004b"), Attrs([Attr("address","0x774"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(16,64)))]), Jmps([Call(Tid(80, "%00000050"), - Attrs([Attr("address","0x778"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), Sub(Tid(1_518, "@_init"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x580")]), - "_init", Args([Arg(Tid(1_572, "%00000624"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("_init_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(1_332, "@_init"), - Attrs([Attr("address","0x580")]), Phis([]), -Defs([Def(Tid(1_338, "%0000053a"), Attrs([Attr("address","0x584"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("#5",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(18446744073709551600,64))), -Def(Tid(1_344, "%00000540"), Attrs([Attr("address","0x584"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("#5",Imm(64)),Var("R29",Imm(64)),LittleEndian(),64)), -Def(Tid(1_350, "%00000546"), Attrs([Attr("address","0x584"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("#5",Imm(64)),Int(8,64)),Var("R30",Imm(64)),LittleEndian(),64)), -Def(Tid(1_354, "%0000054a"), Attrs([Attr("address","0x584"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("R31",Imm(64)), -Var("#5",Imm(64))), Def(Tid(1_360, "%00000550"), - Attrs([Attr("address","0x588"), Attr("insn","mov x29, sp")]), - Var("R29",Imm(64)), Var("R31",Imm(64))), Def(Tid(1_365, "%00000555"), - Attrs([Attr("address","0x58C"), Attr("insn","bl #0xe8")]), - Var("R30",Imm(64)), Int(1424,64))]), Jmps([Call(Tid(1_367, "%00000557"), - Attrs([Attr("address","0x58C"), Attr("insn","bl #0xe8")]), Int(1,1), -(Direct(Tid(1_523, "@call_weak_fn")),Direct(Tid(1_369, "%00000559"))))])), -Blk(Tid(1_369, "%00000559"), Attrs([Attr("address","0x590")]), Phis([]), -Defs([Def(Tid(1_374, "%0000055e"), Attrs([Attr("address","0x590"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R29",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(1_379, "%00000563"), Attrs([Attr("address","0x590"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R30",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(1_383, "%00000567"), Attrs([Attr("address","0x590"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(16,64)))]), Jmps([Call(Tid(1_388, "%0000056c"), - Attrs([Attr("address","0x594"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), Sub(Tid(1_519, "@_start"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x640"), -Attr("entry-point","()")]), "_start", Args([Arg(Tid(1_573, "%00000625"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("_start_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(504, "@_start"), - Attrs([Attr("address","0x640")]), Phis([]), Defs([Def(Tid(509, "%000001fd"), - Attrs([Attr("address","0x644"), Attr("insn","mov x29, #0x0")]), - Var("R29",Imm(64)), Int(0,64)), Def(Tid(514, "%00000202"), - Attrs([Attr("address","0x648"), Attr("insn","mov x30, #0x0")]), - Var("R30",Imm(64)), Int(0,64)), Def(Tid(520, "%00000208"), - Attrs([Attr("address","0x64C"), Attr("insn","mov x5, x0")]), - Var("R5",Imm(64)), Var("R0",Imm(64))), Def(Tid(527, "%0000020f"), - Attrs([Attr("address","0x650"), Attr("insn","ldr x1, [sp]")]), - Var("R1",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(533, "%00000215"), Attrs([Attr("address","0x654"), -Attr("insn","add x2, sp, #0x8")]), Var("R2",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(8,64))), Def(Tid(539, "%0000021b"), - Attrs([Attr("address","0x658"), Attr("insn","mov x6, sp")]), - Var("R6",Imm(64)), Var("R31",Imm(64))), Def(Tid(544, "%00000220"), - Attrs([Attr("address","0x65C"), Attr("insn","adrp x0, #65536")]), - Var("R0",Imm(64)), Int(65536,64)), Def(Tid(551, "%00000227"), - Attrs([Attr("address","0x660"), Attr("insn","ldr x0, [x0, #0xff0]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(4080,64)),LittleEndian(),64)), -Def(Tid(556, "%0000022c"), Attrs([Attr("address","0x664"), -Attr("insn","mov x3, #0x0")]), Var("R3",Imm(64)), Int(0,64)), -Def(Tid(561, "%00000231"), Attrs([Attr("address","0x668"), -Attr("insn","mov x4, #0x0")]), Var("R4",Imm(64)), Int(0,64)), -Def(Tid(566, "%00000236"), Attrs([Attr("address","0x66C"), -Attr("insn","bl #-0xac")]), Var("R30",Imm(64)), Int(1648,64))]), -Jmps([Call(Tid(569, "%00000239"), Attrs([Attr("address","0x66C"), -Attr("insn","bl #-0xac")]), Int(1,1), -(Direct(Tid(1_516, "@__libc_start_main")),Direct(Tid(571, "%0000023b"))))])), -Blk(Tid(571, "%0000023b"), Attrs([Attr("address","0x670")]), Phis([]), -Defs([Def(Tid(574, "%0000023e"), Attrs([Attr("address","0x670"), -Attr("insn","bl #-0x80")]), Var("R30",Imm(64)), Int(1652,64))]), -Jmps([Call(Tid(577, "%00000241"), Attrs([Attr("address","0x670"), -Attr("insn","bl #-0x80")]), Int(1,1), -(Direct(Tid(1_522, "@abort")),Direct(Tid(1_556, "%00000614"))))])), -Blk(Tid(1_556, "%00000614"), Attrs([]), Phis([]), Defs([]), -Jmps([Call(Tid(1_557, "%00000615"), Attrs([]), Int(1,1), -(Direct(Tid(1_523, "@call_weak_fn")),))]))])), Sub(Tid(1_522, "@abort"), - Attrs([Attr("noreturn","()"), Attr("c.proto","void (*)(void)"), -Attr("address","0x5F0"), Attr("stub","()")]), "abort", Args([]), -Blks([Blk(Tid(575, "@abort"), Attrs([Attr("address","0x5F0")]), Phis([]), -Defs([Def(Tid(1_189, "%000004a5"), Attrs([Attr("address","0x5F0"), -Attr("insn","adrp x16, #65536")]), Var("R16",Imm(64)), Int(65536,64)), -Def(Tid(1_196, "%000004ac"), Attrs([Attr("address","0x5F4"), -Attr("insn","ldr x17, [x16, #0xfc8]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(4040,64)),LittleEndian(),64)), -Def(Tid(1_202, "%000004b2"), Attrs([Attr("address","0x5F8"), -Attr("insn","add x16, x16, #0xfc8")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(4040,64)))]), Jmps([Call(Tid(1_207, "%000004b7"), - Attrs([Attr("address","0x5FC"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), Sub(Tid(1_523, "@call_weak_fn"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x674")]), - "call_weak_fn", Args([Arg(Tid(1_574, "%00000626"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("call_weak_fn_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(579, "@call_weak_fn"), - Attrs([Attr("address","0x674")]), Phis([]), Defs([Def(Tid(582, "%00000246"), - Attrs([Attr("address","0x674"), Attr("insn","adrp x0, #65536")]), - Var("R0",Imm(64)), Int(65536,64)), Def(Tid(589, "%0000024d"), - Attrs([Attr("address","0x678"), Attr("insn","ldr x0, [x0, #0xfe8]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(4072,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(595, "%00000253"), Attrs([Attr("address","0x67C"), -Attr("insn","cbz x0, #0x8")]), EQ(Var("R0",Imm(64)),Int(0,64)), -Direct(Tid(593, "%00000251"))), Goto(Tid(1_558, "%00000616"), Attrs([]), - Int(1,1), Direct(Tid(961, "%000003c1")))])), Blk(Tid(593, "%00000251"), - Attrs([Attr("address","0x684")]), Phis([]), Defs([]), -Jmps([Call(Tid(601, "%00000259"), Attrs([Attr("address","0x684"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))])), -Blk(Tid(961, "%000003c1"), Attrs([Attr("address","0x680")]), Phis([]), -Defs([]), Jmps([Goto(Tid(964, "%000003c4"), Attrs([Attr("address","0x680"), -Attr("insn","b #-0xa0")]), Int(1,1), Direct(Tid(962, "@__gmon_start__")))])), -Blk(Tid(962, "@__gmon_start__"), Attrs([Attr("address","0x5E0")]), Phis([]), -Defs([Def(Tid(1_167, "%0000048f"), Attrs([Attr("address","0x5E0"), -Attr("insn","adrp x16, #65536")]), Var("R16",Imm(64)), Int(65536,64)), -Def(Tid(1_174, "%00000496"), Attrs([Attr("address","0x5E4"), -Attr("insn","ldr x17, [x16, #0xfc0]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(4032,64)),LittleEndian(),64)), -Def(Tid(1_180, "%0000049c"), Attrs([Attr("address","0x5E8"), -Attr("insn","add x16, x16, #0xfc0")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(4032,64)))]), Jmps([Call(Tid(1_185, "%000004a1"), - Attrs([Attr("address","0x5EC"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), -Sub(Tid(1_525, "@deregister_tm_clones"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x690")]), - "deregister_tm_clones", Args([Arg(Tid(1_575, "%00000627"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("deregister_tm_clones_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(607, "@deregister_tm_clones"), - Attrs([Attr("address","0x690")]), Phis([]), Defs([Def(Tid(610, "%00000262"), - Attrs([Attr("address","0x690"), Attr("insn","adrp x0, #69632")]), - Var("R0",Imm(64)), Int(69632,64)), Def(Tid(616, "%00000268"), - Attrs([Attr("address","0x694"), Attr("insn","add x0, x0, #0x10")]), - Var("R0",Imm(64)), PLUS(Var("R0",Imm(64)),Int(16,64))), -Def(Tid(621, "%0000026d"), Attrs([Attr("address","0x698"), -Attr("insn","adrp x1, #69632")]), Var("R1",Imm(64)), Int(69632,64)), -Def(Tid(627, "%00000273"), Attrs([Attr("address","0x69C"), -Attr("insn","add x1, x1, #0x10")]), Var("R1",Imm(64)), -PLUS(Var("R1",Imm(64)),Int(16,64))), Def(Tid(633, "%00000279"), - Attrs([Attr("address","0x6A0"), Attr("insn","cmp x1, x0")]), - Var("#1",Imm(64)), NOT(Var("R0",Imm(64)))), Def(Tid(638, "%0000027e"), - Attrs([Attr("address","0x6A0"), Attr("insn","cmp x1, x0")]), - Var("#2",Imm(64)), PLUS(Var("R1",Imm(64)),NOT(Var("R0",Imm(64))))), -Def(Tid(644, "%00000284"), Attrs([Attr("address","0x6A0"), -Attr("insn","cmp x1, x0")]), Var("VF",Imm(1)), -NEQ(SIGNED(65,PLUS(Var("#2",Imm(64)),Int(1,64))),PLUS(PLUS(SIGNED(65,Var("R1",Imm(64))),SIGNED(65,Var("#1",Imm(64)))),Int(1,65)))), -Def(Tid(650, "%0000028a"), Attrs([Attr("address","0x6A0"), -Attr("insn","cmp x1, x0")]), Var("CF",Imm(1)), -NEQ(UNSIGNED(65,PLUS(Var("#2",Imm(64)),Int(1,64))),PLUS(PLUS(UNSIGNED(65,Var("R1",Imm(64))),UNSIGNED(65,Var("#1",Imm(64)))),Int(1,65)))), -Def(Tid(654, "%0000028e"), Attrs([Attr("address","0x6A0"), -Attr("insn","cmp x1, x0")]), Var("ZF",Imm(1)), -EQ(PLUS(Var("#2",Imm(64)),Int(1,64)),Int(0,64))), Def(Tid(658, "%00000292"), - Attrs([Attr("address","0x6A0"), Attr("insn","cmp x1, x0")]), - Var("NF",Imm(1)), Extract(63,63,PLUS(Var("#2",Imm(64)),Int(1,64))))]), -Jmps([Goto(Tid(664, "%00000298"), Attrs([Attr("address","0x6A4"), -Attr("insn","b.eq #0x18")]), EQ(Var("ZF",Imm(1)),Int(1,1)), -Direct(Tid(662, "%00000296"))), Goto(Tid(1_559, "%00000617"), Attrs([]), - Int(1,1), Direct(Tid(931, "%000003a3")))])), Blk(Tid(931, "%000003a3"), - Attrs([Attr("address","0x6A8")]), Phis([]), Defs([Def(Tid(934, "%000003a6"), - Attrs([Attr("address","0x6A8"), Attr("insn","adrp x1, #65536")]), - Var("R1",Imm(64)), Int(65536,64)), Def(Tid(941, "%000003ad"), - Attrs([Attr("address","0x6AC"), Attr("insn","ldr x1, [x1, #0xfd8]")]), - Var("R1",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R1",Imm(64)),Int(4056,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(946, "%000003b2"), Attrs([Attr("address","0x6B0"), -Attr("insn","cbz x1, #0xc")]), EQ(Var("R1",Imm(64)),Int(0,64)), -Direct(Tid(662, "%00000296"))), Goto(Tid(1_560, "%00000618"), Attrs([]), - Int(1,1), Direct(Tid(950, "%000003b6")))])), Blk(Tid(662, "%00000296"), - Attrs([Attr("address","0x6BC")]), Phis([]), Defs([]), -Jmps([Call(Tid(670, "%0000029e"), Attrs([Attr("address","0x6BC"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))])), -Blk(Tid(950, "%000003b6"), Attrs([Attr("address","0x6B4")]), Phis([]), -Defs([Def(Tid(954, "%000003ba"), Attrs([Attr("address","0x6B4"), -Attr("insn","mov x16, x1")]), Var("R16",Imm(64)), Var("R1",Imm(64)))]), -Jmps([Call(Tid(959, "%000003bf"), Attrs([Attr("address","0x6B8"), -Attr("insn","br x16")]), Int(1,1), (Indirect(Var("R16",Imm(64))),))]))])), -Sub(Tid(1_528, "@frame_dummy"), Attrs([Attr("c.proto","signed (*)(void)"), -Attr("address","0x750")]), "frame_dummy", Args([Arg(Tid(1_576, "%00000628"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("frame_dummy_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(822, "@frame_dummy"), - Attrs([Attr("address","0x750")]), Phis([]), Defs([]), -Jmps([Call(Tid(824, "%00000338"), Attrs([Attr("address","0x750"), -Attr("insn","b #-0x90")]), Int(1,1), -(Direct(Tid(1_530, "@register_tm_clones")),))]))])), Sub(Tid(1_529, "@main"), - Attrs([Attr("c.proto","signed (*)(signed argc, const char** argv)"), -Attr("address","0x600"), Attr("stub","()")]), "main", - Args([Arg(Tid(1_577, "%00000629"), Attrs([Attr("c.layout","[signed : 32]"), -Attr("c.data","Top:u32"), Attr("c.type","signed")]), - Var("main_argc",Imm(32)), LOW(32,Var("R0",Imm(64))), In()), -Arg(Tid(1_578, "%0000062a"), Attrs([Attr("c.layout","**[char : 8]"), -Attr("c.data","Top:u8 ptr ptr"), Attr("c.type"," const char**")]), - Var("main_argv",Imm(64)), Var("R1",Imm(64)), Both()), -Arg(Tid(1_579, "%0000062b"), Attrs([Attr("c.layout","[signed : 32]"), -Attr("c.data","Top:u32"), Attr("c.type","signed")]), - Var("main_result",Imm(32)), LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(444, "@main"), Attrs([Attr("address","0x600")]), Phis([]), -Defs([Def(Tid(447, "%000001bf"), Attrs([Attr("address","0x600"), -Attr("insn","adrp x1, #69632")]), Var("R1",Imm(64)), Int(69632,64)), -Def(Tid(453, "%000001c5"), Attrs([Attr("address","0x604"), -Attr("insn","add x2, x1, #0x14")]), Var("R2",Imm(64)), -PLUS(Var("R1",Imm(64)),Int(20,64))), Def(Tid(459, "%000001cb"), - Attrs([Attr("address","0x608"), Attr("insn","mov w3, w0")]), - Var("R3",Imm(64)), UNSIGNED(64,Extract(31,0,Var("R0",Imm(64))))), -Def(Tid(464, "%000001d0"), Attrs([Attr("address","0x60C"), -Attr("insn","mov w0, #0x0")]), Var("R0",Imm(64)), Int(0,64)), -Def(Tid(471, "%000001d7"), Attrs([Attr("address","0x610"), -Attr("insn","str wzr, [x1, #0x14]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R1",Imm(64)),Int(20,64)),Int(0,32),LittleEndian(),32)), -Def(Tid(479, "%000001df"), Attrs([Attr("address","0x614"), -Attr("insn","str w3, [x2, #0x4]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R2",Imm(64)),Int(4,64)),Extract(31,0,Var("R3",Imm(64))),LittleEndian(),32))]), -Jmps([Call(Tid(484, "%000001e4"), Attrs([Attr("address","0x618"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))]))])), -Sub(Tid(1_530, "@register_tm_clones"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x6C0")]), - "register_tm_clones", Args([Arg(Tid(1_580, "%0000062c"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("register_tm_clones_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(672, "@register_tm_clones"), Attrs([Attr("address","0x6C0")]), - Phis([]), Defs([Def(Tid(675, "%000002a3"), Attrs([Attr("address","0x6C0"), -Attr("insn","adrp x0, #69632")]), Var("R0",Imm(64)), Int(69632,64)), -Def(Tid(681, "%000002a9"), Attrs([Attr("address","0x6C4"), -Attr("insn","add x0, x0, #0x10")]), Var("R0",Imm(64)), -PLUS(Var("R0",Imm(64)),Int(16,64))), Def(Tid(686, "%000002ae"), - Attrs([Attr("address","0x6C8"), Attr("insn","adrp x1, #69632")]), - Var("R1",Imm(64)), Int(69632,64)), Def(Tid(692, "%000002b4"), - Attrs([Attr("address","0x6CC"), Attr("insn","add x1, x1, #0x10")]), - Var("R1",Imm(64)), PLUS(Var("R1",Imm(64)),Int(16,64))), -Def(Tid(699, "%000002bb"), Attrs([Attr("address","0x6D0"), -Attr("insn","sub x1, x1, x0")]), Var("R1",Imm(64)), -PLUS(PLUS(Var("R1",Imm(64)),NOT(Var("R0",Imm(64)))),Int(1,64))), -Def(Tid(705, "%000002c1"), Attrs([Attr("address","0x6D4"), -Attr("insn","lsr x2, x1, #63")]), Var("R2",Imm(64)), -Concat(Int(0,63),Extract(63,63,Var("R1",Imm(64))))), -Def(Tid(712, "%000002c8"), Attrs([Attr("address","0x6D8"), -Attr("insn","add x1, x2, x1, asr #3")]), Var("R1",Imm(64)), -PLUS(Var("R2",Imm(64)),ARSHIFT(Var("R1",Imm(64)),Int(3,3)))), -Def(Tid(718, "%000002ce"), Attrs([Attr("address","0x6DC"), -Attr("insn","asr x1, x1, #1")]), Var("R1",Imm(64)), -SIGNED(64,Extract(63,1,Var("R1",Imm(64)))))]), -Jmps([Goto(Tid(724, "%000002d4"), Attrs([Attr("address","0x6E0"), -Attr("insn","cbz x1, #0x18")]), EQ(Var("R1",Imm(64)),Int(0,64)), -Direct(Tid(722, "%000002d2"))), Goto(Tid(1_561, "%00000619"), Attrs([]), - Int(1,1), Direct(Tid(901, "%00000385")))])), Blk(Tid(901, "%00000385"), - Attrs([Attr("address","0x6E4")]), Phis([]), Defs([Def(Tid(904, "%00000388"), - Attrs([Attr("address","0x6E4"), Attr("insn","adrp x2, #65536")]), - Var("R2",Imm(64)), Int(65536,64)), Def(Tid(911, "%0000038f"), - Attrs([Attr("address","0x6E8"), Attr("insn","ldr x2, [x2, #0xff8]")]), - Var("R2",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R2",Imm(64)),Int(4088,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(916, "%00000394"), Attrs([Attr("address","0x6EC"), -Attr("insn","cbz x2, #0xc")]), EQ(Var("R2",Imm(64)),Int(0,64)), -Direct(Tid(722, "%000002d2"))), Goto(Tid(1_562, "%0000061a"), Attrs([]), - Int(1,1), Direct(Tid(920, "%00000398")))])), Blk(Tid(722, "%000002d2"), - Attrs([Attr("address","0x6F8")]), Phis([]), Defs([]), -Jmps([Call(Tid(730, "%000002da"), Attrs([Attr("address","0x6F8"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))])), -Blk(Tid(920, "%00000398"), Attrs([Attr("address","0x6F0")]), Phis([]), -Defs([Def(Tid(924, "%0000039c"), Attrs([Attr("address","0x6F0"), -Attr("insn","mov x16, x2")]), Var("R16",Imm(64)), Var("R2",Imm(64)))]), -Jmps([Call(Tid(929, "%000003a1"), Attrs([Attr("address","0x6F4"), -Attr("insn","br x16")]), Int(1,1), (Indirect(Var("R16",Imm(64))),))]))])), -Sub(Tid(1_533, "@zero"), Attrs([Attr("c.proto","signed (*)(void)"), -Attr("address","0x760")]), "zero", Args([Arg(Tid(1_581, "%0000062d"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("zero_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(832, "@zero"), - Attrs([Attr("address","0x760")]), Phis([]), Defs([Def(Tid(835, "%00000343"), - Attrs([Attr("address","0x760"), Attr("insn","mov w0, #0x0")]), - Var("R0",Imm(64)), Int(0,64))]), Jmps([Call(Tid(840, "%00000348"), - Attrs([Attr("address","0x764"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))]))]))) \ No newline at end of file diff --git a/src/test/correct/basic_function_call_caller/gcc_O2/basic_function_call_caller.bir b/src/test/correct/basic_function_call_caller/gcc_O2/basic_function_call_caller.bir deleted file mode 100644 index 140301bfb..000000000 --- a/src/test/correct/basic_function_call_caller/gcc_O2/basic_function_call_caller.bir +++ /dev/null @@ -1,236 +0,0 @@ -0000061b: program -000005e7: sub __cxa_finalize(__cxa_finalize_result) -0000061c: __cxa_finalize_result :: out u32 = low:32[R0] - -00000381: -00000479: R16 := 0x10000 -00000480: R17 := mem[R16 + 0xFB8, el]:u64 -00000486: R16 := R16 + 0xFB8 -0000048b: call R17 with noreturn - -000005e8: sub __do_global_dtors_aux(__do_global_dtors_aux_result) -0000061d: __do_global_dtors_aux_result :: out u32 = low:32[R0] - -000002de: -000002e2: #3 := R31 - 0x20 -000002e8: mem := mem with [#3, el]:u64 <- R29 -000002ee: mem := mem with [#3 + 8, el]:u64 <- R30 -000002f2: R31 := #3 -000002f8: R29 := R31 -00000300: mem := mem with [R31 + 0x10, el]:u64 <- R19 -00000305: R19 := 0x11000 -0000030c: R0 := pad:64[mem[R19 + 0x10]] -00000313: when 31:0[R0] <> 0 goto %00000311 -00000611: goto %0000034a - -0000034a: -0000034d: R0 := 0x10000 -00000354: R0 := mem[R0 + 0xFE0, el]:u64 -0000035a: when R0 = 0 goto %00000358 -00000612: goto %00000371 - -00000371: -00000374: R0 := 0x11000 -0000037b: R0 := mem[R0 + 8, el]:u64 -00000380: R30 := 0x730 -00000383: call @__cxa_finalize with return %00000358 - -00000358: -00000360: R30 := 0x734 -00000362: call @deregister_tm_clones with return %00000364 - -00000364: -00000367: R0 := 1 -0000036f: mem := mem with [R19 + 0x10] <- 7:0[R0] -00000613: goto %00000311 - -00000311: -0000031b: R19 := mem[R31 + 0x10, el]:u64 -00000322: R29 := mem[R31, el]:u64 -00000327: R30 := mem[R31 + 8, el]:u64 -0000032b: R31 := R31 + 0x20 -00000330: call R30 with noreturn - -000005ec: sub __libc_start_main(__libc_start_main_main, __libc_start_main_arg2, __libc_start_main_arg3, __libc_start_main_auxv, __libc_start_main_result) -0000061e: __libc_start_main_main :: in u64 = R0 -0000061f: __libc_start_main_arg2 :: in u32 = low:32[R1] -00000620: __libc_start_main_arg3 :: in out u64 = R2 -00000621: __libc_start_main_auxv :: in out u64 = R3 -00000622: __libc_start_main_result :: out u32 = low:32[R0] - -00000237: -00000463: R16 := 0x10000 -0000046a: R17 := mem[R16 + 0xFB0, el]:u64 -00000470: R16 := R16 + 0xFB0 -00000475: call R17 with noreturn - -000005ed: sub _fini(_fini_result) -00000623: _fini_result :: out u32 = low:32[R0] - -0000001f: -00000025: #0 := R31 - 0x10 -0000002b: mem := mem with [#0, el]:u64 <- R29 -00000031: mem := mem with [#0 + 8, el]:u64 <- R30 -00000035: R31 := #0 -0000003b: R29 := R31 -00000042: R29 := mem[R31, el]:u64 -00000047: R30 := mem[R31 + 8, el]:u64 -0000004b: R31 := R31 + 0x10 -00000050: call R30 with noreturn - -000005ee: sub _init(_init_result) -00000624: _init_result :: out u32 = low:32[R0] - -00000534: -0000053a: #5 := R31 - 0x10 -00000540: mem := mem with [#5, el]:u64 <- R29 -00000546: mem := mem with [#5 + 8, el]:u64 <- R30 -0000054a: R31 := #5 -00000550: R29 := R31 -00000555: R30 := 0x590 -00000557: call @call_weak_fn with return %00000559 - -00000559: -0000055e: R29 := mem[R31, el]:u64 -00000563: R30 := mem[R31 + 8, el]:u64 -00000567: R31 := R31 + 0x10 -0000056c: call R30 with noreturn - -000005ef: sub _start(_start_result) -00000625: _start_result :: out u32 = low:32[R0] - -000001f8: -000001fd: R29 := 0 -00000202: R30 := 0 -00000208: R5 := R0 -0000020f: R1 := mem[R31, el]:u64 -00000215: R2 := R31 + 8 -0000021b: R6 := R31 -00000220: R0 := 0x10000 -00000227: R0 := mem[R0 + 0xFF0, el]:u64 -0000022c: R3 := 0 -00000231: R4 := 0 -00000236: R30 := 0x670 -00000239: call @__libc_start_main with return %0000023b - -0000023b: -0000023e: R30 := 0x674 -00000241: call @abort with return %00000614 - -00000614: -00000615: call @call_weak_fn with noreturn - -000005f2: sub abort() - - -0000023f: -000004a5: R16 := 0x10000 -000004ac: R17 := mem[R16 + 0xFC8, el]:u64 -000004b2: R16 := R16 + 0xFC8 -000004b7: call R17 with noreturn - -000005f3: sub call_weak_fn(call_weak_fn_result) -00000626: call_weak_fn_result :: out u32 = low:32[R0] - -00000243: -00000246: R0 := 0x10000 -0000024d: R0 := mem[R0 + 0xFE8, el]:u64 -00000253: when R0 = 0 goto %00000251 -00000616: goto %000003c1 - -00000251: -00000259: call R30 with noreturn - -000003c1: -000003c4: goto @__gmon_start__ - -000003c2: -0000048f: R16 := 0x10000 -00000496: R17 := mem[R16 + 0xFC0, el]:u64 -0000049c: R16 := R16 + 0xFC0 -000004a1: call R17 with noreturn - -000005f5: sub deregister_tm_clones(deregister_tm_clones_result) -00000627: deregister_tm_clones_result :: out u32 = low:32[R0] - -0000025f: -00000262: R0 := 0x11000 -00000268: R0 := R0 + 0x10 -0000026d: R1 := 0x11000 -00000273: R1 := R1 + 0x10 -00000279: #1 := ~R0 -0000027e: #2 := R1 + ~R0 -00000284: VF := extend:65[#2 + 1] <> extend:65[R1] + extend:65[#1] + 1 -0000028a: CF := pad:65[#2 + 1] <> pad:65[R1] + pad:65[#1] + 1 -0000028e: ZF := #2 + 1 = 0 -00000292: NF := 63:63[#2 + 1] -00000298: when ZF goto %00000296 -00000617: goto %000003a3 - -000003a3: -000003a6: R1 := 0x10000 -000003ad: R1 := mem[R1 + 0xFD8, el]:u64 -000003b2: when R1 = 0 goto %00000296 -00000618: goto %000003b6 - -00000296: -0000029e: call R30 with noreturn - -000003b6: -000003ba: R16 := R1 -000003bf: call R16 with noreturn - -000005f8: sub frame_dummy(frame_dummy_result) -00000628: frame_dummy_result :: out u32 = low:32[R0] - -00000336: -00000338: call @register_tm_clones with noreturn - -000005f9: sub main(main_argc, main_argv, main_result) -00000629: main_argc :: in u32 = low:32[R0] -0000062a: main_argv :: in out u64 = R1 -0000062b: main_result :: out u32 = low:32[R0] - -000001bc: -000001bf: R1 := 0x11000 -000001c5: R2 := R1 + 0x14 -000001cb: R3 := pad:64[31:0[R0]] -000001d0: R0 := 0 -000001d7: mem := mem with [R1 + 0x14, el]:u32 <- 0 -000001df: mem := mem with [R2 + 4, el]:u32 <- 31:0[R3] -000001e4: call R30 with noreturn - -000005fa: sub register_tm_clones(register_tm_clones_result) -0000062c: register_tm_clones_result :: out u32 = low:32[R0] - -000002a0: -000002a3: R0 := 0x11000 -000002a9: R0 := R0 + 0x10 -000002ae: R1 := 0x11000 -000002b4: R1 := R1 + 0x10 -000002bb: R1 := R1 + ~R0 + 1 -000002c1: R2 := 0.63:63[R1] -000002c8: R1 := R2 + (R1 ~>> 3) -000002ce: R1 := extend:64[63:1[R1]] -000002d4: when R1 = 0 goto %000002d2 -00000619: goto %00000385 - -00000385: -00000388: R2 := 0x10000 -0000038f: R2 := mem[R2 + 0xFF8, el]:u64 -00000394: when R2 = 0 goto %000002d2 -0000061a: goto %00000398 - -000002d2: -000002da: call R30 with noreturn - -00000398: -0000039c: R16 := R2 -000003a1: call R16 with noreturn - -000005fd: sub zero(zero_result) -0000062d: zero_result :: out u32 = low:32[R0] - -00000340: -00000343: R0 := 0 -00000348: call R30 with noreturn diff --git a/src/test/correct/basic_function_call_caller/gcc_O2/basic_function_call_caller.expected b/src/test/correct/basic_function_call_caller/gcc_O2/basic_function_call_caller.expected index 6c33ef541..19ed4fbb5 100644 --- a/src/test/correct/basic_function_call_caller/gcc_O2/basic_function_call_caller.expected +++ b/src/test/correct/basic_function_call_caller/gcc_O2/basic_function_call_caller.expected @@ -77,7 +77,7 @@ implementation {:extern} guarantee_reflexive() assert (gamma_load32(Gamma_mem, $y_addr) ==> ((memory_load32_le(mem, $x_addr) == 0bv32) || gamma_load32(Gamma_mem, $y_addr))); } -procedure main_1536(); +procedure main(); modifies Gamma_R0, Gamma_R1, Gamma_R2, Gamma_R3, Gamma_mem, R0, R1, R2, R3, mem; requires (Gamma_R0 == false); free requires (memory_load64_le(mem, 69632bv64) == 0bv64); @@ -93,7 +93,7 @@ procedure main_1536(); free ensures (memory_load64_le(mem, 69616bv64) == 1536bv64); free ensures (memory_load64_le(mem, 69640bv64) == 69640bv64); -implementation main_1536() +implementation main() { var Gamma_y_old: bool; var x_old: bv32; @@ -104,26 +104,26 @@ implementation main_1536() R3, Gamma_R3 := zero_extend32_32(R0[32:0]), Gamma_R0; R0, Gamma_R0 := 0bv64, true; call rely(); + assert (L(mem, bvadd64(R1, 20bv64)) ==> true); x_old := memory_load32_le(mem, $x_addr); Gamma_y_old := (gamma_load32(Gamma_mem, $y_addr) || L(mem, $y_addr)); - assert (L(mem, bvadd64(R1, 20bv64)) ==> true); mem, Gamma_mem := memory_store32_le(mem, bvadd64(R1, 20bv64), 0bv32), gamma_store32(Gamma_mem, bvadd64(R1, 20bv64), true); assert ((bvadd64(R1, 20bv64) == $x_addr) ==> (L(mem, $y_addr) ==> Gamma_y_old)); assert ((x_old == 0bv32) ==> (memory_load32_le(mem, $x_addr) == 0bv32)); assert (Gamma_y_old ==> ((memory_load32_le(mem, $x_addr) == 0bv32) || gamma_load32(Gamma_mem, $y_addr))); assume {:captureState "%000001d7"} true; call rely(); + assert (L(mem, bvadd64(R2, 4bv64)) ==> Gamma_R3); x_old := memory_load32_le(mem, $x_addr); Gamma_y_old := (gamma_load32(Gamma_mem, $y_addr) || L(mem, $y_addr)); - assert (L(mem, bvadd64(R2, 4bv64)) ==> Gamma_R3); mem, Gamma_mem := memory_store32_le(mem, bvadd64(R2, 4bv64), R3[32:0]), gamma_store32(Gamma_mem, bvadd64(R2, 4bv64), Gamma_R3); assert ((bvadd64(R2, 4bv64) == $x_addr) ==> (L(mem, $y_addr) ==> Gamma_y_old)); assert ((x_old == 0bv32) ==> (memory_load32_le(mem, $x_addr) == 0bv32)); assert (Gamma_y_old ==> ((memory_load32_le(mem, $x_addr) == 0bv32) || gamma_load32(Gamma_mem, $y_addr))); assume {:captureState "%000001df"} true; - goto main_1536_basil_return; - main_1536_basil_return: - assume {:captureState "main_1536_basil_return"} true; + goto main_basil_return; + main_basil_return: + assume {:captureState "main_basil_return"} true; return; } diff --git a/src/test/correct/basic_function_call_caller/gcc_O2/basic_function_call_caller.gts b/src/test/correct/basic_function_call_caller/gcc_O2/basic_function_call_caller.gts deleted file mode 100644 index 7239ac18b..000000000 Binary files a/src/test/correct/basic_function_call_caller/gcc_O2/basic_function_call_caller.gts and /dev/null differ diff --git a/src/test/correct/basic_function_call_caller/gcc_O2/basic_function_call_caller.md5sum b/src/test/correct/basic_function_call_caller/gcc_O2/basic_function_call_caller.md5sum new file mode 100644 index 000000000..c9cf0a204 --- /dev/null +++ b/src/test/correct/basic_function_call_caller/gcc_O2/basic_function_call_caller.md5sum @@ -0,0 +1,5 @@ +b06290682031800c866dd37d05a4c3fe correct/basic_function_call_caller/gcc_O2/a.out +7f511bd2f491047506152469a2109063 correct/basic_function_call_caller/gcc_O2/basic_function_call_caller.adt +d6871a547547bd8a874a5e4aee2760a2 correct/basic_function_call_caller/gcc_O2/basic_function_call_caller.bir +3a68061cf59fe702b19f5171af5ad1be correct/basic_function_call_caller/gcc_O2/basic_function_call_caller.relf +9a7d0723d5c1d9d18cc17121acd4b715 correct/basic_function_call_caller/gcc_O2/basic_function_call_caller.gts diff --git a/src/test/correct/basic_function_call_caller/gcc_O2/basic_function_call_caller.relf b/src/test/correct/basic_function_call_caller/gcc_O2/basic_function_call_caller.relf deleted file mode 100644 index 4405f925e..000000000 --- a/src/test/correct/basic_function_call_caller/gcc_O2/basic_function_call_caller.relf +++ /dev/null @@ -1,124 +0,0 @@ - -Relocation section '.rela.dyn' at offset 0x460 contains 8 entries: - Offset Info Type Symbol's Value Symbol's Name + Addend -0000000000010d98 0000000000000403 R_AARCH64_RELATIVE 750 -0000000000010da0 0000000000000403 R_AARCH64_RELATIVE 700 -0000000000010ff0 0000000000000403 R_AARCH64_RELATIVE 600 -0000000000011008 0000000000000403 R_AARCH64_RELATIVE 11008 -0000000000010fd8 0000000400000401 R_AARCH64_GLOB_DAT 0000000000000000 _ITM_deregisterTMCloneTable + 0 -0000000000010fe0 0000000500000401 R_AARCH64_GLOB_DAT 0000000000000000 __cxa_finalize@GLIBC_2.17 + 0 -0000000000010fe8 0000000600000401 R_AARCH64_GLOB_DAT 0000000000000000 __gmon_start__ + 0 -0000000000010ff8 0000000800000401 R_AARCH64_GLOB_DAT 0000000000000000 _ITM_registerTMCloneTable + 0 - -Relocation section '.rela.plt' at offset 0x520 contains 4 entries: - Offset Info Type Symbol's Value Symbol's Name + Addend -0000000000010fb0 0000000300000402 R_AARCH64_JUMP_SLOT 0000000000000000 __libc_start_main@GLIBC_2.34 + 0 -0000000000010fb8 0000000500000402 R_AARCH64_JUMP_SLOT 0000000000000000 __cxa_finalize@GLIBC_2.17 + 0 -0000000000010fc0 0000000600000402 R_AARCH64_JUMP_SLOT 0000000000000000 __gmon_start__ + 0 -0000000000010fc8 0000000700000402 R_AARCH64_JUMP_SLOT 0000000000000000 abort@GLIBC_2.17 + 0 - -Symbol table '.dynsym' contains 9 entries: - Num: Value Size Type Bind Vis Ndx Name - 0: 0000000000000000 0 NOTYPE LOCAL DEFAULT UND - 1: 0000000000000580 0 SECTION LOCAL DEFAULT 11 .init - 2: 0000000000011000 0 SECTION LOCAL DEFAULT 22 .data - 3: 0000000000000000 0 FUNC GLOBAL DEFAULT UND __libc_start_main@GLIBC_2.34 (2) - 4: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_deregisterTMCloneTable - 5: 0000000000000000 0 FUNC WEAK DEFAULT UND __cxa_finalize@GLIBC_2.17 (3) - 6: 0000000000000000 0 NOTYPE WEAK DEFAULT UND __gmon_start__ - 7: 0000000000000000 0 FUNC GLOBAL DEFAULT UND abort@GLIBC_2.17 (3) - 8: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_registerTMCloneTable - -Symbol table '.symtab' contains 91 entries: - Num: Value Size Type Bind Vis Ndx Name - 0: 0000000000000000 0 NOTYPE LOCAL DEFAULT UND - 1: 0000000000000238 0 SECTION LOCAL DEFAULT 1 .interp - 2: 0000000000000254 0 SECTION LOCAL DEFAULT 2 .note.gnu.build-id - 3: 0000000000000278 0 SECTION LOCAL DEFAULT 3 .note.ABI-tag - 4: 0000000000000298 0 SECTION LOCAL DEFAULT 4 .gnu.hash - 5: 00000000000002b8 0 SECTION LOCAL DEFAULT 5 .dynsym - 6: 0000000000000390 0 SECTION LOCAL DEFAULT 6 .dynstr - 7: 000000000000041e 0 SECTION LOCAL DEFAULT 7 .gnu.version - 8: 0000000000000430 0 SECTION LOCAL DEFAULT 8 .gnu.version_r - 9: 0000000000000460 0 SECTION LOCAL DEFAULT 9 .rela.dyn - 10: 0000000000000520 0 SECTION LOCAL DEFAULT 10 .rela.plt - 11: 0000000000000580 0 SECTION LOCAL DEFAULT 11 .init - 12: 00000000000005a0 0 SECTION LOCAL DEFAULT 12 .plt - 13: 0000000000000600 0 SECTION LOCAL DEFAULT 13 .text - 14: 0000000000000768 0 SECTION LOCAL DEFAULT 14 .fini - 15: 000000000000077c 0 SECTION LOCAL DEFAULT 15 .rodata - 16: 0000000000000780 0 SECTION LOCAL DEFAULT 16 .eh_frame_hdr - 17: 00000000000007c8 0 SECTION LOCAL DEFAULT 17 .eh_frame - 18: 0000000000010d98 0 SECTION LOCAL DEFAULT 18 .init_array - 19: 0000000000010da0 0 SECTION LOCAL DEFAULT 19 .fini_array - 20: 0000000000010da8 0 SECTION LOCAL DEFAULT 20 .dynamic - 21: 0000000000010f98 0 SECTION LOCAL DEFAULT 21 .got - 22: 0000000000011000 0 SECTION LOCAL DEFAULT 22 .data - 23: 0000000000011010 0 SECTION LOCAL DEFAULT 23 .bss - 24: 0000000000000000 0 SECTION LOCAL DEFAULT 24 .comment - 25: 0000000000000000 0 FILE LOCAL DEFAULT ABS Scrt1.o - 26: 0000000000000278 0 NOTYPE LOCAL DEFAULT 3 $d - 27: 0000000000000278 32 OBJECT LOCAL DEFAULT 3 __abi_tag - 28: 0000000000000640 0 NOTYPE LOCAL DEFAULT 13 $x - 29: 00000000000007dc 0 NOTYPE LOCAL DEFAULT 17 $d - 30: 000000000000077c 0 NOTYPE LOCAL DEFAULT 15 $d - 31: 0000000000000000 0 FILE LOCAL DEFAULT ABS crti.o - 32: 0000000000000674 0 NOTYPE LOCAL DEFAULT 13 $x - 33: 0000000000000674 20 FUNC LOCAL DEFAULT 13 call_weak_fn - 34: 0000000000000580 0 NOTYPE LOCAL DEFAULT 11 $x - 35: 0000000000000768 0 NOTYPE LOCAL DEFAULT 14 $x - 36: 0000000000000000 0 FILE LOCAL DEFAULT ABS crtn.o - 37: 0000000000000590 0 NOTYPE LOCAL DEFAULT 11 $x - 38: 0000000000000774 0 NOTYPE LOCAL DEFAULT 14 $x - 39: 0000000000000000 0 FILE LOCAL DEFAULT ABS basic_function_call_caller.c - 40: 0000000000000760 0 NOTYPE LOCAL DEFAULT 13 $x - 41: 0000000000000600 0 NOTYPE LOCAL DEFAULT 13 $x - 42: 0000000000011014 0 NOTYPE LOCAL DEFAULT 23 $d - 43: 0000000000000850 0 NOTYPE LOCAL DEFAULT 17 $d - 44: 0000000000000000 0 FILE LOCAL DEFAULT ABS crtstuff.c - 45: 0000000000000690 0 NOTYPE LOCAL DEFAULT 13 $x - 46: 0000000000000690 0 FUNC LOCAL DEFAULT 13 deregister_tm_clones - 47: 00000000000006c0 0 FUNC LOCAL DEFAULT 13 register_tm_clones - 48: 0000000000011008 0 NOTYPE LOCAL DEFAULT 22 $d - 49: 0000000000000700 0 FUNC LOCAL DEFAULT 13 __do_global_dtors_aux - 50: 0000000000011010 1 OBJECT LOCAL DEFAULT 23 completed.0 - 51: 0000000000010da0 0 NOTYPE LOCAL DEFAULT 19 $d - 52: 0000000000010da0 0 OBJECT LOCAL DEFAULT 19 __do_global_dtors_aux_fini_array_entry - 53: 0000000000000750 0 FUNC LOCAL DEFAULT 13 frame_dummy - 54: 0000000000010d98 0 NOTYPE LOCAL DEFAULT 18 $d - 55: 0000000000010d98 0 OBJECT LOCAL DEFAULT 18 __frame_dummy_init_array_entry - 56: 00000000000007f0 0 NOTYPE LOCAL DEFAULT 17 $d - 57: 0000000000011010 0 NOTYPE LOCAL DEFAULT 23 $d - 58: 0000000000000000 0 FILE LOCAL DEFAULT ABS crtstuff.c - 59: 0000000000000878 0 NOTYPE LOCAL DEFAULT 17 $d - 60: 0000000000000878 0 OBJECT LOCAL DEFAULT 17 __FRAME_END__ - 61: 0000000000000000 0 FILE LOCAL DEFAULT ABS - 62: 0000000000010da8 0 OBJECT LOCAL DEFAULT ABS _DYNAMIC - 63: 0000000000000780 0 NOTYPE LOCAL DEFAULT 16 __GNU_EH_FRAME_HDR - 64: 0000000000010fd0 0 OBJECT LOCAL DEFAULT ABS _GLOBAL_OFFSET_TABLE_ - 65: 00000000000005a0 0 NOTYPE LOCAL DEFAULT 12 $x - 66: 0000000000000000 0 FUNC GLOBAL DEFAULT UND __libc_start_main@GLIBC_2.34 - 67: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_deregisterTMCloneTable - 68: 0000000000011000 0 NOTYPE WEAK DEFAULT 22 data_start - 69: 0000000000011010 0 NOTYPE GLOBAL DEFAULT 23 __bss_start__ - 70: 0000000000000000 0 FUNC WEAK DEFAULT UND __cxa_finalize@GLIBC_2.17 - 71: 0000000000011020 0 NOTYPE GLOBAL DEFAULT 23 _bss_end__ - 72: 0000000000011010 0 NOTYPE GLOBAL DEFAULT 22 _edata - 73: 0000000000011014 4 OBJECT GLOBAL DEFAULT 23 x - 74: 0000000000000768 0 FUNC GLOBAL HIDDEN 14 _fini - 75: 0000000000011020 0 NOTYPE GLOBAL DEFAULT 23 __bss_end__ - 76: 0000000000011000 0 NOTYPE GLOBAL DEFAULT 22 __data_start - 77: 0000000000000000 0 NOTYPE WEAK DEFAULT UND __gmon_start__ - 78: 0000000000011008 0 OBJECT GLOBAL HIDDEN 22 __dso_handle - 79: 0000000000000000 0 FUNC GLOBAL DEFAULT UND abort@GLIBC_2.17 - 80: 000000000000077c 4 OBJECT GLOBAL DEFAULT 15 _IO_stdin_used - 81: 0000000000011020 0 NOTYPE GLOBAL DEFAULT 23 _end - 82: 0000000000000640 52 FUNC GLOBAL DEFAULT 13 _start - 83: 0000000000000760 8 FUNC GLOBAL DEFAULT 13 zero - 84: 0000000000011020 0 NOTYPE GLOBAL DEFAULT 23 __end__ - 85: 0000000000011018 4 OBJECT GLOBAL DEFAULT 23 y - 86: 0000000000011010 0 NOTYPE GLOBAL DEFAULT 23 __bss_start - 87: 0000000000000600 28 FUNC GLOBAL DEFAULT 13 main - 88: 0000000000011010 0 OBJECT GLOBAL HIDDEN 22 __TMC_END__ - 89: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_registerTMCloneTable - 90: 0000000000000580 0 FUNC GLOBAL HIDDEN 11 _init diff --git a/src/test/correct/basic_function_call_caller/gcc_O2/basic_function_call_caller_gtirb.expected b/src/test/correct/basic_function_call_caller/gcc_O2/basic_function_call_caller_gtirb.expected index ebdea4aeb..e86cb65ba 100644 --- a/src/test/correct/basic_function_call_caller/gcc_O2/basic_function_call_caller_gtirb.expected +++ b/src/test/correct/basic_function_call_caller/gcc_O2/basic_function_call_caller_gtirb.expected @@ -77,7 +77,7 @@ implementation {:extern} guarantee_reflexive() assert (gamma_load32(Gamma_mem, $y_addr) ==> ((memory_load32_le(mem, $x_addr) == 0bv32) || gamma_load32(Gamma_mem, $y_addr))); } -procedure main_1536(); +procedure main(); modifies Gamma_R0, Gamma_R1, Gamma_R2, Gamma_R3, Gamma_mem, R0, R1, R2, R3, mem; requires (Gamma_R0 == false); free requires (memory_load64_le(mem, 69632bv64) == 0bv64); @@ -93,37 +93,37 @@ procedure main_1536(); free ensures (memory_load64_le(mem, 69616bv64) == 1536bv64); free ensures (memory_load64_le(mem, 69640bv64) == 69640bv64); -implementation main_1536() +implementation main() { var Gamma_y_old: bool; var x_old: bv32; - main_1536__0__dv_jMrrYTUatcbBqfNbC1Q: - assume {:captureState "main_1536__0__dv_jMrrYTUatcbBqfNbC1Q"} true; + $main$__0__$dv_jMrrYTUatcbBqfNbC1Q: + assume {:captureState "$main$__0__$dv_jMrrYTUatcbBqfNbC1Q"} true; R1, Gamma_R1 := 69632bv64, true; R2, Gamma_R2 := bvadd64(R1, 20bv64), Gamma_R1; R3, Gamma_R3 := zero_extend32_32(R0[32:0]), Gamma_R0; R0, Gamma_R0 := 0bv64, true; call rely(); + assert (L(mem, bvadd64(R1, 20bv64)) ==> true); x_old := memory_load32_le(mem, $x_addr); Gamma_y_old := (gamma_load32(Gamma_mem, $y_addr) || L(mem, $y_addr)); - assert (L(mem, bvadd64(R1, 20bv64)) ==> true); mem, Gamma_mem := memory_store32_le(mem, bvadd64(R1, 20bv64), 0bv32), gamma_store32(Gamma_mem, bvadd64(R1, 20bv64), true); assert ((bvadd64(R1, 20bv64) == $x_addr) ==> (L(mem, $y_addr) ==> Gamma_y_old)); assert ((x_old == 0bv32) ==> (memory_load32_le(mem, $x_addr) == 0bv32)); assert (Gamma_y_old ==> ((memory_load32_le(mem, $x_addr) == 0bv32) || gamma_load32(Gamma_mem, $y_addr))); - assume {:captureState "1552_0"} true; + assume {:captureState "1552$0"} true; call rely(); + assert (L(mem, bvadd64(R2, 4bv64)) ==> Gamma_R3); x_old := memory_load32_le(mem, $x_addr); Gamma_y_old := (gamma_load32(Gamma_mem, $y_addr) || L(mem, $y_addr)); - assert (L(mem, bvadd64(R2, 4bv64)) ==> Gamma_R3); mem, Gamma_mem := memory_store32_le(mem, bvadd64(R2, 4bv64), R3[32:0]), gamma_store32(Gamma_mem, bvadd64(R2, 4bv64), Gamma_R3); assert ((bvadd64(R2, 4bv64) == $x_addr) ==> (L(mem, $y_addr) ==> Gamma_y_old)); assert ((x_old == 0bv32) ==> (memory_load32_le(mem, $x_addr) == 0bv32)); assert (Gamma_y_old ==> ((memory_load32_le(mem, $x_addr) == 0bv32) || gamma_load32(Gamma_mem, $y_addr))); - assume {:captureState "1556_0"} true; - goto main_1536_basil_return; - main_1536_basil_return: - assume {:captureState "main_1536_basil_return"} true; + assume {:captureState "1556$0"} true; + goto main_basil_return; + main_basil_return: + assume {:captureState "main_basil_return"} true; return; } diff --git a/src/test/correct/basic_function_call_caller/gcc_pic/basic_function_call_caller.adt b/src/test/correct/basic_function_call_caller/gcc_pic/basic_function_call_caller.adt deleted file mode 100644 index a60420438..000000000 --- a/src/test/correct/basic_function_call_caller/gcc_pic/basic_function_call_caller.adt +++ /dev/null @@ -1,551 +0,0 @@ -Project(Attrs([Attr("filename","\"gcc_pic/basic_function_call_caller.out\""), -Attr("image-specification","(declare abi (name str))\n(declare arch (name str))\n(declare base-address (addr int))\n(declare bias (off int))\n(declare bits (size int))\n(declare code-region (addr int) (size int) (off int))\n(declare code-start (addr int))\n(declare entry-point (addr int))\n(declare external-reference (addr int) (name str))\n(declare format (name str))\n(declare is-executable (flag bool))\n(declare is-little-endian (flag bool))\n(declare llvm:base-address (addr int))\n(declare llvm:code-entry (name str) (off int) (size int))\n(declare llvm:coff-import-library (name str))\n(declare llvm:coff-virtual-section-header (name str) (addr int) (size int))\n(declare llvm:elf-program-header (name str) (off int) (size int))\n(declare llvm:elf-program-header-flags (name str) (ld bool) (r bool) \n (w bool) (x bool))\n(declare llvm:elf-virtual-program-header (name str) (addr int) (size int))\n(declare llvm:entry-point (addr int))\n(declare llvm:macho-symbol (name str) (value int))\n(declare llvm:name-reference (at int) (name str))\n(declare llvm:relocation (at int) (addr int))\n(declare llvm:section-entry (name str) (addr int) (size int) (off int))\n(declare llvm:section-flags (name str) (r bool) (w bool) (x bool))\n(declare llvm:segment-command (name str) (off int) (size int))\n(declare llvm:segment-command-flags (name str) (r bool) (w bool) (x bool))\n(declare llvm:symbol-entry (name str) (addr int) (size int) (off int)\n (value int))\n(declare llvm:virtual-segment-command (name str) (addr int) (size int))\n(declare mapped (addr int) (size int) (off int))\n(declare named-region (addr int) (size int) (name str))\n(declare named-symbol (addr int) (name str))\n(declare require (name str))\n(declare section (addr int) (size int))\n(declare segment (addr int) (size int) (r bool) (w bool) (x bool))\n(declare subarch (name str))\n(declare symbol-chunk (addr int) (size int) (root int))\n(declare symbol-value (addr int) (value int))\n(declare system (name str))\n(declare vendor (name str))\n\n(abi unknown)\n(arch aarch64)\n(base-address 0)\n(bias 0)\n(bits 64)\n(code-region 1944 20 1944)\n(code-region 1600 344 1600)\n(code-region 1488 96 1488)\n(code-region 1456 24 1456)\n(code-start 1652)\n(code-start 1600)\n(code-start 1876)\n(code-start 1884)\n(entry-point 1600)\n(external-reference 69576 _ITM_deregisterTMCloneTable)\n(external-reference 69584 __cxa_finalize)\n(external-reference 69600 __gmon_start__)\n(external-reference 69624 _ITM_registerTMCloneTable)\n(external-reference 69536 __libc_start_main)\n(external-reference 69544 __cxa_finalize)\n(external-reference 69552 __gmon_start__)\n(external-reference 69560 abort)\n(format elf)\n(is-executable true)\n(is-little-endian true)\n(llvm:base-address 0)\n(llvm:code-entry abort 0 0)\n(llvm:code-entry __cxa_finalize 0 0)\n(llvm:code-entry __libc_start_main 0 0)\n(llvm:code-entry _init 1456 0)\n(llvm:code-entry main 1884 60)\n(llvm:code-entry zero 1876 8)\n(llvm:code-entry _start 1600 52)\n(llvm:code-entry abort@GLIBC_2.17 0 0)\n(llvm:code-entry _fini 1944 0)\n(llvm:code-entry __cxa_finalize@GLIBC_2.17 0 0)\n(llvm:code-entry __libc_start_main@GLIBC_2.34 0 0)\n(llvm:code-entry frame_dummy 1872 0)\n(llvm:code-entry __do_global_dtors_aux 1792 0)\n(llvm:code-entry register_tm_clones 1728 0)\n(llvm:code-entry deregister_tm_clones 1680 0)\n(llvm:code-entry call_weak_fn 1652 20)\n(llvm:code-entry .fini 1944 20)\n(llvm:code-entry .text 1600 344)\n(llvm:code-entry .plt 1488 96)\n(llvm:code-entry .init 1456 24)\n(llvm:elf-program-header 08 3464 632)\n(llvm:elf-program-header 07 0 0)\n(llvm:elf-program-header 06 1968 68)\n(llvm:elf-program-header 05 596 68)\n(llvm:elf-program-header 04 3480 496)\n(llvm:elf-program-header 03 3464 648)\n(llvm:elf-program-header 02 0 2232)\n(llvm:elf-program-header 01 568 27)\n(llvm:elf-program-header 00 64 504)\n(llvm:elf-program-header-flags 08 false true false false)\n(llvm:elf-program-header-flags 07 false true true false)\n(llvm:elf-program-header-flags 06 false true false false)\n(llvm:elf-program-header-flags 05 false true false false)\n(llvm:elf-program-header-flags 04 false true true false)\n(llvm:elf-program-header-flags 03 true true true false)\n(llvm:elf-program-header-flags 02 true true false true)\n(llvm:elf-program-header-flags 01 false true false false)\n(llvm:elf-program-header-flags 00 false true false false)\n(llvm:elf-virtual-program-header 08 69000 632)\n(llvm:elf-virtual-program-header 07 0 0)\n(llvm:elf-virtual-program-header 06 1968 68)\n(llvm:elf-virtual-program-header 05 596 68)\n(llvm:elf-virtual-program-header 04 69016 496)\n(llvm:elf-virtual-program-header 03 69000 664)\n(llvm:elf-virtual-program-header 02 0 2232)\n(llvm:elf-virtual-program-header 01 568 27)\n(llvm:elf-virtual-program-header 00 64 504)\n(llvm:entry-point 1600)\n(llvm:name-reference 69560 abort)\n(llvm:name-reference 69552 __gmon_start__)\n(llvm:name-reference 69544 __cxa_finalize)\n(llvm:name-reference 69536 __libc_start_main)\n(llvm:name-reference 69624 _ITM_registerTMCloneTable)\n(llvm:name-reference 69600 __gmon_start__)\n(llvm:name-reference 69584 __cxa_finalize)\n(llvm:name-reference 69576 _ITM_deregisterTMCloneTable)\n(llvm:section-entry .shstrtab 0 250 6887)\n(llvm:section-entry .strtab 0 567 6320)\n(llvm:section-entry .symtab 0 2160 4160)\n(llvm:section-entry .comment 0 43 4112)\n(llvm:section-entry .bss 69648 16 4112)\n(llvm:section-entry .data 69632 16 4096)\n(llvm:section-entry .got 69512 120 3976)\n(llvm:section-entry .dynamic 69016 496 3480)\n(llvm:section-entry .fini_array 69008 8 3472)\n(llvm:section-entry .init_array 69000 8 3464)\n(llvm:section-entry .eh_frame 2040 192 2040)\n(llvm:section-entry .eh_frame_hdr 1968 68 1968)\n(llvm:section-entry .rodata 1964 4 1964)\n(llvm:section-entry .fini 1944 20 1944)\n(llvm:section-entry .text 1600 344 1600)\n(llvm:section-entry .plt 1488 96 1488)\n(llvm:section-entry .init 1456 24 1456)\n(llvm:section-entry .rela.plt 1360 96 1360)\n(llvm:section-entry .rela.dyn 1120 240 1120)\n(llvm:section-entry .gnu.version_r 1072 48 1072)\n(llvm:section-entry .gnu.version 1054 18 1054)\n(llvm:section-entry .dynstr 912 141 912)\n(llvm:section-entry .dynsym 696 216 696)\n(llvm:section-entry .gnu.hash 664 28 664)\n(llvm:section-entry .note.ABI-tag 632 32 632)\n(llvm:section-entry .note.gnu.build-id 596 36 596)\n(llvm:section-entry .interp 568 27 568)\n(llvm:section-flags .shstrtab true false false)\n(llvm:section-flags .strtab true false false)\n(llvm:section-flags .symtab true false false)\n(llvm:section-flags .comment true false false)\n(llvm:section-flags .bss true true false)\n(llvm:section-flags .data true true false)\n(llvm:section-flags .got true true false)\n(llvm:section-flags .dynamic true true false)\n(llvm:section-flags .fini_array true true false)\n(llvm:section-flags .init_array true true false)\n(llvm:section-flags .eh_frame true false false)\n(llvm:section-flags .eh_frame_hdr true false false)\n(llvm:section-flags .rodata true false false)\n(llvm:section-flags .fini true false true)\n(llvm:section-flags .text true false true)\n(llvm:section-flags .plt true false true)\n(llvm:section-flags .init true false true)\n(llvm:section-flags .rela.plt true false false)\n(llvm:section-flags .rela.dyn true false false)\n(llvm:section-flags .gnu.version_r true false false)\n(llvm:section-flags .gnu.version true false false)\n(llvm:section-flags .dynstr true false false)\n(llvm:section-flags .dynsym true false false)\n(llvm:section-flags .gnu.hash true false false)\n(llvm:section-flags .note.ABI-tag true false false)\n(llvm:section-flags .note.gnu.build-id true false false)\n(llvm:section-flags .interp true false false)\n(llvm:symbol-entry abort 0 0 0 0)\n(llvm:symbol-entry __cxa_finalize 0 0 0 0)\n(llvm:symbol-entry __libc_start_main 0 0 0 0)\n(llvm:symbol-entry _init 1456 0 1456 1456)\n(llvm:symbol-entry main 1884 60 1884 1884)\n(llvm:symbol-entry zero 1876 8 1876 1876)\n(llvm:symbol-entry _start 1600 52 1600 1600)\n(llvm:symbol-entry abort@GLIBC_2.17 0 0 0 0)\n(llvm:symbol-entry _fini 1944 0 1944 1944)\n(llvm:symbol-entry __cxa_finalize@GLIBC_2.17 0 0 0 0)\n(llvm:symbol-entry __libc_start_main@GLIBC_2.34 0 0 0 0)\n(llvm:symbol-entry frame_dummy 1872 0 1872 1872)\n(llvm:symbol-entry __do_global_dtors_aux 1792 0 1792 1792)\n(llvm:symbol-entry register_tm_clones 1728 0 1728 1728)\n(llvm:symbol-entry deregister_tm_clones 1680 0 1680 1680)\n(llvm:symbol-entry call_weak_fn 1652 20 1652 1652)\n(mapped 0 2232 0)\n(mapped 69000 648 3464)\n(named-region 0 2232 02)\n(named-region 69000 664 03)\n(named-region 568 27 .interp)\n(named-region 596 36 .note.gnu.build-id)\n(named-region 632 32 .note.ABI-tag)\n(named-region 664 28 .gnu.hash)\n(named-region 696 216 .dynsym)\n(named-region 912 141 .dynstr)\n(named-region 1054 18 .gnu.version)\n(named-region 1072 48 .gnu.version_r)\n(named-region 1120 240 .rela.dyn)\n(named-region 1360 96 .rela.plt)\n(named-region 1456 24 .init)\n(named-region 1488 96 .plt)\n(named-region 1600 344 .text)\n(named-region 1944 20 .fini)\n(named-region 1964 4 .rodata)\n(named-region 1968 68 .eh_frame_hdr)\n(named-region 2040 192 .eh_frame)\n(named-region 69000 8 .init_array)\n(named-region 69008 8 .fini_array)\n(named-region 69016 496 .dynamic)\n(named-region 69512 120 .got)\n(named-region 69632 16 .data)\n(named-region 69648 16 .bss)\n(named-region 0 43 .comment)\n(named-region 0 2160 .symtab)\n(named-region 0 567 .strtab)\n(named-region 0 250 .shstrtab)\n(named-symbol 1652 call_weak_fn)\n(named-symbol 1680 deregister_tm_clones)\n(named-symbol 1728 register_tm_clones)\n(named-symbol 1792 __do_global_dtors_aux)\n(named-symbol 1872 frame_dummy)\n(named-symbol 0 __libc_start_main@GLIBC_2.34)\n(named-symbol 0 __cxa_finalize@GLIBC_2.17)\n(named-symbol 1944 _fini)\n(named-symbol 0 abort@GLIBC_2.17)\n(named-symbol 1600 _start)\n(named-symbol 1876 zero)\n(named-symbol 1884 main)\n(named-symbol 1456 _init)\n(named-symbol 0 __libc_start_main)\n(named-symbol 0 __cxa_finalize)\n(named-symbol 0 abort)\n(require libc.so.6)\n(section 568 27)\n(section 596 36)\n(section 632 32)\n(section 664 28)\n(section 696 216)\n(section 912 141)\n(section 1054 18)\n(section 1072 48)\n(section 1120 240)\n(section 1360 96)\n(section 1456 24)\n(section 1488 96)\n(section 1600 344)\n(section 1944 20)\n(section 1964 4)\n(section 1968 68)\n(section 2040 192)\n(section 69000 8)\n(section 69008 8)\n(section 69016 496)\n(section 69512 120)\n(section 69632 16)\n(section 69648 16)\n(section 0 43)\n(section 0 2160)\n(section 0 567)\n(section 0 250)\n(segment 0 2232 true false true)\n(segment 69000 664 true true false)\n(subarch v8)\n(symbol-chunk 1652 20 1652)\n(symbol-chunk 1600 52 1600)\n(symbol-chunk 1876 8 1876)\n(symbol-chunk 1884 60 1884)\n(symbol-value 1652 1652)\n(symbol-value 1680 1680)\n(symbol-value 1728 1728)\n(symbol-value 1792 1792)\n(symbol-value 1872 1872)\n(symbol-value 1944 1944)\n(symbol-value 1600 1600)\n(symbol-value 1876 1876)\n(symbol-value 1884 1884)\n(symbol-value 1456 1456)\n(symbol-value 0 0)\n(system \"\")\n(vendor \"\")\n"), -Attr("abi-name","\"aarch64-linux-gnu-elf\"")]), -Sections([Section(".shstrtab", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x40\x06\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xe8\x1b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x38\x00\x09\x00\x40\x00\x1c\x00\x1b\x00\x06\x00\x00\x00\x04\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x04\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xb8\x08\x00\x00\x00\x00\x00\x00\xb8\x08\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x01\x00\x00\x00\x06\x00\x00\x00\x88\x0d\x00\x00\x00\x00\x00\x00\x88\x0d"), -Section(".strtab", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x40\x06\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xe8\x1b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x38\x00\x09\x00\x40\x00\x1c\x00\x1b\x00\x06\x00\x00\x00\x04\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x04\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xb8\x08\x00\x00\x00\x00\x00\x00\xb8\x08\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x01\x00\x00\x00\x06\x00\x00\x00\x88\x0d\x00\x00\x00\x00\x00\x00\x88\x0d\x01\x00\x00\x00\x00\x00\x88\x0d\x01\x00\x00\x00\x00\x00\x88\x02\x00\x00\x00\x00\x00\x00\x98\x02\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x02\x00\x00\x00\x06\x00\x00\x00\x98\x0d\x00\x00\x00\x00\x00\x00\x98\x0d\x01\x00\x00\x00\x00\x00\x98\x0d\x01\x00\x00\x00\x00\x00\xf0\x01\x00\x00\x00\x00\x00\x00\xf0\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x04\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x50\xe5\x74\x64\x04\x00\x00\x00\xb0\x07\x00\x00\x00\x00\x00\x00\xb0\x07\x00\x00\x00\x00\x00\x00\xb0\x07\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x51\xe5\x74\x64\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x52\xe5\x74\x64\x04\x00\x00\x00\x88\x0d\x00\x00\x00\x00\x00\x00\x88\x0d\x01\x00\x00\x00\x00\x00\x88\x0d\x01\x00\x00\x00\x00\x00\x78\x02\x00\x00\x00\x00\x00\x00\x78\x02\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00"), -Section(".symtab", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x40\x06\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xe8\x1b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x38\x00\x09\x00\x40\x00\x1c\x00\x1b\x00\x06\x00\x00\x00\x04\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x04\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xb8\x08\x00\x00\x00\x00\x00\x00\xb8\x08\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x01\x00\x00\x00\x06\x00\x00\x00\x88\x0d\x00\x00\x00\x00\x00\x00\x88\x0d\x01\x00\x00\x00\x00\x00\x88\x0d\x01\x00\x00\x00\x00\x00\x88\x02\x00\x00\x00\x00\x00\x00\x98\x02\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x02\x00\x00\x00\x06\x00\x00\x00\x98\x0d\x00\x00\x00\x00\x00\x00\x98\x0d\x01\x00\x00\x00\x00\x00\x98\x0d\x01\x00\x00\x00\x00\x00\xf0\x01\x00\x00\x00\x00\x00\x00\xf0\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x04\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x50\xe5\x74\x64\x04\x00\x00\x00\xb0\x07\x00\x00\x00\x00\x00\x00\xb0\x07\x00\x00\x00\x00\x00\x00\xb0\x07\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x51\xe5\x74\x64\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x52\xe5\x74\x64\x04\x00\x00\x00\x88\x0d\x00\x00\x00\x00\x00\x00\x88\x0d\x01\x00\x00\x00\x00\x00\x88\x0d\x01\x00\x00\x00\x00\x00\x78\x02\x00\x00\x00\x00\x00\x00\x78\x02\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x2f\x6c\x69\x62\x2f\x6c\x64\x2d\x6c\x69\x6e\x75\x78\x2d\x61\x61\x72\x63\x68\x36\x34\x2e\x73\x6f\x2e\x31\x00\x00\x04\x00\x00\x00\x14\x00\x00\x00\x03\x00\x00\x00\x47\x4e\x55\x00\x98\x09\x61\x82\x84\x04\x87\xd8\x6c\xcc\xf7\x4a\x42\x19\x4f\x61\x3f\x6c\x57\xff\x04\x00\x00\x00\x10\x00\x00\x00\x01\x00\x00\x00\x47\x4e\x55\x00\x00\x00\x00\x00\x03\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x01\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x0b\x00\xb0\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x16\x00\x00\x10\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x48\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x22\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x22\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x73\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5f\x5f\x63\x78\x61\x5f\x66\x69\x6e\x61\x6c\x69\x7a\x65\x00\x5f\x5f\x6c\x69\x62\x63\x5f\x73\x74\x61\x72\x74\x5f\x6d\x61\x69\x6e\x00\x61\x62\x6f\x72\x74\x00\x6c\x69\x62\x63\x2e\x73\x6f\x2e\x36\x00\x47\x4c\x49\x42\x43\x5f\x32\x2e\x31\x37\x00\x47\x4c\x49\x42\x43\x5f\x32\x2e\x33\x34\x00\x5f\x49\x54\x4d\x5f\x64\x65\x72\x65\x67\x69\x73\x74\x65\x72\x54\x4d\x43\x6c\x6f\x6e\x65\x54\x61\x62\x6c\x65\x00\x5f\x5f\x67\x6d\x6f\x6e\x5f\x73\x74\x61\x72\x74\x5f\x5f\x00\x5f\x49\x54\x4d\x5f\x72\x65\x67\x69\x73\x74\x65\x72\x54\x4d\x43\x6c\x6f\x6e\x65\x54\x61\x62\x6c\x65\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x01\x00\x03\x00\x01\x00\x03\x00\x01\x00\x01\x00\x02\x00\x28\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x97\x91\x96\x06\x00\x00\x03\x00\x32\x00\x00\x00\x10\x00\x00\x00\xb4\x91\x96\x06\x00\x00\x02\x00\x3d\x00\x00\x00\x00\x00\x00\x00\x88\x0d\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x50\x07\x00\x00\x00\x00\x00\x00\x90\x0d\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\xd8\x0f\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x14\x10\x01\x00\x00\x00\x00\x00\xe8\x0f\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x18\x10\x01\x00\x00\x00\x00\x00\xf0\x0f\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x5c\x07\x00\x00\x00\x00\x00\x00\x08\x10\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x08\x10\x01\x00\x00\x00\x00\x00\xc8\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xd0\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe0\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xf8\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xa0\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xa8\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xb0\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xb8\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1f\x20\x03\xd5\xfd\x7b\xbf\xa9\xfd\x03\x00\x91\x2e\x00\x00\x94\xfd\x7b\xc1\xa8\xc0\x03\x5f\xd6\x00\x00\x00\x00\x00\x00\x00\x00\xf0\x7b\xbf\xa9\x90\x00\x00\x90\x11\xce\x47\xf9\x10\x62\x3e\x91\x20\x02\x1f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x90\x00\x00\x90\x11\xd2\x47\xf9\x10\x82\x3e\x91\x20\x02\x1f\xd6\x90\x00\x00\x90\x11\xd6\x47\xf9\x10\xa2\x3e\x91\x20\x02\x1f\xd6\x90\x00\x00\x90\x11\xda\x47\xf9\x10\xc2\x3e\x91\x20\x02\x1f\xd6\x90\x00\x00\x90\x11\xde\x47\xf9\x10\xe2\x3e\x91\x20\x02\x1f\xd6\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1f\x20\x03\xd5\x1d\x00\x80\xd2\x1e\x00\x80\xd2\xe5\x03\x00\xaa\xe1\x03\x40\xf9\xe2\x23\x00\x91\xe6\x03\x00\x91\x80\x00\x00\x90\x00\xf8\x47\xf9\x03\x00\x80\xd2\x04\x00\x80\xd2\xe1\xff\xff\x97\xec\xff\xff\x97\x80\x00\x00\x90\x00\xf0\x47\xf9\x40\x00\x00\xb4\xe4\xff\xff\x17\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x80\x00\x00\xb0\x00\x40\x00\x91\x81\x00\x00\xb0\x21\x40\x00\x91\x3f\x00\x00\xeb\xc0\x00\x00\x54\x81\x00\x00\x90\x21\xe4\x47\xf9\x61\x00\x00\xb4\xf0\x03\x01\xaa\x00\x02\x1f\xd6\xc0\x03\x5f\xd6\x80\x00\x00\xb0\x00\x40\x00\x91\x81\x00\x00\xb0\x21\x40\x00\x91\x21\x00\x00\xcb\x22\xfc\x7f\xd3\x41\x0c\x81\x8b\x21\xfc\x41\x93\xc1\x00\x00\xb4\x82\x00\x00\x90\x42\xfc\x47\xf9\x62\x00\x00\xb4\xf0\x03\x02\xaa\x00\x02\x1f\xd6\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\xfd\x7b\xbe\xa9\xfd\x03\x00\x91\xf3\x0b\x00\xf9\x93\x00\x00\xb0\x60\x42\x40\x39\x40\x01\x00\x35\x80\x00\x00\x90\x00\xe8\x47\xf9\x80\x00\x00\xb4\x80\x00\x00\xb0\x00\x04\x40\xf9\xb5\xff\xff\x97\xd8\xff\xff\x97\x20\x00\x80\x52\x60\x42\x00\x39\xf3\x0b\x40\xf9\xfd\x7b\xc2\xa8\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\xdc\xff\xff\x17\x00\x00\x80\x52\xc0\x03\x5f\xd6\xfd\x7b\xbe\xa9\xfd\x03\x00\x91\xe0\x1f\x00\xb9\xfb\xff\xff\x97\xe1\x03\x00\x2a\x80\x00\x00\x90\x00\xec\x47\xf9\x01\x00\x00\xb9\x80\x00\x00\x90\x00\xf4\x47\xf9\xe1\x1f\x40\xb9\x01\x00\x00\xb9\x00\x00\x80\x52\xfd\x7b\xc2\xa8\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\xfd\x7b\xbf\xa9\xfd\x03\x00\x91\xfd\x7b\xc1\xa8\xc0\x03\x5f\xd6\x01\x00\x02\x00\x01\x1b\x03\x3b\x44\x00\x00\x00\x07\x00\x00\x00\x90\xfe\xff\xff\x5c\x00\x00\x00\xe0\xfe\xff\xff\x70\x00\x00\x00\x10\xff\xff\xff\x84\x00\x00\x00\x50\xff\xff\xff\x98\x00\x00\x00\xa0\xff\xff\xff\xbc\x00\x00\x00\xa4\xff\xff\xff\xd0\x00\x00\x00\xac\xff\xff\xff\xe4\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x01\x7a\x52\x00\x04\x78\x1e\x01\x1b\x0c\x1f\x00\x10\x00\x00\x00\x18\x00\x00\x00\x2c\xfe\xff\xff\x34\x00\x00\x00\x00\x41\x07\x1e\x10\x00\x00\x00\x2c\x00\x00\x00\x68\xfe\xff\xff\x30\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x40\x00\x00\x00\x84\xfe\xff\xff\x3c\x00\x00\x00\x00\x00\x00\x00\x20\x00\x00\x00\x54\x00\x00\x00\xb0\xfe\xff\xff\x48\x00\x00\x00\x00\x41\x0e\x20\x9d\x04\x9e\x03\x42\x93\x02\x4e\xde\xdd\xd3\x0e\x00\x00\x00\x00\x10\x00\x00\x00"), -Section(".comment", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x40\x06\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xe8\x1b\x00"), -Section(".interp", 0x238, "\x2f\x6c\x69\x62\x2f\x6c\x64\x2d\x6c\x69\x6e\x75\x78\x2d\x61\x61\x72\x63\x68\x36\x34\x2e\x73\x6f\x2e\x31\x00"), -Section(".note.gnu.build-id", 0x254, "\x04\x00\x00\x00\x14\x00\x00\x00\x03\x00\x00\x00\x47\x4e\x55\x00\x98\x09\x61\x82\x84\x04\x87\xd8\x6c\xcc\xf7\x4a\x42\x19\x4f\x61\x3f\x6c\x57\xff"), -Section(".note.ABI-tag", 0x278, "\x04\x00\x00\x00\x10\x00\x00\x00\x01\x00\x00\x00\x47\x4e\x55\x00\x00\x00\x00\x00\x03\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00"), -Section(".gnu.hash", 0x298, "\x01\x00\x00\x00\x01\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".dynsym", 0x2B8, "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x0b\x00\xb0\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x16\x00\x00\x10\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x48\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x22\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x22\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x73\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".dynstr", 0x390, "\x00\x5f\x5f\x63\x78\x61\x5f\x66\x69\x6e\x61\x6c\x69\x7a\x65\x00\x5f\x5f\x6c\x69\x62\x63\x5f\x73\x74\x61\x72\x74\x5f\x6d\x61\x69\x6e\x00\x61\x62\x6f\x72\x74\x00\x6c\x69\x62\x63\x2e\x73\x6f\x2e\x36\x00\x47\x4c\x49\x42\x43\x5f\x32\x2e\x31\x37\x00\x47\x4c\x49\x42\x43\x5f\x32\x2e\x33\x34\x00\x5f\x49\x54\x4d\x5f\x64\x65\x72\x65\x67\x69\x73\x74\x65\x72\x54\x4d\x43\x6c\x6f\x6e\x65\x54\x61\x62\x6c\x65\x00\x5f\x5f\x67\x6d\x6f\x6e\x5f\x73\x74\x61\x72\x74\x5f\x5f\x00\x5f\x49\x54\x4d\x5f\x72\x65\x67\x69\x73\x74\x65\x72\x54\x4d\x43\x6c\x6f\x6e\x65\x54\x61\x62\x6c\x65\x00"), -Section(".gnu.version", 0x41E, "\x00\x00\x00\x00\x00\x00\x02\x00\x01\x00\x03\x00\x01\x00\x03\x00\x01\x00"), -Section(".gnu.version_r", 0x430, "\x01\x00\x02\x00\x28\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x97\x91\x96\x06\x00\x00\x03\x00\x32\x00\x00\x00\x10\x00\x00\x00\xb4\x91\x96\x06\x00\x00\x02\x00\x3d\x00\x00\x00\x00\x00\x00\x00"), -Section(".rela.dyn", 0x460, "\x88\x0d\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x50\x07\x00\x00\x00\x00\x00\x00\x90\x0d\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\xd8\x0f\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x14\x10\x01\x00\x00\x00\x00\x00\xe8\x0f\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x18\x10\x01\x00\x00\x00\x00\x00\xf0\x0f\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x5c\x07\x00\x00\x00\x00\x00\x00\x08\x10\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x08\x10\x01\x00\x00\x00\x00\x00\xc8\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xd0\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe0\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xf8\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".rela.plt", 0x550, "\xa0\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xa8\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xb0\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xb8\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".init", 0x5B0, "\x1f\x20\x03\xd5\xfd\x7b\xbf\xa9\xfd\x03\x00\x91\x2e\x00\x00\x94\xfd\x7b\xc1\xa8\xc0\x03\x5f\xd6"), -Section(".plt", 0x5D0, "\xf0\x7b\xbf\xa9\x90\x00\x00\x90\x11\xce\x47\xf9\x10\x62\x3e\x91\x20\x02\x1f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x90\x00\x00\x90\x11\xd2\x47\xf9\x10\x82\x3e\x91\x20\x02\x1f\xd6\x90\x00\x00\x90\x11\xd6\x47\xf9\x10\xa2\x3e\x91\x20\x02\x1f\xd6\x90\x00\x00\x90\x11\xda\x47\xf9\x10\xc2\x3e\x91\x20\x02\x1f\xd6\x90\x00\x00\x90\x11\xde\x47\xf9\x10\xe2\x3e\x91\x20\x02\x1f\xd6"), -Section(".fini", 0x798, "\x1f\x20\x03\xd5\xfd\x7b\xbf\xa9\xfd\x03\x00\x91\xfd\x7b\xc1\xa8\xc0\x03\x5f\xd6"), -Section(".rodata", 0x7AC, "\x01\x00\x02\x00"), -Section(".eh_frame_hdr", 0x7B0, "\x01\x1b\x03\x3b\x44\x00\x00\x00\x07\x00\x00\x00\x90\xfe\xff\xff\x5c\x00\x00\x00\xe0\xfe\xff\xff\x70\x00\x00\x00\x10\xff\xff\xff\x84\x00\x00\x00\x50\xff\xff\xff\x98\x00\x00\x00\xa0\xff\xff\xff\xbc\x00\x00\x00\xa4\xff\xff\xff\xd0\x00\x00\x00\xac\xff\xff\xff\xe4\x00\x00\x00"), -Section(".eh_frame", 0x7F8, "\x10\x00\x00\x00\x00\x00\x00\x00\x01\x7a\x52\x00\x04\x78\x1e\x01\x1b\x0c\x1f\x00\x10\x00\x00\x00\x18\x00\x00\x00\x2c\xfe\xff\xff\x34\x00\x00\x00\x00\x41\x07\x1e\x10\x00\x00\x00\x2c\x00\x00\x00\x68\xfe\xff\xff\x30\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x40\x00\x00\x00\x84\xfe\xff\xff\x3c\x00\x00\x00\x00\x00\x00\x00\x20\x00\x00\x00\x54\x00\x00\x00\xb0\xfe\xff\xff\x48\x00\x00\x00\x00\x41\x0e\x20\x9d\x04\x9e\x03\x42\x93\x02\x4e\xde\xdd\xd3\x0e\x00\x00\x00\x00\x10\x00\x00\x00\x78\x00\x00\x00\xdc\xfe\xff\xff\x04\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x8c\x00\x00\x00\xcc\xfe\xff\xff\x08\x00\x00\x00\x00\x00\x00\x00\x1c\x00\x00\x00\xa0\x00\x00\x00\xc0\xfe\xff\xff\x3c\x00\x00\x00\x00\x41\x0e\x20\x9d\x04\x9e\x03\x4d\xde\xdd\x0e\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".fini_array", 0x10D90, "\x00\x07\x00\x00\x00\x00\x00\x00"), -Section(".dynamic", 0x10D98, "\x01\x00\x00\x00\x00\x00\x00\x00\x28\x00\x00\x00\x00\x00\x00\x00\x0c\x00\x00\x00\x00\x00\x00\x00\xb0\x05\x00\x00\x00\x00\x00\x00\x0d\x00\x00\x00\x00\x00\x00\x00\x98\x07\x00\x00\x00\x00\x00\x00\x19\x00\x00\x00\x00\x00\x00\x00\x88\x0d\x01\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x1a\x00\x00\x00\x00\x00\x00\x00\x90\x0d\x01\x00\x00\x00\x00\x00\x1c\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\xf5\xfe\xff\x6f\x00\x00\x00\x00\x98\x02\x00\x00\x00\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x90\x03\x00\x00\x00\x00\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\xb8\x02\x00\x00\x00\x00\x00\x00\x0a\x00\x00\x00\x00\x00\x00\x00\x8d\x00\x00\x00\x00\x00\x00\x00\x0b\x00\x00\x00\x00\x00\x00\x00\x18\x00\x00\x00\x00\x00\x00\x00\x15\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x88\x0f\x01\x00\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x60\x00\x00\x00\x00\x00\x00\x00\x14\x00\x00\x00\x00\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x17\x00\x00\x00\x00\x00\x00\x00\x50\x05\x00\x00\x00\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x60\x04\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\xf0\x00\x00\x00\x00\x00\x00\x00\x09\x00\x00\x00\x00\x00\x00\x00\x18\x00\x00\x00\x00\x00\x00\x00\x1e\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\xfb\xff\xff\x6f\x00\x00\x00\x00\x01\x00\x00\x08\x00\x00\x00\x00\xfe\xff\xff\x6f\x00\x00\x00\x00\x30\x04\x00\x00\x00\x00\x00\x00\xff\xff\xff\x6f\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\xf0\xff\xff\x6f\x00\x00\x00\x00\x1e\x04\x00\x00\x00\x00\x00\x00\xf9\xff\xff\x6f\x00\x00\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".got", 0x10F88, "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xd0\x05\x00\x00\x00\x00\x00\x00\xd0\x05\x00\x00\x00\x00\x00\x00\xd0\x05\x00\x00\x00\x00\x00\x00\xd0\x05\x00\x00\x00\x00\x00\x00\x98\x0d\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x14\x10\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x18\x10\x01\x00\x00\x00\x00\x00\x5c\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".data", 0x11000, "\x00\x00\x00\x00\x00\x00\x00\x00\x08\x10\x01\x00\x00\x00\x00\x00"), -Section(".init_array", 0x10D88, "\x50\x07\x00\x00\x00\x00\x00\x00"), -Section(".text", 0x640, "\x1f\x20\x03\xd5\x1d\x00\x80\xd2\x1e\x00\x80\xd2\xe5\x03\x00\xaa\xe1\x03\x40\xf9\xe2\x23\x00\x91\xe6\x03\x00\x91\x80\x00\x00\x90\x00\xf8\x47\xf9\x03\x00\x80\xd2\x04\x00\x80\xd2\xe1\xff\xff\x97\xec\xff\xff\x97\x80\x00\x00\x90\x00\xf0\x47\xf9\x40\x00\x00\xb4\xe4\xff\xff\x17\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x80\x00\x00\xb0\x00\x40\x00\x91\x81\x00\x00\xb0\x21\x40\x00\x91\x3f\x00\x00\xeb\xc0\x00\x00\x54\x81\x00\x00\x90\x21\xe4\x47\xf9\x61\x00\x00\xb4\xf0\x03\x01\xaa\x00\x02\x1f\xd6\xc0\x03\x5f\xd6\x80\x00\x00\xb0\x00\x40\x00\x91\x81\x00\x00\xb0\x21\x40\x00\x91\x21\x00\x00\xcb\x22\xfc\x7f\xd3\x41\x0c\x81\x8b\x21\xfc\x41\x93\xc1\x00\x00\xb4\x82\x00\x00\x90\x42\xfc\x47\xf9\x62\x00\x00\xb4\xf0\x03\x02\xaa\x00\x02\x1f\xd6\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\xfd\x7b\xbe\xa9\xfd\x03\x00\x91\xf3\x0b\x00\xf9\x93\x00\x00\xb0\x60\x42\x40\x39\x40\x01\x00\x35\x80\x00\x00\x90\x00\xe8\x47\xf9\x80\x00\x00\xb4\x80\x00\x00\xb0\x00\x04\x40\xf9\xb5\xff\xff\x97\xd8\xff\xff\x97\x20\x00\x80\x52\x60\x42\x00\x39\xf3\x0b\x40\xf9\xfd\x7b\xc2\xa8\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\xdc\xff\xff\x17\x00\x00\x80\x52\xc0\x03\x5f\xd6\xfd\x7b\xbe\xa9\xfd\x03\x00\x91\xe0\x1f\x00\xb9\xfb\xff\xff\x97\xe1\x03\x00\x2a\x80\x00\x00\x90\x00\xec\x47\xf9\x01\x00\x00\xb9\x80\x00\x00\x90\x00\xf4\x47\xf9\xe1\x1f\x40\xb9\x01\x00\x00\xb9\x00\x00\x80\x52\xfd\x7b\xc2\xa8\xc0\x03\x5f\xd6")]), -Memmap([Annotation(Region(0x0,0x8B7), Attr("segment","02 0 2232")), -Annotation(Region(0x640,0x673), Attr("symbol","\"_start\"")), -Annotation(Region(0x0,0xF9), Attr("section","\".shstrtab\"")), -Annotation(Region(0x0,0x236), Attr("section","\".strtab\"")), -Annotation(Region(0x0,0x86F), Attr("section","\".symtab\"")), -Annotation(Region(0x0,0x2A), Attr("section","\".comment\"")), -Annotation(Region(0x238,0x252), Attr("section","\".interp\"")), -Annotation(Region(0x254,0x277), Attr("section","\".note.gnu.build-id\"")), -Annotation(Region(0x278,0x297), Attr("section","\".note.ABI-tag\"")), -Annotation(Region(0x298,0x2B3), Attr("section","\".gnu.hash\"")), -Annotation(Region(0x2B8,0x38F), Attr("section","\".dynsym\"")), -Annotation(Region(0x390,0x41C), Attr("section","\".dynstr\"")), -Annotation(Region(0x41E,0x42F), Attr("section","\".gnu.version\"")), -Annotation(Region(0x430,0x45F), Attr("section","\".gnu.version_r\"")), -Annotation(Region(0x460,0x54F), Attr("section","\".rela.dyn\"")), -Annotation(Region(0x550,0x5AF), Attr("section","\".rela.plt\"")), -Annotation(Region(0x5B0,0x5C7), Attr("section","\".init\"")), -Annotation(Region(0x5D0,0x62F), Attr("section","\".plt\"")), -Annotation(Region(0x5B0,0x5C7), Attr("code-region","()")), -Annotation(Region(0x5D0,0x62F), Attr("code-region","()")), -Annotation(Region(0x640,0x673), Attr("symbol-info","_start 0x640 52")), -Annotation(Region(0x674,0x687), Attr("symbol","\"call_weak_fn\"")), -Annotation(Region(0x674,0x687), Attr("symbol-info","call_weak_fn 0x674 20")), -Annotation(Region(0x754,0x75B), Attr("symbol","\"zero\"")), -Annotation(Region(0x640,0x797), Attr("code-region","()")), -Annotation(Region(0x754,0x75B), Attr("symbol-info","zero 0x754 8")), -Annotation(Region(0x75C,0x797), Attr("symbol","\"main\"")), -Annotation(Region(0x75C,0x797), Attr("symbol-info","main 0x75C 60")), -Annotation(Region(0x798,0x7AB), Attr("section","\".fini\"")), -Annotation(Region(0x7AC,0x7AF), Attr("section","\".rodata\"")), -Annotation(Region(0x7B0,0x7F3), Attr("section","\".eh_frame_hdr\"")), -Annotation(Region(0x7F8,0x8B7), Attr("section","\".eh_frame\"")), -Annotation(Region(0x10D88,0x1100F), Attr("segment","03 0x10D88 664")), -Annotation(Region(0x10D90,0x10D97), Attr("section","\".fini_array\"")), -Annotation(Region(0x10D98,0x10F87), Attr("section","\".dynamic\"")), -Annotation(Region(0x10F88,0x10FFF), Attr("section","\".got\"")), -Annotation(Region(0x11000,0x1100F), Attr("section","\".data\"")), -Annotation(Region(0x10D88,0x10D8F), Attr("section","\".init_array\"")), -Annotation(Region(0x640,0x797), Attr("section","\".text\"")), -Annotation(Region(0x798,0x7AB), Attr("code-region","()"))]), -Program(Tid(1_477, "%000005c5"), Attrs([]), - Subs([Sub(Tid(1_425, "@__cxa_finalize"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x600"), -Attr("stub","()")]), "__cxa_finalize", Args([Arg(Tid(1_478, "%000005c6"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("__cxa_finalize_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(937, "@__cxa_finalize"), - Attrs([Attr("address","0x600")]), Phis([]), -Defs([Def(Tid(1_185, "%000004a1"), Attrs([Attr("address","0x600"), -Attr("insn","adrp x16, #65536")]), Var("R16",Imm(64)), Int(65536,64)), -Def(Tid(1_192, "%000004a8"), Attrs([Attr("address","0x604"), -Attr("insn","ldr x17, [x16, #0xfa8]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(4008,64)),LittleEndian(),64)), -Def(Tid(1_198, "%000004ae"), Attrs([Attr("address","0x608"), -Attr("insn","add x16, x16, #0xfa8")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(4008,64)))]), Jmps([Call(Tid(1_203, "%000004b3"), - Attrs([Attr("address","0x60C"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), -Sub(Tid(1_426, "@__do_global_dtors_aux"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x700")]), - "__do_global_dtors_aux", Args([Arg(Tid(1_479, "%000005c7"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("__do_global_dtors_aux_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(658, "@__do_global_dtors_aux"), - Attrs([Attr("address","0x700")]), Phis([]), Defs([Def(Tid(662, "%00000296"), - Attrs([Attr("address","0x700"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("#3",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(18446744073709551584,64))), -Def(Tid(668, "%0000029c"), Attrs([Attr("address","0x700"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("#3",Imm(64)),Var("R29",Imm(64)),LittleEndian(),64)), -Def(Tid(674, "%000002a2"), Attrs([Attr("address","0x700"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("#3",Imm(64)),Int(8,64)),Var("R30",Imm(64)),LittleEndian(),64)), -Def(Tid(678, "%000002a6"), Attrs([Attr("address","0x700"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("R31",Imm(64)), -Var("#3",Imm(64))), Def(Tid(684, "%000002ac"), - Attrs([Attr("address","0x704"), Attr("insn","mov x29, sp")]), - Var("R29",Imm(64)), Var("R31",Imm(64))), Def(Tid(692, "%000002b4"), - Attrs([Attr("address","0x708"), Attr("insn","str x19, [sp, #0x10]")]), - Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(16,64)),Var("R19",Imm(64)),LittleEndian(),64)), -Def(Tid(697, "%000002b9"), Attrs([Attr("address","0x70C"), -Attr("insn","adrp x19, #69632")]), Var("R19",Imm(64)), Int(69632,64)), -Def(Tid(704, "%000002c0"), Attrs([Attr("address","0x710"), -Attr("insn","ldrb w0, [x19, #0x10]")]), Var("R0",Imm(64)), -UNSIGNED(64,Load(Var("mem",Mem(64,8)),PLUS(Var("R19",Imm(64)),Int(16,64)),LittleEndian(),8)))]), -Jmps([Goto(Tid(711, "%000002c7"), Attrs([Attr("address","0x714"), -Attr("insn","cbnz w0, #0x28")]), - NEQ(Extract(31,0,Var("R0",Imm(64))),Int(0,32)), -Direct(Tid(709, "%000002c5"))), Goto(Tid(1_467, "%000005bb"), Attrs([]), - Int(1,1), Direct(Tid(882, "%00000372")))])), Blk(Tid(882, "%00000372"), - Attrs([Attr("address","0x718")]), Phis([]), Defs([Def(Tid(885, "%00000375"), - Attrs([Attr("address","0x718"), Attr("insn","adrp x0, #65536")]), - Var("R0",Imm(64)), Int(65536,64)), Def(Tid(892, "%0000037c"), - Attrs([Attr("address","0x71C"), Attr("insn","ldr x0, [x0, #0xfd0]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(4048,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(898, "%00000382"), Attrs([Attr("address","0x720"), -Attr("insn","cbz x0, #0x10")]), EQ(Var("R0",Imm(64)),Int(0,64)), -Direct(Tid(896, "%00000380"))), Goto(Tid(1_468, "%000005bc"), Attrs([]), - Int(1,1), Direct(Tid(921, "%00000399")))])), Blk(Tid(921, "%00000399"), - Attrs([Attr("address","0x724")]), Phis([]), Defs([Def(Tid(924, "%0000039c"), - Attrs([Attr("address","0x724"), Attr("insn","adrp x0, #69632")]), - Var("R0",Imm(64)), Int(69632,64)), Def(Tid(931, "%000003a3"), - Attrs([Attr("address","0x728"), Attr("insn","ldr x0, [x0, #0x8]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(936, "%000003a8"), Attrs([Attr("address","0x72C"), -Attr("insn","bl #-0x12c")]), Var("R30",Imm(64)), Int(1840,64))]), -Jmps([Call(Tid(939, "%000003ab"), Attrs([Attr("address","0x72C"), -Attr("insn","bl #-0x12c")]), Int(1,1), -(Direct(Tid(1_425, "@__cxa_finalize")),Direct(Tid(896, "%00000380"))))])), -Blk(Tid(896, "%00000380"), Attrs([Attr("address","0x730")]), Phis([]), -Defs([Def(Tid(904, "%00000388"), Attrs([Attr("address","0x730"), -Attr("insn","bl #-0xa0")]), Var("R30",Imm(64)), Int(1844,64))]), -Jmps([Call(Tid(906, "%0000038a"), Attrs([Attr("address","0x730"), -Attr("insn","bl #-0xa0")]), Int(1,1), -(Direct(Tid(1_439, "@deregister_tm_clones")),Direct(Tid(908, "%0000038c"))))])), -Blk(Tid(908, "%0000038c"), Attrs([Attr("address","0x734")]), Phis([]), -Defs([Def(Tid(911, "%0000038f"), Attrs([Attr("address","0x734"), -Attr("insn","mov w0, #0x1")]), Var("R0",Imm(64)), Int(1,64)), -Def(Tid(919, "%00000397"), Attrs([Attr("address","0x738"), -Attr("insn","strb w0, [x19, #0x10]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R19",Imm(64)),Int(16,64)),Extract(7,0,Var("R0",Imm(64))),LittleEndian(),8))]), -Jmps([Goto(Tid(1_469, "%000005bd"), Attrs([]), Int(1,1), -Direct(Tid(709, "%000002c5")))])), Blk(Tid(709, "%000002c5"), - Attrs([Attr("address","0x73C")]), Phis([]), Defs([Def(Tid(719, "%000002cf"), - Attrs([Attr("address","0x73C"), Attr("insn","ldr x19, [sp, #0x10]")]), - Var("R19",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(16,64)),LittleEndian(),64)), -Def(Tid(726, "%000002d6"), Attrs([Attr("address","0x740"), -Attr("insn","ldp x29, x30, [sp], #0x20")]), Var("R29",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(731, "%000002db"), Attrs([Attr("address","0x740"), -Attr("insn","ldp x29, x30, [sp], #0x20")]), Var("R30",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(735, "%000002df"), Attrs([Attr("address","0x740"), -Attr("insn","ldp x29, x30, [sp], #0x20")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(32,64)))]), Jmps([Call(Tid(740, "%000002e4"), - Attrs([Attr("address","0x744"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), Sub(Tid(1_430, "@__libc_start_main"), - Attrs([Attr("c.proto","signed (*)(signed (*)(signed , char** , char** );* main, signed , char** , \nvoid* auxv)"), -Attr("address","0x5F0"), Attr("stub","()")]), "__libc_start_main", - Args([Arg(Tid(1_480, "%000005c8"), - Attrs([Attr("c.layout","**[ : 64]"), -Attr("c.data","Top:u64 ptr ptr"), -Attr("c.type","signed (*)(signed , char** , char** );*")]), - Var("__libc_start_main_main",Imm(64)), Var("R0",Imm(64)), In()), -Arg(Tid(1_481, "%000005c9"), Attrs([Attr("c.layout","[signed : 32]"), -Attr("c.data","Top:u32"), Attr("c.type","signed")]), - Var("__libc_start_main_arg2",Imm(32)), LOW(32,Var("R1",Imm(64))), In()), -Arg(Tid(1_482, "%000005ca"), Attrs([Attr("c.layout","**[char : 8]"), -Attr("c.data","Top:u8 ptr ptr"), Attr("c.type","char**")]), - Var("__libc_start_main_arg3",Imm(64)), Var("R2",Imm(64)), Both()), -Arg(Tid(1_483, "%000005cb"), Attrs([Attr("c.layout","*[ : 8]"), -Attr("c.data","{} ptr"), Attr("c.type","void*")]), - Var("__libc_start_main_auxv",Imm(64)), Var("R3",Imm(64)), Both()), -Arg(Tid(1_484, "%000005cc"), Attrs([Attr("c.layout","[signed : 32]"), -Attr("c.data","Top:u32"), Attr("c.type","signed")]), - Var("__libc_start_main_result",Imm(32)), LOW(32,Var("R0",Imm(64))), -Out())]), Blks([Blk(Tid(491, "@__libc_start_main"), - Attrs([Attr("address","0x5F0")]), Phis([]), -Defs([Def(Tid(1_163, "%0000048b"), Attrs([Attr("address","0x5F0"), -Attr("insn","adrp x16, #65536")]), Var("R16",Imm(64)), Int(65536,64)), -Def(Tid(1_170, "%00000492"), Attrs([Attr("address","0x5F4"), -Attr("insn","ldr x17, [x16, #0xfa0]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(4000,64)),LittleEndian(),64)), -Def(Tid(1_176, "%00000498"), Attrs([Attr("address","0x5F8"), -Attr("insn","add x16, x16, #0xfa0")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(4000,64)))]), Jmps([Call(Tid(1_181, "%0000049d"), - Attrs([Attr("address","0x5FC"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), Sub(Tid(1_431, "@_fini"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x798")]), - "_fini", Args([Arg(Tid(1_485, "%000005cd"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("_fini_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(31, "@_fini"), - Attrs([Attr("address","0x798")]), Phis([]), Defs([Def(Tid(37, "%00000025"), - Attrs([Attr("address","0x79C"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("#0",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(18446744073709551600,64))), -Def(Tid(43, "%0000002b"), Attrs([Attr("address","0x79C"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("#0",Imm(64)),Var("R29",Imm(64)),LittleEndian(),64)), -Def(Tid(49, "%00000031"), Attrs([Attr("address","0x79C"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("#0",Imm(64)),Int(8,64)),Var("R30",Imm(64)),LittleEndian(),64)), -Def(Tid(53, "%00000035"), Attrs([Attr("address","0x79C"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("R31",Imm(64)), -Var("#0",Imm(64))), Def(Tid(59, "%0000003b"), Attrs([Attr("address","0x7A0"), -Attr("insn","mov x29, sp")]), Var("R29",Imm(64)), Var("R31",Imm(64))), -Def(Tid(66, "%00000042"), Attrs([Attr("address","0x7A4"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R29",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(71, "%00000047"), Attrs([Attr("address","0x7A4"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R30",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(75, "%0000004b"), Attrs([Attr("address","0x7A4"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(16,64)))]), Jmps([Call(Tid(80, "%00000050"), - Attrs([Attr("address","0x7A8"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), Sub(Tid(1_432, "@_init"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x5B0")]), - "_init", Args([Arg(Tid(1_486, "%000005ce"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("_init_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(1_275, "@_init"), - Attrs([Attr("address","0x5B0")]), Phis([]), -Defs([Def(Tid(1_281, "%00000501"), Attrs([Attr("address","0x5B4"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("#6",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(18446744073709551600,64))), -Def(Tid(1_287, "%00000507"), Attrs([Attr("address","0x5B4"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("#6",Imm(64)),Var("R29",Imm(64)),LittleEndian(),64)), -Def(Tid(1_293, "%0000050d"), Attrs([Attr("address","0x5B4"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("#6",Imm(64)),Int(8,64)),Var("R30",Imm(64)),LittleEndian(),64)), -Def(Tid(1_297, "%00000511"), Attrs([Attr("address","0x5B4"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("R31",Imm(64)), -Var("#6",Imm(64))), Def(Tid(1_303, "%00000517"), - Attrs([Attr("address","0x5B8"), Attr("insn","mov x29, sp")]), - Var("R29",Imm(64)), Var("R31",Imm(64))), Def(Tid(1_308, "%0000051c"), - Attrs([Attr("address","0x5BC"), Attr("insn","bl #0xb8")]), - Var("R30",Imm(64)), Int(1472,64))]), Jmps([Call(Tid(1_310, "%0000051e"), - Attrs([Attr("address","0x5BC"), Attr("insn","bl #0xb8")]), Int(1,1), -(Direct(Tid(1_437, "@call_weak_fn")),Direct(Tid(1_312, "%00000520"))))])), -Blk(Tid(1_312, "%00000520"), Attrs([Attr("address","0x5C0")]), Phis([]), -Defs([Def(Tid(1_317, "%00000525"), Attrs([Attr("address","0x5C0"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R29",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(1_322, "%0000052a"), Attrs([Attr("address","0x5C0"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R30",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(1_326, "%0000052e"), Attrs([Attr("address","0x5C0"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(16,64)))]), Jmps([Call(Tid(1_331, "%00000533"), - Attrs([Attr("address","0x5C4"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), Sub(Tid(1_433, "@_start"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x640"), -Attr("entry-point","()")]), "_start", Args([Arg(Tid(1_487, "%000005cf"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("_start_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(428, "@_start"), - Attrs([Attr("address","0x640")]), Phis([]), Defs([Def(Tid(433, "%000001b1"), - Attrs([Attr("address","0x644"), Attr("insn","mov x29, #0x0")]), - Var("R29",Imm(64)), Int(0,64)), Def(Tid(438, "%000001b6"), - Attrs([Attr("address","0x648"), Attr("insn","mov x30, #0x0")]), - Var("R30",Imm(64)), Int(0,64)), Def(Tid(444, "%000001bc"), - Attrs([Attr("address","0x64C"), Attr("insn","mov x5, x0")]), - Var("R5",Imm(64)), Var("R0",Imm(64))), Def(Tid(451, "%000001c3"), - Attrs([Attr("address","0x650"), Attr("insn","ldr x1, [sp]")]), - Var("R1",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(457, "%000001c9"), Attrs([Attr("address","0x654"), -Attr("insn","add x2, sp, #0x8")]), Var("R2",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(8,64))), Def(Tid(463, "%000001cf"), - Attrs([Attr("address","0x658"), Attr("insn","mov x6, sp")]), - Var("R6",Imm(64)), Var("R31",Imm(64))), Def(Tid(468, "%000001d4"), - Attrs([Attr("address","0x65C"), Attr("insn","adrp x0, #65536")]), - Var("R0",Imm(64)), Int(65536,64)), Def(Tid(475, "%000001db"), - Attrs([Attr("address","0x660"), Attr("insn","ldr x0, [x0, #0xff0]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(4080,64)),LittleEndian(),64)), -Def(Tid(480, "%000001e0"), Attrs([Attr("address","0x664"), -Attr("insn","mov x3, #0x0")]), Var("R3",Imm(64)), Int(0,64)), -Def(Tid(485, "%000001e5"), Attrs([Attr("address","0x668"), -Attr("insn","mov x4, #0x0")]), Var("R4",Imm(64)), Int(0,64)), -Def(Tid(490, "%000001ea"), Attrs([Attr("address","0x66C"), -Attr("insn","bl #-0x7c")]), Var("R30",Imm(64)), Int(1648,64))]), -Jmps([Call(Tid(493, "%000001ed"), Attrs([Attr("address","0x66C"), -Attr("insn","bl #-0x7c")]), Int(1,1), -(Direct(Tid(1_430, "@__libc_start_main")),Direct(Tid(495, "%000001ef"))))])), -Blk(Tid(495, "%000001ef"), Attrs([Attr("address","0x670")]), Phis([]), -Defs([Def(Tid(498, "%000001f2"), Attrs([Attr("address","0x670"), -Attr("insn","bl #-0x50")]), Var("R30",Imm(64)), Int(1652,64))]), -Jmps([Call(Tid(501, "%000001f5"), Attrs([Attr("address","0x670"), -Attr("insn","bl #-0x50")]), Int(1,1), -(Direct(Tid(1_436, "@abort")),Direct(Tid(1_470, "%000005be"))))])), -Blk(Tid(1_470, "%000005be"), Attrs([]), Phis([]), Defs([]), -Jmps([Call(Tid(1_471, "%000005bf"), Attrs([]), Int(1,1), -(Direct(Tid(1_437, "@call_weak_fn")),))]))])), Sub(Tid(1_436, "@abort"), - Attrs([Attr("noreturn","()"), Attr("c.proto","void (*)(void)"), -Attr("address","0x620"), Attr("stub","()")]), "abort", Args([]), -Blks([Blk(Tid(499, "@abort"), Attrs([Attr("address","0x620")]), Phis([]), -Defs([Def(Tid(1_229, "%000004cd"), Attrs([Attr("address","0x620"), -Attr("insn","adrp x16, #65536")]), Var("R16",Imm(64)), Int(65536,64)), -Def(Tid(1_236, "%000004d4"), Attrs([Attr("address","0x624"), -Attr("insn","ldr x17, [x16, #0xfb8]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(4024,64)),LittleEndian(),64)), -Def(Tid(1_242, "%000004da"), Attrs([Attr("address","0x628"), -Attr("insn","add x16, x16, #0xfb8")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(4024,64)))]), Jmps([Call(Tid(1_247, "%000004df"), - Attrs([Attr("address","0x62C"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), Sub(Tid(1_437, "@call_weak_fn"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x674")]), - "call_weak_fn", Args([Arg(Tid(1_488, "%000005d0"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("call_weak_fn_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(503, "@call_weak_fn"), - Attrs([Attr("address","0x674")]), Phis([]), Defs([Def(Tid(506, "%000001fa"), - Attrs([Attr("address","0x674"), Attr("insn","adrp x0, #65536")]), - Var("R0",Imm(64)), Int(65536,64)), Def(Tid(513, "%00000201"), - Attrs([Attr("address","0x678"), Attr("insn","ldr x0, [x0, #0xfe0]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(4064,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(519, "%00000207"), Attrs([Attr("address","0x67C"), -Attr("insn","cbz x0, #0x8")]), EQ(Var("R0",Imm(64)),Int(0,64)), -Direct(Tid(517, "%00000205"))), Goto(Tid(1_472, "%000005c0"), Attrs([]), - Int(1,1), Direct(Tid(1_001, "%000003e9")))])), Blk(Tid(517, "%00000205"), - Attrs([Attr("address","0x684")]), Phis([]), Defs([]), -Jmps([Call(Tid(525, "%0000020d"), Attrs([Attr("address","0x684"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))])), -Blk(Tid(1_001, "%000003e9"), Attrs([Attr("address","0x680")]), Phis([]), -Defs([]), Jmps([Goto(Tid(1_004, "%000003ec"), Attrs([Attr("address","0x680"), -Attr("insn","b #-0x70")]), Int(1,1), -Direct(Tid(1_002, "@__gmon_start__")))])), Blk(Tid(1_002, "@__gmon_start__"), - Attrs([Attr("address","0x610")]), Phis([]), -Defs([Def(Tid(1_207, "%000004b7"), Attrs([Attr("address","0x610"), -Attr("insn","adrp x16, #65536")]), Var("R16",Imm(64)), Int(65536,64)), -Def(Tid(1_214, "%000004be"), Attrs([Attr("address","0x614"), -Attr("insn","ldr x17, [x16, #0xfb0]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(4016,64)),LittleEndian(),64)), -Def(Tid(1_220, "%000004c4"), Attrs([Attr("address","0x618"), -Attr("insn","add x16, x16, #0xfb0")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(4016,64)))]), Jmps([Call(Tid(1_225, "%000004c9"), - Attrs([Attr("address","0x61C"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), -Sub(Tid(1_439, "@deregister_tm_clones"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x690")]), - "deregister_tm_clones", Args([Arg(Tid(1_489, "%000005d1"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("deregister_tm_clones_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(531, "@deregister_tm_clones"), - Attrs([Attr("address","0x690")]), Phis([]), Defs([Def(Tid(534, "%00000216"), - Attrs([Attr("address","0x690"), Attr("insn","adrp x0, #69632")]), - Var("R0",Imm(64)), Int(69632,64)), Def(Tid(540, "%0000021c"), - Attrs([Attr("address","0x694"), Attr("insn","add x0, x0, #0x10")]), - Var("R0",Imm(64)), PLUS(Var("R0",Imm(64)),Int(16,64))), -Def(Tid(545, "%00000221"), Attrs([Attr("address","0x698"), -Attr("insn","adrp x1, #69632")]), Var("R1",Imm(64)), Int(69632,64)), -Def(Tid(551, "%00000227"), Attrs([Attr("address","0x69C"), -Attr("insn","add x1, x1, #0x10")]), Var("R1",Imm(64)), -PLUS(Var("R1",Imm(64)),Int(16,64))), Def(Tid(557, "%0000022d"), - Attrs([Attr("address","0x6A0"), Attr("insn","cmp x1, x0")]), - Var("#1",Imm(64)), NOT(Var("R0",Imm(64)))), Def(Tid(562, "%00000232"), - Attrs([Attr("address","0x6A0"), Attr("insn","cmp x1, x0")]), - Var("#2",Imm(64)), PLUS(Var("R1",Imm(64)),NOT(Var("R0",Imm(64))))), -Def(Tid(568, "%00000238"), Attrs([Attr("address","0x6A0"), -Attr("insn","cmp x1, x0")]), Var("VF",Imm(1)), -NEQ(SIGNED(65,PLUS(Var("#2",Imm(64)),Int(1,64))),PLUS(PLUS(SIGNED(65,Var("R1",Imm(64))),SIGNED(65,Var("#1",Imm(64)))),Int(1,65)))), -Def(Tid(574, "%0000023e"), Attrs([Attr("address","0x6A0"), -Attr("insn","cmp x1, x0")]), Var("CF",Imm(1)), -NEQ(UNSIGNED(65,PLUS(Var("#2",Imm(64)),Int(1,64))),PLUS(PLUS(UNSIGNED(65,Var("R1",Imm(64))),UNSIGNED(65,Var("#1",Imm(64)))),Int(1,65)))), -Def(Tid(578, "%00000242"), Attrs([Attr("address","0x6A0"), -Attr("insn","cmp x1, x0")]), Var("ZF",Imm(1)), -EQ(PLUS(Var("#2",Imm(64)),Int(1,64)),Int(0,64))), Def(Tid(582, "%00000246"), - Attrs([Attr("address","0x6A0"), Attr("insn","cmp x1, x0")]), - Var("NF",Imm(1)), Extract(63,63,PLUS(Var("#2",Imm(64)),Int(1,64))))]), -Jmps([Goto(Tid(588, "%0000024c"), Attrs([Attr("address","0x6A4"), -Attr("insn","b.eq #0x18")]), EQ(Var("ZF",Imm(1)),Int(1,1)), -Direct(Tid(586, "%0000024a"))), Goto(Tid(1_473, "%000005c1"), Attrs([]), - Int(1,1), Direct(Tid(971, "%000003cb")))])), Blk(Tid(971, "%000003cb"), - Attrs([Attr("address","0x6A8")]), Phis([]), Defs([Def(Tid(974, "%000003ce"), - Attrs([Attr("address","0x6A8"), Attr("insn","adrp x1, #65536")]), - Var("R1",Imm(64)), Int(65536,64)), Def(Tid(981, "%000003d5"), - Attrs([Attr("address","0x6AC"), Attr("insn","ldr x1, [x1, #0xfc8]")]), - Var("R1",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R1",Imm(64)),Int(4040,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(986, "%000003da"), Attrs([Attr("address","0x6B0"), -Attr("insn","cbz x1, #0xc")]), EQ(Var("R1",Imm(64)),Int(0,64)), -Direct(Tid(586, "%0000024a"))), Goto(Tid(1_474, "%000005c2"), Attrs([]), - Int(1,1), Direct(Tid(990, "%000003de")))])), Blk(Tid(586, "%0000024a"), - Attrs([Attr("address","0x6BC")]), Phis([]), Defs([]), -Jmps([Call(Tid(594, "%00000252"), Attrs([Attr("address","0x6BC"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))])), -Blk(Tid(990, "%000003de"), Attrs([Attr("address","0x6B4")]), Phis([]), -Defs([Def(Tid(994, "%000003e2"), Attrs([Attr("address","0x6B4"), -Attr("insn","mov x16, x1")]), Var("R16",Imm(64)), Var("R1",Imm(64)))]), -Jmps([Call(Tid(999, "%000003e7"), Attrs([Attr("address","0x6B8"), -Attr("insn","br x16")]), Int(1,1), (Indirect(Var("R16",Imm(64))),))]))])), -Sub(Tid(1_442, "@frame_dummy"), Attrs([Attr("c.proto","signed (*)(void)"), -Attr("address","0x750")]), "frame_dummy", Args([Arg(Tid(1_490, "%000005d2"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("frame_dummy_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(746, "@frame_dummy"), - Attrs([Attr("address","0x750")]), Phis([]), Defs([]), -Jmps([Call(Tid(748, "%000002ec"), Attrs([Attr("address","0x750"), -Attr("insn","b #-0x90")]), Int(1,1), -(Direct(Tid(1_444, "@register_tm_clones")),))]))])), Sub(Tid(1_443, "@main"), - Attrs([Attr("c.proto","signed (*)(signed argc, const char** argv)"), -Attr("address","0x75C")]), "main", Args([Arg(Tid(1_491, "%000005d3"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("main_argc",Imm(32)), -LOW(32,Var("R0",Imm(64))), In()), Arg(Tid(1_492, "%000005d4"), - Attrs([Attr("c.layout","**[char : 8]"), Attr("c.data","Top:u8 ptr ptr"), -Attr("c.type"," const char**")]), Var("main_argv",Imm(64)), -Var("R1",Imm(64)), Both()), Arg(Tid(1_493, "%000005d5"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("main_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(760, "@main"), - Attrs([Attr("address","0x75C")]), Phis([]), Defs([Def(Tid(764, "%000002fc"), - Attrs([Attr("address","0x75C"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("#4",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(18446744073709551584,64))), -Def(Tid(770, "%00000302"), Attrs([Attr("address","0x75C"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("#4",Imm(64)),Var("R29",Imm(64)),LittleEndian(),64)), -Def(Tid(776, "%00000308"), Attrs([Attr("address","0x75C"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("#4",Imm(64)),Int(8,64)),Var("R30",Imm(64)),LittleEndian(),64)), -Def(Tid(780, "%0000030c"), Attrs([Attr("address","0x75C"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("R31",Imm(64)), -Var("#4",Imm(64))), Def(Tid(786, "%00000312"), - Attrs([Attr("address","0x760"), Attr("insn","mov x29, sp")]), - Var("R29",Imm(64)), Var("R31",Imm(64))), Def(Tid(794, "%0000031a"), - Attrs([Attr("address","0x764"), Attr("insn","str w0, [sp, #0x1c]")]), - Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(28,64)),Extract(31,0,Var("R0",Imm(64))),LittleEndian(),32)), -Def(Tid(799, "%0000031f"), Attrs([Attr("address","0x768"), -Attr("insn","bl #-0x14")]), Var("R30",Imm(64)), Int(1900,64))]), -Jmps([Call(Tid(801, "%00000321"), Attrs([Attr("address","0x768"), -Attr("insn","bl #-0x14")]), Int(1,1), -(Direct(Tid(1_447, "@zero")),Direct(Tid(803, "%00000323"))))])), -Blk(Tid(803, "%00000323"), Attrs([Attr("address","0x76C")]), Phis([]), -Defs([Def(Tid(807, "%00000327"), Attrs([Attr("address","0x76C"), -Attr("insn","mov w1, w0")]), Var("R1",Imm(64)), -UNSIGNED(64,Extract(31,0,Var("R0",Imm(64))))), Def(Tid(812, "%0000032c"), - Attrs([Attr("address","0x770"), Attr("insn","adrp x0, #65536")]), - Var("R0",Imm(64)), Int(65536,64)), Def(Tid(819, "%00000333"), - Attrs([Attr("address","0x774"), Attr("insn","ldr x0, [x0, #0xfd8]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(4056,64)),LittleEndian(),64)), -Def(Tid(827, "%0000033b"), Attrs([Attr("address","0x778"), -Attr("insn","str w1, [x0]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("R0",Imm(64)),Extract(31,0,Var("R1",Imm(64))),LittleEndian(),32)), -Def(Tid(832, "%00000340"), Attrs([Attr("address","0x77C"), -Attr("insn","adrp x0, #65536")]), Var("R0",Imm(64)), Int(65536,64)), -Def(Tid(839, "%00000347"), Attrs([Attr("address","0x780"), -Attr("insn","ldr x0, [x0, #0xfe8]")]), Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(4072,64)),LittleEndian(),64)), -Def(Tid(846, "%0000034e"), Attrs([Attr("address","0x784"), -Attr("insn","ldr w1, [sp, #0x1c]")]), Var("R1",Imm(64)), -UNSIGNED(64,Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(28,64)),LittleEndian(),32))), -Def(Tid(854, "%00000356"), Attrs([Attr("address","0x788"), -Attr("insn","str w1, [x0]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("R0",Imm(64)),Extract(31,0,Var("R1",Imm(64))),LittleEndian(),32)), -Def(Tid(859, "%0000035b"), Attrs([Attr("address","0x78C"), -Attr("insn","mov w0, #0x0")]), Var("R0",Imm(64)), Int(0,64)), -Def(Tid(866, "%00000362"), Attrs([Attr("address","0x790"), -Attr("insn","ldp x29, x30, [sp], #0x20")]), Var("R29",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(871, "%00000367"), Attrs([Attr("address","0x790"), -Attr("insn","ldp x29, x30, [sp], #0x20")]), Var("R30",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(875, "%0000036b"), Attrs([Attr("address","0x790"), -Attr("insn","ldp x29, x30, [sp], #0x20")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(32,64)))]), Jmps([Call(Tid(880, "%00000370"), - Attrs([Attr("address","0x794"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), -Sub(Tid(1_444, "@register_tm_clones"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x6C0")]), - "register_tm_clones", Args([Arg(Tid(1_494, "%000005d6"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("register_tm_clones_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(596, "@register_tm_clones"), Attrs([Attr("address","0x6C0")]), - Phis([]), Defs([Def(Tid(599, "%00000257"), Attrs([Attr("address","0x6C0"), -Attr("insn","adrp x0, #69632")]), Var("R0",Imm(64)), Int(69632,64)), -Def(Tid(605, "%0000025d"), Attrs([Attr("address","0x6C4"), -Attr("insn","add x0, x0, #0x10")]), Var("R0",Imm(64)), -PLUS(Var("R0",Imm(64)),Int(16,64))), Def(Tid(610, "%00000262"), - Attrs([Attr("address","0x6C8"), Attr("insn","adrp x1, #69632")]), - Var("R1",Imm(64)), Int(69632,64)), Def(Tid(616, "%00000268"), - Attrs([Attr("address","0x6CC"), Attr("insn","add x1, x1, #0x10")]), - Var("R1",Imm(64)), PLUS(Var("R1",Imm(64)),Int(16,64))), -Def(Tid(623, "%0000026f"), Attrs([Attr("address","0x6D0"), -Attr("insn","sub x1, x1, x0")]), Var("R1",Imm(64)), -PLUS(PLUS(Var("R1",Imm(64)),NOT(Var("R0",Imm(64)))),Int(1,64))), -Def(Tid(629, "%00000275"), Attrs([Attr("address","0x6D4"), -Attr("insn","lsr x2, x1, #63")]), Var("R2",Imm(64)), -Concat(Int(0,63),Extract(63,63,Var("R1",Imm(64))))), -Def(Tid(636, "%0000027c"), Attrs([Attr("address","0x6D8"), -Attr("insn","add x1, x2, x1, asr #3")]), Var("R1",Imm(64)), -PLUS(Var("R2",Imm(64)),ARSHIFT(Var("R1",Imm(64)),Int(3,3)))), -Def(Tid(642, "%00000282"), Attrs([Attr("address","0x6DC"), -Attr("insn","asr x1, x1, #1")]), Var("R1",Imm(64)), -SIGNED(64,Extract(63,1,Var("R1",Imm(64)))))]), -Jmps([Goto(Tid(648, "%00000288"), Attrs([Attr("address","0x6E0"), -Attr("insn","cbz x1, #0x18")]), EQ(Var("R1",Imm(64)),Int(0,64)), -Direct(Tid(646, "%00000286"))), Goto(Tid(1_475, "%000005c3"), Attrs([]), - Int(1,1), Direct(Tid(941, "%000003ad")))])), Blk(Tid(941, "%000003ad"), - Attrs([Attr("address","0x6E4")]), Phis([]), Defs([Def(Tid(944, "%000003b0"), - Attrs([Attr("address","0x6E4"), Attr("insn","adrp x2, #65536")]), - Var("R2",Imm(64)), Int(65536,64)), Def(Tid(951, "%000003b7"), - Attrs([Attr("address","0x6E8"), Attr("insn","ldr x2, [x2, #0xff8]")]), - Var("R2",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R2",Imm(64)),Int(4088,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(956, "%000003bc"), Attrs([Attr("address","0x6EC"), -Attr("insn","cbz x2, #0xc")]), EQ(Var("R2",Imm(64)),Int(0,64)), -Direct(Tid(646, "%00000286"))), Goto(Tid(1_476, "%000005c4"), Attrs([]), - Int(1,1), Direct(Tid(960, "%000003c0")))])), Blk(Tid(646, "%00000286"), - Attrs([Attr("address","0x6F8")]), Phis([]), Defs([]), -Jmps([Call(Tid(654, "%0000028e"), Attrs([Attr("address","0x6F8"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))])), -Blk(Tid(960, "%000003c0"), Attrs([Attr("address","0x6F0")]), Phis([]), -Defs([Def(Tid(964, "%000003c4"), Attrs([Attr("address","0x6F0"), -Attr("insn","mov x16, x2")]), Var("R16",Imm(64)), Var("R2",Imm(64)))]), -Jmps([Call(Tid(969, "%000003c9"), Attrs([Attr("address","0x6F4"), -Attr("insn","br x16")]), Int(1,1), (Indirect(Var("R16",Imm(64))),))]))])), -Sub(Tid(1_447, "@zero"), Attrs([Attr("c.proto","signed (*)(void)"), -Attr("address","0x754")]), "zero", Args([Arg(Tid(1_495, "%000005d7"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("zero_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(750, "@zero"), - Attrs([Attr("address","0x754")]), Phis([]), Defs([Def(Tid(753, "%000002f1"), - Attrs([Attr("address","0x754"), Attr("insn","mov w0, #0x0")]), - Var("R0",Imm(64)), Int(0,64))]), Jmps([Call(Tid(758, "%000002f6"), - Attrs([Attr("address","0x758"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))]))]))) \ No newline at end of file diff --git a/src/test/correct/basic_function_call_caller/gcc_pic/basic_function_call_caller.bir b/src/test/correct/basic_function_call_caller/gcc_pic/basic_function_call_caller.bir deleted file mode 100644 index 8652bc63f..000000000 --- a/src/test/correct/basic_function_call_caller/gcc_pic/basic_function_call_caller.bir +++ /dev/null @@ -1,252 +0,0 @@ -000005c5: program -00000591: sub __cxa_finalize(__cxa_finalize_result) -000005c6: __cxa_finalize_result :: out u32 = low:32[R0] - -000003a9: -000004a1: R16 := 0x10000 -000004a8: R17 := mem[R16 + 0xFA8, el]:u64 -000004ae: R16 := R16 + 0xFA8 -000004b3: call R17 with noreturn - -00000592: sub __do_global_dtors_aux(__do_global_dtors_aux_result) -000005c7: __do_global_dtors_aux_result :: out u32 = low:32[R0] - -00000292: -00000296: #3 := R31 - 0x20 -0000029c: mem := mem with [#3, el]:u64 <- R29 -000002a2: mem := mem with [#3 + 8, el]:u64 <- R30 -000002a6: R31 := #3 -000002ac: R29 := R31 -000002b4: mem := mem with [R31 + 0x10, el]:u64 <- R19 -000002b9: R19 := 0x11000 -000002c0: R0 := pad:64[mem[R19 + 0x10]] -000002c7: when 31:0[R0] <> 0 goto %000002c5 -000005bb: goto %00000372 - -00000372: -00000375: R0 := 0x10000 -0000037c: R0 := mem[R0 + 0xFD0, el]:u64 -00000382: when R0 = 0 goto %00000380 -000005bc: goto %00000399 - -00000399: -0000039c: R0 := 0x11000 -000003a3: R0 := mem[R0 + 8, el]:u64 -000003a8: R30 := 0x730 -000003ab: call @__cxa_finalize with return %00000380 - -00000380: -00000388: R30 := 0x734 -0000038a: call @deregister_tm_clones with return %0000038c - -0000038c: -0000038f: R0 := 1 -00000397: mem := mem with [R19 + 0x10] <- 7:0[R0] -000005bd: goto %000002c5 - -000002c5: -000002cf: R19 := mem[R31 + 0x10, el]:u64 -000002d6: R29 := mem[R31, el]:u64 -000002db: R30 := mem[R31 + 8, el]:u64 -000002df: R31 := R31 + 0x20 -000002e4: call R30 with noreturn - -00000596: sub __libc_start_main(__libc_start_main_main, __libc_start_main_arg2, __libc_start_main_arg3, __libc_start_main_auxv, __libc_start_main_result) -000005c8: __libc_start_main_main :: in u64 = R0 -000005c9: __libc_start_main_arg2 :: in u32 = low:32[R1] -000005ca: __libc_start_main_arg3 :: in out u64 = R2 -000005cb: __libc_start_main_auxv :: in out u64 = R3 -000005cc: __libc_start_main_result :: out u32 = low:32[R0] - -000001eb: -0000048b: R16 := 0x10000 -00000492: R17 := mem[R16 + 0xFA0, el]:u64 -00000498: R16 := R16 + 0xFA0 -0000049d: call R17 with noreturn - -00000597: sub _fini(_fini_result) -000005cd: _fini_result :: out u32 = low:32[R0] - -0000001f: -00000025: #0 := R31 - 0x10 -0000002b: mem := mem with [#0, el]:u64 <- R29 -00000031: mem := mem with [#0 + 8, el]:u64 <- R30 -00000035: R31 := #0 -0000003b: R29 := R31 -00000042: R29 := mem[R31, el]:u64 -00000047: R30 := mem[R31 + 8, el]:u64 -0000004b: R31 := R31 + 0x10 -00000050: call R30 with noreturn - -00000598: sub _init(_init_result) -000005ce: _init_result :: out u32 = low:32[R0] - -000004fb: -00000501: #6 := R31 - 0x10 -00000507: mem := mem with [#6, el]:u64 <- R29 -0000050d: mem := mem with [#6 + 8, el]:u64 <- R30 -00000511: R31 := #6 -00000517: R29 := R31 -0000051c: R30 := 0x5C0 -0000051e: call @call_weak_fn with return %00000520 - -00000520: -00000525: R29 := mem[R31, el]:u64 -0000052a: R30 := mem[R31 + 8, el]:u64 -0000052e: R31 := R31 + 0x10 -00000533: call R30 with noreturn - -00000599: sub _start(_start_result) -000005cf: _start_result :: out u32 = low:32[R0] - -000001ac: -000001b1: R29 := 0 -000001b6: R30 := 0 -000001bc: R5 := R0 -000001c3: R1 := mem[R31, el]:u64 -000001c9: R2 := R31 + 8 -000001cf: R6 := R31 -000001d4: R0 := 0x10000 -000001db: R0 := mem[R0 + 0xFF0, el]:u64 -000001e0: R3 := 0 -000001e5: R4 := 0 -000001ea: R30 := 0x670 -000001ed: call @__libc_start_main with return %000001ef - -000001ef: -000001f2: R30 := 0x674 -000001f5: call @abort with return %000005be - -000005be: -000005bf: call @call_weak_fn with noreturn - -0000059c: sub abort() - - -000001f3: -000004cd: R16 := 0x10000 -000004d4: R17 := mem[R16 + 0xFB8, el]:u64 -000004da: R16 := R16 + 0xFB8 -000004df: call R17 with noreturn - -0000059d: sub call_weak_fn(call_weak_fn_result) -000005d0: call_weak_fn_result :: out u32 = low:32[R0] - -000001f7: -000001fa: R0 := 0x10000 -00000201: R0 := mem[R0 + 0xFE0, el]:u64 -00000207: when R0 = 0 goto %00000205 -000005c0: goto %000003e9 - -00000205: -0000020d: call R30 with noreturn - -000003e9: -000003ec: goto @__gmon_start__ - -000003ea: -000004b7: R16 := 0x10000 -000004be: R17 := mem[R16 + 0xFB0, el]:u64 -000004c4: R16 := R16 + 0xFB0 -000004c9: call R17 with noreturn - -0000059f: sub deregister_tm_clones(deregister_tm_clones_result) -000005d1: deregister_tm_clones_result :: out u32 = low:32[R0] - -00000213: -00000216: R0 := 0x11000 -0000021c: R0 := R0 + 0x10 -00000221: R1 := 0x11000 -00000227: R1 := R1 + 0x10 -0000022d: #1 := ~R0 -00000232: #2 := R1 + ~R0 -00000238: VF := extend:65[#2 + 1] <> extend:65[R1] + extend:65[#1] + 1 -0000023e: CF := pad:65[#2 + 1] <> pad:65[R1] + pad:65[#1] + 1 -00000242: ZF := #2 + 1 = 0 -00000246: NF := 63:63[#2 + 1] -0000024c: when ZF goto %0000024a -000005c1: goto %000003cb - -000003cb: -000003ce: R1 := 0x10000 -000003d5: R1 := mem[R1 + 0xFC8, el]:u64 -000003da: when R1 = 0 goto %0000024a -000005c2: goto %000003de - -0000024a: -00000252: call R30 with noreturn - -000003de: -000003e2: R16 := R1 -000003e7: call R16 with noreturn - -000005a2: sub frame_dummy(frame_dummy_result) -000005d2: frame_dummy_result :: out u32 = low:32[R0] - -000002ea: -000002ec: call @register_tm_clones with noreturn - -000005a3: sub main(main_argc, main_argv, main_result) -000005d3: main_argc :: in u32 = low:32[R0] -000005d4: main_argv :: in out u64 = R1 -000005d5: main_result :: out u32 = low:32[R0] - -000002f8: -000002fc: #4 := R31 - 0x20 -00000302: mem := mem with [#4, el]:u64 <- R29 -00000308: mem := mem with [#4 + 8, el]:u64 <- R30 -0000030c: R31 := #4 -00000312: R29 := R31 -0000031a: mem := mem with [R31 + 0x1C, el]:u32 <- 31:0[R0] -0000031f: R30 := 0x76C -00000321: call @zero with return %00000323 - -00000323: -00000327: R1 := pad:64[31:0[R0]] -0000032c: R0 := 0x10000 -00000333: R0 := mem[R0 + 0xFD8, el]:u64 -0000033b: mem := mem with [R0, el]:u32 <- 31:0[R1] -00000340: R0 := 0x10000 -00000347: R0 := mem[R0 + 0xFE8, el]:u64 -0000034e: R1 := pad:64[mem[R31 + 0x1C, el]:u32] -00000356: mem := mem with [R0, el]:u32 <- 31:0[R1] -0000035b: R0 := 0 -00000362: R29 := mem[R31, el]:u64 -00000367: R30 := mem[R31 + 8, el]:u64 -0000036b: R31 := R31 + 0x20 -00000370: call R30 with noreturn - -000005a4: sub register_tm_clones(register_tm_clones_result) -000005d6: register_tm_clones_result :: out u32 = low:32[R0] - -00000254: -00000257: R0 := 0x11000 -0000025d: R0 := R0 + 0x10 -00000262: R1 := 0x11000 -00000268: R1 := R1 + 0x10 -0000026f: R1 := R1 + ~R0 + 1 -00000275: R2 := 0.63:63[R1] -0000027c: R1 := R2 + (R1 ~>> 3) -00000282: R1 := extend:64[63:1[R1]] -00000288: when R1 = 0 goto %00000286 -000005c3: goto %000003ad - -000003ad: -000003b0: R2 := 0x10000 -000003b7: R2 := mem[R2 + 0xFF8, el]:u64 -000003bc: when R2 = 0 goto %00000286 -000005c4: goto %000003c0 - -00000286: -0000028e: call R30 with noreturn - -000003c0: -000003c4: R16 := R2 -000003c9: call R16 with noreturn - -000005a7: sub zero(zero_result) -000005d7: zero_result :: out u32 = low:32[R0] - -000002ee: -000002f1: R0 := 0 -000002f6: call R30 with noreturn diff --git a/src/test/correct/basic_function_call_caller/gcc_pic/basic_function_call_caller.expected b/src/test/correct/basic_function_call_caller/gcc_pic/basic_function_call_caller.expected index cd7bdf167..c90f045e0 100644 --- a/src/test/correct/basic_function_call_caller/gcc_pic/basic_function_call_caller.expected +++ b/src/test/correct/basic_function_call_caller/gcc_pic/basic_function_call_caller.expected @@ -95,7 +95,7 @@ implementation {:extern} guarantee_reflexive() assert (gamma_load32(Gamma_mem, $y_addr) ==> ((memory_load32_le(mem, $x_addr) == 0bv32) || gamma_load32(Gamma_mem, $y_addr))); } -procedure main_1884(); +procedure main(); modifies Gamma_R0, Gamma_R1, Gamma_R29, Gamma_R30, Gamma_R31, Gamma_mem, Gamma_stack, R0, R1, R29, R30, R31, mem, stack; requires (Gamma_R0 == false); free requires (memory_load64_le(mem, 69632bv64) == 0bv64); @@ -119,21 +119,21 @@ procedure main_1884(); free ensures (memory_load64_le(mem, 69616bv64) == 1884bv64); free ensures (memory_load64_le(mem, 69640bv64) == 69640bv64); -implementation main_1884() +implementation main() { var #4: bv64; + var $load$18: bv64; + var $load$19: bv64; + var $load$20: bv32; + var $load$21: bv64; + var $load$22: bv64; var Gamma_#4: bool; - var Gamma_load18: bool; - var Gamma_load19: bool; - var Gamma_load20: bool; - var Gamma_load21: bool; - var Gamma_load22: bool; + var Gamma_$load$18: bool; + var Gamma_$load$19: bool; + var Gamma_$load$20: bool; + var Gamma_$load$21: bool; + var Gamma_$load$22: bool; var Gamma_y_old: bool; - var load18: bv64; - var load19: bv64; - var load20: bv32; - var load21: bv64; - var load22: bv64; var x_old: bv32; lmain: assume {:captureState "lmain"} true; @@ -147,19 +147,19 @@ implementation main_1884() stack, Gamma_stack := memory_store32_le(stack, bvadd64(R31, 28bv64), R0[32:0]), gamma_store32(Gamma_stack, bvadd64(R31, 28bv64), Gamma_R0); assume {:captureState "%0000031a"} true; R30, Gamma_R30 := 1900bv64, true; - call zero_1876(); + call zero(); goto l00000323; l00000323: assume {:captureState "l00000323"} true; R1, Gamma_R1 := zero_extend32_32(R0[32:0]), Gamma_R0; R0, Gamma_R0 := 65536bv64, true; call rely(); - load18, Gamma_load18 := memory_load64_le(mem, bvadd64(R0, 4056bv64)), (gamma_load64(Gamma_mem, bvadd64(R0, 4056bv64)) || L(mem, bvadd64(R0, 4056bv64))); - R0, Gamma_R0 := load18, Gamma_load18; + $load$18, Gamma_$load$18 := memory_load64_le(mem, bvadd64(R0, 4056bv64)), (gamma_load64(Gamma_mem, bvadd64(R0, 4056bv64)) || L(mem, bvadd64(R0, 4056bv64))); + R0, Gamma_R0 := $load$18, Gamma_$load$18; call rely(); + assert (L(mem, R0) ==> Gamma_R1); x_old := memory_load32_le(mem, $x_addr); Gamma_y_old := (gamma_load32(Gamma_mem, $y_addr) || L(mem, $y_addr)); - assert (L(mem, R0) ==> Gamma_R1); mem, Gamma_mem := memory_store32_le(mem, R0, R1[32:0]), gamma_store32(Gamma_mem, R0, Gamma_R1); assert ((R0 == $x_addr) ==> (L(mem, $y_addr) ==> Gamma_y_old)); assert ((x_old == 0bv32) ==> (memory_load32_le(mem, $x_addr) == 0bv32)); @@ -167,32 +167,32 @@ implementation main_1884() assume {:captureState "%0000033b"} true; R0, Gamma_R0 := 65536bv64, true; call rely(); - load19, Gamma_load19 := memory_load64_le(mem, bvadd64(R0, 4072bv64)), (gamma_load64(Gamma_mem, bvadd64(R0, 4072bv64)) || L(mem, bvadd64(R0, 4072bv64))); - R0, Gamma_R0 := load19, Gamma_load19; - load20, Gamma_load20 := memory_load32_le(stack, bvadd64(R31, 28bv64)), gamma_load32(Gamma_stack, bvadd64(R31, 28bv64)); - R1, Gamma_R1 := zero_extend32_32(load20), Gamma_load20; + $load$19, Gamma_$load$19 := memory_load64_le(mem, bvadd64(R0, 4072bv64)), (gamma_load64(Gamma_mem, bvadd64(R0, 4072bv64)) || L(mem, bvadd64(R0, 4072bv64))); + R0, Gamma_R0 := $load$19, Gamma_$load$19; + $load$20, Gamma_$load$20 := memory_load32_le(stack, bvadd64(R31, 28bv64)), gamma_load32(Gamma_stack, bvadd64(R31, 28bv64)); + R1, Gamma_R1 := zero_extend32_32($load$20), Gamma_$load$20; call rely(); + assert (L(mem, R0) ==> Gamma_R1); x_old := memory_load32_le(mem, $x_addr); Gamma_y_old := (gamma_load32(Gamma_mem, $y_addr) || L(mem, $y_addr)); - assert (L(mem, R0) ==> Gamma_R1); mem, Gamma_mem := memory_store32_le(mem, R0, R1[32:0]), gamma_store32(Gamma_mem, R0, Gamma_R1); assert ((R0 == $x_addr) ==> (L(mem, $y_addr) ==> Gamma_y_old)); assert ((x_old == 0bv32) ==> (memory_load32_le(mem, $x_addr) == 0bv32)); assert (Gamma_y_old ==> ((memory_load32_le(mem, $x_addr) == 0bv32) || gamma_load32(Gamma_mem, $y_addr))); assume {:captureState "%00000356"} true; R0, Gamma_R0 := 0bv64, true; - load21, Gamma_load21 := memory_load64_le(stack, R31), gamma_load64(Gamma_stack, R31); - R29, Gamma_R29 := load21, Gamma_load21; - load22, Gamma_load22 := memory_load64_le(stack, bvadd64(R31, 8bv64)), gamma_load64(Gamma_stack, bvadd64(R31, 8bv64)); - R30, Gamma_R30 := load22, Gamma_load22; + $load$21, Gamma_$load$21 := memory_load64_le(stack, R31), gamma_load64(Gamma_stack, R31); + R29, Gamma_R29 := $load$21, Gamma_$load$21; + $load$22, Gamma_$load$22 := memory_load64_le(stack, bvadd64(R31, 8bv64)), gamma_load64(Gamma_stack, bvadd64(R31, 8bv64)); + R30, Gamma_R30 := $load$22, Gamma_$load$22; R31, Gamma_R31 := bvadd64(R31, 32bv64), Gamma_R31; - goto main_1884_basil_return; - main_1884_basil_return: - assume {:captureState "main_1884_basil_return"} true; + goto main_basil_return; + main_basil_return: + assume {:captureState "main_basil_return"} true; return; } -procedure zero_1876(); +procedure zero(); modifies Gamma_R0, R0; free requires (memory_load32_le(mem, 1964bv64) == 131073bv32); free requires (memory_load64_le(mem, 69000bv64) == 1872bv64); @@ -210,14 +210,14 @@ procedure zero_1876(); free ensures (memory_load64_le(mem, 69616bv64) == 1884bv64); free ensures (memory_load64_le(mem, 69640bv64) == 69640bv64); -implementation zero_1876() +implementation zero() { lzero: assume {:captureState "lzero"} true; R0, Gamma_R0 := 0bv64, true; - goto zero_1876_basil_return; - zero_1876_basil_return: - assume {:captureState "zero_1876_basil_return"} true; + goto zero_basil_return; + zero_basil_return: + assume {:captureState "zero_basil_return"} true; return; } diff --git a/src/test/correct/basic_function_call_caller/gcc_pic/basic_function_call_caller.gts b/src/test/correct/basic_function_call_caller/gcc_pic/basic_function_call_caller.gts deleted file mode 100644 index 99089382c..000000000 Binary files a/src/test/correct/basic_function_call_caller/gcc_pic/basic_function_call_caller.gts and /dev/null differ diff --git a/src/test/correct/basic_function_call_caller/gcc_pic/basic_function_call_caller.md5sum b/src/test/correct/basic_function_call_caller/gcc_pic/basic_function_call_caller.md5sum new file mode 100644 index 000000000..30eb0b74b --- /dev/null +++ b/src/test/correct/basic_function_call_caller/gcc_pic/basic_function_call_caller.md5sum @@ -0,0 +1,5 @@ +cd3c1283bb746a6ca2f4d88b133bc6b9 correct/basic_function_call_caller/gcc_pic/a.out +30d1d98a4d5e9d34baf041399b84e394 correct/basic_function_call_caller/gcc_pic/basic_function_call_caller.adt +279a163e6dab74594fbad3ca4557de61 correct/basic_function_call_caller/gcc_pic/basic_function_call_caller.bir +8825dd50137e6cd1bc6597fd00584c59 correct/basic_function_call_caller/gcc_pic/basic_function_call_caller.relf +3deea10b137ffb9057afb3aa8e69d6e2 correct/basic_function_call_caller/gcc_pic/basic_function_call_caller.gts diff --git a/src/test/correct/basic_function_call_caller/gcc_pic/basic_function_call_caller.relf b/src/test/correct/basic_function_call_caller/gcc_pic/basic_function_call_caller.relf deleted file mode 100644 index ee6aae4fe..000000000 --- a/src/test/correct/basic_function_call_caller/gcc_pic/basic_function_call_caller.relf +++ /dev/null @@ -1,125 +0,0 @@ - -Relocation section '.rela.dyn' at offset 0x460 contains 10 entries: - Offset Info Type Symbol's Value Symbol's Name + Addend -0000000000010d88 0000000000000403 R_AARCH64_RELATIVE 750 -0000000000010d90 0000000000000403 R_AARCH64_RELATIVE 700 -0000000000010fd8 0000000000000403 R_AARCH64_RELATIVE 11014 -0000000000010fe8 0000000000000403 R_AARCH64_RELATIVE 11018 -0000000000010ff0 0000000000000403 R_AARCH64_RELATIVE 75c -0000000000011008 0000000000000403 R_AARCH64_RELATIVE 11008 -0000000000010fc8 0000000400000401 R_AARCH64_GLOB_DAT 0000000000000000 _ITM_deregisterTMCloneTable + 0 -0000000000010fd0 0000000500000401 R_AARCH64_GLOB_DAT 0000000000000000 __cxa_finalize@GLIBC_2.17 + 0 -0000000000010fe0 0000000600000401 R_AARCH64_GLOB_DAT 0000000000000000 __gmon_start__ + 0 -0000000000010ff8 0000000800000401 R_AARCH64_GLOB_DAT 0000000000000000 _ITM_registerTMCloneTable + 0 - -Relocation section '.rela.plt' at offset 0x550 contains 4 entries: - Offset Info Type Symbol's Value Symbol's Name + Addend -0000000000010fa0 0000000300000402 R_AARCH64_JUMP_SLOT 0000000000000000 __libc_start_main@GLIBC_2.34 + 0 -0000000000010fa8 0000000500000402 R_AARCH64_JUMP_SLOT 0000000000000000 __cxa_finalize@GLIBC_2.17 + 0 -0000000000010fb0 0000000600000402 R_AARCH64_JUMP_SLOT 0000000000000000 __gmon_start__ + 0 -0000000000010fb8 0000000700000402 R_AARCH64_JUMP_SLOT 0000000000000000 abort@GLIBC_2.17 + 0 - -Symbol table '.dynsym' contains 9 entries: - Num: Value Size Type Bind Vis Ndx Name - 0: 0000000000000000 0 NOTYPE LOCAL DEFAULT UND - 1: 00000000000005b0 0 SECTION LOCAL DEFAULT 11 .init - 2: 0000000000011000 0 SECTION LOCAL DEFAULT 22 .data - 3: 0000000000000000 0 FUNC GLOBAL DEFAULT UND __libc_start_main@GLIBC_2.34 (2) - 4: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_deregisterTMCloneTable - 5: 0000000000000000 0 FUNC WEAK DEFAULT UND __cxa_finalize@GLIBC_2.17 (3) - 6: 0000000000000000 0 NOTYPE WEAK DEFAULT UND __gmon_start__ - 7: 0000000000000000 0 FUNC GLOBAL DEFAULT UND abort@GLIBC_2.17 (3) - 8: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_registerTMCloneTable - -Symbol table '.symtab' contains 90 entries: - Num: Value Size Type Bind Vis Ndx Name - 0: 0000000000000000 0 NOTYPE LOCAL DEFAULT UND - 1: 0000000000000238 0 SECTION LOCAL DEFAULT 1 .interp - 2: 0000000000000254 0 SECTION LOCAL DEFAULT 2 .note.gnu.build-id - 3: 0000000000000278 0 SECTION LOCAL DEFAULT 3 .note.ABI-tag - 4: 0000000000000298 0 SECTION LOCAL DEFAULT 4 .gnu.hash - 5: 00000000000002b8 0 SECTION LOCAL DEFAULT 5 .dynsym - 6: 0000000000000390 0 SECTION LOCAL DEFAULT 6 .dynstr - 7: 000000000000041e 0 SECTION LOCAL DEFAULT 7 .gnu.version - 8: 0000000000000430 0 SECTION LOCAL DEFAULT 8 .gnu.version_r - 9: 0000000000000460 0 SECTION LOCAL DEFAULT 9 .rela.dyn - 10: 0000000000000550 0 SECTION LOCAL DEFAULT 10 .rela.plt - 11: 00000000000005b0 0 SECTION LOCAL DEFAULT 11 .init - 12: 00000000000005d0 0 SECTION LOCAL DEFAULT 12 .plt - 13: 0000000000000640 0 SECTION LOCAL DEFAULT 13 .text - 14: 0000000000000798 0 SECTION LOCAL DEFAULT 14 .fini - 15: 00000000000007ac 0 SECTION LOCAL DEFAULT 15 .rodata - 16: 00000000000007b0 0 SECTION LOCAL DEFAULT 16 .eh_frame_hdr - 17: 00000000000007f8 0 SECTION LOCAL DEFAULT 17 .eh_frame - 18: 0000000000010d88 0 SECTION LOCAL DEFAULT 18 .init_array - 19: 0000000000010d90 0 SECTION LOCAL DEFAULT 19 .fini_array - 20: 0000000000010d98 0 SECTION LOCAL DEFAULT 20 .dynamic - 21: 0000000000010f88 0 SECTION LOCAL DEFAULT 21 .got - 22: 0000000000011000 0 SECTION LOCAL DEFAULT 22 .data - 23: 0000000000011010 0 SECTION LOCAL DEFAULT 23 .bss - 24: 0000000000000000 0 SECTION LOCAL DEFAULT 24 .comment - 25: 0000000000000000 0 FILE LOCAL DEFAULT ABS Scrt1.o - 26: 0000000000000278 0 NOTYPE LOCAL DEFAULT 3 $d - 27: 0000000000000278 32 OBJECT LOCAL DEFAULT 3 __abi_tag - 28: 0000000000000640 0 NOTYPE LOCAL DEFAULT 13 $x - 29: 000000000000080c 0 NOTYPE LOCAL DEFAULT 17 $d - 30: 00000000000007ac 0 NOTYPE LOCAL DEFAULT 15 $d - 31: 0000000000000000 0 FILE LOCAL DEFAULT ABS crti.o - 32: 0000000000000674 0 NOTYPE LOCAL DEFAULT 13 $x - 33: 0000000000000674 20 FUNC LOCAL DEFAULT 13 call_weak_fn - 34: 00000000000005b0 0 NOTYPE LOCAL DEFAULT 11 $x - 35: 0000000000000798 0 NOTYPE LOCAL DEFAULT 14 $x - 36: 0000000000000000 0 FILE LOCAL DEFAULT ABS crtn.o - 37: 00000000000005c0 0 NOTYPE LOCAL DEFAULT 11 $x - 38: 00000000000007a4 0 NOTYPE LOCAL DEFAULT 14 $x - 39: 0000000000000000 0 FILE LOCAL DEFAULT ABS crtstuff.c - 40: 0000000000000690 0 NOTYPE LOCAL DEFAULT 13 $x - 41: 0000000000000690 0 FUNC LOCAL DEFAULT 13 deregister_tm_clones - 42: 00000000000006c0 0 FUNC LOCAL DEFAULT 13 register_tm_clones - 43: 0000000000011008 0 NOTYPE LOCAL DEFAULT 22 $d - 44: 0000000000000700 0 FUNC LOCAL DEFAULT 13 __do_global_dtors_aux - 45: 0000000000011010 1 OBJECT LOCAL DEFAULT 23 completed.0 - 46: 0000000000010d90 0 NOTYPE LOCAL DEFAULT 19 $d - 47: 0000000000010d90 0 OBJECT LOCAL DEFAULT 19 __do_global_dtors_aux_fini_array_entry - 48: 0000000000000750 0 FUNC LOCAL DEFAULT 13 frame_dummy - 49: 0000000000010d88 0 NOTYPE LOCAL DEFAULT 18 $d - 50: 0000000000010d88 0 OBJECT LOCAL DEFAULT 18 __frame_dummy_init_array_entry - 51: 0000000000000820 0 NOTYPE LOCAL DEFAULT 17 $d - 52: 0000000000011010 0 NOTYPE LOCAL DEFAULT 23 $d - 53: 0000000000000000 0 FILE LOCAL DEFAULT ABS basic_function_call_caller.c - 54: 0000000000011014 0 NOTYPE LOCAL DEFAULT 23 $d - 55: 0000000000000754 0 NOTYPE LOCAL DEFAULT 13 $x - 56: 0000000000000880 0 NOTYPE LOCAL DEFAULT 17 $d - 57: 0000000000000000 0 FILE LOCAL DEFAULT ABS crtstuff.c - 58: 00000000000008b4 0 NOTYPE LOCAL DEFAULT 17 $d - 59: 00000000000008b4 0 OBJECT LOCAL DEFAULT 17 __FRAME_END__ - 60: 0000000000000000 0 FILE LOCAL DEFAULT ABS - 61: 0000000000010d98 0 OBJECT LOCAL DEFAULT ABS _DYNAMIC - 62: 00000000000007b0 0 NOTYPE LOCAL DEFAULT 16 __GNU_EH_FRAME_HDR - 63: 0000000000010fc0 0 OBJECT LOCAL DEFAULT ABS _GLOBAL_OFFSET_TABLE_ - 64: 00000000000005d0 0 NOTYPE LOCAL DEFAULT 12 $x - 65: 0000000000000000 0 FUNC GLOBAL DEFAULT UND __libc_start_main@GLIBC_2.34 - 66: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_deregisterTMCloneTable - 67: 0000000000011000 0 NOTYPE WEAK DEFAULT 22 data_start - 68: 0000000000011010 0 NOTYPE GLOBAL DEFAULT 23 __bss_start__ - 69: 0000000000000000 0 FUNC WEAK DEFAULT UND __cxa_finalize@GLIBC_2.17 - 70: 0000000000011020 0 NOTYPE GLOBAL DEFAULT 23 _bss_end__ - 71: 0000000000011010 0 NOTYPE GLOBAL DEFAULT 22 _edata - 72: 0000000000011014 4 OBJECT GLOBAL DEFAULT 23 x - 73: 0000000000000798 0 FUNC GLOBAL HIDDEN 14 _fini - 74: 0000000000011020 0 NOTYPE GLOBAL DEFAULT 23 __bss_end__ - 75: 0000000000011000 0 NOTYPE GLOBAL DEFAULT 22 __data_start - 76: 0000000000000000 0 NOTYPE WEAK DEFAULT UND __gmon_start__ - 77: 0000000000011008 0 OBJECT GLOBAL HIDDEN 22 __dso_handle - 78: 0000000000000000 0 FUNC GLOBAL DEFAULT UND abort@GLIBC_2.17 - 79: 00000000000007ac 4 OBJECT GLOBAL DEFAULT 15 _IO_stdin_used - 80: 0000000000011020 0 NOTYPE GLOBAL DEFAULT 23 _end - 81: 0000000000000640 52 FUNC GLOBAL DEFAULT 13 _start - 82: 0000000000000754 8 FUNC GLOBAL DEFAULT 13 zero - 83: 0000000000011020 0 NOTYPE GLOBAL DEFAULT 23 __end__ - 84: 0000000000011018 4 OBJECT GLOBAL DEFAULT 23 y - 85: 0000000000011010 0 NOTYPE GLOBAL DEFAULT 23 __bss_start - 86: 000000000000075c 60 FUNC GLOBAL DEFAULT 13 main - 87: 0000000000011010 0 OBJECT GLOBAL HIDDEN 22 __TMC_END__ - 88: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_registerTMCloneTable - 89: 00000000000005b0 0 FUNC GLOBAL HIDDEN 11 _init diff --git a/src/test/correct/basic_function_call_caller/gcc_pic/basic_function_call_caller_gtirb.expected b/src/test/correct/basic_function_call_caller/gcc_pic/basic_function_call_caller_gtirb.expected index 1523d2119..4b0bd0b8d 100644 --- a/src/test/correct/basic_function_call_caller/gcc_pic/basic_function_call_caller_gtirb.expected +++ b/src/test/correct/basic_function_call_caller/gcc_pic/basic_function_call_caller_gtirb.expected @@ -95,7 +95,7 @@ implementation {:extern} guarantee_reflexive() assert (gamma_load32(Gamma_mem, $y_addr) ==> ((memory_load32_le(mem, $x_addr) == 0bv32) || gamma_load32(Gamma_mem, $y_addr))); } -procedure zero_1876(); +procedure zero(); modifies Gamma_R0, R0; free requires (memory_load32_le(mem, 1964bv64) == 131073bv32); free requires (memory_load64_le(mem, 69000bv64) == 1872bv64); @@ -113,18 +113,18 @@ procedure zero_1876(); free ensures (memory_load64_le(mem, 69616bv64) == 1884bv64); free ensures (memory_load64_le(mem, 69640bv64) == 69640bv64); -implementation zero_1876() +implementation zero() { - zero_1876__0__nVyNTgcoQL~JpXdKnhkukw: - assume {:captureState "zero_1876__0__nVyNTgcoQL~JpXdKnhkukw"} true; + $zero$__0__$nVyNTgcoQL~JpXdKnhkukw: + assume {:captureState "$zero$__0__$nVyNTgcoQL~JpXdKnhkukw"} true; R0, Gamma_R0 := 0bv64, true; - goto zero_1876_basil_return; - zero_1876_basil_return: - assume {:captureState "zero_1876_basil_return"} true; + goto zero_basil_return; + zero_basil_return: + assume {:captureState "zero_basil_return"} true; return; } -procedure main_1884(); +procedure main(); modifies Gamma_R0, Gamma_R1, Gamma_R29, Gamma_R30, Gamma_R31, Gamma_mem, Gamma_stack, R0, R1, R29, R30, R31, mem, stack; requires (Gamma_R0 == false); free requires (memory_load64_le(mem, 69632bv64) == 0bv64); @@ -148,76 +148,76 @@ procedure main_1884(); free ensures (memory_load64_le(mem, 69616bv64) == 1884bv64); free ensures (memory_load64_le(mem, 69640bv64) == 69640bv64); -implementation main_1884() +implementation main() { - var Cse0__5_0_0: bv64; - var Gamma_Cse0__5_0_0: bool; - var Gamma_load10: bool; - var Gamma_load11: bool; - var Gamma_load12: bool; - var Gamma_load8: bool; - var Gamma_load9: bool; + var $load10: bv32; + var $load11: bv64; + var $load12: bv64; + var $load8: bv64; + var $load9: bv64; + var Cse0__5$0$0: bv64; + var Gamma_$load10: bool; + var Gamma_$load11: bool; + var Gamma_$load12: bool; + var Gamma_$load8: bool; + var Gamma_$load9: bool; + var Gamma_Cse0__5$0$0: bool; var Gamma_y_old: bool; - var load10: bv32; - var load11: bv64; - var load12: bv64; - var load8: bv64; - var load9: bv64; var x_old: bv32; - main_1884__0__iMp8MpTATOSyA~733MU0cQ: - assume {:captureState "main_1884__0__iMp8MpTATOSyA~733MU0cQ"} true; - Cse0__5_0_0, Gamma_Cse0__5_0_0 := bvadd64(R31, 18446744073709551584bv64), Gamma_R31; - stack, Gamma_stack := memory_store64_le(stack, Cse0__5_0_0, R29), gamma_store64(Gamma_stack, Cse0__5_0_0, Gamma_R29); - assume {:captureState "1884_1"} true; - stack, Gamma_stack := memory_store64_le(stack, bvadd64(Cse0__5_0_0, 8bv64), R30), gamma_store64(Gamma_stack, bvadd64(Cse0__5_0_0, 8bv64), Gamma_R30); - assume {:captureState "1884_2"} true; - R31, Gamma_R31 := Cse0__5_0_0, Gamma_Cse0__5_0_0; + $main$__0__$iMp8MpTATOSyA~733MU0cQ: + assume {:captureState "$main$__0__$iMp8MpTATOSyA~733MU0cQ"} true; + Cse0__5$0$0, Gamma_Cse0__5$0$0 := bvadd64(R31, 18446744073709551584bv64), Gamma_R31; + stack, Gamma_stack := memory_store64_le(stack, Cse0__5$0$0, R29), gamma_store64(Gamma_stack, Cse0__5$0$0, Gamma_R29); + assume {:captureState "1884$1"} true; + stack, Gamma_stack := memory_store64_le(stack, bvadd64(Cse0__5$0$0, 8bv64), R30), gamma_store64(Gamma_stack, bvadd64(Cse0__5$0$0, 8bv64), Gamma_R30); + assume {:captureState "1884$2"} true; + R31, Gamma_R31 := Cse0__5$0$0, Gamma_Cse0__5$0$0; R29, Gamma_R29 := R31, Gamma_R31; stack, Gamma_stack := memory_store32_le(stack, bvadd64(R31, 28bv64), R0[32:0]), gamma_store32(Gamma_stack, bvadd64(R31, 28bv64), Gamma_R0); - assume {:captureState "1892_0"} true; + assume {:captureState "1892$0"} true; R30, Gamma_R30 := 1900bv64, true; - call zero_1876(); - goto main_1884__1__uwC_i~q7SI~k8CryvMw8eg; - main_1884__1__uwC_i~q7SI~k8CryvMw8eg: - assume {:captureState "main_1884__1__uwC_i~q7SI~k8CryvMw8eg"} true; + call zero(); + goto $main$__1__$uwC_i~q7SI~k8CryvMw8eg; + $main$__1__$uwC_i~q7SI~k8CryvMw8eg: + assume {:captureState "$main$__1__$uwC_i~q7SI~k8CryvMw8eg"} true; R1, Gamma_R1 := zero_extend32_32(R0[32:0]), Gamma_R0; R0, Gamma_R0 := 65536bv64, true; call rely(); - load8, Gamma_load8 := memory_load64_le(mem, bvadd64(R0, 4056bv64)), (gamma_load64(Gamma_mem, bvadd64(R0, 4056bv64)) || L(mem, bvadd64(R0, 4056bv64))); - R0, Gamma_R0 := load8, Gamma_load8; + $load8, Gamma_$load8 := memory_load64_le(mem, bvadd64(R0, 4056bv64)), (gamma_load64(Gamma_mem, bvadd64(R0, 4056bv64)) || L(mem, bvadd64(R0, 4056bv64))); + R0, Gamma_R0 := $load8, Gamma_$load8; call rely(); + assert (L(mem, R0) ==> Gamma_R1); x_old := memory_load32_le(mem, $x_addr); Gamma_y_old := (gamma_load32(Gamma_mem, $y_addr) || L(mem, $y_addr)); - assert (L(mem, R0) ==> Gamma_R1); mem, Gamma_mem := memory_store32_le(mem, R0, R1[32:0]), gamma_store32(Gamma_mem, R0, Gamma_R1); assert ((R0 == $x_addr) ==> (L(mem, $y_addr) ==> Gamma_y_old)); assert ((x_old == 0bv32) ==> (memory_load32_le(mem, $x_addr) == 0bv32)); assert (Gamma_y_old ==> ((memory_load32_le(mem, $x_addr) == 0bv32) || gamma_load32(Gamma_mem, $y_addr))); - assume {:captureState "1912_0"} true; + assume {:captureState "1912$0"} true; R0, Gamma_R0 := 65536bv64, true; call rely(); - load9, Gamma_load9 := memory_load64_le(mem, bvadd64(R0, 4072bv64)), (gamma_load64(Gamma_mem, bvadd64(R0, 4072bv64)) || L(mem, bvadd64(R0, 4072bv64))); - R0, Gamma_R0 := load9, Gamma_load9; - load10, Gamma_load10 := memory_load32_le(stack, bvadd64(R31, 28bv64)), gamma_load32(Gamma_stack, bvadd64(R31, 28bv64)); - R1, Gamma_R1 := zero_extend32_32(load10), Gamma_load10; + $load9, Gamma_$load9 := memory_load64_le(mem, bvadd64(R0, 4072bv64)), (gamma_load64(Gamma_mem, bvadd64(R0, 4072bv64)) || L(mem, bvadd64(R0, 4072bv64))); + R0, Gamma_R0 := $load9, Gamma_$load9; + $load10, Gamma_$load10 := memory_load32_le(stack, bvadd64(R31, 28bv64)), gamma_load32(Gamma_stack, bvadd64(R31, 28bv64)); + R1, Gamma_R1 := zero_extend32_32($load10), Gamma_$load10; call rely(); + assert (L(mem, R0) ==> Gamma_R1); x_old := memory_load32_le(mem, $x_addr); Gamma_y_old := (gamma_load32(Gamma_mem, $y_addr) || L(mem, $y_addr)); - assert (L(mem, R0) ==> Gamma_R1); mem, Gamma_mem := memory_store32_le(mem, R0, R1[32:0]), gamma_store32(Gamma_mem, R0, Gamma_R1); assert ((R0 == $x_addr) ==> (L(mem, $y_addr) ==> Gamma_y_old)); assert ((x_old == 0bv32) ==> (memory_load32_le(mem, $x_addr) == 0bv32)); assert (Gamma_y_old ==> ((memory_load32_le(mem, $x_addr) == 0bv32) || gamma_load32(Gamma_mem, $y_addr))); - assume {:captureState "1928_0"} true; + assume {:captureState "1928$0"} true; R0, Gamma_R0 := 0bv64, true; - load11, Gamma_load11 := memory_load64_le(stack, R31), gamma_load64(Gamma_stack, R31); - R29, Gamma_R29 := load11, Gamma_load11; - load12, Gamma_load12 := memory_load64_le(stack, bvadd64(R31, 8bv64)), gamma_load64(Gamma_stack, bvadd64(R31, 8bv64)); - R30, Gamma_R30 := load12, Gamma_load12; + $load11, Gamma_$load11 := memory_load64_le(stack, R31), gamma_load64(Gamma_stack, R31); + R29, Gamma_R29 := $load11, Gamma_$load11; + $load12, Gamma_$load12 := memory_load64_le(stack, bvadd64(R31, 8bv64)), gamma_load64(Gamma_stack, bvadd64(R31, 8bv64)); + R30, Gamma_R30 := $load12, Gamma_$load12; R31, Gamma_R31 := bvadd64(R31, 32bv64), Gamma_R31; - goto main_1884_basil_return; - main_1884_basil_return: - assume {:captureState "main_1884_basil_return"} true; + goto main_basil_return; + main_basil_return: + assume {:captureState "main_basil_return"} true; return; } diff --git a/src/test/correct/basic_function_call_reader/clang/basic_function_call_reader.adt b/src/test/correct/basic_function_call_reader/clang/basic_function_call_reader.adt deleted file mode 100644 index 185064ab9..000000000 --- a/src/test/correct/basic_function_call_reader/clang/basic_function_call_reader.adt +++ /dev/null @@ -1,564 +0,0 @@ -Project(Attrs([Attr("filename","\"clang/basic_function_call_reader.out\""), -Attr("image-specification","(declare abi (name str))\n(declare arch (name str))\n(declare base-address (addr int))\n(declare bias (off int))\n(declare bits (size int))\n(declare code-region (addr int) (size int) (off int))\n(declare code-start (addr int))\n(declare entry-point (addr int))\n(declare external-reference (addr int) (name str))\n(declare format (name str))\n(declare is-executable (flag bool))\n(declare is-little-endian (flag bool))\n(declare llvm:base-address (addr int))\n(declare llvm:code-entry (name str) (off int) (size int))\n(declare llvm:coff-import-library (name str))\n(declare llvm:coff-virtual-section-header (name str) (addr int) (size int))\n(declare llvm:elf-program-header (name str) (off int) (size int))\n(declare llvm:elf-program-header-flags (name str) (ld bool) (r bool) \n (w bool) (x bool))\n(declare llvm:elf-virtual-program-header (name str) (addr int) (size int))\n(declare llvm:entry-point (addr int))\n(declare llvm:macho-symbol (name str) (value int))\n(declare llvm:name-reference (at int) (name str))\n(declare llvm:relocation (at int) (addr int))\n(declare llvm:section-entry (name str) (addr int) (size int) (off int))\n(declare llvm:section-flags (name str) (r bool) (w bool) (x bool))\n(declare llvm:segment-command (name str) (off int) (size int))\n(declare llvm:segment-command-flags (name str) (r bool) (w bool) (x bool))\n(declare llvm:symbol-entry (name str) (addr int) (size int) (off int)\n (value int))\n(declare llvm:virtual-segment-command (name str) (addr int) (size int))\n(declare mapped (addr int) (size int) (off int))\n(declare named-region (addr int) (size int) (name str))\n(declare named-symbol (addr int) (name str))\n(declare require (name str))\n(declare section (addr int) (size int))\n(declare segment (addr int) (size int) (r bool) (w bool) (x bool))\n(declare subarch (name str))\n(declare symbol-chunk (addr int) (size int) (root int))\n(declare symbol-value (addr int) (value int))\n(declare system (name str))\n(declare vendor (name str))\n\n(abi unknown)\n(arch aarch64)\n(base-address 0)\n(bias 0)\n(bits 64)\n(code-region 1888 20 1888)\n(code-region 1536 352 1536)\n(code-region 1440 96 1440)\n(code-region 1408 24 1408)\n(code-start 1588)\n(code-start 1536)\n(code-start 1812)\n(entry-point 1536)\n(external-reference 69568 _ITM_deregisterTMCloneTable)\n(external-reference 69576 __cxa_finalize)\n(external-reference 69584 __gmon_start__)\n(external-reference 69600 _ITM_registerTMCloneTable)\n(external-reference 69632 __libc_start_main)\n(external-reference 69640 __cxa_finalize)\n(external-reference 69648 __gmon_start__)\n(external-reference 69656 abort)\n(format elf)\n(is-executable true)\n(is-little-endian true)\n(llvm:base-address 0)\n(llvm:code-entry abort 0 0)\n(llvm:code-entry __cxa_finalize 0 0)\n(llvm:code-entry __libc_start_main 0 0)\n(llvm:code-entry _init 1408 0)\n(llvm:code-entry main 1812 76)\n(llvm:code-entry _start 1536 52)\n(llvm:code-entry abort@GLIBC_2.17 0 0)\n(llvm:code-entry _fini 1888 0)\n(llvm:code-entry __cxa_finalize@GLIBC_2.17 0 0)\n(llvm:code-entry __libc_start_main@GLIBC_2.34 0 0)\n(llvm:code-entry frame_dummy 1808 0)\n(llvm:code-entry __do_global_dtors_aux 1728 0)\n(llvm:code-entry register_tm_clones 1664 0)\n(llvm:code-entry deregister_tm_clones 1616 0)\n(llvm:code-entry call_weak_fn 1588 20)\n(llvm:code-entry .fini 1888 20)\n(llvm:code-entry .text 1536 352)\n(llvm:code-entry .plt 1440 96)\n(llvm:code-entry .init 1408 24)\n(llvm:elf-program-header 08 3528 568)\n(llvm:elf-program-header 07 0 0)\n(llvm:elf-program-header 06 1912 60)\n(llvm:elf-program-header 05 596 68)\n(llvm:elf-program-header 04 3544 480)\n(llvm:elf-program-header 03 3528 616)\n(llvm:elf-program-header 02 0 2160)\n(llvm:elf-program-header 01 568 27)\n(llvm:elf-program-header 00 64 504)\n(llvm:elf-program-header-flags 08 false true false false)\n(llvm:elf-program-header-flags 07 false true true false)\n(llvm:elf-program-header-flags 06 false true false false)\n(llvm:elf-program-header-flags 05 false true false false)\n(llvm:elf-program-header-flags 04 false true true false)\n(llvm:elf-program-header-flags 03 true true true false)\n(llvm:elf-program-header-flags 02 true true false true)\n(llvm:elf-program-header-flags 01 false true false false)\n(llvm:elf-program-header-flags 00 false true false false)\n(llvm:elf-virtual-program-header 08 69064 568)\n(llvm:elf-virtual-program-header 07 0 0)\n(llvm:elf-virtual-program-header 06 1912 60)\n(llvm:elf-virtual-program-header 05 596 68)\n(llvm:elf-virtual-program-header 04 69080 480)\n(llvm:elf-virtual-program-header 03 69064 632)\n(llvm:elf-virtual-program-header 02 0 2160)\n(llvm:elf-virtual-program-header 01 568 27)\n(llvm:elf-virtual-program-header 00 64 504)\n(llvm:entry-point 1536)\n(llvm:name-reference 69656 abort)\n(llvm:name-reference 69648 __gmon_start__)\n(llvm:name-reference 69640 __cxa_finalize)\n(llvm:name-reference 69632 __libc_start_main)\n(llvm:name-reference 69600 _ITM_registerTMCloneTable)\n(llvm:name-reference 69584 __gmon_start__)\n(llvm:name-reference 69576 __cxa_finalize)\n(llvm:name-reference 69568 _ITM_deregisterTMCloneTable)\n(llvm:section-entry .shstrtab 0 259 6982)\n(llvm:section-entry .strtab 0 582 6400)\n(llvm:section-entry .symtab 0 2184 4216)\n(llvm:section-entry .comment 0 71 4144)\n(llvm:section-entry .bss 69680 16 4144)\n(llvm:section-entry .data 69664 16 4128)\n(llvm:section-entry .got.plt 69608 56 4072)\n(llvm:section-entry .got 69560 48 4024)\n(llvm:section-entry .dynamic 69080 480 3544)\n(llvm:section-entry .fini_array 69072 8 3536)\n(llvm:section-entry .init_array 69064 8 3528)\n(llvm:section-entry .eh_frame 1976 184 1976)\n(llvm:section-entry .eh_frame_hdr 1912 60 1912)\n(llvm:section-entry .rodata 1908 4 1908)\n(llvm:section-entry .fini 1888 20 1888)\n(llvm:section-entry .text 1536 352 1536)\n(llvm:section-entry .plt 1440 96 1440)\n(llvm:section-entry .init 1408 24 1408)\n(llvm:section-entry .rela.plt 1312 96 1312)\n(llvm:section-entry .rela.dyn 1120 192 1120)\n(llvm:section-entry .gnu.version_r 1072 48 1072)\n(llvm:section-entry .gnu.version 1054 18 1054)\n(llvm:section-entry .dynstr 912 141 912)\n(llvm:section-entry .dynsym 696 216 696)\n(llvm:section-entry .gnu.hash 664 28 664)\n(llvm:section-entry .note.ABI-tag 632 32 632)\n(llvm:section-entry .note.gnu.build-id 596 36 596)\n(llvm:section-entry .interp 568 27 568)\n(llvm:section-flags .shstrtab true false false)\n(llvm:section-flags .strtab true false false)\n(llvm:section-flags .symtab true false false)\n(llvm:section-flags .comment true false false)\n(llvm:section-flags .bss true true false)\n(llvm:section-flags .data true true false)\n(llvm:section-flags .got.plt true true false)\n(llvm:section-flags .got true true false)\n(llvm:section-flags .dynamic true true false)\n(llvm:section-flags .fini_array true true false)\n(llvm:section-flags .init_array true true false)\n(llvm:section-flags .eh_frame true false false)\n(llvm:section-flags .eh_frame_hdr true false false)\n(llvm:section-flags .rodata true false false)\n(llvm:section-flags .fini true false true)\n(llvm:section-flags .text true false true)\n(llvm:section-flags .plt true false true)\n(llvm:section-flags .init true false true)\n(llvm:section-flags .rela.plt true false false)\n(llvm:section-flags .rela.dyn true false false)\n(llvm:section-flags .gnu.version_r true false false)\n(llvm:section-flags .gnu.version true false false)\n(llvm:section-flags .dynstr true false false)\n(llvm:section-flags .dynsym true false false)\n(llvm:section-flags .gnu.hash true false false)\n(llvm:section-flags .note.ABI-tag true false false)\n(llvm:section-flags .note.gnu.build-id true false false)\n(llvm:section-flags .interp true false false)\n(llvm:symbol-entry abort 0 0 0 0)\n(llvm:symbol-entry __cxa_finalize 0 0 0 0)\n(llvm:symbol-entry __libc_start_main 0 0 0 0)\n(llvm:symbol-entry _init 1408 0 1408 1408)\n(llvm:symbol-entry main 1812 76 1812 1812)\n(llvm:symbol-entry _start 1536 52 1536 1536)\n(llvm:symbol-entry abort@GLIBC_2.17 0 0 0 0)\n(llvm:symbol-entry _fini 1888 0 1888 1888)\n(llvm:symbol-entry __cxa_finalize@GLIBC_2.17 0 0 0 0)\n(llvm:symbol-entry __libc_start_main@GLIBC_2.34 0 0 0 0)\n(llvm:symbol-entry frame_dummy 1808 0 1808 1808)\n(llvm:symbol-entry __do_global_dtors_aux 1728 0 1728 1728)\n(llvm:symbol-entry register_tm_clones 1664 0 1664 1664)\n(llvm:symbol-entry deregister_tm_clones 1616 0 1616 1616)\n(llvm:symbol-entry call_weak_fn 1588 20 1588 1588)\n(mapped 0 2160 0)\n(mapped 69064 616 3528)\n(named-region 0 2160 02)\n(named-region 69064 632 03)\n(named-region 568 27 .interp)\n(named-region 596 36 .note.gnu.build-id)\n(named-region 632 32 .note.ABI-tag)\n(named-region 664 28 .gnu.hash)\n(named-region 696 216 .dynsym)\n(named-region 912 141 .dynstr)\n(named-region 1054 18 .gnu.version)\n(named-region 1072 48 .gnu.version_r)\n(named-region 1120 192 .rela.dyn)\n(named-region 1312 96 .rela.plt)\n(named-region 1408 24 .init)\n(named-region 1440 96 .plt)\n(named-region 1536 352 .text)\n(named-region 1888 20 .fini)\n(named-region 1908 4 .rodata)\n(named-region 1912 60 .eh_frame_hdr)\n(named-region 1976 184 .eh_frame)\n(named-region 69064 8 .init_array)\n(named-region 69072 8 .fini_array)\n(named-region 69080 480 .dynamic)\n(named-region 69560 48 .got)\n(named-region 69608 56 .got.plt)\n(named-region 69664 16 .data)\n(named-region 69680 16 .bss)\n(named-region 0 71 .comment)\n(named-region 0 2184 .symtab)\n(named-region 0 582 .strtab)\n(named-region 0 259 .shstrtab)\n(named-symbol 1588 call_weak_fn)\n(named-symbol 1616 deregister_tm_clones)\n(named-symbol 1664 register_tm_clones)\n(named-symbol 1728 __do_global_dtors_aux)\n(named-symbol 1808 frame_dummy)\n(named-symbol 0 __libc_start_main@GLIBC_2.34)\n(named-symbol 0 __cxa_finalize@GLIBC_2.17)\n(named-symbol 1888 _fini)\n(named-symbol 0 abort@GLIBC_2.17)\n(named-symbol 1536 _start)\n(named-symbol 1812 main)\n(named-symbol 1408 _init)\n(named-symbol 0 __libc_start_main)\n(named-symbol 0 __cxa_finalize)\n(named-symbol 0 abort)\n(require libc.so.6)\n(section 568 27)\n(section 596 36)\n(section 632 32)\n(section 664 28)\n(section 696 216)\n(section 912 141)\n(section 1054 18)\n(section 1072 48)\n(section 1120 192)\n(section 1312 96)\n(section 1408 24)\n(section 1440 96)\n(section 1536 352)\n(section 1888 20)\n(section 1908 4)\n(section 1912 60)\n(section 1976 184)\n(section 69064 8)\n(section 69072 8)\n(section 69080 480)\n(section 69560 48)\n(section 69608 56)\n(section 69664 16)\n(section 69680 16)\n(section 0 71)\n(section 0 2184)\n(section 0 582)\n(section 0 259)\n(segment 0 2160 true false true)\n(segment 69064 632 true true false)\n(subarch v8)\n(symbol-chunk 1588 20 1588)\n(symbol-chunk 1536 52 1536)\n(symbol-chunk 1812 76 1812)\n(symbol-value 1588 1588)\n(symbol-value 1616 1616)\n(symbol-value 1664 1664)\n(symbol-value 1728 1728)\n(symbol-value 1808 1808)\n(symbol-value 1888 1888)\n(symbol-value 1536 1536)\n(symbol-value 1812 1812)\n(symbol-value 1408 1408)\n(symbol-value 0 0)\n(system \"\")\n(vendor \"\")\n"), -Attr("abi-name","\"aarch64-linux-gnu-elf\"")]), -Sections([Section(".shstrtab", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x00\x06\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x50\x1c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x38\x00\x09\x00\x40\x00\x1d\x00\x1c\x00\x06\x00\x00\x00\x04\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x04\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x70\x08\x00\x00\x00\x00\x00\x00\x70\x08\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x01\x00\x00\x00\x06\x00\x00\x00\xc8\x0d\x00\x00\x00\x00\x00\x00\xc8\x0d\x01\x00\x00\x00\x00\x00\xc8\x0d\x01"), -Section(".strtab", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x00\x06\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x50\x1c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x38\x00\x09\x00\x40\x00\x1d\x00\x1c\x00\x06\x00\x00\x00\x04\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x04\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x70\x08\x00\x00\x00\x00\x00\x00\x70\x08\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x01\x00\x00\x00\x06\x00\x00\x00\xc8\x0d\x00\x00\x00\x00\x00\x00\xc8\x0d\x01\x00\x00\x00\x00\x00\xc8\x0d\x01\x00\x00\x00\x00\x00\x68\x02\x00\x00\x00\x00\x00\x00\x78\x02\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x02\x00\x00\x00\x06\x00\x00\x00\xd8\x0d\x00\x00\x00\x00\x00\x00\xd8\x0d\x01\x00\x00\x00\x00\x00\xd8\x0d\x01\x00\x00\x00\x00\x00\xe0\x01\x00\x00\x00\x00\x00\x00\xe0\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x04\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x50\xe5\x74\x64\x04\x00\x00\x00\x78\x07\x00\x00\x00\x00\x00\x00\x78\x07\x00\x00\x00\x00\x00\x00\x78\x07\x00\x00\x00\x00\x00\x00\x3c\x00\x00\x00\x00\x00\x00\x00\x3c\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x51\xe5\x74\x64\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x52\xe5\x74\x64\x04\x00\x00\x00\xc8\x0d\x00\x00\x00\x00\x00\x00\xc8\x0d\x01\x00\x00\x00\x00\x00\xc8\x0d\x01\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x2f\x6c\x69\x62\x2f\x6c\x64\x2d\x6c\x69\x6e\x75\x78\x2d"), -Section(".comment", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x00\x06\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x50\x1c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x38\x00\x09\x00\x40\x00\x1d\x00\x1c\x00\x06\x00\x00\x00\x04\x00\x00"), -Section(".interp", 0x238, "\x2f\x6c\x69\x62\x2f\x6c\x64\x2d\x6c\x69\x6e\x75\x78\x2d\x61\x61\x72\x63\x68\x36\x34\x2e\x73\x6f\x2e\x31\x00"), -Section(".note.gnu.build-id", 0x254, "\x04\x00\x00\x00\x14\x00\x00\x00\x03\x00\x00\x00\x47\x4e\x55\x00\x53\xa1\x8f\x17\x4f\x32\x8e\x36\x52\x4a\xe1\x86\x03\x7b\x42\xf9\x18\xa8\x82\xc6"), -Section(".note.ABI-tag", 0x278, "\x04\x00\x00\x00\x10\x00\x00\x00\x01\x00\x00\x00\x47\x4e\x55\x00\x00\x00\x00\x00\x03\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00"), -Section(".gnu.hash", 0x298, "\x01\x00\x00\x00\x01\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".dynsym", 0x2B8, "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x0b\x00\x80\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x17\x00\x20\x10\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x48\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x22\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x22\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x73\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".dynstr", 0x390, "\x00\x5f\x5f\x63\x78\x61\x5f\x66\x69\x6e\x61\x6c\x69\x7a\x65\x00\x5f\x5f\x6c\x69\x62\x63\x5f\x73\x74\x61\x72\x74\x5f\x6d\x61\x69\x6e\x00\x61\x62\x6f\x72\x74\x00\x6c\x69\x62\x63\x2e\x73\x6f\x2e\x36\x00\x47\x4c\x49\x42\x43\x5f\x32\x2e\x31\x37\x00\x47\x4c\x49\x42\x43\x5f\x32\x2e\x33\x34\x00\x5f\x49\x54\x4d\x5f\x64\x65\x72\x65\x67\x69\x73\x74\x65\x72\x54\x4d\x43\x6c\x6f\x6e\x65\x54\x61\x62\x6c\x65\x00\x5f\x5f\x67\x6d\x6f\x6e\x5f\x73\x74\x61\x72\x74\x5f\x5f\x00\x5f\x49\x54\x4d\x5f\x72\x65\x67\x69\x73\x74\x65\x72\x54\x4d\x43\x6c\x6f\x6e\x65\x54\x61\x62\x6c\x65\x00"), -Section(".gnu.version", 0x41E, "\x00\x00\x00\x00\x00\x00\x02\x00\x01\x00\x03\x00\x01\x00\x03\x00\x01\x00"), -Section(".gnu.version_r", 0x430, "\x01\x00\x02\x00\x28\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x97\x91\x96\x06\x00\x00\x03\x00\x32\x00\x00\x00\x10\x00\x00\x00\xb4\x91\x96\x06\x00\x00\x02\x00\x3d\x00\x00\x00\x00\x00\x00\x00"), -Section(".rela.dyn", 0x460, "\xc8\x0d\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x10\x07\x00\x00\x00\x00\x00\x00\xd0\x0d\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\xc0\x06\x00\x00\x00\x00\x00\x00\xd8\x0f\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x14\x07\x00\x00\x00\x00\x00\x00\x28\x10\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x28\x10\x01\x00\x00\x00\x00\x00\xc0\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xc8\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xd0\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe0\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".rela.plt", 0x520, "\x00\x10\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x08\x10\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x10\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x18\x10\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".init", 0x580, "\x1f\x20\x03\xd5\xfd\x7b\xbf\xa9\xfd\x03\x00\x91\x2a\x00\x00\x94\xfd\x7b\xc1\xa8\xc0\x03\x5f\xd6"), -Section(".plt", 0x5A0, "\xf0\x7b\xbf\xa9\x90\x00\x00\x90\x11\xfe\x47\xf9\x10\xe2\x3f\x91\x20\x02\x1f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x90\x00\x00\xb0\x11\x02\x40\xf9\x10\x02\x00\x91\x20\x02\x1f\xd6\x90\x00\x00\xb0\x11\x06\x40\xf9\x10\x22\x00\x91\x20\x02\x1f\xd6\x90\x00\x00\xb0\x11\x0a\x40\xf9\x10\x42\x00\x91\x20\x02\x1f\xd6\x90\x00\x00\xb0\x11\x0e\x40\xf9\x10\x62\x00\x91\x20\x02\x1f\xd6"), -Section(".text", 0x600, "\x1f\x20\x03\xd5\x1d\x00\x80\xd2\x1e\x00\x80\xd2\xe5\x03\x00\xaa\xe1\x03\x40\xf9\xe2\x23\x00\x91\xe6\x03\x00\x91\x80\x00\x00\x90\x00\xec\x47\xf9\x03\x00\x80\xd2\x04\x00\x80\xd2\xe5\xff\xff\x97\xf0\xff\xff\x97\x80\x00\x00\x90\x00\xe8\x47\xf9\x40\x00\x00\xb4\xe8\xff\xff\x17\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x80\x00\x00\xb0\x00\xc0\x00\x91\x81\x00\x00\xb0\x21\xc0\x00\x91\x3f\x00\x00\xeb\xc0\x00\x00\x54\x81\x00\x00\x90\x21\xe0\x47\xf9\x61\x00\x00\xb4\xf0\x03\x01\xaa\x00\x02\x1f\xd6\xc0\x03\x5f\xd6\x80\x00\x00\xb0\x00\xc0\x00\x91\x81\x00\x00\xb0\x21\xc0\x00\x91\x21\x00\x00\xcb\x22\xfc\x7f\xd3\x41\x0c\x81\x8b\x21\xfc\x41\x93\xc1\x00\x00\xb4\x82\x00\x00\x90\x42\xf0\x47\xf9\x62\x00\x00\xb4\xf0\x03\x02\xaa\x00\x02\x1f\xd6\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\xfd\x7b\xbe\xa9\xfd\x03\x00\x91\xf3\x0b\x00\xf9\x93\x00\x00\xb0\x60\xc2\x40\x39\x40\x01\x00\x35\x80\x00\x00\x90\x00\xe4\x47\xf9\x80\x00\x00\xb4\x80\x00\x00\xb0\x00\x14\x40\xf9\xb9\xff\xff\x97\xd8\xff\xff\x97\x20\x00\x80\x52\x60\xc2\x00\x39\xf3\x0b\x40\xf9\xfd\x7b\xc2\xa8\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\xdc\xff\xff\x17\xff\x43\x00\xd1\xff\x0f\x00\xb9\x88\x00\x00\xb0\x08\x35\x40\xb9\xe8\x0b\x00\xb9\x88\x00\x00\xb0\x08\x39\x40\xb9\x08\x01\x00\x71\xe8\x07\x9f\x1a\x88\x00\x00\x37\x01\x00\x00\x14\xff\x0f\x00\xb9\x04\x00\x00\x14\xe8\x0b\x40\xb9\xe8\x0f\x00\xb9\x01\x00\x00\x14\xe0\x0f\x40\xb9\xff\x43\x00\x91\xc0\x03\x5f\xd6"), -Section(".fini", 0x760, "\x1f\x20\x03\xd5\xfd\x7b\xbf\xa9\xfd\x03\x00\x91\xfd\x7b\xc1\xa8\xc0\x03\x5f\xd6"), -Section(".rodata", 0x774, "\x01\x00\x02\x00"), -Section(".eh_frame_hdr", 0x778, "\x01\x1b\x03\x3b\x3c\x00\x00\x00\x06\x00\x00\x00\x88\xfe\xff\xff\x54\x00\x00\x00\xd8\xfe\xff\xff\x68\x00\x00\x00\x08\xff\xff\xff\x7c\x00\x00\x00\x48\xff\xff\xff\x90\x00\x00\x00\x98\xff\xff\xff\xb4\x00\x00\x00\x9c\xff\xff\xff\xdc\x00\x00\x00"), -Section(".eh_frame", 0x7B8, "\x10\x00\x00\x00\x00\x00\x00\x00\x01\x7a\x52\x00\x04\x78\x1e\x01\x1b\x0c\x1f\x00\x10\x00\x00\x00\x18\x00\x00\x00\x2c\xfe\xff\xff\x34\x00\x00\x00\x00\x41\x07\x1e\x10\x00\x00\x00\x2c\x00\x00\x00\x68\xfe\xff\xff\x30\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x40\x00\x00\x00\x84\xfe\xff\xff\x3c\x00\x00\x00\x00\x00\x00\x00\x20\x00\x00\x00\x54\x00\x00\x00\xb0\xfe\xff\xff\x48\x00\x00\x00\x00\x41\x0e\x20\x9d\x04\x9e\x03\x42\x93\x02\x4e\xde\xdd\xd3\x0e\x00\x00\x00\x00\x10\x00\x00\x00\x78\x00\x00\x00\xdc\xfe\xff\xff\x04\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x01\x7a\x52\x00\x01\x7c\x1e\x01\x1b\x0c\x1f\x00\x14\x00\x00\x00\x18\x00\x00\x00\xb8\xfe\xff\xff\x4c\x00\x00\x00\x00\x44\x0e\x10\x02\x44\x0e\x00\x00\x00\x00\x00"), -Section(".fini_array", 0x10DD0, "\xc0\x06\x00\x00\x00\x00\x00\x00"), -Section(".dynamic", 0x10DD8, "\x01\x00\x00\x00\x00\x00\x00\x00\x28\x00\x00\x00\x00\x00\x00\x00\x0c\x00\x00\x00\x00\x00\x00\x00\x80\x05\x00\x00\x00\x00\x00\x00\x0d\x00\x00\x00\x00\x00\x00\x00\x60\x07\x00\x00\x00\x00\x00\x00\x19\x00\x00\x00\x00\x00\x00\x00\xc8\x0d\x01\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x1a\x00\x00\x00\x00\x00\x00\x00\xd0\x0d\x01\x00\x00\x00\x00\x00\x1c\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\xf5\xfe\xff\x6f\x00\x00\x00\x00\x98\x02\x00\x00\x00\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x90\x03\x00\x00\x00\x00\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\xb8\x02\x00\x00\x00\x00\x00\x00\x0a\x00\x00\x00\x00\x00\x00\x00\x8d\x00\x00\x00\x00\x00\x00\x00\x0b\x00\x00\x00\x00\x00\x00\x00\x18\x00\x00\x00\x00\x00\x00\x00\x15\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\xe8\x0f\x01\x00\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x60\x00\x00\x00\x00\x00\x00\x00\x14\x00\x00\x00\x00\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x17\x00\x00\x00\x00\x00\x00\x00\x20\x05\x00\x00\x00\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x60\x04\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\xc0\x00\x00\x00\x00\x00\x00\x00\x09\x00\x00\x00\x00\x00\x00\x00\x18\x00\x00\x00\x00\x00\x00\x00\xfb\xff\xff\x6f\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\xfe\xff\xff\x6f\x00\x00\x00\x00\x30\x04\x00\x00\x00\x00\x00\x00\xff\xff\xff\x6f\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\xf0\xff\xff\x6f\x00\x00\x00\x00\x1e\x04\x00\x00\x00\x00\x00\x00\xf9\xff\xff\x6f\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".init_array", 0x10DC8, "\x10\x07\x00\x00\x00\x00\x00\x00"), -Section(".got", 0x10FB8, "\xd8\x0d\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x14\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".got.plt", 0x10FE8, "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xa0\x05\x00\x00\x00\x00\x00\x00\xa0\x05\x00\x00\x00\x00\x00\x00\xa0\x05\x00\x00\x00\x00\x00\x00\xa0\x05\x00\x00\x00\x00\x00\x00"), -Section(".data", 0x11020, "\x00\x00\x00\x00\x00\x00\x00\x00\x28\x10\x01\x00\x00\x00\x00\x00")]), -Memmap([Annotation(Region(0x0,0x86F), Attr("segment","02 0 2160")), -Annotation(Region(0x600,0x633), Attr("symbol","\"_start\"")), -Annotation(Region(0x0,0x102), Attr("section","\".shstrtab\"")), -Annotation(Region(0x0,0x245), Attr("section","\".strtab\"")), -Annotation(Region(0x0,0x46), Attr("section","\".comment\"")), -Annotation(Region(0x238,0x252), Attr("section","\".interp\"")), -Annotation(Region(0x254,0x277), Attr("section","\".note.gnu.build-id\"")), -Annotation(Region(0x278,0x297), Attr("section","\".note.ABI-tag\"")), -Annotation(Region(0x298,0x2B3), Attr("section","\".gnu.hash\"")), -Annotation(Region(0x2B8,0x38F), Attr("section","\".dynsym\"")), -Annotation(Region(0x390,0x41C), Attr("section","\".dynstr\"")), -Annotation(Region(0x41E,0x42F), Attr("section","\".gnu.version\"")), -Annotation(Region(0x430,0x45F), Attr("section","\".gnu.version_r\"")), -Annotation(Region(0x460,0x51F), Attr("section","\".rela.dyn\"")), -Annotation(Region(0x520,0x57F), Attr("section","\".rela.plt\"")), -Annotation(Region(0x580,0x597), Attr("section","\".init\"")), -Annotation(Region(0x5A0,0x5FF), Attr("section","\".plt\"")), -Annotation(Region(0x580,0x597), Attr("code-region","()")), -Annotation(Region(0x5A0,0x5FF), Attr("code-region","()")), -Annotation(Region(0x600,0x633), Attr("symbol-info","_start 0x600 52")), -Annotation(Region(0x634,0x647), Attr("symbol","\"call_weak_fn\"")), -Annotation(Region(0x634,0x647), Attr("symbol-info","call_weak_fn 0x634 20")), -Annotation(Region(0x600,0x75F), Attr("section","\".text\"")), -Annotation(Region(0x600,0x75F), Attr("code-region","()")), -Annotation(Region(0x714,0x75F), Attr("symbol","\"main\"")), -Annotation(Region(0x714,0x75F), Attr("symbol-info","main 0x714 76")), -Annotation(Region(0x760,0x773), Attr("section","\".fini\"")), -Annotation(Region(0x760,0x773), Attr("code-region","()")), -Annotation(Region(0x774,0x777), Attr("section","\".rodata\"")), -Annotation(Region(0x778,0x7B3), Attr("section","\".eh_frame_hdr\"")), -Annotation(Region(0x7B8,0x86F), Attr("section","\".eh_frame\"")), -Annotation(Region(0x10DC8,0x1102F), Attr("segment","03 0x10DC8 632")), -Annotation(Region(0x10DD0,0x10DD7), Attr("section","\".fini_array\"")), -Annotation(Region(0x10DD8,0x10FB7), Attr("section","\".dynamic\"")), -Annotation(Region(0x10DC8,0x10DCF), Attr("section","\".init_array\"")), -Annotation(Region(0x10FB8,0x10FE7), Attr("section","\".got\"")), -Annotation(Region(0x10FE8,0x1101F), Attr("section","\".got.plt\"")), -Annotation(Region(0x11020,0x1102F), Attr("section","\".data\""))]), -Program(Tid(1_622, "%00000656"), Attrs([]), - Subs([Sub(Tid(1_570, "@__cxa_finalize"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x5D0"), -Attr("stub","()")]), "__cxa_finalize", Args([Arg(Tid(1_623, "%00000657"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("__cxa_finalize_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(960, "@__cxa_finalize"), - Attrs([Attr("address","0x5D0")]), Phis([]), -Defs([Def(Tid(1_208, "%000004b8"), Attrs([Attr("address","0x5D0"), -Attr("insn","adrp x16, #69632")]), Var("R16",Imm(64)), Int(69632,64)), -Def(Tid(1_215, "%000004bf"), Attrs([Attr("address","0x5D4"), -Attr("insn","ldr x17, [x16, #0x8]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(1_221, "%000004c5"), Attrs([Attr("address","0x5D8"), -Attr("insn","add x16, x16, #0x8")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(8,64)))]), Jmps([Call(Tid(1_226, "%000004ca"), - Attrs([Attr("address","0x5DC"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), -Sub(Tid(1_571, "@__do_global_dtors_aux"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x6C0")]), - "__do_global_dtors_aux", Args([Arg(Tid(1_624, "%00000658"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("__do_global_dtors_aux_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(666, "@__do_global_dtors_aux"), - Attrs([Attr("address","0x6C0")]), Phis([]), Defs([Def(Tid(670, "%0000029e"), - Attrs([Attr("address","0x6C0"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("#3",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(18446744073709551584,64))), -Def(Tid(676, "%000002a4"), Attrs([Attr("address","0x6C0"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("#3",Imm(64)),Var("R29",Imm(64)),LittleEndian(),64)), -Def(Tid(682, "%000002aa"), Attrs([Attr("address","0x6C0"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("#3",Imm(64)),Int(8,64)),Var("R30",Imm(64)),LittleEndian(),64)), -Def(Tid(686, "%000002ae"), Attrs([Attr("address","0x6C0"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("R31",Imm(64)), -Var("#3",Imm(64))), Def(Tid(692, "%000002b4"), - Attrs([Attr("address","0x6C4"), Attr("insn","mov x29, sp")]), - Var("R29",Imm(64)), Var("R31",Imm(64))), Def(Tid(700, "%000002bc"), - Attrs([Attr("address","0x6C8"), Attr("insn","str x19, [sp, #0x10]")]), - Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(16,64)),Var("R19",Imm(64)),LittleEndian(),64)), -Def(Tid(705, "%000002c1"), Attrs([Attr("address","0x6CC"), -Attr("insn","adrp x19, #69632")]), Var("R19",Imm(64)), Int(69632,64)), -Def(Tid(712, "%000002c8"), Attrs([Attr("address","0x6D0"), -Attr("insn","ldrb w0, [x19, #0x30]")]), Var("R0",Imm(64)), -UNSIGNED(64,Load(Var("mem",Mem(64,8)),PLUS(Var("R19",Imm(64)),Int(48,64)),LittleEndian(),8)))]), -Jmps([Goto(Tid(719, "%000002cf"), Attrs([Attr("address","0x6D4"), -Attr("insn","cbnz w0, #0x28")]), - NEQ(Extract(31,0,Var("R0",Imm(64))),Int(0,32)), -Direct(Tid(717, "%000002cd"))), Goto(Tid(1_611, "%0000064b"), Attrs([]), - Int(1,1), Direct(Tid(905, "%00000389")))])), Blk(Tid(905, "%00000389"), - Attrs([Attr("address","0x6D8")]), Phis([]), Defs([Def(Tid(908, "%0000038c"), - Attrs([Attr("address","0x6D8"), Attr("insn","adrp x0, #65536")]), - Var("R0",Imm(64)), Int(65536,64)), Def(Tid(915, "%00000393"), - Attrs([Attr("address","0x6DC"), Attr("insn","ldr x0, [x0, #0xfc8]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(4040,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(921, "%00000399"), Attrs([Attr("address","0x6E0"), -Attr("insn","cbz x0, #0x10")]), EQ(Var("R0",Imm(64)),Int(0,64)), -Direct(Tid(919, "%00000397"))), Goto(Tid(1_612, "%0000064c"), Attrs([]), - Int(1,1), Direct(Tid(944, "%000003b0")))])), Blk(Tid(944, "%000003b0"), - Attrs([Attr("address","0x6E4")]), Phis([]), Defs([Def(Tid(947, "%000003b3"), - Attrs([Attr("address","0x6E4"), Attr("insn","adrp x0, #69632")]), - Var("R0",Imm(64)), Int(69632,64)), Def(Tid(954, "%000003ba"), - Attrs([Attr("address","0x6E8"), Attr("insn","ldr x0, [x0, #0x28]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(40,64)),LittleEndian(),64)), -Def(Tid(959, "%000003bf"), Attrs([Attr("address","0x6EC"), -Attr("insn","bl #-0x11c")]), Var("R30",Imm(64)), Int(1776,64))]), -Jmps([Call(Tid(962, "%000003c2"), Attrs([Attr("address","0x6EC"), -Attr("insn","bl #-0x11c")]), Int(1,1), -(Direct(Tid(1_570, "@__cxa_finalize")),Direct(Tid(919, "%00000397"))))])), -Blk(Tid(919, "%00000397"), Attrs([Attr("address","0x6F0")]), Phis([]), -Defs([Def(Tid(927, "%0000039f"), Attrs([Attr("address","0x6F0"), -Attr("insn","bl #-0xa0")]), Var("R30",Imm(64)), Int(1780,64))]), -Jmps([Call(Tid(929, "%000003a1"), Attrs([Attr("address","0x6F0"), -Attr("insn","bl #-0xa0")]), Int(1,1), -(Direct(Tid(1_584, "@deregister_tm_clones")),Direct(Tid(931, "%000003a3"))))])), -Blk(Tid(931, "%000003a3"), Attrs([Attr("address","0x6F4")]), Phis([]), -Defs([Def(Tid(934, "%000003a6"), Attrs([Attr("address","0x6F4"), -Attr("insn","mov w0, #0x1")]), Var("R0",Imm(64)), Int(1,64)), -Def(Tid(942, "%000003ae"), Attrs([Attr("address","0x6F8"), -Attr("insn","strb w0, [x19, #0x30]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R19",Imm(64)),Int(48,64)),Extract(7,0,Var("R0",Imm(64))),LittleEndian(),8))]), -Jmps([Goto(Tid(1_613, "%0000064d"), Attrs([]), Int(1,1), -Direct(Tid(717, "%000002cd")))])), Blk(Tid(717, "%000002cd"), - Attrs([Attr("address","0x6FC")]), Phis([]), Defs([Def(Tid(727, "%000002d7"), - Attrs([Attr("address","0x6FC"), Attr("insn","ldr x19, [sp, #0x10]")]), - Var("R19",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(16,64)),LittleEndian(),64)), -Def(Tid(734, "%000002de"), Attrs([Attr("address","0x700"), -Attr("insn","ldp x29, x30, [sp], #0x20")]), Var("R29",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(739, "%000002e3"), Attrs([Attr("address","0x700"), -Attr("insn","ldp x29, x30, [sp], #0x20")]), Var("R30",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(743, "%000002e7"), Attrs([Attr("address","0x700"), -Attr("insn","ldp x29, x30, [sp], #0x20")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(32,64)))]), Jmps([Call(Tid(748, "%000002ec"), - Attrs([Attr("address","0x704"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), Sub(Tid(1_575, "@__libc_start_main"), - Attrs([Attr("c.proto","signed (*)(signed (*)(signed , char** , char** );* main, signed , char** , \nvoid* auxv)"), -Attr("address","0x5C0"), Attr("stub","()")]), "__libc_start_main", - Args([Arg(Tid(1_625, "%00000659"), - Attrs([Attr("c.layout","**[ : 64]"), -Attr("c.data","Top:u64 ptr ptr"), -Attr("c.type","signed (*)(signed , char** , char** );*")]), - Var("__libc_start_main_main",Imm(64)), Var("R0",Imm(64)), In()), -Arg(Tid(1_626, "%0000065a"), Attrs([Attr("c.layout","[signed : 32]"), -Attr("c.data","Top:u32"), Attr("c.type","signed")]), - Var("__libc_start_main_arg2",Imm(32)), LOW(32,Var("R1",Imm(64))), In()), -Arg(Tid(1_627, "%0000065b"), Attrs([Attr("c.layout","**[char : 8]"), -Attr("c.data","Top:u8 ptr ptr"), Attr("c.type","char**")]), - Var("__libc_start_main_arg3",Imm(64)), Var("R2",Imm(64)), Both()), -Arg(Tid(1_628, "%0000065c"), Attrs([Attr("c.layout","*[ : 8]"), -Attr("c.data","{} ptr"), Attr("c.type","void*")]), - Var("__libc_start_main_auxv",Imm(64)), Var("R3",Imm(64)), Both()), -Arg(Tid(1_629, "%0000065d"), Attrs([Attr("c.layout","[signed : 32]"), -Attr("c.data","Top:u32"), Attr("c.type","signed")]), - Var("__libc_start_main_result",Imm(32)), LOW(32,Var("R0",Imm(64))), -Out())]), Blks([Blk(Tid(499, "@__libc_start_main"), - Attrs([Attr("address","0x5C0")]), Phis([]), -Defs([Def(Tid(1_186, "%000004a2"), Attrs([Attr("address","0x5C0"), -Attr("insn","adrp x16, #69632")]), Var("R16",Imm(64)), Int(69632,64)), -Def(Tid(1_193, "%000004a9"), Attrs([Attr("address","0x5C4"), -Attr("insn","ldr x17, [x16]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R16",Imm(64)),LittleEndian(),64)), -Def(Tid(1_199, "%000004af"), Attrs([Attr("address","0x5C8"), -Attr("insn","add x16, x16, #0x0")]), Var("R16",Imm(64)), -Var("R16",Imm(64)))]), Jmps([Call(Tid(1_204, "%000004b4"), - Attrs([Attr("address","0x5CC"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), Sub(Tid(1_576, "@_fini"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x760")]), - "_fini", Args([Arg(Tid(1_630, "%0000065e"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("_fini_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(31, "@_fini"), - Attrs([Attr("address","0x760")]), Phis([]), Defs([Def(Tid(37, "%00000025"), - Attrs([Attr("address","0x764"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("#0",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(18446744073709551600,64))), -Def(Tid(43, "%0000002b"), Attrs([Attr("address","0x764"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("#0",Imm(64)),Var("R29",Imm(64)),LittleEndian(),64)), -Def(Tid(49, "%00000031"), Attrs([Attr("address","0x764"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("#0",Imm(64)),Int(8,64)),Var("R30",Imm(64)),LittleEndian(),64)), -Def(Tid(53, "%00000035"), Attrs([Attr("address","0x764"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("R31",Imm(64)), -Var("#0",Imm(64))), Def(Tid(59, "%0000003b"), Attrs([Attr("address","0x768"), -Attr("insn","mov x29, sp")]), Var("R29",Imm(64)), Var("R31",Imm(64))), -Def(Tid(66, "%00000042"), Attrs([Attr("address","0x76C"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R29",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(71, "%00000047"), Attrs([Attr("address","0x76C"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R30",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(75, "%0000004b"), Attrs([Attr("address","0x76C"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(16,64)))]), Jmps([Call(Tid(80, "%00000050"), - Attrs([Attr("address","0x770"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), Sub(Tid(1_577, "@_init"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x580")]), - "_init", Args([Arg(Tid(1_631, "%0000065f"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("_init_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(1_393, "@_init"), - Attrs([Attr("address","0x580")]), Phis([]), -Defs([Def(Tid(1_399, "%00000577"), Attrs([Attr("address","0x584"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("#6",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(18446744073709551600,64))), -Def(Tid(1_405, "%0000057d"), Attrs([Attr("address","0x584"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("#6",Imm(64)),Var("R29",Imm(64)),LittleEndian(),64)), -Def(Tid(1_411, "%00000583"), Attrs([Attr("address","0x584"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("#6",Imm(64)),Int(8,64)),Var("R30",Imm(64)),LittleEndian(),64)), -Def(Tid(1_415, "%00000587"), Attrs([Attr("address","0x584"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("R31",Imm(64)), -Var("#6",Imm(64))), Def(Tid(1_421, "%0000058d"), - Attrs([Attr("address","0x588"), Attr("insn","mov x29, sp")]), - Var("R29",Imm(64)), Var("R31",Imm(64))), Def(Tid(1_426, "%00000592"), - Attrs([Attr("address","0x58C"), Attr("insn","bl #0xa8")]), - Var("R30",Imm(64)), Int(1424,64))]), Jmps([Call(Tid(1_428, "%00000594"), - Attrs([Attr("address","0x58C"), Attr("insn","bl #0xa8")]), Int(1,1), -(Direct(Tid(1_582, "@call_weak_fn")),Direct(Tid(1_430, "%00000596"))))])), -Blk(Tid(1_430, "%00000596"), Attrs([Attr("address","0x590")]), Phis([]), -Defs([Def(Tid(1_435, "%0000059b"), Attrs([Attr("address","0x590"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R29",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(1_440, "%000005a0"), Attrs([Attr("address","0x590"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R30",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(1_444, "%000005a4"), Attrs([Attr("address","0x590"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(16,64)))]), Jmps([Call(Tid(1_449, "%000005a9"), - Attrs([Attr("address","0x594"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), Sub(Tid(1_578, "@_start"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x600"), -Attr("stub","()"), Attr("entry-point","()")]), "_start", - Args([Arg(Tid(1_632, "%00000660"), Attrs([Attr("c.layout","[signed : 32]"), -Attr("c.data","Top:u32"), Attr("c.type","signed")]), - Var("_start_result",Imm(32)), LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(436, "@_start"), Attrs([Attr("address","0x600")]), Phis([]), -Defs([Def(Tid(441, "%000001b9"), Attrs([Attr("address","0x604"), -Attr("insn","mov x29, #0x0")]), Var("R29",Imm(64)), Int(0,64)), -Def(Tid(446, "%000001be"), Attrs([Attr("address","0x608"), -Attr("insn","mov x30, #0x0")]), Var("R30",Imm(64)), Int(0,64)), -Def(Tid(452, "%000001c4"), Attrs([Attr("address","0x60C"), -Attr("insn","mov x5, x0")]), Var("R5",Imm(64)), Var("R0",Imm(64))), -Def(Tid(459, "%000001cb"), Attrs([Attr("address","0x610"), -Attr("insn","ldr x1, [sp]")]), Var("R1",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(465, "%000001d1"), Attrs([Attr("address","0x614"), -Attr("insn","add x2, sp, #0x8")]), Var("R2",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(8,64))), Def(Tid(471, "%000001d7"), - Attrs([Attr("address","0x618"), Attr("insn","mov x6, sp")]), - Var("R6",Imm(64)), Var("R31",Imm(64))), Def(Tid(476, "%000001dc"), - Attrs([Attr("address","0x61C"), Attr("insn","adrp x0, #65536")]), - Var("R0",Imm(64)), Int(65536,64)), Def(Tid(483, "%000001e3"), - Attrs([Attr("address","0x620"), Attr("insn","ldr x0, [x0, #0xfd8]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(4056,64)),LittleEndian(),64)), -Def(Tid(488, "%000001e8"), Attrs([Attr("address","0x624"), -Attr("insn","mov x3, #0x0")]), Var("R3",Imm(64)), Int(0,64)), -Def(Tid(493, "%000001ed"), Attrs([Attr("address","0x628"), -Attr("insn","mov x4, #0x0")]), Var("R4",Imm(64)), Int(0,64)), -Def(Tid(498, "%000001f2"), Attrs([Attr("address","0x62C"), -Attr("insn","bl #-0x6c")]), Var("R30",Imm(64)), Int(1584,64))]), -Jmps([Call(Tid(501, "%000001f5"), Attrs([Attr("address","0x62C"), -Attr("insn","bl #-0x6c")]), Int(1,1), -(Direct(Tid(1_575, "@__libc_start_main")),Direct(Tid(503, "%000001f7"))))])), -Blk(Tid(503, "%000001f7"), Attrs([Attr("address","0x630")]), Phis([]), -Defs([Def(Tid(506, "%000001fa"), Attrs([Attr("address","0x630"), -Attr("insn","bl #-0x40")]), Var("R30",Imm(64)), Int(1588,64))]), -Jmps([Call(Tid(509, "%000001fd"), Attrs([Attr("address","0x630"), -Attr("insn","bl #-0x40")]), Int(1,1), -(Direct(Tid(1_581, "@abort")),Direct(Tid(1_614, "%0000064e"))))])), -Blk(Tid(1_614, "%0000064e"), Attrs([]), Phis([]), Defs([]), -Jmps([Call(Tid(1_615, "%0000064f"), Attrs([]), Int(1,1), -(Direct(Tid(1_582, "@call_weak_fn")),))]))])), Sub(Tid(1_581, "@abort"), - Attrs([Attr("noreturn","()"), Attr("c.proto","void (*)(void)"), -Attr("address","0x5F0"), Attr("stub","()")]), "abort", Args([]), -Blks([Blk(Tid(507, "@abort"), Attrs([Attr("address","0x5F0")]), Phis([]), -Defs([Def(Tid(1_252, "%000004e4"), Attrs([Attr("address","0x5F0"), -Attr("insn","adrp x16, #69632")]), Var("R16",Imm(64)), Int(69632,64)), -Def(Tid(1_259, "%000004eb"), Attrs([Attr("address","0x5F4"), -Attr("insn","ldr x17, [x16, #0x18]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(24,64)),LittleEndian(),64)), -Def(Tid(1_265, "%000004f1"), Attrs([Attr("address","0x5F8"), -Attr("insn","add x16, x16, #0x18")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(24,64)))]), Jmps([Call(Tid(1_270, "%000004f6"), - Attrs([Attr("address","0x5FC"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), Sub(Tid(1_582, "@call_weak_fn"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x634")]), - "call_weak_fn", Args([Arg(Tid(1_633, "%00000661"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("call_weak_fn_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(511, "@call_weak_fn"), - Attrs([Attr("address","0x634")]), Phis([]), Defs([Def(Tid(514, "%00000202"), - Attrs([Attr("address","0x634"), Attr("insn","adrp x0, #65536")]), - Var("R0",Imm(64)), Int(65536,64)), Def(Tid(521, "%00000209"), - Attrs([Attr("address","0x638"), Attr("insn","ldr x0, [x0, #0xfd0]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(4048,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(527, "%0000020f"), Attrs([Attr("address","0x63C"), -Attr("insn","cbz x0, #0x8")]), EQ(Var("R0",Imm(64)),Int(0,64)), -Direct(Tid(525, "%0000020d"))), Goto(Tid(1_616, "%00000650"), Attrs([]), - Int(1,1), Direct(Tid(1_024, "%00000400")))])), Blk(Tid(525, "%0000020d"), - Attrs([Attr("address","0x644")]), Phis([]), Defs([]), -Jmps([Call(Tid(533, "%00000215"), Attrs([Attr("address","0x644"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))])), -Blk(Tid(1_024, "%00000400"), Attrs([Attr("address","0x640")]), Phis([]), -Defs([]), Jmps([Goto(Tid(1_027, "%00000403"), Attrs([Attr("address","0x640"), -Attr("insn","b #-0x60")]), Int(1,1), -Direct(Tid(1_025, "@__gmon_start__")))])), Blk(Tid(1_025, "@__gmon_start__"), - Attrs([Attr("address","0x5E0")]), Phis([]), -Defs([Def(Tid(1_230, "%000004ce"), Attrs([Attr("address","0x5E0"), -Attr("insn","adrp x16, #69632")]), Var("R16",Imm(64)), Int(69632,64)), -Def(Tid(1_237, "%000004d5"), Attrs([Attr("address","0x5E4"), -Attr("insn","ldr x17, [x16, #0x10]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(16,64)),LittleEndian(),64)), -Def(Tid(1_243, "%000004db"), Attrs([Attr("address","0x5E8"), -Attr("insn","add x16, x16, #0x10")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(16,64)))]), Jmps([Call(Tid(1_248, "%000004e0"), - Attrs([Attr("address","0x5EC"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), -Sub(Tid(1_584, "@deregister_tm_clones"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x650")]), - "deregister_tm_clones", Args([Arg(Tid(1_634, "%00000662"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("deregister_tm_clones_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(539, "@deregister_tm_clones"), - Attrs([Attr("address","0x650")]), Phis([]), Defs([Def(Tid(542, "%0000021e"), - Attrs([Attr("address","0x650"), Attr("insn","adrp x0, #69632")]), - Var("R0",Imm(64)), Int(69632,64)), Def(Tid(548, "%00000224"), - Attrs([Attr("address","0x654"), Attr("insn","add x0, x0, #0x30")]), - Var("R0",Imm(64)), PLUS(Var("R0",Imm(64)),Int(48,64))), -Def(Tid(553, "%00000229"), Attrs([Attr("address","0x658"), -Attr("insn","adrp x1, #69632")]), Var("R1",Imm(64)), Int(69632,64)), -Def(Tid(559, "%0000022f"), Attrs([Attr("address","0x65C"), -Attr("insn","add x1, x1, #0x30")]), Var("R1",Imm(64)), -PLUS(Var("R1",Imm(64)),Int(48,64))), Def(Tid(565, "%00000235"), - Attrs([Attr("address","0x660"), Attr("insn","cmp x1, x0")]), - Var("#1",Imm(64)), NOT(Var("R0",Imm(64)))), Def(Tid(570, "%0000023a"), - Attrs([Attr("address","0x660"), Attr("insn","cmp x1, x0")]), - Var("#2",Imm(64)), PLUS(Var("R1",Imm(64)),NOT(Var("R0",Imm(64))))), -Def(Tid(576, "%00000240"), Attrs([Attr("address","0x660"), -Attr("insn","cmp x1, x0")]), Var("VF",Imm(1)), -NEQ(SIGNED(65,PLUS(Var("#2",Imm(64)),Int(1,64))),PLUS(PLUS(SIGNED(65,Var("R1",Imm(64))),SIGNED(65,Var("#1",Imm(64)))),Int(1,65)))), -Def(Tid(582, "%00000246"), Attrs([Attr("address","0x660"), -Attr("insn","cmp x1, x0")]), Var("CF",Imm(1)), -NEQ(UNSIGNED(65,PLUS(Var("#2",Imm(64)),Int(1,64))),PLUS(PLUS(UNSIGNED(65,Var("R1",Imm(64))),UNSIGNED(65,Var("#1",Imm(64)))),Int(1,65)))), -Def(Tid(586, "%0000024a"), Attrs([Attr("address","0x660"), -Attr("insn","cmp x1, x0")]), Var("ZF",Imm(1)), -EQ(PLUS(Var("#2",Imm(64)),Int(1,64)),Int(0,64))), Def(Tid(590, "%0000024e"), - Attrs([Attr("address","0x660"), Attr("insn","cmp x1, x0")]), - Var("NF",Imm(1)), Extract(63,63,PLUS(Var("#2",Imm(64)),Int(1,64))))]), -Jmps([Goto(Tid(596, "%00000254"), Attrs([Attr("address","0x664"), -Attr("insn","b.eq #0x18")]), EQ(Var("ZF",Imm(1)),Int(1,1)), -Direct(Tid(594, "%00000252"))), Goto(Tid(1_617, "%00000651"), Attrs([]), - Int(1,1), Direct(Tid(994, "%000003e2")))])), Blk(Tid(994, "%000003e2"), - Attrs([Attr("address","0x668")]), Phis([]), Defs([Def(Tid(997, "%000003e5"), - Attrs([Attr("address","0x668"), Attr("insn","adrp x1, #65536")]), - Var("R1",Imm(64)), Int(65536,64)), Def(Tid(1_004, "%000003ec"), - Attrs([Attr("address","0x66C"), Attr("insn","ldr x1, [x1, #0xfc0]")]), - Var("R1",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R1",Imm(64)),Int(4032,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(1_009, "%000003f1"), Attrs([Attr("address","0x670"), -Attr("insn","cbz x1, #0xc")]), EQ(Var("R1",Imm(64)),Int(0,64)), -Direct(Tid(594, "%00000252"))), Goto(Tid(1_618, "%00000652"), Attrs([]), - Int(1,1), Direct(Tid(1_013, "%000003f5")))])), Blk(Tid(594, "%00000252"), - Attrs([Attr("address","0x67C")]), Phis([]), Defs([]), -Jmps([Call(Tid(602, "%0000025a"), Attrs([Attr("address","0x67C"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))])), -Blk(Tid(1_013, "%000003f5"), Attrs([Attr("address","0x674")]), Phis([]), -Defs([Def(Tid(1_017, "%000003f9"), Attrs([Attr("address","0x674"), -Attr("insn","mov x16, x1")]), Var("R16",Imm(64)), Var("R1",Imm(64)))]), -Jmps([Call(Tid(1_022, "%000003fe"), Attrs([Attr("address","0x678"), -Attr("insn","br x16")]), Int(1,1), (Indirect(Var("R16",Imm(64))),))]))])), -Sub(Tid(1_587, "@frame_dummy"), Attrs([Attr("c.proto","signed (*)(void)"), -Attr("address","0x710")]), "frame_dummy", Args([Arg(Tid(1_635, "%00000663"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("frame_dummy_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(754, "@frame_dummy"), - Attrs([Attr("address","0x710")]), Phis([]), Defs([]), -Jmps([Call(Tid(756, "%000002f4"), Attrs([Attr("address","0x710"), -Attr("insn","b #-0x90")]), Int(1,1), -(Direct(Tid(1_590, "@register_tm_clones")),))]))])), Sub(Tid(1_588, "@main"), - Attrs([Attr("c.proto","signed (*)(signed argc, const char** argv)"), -Attr("address","0x714")]), "main", Args([Arg(Tid(1_636, "%00000664"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("main_argc",Imm(32)), -LOW(32,Var("R0",Imm(64))), In()), Arg(Tid(1_637, "%00000665"), - Attrs([Attr("c.layout","**[char : 8]"), Attr("c.data","Top:u8 ptr ptr"), -Attr("c.type"," const char**")]), Var("main_argv",Imm(64)), -Var("R1",Imm(64)), Both()), Arg(Tid(1_638, "%00000666"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("main_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(758, "@main"), - Attrs([Attr("address","0x714")]), Phis([]), Defs([Def(Tid(762, "%000002fa"), - Attrs([Attr("address","0x714"), Attr("insn","sub sp, sp, #0x10")]), - Var("R31",Imm(64)), PLUS(Var("R31",Imm(64)),Int(18446744073709551600,64))), -Def(Tid(769, "%00000301"), Attrs([Attr("address","0x718"), -Attr("insn","str wzr, [sp, #0xc]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(12,64)),Int(0,32),LittleEndian(),32)), -Def(Tid(774, "%00000306"), Attrs([Attr("address","0x71C"), -Attr("insn","adrp x8, #69632")]), Var("R8",Imm(64)), Int(69632,64)), -Def(Tid(781, "%0000030d"), Attrs([Attr("address","0x720"), -Attr("insn","ldr w8, [x8, #0x34]")]), Var("R8",Imm(64)), -UNSIGNED(64,Load(Var("mem",Mem(64,8)),PLUS(Var("R8",Imm(64)),Int(52,64)),LittleEndian(),32))), -Def(Tid(789, "%00000315"), Attrs([Attr("address","0x724"), -Attr("insn","str w8, [sp, #0x8]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),Extract(31,0,Var("R8",Imm(64))),LittleEndian(),32)), -Def(Tid(794, "%0000031a"), Attrs([Attr("address","0x728"), -Attr("insn","adrp x8, #69632")]), Var("R8",Imm(64)), Int(69632,64)), -Def(Tid(801, "%00000321"), Attrs([Attr("address","0x72C"), -Attr("insn","ldr w8, [x8, #0x38]")]), Var("R8",Imm(64)), -UNSIGNED(64,Load(Var("mem",Mem(64,8)),PLUS(Var("R8",Imm(64)),Int(56,64)),LittleEndian(),32))), -Def(Tid(807, "%00000327"), Attrs([Attr("address","0x730"), -Attr("insn","subs w8, w8, #0x0")]), Var("#4",Imm(32)), -PLUS(Extract(31,0,Var("R8",Imm(64))),Int(4294967295,32))), -Def(Tid(812, "%0000032c"), Attrs([Attr("address","0x730"), -Attr("insn","subs w8, w8, #0x0")]), Var("VF",Imm(1)), -NEQ(SIGNED(33,PLUS(Var("#4",Imm(32)),Int(1,32))),PLUS(SIGNED(33,Extract(31,0,Var("R8",Imm(64)))),Int(0,33)))), -Def(Tid(817, "%00000331"), Attrs([Attr("address","0x730"), -Attr("insn","subs w8, w8, #0x0")]), Var("CF",Imm(1)), -NEQ(UNSIGNED(33,PLUS(Var("#4",Imm(32)),Int(1,32))),PLUS(UNSIGNED(33,Extract(31,0,Var("R8",Imm(64)))),Int(4294967296,33)))), -Def(Tid(821, "%00000335"), Attrs([Attr("address","0x730"), -Attr("insn","subs w8, w8, #0x0")]), Var("ZF",Imm(1)), -EQ(PLUS(Var("#4",Imm(32)),Int(1,32)),Int(0,32))), Def(Tid(825, "%00000339"), - Attrs([Attr("address","0x730"), Attr("insn","subs w8, w8, #0x0")]), - Var("NF",Imm(1)), Extract(31,31,PLUS(Var("#4",Imm(32)),Int(1,32)))), -Def(Tid(829, "%0000033d"), Attrs([Attr("address","0x730"), -Attr("insn","subs w8, w8, #0x0")]), Var("R8",Imm(64)), -UNSIGNED(64,PLUS(Var("#4",Imm(32)),Int(1,32))))]), -Jmps([Goto(Tid(841, "%00000349"), Attrs([Attr("address","0x734"), -Attr("insn","cset w8, ne")]), EQ(Var("ZF",Imm(1)),Int(1,1)), -Direct(Tid(834, "%00000342"))), Goto(Tid(842, "%0000034a"), - Attrs([Attr("address","0x734"), Attr("insn","cset w8, ne")]), Int(1,1), -Direct(Tid(837, "%00000345")))])), Blk(Tid(837, "%00000345"), Attrs([]), - Phis([]), Defs([Def(Tid(838, "%00000346"), Attrs([Attr("address","0x734"), -Attr("insn","cset w8, ne")]), Var("R8",Imm(64)), Int(1,64))]), -Jmps([Goto(Tid(844, "%0000034c"), Attrs([Attr("address","0x734"), -Attr("insn","cset w8, ne")]), Int(1,1), Direct(Tid(840, "%00000348")))])), -Blk(Tid(834, "%00000342"), Attrs([]), Phis([]), -Defs([Def(Tid(835, "%00000343"), Attrs([Attr("address","0x734"), -Attr("insn","cset w8, ne")]), Var("R8",Imm(64)), Int(0,64))]), -Jmps([Goto(Tid(843, "%0000034b"), Attrs([Attr("address","0x734"), -Attr("insn","cset w8, ne")]), Int(1,1), Direct(Tid(840, "%00000348")))])), -Blk(Tid(840, "%00000348"), Attrs([]), Phis([]), Defs([]), -Jmps([Goto(Tid(850, "%00000352"), Attrs([Attr("address","0x738"), -Attr("insn","tbnz w8, #0x0, #0x10")]), - EQ(Extract(0,0,Var("R8",Imm(64))),Int(1,1)), Direct(Tid(848, "%00000350"))), -Goto(Tid(1_619, "%00000653"), Attrs([]), Int(1,1), -Direct(Tid(890, "%0000037a")))])), Blk(Tid(848, "%00000350"), - Attrs([Attr("address","0x748")]), Phis([]), Defs([Def(Tid(858, "%0000035a"), - Attrs([Attr("address","0x748"), Attr("insn","ldr w8, [sp, #0x8]")]), - Var("R8",Imm(64)), -UNSIGNED(64,Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),LittleEndian(),32))), -Def(Tid(866, "%00000362"), Attrs([Attr("address","0x74C"), -Attr("insn","str w8, [sp, #0xc]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(12,64)),Extract(31,0,Var("R8",Imm(64))),LittleEndian(),32))]), -Jmps([Goto(Tid(871, "%00000367"), Attrs([Attr("address","0x750"), -Attr("insn","b #0x4")]), Int(1,1), Direct(Tid(869, "%00000365")))])), -Blk(Tid(890, "%0000037a"), Attrs([Attr("address","0x73C")]), Phis([]), -Defs([]), Jmps([Goto(Tid(893, "%0000037d"), Attrs([Attr("address","0x73C"), -Attr("insn","b #0x4")]), Int(1,1), Direct(Tid(891, "%0000037b")))])), -Blk(Tid(891, "%0000037b"), Attrs([Attr("address","0x740")]), Phis([]), -Defs([Def(Tid(899, "%00000383"), Attrs([Attr("address","0x740"), -Attr("insn","str wzr, [sp, #0xc]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(12,64)),Int(0,32),LittleEndian(),32))]), -Jmps([Goto(Tid(903, "%00000387"), Attrs([Attr("address","0x744"), -Attr("insn","b #0x10")]), Int(1,1), Direct(Tid(869, "%00000365")))])), -Blk(Tid(869, "%00000365"), Attrs([Attr("address","0x754")]), Phis([]), -Defs([Def(Tid(877, "%0000036d"), Attrs([Attr("address","0x754"), -Attr("insn","ldr w0, [sp, #0xc]")]), Var("R0",Imm(64)), -UNSIGNED(64,Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(12,64)),LittleEndian(),32))), -Def(Tid(883, "%00000373"), Attrs([Attr("address","0x758"), -Attr("insn","add sp, sp, #0x10")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(16,64)))]), Jmps([Call(Tid(888, "%00000378"), - Attrs([Attr("address","0x75C"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), -Sub(Tid(1_590, "@register_tm_clones"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x680")]), - "register_tm_clones", Args([Arg(Tid(1_639, "%00000667"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("register_tm_clones_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(604, "@register_tm_clones"), Attrs([Attr("address","0x680")]), - Phis([]), Defs([Def(Tid(607, "%0000025f"), Attrs([Attr("address","0x680"), -Attr("insn","adrp x0, #69632")]), Var("R0",Imm(64)), Int(69632,64)), -Def(Tid(613, "%00000265"), Attrs([Attr("address","0x684"), -Attr("insn","add x0, x0, #0x30")]), Var("R0",Imm(64)), -PLUS(Var("R0",Imm(64)),Int(48,64))), Def(Tid(618, "%0000026a"), - Attrs([Attr("address","0x688"), Attr("insn","adrp x1, #69632")]), - Var("R1",Imm(64)), Int(69632,64)), Def(Tid(624, "%00000270"), - Attrs([Attr("address","0x68C"), Attr("insn","add x1, x1, #0x30")]), - Var("R1",Imm(64)), PLUS(Var("R1",Imm(64)),Int(48,64))), -Def(Tid(631, "%00000277"), Attrs([Attr("address","0x690"), -Attr("insn","sub x1, x1, x0")]), Var("R1",Imm(64)), -PLUS(PLUS(Var("R1",Imm(64)),NOT(Var("R0",Imm(64)))),Int(1,64))), -Def(Tid(637, "%0000027d"), Attrs([Attr("address","0x694"), -Attr("insn","lsr x2, x1, #63")]), Var("R2",Imm(64)), -Concat(Int(0,63),Extract(63,63,Var("R1",Imm(64))))), -Def(Tid(644, "%00000284"), Attrs([Attr("address","0x698"), -Attr("insn","add x1, x2, x1, asr #3")]), Var("R1",Imm(64)), -PLUS(Var("R2",Imm(64)),ARSHIFT(Var("R1",Imm(64)),Int(3,3)))), -Def(Tid(650, "%0000028a"), Attrs([Attr("address","0x69C"), -Attr("insn","asr x1, x1, #1")]), Var("R1",Imm(64)), -SIGNED(64,Extract(63,1,Var("R1",Imm(64)))))]), -Jmps([Goto(Tid(656, "%00000290"), Attrs([Attr("address","0x6A0"), -Attr("insn","cbz x1, #0x18")]), EQ(Var("R1",Imm(64)),Int(0,64)), -Direct(Tid(654, "%0000028e"))), Goto(Tid(1_620, "%00000654"), Attrs([]), - Int(1,1), Direct(Tid(964, "%000003c4")))])), Blk(Tid(964, "%000003c4"), - Attrs([Attr("address","0x6A4")]), Phis([]), Defs([Def(Tid(967, "%000003c7"), - Attrs([Attr("address","0x6A4"), Attr("insn","adrp x2, #65536")]), - Var("R2",Imm(64)), Int(65536,64)), Def(Tid(974, "%000003ce"), - Attrs([Attr("address","0x6A8"), Attr("insn","ldr x2, [x2, #0xfe0]")]), - Var("R2",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R2",Imm(64)),Int(4064,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(979, "%000003d3"), Attrs([Attr("address","0x6AC"), -Attr("insn","cbz x2, #0xc")]), EQ(Var("R2",Imm(64)),Int(0,64)), -Direct(Tid(654, "%0000028e"))), Goto(Tid(1_621, "%00000655"), Attrs([]), - Int(1,1), Direct(Tid(983, "%000003d7")))])), Blk(Tid(654, "%0000028e"), - Attrs([Attr("address","0x6B8")]), Phis([]), Defs([]), -Jmps([Call(Tid(662, "%00000296"), Attrs([Attr("address","0x6B8"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))])), -Blk(Tid(983, "%000003d7"), Attrs([Attr("address","0x6B0")]), Phis([]), -Defs([Def(Tid(987, "%000003db"), Attrs([Attr("address","0x6B0"), -Attr("insn","mov x16, x2")]), Var("R16",Imm(64)), Var("R2",Imm(64)))]), -Jmps([Call(Tid(992, "%000003e0"), Attrs([Attr("address","0x6B4"), -Attr("insn","br x16")]), Int(1,1), -(Indirect(Var("R16",Imm(64))),))]))]))]))) \ No newline at end of file diff --git a/src/test/correct/basic_function_call_reader/clang/basic_function_call_reader.bir b/src/test/correct/basic_function_call_reader/clang/basic_function_call_reader.bir deleted file mode 100644 index 5e874e8ff..000000000 --- a/src/test/correct/basic_function_call_reader/clang/basic_function_call_reader.bir +++ /dev/null @@ -1,266 +0,0 @@ -00000656: program -00000622: sub __cxa_finalize(__cxa_finalize_result) -00000657: __cxa_finalize_result :: out u32 = low:32[R0] - -000003c0: -000004b8: R16 := 0x11000 -000004bf: R17 := mem[R16 + 8, el]:u64 -000004c5: R16 := R16 + 8 -000004ca: call R17 with noreturn - -00000623: sub __do_global_dtors_aux(__do_global_dtors_aux_result) -00000658: __do_global_dtors_aux_result :: out u32 = low:32[R0] - -0000029a: -0000029e: #3 := R31 - 0x20 -000002a4: mem := mem with [#3, el]:u64 <- R29 -000002aa: mem := mem with [#3 + 8, el]:u64 <- R30 -000002ae: R31 := #3 -000002b4: R29 := R31 -000002bc: mem := mem with [R31 + 0x10, el]:u64 <- R19 -000002c1: R19 := 0x11000 -000002c8: R0 := pad:64[mem[R19 + 0x30]] -000002cf: when 31:0[R0] <> 0 goto %000002cd -0000064b: goto %00000389 - -00000389: -0000038c: R0 := 0x10000 -00000393: R0 := mem[R0 + 0xFC8, el]:u64 -00000399: when R0 = 0 goto %00000397 -0000064c: goto %000003b0 - -000003b0: -000003b3: R0 := 0x11000 -000003ba: R0 := mem[R0 + 0x28, el]:u64 -000003bf: R30 := 0x6F0 -000003c2: call @__cxa_finalize with return %00000397 - -00000397: -0000039f: R30 := 0x6F4 -000003a1: call @deregister_tm_clones with return %000003a3 - -000003a3: -000003a6: R0 := 1 -000003ae: mem := mem with [R19 + 0x30] <- 7:0[R0] -0000064d: goto %000002cd - -000002cd: -000002d7: R19 := mem[R31 + 0x10, el]:u64 -000002de: R29 := mem[R31, el]:u64 -000002e3: R30 := mem[R31 + 8, el]:u64 -000002e7: R31 := R31 + 0x20 -000002ec: call R30 with noreturn - -00000627: sub __libc_start_main(__libc_start_main_main, __libc_start_main_arg2, __libc_start_main_arg3, __libc_start_main_auxv, __libc_start_main_result) -00000659: __libc_start_main_main :: in u64 = R0 -0000065a: __libc_start_main_arg2 :: in u32 = low:32[R1] -0000065b: __libc_start_main_arg3 :: in out u64 = R2 -0000065c: __libc_start_main_auxv :: in out u64 = R3 -0000065d: __libc_start_main_result :: out u32 = low:32[R0] - -000001f3: -000004a2: R16 := 0x11000 -000004a9: R17 := mem[R16, el]:u64 -000004af: R16 := R16 -000004b4: call R17 with noreturn - -00000628: sub _fini(_fini_result) -0000065e: _fini_result :: out u32 = low:32[R0] - -0000001f: -00000025: #0 := R31 - 0x10 -0000002b: mem := mem with [#0, el]:u64 <- R29 -00000031: mem := mem with [#0 + 8, el]:u64 <- R30 -00000035: R31 := #0 -0000003b: R29 := R31 -00000042: R29 := mem[R31, el]:u64 -00000047: R30 := mem[R31 + 8, el]:u64 -0000004b: R31 := R31 + 0x10 -00000050: call R30 with noreturn - -00000629: sub _init(_init_result) -0000065f: _init_result :: out u32 = low:32[R0] - -00000571: -00000577: #6 := R31 - 0x10 -0000057d: mem := mem with [#6, el]:u64 <- R29 -00000583: mem := mem with [#6 + 8, el]:u64 <- R30 -00000587: R31 := #6 -0000058d: R29 := R31 -00000592: R30 := 0x590 -00000594: call @call_weak_fn with return %00000596 - -00000596: -0000059b: R29 := mem[R31, el]:u64 -000005a0: R30 := mem[R31 + 8, el]:u64 -000005a4: R31 := R31 + 0x10 -000005a9: call R30 with noreturn - -0000062a: sub _start(_start_result) -00000660: _start_result :: out u32 = low:32[R0] - -000001b4: -000001b9: R29 := 0 -000001be: R30 := 0 -000001c4: R5 := R0 -000001cb: R1 := mem[R31, el]:u64 -000001d1: R2 := R31 + 8 -000001d7: R6 := R31 -000001dc: R0 := 0x10000 -000001e3: R0 := mem[R0 + 0xFD8, el]:u64 -000001e8: R3 := 0 -000001ed: R4 := 0 -000001f2: R30 := 0x630 -000001f5: call @__libc_start_main with return %000001f7 - -000001f7: -000001fa: R30 := 0x634 -000001fd: call @abort with return %0000064e - -0000064e: -0000064f: call @call_weak_fn with noreturn - -0000062d: sub abort() - - -000001fb: -000004e4: R16 := 0x11000 -000004eb: R17 := mem[R16 + 0x18, el]:u64 -000004f1: R16 := R16 + 0x18 -000004f6: call R17 with noreturn - -0000062e: sub call_weak_fn(call_weak_fn_result) -00000661: call_weak_fn_result :: out u32 = low:32[R0] - -000001ff: -00000202: R0 := 0x10000 -00000209: R0 := mem[R0 + 0xFD0, el]:u64 -0000020f: when R0 = 0 goto %0000020d -00000650: goto %00000400 - -0000020d: -00000215: call R30 with noreturn - -00000400: -00000403: goto @__gmon_start__ - -00000401: -000004ce: R16 := 0x11000 -000004d5: R17 := mem[R16 + 0x10, el]:u64 -000004db: R16 := R16 + 0x10 -000004e0: call R17 with noreturn - -00000630: sub deregister_tm_clones(deregister_tm_clones_result) -00000662: deregister_tm_clones_result :: out u32 = low:32[R0] - -0000021b: -0000021e: R0 := 0x11000 -00000224: R0 := R0 + 0x30 -00000229: R1 := 0x11000 -0000022f: R1 := R1 + 0x30 -00000235: #1 := ~R0 -0000023a: #2 := R1 + ~R0 -00000240: VF := extend:65[#2 + 1] <> extend:65[R1] + extend:65[#1] + 1 -00000246: CF := pad:65[#2 + 1] <> pad:65[R1] + pad:65[#1] + 1 -0000024a: ZF := #2 + 1 = 0 -0000024e: NF := 63:63[#2 + 1] -00000254: when ZF goto %00000252 -00000651: goto %000003e2 - -000003e2: -000003e5: R1 := 0x10000 -000003ec: R1 := mem[R1 + 0xFC0, el]:u64 -000003f1: when R1 = 0 goto %00000252 -00000652: goto %000003f5 - -00000252: -0000025a: call R30 with noreturn - -000003f5: -000003f9: R16 := R1 -000003fe: call R16 with noreturn - -00000633: sub frame_dummy(frame_dummy_result) -00000663: frame_dummy_result :: out u32 = low:32[R0] - -000002f2: -000002f4: call @register_tm_clones with noreturn - -00000634: sub main(main_argc, main_argv, main_result) -00000664: main_argc :: in u32 = low:32[R0] -00000665: main_argv :: in out u64 = R1 -00000666: main_result :: out u32 = low:32[R0] - -000002f6: -000002fa: R31 := R31 - 0x10 -00000301: mem := mem with [R31 + 0xC, el]:u32 <- 0 -00000306: R8 := 0x11000 -0000030d: R8 := pad:64[mem[R8 + 0x34, el]:u32] -00000315: mem := mem with [R31 + 8, el]:u32 <- 31:0[R8] -0000031a: R8 := 0x11000 -00000321: R8 := pad:64[mem[R8 + 0x38, el]:u32] -00000327: #4 := 31:0[R8] - 1 -0000032c: VF := extend:33[#4 + 1] <> extend:33[31:0[R8]] + 0 -00000331: CF := pad:33[#4 + 1] <> pad:33[31:0[R8]] - 0x100000000 -00000335: ZF := #4 + 1 = 0 -00000339: NF := 31:31[#4 + 1] -0000033d: R8 := pad:64[#4 + 1] -00000349: when ZF goto %00000342 -0000034a: goto %00000345 - -00000345: -00000346: R8 := 1 -0000034c: goto %00000348 - -00000342: -00000343: R8 := 0 -0000034b: goto %00000348 - -00000348: -00000352: when 0:0[R8] goto %00000350 -00000653: goto %0000037a - -00000350: -0000035a: R8 := pad:64[mem[R31 + 8, el]:u32] -00000362: mem := mem with [R31 + 0xC, el]:u32 <- 31:0[R8] -00000367: goto %00000365 - -0000037a: -0000037d: goto %0000037b - -0000037b: -00000383: mem := mem with [R31 + 0xC, el]:u32 <- 0 -00000387: goto %00000365 - -00000365: -0000036d: R0 := pad:64[mem[R31 + 0xC, el]:u32] -00000373: R31 := R31 + 0x10 -00000378: call R30 with noreturn - -00000636: sub register_tm_clones(register_tm_clones_result) -00000667: register_tm_clones_result :: out u32 = low:32[R0] - -0000025c: -0000025f: R0 := 0x11000 -00000265: R0 := R0 + 0x30 -0000026a: R1 := 0x11000 -00000270: R1 := R1 + 0x30 -00000277: R1 := R1 + ~R0 + 1 -0000027d: R2 := 0.63:63[R1] -00000284: R1 := R2 + (R1 ~>> 3) -0000028a: R1 := extend:64[63:1[R1]] -00000290: when R1 = 0 goto %0000028e -00000654: goto %000003c4 - -000003c4: -000003c7: R2 := 0x10000 -000003ce: R2 := mem[R2 + 0xFE0, el]:u64 -000003d3: when R2 = 0 goto %0000028e -00000655: goto %000003d7 - -0000028e: -00000296: call R30 with noreturn - -000003d7: -000003db: R16 := R2 -000003e0: call R16 with noreturn diff --git a/src/test/correct/basic_function_call_reader/clang/basic_function_call_reader.expected b/src/test/correct/basic_function_call_reader/clang/basic_function_call_reader.expected index 6e8c57025..632ee8925 100644 --- a/src/test/correct/basic_function_call_reader/clang/basic_function_call_reader.expected +++ b/src/test/correct/basic_function_call_reader/clang/basic_function_call_reader.expected @@ -2,41 +2,35 @@ var {:extern} CF: bv1; var {:extern} Gamma_CF: bool; var {:extern} Gamma_NF: bool; var {:extern} Gamma_R0: bool; -var {:extern} Gamma_R31: bool; var {:extern} Gamma_R8: bool; +var {:extern} Gamma_R9: bool; var {:extern} Gamma_VF: bool; var {:extern} Gamma_ZF: bool; var {:extern} Gamma_mem: [bv64]bool; -var {:extern} Gamma_stack: [bv64]bool; var {:extern} NF: bv1; var {:extern} R0: bv64; -var {:extern} R31: bv64; var {:extern} R8: bv64; +var {:extern} R9: bv64; var {:extern} VF: bv1; var {:extern} ZF: bv1; var {:extern} mem: [bv64]bv8; -var {:extern} stack: [bv64]bv8; const {:extern} $x_addr: bv64; -axiom ($x_addr == 69688bv64); +axiom ($x_addr == 131096bv64); const {:extern} $y_addr: bv64; -axiom ($y_addr == 69684bv64); +axiom ($y_addr == 131092bv64); function {:extern} L(mem$in: [bv64]bv8, index: bv64) returns (bool) { (if (index == $y_addr) then (memory_load32_le(mem$in, $x_addr) == 1bv32) else (if (index == $x_addr) then true else false)) } -function {:extern} {:bvbuiltin "bvadd"} bvadd32(bv32, bv32) returns (bv32); -function {:extern} {:bvbuiltin "bvadd"} bvadd33(bv33, bv33) returns (bv33); function {:extern} {:bvbuiltin "bvadd"} bvadd64(bv64, bv64) returns (bv64); function {:extern} {:bvbuiltin "bvcomp"} bvcomp1(bv1, bv1) returns (bv1); function {:extern} {:bvbuiltin "bvcomp"} bvcomp32(bv32, bv32) returns (bv1); -function {:extern} {:bvbuiltin "bvcomp"} bvcomp33(bv33, bv33) returns (bv1); -function {:extern} {:bvbuiltin "bvnot"} bvnot1(bv1) returns (bv1); function {:extern} gamma_load32(gammaMap: [bv64]bool, index: bv64) returns (bool) { (gammaMap[bvadd64(index, 3bv64)] && (gammaMap[bvadd64(index, 2bv64)] && (gammaMap[bvadd64(index, 1bv64)] && gammaMap[index]))) } -function {:extern} gamma_store32(gammaMap: [bv64]bool, index: bv64, value: bool) returns ([bv64]bool) { - gammaMap[index := value][bvadd64(index, 1bv64) := value][bvadd64(index, 2bv64) := value][bvadd64(index, 3bv64) := value] +function {:extern} gamma_load64(gammaMap: [bv64]bool, index: bv64) returns (bool) { + (gammaMap[bvadd64(index, 7bv64)] && (gammaMap[bvadd64(index, 6bv64)] && (gammaMap[bvadd64(index, 5bv64)] && (gammaMap[bvadd64(index, 4bv64)] && (gammaMap[bvadd64(index, 3bv64)] && (gammaMap[bvadd64(index, 2bv64)] && (gammaMap[bvadd64(index, 1bv64)] && gammaMap[index]))))))) } function {:extern} memory_load32_le(memory: [bv64]bv8, index: bv64) returns (bv32) { @@ -47,23 +41,19 @@ function {:extern} memory_load64_le(memory: [bv64]bv8, index: bv64) returns (bv6 (memory[bvadd64(index, 7bv64)] ++ (memory[bvadd64(index, 6bv64)] ++ (memory[bvadd64(index, 5bv64)] ++ (memory[bvadd64(index, 4bv64)] ++ (memory[bvadd64(index, 3bv64)] ++ (memory[bvadd64(index, 2bv64)] ++ (memory[bvadd64(index, 1bv64)] ++ memory[index]))))))) } -function {:extern} memory_store32_le(memory: [bv64]bv8, index: bv64, value: bv32) returns ([bv64]bv8) { - memory[index := value[8:0]][bvadd64(index, 1bv64) := value[16:8]][bvadd64(index, 2bv64) := value[24:16]][bvadd64(index, 3bv64) := value[32:24]] -} - -function {:extern} {:bvbuiltin "sign_extend 1"} sign_extend1_32(bv32) returns (bv33); -function {:extern} {:bvbuiltin "zero_extend 1"} zero_extend1_32(bv32) returns (bv33); function {:extern} {:bvbuiltin "zero_extend 32"} zero_extend32_32(bv32) returns (bv64); procedure {:extern} rely(); modifies Gamma_mem, mem; ensures (forall i: bv64 :: (((mem[i] == old(mem[i])) ==> (Gamma_mem[i] == old(Gamma_mem[i]))))); ensures ((old(memory_load32_le(mem, $x_addr)) == 0bv32) ==> (memory_load32_le(mem, $x_addr) == 0bv32)); ensures (old(gamma_load32(Gamma_mem, $y_addr)) ==> ((memory_load32_le(mem, $x_addr) == 0bv32) || gamma_load32(Gamma_mem, $y_addr))); - free ensures (memory_load32_le(mem, 1908bv64) == 131073bv32); - free ensures (memory_load64_le(mem, 69064bv64) == 1808bv64); - free ensures (memory_load64_le(mem, 69072bv64) == 1728bv64); - free ensures (memory_load64_le(mem, 69592bv64) == 1812bv64); - free ensures (memory_load64_le(mem, 69672bv64) == 69672bv64); + free ensures (memory_load32_le(mem, 2316bv64) == 131073bv32); + free ensures (memory_load64_le(mem, 130424bv64) == 2256bv64); + free ensures (memory_load64_le(mem, 130432bv64) == 2176bv64); + free ensures (memory_load64_le(mem, 131032bv64) == 131096bv64); + free ensures (memory_load64_le(mem, 131048bv64) == 131092bv64); + free ensures (memory_load64_le(mem, 131056bv64) == 2260bv64); + free ensures (memory_load64_le(mem, 131080bv64) == 131080bv64); procedure {:extern} rely_transitive(); modifies Gamma_mem, mem; @@ -93,109 +83,78 @@ implementation {:extern} guarantee_reflexive() assert (memory_load32_le(mem, $y_addr) == memory_load32_le(mem, $y_addr)); } -procedure main_1812(); - modifies CF, Gamma_CF, Gamma_NF, Gamma_R0, Gamma_R31, Gamma_R8, Gamma_VF, Gamma_ZF, Gamma_mem, Gamma_stack, NF, R0, R31, R8, VF, ZF, mem, stack; - free requires (memory_load64_le(mem, 69664bv64) == 0bv64); - free requires (memory_load64_le(mem, 69672bv64) == 69672bv64); - free requires (memory_load32_le(mem, 1908bv64) == 131073bv32); - free requires (memory_load64_le(mem, 69064bv64) == 1808bv64); - free requires (memory_load64_le(mem, 69072bv64) == 1728bv64); - free requires (memory_load64_le(mem, 69592bv64) == 1812bv64); - free requires (memory_load64_le(mem, 69672bv64) == 69672bv64); - free ensures (Gamma_R31 == old(Gamma_R31)); - free ensures (R31 == old(R31)); - free ensures (memory_load32_le(mem, 1908bv64) == 131073bv32); - free ensures (memory_load64_le(mem, 69064bv64) == 1808bv64); - free ensures (memory_load64_le(mem, 69072bv64) == 1728bv64); - free ensures (memory_load64_le(mem, 69592bv64) == 1812bv64); - free ensures (memory_load64_le(mem, 69672bv64) == 69672bv64); +procedure main(); + modifies CF, Gamma_CF, Gamma_NF, Gamma_R0, Gamma_R8, Gamma_R9, Gamma_VF, Gamma_ZF, Gamma_mem, NF, R0, R8, R9, VF, ZF, mem; + free requires (memory_load64_le(mem, 131072bv64) == 0bv64); + free requires (memory_load64_le(mem, 131080bv64) == 131080bv64); + free requires (memory_load32_le(mem, 2316bv64) == 131073bv32); + free requires (memory_load64_le(mem, 130424bv64) == 2256bv64); + free requires (memory_load64_le(mem, 130432bv64) == 2176bv64); + free requires (memory_load64_le(mem, 131032bv64) == 131096bv64); + free requires (memory_load64_le(mem, 131048bv64) == 131092bv64); + free requires (memory_load64_le(mem, 131056bv64) == 2260bv64); + free requires (memory_load64_le(mem, 131080bv64) == 131080bv64); + free ensures (memory_load32_le(mem, 2316bv64) == 131073bv32); + free ensures (memory_load64_le(mem, 130424bv64) == 2256bv64); + free ensures (memory_load64_le(mem, 130432bv64) == 2176bv64); + free ensures (memory_load64_le(mem, 131032bv64) == 131096bv64); + free ensures (memory_load64_le(mem, 131048bv64) == 131092bv64); + free ensures (memory_load64_le(mem, 131056bv64) == 2260bv64); + free ensures (memory_load64_le(mem, 131080bv64) == 131080bv64); -implementation main_1812() +implementation main() { - var #4: bv32; - var Gamma_#4: bool; - var Gamma_load18: bool; - var Gamma_load19: bool; - var Gamma_load20: bool; - var Gamma_load21: bool; - var load18: bv32; - var load19: bv32; - var load20: bv32; - var load21: bv32; + var $load$18: bv64; + var $load$19: bv64; + var $load$20: bv32; + var $load$21: bv32; + var Gamma_$load$18: bool; + var Gamma_$load$19: bool; + var Gamma_$load$20: bool; + var Gamma_$load$21: bool; lmain: assume {:captureState "lmain"} true; - R31, Gamma_R31 := bvadd64(R31, 18446744073709551600bv64), Gamma_R31; - stack, Gamma_stack := memory_store32_le(stack, bvadd64(R31, 12bv64), 0bv32), gamma_store32(Gamma_stack, bvadd64(R31, 12bv64), true); - assume {:captureState "%00000301"} true; - R8, Gamma_R8 := 69632bv64, true; + R8, Gamma_R8 := 126976bv64, true; + R9, Gamma_R9 := 126976bv64, true; + call rely(); + $load$18, Gamma_$load$18 := memory_load64_le(mem, bvadd64(R8, 4056bv64)), (gamma_load64(Gamma_mem, bvadd64(R8, 4056bv64)) || L(mem, bvadd64(R8, 4056bv64))); + R8, Gamma_R8 := $load$18, Gamma_$load$18; call rely(); - load18, Gamma_load18 := memory_load32_le(mem, bvadd64(R8, 52bv64)), (gamma_load32(Gamma_mem, bvadd64(R8, 52bv64)) || L(mem, bvadd64(R8, 52bv64))); - R8, Gamma_R8 := zero_extend32_32(load18), Gamma_load18; - stack, Gamma_stack := memory_store32_le(stack, bvadd64(R31, 8bv64), R8[32:0]), gamma_store32(Gamma_stack, bvadd64(R31, 8bv64), Gamma_R8); - assume {:captureState "%00000315"} true; - R8, Gamma_R8 := 69632bv64, true; + $load$19, Gamma_$load$19 := memory_load64_le(mem, bvadd64(R9, 4072bv64)), (gamma_load64(Gamma_mem, bvadd64(R9, 4072bv64)) || L(mem, bvadd64(R9, 4072bv64))); + R9, Gamma_R9 := $load$19, Gamma_$load$19; call rely(); - load19, Gamma_load19 := memory_load32_le(mem, bvadd64(R8, 56bv64)), (gamma_load32(Gamma_mem, bvadd64(R8, 56bv64)) || L(mem, bvadd64(R8, 56bv64))); - R8, Gamma_R8 := zero_extend32_32(load19), Gamma_load19; - #4, Gamma_#4 := bvadd32(R8[32:0], 4294967295bv32), Gamma_R8; - VF, Gamma_VF := bvnot1(bvcomp33(sign_extend1_32(bvadd32(#4, 1bv32)), bvadd33(sign_extend1_32(R8[32:0]), 0bv33))), (Gamma_R8 && Gamma_#4); - CF, Gamma_CF := bvnot1(bvcomp33(zero_extend1_32(bvadd32(#4, 1bv32)), bvadd33(zero_extend1_32(R8[32:0]), 4294967296bv33))), (Gamma_R8 && Gamma_#4); - ZF, Gamma_ZF := bvcomp32(bvadd32(#4, 1bv32), 0bv32), Gamma_#4; - NF, Gamma_NF := bvadd32(#4, 1bv32)[32:31], Gamma_#4; - R8, Gamma_R8 := zero_extend32_32(bvadd32(#4, 1bv32)), Gamma_#4; + $load$20, Gamma_$load$20 := memory_load32_le(mem, R8), (gamma_load32(Gamma_mem, R8) || L(mem, R8)); + R8, Gamma_R8 := zero_extend32_32($load$20), Gamma_$load$20; + call rely(); + $load$21, Gamma_$load$21 := memory_load32_le(mem, R9), (gamma_load32(Gamma_mem, R9) || L(mem, R9)); + R9, Gamma_R9 := zero_extend32_32($load$21), Gamma_$load$21; + VF, Gamma_VF := 0bv1, true; + CF, Gamma_CF := 1bv1, true; + ZF, Gamma_ZF := bvcomp32(R8[32:0], 0bv32), Gamma_R8; + NF, Gamma_NF := R8[32:31], Gamma_R8; assert Gamma_ZF; - goto lmain_goto_l00000342, lmain_goto_l00000345; - lmain_goto_l00000345: - assume {:captureState "lmain_goto_l00000345"} true; - assume (bvcomp1(ZF, 1bv1) == 0bv1); - R8, Gamma_R8 := 1bv64, true; - goto l00000345; - l00000345: - assume {:captureState "l00000345"} true; - goto l00000348; - lmain_goto_l00000342: - assume {:captureState "lmain_goto_l00000342"} true; + goto lmain_goto_l000002a8, lmain_goto_l000002b0; + l000002b0: + assume {:captureState "l000002b0"} true; + R0, Gamma_R0 := zero_extend32_32(R9[32:0]), Gamma_R9; + goto l000002bc; + l000002a8: + assume {:captureState "l000002a8"} true; + R0, Gamma_R0 := 0bv64, true; + goto l000002bc; + l000002bc: + assume {:captureState "l000002bc"} true; + goto main_basil_return; + lmain_goto_l000002a8: + assume {:captureState "lmain_goto_l000002a8"} true; assume (bvcomp1(ZF, 1bv1) != 0bv1); - R8, Gamma_R8 := 0bv64, true; - goto l00000342; - l00000342: - assume {:captureState "l00000342"} true; - goto l00000348; - l00000348: - assume {:captureState "l00000348"} true; - assert Gamma_R8; - goto l00000348_goto_l00000350, l00000348_goto_l0000037a; - l00000348_goto_l0000037a: - assume {:captureState "l00000348_goto_l0000037a"} true; - assume (bvcomp1(R8[1:0], 1bv1) == 0bv1); - goto l0000037a; - l0000037a: - assume {:captureState "l0000037a"} true; - goto l0000037b; - l0000037b: - assume {:captureState "l0000037b"} true; - stack, Gamma_stack := memory_store32_le(stack, bvadd64(R31, 12bv64), 0bv32), gamma_store32(Gamma_stack, bvadd64(R31, 12bv64), true); - assume {:captureState "%00000383"} true; - goto l00000365; - l00000348_goto_l00000350: - assume {:captureState "l00000348_goto_l00000350"} true; - assume (bvcomp1(R8[1:0], 1bv1) != 0bv1); - load20, Gamma_load20 := memory_load32_le(stack, bvadd64(R31, 8bv64)), gamma_load32(Gamma_stack, bvadd64(R31, 8bv64)); - R8, Gamma_R8 := zero_extend32_32(load20), Gamma_load20; - stack, Gamma_stack := memory_store32_le(stack, bvadd64(R31, 12bv64), R8[32:0]), gamma_store32(Gamma_stack, bvadd64(R31, 12bv64), Gamma_R8); - assume {:captureState "%00000362"} true; - goto l00000350; - l00000350: - assume {:captureState "l00000350"} true; - goto l00000365; - l00000365: - assume {:captureState "l00000365"} true; - load21, Gamma_load21 := memory_load32_le(stack, bvadd64(R31, 12bv64)), gamma_load32(Gamma_stack, bvadd64(R31, 12bv64)); - R0, Gamma_R0 := zero_extend32_32(load21), Gamma_load21; - R31, Gamma_R31 := bvadd64(R31, 16bv64), Gamma_R31; - goto main_1812_basil_return; - main_1812_basil_return: - assume {:captureState "main_1812_basil_return"} true; + goto l000002a8; + lmain_goto_l000002b0: + assume {:captureState "lmain_goto_l000002b0"} true; + assume (bvcomp1(ZF, 1bv1) == 0bv1); + goto l000002b0; + main_basil_return: + assume {:captureState "main_basil_return"} true; return; } diff --git a/src/test/correct/basic_function_call_reader/clang/basic_function_call_reader.gts b/src/test/correct/basic_function_call_reader/clang/basic_function_call_reader.gts deleted file mode 100644 index baaa80f5c..000000000 Binary files a/src/test/correct/basic_function_call_reader/clang/basic_function_call_reader.gts and /dev/null differ diff --git a/src/test/correct/basic_function_call_reader/clang/basic_function_call_reader.md5sum b/src/test/correct/basic_function_call_reader/clang/basic_function_call_reader.md5sum new file mode 100644 index 000000000..67e62620a --- /dev/null +++ b/src/test/correct/basic_function_call_reader/clang/basic_function_call_reader.md5sum @@ -0,0 +1,5 @@ +b2bc8dec01632c68c5dddee07e5df94c correct/basic_function_call_reader/clang/a.out +0b59e3afbb12b421081c3648c8df6569 correct/basic_function_call_reader/clang/basic_function_call_reader.adt +01d0ada39065828c9033ab4b863713cd correct/basic_function_call_reader/clang/basic_function_call_reader.bir +8a702520e31dda8233ee01d6dd263dca correct/basic_function_call_reader/clang/basic_function_call_reader.relf +1ae383ffba6177e9f3e58e779e47d9b5 correct/basic_function_call_reader/clang/basic_function_call_reader.gts diff --git a/src/test/correct/basic_function_call_reader/clang/basic_function_call_reader.relf b/src/test/correct/basic_function_call_reader/clang/basic_function_call_reader.relf deleted file mode 100644 index 768598495..000000000 --- a/src/test/correct/basic_function_call_reader/clang/basic_function_call_reader.relf +++ /dev/null @@ -1,124 +0,0 @@ - -Relocation section '.rela.dyn' at offset 0x460 contains 8 entries: - Offset Info Type Symbol's Value Symbol's Name + Addend -0000000000010dc8 0000000000000403 R_AARCH64_RELATIVE 710 -0000000000010dd0 0000000000000403 R_AARCH64_RELATIVE 6c0 -0000000000010fd8 0000000000000403 R_AARCH64_RELATIVE 714 -0000000000011028 0000000000000403 R_AARCH64_RELATIVE 11028 -0000000000010fc0 0000000400000401 R_AARCH64_GLOB_DAT 0000000000000000 _ITM_deregisterTMCloneTable + 0 -0000000000010fc8 0000000500000401 R_AARCH64_GLOB_DAT 0000000000000000 __cxa_finalize@GLIBC_2.17 + 0 -0000000000010fd0 0000000600000401 R_AARCH64_GLOB_DAT 0000000000000000 __gmon_start__ + 0 -0000000000010fe0 0000000800000401 R_AARCH64_GLOB_DAT 0000000000000000 _ITM_registerTMCloneTable + 0 - -Relocation section '.rela.plt' at offset 0x520 contains 4 entries: - Offset Info Type Symbol's Value Symbol's Name + Addend -0000000000011000 0000000300000402 R_AARCH64_JUMP_SLOT 0000000000000000 __libc_start_main@GLIBC_2.34 + 0 -0000000000011008 0000000500000402 R_AARCH64_JUMP_SLOT 0000000000000000 __cxa_finalize@GLIBC_2.17 + 0 -0000000000011010 0000000600000402 R_AARCH64_JUMP_SLOT 0000000000000000 __gmon_start__ + 0 -0000000000011018 0000000700000402 R_AARCH64_JUMP_SLOT 0000000000000000 abort@GLIBC_2.17 + 0 - -Symbol table '.dynsym' contains 9 entries: - Num: Value Size Type Bind Vis Ndx Name - 0: 0000000000000000 0 NOTYPE LOCAL DEFAULT UND - 1: 0000000000000580 0 SECTION LOCAL DEFAULT 11 .init - 2: 0000000000011020 0 SECTION LOCAL DEFAULT 23 .data - 3: 0000000000000000 0 FUNC GLOBAL DEFAULT UND __libc_start_main@GLIBC_2.34 (2) - 4: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_deregisterTMCloneTable - 5: 0000000000000000 0 FUNC WEAK DEFAULT UND __cxa_finalize@GLIBC_2.17 (3) - 6: 0000000000000000 0 NOTYPE WEAK DEFAULT UND __gmon_start__ - 7: 0000000000000000 0 FUNC GLOBAL DEFAULT UND abort@GLIBC_2.17 (3) - 8: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_registerTMCloneTable - -Symbol table '.symtab' contains 91 entries: - Num: Value Size Type Bind Vis Ndx Name - 0: 0000000000000000 0 NOTYPE LOCAL DEFAULT UND - 1: 0000000000000238 0 SECTION LOCAL DEFAULT 1 .interp - 2: 0000000000000254 0 SECTION LOCAL DEFAULT 2 .note.gnu.build-id - 3: 0000000000000278 0 SECTION LOCAL DEFAULT 3 .note.ABI-tag - 4: 0000000000000298 0 SECTION LOCAL DEFAULT 4 .gnu.hash - 5: 00000000000002b8 0 SECTION LOCAL DEFAULT 5 .dynsym - 6: 0000000000000390 0 SECTION LOCAL DEFAULT 6 .dynstr - 7: 000000000000041e 0 SECTION LOCAL DEFAULT 7 .gnu.version - 8: 0000000000000430 0 SECTION LOCAL DEFAULT 8 .gnu.version_r - 9: 0000000000000460 0 SECTION LOCAL DEFAULT 9 .rela.dyn - 10: 0000000000000520 0 SECTION LOCAL DEFAULT 10 .rela.plt - 11: 0000000000000580 0 SECTION LOCAL DEFAULT 11 .init - 12: 00000000000005a0 0 SECTION LOCAL DEFAULT 12 .plt - 13: 0000000000000600 0 SECTION LOCAL DEFAULT 13 .text - 14: 0000000000000760 0 SECTION LOCAL DEFAULT 14 .fini - 15: 0000000000000774 0 SECTION LOCAL DEFAULT 15 .rodata - 16: 0000000000000778 0 SECTION LOCAL DEFAULT 16 .eh_frame_hdr - 17: 00000000000007b8 0 SECTION LOCAL DEFAULT 17 .eh_frame - 18: 0000000000010dc8 0 SECTION LOCAL DEFAULT 18 .init_array - 19: 0000000000010dd0 0 SECTION LOCAL DEFAULT 19 .fini_array - 20: 0000000000010dd8 0 SECTION LOCAL DEFAULT 20 .dynamic - 21: 0000000000010fb8 0 SECTION LOCAL DEFAULT 21 .got - 22: 0000000000010fe8 0 SECTION LOCAL DEFAULT 22 .got.plt - 23: 0000000000011020 0 SECTION LOCAL DEFAULT 23 .data - 24: 0000000000011030 0 SECTION LOCAL DEFAULT 24 .bss - 25: 0000000000000000 0 SECTION LOCAL DEFAULT 25 .comment - 26: 0000000000000000 0 FILE LOCAL DEFAULT ABS Scrt1.o - 27: 0000000000000278 0 NOTYPE LOCAL DEFAULT 3 $d - 28: 0000000000000278 32 OBJECT LOCAL DEFAULT 3 __abi_tag - 29: 0000000000000600 0 NOTYPE LOCAL DEFAULT 13 $x - 30: 00000000000007cc 0 NOTYPE LOCAL DEFAULT 17 $d - 31: 0000000000000774 0 NOTYPE LOCAL DEFAULT 15 $d - 32: 0000000000000000 0 FILE LOCAL DEFAULT ABS crti.o - 33: 0000000000000634 0 NOTYPE LOCAL DEFAULT 13 $x - 34: 0000000000000634 20 FUNC LOCAL DEFAULT 13 call_weak_fn - 35: 0000000000000580 0 NOTYPE LOCAL DEFAULT 11 $x - 36: 0000000000000760 0 NOTYPE LOCAL DEFAULT 14 $x - 37: 0000000000000000 0 FILE LOCAL DEFAULT ABS crtn.o - 38: 0000000000000590 0 NOTYPE LOCAL DEFAULT 11 $x - 39: 000000000000076c 0 NOTYPE LOCAL DEFAULT 14 $x - 40: 0000000000000000 0 FILE LOCAL DEFAULT ABS crtstuff.c - 41: 0000000000000650 0 NOTYPE LOCAL DEFAULT 13 $x - 42: 0000000000000650 0 FUNC LOCAL DEFAULT 13 deregister_tm_clones - 43: 0000000000000680 0 FUNC LOCAL DEFAULT 13 register_tm_clones - 44: 0000000000011028 0 NOTYPE LOCAL DEFAULT 23 $d - 45: 00000000000006c0 0 FUNC LOCAL DEFAULT 13 __do_global_dtors_aux - 46: 0000000000011030 1 OBJECT LOCAL DEFAULT 24 completed.0 - 47: 0000000000010dd0 0 NOTYPE LOCAL DEFAULT 19 $d - 48: 0000000000010dd0 0 OBJECT LOCAL DEFAULT 19 __do_global_dtors_aux_fini_array_entry - 49: 0000000000000710 0 FUNC LOCAL DEFAULT 13 frame_dummy - 50: 0000000000010dc8 0 NOTYPE LOCAL DEFAULT 18 $d - 51: 0000000000010dc8 0 OBJECT LOCAL DEFAULT 18 __frame_dummy_init_array_entry - 52: 00000000000007e0 0 NOTYPE LOCAL DEFAULT 17 $d - 53: 0000000000011030 0 NOTYPE LOCAL DEFAULT 24 $d - 54: 0000000000000000 0 FILE LOCAL DEFAULT ABS basic_function_call_reader.c - 55: 0000000000000714 0 NOTYPE LOCAL DEFAULT 13 $x.0 - 56: 0000000000011034 0 NOTYPE LOCAL DEFAULT 24 $d.1 - 57: 000000000000002a 0 NOTYPE LOCAL DEFAULT 25 $d.2 - 58: 0000000000000840 0 NOTYPE LOCAL DEFAULT 17 $d.3 - 59: 0000000000000000 0 FILE LOCAL DEFAULT ABS crtstuff.c - 60: 000000000000086c 0 NOTYPE LOCAL DEFAULT 17 $d - 61: 000000000000086c 0 OBJECT LOCAL DEFAULT 17 __FRAME_END__ - 62: 0000000000000000 0 FILE LOCAL DEFAULT ABS - 63: 0000000000010dd8 0 OBJECT LOCAL DEFAULT ABS _DYNAMIC - 64: 0000000000000778 0 NOTYPE LOCAL DEFAULT 16 __GNU_EH_FRAME_HDR - 65: 0000000000010fb8 0 OBJECT LOCAL DEFAULT ABS _GLOBAL_OFFSET_TABLE_ - 66: 00000000000005a0 0 NOTYPE LOCAL DEFAULT 12 $x - 67: 0000000000000000 0 FUNC GLOBAL DEFAULT UND __libc_start_main@GLIBC_2.34 - 68: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_deregisterTMCloneTable - 69: 0000000000011020 0 NOTYPE WEAK DEFAULT 23 data_start - 70: 0000000000011030 0 NOTYPE GLOBAL DEFAULT 24 __bss_start__ - 71: 0000000000000000 0 FUNC WEAK DEFAULT UND __cxa_finalize@GLIBC_2.17 - 72: 0000000000011040 0 NOTYPE GLOBAL DEFAULT 24 _bss_end__ - 73: 0000000000011030 0 NOTYPE GLOBAL DEFAULT 23 _edata - 74: 0000000000011038 4 OBJECT GLOBAL DEFAULT 24 x - 75: 0000000000000760 0 FUNC GLOBAL HIDDEN 14 _fini - 76: 0000000000011040 0 NOTYPE GLOBAL DEFAULT 24 __bss_end__ - 77: 0000000000011020 0 NOTYPE GLOBAL DEFAULT 23 __data_start - 78: 0000000000000000 0 NOTYPE WEAK DEFAULT UND __gmon_start__ - 79: 0000000000011028 0 OBJECT GLOBAL HIDDEN 23 __dso_handle - 80: 0000000000000000 0 FUNC GLOBAL DEFAULT UND abort@GLIBC_2.17 - 81: 0000000000000774 4 OBJECT GLOBAL DEFAULT 15 _IO_stdin_used - 82: 0000000000011040 0 NOTYPE GLOBAL DEFAULT 24 _end - 83: 0000000000000600 52 FUNC GLOBAL DEFAULT 13 _start - 84: 0000000000011040 0 NOTYPE GLOBAL DEFAULT 24 __end__ - 85: 0000000000011034 4 OBJECT GLOBAL DEFAULT 24 y - 86: 0000000000011030 0 NOTYPE GLOBAL DEFAULT 24 __bss_start - 87: 0000000000000714 76 FUNC GLOBAL DEFAULT 13 main - 88: 0000000000011030 0 OBJECT GLOBAL HIDDEN 23 __TMC_END__ - 89: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_registerTMCloneTable - 90: 0000000000000580 0 FUNC GLOBAL HIDDEN 11 _init diff --git a/src/test/correct/basic_function_call_reader/clang/basic_function_call_reader_gtirb.expected b/src/test/correct/basic_function_call_reader/clang/basic_function_call_reader_gtirb.expected index 35ed51dd3..15eb6bde6 100644 --- a/src/test/correct/basic_function_call_reader/clang/basic_function_call_reader_gtirb.expected +++ b/src/test/correct/basic_function_call_reader/clang/basic_function_call_reader_gtirb.expected @@ -2,40 +2,34 @@ var {:extern} CF: bv1; var {:extern} Gamma_CF: bool; var {:extern} Gamma_NF: bool; var {:extern} Gamma_R0: bool; -var {:extern} Gamma_R31: bool; var {:extern} Gamma_R8: bool; +var {:extern} Gamma_R9: bool; var {:extern} Gamma_VF: bool; var {:extern} Gamma_ZF: bool; var {:extern} Gamma_mem: [bv64]bool; -var {:extern} Gamma_stack: [bv64]bool; var {:extern} NF: bv1; var {:extern} R0: bv64; -var {:extern} R31: bv64; var {:extern} R8: bv64; +var {:extern} R9: bv64; var {:extern} VF: bv1; var {:extern} ZF: bv1; var {:extern} mem: [bv64]bv8; -var {:extern} stack: [bv64]bv8; const {:extern} $x_addr: bv64; -axiom ($x_addr == 69688bv64); +axiom ($x_addr == 131096bv64); const {:extern} $y_addr: bv64; -axiom ($y_addr == 69684bv64); +axiom ($y_addr == 131092bv64); function {:extern} L(mem$in: [bv64]bv8, index: bv64) returns (bool) { (if (index == $y_addr) then (memory_load32_le(mem$in, $x_addr) == 1bv32) else (if (index == $x_addr) then true else false)) } -function {:extern} {:bvbuiltin "bvadd"} bvadd32(bv32, bv32) returns (bv32); -function {:extern} {:bvbuiltin "bvadd"} bvadd33(bv33, bv33) returns (bv33); function {:extern} {:bvbuiltin "bvadd"} bvadd64(bv64, bv64) returns (bv64); function {:extern} {:bvbuiltin "bvcomp"} bvcomp32(bv32, bv32) returns (bv1); -function {:extern} {:bvbuiltin "bvcomp"} bvcomp33(bv33, bv33) returns (bv1); -function {:extern} {:bvbuiltin "bvnot"} bvnot1(bv1) returns (bv1); function {:extern} gamma_load32(gammaMap: [bv64]bool, index: bv64) returns (bool) { (gammaMap[bvadd64(index, 3bv64)] && (gammaMap[bvadd64(index, 2bv64)] && (gammaMap[bvadd64(index, 1bv64)] && gammaMap[index]))) } -function {:extern} gamma_store32(gammaMap: [bv64]bool, index: bv64, value: bool) returns ([bv64]bool) { - gammaMap[index := value][bvadd64(index, 1bv64) := value][bvadd64(index, 2bv64) := value][bvadd64(index, 3bv64) := value] +function {:extern} gamma_load64(gammaMap: [bv64]bool, index: bv64) returns (bool) { + (gammaMap[bvadd64(index, 7bv64)] && (gammaMap[bvadd64(index, 6bv64)] && (gammaMap[bvadd64(index, 5bv64)] && (gammaMap[bvadd64(index, 4bv64)] && (gammaMap[bvadd64(index, 3bv64)] && (gammaMap[bvadd64(index, 2bv64)] && (gammaMap[bvadd64(index, 1bv64)] && gammaMap[index]))))))) } function {:extern} memory_load32_le(memory: [bv64]bv8, index: bv64) returns (bv32) { @@ -46,22 +40,19 @@ function {:extern} memory_load64_le(memory: [bv64]bv8, index: bv64) returns (bv6 (memory[bvadd64(index, 7bv64)] ++ (memory[bvadd64(index, 6bv64)] ++ (memory[bvadd64(index, 5bv64)] ++ (memory[bvadd64(index, 4bv64)] ++ (memory[bvadd64(index, 3bv64)] ++ (memory[bvadd64(index, 2bv64)] ++ (memory[bvadd64(index, 1bv64)] ++ memory[index]))))))) } -function {:extern} memory_store32_le(memory: [bv64]bv8, index: bv64, value: bv32) returns ([bv64]bv8) { - memory[index := value[8:0]][bvadd64(index, 1bv64) := value[16:8]][bvadd64(index, 2bv64) := value[24:16]][bvadd64(index, 3bv64) := value[32:24]] -} - -function {:extern} {:bvbuiltin "zero_extend 1"} zero_extend1_32(bv32) returns (bv33); function {:extern} {:bvbuiltin "zero_extend 32"} zero_extend32_32(bv32) returns (bv64); procedure {:extern} rely(); modifies Gamma_mem, mem; ensures (forall i: bv64 :: (((mem[i] == old(mem[i])) ==> (Gamma_mem[i] == old(Gamma_mem[i]))))); ensures ((old(memory_load32_le(mem, $x_addr)) == 0bv32) ==> (memory_load32_le(mem, $x_addr) == 0bv32)); ensures (old(gamma_load32(Gamma_mem, $y_addr)) ==> ((memory_load32_le(mem, $x_addr) == 0bv32) || gamma_load32(Gamma_mem, $y_addr))); - free ensures (memory_load32_le(mem, 1908bv64) == 131073bv32); - free ensures (memory_load64_le(mem, 69064bv64) == 1808bv64); - free ensures (memory_load64_le(mem, 69072bv64) == 1728bv64); - free ensures (memory_load64_le(mem, 69592bv64) == 1812bv64); - free ensures (memory_load64_le(mem, 69672bv64) == 69672bv64); + free ensures (memory_load32_le(mem, 2316bv64) == 131073bv32); + free ensures (memory_load64_le(mem, 130424bv64) == 2256bv64); + free ensures (memory_load64_le(mem, 130432bv64) == 2176bv64); + free ensures (memory_load64_le(mem, 131032bv64) == 131096bv64); + free ensures (memory_load64_le(mem, 131048bv64) == 131092bv64); + free ensures (memory_load64_le(mem, 131056bv64) == 2260bv64); + free ensures (memory_load64_le(mem, 131080bv64) == 131080bv64); procedure {:extern} rely_transitive(); modifies Gamma_mem, mem; @@ -91,101 +82,69 @@ implementation {:extern} guarantee_reflexive() assert (memory_load32_le(mem, $y_addr) == memory_load32_le(mem, $y_addr)); } -procedure main_1812(); - modifies CF, Gamma_CF, Gamma_NF, Gamma_R0, Gamma_R31, Gamma_R8, Gamma_VF, Gamma_ZF, Gamma_mem, Gamma_stack, NF, R0, R31, R8, VF, ZF, mem, stack; - free requires (memory_load64_le(mem, 69664bv64) == 0bv64); - free requires (memory_load64_le(mem, 69672bv64) == 69672bv64); - free requires (memory_load32_le(mem, 1908bv64) == 131073bv32); - free requires (memory_load64_le(mem, 69064bv64) == 1808bv64); - free requires (memory_load64_le(mem, 69072bv64) == 1728bv64); - free requires (memory_load64_le(mem, 69592bv64) == 1812bv64); - free requires (memory_load64_le(mem, 69672bv64) == 69672bv64); - free ensures (Gamma_R31 == old(Gamma_R31)); - free ensures (R31 == old(R31)); - free ensures (memory_load32_le(mem, 1908bv64) == 131073bv32); - free ensures (memory_load64_le(mem, 69064bv64) == 1808bv64); - free ensures (memory_load64_le(mem, 69072bv64) == 1728bv64); - free ensures (memory_load64_le(mem, 69592bv64) == 1812bv64); - free ensures (memory_load64_le(mem, 69672bv64) == 69672bv64); +procedure main(); + modifies CF, Gamma_CF, Gamma_NF, Gamma_R0, Gamma_R8, Gamma_R9, Gamma_VF, Gamma_ZF, Gamma_mem, NF, R0, R8, R9, VF, ZF, mem; + free requires (memory_load64_le(mem, 131072bv64) == 0bv64); + free requires (memory_load64_le(mem, 131080bv64) == 131080bv64); + free requires (memory_load32_le(mem, 2316bv64) == 131073bv32); + free requires (memory_load64_le(mem, 130424bv64) == 2256bv64); + free requires (memory_load64_le(mem, 130432bv64) == 2176bv64); + free requires (memory_load64_le(mem, 131032bv64) == 131096bv64); + free requires (memory_load64_le(mem, 131048bv64) == 131092bv64); + free requires (memory_load64_le(mem, 131056bv64) == 2260bv64); + free requires (memory_load64_le(mem, 131080bv64) == 131080bv64); + free ensures (memory_load32_le(mem, 2316bv64) == 131073bv32); + free ensures (memory_load64_le(mem, 130424bv64) == 2256bv64); + free ensures (memory_load64_le(mem, 130432bv64) == 2176bv64); + free ensures (memory_load64_le(mem, 131032bv64) == 131096bv64); + free ensures (memory_load64_le(mem, 131048bv64) == 131092bv64); + free ensures (memory_load64_le(mem, 131056bv64) == 2260bv64); + free ensures (memory_load64_le(mem, 131080bv64) == 131080bv64); -implementation main_1812() +implementation main() { - var Cse0__5_0_7: bv32; - var Gamma_Cse0__5_0_7: bool; - var Gamma_load4: bool; - var Gamma_load5: bool; - var Gamma_load6: bool; - var Gamma_load7: bool; - var load4: bv32; - var load5: bv32; - var load6: bv32; - var load7: bv32; - main_1812__0__p64I2ZUnTxGzbzeacDZqwg: - assume {:captureState "main_1812__0__p64I2ZUnTxGzbzeacDZqwg"} true; - R31, Gamma_R31 := bvadd64(R31, 18446744073709551600bv64), Gamma_R31; - stack, Gamma_stack := memory_store32_le(stack, bvadd64(R31, 12bv64), 0bv32), gamma_store32(Gamma_stack, bvadd64(R31, 12bv64), true); - assume {:captureState "1816_0"} true; - R8, Gamma_R8 := 69632bv64, true; + var $load5: bv64; + var $load6: bv64; + var $load7: bv32; + var $load8: bv32; + var Gamma_$load5: bool; + var Gamma_$load6: bool; + var Gamma_$load7: bool; + var Gamma_$load8: bool; + $main$__0__$D9t2gNJrSmyMH3GAVRe3IQ: + assume {:captureState "$main$__0__$D9t2gNJrSmyMH3GAVRe3IQ"} true; + R8, Gamma_R8 := 126976bv64, true; + R9, Gamma_R9 := 126976bv64, true; + call rely(); + $load5, Gamma_$load5 := memory_load64_le(mem, bvadd64(R8, 4056bv64)), (gamma_load64(Gamma_mem, bvadd64(R8, 4056bv64)) || L(mem, bvadd64(R8, 4056bv64))); + R8, Gamma_R8 := $load5, Gamma_$load5; call rely(); - load4, Gamma_load4 := memory_load32_le(mem, bvadd64(R8, 52bv64)), (gamma_load32(Gamma_mem, bvadd64(R8, 52bv64)) || L(mem, bvadd64(R8, 52bv64))); - R8, Gamma_R8 := zero_extend32_32(load4), Gamma_load4; - stack, Gamma_stack := memory_store32_le(stack, bvadd64(R31, 8bv64), R8[32:0]), gamma_store32(Gamma_stack, bvadd64(R31, 8bv64), Gamma_R8); - assume {:captureState "1828_0"} true; - R8, Gamma_R8 := 69632bv64, true; + $load6, Gamma_$load6 := memory_load64_le(mem, bvadd64(R9, 4072bv64)), (gamma_load64(Gamma_mem, bvadd64(R9, 4072bv64)) || L(mem, bvadd64(R9, 4072bv64))); + R9, Gamma_R9 := $load6, Gamma_$load6; call rely(); - load5, Gamma_load5 := memory_load32_le(mem, bvadd64(R8, 56bv64)), (gamma_load32(Gamma_mem, bvadd64(R8, 56bv64)) || L(mem, bvadd64(R8, 56bv64))); - R8, Gamma_R8 := zero_extend32_32(load5), Gamma_load5; - Cse0__5_0_7, Gamma_Cse0__5_0_7 := bvadd32(R8[32:0], 0bv32), Gamma_R8; - VF, Gamma_VF := bvnot1(bvcomp32(Cse0__5_0_7, Cse0__5_0_7)), Gamma_Cse0__5_0_7; - CF, Gamma_CF := bvnot1(bvcomp33(zero_extend1_32(Cse0__5_0_7), bvadd33(zero_extend1_32(R8[32:0]), 4294967296bv33))), (Gamma_R8 && Gamma_Cse0__5_0_7); - ZF, Gamma_ZF := bvcomp32(Cse0__5_0_7, 0bv32), Gamma_Cse0__5_0_7; - NF, Gamma_NF := Cse0__5_0_7[32:31], Gamma_Cse0__5_0_7; - R8, Gamma_R8 := zero_extend32_32(Cse0__5_0_7), Gamma_Cse0__5_0_7; + $load7, Gamma_$load7 := memory_load32_le(mem, R8), (gamma_load32(Gamma_mem, R8) || L(mem, R8)); + R8, Gamma_R8 := zero_extend32_32($load7), Gamma_$load7; + call rely(); + $load8, Gamma_$load8 := memory_load32_le(mem, R9), (gamma_load32(Gamma_mem, R9) || L(mem, R9)); + R9, Gamma_R9 := zero_extend32_32($load8), Gamma_$load8; + VF, Gamma_VF := 0bv1, true; + CF, Gamma_CF := 1bv1, true; + ZF, Gamma_ZF := bvcomp32(R8[32:0], 0bv32), Gamma_R8; + NF, Gamma_NF := R8[32:31], Gamma_R8; assert Gamma_ZF; - goto main_1812__0__p64I2ZUnTxGzbzeacDZqwg$__0, main_1812__0__p64I2ZUnTxGzbzeacDZqwg$__1; - main_1812__0__p64I2ZUnTxGzbzeacDZqwg$__1: - assume {:captureState "main_1812__0__p64I2ZUnTxGzbzeacDZqwg$__1"} true; - assume (!(ZF == 1bv1)); - R8, Gamma_R8 := 1bv64, true; - assert Gamma_R8; - goto main_1812__0__p64I2ZUnTxGzbzeacDZqwg_goto_main_1812__3__NTeZmOi8Sy2TG2_DQEytfQ, main_1812__0__p64I2ZUnTxGzbzeacDZqwg_goto_main_1812__1__bKbuo5TmTwOMb5a3DV3xHQ; - main_1812__0__p64I2ZUnTxGzbzeacDZqwg$__0: - assume {:captureState "main_1812__0__p64I2ZUnTxGzbzeacDZqwg$__0"} true; + goto $main$__0__$D9t2gNJrSmyMH3GAVRe3IQ$__0, $main$__0__$D9t2gNJrSmyMH3GAVRe3IQ$__1; + $main$__0__$D9t2gNJrSmyMH3GAVRe3IQ$__0: + assume {:captureState "$main$__0__$D9t2gNJrSmyMH3GAVRe3IQ$__0"} true; assume (ZF == 1bv1); - R8, Gamma_R8 := 0bv64, true; - assert Gamma_R8; - goto main_1812__0__p64I2ZUnTxGzbzeacDZqwg_goto_main_1812__3__NTeZmOi8Sy2TG2_DQEytfQ, main_1812__0__p64I2ZUnTxGzbzeacDZqwg_goto_main_1812__1__bKbuo5TmTwOMb5a3DV3xHQ; - main_1812__0__p64I2ZUnTxGzbzeacDZqwg_goto_main_1812__1__bKbuo5TmTwOMb5a3DV3xHQ: - assume {:captureState "main_1812__0__p64I2ZUnTxGzbzeacDZqwg_goto_main_1812__1__bKbuo5TmTwOMb5a3DV3xHQ"} true; - assume (!(R8[1:0] == 1bv1)); - goto main_1812__1__bKbuo5TmTwOMb5a3DV3xHQ; - main_1812__1__bKbuo5TmTwOMb5a3DV3xHQ: - assume {:captureState "main_1812__1__bKbuo5TmTwOMb5a3DV3xHQ"} true; - goto main_1812__2__aBEoJbwOSm2rHPYmBa6e_A; - main_1812__2__aBEoJbwOSm2rHPYmBa6e_A: - assume {:captureState "main_1812__2__aBEoJbwOSm2rHPYmBa6e_A"} true; - stack, Gamma_stack := memory_store32_le(stack, bvadd64(R31, 12bv64), 0bv32), gamma_store32(Gamma_stack, bvadd64(R31, 12bv64), true); - assume {:captureState "1856_0"} true; - goto main_1812__4__rZXVe~PNSWyDYBX4vnXb~w; - main_1812__0__p64I2ZUnTxGzbzeacDZqwg_goto_main_1812__3__NTeZmOi8Sy2TG2_DQEytfQ: - assume {:captureState "main_1812__0__p64I2ZUnTxGzbzeacDZqwg_goto_main_1812__3__NTeZmOi8Sy2TG2_DQEytfQ"} true; - assume (R8[1:0] == 1bv1); - load7, Gamma_load7 := memory_load32_le(stack, bvadd64(R31, 8bv64)), gamma_load32(Gamma_stack, bvadd64(R31, 8bv64)); - R8, Gamma_R8 := zero_extend32_32(load7), Gamma_load7; - stack, Gamma_stack := memory_store32_le(stack, bvadd64(R31, 12bv64), R8[32:0]), gamma_store32(Gamma_stack, bvadd64(R31, 12bv64), Gamma_R8); - assume {:captureState "1868_0"} true; - goto main_1812__3__NTeZmOi8Sy2TG2_DQEytfQ; - main_1812__3__NTeZmOi8Sy2TG2_DQEytfQ: - assume {:captureState "main_1812__3__NTeZmOi8Sy2TG2_DQEytfQ"} true; - goto main_1812__4__rZXVe~PNSWyDYBX4vnXb~w; - main_1812__4__rZXVe~PNSWyDYBX4vnXb~w: - assume {:captureState "main_1812__4__rZXVe~PNSWyDYBX4vnXb~w"} true; - load6, Gamma_load6 := memory_load32_le(stack, bvadd64(R31, 12bv64)), gamma_load32(Gamma_stack, bvadd64(R31, 12bv64)); - R0, Gamma_R0 := zero_extend32_32(load6), Gamma_load6; - R31, Gamma_R31 := bvadd64(R31, 16bv64), Gamma_R31; - goto main_1812_basil_return; - main_1812_basil_return: - assume {:captureState "main_1812_basil_return"} true; + R0, Gamma_R0 := 0bv64, true; + goto main_basil_return; + $main$__0__$D9t2gNJrSmyMH3GAVRe3IQ$__1: + assume {:captureState "$main$__0__$D9t2gNJrSmyMH3GAVRe3IQ$__1"} true; + assume (!(ZF == 1bv1)); + R0, Gamma_R0 := zero_extend32_32(R9[32:0]), Gamma_R9; + goto main_basil_return; + main_basil_return: + assume {:captureState "main_basil_return"} true; return; } diff --git a/src/test/correct/basic_function_call_reader/clang_O2/basic_function_call_reader.adt b/src/test/correct/basic_function_call_reader/clang_O2/basic_function_call_reader.adt deleted file mode 100644 index a199eaa65..000000000 --- a/src/test/correct/basic_function_call_reader/clang_O2/basic_function_call_reader.adt +++ /dev/null @@ -1,524 +0,0 @@ -Project(Attrs([Attr("filename","\"clang_O2/basic_function_call_reader.out\""), -Attr("image-specification","(declare abi (name str))\n(declare arch (name str))\n(declare base-address (addr int))\n(declare bias (off int))\n(declare bits (size int))\n(declare code-region (addr int) (size int) (off int))\n(declare code-start (addr int))\n(declare entry-point (addr int))\n(declare external-reference (addr int) (name str))\n(declare format (name str))\n(declare is-executable (flag bool))\n(declare is-little-endian (flag bool))\n(declare llvm:base-address (addr int))\n(declare llvm:code-entry (name str) (off int) (size int))\n(declare llvm:coff-import-library (name str))\n(declare llvm:coff-virtual-section-header (name str) (addr int) (size int))\n(declare llvm:elf-program-header (name str) (off int) (size int))\n(declare llvm:elf-program-header-flags (name str) (ld bool) (r bool) \n (w bool) (x bool))\n(declare llvm:elf-virtual-program-header (name str) (addr int) (size int))\n(declare llvm:entry-point (addr int))\n(declare llvm:macho-symbol (name str) (value int))\n(declare llvm:name-reference (at int) (name str))\n(declare llvm:relocation (at int) (addr int))\n(declare llvm:section-entry (name str) (addr int) (size int) (off int))\n(declare llvm:section-flags (name str) (r bool) (w bool) (x bool))\n(declare llvm:segment-command (name str) (off int) (size int))\n(declare llvm:segment-command-flags (name str) (r bool) (w bool) (x bool))\n(declare llvm:symbol-entry (name str) (addr int) (size int) (off int)\n (value int))\n(declare llvm:virtual-segment-command (name str) (addr int) (size int))\n(declare mapped (addr int) (size int) (off int))\n(declare named-region (addr int) (size int) (name str))\n(declare named-symbol (addr int) (name str))\n(declare require (name str))\n(declare section (addr int) (size int))\n(declare segment (addr int) (size int) (r bool) (w bool) (x bool))\n(declare subarch (name str))\n(declare symbol-chunk (addr int) (size int) (root int))\n(declare symbol-value (addr int) (value int))\n(declare system (name str))\n(declare vendor (name str))\n\n(abi unknown)\n(arch aarch64)\n(base-address 0)\n(bias 0)\n(bits 64)\n(code-region 1840 20 1840)\n(code-region 1536 304 1536)\n(code-region 1440 96 1440)\n(code-region 1408 24 1408)\n(code-start 1588)\n(code-start 1536)\n(code-start 1812)\n(entry-point 1536)\n(external-reference 69568 _ITM_deregisterTMCloneTable)\n(external-reference 69576 __cxa_finalize)\n(external-reference 69584 __gmon_start__)\n(external-reference 69600 _ITM_registerTMCloneTable)\n(external-reference 69632 __libc_start_main)\n(external-reference 69640 __cxa_finalize)\n(external-reference 69648 __gmon_start__)\n(external-reference 69656 abort)\n(format elf)\n(is-executable true)\n(is-little-endian true)\n(llvm:base-address 0)\n(llvm:code-entry abort 0 0)\n(llvm:code-entry __cxa_finalize 0 0)\n(llvm:code-entry __libc_start_main 0 0)\n(llvm:code-entry _init 1408 0)\n(llvm:code-entry main 1812 28)\n(llvm:code-entry _start 1536 52)\n(llvm:code-entry abort@GLIBC_2.17 0 0)\n(llvm:code-entry _fini 1840 0)\n(llvm:code-entry __cxa_finalize@GLIBC_2.17 0 0)\n(llvm:code-entry __libc_start_main@GLIBC_2.34 0 0)\n(llvm:code-entry frame_dummy 1808 0)\n(llvm:code-entry __do_global_dtors_aux 1728 0)\n(llvm:code-entry register_tm_clones 1664 0)\n(llvm:code-entry deregister_tm_clones 1616 0)\n(llvm:code-entry call_weak_fn 1588 20)\n(llvm:code-entry .fini 1840 20)\n(llvm:code-entry .text 1536 304)\n(llvm:code-entry .plt 1440 96)\n(llvm:code-entry .init 1408 24)\n(llvm:elf-program-header 08 3528 568)\n(llvm:elf-program-header 07 0 0)\n(llvm:elf-program-header 06 1864 60)\n(llvm:elf-program-header 05 596 68)\n(llvm:elf-program-header 04 3544 480)\n(llvm:elf-program-header 03 3528 616)\n(llvm:elf-program-header 02 0 2108)\n(llvm:elf-program-header 01 568 27)\n(llvm:elf-program-header 00 64 504)\n(llvm:elf-program-header-flags 08 false true false false)\n(llvm:elf-program-header-flags 07 false true true false)\n(llvm:elf-program-header-flags 06 false true false false)\n(llvm:elf-program-header-flags 05 false true false false)\n(llvm:elf-program-header-flags 04 false true true false)\n(llvm:elf-program-header-flags 03 true true true false)\n(llvm:elf-program-header-flags 02 true true false true)\n(llvm:elf-program-header-flags 01 false true false false)\n(llvm:elf-program-header-flags 00 false true false false)\n(llvm:elf-virtual-program-header 08 69064 568)\n(llvm:elf-virtual-program-header 07 0 0)\n(llvm:elf-virtual-program-header 06 1864 60)\n(llvm:elf-virtual-program-header 05 596 68)\n(llvm:elf-virtual-program-header 04 69080 480)\n(llvm:elf-virtual-program-header 03 69064 632)\n(llvm:elf-virtual-program-header 02 0 2108)\n(llvm:elf-virtual-program-header 01 568 27)\n(llvm:elf-virtual-program-header 00 64 504)\n(llvm:entry-point 1536)\n(llvm:name-reference 69656 abort)\n(llvm:name-reference 69648 __gmon_start__)\n(llvm:name-reference 69640 __cxa_finalize)\n(llvm:name-reference 69632 __libc_start_main)\n(llvm:name-reference 69600 _ITM_registerTMCloneTable)\n(llvm:name-reference 69584 __gmon_start__)\n(llvm:name-reference 69576 __cxa_finalize)\n(llvm:name-reference 69568 _ITM_deregisterTMCloneTable)\n(llvm:section-entry .shstrtab 0 259 6982)\n(llvm:section-entry .strtab 0 582 6400)\n(llvm:section-entry .symtab 0 2184 4216)\n(llvm:section-entry .comment 0 71 4144)\n(llvm:section-entry .bss 69680 16 4144)\n(llvm:section-entry .data 69664 16 4128)\n(llvm:section-entry .got.plt 69608 56 4072)\n(llvm:section-entry .got 69560 48 4024)\n(llvm:section-entry .dynamic 69080 480 3544)\n(llvm:section-entry .fini_array 69072 8 3536)\n(llvm:section-entry .init_array 69064 8 3528)\n(llvm:section-entry .eh_frame 1928 180 1928)\n(llvm:section-entry .eh_frame_hdr 1864 60 1864)\n(llvm:section-entry .rodata 1860 4 1860)\n(llvm:section-entry .fini 1840 20 1840)\n(llvm:section-entry .text 1536 304 1536)\n(llvm:section-entry .plt 1440 96 1440)\n(llvm:section-entry .init 1408 24 1408)\n(llvm:section-entry .rela.plt 1312 96 1312)\n(llvm:section-entry .rela.dyn 1120 192 1120)\n(llvm:section-entry .gnu.version_r 1072 48 1072)\n(llvm:section-entry .gnu.version 1054 18 1054)\n(llvm:section-entry .dynstr 912 141 912)\n(llvm:section-entry .dynsym 696 216 696)\n(llvm:section-entry .gnu.hash 664 28 664)\n(llvm:section-entry .note.ABI-tag 632 32 632)\n(llvm:section-entry .note.gnu.build-id 596 36 596)\n(llvm:section-entry .interp 568 27 568)\n(llvm:section-flags .shstrtab true false false)\n(llvm:section-flags .strtab true false false)\n(llvm:section-flags .symtab true false false)\n(llvm:section-flags .comment true false false)\n(llvm:section-flags .bss true true false)\n(llvm:section-flags .data true true false)\n(llvm:section-flags .got.plt true true false)\n(llvm:section-flags .got true true false)\n(llvm:section-flags .dynamic true true false)\n(llvm:section-flags .fini_array true true false)\n(llvm:section-flags .init_array true true false)\n(llvm:section-flags .eh_frame true false false)\n(llvm:section-flags .eh_frame_hdr true false false)\n(llvm:section-flags .rodata true false false)\n(llvm:section-flags .fini true false true)\n(llvm:section-flags .text true false true)\n(llvm:section-flags .plt true false true)\n(llvm:section-flags .init true false true)\n(llvm:section-flags .rela.plt true false false)\n(llvm:section-flags .rela.dyn true false false)\n(llvm:section-flags .gnu.version_r true false false)\n(llvm:section-flags .gnu.version true false false)\n(llvm:section-flags .dynstr true false false)\n(llvm:section-flags .dynsym true false false)\n(llvm:section-flags .gnu.hash true false false)\n(llvm:section-flags .note.ABI-tag true false false)\n(llvm:section-flags .note.gnu.build-id true false false)\n(llvm:section-flags .interp true false false)\n(llvm:symbol-entry abort 0 0 0 0)\n(llvm:symbol-entry __cxa_finalize 0 0 0 0)\n(llvm:symbol-entry __libc_start_main 0 0 0 0)\n(llvm:symbol-entry _init 1408 0 1408 1408)\n(llvm:symbol-entry main 1812 28 1812 1812)\n(llvm:symbol-entry _start 1536 52 1536 1536)\n(llvm:symbol-entry abort@GLIBC_2.17 0 0 0 0)\n(llvm:symbol-entry _fini 1840 0 1840 1840)\n(llvm:symbol-entry __cxa_finalize@GLIBC_2.17 0 0 0 0)\n(llvm:symbol-entry __libc_start_main@GLIBC_2.34 0 0 0 0)\n(llvm:symbol-entry frame_dummy 1808 0 1808 1808)\n(llvm:symbol-entry __do_global_dtors_aux 1728 0 1728 1728)\n(llvm:symbol-entry register_tm_clones 1664 0 1664 1664)\n(llvm:symbol-entry deregister_tm_clones 1616 0 1616 1616)\n(llvm:symbol-entry call_weak_fn 1588 20 1588 1588)\n(mapped 0 2108 0)\n(mapped 69064 616 3528)\n(named-region 0 2108 02)\n(named-region 69064 632 03)\n(named-region 568 27 .interp)\n(named-region 596 36 .note.gnu.build-id)\n(named-region 632 32 .note.ABI-tag)\n(named-region 664 28 .gnu.hash)\n(named-region 696 216 .dynsym)\n(named-region 912 141 .dynstr)\n(named-region 1054 18 .gnu.version)\n(named-region 1072 48 .gnu.version_r)\n(named-region 1120 192 .rela.dyn)\n(named-region 1312 96 .rela.plt)\n(named-region 1408 24 .init)\n(named-region 1440 96 .plt)\n(named-region 1536 304 .text)\n(named-region 1840 20 .fini)\n(named-region 1860 4 .rodata)\n(named-region 1864 60 .eh_frame_hdr)\n(named-region 1928 180 .eh_frame)\n(named-region 69064 8 .init_array)\n(named-region 69072 8 .fini_array)\n(named-region 69080 480 .dynamic)\n(named-region 69560 48 .got)\n(named-region 69608 56 .got.plt)\n(named-region 69664 16 .data)\n(named-region 69680 16 .bss)\n(named-region 0 71 .comment)\n(named-region 0 2184 .symtab)\n(named-region 0 582 .strtab)\n(named-region 0 259 .shstrtab)\n(named-symbol 1588 call_weak_fn)\n(named-symbol 1616 deregister_tm_clones)\n(named-symbol 1664 register_tm_clones)\n(named-symbol 1728 __do_global_dtors_aux)\n(named-symbol 1808 frame_dummy)\n(named-symbol 0 __libc_start_main@GLIBC_2.34)\n(named-symbol 0 __cxa_finalize@GLIBC_2.17)\n(named-symbol 1840 _fini)\n(named-symbol 0 abort@GLIBC_2.17)\n(named-symbol 1536 _start)\n(named-symbol 1812 main)\n(named-symbol 1408 _init)\n(named-symbol 0 __libc_start_main)\n(named-symbol 0 __cxa_finalize)\n(named-symbol 0 abort)\n(require libc.so.6)\n(section 568 27)\n(section 596 36)\n(section 632 32)\n(section 664 28)\n(section 696 216)\n(section 912 141)\n(section 1054 18)\n(section 1072 48)\n(section 1120 192)\n(section 1312 96)\n(section 1408 24)\n(section 1440 96)\n(section 1536 304)\n(section 1840 20)\n(section 1860 4)\n(section 1864 60)\n(section 1928 180)\n(section 69064 8)\n(section 69072 8)\n(section 69080 480)\n(section 69560 48)\n(section 69608 56)\n(section 69664 16)\n(section 69680 16)\n(section 0 71)\n(section 0 2184)\n(section 0 582)\n(section 0 259)\n(segment 0 2108 true false true)\n(segment 69064 632 true true false)\n(subarch v8)\n(symbol-chunk 1588 20 1588)\n(symbol-chunk 1536 52 1536)\n(symbol-chunk 1812 28 1812)\n(symbol-value 1588 1588)\n(symbol-value 1616 1616)\n(symbol-value 1664 1664)\n(symbol-value 1728 1728)\n(symbol-value 1808 1808)\n(symbol-value 1840 1840)\n(symbol-value 1536 1536)\n(symbol-value 1812 1812)\n(symbol-value 1408 1408)\n(symbol-value 0 0)\n(system \"\")\n(vendor \"\")\n"), -Attr("abi-name","\"aarch64-linux-gnu-elf\"")]), -Sections([Section(".shstrtab", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x00\x06\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x50\x1c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x38\x00\x09\x00\x40\x00\x1d\x00\x1c\x00\x06\x00\x00\x00\x04\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x04\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x3c\x08\x00\x00\x00\x00\x00\x00\x3c\x08\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x01\x00\x00\x00\x06\x00\x00\x00\xc8\x0d\x00\x00\x00\x00\x00\x00\xc8\x0d\x01\x00\x00\x00\x00\x00\xc8\x0d\x01"), -Section(".strtab", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x00\x06\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x50\x1c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x38\x00\x09\x00\x40\x00\x1d\x00\x1c\x00\x06\x00\x00\x00\x04\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x04\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x3c\x08\x00\x00\x00\x00\x00\x00\x3c\x08\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x01\x00\x00\x00\x06\x00\x00\x00\xc8\x0d\x00\x00\x00\x00\x00\x00\xc8\x0d\x01\x00\x00\x00\x00\x00\xc8\x0d\x01\x00\x00\x00\x00\x00\x68\x02\x00\x00\x00\x00\x00\x00\x78\x02\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x02\x00\x00\x00\x06\x00\x00\x00\xd8\x0d\x00\x00\x00\x00\x00\x00\xd8\x0d\x01\x00\x00\x00\x00\x00\xd8\x0d\x01\x00\x00\x00\x00\x00\xe0\x01\x00\x00\x00\x00\x00\x00\xe0\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x04\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x50\xe5\x74\x64\x04\x00\x00\x00\x48\x07\x00\x00\x00\x00\x00\x00\x48\x07\x00\x00\x00\x00\x00\x00\x48\x07\x00\x00\x00\x00\x00\x00\x3c\x00\x00\x00\x00\x00\x00\x00\x3c\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x51\xe5\x74\x64\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x52\xe5\x74\x64\x04\x00\x00\x00\xc8\x0d\x00\x00\x00\x00\x00\x00\xc8\x0d\x01\x00\x00\x00\x00\x00\xc8\x0d\x01\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x2f\x6c\x69\x62\x2f\x6c\x64\x2d\x6c\x69\x6e\x75\x78\x2d"), -Section(".comment", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x00\x06\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x50\x1c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x38\x00\x09\x00\x40\x00\x1d\x00\x1c\x00\x06\x00\x00\x00\x04\x00\x00"), -Section(".interp", 0x238, "\x2f\x6c\x69\x62\x2f\x6c\x64\x2d\x6c\x69\x6e\x75\x78\x2d\x61\x61\x72\x63\x68\x36\x34\x2e\x73\x6f\x2e\x31\x00"), -Section(".note.gnu.build-id", 0x254, "\x04\x00\x00\x00\x14\x00\x00\x00\x03\x00\x00\x00\x47\x4e\x55\x00\x03\x6e\x33\x46\xac\x82\x2e\xe2\x3c\x69\xa1\x61\x9c\x7a\x20\x63\x48\xfb\xae\x78"), -Section(".note.ABI-tag", 0x278, "\x04\x00\x00\x00\x10\x00\x00\x00\x01\x00\x00\x00\x47\x4e\x55\x00\x00\x00\x00\x00\x03\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00"), -Section(".gnu.hash", 0x298, "\x01\x00\x00\x00\x01\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".dynsym", 0x2B8, "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x0b\x00\x80\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x17\x00\x20\x10\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x48\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x22\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x22\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x73\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".dynstr", 0x390, "\x00\x5f\x5f\x63\x78\x61\x5f\x66\x69\x6e\x61\x6c\x69\x7a\x65\x00\x5f\x5f\x6c\x69\x62\x63\x5f\x73\x74\x61\x72\x74\x5f\x6d\x61\x69\x6e\x00\x61\x62\x6f\x72\x74\x00\x6c\x69\x62\x63\x2e\x73\x6f\x2e\x36\x00\x47\x4c\x49\x42\x43\x5f\x32\x2e\x31\x37\x00\x47\x4c\x49\x42\x43\x5f\x32\x2e\x33\x34\x00\x5f\x49\x54\x4d\x5f\x64\x65\x72\x65\x67\x69\x73\x74\x65\x72\x54\x4d\x43\x6c\x6f\x6e\x65\x54\x61\x62\x6c\x65\x00\x5f\x5f\x67\x6d\x6f\x6e\x5f\x73\x74\x61\x72\x74\x5f\x5f\x00\x5f\x49\x54\x4d\x5f\x72\x65\x67\x69\x73\x74\x65\x72\x54\x4d\x43\x6c\x6f\x6e\x65\x54\x61\x62\x6c\x65\x00"), -Section(".gnu.version", 0x41E, "\x00\x00\x00\x00\x00\x00\x02\x00\x01\x00\x03\x00\x01\x00\x03\x00\x01\x00"), -Section(".gnu.version_r", 0x430, "\x01\x00\x02\x00\x28\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x97\x91\x96\x06\x00\x00\x03\x00\x32\x00\x00\x00\x10\x00\x00\x00\xb4\x91\x96\x06\x00\x00\x02\x00\x3d\x00\x00\x00\x00\x00\x00\x00"), -Section(".rela.dyn", 0x460, "\xc8\x0d\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x10\x07\x00\x00\x00\x00\x00\x00\xd0\x0d\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\xc0\x06\x00\x00\x00\x00\x00\x00\xd8\x0f\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x14\x07\x00\x00\x00\x00\x00\x00\x28\x10\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x28\x10\x01\x00\x00\x00\x00\x00\xc0\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xc8\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xd0\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe0\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".rela.plt", 0x520, "\x00\x10\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x08\x10\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x10\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x18\x10\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".init", 0x580, "\x1f\x20\x03\xd5\xfd\x7b\xbf\xa9\xfd\x03\x00\x91\x2a\x00\x00\x94\xfd\x7b\xc1\xa8\xc0\x03\x5f\xd6"), -Section(".plt", 0x5A0, "\xf0\x7b\xbf\xa9\x90\x00\x00\x90\x11\xfe\x47\xf9\x10\xe2\x3f\x91\x20\x02\x1f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x90\x00\x00\xb0\x11\x02\x40\xf9\x10\x02\x00\x91\x20\x02\x1f\xd6\x90\x00\x00\xb0\x11\x06\x40\xf9\x10\x22\x00\x91\x20\x02\x1f\xd6\x90\x00\x00\xb0\x11\x0a\x40\xf9\x10\x42\x00\x91\x20\x02\x1f\xd6\x90\x00\x00\xb0\x11\x0e\x40\xf9\x10\x62\x00\x91\x20\x02\x1f\xd6"), -Section(".text", 0x600, "\x1f\x20\x03\xd5\x1d\x00\x80\xd2\x1e\x00\x80\xd2\xe5\x03\x00\xaa\xe1\x03\x40\xf9\xe2\x23\x00\x91\xe6\x03\x00\x91\x80\x00\x00\x90\x00\xec\x47\xf9\x03\x00\x80\xd2\x04\x00\x80\xd2\xe5\xff\xff\x97\xf0\xff\xff\x97\x80\x00\x00\x90\x00\xe8\x47\xf9\x40\x00\x00\xb4\xe8\xff\xff\x17\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x80\x00\x00\xb0\x00\xc0\x00\x91\x81\x00\x00\xb0\x21\xc0\x00\x91\x3f\x00\x00\xeb\xc0\x00\x00\x54\x81\x00\x00\x90\x21\xe0\x47\xf9\x61\x00\x00\xb4\xf0\x03\x01\xaa\x00\x02\x1f\xd6\xc0\x03\x5f\xd6\x80\x00\x00\xb0\x00\xc0\x00\x91\x81\x00\x00\xb0\x21\xc0\x00\x91\x21\x00\x00\xcb\x22\xfc\x7f\xd3\x41\x0c\x81\x8b\x21\xfc\x41\x93\xc1\x00\x00\xb4\x82\x00\x00\x90\x42\xf0\x47\xf9\x62\x00\x00\xb4\xf0\x03\x02\xaa\x00\x02\x1f\xd6\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\xfd\x7b\xbe\xa9\xfd\x03\x00\x91\xf3\x0b\x00\xf9\x93\x00\x00\xb0\x60\xc2\x40\x39\x40\x01\x00\x35\x80\x00\x00\x90\x00\xe4\x47\xf9\x80\x00\x00\xb4\x80\x00\x00\xb0\x00\x14\x40\xf9\xb9\xff\xff\x97\xd8\xff\xff\x97\x20\x00\x80\x52\x60\xc2\x00\x39\xf3\x0b\x40\xf9\xfd\x7b\xc2\xa8\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\xdc\xff\xff\x17\x88\x00\x00\xb0\x89\x00\x00\xb0\x08\x39\x40\xb9\x29\x35\x40\xb9\x1f\x01\x00\x71\xe0\x03\x89\x1a\xc0\x03\x5f\xd6"), -Section(".fini", 0x730, "\x1f\x20\x03\xd5\xfd\x7b\xbf\xa9\xfd\x03\x00\x91\xfd\x7b\xc1\xa8\xc0\x03\x5f\xd6"), -Section(".rodata", 0x744, "\x01\x00\x02\x00"), -Section(".eh_frame_hdr", 0x748, "\x01\x1b\x03\x3b\x3c\x00\x00\x00\x06\x00\x00\x00\xb8\xfe\xff\xff\x54\x00\x00\x00\x08\xff\xff\xff\x68\x00\x00\x00\x38\xff\xff\xff\x7c\x00\x00\x00\x78\xff\xff\xff\x90\x00\x00\x00\xc8\xff\xff\xff\xb4\x00\x00\x00\xcc\xff\xff\xff\xdc\x00\x00\x00"), -Section(".eh_frame", 0x788, "\x10\x00\x00\x00\x00\x00\x00\x00\x01\x7a\x52\x00\x04\x78\x1e\x01\x1b\x0c\x1f\x00\x10\x00\x00\x00\x18\x00\x00\x00\x5c\xfe\xff\xff\x34\x00\x00\x00\x00\x41\x07\x1e\x10\x00\x00\x00\x2c\x00\x00\x00\x98\xfe\xff\xff\x30\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x40\x00\x00\x00\xb4\xfe\xff\xff\x3c\x00\x00\x00\x00\x00\x00\x00\x20\x00\x00\x00\x54\x00\x00\x00\xe0\xfe\xff\xff\x48\x00\x00\x00\x00\x41\x0e\x20\x9d\x04\x9e\x03\x42\x93\x02\x4e\xde\xdd\xd3\x0e\x00\x00\x00\x00\x10\x00\x00\x00\x78\x00\x00\x00\x0c\xff\xff\xff\x04\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x01\x7a\x52\x00\x01\x7c\x1e\x01\x1b\x0c\x1f\x00\x10\x00\x00\x00\x18\x00\x00\x00\xe8\xfe\xff\xff\x1c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".fini_array", 0x10DD0, "\xc0\x06\x00\x00\x00\x00\x00\x00"), -Section(".dynamic", 0x10DD8, "\x01\x00\x00\x00\x00\x00\x00\x00\x28\x00\x00\x00\x00\x00\x00\x00\x0c\x00\x00\x00\x00\x00\x00\x00\x80\x05\x00\x00\x00\x00\x00\x00\x0d\x00\x00\x00\x00\x00\x00\x00\x30\x07\x00\x00\x00\x00\x00\x00\x19\x00\x00\x00\x00\x00\x00\x00\xc8\x0d\x01\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x1a\x00\x00\x00\x00\x00\x00\x00\xd0\x0d\x01\x00\x00\x00\x00\x00\x1c\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\xf5\xfe\xff\x6f\x00\x00\x00\x00\x98\x02\x00\x00\x00\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x90\x03\x00\x00\x00\x00\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\xb8\x02\x00\x00\x00\x00\x00\x00\x0a\x00\x00\x00\x00\x00\x00\x00\x8d\x00\x00\x00\x00\x00\x00\x00\x0b\x00\x00\x00\x00\x00\x00\x00\x18\x00\x00\x00\x00\x00\x00\x00\x15\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\xe8\x0f\x01\x00\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x60\x00\x00\x00\x00\x00\x00\x00\x14\x00\x00\x00\x00\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x17\x00\x00\x00\x00\x00\x00\x00\x20\x05\x00\x00\x00\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x60\x04\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\xc0\x00\x00\x00\x00\x00\x00\x00\x09\x00\x00\x00\x00\x00\x00\x00\x18\x00\x00\x00\x00\x00\x00\x00\xfb\xff\xff\x6f\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\xfe\xff\xff\x6f\x00\x00\x00\x00\x30\x04\x00\x00\x00\x00\x00\x00\xff\xff\xff\x6f\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\xf0\xff\xff\x6f\x00\x00\x00\x00\x1e\x04\x00\x00\x00\x00\x00\x00\xf9\xff\xff\x6f\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".init_array", 0x10DC8, "\x10\x07\x00\x00\x00\x00\x00\x00"), -Section(".got", 0x10FB8, "\xd8\x0d\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x14\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".got.plt", 0x10FE8, "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xa0\x05\x00\x00\x00\x00\x00\x00\xa0\x05\x00\x00\x00\x00\x00\x00\xa0\x05\x00\x00\x00\x00\x00\x00\xa0\x05\x00\x00\x00\x00\x00\x00"), -Section(".data", 0x11020, "\x00\x00\x00\x00\x00\x00\x00\x00\x28\x10\x01\x00\x00\x00\x00\x00")]), -Memmap([Annotation(Region(0x0,0x83B), Attr("segment","02 0 2108")), -Annotation(Region(0x600,0x633), Attr("symbol","\"_start\"")), -Annotation(Region(0x0,0x102), Attr("section","\".shstrtab\"")), -Annotation(Region(0x0,0x245), Attr("section","\".strtab\"")), -Annotation(Region(0x0,0x46), Attr("section","\".comment\"")), -Annotation(Region(0x238,0x252), Attr("section","\".interp\"")), -Annotation(Region(0x254,0x277), Attr("section","\".note.gnu.build-id\"")), -Annotation(Region(0x278,0x297), Attr("section","\".note.ABI-tag\"")), -Annotation(Region(0x298,0x2B3), Attr("section","\".gnu.hash\"")), -Annotation(Region(0x2B8,0x38F), Attr("section","\".dynsym\"")), -Annotation(Region(0x390,0x41C), Attr("section","\".dynstr\"")), -Annotation(Region(0x41E,0x42F), Attr("section","\".gnu.version\"")), -Annotation(Region(0x430,0x45F), Attr("section","\".gnu.version_r\"")), -Annotation(Region(0x460,0x51F), Attr("section","\".rela.dyn\"")), -Annotation(Region(0x520,0x57F), Attr("section","\".rela.plt\"")), -Annotation(Region(0x580,0x597), Attr("section","\".init\"")), -Annotation(Region(0x5A0,0x5FF), Attr("section","\".plt\"")), -Annotation(Region(0x580,0x597), Attr("code-region","()")), -Annotation(Region(0x5A0,0x5FF), Attr("code-region","()")), -Annotation(Region(0x600,0x633), Attr("symbol-info","_start 0x600 52")), -Annotation(Region(0x634,0x647), Attr("symbol","\"call_weak_fn\"")), -Annotation(Region(0x634,0x647), Attr("symbol-info","call_weak_fn 0x634 20")), -Annotation(Region(0x600,0x72F), Attr("section","\".text\"")), -Annotation(Region(0x600,0x72F), Attr("code-region","()")), -Annotation(Region(0x714,0x72F), Attr("symbol","\"main\"")), -Annotation(Region(0x714,0x72F), Attr("symbol-info","main 0x714 28")), -Annotation(Region(0x730,0x743), Attr("section","\".fini\"")), -Annotation(Region(0x730,0x743), Attr("code-region","()")), -Annotation(Region(0x744,0x747), Attr("section","\".rodata\"")), -Annotation(Region(0x748,0x783), Attr("section","\".eh_frame_hdr\"")), -Annotation(Region(0x788,0x83B), Attr("section","\".eh_frame\"")), -Annotation(Region(0x10DC8,0x1102F), Attr("segment","03 0x10DC8 632")), -Annotation(Region(0x10DD0,0x10DD7), Attr("section","\".fini_array\"")), -Annotation(Region(0x10DD8,0x10FB7), Attr("section","\".dynamic\"")), -Annotation(Region(0x10DC8,0x10DCF), Attr("section","\".init_array\"")), -Annotation(Region(0x10FB8,0x10FE7), Attr("section","\".got\"")), -Annotation(Region(0x10FE8,0x1101F), Attr("section","\".got.plt\"")), -Annotation(Region(0x11020,0x1102F), Attr("section","\".data\""))]), -Program(Tid(1_470, "%000005be"), Attrs([]), - Subs([Sub(Tid(1_420, "@__cxa_finalize"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x5D0"), -Attr("stub","()")]), "__cxa_finalize", Args([Arg(Tid(1_471, "%000005bf"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("__cxa_finalize_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(834, "@__cxa_finalize"), - Attrs([Attr("address","0x5D0")]), Phis([]), -Defs([Def(Tid(1_082, "%0000043a"), Attrs([Attr("address","0x5D0"), -Attr("insn","adrp x16, #69632")]), Var("R16",Imm(64)), Int(69632,64)), -Def(Tid(1_089, "%00000441"), Attrs([Attr("address","0x5D4"), -Attr("insn","ldr x17, [x16, #0x8]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(1_095, "%00000447"), Attrs([Attr("address","0x5D8"), -Attr("insn","add x16, x16, #0x8")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(8,64)))]), Jmps([Call(Tid(1_100, "%0000044c"), - Attrs([Attr("address","0x5DC"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), -Sub(Tid(1_421, "@__do_global_dtors_aux"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x6C0")]), - "__do_global_dtors_aux", Args([Arg(Tid(1_472, "%000005c0"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("__do_global_dtors_aux_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(618, "@__do_global_dtors_aux"), - Attrs([Attr("address","0x6C0")]), Phis([]), Defs([Def(Tid(622, "%0000026e"), - Attrs([Attr("address","0x6C0"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("#3",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(18446744073709551584,64))), -Def(Tid(628, "%00000274"), Attrs([Attr("address","0x6C0"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("#3",Imm(64)),Var("R29",Imm(64)),LittleEndian(),64)), -Def(Tid(634, "%0000027a"), Attrs([Attr("address","0x6C0"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("#3",Imm(64)),Int(8,64)),Var("R30",Imm(64)),LittleEndian(),64)), -Def(Tid(638, "%0000027e"), Attrs([Attr("address","0x6C0"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("R31",Imm(64)), -Var("#3",Imm(64))), Def(Tid(644, "%00000284"), - Attrs([Attr("address","0x6C4"), Attr("insn","mov x29, sp")]), - Var("R29",Imm(64)), Var("R31",Imm(64))), Def(Tid(652, "%0000028c"), - Attrs([Attr("address","0x6C8"), Attr("insn","str x19, [sp, #0x10]")]), - Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(16,64)),Var("R19",Imm(64)),LittleEndian(),64)), -Def(Tid(657, "%00000291"), Attrs([Attr("address","0x6CC"), -Attr("insn","adrp x19, #69632")]), Var("R19",Imm(64)), Int(69632,64)), -Def(Tid(664, "%00000298"), Attrs([Attr("address","0x6D0"), -Attr("insn","ldrb w0, [x19, #0x30]")]), Var("R0",Imm(64)), -UNSIGNED(64,Load(Var("mem",Mem(64,8)),PLUS(Var("R19",Imm(64)),Int(48,64)),LittleEndian(),8)))]), -Jmps([Goto(Tid(671, "%0000029f"), Attrs([Attr("address","0x6D4"), -Attr("insn","cbnz w0, #0x28")]), - NEQ(Extract(31,0,Var("R0",Imm(64))),Int(0,32)), -Direct(Tid(669, "%0000029d"))), Goto(Tid(1_460, "%000005b4"), Attrs([]), - Int(1,1), Direct(Tid(779, "%0000030b")))])), Blk(Tid(779, "%0000030b"), - Attrs([Attr("address","0x6D8")]), Phis([]), Defs([Def(Tid(782, "%0000030e"), - Attrs([Attr("address","0x6D8"), Attr("insn","adrp x0, #65536")]), - Var("R0",Imm(64)), Int(65536,64)), Def(Tid(789, "%00000315"), - Attrs([Attr("address","0x6DC"), Attr("insn","ldr x0, [x0, #0xfc8]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(4040,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(795, "%0000031b"), Attrs([Attr("address","0x6E0"), -Attr("insn","cbz x0, #0x10")]), EQ(Var("R0",Imm(64)),Int(0,64)), -Direct(Tid(793, "%00000319"))), Goto(Tid(1_461, "%000005b5"), Attrs([]), - Int(1,1), Direct(Tid(818, "%00000332")))])), Blk(Tid(818, "%00000332"), - Attrs([Attr("address","0x6E4")]), Phis([]), Defs([Def(Tid(821, "%00000335"), - Attrs([Attr("address","0x6E4"), Attr("insn","adrp x0, #69632")]), - Var("R0",Imm(64)), Int(69632,64)), Def(Tid(828, "%0000033c"), - Attrs([Attr("address","0x6E8"), Attr("insn","ldr x0, [x0, #0x28]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(40,64)),LittleEndian(),64)), -Def(Tid(833, "%00000341"), Attrs([Attr("address","0x6EC"), -Attr("insn","bl #-0x11c")]), Var("R30",Imm(64)), Int(1776,64))]), -Jmps([Call(Tid(836, "%00000344"), Attrs([Attr("address","0x6EC"), -Attr("insn","bl #-0x11c")]), Int(1,1), -(Direct(Tid(1_420, "@__cxa_finalize")),Direct(Tid(793, "%00000319"))))])), -Blk(Tid(793, "%00000319"), Attrs([Attr("address","0x6F0")]), Phis([]), -Defs([Def(Tid(801, "%00000321"), Attrs([Attr("address","0x6F0"), -Attr("insn","bl #-0xa0")]), Var("R30",Imm(64)), Int(1780,64))]), -Jmps([Call(Tid(803, "%00000323"), Attrs([Attr("address","0x6F0"), -Attr("insn","bl #-0xa0")]), Int(1,1), -(Direct(Tid(1_434, "@deregister_tm_clones")),Direct(Tid(805, "%00000325"))))])), -Blk(Tid(805, "%00000325"), Attrs([Attr("address","0x6F4")]), Phis([]), -Defs([Def(Tid(808, "%00000328"), Attrs([Attr("address","0x6F4"), -Attr("insn","mov w0, #0x1")]), Var("R0",Imm(64)), Int(1,64)), -Def(Tid(816, "%00000330"), Attrs([Attr("address","0x6F8"), -Attr("insn","strb w0, [x19, #0x30]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R19",Imm(64)),Int(48,64)),Extract(7,0,Var("R0",Imm(64))),LittleEndian(),8))]), -Jmps([Goto(Tid(1_462, "%000005b6"), Attrs([]), Int(1,1), -Direct(Tid(669, "%0000029d")))])), Blk(Tid(669, "%0000029d"), - Attrs([Attr("address","0x6FC")]), Phis([]), Defs([Def(Tid(679, "%000002a7"), - Attrs([Attr("address","0x6FC"), Attr("insn","ldr x19, [sp, #0x10]")]), - Var("R19",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(16,64)),LittleEndian(),64)), -Def(Tid(686, "%000002ae"), Attrs([Attr("address","0x700"), -Attr("insn","ldp x29, x30, [sp], #0x20")]), Var("R29",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(691, "%000002b3"), Attrs([Attr("address","0x700"), -Attr("insn","ldp x29, x30, [sp], #0x20")]), Var("R30",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(695, "%000002b7"), Attrs([Attr("address","0x700"), -Attr("insn","ldp x29, x30, [sp], #0x20")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(32,64)))]), Jmps([Call(Tid(700, "%000002bc"), - Attrs([Attr("address","0x704"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), Sub(Tid(1_425, "@__libc_start_main"), - Attrs([Attr("c.proto","signed (*)(signed (*)(signed , char** , char** );* main, signed , char** , \nvoid* auxv)"), -Attr("address","0x5C0"), Attr("stub","()")]), "__libc_start_main", - Args([Arg(Tid(1_473, "%000005c1"), - Attrs([Attr("c.layout","**[ : 64]"), -Attr("c.data","Top:u64 ptr ptr"), -Attr("c.type","signed (*)(signed , char** , char** );*")]), - Var("__libc_start_main_main",Imm(64)), Var("R0",Imm(64)), In()), -Arg(Tid(1_474, "%000005c2"), Attrs([Attr("c.layout","[signed : 32]"), -Attr("c.data","Top:u32"), Attr("c.type","signed")]), - Var("__libc_start_main_arg2",Imm(32)), LOW(32,Var("R1",Imm(64))), In()), -Arg(Tid(1_475, "%000005c3"), Attrs([Attr("c.layout","**[char : 8]"), -Attr("c.data","Top:u8 ptr ptr"), Attr("c.type","char**")]), - Var("__libc_start_main_arg3",Imm(64)), Var("R2",Imm(64)), Both()), -Arg(Tid(1_476, "%000005c4"), Attrs([Attr("c.layout","*[ : 8]"), -Attr("c.data","{} ptr"), Attr("c.type","void*")]), - Var("__libc_start_main_auxv",Imm(64)), Var("R3",Imm(64)), Both()), -Arg(Tid(1_477, "%000005c5"), Attrs([Attr("c.layout","[signed : 32]"), -Attr("c.data","Top:u32"), Attr("c.type","signed")]), - Var("__libc_start_main_result",Imm(32)), LOW(32,Var("R0",Imm(64))), -Out())]), Blks([Blk(Tid(451, "@__libc_start_main"), - Attrs([Attr("address","0x5C0")]), Phis([]), -Defs([Def(Tid(1_060, "%00000424"), Attrs([Attr("address","0x5C0"), -Attr("insn","adrp x16, #69632")]), Var("R16",Imm(64)), Int(69632,64)), -Def(Tid(1_067, "%0000042b"), Attrs([Attr("address","0x5C4"), -Attr("insn","ldr x17, [x16]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R16",Imm(64)),LittleEndian(),64)), -Def(Tid(1_073, "%00000431"), Attrs([Attr("address","0x5C8"), -Attr("insn","add x16, x16, #0x0")]), Var("R16",Imm(64)), -Var("R16",Imm(64)))]), Jmps([Call(Tid(1_078, "%00000436"), - Attrs([Attr("address","0x5CC"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), Sub(Tid(1_426, "@_fini"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x730")]), - "_fini", Args([Arg(Tid(1_478, "%000005c6"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("_fini_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(31, "@_fini"), - Attrs([Attr("address","0x730")]), Phis([]), Defs([Def(Tid(37, "%00000025"), - Attrs([Attr("address","0x734"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("#0",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(18446744073709551600,64))), -Def(Tid(43, "%0000002b"), Attrs([Attr("address","0x734"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("#0",Imm(64)),Var("R29",Imm(64)),LittleEndian(),64)), -Def(Tid(49, "%00000031"), Attrs([Attr("address","0x734"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("#0",Imm(64)),Int(8,64)),Var("R30",Imm(64)),LittleEndian(),64)), -Def(Tid(53, "%00000035"), Attrs([Attr("address","0x734"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("R31",Imm(64)), -Var("#0",Imm(64))), Def(Tid(59, "%0000003b"), Attrs([Attr("address","0x738"), -Attr("insn","mov x29, sp")]), Var("R29",Imm(64)), Var("R31",Imm(64))), -Def(Tid(66, "%00000042"), Attrs([Attr("address","0x73C"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R29",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(71, "%00000047"), Attrs([Attr("address","0x73C"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R30",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(75, "%0000004b"), Attrs([Attr("address","0x73C"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(16,64)))]), Jmps([Call(Tid(80, "%00000050"), - Attrs([Attr("address","0x740"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), Sub(Tid(1_427, "@_init"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x580")]), - "_init", Args([Arg(Tid(1_479, "%000005c7"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("_init_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(1_255, "@_init"), - Attrs([Attr("address","0x580")]), Phis([]), -Defs([Def(Tid(1_261, "%000004ed"), Attrs([Attr("address","0x584"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("#6",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(18446744073709551600,64))), -Def(Tid(1_267, "%000004f3"), Attrs([Attr("address","0x584"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("#6",Imm(64)),Var("R29",Imm(64)),LittleEndian(),64)), -Def(Tid(1_273, "%000004f9"), Attrs([Attr("address","0x584"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("#6",Imm(64)),Int(8,64)),Var("R30",Imm(64)),LittleEndian(),64)), -Def(Tid(1_277, "%000004fd"), Attrs([Attr("address","0x584"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("R31",Imm(64)), -Var("#6",Imm(64))), Def(Tid(1_283, "%00000503"), - Attrs([Attr("address","0x588"), Attr("insn","mov x29, sp")]), - Var("R29",Imm(64)), Var("R31",Imm(64))), Def(Tid(1_288, "%00000508"), - Attrs([Attr("address","0x58C"), Attr("insn","bl #0xa8")]), - Var("R30",Imm(64)), Int(1424,64))]), Jmps([Call(Tid(1_290, "%0000050a"), - Attrs([Attr("address","0x58C"), Attr("insn","bl #0xa8")]), Int(1,1), -(Direct(Tid(1_432, "@call_weak_fn")),Direct(Tid(1_292, "%0000050c"))))])), -Blk(Tid(1_292, "%0000050c"), Attrs([Attr("address","0x590")]), Phis([]), -Defs([Def(Tid(1_297, "%00000511"), Attrs([Attr("address","0x590"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R29",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(1_302, "%00000516"), Attrs([Attr("address","0x590"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R30",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(1_306, "%0000051a"), Attrs([Attr("address","0x590"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(16,64)))]), Jmps([Call(Tid(1_311, "%0000051f"), - Attrs([Attr("address","0x594"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), Sub(Tid(1_428, "@_start"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x600"), -Attr("stub","()"), Attr("entry-point","()")]), "_start", - Args([Arg(Tid(1_480, "%000005c8"), Attrs([Attr("c.layout","[signed : 32]"), -Attr("c.data","Top:u32"), Attr("c.type","signed")]), - Var("_start_result",Imm(32)), LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(388, "@_start"), Attrs([Attr("address","0x600")]), Phis([]), -Defs([Def(Tid(393, "%00000189"), Attrs([Attr("address","0x604"), -Attr("insn","mov x29, #0x0")]), Var("R29",Imm(64)), Int(0,64)), -Def(Tid(398, "%0000018e"), Attrs([Attr("address","0x608"), -Attr("insn","mov x30, #0x0")]), Var("R30",Imm(64)), Int(0,64)), -Def(Tid(404, "%00000194"), Attrs([Attr("address","0x60C"), -Attr("insn","mov x5, x0")]), Var("R5",Imm(64)), Var("R0",Imm(64))), -Def(Tid(411, "%0000019b"), Attrs([Attr("address","0x610"), -Attr("insn","ldr x1, [sp]")]), Var("R1",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(417, "%000001a1"), Attrs([Attr("address","0x614"), -Attr("insn","add x2, sp, #0x8")]), Var("R2",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(8,64))), Def(Tid(423, "%000001a7"), - Attrs([Attr("address","0x618"), Attr("insn","mov x6, sp")]), - Var("R6",Imm(64)), Var("R31",Imm(64))), Def(Tid(428, "%000001ac"), - Attrs([Attr("address","0x61C"), Attr("insn","adrp x0, #65536")]), - Var("R0",Imm(64)), Int(65536,64)), Def(Tid(435, "%000001b3"), - Attrs([Attr("address","0x620"), Attr("insn","ldr x0, [x0, #0xfd8]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(4056,64)),LittleEndian(),64)), -Def(Tid(440, "%000001b8"), Attrs([Attr("address","0x624"), -Attr("insn","mov x3, #0x0")]), Var("R3",Imm(64)), Int(0,64)), -Def(Tid(445, "%000001bd"), Attrs([Attr("address","0x628"), -Attr("insn","mov x4, #0x0")]), Var("R4",Imm(64)), Int(0,64)), -Def(Tid(450, "%000001c2"), Attrs([Attr("address","0x62C"), -Attr("insn","bl #-0x6c")]), Var("R30",Imm(64)), Int(1584,64))]), -Jmps([Call(Tid(453, "%000001c5"), Attrs([Attr("address","0x62C"), -Attr("insn","bl #-0x6c")]), Int(1,1), -(Direct(Tid(1_425, "@__libc_start_main")),Direct(Tid(455, "%000001c7"))))])), -Blk(Tid(455, "%000001c7"), Attrs([Attr("address","0x630")]), Phis([]), -Defs([Def(Tid(458, "%000001ca"), Attrs([Attr("address","0x630"), -Attr("insn","bl #-0x40")]), Var("R30",Imm(64)), Int(1588,64))]), -Jmps([Call(Tid(461, "%000001cd"), Attrs([Attr("address","0x630"), -Attr("insn","bl #-0x40")]), Int(1,1), -(Direct(Tid(1_431, "@abort")),Direct(Tid(1_463, "%000005b7"))))])), -Blk(Tid(1_463, "%000005b7"), Attrs([]), Phis([]), Defs([]), -Jmps([Call(Tid(1_464, "%000005b8"), Attrs([]), Int(1,1), -(Direct(Tid(1_432, "@call_weak_fn")),))]))])), Sub(Tid(1_431, "@abort"), - Attrs([Attr("noreturn","()"), Attr("c.proto","void (*)(void)"), -Attr("address","0x5F0"), Attr("stub","()")]), "abort", Args([]), -Blks([Blk(Tid(459, "@abort"), Attrs([Attr("address","0x5F0")]), Phis([]), -Defs([Def(Tid(1_126, "%00000466"), Attrs([Attr("address","0x5F0"), -Attr("insn","adrp x16, #69632")]), Var("R16",Imm(64)), Int(69632,64)), -Def(Tid(1_133, "%0000046d"), Attrs([Attr("address","0x5F4"), -Attr("insn","ldr x17, [x16, #0x18]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(24,64)),LittleEndian(),64)), -Def(Tid(1_139, "%00000473"), Attrs([Attr("address","0x5F8"), -Attr("insn","add x16, x16, #0x18")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(24,64)))]), Jmps([Call(Tid(1_144, "%00000478"), - Attrs([Attr("address","0x5FC"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), Sub(Tid(1_432, "@call_weak_fn"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x634")]), - "call_weak_fn", Args([Arg(Tid(1_481, "%000005c9"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("call_weak_fn_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(463, "@call_weak_fn"), - Attrs([Attr("address","0x634")]), Phis([]), Defs([Def(Tid(466, "%000001d2"), - Attrs([Attr("address","0x634"), Attr("insn","adrp x0, #65536")]), - Var("R0",Imm(64)), Int(65536,64)), Def(Tid(473, "%000001d9"), - Attrs([Attr("address","0x638"), Attr("insn","ldr x0, [x0, #0xfd0]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(4048,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(479, "%000001df"), Attrs([Attr("address","0x63C"), -Attr("insn","cbz x0, #0x8")]), EQ(Var("R0",Imm(64)),Int(0,64)), -Direct(Tid(477, "%000001dd"))), Goto(Tid(1_465, "%000005b9"), Attrs([]), - Int(1,1), Direct(Tid(898, "%00000382")))])), Blk(Tid(477, "%000001dd"), - Attrs([Attr("address","0x644")]), Phis([]), Defs([]), -Jmps([Call(Tid(485, "%000001e5"), Attrs([Attr("address","0x644"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))])), -Blk(Tid(898, "%00000382"), Attrs([Attr("address","0x640")]), Phis([]), -Defs([]), Jmps([Goto(Tid(901, "%00000385"), Attrs([Attr("address","0x640"), -Attr("insn","b #-0x60")]), Int(1,1), Direct(Tid(899, "@__gmon_start__")))])), -Blk(Tid(899, "@__gmon_start__"), Attrs([Attr("address","0x5E0")]), Phis([]), -Defs([Def(Tid(1_104, "%00000450"), Attrs([Attr("address","0x5E0"), -Attr("insn","adrp x16, #69632")]), Var("R16",Imm(64)), Int(69632,64)), -Def(Tid(1_111, "%00000457"), Attrs([Attr("address","0x5E4"), -Attr("insn","ldr x17, [x16, #0x10]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(16,64)),LittleEndian(),64)), -Def(Tid(1_117, "%0000045d"), Attrs([Attr("address","0x5E8"), -Attr("insn","add x16, x16, #0x10")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(16,64)))]), Jmps([Call(Tid(1_122, "%00000462"), - Attrs([Attr("address","0x5EC"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), -Sub(Tid(1_434, "@deregister_tm_clones"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x650")]), - "deregister_tm_clones", Args([Arg(Tid(1_482, "%000005ca"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("deregister_tm_clones_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(491, "@deregister_tm_clones"), - Attrs([Attr("address","0x650")]), Phis([]), Defs([Def(Tid(494, "%000001ee"), - Attrs([Attr("address","0x650"), Attr("insn","adrp x0, #69632")]), - Var("R0",Imm(64)), Int(69632,64)), Def(Tid(500, "%000001f4"), - Attrs([Attr("address","0x654"), Attr("insn","add x0, x0, #0x30")]), - Var("R0",Imm(64)), PLUS(Var("R0",Imm(64)),Int(48,64))), -Def(Tid(505, "%000001f9"), Attrs([Attr("address","0x658"), -Attr("insn","adrp x1, #69632")]), Var("R1",Imm(64)), Int(69632,64)), -Def(Tid(511, "%000001ff"), Attrs([Attr("address","0x65C"), -Attr("insn","add x1, x1, #0x30")]), Var("R1",Imm(64)), -PLUS(Var("R1",Imm(64)),Int(48,64))), Def(Tid(517, "%00000205"), - Attrs([Attr("address","0x660"), Attr("insn","cmp x1, x0")]), - Var("#1",Imm(64)), NOT(Var("R0",Imm(64)))), Def(Tid(522, "%0000020a"), - Attrs([Attr("address","0x660"), Attr("insn","cmp x1, x0")]), - Var("#2",Imm(64)), PLUS(Var("R1",Imm(64)),NOT(Var("R0",Imm(64))))), -Def(Tid(528, "%00000210"), Attrs([Attr("address","0x660"), -Attr("insn","cmp x1, x0")]), Var("VF",Imm(1)), -NEQ(SIGNED(65,PLUS(Var("#2",Imm(64)),Int(1,64))),PLUS(PLUS(SIGNED(65,Var("R1",Imm(64))),SIGNED(65,Var("#1",Imm(64)))),Int(1,65)))), -Def(Tid(534, "%00000216"), Attrs([Attr("address","0x660"), -Attr("insn","cmp x1, x0")]), Var("CF",Imm(1)), -NEQ(UNSIGNED(65,PLUS(Var("#2",Imm(64)),Int(1,64))),PLUS(PLUS(UNSIGNED(65,Var("R1",Imm(64))),UNSIGNED(65,Var("#1",Imm(64)))),Int(1,65)))), -Def(Tid(538, "%0000021a"), Attrs([Attr("address","0x660"), -Attr("insn","cmp x1, x0")]), Var("ZF",Imm(1)), -EQ(PLUS(Var("#2",Imm(64)),Int(1,64)),Int(0,64))), Def(Tid(542, "%0000021e"), - Attrs([Attr("address","0x660"), Attr("insn","cmp x1, x0")]), - Var("NF",Imm(1)), Extract(63,63,PLUS(Var("#2",Imm(64)),Int(1,64))))]), -Jmps([Goto(Tid(548, "%00000224"), Attrs([Attr("address","0x664"), -Attr("insn","b.eq #0x18")]), EQ(Var("ZF",Imm(1)),Int(1,1)), -Direct(Tid(546, "%00000222"))), Goto(Tid(1_466, "%000005ba"), Attrs([]), - Int(1,1), Direct(Tid(868, "%00000364")))])), Blk(Tid(868, "%00000364"), - Attrs([Attr("address","0x668")]), Phis([]), Defs([Def(Tid(871, "%00000367"), - Attrs([Attr("address","0x668"), Attr("insn","adrp x1, #65536")]), - Var("R1",Imm(64)), Int(65536,64)), Def(Tid(878, "%0000036e"), - Attrs([Attr("address","0x66C"), Attr("insn","ldr x1, [x1, #0xfc0]")]), - Var("R1",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R1",Imm(64)),Int(4032,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(883, "%00000373"), Attrs([Attr("address","0x670"), -Attr("insn","cbz x1, #0xc")]), EQ(Var("R1",Imm(64)),Int(0,64)), -Direct(Tid(546, "%00000222"))), Goto(Tid(1_467, "%000005bb"), Attrs([]), - Int(1,1), Direct(Tid(887, "%00000377")))])), Blk(Tid(546, "%00000222"), - Attrs([Attr("address","0x67C")]), Phis([]), Defs([]), -Jmps([Call(Tid(554, "%0000022a"), Attrs([Attr("address","0x67C"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))])), -Blk(Tid(887, "%00000377"), Attrs([Attr("address","0x674")]), Phis([]), -Defs([Def(Tid(891, "%0000037b"), Attrs([Attr("address","0x674"), -Attr("insn","mov x16, x1")]), Var("R16",Imm(64)), Var("R1",Imm(64)))]), -Jmps([Call(Tid(896, "%00000380"), Attrs([Attr("address","0x678"), -Attr("insn","br x16")]), Int(1,1), (Indirect(Var("R16",Imm(64))),))]))])), -Sub(Tid(1_437, "@frame_dummy"), Attrs([Attr("c.proto","signed (*)(void)"), -Attr("address","0x710")]), "frame_dummy", Args([Arg(Tid(1_483, "%000005cb"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("frame_dummy_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(706, "@frame_dummy"), - Attrs([Attr("address","0x710")]), Phis([]), Defs([]), -Jmps([Call(Tid(708, "%000002c4"), Attrs([Attr("address","0x710"), -Attr("insn","b #-0x90")]), Int(1,1), -(Direct(Tid(1_439, "@register_tm_clones")),))]))])), Sub(Tid(1_438, "@main"), - Attrs([Attr("c.proto","signed (*)(signed argc, const char** argv)"), -Attr("address","0x714")]), "main", Args([Arg(Tid(1_484, "%000005cc"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("main_argc",Imm(32)), -LOW(32,Var("R0",Imm(64))), In()), Arg(Tid(1_485, "%000005cd"), - Attrs([Attr("c.layout","**[char : 8]"), Attr("c.data","Top:u8 ptr ptr"), -Attr("c.type"," const char**")]), Var("main_argv",Imm(64)), -Var("R1",Imm(64)), Both()), Arg(Tid(1_486, "%000005ce"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("main_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(710, "@main"), - Attrs([Attr("address","0x714")]), Phis([]), Defs([Def(Tid(713, "%000002c9"), - Attrs([Attr("address","0x714"), Attr("insn","adrp x8, #69632")]), - Var("R8",Imm(64)), Int(69632,64)), Def(Tid(718, "%000002ce"), - Attrs([Attr("address","0x718"), Attr("insn","adrp x9, #69632")]), - Var("R9",Imm(64)), Int(69632,64)), Def(Tid(725, "%000002d5"), - Attrs([Attr("address","0x71C"), Attr("insn","ldr w8, [x8, #0x38]")]), - Var("R8",Imm(64)), -UNSIGNED(64,Load(Var("mem",Mem(64,8)),PLUS(Var("R8",Imm(64)),Int(56,64)),LittleEndian(),32))), -Def(Tid(732, "%000002dc"), Attrs([Attr("address","0x720"), -Attr("insn","ldr w9, [x9, #0x34]")]), Var("R9",Imm(64)), -UNSIGNED(64,Load(Var("mem",Mem(64,8)),PLUS(Var("R9",Imm(64)),Int(52,64)),LittleEndian(),32))), -Def(Tid(738, "%000002e2"), Attrs([Attr("address","0x724"), -Attr("insn","cmp w8, #0x0")]), Var("#4",Imm(32)), -PLUS(Extract(31,0,Var("R8",Imm(64))),Int(4294967295,32))), -Def(Tid(743, "%000002e7"), Attrs([Attr("address","0x724"), -Attr("insn","cmp w8, #0x0")]), Var("VF",Imm(1)), -NEQ(SIGNED(33,PLUS(Var("#4",Imm(32)),Int(1,32))),PLUS(SIGNED(33,Extract(31,0,Var("R8",Imm(64)))),Int(0,33)))), -Def(Tid(748, "%000002ec"), Attrs([Attr("address","0x724"), -Attr("insn","cmp w8, #0x0")]), Var("CF",Imm(1)), -NEQ(UNSIGNED(33,PLUS(Var("#4",Imm(32)),Int(1,32))),PLUS(UNSIGNED(33,Extract(31,0,Var("R8",Imm(64)))),Int(4294967296,33)))), -Def(Tid(752, "%000002f0"), Attrs([Attr("address","0x724"), -Attr("insn","cmp w8, #0x0")]), Var("ZF",Imm(1)), -EQ(PLUS(Var("#4",Imm(32)),Int(1,32)),Int(0,32))), Def(Tid(756, "%000002f4"), - Attrs([Attr("address","0x724"), Attr("insn","cmp w8, #0x0")]), - Var("NF",Imm(1)), Extract(31,31,PLUS(Var("#4",Imm(32)),Int(1,32))))]), -Jmps([Goto(Tid(769, "%00000301"), Attrs([Attr("address","0x728"), -Attr("insn","csel w0, wzr, w9, eq")]), EQ(Var("ZF",Imm(1)),Int(1,1)), -Direct(Tid(761, "%000002f9"))), Goto(Tid(770, "%00000302"), - Attrs([Attr("address","0x728"), Attr("insn","csel w0, wzr, w9, eq")]), - Int(1,1), Direct(Tid(765, "%000002fd")))])), Blk(Tid(765, "%000002fd"), - Attrs([]), Phis([]), Defs([Def(Tid(766, "%000002fe"), - Attrs([Attr("address","0x728"), Attr("insn","csel w0, wzr, w9, eq")]), - Var("R0",Imm(64)), UNSIGNED(64,Extract(31,0,Var("R9",Imm(64)))))]), -Jmps([Goto(Tid(772, "%00000304"), Attrs([Attr("address","0x728"), -Attr("insn","csel w0, wzr, w9, eq")]), Int(1,1), -Direct(Tid(768, "%00000300")))])), Blk(Tid(761, "%000002f9"), Attrs([]), - Phis([]), Defs([Def(Tid(762, "%000002fa"), Attrs([Attr("address","0x728"), -Attr("insn","csel w0, wzr, w9, eq")]), Var("R0",Imm(64)), Int(0,64))]), -Jmps([Goto(Tid(771, "%00000303"), Attrs([Attr("address","0x728"), -Attr("insn","csel w0, wzr, w9, eq")]), Int(1,1), -Direct(Tid(768, "%00000300")))])), Blk(Tid(768, "%00000300"), Attrs([]), - Phis([]), Defs([]), Jmps([Call(Tid(777, "%00000309"), - Attrs([Attr("address","0x72C"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), -Sub(Tid(1_439, "@register_tm_clones"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x680")]), - "register_tm_clones", Args([Arg(Tid(1_487, "%000005cf"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("register_tm_clones_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(556, "@register_tm_clones"), Attrs([Attr("address","0x680")]), - Phis([]), Defs([Def(Tid(559, "%0000022f"), Attrs([Attr("address","0x680"), -Attr("insn","adrp x0, #69632")]), Var("R0",Imm(64)), Int(69632,64)), -Def(Tid(565, "%00000235"), Attrs([Attr("address","0x684"), -Attr("insn","add x0, x0, #0x30")]), Var("R0",Imm(64)), -PLUS(Var("R0",Imm(64)),Int(48,64))), Def(Tid(570, "%0000023a"), - Attrs([Attr("address","0x688"), Attr("insn","adrp x1, #69632")]), - Var("R1",Imm(64)), Int(69632,64)), Def(Tid(576, "%00000240"), - Attrs([Attr("address","0x68C"), Attr("insn","add x1, x1, #0x30")]), - Var("R1",Imm(64)), PLUS(Var("R1",Imm(64)),Int(48,64))), -Def(Tid(583, "%00000247"), Attrs([Attr("address","0x690"), -Attr("insn","sub x1, x1, x0")]), Var("R1",Imm(64)), -PLUS(PLUS(Var("R1",Imm(64)),NOT(Var("R0",Imm(64)))),Int(1,64))), -Def(Tid(589, "%0000024d"), Attrs([Attr("address","0x694"), -Attr("insn","lsr x2, x1, #63")]), Var("R2",Imm(64)), -Concat(Int(0,63),Extract(63,63,Var("R1",Imm(64))))), -Def(Tid(596, "%00000254"), Attrs([Attr("address","0x698"), -Attr("insn","add x1, x2, x1, asr #3")]), Var("R1",Imm(64)), -PLUS(Var("R2",Imm(64)),ARSHIFT(Var("R1",Imm(64)),Int(3,3)))), -Def(Tid(602, "%0000025a"), Attrs([Attr("address","0x69C"), -Attr("insn","asr x1, x1, #1")]), Var("R1",Imm(64)), -SIGNED(64,Extract(63,1,Var("R1",Imm(64)))))]), -Jmps([Goto(Tid(608, "%00000260"), Attrs([Attr("address","0x6A0"), -Attr("insn","cbz x1, #0x18")]), EQ(Var("R1",Imm(64)),Int(0,64)), -Direct(Tid(606, "%0000025e"))), Goto(Tid(1_468, "%000005bc"), Attrs([]), - Int(1,1), Direct(Tid(838, "%00000346")))])), Blk(Tid(838, "%00000346"), - Attrs([Attr("address","0x6A4")]), Phis([]), Defs([Def(Tid(841, "%00000349"), - Attrs([Attr("address","0x6A4"), Attr("insn","adrp x2, #65536")]), - Var("R2",Imm(64)), Int(65536,64)), Def(Tid(848, "%00000350"), - Attrs([Attr("address","0x6A8"), Attr("insn","ldr x2, [x2, #0xfe0]")]), - Var("R2",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R2",Imm(64)),Int(4064,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(853, "%00000355"), Attrs([Attr("address","0x6AC"), -Attr("insn","cbz x2, #0xc")]), EQ(Var("R2",Imm(64)),Int(0,64)), -Direct(Tid(606, "%0000025e"))), Goto(Tid(1_469, "%000005bd"), Attrs([]), - Int(1,1), Direct(Tid(857, "%00000359")))])), Blk(Tid(606, "%0000025e"), - Attrs([Attr("address","0x6B8")]), Phis([]), Defs([]), -Jmps([Call(Tid(614, "%00000266"), Attrs([Attr("address","0x6B8"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))])), -Blk(Tid(857, "%00000359"), Attrs([Attr("address","0x6B0")]), Phis([]), -Defs([Def(Tid(861, "%0000035d"), Attrs([Attr("address","0x6B0"), -Attr("insn","mov x16, x2")]), Var("R16",Imm(64)), Var("R2",Imm(64)))]), -Jmps([Call(Tid(866, "%00000362"), Attrs([Attr("address","0x6B4"), -Attr("insn","br x16")]), Int(1,1), -(Indirect(Var("R16",Imm(64))),))]))]))]))) \ No newline at end of file diff --git a/src/test/correct/basic_function_call_reader/clang_O2/basic_function_call_reader.bir b/src/test/correct/basic_function_call_reader/clang_O2/basic_function_call_reader.bir deleted file mode 100644 index def5b68b3..000000000 --- a/src/test/correct/basic_function_call_reader/clang_O2/basic_function_call_reader.bir +++ /dev/null @@ -1,244 +0,0 @@ -000005be: program -0000058c: sub __cxa_finalize(__cxa_finalize_result) -000005bf: __cxa_finalize_result :: out u32 = low:32[R0] - -00000342: -0000043a: R16 := 0x11000 -00000441: R17 := mem[R16 + 8, el]:u64 -00000447: R16 := R16 + 8 -0000044c: call R17 with noreturn - -0000058d: sub __do_global_dtors_aux(__do_global_dtors_aux_result) -000005c0: __do_global_dtors_aux_result :: out u32 = low:32[R0] - -0000026a: -0000026e: #3 := R31 - 0x20 -00000274: mem := mem with [#3, el]:u64 <- R29 -0000027a: mem := mem with [#3 + 8, el]:u64 <- R30 -0000027e: R31 := #3 -00000284: R29 := R31 -0000028c: mem := mem with [R31 + 0x10, el]:u64 <- R19 -00000291: R19 := 0x11000 -00000298: R0 := pad:64[mem[R19 + 0x30]] -0000029f: when 31:0[R0] <> 0 goto %0000029d -000005b4: goto %0000030b - -0000030b: -0000030e: R0 := 0x10000 -00000315: R0 := mem[R0 + 0xFC8, el]:u64 -0000031b: when R0 = 0 goto %00000319 -000005b5: goto %00000332 - -00000332: -00000335: R0 := 0x11000 -0000033c: R0 := mem[R0 + 0x28, el]:u64 -00000341: R30 := 0x6F0 -00000344: call @__cxa_finalize with return %00000319 - -00000319: -00000321: R30 := 0x6F4 -00000323: call @deregister_tm_clones with return %00000325 - -00000325: -00000328: R0 := 1 -00000330: mem := mem with [R19 + 0x30] <- 7:0[R0] -000005b6: goto %0000029d - -0000029d: -000002a7: R19 := mem[R31 + 0x10, el]:u64 -000002ae: R29 := mem[R31, el]:u64 -000002b3: R30 := mem[R31 + 8, el]:u64 -000002b7: R31 := R31 + 0x20 -000002bc: call R30 with noreturn - -00000591: sub __libc_start_main(__libc_start_main_main, __libc_start_main_arg2, __libc_start_main_arg3, __libc_start_main_auxv, __libc_start_main_result) -000005c1: __libc_start_main_main :: in u64 = R0 -000005c2: __libc_start_main_arg2 :: in u32 = low:32[R1] -000005c3: __libc_start_main_arg3 :: in out u64 = R2 -000005c4: __libc_start_main_auxv :: in out u64 = R3 -000005c5: __libc_start_main_result :: out u32 = low:32[R0] - -000001c3: -00000424: R16 := 0x11000 -0000042b: R17 := mem[R16, el]:u64 -00000431: R16 := R16 -00000436: call R17 with noreturn - -00000592: sub _fini(_fini_result) -000005c6: _fini_result :: out u32 = low:32[R0] - -0000001f: -00000025: #0 := R31 - 0x10 -0000002b: mem := mem with [#0, el]:u64 <- R29 -00000031: mem := mem with [#0 + 8, el]:u64 <- R30 -00000035: R31 := #0 -0000003b: R29 := R31 -00000042: R29 := mem[R31, el]:u64 -00000047: R30 := mem[R31 + 8, el]:u64 -0000004b: R31 := R31 + 0x10 -00000050: call R30 with noreturn - -00000593: sub _init(_init_result) -000005c7: _init_result :: out u32 = low:32[R0] - -000004e7: -000004ed: #6 := R31 - 0x10 -000004f3: mem := mem with [#6, el]:u64 <- R29 -000004f9: mem := mem with [#6 + 8, el]:u64 <- R30 -000004fd: R31 := #6 -00000503: R29 := R31 -00000508: R30 := 0x590 -0000050a: call @call_weak_fn with return %0000050c - -0000050c: -00000511: R29 := mem[R31, el]:u64 -00000516: R30 := mem[R31 + 8, el]:u64 -0000051a: R31 := R31 + 0x10 -0000051f: call R30 with noreturn - -00000594: sub _start(_start_result) -000005c8: _start_result :: out u32 = low:32[R0] - -00000184: -00000189: R29 := 0 -0000018e: R30 := 0 -00000194: R5 := R0 -0000019b: R1 := mem[R31, el]:u64 -000001a1: R2 := R31 + 8 -000001a7: R6 := R31 -000001ac: R0 := 0x10000 -000001b3: R0 := mem[R0 + 0xFD8, el]:u64 -000001b8: R3 := 0 -000001bd: R4 := 0 -000001c2: R30 := 0x630 -000001c5: call @__libc_start_main with return %000001c7 - -000001c7: -000001ca: R30 := 0x634 -000001cd: call @abort with return %000005b7 - -000005b7: -000005b8: call @call_weak_fn with noreturn - -00000597: sub abort() - - -000001cb: -00000466: R16 := 0x11000 -0000046d: R17 := mem[R16 + 0x18, el]:u64 -00000473: R16 := R16 + 0x18 -00000478: call R17 with noreturn - -00000598: sub call_weak_fn(call_weak_fn_result) -000005c9: call_weak_fn_result :: out u32 = low:32[R0] - -000001cf: -000001d2: R0 := 0x10000 -000001d9: R0 := mem[R0 + 0xFD0, el]:u64 -000001df: when R0 = 0 goto %000001dd -000005b9: goto %00000382 - -000001dd: -000001e5: call R30 with noreturn - -00000382: -00000385: goto @__gmon_start__ - -00000383: -00000450: R16 := 0x11000 -00000457: R17 := mem[R16 + 0x10, el]:u64 -0000045d: R16 := R16 + 0x10 -00000462: call R17 with noreturn - -0000059a: sub deregister_tm_clones(deregister_tm_clones_result) -000005ca: deregister_tm_clones_result :: out u32 = low:32[R0] - -000001eb: -000001ee: R0 := 0x11000 -000001f4: R0 := R0 + 0x30 -000001f9: R1 := 0x11000 -000001ff: R1 := R1 + 0x30 -00000205: #1 := ~R0 -0000020a: #2 := R1 + ~R0 -00000210: VF := extend:65[#2 + 1] <> extend:65[R1] + extend:65[#1] + 1 -00000216: CF := pad:65[#2 + 1] <> pad:65[R1] + pad:65[#1] + 1 -0000021a: ZF := #2 + 1 = 0 -0000021e: NF := 63:63[#2 + 1] -00000224: when ZF goto %00000222 -000005ba: goto %00000364 - -00000364: -00000367: R1 := 0x10000 -0000036e: R1 := mem[R1 + 0xFC0, el]:u64 -00000373: when R1 = 0 goto %00000222 -000005bb: goto %00000377 - -00000222: -0000022a: call R30 with noreturn - -00000377: -0000037b: R16 := R1 -00000380: call R16 with noreturn - -0000059d: sub frame_dummy(frame_dummy_result) -000005cb: frame_dummy_result :: out u32 = low:32[R0] - -000002c2: -000002c4: call @register_tm_clones with noreturn - -0000059e: sub main(main_argc, main_argv, main_result) -000005cc: main_argc :: in u32 = low:32[R0] -000005cd: main_argv :: in out u64 = R1 -000005ce: main_result :: out u32 = low:32[R0] - -000002c6: -000002c9: R8 := 0x11000 -000002ce: R9 := 0x11000 -000002d5: R8 := pad:64[mem[R8 + 0x38, el]:u32] -000002dc: R9 := pad:64[mem[R9 + 0x34, el]:u32] -000002e2: #4 := 31:0[R8] - 1 -000002e7: VF := extend:33[#4 + 1] <> extend:33[31:0[R8]] + 0 -000002ec: CF := pad:33[#4 + 1] <> pad:33[31:0[R8]] - 0x100000000 -000002f0: ZF := #4 + 1 = 0 -000002f4: NF := 31:31[#4 + 1] -00000301: when ZF goto %000002f9 -00000302: goto %000002fd - -000002fd: -000002fe: R0 := pad:64[31:0[R9]] -00000304: goto %00000300 - -000002f9: -000002fa: R0 := 0 -00000303: goto %00000300 - -00000300: -00000309: call R30 with noreturn - -0000059f: sub register_tm_clones(register_tm_clones_result) -000005cf: register_tm_clones_result :: out u32 = low:32[R0] - -0000022c: -0000022f: R0 := 0x11000 -00000235: R0 := R0 + 0x30 -0000023a: R1 := 0x11000 -00000240: R1 := R1 + 0x30 -00000247: R1 := R1 + ~R0 + 1 -0000024d: R2 := 0.63:63[R1] -00000254: R1 := R2 + (R1 ~>> 3) -0000025a: R1 := extend:64[63:1[R1]] -00000260: when R1 = 0 goto %0000025e -000005bc: goto %00000346 - -00000346: -00000349: R2 := 0x10000 -00000350: R2 := mem[R2 + 0xFE0, el]:u64 -00000355: when R2 = 0 goto %0000025e -000005bd: goto %00000359 - -0000025e: -00000266: call R30 with noreturn - -00000359: -0000035d: R16 := R2 -00000362: call R16 with noreturn diff --git a/src/test/correct/basic_function_call_reader/clang_O2/basic_function_call_reader.expected b/src/test/correct/basic_function_call_reader/clang_O2/basic_function_call_reader.expected index fff5605d6..632ee8925 100644 --- a/src/test/correct/basic_function_call_reader/clang_O2/basic_function_call_reader.expected +++ b/src/test/correct/basic_function_call_reader/clang_O2/basic_function_call_reader.expected @@ -15,24 +15,24 @@ var {:extern} VF: bv1; var {:extern} ZF: bv1; var {:extern} mem: [bv64]bv8; const {:extern} $x_addr: bv64; -axiom ($x_addr == 69688bv64); +axiom ($x_addr == 131096bv64); const {:extern} $y_addr: bv64; -axiom ($y_addr == 69684bv64); +axiom ($y_addr == 131092bv64); function {:extern} L(mem$in: [bv64]bv8, index: bv64) returns (bool) { (if (index == $y_addr) then (memory_load32_le(mem$in, $x_addr) == 1bv32) else (if (index == $x_addr) then true else false)) } -function {:extern} {:bvbuiltin "bvadd"} bvadd32(bv32, bv32) returns (bv32); -function {:extern} {:bvbuiltin "bvadd"} bvadd33(bv33, bv33) returns (bv33); function {:extern} {:bvbuiltin "bvadd"} bvadd64(bv64, bv64) returns (bv64); function {:extern} {:bvbuiltin "bvcomp"} bvcomp1(bv1, bv1) returns (bv1); function {:extern} {:bvbuiltin "bvcomp"} bvcomp32(bv32, bv32) returns (bv1); -function {:extern} {:bvbuiltin "bvcomp"} bvcomp33(bv33, bv33) returns (bv1); -function {:extern} {:bvbuiltin "bvnot"} bvnot1(bv1) returns (bv1); function {:extern} gamma_load32(gammaMap: [bv64]bool, index: bv64) returns (bool) { (gammaMap[bvadd64(index, 3bv64)] && (gammaMap[bvadd64(index, 2bv64)] && (gammaMap[bvadd64(index, 1bv64)] && gammaMap[index]))) } +function {:extern} gamma_load64(gammaMap: [bv64]bool, index: bv64) returns (bool) { + (gammaMap[bvadd64(index, 7bv64)] && (gammaMap[bvadd64(index, 6bv64)] && (gammaMap[bvadd64(index, 5bv64)] && (gammaMap[bvadd64(index, 4bv64)] && (gammaMap[bvadd64(index, 3bv64)] && (gammaMap[bvadd64(index, 2bv64)] && (gammaMap[bvadd64(index, 1bv64)] && gammaMap[index]))))))) +} + function {:extern} memory_load32_le(memory: [bv64]bv8, index: bv64) returns (bv32) { (memory[bvadd64(index, 3bv64)] ++ (memory[bvadd64(index, 2bv64)] ++ (memory[bvadd64(index, 1bv64)] ++ memory[index]))) } @@ -41,19 +41,19 @@ function {:extern} memory_load64_le(memory: [bv64]bv8, index: bv64) returns (bv6 (memory[bvadd64(index, 7bv64)] ++ (memory[bvadd64(index, 6bv64)] ++ (memory[bvadd64(index, 5bv64)] ++ (memory[bvadd64(index, 4bv64)] ++ (memory[bvadd64(index, 3bv64)] ++ (memory[bvadd64(index, 2bv64)] ++ (memory[bvadd64(index, 1bv64)] ++ memory[index]))))))) } -function {:extern} {:bvbuiltin "sign_extend 1"} sign_extend1_32(bv32) returns (bv33); -function {:extern} {:bvbuiltin "zero_extend 1"} zero_extend1_32(bv32) returns (bv33); function {:extern} {:bvbuiltin "zero_extend 32"} zero_extend32_32(bv32) returns (bv64); procedure {:extern} rely(); modifies Gamma_mem, mem; ensures (forall i: bv64 :: (((mem[i] == old(mem[i])) ==> (Gamma_mem[i] == old(Gamma_mem[i]))))); ensures ((old(memory_load32_le(mem, $x_addr)) == 0bv32) ==> (memory_load32_le(mem, $x_addr) == 0bv32)); ensures (old(gamma_load32(Gamma_mem, $y_addr)) ==> ((memory_load32_le(mem, $x_addr) == 0bv32) || gamma_load32(Gamma_mem, $y_addr))); - free ensures (memory_load32_le(mem, 1860bv64) == 131073bv32); - free ensures (memory_load64_le(mem, 69064bv64) == 1808bv64); - free ensures (memory_load64_le(mem, 69072bv64) == 1728bv64); - free ensures (memory_load64_le(mem, 69592bv64) == 1812bv64); - free ensures (memory_load64_le(mem, 69672bv64) == 69672bv64); + free ensures (memory_load32_le(mem, 2316bv64) == 131073bv32); + free ensures (memory_load64_le(mem, 130424bv64) == 2256bv64); + free ensures (memory_load64_le(mem, 130432bv64) == 2176bv64); + free ensures (memory_load64_le(mem, 131032bv64) == 131096bv64); + free ensures (memory_load64_le(mem, 131048bv64) == 131092bv64); + free ensures (memory_load64_le(mem, 131056bv64) == 2260bv64); + free ensures (memory_load64_le(mem, 131080bv64) == 131080bv64); procedure {:extern} rely_transitive(); modifies Gamma_mem, mem; @@ -83,67 +83,78 @@ implementation {:extern} guarantee_reflexive() assert (memory_load32_le(mem, $y_addr) == memory_load32_le(mem, $y_addr)); } -procedure main_1812(); +procedure main(); modifies CF, Gamma_CF, Gamma_NF, Gamma_R0, Gamma_R8, Gamma_R9, Gamma_VF, Gamma_ZF, Gamma_mem, NF, R0, R8, R9, VF, ZF, mem; - free requires (memory_load64_le(mem, 69664bv64) == 0bv64); - free requires (memory_load64_le(mem, 69672bv64) == 69672bv64); - free requires (memory_load32_le(mem, 1860bv64) == 131073bv32); - free requires (memory_load64_le(mem, 69064bv64) == 1808bv64); - free requires (memory_load64_le(mem, 69072bv64) == 1728bv64); - free requires (memory_load64_le(mem, 69592bv64) == 1812bv64); - free requires (memory_load64_le(mem, 69672bv64) == 69672bv64); - free ensures (memory_load32_le(mem, 1860bv64) == 131073bv32); - free ensures (memory_load64_le(mem, 69064bv64) == 1808bv64); - free ensures (memory_load64_le(mem, 69072bv64) == 1728bv64); - free ensures (memory_load64_le(mem, 69592bv64) == 1812bv64); - free ensures (memory_load64_le(mem, 69672bv64) == 69672bv64); + free requires (memory_load64_le(mem, 131072bv64) == 0bv64); + free requires (memory_load64_le(mem, 131080bv64) == 131080bv64); + free requires (memory_load32_le(mem, 2316bv64) == 131073bv32); + free requires (memory_load64_le(mem, 130424bv64) == 2256bv64); + free requires (memory_load64_le(mem, 130432bv64) == 2176bv64); + free requires (memory_load64_le(mem, 131032bv64) == 131096bv64); + free requires (memory_load64_le(mem, 131048bv64) == 131092bv64); + free requires (memory_load64_le(mem, 131056bv64) == 2260bv64); + free requires (memory_load64_le(mem, 131080bv64) == 131080bv64); + free ensures (memory_load32_le(mem, 2316bv64) == 131073bv32); + free ensures (memory_load64_le(mem, 130424bv64) == 2256bv64); + free ensures (memory_load64_le(mem, 130432bv64) == 2176bv64); + free ensures (memory_load64_le(mem, 131032bv64) == 131096bv64); + free ensures (memory_load64_le(mem, 131048bv64) == 131092bv64); + free ensures (memory_load64_le(mem, 131056bv64) == 2260bv64); + free ensures (memory_load64_le(mem, 131080bv64) == 131080bv64); -implementation main_1812() +implementation main() { - var #4: bv32; - var Gamma_#4: bool; - var Gamma_load18: bool; - var Gamma_load19: bool; - var load18: bv32; - var load19: bv32; + var $load$18: bv64; + var $load$19: bv64; + var $load$20: bv32; + var $load$21: bv32; + var Gamma_$load$18: bool; + var Gamma_$load$19: bool; + var Gamma_$load$20: bool; + var Gamma_$load$21: bool; lmain: assume {:captureState "lmain"} true; - R8, Gamma_R8 := 69632bv64, true; - R9, Gamma_R9 := 69632bv64, true; + R8, Gamma_R8 := 126976bv64, true; + R9, Gamma_R9 := 126976bv64, true; + call rely(); + $load$18, Gamma_$load$18 := memory_load64_le(mem, bvadd64(R8, 4056bv64)), (gamma_load64(Gamma_mem, bvadd64(R8, 4056bv64)) || L(mem, bvadd64(R8, 4056bv64))); + R8, Gamma_R8 := $load$18, Gamma_$load$18; + call rely(); + $load$19, Gamma_$load$19 := memory_load64_le(mem, bvadd64(R9, 4072bv64)), (gamma_load64(Gamma_mem, bvadd64(R9, 4072bv64)) || L(mem, bvadd64(R9, 4072bv64))); + R9, Gamma_R9 := $load$19, Gamma_$load$19; call rely(); - load18, Gamma_load18 := memory_load32_le(mem, bvadd64(R8, 56bv64)), (gamma_load32(Gamma_mem, bvadd64(R8, 56bv64)) || L(mem, bvadd64(R8, 56bv64))); - R8, Gamma_R8 := zero_extend32_32(load18), Gamma_load18; + $load$20, Gamma_$load$20 := memory_load32_le(mem, R8), (gamma_load32(Gamma_mem, R8) || L(mem, R8)); + R8, Gamma_R8 := zero_extend32_32($load$20), Gamma_$load$20; call rely(); - load19, Gamma_load19 := memory_load32_le(mem, bvadd64(R9, 52bv64)), (gamma_load32(Gamma_mem, bvadd64(R9, 52bv64)) || L(mem, bvadd64(R9, 52bv64))); - R9, Gamma_R9 := zero_extend32_32(load19), Gamma_load19; - #4, Gamma_#4 := bvadd32(R8[32:0], 4294967295bv32), Gamma_R8; - VF, Gamma_VF := bvnot1(bvcomp33(sign_extend1_32(bvadd32(#4, 1bv32)), bvadd33(sign_extend1_32(R8[32:0]), 0bv33))), (Gamma_R8 && Gamma_#4); - CF, Gamma_CF := bvnot1(bvcomp33(zero_extend1_32(bvadd32(#4, 1bv32)), bvadd33(zero_extend1_32(R8[32:0]), 4294967296bv33))), (Gamma_R8 && Gamma_#4); - ZF, Gamma_ZF := bvcomp32(bvadd32(#4, 1bv32), 0bv32), Gamma_#4; - NF, Gamma_NF := bvadd32(#4, 1bv32)[32:31], Gamma_#4; + $load$21, Gamma_$load$21 := memory_load32_le(mem, R9), (gamma_load32(Gamma_mem, R9) || L(mem, R9)); + R9, Gamma_R9 := zero_extend32_32($load$21), Gamma_$load$21; + VF, Gamma_VF := 0bv1, true; + CF, Gamma_CF := 1bv1, true; + ZF, Gamma_ZF := bvcomp32(R8[32:0], 0bv32), Gamma_R8; + NF, Gamma_NF := R8[32:31], Gamma_R8; assert Gamma_ZF; - goto lmain_goto_l000002f9, lmain_goto_l000002fd; - lmain_goto_l000002fd: - assume {:captureState "lmain_goto_l000002fd"} true; - assume (bvcomp1(ZF, 1bv1) == 0bv1); + goto lmain_goto_l000002a8, lmain_goto_l000002b0; + l000002b0: + assume {:captureState "l000002b0"} true; R0, Gamma_R0 := zero_extend32_32(R9[32:0]), Gamma_R9; - goto l000002fd; - l000002fd: - assume {:captureState "l000002fd"} true; - goto l00000300; - lmain_goto_l000002f9: - assume {:captureState "lmain_goto_l000002f9"} true; - assume (bvcomp1(ZF, 1bv1) != 0bv1); + goto l000002bc; + l000002a8: + assume {:captureState "l000002a8"} true; R0, Gamma_R0 := 0bv64, true; - goto l000002f9; - l000002f9: - assume {:captureState "l000002f9"} true; - goto l00000300; - l00000300: - assume {:captureState "l00000300"} true; - goto main_1812_basil_return; - main_1812_basil_return: - assume {:captureState "main_1812_basil_return"} true; + goto l000002bc; + l000002bc: + assume {:captureState "l000002bc"} true; + goto main_basil_return; + lmain_goto_l000002a8: + assume {:captureState "lmain_goto_l000002a8"} true; + assume (bvcomp1(ZF, 1bv1) != 0bv1); + goto l000002a8; + lmain_goto_l000002b0: + assume {:captureState "lmain_goto_l000002b0"} true; + assume (bvcomp1(ZF, 1bv1) == 0bv1); + goto l000002b0; + main_basil_return: + assume {:captureState "main_basil_return"} true; return; } diff --git a/src/test/correct/basic_function_call_reader/clang_O2/basic_function_call_reader.gts b/src/test/correct/basic_function_call_reader/clang_O2/basic_function_call_reader.gts deleted file mode 100644 index 0c88fddfd..000000000 Binary files a/src/test/correct/basic_function_call_reader/clang_O2/basic_function_call_reader.gts and /dev/null differ diff --git a/src/test/correct/basic_function_call_reader/clang_O2/basic_function_call_reader.md5sum b/src/test/correct/basic_function_call_reader/clang_O2/basic_function_call_reader.md5sum new file mode 100644 index 000000000..549197297 --- /dev/null +++ b/src/test/correct/basic_function_call_reader/clang_O2/basic_function_call_reader.md5sum @@ -0,0 +1,5 @@ +7d5e4767e19cbba559cb01138804ef62 correct/basic_function_call_reader/clang_O2/a.out +0c3e09517b497a09d56acb18309481b2 correct/basic_function_call_reader/clang_O2/basic_function_call_reader.adt +2b135823683205d45265257a2f1b105a correct/basic_function_call_reader/clang_O2/basic_function_call_reader.bir +9549f5ed3e0320c04f5ba5868b3fb8eb correct/basic_function_call_reader/clang_O2/basic_function_call_reader.relf +450ff836e1a0b065d1fa38c3fa7ba7e7 correct/basic_function_call_reader/clang_O2/basic_function_call_reader.gts diff --git a/src/test/correct/basic_function_call_reader/clang_O2/basic_function_call_reader.relf b/src/test/correct/basic_function_call_reader/clang_O2/basic_function_call_reader.relf deleted file mode 100644 index ac1947a76..000000000 --- a/src/test/correct/basic_function_call_reader/clang_O2/basic_function_call_reader.relf +++ /dev/null @@ -1,124 +0,0 @@ - -Relocation section '.rela.dyn' at offset 0x460 contains 8 entries: - Offset Info Type Symbol's Value Symbol's Name + Addend -0000000000010dc8 0000000000000403 R_AARCH64_RELATIVE 710 -0000000000010dd0 0000000000000403 R_AARCH64_RELATIVE 6c0 -0000000000010fd8 0000000000000403 R_AARCH64_RELATIVE 714 -0000000000011028 0000000000000403 R_AARCH64_RELATIVE 11028 -0000000000010fc0 0000000400000401 R_AARCH64_GLOB_DAT 0000000000000000 _ITM_deregisterTMCloneTable + 0 -0000000000010fc8 0000000500000401 R_AARCH64_GLOB_DAT 0000000000000000 __cxa_finalize@GLIBC_2.17 + 0 -0000000000010fd0 0000000600000401 R_AARCH64_GLOB_DAT 0000000000000000 __gmon_start__ + 0 -0000000000010fe0 0000000800000401 R_AARCH64_GLOB_DAT 0000000000000000 _ITM_registerTMCloneTable + 0 - -Relocation section '.rela.plt' at offset 0x520 contains 4 entries: - Offset Info Type Symbol's Value Symbol's Name + Addend -0000000000011000 0000000300000402 R_AARCH64_JUMP_SLOT 0000000000000000 __libc_start_main@GLIBC_2.34 + 0 -0000000000011008 0000000500000402 R_AARCH64_JUMP_SLOT 0000000000000000 __cxa_finalize@GLIBC_2.17 + 0 -0000000000011010 0000000600000402 R_AARCH64_JUMP_SLOT 0000000000000000 __gmon_start__ + 0 -0000000000011018 0000000700000402 R_AARCH64_JUMP_SLOT 0000000000000000 abort@GLIBC_2.17 + 0 - -Symbol table '.dynsym' contains 9 entries: - Num: Value Size Type Bind Vis Ndx Name - 0: 0000000000000000 0 NOTYPE LOCAL DEFAULT UND - 1: 0000000000000580 0 SECTION LOCAL DEFAULT 11 .init - 2: 0000000000011020 0 SECTION LOCAL DEFAULT 23 .data - 3: 0000000000000000 0 FUNC GLOBAL DEFAULT UND __libc_start_main@GLIBC_2.34 (2) - 4: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_deregisterTMCloneTable - 5: 0000000000000000 0 FUNC WEAK DEFAULT UND __cxa_finalize@GLIBC_2.17 (3) - 6: 0000000000000000 0 NOTYPE WEAK DEFAULT UND __gmon_start__ - 7: 0000000000000000 0 FUNC GLOBAL DEFAULT UND abort@GLIBC_2.17 (3) - 8: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_registerTMCloneTable - -Symbol table '.symtab' contains 91 entries: - Num: Value Size Type Bind Vis Ndx Name - 0: 0000000000000000 0 NOTYPE LOCAL DEFAULT UND - 1: 0000000000000238 0 SECTION LOCAL DEFAULT 1 .interp - 2: 0000000000000254 0 SECTION LOCAL DEFAULT 2 .note.gnu.build-id - 3: 0000000000000278 0 SECTION LOCAL DEFAULT 3 .note.ABI-tag - 4: 0000000000000298 0 SECTION LOCAL DEFAULT 4 .gnu.hash - 5: 00000000000002b8 0 SECTION LOCAL DEFAULT 5 .dynsym - 6: 0000000000000390 0 SECTION LOCAL DEFAULT 6 .dynstr - 7: 000000000000041e 0 SECTION LOCAL DEFAULT 7 .gnu.version - 8: 0000000000000430 0 SECTION LOCAL DEFAULT 8 .gnu.version_r - 9: 0000000000000460 0 SECTION LOCAL DEFAULT 9 .rela.dyn - 10: 0000000000000520 0 SECTION LOCAL DEFAULT 10 .rela.plt - 11: 0000000000000580 0 SECTION LOCAL DEFAULT 11 .init - 12: 00000000000005a0 0 SECTION LOCAL DEFAULT 12 .plt - 13: 0000000000000600 0 SECTION LOCAL DEFAULT 13 .text - 14: 0000000000000730 0 SECTION LOCAL DEFAULT 14 .fini - 15: 0000000000000744 0 SECTION LOCAL DEFAULT 15 .rodata - 16: 0000000000000748 0 SECTION LOCAL DEFAULT 16 .eh_frame_hdr - 17: 0000000000000788 0 SECTION LOCAL DEFAULT 17 .eh_frame - 18: 0000000000010dc8 0 SECTION LOCAL DEFAULT 18 .init_array - 19: 0000000000010dd0 0 SECTION LOCAL DEFAULT 19 .fini_array - 20: 0000000000010dd8 0 SECTION LOCAL DEFAULT 20 .dynamic - 21: 0000000000010fb8 0 SECTION LOCAL DEFAULT 21 .got - 22: 0000000000010fe8 0 SECTION LOCAL DEFAULT 22 .got.plt - 23: 0000000000011020 0 SECTION LOCAL DEFAULT 23 .data - 24: 0000000000011030 0 SECTION LOCAL DEFAULT 24 .bss - 25: 0000000000000000 0 SECTION LOCAL DEFAULT 25 .comment - 26: 0000000000000000 0 FILE LOCAL DEFAULT ABS Scrt1.o - 27: 0000000000000278 0 NOTYPE LOCAL DEFAULT 3 $d - 28: 0000000000000278 32 OBJECT LOCAL DEFAULT 3 __abi_tag - 29: 0000000000000600 0 NOTYPE LOCAL DEFAULT 13 $x - 30: 000000000000079c 0 NOTYPE LOCAL DEFAULT 17 $d - 31: 0000000000000744 0 NOTYPE LOCAL DEFAULT 15 $d - 32: 0000000000000000 0 FILE LOCAL DEFAULT ABS crti.o - 33: 0000000000000634 0 NOTYPE LOCAL DEFAULT 13 $x - 34: 0000000000000634 20 FUNC LOCAL DEFAULT 13 call_weak_fn - 35: 0000000000000580 0 NOTYPE LOCAL DEFAULT 11 $x - 36: 0000000000000730 0 NOTYPE LOCAL DEFAULT 14 $x - 37: 0000000000000000 0 FILE LOCAL DEFAULT ABS crtn.o - 38: 0000000000000590 0 NOTYPE LOCAL DEFAULT 11 $x - 39: 000000000000073c 0 NOTYPE LOCAL DEFAULT 14 $x - 40: 0000000000000000 0 FILE LOCAL DEFAULT ABS crtstuff.c - 41: 0000000000000650 0 NOTYPE LOCAL DEFAULT 13 $x - 42: 0000000000000650 0 FUNC LOCAL DEFAULT 13 deregister_tm_clones - 43: 0000000000000680 0 FUNC LOCAL DEFAULT 13 register_tm_clones - 44: 0000000000011028 0 NOTYPE LOCAL DEFAULT 23 $d - 45: 00000000000006c0 0 FUNC LOCAL DEFAULT 13 __do_global_dtors_aux - 46: 0000000000011030 1 OBJECT LOCAL DEFAULT 24 completed.0 - 47: 0000000000010dd0 0 NOTYPE LOCAL DEFAULT 19 $d - 48: 0000000000010dd0 0 OBJECT LOCAL DEFAULT 19 __do_global_dtors_aux_fini_array_entry - 49: 0000000000000710 0 FUNC LOCAL DEFAULT 13 frame_dummy - 50: 0000000000010dc8 0 NOTYPE LOCAL DEFAULT 18 $d - 51: 0000000000010dc8 0 OBJECT LOCAL DEFAULT 18 __frame_dummy_init_array_entry - 52: 00000000000007b0 0 NOTYPE LOCAL DEFAULT 17 $d - 53: 0000000000011030 0 NOTYPE LOCAL DEFAULT 24 $d - 54: 0000000000000000 0 FILE LOCAL DEFAULT ABS basic_function_call_reader.c - 55: 0000000000000714 0 NOTYPE LOCAL DEFAULT 13 $x.0 - 56: 0000000000011034 0 NOTYPE LOCAL DEFAULT 24 $d.1 - 57: 000000000000002a 0 NOTYPE LOCAL DEFAULT 25 $d.2 - 58: 0000000000000810 0 NOTYPE LOCAL DEFAULT 17 $d.3 - 59: 0000000000000000 0 FILE LOCAL DEFAULT ABS crtstuff.c - 60: 0000000000000838 0 NOTYPE LOCAL DEFAULT 17 $d - 61: 0000000000000838 0 OBJECT LOCAL DEFAULT 17 __FRAME_END__ - 62: 0000000000000000 0 FILE LOCAL DEFAULT ABS - 63: 0000000000010dd8 0 OBJECT LOCAL DEFAULT ABS _DYNAMIC - 64: 0000000000000748 0 NOTYPE LOCAL DEFAULT 16 __GNU_EH_FRAME_HDR - 65: 0000000000010fb8 0 OBJECT LOCAL DEFAULT ABS _GLOBAL_OFFSET_TABLE_ - 66: 00000000000005a0 0 NOTYPE LOCAL DEFAULT 12 $x - 67: 0000000000000000 0 FUNC GLOBAL DEFAULT UND __libc_start_main@GLIBC_2.34 - 68: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_deregisterTMCloneTable - 69: 0000000000011020 0 NOTYPE WEAK DEFAULT 23 data_start - 70: 0000000000011030 0 NOTYPE GLOBAL DEFAULT 24 __bss_start__ - 71: 0000000000000000 0 FUNC WEAK DEFAULT UND __cxa_finalize@GLIBC_2.17 - 72: 0000000000011040 0 NOTYPE GLOBAL DEFAULT 24 _bss_end__ - 73: 0000000000011030 0 NOTYPE GLOBAL DEFAULT 23 _edata - 74: 0000000000011038 4 OBJECT GLOBAL DEFAULT 24 x - 75: 0000000000000730 0 FUNC GLOBAL HIDDEN 14 _fini - 76: 0000000000011040 0 NOTYPE GLOBAL DEFAULT 24 __bss_end__ - 77: 0000000000011020 0 NOTYPE GLOBAL DEFAULT 23 __data_start - 78: 0000000000000000 0 NOTYPE WEAK DEFAULT UND __gmon_start__ - 79: 0000000000011028 0 OBJECT GLOBAL HIDDEN 23 __dso_handle - 80: 0000000000000000 0 FUNC GLOBAL DEFAULT UND abort@GLIBC_2.17 - 81: 0000000000000744 4 OBJECT GLOBAL DEFAULT 15 _IO_stdin_used - 82: 0000000000011040 0 NOTYPE GLOBAL DEFAULT 24 _end - 83: 0000000000000600 52 FUNC GLOBAL DEFAULT 13 _start - 84: 0000000000011040 0 NOTYPE GLOBAL DEFAULT 24 __end__ - 85: 0000000000011034 4 OBJECT GLOBAL DEFAULT 24 y - 86: 0000000000011030 0 NOTYPE GLOBAL DEFAULT 24 __bss_start - 87: 0000000000000714 28 FUNC GLOBAL DEFAULT 13 main - 88: 0000000000011030 0 OBJECT GLOBAL HIDDEN 23 __TMC_END__ - 89: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_registerTMCloneTable - 90: 0000000000000580 0 FUNC GLOBAL HIDDEN 11 _init diff --git a/src/test/correct/basic_function_call_reader/clang_O2/basic_function_call_reader_gtirb.expected b/src/test/correct/basic_function_call_reader/clang_O2/basic_function_call_reader_gtirb.expected index 56d5b9b71..15eb6bde6 100644 --- a/src/test/correct/basic_function_call_reader/clang_O2/basic_function_call_reader_gtirb.expected +++ b/src/test/correct/basic_function_call_reader/clang_O2/basic_function_call_reader_gtirb.expected @@ -15,23 +15,23 @@ var {:extern} VF: bv1; var {:extern} ZF: bv1; var {:extern} mem: [bv64]bv8; const {:extern} $x_addr: bv64; -axiom ($x_addr == 69688bv64); +axiom ($x_addr == 131096bv64); const {:extern} $y_addr: bv64; -axiom ($y_addr == 69684bv64); +axiom ($y_addr == 131092bv64); function {:extern} L(mem$in: [bv64]bv8, index: bv64) returns (bool) { (if (index == $y_addr) then (memory_load32_le(mem$in, $x_addr) == 1bv32) else (if (index == $x_addr) then true else false)) } -function {:extern} {:bvbuiltin "bvadd"} bvadd32(bv32, bv32) returns (bv32); -function {:extern} {:bvbuiltin "bvadd"} bvadd33(bv33, bv33) returns (bv33); function {:extern} {:bvbuiltin "bvadd"} bvadd64(bv64, bv64) returns (bv64); function {:extern} {:bvbuiltin "bvcomp"} bvcomp32(bv32, bv32) returns (bv1); -function {:extern} {:bvbuiltin "bvcomp"} bvcomp33(bv33, bv33) returns (bv1); -function {:extern} {:bvbuiltin "bvnot"} bvnot1(bv1) returns (bv1); function {:extern} gamma_load32(gammaMap: [bv64]bool, index: bv64) returns (bool) { (gammaMap[bvadd64(index, 3bv64)] && (gammaMap[bvadd64(index, 2bv64)] && (gammaMap[bvadd64(index, 1bv64)] && gammaMap[index]))) } +function {:extern} gamma_load64(gammaMap: [bv64]bool, index: bv64) returns (bool) { + (gammaMap[bvadd64(index, 7bv64)] && (gammaMap[bvadd64(index, 6bv64)] && (gammaMap[bvadd64(index, 5bv64)] && (gammaMap[bvadd64(index, 4bv64)] && (gammaMap[bvadd64(index, 3bv64)] && (gammaMap[bvadd64(index, 2bv64)] && (gammaMap[bvadd64(index, 1bv64)] && gammaMap[index]))))))) +} + function {:extern} memory_load32_le(memory: [bv64]bv8, index: bv64) returns (bv32) { (memory[bvadd64(index, 3bv64)] ++ (memory[bvadd64(index, 2bv64)] ++ (memory[bvadd64(index, 1bv64)] ++ memory[index]))) } @@ -40,18 +40,19 @@ function {:extern} memory_load64_le(memory: [bv64]bv8, index: bv64) returns (bv6 (memory[bvadd64(index, 7bv64)] ++ (memory[bvadd64(index, 6bv64)] ++ (memory[bvadd64(index, 5bv64)] ++ (memory[bvadd64(index, 4bv64)] ++ (memory[bvadd64(index, 3bv64)] ++ (memory[bvadd64(index, 2bv64)] ++ (memory[bvadd64(index, 1bv64)] ++ memory[index]))))))) } -function {:extern} {:bvbuiltin "zero_extend 1"} zero_extend1_32(bv32) returns (bv33); function {:extern} {:bvbuiltin "zero_extend 32"} zero_extend32_32(bv32) returns (bv64); procedure {:extern} rely(); modifies Gamma_mem, mem; ensures (forall i: bv64 :: (((mem[i] == old(mem[i])) ==> (Gamma_mem[i] == old(Gamma_mem[i]))))); ensures ((old(memory_load32_le(mem, $x_addr)) == 0bv32) ==> (memory_load32_le(mem, $x_addr) == 0bv32)); ensures (old(gamma_load32(Gamma_mem, $y_addr)) ==> ((memory_load32_le(mem, $x_addr) == 0bv32) || gamma_load32(Gamma_mem, $y_addr))); - free ensures (memory_load32_le(mem, 1860bv64) == 131073bv32); - free ensures (memory_load64_le(mem, 69064bv64) == 1808bv64); - free ensures (memory_load64_le(mem, 69072bv64) == 1728bv64); - free ensures (memory_load64_le(mem, 69592bv64) == 1812bv64); - free ensures (memory_load64_le(mem, 69672bv64) == 69672bv64); + free ensures (memory_load32_le(mem, 2316bv64) == 131073bv32); + free ensures (memory_load64_le(mem, 130424bv64) == 2256bv64); + free ensures (memory_load64_le(mem, 130432bv64) == 2176bv64); + free ensures (memory_load64_le(mem, 131032bv64) == 131096bv64); + free ensures (memory_load64_le(mem, 131048bv64) == 131092bv64); + free ensures (memory_load64_le(mem, 131056bv64) == 2260bv64); + free ensures (memory_load64_le(mem, 131080bv64) == 131080bv64); procedure {:extern} rely_transitive(); modifies Gamma_mem, mem; @@ -81,58 +82,69 @@ implementation {:extern} guarantee_reflexive() assert (memory_load32_le(mem, $y_addr) == memory_load32_le(mem, $y_addr)); } -procedure main_1812(); +procedure main(); modifies CF, Gamma_CF, Gamma_NF, Gamma_R0, Gamma_R8, Gamma_R9, Gamma_VF, Gamma_ZF, Gamma_mem, NF, R0, R8, R9, VF, ZF, mem; - free requires (memory_load64_le(mem, 69664bv64) == 0bv64); - free requires (memory_load64_le(mem, 69672bv64) == 69672bv64); - free requires (memory_load32_le(mem, 1860bv64) == 131073bv32); - free requires (memory_load64_le(mem, 69064bv64) == 1808bv64); - free requires (memory_load64_le(mem, 69072bv64) == 1728bv64); - free requires (memory_load64_le(mem, 69592bv64) == 1812bv64); - free requires (memory_load64_le(mem, 69672bv64) == 69672bv64); - free ensures (memory_load32_le(mem, 1860bv64) == 131073bv32); - free ensures (memory_load64_le(mem, 69064bv64) == 1808bv64); - free ensures (memory_load64_le(mem, 69072bv64) == 1728bv64); - free ensures (memory_load64_le(mem, 69592bv64) == 1812bv64); - free ensures (memory_load64_le(mem, 69672bv64) == 69672bv64); + free requires (memory_load64_le(mem, 131072bv64) == 0bv64); + free requires (memory_load64_le(mem, 131080bv64) == 131080bv64); + free requires (memory_load32_le(mem, 2316bv64) == 131073bv32); + free requires (memory_load64_le(mem, 130424bv64) == 2256bv64); + free requires (memory_load64_le(mem, 130432bv64) == 2176bv64); + free requires (memory_load64_le(mem, 131032bv64) == 131096bv64); + free requires (memory_load64_le(mem, 131048bv64) == 131092bv64); + free requires (memory_load64_le(mem, 131056bv64) == 2260bv64); + free requires (memory_load64_le(mem, 131080bv64) == 131080bv64); + free ensures (memory_load32_le(mem, 2316bv64) == 131073bv32); + free ensures (memory_load64_le(mem, 130424bv64) == 2256bv64); + free ensures (memory_load64_le(mem, 130432bv64) == 2176bv64); + free ensures (memory_load64_le(mem, 131032bv64) == 131096bv64); + free ensures (memory_load64_le(mem, 131048bv64) == 131092bv64); + free ensures (memory_load64_le(mem, 131056bv64) == 2260bv64); + free ensures (memory_load64_le(mem, 131080bv64) == 131080bv64); -implementation main_1812() +implementation main() { - var Cse0__5_0_4: bv32; - var Gamma_Cse0__5_0_4: bool; - var Gamma_load4: bool; - var Gamma_load5: bool; - var load4: bv32; - var load5: bv32; - main_1812__0__ztKlXzTjTY~0ueqt2irBFw: - assume {:captureState "main_1812__0__ztKlXzTjTY~0ueqt2irBFw"} true; - R8, Gamma_R8 := 69632bv64, true; - R9, Gamma_R9 := 69632bv64, true; + var $load5: bv64; + var $load6: bv64; + var $load7: bv32; + var $load8: bv32; + var Gamma_$load5: bool; + var Gamma_$load6: bool; + var Gamma_$load7: bool; + var Gamma_$load8: bool; + $main$__0__$D9t2gNJrSmyMH3GAVRe3IQ: + assume {:captureState "$main$__0__$D9t2gNJrSmyMH3GAVRe3IQ"} true; + R8, Gamma_R8 := 126976bv64, true; + R9, Gamma_R9 := 126976bv64, true; + call rely(); + $load5, Gamma_$load5 := memory_load64_le(mem, bvadd64(R8, 4056bv64)), (gamma_load64(Gamma_mem, bvadd64(R8, 4056bv64)) || L(mem, bvadd64(R8, 4056bv64))); + R8, Gamma_R8 := $load5, Gamma_$load5; + call rely(); + $load6, Gamma_$load6 := memory_load64_le(mem, bvadd64(R9, 4072bv64)), (gamma_load64(Gamma_mem, bvadd64(R9, 4072bv64)) || L(mem, bvadd64(R9, 4072bv64))); + R9, Gamma_R9 := $load6, Gamma_$load6; call rely(); - load4, Gamma_load4 := memory_load32_le(mem, bvadd64(R8, 56bv64)), (gamma_load32(Gamma_mem, bvadd64(R8, 56bv64)) || L(mem, bvadd64(R8, 56bv64))); - R8, Gamma_R8 := zero_extend32_32(load4), Gamma_load4; + $load7, Gamma_$load7 := memory_load32_le(mem, R8), (gamma_load32(Gamma_mem, R8) || L(mem, R8)); + R8, Gamma_R8 := zero_extend32_32($load7), Gamma_$load7; call rely(); - load5, Gamma_load5 := memory_load32_le(mem, bvadd64(R9, 52bv64)), (gamma_load32(Gamma_mem, bvadd64(R9, 52bv64)) || L(mem, bvadd64(R9, 52bv64))); - R9, Gamma_R9 := zero_extend32_32(load5), Gamma_load5; - Cse0__5_0_4, Gamma_Cse0__5_0_4 := bvadd32(R8[32:0], 0bv32), Gamma_R8; - VF, Gamma_VF := bvnot1(bvcomp32(Cse0__5_0_4, Cse0__5_0_4)), Gamma_Cse0__5_0_4; - CF, Gamma_CF := bvnot1(bvcomp33(zero_extend1_32(Cse0__5_0_4), bvadd33(zero_extend1_32(R8[32:0]), 4294967296bv33))), (Gamma_R8 && Gamma_Cse0__5_0_4); - ZF, Gamma_ZF := bvcomp32(Cse0__5_0_4, 0bv32), Gamma_Cse0__5_0_4; - NF, Gamma_NF := Cse0__5_0_4[32:31], Gamma_Cse0__5_0_4; + $load8, Gamma_$load8 := memory_load32_le(mem, R9), (gamma_load32(Gamma_mem, R9) || L(mem, R9)); + R9, Gamma_R9 := zero_extend32_32($load8), Gamma_$load8; + VF, Gamma_VF := 0bv1, true; + CF, Gamma_CF := 1bv1, true; + ZF, Gamma_ZF := bvcomp32(R8[32:0], 0bv32), Gamma_R8; + NF, Gamma_NF := R8[32:31], Gamma_R8; assert Gamma_ZF; - goto main_1812__0__ztKlXzTjTY~0ueqt2irBFw$__0, main_1812__0__ztKlXzTjTY~0ueqt2irBFw$__1; - main_1812__0__ztKlXzTjTY~0ueqt2irBFw$__1: - assume {:captureState "main_1812__0__ztKlXzTjTY~0ueqt2irBFw$__1"} true; - assume (!(ZF == 1bv1)); - R0, Gamma_R0 := zero_extend32_32(R9[32:0]), Gamma_R9; - goto main_1812_basil_return; - main_1812__0__ztKlXzTjTY~0ueqt2irBFw$__0: - assume {:captureState "main_1812__0__ztKlXzTjTY~0ueqt2irBFw$__0"} true; + goto $main$__0__$D9t2gNJrSmyMH3GAVRe3IQ$__0, $main$__0__$D9t2gNJrSmyMH3GAVRe3IQ$__1; + $main$__0__$D9t2gNJrSmyMH3GAVRe3IQ$__0: + assume {:captureState "$main$__0__$D9t2gNJrSmyMH3GAVRe3IQ$__0"} true; assume (ZF == 1bv1); R0, Gamma_R0 := 0bv64, true; - goto main_1812_basil_return; - main_1812_basil_return: - assume {:captureState "main_1812_basil_return"} true; + goto main_basil_return; + $main$__0__$D9t2gNJrSmyMH3GAVRe3IQ$__1: + assume {:captureState "$main$__0__$D9t2gNJrSmyMH3GAVRe3IQ$__1"} true; + assume (!(ZF == 1bv1)); + R0, Gamma_R0 := zero_extend32_32(R9[32:0]), Gamma_R9; + goto main_basil_return; + main_basil_return: + assume {:captureState "main_basil_return"} true; return; } diff --git a/src/test/correct/basic_function_call_reader/clang_pic/basic_function_call_reader.adt b/src/test/correct/basic_function_call_reader/clang_pic/basic_function_call_reader.adt deleted file mode 100644 index 62fd6fd66..000000000 --- a/src/test/correct/basic_function_call_reader/clang_pic/basic_function_call_reader.adt +++ /dev/null @@ -1,572 +0,0 @@ -Project(Attrs([Attr("filename","\"clang_pic/basic_function_call_reader.out\""), -Attr("image-specification","(declare abi (name str))\n(declare arch (name str))\n(declare base-address (addr int))\n(declare bias (off int))\n(declare bits (size int))\n(declare code-region (addr int) (size int) (off int))\n(declare code-start (addr int))\n(declare entry-point (addr int))\n(declare external-reference (addr int) (name str))\n(declare format (name str))\n(declare is-executable (flag bool))\n(declare is-little-endian (flag bool))\n(declare llvm:base-address (addr int))\n(declare llvm:code-entry (name str) (off int) (size int))\n(declare llvm:coff-import-library (name str))\n(declare llvm:coff-virtual-section-header (name str) (addr int) (size int))\n(declare llvm:elf-program-header (name str) (off int) (size int))\n(declare llvm:elf-program-header-flags (name str) (ld bool) (r bool) \n (w bool) (x bool))\n(declare llvm:elf-virtual-program-header (name str) (addr int) (size int))\n(declare llvm:entry-point (addr int))\n(declare llvm:macho-symbol (name str) (value int))\n(declare llvm:name-reference (at int) (name str))\n(declare llvm:relocation (at int) (addr int))\n(declare llvm:section-entry (name str) (addr int) (size int) (off int))\n(declare llvm:section-flags (name str) (r bool) (w bool) (x bool))\n(declare llvm:segment-command (name str) (off int) (size int))\n(declare llvm:segment-command-flags (name str) (r bool) (w bool) (x bool))\n(declare llvm:symbol-entry (name str) (addr int) (size int) (off int)\n (value int))\n(declare llvm:virtual-segment-command (name str) (addr int) (size int))\n(declare mapped (addr int) (size int) (off int))\n(declare named-region (addr int) (size int) (name str))\n(declare named-symbol (addr int) (name str))\n(declare require (name str))\n(declare section (addr int) (size int))\n(declare segment (addr int) (size int) (r bool) (w bool) (x bool))\n(declare subarch (name str))\n(declare symbol-chunk (addr int) (size int) (root int))\n(declare symbol-value (addr int) (value int))\n(declare system (name str))\n(declare vendor (name str))\n\n(abi unknown)\n(arch aarch64)\n(base-address 0)\n(bias 0)\n(bits 64)\n(code-region 1960 20 1960)\n(code-region 1600 360 1600)\n(code-region 1488 96 1488)\n(code-region 1456 24 1456)\n(code-start 1652)\n(code-start 1600)\n(code-start 1876)\n(entry-point 1600)\n(external-reference 69552 _ITM_deregisterTMCloneTable)\n(external-reference 69560 __cxa_finalize)\n(external-reference 69576 __gmon_start__)\n(external-reference 69600 _ITM_registerTMCloneTable)\n(external-reference 69632 __libc_start_main)\n(external-reference 69640 __cxa_finalize)\n(external-reference 69648 __gmon_start__)\n(external-reference 69656 abort)\n(format elf)\n(is-executable true)\n(is-little-endian true)\n(llvm:base-address 0)\n(llvm:code-entry abort 0 0)\n(llvm:code-entry __cxa_finalize 0 0)\n(llvm:code-entry __libc_start_main 0 0)\n(llvm:code-entry _init 1456 0)\n(llvm:code-entry main 1876 84)\n(llvm:code-entry _start 1600 52)\n(llvm:code-entry abort@GLIBC_2.17 0 0)\n(llvm:code-entry _fini 1960 0)\n(llvm:code-entry __cxa_finalize@GLIBC_2.17 0 0)\n(llvm:code-entry __libc_start_main@GLIBC_2.34 0 0)\n(llvm:code-entry frame_dummy 1872 0)\n(llvm:code-entry __do_global_dtors_aux 1792 0)\n(llvm:code-entry register_tm_clones 1728 0)\n(llvm:code-entry deregister_tm_clones 1680 0)\n(llvm:code-entry call_weak_fn 1652 20)\n(llvm:code-entry .fini 1960 20)\n(llvm:code-entry .text 1600 360)\n(llvm:code-entry .plt 1488 96)\n(llvm:code-entry .init 1456 24)\n(llvm:elf-program-header 08 3512 584)\n(llvm:elf-program-header 07 0 0)\n(llvm:elf-program-header 06 1984 60)\n(llvm:elf-program-header 05 596 68)\n(llvm:elf-program-header 04 3528 480)\n(llvm:elf-program-header 03 3512 632)\n(llvm:elf-program-header 02 0 2232)\n(llvm:elf-program-header 01 568 27)\n(llvm:elf-program-header 00 64 504)\n(llvm:elf-program-header-flags 08 false true false false)\n(llvm:elf-program-header-flags 07 false true true false)\n(llvm:elf-program-header-flags 06 false true false false)\n(llvm:elf-program-header-flags 05 false true false false)\n(llvm:elf-program-header-flags 04 false true true false)\n(llvm:elf-program-header-flags 03 true true true false)\n(llvm:elf-program-header-flags 02 true true false true)\n(llvm:elf-program-header-flags 01 false true false false)\n(llvm:elf-program-header-flags 00 false true false false)\n(llvm:elf-virtual-program-header 08 69048 584)\n(llvm:elf-virtual-program-header 07 0 0)\n(llvm:elf-virtual-program-header 06 1984 60)\n(llvm:elf-virtual-program-header 05 596 68)\n(llvm:elf-virtual-program-header 04 69064 480)\n(llvm:elf-virtual-program-header 03 69048 648)\n(llvm:elf-virtual-program-header 02 0 2232)\n(llvm:elf-virtual-program-header 01 568 27)\n(llvm:elf-virtual-program-header 00 64 504)\n(llvm:entry-point 1600)\n(llvm:name-reference 69656 abort)\n(llvm:name-reference 69648 __gmon_start__)\n(llvm:name-reference 69640 __cxa_finalize)\n(llvm:name-reference 69632 __libc_start_main)\n(llvm:name-reference 69600 _ITM_registerTMCloneTable)\n(llvm:name-reference 69576 __gmon_start__)\n(llvm:name-reference 69560 __cxa_finalize)\n(llvm:name-reference 69552 _ITM_deregisterTMCloneTable)\n(llvm:section-entry .shstrtab 0 259 6982)\n(llvm:section-entry .strtab 0 582 6400)\n(llvm:section-entry .symtab 0 2184 4216)\n(llvm:section-entry .comment 0 71 4144)\n(llvm:section-entry .bss 69680 16 4144)\n(llvm:section-entry .data 69664 16 4128)\n(llvm:section-entry .got.plt 69608 56 4072)\n(llvm:section-entry .got 69544 64 4008)\n(llvm:section-entry .dynamic 69064 480 3528)\n(llvm:section-entry .fini_array 69056 8 3520)\n(llvm:section-entry .init_array 69048 8 3512)\n(llvm:section-entry .eh_frame 2048 184 2048)\n(llvm:section-entry .eh_frame_hdr 1984 60 1984)\n(llvm:section-entry .rodata 1980 4 1980)\n(llvm:section-entry .fini 1960 20 1960)\n(llvm:section-entry .text 1600 360 1600)\n(llvm:section-entry .plt 1488 96 1488)\n(llvm:section-entry .init 1456 24 1456)\n(llvm:section-entry .rela.plt 1360 96 1360)\n(llvm:section-entry .rela.dyn 1120 240 1120)\n(llvm:section-entry .gnu.version_r 1072 48 1072)\n(llvm:section-entry .gnu.version 1054 18 1054)\n(llvm:section-entry .dynstr 912 141 912)\n(llvm:section-entry .dynsym 696 216 696)\n(llvm:section-entry .gnu.hash 664 28 664)\n(llvm:section-entry .note.ABI-tag 632 32 632)\n(llvm:section-entry .note.gnu.build-id 596 36 596)\n(llvm:section-entry .interp 568 27 568)\n(llvm:section-flags .shstrtab true false false)\n(llvm:section-flags .strtab true false false)\n(llvm:section-flags .symtab true false false)\n(llvm:section-flags .comment true false false)\n(llvm:section-flags .bss true true false)\n(llvm:section-flags .data true true false)\n(llvm:section-flags .got.plt true true false)\n(llvm:section-flags .got true true false)\n(llvm:section-flags .dynamic true true false)\n(llvm:section-flags .fini_array true true false)\n(llvm:section-flags .init_array true true false)\n(llvm:section-flags .eh_frame true false false)\n(llvm:section-flags .eh_frame_hdr true false false)\n(llvm:section-flags .rodata true false false)\n(llvm:section-flags .fini true false true)\n(llvm:section-flags .text true false true)\n(llvm:section-flags .plt true false true)\n(llvm:section-flags .init true false true)\n(llvm:section-flags .rela.plt true false false)\n(llvm:section-flags .rela.dyn true false false)\n(llvm:section-flags .gnu.version_r true false false)\n(llvm:section-flags .gnu.version true false false)\n(llvm:section-flags .dynstr true false false)\n(llvm:section-flags .dynsym true false false)\n(llvm:section-flags .gnu.hash true false false)\n(llvm:section-flags .note.ABI-tag true false false)\n(llvm:section-flags .note.gnu.build-id true false false)\n(llvm:section-flags .interp true false false)\n(llvm:symbol-entry abort 0 0 0 0)\n(llvm:symbol-entry __cxa_finalize 0 0 0 0)\n(llvm:symbol-entry __libc_start_main 0 0 0 0)\n(llvm:symbol-entry _init 1456 0 1456 1456)\n(llvm:symbol-entry main 1876 84 1876 1876)\n(llvm:symbol-entry _start 1600 52 1600 1600)\n(llvm:symbol-entry abort@GLIBC_2.17 0 0 0 0)\n(llvm:symbol-entry _fini 1960 0 1960 1960)\n(llvm:symbol-entry __cxa_finalize@GLIBC_2.17 0 0 0 0)\n(llvm:symbol-entry __libc_start_main@GLIBC_2.34 0 0 0 0)\n(llvm:symbol-entry frame_dummy 1872 0 1872 1872)\n(llvm:symbol-entry __do_global_dtors_aux 1792 0 1792 1792)\n(llvm:symbol-entry register_tm_clones 1728 0 1728 1728)\n(llvm:symbol-entry deregister_tm_clones 1680 0 1680 1680)\n(llvm:symbol-entry call_weak_fn 1652 20 1652 1652)\n(mapped 0 2232 0)\n(mapped 69048 632 3512)\n(named-region 0 2232 02)\n(named-region 69048 648 03)\n(named-region 568 27 .interp)\n(named-region 596 36 .note.gnu.build-id)\n(named-region 632 32 .note.ABI-tag)\n(named-region 664 28 .gnu.hash)\n(named-region 696 216 .dynsym)\n(named-region 912 141 .dynstr)\n(named-region 1054 18 .gnu.version)\n(named-region 1072 48 .gnu.version_r)\n(named-region 1120 240 .rela.dyn)\n(named-region 1360 96 .rela.plt)\n(named-region 1456 24 .init)\n(named-region 1488 96 .plt)\n(named-region 1600 360 .text)\n(named-region 1960 20 .fini)\n(named-region 1980 4 .rodata)\n(named-region 1984 60 .eh_frame_hdr)\n(named-region 2048 184 .eh_frame)\n(named-region 69048 8 .init_array)\n(named-region 69056 8 .fini_array)\n(named-region 69064 480 .dynamic)\n(named-region 69544 64 .got)\n(named-region 69608 56 .got.plt)\n(named-region 69664 16 .data)\n(named-region 69680 16 .bss)\n(named-region 0 71 .comment)\n(named-region 0 2184 .symtab)\n(named-region 0 582 .strtab)\n(named-region 0 259 .shstrtab)\n(named-symbol 1652 call_weak_fn)\n(named-symbol 1680 deregister_tm_clones)\n(named-symbol 1728 register_tm_clones)\n(named-symbol 1792 __do_global_dtors_aux)\n(named-symbol 1872 frame_dummy)\n(named-symbol 0 __libc_start_main@GLIBC_2.34)\n(named-symbol 0 __cxa_finalize@GLIBC_2.17)\n(named-symbol 1960 _fini)\n(named-symbol 0 abort@GLIBC_2.17)\n(named-symbol 1600 _start)\n(named-symbol 1876 main)\n(named-symbol 1456 _init)\n(named-symbol 0 __libc_start_main)\n(named-symbol 0 __cxa_finalize)\n(named-symbol 0 abort)\n(require libc.so.6)\n(section 568 27)\n(section 596 36)\n(section 632 32)\n(section 664 28)\n(section 696 216)\n(section 912 141)\n(section 1054 18)\n(section 1072 48)\n(section 1120 240)\n(section 1360 96)\n(section 1456 24)\n(section 1488 96)\n(section 1600 360)\n(section 1960 20)\n(section 1980 4)\n(section 1984 60)\n(section 2048 184)\n(section 69048 8)\n(section 69056 8)\n(section 69064 480)\n(section 69544 64)\n(section 69608 56)\n(section 69664 16)\n(section 69680 16)\n(section 0 71)\n(section 0 2184)\n(section 0 582)\n(section 0 259)\n(segment 0 2232 true false true)\n(segment 69048 648 true true false)\n(subarch v8)\n(symbol-chunk 1652 20 1652)\n(symbol-chunk 1600 52 1600)\n(symbol-chunk 1876 84 1876)\n(symbol-value 1652 1652)\n(symbol-value 1680 1680)\n(symbol-value 1728 1728)\n(symbol-value 1792 1792)\n(symbol-value 1872 1872)\n(symbol-value 1960 1960)\n(symbol-value 1600 1600)\n(symbol-value 1876 1876)\n(symbol-value 1456 1456)\n(symbol-value 0 0)\n(system \"\")\n(vendor \"\")\n"), -Attr("abi-name","\"aarch64-linux-gnu-elf\"")]), -Sections([Section(".shstrtab", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x40\x06\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x50\x1c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x38\x00\x09\x00\x40\x00\x1d\x00\x1c\x00\x06\x00\x00\x00\x04\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x04\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xb8\x08\x00\x00\x00\x00\x00\x00\xb8\x08\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x01\x00\x00\x00\x06\x00\x00\x00\xb8\x0d\x00\x00\x00\x00\x00\x00\xb8\x0d\x01\x00\x00\x00\x00\x00\xb8\x0d\x01"), -Section(".strtab", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x40\x06\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x50\x1c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x38\x00\x09\x00\x40\x00\x1d\x00\x1c\x00\x06\x00\x00\x00\x04\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x04\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xb8\x08\x00\x00\x00\x00\x00\x00\xb8\x08\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x01\x00\x00\x00\x06\x00\x00\x00\xb8\x0d\x00\x00\x00\x00\x00\x00\xb8\x0d\x01\x00\x00\x00\x00\x00\xb8\x0d\x01\x00\x00\x00\x00\x00\x78\x02\x00\x00\x00\x00\x00\x00\x88\x02\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x02\x00\x00\x00\x06\x00\x00\x00\xc8\x0d\x00\x00\x00\x00\x00\x00\xc8\x0d\x01\x00\x00\x00\x00\x00\xc8\x0d\x01\x00\x00\x00\x00\x00\xe0\x01\x00\x00\x00\x00\x00\x00\xe0\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x04\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x50\xe5\x74\x64\x04\x00\x00\x00\xc0\x07\x00\x00\x00\x00\x00\x00\xc0\x07\x00\x00\x00\x00\x00\x00\xc0\x07\x00\x00\x00\x00\x00\x00\x3c\x00\x00\x00\x00\x00\x00\x00\x3c\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x51\xe5\x74\x64\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x52\xe5\x74\x64\x04\x00\x00\x00\xb8\x0d\x00\x00\x00\x00\x00\x00\xb8\x0d\x01\x00\x00\x00\x00\x00\xb8\x0d\x01\x00\x00\x00\x00\x00\x48\x02\x00\x00\x00\x00\x00\x00\x48\x02\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x2f\x6c\x69\x62\x2f\x6c\x64\x2d\x6c\x69\x6e\x75\x78\x2d"), -Section(".symtab", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x40\x06\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x50\x1c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x38\x00\x09\x00\x40\x00\x1d\x00\x1c\x00\x06\x00\x00\x00\x04\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x04\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xb8\x08\x00\x00\x00\x00\x00\x00\xb8\x08\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x01\x00\x00\x00\x06\x00\x00\x00\xb8\x0d\x00\x00\x00\x00\x00\x00\xb8\x0d\x01\x00\x00\x00\x00\x00\xb8\x0d\x01\x00\x00\x00\x00\x00\x78\x02\x00\x00\x00\x00\x00\x00\x88\x02\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x02\x00\x00\x00\x06\x00\x00\x00\xc8\x0d\x00\x00\x00\x00\x00\x00\xc8\x0d\x01\x00\x00\x00\x00\x00\xc8\x0d\x01\x00\x00\x00\x00\x00\xe0\x01\x00\x00\x00\x00\x00\x00\xe0\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x04\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x50\xe5\x74\x64\x04\x00\x00\x00\xc0\x07\x00\x00\x00\x00\x00\x00\xc0\x07\x00\x00\x00\x00\x00\x00\xc0\x07\x00\x00\x00\x00\x00\x00\x3c\x00\x00\x00\x00\x00\x00\x00\x3c\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x51\xe5\x74\x64\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x52\xe5\x74\x64\x04\x00\x00\x00\xb8\x0d\x00\x00\x00\x00\x00\x00\xb8\x0d\x01\x00\x00\x00\x00\x00\xb8\x0d\x01\x00\x00\x00\x00\x00\x48\x02\x00\x00\x00\x00\x00\x00\x48\x02\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x2f\x6c\x69\x62\x2f\x6c\x64\x2d\x6c\x69\x6e\x75\x78\x2d\x61\x61\x72\x63\x68\x36\x34\x2e\x73\x6f\x2e\x31\x00\x00\x04\x00\x00\x00\x14\x00\x00\x00\x03\x00\x00\x00\x47\x4e\x55\x00\x34\x55\x51\x90\x62\x1e\x35\x11\xd0\x5c\x0b\x78\x0c\x03\x92\x36\x27\xb4\x54\x3b\x04\x00\x00\x00\x10\x00\x00\x00\x01\x00\x00\x00\x47\x4e\x55\x00\x00\x00\x00\x00\x03\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x01\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x0b\x00\xb0\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x17\x00\x20\x10\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x48\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x22\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x22\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x73\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5f\x5f\x63\x78\x61\x5f\x66\x69\x6e\x61\x6c\x69\x7a\x65\x00\x5f\x5f\x6c\x69\x62\x63\x5f\x73\x74\x61\x72\x74\x5f\x6d\x61\x69\x6e\x00\x61\x62\x6f\x72\x74\x00\x6c\x69\x62\x63\x2e\x73\x6f\x2e\x36\x00\x47\x4c\x49\x42\x43\x5f\x32\x2e\x31\x37\x00\x47\x4c\x49\x42\x43\x5f\x32\x2e\x33\x34\x00\x5f\x49\x54\x4d\x5f\x64\x65\x72\x65\x67\x69\x73\x74\x65\x72\x54\x4d\x43\x6c\x6f\x6e\x65\x54\x61\x62\x6c\x65\x00\x5f\x5f\x67\x6d\x6f\x6e\x5f\x73\x74\x61\x72\x74\x5f\x5f\x00\x5f\x49\x54\x4d\x5f\x72\x65\x67\x69\x73\x74\x65\x72\x54\x4d\x43\x6c\x6f\x6e\x65\x54\x61\x62\x6c\x65\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x01\x00\x03\x00\x01\x00\x03\x00\x01\x00\x01\x00\x02\x00\x28\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x97\x91\x96\x06\x00\x00\x03\x00\x32\x00\x00\x00\x10\x00\x00\x00\xb4\x91\x96\x06\x00\x00\x02\x00\x3d\x00\x00\x00\x00\x00\x00\x00\xb8\x0d\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x50\x07\x00\x00\x00\x00\x00\x00\xc0\x0d\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\xc0\x0f\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x38\x10\x01\x00\x00\x00\x00\x00\xd0\x0f\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x34\x10\x01\x00\x00\x00\x00\x00\xd8\x0f\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x54\x07\x00\x00\x00\x00\x00\x00\x28\x10\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x28\x10\x01\x00\x00\x00\x00\x00\xb0\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xb8\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xc8\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe0\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x08\x10\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x10\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x18\x10\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1f\x20\x03\xd5\xfd\x7b\xbf\xa9\xfd\x03\x00\x91\x2e\x00\x00\x94\xfd\x7b\xc1\xa8\xc0\x03\x5f\xd6\x00\x00\x00\x00\x00\x00\x00\x00\xf0\x7b\xbf\xa9\x90\x00\x00\x90\x11\xfe\x47\xf9\x10\xe2\x3f\x91\x20\x02\x1f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x90\x00\x00\xb0\x11\x02\x40\xf9\x10\x02\x00\x91\x20\x02\x1f\xd6\x90\x00\x00\xb0\x11\x06\x40\xf9\x10\x22\x00\x91\x20\x02\x1f\xd6\x90\x00\x00\xb0\x11\x0a\x40\xf9\x10\x42\x00\x91\x20\x02\x1f\xd6\x90\x00\x00\xb0\x11\x0e\x40\xf9\x10\x62\x00\x91\x20\x02\x1f\xd6\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1f\x20\x03\xd5\x1d\x00\x80\xd2\x1e\x00\x80\xd2\xe5\x03\x00\xaa\xe1\x03\x40\xf9\xe2\x23\x00\x91\xe6\x03\x00\x91\x80\x00\x00\x90\x00\xec\x47\xf9\x03\x00\x80\xd2\x04\x00\x80\xd2\xe1\xff\xff\x97\xec\xff\xff\x97\x80\x00\x00\x90\x00\xe4\x47\xf9\x40\x00\x00\xb4\xe4\xff\xff\x17\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x80\x00\x00\xb0\x00\xc0\x00\x91\x81\x00\x00\xb0\x21\xc0\x00\x91\x3f\x00\x00\xeb\xc0\x00\x00\x54\x81\x00\x00\x90\x21\xd8\x47\xf9\x61\x00\x00\xb4\xf0\x03\x01\xaa\x00\x02\x1f\xd6\xc0\x03\x5f\xd6\x80\x00\x00\xb0\x00\xc0\x00\x91\x81\x00\x00\xb0\x21\xc0\x00\x91\x21\x00\x00\xcb\x22\xfc\x7f\xd3\x41\x0c\x81\x8b\x21\xfc\x41\x93\xc1\x00\x00\xb4\x82\x00\x00\x90\x42\xf0\x47\xf9\x62\x00\x00\xb4\xf0\x03\x02\xaa\x00\x02\x1f\xd6\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\xfd\x7b\xbe\xa9\xfd\x03\x00\x91\xf3\x0b\x00\xf9\x93\x00\x00\xb0\x60\xc2\x40\x39\x40\x01\x00\x35\x80\x00\x00\x90\x00\xdc\x47\xf9\x80\x00\x00\xb4\x80\x00\x00\xb0\x00\x14\x40\xf9\xb5\xff\xff\x97\xd8\xff\xff\x97\x20\x00\x80\x52\x60\xc2\x00\x39\xf3\x0b\x40\xf9\xfd\x7b\xc2\xa8\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\xdc\xff\xff\x17\xff\x43\x00\xd1\xff\x0f\x00\xb9\x88\x00\x00\x90\x08\xe9\x47\xf9\x08\x01\x40\xb9\xe8\x0b\x00\xb9\x88\x00\x00\x90\x08\xe1\x47\xf9\x08\x01\x40\xb9\x08\x01\x00\x71\xe8\x07\x9f\x1a\x88\x00\x00\x37\x01\x00\x00\x14\xff\x0f\x00\xb9\x04\x00\x00\x14\xe8\x0b\x40\xb9\xe8\x0f\x00\xb9\x01\x00\x00\x14\xe0\x0f\x40\xb9\xff\x43\x00\x91\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\xfd\x7b\xbf\xa9\xfd\x03\x00\x91\xfd\x7b\xc1\xa8\xc0\x03\x5f\xd6\x01\x00\x02\x00\x01\x1b\x03\x3b\x3c\x00\x00\x00\x06\x00\x00\x00\x80\xfe\xff\xff\x54\x00\x00\x00\xd0\xfe\xff\xff\x68\x00\x00\x00\x00\xff\xff\xff\x7c\x00\x00\x00\x40\xff\xff\xff\x90\x00\x00\x00\x90\xff\xff\xff\xb4\x00\x00\x00\x94\xff\xff\xff\xdc\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x01\x7a\x52\x00\x04\x78\x1e\x01\x1b\x0c\x1f\x00\x10\x00\x00\x00\x18\x00\x00\x00\x24\xfe\xff\xff\x34\x00\x00\x00\x00\x41\x07\x1e\x10\x00\x00\x00\x2c\x00\x00\x00\x60\xfe\xff\xff\x30\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x40\x00\x00\x00\x7c\xfe\xff\xff\x3c\x00\x00\x00\x00\x00\x00\x00\x20\x00\x00\x00\x54\x00\x00\x00\xa8\xfe\xff\xff\x48\x00\x00\x00\x00\x41\x0e\x20\x9d\x04\x9e\x03\x42\x93\x02\x4e\xde\xdd\xd3\x0e\x00\x00\x00\x00\x10\x00\x00\x00\x78\x00\x00\x00\xd4\xfe\xff\xff\x04\x00\x00\x00\x00\x00\x00\x00"), -Section(".comment", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x40\x06\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x50\x1c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x38\x00\x09\x00\x40\x00\x1d\x00\x1c\x00\x06\x00\x00\x00\x04\x00\x00"), -Section(".interp", 0x238, "\x2f\x6c\x69\x62\x2f\x6c\x64\x2d\x6c\x69\x6e\x75\x78\x2d\x61\x61\x72\x63\x68\x36\x34\x2e\x73\x6f\x2e\x31\x00"), -Section(".note.gnu.build-id", 0x254, "\x04\x00\x00\x00\x14\x00\x00\x00\x03\x00\x00\x00\x47\x4e\x55\x00\x34\x55\x51\x90\x62\x1e\x35\x11\xd0\x5c\x0b\x78\x0c\x03\x92\x36\x27\xb4\x54\x3b"), -Section(".note.ABI-tag", 0x278, "\x04\x00\x00\x00\x10\x00\x00\x00\x01\x00\x00\x00\x47\x4e\x55\x00\x00\x00\x00\x00\x03\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00"), -Section(".gnu.hash", 0x298, "\x01\x00\x00\x00\x01\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".dynsym", 0x2B8, "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x0b\x00\xb0\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x17\x00\x20\x10\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x48\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x22\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x22\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x73\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".dynstr", 0x390, "\x00\x5f\x5f\x63\x78\x61\x5f\x66\x69\x6e\x61\x6c\x69\x7a\x65\x00\x5f\x5f\x6c\x69\x62\x63\x5f\x73\x74\x61\x72\x74\x5f\x6d\x61\x69\x6e\x00\x61\x62\x6f\x72\x74\x00\x6c\x69\x62\x63\x2e\x73\x6f\x2e\x36\x00\x47\x4c\x49\x42\x43\x5f\x32\x2e\x31\x37\x00\x47\x4c\x49\x42\x43\x5f\x32\x2e\x33\x34\x00\x5f\x49\x54\x4d\x5f\x64\x65\x72\x65\x67\x69\x73\x74\x65\x72\x54\x4d\x43\x6c\x6f\x6e\x65\x54\x61\x62\x6c\x65\x00\x5f\x5f\x67\x6d\x6f\x6e\x5f\x73\x74\x61\x72\x74\x5f\x5f\x00\x5f\x49\x54\x4d\x5f\x72\x65\x67\x69\x73\x74\x65\x72\x54\x4d\x43\x6c\x6f\x6e\x65\x54\x61\x62\x6c\x65\x00"), -Section(".gnu.version", 0x41E, "\x00\x00\x00\x00\x00\x00\x02\x00\x01\x00\x03\x00\x01\x00\x03\x00\x01\x00"), -Section(".gnu.version_r", 0x430, "\x01\x00\x02\x00\x28\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x97\x91\x96\x06\x00\x00\x03\x00\x32\x00\x00\x00\x10\x00\x00\x00\xb4\x91\x96\x06\x00\x00\x02\x00\x3d\x00\x00\x00\x00\x00\x00\x00"), -Section(".rela.dyn", 0x460, "\xb8\x0d\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x50\x07\x00\x00\x00\x00\x00\x00\xc0\x0d\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\xc0\x0f\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x38\x10\x01\x00\x00\x00\x00\x00\xd0\x0f\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x34\x10\x01\x00\x00\x00\x00\x00\xd8\x0f\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x54\x07\x00\x00\x00\x00\x00\x00\x28\x10\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x28\x10\x01\x00\x00\x00\x00\x00\xb0\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xb8\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xc8\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe0\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".rela.plt", 0x550, "\x00\x10\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x08\x10\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x10\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x18\x10\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".init", 0x5B0, "\x1f\x20\x03\xd5\xfd\x7b\xbf\xa9\xfd\x03\x00\x91\x2e\x00\x00\x94\xfd\x7b\xc1\xa8\xc0\x03\x5f\xd6"), -Section(".plt", 0x5D0, "\xf0\x7b\xbf\xa9\x90\x00\x00\x90\x11\xfe\x47\xf9\x10\xe2\x3f\x91\x20\x02\x1f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x90\x00\x00\xb0\x11\x02\x40\xf9\x10\x02\x00\x91\x20\x02\x1f\xd6\x90\x00\x00\xb0\x11\x06\x40\xf9\x10\x22\x00\x91\x20\x02\x1f\xd6\x90\x00\x00\xb0\x11\x0a\x40\xf9\x10\x42\x00\x91\x20\x02\x1f\xd6\x90\x00\x00\xb0\x11\x0e\x40\xf9\x10\x62\x00\x91\x20\x02\x1f\xd6"), -Section(".fini", 0x7A8, "\x1f\x20\x03\xd5\xfd\x7b\xbf\xa9\xfd\x03\x00\x91\xfd\x7b\xc1\xa8\xc0\x03\x5f\xd6"), -Section(".rodata", 0x7BC, "\x01\x00\x02\x00"), -Section(".eh_frame_hdr", 0x7C0, "\x01\x1b\x03\x3b\x3c\x00\x00\x00\x06\x00\x00\x00\x80\xfe\xff\xff\x54\x00\x00\x00\xd0\xfe\xff\xff\x68\x00\x00\x00\x00\xff\xff\xff\x7c\x00\x00\x00\x40\xff\xff\xff\x90\x00\x00\x00\x90\xff\xff\xff\xb4\x00\x00\x00\x94\xff\xff\xff\xdc\x00\x00\x00"), -Section(".eh_frame", 0x800, "\x10\x00\x00\x00\x00\x00\x00\x00\x01\x7a\x52\x00\x04\x78\x1e\x01\x1b\x0c\x1f\x00\x10\x00\x00\x00\x18\x00\x00\x00\x24\xfe\xff\xff\x34\x00\x00\x00\x00\x41\x07\x1e\x10\x00\x00\x00\x2c\x00\x00\x00\x60\xfe\xff\xff\x30\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x40\x00\x00\x00\x7c\xfe\xff\xff\x3c\x00\x00\x00\x00\x00\x00\x00\x20\x00\x00\x00\x54\x00\x00\x00\xa8\xfe\xff\xff\x48\x00\x00\x00\x00\x41\x0e\x20\x9d\x04\x9e\x03\x42\x93\x02\x4e\xde\xdd\xd3\x0e\x00\x00\x00\x00\x10\x00\x00\x00\x78\x00\x00\x00\xd4\xfe\xff\xff\x04\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x01\x7a\x52\x00\x01\x7c\x1e\x01\x1b\x0c\x1f\x00\x14\x00\x00\x00\x18\x00\x00\x00\xb0\xfe\xff\xff\x54\x00\x00\x00\x00\x44\x0e\x10\x02\x4c\x0e\x00\x00\x00\x00\x00"), -Section(".fini_array", 0x10DC0, "\x00\x07\x00\x00\x00\x00\x00\x00"), -Section(".dynamic", 0x10DC8, "\x01\x00\x00\x00\x00\x00\x00\x00\x28\x00\x00\x00\x00\x00\x00\x00\x0c\x00\x00\x00\x00\x00\x00\x00\xb0\x05\x00\x00\x00\x00\x00\x00\x0d\x00\x00\x00\x00\x00\x00\x00\xa8\x07\x00\x00\x00\x00\x00\x00\x19\x00\x00\x00\x00\x00\x00\x00\xb8\x0d\x01\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x1a\x00\x00\x00\x00\x00\x00\x00\xc0\x0d\x01\x00\x00\x00\x00\x00\x1c\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\xf5\xfe\xff\x6f\x00\x00\x00\x00\x98\x02\x00\x00\x00\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x90\x03\x00\x00\x00\x00\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\xb8\x02\x00\x00\x00\x00\x00\x00\x0a\x00\x00\x00\x00\x00\x00\x00\x8d\x00\x00\x00\x00\x00\x00\x00\x0b\x00\x00\x00\x00\x00\x00\x00\x18\x00\x00\x00\x00\x00\x00\x00\x15\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\xe8\x0f\x01\x00\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x60\x00\x00\x00\x00\x00\x00\x00\x14\x00\x00\x00\x00\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x17\x00\x00\x00\x00\x00\x00\x00\x50\x05\x00\x00\x00\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x60\x04\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\xf0\x00\x00\x00\x00\x00\x00\x00\x09\x00\x00\x00\x00\x00\x00\x00\x18\x00\x00\x00\x00\x00\x00\x00\xfb\xff\xff\x6f\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\xfe\xff\xff\x6f\x00\x00\x00\x00\x30\x04\x00\x00\x00\x00\x00\x00\xff\xff\xff\x6f\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\xf0\xff\xff\x6f\x00\x00\x00\x00\x1e\x04\x00\x00\x00\x00\x00\x00\xf9\xff\xff\x6f\x00\x00\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".init_array", 0x10DB8, "\x50\x07\x00\x00\x00\x00\x00\x00"), -Section(".got", 0x10FA8, "\xc8\x0d\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x38\x10\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x34\x10\x01\x00\x00\x00\x00\x00\x54\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".got.plt", 0x10FE8, "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xd0\x05\x00\x00\x00\x00\x00\x00\xd0\x05\x00\x00\x00\x00\x00\x00\xd0\x05\x00\x00\x00\x00\x00\x00\xd0\x05\x00\x00\x00\x00\x00\x00"), -Section(".data", 0x11020, "\x00\x00\x00\x00\x00\x00\x00\x00\x28\x10\x01\x00\x00\x00\x00\x00"), -Section(".text", 0x640, "\x1f\x20\x03\xd5\x1d\x00\x80\xd2\x1e\x00\x80\xd2\xe5\x03\x00\xaa\xe1\x03\x40\xf9\xe2\x23\x00\x91\xe6\x03\x00\x91\x80\x00\x00\x90\x00\xec\x47\xf9\x03\x00\x80\xd2\x04\x00\x80\xd2\xe1\xff\xff\x97\xec\xff\xff\x97\x80\x00\x00\x90\x00\xe4\x47\xf9\x40\x00\x00\xb4\xe4\xff\xff\x17\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x80\x00\x00\xb0\x00\xc0\x00\x91\x81\x00\x00\xb0\x21\xc0\x00\x91\x3f\x00\x00\xeb\xc0\x00\x00\x54\x81\x00\x00\x90\x21\xd8\x47\xf9\x61\x00\x00\xb4\xf0\x03\x01\xaa\x00\x02\x1f\xd6\xc0\x03\x5f\xd6\x80\x00\x00\xb0\x00\xc0\x00\x91\x81\x00\x00\xb0\x21\xc0\x00\x91\x21\x00\x00\xcb\x22\xfc\x7f\xd3\x41\x0c\x81\x8b\x21\xfc\x41\x93\xc1\x00\x00\xb4\x82\x00\x00\x90\x42\xf0\x47\xf9\x62\x00\x00\xb4\xf0\x03\x02\xaa\x00\x02\x1f\xd6\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\xfd\x7b\xbe\xa9\xfd\x03\x00\x91\xf3\x0b\x00\xf9\x93\x00\x00\xb0\x60\xc2\x40\x39\x40\x01\x00\x35\x80\x00\x00\x90\x00\xdc\x47\xf9\x80\x00\x00\xb4\x80\x00\x00\xb0\x00\x14\x40\xf9\xb5\xff\xff\x97\xd8\xff\xff\x97\x20\x00\x80\x52\x60\xc2\x00\x39\xf3\x0b\x40\xf9\xfd\x7b\xc2\xa8\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\xdc\xff\xff\x17\xff\x43\x00\xd1\xff\x0f\x00\xb9\x88\x00\x00\x90\x08\xe9\x47\xf9\x08\x01\x40\xb9\xe8\x0b\x00\xb9\x88\x00\x00\x90\x08\xe1\x47\xf9\x08\x01\x40\xb9\x08\x01\x00\x71\xe8\x07\x9f\x1a\x88\x00\x00\x37\x01\x00\x00\x14\xff\x0f\x00\xb9\x04\x00\x00\x14\xe8\x0b\x40\xb9\xe8\x0f\x00\xb9\x01\x00\x00\x14\xe0\x0f\x40\xb9\xff\x43\x00\x91\xc0\x03\x5f\xd6")]), -Memmap([Annotation(Region(0x0,0x8B7), Attr("segment","02 0 2232")), -Annotation(Region(0x640,0x673), Attr("symbol","\"_start\"")), -Annotation(Region(0x0,0x102), Attr("section","\".shstrtab\"")), -Annotation(Region(0x0,0x245), Attr("section","\".strtab\"")), -Annotation(Region(0x0,0x887), Attr("section","\".symtab\"")), -Annotation(Region(0x0,0x46), Attr("section","\".comment\"")), -Annotation(Region(0x238,0x252), Attr("section","\".interp\"")), -Annotation(Region(0x254,0x277), Attr("section","\".note.gnu.build-id\"")), -Annotation(Region(0x278,0x297), Attr("section","\".note.ABI-tag\"")), -Annotation(Region(0x298,0x2B3), Attr("section","\".gnu.hash\"")), -Annotation(Region(0x2B8,0x38F), Attr("section","\".dynsym\"")), -Annotation(Region(0x390,0x41C), Attr("section","\".dynstr\"")), -Annotation(Region(0x41E,0x42F), Attr("section","\".gnu.version\"")), -Annotation(Region(0x430,0x45F), Attr("section","\".gnu.version_r\"")), -Annotation(Region(0x460,0x54F), Attr("section","\".rela.dyn\"")), -Annotation(Region(0x550,0x5AF), Attr("section","\".rela.plt\"")), -Annotation(Region(0x5B0,0x5C7), Attr("section","\".init\"")), -Annotation(Region(0x5D0,0x62F), Attr("section","\".plt\"")), -Annotation(Region(0x5B0,0x5C7), Attr("code-region","()")), -Annotation(Region(0x5D0,0x62F), Attr("code-region","()")), -Annotation(Region(0x640,0x673), Attr("symbol-info","_start 0x640 52")), -Annotation(Region(0x674,0x687), Attr("symbol","\"call_weak_fn\"")), -Annotation(Region(0x674,0x687), Attr("symbol-info","call_weak_fn 0x674 20")), -Annotation(Region(0x754,0x7A7), Attr("symbol","\"main\"")), -Annotation(Region(0x754,0x7A7), Attr("symbol-info","main 0x754 84")), -Annotation(Region(0x7A8,0x7BB), Attr("section","\".fini\"")), -Annotation(Region(0x7BC,0x7BF), Attr("section","\".rodata\"")), -Annotation(Region(0x7C0,0x7FB), Attr("section","\".eh_frame_hdr\"")), -Annotation(Region(0x800,0x8B7), Attr("section","\".eh_frame\"")), -Annotation(Region(0x10DB8,0x1102F), Attr("segment","03 0x10DB8 648")), -Annotation(Region(0x10DC0,0x10DC7), Attr("section","\".fini_array\"")), -Annotation(Region(0x10DC8,0x10FA7), Attr("section","\".dynamic\"")), -Annotation(Region(0x10DB8,0x10DBF), Attr("section","\".init_array\"")), -Annotation(Region(0x10FA8,0x10FE7), Attr("section","\".got\"")), -Annotation(Region(0x10FE8,0x1101F), Attr("section","\".got.plt\"")), -Annotation(Region(0x11020,0x1102F), Attr("section","\".data\"")), -Annotation(Region(0x640,0x7A7), Attr("section","\".text\"")), -Annotation(Region(0x640,0x7A7), Attr("code-region","()")), -Annotation(Region(0x7A8,0x7BB), Attr("code-region","()"))]), -Program(Tid(1_526, "%000005f6"), Attrs([]), - Subs([Sub(Tid(1_474, "@__cxa_finalize"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x600"), -Attr("stub","()")]), "__cxa_finalize", Args([Arg(Tid(1_527, "%000005f7"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("__cxa_finalize_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(982, "@__cxa_finalize"), - Attrs([Attr("address","0x600")]), Phis([]), -Defs([Def(Tid(1_230, "%000004ce"), Attrs([Attr("address","0x600"), -Attr("insn","adrp x16, #69632")]), Var("R16",Imm(64)), Int(69632,64)), -Def(Tid(1_237, "%000004d5"), Attrs([Attr("address","0x604"), -Attr("insn","ldr x17, [x16, #0x8]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(1_243, "%000004db"), Attrs([Attr("address","0x608"), -Attr("insn","add x16, x16, #0x8")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(8,64)))]), Jmps([Call(Tid(1_248, "%000004e0"), - Attrs([Attr("address","0x60C"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), -Sub(Tid(1_475, "@__do_global_dtors_aux"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x700")]), - "__do_global_dtors_aux", Args([Arg(Tid(1_528, "%000005f8"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("__do_global_dtors_aux_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(674, "@__do_global_dtors_aux"), - Attrs([Attr("address","0x700")]), Phis([]), Defs([Def(Tid(678, "%000002a6"), - Attrs([Attr("address","0x700"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("#3",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(18446744073709551584,64))), -Def(Tid(684, "%000002ac"), Attrs([Attr("address","0x700"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("#3",Imm(64)),Var("R29",Imm(64)),LittleEndian(),64)), -Def(Tid(690, "%000002b2"), Attrs([Attr("address","0x700"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("#3",Imm(64)),Int(8,64)),Var("R30",Imm(64)),LittleEndian(),64)), -Def(Tid(694, "%000002b6"), Attrs([Attr("address","0x700"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("R31",Imm(64)), -Var("#3",Imm(64))), Def(Tid(700, "%000002bc"), - Attrs([Attr("address","0x704"), Attr("insn","mov x29, sp")]), - Var("R29",Imm(64)), Var("R31",Imm(64))), Def(Tid(708, "%000002c4"), - Attrs([Attr("address","0x708"), Attr("insn","str x19, [sp, #0x10]")]), - Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(16,64)),Var("R19",Imm(64)),LittleEndian(),64)), -Def(Tid(713, "%000002c9"), Attrs([Attr("address","0x70C"), -Attr("insn","adrp x19, #69632")]), Var("R19",Imm(64)), Int(69632,64)), -Def(Tid(720, "%000002d0"), Attrs([Attr("address","0x710"), -Attr("insn","ldrb w0, [x19, #0x30]")]), Var("R0",Imm(64)), -UNSIGNED(64,Load(Var("mem",Mem(64,8)),PLUS(Var("R19",Imm(64)),Int(48,64)),LittleEndian(),8)))]), -Jmps([Goto(Tid(727, "%000002d7"), Attrs([Attr("address","0x714"), -Attr("insn","cbnz w0, #0x28")]), - NEQ(Extract(31,0,Var("R0",Imm(64))),Int(0,32)), -Direct(Tid(725, "%000002d5"))), Goto(Tid(1_515, "%000005eb"), Attrs([]), - Int(1,1), Direct(Tid(927, "%0000039f")))])), Blk(Tid(927, "%0000039f"), - Attrs([Attr("address","0x718")]), Phis([]), Defs([Def(Tid(930, "%000003a2"), - Attrs([Attr("address","0x718"), Attr("insn","adrp x0, #65536")]), - Var("R0",Imm(64)), Int(65536,64)), Def(Tid(937, "%000003a9"), - Attrs([Attr("address","0x71C"), Attr("insn","ldr x0, [x0, #0xfb8]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(4024,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(943, "%000003af"), Attrs([Attr("address","0x720"), -Attr("insn","cbz x0, #0x10")]), EQ(Var("R0",Imm(64)),Int(0,64)), -Direct(Tid(941, "%000003ad"))), Goto(Tid(1_516, "%000005ec"), Attrs([]), - Int(1,1), Direct(Tid(966, "%000003c6")))])), Blk(Tid(966, "%000003c6"), - Attrs([Attr("address","0x724")]), Phis([]), Defs([Def(Tid(969, "%000003c9"), - Attrs([Attr("address","0x724"), Attr("insn","adrp x0, #69632")]), - Var("R0",Imm(64)), Int(69632,64)), Def(Tid(976, "%000003d0"), - Attrs([Attr("address","0x728"), Attr("insn","ldr x0, [x0, #0x28]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(40,64)),LittleEndian(),64)), -Def(Tid(981, "%000003d5"), Attrs([Attr("address","0x72C"), -Attr("insn","bl #-0x12c")]), Var("R30",Imm(64)), Int(1840,64))]), -Jmps([Call(Tid(984, "%000003d8"), Attrs([Attr("address","0x72C"), -Attr("insn","bl #-0x12c")]), Int(1,1), -(Direct(Tid(1_474, "@__cxa_finalize")),Direct(Tid(941, "%000003ad"))))])), -Blk(Tid(941, "%000003ad"), Attrs([Attr("address","0x730")]), Phis([]), -Defs([Def(Tid(949, "%000003b5"), Attrs([Attr("address","0x730"), -Attr("insn","bl #-0xa0")]), Var("R30",Imm(64)), Int(1844,64))]), -Jmps([Call(Tid(951, "%000003b7"), Attrs([Attr("address","0x730"), -Attr("insn","bl #-0xa0")]), Int(1,1), -(Direct(Tid(1_488, "@deregister_tm_clones")),Direct(Tid(953, "%000003b9"))))])), -Blk(Tid(953, "%000003b9"), Attrs([Attr("address","0x734")]), Phis([]), -Defs([Def(Tid(956, "%000003bc"), Attrs([Attr("address","0x734"), -Attr("insn","mov w0, #0x1")]), Var("R0",Imm(64)), Int(1,64)), -Def(Tid(964, "%000003c4"), Attrs([Attr("address","0x738"), -Attr("insn","strb w0, [x19, #0x30]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R19",Imm(64)),Int(48,64)),Extract(7,0,Var("R0",Imm(64))),LittleEndian(),8))]), -Jmps([Goto(Tid(1_517, "%000005ed"), Attrs([]), Int(1,1), -Direct(Tid(725, "%000002d5")))])), Blk(Tid(725, "%000002d5"), - Attrs([Attr("address","0x73C")]), Phis([]), Defs([Def(Tid(735, "%000002df"), - Attrs([Attr("address","0x73C"), Attr("insn","ldr x19, [sp, #0x10]")]), - Var("R19",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(16,64)),LittleEndian(),64)), -Def(Tid(742, "%000002e6"), Attrs([Attr("address","0x740"), -Attr("insn","ldp x29, x30, [sp], #0x20")]), Var("R29",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(747, "%000002eb"), Attrs([Attr("address","0x740"), -Attr("insn","ldp x29, x30, [sp], #0x20")]), Var("R30",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(751, "%000002ef"), Attrs([Attr("address","0x740"), -Attr("insn","ldp x29, x30, [sp], #0x20")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(32,64)))]), Jmps([Call(Tid(756, "%000002f4"), - Attrs([Attr("address","0x744"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), Sub(Tid(1_479, "@__libc_start_main"), - Attrs([Attr("c.proto","signed (*)(signed (*)(signed , char** , char** );* main, signed , char** , \nvoid* auxv)"), -Attr("address","0x5F0"), Attr("stub","()")]), "__libc_start_main", - Args([Arg(Tid(1_529, "%000005f9"), - Attrs([Attr("c.layout","**[ : 64]"), -Attr("c.data","Top:u64 ptr ptr"), -Attr("c.type","signed (*)(signed , char** , char** );*")]), - Var("__libc_start_main_main",Imm(64)), Var("R0",Imm(64)), In()), -Arg(Tid(1_530, "%000005fa"), Attrs([Attr("c.layout","[signed : 32]"), -Attr("c.data","Top:u32"), Attr("c.type","signed")]), - Var("__libc_start_main_arg2",Imm(32)), LOW(32,Var("R1",Imm(64))), In()), -Arg(Tid(1_531, "%000005fb"), Attrs([Attr("c.layout","**[char : 8]"), -Attr("c.data","Top:u8 ptr ptr"), Attr("c.type","char**")]), - Var("__libc_start_main_arg3",Imm(64)), Var("R2",Imm(64)), Both()), -Arg(Tid(1_532, "%000005fc"), Attrs([Attr("c.layout","*[ : 8]"), -Attr("c.data","{} ptr"), Attr("c.type","void*")]), - Var("__libc_start_main_auxv",Imm(64)), Var("R3",Imm(64)), Both()), -Arg(Tid(1_533, "%000005fd"), Attrs([Attr("c.layout","[signed : 32]"), -Attr("c.data","Top:u32"), Attr("c.type","signed")]), - Var("__libc_start_main_result",Imm(32)), LOW(32,Var("R0",Imm(64))), -Out())]), Blks([Blk(Tid(507, "@__libc_start_main"), - Attrs([Attr("address","0x5F0")]), Phis([]), -Defs([Def(Tid(1_208, "%000004b8"), Attrs([Attr("address","0x5F0"), -Attr("insn","adrp x16, #69632")]), Var("R16",Imm(64)), Int(69632,64)), -Def(Tid(1_215, "%000004bf"), Attrs([Attr("address","0x5F4"), -Attr("insn","ldr x17, [x16]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R16",Imm(64)),LittleEndian(),64)), -Def(Tid(1_221, "%000004c5"), Attrs([Attr("address","0x5F8"), -Attr("insn","add x16, x16, #0x0")]), Var("R16",Imm(64)), -Var("R16",Imm(64)))]), Jmps([Call(Tid(1_226, "%000004ca"), - Attrs([Attr("address","0x5FC"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), Sub(Tid(1_480, "@_fini"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x7A8")]), - "_fini", Args([Arg(Tid(1_534, "%000005fe"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("_fini_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(31, "@_fini"), - Attrs([Attr("address","0x7A8")]), Phis([]), Defs([Def(Tid(37, "%00000025"), - Attrs([Attr("address","0x7AC"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("#0",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(18446744073709551600,64))), -Def(Tid(43, "%0000002b"), Attrs([Attr("address","0x7AC"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("#0",Imm(64)),Var("R29",Imm(64)),LittleEndian(),64)), -Def(Tid(49, "%00000031"), Attrs([Attr("address","0x7AC"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("#0",Imm(64)),Int(8,64)),Var("R30",Imm(64)),LittleEndian(),64)), -Def(Tid(53, "%00000035"), Attrs([Attr("address","0x7AC"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("R31",Imm(64)), -Var("#0",Imm(64))), Def(Tid(59, "%0000003b"), Attrs([Attr("address","0x7B0"), -Attr("insn","mov x29, sp")]), Var("R29",Imm(64)), Var("R31",Imm(64))), -Def(Tid(66, "%00000042"), Attrs([Attr("address","0x7B4"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R29",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(71, "%00000047"), Attrs([Attr("address","0x7B4"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R30",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(75, "%0000004b"), Attrs([Attr("address","0x7B4"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(16,64)))]), Jmps([Call(Tid(80, "%00000050"), - Attrs([Attr("address","0x7B8"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), Sub(Tid(1_481, "@_init"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x5B0")]), - "_init", Args([Arg(Tid(1_535, "%000005ff"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("_init_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(1_320, "@_init"), - Attrs([Attr("address","0x5B0")]), Phis([]), -Defs([Def(Tid(1_326, "%0000052e"), Attrs([Attr("address","0x5B4"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("#6",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(18446744073709551600,64))), -Def(Tid(1_332, "%00000534"), Attrs([Attr("address","0x5B4"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("#6",Imm(64)),Var("R29",Imm(64)),LittleEndian(),64)), -Def(Tid(1_338, "%0000053a"), Attrs([Attr("address","0x5B4"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("#6",Imm(64)),Int(8,64)),Var("R30",Imm(64)),LittleEndian(),64)), -Def(Tid(1_342, "%0000053e"), Attrs([Attr("address","0x5B4"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("R31",Imm(64)), -Var("#6",Imm(64))), Def(Tid(1_348, "%00000544"), - Attrs([Attr("address","0x5B8"), Attr("insn","mov x29, sp")]), - Var("R29",Imm(64)), Var("R31",Imm(64))), Def(Tid(1_353, "%00000549"), - Attrs([Attr("address","0x5BC"), Attr("insn","bl #0xb8")]), - Var("R30",Imm(64)), Int(1472,64))]), Jmps([Call(Tid(1_355, "%0000054b"), - Attrs([Attr("address","0x5BC"), Attr("insn","bl #0xb8")]), Int(1,1), -(Direct(Tid(1_486, "@call_weak_fn")),Direct(Tid(1_357, "%0000054d"))))])), -Blk(Tid(1_357, "%0000054d"), Attrs([Attr("address","0x5C0")]), Phis([]), -Defs([Def(Tid(1_362, "%00000552"), Attrs([Attr("address","0x5C0"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R29",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(1_367, "%00000557"), Attrs([Attr("address","0x5C0"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R30",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(1_371, "%0000055b"), Attrs([Attr("address","0x5C0"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(16,64)))]), Jmps([Call(Tid(1_376, "%00000560"), - Attrs([Attr("address","0x5C4"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), Sub(Tid(1_482, "@_start"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x640"), -Attr("entry-point","()")]), "_start", Args([Arg(Tid(1_536, "%00000600"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("_start_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(444, "@_start"), - Attrs([Attr("address","0x640")]), Phis([]), Defs([Def(Tid(449, "%000001c1"), - Attrs([Attr("address","0x644"), Attr("insn","mov x29, #0x0")]), - Var("R29",Imm(64)), Int(0,64)), Def(Tid(454, "%000001c6"), - Attrs([Attr("address","0x648"), Attr("insn","mov x30, #0x0")]), - Var("R30",Imm(64)), Int(0,64)), Def(Tid(460, "%000001cc"), - Attrs([Attr("address","0x64C"), Attr("insn","mov x5, x0")]), - Var("R5",Imm(64)), Var("R0",Imm(64))), Def(Tid(467, "%000001d3"), - Attrs([Attr("address","0x650"), Attr("insn","ldr x1, [sp]")]), - Var("R1",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(473, "%000001d9"), Attrs([Attr("address","0x654"), -Attr("insn","add x2, sp, #0x8")]), Var("R2",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(8,64))), Def(Tid(479, "%000001df"), - Attrs([Attr("address","0x658"), Attr("insn","mov x6, sp")]), - Var("R6",Imm(64)), Var("R31",Imm(64))), Def(Tid(484, "%000001e4"), - Attrs([Attr("address","0x65C"), Attr("insn","adrp x0, #65536")]), - Var("R0",Imm(64)), Int(65536,64)), Def(Tid(491, "%000001eb"), - Attrs([Attr("address","0x660"), Attr("insn","ldr x0, [x0, #0xfd8]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(4056,64)),LittleEndian(),64)), -Def(Tid(496, "%000001f0"), Attrs([Attr("address","0x664"), -Attr("insn","mov x3, #0x0")]), Var("R3",Imm(64)), Int(0,64)), -Def(Tid(501, "%000001f5"), Attrs([Attr("address","0x668"), -Attr("insn","mov x4, #0x0")]), Var("R4",Imm(64)), Int(0,64)), -Def(Tid(506, "%000001fa"), Attrs([Attr("address","0x66C"), -Attr("insn","bl #-0x7c")]), Var("R30",Imm(64)), Int(1648,64))]), -Jmps([Call(Tid(509, "%000001fd"), Attrs([Attr("address","0x66C"), -Attr("insn","bl #-0x7c")]), Int(1,1), -(Direct(Tid(1_479, "@__libc_start_main")),Direct(Tid(511, "%000001ff"))))])), -Blk(Tid(511, "%000001ff"), Attrs([Attr("address","0x670")]), Phis([]), -Defs([Def(Tid(514, "%00000202"), Attrs([Attr("address","0x670"), -Attr("insn","bl #-0x50")]), Var("R30",Imm(64)), Int(1652,64))]), -Jmps([Call(Tid(517, "%00000205"), Attrs([Attr("address","0x670"), -Attr("insn","bl #-0x50")]), Int(1,1), -(Direct(Tid(1_485, "@abort")),Direct(Tid(1_518, "%000005ee"))))])), -Blk(Tid(1_518, "%000005ee"), Attrs([]), Phis([]), Defs([]), -Jmps([Call(Tid(1_519, "%000005ef"), Attrs([]), Int(1,1), -(Direct(Tid(1_486, "@call_weak_fn")),))]))])), Sub(Tid(1_485, "@abort"), - Attrs([Attr("noreturn","()"), Attr("c.proto","void (*)(void)"), -Attr("address","0x620"), Attr("stub","()")]), "abort", Args([]), -Blks([Blk(Tid(515, "@abort"), Attrs([Attr("address","0x620")]), Phis([]), -Defs([Def(Tid(1_274, "%000004fa"), Attrs([Attr("address","0x620"), -Attr("insn","adrp x16, #69632")]), Var("R16",Imm(64)), Int(69632,64)), -Def(Tid(1_281, "%00000501"), Attrs([Attr("address","0x624"), -Attr("insn","ldr x17, [x16, #0x18]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(24,64)),LittleEndian(),64)), -Def(Tid(1_287, "%00000507"), Attrs([Attr("address","0x628"), -Attr("insn","add x16, x16, #0x18")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(24,64)))]), Jmps([Call(Tid(1_292, "%0000050c"), - Attrs([Attr("address","0x62C"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), Sub(Tid(1_486, "@call_weak_fn"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x674")]), - "call_weak_fn", Args([Arg(Tid(1_537, "%00000601"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("call_weak_fn_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(519, "@call_weak_fn"), - Attrs([Attr("address","0x674")]), Phis([]), Defs([Def(Tid(522, "%0000020a"), - Attrs([Attr("address","0x674"), Attr("insn","adrp x0, #65536")]), - Var("R0",Imm(64)), Int(65536,64)), Def(Tid(529, "%00000211"), - Attrs([Attr("address","0x678"), Attr("insn","ldr x0, [x0, #0xfc8]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(4040,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(535, "%00000217"), Attrs([Attr("address","0x67C"), -Attr("insn","cbz x0, #0x8")]), EQ(Var("R0",Imm(64)),Int(0,64)), -Direct(Tid(533, "%00000215"))), Goto(Tid(1_520, "%000005f0"), Attrs([]), - Int(1,1), Direct(Tid(1_046, "%00000416")))])), Blk(Tid(533, "%00000215"), - Attrs([Attr("address","0x684")]), Phis([]), Defs([]), -Jmps([Call(Tid(541, "%0000021d"), Attrs([Attr("address","0x684"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))])), -Blk(Tid(1_046, "%00000416"), Attrs([Attr("address","0x680")]), Phis([]), -Defs([]), Jmps([Goto(Tid(1_049, "%00000419"), Attrs([Attr("address","0x680"), -Attr("insn","b #-0x70")]), Int(1,1), -Direct(Tid(1_047, "@__gmon_start__")))])), Blk(Tid(1_047, "@__gmon_start__"), - Attrs([Attr("address","0x610")]), Phis([]), -Defs([Def(Tid(1_252, "%000004e4"), Attrs([Attr("address","0x610"), -Attr("insn","adrp x16, #69632")]), Var("R16",Imm(64)), Int(69632,64)), -Def(Tid(1_259, "%000004eb"), Attrs([Attr("address","0x614"), -Attr("insn","ldr x17, [x16, #0x10]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(16,64)),LittleEndian(),64)), -Def(Tid(1_265, "%000004f1"), Attrs([Attr("address","0x618"), -Attr("insn","add x16, x16, #0x10")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(16,64)))]), Jmps([Call(Tid(1_270, "%000004f6"), - Attrs([Attr("address","0x61C"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), -Sub(Tid(1_488, "@deregister_tm_clones"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x690")]), - "deregister_tm_clones", Args([Arg(Tid(1_538, "%00000602"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("deregister_tm_clones_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(547, "@deregister_tm_clones"), - Attrs([Attr("address","0x690")]), Phis([]), Defs([Def(Tid(550, "%00000226"), - Attrs([Attr("address","0x690"), Attr("insn","adrp x0, #69632")]), - Var("R0",Imm(64)), Int(69632,64)), Def(Tid(556, "%0000022c"), - Attrs([Attr("address","0x694"), Attr("insn","add x0, x0, #0x30")]), - Var("R0",Imm(64)), PLUS(Var("R0",Imm(64)),Int(48,64))), -Def(Tid(561, "%00000231"), Attrs([Attr("address","0x698"), -Attr("insn","adrp x1, #69632")]), Var("R1",Imm(64)), Int(69632,64)), -Def(Tid(567, "%00000237"), Attrs([Attr("address","0x69C"), -Attr("insn","add x1, x1, #0x30")]), Var("R1",Imm(64)), -PLUS(Var("R1",Imm(64)),Int(48,64))), Def(Tid(573, "%0000023d"), - Attrs([Attr("address","0x6A0"), Attr("insn","cmp x1, x0")]), - Var("#1",Imm(64)), NOT(Var("R0",Imm(64)))), Def(Tid(578, "%00000242"), - Attrs([Attr("address","0x6A0"), Attr("insn","cmp x1, x0")]), - Var("#2",Imm(64)), PLUS(Var("R1",Imm(64)),NOT(Var("R0",Imm(64))))), -Def(Tid(584, "%00000248"), Attrs([Attr("address","0x6A0"), -Attr("insn","cmp x1, x0")]), Var("VF",Imm(1)), -NEQ(SIGNED(65,PLUS(Var("#2",Imm(64)),Int(1,64))),PLUS(PLUS(SIGNED(65,Var("R1",Imm(64))),SIGNED(65,Var("#1",Imm(64)))),Int(1,65)))), -Def(Tid(590, "%0000024e"), Attrs([Attr("address","0x6A0"), -Attr("insn","cmp x1, x0")]), Var("CF",Imm(1)), -NEQ(UNSIGNED(65,PLUS(Var("#2",Imm(64)),Int(1,64))),PLUS(PLUS(UNSIGNED(65,Var("R1",Imm(64))),UNSIGNED(65,Var("#1",Imm(64)))),Int(1,65)))), -Def(Tid(594, "%00000252"), Attrs([Attr("address","0x6A0"), -Attr("insn","cmp x1, x0")]), Var("ZF",Imm(1)), -EQ(PLUS(Var("#2",Imm(64)),Int(1,64)),Int(0,64))), Def(Tid(598, "%00000256"), - Attrs([Attr("address","0x6A0"), Attr("insn","cmp x1, x0")]), - Var("NF",Imm(1)), Extract(63,63,PLUS(Var("#2",Imm(64)),Int(1,64))))]), -Jmps([Goto(Tid(604, "%0000025c"), Attrs([Attr("address","0x6A4"), -Attr("insn","b.eq #0x18")]), EQ(Var("ZF",Imm(1)),Int(1,1)), -Direct(Tid(602, "%0000025a"))), Goto(Tid(1_521, "%000005f1"), Attrs([]), - Int(1,1), Direct(Tid(1_016, "%000003f8")))])), Blk(Tid(1_016, "%000003f8"), - Attrs([Attr("address","0x6A8")]), Phis([]), -Defs([Def(Tid(1_019, "%000003fb"), Attrs([Attr("address","0x6A8"), -Attr("insn","adrp x1, #65536")]), Var("R1",Imm(64)), Int(65536,64)), -Def(Tid(1_026, "%00000402"), Attrs([Attr("address","0x6AC"), -Attr("insn","ldr x1, [x1, #0xfb0]")]), Var("R1",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R1",Imm(64)),Int(4016,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(1_031, "%00000407"), Attrs([Attr("address","0x6B0"), -Attr("insn","cbz x1, #0xc")]), EQ(Var("R1",Imm(64)),Int(0,64)), -Direct(Tid(602, "%0000025a"))), Goto(Tid(1_522, "%000005f2"), Attrs([]), - Int(1,1), Direct(Tid(1_035, "%0000040b")))])), Blk(Tid(602, "%0000025a"), - Attrs([Attr("address","0x6BC")]), Phis([]), Defs([]), -Jmps([Call(Tid(610, "%00000262"), Attrs([Attr("address","0x6BC"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))])), -Blk(Tid(1_035, "%0000040b"), Attrs([Attr("address","0x6B4")]), Phis([]), -Defs([Def(Tid(1_039, "%0000040f"), Attrs([Attr("address","0x6B4"), -Attr("insn","mov x16, x1")]), Var("R16",Imm(64)), Var("R1",Imm(64)))]), -Jmps([Call(Tid(1_044, "%00000414"), Attrs([Attr("address","0x6B8"), -Attr("insn","br x16")]), Int(1,1), (Indirect(Var("R16",Imm(64))),))]))])), -Sub(Tid(1_491, "@frame_dummy"), Attrs([Attr("c.proto","signed (*)(void)"), -Attr("address","0x750")]), "frame_dummy", Args([Arg(Tid(1_539, "%00000603"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("frame_dummy_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(762, "@frame_dummy"), - Attrs([Attr("address","0x750")]), Phis([]), Defs([]), -Jmps([Call(Tid(764, "%000002fc"), Attrs([Attr("address","0x750"), -Attr("insn","b #-0x90")]), Int(1,1), -(Direct(Tid(1_494, "@register_tm_clones")),))]))])), Sub(Tid(1_492, "@main"), - Attrs([Attr("c.proto","signed (*)(signed argc, const char** argv)"), -Attr("address","0x754")]), "main", Args([Arg(Tid(1_540, "%00000604"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("main_argc",Imm(32)), -LOW(32,Var("R0",Imm(64))), In()), Arg(Tid(1_541, "%00000605"), - Attrs([Attr("c.layout","**[char : 8]"), Attr("c.data","Top:u8 ptr ptr"), -Attr("c.type"," const char**")]), Var("main_argv",Imm(64)), -Var("R1",Imm(64)), Both()), Arg(Tid(1_542, "%00000606"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("main_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(766, "@main"), - Attrs([Attr("address","0x754")]), Phis([]), Defs([Def(Tid(770, "%00000302"), - Attrs([Attr("address","0x754"), Attr("insn","sub sp, sp, #0x10")]), - Var("R31",Imm(64)), PLUS(Var("R31",Imm(64)),Int(18446744073709551600,64))), -Def(Tid(777, "%00000309"), Attrs([Attr("address","0x758"), -Attr("insn","str wzr, [sp, #0xc]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(12,64)),Int(0,32),LittleEndian(),32)), -Def(Tid(782, "%0000030e"), Attrs([Attr("address","0x75C"), -Attr("insn","adrp x8, #65536")]), Var("R8",Imm(64)), Int(65536,64)), -Def(Tid(789, "%00000315"), Attrs([Attr("address","0x760"), -Attr("insn","ldr x8, [x8, #0xfd0]")]), Var("R8",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R8",Imm(64)),Int(4048,64)),LittleEndian(),64)), -Def(Tid(796, "%0000031c"), Attrs([Attr("address","0x764"), -Attr("insn","ldr w8, [x8]")]), Var("R8",Imm(64)), -UNSIGNED(64,Load(Var("mem",Mem(64,8)),Var("R8",Imm(64)),LittleEndian(),32))), -Def(Tid(804, "%00000324"), Attrs([Attr("address","0x768"), -Attr("insn","str w8, [sp, #0x8]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),Extract(31,0,Var("R8",Imm(64))),LittleEndian(),32)), -Def(Tid(809, "%00000329"), Attrs([Attr("address","0x76C"), -Attr("insn","adrp x8, #65536")]), Var("R8",Imm(64)), Int(65536,64)), -Def(Tid(816, "%00000330"), Attrs([Attr("address","0x770"), -Attr("insn","ldr x8, [x8, #0xfc0]")]), Var("R8",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R8",Imm(64)),Int(4032,64)),LittleEndian(),64)), -Def(Tid(823, "%00000337"), Attrs([Attr("address","0x774"), -Attr("insn","ldr w8, [x8]")]), Var("R8",Imm(64)), -UNSIGNED(64,Load(Var("mem",Mem(64,8)),Var("R8",Imm(64)),LittleEndian(),32))), -Def(Tid(829, "%0000033d"), Attrs([Attr("address","0x778"), -Attr("insn","subs w8, w8, #0x0")]), Var("#4",Imm(32)), -PLUS(Extract(31,0,Var("R8",Imm(64))),Int(4294967295,32))), -Def(Tid(834, "%00000342"), Attrs([Attr("address","0x778"), -Attr("insn","subs w8, w8, #0x0")]), Var("VF",Imm(1)), -NEQ(SIGNED(33,PLUS(Var("#4",Imm(32)),Int(1,32))),PLUS(SIGNED(33,Extract(31,0,Var("R8",Imm(64)))),Int(0,33)))), -Def(Tid(839, "%00000347"), Attrs([Attr("address","0x778"), -Attr("insn","subs w8, w8, #0x0")]), Var("CF",Imm(1)), -NEQ(UNSIGNED(33,PLUS(Var("#4",Imm(32)),Int(1,32))),PLUS(UNSIGNED(33,Extract(31,0,Var("R8",Imm(64)))),Int(4294967296,33)))), -Def(Tid(843, "%0000034b"), Attrs([Attr("address","0x778"), -Attr("insn","subs w8, w8, #0x0")]), Var("ZF",Imm(1)), -EQ(PLUS(Var("#4",Imm(32)),Int(1,32)),Int(0,32))), Def(Tid(847, "%0000034f"), - Attrs([Attr("address","0x778"), Attr("insn","subs w8, w8, #0x0")]), - Var("NF",Imm(1)), Extract(31,31,PLUS(Var("#4",Imm(32)),Int(1,32)))), -Def(Tid(851, "%00000353"), Attrs([Attr("address","0x778"), -Attr("insn","subs w8, w8, #0x0")]), Var("R8",Imm(64)), -UNSIGNED(64,PLUS(Var("#4",Imm(32)),Int(1,32))))]), -Jmps([Goto(Tid(863, "%0000035f"), Attrs([Attr("address","0x77C"), -Attr("insn","cset w8, ne")]), EQ(Var("ZF",Imm(1)),Int(1,1)), -Direct(Tid(856, "%00000358"))), Goto(Tid(864, "%00000360"), - Attrs([Attr("address","0x77C"), Attr("insn","cset w8, ne")]), Int(1,1), -Direct(Tid(859, "%0000035b")))])), Blk(Tid(859, "%0000035b"), Attrs([]), - Phis([]), Defs([Def(Tid(860, "%0000035c"), Attrs([Attr("address","0x77C"), -Attr("insn","cset w8, ne")]), Var("R8",Imm(64)), Int(1,64))]), -Jmps([Goto(Tid(866, "%00000362"), Attrs([Attr("address","0x77C"), -Attr("insn","cset w8, ne")]), Int(1,1), Direct(Tid(862, "%0000035e")))])), -Blk(Tid(856, "%00000358"), Attrs([]), Phis([]), -Defs([Def(Tid(857, "%00000359"), Attrs([Attr("address","0x77C"), -Attr("insn","cset w8, ne")]), Var("R8",Imm(64)), Int(0,64))]), -Jmps([Goto(Tid(865, "%00000361"), Attrs([Attr("address","0x77C"), -Attr("insn","cset w8, ne")]), Int(1,1), Direct(Tid(862, "%0000035e")))])), -Blk(Tid(862, "%0000035e"), Attrs([]), Phis([]), Defs([]), -Jmps([Goto(Tid(872, "%00000368"), Attrs([Attr("address","0x780"), -Attr("insn","tbnz w8, #0x0, #0x10")]), - EQ(Extract(0,0,Var("R8",Imm(64))),Int(1,1)), Direct(Tid(870, "%00000366"))), -Goto(Tid(1_523, "%000005f3"), Attrs([]), Int(1,1), -Direct(Tid(912, "%00000390")))])), Blk(Tid(870, "%00000366"), - Attrs([Attr("address","0x790")]), Phis([]), Defs([Def(Tid(880, "%00000370"), - Attrs([Attr("address","0x790"), Attr("insn","ldr w8, [sp, #0x8]")]), - Var("R8",Imm(64)), -UNSIGNED(64,Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),LittleEndian(),32))), -Def(Tid(888, "%00000378"), Attrs([Attr("address","0x794"), -Attr("insn","str w8, [sp, #0xc]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(12,64)),Extract(31,0,Var("R8",Imm(64))),LittleEndian(),32))]), -Jmps([Goto(Tid(893, "%0000037d"), Attrs([Attr("address","0x798"), -Attr("insn","b #0x4")]), Int(1,1), Direct(Tid(891, "%0000037b")))])), -Blk(Tid(912, "%00000390"), Attrs([Attr("address","0x784")]), Phis([]), -Defs([]), Jmps([Goto(Tid(915, "%00000393"), Attrs([Attr("address","0x784"), -Attr("insn","b #0x4")]), Int(1,1), Direct(Tid(913, "%00000391")))])), -Blk(Tid(913, "%00000391"), Attrs([Attr("address","0x788")]), Phis([]), -Defs([Def(Tid(921, "%00000399"), Attrs([Attr("address","0x788"), -Attr("insn","str wzr, [sp, #0xc]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(12,64)),Int(0,32),LittleEndian(),32))]), -Jmps([Goto(Tid(925, "%0000039d"), Attrs([Attr("address","0x78C"), -Attr("insn","b #0x10")]), Int(1,1), Direct(Tid(891, "%0000037b")))])), -Blk(Tid(891, "%0000037b"), Attrs([Attr("address","0x79C")]), Phis([]), -Defs([Def(Tid(899, "%00000383"), Attrs([Attr("address","0x79C"), -Attr("insn","ldr w0, [sp, #0xc]")]), Var("R0",Imm(64)), -UNSIGNED(64,Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(12,64)),LittleEndian(),32))), -Def(Tid(905, "%00000389"), Attrs([Attr("address","0x7A0"), -Attr("insn","add sp, sp, #0x10")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(16,64)))]), Jmps([Call(Tid(910, "%0000038e"), - Attrs([Attr("address","0x7A4"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), -Sub(Tid(1_494, "@register_tm_clones"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x6C0")]), - "register_tm_clones", Args([Arg(Tid(1_543, "%00000607"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("register_tm_clones_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(612, "@register_tm_clones"), Attrs([Attr("address","0x6C0")]), - Phis([]), Defs([Def(Tid(615, "%00000267"), Attrs([Attr("address","0x6C0"), -Attr("insn","adrp x0, #69632")]), Var("R0",Imm(64)), Int(69632,64)), -Def(Tid(621, "%0000026d"), Attrs([Attr("address","0x6C4"), -Attr("insn","add x0, x0, #0x30")]), Var("R0",Imm(64)), -PLUS(Var("R0",Imm(64)),Int(48,64))), Def(Tid(626, "%00000272"), - Attrs([Attr("address","0x6C8"), Attr("insn","adrp x1, #69632")]), - Var("R1",Imm(64)), Int(69632,64)), Def(Tid(632, "%00000278"), - Attrs([Attr("address","0x6CC"), Attr("insn","add x1, x1, #0x30")]), - Var("R1",Imm(64)), PLUS(Var("R1",Imm(64)),Int(48,64))), -Def(Tid(639, "%0000027f"), Attrs([Attr("address","0x6D0"), -Attr("insn","sub x1, x1, x0")]), Var("R1",Imm(64)), -PLUS(PLUS(Var("R1",Imm(64)),NOT(Var("R0",Imm(64)))),Int(1,64))), -Def(Tid(645, "%00000285"), Attrs([Attr("address","0x6D4"), -Attr("insn","lsr x2, x1, #63")]), Var("R2",Imm(64)), -Concat(Int(0,63),Extract(63,63,Var("R1",Imm(64))))), -Def(Tid(652, "%0000028c"), Attrs([Attr("address","0x6D8"), -Attr("insn","add x1, x2, x1, asr #3")]), Var("R1",Imm(64)), -PLUS(Var("R2",Imm(64)),ARSHIFT(Var("R1",Imm(64)),Int(3,3)))), -Def(Tid(658, "%00000292"), Attrs([Attr("address","0x6DC"), -Attr("insn","asr x1, x1, #1")]), Var("R1",Imm(64)), -SIGNED(64,Extract(63,1,Var("R1",Imm(64)))))]), -Jmps([Goto(Tid(664, "%00000298"), Attrs([Attr("address","0x6E0"), -Attr("insn","cbz x1, #0x18")]), EQ(Var("R1",Imm(64)),Int(0,64)), -Direct(Tid(662, "%00000296"))), Goto(Tid(1_524, "%000005f4"), Attrs([]), - Int(1,1), Direct(Tid(986, "%000003da")))])), Blk(Tid(986, "%000003da"), - Attrs([Attr("address","0x6E4")]), Phis([]), Defs([Def(Tid(989, "%000003dd"), - Attrs([Attr("address","0x6E4"), Attr("insn","adrp x2, #65536")]), - Var("R2",Imm(64)), Int(65536,64)), Def(Tid(996, "%000003e4"), - Attrs([Attr("address","0x6E8"), Attr("insn","ldr x2, [x2, #0xfe0]")]), - Var("R2",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R2",Imm(64)),Int(4064,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(1_001, "%000003e9"), Attrs([Attr("address","0x6EC"), -Attr("insn","cbz x2, #0xc")]), EQ(Var("R2",Imm(64)),Int(0,64)), -Direct(Tid(662, "%00000296"))), Goto(Tid(1_525, "%000005f5"), Attrs([]), - Int(1,1), Direct(Tid(1_005, "%000003ed")))])), Blk(Tid(662, "%00000296"), - Attrs([Attr("address","0x6F8")]), Phis([]), Defs([]), -Jmps([Call(Tid(670, "%0000029e"), Attrs([Attr("address","0x6F8"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))])), -Blk(Tid(1_005, "%000003ed"), Attrs([Attr("address","0x6F0")]), Phis([]), -Defs([Def(Tid(1_009, "%000003f1"), Attrs([Attr("address","0x6F0"), -Attr("insn","mov x16, x2")]), Var("R16",Imm(64)), Var("R2",Imm(64)))]), -Jmps([Call(Tid(1_014, "%000003f6"), Attrs([Attr("address","0x6F4"), -Attr("insn","br x16")]), Int(1,1), -(Indirect(Var("R16",Imm(64))),))]))]))]))) \ No newline at end of file diff --git a/src/test/correct/basic_function_call_reader/clang_pic/basic_function_call_reader.bir b/src/test/correct/basic_function_call_reader/clang_pic/basic_function_call_reader.bir deleted file mode 100644 index d01dfb40f..000000000 --- a/src/test/correct/basic_function_call_reader/clang_pic/basic_function_call_reader.bir +++ /dev/null @@ -1,268 +0,0 @@ -000005f6: program -000005c2: sub __cxa_finalize(__cxa_finalize_result) -000005f7: __cxa_finalize_result :: out u32 = low:32[R0] - -000003d6: -000004ce: R16 := 0x11000 -000004d5: R17 := mem[R16 + 8, el]:u64 -000004db: R16 := R16 + 8 -000004e0: call R17 with noreturn - -000005c3: sub __do_global_dtors_aux(__do_global_dtors_aux_result) -000005f8: __do_global_dtors_aux_result :: out u32 = low:32[R0] - -000002a2: -000002a6: #3 := R31 - 0x20 -000002ac: mem := mem with [#3, el]:u64 <- R29 -000002b2: mem := mem with [#3 + 8, el]:u64 <- R30 -000002b6: R31 := #3 -000002bc: R29 := R31 -000002c4: mem := mem with [R31 + 0x10, el]:u64 <- R19 -000002c9: R19 := 0x11000 -000002d0: R0 := pad:64[mem[R19 + 0x30]] -000002d7: when 31:0[R0] <> 0 goto %000002d5 -000005eb: goto %0000039f - -0000039f: -000003a2: R0 := 0x10000 -000003a9: R0 := mem[R0 + 0xFB8, el]:u64 -000003af: when R0 = 0 goto %000003ad -000005ec: goto %000003c6 - -000003c6: -000003c9: R0 := 0x11000 -000003d0: R0 := mem[R0 + 0x28, el]:u64 -000003d5: R30 := 0x730 -000003d8: call @__cxa_finalize with return %000003ad - -000003ad: -000003b5: R30 := 0x734 -000003b7: call @deregister_tm_clones with return %000003b9 - -000003b9: -000003bc: R0 := 1 -000003c4: mem := mem with [R19 + 0x30] <- 7:0[R0] -000005ed: goto %000002d5 - -000002d5: -000002df: R19 := mem[R31 + 0x10, el]:u64 -000002e6: R29 := mem[R31, el]:u64 -000002eb: R30 := mem[R31 + 8, el]:u64 -000002ef: R31 := R31 + 0x20 -000002f4: call R30 with noreturn - -000005c7: sub __libc_start_main(__libc_start_main_main, __libc_start_main_arg2, __libc_start_main_arg3, __libc_start_main_auxv, __libc_start_main_result) -000005f9: __libc_start_main_main :: in u64 = R0 -000005fa: __libc_start_main_arg2 :: in u32 = low:32[R1] -000005fb: __libc_start_main_arg3 :: in out u64 = R2 -000005fc: __libc_start_main_auxv :: in out u64 = R3 -000005fd: __libc_start_main_result :: out u32 = low:32[R0] - -000001fb: -000004b8: R16 := 0x11000 -000004bf: R17 := mem[R16, el]:u64 -000004c5: R16 := R16 -000004ca: call R17 with noreturn - -000005c8: sub _fini(_fini_result) -000005fe: _fini_result :: out u32 = low:32[R0] - -0000001f: -00000025: #0 := R31 - 0x10 -0000002b: mem := mem with [#0, el]:u64 <- R29 -00000031: mem := mem with [#0 + 8, el]:u64 <- R30 -00000035: R31 := #0 -0000003b: R29 := R31 -00000042: R29 := mem[R31, el]:u64 -00000047: R30 := mem[R31 + 8, el]:u64 -0000004b: R31 := R31 + 0x10 -00000050: call R30 with noreturn - -000005c9: sub _init(_init_result) -000005ff: _init_result :: out u32 = low:32[R0] - -00000528: -0000052e: #6 := R31 - 0x10 -00000534: mem := mem with [#6, el]:u64 <- R29 -0000053a: mem := mem with [#6 + 8, el]:u64 <- R30 -0000053e: R31 := #6 -00000544: R29 := R31 -00000549: R30 := 0x5C0 -0000054b: call @call_weak_fn with return %0000054d - -0000054d: -00000552: R29 := mem[R31, el]:u64 -00000557: R30 := mem[R31 + 8, el]:u64 -0000055b: R31 := R31 + 0x10 -00000560: call R30 with noreturn - -000005ca: sub _start(_start_result) -00000600: _start_result :: out u32 = low:32[R0] - -000001bc: -000001c1: R29 := 0 -000001c6: R30 := 0 -000001cc: R5 := R0 -000001d3: R1 := mem[R31, el]:u64 -000001d9: R2 := R31 + 8 -000001df: R6 := R31 -000001e4: R0 := 0x10000 -000001eb: R0 := mem[R0 + 0xFD8, el]:u64 -000001f0: R3 := 0 -000001f5: R4 := 0 -000001fa: R30 := 0x670 -000001fd: call @__libc_start_main with return %000001ff - -000001ff: -00000202: R30 := 0x674 -00000205: call @abort with return %000005ee - -000005ee: -000005ef: call @call_weak_fn with noreturn - -000005cd: sub abort() - - -00000203: -000004fa: R16 := 0x11000 -00000501: R17 := mem[R16 + 0x18, el]:u64 -00000507: R16 := R16 + 0x18 -0000050c: call R17 with noreturn - -000005ce: sub call_weak_fn(call_weak_fn_result) -00000601: call_weak_fn_result :: out u32 = low:32[R0] - -00000207: -0000020a: R0 := 0x10000 -00000211: R0 := mem[R0 + 0xFC8, el]:u64 -00000217: when R0 = 0 goto %00000215 -000005f0: goto %00000416 - -00000215: -0000021d: call R30 with noreturn - -00000416: -00000419: goto @__gmon_start__ - -00000417: -000004e4: R16 := 0x11000 -000004eb: R17 := mem[R16 + 0x10, el]:u64 -000004f1: R16 := R16 + 0x10 -000004f6: call R17 with noreturn - -000005d0: sub deregister_tm_clones(deregister_tm_clones_result) -00000602: deregister_tm_clones_result :: out u32 = low:32[R0] - -00000223: -00000226: R0 := 0x11000 -0000022c: R0 := R0 + 0x30 -00000231: R1 := 0x11000 -00000237: R1 := R1 + 0x30 -0000023d: #1 := ~R0 -00000242: #2 := R1 + ~R0 -00000248: VF := extend:65[#2 + 1] <> extend:65[R1] + extend:65[#1] + 1 -0000024e: CF := pad:65[#2 + 1] <> pad:65[R1] + pad:65[#1] + 1 -00000252: ZF := #2 + 1 = 0 -00000256: NF := 63:63[#2 + 1] -0000025c: when ZF goto %0000025a -000005f1: goto %000003f8 - -000003f8: -000003fb: R1 := 0x10000 -00000402: R1 := mem[R1 + 0xFB0, el]:u64 -00000407: when R1 = 0 goto %0000025a -000005f2: goto %0000040b - -0000025a: -00000262: call R30 with noreturn - -0000040b: -0000040f: R16 := R1 -00000414: call R16 with noreturn - -000005d3: sub frame_dummy(frame_dummy_result) -00000603: frame_dummy_result :: out u32 = low:32[R0] - -000002fa: -000002fc: call @register_tm_clones with noreturn - -000005d4: sub main(main_argc, main_argv, main_result) -00000604: main_argc :: in u32 = low:32[R0] -00000605: main_argv :: in out u64 = R1 -00000606: main_result :: out u32 = low:32[R0] - -000002fe: -00000302: R31 := R31 - 0x10 -00000309: mem := mem with [R31 + 0xC, el]:u32 <- 0 -0000030e: R8 := 0x10000 -00000315: R8 := mem[R8 + 0xFD0, el]:u64 -0000031c: R8 := pad:64[mem[R8, el]:u32] -00000324: mem := mem with [R31 + 8, el]:u32 <- 31:0[R8] -00000329: R8 := 0x10000 -00000330: R8 := mem[R8 + 0xFC0, el]:u64 -00000337: R8 := pad:64[mem[R8, el]:u32] -0000033d: #4 := 31:0[R8] - 1 -00000342: VF := extend:33[#4 + 1] <> extend:33[31:0[R8]] + 0 -00000347: CF := pad:33[#4 + 1] <> pad:33[31:0[R8]] - 0x100000000 -0000034b: ZF := #4 + 1 = 0 -0000034f: NF := 31:31[#4 + 1] -00000353: R8 := pad:64[#4 + 1] -0000035f: when ZF goto %00000358 -00000360: goto %0000035b - -0000035b: -0000035c: R8 := 1 -00000362: goto %0000035e - -00000358: -00000359: R8 := 0 -00000361: goto %0000035e - -0000035e: -00000368: when 0:0[R8] goto %00000366 -000005f3: goto %00000390 - -00000366: -00000370: R8 := pad:64[mem[R31 + 8, el]:u32] -00000378: mem := mem with [R31 + 0xC, el]:u32 <- 31:0[R8] -0000037d: goto %0000037b - -00000390: -00000393: goto %00000391 - -00000391: -00000399: mem := mem with [R31 + 0xC, el]:u32 <- 0 -0000039d: goto %0000037b - -0000037b: -00000383: R0 := pad:64[mem[R31 + 0xC, el]:u32] -00000389: R31 := R31 + 0x10 -0000038e: call R30 with noreturn - -000005d6: sub register_tm_clones(register_tm_clones_result) -00000607: register_tm_clones_result :: out u32 = low:32[R0] - -00000264: -00000267: R0 := 0x11000 -0000026d: R0 := R0 + 0x30 -00000272: R1 := 0x11000 -00000278: R1 := R1 + 0x30 -0000027f: R1 := R1 + ~R0 + 1 -00000285: R2 := 0.63:63[R1] -0000028c: R1 := R2 + (R1 ~>> 3) -00000292: R1 := extend:64[63:1[R1]] -00000298: when R1 = 0 goto %00000296 -000005f4: goto %000003da - -000003da: -000003dd: R2 := 0x10000 -000003e4: R2 := mem[R2 + 0xFE0, el]:u64 -000003e9: when R2 = 0 goto %00000296 -000005f5: goto %000003ed - -00000296: -0000029e: call R30 with noreturn - -000003ed: -000003f1: R16 := R2 -000003f6: call R16 with noreturn diff --git a/src/test/correct/basic_function_call_reader/clang_pic/basic_function_call_reader.expected b/src/test/correct/basic_function_call_reader/clang_pic/basic_function_call_reader.expected index 088af61ab..632ee8925 100644 --- a/src/test/correct/basic_function_call_reader/clang_pic/basic_function_call_reader.expected +++ b/src/test/correct/basic_function_call_reader/clang_pic/basic_function_call_reader.expected @@ -2,35 +2,29 @@ var {:extern} CF: bv1; var {:extern} Gamma_CF: bool; var {:extern} Gamma_NF: bool; var {:extern} Gamma_R0: bool; -var {:extern} Gamma_R31: bool; var {:extern} Gamma_R8: bool; +var {:extern} Gamma_R9: bool; var {:extern} Gamma_VF: bool; var {:extern} Gamma_ZF: bool; var {:extern} Gamma_mem: [bv64]bool; -var {:extern} Gamma_stack: [bv64]bool; var {:extern} NF: bv1; var {:extern} R0: bv64; -var {:extern} R31: bv64; var {:extern} R8: bv64; +var {:extern} R9: bv64; var {:extern} VF: bv1; var {:extern} ZF: bv1; var {:extern} mem: [bv64]bv8; -var {:extern} stack: [bv64]bv8; const {:extern} $x_addr: bv64; -axiom ($x_addr == 69688bv64); +axiom ($x_addr == 131096bv64); const {:extern} $y_addr: bv64; -axiom ($y_addr == 69684bv64); +axiom ($y_addr == 131092bv64); function {:extern} L(mem$in: [bv64]bv8, index: bv64) returns (bool) { (if (index == $y_addr) then (memory_load32_le(mem$in, $x_addr) == 1bv32) else (if (index == $x_addr) then true else false)) } -function {:extern} {:bvbuiltin "bvadd"} bvadd32(bv32, bv32) returns (bv32); -function {:extern} {:bvbuiltin "bvadd"} bvadd33(bv33, bv33) returns (bv33); function {:extern} {:bvbuiltin "bvadd"} bvadd64(bv64, bv64) returns (bv64); function {:extern} {:bvbuiltin "bvcomp"} bvcomp1(bv1, bv1) returns (bv1); function {:extern} {:bvbuiltin "bvcomp"} bvcomp32(bv32, bv32) returns (bv1); -function {:extern} {:bvbuiltin "bvcomp"} bvcomp33(bv33, bv33) returns (bv1); -function {:extern} {:bvbuiltin "bvnot"} bvnot1(bv1) returns (bv1); function {:extern} gamma_load32(gammaMap: [bv64]bool, index: bv64) returns (bool) { (gammaMap[bvadd64(index, 3bv64)] && (gammaMap[bvadd64(index, 2bv64)] && (gammaMap[bvadd64(index, 1bv64)] && gammaMap[index]))) } @@ -39,10 +33,6 @@ function {:extern} gamma_load64(gammaMap: [bv64]bool, index: bv64) returns (bool (gammaMap[bvadd64(index, 7bv64)] && (gammaMap[bvadd64(index, 6bv64)] && (gammaMap[bvadd64(index, 5bv64)] && (gammaMap[bvadd64(index, 4bv64)] && (gammaMap[bvadd64(index, 3bv64)] && (gammaMap[bvadd64(index, 2bv64)] && (gammaMap[bvadd64(index, 1bv64)] && gammaMap[index]))))))) } -function {:extern} gamma_store32(gammaMap: [bv64]bool, index: bv64, value: bool) returns ([bv64]bool) { - gammaMap[index := value][bvadd64(index, 1bv64) := value][bvadd64(index, 2bv64) := value][bvadd64(index, 3bv64) := value] -} - function {:extern} memory_load32_le(memory: [bv64]bv8, index: bv64) returns (bv32) { (memory[bvadd64(index, 3bv64)] ++ (memory[bvadd64(index, 2bv64)] ++ (memory[bvadd64(index, 1bv64)] ++ memory[index]))) } @@ -51,25 +41,19 @@ function {:extern} memory_load64_le(memory: [bv64]bv8, index: bv64) returns (bv6 (memory[bvadd64(index, 7bv64)] ++ (memory[bvadd64(index, 6bv64)] ++ (memory[bvadd64(index, 5bv64)] ++ (memory[bvadd64(index, 4bv64)] ++ (memory[bvadd64(index, 3bv64)] ++ (memory[bvadd64(index, 2bv64)] ++ (memory[bvadd64(index, 1bv64)] ++ memory[index]))))))) } -function {:extern} memory_store32_le(memory: [bv64]bv8, index: bv64, value: bv32) returns ([bv64]bv8) { - memory[index := value[8:0]][bvadd64(index, 1bv64) := value[16:8]][bvadd64(index, 2bv64) := value[24:16]][bvadd64(index, 3bv64) := value[32:24]] -} - -function {:extern} {:bvbuiltin "sign_extend 1"} sign_extend1_32(bv32) returns (bv33); -function {:extern} {:bvbuiltin "zero_extend 1"} zero_extend1_32(bv32) returns (bv33); function {:extern} {:bvbuiltin "zero_extend 32"} zero_extend32_32(bv32) returns (bv64); procedure {:extern} rely(); modifies Gamma_mem, mem; ensures (forall i: bv64 :: (((mem[i] == old(mem[i])) ==> (Gamma_mem[i] == old(Gamma_mem[i]))))); ensures ((old(memory_load32_le(mem, $x_addr)) == 0bv32) ==> (memory_load32_le(mem, $x_addr) == 0bv32)); ensures (old(gamma_load32(Gamma_mem, $y_addr)) ==> ((memory_load32_le(mem, $x_addr) == 0bv32) || gamma_load32(Gamma_mem, $y_addr))); - free ensures (memory_load32_le(mem, 1980bv64) == 131073bv32); - free ensures (memory_load64_le(mem, 69048bv64) == 1872bv64); - free ensures (memory_load64_le(mem, 69056bv64) == 1792bv64); - free ensures (memory_load64_le(mem, 69568bv64) == 69688bv64); - free ensures (memory_load64_le(mem, 69584bv64) == 69684bv64); - free ensures (memory_load64_le(mem, 69592bv64) == 1876bv64); - free ensures (memory_load64_le(mem, 69672bv64) == 69672bv64); + free ensures (memory_load32_le(mem, 2316bv64) == 131073bv32); + free ensures (memory_load64_le(mem, 130424bv64) == 2256bv64); + free ensures (memory_load64_le(mem, 130432bv64) == 2176bv64); + free ensures (memory_load64_le(mem, 131032bv64) == 131096bv64); + free ensures (memory_load64_le(mem, 131048bv64) == 131092bv64); + free ensures (memory_load64_le(mem, 131056bv64) == 2260bv64); + free ensures (memory_load64_le(mem, 131080bv64) == 131080bv64); procedure {:extern} rely_transitive(); modifies Gamma_mem, mem; @@ -99,123 +83,78 @@ implementation {:extern} guarantee_reflexive() assert (memory_load32_le(mem, $y_addr) == memory_load32_le(mem, $y_addr)); } -procedure main_1876(); - modifies CF, Gamma_CF, Gamma_NF, Gamma_R0, Gamma_R31, Gamma_R8, Gamma_VF, Gamma_ZF, Gamma_mem, Gamma_stack, NF, R0, R31, R8, VF, ZF, mem, stack; - free requires (memory_load64_le(mem, 69664bv64) == 0bv64); - free requires (memory_load64_le(mem, 69672bv64) == 69672bv64); - free requires (memory_load32_le(mem, 1980bv64) == 131073bv32); - free requires (memory_load64_le(mem, 69048bv64) == 1872bv64); - free requires (memory_load64_le(mem, 69056bv64) == 1792bv64); - free requires (memory_load64_le(mem, 69568bv64) == 69688bv64); - free requires (memory_load64_le(mem, 69584bv64) == 69684bv64); - free requires (memory_load64_le(mem, 69592bv64) == 1876bv64); - free requires (memory_load64_le(mem, 69672bv64) == 69672bv64); - free ensures (Gamma_R31 == old(Gamma_R31)); - free ensures (R31 == old(R31)); - free ensures (memory_load32_le(mem, 1980bv64) == 131073bv32); - free ensures (memory_load64_le(mem, 69048bv64) == 1872bv64); - free ensures (memory_load64_le(mem, 69056bv64) == 1792bv64); - free ensures (memory_load64_le(mem, 69568bv64) == 69688bv64); - free ensures (memory_load64_le(mem, 69584bv64) == 69684bv64); - free ensures (memory_load64_le(mem, 69592bv64) == 1876bv64); - free ensures (memory_load64_le(mem, 69672bv64) == 69672bv64); - -implementation main_1876() +procedure main(); + modifies CF, Gamma_CF, Gamma_NF, Gamma_R0, Gamma_R8, Gamma_R9, Gamma_VF, Gamma_ZF, Gamma_mem, NF, R0, R8, R9, VF, ZF, mem; + free requires (memory_load64_le(mem, 131072bv64) == 0bv64); + free requires (memory_load64_le(mem, 131080bv64) == 131080bv64); + free requires (memory_load32_le(mem, 2316bv64) == 131073bv32); + free requires (memory_load64_le(mem, 130424bv64) == 2256bv64); + free requires (memory_load64_le(mem, 130432bv64) == 2176bv64); + free requires (memory_load64_le(mem, 131032bv64) == 131096bv64); + free requires (memory_load64_le(mem, 131048bv64) == 131092bv64); + free requires (memory_load64_le(mem, 131056bv64) == 2260bv64); + free requires (memory_load64_le(mem, 131080bv64) == 131080bv64); + free ensures (memory_load32_le(mem, 2316bv64) == 131073bv32); + free ensures (memory_load64_le(mem, 130424bv64) == 2256bv64); + free ensures (memory_load64_le(mem, 130432bv64) == 2176bv64); + free ensures (memory_load64_le(mem, 131032bv64) == 131096bv64); + free ensures (memory_load64_le(mem, 131048bv64) == 131092bv64); + free ensures (memory_load64_le(mem, 131056bv64) == 2260bv64); + free ensures (memory_load64_le(mem, 131080bv64) == 131080bv64); + +implementation main() { - var #4: bv32; - var Gamma_#4: bool; - var Gamma_load18: bool; - var Gamma_load19: bool; - var Gamma_load20: bool; - var Gamma_load21: bool; - var Gamma_load22: bool; - var Gamma_load23: bool; - var load18: bv64; - var load19: bv32; - var load20: bv64; - var load21: bv32; - var load22: bv32; - var load23: bv32; + var $load$18: bv64; + var $load$19: bv64; + var $load$20: bv32; + var $load$21: bv32; + var Gamma_$load$18: bool; + var Gamma_$load$19: bool; + var Gamma_$load$20: bool; + var Gamma_$load$21: bool; lmain: assume {:captureState "lmain"} true; - R31, Gamma_R31 := bvadd64(R31, 18446744073709551600bv64), Gamma_R31; - stack, Gamma_stack := memory_store32_le(stack, bvadd64(R31, 12bv64), 0bv32), gamma_store32(Gamma_stack, bvadd64(R31, 12bv64), true); - assume {:captureState "%00000309"} true; - R8, Gamma_R8 := 65536bv64, true; + R8, Gamma_R8 := 126976bv64, true; + R9, Gamma_R9 := 126976bv64, true; call rely(); - load18, Gamma_load18 := memory_load64_le(mem, bvadd64(R8, 4048bv64)), (gamma_load64(Gamma_mem, bvadd64(R8, 4048bv64)) || L(mem, bvadd64(R8, 4048bv64))); - R8, Gamma_R8 := load18, Gamma_load18; + $load$18, Gamma_$load$18 := memory_load64_le(mem, bvadd64(R8, 4056bv64)), (gamma_load64(Gamma_mem, bvadd64(R8, 4056bv64)) || L(mem, bvadd64(R8, 4056bv64))); + R8, Gamma_R8 := $load$18, Gamma_$load$18; call rely(); - load19, Gamma_load19 := memory_load32_le(mem, R8), (gamma_load32(Gamma_mem, R8) || L(mem, R8)); - R8, Gamma_R8 := zero_extend32_32(load19), Gamma_load19; - stack, Gamma_stack := memory_store32_le(stack, bvadd64(R31, 8bv64), R8[32:0]), gamma_store32(Gamma_stack, bvadd64(R31, 8bv64), Gamma_R8); - assume {:captureState "%00000324"} true; - R8, Gamma_R8 := 65536bv64, true; + $load$19, Gamma_$load$19 := memory_load64_le(mem, bvadd64(R9, 4072bv64)), (gamma_load64(Gamma_mem, bvadd64(R9, 4072bv64)) || L(mem, bvadd64(R9, 4072bv64))); + R9, Gamma_R9 := $load$19, Gamma_$load$19; call rely(); - load20, Gamma_load20 := memory_load64_le(mem, bvadd64(R8, 4032bv64)), (gamma_load64(Gamma_mem, bvadd64(R8, 4032bv64)) || L(mem, bvadd64(R8, 4032bv64))); - R8, Gamma_R8 := load20, Gamma_load20; + $load$20, Gamma_$load$20 := memory_load32_le(mem, R8), (gamma_load32(Gamma_mem, R8) || L(mem, R8)); + R8, Gamma_R8 := zero_extend32_32($load$20), Gamma_$load$20; call rely(); - load21, Gamma_load21 := memory_load32_le(mem, R8), (gamma_load32(Gamma_mem, R8) || L(mem, R8)); - R8, Gamma_R8 := zero_extend32_32(load21), Gamma_load21; - #4, Gamma_#4 := bvadd32(R8[32:0], 4294967295bv32), Gamma_R8; - VF, Gamma_VF := bvnot1(bvcomp33(sign_extend1_32(bvadd32(#4, 1bv32)), bvadd33(sign_extend1_32(R8[32:0]), 0bv33))), (Gamma_R8 && Gamma_#4); - CF, Gamma_CF := bvnot1(bvcomp33(zero_extend1_32(bvadd32(#4, 1bv32)), bvadd33(zero_extend1_32(R8[32:0]), 4294967296bv33))), (Gamma_R8 && Gamma_#4); - ZF, Gamma_ZF := bvcomp32(bvadd32(#4, 1bv32), 0bv32), Gamma_#4; - NF, Gamma_NF := bvadd32(#4, 1bv32)[32:31], Gamma_#4; - R8, Gamma_R8 := zero_extend32_32(bvadd32(#4, 1bv32)), Gamma_#4; + $load$21, Gamma_$load$21 := memory_load32_le(mem, R9), (gamma_load32(Gamma_mem, R9) || L(mem, R9)); + R9, Gamma_R9 := zero_extend32_32($load$21), Gamma_$load$21; + VF, Gamma_VF := 0bv1, true; + CF, Gamma_CF := 1bv1, true; + ZF, Gamma_ZF := bvcomp32(R8[32:0], 0bv32), Gamma_R8; + NF, Gamma_NF := R8[32:31], Gamma_R8; assert Gamma_ZF; - goto lmain_goto_l00000358, lmain_goto_l0000035b; - lmain_goto_l0000035b: - assume {:captureState "lmain_goto_l0000035b"} true; - assume (bvcomp1(ZF, 1bv1) == 0bv1); - R8, Gamma_R8 := 1bv64, true; - goto l0000035b; - l0000035b: - assume {:captureState "l0000035b"} true; - goto l0000035e; - lmain_goto_l00000358: - assume {:captureState "lmain_goto_l00000358"} true; + goto lmain_goto_l000002a8, lmain_goto_l000002b0; + l000002b0: + assume {:captureState "l000002b0"} true; + R0, Gamma_R0 := zero_extend32_32(R9[32:0]), Gamma_R9; + goto l000002bc; + l000002a8: + assume {:captureState "l000002a8"} true; + R0, Gamma_R0 := 0bv64, true; + goto l000002bc; + l000002bc: + assume {:captureState "l000002bc"} true; + goto main_basil_return; + lmain_goto_l000002a8: + assume {:captureState "lmain_goto_l000002a8"} true; assume (bvcomp1(ZF, 1bv1) != 0bv1); - R8, Gamma_R8 := 0bv64, true; - goto l00000358; - l00000358: - assume {:captureState "l00000358"} true; - goto l0000035e; - l0000035e: - assume {:captureState "l0000035e"} true; - assert Gamma_R8; - goto l0000035e_goto_l00000366, l0000035e_goto_l00000390; - l0000035e_goto_l00000390: - assume {:captureState "l0000035e_goto_l00000390"} true; - assume (bvcomp1(R8[1:0], 1bv1) == 0bv1); - goto l00000390; - l00000390: - assume {:captureState "l00000390"} true; - goto l00000391; - l00000391: - assume {:captureState "l00000391"} true; - stack, Gamma_stack := memory_store32_le(stack, bvadd64(R31, 12bv64), 0bv32), gamma_store32(Gamma_stack, bvadd64(R31, 12bv64), true); - assume {:captureState "%00000399"} true; - goto l0000037b; - l0000035e_goto_l00000366: - assume {:captureState "l0000035e_goto_l00000366"} true; - assume (bvcomp1(R8[1:0], 1bv1) != 0bv1); - load22, Gamma_load22 := memory_load32_le(stack, bvadd64(R31, 8bv64)), gamma_load32(Gamma_stack, bvadd64(R31, 8bv64)); - R8, Gamma_R8 := zero_extend32_32(load22), Gamma_load22; - stack, Gamma_stack := memory_store32_le(stack, bvadd64(R31, 12bv64), R8[32:0]), gamma_store32(Gamma_stack, bvadd64(R31, 12bv64), Gamma_R8); - assume {:captureState "%00000378"} true; - goto l00000366; - l00000366: - assume {:captureState "l00000366"} true; - goto l0000037b; - l0000037b: - assume {:captureState "l0000037b"} true; - load23, Gamma_load23 := memory_load32_le(stack, bvadd64(R31, 12bv64)), gamma_load32(Gamma_stack, bvadd64(R31, 12bv64)); - R0, Gamma_R0 := zero_extend32_32(load23), Gamma_load23; - R31, Gamma_R31 := bvadd64(R31, 16bv64), Gamma_R31; - goto main_1876_basil_return; - main_1876_basil_return: - assume {:captureState "main_1876_basil_return"} true; + goto l000002a8; + lmain_goto_l000002b0: + assume {:captureState "lmain_goto_l000002b0"} true; + assume (bvcomp1(ZF, 1bv1) == 0bv1); + goto l000002b0; + main_basil_return: + assume {:captureState "main_basil_return"} true; return; } diff --git a/src/test/correct/basic_function_call_reader/clang_pic/basic_function_call_reader.gts b/src/test/correct/basic_function_call_reader/clang_pic/basic_function_call_reader.gts deleted file mode 100644 index f42a9417b..000000000 Binary files a/src/test/correct/basic_function_call_reader/clang_pic/basic_function_call_reader.gts and /dev/null differ diff --git a/src/test/correct/basic_function_call_reader/clang_pic/basic_function_call_reader.md5sum b/src/test/correct/basic_function_call_reader/clang_pic/basic_function_call_reader.md5sum new file mode 100644 index 000000000..21407e90d --- /dev/null +++ b/src/test/correct/basic_function_call_reader/clang_pic/basic_function_call_reader.md5sum @@ -0,0 +1,5 @@ +4db0a74de9e449b7046a6d89cc01b0e6 correct/basic_function_call_reader/clang_pic/a.out +8f1daba1acbeb4c0cc6f4f700ffba974 correct/basic_function_call_reader/clang_pic/basic_function_call_reader.adt +4fd2434f2ae974812122e2032defb3ce correct/basic_function_call_reader/clang_pic/basic_function_call_reader.bir +41e68e66a39df1de8717305828c52652 correct/basic_function_call_reader/clang_pic/basic_function_call_reader.relf +b53353f81b5496c3cf903c96b1c45fb4 correct/basic_function_call_reader/clang_pic/basic_function_call_reader.gts diff --git a/src/test/correct/basic_function_call_reader/clang_pic/basic_function_call_reader.relf b/src/test/correct/basic_function_call_reader/clang_pic/basic_function_call_reader.relf deleted file mode 100644 index 26ac84c81..000000000 --- a/src/test/correct/basic_function_call_reader/clang_pic/basic_function_call_reader.relf +++ /dev/null @@ -1,126 +0,0 @@ - -Relocation section '.rela.dyn' at offset 0x460 contains 10 entries: - Offset Info Type Symbol's Value Symbol's Name + Addend -0000000000010db8 0000000000000403 R_AARCH64_RELATIVE 750 -0000000000010dc0 0000000000000403 R_AARCH64_RELATIVE 700 -0000000000010fc0 0000000000000403 R_AARCH64_RELATIVE 11038 -0000000000010fd0 0000000000000403 R_AARCH64_RELATIVE 11034 -0000000000010fd8 0000000000000403 R_AARCH64_RELATIVE 754 -0000000000011028 0000000000000403 R_AARCH64_RELATIVE 11028 -0000000000010fb0 0000000400000401 R_AARCH64_GLOB_DAT 0000000000000000 _ITM_deregisterTMCloneTable + 0 -0000000000010fb8 0000000500000401 R_AARCH64_GLOB_DAT 0000000000000000 __cxa_finalize@GLIBC_2.17 + 0 -0000000000010fc8 0000000600000401 R_AARCH64_GLOB_DAT 0000000000000000 __gmon_start__ + 0 -0000000000010fe0 0000000800000401 R_AARCH64_GLOB_DAT 0000000000000000 _ITM_registerTMCloneTable + 0 - -Relocation section '.rela.plt' at offset 0x550 contains 4 entries: - Offset Info Type Symbol's Value Symbol's Name + Addend -0000000000011000 0000000300000402 R_AARCH64_JUMP_SLOT 0000000000000000 __libc_start_main@GLIBC_2.34 + 0 -0000000000011008 0000000500000402 R_AARCH64_JUMP_SLOT 0000000000000000 __cxa_finalize@GLIBC_2.17 + 0 -0000000000011010 0000000600000402 R_AARCH64_JUMP_SLOT 0000000000000000 __gmon_start__ + 0 -0000000000011018 0000000700000402 R_AARCH64_JUMP_SLOT 0000000000000000 abort@GLIBC_2.17 + 0 - -Symbol table '.dynsym' contains 9 entries: - Num: Value Size Type Bind Vis Ndx Name - 0: 0000000000000000 0 NOTYPE LOCAL DEFAULT UND - 1: 00000000000005b0 0 SECTION LOCAL DEFAULT 11 .init - 2: 0000000000011020 0 SECTION LOCAL DEFAULT 23 .data - 3: 0000000000000000 0 FUNC GLOBAL DEFAULT UND __libc_start_main@GLIBC_2.34 (2) - 4: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_deregisterTMCloneTable - 5: 0000000000000000 0 FUNC WEAK DEFAULT UND __cxa_finalize@GLIBC_2.17 (3) - 6: 0000000000000000 0 NOTYPE WEAK DEFAULT UND __gmon_start__ - 7: 0000000000000000 0 FUNC GLOBAL DEFAULT UND abort@GLIBC_2.17 (3) - 8: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_registerTMCloneTable - -Symbol table '.symtab' contains 91 entries: - Num: Value Size Type Bind Vis Ndx Name - 0: 0000000000000000 0 NOTYPE LOCAL DEFAULT UND - 1: 0000000000000238 0 SECTION LOCAL DEFAULT 1 .interp - 2: 0000000000000254 0 SECTION LOCAL DEFAULT 2 .note.gnu.build-id - 3: 0000000000000278 0 SECTION LOCAL DEFAULT 3 .note.ABI-tag - 4: 0000000000000298 0 SECTION LOCAL DEFAULT 4 .gnu.hash - 5: 00000000000002b8 0 SECTION LOCAL DEFAULT 5 .dynsym - 6: 0000000000000390 0 SECTION LOCAL DEFAULT 6 .dynstr - 7: 000000000000041e 0 SECTION LOCAL DEFAULT 7 .gnu.version - 8: 0000000000000430 0 SECTION LOCAL DEFAULT 8 .gnu.version_r - 9: 0000000000000460 0 SECTION LOCAL DEFAULT 9 .rela.dyn - 10: 0000000000000550 0 SECTION LOCAL DEFAULT 10 .rela.plt - 11: 00000000000005b0 0 SECTION LOCAL DEFAULT 11 .init - 12: 00000000000005d0 0 SECTION LOCAL DEFAULT 12 .plt - 13: 0000000000000640 0 SECTION LOCAL DEFAULT 13 .text - 14: 00000000000007a8 0 SECTION LOCAL DEFAULT 14 .fini - 15: 00000000000007bc 0 SECTION LOCAL DEFAULT 15 .rodata - 16: 00000000000007c0 0 SECTION LOCAL DEFAULT 16 .eh_frame_hdr - 17: 0000000000000800 0 SECTION LOCAL DEFAULT 17 .eh_frame - 18: 0000000000010db8 0 SECTION LOCAL DEFAULT 18 .init_array - 19: 0000000000010dc0 0 SECTION LOCAL DEFAULT 19 .fini_array - 20: 0000000000010dc8 0 SECTION LOCAL DEFAULT 20 .dynamic - 21: 0000000000010fa8 0 SECTION LOCAL DEFAULT 21 .got - 22: 0000000000010fe8 0 SECTION LOCAL DEFAULT 22 .got.plt - 23: 0000000000011020 0 SECTION LOCAL DEFAULT 23 .data - 24: 0000000000011030 0 SECTION LOCAL DEFAULT 24 .bss - 25: 0000000000000000 0 SECTION LOCAL DEFAULT 25 .comment - 26: 0000000000000000 0 FILE LOCAL DEFAULT ABS Scrt1.o - 27: 0000000000000278 0 NOTYPE LOCAL DEFAULT 3 $d - 28: 0000000000000278 32 OBJECT LOCAL DEFAULT 3 __abi_tag - 29: 0000000000000640 0 NOTYPE LOCAL DEFAULT 13 $x - 30: 0000000000000814 0 NOTYPE LOCAL DEFAULT 17 $d - 31: 00000000000007bc 0 NOTYPE LOCAL DEFAULT 15 $d - 32: 0000000000000000 0 FILE LOCAL DEFAULT ABS crti.o - 33: 0000000000000674 0 NOTYPE LOCAL DEFAULT 13 $x - 34: 0000000000000674 20 FUNC LOCAL DEFAULT 13 call_weak_fn - 35: 00000000000005b0 0 NOTYPE LOCAL DEFAULT 11 $x - 36: 00000000000007a8 0 NOTYPE LOCAL DEFAULT 14 $x - 37: 0000000000000000 0 FILE LOCAL DEFAULT ABS crtn.o - 38: 00000000000005c0 0 NOTYPE LOCAL DEFAULT 11 $x - 39: 00000000000007b4 0 NOTYPE LOCAL DEFAULT 14 $x - 40: 0000000000000000 0 FILE LOCAL DEFAULT ABS crtstuff.c - 41: 0000000000000690 0 NOTYPE LOCAL DEFAULT 13 $x - 42: 0000000000000690 0 FUNC LOCAL DEFAULT 13 deregister_tm_clones - 43: 00000000000006c0 0 FUNC LOCAL DEFAULT 13 register_tm_clones - 44: 0000000000011028 0 NOTYPE LOCAL DEFAULT 23 $d - 45: 0000000000000700 0 FUNC LOCAL DEFAULT 13 __do_global_dtors_aux - 46: 0000000000011030 1 OBJECT LOCAL DEFAULT 24 completed.0 - 47: 0000000000010dc0 0 NOTYPE LOCAL DEFAULT 19 $d - 48: 0000000000010dc0 0 OBJECT LOCAL DEFAULT 19 __do_global_dtors_aux_fini_array_entry - 49: 0000000000000750 0 FUNC LOCAL DEFAULT 13 frame_dummy - 50: 0000000000010db8 0 NOTYPE LOCAL DEFAULT 18 $d - 51: 0000000000010db8 0 OBJECT LOCAL DEFAULT 18 __frame_dummy_init_array_entry - 52: 0000000000000828 0 NOTYPE LOCAL DEFAULT 17 $d - 53: 0000000000011030 0 NOTYPE LOCAL DEFAULT 24 $d - 54: 0000000000000000 0 FILE LOCAL DEFAULT ABS basic_function_call_reader.c - 55: 0000000000000754 0 NOTYPE LOCAL DEFAULT 13 $x.0 - 56: 0000000000011034 0 NOTYPE LOCAL DEFAULT 24 $d.1 - 57: 000000000000002a 0 NOTYPE LOCAL DEFAULT 25 $d.2 - 58: 0000000000000888 0 NOTYPE LOCAL DEFAULT 17 $d.3 - 59: 0000000000000000 0 FILE LOCAL DEFAULT ABS crtstuff.c - 60: 00000000000008b4 0 NOTYPE LOCAL DEFAULT 17 $d - 61: 00000000000008b4 0 OBJECT LOCAL DEFAULT 17 __FRAME_END__ - 62: 0000000000000000 0 FILE LOCAL DEFAULT ABS - 63: 0000000000010dc8 0 OBJECT LOCAL DEFAULT ABS _DYNAMIC - 64: 00000000000007c0 0 NOTYPE LOCAL DEFAULT 16 __GNU_EH_FRAME_HDR - 65: 0000000000010fa8 0 OBJECT LOCAL DEFAULT ABS _GLOBAL_OFFSET_TABLE_ - 66: 00000000000005d0 0 NOTYPE LOCAL DEFAULT 12 $x - 67: 0000000000000000 0 FUNC GLOBAL DEFAULT UND __libc_start_main@GLIBC_2.34 - 68: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_deregisterTMCloneTable - 69: 0000000000011020 0 NOTYPE WEAK DEFAULT 23 data_start - 70: 0000000000011030 0 NOTYPE GLOBAL DEFAULT 24 __bss_start__ - 71: 0000000000000000 0 FUNC WEAK DEFAULT UND __cxa_finalize@GLIBC_2.17 - 72: 0000000000011040 0 NOTYPE GLOBAL DEFAULT 24 _bss_end__ - 73: 0000000000011030 0 NOTYPE GLOBAL DEFAULT 23 _edata - 74: 0000000000011038 4 OBJECT GLOBAL DEFAULT 24 x - 75: 00000000000007a8 0 FUNC GLOBAL HIDDEN 14 _fini - 76: 0000000000011040 0 NOTYPE GLOBAL DEFAULT 24 __bss_end__ - 77: 0000000000011020 0 NOTYPE GLOBAL DEFAULT 23 __data_start - 78: 0000000000000000 0 NOTYPE WEAK DEFAULT UND __gmon_start__ - 79: 0000000000011028 0 OBJECT GLOBAL HIDDEN 23 __dso_handle - 80: 0000000000000000 0 FUNC GLOBAL DEFAULT UND abort@GLIBC_2.17 - 81: 00000000000007bc 4 OBJECT GLOBAL DEFAULT 15 _IO_stdin_used - 82: 0000000000011040 0 NOTYPE GLOBAL DEFAULT 24 _end - 83: 0000000000000640 52 FUNC GLOBAL DEFAULT 13 _start - 84: 0000000000011040 0 NOTYPE GLOBAL DEFAULT 24 __end__ - 85: 0000000000011034 4 OBJECT GLOBAL DEFAULT 24 y - 86: 0000000000011030 0 NOTYPE GLOBAL DEFAULT 24 __bss_start - 87: 0000000000000754 84 FUNC GLOBAL DEFAULT 13 main - 88: 0000000000011030 0 OBJECT GLOBAL HIDDEN 23 __TMC_END__ - 89: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_registerTMCloneTable - 90: 00000000000005b0 0 FUNC GLOBAL HIDDEN 11 _init diff --git a/src/test/correct/basic_function_call_reader/clang_pic/basic_function_call_reader_gtirb.expected b/src/test/correct/basic_function_call_reader/clang_pic/basic_function_call_reader_gtirb.expected index 54d8bc4a0..15eb6bde6 100644 --- a/src/test/correct/basic_function_call_reader/clang_pic/basic_function_call_reader_gtirb.expected +++ b/src/test/correct/basic_function_call_reader/clang_pic/basic_function_call_reader_gtirb.expected @@ -2,34 +2,28 @@ var {:extern} CF: bv1; var {:extern} Gamma_CF: bool; var {:extern} Gamma_NF: bool; var {:extern} Gamma_R0: bool; -var {:extern} Gamma_R31: bool; var {:extern} Gamma_R8: bool; +var {:extern} Gamma_R9: bool; var {:extern} Gamma_VF: bool; var {:extern} Gamma_ZF: bool; var {:extern} Gamma_mem: [bv64]bool; -var {:extern} Gamma_stack: [bv64]bool; var {:extern} NF: bv1; var {:extern} R0: bv64; -var {:extern} R31: bv64; var {:extern} R8: bv64; +var {:extern} R9: bv64; var {:extern} VF: bv1; var {:extern} ZF: bv1; var {:extern} mem: [bv64]bv8; -var {:extern} stack: [bv64]bv8; const {:extern} $x_addr: bv64; -axiom ($x_addr == 69688bv64); +axiom ($x_addr == 131096bv64); const {:extern} $y_addr: bv64; -axiom ($y_addr == 69684bv64); +axiom ($y_addr == 131092bv64); function {:extern} L(mem$in: [bv64]bv8, index: bv64) returns (bool) { (if (index == $y_addr) then (memory_load32_le(mem$in, $x_addr) == 1bv32) else (if (index == $x_addr) then true else false)) } -function {:extern} {:bvbuiltin "bvadd"} bvadd32(bv32, bv32) returns (bv32); -function {:extern} {:bvbuiltin "bvadd"} bvadd33(bv33, bv33) returns (bv33); function {:extern} {:bvbuiltin "bvadd"} bvadd64(bv64, bv64) returns (bv64); function {:extern} {:bvbuiltin "bvcomp"} bvcomp32(bv32, bv32) returns (bv1); -function {:extern} {:bvbuiltin "bvcomp"} bvcomp33(bv33, bv33) returns (bv1); -function {:extern} {:bvbuiltin "bvnot"} bvnot1(bv1) returns (bv1); function {:extern} gamma_load32(gammaMap: [bv64]bool, index: bv64) returns (bool) { (gammaMap[bvadd64(index, 3bv64)] && (gammaMap[bvadd64(index, 2bv64)] && (gammaMap[bvadd64(index, 1bv64)] && gammaMap[index]))) } @@ -38,10 +32,6 @@ function {:extern} gamma_load64(gammaMap: [bv64]bool, index: bv64) returns (bool (gammaMap[bvadd64(index, 7bv64)] && (gammaMap[bvadd64(index, 6bv64)] && (gammaMap[bvadd64(index, 5bv64)] && (gammaMap[bvadd64(index, 4bv64)] && (gammaMap[bvadd64(index, 3bv64)] && (gammaMap[bvadd64(index, 2bv64)] && (gammaMap[bvadd64(index, 1bv64)] && gammaMap[index]))))))) } -function {:extern} gamma_store32(gammaMap: [bv64]bool, index: bv64, value: bool) returns ([bv64]bool) { - gammaMap[index := value][bvadd64(index, 1bv64) := value][bvadd64(index, 2bv64) := value][bvadd64(index, 3bv64) := value] -} - function {:extern} memory_load32_le(memory: [bv64]bv8, index: bv64) returns (bv32) { (memory[bvadd64(index, 3bv64)] ++ (memory[bvadd64(index, 2bv64)] ++ (memory[bvadd64(index, 1bv64)] ++ memory[index]))) } @@ -50,24 +40,19 @@ function {:extern} memory_load64_le(memory: [bv64]bv8, index: bv64) returns (bv6 (memory[bvadd64(index, 7bv64)] ++ (memory[bvadd64(index, 6bv64)] ++ (memory[bvadd64(index, 5bv64)] ++ (memory[bvadd64(index, 4bv64)] ++ (memory[bvadd64(index, 3bv64)] ++ (memory[bvadd64(index, 2bv64)] ++ (memory[bvadd64(index, 1bv64)] ++ memory[index]))))))) } -function {:extern} memory_store32_le(memory: [bv64]bv8, index: bv64, value: bv32) returns ([bv64]bv8) { - memory[index := value[8:0]][bvadd64(index, 1bv64) := value[16:8]][bvadd64(index, 2bv64) := value[24:16]][bvadd64(index, 3bv64) := value[32:24]] -} - -function {:extern} {:bvbuiltin "zero_extend 1"} zero_extend1_32(bv32) returns (bv33); function {:extern} {:bvbuiltin "zero_extend 32"} zero_extend32_32(bv32) returns (bv64); procedure {:extern} rely(); modifies Gamma_mem, mem; ensures (forall i: bv64 :: (((mem[i] == old(mem[i])) ==> (Gamma_mem[i] == old(Gamma_mem[i]))))); ensures ((old(memory_load32_le(mem, $x_addr)) == 0bv32) ==> (memory_load32_le(mem, $x_addr) == 0bv32)); ensures (old(gamma_load32(Gamma_mem, $y_addr)) ==> ((memory_load32_le(mem, $x_addr) == 0bv32) || gamma_load32(Gamma_mem, $y_addr))); - free ensures (memory_load32_le(mem, 1980bv64) == 131073bv32); - free ensures (memory_load64_le(mem, 69048bv64) == 1872bv64); - free ensures (memory_load64_le(mem, 69056bv64) == 1792bv64); - free ensures (memory_load64_le(mem, 69568bv64) == 69688bv64); - free ensures (memory_load64_le(mem, 69584bv64) == 69684bv64); - free ensures (memory_load64_le(mem, 69592bv64) == 1876bv64); - free ensures (memory_load64_le(mem, 69672bv64) == 69672bv64); + free ensures (memory_load32_le(mem, 2316bv64) == 131073bv32); + free ensures (memory_load64_le(mem, 130424bv64) == 2256bv64); + free ensures (memory_load64_le(mem, 130432bv64) == 2176bv64); + free ensures (memory_load64_le(mem, 131032bv64) == 131096bv64); + free ensures (memory_load64_le(mem, 131048bv64) == 131092bv64); + free ensures (memory_load64_le(mem, 131056bv64) == 2260bv64); + free ensures (memory_load64_le(mem, 131080bv64) == 131080bv64); procedure {:extern} rely_transitive(); modifies Gamma_mem, mem; @@ -97,115 +82,69 @@ implementation {:extern} guarantee_reflexive() assert (memory_load32_le(mem, $y_addr) == memory_load32_le(mem, $y_addr)); } -procedure main_1876(); - modifies CF, Gamma_CF, Gamma_NF, Gamma_R0, Gamma_R31, Gamma_R8, Gamma_VF, Gamma_ZF, Gamma_mem, Gamma_stack, NF, R0, R31, R8, VF, ZF, mem, stack; - free requires (memory_load64_le(mem, 69664bv64) == 0bv64); - free requires (memory_load64_le(mem, 69672bv64) == 69672bv64); - free requires (memory_load32_le(mem, 1980bv64) == 131073bv32); - free requires (memory_load64_le(mem, 69048bv64) == 1872bv64); - free requires (memory_load64_le(mem, 69056bv64) == 1792bv64); - free requires (memory_load64_le(mem, 69568bv64) == 69688bv64); - free requires (memory_load64_le(mem, 69584bv64) == 69684bv64); - free requires (memory_load64_le(mem, 69592bv64) == 1876bv64); - free requires (memory_load64_le(mem, 69672bv64) == 69672bv64); - free ensures (Gamma_R31 == old(Gamma_R31)); - free ensures (R31 == old(R31)); - free ensures (memory_load32_le(mem, 1980bv64) == 131073bv32); - free ensures (memory_load64_le(mem, 69048bv64) == 1872bv64); - free ensures (memory_load64_le(mem, 69056bv64) == 1792bv64); - free ensures (memory_load64_le(mem, 69568bv64) == 69688bv64); - free ensures (memory_load64_le(mem, 69584bv64) == 69684bv64); - free ensures (memory_load64_le(mem, 69592bv64) == 1876bv64); - free ensures (memory_load64_le(mem, 69672bv64) == 69672bv64); - -implementation main_1876() +procedure main(); + modifies CF, Gamma_CF, Gamma_NF, Gamma_R0, Gamma_R8, Gamma_R9, Gamma_VF, Gamma_ZF, Gamma_mem, NF, R0, R8, R9, VF, ZF, mem; + free requires (memory_load64_le(mem, 131072bv64) == 0bv64); + free requires (memory_load64_le(mem, 131080bv64) == 131080bv64); + free requires (memory_load32_le(mem, 2316bv64) == 131073bv32); + free requires (memory_load64_le(mem, 130424bv64) == 2256bv64); + free requires (memory_load64_le(mem, 130432bv64) == 2176bv64); + free requires (memory_load64_le(mem, 131032bv64) == 131096bv64); + free requires (memory_load64_le(mem, 131048bv64) == 131092bv64); + free requires (memory_load64_le(mem, 131056bv64) == 2260bv64); + free requires (memory_load64_le(mem, 131080bv64) == 131080bv64); + free ensures (memory_load32_le(mem, 2316bv64) == 131073bv32); + free ensures (memory_load64_le(mem, 130424bv64) == 2256bv64); + free ensures (memory_load64_le(mem, 130432bv64) == 2176bv64); + free ensures (memory_load64_le(mem, 131032bv64) == 131096bv64); + free ensures (memory_load64_le(mem, 131048bv64) == 131092bv64); + free ensures (memory_load64_le(mem, 131056bv64) == 2260bv64); + free ensures (memory_load64_le(mem, 131080bv64) == 131080bv64); + +implementation main() { - var Cse0__5_4_9: bv32; - var Gamma_Cse0__5_4_9: bool; - var Gamma_load4: bool; - var Gamma_load5: bool; - var Gamma_load6: bool; - var Gamma_load7: bool; - var Gamma_load8: bool; - var Gamma_load9: bool; - var load4: bv32; - var load5: bv32; - var load6: bv64; - var load7: bv32; - var load8: bv64; - var load9: bv32; - main_1876__0__3bYHxhsFQt~mkKcsNIgm0w: - assume {:captureState "main_1876__0__3bYHxhsFQt~mkKcsNIgm0w"} true; - R31, Gamma_R31 := bvadd64(R31, 18446744073709551600bv64), Gamma_R31; - stack, Gamma_stack := memory_store32_le(stack, bvadd64(R31, 12bv64), 0bv32), gamma_store32(Gamma_stack, bvadd64(R31, 12bv64), true); - assume {:captureState "1880_0"} true; - R8, Gamma_R8 := 65536bv64, true; + var $load5: bv64; + var $load6: bv64; + var $load7: bv32; + var $load8: bv32; + var Gamma_$load5: bool; + var Gamma_$load6: bool; + var Gamma_$load7: bool; + var Gamma_$load8: bool; + $main$__0__$D9t2gNJrSmyMH3GAVRe3IQ: + assume {:captureState "$main$__0__$D9t2gNJrSmyMH3GAVRe3IQ"} true; + R8, Gamma_R8 := 126976bv64, true; + R9, Gamma_R9 := 126976bv64, true; call rely(); - load6, Gamma_load6 := memory_load64_le(mem, bvadd64(R8, 4048bv64)), (gamma_load64(Gamma_mem, bvadd64(R8, 4048bv64)) || L(mem, bvadd64(R8, 4048bv64))); - R8, Gamma_R8 := load6, Gamma_load6; + $load5, Gamma_$load5 := memory_load64_le(mem, bvadd64(R8, 4056bv64)), (gamma_load64(Gamma_mem, bvadd64(R8, 4056bv64)) || L(mem, bvadd64(R8, 4056bv64))); + R8, Gamma_R8 := $load5, Gamma_$load5; call rely(); - load7, Gamma_load7 := memory_load32_le(mem, R8), (gamma_load32(Gamma_mem, R8) || L(mem, R8)); - R8, Gamma_R8 := zero_extend32_32(load7), Gamma_load7; - stack, Gamma_stack := memory_store32_le(stack, bvadd64(R31, 8bv64), R8[32:0]), gamma_store32(Gamma_stack, bvadd64(R31, 8bv64), Gamma_R8); - assume {:captureState "1896_0"} true; - R8, Gamma_R8 := 65536bv64, true; + $load6, Gamma_$load6 := memory_load64_le(mem, bvadd64(R9, 4072bv64)), (gamma_load64(Gamma_mem, bvadd64(R9, 4072bv64)) || L(mem, bvadd64(R9, 4072bv64))); + R9, Gamma_R9 := $load6, Gamma_$load6; call rely(); - load8, Gamma_load8 := memory_load64_le(mem, bvadd64(R8, 4032bv64)), (gamma_load64(Gamma_mem, bvadd64(R8, 4032bv64)) || L(mem, bvadd64(R8, 4032bv64))); - R8, Gamma_R8 := load8, Gamma_load8; + $load7, Gamma_$load7 := memory_load32_le(mem, R8), (gamma_load32(Gamma_mem, R8) || L(mem, R8)); + R8, Gamma_R8 := zero_extend32_32($load7), Gamma_$load7; call rely(); - load9, Gamma_load9 := memory_load32_le(mem, R8), (gamma_load32(Gamma_mem, R8) || L(mem, R8)); - R8, Gamma_R8 := zero_extend32_32(load9), Gamma_load9; - Cse0__5_4_9, Gamma_Cse0__5_4_9 := bvadd32(R8[32:0], 0bv32), Gamma_R8; - VF, Gamma_VF := bvnot1(bvcomp32(Cse0__5_4_9, Cse0__5_4_9)), Gamma_Cse0__5_4_9; - CF, Gamma_CF := bvnot1(bvcomp33(zero_extend1_32(Cse0__5_4_9), bvadd33(zero_extend1_32(R8[32:0]), 4294967296bv33))), (Gamma_R8 && Gamma_Cse0__5_4_9); - ZF, Gamma_ZF := bvcomp32(Cse0__5_4_9, 0bv32), Gamma_Cse0__5_4_9; - NF, Gamma_NF := Cse0__5_4_9[32:31], Gamma_Cse0__5_4_9; - R8, Gamma_R8 := zero_extend32_32(Cse0__5_4_9), Gamma_Cse0__5_4_9; + $load8, Gamma_$load8 := memory_load32_le(mem, R9), (gamma_load32(Gamma_mem, R9) || L(mem, R9)); + R9, Gamma_R9 := zero_extend32_32($load8), Gamma_$load8; + VF, Gamma_VF := 0bv1, true; + CF, Gamma_CF := 1bv1, true; + ZF, Gamma_ZF := bvcomp32(R8[32:0], 0bv32), Gamma_R8; + NF, Gamma_NF := R8[32:31], Gamma_R8; assert Gamma_ZF; - goto main_1876__0__3bYHxhsFQt~mkKcsNIgm0w$__0, main_1876__0__3bYHxhsFQt~mkKcsNIgm0w$__1; - main_1876__0__3bYHxhsFQt~mkKcsNIgm0w$__1: - assume {:captureState "main_1876__0__3bYHxhsFQt~mkKcsNIgm0w$__1"} true; - assume (!(ZF == 1bv1)); - R8, Gamma_R8 := 1bv64, true; - assert Gamma_R8; - goto main_1876__0__3bYHxhsFQt~mkKcsNIgm0w_goto_main_1876__3__q8ChuC7qRLCKpfOONmUiBw, main_1876__0__3bYHxhsFQt~mkKcsNIgm0w_goto_main_1876__1__GliKhCDsS8OAMmKtmD1BCA; - main_1876__0__3bYHxhsFQt~mkKcsNIgm0w$__0: - assume {:captureState "main_1876__0__3bYHxhsFQt~mkKcsNIgm0w$__0"} true; + goto $main$__0__$D9t2gNJrSmyMH3GAVRe3IQ$__0, $main$__0__$D9t2gNJrSmyMH3GAVRe3IQ$__1; + $main$__0__$D9t2gNJrSmyMH3GAVRe3IQ$__0: + assume {:captureState "$main$__0__$D9t2gNJrSmyMH3GAVRe3IQ$__0"} true; assume (ZF == 1bv1); - R8, Gamma_R8 := 0bv64, true; - assert Gamma_R8; - goto main_1876__0__3bYHxhsFQt~mkKcsNIgm0w_goto_main_1876__3__q8ChuC7qRLCKpfOONmUiBw, main_1876__0__3bYHxhsFQt~mkKcsNIgm0w_goto_main_1876__1__GliKhCDsS8OAMmKtmD1BCA; - main_1876__0__3bYHxhsFQt~mkKcsNIgm0w_goto_main_1876__1__GliKhCDsS8OAMmKtmD1BCA: - assume {:captureState "main_1876__0__3bYHxhsFQt~mkKcsNIgm0w_goto_main_1876__1__GliKhCDsS8OAMmKtmD1BCA"} true; - assume (!(R8[1:0] == 1bv1)); - goto main_1876__1__GliKhCDsS8OAMmKtmD1BCA; - main_1876__1__GliKhCDsS8OAMmKtmD1BCA: - assume {:captureState "main_1876__1__GliKhCDsS8OAMmKtmD1BCA"} true; - goto main_1876__2__ixbm2b9SSu2JGcfJ0RoL5A; - main_1876__2__ixbm2b9SSu2JGcfJ0RoL5A: - assume {:captureState "main_1876__2__ixbm2b9SSu2JGcfJ0RoL5A"} true; - stack, Gamma_stack := memory_store32_le(stack, bvadd64(R31, 12bv64), 0bv32), gamma_store32(Gamma_stack, bvadd64(R31, 12bv64), true); - assume {:captureState "1928_0"} true; - goto main_1876__4__YaQJkGOMQVCrlScvBt8WoA; - main_1876__0__3bYHxhsFQt~mkKcsNIgm0w_goto_main_1876__3__q8ChuC7qRLCKpfOONmUiBw: - assume {:captureState "main_1876__0__3bYHxhsFQt~mkKcsNIgm0w_goto_main_1876__3__q8ChuC7qRLCKpfOONmUiBw"} true; - assume (R8[1:0] == 1bv1); - load4, Gamma_load4 := memory_load32_le(stack, bvadd64(R31, 8bv64)), gamma_load32(Gamma_stack, bvadd64(R31, 8bv64)); - R8, Gamma_R8 := zero_extend32_32(load4), Gamma_load4; - stack, Gamma_stack := memory_store32_le(stack, bvadd64(R31, 12bv64), R8[32:0]), gamma_store32(Gamma_stack, bvadd64(R31, 12bv64), Gamma_R8); - assume {:captureState "1940_0"} true; - goto main_1876__3__q8ChuC7qRLCKpfOONmUiBw; - main_1876__3__q8ChuC7qRLCKpfOONmUiBw: - assume {:captureState "main_1876__3__q8ChuC7qRLCKpfOONmUiBw"} true; - goto main_1876__4__YaQJkGOMQVCrlScvBt8WoA; - main_1876__4__YaQJkGOMQVCrlScvBt8WoA: - assume {:captureState "main_1876__4__YaQJkGOMQVCrlScvBt8WoA"} true; - load5, Gamma_load5 := memory_load32_le(stack, bvadd64(R31, 12bv64)), gamma_load32(Gamma_stack, bvadd64(R31, 12bv64)); - R0, Gamma_R0 := zero_extend32_32(load5), Gamma_load5; - R31, Gamma_R31 := bvadd64(R31, 16bv64), Gamma_R31; - goto main_1876_basil_return; - main_1876_basil_return: - assume {:captureState "main_1876_basil_return"} true; + R0, Gamma_R0 := 0bv64, true; + goto main_basil_return; + $main$__0__$D9t2gNJrSmyMH3GAVRe3IQ$__1: + assume {:captureState "$main$__0__$D9t2gNJrSmyMH3GAVRe3IQ$__1"} true; + assume (!(ZF == 1bv1)); + R0, Gamma_R0 := zero_extend32_32(R9[32:0]), Gamma_R9; + goto main_basil_return; + main_basil_return: + assume {:captureState "main_basil_return"} true; return; } diff --git a/src/test/correct/basic_function_call_reader/gcc/basic_function_call_reader.adt b/src/test/correct/basic_function_call_reader/gcc/basic_function_call_reader.adt deleted file mode 100644 index bf24c21b1..000000000 --- a/src/test/correct/basic_function_call_reader/gcc/basic_function_call_reader.adt +++ /dev/null @@ -1,534 +0,0 @@ -Project(Attrs([Attr("filename","\"gcc/basic_function_call_reader.out\""), -Attr("image-specification","(declare abi (name str))\n(declare arch (name str))\n(declare base-address (addr int))\n(declare bias (off int))\n(declare bits (size int))\n(declare code-region (addr int) (size int) (off int))\n(declare code-start (addr int))\n(declare entry-point (addr int))\n(declare external-reference (addr int) (name str))\n(declare format (name str))\n(declare is-executable (flag bool))\n(declare is-little-endian (flag bool))\n(declare llvm:base-address (addr int))\n(declare llvm:code-entry (name str) (off int) (size int))\n(declare llvm:coff-import-library (name str))\n(declare llvm:coff-virtual-section-header (name str) (addr int) (size int))\n(declare llvm:elf-program-header (name str) (off int) (size int))\n(declare llvm:elf-program-header-flags (name str) (ld bool) (r bool) \n (w bool) (x bool))\n(declare llvm:elf-virtual-program-header (name str) (addr int) (size int))\n(declare llvm:entry-point (addr int))\n(declare llvm:macho-symbol (name str) (value int))\n(declare llvm:name-reference (at int) (name str))\n(declare llvm:relocation (at int) (addr int))\n(declare llvm:section-entry (name str) (addr int) (size int) (off int))\n(declare llvm:section-flags (name str) (r bool) (w bool) (x bool))\n(declare llvm:segment-command (name str) (off int) (size int))\n(declare llvm:segment-command-flags (name str) (r bool) (w bool) (x bool))\n(declare llvm:symbol-entry (name str) (addr int) (size int) (off int)\n (value int))\n(declare llvm:virtual-segment-command (name str) (addr int) (size int))\n(declare mapped (addr int) (size int) (off int))\n(declare named-region (addr int) (size int) (name str))\n(declare named-symbol (addr int) (name str))\n(declare require (name str))\n(declare section (addr int) (size int))\n(declare segment (addr int) (size int) (r bool) (w bool) (x bool))\n(declare subarch (name str))\n(declare symbol-chunk (addr int) (size int) (root int))\n(declare symbol-value (addr int) (value int))\n(declare system (name str))\n(declare vendor (name str))\n\n(abi unknown)\n(arch aarch64)\n(base-address 0)\n(bias 0)\n(bits 64)\n(code-region 1872 20 1872)\n(code-region 1536 336 1536)\n(code-region 1440 96 1440)\n(code-region 1408 24 1408)\n(code-start 1588)\n(code-start 1536)\n(code-start 1812)\n(entry-point 1536)\n(external-reference 69592 _ITM_deregisterTMCloneTable)\n(external-reference 69600 __cxa_finalize)\n(external-reference 69608 __gmon_start__)\n(external-reference 69624 _ITM_registerTMCloneTable)\n(external-reference 69552 __libc_start_main)\n(external-reference 69560 __cxa_finalize)\n(external-reference 69568 __gmon_start__)\n(external-reference 69576 abort)\n(format elf)\n(is-executable true)\n(is-little-endian true)\n(llvm:base-address 0)\n(llvm:code-entry abort 0 0)\n(llvm:code-entry __cxa_finalize 0 0)\n(llvm:code-entry __libc_start_main 0 0)\n(llvm:code-entry _init 1408 0)\n(llvm:code-entry main 1812 60)\n(llvm:code-entry _start 1536 52)\n(llvm:code-entry abort@GLIBC_2.17 0 0)\n(llvm:code-entry _fini 1872 0)\n(llvm:code-entry __cxa_finalize@GLIBC_2.17 0 0)\n(llvm:code-entry __libc_start_main@GLIBC_2.34 0 0)\n(llvm:code-entry frame_dummy 1808 0)\n(llvm:code-entry __do_global_dtors_aux 1728 0)\n(llvm:code-entry register_tm_clones 1664 0)\n(llvm:code-entry deregister_tm_clones 1616 0)\n(llvm:code-entry call_weak_fn 1588 20)\n(llvm:code-entry .fini 1872 20)\n(llvm:code-entry .text 1536 336)\n(llvm:code-entry .plt 1440 96)\n(llvm:code-entry .init 1408 24)\n(llvm:elf-program-header 08 3480 616)\n(llvm:elf-program-header 07 0 0)\n(llvm:elf-program-header 06 1896 60)\n(llvm:elf-program-header 05 596 68)\n(llvm:elf-program-header 04 3496 496)\n(llvm:elf-program-header 03 3480 632)\n(llvm:elf-program-header 02 0 2124)\n(llvm:elf-program-header 01 568 27)\n(llvm:elf-program-header 00 64 504)\n(llvm:elf-program-header-flags 08 false true false false)\n(llvm:elf-program-header-flags 07 false true true false)\n(llvm:elf-program-header-flags 06 false true false false)\n(llvm:elf-program-header-flags 05 false true false false)\n(llvm:elf-program-header-flags 04 false true true false)\n(llvm:elf-program-header-flags 03 true true true false)\n(llvm:elf-program-header-flags 02 true true false true)\n(llvm:elf-program-header-flags 01 false true false false)\n(llvm:elf-program-header-flags 00 false true false false)\n(llvm:elf-virtual-program-header 08 69016 616)\n(llvm:elf-virtual-program-header 07 0 0)\n(llvm:elf-virtual-program-header 06 1896 60)\n(llvm:elf-virtual-program-header 05 596 68)\n(llvm:elf-virtual-program-header 04 69032 496)\n(llvm:elf-virtual-program-header 03 69016 648)\n(llvm:elf-virtual-program-header 02 0 2124)\n(llvm:elf-virtual-program-header 01 568 27)\n(llvm:elf-virtual-program-header 00 64 504)\n(llvm:entry-point 1536)\n(llvm:name-reference 69576 abort)\n(llvm:name-reference 69568 __gmon_start__)\n(llvm:name-reference 69560 __cxa_finalize)\n(llvm:name-reference 69552 __libc_start_main)\n(llvm:name-reference 69624 _ITM_registerTMCloneTable)\n(llvm:name-reference 69608 __gmon_start__)\n(llvm:name-reference 69600 __cxa_finalize)\n(llvm:name-reference 69592 _ITM_deregisterTMCloneTable)\n(llvm:section-entry .shstrtab 0 250 6858)\n(llvm:section-entry .strtab 0 562 6296)\n(llvm:section-entry .symtab 0 2136 4160)\n(llvm:section-entry .comment 0 43 4112)\n(llvm:section-entry .bss 69648 16 4112)\n(llvm:section-entry .data 69632 16 4096)\n(llvm:section-entry .got 69528 104 3992)\n(llvm:section-entry .dynamic 69032 496 3496)\n(llvm:section-entry .fini_array 69024 8 3488)\n(llvm:section-entry .init_array 69016 8 3480)\n(llvm:section-entry .eh_frame 1960 164 1960)\n(llvm:section-entry .eh_frame_hdr 1896 60 1896)\n(llvm:section-entry .rodata 1892 4 1892)\n(llvm:section-entry .fini 1872 20 1872)\n(llvm:section-entry .text 1536 336 1536)\n(llvm:section-entry .plt 1440 96 1440)\n(llvm:section-entry .init 1408 24 1408)\n(llvm:section-entry .rela.plt 1312 96 1312)\n(llvm:section-entry .rela.dyn 1120 192 1120)\n(llvm:section-entry .gnu.version_r 1072 48 1072)\n(llvm:section-entry .gnu.version 1054 18 1054)\n(llvm:section-entry .dynstr 912 141 912)\n(llvm:section-entry .dynsym 696 216 696)\n(llvm:section-entry .gnu.hash 664 28 664)\n(llvm:section-entry .note.ABI-tag 632 32 632)\n(llvm:section-entry .note.gnu.build-id 596 36 596)\n(llvm:section-entry .interp 568 27 568)\n(llvm:section-flags .shstrtab true false false)\n(llvm:section-flags .strtab true false false)\n(llvm:section-flags .symtab true false false)\n(llvm:section-flags .comment true false false)\n(llvm:section-flags .bss true true false)\n(llvm:section-flags .data true true false)\n(llvm:section-flags .got true true false)\n(llvm:section-flags .dynamic true true false)\n(llvm:section-flags .fini_array true true false)\n(llvm:section-flags .init_array true true false)\n(llvm:section-flags .eh_frame true false false)\n(llvm:section-flags .eh_frame_hdr true false false)\n(llvm:section-flags .rodata true false false)\n(llvm:section-flags .fini true false true)\n(llvm:section-flags .text true false true)\n(llvm:section-flags .plt true false true)\n(llvm:section-flags .init true false true)\n(llvm:section-flags .rela.plt true false false)\n(llvm:section-flags .rela.dyn true false false)\n(llvm:section-flags .gnu.version_r true false false)\n(llvm:section-flags .gnu.version true false false)\n(llvm:section-flags .dynstr true false false)\n(llvm:section-flags .dynsym true false false)\n(llvm:section-flags .gnu.hash true false false)\n(llvm:section-flags .note.ABI-tag true false false)\n(llvm:section-flags .note.gnu.build-id true false false)\n(llvm:section-flags .interp true false false)\n(llvm:symbol-entry abort 0 0 0 0)\n(llvm:symbol-entry __cxa_finalize 0 0 0 0)\n(llvm:symbol-entry __libc_start_main 0 0 0 0)\n(llvm:symbol-entry _init 1408 0 1408 1408)\n(llvm:symbol-entry main 1812 60 1812 1812)\n(llvm:symbol-entry _start 1536 52 1536 1536)\n(llvm:symbol-entry abort@GLIBC_2.17 0 0 0 0)\n(llvm:symbol-entry _fini 1872 0 1872 1872)\n(llvm:symbol-entry __cxa_finalize@GLIBC_2.17 0 0 0 0)\n(llvm:symbol-entry __libc_start_main@GLIBC_2.34 0 0 0 0)\n(llvm:symbol-entry frame_dummy 1808 0 1808 1808)\n(llvm:symbol-entry __do_global_dtors_aux 1728 0 1728 1728)\n(llvm:symbol-entry register_tm_clones 1664 0 1664 1664)\n(llvm:symbol-entry deregister_tm_clones 1616 0 1616 1616)\n(llvm:symbol-entry call_weak_fn 1588 20 1588 1588)\n(mapped 0 2124 0)\n(mapped 69016 632 3480)\n(named-region 0 2124 02)\n(named-region 69016 648 03)\n(named-region 568 27 .interp)\n(named-region 596 36 .note.gnu.build-id)\n(named-region 632 32 .note.ABI-tag)\n(named-region 664 28 .gnu.hash)\n(named-region 696 216 .dynsym)\n(named-region 912 141 .dynstr)\n(named-region 1054 18 .gnu.version)\n(named-region 1072 48 .gnu.version_r)\n(named-region 1120 192 .rela.dyn)\n(named-region 1312 96 .rela.plt)\n(named-region 1408 24 .init)\n(named-region 1440 96 .plt)\n(named-region 1536 336 .text)\n(named-region 1872 20 .fini)\n(named-region 1892 4 .rodata)\n(named-region 1896 60 .eh_frame_hdr)\n(named-region 1960 164 .eh_frame)\n(named-region 69016 8 .init_array)\n(named-region 69024 8 .fini_array)\n(named-region 69032 496 .dynamic)\n(named-region 69528 104 .got)\n(named-region 69632 16 .data)\n(named-region 69648 16 .bss)\n(named-region 0 43 .comment)\n(named-region 0 2136 .symtab)\n(named-region 0 562 .strtab)\n(named-region 0 250 .shstrtab)\n(named-symbol 1588 call_weak_fn)\n(named-symbol 1616 deregister_tm_clones)\n(named-symbol 1664 register_tm_clones)\n(named-symbol 1728 __do_global_dtors_aux)\n(named-symbol 1808 frame_dummy)\n(named-symbol 0 __libc_start_main@GLIBC_2.34)\n(named-symbol 0 __cxa_finalize@GLIBC_2.17)\n(named-symbol 1872 _fini)\n(named-symbol 0 abort@GLIBC_2.17)\n(named-symbol 1536 _start)\n(named-symbol 1812 main)\n(named-symbol 1408 _init)\n(named-symbol 0 __libc_start_main)\n(named-symbol 0 __cxa_finalize)\n(named-symbol 0 abort)\n(require libc.so.6)\n(section 568 27)\n(section 596 36)\n(section 632 32)\n(section 664 28)\n(section 696 216)\n(section 912 141)\n(section 1054 18)\n(section 1072 48)\n(section 1120 192)\n(section 1312 96)\n(section 1408 24)\n(section 1440 96)\n(section 1536 336)\n(section 1872 20)\n(section 1892 4)\n(section 1896 60)\n(section 1960 164)\n(section 69016 8)\n(section 69024 8)\n(section 69032 496)\n(section 69528 104)\n(section 69632 16)\n(section 69648 16)\n(section 0 43)\n(section 0 2136)\n(section 0 562)\n(section 0 250)\n(segment 0 2124 true false true)\n(segment 69016 648 true true false)\n(subarch v8)\n(symbol-chunk 1588 20 1588)\n(symbol-chunk 1536 52 1536)\n(symbol-chunk 1812 60 1812)\n(symbol-value 1588 1588)\n(symbol-value 1616 1616)\n(symbol-value 1664 1664)\n(symbol-value 1728 1728)\n(symbol-value 1808 1808)\n(symbol-value 1872 1872)\n(symbol-value 1536 1536)\n(symbol-value 1812 1812)\n(symbol-value 1408 1408)\n(symbol-value 0 0)\n(system \"\")\n(vendor \"\")\n"), -Attr("abi-name","\"aarch64-linux-gnu-elf\"")]), -Sections([Section(".shstrtab", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x00\x06\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xc8\x1b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x38\x00\x09\x00\x40\x00\x1c\x00\x1b\x00\x06\x00\x00\x00\x04\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x04\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4c\x08\x00\x00\x00\x00\x00\x00\x4c\x08\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x01\x00\x00\x00\x06\x00\x00\x00\x98\x0d\x00\x00\x00\x00\x00\x00\x98\x0d"), -Section(".strtab", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x00\x06\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xc8\x1b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x38\x00\x09\x00\x40\x00\x1c\x00\x1b\x00\x06\x00\x00\x00\x04\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x04\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4c\x08\x00\x00\x00\x00\x00\x00\x4c\x08\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x01\x00\x00\x00\x06\x00\x00\x00\x98\x0d\x00\x00\x00\x00\x00\x00\x98\x0d\x01\x00\x00\x00\x00\x00\x98\x0d\x01\x00\x00\x00\x00\x00\x78\x02\x00\x00\x00\x00\x00\x00\x88\x02\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x02\x00\x00\x00\x06\x00\x00\x00\xa8\x0d\x00\x00\x00\x00\x00\x00\xa8\x0d\x01\x00\x00\x00\x00\x00\xa8\x0d\x01\x00\x00\x00\x00\x00\xf0\x01\x00\x00\x00\x00\x00\x00\xf0\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x04\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x50\xe5\x74\x64\x04\x00\x00\x00\x68\x07\x00\x00\x00\x00\x00\x00\x68\x07\x00\x00\x00\x00\x00\x00\x68\x07\x00\x00\x00\x00\x00\x00\x3c\x00\x00\x00\x00\x00\x00\x00\x3c\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x51\xe5\x74\x64\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x52\xe5\x74\x64\x04\x00\x00\x00\x98\x0d\x00\x00\x00\x00\x00\x00\x98\x0d\x01\x00\x00\x00\x00\x00\x98\x0d\x01\x00\x00\x00\x00\x00\x68\x02\x00\x00\x00\x00\x00\x00\x68\x02\x00\x00\x00\x00\x00\x00\x01\x00"), -Section(".comment", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x00\x06\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xc8\x1b\x00"), -Section(".interp", 0x238, "\x2f\x6c\x69\x62\x2f\x6c\x64\x2d\x6c\x69\x6e\x75\x78\x2d\x61\x61\x72\x63\x68\x36\x34\x2e\x73\x6f\x2e\x31\x00"), -Section(".note.gnu.build-id", 0x254, "\x04\x00\x00\x00\x14\x00\x00\x00\x03\x00\x00\x00\x47\x4e\x55\x00\x17\x81\xde\x51\x0d\x10\x91\x80\x61\x2a\x0f\x99\xe7\x75\xc7\x45\x98\xed\xcf\x9c"), -Section(".note.ABI-tag", 0x278, "\x04\x00\x00\x00\x10\x00\x00\x00\x01\x00\x00\x00\x47\x4e\x55\x00\x00\x00\x00\x00\x03\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00"), -Section(".gnu.hash", 0x298, "\x01\x00\x00\x00\x01\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".dynsym", 0x2B8, "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x0b\x00\x80\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x16\x00\x00\x10\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x48\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x22\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x22\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x73\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".dynstr", 0x390, "\x00\x5f\x5f\x63\x78\x61\x5f\x66\x69\x6e\x61\x6c\x69\x7a\x65\x00\x5f\x5f\x6c\x69\x62\x63\x5f\x73\x74\x61\x72\x74\x5f\x6d\x61\x69\x6e\x00\x61\x62\x6f\x72\x74\x00\x6c\x69\x62\x63\x2e\x73\x6f\x2e\x36\x00\x47\x4c\x49\x42\x43\x5f\x32\x2e\x31\x37\x00\x47\x4c\x49\x42\x43\x5f\x32\x2e\x33\x34\x00\x5f\x49\x54\x4d\x5f\x64\x65\x72\x65\x67\x69\x73\x74\x65\x72\x54\x4d\x43\x6c\x6f\x6e\x65\x54\x61\x62\x6c\x65\x00\x5f\x5f\x67\x6d\x6f\x6e\x5f\x73\x74\x61\x72\x74\x5f\x5f\x00\x5f\x49\x54\x4d\x5f\x72\x65\x67\x69\x73\x74\x65\x72\x54\x4d\x43\x6c\x6f\x6e\x65\x54\x61\x62\x6c\x65\x00"), -Section(".gnu.version", 0x41E, "\x00\x00\x00\x00\x00\x00\x02\x00\x01\x00\x03\x00\x01\x00\x03\x00\x01\x00"), -Section(".gnu.version_r", 0x430, "\x01\x00\x02\x00\x28\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x97\x91\x96\x06\x00\x00\x03\x00\x32\x00\x00\x00\x10\x00\x00\x00\xb4\x91\x96\x06\x00\x00\x02\x00\x3d\x00\x00\x00\x00\x00\x00\x00"), -Section(".rela.dyn", 0x460, "\x98\x0d\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x10\x07\x00\x00\x00\x00\x00\x00\xa0\x0d\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\xc0\x06\x00\x00\x00\x00\x00\x00\xf0\x0f\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x14\x07\x00\x00\x00\x00\x00\x00\x08\x10\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x08\x10\x01\x00\x00\x00\x00\x00\xd8\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe0\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe8\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xf8\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".rela.plt", 0x520, "\xb0\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xb8\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xc0\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xc8\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".init", 0x580, "\x1f\x20\x03\xd5\xfd\x7b\xbf\xa9\xfd\x03\x00\x91\x2a\x00\x00\x94\xfd\x7b\xc1\xa8\xc0\x03\x5f\xd6"), -Section(".plt", 0x5A0, "\xf0\x7b\xbf\xa9\x90\x00\x00\x90\x11\xd6\x47\xf9\x10\xa2\x3e\x91\x20\x02\x1f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x90\x00\x00\x90\x11\xda\x47\xf9\x10\xc2\x3e\x91\x20\x02\x1f\xd6\x90\x00\x00\x90\x11\xde\x47\xf9\x10\xe2\x3e\x91\x20\x02\x1f\xd6\x90\x00\x00\x90\x11\xe2\x47\xf9\x10\x02\x3f\x91\x20\x02\x1f\xd6\x90\x00\x00\x90\x11\xe6\x47\xf9\x10\x22\x3f\x91\x20\x02\x1f\xd6"), -Section(".text", 0x600, "\x1f\x20\x03\xd5\x1d\x00\x80\xd2\x1e\x00\x80\xd2\xe5\x03\x00\xaa\xe1\x03\x40\xf9\xe2\x23\x00\x91\xe6\x03\x00\x91\x80\x00\x00\x90\x00\xf8\x47\xf9\x03\x00\x80\xd2\x04\x00\x80\xd2\xe5\xff\xff\x97\xf0\xff\xff\x97\x80\x00\x00\x90\x00\xf4\x47\xf9\x40\x00\x00\xb4\xe8\xff\xff\x17\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x80\x00\x00\xb0\x00\x40\x00\x91\x81\x00\x00\xb0\x21\x40\x00\x91\x3f\x00\x00\xeb\xc0\x00\x00\x54\x81\x00\x00\x90\x21\xec\x47\xf9\x61\x00\x00\xb4\xf0\x03\x01\xaa\x00\x02\x1f\xd6\xc0\x03\x5f\xd6\x80\x00\x00\xb0\x00\x40\x00\x91\x81\x00\x00\xb0\x21\x40\x00\x91\x21\x00\x00\xcb\x22\xfc\x7f\xd3\x41\x0c\x81\x8b\x21\xfc\x41\x93\xc1\x00\x00\xb4\x82\x00\x00\x90\x42\xfc\x47\xf9\x62\x00\x00\xb4\xf0\x03\x02\xaa\x00\x02\x1f\xd6\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\xfd\x7b\xbe\xa9\xfd\x03\x00\x91\xf3\x0b\x00\xf9\x93\x00\x00\xb0\x60\x42\x40\x39\x40\x01\x00\x35\x80\x00\x00\x90\x00\xf0\x47\xf9\x80\x00\x00\xb4\x80\x00\x00\xb0\x00\x04\x40\xf9\xb9\xff\xff\x97\xd8\xff\xff\x97\x20\x00\x80\x52\x60\x42\x00\x39\xf3\x0b\x40\xf9\xfd\x7b\xc2\xa8\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\xdc\xff\xff\x17\xff\x43\x00\xd1\x80\x00\x00\xb0\x00\x60\x00\x91\x00\x00\x40\xb9\xe0\x0f\x00\xb9\x80\x00\x00\xb0\x00\x50\x00\x91\x00\x00\x40\xb9\x1f\x00\x00\x71\x61\x00\x00\x54\x00\x00\x80\x52\x02\x00\x00\x14\xe0\x0f\x40\xb9\xff\x43\x00\x91\xc0\x03\x5f\xd6"), -Section(".fini", 0x750, "\x1f\x20\x03\xd5\xfd\x7b\xbf\xa9\xfd\x03\x00\x91\xfd\x7b\xc1\xa8\xc0\x03\x5f\xd6"), -Section(".rodata", 0x764, "\x01\x00\x02\x00"), -Section(".eh_frame_hdr", 0x768, "\x01\x1b\x03\x3b\x3c\x00\x00\x00\x06\x00\x00\x00\x98\xfe\xff\xff\x54\x00\x00\x00\xe8\xfe\xff\xff\x68\x00\x00\x00\x18\xff\xff\xff\x7c\x00\x00\x00\x58\xff\xff\xff\x90\x00\x00\x00\xa8\xff\xff\xff\xb4\x00\x00\x00\xac\xff\xff\xff\xc8\x00\x00\x00"), -Section(".eh_frame", 0x7A8, "\x10\x00\x00\x00\x00\x00\x00\x00\x01\x7a\x52\x00\x04\x78\x1e\x01\x1b\x0c\x1f\x00\x10\x00\x00\x00\x18\x00\x00\x00\x3c\xfe\xff\xff\x34\x00\x00\x00\x00\x41\x07\x1e\x10\x00\x00\x00\x2c\x00\x00\x00\x78\xfe\xff\xff\x30\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x40\x00\x00\x00\x94\xfe\xff\xff\x3c\x00\x00\x00\x00\x00\x00\x00\x20\x00\x00\x00\x54\x00\x00\x00\xc0\xfe\xff\xff\x48\x00\x00\x00\x00\x41\x0e\x20\x9d\x04\x9e\x03\x42\x93\x02\x4e\xde\xdd\xd3\x0e\x00\x00\x00\x00\x10\x00\x00\x00\x78\x00\x00\x00\xec\xfe\xff\xff\x04\x00\x00\x00\x00\x00\x00\x00\x14\x00\x00\x00\x8c\x00\x00\x00\xdc\xfe\xff\xff\x3c\x00\x00\x00\x00\x41\x0e\x10\x4d\x0e\x00\x00\x00\x00\x00\x00"), -Section(".fini_array", 0x10DA0, "\xc0\x06\x00\x00\x00\x00\x00\x00"), -Section(".dynamic", 0x10DA8, "\x01\x00\x00\x00\x00\x00\x00\x00\x28\x00\x00\x00\x00\x00\x00\x00\x0c\x00\x00\x00\x00\x00\x00\x00\x80\x05\x00\x00\x00\x00\x00\x00\x0d\x00\x00\x00\x00\x00\x00\x00\x50\x07\x00\x00\x00\x00\x00\x00\x19\x00\x00\x00\x00\x00\x00\x00\x98\x0d\x01\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x1a\x00\x00\x00\x00\x00\x00\x00\xa0\x0d\x01\x00\x00\x00\x00\x00\x1c\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\xf5\xfe\xff\x6f\x00\x00\x00\x00\x98\x02\x00\x00\x00\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x90\x03\x00\x00\x00\x00\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\xb8\x02\x00\x00\x00\x00\x00\x00\x0a\x00\x00\x00\x00\x00\x00\x00\x8d\x00\x00\x00\x00\x00\x00\x00\x0b\x00\x00\x00\x00\x00\x00\x00\x18\x00\x00\x00\x00\x00\x00\x00\x15\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x98\x0f\x01\x00\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x60\x00\x00\x00\x00\x00\x00\x00\x14\x00\x00\x00\x00\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x17\x00\x00\x00\x00\x00\x00\x00\x20\x05\x00\x00\x00\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x60\x04\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\xc0\x00\x00\x00\x00\x00\x00\x00\x09\x00\x00\x00\x00\x00\x00\x00\x18\x00\x00\x00\x00\x00\x00\x00\x1e\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\xfb\xff\xff\x6f\x00\x00\x00\x00\x01\x00\x00\x08\x00\x00\x00\x00\xfe\xff\xff\x6f\x00\x00\x00\x00\x30\x04\x00\x00\x00\x00\x00\x00\xff\xff\xff\x6f\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\xf0\xff\xff\x6f\x00\x00\x00\x00\x1e\x04\x00\x00\x00\x00\x00\x00\xf9\xff\xff\x6f\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".got", 0x10F98, "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xa0\x05\x00\x00\x00\x00\x00\x00\xa0\x05\x00\x00\x00\x00\x00\x00\xa0\x05\x00\x00\x00\x00\x00\x00\xa0\x05\x00\x00\x00\x00\x00\x00\xa8\x0d\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x14\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".data", 0x11000, "\x00\x00\x00\x00\x00\x00\x00\x00\x08\x10\x01\x00\x00\x00\x00\x00"), -Section(".init_array", 0x10D98, "\x10\x07\x00\x00\x00\x00\x00\x00")]), -Memmap([Annotation(Region(0x0,0x84B), Attr("segment","02 0 2124")), -Annotation(Region(0x600,0x633), Attr("symbol","\"_start\"")), -Annotation(Region(0x0,0xF9), Attr("section","\".shstrtab\"")), -Annotation(Region(0x0,0x231), Attr("section","\".strtab\"")), -Annotation(Region(0x0,0x2A), Attr("section","\".comment\"")), -Annotation(Region(0x238,0x252), Attr("section","\".interp\"")), -Annotation(Region(0x254,0x277), Attr("section","\".note.gnu.build-id\"")), -Annotation(Region(0x278,0x297), Attr("section","\".note.ABI-tag\"")), -Annotation(Region(0x298,0x2B3), Attr("section","\".gnu.hash\"")), -Annotation(Region(0x2B8,0x38F), Attr("section","\".dynsym\"")), -Annotation(Region(0x390,0x41C), Attr("section","\".dynstr\"")), -Annotation(Region(0x41E,0x42F), Attr("section","\".gnu.version\"")), -Annotation(Region(0x430,0x45F), Attr("section","\".gnu.version_r\"")), -Annotation(Region(0x460,0x51F), Attr("section","\".rela.dyn\"")), -Annotation(Region(0x520,0x57F), Attr("section","\".rela.plt\"")), -Annotation(Region(0x580,0x597), Attr("section","\".init\"")), -Annotation(Region(0x5A0,0x5FF), Attr("section","\".plt\"")), -Annotation(Region(0x580,0x597), Attr("code-region","()")), -Annotation(Region(0x5A0,0x5FF), Attr("code-region","()")), -Annotation(Region(0x600,0x633), Attr("symbol-info","_start 0x600 52")), -Annotation(Region(0x634,0x647), Attr("symbol","\"call_weak_fn\"")), -Annotation(Region(0x634,0x647), Attr("symbol-info","call_weak_fn 0x634 20")), -Annotation(Region(0x600,0x74F), Attr("section","\".text\"")), -Annotation(Region(0x600,0x74F), Attr("code-region","()")), -Annotation(Region(0x714,0x74F), Attr("symbol","\"main\"")), -Annotation(Region(0x714,0x74F), Attr("symbol-info","main 0x714 60")), -Annotation(Region(0x750,0x763), Attr("section","\".fini\"")), -Annotation(Region(0x750,0x763), Attr("code-region","()")), -Annotation(Region(0x764,0x767), Attr("section","\".rodata\"")), -Annotation(Region(0x768,0x7A3), Attr("section","\".eh_frame_hdr\"")), -Annotation(Region(0x7A8,0x84B), Attr("section","\".eh_frame\"")), -Annotation(Region(0x10D98,0x1100F), Attr("segment","03 0x10D98 648")), -Annotation(Region(0x10DA0,0x10DA7), Attr("section","\".fini_array\"")), -Annotation(Region(0x10DA8,0x10F97), Attr("section","\".dynamic\"")), -Annotation(Region(0x10F98,0x10FFF), Attr("section","\".got\"")), -Annotation(Region(0x11000,0x1100F), Attr("section","\".data\"")), -Annotation(Region(0x10D98,0x10D9F), Attr("section","\".init_array\""))]), -Program(Tid(1_561, "%00000619"), Attrs([]), - Subs([Sub(Tid(1_507, "@__cxa_finalize"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x5D0"), -Attr("stub","()")]), "__cxa_finalize", Args([Arg(Tid(1_562, "%0000061a"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("__cxa_finalize_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(905, "@__cxa_finalize"), - Attrs([Attr("address","0x5D0")]), Phis([]), -Defs([Def(Tid(1_153, "%00000481"), Attrs([Attr("address","0x5D0"), -Attr("insn","adrp x16, #65536")]), Var("R16",Imm(64)), Int(65536,64)), -Def(Tid(1_160, "%00000488"), Attrs([Attr("address","0x5D4"), -Attr("insn","ldr x17, [x16, #0xfb8]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(4024,64)),LittleEndian(),64)), -Def(Tid(1_166, "%0000048e"), Attrs([Attr("address","0x5D8"), -Attr("insn","add x16, x16, #0xfb8")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(4024,64)))]), Jmps([Call(Tid(1_171, "%00000493"), - Attrs([Attr("address","0x5DC"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), -Sub(Tid(1_508, "@__do_global_dtors_aux"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x6C0")]), - "__do_global_dtors_aux", Args([Arg(Tid(1_563, "%0000061b"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("__do_global_dtors_aux_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(650, "@__do_global_dtors_aux"), - Attrs([Attr("address","0x6C0")]), Phis([]), Defs([Def(Tid(654, "%0000028e"), - Attrs([Attr("address","0x6C0"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("#3",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(18446744073709551584,64))), -Def(Tid(660, "%00000294"), Attrs([Attr("address","0x6C0"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("#3",Imm(64)),Var("R29",Imm(64)),LittleEndian(),64)), -Def(Tid(666, "%0000029a"), Attrs([Attr("address","0x6C0"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("#3",Imm(64)),Int(8,64)),Var("R30",Imm(64)),LittleEndian(),64)), -Def(Tid(670, "%0000029e"), Attrs([Attr("address","0x6C0"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("R31",Imm(64)), -Var("#3",Imm(64))), Def(Tid(676, "%000002a4"), - Attrs([Attr("address","0x6C4"), Attr("insn","mov x29, sp")]), - Var("R29",Imm(64)), Var("R31",Imm(64))), Def(Tid(684, "%000002ac"), - Attrs([Attr("address","0x6C8"), Attr("insn","str x19, [sp, #0x10]")]), - Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(16,64)),Var("R19",Imm(64)),LittleEndian(),64)), -Def(Tid(689, "%000002b1"), Attrs([Attr("address","0x6CC"), -Attr("insn","adrp x19, #69632")]), Var("R19",Imm(64)), Int(69632,64)), -Def(Tid(696, "%000002b8"), Attrs([Attr("address","0x6D0"), -Attr("insn","ldrb w0, [x19, #0x10]")]), Var("R0",Imm(64)), -UNSIGNED(64,Load(Var("mem",Mem(64,8)),PLUS(Var("R19",Imm(64)),Int(16,64)),LittleEndian(),8)))]), -Jmps([Goto(Tid(703, "%000002bf"), Attrs([Attr("address","0x6D4"), -Attr("insn","cbnz w0, #0x28")]), - NEQ(Extract(31,0,Var("R0",Imm(64))),Int(0,32)), -Direct(Tid(701, "%000002bd"))), Goto(Tid(1_549, "%0000060d"), Attrs([]), - Int(1,1), Direct(Tid(850, "%00000352")))])), Blk(Tid(850, "%00000352"), - Attrs([Attr("address","0x6D8")]), Phis([]), Defs([Def(Tid(853, "%00000355"), - Attrs([Attr("address","0x6D8"), Attr("insn","adrp x0, #65536")]), - Var("R0",Imm(64)), Int(65536,64)), Def(Tid(860, "%0000035c"), - Attrs([Attr("address","0x6DC"), Attr("insn","ldr x0, [x0, #0xfe0]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(4064,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(866, "%00000362"), Attrs([Attr("address","0x6E0"), -Attr("insn","cbz x0, #0x10")]), EQ(Var("R0",Imm(64)),Int(0,64)), -Direct(Tid(864, "%00000360"))), Goto(Tid(1_550, "%0000060e"), Attrs([]), - Int(1,1), Direct(Tid(889, "%00000379")))])), Blk(Tid(889, "%00000379"), - Attrs([Attr("address","0x6E4")]), Phis([]), Defs([Def(Tid(892, "%0000037c"), - Attrs([Attr("address","0x6E4"), Attr("insn","adrp x0, #69632")]), - Var("R0",Imm(64)), Int(69632,64)), Def(Tid(899, "%00000383"), - Attrs([Attr("address","0x6E8"), Attr("insn","ldr x0, [x0, #0x8]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(904, "%00000388"), Attrs([Attr("address","0x6EC"), -Attr("insn","bl #-0x11c")]), Var("R30",Imm(64)), Int(1776,64))]), -Jmps([Call(Tid(907, "%0000038b"), Attrs([Attr("address","0x6EC"), -Attr("insn","bl #-0x11c")]), Int(1,1), -(Direct(Tid(1_507, "@__cxa_finalize")),Direct(Tid(864, "%00000360"))))])), -Blk(Tid(864, "%00000360"), Attrs([Attr("address","0x6F0")]), Phis([]), -Defs([Def(Tid(872, "%00000368"), Attrs([Attr("address","0x6F0"), -Attr("insn","bl #-0xa0")]), Var("R30",Imm(64)), Int(1780,64))]), -Jmps([Call(Tid(874, "%0000036a"), Attrs([Attr("address","0x6F0"), -Attr("insn","bl #-0xa0")]), Int(1,1), -(Direct(Tid(1_521, "@deregister_tm_clones")),Direct(Tid(876, "%0000036c"))))])), -Blk(Tid(876, "%0000036c"), Attrs([Attr("address","0x6F4")]), Phis([]), -Defs([Def(Tid(879, "%0000036f"), Attrs([Attr("address","0x6F4"), -Attr("insn","mov w0, #0x1")]), Var("R0",Imm(64)), Int(1,64)), -Def(Tid(887, "%00000377"), Attrs([Attr("address","0x6F8"), -Attr("insn","strb w0, [x19, #0x10]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R19",Imm(64)),Int(16,64)),Extract(7,0,Var("R0",Imm(64))),LittleEndian(),8))]), -Jmps([Goto(Tid(1_551, "%0000060f"), Attrs([]), Int(1,1), -Direct(Tid(701, "%000002bd")))])), Blk(Tid(701, "%000002bd"), - Attrs([Attr("address","0x6FC")]), Phis([]), Defs([Def(Tid(711, "%000002c7"), - Attrs([Attr("address","0x6FC"), Attr("insn","ldr x19, [sp, #0x10]")]), - Var("R19",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(16,64)),LittleEndian(),64)), -Def(Tid(718, "%000002ce"), Attrs([Attr("address","0x700"), -Attr("insn","ldp x29, x30, [sp], #0x20")]), Var("R29",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(723, "%000002d3"), Attrs([Attr("address","0x700"), -Attr("insn","ldp x29, x30, [sp], #0x20")]), Var("R30",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(727, "%000002d7"), Attrs([Attr("address","0x700"), -Attr("insn","ldp x29, x30, [sp], #0x20")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(32,64)))]), Jmps([Call(Tid(732, "%000002dc"), - Attrs([Attr("address","0x704"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), Sub(Tid(1_512, "@__libc_start_main"), - Attrs([Attr("c.proto","signed (*)(signed (*)(signed , char** , char** );* main, signed , char** , \nvoid* auxv)"), -Attr("address","0x5C0"), Attr("stub","()")]), "__libc_start_main", - Args([Arg(Tid(1_564, "%0000061c"), - Attrs([Attr("c.layout","**[ : 64]"), -Attr("c.data","Top:u64 ptr ptr"), -Attr("c.type","signed (*)(signed , char** , char** );*")]), - Var("__libc_start_main_main",Imm(64)), Var("R0",Imm(64)), In()), -Arg(Tid(1_565, "%0000061d"), Attrs([Attr("c.layout","[signed : 32]"), -Attr("c.data","Top:u32"), Attr("c.type","signed")]), - Var("__libc_start_main_arg2",Imm(32)), LOW(32,Var("R1",Imm(64))), In()), -Arg(Tid(1_566, "%0000061e"), Attrs([Attr("c.layout","**[char : 8]"), -Attr("c.data","Top:u8 ptr ptr"), Attr("c.type","char**")]), - Var("__libc_start_main_arg3",Imm(64)), Var("R2",Imm(64)), Both()), -Arg(Tid(1_567, "%0000061f"), Attrs([Attr("c.layout","*[ : 8]"), -Attr("c.data","{} ptr"), Attr("c.type","void*")]), - Var("__libc_start_main_auxv",Imm(64)), Var("R3",Imm(64)), Both()), -Arg(Tid(1_568, "%00000620"), Attrs([Attr("c.layout","[signed : 32]"), -Attr("c.data","Top:u32"), Attr("c.type","signed")]), - Var("__libc_start_main_result",Imm(32)), LOW(32,Var("R0",Imm(64))), -Out())]), Blks([Blk(Tid(483, "@__libc_start_main"), - Attrs([Attr("address","0x5C0")]), Phis([]), -Defs([Def(Tid(1_131, "%0000046b"), Attrs([Attr("address","0x5C0"), -Attr("insn","adrp x16, #65536")]), Var("R16",Imm(64)), Int(65536,64)), -Def(Tid(1_138, "%00000472"), Attrs([Attr("address","0x5C4"), -Attr("insn","ldr x17, [x16, #0xfb0]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(4016,64)),LittleEndian(),64)), -Def(Tid(1_144, "%00000478"), Attrs([Attr("address","0x5C8"), -Attr("insn","add x16, x16, #0xfb0")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(4016,64)))]), Jmps([Call(Tid(1_149, "%0000047d"), - Attrs([Attr("address","0x5CC"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), Sub(Tid(1_513, "@_fini"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x750")]), - "_fini", Args([Arg(Tid(1_569, "%00000621"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("_fini_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(31, "@_fini"), - Attrs([Attr("address","0x750")]), Phis([]), Defs([Def(Tid(37, "%00000025"), - Attrs([Attr("address","0x754"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("#0",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(18446744073709551600,64))), -Def(Tid(43, "%0000002b"), Attrs([Attr("address","0x754"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("#0",Imm(64)),Var("R29",Imm(64)),LittleEndian(),64)), -Def(Tid(49, "%00000031"), Attrs([Attr("address","0x754"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("#0",Imm(64)),Int(8,64)),Var("R30",Imm(64)),LittleEndian(),64)), -Def(Tid(53, "%00000035"), Attrs([Attr("address","0x754"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("R31",Imm(64)), -Var("#0",Imm(64))), Def(Tid(59, "%0000003b"), Attrs([Attr("address","0x758"), -Attr("insn","mov x29, sp")]), Var("R29",Imm(64)), Var("R31",Imm(64))), -Def(Tid(66, "%00000042"), Attrs([Attr("address","0x75C"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R29",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(71, "%00000047"), Attrs([Attr("address","0x75C"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R30",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(75, "%0000004b"), Attrs([Attr("address","0x75C"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(16,64)))]), Jmps([Call(Tid(80, "%00000050"), - Attrs([Attr("address","0x760"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), Sub(Tid(1_514, "@_init"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x580")]), - "_init", Args([Arg(Tid(1_570, "%00000622"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("_init_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(1_334, "@_init"), - Attrs([Attr("address","0x580")]), Phis([]), -Defs([Def(Tid(1_340, "%0000053c"), Attrs([Attr("address","0x584"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("#6",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(18446744073709551600,64))), -Def(Tid(1_346, "%00000542"), Attrs([Attr("address","0x584"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("#6",Imm(64)),Var("R29",Imm(64)),LittleEndian(),64)), -Def(Tid(1_352, "%00000548"), Attrs([Attr("address","0x584"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("#6",Imm(64)),Int(8,64)),Var("R30",Imm(64)),LittleEndian(),64)), -Def(Tid(1_356, "%0000054c"), Attrs([Attr("address","0x584"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("R31",Imm(64)), -Var("#6",Imm(64))), Def(Tid(1_362, "%00000552"), - Attrs([Attr("address","0x588"), Attr("insn","mov x29, sp")]), - Var("R29",Imm(64)), Var("R31",Imm(64))), Def(Tid(1_367, "%00000557"), - Attrs([Attr("address","0x58C"), Attr("insn","bl #0xa8")]), - Var("R30",Imm(64)), Int(1424,64))]), Jmps([Call(Tid(1_369, "%00000559"), - Attrs([Attr("address","0x58C"), Attr("insn","bl #0xa8")]), Int(1,1), -(Direct(Tid(1_519, "@call_weak_fn")),Direct(Tid(1_371, "%0000055b"))))])), -Blk(Tid(1_371, "%0000055b"), Attrs([Attr("address","0x590")]), Phis([]), -Defs([Def(Tid(1_376, "%00000560"), Attrs([Attr("address","0x590"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R29",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(1_381, "%00000565"), Attrs([Attr("address","0x590"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R30",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(1_385, "%00000569"), Attrs([Attr("address","0x590"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(16,64)))]), Jmps([Call(Tid(1_390, "%0000056e"), - Attrs([Attr("address","0x594"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), Sub(Tid(1_515, "@_start"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x600"), -Attr("stub","()"), Attr("entry-point","()")]), "_start", - Args([Arg(Tid(1_571, "%00000623"), Attrs([Attr("c.layout","[signed : 32]"), -Attr("c.data","Top:u32"), Attr("c.type","signed")]), - Var("_start_result",Imm(32)), LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(420, "@_start"), Attrs([Attr("address","0x600")]), Phis([]), -Defs([Def(Tid(425, "%000001a9"), Attrs([Attr("address","0x604"), -Attr("insn","mov x29, #0x0")]), Var("R29",Imm(64)), Int(0,64)), -Def(Tid(430, "%000001ae"), Attrs([Attr("address","0x608"), -Attr("insn","mov x30, #0x0")]), Var("R30",Imm(64)), Int(0,64)), -Def(Tid(436, "%000001b4"), Attrs([Attr("address","0x60C"), -Attr("insn","mov x5, x0")]), Var("R5",Imm(64)), Var("R0",Imm(64))), -Def(Tid(443, "%000001bb"), Attrs([Attr("address","0x610"), -Attr("insn","ldr x1, [sp]")]), Var("R1",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(449, "%000001c1"), Attrs([Attr("address","0x614"), -Attr("insn","add x2, sp, #0x8")]), Var("R2",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(8,64))), Def(Tid(455, "%000001c7"), - Attrs([Attr("address","0x618"), Attr("insn","mov x6, sp")]), - Var("R6",Imm(64)), Var("R31",Imm(64))), Def(Tid(460, "%000001cc"), - Attrs([Attr("address","0x61C"), Attr("insn","adrp x0, #65536")]), - Var("R0",Imm(64)), Int(65536,64)), Def(Tid(467, "%000001d3"), - Attrs([Attr("address","0x620"), Attr("insn","ldr x0, [x0, #0xff0]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(4080,64)),LittleEndian(),64)), -Def(Tid(472, "%000001d8"), Attrs([Attr("address","0x624"), -Attr("insn","mov x3, #0x0")]), Var("R3",Imm(64)), Int(0,64)), -Def(Tid(477, "%000001dd"), Attrs([Attr("address","0x628"), -Attr("insn","mov x4, #0x0")]), Var("R4",Imm(64)), Int(0,64)), -Def(Tid(482, "%000001e2"), Attrs([Attr("address","0x62C"), -Attr("insn","bl #-0x6c")]), Var("R30",Imm(64)), Int(1584,64))]), -Jmps([Call(Tid(485, "%000001e5"), Attrs([Attr("address","0x62C"), -Attr("insn","bl #-0x6c")]), Int(1,1), -(Direct(Tid(1_512, "@__libc_start_main")),Direct(Tid(487, "%000001e7"))))])), -Blk(Tid(487, "%000001e7"), Attrs([Attr("address","0x630")]), Phis([]), -Defs([Def(Tid(490, "%000001ea"), Attrs([Attr("address","0x630"), -Attr("insn","bl #-0x40")]), Var("R30",Imm(64)), Int(1588,64))]), -Jmps([Call(Tid(493, "%000001ed"), Attrs([Attr("address","0x630"), -Attr("insn","bl #-0x40")]), Int(1,1), -(Direct(Tid(1_518, "@abort")),Direct(Tid(1_552, "%00000610"))))])), -Blk(Tid(1_552, "%00000610"), Attrs([]), Phis([]), Defs([]), -Jmps([Call(Tid(1_553, "%00000611"), Attrs([]), Int(1,1), -(Direct(Tid(1_519, "@call_weak_fn")),))]))])), Sub(Tid(1_518, "@abort"), - Attrs([Attr("noreturn","()"), Attr("c.proto","void (*)(void)"), -Attr("address","0x5F0"), Attr("stub","()")]), "abort", Args([]), -Blks([Blk(Tid(491, "@abort"), Attrs([Attr("address","0x5F0")]), Phis([]), -Defs([Def(Tid(1_197, "%000004ad"), Attrs([Attr("address","0x5F0"), -Attr("insn","adrp x16, #65536")]), Var("R16",Imm(64)), Int(65536,64)), -Def(Tid(1_204, "%000004b4"), Attrs([Attr("address","0x5F4"), -Attr("insn","ldr x17, [x16, #0xfc8]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(4040,64)),LittleEndian(),64)), -Def(Tid(1_210, "%000004ba"), Attrs([Attr("address","0x5F8"), -Attr("insn","add x16, x16, #0xfc8")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(4040,64)))]), Jmps([Call(Tid(1_215, "%000004bf"), - Attrs([Attr("address","0x5FC"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), Sub(Tid(1_519, "@call_weak_fn"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x634")]), - "call_weak_fn", Args([Arg(Tid(1_572, "%00000624"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("call_weak_fn_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(495, "@call_weak_fn"), - Attrs([Attr("address","0x634")]), Phis([]), Defs([Def(Tid(498, "%000001f2"), - Attrs([Attr("address","0x634"), Attr("insn","adrp x0, #65536")]), - Var("R0",Imm(64)), Int(65536,64)), Def(Tid(505, "%000001f9"), - Attrs([Attr("address","0x638"), Attr("insn","ldr x0, [x0, #0xfe8]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(4072,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(511, "%000001ff"), Attrs([Attr("address","0x63C"), -Attr("insn","cbz x0, #0x8")]), EQ(Var("R0",Imm(64)),Int(0,64)), -Direct(Tid(509, "%000001fd"))), Goto(Tid(1_554, "%00000612"), Attrs([]), - Int(1,1), Direct(Tid(969, "%000003c9")))])), Blk(Tid(509, "%000001fd"), - Attrs([Attr("address","0x644")]), Phis([]), Defs([]), -Jmps([Call(Tid(517, "%00000205"), Attrs([Attr("address","0x644"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))])), -Blk(Tid(969, "%000003c9"), Attrs([Attr("address","0x640")]), Phis([]), -Defs([]), Jmps([Goto(Tid(972, "%000003cc"), Attrs([Attr("address","0x640"), -Attr("insn","b #-0x60")]), Int(1,1), Direct(Tid(970, "@__gmon_start__")))])), -Blk(Tid(970, "@__gmon_start__"), Attrs([Attr("address","0x5E0")]), Phis([]), -Defs([Def(Tid(1_175, "%00000497"), Attrs([Attr("address","0x5E0"), -Attr("insn","adrp x16, #65536")]), Var("R16",Imm(64)), Int(65536,64)), -Def(Tid(1_182, "%0000049e"), Attrs([Attr("address","0x5E4"), -Attr("insn","ldr x17, [x16, #0xfc0]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(4032,64)),LittleEndian(),64)), -Def(Tid(1_188, "%000004a4"), Attrs([Attr("address","0x5E8"), -Attr("insn","add x16, x16, #0xfc0")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(4032,64)))]), Jmps([Call(Tid(1_193, "%000004a9"), - Attrs([Attr("address","0x5EC"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), -Sub(Tid(1_521, "@deregister_tm_clones"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x650")]), - "deregister_tm_clones", Args([Arg(Tid(1_573, "%00000625"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("deregister_tm_clones_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(523, "@deregister_tm_clones"), - Attrs([Attr("address","0x650")]), Phis([]), Defs([Def(Tid(526, "%0000020e"), - Attrs([Attr("address","0x650"), Attr("insn","adrp x0, #69632")]), - Var("R0",Imm(64)), Int(69632,64)), Def(Tid(532, "%00000214"), - Attrs([Attr("address","0x654"), Attr("insn","add x0, x0, #0x10")]), - Var("R0",Imm(64)), PLUS(Var("R0",Imm(64)),Int(16,64))), -Def(Tid(537, "%00000219"), Attrs([Attr("address","0x658"), -Attr("insn","adrp x1, #69632")]), Var("R1",Imm(64)), Int(69632,64)), -Def(Tid(543, "%0000021f"), Attrs([Attr("address","0x65C"), -Attr("insn","add x1, x1, #0x10")]), Var("R1",Imm(64)), -PLUS(Var("R1",Imm(64)),Int(16,64))), Def(Tid(549, "%00000225"), - Attrs([Attr("address","0x660"), Attr("insn","cmp x1, x0")]), - Var("#1",Imm(64)), NOT(Var("R0",Imm(64)))), Def(Tid(554, "%0000022a"), - Attrs([Attr("address","0x660"), Attr("insn","cmp x1, x0")]), - Var("#2",Imm(64)), PLUS(Var("R1",Imm(64)),NOT(Var("R0",Imm(64))))), -Def(Tid(560, "%00000230"), Attrs([Attr("address","0x660"), -Attr("insn","cmp x1, x0")]), Var("VF",Imm(1)), -NEQ(SIGNED(65,PLUS(Var("#2",Imm(64)),Int(1,64))),PLUS(PLUS(SIGNED(65,Var("R1",Imm(64))),SIGNED(65,Var("#1",Imm(64)))),Int(1,65)))), -Def(Tid(566, "%00000236"), Attrs([Attr("address","0x660"), -Attr("insn","cmp x1, x0")]), Var("CF",Imm(1)), -NEQ(UNSIGNED(65,PLUS(Var("#2",Imm(64)),Int(1,64))),PLUS(PLUS(UNSIGNED(65,Var("R1",Imm(64))),UNSIGNED(65,Var("#1",Imm(64)))),Int(1,65)))), -Def(Tid(570, "%0000023a"), Attrs([Attr("address","0x660"), -Attr("insn","cmp x1, x0")]), Var("ZF",Imm(1)), -EQ(PLUS(Var("#2",Imm(64)),Int(1,64)),Int(0,64))), Def(Tid(574, "%0000023e"), - Attrs([Attr("address","0x660"), Attr("insn","cmp x1, x0")]), - Var("NF",Imm(1)), Extract(63,63,PLUS(Var("#2",Imm(64)),Int(1,64))))]), -Jmps([Goto(Tid(580, "%00000244"), Attrs([Attr("address","0x664"), -Attr("insn","b.eq #0x18")]), EQ(Var("ZF",Imm(1)),Int(1,1)), -Direct(Tid(578, "%00000242"))), Goto(Tid(1_555, "%00000613"), Attrs([]), - Int(1,1), Direct(Tid(939, "%000003ab")))])), Blk(Tid(939, "%000003ab"), - Attrs([Attr("address","0x668")]), Phis([]), Defs([Def(Tid(942, "%000003ae"), - Attrs([Attr("address","0x668"), Attr("insn","adrp x1, #65536")]), - Var("R1",Imm(64)), Int(65536,64)), Def(Tid(949, "%000003b5"), - Attrs([Attr("address","0x66C"), Attr("insn","ldr x1, [x1, #0xfd8]")]), - Var("R1",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R1",Imm(64)),Int(4056,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(954, "%000003ba"), Attrs([Attr("address","0x670"), -Attr("insn","cbz x1, #0xc")]), EQ(Var("R1",Imm(64)),Int(0,64)), -Direct(Tid(578, "%00000242"))), Goto(Tid(1_556, "%00000614"), Attrs([]), - Int(1,1), Direct(Tid(958, "%000003be")))])), Blk(Tid(578, "%00000242"), - Attrs([Attr("address","0x67C")]), Phis([]), Defs([]), -Jmps([Call(Tid(586, "%0000024a"), Attrs([Attr("address","0x67C"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))])), -Blk(Tid(958, "%000003be"), Attrs([Attr("address","0x674")]), Phis([]), -Defs([Def(Tid(962, "%000003c2"), Attrs([Attr("address","0x674"), -Attr("insn","mov x16, x1")]), Var("R16",Imm(64)), Var("R1",Imm(64)))]), -Jmps([Call(Tid(967, "%000003c7"), Attrs([Attr("address","0x678"), -Attr("insn","br x16")]), Int(1,1), (Indirect(Var("R16",Imm(64))),))]))])), -Sub(Tid(1_524, "@frame_dummy"), Attrs([Attr("c.proto","signed (*)(void)"), -Attr("address","0x710")]), "frame_dummy", Args([Arg(Tid(1_574, "%00000626"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("frame_dummy_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(738, "@frame_dummy"), - Attrs([Attr("address","0x710")]), Phis([]), Defs([]), -Jmps([Call(Tid(740, "%000002e4"), Attrs([Attr("address","0x710"), -Attr("insn","b #-0x90")]), Int(1,1), -(Direct(Tid(1_528, "@register_tm_clones")),))]))])), Sub(Tid(1_525, "@main"), - Attrs([Attr("c.proto","signed (*)(signed argc, const char** argv)"), -Attr("address","0x714")]), "main", Args([Arg(Tid(1_575, "%00000627"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("main_argc",Imm(32)), -LOW(32,Var("R0",Imm(64))), In()), Arg(Tid(1_576, "%00000628"), - Attrs([Attr("c.layout","**[char : 8]"), Attr("c.data","Top:u8 ptr ptr"), -Attr("c.type"," const char**")]), Var("main_argv",Imm(64)), -Var("R1",Imm(64)), Both()), Arg(Tid(1_577, "%00000629"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("main_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(742, "@main"), - Attrs([Attr("address","0x714")]), Phis([]), Defs([Def(Tid(746, "%000002ea"), - Attrs([Attr("address","0x714"), Attr("insn","sub sp, sp, #0x10")]), - Var("R31",Imm(64)), PLUS(Var("R31",Imm(64)),Int(18446744073709551600,64))), -Def(Tid(751, "%000002ef"), Attrs([Attr("address","0x718"), -Attr("insn","adrp x0, #69632")]), Var("R0",Imm(64)), Int(69632,64)), -Def(Tid(757, "%000002f5"), Attrs([Attr("address","0x71C"), -Attr("insn","add x0, x0, #0x18")]), Var("R0",Imm(64)), -PLUS(Var("R0",Imm(64)),Int(24,64))), Def(Tid(764, "%000002fc"), - Attrs([Attr("address","0x720"), Attr("insn","ldr w0, [x0]")]), - Var("R0",Imm(64)), -UNSIGNED(64,Load(Var("mem",Mem(64,8)),Var("R0",Imm(64)),LittleEndian(),32))), -Def(Tid(772, "%00000304"), Attrs([Attr("address","0x724"), -Attr("insn","str w0, [sp, #0xc]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(12,64)),Extract(31,0,Var("R0",Imm(64))),LittleEndian(),32)), -Def(Tid(777, "%00000309"), Attrs([Attr("address","0x728"), -Attr("insn","adrp x0, #69632")]), Var("R0",Imm(64)), Int(69632,64)), -Def(Tid(783, "%0000030f"), Attrs([Attr("address","0x72C"), -Attr("insn","add x0, x0, #0x14")]), Var("R0",Imm(64)), -PLUS(Var("R0",Imm(64)),Int(20,64))), Def(Tid(790, "%00000316"), - Attrs([Attr("address","0x730"), Attr("insn","ldr w0, [x0]")]), - Var("R0",Imm(64)), -UNSIGNED(64,Load(Var("mem",Mem(64,8)),Var("R0",Imm(64)),LittleEndian(),32))), -Def(Tid(796, "%0000031c"), Attrs([Attr("address","0x734"), -Attr("insn","cmp w0, #0x0")]), Var("#4",Imm(32)), -PLUS(Extract(31,0,Var("R0",Imm(64))),Int(4294967295,32))), -Def(Tid(801, "%00000321"), Attrs([Attr("address","0x734"), -Attr("insn","cmp w0, #0x0")]), Var("VF",Imm(1)), -NEQ(SIGNED(33,PLUS(Var("#4",Imm(32)),Int(1,32))),PLUS(SIGNED(33,Extract(31,0,Var("R0",Imm(64)))),Int(0,33)))), -Def(Tid(806, "%00000326"), Attrs([Attr("address","0x734"), -Attr("insn","cmp w0, #0x0")]), Var("CF",Imm(1)), -NEQ(UNSIGNED(33,PLUS(Var("#4",Imm(32)),Int(1,32))),PLUS(UNSIGNED(33,Extract(31,0,Var("R0",Imm(64)))),Int(4294967296,33)))), -Def(Tid(810, "%0000032a"), Attrs([Attr("address","0x734"), -Attr("insn","cmp w0, #0x0")]), Var("ZF",Imm(1)), -EQ(PLUS(Var("#4",Imm(32)),Int(1,32)),Int(0,32))), Def(Tid(814, "%0000032e"), - Attrs([Attr("address","0x734"), Attr("insn","cmp w0, #0x0")]), - Var("NF",Imm(1)), Extract(31,31,PLUS(Var("#4",Imm(32)),Int(1,32))))]), -Jmps([Goto(Tid(820, "%00000334"), Attrs([Attr("address","0x738"), -Attr("insn","b.ne #0xc")]), NEQ(Var("ZF",Imm(1)),Int(1,1)), -Direct(Tid(818, "%00000332"))), Goto(Tid(1_557, "%00000615"), Attrs([]), - Int(1,1), Direct(Tid(841, "%00000349")))])), Blk(Tid(818, "%00000332"), - Attrs([Attr("address","0x744")]), Phis([]), Defs([Def(Tid(828, "%0000033c"), - Attrs([Attr("address","0x744"), Attr("insn","ldr w0, [sp, #0xc]")]), - Var("R0",Imm(64)), -UNSIGNED(64,Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(12,64)),LittleEndian(),32)))]), -Jmps([Goto(Tid(1_558, "%00000616"), Attrs([]), Int(1,1), -Direct(Tid(830, "%0000033e")))])), Blk(Tid(841, "%00000349"), - Attrs([Attr("address","0x73C")]), Phis([]), Defs([Def(Tid(844, "%0000034c"), - Attrs([Attr("address","0x73C"), Attr("insn","mov w0, #0x0")]), - Var("R0",Imm(64)), Int(0,64))]), Jmps([Goto(Tid(848, "%00000350"), - Attrs([Attr("address","0x740"), Attr("insn","b #0x8")]), Int(1,1), -Direct(Tid(830, "%0000033e")))])), Blk(Tid(830, "%0000033e"), - Attrs([Attr("address","0x748")]), Phis([]), Defs([Def(Tid(834, "%00000342"), - Attrs([Attr("address","0x748"), Attr("insn","add sp, sp, #0x10")]), - Var("R31",Imm(64)), PLUS(Var("R31",Imm(64)),Int(16,64)))]), -Jmps([Call(Tid(839, "%00000347"), Attrs([Attr("address","0x74C"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))]))])), -Sub(Tid(1_528, "@register_tm_clones"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x680")]), - "register_tm_clones", Args([Arg(Tid(1_578, "%0000062a"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("register_tm_clones_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(588, "@register_tm_clones"), Attrs([Attr("address","0x680")]), - Phis([]), Defs([Def(Tid(591, "%0000024f"), Attrs([Attr("address","0x680"), -Attr("insn","adrp x0, #69632")]), Var("R0",Imm(64)), Int(69632,64)), -Def(Tid(597, "%00000255"), Attrs([Attr("address","0x684"), -Attr("insn","add x0, x0, #0x10")]), Var("R0",Imm(64)), -PLUS(Var("R0",Imm(64)),Int(16,64))), Def(Tid(602, "%0000025a"), - Attrs([Attr("address","0x688"), Attr("insn","adrp x1, #69632")]), - Var("R1",Imm(64)), Int(69632,64)), Def(Tid(608, "%00000260"), - Attrs([Attr("address","0x68C"), Attr("insn","add x1, x1, #0x10")]), - Var("R1",Imm(64)), PLUS(Var("R1",Imm(64)),Int(16,64))), -Def(Tid(615, "%00000267"), Attrs([Attr("address","0x690"), -Attr("insn","sub x1, x1, x0")]), Var("R1",Imm(64)), -PLUS(PLUS(Var("R1",Imm(64)),NOT(Var("R0",Imm(64)))),Int(1,64))), -Def(Tid(621, "%0000026d"), Attrs([Attr("address","0x694"), -Attr("insn","lsr x2, x1, #63")]), Var("R2",Imm(64)), -Concat(Int(0,63),Extract(63,63,Var("R1",Imm(64))))), -Def(Tid(628, "%00000274"), Attrs([Attr("address","0x698"), -Attr("insn","add x1, x2, x1, asr #3")]), Var("R1",Imm(64)), -PLUS(Var("R2",Imm(64)),ARSHIFT(Var("R1",Imm(64)),Int(3,3)))), -Def(Tid(634, "%0000027a"), Attrs([Attr("address","0x69C"), -Attr("insn","asr x1, x1, #1")]), Var("R1",Imm(64)), -SIGNED(64,Extract(63,1,Var("R1",Imm(64)))))]), -Jmps([Goto(Tid(640, "%00000280"), Attrs([Attr("address","0x6A0"), -Attr("insn","cbz x1, #0x18")]), EQ(Var("R1",Imm(64)),Int(0,64)), -Direct(Tid(638, "%0000027e"))), Goto(Tid(1_559, "%00000617"), Attrs([]), - Int(1,1), Direct(Tid(909, "%0000038d")))])), Blk(Tid(909, "%0000038d"), - Attrs([Attr("address","0x6A4")]), Phis([]), Defs([Def(Tid(912, "%00000390"), - Attrs([Attr("address","0x6A4"), Attr("insn","adrp x2, #65536")]), - Var("R2",Imm(64)), Int(65536,64)), Def(Tid(919, "%00000397"), - Attrs([Attr("address","0x6A8"), Attr("insn","ldr x2, [x2, #0xff8]")]), - Var("R2",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R2",Imm(64)),Int(4088,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(924, "%0000039c"), Attrs([Attr("address","0x6AC"), -Attr("insn","cbz x2, #0xc")]), EQ(Var("R2",Imm(64)),Int(0,64)), -Direct(Tid(638, "%0000027e"))), Goto(Tid(1_560, "%00000618"), Attrs([]), - Int(1,1), Direct(Tid(928, "%000003a0")))])), Blk(Tid(638, "%0000027e"), - Attrs([Attr("address","0x6B8")]), Phis([]), Defs([]), -Jmps([Call(Tid(646, "%00000286"), Attrs([Attr("address","0x6B8"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))])), -Blk(Tid(928, "%000003a0"), Attrs([Attr("address","0x6B0")]), Phis([]), -Defs([Def(Tid(932, "%000003a4"), Attrs([Attr("address","0x6B0"), -Attr("insn","mov x16, x2")]), Var("R16",Imm(64)), Var("R2",Imm(64)))]), -Jmps([Call(Tid(937, "%000003a9"), Attrs([Attr("address","0x6B4"), -Attr("insn","br x16")]), Int(1,1), -(Indirect(Var("R16",Imm(64))),))]))]))]))) \ No newline at end of file diff --git a/src/test/correct/basic_function_call_reader/gcc/basic_function_call_reader.bir b/src/test/correct/basic_function_call_reader/gcc/basic_function_call_reader.bir deleted file mode 100644 index ce2841d22..000000000 --- a/src/test/correct/basic_function_call_reader/gcc/basic_function_call_reader.bir +++ /dev/null @@ -1,249 +0,0 @@ -00000619: program -000005e3: sub __cxa_finalize(__cxa_finalize_result) -0000061a: __cxa_finalize_result :: out u32 = low:32[R0] - -00000389: -00000481: R16 := 0x10000 -00000488: R17 := mem[R16 + 0xFB8, el]:u64 -0000048e: R16 := R16 + 0xFB8 -00000493: call R17 with noreturn - -000005e4: sub __do_global_dtors_aux(__do_global_dtors_aux_result) -0000061b: __do_global_dtors_aux_result :: out u32 = low:32[R0] - -0000028a: -0000028e: #3 := R31 - 0x20 -00000294: mem := mem with [#3, el]:u64 <- R29 -0000029a: mem := mem with [#3 + 8, el]:u64 <- R30 -0000029e: R31 := #3 -000002a4: R29 := R31 -000002ac: mem := mem with [R31 + 0x10, el]:u64 <- R19 -000002b1: R19 := 0x11000 -000002b8: R0 := pad:64[mem[R19 + 0x10]] -000002bf: when 31:0[R0] <> 0 goto %000002bd -0000060d: goto %00000352 - -00000352: -00000355: R0 := 0x10000 -0000035c: R0 := mem[R0 + 0xFE0, el]:u64 -00000362: when R0 = 0 goto %00000360 -0000060e: goto %00000379 - -00000379: -0000037c: R0 := 0x11000 -00000383: R0 := mem[R0 + 8, el]:u64 -00000388: R30 := 0x6F0 -0000038b: call @__cxa_finalize with return %00000360 - -00000360: -00000368: R30 := 0x6F4 -0000036a: call @deregister_tm_clones with return %0000036c - -0000036c: -0000036f: R0 := 1 -00000377: mem := mem with [R19 + 0x10] <- 7:0[R0] -0000060f: goto %000002bd - -000002bd: -000002c7: R19 := mem[R31 + 0x10, el]:u64 -000002ce: R29 := mem[R31, el]:u64 -000002d3: R30 := mem[R31 + 8, el]:u64 -000002d7: R31 := R31 + 0x20 -000002dc: call R30 with noreturn - -000005e8: sub __libc_start_main(__libc_start_main_main, __libc_start_main_arg2, __libc_start_main_arg3, __libc_start_main_auxv, __libc_start_main_result) -0000061c: __libc_start_main_main :: in u64 = R0 -0000061d: __libc_start_main_arg2 :: in u32 = low:32[R1] -0000061e: __libc_start_main_arg3 :: in out u64 = R2 -0000061f: __libc_start_main_auxv :: in out u64 = R3 -00000620: __libc_start_main_result :: out u32 = low:32[R0] - -000001e3: -0000046b: R16 := 0x10000 -00000472: R17 := mem[R16 + 0xFB0, el]:u64 -00000478: R16 := R16 + 0xFB0 -0000047d: call R17 with noreturn - -000005e9: sub _fini(_fini_result) -00000621: _fini_result :: out u32 = low:32[R0] - -0000001f: -00000025: #0 := R31 - 0x10 -0000002b: mem := mem with [#0, el]:u64 <- R29 -00000031: mem := mem with [#0 + 8, el]:u64 <- R30 -00000035: R31 := #0 -0000003b: R29 := R31 -00000042: R29 := mem[R31, el]:u64 -00000047: R30 := mem[R31 + 8, el]:u64 -0000004b: R31 := R31 + 0x10 -00000050: call R30 with noreturn - -000005ea: sub _init(_init_result) -00000622: _init_result :: out u32 = low:32[R0] - -00000536: -0000053c: #6 := R31 - 0x10 -00000542: mem := mem with [#6, el]:u64 <- R29 -00000548: mem := mem with [#6 + 8, el]:u64 <- R30 -0000054c: R31 := #6 -00000552: R29 := R31 -00000557: R30 := 0x590 -00000559: call @call_weak_fn with return %0000055b - -0000055b: -00000560: R29 := mem[R31, el]:u64 -00000565: R30 := mem[R31 + 8, el]:u64 -00000569: R31 := R31 + 0x10 -0000056e: call R30 with noreturn - -000005eb: sub _start(_start_result) -00000623: _start_result :: out u32 = low:32[R0] - -000001a4: -000001a9: R29 := 0 -000001ae: R30 := 0 -000001b4: R5 := R0 -000001bb: R1 := mem[R31, el]:u64 -000001c1: R2 := R31 + 8 -000001c7: R6 := R31 -000001cc: R0 := 0x10000 -000001d3: R0 := mem[R0 + 0xFF0, el]:u64 -000001d8: R3 := 0 -000001dd: R4 := 0 -000001e2: R30 := 0x630 -000001e5: call @__libc_start_main with return %000001e7 - -000001e7: -000001ea: R30 := 0x634 -000001ed: call @abort with return %00000610 - -00000610: -00000611: call @call_weak_fn with noreturn - -000005ee: sub abort() - - -000001eb: -000004ad: R16 := 0x10000 -000004b4: R17 := mem[R16 + 0xFC8, el]:u64 -000004ba: R16 := R16 + 0xFC8 -000004bf: call R17 with noreturn - -000005ef: sub call_weak_fn(call_weak_fn_result) -00000624: call_weak_fn_result :: out u32 = low:32[R0] - -000001ef: -000001f2: R0 := 0x10000 -000001f9: R0 := mem[R0 + 0xFE8, el]:u64 -000001ff: when R0 = 0 goto %000001fd -00000612: goto %000003c9 - -000001fd: -00000205: call R30 with noreturn - -000003c9: -000003cc: goto @__gmon_start__ - -000003ca: -00000497: R16 := 0x10000 -0000049e: R17 := mem[R16 + 0xFC0, el]:u64 -000004a4: R16 := R16 + 0xFC0 -000004a9: call R17 with noreturn - -000005f1: sub deregister_tm_clones(deregister_tm_clones_result) -00000625: deregister_tm_clones_result :: out u32 = low:32[R0] - -0000020b: -0000020e: R0 := 0x11000 -00000214: R0 := R0 + 0x10 -00000219: R1 := 0x11000 -0000021f: R1 := R1 + 0x10 -00000225: #1 := ~R0 -0000022a: #2 := R1 + ~R0 -00000230: VF := extend:65[#2 + 1] <> extend:65[R1] + extend:65[#1] + 1 -00000236: CF := pad:65[#2 + 1] <> pad:65[R1] + pad:65[#1] + 1 -0000023a: ZF := #2 + 1 = 0 -0000023e: NF := 63:63[#2 + 1] -00000244: when ZF goto %00000242 -00000613: goto %000003ab - -000003ab: -000003ae: R1 := 0x10000 -000003b5: R1 := mem[R1 + 0xFD8, el]:u64 -000003ba: when R1 = 0 goto %00000242 -00000614: goto %000003be - -00000242: -0000024a: call R30 with noreturn - -000003be: -000003c2: R16 := R1 -000003c7: call R16 with noreturn - -000005f4: sub frame_dummy(frame_dummy_result) -00000626: frame_dummy_result :: out u32 = low:32[R0] - -000002e2: -000002e4: call @register_tm_clones with noreturn - -000005f5: sub main(main_argc, main_argv, main_result) -00000627: main_argc :: in u32 = low:32[R0] -00000628: main_argv :: in out u64 = R1 -00000629: main_result :: out u32 = low:32[R0] - -000002e6: -000002ea: R31 := R31 - 0x10 -000002ef: R0 := 0x11000 -000002f5: R0 := R0 + 0x18 -000002fc: R0 := pad:64[mem[R0, el]:u32] -00000304: mem := mem with [R31 + 0xC, el]:u32 <- 31:0[R0] -00000309: R0 := 0x11000 -0000030f: R0 := R0 + 0x14 -00000316: R0 := pad:64[mem[R0, el]:u32] -0000031c: #4 := 31:0[R0] - 1 -00000321: VF := extend:33[#4 + 1] <> extend:33[31:0[R0]] + 0 -00000326: CF := pad:33[#4 + 1] <> pad:33[31:0[R0]] - 0x100000000 -0000032a: ZF := #4 + 1 = 0 -0000032e: NF := 31:31[#4 + 1] -00000334: when ZF <> 1 goto %00000332 -00000615: goto %00000349 - -00000332: -0000033c: R0 := pad:64[mem[R31 + 0xC, el]:u32] -00000616: goto %0000033e - -00000349: -0000034c: R0 := 0 -00000350: goto %0000033e - -0000033e: -00000342: R31 := R31 + 0x10 -00000347: call R30 with noreturn - -000005f8: sub register_tm_clones(register_tm_clones_result) -0000062a: register_tm_clones_result :: out u32 = low:32[R0] - -0000024c: -0000024f: R0 := 0x11000 -00000255: R0 := R0 + 0x10 -0000025a: R1 := 0x11000 -00000260: R1 := R1 + 0x10 -00000267: R1 := R1 + ~R0 + 1 -0000026d: R2 := 0.63:63[R1] -00000274: R1 := R2 + (R1 ~>> 3) -0000027a: R1 := extend:64[63:1[R1]] -00000280: when R1 = 0 goto %0000027e -00000617: goto %0000038d - -0000038d: -00000390: R2 := 0x10000 -00000397: R2 := mem[R2 + 0xFF8, el]:u64 -0000039c: when R2 = 0 goto %0000027e -00000618: goto %000003a0 - -0000027e: -00000286: call R30 with noreturn - -000003a0: -000003a4: R16 := R2 -000003a9: call R16 with noreturn diff --git a/src/test/correct/basic_function_call_reader/gcc/basic_function_call_reader.expected b/src/test/correct/basic_function_call_reader/gcc/basic_function_call_reader.expected index 003728e4a..38e082cf4 100644 --- a/src/test/correct/basic_function_call_reader/gcc/basic_function_call_reader.expected +++ b/src/test/correct/basic_function_call_reader/gcc/basic_function_call_reader.expected @@ -91,7 +91,7 @@ implementation {:extern} guarantee_reflexive() assert (memory_load32_le(mem, $y_addr) == memory_load32_le(mem, $y_addr)); } -procedure main_1812(); +procedure main(); modifies CF, Gamma_CF, Gamma_NF, Gamma_R0, Gamma_R31, Gamma_VF, Gamma_ZF, Gamma_mem, Gamma_stack, NF, R0, R31, VF, ZF, mem, stack; free requires (memory_load64_le(mem, 69632bv64) == 0bv64); free requires (memory_load64_le(mem, 69640bv64) == 69640bv64); @@ -108,31 +108,31 @@ procedure main_1812(); free ensures (memory_load64_le(mem, 69616bv64) == 1812bv64); free ensures (memory_load64_le(mem, 69640bv64) == 69640bv64); -implementation main_1812() +implementation main() { var #4: bv32; + var $load$18: bv32; + var $load$19: bv32; + var $load$20: bv32; var Gamma_#4: bool; - var Gamma_load18: bool; - var Gamma_load19: bool; - var Gamma_load20: bool; - var load18: bv32; - var load19: bv32; - var load20: bv32; + var Gamma_$load$18: bool; + var Gamma_$load$19: bool; + var Gamma_$load$20: bool; lmain: assume {:captureState "lmain"} true; R31, Gamma_R31 := bvadd64(R31, 18446744073709551600bv64), Gamma_R31; R0, Gamma_R0 := 69632bv64, true; R0, Gamma_R0 := bvadd64(R0, 24bv64), Gamma_R0; call rely(); - load18, Gamma_load18 := memory_load32_le(mem, R0), (gamma_load32(Gamma_mem, R0) || L(mem, R0)); - R0, Gamma_R0 := zero_extend32_32(load18), Gamma_load18; + $load$18, Gamma_$load$18 := memory_load32_le(mem, R0), (gamma_load32(Gamma_mem, R0) || L(mem, R0)); + R0, Gamma_R0 := zero_extend32_32($load$18), Gamma_$load$18; stack, Gamma_stack := memory_store32_le(stack, bvadd64(R31, 12bv64), R0[32:0]), gamma_store32(Gamma_stack, bvadd64(R31, 12bv64), Gamma_R0); assume {:captureState "%00000304"} true; R0, Gamma_R0 := 69632bv64, true; R0, Gamma_R0 := bvadd64(R0, 20bv64), Gamma_R0; call rely(); - load19, Gamma_load19 := memory_load32_le(mem, R0), (gamma_load32(Gamma_mem, R0) || L(mem, R0)); - R0, Gamma_R0 := zero_extend32_32(load19), Gamma_load19; + $load$19, Gamma_$load$19 := memory_load32_le(mem, R0), (gamma_load32(Gamma_mem, R0) || L(mem, R0)); + R0, Gamma_R0 := zero_extend32_32($load$19), Gamma_$load$19; #4, Gamma_#4 := bvadd32(R0[32:0], 4294967295bv32), Gamma_R0; VF, Gamma_VF := bvnot1(bvcomp33(sign_extend1_32(bvadd32(#4, 1bv32)), bvadd33(sign_extend1_32(R0[32:0]), 0bv33))), (Gamma_R0 && Gamma_#4); CF, Gamma_CF := bvnot1(bvcomp33(zero_extend1_32(bvadd32(#4, 1bv32)), bvadd33(zero_extend1_32(R0[32:0]), 4294967296bv33))), (Gamma_R0 && Gamma_#4); @@ -140,29 +140,29 @@ implementation main_1812() NF, Gamma_NF := bvadd32(#4, 1bv32)[32:31], Gamma_#4; assert Gamma_ZF; goto lmain_goto_l00000332, lmain_goto_l00000349; - lmain_goto_l00000349: - assume {:captureState "lmain_goto_l00000349"} true; - assume (bvnot1(bvcomp1(ZF, 1bv1)) == 0bv1); - R0, Gamma_R0 := 0bv64, true; - goto l00000349; + l00000332: + assume {:captureState "l00000332"} true; + $load$20, Gamma_$load$20 := memory_load32_le(stack, bvadd64(R31, 12bv64)), gamma_load32(Gamma_stack, bvadd64(R31, 12bv64)); + R0, Gamma_R0 := zero_extend32_32($load$20), Gamma_$load$20; + goto l0000033e; l00000349: assume {:captureState "l00000349"} true; + R0, Gamma_R0 := 0bv64, true; goto l0000033e; + l0000033e: + assume {:captureState "l0000033e"} true; + R31, Gamma_R31 := bvadd64(R31, 16bv64), Gamma_R31; + goto main_basil_return; lmain_goto_l00000332: assume {:captureState "lmain_goto_l00000332"} true; assume (bvnot1(bvcomp1(ZF, 1bv1)) != 0bv1); - load20, Gamma_load20 := memory_load32_le(stack, bvadd64(R31, 12bv64)), gamma_load32(Gamma_stack, bvadd64(R31, 12bv64)); - R0, Gamma_R0 := zero_extend32_32(load20), Gamma_load20; goto l00000332; - l00000332: - assume {:captureState "l00000332"} true; - goto l0000033e; - l0000033e: - assume {:captureState "l0000033e"} true; - R31, Gamma_R31 := bvadd64(R31, 16bv64), Gamma_R31; - goto main_1812_basil_return; - main_1812_basil_return: - assume {:captureState "main_1812_basil_return"} true; + lmain_goto_l00000349: + assume {:captureState "lmain_goto_l00000349"} true; + assume (bvnot1(bvcomp1(ZF, 1bv1)) == 0bv1); + goto l00000349; + main_basil_return: + assume {:captureState "main_basil_return"} true; return; } diff --git a/src/test/correct/basic_function_call_reader/gcc/basic_function_call_reader.gts b/src/test/correct/basic_function_call_reader/gcc/basic_function_call_reader.gts deleted file mode 100644 index 760bad291..000000000 Binary files a/src/test/correct/basic_function_call_reader/gcc/basic_function_call_reader.gts and /dev/null differ diff --git a/src/test/correct/basic_function_call_reader/gcc/basic_function_call_reader.md5sum b/src/test/correct/basic_function_call_reader/gcc/basic_function_call_reader.md5sum new file mode 100644 index 000000000..dbe7268e6 --- /dev/null +++ b/src/test/correct/basic_function_call_reader/gcc/basic_function_call_reader.md5sum @@ -0,0 +1,5 @@ +1f638aebcc517c0b98b8559f2fc03078 correct/basic_function_call_reader/gcc/a.out +52198c0749050dfb33896372fa46d481 correct/basic_function_call_reader/gcc/basic_function_call_reader.adt +a978ea655685acc50e30a746d0376a85 correct/basic_function_call_reader/gcc/basic_function_call_reader.bir +aeee030cf64b7f622d13dc3048e7c426 correct/basic_function_call_reader/gcc/basic_function_call_reader.relf +68c145c58c9e5dffaabe578a145a4277 correct/basic_function_call_reader/gcc/basic_function_call_reader.gts diff --git a/src/test/correct/basic_function_call_reader/gcc/basic_function_call_reader.relf b/src/test/correct/basic_function_call_reader/gcc/basic_function_call_reader.relf deleted file mode 100644 index 7fbc98d54..000000000 --- a/src/test/correct/basic_function_call_reader/gcc/basic_function_call_reader.relf +++ /dev/null @@ -1,122 +0,0 @@ - -Relocation section '.rela.dyn' at offset 0x460 contains 8 entries: - Offset Info Type Symbol's Value Symbol's Name + Addend -0000000000010d98 0000000000000403 R_AARCH64_RELATIVE 710 -0000000000010da0 0000000000000403 R_AARCH64_RELATIVE 6c0 -0000000000010ff0 0000000000000403 R_AARCH64_RELATIVE 714 -0000000000011008 0000000000000403 R_AARCH64_RELATIVE 11008 -0000000000010fd8 0000000400000401 R_AARCH64_GLOB_DAT 0000000000000000 _ITM_deregisterTMCloneTable + 0 -0000000000010fe0 0000000500000401 R_AARCH64_GLOB_DAT 0000000000000000 __cxa_finalize@GLIBC_2.17 + 0 -0000000000010fe8 0000000600000401 R_AARCH64_GLOB_DAT 0000000000000000 __gmon_start__ + 0 -0000000000010ff8 0000000800000401 R_AARCH64_GLOB_DAT 0000000000000000 _ITM_registerTMCloneTable + 0 - -Relocation section '.rela.plt' at offset 0x520 contains 4 entries: - Offset Info Type Symbol's Value Symbol's Name + Addend -0000000000010fb0 0000000300000402 R_AARCH64_JUMP_SLOT 0000000000000000 __libc_start_main@GLIBC_2.34 + 0 -0000000000010fb8 0000000500000402 R_AARCH64_JUMP_SLOT 0000000000000000 __cxa_finalize@GLIBC_2.17 + 0 -0000000000010fc0 0000000600000402 R_AARCH64_JUMP_SLOT 0000000000000000 __gmon_start__ + 0 -0000000000010fc8 0000000700000402 R_AARCH64_JUMP_SLOT 0000000000000000 abort@GLIBC_2.17 + 0 - -Symbol table '.dynsym' contains 9 entries: - Num: Value Size Type Bind Vis Ndx Name - 0: 0000000000000000 0 NOTYPE LOCAL DEFAULT UND - 1: 0000000000000580 0 SECTION LOCAL DEFAULT 11 .init - 2: 0000000000011000 0 SECTION LOCAL DEFAULT 22 .data - 3: 0000000000000000 0 FUNC GLOBAL DEFAULT UND __libc_start_main@GLIBC_2.34 (2) - 4: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_deregisterTMCloneTable - 5: 0000000000000000 0 FUNC WEAK DEFAULT UND __cxa_finalize@GLIBC_2.17 (3) - 6: 0000000000000000 0 NOTYPE WEAK DEFAULT UND __gmon_start__ - 7: 0000000000000000 0 FUNC GLOBAL DEFAULT UND abort@GLIBC_2.17 (3) - 8: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_registerTMCloneTable - -Symbol table '.symtab' contains 89 entries: - Num: Value Size Type Bind Vis Ndx Name - 0: 0000000000000000 0 NOTYPE LOCAL DEFAULT UND - 1: 0000000000000238 0 SECTION LOCAL DEFAULT 1 .interp - 2: 0000000000000254 0 SECTION LOCAL DEFAULT 2 .note.gnu.build-id - 3: 0000000000000278 0 SECTION LOCAL DEFAULT 3 .note.ABI-tag - 4: 0000000000000298 0 SECTION LOCAL DEFAULT 4 .gnu.hash - 5: 00000000000002b8 0 SECTION LOCAL DEFAULT 5 .dynsym - 6: 0000000000000390 0 SECTION LOCAL DEFAULT 6 .dynstr - 7: 000000000000041e 0 SECTION LOCAL DEFAULT 7 .gnu.version - 8: 0000000000000430 0 SECTION LOCAL DEFAULT 8 .gnu.version_r - 9: 0000000000000460 0 SECTION LOCAL DEFAULT 9 .rela.dyn - 10: 0000000000000520 0 SECTION LOCAL DEFAULT 10 .rela.plt - 11: 0000000000000580 0 SECTION LOCAL DEFAULT 11 .init - 12: 00000000000005a0 0 SECTION LOCAL DEFAULT 12 .plt - 13: 0000000000000600 0 SECTION LOCAL DEFAULT 13 .text - 14: 0000000000000750 0 SECTION LOCAL DEFAULT 14 .fini - 15: 0000000000000764 0 SECTION LOCAL DEFAULT 15 .rodata - 16: 0000000000000768 0 SECTION LOCAL DEFAULT 16 .eh_frame_hdr - 17: 00000000000007a8 0 SECTION LOCAL DEFAULT 17 .eh_frame - 18: 0000000000010d98 0 SECTION LOCAL DEFAULT 18 .init_array - 19: 0000000000010da0 0 SECTION LOCAL DEFAULT 19 .fini_array - 20: 0000000000010da8 0 SECTION LOCAL DEFAULT 20 .dynamic - 21: 0000000000010f98 0 SECTION LOCAL DEFAULT 21 .got - 22: 0000000000011000 0 SECTION LOCAL DEFAULT 22 .data - 23: 0000000000011010 0 SECTION LOCAL DEFAULT 23 .bss - 24: 0000000000000000 0 SECTION LOCAL DEFAULT 24 .comment - 25: 0000000000000000 0 FILE LOCAL DEFAULT ABS Scrt1.o - 26: 0000000000000278 0 NOTYPE LOCAL DEFAULT 3 $d - 27: 0000000000000278 32 OBJECT LOCAL DEFAULT 3 __abi_tag - 28: 0000000000000600 0 NOTYPE LOCAL DEFAULT 13 $x - 29: 00000000000007bc 0 NOTYPE LOCAL DEFAULT 17 $d - 30: 0000000000000764 0 NOTYPE LOCAL DEFAULT 15 $d - 31: 0000000000000000 0 FILE LOCAL DEFAULT ABS crti.o - 32: 0000000000000634 0 NOTYPE LOCAL DEFAULT 13 $x - 33: 0000000000000634 20 FUNC LOCAL DEFAULT 13 call_weak_fn - 34: 0000000000000580 0 NOTYPE LOCAL DEFAULT 11 $x - 35: 0000000000000750 0 NOTYPE LOCAL DEFAULT 14 $x - 36: 0000000000000000 0 FILE LOCAL DEFAULT ABS crtn.o - 37: 0000000000000590 0 NOTYPE LOCAL DEFAULT 11 $x - 38: 000000000000075c 0 NOTYPE LOCAL DEFAULT 14 $x - 39: 0000000000000000 0 FILE LOCAL DEFAULT ABS crtstuff.c - 40: 0000000000000650 0 NOTYPE LOCAL DEFAULT 13 $x - 41: 0000000000000650 0 FUNC LOCAL DEFAULT 13 deregister_tm_clones - 42: 0000000000000680 0 FUNC LOCAL DEFAULT 13 register_tm_clones - 43: 0000000000011008 0 NOTYPE LOCAL DEFAULT 22 $d - 44: 00000000000006c0 0 FUNC LOCAL DEFAULT 13 __do_global_dtors_aux - 45: 0000000000011010 1 OBJECT LOCAL DEFAULT 23 completed.0 - 46: 0000000000010da0 0 NOTYPE LOCAL DEFAULT 19 $d - 47: 0000000000010da0 0 OBJECT LOCAL DEFAULT 19 __do_global_dtors_aux_fini_array_entry - 48: 0000000000000710 0 FUNC LOCAL DEFAULT 13 frame_dummy - 49: 0000000000010d98 0 NOTYPE LOCAL DEFAULT 18 $d - 50: 0000000000010d98 0 OBJECT LOCAL DEFAULT 18 __frame_dummy_init_array_entry - 51: 00000000000007d0 0 NOTYPE LOCAL DEFAULT 17 $d - 52: 0000000000011010 0 NOTYPE LOCAL DEFAULT 23 $d - 53: 0000000000000000 0 FILE LOCAL DEFAULT ABS basic_function_call_reader.c - 54: 0000000000011014 0 NOTYPE LOCAL DEFAULT 23 $d - 55: 0000000000000714 0 NOTYPE LOCAL DEFAULT 13 $x - 56: 0000000000000830 0 NOTYPE LOCAL DEFAULT 17 $d - 57: 0000000000000000 0 FILE LOCAL DEFAULT ABS crtstuff.c - 58: 0000000000000848 0 NOTYPE LOCAL DEFAULT 17 $d - 59: 0000000000000848 0 OBJECT LOCAL DEFAULT 17 __FRAME_END__ - 60: 0000000000000000 0 FILE LOCAL DEFAULT ABS - 61: 0000000000010da8 0 OBJECT LOCAL DEFAULT ABS _DYNAMIC - 62: 0000000000000768 0 NOTYPE LOCAL DEFAULT 16 __GNU_EH_FRAME_HDR - 63: 0000000000010fd0 0 OBJECT LOCAL DEFAULT ABS _GLOBAL_OFFSET_TABLE_ - 64: 00000000000005a0 0 NOTYPE LOCAL DEFAULT 12 $x - 65: 0000000000000000 0 FUNC GLOBAL DEFAULT UND __libc_start_main@GLIBC_2.34 - 66: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_deregisterTMCloneTable - 67: 0000000000011000 0 NOTYPE WEAK DEFAULT 22 data_start - 68: 0000000000011010 0 NOTYPE GLOBAL DEFAULT 23 __bss_start__ - 69: 0000000000000000 0 FUNC WEAK DEFAULT UND __cxa_finalize@GLIBC_2.17 - 70: 0000000000011020 0 NOTYPE GLOBAL DEFAULT 23 _bss_end__ - 71: 0000000000011010 0 NOTYPE GLOBAL DEFAULT 22 _edata - 72: 0000000000011014 4 OBJECT GLOBAL DEFAULT 23 x - 73: 0000000000000750 0 FUNC GLOBAL HIDDEN 14 _fini - 74: 0000000000011020 0 NOTYPE GLOBAL DEFAULT 23 __bss_end__ - 75: 0000000000011000 0 NOTYPE GLOBAL DEFAULT 22 __data_start - 76: 0000000000000000 0 NOTYPE WEAK DEFAULT UND __gmon_start__ - 77: 0000000000011008 0 OBJECT GLOBAL HIDDEN 22 __dso_handle - 78: 0000000000000000 0 FUNC GLOBAL DEFAULT UND abort@GLIBC_2.17 - 79: 0000000000000764 4 OBJECT GLOBAL DEFAULT 15 _IO_stdin_used - 80: 0000000000011020 0 NOTYPE GLOBAL DEFAULT 23 _end - 81: 0000000000000600 52 FUNC GLOBAL DEFAULT 13 _start - 82: 0000000000011020 0 NOTYPE GLOBAL DEFAULT 23 __end__ - 83: 0000000000011018 4 OBJECT GLOBAL DEFAULT 23 y - 84: 0000000000011010 0 NOTYPE GLOBAL DEFAULT 23 __bss_start - 85: 0000000000000714 60 FUNC GLOBAL DEFAULT 13 main - 86: 0000000000011010 0 OBJECT GLOBAL HIDDEN 22 __TMC_END__ - 87: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_registerTMCloneTable - 88: 0000000000000580 0 FUNC GLOBAL HIDDEN 11 _init diff --git a/src/test/correct/basic_function_call_reader/gcc/basic_function_call_reader_gtirb.expected b/src/test/correct/basic_function_call_reader/gcc/basic_function_call_reader_gtirb.expected index c6192d889..4582d95cb 100644 --- a/src/test/correct/basic_function_call_reader/gcc/basic_function_call_reader_gtirb.expected +++ b/src/test/correct/basic_function_call_reader/gcc/basic_function_call_reader_gtirb.expected @@ -89,7 +89,7 @@ implementation {:extern} guarantee_reflexive() assert (memory_load32_le(mem, $y_addr) == memory_load32_le(mem, $y_addr)); } -procedure main_1812(); +procedure main(); modifies CF, Gamma_CF, Gamma_NF, Gamma_R0, Gamma_R31, Gamma_VF, Gamma_ZF, Gamma_mem, Gamma_stack, NF, R0, R31, VF, ZF, mem, stack; free requires (memory_load64_le(mem, 69632bv64) == 0bv64); free requires (memory_load64_le(mem, 69640bv64) == 69640bv64); @@ -106,61 +106,61 @@ procedure main_1812(); free ensures (memory_load64_le(mem, 69616bv64) == 1812bv64); free ensures (memory_load64_le(mem, 69640bv64) == 69640bv64); -implementation main_1812() +implementation main() { - var Cse0__5_3_8: bv32; - var Gamma_Cse0__5_3_8: bool; - var Gamma_load4: bool; - var Gamma_load5: bool; - var Gamma_load6: bool; - var load4: bv32; - var load5: bv32; - var load6: bv32; - main_1812__0__Ux0Q3SQCTAWbVjaRM4YV_w: - assume {:captureState "main_1812__0__Ux0Q3SQCTAWbVjaRM4YV_w"} true; + var $load4: bv32; + var $load5: bv32; + var $load6: bv32; + var Cse0__5$3$8: bv32; + var Gamma_$load4: bool; + var Gamma_$load5: bool; + var Gamma_$load6: bool; + var Gamma_Cse0__5$3$8: bool; + $main$__0__$Ux0Q3SQCTAWbVjaRM4YV_w: + assume {:captureState "$main$__0__$Ux0Q3SQCTAWbVjaRM4YV_w"} true; R31, Gamma_R31 := bvadd64(R31, 18446744073709551600bv64), Gamma_R31; R0, Gamma_R0 := 69632bv64, true; R0, Gamma_R0 := bvadd64(R0, 24bv64), Gamma_R0; call rely(); - load5, Gamma_load5 := memory_load32_le(mem, R0), (gamma_load32(Gamma_mem, R0) || L(mem, R0)); - R0, Gamma_R0 := zero_extend32_32(load5), Gamma_load5; + $load5, Gamma_$load5 := memory_load32_le(mem, R0), (gamma_load32(Gamma_mem, R0) || L(mem, R0)); + R0, Gamma_R0 := zero_extend32_32($load5), Gamma_$load5; stack, Gamma_stack := memory_store32_le(stack, bvadd64(R31, 12bv64), R0[32:0]), gamma_store32(Gamma_stack, bvadd64(R31, 12bv64), Gamma_R0); - assume {:captureState "1828_0"} true; + assume {:captureState "1828$0"} true; R0, Gamma_R0 := 69632bv64, true; R0, Gamma_R0 := bvadd64(R0, 20bv64), Gamma_R0; call rely(); - load6, Gamma_load6 := memory_load32_le(mem, R0), (gamma_load32(Gamma_mem, R0) || L(mem, R0)); - R0, Gamma_R0 := zero_extend32_32(load6), Gamma_load6; - Cse0__5_3_8, Gamma_Cse0__5_3_8 := bvadd32(R0[32:0], 0bv32), Gamma_R0; - VF, Gamma_VF := bvnot1(bvcomp32(Cse0__5_3_8, Cse0__5_3_8)), Gamma_Cse0__5_3_8; - CF, Gamma_CF := bvnot1(bvcomp33(zero_extend1_32(Cse0__5_3_8), bvadd33(zero_extend1_32(R0[32:0]), 4294967296bv33))), (Gamma_R0 && Gamma_Cse0__5_3_8); - ZF, Gamma_ZF := bvcomp32(Cse0__5_3_8, 0bv32), Gamma_Cse0__5_3_8; - NF, Gamma_NF := Cse0__5_3_8[32:31], Gamma_Cse0__5_3_8; + $load6, Gamma_$load6 := memory_load32_le(mem, R0), (gamma_load32(Gamma_mem, R0) || L(mem, R0)); + R0, Gamma_R0 := zero_extend32_32($load6), Gamma_$load6; + Cse0__5$3$8, Gamma_Cse0__5$3$8 := bvadd32(R0[32:0], 0bv32), Gamma_R0; + VF, Gamma_VF := bvnot1(bvcomp32(Cse0__5$3$8, Cse0__5$3$8)), Gamma_Cse0__5$3$8; + CF, Gamma_CF := bvnot1(bvcomp33(zero_extend1_32(Cse0__5$3$8), bvadd33(zero_extend1_32(R0[32:0]), 4294967296bv33))), (Gamma_R0 && Gamma_Cse0__5$3$8); + ZF, Gamma_ZF := bvcomp32(Cse0__5$3$8, 0bv32), Gamma_Cse0__5$3$8; + NF, Gamma_NF := Cse0__5$3$8[32:31], Gamma_Cse0__5$3$8; assert Gamma_ZF; - goto main_1812__0__Ux0Q3SQCTAWbVjaRM4YV_w_goto_main_1812__2__MdKjK9_tS4CwsqOHpUajFA, main_1812__0__Ux0Q3SQCTAWbVjaRM4YV_w_goto_main_1812__1__HbG3EzSzT7SHv80IyKeGnw; - main_1812__0__Ux0Q3SQCTAWbVjaRM4YV_w_goto_main_1812__1__HbG3EzSzT7SHv80IyKeGnw: - assume {:captureState "main_1812__0__Ux0Q3SQCTAWbVjaRM4YV_w_goto_main_1812__1__HbG3EzSzT7SHv80IyKeGnw"} true; - assume (!(!(ZF == 1bv1))); + goto $main$__0__$Ux0Q3SQCTAWbVjaRM4YV_w_goto_$main$__2__$MdKjK9_tS4CwsqOHpUajFA, $main$__0__$Ux0Q3SQCTAWbVjaRM4YV_w_goto_$main$__1__$HbG3EzSzT7SHv80IyKeGnw; + $main$__1__$HbG3EzSzT7SHv80IyKeGnw: + assume {:captureState "$main$__1__$HbG3EzSzT7SHv80IyKeGnw"} true; R0, Gamma_R0 := 0bv64, true; - goto main_1812__1__HbG3EzSzT7SHv80IyKeGnw; - main_1812__1__HbG3EzSzT7SHv80IyKeGnw: - assume {:captureState "main_1812__1__HbG3EzSzT7SHv80IyKeGnw"} true; - goto main_1812__3__ArZKC0sNSe6_xTDy3J32hw; - main_1812__0__Ux0Q3SQCTAWbVjaRM4YV_w_goto_main_1812__2__MdKjK9_tS4CwsqOHpUajFA: - assume {:captureState "main_1812__0__Ux0Q3SQCTAWbVjaRM4YV_w_goto_main_1812__2__MdKjK9_tS4CwsqOHpUajFA"} true; - assume (!(ZF == 1bv1)); - load4, Gamma_load4 := memory_load32_le(stack, bvadd64(R31, 12bv64)), gamma_load32(Gamma_stack, bvadd64(R31, 12bv64)); - R0, Gamma_R0 := zero_extend32_32(load4), Gamma_load4; - goto main_1812__2__MdKjK9_tS4CwsqOHpUajFA; - main_1812__2__MdKjK9_tS4CwsqOHpUajFA: - assume {:captureState "main_1812__2__MdKjK9_tS4CwsqOHpUajFA"} true; - goto main_1812__3__ArZKC0sNSe6_xTDy3J32hw; - main_1812__3__ArZKC0sNSe6_xTDy3J32hw: - assume {:captureState "main_1812__3__ArZKC0sNSe6_xTDy3J32hw"} true; + goto $main$__3__$ArZKC0sNSe6_xTDy3J32hw; + $main$__2__$MdKjK9_tS4CwsqOHpUajFA: + assume {:captureState "$main$__2__$MdKjK9_tS4CwsqOHpUajFA"} true; + $load4, Gamma_$load4 := memory_load32_le(stack, bvadd64(R31, 12bv64)), gamma_load32(Gamma_stack, bvadd64(R31, 12bv64)); + R0, Gamma_R0 := zero_extend32_32($load4), Gamma_$load4; + goto $main$__3__$ArZKC0sNSe6_xTDy3J32hw; + $main$__3__$ArZKC0sNSe6_xTDy3J32hw: + assume {:captureState "$main$__3__$ArZKC0sNSe6_xTDy3J32hw"} true; R31, Gamma_R31 := bvadd64(R31, 16bv64), Gamma_R31; - goto main_1812_basil_return; - main_1812_basil_return: - assume {:captureState "main_1812_basil_return"} true; + goto main_basil_return; + $main$__0__$Ux0Q3SQCTAWbVjaRM4YV_w_goto_$main$__2__$MdKjK9_tS4CwsqOHpUajFA: + assume {:captureState "$main$__0__$Ux0Q3SQCTAWbVjaRM4YV_w_goto_$main$__2__$MdKjK9_tS4CwsqOHpUajFA"} true; + assume (!(ZF == 1bv1)); + goto $main$__2__$MdKjK9_tS4CwsqOHpUajFA; + $main$__0__$Ux0Q3SQCTAWbVjaRM4YV_w_goto_$main$__1__$HbG3EzSzT7SHv80IyKeGnw: + assume {:captureState "$main$__0__$Ux0Q3SQCTAWbVjaRM4YV_w_goto_$main$__1__$HbG3EzSzT7SHv80IyKeGnw"} true; + assume (!(!(ZF == 1bv1))); + goto $main$__1__$HbG3EzSzT7SHv80IyKeGnw; + main_basil_return: + assume {:captureState "main_basil_return"} true; return; } diff --git a/src/test/correct/basic_function_call_reader/gcc_O2/basic_function_call_reader.adt b/src/test/correct/basic_function_call_reader/gcc_O2/basic_function_call_reader.adt deleted file mode 100644 index a686254a8..000000000 --- a/src/test/correct/basic_function_call_reader/gcc_O2/basic_function_call_reader.adt +++ /dev/null @@ -1,500 +0,0 @@ -Project(Attrs([Attr("filename","\"gcc_O2/basic_function_call_reader.out\""), -Attr("image-specification","(declare abi (name str))\n(declare arch (name str))\n(declare base-address (addr int))\n(declare bias (off int))\n(declare bits (size int))\n(declare code-region (addr int) (size int) (off int))\n(declare code-start (addr int))\n(declare entry-point (addr int))\n(declare external-reference (addr int) (name str))\n(declare format (name str))\n(declare is-executable (flag bool))\n(declare is-little-endian (flag bool))\n(declare llvm:base-address (addr int))\n(declare llvm:code-entry (name str) (off int) (size int))\n(declare llvm:coff-import-library (name str))\n(declare llvm:coff-virtual-section-header (name str) (addr int) (size int))\n(declare llvm:elf-program-header (name str) (off int) (size int))\n(declare llvm:elf-program-header-flags (name str) (ld bool) (r bool) \n (w bool) (x bool))\n(declare llvm:elf-virtual-program-header (name str) (addr int) (size int))\n(declare llvm:entry-point (addr int))\n(declare llvm:macho-symbol (name str) (value int))\n(declare llvm:name-reference (at int) (name str))\n(declare llvm:relocation (at int) (addr int))\n(declare llvm:section-entry (name str) (addr int) (size int) (off int))\n(declare llvm:section-flags (name str) (r bool) (w bool) (x bool))\n(declare llvm:segment-command (name str) (off int) (size int))\n(declare llvm:segment-command-flags (name str) (r bool) (w bool) (x bool))\n(declare llvm:symbol-entry (name str) (addr int) (size int) (off int)\n (value int))\n(declare llvm:virtual-segment-command (name str) (addr int) (size int))\n(declare mapped (addr int) (size int) (off int))\n(declare named-region (addr int) (size int) (name str))\n(declare named-symbol (addr int) (name str))\n(declare require (name str))\n(declare section (addr int) (size int))\n(declare segment (addr int) (size int) (r bool) (w bool) (x bool))\n(declare subarch (name str))\n(declare symbol-chunk (addr int) (size int) (root int))\n(declare symbol-value (addr int) (value int))\n(declare system (name str))\n(declare vendor (name str))\n\n(abi unknown)\n(arch aarch64)\n(base-address 0)\n(bias 0)\n(bits 64)\n(code-region 1876 20 1876)\n(code-region 1536 340 1536)\n(code-region 1440 96 1440)\n(code-region 1408 24 1408)\n(code-start 1652)\n(code-start 1600)\n(code-start 1536)\n(entry-point 1600)\n(external-reference 69592 _ITM_deregisterTMCloneTable)\n(external-reference 69600 __cxa_finalize)\n(external-reference 69608 __gmon_start__)\n(external-reference 69624 _ITM_registerTMCloneTable)\n(external-reference 69552 __libc_start_main)\n(external-reference 69560 __cxa_finalize)\n(external-reference 69568 __gmon_start__)\n(external-reference 69576 abort)\n(format elf)\n(is-executable true)\n(is-little-endian true)\n(llvm:base-address 0)\n(llvm:code-entry abort 0 0)\n(llvm:code-entry __cxa_finalize 0 0)\n(llvm:code-entry __libc_start_main 0 0)\n(llvm:code-entry _init 1408 0)\n(llvm:code-entry main 1536 24)\n(llvm:code-entry _start 1600 52)\n(llvm:code-entry abort@GLIBC_2.17 0 0)\n(llvm:code-entry _fini 1876 0)\n(llvm:code-entry __cxa_finalize@GLIBC_2.17 0 0)\n(llvm:code-entry __libc_start_main@GLIBC_2.34 0 0)\n(llvm:code-entry frame_dummy 1872 0)\n(llvm:code-entry __do_global_dtors_aux 1792 0)\n(llvm:code-entry register_tm_clones 1728 0)\n(llvm:code-entry deregister_tm_clones 1680 0)\n(llvm:code-entry call_weak_fn 1652 20)\n(llvm:code-entry .fini 1876 20)\n(llvm:code-entry .text 1536 340)\n(llvm:code-entry .plt 1440 96)\n(llvm:code-entry .init 1408 24)\n(llvm:elf-program-header 08 3480 616)\n(llvm:elf-program-header 07 0 0)\n(llvm:elf-program-header 06 1900 60)\n(llvm:elf-program-header 05 596 68)\n(llvm:elf-program-header 04 3496 496)\n(llvm:elf-program-header 03 3480 632)\n(llvm:elf-program-header 02 0 2120)\n(llvm:elf-program-header 01 568 27)\n(llvm:elf-program-header 00 64 504)\n(llvm:elf-program-header-flags 08 false true false false)\n(llvm:elf-program-header-flags 07 false true true false)\n(llvm:elf-program-header-flags 06 false true false false)\n(llvm:elf-program-header-flags 05 false true false false)\n(llvm:elf-program-header-flags 04 false true true false)\n(llvm:elf-program-header-flags 03 true true true false)\n(llvm:elf-program-header-flags 02 true true false true)\n(llvm:elf-program-header-flags 01 false true false false)\n(llvm:elf-program-header-flags 00 false true false false)\n(llvm:elf-virtual-program-header 08 69016 616)\n(llvm:elf-virtual-program-header 07 0 0)\n(llvm:elf-virtual-program-header 06 1900 60)\n(llvm:elf-virtual-program-header 05 596 68)\n(llvm:elf-virtual-program-header 04 69032 496)\n(llvm:elf-virtual-program-header 03 69016 648)\n(llvm:elf-virtual-program-header 02 0 2120)\n(llvm:elf-virtual-program-header 01 568 27)\n(llvm:elf-virtual-program-header 00 64 504)\n(llvm:entry-point 1600)\n(llvm:name-reference 69576 abort)\n(llvm:name-reference 69568 __gmon_start__)\n(llvm:name-reference 69560 __cxa_finalize)\n(llvm:name-reference 69552 __libc_start_main)\n(llvm:name-reference 69624 _ITM_registerTMCloneTable)\n(llvm:name-reference 69608 __gmon_start__)\n(llvm:name-reference 69600 __cxa_finalize)\n(llvm:name-reference 69592 _ITM_deregisterTMCloneTable)\n(llvm:section-entry .shstrtab 0 250 6858)\n(llvm:section-entry .strtab 0 562 6296)\n(llvm:section-entry .symtab 0 2136 4160)\n(llvm:section-entry .comment 0 43 4112)\n(llvm:section-entry .bss 69648 16 4112)\n(llvm:section-entry .data 69632 16 4096)\n(llvm:section-entry .got 69528 104 3992)\n(llvm:section-entry .dynamic 69032 496 3496)\n(llvm:section-entry .fini_array 69024 8 3488)\n(llvm:section-entry .init_array 69016 8 3480)\n(llvm:section-entry .eh_frame 1960 160 1960)\n(llvm:section-entry .eh_frame_hdr 1900 60 1900)\n(llvm:section-entry .rodata 1896 4 1896)\n(llvm:section-entry .fini 1876 20 1876)\n(llvm:section-entry .text 1536 340 1536)\n(llvm:section-entry .plt 1440 96 1440)\n(llvm:section-entry .init 1408 24 1408)\n(llvm:section-entry .rela.plt 1312 96 1312)\n(llvm:section-entry .rela.dyn 1120 192 1120)\n(llvm:section-entry .gnu.version_r 1072 48 1072)\n(llvm:section-entry .gnu.version 1054 18 1054)\n(llvm:section-entry .dynstr 912 141 912)\n(llvm:section-entry .dynsym 696 216 696)\n(llvm:section-entry .gnu.hash 664 28 664)\n(llvm:section-entry .note.ABI-tag 632 32 632)\n(llvm:section-entry .note.gnu.build-id 596 36 596)\n(llvm:section-entry .interp 568 27 568)\n(llvm:section-flags .shstrtab true false false)\n(llvm:section-flags .strtab true false false)\n(llvm:section-flags .symtab true false false)\n(llvm:section-flags .comment true false false)\n(llvm:section-flags .bss true true false)\n(llvm:section-flags .data true true false)\n(llvm:section-flags .got true true false)\n(llvm:section-flags .dynamic true true false)\n(llvm:section-flags .fini_array true true false)\n(llvm:section-flags .init_array true true false)\n(llvm:section-flags .eh_frame true false false)\n(llvm:section-flags .eh_frame_hdr true false false)\n(llvm:section-flags .rodata true false false)\n(llvm:section-flags .fini true false true)\n(llvm:section-flags .text true false true)\n(llvm:section-flags .plt true false true)\n(llvm:section-flags .init true false true)\n(llvm:section-flags .rela.plt true false false)\n(llvm:section-flags .rela.dyn true false false)\n(llvm:section-flags .gnu.version_r true false false)\n(llvm:section-flags .gnu.version true false false)\n(llvm:section-flags .dynstr true false false)\n(llvm:section-flags .dynsym true false false)\n(llvm:section-flags .gnu.hash true false false)\n(llvm:section-flags .note.ABI-tag true false false)\n(llvm:section-flags .note.gnu.build-id true false false)\n(llvm:section-flags .interp true false false)\n(llvm:symbol-entry abort 0 0 0 0)\n(llvm:symbol-entry __cxa_finalize 0 0 0 0)\n(llvm:symbol-entry __libc_start_main 0 0 0 0)\n(llvm:symbol-entry _init 1408 0 1408 1408)\n(llvm:symbol-entry main 1536 24 1536 1536)\n(llvm:symbol-entry _start 1600 52 1600 1600)\n(llvm:symbol-entry abort@GLIBC_2.17 0 0 0 0)\n(llvm:symbol-entry _fini 1876 0 1876 1876)\n(llvm:symbol-entry __cxa_finalize@GLIBC_2.17 0 0 0 0)\n(llvm:symbol-entry __libc_start_main@GLIBC_2.34 0 0 0 0)\n(llvm:symbol-entry frame_dummy 1872 0 1872 1872)\n(llvm:symbol-entry __do_global_dtors_aux 1792 0 1792 1792)\n(llvm:symbol-entry register_tm_clones 1728 0 1728 1728)\n(llvm:symbol-entry deregister_tm_clones 1680 0 1680 1680)\n(llvm:symbol-entry call_weak_fn 1652 20 1652 1652)\n(mapped 0 2120 0)\n(mapped 69016 632 3480)\n(named-region 0 2120 02)\n(named-region 69016 648 03)\n(named-region 568 27 .interp)\n(named-region 596 36 .note.gnu.build-id)\n(named-region 632 32 .note.ABI-tag)\n(named-region 664 28 .gnu.hash)\n(named-region 696 216 .dynsym)\n(named-region 912 141 .dynstr)\n(named-region 1054 18 .gnu.version)\n(named-region 1072 48 .gnu.version_r)\n(named-region 1120 192 .rela.dyn)\n(named-region 1312 96 .rela.plt)\n(named-region 1408 24 .init)\n(named-region 1440 96 .plt)\n(named-region 1536 340 .text)\n(named-region 1876 20 .fini)\n(named-region 1896 4 .rodata)\n(named-region 1900 60 .eh_frame_hdr)\n(named-region 1960 160 .eh_frame)\n(named-region 69016 8 .init_array)\n(named-region 69024 8 .fini_array)\n(named-region 69032 496 .dynamic)\n(named-region 69528 104 .got)\n(named-region 69632 16 .data)\n(named-region 69648 16 .bss)\n(named-region 0 43 .comment)\n(named-region 0 2136 .symtab)\n(named-region 0 562 .strtab)\n(named-region 0 250 .shstrtab)\n(named-symbol 1652 call_weak_fn)\n(named-symbol 1680 deregister_tm_clones)\n(named-symbol 1728 register_tm_clones)\n(named-symbol 1792 __do_global_dtors_aux)\n(named-symbol 1872 frame_dummy)\n(named-symbol 0 __libc_start_main@GLIBC_2.34)\n(named-symbol 0 __cxa_finalize@GLIBC_2.17)\n(named-symbol 1876 _fini)\n(named-symbol 0 abort@GLIBC_2.17)\n(named-symbol 1600 _start)\n(named-symbol 1536 main)\n(named-symbol 1408 _init)\n(named-symbol 0 __libc_start_main)\n(named-symbol 0 __cxa_finalize)\n(named-symbol 0 abort)\n(require libc.so.6)\n(section 568 27)\n(section 596 36)\n(section 632 32)\n(section 664 28)\n(section 696 216)\n(section 912 141)\n(section 1054 18)\n(section 1072 48)\n(section 1120 192)\n(section 1312 96)\n(section 1408 24)\n(section 1440 96)\n(section 1536 340)\n(section 1876 20)\n(section 1896 4)\n(section 1900 60)\n(section 1960 160)\n(section 69016 8)\n(section 69024 8)\n(section 69032 496)\n(section 69528 104)\n(section 69632 16)\n(section 69648 16)\n(section 0 43)\n(section 0 2136)\n(section 0 562)\n(section 0 250)\n(segment 0 2120 true false true)\n(segment 69016 648 true true false)\n(subarch v8)\n(symbol-chunk 1652 20 1652)\n(symbol-chunk 1600 52 1600)\n(symbol-chunk 1536 24 1536)\n(symbol-value 1652 1652)\n(symbol-value 1680 1680)\n(symbol-value 1728 1728)\n(symbol-value 1792 1792)\n(symbol-value 1872 1872)\n(symbol-value 1876 1876)\n(symbol-value 1600 1600)\n(symbol-value 1536 1536)\n(symbol-value 1408 1408)\n(symbol-value 0 0)\n(system \"\")\n(vendor \"\")\n"), -Attr("abi-name","\"aarch64-linux-gnu-elf\"")]), -Sections([Section(".shstrtab", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x40\x06\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xc8\x1b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x38\x00\x09\x00\x40\x00\x1c\x00\x1b\x00\x06\x00\x00\x00\x04\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x04\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x48\x08\x00\x00\x00\x00\x00\x00\x48\x08\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x01\x00\x00\x00\x06\x00\x00\x00\x98\x0d\x00\x00\x00\x00\x00\x00\x98\x0d"), -Section(".strtab", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x40\x06\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xc8\x1b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x38\x00\x09\x00\x40\x00\x1c\x00\x1b\x00\x06\x00\x00\x00\x04\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x04\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x48\x08\x00\x00\x00\x00\x00\x00\x48\x08\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x01\x00\x00\x00\x06\x00\x00\x00\x98\x0d\x00\x00\x00\x00\x00\x00\x98\x0d\x01\x00\x00\x00\x00\x00\x98\x0d\x01\x00\x00\x00\x00\x00\x78\x02\x00\x00\x00\x00\x00\x00\x88\x02\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x02\x00\x00\x00\x06\x00\x00\x00\xa8\x0d\x00\x00\x00\x00\x00\x00\xa8\x0d\x01\x00\x00\x00\x00\x00\xa8\x0d\x01\x00\x00\x00\x00\x00\xf0\x01\x00\x00\x00\x00\x00\x00\xf0\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x04\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x50\xe5\x74\x64\x04\x00\x00\x00\x6c\x07\x00\x00\x00\x00\x00\x00\x6c\x07\x00\x00\x00\x00\x00\x00\x6c\x07\x00\x00\x00\x00\x00\x00\x3c\x00\x00\x00\x00\x00\x00\x00\x3c\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x51\xe5\x74\x64\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x52\xe5\x74\x64\x04\x00\x00\x00\x98\x0d\x00\x00\x00\x00\x00\x00\x98\x0d\x01\x00\x00\x00\x00\x00\x98\x0d\x01\x00\x00\x00\x00\x00\x68\x02\x00\x00\x00\x00\x00\x00\x68\x02\x00\x00\x00\x00\x00\x00\x01\x00"), -Section(".comment", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x40\x06\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xc8\x1b\x00"), -Section(".interp", 0x238, "\x2f\x6c\x69\x62\x2f\x6c\x64\x2d\x6c\x69\x6e\x75\x78\x2d\x61\x61\x72\x63\x68\x36\x34\x2e\x73\x6f\x2e\x31\x00"), -Section(".note.gnu.build-id", 0x254, "\x04\x00\x00\x00\x14\x00\x00\x00\x03\x00\x00\x00\x47\x4e\x55\x00\xae\x2c\xdf\xc3\x1a\x85\x79\xf1\x77\xc4\x38\x86\xc1\x42\x38\x61\xc8\x9a\x73\x52"), -Section(".note.ABI-tag", 0x278, "\x04\x00\x00\x00\x10\x00\x00\x00\x01\x00\x00\x00\x47\x4e\x55\x00\x00\x00\x00\x00\x03\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00"), -Section(".gnu.hash", 0x298, "\x01\x00\x00\x00\x01\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".dynsym", 0x2B8, "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x0b\x00\x80\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x16\x00\x00\x10\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x48\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x22\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x22\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x73\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".dynstr", 0x390, "\x00\x5f\x5f\x63\x78\x61\x5f\x66\x69\x6e\x61\x6c\x69\x7a\x65\x00\x5f\x5f\x6c\x69\x62\x63\x5f\x73\x74\x61\x72\x74\x5f\x6d\x61\x69\x6e\x00\x61\x62\x6f\x72\x74\x00\x6c\x69\x62\x63\x2e\x73\x6f\x2e\x36\x00\x47\x4c\x49\x42\x43\x5f\x32\x2e\x31\x37\x00\x47\x4c\x49\x42\x43\x5f\x32\x2e\x33\x34\x00\x5f\x49\x54\x4d\x5f\x64\x65\x72\x65\x67\x69\x73\x74\x65\x72\x54\x4d\x43\x6c\x6f\x6e\x65\x54\x61\x62\x6c\x65\x00\x5f\x5f\x67\x6d\x6f\x6e\x5f\x73\x74\x61\x72\x74\x5f\x5f\x00\x5f\x49\x54\x4d\x5f\x72\x65\x67\x69\x73\x74\x65\x72\x54\x4d\x43\x6c\x6f\x6e\x65\x54\x61\x62\x6c\x65\x00"), -Section(".gnu.version", 0x41E, "\x00\x00\x00\x00\x00\x00\x02\x00\x01\x00\x03\x00\x01\x00\x03\x00\x01\x00"), -Section(".gnu.version_r", 0x430, "\x01\x00\x02\x00\x28\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x97\x91\x96\x06\x00\x00\x03\x00\x32\x00\x00\x00\x10\x00\x00\x00\xb4\x91\x96\x06\x00\x00\x02\x00\x3d\x00\x00\x00\x00\x00\x00\x00"), -Section(".rela.dyn", 0x460, "\x98\x0d\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x50\x07\x00\x00\x00\x00\x00\x00\xa0\x0d\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\xf0\x0f\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x00\x06\x00\x00\x00\x00\x00\x00\x08\x10\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x08\x10\x01\x00\x00\x00\x00\x00\xd8\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe0\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe8\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xf8\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".rela.plt", 0x520, "\xb0\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xb8\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xc0\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xc8\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".init", 0x580, "\x1f\x20\x03\xd5\xfd\x7b\xbf\xa9\xfd\x03\x00\x91\x3a\x00\x00\x94\xfd\x7b\xc1\xa8\xc0\x03\x5f\xd6"), -Section(".plt", 0x5A0, "\xf0\x7b\xbf\xa9\x90\x00\x00\x90\x11\xd6\x47\xf9\x10\xa2\x3e\x91\x20\x02\x1f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x90\x00\x00\x90\x11\xda\x47\xf9\x10\xc2\x3e\x91\x20\x02\x1f\xd6\x90\x00\x00\x90\x11\xde\x47\xf9\x10\xe2\x3e\x91\x20\x02\x1f\xd6\x90\x00\x00\x90\x11\xe2\x47\xf9\x10\x02\x3f\x91\x20\x02\x1f\xd6\x90\x00\x00\x90\x11\xe6\x47\xf9\x10\x22\x3f\x91\x20\x02\x1f\xd6"), -Section(".fini", 0x754, "\x1f\x20\x03\xd5\xfd\x7b\xbf\xa9\xfd\x03\x00\x91\xfd\x7b\xc1\xa8\xc0\x03\x5f\xd6"), -Section(".rodata", 0x768, "\x01\x00\x02\x00"), -Section(".eh_frame_hdr", 0x76C, "\x01\x1b\x03\x3b\x38\x00\x00\x00\x06\x00\x00\x00\x94\xfe\xff\xff\xc4\x00\x00\x00\xd4\xfe\xff\xff\x50\x00\x00\x00\x24\xff\xff\xff\x64\x00\x00\x00\x54\xff\xff\xff\x78\x00\x00\x00\x94\xff\xff\xff\x8c\x00\x00\x00\xe4\xff\xff\xff\xb0\x00\x00\x00"), -Section(".eh_frame", 0x7A8, "\x10\x00\x00\x00\x00\x00\x00\x00\x01\x7a\x52\x00\x04\x78\x1e\x01\x1b\x0c\x1f\x00\x10\x00\x00\x00\x18\x00\x00\x00\x7c\xfe\xff\xff\x34\x00\x00\x00\x00\x41\x07\x1e\x10\x00\x00\x00\x2c\x00\x00\x00\xb8\xfe\xff\xff\x30\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x40\x00\x00\x00\xd4\xfe\xff\xff\x3c\x00\x00\x00\x00\x00\x00\x00\x20\x00\x00\x00\x54\x00\x00\x00\x00\xff\xff\xff\x48\x00\x00\x00\x00\x41\x0e\x20\x9d\x04\x9e\x03\x42\x93\x02\x4e\xde\xdd\xd3\x0e\x00\x00\x00\x00\x10\x00\x00\x00\x78\x00\x00\x00\x2c\xff\xff\xff\x04\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x8c\x00\x00\x00\xc8\xfd\xff\xff\x18\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".fini_array", 0x10DA0, "\x00\x07\x00\x00\x00\x00\x00\x00"), -Section(".dynamic", 0x10DA8, "\x01\x00\x00\x00\x00\x00\x00\x00\x28\x00\x00\x00\x00\x00\x00\x00\x0c\x00\x00\x00\x00\x00\x00\x00\x80\x05\x00\x00\x00\x00\x00\x00\x0d\x00\x00\x00\x00\x00\x00\x00\x54\x07\x00\x00\x00\x00\x00\x00\x19\x00\x00\x00\x00\x00\x00\x00\x98\x0d\x01\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x1a\x00\x00\x00\x00\x00\x00\x00\xa0\x0d\x01\x00\x00\x00\x00\x00\x1c\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\xf5\xfe\xff\x6f\x00\x00\x00\x00\x98\x02\x00\x00\x00\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x90\x03\x00\x00\x00\x00\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\xb8\x02\x00\x00\x00\x00\x00\x00\x0a\x00\x00\x00\x00\x00\x00\x00\x8d\x00\x00\x00\x00\x00\x00\x00\x0b\x00\x00\x00\x00\x00\x00\x00\x18\x00\x00\x00\x00\x00\x00\x00\x15\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x98\x0f\x01\x00\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x60\x00\x00\x00\x00\x00\x00\x00\x14\x00\x00\x00\x00\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x17\x00\x00\x00\x00\x00\x00\x00\x20\x05\x00\x00\x00\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x60\x04\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\xc0\x00\x00\x00\x00\x00\x00\x00\x09\x00\x00\x00\x00\x00\x00\x00\x18\x00\x00\x00\x00\x00\x00\x00\x1e\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\xfb\xff\xff\x6f\x00\x00\x00\x00\x01\x00\x00\x08\x00\x00\x00\x00\xfe\xff\xff\x6f\x00\x00\x00\x00\x30\x04\x00\x00\x00\x00\x00\x00\xff\xff\xff\x6f\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\xf0\xff\xff\x6f\x00\x00\x00\x00\x1e\x04\x00\x00\x00\x00\x00\x00\xf9\xff\xff\x6f\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".init_array", 0x10D98, "\x50\x07\x00\x00\x00\x00\x00\x00"), -Section(".got", 0x10F98, "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xa0\x05\x00\x00\x00\x00\x00\x00\xa0\x05\x00\x00\x00\x00\x00\x00\xa0\x05\x00\x00\x00\x00\x00\x00\xa0\x05\x00\x00\x00\x00\x00\x00\xa8\x0d\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".data", 0x11000, "\x00\x00\x00\x00\x00\x00\x00\x00\x08\x10\x01\x00\x00\x00\x00\x00"), -Section(".text", 0x600, "\x80\x00\x00\xb0\x01\x50\x00\x91\x00\x14\x40\xb9\x40\x00\x00\x34\x20\x04\x40\xb9\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1d\x00\x80\xd2\x1e\x00\x80\xd2\xe5\x03\x00\xaa\xe1\x03\x40\xf9\xe2\x23\x00\x91\xe6\x03\x00\x91\x80\x00\x00\x90\x00\xf8\x47\xf9\x03\x00\x80\xd2\x04\x00\x80\xd2\xd5\xff\xff\x97\xe0\xff\xff\x97\x80\x00\x00\x90\x00\xf4\x47\xf9\x40\x00\x00\xb4\xd8\xff\xff\x17\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x80\x00\x00\xb0\x00\x40\x00\x91\x81\x00\x00\xb0\x21\x40\x00\x91\x3f\x00\x00\xeb\xc0\x00\x00\x54\x81\x00\x00\x90\x21\xec\x47\xf9\x61\x00\x00\xb4\xf0\x03\x01\xaa\x00\x02\x1f\xd6\xc0\x03\x5f\xd6\x80\x00\x00\xb0\x00\x40\x00\x91\x81\x00\x00\xb0\x21\x40\x00\x91\x21\x00\x00\xcb\x22\xfc\x7f\xd3\x41\x0c\x81\x8b\x21\xfc\x41\x93\xc1\x00\x00\xb4\x82\x00\x00\x90\x42\xfc\x47\xf9\x62\x00\x00\xb4\xf0\x03\x02\xaa\x00\x02\x1f\xd6\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\xfd\x7b\xbe\xa9\xfd\x03\x00\x91\xf3\x0b\x00\xf9\x93\x00\x00\xb0\x60\x42\x40\x39\x40\x01\x00\x35\x80\x00\x00\x90\x00\xf0\x47\xf9\x80\x00\x00\xb4\x80\x00\x00\xb0\x00\x04\x40\xf9\xa9\xff\xff\x97\xd8\xff\xff\x97\x20\x00\x80\x52\x60\x42\x00\x39\xf3\x0b\x40\xf9\xfd\x7b\xc2\xa8\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\xdc\xff\xff\x17")]), -Memmap([Annotation(Region(0x0,0x847), Attr("segment","02 0 2120")), -Annotation(Region(0x600,0x617), Attr("symbol","\"main\"")), -Annotation(Region(0x0,0xF9), Attr("section","\".shstrtab\"")), -Annotation(Region(0x0,0x231), Attr("section","\".strtab\"")), -Annotation(Region(0x0,0x2A), Attr("section","\".comment\"")), -Annotation(Region(0x238,0x252), Attr("section","\".interp\"")), -Annotation(Region(0x254,0x277), Attr("section","\".note.gnu.build-id\"")), -Annotation(Region(0x278,0x297), Attr("section","\".note.ABI-tag\"")), -Annotation(Region(0x298,0x2B3), Attr("section","\".gnu.hash\"")), -Annotation(Region(0x2B8,0x38F), Attr("section","\".dynsym\"")), -Annotation(Region(0x390,0x41C), Attr("section","\".dynstr\"")), -Annotation(Region(0x41E,0x42F), Attr("section","\".gnu.version\"")), -Annotation(Region(0x430,0x45F), Attr("section","\".gnu.version_r\"")), -Annotation(Region(0x460,0x51F), Attr("section","\".rela.dyn\"")), -Annotation(Region(0x520,0x57F), Attr("section","\".rela.plt\"")), -Annotation(Region(0x580,0x597), Attr("section","\".init\"")), -Annotation(Region(0x5A0,0x5FF), Attr("section","\".plt\"")), -Annotation(Region(0x580,0x597), Attr("code-region","()")), -Annotation(Region(0x5A0,0x5FF), Attr("code-region","()")), -Annotation(Region(0x600,0x617), Attr("symbol-info","main 0x600 24")), -Annotation(Region(0x640,0x673), Attr("symbol","\"_start\"")), -Annotation(Region(0x640,0x673), Attr("symbol-info","_start 0x640 52")), -Annotation(Region(0x674,0x687), Attr("symbol","\"call_weak_fn\"")), -Annotation(Region(0x674,0x687), Attr("symbol-info","call_weak_fn 0x674 20")), -Annotation(Region(0x754,0x767), Attr("section","\".fini\"")), -Annotation(Region(0x768,0x76B), Attr("section","\".rodata\"")), -Annotation(Region(0x76C,0x7A7), Attr("section","\".eh_frame_hdr\"")), -Annotation(Region(0x7A8,0x847), Attr("section","\".eh_frame\"")), -Annotation(Region(0x10D98,0x1100F), Attr("segment","03 0x10D98 648")), -Annotation(Region(0x10DA0,0x10DA7), Attr("section","\".fini_array\"")), -Annotation(Region(0x10DA8,0x10F97), Attr("section","\".dynamic\"")), -Annotation(Region(0x10D98,0x10D9F), Attr("section","\".init_array\"")), -Annotation(Region(0x10F98,0x10FFF), Attr("section","\".got\"")), -Annotation(Region(0x11000,0x1100F), Attr("section","\".data\"")), -Annotation(Region(0x600,0x753), Attr("section","\".text\"")), -Annotation(Region(0x600,0x753), Attr("code-region","()")), -Annotation(Region(0x754,0x767), Attr("code-region","()"))]), -Program(Tid(1_516, "%000005ec"), Attrs([]), - Subs([Sub(Tid(1_462, "@__cxa_finalize"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x5D0"), -Attr("stub","()")]), "__cxa_finalize", Args([Arg(Tid(1_517, "%000005ed"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("__cxa_finalize_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(851, "@__cxa_finalize"), - Attrs([Attr("address","0x5D0")]), Phis([]), -Defs([Def(Tid(1_106, "%00000452"), Attrs([Attr("address","0x5D0"), -Attr("insn","adrp x16, #65536")]), Var("R16",Imm(64)), Int(65536,64)), -Def(Tid(1_113, "%00000459"), Attrs([Attr("address","0x5D4"), -Attr("insn","ldr x17, [x16, #0xfb8]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(4024,64)),LittleEndian(),64)), -Def(Tid(1_119, "%0000045f"), Attrs([Attr("address","0x5D8"), -Attr("insn","add x16, x16, #0xfb8")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(4024,64)))]), Jmps([Call(Tid(1_124, "%00000464"), - Attrs([Attr("address","0x5DC"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), -Sub(Tid(1_463, "@__do_global_dtors_aux"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x700")]), - "__do_global_dtors_aux", Args([Arg(Tid(1_518, "%000005ee"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("__do_global_dtors_aux_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(704, "@__do_global_dtors_aux"), - Attrs([Attr("address","0x700")]), Phis([]), Defs([Def(Tid(708, "%000002c4"), - Attrs([Attr("address","0x700"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("#3",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(18446744073709551584,64))), -Def(Tid(714, "%000002ca"), Attrs([Attr("address","0x700"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("#3",Imm(64)),Var("R29",Imm(64)),LittleEndian(),64)), -Def(Tid(720, "%000002d0"), Attrs([Attr("address","0x700"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("#3",Imm(64)),Int(8,64)),Var("R30",Imm(64)),LittleEndian(),64)), -Def(Tid(724, "%000002d4"), Attrs([Attr("address","0x700"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("R31",Imm(64)), -Var("#3",Imm(64))), Def(Tid(730, "%000002da"), - Attrs([Attr("address","0x704"), Attr("insn","mov x29, sp")]), - Var("R29",Imm(64)), Var("R31",Imm(64))), Def(Tid(738, "%000002e2"), - Attrs([Attr("address","0x708"), Attr("insn","str x19, [sp, #0x10]")]), - Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(16,64)),Var("R19",Imm(64)),LittleEndian(),64)), -Def(Tid(743, "%000002e7"), Attrs([Attr("address","0x70C"), -Attr("insn","adrp x19, #69632")]), Var("R19",Imm(64)), Int(69632,64)), -Def(Tid(750, "%000002ee"), Attrs([Attr("address","0x710"), -Attr("insn","ldrb w0, [x19, #0x10]")]), Var("R0",Imm(64)), -UNSIGNED(64,Load(Var("mem",Mem(64,8)),PLUS(Var("R19",Imm(64)),Int(16,64)),LittleEndian(),8)))]), -Jmps([Goto(Tid(757, "%000002f5"), Attrs([Attr("address","0x714"), -Attr("insn","cbnz w0, #0x28")]), - NEQ(Extract(31,0,Var("R0",Imm(64))),Int(0,32)), -Direct(Tid(755, "%000002f3"))), Goto(Tid(1_504, "%000005e0"), Attrs([]), - Int(1,1), Direct(Tid(796, "%0000031c")))])), Blk(Tid(796, "%0000031c"), - Attrs([Attr("address","0x718")]), Phis([]), Defs([Def(Tid(799, "%0000031f"), - Attrs([Attr("address","0x718"), Attr("insn","adrp x0, #65536")]), - Var("R0",Imm(64)), Int(65536,64)), Def(Tid(806, "%00000326"), - Attrs([Attr("address","0x71C"), Attr("insn","ldr x0, [x0, #0xfe0]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(4064,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(812, "%0000032c"), Attrs([Attr("address","0x720"), -Attr("insn","cbz x0, #0x10")]), EQ(Var("R0",Imm(64)),Int(0,64)), -Direct(Tid(810, "%0000032a"))), Goto(Tid(1_505, "%000005e1"), Attrs([]), - Int(1,1), Direct(Tid(835, "%00000343")))])), Blk(Tid(835, "%00000343"), - Attrs([Attr("address","0x724")]), Phis([]), Defs([Def(Tid(838, "%00000346"), - Attrs([Attr("address","0x724"), Attr("insn","adrp x0, #69632")]), - Var("R0",Imm(64)), Int(69632,64)), Def(Tid(845, "%0000034d"), - Attrs([Attr("address","0x728"), Attr("insn","ldr x0, [x0, #0x8]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(850, "%00000352"), Attrs([Attr("address","0x72C"), -Attr("insn","bl #-0x15c")]), Var("R30",Imm(64)), Int(1840,64))]), -Jmps([Call(Tid(853, "%00000355"), Attrs([Attr("address","0x72C"), -Attr("insn","bl #-0x15c")]), Int(1,1), -(Direct(Tid(1_462, "@__cxa_finalize")),Direct(Tid(810, "%0000032a"))))])), -Blk(Tid(810, "%0000032a"), Attrs([Attr("address","0x730")]), Phis([]), -Defs([Def(Tid(818, "%00000332"), Attrs([Attr("address","0x730"), -Attr("insn","bl #-0xa0")]), Var("R30",Imm(64)), Int(1844,64))]), -Jmps([Call(Tid(820, "%00000334"), Attrs([Attr("address","0x730"), -Attr("insn","bl #-0xa0")]), Int(1,1), -(Direct(Tid(1_476, "@deregister_tm_clones")),Direct(Tid(822, "%00000336"))))])), -Blk(Tid(822, "%00000336"), Attrs([Attr("address","0x734")]), Phis([]), -Defs([Def(Tid(825, "%00000339"), Attrs([Attr("address","0x734"), -Attr("insn","mov w0, #0x1")]), Var("R0",Imm(64)), Int(1,64)), -Def(Tid(833, "%00000341"), Attrs([Attr("address","0x738"), -Attr("insn","strb w0, [x19, #0x10]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R19",Imm(64)),Int(16,64)),Extract(7,0,Var("R0",Imm(64))),LittleEndian(),8))]), -Jmps([Goto(Tid(1_506, "%000005e2"), Attrs([]), Int(1,1), -Direct(Tid(755, "%000002f3")))])), Blk(Tid(755, "%000002f3"), - Attrs([Attr("address","0x73C")]), Phis([]), Defs([Def(Tid(765, "%000002fd"), - Attrs([Attr("address","0x73C"), Attr("insn","ldr x19, [sp, #0x10]")]), - Var("R19",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(16,64)),LittleEndian(),64)), -Def(Tid(772, "%00000304"), Attrs([Attr("address","0x740"), -Attr("insn","ldp x29, x30, [sp], #0x20")]), Var("R29",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(777, "%00000309"), Attrs([Attr("address","0x740"), -Attr("insn","ldp x29, x30, [sp], #0x20")]), Var("R30",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(781, "%0000030d"), Attrs([Attr("address","0x740"), -Attr("insn","ldp x29, x30, [sp], #0x20")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(32,64)))]), Jmps([Call(Tid(786, "%00000312"), - Attrs([Attr("address","0x744"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), Sub(Tid(1_467, "@__libc_start_main"), - Attrs([Attr("c.proto","signed (*)(signed (*)(signed , char** , char** );* main, signed , char** , \nvoid* auxv)"), -Attr("address","0x5C0"), Attr("stub","()")]), "__libc_start_main", - Args([Arg(Tid(1_519, "%000005ef"), - Attrs([Attr("c.layout","**[ : 64]"), -Attr("c.data","Top:u64 ptr ptr"), -Attr("c.type","signed (*)(signed , char** , char** );*")]), - Var("__libc_start_main_main",Imm(64)), Var("R0",Imm(64)), In()), -Arg(Tid(1_520, "%000005f0"), Attrs([Attr("c.layout","[signed : 32]"), -Attr("c.data","Top:u32"), Attr("c.type","signed")]), - Var("__libc_start_main_arg2",Imm(32)), LOW(32,Var("R1",Imm(64))), In()), -Arg(Tid(1_521, "%000005f1"), Attrs([Attr("c.layout","**[char : 8]"), -Attr("c.data","Top:u8 ptr ptr"), Attr("c.type","char**")]), - Var("__libc_start_main_arg3",Imm(64)), Var("R2",Imm(64)), Both()), -Arg(Tid(1_522, "%000005f2"), Attrs([Attr("c.layout","*[ : 8]"), -Attr("c.data","{} ptr"), Attr("c.type","void*")]), - Var("__libc_start_main_auxv",Imm(64)), Var("R3",Imm(64)), Both()), -Arg(Tid(1_523, "%000005f3"), Attrs([Attr("c.layout","[signed : 32]"), -Attr("c.data","Top:u32"), Attr("c.type","signed")]), - Var("__libc_start_main_result",Imm(32)), LOW(32,Var("R0",Imm(64))), -Out())]), Blks([Blk(Tid(537, "@__libc_start_main"), - Attrs([Attr("address","0x5C0")]), Phis([]), -Defs([Def(Tid(1_084, "%0000043c"), Attrs([Attr("address","0x5C0"), -Attr("insn","adrp x16, #65536")]), Var("R16",Imm(64)), Int(65536,64)), -Def(Tid(1_091, "%00000443"), Attrs([Attr("address","0x5C4"), -Attr("insn","ldr x17, [x16, #0xfb0]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(4016,64)),LittleEndian(),64)), -Def(Tid(1_097, "%00000449"), Attrs([Attr("address","0x5C8"), -Attr("insn","add x16, x16, #0xfb0")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(4016,64)))]), Jmps([Call(Tid(1_102, "%0000044e"), - Attrs([Attr("address","0x5CC"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), Sub(Tid(1_468, "@_fini"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x754")]), - "_fini", Args([Arg(Tid(1_524, "%000005f4"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("_fini_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(31, "@_fini"), - Attrs([Attr("address","0x754")]), Phis([]), Defs([Def(Tid(37, "%00000025"), - Attrs([Attr("address","0x758"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("#0",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(18446744073709551600,64))), -Def(Tid(43, "%0000002b"), Attrs([Attr("address","0x758"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("#0",Imm(64)),Var("R29",Imm(64)),LittleEndian(),64)), -Def(Tid(49, "%00000031"), Attrs([Attr("address","0x758"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("#0",Imm(64)),Int(8,64)),Var("R30",Imm(64)),LittleEndian(),64)), -Def(Tid(53, "%00000035"), Attrs([Attr("address","0x758"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("R31",Imm(64)), -Var("#0",Imm(64))), Def(Tid(59, "%0000003b"), Attrs([Attr("address","0x75C"), -Attr("insn","mov x29, sp")]), Var("R29",Imm(64)), Var("R31",Imm(64))), -Def(Tid(66, "%00000042"), Attrs([Attr("address","0x760"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R29",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(71, "%00000047"), Attrs([Attr("address","0x760"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R30",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(75, "%0000004b"), Attrs([Attr("address","0x760"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(16,64)))]), Jmps([Call(Tid(80, "%00000050"), - Attrs([Attr("address","0x764"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), Sub(Tid(1_469, "@_init"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x580")]), - "_init", Args([Arg(Tid(1_525, "%000005f5"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("_init_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(1_288, "@_init"), - Attrs([Attr("address","0x580")]), Phis([]), -Defs([Def(Tid(1_294, "%0000050e"), Attrs([Attr("address","0x584"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("#5",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(18446744073709551600,64))), -Def(Tid(1_300, "%00000514"), Attrs([Attr("address","0x584"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("#5",Imm(64)),Var("R29",Imm(64)),LittleEndian(),64)), -Def(Tid(1_306, "%0000051a"), Attrs([Attr("address","0x584"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("#5",Imm(64)),Int(8,64)),Var("R30",Imm(64)),LittleEndian(),64)), -Def(Tid(1_310, "%0000051e"), Attrs([Attr("address","0x584"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("R31",Imm(64)), -Var("#5",Imm(64))), Def(Tid(1_316, "%00000524"), - Attrs([Attr("address","0x588"), Attr("insn","mov x29, sp")]), - Var("R29",Imm(64)), Var("R31",Imm(64))), Def(Tid(1_321, "%00000529"), - Attrs([Attr("address","0x58C"), Attr("insn","bl #0xe8")]), - Var("R30",Imm(64)), Int(1424,64))]), Jmps([Call(Tid(1_323, "%0000052b"), - Attrs([Attr("address","0x58C"), Attr("insn","bl #0xe8")]), Int(1,1), -(Direct(Tid(1_474, "@call_weak_fn")),Direct(Tid(1_325, "%0000052d"))))])), -Blk(Tid(1_325, "%0000052d"), Attrs([Attr("address","0x590")]), Phis([]), -Defs([Def(Tid(1_330, "%00000532"), Attrs([Attr("address","0x590"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R29",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(1_335, "%00000537"), Attrs([Attr("address","0x590"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R30",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(1_339, "%0000053b"), Attrs([Attr("address","0x590"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(16,64)))]), Jmps([Call(Tid(1_344, "%00000540"), - Attrs([Attr("address","0x594"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), Sub(Tid(1_470, "@_start"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x640"), -Attr("entry-point","()")]), "_start", Args([Arg(Tid(1_526, "%000005f6"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("_start_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(474, "@_start"), - Attrs([Attr("address","0x640")]), Phis([]), Defs([Def(Tid(479, "%000001df"), - Attrs([Attr("address","0x644"), Attr("insn","mov x29, #0x0")]), - Var("R29",Imm(64)), Int(0,64)), Def(Tid(484, "%000001e4"), - Attrs([Attr("address","0x648"), Attr("insn","mov x30, #0x0")]), - Var("R30",Imm(64)), Int(0,64)), Def(Tid(490, "%000001ea"), - Attrs([Attr("address","0x64C"), Attr("insn","mov x5, x0")]), - Var("R5",Imm(64)), Var("R0",Imm(64))), Def(Tid(497, "%000001f1"), - Attrs([Attr("address","0x650"), Attr("insn","ldr x1, [sp]")]), - Var("R1",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(503, "%000001f7"), Attrs([Attr("address","0x654"), -Attr("insn","add x2, sp, #0x8")]), Var("R2",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(8,64))), Def(Tid(509, "%000001fd"), - Attrs([Attr("address","0x658"), Attr("insn","mov x6, sp")]), - Var("R6",Imm(64)), Var("R31",Imm(64))), Def(Tid(514, "%00000202"), - Attrs([Attr("address","0x65C"), Attr("insn","adrp x0, #65536")]), - Var("R0",Imm(64)), Int(65536,64)), Def(Tid(521, "%00000209"), - Attrs([Attr("address","0x660"), Attr("insn","ldr x0, [x0, #0xff0]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(4080,64)),LittleEndian(),64)), -Def(Tid(526, "%0000020e"), Attrs([Attr("address","0x664"), -Attr("insn","mov x3, #0x0")]), Var("R3",Imm(64)), Int(0,64)), -Def(Tid(531, "%00000213"), Attrs([Attr("address","0x668"), -Attr("insn","mov x4, #0x0")]), Var("R4",Imm(64)), Int(0,64)), -Def(Tid(536, "%00000218"), Attrs([Attr("address","0x66C"), -Attr("insn","bl #-0xac")]), Var("R30",Imm(64)), Int(1648,64))]), -Jmps([Call(Tid(539, "%0000021b"), Attrs([Attr("address","0x66C"), -Attr("insn","bl #-0xac")]), Int(1,1), -(Direct(Tid(1_467, "@__libc_start_main")),Direct(Tid(541, "%0000021d"))))])), -Blk(Tid(541, "%0000021d"), Attrs([Attr("address","0x670")]), Phis([]), -Defs([Def(Tid(544, "%00000220"), Attrs([Attr("address","0x670"), -Attr("insn","bl #-0x80")]), Var("R30",Imm(64)), Int(1652,64))]), -Jmps([Call(Tid(547, "%00000223"), Attrs([Attr("address","0x670"), -Attr("insn","bl #-0x80")]), Int(1,1), -(Direct(Tid(1_473, "@abort")),Direct(Tid(1_507, "%000005e3"))))])), -Blk(Tid(1_507, "%000005e3"), Attrs([]), Phis([]), Defs([]), -Jmps([Call(Tid(1_508, "%000005e4"), Attrs([]), Int(1,1), -(Direct(Tid(1_474, "@call_weak_fn")),))]))])), Sub(Tid(1_473, "@abort"), - Attrs([Attr("noreturn","()"), Attr("c.proto","void (*)(void)"), -Attr("address","0x5F0"), Attr("stub","()")]), "abort", Args([]), -Blks([Blk(Tid(545, "@abort"), Attrs([Attr("address","0x5F0")]), Phis([]), -Defs([Def(Tid(1_150, "%0000047e"), Attrs([Attr("address","0x5F0"), -Attr("insn","adrp x16, #65536")]), Var("R16",Imm(64)), Int(65536,64)), -Def(Tid(1_157, "%00000485"), Attrs([Attr("address","0x5F4"), -Attr("insn","ldr x17, [x16, #0xfc8]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(4040,64)),LittleEndian(),64)), -Def(Tid(1_163, "%0000048b"), Attrs([Attr("address","0x5F8"), -Attr("insn","add x16, x16, #0xfc8")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(4040,64)))]), Jmps([Call(Tid(1_168, "%00000490"), - Attrs([Attr("address","0x5FC"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), Sub(Tid(1_474, "@call_weak_fn"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x674")]), - "call_weak_fn", Args([Arg(Tid(1_527, "%000005f7"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("call_weak_fn_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(549, "@call_weak_fn"), - Attrs([Attr("address","0x674")]), Phis([]), Defs([Def(Tid(552, "%00000228"), - Attrs([Attr("address","0x674"), Attr("insn","adrp x0, #65536")]), - Var("R0",Imm(64)), Int(65536,64)), Def(Tid(559, "%0000022f"), - Attrs([Attr("address","0x678"), Attr("insn","ldr x0, [x0, #0xfe8]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(4072,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(565, "%00000235"), Attrs([Attr("address","0x67C"), -Attr("insn","cbz x0, #0x8")]), EQ(Var("R0",Imm(64)),Int(0,64)), -Direct(Tid(563, "%00000233"))), Goto(Tid(1_509, "%000005e5"), Attrs([]), - Int(1,1), Direct(Tid(915, "%00000393")))])), Blk(Tid(563, "%00000233"), - Attrs([Attr("address","0x684")]), Phis([]), Defs([]), -Jmps([Call(Tid(571, "%0000023b"), Attrs([Attr("address","0x684"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))])), -Blk(Tid(915, "%00000393"), Attrs([Attr("address","0x680")]), Phis([]), -Defs([]), Jmps([Goto(Tid(918, "%00000396"), Attrs([Attr("address","0x680"), -Attr("insn","b #-0xa0")]), Int(1,1), Direct(Tid(916, "@__gmon_start__")))])), -Blk(Tid(916, "@__gmon_start__"), Attrs([Attr("address","0x5E0")]), Phis([]), -Defs([Def(Tid(1_128, "%00000468"), Attrs([Attr("address","0x5E0"), -Attr("insn","adrp x16, #65536")]), Var("R16",Imm(64)), Int(65536,64)), -Def(Tid(1_135, "%0000046f"), Attrs([Attr("address","0x5E4"), -Attr("insn","ldr x17, [x16, #0xfc0]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(4032,64)),LittleEndian(),64)), -Def(Tid(1_141, "%00000475"), Attrs([Attr("address","0x5E8"), -Attr("insn","add x16, x16, #0xfc0")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(4032,64)))]), Jmps([Call(Tid(1_146, "%0000047a"), - Attrs([Attr("address","0x5EC"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), -Sub(Tid(1_476, "@deregister_tm_clones"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x690")]), - "deregister_tm_clones", Args([Arg(Tid(1_528, "%000005f8"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("deregister_tm_clones_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(577, "@deregister_tm_clones"), - Attrs([Attr("address","0x690")]), Phis([]), Defs([Def(Tid(580, "%00000244"), - Attrs([Attr("address","0x690"), Attr("insn","adrp x0, #69632")]), - Var("R0",Imm(64)), Int(69632,64)), Def(Tid(586, "%0000024a"), - Attrs([Attr("address","0x694"), Attr("insn","add x0, x0, #0x10")]), - Var("R0",Imm(64)), PLUS(Var("R0",Imm(64)),Int(16,64))), -Def(Tid(591, "%0000024f"), Attrs([Attr("address","0x698"), -Attr("insn","adrp x1, #69632")]), Var("R1",Imm(64)), Int(69632,64)), -Def(Tid(597, "%00000255"), Attrs([Attr("address","0x69C"), -Attr("insn","add x1, x1, #0x10")]), Var("R1",Imm(64)), -PLUS(Var("R1",Imm(64)),Int(16,64))), Def(Tid(603, "%0000025b"), - Attrs([Attr("address","0x6A0"), Attr("insn","cmp x1, x0")]), - Var("#1",Imm(64)), NOT(Var("R0",Imm(64)))), Def(Tid(608, "%00000260"), - Attrs([Attr("address","0x6A0"), Attr("insn","cmp x1, x0")]), - Var("#2",Imm(64)), PLUS(Var("R1",Imm(64)),NOT(Var("R0",Imm(64))))), -Def(Tid(614, "%00000266"), Attrs([Attr("address","0x6A0"), -Attr("insn","cmp x1, x0")]), Var("VF",Imm(1)), -NEQ(SIGNED(65,PLUS(Var("#2",Imm(64)),Int(1,64))),PLUS(PLUS(SIGNED(65,Var("R1",Imm(64))),SIGNED(65,Var("#1",Imm(64)))),Int(1,65)))), -Def(Tid(620, "%0000026c"), Attrs([Attr("address","0x6A0"), -Attr("insn","cmp x1, x0")]), Var("CF",Imm(1)), -NEQ(UNSIGNED(65,PLUS(Var("#2",Imm(64)),Int(1,64))),PLUS(PLUS(UNSIGNED(65,Var("R1",Imm(64))),UNSIGNED(65,Var("#1",Imm(64)))),Int(1,65)))), -Def(Tid(624, "%00000270"), Attrs([Attr("address","0x6A0"), -Attr("insn","cmp x1, x0")]), Var("ZF",Imm(1)), -EQ(PLUS(Var("#2",Imm(64)),Int(1,64)),Int(0,64))), Def(Tid(628, "%00000274"), - Attrs([Attr("address","0x6A0"), Attr("insn","cmp x1, x0")]), - Var("NF",Imm(1)), Extract(63,63,PLUS(Var("#2",Imm(64)),Int(1,64))))]), -Jmps([Goto(Tid(634, "%0000027a"), Attrs([Attr("address","0x6A4"), -Attr("insn","b.eq #0x18")]), EQ(Var("ZF",Imm(1)),Int(1,1)), -Direct(Tid(632, "%00000278"))), Goto(Tid(1_510, "%000005e6"), Attrs([]), - Int(1,1), Direct(Tid(885, "%00000375")))])), Blk(Tid(885, "%00000375"), - Attrs([Attr("address","0x6A8")]), Phis([]), Defs([Def(Tid(888, "%00000378"), - Attrs([Attr("address","0x6A8"), Attr("insn","adrp x1, #65536")]), - Var("R1",Imm(64)), Int(65536,64)), Def(Tid(895, "%0000037f"), - Attrs([Attr("address","0x6AC"), Attr("insn","ldr x1, [x1, #0xfd8]")]), - Var("R1",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R1",Imm(64)),Int(4056,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(900, "%00000384"), Attrs([Attr("address","0x6B0"), -Attr("insn","cbz x1, #0xc")]), EQ(Var("R1",Imm(64)),Int(0,64)), -Direct(Tid(632, "%00000278"))), Goto(Tid(1_511, "%000005e7"), Attrs([]), - Int(1,1), Direct(Tid(904, "%00000388")))])), Blk(Tid(632, "%00000278"), - Attrs([Attr("address","0x6BC")]), Phis([]), Defs([]), -Jmps([Call(Tid(640, "%00000280"), Attrs([Attr("address","0x6BC"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))])), -Blk(Tid(904, "%00000388"), Attrs([Attr("address","0x6B4")]), Phis([]), -Defs([Def(Tid(908, "%0000038c"), Attrs([Attr("address","0x6B4"), -Attr("insn","mov x16, x1")]), Var("R16",Imm(64)), Var("R1",Imm(64)))]), -Jmps([Call(Tid(913, "%00000391"), Attrs([Attr("address","0x6B8"), -Attr("insn","br x16")]), Int(1,1), (Indirect(Var("R16",Imm(64))),))]))])), -Sub(Tid(1_479, "@frame_dummy"), Attrs([Attr("c.proto","signed (*)(void)"), -Attr("address","0x750")]), "frame_dummy", Args([Arg(Tid(1_529, "%000005f9"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("frame_dummy_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(792, "@frame_dummy"), - Attrs([Attr("address","0x750")]), Phis([]), Defs([]), -Jmps([Call(Tid(794, "%0000031a"), Attrs([Attr("address","0x750"), -Attr("insn","b #-0x90")]), Int(1,1), -(Direct(Tid(1_483, "@register_tm_clones")),))]))])), Sub(Tid(1_480, "@main"), - Attrs([Attr("c.proto","signed (*)(signed argc, const char** argv)"), -Attr("address","0x600"), Attr("stub","()")]), "main", - Args([Arg(Tid(1_530, "%000005fa"), Attrs([Attr("c.layout","[signed : 32]"), -Attr("c.data","Top:u32"), Attr("c.type","signed")]), - Var("main_argc",Imm(32)), LOW(32,Var("R0",Imm(64))), In()), -Arg(Tid(1_531, "%000005fb"), Attrs([Attr("c.layout","**[char : 8]"), -Attr("c.data","Top:u8 ptr ptr"), Attr("c.type"," const char**")]), - Var("main_argv",Imm(64)), Var("R1",Imm(64)), Both()), -Arg(Tid(1_532, "%000005fc"), Attrs([Attr("c.layout","[signed : 32]"), -Attr("c.data","Top:u32"), Attr("c.type","signed")]), - Var("main_result",Imm(32)), LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(424, "@main"), Attrs([Attr("address","0x600")]), Phis([]), -Defs([Def(Tid(427, "%000001ab"), Attrs([Attr("address","0x600"), -Attr("insn","adrp x0, #69632")]), Var("R0",Imm(64)), Int(69632,64)), -Def(Tid(433, "%000001b1"), Attrs([Attr("address","0x604"), -Attr("insn","add x1, x0, #0x14")]), Var("R1",Imm(64)), -PLUS(Var("R0",Imm(64)),Int(20,64))), Def(Tid(440, "%000001b8"), - Attrs([Attr("address","0x608"), Attr("insn","ldr w0, [x0, #0x14]")]), - Var("R0",Imm(64)), -UNSIGNED(64,Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(20,64)),LittleEndian(),32)))]), -Jmps([Goto(Tid(446, "%000001be"), Attrs([Attr("address","0x60C"), -Attr("insn","cbz w0, #0x8")]), EQ(Extract(31,0,Var("R0",Imm(64))),Int(0,32)), -Direct(Tid(444, "%000001bc"))), Goto(Tid(1_512, "%000005e8"), Attrs([]), - Int(1,1), Direct(Tid(920, "%00000398")))])), Blk(Tid(920, "%00000398"), - Attrs([Attr("address","0x610")]), Phis([]), Defs([Def(Tid(925, "%0000039d"), - Attrs([Attr("address","0x610"), Attr("insn","ldr w0, [x1, #0x4]")]), - Var("R0",Imm(64)), -UNSIGNED(64,Load(Var("mem",Mem(64,8)),PLUS(Var("R1",Imm(64)),Int(4,64)),LittleEndian(),32)))]), -Jmps([Goto(Tid(1_513, "%000005e9"), Attrs([]), Int(1,1), -Direct(Tid(444, "%000001bc")))])), Blk(Tid(444, "%000001bc"), - Attrs([Attr("address","0x614")]), Phis([]), Defs([]), -Jmps([Call(Tid(452, "%000001c4"), Attrs([Attr("address","0x614"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))]))])), -Sub(Tid(1_483, "@register_tm_clones"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x6C0")]), - "register_tm_clones", Args([Arg(Tid(1_533, "%000005fd"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("register_tm_clones_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(642, "@register_tm_clones"), Attrs([Attr("address","0x6C0")]), - Phis([]), Defs([Def(Tid(645, "%00000285"), Attrs([Attr("address","0x6C0"), -Attr("insn","adrp x0, #69632")]), Var("R0",Imm(64)), Int(69632,64)), -Def(Tid(651, "%0000028b"), Attrs([Attr("address","0x6C4"), -Attr("insn","add x0, x0, #0x10")]), Var("R0",Imm(64)), -PLUS(Var("R0",Imm(64)),Int(16,64))), Def(Tid(656, "%00000290"), - Attrs([Attr("address","0x6C8"), Attr("insn","adrp x1, #69632")]), - Var("R1",Imm(64)), Int(69632,64)), Def(Tid(662, "%00000296"), - Attrs([Attr("address","0x6CC"), Attr("insn","add x1, x1, #0x10")]), - Var("R1",Imm(64)), PLUS(Var("R1",Imm(64)),Int(16,64))), -Def(Tid(669, "%0000029d"), Attrs([Attr("address","0x6D0"), -Attr("insn","sub x1, x1, x0")]), Var("R1",Imm(64)), -PLUS(PLUS(Var("R1",Imm(64)),NOT(Var("R0",Imm(64)))),Int(1,64))), -Def(Tid(675, "%000002a3"), Attrs([Attr("address","0x6D4"), -Attr("insn","lsr x2, x1, #63")]), Var("R2",Imm(64)), -Concat(Int(0,63),Extract(63,63,Var("R1",Imm(64))))), -Def(Tid(682, "%000002aa"), Attrs([Attr("address","0x6D8"), -Attr("insn","add x1, x2, x1, asr #3")]), Var("R1",Imm(64)), -PLUS(Var("R2",Imm(64)),ARSHIFT(Var("R1",Imm(64)),Int(3,3)))), -Def(Tid(688, "%000002b0"), Attrs([Attr("address","0x6DC"), -Attr("insn","asr x1, x1, #1")]), Var("R1",Imm(64)), -SIGNED(64,Extract(63,1,Var("R1",Imm(64)))))]), -Jmps([Goto(Tid(694, "%000002b6"), Attrs([Attr("address","0x6E0"), -Attr("insn","cbz x1, #0x18")]), EQ(Var("R1",Imm(64)),Int(0,64)), -Direct(Tid(692, "%000002b4"))), Goto(Tid(1_514, "%000005ea"), Attrs([]), - Int(1,1), Direct(Tid(855, "%00000357")))])), Blk(Tid(855, "%00000357"), - Attrs([Attr("address","0x6E4")]), Phis([]), Defs([Def(Tid(858, "%0000035a"), - Attrs([Attr("address","0x6E4"), Attr("insn","adrp x2, #65536")]), - Var("R2",Imm(64)), Int(65536,64)), Def(Tid(865, "%00000361"), - Attrs([Attr("address","0x6E8"), Attr("insn","ldr x2, [x2, #0xff8]")]), - Var("R2",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R2",Imm(64)),Int(4088,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(870, "%00000366"), Attrs([Attr("address","0x6EC"), -Attr("insn","cbz x2, #0xc")]), EQ(Var("R2",Imm(64)),Int(0,64)), -Direct(Tid(692, "%000002b4"))), Goto(Tid(1_515, "%000005eb"), Attrs([]), - Int(1,1), Direct(Tid(874, "%0000036a")))])), Blk(Tid(692, "%000002b4"), - Attrs([Attr("address","0x6F8")]), Phis([]), Defs([]), -Jmps([Call(Tid(700, "%000002bc"), Attrs([Attr("address","0x6F8"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))])), -Blk(Tid(874, "%0000036a"), Attrs([Attr("address","0x6F0")]), Phis([]), -Defs([Def(Tid(878, "%0000036e"), Attrs([Attr("address","0x6F0"), -Attr("insn","mov x16, x2")]), Var("R16",Imm(64)), Var("R2",Imm(64)))]), -Jmps([Call(Tid(883, "%00000373"), Attrs([Attr("address","0x6F4"), -Attr("insn","br x16")]), Int(1,1), -(Indirect(Var("R16",Imm(64))),))]))]))]))) \ No newline at end of file diff --git a/src/test/correct/basic_function_call_reader/gcc_O2/basic_function_call_reader.bir b/src/test/correct/basic_function_call_reader/gcc_O2/basic_function_call_reader.bir deleted file mode 100644 index 05d155e91..000000000 --- a/src/test/correct/basic_function_call_reader/gcc_O2/basic_function_call_reader.bir +++ /dev/null @@ -1,234 +0,0 @@ -000005ec: program -000005b6: sub __cxa_finalize(__cxa_finalize_result) -000005ed: __cxa_finalize_result :: out u32 = low:32[R0] - -00000353: -00000452: R16 := 0x10000 -00000459: R17 := mem[R16 + 0xFB8, el]:u64 -0000045f: R16 := R16 + 0xFB8 -00000464: call R17 with noreturn - -000005b7: sub __do_global_dtors_aux(__do_global_dtors_aux_result) -000005ee: __do_global_dtors_aux_result :: out u32 = low:32[R0] - -000002c0: -000002c4: #3 := R31 - 0x20 -000002ca: mem := mem with [#3, el]:u64 <- R29 -000002d0: mem := mem with [#3 + 8, el]:u64 <- R30 -000002d4: R31 := #3 -000002da: R29 := R31 -000002e2: mem := mem with [R31 + 0x10, el]:u64 <- R19 -000002e7: R19 := 0x11000 -000002ee: R0 := pad:64[mem[R19 + 0x10]] -000002f5: when 31:0[R0] <> 0 goto %000002f3 -000005e0: goto %0000031c - -0000031c: -0000031f: R0 := 0x10000 -00000326: R0 := mem[R0 + 0xFE0, el]:u64 -0000032c: when R0 = 0 goto %0000032a -000005e1: goto %00000343 - -00000343: -00000346: R0 := 0x11000 -0000034d: R0 := mem[R0 + 8, el]:u64 -00000352: R30 := 0x730 -00000355: call @__cxa_finalize with return %0000032a - -0000032a: -00000332: R30 := 0x734 -00000334: call @deregister_tm_clones with return %00000336 - -00000336: -00000339: R0 := 1 -00000341: mem := mem with [R19 + 0x10] <- 7:0[R0] -000005e2: goto %000002f3 - -000002f3: -000002fd: R19 := mem[R31 + 0x10, el]:u64 -00000304: R29 := mem[R31, el]:u64 -00000309: R30 := mem[R31 + 8, el]:u64 -0000030d: R31 := R31 + 0x20 -00000312: call R30 with noreturn - -000005bb: sub __libc_start_main(__libc_start_main_main, __libc_start_main_arg2, __libc_start_main_arg3, __libc_start_main_auxv, __libc_start_main_result) -000005ef: __libc_start_main_main :: in u64 = R0 -000005f0: __libc_start_main_arg2 :: in u32 = low:32[R1] -000005f1: __libc_start_main_arg3 :: in out u64 = R2 -000005f2: __libc_start_main_auxv :: in out u64 = R3 -000005f3: __libc_start_main_result :: out u32 = low:32[R0] - -00000219: -0000043c: R16 := 0x10000 -00000443: R17 := mem[R16 + 0xFB0, el]:u64 -00000449: R16 := R16 + 0xFB0 -0000044e: call R17 with noreturn - -000005bc: sub _fini(_fini_result) -000005f4: _fini_result :: out u32 = low:32[R0] - -0000001f: -00000025: #0 := R31 - 0x10 -0000002b: mem := mem with [#0, el]:u64 <- R29 -00000031: mem := mem with [#0 + 8, el]:u64 <- R30 -00000035: R31 := #0 -0000003b: R29 := R31 -00000042: R29 := mem[R31, el]:u64 -00000047: R30 := mem[R31 + 8, el]:u64 -0000004b: R31 := R31 + 0x10 -00000050: call R30 with noreturn - -000005bd: sub _init(_init_result) -000005f5: _init_result :: out u32 = low:32[R0] - -00000508: -0000050e: #5 := R31 - 0x10 -00000514: mem := mem with [#5, el]:u64 <- R29 -0000051a: mem := mem with [#5 + 8, el]:u64 <- R30 -0000051e: R31 := #5 -00000524: R29 := R31 -00000529: R30 := 0x590 -0000052b: call @call_weak_fn with return %0000052d - -0000052d: -00000532: R29 := mem[R31, el]:u64 -00000537: R30 := mem[R31 + 8, el]:u64 -0000053b: R31 := R31 + 0x10 -00000540: call R30 with noreturn - -000005be: sub _start(_start_result) -000005f6: _start_result :: out u32 = low:32[R0] - -000001da: -000001df: R29 := 0 -000001e4: R30 := 0 -000001ea: R5 := R0 -000001f1: R1 := mem[R31, el]:u64 -000001f7: R2 := R31 + 8 -000001fd: R6 := R31 -00000202: R0 := 0x10000 -00000209: R0 := mem[R0 + 0xFF0, el]:u64 -0000020e: R3 := 0 -00000213: R4 := 0 -00000218: R30 := 0x670 -0000021b: call @__libc_start_main with return %0000021d - -0000021d: -00000220: R30 := 0x674 -00000223: call @abort with return %000005e3 - -000005e3: -000005e4: call @call_weak_fn with noreturn - -000005c1: sub abort() - - -00000221: -0000047e: R16 := 0x10000 -00000485: R17 := mem[R16 + 0xFC8, el]:u64 -0000048b: R16 := R16 + 0xFC8 -00000490: call R17 with noreturn - -000005c2: sub call_weak_fn(call_weak_fn_result) -000005f7: call_weak_fn_result :: out u32 = low:32[R0] - -00000225: -00000228: R0 := 0x10000 -0000022f: R0 := mem[R0 + 0xFE8, el]:u64 -00000235: when R0 = 0 goto %00000233 -000005e5: goto %00000393 - -00000233: -0000023b: call R30 with noreturn - -00000393: -00000396: goto @__gmon_start__ - -00000394: -00000468: R16 := 0x10000 -0000046f: R17 := mem[R16 + 0xFC0, el]:u64 -00000475: R16 := R16 + 0xFC0 -0000047a: call R17 with noreturn - -000005c4: sub deregister_tm_clones(deregister_tm_clones_result) -000005f8: deregister_tm_clones_result :: out u32 = low:32[R0] - -00000241: -00000244: R0 := 0x11000 -0000024a: R0 := R0 + 0x10 -0000024f: R1 := 0x11000 -00000255: R1 := R1 + 0x10 -0000025b: #1 := ~R0 -00000260: #2 := R1 + ~R0 -00000266: VF := extend:65[#2 + 1] <> extend:65[R1] + extend:65[#1] + 1 -0000026c: CF := pad:65[#2 + 1] <> pad:65[R1] + pad:65[#1] + 1 -00000270: ZF := #2 + 1 = 0 -00000274: NF := 63:63[#2 + 1] -0000027a: when ZF goto %00000278 -000005e6: goto %00000375 - -00000375: -00000378: R1 := 0x10000 -0000037f: R1 := mem[R1 + 0xFD8, el]:u64 -00000384: when R1 = 0 goto %00000278 -000005e7: goto %00000388 - -00000278: -00000280: call R30 with noreturn - -00000388: -0000038c: R16 := R1 -00000391: call R16 with noreturn - -000005c7: sub frame_dummy(frame_dummy_result) -000005f9: frame_dummy_result :: out u32 = low:32[R0] - -00000318: -0000031a: call @register_tm_clones with noreturn - -000005c8: sub main(main_argc, main_argv, main_result) -000005fa: main_argc :: in u32 = low:32[R0] -000005fb: main_argv :: in out u64 = R1 -000005fc: main_result :: out u32 = low:32[R0] - -000001a8: -000001ab: R0 := 0x11000 -000001b1: R1 := R0 + 0x14 -000001b8: R0 := pad:64[mem[R0 + 0x14, el]:u32] -000001be: when 31:0[R0] = 0 goto %000001bc -000005e8: goto %00000398 - -00000398: -0000039d: R0 := pad:64[mem[R1 + 4, el]:u32] -000005e9: goto %000001bc - -000001bc: -000001c4: call R30 with noreturn - -000005cb: sub register_tm_clones(register_tm_clones_result) -000005fd: register_tm_clones_result :: out u32 = low:32[R0] - -00000282: -00000285: R0 := 0x11000 -0000028b: R0 := R0 + 0x10 -00000290: R1 := 0x11000 -00000296: R1 := R1 + 0x10 -0000029d: R1 := R1 + ~R0 + 1 -000002a3: R2 := 0.63:63[R1] -000002aa: R1 := R2 + (R1 ~>> 3) -000002b0: R1 := extend:64[63:1[R1]] -000002b6: when R1 = 0 goto %000002b4 -000005ea: goto %00000357 - -00000357: -0000035a: R2 := 0x10000 -00000361: R2 := mem[R2 + 0xFF8, el]:u64 -00000366: when R2 = 0 goto %000002b4 -000005eb: goto %0000036a - -000002b4: -000002bc: call R30 with noreturn - -0000036a: -0000036e: R16 := R2 -00000373: call R16 with noreturn diff --git a/src/test/correct/basic_function_call_reader/gcc_O2/basic_function_call_reader.expected b/src/test/correct/basic_function_call_reader/gcc_O2/basic_function_call_reader.expected index 0c006e210..557609c3c 100644 --- a/src/test/correct/basic_function_call_reader/gcc_O2/basic_function_call_reader.expected +++ b/src/test/correct/basic_function_call_reader/gcc_O2/basic_function_call_reader.expected @@ -66,7 +66,7 @@ implementation {:extern} guarantee_reflexive() assert (memory_load32_le(mem, $y_addr) == memory_load32_le(mem, $y_addr)); } -procedure main_1536(); +procedure main(); modifies Gamma_R0, Gamma_R1, Gamma_mem, R0, R1, mem; free requires (memory_load64_le(mem, 69632bv64) == 0bv64); free requires (memory_load64_le(mem, 69640bv64) == 69640bv64); @@ -81,40 +81,40 @@ procedure main_1536(); free ensures (memory_load64_le(mem, 69616bv64) == 1536bv64); free ensures (memory_load64_le(mem, 69640bv64) == 69640bv64); -implementation main_1536() +implementation main() { - var Gamma_load18: bool; - var Gamma_load19: bool; - var load18: bv32; - var load19: bv32; + var $load$18: bv32; + var $load$19: bv32; + var Gamma_$load$18: bool; + var Gamma_$load$19: bool; lmain: assume {:captureState "lmain"} true; R0, Gamma_R0 := 69632bv64, true; R1, Gamma_R1 := bvadd64(R0, 20bv64), Gamma_R0; call rely(); - load18, Gamma_load18 := memory_load32_le(mem, bvadd64(R0, 20bv64)), (gamma_load32(Gamma_mem, bvadd64(R0, 20bv64)) || L(mem, bvadd64(R0, 20bv64))); - R0, Gamma_R0 := zero_extend32_32(load18), Gamma_load18; + $load$18, Gamma_$load$18 := memory_load32_le(mem, bvadd64(R0, 20bv64)), (gamma_load32(Gamma_mem, bvadd64(R0, 20bv64)) || L(mem, bvadd64(R0, 20bv64))); + R0, Gamma_R0 := zero_extend32_32($load$18), Gamma_$load$18; assert Gamma_R0; goto lmain_goto_l000001bc, lmain_goto_l00000398; - lmain_goto_l00000398: - assume {:captureState "lmain_goto_l00000398"} true; - assume (bvcomp32(R0[32:0], 0bv32) == 0bv1); - call rely(); - load19, Gamma_load19 := memory_load32_le(mem, bvadd64(R1, 4bv64)), (gamma_load32(Gamma_mem, bvadd64(R1, 4bv64)) || L(mem, bvadd64(R1, 4bv64))); - R0, Gamma_R0 := zero_extend32_32(load19), Gamma_load19; - goto l00000398; l00000398: assume {:captureState "l00000398"} true; + call rely(); + $load$19, Gamma_$load$19 := memory_load32_le(mem, bvadd64(R1, 4bv64)), (gamma_load32(Gamma_mem, bvadd64(R1, 4bv64)) || L(mem, bvadd64(R1, 4bv64))); + R0, Gamma_R0 := zero_extend32_32($load$19), Gamma_$load$19; goto l000001bc; + l000001bc: + assume {:captureState "l000001bc"} true; + goto main_basil_return; lmain_goto_l000001bc: assume {:captureState "lmain_goto_l000001bc"} true; assume (bvcomp32(R0[32:0], 0bv32) != 0bv1); goto l000001bc; - l000001bc: - assume {:captureState "l000001bc"} true; - goto main_1536_basil_return; - main_1536_basil_return: - assume {:captureState "main_1536_basil_return"} true; + lmain_goto_l00000398: + assume {:captureState "lmain_goto_l00000398"} true; + assume (bvcomp32(R0[32:0], 0bv32) == 0bv1); + goto l00000398; + main_basil_return: + assume {:captureState "main_basil_return"} true; return; } diff --git a/src/test/correct/basic_function_call_reader/gcc_O2/basic_function_call_reader.gts b/src/test/correct/basic_function_call_reader/gcc_O2/basic_function_call_reader.gts deleted file mode 100644 index f9777fa6b..000000000 Binary files a/src/test/correct/basic_function_call_reader/gcc_O2/basic_function_call_reader.gts and /dev/null differ diff --git a/src/test/correct/basic_function_call_reader/gcc_O2/basic_function_call_reader.md5sum b/src/test/correct/basic_function_call_reader/gcc_O2/basic_function_call_reader.md5sum new file mode 100644 index 000000000..a07f27093 --- /dev/null +++ b/src/test/correct/basic_function_call_reader/gcc_O2/basic_function_call_reader.md5sum @@ -0,0 +1,5 @@ +710747f0676836aab9d89f1527d4da1c correct/basic_function_call_reader/gcc_O2/a.out +ce9f36fb68503d9e00f022e77a31f728 correct/basic_function_call_reader/gcc_O2/basic_function_call_reader.adt +35a5b1648c86851725f8aca7520e49a2 correct/basic_function_call_reader/gcc_O2/basic_function_call_reader.bir +6321ee961d64f0e307d540723701e25a correct/basic_function_call_reader/gcc_O2/basic_function_call_reader.relf +c9b21c43f75f8d13e9bdca5a3488e5ae correct/basic_function_call_reader/gcc_O2/basic_function_call_reader.gts diff --git a/src/test/correct/basic_function_call_reader/gcc_O2/basic_function_call_reader.relf b/src/test/correct/basic_function_call_reader/gcc_O2/basic_function_call_reader.relf deleted file mode 100644 index fc93c5efc..000000000 --- a/src/test/correct/basic_function_call_reader/gcc_O2/basic_function_call_reader.relf +++ /dev/null @@ -1,122 +0,0 @@ - -Relocation section '.rela.dyn' at offset 0x460 contains 8 entries: - Offset Info Type Symbol's Value Symbol's Name + Addend -0000000000010d98 0000000000000403 R_AARCH64_RELATIVE 750 -0000000000010da0 0000000000000403 R_AARCH64_RELATIVE 700 -0000000000010ff0 0000000000000403 R_AARCH64_RELATIVE 600 -0000000000011008 0000000000000403 R_AARCH64_RELATIVE 11008 -0000000000010fd8 0000000400000401 R_AARCH64_GLOB_DAT 0000000000000000 _ITM_deregisterTMCloneTable + 0 -0000000000010fe0 0000000500000401 R_AARCH64_GLOB_DAT 0000000000000000 __cxa_finalize@GLIBC_2.17 + 0 -0000000000010fe8 0000000600000401 R_AARCH64_GLOB_DAT 0000000000000000 __gmon_start__ + 0 -0000000000010ff8 0000000800000401 R_AARCH64_GLOB_DAT 0000000000000000 _ITM_registerTMCloneTable + 0 - -Relocation section '.rela.plt' at offset 0x520 contains 4 entries: - Offset Info Type Symbol's Value Symbol's Name + Addend -0000000000010fb0 0000000300000402 R_AARCH64_JUMP_SLOT 0000000000000000 __libc_start_main@GLIBC_2.34 + 0 -0000000000010fb8 0000000500000402 R_AARCH64_JUMP_SLOT 0000000000000000 __cxa_finalize@GLIBC_2.17 + 0 -0000000000010fc0 0000000600000402 R_AARCH64_JUMP_SLOT 0000000000000000 __gmon_start__ + 0 -0000000000010fc8 0000000700000402 R_AARCH64_JUMP_SLOT 0000000000000000 abort@GLIBC_2.17 + 0 - -Symbol table '.dynsym' contains 9 entries: - Num: Value Size Type Bind Vis Ndx Name - 0: 0000000000000000 0 NOTYPE LOCAL DEFAULT UND - 1: 0000000000000580 0 SECTION LOCAL DEFAULT 11 .init - 2: 0000000000011000 0 SECTION LOCAL DEFAULT 22 .data - 3: 0000000000000000 0 FUNC GLOBAL DEFAULT UND __libc_start_main@GLIBC_2.34 (2) - 4: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_deregisterTMCloneTable - 5: 0000000000000000 0 FUNC WEAK DEFAULT UND __cxa_finalize@GLIBC_2.17 (3) - 6: 0000000000000000 0 NOTYPE WEAK DEFAULT UND __gmon_start__ - 7: 0000000000000000 0 FUNC GLOBAL DEFAULT UND abort@GLIBC_2.17 (3) - 8: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_registerTMCloneTable - -Symbol table '.symtab' contains 89 entries: - Num: Value Size Type Bind Vis Ndx Name - 0: 0000000000000000 0 NOTYPE LOCAL DEFAULT UND - 1: 0000000000000238 0 SECTION LOCAL DEFAULT 1 .interp - 2: 0000000000000254 0 SECTION LOCAL DEFAULT 2 .note.gnu.build-id - 3: 0000000000000278 0 SECTION LOCAL DEFAULT 3 .note.ABI-tag - 4: 0000000000000298 0 SECTION LOCAL DEFAULT 4 .gnu.hash - 5: 00000000000002b8 0 SECTION LOCAL DEFAULT 5 .dynsym - 6: 0000000000000390 0 SECTION LOCAL DEFAULT 6 .dynstr - 7: 000000000000041e 0 SECTION LOCAL DEFAULT 7 .gnu.version - 8: 0000000000000430 0 SECTION LOCAL DEFAULT 8 .gnu.version_r - 9: 0000000000000460 0 SECTION LOCAL DEFAULT 9 .rela.dyn - 10: 0000000000000520 0 SECTION LOCAL DEFAULT 10 .rela.plt - 11: 0000000000000580 0 SECTION LOCAL DEFAULT 11 .init - 12: 00000000000005a0 0 SECTION LOCAL DEFAULT 12 .plt - 13: 0000000000000600 0 SECTION LOCAL DEFAULT 13 .text - 14: 0000000000000754 0 SECTION LOCAL DEFAULT 14 .fini - 15: 0000000000000768 0 SECTION LOCAL DEFAULT 15 .rodata - 16: 000000000000076c 0 SECTION LOCAL DEFAULT 16 .eh_frame_hdr - 17: 00000000000007a8 0 SECTION LOCAL DEFAULT 17 .eh_frame - 18: 0000000000010d98 0 SECTION LOCAL DEFAULT 18 .init_array - 19: 0000000000010da0 0 SECTION LOCAL DEFAULT 19 .fini_array - 20: 0000000000010da8 0 SECTION LOCAL DEFAULT 20 .dynamic - 21: 0000000000010f98 0 SECTION LOCAL DEFAULT 21 .got - 22: 0000000000011000 0 SECTION LOCAL DEFAULT 22 .data - 23: 0000000000011010 0 SECTION LOCAL DEFAULT 23 .bss - 24: 0000000000000000 0 SECTION LOCAL DEFAULT 24 .comment - 25: 0000000000000000 0 FILE LOCAL DEFAULT ABS Scrt1.o - 26: 0000000000000278 0 NOTYPE LOCAL DEFAULT 3 $d - 27: 0000000000000278 32 OBJECT LOCAL DEFAULT 3 __abi_tag - 28: 0000000000000640 0 NOTYPE LOCAL DEFAULT 13 $x - 29: 00000000000007bc 0 NOTYPE LOCAL DEFAULT 17 $d - 30: 0000000000000768 0 NOTYPE LOCAL DEFAULT 15 $d - 31: 0000000000000000 0 FILE LOCAL DEFAULT ABS crti.o - 32: 0000000000000674 0 NOTYPE LOCAL DEFAULT 13 $x - 33: 0000000000000674 20 FUNC LOCAL DEFAULT 13 call_weak_fn - 34: 0000000000000580 0 NOTYPE LOCAL DEFAULT 11 $x - 35: 0000000000000754 0 NOTYPE LOCAL DEFAULT 14 $x - 36: 0000000000000000 0 FILE LOCAL DEFAULT ABS crtn.o - 37: 0000000000000590 0 NOTYPE LOCAL DEFAULT 11 $x - 38: 0000000000000760 0 NOTYPE LOCAL DEFAULT 14 $x - 39: 0000000000000000 0 FILE LOCAL DEFAULT ABS basic_function_call_reader.c - 40: 0000000000000600 0 NOTYPE LOCAL DEFAULT 13 $x - 41: 0000000000011014 0 NOTYPE LOCAL DEFAULT 23 $d - 42: 0000000000000830 0 NOTYPE LOCAL DEFAULT 17 $d - 43: 0000000000000000 0 FILE LOCAL DEFAULT ABS crtstuff.c - 44: 0000000000000690 0 NOTYPE LOCAL DEFAULT 13 $x - 45: 0000000000000690 0 FUNC LOCAL DEFAULT 13 deregister_tm_clones - 46: 00000000000006c0 0 FUNC LOCAL DEFAULT 13 register_tm_clones - 47: 0000000000011008 0 NOTYPE LOCAL DEFAULT 22 $d - 48: 0000000000000700 0 FUNC LOCAL DEFAULT 13 __do_global_dtors_aux - 49: 0000000000011010 1 OBJECT LOCAL DEFAULT 23 completed.0 - 50: 0000000000010da0 0 NOTYPE LOCAL DEFAULT 19 $d - 51: 0000000000010da0 0 OBJECT LOCAL DEFAULT 19 __do_global_dtors_aux_fini_array_entry - 52: 0000000000000750 0 FUNC LOCAL DEFAULT 13 frame_dummy - 53: 0000000000010d98 0 NOTYPE LOCAL DEFAULT 18 $d - 54: 0000000000010d98 0 OBJECT LOCAL DEFAULT 18 __frame_dummy_init_array_entry - 55: 00000000000007d0 0 NOTYPE LOCAL DEFAULT 17 $d - 56: 0000000000011010 0 NOTYPE LOCAL DEFAULT 23 $d - 57: 0000000000000000 0 FILE LOCAL DEFAULT ABS crtstuff.c - 58: 0000000000000844 0 NOTYPE LOCAL DEFAULT 17 $d - 59: 0000000000000844 0 OBJECT LOCAL DEFAULT 17 __FRAME_END__ - 60: 0000000000000000 0 FILE LOCAL DEFAULT ABS - 61: 0000000000010da8 0 OBJECT LOCAL DEFAULT ABS _DYNAMIC - 62: 000000000000076c 0 NOTYPE LOCAL DEFAULT 16 __GNU_EH_FRAME_HDR - 63: 0000000000010fd0 0 OBJECT LOCAL DEFAULT ABS _GLOBAL_OFFSET_TABLE_ - 64: 00000000000005a0 0 NOTYPE LOCAL DEFAULT 12 $x - 65: 0000000000000000 0 FUNC GLOBAL DEFAULT UND __libc_start_main@GLIBC_2.34 - 66: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_deregisterTMCloneTable - 67: 0000000000011000 0 NOTYPE WEAK DEFAULT 22 data_start - 68: 0000000000011010 0 NOTYPE GLOBAL DEFAULT 23 __bss_start__ - 69: 0000000000000000 0 FUNC WEAK DEFAULT UND __cxa_finalize@GLIBC_2.17 - 70: 0000000000011020 0 NOTYPE GLOBAL DEFAULT 23 _bss_end__ - 71: 0000000000011010 0 NOTYPE GLOBAL DEFAULT 22 _edata - 72: 0000000000011014 4 OBJECT GLOBAL DEFAULT 23 x - 73: 0000000000000754 0 FUNC GLOBAL HIDDEN 14 _fini - 74: 0000000000011020 0 NOTYPE GLOBAL DEFAULT 23 __bss_end__ - 75: 0000000000011000 0 NOTYPE GLOBAL DEFAULT 22 __data_start - 76: 0000000000000000 0 NOTYPE WEAK DEFAULT UND __gmon_start__ - 77: 0000000000011008 0 OBJECT GLOBAL HIDDEN 22 __dso_handle - 78: 0000000000000000 0 FUNC GLOBAL DEFAULT UND abort@GLIBC_2.17 - 79: 0000000000000768 4 OBJECT GLOBAL DEFAULT 15 _IO_stdin_used - 80: 0000000000011020 0 NOTYPE GLOBAL DEFAULT 23 _end - 81: 0000000000000640 52 FUNC GLOBAL DEFAULT 13 _start - 82: 0000000000011020 0 NOTYPE GLOBAL DEFAULT 23 __end__ - 83: 0000000000011018 4 OBJECT GLOBAL DEFAULT 23 y - 84: 0000000000011010 0 NOTYPE GLOBAL DEFAULT 23 __bss_start - 85: 0000000000000600 24 FUNC GLOBAL DEFAULT 13 main - 86: 0000000000011010 0 OBJECT GLOBAL HIDDEN 22 __TMC_END__ - 87: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_registerTMCloneTable - 88: 0000000000000580 0 FUNC GLOBAL HIDDEN 11 _init diff --git a/src/test/correct/basic_function_call_reader/gcc_O2/basic_function_call_reader_gtirb.expected b/src/test/correct/basic_function_call_reader/gcc_O2/basic_function_call_reader_gtirb.expected index a67f831b3..8e04dde6b 100644 --- a/src/test/correct/basic_function_call_reader/gcc_O2/basic_function_call_reader_gtirb.expected +++ b/src/test/correct/basic_function_call_reader/gcc_O2/basic_function_call_reader_gtirb.expected @@ -65,7 +65,7 @@ implementation {:extern} guarantee_reflexive() assert (memory_load32_le(mem, $y_addr) == memory_load32_le(mem, $y_addr)); } -procedure main_1536(); +procedure main(); modifies Gamma_R0, Gamma_R1, Gamma_mem, R0, R1, mem; free requires (memory_load64_le(mem, 69632bv64) == 0bv64); free requires (memory_load64_le(mem, 69640bv64) == 69640bv64); @@ -80,40 +80,40 @@ procedure main_1536(); free ensures (memory_load64_le(mem, 69616bv64) == 1536bv64); free ensures (memory_load64_le(mem, 69640bv64) == 69640bv64); -implementation main_1536() +implementation main() { - var Gamma_load19: bool; - var Gamma_load20: bool; - var load19: bv32; - var load20: bv32; - main_1536__0__dHiJQHnYTpm65oMaN9oFgA: - assume {:captureState "main_1536__0__dHiJQHnYTpm65oMaN9oFgA"} true; + var $load19: bv32; + var $load20: bv32; + var Gamma_$load19: bool; + var Gamma_$load20: bool; + $main$__0__$dHiJQHnYTpm65oMaN9oFgA: + assume {:captureState "$main$__0__$dHiJQHnYTpm65oMaN9oFgA"} true; R0, Gamma_R0 := 69632bv64, true; R1, Gamma_R1 := bvadd64(R0, 20bv64), Gamma_R0; call rely(); - load19, Gamma_load19 := memory_load32_le(mem, bvadd64(R0, 20bv64)), (gamma_load32(Gamma_mem, bvadd64(R0, 20bv64)) || L(mem, bvadd64(R0, 20bv64))); - R0, Gamma_R0 := zero_extend32_32(load19), Gamma_load19; + $load19, Gamma_$load19 := memory_load32_le(mem, bvadd64(R0, 20bv64)), (gamma_load32(Gamma_mem, bvadd64(R0, 20bv64)) || L(mem, bvadd64(R0, 20bv64))); + R0, Gamma_R0 := zero_extend32_32($load19), Gamma_$load19; assert Gamma_R0; - goto main_1536__0__dHiJQHnYTpm65oMaN9oFgA_goto_main_1536__2__5XEKQ4igS9uTmAyY~2l26Q, main_1536__0__dHiJQHnYTpm65oMaN9oFgA_goto_main_1536__1___i5~WMZiQtmSmwJkk1py6w; - main_1536__0__dHiJQHnYTpm65oMaN9oFgA_goto_main_1536__1___i5~WMZiQtmSmwJkk1py6w: - assume {:captureState "main_1536__0__dHiJQHnYTpm65oMaN9oFgA_goto_main_1536__1___i5~WMZiQtmSmwJkk1py6w"} true; - assume (!(R0[32:0] == 0bv32)); + goto $main$__0__$dHiJQHnYTpm65oMaN9oFgA_goto_$main$__2__$5XEKQ4igS9uTmAyY~2l26Q, $main$__0__$dHiJQHnYTpm65oMaN9oFgA_goto_$main$__1__$_i5~WMZiQtmSmwJkk1py6w; + $main$__1__$_i5~WMZiQtmSmwJkk1py6w: + assume {:captureState "$main$__1__$_i5~WMZiQtmSmwJkk1py6w"} true; call rely(); - load20, Gamma_load20 := memory_load32_le(mem, bvadd64(R1, 4bv64)), (gamma_load32(Gamma_mem, bvadd64(R1, 4bv64)) || L(mem, bvadd64(R1, 4bv64))); - R0, Gamma_R0 := zero_extend32_32(load20), Gamma_load20; - goto main_1536__1___i5~WMZiQtmSmwJkk1py6w; - main_1536__1___i5~WMZiQtmSmwJkk1py6w: - assume {:captureState "main_1536__1___i5~WMZiQtmSmwJkk1py6w"} true; - goto main_1536__2__5XEKQ4igS9uTmAyY~2l26Q; - main_1536__0__dHiJQHnYTpm65oMaN9oFgA_goto_main_1536__2__5XEKQ4igS9uTmAyY~2l26Q: - assume {:captureState "main_1536__0__dHiJQHnYTpm65oMaN9oFgA_goto_main_1536__2__5XEKQ4igS9uTmAyY~2l26Q"} true; + $load20, Gamma_$load20 := memory_load32_le(mem, bvadd64(R1, 4bv64)), (gamma_load32(Gamma_mem, bvadd64(R1, 4bv64)) || L(mem, bvadd64(R1, 4bv64))); + R0, Gamma_R0 := zero_extend32_32($load20), Gamma_$load20; + goto $main$__2__$5XEKQ4igS9uTmAyY~2l26Q; + $main$__2__$5XEKQ4igS9uTmAyY~2l26Q: + assume {:captureState "$main$__2__$5XEKQ4igS9uTmAyY~2l26Q"} true; + goto main_basil_return; + $main$__0__$dHiJQHnYTpm65oMaN9oFgA_goto_$main$__2__$5XEKQ4igS9uTmAyY~2l26Q: + assume {:captureState "$main$__0__$dHiJQHnYTpm65oMaN9oFgA_goto_$main$__2__$5XEKQ4igS9uTmAyY~2l26Q"} true; assume (R0[32:0] == 0bv32); - goto main_1536__2__5XEKQ4igS9uTmAyY~2l26Q; - main_1536__2__5XEKQ4igS9uTmAyY~2l26Q: - assume {:captureState "main_1536__2__5XEKQ4igS9uTmAyY~2l26Q"} true; - goto main_1536_basil_return; - main_1536_basil_return: - assume {:captureState "main_1536_basil_return"} true; + goto $main$__2__$5XEKQ4igS9uTmAyY~2l26Q; + $main$__0__$dHiJQHnYTpm65oMaN9oFgA_goto_$main$__1__$_i5~WMZiQtmSmwJkk1py6w: + assume {:captureState "$main$__0__$dHiJQHnYTpm65oMaN9oFgA_goto_$main$__1__$_i5~WMZiQtmSmwJkk1py6w"} true; + assume (!(R0[32:0] == 0bv32)); + goto $main$__1__$_i5~WMZiQtmSmwJkk1py6w; + main_basil_return: + assume {:captureState "main_basil_return"} true; return; } diff --git a/src/test/correct/basic_function_call_reader/gcc_pic/basic_function_call_reader.adt b/src/test/correct/basic_function_call_reader/gcc_pic/basic_function_call_reader.adt deleted file mode 100644 index 0b59887e3..000000000 --- a/src/test/correct/basic_function_call_reader/gcc_pic/basic_function_call_reader.adt +++ /dev/null @@ -1,536 +0,0 @@ -Project(Attrs([Attr("filename","\"gcc_pic/basic_function_call_reader.out\""), -Attr("image-specification","(declare abi (name str))\n(declare arch (name str))\n(declare base-address (addr int))\n(declare bias (off int))\n(declare bits (size int))\n(declare code-region (addr int) (size int) (off int))\n(declare code-start (addr int))\n(declare entry-point (addr int))\n(declare external-reference (addr int) (name str))\n(declare format (name str))\n(declare is-executable (flag bool))\n(declare is-little-endian (flag bool))\n(declare llvm:base-address (addr int))\n(declare llvm:code-entry (name str) (off int) (size int))\n(declare llvm:coff-import-library (name str))\n(declare llvm:coff-virtual-section-header (name str) (addr int) (size int))\n(declare llvm:elf-program-header (name str) (off int) (size int))\n(declare llvm:elf-program-header-flags (name str) (ld bool) (r bool) \n (w bool) (x bool))\n(declare llvm:elf-virtual-program-header (name str) (addr int) (size int))\n(declare llvm:entry-point (addr int))\n(declare llvm:macho-symbol (name str) (value int))\n(declare llvm:name-reference (at int) (name str))\n(declare llvm:relocation (at int) (addr int))\n(declare llvm:section-entry (name str) (addr int) (size int) (off int))\n(declare llvm:section-flags (name str) (r bool) (w bool) (x bool))\n(declare llvm:segment-command (name str) (off int) (size int))\n(declare llvm:segment-command-flags (name str) (r bool) (w bool) (x bool))\n(declare llvm:symbol-entry (name str) (addr int) (size int) (off int)\n (value int))\n(declare llvm:virtual-segment-command (name str) (addr int) (size int))\n(declare mapped (addr int) (size int) (off int))\n(declare named-region (addr int) (size int) (name str))\n(declare named-symbol (addr int) (name str))\n(declare require (name str))\n(declare section (addr int) (size int))\n(declare segment (addr int) (size int) (r bool) (w bool) (x bool))\n(declare subarch (name str))\n(declare symbol-chunk (addr int) (size int) (root int))\n(declare symbol-value (addr int) (value int))\n(declare system (name str))\n(declare vendor (name str))\n\n(abi unknown)\n(arch aarch64)\n(base-address 0)\n(bias 0)\n(bits 64)\n(code-region 1936 20 1936)\n(code-region 1600 336 1600)\n(code-region 1488 96 1488)\n(code-region 1456 24 1456)\n(code-start 1652)\n(code-start 1600)\n(code-start 1876)\n(entry-point 1600)\n(external-reference 69576 _ITM_deregisterTMCloneTable)\n(external-reference 69584 __cxa_finalize)\n(external-reference 69600 __gmon_start__)\n(external-reference 69624 _ITM_registerTMCloneTable)\n(external-reference 69536 __libc_start_main)\n(external-reference 69544 __cxa_finalize)\n(external-reference 69552 __gmon_start__)\n(external-reference 69560 abort)\n(format elf)\n(is-executable true)\n(is-little-endian true)\n(llvm:base-address 0)\n(llvm:code-entry abort 0 0)\n(llvm:code-entry __cxa_finalize 0 0)\n(llvm:code-entry __libc_start_main 0 0)\n(llvm:code-entry _init 1456 0)\n(llvm:code-entry main 1876 60)\n(llvm:code-entry _start 1600 52)\n(llvm:code-entry abort@GLIBC_2.17 0 0)\n(llvm:code-entry _fini 1936 0)\n(llvm:code-entry __cxa_finalize@GLIBC_2.17 0 0)\n(llvm:code-entry __libc_start_main@GLIBC_2.34 0 0)\n(llvm:code-entry frame_dummy 1872 0)\n(llvm:code-entry __do_global_dtors_aux 1792 0)\n(llvm:code-entry register_tm_clones 1728 0)\n(llvm:code-entry deregister_tm_clones 1680 0)\n(llvm:code-entry call_weak_fn 1652 20)\n(llvm:code-entry .fini 1936 20)\n(llvm:code-entry .text 1600 336)\n(llvm:code-entry .plt 1488 96)\n(llvm:code-entry .init 1456 24)\n(llvm:elf-program-header 08 3464 632)\n(llvm:elf-program-header 07 0 0)\n(llvm:elf-program-header 06 1960 60)\n(llvm:elf-program-header 05 596 68)\n(llvm:elf-program-header 04 3480 496)\n(llvm:elf-program-header 03 3464 648)\n(llvm:elf-program-header 02 0 2188)\n(llvm:elf-program-header 01 568 27)\n(llvm:elf-program-header 00 64 504)\n(llvm:elf-program-header-flags 08 false true false false)\n(llvm:elf-program-header-flags 07 false true true false)\n(llvm:elf-program-header-flags 06 false true false false)\n(llvm:elf-program-header-flags 05 false true false false)\n(llvm:elf-program-header-flags 04 false true true false)\n(llvm:elf-program-header-flags 03 true true true false)\n(llvm:elf-program-header-flags 02 true true false true)\n(llvm:elf-program-header-flags 01 false true false false)\n(llvm:elf-program-header-flags 00 false true false false)\n(llvm:elf-virtual-program-header 08 69000 632)\n(llvm:elf-virtual-program-header 07 0 0)\n(llvm:elf-virtual-program-header 06 1960 60)\n(llvm:elf-virtual-program-header 05 596 68)\n(llvm:elf-virtual-program-header 04 69016 496)\n(llvm:elf-virtual-program-header 03 69000 664)\n(llvm:elf-virtual-program-header 02 0 2188)\n(llvm:elf-virtual-program-header 01 568 27)\n(llvm:elf-virtual-program-header 00 64 504)\n(llvm:entry-point 1600)\n(llvm:name-reference 69560 abort)\n(llvm:name-reference 69552 __gmon_start__)\n(llvm:name-reference 69544 __cxa_finalize)\n(llvm:name-reference 69536 __libc_start_main)\n(llvm:name-reference 69624 _ITM_registerTMCloneTable)\n(llvm:name-reference 69600 __gmon_start__)\n(llvm:name-reference 69584 __cxa_finalize)\n(llvm:name-reference 69576 _ITM_deregisterTMCloneTable)\n(llvm:section-entry .shstrtab 0 250 6858)\n(llvm:section-entry .strtab 0 562 6296)\n(llvm:section-entry .symtab 0 2136 4160)\n(llvm:section-entry .comment 0 43 4112)\n(llvm:section-entry .bss 69648 16 4112)\n(llvm:section-entry .data 69632 16 4096)\n(llvm:section-entry .got 69512 120 3976)\n(llvm:section-entry .dynamic 69016 496 3480)\n(llvm:section-entry .fini_array 69008 8 3472)\n(llvm:section-entry .init_array 69000 8 3464)\n(llvm:section-entry .eh_frame 2024 164 2024)\n(llvm:section-entry .eh_frame_hdr 1960 60 1960)\n(llvm:section-entry .rodata 1956 4 1956)\n(llvm:section-entry .fini 1936 20 1936)\n(llvm:section-entry .text 1600 336 1600)\n(llvm:section-entry .plt 1488 96 1488)\n(llvm:section-entry .init 1456 24 1456)\n(llvm:section-entry .rela.plt 1360 96 1360)\n(llvm:section-entry .rela.dyn 1120 240 1120)\n(llvm:section-entry .gnu.version_r 1072 48 1072)\n(llvm:section-entry .gnu.version 1054 18 1054)\n(llvm:section-entry .dynstr 912 141 912)\n(llvm:section-entry .dynsym 696 216 696)\n(llvm:section-entry .gnu.hash 664 28 664)\n(llvm:section-entry .note.ABI-tag 632 32 632)\n(llvm:section-entry .note.gnu.build-id 596 36 596)\n(llvm:section-entry .interp 568 27 568)\n(llvm:section-flags .shstrtab true false false)\n(llvm:section-flags .strtab true false false)\n(llvm:section-flags .symtab true false false)\n(llvm:section-flags .comment true false false)\n(llvm:section-flags .bss true true false)\n(llvm:section-flags .data true true false)\n(llvm:section-flags .got true true false)\n(llvm:section-flags .dynamic true true false)\n(llvm:section-flags .fini_array true true false)\n(llvm:section-flags .init_array true true false)\n(llvm:section-flags .eh_frame true false false)\n(llvm:section-flags .eh_frame_hdr true false false)\n(llvm:section-flags .rodata true false false)\n(llvm:section-flags .fini true false true)\n(llvm:section-flags .text true false true)\n(llvm:section-flags .plt true false true)\n(llvm:section-flags .init true false true)\n(llvm:section-flags .rela.plt true false false)\n(llvm:section-flags .rela.dyn true false false)\n(llvm:section-flags .gnu.version_r true false false)\n(llvm:section-flags .gnu.version true false false)\n(llvm:section-flags .dynstr true false false)\n(llvm:section-flags .dynsym true false false)\n(llvm:section-flags .gnu.hash true false false)\n(llvm:section-flags .note.ABI-tag true false false)\n(llvm:section-flags .note.gnu.build-id true false false)\n(llvm:section-flags .interp true false false)\n(llvm:symbol-entry abort 0 0 0 0)\n(llvm:symbol-entry __cxa_finalize 0 0 0 0)\n(llvm:symbol-entry __libc_start_main 0 0 0 0)\n(llvm:symbol-entry _init 1456 0 1456 1456)\n(llvm:symbol-entry main 1876 60 1876 1876)\n(llvm:symbol-entry _start 1600 52 1600 1600)\n(llvm:symbol-entry abort@GLIBC_2.17 0 0 0 0)\n(llvm:symbol-entry _fini 1936 0 1936 1936)\n(llvm:symbol-entry __cxa_finalize@GLIBC_2.17 0 0 0 0)\n(llvm:symbol-entry __libc_start_main@GLIBC_2.34 0 0 0 0)\n(llvm:symbol-entry frame_dummy 1872 0 1872 1872)\n(llvm:symbol-entry __do_global_dtors_aux 1792 0 1792 1792)\n(llvm:symbol-entry register_tm_clones 1728 0 1728 1728)\n(llvm:symbol-entry deregister_tm_clones 1680 0 1680 1680)\n(llvm:symbol-entry call_weak_fn 1652 20 1652 1652)\n(mapped 0 2188 0)\n(mapped 69000 648 3464)\n(named-region 0 2188 02)\n(named-region 69000 664 03)\n(named-region 568 27 .interp)\n(named-region 596 36 .note.gnu.build-id)\n(named-region 632 32 .note.ABI-tag)\n(named-region 664 28 .gnu.hash)\n(named-region 696 216 .dynsym)\n(named-region 912 141 .dynstr)\n(named-region 1054 18 .gnu.version)\n(named-region 1072 48 .gnu.version_r)\n(named-region 1120 240 .rela.dyn)\n(named-region 1360 96 .rela.plt)\n(named-region 1456 24 .init)\n(named-region 1488 96 .plt)\n(named-region 1600 336 .text)\n(named-region 1936 20 .fini)\n(named-region 1956 4 .rodata)\n(named-region 1960 60 .eh_frame_hdr)\n(named-region 2024 164 .eh_frame)\n(named-region 69000 8 .init_array)\n(named-region 69008 8 .fini_array)\n(named-region 69016 496 .dynamic)\n(named-region 69512 120 .got)\n(named-region 69632 16 .data)\n(named-region 69648 16 .bss)\n(named-region 0 43 .comment)\n(named-region 0 2136 .symtab)\n(named-region 0 562 .strtab)\n(named-region 0 250 .shstrtab)\n(named-symbol 1652 call_weak_fn)\n(named-symbol 1680 deregister_tm_clones)\n(named-symbol 1728 register_tm_clones)\n(named-symbol 1792 __do_global_dtors_aux)\n(named-symbol 1872 frame_dummy)\n(named-symbol 0 __libc_start_main@GLIBC_2.34)\n(named-symbol 0 __cxa_finalize@GLIBC_2.17)\n(named-symbol 1936 _fini)\n(named-symbol 0 abort@GLIBC_2.17)\n(named-symbol 1600 _start)\n(named-symbol 1876 main)\n(named-symbol 1456 _init)\n(named-symbol 0 __libc_start_main)\n(named-symbol 0 __cxa_finalize)\n(named-symbol 0 abort)\n(require libc.so.6)\n(section 568 27)\n(section 596 36)\n(section 632 32)\n(section 664 28)\n(section 696 216)\n(section 912 141)\n(section 1054 18)\n(section 1072 48)\n(section 1120 240)\n(section 1360 96)\n(section 1456 24)\n(section 1488 96)\n(section 1600 336)\n(section 1936 20)\n(section 1956 4)\n(section 1960 60)\n(section 2024 164)\n(section 69000 8)\n(section 69008 8)\n(section 69016 496)\n(section 69512 120)\n(section 69632 16)\n(section 69648 16)\n(section 0 43)\n(section 0 2136)\n(section 0 562)\n(section 0 250)\n(segment 0 2188 true false true)\n(segment 69000 664 true true false)\n(subarch v8)\n(symbol-chunk 1652 20 1652)\n(symbol-chunk 1600 52 1600)\n(symbol-chunk 1876 60 1876)\n(symbol-value 1652 1652)\n(symbol-value 1680 1680)\n(symbol-value 1728 1728)\n(symbol-value 1792 1792)\n(symbol-value 1872 1872)\n(symbol-value 1936 1936)\n(symbol-value 1600 1600)\n(symbol-value 1876 1876)\n(symbol-value 1456 1456)\n(symbol-value 0 0)\n(system \"\")\n(vendor \"\")\n"), -Attr("abi-name","\"aarch64-linux-gnu-elf\"")]), -Sections([Section(".shstrtab", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x40\x06\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xc8\x1b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x38\x00\x09\x00\x40\x00\x1c\x00\x1b\x00\x06\x00\x00\x00\x04\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x04\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x8c\x08\x00\x00\x00\x00\x00\x00\x8c\x08\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x01\x00\x00\x00\x06\x00\x00\x00\x88\x0d\x00\x00\x00\x00\x00\x00\x88\x0d"), -Section(".strtab", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x40\x06\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xc8\x1b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x38\x00\x09\x00\x40\x00\x1c\x00\x1b\x00\x06\x00\x00\x00\x04\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x04\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x8c\x08\x00\x00\x00\x00\x00\x00\x8c\x08\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x01\x00\x00\x00\x06\x00\x00\x00\x88\x0d\x00\x00\x00\x00\x00\x00\x88\x0d\x01\x00\x00\x00\x00\x00\x88\x0d\x01\x00\x00\x00\x00\x00\x88\x02\x00\x00\x00\x00\x00\x00\x98\x02\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x02\x00\x00\x00\x06\x00\x00\x00\x98\x0d\x00\x00\x00\x00\x00\x00\x98\x0d\x01\x00\x00\x00\x00\x00\x98\x0d\x01\x00\x00\x00\x00\x00\xf0\x01\x00\x00\x00\x00\x00\x00\xf0\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x04\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x50\xe5\x74\x64\x04\x00\x00\x00\xa8\x07\x00\x00\x00\x00\x00\x00\xa8\x07\x00\x00\x00\x00\x00\x00\xa8\x07\x00\x00\x00\x00\x00\x00\x3c\x00\x00\x00\x00\x00\x00\x00\x3c\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x51\xe5\x74\x64\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x52\xe5\x74\x64\x04\x00\x00\x00\x88\x0d\x00\x00\x00\x00\x00\x00\x88\x0d\x01\x00\x00\x00\x00\x00\x88\x0d\x01\x00\x00\x00\x00\x00\x78\x02\x00\x00\x00\x00\x00\x00\x78\x02\x00\x00\x00\x00\x00\x00\x01\x00"), -Section(".symtab", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x40\x06\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xc8\x1b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x38\x00\x09\x00\x40\x00\x1c\x00\x1b\x00\x06\x00\x00\x00\x04\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x04\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x8c\x08\x00\x00\x00\x00\x00\x00\x8c\x08\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x01\x00\x00\x00\x06\x00\x00\x00\x88\x0d\x00\x00\x00\x00\x00\x00\x88\x0d\x01\x00\x00\x00\x00\x00\x88\x0d\x01\x00\x00\x00\x00\x00\x88\x02\x00\x00\x00\x00\x00\x00\x98\x02\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x02\x00\x00\x00\x06\x00\x00\x00\x98\x0d\x00\x00\x00\x00\x00\x00\x98\x0d\x01\x00\x00\x00\x00\x00\x98\x0d\x01\x00\x00\x00\x00\x00\xf0\x01\x00\x00\x00\x00\x00\x00\xf0\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x04\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x50\xe5\x74\x64\x04\x00\x00\x00\xa8\x07\x00\x00\x00\x00\x00\x00\xa8\x07\x00\x00\x00\x00\x00\x00\xa8\x07\x00\x00\x00\x00\x00\x00\x3c\x00\x00\x00\x00\x00\x00\x00\x3c\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x51\xe5\x74\x64\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x52\xe5\x74\x64\x04\x00\x00\x00\x88\x0d\x00\x00\x00\x00\x00\x00\x88\x0d\x01\x00\x00\x00\x00\x00\x88\x0d\x01\x00\x00\x00\x00\x00\x78\x02\x00\x00\x00\x00\x00\x00\x78\x02\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x2f\x6c\x69\x62\x2f\x6c\x64\x2d\x6c\x69\x6e\x75\x78\x2d\x61\x61\x72\x63\x68\x36\x34\x2e\x73\x6f\x2e\x31\x00\x00\x04\x00\x00\x00\x14\x00\x00\x00\x03\x00\x00\x00\x47\x4e\x55\x00\x69\x04\xb1\x7d\xb2\x65\x87\x41\x8a\xeb\xf9\xd3\xdb\x1c\x28\x2b\x9d\xf0\xc2\xac\x04\x00\x00\x00\x10\x00\x00\x00\x01\x00\x00\x00\x47\x4e\x55\x00\x00\x00\x00\x00\x03\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x01\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x0b\x00\xb0\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x16\x00\x00\x10\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x48\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x22\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x22\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x73\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5f\x5f\x63\x78\x61\x5f\x66\x69\x6e\x61\x6c\x69\x7a\x65\x00\x5f\x5f\x6c\x69\x62\x63\x5f\x73\x74\x61\x72\x74\x5f\x6d\x61\x69\x6e\x00\x61\x62\x6f\x72\x74\x00\x6c\x69\x62\x63\x2e\x73\x6f\x2e\x36\x00\x47\x4c\x49\x42\x43\x5f\x32\x2e\x31\x37\x00\x47\x4c\x49\x42\x43\x5f\x32\x2e\x33\x34\x00\x5f\x49\x54\x4d\x5f\x64\x65\x72\x65\x67\x69\x73\x74\x65\x72\x54\x4d\x43\x6c\x6f\x6e\x65\x54\x61\x62\x6c\x65\x00\x5f\x5f\x67\x6d\x6f\x6e\x5f\x73\x74\x61\x72\x74\x5f\x5f\x00\x5f\x49\x54\x4d\x5f\x72\x65\x67\x69\x73\x74\x65\x72\x54\x4d\x43\x6c\x6f\x6e\x65\x54\x61\x62\x6c\x65\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x01\x00\x03\x00\x01\x00\x03\x00\x01\x00\x01\x00\x02\x00\x28\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x97\x91\x96\x06\x00\x00\x03\x00\x32\x00\x00\x00\x10\x00\x00\x00\xb4\x91\x96\x06\x00\x00\x02\x00\x3d\x00\x00\x00\x00\x00\x00\x00\x88\x0d\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x50\x07\x00\x00\x00\x00\x00\x00\x90\x0d\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\xd8\x0f\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x14\x10\x01\x00\x00\x00\x00\x00\xe8\x0f\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x18\x10\x01\x00\x00\x00\x00\x00\xf0\x0f\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x54\x07\x00\x00\x00\x00\x00\x00\x08\x10\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x08\x10\x01\x00\x00\x00\x00\x00\xc8\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xd0\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe0\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xf8\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xa0\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xa8\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xb0\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xb8\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1f\x20\x03\xd5\xfd\x7b\xbf\xa9\xfd\x03\x00\x91\x2e\x00\x00\x94\xfd\x7b\xc1\xa8\xc0\x03\x5f\xd6\x00\x00\x00\x00\x00\x00\x00\x00\xf0\x7b\xbf\xa9\x90\x00\x00\x90\x11\xce\x47\xf9\x10\x62\x3e\x91\x20\x02\x1f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x90\x00\x00\x90\x11\xd2\x47\xf9\x10\x82\x3e\x91\x20\x02\x1f\xd6\x90\x00\x00\x90\x11\xd6\x47\xf9\x10\xa2\x3e\x91\x20\x02\x1f\xd6\x90\x00\x00\x90\x11\xda\x47\xf9\x10\xc2\x3e\x91\x20\x02\x1f\xd6\x90\x00\x00\x90\x11\xde\x47\xf9\x10\xe2\x3e\x91\x20\x02\x1f\xd6\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1f\x20\x03\xd5\x1d\x00\x80\xd2\x1e\x00\x80\xd2\xe5\x03\x00\xaa\xe1\x03\x40\xf9\xe2\x23\x00\x91\xe6\x03\x00\x91\x80\x00\x00\x90\x00\xf8\x47\xf9\x03\x00\x80\xd2\x04\x00\x80\xd2\xe1\xff\xff\x97\xec\xff\xff\x97\x80\x00\x00\x90\x00\xf0\x47\xf9\x40\x00\x00\xb4\xe4\xff\xff\x17\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x80\x00\x00\xb0\x00\x40\x00\x91\x81\x00\x00\xb0\x21\x40\x00\x91\x3f\x00\x00\xeb\xc0\x00\x00\x54\x81\x00\x00\x90\x21\xe4\x47\xf9\x61\x00\x00\xb4\xf0\x03\x01\xaa\x00\x02\x1f\xd6\xc0\x03\x5f\xd6\x80\x00\x00\xb0\x00\x40\x00\x91\x81\x00\x00\xb0\x21\x40\x00\x91\x21\x00\x00\xcb\x22\xfc\x7f\xd3\x41\x0c\x81\x8b\x21\xfc\x41\x93\xc1\x00\x00\xb4\x82\x00\x00\x90\x42\xfc\x47\xf9\x62\x00\x00\xb4\xf0\x03\x02\xaa\x00\x02\x1f\xd6\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\xfd\x7b\xbe\xa9\xfd\x03\x00\x91\xf3\x0b\x00\xf9\x93\x00\x00\xb0\x60\x42\x40\x39\x40\x01\x00\x35\x80\x00\x00\x90\x00\xe8\x47\xf9\x80\x00\x00\xb4\x80\x00\x00\xb0\x00\x04\x40\xf9\xb5\xff\xff\x97\xd8\xff\xff\x97\x20\x00\x80\x52\x60\x42\x00\x39\xf3\x0b\x40\xf9\xfd\x7b\xc2\xa8\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\xdc\xff\xff\x17\xff\x43\x00\xd1\x80\x00\x00\x90\x00\xf4\x47\xf9\x00\x00\x40\xb9\xe0\x0f\x00\xb9\x80\x00\x00\x90\x00\xec\x47\xf9\x00\x00\x40\xb9\x1f\x00\x00\x71\x61\x00\x00\x54\x00\x00\x80\x52\x02\x00\x00\x14\xe0\x0f\x40\xb9\xff\x43\x00\x91\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\xfd\x7b\xbf\xa9\xfd\x03\x00\x91\xfd\x7b\xc1\xa8\xc0\x03\x5f\xd6\x01\x00\x02\x00\x01\x1b\x03\x3b\x3c\x00\x00\x00\x06\x00\x00\x00\x98\xfe\xff\xff\x54\x00\x00\x00\xe8\xfe\xff\xff\x68\x00\x00\x00\x18\xff\xff\xff\x7c\x00\x00\x00\x58\xff\xff\xff\x90\x00\x00\x00\xa8\xff\xff\xff\xb4\x00\x00\x00\xac\xff\xff\xff\xc8\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x01\x7a\x52\x00\x04\x78\x1e\x01\x1b\x0c\x1f\x00\x10\x00\x00\x00\x18\x00\x00\x00\x3c\xfe\xff\xff\x34\x00\x00\x00\x00\x41\x07\x1e\x10\x00\x00\x00\x2c\x00\x00\x00\x78\xfe\xff\xff\x30\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x40\x00\x00\x00\x94\xfe\xff\xff\x3c\x00\x00\x00\x00\x00\x00\x00\x20\x00\x00\x00\x54\x00\x00\x00\xc0\xfe\xff\xff\x48\x00\x00\x00\x00\x41\x0e\x20\x9d\x04\x9e\x03\x42\x93\x02\x4e\xde\xdd\xd3\x0e"), -Section(".comment", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x40\x06\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xc8\x1b\x00"), -Section(".interp", 0x238, "\x2f\x6c\x69\x62\x2f\x6c\x64\x2d\x6c\x69\x6e\x75\x78\x2d\x61\x61\x72\x63\x68\x36\x34\x2e\x73\x6f\x2e\x31\x00"), -Section(".note.gnu.build-id", 0x254, "\x04\x00\x00\x00\x14\x00\x00\x00\x03\x00\x00\x00\x47\x4e\x55\x00\x69\x04\xb1\x7d\xb2\x65\x87\x41\x8a\xeb\xf9\xd3\xdb\x1c\x28\x2b\x9d\xf0\xc2\xac"), -Section(".note.ABI-tag", 0x278, "\x04\x00\x00\x00\x10\x00\x00\x00\x01\x00\x00\x00\x47\x4e\x55\x00\x00\x00\x00\x00\x03\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00"), -Section(".gnu.hash", 0x298, "\x01\x00\x00\x00\x01\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".dynsym", 0x2B8, "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x0b\x00\xb0\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x16\x00\x00\x10\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x48\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x22\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x22\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x73\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".dynstr", 0x390, "\x00\x5f\x5f\x63\x78\x61\x5f\x66\x69\x6e\x61\x6c\x69\x7a\x65\x00\x5f\x5f\x6c\x69\x62\x63\x5f\x73\x74\x61\x72\x74\x5f\x6d\x61\x69\x6e\x00\x61\x62\x6f\x72\x74\x00\x6c\x69\x62\x63\x2e\x73\x6f\x2e\x36\x00\x47\x4c\x49\x42\x43\x5f\x32\x2e\x31\x37\x00\x47\x4c\x49\x42\x43\x5f\x32\x2e\x33\x34\x00\x5f\x49\x54\x4d\x5f\x64\x65\x72\x65\x67\x69\x73\x74\x65\x72\x54\x4d\x43\x6c\x6f\x6e\x65\x54\x61\x62\x6c\x65\x00\x5f\x5f\x67\x6d\x6f\x6e\x5f\x73\x74\x61\x72\x74\x5f\x5f\x00\x5f\x49\x54\x4d\x5f\x72\x65\x67\x69\x73\x74\x65\x72\x54\x4d\x43\x6c\x6f\x6e\x65\x54\x61\x62\x6c\x65\x00"), -Section(".gnu.version", 0x41E, "\x00\x00\x00\x00\x00\x00\x02\x00\x01\x00\x03\x00\x01\x00\x03\x00\x01\x00"), -Section(".gnu.version_r", 0x430, "\x01\x00\x02\x00\x28\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x97\x91\x96\x06\x00\x00\x03\x00\x32\x00\x00\x00\x10\x00\x00\x00\xb4\x91\x96\x06\x00\x00\x02\x00\x3d\x00\x00\x00\x00\x00\x00\x00"), -Section(".rela.dyn", 0x460, "\x88\x0d\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x50\x07\x00\x00\x00\x00\x00\x00\x90\x0d\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\xd8\x0f\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x14\x10\x01\x00\x00\x00\x00\x00\xe8\x0f\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x18\x10\x01\x00\x00\x00\x00\x00\xf0\x0f\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x54\x07\x00\x00\x00\x00\x00\x00\x08\x10\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x08\x10\x01\x00\x00\x00\x00\x00\xc8\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xd0\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe0\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xf8\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".rela.plt", 0x550, "\xa0\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xa8\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xb0\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xb8\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".init", 0x5B0, "\x1f\x20\x03\xd5\xfd\x7b\xbf\xa9\xfd\x03\x00\x91\x2e\x00\x00\x94\xfd\x7b\xc1\xa8\xc0\x03\x5f\xd6"), -Section(".plt", 0x5D0, "\xf0\x7b\xbf\xa9\x90\x00\x00\x90\x11\xce\x47\xf9\x10\x62\x3e\x91\x20\x02\x1f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x90\x00\x00\x90\x11\xd2\x47\xf9\x10\x82\x3e\x91\x20\x02\x1f\xd6\x90\x00\x00\x90\x11\xd6\x47\xf9\x10\xa2\x3e\x91\x20\x02\x1f\xd6\x90\x00\x00\x90\x11\xda\x47\xf9\x10\xc2\x3e\x91\x20\x02\x1f\xd6\x90\x00\x00\x90\x11\xde\x47\xf9\x10\xe2\x3e\x91\x20\x02\x1f\xd6"), -Section(".fini", 0x790, "\x1f\x20\x03\xd5\xfd\x7b\xbf\xa9\xfd\x03\x00\x91\xfd\x7b\xc1\xa8\xc0\x03\x5f\xd6"), -Section(".rodata", 0x7A4, "\x01\x00\x02\x00"), -Section(".eh_frame_hdr", 0x7A8, "\x01\x1b\x03\x3b\x3c\x00\x00\x00\x06\x00\x00\x00\x98\xfe\xff\xff\x54\x00\x00\x00\xe8\xfe\xff\xff\x68\x00\x00\x00\x18\xff\xff\xff\x7c\x00\x00\x00\x58\xff\xff\xff\x90\x00\x00\x00\xa8\xff\xff\xff\xb4\x00\x00\x00\xac\xff\xff\xff\xc8\x00\x00\x00"), -Section(".eh_frame", 0x7E8, "\x10\x00\x00\x00\x00\x00\x00\x00\x01\x7a\x52\x00\x04\x78\x1e\x01\x1b\x0c\x1f\x00\x10\x00\x00\x00\x18\x00\x00\x00\x3c\xfe\xff\xff\x34\x00\x00\x00\x00\x41\x07\x1e\x10\x00\x00\x00\x2c\x00\x00\x00\x78\xfe\xff\xff\x30\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x40\x00\x00\x00\x94\xfe\xff\xff\x3c\x00\x00\x00\x00\x00\x00\x00\x20\x00\x00\x00\x54\x00\x00\x00\xc0\xfe\xff\xff\x48\x00\x00\x00\x00\x41\x0e\x20\x9d\x04\x9e\x03\x42\x93\x02\x4e\xde\xdd\xd3\x0e\x00\x00\x00\x00\x10\x00\x00\x00\x78\x00\x00\x00\xec\xfe\xff\xff\x04\x00\x00\x00\x00\x00\x00\x00\x14\x00\x00\x00\x8c\x00\x00\x00\xdc\xfe\xff\xff\x3c\x00\x00\x00\x00\x41\x0e\x10\x4d\x0e\x00\x00\x00\x00\x00\x00"), -Section(".fini_array", 0x10D90, "\x00\x07\x00\x00\x00\x00\x00\x00"), -Section(".dynamic", 0x10D98, "\x01\x00\x00\x00\x00\x00\x00\x00\x28\x00\x00\x00\x00\x00\x00\x00\x0c\x00\x00\x00\x00\x00\x00\x00\xb0\x05\x00\x00\x00\x00\x00\x00\x0d\x00\x00\x00\x00\x00\x00\x00\x90\x07\x00\x00\x00\x00\x00\x00\x19\x00\x00\x00\x00\x00\x00\x00\x88\x0d\x01\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x1a\x00\x00\x00\x00\x00\x00\x00\x90\x0d\x01\x00\x00\x00\x00\x00\x1c\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\xf5\xfe\xff\x6f\x00\x00\x00\x00\x98\x02\x00\x00\x00\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x90\x03\x00\x00\x00\x00\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\xb8\x02\x00\x00\x00\x00\x00\x00\x0a\x00\x00\x00\x00\x00\x00\x00\x8d\x00\x00\x00\x00\x00\x00\x00\x0b\x00\x00\x00\x00\x00\x00\x00\x18\x00\x00\x00\x00\x00\x00\x00\x15\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x88\x0f\x01\x00\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x60\x00\x00\x00\x00\x00\x00\x00\x14\x00\x00\x00\x00\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x17\x00\x00\x00\x00\x00\x00\x00\x50\x05\x00\x00\x00\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x60\x04\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\xf0\x00\x00\x00\x00\x00\x00\x00\x09\x00\x00\x00\x00\x00\x00\x00\x18\x00\x00\x00\x00\x00\x00\x00\x1e\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\xfb\xff\xff\x6f\x00\x00\x00\x00\x01\x00\x00\x08\x00\x00\x00\x00\xfe\xff\xff\x6f\x00\x00\x00\x00\x30\x04\x00\x00\x00\x00\x00\x00\xff\xff\xff\x6f\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\xf0\xff\xff\x6f\x00\x00\x00\x00\x1e\x04\x00\x00\x00\x00\x00\x00\xf9\xff\xff\x6f\x00\x00\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".got", 0x10F88, "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xd0\x05\x00\x00\x00\x00\x00\x00\xd0\x05\x00\x00\x00\x00\x00\x00\xd0\x05\x00\x00\x00\x00\x00\x00\xd0\x05\x00\x00\x00\x00\x00\x00\x98\x0d\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x14\x10\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x18\x10\x01\x00\x00\x00\x00\x00\x54\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".data", 0x11000, "\x00\x00\x00\x00\x00\x00\x00\x00\x08\x10\x01\x00\x00\x00\x00\x00"), -Section(".init_array", 0x10D88, "\x50\x07\x00\x00\x00\x00\x00\x00"), -Section(".text", 0x640, "\x1f\x20\x03\xd5\x1d\x00\x80\xd2\x1e\x00\x80\xd2\xe5\x03\x00\xaa\xe1\x03\x40\xf9\xe2\x23\x00\x91\xe6\x03\x00\x91\x80\x00\x00\x90\x00\xf8\x47\xf9\x03\x00\x80\xd2\x04\x00\x80\xd2\xe1\xff\xff\x97\xec\xff\xff\x97\x80\x00\x00\x90\x00\xf0\x47\xf9\x40\x00\x00\xb4\xe4\xff\xff\x17\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x80\x00\x00\xb0\x00\x40\x00\x91\x81\x00\x00\xb0\x21\x40\x00\x91\x3f\x00\x00\xeb\xc0\x00\x00\x54\x81\x00\x00\x90\x21\xe4\x47\xf9\x61\x00\x00\xb4\xf0\x03\x01\xaa\x00\x02\x1f\xd6\xc0\x03\x5f\xd6\x80\x00\x00\xb0\x00\x40\x00\x91\x81\x00\x00\xb0\x21\x40\x00\x91\x21\x00\x00\xcb\x22\xfc\x7f\xd3\x41\x0c\x81\x8b\x21\xfc\x41\x93\xc1\x00\x00\xb4\x82\x00\x00\x90\x42\xfc\x47\xf9\x62\x00\x00\xb4\xf0\x03\x02\xaa\x00\x02\x1f\xd6\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\xfd\x7b\xbe\xa9\xfd\x03\x00\x91\xf3\x0b\x00\xf9\x93\x00\x00\xb0\x60\x42\x40\x39\x40\x01\x00\x35\x80\x00\x00\x90\x00\xe8\x47\xf9\x80\x00\x00\xb4\x80\x00\x00\xb0\x00\x04\x40\xf9\xb5\xff\xff\x97\xd8\xff\xff\x97\x20\x00\x80\x52\x60\x42\x00\x39\xf3\x0b\x40\xf9\xfd\x7b\xc2\xa8\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\xdc\xff\xff\x17\xff\x43\x00\xd1\x80\x00\x00\x90\x00\xf4\x47\xf9\x00\x00\x40\xb9\xe0\x0f\x00\xb9\x80\x00\x00\x90\x00\xec\x47\xf9\x00\x00\x40\xb9\x1f\x00\x00\x71\x61\x00\x00\x54\x00\x00\x80\x52\x02\x00\x00\x14\xe0\x0f\x40\xb9\xff\x43\x00\x91\xc0\x03\x5f\xd6")]), -Memmap([Annotation(Region(0x0,0x88B), Attr("segment","02 0 2188")), -Annotation(Region(0x640,0x673), Attr("symbol","\"_start\"")), -Annotation(Region(0x0,0xF9), Attr("section","\".shstrtab\"")), -Annotation(Region(0x0,0x231), Attr("section","\".strtab\"")), -Annotation(Region(0x0,0x857), Attr("section","\".symtab\"")), -Annotation(Region(0x0,0x2A), Attr("section","\".comment\"")), -Annotation(Region(0x238,0x252), Attr("section","\".interp\"")), -Annotation(Region(0x254,0x277), Attr("section","\".note.gnu.build-id\"")), -Annotation(Region(0x278,0x297), Attr("section","\".note.ABI-tag\"")), -Annotation(Region(0x298,0x2B3), Attr("section","\".gnu.hash\"")), -Annotation(Region(0x2B8,0x38F), Attr("section","\".dynsym\"")), -Annotation(Region(0x390,0x41C), Attr("section","\".dynstr\"")), -Annotation(Region(0x41E,0x42F), Attr("section","\".gnu.version\"")), -Annotation(Region(0x430,0x45F), Attr("section","\".gnu.version_r\"")), -Annotation(Region(0x460,0x54F), Attr("section","\".rela.dyn\"")), -Annotation(Region(0x550,0x5AF), Attr("section","\".rela.plt\"")), -Annotation(Region(0x5B0,0x5C7), Attr("section","\".init\"")), -Annotation(Region(0x5D0,0x62F), Attr("section","\".plt\"")), -Annotation(Region(0x5B0,0x5C7), Attr("code-region","()")), -Annotation(Region(0x5D0,0x62F), Attr("code-region","()")), -Annotation(Region(0x640,0x673), Attr("symbol-info","_start 0x640 52")), -Annotation(Region(0x674,0x687), Attr("symbol","\"call_weak_fn\"")), -Annotation(Region(0x674,0x687), Attr("symbol-info","call_weak_fn 0x674 20")), -Annotation(Region(0x754,0x78F), Attr("symbol","\"main\"")), -Annotation(Region(0x754,0x78F), Attr("symbol-info","main 0x754 60")), -Annotation(Region(0x790,0x7A3), Attr("section","\".fini\"")), -Annotation(Region(0x7A4,0x7A7), Attr("section","\".rodata\"")), -Annotation(Region(0x7A8,0x7E3), Attr("section","\".eh_frame_hdr\"")), -Annotation(Region(0x7E8,0x88B), Attr("section","\".eh_frame\"")), -Annotation(Region(0x10D88,0x1100F), Attr("segment","03 0x10D88 664")), -Annotation(Region(0x10D90,0x10D97), Attr("section","\".fini_array\"")), -Annotation(Region(0x10D98,0x10F87), Attr("section","\".dynamic\"")), -Annotation(Region(0x10F88,0x10FFF), Attr("section","\".got\"")), -Annotation(Region(0x11000,0x1100F), Attr("section","\".data\"")), -Annotation(Region(0x10D88,0x10D8F), Attr("section","\".init_array\"")), -Annotation(Region(0x640,0x78F), Attr("section","\".text\"")), -Annotation(Region(0x640,0x78F), Attr("code-region","()")), -Annotation(Region(0x790,0x7A3), Attr("code-region","()"))]), -Program(Tid(1_447, "%000005a7"), Attrs([]), - Subs([Sub(Tid(1_393, "@__cxa_finalize"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x600"), -Attr("stub","()")]), "__cxa_finalize", Args([Arg(Tid(1_448, "%000005a8"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("__cxa_finalize_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(907, "@__cxa_finalize"), - Attrs([Attr("address","0x600")]), Phis([]), -Defs([Def(Tid(1_155, "%00000483"), Attrs([Attr("address","0x600"), -Attr("insn","adrp x16, #65536")]), Var("R16",Imm(64)), Int(65536,64)), -Def(Tid(1_162, "%0000048a"), Attrs([Attr("address","0x604"), -Attr("insn","ldr x17, [x16, #0xfa8]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(4008,64)),LittleEndian(),64)), -Def(Tid(1_168, "%00000490"), Attrs([Attr("address","0x608"), -Attr("insn","add x16, x16, #0xfa8")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(4008,64)))]), Jmps([Call(Tid(1_173, "%00000495"), - Attrs([Attr("address","0x60C"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), -Sub(Tid(1_394, "@__do_global_dtors_aux"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x700")]), - "__do_global_dtors_aux", Args([Arg(Tid(1_449, "%000005a9"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("__do_global_dtors_aux_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(650, "@__do_global_dtors_aux"), - Attrs([Attr("address","0x700")]), Phis([]), Defs([Def(Tid(654, "%0000028e"), - Attrs([Attr("address","0x700"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("#3",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(18446744073709551584,64))), -Def(Tid(660, "%00000294"), Attrs([Attr("address","0x700"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("#3",Imm(64)),Var("R29",Imm(64)),LittleEndian(),64)), -Def(Tid(666, "%0000029a"), Attrs([Attr("address","0x700"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("#3",Imm(64)),Int(8,64)),Var("R30",Imm(64)),LittleEndian(),64)), -Def(Tid(670, "%0000029e"), Attrs([Attr("address","0x700"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("R31",Imm(64)), -Var("#3",Imm(64))), Def(Tid(676, "%000002a4"), - Attrs([Attr("address","0x704"), Attr("insn","mov x29, sp")]), - Var("R29",Imm(64)), Var("R31",Imm(64))), Def(Tid(684, "%000002ac"), - Attrs([Attr("address","0x708"), Attr("insn","str x19, [sp, #0x10]")]), - Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(16,64)),Var("R19",Imm(64)),LittleEndian(),64)), -Def(Tid(689, "%000002b1"), Attrs([Attr("address","0x70C"), -Attr("insn","adrp x19, #69632")]), Var("R19",Imm(64)), Int(69632,64)), -Def(Tid(696, "%000002b8"), Attrs([Attr("address","0x710"), -Attr("insn","ldrb w0, [x19, #0x10]")]), Var("R0",Imm(64)), -UNSIGNED(64,Load(Var("mem",Mem(64,8)),PLUS(Var("R19",Imm(64)),Int(16,64)),LittleEndian(),8)))]), -Jmps([Goto(Tid(703, "%000002bf"), Attrs([Attr("address","0x714"), -Attr("insn","cbnz w0, #0x28")]), - NEQ(Extract(31,0,Var("R0",Imm(64))),Int(0,32)), -Direct(Tid(701, "%000002bd"))), Goto(Tid(1_435, "%0000059b"), Attrs([]), - Int(1,1), Direct(Tid(852, "%00000354")))])), Blk(Tid(852, "%00000354"), - Attrs([Attr("address","0x718")]), Phis([]), Defs([Def(Tid(855, "%00000357"), - Attrs([Attr("address","0x718"), Attr("insn","adrp x0, #65536")]), - Var("R0",Imm(64)), Int(65536,64)), Def(Tid(862, "%0000035e"), - Attrs([Attr("address","0x71C"), Attr("insn","ldr x0, [x0, #0xfd0]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(4048,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(868, "%00000364"), Attrs([Attr("address","0x720"), -Attr("insn","cbz x0, #0x10")]), EQ(Var("R0",Imm(64)),Int(0,64)), -Direct(Tid(866, "%00000362"))), Goto(Tid(1_436, "%0000059c"), Attrs([]), - Int(1,1), Direct(Tid(891, "%0000037b")))])), Blk(Tid(891, "%0000037b"), - Attrs([Attr("address","0x724")]), Phis([]), Defs([Def(Tid(894, "%0000037e"), - Attrs([Attr("address","0x724"), Attr("insn","adrp x0, #69632")]), - Var("R0",Imm(64)), Int(69632,64)), Def(Tid(901, "%00000385"), - Attrs([Attr("address","0x728"), Attr("insn","ldr x0, [x0, #0x8]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(906, "%0000038a"), Attrs([Attr("address","0x72C"), -Attr("insn","bl #-0x12c")]), Var("R30",Imm(64)), Int(1840,64))]), -Jmps([Call(Tid(909, "%0000038d"), Attrs([Attr("address","0x72C"), -Attr("insn","bl #-0x12c")]), Int(1,1), -(Direct(Tid(1_393, "@__cxa_finalize")),Direct(Tid(866, "%00000362"))))])), -Blk(Tid(866, "%00000362"), Attrs([Attr("address","0x730")]), Phis([]), -Defs([Def(Tid(874, "%0000036a"), Attrs([Attr("address","0x730"), -Attr("insn","bl #-0xa0")]), Var("R30",Imm(64)), Int(1844,64))]), -Jmps([Call(Tid(876, "%0000036c"), Attrs([Attr("address","0x730"), -Attr("insn","bl #-0xa0")]), Int(1,1), -(Direct(Tid(1_407, "@deregister_tm_clones")),Direct(Tid(878, "%0000036e"))))])), -Blk(Tid(878, "%0000036e"), Attrs([Attr("address","0x734")]), Phis([]), -Defs([Def(Tid(881, "%00000371"), Attrs([Attr("address","0x734"), -Attr("insn","mov w0, #0x1")]), Var("R0",Imm(64)), Int(1,64)), -Def(Tid(889, "%00000379"), Attrs([Attr("address","0x738"), -Attr("insn","strb w0, [x19, #0x10]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R19",Imm(64)),Int(16,64)),Extract(7,0,Var("R0",Imm(64))),LittleEndian(),8))]), -Jmps([Goto(Tid(1_437, "%0000059d"), Attrs([]), Int(1,1), -Direct(Tid(701, "%000002bd")))])), Blk(Tid(701, "%000002bd"), - Attrs([Attr("address","0x73C")]), Phis([]), Defs([Def(Tid(711, "%000002c7"), - Attrs([Attr("address","0x73C"), Attr("insn","ldr x19, [sp, #0x10]")]), - Var("R19",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(16,64)),LittleEndian(),64)), -Def(Tid(718, "%000002ce"), Attrs([Attr("address","0x740"), -Attr("insn","ldp x29, x30, [sp], #0x20")]), Var("R29",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(723, "%000002d3"), Attrs([Attr("address","0x740"), -Attr("insn","ldp x29, x30, [sp], #0x20")]), Var("R30",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(727, "%000002d7"), Attrs([Attr("address","0x740"), -Attr("insn","ldp x29, x30, [sp], #0x20")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(32,64)))]), Jmps([Call(Tid(732, "%000002dc"), - Attrs([Attr("address","0x744"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), Sub(Tid(1_398, "@__libc_start_main"), - Attrs([Attr("c.proto","signed (*)(signed (*)(signed , char** , char** );* main, signed , char** , \nvoid* auxv)"), -Attr("address","0x5F0"), Attr("stub","()")]), "__libc_start_main", - Args([Arg(Tid(1_450, "%000005aa"), - Attrs([Attr("c.layout","**[ : 64]"), -Attr("c.data","Top:u64 ptr ptr"), -Attr("c.type","signed (*)(signed , char** , char** );*")]), - Var("__libc_start_main_main",Imm(64)), Var("R0",Imm(64)), In()), -Arg(Tid(1_451, "%000005ab"), Attrs([Attr("c.layout","[signed : 32]"), -Attr("c.data","Top:u32"), Attr("c.type","signed")]), - Var("__libc_start_main_arg2",Imm(32)), LOW(32,Var("R1",Imm(64))), In()), -Arg(Tid(1_452, "%000005ac"), Attrs([Attr("c.layout","**[char : 8]"), -Attr("c.data","Top:u8 ptr ptr"), Attr("c.type","char**")]), - Var("__libc_start_main_arg3",Imm(64)), Var("R2",Imm(64)), Both()), -Arg(Tid(1_453, "%000005ad"), Attrs([Attr("c.layout","*[ : 8]"), -Attr("c.data","{} ptr"), Attr("c.type","void*")]), - Var("__libc_start_main_auxv",Imm(64)), Var("R3",Imm(64)), Both()), -Arg(Tid(1_454, "%000005ae"), Attrs([Attr("c.layout","[signed : 32]"), -Attr("c.data","Top:u32"), Attr("c.type","signed")]), - Var("__libc_start_main_result",Imm(32)), LOW(32,Var("R0",Imm(64))), -Out())]), Blks([Blk(Tid(483, "@__libc_start_main"), - Attrs([Attr("address","0x5F0")]), Phis([]), -Defs([Def(Tid(1_133, "%0000046d"), Attrs([Attr("address","0x5F0"), -Attr("insn","adrp x16, #65536")]), Var("R16",Imm(64)), Int(65536,64)), -Def(Tid(1_140, "%00000474"), Attrs([Attr("address","0x5F4"), -Attr("insn","ldr x17, [x16, #0xfa0]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(4000,64)),LittleEndian(),64)), -Def(Tid(1_146, "%0000047a"), Attrs([Attr("address","0x5F8"), -Attr("insn","add x16, x16, #0xfa0")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(4000,64)))]), Jmps([Call(Tid(1_151, "%0000047f"), - Attrs([Attr("address","0x5FC"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), Sub(Tid(1_399, "@_fini"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x790")]), - "_fini", Args([Arg(Tid(1_455, "%000005af"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("_fini_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(31, "@_fini"), - Attrs([Attr("address","0x790")]), Phis([]), Defs([Def(Tid(37, "%00000025"), - Attrs([Attr("address","0x794"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("#0",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(18446744073709551600,64))), -Def(Tid(43, "%0000002b"), Attrs([Attr("address","0x794"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("#0",Imm(64)),Var("R29",Imm(64)),LittleEndian(),64)), -Def(Tid(49, "%00000031"), Attrs([Attr("address","0x794"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("#0",Imm(64)),Int(8,64)),Var("R30",Imm(64)),LittleEndian(),64)), -Def(Tid(53, "%00000035"), Attrs([Attr("address","0x794"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("R31",Imm(64)), -Var("#0",Imm(64))), Def(Tid(59, "%0000003b"), Attrs([Attr("address","0x798"), -Attr("insn","mov x29, sp")]), Var("R29",Imm(64)), Var("R31",Imm(64))), -Def(Tid(66, "%00000042"), Attrs([Attr("address","0x79C"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R29",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(71, "%00000047"), Attrs([Attr("address","0x79C"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R30",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(75, "%0000004b"), Attrs([Attr("address","0x79C"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(16,64)))]), Jmps([Call(Tid(80, "%00000050"), - Attrs([Attr("address","0x7A0"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), Sub(Tid(1_400, "@_init"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x5B0")]), - "_init", Args([Arg(Tid(1_456, "%000005b0"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("_init_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(1_245, "@_init"), - Attrs([Attr("address","0x5B0")]), Phis([]), -Defs([Def(Tid(1_251, "%000004e3"), Attrs([Attr("address","0x5B4"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("#6",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(18446744073709551600,64))), -Def(Tid(1_257, "%000004e9"), Attrs([Attr("address","0x5B4"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("#6",Imm(64)),Var("R29",Imm(64)),LittleEndian(),64)), -Def(Tid(1_263, "%000004ef"), Attrs([Attr("address","0x5B4"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("#6",Imm(64)),Int(8,64)),Var("R30",Imm(64)),LittleEndian(),64)), -Def(Tid(1_267, "%000004f3"), Attrs([Attr("address","0x5B4"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("R31",Imm(64)), -Var("#6",Imm(64))), Def(Tid(1_273, "%000004f9"), - Attrs([Attr("address","0x5B8"), Attr("insn","mov x29, sp")]), - Var("R29",Imm(64)), Var("R31",Imm(64))), Def(Tid(1_278, "%000004fe"), - Attrs([Attr("address","0x5BC"), Attr("insn","bl #0xb8")]), - Var("R30",Imm(64)), Int(1472,64))]), Jmps([Call(Tid(1_280, "%00000500"), - Attrs([Attr("address","0x5BC"), Attr("insn","bl #0xb8")]), Int(1,1), -(Direct(Tid(1_405, "@call_weak_fn")),Direct(Tid(1_282, "%00000502"))))])), -Blk(Tid(1_282, "%00000502"), Attrs([Attr("address","0x5C0")]), Phis([]), -Defs([Def(Tid(1_287, "%00000507"), Attrs([Attr("address","0x5C0"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R29",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(1_292, "%0000050c"), Attrs([Attr("address","0x5C0"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R30",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(1_296, "%00000510"), Attrs([Attr("address","0x5C0"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(16,64)))]), Jmps([Call(Tid(1_301, "%00000515"), - Attrs([Attr("address","0x5C4"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), Sub(Tid(1_401, "@_start"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x640"), -Attr("entry-point","()")]), "_start", Args([Arg(Tid(1_457, "%000005b1"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("_start_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(420, "@_start"), - Attrs([Attr("address","0x640")]), Phis([]), Defs([Def(Tid(425, "%000001a9"), - Attrs([Attr("address","0x644"), Attr("insn","mov x29, #0x0")]), - Var("R29",Imm(64)), Int(0,64)), Def(Tid(430, "%000001ae"), - Attrs([Attr("address","0x648"), Attr("insn","mov x30, #0x0")]), - Var("R30",Imm(64)), Int(0,64)), Def(Tid(436, "%000001b4"), - Attrs([Attr("address","0x64C"), Attr("insn","mov x5, x0")]), - Var("R5",Imm(64)), Var("R0",Imm(64))), Def(Tid(443, "%000001bb"), - Attrs([Attr("address","0x650"), Attr("insn","ldr x1, [sp]")]), - Var("R1",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(449, "%000001c1"), Attrs([Attr("address","0x654"), -Attr("insn","add x2, sp, #0x8")]), Var("R2",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(8,64))), Def(Tid(455, "%000001c7"), - Attrs([Attr("address","0x658"), Attr("insn","mov x6, sp")]), - Var("R6",Imm(64)), Var("R31",Imm(64))), Def(Tid(460, "%000001cc"), - Attrs([Attr("address","0x65C"), Attr("insn","adrp x0, #65536")]), - Var("R0",Imm(64)), Int(65536,64)), Def(Tid(467, "%000001d3"), - Attrs([Attr("address","0x660"), Attr("insn","ldr x0, [x0, #0xff0]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(4080,64)),LittleEndian(),64)), -Def(Tid(472, "%000001d8"), Attrs([Attr("address","0x664"), -Attr("insn","mov x3, #0x0")]), Var("R3",Imm(64)), Int(0,64)), -Def(Tid(477, "%000001dd"), Attrs([Attr("address","0x668"), -Attr("insn","mov x4, #0x0")]), Var("R4",Imm(64)), Int(0,64)), -Def(Tid(482, "%000001e2"), Attrs([Attr("address","0x66C"), -Attr("insn","bl #-0x7c")]), Var("R30",Imm(64)), Int(1648,64))]), -Jmps([Call(Tid(485, "%000001e5"), Attrs([Attr("address","0x66C"), -Attr("insn","bl #-0x7c")]), Int(1,1), -(Direct(Tid(1_398, "@__libc_start_main")),Direct(Tid(487, "%000001e7"))))])), -Blk(Tid(487, "%000001e7"), Attrs([Attr("address","0x670")]), Phis([]), -Defs([Def(Tid(490, "%000001ea"), Attrs([Attr("address","0x670"), -Attr("insn","bl #-0x50")]), Var("R30",Imm(64)), Int(1652,64))]), -Jmps([Call(Tid(493, "%000001ed"), Attrs([Attr("address","0x670"), -Attr("insn","bl #-0x50")]), Int(1,1), -(Direct(Tid(1_404, "@abort")),Direct(Tid(1_438, "%0000059e"))))])), -Blk(Tid(1_438, "%0000059e"), Attrs([]), Phis([]), Defs([]), -Jmps([Call(Tid(1_439, "%0000059f"), Attrs([]), Int(1,1), -(Direct(Tid(1_405, "@call_weak_fn")),))]))])), Sub(Tid(1_404, "@abort"), - Attrs([Attr("noreturn","()"), Attr("c.proto","void (*)(void)"), -Attr("address","0x620"), Attr("stub","()")]), "abort", Args([]), -Blks([Blk(Tid(491, "@abort"), Attrs([Attr("address","0x620")]), Phis([]), -Defs([Def(Tid(1_199, "%000004af"), Attrs([Attr("address","0x620"), -Attr("insn","adrp x16, #65536")]), Var("R16",Imm(64)), Int(65536,64)), -Def(Tid(1_206, "%000004b6"), Attrs([Attr("address","0x624"), -Attr("insn","ldr x17, [x16, #0xfb8]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(4024,64)),LittleEndian(),64)), -Def(Tid(1_212, "%000004bc"), Attrs([Attr("address","0x628"), -Attr("insn","add x16, x16, #0xfb8")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(4024,64)))]), Jmps([Call(Tid(1_217, "%000004c1"), - Attrs([Attr("address","0x62C"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), Sub(Tid(1_405, "@call_weak_fn"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x674")]), - "call_weak_fn", Args([Arg(Tid(1_458, "%000005b2"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("call_weak_fn_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(495, "@call_weak_fn"), - Attrs([Attr("address","0x674")]), Phis([]), Defs([Def(Tid(498, "%000001f2"), - Attrs([Attr("address","0x674"), Attr("insn","adrp x0, #65536")]), - Var("R0",Imm(64)), Int(65536,64)), Def(Tid(505, "%000001f9"), - Attrs([Attr("address","0x678"), Attr("insn","ldr x0, [x0, #0xfe0]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(4064,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(511, "%000001ff"), Attrs([Attr("address","0x67C"), -Attr("insn","cbz x0, #0x8")]), EQ(Var("R0",Imm(64)),Int(0,64)), -Direct(Tid(509, "%000001fd"))), Goto(Tid(1_440, "%000005a0"), Attrs([]), - Int(1,1), Direct(Tid(971, "%000003cb")))])), Blk(Tid(509, "%000001fd"), - Attrs([Attr("address","0x684")]), Phis([]), Defs([]), -Jmps([Call(Tid(517, "%00000205"), Attrs([Attr("address","0x684"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))])), -Blk(Tid(971, "%000003cb"), Attrs([Attr("address","0x680")]), Phis([]), -Defs([]), Jmps([Goto(Tid(974, "%000003ce"), Attrs([Attr("address","0x680"), -Attr("insn","b #-0x70")]), Int(1,1), Direct(Tid(972, "@__gmon_start__")))])), -Blk(Tid(972, "@__gmon_start__"), Attrs([Attr("address","0x610")]), Phis([]), -Defs([Def(Tid(1_177, "%00000499"), Attrs([Attr("address","0x610"), -Attr("insn","adrp x16, #65536")]), Var("R16",Imm(64)), Int(65536,64)), -Def(Tid(1_184, "%000004a0"), Attrs([Attr("address","0x614"), -Attr("insn","ldr x17, [x16, #0xfb0]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(4016,64)),LittleEndian(),64)), -Def(Tid(1_190, "%000004a6"), Attrs([Attr("address","0x618"), -Attr("insn","add x16, x16, #0xfb0")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(4016,64)))]), Jmps([Call(Tid(1_195, "%000004ab"), - Attrs([Attr("address","0x61C"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), -Sub(Tid(1_407, "@deregister_tm_clones"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x690")]), - "deregister_tm_clones", Args([Arg(Tid(1_459, "%000005b3"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("deregister_tm_clones_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(523, "@deregister_tm_clones"), - Attrs([Attr("address","0x690")]), Phis([]), Defs([Def(Tid(526, "%0000020e"), - Attrs([Attr("address","0x690"), Attr("insn","adrp x0, #69632")]), - Var("R0",Imm(64)), Int(69632,64)), Def(Tid(532, "%00000214"), - Attrs([Attr("address","0x694"), Attr("insn","add x0, x0, #0x10")]), - Var("R0",Imm(64)), PLUS(Var("R0",Imm(64)),Int(16,64))), -Def(Tid(537, "%00000219"), Attrs([Attr("address","0x698"), -Attr("insn","adrp x1, #69632")]), Var("R1",Imm(64)), Int(69632,64)), -Def(Tid(543, "%0000021f"), Attrs([Attr("address","0x69C"), -Attr("insn","add x1, x1, #0x10")]), Var("R1",Imm(64)), -PLUS(Var("R1",Imm(64)),Int(16,64))), Def(Tid(549, "%00000225"), - Attrs([Attr("address","0x6A0"), Attr("insn","cmp x1, x0")]), - Var("#1",Imm(64)), NOT(Var("R0",Imm(64)))), Def(Tid(554, "%0000022a"), - Attrs([Attr("address","0x6A0"), Attr("insn","cmp x1, x0")]), - Var("#2",Imm(64)), PLUS(Var("R1",Imm(64)),NOT(Var("R0",Imm(64))))), -Def(Tid(560, "%00000230"), Attrs([Attr("address","0x6A0"), -Attr("insn","cmp x1, x0")]), Var("VF",Imm(1)), -NEQ(SIGNED(65,PLUS(Var("#2",Imm(64)),Int(1,64))),PLUS(PLUS(SIGNED(65,Var("R1",Imm(64))),SIGNED(65,Var("#1",Imm(64)))),Int(1,65)))), -Def(Tid(566, "%00000236"), Attrs([Attr("address","0x6A0"), -Attr("insn","cmp x1, x0")]), Var("CF",Imm(1)), -NEQ(UNSIGNED(65,PLUS(Var("#2",Imm(64)),Int(1,64))),PLUS(PLUS(UNSIGNED(65,Var("R1",Imm(64))),UNSIGNED(65,Var("#1",Imm(64)))),Int(1,65)))), -Def(Tid(570, "%0000023a"), Attrs([Attr("address","0x6A0"), -Attr("insn","cmp x1, x0")]), Var("ZF",Imm(1)), -EQ(PLUS(Var("#2",Imm(64)),Int(1,64)),Int(0,64))), Def(Tid(574, "%0000023e"), - Attrs([Attr("address","0x6A0"), Attr("insn","cmp x1, x0")]), - Var("NF",Imm(1)), Extract(63,63,PLUS(Var("#2",Imm(64)),Int(1,64))))]), -Jmps([Goto(Tid(580, "%00000244"), Attrs([Attr("address","0x6A4"), -Attr("insn","b.eq #0x18")]), EQ(Var("ZF",Imm(1)),Int(1,1)), -Direct(Tid(578, "%00000242"))), Goto(Tid(1_441, "%000005a1"), Attrs([]), - Int(1,1), Direct(Tid(941, "%000003ad")))])), Blk(Tid(941, "%000003ad"), - Attrs([Attr("address","0x6A8")]), Phis([]), Defs([Def(Tid(944, "%000003b0"), - Attrs([Attr("address","0x6A8"), Attr("insn","adrp x1, #65536")]), - Var("R1",Imm(64)), Int(65536,64)), Def(Tid(951, "%000003b7"), - Attrs([Attr("address","0x6AC"), Attr("insn","ldr x1, [x1, #0xfc8]")]), - Var("R1",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R1",Imm(64)),Int(4040,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(956, "%000003bc"), Attrs([Attr("address","0x6B0"), -Attr("insn","cbz x1, #0xc")]), EQ(Var("R1",Imm(64)),Int(0,64)), -Direct(Tid(578, "%00000242"))), Goto(Tid(1_442, "%000005a2"), Attrs([]), - Int(1,1), Direct(Tid(960, "%000003c0")))])), Blk(Tid(578, "%00000242"), - Attrs([Attr("address","0x6BC")]), Phis([]), Defs([]), -Jmps([Call(Tid(586, "%0000024a"), Attrs([Attr("address","0x6BC"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))])), -Blk(Tid(960, "%000003c0"), Attrs([Attr("address","0x6B4")]), Phis([]), -Defs([Def(Tid(964, "%000003c4"), Attrs([Attr("address","0x6B4"), -Attr("insn","mov x16, x1")]), Var("R16",Imm(64)), Var("R1",Imm(64)))]), -Jmps([Call(Tid(969, "%000003c9"), Attrs([Attr("address","0x6B8"), -Attr("insn","br x16")]), Int(1,1), (Indirect(Var("R16",Imm(64))),))]))])), -Sub(Tid(1_410, "@frame_dummy"), Attrs([Attr("c.proto","signed (*)(void)"), -Attr("address","0x750")]), "frame_dummy", Args([Arg(Tid(1_460, "%000005b4"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("frame_dummy_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(738, "@frame_dummy"), - Attrs([Attr("address","0x750")]), Phis([]), Defs([]), -Jmps([Call(Tid(740, "%000002e4"), Attrs([Attr("address","0x750"), -Attr("insn","b #-0x90")]), Int(1,1), -(Direct(Tid(1_414, "@register_tm_clones")),))]))])), Sub(Tid(1_411, "@main"), - Attrs([Attr("c.proto","signed (*)(signed argc, const char** argv)"), -Attr("address","0x754")]), "main", Args([Arg(Tid(1_461, "%000005b5"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("main_argc",Imm(32)), -LOW(32,Var("R0",Imm(64))), In()), Arg(Tid(1_462, "%000005b6"), - Attrs([Attr("c.layout","**[char : 8]"), Attr("c.data","Top:u8 ptr ptr"), -Attr("c.type"," const char**")]), Var("main_argv",Imm(64)), -Var("R1",Imm(64)), Both()), Arg(Tid(1_463, "%000005b7"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("main_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(742, "@main"), - Attrs([Attr("address","0x754")]), Phis([]), Defs([Def(Tid(746, "%000002ea"), - Attrs([Attr("address","0x754"), Attr("insn","sub sp, sp, #0x10")]), - Var("R31",Imm(64)), PLUS(Var("R31",Imm(64)),Int(18446744073709551600,64))), -Def(Tid(751, "%000002ef"), Attrs([Attr("address","0x758"), -Attr("insn","adrp x0, #65536")]), Var("R0",Imm(64)), Int(65536,64)), -Def(Tid(758, "%000002f6"), Attrs([Attr("address","0x75C"), -Attr("insn","ldr x0, [x0, #0xfe8]")]), Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(4072,64)),LittleEndian(),64)), -Def(Tid(765, "%000002fd"), Attrs([Attr("address","0x760"), -Attr("insn","ldr w0, [x0]")]), Var("R0",Imm(64)), -UNSIGNED(64,Load(Var("mem",Mem(64,8)),Var("R0",Imm(64)),LittleEndian(),32))), -Def(Tid(773, "%00000305"), Attrs([Attr("address","0x764"), -Attr("insn","str w0, [sp, #0xc]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(12,64)),Extract(31,0,Var("R0",Imm(64))),LittleEndian(),32)), -Def(Tid(778, "%0000030a"), Attrs([Attr("address","0x768"), -Attr("insn","adrp x0, #65536")]), Var("R0",Imm(64)), Int(65536,64)), -Def(Tid(785, "%00000311"), Attrs([Attr("address","0x76C"), -Attr("insn","ldr x0, [x0, #0xfd8]")]), Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(4056,64)),LittleEndian(),64)), -Def(Tid(792, "%00000318"), Attrs([Attr("address","0x770"), -Attr("insn","ldr w0, [x0]")]), Var("R0",Imm(64)), -UNSIGNED(64,Load(Var("mem",Mem(64,8)),Var("R0",Imm(64)),LittleEndian(),32))), -Def(Tid(798, "%0000031e"), Attrs([Attr("address","0x774"), -Attr("insn","cmp w0, #0x0")]), Var("#4",Imm(32)), -PLUS(Extract(31,0,Var("R0",Imm(64))),Int(4294967295,32))), -Def(Tid(803, "%00000323"), Attrs([Attr("address","0x774"), -Attr("insn","cmp w0, #0x0")]), Var("VF",Imm(1)), -NEQ(SIGNED(33,PLUS(Var("#4",Imm(32)),Int(1,32))),PLUS(SIGNED(33,Extract(31,0,Var("R0",Imm(64)))),Int(0,33)))), -Def(Tid(808, "%00000328"), Attrs([Attr("address","0x774"), -Attr("insn","cmp w0, #0x0")]), Var("CF",Imm(1)), -NEQ(UNSIGNED(33,PLUS(Var("#4",Imm(32)),Int(1,32))),PLUS(UNSIGNED(33,Extract(31,0,Var("R0",Imm(64)))),Int(4294967296,33)))), -Def(Tid(812, "%0000032c"), Attrs([Attr("address","0x774"), -Attr("insn","cmp w0, #0x0")]), Var("ZF",Imm(1)), -EQ(PLUS(Var("#4",Imm(32)),Int(1,32)),Int(0,32))), Def(Tid(816, "%00000330"), - Attrs([Attr("address","0x774"), Attr("insn","cmp w0, #0x0")]), - Var("NF",Imm(1)), Extract(31,31,PLUS(Var("#4",Imm(32)),Int(1,32))))]), -Jmps([Goto(Tid(822, "%00000336"), Attrs([Attr("address","0x778"), -Attr("insn","b.ne #0xc")]), NEQ(Var("ZF",Imm(1)),Int(1,1)), -Direct(Tid(820, "%00000334"))), Goto(Tid(1_443, "%000005a3"), Attrs([]), - Int(1,1), Direct(Tid(843, "%0000034b")))])), Blk(Tid(820, "%00000334"), - Attrs([Attr("address","0x784")]), Phis([]), Defs([Def(Tid(830, "%0000033e"), - Attrs([Attr("address","0x784"), Attr("insn","ldr w0, [sp, #0xc]")]), - Var("R0",Imm(64)), -UNSIGNED(64,Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(12,64)),LittleEndian(),32)))]), -Jmps([Goto(Tid(1_444, "%000005a4"), Attrs([]), Int(1,1), -Direct(Tid(832, "%00000340")))])), Blk(Tid(843, "%0000034b"), - Attrs([Attr("address","0x77C")]), Phis([]), Defs([Def(Tid(846, "%0000034e"), - Attrs([Attr("address","0x77C"), Attr("insn","mov w0, #0x0")]), - Var("R0",Imm(64)), Int(0,64))]), Jmps([Goto(Tid(850, "%00000352"), - Attrs([Attr("address","0x780"), Attr("insn","b #0x8")]), Int(1,1), -Direct(Tid(832, "%00000340")))])), Blk(Tid(832, "%00000340"), - Attrs([Attr("address","0x788")]), Phis([]), Defs([Def(Tid(836, "%00000344"), - Attrs([Attr("address","0x788"), Attr("insn","add sp, sp, #0x10")]), - Var("R31",Imm(64)), PLUS(Var("R31",Imm(64)),Int(16,64)))]), -Jmps([Call(Tid(841, "%00000349"), Attrs([Attr("address","0x78C"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))]))])), -Sub(Tid(1_414, "@register_tm_clones"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x6C0")]), - "register_tm_clones", Args([Arg(Tid(1_464, "%000005b8"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("register_tm_clones_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(588, "@register_tm_clones"), Attrs([Attr("address","0x6C0")]), - Phis([]), Defs([Def(Tid(591, "%0000024f"), Attrs([Attr("address","0x6C0"), -Attr("insn","adrp x0, #69632")]), Var("R0",Imm(64)), Int(69632,64)), -Def(Tid(597, "%00000255"), Attrs([Attr("address","0x6C4"), -Attr("insn","add x0, x0, #0x10")]), Var("R0",Imm(64)), -PLUS(Var("R0",Imm(64)),Int(16,64))), Def(Tid(602, "%0000025a"), - Attrs([Attr("address","0x6C8"), Attr("insn","adrp x1, #69632")]), - Var("R1",Imm(64)), Int(69632,64)), Def(Tid(608, "%00000260"), - Attrs([Attr("address","0x6CC"), Attr("insn","add x1, x1, #0x10")]), - Var("R1",Imm(64)), PLUS(Var("R1",Imm(64)),Int(16,64))), -Def(Tid(615, "%00000267"), Attrs([Attr("address","0x6D0"), -Attr("insn","sub x1, x1, x0")]), Var("R1",Imm(64)), -PLUS(PLUS(Var("R1",Imm(64)),NOT(Var("R0",Imm(64)))),Int(1,64))), -Def(Tid(621, "%0000026d"), Attrs([Attr("address","0x6D4"), -Attr("insn","lsr x2, x1, #63")]), Var("R2",Imm(64)), -Concat(Int(0,63),Extract(63,63,Var("R1",Imm(64))))), -Def(Tid(628, "%00000274"), Attrs([Attr("address","0x6D8"), -Attr("insn","add x1, x2, x1, asr #3")]), Var("R1",Imm(64)), -PLUS(Var("R2",Imm(64)),ARSHIFT(Var("R1",Imm(64)),Int(3,3)))), -Def(Tid(634, "%0000027a"), Attrs([Attr("address","0x6DC"), -Attr("insn","asr x1, x1, #1")]), Var("R1",Imm(64)), -SIGNED(64,Extract(63,1,Var("R1",Imm(64)))))]), -Jmps([Goto(Tid(640, "%00000280"), Attrs([Attr("address","0x6E0"), -Attr("insn","cbz x1, #0x18")]), EQ(Var("R1",Imm(64)),Int(0,64)), -Direct(Tid(638, "%0000027e"))), Goto(Tid(1_445, "%000005a5"), Attrs([]), - Int(1,1), Direct(Tid(911, "%0000038f")))])), Blk(Tid(911, "%0000038f"), - Attrs([Attr("address","0x6E4")]), Phis([]), Defs([Def(Tid(914, "%00000392"), - Attrs([Attr("address","0x6E4"), Attr("insn","adrp x2, #65536")]), - Var("R2",Imm(64)), Int(65536,64)), Def(Tid(921, "%00000399"), - Attrs([Attr("address","0x6E8"), Attr("insn","ldr x2, [x2, #0xff8]")]), - Var("R2",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R2",Imm(64)),Int(4088,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(926, "%0000039e"), Attrs([Attr("address","0x6EC"), -Attr("insn","cbz x2, #0xc")]), EQ(Var("R2",Imm(64)),Int(0,64)), -Direct(Tid(638, "%0000027e"))), Goto(Tid(1_446, "%000005a6"), Attrs([]), - Int(1,1), Direct(Tid(930, "%000003a2")))])), Blk(Tid(638, "%0000027e"), - Attrs([Attr("address","0x6F8")]), Phis([]), Defs([]), -Jmps([Call(Tid(646, "%00000286"), Attrs([Attr("address","0x6F8"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))])), -Blk(Tid(930, "%000003a2"), Attrs([Attr("address","0x6F0")]), Phis([]), -Defs([Def(Tid(934, "%000003a6"), Attrs([Attr("address","0x6F0"), -Attr("insn","mov x16, x2")]), Var("R16",Imm(64)), Var("R2",Imm(64)))]), -Jmps([Call(Tid(939, "%000003ab"), Attrs([Attr("address","0x6F4"), -Attr("insn","br x16")]), Int(1,1), -(Indirect(Var("R16",Imm(64))),))]))]))]))) \ No newline at end of file diff --git a/src/test/correct/basic_function_call_reader/gcc_pic/basic_function_call_reader.bir b/src/test/correct/basic_function_call_reader/gcc_pic/basic_function_call_reader.bir deleted file mode 100644 index 7c1aeb13d..000000000 --- a/src/test/correct/basic_function_call_reader/gcc_pic/basic_function_call_reader.bir +++ /dev/null @@ -1,249 +0,0 @@ -000005a7: program -00000571: sub __cxa_finalize(__cxa_finalize_result) -000005a8: __cxa_finalize_result :: out u32 = low:32[R0] - -0000038b: -00000483: R16 := 0x10000 -0000048a: R17 := mem[R16 + 0xFA8, el]:u64 -00000490: R16 := R16 + 0xFA8 -00000495: call R17 with noreturn - -00000572: sub __do_global_dtors_aux(__do_global_dtors_aux_result) -000005a9: __do_global_dtors_aux_result :: out u32 = low:32[R0] - -0000028a: -0000028e: #3 := R31 - 0x20 -00000294: mem := mem with [#3, el]:u64 <- R29 -0000029a: mem := mem with [#3 + 8, el]:u64 <- R30 -0000029e: R31 := #3 -000002a4: R29 := R31 -000002ac: mem := mem with [R31 + 0x10, el]:u64 <- R19 -000002b1: R19 := 0x11000 -000002b8: R0 := pad:64[mem[R19 + 0x10]] -000002bf: when 31:0[R0] <> 0 goto %000002bd -0000059b: goto %00000354 - -00000354: -00000357: R0 := 0x10000 -0000035e: R0 := mem[R0 + 0xFD0, el]:u64 -00000364: when R0 = 0 goto %00000362 -0000059c: goto %0000037b - -0000037b: -0000037e: R0 := 0x11000 -00000385: R0 := mem[R0 + 8, el]:u64 -0000038a: R30 := 0x730 -0000038d: call @__cxa_finalize with return %00000362 - -00000362: -0000036a: R30 := 0x734 -0000036c: call @deregister_tm_clones with return %0000036e - -0000036e: -00000371: R0 := 1 -00000379: mem := mem with [R19 + 0x10] <- 7:0[R0] -0000059d: goto %000002bd - -000002bd: -000002c7: R19 := mem[R31 + 0x10, el]:u64 -000002ce: R29 := mem[R31, el]:u64 -000002d3: R30 := mem[R31 + 8, el]:u64 -000002d7: R31 := R31 + 0x20 -000002dc: call R30 with noreturn - -00000576: sub __libc_start_main(__libc_start_main_main, __libc_start_main_arg2, __libc_start_main_arg3, __libc_start_main_auxv, __libc_start_main_result) -000005aa: __libc_start_main_main :: in u64 = R0 -000005ab: __libc_start_main_arg2 :: in u32 = low:32[R1] -000005ac: __libc_start_main_arg3 :: in out u64 = R2 -000005ad: __libc_start_main_auxv :: in out u64 = R3 -000005ae: __libc_start_main_result :: out u32 = low:32[R0] - -000001e3: -0000046d: R16 := 0x10000 -00000474: R17 := mem[R16 + 0xFA0, el]:u64 -0000047a: R16 := R16 + 0xFA0 -0000047f: call R17 with noreturn - -00000577: sub _fini(_fini_result) -000005af: _fini_result :: out u32 = low:32[R0] - -0000001f: -00000025: #0 := R31 - 0x10 -0000002b: mem := mem with [#0, el]:u64 <- R29 -00000031: mem := mem with [#0 + 8, el]:u64 <- R30 -00000035: R31 := #0 -0000003b: R29 := R31 -00000042: R29 := mem[R31, el]:u64 -00000047: R30 := mem[R31 + 8, el]:u64 -0000004b: R31 := R31 + 0x10 -00000050: call R30 with noreturn - -00000578: sub _init(_init_result) -000005b0: _init_result :: out u32 = low:32[R0] - -000004dd: -000004e3: #6 := R31 - 0x10 -000004e9: mem := mem with [#6, el]:u64 <- R29 -000004ef: mem := mem with [#6 + 8, el]:u64 <- R30 -000004f3: R31 := #6 -000004f9: R29 := R31 -000004fe: R30 := 0x5C0 -00000500: call @call_weak_fn with return %00000502 - -00000502: -00000507: R29 := mem[R31, el]:u64 -0000050c: R30 := mem[R31 + 8, el]:u64 -00000510: R31 := R31 + 0x10 -00000515: call R30 with noreturn - -00000579: sub _start(_start_result) -000005b1: _start_result :: out u32 = low:32[R0] - -000001a4: -000001a9: R29 := 0 -000001ae: R30 := 0 -000001b4: R5 := R0 -000001bb: R1 := mem[R31, el]:u64 -000001c1: R2 := R31 + 8 -000001c7: R6 := R31 -000001cc: R0 := 0x10000 -000001d3: R0 := mem[R0 + 0xFF0, el]:u64 -000001d8: R3 := 0 -000001dd: R4 := 0 -000001e2: R30 := 0x670 -000001e5: call @__libc_start_main with return %000001e7 - -000001e7: -000001ea: R30 := 0x674 -000001ed: call @abort with return %0000059e - -0000059e: -0000059f: call @call_weak_fn with noreturn - -0000057c: sub abort() - - -000001eb: -000004af: R16 := 0x10000 -000004b6: R17 := mem[R16 + 0xFB8, el]:u64 -000004bc: R16 := R16 + 0xFB8 -000004c1: call R17 with noreturn - -0000057d: sub call_weak_fn(call_weak_fn_result) -000005b2: call_weak_fn_result :: out u32 = low:32[R0] - -000001ef: -000001f2: R0 := 0x10000 -000001f9: R0 := mem[R0 + 0xFE0, el]:u64 -000001ff: when R0 = 0 goto %000001fd -000005a0: goto %000003cb - -000001fd: -00000205: call R30 with noreturn - -000003cb: -000003ce: goto @__gmon_start__ - -000003cc: -00000499: R16 := 0x10000 -000004a0: R17 := mem[R16 + 0xFB0, el]:u64 -000004a6: R16 := R16 + 0xFB0 -000004ab: call R17 with noreturn - -0000057f: sub deregister_tm_clones(deregister_tm_clones_result) -000005b3: deregister_tm_clones_result :: out u32 = low:32[R0] - -0000020b: -0000020e: R0 := 0x11000 -00000214: R0 := R0 + 0x10 -00000219: R1 := 0x11000 -0000021f: R1 := R1 + 0x10 -00000225: #1 := ~R0 -0000022a: #2 := R1 + ~R0 -00000230: VF := extend:65[#2 + 1] <> extend:65[R1] + extend:65[#1] + 1 -00000236: CF := pad:65[#2 + 1] <> pad:65[R1] + pad:65[#1] + 1 -0000023a: ZF := #2 + 1 = 0 -0000023e: NF := 63:63[#2 + 1] -00000244: when ZF goto %00000242 -000005a1: goto %000003ad - -000003ad: -000003b0: R1 := 0x10000 -000003b7: R1 := mem[R1 + 0xFC8, el]:u64 -000003bc: when R1 = 0 goto %00000242 -000005a2: goto %000003c0 - -00000242: -0000024a: call R30 with noreturn - -000003c0: -000003c4: R16 := R1 -000003c9: call R16 with noreturn - -00000582: sub frame_dummy(frame_dummy_result) -000005b4: frame_dummy_result :: out u32 = low:32[R0] - -000002e2: -000002e4: call @register_tm_clones with noreturn - -00000583: sub main(main_argc, main_argv, main_result) -000005b5: main_argc :: in u32 = low:32[R0] -000005b6: main_argv :: in out u64 = R1 -000005b7: main_result :: out u32 = low:32[R0] - -000002e6: -000002ea: R31 := R31 - 0x10 -000002ef: R0 := 0x10000 -000002f6: R0 := mem[R0 + 0xFE8, el]:u64 -000002fd: R0 := pad:64[mem[R0, el]:u32] -00000305: mem := mem with [R31 + 0xC, el]:u32 <- 31:0[R0] -0000030a: R0 := 0x10000 -00000311: R0 := mem[R0 + 0xFD8, el]:u64 -00000318: R0 := pad:64[mem[R0, el]:u32] -0000031e: #4 := 31:0[R0] - 1 -00000323: VF := extend:33[#4 + 1] <> extend:33[31:0[R0]] + 0 -00000328: CF := pad:33[#4 + 1] <> pad:33[31:0[R0]] - 0x100000000 -0000032c: ZF := #4 + 1 = 0 -00000330: NF := 31:31[#4 + 1] -00000336: when ZF <> 1 goto %00000334 -000005a3: goto %0000034b - -00000334: -0000033e: R0 := pad:64[mem[R31 + 0xC, el]:u32] -000005a4: goto %00000340 - -0000034b: -0000034e: R0 := 0 -00000352: goto %00000340 - -00000340: -00000344: R31 := R31 + 0x10 -00000349: call R30 with noreturn - -00000586: sub register_tm_clones(register_tm_clones_result) -000005b8: register_tm_clones_result :: out u32 = low:32[R0] - -0000024c: -0000024f: R0 := 0x11000 -00000255: R0 := R0 + 0x10 -0000025a: R1 := 0x11000 -00000260: R1 := R1 + 0x10 -00000267: R1 := R1 + ~R0 + 1 -0000026d: R2 := 0.63:63[R1] -00000274: R1 := R2 + (R1 ~>> 3) -0000027a: R1 := extend:64[63:1[R1]] -00000280: when R1 = 0 goto %0000027e -000005a5: goto %0000038f - -0000038f: -00000392: R2 := 0x10000 -00000399: R2 := mem[R2 + 0xFF8, el]:u64 -0000039e: when R2 = 0 goto %0000027e -000005a6: goto %000003a2 - -0000027e: -00000286: call R30 with noreturn - -000003a2: -000003a6: R16 := R2 -000003ab: call R16 with noreturn diff --git a/src/test/correct/basic_function_call_reader/gcc_pic/basic_function_call_reader.expected b/src/test/correct/basic_function_call_reader/gcc_pic/basic_function_call_reader.expected index 40f7a0bc8..e8b146b48 100644 --- a/src/test/correct/basic_function_call_reader/gcc_pic/basic_function_call_reader.expected +++ b/src/test/correct/basic_function_call_reader/gcc_pic/basic_function_call_reader.expected @@ -97,7 +97,7 @@ implementation {:extern} guarantee_reflexive() assert (memory_load32_le(mem, $y_addr) == memory_load32_le(mem, $y_addr)); } -procedure main_1876(); +procedure main(); modifies CF, Gamma_CF, Gamma_NF, Gamma_R0, Gamma_R31, Gamma_VF, Gamma_ZF, Gamma_mem, Gamma_stack, NF, R0, R31, VF, ZF, mem, stack; free requires (memory_load64_le(mem, 69632bv64) == 0bv64); free requires (memory_load64_le(mem, 69640bv64) == 69640bv64); @@ -118,39 +118,39 @@ procedure main_1876(); free ensures (memory_load64_le(mem, 69616bv64) == 1876bv64); free ensures (memory_load64_le(mem, 69640bv64) == 69640bv64); -implementation main_1876() +implementation main() { var #4: bv32; + var $load$18: bv64; + var $load$19: bv32; + var $load$20: bv64; + var $load$21: bv32; + var $load$22: bv32; var Gamma_#4: bool; - var Gamma_load18: bool; - var Gamma_load19: bool; - var Gamma_load20: bool; - var Gamma_load21: bool; - var Gamma_load22: bool; - var load18: bv64; - var load19: bv32; - var load20: bv64; - var load21: bv32; - var load22: bv32; + var Gamma_$load$18: bool; + var Gamma_$load$19: bool; + var Gamma_$load$20: bool; + var Gamma_$load$21: bool; + var Gamma_$load$22: bool; lmain: assume {:captureState "lmain"} true; R31, Gamma_R31 := bvadd64(R31, 18446744073709551600bv64), Gamma_R31; R0, Gamma_R0 := 65536bv64, true; call rely(); - load18, Gamma_load18 := memory_load64_le(mem, bvadd64(R0, 4072bv64)), (gamma_load64(Gamma_mem, bvadd64(R0, 4072bv64)) || L(mem, bvadd64(R0, 4072bv64))); - R0, Gamma_R0 := load18, Gamma_load18; + $load$18, Gamma_$load$18 := memory_load64_le(mem, bvadd64(R0, 4072bv64)), (gamma_load64(Gamma_mem, bvadd64(R0, 4072bv64)) || L(mem, bvadd64(R0, 4072bv64))); + R0, Gamma_R0 := $load$18, Gamma_$load$18; call rely(); - load19, Gamma_load19 := memory_load32_le(mem, R0), (gamma_load32(Gamma_mem, R0) || L(mem, R0)); - R0, Gamma_R0 := zero_extend32_32(load19), Gamma_load19; + $load$19, Gamma_$load$19 := memory_load32_le(mem, R0), (gamma_load32(Gamma_mem, R0) || L(mem, R0)); + R0, Gamma_R0 := zero_extend32_32($load$19), Gamma_$load$19; stack, Gamma_stack := memory_store32_le(stack, bvadd64(R31, 12bv64), R0[32:0]), gamma_store32(Gamma_stack, bvadd64(R31, 12bv64), Gamma_R0); assume {:captureState "%00000305"} true; R0, Gamma_R0 := 65536bv64, true; call rely(); - load20, Gamma_load20 := memory_load64_le(mem, bvadd64(R0, 4056bv64)), (gamma_load64(Gamma_mem, bvadd64(R0, 4056bv64)) || L(mem, bvadd64(R0, 4056bv64))); - R0, Gamma_R0 := load20, Gamma_load20; + $load$20, Gamma_$load$20 := memory_load64_le(mem, bvadd64(R0, 4056bv64)), (gamma_load64(Gamma_mem, bvadd64(R0, 4056bv64)) || L(mem, bvadd64(R0, 4056bv64))); + R0, Gamma_R0 := $load$20, Gamma_$load$20; call rely(); - load21, Gamma_load21 := memory_load32_le(mem, R0), (gamma_load32(Gamma_mem, R0) || L(mem, R0)); - R0, Gamma_R0 := zero_extend32_32(load21), Gamma_load21; + $load$21, Gamma_$load$21 := memory_load32_le(mem, R0), (gamma_load32(Gamma_mem, R0) || L(mem, R0)); + R0, Gamma_R0 := zero_extend32_32($load$21), Gamma_$load$21; #4, Gamma_#4 := bvadd32(R0[32:0], 4294967295bv32), Gamma_R0; VF, Gamma_VF := bvnot1(bvcomp33(sign_extend1_32(bvadd32(#4, 1bv32)), bvadd33(sign_extend1_32(R0[32:0]), 0bv33))), (Gamma_R0 && Gamma_#4); CF, Gamma_CF := bvnot1(bvcomp33(zero_extend1_32(bvadd32(#4, 1bv32)), bvadd33(zero_extend1_32(R0[32:0]), 4294967296bv33))), (Gamma_R0 && Gamma_#4); @@ -158,29 +158,29 @@ implementation main_1876() NF, Gamma_NF := bvadd32(#4, 1bv32)[32:31], Gamma_#4; assert Gamma_ZF; goto lmain_goto_l00000334, lmain_goto_l0000034b; - lmain_goto_l0000034b: - assume {:captureState "lmain_goto_l0000034b"} true; - assume (bvnot1(bvcomp1(ZF, 1bv1)) == 0bv1); - R0, Gamma_R0 := 0bv64, true; - goto l0000034b; + l00000334: + assume {:captureState "l00000334"} true; + $load$22, Gamma_$load$22 := memory_load32_le(stack, bvadd64(R31, 12bv64)), gamma_load32(Gamma_stack, bvadd64(R31, 12bv64)); + R0, Gamma_R0 := zero_extend32_32($load$22), Gamma_$load$22; + goto l00000340; l0000034b: assume {:captureState "l0000034b"} true; + R0, Gamma_R0 := 0bv64, true; goto l00000340; + l00000340: + assume {:captureState "l00000340"} true; + R31, Gamma_R31 := bvadd64(R31, 16bv64), Gamma_R31; + goto main_basil_return; lmain_goto_l00000334: assume {:captureState "lmain_goto_l00000334"} true; assume (bvnot1(bvcomp1(ZF, 1bv1)) != 0bv1); - load22, Gamma_load22 := memory_load32_le(stack, bvadd64(R31, 12bv64)), gamma_load32(Gamma_stack, bvadd64(R31, 12bv64)); - R0, Gamma_R0 := zero_extend32_32(load22), Gamma_load22; goto l00000334; - l00000334: - assume {:captureState "l00000334"} true; - goto l00000340; - l00000340: - assume {:captureState "l00000340"} true; - R31, Gamma_R31 := bvadd64(R31, 16bv64), Gamma_R31; - goto main_1876_basil_return; - main_1876_basil_return: - assume {:captureState "main_1876_basil_return"} true; + lmain_goto_l0000034b: + assume {:captureState "lmain_goto_l0000034b"} true; + assume (bvnot1(bvcomp1(ZF, 1bv1)) == 0bv1); + goto l0000034b; + main_basil_return: + assume {:captureState "main_basil_return"} true; return; } diff --git a/src/test/correct/basic_function_call_reader/gcc_pic/basic_function_call_reader.gts b/src/test/correct/basic_function_call_reader/gcc_pic/basic_function_call_reader.gts deleted file mode 100644 index 6e7fa9373..000000000 Binary files a/src/test/correct/basic_function_call_reader/gcc_pic/basic_function_call_reader.gts and /dev/null differ diff --git a/src/test/correct/basic_function_call_reader/gcc_pic/basic_function_call_reader.md5sum b/src/test/correct/basic_function_call_reader/gcc_pic/basic_function_call_reader.md5sum new file mode 100644 index 000000000..5f4302dda --- /dev/null +++ b/src/test/correct/basic_function_call_reader/gcc_pic/basic_function_call_reader.md5sum @@ -0,0 +1,5 @@ +11fac357ac618b795ec652ffcc3df152 correct/basic_function_call_reader/gcc_pic/a.out +97af01cd42b2830e9e8bf5c053daee06 correct/basic_function_call_reader/gcc_pic/basic_function_call_reader.adt +0fe45c81a0941066c84a575f8c9bd3ee correct/basic_function_call_reader/gcc_pic/basic_function_call_reader.bir +490fd4378bb7a712a689f2628bdc2fae correct/basic_function_call_reader/gcc_pic/basic_function_call_reader.relf +59a49d62025092c63a064723376046da correct/basic_function_call_reader/gcc_pic/basic_function_call_reader.gts diff --git a/src/test/correct/basic_function_call_reader/gcc_pic/basic_function_call_reader.relf b/src/test/correct/basic_function_call_reader/gcc_pic/basic_function_call_reader.relf deleted file mode 100644 index 689be2212..000000000 --- a/src/test/correct/basic_function_call_reader/gcc_pic/basic_function_call_reader.relf +++ /dev/null @@ -1,124 +0,0 @@ - -Relocation section '.rela.dyn' at offset 0x460 contains 10 entries: - Offset Info Type Symbol's Value Symbol's Name + Addend -0000000000010d88 0000000000000403 R_AARCH64_RELATIVE 750 -0000000000010d90 0000000000000403 R_AARCH64_RELATIVE 700 -0000000000010fd8 0000000000000403 R_AARCH64_RELATIVE 11014 -0000000000010fe8 0000000000000403 R_AARCH64_RELATIVE 11018 -0000000000010ff0 0000000000000403 R_AARCH64_RELATIVE 754 -0000000000011008 0000000000000403 R_AARCH64_RELATIVE 11008 -0000000000010fc8 0000000400000401 R_AARCH64_GLOB_DAT 0000000000000000 _ITM_deregisterTMCloneTable + 0 -0000000000010fd0 0000000500000401 R_AARCH64_GLOB_DAT 0000000000000000 __cxa_finalize@GLIBC_2.17 + 0 -0000000000010fe0 0000000600000401 R_AARCH64_GLOB_DAT 0000000000000000 __gmon_start__ + 0 -0000000000010ff8 0000000800000401 R_AARCH64_GLOB_DAT 0000000000000000 _ITM_registerTMCloneTable + 0 - -Relocation section '.rela.plt' at offset 0x550 contains 4 entries: - Offset Info Type Symbol's Value Symbol's Name + Addend -0000000000010fa0 0000000300000402 R_AARCH64_JUMP_SLOT 0000000000000000 __libc_start_main@GLIBC_2.34 + 0 -0000000000010fa8 0000000500000402 R_AARCH64_JUMP_SLOT 0000000000000000 __cxa_finalize@GLIBC_2.17 + 0 -0000000000010fb0 0000000600000402 R_AARCH64_JUMP_SLOT 0000000000000000 __gmon_start__ + 0 -0000000000010fb8 0000000700000402 R_AARCH64_JUMP_SLOT 0000000000000000 abort@GLIBC_2.17 + 0 - -Symbol table '.dynsym' contains 9 entries: - Num: Value Size Type Bind Vis Ndx Name - 0: 0000000000000000 0 NOTYPE LOCAL DEFAULT UND - 1: 00000000000005b0 0 SECTION LOCAL DEFAULT 11 .init - 2: 0000000000011000 0 SECTION LOCAL DEFAULT 22 .data - 3: 0000000000000000 0 FUNC GLOBAL DEFAULT UND __libc_start_main@GLIBC_2.34 (2) - 4: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_deregisterTMCloneTable - 5: 0000000000000000 0 FUNC WEAK DEFAULT UND __cxa_finalize@GLIBC_2.17 (3) - 6: 0000000000000000 0 NOTYPE WEAK DEFAULT UND __gmon_start__ - 7: 0000000000000000 0 FUNC GLOBAL DEFAULT UND abort@GLIBC_2.17 (3) - 8: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_registerTMCloneTable - -Symbol table '.symtab' contains 89 entries: - Num: Value Size Type Bind Vis Ndx Name - 0: 0000000000000000 0 NOTYPE LOCAL DEFAULT UND - 1: 0000000000000238 0 SECTION LOCAL DEFAULT 1 .interp - 2: 0000000000000254 0 SECTION LOCAL DEFAULT 2 .note.gnu.build-id - 3: 0000000000000278 0 SECTION LOCAL DEFAULT 3 .note.ABI-tag - 4: 0000000000000298 0 SECTION LOCAL DEFAULT 4 .gnu.hash - 5: 00000000000002b8 0 SECTION LOCAL DEFAULT 5 .dynsym - 6: 0000000000000390 0 SECTION LOCAL DEFAULT 6 .dynstr - 7: 000000000000041e 0 SECTION LOCAL DEFAULT 7 .gnu.version - 8: 0000000000000430 0 SECTION LOCAL DEFAULT 8 .gnu.version_r - 9: 0000000000000460 0 SECTION LOCAL DEFAULT 9 .rela.dyn - 10: 0000000000000550 0 SECTION LOCAL DEFAULT 10 .rela.plt - 11: 00000000000005b0 0 SECTION LOCAL DEFAULT 11 .init - 12: 00000000000005d0 0 SECTION LOCAL DEFAULT 12 .plt - 13: 0000000000000640 0 SECTION LOCAL DEFAULT 13 .text - 14: 0000000000000790 0 SECTION LOCAL DEFAULT 14 .fini - 15: 00000000000007a4 0 SECTION LOCAL DEFAULT 15 .rodata - 16: 00000000000007a8 0 SECTION LOCAL DEFAULT 16 .eh_frame_hdr - 17: 00000000000007e8 0 SECTION LOCAL DEFAULT 17 .eh_frame - 18: 0000000000010d88 0 SECTION LOCAL DEFAULT 18 .init_array - 19: 0000000000010d90 0 SECTION LOCAL DEFAULT 19 .fini_array - 20: 0000000000010d98 0 SECTION LOCAL DEFAULT 20 .dynamic - 21: 0000000000010f88 0 SECTION LOCAL DEFAULT 21 .got - 22: 0000000000011000 0 SECTION LOCAL DEFAULT 22 .data - 23: 0000000000011010 0 SECTION LOCAL DEFAULT 23 .bss - 24: 0000000000000000 0 SECTION LOCAL DEFAULT 24 .comment - 25: 0000000000000000 0 FILE LOCAL DEFAULT ABS Scrt1.o - 26: 0000000000000278 0 NOTYPE LOCAL DEFAULT 3 $d - 27: 0000000000000278 32 OBJECT LOCAL DEFAULT 3 __abi_tag - 28: 0000000000000640 0 NOTYPE LOCAL DEFAULT 13 $x - 29: 00000000000007fc 0 NOTYPE LOCAL DEFAULT 17 $d - 30: 00000000000007a4 0 NOTYPE LOCAL DEFAULT 15 $d - 31: 0000000000000000 0 FILE LOCAL DEFAULT ABS crti.o - 32: 0000000000000674 0 NOTYPE LOCAL DEFAULT 13 $x - 33: 0000000000000674 20 FUNC LOCAL DEFAULT 13 call_weak_fn - 34: 00000000000005b0 0 NOTYPE LOCAL DEFAULT 11 $x - 35: 0000000000000790 0 NOTYPE LOCAL DEFAULT 14 $x - 36: 0000000000000000 0 FILE LOCAL DEFAULT ABS crtn.o - 37: 00000000000005c0 0 NOTYPE LOCAL DEFAULT 11 $x - 38: 000000000000079c 0 NOTYPE LOCAL DEFAULT 14 $x - 39: 0000000000000000 0 FILE LOCAL DEFAULT ABS crtstuff.c - 40: 0000000000000690 0 NOTYPE LOCAL DEFAULT 13 $x - 41: 0000000000000690 0 FUNC LOCAL DEFAULT 13 deregister_tm_clones - 42: 00000000000006c0 0 FUNC LOCAL DEFAULT 13 register_tm_clones - 43: 0000000000011008 0 NOTYPE LOCAL DEFAULT 22 $d - 44: 0000000000000700 0 FUNC LOCAL DEFAULT 13 __do_global_dtors_aux - 45: 0000000000011010 1 OBJECT LOCAL DEFAULT 23 completed.0 - 46: 0000000000010d90 0 NOTYPE LOCAL DEFAULT 19 $d - 47: 0000000000010d90 0 OBJECT LOCAL DEFAULT 19 __do_global_dtors_aux_fini_array_entry - 48: 0000000000000750 0 FUNC LOCAL DEFAULT 13 frame_dummy - 49: 0000000000010d88 0 NOTYPE LOCAL DEFAULT 18 $d - 50: 0000000000010d88 0 OBJECT LOCAL DEFAULT 18 __frame_dummy_init_array_entry - 51: 0000000000000810 0 NOTYPE LOCAL DEFAULT 17 $d - 52: 0000000000011010 0 NOTYPE LOCAL DEFAULT 23 $d - 53: 0000000000000000 0 FILE LOCAL DEFAULT ABS basic_function_call_reader.c - 54: 0000000000011014 0 NOTYPE LOCAL DEFAULT 23 $d - 55: 0000000000000754 0 NOTYPE LOCAL DEFAULT 13 $x - 56: 0000000000000870 0 NOTYPE LOCAL DEFAULT 17 $d - 57: 0000000000000000 0 FILE LOCAL DEFAULT ABS crtstuff.c - 58: 0000000000000888 0 NOTYPE LOCAL DEFAULT 17 $d - 59: 0000000000000888 0 OBJECT LOCAL DEFAULT 17 __FRAME_END__ - 60: 0000000000000000 0 FILE LOCAL DEFAULT ABS - 61: 0000000000010d98 0 OBJECT LOCAL DEFAULT ABS _DYNAMIC - 62: 00000000000007a8 0 NOTYPE LOCAL DEFAULT 16 __GNU_EH_FRAME_HDR - 63: 0000000000010fc0 0 OBJECT LOCAL DEFAULT ABS _GLOBAL_OFFSET_TABLE_ - 64: 00000000000005d0 0 NOTYPE LOCAL DEFAULT 12 $x - 65: 0000000000000000 0 FUNC GLOBAL DEFAULT UND __libc_start_main@GLIBC_2.34 - 66: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_deregisterTMCloneTable - 67: 0000000000011000 0 NOTYPE WEAK DEFAULT 22 data_start - 68: 0000000000011010 0 NOTYPE GLOBAL DEFAULT 23 __bss_start__ - 69: 0000000000000000 0 FUNC WEAK DEFAULT UND __cxa_finalize@GLIBC_2.17 - 70: 0000000000011020 0 NOTYPE GLOBAL DEFAULT 23 _bss_end__ - 71: 0000000000011010 0 NOTYPE GLOBAL DEFAULT 22 _edata - 72: 0000000000011014 4 OBJECT GLOBAL DEFAULT 23 x - 73: 0000000000000790 0 FUNC GLOBAL HIDDEN 14 _fini - 74: 0000000000011020 0 NOTYPE GLOBAL DEFAULT 23 __bss_end__ - 75: 0000000000011000 0 NOTYPE GLOBAL DEFAULT 22 __data_start - 76: 0000000000000000 0 NOTYPE WEAK DEFAULT UND __gmon_start__ - 77: 0000000000011008 0 OBJECT GLOBAL HIDDEN 22 __dso_handle - 78: 0000000000000000 0 FUNC GLOBAL DEFAULT UND abort@GLIBC_2.17 - 79: 00000000000007a4 4 OBJECT GLOBAL DEFAULT 15 _IO_stdin_used - 80: 0000000000011020 0 NOTYPE GLOBAL DEFAULT 23 _end - 81: 0000000000000640 52 FUNC GLOBAL DEFAULT 13 _start - 82: 0000000000011020 0 NOTYPE GLOBAL DEFAULT 23 __end__ - 83: 0000000000011018 4 OBJECT GLOBAL DEFAULT 23 y - 84: 0000000000011010 0 NOTYPE GLOBAL DEFAULT 23 __bss_start - 85: 0000000000000754 60 FUNC GLOBAL DEFAULT 13 main - 86: 0000000000011010 0 OBJECT GLOBAL HIDDEN 22 __TMC_END__ - 87: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_registerTMCloneTable - 88: 00000000000005b0 0 FUNC GLOBAL HIDDEN 11 _init diff --git a/src/test/correct/basic_function_call_reader/gcc_pic/basic_function_call_reader_gtirb.expected b/src/test/correct/basic_function_call_reader/gcc_pic/basic_function_call_reader_gtirb.expected index 2ac239256..0e4631ec7 100644 --- a/src/test/correct/basic_function_call_reader/gcc_pic/basic_function_call_reader_gtirb.expected +++ b/src/test/correct/basic_function_call_reader/gcc_pic/basic_function_call_reader_gtirb.expected @@ -95,7 +95,7 @@ implementation {:extern} guarantee_reflexive() assert (memory_load32_le(mem, $y_addr) == memory_load32_le(mem, $y_addr)); } -procedure main_1876(); +procedure main(); modifies CF, Gamma_CF, Gamma_NF, Gamma_R0, Gamma_R31, Gamma_VF, Gamma_ZF, Gamma_mem, Gamma_stack, NF, R0, R31, VF, ZF, mem, stack; free requires (memory_load64_le(mem, 69632bv64) == 0bv64); free requires (memory_load64_le(mem, 69640bv64) == 69640bv64); @@ -116,69 +116,69 @@ procedure main_1876(); free ensures (memory_load64_le(mem, 69616bv64) == 1876bv64); free ensures (memory_load64_le(mem, 69640bv64) == 69640bv64); -implementation main_1876() +implementation main() { - var Cse0__5_1_8: bv32; - var Gamma_Cse0__5_1_8: bool; - var Gamma_load10: bool; - var Gamma_load11: bool; - var Gamma_load12: bool; - var Gamma_load8: bool; - var Gamma_load9: bool; - var load10: bv64; - var load11: bv32; - var load12: bv32; - var load8: bv64; - var load9: bv32; - main_1876__0__XPSYuwk~QqCXXYlfch0U8A: - assume {:captureState "main_1876__0__XPSYuwk~QqCXXYlfch0U8A"} true; + var $load10: bv64; + var $load11: bv32; + var $load12: bv32; + var $load8: bv64; + var $load9: bv32; + var Cse0__5$1$8: bv32; + var Gamma_$load10: bool; + var Gamma_$load11: bool; + var Gamma_$load12: bool; + var Gamma_$load8: bool; + var Gamma_$load9: bool; + var Gamma_Cse0__5$1$8: bool; + $main$__0__$XPSYuwk~QqCXXYlfch0U8A: + assume {:captureState "$main$__0__$XPSYuwk~QqCXXYlfch0U8A"} true; R31, Gamma_R31 := bvadd64(R31, 18446744073709551600bv64), Gamma_R31; R0, Gamma_R0 := 65536bv64, true; call rely(); - load8, Gamma_load8 := memory_load64_le(mem, bvadd64(R0, 4072bv64)), (gamma_load64(Gamma_mem, bvadd64(R0, 4072bv64)) || L(mem, bvadd64(R0, 4072bv64))); - R0, Gamma_R0 := load8, Gamma_load8; + $load8, Gamma_$load8 := memory_load64_le(mem, bvadd64(R0, 4072bv64)), (gamma_load64(Gamma_mem, bvadd64(R0, 4072bv64)) || L(mem, bvadd64(R0, 4072bv64))); + R0, Gamma_R0 := $load8, Gamma_$load8; call rely(); - load9, Gamma_load9 := memory_load32_le(mem, R0), (gamma_load32(Gamma_mem, R0) || L(mem, R0)); - R0, Gamma_R0 := zero_extend32_32(load9), Gamma_load9; + $load9, Gamma_$load9 := memory_load32_le(mem, R0), (gamma_load32(Gamma_mem, R0) || L(mem, R0)); + R0, Gamma_R0 := zero_extend32_32($load9), Gamma_$load9; stack, Gamma_stack := memory_store32_le(stack, bvadd64(R31, 12bv64), R0[32:0]), gamma_store32(Gamma_stack, bvadd64(R31, 12bv64), Gamma_R0); - assume {:captureState "1892_0"} true; + assume {:captureState "1892$0"} true; R0, Gamma_R0 := 65536bv64, true; call rely(); - load10, Gamma_load10 := memory_load64_le(mem, bvadd64(R0, 4056bv64)), (gamma_load64(Gamma_mem, bvadd64(R0, 4056bv64)) || L(mem, bvadd64(R0, 4056bv64))); - R0, Gamma_R0 := load10, Gamma_load10; + $load10, Gamma_$load10 := memory_load64_le(mem, bvadd64(R0, 4056bv64)), (gamma_load64(Gamma_mem, bvadd64(R0, 4056bv64)) || L(mem, bvadd64(R0, 4056bv64))); + R0, Gamma_R0 := $load10, Gamma_$load10; call rely(); - load11, Gamma_load11 := memory_load32_le(mem, R0), (gamma_load32(Gamma_mem, R0) || L(mem, R0)); - R0, Gamma_R0 := zero_extend32_32(load11), Gamma_load11; - Cse0__5_1_8, Gamma_Cse0__5_1_8 := bvadd32(R0[32:0], 0bv32), Gamma_R0; - VF, Gamma_VF := bvnot1(bvcomp32(Cse0__5_1_8, Cse0__5_1_8)), Gamma_Cse0__5_1_8; - CF, Gamma_CF := bvnot1(bvcomp33(zero_extend1_32(Cse0__5_1_8), bvadd33(zero_extend1_32(R0[32:0]), 4294967296bv33))), (Gamma_R0 && Gamma_Cse0__5_1_8); - ZF, Gamma_ZF := bvcomp32(Cse0__5_1_8, 0bv32), Gamma_Cse0__5_1_8; - NF, Gamma_NF := Cse0__5_1_8[32:31], Gamma_Cse0__5_1_8; + $load11, Gamma_$load11 := memory_load32_le(mem, R0), (gamma_load32(Gamma_mem, R0) || L(mem, R0)); + R0, Gamma_R0 := zero_extend32_32($load11), Gamma_$load11; + Cse0__5$1$8, Gamma_Cse0__5$1$8 := bvadd32(R0[32:0], 0bv32), Gamma_R0; + VF, Gamma_VF := bvnot1(bvcomp32(Cse0__5$1$8, Cse0__5$1$8)), Gamma_Cse0__5$1$8; + CF, Gamma_CF := bvnot1(bvcomp33(zero_extend1_32(Cse0__5$1$8), bvadd33(zero_extend1_32(R0[32:0]), 4294967296bv33))), (Gamma_R0 && Gamma_Cse0__5$1$8); + ZF, Gamma_ZF := bvcomp32(Cse0__5$1$8, 0bv32), Gamma_Cse0__5$1$8; + NF, Gamma_NF := Cse0__5$1$8[32:31], Gamma_Cse0__5$1$8; assert Gamma_ZF; - goto main_1876__0__XPSYuwk~QqCXXYlfch0U8A_goto_main_1876__2__YV9HrAzzRPueIlS9B6wdEg, main_1876__0__XPSYuwk~QqCXXYlfch0U8A_goto_main_1876__1__tezFaGT_RC6b4e~6~Bd7zA; - main_1876__0__XPSYuwk~QqCXXYlfch0U8A_goto_main_1876__1__tezFaGT_RC6b4e~6~Bd7zA: - assume {:captureState "main_1876__0__XPSYuwk~QqCXXYlfch0U8A_goto_main_1876__1__tezFaGT_RC6b4e~6~Bd7zA"} true; - assume (!(!(ZF == 1bv1))); + goto $main$__0__$XPSYuwk~QqCXXYlfch0U8A_goto_$main$__2__$YV9HrAzzRPueIlS9B6wdEg, $main$__0__$XPSYuwk~QqCXXYlfch0U8A_goto_$main$__1__$tezFaGT_RC6b4e~6~Bd7zA; + $main$__1__$tezFaGT_RC6b4e~6~Bd7zA: + assume {:captureState "$main$__1__$tezFaGT_RC6b4e~6~Bd7zA"} true; R0, Gamma_R0 := 0bv64, true; - goto main_1876__1__tezFaGT_RC6b4e~6~Bd7zA; - main_1876__1__tezFaGT_RC6b4e~6~Bd7zA: - assume {:captureState "main_1876__1__tezFaGT_RC6b4e~6~Bd7zA"} true; - goto main_1876__3__BzeSfzsYQfagBIn19G60Ng; - main_1876__0__XPSYuwk~QqCXXYlfch0U8A_goto_main_1876__2__YV9HrAzzRPueIlS9B6wdEg: - assume {:captureState "main_1876__0__XPSYuwk~QqCXXYlfch0U8A_goto_main_1876__2__YV9HrAzzRPueIlS9B6wdEg"} true; - assume (!(ZF == 1bv1)); - load12, Gamma_load12 := memory_load32_le(stack, bvadd64(R31, 12bv64)), gamma_load32(Gamma_stack, bvadd64(R31, 12bv64)); - R0, Gamma_R0 := zero_extend32_32(load12), Gamma_load12; - goto main_1876__2__YV9HrAzzRPueIlS9B6wdEg; - main_1876__2__YV9HrAzzRPueIlS9B6wdEg: - assume {:captureState "main_1876__2__YV9HrAzzRPueIlS9B6wdEg"} true; - goto main_1876__3__BzeSfzsYQfagBIn19G60Ng; - main_1876__3__BzeSfzsYQfagBIn19G60Ng: - assume {:captureState "main_1876__3__BzeSfzsYQfagBIn19G60Ng"} true; + goto $main$__3__$BzeSfzsYQfagBIn19G60Ng; + $main$__2__$YV9HrAzzRPueIlS9B6wdEg: + assume {:captureState "$main$__2__$YV9HrAzzRPueIlS9B6wdEg"} true; + $load12, Gamma_$load12 := memory_load32_le(stack, bvadd64(R31, 12bv64)), gamma_load32(Gamma_stack, bvadd64(R31, 12bv64)); + R0, Gamma_R0 := zero_extend32_32($load12), Gamma_$load12; + goto $main$__3__$BzeSfzsYQfagBIn19G60Ng; + $main$__3__$BzeSfzsYQfagBIn19G60Ng: + assume {:captureState "$main$__3__$BzeSfzsYQfagBIn19G60Ng"} true; R31, Gamma_R31 := bvadd64(R31, 16bv64), Gamma_R31; - goto main_1876_basil_return; - main_1876_basil_return: - assume {:captureState "main_1876_basil_return"} true; + goto main_basil_return; + $main$__0__$XPSYuwk~QqCXXYlfch0U8A_goto_$main$__2__$YV9HrAzzRPueIlS9B6wdEg: + assume {:captureState "$main$__0__$XPSYuwk~QqCXXYlfch0U8A_goto_$main$__2__$YV9HrAzzRPueIlS9B6wdEg"} true; + assume (!(ZF == 1bv1)); + goto $main$__2__$YV9HrAzzRPueIlS9B6wdEg; + $main$__0__$XPSYuwk~QqCXXYlfch0U8A_goto_$main$__1__$tezFaGT_RC6b4e~6~Bd7zA: + assume {:captureState "$main$__0__$XPSYuwk~QqCXXYlfch0U8A_goto_$main$__1__$tezFaGT_RC6b4e~6~Bd7zA"} true; + assume (!(!(ZF == 1bv1))); + goto $main$__1__$tezFaGT_RC6b4e~6~Bd7zA; + main_basil_return: + assume {:captureState "main_basil_return"} true; return; } diff --git a/src/test/correct/basic_lock_read/clang/basic_lock_read.adt b/src/test/correct/basic_lock_read/clang/basic_lock_read.adt deleted file mode 100644 index cea7a26d3..000000000 --- a/src/test/correct/basic_lock_read/clang/basic_lock_read.adt +++ /dev/null @@ -1,558 +0,0 @@ -Project(Attrs([Attr("filename","\"clang/basic_lock_read.out\""), -Attr("image-specification","(declare abi (name str))\n(declare arch (name str))\n(declare base-address (addr int))\n(declare bias (off int))\n(declare bits (size int))\n(declare code-region (addr int) (size int) (off int))\n(declare code-start (addr int))\n(declare entry-point (addr int))\n(declare external-reference (addr int) (name str))\n(declare format (name str))\n(declare is-executable (flag bool))\n(declare is-little-endian (flag bool))\n(declare llvm:base-address (addr int))\n(declare llvm:code-entry (name str) (off int) (size int))\n(declare llvm:coff-import-library (name str))\n(declare llvm:coff-virtual-section-header (name str) (addr int) (size int))\n(declare llvm:elf-program-header (name str) (off int) (size int))\n(declare llvm:elf-program-header-flags (name str) (ld bool) (r bool) \n (w bool) (x bool))\n(declare llvm:elf-virtual-program-header (name str) (addr int) (size int))\n(declare llvm:entry-point (addr int))\n(declare llvm:macho-symbol (name str) (value int))\n(declare llvm:name-reference (at int) (name str))\n(declare llvm:relocation (at int) (addr int))\n(declare llvm:section-entry (name str) (addr int) (size int) (off int))\n(declare llvm:section-flags (name str) (r bool) (w bool) (x bool))\n(declare llvm:segment-command (name str) (off int) (size int))\n(declare llvm:segment-command-flags (name str) (r bool) (w bool) (x bool))\n(declare llvm:symbol-entry (name str) (addr int) (size int) (off int)\n (value int))\n(declare llvm:virtual-segment-command (name str) (addr int) (size int))\n(declare mapped (addr int) (size int) (off int))\n(declare named-region (addr int) (size int) (name str))\n(declare named-symbol (addr int) (name str))\n(declare require (name str))\n(declare section (addr int) (size int))\n(declare segment (addr int) (size int) (r bool) (w bool) (x bool))\n(declare subarch (name str))\n(declare symbol-chunk (addr int) (size int) (root int))\n(declare symbol-value (addr int) (value int))\n(declare system (name str))\n(declare vendor (name str))\n\n(abi unknown)\n(arch aarch64)\n(base-address 0)\n(bias 0)\n(bits 64)\n(code-region 1880 20 1880)\n(code-region 1536 344 1536)\n(code-region 1440 96 1440)\n(code-region 1408 24 1408)\n(code-start 1588)\n(code-start 1536)\n(code-start 1812)\n(entry-point 1536)\n(external-reference 69568 _ITM_deregisterTMCloneTable)\n(external-reference 69576 __cxa_finalize)\n(external-reference 69584 __gmon_start__)\n(external-reference 69600 _ITM_registerTMCloneTable)\n(external-reference 69632 __libc_start_main)\n(external-reference 69640 __cxa_finalize)\n(external-reference 69648 __gmon_start__)\n(external-reference 69656 abort)\n(format elf)\n(is-executable true)\n(is-little-endian true)\n(llvm:base-address 0)\n(llvm:code-entry abort 0 0)\n(llvm:code-entry __cxa_finalize 0 0)\n(llvm:code-entry __libc_start_main 0 0)\n(llvm:code-entry _init 1408 0)\n(llvm:code-entry main 1812 68)\n(llvm:code-entry _start 1536 52)\n(llvm:code-entry abort@GLIBC_2.17 0 0)\n(llvm:code-entry _fini 1880 0)\n(llvm:code-entry __cxa_finalize@GLIBC_2.17 0 0)\n(llvm:code-entry __libc_start_main@GLIBC_2.34 0 0)\n(llvm:code-entry frame_dummy 1808 0)\n(llvm:code-entry __do_global_dtors_aux 1728 0)\n(llvm:code-entry register_tm_clones 1664 0)\n(llvm:code-entry deregister_tm_clones 1616 0)\n(llvm:code-entry call_weak_fn 1588 20)\n(llvm:code-entry .fini 1880 20)\n(llvm:code-entry .text 1536 344)\n(llvm:code-entry .plt 1440 96)\n(llvm:code-entry .init 1408 24)\n(llvm:elf-program-header 08 3528 568)\n(llvm:elf-program-header 07 0 0)\n(llvm:elf-program-header 06 1904 60)\n(llvm:elf-program-header 05 596 68)\n(llvm:elf-program-header 04 3544 480)\n(llvm:elf-program-header 03 3528 616)\n(llvm:elf-program-header 02 0 2152)\n(llvm:elf-program-header 01 568 27)\n(llvm:elf-program-header 00 64 504)\n(llvm:elf-program-header-flags 08 false true false false)\n(llvm:elf-program-header-flags 07 false true true false)\n(llvm:elf-program-header-flags 06 false true false false)\n(llvm:elf-program-header-flags 05 false true false false)\n(llvm:elf-program-header-flags 04 false true true false)\n(llvm:elf-program-header-flags 03 true true true false)\n(llvm:elf-program-header-flags 02 true true false true)\n(llvm:elf-program-header-flags 01 false true false false)\n(llvm:elf-program-header-flags 00 false true false false)\n(llvm:elf-virtual-program-header 08 69064 568)\n(llvm:elf-virtual-program-header 07 0 0)\n(llvm:elf-virtual-program-header 06 1904 60)\n(llvm:elf-virtual-program-header 05 596 68)\n(llvm:elf-virtual-program-header 04 69080 480)\n(llvm:elf-virtual-program-header 03 69064 632)\n(llvm:elf-virtual-program-header 02 0 2152)\n(llvm:elf-virtual-program-header 01 568 27)\n(llvm:elf-virtual-program-header 00 64 504)\n(llvm:entry-point 1536)\n(llvm:name-reference 69656 abort)\n(llvm:name-reference 69648 __gmon_start__)\n(llvm:name-reference 69640 __cxa_finalize)\n(llvm:name-reference 69632 __libc_start_main)\n(llvm:name-reference 69600 _ITM_registerTMCloneTable)\n(llvm:name-reference 69584 __gmon_start__)\n(llvm:name-reference 69576 __cxa_finalize)\n(llvm:name-reference 69568 _ITM_deregisterTMCloneTable)\n(llvm:section-entry .shstrtab 0 259 6973)\n(llvm:section-entry .strtab 0 573 6400)\n(llvm:section-entry .symtab 0 2184 4216)\n(llvm:section-entry .comment 0 71 4144)\n(llvm:section-entry .bss 69680 16 4144)\n(llvm:section-entry .data 69664 16 4128)\n(llvm:section-entry .got.plt 69608 56 4072)\n(llvm:section-entry .got 69560 48 4024)\n(llvm:section-entry .dynamic 69080 480 3544)\n(llvm:section-entry .fini_array 69072 8 3536)\n(llvm:section-entry .init_array 69064 8 3528)\n(llvm:section-entry .eh_frame 1968 184 1968)\n(llvm:section-entry .eh_frame_hdr 1904 60 1904)\n(llvm:section-entry .rodata 1900 4 1900)\n(llvm:section-entry .fini 1880 20 1880)\n(llvm:section-entry .text 1536 344 1536)\n(llvm:section-entry .plt 1440 96 1440)\n(llvm:section-entry .init 1408 24 1408)\n(llvm:section-entry .rela.plt 1312 96 1312)\n(llvm:section-entry .rela.dyn 1120 192 1120)\n(llvm:section-entry .gnu.version_r 1072 48 1072)\n(llvm:section-entry .gnu.version 1054 18 1054)\n(llvm:section-entry .dynstr 912 141 912)\n(llvm:section-entry .dynsym 696 216 696)\n(llvm:section-entry .gnu.hash 664 28 664)\n(llvm:section-entry .note.ABI-tag 632 32 632)\n(llvm:section-entry .note.gnu.build-id 596 36 596)\n(llvm:section-entry .interp 568 27 568)\n(llvm:section-flags .shstrtab true false false)\n(llvm:section-flags .strtab true false false)\n(llvm:section-flags .symtab true false false)\n(llvm:section-flags .comment true false false)\n(llvm:section-flags .bss true true false)\n(llvm:section-flags .data true true false)\n(llvm:section-flags .got.plt true true false)\n(llvm:section-flags .got true true false)\n(llvm:section-flags .dynamic true true false)\n(llvm:section-flags .fini_array true true false)\n(llvm:section-flags .init_array true true false)\n(llvm:section-flags .eh_frame true false false)\n(llvm:section-flags .eh_frame_hdr true false false)\n(llvm:section-flags .rodata true false false)\n(llvm:section-flags .fini true false true)\n(llvm:section-flags .text true false true)\n(llvm:section-flags .plt true false true)\n(llvm:section-flags .init true false true)\n(llvm:section-flags .rela.plt true false false)\n(llvm:section-flags .rela.dyn true false false)\n(llvm:section-flags .gnu.version_r true false false)\n(llvm:section-flags .gnu.version true false false)\n(llvm:section-flags .dynstr true false false)\n(llvm:section-flags .dynsym true false false)\n(llvm:section-flags .gnu.hash true false false)\n(llvm:section-flags .note.ABI-tag true false false)\n(llvm:section-flags .note.gnu.build-id true false false)\n(llvm:section-flags .interp true false false)\n(llvm:symbol-entry abort 0 0 0 0)\n(llvm:symbol-entry __cxa_finalize 0 0 0 0)\n(llvm:symbol-entry __libc_start_main 0 0 0 0)\n(llvm:symbol-entry _init 1408 0 1408 1408)\n(llvm:symbol-entry main 1812 68 1812 1812)\n(llvm:symbol-entry _start 1536 52 1536 1536)\n(llvm:symbol-entry abort@GLIBC_2.17 0 0 0 0)\n(llvm:symbol-entry _fini 1880 0 1880 1880)\n(llvm:symbol-entry __cxa_finalize@GLIBC_2.17 0 0 0 0)\n(llvm:symbol-entry __libc_start_main@GLIBC_2.34 0 0 0 0)\n(llvm:symbol-entry frame_dummy 1808 0 1808 1808)\n(llvm:symbol-entry __do_global_dtors_aux 1728 0 1728 1728)\n(llvm:symbol-entry register_tm_clones 1664 0 1664 1664)\n(llvm:symbol-entry deregister_tm_clones 1616 0 1616 1616)\n(llvm:symbol-entry call_weak_fn 1588 20 1588 1588)\n(mapped 0 2152 0)\n(mapped 69064 616 3528)\n(named-region 0 2152 02)\n(named-region 69064 632 03)\n(named-region 568 27 .interp)\n(named-region 596 36 .note.gnu.build-id)\n(named-region 632 32 .note.ABI-tag)\n(named-region 664 28 .gnu.hash)\n(named-region 696 216 .dynsym)\n(named-region 912 141 .dynstr)\n(named-region 1054 18 .gnu.version)\n(named-region 1072 48 .gnu.version_r)\n(named-region 1120 192 .rela.dyn)\n(named-region 1312 96 .rela.plt)\n(named-region 1408 24 .init)\n(named-region 1440 96 .plt)\n(named-region 1536 344 .text)\n(named-region 1880 20 .fini)\n(named-region 1900 4 .rodata)\n(named-region 1904 60 .eh_frame_hdr)\n(named-region 1968 184 .eh_frame)\n(named-region 69064 8 .init_array)\n(named-region 69072 8 .fini_array)\n(named-region 69080 480 .dynamic)\n(named-region 69560 48 .got)\n(named-region 69608 56 .got.plt)\n(named-region 69664 16 .data)\n(named-region 69680 16 .bss)\n(named-region 0 71 .comment)\n(named-region 0 2184 .symtab)\n(named-region 0 573 .strtab)\n(named-region 0 259 .shstrtab)\n(named-symbol 1588 call_weak_fn)\n(named-symbol 1616 deregister_tm_clones)\n(named-symbol 1664 register_tm_clones)\n(named-symbol 1728 __do_global_dtors_aux)\n(named-symbol 1808 frame_dummy)\n(named-symbol 0 __libc_start_main@GLIBC_2.34)\n(named-symbol 0 __cxa_finalize@GLIBC_2.17)\n(named-symbol 1880 _fini)\n(named-symbol 0 abort@GLIBC_2.17)\n(named-symbol 1536 _start)\n(named-symbol 1812 main)\n(named-symbol 1408 _init)\n(named-symbol 0 __libc_start_main)\n(named-symbol 0 __cxa_finalize)\n(named-symbol 0 abort)\n(require libc.so.6)\n(section 568 27)\n(section 596 36)\n(section 632 32)\n(section 664 28)\n(section 696 216)\n(section 912 141)\n(section 1054 18)\n(section 1072 48)\n(section 1120 192)\n(section 1312 96)\n(section 1408 24)\n(section 1440 96)\n(section 1536 344)\n(section 1880 20)\n(section 1900 4)\n(section 1904 60)\n(section 1968 184)\n(section 69064 8)\n(section 69072 8)\n(section 69080 480)\n(section 69560 48)\n(section 69608 56)\n(section 69664 16)\n(section 69680 16)\n(section 0 71)\n(section 0 2184)\n(section 0 573)\n(section 0 259)\n(segment 0 2152 true false true)\n(segment 69064 632 true true false)\n(subarch v8)\n(symbol-chunk 1588 20 1588)\n(symbol-chunk 1536 52 1536)\n(symbol-chunk 1812 68 1812)\n(symbol-value 1588 1588)\n(symbol-value 1616 1616)\n(symbol-value 1664 1664)\n(symbol-value 1728 1728)\n(symbol-value 1808 1808)\n(symbol-value 1880 1880)\n(symbol-value 1536 1536)\n(symbol-value 1812 1812)\n(symbol-value 1408 1408)\n(symbol-value 0 0)\n(system \"\")\n(vendor \"\")\n"), -Attr("abi-name","\"aarch64-linux-gnu-elf\"")]), -Sections([Section(".shstrtab", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x00\x06\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x1c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x38\x00\x09\x00\x40\x00\x1d\x00\x1c\x00\x06\x00\x00\x00\x04\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x04\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x68\x08\x00\x00\x00\x00\x00\x00\x68\x08\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x01\x00\x00\x00\x06\x00\x00\x00\xc8\x0d\x00\x00\x00\x00\x00\x00\xc8\x0d\x01\x00\x00\x00\x00\x00\xc8\x0d\x01"), -Section(".strtab", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x00\x06\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x1c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x38\x00\x09\x00\x40\x00\x1d\x00\x1c\x00\x06\x00\x00\x00\x04\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x04\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x68\x08\x00\x00\x00\x00\x00\x00\x68\x08\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x01\x00\x00\x00\x06\x00\x00\x00\xc8\x0d\x00\x00\x00\x00\x00\x00\xc8\x0d\x01\x00\x00\x00\x00\x00\xc8\x0d\x01\x00\x00\x00\x00\x00\x68\x02\x00\x00\x00\x00\x00\x00\x78\x02\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x02\x00\x00\x00\x06\x00\x00\x00\xd8\x0d\x00\x00\x00\x00\x00\x00\xd8\x0d\x01\x00\x00\x00\x00\x00\xd8\x0d\x01\x00\x00\x00\x00\x00\xe0\x01\x00\x00\x00\x00\x00\x00\xe0\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x04\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x50\xe5\x74\x64\x04\x00\x00\x00\x70\x07\x00\x00\x00\x00\x00\x00\x70\x07\x00\x00\x00\x00\x00\x00\x70\x07\x00\x00\x00\x00\x00\x00\x3c\x00\x00\x00\x00\x00\x00\x00\x3c\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x51\xe5\x74\x64\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x52\xe5\x74\x64\x04\x00\x00\x00\xc8\x0d\x00\x00\x00\x00\x00\x00\xc8\x0d\x01\x00\x00\x00\x00\x00\xc8\x0d\x01\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x2f\x6c\x69\x62\x2f"), -Section(".comment", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x00\x06\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x1c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x38\x00\x09\x00\x40\x00\x1d\x00\x1c\x00\x06\x00\x00\x00\x04\x00\x00"), -Section(".interp", 0x238, "\x2f\x6c\x69\x62\x2f\x6c\x64\x2d\x6c\x69\x6e\x75\x78\x2d\x61\x61\x72\x63\x68\x36\x34\x2e\x73\x6f\x2e\x31\x00"), -Section(".note.gnu.build-id", 0x254, "\x04\x00\x00\x00\x14\x00\x00\x00\x03\x00\x00\x00\x47\x4e\x55\x00\x6d\xcd\x15\x20\x0d\x95\xed\x6d\x62\x9d\x23\x25\x0c\xf3\x33\x34\x13\x2a\x13\x52"), -Section(".note.ABI-tag", 0x278, "\x04\x00\x00\x00\x10\x00\x00\x00\x01\x00\x00\x00\x47\x4e\x55\x00\x00\x00\x00\x00\x03\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00"), -Section(".gnu.hash", 0x298, "\x01\x00\x00\x00\x01\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".dynsym", 0x2B8, "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x0b\x00\x80\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x17\x00\x20\x10\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x48\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x22\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x22\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x73\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".dynstr", 0x390, "\x00\x5f\x5f\x63\x78\x61\x5f\x66\x69\x6e\x61\x6c\x69\x7a\x65\x00\x5f\x5f\x6c\x69\x62\x63\x5f\x73\x74\x61\x72\x74\x5f\x6d\x61\x69\x6e\x00\x61\x62\x6f\x72\x74\x00\x6c\x69\x62\x63\x2e\x73\x6f\x2e\x36\x00\x47\x4c\x49\x42\x43\x5f\x32\x2e\x31\x37\x00\x47\x4c\x49\x42\x43\x5f\x32\x2e\x33\x34\x00\x5f\x49\x54\x4d\x5f\x64\x65\x72\x65\x67\x69\x73\x74\x65\x72\x54\x4d\x43\x6c\x6f\x6e\x65\x54\x61\x62\x6c\x65\x00\x5f\x5f\x67\x6d\x6f\x6e\x5f\x73\x74\x61\x72\x74\x5f\x5f\x00\x5f\x49\x54\x4d\x5f\x72\x65\x67\x69\x73\x74\x65\x72\x54\x4d\x43\x6c\x6f\x6e\x65\x54\x61\x62\x6c\x65\x00"), -Section(".gnu.version", 0x41E, "\x00\x00\x00\x00\x00\x00\x02\x00\x01\x00\x03\x00\x01\x00\x03\x00\x01\x00"), -Section(".gnu.version_r", 0x430, "\x01\x00\x02\x00\x28\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x97\x91\x96\x06\x00\x00\x03\x00\x32\x00\x00\x00\x10\x00\x00\x00\xb4\x91\x96\x06\x00\x00\x02\x00\x3d\x00\x00\x00\x00\x00\x00\x00"), -Section(".rela.dyn", 0x460, "\xc8\x0d\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x10\x07\x00\x00\x00\x00\x00\x00\xd0\x0d\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\xc0\x06\x00\x00\x00\x00\x00\x00\xd8\x0f\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x14\x07\x00\x00\x00\x00\x00\x00\x28\x10\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x28\x10\x01\x00\x00\x00\x00\x00\xc0\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xc8\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xd0\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe0\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".rela.plt", 0x520, "\x00\x10\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x08\x10\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x10\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x18\x10\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".init", 0x580, "\x1f\x20\x03\xd5\xfd\x7b\xbf\xa9\xfd\x03\x00\x91\x2a\x00\x00\x94\xfd\x7b\xc1\xa8\xc0\x03\x5f\xd6"), -Section(".plt", 0x5A0, "\xf0\x7b\xbf\xa9\x90\x00\x00\x90\x11\xfe\x47\xf9\x10\xe2\x3f\x91\x20\x02\x1f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x90\x00\x00\xb0\x11\x02\x40\xf9\x10\x02\x00\x91\x20\x02\x1f\xd6\x90\x00\x00\xb0\x11\x06\x40\xf9\x10\x22\x00\x91\x20\x02\x1f\xd6\x90\x00\x00\xb0\x11\x0a\x40\xf9\x10\x42\x00\x91\x20\x02\x1f\xd6\x90\x00\x00\xb0\x11\x0e\x40\xf9\x10\x62\x00\x91\x20\x02\x1f\xd6"), -Section(".text", 0x600, "\x1f\x20\x03\xd5\x1d\x00\x80\xd2\x1e\x00\x80\xd2\xe5\x03\x00\xaa\xe1\x03\x40\xf9\xe2\x23\x00\x91\xe6\x03\x00\x91\x80\x00\x00\x90\x00\xec\x47\xf9\x03\x00\x80\xd2\x04\x00\x80\xd2\xe5\xff\xff\x97\xf0\xff\xff\x97\x80\x00\x00\x90\x00\xe8\x47\xf9\x40\x00\x00\xb4\xe8\xff\xff\x17\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x80\x00\x00\xb0\x00\xc0\x00\x91\x81\x00\x00\xb0\x21\xc0\x00\x91\x3f\x00\x00\xeb\xc0\x00\x00\x54\x81\x00\x00\x90\x21\xe0\x47\xf9\x61\x00\x00\xb4\xf0\x03\x01\xaa\x00\x02\x1f\xd6\xc0\x03\x5f\xd6\x80\x00\x00\xb0\x00\xc0\x00\x91\x81\x00\x00\xb0\x21\xc0\x00\x91\x21\x00\x00\xcb\x22\xfc\x7f\xd3\x41\x0c\x81\x8b\x21\xfc\x41\x93\xc1\x00\x00\xb4\x82\x00\x00\x90\x42\xf0\x47\xf9\x62\x00\x00\xb4\xf0\x03\x02\xaa\x00\x02\x1f\xd6\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\xfd\x7b\xbe\xa9\xfd\x03\x00\x91\xf3\x0b\x00\xf9\x93\x00\x00\xb0\x60\xc2\x40\x39\x40\x01\x00\x35\x80\x00\x00\x90\x00\xe4\x47\xf9\x80\x00\x00\xb4\x80\x00\x00\xb0\x00\x14\x40\xf9\xb9\xff\xff\x97\xd8\xff\xff\x97\x20\x00\x80\x52\x60\xc2\x00\x39\xf3\x0b\x40\xf9\xfd\x7b\xc2\xa8\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\xdc\xff\xff\x17\xff\x43\x00\xd1\xff\x0f\x00\xb9\xff\x0b\x00\xb9\x88\x00\x00\xb0\x08\x35\x40\xb9\x08\x01\x00\x71\xe8\x07\x9f\x1a\xe8\x00\x00\x37\x01\x00\x00\x14\x88\x00\x00\xb0\x1f\x39\x00\xb9\x08\x39\x40\xb9\xe8\x0b\x00\xb9\x01\x00\x00\x14\xe0\x0b\x40\xb9\xff\x43\x00\x91\xc0\x03\x5f\xd6"), -Section(".fini", 0x758, "\x1f\x20\x03\xd5\xfd\x7b\xbf\xa9\xfd\x03\x00\x91\xfd\x7b\xc1\xa8\xc0\x03\x5f\xd6"), -Section(".rodata", 0x76C, "\x01\x00\x02\x00"), -Section(".eh_frame_hdr", 0x770, "\x01\x1b\x03\x3b\x3c\x00\x00\x00\x06\x00\x00\x00\x90\xfe\xff\xff\x54\x00\x00\x00\xe0\xfe\xff\xff\x68\x00\x00\x00\x10\xff\xff\xff\x7c\x00\x00\x00\x50\xff\xff\xff\x90\x00\x00\x00\xa0\xff\xff\xff\xb4\x00\x00\x00\xa4\xff\xff\xff\xdc\x00\x00\x00"), -Section(".eh_frame", 0x7B0, "\x10\x00\x00\x00\x00\x00\x00\x00\x01\x7a\x52\x00\x04\x78\x1e\x01\x1b\x0c\x1f\x00\x10\x00\x00\x00\x18\x00\x00\x00\x34\xfe\xff\xff\x34\x00\x00\x00\x00\x41\x07\x1e\x10\x00\x00\x00\x2c\x00\x00\x00\x70\xfe\xff\xff\x30\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x40\x00\x00\x00\x8c\xfe\xff\xff\x3c\x00\x00\x00\x00\x00\x00\x00\x20\x00\x00\x00\x54\x00\x00\x00\xb8\xfe\xff\xff\x48\x00\x00\x00\x00\x41\x0e\x20\x9d\x04\x9e\x03\x42\x93\x02\x4e\xde\xdd\xd3\x0e\x00\x00\x00\x00\x10\x00\x00\x00\x78\x00\x00\x00\xe4\xfe\xff\xff\x04\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x01\x7a\x52\x00\x01\x7c\x1e\x01\x1b\x0c\x1f\x00\x14\x00\x00\x00\x18\x00\x00\x00\xc0\xfe\xff\xff\x44\x00\x00\x00\x00\x44\x0e\x10\x7c\x0e\x00\x00\x00\x00\x00\x00"), -Section(".fini_array", 0x10DD0, "\xc0\x06\x00\x00\x00\x00\x00\x00"), -Section(".dynamic", 0x10DD8, "\x01\x00\x00\x00\x00\x00\x00\x00\x28\x00\x00\x00\x00\x00\x00\x00\x0c\x00\x00\x00\x00\x00\x00\x00\x80\x05\x00\x00\x00\x00\x00\x00\x0d\x00\x00\x00\x00\x00\x00\x00\x58\x07\x00\x00\x00\x00\x00\x00\x19\x00\x00\x00\x00\x00\x00\x00\xc8\x0d\x01\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x1a\x00\x00\x00\x00\x00\x00\x00\xd0\x0d\x01\x00\x00\x00\x00\x00\x1c\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\xf5\xfe\xff\x6f\x00\x00\x00\x00\x98\x02\x00\x00\x00\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x90\x03\x00\x00\x00\x00\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\xb8\x02\x00\x00\x00\x00\x00\x00\x0a\x00\x00\x00\x00\x00\x00\x00\x8d\x00\x00\x00\x00\x00\x00\x00\x0b\x00\x00\x00\x00\x00\x00\x00\x18\x00\x00\x00\x00\x00\x00\x00\x15\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\xe8\x0f\x01\x00\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x60\x00\x00\x00\x00\x00\x00\x00\x14\x00\x00\x00\x00\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x17\x00\x00\x00\x00\x00\x00\x00\x20\x05\x00\x00\x00\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x60\x04\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\xc0\x00\x00\x00\x00\x00\x00\x00\x09\x00\x00\x00\x00\x00\x00\x00\x18\x00\x00\x00\x00\x00\x00\x00\xfb\xff\xff\x6f\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\xfe\xff\xff\x6f\x00\x00\x00\x00\x30\x04\x00\x00\x00\x00\x00\x00\xff\xff\xff\x6f\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\xf0\xff\xff\x6f\x00\x00\x00\x00\x1e\x04\x00\x00\x00\x00\x00\x00\xf9\xff\xff\x6f\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".init_array", 0x10DC8, "\x10\x07\x00\x00\x00\x00\x00\x00"), -Section(".got", 0x10FB8, "\xd8\x0d\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x14\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".got.plt", 0x10FE8, "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xa0\x05\x00\x00\x00\x00\x00\x00\xa0\x05\x00\x00\x00\x00\x00\x00\xa0\x05\x00\x00\x00\x00\x00\x00\xa0\x05\x00\x00\x00\x00\x00\x00"), -Section(".data", 0x11020, "\x00\x00\x00\x00\x00\x00\x00\x00\x28\x10\x01\x00\x00\x00\x00\x00")]), -Memmap([Annotation(Region(0x0,0x867), Attr("segment","02 0 2152")), -Annotation(Region(0x600,0x633), Attr("symbol","\"_start\"")), -Annotation(Region(0x0,0x102), Attr("section","\".shstrtab\"")), -Annotation(Region(0x0,0x23C), Attr("section","\".strtab\"")), -Annotation(Region(0x0,0x46), Attr("section","\".comment\"")), -Annotation(Region(0x238,0x252), Attr("section","\".interp\"")), -Annotation(Region(0x254,0x277), Attr("section","\".note.gnu.build-id\"")), -Annotation(Region(0x278,0x297), Attr("section","\".note.ABI-tag\"")), -Annotation(Region(0x298,0x2B3), Attr("section","\".gnu.hash\"")), -Annotation(Region(0x2B8,0x38F), Attr("section","\".dynsym\"")), -Annotation(Region(0x390,0x41C), Attr("section","\".dynstr\"")), -Annotation(Region(0x41E,0x42F), Attr("section","\".gnu.version\"")), -Annotation(Region(0x430,0x45F), Attr("section","\".gnu.version_r\"")), -Annotation(Region(0x460,0x51F), Attr("section","\".rela.dyn\"")), -Annotation(Region(0x520,0x57F), Attr("section","\".rela.plt\"")), -Annotation(Region(0x580,0x597), Attr("section","\".init\"")), -Annotation(Region(0x5A0,0x5FF), Attr("section","\".plt\"")), -Annotation(Region(0x580,0x597), Attr("code-region","()")), -Annotation(Region(0x5A0,0x5FF), Attr("code-region","()")), -Annotation(Region(0x600,0x633), Attr("symbol-info","_start 0x600 52")), -Annotation(Region(0x634,0x647), Attr("symbol","\"call_weak_fn\"")), -Annotation(Region(0x634,0x647), Attr("symbol-info","call_weak_fn 0x634 20")), -Annotation(Region(0x600,0x757), Attr("section","\".text\"")), -Annotation(Region(0x600,0x757), Attr("code-region","()")), -Annotation(Region(0x714,0x757), Attr("symbol","\"main\"")), -Annotation(Region(0x714,0x757), Attr("symbol-info","main 0x714 68")), -Annotation(Region(0x758,0x76B), Attr("section","\".fini\"")), -Annotation(Region(0x758,0x76B), Attr("code-region","()")), -Annotation(Region(0x76C,0x76F), Attr("section","\".rodata\"")), -Annotation(Region(0x770,0x7AB), Attr("section","\".eh_frame_hdr\"")), -Annotation(Region(0x7B0,0x867), Attr("section","\".eh_frame\"")), -Annotation(Region(0x10DC8,0x1102F), Attr("segment","03 0x10DC8 632")), -Annotation(Region(0x10DD0,0x10DD7), Attr("section","\".fini_array\"")), -Annotation(Region(0x10DD8,0x10FB7), Attr("section","\".dynamic\"")), -Annotation(Region(0x10DC8,0x10DCF), Attr("section","\".init_array\"")), -Annotation(Region(0x10FB8,0x10FE7), Attr("section","\".got\"")), -Annotation(Region(0x10FE8,0x1101F), Attr("section","\".got.plt\"")), -Annotation(Region(0x11020,0x1102F), Attr("section","\".data\""))]), -Program(Tid(1_598, "%0000063e"), Attrs([]), - Subs([Sub(Tid(1_546, "@__cxa_finalize"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x5D0"), -Attr("stub","()")]), "__cxa_finalize", Args([Arg(Tid(1_599, "%0000063f"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("__cxa_finalize_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(940, "@__cxa_finalize"), - Attrs([Attr("address","0x5D0")]), Phis([]), -Defs([Def(Tid(1_188, "%000004a4"), Attrs([Attr("address","0x5D0"), -Attr("insn","adrp x16, #69632")]), Var("R16",Imm(64)), Int(69632,64)), -Def(Tid(1_195, "%000004ab"), Attrs([Attr("address","0x5D4"), -Attr("insn","ldr x17, [x16, #0x8]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(1_201, "%000004b1"), Attrs([Attr("address","0x5D8"), -Attr("insn","add x16, x16, #0x8")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(8,64)))]), Jmps([Call(Tid(1_206, "%000004b6"), - Attrs([Attr("address","0x5DC"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), -Sub(Tid(1_547, "@__do_global_dtors_aux"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x6C0")]), - "__do_global_dtors_aux", Args([Arg(Tid(1_600, "%00000640"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("__do_global_dtors_aux_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(658, "@__do_global_dtors_aux"), - Attrs([Attr("address","0x6C0")]), Phis([]), Defs([Def(Tid(662, "%00000296"), - Attrs([Attr("address","0x6C0"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("#3",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(18446744073709551584,64))), -Def(Tid(668, "%0000029c"), Attrs([Attr("address","0x6C0"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("#3",Imm(64)),Var("R29",Imm(64)),LittleEndian(),64)), -Def(Tid(674, "%000002a2"), Attrs([Attr("address","0x6C0"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("#3",Imm(64)),Int(8,64)),Var("R30",Imm(64)),LittleEndian(),64)), -Def(Tid(678, "%000002a6"), Attrs([Attr("address","0x6C0"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("R31",Imm(64)), -Var("#3",Imm(64))), Def(Tid(684, "%000002ac"), - Attrs([Attr("address","0x6C4"), Attr("insn","mov x29, sp")]), - Var("R29",Imm(64)), Var("R31",Imm(64))), Def(Tid(692, "%000002b4"), - Attrs([Attr("address","0x6C8"), Attr("insn","str x19, [sp, #0x10]")]), - Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(16,64)),Var("R19",Imm(64)),LittleEndian(),64)), -Def(Tid(697, "%000002b9"), Attrs([Attr("address","0x6CC"), -Attr("insn","adrp x19, #69632")]), Var("R19",Imm(64)), Int(69632,64)), -Def(Tid(704, "%000002c0"), Attrs([Attr("address","0x6D0"), -Attr("insn","ldrb w0, [x19, #0x30]")]), Var("R0",Imm(64)), -UNSIGNED(64,Load(Var("mem",Mem(64,8)),PLUS(Var("R19",Imm(64)),Int(48,64)),LittleEndian(),8)))]), -Jmps([Goto(Tid(711, "%000002c7"), Attrs([Attr("address","0x6D4"), -Attr("insn","cbnz w0, #0x28")]), - NEQ(Extract(31,0,Var("R0",Imm(64))),Int(0,32)), -Direct(Tid(709, "%000002c5"))), Goto(Tid(1_587, "%00000633"), Attrs([]), - Int(1,1), Direct(Tid(885, "%00000375")))])), Blk(Tid(885, "%00000375"), - Attrs([Attr("address","0x6D8")]), Phis([]), Defs([Def(Tid(888, "%00000378"), - Attrs([Attr("address","0x6D8"), Attr("insn","adrp x0, #65536")]), - Var("R0",Imm(64)), Int(65536,64)), Def(Tid(895, "%0000037f"), - Attrs([Attr("address","0x6DC"), Attr("insn","ldr x0, [x0, #0xfc8]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(4040,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(901, "%00000385"), Attrs([Attr("address","0x6E0"), -Attr("insn","cbz x0, #0x10")]), EQ(Var("R0",Imm(64)),Int(0,64)), -Direct(Tid(899, "%00000383"))), Goto(Tid(1_588, "%00000634"), Attrs([]), - Int(1,1), Direct(Tid(924, "%0000039c")))])), Blk(Tid(924, "%0000039c"), - Attrs([Attr("address","0x6E4")]), Phis([]), Defs([Def(Tid(927, "%0000039f"), - Attrs([Attr("address","0x6E4"), Attr("insn","adrp x0, #69632")]), - Var("R0",Imm(64)), Int(69632,64)), Def(Tid(934, "%000003a6"), - Attrs([Attr("address","0x6E8"), Attr("insn","ldr x0, [x0, #0x28]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(40,64)),LittleEndian(),64)), -Def(Tid(939, "%000003ab"), Attrs([Attr("address","0x6EC"), -Attr("insn","bl #-0x11c")]), Var("R30",Imm(64)), Int(1776,64))]), -Jmps([Call(Tid(942, "%000003ae"), Attrs([Attr("address","0x6EC"), -Attr("insn","bl #-0x11c")]), Int(1,1), -(Direct(Tid(1_546, "@__cxa_finalize")),Direct(Tid(899, "%00000383"))))])), -Blk(Tid(899, "%00000383"), Attrs([Attr("address","0x6F0")]), Phis([]), -Defs([Def(Tid(907, "%0000038b"), Attrs([Attr("address","0x6F0"), -Attr("insn","bl #-0xa0")]), Var("R30",Imm(64)), Int(1780,64))]), -Jmps([Call(Tid(909, "%0000038d"), Attrs([Attr("address","0x6F0"), -Attr("insn","bl #-0xa0")]), Int(1,1), -(Direct(Tid(1_560, "@deregister_tm_clones")),Direct(Tid(911, "%0000038f"))))])), -Blk(Tid(911, "%0000038f"), Attrs([Attr("address","0x6F4")]), Phis([]), -Defs([Def(Tid(914, "%00000392"), Attrs([Attr("address","0x6F4"), -Attr("insn","mov w0, #0x1")]), Var("R0",Imm(64)), Int(1,64)), -Def(Tid(922, "%0000039a"), Attrs([Attr("address","0x6F8"), -Attr("insn","strb w0, [x19, #0x30]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R19",Imm(64)),Int(48,64)),Extract(7,0,Var("R0",Imm(64))),LittleEndian(),8))]), -Jmps([Goto(Tid(1_589, "%00000635"), Attrs([]), Int(1,1), -Direct(Tid(709, "%000002c5")))])), Blk(Tid(709, "%000002c5"), - Attrs([Attr("address","0x6FC")]), Phis([]), Defs([Def(Tid(719, "%000002cf"), - Attrs([Attr("address","0x6FC"), Attr("insn","ldr x19, [sp, #0x10]")]), - Var("R19",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(16,64)),LittleEndian(),64)), -Def(Tid(726, "%000002d6"), Attrs([Attr("address","0x700"), -Attr("insn","ldp x29, x30, [sp], #0x20")]), Var("R29",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(731, "%000002db"), Attrs([Attr("address","0x700"), -Attr("insn","ldp x29, x30, [sp], #0x20")]), Var("R30",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(735, "%000002df"), Attrs([Attr("address","0x700"), -Attr("insn","ldp x29, x30, [sp], #0x20")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(32,64)))]), Jmps([Call(Tid(740, "%000002e4"), - Attrs([Attr("address","0x704"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), Sub(Tid(1_551, "@__libc_start_main"), - Attrs([Attr("c.proto","signed (*)(signed (*)(signed , char** , char** );* main, signed , char** , \nvoid* auxv)"), -Attr("address","0x5C0"), Attr("stub","()")]), "__libc_start_main", - Args([Arg(Tid(1_601, "%00000641"), - Attrs([Attr("c.layout","**[ : 64]"), -Attr("c.data","Top:u64 ptr ptr"), -Attr("c.type","signed (*)(signed , char** , char** );*")]), - Var("__libc_start_main_main",Imm(64)), Var("R0",Imm(64)), In()), -Arg(Tid(1_602, "%00000642"), Attrs([Attr("c.layout","[signed : 32]"), -Attr("c.data","Top:u32"), Attr("c.type","signed")]), - Var("__libc_start_main_arg2",Imm(32)), LOW(32,Var("R1",Imm(64))), In()), -Arg(Tid(1_603, "%00000643"), Attrs([Attr("c.layout","**[char : 8]"), -Attr("c.data","Top:u8 ptr ptr"), Attr("c.type","char**")]), - Var("__libc_start_main_arg3",Imm(64)), Var("R2",Imm(64)), Both()), -Arg(Tid(1_604, "%00000644"), Attrs([Attr("c.layout","*[ : 8]"), -Attr("c.data","{} ptr"), Attr("c.type","void*")]), - Var("__libc_start_main_auxv",Imm(64)), Var("R3",Imm(64)), Both()), -Arg(Tid(1_605, "%00000645"), Attrs([Attr("c.layout","[signed : 32]"), -Attr("c.data","Top:u32"), Attr("c.type","signed")]), - Var("__libc_start_main_result",Imm(32)), LOW(32,Var("R0",Imm(64))), -Out())]), Blks([Blk(Tid(491, "@__libc_start_main"), - Attrs([Attr("address","0x5C0")]), Phis([]), -Defs([Def(Tid(1_166, "%0000048e"), Attrs([Attr("address","0x5C0"), -Attr("insn","adrp x16, #69632")]), Var("R16",Imm(64)), Int(69632,64)), -Def(Tid(1_173, "%00000495"), Attrs([Attr("address","0x5C4"), -Attr("insn","ldr x17, [x16]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R16",Imm(64)),LittleEndian(),64)), -Def(Tid(1_179, "%0000049b"), Attrs([Attr("address","0x5C8"), -Attr("insn","add x16, x16, #0x0")]), Var("R16",Imm(64)), -Var("R16",Imm(64)))]), Jmps([Call(Tid(1_184, "%000004a0"), - Attrs([Attr("address","0x5CC"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), Sub(Tid(1_552, "@_fini"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x758")]), - "_fini", Args([Arg(Tid(1_606, "%00000646"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("_fini_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(31, "@_fini"), - Attrs([Attr("address","0x758")]), Phis([]), Defs([Def(Tid(37, "%00000025"), - Attrs([Attr("address","0x75C"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("#0",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(18446744073709551600,64))), -Def(Tid(43, "%0000002b"), Attrs([Attr("address","0x75C"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("#0",Imm(64)),Var("R29",Imm(64)),LittleEndian(),64)), -Def(Tid(49, "%00000031"), Attrs([Attr("address","0x75C"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("#0",Imm(64)),Int(8,64)),Var("R30",Imm(64)),LittleEndian(),64)), -Def(Tid(53, "%00000035"), Attrs([Attr("address","0x75C"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("R31",Imm(64)), -Var("#0",Imm(64))), Def(Tid(59, "%0000003b"), Attrs([Attr("address","0x760"), -Attr("insn","mov x29, sp")]), Var("R29",Imm(64)), Var("R31",Imm(64))), -Def(Tid(66, "%00000042"), Attrs([Attr("address","0x764"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R29",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(71, "%00000047"), Attrs([Attr("address","0x764"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R30",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(75, "%0000004b"), Attrs([Attr("address","0x764"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(16,64)))]), Jmps([Call(Tid(80, "%00000050"), - Attrs([Attr("address","0x768"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), Sub(Tid(1_553, "@_init"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x580")]), - "_init", Args([Arg(Tid(1_607, "%00000647"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("_init_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(1_371, "@_init"), - Attrs([Attr("address","0x580")]), Phis([]), -Defs([Def(Tid(1_377, "%00000561"), Attrs([Attr("address","0x584"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("#6",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(18446744073709551600,64))), -Def(Tid(1_383, "%00000567"), Attrs([Attr("address","0x584"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("#6",Imm(64)),Var("R29",Imm(64)),LittleEndian(),64)), -Def(Tid(1_389, "%0000056d"), Attrs([Attr("address","0x584"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("#6",Imm(64)),Int(8,64)),Var("R30",Imm(64)),LittleEndian(),64)), -Def(Tid(1_393, "%00000571"), Attrs([Attr("address","0x584"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("R31",Imm(64)), -Var("#6",Imm(64))), Def(Tid(1_399, "%00000577"), - Attrs([Attr("address","0x588"), Attr("insn","mov x29, sp")]), - Var("R29",Imm(64)), Var("R31",Imm(64))), Def(Tid(1_404, "%0000057c"), - Attrs([Attr("address","0x58C"), Attr("insn","bl #0xa8")]), - Var("R30",Imm(64)), Int(1424,64))]), Jmps([Call(Tid(1_406, "%0000057e"), - Attrs([Attr("address","0x58C"), Attr("insn","bl #0xa8")]), Int(1,1), -(Direct(Tid(1_558, "@call_weak_fn")),Direct(Tid(1_408, "%00000580"))))])), -Blk(Tid(1_408, "%00000580"), Attrs([Attr("address","0x590")]), Phis([]), -Defs([Def(Tid(1_413, "%00000585"), Attrs([Attr("address","0x590"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R29",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(1_418, "%0000058a"), Attrs([Attr("address","0x590"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R30",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(1_422, "%0000058e"), Attrs([Attr("address","0x590"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(16,64)))]), Jmps([Call(Tid(1_427, "%00000593"), - Attrs([Attr("address","0x594"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), Sub(Tid(1_554, "@_start"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x600"), -Attr("stub","()"), Attr("entry-point","()")]), "_start", - Args([Arg(Tid(1_608, "%00000648"), Attrs([Attr("c.layout","[signed : 32]"), -Attr("c.data","Top:u32"), Attr("c.type","signed")]), - Var("_start_result",Imm(32)), LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(428, "@_start"), Attrs([Attr("address","0x600")]), Phis([]), -Defs([Def(Tid(433, "%000001b1"), Attrs([Attr("address","0x604"), -Attr("insn","mov x29, #0x0")]), Var("R29",Imm(64)), Int(0,64)), -Def(Tid(438, "%000001b6"), Attrs([Attr("address","0x608"), -Attr("insn","mov x30, #0x0")]), Var("R30",Imm(64)), Int(0,64)), -Def(Tid(444, "%000001bc"), Attrs([Attr("address","0x60C"), -Attr("insn","mov x5, x0")]), Var("R5",Imm(64)), Var("R0",Imm(64))), -Def(Tid(451, "%000001c3"), Attrs([Attr("address","0x610"), -Attr("insn","ldr x1, [sp]")]), Var("R1",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(457, "%000001c9"), Attrs([Attr("address","0x614"), -Attr("insn","add x2, sp, #0x8")]), Var("R2",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(8,64))), Def(Tid(463, "%000001cf"), - Attrs([Attr("address","0x618"), Attr("insn","mov x6, sp")]), - Var("R6",Imm(64)), Var("R31",Imm(64))), Def(Tid(468, "%000001d4"), - Attrs([Attr("address","0x61C"), Attr("insn","adrp x0, #65536")]), - Var("R0",Imm(64)), Int(65536,64)), Def(Tid(475, "%000001db"), - Attrs([Attr("address","0x620"), Attr("insn","ldr x0, [x0, #0xfd8]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(4056,64)),LittleEndian(),64)), -Def(Tid(480, "%000001e0"), Attrs([Attr("address","0x624"), -Attr("insn","mov x3, #0x0")]), Var("R3",Imm(64)), Int(0,64)), -Def(Tid(485, "%000001e5"), Attrs([Attr("address","0x628"), -Attr("insn","mov x4, #0x0")]), Var("R4",Imm(64)), Int(0,64)), -Def(Tid(490, "%000001ea"), Attrs([Attr("address","0x62C"), -Attr("insn","bl #-0x6c")]), Var("R30",Imm(64)), Int(1584,64))]), -Jmps([Call(Tid(493, "%000001ed"), Attrs([Attr("address","0x62C"), -Attr("insn","bl #-0x6c")]), Int(1,1), -(Direct(Tid(1_551, "@__libc_start_main")),Direct(Tid(495, "%000001ef"))))])), -Blk(Tid(495, "%000001ef"), Attrs([Attr("address","0x630")]), Phis([]), -Defs([Def(Tid(498, "%000001f2"), Attrs([Attr("address","0x630"), -Attr("insn","bl #-0x40")]), Var("R30",Imm(64)), Int(1588,64))]), -Jmps([Call(Tid(501, "%000001f5"), Attrs([Attr("address","0x630"), -Attr("insn","bl #-0x40")]), Int(1,1), -(Direct(Tid(1_557, "@abort")),Direct(Tid(1_590, "%00000636"))))])), -Blk(Tid(1_590, "%00000636"), Attrs([]), Phis([]), Defs([]), -Jmps([Call(Tid(1_591, "%00000637"), Attrs([]), Int(1,1), -(Direct(Tid(1_558, "@call_weak_fn")),))]))])), Sub(Tid(1_557, "@abort"), - Attrs([Attr("noreturn","()"), Attr("c.proto","void (*)(void)"), -Attr("address","0x5F0"), Attr("stub","()")]), "abort", Args([]), -Blks([Blk(Tid(499, "@abort"), Attrs([Attr("address","0x5F0")]), Phis([]), -Defs([Def(Tid(1_232, "%000004d0"), Attrs([Attr("address","0x5F0"), -Attr("insn","adrp x16, #69632")]), Var("R16",Imm(64)), Int(69632,64)), -Def(Tid(1_239, "%000004d7"), Attrs([Attr("address","0x5F4"), -Attr("insn","ldr x17, [x16, #0x18]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(24,64)),LittleEndian(),64)), -Def(Tid(1_245, "%000004dd"), Attrs([Attr("address","0x5F8"), -Attr("insn","add x16, x16, #0x18")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(24,64)))]), Jmps([Call(Tid(1_250, "%000004e2"), - Attrs([Attr("address","0x5FC"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), Sub(Tid(1_558, "@call_weak_fn"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x634")]), - "call_weak_fn", Args([Arg(Tid(1_609, "%00000649"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("call_weak_fn_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(503, "@call_weak_fn"), - Attrs([Attr("address","0x634")]), Phis([]), Defs([Def(Tid(506, "%000001fa"), - Attrs([Attr("address","0x634"), Attr("insn","adrp x0, #65536")]), - Var("R0",Imm(64)), Int(65536,64)), Def(Tid(513, "%00000201"), - Attrs([Attr("address","0x638"), Attr("insn","ldr x0, [x0, #0xfd0]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(4048,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(519, "%00000207"), Attrs([Attr("address","0x63C"), -Attr("insn","cbz x0, #0x8")]), EQ(Var("R0",Imm(64)),Int(0,64)), -Direct(Tid(517, "%00000205"))), Goto(Tid(1_592, "%00000638"), Attrs([]), - Int(1,1), Direct(Tid(1_004, "%000003ec")))])), Blk(Tid(517, "%00000205"), - Attrs([Attr("address","0x644")]), Phis([]), Defs([]), -Jmps([Call(Tid(525, "%0000020d"), Attrs([Attr("address","0x644"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))])), -Blk(Tid(1_004, "%000003ec"), Attrs([Attr("address","0x640")]), Phis([]), -Defs([]), Jmps([Goto(Tid(1_007, "%000003ef"), Attrs([Attr("address","0x640"), -Attr("insn","b #-0x60")]), Int(1,1), -Direct(Tid(1_005, "@__gmon_start__")))])), Blk(Tid(1_005, "@__gmon_start__"), - Attrs([Attr("address","0x5E0")]), Phis([]), -Defs([Def(Tid(1_210, "%000004ba"), Attrs([Attr("address","0x5E0"), -Attr("insn","adrp x16, #69632")]), Var("R16",Imm(64)), Int(69632,64)), -Def(Tid(1_217, "%000004c1"), Attrs([Attr("address","0x5E4"), -Attr("insn","ldr x17, [x16, #0x10]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(16,64)),LittleEndian(),64)), -Def(Tid(1_223, "%000004c7"), Attrs([Attr("address","0x5E8"), -Attr("insn","add x16, x16, #0x10")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(16,64)))]), Jmps([Call(Tid(1_228, "%000004cc"), - Attrs([Attr("address","0x5EC"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), -Sub(Tid(1_560, "@deregister_tm_clones"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x650")]), - "deregister_tm_clones", Args([Arg(Tid(1_610, "%0000064a"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("deregister_tm_clones_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(531, "@deregister_tm_clones"), - Attrs([Attr("address","0x650")]), Phis([]), Defs([Def(Tid(534, "%00000216"), - Attrs([Attr("address","0x650"), Attr("insn","adrp x0, #69632")]), - Var("R0",Imm(64)), Int(69632,64)), Def(Tid(540, "%0000021c"), - Attrs([Attr("address","0x654"), Attr("insn","add x0, x0, #0x30")]), - Var("R0",Imm(64)), PLUS(Var("R0",Imm(64)),Int(48,64))), -Def(Tid(545, "%00000221"), Attrs([Attr("address","0x658"), -Attr("insn","adrp x1, #69632")]), Var("R1",Imm(64)), Int(69632,64)), -Def(Tid(551, "%00000227"), Attrs([Attr("address","0x65C"), -Attr("insn","add x1, x1, #0x30")]), Var("R1",Imm(64)), -PLUS(Var("R1",Imm(64)),Int(48,64))), Def(Tid(557, "%0000022d"), - Attrs([Attr("address","0x660"), Attr("insn","cmp x1, x0")]), - Var("#1",Imm(64)), NOT(Var("R0",Imm(64)))), Def(Tid(562, "%00000232"), - Attrs([Attr("address","0x660"), Attr("insn","cmp x1, x0")]), - Var("#2",Imm(64)), PLUS(Var("R1",Imm(64)),NOT(Var("R0",Imm(64))))), -Def(Tid(568, "%00000238"), Attrs([Attr("address","0x660"), -Attr("insn","cmp x1, x0")]), Var("VF",Imm(1)), -NEQ(SIGNED(65,PLUS(Var("#2",Imm(64)),Int(1,64))),PLUS(PLUS(SIGNED(65,Var("R1",Imm(64))),SIGNED(65,Var("#1",Imm(64)))),Int(1,65)))), -Def(Tid(574, "%0000023e"), Attrs([Attr("address","0x660"), -Attr("insn","cmp x1, x0")]), Var("CF",Imm(1)), -NEQ(UNSIGNED(65,PLUS(Var("#2",Imm(64)),Int(1,64))),PLUS(PLUS(UNSIGNED(65,Var("R1",Imm(64))),UNSIGNED(65,Var("#1",Imm(64)))),Int(1,65)))), -Def(Tid(578, "%00000242"), Attrs([Attr("address","0x660"), -Attr("insn","cmp x1, x0")]), Var("ZF",Imm(1)), -EQ(PLUS(Var("#2",Imm(64)),Int(1,64)),Int(0,64))), Def(Tid(582, "%00000246"), - Attrs([Attr("address","0x660"), Attr("insn","cmp x1, x0")]), - Var("NF",Imm(1)), Extract(63,63,PLUS(Var("#2",Imm(64)),Int(1,64))))]), -Jmps([Goto(Tid(588, "%0000024c"), Attrs([Attr("address","0x664"), -Attr("insn","b.eq #0x18")]), EQ(Var("ZF",Imm(1)),Int(1,1)), -Direct(Tid(586, "%0000024a"))), Goto(Tid(1_593, "%00000639"), Attrs([]), - Int(1,1), Direct(Tid(974, "%000003ce")))])), Blk(Tid(974, "%000003ce"), - Attrs([Attr("address","0x668")]), Phis([]), Defs([Def(Tid(977, "%000003d1"), - Attrs([Attr("address","0x668"), Attr("insn","adrp x1, #65536")]), - Var("R1",Imm(64)), Int(65536,64)), Def(Tid(984, "%000003d8"), - Attrs([Attr("address","0x66C"), Attr("insn","ldr x1, [x1, #0xfc0]")]), - Var("R1",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R1",Imm(64)),Int(4032,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(989, "%000003dd"), Attrs([Attr("address","0x670"), -Attr("insn","cbz x1, #0xc")]), EQ(Var("R1",Imm(64)),Int(0,64)), -Direct(Tid(586, "%0000024a"))), Goto(Tid(1_594, "%0000063a"), Attrs([]), - Int(1,1), Direct(Tid(993, "%000003e1")))])), Blk(Tid(586, "%0000024a"), - Attrs([Attr("address","0x67C")]), Phis([]), Defs([]), -Jmps([Call(Tid(594, "%00000252"), Attrs([Attr("address","0x67C"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))])), -Blk(Tid(993, "%000003e1"), Attrs([Attr("address","0x674")]), Phis([]), -Defs([Def(Tid(997, "%000003e5"), Attrs([Attr("address","0x674"), -Attr("insn","mov x16, x1")]), Var("R16",Imm(64)), Var("R1",Imm(64)))]), -Jmps([Call(Tid(1_002, "%000003ea"), Attrs([Attr("address","0x678"), -Attr("insn","br x16")]), Int(1,1), (Indirect(Var("R16",Imm(64))),))]))])), -Sub(Tid(1_563, "@frame_dummy"), Attrs([Attr("c.proto","signed (*)(void)"), -Attr("address","0x710")]), "frame_dummy", Args([Arg(Tid(1_611, "%0000064b"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("frame_dummy_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(746, "@frame_dummy"), - Attrs([Attr("address","0x710")]), Phis([]), Defs([]), -Jmps([Call(Tid(748, "%000002ec"), Attrs([Attr("address","0x710"), -Attr("insn","b #-0x90")]), Int(1,1), -(Direct(Tid(1_566, "@register_tm_clones")),))]))])), Sub(Tid(1_564, "@main"), - Attrs([Attr("c.proto","signed (*)(signed argc, const char** argv)"), -Attr("address","0x714")]), "main", Args([Arg(Tid(1_612, "%0000064c"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("main_argc",Imm(32)), -LOW(32,Var("R0",Imm(64))), In()), Arg(Tid(1_613, "%0000064d"), - Attrs([Attr("c.layout","**[char : 8]"), Attr("c.data","Top:u8 ptr ptr"), -Attr("c.type"," const char**")]), Var("main_argv",Imm(64)), -Var("R1",Imm(64)), Both()), Arg(Tid(1_614, "%0000064e"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("main_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(750, "@main"), - Attrs([Attr("address","0x714")]), Phis([]), Defs([Def(Tid(754, "%000002f2"), - Attrs([Attr("address","0x714"), Attr("insn","sub sp, sp, #0x10")]), - Var("R31",Imm(64)), PLUS(Var("R31",Imm(64)),Int(18446744073709551600,64))), -Def(Tid(761, "%000002f9"), Attrs([Attr("address","0x718"), -Attr("insn","str wzr, [sp, #0xc]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(12,64)),Int(0,32),LittleEndian(),32)), -Def(Tid(768, "%00000300"), Attrs([Attr("address","0x71C"), -Attr("insn","str wzr, [sp, #0x8]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),Int(0,32),LittleEndian(),32)), -Def(Tid(773, "%00000305"), Attrs([Attr("address","0x720"), -Attr("insn","adrp x8, #69632")]), Var("R8",Imm(64)), Int(69632,64)), -Def(Tid(780, "%0000030c"), Attrs([Attr("address","0x724"), -Attr("insn","ldr w8, [x8, #0x34]")]), Var("R8",Imm(64)), -UNSIGNED(64,Load(Var("mem",Mem(64,8)),PLUS(Var("R8",Imm(64)),Int(52,64)),LittleEndian(),32))), -Def(Tid(786, "%00000312"), Attrs([Attr("address","0x728"), -Attr("insn","subs w8, w8, #0x0")]), Var("#4",Imm(32)), -PLUS(Extract(31,0,Var("R8",Imm(64))),Int(4294967295,32))), -Def(Tid(791, "%00000317"), Attrs([Attr("address","0x728"), -Attr("insn","subs w8, w8, #0x0")]), Var("VF",Imm(1)), -NEQ(SIGNED(33,PLUS(Var("#4",Imm(32)),Int(1,32))),PLUS(SIGNED(33,Extract(31,0,Var("R8",Imm(64)))),Int(0,33)))), -Def(Tid(796, "%0000031c"), Attrs([Attr("address","0x728"), -Attr("insn","subs w8, w8, #0x0")]), Var("CF",Imm(1)), -NEQ(UNSIGNED(33,PLUS(Var("#4",Imm(32)),Int(1,32))),PLUS(UNSIGNED(33,Extract(31,0,Var("R8",Imm(64)))),Int(4294967296,33)))), -Def(Tid(800, "%00000320"), Attrs([Attr("address","0x728"), -Attr("insn","subs w8, w8, #0x0")]), Var("ZF",Imm(1)), -EQ(PLUS(Var("#4",Imm(32)),Int(1,32)),Int(0,32))), Def(Tid(804, "%00000324"), - Attrs([Attr("address","0x728"), Attr("insn","subs w8, w8, #0x0")]), - Var("NF",Imm(1)), Extract(31,31,PLUS(Var("#4",Imm(32)),Int(1,32)))), -Def(Tid(808, "%00000328"), Attrs([Attr("address","0x728"), -Attr("insn","subs w8, w8, #0x0")]), Var("R8",Imm(64)), -UNSIGNED(64,PLUS(Var("#4",Imm(32)),Int(1,32))))]), -Jmps([Goto(Tid(820, "%00000334"), Attrs([Attr("address","0x72C"), -Attr("insn","cset w8, ne")]), EQ(Var("ZF",Imm(1)),Int(1,1)), -Direct(Tid(813, "%0000032d"))), Goto(Tid(821, "%00000335"), - Attrs([Attr("address","0x72C"), Attr("insn","cset w8, ne")]), Int(1,1), -Direct(Tid(816, "%00000330")))])), Blk(Tid(816, "%00000330"), Attrs([]), - Phis([]), Defs([Def(Tid(817, "%00000331"), Attrs([Attr("address","0x72C"), -Attr("insn","cset w8, ne")]), Var("R8",Imm(64)), Int(1,64))]), -Jmps([Goto(Tid(823, "%00000337"), Attrs([Attr("address","0x72C"), -Attr("insn","cset w8, ne")]), Int(1,1), Direct(Tid(819, "%00000333")))])), -Blk(Tid(813, "%0000032d"), Attrs([]), Phis([]), -Defs([Def(Tid(814, "%0000032e"), Attrs([Attr("address","0x72C"), -Attr("insn","cset w8, ne")]), Var("R8",Imm(64)), Int(0,64))]), -Jmps([Goto(Tid(822, "%00000336"), Attrs([Attr("address","0x72C"), -Attr("insn","cset w8, ne")]), Int(1,1), Direct(Tid(819, "%00000333")))])), -Blk(Tid(819, "%00000333"), Attrs([]), Phis([]), Defs([]), -Jmps([Goto(Tid(829, "%0000033d"), Attrs([Attr("address","0x730"), -Attr("insn","tbnz w8, #0x0, #0x1c")]), - EQ(Extract(0,0,Var("R8",Imm(64))),Int(1,1)), Direct(Tid(827, "%0000033b"))), -Goto(Tid(1_595, "%0000063b"), Attrs([]), Int(1,1), -Direct(Tid(850, "%00000352")))])), Blk(Tid(850, "%00000352"), - Attrs([Attr("address","0x734")]), Phis([]), Defs([]), -Jmps([Goto(Tid(853, "%00000355"), Attrs([Attr("address","0x734"), -Attr("insn","b #0x4")]), Int(1,1), Direct(Tid(851, "%00000353")))])), -Blk(Tid(851, "%00000353"), Attrs([Attr("address","0x738")]), Phis([]), -Defs([Def(Tid(857, "%00000359"), Attrs([Attr("address","0x738"), -Attr("insn","adrp x8, #69632")]), Var("R8",Imm(64)), Int(69632,64)), -Def(Tid(864, "%00000360"), Attrs([Attr("address","0x73C"), -Attr("insn","str wzr, [x8, #0x38]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R8",Imm(64)),Int(56,64)),Int(0,32),LittleEndian(),32)), -Def(Tid(871, "%00000367"), Attrs([Attr("address","0x740"), -Attr("insn","ldr w8, [x8, #0x38]")]), Var("R8",Imm(64)), -UNSIGNED(64,Load(Var("mem",Mem(64,8)),PLUS(Var("R8",Imm(64)),Int(56,64)),LittleEndian(),32))), -Def(Tid(879, "%0000036f"), Attrs([Attr("address","0x744"), -Attr("insn","str w8, [sp, #0x8]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),Extract(31,0,Var("R8",Imm(64))),LittleEndian(),32))]), -Jmps([Goto(Tid(883, "%00000373"), Attrs([Attr("address","0x748"), -Attr("insn","b #0x4")]), Int(1,1), Direct(Tid(827, "%0000033b")))])), -Blk(Tid(827, "%0000033b"), Attrs([Attr("address","0x74C")]), Phis([]), -Defs([Def(Tid(837, "%00000345"), Attrs([Attr("address","0x74C"), -Attr("insn","ldr w0, [sp, #0x8]")]), Var("R0",Imm(64)), -UNSIGNED(64,Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),LittleEndian(),32))), -Def(Tid(843, "%0000034b"), Attrs([Attr("address","0x750"), -Attr("insn","add sp, sp, #0x10")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(16,64)))]), Jmps([Call(Tid(848, "%00000350"), - Attrs([Attr("address","0x754"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), -Sub(Tid(1_566, "@register_tm_clones"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x680")]), - "register_tm_clones", Args([Arg(Tid(1_615, "%0000064f"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("register_tm_clones_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(596, "@register_tm_clones"), Attrs([Attr("address","0x680")]), - Phis([]), Defs([Def(Tid(599, "%00000257"), Attrs([Attr("address","0x680"), -Attr("insn","adrp x0, #69632")]), Var("R0",Imm(64)), Int(69632,64)), -Def(Tid(605, "%0000025d"), Attrs([Attr("address","0x684"), -Attr("insn","add x0, x0, #0x30")]), Var("R0",Imm(64)), -PLUS(Var("R0",Imm(64)),Int(48,64))), Def(Tid(610, "%00000262"), - Attrs([Attr("address","0x688"), Attr("insn","adrp x1, #69632")]), - Var("R1",Imm(64)), Int(69632,64)), Def(Tid(616, "%00000268"), - Attrs([Attr("address","0x68C"), Attr("insn","add x1, x1, #0x30")]), - Var("R1",Imm(64)), PLUS(Var("R1",Imm(64)),Int(48,64))), -Def(Tid(623, "%0000026f"), Attrs([Attr("address","0x690"), -Attr("insn","sub x1, x1, x0")]), Var("R1",Imm(64)), -PLUS(PLUS(Var("R1",Imm(64)),NOT(Var("R0",Imm(64)))),Int(1,64))), -Def(Tid(629, "%00000275"), Attrs([Attr("address","0x694"), -Attr("insn","lsr x2, x1, #63")]), Var("R2",Imm(64)), -Concat(Int(0,63),Extract(63,63,Var("R1",Imm(64))))), -Def(Tid(636, "%0000027c"), Attrs([Attr("address","0x698"), -Attr("insn","add x1, x2, x1, asr #3")]), Var("R1",Imm(64)), -PLUS(Var("R2",Imm(64)),ARSHIFT(Var("R1",Imm(64)),Int(3,3)))), -Def(Tid(642, "%00000282"), Attrs([Attr("address","0x69C"), -Attr("insn","asr x1, x1, #1")]), Var("R1",Imm(64)), -SIGNED(64,Extract(63,1,Var("R1",Imm(64)))))]), -Jmps([Goto(Tid(648, "%00000288"), Attrs([Attr("address","0x6A0"), -Attr("insn","cbz x1, #0x18")]), EQ(Var("R1",Imm(64)),Int(0,64)), -Direct(Tid(646, "%00000286"))), Goto(Tid(1_596, "%0000063c"), Attrs([]), - Int(1,1), Direct(Tid(944, "%000003b0")))])), Blk(Tid(944, "%000003b0"), - Attrs([Attr("address","0x6A4")]), Phis([]), Defs([Def(Tid(947, "%000003b3"), - Attrs([Attr("address","0x6A4"), Attr("insn","adrp x2, #65536")]), - Var("R2",Imm(64)), Int(65536,64)), Def(Tid(954, "%000003ba"), - Attrs([Attr("address","0x6A8"), Attr("insn","ldr x2, [x2, #0xfe0]")]), - Var("R2",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R2",Imm(64)),Int(4064,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(959, "%000003bf"), Attrs([Attr("address","0x6AC"), -Attr("insn","cbz x2, #0xc")]), EQ(Var("R2",Imm(64)),Int(0,64)), -Direct(Tid(646, "%00000286"))), Goto(Tid(1_597, "%0000063d"), Attrs([]), - Int(1,1), Direct(Tid(963, "%000003c3")))])), Blk(Tid(646, "%00000286"), - Attrs([Attr("address","0x6B8")]), Phis([]), Defs([]), -Jmps([Call(Tid(654, "%0000028e"), Attrs([Attr("address","0x6B8"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))])), -Blk(Tid(963, "%000003c3"), Attrs([Attr("address","0x6B0")]), Phis([]), -Defs([Def(Tid(967, "%000003c7"), Attrs([Attr("address","0x6B0"), -Attr("insn","mov x16, x2")]), Var("R16",Imm(64)), Var("R2",Imm(64)))]), -Jmps([Call(Tid(972, "%000003cc"), Attrs([Attr("address","0x6B4"), -Attr("insn","br x16")]), Int(1,1), -(Indirect(Var("R16",Imm(64))),))]))]))]))) \ No newline at end of file diff --git a/src/test/correct/basic_lock_read/clang/basic_lock_read.bir b/src/test/correct/basic_lock_read/clang/basic_lock_read.bir deleted file mode 100644 index afb66a109..000000000 --- a/src/test/correct/basic_lock_read/clang/basic_lock_read.bir +++ /dev/null @@ -1,262 +0,0 @@ -0000063e: program -0000060a: sub __cxa_finalize(__cxa_finalize_result) -0000063f: __cxa_finalize_result :: out u32 = low:32[R0] - -000003ac: -000004a4: R16 := 0x11000 -000004ab: R17 := mem[R16 + 8, el]:u64 -000004b1: R16 := R16 + 8 -000004b6: call R17 with noreturn - -0000060b: sub __do_global_dtors_aux(__do_global_dtors_aux_result) -00000640: __do_global_dtors_aux_result :: out u32 = low:32[R0] - -00000292: -00000296: #3 := R31 - 0x20 -0000029c: mem := mem with [#3, el]:u64 <- R29 -000002a2: mem := mem with [#3 + 8, el]:u64 <- R30 -000002a6: R31 := #3 -000002ac: R29 := R31 -000002b4: mem := mem with [R31 + 0x10, el]:u64 <- R19 -000002b9: R19 := 0x11000 -000002c0: R0 := pad:64[mem[R19 + 0x30]] -000002c7: when 31:0[R0] <> 0 goto %000002c5 -00000633: goto %00000375 - -00000375: -00000378: R0 := 0x10000 -0000037f: R0 := mem[R0 + 0xFC8, el]:u64 -00000385: when R0 = 0 goto %00000383 -00000634: goto %0000039c - -0000039c: -0000039f: R0 := 0x11000 -000003a6: R0 := mem[R0 + 0x28, el]:u64 -000003ab: R30 := 0x6F0 -000003ae: call @__cxa_finalize with return %00000383 - -00000383: -0000038b: R30 := 0x6F4 -0000038d: call @deregister_tm_clones with return %0000038f - -0000038f: -00000392: R0 := 1 -0000039a: mem := mem with [R19 + 0x30] <- 7:0[R0] -00000635: goto %000002c5 - -000002c5: -000002cf: R19 := mem[R31 + 0x10, el]:u64 -000002d6: R29 := mem[R31, el]:u64 -000002db: R30 := mem[R31 + 8, el]:u64 -000002df: R31 := R31 + 0x20 -000002e4: call R30 with noreturn - -0000060f: sub __libc_start_main(__libc_start_main_main, __libc_start_main_arg2, __libc_start_main_arg3, __libc_start_main_auxv, __libc_start_main_result) -00000641: __libc_start_main_main :: in u64 = R0 -00000642: __libc_start_main_arg2 :: in u32 = low:32[R1] -00000643: __libc_start_main_arg3 :: in out u64 = R2 -00000644: __libc_start_main_auxv :: in out u64 = R3 -00000645: __libc_start_main_result :: out u32 = low:32[R0] - -000001eb: -0000048e: R16 := 0x11000 -00000495: R17 := mem[R16, el]:u64 -0000049b: R16 := R16 -000004a0: call R17 with noreturn - -00000610: sub _fini(_fini_result) -00000646: _fini_result :: out u32 = low:32[R0] - -0000001f: -00000025: #0 := R31 - 0x10 -0000002b: mem := mem with [#0, el]:u64 <- R29 -00000031: mem := mem with [#0 + 8, el]:u64 <- R30 -00000035: R31 := #0 -0000003b: R29 := R31 -00000042: R29 := mem[R31, el]:u64 -00000047: R30 := mem[R31 + 8, el]:u64 -0000004b: R31 := R31 + 0x10 -00000050: call R30 with noreturn - -00000611: sub _init(_init_result) -00000647: _init_result :: out u32 = low:32[R0] - -0000055b: -00000561: #6 := R31 - 0x10 -00000567: mem := mem with [#6, el]:u64 <- R29 -0000056d: mem := mem with [#6 + 8, el]:u64 <- R30 -00000571: R31 := #6 -00000577: R29 := R31 -0000057c: R30 := 0x590 -0000057e: call @call_weak_fn with return %00000580 - -00000580: -00000585: R29 := mem[R31, el]:u64 -0000058a: R30 := mem[R31 + 8, el]:u64 -0000058e: R31 := R31 + 0x10 -00000593: call R30 with noreturn - -00000612: sub _start(_start_result) -00000648: _start_result :: out u32 = low:32[R0] - -000001ac: -000001b1: R29 := 0 -000001b6: R30 := 0 -000001bc: R5 := R0 -000001c3: R1 := mem[R31, el]:u64 -000001c9: R2 := R31 + 8 -000001cf: R6 := R31 -000001d4: R0 := 0x10000 -000001db: R0 := mem[R0 + 0xFD8, el]:u64 -000001e0: R3 := 0 -000001e5: R4 := 0 -000001ea: R30 := 0x630 -000001ed: call @__libc_start_main with return %000001ef - -000001ef: -000001f2: R30 := 0x634 -000001f5: call @abort with return %00000636 - -00000636: -00000637: call @call_weak_fn with noreturn - -00000615: sub abort() - - -000001f3: -000004d0: R16 := 0x11000 -000004d7: R17 := mem[R16 + 0x18, el]:u64 -000004dd: R16 := R16 + 0x18 -000004e2: call R17 with noreturn - -00000616: sub call_weak_fn(call_weak_fn_result) -00000649: call_weak_fn_result :: out u32 = low:32[R0] - -000001f7: -000001fa: R0 := 0x10000 -00000201: R0 := mem[R0 + 0xFD0, el]:u64 -00000207: when R0 = 0 goto %00000205 -00000638: goto %000003ec - -00000205: -0000020d: call R30 with noreturn - -000003ec: -000003ef: goto @__gmon_start__ - -000003ed: -000004ba: R16 := 0x11000 -000004c1: R17 := mem[R16 + 0x10, el]:u64 -000004c7: R16 := R16 + 0x10 -000004cc: call R17 with noreturn - -00000618: sub deregister_tm_clones(deregister_tm_clones_result) -0000064a: deregister_tm_clones_result :: out u32 = low:32[R0] - -00000213: -00000216: R0 := 0x11000 -0000021c: R0 := R0 + 0x30 -00000221: R1 := 0x11000 -00000227: R1 := R1 + 0x30 -0000022d: #1 := ~R0 -00000232: #2 := R1 + ~R0 -00000238: VF := extend:65[#2 + 1] <> extend:65[R1] + extend:65[#1] + 1 -0000023e: CF := pad:65[#2 + 1] <> pad:65[R1] + pad:65[#1] + 1 -00000242: ZF := #2 + 1 = 0 -00000246: NF := 63:63[#2 + 1] -0000024c: when ZF goto %0000024a -00000639: goto %000003ce - -000003ce: -000003d1: R1 := 0x10000 -000003d8: R1 := mem[R1 + 0xFC0, el]:u64 -000003dd: when R1 = 0 goto %0000024a -0000063a: goto %000003e1 - -0000024a: -00000252: call R30 with noreturn - -000003e1: -000003e5: R16 := R1 -000003ea: call R16 with noreturn - -0000061b: sub frame_dummy(frame_dummy_result) -0000064b: frame_dummy_result :: out u32 = low:32[R0] - -000002ea: -000002ec: call @register_tm_clones with noreturn - -0000061c: sub main(main_argc, main_argv, main_result) -0000064c: main_argc :: in u32 = low:32[R0] -0000064d: main_argv :: in out u64 = R1 -0000064e: main_result :: out u32 = low:32[R0] - -000002ee: -000002f2: R31 := R31 - 0x10 -000002f9: mem := mem with [R31 + 0xC, el]:u32 <- 0 -00000300: mem := mem with [R31 + 8, el]:u32 <- 0 -00000305: R8 := 0x11000 -0000030c: R8 := pad:64[mem[R8 + 0x34, el]:u32] -00000312: #4 := 31:0[R8] - 1 -00000317: VF := extend:33[#4 + 1] <> extend:33[31:0[R8]] + 0 -0000031c: CF := pad:33[#4 + 1] <> pad:33[31:0[R8]] - 0x100000000 -00000320: ZF := #4 + 1 = 0 -00000324: NF := 31:31[#4 + 1] -00000328: R8 := pad:64[#4 + 1] -00000334: when ZF goto %0000032d -00000335: goto %00000330 - -00000330: -00000331: R8 := 1 -00000337: goto %00000333 - -0000032d: -0000032e: R8 := 0 -00000336: goto %00000333 - -00000333: -0000033d: when 0:0[R8] goto %0000033b -0000063b: goto %00000352 - -00000352: -00000355: goto %00000353 - -00000353: -00000359: R8 := 0x11000 -00000360: mem := mem with [R8 + 0x38, el]:u32 <- 0 -00000367: R8 := pad:64[mem[R8 + 0x38, el]:u32] -0000036f: mem := mem with [R31 + 8, el]:u32 <- 31:0[R8] -00000373: goto %0000033b - -0000033b: -00000345: R0 := pad:64[mem[R31 + 8, el]:u32] -0000034b: R31 := R31 + 0x10 -00000350: call R30 with noreturn - -0000061e: sub register_tm_clones(register_tm_clones_result) -0000064f: register_tm_clones_result :: out u32 = low:32[R0] - -00000254: -00000257: R0 := 0x11000 -0000025d: R0 := R0 + 0x30 -00000262: R1 := 0x11000 -00000268: R1 := R1 + 0x30 -0000026f: R1 := R1 + ~R0 + 1 -00000275: R2 := 0.63:63[R1] -0000027c: R1 := R2 + (R1 ~>> 3) -00000282: R1 := extend:64[63:1[R1]] -00000288: when R1 = 0 goto %00000286 -0000063c: goto %000003b0 - -000003b0: -000003b3: R2 := 0x10000 -000003ba: R2 := mem[R2 + 0xFE0, el]:u64 -000003bf: when R2 = 0 goto %00000286 -0000063d: goto %000003c3 - -00000286: -0000028e: call R30 with noreturn - -000003c3: -000003c7: R16 := R2 -000003cc: call R16 with noreturn diff --git a/src/test/correct/basic_lock_read/clang/basic_lock_read.expected b/src/test/correct/basic_lock_read/clang/basic_lock_read.expected index 7b7b071ca..0b94b91a8 100644 --- a/src/test/correct/basic_lock_read/clang/basic_lock_read.expected +++ b/src/test/correct/basic_lock_read/clang/basic_lock_read.expected @@ -1,40 +1,27 @@ -var {:extern} CF: bv1; -var {:extern} Gamma_CF: bool; -var {:extern} Gamma_NF: bool; var {:extern} Gamma_R0: bool; -var {:extern} Gamma_R31: bool; var {:extern} Gamma_R8: bool; -var {:extern} Gamma_VF: bool; -var {:extern} Gamma_ZF: bool; var {:extern} Gamma_mem: [bv64]bool; -var {:extern} Gamma_stack: [bv64]bool; -var {:extern} NF: bv1; var {:extern} R0: bv64; -var {:extern} R31: bv64; var {:extern} R8: bv64; -var {:extern} VF: bv1; -var {:extern} ZF: bv1; var {:extern} mem: [bv64]bv8; -var {:extern} stack: [bv64]bv8; const {:extern} $x_addr: bv64; -axiom ($x_addr == 69688bv64); +axiom ($x_addr == 131096bv64); const {:extern} $z_addr: bv64; -axiom ($z_addr == 69684bv64); +axiom ($z_addr == 131092bv64); function {:extern} L(mem$in: [bv64]bv8, index: bv64) returns (bool) { (if (index == $x_addr) then true else (if (index == $z_addr) then true else false)) } -function {:extern} {:bvbuiltin "bvadd"} bvadd32(bv32, bv32) returns (bv32); -function {:extern} {:bvbuiltin "bvadd"} bvadd33(bv33, bv33) returns (bv33); function {:extern} {:bvbuiltin "bvadd"} bvadd64(bv64, bv64) returns (bv64); -function {:extern} {:bvbuiltin "bvcomp"} bvcomp1(bv1, bv1) returns (bv1); function {:extern} {:bvbuiltin "bvcomp"} bvcomp32(bv32, bv32) returns (bv1); -function {:extern} {:bvbuiltin "bvcomp"} bvcomp33(bv33, bv33) returns (bv1); -function {:extern} {:bvbuiltin "bvnot"} bvnot1(bv1) returns (bv1); function {:extern} gamma_load32(gammaMap: [bv64]bool, index: bv64) returns (bool) { (gammaMap[bvadd64(index, 3bv64)] && (gammaMap[bvadd64(index, 2bv64)] && (gammaMap[bvadd64(index, 1bv64)] && gammaMap[index]))) } +function {:extern} gamma_load64(gammaMap: [bv64]bool, index: bv64) returns (bool) { + (gammaMap[bvadd64(index, 7bv64)] && (gammaMap[bvadd64(index, 6bv64)] && (gammaMap[bvadd64(index, 5bv64)] && (gammaMap[bvadd64(index, 4bv64)] && (gammaMap[bvadd64(index, 3bv64)] && (gammaMap[bvadd64(index, 2bv64)] && (gammaMap[bvadd64(index, 1bv64)] && gammaMap[index]))))))) +} + function {:extern} gamma_store32(gammaMap: [bv64]bool, index: bv64, value: bool) returns ([bv64]bool) { gammaMap[index := value][bvadd64(index, 1bv64) := value][bvadd64(index, 2bv64) := value][bvadd64(index, 3bv64) := value] } @@ -51,18 +38,18 @@ function {:extern} memory_store32_le(memory: [bv64]bv8, index: bv64, value: bv32 memory[index := value[8:0]][bvadd64(index, 1bv64) := value[16:8]][bvadd64(index, 2bv64) := value[24:16]][bvadd64(index, 3bv64) := value[32:24]] } -function {:extern} {:bvbuiltin "sign_extend 1"} sign_extend1_32(bv32) returns (bv33); -function {:extern} {:bvbuiltin "zero_extend 1"} zero_extend1_32(bv32) returns (bv33); function {:extern} {:bvbuiltin "zero_extend 32"} zero_extend32_32(bv32) returns (bv64); procedure {:extern} rely(); modifies Gamma_mem, mem; ensures (forall i: bv64 :: (((mem[i] == old(mem[i])) ==> (Gamma_mem[i] == old(Gamma_mem[i]))))); ensures ((old(memory_load32_le(mem, $z_addr)) == 0bv32) ==> ((memory_load32_le(mem, $x_addr) == old(memory_load32_le(mem, $x_addr))) && (memory_load32_le(mem, $z_addr) == old(memory_load32_le(mem, $z_addr))))); - free ensures (memory_load32_le(mem, 1900bv64) == 131073bv32); - free ensures (memory_load64_le(mem, 69064bv64) == 1808bv64); - free ensures (memory_load64_le(mem, 69072bv64) == 1728bv64); - free ensures (memory_load64_le(mem, 69592bv64) == 1812bv64); - free ensures (memory_load64_le(mem, 69672bv64) == 69672bv64); + free ensures (memory_load32_le(mem, 2324bv64) == 131073bv32); + free ensures (memory_load64_le(mem, 130424bv64) == 2256bv64); + free ensures (memory_load64_le(mem, 130432bv64) == 2176bv64); + free ensures (memory_load64_le(mem, 131032bv64) == 131092bv64); + free ensures (memory_load64_le(mem, 131040bv64) == 131096bv64); + free ensures (memory_load64_le(mem, 131056bv64) == 2260bv64); + free ensures (memory_load64_le(mem, 131080bv64) == 131080bv64); procedure {:extern} rely_transitive(); modifies Gamma_mem, mem; @@ -89,108 +76,74 @@ implementation {:extern} guarantee_reflexive() assert (memory_load32_le(mem, $z_addr) == memory_load32_le(mem, $z_addr)); } -procedure main_1812(); - modifies CF, Gamma_CF, Gamma_NF, Gamma_R0, Gamma_R31, Gamma_R8, Gamma_VF, Gamma_ZF, Gamma_mem, Gamma_stack, NF, R0, R31, R8, VF, ZF, mem, stack; - free requires (memory_load64_le(mem, 69664bv64) == 0bv64); - free requires (memory_load64_le(mem, 69672bv64) == 69672bv64); - free requires (memory_load32_le(mem, 1900bv64) == 131073bv32); - free requires (memory_load64_le(mem, 69064bv64) == 1808bv64); - free requires (memory_load64_le(mem, 69072bv64) == 1728bv64); - free requires (memory_load64_le(mem, 69592bv64) == 1812bv64); - free requires (memory_load64_le(mem, 69672bv64) == 69672bv64); +procedure main(); + modifies Gamma_R0, Gamma_R8, Gamma_mem, R0, R8, mem; + free requires (memory_load64_le(mem, 131072bv64) == 0bv64); + free requires (memory_load64_le(mem, 131080bv64) == 131080bv64); + free requires (memory_load32_le(mem, 2324bv64) == 131073bv32); + free requires (memory_load64_le(mem, 130424bv64) == 2256bv64); + free requires (memory_load64_le(mem, 130432bv64) == 2176bv64); + free requires (memory_load64_le(mem, 131032bv64) == 131092bv64); + free requires (memory_load64_le(mem, 131040bv64) == 131096bv64); + free requires (memory_load64_le(mem, 131056bv64) == 2260bv64); + free requires (memory_load64_le(mem, 131080bv64) == 131080bv64); ensures (R0[32:0] == 0bv32); - free ensures (Gamma_R31 == old(Gamma_R31)); - free ensures (R31 == old(R31)); - free ensures (memory_load32_le(mem, 1900bv64) == 131073bv32); - free ensures (memory_load64_le(mem, 69064bv64) == 1808bv64); - free ensures (memory_load64_le(mem, 69072bv64) == 1728bv64); - free ensures (memory_load64_le(mem, 69592bv64) == 1812bv64); - free ensures (memory_load64_le(mem, 69672bv64) == 69672bv64); - -implementation main_1812() + free ensures (memory_load32_le(mem, 2324bv64) == 131073bv32); + free ensures (memory_load64_le(mem, 130424bv64) == 2256bv64); + free ensures (memory_load64_le(mem, 130432bv64) == 2176bv64); + free ensures (memory_load64_le(mem, 131032bv64) == 131092bv64); + free ensures (memory_load64_le(mem, 131040bv64) == 131096bv64); + free ensures (memory_load64_le(mem, 131056bv64) == 2260bv64); + free ensures (memory_load64_le(mem, 131080bv64) == 131080bv64); + +implementation main() { - var #4: bv32; - var Gamma_#4: bool; - var Gamma_load18: bool; - var Gamma_load19: bool; - var Gamma_load20: bool; - var load18: bv32; - var load19: bv32; - var load20: bv32; + var $load$18: bv64; + var $load$19: bv32; + var $load$20: bv64; + var Gamma_$load$18: bool; + var Gamma_$load$19: bool; + var Gamma_$load$20: bool; var z_old: bv32; lmain: assume {:captureState "lmain"} true; - R31, Gamma_R31 := bvadd64(R31, 18446744073709551600bv64), Gamma_R31; - stack, Gamma_stack := memory_store32_le(stack, bvadd64(R31, 12bv64), 0bv32), gamma_store32(Gamma_stack, bvadd64(R31, 12bv64), true); - assume {:captureState "%000002f9"} true; - stack, Gamma_stack := memory_store32_le(stack, bvadd64(R31, 8bv64), 0bv32), gamma_store32(Gamma_stack, bvadd64(R31, 8bv64), true); - assume {:captureState "%00000300"} true; - R8, Gamma_R8 := 69632bv64, true; + R8, Gamma_R8 := 126976bv64, true; call rely(); - load18, Gamma_load18 := memory_load32_le(mem, bvadd64(R8, 52bv64)), (gamma_load32(Gamma_mem, bvadd64(R8, 52bv64)) || L(mem, bvadd64(R8, 52bv64))); - R8, Gamma_R8 := zero_extend32_32(load18), Gamma_load18; - #4, Gamma_#4 := bvadd32(R8[32:0], 4294967295bv32), Gamma_R8; - VF, Gamma_VF := bvnot1(bvcomp33(sign_extend1_32(bvadd32(#4, 1bv32)), bvadd33(sign_extend1_32(R8[32:0]), 0bv33))), (Gamma_R8 && Gamma_#4); - CF, Gamma_CF := bvnot1(bvcomp33(zero_extend1_32(bvadd32(#4, 1bv32)), bvadd33(zero_extend1_32(R8[32:0]), 4294967296bv33))), (Gamma_R8 && Gamma_#4); - ZF, Gamma_ZF := bvcomp32(bvadd32(#4, 1bv32), 0bv32), Gamma_#4; - NF, Gamma_NF := bvadd32(#4, 1bv32)[32:31], Gamma_#4; - R8, Gamma_R8 := zero_extend32_32(bvadd32(#4, 1bv32)), Gamma_#4; - assert Gamma_ZF; - goto lmain_goto_l0000032d, lmain_goto_l00000330; - lmain_goto_l00000330: - assume {:captureState "lmain_goto_l00000330"} true; - assume (bvcomp1(ZF, 1bv1) == 0bv1); - R8, Gamma_R8 := 1bv64, true; - goto l00000330; - l00000330: - assume {:captureState "l00000330"} true; - goto l00000333; - lmain_goto_l0000032d: - assume {:captureState "lmain_goto_l0000032d"} true; - assume (bvcomp1(ZF, 1bv1) != 0bv1); - R8, Gamma_R8 := 0bv64, true; - goto l0000032d; - l0000032d: - assume {:captureState "l0000032d"} true; - goto l00000333; - l00000333: - assume {:captureState "l00000333"} true; + $load$18, Gamma_$load$18 := memory_load64_le(mem, bvadd64(R8, 4056bv64)), (gamma_load64(Gamma_mem, bvadd64(R8, 4056bv64)) || L(mem, bvadd64(R8, 4056bv64))); + R8, Gamma_R8 := $load$18, Gamma_$load$18; + call rely(); + $load$19, Gamma_$load$19 := memory_load32_le(mem, R8), (gamma_load32(Gamma_mem, R8) || L(mem, R8)); + R8, Gamma_R8 := zero_extend32_32($load$19), Gamma_$load$19; assert Gamma_R8; - goto l00000333_goto_l0000033b, l00000333_goto_l00000352; - l00000333_goto_l00000352: - assume {:captureState "l00000333_goto_l00000352"} true; - assume (bvcomp1(R8[1:0], 1bv1) == 0bv1); - goto l00000352; - l00000352: - assume {:captureState "l00000352"} true; - goto l00000353; - l00000353: - assume {:captureState "l00000353"} true; - R8, Gamma_R8 := 69632bv64, true; + goto lmain_goto_l0000028c, lmain_goto_l00000294; + l0000028c: + assume {:captureState "l0000028c"} true; + R8, Gamma_R8 := 126976bv64, true; + call rely(); + $load$20, Gamma_$load$20 := memory_load64_le(mem, bvadd64(R8, 4064bv64)), (gamma_load64(Gamma_mem, bvadd64(R8, 4064bv64)) || L(mem, bvadd64(R8, 4064bv64))); + R8, Gamma_R8 := $load$20, Gamma_$load$20; call rely(); + assert (L(mem, R8) ==> true); z_old := memory_load32_le(mem, $z_addr); - assert (L(mem, bvadd64(R8, 56bv64)) ==> true); - mem, Gamma_mem := memory_store32_le(mem, bvadd64(R8, 56bv64), 0bv32), gamma_store32(Gamma_mem, bvadd64(R8, 56bv64), true); + mem, Gamma_mem := memory_store32_le(mem, R8, 0bv32), gamma_store32(Gamma_mem, R8, true); assert (memory_load32_le(mem, $z_addr) == z_old); - assume {:captureState "%00000360"} true; - call rely(); - load19, Gamma_load19 := memory_load32_le(mem, bvadd64(R8, 56bv64)), (gamma_load32(Gamma_mem, bvadd64(R8, 56bv64)) || L(mem, bvadd64(R8, 56bv64))); - R8, Gamma_R8 := zero_extend32_32(load19), Gamma_load19; - stack, Gamma_stack := memory_store32_le(stack, bvadd64(R31, 8bv64), R8[32:0]), gamma_store32(Gamma_stack, bvadd64(R31, 8bv64), Gamma_R8); - assume {:captureState "%0000036f"} true; - goto l0000033b; - l00000333_goto_l0000033b: - assume {:captureState "l00000333_goto_l0000033b"} true; - assume (bvcomp1(R8[1:0], 1bv1) != 0bv1); - goto l0000033b; - l0000033b: - assume {:captureState "l0000033b"} true; - load20, Gamma_load20 := memory_load32_le(stack, bvadd64(R31, 8bv64)), gamma_load32(Gamma_stack, bvadd64(R31, 8bv64)); - R0, Gamma_R0 := zero_extend32_32(load20), Gamma_load20; - R31, Gamma_R31 := bvadd64(R31, 16bv64), Gamma_R31; - goto main_1812_basil_return; - main_1812_basil_return: - assume {:captureState "main_1812_basil_return"} true; + assume {:captureState "%000002a0"} true; + R0, Gamma_R0 := 0bv64, true; + goto main_basil_return; + l00000294: + assume {:captureState "l00000294"} true; + R0, Gamma_R0 := 0bv64, true; + goto main_basil_return; + lmain_goto_l0000028c: + assume {:captureState "lmain_goto_l0000028c"} true; + assume (bvcomp32(R8[32:0], 0bv32) != 0bv1); + goto l0000028c; + lmain_goto_l00000294: + assume {:captureState "lmain_goto_l00000294"} true; + assume (bvcomp32(R8[32:0], 0bv32) == 0bv1); + goto l00000294; + main_basil_return: + assume {:captureState "main_basil_return"} true; return; } diff --git a/src/test/correct/basic_lock_read/clang/basic_lock_read.gts b/src/test/correct/basic_lock_read/clang/basic_lock_read.gts deleted file mode 100644 index 7e254a8ed..000000000 Binary files a/src/test/correct/basic_lock_read/clang/basic_lock_read.gts and /dev/null differ diff --git a/src/test/correct/basic_lock_read/clang/basic_lock_read.md5sum b/src/test/correct/basic_lock_read/clang/basic_lock_read.md5sum new file mode 100644 index 000000000..23209cbbf --- /dev/null +++ b/src/test/correct/basic_lock_read/clang/basic_lock_read.md5sum @@ -0,0 +1,5 @@ +b187d8ad4b25c973912deef04a7e34dd correct/basic_lock_read/clang/a.out +80a8a80489b033ed8aa98c268f3316b4 correct/basic_lock_read/clang/basic_lock_read.adt +73476c60ea74844f7658648d0e86985f correct/basic_lock_read/clang/basic_lock_read.bir +cb0c86f5f56f442cd79f48b23176c9e3 correct/basic_lock_read/clang/basic_lock_read.relf +b44743f1c1825b06e455006eaeae827a correct/basic_lock_read/clang/basic_lock_read.gts diff --git a/src/test/correct/basic_lock_read/clang/basic_lock_read.relf b/src/test/correct/basic_lock_read/clang/basic_lock_read.relf deleted file mode 100644 index 107a001a3..000000000 --- a/src/test/correct/basic_lock_read/clang/basic_lock_read.relf +++ /dev/null @@ -1,124 +0,0 @@ - -Relocation section '.rela.dyn' at offset 0x460 contains 8 entries: - Offset Info Type Symbol's Value Symbol's Name + Addend -0000000000010dc8 0000000000000403 R_AARCH64_RELATIVE 710 -0000000000010dd0 0000000000000403 R_AARCH64_RELATIVE 6c0 -0000000000010fd8 0000000000000403 R_AARCH64_RELATIVE 714 -0000000000011028 0000000000000403 R_AARCH64_RELATIVE 11028 -0000000000010fc0 0000000400000401 R_AARCH64_GLOB_DAT 0000000000000000 _ITM_deregisterTMCloneTable + 0 -0000000000010fc8 0000000500000401 R_AARCH64_GLOB_DAT 0000000000000000 __cxa_finalize@GLIBC_2.17 + 0 -0000000000010fd0 0000000600000401 R_AARCH64_GLOB_DAT 0000000000000000 __gmon_start__ + 0 -0000000000010fe0 0000000800000401 R_AARCH64_GLOB_DAT 0000000000000000 _ITM_registerTMCloneTable + 0 - -Relocation section '.rela.plt' at offset 0x520 contains 4 entries: - Offset Info Type Symbol's Value Symbol's Name + Addend -0000000000011000 0000000300000402 R_AARCH64_JUMP_SLOT 0000000000000000 __libc_start_main@GLIBC_2.34 + 0 -0000000000011008 0000000500000402 R_AARCH64_JUMP_SLOT 0000000000000000 __cxa_finalize@GLIBC_2.17 + 0 -0000000000011010 0000000600000402 R_AARCH64_JUMP_SLOT 0000000000000000 __gmon_start__ + 0 -0000000000011018 0000000700000402 R_AARCH64_JUMP_SLOT 0000000000000000 abort@GLIBC_2.17 + 0 - -Symbol table '.dynsym' contains 9 entries: - Num: Value Size Type Bind Vis Ndx Name - 0: 0000000000000000 0 NOTYPE LOCAL DEFAULT UND - 1: 0000000000000580 0 SECTION LOCAL DEFAULT 11 .init - 2: 0000000000011020 0 SECTION LOCAL DEFAULT 23 .data - 3: 0000000000000000 0 FUNC GLOBAL DEFAULT UND __libc_start_main@GLIBC_2.34 (2) - 4: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_deregisterTMCloneTable - 5: 0000000000000000 0 FUNC WEAK DEFAULT UND __cxa_finalize@GLIBC_2.17 (3) - 6: 0000000000000000 0 NOTYPE WEAK DEFAULT UND __gmon_start__ - 7: 0000000000000000 0 FUNC GLOBAL DEFAULT UND abort@GLIBC_2.17 (3) - 8: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_registerTMCloneTable - -Symbol table '.symtab' contains 91 entries: - Num: Value Size Type Bind Vis Ndx Name - 0: 0000000000000000 0 NOTYPE LOCAL DEFAULT UND - 1: 0000000000000238 0 SECTION LOCAL DEFAULT 1 .interp - 2: 0000000000000254 0 SECTION LOCAL DEFAULT 2 .note.gnu.build-id - 3: 0000000000000278 0 SECTION LOCAL DEFAULT 3 .note.ABI-tag - 4: 0000000000000298 0 SECTION LOCAL DEFAULT 4 .gnu.hash - 5: 00000000000002b8 0 SECTION LOCAL DEFAULT 5 .dynsym - 6: 0000000000000390 0 SECTION LOCAL DEFAULT 6 .dynstr - 7: 000000000000041e 0 SECTION LOCAL DEFAULT 7 .gnu.version - 8: 0000000000000430 0 SECTION LOCAL DEFAULT 8 .gnu.version_r - 9: 0000000000000460 0 SECTION LOCAL DEFAULT 9 .rela.dyn - 10: 0000000000000520 0 SECTION LOCAL DEFAULT 10 .rela.plt - 11: 0000000000000580 0 SECTION LOCAL DEFAULT 11 .init - 12: 00000000000005a0 0 SECTION LOCAL DEFAULT 12 .plt - 13: 0000000000000600 0 SECTION LOCAL DEFAULT 13 .text - 14: 0000000000000758 0 SECTION LOCAL DEFAULT 14 .fini - 15: 000000000000076c 0 SECTION LOCAL DEFAULT 15 .rodata - 16: 0000000000000770 0 SECTION LOCAL DEFAULT 16 .eh_frame_hdr - 17: 00000000000007b0 0 SECTION LOCAL DEFAULT 17 .eh_frame - 18: 0000000000010dc8 0 SECTION LOCAL DEFAULT 18 .init_array - 19: 0000000000010dd0 0 SECTION LOCAL DEFAULT 19 .fini_array - 20: 0000000000010dd8 0 SECTION LOCAL DEFAULT 20 .dynamic - 21: 0000000000010fb8 0 SECTION LOCAL DEFAULT 21 .got - 22: 0000000000010fe8 0 SECTION LOCAL DEFAULT 22 .got.plt - 23: 0000000000011020 0 SECTION LOCAL DEFAULT 23 .data - 24: 0000000000011030 0 SECTION LOCAL DEFAULT 24 .bss - 25: 0000000000000000 0 SECTION LOCAL DEFAULT 25 .comment - 26: 0000000000000000 0 FILE LOCAL DEFAULT ABS Scrt1.o - 27: 0000000000000278 0 NOTYPE LOCAL DEFAULT 3 $d - 28: 0000000000000278 32 OBJECT LOCAL DEFAULT 3 __abi_tag - 29: 0000000000000600 0 NOTYPE LOCAL DEFAULT 13 $x - 30: 00000000000007c4 0 NOTYPE LOCAL DEFAULT 17 $d - 31: 000000000000076c 0 NOTYPE LOCAL DEFAULT 15 $d - 32: 0000000000000000 0 FILE LOCAL DEFAULT ABS crti.o - 33: 0000000000000634 0 NOTYPE LOCAL DEFAULT 13 $x - 34: 0000000000000634 20 FUNC LOCAL DEFAULT 13 call_weak_fn - 35: 0000000000000580 0 NOTYPE LOCAL DEFAULT 11 $x - 36: 0000000000000758 0 NOTYPE LOCAL DEFAULT 14 $x - 37: 0000000000000000 0 FILE LOCAL DEFAULT ABS crtn.o - 38: 0000000000000590 0 NOTYPE LOCAL DEFAULT 11 $x - 39: 0000000000000764 0 NOTYPE LOCAL DEFAULT 14 $x - 40: 0000000000000000 0 FILE LOCAL DEFAULT ABS crtstuff.c - 41: 0000000000000650 0 NOTYPE LOCAL DEFAULT 13 $x - 42: 0000000000000650 0 FUNC LOCAL DEFAULT 13 deregister_tm_clones - 43: 0000000000000680 0 FUNC LOCAL DEFAULT 13 register_tm_clones - 44: 0000000000011028 0 NOTYPE LOCAL DEFAULT 23 $d - 45: 00000000000006c0 0 FUNC LOCAL DEFAULT 13 __do_global_dtors_aux - 46: 0000000000011030 1 OBJECT LOCAL DEFAULT 24 completed.0 - 47: 0000000000010dd0 0 NOTYPE LOCAL DEFAULT 19 $d - 48: 0000000000010dd0 0 OBJECT LOCAL DEFAULT 19 __do_global_dtors_aux_fini_array_entry - 49: 0000000000000710 0 FUNC LOCAL DEFAULT 13 frame_dummy - 50: 0000000000010dc8 0 NOTYPE LOCAL DEFAULT 18 $d - 51: 0000000000010dc8 0 OBJECT LOCAL DEFAULT 18 __frame_dummy_init_array_entry - 52: 00000000000007d8 0 NOTYPE LOCAL DEFAULT 17 $d - 53: 0000000000011030 0 NOTYPE LOCAL DEFAULT 24 $d - 54: 0000000000000000 0 FILE LOCAL DEFAULT ABS basic_lock_read.c - 55: 0000000000000714 0 NOTYPE LOCAL DEFAULT 13 $x.0 - 56: 0000000000011034 0 NOTYPE LOCAL DEFAULT 24 $d.1 - 57: 000000000000002a 0 NOTYPE LOCAL DEFAULT 25 $d.2 - 58: 0000000000000838 0 NOTYPE LOCAL DEFAULT 17 $d.3 - 59: 0000000000000000 0 FILE LOCAL DEFAULT ABS crtstuff.c - 60: 0000000000000864 0 NOTYPE LOCAL DEFAULT 17 $d - 61: 0000000000000864 0 OBJECT LOCAL DEFAULT 17 __FRAME_END__ - 62: 0000000000000000 0 FILE LOCAL DEFAULT ABS - 63: 0000000000010dd8 0 OBJECT LOCAL DEFAULT ABS _DYNAMIC - 64: 0000000000000770 0 NOTYPE LOCAL DEFAULT 16 __GNU_EH_FRAME_HDR - 65: 0000000000010fb8 0 OBJECT LOCAL DEFAULT ABS _GLOBAL_OFFSET_TABLE_ - 66: 00000000000005a0 0 NOTYPE LOCAL DEFAULT 12 $x - 67: 0000000000000000 0 FUNC GLOBAL DEFAULT UND __libc_start_main@GLIBC_2.34 - 68: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_deregisterTMCloneTable - 69: 0000000000011020 0 NOTYPE WEAK DEFAULT 23 data_start - 70: 0000000000011030 0 NOTYPE GLOBAL DEFAULT 24 __bss_start__ - 71: 0000000000000000 0 FUNC WEAK DEFAULT UND __cxa_finalize@GLIBC_2.17 - 72: 0000000000011040 0 NOTYPE GLOBAL DEFAULT 24 _bss_end__ - 73: 0000000000011030 0 NOTYPE GLOBAL DEFAULT 23 _edata - 74: 0000000000011034 4 OBJECT GLOBAL DEFAULT 24 z - 75: 0000000000011038 4 OBJECT GLOBAL DEFAULT 24 x - 76: 0000000000000758 0 FUNC GLOBAL HIDDEN 14 _fini - 77: 0000000000011040 0 NOTYPE GLOBAL DEFAULT 24 __bss_end__ - 78: 0000000000011020 0 NOTYPE GLOBAL DEFAULT 23 __data_start - 79: 0000000000000000 0 NOTYPE WEAK DEFAULT UND __gmon_start__ - 80: 0000000000011028 0 OBJECT GLOBAL HIDDEN 23 __dso_handle - 81: 0000000000000000 0 FUNC GLOBAL DEFAULT UND abort@GLIBC_2.17 - 82: 000000000000076c 4 OBJECT GLOBAL DEFAULT 15 _IO_stdin_used - 83: 0000000000011040 0 NOTYPE GLOBAL DEFAULT 24 _end - 84: 0000000000000600 52 FUNC GLOBAL DEFAULT 13 _start - 85: 0000000000011040 0 NOTYPE GLOBAL DEFAULT 24 __end__ - 86: 0000000000011030 0 NOTYPE GLOBAL DEFAULT 24 __bss_start - 87: 0000000000000714 68 FUNC GLOBAL DEFAULT 13 main - 88: 0000000000011030 0 OBJECT GLOBAL HIDDEN 23 __TMC_END__ - 89: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_registerTMCloneTable - 90: 0000000000000580 0 FUNC GLOBAL HIDDEN 11 _init diff --git a/src/test/correct/basic_lock_read/clang/basic_lock_read_gtirb.expected b/src/test/correct/basic_lock_read/clang/basic_lock_read_gtirb.expected index d983dc7f4..5ea6dfce3 100644 --- a/src/test/correct/basic_lock_read/clang/basic_lock_read_gtirb.expected +++ b/src/test/correct/basic_lock_read/clang/basic_lock_read_gtirb.expected @@ -1,39 +1,26 @@ -var {:extern} CF: bv1; -var {:extern} Gamma_CF: bool; -var {:extern} Gamma_NF: bool; var {:extern} Gamma_R0: bool; -var {:extern} Gamma_R31: bool; var {:extern} Gamma_R8: bool; -var {:extern} Gamma_VF: bool; -var {:extern} Gamma_ZF: bool; var {:extern} Gamma_mem: [bv64]bool; -var {:extern} Gamma_stack: [bv64]bool; -var {:extern} NF: bv1; var {:extern} R0: bv64; -var {:extern} R31: bv64; var {:extern} R8: bv64; -var {:extern} VF: bv1; -var {:extern} ZF: bv1; var {:extern} mem: [bv64]bv8; -var {:extern} stack: [bv64]bv8; const {:extern} $x_addr: bv64; -axiom ($x_addr == 69688bv64); +axiom ($x_addr == 131096bv64); const {:extern} $z_addr: bv64; -axiom ($z_addr == 69684bv64); +axiom ($z_addr == 131092bv64); function {:extern} L(mem$in: [bv64]bv8, index: bv64) returns (bool) { (if (index == $x_addr) then true else (if (index == $z_addr) then true else false)) } -function {:extern} {:bvbuiltin "bvadd"} bvadd32(bv32, bv32) returns (bv32); -function {:extern} {:bvbuiltin "bvadd"} bvadd33(bv33, bv33) returns (bv33); function {:extern} {:bvbuiltin "bvadd"} bvadd64(bv64, bv64) returns (bv64); -function {:extern} {:bvbuiltin "bvcomp"} bvcomp32(bv32, bv32) returns (bv1); -function {:extern} {:bvbuiltin "bvcomp"} bvcomp33(bv33, bv33) returns (bv1); -function {:extern} {:bvbuiltin "bvnot"} bvnot1(bv1) returns (bv1); function {:extern} gamma_load32(gammaMap: [bv64]bool, index: bv64) returns (bool) { (gammaMap[bvadd64(index, 3bv64)] && (gammaMap[bvadd64(index, 2bv64)] && (gammaMap[bvadd64(index, 1bv64)] && gammaMap[index]))) } +function {:extern} gamma_load64(gammaMap: [bv64]bool, index: bv64) returns (bool) { + (gammaMap[bvadd64(index, 7bv64)] && (gammaMap[bvadd64(index, 6bv64)] && (gammaMap[bvadd64(index, 5bv64)] && (gammaMap[bvadd64(index, 4bv64)] && (gammaMap[bvadd64(index, 3bv64)] && (gammaMap[bvadd64(index, 2bv64)] && (gammaMap[bvadd64(index, 1bv64)] && gammaMap[index]))))))) +} + function {:extern} gamma_store32(gammaMap: [bv64]bool, index: bv64, value: bool) returns ([bv64]bool) { gammaMap[index := value][bvadd64(index, 1bv64) := value][bvadd64(index, 2bv64) := value][bvadd64(index, 3bv64) := value] } @@ -50,17 +37,18 @@ function {:extern} memory_store32_le(memory: [bv64]bv8, index: bv64, value: bv32 memory[index := value[8:0]][bvadd64(index, 1bv64) := value[16:8]][bvadd64(index, 2bv64) := value[24:16]][bvadd64(index, 3bv64) := value[32:24]] } -function {:extern} {:bvbuiltin "zero_extend 1"} zero_extend1_32(bv32) returns (bv33); function {:extern} {:bvbuiltin "zero_extend 32"} zero_extend32_32(bv32) returns (bv64); procedure {:extern} rely(); modifies Gamma_mem, mem; ensures (forall i: bv64 :: (((mem[i] == old(mem[i])) ==> (Gamma_mem[i] == old(Gamma_mem[i]))))); ensures ((old(memory_load32_le(mem, $z_addr)) == 0bv32) ==> ((memory_load32_le(mem, $x_addr) == old(memory_load32_le(mem, $x_addr))) && (memory_load32_le(mem, $z_addr) == old(memory_load32_le(mem, $z_addr))))); - free ensures (memory_load32_le(mem, 1900bv64) == 131073bv32); - free ensures (memory_load64_le(mem, 69064bv64) == 1808bv64); - free ensures (memory_load64_le(mem, 69072bv64) == 1728bv64); - free ensures (memory_load64_le(mem, 69592bv64) == 1812bv64); - free ensures (memory_load64_le(mem, 69672bv64) == 69672bv64); + free ensures (memory_load32_le(mem, 2324bv64) == 131073bv32); + free ensures (memory_load64_le(mem, 130424bv64) == 2256bv64); + free ensures (memory_load64_le(mem, 130432bv64) == 2176bv64); + free ensures (memory_load64_le(mem, 131032bv64) == 131092bv64); + free ensures (memory_load64_le(mem, 131040bv64) == 131096bv64); + free ensures (memory_load64_le(mem, 131056bv64) == 2260bv64); + free ensures (memory_load64_le(mem, 131080bv64) == 131080bv64); procedure {:extern} rely_transitive(); modifies Gamma_mem, mem; @@ -87,100 +75,74 @@ implementation {:extern} guarantee_reflexive() assert (memory_load32_le(mem, $z_addr) == memory_load32_le(mem, $z_addr)); } -procedure main_1812(); - modifies CF, Gamma_CF, Gamma_NF, Gamma_R0, Gamma_R31, Gamma_R8, Gamma_VF, Gamma_ZF, Gamma_mem, Gamma_stack, NF, R0, R31, R8, VF, ZF, mem, stack; - free requires (memory_load64_le(mem, 69664bv64) == 0bv64); - free requires (memory_load64_le(mem, 69672bv64) == 69672bv64); - free requires (memory_load32_le(mem, 1900bv64) == 131073bv32); - free requires (memory_load64_le(mem, 69064bv64) == 1808bv64); - free requires (memory_load64_le(mem, 69072bv64) == 1728bv64); - free requires (memory_load64_le(mem, 69592bv64) == 1812bv64); - free requires (memory_load64_le(mem, 69672bv64) == 69672bv64); +procedure main(); + modifies Gamma_R0, Gamma_R8, Gamma_mem, R0, R8, mem; + free requires (memory_load64_le(mem, 131072bv64) == 0bv64); + free requires (memory_load64_le(mem, 131080bv64) == 131080bv64); + free requires (memory_load32_le(mem, 2324bv64) == 131073bv32); + free requires (memory_load64_le(mem, 130424bv64) == 2256bv64); + free requires (memory_load64_le(mem, 130432bv64) == 2176bv64); + free requires (memory_load64_le(mem, 131032bv64) == 131092bv64); + free requires (memory_load64_le(mem, 131040bv64) == 131096bv64); + free requires (memory_load64_le(mem, 131056bv64) == 2260bv64); + free requires (memory_load64_le(mem, 131080bv64) == 131080bv64); ensures (R0[32:0] == 0bv32); - free ensures (Gamma_R31 == old(Gamma_R31)); - free ensures (R31 == old(R31)); - free ensures (memory_load32_le(mem, 1900bv64) == 131073bv32); - free ensures (memory_load64_le(mem, 69064bv64) == 1808bv64); - free ensures (memory_load64_le(mem, 69072bv64) == 1728bv64); - free ensures (memory_load64_le(mem, 69592bv64) == 1812bv64); - free ensures (memory_load64_le(mem, 69672bv64) == 69672bv64); - -implementation main_1812() + free ensures (memory_load32_le(mem, 2324bv64) == 131073bv32); + free ensures (memory_load64_le(mem, 130424bv64) == 2256bv64); + free ensures (memory_load64_le(mem, 130432bv64) == 2176bv64); + free ensures (memory_load64_le(mem, 131032bv64) == 131092bv64); + free ensures (memory_load64_le(mem, 131040bv64) == 131096bv64); + free ensures (memory_load64_le(mem, 131056bv64) == 2260bv64); + free ensures (memory_load64_le(mem, 131080bv64) == 131080bv64); + +implementation main() { - var Cse0__5_2_5: bv32; - var Gamma_Cse0__5_2_5: bool; - var Gamma_load20: bool; - var Gamma_load21: bool; - var Gamma_load22: bool; - var load20: bv32; - var load21: bv32; - var load22: bv32; + var $load0: bv64; + var $load1: bv64; + var $load2: bv32; + var Gamma_$load0: bool; + var Gamma_$load1: bool; + var Gamma_$load2: bool; var z_old: bv32; - main_1812__0__rFLbTMieRHaXyRDy_WM9nA: - assume {:captureState "main_1812__0__rFLbTMieRHaXyRDy_WM9nA"} true; - R31, Gamma_R31 := bvadd64(R31, 18446744073709551600bv64), Gamma_R31; - stack, Gamma_stack := memory_store32_le(stack, bvadd64(R31, 12bv64), 0bv32), gamma_store32(Gamma_stack, bvadd64(R31, 12bv64), true); - assume {:captureState "1816_0"} true; - stack, Gamma_stack := memory_store32_le(stack, bvadd64(R31, 8bv64), 0bv32), gamma_store32(Gamma_stack, bvadd64(R31, 8bv64), true); - assume {:captureState "1820_0"} true; - R8, Gamma_R8 := 69632bv64, true; + $main$__0__$lwyID0MJQb6vgyjzPFtz8Q: + assume {:captureState "$main$__0__$lwyID0MJQb6vgyjzPFtz8Q"} true; + R8, Gamma_R8 := 126976bv64, true; call rely(); - load22, Gamma_load22 := memory_load32_le(mem, bvadd64(R8, 52bv64)), (gamma_load32(Gamma_mem, bvadd64(R8, 52bv64)) || L(mem, bvadd64(R8, 52bv64))); - R8, Gamma_R8 := zero_extend32_32(load22), Gamma_load22; - Cse0__5_2_5, Gamma_Cse0__5_2_5 := bvadd32(R8[32:0], 0bv32), Gamma_R8; - VF, Gamma_VF := bvnot1(bvcomp32(Cse0__5_2_5, Cse0__5_2_5)), Gamma_Cse0__5_2_5; - CF, Gamma_CF := bvnot1(bvcomp33(zero_extend1_32(Cse0__5_2_5), bvadd33(zero_extend1_32(R8[32:0]), 4294967296bv33))), (Gamma_R8 && Gamma_Cse0__5_2_5); - ZF, Gamma_ZF := bvcomp32(Cse0__5_2_5, 0bv32), Gamma_Cse0__5_2_5; - NF, Gamma_NF := Cse0__5_2_5[32:31], Gamma_Cse0__5_2_5; - R8, Gamma_R8 := zero_extend32_32(Cse0__5_2_5), Gamma_Cse0__5_2_5; - assert Gamma_ZF; - goto main_1812__0__rFLbTMieRHaXyRDy_WM9nA$__0, main_1812__0__rFLbTMieRHaXyRDy_WM9nA$__1; - main_1812__0__rFLbTMieRHaXyRDy_WM9nA$__1: - assume {:captureState "main_1812__0__rFLbTMieRHaXyRDy_WM9nA$__1"} true; - assume (!(ZF == 1bv1)); - R8, Gamma_R8 := 1bv64, true; - assert Gamma_R8; - goto main_1812__0__rFLbTMieRHaXyRDy_WM9nA_goto_main_1812__3__cw51Ok56RY~0vRv0O7D67Q, main_1812__0__rFLbTMieRHaXyRDy_WM9nA_goto_main_1812__1__24kG8YkCTZOdLFRKQWWeuQ; - main_1812__0__rFLbTMieRHaXyRDy_WM9nA$__0: - assume {:captureState "main_1812__0__rFLbTMieRHaXyRDy_WM9nA$__0"} true; - assume (ZF == 1bv1); - R8, Gamma_R8 := 0bv64, true; + $load1, Gamma_$load1 := memory_load64_le(mem, bvadd64(R8, 4056bv64)), (gamma_load64(Gamma_mem, bvadd64(R8, 4056bv64)) || L(mem, bvadd64(R8, 4056bv64))); + R8, Gamma_R8 := $load1, Gamma_$load1; + call rely(); + $load2, Gamma_$load2 := memory_load32_le(mem, R8), (gamma_load32(Gamma_mem, R8) || L(mem, R8)); + R8, Gamma_R8 := zero_extend32_32($load2), Gamma_$load2; assert Gamma_R8; - goto main_1812__0__rFLbTMieRHaXyRDy_WM9nA_goto_main_1812__3__cw51Ok56RY~0vRv0O7D67Q, main_1812__0__rFLbTMieRHaXyRDy_WM9nA_goto_main_1812__1__24kG8YkCTZOdLFRKQWWeuQ; - main_1812__0__rFLbTMieRHaXyRDy_WM9nA_goto_main_1812__1__24kG8YkCTZOdLFRKQWWeuQ: - assume {:captureState "main_1812__0__rFLbTMieRHaXyRDy_WM9nA_goto_main_1812__1__24kG8YkCTZOdLFRKQWWeuQ"} true; - assume (!(R8[1:0] == 1bv1)); - goto main_1812__1__24kG8YkCTZOdLFRKQWWeuQ; - main_1812__1__24kG8YkCTZOdLFRKQWWeuQ: - assume {:captureState "main_1812__1__24kG8YkCTZOdLFRKQWWeuQ"} true; - goto main_1812__2__Uq6ddtMrQtqVC9c4DWnGkw; - main_1812__2__Uq6ddtMrQtqVC9c4DWnGkw: - assume {:captureState "main_1812__2__Uq6ddtMrQtqVC9c4DWnGkw"} true; - R8, Gamma_R8 := 69632bv64, true; + goto $main$__0__$lwyID0MJQb6vgyjzPFtz8Q_goto_$main$__2__$SFN4dpBgSO2bPUu0fyDluw, $main$__0__$lwyID0MJQb6vgyjzPFtz8Q_goto_$main$__1__$TxTRm4kpQiq_Xgistx~xbQ; + $main$__1__$TxTRm4kpQiq_Xgistx~xbQ: + assume {:captureState "$main$__1__$TxTRm4kpQiq_Xgistx~xbQ"} true; + R0, Gamma_R0 := 0bv64, true; + goto main_basil_return; + $main$__2__$SFN4dpBgSO2bPUu0fyDluw: + assume {:captureState "$main$__2__$SFN4dpBgSO2bPUu0fyDluw"} true; + R8, Gamma_R8 := 126976bv64, true; + call rely(); + $load0, Gamma_$load0 := memory_load64_le(mem, bvadd64(R8, 4064bv64)), (gamma_load64(Gamma_mem, bvadd64(R8, 4064bv64)) || L(mem, bvadd64(R8, 4064bv64))); + R8, Gamma_R8 := $load0, Gamma_$load0; call rely(); + assert (L(mem, R8) ==> true); z_old := memory_load32_le(mem, $z_addr); - assert (L(mem, bvadd64(R8, 56bv64)) ==> true); - mem, Gamma_mem := memory_store32_le(mem, bvadd64(R8, 56bv64), 0bv32), gamma_store32(Gamma_mem, bvadd64(R8, 56bv64), true); + mem, Gamma_mem := memory_store32_le(mem, R8, 0bv32), gamma_store32(Gamma_mem, R8, true); assert (memory_load32_le(mem, $z_addr) == z_old); - assume {:captureState "1852_0"} true; - call rely(); - load20, Gamma_load20 := memory_load32_le(mem, bvadd64(R8, 56bv64)), (gamma_load32(Gamma_mem, bvadd64(R8, 56bv64)) || L(mem, bvadd64(R8, 56bv64))); - R8, Gamma_R8 := zero_extend32_32(load20), Gamma_load20; - stack, Gamma_stack := memory_store32_le(stack, bvadd64(R31, 8bv64), R8[32:0]), gamma_store32(Gamma_stack, bvadd64(R31, 8bv64), Gamma_R8); - assume {:captureState "1860_0"} true; - goto main_1812__3__cw51Ok56RY~0vRv0O7D67Q; - main_1812__0__rFLbTMieRHaXyRDy_WM9nA_goto_main_1812__3__cw51Ok56RY~0vRv0O7D67Q: - assume {:captureState "main_1812__0__rFLbTMieRHaXyRDy_WM9nA_goto_main_1812__3__cw51Ok56RY~0vRv0O7D67Q"} true; - assume (R8[1:0] == 1bv1); - goto main_1812__3__cw51Ok56RY~0vRv0O7D67Q; - main_1812__3__cw51Ok56RY~0vRv0O7D67Q: - assume {:captureState "main_1812__3__cw51Ok56RY~0vRv0O7D67Q"} true; - load21, Gamma_load21 := memory_load32_le(stack, bvadd64(R31, 8bv64)), gamma_load32(Gamma_stack, bvadd64(R31, 8bv64)); - R0, Gamma_R0 := zero_extend32_32(load21), Gamma_load21; - R31, Gamma_R31 := bvadd64(R31, 16bv64), Gamma_R31; - goto main_1812_basil_return; - main_1812_basil_return: - assume {:captureState "main_1812_basil_return"} true; + assume {:captureState "2292$0"} true; + R0, Gamma_R0 := 0bv64, true; + goto main_basil_return; + $main$__0__$lwyID0MJQb6vgyjzPFtz8Q_goto_$main$__2__$SFN4dpBgSO2bPUu0fyDluw: + assume {:captureState "$main$__0__$lwyID0MJQb6vgyjzPFtz8Q_goto_$main$__2__$SFN4dpBgSO2bPUu0fyDluw"} true; + assume (R8[32:0] == 0bv32); + goto $main$__2__$SFN4dpBgSO2bPUu0fyDluw; + $main$__0__$lwyID0MJQb6vgyjzPFtz8Q_goto_$main$__1__$TxTRm4kpQiq_Xgistx~xbQ: + assume {:captureState "$main$__0__$lwyID0MJQb6vgyjzPFtz8Q_goto_$main$__1__$TxTRm4kpQiq_Xgistx~xbQ"} true; + assume (!(R8[32:0] == 0bv32)); + goto $main$__1__$TxTRm4kpQiq_Xgistx~xbQ; + main_basil_return: + assume {:captureState "main_basil_return"} true; return; } diff --git a/src/test/correct/basic_lock_read/clang_O2/basic_lock_read.adt b/src/test/correct/basic_lock_read/clang_O2/basic_lock_read.adt deleted file mode 100644 index c2301f7b2..000000000 --- a/src/test/correct/basic_lock_read/clang_O2/basic_lock_read.adt +++ /dev/null @@ -1,505 +0,0 @@ -Project(Attrs([Attr("filename","\"clang_O2/basic_lock_read.out\""), -Attr("image-specification","(declare abi (name str))\n(declare arch (name str))\n(declare base-address (addr int))\n(declare bias (off int))\n(declare bits (size int))\n(declare code-region (addr int) (size int) (off int))\n(declare code-start (addr int))\n(declare entry-point (addr int))\n(declare external-reference (addr int) (name str))\n(declare format (name str))\n(declare is-executable (flag bool))\n(declare is-little-endian (flag bool))\n(declare llvm:base-address (addr int))\n(declare llvm:code-entry (name str) (off int) (size int))\n(declare llvm:coff-import-library (name str))\n(declare llvm:coff-virtual-section-header (name str) (addr int) (size int))\n(declare llvm:elf-program-header (name str) (off int) (size int))\n(declare llvm:elf-program-header-flags (name str) (ld bool) (r bool) \n (w bool) (x bool))\n(declare llvm:elf-virtual-program-header (name str) (addr int) (size int))\n(declare llvm:entry-point (addr int))\n(declare llvm:macho-symbol (name str) (value int))\n(declare llvm:name-reference (at int) (name str))\n(declare llvm:relocation (at int) (addr int))\n(declare llvm:section-entry (name str) (addr int) (size int) (off int))\n(declare llvm:section-flags (name str) (r bool) (w bool) (x bool))\n(declare llvm:segment-command (name str) (off int) (size int))\n(declare llvm:segment-command-flags (name str) (r bool) (w bool) (x bool))\n(declare llvm:symbol-entry (name str) (addr int) (size int) (off int)\n (value int))\n(declare llvm:virtual-segment-command (name str) (addr int) (size int))\n(declare mapped (addr int) (size int) (off int))\n(declare named-region (addr int) (size int) (name str))\n(declare named-symbol (addr int) (name str))\n(declare require (name str))\n(declare section (addr int) (size int))\n(declare segment (addr int) (size int) (r bool) (w bool) (x bool))\n(declare subarch (name str))\n(declare symbol-chunk (addr int) (size int) (root int))\n(declare symbol-value (addr int) (value int))\n(declare system (name str))\n(declare vendor (name str))\n\n(abi unknown)\n(arch aarch64)\n(base-address 0)\n(bias 0)\n(bits 64)\n(code-region 1848 20 1848)\n(code-region 1536 312 1536)\n(code-region 1440 96 1440)\n(code-region 1408 24 1408)\n(code-start 1588)\n(code-start 1536)\n(code-start 1812)\n(entry-point 1536)\n(external-reference 69568 _ITM_deregisterTMCloneTable)\n(external-reference 69576 __cxa_finalize)\n(external-reference 69584 __gmon_start__)\n(external-reference 69600 _ITM_registerTMCloneTable)\n(external-reference 69632 __libc_start_main)\n(external-reference 69640 __cxa_finalize)\n(external-reference 69648 __gmon_start__)\n(external-reference 69656 abort)\n(format elf)\n(is-executable true)\n(is-little-endian true)\n(llvm:base-address 0)\n(llvm:code-entry abort 0 0)\n(llvm:code-entry __cxa_finalize 0 0)\n(llvm:code-entry __libc_start_main 0 0)\n(llvm:code-entry _init 1408 0)\n(llvm:code-entry main 1812 36)\n(llvm:code-entry _start 1536 52)\n(llvm:code-entry abort@GLIBC_2.17 0 0)\n(llvm:code-entry _fini 1848 0)\n(llvm:code-entry __cxa_finalize@GLIBC_2.17 0 0)\n(llvm:code-entry __libc_start_main@GLIBC_2.34 0 0)\n(llvm:code-entry frame_dummy 1808 0)\n(llvm:code-entry __do_global_dtors_aux 1728 0)\n(llvm:code-entry register_tm_clones 1664 0)\n(llvm:code-entry deregister_tm_clones 1616 0)\n(llvm:code-entry call_weak_fn 1588 20)\n(llvm:code-entry .fini 1848 20)\n(llvm:code-entry .text 1536 312)\n(llvm:code-entry .plt 1440 96)\n(llvm:code-entry .init 1408 24)\n(llvm:elf-program-header 08 3528 568)\n(llvm:elf-program-header 07 0 0)\n(llvm:elf-program-header 06 1872 60)\n(llvm:elf-program-header 05 596 68)\n(llvm:elf-program-header 04 3544 480)\n(llvm:elf-program-header 03 3528 616)\n(llvm:elf-program-header 02 0 2116)\n(llvm:elf-program-header 01 568 27)\n(llvm:elf-program-header 00 64 504)\n(llvm:elf-program-header-flags 08 false true false false)\n(llvm:elf-program-header-flags 07 false true true false)\n(llvm:elf-program-header-flags 06 false true false false)\n(llvm:elf-program-header-flags 05 false true false false)\n(llvm:elf-program-header-flags 04 false true true false)\n(llvm:elf-program-header-flags 03 true true true false)\n(llvm:elf-program-header-flags 02 true true false true)\n(llvm:elf-program-header-flags 01 false true false false)\n(llvm:elf-program-header-flags 00 false true false false)\n(llvm:elf-virtual-program-header 08 69064 568)\n(llvm:elf-virtual-program-header 07 0 0)\n(llvm:elf-virtual-program-header 06 1872 60)\n(llvm:elf-virtual-program-header 05 596 68)\n(llvm:elf-virtual-program-header 04 69080 480)\n(llvm:elf-virtual-program-header 03 69064 632)\n(llvm:elf-virtual-program-header 02 0 2116)\n(llvm:elf-virtual-program-header 01 568 27)\n(llvm:elf-virtual-program-header 00 64 504)\n(llvm:entry-point 1536)\n(llvm:name-reference 69656 abort)\n(llvm:name-reference 69648 __gmon_start__)\n(llvm:name-reference 69640 __cxa_finalize)\n(llvm:name-reference 69632 __libc_start_main)\n(llvm:name-reference 69600 _ITM_registerTMCloneTable)\n(llvm:name-reference 69584 __gmon_start__)\n(llvm:name-reference 69576 __cxa_finalize)\n(llvm:name-reference 69568 _ITM_deregisterTMCloneTable)\n(llvm:section-entry .shstrtab 0 259 6973)\n(llvm:section-entry .strtab 0 573 6400)\n(llvm:section-entry .symtab 0 2184 4216)\n(llvm:section-entry .comment 0 71 4144)\n(llvm:section-entry .bss 69680 16 4144)\n(llvm:section-entry .data 69664 16 4128)\n(llvm:section-entry .got.plt 69608 56 4072)\n(llvm:section-entry .got 69560 48 4024)\n(llvm:section-entry .dynamic 69080 480 3544)\n(llvm:section-entry .fini_array 69072 8 3536)\n(llvm:section-entry .init_array 69064 8 3528)\n(llvm:section-entry .eh_frame 1936 180 1936)\n(llvm:section-entry .eh_frame_hdr 1872 60 1872)\n(llvm:section-entry .rodata 1868 4 1868)\n(llvm:section-entry .fini 1848 20 1848)\n(llvm:section-entry .text 1536 312 1536)\n(llvm:section-entry .plt 1440 96 1440)\n(llvm:section-entry .init 1408 24 1408)\n(llvm:section-entry .rela.plt 1312 96 1312)\n(llvm:section-entry .rela.dyn 1120 192 1120)\n(llvm:section-entry .gnu.version_r 1072 48 1072)\n(llvm:section-entry .gnu.version 1054 18 1054)\n(llvm:section-entry .dynstr 912 141 912)\n(llvm:section-entry .dynsym 696 216 696)\n(llvm:section-entry .gnu.hash 664 28 664)\n(llvm:section-entry .note.ABI-tag 632 32 632)\n(llvm:section-entry .note.gnu.build-id 596 36 596)\n(llvm:section-entry .interp 568 27 568)\n(llvm:section-flags .shstrtab true false false)\n(llvm:section-flags .strtab true false false)\n(llvm:section-flags .symtab true false false)\n(llvm:section-flags .comment true false false)\n(llvm:section-flags .bss true true false)\n(llvm:section-flags .data true true false)\n(llvm:section-flags .got.plt true true false)\n(llvm:section-flags .got true true false)\n(llvm:section-flags .dynamic true true false)\n(llvm:section-flags .fini_array true true false)\n(llvm:section-flags .init_array true true false)\n(llvm:section-flags .eh_frame true false false)\n(llvm:section-flags .eh_frame_hdr true false false)\n(llvm:section-flags .rodata true false false)\n(llvm:section-flags .fini true false true)\n(llvm:section-flags .text true false true)\n(llvm:section-flags .plt true false true)\n(llvm:section-flags .init true false true)\n(llvm:section-flags .rela.plt true false false)\n(llvm:section-flags .rela.dyn true false false)\n(llvm:section-flags .gnu.version_r true false false)\n(llvm:section-flags .gnu.version true false false)\n(llvm:section-flags .dynstr true false false)\n(llvm:section-flags .dynsym true false false)\n(llvm:section-flags .gnu.hash true false false)\n(llvm:section-flags .note.ABI-tag true false false)\n(llvm:section-flags .note.gnu.build-id true false false)\n(llvm:section-flags .interp true false false)\n(llvm:symbol-entry abort 0 0 0 0)\n(llvm:symbol-entry __cxa_finalize 0 0 0 0)\n(llvm:symbol-entry __libc_start_main 0 0 0 0)\n(llvm:symbol-entry _init 1408 0 1408 1408)\n(llvm:symbol-entry main 1812 36 1812 1812)\n(llvm:symbol-entry _start 1536 52 1536 1536)\n(llvm:symbol-entry abort@GLIBC_2.17 0 0 0 0)\n(llvm:symbol-entry _fini 1848 0 1848 1848)\n(llvm:symbol-entry __cxa_finalize@GLIBC_2.17 0 0 0 0)\n(llvm:symbol-entry __libc_start_main@GLIBC_2.34 0 0 0 0)\n(llvm:symbol-entry frame_dummy 1808 0 1808 1808)\n(llvm:symbol-entry __do_global_dtors_aux 1728 0 1728 1728)\n(llvm:symbol-entry register_tm_clones 1664 0 1664 1664)\n(llvm:symbol-entry deregister_tm_clones 1616 0 1616 1616)\n(llvm:symbol-entry call_weak_fn 1588 20 1588 1588)\n(mapped 0 2116 0)\n(mapped 69064 616 3528)\n(named-region 0 2116 02)\n(named-region 69064 632 03)\n(named-region 568 27 .interp)\n(named-region 596 36 .note.gnu.build-id)\n(named-region 632 32 .note.ABI-tag)\n(named-region 664 28 .gnu.hash)\n(named-region 696 216 .dynsym)\n(named-region 912 141 .dynstr)\n(named-region 1054 18 .gnu.version)\n(named-region 1072 48 .gnu.version_r)\n(named-region 1120 192 .rela.dyn)\n(named-region 1312 96 .rela.plt)\n(named-region 1408 24 .init)\n(named-region 1440 96 .plt)\n(named-region 1536 312 .text)\n(named-region 1848 20 .fini)\n(named-region 1868 4 .rodata)\n(named-region 1872 60 .eh_frame_hdr)\n(named-region 1936 180 .eh_frame)\n(named-region 69064 8 .init_array)\n(named-region 69072 8 .fini_array)\n(named-region 69080 480 .dynamic)\n(named-region 69560 48 .got)\n(named-region 69608 56 .got.plt)\n(named-region 69664 16 .data)\n(named-region 69680 16 .bss)\n(named-region 0 71 .comment)\n(named-region 0 2184 .symtab)\n(named-region 0 573 .strtab)\n(named-region 0 259 .shstrtab)\n(named-symbol 1588 call_weak_fn)\n(named-symbol 1616 deregister_tm_clones)\n(named-symbol 1664 register_tm_clones)\n(named-symbol 1728 __do_global_dtors_aux)\n(named-symbol 1808 frame_dummy)\n(named-symbol 0 __libc_start_main@GLIBC_2.34)\n(named-symbol 0 __cxa_finalize@GLIBC_2.17)\n(named-symbol 1848 _fini)\n(named-symbol 0 abort@GLIBC_2.17)\n(named-symbol 1536 _start)\n(named-symbol 1812 main)\n(named-symbol 1408 _init)\n(named-symbol 0 __libc_start_main)\n(named-symbol 0 __cxa_finalize)\n(named-symbol 0 abort)\n(require libc.so.6)\n(section 568 27)\n(section 596 36)\n(section 632 32)\n(section 664 28)\n(section 696 216)\n(section 912 141)\n(section 1054 18)\n(section 1072 48)\n(section 1120 192)\n(section 1312 96)\n(section 1408 24)\n(section 1440 96)\n(section 1536 312)\n(section 1848 20)\n(section 1868 4)\n(section 1872 60)\n(section 1936 180)\n(section 69064 8)\n(section 69072 8)\n(section 69080 480)\n(section 69560 48)\n(section 69608 56)\n(section 69664 16)\n(section 69680 16)\n(section 0 71)\n(section 0 2184)\n(section 0 573)\n(section 0 259)\n(segment 0 2116 true false true)\n(segment 69064 632 true true false)\n(subarch v8)\n(symbol-chunk 1588 20 1588)\n(symbol-chunk 1536 52 1536)\n(symbol-chunk 1812 36 1812)\n(symbol-value 1588 1588)\n(symbol-value 1616 1616)\n(symbol-value 1664 1664)\n(symbol-value 1728 1728)\n(symbol-value 1808 1808)\n(symbol-value 1848 1848)\n(symbol-value 1536 1536)\n(symbol-value 1812 1812)\n(symbol-value 1408 1408)\n(symbol-value 0 0)\n(system \"\")\n(vendor \"\")\n"), -Attr("abi-name","\"aarch64-linux-gnu-elf\"")]), -Sections([Section(".shstrtab", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x00\x06\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x1c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x38\x00\x09\x00\x40\x00\x1d\x00\x1c\x00\x06\x00\x00\x00\x04\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x04\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x44\x08\x00\x00\x00\x00\x00\x00\x44\x08\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x01\x00\x00\x00\x06\x00\x00\x00\xc8\x0d\x00\x00\x00\x00\x00\x00\xc8\x0d\x01\x00\x00\x00\x00\x00\xc8\x0d\x01"), -Section(".strtab", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x00\x06\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x1c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x38\x00\x09\x00\x40\x00\x1d\x00\x1c\x00\x06\x00\x00\x00\x04\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x04\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x44\x08\x00\x00\x00\x00\x00\x00\x44\x08\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x01\x00\x00\x00\x06\x00\x00\x00\xc8\x0d\x00\x00\x00\x00\x00\x00\xc8\x0d\x01\x00\x00\x00\x00\x00\xc8\x0d\x01\x00\x00\x00\x00\x00\x68\x02\x00\x00\x00\x00\x00\x00\x78\x02\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x02\x00\x00\x00\x06\x00\x00\x00\xd8\x0d\x00\x00\x00\x00\x00\x00\xd8\x0d\x01\x00\x00\x00\x00\x00\xd8\x0d\x01\x00\x00\x00\x00\x00\xe0\x01\x00\x00\x00\x00\x00\x00\xe0\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x04\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x50\xe5\x74\x64\x04\x00\x00\x00\x50\x07\x00\x00\x00\x00\x00\x00\x50\x07\x00\x00\x00\x00\x00\x00\x50\x07\x00\x00\x00\x00\x00\x00\x3c\x00\x00\x00\x00\x00\x00\x00\x3c\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x51\xe5\x74\x64\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x52\xe5\x74\x64\x04\x00\x00\x00\xc8\x0d\x00\x00\x00\x00\x00\x00\xc8\x0d\x01\x00\x00\x00\x00\x00\xc8\x0d\x01\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x2f\x6c\x69\x62\x2f"), -Section(".comment", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x00\x06\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x1c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x38\x00\x09\x00\x40\x00\x1d\x00\x1c\x00\x06\x00\x00\x00\x04\x00\x00"), -Section(".interp", 0x238, "\x2f\x6c\x69\x62\x2f\x6c\x64\x2d\x6c\x69\x6e\x75\x78\x2d\x61\x61\x72\x63\x68\x36\x34\x2e\x73\x6f\x2e\x31\x00"), -Section(".note.gnu.build-id", 0x254, "\x04\x00\x00\x00\x14\x00\x00\x00\x03\x00\x00\x00\x47\x4e\x55\x00\xaf\x39\xa3\x73\xcb\x4e\x29\xf0\xf1\x54\x34\x18\x80\xe7\x2f\xd6\x6e\x5b\xe3\xe3"), -Section(".note.ABI-tag", 0x278, "\x04\x00\x00\x00\x10\x00\x00\x00\x01\x00\x00\x00\x47\x4e\x55\x00\x00\x00\x00\x00\x03\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00"), -Section(".gnu.hash", 0x298, "\x01\x00\x00\x00\x01\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".dynsym", 0x2B8, "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x0b\x00\x80\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x17\x00\x20\x10\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x48\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x22\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x22\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x73\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".dynstr", 0x390, "\x00\x5f\x5f\x63\x78\x61\x5f\x66\x69\x6e\x61\x6c\x69\x7a\x65\x00\x5f\x5f\x6c\x69\x62\x63\x5f\x73\x74\x61\x72\x74\x5f\x6d\x61\x69\x6e\x00\x61\x62\x6f\x72\x74\x00\x6c\x69\x62\x63\x2e\x73\x6f\x2e\x36\x00\x47\x4c\x49\x42\x43\x5f\x32\x2e\x31\x37\x00\x47\x4c\x49\x42\x43\x5f\x32\x2e\x33\x34\x00\x5f\x49\x54\x4d\x5f\x64\x65\x72\x65\x67\x69\x73\x74\x65\x72\x54\x4d\x43\x6c\x6f\x6e\x65\x54\x61\x62\x6c\x65\x00\x5f\x5f\x67\x6d\x6f\x6e\x5f\x73\x74\x61\x72\x74\x5f\x5f\x00\x5f\x49\x54\x4d\x5f\x72\x65\x67\x69\x73\x74\x65\x72\x54\x4d\x43\x6c\x6f\x6e\x65\x54\x61\x62\x6c\x65\x00"), -Section(".gnu.version", 0x41E, "\x00\x00\x00\x00\x00\x00\x02\x00\x01\x00\x03\x00\x01\x00\x03\x00\x01\x00"), -Section(".gnu.version_r", 0x430, "\x01\x00\x02\x00\x28\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x97\x91\x96\x06\x00\x00\x03\x00\x32\x00\x00\x00\x10\x00\x00\x00\xb4\x91\x96\x06\x00\x00\x02\x00\x3d\x00\x00\x00\x00\x00\x00\x00"), -Section(".rela.dyn", 0x460, "\xc8\x0d\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x10\x07\x00\x00\x00\x00\x00\x00\xd0\x0d\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\xc0\x06\x00\x00\x00\x00\x00\x00\xd8\x0f\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x14\x07\x00\x00\x00\x00\x00\x00\x28\x10\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x28\x10\x01\x00\x00\x00\x00\x00\xc0\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xc8\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xd0\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe0\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".rela.plt", 0x520, "\x00\x10\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x08\x10\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x10\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x18\x10\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".init", 0x580, "\x1f\x20\x03\xd5\xfd\x7b\xbf\xa9\xfd\x03\x00\x91\x2a\x00\x00\x94\xfd\x7b\xc1\xa8\xc0\x03\x5f\xd6"), -Section(".plt", 0x5A0, "\xf0\x7b\xbf\xa9\x90\x00\x00\x90\x11\xfe\x47\xf9\x10\xe2\x3f\x91\x20\x02\x1f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x90\x00\x00\xb0\x11\x02\x40\xf9\x10\x02\x00\x91\x20\x02\x1f\xd6\x90\x00\x00\xb0\x11\x06\x40\xf9\x10\x22\x00\x91\x20\x02\x1f\xd6\x90\x00\x00\xb0\x11\x0a\x40\xf9\x10\x42\x00\x91\x20\x02\x1f\xd6\x90\x00\x00\xb0\x11\x0e\x40\xf9\x10\x62\x00\x91\x20\x02\x1f\xd6"), -Section(".text", 0x600, "\x1f\x20\x03\xd5\x1d\x00\x80\xd2\x1e\x00\x80\xd2\xe5\x03\x00\xaa\xe1\x03\x40\xf9\xe2\x23\x00\x91\xe6\x03\x00\x91\x80\x00\x00\x90\x00\xec\x47\xf9\x03\x00\x80\xd2\x04\x00\x80\xd2\xe5\xff\xff\x97\xf0\xff\xff\x97\x80\x00\x00\x90\x00\xe8\x47\xf9\x40\x00\x00\xb4\xe8\xff\xff\x17\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x80\x00\x00\xb0\x00\xc0\x00\x91\x81\x00\x00\xb0\x21\xc0\x00\x91\x3f\x00\x00\xeb\xc0\x00\x00\x54\x81\x00\x00\x90\x21\xe0\x47\xf9\x61\x00\x00\xb4\xf0\x03\x01\xaa\x00\x02\x1f\xd6\xc0\x03\x5f\xd6\x80\x00\x00\xb0\x00\xc0\x00\x91\x81\x00\x00\xb0\x21\xc0\x00\x91\x21\x00\x00\xcb\x22\xfc\x7f\xd3\x41\x0c\x81\x8b\x21\xfc\x41\x93\xc1\x00\x00\xb4\x82\x00\x00\x90\x42\xf0\x47\xf9\x62\x00\x00\xb4\xf0\x03\x02\xaa\x00\x02\x1f\xd6\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\xfd\x7b\xbe\xa9\xfd\x03\x00\x91\xf3\x0b\x00\xf9\x93\x00\x00\xb0\x60\xc2\x40\x39\x40\x01\x00\x35\x80\x00\x00\x90\x00\xe4\x47\xf9\x80\x00\x00\xb4\x80\x00\x00\xb0\x00\x14\x40\xf9\xb9\xff\xff\x97\xd8\xff\xff\x97\x20\x00\x80\x52\x60\xc2\x00\x39\xf3\x0b\x40\xf9\xfd\x7b\xc2\xa8\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\xdc\xff\xff\x17\x88\x00\x00\xb0\x08\x35\x40\xb9\x68\x00\x00\x34\xe0\x03\x1f\x2a\xc0\x03\x5f\xd6\x88\x00\x00\xb0\x1f\x39\x00\xb9\xe0\x03\x1f\x2a\xc0\x03\x5f\xd6"), -Section(".fini", 0x738, "\x1f\x20\x03\xd5\xfd\x7b\xbf\xa9\xfd\x03\x00\x91\xfd\x7b\xc1\xa8\xc0\x03\x5f\xd6"), -Section(".rodata", 0x74C, "\x01\x00\x02\x00"), -Section(".eh_frame_hdr", 0x750, "\x01\x1b\x03\x3b\x3c\x00\x00\x00\x06\x00\x00\x00\xb0\xfe\xff\xff\x54\x00\x00\x00\x00\xff\xff\xff\x68\x00\x00\x00\x30\xff\xff\xff\x7c\x00\x00\x00\x70\xff\xff\xff\x90\x00\x00\x00\xc0\xff\xff\xff\xb4\x00\x00\x00\xc4\xff\xff\xff\xdc\x00\x00\x00"), -Section(".eh_frame", 0x790, "\x10\x00\x00\x00\x00\x00\x00\x00\x01\x7a\x52\x00\x04\x78\x1e\x01\x1b\x0c\x1f\x00\x10\x00\x00\x00\x18\x00\x00\x00\x54\xfe\xff\xff\x34\x00\x00\x00\x00\x41\x07\x1e\x10\x00\x00\x00\x2c\x00\x00\x00\x90\xfe\xff\xff\x30\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x40\x00\x00\x00\xac\xfe\xff\xff\x3c\x00\x00\x00\x00\x00\x00\x00\x20\x00\x00\x00\x54\x00\x00\x00\xd8\xfe\xff\xff\x48\x00\x00\x00\x00\x41\x0e\x20\x9d\x04\x9e\x03\x42\x93\x02\x4e\xde\xdd\xd3\x0e\x00\x00\x00\x00\x10\x00\x00\x00\x78\x00\x00\x00\x04\xff\xff\xff\x04\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x01\x7a\x52\x00\x01\x7c\x1e\x01\x1b\x0c\x1f\x00\x10\x00\x00\x00\x18\x00\x00\x00\xe0\xfe\xff\xff\x24\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".fini_array", 0x10DD0, "\xc0\x06\x00\x00\x00\x00\x00\x00"), -Section(".dynamic", 0x10DD8, "\x01\x00\x00\x00\x00\x00\x00\x00\x28\x00\x00\x00\x00\x00\x00\x00\x0c\x00\x00\x00\x00\x00\x00\x00\x80\x05\x00\x00\x00\x00\x00\x00\x0d\x00\x00\x00\x00\x00\x00\x00\x38\x07\x00\x00\x00\x00\x00\x00\x19\x00\x00\x00\x00\x00\x00\x00\xc8\x0d\x01\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x1a\x00\x00\x00\x00\x00\x00\x00\xd0\x0d\x01\x00\x00\x00\x00\x00\x1c\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\xf5\xfe\xff\x6f\x00\x00\x00\x00\x98\x02\x00\x00\x00\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x90\x03\x00\x00\x00\x00\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\xb8\x02\x00\x00\x00\x00\x00\x00\x0a\x00\x00\x00\x00\x00\x00\x00\x8d\x00\x00\x00\x00\x00\x00\x00\x0b\x00\x00\x00\x00\x00\x00\x00\x18\x00\x00\x00\x00\x00\x00\x00\x15\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\xe8\x0f\x01\x00\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x60\x00\x00\x00\x00\x00\x00\x00\x14\x00\x00\x00\x00\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x17\x00\x00\x00\x00\x00\x00\x00\x20\x05\x00\x00\x00\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x60\x04\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\xc0\x00\x00\x00\x00\x00\x00\x00\x09\x00\x00\x00\x00\x00\x00\x00\x18\x00\x00\x00\x00\x00\x00\x00\xfb\xff\xff\x6f\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\xfe\xff\xff\x6f\x00\x00\x00\x00\x30\x04\x00\x00\x00\x00\x00\x00\xff\xff\xff\x6f\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\xf0\xff\xff\x6f\x00\x00\x00\x00\x1e\x04\x00\x00\x00\x00\x00\x00\xf9\xff\xff\x6f\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".init_array", 0x10DC8, "\x10\x07\x00\x00\x00\x00\x00\x00"), -Section(".got", 0x10FB8, "\xd8\x0d\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x14\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".got.plt", 0x10FE8, "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xa0\x05\x00\x00\x00\x00\x00\x00\xa0\x05\x00\x00\x00\x00\x00\x00\xa0\x05\x00\x00\x00\x00\x00\x00\xa0\x05\x00\x00\x00\x00\x00\x00"), -Section(".data", 0x11020, "\x00\x00\x00\x00\x00\x00\x00\x00\x28\x10\x01\x00\x00\x00\x00\x00")]), -Memmap([Annotation(Region(0x0,0x843), Attr("segment","02 0 2116")), -Annotation(Region(0x600,0x633), Attr("symbol","\"_start\"")), -Annotation(Region(0x0,0x102), Attr("section","\".shstrtab\"")), -Annotation(Region(0x0,0x23C), Attr("section","\".strtab\"")), -Annotation(Region(0x0,0x46), Attr("section","\".comment\"")), -Annotation(Region(0x238,0x252), Attr("section","\".interp\"")), -Annotation(Region(0x254,0x277), Attr("section","\".note.gnu.build-id\"")), -Annotation(Region(0x278,0x297), Attr("section","\".note.ABI-tag\"")), -Annotation(Region(0x298,0x2B3), Attr("section","\".gnu.hash\"")), -Annotation(Region(0x2B8,0x38F), Attr("section","\".dynsym\"")), -Annotation(Region(0x390,0x41C), Attr("section","\".dynstr\"")), -Annotation(Region(0x41E,0x42F), Attr("section","\".gnu.version\"")), -Annotation(Region(0x430,0x45F), Attr("section","\".gnu.version_r\"")), -Annotation(Region(0x460,0x51F), Attr("section","\".rela.dyn\"")), -Annotation(Region(0x520,0x57F), Attr("section","\".rela.plt\"")), -Annotation(Region(0x580,0x597), Attr("section","\".init\"")), -Annotation(Region(0x5A0,0x5FF), Attr("section","\".plt\"")), -Annotation(Region(0x580,0x597), Attr("code-region","()")), -Annotation(Region(0x5A0,0x5FF), Attr("code-region","()")), -Annotation(Region(0x600,0x633), Attr("symbol-info","_start 0x600 52")), -Annotation(Region(0x634,0x647), Attr("symbol","\"call_weak_fn\"")), -Annotation(Region(0x634,0x647), Attr("symbol-info","call_weak_fn 0x634 20")), -Annotation(Region(0x600,0x737), Attr("section","\".text\"")), -Annotation(Region(0x600,0x737), Attr("code-region","()")), -Annotation(Region(0x714,0x737), Attr("symbol","\"main\"")), -Annotation(Region(0x714,0x737), Attr("symbol-info","main 0x714 36")), -Annotation(Region(0x738,0x74B), Attr("section","\".fini\"")), -Annotation(Region(0x738,0x74B), Attr("code-region","()")), -Annotation(Region(0x74C,0x74F), Attr("section","\".rodata\"")), -Annotation(Region(0x750,0x78B), Attr("section","\".eh_frame_hdr\"")), -Annotation(Region(0x790,0x843), Attr("section","\".eh_frame\"")), -Annotation(Region(0x10DC8,0x1102F), Attr("segment","03 0x10DC8 632")), -Annotation(Region(0x10DD0,0x10DD7), Attr("section","\".fini_array\"")), -Annotation(Region(0x10DD8,0x10FB7), Attr("section","\".dynamic\"")), -Annotation(Region(0x10DC8,0x10DCF), Attr("section","\".init_array\"")), -Annotation(Region(0x10FB8,0x10FE7), Attr("section","\".got\"")), -Annotation(Region(0x10FE8,0x1101F), Attr("section","\".got.plt\"")), -Annotation(Region(0x11020,0x1102F), Attr("section","\".data\""))]), -Program(Tid(1_466, "%000005ba"), Attrs([]), - Subs([Sub(Tid(1_414, "@__cxa_finalize"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x5D0"), -Attr("stub","()")]), "__cxa_finalize", Args([Arg(Tid(1_467, "%000005bb"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("__cxa_finalize_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(824, "@__cxa_finalize"), - Attrs([Attr("address","0x5D0")]), Phis([]), -Defs([Def(Tid(1_072, "%00000430"), Attrs([Attr("address","0x5D0"), -Attr("insn","adrp x16, #69632")]), Var("R16",Imm(64)), Int(69632,64)), -Def(Tid(1_079, "%00000437"), Attrs([Attr("address","0x5D4"), -Attr("insn","ldr x17, [x16, #0x8]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(1_085, "%0000043d"), Attrs([Attr("address","0x5D8"), -Attr("insn","add x16, x16, #0x8")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(8,64)))]), Jmps([Call(Tid(1_090, "%00000442"), - Attrs([Attr("address","0x5DC"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), -Sub(Tid(1_415, "@__do_global_dtors_aux"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x6C0")]), - "__do_global_dtors_aux", Args([Arg(Tid(1_468, "%000005bc"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("__do_global_dtors_aux_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(626, "@__do_global_dtors_aux"), - Attrs([Attr("address","0x6C0")]), Phis([]), Defs([Def(Tid(630, "%00000276"), - Attrs([Attr("address","0x6C0"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("#3",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(18446744073709551584,64))), -Def(Tid(636, "%0000027c"), Attrs([Attr("address","0x6C0"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("#3",Imm(64)),Var("R29",Imm(64)),LittleEndian(),64)), -Def(Tid(642, "%00000282"), Attrs([Attr("address","0x6C0"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("#3",Imm(64)),Int(8,64)),Var("R30",Imm(64)),LittleEndian(),64)), -Def(Tid(646, "%00000286"), Attrs([Attr("address","0x6C0"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("R31",Imm(64)), -Var("#3",Imm(64))), Def(Tid(652, "%0000028c"), - Attrs([Attr("address","0x6C4"), Attr("insn","mov x29, sp")]), - Var("R29",Imm(64)), Var("R31",Imm(64))), Def(Tid(660, "%00000294"), - Attrs([Attr("address","0x6C8"), Attr("insn","str x19, [sp, #0x10]")]), - Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(16,64)),Var("R19",Imm(64)),LittleEndian(),64)), -Def(Tid(665, "%00000299"), Attrs([Attr("address","0x6CC"), -Attr("insn","adrp x19, #69632")]), Var("R19",Imm(64)), Int(69632,64)), -Def(Tid(672, "%000002a0"), Attrs([Attr("address","0x6D0"), -Attr("insn","ldrb w0, [x19, #0x30]")]), Var("R0",Imm(64)), -UNSIGNED(64,Load(Var("mem",Mem(64,8)),PLUS(Var("R19",Imm(64)),Int(48,64)),LittleEndian(),8)))]), -Jmps([Goto(Tid(679, "%000002a7"), Attrs([Attr("address","0x6D4"), -Attr("insn","cbnz w0, #0x28")]), - NEQ(Extract(31,0,Var("R0",Imm(64))),Int(0,32)), -Direct(Tid(677, "%000002a5"))), Goto(Tid(1_455, "%000005af"), Attrs([]), - Int(1,1), Direct(Tid(769, "%00000301")))])), Blk(Tid(769, "%00000301"), - Attrs([Attr("address","0x6D8")]), Phis([]), Defs([Def(Tid(772, "%00000304"), - Attrs([Attr("address","0x6D8"), Attr("insn","adrp x0, #65536")]), - Var("R0",Imm(64)), Int(65536,64)), Def(Tid(779, "%0000030b"), - Attrs([Attr("address","0x6DC"), Attr("insn","ldr x0, [x0, #0xfc8]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(4040,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(785, "%00000311"), Attrs([Attr("address","0x6E0"), -Attr("insn","cbz x0, #0x10")]), EQ(Var("R0",Imm(64)),Int(0,64)), -Direct(Tid(783, "%0000030f"))), Goto(Tid(1_456, "%000005b0"), Attrs([]), - Int(1,1), Direct(Tid(808, "%00000328")))])), Blk(Tid(808, "%00000328"), - Attrs([Attr("address","0x6E4")]), Phis([]), Defs([Def(Tid(811, "%0000032b"), - Attrs([Attr("address","0x6E4"), Attr("insn","adrp x0, #69632")]), - Var("R0",Imm(64)), Int(69632,64)), Def(Tid(818, "%00000332"), - Attrs([Attr("address","0x6E8"), Attr("insn","ldr x0, [x0, #0x28]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(40,64)),LittleEndian(),64)), -Def(Tid(823, "%00000337"), Attrs([Attr("address","0x6EC"), -Attr("insn","bl #-0x11c")]), Var("R30",Imm(64)), Int(1776,64))]), -Jmps([Call(Tid(826, "%0000033a"), Attrs([Attr("address","0x6EC"), -Attr("insn","bl #-0x11c")]), Int(1,1), -(Direct(Tid(1_414, "@__cxa_finalize")),Direct(Tid(783, "%0000030f"))))])), -Blk(Tid(783, "%0000030f"), Attrs([Attr("address","0x6F0")]), Phis([]), -Defs([Def(Tid(791, "%00000317"), Attrs([Attr("address","0x6F0"), -Attr("insn","bl #-0xa0")]), Var("R30",Imm(64)), Int(1780,64))]), -Jmps([Call(Tid(793, "%00000319"), Attrs([Attr("address","0x6F0"), -Attr("insn","bl #-0xa0")]), Int(1,1), -(Direct(Tid(1_428, "@deregister_tm_clones")),Direct(Tid(795, "%0000031b"))))])), -Blk(Tid(795, "%0000031b"), Attrs([Attr("address","0x6F4")]), Phis([]), -Defs([Def(Tid(798, "%0000031e"), Attrs([Attr("address","0x6F4"), -Attr("insn","mov w0, #0x1")]), Var("R0",Imm(64)), Int(1,64)), -Def(Tid(806, "%00000326"), Attrs([Attr("address","0x6F8"), -Attr("insn","strb w0, [x19, #0x30]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R19",Imm(64)),Int(48,64)),Extract(7,0,Var("R0",Imm(64))),LittleEndian(),8))]), -Jmps([Goto(Tid(1_457, "%000005b1"), Attrs([]), Int(1,1), -Direct(Tid(677, "%000002a5")))])), Blk(Tid(677, "%000002a5"), - Attrs([Attr("address","0x6FC")]), Phis([]), Defs([Def(Tid(687, "%000002af"), - Attrs([Attr("address","0x6FC"), Attr("insn","ldr x19, [sp, #0x10]")]), - Var("R19",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(16,64)),LittleEndian(),64)), -Def(Tid(694, "%000002b6"), Attrs([Attr("address","0x700"), -Attr("insn","ldp x29, x30, [sp], #0x20")]), Var("R29",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(699, "%000002bb"), Attrs([Attr("address","0x700"), -Attr("insn","ldp x29, x30, [sp], #0x20")]), Var("R30",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(703, "%000002bf"), Attrs([Attr("address","0x700"), -Attr("insn","ldp x29, x30, [sp], #0x20")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(32,64)))]), Jmps([Call(Tid(708, "%000002c4"), - Attrs([Attr("address","0x704"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), Sub(Tid(1_419, "@__libc_start_main"), - Attrs([Attr("c.proto","signed (*)(signed (*)(signed , char** , char** );* main, signed , char** , \nvoid* auxv)"), -Attr("address","0x5C0"), Attr("stub","()")]), "__libc_start_main", - Args([Arg(Tid(1_469, "%000005bd"), - Attrs([Attr("c.layout","**[ : 64]"), -Attr("c.data","Top:u64 ptr ptr"), -Attr("c.type","signed (*)(signed , char** , char** );*")]), - Var("__libc_start_main_main",Imm(64)), Var("R0",Imm(64)), In()), -Arg(Tid(1_470, "%000005be"), Attrs([Attr("c.layout","[signed : 32]"), -Attr("c.data","Top:u32"), Attr("c.type","signed")]), - Var("__libc_start_main_arg2",Imm(32)), LOW(32,Var("R1",Imm(64))), In()), -Arg(Tid(1_471, "%000005bf"), Attrs([Attr("c.layout","**[char : 8]"), -Attr("c.data","Top:u8 ptr ptr"), Attr("c.type","char**")]), - Var("__libc_start_main_arg3",Imm(64)), Var("R2",Imm(64)), Both()), -Arg(Tid(1_472, "%000005c0"), Attrs([Attr("c.layout","*[ : 8]"), -Attr("c.data","{} ptr"), Attr("c.type","void*")]), - Var("__libc_start_main_auxv",Imm(64)), Var("R3",Imm(64)), Both()), -Arg(Tid(1_473, "%000005c1"), Attrs([Attr("c.layout","[signed : 32]"), -Attr("c.data","Top:u32"), Attr("c.type","signed")]), - Var("__libc_start_main_result",Imm(32)), LOW(32,Var("R0",Imm(64))), -Out())]), Blks([Blk(Tid(459, "@__libc_start_main"), - Attrs([Attr("address","0x5C0")]), Phis([]), -Defs([Def(Tid(1_050, "%0000041a"), Attrs([Attr("address","0x5C0"), -Attr("insn","adrp x16, #69632")]), Var("R16",Imm(64)), Int(69632,64)), -Def(Tid(1_057, "%00000421"), Attrs([Attr("address","0x5C4"), -Attr("insn","ldr x17, [x16]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R16",Imm(64)),LittleEndian(),64)), -Def(Tid(1_063, "%00000427"), Attrs([Attr("address","0x5C8"), -Attr("insn","add x16, x16, #0x0")]), Var("R16",Imm(64)), -Var("R16",Imm(64)))]), Jmps([Call(Tid(1_068, "%0000042c"), - Attrs([Attr("address","0x5CC"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), Sub(Tid(1_420, "@_fini"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x738")]), - "_fini", Args([Arg(Tid(1_474, "%000005c2"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("_fini_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(31, "@_fini"), - Attrs([Attr("address","0x738")]), Phis([]), Defs([Def(Tid(37, "%00000025"), - Attrs([Attr("address","0x73C"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("#0",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(18446744073709551600,64))), -Def(Tid(43, "%0000002b"), Attrs([Attr("address","0x73C"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("#0",Imm(64)),Var("R29",Imm(64)),LittleEndian(),64)), -Def(Tid(49, "%00000031"), Attrs([Attr("address","0x73C"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("#0",Imm(64)),Int(8,64)),Var("R30",Imm(64)),LittleEndian(),64)), -Def(Tid(53, "%00000035"), Attrs([Attr("address","0x73C"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("R31",Imm(64)), -Var("#0",Imm(64))), Def(Tid(59, "%0000003b"), Attrs([Attr("address","0x740"), -Attr("insn","mov x29, sp")]), Var("R29",Imm(64)), Var("R31",Imm(64))), -Def(Tid(66, "%00000042"), Attrs([Attr("address","0x744"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R29",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(71, "%00000047"), Attrs([Attr("address","0x744"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R30",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(75, "%0000004b"), Attrs([Attr("address","0x744"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(16,64)))]), Jmps([Call(Tid(80, "%00000050"), - Attrs([Attr("address","0x748"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), Sub(Tid(1_421, "@_init"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x580")]), - "_init", Args([Arg(Tid(1_475, "%000005c3"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("_init_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(1_247, "@_init"), - Attrs([Attr("address","0x580")]), Phis([]), -Defs([Def(Tid(1_253, "%000004e5"), Attrs([Attr("address","0x584"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("#5",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(18446744073709551600,64))), -Def(Tid(1_259, "%000004eb"), Attrs([Attr("address","0x584"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("#5",Imm(64)),Var("R29",Imm(64)),LittleEndian(),64)), -Def(Tid(1_265, "%000004f1"), Attrs([Attr("address","0x584"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("#5",Imm(64)),Int(8,64)),Var("R30",Imm(64)),LittleEndian(),64)), -Def(Tid(1_269, "%000004f5"), Attrs([Attr("address","0x584"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("R31",Imm(64)), -Var("#5",Imm(64))), Def(Tid(1_275, "%000004fb"), - Attrs([Attr("address","0x588"), Attr("insn","mov x29, sp")]), - Var("R29",Imm(64)), Var("R31",Imm(64))), Def(Tid(1_280, "%00000500"), - Attrs([Attr("address","0x58C"), Attr("insn","bl #0xa8")]), - Var("R30",Imm(64)), Int(1424,64))]), Jmps([Call(Tid(1_282, "%00000502"), - Attrs([Attr("address","0x58C"), Attr("insn","bl #0xa8")]), Int(1,1), -(Direct(Tid(1_426, "@call_weak_fn")),Direct(Tid(1_284, "%00000504"))))])), -Blk(Tid(1_284, "%00000504"), Attrs([Attr("address","0x590")]), Phis([]), -Defs([Def(Tid(1_289, "%00000509"), Attrs([Attr("address","0x590"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R29",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(1_294, "%0000050e"), Attrs([Attr("address","0x590"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R30",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(1_298, "%00000512"), Attrs([Attr("address","0x590"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(16,64)))]), Jmps([Call(Tid(1_303, "%00000517"), - Attrs([Attr("address","0x594"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), Sub(Tid(1_422, "@_start"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x600"), -Attr("stub","()"), Attr("entry-point","()")]), "_start", - Args([Arg(Tid(1_476, "%000005c4"), Attrs([Attr("c.layout","[signed : 32]"), -Attr("c.data","Top:u32"), Attr("c.type","signed")]), - Var("_start_result",Imm(32)), LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(396, "@_start"), Attrs([Attr("address","0x600")]), Phis([]), -Defs([Def(Tid(401, "%00000191"), Attrs([Attr("address","0x604"), -Attr("insn","mov x29, #0x0")]), Var("R29",Imm(64)), Int(0,64)), -Def(Tid(406, "%00000196"), Attrs([Attr("address","0x608"), -Attr("insn","mov x30, #0x0")]), Var("R30",Imm(64)), Int(0,64)), -Def(Tid(412, "%0000019c"), Attrs([Attr("address","0x60C"), -Attr("insn","mov x5, x0")]), Var("R5",Imm(64)), Var("R0",Imm(64))), -Def(Tid(419, "%000001a3"), Attrs([Attr("address","0x610"), -Attr("insn","ldr x1, [sp]")]), Var("R1",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(425, "%000001a9"), Attrs([Attr("address","0x614"), -Attr("insn","add x2, sp, #0x8")]), Var("R2",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(8,64))), Def(Tid(431, "%000001af"), - Attrs([Attr("address","0x618"), Attr("insn","mov x6, sp")]), - Var("R6",Imm(64)), Var("R31",Imm(64))), Def(Tid(436, "%000001b4"), - Attrs([Attr("address","0x61C"), Attr("insn","adrp x0, #65536")]), - Var("R0",Imm(64)), Int(65536,64)), Def(Tid(443, "%000001bb"), - Attrs([Attr("address","0x620"), Attr("insn","ldr x0, [x0, #0xfd8]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(4056,64)),LittleEndian(),64)), -Def(Tid(448, "%000001c0"), Attrs([Attr("address","0x624"), -Attr("insn","mov x3, #0x0")]), Var("R3",Imm(64)), Int(0,64)), -Def(Tid(453, "%000001c5"), Attrs([Attr("address","0x628"), -Attr("insn","mov x4, #0x0")]), Var("R4",Imm(64)), Int(0,64)), -Def(Tid(458, "%000001ca"), Attrs([Attr("address","0x62C"), -Attr("insn","bl #-0x6c")]), Var("R30",Imm(64)), Int(1584,64))]), -Jmps([Call(Tid(461, "%000001cd"), Attrs([Attr("address","0x62C"), -Attr("insn","bl #-0x6c")]), Int(1,1), -(Direct(Tid(1_419, "@__libc_start_main")),Direct(Tid(463, "%000001cf"))))])), -Blk(Tid(463, "%000001cf"), Attrs([Attr("address","0x630")]), Phis([]), -Defs([Def(Tid(466, "%000001d2"), Attrs([Attr("address","0x630"), -Attr("insn","bl #-0x40")]), Var("R30",Imm(64)), Int(1588,64))]), -Jmps([Call(Tid(469, "%000001d5"), Attrs([Attr("address","0x630"), -Attr("insn","bl #-0x40")]), Int(1,1), -(Direct(Tid(1_425, "@abort")),Direct(Tid(1_458, "%000005b2"))))])), -Blk(Tid(1_458, "%000005b2"), Attrs([]), Phis([]), Defs([]), -Jmps([Call(Tid(1_459, "%000005b3"), Attrs([]), Int(1,1), -(Direct(Tid(1_426, "@call_weak_fn")),))]))])), Sub(Tid(1_425, "@abort"), - Attrs([Attr("noreturn","()"), Attr("c.proto","void (*)(void)"), -Attr("address","0x5F0"), Attr("stub","()")]), "abort", Args([]), -Blks([Blk(Tid(467, "@abort"), Attrs([Attr("address","0x5F0")]), Phis([]), -Defs([Def(Tid(1_116, "%0000045c"), Attrs([Attr("address","0x5F0"), -Attr("insn","adrp x16, #69632")]), Var("R16",Imm(64)), Int(69632,64)), -Def(Tid(1_123, "%00000463"), Attrs([Attr("address","0x5F4"), -Attr("insn","ldr x17, [x16, #0x18]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(24,64)),LittleEndian(),64)), -Def(Tid(1_129, "%00000469"), Attrs([Attr("address","0x5F8"), -Attr("insn","add x16, x16, #0x18")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(24,64)))]), Jmps([Call(Tid(1_134, "%0000046e"), - Attrs([Attr("address","0x5FC"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), Sub(Tid(1_426, "@call_weak_fn"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x634")]), - "call_weak_fn", Args([Arg(Tid(1_477, "%000005c5"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("call_weak_fn_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(471, "@call_weak_fn"), - Attrs([Attr("address","0x634")]), Phis([]), Defs([Def(Tid(474, "%000001da"), - Attrs([Attr("address","0x634"), Attr("insn","adrp x0, #65536")]), - Var("R0",Imm(64)), Int(65536,64)), Def(Tid(481, "%000001e1"), - Attrs([Attr("address","0x638"), Attr("insn","ldr x0, [x0, #0xfd0]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(4048,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(487, "%000001e7"), Attrs([Attr("address","0x63C"), -Attr("insn","cbz x0, #0x8")]), EQ(Var("R0",Imm(64)),Int(0,64)), -Direct(Tid(485, "%000001e5"))), Goto(Tid(1_460, "%000005b4"), Attrs([]), - Int(1,1), Direct(Tid(888, "%00000378")))])), Blk(Tid(485, "%000001e5"), - Attrs([Attr("address","0x644")]), Phis([]), Defs([]), -Jmps([Call(Tid(493, "%000001ed"), Attrs([Attr("address","0x644"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))])), -Blk(Tid(888, "%00000378"), Attrs([Attr("address","0x640")]), Phis([]), -Defs([]), Jmps([Goto(Tid(891, "%0000037b"), Attrs([Attr("address","0x640"), -Attr("insn","b #-0x60")]), Int(1,1), Direct(Tid(889, "@__gmon_start__")))])), -Blk(Tid(889, "@__gmon_start__"), Attrs([Attr("address","0x5E0")]), Phis([]), -Defs([Def(Tid(1_094, "%00000446"), Attrs([Attr("address","0x5E0"), -Attr("insn","adrp x16, #69632")]), Var("R16",Imm(64)), Int(69632,64)), -Def(Tid(1_101, "%0000044d"), Attrs([Attr("address","0x5E4"), -Attr("insn","ldr x17, [x16, #0x10]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(16,64)),LittleEndian(),64)), -Def(Tid(1_107, "%00000453"), Attrs([Attr("address","0x5E8"), -Attr("insn","add x16, x16, #0x10")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(16,64)))]), Jmps([Call(Tid(1_112, "%00000458"), - Attrs([Attr("address","0x5EC"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), -Sub(Tid(1_428, "@deregister_tm_clones"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x650")]), - "deregister_tm_clones", Args([Arg(Tid(1_478, "%000005c6"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("deregister_tm_clones_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(499, "@deregister_tm_clones"), - Attrs([Attr("address","0x650")]), Phis([]), Defs([Def(Tid(502, "%000001f6"), - Attrs([Attr("address","0x650"), Attr("insn","adrp x0, #69632")]), - Var("R0",Imm(64)), Int(69632,64)), Def(Tid(508, "%000001fc"), - Attrs([Attr("address","0x654"), Attr("insn","add x0, x0, #0x30")]), - Var("R0",Imm(64)), PLUS(Var("R0",Imm(64)),Int(48,64))), -Def(Tid(513, "%00000201"), Attrs([Attr("address","0x658"), -Attr("insn","adrp x1, #69632")]), Var("R1",Imm(64)), Int(69632,64)), -Def(Tid(519, "%00000207"), Attrs([Attr("address","0x65C"), -Attr("insn","add x1, x1, #0x30")]), Var("R1",Imm(64)), -PLUS(Var("R1",Imm(64)),Int(48,64))), Def(Tid(525, "%0000020d"), - Attrs([Attr("address","0x660"), Attr("insn","cmp x1, x0")]), - Var("#1",Imm(64)), NOT(Var("R0",Imm(64)))), Def(Tid(530, "%00000212"), - Attrs([Attr("address","0x660"), Attr("insn","cmp x1, x0")]), - Var("#2",Imm(64)), PLUS(Var("R1",Imm(64)),NOT(Var("R0",Imm(64))))), -Def(Tid(536, "%00000218"), Attrs([Attr("address","0x660"), -Attr("insn","cmp x1, x0")]), Var("VF",Imm(1)), -NEQ(SIGNED(65,PLUS(Var("#2",Imm(64)),Int(1,64))),PLUS(PLUS(SIGNED(65,Var("R1",Imm(64))),SIGNED(65,Var("#1",Imm(64)))),Int(1,65)))), -Def(Tid(542, "%0000021e"), Attrs([Attr("address","0x660"), -Attr("insn","cmp x1, x0")]), Var("CF",Imm(1)), -NEQ(UNSIGNED(65,PLUS(Var("#2",Imm(64)),Int(1,64))),PLUS(PLUS(UNSIGNED(65,Var("R1",Imm(64))),UNSIGNED(65,Var("#1",Imm(64)))),Int(1,65)))), -Def(Tid(546, "%00000222"), Attrs([Attr("address","0x660"), -Attr("insn","cmp x1, x0")]), Var("ZF",Imm(1)), -EQ(PLUS(Var("#2",Imm(64)),Int(1,64)),Int(0,64))), Def(Tid(550, "%00000226"), - Attrs([Attr("address","0x660"), Attr("insn","cmp x1, x0")]), - Var("NF",Imm(1)), Extract(63,63,PLUS(Var("#2",Imm(64)),Int(1,64))))]), -Jmps([Goto(Tid(556, "%0000022c"), Attrs([Attr("address","0x664"), -Attr("insn","b.eq #0x18")]), EQ(Var("ZF",Imm(1)),Int(1,1)), -Direct(Tid(554, "%0000022a"))), Goto(Tid(1_461, "%000005b5"), Attrs([]), - Int(1,1), Direct(Tid(858, "%0000035a")))])), Blk(Tid(858, "%0000035a"), - Attrs([Attr("address","0x668")]), Phis([]), Defs([Def(Tid(861, "%0000035d"), - Attrs([Attr("address","0x668"), Attr("insn","adrp x1, #65536")]), - Var("R1",Imm(64)), Int(65536,64)), Def(Tid(868, "%00000364"), - Attrs([Attr("address","0x66C"), Attr("insn","ldr x1, [x1, #0xfc0]")]), - Var("R1",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R1",Imm(64)),Int(4032,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(873, "%00000369"), Attrs([Attr("address","0x670"), -Attr("insn","cbz x1, #0xc")]), EQ(Var("R1",Imm(64)),Int(0,64)), -Direct(Tid(554, "%0000022a"))), Goto(Tid(1_462, "%000005b6"), Attrs([]), - Int(1,1), Direct(Tid(877, "%0000036d")))])), Blk(Tid(554, "%0000022a"), - Attrs([Attr("address","0x67C")]), Phis([]), Defs([]), -Jmps([Call(Tid(562, "%00000232"), Attrs([Attr("address","0x67C"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))])), -Blk(Tid(877, "%0000036d"), Attrs([Attr("address","0x674")]), Phis([]), -Defs([Def(Tid(881, "%00000371"), Attrs([Attr("address","0x674"), -Attr("insn","mov x16, x1")]), Var("R16",Imm(64)), Var("R1",Imm(64)))]), -Jmps([Call(Tid(886, "%00000376"), Attrs([Attr("address","0x678"), -Attr("insn","br x16")]), Int(1,1), (Indirect(Var("R16",Imm(64))),))]))])), -Sub(Tid(1_431, "@frame_dummy"), Attrs([Attr("c.proto","signed (*)(void)"), -Attr("address","0x710")]), "frame_dummy", Args([Arg(Tid(1_479, "%000005c7"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("frame_dummy_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(714, "@frame_dummy"), - Attrs([Attr("address","0x710")]), Phis([]), Defs([]), -Jmps([Call(Tid(716, "%000002cc"), Attrs([Attr("address","0x710"), -Attr("insn","b #-0x90")]), Int(1,1), -(Direct(Tid(1_434, "@register_tm_clones")),))]))])), Sub(Tid(1_432, "@main"), - Attrs([Attr("c.proto","signed (*)(signed argc, const char** argv)"), -Attr("address","0x714")]), "main", Args([Arg(Tid(1_480, "%000005c8"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("main_argc",Imm(32)), -LOW(32,Var("R0",Imm(64))), In()), Arg(Tid(1_481, "%000005c9"), - Attrs([Attr("c.layout","**[char : 8]"), Attr("c.data","Top:u8 ptr ptr"), -Attr("c.type"," const char**")]), Var("main_argv",Imm(64)), -Var("R1",Imm(64)), Both()), Arg(Tid(1_482, "%000005ca"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("main_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(718, "@main"), - Attrs([Attr("address","0x714")]), Phis([]), Defs([Def(Tid(721, "%000002d1"), - Attrs([Attr("address","0x714"), Attr("insn","adrp x8, #69632")]), - Var("R8",Imm(64)), Int(69632,64)), Def(Tid(728, "%000002d8"), - Attrs([Attr("address","0x718"), Attr("insn","ldr w8, [x8, #0x34]")]), - Var("R8",Imm(64)), -UNSIGNED(64,Load(Var("mem",Mem(64,8)),PLUS(Var("R8",Imm(64)),Int(52,64)),LittleEndian(),32)))]), -Jmps([Goto(Tid(734, "%000002de"), Attrs([Attr("address","0x71C"), -Attr("insn","cbz w8, #0xc")]), EQ(Extract(31,0,Var("R8",Imm(64))),Int(0,32)), -Direct(Tid(732, "%000002dc"))), Goto(Tid(1_463, "%000005b7"), Attrs([]), - Int(1,1), Direct(Tid(759, "%000002f7")))])), Blk(Tid(732, "%000002dc"), - Attrs([Attr("address","0x728")]), Phis([]), Defs([Def(Tid(740, "%000002e4"), - Attrs([Attr("address","0x728"), Attr("insn","adrp x8, #69632")]), - Var("R8",Imm(64)), Int(69632,64)), Def(Tid(747, "%000002eb"), - Attrs([Attr("address","0x72C"), Attr("insn","str wzr, [x8, #0x38]")]), - Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R8",Imm(64)),Int(56,64)),Int(0,32),LittleEndian(),32)), -Def(Tid(752, "%000002f0"), Attrs([Attr("address","0x730"), -Attr("insn","mov w0, wzr")]), Var("R0",Imm(64)), Int(0,64))]), -Jmps([Call(Tid(757, "%000002f5"), Attrs([Attr("address","0x734"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))])), -Blk(Tid(759, "%000002f7"), Attrs([Attr("address","0x720")]), Phis([]), -Defs([Def(Tid(762, "%000002fa"), Attrs([Attr("address","0x720"), -Attr("insn","mov w0, wzr")]), Var("R0",Imm(64)), Int(0,64))]), -Jmps([Call(Tid(767, "%000002ff"), Attrs([Attr("address","0x724"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))]))])), -Sub(Tid(1_434, "@register_tm_clones"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x680")]), - "register_tm_clones", Args([Arg(Tid(1_483, "%000005cb"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("register_tm_clones_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(564, "@register_tm_clones"), Attrs([Attr("address","0x680")]), - Phis([]), Defs([Def(Tid(567, "%00000237"), Attrs([Attr("address","0x680"), -Attr("insn","adrp x0, #69632")]), Var("R0",Imm(64)), Int(69632,64)), -Def(Tid(573, "%0000023d"), Attrs([Attr("address","0x684"), -Attr("insn","add x0, x0, #0x30")]), Var("R0",Imm(64)), -PLUS(Var("R0",Imm(64)),Int(48,64))), Def(Tid(578, "%00000242"), - Attrs([Attr("address","0x688"), Attr("insn","adrp x1, #69632")]), - Var("R1",Imm(64)), Int(69632,64)), Def(Tid(584, "%00000248"), - Attrs([Attr("address","0x68C"), Attr("insn","add x1, x1, #0x30")]), - Var("R1",Imm(64)), PLUS(Var("R1",Imm(64)),Int(48,64))), -Def(Tid(591, "%0000024f"), Attrs([Attr("address","0x690"), -Attr("insn","sub x1, x1, x0")]), Var("R1",Imm(64)), -PLUS(PLUS(Var("R1",Imm(64)),NOT(Var("R0",Imm(64)))),Int(1,64))), -Def(Tid(597, "%00000255"), Attrs([Attr("address","0x694"), -Attr("insn","lsr x2, x1, #63")]), Var("R2",Imm(64)), -Concat(Int(0,63),Extract(63,63,Var("R1",Imm(64))))), -Def(Tid(604, "%0000025c"), Attrs([Attr("address","0x698"), -Attr("insn","add x1, x2, x1, asr #3")]), Var("R1",Imm(64)), -PLUS(Var("R2",Imm(64)),ARSHIFT(Var("R1",Imm(64)),Int(3,3)))), -Def(Tid(610, "%00000262"), Attrs([Attr("address","0x69C"), -Attr("insn","asr x1, x1, #1")]), Var("R1",Imm(64)), -SIGNED(64,Extract(63,1,Var("R1",Imm(64)))))]), -Jmps([Goto(Tid(616, "%00000268"), Attrs([Attr("address","0x6A0"), -Attr("insn","cbz x1, #0x18")]), EQ(Var("R1",Imm(64)),Int(0,64)), -Direct(Tid(614, "%00000266"))), Goto(Tid(1_464, "%000005b8"), Attrs([]), - Int(1,1), Direct(Tid(828, "%0000033c")))])), Blk(Tid(828, "%0000033c"), - Attrs([Attr("address","0x6A4")]), Phis([]), Defs([Def(Tid(831, "%0000033f"), - Attrs([Attr("address","0x6A4"), Attr("insn","adrp x2, #65536")]), - Var("R2",Imm(64)), Int(65536,64)), Def(Tid(838, "%00000346"), - Attrs([Attr("address","0x6A8"), Attr("insn","ldr x2, [x2, #0xfe0]")]), - Var("R2",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R2",Imm(64)),Int(4064,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(843, "%0000034b"), Attrs([Attr("address","0x6AC"), -Attr("insn","cbz x2, #0xc")]), EQ(Var("R2",Imm(64)),Int(0,64)), -Direct(Tid(614, "%00000266"))), Goto(Tid(1_465, "%000005b9"), Attrs([]), - Int(1,1), Direct(Tid(847, "%0000034f")))])), Blk(Tid(614, "%00000266"), - Attrs([Attr("address","0x6B8")]), Phis([]), Defs([]), -Jmps([Call(Tid(622, "%0000026e"), Attrs([Attr("address","0x6B8"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))])), -Blk(Tid(847, "%0000034f"), Attrs([Attr("address","0x6B0")]), Phis([]), -Defs([Def(Tid(851, "%00000353"), Attrs([Attr("address","0x6B0"), -Attr("insn","mov x16, x2")]), Var("R16",Imm(64)), Var("R2",Imm(64)))]), -Jmps([Call(Tid(856, "%00000358"), Attrs([Attr("address","0x6B4"), -Attr("insn","br x16")]), Int(1,1), -(Indirect(Var("R16",Imm(64))),))]))]))]))) \ No newline at end of file diff --git a/src/test/correct/basic_lock_read/clang_O2/basic_lock_read.bir b/src/test/correct/basic_lock_read/clang_O2/basic_lock_read.bir deleted file mode 100644 index dd5ffbfcf..000000000 --- a/src/test/correct/basic_lock_read/clang_O2/basic_lock_read.bir +++ /dev/null @@ -1,236 +0,0 @@ -000005ba: program -00000586: sub __cxa_finalize(__cxa_finalize_result) -000005bb: __cxa_finalize_result :: out u32 = low:32[R0] - -00000338: -00000430: R16 := 0x11000 -00000437: R17 := mem[R16 + 8, el]:u64 -0000043d: R16 := R16 + 8 -00000442: call R17 with noreturn - -00000587: sub __do_global_dtors_aux(__do_global_dtors_aux_result) -000005bc: __do_global_dtors_aux_result :: out u32 = low:32[R0] - -00000272: -00000276: #3 := R31 - 0x20 -0000027c: mem := mem with [#3, el]:u64 <- R29 -00000282: mem := mem with [#3 + 8, el]:u64 <- R30 -00000286: R31 := #3 -0000028c: R29 := R31 -00000294: mem := mem with [R31 + 0x10, el]:u64 <- R19 -00000299: R19 := 0x11000 -000002a0: R0 := pad:64[mem[R19 + 0x30]] -000002a7: when 31:0[R0] <> 0 goto %000002a5 -000005af: goto %00000301 - -00000301: -00000304: R0 := 0x10000 -0000030b: R0 := mem[R0 + 0xFC8, el]:u64 -00000311: when R0 = 0 goto %0000030f -000005b0: goto %00000328 - -00000328: -0000032b: R0 := 0x11000 -00000332: R0 := mem[R0 + 0x28, el]:u64 -00000337: R30 := 0x6F0 -0000033a: call @__cxa_finalize with return %0000030f - -0000030f: -00000317: R30 := 0x6F4 -00000319: call @deregister_tm_clones with return %0000031b - -0000031b: -0000031e: R0 := 1 -00000326: mem := mem with [R19 + 0x30] <- 7:0[R0] -000005b1: goto %000002a5 - -000002a5: -000002af: R19 := mem[R31 + 0x10, el]:u64 -000002b6: R29 := mem[R31, el]:u64 -000002bb: R30 := mem[R31 + 8, el]:u64 -000002bf: R31 := R31 + 0x20 -000002c4: call R30 with noreturn - -0000058b: sub __libc_start_main(__libc_start_main_main, __libc_start_main_arg2, __libc_start_main_arg3, __libc_start_main_auxv, __libc_start_main_result) -000005bd: __libc_start_main_main :: in u64 = R0 -000005be: __libc_start_main_arg2 :: in u32 = low:32[R1] -000005bf: __libc_start_main_arg3 :: in out u64 = R2 -000005c0: __libc_start_main_auxv :: in out u64 = R3 -000005c1: __libc_start_main_result :: out u32 = low:32[R0] - -000001cb: -0000041a: R16 := 0x11000 -00000421: R17 := mem[R16, el]:u64 -00000427: R16 := R16 -0000042c: call R17 with noreturn - -0000058c: sub _fini(_fini_result) -000005c2: _fini_result :: out u32 = low:32[R0] - -0000001f: -00000025: #0 := R31 - 0x10 -0000002b: mem := mem with [#0, el]:u64 <- R29 -00000031: mem := mem with [#0 + 8, el]:u64 <- R30 -00000035: R31 := #0 -0000003b: R29 := R31 -00000042: R29 := mem[R31, el]:u64 -00000047: R30 := mem[R31 + 8, el]:u64 -0000004b: R31 := R31 + 0x10 -00000050: call R30 with noreturn - -0000058d: sub _init(_init_result) -000005c3: _init_result :: out u32 = low:32[R0] - -000004df: -000004e5: #5 := R31 - 0x10 -000004eb: mem := mem with [#5, el]:u64 <- R29 -000004f1: mem := mem with [#5 + 8, el]:u64 <- R30 -000004f5: R31 := #5 -000004fb: R29 := R31 -00000500: R30 := 0x590 -00000502: call @call_weak_fn with return %00000504 - -00000504: -00000509: R29 := mem[R31, el]:u64 -0000050e: R30 := mem[R31 + 8, el]:u64 -00000512: R31 := R31 + 0x10 -00000517: call R30 with noreturn - -0000058e: sub _start(_start_result) -000005c4: _start_result :: out u32 = low:32[R0] - -0000018c: -00000191: R29 := 0 -00000196: R30 := 0 -0000019c: R5 := R0 -000001a3: R1 := mem[R31, el]:u64 -000001a9: R2 := R31 + 8 -000001af: R6 := R31 -000001b4: R0 := 0x10000 -000001bb: R0 := mem[R0 + 0xFD8, el]:u64 -000001c0: R3 := 0 -000001c5: R4 := 0 -000001ca: R30 := 0x630 -000001cd: call @__libc_start_main with return %000001cf - -000001cf: -000001d2: R30 := 0x634 -000001d5: call @abort with return %000005b2 - -000005b2: -000005b3: call @call_weak_fn with noreturn - -00000591: sub abort() - - -000001d3: -0000045c: R16 := 0x11000 -00000463: R17 := mem[R16 + 0x18, el]:u64 -00000469: R16 := R16 + 0x18 -0000046e: call R17 with noreturn - -00000592: sub call_weak_fn(call_weak_fn_result) -000005c5: call_weak_fn_result :: out u32 = low:32[R0] - -000001d7: -000001da: R0 := 0x10000 -000001e1: R0 := mem[R0 + 0xFD0, el]:u64 -000001e7: when R0 = 0 goto %000001e5 -000005b4: goto %00000378 - -000001e5: -000001ed: call R30 with noreturn - -00000378: -0000037b: goto @__gmon_start__ - -00000379: -00000446: R16 := 0x11000 -0000044d: R17 := mem[R16 + 0x10, el]:u64 -00000453: R16 := R16 + 0x10 -00000458: call R17 with noreturn - -00000594: sub deregister_tm_clones(deregister_tm_clones_result) -000005c6: deregister_tm_clones_result :: out u32 = low:32[R0] - -000001f3: -000001f6: R0 := 0x11000 -000001fc: R0 := R0 + 0x30 -00000201: R1 := 0x11000 -00000207: R1 := R1 + 0x30 -0000020d: #1 := ~R0 -00000212: #2 := R1 + ~R0 -00000218: VF := extend:65[#2 + 1] <> extend:65[R1] + extend:65[#1] + 1 -0000021e: CF := pad:65[#2 + 1] <> pad:65[R1] + pad:65[#1] + 1 -00000222: ZF := #2 + 1 = 0 -00000226: NF := 63:63[#2 + 1] -0000022c: when ZF goto %0000022a -000005b5: goto %0000035a - -0000035a: -0000035d: R1 := 0x10000 -00000364: R1 := mem[R1 + 0xFC0, el]:u64 -00000369: when R1 = 0 goto %0000022a -000005b6: goto %0000036d - -0000022a: -00000232: call R30 with noreturn - -0000036d: -00000371: R16 := R1 -00000376: call R16 with noreturn - -00000597: sub frame_dummy(frame_dummy_result) -000005c7: frame_dummy_result :: out u32 = low:32[R0] - -000002ca: -000002cc: call @register_tm_clones with noreturn - -00000598: sub main(main_argc, main_argv, main_result) -000005c8: main_argc :: in u32 = low:32[R0] -000005c9: main_argv :: in out u64 = R1 -000005ca: main_result :: out u32 = low:32[R0] - -000002ce: -000002d1: R8 := 0x11000 -000002d8: R8 := pad:64[mem[R8 + 0x34, el]:u32] -000002de: when 31:0[R8] = 0 goto %000002dc -000005b7: goto %000002f7 - -000002dc: -000002e4: R8 := 0x11000 -000002eb: mem := mem with [R8 + 0x38, el]:u32 <- 0 -000002f0: R0 := 0 -000002f5: call R30 with noreturn - -000002f7: -000002fa: R0 := 0 -000002ff: call R30 with noreturn - -0000059a: sub register_tm_clones(register_tm_clones_result) -000005cb: register_tm_clones_result :: out u32 = low:32[R0] - -00000234: -00000237: R0 := 0x11000 -0000023d: R0 := R0 + 0x30 -00000242: R1 := 0x11000 -00000248: R1 := R1 + 0x30 -0000024f: R1 := R1 + ~R0 + 1 -00000255: R2 := 0.63:63[R1] -0000025c: R1 := R2 + (R1 ~>> 3) -00000262: R1 := extend:64[63:1[R1]] -00000268: when R1 = 0 goto %00000266 -000005b8: goto %0000033c - -0000033c: -0000033f: R2 := 0x10000 -00000346: R2 := mem[R2 + 0xFE0, el]:u64 -0000034b: when R2 = 0 goto %00000266 -000005b9: goto %0000034f - -00000266: -0000026e: call R30 with noreturn - -0000034f: -00000353: R16 := R2 -00000358: call R16 with noreturn diff --git a/src/test/correct/basic_lock_read/clang_O2/basic_lock_read.expected b/src/test/correct/basic_lock_read/clang_O2/basic_lock_read.expected index fae5caa36..0b94b91a8 100644 --- a/src/test/correct/basic_lock_read/clang_O2/basic_lock_read.expected +++ b/src/test/correct/basic_lock_read/clang_O2/basic_lock_read.expected @@ -5,9 +5,9 @@ var {:extern} R0: bv64; var {:extern} R8: bv64; var {:extern} mem: [bv64]bv8; const {:extern} $x_addr: bv64; -axiom ($x_addr == 69688bv64); +axiom ($x_addr == 131096bv64); const {:extern} $z_addr: bv64; -axiom ($z_addr == 69684bv64); +axiom ($z_addr == 131092bv64); function {:extern} L(mem$in: [bv64]bv8, index: bv64) returns (bool) { (if (index == $x_addr) then true else (if (index == $z_addr) then true else false)) } @@ -18,6 +18,10 @@ function {:extern} gamma_load32(gammaMap: [bv64]bool, index: bv64) returns (bool (gammaMap[bvadd64(index, 3bv64)] && (gammaMap[bvadd64(index, 2bv64)] && (gammaMap[bvadd64(index, 1bv64)] && gammaMap[index]))) } +function {:extern} gamma_load64(gammaMap: [bv64]bool, index: bv64) returns (bool) { + (gammaMap[bvadd64(index, 7bv64)] && (gammaMap[bvadd64(index, 6bv64)] && (gammaMap[bvadd64(index, 5bv64)] && (gammaMap[bvadd64(index, 4bv64)] && (gammaMap[bvadd64(index, 3bv64)] && (gammaMap[bvadd64(index, 2bv64)] && (gammaMap[bvadd64(index, 1bv64)] && gammaMap[index]))))))) +} + function {:extern} gamma_store32(gammaMap: [bv64]bool, index: bv64, value: bool) returns ([bv64]bool) { gammaMap[index := value][bvadd64(index, 1bv64) := value][bvadd64(index, 2bv64) := value][bvadd64(index, 3bv64) := value] } @@ -39,11 +43,13 @@ procedure {:extern} rely(); modifies Gamma_mem, mem; ensures (forall i: bv64 :: (((mem[i] == old(mem[i])) ==> (Gamma_mem[i] == old(Gamma_mem[i]))))); ensures ((old(memory_load32_le(mem, $z_addr)) == 0bv32) ==> ((memory_load32_le(mem, $x_addr) == old(memory_load32_le(mem, $x_addr))) && (memory_load32_le(mem, $z_addr) == old(memory_load32_le(mem, $z_addr))))); - free ensures (memory_load32_le(mem, 1868bv64) == 131073bv32); - free ensures (memory_load64_le(mem, 69064bv64) == 1808bv64); - free ensures (memory_load64_le(mem, 69072bv64) == 1728bv64); - free ensures (memory_load64_le(mem, 69592bv64) == 1812bv64); - free ensures (memory_load64_le(mem, 69672bv64) == 69672bv64); + free ensures (memory_load32_le(mem, 2324bv64) == 131073bv32); + free ensures (memory_load64_le(mem, 130424bv64) == 2256bv64); + free ensures (memory_load64_le(mem, 130432bv64) == 2176bv64); + free ensures (memory_load64_le(mem, 131032bv64) == 131092bv64); + free ensures (memory_load64_le(mem, 131040bv64) == 131096bv64); + free ensures (memory_load64_le(mem, 131056bv64) == 2260bv64); + free ensures (memory_load64_le(mem, 131080bv64) == 131080bv64); procedure {:extern} rely_transitive(); modifies Gamma_mem, mem; @@ -70,54 +76,74 @@ implementation {:extern} guarantee_reflexive() assert (memory_load32_le(mem, $z_addr) == memory_load32_le(mem, $z_addr)); } -procedure main_1812(); +procedure main(); modifies Gamma_R0, Gamma_R8, Gamma_mem, R0, R8, mem; - free requires (memory_load64_le(mem, 69664bv64) == 0bv64); - free requires (memory_load64_le(mem, 69672bv64) == 69672bv64); - free requires (memory_load32_le(mem, 1868bv64) == 131073bv32); - free requires (memory_load64_le(mem, 69064bv64) == 1808bv64); - free requires (memory_load64_le(mem, 69072bv64) == 1728bv64); - free requires (memory_load64_le(mem, 69592bv64) == 1812bv64); - free requires (memory_load64_le(mem, 69672bv64) == 69672bv64); + free requires (memory_load64_le(mem, 131072bv64) == 0bv64); + free requires (memory_load64_le(mem, 131080bv64) == 131080bv64); + free requires (memory_load32_le(mem, 2324bv64) == 131073bv32); + free requires (memory_load64_le(mem, 130424bv64) == 2256bv64); + free requires (memory_load64_le(mem, 130432bv64) == 2176bv64); + free requires (memory_load64_le(mem, 131032bv64) == 131092bv64); + free requires (memory_load64_le(mem, 131040bv64) == 131096bv64); + free requires (memory_load64_le(mem, 131056bv64) == 2260bv64); + free requires (memory_load64_le(mem, 131080bv64) == 131080bv64); ensures (R0[32:0] == 0bv32); - free ensures (memory_load32_le(mem, 1868bv64) == 131073bv32); - free ensures (memory_load64_le(mem, 69064bv64) == 1808bv64); - free ensures (memory_load64_le(mem, 69072bv64) == 1728bv64); - free ensures (memory_load64_le(mem, 69592bv64) == 1812bv64); - free ensures (memory_load64_le(mem, 69672bv64) == 69672bv64); + free ensures (memory_load32_le(mem, 2324bv64) == 131073bv32); + free ensures (memory_load64_le(mem, 130424bv64) == 2256bv64); + free ensures (memory_load64_le(mem, 130432bv64) == 2176bv64); + free ensures (memory_load64_le(mem, 131032bv64) == 131092bv64); + free ensures (memory_load64_le(mem, 131040bv64) == 131096bv64); + free ensures (memory_load64_le(mem, 131056bv64) == 2260bv64); + free ensures (memory_load64_le(mem, 131080bv64) == 131080bv64); -implementation main_1812() +implementation main() { - var Gamma_load18: bool; - var load18: bv32; + var $load$18: bv64; + var $load$19: bv32; + var $load$20: bv64; + var Gamma_$load$18: bool; + var Gamma_$load$19: bool; + var Gamma_$load$20: bool; var z_old: bv32; lmain: assume {:captureState "lmain"} true; - R8, Gamma_R8 := 69632bv64, true; + R8, Gamma_R8 := 126976bv64, true; + call rely(); + $load$18, Gamma_$load$18 := memory_load64_le(mem, bvadd64(R8, 4056bv64)), (gamma_load64(Gamma_mem, bvadd64(R8, 4056bv64)) || L(mem, bvadd64(R8, 4056bv64))); + R8, Gamma_R8 := $load$18, Gamma_$load$18; call rely(); - load18, Gamma_load18 := memory_load32_le(mem, bvadd64(R8, 52bv64)), (gamma_load32(Gamma_mem, bvadd64(R8, 52bv64)) || L(mem, bvadd64(R8, 52bv64))); - R8, Gamma_R8 := zero_extend32_32(load18), Gamma_load18; + $load$19, Gamma_$load$19 := memory_load32_le(mem, R8), (gamma_load32(Gamma_mem, R8) || L(mem, R8)); + R8, Gamma_R8 := zero_extend32_32($load$19), Gamma_$load$19; assert Gamma_R8; - goto lmain_goto_l000002dc, lmain_goto_l000002f7; - lmain_goto_l000002f7: - assume {:captureState "lmain_goto_l000002f7"} true; - assume (bvcomp32(R8[32:0], 0bv32) == 0bv1); - R0, Gamma_R0 := 0bv64, true; - goto main_1812_basil_return; - lmain_goto_l000002dc: - assume {:captureState "lmain_goto_l000002dc"} true; - assume (bvcomp32(R8[32:0], 0bv32) != 0bv1); - R8, Gamma_R8 := 69632bv64, true; + goto lmain_goto_l0000028c, lmain_goto_l00000294; + l0000028c: + assume {:captureState "l0000028c"} true; + R8, Gamma_R8 := 126976bv64, true; + call rely(); + $load$20, Gamma_$load$20 := memory_load64_le(mem, bvadd64(R8, 4064bv64)), (gamma_load64(Gamma_mem, bvadd64(R8, 4064bv64)) || L(mem, bvadd64(R8, 4064bv64))); + R8, Gamma_R8 := $load$20, Gamma_$load$20; call rely(); + assert (L(mem, R8) ==> true); z_old := memory_load32_le(mem, $z_addr); - assert (L(mem, bvadd64(R8, 56bv64)) ==> true); - mem, Gamma_mem := memory_store32_le(mem, bvadd64(R8, 56bv64), 0bv32), gamma_store32(Gamma_mem, bvadd64(R8, 56bv64), true); + mem, Gamma_mem := memory_store32_le(mem, R8, 0bv32), gamma_store32(Gamma_mem, R8, true); assert (memory_load32_le(mem, $z_addr) == z_old); - assume {:captureState "%000002eb"} true; + assume {:captureState "%000002a0"} true; + R0, Gamma_R0 := 0bv64, true; + goto main_basil_return; + l00000294: + assume {:captureState "l00000294"} true; R0, Gamma_R0 := 0bv64, true; - goto main_1812_basil_return; - main_1812_basil_return: - assume {:captureState "main_1812_basil_return"} true; + goto main_basil_return; + lmain_goto_l0000028c: + assume {:captureState "lmain_goto_l0000028c"} true; + assume (bvcomp32(R8[32:0], 0bv32) != 0bv1); + goto l0000028c; + lmain_goto_l00000294: + assume {:captureState "lmain_goto_l00000294"} true; + assume (bvcomp32(R8[32:0], 0bv32) == 0bv1); + goto l00000294; + main_basil_return: + assume {:captureState "main_basil_return"} true; return; } diff --git a/src/test/correct/basic_lock_read/clang_O2/basic_lock_read.gts b/src/test/correct/basic_lock_read/clang_O2/basic_lock_read.gts deleted file mode 100644 index 98bf70e7c..000000000 Binary files a/src/test/correct/basic_lock_read/clang_O2/basic_lock_read.gts and /dev/null differ diff --git a/src/test/correct/basic_lock_read/clang_O2/basic_lock_read.md5sum b/src/test/correct/basic_lock_read/clang_O2/basic_lock_read.md5sum new file mode 100644 index 000000000..5b3c8b1dc --- /dev/null +++ b/src/test/correct/basic_lock_read/clang_O2/basic_lock_read.md5sum @@ -0,0 +1,5 @@ +8724691538c910920bdc73fe87c271f3 correct/basic_lock_read/clang_O2/a.out +5d01cc1189567147c1b8798ce237eb7f correct/basic_lock_read/clang_O2/basic_lock_read.adt +b1c81d7c6ee20d1af484ae66422141eb correct/basic_lock_read/clang_O2/basic_lock_read.bir +9aa47e503756485245a1fa8729fa3136 correct/basic_lock_read/clang_O2/basic_lock_read.relf +aa4dfa20348db9d1950366fe3045374b correct/basic_lock_read/clang_O2/basic_lock_read.gts diff --git a/src/test/correct/basic_lock_read/clang_O2/basic_lock_read.relf b/src/test/correct/basic_lock_read/clang_O2/basic_lock_read.relf deleted file mode 100644 index 2587f4afd..000000000 --- a/src/test/correct/basic_lock_read/clang_O2/basic_lock_read.relf +++ /dev/null @@ -1,124 +0,0 @@ - -Relocation section '.rela.dyn' at offset 0x460 contains 8 entries: - Offset Info Type Symbol's Value Symbol's Name + Addend -0000000000010dc8 0000000000000403 R_AARCH64_RELATIVE 710 -0000000000010dd0 0000000000000403 R_AARCH64_RELATIVE 6c0 -0000000000010fd8 0000000000000403 R_AARCH64_RELATIVE 714 -0000000000011028 0000000000000403 R_AARCH64_RELATIVE 11028 -0000000000010fc0 0000000400000401 R_AARCH64_GLOB_DAT 0000000000000000 _ITM_deregisterTMCloneTable + 0 -0000000000010fc8 0000000500000401 R_AARCH64_GLOB_DAT 0000000000000000 __cxa_finalize@GLIBC_2.17 + 0 -0000000000010fd0 0000000600000401 R_AARCH64_GLOB_DAT 0000000000000000 __gmon_start__ + 0 -0000000000010fe0 0000000800000401 R_AARCH64_GLOB_DAT 0000000000000000 _ITM_registerTMCloneTable + 0 - -Relocation section '.rela.plt' at offset 0x520 contains 4 entries: - Offset Info Type Symbol's Value Symbol's Name + Addend -0000000000011000 0000000300000402 R_AARCH64_JUMP_SLOT 0000000000000000 __libc_start_main@GLIBC_2.34 + 0 -0000000000011008 0000000500000402 R_AARCH64_JUMP_SLOT 0000000000000000 __cxa_finalize@GLIBC_2.17 + 0 -0000000000011010 0000000600000402 R_AARCH64_JUMP_SLOT 0000000000000000 __gmon_start__ + 0 -0000000000011018 0000000700000402 R_AARCH64_JUMP_SLOT 0000000000000000 abort@GLIBC_2.17 + 0 - -Symbol table '.dynsym' contains 9 entries: - Num: Value Size Type Bind Vis Ndx Name - 0: 0000000000000000 0 NOTYPE LOCAL DEFAULT UND - 1: 0000000000000580 0 SECTION LOCAL DEFAULT 11 .init - 2: 0000000000011020 0 SECTION LOCAL DEFAULT 23 .data - 3: 0000000000000000 0 FUNC GLOBAL DEFAULT UND __libc_start_main@GLIBC_2.34 (2) - 4: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_deregisterTMCloneTable - 5: 0000000000000000 0 FUNC WEAK DEFAULT UND __cxa_finalize@GLIBC_2.17 (3) - 6: 0000000000000000 0 NOTYPE WEAK DEFAULT UND __gmon_start__ - 7: 0000000000000000 0 FUNC GLOBAL DEFAULT UND abort@GLIBC_2.17 (3) - 8: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_registerTMCloneTable - -Symbol table '.symtab' contains 91 entries: - Num: Value Size Type Bind Vis Ndx Name - 0: 0000000000000000 0 NOTYPE LOCAL DEFAULT UND - 1: 0000000000000238 0 SECTION LOCAL DEFAULT 1 .interp - 2: 0000000000000254 0 SECTION LOCAL DEFAULT 2 .note.gnu.build-id - 3: 0000000000000278 0 SECTION LOCAL DEFAULT 3 .note.ABI-tag - 4: 0000000000000298 0 SECTION LOCAL DEFAULT 4 .gnu.hash - 5: 00000000000002b8 0 SECTION LOCAL DEFAULT 5 .dynsym - 6: 0000000000000390 0 SECTION LOCAL DEFAULT 6 .dynstr - 7: 000000000000041e 0 SECTION LOCAL DEFAULT 7 .gnu.version - 8: 0000000000000430 0 SECTION LOCAL DEFAULT 8 .gnu.version_r - 9: 0000000000000460 0 SECTION LOCAL DEFAULT 9 .rela.dyn - 10: 0000000000000520 0 SECTION LOCAL DEFAULT 10 .rela.plt - 11: 0000000000000580 0 SECTION LOCAL DEFAULT 11 .init - 12: 00000000000005a0 0 SECTION LOCAL DEFAULT 12 .plt - 13: 0000000000000600 0 SECTION LOCAL DEFAULT 13 .text - 14: 0000000000000738 0 SECTION LOCAL DEFAULT 14 .fini - 15: 000000000000074c 0 SECTION LOCAL DEFAULT 15 .rodata - 16: 0000000000000750 0 SECTION LOCAL DEFAULT 16 .eh_frame_hdr - 17: 0000000000000790 0 SECTION LOCAL DEFAULT 17 .eh_frame - 18: 0000000000010dc8 0 SECTION LOCAL DEFAULT 18 .init_array - 19: 0000000000010dd0 0 SECTION LOCAL DEFAULT 19 .fini_array - 20: 0000000000010dd8 0 SECTION LOCAL DEFAULT 20 .dynamic - 21: 0000000000010fb8 0 SECTION LOCAL DEFAULT 21 .got - 22: 0000000000010fe8 0 SECTION LOCAL DEFAULT 22 .got.plt - 23: 0000000000011020 0 SECTION LOCAL DEFAULT 23 .data - 24: 0000000000011030 0 SECTION LOCAL DEFAULT 24 .bss - 25: 0000000000000000 0 SECTION LOCAL DEFAULT 25 .comment - 26: 0000000000000000 0 FILE LOCAL DEFAULT ABS Scrt1.o - 27: 0000000000000278 0 NOTYPE LOCAL DEFAULT 3 $d - 28: 0000000000000278 32 OBJECT LOCAL DEFAULT 3 __abi_tag - 29: 0000000000000600 0 NOTYPE LOCAL DEFAULT 13 $x - 30: 00000000000007a4 0 NOTYPE LOCAL DEFAULT 17 $d - 31: 000000000000074c 0 NOTYPE LOCAL DEFAULT 15 $d - 32: 0000000000000000 0 FILE LOCAL DEFAULT ABS crti.o - 33: 0000000000000634 0 NOTYPE LOCAL DEFAULT 13 $x - 34: 0000000000000634 20 FUNC LOCAL DEFAULT 13 call_weak_fn - 35: 0000000000000580 0 NOTYPE LOCAL DEFAULT 11 $x - 36: 0000000000000738 0 NOTYPE LOCAL DEFAULT 14 $x - 37: 0000000000000000 0 FILE LOCAL DEFAULT ABS crtn.o - 38: 0000000000000590 0 NOTYPE LOCAL DEFAULT 11 $x - 39: 0000000000000744 0 NOTYPE LOCAL DEFAULT 14 $x - 40: 0000000000000000 0 FILE LOCAL DEFAULT ABS crtstuff.c - 41: 0000000000000650 0 NOTYPE LOCAL DEFAULT 13 $x - 42: 0000000000000650 0 FUNC LOCAL DEFAULT 13 deregister_tm_clones - 43: 0000000000000680 0 FUNC LOCAL DEFAULT 13 register_tm_clones - 44: 0000000000011028 0 NOTYPE LOCAL DEFAULT 23 $d - 45: 00000000000006c0 0 FUNC LOCAL DEFAULT 13 __do_global_dtors_aux - 46: 0000000000011030 1 OBJECT LOCAL DEFAULT 24 completed.0 - 47: 0000000000010dd0 0 NOTYPE LOCAL DEFAULT 19 $d - 48: 0000000000010dd0 0 OBJECT LOCAL DEFAULT 19 __do_global_dtors_aux_fini_array_entry - 49: 0000000000000710 0 FUNC LOCAL DEFAULT 13 frame_dummy - 50: 0000000000010dc8 0 NOTYPE LOCAL DEFAULT 18 $d - 51: 0000000000010dc8 0 OBJECT LOCAL DEFAULT 18 __frame_dummy_init_array_entry - 52: 00000000000007b8 0 NOTYPE LOCAL DEFAULT 17 $d - 53: 0000000000011030 0 NOTYPE LOCAL DEFAULT 24 $d - 54: 0000000000000000 0 FILE LOCAL DEFAULT ABS basic_lock_read.c - 55: 0000000000000714 0 NOTYPE LOCAL DEFAULT 13 $x.0 - 56: 0000000000011034 0 NOTYPE LOCAL DEFAULT 24 $d.1 - 57: 000000000000002a 0 NOTYPE LOCAL DEFAULT 25 $d.2 - 58: 0000000000000818 0 NOTYPE LOCAL DEFAULT 17 $d.3 - 59: 0000000000000000 0 FILE LOCAL DEFAULT ABS crtstuff.c - 60: 0000000000000840 0 NOTYPE LOCAL DEFAULT 17 $d - 61: 0000000000000840 0 OBJECT LOCAL DEFAULT 17 __FRAME_END__ - 62: 0000000000000000 0 FILE LOCAL DEFAULT ABS - 63: 0000000000010dd8 0 OBJECT LOCAL DEFAULT ABS _DYNAMIC - 64: 0000000000000750 0 NOTYPE LOCAL DEFAULT 16 __GNU_EH_FRAME_HDR - 65: 0000000000010fb8 0 OBJECT LOCAL DEFAULT ABS _GLOBAL_OFFSET_TABLE_ - 66: 00000000000005a0 0 NOTYPE LOCAL DEFAULT 12 $x - 67: 0000000000000000 0 FUNC GLOBAL DEFAULT UND __libc_start_main@GLIBC_2.34 - 68: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_deregisterTMCloneTable - 69: 0000000000011020 0 NOTYPE WEAK DEFAULT 23 data_start - 70: 0000000000011030 0 NOTYPE GLOBAL DEFAULT 24 __bss_start__ - 71: 0000000000000000 0 FUNC WEAK DEFAULT UND __cxa_finalize@GLIBC_2.17 - 72: 0000000000011040 0 NOTYPE GLOBAL DEFAULT 24 _bss_end__ - 73: 0000000000011030 0 NOTYPE GLOBAL DEFAULT 23 _edata - 74: 0000000000011034 4 OBJECT GLOBAL DEFAULT 24 z - 75: 0000000000011038 4 OBJECT GLOBAL DEFAULT 24 x - 76: 0000000000000738 0 FUNC GLOBAL HIDDEN 14 _fini - 77: 0000000000011040 0 NOTYPE GLOBAL DEFAULT 24 __bss_end__ - 78: 0000000000011020 0 NOTYPE GLOBAL DEFAULT 23 __data_start - 79: 0000000000000000 0 NOTYPE WEAK DEFAULT UND __gmon_start__ - 80: 0000000000011028 0 OBJECT GLOBAL HIDDEN 23 __dso_handle - 81: 0000000000000000 0 FUNC GLOBAL DEFAULT UND abort@GLIBC_2.17 - 82: 000000000000074c 4 OBJECT GLOBAL DEFAULT 15 _IO_stdin_used - 83: 0000000000011040 0 NOTYPE GLOBAL DEFAULT 24 _end - 84: 0000000000000600 52 FUNC GLOBAL DEFAULT 13 _start - 85: 0000000000011040 0 NOTYPE GLOBAL DEFAULT 24 __end__ - 86: 0000000000011030 0 NOTYPE GLOBAL DEFAULT 24 __bss_start - 87: 0000000000000714 36 FUNC GLOBAL DEFAULT 13 main - 88: 0000000000011030 0 OBJECT GLOBAL HIDDEN 23 __TMC_END__ - 89: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_registerTMCloneTable - 90: 0000000000000580 0 FUNC GLOBAL HIDDEN 11 _init diff --git a/src/test/correct/basic_lock_read/clang_O2/basic_lock_read_gtirb.expected b/src/test/correct/basic_lock_read/clang_O2/basic_lock_read_gtirb.expected index 0a7632f4a..5ea6dfce3 100644 --- a/src/test/correct/basic_lock_read/clang_O2/basic_lock_read_gtirb.expected +++ b/src/test/correct/basic_lock_read/clang_O2/basic_lock_read_gtirb.expected @@ -5,9 +5,9 @@ var {:extern} R0: bv64; var {:extern} R8: bv64; var {:extern} mem: [bv64]bv8; const {:extern} $x_addr: bv64; -axiom ($x_addr == 69688bv64); +axiom ($x_addr == 131096bv64); const {:extern} $z_addr: bv64; -axiom ($z_addr == 69684bv64); +axiom ($z_addr == 131092bv64); function {:extern} L(mem$in: [bv64]bv8, index: bv64) returns (bool) { (if (index == $x_addr) then true else (if (index == $z_addr) then true else false)) } @@ -17,6 +17,10 @@ function {:extern} gamma_load32(gammaMap: [bv64]bool, index: bv64) returns (bool (gammaMap[bvadd64(index, 3bv64)] && (gammaMap[bvadd64(index, 2bv64)] && (gammaMap[bvadd64(index, 1bv64)] && gammaMap[index]))) } +function {:extern} gamma_load64(gammaMap: [bv64]bool, index: bv64) returns (bool) { + (gammaMap[bvadd64(index, 7bv64)] && (gammaMap[bvadd64(index, 6bv64)] && (gammaMap[bvadd64(index, 5bv64)] && (gammaMap[bvadd64(index, 4bv64)] && (gammaMap[bvadd64(index, 3bv64)] && (gammaMap[bvadd64(index, 2bv64)] && (gammaMap[bvadd64(index, 1bv64)] && gammaMap[index]))))))) +} + function {:extern} gamma_store32(gammaMap: [bv64]bool, index: bv64, value: bool) returns ([bv64]bool) { gammaMap[index := value][bvadd64(index, 1bv64) := value][bvadd64(index, 2bv64) := value][bvadd64(index, 3bv64) := value] } @@ -38,11 +42,13 @@ procedure {:extern} rely(); modifies Gamma_mem, mem; ensures (forall i: bv64 :: (((mem[i] == old(mem[i])) ==> (Gamma_mem[i] == old(Gamma_mem[i]))))); ensures ((old(memory_load32_le(mem, $z_addr)) == 0bv32) ==> ((memory_load32_le(mem, $x_addr) == old(memory_load32_le(mem, $x_addr))) && (memory_load32_le(mem, $z_addr) == old(memory_load32_le(mem, $z_addr))))); - free ensures (memory_load32_le(mem, 1868bv64) == 131073bv32); - free ensures (memory_load64_le(mem, 69064bv64) == 1808bv64); - free ensures (memory_load64_le(mem, 69072bv64) == 1728bv64); - free ensures (memory_load64_le(mem, 69592bv64) == 1812bv64); - free ensures (memory_load64_le(mem, 69672bv64) == 69672bv64); + free ensures (memory_load32_le(mem, 2324bv64) == 131073bv32); + free ensures (memory_load64_le(mem, 130424bv64) == 2256bv64); + free ensures (memory_load64_le(mem, 130432bv64) == 2176bv64); + free ensures (memory_load64_le(mem, 131032bv64) == 131092bv64); + free ensures (memory_load64_le(mem, 131040bv64) == 131096bv64); + free ensures (memory_load64_le(mem, 131056bv64) == 2260bv64); + free ensures (memory_load64_le(mem, 131080bv64) == 131080bv64); procedure {:extern} rely_transitive(); modifies Gamma_mem, mem; @@ -69,60 +75,74 @@ implementation {:extern} guarantee_reflexive() assert (memory_load32_le(mem, $z_addr) == memory_load32_le(mem, $z_addr)); } -procedure main_1812(); +procedure main(); modifies Gamma_R0, Gamma_R8, Gamma_mem, R0, R8, mem; - free requires (memory_load64_le(mem, 69664bv64) == 0bv64); - free requires (memory_load64_le(mem, 69672bv64) == 69672bv64); - free requires (memory_load32_le(mem, 1868bv64) == 131073bv32); - free requires (memory_load64_le(mem, 69064bv64) == 1808bv64); - free requires (memory_load64_le(mem, 69072bv64) == 1728bv64); - free requires (memory_load64_le(mem, 69592bv64) == 1812bv64); - free requires (memory_load64_le(mem, 69672bv64) == 69672bv64); + free requires (memory_load64_le(mem, 131072bv64) == 0bv64); + free requires (memory_load64_le(mem, 131080bv64) == 131080bv64); + free requires (memory_load32_le(mem, 2324bv64) == 131073bv32); + free requires (memory_load64_le(mem, 130424bv64) == 2256bv64); + free requires (memory_load64_le(mem, 130432bv64) == 2176bv64); + free requires (memory_load64_le(mem, 131032bv64) == 131092bv64); + free requires (memory_load64_le(mem, 131040bv64) == 131096bv64); + free requires (memory_load64_le(mem, 131056bv64) == 2260bv64); + free requires (memory_load64_le(mem, 131080bv64) == 131080bv64); ensures (R0[32:0] == 0bv32); - free ensures (memory_load32_le(mem, 1868bv64) == 131073bv32); - free ensures (memory_load64_le(mem, 69064bv64) == 1808bv64); - free ensures (memory_load64_le(mem, 69072bv64) == 1728bv64); - free ensures (memory_load64_le(mem, 69592bv64) == 1812bv64); - free ensures (memory_load64_le(mem, 69672bv64) == 69672bv64); + free ensures (memory_load32_le(mem, 2324bv64) == 131073bv32); + free ensures (memory_load64_le(mem, 130424bv64) == 2256bv64); + free ensures (memory_load64_le(mem, 130432bv64) == 2176bv64); + free ensures (memory_load64_le(mem, 131032bv64) == 131092bv64); + free ensures (memory_load64_le(mem, 131040bv64) == 131096bv64); + free ensures (memory_load64_le(mem, 131056bv64) == 2260bv64); + free ensures (memory_load64_le(mem, 131080bv64) == 131080bv64); -implementation main_1812() +implementation main() { - var Gamma_load3: bool; - var load3: bv32; + var $load0: bv64; + var $load1: bv64; + var $load2: bv32; + var Gamma_$load0: bool; + var Gamma_$load1: bool; + var Gamma_$load2: bool; var z_old: bv32; - main_1812__0__WS3unIRvQP~HMbu0zRO9Wg: - assume {:captureState "main_1812__0__WS3unIRvQP~HMbu0zRO9Wg"} true; - R8, Gamma_R8 := 69632bv64, true; + $main$__0__$lwyID0MJQb6vgyjzPFtz8Q: + assume {:captureState "$main$__0__$lwyID0MJQb6vgyjzPFtz8Q"} true; + R8, Gamma_R8 := 126976bv64, true; call rely(); - load3, Gamma_load3 := memory_load32_le(mem, bvadd64(R8, 52bv64)), (gamma_load32(Gamma_mem, bvadd64(R8, 52bv64)) || L(mem, bvadd64(R8, 52bv64))); - R8, Gamma_R8 := zero_extend32_32(load3), Gamma_load3; + $load1, Gamma_$load1 := memory_load64_le(mem, bvadd64(R8, 4056bv64)), (gamma_load64(Gamma_mem, bvadd64(R8, 4056bv64)) || L(mem, bvadd64(R8, 4056bv64))); + R8, Gamma_R8 := $load1, Gamma_$load1; + call rely(); + $load2, Gamma_$load2 := memory_load32_le(mem, R8), (gamma_load32(Gamma_mem, R8) || L(mem, R8)); + R8, Gamma_R8 := zero_extend32_32($load2), Gamma_$load2; assert Gamma_R8; - goto main_1812__0__WS3unIRvQP~HMbu0zRO9Wg_goto_main_1812__2__lHXxwUQYROKiGyY65vpP1Q, main_1812__0__WS3unIRvQP~HMbu0zRO9Wg_goto_main_1812__1__VRrOrprpRgq70GRGqvu1TQ; - main_1812__0__WS3unIRvQP~HMbu0zRO9Wg_goto_main_1812__1__VRrOrprpRgq70GRGqvu1TQ: - assume {:captureState "main_1812__0__WS3unIRvQP~HMbu0zRO9Wg_goto_main_1812__1__VRrOrprpRgq70GRGqvu1TQ"} true; - assume (!(R8[32:0] == 0bv32)); + goto $main$__0__$lwyID0MJQb6vgyjzPFtz8Q_goto_$main$__2__$SFN4dpBgSO2bPUu0fyDluw, $main$__0__$lwyID0MJQb6vgyjzPFtz8Q_goto_$main$__1__$TxTRm4kpQiq_Xgistx~xbQ; + $main$__1__$TxTRm4kpQiq_Xgistx~xbQ: + assume {:captureState "$main$__1__$TxTRm4kpQiq_Xgistx~xbQ"} true; R0, Gamma_R0 := 0bv64, true; - goto main_1812__1__VRrOrprpRgq70GRGqvu1TQ; - main_1812__1__VRrOrprpRgq70GRGqvu1TQ: - assume {:captureState "main_1812__1__VRrOrprpRgq70GRGqvu1TQ"} true; - goto main_1812_basil_return; - main_1812__0__WS3unIRvQP~HMbu0zRO9Wg_goto_main_1812__2__lHXxwUQYROKiGyY65vpP1Q: - assume {:captureState "main_1812__0__WS3unIRvQP~HMbu0zRO9Wg_goto_main_1812__2__lHXxwUQYROKiGyY65vpP1Q"} true; - assume (R8[32:0] == 0bv32); - R8, Gamma_R8 := 69632bv64, true; + goto main_basil_return; + $main$__2__$SFN4dpBgSO2bPUu0fyDluw: + assume {:captureState "$main$__2__$SFN4dpBgSO2bPUu0fyDluw"} true; + R8, Gamma_R8 := 126976bv64, true; + call rely(); + $load0, Gamma_$load0 := memory_load64_le(mem, bvadd64(R8, 4064bv64)), (gamma_load64(Gamma_mem, bvadd64(R8, 4064bv64)) || L(mem, bvadd64(R8, 4064bv64))); + R8, Gamma_R8 := $load0, Gamma_$load0; call rely(); + assert (L(mem, R8) ==> true); z_old := memory_load32_le(mem, $z_addr); - assert (L(mem, bvadd64(R8, 56bv64)) ==> true); - mem, Gamma_mem := memory_store32_le(mem, bvadd64(R8, 56bv64), 0bv32), gamma_store32(Gamma_mem, bvadd64(R8, 56bv64), true); + mem, Gamma_mem := memory_store32_le(mem, R8, 0bv32), gamma_store32(Gamma_mem, R8, true); assert (memory_load32_le(mem, $z_addr) == z_old); - assume {:captureState "1836_0"} true; + assume {:captureState "2292$0"} true; R0, Gamma_R0 := 0bv64, true; - goto main_1812__2__lHXxwUQYROKiGyY65vpP1Q; - main_1812__2__lHXxwUQYROKiGyY65vpP1Q: - assume {:captureState "main_1812__2__lHXxwUQYROKiGyY65vpP1Q"} true; - goto main_1812_basil_return; - main_1812_basil_return: - assume {:captureState "main_1812_basil_return"} true; + goto main_basil_return; + $main$__0__$lwyID0MJQb6vgyjzPFtz8Q_goto_$main$__2__$SFN4dpBgSO2bPUu0fyDluw: + assume {:captureState "$main$__0__$lwyID0MJQb6vgyjzPFtz8Q_goto_$main$__2__$SFN4dpBgSO2bPUu0fyDluw"} true; + assume (R8[32:0] == 0bv32); + goto $main$__2__$SFN4dpBgSO2bPUu0fyDluw; + $main$__0__$lwyID0MJQb6vgyjzPFtz8Q_goto_$main$__1__$TxTRm4kpQiq_Xgistx~xbQ: + assume {:captureState "$main$__0__$lwyID0MJQb6vgyjzPFtz8Q_goto_$main$__1__$TxTRm4kpQiq_Xgistx~xbQ"} true; + assume (!(R8[32:0] == 0bv32)); + goto $main$__1__$TxTRm4kpQiq_Xgistx~xbQ; + main_basil_return: + assume {:captureState "main_basil_return"} true; return; } diff --git a/src/test/correct/basic_lock_read/clang_pic/basic_lock_read.adt b/src/test/correct/basic_lock_read/clang_pic/basic_lock_read.adt deleted file mode 100644 index c4942d66a..000000000 --- a/src/test/correct/basic_lock_read/clang_pic/basic_lock_read.adt +++ /dev/null @@ -1,566 +0,0 @@ -Project(Attrs([Attr("filename","\"clang_pic/basic_lock_read.out\""), -Attr("image-specification","(declare abi (name str))\n(declare arch (name str))\n(declare base-address (addr int))\n(declare bias (off int))\n(declare bits (size int))\n(declare code-region (addr int) (size int) (off int))\n(declare code-start (addr int))\n(declare entry-point (addr int))\n(declare external-reference (addr int) (name str))\n(declare format (name str))\n(declare is-executable (flag bool))\n(declare is-little-endian (flag bool))\n(declare llvm:base-address (addr int))\n(declare llvm:code-entry (name str) (off int) (size int))\n(declare llvm:coff-import-library (name str))\n(declare llvm:coff-virtual-section-header (name str) (addr int) (size int))\n(declare llvm:elf-program-header (name str) (off int) (size int))\n(declare llvm:elf-program-header-flags (name str) (ld bool) (r bool) \n (w bool) (x bool))\n(declare llvm:elf-virtual-program-header (name str) (addr int) (size int))\n(declare llvm:entry-point (addr int))\n(declare llvm:macho-symbol (name str) (value int))\n(declare llvm:name-reference (at int) (name str))\n(declare llvm:relocation (at int) (addr int))\n(declare llvm:section-entry (name str) (addr int) (size int) (off int))\n(declare llvm:section-flags (name str) (r bool) (w bool) (x bool))\n(declare llvm:segment-command (name str) (off int) (size int))\n(declare llvm:segment-command-flags (name str) (r bool) (w bool) (x bool))\n(declare llvm:symbol-entry (name str) (addr int) (size int) (off int)\n (value int))\n(declare llvm:virtual-segment-command (name str) (addr int) (size int))\n(declare mapped (addr int) (size int) (off int))\n(declare named-region (addr int) (size int) (name str))\n(declare named-symbol (addr int) (name str))\n(declare require (name str))\n(declare section (addr int) (size int))\n(declare segment (addr int) (size int) (r bool) (w bool) (x bool))\n(declare subarch (name str))\n(declare symbol-chunk (addr int) (size int) (root int))\n(declare symbol-value (addr int) (value int))\n(declare system (name str))\n(declare vendor (name str))\n\n(abi unknown)\n(arch aarch64)\n(base-address 0)\n(bias 0)\n(bits 64)\n(code-region 1952 20 1952)\n(code-region 1600 352 1600)\n(code-region 1488 96 1488)\n(code-region 1456 24 1456)\n(code-start 1652)\n(code-start 1600)\n(code-start 1876)\n(entry-point 1600)\n(external-reference 69552 _ITM_deregisterTMCloneTable)\n(external-reference 69560 __cxa_finalize)\n(external-reference 69584 __gmon_start__)\n(external-reference 69600 _ITM_registerTMCloneTable)\n(external-reference 69632 __libc_start_main)\n(external-reference 69640 __cxa_finalize)\n(external-reference 69648 __gmon_start__)\n(external-reference 69656 abort)\n(format elf)\n(is-executable true)\n(is-little-endian true)\n(llvm:base-address 0)\n(llvm:code-entry abort 0 0)\n(llvm:code-entry __cxa_finalize 0 0)\n(llvm:code-entry __libc_start_main 0 0)\n(llvm:code-entry _init 1456 0)\n(llvm:code-entry main 1876 76)\n(llvm:code-entry _start 1600 52)\n(llvm:code-entry abort@GLIBC_2.17 0 0)\n(llvm:code-entry _fini 1952 0)\n(llvm:code-entry __cxa_finalize@GLIBC_2.17 0 0)\n(llvm:code-entry __libc_start_main@GLIBC_2.34 0 0)\n(llvm:code-entry frame_dummy 1872 0)\n(llvm:code-entry __do_global_dtors_aux 1792 0)\n(llvm:code-entry register_tm_clones 1728 0)\n(llvm:code-entry deregister_tm_clones 1680 0)\n(llvm:code-entry call_weak_fn 1652 20)\n(llvm:code-entry .fini 1952 20)\n(llvm:code-entry .text 1600 352)\n(llvm:code-entry .plt 1488 96)\n(llvm:code-entry .init 1456 24)\n(llvm:elf-program-header 08 3512 584)\n(llvm:elf-program-header 07 0 0)\n(llvm:elf-program-header 06 1976 60)\n(llvm:elf-program-header 05 596 68)\n(llvm:elf-program-header 04 3528 480)\n(llvm:elf-program-header 03 3512 632)\n(llvm:elf-program-header 02 0 2224)\n(llvm:elf-program-header 01 568 27)\n(llvm:elf-program-header 00 64 504)\n(llvm:elf-program-header-flags 08 false true false false)\n(llvm:elf-program-header-flags 07 false true true false)\n(llvm:elf-program-header-flags 06 false true false false)\n(llvm:elf-program-header-flags 05 false true false false)\n(llvm:elf-program-header-flags 04 false true true false)\n(llvm:elf-program-header-flags 03 true true true false)\n(llvm:elf-program-header-flags 02 true true false true)\n(llvm:elf-program-header-flags 01 false true false false)\n(llvm:elf-program-header-flags 00 false true false false)\n(llvm:elf-virtual-program-header 08 69048 584)\n(llvm:elf-virtual-program-header 07 0 0)\n(llvm:elf-virtual-program-header 06 1976 60)\n(llvm:elf-virtual-program-header 05 596 68)\n(llvm:elf-virtual-program-header 04 69064 480)\n(llvm:elf-virtual-program-header 03 69048 648)\n(llvm:elf-virtual-program-header 02 0 2224)\n(llvm:elf-virtual-program-header 01 568 27)\n(llvm:elf-virtual-program-header 00 64 504)\n(llvm:entry-point 1600)\n(llvm:name-reference 69656 abort)\n(llvm:name-reference 69648 __gmon_start__)\n(llvm:name-reference 69640 __cxa_finalize)\n(llvm:name-reference 69632 __libc_start_main)\n(llvm:name-reference 69600 _ITM_registerTMCloneTable)\n(llvm:name-reference 69584 __gmon_start__)\n(llvm:name-reference 69560 __cxa_finalize)\n(llvm:name-reference 69552 _ITM_deregisterTMCloneTable)\n(llvm:section-entry .shstrtab 0 259 6973)\n(llvm:section-entry .strtab 0 573 6400)\n(llvm:section-entry .symtab 0 2184 4216)\n(llvm:section-entry .comment 0 71 4144)\n(llvm:section-entry .bss 69680 16 4144)\n(llvm:section-entry .data 69664 16 4128)\n(llvm:section-entry .got.plt 69608 56 4072)\n(llvm:section-entry .got 69544 64 4008)\n(llvm:section-entry .dynamic 69064 480 3528)\n(llvm:section-entry .fini_array 69056 8 3520)\n(llvm:section-entry .init_array 69048 8 3512)\n(llvm:section-entry .eh_frame 2040 184 2040)\n(llvm:section-entry .eh_frame_hdr 1976 60 1976)\n(llvm:section-entry .rodata 1972 4 1972)\n(llvm:section-entry .fini 1952 20 1952)\n(llvm:section-entry .text 1600 352 1600)\n(llvm:section-entry .plt 1488 96 1488)\n(llvm:section-entry .init 1456 24 1456)\n(llvm:section-entry .rela.plt 1360 96 1360)\n(llvm:section-entry .rela.dyn 1120 240 1120)\n(llvm:section-entry .gnu.version_r 1072 48 1072)\n(llvm:section-entry .gnu.version 1054 18 1054)\n(llvm:section-entry .dynstr 912 141 912)\n(llvm:section-entry .dynsym 696 216 696)\n(llvm:section-entry .gnu.hash 664 28 664)\n(llvm:section-entry .note.ABI-tag 632 32 632)\n(llvm:section-entry .note.gnu.build-id 596 36 596)\n(llvm:section-entry .interp 568 27 568)\n(llvm:section-flags .shstrtab true false false)\n(llvm:section-flags .strtab true false false)\n(llvm:section-flags .symtab true false false)\n(llvm:section-flags .comment true false false)\n(llvm:section-flags .bss true true false)\n(llvm:section-flags .data true true false)\n(llvm:section-flags .got.plt true true false)\n(llvm:section-flags .got true true false)\n(llvm:section-flags .dynamic true true false)\n(llvm:section-flags .fini_array true true false)\n(llvm:section-flags .init_array true true false)\n(llvm:section-flags .eh_frame true false false)\n(llvm:section-flags .eh_frame_hdr true false false)\n(llvm:section-flags .rodata true false false)\n(llvm:section-flags .fini true false true)\n(llvm:section-flags .text true false true)\n(llvm:section-flags .plt true false true)\n(llvm:section-flags .init true false true)\n(llvm:section-flags .rela.plt true false false)\n(llvm:section-flags .rela.dyn true false false)\n(llvm:section-flags .gnu.version_r true false false)\n(llvm:section-flags .gnu.version true false false)\n(llvm:section-flags .dynstr true false false)\n(llvm:section-flags .dynsym true false false)\n(llvm:section-flags .gnu.hash true false false)\n(llvm:section-flags .note.ABI-tag true false false)\n(llvm:section-flags .note.gnu.build-id true false false)\n(llvm:section-flags .interp true false false)\n(llvm:symbol-entry abort 0 0 0 0)\n(llvm:symbol-entry __cxa_finalize 0 0 0 0)\n(llvm:symbol-entry __libc_start_main 0 0 0 0)\n(llvm:symbol-entry _init 1456 0 1456 1456)\n(llvm:symbol-entry main 1876 76 1876 1876)\n(llvm:symbol-entry _start 1600 52 1600 1600)\n(llvm:symbol-entry abort@GLIBC_2.17 0 0 0 0)\n(llvm:symbol-entry _fini 1952 0 1952 1952)\n(llvm:symbol-entry __cxa_finalize@GLIBC_2.17 0 0 0 0)\n(llvm:symbol-entry __libc_start_main@GLIBC_2.34 0 0 0 0)\n(llvm:symbol-entry frame_dummy 1872 0 1872 1872)\n(llvm:symbol-entry __do_global_dtors_aux 1792 0 1792 1792)\n(llvm:symbol-entry register_tm_clones 1728 0 1728 1728)\n(llvm:symbol-entry deregister_tm_clones 1680 0 1680 1680)\n(llvm:symbol-entry call_weak_fn 1652 20 1652 1652)\n(mapped 0 2224 0)\n(mapped 69048 632 3512)\n(named-region 0 2224 02)\n(named-region 69048 648 03)\n(named-region 568 27 .interp)\n(named-region 596 36 .note.gnu.build-id)\n(named-region 632 32 .note.ABI-tag)\n(named-region 664 28 .gnu.hash)\n(named-region 696 216 .dynsym)\n(named-region 912 141 .dynstr)\n(named-region 1054 18 .gnu.version)\n(named-region 1072 48 .gnu.version_r)\n(named-region 1120 240 .rela.dyn)\n(named-region 1360 96 .rela.plt)\n(named-region 1456 24 .init)\n(named-region 1488 96 .plt)\n(named-region 1600 352 .text)\n(named-region 1952 20 .fini)\n(named-region 1972 4 .rodata)\n(named-region 1976 60 .eh_frame_hdr)\n(named-region 2040 184 .eh_frame)\n(named-region 69048 8 .init_array)\n(named-region 69056 8 .fini_array)\n(named-region 69064 480 .dynamic)\n(named-region 69544 64 .got)\n(named-region 69608 56 .got.plt)\n(named-region 69664 16 .data)\n(named-region 69680 16 .bss)\n(named-region 0 71 .comment)\n(named-region 0 2184 .symtab)\n(named-region 0 573 .strtab)\n(named-region 0 259 .shstrtab)\n(named-symbol 1652 call_weak_fn)\n(named-symbol 1680 deregister_tm_clones)\n(named-symbol 1728 register_tm_clones)\n(named-symbol 1792 __do_global_dtors_aux)\n(named-symbol 1872 frame_dummy)\n(named-symbol 0 __libc_start_main@GLIBC_2.34)\n(named-symbol 0 __cxa_finalize@GLIBC_2.17)\n(named-symbol 1952 _fini)\n(named-symbol 0 abort@GLIBC_2.17)\n(named-symbol 1600 _start)\n(named-symbol 1876 main)\n(named-symbol 1456 _init)\n(named-symbol 0 __libc_start_main)\n(named-symbol 0 __cxa_finalize)\n(named-symbol 0 abort)\n(require libc.so.6)\n(section 568 27)\n(section 596 36)\n(section 632 32)\n(section 664 28)\n(section 696 216)\n(section 912 141)\n(section 1054 18)\n(section 1072 48)\n(section 1120 240)\n(section 1360 96)\n(section 1456 24)\n(section 1488 96)\n(section 1600 352)\n(section 1952 20)\n(section 1972 4)\n(section 1976 60)\n(section 2040 184)\n(section 69048 8)\n(section 69056 8)\n(section 69064 480)\n(section 69544 64)\n(section 69608 56)\n(section 69664 16)\n(section 69680 16)\n(section 0 71)\n(section 0 2184)\n(section 0 573)\n(section 0 259)\n(segment 0 2224 true false true)\n(segment 69048 648 true true false)\n(subarch v8)\n(symbol-chunk 1652 20 1652)\n(symbol-chunk 1600 52 1600)\n(symbol-chunk 1876 76 1876)\n(symbol-value 1652 1652)\n(symbol-value 1680 1680)\n(symbol-value 1728 1728)\n(symbol-value 1792 1792)\n(symbol-value 1872 1872)\n(symbol-value 1952 1952)\n(symbol-value 1600 1600)\n(symbol-value 1876 1876)\n(symbol-value 1456 1456)\n(symbol-value 0 0)\n(system \"\")\n(vendor \"\")\n"), -Attr("abi-name","\"aarch64-linux-gnu-elf\"")]), -Sections([Section(".shstrtab", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x40\x06\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x1c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x38\x00\x09\x00\x40\x00\x1d\x00\x1c\x00\x06\x00\x00\x00\x04\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x04\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xb0\x08\x00\x00\x00\x00\x00\x00\xb0\x08\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x01\x00\x00\x00\x06\x00\x00\x00\xb8\x0d\x00\x00\x00\x00\x00\x00\xb8\x0d\x01\x00\x00\x00\x00\x00\xb8\x0d\x01"), -Section(".strtab", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x40\x06\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x1c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x38\x00\x09\x00\x40\x00\x1d\x00\x1c\x00\x06\x00\x00\x00\x04\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x04\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xb0\x08\x00\x00\x00\x00\x00\x00\xb0\x08\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x01\x00\x00\x00\x06\x00\x00\x00\xb8\x0d\x00\x00\x00\x00\x00\x00\xb8\x0d\x01\x00\x00\x00\x00\x00\xb8\x0d\x01\x00\x00\x00\x00\x00\x78\x02\x00\x00\x00\x00\x00\x00\x88\x02\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x02\x00\x00\x00\x06\x00\x00\x00\xc8\x0d\x00\x00\x00\x00\x00\x00\xc8\x0d\x01\x00\x00\x00\x00\x00\xc8\x0d\x01\x00\x00\x00\x00\x00\xe0\x01\x00\x00\x00\x00\x00\x00\xe0\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x04\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x50\xe5\x74\x64\x04\x00\x00\x00\xb8\x07\x00\x00\x00\x00\x00\x00\xb8\x07\x00\x00\x00\x00\x00\x00\xb8\x07\x00\x00\x00\x00\x00\x00\x3c\x00\x00\x00\x00\x00\x00\x00\x3c\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x51\xe5\x74\x64\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x52\xe5\x74\x64\x04\x00\x00\x00\xb8\x0d\x00\x00\x00\x00\x00\x00\xb8\x0d\x01\x00\x00\x00\x00\x00\xb8\x0d\x01\x00\x00\x00\x00\x00\x48\x02\x00\x00\x00\x00\x00\x00\x48\x02\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x2f\x6c\x69\x62\x2f"), -Section(".symtab", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x40\x06\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x1c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x38\x00\x09\x00\x40\x00\x1d\x00\x1c\x00\x06\x00\x00\x00\x04\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x04\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xb0\x08\x00\x00\x00\x00\x00\x00\xb0\x08\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x01\x00\x00\x00\x06\x00\x00\x00\xb8\x0d\x00\x00\x00\x00\x00\x00\xb8\x0d\x01\x00\x00\x00\x00\x00\xb8\x0d\x01\x00\x00\x00\x00\x00\x78\x02\x00\x00\x00\x00\x00\x00\x88\x02\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x02\x00\x00\x00\x06\x00\x00\x00\xc8\x0d\x00\x00\x00\x00\x00\x00\xc8\x0d\x01\x00\x00\x00\x00\x00\xc8\x0d\x01\x00\x00\x00\x00\x00\xe0\x01\x00\x00\x00\x00\x00\x00\xe0\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x04\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x50\xe5\x74\x64\x04\x00\x00\x00\xb8\x07\x00\x00\x00\x00\x00\x00\xb8\x07\x00\x00\x00\x00\x00\x00\xb8\x07\x00\x00\x00\x00\x00\x00\x3c\x00\x00\x00\x00\x00\x00\x00\x3c\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x51\xe5\x74\x64\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x52\xe5\x74\x64\x04\x00\x00\x00\xb8\x0d\x00\x00\x00\x00\x00\x00\xb8\x0d\x01\x00\x00\x00\x00\x00\xb8\x0d\x01\x00\x00\x00\x00\x00\x48\x02\x00\x00\x00\x00\x00\x00\x48\x02\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x2f\x6c\x69\x62\x2f\x6c\x64\x2d\x6c\x69\x6e\x75\x78\x2d\x61\x61\x72\x63\x68\x36\x34\x2e\x73\x6f\x2e\x31\x00\x00\x04\x00\x00\x00\x14\x00\x00\x00\x03\x00\x00\x00\x47\x4e\x55\x00\x05\x72\xfb\x0a\xd6\x36\x51\xc9\x69\x8c\xa4\x08\x15\xbf\x83\x39\x9d\xcf\x86\xcc\x04\x00\x00\x00\x10\x00\x00\x00\x01\x00\x00\x00\x47\x4e\x55\x00\x00\x00\x00\x00\x03\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x01\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x0b\x00\xb0\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x17\x00\x20\x10\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x48\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x22\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x22\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x73\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5f\x5f\x63\x78\x61\x5f\x66\x69\x6e\x61\x6c\x69\x7a\x65\x00\x5f\x5f\x6c\x69\x62\x63\x5f\x73\x74\x61\x72\x74\x5f\x6d\x61\x69\x6e\x00\x61\x62\x6f\x72\x74\x00\x6c\x69\x62\x63\x2e\x73\x6f\x2e\x36\x00\x47\x4c\x49\x42\x43\x5f\x32\x2e\x31\x37\x00\x47\x4c\x49\x42\x43\x5f\x32\x2e\x33\x34\x00\x5f\x49\x54\x4d\x5f\x64\x65\x72\x65\x67\x69\x73\x74\x65\x72\x54\x4d\x43\x6c\x6f\x6e\x65\x54\x61\x62\x6c\x65\x00\x5f\x5f\x67\x6d\x6f\x6e\x5f\x73\x74\x61\x72\x74\x5f\x5f\x00\x5f\x49\x54\x4d\x5f\x72\x65\x67\x69\x73\x74\x65\x72\x54\x4d\x43\x6c\x6f\x6e\x65\x54\x61\x62\x6c\x65\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x01\x00\x03\x00\x01\x00\x03\x00\x01\x00\x01\x00\x02\x00\x28\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x97\x91\x96\x06\x00\x00\x03\x00\x32\x00\x00\x00\x10\x00\x00\x00\xb4\x91\x96\x06\x00\x00\x02\x00\x3d\x00\x00\x00\x00\x00\x00\x00\xb8\x0d\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x50\x07\x00\x00\x00\x00\x00\x00\xc0\x0d\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\xc0\x0f\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x34\x10\x01\x00\x00\x00\x00\x00\xc8\x0f\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x38\x10\x01\x00\x00\x00\x00\x00\xd8\x0f\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x54\x07\x00\x00\x00\x00\x00\x00\x28\x10\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x28\x10\x01\x00\x00\x00\x00\x00\xb0\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xb8\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xd0\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe0\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x08\x10\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x10\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x18\x10\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1f\x20\x03\xd5\xfd\x7b\xbf\xa9\xfd\x03\x00\x91\x2e\x00\x00\x94\xfd\x7b\xc1\xa8\xc0\x03\x5f\xd6\x00\x00\x00\x00\x00\x00\x00\x00\xf0\x7b\xbf\xa9\x90\x00\x00\x90\x11\xfe\x47\xf9\x10\xe2\x3f\x91\x20\x02\x1f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x90\x00\x00\xb0\x11\x02\x40\xf9\x10\x02\x00\x91\x20\x02\x1f\xd6\x90\x00\x00\xb0\x11\x06\x40\xf9\x10\x22\x00\x91\x20\x02\x1f\xd6\x90\x00\x00\xb0\x11\x0a\x40\xf9\x10\x42\x00\x91\x20\x02\x1f\xd6\x90\x00\x00\xb0\x11\x0e\x40\xf9\x10\x62\x00\x91\x20\x02\x1f\xd6\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1f\x20\x03\xd5\x1d\x00\x80\xd2\x1e\x00\x80\xd2\xe5\x03\x00\xaa\xe1\x03\x40\xf9\xe2\x23\x00\x91\xe6\x03\x00\x91\x80\x00\x00\x90\x00\xec\x47\xf9\x03\x00\x80\xd2\x04\x00\x80\xd2\xe1\xff\xff\x97\xec\xff\xff\x97\x80\x00\x00\x90\x00\xe8\x47\xf9\x40\x00\x00\xb4\xe4\xff\xff\x17\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x80\x00\x00\xb0\x00\xc0\x00\x91\x81\x00\x00\xb0\x21\xc0\x00\x91\x3f\x00\x00\xeb\xc0\x00\x00\x54\x81\x00\x00\x90\x21\xd8\x47\xf9\x61\x00\x00\xb4\xf0\x03\x01\xaa\x00\x02\x1f\xd6\xc0\x03\x5f\xd6\x80\x00\x00\xb0\x00\xc0\x00\x91\x81\x00\x00\xb0\x21\xc0\x00\x91\x21\x00\x00\xcb\x22\xfc\x7f\xd3\x41\x0c\x81\x8b\x21\xfc\x41\x93\xc1\x00\x00\xb4\x82\x00\x00\x90\x42\xf0\x47\xf9\x62\x00\x00\xb4\xf0\x03\x02\xaa\x00\x02\x1f\xd6\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\xfd\x7b\xbe\xa9\xfd\x03\x00\x91\xf3\x0b\x00\xf9\x93\x00\x00\xb0\x60\xc2\x40\x39\x40\x01\x00\x35\x80\x00\x00\x90\x00\xdc\x47\xf9\x80\x00\x00\xb4\x80\x00\x00\xb0\x00\x14\x40\xf9\xb5\xff\xff\x97\xd8\xff\xff\x97\x20\x00\x80\x52\x60\xc2\x00\x39\xf3\x0b\x40\xf9\xfd\x7b\xc2\xa8\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\xdc\xff\xff\x17\xff\x43\x00\xd1\xff\x0f\x00\xb9\xff\x0b\x00\xb9\x88\x00\x00\x90\x08\xe1\x47\xf9\x08\x01\x40\xb9\x08\x01\x00\x71\xe8\x07\x9f\x1a\x08\x01\x00\x37\x01\x00\x00\x14\x88\x00\x00\x90\x08\xe5\x47\xf9\x1f\x01\x00\xb9\x08\x01\x40\xb9\xe8\x0b\x00\xb9\x01\x00\x00\x14\xe0\x0b\x40\xb9\xff\x43\x00\x91\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\xfd\x7b\xbf\xa9\xfd\x03\x00\x91\xfd\x7b\xc1\xa8\xc0\x03\x5f\xd6\x01\x00\x02\x00\x01\x1b\x03\x3b\x3c\x00\x00\x00\x06\x00\x00\x00\x88\xfe\xff\xff\x54\x00\x00\x00\xd8\xfe\xff\xff\x68\x00\x00\x00\x08\xff\xff\xff\x7c\x00\x00\x00\x48\xff\xff\xff\x90\x00\x00\x00\x98\xff\xff\xff\xb4\x00\x00\x00\x9c\xff\xff\xff\xdc\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x01\x7a\x52\x00\x04\x78\x1e\x01\x1b\x0c\x1f\x00\x10\x00\x00\x00\x18\x00\x00\x00\x2c\xfe\xff\xff\x34\x00\x00\x00\x00\x41\x07\x1e\x10\x00\x00\x00\x2c\x00\x00\x00\x68\xfe\xff\xff\x30\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x40\x00\x00\x00\x84\xfe\xff\xff\x3c\x00\x00\x00\x00\x00\x00\x00\x20\x00\x00\x00\x54\x00\x00\x00\xb0\xfe\xff\xff\x48\x00\x00\x00\x00\x41\x0e\x20\x9d\x04\x9e\x03\x42\x93\x02\x4e\xde\xdd\xd3\x0e\x00\x00\x00\x00\x10\x00\x00\x00\x78\x00\x00\x00\xdc\xfe\xff\xff\x04\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00"), -Section(".comment", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x40\x06\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x1c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x38\x00\x09\x00\x40\x00\x1d\x00\x1c\x00\x06\x00\x00\x00\x04\x00\x00"), -Section(".interp", 0x238, "\x2f\x6c\x69\x62\x2f\x6c\x64\x2d\x6c\x69\x6e\x75\x78\x2d\x61\x61\x72\x63\x68\x36\x34\x2e\x73\x6f\x2e\x31\x00"), -Section(".note.gnu.build-id", 0x254, "\x04\x00\x00\x00\x14\x00\x00\x00\x03\x00\x00\x00\x47\x4e\x55\x00\x05\x72\xfb\x0a\xd6\x36\x51\xc9\x69\x8c\xa4\x08\x15\xbf\x83\x39\x9d\xcf\x86\xcc"), -Section(".note.ABI-tag", 0x278, "\x04\x00\x00\x00\x10\x00\x00\x00\x01\x00\x00\x00\x47\x4e\x55\x00\x00\x00\x00\x00\x03\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00"), -Section(".gnu.hash", 0x298, "\x01\x00\x00\x00\x01\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".dynsym", 0x2B8, "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x0b\x00\xb0\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x17\x00\x20\x10\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x48\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x22\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x22\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x73\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".dynstr", 0x390, "\x00\x5f\x5f\x63\x78\x61\x5f\x66\x69\x6e\x61\x6c\x69\x7a\x65\x00\x5f\x5f\x6c\x69\x62\x63\x5f\x73\x74\x61\x72\x74\x5f\x6d\x61\x69\x6e\x00\x61\x62\x6f\x72\x74\x00\x6c\x69\x62\x63\x2e\x73\x6f\x2e\x36\x00\x47\x4c\x49\x42\x43\x5f\x32\x2e\x31\x37\x00\x47\x4c\x49\x42\x43\x5f\x32\x2e\x33\x34\x00\x5f\x49\x54\x4d\x5f\x64\x65\x72\x65\x67\x69\x73\x74\x65\x72\x54\x4d\x43\x6c\x6f\x6e\x65\x54\x61\x62\x6c\x65\x00\x5f\x5f\x67\x6d\x6f\x6e\x5f\x73\x74\x61\x72\x74\x5f\x5f\x00\x5f\x49\x54\x4d\x5f\x72\x65\x67\x69\x73\x74\x65\x72\x54\x4d\x43\x6c\x6f\x6e\x65\x54\x61\x62\x6c\x65\x00"), -Section(".gnu.version", 0x41E, "\x00\x00\x00\x00\x00\x00\x02\x00\x01\x00\x03\x00\x01\x00\x03\x00\x01\x00"), -Section(".gnu.version_r", 0x430, "\x01\x00\x02\x00\x28\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x97\x91\x96\x06\x00\x00\x03\x00\x32\x00\x00\x00\x10\x00\x00\x00\xb4\x91\x96\x06\x00\x00\x02\x00\x3d\x00\x00\x00\x00\x00\x00\x00"), -Section(".rela.dyn", 0x460, "\xb8\x0d\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x50\x07\x00\x00\x00\x00\x00\x00\xc0\x0d\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\xc0\x0f\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x34\x10\x01\x00\x00\x00\x00\x00\xc8\x0f\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x38\x10\x01\x00\x00\x00\x00\x00\xd8\x0f\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x54\x07\x00\x00\x00\x00\x00\x00\x28\x10\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x28\x10\x01\x00\x00\x00\x00\x00\xb0\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xb8\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xd0\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe0\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".rela.plt", 0x550, "\x00\x10\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x08\x10\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x10\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x18\x10\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".init", 0x5B0, "\x1f\x20\x03\xd5\xfd\x7b\xbf\xa9\xfd\x03\x00\x91\x2e\x00\x00\x94\xfd\x7b\xc1\xa8\xc0\x03\x5f\xd6"), -Section(".plt", 0x5D0, "\xf0\x7b\xbf\xa9\x90\x00\x00\x90\x11\xfe\x47\xf9\x10\xe2\x3f\x91\x20\x02\x1f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x90\x00\x00\xb0\x11\x02\x40\xf9\x10\x02\x00\x91\x20\x02\x1f\xd6\x90\x00\x00\xb0\x11\x06\x40\xf9\x10\x22\x00\x91\x20\x02\x1f\xd6\x90\x00\x00\xb0\x11\x0a\x40\xf9\x10\x42\x00\x91\x20\x02\x1f\xd6\x90\x00\x00\xb0\x11\x0e\x40\xf9\x10\x62\x00\x91\x20\x02\x1f\xd6"), -Section(".fini", 0x7A0, "\x1f\x20\x03\xd5\xfd\x7b\xbf\xa9\xfd\x03\x00\x91\xfd\x7b\xc1\xa8\xc0\x03\x5f\xd6"), -Section(".rodata", 0x7B4, "\x01\x00\x02\x00"), -Section(".eh_frame_hdr", 0x7B8, "\x01\x1b\x03\x3b\x3c\x00\x00\x00\x06\x00\x00\x00\x88\xfe\xff\xff\x54\x00\x00\x00\xd8\xfe\xff\xff\x68\x00\x00\x00\x08\xff\xff\xff\x7c\x00\x00\x00\x48\xff\xff\xff\x90\x00\x00\x00\x98\xff\xff\xff\xb4\x00\x00\x00\x9c\xff\xff\xff\xdc\x00\x00\x00"), -Section(".eh_frame", 0x7F8, "\x10\x00\x00\x00\x00\x00\x00\x00\x01\x7a\x52\x00\x04\x78\x1e\x01\x1b\x0c\x1f\x00\x10\x00\x00\x00\x18\x00\x00\x00\x2c\xfe\xff\xff\x34\x00\x00\x00\x00\x41\x07\x1e\x10\x00\x00\x00\x2c\x00\x00\x00\x68\xfe\xff\xff\x30\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x40\x00\x00\x00\x84\xfe\xff\xff\x3c\x00\x00\x00\x00\x00\x00\x00\x20\x00\x00\x00\x54\x00\x00\x00\xb0\xfe\xff\xff\x48\x00\x00\x00\x00\x41\x0e\x20\x9d\x04\x9e\x03\x42\x93\x02\x4e\xde\xdd\xd3\x0e\x00\x00\x00\x00\x10\x00\x00\x00\x78\x00\x00\x00\xdc\xfe\xff\xff\x04\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x01\x7a\x52\x00\x01\x7c\x1e\x01\x1b\x0c\x1f\x00\x14\x00\x00\x00\x18\x00\x00\x00\xb8\xfe\xff\xff\x4c\x00\x00\x00\x00\x44\x0e\x10\x02\x44\x0e\x00\x00\x00\x00\x00"), -Section(".fini_array", 0x10DC0, "\x00\x07\x00\x00\x00\x00\x00\x00"), -Section(".dynamic", 0x10DC8, "\x01\x00\x00\x00\x00\x00\x00\x00\x28\x00\x00\x00\x00\x00\x00\x00\x0c\x00\x00\x00\x00\x00\x00\x00\xb0\x05\x00\x00\x00\x00\x00\x00\x0d\x00\x00\x00\x00\x00\x00\x00\xa0\x07\x00\x00\x00\x00\x00\x00\x19\x00\x00\x00\x00\x00\x00\x00\xb8\x0d\x01\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x1a\x00\x00\x00\x00\x00\x00\x00\xc0\x0d\x01\x00\x00\x00\x00\x00\x1c\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\xf5\xfe\xff\x6f\x00\x00\x00\x00\x98\x02\x00\x00\x00\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x90\x03\x00\x00\x00\x00\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\xb8\x02\x00\x00\x00\x00\x00\x00\x0a\x00\x00\x00\x00\x00\x00\x00\x8d\x00\x00\x00\x00\x00\x00\x00\x0b\x00\x00\x00\x00\x00\x00\x00\x18\x00\x00\x00\x00\x00\x00\x00\x15\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\xe8\x0f\x01\x00\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x60\x00\x00\x00\x00\x00\x00\x00\x14\x00\x00\x00\x00\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x17\x00\x00\x00\x00\x00\x00\x00\x50\x05\x00\x00\x00\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x60\x04\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\xf0\x00\x00\x00\x00\x00\x00\x00\x09\x00\x00\x00\x00\x00\x00\x00\x18\x00\x00\x00\x00\x00\x00\x00\xfb\xff\xff\x6f\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\xfe\xff\xff\x6f\x00\x00\x00\x00\x30\x04\x00\x00\x00\x00\x00\x00\xff\xff\xff\x6f\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\xf0\xff\xff\x6f\x00\x00\x00\x00\x1e\x04\x00\x00\x00\x00\x00\x00\xf9\xff\xff\x6f\x00\x00\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".init_array", 0x10DB8, "\x50\x07\x00\x00\x00\x00\x00\x00"), -Section(".got", 0x10FA8, "\xc8\x0d\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x34\x10\x01\x00\x00\x00\x00\x00\x38\x10\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x54\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".got.plt", 0x10FE8, "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xd0\x05\x00\x00\x00\x00\x00\x00\xd0\x05\x00\x00\x00\x00\x00\x00\xd0\x05\x00\x00\x00\x00\x00\x00\xd0\x05\x00\x00\x00\x00\x00\x00"), -Section(".data", 0x11020, "\x00\x00\x00\x00\x00\x00\x00\x00\x28\x10\x01\x00\x00\x00\x00\x00"), -Section(".text", 0x640, "\x1f\x20\x03\xd5\x1d\x00\x80\xd2\x1e\x00\x80\xd2\xe5\x03\x00\xaa\xe1\x03\x40\xf9\xe2\x23\x00\x91\xe6\x03\x00\x91\x80\x00\x00\x90\x00\xec\x47\xf9\x03\x00\x80\xd2\x04\x00\x80\xd2\xe1\xff\xff\x97\xec\xff\xff\x97\x80\x00\x00\x90\x00\xe8\x47\xf9\x40\x00\x00\xb4\xe4\xff\xff\x17\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x80\x00\x00\xb0\x00\xc0\x00\x91\x81\x00\x00\xb0\x21\xc0\x00\x91\x3f\x00\x00\xeb\xc0\x00\x00\x54\x81\x00\x00\x90\x21\xd8\x47\xf9\x61\x00\x00\xb4\xf0\x03\x01\xaa\x00\x02\x1f\xd6\xc0\x03\x5f\xd6\x80\x00\x00\xb0\x00\xc0\x00\x91\x81\x00\x00\xb0\x21\xc0\x00\x91\x21\x00\x00\xcb\x22\xfc\x7f\xd3\x41\x0c\x81\x8b\x21\xfc\x41\x93\xc1\x00\x00\xb4\x82\x00\x00\x90\x42\xf0\x47\xf9\x62\x00\x00\xb4\xf0\x03\x02\xaa\x00\x02\x1f\xd6\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\xfd\x7b\xbe\xa9\xfd\x03\x00\x91\xf3\x0b\x00\xf9\x93\x00\x00\xb0\x60\xc2\x40\x39\x40\x01\x00\x35\x80\x00\x00\x90\x00\xdc\x47\xf9\x80\x00\x00\xb4\x80\x00\x00\xb0\x00\x14\x40\xf9\xb5\xff\xff\x97\xd8\xff\xff\x97\x20\x00\x80\x52\x60\xc2\x00\x39\xf3\x0b\x40\xf9\xfd\x7b\xc2\xa8\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\xdc\xff\xff\x17\xff\x43\x00\xd1\xff\x0f\x00\xb9\xff\x0b\x00\xb9\x88\x00\x00\x90\x08\xe1\x47\xf9\x08\x01\x40\xb9\x08\x01\x00\x71\xe8\x07\x9f\x1a\x08\x01\x00\x37\x01\x00\x00\x14\x88\x00\x00\x90\x08\xe5\x47\xf9\x1f\x01\x00\xb9\x08\x01\x40\xb9\xe8\x0b\x00\xb9\x01\x00\x00\x14\xe0\x0b\x40\xb9\xff\x43\x00\x91\xc0\x03\x5f\xd6")]), -Memmap([Annotation(Region(0x0,0x8AF), Attr("segment","02 0 2224")), -Annotation(Region(0x640,0x673), Attr("symbol","\"_start\"")), -Annotation(Region(0x0,0x102), Attr("section","\".shstrtab\"")), -Annotation(Region(0x0,0x23C), Attr("section","\".strtab\"")), -Annotation(Region(0x0,0x887), Attr("section","\".symtab\"")), -Annotation(Region(0x0,0x46), Attr("section","\".comment\"")), -Annotation(Region(0x238,0x252), Attr("section","\".interp\"")), -Annotation(Region(0x254,0x277), Attr("section","\".note.gnu.build-id\"")), -Annotation(Region(0x278,0x297), Attr("section","\".note.ABI-tag\"")), -Annotation(Region(0x298,0x2B3), Attr("section","\".gnu.hash\"")), -Annotation(Region(0x2B8,0x38F), Attr("section","\".dynsym\"")), -Annotation(Region(0x390,0x41C), Attr("section","\".dynstr\"")), -Annotation(Region(0x41E,0x42F), Attr("section","\".gnu.version\"")), -Annotation(Region(0x430,0x45F), Attr("section","\".gnu.version_r\"")), -Annotation(Region(0x460,0x54F), Attr("section","\".rela.dyn\"")), -Annotation(Region(0x550,0x5AF), Attr("section","\".rela.plt\"")), -Annotation(Region(0x5B0,0x5C7), Attr("section","\".init\"")), -Annotation(Region(0x5D0,0x62F), Attr("section","\".plt\"")), -Annotation(Region(0x5B0,0x5C7), Attr("code-region","()")), -Annotation(Region(0x5D0,0x62F), Attr("code-region","()")), -Annotation(Region(0x640,0x673), Attr("symbol-info","_start 0x640 52")), -Annotation(Region(0x674,0x687), Attr("symbol","\"call_weak_fn\"")), -Annotation(Region(0x674,0x687), Attr("symbol-info","call_weak_fn 0x674 20")), -Annotation(Region(0x754,0x79F), Attr("symbol","\"main\"")), -Annotation(Region(0x754,0x79F), Attr("symbol-info","main 0x754 76")), -Annotation(Region(0x7A0,0x7B3), Attr("section","\".fini\"")), -Annotation(Region(0x7B4,0x7B7), Attr("section","\".rodata\"")), -Annotation(Region(0x7B8,0x7F3), Attr("section","\".eh_frame_hdr\"")), -Annotation(Region(0x7F8,0x8AF), Attr("section","\".eh_frame\"")), -Annotation(Region(0x10DB8,0x1102F), Attr("segment","03 0x10DB8 648")), -Annotation(Region(0x10DC0,0x10DC7), Attr("section","\".fini_array\"")), -Annotation(Region(0x10DC8,0x10FA7), Attr("section","\".dynamic\"")), -Annotation(Region(0x10DB8,0x10DBF), Attr("section","\".init_array\"")), -Annotation(Region(0x10FA8,0x10FE7), Attr("section","\".got\"")), -Annotation(Region(0x10FE8,0x1101F), Attr("section","\".got.plt\"")), -Annotation(Region(0x11020,0x1102F), Attr("section","\".data\"")), -Annotation(Region(0x640,0x79F), Attr("section","\".text\"")), -Annotation(Region(0x640,0x79F), Attr("code-region","()")), -Annotation(Region(0x7A0,0x7B3), Attr("code-region","()"))]), -Program(Tid(1_504, "%000005e0"), Attrs([]), - Subs([Sub(Tid(1_452, "@__cxa_finalize"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x600"), -Attr("stub","()")]), "__cxa_finalize", Args([Arg(Tid(1_505, "%000005e1"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("__cxa_finalize_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(962, "@__cxa_finalize"), - Attrs([Attr("address","0x600")]), Phis([]), -Defs([Def(Tid(1_210, "%000004ba"), Attrs([Attr("address","0x600"), -Attr("insn","adrp x16, #69632")]), Var("R16",Imm(64)), Int(69632,64)), -Def(Tid(1_217, "%000004c1"), Attrs([Attr("address","0x604"), -Attr("insn","ldr x17, [x16, #0x8]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(1_223, "%000004c7"), Attrs([Attr("address","0x608"), -Attr("insn","add x16, x16, #0x8")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(8,64)))]), Jmps([Call(Tid(1_228, "%000004cc"), - Attrs([Attr("address","0x60C"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), -Sub(Tid(1_453, "@__do_global_dtors_aux"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x700")]), - "__do_global_dtors_aux", Args([Arg(Tid(1_506, "%000005e2"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("__do_global_dtors_aux_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(666, "@__do_global_dtors_aux"), - Attrs([Attr("address","0x700")]), Phis([]), Defs([Def(Tid(670, "%0000029e"), - Attrs([Attr("address","0x700"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("#3",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(18446744073709551584,64))), -Def(Tid(676, "%000002a4"), Attrs([Attr("address","0x700"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("#3",Imm(64)),Var("R29",Imm(64)),LittleEndian(),64)), -Def(Tid(682, "%000002aa"), Attrs([Attr("address","0x700"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("#3",Imm(64)),Int(8,64)),Var("R30",Imm(64)),LittleEndian(),64)), -Def(Tid(686, "%000002ae"), Attrs([Attr("address","0x700"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("R31",Imm(64)), -Var("#3",Imm(64))), Def(Tid(692, "%000002b4"), - Attrs([Attr("address","0x704"), Attr("insn","mov x29, sp")]), - Var("R29",Imm(64)), Var("R31",Imm(64))), Def(Tid(700, "%000002bc"), - Attrs([Attr("address","0x708"), Attr("insn","str x19, [sp, #0x10]")]), - Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(16,64)),Var("R19",Imm(64)),LittleEndian(),64)), -Def(Tid(705, "%000002c1"), Attrs([Attr("address","0x70C"), -Attr("insn","adrp x19, #69632")]), Var("R19",Imm(64)), Int(69632,64)), -Def(Tid(712, "%000002c8"), Attrs([Attr("address","0x710"), -Attr("insn","ldrb w0, [x19, #0x30]")]), Var("R0",Imm(64)), -UNSIGNED(64,Load(Var("mem",Mem(64,8)),PLUS(Var("R19",Imm(64)),Int(48,64)),LittleEndian(),8)))]), -Jmps([Goto(Tid(719, "%000002cf"), Attrs([Attr("address","0x714"), -Attr("insn","cbnz w0, #0x28")]), - NEQ(Extract(31,0,Var("R0",Imm(64))),Int(0,32)), -Direct(Tid(717, "%000002cd"))), Goto(Tid(1_493, "%000005d5"), Attrs([]), - Int(1,1), Direct(Tid(907, "%0000038b")))])), Blk(Tid(907, "%0000038b"), - Attrs([Attr("address","0x718")]), Phis([]), Defs([Def(Tid(910, "%0000038e"), - Attrs([Attr("address","0x718"), Attr("insn","adrp x0, #65536")]), - Var("R0",Imm(64)), Int(65536,64)), Def(Tid(917, "%00000395"), - Attrs([Attr("address","0x71C"), Attr("insn","ldr x0, [x0, #0xfb8]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(4024,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(923, "%0000039b"), Attrs([Attr("address","0x720"), -Attr("insn","cbz x0, #0x10")]), EQ(Var("R0",Imm(64)),Int(0,64)), -Direct(Tid(921, "%00000399"))), Goto(Tid(1_494, "%000005d6"), Attrs([]), - Int(1,1), Direct(Tid(946, "%000003b2")))])), Blk(Tid(946, "%000003b2"), - Attrs([Attr("address","0x724")]), Phis([]), Defs([Def(Tid(949, "%000003b5"), - Attrs([Attr("address","0x724"), Attr("insn","adrp x0, #69632")]), - Var("R0",Imm(64)), Int(69632,64)), Def(Tid(956, "%000003bc"), - Attrs([Attr("address","0x728"), Attr("insn","ldr x0, [x0, #0x28]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(40,64)),LittleEndian(),64)), -Def(Tid(961, "%000003c1"), Attrs([Attr("address","0x72C"), -Attr("insn","bl #-0x12c")]), Var("R30",Imm(64)), Int(1840,64))]), -Jmps([Call(Tid(964, "%000003c4"), Attrs([Attr("address","0x72C"), -Attr("insn","bl #-0x12c")]), Int(1,1), -(Direct(Tid(1_452, "@__cxa_finalize")),Direct(Tid(921, "%00000399"))))])), -Blk(Tid(921, "%00000399"), Attrs([Attr("address","0x730")]), Phis([]), -Defs([Def(Tid(929, "%000003a1"), Attrs([Attr("address","0x730"), -Attr("insn","bl #-0xa0")]), Var("R30",Imm(64)), Int(1844,64))]), -Jmps([Call(Tid(931, "%000003a3"), Attrs([Attr("address","0x730"), -Attr("insn","bl #-0xa0")]), Int(1,1), -(Direct(Tid(1_466, "@deregister_tm_clones")),Direct(Tid(933, "%000003a5"))))])), -Blk(Tid(933, "%000003a5"), Attrs([Attr("address","0x734")]), Phis([]), -Defs([Def(Tid(936, "%000003a8"), Attrs([Attr("address","0x734"), -Attr("insn","mov w0, #0x1")]), Var("R0",Imm(64)), Int(1,64)), -Def(Tid(944, "%000003b0"), Attrs([Attr("address","0x738"), -Attr("insn","strb w0, [x19, #0x30]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R19",Imm(64)),Int(48,64)),Extract(7,0,Var("R0",Imm(64))),LittleEndian(),8))]), -Jmps([Goto(Tid(1_495, "%000005d7"), Attrs([]), Int(1,1), -Direct(Tid(717, "%000002cd")))])), Blk(Tid(717, "%000002cd"), - Attrs([Attr("address","0x73C")]), Phis([]), Defs([Def(Tid(727, "%000002d7"), - Attrs([Attr("address","0x73C"), Attr("insn","ldr x19, [sp, #0x10]")]), - Var("R19",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(16,64)),LittleEndian(),64)), -Def(Tid(734, "%000002de"), Attrs([Attr("address","0x740"), -Attr("insn","ldp x29, x30, [sp], #0x20")]), Var("R29",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(739, "%000002e3"), Attrs([Attr("address","0x740"), -Attr("insn","ldp x29, x30, [sp], #0x20")]), Var("R30",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(743, "%000002e7"), Attrs([Attr("address","0x740"), -Attr("insn","ldp x29, x30, [sp], #0x20")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(32,64)))]), Jmps([Call(Tid(748, "%000002ec"), - Attrs([Attr("address","0x744"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), Sub(Tid(1_457, "@__libc_start_main"), - Attrs([Attr("c.proto","signed (*)(signed (*)(signed , char** , char** );* main, signed , char** , \nvoid* auxv)"), -Attr("address","0x5F0"), Attr("stub","()")]), "__libc_start_main", - Args([Arg(Tid(1_507, "%000005e3"), - Attrs([Attr("c.layout","**[ : 64]"), -Attr("c.data","Top:u64 ptr ptr"), -Attr("c.type","signed (*)(signed , char** , char** );*")]), - Var("__libc_start_main_main",Imm(64)), Var("R0",Imm(64)), In()), -Arg(Tid(1_508, "%000005e4"), Attrs([Attr("c.layout","[signed : 32]"), -Attr("c.data","Top:u32"), Attr("c.type","signed")]), - Var("__libc_start_main_arg2",Imm(32)), LOW(32,Var("R1",Imm(64))), In()), -Arg(Tid(1_509, "%000005e5"), Attrs([Attr("c.layout","**[char : 8]"), -Attr("c.data","Top:u8 ptr ptr"), Attr("c.type","char**")]), - Var("__libc_start_main_arg3",Imm(64)), Var("R2",Imm(64)), Both()), -Arg(Tid(1_510, "%000005e6"), Attrs([Attr("c.layout","*[ : 8]"), -Attr("c.data","{} ptr"), Attr("c.type","void*")]), - Var("__libc_start_main_auxv",Imm(64)), Var("R3",Imm(64)), Both()), -Arg(Tid(1_511, "%000005e7"), Attrs([Attr("c.layout","[signed : 32]"), -Attr("c.data","Top:u32"), Attr("c.type","signed")]), - Var("__libc_start_main_result",Imm(32)), LOW(32,Var("R0",Imm(64))), -Out())]), Blks([Blk(Tid(499, "@__libc_start_main"), - Attrs([Attr("address","0x5F0")]), Phis([]), -Defs([Def(Tid(1_188, "%000004a4"), Attrs([Attr("address","0x5F0"), -Attr("insn","adrp x16, #69632")]), Var("R16",Imm(64)), Int(69632,64)), -Def(Tid(1_195, "%000004ab"), Attrs([Attr("address","0x5F4"), -Attr("insn","ldr x17, [x16]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R16",Imm(64)),LittleEndian(),64)), -Def(Tid(1_201, "%000004b1"), Attrs([Attr("address","0x5F8"), -Attr("insn","add x16, x16, #0x0")]), Var("R16",Imm(64)), -Var("R16",Imm(64)))]), Jmps([Call(Tid(1_206, "%000004b6"), - Attrs([Attr("address","0x5FC"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), Sub(Tid(1_458, "@_fini"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x7A0")]), - "_fini", Args([Arg(Tid(1_512, "%000005e8"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("_fini_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(31, "@_fini"), - Attrs([Attr("address","0x7A0")]), Phis([]), Defs([Def(Tid(37, "%00000025"), - Attrs([Attr("address","0x7A4"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("#0",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(18446744073709551600,64))), -Def(Tid(43, "%0000002b"), Attrs([Attr("address","0x7A4"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("#0",Imm(64)),Var("R29",Imm(64)),LittleEndian(),64)), -Def(Tid(49, "%00000031"), Attrs([Attr("address","0x7A4"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("#0",Imm(64)),Int(8,64)),Var("R30",Imm(64)),LittleEndian(),64)), -Def(Tid(53, "%00000035"), Attrs([Attr("address","0x7A4"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("R31",Imm(64)), -Var("#0",Imm(64))), Def(Tid(59, "%0000003b"), Attrs([Attr("address","0x7A8"), -Attr("insn","mov x29, sp")]), Var("R29",Imm(64)), Var("R31",Imm(64))), -Def(Tid(66, "%00000042"), Attrs([Attr("address","0x7AC"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R29",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(71, "%00000047"), Attrs([Attr("address","0x7AC"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R30",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(75, "%0000004b"), Attrs([Attr("address","0x7AC"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(16,64)))]), Jmps([Call(Tid(80, "%00000050"), - Attrs([Attr("address","0x7B0"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), Sub(Tid(1_459, "@_init"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x5B0")]), - "_init", Args([Arg(Tid(1_513, "%000005e9"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("_init_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(1_300, "@_init"), - Attrs([Attr("address","0x5B0")]), Phis([]), -Defs([Def(Tid(1_306, "%0000051a"), Attrs([Attr("address","0x5B4"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("#6",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(18446744073709551600,64))), -Def(Tid(1_312, "%00000520"), Attrs([Attr("address","0x5B4"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("#6",Imm(64)),Var("R29",Imm(64)),LittleEndian(),64)), -Def(Tid(1_318, "%00000526"), Attrs([Attr("address","0x5B4"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("#6",Imm(64)),Int(8,64)),Var("R30",Imm(64)),LittleEndian(),64)), -Def(Tid(1_322, "%0000052a"), Attrs([Attr("address","0x5B4"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("R31",Imm(64)), -Var("#6",Imm(64))), Def(Tid(1_328, "%00000530"), - Attrs([Attr("address","0x5B8"), Attr("insn","mov x29, sp")]), - Var("R29",Imm(64)), Var("R31",Imm(64))), Def(Tid(1_333, "%00000535"), - Attrs([Attr("address","0x5BC"), Attr("insn","bl #0xb8")]), - Var("R30",Imm(64)), Int(1472,64))]), Jmps([Call(Tid(1_335, "%00000537"), - Attrs([Attr("address","0x5BC"), Attr("insn","bl #0xb8")]), Int(1,1), -(Direct(Tid(1_464, "@call_weak_fn")),Direct(Tid(1_337, "%00000539"))))])), -Blk(Tid(1_337, "%00000539"), Attrs([Attr("address","0x5C0")]), Phis([]), -Defs([Def(Tid(1_342, "%0000053e"), Attrs([Attr("address","0x5C0"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R29",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(1_347, "%00000543"), Attrs([Attr("address","0x5C0"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R30",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(1_351, "%00000547"), Attrs([Attr("address","0x5C0"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(16,64)))]), Jmps([Call(Tid(1_356, "%0000054c"), - Attrs([Attr("address","0x5C4"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), Sub(Tid(1_460, "@_start"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x640"), -Attr("entry-point","()")]), "_start", Args([Arg(Tid(1_514, "%000005ea"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("_start_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(436, "@_start"), - Attrs([Attr("address","0x640")]), Phis([]), Defs([Def(Tid(441, "%000001b9"), - Attrs([Attr("address","0x644"), Attr("insn","mov x29, #0x0")]), - Var("R29",Imm(64)), Int(0,64)), Def(Tid(446, "%000001be"), - Attrs([Attr("address","0x648"), Attr("insn","mov x30, #0x0")]), - Var("R30",Imm(64)), Int(0,64)), Def(Tid(452, "%000001c4"), - Attrs([Attr("address","0x64C"), Attr("insn","mov x5, x0")]), - Var("R5",Imm(64)), Var("R0",Imm(64))), Def(Tid(459, "%000001cb"), - Attrs([Attr("address","0x650"), Attr("insn","ldr x1, [sp]")]), - Var("R1",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(465, "%000001d1"), Attrs([Attr("address","0x654"), -Attr("insn","add x2, sp, #0x8")]), Var("R2",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(8,64))), Def(Tid(471, "%000001d7"), - Attrs([Attr("address","0x658"), Attr("insn","mov x6, sp")]), - Var("R6",Imm(64)), Var("R31",Imm(64))), Def(Tid(476, "%000001dc"), - Attrs([Attr("address","0x65C"), Attr("insn","adrp x0, #65536")]), - Var("R0",Imm(64)), Int(65536,64)), Def(Tid(483, "%000001e3"), - Attrs([Attr("address","0x660"), Attr("insn","ldr x0, [x0, #0xfd8]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(4056,64)),LittleEndian(),64)), -Def(Tid(488, "%000001e8"), Attrs([Attr("address","0x664"), -Attr("insn","mov x3, #0x0")]), Var("R3",Imm(64)), Int(0,64)), -Def(Tid(493, "%000001ed"), Attrs([Attr("address","0x668"), -Attr("insn","mov x4, #0x0")]), Var("R4",Imm(64)), Int(0,64)), -Def(Tid(498, "%000001f2"), Attrs([Attr("address","0x66C"), -Attr("insn","bl #-0x7c")]), Var("R30",Imm(64)), Int(1648,64))]), -Jmps([Call(Tid(501, "%000001f5"), Attrs([Attr("address","0x66C"), -Attr("insn","bl #-0x7c")]), Int(1,1), -(Direct(Tid(1_457, "@__libc_start_main")),Direct(Tid(503, "%000001f7"))))])), -Blk(Tid(503, "%000001f7"), Attrs([Attr("address","0x670")]), Phis([]), -Defs([Def(Tid(506, "%000001fa"), Attrs([Attr("address","0x670"), -Attr("insn","bl #-0x50")]), Var("R30",Imm(64)), Int(1652,64))]), -Jmps([Call(Tid(509, "%000001fd"), Attrs([Attr("address","0x670"), -Attr("insn","bl #-0x50")]), Int(1,1), -(Direct(Tid(1_463, "@abort")),Direct(Tid(1_496, "%000005d8"))))])), -Blk(Tid(1_496, "%000005d8"), Attrs([]), Phis([]), Defs([]), -Jmps([Call(Tid(1_497, "%000005d9"), Attrs([]), Int(1,1), -(Direct(Tid(1_464, "@call_weak_fn")),))]))])), Sub(Tid(1_463, "@abort"), - Attrs([Attr("noreturn","()"), Attr("c.proto","void (*)(void)"), -Attr("address","0x620"), Attr("stub","()")]), "abort", Args([]), -Blks([Blk(Tid(507, "@abort"), Attrs([Attr("address","0x620")]), Phis([]), -Defs([Def(Tid(1_254, "%000004e6"), Attrs([Attr("address","0x620"), -Attr("insn","adrp x16, #69632")]), Var("R16",Imm(64)), Int(69632,64)), -Def(Tid(1_261, "%000004ed"), Attrs([Attr("address","0x624"), -Attr("insn","ldr x17, [x16, #0x18]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(24,64)),LittleEndian(),64)), -Def(Tid(1_267, "%000004f3"), Attrs([Attr("address","0x628"), -Attr("insn","add x16, x16, #0x18")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(24,64)))]), Jmps([Call(Tid(1_272, "%000004f8"), - Attrs([Attr("address","0x62C"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), Sub(Tid(1_464, "@call_weak_fn"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x674")]), - "call_weak_fn", Args([Arg(Tid(1_515, "%000005eb"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("call_weak_fn_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(511, "@call_weak_fn"), - Attrs([Attr("address","0x674")]), Phis([]), Defs([Def(Tid(514, "%00000202"), - Attrs([Attr("address","0x674"), Attr("insn","adrp x0, #65536")]), - Var("R0",Imm(64)), Int(65536,64)), Def(Tid(521, "%00000209"), - Attrs([Attr("address","0x678"), Attr("insn","ldr x0, [x0, #0xfd0]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(4048,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(527, "%0000020f"), Attrs([Attr("address","0x67C"), -Attr("insn","cbz x0, #0x8")]), EQ(Var("R0",Imm(64)),Int(0,64)), -Direct(Tid(525, "%0000020d"))), Goto(Tid(1_498, "%000005da"), Attrs([]), - Int(1,1), Direct(Tid(1_026, "%00000402")))])), Blk(Tid(525, "%0000020d"), - Attrs([Attr("address","0x684")]), Phis([]), Defs([]), -Jmps([Call(Tid(533, "%00000215"), Attrs([Attr("address","0x684"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))])), -Blk(Tid(1_026, "%00000402"), Attrs([Attr("address","0x680")]), Phis([]), -Defs([]), Jmps([Goto(Tid(1_029, "%00000405"), Attrs([Attr("address","0x680"), -Attr("insn","b #-0x70")]), Int(1,1), -Direct(Tid(1_027, "@__gmon_start__")))])), Blk(Tid(1_027, "@__gmon_start__"), - Attrs([Attr("address","0x610")]), Phis([]), -Defs([Def(Tid(1_232, "%000004d0"), Attrs([Attr("address","0x610"), -Attr("insn","adrp x16, #69632")]), Var("R16",Imm(64)), Int(69632,64)), -Def(Tid(1_239, "%000004d7"), Attrs([Attr("address","0x614"), -Attr("insn","ldr x17, [x16, #0x10]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(16,64)),LittleEndian(),64)), -Def(Tid(1_245, "%000004dd"), Attrs([Attr("address","0x618"), -Attr("insn","add x16, x16, #0x10")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(16,64)))]), Jmps([Call(Tid(1_250, "%000004e2"), - Attrs([Attr("address","0x61C"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), -Sub(Tid(1_466, "@deregister_tm_clones"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x690")]), - "deregister_tm_clones", Args([Arg(Tid(1_516, "%000005ec"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("deregister_tm_clones_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(539, "@deregister_tm_clones"), - Attrs([Attr("address","0x690")]), Phis([]), Defs([Def(Tid(542, "%0000021e"), - Attrs([Attr("address","0x690"), Attr("insn","adrp x0, #69632")]), - Var("R0",Imm(64)), Int(69632,64)), Def(Tid(548, "%00000224"), - Attrs([Attr("address","0x694"), Attr("insn","add x0, x0, #0x30")]), - Var("R0",Imm(64)), PLUS(Var("R0",Imm(64)),Int(48,64))), -Def(Tid(553, "%00000229"), Attrs([Attr("address","0x698"), -Attr("insn","adrp x1, #69632")]), Var("R1",Imm(64)), Int(69632,64)), -Def(Tid(559, "%0000022f"), Attrs([Attr("address","0x69C"), -Attr("insn","add x1, x1, #0x30")]), Var("R1",Imm(64)), -PLUS(Var("R1",Imm(64)),Int(48,64))), Def(Tid(565, "%00000235"), - Attrs([Attr("address","0x6A0"), Attr("insn","cmp x1, x0")]), - Var("#1",Imm(64)), NOT(Var("R0",Imm(64)))), Def(Tid(570, "%0000023a"), - Attrs([Attr("address","0x6A0"), Attr("insn","cmp x1, x0")]), - Var("#2",Imm(64)), PLUS(Var("R1",Imm(64)),NOT(Var("R0",Imm(64))))), -Def(Tid(576, "%00000240"), Attrs([Attr("address","0x6A0"), -Attr("insn","cmp x1, x0")]), Var("VF",Imm(1)), -NEQ(SIGNED(65,PLUS(Var("#2",Imm(64)),Int(1,64))),PLUS(PLUS(SIGNED(65,Var("R1",Imm(64))),SIGNED(65,Var("#1",Imm(64)))),Int(1,65)))), -Def(Tid(582, "%00000246"), Attrs([Attr("address","0x6A0"), -Attr("insn","cmp x1, x0")]), Var("CF",Imm(1)), -NEQ(UNSIGNED(65,PLUS(Var("#2",Imm(64)),Int(1,64))),PLUS(PLUS(UNSIGNED(65,Var("R1",Imm(64))),UNSIGNED(65,Var("#1",Imm(64)))),Int(1,65)))), -Def(Tid(586, "%0000024a"), Attrs([Attr("address","0x6A0"), -Attr("insn","cmp x1, x0")]), Var("ZF",Imm(1)), -EQ(PLUS(Var("#2",Imm(64)),Int(1,64)),Int(0,64))), Def(Tid(590, "%0000024e"), - Attrs([Attr("address","0x6A0"), Attr("insn","cmp x1, x0")]), - Var("NF",Imm(1)), Extract(63,63,PLUS(Var("#2",Imm(64)),Int(1,64))))]), -Jmps([Goto(Tid(596, "%00000254"), Attrs([Attr("address","0x6A4"), -Attr("insn","b.eq #0x18")]), EQ(Var("ZF",Imm(1)),Int(1,1)), -Direct(Tid(594, "%00000252"))), Goto(Tid(1_499, "%000005db"), Attrs([]), - Int(1,1), Direct(Tid(996, "%000003e4")))])), Blk(Tid(996, "%000003e4"), - Attrs([Attr("address","0x6A8")]), Phis([]), Defs([Def(Tid(999, "%000003e7"), - Attrs([Attr("address","0x6A8"), Attr("insn","adrp x1, #65536")]), - Var("R1",Imm(64)), Int(65536,64)), Def(Tid(1_006, "%000003ee"), - Attrs([Attr("address","0x6AC"), Attr("insn","ldr x1, [x1, #0xfb0]")]), - Var("R1",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R1",Imm(64)),Int(4016,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(1_011, "%000003f3"), Attrs([Attr("address","0x6B0"), -Attr("insn","cbz x1, #0xc")]), EQ(Var("R1",Imm(64)),Int(0,64)), -Direct(Tid(594, "%00000252"))), Goto(Tid(1_500, "%000005dc"), Attrs([]), - Int(1,1), Direct(Tid(1_015, "%000003f7")))])), Blk(Tid(594, "%00000252"), - Attrs([Attr("address","0x6BC")]), Phis([]), Defs([]), -Jmps([Call(Tid(602, "%0000025a"), Attrs([Attr("address","0x6BC"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))])), -Blk(Tid(1_015, "%000003f7"), Attrs([Attr("address","0x6B4")]), Phis([]), -Defs([Def(Tid(1_019, "%000003fb"), Attrs([Attr("address","0x6B4"), -Attr("insn","mov x16, x1")]), Var("R16",Imm(64)), Var("R1",Imm(64)))]), -Jmps([Call(Tid(1_024, "%00000400"), Attrs([Attr("address","0x6B8"), -Attr("insn","br x16")]), Int(1,1), (Indirect(Var("R16",Imm(64))),))]))])), -Sub(Tid(1_469, "@frame_dummy"), Attrs([Attr("c.proto","signed (*)(void)"), -Attr("address","0x750")]), "frame_dummy", Args([Arg(Tid(1_517, "%000005ed"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("frame_dummy_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(754, "@frame_dummy"), - Attrs([Attr("address","0x750")]), Phis([]), Defs([]), -Jmps([Call(Tid(756, "%000002f4"), Attrs([Attr("address","0x750"), -Attr("insn","b #-0x90")]), Int(1,1), -(Direct(Tid(1_472, "@register_tm_clones")),))]))])), Sub(Tid(1_470, "@main"), - Attrs([Attr("c.proto","signed (*)(signed argc, const char** argv)"), -Attr("address","0x754")]), "main", Args([Arg(Tid(1_518, "%000005ee"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("main_argc",Imm(32)), -LOW(32,Var("R0",Imm(64))), In()), Arg(Tid(1_519, "%000005ef"), - Attrs([Attr("c.layout","**[char : 8]"), Attr("c.data","Top:u8 ptr ptr"), -Attr("c.type"," const char**")]), Var("main_argv",Imm(64)), -Var("R1",Imm(64)), Both()), Arg(Tid(1_520, "%000005f0"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("main_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(758, "@main"), - Attrs([Attr("address","0x754")]), Phis([]), Defs([Def(Tid(762, "%000002fa"), - Attrs([Attr("address","0x754"), Attr("insn","sub sp, sp, #0x10")]), - Var("R31",Imm(64)), PLUS(Var("R31",Imm(64)),Int(18446744073709551600,64))), -Def(Tid(769, "%00000301"), Attrs([Attr("address","0x758"), -Attr("insn","str wzr, [sp, #0xc]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(12,64)),Int(0,32),LittleEndian(),32)), -Def(Tid(776, "%00000308"), Attrs([Attr("address","0x75C"), -Attr("insn","str wzr, [sp, #0x8]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),Int(0,32),LittleEndian(),32)), -Def(Tid(781, "%0000030d"), Attrs([Attr("address","0x760"), -Attr("insn","adrp x8, #65536")]), Var("R8",Imm(64)), Int(65536,64)), -Def(Tid(788, "%00000314"), Attrs([Attr("address","0x764"), -Attr("insn","ldr x8, [x8, #0xfc0]")]), Var("R8",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R8",Imm(64)),Int(4032,64)),LittleEndian(),64)), -Def(Tid(795, "%0000031b"), Attrs([Attr("address","0x768"), -Attr("insn","ldr w8, [x8]")]), Var("R8",Imm(64)), -UNSIGNED(64,Load(Var("mem",Mem(64,8)),Var("R8",Imm(64)),LittleEndian(),32))), -Def(Tid(801, "%00000321"), Attrs([Attr("address","0x76C"), -Attr("insn","subs w8, w8, #0x0")]), Var("#4",Imm(32)), -PLUS(Extract(31,0,Var("R8",Imm(64))),Int(4294967295,32))), -Def(Tid(806, "%00000326"), Attrs([Attr("address","0x76C"), -Attr("insn","subs w8, w8, #0x0")]), Var("VF",Imm(1)), -NEQ(SIGNED(33,PLUS(Var("#4",Imm(32)),Int(1,32))),PLUS(SIGNED(33,Extract(31,0,Var("R8",Imm(64)))),Int(0,33)))), -Def(Tid(811, "%0000032b"), Attrs([Attr("address","0x76C"), -Attr("insn","subs w8, w8, #0x0")]), Var("CF",Imm(1)), -NEQ(UNSIGNED(33,PLUS(Var("#4",Imm(32)),Int(1,32))),PLUS(UNSIGNED(33,Extract(31,0,Var("R8",Imm(64)))),Int(4294967296,33)))), -Def(Tid(815, "%0000032f"), Attrs([Attr("address","0x76C"), -Attr("insn","subs w8, w8, #0x0")]), Var("ZF",Imm(1)), -EQ(PLUS(Var("#4",Imm(32)),Int(1,32)),Int(0,32))), Def(Tid(819, "%00000333"), - Attrs([Attr("address","0x76C"), Attr("insn","subs w8, w8, #0x0")]), - Var("NF",Imm(1)), Extract(31,31,PLUS(Var("#4",Imm(32)),Int(1,32)))), -Def(Tid(823, "%00000337"), Attrs([Attr("address","0x76C"), -Attr("insn","subs w8, w8, #0x0")]), Var("R8",Imm(64)), -UNSIGNED(64,PLUS(Var("#4",Imm(32)),Int(1,32))))]), -Jmps([Goto(Tid(835, "%00000343"), Attrs([Attr("address","0x770"), -Attr("insn","cset w8, ne")]), EQ(Var("ZF",Imm(1)),Int(1,1)), -Direct(Tid(828, "%0000033c"))), Goto(Tid(836, "%00000344"), - Attrs([Attr("address","0x770"), Attr("insn","cset w8, ne")]), Int(1,1), -Direct(Tid(831, "%0000033f")))])), Blk(Tid(831, "%0000033f"), Attrs([]), - Phis([]), Defs([Def(Tid(832, "%00000340"), Attrs([Attr("address","0x770"), -Attr("insn","cset w8, ne")]), Var("R8",Imm(64)), Int(1,64))]), -Jmps([Goto(Tid(838, "%00000346"), Attrs([Attr("address","0x770"), -Attr("insn","cset w8, ne")]), Int(1,1), Direct(Tid(834, "%00000342")))])), -Blk(Tid(828, "%0000033c"), Attrs([]), Phis([]), -Defs([Def(Tid(829, "%0000033d"), Attrs([Attr("address","0x770"), -Attr("insn","cset w8, ne")]), Var("R8",Imm(64)), Int(0,64))]), -Jmps([Goto(Tid(837, "%00000345"), Attrs([Attr("address","0x770"), -Attr("insn","cset w8, ne")]), Int(1,1), Direct(Tid(834, "%00000342")))])), -Blk(Tid(834, "%00000342"), Attrs([]), Phis([]), Defs([]), -Jmps([Goto(Tid(844, "%0000034c"), Attrs([Attr("address","0x774"), -Attr("insn","tbnz w8, #0x0, #0x20")]), - EQ(Extract(0,0,Var("R8",Imm(64))),Int(1,1)), Direct(Tid(842, "%0000034a"))), -Goto(Tid(1_501, "%000005dd"), Attrs([]), Int(1,1), -Direct(Tid(865, "%00000361")))])), Blk(Tid(865, "%00000361"), - Attrs([Attr("address","0x778")]), Phis([]), Defs([]), -Jmps([Goto(Tid(868, "%00000364"), Attrs([Attr("address","0x778"), -Attr("insn","b #0x4")]), Int(1,1), Direct(Tid(866, "%00000362")))])), -Blk(Tid(866, "%00000362"), Attrs([Attr("address","0x77C")]), Phis([]), -Defs([Def(Tid(872, "%00000368"), Attrs([Attr("address","0x77C"), -Attr("insn","adrp x8, #65536")]), Var("R8",Imm(64)), Int(65536,64)), -Def(Tid(879, "%0000036f"), Attrs([Attr("address","0x780"), -Attr("insn","ldr x8, [x8, #0xfc8]")]), Var("R8",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R8",Imm(64)),Int(4040,64)),LittleEndian(),64)), -Def(Tid(886, "%00000376"), Attrs([Attr("address","0x784"), -Attr("insn","str wzr, [x8]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("R8",Imm(64)),Int(0,32),LittleEndian(),32)), -Def(Tid(893, "%0000037d"), Attrs([Attr("address","0x788"), -Attr("insn","ldr w8, [x8]")]), Var("R8",Imm(64)), -UNSIGNED(64,Load(Var("mem",Mem(64,8)),Var("R8",Imm(64)),LittleEndian(),32))), -Def(Tid(901, "%00000385"), Attrs([Attr("address","0x78C"), -Attr("insn","str w8, [sp, #0x8]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),Extract(31,0,Var("R8",Imm(64))),LittleEndian(),32))]), -Jmps([Goto(Tid(905, "%00000389"), Attrs([Attr("address","0x790"), -Attr("insn","b #0x4")]), Int(1,1), Direct(Tid(842, "%0000034a")))])), -Blk(Tid(842, "%0000034a"), Attrs([Attr("address","0x794")]), Phis([]), -Defs([Def(Tid(852, "%00000354"), Attrs([Attr("address","0x794"), -Attr("insn","ldr w0, [sp, #0x8]")]), Var("R0",Imm(64)), -UNSIGNED(64,Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),LittleEndian(),32))), -Def(Tid(858, "%0000035a"), Attrs([Attr("address","0x798"), -Attr("insn","add sp, sp, #0x10")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(16,64)))]), Jmps([Call(Tid(863, "%0000035f"), - Attrs([Attr("address","0x79C"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), -Sub(Tid(1_472, "@register_tm_clones"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x6C0")]), - "register_tm_clones", Args([Arg(Tid(1_521, "%000005f1"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("register_tm_clones_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(604, "@register_tm_clones"), Attrs([Attr("address","0x6C0")]), - Phis([]), Defs([Def(Tid(607, "%0000025f"), Attrs([Attr("address","0x6C0"), -Attr("insn","adrp x0, #69632")]), Var("R0",Imm(64)), Int(69632,64)), -Def(Tid(613, "%00000265"), Attrs([Attr("address","0x6C4"), -Attr("insn","add x0, x0, #0x30")]), Var("R0",Imm(64)), -PLUS(Var("R0",Imm(64)),Int(48,64))), Def(Tid(618, "%0000026a"), - Attrs([Attr("address","0x6C8"), Attr("insn","adrp x1, #69632")]), - Var("R1",Imm(64)), Int(69632,64)), Def(Tid(624, "%00000270"), - Attrs([Attr("address","0x6CC"), Attr("insn","add x1, x1, #0x30")]), - Var("R1",Imm(64)), PLUS(Var("R1",Imm(64)),Int(48,64))), -Def(Tid(631, "%00000277"), Attrs([Attr("address","0x6D0"), -Attr("insn","sub x1, x1, x0")]), Var("R1",Imm(64)), -PLUS(PLUS(Var("R1",Imm(64)),NOT(Var("R0",Imm(64)))),Int(1,64))), -Def(Tid(637, "%0000027d"), Attrs([Attr("address","0x6D4"), -Attr("insn","lsr x2, x1, #63")]), Var("R2",Imm(64)), -Concat(Int(0,63),Extract(63,63,Var("R1",Imm(64))))), -Def(Tid(644, "%00000284"), Attrs([Attr("address","0x6D8"), -Attr("insn","add x1, x2, x1, asr #3")]), Var("R1",Imm(64)), -PLUS(Var("R2",Imm(64)),ARSHIFT(Var("R1",Imm(64)),Int(3,3)))), -Def(Tid(650, "%0000028a"), Attrs([Attr("address","0x6DC"), -Attr("insn","asr x1, x1, #1")]), Var("R1",Imm(64)), -SIGNED(64,Extract(63,1,Var("R1",Imm(64)))))]), -Jmps([Goto(Tid(656, "%00000290"), Attrs([Attr("address","0x6E0"), -Attr("insn","cbz x1, #0x18")]), EQ(Var("R1",Imm(64)),Int(0,64)), -Direct(Tid(654, "%0000028e"))), Goto(Tid(1_502, "%000005de"), Attrs([]), - Int(1,1), Direct(Tid(966, "%000003c6")))])), Blk(Tid(966, "%000003c6"), - Attrs([Attr("address","0x6E4")]), Phis([]), Defs([Def(Tid(969, "%000003c9"), - Attrs([Attr("address","0x6E4"), Attr("insn","adrp x2, #65536")]), - Var("R2",Imm(64)), Int(65536,64)), Def(Tid(976, "%000003d0"), - Attrs([Attr("address","0x6E8"), Attr("insn","ldr x2, [x2, #0xfe0]")]), - Var("R2",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R2",Imm(64)),Int(4064,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(981, "%000003d5"), Attrs([Attr("address","0x6EC"), -Attr("insn","cbz x2, #0xc")]), EQ(Var("R2",Imm(64)),Int(0,64)), -Direct(Tid(654, "%0000028e"))), Goto(Tid(1_503, "%000005df"), Attrs([]), - Int(1,1), Direct(Tid(985, "%000003d9")))])), Blk(Tid(654, "%0000028e"), - Attrs([Attr("address","0x6F8")]), Phis([]), Defs([]), -Jmps([Call(Tid(662, "%00000296"), Attrs([Attr("address","0x6F8"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))])), -Blk(Tid(985, "%000003d9"), Attrs([Attr("address","0x6F0")]), Phis([]), -Defs([Def(Tid(989, "%000003dd"), Attrs([Attr("address","0x6F0"), -Attr("insn","mov x16, x2")]), Var("R16",Imm(64)), Var("R2",Imm(64)))]), -Jmps([Call(Tid(994, "%000003e2"), Attrs([Attr("address","0x6F4"), -Attr("insn","br x16")]), Int(1,1), -(Indirect(Var("R16",Imm(64))),))]))]))]))) \ No newline at end of file diff --git a/src/test/correct/basic_lock_read/clang_pic/basic_lock_read.bir b/src/test/correct/basic_lock_read/clang_pic/basic_lock_read.bir deleted file mode 100644 index e5e2ba6e4..000000000 --- a/src/test/correct/basic_lock_read/clang_pic/basic_lock_read.bir +++ /dev/null @@ -1,264 +0,0 @@ -000005e0: program -000005ac: sub __cxa_finalize(__cxa_finalize_result) -000005e1: __cxa_finalize_result :: out u32 = low:32[R0] - -000003c2: -000004ba: R16 := 0x11000 -000004c1: R17 := mem[R16 + 8, el]:u64 -000004c7: R16 := R16 + 8 -000004cc: call R17 with noreturn - -000005ad: sub __do_global_dtors_aux(__do_global_dtors_aux_result) -000005e2: __do_global_dtors_aux_result :: out u32 = low:32[R0] - -0000029a: -0000029e: #3 := R31 - 0x20 -000002a4: mem := mem with [#3, el]:u64 <- R29 -000002aa: mem := mem with [#3 + 8, el]:u64 <- R30 -000002ae: R31 := #3 -000002b4: R29 := R31 -000002bc: mem := mem with [R31 + 0x10, el]:u64 <- R19 -000002c1: R19 := 0x11000 -000002c8: R0 := pad:64[mem[R19 + 0x30]] -000002cf: when 31:0[R0] <> 0 goto %000002cd -000005d5: goto %0000038b - -0000038b: -0000038e: R0 := 0x10000 -00000395: R0 := mem[R0 + 0xFB8, el]:u64 -0000039b: when R0 = 0 goto %00000399 -000005d6: goto %000003b2 - -000003b2: -000003b5: R0 := 0x11000 -000003bc: R0 := mem[R0 + 0x28, el]:u64 -000003c1: R30 := 0x730 -000003c4: call @__cxa_finalize with return %00000399 - -00000399: -000003a1: R30 := 0x734 -000003a3: call @deregister_tm_clones with return %000003a5 - -000003a5: -000003a8: R0 := 1 -000003b0: mem := mem with [R19 + 0x30] <- 7:0[R0] -000005d7: goto %000002cd - -000002cd: -000002d7: R19 := mem[R31 + 0x10, el]:u64 -000002de: R29 := mem[R31, el]:u64 -000002e3: R30 := mem[R31 + 8, el]:u64 -000002e7: R31 := R31 + 0x20 -000002ec: call R30 with noreturn - -000005b1: sub __libc_start_main(__libc_start_main_main, __libc_start_main_arg2, __libc_start_main_arg3, __libc_start_main_auxv, __libc_start_main_result) -000005e3: __libc_start_main_main :: in u64 = R0 -000005e4: __libc_start_main_arg2 :: in u32 = low:32[R1] -000005e5: __libc_start_main_arg3 :: in out u64 = R2 -000005e6: __libc_start_main_auxv :: in out u64 = R3 -000005e7: __libc_start_main_result :: out u32 = low:32[R0] - -000001f3: -000004a4: R16 := 0x11000 -000004ab: R17 := mem[R16, el]:u64 -000004b1: R16 := R16 -000004b6: call R17 with noreturn - -000005b2: sub _fini(_fini_result) -000005e8: _fini_result :: out u32 = low:32[R0] - -0000001f: -00000025: #0 := R31 - 0x10 -0000002b: mem := mem with [#0, el]:u64 <- R29 -00000031: mem := mem with [#0 + 8, el]:u64 <- R30 -00000035: R31 := #0 -0000003b: R29 := R31 -00000042: R29 := mem[R31, el]:u64 -00000047: R30 := mem[R31 + 8, el]:u64 -0000004b: R31 := R31 + 0x10 -00000050: call R30 with noreturn - -000005b3: sub _init(_init_result) -000005e9: _init_result :: out u32 = low:32[R0] - -00000514: -0000051a: #6 := R31 - 0x10 -00000520: mem := mem with [#6, el]:u64 <- R29 -00000526: mem := mem with [#6 + 8, el]:u64 <- R30 -0000052a: R31 := #6 -00000530: R29 := R31 -00000535: R30 := 0x5C0 -00000537: call @call_weak_fn with return %00000539 - -00000539: -0000053e: R29 := mem[R31, el]:u64 -00000543: R30 := mem[R31 + 8, el]:u64 -00000547: R31 := R31 + 0x10 -0000054c: call R30 with noreturn - -000005b4: sub _start(_start_result) -000005ea: _start_result :: out u32 = low:32[R0] - -000001b4: -000001b9: R29 := 0 -000001be: R30 := 0 -000001c4: R5 := R0 -000001cb: R1 := mem[R31, el]:u64 -000001d1: R2 := R31 + 8 -000001d7: R6 := R31 -000001dc: R0 := 0x10000 -000001e3: R0 := mem[R0 + 0xFD8, el]:u64 -000001e8: R3 := 0 -000001ed: R4 := 0 -000001f2: R30 := 0x670 -000001f5: call @__libc_start_main with return %000001f7 - -000001f7: -000001fa: R30 := 0x674 -000001fd: call @abort with return %000005d8 - -000005d8: -000005d9: call @call_weak_fn with noreturn - -000005b7: sub abort() - - -000001fb: -000004e6: R16 := 0x11000 -000004ed: R17 := mem[R16 + 0x18, el]:u64 -000004f3: R16 := R16 + 0x18 -000004f8: call R17 with noreturn - -000005b8: sub call_weak_fn(call_weak_fn_result) -000005eb: call_weak_fn_result :: out u32 = low:32[R0] - -000001ff: -00000202: R0 := 0x10000 -00000209: R0 := mem[R0 + 0xFD0, el]:u64 -0000020f: when R0 = 0 goto %0000020d -000005da: goto %00000402 - -0000020d: -00000215: call R30 with noreturn - -00000402: -00000405: goto @__gmon_start__ - -00000403: -000004d0: R16 := 0x11000 -000004d7: R17 := mem[R16 + 0x10, el]:u64 -000004dd: R16 := R16 + 0x10 -000004e2: call R17 with noreturn - -000005ba: sub deregister_tm_clones(deregister_tm_clones_result) -000005ec: deregister_tm_clones_result :: out u32 = low:32[R0] - -0000021b: -0000021e: R0 := 0x11000 -00000224: R0 := R0 + 0x30 -00000229: R1 := 0x11000 -0000022f: R1 := R1 + 0x30 -00000235: #1 := ~R0 -0000023a: #2 := R1 + ~R0 -00000240: VF := extend:65[#2 + 1] <> extend:65[R1] + extend:65[#1] + 1 -00000246: CF := pad:65[#2 + 1] <> pad:65[R1] + pad:65[#1] + 1 -0000024a: ZF := #2 + 1 = 0 -0000024e: NF := 63:63[#2 + 1] -00000254: when ZF goto %00000252 -000005db: goto %000003e4 - -000003e4: -000003e7: R1 := 0x10000 -000003ee: R1 := mem[R1 + 0xFB0, el]:u64 -000003f3: when R1 = 0 goto %00000252 -000005dc: goto %000003f7 - -00000252: -0000025a: call R30 with noreturn - -000003f7: -000003fb: R16 := R1 -00000400: call R16 with noreturn - -000005bd: sub frame_dummy(frame_dummy_result) -000005ed: frame_dummy_result :: out u32 = low:32[R0] - -000002f2: -000002f4: call @register_tm_clones with noreturn - -000005be: sub main(main_argc, main_argv, main_result) -000005ee: main_argc :: in u32 = low:32[R0] -000005ef: main_argv :: in out u64 = R1 -000005f0: main_result :: out u32 = low:32[R0] - -000002f6: -000002fa: R31 := R31 - 0x10 -00000301: mem := mem with [R31 + 0xC, el]:u32 <- 0 -00000308: mem := mem with [R31 + 8, el]:u32 <- 0 -0000030d: R8 := 0x10000 -00000314: R8 := mem[R8 + 0xFC0, el]:u64 -0000031b: R8 := pad:64[mem[R8, el]:u32] -00000321: #4 := 31:0[R8] - 1 -00000326: VF := extend:33[#4 + 1] <> extend:33[31:0[R8]] + 0 -0000032b: CF := pad:33[#4 + 1] <> pad:33[31:0[R8]] - 0x100000000 -0000032f: ZF := #4 + 1 = 0 -00000333: NF := 31:31[#4 + 1] -00000337: R8 := pad:64[#4 + 1] -00000343: when ZF goto %0000033c -00000344: goto %0000033f - -0000033f: -00000340: R8 := 1 -00000346: goto %00000342 - -0000033c: -0000033d: R8 := 0 -00000345: goto %00000342 - -00000342: -0000034c: when 0:0[R8] goto %0000034a -000005dd: goto %00000361 - -00000361: -00000364: goto %00000362 - -00000362: -00000368: R8 := 0x10000 -0000036f: R8 := mem[R8 + 0xFC8, el]:u64 -00000376: mem := mem with [R8, el]:u32 <- 0 -0000037d: R8 := pad:64[mem[R8, el]:u32] -00000385: mem := mem with [R31 + 8, el]:u32 <- 31:0[R8] -00000389: goto %0000034a - -0000034a: -00000354: R0 := pad:64[mem[R31 + 8, el]:u32] -0000035a: R31 := R31 + 0x10 -0000035f: call R30 with noreturn - -000005c0: sub register_tm_clones(register_tm_clones_result) -000005f1: register_tm_clones_result :: out u32 = low:32[R0] - -0000025c: -0000025f: R0 := 0x11000 -00000265: R0 := R0 + 0x30 -0000026a: R1 := 0x11000 -00000270: R1 := R1 + 0x30 -00000277: R1 := R1 + ~R0 + 1 -0000027d: R2 := 0.63:63[R1] -00000284: R1 := R2 + (R1 ~>> 3) -0000028a: R1 := extend:64[63:1[R1]] -00000290: when R1 = 0 goto %0000028e -000005de: goto %000003c6 - -000003c6: -000003c9: R2 := 0x10000 -000003d0: R2 := mem[R2 + 0xFE0, el]:u64 -000003d5: when R2 = 0 goto %0000028e -000005df: goto %000003d9 - -0000028e: -00000296: call R30 with noreturn - -000003d9: -000003dd: R16 := R2 -000003e2: call R16 with noreturn diff --git a/src/test/correct/basic_lock_read/clang_pic/basic_lock_read.expected b/src/test/correct/basic_lock_read/clang_pic/basic_lock_read.expected index 879efd300..0b94b91a8 100644 --- a/src/test/correct/basic_lock_read/clang_pic/basic_lock_read.expected +++ b/src/test/correct/basic_lock_read/clang_pic/basic_lock_read.expected @@ -1,36 +1,19 @@ -var {:extern} CF: bv1; -var {:extern} Gamma_CF: bool; -var {:extern} Gamma_NF: bool; var {:extern} Gamma_R0: bool; -var {:extern} Gamma_R31: bool; var {:extern} Gamma_R8: bool; -var {:extern} Gamma_VF: bool; -var {:extern} Gamma_ZF: bool; var {:extern} Gamma_mem: [bv64]bool; -var {:extern} Gamma_stack: [bv64]bool; -var {:extern} NF: bv1; var {:extern} R0: bv64; -var {:extern} R31: bv64; var {:extern} R8: bv64; -var {:extern} VF: bv1; -var {:extern} ZF: bv1; var {:extern} mem: [bv64]bv8; -var {:extern} stack: [bv64]bv8; const {:extern} $x_addr: bv64; -axiom ($x_addr == 69688bv64); +axiom ($x_addr == 131096bv64); const {:extern} $z_addr: bv64; -axiom ($z_addr == 69684bv64); +axiom ($z_addr == 131092bv64); function {:extern} L(mem$in: [bv64]bv8, index: bv64) returns (bool) { (if (index == $x_addr) then true else (if (index == $z_addr) then true else false)) } -function {:extern} {:bvbuiltin "bvadd"} bvadd32(bv32, bv32) returns (bv32); -function {:extern} {:bvbuiltin "bvadd"} bvadd33(bv33, bv33) returns (bv33); function {:extern} {:bvbuiltin "bvadd"} bvadd64(bv64, bv64) returns (bv64); -function {:extern} {:bvbuiltin "bvcomp"} bvcomp1(bv1, bv1) returns (bv1); function {:extern} {:bvbuiltin "bvcomp"} bvcomp32(bv32, bv32) returns (bv1); -function {:extern} {:bvbuiltin "bvcomp"} bvcomp33(bv33, bv33) returns (bv1); -function {:extern} {:bvbuiltin "bvnot"} bvnot1(bv1) returns (bv1); function {:extern} gamma_load32(gammaMap: [bv64]bool, index: bv64) returns (bool) { (gammaMap[bvadd64(index, 3bv64)] && (gammaMap[bvadd64(index, 2bv64)] && (gammaMap[bvadd64(index, 1bv64)] && gammaMap[index]))) } @@ -55,20 +38,18 @@ function {:extern} memory_store32_le(memory: [bv64]bv8, index: bv64, value: bv32 memory[index := value[8:0]][bvadd64(index, 1bv64) := value[16:8]][bvadd64(index, 2bv64) := value[24:16]][bvadd64(index, 3bv64) := value[32:24]] } -function {:extern} {:bvbuiltin "sign_extend 1"} sign_extend1_32(bv32) returns (bv33); -function {:extern} {:bvbuiltin "zero_extend 1"} zero_extend1_32(bv32) returns (bv33); function {:extern} {:bvbuiltin "zero_extend 32"} zero_extend32_32(bv32) returns (bv64); procedure {:extern} rely(); modifies Gamma_mem, mem; ensures (forall i: bv64 :: (((mem[i] == old(mem[i])) ==> (Gamma_mem[i] == old(Gamma_mem[i]))))); ensures ((old(memory_load32_le(mem, $z_addr)) == 0bv32) ==> ((memory_load32_le(mem, $x_addr) == old(memory_load32_le(mem, $x_addr))) && (memory_load32_le(mem, $z_addr) == old(memory_load32_le(mem, $z_addr))))); - free ensures (memory_load32_le(mem, 1972bv64) == 131073bv32); - free ensures (memory_load64_le(mem, 69048bv64) == 1872bv64); - free ensures (memory_load64_le(mem, 69056bv64) == 1792bv64); - free ensures (memory_load64_le(mem, 69568bv64) == 69684bv64); - free ensures (memory_load64_le(mem, 69576bv64) == 69688bv64); - free ensures (memory_load64_le(mem, 69592bv64) == 1876bv64); - free ensures (memory_load64_le(mem, 69672bv64) == 69672bv64); + free ensures (memory_load32_le(mem, 2324bv64) == 131073bv32); + free ensures (memory_load64_le(mem, 130424bv64) == 2256bv64); + free ensures (memory_load64_le(mem, 130432bv64) == 2176bv64); + free ensures (memory_load64_le(mem, 131032bv64) == 131092bv64); + free ensures (memory_load64_le(mem, 131040bv64) == 131096bv64); + free ensures (memory_load64_le(mem, 131056bv64) == 2260bv64); + free ensures (memory_load64_le(mem, 131080bv64) == 131080bv64); procedure {:extern} rely_transitive(); modifies Gamma_mem, mem; @@ -95,122 +76,74 @@ implementation {:extern} guarantee_reflexive() assert (memory_load32_le(mem, $z_addr) == memory_load32_le(mem, $z_addr)); } -procedure main_1876(); - modifies CF, Gamma_CF, Gamma_NF, Gamma_R0, Gamma_R31, Gamma_R8, Gamma_VF, Gamma_ZF, Gamma_mem, Gamma_stack, NF, R0, R31, R8, VF, ZF, mem, stack; - free requires (memory_load64_le(mem, 69664bv64) == 0bv64); - free requires (memory_load64_le(mem, 69672bv64) == 69672bv64); - free requires (memory_load32_le(mem, 1972bv64) == 131073bv32); - free requires (memory_load64_le(mem, 69048bv64) == 1872bv64); - free requires (memory_load64_le(mem, 69056bv64) == 1792bv64); - free requires (memory_load64_le(mem, 69568bv64) == 69684bv64); - free requires (memory_load64_le(mem, 69576bv64) == 69688bv64); - free requires (memory_load64_le(mem, 69592bv64) == 1876bv64); - free requires (memory_load64_le(mem, 69672bv64) == 69672bv64); +procedure main(); + modifies Gamma_R0, Gamma_R8, Gamma_mem, R0, R8, mem; + free requires (memory_load64_le(mem, 131072bv64) == 0bv64); + free requires (memory_load64_le(mem, 131080bv64) == 131080bv64); + free requires (memory_load32_le(mem, 2324bv64) == 131073bv32); + free requires (memory_load64_le(mem, 130424bv64) == 2256bv64); + free requires (memory_load64_le(mem, 130432bv64) == 2176bv64); + free requires (memory_load64_le(mem, 131032bv64) == 131092bv64); + free requires (memory_load64_le(mem, 131040bv64) == 131096bv64); + free requires (memory_load64_le(mem, 131056bv64) == 2260bv64); + free requires (memory_load64_le(mem, 131080bv64) == 131080bv64); ensures (R0[32:0] == 0bv32); - free ensures (Gamma_R31 == old(Gamma_R31)); - free ensures (R31 == old(R31)); - free ensures (memory_load32_le(mem, 1972bv64) == 131073bv32); - free ensures (memory_load64_le(mem, 69048bv64) == 1872bv64); - free ensures (memory_load64_le(mem, 69056bv64) == 1792bv64); - free ensures (memory_load64_le(mem, 69568bv64) == 69684bv64); - free ensures (memory_load64_le(mem, 69576bv64) == 69688bv64); - free ensures (memory_load64_le(mem, 69592bv64) == 1876bv64); - free ensures (memory_load64_le(mem, 69672bv64) == 69672bv64); - -implementation main_1876() + free ensures (memory_load32_le(mem, 2324bv64) == 131073bv32); + free ensures (memory_load64_le(mem, 130424bv64) == 2256bv64); + free ensures (memory_load64_le(mem, 130432bv64) == 2176bv64); + free ensures (memory_load64_le(mem, 131032bv64) == 131092bv64); + free ensures (memory_load64_le(mem, 131040bv64) == 131096bv64); + free ensures (memory_load64_le(mem, 131056bv64) == 2260bv64); + free ensures (memory_load64_le(mem, 131080bv64) == 131080bv64); + +implementation main() { - var #4: bv32; - var Gamma_#4: bool; - var Gamma_load18: bool; - var Gamma_load19: bool; - var Gamma_load20: bool; - var Gamma_load21: bool; - var Gamma_load22: bool; - var load18: bv64; - var load19: bv32; - var load20: bv64; - var load21: bv32; - var load22: bv32; + var $load$18: bv64; + var $load$19: bv32; + var $load$20: bv64; + var Gamma_$load$18: bool; + var Gamma_$load$19: bool; + var Gamma_$load$20: bool; var z_old: bv32; lmain: assume {:captureState "lmain"} true; - R31, Gamma_R31 := bvadd64(R31, 18446744073709551600bv64), Gamma_R31; - stack, Gamma_stack := memory_store32_le(stack, bvadd64(R31, 12bv64), 0bv32), gamma_store32(Gamma_stack, bvadd64(R31, 12bv64), true); - assume {:captureState "%00000301"} true; - stack, Gamma_stack := memory_store32_le(stack, bvadd64(R31, 8bv64), 0bv32), gamma_store32(Gamma_stack, bvadd64(R31, 8bv64), true); - assume {:captureState "%00000308"} true; - R8, Gamma_R8 := 65536bv64, true; + R8, Gamma_R8 := 126976bv64, true; call rely(); - load18, Gamma_load18 := memory_load64_le(mem, bvadd64(R8, 4032bv64)), (gamma_load64(Gamma_mem, bvadd64(R8, 4032bv64)) || L(mem, bvadd64(R8, 4032bv64))); - R8, Gamma_R8 := load18, Gamma_load18; + $load$18, Gamma_$load$18 := memory_load64_le(mem, bvadd64(R8, 4056bv64)), (gamma_load64(Gamma_mem, bvadd64(R8, 4056bv64)) || L(mem, bvadd64(R8, 4056bv64))); + R8, Gamma_R8 := $load$18, Gamma_$load$18; call rely(); - load19, Gamma_load19 := memory_load32_le(mem, R8), (gamma_load32(Gamma_mem, R8) || L(mem, R8)); - R8, Gamma_R8 := zero_extend32_32(load19), Gamma_load19; - #4, Gamma_#4 := bvadd32(R8[32:0], 4294967295bv32), Gamma_R8; - VF, Gamma_VF := bvnot1(bvcomp33(sign_extend1_32(bvadd32(#4, 1bv32)), bvadd33(sign_extend1_32(R8[32:0]), 0bv33))), (Gamma_R8 && Gamma_#4); - CF, Gamma_CF := bvnot1(bvcomp33(zero_extend1_32(bvadd32(#4, 1bv32)), bvadd33(zero_extend1_32(R8[32:0]), 4294967296bv33))), (Gamma_R8 && Gamma_#4); - ZF, Gamma_ZF := bvcomp32(bvadd32(#4, 1bv32), 0bv32), Gamma_#4; - NF, Gamma_NF := bvadd32(#4, 1bv32)[32:31], Gamma_#4; - R8, Gamma_R8 := zero_extend32_32(bvadd32(#4, 1bv32)), Gamma_#4; - assert Gamma_ZF; - goto lmain_goto_l0000033c, lmain_goto_l0000033f; - lmain_goto_l0000033f: - assume {:captureState "lmain_goto_l0000033f"} true; - assume (bvcomp1(ZF, 1bv1) == 0bv1); - R8, Gamma_R8 := 1bv64, true; - goto l0000033f; - l0000033f: - assume {:captureState "l0000033f"} true; - goto l00000342; - lmain_goto_l0000033c: - assume {:captureState "lmain_goto_l0000033c"} true; - assume (bvcomp1(ZF, 1bv1) != 0bv1); - R8, Gamma_R8 := 0bv64, true; - goto l0000033c; - l0000033c: - assume {:captureState "l0000033c"} true; - goto l00000342; - l00000342: - assume {:captureState "l00000342"} true; + $load$19, Gamma_$load$19 := memory_load32_le(mem, R8), (gamma_load32(Gamma_mem, R8) || L(mem, R8)); + R8, Gamma_R8 := zero_extend32_32($load$19), Gamma_$load$19; assert Gamma_R8; - goto l00000342_goto_l0000034a, l00000342_goto_l00000361; - l00000342_goto_l00000361: - assume {:captureState "l00000342_goto_l00000361"} true; - assume (bvcomp1(R8[1:0], 1bv1) == 0bv1); - goto l00000361; - l00000361: - assume {:captureState "l00000361"} true; - goto l00000362; - l00000362: - assume {:captureState "l00000362"} true; - R8, Gamma_R8 := 65536bv64, true; + goto lmain_goto_l0000028c, lmain_goto_l00000294; + l0000028c: + assume {:captureState "l0000028c"} true; + R8, Gamma_R8 := 126976bv64, true; call rely(); - load20, Gamma_load20 := memory_load64_le(mem, bvadd64(R8, 4040bv64)), (gamma_load64(Gamma_mem, bvadd64(R8, 4040bv64)) || L(mem, bvadd64(R8, 4040bv64))); - R8, Gamma_R8 := load20, Gamma_load20; + $load$20, Gamma_$load$20 := memory_load64_le(mem, bvadd64(R8, 4064bv64)), (gamma_load64(Gamma_mem, bvadd64(R8, 4064bv64)) || L(mem, bvadd64(R8, 4064bv64))); + R8, Gamma_R8 := $load$20, Gamma_$load$20; call rely(); - z_old := memory_load32_le(mem, $z_addr); assert (L(mem, R8) ==> true); + z_old := memory_load32_le(mem, $z_addr); mem, Gamma_mem := memory_store32_le(mem, R8, 0bv32), gamma_store32(Gamma_mem, R8, true); assert (memory_load32_le(mem, $z_addr) == z_old); - assume {:captureState "%00000376"} true; - call rely(); - load21, Gamma_load21 := memory_load32_le(mem, R8), (gamma_load32(Gamma_mem, R8) || L(mem, R8)); - R8, Gamma_R8 := zero_extend32_32(load21), Gamma_load21; - stack, Gamma_stack := memory_store32_le(stack, bvadd64(R31, 8bv64), R8[32:0]), gamma_store32(Gamma_stack, bvadd64(R31, 8bv64), Gamma_R8); - assume {:captureState "%00000385"} true; - goto l0000034a; - l00000342_goto_l0000034a: - assume {:captureState "l00000342_goto_l0000034a"} true; - assume (bvcomp1(R8[1:0], 1bv1) != 0bv1); - goto l0000034a; - l0000034a: - assume {:captureState "l0000034a"} true; - load22, Gamma_load22 := memory_load32_le(stack, bvadd64(R31, 8bv64)), gamma_load32(Gamma_stack, bvadd64(R31, 8bv64)); - R0, Gamma_R0 := zero_extend32_32(load22), Gamma_load22; - R31, Gamma_R31 := bvadd64(R31, 16bv64), Gamma_R31; - goto main_1876_basil_return; - main_1876_basil_return: - assume {:captureState "main_1876_basil_return"} true; + assume {:captureState "%000002a0"} true; + R0, Gamma_R0 := 0bv64, true; + goto main_basil_return; + l00000294: + assume {:captureState "l00000294"} true; + R0, Gamma_R0 := 0bv64, true; + goto main_basil_return; + lmain_goto_l0000028c: + assume {:captureState "lmain_goto_l0000028c"} true; + assume (bvcomp32(R8[32:0], 0bv32) != 0bv1); + goto l0000028c; + lmain_goto_l00000294: + assume {:captureState "lmain_goto_l00000294"} true; + assume (bvcomp32(R8[32:0], 0bv32) == 0bv1); + goto l00000294; + main_basil_return: + assume {:captureState "main_basil_return"} true; return; } diff --git a/src/test/correct/basic_lock_read/clang_pic/basic_lock_read.gts b/src/test/correct/basic_lock_read/clang_pic/basic_lock_read.gts deleted file mode 100644 index 767d31a46..000000000 Binary files a/src/test/correct/basic_lock_read/clang_pic/basic_lock_read.gts and /dev/null differ diff --git a/src/test/correct/basic_lock_read/clang_pic/basic_lock_read.md5sum b/src/test/correct/basic_lock_read/clang_pic/basic_lock_read.md5sum new file mode 100644 index 000000000..68689f1e9 --- /dev/null +++ b/src/test/correct/basic_lock_read/clang_pic/basic_lock_read.md5sum @@ -0,0 +1,5 @@ +5e570f65ed4730fd2fcfb13a9250982f correct/basic_lock_read/clang_pic/a.out +66d11ed1662178f1a1c03ce885ecd34b correct/basic_lock_read/clang_pic/basic_lock_read.adt +a47d0f769b8812e7228c3528e467662f correct/basic_lock_read/clang_pic/basic_lock_read.bir +c031a79905199c70c1298a8cde4b2d01 correct/basic_lock_read/clang_pic/basic_lock_read.relf +5c129d299008cb747b40f51a9b7c6df2 correct/basic_lock_read/clang_pic/basic_lock_read.gts diff --git a/src/test/correct/basic_lock_read/clang_pic/basic_lock_read.relf b/src/test/correct/basic_lock_read/clang_pic/basic_lock_read.relf deleted file mode 100644 index a9e8686e2..000000000 --- a/src/test/correct/basic_lock_read/clang_pic/basic_lock_read.relf +++ /dev/null @@ -1,126 +0,0 @@ - -Relocation section '.rela.dyn' at offset 0x460 contains 10 entries: - Offset Info Type Symbol's Value Symbol's Name + Addend -0000000000010db8 0000000000000403 R_AARCH64_RELATIVE 750 -0000000000010dc0 0000000000000403 R_AARCH64_RELATIVE 700 -0000000000010fc0 0000000000000403 R_AARCH64_RELATIVE 11034 -0000000000010fc8 0000000000000403 R_AARCH64_RELATIVE 11038 -0000000000010fd8 0000000000000403 R_AARCH64_RELATIVE 754 -0000000000011028 0000000000000403 R_AARCH64_RELATIVE 11028 -0000000000010fb0 0000000400000401 R_AARCH64_GLOB_DAT 0000000000000000 _ITM_deregisterTMCloneTable + 0 -0000000000010fb8 0000000500000401 R_AARCH64_GLOB_DAT 0000000000000000 __cxa_finalize@GLIBC_2.17 + 0 -0000000000010fd0 0000000600000401 R_AARCH64_GLOB_DAT 0000000000000000 __gmon_start__ + 0 -0000000000010fe0 0000000800000401 R_AARCH64_GLOB_DAT 0000000000000000 _ITM_registerTMCloneTable + 0 - -Relocation section '.rela.plt' at offset 0x550 contains 4 entries: - Offset Info Type Symbol's Value Symbol's Name + Addend -0000000000011000 0000000300000402 R_AARCH64_JUMP_SLOT 0000000000000000 __libc_start_main@GLIBC_2.34 + 0 -0000000000011008 0000000500000402 R_AARCH64_JUMP_SLOT 0000000000000000 __cxa_finalize@GLIBC_2.17 + 0 -0000000000011010 0000000600000402 R_AARCH64_JUMP_SLOT 0000000000000000 __gmon_start__ + 0 -0000000000011018 0000000700000402 R_AARCH64_JUMP_SLOT 0000000000000000 abort@GLIBC_2.17 + 0 - -Symbol table '.dynsym' contains 9 entries: - Num: Value Size Type Bind Vis Ndx Name - 0: 0000000000000000 0 NOTYPE LOCAL DEFAULT UND - 1: 00000000000005b0 0 SECTION LOCAL DEFAULT 11 .init - 2: 0000000000011020 0 SECTION LOCAL DEFAULT 23 .data - 3: 0000000000000000 0 FUNC GLOBAL DEFAULT UND __libc_start_main@GLIBC_2.34 (2) - 4: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_deregisterTMCloneTable - 5: 0000000000000000 0 FUNC WEAK DEFAULT UND __cxa_finalize@GLIBC_2.17 (3) - 6: 0000000000000000 0 NOTYPE WEAK DEFAULT UND __gmon_start__ - 7: 0000000000000000 0 FUNC GLOBAL DEFAULT UND abort@GLIBC_2.17 (3) - 8: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_registerTMCloneTable - -Symbol table '.symtab' contains 91 entries: - Num: Value Size Type Bind Vis Ndx Name - 0: 0000000000000000 0 NOTYPE LOCAL DEFAULT UND - 1: 0000000000000238 0 SECTION LOCAL DEFAULT 1 .interp - 2: 0000000000000254 0 SECTION LOCAL DEFAULT 2 .note.gnu.build-id - 3: 0000000000000278 0 SECTION LOCAL DEFAULT 3 .note.ABI-tag - 4: 0000000000000298 0 SECTION LOCAL DEFAULT 4 .gnu.hash - 5: 00000000000002b8 0 SECTION LOCAL DEFAULT 5 .dynsym - 6: 0000000000000390 0 SECTION LOCAL DEFAULT 6 .dynstr - 7: 000000000000041e 0 SECTION LOCAL DEFAULT 7 .gnu.version - 8: 0000000000000430 0 SECTION LOCAL DEFAULT 8 .gnu.version_r - 9: 0000000000000460 0 SECTION LOCAL DEFAULT 9 .rela.dyn - 10: 0000000000000550 0 SECTION LOCAL DEFAULT 10 .rela.plt - 11: 00000000000005b0 0 SECTION LOCAL DEFAULT 11 .init - 12: 00000000000005d0 0 SECTION LOCAL DEFAULT 12 .plt - 13: 0000000000000640 0 SECTION LOCAL DEFAULT 13 .text - 14: 00000000000007a0 0 SECTION LOCAL DEFAULT 14 .fini - 15: 00000000000007b4 0 SECTION LOCAL DEFAULT 15 .rodata - 16: 00000000000007b8 0 SECTION LOCAL DEFAULT 16 .eh_frame_hdr - 17: 00000000000007f8 0 SECTION LOCAL DEFAULT 17 .eh_frame - 18: 0000000000010db8 0 SECTION LOCAL DEFAULT 18 .init_array - 19: 0000000000010dc0 0 SECTION LOCAL DEFAULT 19 .fini_array - 20: 0000000000010dc8 0 SECTION LOCAL DEFAULT 20 .dynamic - 21: 0000000000010fa8 0 SECTION LOCAL DEFAULT 21 .got - 22: 0000000000010fe8 0 SECTION LOCAL DEFAULT 22 .got.plt - 23: 0000000000011020 0 SECTION LOCAL DEFAULT 23 .data - 24: 0000000000011030 0 SECTION LOCAL DEFAULT 24 .bss - 25: 0000000000000000 0 SECTION LOCAL DEFAULT 25 .comment - 26: 0000000000000000 0 FILE LOCAL DEFAULT ABS Scrt1.o - 27: 0000000000000278 0 NOTYPE LOCAL DEFAULT 3 $d - 28: 0000000000000278 32 OBJECT LOCAL DEFAULT 3 __abi_tag - 29: 0000000000000640 0 NOTYPE LOCAL DEFAULT 13 $x - 30: 000000000000080c 0 NOTYPE LOCAL DEFAULT 17 $d - 31: 00000000000007b4 0 NOTYPE LOCAL DEFAULT 15 $d - 32: 0000000000000000 0 FILE LOCAL DEFAULT ABS crti.o - 33: 0000000000000674 0 NOTYPE LOCAL DEFAULT 13 $x - 34: 0000000000000674 20 FUNC LOCAL DEFAULT 13 call_weak_fn - 35: 00000000000005b0 0 NOTYPE LOCAL DEFAULT 11 $x - 36: 00000000000007a0 0 NOTYPE LOCAL DEFAULT 14 $x - 37: 0000000000000000 0 FILE LOCAL DEFAULT ABS crtn.o - 38: 00000000000005c0 0 NOTYPE LOCAL DEFAULT 11 $x - 39: 00000000000007ac 0 NOTYPE LOCAL DEFAULT 14 $x - 40: 0000000000000000 0 FILE LOCAL DEFAULT ABS crtstuff.c - 41: 0000000000000690 0 NOTYPE LOCAL DEFAULT 13 $x - 42: 0000000000000690 0 FUNC LOCAL DEFAULT 13 deregister_tm_clones - 43: 00000000000006c0 0 FUNC LOCAL DEFAULT 13 register_tm_clones - 44: 0000000000011028 0 NOTYPE LOCAL DEFAULT 23 $d - 45: 0000000000000700 0 FUNC LOCAL DEFAULT 13 __do_global_dtors_aux - 46: 0000000000011030 1 OBJECT LOCAL DEFAULT 24 completed.0 - 47: 0000000000010dc0 0 NOTYPE LOCAL DEFAULT 19 $d - 48: 0000000000010dc0 0 OBJECT LOCAL DEFAULT 19 __do_global_dtors_aux_fini_array_entry - 49: 0000000000000750 0 FUNC LOCAL DEFAULT 13 frame_dummy - 50: 0000000000010db8 0 NOTYPE LOCAL DEFAULT 18 $d - 51: 0000000000010db8 0 OBJECT LOCAL DEFAULT 18 __frame_dummy_init_array_entry - 52: 0000000000000820 0 NOTYPE LOCAL DEFAULT 17 $d - 53: 0000000000011030 0 NOTYPE LOCAL DEFAULT 24 $d - 54: 0000000000000000 0 FILE LOCAL DEFAULT ABS basic_lock_read.c - 55: 0000000000000754 0 NOTYPE LOCAL DEFAULT 13 $x.0 - 56: 0000000000011034 0 NOTYPE LOCAL DEFAULT 24 $d.1 - 57: 000000000000002a 0 NOTYPE LOCAL DEFAULT 25 $d.2 - 58: 0000000000000880 0 NOTYPE LOCAL DEFAULT 17 $d.3 - 59: 0000000000000000 0 FILE LOCAL DEFAULT ABS crtstuff.c - 60: 00000000000008ac 0 NOTYPE LOCAL DEFAULT 17 $d - 61: 00000000000008ac 0 OBJECT LOCAL DEFAULT 17 __FRAME_END__ - 62: 0000000000000000 0 FILE LOCAL DEFAULT ABS - 63: 0000000000010dc8 0 OBJECT LOCAL DEFAULT ABS _DYNAMIC - 64: 00000000000007b8 0 NOTYPE LOCAL DEFAULT 16 __GNU_EH_FRAME_HDR - 65: 0000000000010fa8 0 OBJECT LOCAL DEFAULT ABS _GLOBAL_OFFSET_TABLE_ - 66: 00000000000005d0 0 NOTYPE LOCAL DEFAULT 12 $x - 67: 0000000000000000 0 FUNC GLOBAL DEFAULT UND __libc_start_main@GLIBC_2.34 - 68: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_deregisterTMCloneTable - 69: 0000000000011020 0 NOTYPE WEAK DEFAULT 23 data_start - 70: 0000000000011030 0 NOTYPE GLOBAL DEFAULT 24 __bss_start__ - 71: 0000000000000000 0 FUNC WEAK DEFAULT UND __cxa_finalize@GLIBC_2.17 - 72: 0000000000011040 0 NOTYPE GLOBAL DEFAULT 24 _bss_end__ - 73: 0000000000011030 0 NOTYPE GLOBAL DEFAULT 23 _edata - 74: 0000000000011034 4 OBJECT GLOBAL DEFAULT 24 z - 75: 0000000000011038 4 OBJECT GLOBAL DEFAULT 24 x - 76: 00000000000007a0 0 FUNC GLOBAL HIDDEN 14 _fini - 77: 0000000000011040 0 NOTYPE GLOBAL DEFAULT 24 __bss_end__ - 78: 0000000000011020 0 NOTYPE GLOBAL DEFAULT 23 __data_start - 79: 0000000000000000 0 NOTYPE WEAK DEFAULT UND __gmon_start__ - 80: 0000000000011028 0 OBJECT GLOBAL HIDDEN 23 __dso_handle - 81: 0000000000000000 0 FUNC GLOBAL DEFAULT UND abort@GLIBC_2.17 - 82: 00000000000007b4 4 OBJECT GLOBAL DEFAULT 15 _IO_stdin_used - 83: 0000000000011040 0 NOTYPE GLOBAL DEFAULT 24 _end - 84: 0000000000000640 52 FUNC GLOBAL DEFAULT 13 _start - 85: 0000000000011040 0 NOTYPE GLOBAL DEFAULT 24 __end__ - 86: 0000000000011030 0 NOTYPE GLOBAL DEFAULT 24 __bss_start - 87: 0000000000000754 76 FUNC GLOBAL DEFAULT 13 main - 88: 0000000000011030 0 OBJECT GLOBAL HIDDEN 23 __TMC_END__ - 89: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_registerTMCloneTable - 90: 00000000000005b0 0 FUNC GLOBAL HIDDEN 11 _init diff --git a/src/test/correct/basic_lock_read/clang_pic/basic_lock_read_gtirb.expected b/src/test/correct/basic_lock_read/clang_pic/basic_lock_read_gtirb.expected index 9d0525aed..5ea6dfce3 100644 --- a/src/test/correct/basic_lock_read/clang_pic/basic_lock_read_gtirb.expected +++ b/src/test/correct/basic_lock_read/clang_pic/basic_lock_read_gtirb.expected @@ -1,35 +1,18 @@ -var {:extern} CF: bv1; -var {:extern} Gamma_CF: bool; -var {:extern} Gamma_NF: bool; var {:extern} Gamma_R0: bool; -var {:extern} Gamma_R31: bool; var {:extern} Gamma_R8: bool; -var {:extern} Gamma_VF: bool; -var {:extern} Gamma_ZF: bool; var {:extern} Gamma_mem: [bv64]bool; -var {:extern} Gamma_stack: [bv64]bool; -var {:extern} NF: bv1; var {:extern} R0: bv64; -var {:extern} R31: bv64; var {:extern} R8: bv64; -var {:extern} VF: bv1; -var {:extern} ZF: bv1; var {:extern} mem: [bv64]bv8; -var {:extern} stack: [bv64]bv8; const {:extern} $x_addr: bv64; -axiom ($x_addr == 69688bv64); +axiom ($x_addr == 131096bv64); const {:extern} $z_addr: bv64; -axiom ($z_addr == 69684bv64); +axiom ($z_addr == 131092bv64); function {:extern} L(mem$in: [bv64]bv8, index: bv64) returns (bool) { (if (index == $x_addr) then true else (if (index == $z_addr) then true else false)) } -function {:extern} {:bvbuiltin "bvadd"} bvadd32(bv32, bv32) returns (bv32); -function {:extern} {:bvbuiltin "bvadd"} bvadd33(bv33, bv33) returns (bv33); function {:extern} {:bvbuiltin "bvadd"} bvadd64(bv64, bv64) returns (bv64); -function {:extern} {:bvbuiltin "bvcomp"} bvcomp32(bv32, bv32) returns (bv1); -function {:extern} {:bvbuiltin "bvcomp"} bvcomp33(bv33, bv33) returns (bv1); -function {:extern} {:bvbuiltin "bvnot"} bvnot1(bv1) returns (bv1); function {:extern} gamma_load32(gammaMap: [bv64]bool, index: bv64) returns (bool) { (gammaMap[bvadd64(index, 3bv64)] && (gammaMap[bvadd64(index, 2bv64)] && (gammaMap[bvadd64(index, 1bv64)] && gammaMap[index]))) } @@ -54,19 +37,18 @@ function {:extern} memory_store32_le(memory: [bv64]bv8, index: bv64, value: bv32 memory[index := value[8:0]][bvadd64(index, 1bv64) := value[16:8]][bvadd64(index, 2bv64) := value[24:16]][bvadd64(index, 3bv64) := value[32:24]] } -function {:extern} {:bvbuiltin "zero_extend 1"} zero_extend1_32(bv32) returns (bv33); function {:extern} {:bvbuiltin "zero_extend 32"} zero_extend32_32(bv32) returns (bv64); procedure {:extern} rely(); modifies Gamma_mem, mem; ensures (forall i: bv64 :: (((mem[i] == old(mem[i])) ==> (Gamma_mem[i] == old(Gamma_mem[i]))))); ensures ((old(memory_load32_le(mem, $z_addr)) == 0bv32) ==> ((memory_load32_le(mem, $x_addr) == old(memory_load32_le(mem, $x_addr))) && (memory_load32_le(mem, $z_addr) == old(memory_load32_le(mem, $z_addr))))); - free ensures (memory_load32_le(mem, 1972bv64) == 131073bv32); - free ensures (memory_load64_le(mem, 69048bv64) == 1872bv64); - free ensures (memory_load64_le(mem, 69056bv64) == 1792bv64); - free ensures (memory_load64_le(mem, 69568bv64) == 69684bv64); - free ensures (memory_load64_le(mem, 69576bv64) == 69688bv64); - free ensures (memory_load64_le(mem, 69592bv64) == 1876bv64); - free ensures (memory_load64_le(mem, 69672bv64) == 69672bv64); + free ensures (memory_load32_le(mem, 2324bv64) == 131073bv32); + free ensures (memory_load64_le(mem, 130424bv64) == 2256bv64); + free ensures (memory_load64_le(mem, 130432bv64) == 2176bv64); + free ensures (memory_load64_le(mem, 131032bv64) == 131092bv64); + free ensures (memory_load64_le(mem, 131040bv64) == 131096bv64); + free ensures (memory_load64_le(mem, 131056bv64) == 2260bv64); + free ensures (memory_load64_le(mem, 131080bv64) == 131080bv64); procedure {:extern} rely_transitive(); modifies Gamma_mem, mem; @@ -93,114 +75,74 @@ implementation {:extern} guarantee_reflexive() assert (memory_load32_le(mem, $z_addr) == memory_load32_le(mem, $z_addr)); } -procedure main_1876(); - modifies CF, Gamma_CF, Gamma_NF, Gamma_R0, Gamma_R31, Gamma_R8, Gamma_VF, Gamma_ZF, Gamma_mem, Gamma_stack, NF, R0, R31, R8, VF, ZF, mem, stack; - free requires (memory_load64_le(mem, 69664bv64) == 0bv64); - free requires (memory_load64_le(mem, 69672bv64) == 69672bv64); - free requires (memory_load32_le(mem, 1972bv64) == 131073bv32); - free requires (memory_load64_le(mem, 69048bv64) == 1872bv64); - free requires (memory_load64_le(mem, 69056bv64) == 1792bv64); - free requires (memory_load64_le(mem, 69568bv64) == 69684bv64); - free requires (memory_load64_le(mem, 69576bv64) == 69688bv64); - free requires (memory_load64_le(mem, 69592bv64) == 1876bv64); - free requires (memory_load64_le(mem, 69672bv64) == 69672bv64); +procedure main(); + modifies Gamma_R0, Gamma_R8, Gamma_mem, R0, R8, mem; + free requires (memory_load64_le(mem, 131072bv64) == 0bv64); + free requires (memory_load64_le(mem, 131080bv64) == 131080bv64); + free requires (memory_load32_le(mem, 2324bv64) == 131073bv32); + free requires (memory_load64_le(mem, 130424bv64) == 2256bv64); + free requires (memory_load64_le(mem, 130432bv64) == 2176bv64); + free requires (memory_load64_le(mem, 131032bv64) == 131092bv64); + free requires (memory_load64_le(mem, 131040bv64) == 131096bv64); + free requires (memory_load64_le(mem, 131056bv64) == 2260bv64); + free requires (memory_load64_le(mem, 131080bv64) == 131080bv64); ensures (R0[32:0] == 0bv32); - free ensures (Gamma_R31 == old(Gamma_R31)); - free ensures (R31 == old(R31)); - free ensures (memory_load32_le(mem, 1972bv64) == 131073bv32); - free ensures (memory_load64_le(mem, 69048bv64) == 1872bv64); - free ensures (memory_load64_le(mem, 69056bv64) == 1792bv64); - free ensures (memory_load64_le(mem, 69568bv64) == 69684bv64); - free ensures (memory_load64_le(mem, 69576bv64) == 69688bv64); - free ensures (memory_load64_le(mem, 69592bv64) == 1876bv64); - free ensures (memory_load64_le(mem, 69672bv64) == 69672bv64); - -implementation main_1876() + free ensures (memory_load32_le(mem, 2324bv64) == 131073bv32); + free ensures (memory_load64_le(mem, 130424bv64) == 2256bv64); + free ensures (memory_load64_le(mem, 130432bv64) == 2176bv64); + free ensures (memory_load64_le(mem, 131032bv64) == 131092bv64); + free ensures (memory_load64_le(mem, 131040bv64) == 131096bv64); + free ensures (memory_load64_le(mem, 131056bv64) == 2260bv64); + free ensures (memory_load64_le(mem, 131080bv64) == 131080bv64); + +implementation main() { - var Cse0__5_2_6: bv32; - var Gamma_Cse0__5_2_6: bool; - var Gamma_load0: bool; - var Gamma_load1: bool; - var Gamma_load2: bool; - var Gamma_load3: bool; - var Gamma_load4: bool; - var load0: bv64; - var load1: bv32; - var load2: bv64; - var load3: bv32; - var load4: bv32; + var $load0: bv64; + var $load1: bv64; + var $load2: bv32; + var Gamma_$load0: bool; + var Gamma_$load1: bool; + var Gamma_$load2: bool; var z_old: bv32; - main_1876__0__sDgL5ErbRei_PI97mOM34Q: - assume {:captureState "main_1876__0__sDgL5ErbRei_PI97mOM34Q"} true; - R31, Gamma_R31 := bvadd64(R31, 18446744073709551600bv64), Gamma_R31; - stack, Gamma_stack := memory_store32_le(stack, bvadd64(R31, 12bv64), 0bv32), gamma_store32(Gamma_stack, bvadd64(R31, 12bv64), true); - assume {:captureState "1880_0"} true; - stack, Gamma_stack := memory_store32_le(stack, bvadd64(R31, 8bv64), 0bv32), gamma_store32(Gamma_stack, bvadd64(R31, 8bv64), true); - assume {:captureState "1884_0"} true; - R8, Gamma_R8 := 65536bv64, true; + $main$__0__$lwyID0MJQb6vgyjzPFtz8Q: + assume {:captureState "$main$__0__$lwyID0MJQb6vgyjzPFtz8Q"} true; + R8, Gamma_R8 := 126976bv64, true; call rely(); - load2, Gamma_load2 := memory_load64_le(mem, bvadd64(R8, 4032bv64)), (gamma_load64(Gamma_mem, bvadd64(R8, 4032bv64)) || L(mem, bvadd64(R8, 4032bv64))); - R8, Gamma_R8 := load2, Gamma_load2; + $load1, Gamma_$load1 := memory_load64_le(mem, bvadd64(R8, 4056bv64)), (gamma_load64(Gamma_mem, bvadd64(R8, 4056bv64)) || L(mem, bvadd64(R8, 4056bv64))); + R8, Gamma_R8 := $load1, Gamma_$load1; call rely(); - load3, Gamma_load3 := memory_load32_le(mem, R8), (gamma_load32(Gamma_mem, R8) || L(mem, R8)); - R8, Gamma_R8 := zero_extend32_32(load3), Gamma_load3; - Cse0__5_2_6, Gamma_Cse0__5_2_6 := bvadd32(R8[32:0], 0bv32), Gamma_R8; - VF, Gamma_VF := bvnot1(bvcomp32(Cse0__5_2_6, Cse0__5_2_6)), Gamma_Cse0__5_2_6; - CF, Gamma_CF := bvnot1(bvcomp33(zero_extend1_32(Cse0__5_2_6), bvadd33(zero_extend1_32(R8[32:0]), 4294967296bv33))), (Gamma_R8 && Gamma_Cse0__5_2_6); - ZF, Gamma_ZF := bvcomp32(Cse0__5_2_6, 0bv32), Gamma_Cse0__5_2_6; - NF, Gamma_NF := Cse0__5_2_6[32:31], Gamma_Cse0__5_2_6; - R8, Gamma_R8 := zero_extend32_32(Cse0__5_2_6), Gamma_Cse0__5_2_6; - assert Gamma_ZF; - goto main_1876__0__sDgL5ErbRei_PI97mOM34Q$__0, main_1876__0__sDgL5ErbRei_PI97mOM34Q$__1; - main_1876__0__sDgL5ErbRei_PI97mOM34Q$__1: - assume {:captureState "main_1876__0__sDgL5ErbRei_PI97mOM34Q$__1"} true; - assume (!(ZF == 1bv1)); - R8, Gamma_R8 := 1bv64, true; + $load2, Gamma_$load2 := memory_load32_le(mem, R8), (gamma_load32(Gamma_mem, R8) || L(mem, R8)); + R8, Gamma_R8 := zero_extend32_32($load2), Gamma_$load2; assert Gamma_R8; - goto main_1876__0__sDgL5ErbRei_PI97mOM34Q_goto_main_1876__3__txO5s~pWRamQAjZH4_ZIww, main_1876__0__sDgL5ErbRei_PI97mOM34Q_goto_main_1876__1__Fh8Bafn_SSyRCR_S9MtmNQ; - main_1876__0__sDgL5ErbRei_PI97mOM34Q$__0: - assume {:captureState "main_1876__0__sDgL5ErbRei_PI97mOM34Q$__0"} true; - assume (ZF == 1bv1); - R8, Gamma_R8 := 0bv64, true; - assert Gamma_R8; - goto main_1876__0__sDgL5ErbRei_PI97mOM34Q_goto_main_1876__3__txO5s~pWRamQAjZH4_ZIww, main_1876__0__sDgL5ErbRei_PI97mOM34Q_goto_main_1876__1__Fh8Bafn_SSyRCR_S9MtmNQ; - main_1876__0__sDgL5ErbRei_PI97mOM34Q_goto_main_1876__1__Fh8Bafn_SSyRCR_S9MtmNQ: - assume {:captureState "main_1876__0__sDgL5ErbRei_PI97mOM34Q_goto_main_1876__1__Fh8Bafn_SSyRCR_S9MtmNQ"} true; - assume (!(R8[1:0] == 1bv1)); - goto main_1876__1__Fh8Bafn_SSyRCR_S9MtmNQ; - main_1876__1__Fh8Bafn_SSyRCR_S9MtmNQ: - assume {:captureState "main_1876__1__Fh8Bafn_SSyRCR_S9MtmNQ"} true; - goto main_1876__2__gV96_A0qQxOx5WBiTMjRhw; - main_1876__2__gV96_A0qQxOx5WBiTMjRhw: - assume {:captureState "main_1876__2__gV96_A0qQxOx5WBiTMjRhw"} true; - R8, Gamma_R8 := 65536bv64, true; + goto $main$__0__$lwyID0MJQb6vgyjzPFtz8Q_goto_$main$__2__$SFN4dpBgSO2bPUu0fyDluw, $main$__0__$lwyID0MJQb6vgyjzPFtz8Q_goto_$main$__1__$TxTRm4kpQiq_Xgistx~xbQ; + $main$__1__$TxTRm4kpQiq_Xgistx~xbQ: + assume {:captureState "$main$__1__$TxTRm4kpQiq_Xgistx~xbQ"} true; + R0, Gamma_R0 := 0bv64, true; + goto main_basil_return; + $main$__2__$SFN4dpBgSO2bPUu0fyDluw: + assume {:captureState "$main$__2__$SFN4dpBgSO2bPUu0fyDluw"} true; + R8, Gamma_R8 := 126976bv64, true; call rely(); - load0, Gamma_load0 := memory_load64_le(mem, bvadd64(R8, 4040bv64)), (gamma_load64(Gamma_mem, bvadd64(R8, 4040bv64)) || L(mem, bvadd64(R8, 4040bv64))); - R8, Gamma_R8 := load0, Gamma_load0; + $load0, Gamma_$load0 := memory_load64_le(mem, bvadd64(R8, 4064bv64)), (gamma_load64(Gamma_mem, bvadd64(R8, 4064bv64)) || L(mem, bvadd64(R8, 4064bv64))); + R8, Gamma_R8 := $load0, Gamma_$load0; call rely(); - z_old := memory_load32_le(mem, $z_addr); assert (L(mem, R8) ==> true); + z_old := memory_load32_le(mem, $z_addr); mem, Gamma_mem := memory_store32_le(mem, R8, 0bv32), gamma_store32(Gamma_mem, R8, true); assert (memory_load32_le(mem, $z_addr) == z_old); - assume {:captureState "1924_0"} true; - call rely(); - load1, Gamma_load1 := memory_load32_le(mem, R8), (gamma_load32(Gamma_mem, R8) || L(mem, R8)); - R8, Gamma_R8 := zero_extend32_32(load1), Gamma_load1; - stack, Gamma_stack := memory_store32_le(stack, bvadd64(R31, 8bv64), R8[32:0]), gamma_store32(Gamma_stack, bvadd64(R31, 8bv64), Gamma_R8); - assume {:captureState "1932_0"} true; - goto main_1876__3__txO5s~pWRamQAjZH4_ZIww; - main_1876__0__sDgL5ErbRei_PI97mOM34Q_goto_main_1876__3__txO5s~pWRamQAjZH4_ZIww: - assume {:captureState "main_1876__0__sDgL5ErbRei_PI97mOM34Q_goto_main_1876__3__txO5s~pWRamQAjZH4_ZIww"} true; - assume (R8[1:0] == 1bv1); - goto main_1876__3__txO5s~pWRamQAjZH4_ZIww; - main_1876__3__txO5s~pWRamQAjZH4_ZIww: - assume {:captureState "main_1876__3__txO5s~pWRamQAjZH4_ZIww"} true; - load4, Gamma_load4 := memory_load32_le(stack, bvadd64(R31, 8bv64)), gamma_load32(Gamma_stack, bvadd64(R31, 8bv64)); - R0, Gamma_R0 := zero_extend32_32(load4), Gamma_load4; - R31, Gamma_R31 := bvadd64(R31, 16bv64), Gamma_R31; - goto main_1876_basil_return; - main_1876_basil_return: - assume {:captureState "main_1876_basil_return"} true; + assume {:captureState "2292$0"} true; + R0, Gamma_R0 := 0bv64, true; + goto main_basil_return; + $main$__0__$lwyID0MJQb6vgyjzPFtz8Q_goto_$main$__2__$SFN4dpBgSO2bPUu0fyDluw: + assume {:captureState "$main$__0__$lwyID0MJQb6vgyjzPFtz8Q_goto_$main$__2__$SFN4dpBgSO2bPUu0fyDluw"} true; + assume (R8[32:0] == 0bv32); + goto $main$__2__$SFN4dpBgSO2bPUu0fyDluw; + $main$__0__$lwyID0MJQb6vgyjzPFtz8Q_goto_$main$__1__$TxTRm4kpQiq_Xgistx~xbQ: + assume {:captureState "$main$__0__$lwyID0MJQb6vgyjzPFtz8Q_goto_$main$__1__$TxTRm4kpQiq_Xgistx~xbQ"} true; + assume (!(R8[32:0] == 0bv32)); + goto $main$__1__$TxTRm4kpQiq_Xgistx~xbQ; + main_basil_return: + assume {:captureState "main_basil_return"} true; return; } diff --git a/src/test/correct/basic_lock_read/gcc/basic_lock_read.adt b/src/test/correct/basic_lock_read/gcc/basic_lock_read.adt deleted file mode 100644 index 0dbe34098..000000000 --- a/src/test/correct/basic_lock_read/gcc/basic_lock_read.adt +++ /dev/null @@ -1,540 +0,0 @@ -Project(Attrs([Attr("filename","\"gcc/basic_lock_read.out\""), -Attr("image-specification","(declare abi (name str))\n(declare arch (name str))\n(declare base-address (addr int))\n(declare bias (off int))\n(declare bits (size int))\n(declare code-region (addr int) (size int) (off int))\n(declare code-start (addr int))\n(declare entry-point (addr int))\n(declare external-reference (addr int) (name str))\n(declare format (name str))\n(declare is-executable (flag bool))\n(declare is-little-endian (flag bool))\n(declare llvm:base-address (addr int))\n(declare llvm:code-entry (name str) (off int) (size int))\n(declare llvm:coff-import-library (name str))\n(declare llvm:coff-virtual-section-header (name str) (addr int) (size int))\n(declare llvm:elf-program-header (name str) (off int) (size int))\n(declare llvm:elf-program-header-flags (name str) (ld bool) (r bool) \n (w bool) (x bool))\n(declare llvm:elf-virtual-program-header (name str) (addr int) (size int))\n(declare llvm:entry-point (addr int))\n(declare llvm:macho-symbol (name str) (value int))\n(declare llvm:name-reference (at int) (name str))\n(declare llvm:relocation (at int) (addr int))\n(declare llvm:section-entry (name str) (addr int) (size int) (off int))\n(declare llvm:section-flags (name str) (r bool) (w bool) (x bool))\n(declare llvm:segment-command (name str) (off int) (size int))\n(declare llvm:segment-command-flags (name str) (r bool) (w bool) (x bool))\n(declare llvm:symbol-entry (name str) (addr int) (size int) (off int)\n (value int))\n(declare llvm:virtual-segment-command (name str) (addr int) (size int))\n(declare mapped (addr int) (size int) (off int))\n(declare named-region (addr int) (size int) (name str))\n(declare named-symbol (addr int) (name str))\n(declare require (name str))\n(declare section (addr int) (size int))\n(declare segment (addr int) (size int) (r bool) (w bool) (x bool))\n(declare subarch (name str))\n(declare symbol-chunk (addr int) (size int) (root int))\n(declare symbol-value (addr int) (value int))\n(declare system (name str))\n(declare vendor (name str))\n\n(abi unknown)\n(arch aarch64)\n(base-address 0)\n(bias 0)\n(bits 64)\n(code-region 1880 20 1880)\n(code-region 1536 344 1536)\n(code-region 1440 96 1440)\n(code-region 1408 24 1408)\n(code-start 1588)\n(code-start 1536)\n(code-start 1812)\n(entry-point 1536)\n(external-reference 69592 _ITM_deregisterTMCloneTable)\n(external-reference 69600 __cxa_finalize)\n(external-reference 69608 __gmon_start__)\n(external-reference 69624 _ITM_registerTMCloneTable)\n(external-reference 69552 __libc_start_main)\n(external-reference 69560 __cxa_finalize)\n(external-reference 69568 __gmon_start__)\n(external-reference 69576 abort)\n(format elf)\n(is-executable true)\n(is-little-endian true)\n(llvm:base-address 0)\n(llvm:code-entry abort 0 0)\n(llvm:code-entry __cxa_finalize 0 0)\n(llvm:code-entry __libc_start_main 0 0)\n(llvm:code-entry _init 1408 0)\n(llvm:code-entry main 1812 68)\n(llvm:code-entry _start 1536 52)\n(llvm:code-entry abort@GLIBC_2.17 0 0)\n(llvm:code-entry _fini 1880 0)\n(llvm:code-entry __cxa_finalize@GLIBC_2.17 0 0)\n(llvm:code-entry __libc_start_main@GLIBC_2.34 0 0)\n(llvm:code-entry frame_dummy 1808 0)\n(llvm:code-entry __do_global_dtors_aux 1728 0)\n(llvm:code-entry register_tm_clones 1664 0)\n(llvm:code-entry deregister_tm_clones 1616 0)\n(llvm:code-entry call_weak_fn 1588 20)\n(llvm:code-entry .fini 1880 20)\n(llvm:code-entry .text 1536 344)\n(llvm:code-entry .plt 1440 96)\n(llvm:code-entry .init 1408 24)\n(llvm:elf-program-header 08 3480 616)\n(llvm:elf-program-header 07 0 0)\n(llvm:elf-program-header 06 1904 60)\n(llvm:elf-program-header 05 596 68)\n(llvm:elf-program-header 04 3496 496)\n(llvm:elf-program-header 03 3480 632)\n(llvm:elf-program-header 02 0 2132)\n(llvm:elf-program-header 01 568 27)\n(llvm:elf-program-header 00 64 504)\n(llvm:elf-program-header-flags 08 false true false false)\n(llvm:elf-program-header-flags 07 false true true false)\n(llvm:elf-program-header-flags 06 false true false false)\n(llvm:elf-program-header-flags 05 false true false false)\n(llvm:elf-program-header-flags 04 false true true false)\n(llvm:elf-program-header-flags 03 true true true false)\n(llvm:elf-program-header-flags 02 true true false true)\n(llvm:elf-program-header-flags 01 false true false false)\n(llvm:elf-program-header-flags 00 false true false false)\n(llvm:elf-virtual-program-header 08 69016 616)\n(llvm:elf-virtual-program-header 07 0 0)\n(llvm:elf-virtual-program-header 06 1904 60)\n(llvm:elf-virtual-program-header 05 596 68)\n(llvm:elf-virtual-program-header 04 69032 496)\n(llvm:elf-virtual-program-header 03 69016 648)\n(llvm:elf-virtual-program-header 02 0 2132)\n(llvm:elf-virtual-program-header 01 568 27)\n(llvm:elf-virtual-program-header 00 64 504)\n(llvm:entry-point 1536)\n(llvm:name-reference 69576 abort)\n(llvm:name-reference 69568 __gmon_start__)\n(llvm:name-reference 69560 __cxa_finalize)\n(llvm:name-reference 69552 __libc_start_main)\n(llvm:name-reference 69624 _ITM_registerTMCloneTable)\n(llvm:name-reference 69608 __gmon_start__)\n(llvm:name-reference 69600 __cxa_finalize)\n(llvm:name-reference 69592 _ITM_deregisterTMCloneTable)\n(llvm:section-entry .shstrtab 0 250 6849)\n(llvm:section-entry .strtab 0 553 6296)\n(llvm:section-entry .symtab 0 2136 4160)\n(llvm:section-entry .comment 0 43 4112)\n(llvm:section-entry .bss 69648 16 4112)\n(llvm:section-entry .data 69632 16 4096)\n(llvm:section-entry .got 69528 104 3992)\n(llvm:section-entry .dynamic 69032 496 3496)\n(llvm:section-entry .fini_array 69024 8 3488)\n(llvm:section-entry .init_array 69016 8 3480)\n(llvm:section-entry .eh_frame 1968 164 1968)\n(llvm:section-entry .eh_frame_hdr 1904 60 1904)\n(llvm:section-entry .rodata 1900 4 1900)\n(llvm:section-entry .fini 1880 20 1880)\n(llvm:section-entry .text 1536 344 1536)\n(llvm:section-entry .plt 1440 96 1440)\n(llvm:section-entry .init 1408 24 1408)\n(llvm:section-entry .rela.plt 1312 96 1312)\n(llvm:section-entry .rela.dyn 1120 192 1120)\n(llvm:section-entry .gnu.version_r 1072 48 1072)\n(llvm:section-entry .gnu.version 1054 18 1054)\n(llvm:section-entry .dynstr 912 141 912)\n(llvm:section-entry .dynsym 696 216 696)\n(llvm:section-entry .gnu.hash 664 28 664)\n(llvm:section-entry .note.ABI-tag 632 32 632)\n(llvm:section-entry .note.gnu.build-id 596 36 596)\n(llvm:section-entry .interp 568 27 568)\n(llvm:section-flags .shstrtab true false false)\n(llvm:section-flags .strtab true false false)\n(llvm:section-flags .symtab true false false)\n(llvm:section-flags .comment true false false)\n(llvm:section-flags .bss true true false)\n(llvm:section-flags .data true true false)\n(llvm:section-flags .got true true false)\n(llvm:section-flags .dynamic true true false)\n(llvm:section-flags .fini_array true true false)\n(llvm:section-flags .init_array true true false)\n(llvm:section-flags .eh_frame true false false)\n(llvm:section-flags .eh_frame_hdr true false false)\n(llvm:section-flags .rodata true false false)\n(llvm:section-flags .fini true false true)\n(llvm:section-flags .text true false true)\n(llvm:section-flags .plt true false true)\n(llvm:section-flags .init true false true)\n(llvm:section-flags .rela.plt true false false)\n(llvm:section-flags .rela.dyn true false false)\n(llvm:section-flags .gnu.version_r true false false)\n(llvm:section-flags .gnu.version true false false)\n(llvm:section-flags .dynstr true false false)\n(llvm:section-flags .dynsym true false false)\n(llvm:section-flags .gnu.hash true false false)\n(llvm:section-flags .note.ABI-tag true false false)\n(llvm:section-flags .note.gnu.build-id true false false)\n(llvm:section-flags .interp true false false)\n(llvm:symbol-entry abort 0 0 0 0)\n(llvm:symbol-entry __cxa_finalize 0 0 0 0)\n(llvm:symbol-entry __libc_start_main 0 0 0 0)\n(llvm:symbol-entry _init 1408 0 1408 1408)\n(llvm:symbol-entry main 1812 68 1812 1812)\n(llvm:symbol-entry _start 1536 52 1536 1536)\n(llvm:symbol-entry abort@GLIBC_2.17 0 0 0 0)\n(llvm:symbol-entry _fini 1880 0 1880 1880)\n(llvm:symbol-entry __cxa_finalize@GLIBC_2.17 0 0 0 0)\n(llvm:symbol-entry __libc_start_main@GLIBC_2.34 0 0 0 0)\n(llvm:symbol-entry frame_dummy 1808 0 1808 1808)\n(llvm:symbol-entry __do_global_dtors_aux 1728 0 1728 1728)\n(llvm:symbol-entry register_tm_clones 1664 0 1664 1664)\n(llvm:symbol-entry deregister_tm_clones 1616 0 1616 1616)\n(llvm:symbol-entry call_weak_fn 1588 20 1588 1588)\n(mapped 0 2132 0)\n(mapped 69016 632 3480)\n(named-region 0 2132 02)\n(named-region 69016 648 03)\n(named-region 568 27 .interp)\n(named-region 596 36 .note.gnu.build-id)\n(named-region 632 32 .note.ABI-tag)\n(named-region 664 28 .gnu.hash)\n(named-region 696 216 .dynsym)\n(named-region 912 141 .dynstr)\n(named-region 1054 18 .gnu.version)\n(named-region 1072 48 .gnu.version_r)\n(named-region 1120 192 .rela.dyn)\n(named-region 1312 96 .rela.plt)\n(named-region 1408 24 .init)\n(named-region 1440 96 .plt)\n(named-region 1536 344 .text)\n(named-region 1880 20 .fini)\n(named-region 1900 4 .rodata)\n(named-region 1904 60 .eh_frame_hdr)\n(named-region 1968 164 .eh_frame)\n(named-region 69016 8 .init_array)\n(named-region 69024 8 .fini_array)\n(named-region 69032 496 .dynamic)\n(named-region 69528 104 .got)\n(named-region 69632 16 .data)\n(named-region 69648 16 .bss)\n(named-region 0 43 .comment)\n(named-region 0 2136 .symtab)\n(named-region 0 553 .strtab)\n(named-region 0 250 .shstrtab)\n(named-symbol 1588 call_weak_fn)\n(named-symbol 1616 deregister_tm_clones)\n(named-symbol 1664 register_tm_clones)\n(named-symbol 1728 __do_global_dtors_aux)\n(named-symbol 1808 frame_dummy)\n(named-symbol 0 __libc_start_main@GLIBC_2.34)\n(named-symbol 0 __cxa_finalize@GLIBC_2.17)\n(named-symbol 1880 _fini)\n(named-symbol 0 abort@GLIBC_2.17)\n(named-symbol 1536 _start)\n(named-symbol 1812 main)\n(named-symbol 1408 _init)\n(named-symbol 0 __libc_start_main)\n(named-symbol 0 __cxa_finalize)\n(named-symbol 0 abort)\n(require libc.so.6)\n(section 568 27)\n(section 596 36)\n(section 632 32)\n(section 664 28)\n(section 696 216)\n(section 912 141)\n(section 1054 18)\n(section 1072 48)\n(section 1120 192)\n(section 1312 96)\n(section 1408 24)\n(section 1440 96)\n(section 1536 344)\n(section 1880 20)\n(section 1900 4)\n(section 1904 60)\n(section 1968 164)\n(section 69016 8)\n(section 69024 8)\n(section 69032 496)\n(section 69528 104)\n(section 69632 16)\n(section 69648 16)\n(section 0 43)\n(section 0 2136)\n(section 0 553)\n(section 0 250)\n(segment 0 2132 true false true)\n(segment 69016 648 true true false)\n(subarch v8)\n(symbol-chunk 1588 20 1588)\n(symbol-chunk 1536 52 1536)\n(symbol-chunk 1812 68 1812)\n(symbol-value 1588 1588)\n(symbol-value 1616 1616)\n(symbol-value 1664 1664)\n(symbol-value 1728 1728)\n(symbol-value 1808 1808)\n(symbol-value 1880 1880)\n(symbol-value 1536 1536)\n(symbol-value 1812 1812)\n(symbol-value 1408 1408)\n(symbol-value 0 0)\n(system \"\")\n(vendor \"\")\n"), -Attr("abi-name","\"aarch64-linux-gnu-elf\"")]), -Sections([Section(".shstrtab", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x00\x06\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xc0\x1b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x38\x00\x09\x00\x40\x00\x1c\x00\x1b\x00\x06\x00\x00\x00\x04\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x04\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x54\x08\x00\x00\x00\x00\x00\x00\x54\x08\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x01\x00\x00\x00\x06\x00\x00\x00\x98\x0d\x00\x00\x00\x00\x00\x00\x98\x0d"), -Section(".strtab", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x00\x06\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xc0\x1b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x38\x00\x09\x00\x40\x00\x1c\x00\x1b\x00\x06\x00\x00\x00\x04\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x04\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x54\x08\x00\x00\x00\x00\x00\x00\x54\x08\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x01\x00\x00\x00\x06\x00\x00\x00\x98\x0d\x00\x00\x00\x00\x00\x00\x98\x0d\x01\x00\x00\x00\x00\x00\x98\x0d\x01\x00\x00\x00\x00\x00\x78\x02\x00\x00\x00\x00\x00\x00\x88\x02\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x02\x00\x00\x00\x06\x00\x00\x00\xa8\x0d\x00\x00\x00\x00\x00\x00\xa8\x0d\x01\x00\x00\x00\x00\x00\xa8\x0d\x01\x00\x00\x00\x00\x00\xf0\x01\x00\x00\x00\x00\x00\x00\xf0\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x04\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x50\xe5\x74\x64\x04\x00\x00\x00\x70\x07\x00\x00\x00\x00\x00\x00\x70\x07\x00\x00\x00\x00\x00\x00\x70\x07\x00\x00\x00\x00\x00\x00\x3c\x00\x00\x00\x00\x00\x00\x00\x3c\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x51\xe5\x74\x64\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x52\xe5\x74\x64\x04\x00\x00\x00\x98\x0d\x00\x00\x00\x00\x00\x00\x98\x0d\x01\x00\x00\x00\x00\x00\x98\x0d\x01\x00\x00\x00\x00\x00\x68\x02\x00\x00\x00\x00\x00\x00\x68"), -Section(".comment", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x00\x06\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xc0\x1b\x00"), -Section(".interp", 0x238, "\x2f\x6c\x69\x62\x2f\x6c\x64\x2d\x6c\x69\x6e\x75\x78\x2d\x61\x61\x72\x63\x68\x36\x34\x2e\x73\x6f\x2e\x31\x00"), -Section(".note.gnu.build-id", 0x254, "\x04\x00\x00\x00\x14\x00\x00\x00\x03\x00\x00\x00\x47\x4e\x55\x00\x4b\x93\x95\x4d\x4d\xb8\x19\x62\xa5\x32\x43\x95\x32\x60\x93\x00\x2c\x4a\xdd\xc1"), -Section(".note.ABI-tag", 0x278, "\x04\x00\x00\x00\x10\x00\x00\x00\x01\x00\x00\x00\x47\x4e\x55\x00\x00\x00\x00\x00\x03\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00"), -Section(".gnu.hash", 0x298, "\x01\x00\x00\x00\x01\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".dynsym", 0x2B8, "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x0b\x00\x80\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x16\x00\x00\x10\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x48\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x22\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x22\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x73\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".dynstr", 0x390, "\x00\x5f\x5f\x63\x78\x61\x5f\x66\x69\x6e\x61\x6c\x69\x7a\x65\x00\x5f\x5f\x6c\x69\x62\x63\x5f\x73\x74\x61\x72\x74\x5f\x6d\x61\x69\x6e\x00\x61\x62\x6f\x72\x74\x00\x6c\x69\x62\x63\x2e\x73\x6f\x2e\x36\x00\x47\x4c\x49\x42\x43\x5f\x32\x2e\x31\x37\x00\x47\x4c\x49\x42\x43\x5f\x32\x2e\x33\x34\x00\x5f\x49\x54\x4d\x5f\x64\x65\x72\x65\x67\x69\x73\x74\x65\x72\x54\x4d\x43\x6c\x6f\x6e\x65\x54\x61\x62\x6c\x65\x00\x5f\x5f\x67\x6d\x6f\x6e\x5f\x73\x74\x61\x72\x74\x5f\x5f\x00\x5f\x49\x54\x4d\x5f\x72\x65\x67\x69\x73\x74\x65\x72\x54\x4d\x43\x6c\x6f\x6e\x65\x54\x61\x62\x6c\x65\x00"), -Section(".gnu.version", 0x41E, "\x00\x00\x00\x00\x00\x00\x02\x00\x01\x00\x03\x00\x01\x00\x03\x00\x01\x00"), -Section(".gnu.version_r", 0x430, "\x01\x00\x02\x00\x28\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x97\x91\x96\x06\x00\x00\x03\x00\x32\x00\x00\x00\x10\x00\x00\x00\xb4\x91\x96\x06\x00\x00\x02\x00\x3d\x00\x00\x00\x00\x00\x00\x00"), -Section(".rela.dyn", 0x460, "\x98\x0d\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x10\x07\x00\x00\x00\x00\x00\x00\xa0\x0d\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\xc0\x06\x00\x00\x00\x00\x00\x00\xf0\x0f\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x14\x07\x00\x00\x00\x00\x00\x00\x08\x10\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x08\x10\x01\x00\x00\x00\x00\x00\xd8\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe0\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe8\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xf8\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".rela.plt", 0x520, "\xb0\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xb8\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xc0\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xc8\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".init", 0x580, "\x1f\x20\x03\xd5\xfd\x7b\xbf\xa9\xfd\x03\x00\x91\x2a\x00\x00\x94\xfd\x7b\xc1\xa8\xc0\x03\x5f\xd6"), -Section(".plt", 0x5A0, "\xf0\x7b\xbf\xa9\x90\x00\x00\x90\x11\xd6\x47\xf9\x10\xa2\x3e\x91\x20\x02\x1f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x90\x00\x00\x90\x11\xda\x47\xf9\x10\xc2\x3e\x91\x20\x02\x1f\xd6\x90\x00\x00\x90\x11\xde\x47\xf9\x10\xe2\x3e\x91\x20\x02\x1f\xd6\x90\x00\x00\x90\x11\xe2\x47\xf9\x10\x02\x3f\x91\x20\x02\x1f\xd6\x90\x00\x00\x90\x11\xe6\x47\xf9\x10\x22\x3f\x91\x20\x02\x1f\xd6"), -Section(".text", 0x600, "\x1f\x20\x03\xd5\x1d\x00\x80\xd2\x1e\x00\x80\xd2\xe5\x03\x00\xaa\xe1\x03\x40\xf9\xe2\x23\x00\x91\xe6\x03\x00\x91\x80\x00\x00\x90\x00\xf8\x47\xf9\x03\x00\x80\xd2\x04\x00\x80\xd2\xe5\xff\xff\x97\xf0\xff\xff\x97\x80\x00\x00\x90\x00\xf4\x47\xf9\x40\x00\x00\xb4\xe8\xff\xff\x17\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x80\x00\x00\xb0\x00\x40\x00\x91\x81\x00\x00\xb0\x21\x40\x00\x91\x3f\x00\x00\xeb\xc0\x00\x00\x54\x81\x00\x00\x90\x21\xec\x47\xf9\x61\x00\x00\xb4\xf0\x03\x01\xaa\x00\x02\x1f\xd6\xc0\x03\x5f\xd6\x80\x00\x00\xb0\x00\x40\x00\x91\x81\x00\x00\xb0\x21\x40\x00\x91\x21\x00\x00\xcb\x22\xfc\x7f\xd3\x41\x0c\x81\x8b\x21\xfc\x41\x93\xc1\x00\x00\xb4\x82\x00\x00\x90\x42\xfc\x47\xf9\x62\x00\x00\xb4\xf0\x03\x02\xaa\x00\x02\x1f\xd6\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\xfd\x7b\xbe\xa9\xfd\x03\x00\x91\xf3\x0b\x00\xf9\x93\x00\x00\xb0\x60\x42\x40\x39\x40\x01\x00\x35\x80\x00\x00\x90\x00\xf0\x47\xf9\x80\x00\x00\xb4\x80\x00\x00\xb0\x00\x04\x40\xf9\xb9\xff\xff\x97\xd8\xff\xff\x97\x20\x00\x80\x52\x60\x42\x00\x39\xf3\x0b\x40\xf9\xfd\x7b\xc2\xa8\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\xdc\xff\xff\x17\xff\x43\x00\xd1\xff\x0f\x00\xb9\x80\x00\x00\xb0\x00\x60\x00\x91\x00\x00\x40\xb9\x1f\x00\x00\x71\x01\x01\x00\x54\x80\x00\x00\xb0\x00\x50\x00\x91\x1f\x00\x00\xb9\x80\x00\x00\xb0\x00\x50\x00\x91\x00\x00\x40\xb9\xe0\x0f\x00\xb9\xe0\x0f\x40\xb9\xff\x43\x00\x91\xc0\x03\x5f\xd6"), -Section(".fini", 0x758, "\x1f\x20\x03\xd5\xfd\x7b\xbf\xa9\xfd\x03\x00\x91\xfd\x7b\xc1\xa8\xc0\x03\x5f\xd6"), -Section(".rodata", 0x76C, "\x01\x00\x02\x00"), -Section(".eh_frame_hdr", 0x770, "\x01\x1b\x03\x3b\x3c\x00\x00\x00\x06\x00\x00\x00\x90\xfe\xff\xff\x54\x00\x00\x00\xe0\xfe\xff\xff\x68\x00\x00\x00\x10\xff\xff\xff\x7c\x00\x00\x00\x50\xff\xff\xff\x90\x00\x00\x00\xa0\xff\xff\xff\xb4\x00\x00\x00\xa4\xff\xff\xff\xc8\x00\x00\x00"), -Section(".eh_frame", 0x7B0, "\x10\x00\x00\x00\x00\x00\x00\x00\x01\x7a\x52\x00\x04\x78\x1e\x01\x1b\x0c\x1f\x00\x10\x00\x00\x00\x18\x00\x00\x00\x34\xfe\xff\xff\x34\x00\x00\x00\x00\x41\x07\x1e\x10\x00\x00\x00\x2c\x00\x00\x00\x70\xfe\xff\xff\x30\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x40\x00\x00\x00\x8c\xfe\xff\xff\x3c\x00\x00\x00\x00\x00\x00\x00\x20\x00\x00\x00\x54\x00\x00\x00\xb8\xfe\xff\xff\x48\x00\x00\x00\x00\x41\x0e\x20\x9d\x04\x9e\x03\x42\x93\x02\x4e\xde\xdd\xd3\x0e\x00\x00\x00\x00\x10\x00\x00\x00\x78\x00\x00\x00\xe4\xfe\xff\xff\x04\x00\x00\x00\x00\x00\x00\x00\x14\x00\x00\x00\x8c\x00\x00\x00\xd4\xfe\xff\xff\x44\x00\x00\x00\x00\x41\x0e\x10\x4f\x0e\x00\x00\x00\x00\x00\x00"), -Section(".fini_array", 0x10DA0, "\xc0\x06\x00\x00\x00\x00\x00\x00"), -Section(".dynamic", 0x10DA8, "\x01\x00\x00\x00\x00\x00\x00\x00\x28\x00\x00\x00\x00\x00\x00\x00\x0c\x00\x00\x00\x00\x00\x00\x00\x80\x05\x00\x00\x00\x00\x00\x00\x0d\x00\x00\x00\x00\x00\x00\x00\x58\x07\x00\x00\x00\x00\x00\x00\x19\x00\x00\x00\x00\x00\x00\x00\x98\x0d\x01\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x1a\x00\x00\x00\x00\x00\x00\x00\xa0\x0d\x01\x00\x00\x00\x00\x00\x1c\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\xf5\xfe\xff\x6f\x00\x00\x00\x00\x98\x02\x00\x00\x00\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x90\x03\x00\x00\x00\x00\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\xb8\x02\x00\x00\x00\x00\x00\x00\x0a\x00\x00\x00\x00\x00\x00\x00\x8d\x00\x00\x00\x00\x00\x00\x00\x0b\x00\x00\x00\x00\x00\x00\x00\x18\x00\x00\x00\x00\x00\x00\x00\x15\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x98\x0f\x01\x00\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x60\x00\x00\x00\x00\x00\x00\x00\x14\x00\x00\x00\x00\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x17\x00\x00\x00\x00\x00\x00\x00\x20\x05\x00\x00\x00\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x60\x04\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\xc0\x00\x00\x00\x00\x00\x00\x00\x09\x00\x00\x00\x00\x00\x00\x00\x18\x00\x00\x00\x00\x00\x00\x00\x1e\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\xfb\xff\xff\x6f\x00\x00\x00\x00\x01\x00\x00\x08\x00\x00\x00\x00\xfe\xff\xff\x6f\x00\x00\x00\x00\x30\x04\x00\x00\x00\x00\x00\x00\xff\xff\xff\x6f\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\xf0\xff\xff\x6f\x00\x00\x00\x00\x1e\x04\x00\x00\x00\x00\x00\x00\xf9\xff\xff\x6f\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".got", 0x10F98, "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xa0\x05\x00\x00\x00\x00\x00\x00\xa0\x05\x00\x00\x00\x00\x00\x00\xa0\x05\x00\x00\x00\x00\x00\x00\xa0\x05\x00\x00\x00\x00\x00\x00\xa8\x0d\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x14\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".data", 0x11000, "\x00\x00\x00\x00\x00\x00\x00\x00\x08\x10\x01\x00\x00\x00\x00\x00"), -Section(".init_array", 0x10D98, "\x10\x07\x00\x00\x00\x00\x00\x00")]), -Memmap([Annotation(Region(0x0,0x853), Attr("segment","02 0 2132")), -Annotation(Region(0x600,0x633), Attr("symbol","\"_start\"")), -Annotation(Region(0x0,0xF9), Attr("section","\".shstrtab\"")), -Annotation(Region(0x0,0x228), Attr("section","\".strtab\"")), -Annotation(Region(0x0,0x2A), Attr("section","\".comment\"")), -Annotation(Region(0x238,0x252), Attr("section","\".interp\"")), -Annotation(Region(0x254,0x277), Attr("section","\".note.gnu.build-id\"")), -Annotation(Region(0x278,0x297), Attr("section","\".note.ABI-tag\"")), -Annotation(Region(0x298,0x2B3), Attr("section","\".gnu.hash\"")), -Annotation(Region(0x2B8,0x38F), Attr("section","\".dynsym\"")), -Annotation(Region(0x390,0x41C), Attr("section","\".dynstr\"")), -Annotation(Region(0x41E,0x42F), Attr("section","\".gnu.version\"")), -Annotation(Region(0x430,0x45F), Attr("section","\".gnu.version_r\"")), -Annotation(Region(0x460,0x51F), Attr("section","\".rela.dyn\"")), -Annotation(Region(0x520,0x57F), Attr("section","\".rela.plt\"")), -Annotation(Region(0x580,0x597), Attr("section","\".init\"")), -Annotation(Region(0x5A0,0x5FF), Attr("section","\".plt\"")), -Annotation(Region(0x580,0x597), Attr("code-region","()")), -Annotation(Region(0x5A0,0x5FF), Attr("code-region","()")), -Annotation(Region(0x600,0x633), Attr("symbol-info","_start 0x600 52")), -Annotation(Region(0x634,0x647), Attr("symbol","\"call_weak_fn\"")), -Annotation(Region(0x634,0x647), Attr("symbol-info","call_weak_fn 0x634 20")), -Annotation(Region(0x600,0x757), Attr("section","\".text\"")), -Annotation(Region(0x600,0x757), Attr("code-region","()")), -Annotation(Region(0x714,0x757), Attr("symbol","\"main\"")), -Annotation(Region(0x714,0x757), Attr("symbol-info","main 0x714 68")), -Annotation(Region(0x758,0x76B), Attr("section","\".fini\"")), -Annotation(Region(0x758,0x76B), Attr("code-region","()")), -Annotation(Region(0x76C,0x76F), Attr("section","\".rodata\"")), -Annotation(Region(0x770,0x7AB), Attr("section","\".eh_frame_hdr\"")), -Annotation(Region(0x7B0,0x853), Attr("section","\".eh_frame\"")), -Annotation(Region(0x10D98,0x1100F), Attr("segment","03 0x10D98 648")), -Annotation(Region(0x10DA0,0x10DA7), Attr("section","\".fini_array\"")), -Annotation(Region(0x10DA8,0x10F97), Attr("section","\".dynamic\"")), -Annotation(Region(0x10F98,0x10FFF), Attr("section","\".got\"")), -Annotation(Region(0x11000,0x1100F), Attr("section","\".data\"")), -Annotation(Region(0x10D98,0x10D9F), Attr("section","\".init_array\""))]), -Program(Tid(1_589, "%00000635"), Attrs([]), - Subs([Sub(Tid(1_535, "@__cxa_finalize"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x5D0"), -Attr("stub","()")]), "__cxa_finalize", Args([Arg(Tid(1_590, "%00000636"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("__cxa_finalize_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(929, "@__cxa_finalize"), - Attrs([Attr("address","0x5D0")]), Phis([]), -Defs([Def(Tid(1_177, "%00000499"), Attrs([Attr("address","0x5D0"), -Attr("insn","adrp x16, #65536")]), Var("R16",Imm(64)), Int(65536,64)), -Def(Tid(1_184, "%000004a0"), Attrs([Attr("address","0x5D4"), -Attr("insn","ldr x17, [x16, #0xfb8]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(4024,64)),LittleEndian(),64)), -Def(Tid(1_190, "%000004a6"), Attrs([Attr("address","0x5D8"), -Attr("insn","add x16, x16, #0xfb8")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(4024,64)))]), Jmps([Call(Tid(1_195, "%000004ab"), - Attrs([Attr("address","0x5DC"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), -Sub(Tid(1_536, "@__do_global_dtors_aux"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x6C0")]), - "__do_global_dtors_aux", Args([Arg(Tid(1_591, "%00000637"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("__do_global_dtors_aux_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(658, "@__do_global_dtors_aux"), - Attrs([Attr("address","0x6C0")]), Phis([]), Defs([Def(Tid(662, "%00000296"), - Attrs([Attr("address","0x6C0"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("#3",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(18446744073709551584,64))), -Def(Tid(668, "%0000029c"), Attrs([Attr("address","0x6C0"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("#3",Imm(64)),Var("R29",Imm(64)),LittleEndian(),64)), -Def(Tid(674, "%000002a2"), Attrs([Attr("address","0x6C0"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("#3",Imm(64)),Int(8,64)),Var("R30",Imm(64)),LittleEndian(),64)), -Def(Tid(678, "%000002a6"), Attrs([Attr("address","0x6C0"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("R31",Imm(64)), -Var("#3",Imm(64))), Def(Tid(684, "%000002ac"), - Attrs([Attr("address","0x6C4"), Attr("insn","mov x29, sp")]), - Var("R29",Imm(64)), Var("R31",Imm(64))), Def(Tid(692, "%000002b4"), - Attrs([Attr("address","0x6C8"), Attr("insn","str x19, [sp, #0x10]")]), - Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(16,64)),Var("R19",Imm(64)),LittleEndian(),64)), -Def(Tid(697, "%000002b9"), Attrs([Attr("address","0x6CC"), -Attr("insn","adrp x19, #69632")]), Var("R19",Imm(64)), Int(69632,64)), -Def(Tid(704, "%000002c0"), Attrs([Attr("address","0x6D0"), -Attr("insn","ldrb w0, [x19, #0x10]")]), Var("R0",Imm(64)), -UNSIGNED(64,Load(Var("mem",Mem(64,8)),PLUS(Var("R19",Imm(64)),Int(16,64)),LittleEndian(),8)))]), -Jmps([Goto(Tid(711, "%000002c7"), Attrs([Attr("address","0x6D4"), -Attr("insn","cbnz w0, #0x28")]), - NEQ(Extract(31,0,Var("R0",Imm(64))),Int(0,32)), -Direct(Tid(709, "%000002c5"))), Goto(Tid(1_577, "%00000629"), Attrs([]), - Int(1,1), Direct(Tid(874, "%0000036a")))])), Blk(Tid(874, "%0000036a"), - Attrs([Attr("address","0x6D8")]), Phis([]), Defs([Def(Tid(877, "%0000036d"), - Attrs([Attr("address","0x6D8"), Attr("insn","adrp x0, #65536")]), - Var("R0",Imm(64)), Int(65536,64)), Def(Tid(884, "%00000374"), - Attrs([Attr("address","0x6DC"), Attr("insn","ldr x0, [x0, #0xfe0]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(4064,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(890, "%0000037a"), Attrs([Attr("address","0x6E0"), -Attr("insn","cbz x0, #0x10")]), EQ(Var("R0",Imm(64)),Int(0,64)), -Direct(Tid(888, "%00000378"))), Goto(Tid(1_578, "%0000062a"), Attrs([]), - Int(1,1), Direct(Tid(913, "%00000391")))])), Blk(Tid(913, "%00000391"), - Attrs([Attr("address","0x6E4")]), Phis([]), Defs([Def(Tid(916, "%00000394"), - Attrs([Attr("address","0x6E4"), Attr("insn","adrp x0, #69632")]), - Var("R0",Imm(64)), Int(69632,64)), Def(Tid(923, "%0000039b"), - Attrs([Attr("address","0x6E8"), Attr("insn","ldr x0, [x0, #0x8]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(928, "%000003a0"), Attrs([Attr("address","0x6EC"), -Attr("insn","bl #-0x11c")]), Var("R30",Imm(64)), Int(1776,64))]), -Jmps([Call(Tid(931, "%000003a3"), Attrs([Attr("address","0x6EC"), -Attr("insn","bl #-0x11c")]), Int(1,1), -(Direct(Tid(1_535, "@__cxa_finalize")),Direct(Tid(888, "%00000378"))))])), -Blk(Tid(888, "%00000378"), Attrs([Attr("address","0x6F0")]), Phis([]), -Defs([Def(Tid(896, "%00000380"), Attrs([Attr("address","0x6F0"), -Attr("insn","bl #-0xa0")]), Var("R30",Imm(64)), Int(1780,64))]), -Jmps([Call(Tid(898, "%00000382"), Attrs([Attr("address","0x6F0"), -Attr("insn","bl #-0xa0")]), Int(1,1), -(Direct(Tid(1_549, "@deregister_tm_clones")),Direct(Tid(900, "%00000384"))))])), -Blk(Tid(900, "%00000384"), Attrs([Attr("address","0x6F4")]), Phis([]), -Defs([Def(Tid(903, "%00000387"), Attrs([Attr("address","0x6F4"), -Attr("insn","mov w0, #0x1")]), Var("R0",Imm(64)), Int(1,64)), -Def(Tid(911, "%0000038f"), Attrs([Attr("address","0x6F8"), -Attr("insn","strb w0, [x19, #0x10]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R19",Imm(64)),Int(16,64)),Extract(7,0,Var("R0",Imm(64))),LittleEndian(),8))]), -Jmps([Goto(Tid(1_579, "%0000062b"), Attrs([]), Int(1,1), -Direct(Tid(709, "%000002c5")))])), Blk(Tid(709, "%000002c5"), - Attrs([Attr("address","0x6FC")]), Phis([]), Defs([Def(Tid(719, "%000002cf"), - Attrs([Attr("address","0x6FC"), Attr("insn","ldr x19, [sp, #0x10]")]), - Var("R19",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(16,64)),LittleEndian(),64)), -Def(Tid(726, "%000002d6"), Attrs([Attr("address","0x700"), -Attr("insn","ldp x29, x30, [sp], #0x20")]), Var("R29",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(731, "%000002db"), Attrs([Attr("address","0x700"), -Attr("insn","ldp x29, x30, [sp], #0x20")]), Var("R30",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(735, "%000002df"), Attrs([Attr("address","0x700"), -Attr("insn","ldp x29, x30, [sp], #0x20")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(32,64)))]), Jmps([Call(Tid(740, "%000002e4"), - Attrs([Attr("address","0x704"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), Sub(Tid(1_540, "@__libc_start_main"), - Attrs([Attr("c.proto","signed (*)(signed (*)(signed , char** , char** );* main, signed , char** , \nvoid* auxv)"), -Attr("address","0x5C0"), Attr("stub","()")]), "__libc_start_main", - Args([Arg(Tid(1_592, "%00000638"), - Attrs([Attr("c.layout","**[ : 64]"), -Attr("c.data","Top:u64 ptr ptr"), -Attr("c.type","signed (*)(signed , char** , char** );*")]), - Var("__libc_start_main_main",Imm(64)), Var("R0",Imm(64)), In()), -Arg(Tid(1_593, "%00000639"), Attrs([Attr("c.layout","[signed : 32]"), -Attr("c.data","Top:u32"), Attr("c.type","signed")]), - Var("__libc_start_main_arg2",Imm(32)), LOW(32,Var("R1",Imm(64))), In()), -Arg(Tid(1_594, "%0000063a"), Attrs([Attr("c.layout","**[char : 8]"), -Attr("c.data","Top:u8 ptr ptr"), Attr("c.type","char**")]), - Var("__libc_start_main_arg3",Imm(64)), Var("R2",Imm(64)), Both()), -Arg(Tid(1_595, "%0000063b"), Attrs([Attr("c.layout","*[ : 8]"), -Attr("c.data","{} ptr"), Attr("c.type","void*")]), - Var("__libc_start_main_auxv",Imm(64)), Var("R3",Imm(64)), Both()), -Arg(Tid(1_596, "%0000063c"), Attrs([Attr("c.layout","[signed : 32]"), -Attr("c.data","Top:u32"), Attr("c.type","signed")]), - Var("__libc_start_main_result",Imm(32)), LOW(32,Var("R0",Imm(64))), -Out())]), Blks([Blk(Tid(491, "@__libc_start_main"), - Attrs([Attr("address","0x5C0")]), Phis([]), -Defs([Def(Tid(1_155, "%00000483"), Attrs([Attr("address","0x5C0"), -Attr("insn","adrp x16, #65536")]), Var("R16",Imm(64)), Int(65536,64)), -Def(Tid(1_162, "%0000048a"), Attrs([Attr("address","0x5C4"), -Attr("insn","ldr x17, [x16, #0xfb0]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(4016,64)),LittleEndian(),64)), -Def(Tid(1_168, "%00000490"), Attrs([Attr("address","0x5C8"), -Attr("insn","add x16, x16, #0xfb0")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(4016,64)))]), Jmps([Call(Tid(1_173, "%00000495"), - Attrs([Attr("address","0x5CC"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), Sub(Tid(1_541, "@_fini"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x758")]), - "_fini", Args([Arg(Tid(1_597, "%0000063d"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("_fini_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(31, "@_fini"), - Attrs([Attr("address","0x758")]), Phis([]), Defs([Def(Tid(37, "%00000025"), - Attrs([Attr("address","0x75C"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("#0",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(18446744073709551600,64))), -Def(Tid(43, "%0000002b"), Attrs([Attr("address","0x75C"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("#0",Imm(64)),Var("R29",Imm(64)),LittleEndian(),64)), -Def(Tid(49, "%00000031"), Attrs([Attr("address","0x75C"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("#0",Imm(64)),Int(8,64)),Var("R30",Imm(64)),LittleEndian(),64)), -Def(Tid(53, "%00000035"), Attrs([Attr("address","0x75C"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("R31",Imm(64)), -Var("#0",Imm(64))), Def(Tid(59, "%0000003b"), Attrs([Attr("address","0x760"), -Attr("insn","mov x29, sp")]), Var("R29",Imm(64)), Var("R31",Imm(64))), -Def(Tid(66, "%00000042"), Attrs([Attr("address","0x764"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R29",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(71, "%00000047"), Attrs([Attr("address","0x764"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R30",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(75, "%0000004b"), Attrs([Attr("address","0x764"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(16,64)))]), Jmps([Call(Tid(80, "%00000050"), - Attrs([Attr("address","0x768"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), Sub(Tid(1_542, "@_init"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x580")]), - "_init", Args([Arg(Tid(1_598, "%0000063e"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("_init_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(1_360, "@_init"), - Attrs([Attr("address","0x580")]), Phis([]), -Defs([Def(Tid(1_366, "%00000556"), Attrs([Attr("address","0x584"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("#6",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(18446744073709551600,64))), -Def(Tid(1_372, "%0000055c"), Attrs([Attr("address","0x584"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("#6",Imm(64)),Var("R29",Imm(64)),LittleEndian(),64)), -Def(Tid(1_378, "%00000562"), Attrs([Attr("address","0x584"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("#6",Imm(64)),Int(8,64)),Var("R30",Imm(64)),LittleEndian(),64)), -Def(Tid(1_382, "%00000566"), Attrs([Attr("address","0x584"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("R31",Imm(64)), -Var("#6",Imm(64))), Def(Tid(1_388, "%0000056c"), - Attrs([Attr("address","0x588"), Attr("insn","mov x29, sp")]), - Var("R29",Imm(64)), Var("R31",Imm(64))), Def(Tid(1_393, "%00000571"), - Attrs([Attr("address","0x58C"), Attr("insn","bl #0xa8")]), - Var("R30",Imm(64)), Int(1424,64))]), Jmps([Call(Tid(1_395, "%00000573"), - Attrs([Attr("address","0x58C"), Attr("insn","bl #0xa8")]), Int(1,1), -(Direct(Tid(1_547, "@call_weak_fn")),Direct(Tid(1_397, "%00000575"))))])), -Blk(Tid(1_397, "%00000575"), Attrs([Attr("address","0x590")]), Phis([]), -Defs([Def(Tid(1_402, "%0000057a"), Attrs([Attr("address","0x590"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R29",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(1_407, "%0000057f"), Attrs([Attr("address","0x590"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R30",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(1_411, "%00000583"), Attrs([Attr("address","0x590"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(16,64)))]), Jmps([Call(Tid(1_416, "%00000588"), - Attrs([Attr("address","0x594"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), Sub(Tid(1_543, "@_start"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x600"), -Attr("stub","()"), Attr("entry-point","()")]), "_start", - Args([Arg(Tid(1_599, "%0000063f"), Attrs([Attr("c.layout","[signed : 32]"), -Attr("c.data","Top:u32"), Attr("c.type","signed")]), - Var("_start_result",Imm(32)), LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(428, "@_start"), Attrs([Attr("address","0x600")]), Phis([]), -Defs([Def(Tid(433, "%000001b1"), Attrs([Attr("address","0x604"), -Attr("insn","mov x29, #0x0")]), Var("R29",Imm(64)), Int(0,64)), -Def(Tid(438, "%000001b6"), Attrs([Attr("address","0x608"), -Attr("insn","mov x30, #0x0")]), Var("R30",Imm(64)), Int(0,64)), -Def(Tid(444, "%000001bc"), Attrs([Attr("address","0x60C"), -Attr("insn","mov x5, x0")]), Var("R5",Imm(64)), Var("R0",Imm(64))), -Def(Tid(451, "%000001c3"), Attrs([Attr("address","0x610"), -Attr("insn","ldr x1, [sp]")]), Var("R1",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(457, "%000001c9"), Attrs([Attr("address","0x614"), -Attr("insn","add x2, sp, #0x8")]), Var("R2",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(8,64))), Def(Tid(463, "%000001cf"), - Attrs([Attr("address","0x618"), Attr("insn","mov x6, sp")]), - Var("R6",Imm(64)), Var("R31",Imm(64))), Def(Tid(468, "%000001d4"), - Attrs([Attr("address","0x61C"), Attr("insn","adrp x0, #65536")]), - Var("R0",Imm(64)), Int(65536,64)), Def(Tid(475, "%000001db"), - Attrs([Attr("address","0x620"), Attr("insn","ldr x0, [x0, #0xff0]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(4080,64)),LittleEndian(),64)), -Def(Tid(480, "%000001e0"), Attrs([Attr("address","0x624"), -Attr("insn","mov x3, #0x0")]), Var("R3",Imm(64)), Int(0,64)), -Def(Tid(485, "%000001e5"), Attrs([Attr("address","0x628"), -Attr("insn","mov x4, #0x0")]), Var("R4",Imm(64)), Int(0,64)), -Def(Tid(490, "%000001ea"), Attrs([Attr("address","0x62C"), -Attr("insn","bl #-0x6c")]), Var("R30",Imm(64)), Int(1584,64))]), -Jmps([Call(Tid(493, "%000001ed"), Attrs([Attr("address","0x62C"), -Attr("insn","bl #-0x6c")]), Int(1,1), -(Direct(Tid(1_540, "@__libc_start_main")),Direct(Tid(495, "%000001ef"))))])), -Blk(Tid(495, "%000001ef"), Attrs([Attr("address","0x630")]), Phis([]), -Defs([Def(Tid(498, "%000001f2"), Attrs([Attr("address","0x630"), -Attr("insn","bl #-0x40")]), Var("R30",Imm(64)), Int(1588,64))]), -Jmps([Call(Tid(501, "%000001f5"), Attrs([Attr("address","0x630"), -Attr("insn","bl #-0x40")]), Int(1,1), -(Direct(Tid(1_546, "@abort")),Direct(Tid(1_580, "%0000062c"))))])), -Blk(Tid(1_580, "%0000062c"), Attrs([]), Phis([]), Defs([]), -Jmps([Call(Tid(1_581, "%0000062d"), Attrs([]), Int(1,1), -(Direct(Tid(1_547, "@call_weak_fn")),))]))])), Sub(Tid(1_546, "@abort"), - Attrs([Attr("noreturn","()"), Attr("c.proto","void (*)(void)"), -Attr("address","0x5F0"), Attr("stub","()")]), "abort", Args([]), -Blks([Blk(Tid(499, "@abort"), Attrs([Attr("address","0x5F0")]), Phis([]), -Defs([Def(Tid(1_221, "%000004c5"), Attrs([Attr("address","0x5F0"), -Attr("insn","adrp x16, #65536")]), Var("R16",Imm(64)), Int(65536,64)), -Def(Tid(1_228, "%000004cc"), Attrs([Attr("address","0x5F4"), -Attr("insn","ldr x17, [x16, #0xfc8]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(4040,64)),LittleEndian(),64)), -Def(Tid(1_234, "%000004d2"), Attrs([Attr("address","0x5F8"), -Attr("insn","add x16, x16, #0xfc8")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(4040,64)))]), Jmps([Call(Tid(1_239, "%000004d7"), - Attrs([Attr("address","0x5FC"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), Sub(Tid(1_547, "@call_weak_fn"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x634")]), - "call_weak_fn", Args([Arg(Tid(1_600, "%00000640"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("call_weak_fn_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(503, "@call_weak_fn"), - Attrs([Attr("address","0x634")]), Phis([]), Defs([Def(Tid(506, "%000001fa"), - Attrs([Attr("address","0x634"), Attr("insn","adrp x0, #65536")]), - Var("R0",Imm(64)), Int(65536,64)), Def(Tid(513, "%00000201"), - Attrs([Attr("address","0x638"), Attr("insn","ldr x0, [x0, #0xfe8]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(4072,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(519, "%00000207"), Attrs([Attr("address","0x63C"), -Attr("insn","cbz x0, #0x8")]), EQ(Var("R0",Imm(64)),Int(0,64)), -Direct(Tid(517, "%00000205"))), Goto(Tid(1_582, "%0000062e"), Attrs([]), - Int(1,1), Direct(Tid(993, "%000003e1")))])), Blk(Tid(517, "%00000205"), - Attrs([Attr("address","0x644")]), Phis([]), Defs([]), -Jmps([Call(Tid(525, "%0000020d"), Attrs([Attr("address","0x644"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))])), -Blk(Tid(993, "%000003e1"), Attrs([Attr("address","0x640")]), Phis([]), -Defs([]), Jmps([Goto(Tid(996, "%000003e4"), Attrs([Attr("address","0x640"), -Attr("insn","b #-0x60")]), Int(1,1), Direct(Tid(994, "@__gmon_start__")))])), -Blk(Tid(994, "@__gmon_start__"), Attrs([Attr("address","0x5E0")]), Phis([]), -Defs([Def(Tid(1_199, "%000004af"), Attrs([Attr("address","0x5E0"), -Attr("insn","adrp x16, #65536")]), Var("R16",Imm(64)), Int(65536,64)), -Def(Tid(1_206, "%000004b6"), Attrs([Attr("address","0x5E4"), -Attr("insn","ldr x17, [x16, #0xfc0]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(4032,64)),LittleEndian(),64)), -Def(Tid(1_212, "%000004bc"), Attrs([Attr("address","0x5E8"), -Attr("insn","add x16, x16, #0xfc0")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(4032,64)))]), Jmps([Call(Tid(1_217, "%000004c1"), - Attrs([Attr("address","0x5EC"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), -Sub(Tid(1_549, "@deregister_tm_clones"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x650")]), - "deregister_tm_clones", Args([Arg(Tid(1_601, "%00000641"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("deregister_tm_clones_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(531, "@deregister_tm_clones"), - Attrs([Attr("address","0x650")]), Phis([]), Defs([Def(Tid(534, "%00000216"), - Attrs([Attr("address","0x650"), Attr("insn","adrp x0, #69632")]), - Var("R0",Imm(64)), Int(69632,64)), Def(Tid(540, "%0000021c"), - Attrs([Attr("address","0x654"), Attr("insn","add x0, x0, #0x10")]), - Var("R0",Imm(64)), PLUS(Var("R0",Imm(64)),Int(16,64))), -Def(Tid(545, "%00000221"), Attrs([Attr("address","0x658"), -Attr("insn","adrp x1, #69632")]), Var("R1",Imm(64)), Int(69632,64)), -Def(Tid(551, "%00000227"), Attrs([Attr("address","0x65C"), -Attr("insn","add x1, x1, #0x10")]), Var("R1",Imm(64)), -PLUS(Var("R1",Imm(64)),Int(16,64))), Def(Tid(557, "%0000022d"), - Attrs([Attr("address","0x660"), Attr("insn","cmp x1, x0")]), - Var("#1",Imm(64)), NOT(Var("R0",Imm(64)))), Def(Tid(562, "%00000232"), - Attrs([Attr("address","0x660"), Attr("insn","cmp x1, x0")]), - Var("#2",Imm(64)), PLUS(Var("R1",Imm(64)),NOT(Var("R0",Imm(64))))), -Def(Tid(568, "%00000238"), Attrs([Attr("address","0x660"), -Attr("insn","cmp x1, x0")]), Var("VF",Imm(1)), -NEQ(SIGNED(65,PLUS(Var("#2",Imm(64)),Int(1,64))),PLUS(PLUS(SIGNED(65,Var("R1",Imm(64))),SIGNED(65,Var("#1",Imm(64)))),Int(1,65)))), -Def(Tid(574, "%0000023e"), Attrs([Attr("address","0x660"), -Attr("insn","cmp x1, x0")]), Var("CF",Imm(1)), -NEQ(UNSIGNED(65,PLUS(Var("#2",Imm(64)),Int(1,64))),PLUS(PLUS(UNSIGNED(65,Var("R1",Imm(64))),UNSIGNED(65,Var("#1",Imm(64)))),Int(1,65)))), -Def(Tid(578, "%00000242"), Attrs([Attr("address","0x660"), -Attr("insn","cmp x1, x0")]), Var("ZF",Imm(1)), -EQ(PLUS(Var("#2",Imm(64)),Int(1,64)),Int(0,64))), Def(Tid(582, "%00000246"), - Attrs([Attr("address","0x660"), Attr("insn","cmp x1, x0")]), - Var("NF",Imm(1)), Extract(63,63,PLUS(Var("#2",Imm(64)),Int(1,64))))]), -Jmps([Goto(Tid(588, "%0000024c"), Attrs([Attr("address","0x664"), -Attr("insn","b.eq #0x18")]), EQ(Var("ZF",Imm(1)),Int(1,1)), -Direct(Tid(586, "%0000024a"))), Goto(Tid(1_583, "%0000062f"), Attrs([]), - Int(1,1), Direct(Tid(963, "%000003c3")))])), Blk(Tid(963, "%000003c3"), - Attrs([Attr("address","0x668")]), Phis([]), Defs([Def(Tid(966, "%000003c6"), - Attrs([Attr("address","0x668"), Attr("insn","adrp x1, #65536")]), - Var("R1",Imm(64)), Int(65536,64)), Def(Tid(973, "%000003cd"), - Attrs([Attr("address","0x66C"), Attr("insn","ldr x1, [x1, #0xfd8]")]), - Var("R1",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R1",Imm(64)),Int(4056,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(978, "%000003d2"), Attrs([Attr("address","0x670"), -Attr("insn","cbz x1, #0xc")]), EQ(Var("R1",Imm(64)),Int(0,64)), -Direct(Tid(586, "%0000024a"))), Goto(Tid(1_584, "%00000630"), Attrs([]), - Int(1,1), Direct(Tid(982, "%000003d6")))])), Blk(Tid(586, "%0000024a"), - Attrs([Attr("address","0x67C")]), Phis([]), Defs([]), -Jmps([Call(Tid(594, "%00000252"), Attrs([Attr("address","0x67C"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))])), -Blk(Tid(982, "%000003d6"), Attrs([Attr("address","0x674")]), Phis([]), -Defs([Def(Tid(986, "%000003da"), Attrs([Attr("address","0x674"), -Attr("insn","mov x16, x1")]), Var("R16",Imm(64)), Var("R1",Imm(64)))]), -Jmps([Call(Tid(991, "%000003df"), Attrs([Attr("address","0x678"), -Attr("insn","br x16")]), Int(1,1), (Indirect(Var("R16",Imm(64))),))]))])), -Sub(Tid(1_552, "@frame_dummy"), Attrs([Attr("c.proto","signed (*)(void)"), -Attr("address","0x710")]), "frame_dummy", Args([Arg(Tid(1_602, "%00000642"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("frame_dummy_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(746, "@frame_dummy"), - Attrs([Attr("address","0x710")]), Phis([]), Defs([]), -Jmps([Call(Tid(748, "%000002ec"), Attrs([Attr("address","0x710"), -Attr("insn","b #-0x90")]), Int(1,1), -(Direct(Tid(1_556, "@register_tm_clones")),))]))])), Sub(Tid(1_553, "@main"), - Attrs([Attr("c.proto","signed (*)(signed argc, const char** argv)"), -Attr("address","0x714")]), "main", Args([Arg(Tid(1_603, "%00000643"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("main_argc",Imm(32)), -LOW(32,Var("R0",Imm(64))), In()), Arg(Tid(1_604, "%00000644"), - Attrs([Attr("c.layout","**[char : 8]"), Attr("c.data","Top:u8 ptr ptr"), -Attr("c.type"," const char**")]), Var("main_argv",Imm(64)), -Var("R1",Imm(64)), Both()), Arg(Tid(1_605, "%00000645"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("main_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(750, "@main"), - Attrs([Attr("address","0x714")]), Phis([]), Defs([Def(Tid(754, "%000002f2"), - Attrs([Attr("address","0x714"), Attr("insn","sub sp, sp, #0x10")]), - Var("R31",Imm(64)), PLUS(Var("R31",Imm(64)),Int(18446744073709551600,64))), -Def(Tid(761, "%000002f9"), Attrs([Attr("address","0x718"), -Attr("insn","str wzr, [sp, #0xc]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(12,64)),Int(0,32),LittleEndian(),32)), -Def(Tid(766, "%000002fe"), Attrs([Attr("address","0x71C"), -Attr("insn","adrp x0, #69632")]), Var("R0",Imm(64)), Int(69632,64)), -Def(Tid(772, "%00000304"), Attrs([Attr("address","0x720"), -Attr("insn","add x0, x0, #0x18")]), Var("R0",Imm(64)), -PLUS(Var("R0",Imm(64)),Int(24,64))), Def(Tid(779, "%0000030b"), - Attrs([Attr("address","0x724"), Attr("insn","ldr w0, [x0]")]), - Var("R0",Imm(64)), -UNSIGNED(64,Load(Var("mem",Mem(64,8)),Var("R0",Imm(64)),LittleEndian(),32))), -Def(Tid(785, "%00000311"), Attrs([Attr("address","0x728"), -Attr("insn","cmp w0, #0x0")]), Var("#4",Imm(32)), -PLUS(Extract(31,0,Var("R0",Imm(64))),Int(4294967295,32))), -Def(Tid(790, "%00000316"), Attrs([Attr("address","0x728"), -Attr("insn","cmp w0, #0x0")]), Var("VF",Imm(1)), -NEQ(SIGNED(33,PLUS(Var("#4",Imm(32)),Int(1,32))),PLUS(SIGNED(33,Extract(31,0,Var("R0",Imm(64)))),Int(0,33)))), -Def(Tid(795, "%0000031b"), Attrs([Attr("address","0x728"), -Attr("insn","cmp w0, #0x0")]), Var("CF",Imm(1)), -NEQ(UNSIGNED(33,PLUS(Var("#4",Imm(32)),Int(1,32))),PLUS(UNSIGNED(33,Extract(31,0,Var("R0",Imm(64)))),Int(4294967296,33)))), -Def(Tid(799, "%0000031f"), Attrs([Attr("address","0x728"), -Attr("insn","cmp w0, #0x0")]), Var("ZF",Imm(1)), -EQ(PLUS(Var("#4",Imm(32)),Int(1,32)),Int(0,32))), Def(Tid(803, "%00000323"), - Attrs([Attr("address","0x728"), Attr("insn","cmp w0, #0x0")]), - Var("NF",Imm(1)), Extract(31,31,PLUS(Var("#4",Imm(32)),Int(1,32))))]), -Jmps([Goto(Tid(809, "%00000329"), Attrs([Attr("address","0x72C"), -Attr("insn","b.ne #0x20")]), NEQ(Var("ZF",Imm(1)),Int(1,1)), -Direct(Tid(807, "%00000327"))), Goto(Tid(1_585, "%00000631"), Attrs([]), - Int(1,1), Direct(Tid(830, "%0000033e")))])), Blk(Tid(830, "%0000033e"), - Attrs([Attr("address","0x730")]), Phis([]), Defs([Def(Tid(833, "%00000341"), - Attrs([Attr("address","0x730"), Attr("insn","adrp x0, #69632")]), - Var("R0",Imm(64)), Int(69632,64)), Def(Tid(839, "%00000347"), - Attrs([Attr("address","0x734"), Attr("insn","add x0, x0, #0x14")]), - Var("R0",Imm(64)), PLUS(Var("R0",Imm(64)),Int(20,64))), -Def(Tid(846, "%0000034e"), Attrs([Attr("address","0x738"), -Attr("insn","str wzr, [x0]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("R0",Imm(64)),Int(0,32),LittleEndian(),32)), -Def(Tid(851, "%00000353"), Attrs([Attr("address","0x73C"), -Attr("insn","adrp x0, #69632")]), Var("R0",Imm(64)), Int(69632,64)), -Def(Tid(857, "%00000359"), Attrs([Attr("address","0x740"), -Attr("insn","add x0, x0, #0x14")]), Var("R0",Imm(64)), -PLUS(Var("R0",Imm(64)),Int(20,64))), Def(Tid(864, "%00000360"), - Attrs([Attr("address","0x744"), Attr("insn","ldr w0, [x0]")]), - Var("R0",Imm(64)), -UNSIGNED(64,Load(Var("mem",Mem(64,8)),Var("R0",Imm(64)),LittleEndian(),32))), -Def(Tid(872, "%00000368"), Attrs([Attr("address","0x748"), -Attr("insn","str w0, [sp, #0xc]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(12,64)),Extract(31,0,Var("R0",Imm(64))),LittleEndian(),32))]), -Jmps([Goto(Tid(1_586, "%00000632"), Attrs([]), Int(1,1), -Direct(Tid(807, "%00000327")))])), Blk(Tid(807, "%00000327"), - Attrs([Attr("address","0x74C")]), Phis([]), Defs([Def(Tid(817, "%00000331"), - Attrs([Attr("address","0x74C"), Attr("insn","ldr w0, [sp, #0xc]")]), - Var("R0",Imm(64)), -UNSIGNED(64,Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(12,64)),LittleEndian(),32))), -Def(Tid(823, "%00000337"), Attrs([Attr("address","0x750"), -Attr("insn","add sp, sp, #0x10")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(16,64)))]), Jmps([Call(Tid(828, "%0000033c"), - Attrs([Attr("address","0x754"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), -Sub(Tid(1_556, "@register_tm_clones"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x680")]), - "register_tm_clones", Args([Arg(Tid(1_606, "%00000646"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("register_tm_clones_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(596, "@register_tm_clones"), Attrs([Attr("address","0x680")]), - Phis([]), Defs([Def(Tid(599, "%00000257"), Attrs([Attr("address","0x680"), -Attr("insn","adrp x0, #69632")]), Var("R0",Imm(64)), Int(69632,64)), -Def(Tid(605, "%0000025d"), Attrs([Attr("address","0x684"), -Attr("insn","add x0, x0, #0x10")]), Var("R0",Imm(64)), -PLUS(Var("R0",Imm(64)),Int(16,64))), Def(Tid(610, "%00000262"), - Attrs([Attr("address","0x688"), Attr("insn","adrp x1, #69632")]), - Var("R1",Imm(64)), Int(69632,64)), Def(Tid(616, "%00000268"), - Attrs([Attr("address","0x68C"), Attr("insn","add x1, x1, #0x10")]), - Var("R1",Imm(64)), PLUS(Var("R1",Imm(64)),Int(16,64))), -Def(Tid(623, "%0000026f"), Attrs([Attr("address","0x690"), -Attr("insn","sub x1, x1, x0")]), Var("R1",Imm(64)), -PLUS(PLUS(Var("R1",Imm(64)),NOT(Var("R0",Imm(64)))),Int(1,64))), -Def(Tid(629, "%00000275"), Attrs([Attr("address","0x694"), -Attr("insn","lsr x2, x1, #63")]), Var("R2",Imm(64)), -Concat(Int(0,63),Extract(63,63,Var("R1",Imm(64))))), -Def(Tid(636, "%0000027c"), Attrs([Attr("address","0x698"), -Attr("insn","add x1, x2, x1, asr #3")]), Var("R1",Imm(64)), -PLUS(Var("R2",Imm(64)),ARSHIFT(Var("R1",Imm(64)),Int(3,3)))), -Def(Tid(642, "%00000282"), Attrs([Attr("address","0x69C"), -Attr("insn","asr x1, x1, #1")]), Var("R1",Imm(64)), -SIGNED(64,Extract(63,1,Var("R1",Imm(64)))))]), -Jmps([Goto(Tid(648, "%00000288"), Attrs([Attr("address","0x6A0"), -Attr("insn","cbz x1, #0x18")]), EQ(Var("R1",Imm(64)),Int(0,64)), -Direct(Tid(646, "%00000286"))), Goto(Tid(1_587, "%00000633"), Attrs([]), - Int(1,1), Direct(Tid(933, "%000003a5")))])), Blk(Tid(933, "%000003a5"), - Attrs([Attr("address","0x6A4")]), Phis([]), Defs([Def(Tid(936, "%000003a8"), - Attrs([Attr("address","0x6A4"), Attr("insn","adrp x2, #65536")]), - Var("R2",Imm(64)), Int(65536,64)), Def(Tid(943, "%000003af"), - Attrs([Attr("address","0x6A8"), Attr("insn","ldr x2, [x2, #0xff8]")]), - Var("R2",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R2",Imm(64)),Int(4088,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(948, "%000003b4"), Attrs([Attr("address","0x6AC"), -Attr("insn","cbz x2, #0xc")]), EQ(Var("R2",Imm(64)),Int(0,64)), -Direct(Tid(646, "%00000286"))), Goto(Tid(1_588, "%00000634"), Attrs([]), - Int(1,1), Direct(Tid(952, "%000003b8")))])), Blk(Tid(646, "%00000286"), - Attrs([Attr("address","0x6B8")]), Phis([]), Defs([]), -Jmps([Call(Tid(654, "%0000028e"), Attrs([Attr("address","0x6B8"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))])), -Blk(Tid(952, "%000003b8"), Attrs([Attr("address","0x6B0")]), Phis([]), -Defs([Def(Tid(956, "%000003bc"), Attrs([Attr("address","0x6B0"), -Attr("insn","mov x16, x2")]), Var("R16",Imm(64)), Var("R2",Imm(64)))]), -Jmps([Call(Tid(961, "%000003c1"), Attrs([Attr("address","0x6B4"), -Attr("insn","br x16")]), Int(1,1), -(Indirect(Var("R16",Imm(64))),))]))]))]))) \ No newline at end of file diff --git a/src/test/correct/basic_lock_read/gcc/basic_lock_read.bir b/src/test/correct/basic_lock_read/gcc/basic_lock_read.bir deleted file mode 100644 index 41aab2b1e..000000000 --- a/src/test/correct/basic_lock_read/gcc/basic_lock_read.bir +++ /dev/null @@ -1,249 +0,0 @@ -00000635: program -000005ff: sub __cxa_finalize(__cxa_finalize_result) -00000636: __cxa_finalize_result :: out u32 = low:32[R0] - -000003a1: -00000499: R16 := 0x10000 -000004a0: R17 := mem[R16 + 0xFB8, el]:u64 -000004a6: R16 := R16 + 0xFB8 -000004ab: call R17 with noreturn - -00000600: sub __do_global_dtors_aux(__do_global_dtors_aux_result) -00000637: __do_global_dtors_aux_result :: out u32 = low:32[R0] - -00000292: -00000296: #3 := R31 - 0x20 -0000029c: mem := mem with [#3, el]:u64 <- R29 -000002a2: mem := mem with [#3 + 8, el]:u64 <- R30 -000002a6: R31 := #3 -000002ac: R29 := R31 -000002b4: mem := mem with [R31 + 0x10, el]:u64 <- R19 -000002b9: R19 := 0x11000 -000002c0: R0 := pad:64[mem[R19 + 0x10]] -000002c7: when 31:0[R0] <> 0 goto %000002c5 -00000629: goto %0000036a - -0000036a: -0000036d: R0 := 0x10000 -00000374: R0 := mem[R0 + 0xFE0, el]:u64 -0000037a: when R0 = 0 goto %00000378 -0000062a: goto %00000391 - -00000391: -00000394: R0 := 0x11000 -0000039b: R0 := mem[R0 + 8, el]:u64 -000003a0: R30 := 0x6F0 -000003a3: call @__cxa_finalize with return %00000378 - -00000378: -00000380: R30 := 0x6F4 -00000382: call @deregister_tm_clones with return %00000384 - -00000384: -00000387: R0 := 1 -0000038f: mem := mem with [R19 + 0x10] <- 7:0[R0] -0000062b: goto %000002c5 - -000002c5: -000002cf: R19 := mem[R31 + 0x10, el]:u64 -000002d6: R29 := mem[R31, el]:u64 -000002db: R30 := mem[R31 + 8, el]:u64 -000002df: R31 := R31 + 0x20 -000002e4: call R30 with noreturn - -00000604: sub __libc_start_main(__libc_start_main_main, __libc_start_main_arg2, __libc_start_main_arg3, __libc_start_main_auxv, __libc_start_main_result) -00000638: __libc_start_main_main :: in u64 = R0 -00000639: __libc_start_main_arg2 :: in u32 = low:32[R1] -0000063a: __libc_start_main_arg3 :: in out u64 = R2 -0000063b: __libc_start_main_auxv :: in out u64 = R3 -0000063c: __libc_start_main_result :: out u32 = low:32[R0] - -000001eb: -00000483: R16 := 0x10000 -0000048a: R17 := mem[R16 + 0xFB0, el]:u64 -00000490: R16 := R16 + 0xFB0 -00000495: call R17 with noreturn - -00000605: sub _fini(_fini_result) -0000063d: _fini_result :: out u32 = low:32[R0] - -0000001f: -00000025: #0 := R31 - 0x10 -0000002b: mem := mem with [#0, el]:u64 <- R29 -00000031: mem := mem with [#0 + 8, el]:u64 <- R30 -00000035: R31 := #0 -0000003b: R29 := R31 -00000042: R29 := mem[R31, el]:u64 -00000047: R30 := mem[R31 + 8, el]:u64 -0000004b: R31 := R31 + 0x10 -00000050: call R30 with noreturn - -00000606: sub _init(_init_result) -0000063e: _init_result :: out u32 = low:32[R0] - -00000550: -00000556: #6 := R31 - 0x10 -0000055c: mem := mem with [#6, el]:u64 <- R29 -00000562: mem := mem with [#6 + 8, el]:u64 <- R30 -00000566: R31 := #6 -0000056c: R29 := R31 -00000571: R30 := 0x590 -00000573: call @call_weak_fn with return %00000575 - -00000575: -0000057a: R29 := mem[R31, el]:u64 -0000057f: R30 := mem[R31 + 8, el]:u64 -00000583: R31 := R31 + 0x10 -00000588: call R30 with noreturn - -00000607: sub _start(_start_result) -0000063f: _start_result :: out u32 = low:32[R0] - -000001ac: -000001b1: R29 := 0 -000001b6: R30 := 0 -000001bc: R5 := R0 -000001c3: R1 := mem[R31, el]:u64 -000001c9: R2 := R31 + 8 -000001cf: R6 := R31 -000001d4: R0 := 0x10000 -000001db: R0 := mem[R0 + 0xFF0, el]:u64 -000001e0: R3 := 0 -000001e5: R4 := 0 -000001ea: R30 := 0x630 -000001ed: call @__libc_start_main with return %000001ef - -000001ef: -000001f2: R30 := 0x634 -000001f5: call @abort with return %0000062c - -0000062c: -0000062d: call @call_weak_fn with noreturn - -0000060a: sub abort() - - -000001f3: -000004c5: R16 := 0x10000 -000004cc: R17 := mem[R16 + 0xFC8, el]:u64 -000004d2: R16 := R16 + 0xFC8 -000004d7: call R17 with noreturn - -0000060b: sub call_weak_fn(call_weak_fn_result) -00000640: call_weak_fn_result :: out u32 = low:32[R0] - -000001f7: -000001fa: R0 := 0x10000 -00000201: R0 := mem[R0 + 0xFE8, el]:u64 -00000207: when R0 = 0 goto %00000205 -0000062e: goto %000003e1 - -00000205: -0000020d: call R30 with noreturn - -000003e1: -000003e4: goto @__gmon_start__ - -000003e2: -000004af: R16 := 0x10000 -000004b6: R17 := mem[R16 + 0xFC0, el]:u64 -000004bc: R16 := R16 + 0xFC0 -000004c1: call R17 with noreturn - -0000060d: sub deregister_tm_clones(deregister_tm_clones_result) -00000641: deregister_tm_clones_result :: out u32 = low:32[R0] - -00000213: -00000216: R0 := 0x11000 -0000021c: R0 := R0 + 0x10 -00000221: R1 := 0x11000 -00000227: R1 := R1 + 0x10 -0000022d: #1 := ~R0 -00000232: #2 := R1 + ~R0 -00000238: VF := extend:65[#2 + 1] <> extend:65[R1] + extend:65[#1] + 1 -0000023e: CF := pad:65[#2 + 1] <> pad:65[R1] + pad:65[#1] + 1 -00000242: ZF := #2 + 1 = 0 -00000246: NF := 63:63[#2 + 1] -0000024c: when ZF goto %0000024a -0000062f: goto %000003c3 - -000003c3: -000003c6: R1 := 0x10000 -000003cd: R1 := mem[R1 + 0xFD8, el]:u64 -000003d2: when R1 = 0 goto %0000024a -00000630: goto %000003d6 - -0000024a: -00000252: call R30 with noreturn - -000003d6: -000003da: R16 := R1 -000003df: call R16 with noreturn - -00000610: sub frame_dummy(frame_dummy_result) -00000642: frame_dummy_result :: out u32 = low:32[R0] - -000002ea: -000002ec: call @register_tm_clones with noreturn - -00000611: sub main(main_argc, main_argv, main_result) -00000643: main_argc :: in u32 = low:32[R0] -00000644: main_argv :: in out u64 = R1 -00000645: main_result :: out u32 = low:32[R0] - -000002ee: -000002f2: R31 := R31 - 0x10 -000002f9: mem := mem with [R31 + 0xC, el]:u32 <- 0 -000002fe: R0 := 0x11000 -00000304: R0 := R0 + 0x18 -0000030b: R0 := pad:64[mem[R0, el]:u32] -00000311: #4 := 31:0[R0] - 1 -00000316: VF := extend:33[#4 + 1] <> extend:33[31:0[R0]] + 0 -0000031b: CF := pad:33[#4 + 1] <> pad:33[31:0[R0]] - 0x100000000 -0000031f: ZF := #4 + 1 = 0 -00000323: NF := 31:31[#4 + 1] -00000329: when ZF <> 1 goto %00000327 -00000631: goto %0000033e - -0000033e: -00000341: R0 := 0x11000 -00000347: R0 := R0 + 0x14 -0000034e: mem := mem with [R0, el]:u32 <- 0 -00000353: R0 := 0x11000 -00000359: R0 := R0 + 0x14 -00000360: R0 := pad:64[mem[R0, el]:u32] -00000368: mem := mem with [R31 + 0xC, el]:u32 <- 31:0[R0] -00000632: goto %00000327 - -00000327: -00000331: R0 := pad:64[mem[R31 + 0xC, el]:u32] -00000337: R31 := R31 + 0x10 -0000033c: call R30 with noreturn - -00000614: sub register_tm_clones(register_tm_clones_result) -00000646: register_tm_clones_result :: out u32 = low:32[R0] - -00000254: -00000257: R0 := 0x11000 -0000025d: R0 := R0 + 0x10 -00000262: R1 := 0x11000 -00000268: R1 := R1 + 0x10 -0000026f: R1 := R1 + ~R0 + 1 -00000275: R2 := 0.63:63[R1] -0000027c: R1 := R2 + (R1 ~>> 3) -00000282: R1 := extend:64[63:1[R1]] -00000288: when R1 = 0 goto %00000286 -00000633: goto %000003a5 - -000003a5: -000003a8: R2 := 0x10000 -000003af: R2 := mem[R2 + 0xFF8, el]:u64 -000003b4: when R2 = 0 goto %00000286 -00000634: goto %000003b8 - -00000286: -0000028e: call R30 with noreturn - -000003b8: -000003bc: R16 := R2 -000003c1: call R16 with noreturn diff --git a/src/test/correct/basic_lock_read/gcc/basic_lock_read.expected b/src/test/correct/basic_lock_read/gcc/basic_lock_read.expected index dfe5a0271..4b1be5a8a 100644 --- a/src/test/correct/basic_lock_read/gcc/basic_lock_read.expected +++ b/src/test/correct/basic_lock_read/gcc/basic_lock_read.expected @@ -87,7 +87,7 @@ implementation {:extern} guarantee_reflexive() assert (memory_load32_le(mem, $z_addr) == memory_load32_le(mem, $z_addr)); } -procedure main_1812(); +procedure main(); modifies CF, Gamma_CF, Gamma_NF, Gamma_R0, Gamma_R31, Gamma_VF, Gamma_ZF, Gamma_mem, Gamma_stack, NF, R0, R31, VF, ZF, mem, stack; free requires (memory_load64_le(mem, 69632bv64) == 0bv64); free requires (memory_load64_le(mem, 69640bv64) == 69640bv64); @@ -105,16 +105,16 @@ procedure main_1812(); free ensures (memory_load64_le(mem, 69616bv64) == 1812bv64); free ensures (memory_load64_le(mem, 69640bv64) == 69640bv64); -implementation main_1812() +implementation main() { var #4: bv32; + var $load$18: bv32; + var $load$19: bv32; + var $load$20: bv32; var Gamma_#4: bool; - var Gamma_load18: bool; - var Gamma_load19: bool; - var Gamma_load20: bool; - var load18: bv32; - var load19: bv32; - var load20: bv32; + var Gamma_$load$18: bool; + var Gamma_$load$19: bool; + var Gamma_$load$20: bool; var z_old: bv32; lmain: assume {:captureState "lmain"} true; @@ -124,8 +124,8 @@ implementation main_1812() R0, Gamma_R0 := 69632bv64, true; R0, Gamma_R0 := bvadd64(R0, 24bv64), Gamma_R0; call rely(); - load18, Gamma_load18 := memory_load32_le(mem, R0), (gamma_load32(Gamma_mem, R0) || L(mem, R0)); - R0, Gamma_R0 := zero_extend32_32(load18), Gamma_load18; + $load$18, Gamma_$load$18 := memory_load32_le(mem, R0), (gamma_load32(Gamma_mem, R0) || L(mem, R0)); + R0, Gamma_R0 := zero_extend32_32($load$18), Gamma_$load$18; #4, Gamma_#4 := bvadd32(R0[32:0], 4294967295bv32), Gamma_R0; VF, Gamma_VF := bvnot1(bvcomp33(sign_extend1_32(bvadd32(#4, 1bv32)), bvadd33(sign_extend1_32(R0[32:0]), 0bv33))), (Gamma_R0 && Gamma_#4); CF, Gamma_CF := bvnot1(bvcomp33(zero_extend1_32(bvadd32(#4, 1bv32)), bvadd33(zero_extend1_32(R0[32:0]), 4294967296bv33))), (Gamma_R0 && Gamma_#4); @@ -133,40 +133,40 @@ implementation main_1812() NF, Gamma_NF := bvadd32(#4, 1bv32)[32:31], Gamma_#4; assert Gamma_ZF; goto lmain_goto_l00000327, lmain_goto_l0000033e; - lmain_goto_l0000033e: - assume {:captureState "lmain_goto_l0000033e"} true; - assume (bvnot1(bvcomp1(ZF, 1bv1)) == 0bv1); + l0000033e: + assume {:captureState "l0000033e"} true; R0, Gamma_R0 := 69632bv64, true; R0, Gamma_R0 := bvadd64(R0, 20bv64), Gamma_R0; call rely(); - z_old := memory_load32_le(mem, $z_addr); assert (L(mem, R0) ==> true); + z_old := memory_load32_le(mem, $z_addr); mem, Gamma_mem := memory_store32_le(mem, R0, 0bv32), gamma_store32(Gamma_mem, R0, true); assert (memory_load32_le(mem, $z_addr) == z_old); assume {:captureState "%0000034e"} true; R0, Gamma_R0 := 69632bv64, true; R0, Gamma_R0 := bvadd64(R0, 20bv64), Gamma_R0; call rely(); - load19, Gamma_load19 := memory_load32_le(mem, R0), (gamma_load32(Gamma_mem, R0) || L(mem, R0)); - R0, Gamma_R0 := zero_extend32_32(load19), Gamma_load19; + $load$19, Gamma_$load$19 := memory_load32_le(mem, R0), (gamma_load32(Gamma_mem, R0) || L(mem, R0)); + R0, Gamma_R0 := zero_extend32_32($load$19), Gamma_$load$19; stack, Gamma_stack := memory_store32_le(stack, bvadd64(R31, 12bv64), R0[32:0]), gamma_store32(Gamma_stack, bvadd64(R31, 12bv64), Gamma_R0); assume {:captureState "%00000368"} true; - goto l0000033e; - l0000033e: - assume {:captureState "l0000033e"} true; goto l00000327; + l00000327: + assume {:captureState "l00000327"} true; + $load$20, Gamma_$load$20 := memory_load32_le(stack, bvadd64(R31, 12bv64)), gamma_load32(Gamma_stack, bvadd64(R31, 12bv64)); + R0, Gamma_R0 := zero_extend32_32($load$20), Gamma_$load$20; + R31, Gamma_R31 := bvadd64(R31, 16bv64), Gamma_R31; + goto main_basil_return; lmain_goto_l00000327: assume {:captureState "lmain_goto_l00000327"} true; assume (bvnot1(bvcomp1(ZF, 1bv1)) != 0bv1); goto l00000327; - l00000327: - assume {:captureState "l00000327"} true; - load20, Gamma_load20 := memory_load32_le(stack, bvadd64(R31, 12bv64)), gamma_load32(Gamma_stack, bvadd64(R31, 12bv64)); - R0, Gamma_R0 := zero_extend32_32(load20), Gamma_load20; - R31, Gamma_R31 := bvadd64(R31, 16bv64), Gamma_R31; - goto main_1812_basil_return; - main_1812_basil_return: - assume {:captureState "main_1812_basil_return"} true; + lmain_goto_l0000033e: + assume {:captureState "lmain_goto_l0000033e"} true; + assume (bvnot1(bvcomp1(ZF, 1bv1)) == 0bv1); + goto l0000033e; + main_basil_return: + assume {:captureState "main_basil_return"} true; return; } diff --git a/src/test/correct/basic_lock_read/gcc/basic_lock_read.gts b/src/test/correct/basic_lock_read/gcc/basic_lock_read.gts deleted file mode 100644 index 284c2f239..000000000 Binary files a/src/test/correct/basic_lock_read/gcc/basic_lock_read.gts and /dev/null differ diff --git a/src/test/correct/basic_lock_read/gcc/basic_lock_read.md5sum b/src/test/correct/basic_lock_read/gcc/basic_lock_read.md5sum new file mode 100644 index 000000000..8fc11c127 --- /dev/null +++ b/src/test/correct/basic_lock_read/gcc/basic_lock_read.md5sum @@ -0,0 +1,5 @@ +83406037aa5c36ba4e19c924fdd799c3 correct/basic_lock_read/gcc/a.out +92dce26b6b62863e2ddcd55c35aa3237 correct/basic_lock_read/gcc/basic_lock_read.adt +848e811e46315819da5ce0e1ea79c3c3 correct/basic_lock_read/gcc/basic_lock_read.bir +b01350eb173dfdf8c55ce385c500d858 correct/basic_lock_read/gcc/basic_lock_read.relf +343088d5f1f06e2615ad4c10798786e7 correct/basic_lock_read/gcc/basic_lock_read.gts diff --git a/src/test/correct/basic_lock_read/gcc/basic_lock_read.relf b/src/test/correct/basic_lock_read/gcc/basic_lock_read.relf deleted file mode 100644 index 84bcca439..000000000 --- a/src/test/correct/basic_lock_read/gcc/basic_lock_read.relf +++ /dev/null @@ -1,122 +0,0 @@ - -Relocation section '.rela.dyn' at offset 0x460 contains 8 entries: - Offset Info Type Symbol's Value Symbol's Name + Addend -0000000000010d98 0000000000000403 R_AARCH64_RELATIVE 710 -0000000000010da0 0000000000000403 R_AARCH64_RELATIVE 6c0 -0000000000010ff0 0000000000000403 R_AARCH64_RELATIVE 714 -0000000000011008 0000000000000403 R_AARCH64_RELATIVE 11008 -0000000000010fd8 0000000400000401 R_AARCH64_GLOB_DAT 0000000000000000 _ITM_deregisterTMCloneTable + 0 -0000000000010fe0 0000000500000401 R_AARCH64_GLOB_DAT 0000000000000000 __cxa_finalize@GLIBC_2.17 + 0 -0000000000010fe8 0000000600000401 R_AARCH64_GLOB_DAT 0000000000000000 __gmon_start__ + 0 -0000000000010ff8 0000000800000401 R_AARCH64_GLOB_DAT 0000000000000000 _ITM_registerTMCloneTable + 0 - -Relocation section '.rela.plt' at offset 0x520 contains 4 entries: - Offset Info Type Symbol's Value Symbol's Name + Addend -0000000000010fb0 0000000300000402 R_AARCH64_JUMP_SLOT 0000000000000000 __libc_start_main@GLIBC_2.34 + 0 -0000000000010fb8 0000000500000402 R_AARCH64_JUMP_SLOT 0000000000000000 __cxa_finalize@GLIBC_2.17 + 0 -0000000000010fc0 0000000600000402 R_AARCH64_JUMP_SLOT 0000000000000000 __gmon_start__ + 0 -0000000000010fc8 0000000700000402 R_AARCH64_JUMP_SLOT 0000000000000000 abort@GLIBC_2.17 + 0 - -Symbol table '.dynsym' contains 9 entries: - Num: Value Size Type Bind Vis Ndx Name - 0: 0000000000000000 0 NOTYPE LOCAL DEFAULT UND - 1: 0000000000000580 0 SECTION LOCAL DEFAULT 11 .init - 2: 0000000000011000 0 SECTION LOCAL DEFAULT 22 .data - 3: 0000000000000000 0 FUNC GLOBAL DEFAULT UND __libc_start_main@GLIBC_2.34 (2) - 4: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_deregisterTMCloneTable - 5: 0000000000000000 0 FUNC WEAK DEFAULT UND __cxa_finalize@GLIBC_2.17 (3) - 6: 0000000000000000 0 NOTYPE WEAK DEFAULT UND __gmon_start__ - 7: 0000000000000000 0 FUNC GLOBAL DEFAULT UND abort@GLIBC_2.17 (3) - 8: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_registerTMCloneTable - -Symbol table '.symtab' contains 89 entries: - Num: Value Size Type Bind Vis Ndx Name - 0: 0000000000000000 0 NOTYPE LOCAL DEFAULT UND - 1: 0000000000000238 0 SECTION LOCAL DEFAULT 1 .interp - 2: 0000000000000254 0 SECTION LOCAL DEFAULT 2 .note.gnu.build-id - 3: 0000000000000278 0 SECTION LOCAL DEFAULT 3 .note.ABI-tag - 4: 0000000000000298 0 SECTION LOCAL DEFAULT 4 .gnu.hash - 5: 00000000000002b8 0 SECTION LOCAL DEFAULT 5 .dynsym - 6: 0000000000000390 0 SECTION LOCAL DEFAULT 6 .dynstr - 7: 000000000000041e 0 SECTION LOCAL DEFAULT 7 .gnu.version - 8: 0000000000000430 0 SECTION LOCAL DEFAULT 8 .gnu.version_r - 9: 0000000000000460 0 SECTION LOCAL DEFAULT 9 .rela.dyn - 10: 0000000000000520 0 SECTION LOCAL DEFAULT 10 .rela.plt - 11: 0000000000000580 0 SECTION LOCAL DEFAULT 11 .init - 12: 00000000000005a0 0 SECTION LOCAL DEFAULT 12 .plt - 13: 0000000000000600 0 SECTION LOCAL DEFAULT 13 .text - 14: 0000000000000758 0 SECTION LOCAL DEFAULT 14 .fini - 15: 000000000000076c 0 SECTION LOCAL DEFAULT 15 .rodata - 16: 0000000000000770 0 SECTION LOCAL DEFAULT 16 .eh_frame_hdr - 17: 00000000000007b0 0 SECTION LOCAL DEFAULT 17 .eh_frame - 18: 0000000000010d98 0 SECTION LOCAL DEFAULT 18 .init_array - 19: 0000000000010da0 0 SECTION LOCAL DEFAULT 19 .fini_array - 20: 0000000000010da8 0 SECTION LOCAL DEFAULT 20 .dynamic - 21: 0000000000010f98 0 SECTION LOCAL DEFAULT 21 .got - 22: 0000000000011000 0 SECTION LOCAL DEFAULT 22 .data - 23: 0000000000011010 0 SECTION LOCAL DEFAULT 23 .bss - 24: 0000000000000000 0 SECTION LOCAL DEFAULT 24 .comment - 25: 0000000000000000 0 FILE LOCAL DEFAULT ABS Scrt1.o - 26: 0000000000000278 0 NOTYPE LOCAL DEFAULT 3 $d - 27: 0000000000000278 32 OBJECT LOCAL DEFAULT 3 __abi_tag - 28: 0000000000000600 0 NOTYPE LOCAL DEFAULT 13 $x - 29: 00000000000007c4 0 NOTYPE LOCAL DEFAULT 17 $d - 30: 000000000000076c 0 NOTYPE LOCAL DEFAULT 15 $d - 31: 0000000000000000 0 FILE LOCAL DEFAULT ABS crti.o - 32: 0000000000000634 0 NOTYPE LOCAL DEFAULT 13 $x - 33: 0000000000000634 20 FUNC LOCAL DEFAULT 13 call_weak_fn - 34: 0000000000000580 0 NOTYPE LOCAL DEFAULT 11 $x - 35: 0000000000000758 0 NOTYPE LOCAL DEFAULT 14 $x - 36: 0000000000000000 0 FILE LOCAL DEFAULT ABS crtn.o - 37: 0000000000000590 0 NOTYPE LOCAL DEFAULT 11 $x - 38: 0000000000000764 0 NOTYPE LOCAL DEFAULT 14 $x - 39: 0000000000000000 0 FILE LOCAL DEFAULT ABS crtstuff.c - 40: 0000000000000650 0 NOTYPE LOCAL DEFAULT 13 $x - 41: 0000000000000650 0 FUNC LOCAL DEFAULT 13 deregister_tm_clones - 42: 0000000000000680 0 FUNC LOCAL DEFAULT 13 register_tm_clones - 43: 0000000000011008 0 NOTYPE LOCAL DEFAULT 22 $d - 44: 00000000000006c0 0 FUNC LOCAL DEFAULT 13 __do_global_dtors_aux - 45: 0000000000011010 1 OBJECT LOCAL DEFAULT 23 completed.0 - 46: 0000000000010da0 0 NOTYPE LOCAL DEFAULT 19 $d - 47: 0000000000010da0 0 OBJECT LOCAL DEFAULT 19 __do_global_dtors_aux_fini_array_entry - 48: 0000000000000710 0 FUNC LOCAL DEFAULT 13 frame_dummy - 49: 0000000000010d98 0 NOTYPE LOCAL DEFAULT 18 $d - 50: 0000000000010d98 0 OBJECT LOCAL DEFAULT 18 __frame_dummy_init_array_entry - 51: 00000000000007d8 0 NOTYPE LOCAL DEFAULT 17 $d - 52: 0000000000011010 0 NOTYPE LOCAL DEFAULT 23 $d - 53: 0000000000000000 0 FILE LOCAL DEFAULT ABS basic_lock_read.c - 54: 0000000000011014 0 NOTYPE LOCAL DEFAULT 23 $d - 55: 0000000000000714 0 NOTYPE LOCAL DEFAULT 13 $x - 56: 0000000000000838 0 NOTYPE LOCAL DEFAULT 17 $d - 57: 0000000000000000 0 FILE LOCAL DEFAULT ABS crtstuff.c - 58: 0000000000000850 0 NOTYPE LOCAL DEFAULT 17 $d - 59: 0000000000000850 0 OBJECT LOCAL DEFAULT 17 __FRAME_END__ - 60: 0000000000000000 0 FILE LOCAL DEFAULT ABS - 61: 0000000000010da8 0 OBJECT LOCAL DEFAULT ABS _DYNAMIC - 62: 0000000000000770 0 NOTYPE LOCAL DEFAULT 16 __GNU_EH_FRAME_HDR - 63: 0000000000010fd0 0 OBJECT LOCAL DEFAULT ABS _GLOBAL_OFFSET_TABLE_ - 64: 00000000000005a0 0 NOTYPE LOCAL DEFAULT 12 $x - 65: 0000000000000000 0 FUNC GLOBAL DEFAULT UND __libc_start_main@GLIBC_2.34 - 66: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_deregisterTMCloneTable - 67: 0000000000011000 0 NOTYPE WEAK DEFAULT 22 data_start - 68: 0000000000011010 0 NOTYPE GLOBAL DEFAULT 23 __bss_start__ - 69: 0000000000000000 0 FUNC WEAK DEFAULT UND __cxa_finalize@GLIBC_2.17 - 70: 0000000000011020 0 NOTYPE GLOBAL DEFAULT 23 _bss_end__ - 71: 0000000000011010 0 NOTYPE GLOBAL DEFAULT 22 _edata - 72: 0000000000011018 4 OBJECT GLOBAL DEFAULT 23 z - 73: 0000000000011014 4 OBJECT GLOBAL DEFAULT 23 x - 74: 0000000000000758 0 FUNC GLOBAL HIDDEN 14 _fini - 75: 0000000000011020 0 NOTYPE GLOBAL DEFAULT 23 __bss_end__ - 76: 0000000000011000 0 NOTYPE GLOBAL DEFAULT 22 __data_start - 77: 0000000000000000 0 NOTYPE WEAK DEFAULT UND __gmon_start__ - 78: 0000000000011008 0 OBJECT GLOBAL HIDDEN 22 __dso_handle - 79: 0000000000000000 0 FUNC GLOBAL DEFAULT UND abort@GLIBC_2.17 - 80: 000000000000076c 4 OBJECT GLOBAL DEFAULT 15 _IO_stdin_used - 81: 0000000000011020 0 NOTYPE GLOBAL DEFAULT 23 _end - 82: 0000000000000600 52 FUNC GLOBAL DEFAULT 13 _start - 83: 0000000000011020 0 NOTYPE GLOBAL DEFAULT 23 __end__ - 84: 0000000000011010 0 NOTYPE GLOBAL DEFAULT 23 __bss_start - 85: 0000000000000714 68 FUNC GLOBAL DEFAULT 13 main - 86: 0000000000011010 0 OBJECT GLOBAL HIDDEN 22 __TMC_END__ - 87: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_registerTMCloneTable - 88: 0000000000000580 0 FUNC GLOBAL HIDDEN 11 _init diff --git a/src/test/correct/basic_lock_read/gcc/basic_lock_read_gtirb.expected b/src/test/correct/basic_lock_read/gcc/basic_lock_read_gtirb.expected index 35c6279ce..cd28dda2c 100644 --- a/src/test/correct/basic_lock_read/gcc/basic_lock_read_gtirb.expected +++ b/src/test/correct/basic_lock_read/gcc/basic_lock_read_gtirb.expected @@ -85,7 +85,7 @@ implementation {:extern} guarantee_reflexive() assert (memory_load32_le(mem, $z_addr) == memory_load32_le(mem, $z_addr)); } -procedure main_1812(); +procedure main(); modifies CF, Gamma_CF, Gamma_NF, Gamma_R0, Gamma_R31, Gamma_VF, Gamma_ZF, Gamma_mem, Gamma_stack, NF, R0, R31, VF, ZF, mem, stack; free requires (memory_load64_le(mem, 69632bv64) == 0bv64); free requires (memory_load64_le(mem, 69640bv64) == 69640bv64); @@ -103,68 +103,68 @@ procedure main_1812(); free ensures (memory_load64_le(mem, 69616bv64) == 1812bv64); free ensures (memory_load64_le(mem, 69640bv64) == 69640bv64); -implementation main_1812() +implementation main() { - var Cse0__5_0_5: bv32; - var Gamma_Cse0__5_0_5: bool; - var Gamma_load1: bool; - var Gamma_load2: bool; - var Gamma_load3: bool; - var load1: bv32; - var load2: bv32; - var load3: bv32; + var $load1: bv32; + var $load2: bv32; + var $load3: bv32; + var Cse0__5$0$5: bv32; + var Gamma_$load1: bool; + var Gamma_$load2: bool; + var Gamma_$load3: bool; + var Gamma_Cse0__5$0$5: bool; var z_old: bv32; - main_1812__0__CCtRsxbhQvGXpnMRl7qS2g: - assume {:captureState "main_1812__0__CCtRsxbhQvGXpnMRl7qS2g"} true; + $main$__0__$CCtRsxbhQvGXpnMRl7qS2g: + assume {:captureState "$main$__0__$CCtRsxbhQvGXpnMRl7qS2g"} true; R31, Gamma_R31 := bvadd64(R31, 18446744073709551600bv64), Gamma_R31; stack, Gamma_stack := memory_store32_le(stack, bvadd64(R31, 12bv64), 0bv32), gamma_store32(Gamma_stack, bvadd64(R31, 12bv64), true); - assume {:captureState "1816_0"} true; + assume {:captureState "1816$0"} true; R0, Gamma_R0 := 69632bv64, true; R0, Gamma_R0 := bvadd64(R0, 24bv64), Gamma_R0; call rely(); - load1, Gamma_load1 := memory_load32_le(mem, R0), (gamma_load32(Gamma_mem, R0) || L(mem, R0)); - R0, Gamma_R0 := zero_extend32_32(load1), Gamma_load1; - Cse0__5_0_5, Gamma_Cse0__5_0_5 := bvadd32(R0[32:0], 0bv32), Gamma_R0; - VF, Gamma_VF := bvnot1(bvcomp32(Cse0__5_0_5, Cse0__5_0_5)), Gamma_Cse0__5_0_5; - CF, Gamma_CF := bvnot1(bvcomp33(zero_extend1_32(Cse0__5_0_5), bvadd33(zero_extend1_32(R0[32:0]), 4294967296bv33))), (Gamma_R0 && Gamma_Cse0__5_0_5); - ZF, Gamma_ZF := bvcomp32(Cse0__5_0_5, 0bv32), Gamma_Cse0__5_0_5; - NF, Gamma_NF := Cse0__5_0_5[32:31], Gamma_Cse0__5_0_5; + $load1, Gamma_$load1 := memory_load32_le(mem, R0), (gamma_load32(Gamma_mem, R0) || L(mem, R0)); + R0, Gamma_R0 := zero_extend32_32($load1), Gamma_$load1; + Cse0__5$0$5, Gamma_Cse0__5$0$5 := bvadd32(R0[32:0], 0bv32), Gamma_R0; + VF, Gamma_VF := bvnot1(bvcomp32(Cse0__5$0$5, Cse0__5$0$5)), Gamma_Cse0__5$0$5; + CF, Gamma_CF := bvnot1(bvcomp33(zero_extend1_32(Cse0__5$0$5), bvadd33(zero_extend1_32(R0[32:0]), 4294967296bv33))), (Gamma_R0 && Gamma_Cse0__5$0$5); + ZF, Gamma_ZF := bvcomp32(Cse0__5$0$5, 0bv32), Gamma_Cse0__5$0$5; + NF, Gamma_NF := Cse0__5$0$5[32:31], Gamma_Cse0__5$0$5; assert Gamma_ZF; - goto main_1812__0__CCtRsxbhQvGXpnMRl7qS2g_goto_main_1812__2__4eAAAye2Sq21c9DcyPaaBA, main_1812__0__CCtRsxbhQvGXpnMRl7qS2g_goto_main_1812__1__h_~YJv9RRmGHTPS4vJZEVA; - main_1812__0__CCtRsxbhQvGXpnMRl7qS2g_goto_main_1812__1__h_~YJv9RRmGHTPS4vJZEVA: - assume {:captureState "main_1812__0__CCtRsxbhQvGXpnMRl7qS2g_goto_main_1812__1__h_~YJv9RRmGHTPS4vJZEVA"} true; - assume (!(!(ZF == 1bv1))); + goto $main$__0__$CCtRsxbhQvGXpnMRl7qS2g_goto_$main$__2__$4eAAAye2Sq21c9DcyPaaBA, $main$__0__$CCtRsxbhQvGXpnMRl7qS2g_goto_$main$__1__$h_~YJv9RRmGHTPS4vJZEVA; + $main$__1__$h_~YJv9RRmGHTPS4vJZEVA: + assume {:captureState "$main$__1__$h_~YJv9RRmGHTPS4vJZEVA"} true; R0, Gamma_R0 := 69632bv64, true; R0, Gamma_R0 := bvadd64(R0, 20bv64), Gamma_R0; call rely(); - z_old := memory_load32_le(mem, $z_addr); assert (L(mem, R0) ==> true); + z_old := memory_load32_le(mem, $z_addr); mem, Gamma_mem := memory_store32_le(mem, R0, 0bv32), gamma_store32(Gamma_mem, R0, true); assert (memory_load32_le(mem, $z_addr) == z_old); - assume {:captureState "1848_0"} true; + assume {:captureState "1848$0"} true; R0, Gamma_R0 := 69632bv64, true; R0, Gamma_R0 := bvadd64(R0, 20bv64), Gamma_R0; call rely(); - load2, Gamma_load2 := memory_load32_le(mem, R0), (gamma_load32(Gamma_mem, R0) || L(mem, R0)); - R0, Gamma_R0 := zero_extend32_32(load2), Gamma_load2; + $load2, Gamma_$load2 := memory_load32_le(mem, R0), (gamma_load32(Gamma_mem, R0) || L(mem, R0)); + R0, Gamma_R0 := zero_extend32_32($load2), Gamma_$load2; stack, Gamma_stack := memory_store32_le(stack, bvadd64(R31, 12bv64), R0[32:0]), gamma_store32(Gamma_stack, bvadd64(R31, 12bv64), Gamma_R0); - assume {:captureState "1864_0"} true; - goto main_1812__1__h_~YJv9RRmGHTPS4vJZEVA; - main_1812__1__h_~YJv9RRmGHTPS4vJZEVA: - assume {:captureState "main_1812__1__h_~YJv9RRmGHTPS4vJZEVA"} true; - goto main_1812__2__4eAAAye2Sq21c9DcyPaaBA; - main_1812__0__CCtRsxbhQvGXpnMRl7qS2g_goto_main_1812__2__4eAAAye2Sq21c9DcyPaaBA: - assume {:captureState "main_1812__0__CCtRsxbhQvGXpnMRl7qS2g_goto_main_1812__2__4eAAAye2Sq21c9DcyPaaBA"} true; - assume (!(ZF == 1bv1)); - goto main_1812__2__4eAAAye2Sq21c9DcyPaaBA; - main_1812__2__4eAAAye2Sq21c9DcyPaaBA: - assume {:captureState "main_1812__2__4eAAAye2Sq21c9DcyPaaBA"} true; - load3, Gamma_load3 := memory_load32_le(stack, bvadd64(R31, 12bv64)), gamma_load32(Gamma_stack, bvadd64(R31, 12bv64)); - R0, Gamma_R0 := zero_extend32_32(load3), Gamma_load3; + assume {:captureState "1864$0"} true; + goto $main$__2__$4eAAAye2Sq21c9DcyPaaBA; + $main$__2__$4eAAAye2Sq21c9DcyPaaBA: + assume {:captureState "$main$__2__$4eAAAye2Sq21c9DcyPaaBA"} true; + $load3, Gamma_$load3 := memory_load32_le(stack, bvadd64(R31, 12bv64)), gamma_load32(Gamma_stack, bvadd64(R31, 12bv64)); + R0, Gamma_R0 := zero_extend32_32($load3), Gamma_$load3; R31, Gamma_R31 := bvadd64(R31, 16bv64), Gamma_R31; - goto main_1812_basil_return; - main_1812_basil_return: - assume {:captureState "main_1812_basil_return"} true; + goto main_basil_return; + $main$__0__$CCtRsxbhQvGXpnMRl7qS2g_goto_$main$__2__$4eAAAye2Sq21c9DcyPaaBA: + assume {:captureState "$main$__0__$CCtRsxbhQvGXpnMRl7qS2g_goto_$main$__2__$4eAAAye2Sq21c9DcyPaaBA"} true; + assume (!(ZF == 1bv1)); + goto $main$__2__$4eAAAye2Sq21c9DcyPaaBA; + $main$__0__$CCtRsxbhQvGXpnMRl7qS2g_goto_$main$__1__$h_~YJv9RRmGHTPS4vJZEVA: + assume {:captureState "$main$__0__$CCtRsxbhQvGXpnMRl7qS2g_goto_$main$__1__$h_~YJv9RRmGHTPS4vJZEVA"} true; + assume (!(!(ZF == 1bv1))); + goto $main$__1__$h_~YJv9RRmGHTPS4vJZEVA; + main_basil_return: + assume {:captureState "main_basil_return"} true; return; } diff --git a/src/test/correct/basic_lock_read/gcc_O2/basic_lock_read.adt b/src/test/correct/basic_lock_read/gcc_O2/basic_lock_read.adt deleted file mode 100644 index 012b3d477..000000000 --- a/src/test/correct/basic_lock_read/gcc_O2/basic_lock_read.adt +++ /dev/null @@ -1,503 +0,0 @@ -Project(Attrs([Attr("filename","\"gcc_O2/basic_lock_read.out\""), -Attr("image-specification","(declare abi (name str))\n(declare arch (name str))\n(declare base-address (addr int))\n(declare bias (off int))\n(declare bits (size int))\n(declare code-region (addr int) (size int) (off int))\n(declare code-start (addr int))\n(declare entry-point (addr int))\n(declare external-reference (addr int) (name str))\n(declare format (name str))\n(declare is-executable (flag bool))\n(declare is-little-endian (flag bool))\n(declare llvm:base-address (addr int))\n(declare llvm:code-entry (name str) (off int) (size int))\n(declare llvm:coff-import-library (name str))\n(declare llvm:coff-virtual-section-header (name str) (addr int) (size int))\n(declare llvm:elf-program-header (name str) (off int) (size int))\n(declare llvm:elf-program-header-flags (name str) (ld bool) (r bool) \n (w bool) (x bool))\n(declare llvm:elf-virtual-program-header (name str) (addr int) (size int))\n(declare llvm:entry-point (addr int))\n(declare llvm:macho-symbol (name str) (value int))\n(declare llvm:name-reference (at int) (name str))\n(declare llvm:relocation (at int) (addr int))\n(declare llvm:section-entry (name str) (addr int) (size int) (off int))\n(declare llvm:section-flags (name str) (r bool) (w bool) (x bool))\n(declare llvm:segment-command (name str) (off int) (size int))\n(declare llvm:segment-command-flags (name str) (r bool) (w bool) (x bool))\n(declare llvm:symbol-entry (name str) (addr int) (size int) (off int)\n (value int))\n(declare llvm:virtual-segment-command (name str) (addr int) (size int))\n(declare mapped (addr int) (size int) (off int))\n(declare named-region (addr int) (size int) (name str))\n(declare named-symbol (addr int) (name str))\n(declare require (name str))\n(declare section (addr int) (size int))\n(declare segment (addr int) (size int) (r bool) (w bool) (x bool))\n(declare subarch (name str))\n(declare symbol-chunk (addr int) (size int) (root int))\n(declare symbol-value (addr int) (value int))\n(declare system (name str))\n(declare vendor (name str))\n\n(abi unknown)\n(arch aarch64)\n(base-address 0)\n(bias 0)\n(bits 64)\n(code-region 1876 20 1876)\n(code-region 1536 340 1536)\n(code-region 1440 96 1440)\n(code-region 1408 24 1408)\n(code-start 1652)\n(code-start 1600)\n(code-start 1536)\n(entry-point 1600)\n(external-reference 69592 _ITM_deregisterTMCloneTable)\n(external-reference 69600 __cxa_finalize)\n(external-reference 69608 __gmon_start__)\n(external-reference 69624 _ITM_registerTMCloneTable)\n(external-reference 69552 __libc_start_main)\n(external-reference 69560 __cxa_finalize)\n(external-reference 69568 __gmon_start__)\n(external-reference 69576 abort)\n(format elf)\n(is-executable true)\n(is-little-endian true)\n(llvm:base-address 0)\n(llvm:code-entry abort 0 0)\n(llvm:code-entry __cxa_finalize 0 0)\n(llvm:code-entry __libc_start_main 0 0)\n(llvm:code-entry _init 1408 0)\n(llvm:code-entry main 1536 28)\n(llvm:code-entry _start 1600 52)\n(llvm:code-entry abort@GLIBC_2.17 0 0)\n(llvm:code-entry _fini 1876 0)\n(llvm:code-entry __cxa_finalize@GLIBC_2.17 0 0)\n(llvm:code-entry __libc_start_main@GLIBC_2.34 0 0)\n(llvm:code-entry frame_dummy 1872 0)\n(llvm:code-entry __do_global_dtors_aux 1792 0)\n(llvm:code-entry register_tm_clones 1728 0)\n(llvm:code-entry deregister_tm_clones 1680 0)\n(llvm:code-entry call_weak_fn 1652 20)\n(llvm:code-entry .fini 1876 20)\n(llvm:code-entry .text 1536 340)\n(llvm:code-entry .plt 1440 96)\n(llvm:code-entry .init 1408 24)\n(llvm:elf-program-header 08 3480 616)\n(llvm:elf-program-header 07 0 0)\n(llvm:elf-program-header 06 1900 60)\n(llvm:elf-program-header 05 596 68)\n(llvm:elf-program-header 04 3496 496)\n(llvm:elf-program-header 03 3480 632)\n(llvm:elf-program-header 02 0 2120)\n(llvm:elf-program-header 01 568 27)\n(llvm:elf-program-header 00 64 504)\n(llvm:elf-program-header-flags 08 false true false false)\n(llvm:elf-program-header-flags 07 false true true false)\n(llvm:elf-program-header-flags 06 false true false false)\n(llvm:elf-program-header-flags 05 false true false false)\n(llvm:elf-program-header-flags 04 false true true false)\n(llvm:elf-program-header-flags 03 true true true false)\n(llvm:elf-program-header-flags 02 true true false true)\n(llvm:elf-program-header-flags 01 false true false false)\n(llvm:elf-program-header-flags 00 false true false false)\n(llvm:elf-virtual-program-header 08 69016 616)\n(llvm:elf-virtual-program-header 07 0 0)\n(llvm:elf-virtual-program-header 06 1900 60)\n(llvm:elf-virtual-program-header 05 596 68)\n(llvm:elf-virtual-program-header 04 69032 496)\n(llvm:elf-virtual-program-header 03 69016 648)\n(llvm:elf-virtual-program-header 02 0 2120)\n(llvm:elf-virtual-program-header 01 568 27)\n(llvm:elf-virtual-program-header 00 64 504)\n(llvm:entry-point 1600)\n(llvm:name-reference 69576 abort)\n(llvm:name-reference 69568 __gmon_start__)\n(llvm:name-reference 69560 __cxa_finalize)\n(llvm:name-reference 69552 __libc_start_main)\n(llvm:name-reference 69624 _ITM_registerTMCloneTable)\n(llvm:name-reference 69608 __gmon_start__)\n(llvm:name-reference 69600 __cxa_finalize)\n(llvm:name-reference 69592 _ITM_deregisterTMCloneTable)\n(llvm:section-entry .shstrtab 0 250 6849)\n(llvm:section-entry .strtab 0 553 6296)\n(llvm:section-entry .symtab 0 2136 4160)\n(llvm:section-entry .comment 0 43 4112)\n(llvm:section-entry .bss 69648 16 4112)\n(llvm:section-entry .data 69632 16 4096)\n(llvm:section-entry .got 69528 104 3992)\n(llvm:section-entry .dynamic 69032 496 3496)\n(llvm:section-entry .fini_array 69024 8 3488)\n(llvm:section-entry .init_array 69016 8 3480)\n(llvm:section-entry .eh_frame 1960 160 1960)\n(llvm:section-entry .eh_frame_hdr 1900 60 1900)\n(llvm:section-entry .rodata 1896 4 1896)\n(llvm:section-entry .fini 1876 20 1876)\n(llvm:section-entry .text 1536 340 1536)\n(llvm:section-entry .plt 1440 96 1440)\n(llvm:section-entry .init 1408 24 1408)\n(llvm:section-entry .rela.plt 1312 96 1312)\n(llvm:section-entry .rela.dyn 1120 192 1120)\n(llvm:section-entry .gnu.version_r 1072 48 1072)\n(llvm:section-entry .gnu.version 1054 18 1054)\n(llvm:section-entry .dynstr 912 141 912)\n(llvm:section-entry .dynsym 696 216 696)\n(llvm:section-entry .gnu.hash 664 28 664)\n(llvm:section-entry .note.ABI-tag 632 32 632)\n(llvm:section-entry .note.gnu.build-id 596 36 596)\n(llvm:section-entry .interp 568 27 568)\n(llvm:section-flags .shstrtab true false false)\n(llvm:section-flags .strtab true false false)\n(llvm:section-flags .symtab true false false)\n(llvm:section-flags .comment true false false)\n(llvm:section-flags .bss true true false)\n(llvm:section-flags .data true true false)\n(llvm:section-flags .got true true false)\n(llvm:section-flags .dynamic true true false)\n(llvm:section-flags .fini_array true true false)\n(llvm:section-flags .init_array true true false)\n(llvm:section-flags .eh_frame true false false)\n(llvm:section-flags .eh_frame_hdr true false false)\n(llvm:section-flags .rodata true false false)\n(llvm:section-flags .fini true false true)\n(llvm:section-flags .text true false true)\n(llvm:section-flags .plt true false true)\n(llvm:section-flags .init true false true)\n(llvm:section-flags .rela.plt true false false)\n(llvm:section-flags .rela.dyn true false false)\n(llvm:section-flags .gnu.version_r true false false)\n(llvm:section-flags .gnu.version true false false)\n(llvm:section-flags .dynstr true false false)\n(llvm:section-flags .dynsym true false false)\n(llvm:section-flags .gnu.hash true false false)\n(llvm:section-flags .note.ABI-tag true false false)\n(llvm:section-flags .note.gnu.build-id true false false)\n(llvm:section-flags .interp true false false)\n(llvm:symbol-entry abort 0 0 0 0)\n(llvm:symbol-entry __cxa_finalize 0 0 0 0)\n(llvm:symbol-entry __libc_start_main 0 0 0 0)\n(llvm:symbol-entry _init 1408 0 1408 1408)\n(llvm:symbol-entry main 1536 28 1536 1536)\n(llvm:symbol-entry _start 1600 52 1600 1600)\n(llvm:symbol-entry abort@GLIBC_2.17 0 0 0 0)\n(llvm:symbol-entry _fini 1876 0 1876 1876)\n(llvm:symbol-entry __cxa_finalize@GLIBC_2.17 0 0 0 0)\n(llvm:symbol-entry __libc_start_main@GLIBC_2.34 0 0 0 0)\n(llvm:symbol-entry frame_dummy 1872 0 1872 1872)\n(llvm:symbol-entry __do_global_dtors_aux 1792 0 1792 1792)\n(llvm:symbol-entry register_tm_clones 1728 0 1728 1728)\n(llvm:symbol-entry deregister_tm_clones 1680 0 1680 1680)\n(llvm:symbol-entry call_weak_fn 1652 20 1652 1652)\n(mapped 0 2120 0)\n(mapped 69016 632 3480)\n(named-region 0 2120 02)\n(named-region 69016 648 03)\n(named-region 568 27 .interp)\n(named-region 596 36 .note.gnu.build-id)\n(named-region 632 32 .note.ABI-tag)\n(named-region 664 28 .gnu.hash)\n(named-region 696 216 .dynsym)\n(named-region 912 141 .dynstr)\n(named-region 1054 18 .gnu.version)\n(named-region 1072 48 .gnu.version_r)\n(named-region 1120 192 .rela.dyn)\n(named-region 1312 96 .rela.plt)\n(named-region 1408 24 .init)\n(named-region 1440 96 .plt)\n(named-region 1536 340 .text)\n(named-region 1876 20 .fini)\n(named-region 1896 4 .rodata)\n(named-region 1900 60 .eh_frame_hdr)\n(named-region 1960 160 .eh_frame)\n(named-region 69016 8 .init_array)\n(named-region 69024 8 .fini_array)\n(named-region 69032 496 .dynamic)\n(named-region 69528 104 .got)\n(named-region 69632 16 .data)\n(named-region 69648 16 .bss)\n(named-region 0 43 .comment)\n(named-region 0 2136 .symtab)\n(named-region 0 553 .strtab)\n(named-region 0 250 .shstrtab)\n(named-symbol 1652 call_weak_fn)\n(named-symbol 1680 deregister_tm_clones)\n(named-symbol 1728 register_tm_clones)\n(named-symbol 1792 __do_global_dtors_aux)\n(named-symbol 1872 frame_dummy)\n(named-symbol 0 __libc_start_main@GLIBC_2.34)\n(named-symbol 0 __cxa_finalize@GLIBC_2.17)\n(named-symbol 1876 _fini)\n(named-symbol 0 abort@GLIBC_2.17)\n(named-symbol 1600 _start)\n(named-symbol 1536 main)\n(named-symbol 1408 _init)\n(named-symbol 0 __libc_start_main)\n(named-symbol 0 __cxa_finalize)\n(named-symbol 0 abort)\n(require libc.so.6)\n(section 568 27)\n(section 596 36)\n(section 632 32)\n(section 664 28)\n(section 696 216)\n(section 912 141)\n(section 1054 18)\n(section 1072 48)\n(section 1120 192)\n(section 1312 96)\n(section 1408 24)\n(section 1440 96)\n(section 1536 340)\n(section 1876 20)\n(section 1896 4)\n(section 1900 60)\n(section 1960 160)\n(section 69016 8)\n(section 69024 8)\n(section 69032 496)\n(section 69528 104)\n(section 69632 16)\n(section 69648 16)\n(section 0 43)\n(section 0 2136)\n(section 0 553)\n(section 0 250)\n(segment 0 2120 true false true)\n(segment 69016 648 true true false)\n(subarch v8)\n(symbol-chunk 1652 20 1652)\n(symbol-chunk 1600 52 1600)\n(symbol-chunk 1536 28 1536)\n(symbol-value 1652 1652)\n(symbol-value 1680 1680)\n(symbol-value 1728 1728)\n(symbol-value 1792 1792)\n(symbol-value 1872 1872)\n(symbol-value 1876 1876)\n(symbol-value 1600 1600)\n(symbol-value 1536 1536)\n(symbol-value 1408 1408)\n(symbol-value 0 0)\n(system \"\")\n(vendor \"\")\n"), -Attr("abi-name","\"aarch64-linux-gnu-elf\"")]), -Sections([Section(".shstrtab", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x40\x06\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xc0\x1b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x38\x00\x09\x00\x40\x00\x1c\x00\x1b\x00\x06\x00\x00\x00\x04\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x04\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x48\x08\x00\x00\x00\x00\x00\x00\x48\x08\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x01\x00\x00\x00\x06\x00\x00\x00\x98\x0d\x00\x00\x00\x00\x00\x00\x98\x0d"), -Section(".strtab", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x40\x06\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xc0\x1b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x38\x00\x09\x00\x40\x00\x1c\x00\x1b\x00\x06\x00\x00\x00\x04\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x04\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x48\x08\x00\x00\x00\x00\x00\x00\x48\x08\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x01\x00\x00\x00\x06\x00\x00\x00\x98\x0d\x00\x00\x00\x00\x00\x00\x98\x0d\x01\x00\x00\x00\x00\x00\x98\x0d\x01\x00\x00\x00\x00\x00\x78\x02\x00\x00\x00\x00\x00\x00\x88\x02\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x02\x00\x00\x00\x06\x00\x00\x00\xa8\x0d\x00\x00\x00\x00\x00\x00\xa8\x0d\x01\x00\x00\x00\x00\x00\xa8\x0d\x01\x00\x00\x00\x00\x00\xf0\x01\x00\x00\x00\x00\x00\x00\xf0\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x04\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x50\xe5\x74\x64\x04\x00\x00\x00\x6c\x07\x00\x00\x00\x00\x00\x00\x6c\x07\x00\x00\x00\x00\x00\x00\x6c\x07\x00\x00\x00\x00\x00\x00\x3c\x00\x00\x00\x00\x00\x00\x00\x3c\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x51\xe5\x74\x64\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x52\xe5\x74\x64\x04\x00\x00\x00\x98\x0d\x00\x00\x00\x00\x00\x00\x98\x0d\x01\x00\x00\x00\x00\x00\x98\x0d\x01\x00\x00\x00\x00\x00\x68\x02\x00\x00\x00\x00\x00\x00\x68"), -Section(".comment", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x40\x06\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xc0\x1b\x00"), -Section(".interp", 0x238, "\x2f\x6c\x69\x62\x2f\x6c\x64\x2d\x6c\x69\x6e\x75\x78\x2d\x61\x61\x72\x63\x68\x36\x34\x2e\x73\x6f\x2e\x31\x00"), -Section(".note.gnu.build-id", 0x254, "\x04\x00\x00\x00\x14\x00\x00\x00\x03\x00\x00\x00\x47\x4e\x55\x00\x82\x96\x1a\xfc\xbd\x77\x5b\x35\xa7\x54\x45\x6b\xba\x9d\x56\xdf\x37\x21\x06\xcb"), -Section(".note.ABI-tag", 0x278, "\x04\x00\x00\x00\x10\x00\x00\x00\x01\x00\x00\x00\x47\x4e\x55\x00\x00\x00\x00\x00\x03\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00"), -Section(".gnu.hash", 0x298, "\x01\x00\x00\x00\x01\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".dynsym", 0x2B8, "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x0b\x00\x80\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x16\x00\x00\x10\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x48\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x22\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x22\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x73\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".dynstr", 0x390, "\x00\x5f\x5f\x63\x78\x61\x5f\x66\x69\x6e\x61\x6c\x69\x7a\x65\x00\x5f\x5f\x6c\x69\x62\x63\x5f\x73\x74\x61\x72\x74\x5f\x6d\x61\x69\x6e\x00\x61\x62\x6f\x72\x74\x00\x6c\x69\x62\x63\x2e\x73\x6f\x2e\x36\x00\x47\x4c\x49\x42\x43\x5f\x32\x2e\x31\x37\x00\x47\x4c\x49\x42\x43\x5f\x32\x2e\x33\x34\x00\x5f\x49\x54\x4d\x5f\x64\x65\x72\x65\x67\x69\x73\x74\x65\x72\x54\x4d\x43\x6c\x6f\x6e\x65\x54\x61\x62\x6c\x65\x00\x5f\x5f\x67\x6d\x6f\x6e\x5f\x73\x74\x61\x72\x74\x5f\x5f\x00\x5f\x49\x54\x4d\x5f\x72\x65\x67\x69\x73\x74\x65\x72\x54\x4d\x43\x6c\x6f\x6e\x65\x54\x61\x62\x6c\x65\x00"), -Section(".gnu.version", 0x41E, "\x00\x00\x00\x00\x00\x00\x02\x00\x01\x00\x03\x00\x01\x00\x03\x00\x01\x00"), -Section(".gnu.version_r", 0x430, "\x01\x00\x02\x00\x28\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x97\x91\x96\x06\x00\x00\x03\x00\x32\x00\x00\x00\x10\x00\x00\x00\xb4\x91\x96\x06\x00\x00\x02\x00\x3d\x00\x00\x00\x00\x00\x00\x00"), -Section(".rela.dyn", 0x460, "\x98\x0d\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x50\x07\x00\x00\x00\x00\x00\x00\xa0\x0d\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\xf0\x0f\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x00\x06\x00\x00\x00\x00\x00\x00\x08\x10\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x08\x10\x01\x00\x00\x00\x00\x00\xd8\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe0\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe8\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xf8\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".rela.plt", 0x520, "\xb0\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xb8\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xc0\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xc8\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".init", 0x580, "\x1f\x20\x03\xd5\xfd\x7b\xbf\xa9\xfd\x03\x00\x91\x3a\x00\x00\x94\xfd\x7b\xc1\xa8\xc0\x03\x5f\xd6"), -Section(".plt", 0x5A0, "\xf0\x7b\xbf\xa9\x90\x00\x00\x90\x11\xd6\x47\xf9\x10\xa2\x3e\x91\x20\x02\x1f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x90\x00\x00\x90\x11\xda\x47\xf9\x10\xc2\x3e\x91\x20\x02\x1f\xd6\x90\x00\x00\x90\x11\xde\x47\xf9\x10\xe2\x3e\x91\x20\x02\x1f\xd6\x90\x00\x00\x90\x11\xe2\x47\xf9\x10\x02\x3f\x91\x20\x02\x1f\xd6\x90\x00\x00\x90\x11\xe6\x47\xf9\x10\x22\x3f\x91\x20\x02\x1f\xd6"), -Section(".fini", 0x754, "\x1f\x20\x03\xd5\xfd\x7b\xbf\xa9\xfd\x03\x00\x91\xfd\x7b\xc1\xa8\xc0\x03\x5f\xd6"), -Section(".rodata", 0x768, "\x01\x00\x02\x00"), -Section(".eh_frame_hdr", 0x76C, "\x01\x1b\x03\x3b\x38\x00\x00\x00\x06\x00\x00\x00\x94\xfe\xff\xff\xc4\x00\x00\x00\xd4\xfe\xff\xff\x50\x00\x00\x00\x24\xff\xff\xff\x64\x00\x00\x00\x54\xff\xff\xff\x78\x00\x00\x00\x94\xff\xff\xff\x8c\x00\x00\x00\xe4\xff\xff\xff\xb0\x00\x00\x00"), -Section(".eh_frame", 0x7A8, "\x10\x00\x00\x00\x00\x00\x00\x00\x01\x7a\x52\x00\x04\x78\x1e\x01\x1b\x0c\x1f\x00\x10\x00\x00\x00\x18\x00\x00\x00\x7c\xfe\xff\xff\x34\x00\x00\x00\x00\x41\x07\x1e\x10\x00\x00\x00\x2c\x00\x00\x00\xb8\xfe\xff\xff\x30\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x40\x00\x00\x00\xd4\xfe\xff\xff\x3c\x00\x00\x00\x00\x00\x00\x00\x20\x00\x00\x00\x54\x00\x00\x00\x00\xff\xff\xff\x48\x00\x00\x00\x00\x41\x0e\x20\x9d\x04\x9e\x03\x42\x93\x02\x4e\xde\xdd\xd3\x0e\x00\x00\x00\x00\x10\x00\x00\x00\x78\x00\x00\x00\x2c\xff\xff\xff\x04\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x8c\x00\x00\x00\xc8\xfd\xff\xff\x1c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".fini_array", 0x10DA0, "\x00\x07\x00\x00\x00\x00\x00\x00"), -Section(".dynamic", 0x10DA8, "\x01\x00\x00\x00\x00\x00\x00\x00\x28\x00\x00\x00\x00\x00\x00\x00\x0c\x00\x00\x00\x00\x00\x00\x00\x80\x05\x00\x00\x00\x00\x00\x00\x0d\x00\x00\x00\x00\x00\x00\x00\x54\x07\x00\x00\x00\x00\x00\x00\x19\x00\x00\x00\x00\x00\x00\x00\x98\x0d\x01\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x1a\x00\x00\x00\x00\x00\x00\x00\xa0\x0d\x01\x00\x00\x00\x00\x00\x1c\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\xf5\xfe\xff\x6f\x00\x00\x00\x00\x98\x02\x00\x00\x00\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x90\x03\x00\x00\x00\x00\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\xb8\x02\x00\x00\x00\x00\x00\x00\x0a\x00\x00\x00\x00\x00\x00\x00\x8d\x00\x00\x00\x00\x00\x00\x00\x0b\x00\x00\x00\x00\x00\x00\x00\x18\x00\x00\x00\x00\x00\x00\x00\x15\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x98\x0f\x01\x00\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x60\x00\x00\x00\x00\x00\x00\x00\x14\x00\x00\x00\x00\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x17\x00\x00\x00\x00\x00\x00\x00\x20\x05\x00\x00\x00\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x60\x04\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\xc0\x00\x00\x00\x00\x00\x00\x00\x09\x00\x00\x00\x00\x00\x00\x00\x18\x00\x00\x00\x00\x00\x00\x00\x1e\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\xfb\xff\xff\x6f\x00\x00\x00\x00\x01\x00\x00\x08\x00\x00\x00\x00\xfe\xff\xff\x6f\x00\x00\x00\x00\x30\x04\x00\x00\x00\x00\x00\x00\xff\xff\xff\x6f\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\xf0\xff\xff\x6f\x00\x00\x00\x00\x1e\x04\x00\x00\x00\x00\x00\x00\xf9\xff\xff\x6f\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".init_array", 0x10D98, "\x50\x07\x00\x00\x00\x00\x00\x00"), -Section(".got", 0x10F98, "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xa0\x05\x00\x00\x00\x00\x00\x00\xa0\x05\x00\x00\x00\x00\x00\x00\xa0\x05\x00\x00\x00\x00\x00\x00\xa0\x05\x00\x00\x00\x00\x00\x00\xa8\x0d\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".data", 0x11000, "\x00\x00\x00\x00\x00\x00\x00\x00\x08\x10\x01\x00\x00\x00\x00\x00"), -Section(".text", 0x600, "\x80\x00\x00\xb0\x01\x50\x00\x91\x00\x14\x40\xb9\x40\x00\x00\x35\x3f\x04\x00\xb9\x00\x00\x80\x52\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1d\x00\x80\xd2\x1e\x00\x80\xd2\xe5\x03\x00\xaa\xe1\x03\x40\xf9\xe2\x23\x00\x91\xe6\x03\x00\x91\x80\x00\x00\x90\x00\xf8\x47\xf9\x03\x00\x80\xd2\x04\x00\x80\xd2\xd5\xff\xff\x97\xe0\xff\xff\x97\x80\x00\x00\x90\x00\xf4\x47\xf9\x40\x00\x00\xb4\xd8\xff\xff\x17\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x80\x00\x00\xb0\x00\x40\x00\x91\x81\x00\x00\xb0\x21\x40\x00\x91\x3f\x00\x00\xeb\xc0\x00\x00\x54\x81\x00\x00\x90\x21\xec\x47\xf9\x61\x00\x00\xb4\xf0\x03\x01\xaa\x00\x02\x1f\xd6\xc0\x03\x5f\xd6\x80\x00\x00\xb0\x00\x40\x00\x91\x81\x00\x00\xb0\x21\x40\x00\x91\x21\x00\x00\xcb\x22\xfc\x7f\xd3\x41\x0c\x81\x8b\x21\xfc\x41\x93\xc1\x00\x00\xb4\x82\x00\x00\x90\x42\xfc\x47\xf9\x62\x00\x00\xb4\xf0\x03\x02\xaa\x00\x02\x1f\xd6\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\xfd\x7b\xbe\xa9\xfd\x03\x00\x91\xf3\x0b\x00\xf9\x93\x00\x00\xb0\x60\x42\x40\x39\x40\x01\x00\x35\x80\x00\x00\x90\x00\xf0\x47\xf9\x80\x00\x00\xb4\x80\x00\x00\xb0\x00\x04\x40\xf9\xa9\xff\xff\x97\xd8\xff\xff\x97\x20\x00\x80\x52\x60\x42\x00\x39\xf3\x0b\x40\xf9\xfd\x7b\xc2\xa8\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\xdc\xff\xff\x17")]), -Memmap([Annotation(Region(0x0,0x847), Attr("segment","02 0 2120")), -Annotation(Region(0x600,0x61B), Attr("symbol","\"main\"")), -Annotation(Region(0x0,0xF9), Attr("section","\".shstrtab\"")), -Annotation(Region(0x0,0x228), Attr("section","\".strtab\"")), -Annotation(Region(0x0,0x2A), Attr("section","\".comment\"")), -Annotation(Region(0x238,0x252), Attr("section","\".interp\"")), -Annotation(Region(0x254,0x277), Attr("section","\".note.gnu.build-id\"")), -Annotation(Region(0x278,0x297), Attr("section","\".note.ABI-tag\"")), -Annotation(Region(0x298,0x2B3), Attr("section","\".gnu.hash\"")), -Annotation(Region(0x2B8,0x38F), Attr("section","\".dynsym\"")), -Annotation(Region(0x390,0x41C), Attr("section","\".dynstr\"")), -Annotation(Region(0x41E,0x42F), Attr("section","\".gnu.version\"")), -Annotation(Region(0x430,0x45F), Attr("section","\".gnu.version_r\"")), -Annotation(Region(0x460,0x51F), Attr("section","\".rela.dyn\"")), -Annotation(Region(0x520,0x57F), Attr("section","\".rela.plt\"")), -Annotation(Region(0x580,0x597), Attr("section","\".init\"")), -Annotation(Region(0x5A0,0x5FF), Attr("section","\".plt\"")), -Annotation(Region(0x580,0x597), Attr("code-region","()")), -Annotation(Region(0x5A0,0x5FF), Attr("code-region","()")), -Annotation(Region(0x600,0x61B), Attr("symbol-info","main 0x600 28")), -Annotation(Region(0x640,0x673), Attr("symbol","\"_start\"")), -Annotation(Region(0x640,0x673), Attr("symbol-info","_start 0x640 52")), -Annotation(Region(0x674,0x687), Attr("symbol","\"call_weak_fn\"")), -Annotation(Region(0x674,0x687), Attr("symbol-info","call_weak_fn 0x674 20")), -Annotation(Region(0x754,0x767), Attr("section","\".fini\"")), -Annotation(Region(0x768,0x76B), Attr("section","\".rodata\"")), -Annotation(Region(0x76C,0x7A7), Attr("section","\".eh_frame_hdr\"")), -Annotation(Region(0x7A8,0x847), Attr("section","\".eh_frame\"")), -Annotation(Region(0x10D98,0x1100F), Attr("segment","03 0x10D98 648")), -Annotation(Region(0x10DA0,0x10DA7), Attr("section","\".fini_array\"")), -Annotation(Region(0x10DA8,0x10F97), Attr("section","\".dynamic\"")), -Annotation(Region(0x10D98,0x10D9F), Attr("section","\".init_array\"")), -Annotation(Region(0x10F98,0x10FFF), Attr("section","\".got\"")), -Annotation(Region(0x11000,0x1100F), Attr("section","\".data\"")), -Annotation(Region(0x600,0x753), Attr("section","\".text\"")), -Annotation(Region(0x600,0x753), Attr("code-region","()")), -Annotation(Region(0x754,0x767), Attr("code-region","()"))]), -Program(Tid(1_520, "%000005f0"), Attrs([]), - Subs([Sub(Tid(1_466, "@__cxa_finalize"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x5D0"), -Attr("stub","()")]), "__cxa_finalize", Args([Arg(Tid(1_521, "%000005f1"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("__cxa_finalize_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(855, "@__cxa_finalize"), - Attrs([Attr("address","0x5D0")]), Phis([]), -Defs([Def(Tid(1_110, "%00000456"), Attrs([Attr("address","0x5D0"), -Attr("insn","adrp x16, #65536")]), Var("R16",Imm(64)), Int(65536,64)), -Def(Tid(1_117, "%0000045d"), Attrs([Attr("address","0x5D4"), -Attr("insn","ldr x17, [x16, #0xfb8]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(4024,64)),LittleEndian(),64)), -Def(Tid(1_123, "%00000463"), Attrs([Attr("address","0x5D8"), -Attr("insn","add x16, x16, #0xfb8")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(4024,64)))]), Jmps([Call(Tid(1_128, "%00000468"), - Attrs([Attr("address","0x5DC"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), -Sub(Tid(1_467, "@__do_global_dtors_aux"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x700")]), - "__do_global_dtors_aux", Args([Arg(Tid(1_522, "%000005f2"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("__do_global_dtors_aux_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(708, "@__do_global_dtors_aux"), - Attrs([Attr("address","0x700")]), Phis([]), Defs([Def(Tid(712, "%000002c8"), - Attrs([Attr("address","0x700"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("#3",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(18446744073709551584,64))), -Def(Tid(718, "%000002ce"), Attrs([Attr("address","0x700"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("#3",Imm(64)),Var("R29",Imm(64)),LittleEndian(),64)), -Def(Tid(724, "%000002d4"), Attrs([Attr("address","0x700"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("#3",Imm(64)),Int(8,64)),Var("R30",Imm(64)),LittleEndian(),64)), -Def(Tid(728, "%000002d8"), Attrs([Attr("address","0x700"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("R31",Imm(64)), -Var("#3",Imm(64))), Def(Tid(734, "%000002de"), - Attrs([Attr("address","0x704"), Attr("insn","mov x29, sp")]), - Var("R29",Imm(64)), Var("R31",Imm(64))), Def(Tid(742, "%000002e6"), - Attrs([Attr("address","0x708"), Attr("insn","str x19, [sp, #0x10]")]), - Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(16,64)),Var("R19",Imm(64)),LittleEndian(),64)), -Def(Tid(747, "%000002eb"), Attrs([Attr("address","0x70C"), -Attr("insn","adrp x19, #69632")]), Var("R19",Imm(64)), Int(69632,64)), -Def(Tid(754, "%000002f2"), Attrs([Attr("address","0x710"), -Attr("insn","ldrb w0, [x19, #0x10]")]), Var("R0",Imm(64)), -UNSIGNED(64,Load(Var("mem",Mem(64,8)),PLUS(Var("R19",Imm(64)),Int(16,64)),LittleEndian(),8)))]), -Jmps([Goto(Tid(761, "%000002f9"), Attrs([Attr("address","0x714"), -Attr("insn","cbnz w0, #0x28")]), - NEQ(Extract(31,0,Var("R0",Imm(64))),Int(0,32)), -Direct(Tid(759, "%000002f7"))), Goto(Tid(1_508, "%000005e4"), Attrs([]), - Int(1,1), Direct(Tid(800, "%00000320")))])), Blk(Tid(800, "%00000320"), - Attrs([Attr("address","0x718")]), Phis([]), Defs([Def(Tid(803, "%00000323"), - Attrs([Attr("address","0x718"), Attr("insn","adrp x0, #65536")]), - Var("R0",Imm(64)), Int(65536,64)), Def(Tid(810, "%0000032a"), - Attrs([Attr("address","0x71C"), Attr("insn","ldr x0, [x0, #0xfe0]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(4064,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(816, "%00000330"), Attrs([Attr("address","0x720"), -Attr("insn","cbz x0, #0x10")]), EQ(Var("R0",Imm(64)),Int(0,64)), -Direct(Tid(814, "%0000032e"))), Goto(Tid(1_509, "%000005e5"), Attrs([]), - Int(1,1), Direct(Tid(839, "%00000347")))])), Blk(Tid(839, "%00000347"), - Attrs([Attr("address","0x724")]), Phis([]), Defs([Def(Tid(842, "%0000034a"), - Attrs([Attr("address","0x724"), Attr("insn","adrp x0, #69632")]), - Var("R0",Imm(64)), Int(69632,64)), Def(Tid(849, "%00000351"), - Attrs([Attr("address","0x728"), Attr("insn","ldr x0, [x0, #0x8]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(854, "%00000356"), Attrs([Attr("address","0x72C"), -Attr("insn","bl #-0x15c")]), Var("R30",Imm(64)), Int(1840,64))]), -Jmps([Call(Tid(857, "%00000359"), Attrs([Attr("address","0x72C"), -Attr("insn","bl #-0x15c")]), Int(1,1), -(Direct(Tid(1_466, "@__cxa_finalize")),Direct(Tid(814, "%0000032e"))))])), -Blk(Tid(814, "%0000032e"), Attrs([Attr("address","0x730")]), Phis([]), -Defs([Def(Tid(822, "%00000336"), Attrs([Attr("address","0x730"), -Attr("insn","bl #-0xa0")]), Var("R30",Imm(64)), Int(1844,64))]), -Jmps([Call(Tid(824, "%00000338"), Attrs([Attr("address","0x730"), -Attr("insn","bl #-0xa0")]), Int(1,1), -(Direct(Tid(1_480, "@deregister_tm_clones")),Direct(Tid(826, "%0000033a"))))])), -Blk(Tid(826, "%0000033a"), Attrs([Attr("address","0x734")]), Phis([]), -Defs([Def(Tid(829, "%0000033d"), Attrs([Attr("address","0x734"), -Attr("insn","mov w0, #0x1")]), Var("R0",Imm(64)), Int(1,64)), -Def(Tid(837, "%00000345"), Attrs([Attr("address","0x738"), -Attr("insn","strb w0, [x19, #0x10]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R19",Imm(64)),Int(16,64)),Extract(7,0,Var("R0",Imm(64))),LittleEndian(),8))]), -Jmps([Goto(Tid(1_510, "%000005e6"), Attrs([]), Int(1,1), -Direct(Tid(759, "%000002f7")))])), Blk(Tid(759, "%000002f7"), - Attrs([Attr("address","0x73C")]), Phis([]), Defs([Def(Tid(769, "%00000301"), - Attrs([Attr("address","0x73C"), Attr("insn","ldr x19, [sp, #0x10]")]), - Var("R19",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(16,64)),LittleEndian(),64)), -Def(Tid(776, "%00000308"), Attrs([Attr("address","0x740"), -Attr("insn","ldp x29, x30, [sp], #0x20")]), Var("R29",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(781, "%0000030d"), Attrs([Attr("address","0x740"), -Attr("insn","ldp x29, x30, [sp], #0x20")]), Var("R30",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(785, "%00000311"), Attrs([Attr("address","0x740"), -Attr("insn","ldp x29, x30, [sp], #0x20")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(32,64)))]), Jmps([Call(Tid(790, "%00000316"), - Attrs([Attr("address","0x744"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), Sub(Tid(1_471, "@__libc_start_main"), - Attrs([Attr("c.proto","signed (*)(signed (*)(signed , char** , char** );* main, signed , char** , \nvoid* auxv)"), -Attr("address","0x5C0"), Attr("stub","()")]), "__libc_start_main", - Args([Arg(Tid(1_523, "%000005f3"), - Attrs([Attr("c.layout","**[ : 64]"), -Attr("c.data","Top:u64 ptr ptr"), -Attr("c.type","signed (*)(signed , char** , char** );*")]), - Var("__libc_start_main_main",Imm(64)), Var("R0",Imm(64)), In()), -Arg(Tid(1_524, "%000005f4"), Attrs([Attr("c.layout","[signed : 32]"), -Attr("c.data","Top:u32"), Attr("c.type","signed")]), - Var("__libc_start_main_arg2",Imm(32)), LOW(32,Var("R1",Imm(64))), In()), -Arg(Tid(1_525, "%000005f5"), Attrs([Attr("c.layout","**[char : 8]"), -Attr("c.data","Top:u8 ptr ptr"), Attr("c.type","char**")]), - Var("__libc_start_main_arg3",Imm(64)), Var("R2",Imm(64)), Both()), -Arg(Tid(1_526, "%000005f6"), Attrs([Attr("c.layout","*[ : 8]"), -Attr("c.data","{} ptr"), Attr("c.type","void*")]), - Var("__libc_start_main_auxv",Imm(64)), Var("R3",Imm(64)), Both()), -Arg(Tid(1_527, "%000005f7"), Attrs([Attr("c.layout","[signed : 32]"), -Attr("c.data","Top:u32"), Attr("c.type","signed")]), - Var("__libc_start_main_result",Imm(32)), LOW(32,Var("R0",Imm(64))), -Out())]), Blks([Blk(Tid(541, "@__libc_start_main"), - Attrs([Attr("address","0x5C0")]), Phis([]), -Defs([Def(Tid(1_088, "%00000440"), Attrs([Attr("address","0x5C0"), -Attr("insn","adrp x16, #65536")]), Var("R16",Imm(64)), Int(65536,64)), -Def(Tid(1_095, "%00000447"), Attrs([Attr("address","0x5C4"), -Attr("insn","ldr x17, [x16, #0xfb0]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(4016,64)),LittleEndian(),64)), -Def(Tid(1_101, "%0000044d"), Attrs([Attr("address","0x5C8"), -Attr("insn","add x16, x16, #0xfb0")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(4016,64)))]), Jmps([Call(Tid(1_106, "%00000452"), - Attrs([Attr("address","0x5CC"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), Sub(Tid(1_472, "@_fini"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x754")]), - "_fini", Args([Arg(Tid(1_528, "%000005f8"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("_fini_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(31, "@_fini"), - Attrs([Attr("address","0x754")]), Phis([]), Defs([Def(Tid(37, "%00000025"), - Attrs([Attr("address","0x758"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("#0",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(18446744073709551600,64))), -Def(Tid(43, "%0000002b"), Attrs([Attr("address","0x758"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("#0",Imm(64)),Var("R29",Imm(64)),LittleEndian(),64)), -Def(Tid(49, "%00000031"), Attrs([Attr("address","0x758"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("#0",Imm(64)),Int(8,64)),Var("R30",Imm(64)),LittleEndian(),64)), -Def(Tid(53, "%00000035"), Attrs([Attr("address","0x758"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("R31",Imm(64)), -Var("#0",Imm(64))), Def(Tid(59, "%0000003b"), Attrs([Attr("address","0x75C"), -Attr("insn","mov x29, sp")]), Var("R29",Imm(64)), Var("R31",Imm(64))), -Def(Tid(66, "%00000042"), Attrs([Attr("address","0x760"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R29",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(71, "%00000047"), Attrs([Attr("address","0x760"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R30",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(75, "%0000004b"), Attrs([Attr("address","0x760"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(16,64)))]), Jmps([Call(Tid(80, "%00000050"), - Attrs([Attr("address","0x764"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), Sub(Tid(1_473, "@_init"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x580")]), - "_init", Args([Arg(Tid(1_529, "%000005f9"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("_init_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(1_292, "@_init"), - Attrs([Attr("address","0x580")]), Phis([]), -Defs([Def(Tid(1_298, "%00000512"), Attrs([Attr("address","0x584"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("#5",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(18446744073709551600,64))), -Def(Tid(1_304, "%00000518"), Attrs([Attr("address","0x584"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("#5",Imm(64)),Var("R29",Imm(64)),LittleEndian(),64)), -Def(Tid(1_310, "%0000051e"), Attrs([Attr("address","0x584"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("#5",Imm(64)),Int(8,64)),Var("R30",Imm(64)),LittleEndian(),64)), -Def(Tid(1_314, "%00000522"), Attrs([Attr("address","0x584"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("R31",Imm(64)), -Var("#5",Imm(64))), Def(Tid(1_320, "%00000528"), - Attrs([Attr("address","0x588"), Attr("insn","mov x29, sp")]), - Var("R29",Imm(64)), Var("R31",Imm(64))), Def(Tid(1_325, "%0000052d"), - Attrs([Attr("address","0x58C"), Attr("insn","bl #0xe8")]), - Var("R30",Imm(64)), Int(1424,64))]), Jmps([Call(Tid(1_327, "%0000052f"), - Attrs([Attr("address","0x58C"), Attr("insn","bl #0xe8")]), Int(1,1), -(Direct(Tid(1_478, "@call_weak_fn")),Direct(Tid(1_329, "%00000531"))))])), -Blk(Tid(1_329, "%00000531"), Attrs([Attr("address","0x590")]), Phis([]), -Defs([Def(Tid(1_334, "%00000536"), Attrs([Attr("address","0x590"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R29",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(1_339, "%0000053b"), Attrs([Attr("address","0x590"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R30",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(1_343, "%0000053f"), Attrs([Attr("address","0x590"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(16,64)))]), Jmps([Call(Tid(1_348, "%00000544"), - Attrs([Attr("address","0x594"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), Sub(Tid(1_474, "@_start"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x640"), -Attr("entry-point","()")]), "_start", Args([Arg(Tid(1_530, "%000005fa"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("_start_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(478, "@_start"), - Attrs([Attr("address","0x640")]), Phis([]), Defs([Def(Tid(483, "%000001e3"), - Attrs([Attr("address","0x644"), Attr("insn","mov x29, #0x0")]), - Var("R29",Imm(64)), Int(0,64)), Def(Tid(488, "%000001e8"), - Attrs([Attr("address","0x648"), Attr("insn","mov x30, #0x0")]), - Var("R30",Imm(64)), Int(0,64)), Def(Tid(494, "%000001ee"), - Attrs([Attr("address","0x64C"), Attr("insn","mov x5, x0")]), - Var("R5",Imm(64)), Var("R0",Imm(64))), Def(Tid(501, "%000001f5"), - Attrs([Attr("address","0x650"), Attr("insn","ldr x1, [sp]")]), - Var("R1",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(507, "%000001fb"), Attrs([Attr("address","0x654"), -Attr("insn","add x2, sp, #0x8")]), Var("R2",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(8,64))), Def(Tid(513, "%00000201"), - Attrs([Attr("address","0x658"), Attr("insn","mov x6, sp")]), - Var("R6",Imm(64)), Var("R31",Imm(64))), Def(Tid(518, "%00000206"), - Attrs([Attr("address","0x65C"), Attr("insn","adrp x0, #65536")]), - Var("R0",Imm(64)), Int(65536,64)), Def(Tid(525, "%0000020d"), - Attrs([Attr("address","0x660"), Attr("insn","ldr x0, [x0, #0xff0]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(4080,64)),LittleEndian(),64)), -Def(Tid(530, "%00000212"), Attrs([Attr("address","0x664"), -Attr("insn","mov x3, #0x0")]), Var("R3",Imm(64)), Int(0,64)), -Def(Tid(535, "%00000217"), Attrs([Attr("address","0x668"), -Attr("insn","mov x4, #0x0")]), Var("R4",Imm(64)), Int(0,64)), -Def(Tid(540, "%0000021c"), Attrs([Attr("address","0x66C"), -Attr("insn","bl #-0xac")]), Var("R30",Imm(64)), Int(1648,64))]), -Jmps([Call(Tid(543, "%0000021f"), Attrs([Attr("address","0x66C"), -Attr("insn","bl #-0xac")]), Int(1,1), -(Direct(Tid(1_471, "@__libc_start_main")),Direct(Tid(545, "%00000221"))))])), -Blk(Tid(545, "%00000221"), Attrs([Attr("address","0x670")]), Phis([]), -Defs([Def(Tid(548, "%00000224"), Attrs([Attr("address","0x670"), -Attr("insn","bl #-0x80")]), Var("R30",Imm(64)), Int(1652,64))]), -Jmps([Call(Tid(551, "%00000227"), Attrs([Attr("address","0x670"), -Attr("insn","bl #-0x80")]), Int(1,1), -(Direct(Tid(1_477, "@abort")),Direct(Tid(1_511, "%000005e7"))))])), -Blk(Tid(1_511, "%000005e7"), Attrs([]), Phis([]), Defs([]), -Jmps([Call(Tid(1_512, "%000005e8"), Attrs([]), Int(1,1), -(Direct(Tid(1_478, "@call_weak_fn")),))]))])), Sub(Tid(1_477, "@abort"), - Attrs([Attr("noreturn","()"), Attr("c.proto","void (*)(void)"), -Attr("address","0x5F0"), Attr("stub","()")]), "abort", Args([]), -Blks([Blk(Tid(549, "@abort"), Attrs([Attr("address","0x5F0")]), Phis([]), -Defs([Def(Tid(1_154, "%00000482"), Attrs([Attr("address","0x5F0"), -Attr("insn","adrp x16, #65536")]), Var("R16",Imm(64)), Int(65536,64)), -Def(Tid(1_161, "%00000489"), Attrs([Attr("address","0x5F4"), -Attr("insn","ldr x17, [x16, #0xfc8]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(4040,64)),LittleEndian(),64)), -Def(Tid(1_167, "%0000048f"), Attrs([Attr("address","0x5F8"), -Attr("insn","add x16, x16, #0xfc8")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(4040,64)))]), Jmps([Call(Tid(1_172, "%00000494"), - Attrs([Attr("address","0x5FC"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), Sub(Tid(1_478, "@call_weak_fn"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x674")]), - "call_weak_fn", Args([Arg(Tid(1_531, "%000005fb"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("call_weak_fn_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(553, "@call_weak_fn"), - Attrs([Attr("address","0x674")]), Phis([]), Defs([Def(Tid(556, "%0000022c"), - Attrs([Attr("address","0x674"), Attr("insn","adrp x0, #65536")]), - Var("R0",Imm(64)), Int(65536,64)), Def(Tid(563, "%00000233"), - Attrs([Attr("address","0x678"), Attr("insn","ldr x0, [x0, #0xfe8]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(4072,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(569, "%00000239"), Attrs([Attr("address","0x67C"), -Attr("insn","cbz x0, #0x8")]), EQ(Var("R0",Imm(64)),Int(0,64)), -Direct(Tid(567, "%00000237"))), Goto(Tid(1_513, "%000005e9"), Attrs([]), - Int(1,1), Direct(Tid(919, "%00000397")))])), Blk(Tid(567, "%00000237"), - Attrs([Attr("address","0x684")]), Phis([]), Defs([]), -Jmps([Call(Tid(575, "%0000023f"), Attrs([Attr("address","0x684"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))])), -Blk(Tid(919, "%00000397"), Attrs([Attr("address","0x680")]), Phis([]), -Defs([]), Jmps([Goto(Tid(922, "%0000039a"), Attrs([Attr("address","0x680"), -Attr("insn","b #-0xa0")]), Int(1,1), Direct(Tid(920, "@__gmon_start__")))])), -Blk(Tid(920, "@__gmon_start__"), Attrs([Attr("address","0x5E0")]), Phis([]), -Defs([Def(Tid(1_132, "%0000046c"), Attrs([Attr("address","0x5E0"), -Attr("insn","adrp x16, #65536")]), Var("R16",Imm(64)), Int(65536,64)), -Def(Tid(1_139, "%00000473"), Attrs([Attr("address","0x5E4"), -Attr("insn","ldr x17, [x16, #0xfc0]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(4032,64)),LittleEndian(),64)), -Def(Tid(1_145, "%00000479"), Attrs([Attr("address","0x5E8"), -Attr("insn","add x16, x16, #0xfc0")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(4032,64)))]), Jmps([Call(Tid(1_150, "%0000047e"), - Attrs([Attr("address","0x5EC"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), -Sub(Tid(1_480, "@deregister_tm_clones"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x690")]), - "deregister_tm_clones", Args([Arg(Tid(1_532, "%000005fc"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("deregister_tm_clones_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(581, "@deregister_tm_clones"), - Attrs([Attr("address","0x690")]), Phis([]), Defs([Def(Tid(584, "%00000248"), - Attrs([Attr("address","0x690"), Attr("insn","adrp x0, #69632")]), - Var("R0",Imm(64)), Int(69632,64)), Def(Tid(590, "%0000024e"), - Attrs([Attr("address","0x694"), Attr("insn","add x0, x0, #0x10")]), - Var("R0",Imm(64)), PLUS(Var("R0",Imm(64)),Int(16,64))), -Def(Tid(595, "%00000253"), Attrs([Attr("address","0x698"), -Attr("insn","adrp x1, #69632")]), Var("R1",Imm(64)), Int(69632,64)), -Def(Tid(601, "%00000259"), Attrs([Attr("address","0x69C"), -Attr("insn","add x1, x1, #0x10")]), Var("R1",Imm(64)), -PLUS(Var("R1",Imm(64)),Int(16,64))), Def(Tid(607, "%0000025f"), - Attrs([Attr("address","0x6A0"), Attr("insn","cmp x1, x0")]), - Var("#1",Imm(64)), NOT(Var("R0",Imm(64)))), Def(Tid(612, "%00000264"), - Attrs([Attr("address","0x6A0"), Attr("insn","cmp x1, x0")]), - Var("#2",Imm(64)), PLUS(Var("R1",Imm(64)),NOT(Var("R0",Imm(64))))), -Def(Tid(618, "%0000026a"), Attrs([Attr("address","0x6A0"), -Attr("insn","cmp x1, x0")]), Var("VF",Imm(1)), -NEQ(SIGNED(65,PLUS(Var("#2",Imm(64)),Int(1,64))),PLUS(PLUS(SIGNED(65,Var("R1",Imm(64))),SIGNED(65,Var("#1",Imm(64)))),Int(1,65)))), -Def(Tid(624, "%00000270"), Attrs([Attr("address","0x6A0"), -Attr("insn","cmp x1, x0")]), Var("CF",Imm(1)), -NEQ(UNSIGNED(65,PLUS(Var("#2",Imm(64)),Int(1,64))),PLUS(PLUS(UNSIGNED(65,Var("R1",Imm(64))),UNSIGNED(65,Var("#1",Imm(64)))),Int(1,65)))), -Def(Tid(628, "%00000274"), Attrs([Attr("address","0x6A0"), -Attr("insn","cmp x1, x0")]), Var("ZF",Imm(1)), -EQ(PLUS(Var("#2",Imm(64)),Int(1,64)),Int(0,64))), Def(Tid(632, "%00000278"), - Attrs([Attr("address","0x6A0"), Attr("insn","cmp x1, x0")]), - Var("NF",Imm(1)), Extract(63,63,PLUS(Var("#2",Imm(64)),Int(1,64))))]), -Jmps([Goto(Tid(638, "%0000027e"), Attrs([Attr("address","0x6A4"), -Attr("insn","b.eq #0x18")]), EQ(Var("ZF",Imm(1)),Int(1,1)), -Direct(Tid(636, "%0000027c"))), Goto(Tid(1_514, "%000005ea"), Attrs([]), - Int(1,1), Direct(Tid(889, "%00000379")))])), Blk(Tid(889, "%00000379"), - Attrs([Attr("address","0x6A8")]), Phis([]), Defs([Def(Tid(892, "%0000037c"), - Attrs([Attr("address","0x6A8"), Attr("insn","adrp x1, #65536")]), - Var("R1",Imm(64)), Int(65536,64)), Def(Tid(899, "%00000383"), - Attrs([Attr("address","0x6AC"), Attr("insn","ldr x1, [x1, #0xfd8]")]), - Var("R1",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R1",Imm(64)),Int(4056,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(904, "%00000388"), Attrs([Attr("address","0x6B0"), -Attr("insn","cbz x1, #0xc")]), EQ(Var("R1",Imm(64)),Int(0,64)), -Direct(Tid(636, "%0000027c"))), Goto(Tid(1_515, "%000005eb"), Attrs([]), - Int(1,1), Direct(Tid(908, "%0000038c")))])), Blk(Tid(636, "%0000027c"), - Attrs([Attr("address","0x6BC")]), Phis([]), Defs([]), -Jmps([Call(Tid(644, "%00000284"), Attrs([Attr("address","0x6BC"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))])), -Blk(Tid(908, "%0000038c"), Attrs([Attr("address","0x6B4")]), Phis([]), -Defs([Def(Tid(912, "%00000390"), Attrs([Attr("address","0x6B4"), -Attr("insn","mov x16, x1")]), Var("R16",Imm(64)), Var("R1",Imm(64)))]), -Jmps([Call(Tid(917, "%00000395"), Attrs([Attr("address","0x6B8"), -Attr("insn","br x16")]), Int(1,1), (Indirect(Var("R16",Imm(64))),))]))])), -Sub(Tid(1_483, "@frame_dummy"), Attrs([Attr("c.proto","signed (*)(void)"), -Attr("address","0x750")]), "frame_dummy", Args([Arg(Tid(1_533, "%000005fd"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("frame_dummy_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(796, "@frame_dummy"), - Attrs([Attr("address","0x750")]), Phis([]), Defs([]), -Jmps([Call(Tid(798, "%0000031e"), Attrs([Attr("address","0x750"), -Attr("insn","b #-0x90")]), Int(1,1), -(Direct(Tid(1_487, "@register_tm_clones")),))]))])), Sub(Tid(1_484, "@main"), - Attrs([Attr("c.proto","signed (*)(signed argc, const char** argv)"), -Attr("address","0x600"), Attr("stub","()")]), "main", - Args([Arg(Tid(1_534, "%000005fe"), Attrs([Attr("c.layout","[signed : 32]"), -Attr("c.data","Top:u32"), Attr("c.type","signed")]), - Var("main_argc",Imm(32)), LOW(32,Var("R0",Imm(64))), In()), -Arg(Tid(1_535, "%000005ff"), Attrs([Attr("c.layout","**[char : 8]"), -Attr("c.data","Top:u8 ptr ptr"), Attr("c.type"," const char**")]), - Var("main_argv",Imm(64)), Var("R1",Imm(64)), Both()), -Arg(Tid(1_536, "%00000600"), Attrs([Attr("c.layout","[signed : 32]"), -Attr("c.data","Top:u32"), Attr("c.type","signed")]), - Var("main_result",Imm(32)), LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(424, "@main"), Attrs([Attr("address","0x600")]), Phis([]), -Defs([Def(Tid(427, "%000001ab"), Attrs([Attr("address","0x600"), -Attr("insn","adrp x0, #69632")]), Var("R0",Imm(64)), Int(69632,64)), -Def(Tid(433, "%000001b1"), Attrs([Attr("address","0x604"), -Attr("insn","add x1, x0, #0x14")]), Var("R1",Imm(64)), -PLUS(Var("R0",Imm(64)),Int(20,64))), Def(Tid(440, "%000001b8"), - Attrs([Attr("address","0x608"), Attr("insn","ldr w0, [x0, #0x14]")]), - Var("R0",Imm(64)), -UNSIGNED(64,Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(20,64)),LittleEndian(),32)))]), -Jmps([Goto(Tid(447, "%000001bf"), Attrs([Attr("address","0x60C"), -Attr("insn","cbnz w0, #0x8")]), - NEQ(Extract(31,0,Var("R0",Imm(64))),Int(0,32)), -Direct(Tid(445, "%000001bd"))), Goto(Tid(1_516, "%000005ec"), Attrs([]), - Int(1,1), Direct(Tid(924, "%0000039c")))])), Blk(Tid(924, "%0000039c"), - Attrs([Attr("address","0x610")]), Phis([]), Defs([Def(Tid(929, "%000003a1"), - Attrs([Attr("address","0x610"), Attr("insn","str wzr, [x1, #0x4]")]), - Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R1",Imm(64)),Int(4,64)),Int(0,32),LittleEndian(),32))]), -Jmps([Goto(Tid(1_517, "%000005ed"), Attrs([]), Int(1,1), -Direct(Tid(445, "%000001bd")))])), Blk(Tid(445, "%000001bd"), - Attrs([Attr("address","0x614")]), Phis([]), Defs([Def(Tid(453, "%000001c5"), - Attrs([Attr("address","0x614"), Attr("insn","mov w0, #0x0")]), - Var("R0",Imm(64)), Int(0,64))]), Jmps([Call(Tid(458, "%000001ca"), - Attrs([Attr("address","0x618"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), -Sub(Tid(1_487, "@register_tm_clones"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x6C0")]), - "register_tm_clones", Args([Arg(Tid(1_537, "%00000601"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("register_tm_clones_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(646, "@register_tm_clones"), Attrs([Attr("address","0x6C0")]), - Phis([]), Defs([Def(Tid(649, "%00000289"), Attrs([Attr("address","0x6C0"), -Attr("insn","adrp x0, #69632")]), Var("R0",Imm(64)), Int(69632,64)), -Def(Tid(655, "%0000028f"), Attrs([Attr("address","0x6C4"), -Attr("insn","add x0, x0, #0x10")]), Var("R0",Imm(64)), -PLUS(Var("R0",Imm(64)),Int(16,64))), Def(Tid(660, "%00000294"), - Attrs([Attr("address","0x6C8"), Attr("insn","adrp x1, #69632")]), - Var("R1",Imm(64)), Int(69632,64)), Def(Tid(666, "%0000029a"), - Attrs([Attr("address","0x6CC"), Attr("insn","add x1, x1, #0x10")]), - Var("R1",Imm(64)), PLUS(Var("R1",Imm(64)),Int(16,64))), -Def(Tid(673, "%000002a1"), Attrs([Attr("address","0x6D0"), -Attr("insn","sub x1, x1, x0")]), Var("R1",Imm(64)), -PLUS(PLUS(Var("R1",Imm(64)),NOT(Var("R0",Imm(64)))),Int(1,64))), -Def(Tid(679, "%000002a7"), Attrs([Attr("address","0x6D4"), -Attr("insn","lsr x2, x1, #63")]), Var("R2",Imm(64)), -Concat(Int(0,63),Extract(63,63,Var("R1",Imm(64))))), -Def(Tid(686, "%000002ae"), Attrs([Attr("address","0x6D8"), -Attr("insn","add x1, x2, x1, asr #3")]), Var("R1",Imm(64)), -PLUS(Var("R2",Imm(64)),ARSHIFT(Var("R1",Imm(64)),Int(3,3)))), -Def(Tid(692, "%000002b4"), Attrs([Attr("address","0x6DC"), -Attr("insn","asr x1, x1, #1")]), Var("R1",Imm(64)), -SIGNED(64,Extract(63,1,Var("R1",Imm(64)))))]), -Jmps([Goto(Tid(698, "%000002ba"), Attrs([Attr("address","0x6E0"), -Attr("insn","cbz x1, #0x18")]), EQ(Var("R1",Imm(64)),Int(0,64)), -Direct(Tid(696, "%000002b8"))), Goto(Tid(1_518, "%000005ee"), Attrs([]), - Int(1,1), Direct(Tid(859, "%0000035b")))])), Blk(Tid(859, "%0000035b"), - Attrs([Attr("address","0x6E4")]), Phis([]), Defs([Def(Tid(862, "%0000035e"), - Attrs([Attr("address","0x6E4"), Attr("insn","adrp x2, #65536")]), - Var("R2",Imm(64)), Int(65536,64)), Def(Tid(869, "%00000365"), - Attrs([Attr("address","0x6E8"), Attr("insn","ldr x2, [x2, #0xff8]")]), - Var("R2",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R2",Imm(64)),Int(4088,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(874, "%0000036a"), Attrs([Attr("address","0x6EC"), -Attr("insn","cbz x2, #0xc")]), EQ(Var("R2",Imm(64)),Int(0,64)), -Direct(Tid(696, "%000002b8"))), Goto(Tid(1_519, "%000005ef"), Attrs([]), - Int(1,1), Direct(Tid(878, "%0000036e")))])), Blk(Tid(696, "%000002b8"), - Attrs([Attr("address","0x6F8")]), Phis([]), Defs([]), -Jmps([Call(Tid(704, "%000002c0"), Attrs([Attr("address","0x6F8"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))])), -Blk(Tid(878, "%0000036e"), Attrs([Attr("address","0x6F0")]), Phis([]), -Defs([Def(Tid(882, "%00000372"), Attrs([Attr("address","0x6F0"), -Attr("insn","mov x16, x2")]), Var("R16",Imm(64)), Var("R2",Imm(64)))]), -Jmps([Call(Tid(887, "%00000377"), Attrs([Attr("address","0x6F4"), -Attr("insn","br x16")]), Int(1,1), -(Indirect(Var("R16",Imm(64))),))]))]))]))) \ No newline at end of file diff --git a/src/test/correct/basic_lock_read/gcc_O2/basic_lock_read.bir b/src/test/correct/basic_lock_read/gcc_O2/basic_lock_read.bir deleted file mode 100644 index 04c6a6599..000000000 --- a/src/test/correct/basic_lock_read/gcc_O2/basic_lock_read.bir +++ /dev/null @@ -1,235 +0,0 @@ -000005f0: program -000005ba: sub __cxa_finalize(__cxa_finalize_result) -000005f1: __cxa_finalize_result :: out u32 = low:32[R0] - -00000357: -00000456: R16 := 0x10000 -0000045d: R17 := mem[R16 + 0xFB8, el]:u64 -00000463: R16 := R16 + 0xFB8 -00000468: call R17 with noreturn - -000005bb: sub __do_global_dtors_aux(__do_global_dtors_aux_result) -000005f2: __do_global_dtors_aux_result :: out u32 = low:32[R0] - -000002c4: -000002c8: #3 := R31 - 0x20 -000002ce: mem := mem with [#3, el]:u64 <- R29 -000002d4: mem := mem with [#3 + 8, el]:u64 <- R30 -000002d8: R31 := #3 -000002de: R29 := R31 -000002e6: mem := mem with [R31 + 0x10, el]:u64 <- R19 -000002eb: R19 := 0x11000 -000002f2: R0 := pad:64[mem[R19 + 0x10]] -000002f9: when 31:0[R0] <> 0 goto %000002f7 -000005e4: goto %00000320 - -00000320: -00000323: R0 := 0x10000 -0000032a: R0 := mem[R0 + 0xFE0, el]:u64 -00000330: when R0 = 0 goto %0000032e -000005e5: goto %00000347 - -00000347: -0000034a: R0 := 0x11000 -00000351: R0 := mem[R0 + 8, el]:u64 -00000356: R30 := 0x730 -00000359: call @__cxa_finalize with return %0000032e - -0000032e: -00000336: R30 := 0x734 -00000338: call @deregister_tm_clones with return %0000033a - -0000033a: -0000033d: R0 := 1 -00000345: mem := mem with [R19 + 0x10] <- 7:0[R0] -000005e6: goto %000002f7 - -000002f7: -00000301: R19 := mem[R31 + 0x10, el]:u64 -00000308: R29 := mem[R31, el]:u64 -0000030d: R30 := mem[R31 + 8, el]:u64 -00000311: R31 := R31 + 0x20 -00000316: call R30 with noreturn - -000005bf: sub __libc_start_main(__libc_start_main_main, __libc_start_main_arg2, __libc_start_main_arg3, __libc_start_main_auxv, __libc_start_main_result) -000005f3: __libc_start_main_main :: in u64 = R0 -000005f4: __libc_start_main_arg2 :: in u32 = low:32[R1] -000005f5: __libc_start_main_arg3 :: in out u64 = R2 -000005f6: __libc_start_main_auxv :: in out u64 = R3 -000005f7: __libc_start_main_result :: out u32 = low:32[R0] - -0000021d: -00000440: R16 := 0x10000 -00000447: R17 := mem[R16 + 0xFB0, el]:u64 -0000044d: R16 := R16 + 0xFB0 -00000452: call R17 with noreturn - -000005c0: sub _fini(_fini_result) -000005f8: _fini_result :: out u32 = low:32[R0] - -0000001f: -00000025: #0 := R31 - 0x10 -0000002b: mem := mem with [#0, el]:u64 <- R29 -00000031: mem := mem with [#0 + 8, el]:u64 <- R30 -00000035: R31 := #0 -0000003b: R29 := R31 -00000042: R29 := mem[R31, el]:u64 -00000047: R30 := mem[R31 + 8, el]:u64 -0000004b: R31 := R31 + 0x10 -00000050: call R30 with noreturn - -000005c1: sub _init(_init_result) -000005f9: _init_result :: out u32 = low:32[R0] - -0000050c: -00000512: #5 := R31 - 0x10 -00000518: mem := mem with [#5, el]:u64 <- R29 -0000051e: mem := mem with [#5 + 8, el]:u64 <- R30 -00000522: R31 := #5 -00000528: R29 := R31 -0000052d: R30 := 0x590 -0000052f: call @call_weak_fn with return %00000531 - -00000531: -00000536: R29 := mem[R31, el]:u64 -0000053b: R30 := mem[R31 + 8, el]:u64 -0000053f: R31 := R31 + 0x10 -00000544: call R30 with noreturn - -000005c2: sub _start(_start_result) -000005fa: _start_result :: out u32 = low:32[R0] - -000001de: -000001e3: R29 := 0 -000001e8: R30 := 0 -000001ee: R5 := R0 -000001f5: R1 := mem[R31, el]:u64 -000001fb: R2 := R31 + 8 -00000201: R6 := R31 -00000206: R0 := 0x10000 -0000020d: R0 := mem[R0 + 0xFF0, el]:u64 -00000212: R3 := 0 -00000217: R4 := 0 -0000021c: R30 := 0x670 -0000021f: call @__libc_start_main with return %00000221 - -00000221: -00000224: R30 := 0x674 -00000227: call @abort with return %000005e7 - -000005e7: -000005e8: call @call_weak_fn with noreturn - -000005c5: sub abort() - - -00000225: -00000482: R16 := 0x10000 -00000489: R17 := mem[R16 + 0xFC8, el]:u64 -0000048f: R16 := R16 + 0xFC8 -00000494: call R17 with noreturn - -000005c6: sub call_weak_fn(call_weak_fn_result) -000005fb: call_weak_fn_result :: out u32 = low:32[R0] - -00000229: -0000022c: R0 := 0x10000 -00000233: R0 := mem[R0 + 0xFE8, el]:u64 -00000239: when R0 = 0 goto %00000237 -000005e9: goto %00000397 - -00000237: -0000023f: call R30 with noreturn - -00000397: -0000039a: goto @__gmon_start__ - -00000398: -0000046c: R16 := 0x10000 -00000473: R17 := mem[R16 + 0xFC0, el]:u64 -00000479: R16 := R16 + 0xFC0 -0000047e: call R17 with noreturn - -000005c8: sub deregister_tm_clones(deregister_tm_clones_result) -000005fc: deregister_tm_clones_result :: out u32 = low:32[R0] - -00000245: -00000248: R0 := 0x11000 -0000024e: R0 := R0 + 0x10 -00000253: R1 := 0x11000 -00000259: R1 := R1 + 0x10 -0000025f: #1 := ~R0 -00000264: #2 := R1 + ~R0 -0000026a: VF := extend:65[#2 + 1] <> extend:65[R1] + extend:65[#1] + 1 -00000270: CF := pad:65[#2 + 1] <> pad:65[R1] + pad:65[#1] + 1 -00000274: ZF := #2 + 1 = 0 -00000278: NF := 63:63[#2 + 1] -0000027e: when ZF goto %0000027c -000005ea: goto %00000379 - -00000379: -0000037c: R1 := 0x10000 -00000383: R1 := mem[R1 + 0xFD8, el]:u64 -00000388: when R1 = 0 goto %0000027c -000005eb: goto %0000038c - -0000027c: -00000284: call R30 with noreturn - -0000038c: -00000390: R16 := R1 -00000395: call R16 with noreturn - -000005cb: sub frame_dummy(frame_dummy_result) -000005fd: frame_dummy_result :: out u32 = low:32[R0] - -0000031c: -0000031e: call @register_tm_clones with noreturn - -000005cc: sub main(main_argc, main_argv, main_result) -000005fe: main_argc :: in u32 = low:32[R0] -000005ff: main_argv :: in out u64 = R1 -00000600: main_result :: out u32 = low:32[R0] - -000001a8: -000001ab: R0 := 0x11000 -000001b1: R1 := R0 + 0x14 -000001b8: R0 := pad:64[mem[R0 + 0x14, el]:u32] -000001bf: when 31:0[R0] <> 0 goto %000001bd -000005ec: goto %0000039c - -0000039c: -000003a1: mem := mem with [R1 + 4, el]:u32 <- 0 -000005ed: goto %000001bd - -000001bd: -000001c5: R0 := 0 -000001ca: call R30 with noreturn - -000005cf: sub register_tm_clones(register_tm_clones_result) -00000601: register_tm_clones_result :: out u32 = low:32[R0] - -00000286: -00000289: R0 := 0x11000 -0000028f: R0 := R0 + 0x10 -00000294: R1 := 0x11000 -0000029a: R1 := R1 + 0x10 -000002a1: R1 := R1 + ~R0 + 1 -000002a7: R2 := 0.63:63[R1] -000002ae: R1 := R2 + (R1 ~>> 3) -000002b4: R1 := extend:64[63:1[R1]] -000002ba: when R1 = 0 goto %000002b8 -000005ee: goto %0000035b - -0000035b: -0000035e: R2 := 0x10000 -00000365: R2 := mem[R2 + 0xFF8, el]:u64 -0000036a: when R2 = 0 goto %000002b8 -000005ef: goto %0000036e - -000002b8: -000002c0: call R30 with noreturn - -0000036e: -00000372: R16 := R2 -00000377: call R16 with noreturn diff --git a/src/test/correct/basic_lock_read/gcc_O2/basic_lock_read.expected b/src/test/correct/basic_lock_read/gcc_O2/basic_lock_read.expected index 4cbd43c2f..7f41c5c3f 100644 --- a/src/test/correct/basic_lock_read/gcc_O2/basic_lock_read.expected +++ b/src/test/correct/basic_lock_read/gcc_O2/basic_lock_read.expected @@ -71,7 +71,7 @@ implementation {:extern} guarantee_reflexive() assert (memory_load32_le(mem, $z_addr) == memory_load32_le(mem, $z_addr)); } -procedure main_1536(); +procedure main(); modifies Gamma_R0, Gamma_R1, Gamma_mem, R0, R1, mem; free requires (memory_load64_le(mem, 69632bv64) == 0bv64); free requires (memory_load64_le(mem, 69640bv64) == 69640bv64); @@ -87,43 +87,43 @@ procedure main_1536(); free ensures (memory_load64_le(mem, 69616bv64) == 1536bv64); free ensures (memory_load64_le(mem, 69640bv64) == 69640bv64); -implementation main_1536() +implementation main() { - var Gamma_load18: bool; - var load18: bv32; + var $load$18: bv32; + var Gamma_$load$18: bool; var z_old: bv32; lmain: assume {:captureState "lmain"} true; R0, Gamma_R0 := 69632bv64, true; R1, Gamma_R1 := bvadd64(R0, 20bv64), Gamma_R0; call rely(); - load18, Gamma_load18 := memory_load32_le(mem, bvadd64(R0, 20bv64)), (gamma_load32(Gamma_mem, bvadd64(R0, 20bv64)) || L(mem, bvadd64(R0, 20bv64))); - R0, Gamma_R0 := zero_extend32_32(load18), Gamma_load18; + $load$18, Gamma_$load$18 := memory_load32_le(mem, bvadd64(R0, 20bv64)), (gamma_load32(Gamma_mem, bvadd64(R0, 20bv64)) || L(mem, bvadd64(R0, 20bv64))); + R0, Gamma_R0 := zero_extend32_32($load$18), Gamma_$load$18; assert Gamma_R0; goto lmain_goto_l000001bd, lmain_goto_l0000039c; - lmain_goto_l0000039c: - assume {:captureState "lmain_goto_l0000039c"} true; - assume (bvnot1(bvcomp32(R0[32:0], 0bv32)) == 0bv1); + l0000039c: + assume {:captureState "l0000039c"} true; call rely(); - z_old := memory_load32_le(mem, $z_addr); assert (L(mem, bvadd64(R1, 4bv64)) ==> true); + z_old := memory_load32_le(mem, $z_addr); mem, Gamma_mem := memory_store32_le(mem, bvadd64(R1, 4bv64), 0bv32), gamma_store32(Gamma_mem, bvadd64(R1, 4bv64), true); assert (memory_load32_le(mem, $z_addr) == z_old); assume {:captureState "%000003a1"} true; - goto l0000039c; - l0000039c: - assume {:captureState "l0000039c"} true; goto l000001bd; + l000001bd: + assume {:captureState "l000001bd"} true; + R0, Gamma_R0 := 0bv64, true; + goto main_basil_return; lmain_goto_l000001bd: assume {:captureState "lmain_goto_l000001bd"} true; assume (bvnot1(bvcomp32(R0[32:0], 0bv32)) != 0bv1); goto l000001bd; - l000001bd: - assume {:captureState "l000001bd"} true; - R0, Gamma_R0 := 0bv64, true; - goto main_1536_basil_return; - main_1536_basil_return: - assume {:captureState "main_1536_basil_return"} true; + lmain_goto_l0000039c: + assume {:captureState "lmain_goto_l0000039c"} true; + assume (bvnot1(bvcomp32(R0[32:0], 0bv32)) == 0bv1); + goto l0000039c; + main_basil_return: + assume {:captureState "main_basil_return"} true; return; } diff --git a/src/test/correct/basic_lock_read/gcc_O2/basic_lock_read.gts b/src/test/correct/basic_lock_read/gcc_O2/basic_lock_read.gts deleted file mode 100644 index f353ea5ee..000000000 Binary files a/src/test/correct/basic_lock_read/gcc_O2/basic_lock_read.gts and /dev/null differ diff --git a/src/test/correct/basic_lock_read/gcc_O2/basic_lock_read.md5sum b/src/test/correct/basic_lock_read/gcc_O2/basic_lock_read.md5sum new file mode 100644 index 000000000..8daced277 --- /dev/null +++ b/src/test/correct/basic_lock_read/gcc_O2/basic_lock_read.md5sum @@ -0,0 +1,5 @@ +ff048f0e6bc42643df0f97bde0587cb9 correct/basic_lock_read/gcc_O2/a.out +8b1b27ce05f588435141ea70adffab7d correct/basic_lock_read/gcc_O2/basic_lock_read.adt +7f583563a660435c5f0f739a94aaf2e0 correct/basic_lock_read/gcc_O2/basic_lock_read.bir +568e4f0c0dd1e02aac06724676cc74a6 correct/basic_lock_read/gcc_O2/basic_lock_read.relf +f46cf18890fcbd75eb1359bc597551fd correct/basic_lock_read/gcc_O2/basic_lock_read.gts diff --git a/src/test/correct/basic_lock_read/gcc_O2/basic_lock_read.relf b/src/test/correct/basic_lock_read/gcc_O2/basic_lock_read.relf deleted file mode 100644 index 5918ba2f8..000000000 --- a/src/test/correct/basic_lock_read/gcc_O2/basic_lock_read.relf +++ /dev/null @@ -1,122 +0,0 @@ - -Relocation section '.rela.dyn' at offset 0x460 contains 8 entries: - Offset Info Type Symbol's Value Symbol's Name + Addend -0000000000010d98 0000000000000403 R_AARCH64_RELATIVE 750 -0000000000010da0 0000000000000403 R_AARCH64_RELATIVE 700 -0000000000010ff0 0000000000000403 R_AARCH64_RELATIVE 600 -0000000000011008 0000000000000403 R_AARCH64_RELATIVE 11008 -0000000000010fd8 0000000400000401 R_AARCH64_GLOB_DAT 0000000000000000 _ITM_deregisterTMCloneTable + 0 -0000000000010fe0 0000000500000401 R_AARCH64_GLOB_DAT 0000000000000000 __cxa_finalize@GLIBC_2.17 + 0 -0000000000010fe8 0000000600000401 R_AARCH64_GLOB_DAT 0000000000000000 __gmon_start__ + 0 -0000000000010ff8 0000000800000401 R_AARCH64_GLOB_DAT 0000000000000000 _ITM_registerTMCloneTable + 0 - -Relocation section '.rela.plt' at offset 0x520 contains 4 entries: - Offset Info Type Symbol's Value Symbol's Name + Addend -0000000000010fb0 0000000300000402 R_AARCH64_JUMP_SLOT 0000000000000000 __libc_start_main@GLIBC_2.34 + 0 -0000000000010fb8 0000000500000402 R_AARCH64_JUMP_SLOT 0000000000000000 __cxa_finalize@GLIBC_2.17 + 0 -0000000000010fc0 0000000600000402 R_AARCH64_JUMP_SLOT 0000000000000000 __gmon_start__ + 0 -0000000000010fc8 0000000700000402 R_AARCH64_JUMP_SLOT 0000000000000000 abort@GLIBC_2.17 + 0 - -Symbol table '.dynsym' contains 9 entries: - Num: Value Size Type Bind Vis Ndx Name - 0: 0000000000000000 0 NOTYPE LOCAL DEFAULT UND - 1: 0000000000000580 0 SECTION LOCAL DEFAULT 11 .init - 2: 0000000000011000 0 SECTION LOCAL DEFAULT 22 .data - 3: 0000000000000000 0 FUNC GLOBAL DEFAULT UND __libc_start_main@GLIBC_2.34 (2) - 4: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_deregisterTMCloneTable - 5: 0000000000000000 0 FUNC WEAK DEFAULT UND __cxa_finalize@GLIBC_2.17 (3) - 6: 0000000000000000 0 NOTYPE WEAK DEFAULT UND __gmon_start__ - 7: 0000000000000000 0 FUNC GLOBAL DEFAULT UND abort@GLIBC_2.17 (3) - 8: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_registerTMCloneTable - -Symbol table '.symtab' contains 89 entries: - Num: Value Size Type Bind Vis Ndx Name - 0: 0000000000000000 0 NOTYPE LOCAL DEFAULT UND - 1: 0000000000000238 0 SECTION LOCAL DEFAULT 1 .interp - 2: 0000000000000254 0 SECTION LOCAL DEFAULT 2 .note.gnu.build-id - 3: 0000000000000278 0 SECTION LOCAL DEFAULT 3 .note.ABI-tag - 4: 0000000000000298 0 SECTION LOCAL DEFAULT 4 .gnu.hash - 5: 00000000000002b8 0 SECTION LOCAL DEFAULT 5 .dynsym - 6: 0000000000000390 0 SECTION LOCAL DEFAULT 6 .dynstr - 7: 000000000000041e 0 SECTION LOCAL DEFAULT 7 .gnu.version - 8: 0000000000000430 0 SECTION LOCAL DEFAULT 8 .gnu.version_r - 9: 0000000000000460 0 SECTION LOCAL DEFAULT 9 .rela.dyn - 10: 0000000000000520 0 SECTION LOCAL DEFAULT 10 .rela.plt - 11: 0000000000000580 0 SECTION LOCAL DEFAULT 11 .init - 12: 00000000000005a0 0 SECTION LOCAL DEFAULT 12 .plt - 13: 0000000000000600 0 SECTION LOCAL DEFAULT 13 .text - 14: 0000000000000754 0 SECTION LOCAL DEFAULT 14 .fini - 15: 0000000000000768 0 SECTION LOCAL DEFAULT 15 .rodata - 16: 000000000000076c 0 SECTION LOCAL DEFAULT 16 .eh_frame_hdr - 17: 00000000000007a8 0 SECTION LOCAL DEFAULT 17 .eh_frame - 18: 0000000000010d98 0 SECTION LOCAL DEFAULT 18 .init_array - 19: 0000000000010da0 0 SECTION LOCAL DEFAULT 19 .fini_array - 20: 0000000000010da8 0 SECTION LOCAL DEFAULT 20 .dynamic - 21: 0000000000010f98 0 SECTION LOCAL DEFAULT 21 .got - 22: 0000000000011000 0 SECTION LOCAL DEFAULT 22 .data - 23: 0000000000011010 0 SECTION LOCAL DEFAULT 23 .bss - 24: 0000000000000000 0 SECTION LOCAL DEFAULT 24 .comment - 25: 0000000000000000 0 FILE LOCAL DEFAULT ABS Scrt1.o - 26: 0000000000000278 0 NOTYPE LOCAL DEFAULT 3 $d - 27: 0000000000000278 32 OBJECT LOCAL DEFAULT 3 __abi_tag - 28: 0000000000000640 0 NOTYPE LOCAL DEFAULT 13 $x - 29: 00000000000007bc 0 NOTYPE LOCAL DEFAULT 17 $d - 30: 0000000000000768 0 NOTYPE LOCAL DEFAULT 15 $d - 31: 0000000000000000 0 FILE LOCAL DEFAULT ABS crti.o - 32: 0000000000000674 0 NOTYPE LOCAL DEFAULT 13 $x - 33: 0000000000000674 20 FUNC LOCAL DEFAULT 13 call_weak_fn - 34: 0000000000000580 0 NOTYPE LOCAL DEFAULT 11 $x - 35: 0000000000000754 0 NOTYPE LOCAL DEFAULT 14 $x - 36: 0000000000000000 0 FILE LOCAL DEFAULT ABS crtn.o - 37: 0000000000000590 0 NOTYPE LOCAL DEFAULT 11 $x - 38: 0000000000000760 0 NOTYPE LOCAL DEFAULT 14 $x - 39: 0000000000000000 0 FILE LOCAL DEFAULT ABS basic_lock_read.c - 40: 0000000000000600 0 NOTYPE LOCAL DEFAULT 13 $x - 41: 0000000000011014 0 NOTYPE LOCAL DEFAULT 23 $d - 42: 0000000000000830 0 NOTYPE LOCAL DEFAULT 17 $d - 43: 0000000000000000 0 FILE LOCAL DEFAULT ABS crtstuff.c - 44: 0000000000000690 0 NOTYPE LOCAL DEFAULT 13 $x - 45: 0000000000000690 0 FUNC LOCAL DEFAULT 13 deregister_tm_clones - 46: 00000000000006c0 0 FUNC LOCAL DEFAULT 13 register_tm_clones - 47: 0000000000011008 0 NOTYPE LOCAL DEFAULT 22 $d - 48: 0000000000000700 0 FUNC LOCAL DEFAULT 13 __do_global_dtors_aux - 49: 0000000000011010 1 OBJECT LOCAL DEFAULT 23 completed.0 - 50: 0000000000010da0 0 NOTYPE LOCAL DEFAULT 19 $d - 51: 0000000000010da0 0 OBJECT LOCAL DEFAULT 19 __do_global_dtors_aux_fini_array_entry - 52: 0000000000000750 0 FUNC LOCAL DEFAULT 13 frame_dummy - 53: 0000000000010d98 0 NOTYPE LOCAL DEFAULT 18 $d - 54: 0000000000010d98 0 OBJECT LOCAL DEFAULT 18 __frame_dummy_init_array_entry - 55: 00000000000007d0 0 NOTYPE LOCAL DEFAULT 17 $d - 56: 0000000000011010 0 NOTYPE LOCAL DEFAULT 23 $d - 57: 0000000000000000 0 FILE LOCAL DEFAULT ABS crtstuff.c - 58: 0000000000000844 0 NOTYPE LOCAL DEFAULT 17 $d - 59: 0000000000000844 0 OBJECT LOCAL DEFAULT 17 __FRAME_END__ - 60: 0000000000000000 0 FILE LOCAL DEFAULT ABS - 61: 0000000000010da8 0 OBJECT LOCAL DEFAULT ABS _DYNAMIC - 62: 000000000000076c 0 NOTYPE LOCAL DEFAULT 16 __GNU_EH_FRAME_HDR - 63: 0000000000010fd0 0 OBJECT LOCAL DEFAULT ABS _GLOBAL_OFFSET_TABLE_ - 64: 00000000000005a0 0 NOTYPE LOCAL DEFAULT 12 $x - 65: 0000000000000000 0 FUNC GLOBAL DEFAULT UND __libc_start_main@GLIBC_2.34 - 66: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_deregisterTMCloneTable - 67: 0000000000011000 0 NOTYPE WEAK DEFAULT 22 data_start - 68: 0000000000011010 0 NOTYPE GLOBAL DEFAULT 23 __bss_start__ - 69: 0000000000000000 0 FUNC WEAK DEFAULT UND __cxa_finalize@GLIBC_2.17 - 70: 0000000000011020 0 NOTYPE GLOBAL DEFAULT 23 _bss_end__ - 71: 0000000000011010 0 NOTYPE GLOBAL DEFAULT 22 _edata - 72: 0000000000011014 4 OBJECT GLOBAL DEFAULT 23 z - 73: 0000000000011018 4 OBJECT GLOBAL DEFAULT 23 x - 74: 0000000000000754 0 FUNC GLOBAL HIDDEN 14 _fini - 75: 0000000000011020 0 NOTYPE GLOBAL DEFAULT 23 __bss_end__ - 76: 0000000000011000 0 NOTYPE GLOBAL DEFAULT 22 __data_start - 77: 0000000000000000 0 NOTYPE WEAK DEFAULT UND __gmon_start__ - 78: 0000000000011008 0 OBJECT GLOBAL HIDDEN 22 __dso_handle - 79: 0000000000000000 0 FUNC GLOBAL DEFAULT UND abort@GLIBC_2.17 - 80: 0000000000000768 4 OBJECT GLOBAL DEFAULT 15 _IO_stdin_used - 81: 0000000000011020 0 NOTYPE GLOBAL DEFAULT 23 _end - 82: 0000000000000640 52 FUNC GLOBAL DEFAULT 13 _start - 83: 0000000000011020 0 NOTYPE GLOBAL DEFAULT 23 __end__ - 84: 0000000000011010 0 NOTYPE GLOBAL DEFAULT 23 __bss_start - 85: 0000000000000600 28 FUNC GLOBAL DEFAULT 13 main - 86: 0000000000011010 0 OBJECT GLOBAL HIDDEN 22 __TMC_END__ - 87: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_registerTMCloneTable - 88: 0000000000000580 0 FUNC GLOBAL HIDDEN 11 _init diff --git a/src/test/correct/basic_lock_read/gcc_O2/basic_lock_read_gtirb.expected b/src/test/correct/basic_lock_read/gcc_O2/basic_lock_read_gtirb.expected index f23277478..6af7b3bcc 100644 --- a/src/test/correct/basic_lock_read/gcc_O2/basic_lock_read_gtirb.expected +++ b/src/test/correct/basic_lock_read/gcc_O2/basic_lock_read_gtirb.expected @@ -69,7 +69,7 @@ implementation {:extern} guarantee_reflexive() assert (memory_load32_le(mem, $z_addr) == memory_load32_le(mem, $z_addr)); } -procedure main_1536(); +procedure main(); modifies Gamma_R0, Gamma_R1, Gamma_mem, R0, R1, mem; free requires (memory_load64_le(mem, 69632bv64) == 0bv64); free requires (memory_load64_le(mem, 69640bv64) == 69640bv64); @@ -85,43 +85,43 @@ procedure main_1536(); free ensures (memory_load64_le(mem, 69616bv64) == 1536bv64); free ensures (memory_load64_le(mem, 69640bv64) == 69640bv64); -implementation main_1536() +implementation main() { - var Gamma_load14: bool; - var load14: bv32; + var $load14: bv32; + var Gamma_$load14: bool; var z_old: bv32; - main_1536__0__FF2SjjvqSsOWEiG9v2p92Q: - assume {:captureState "main_1536__0__FF2SjjvqSsOWEiG9v2p92Q"} true; + $main$__0__$FF2SjjvqSsOWEiG9v2p92Q: + assume {:captureState "$main$__0__$FF2SjjvqSsOWEiG9v2p92Q"} true; R0, Gamma_R0 := 69632bv64, true; R1, Gamma_R1 := bvadd64(R0, 20bv64), Gamma_R0; call rely(); - load14, Gamma_load14 := memory_load32_le(mem, bvadd64(R0, 20bv64)), (gamma_load32(Gamma_mem, bvadd64(R0, 20bv64)) || L(mem, bvadd64(R0, 20bv64))); - R0, Gamma_R0 := zero_extend32_32(load14), Gamma_load14; + $load14, Gamma_$load14 := memory_load32_le(mem, bvadd64(R0, 20bv64)), (gamma_load32(Gamma_mem, bvadd64(R0, 20bv64)) || L(mem, bvadd64(R0, 20bv64))); + R0, Gamma_R0 := zero_extend32_32($load14), Gamma_$load14; assert Gamma_R0; - goto main_1536__0__FF2SjjvqSsOWEiG9v2p92Q_goto_main_1536__2__MYSV1omOQM2b08Jj~q4Iuw, main_1536__0__FF2SjjvqSsOWEiG9v2p92Q_goto_main_1536__1__5dIr9jyaTQaHqLa9MRdoFQ; - main_1536__0__FF2SjjvqSsOWEiG9v2p92Q_goto_main_1536__1__5dIr9jyaTQaHqLa9MRdoFQ: - assume {:captureState "main_1536__0__FF2SjjvqSsOWEiG9v2p92Q_goto_main_1536__1__5dIr9jyaTQaHqLa9MRdoFQ"} true; - assume (!((R0[32:0] == 0bv32) == false)); + goto $main$__0__$FF2SjjvqSsOWEiG9v2p92Q_goto_$main$__2__$MYSV1omOQM2b08Jj~q4Iuw, $main$__0__$FF2SjjvqSsOWEiG9v2p92Q_goto_$main$__1__$5dIr9jyaTQaHqLa9MRdoFQ; + $main$__1__$5dIr9jyaTQaHqLa9MRdoFQ: + assume {:captureState "$main$__1__$5dIr9jyaTQaHqLa9MRdoFQ"} true; call rely(); - z_old := memory_load32_le(mem, $z_addr); assert (L(mem, bvadd64(R1, 4bv64)) ==> true); + z_old := memory_load32_le(mem, $z_addr); mem, Gamma_mem := memory_store32_le(mem, bvadd64(R1, 4bv64), 0bv32), gamma_store32(Gamma_mem, bvadd64(R1, 4bv64), true); assert (memory_load32_le(mem, $z_addr) == z_old); - assume {:captureState "1552_0"} true; - goto main_1536__1__5dIr9jyaTQaHqLa9MRdoFQ; - main_1536__1__5dIr9jyaTQaHqLa9MRdoFQ: - assume {:captureState "main_1536__1__5dIr9jyaTQaHqLa9MRdoFQ"} true; - goto main_1536__2__MYSV1omOQM2b08Jj~q4Iuw; - main_1536__0__FF2SjjvqSsOWEiG9v2p92Q_goto_main_1536__2__MYSV1omOQM2b08Jj~q4Iuw: - assume {:captureState "main_1536__0__FF2SjjvqSsOWEiG9v2p92Q_goto_main_1536__2__MYSV1omOQM2b08Jj~q4Iuw"} true; - assume ((R0[32:0] == 0bv32) == false); - goto main_1536__2__MYSV1omOQM2b08Jj~q4Iuw; - main_1536__2__MYSV1omOQM2b08Jj~q4Iuw: - assume {:captureState "main_1536__2__MYSV1omOQM2b08Jj~q4Iuw"} true; + assume {:captureState "1552$0"} true; + goto $main$__2__$MYSV1omOQM2b08Jj~q4Iuw; + $main$__2__$MYSV1omOQM2b08Jj~q4Iuw: + assume {:captureState "$main$__2__$MYSV1omOQM2b08Jj~q4Iuw"} true; R0, Gamma_R0 := 0bv64, true; - goto main_1536_basil_return; - main_1536_basil_return: - assume {:captureState "main_1536_basil_return"} true; + goto main_basil_return; + $main$__0__$FF2SjjvqSsOWEiG9v2p92Q_goto_$main$__2__$MYSV1omOQM2b08Jj~q4Iuw: + assume {:captureState "$main$__0__$FF2SjjvqSsOWEiG9v2p92Q_goto_$main$__2__$MYSV1omOQM2b08Jj~q4Iuw"} true; + assume ((R0[32:0] == 0bv32) == false); + goto $main$__2__$MYSV1omOQM2b08Jj~q4Iuw; + $main$__0__$FF2SjjvqSsOWEiG9v2p92Q_goto_$main$__1__$5dIr9jyaTQaHqLa9MRdoFQ: + assume {:captureState "$main$__0__$FF2SjjvqSsOWEiG9v2p92Q_goto_$main$__1__$5dIr9jyaTQaHqLa9MRdoFQ"} true; + assume (!((R0[32:0] == 0bv32) == false)); + goto $main$__1__$5dIr9jyaTQaHqLa9MRdoFQ; + main_basil_return: + assume {:captureState "main_basil_return"} true; return; } diff --git a/src/test/correct/basic_lock_read/gcc_pic/basic_lock_read.adt b/src/test/correct/basic_lock_read/gcc_pic/basic_lock_read.adt deleted file mode 100644 index abffefcbd..000000000 --- a/src/test/correct/basic_lock_read/gcc_pic/basic_lock_read.adt +++ /dev/null @@ -1,543 +0,0 @@ -Project(Attrs([Attr("filename","\"gcc_pic/basic_lock_read.out\""), -Attr("image-specification","(declare abi (name str))\n(declare arch (name str))\n(declare base-address (addr int))\n(declare bias (off int))\n(declare bits (size int))\n(declare code-region (addr int) (size int) (off int))\n(declare code-start (addr int))\n(declare entry-point (addr int))\n(declare external-reference (addr int) (name str))\n(declare format (name str))\n(declare is-executable (flag bool))\n(declare is-little-endian (flag bool))\n(declare llvm:base-address (addr int))\n(declare llvm:code-entry (name str) (off int) (size int))\n(declare llvm:coff-import-library (name str))\n(declare llvm:coff-virtual-section-header (name str) (addr int) (size int))\n(declare llvm:elf-program-header (name str) (off int) (size int))\n(declare llvm:elf-program-header-flags (name str) (ld bool) (r bool) \n (w bool) (x bool))\n(declare llvm:elf-virtual-program-header (name str) (addr int) (size int))\n(declare llvm:entry-point (addr int))\n(declare llvm:macho-symbol (name str) (value int))\n(declare llvm:name-reference (at int) (name str))\n(declare llvm:relocation (at int) (addr int))\n(declare llvm:section-entry (name str) (addr int) (size int) (off int))\n(declare llvm:section-flags (name str) (r bool) (w bool) (x bool))\n(declare llvm:segment-command (name str) (off int) (size int))\n(declare llvm:segment-command-flags (name str) (r bool) (w bool) (x bool))\n(declare llvm:symbol-entry (name str) (addr int) (size int) (off int)\n (value int))\n(declare llvm:virtual-segment-command (name str) (addr int) (size int))\n(declare mapped (addr int) (size int) (off int))\n(declare named-region (addr int) (size int) (name str))\n(declare named-symbol (addr int) (name str))\n(declare require (name str))\n(declare section (addr int) (size int))\n(declare segment (addr int) (size int) (r bool) (w bool) (x bool))\n(declare subarch (name str))\n(declare symbol-chunk (addr int) (size int) (root int))\n(declare symbol-value (addr int) (value int))\n(declare system (name str))\n(declare vendor (name str))\n\n(abi unknown)\n(arch aarch64)\n(base-address 0)\n(bias 0)\n(bits 64)\n(code-region 1944 20 1944)\n(code-region 1600 344 1600)\n(code-region 1488 96 1488)\n(code-region 1456 24 1456)\n(code-start 1652)\n(code-start 1600)\n(code-start 1876)\n(entry-point 1600)\n(external-reference 69576 _ITM_deregisterTMCloneTable)\n(external-reference 69584 __cxa_finalize)\n(external-reference 69608 __gmon_start__)\n(external-reference 69624 _ITM_registerTMCloneTable)\n(external-reference 69536 __libc_start_main)\n(external-reference 69544 __cxa_finalize)\n(external-reference 69552 __gmon_start__)\n(external-reference 69560 abort)\n(format elf)\n(is-executable true)\n(is-little-endian true)\n(llvm:base-address 0)\n(llvm:code-entry abort 0 0)\n(llvm:code-entry __cxa_finalize 0 0)\n(llvm:code-entry __libc_start_main 0 0)\n(llvm:code-entry _init 1456 0)\n(llvm:code-entry main 1876 68)\n(llvm:code-entry _start 1600 52)\n(llvm:code-entry abort@GLIBC_2.17 0 0)\n(llvm:code-entry _fini 1944 0)\n(llvm:code-entry __cxa_finalize@GLIBC_2.17 0 0)\n(llvm:code-entry __libc_start_main@GLIBC_2.34 0 0)\n(llvm:code-entry frame_dummy 1872 0)\n(llvm:code-entry __do_global_dtors_aux 1792 0)\n(llvm:code-entry register_tm_clones 1728 0)\n(llvm:code-entry deregister_tm_clones 1680 0)\n(llvm:code-entry call_weak_fn 1652 20)\n(llvm:code-entry .fini 1944 20)\n(llvm:code-entry .text 1600 344)\n(llvm:code-entry .plt 1488 96)\n(llvm:code-entry .init 1456 24)\n(llvm:elf-program-header 08 3464 632)\n(llvm:elf-program-header 07 0 0)\n(llvm:elf-program-header 06 1968 60)\n(llvm:elf-program-header 05 596 68)\n(llvm:elf-program-header 04 3480 496)\n(llvm:elf-program-header 03 3464 648)\n(llvm:elf-program-header 02 0 2196)\n(llvm:elf-program-header 01 568 27)\n(llvm:elf-program-header 00 64 504)\n(llvm:elf-program-header-flags 08 false true false false)\n(llvm:elf-program-header-flags 07 false true true false)\n(llvm:elf-program-header-flags 06 false true false false)\n(llvm:elf-program-header-flags 05 false true false false)\n(llvm:elf-program-header-flags 04 false true true false)\n(llvm:elf-program-header-flags 03 true true true false)\n(llvm:elf-program-header-flags 02 true true false true)\n(llvm:elf-program-header-flags 01 false true false false)\n(llvm:elf-program-header-flags 00 false true false false)\n(llvm:elf-virtual-program-header 08 69000 632)\n(llvm:elf-virtual-program-header 07 0 0)\n(llvm:elf-virtual-program-header 06 1968 60)\n(llvm:elf-virtual-program-header 05 596 68)\n(llvm:elf-virtual-program-header 04 69016 496)\n(llvm:elf-virtual-program-header 03 69000 664)\n(llvm:elf-virtual-program-header 02 0 2196)\n(llvm:elf-virtual-program-header 01 568 27)\n(llvm:elf-virtual-program-header 00 64 504)\n(llvm:entry-point 1600)\n(llvm:name-reference 69560 abort)\n(llvm:name-reference 69552 __gmon_start__)\n(llvm:name-reference 69544 __cxa_finalize)\n(llvm:name-reference 69536 __libc_start_main)\n(llvm:name-reference 69624 _ITM_registerTMCloneTable)\n(llvm:name-reference 69608 __gmon_start__)\n(llvm:name-reference 69584 __cxa_finalize)\n(llvm:name-reference 69576 _ITM_deregisterTMCloneTable)\n(llvm:section-entry .shstrtab 0 250 6849)\n(llvm:section-entry .strtab 0 553 6296)\n(llvm:section-entry .symtab 0 2136 4160)\n(llvm:section-entry .comment 0 43 4112)\n(llvm:section-entry .bss 69648 16 4112)\n(llvm:section-entry .data 69632 16 4096)\n(llvm:section-entry .got 69512 120 3976)\n(llvm:section-entry .dynamic 69016 496 3480)\n(llvm:section-entry .fini_array 69008 8 3472)\n(llvm:section-entry .init_array 69000 8 3464)\n(llvm:section-entry .eh_frame 2032 164 2032)\n(llvm:section-entry .eh_frame_hdr 1968 60 1968)\n(llvm:section-entry .rodata 1964 4 1964)\n(llvm:section-entry .fini 1944 20 1944)\n(llvm:section-entry .text 1600 344 1600)\n(llvm:section-entry .plt 1488 96 1488)\n(llvm:section-entry .init 1456 24 1456)\n(llvm:section-entry .rela.plt 1360 96 1360)\n(llvm:section-entry .rela.dyn 1120 240 1120)\n(llvm:section-entry .gnu.version_r 1072 48 1072)\n(llvm:section-entry .gnu.version 1054 18 1054)\n(llvm:section-entry .dynstr 912 141 912)\n(llvm:section-entry .dynsym 696 216 696)\n(llvm:section-entry .gnu.hash 664 28 664)\n(llvm:section-entry .note.ABI-tag 632 32 632)\n(llvm:section-entry .note.gnu.build-id 596 36 596)\n(llvm:section-entry .interp 568 27 568)\n(llvm:section-flags .shstrtab true false false)\n(llvm:section-flags .strtab true false false)\n(llvm:section-flags .symtab true false false)\n(llvm:section-flags .comment true false false)\n(llvm:section-flags .bss true true false)\n(llvm:section-flags .data true true false)\n(llvm:section-flags .got true true false)\n(llvm:section-flags .dynamic true true false)\n(llvm:section-flags .fini_array true true false)\n(llvm:section-flags .init_array true true false)\n(llvm:section-flags .eh_frame true false false)\n(llvm:section-flags .eh_frame_hdr true false false)\n(llvm:section-flags .rodata true false false)\n(llvm:section-flags .fini true false true)\n(llvm:section-flags .text true false true)\n(llvm:section-flags .plt true false true)\n(llvm:section-flags .init true false true)\n(llvm:section-flags .rela.plt true false false)\n(llvm:section-flags .rela.dyn true false false)\n(llvm:section-flags .gnu.version_r true false false)\n(llvm:section-flags .gnu.version true false false)\n(llvm:section-flags .dynstr true false false)\n(llvm:section-flags .dynsym true false false)\n(llvm:section-flags .gnu.hash true false false)\n(llvm:section-flags .note.ABI-tag true false false)\n(llvm:section-flags .note.gnu.build-id true false false)\n(llvm:section-flags .interp true false false)\n(llvm:symbol-entry abort 0 0 0 0)\n(llvm:symbol-entry __cxa_finalize 0 0 0 0)\n(llvm:symbol-entry __libc_start_main 0 0 0 0)\n(llvm:symbol-entry _init 1456 0 1456 1456)\n(llvm:symbol-entry main 1876 68 1876 1876)\n(llvm:symbol-entry _start 1600 52 1600 1600)\n(llvm:symbol-entry abort@GLIBC_2.17 0 0 0 0)\n(llvm:symbol-entry _fini 1944 0 1944 1944)\n(llvm:symbol-entry __cxa_finalize@GLIBC_2.17 0 0 0 0)\n(llvm:symbol-entry __libc_start_main@GLIBC_2.34 0 0 0 0)\n(llvm:symbol-entry frame_dummy 1872 0 1872 1872)\n(llvm:symbol-entry __do_global_dtors_aux 1792 0 1792 1792)\n(llvm:symbol-entry register_tm_clones 1728 0 1728 1728)\n(llvm:symbol-entry deregister_tm_clones 1680 0 1680 1680)\n(llvm:symbol-entry call_weak_fn 1652 20 1652 1652)\n(mapped 0 2196 0)\n(mapped 69000 648 3464)\n(named-region 0 2196 02)\n(named-region 69000 664 03)\n(named-region 568 27 .interp)\n(named-region 596 36 .note.gnu.build-id)\n(named-region 632 32 .note.ABI-tag)\n(named-region 664 28 .gnu.hash)\n(named-region 696 216 .dynsym)\n(named-region 912 141 .dynstr)\n(named-region 1054 18 .gnu.version)\n(named-region 1072 48 .gnu.version_r)\n(named-region 1120 240 .rela.dyn)\n(named-region 1360 96 .rela.plt)\n(named-region 1456 24 .init)\n(named-region 1488 96 .plt)\n(named-region 1600 344 .text)\n(named-region 1944 20 .fini)\n(named-region 1964 4 .rodata)\n(named-region 1968 60 .eh_frame_hdr)\n(named-region 2032 164 .eh_frame)\n(named-region 69000 8 .init_array)\n(named-region 69008 8 .fini_array)\n(named-region 69016 496 .dynamic)\n(named-region 69512 120 .got)\n(named-region 69632 16 .data)\n(named-region 69648 16 .bss)\n(named-region 0 43 .comment)\n(named-region 0 2136 .symtab)\n(named-region 0 553 .strtab)\n(named-region 0 250 .shstrtab)\n(named-symbol 1652 call_weak_fn)\n(named-symbol 1680 deregister_tm_clones)\n(named-symbol 1728 register_tm_clones)\n(named-symbol 1792 __do_global_dtors_aux)\n(named-symbol 1872 frame_dummy)\n(named-symbol 0 __libc_start_main@GLIBC_2.34)\n(named-symbol 0 __cxa_finalize@GLIBC_2.17)\n(named-symbol 1944 _fini)\n(named-symbol 0 abort@GLIBC_2.17)\n(named-symbol 1600 _start)\n(named-symbol 1876 main)\n(named-symbol 1456 _init)\n(named-symbol 0 __libc_start_main)\n(named-symbol 0 __cxa_finalize)\n(named-symbol 0 abort)\n(require libc.so.6)\n(section 568 27)\n(section 596 36)\n(section 632 32)\n(section 664 28)\n(section 696 216)\n(section 912 141)\n(section 1054 18)\n(section 1072 48)\n(section 1120 240)\n(section 1360 96)\n(section 1456 24)\n(section 1488 96)\n(section 1600 344)\n(section 1944 20)\n(section 1964 4)\n(section 1968 60)\n(section 2032 164)\n(section 69000 8)\n(section 69008 8)\n(section 69016 496)\n(section 69512 120)\n(section 69632 16)\n(section 69648 16)\n(section 0 43)\n(section 0 2136)\n(section 0 553)\n(section 0 250)\n(segment 0 2196 true false true)\n(segment 69000 664 true true false)\n(subarch v8)\n(symbol-chunk 1652 20 1652)\n(symbol-chunk 1600 52 1600)\n(symbol-chunk 1876 68 1876)\n(symbol-value 1652 1652)\n(symbol-value 1680 1680)\n(symbol-value 1728 1728)\n(symbol-value 1792 1792)\n(symbol-value 1872 1872)\n(symbol-value 1944 1944)\n(symbol-value 1600 1600)\n(symbol-value 1876 1876)\n(symbol-value 1456 1456)\n(symbol-value 0 0)\n(system \"\")\n(vendor \"\")\n"), -Attr("abi-name","\"aarch64-linux-gnu-elf\"")]), -Sections([Section(".shstrtab", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x40\x06\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xc0\x1b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x38\x00\x09\x00\x40\x00\x1c\x00\x1b\x00\x06\x00\x00\x00\x04\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x04\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x94\x08\x00\x00\x00\x00\x00\x00\x94\x08\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x01\x00\x00\x00\x06\x00\x00\x00\x88\x0d\x00\x00\x00\x00\x00\x00\x88\x0d"), -Section(".strtab", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x40\x06\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xc0\x1b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x38\x00\x09\x00\x40\x00\x1c\x00\x1b\x00\x06\x00\x00\x00\x04\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x04\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x94\x08\x00\x00\x00\x00\x00\x00\x94\x08\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x01\x00\x00\x00\x06\x00\x00\x00\x88\x0d\x00\x00\x00\x00\x00\x00\x88\x0d\x01\x00\x00\x00\x00\x00\x88\x0d\x01\x00\x00\x00\x00\x00\x88\x02\x00\x00\x00\x00\x00\x00\x98\x02\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x02\x00\x00\x00\x06\x00\x00\x00\x98\x0d\x00\x00\x00\x00\x00\x00\x98\x0d\x01\x00\x00\x00\x00\x00\x98\x0d\x01\x00\x00\x00\x00\x00\xf0\x01\x00\x00\x00\x00\x00\x00\xf0\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x04\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x50\xe5\x74\x64\x04\x00\x00\x00\xb0\x07\x00\x00\x00\x00\x00\x00\xb0\x07\x00\x00\x00\x00\x00\x00\xb0\x07\x00\x00\x00\x00\x00\x00\x3c\x00\x00\x00\x00\x00\x00\x00\x3c\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x51\xe5\x74\x64\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x52\xe5\x74\x64\x04\x00\x00\x00\x88\x0d\x00\x00\x00\x00\x00\x00\x88\x0d\x01\x00\x00\x00\x00\x00\x88\x0d\x01\x00\x00\x00\x00\x00\x78\x02\x00\x00\x00\x00\x00\x00\x78"), -Section(".symtab", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x40\x06\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xc0\x1b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x38\x00\x09\x00\x40\x00\x1c\x00\x1b\x00\x06\x00\x00\x00\x04\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x04\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x94\x08\x00\x00\x00\x00\x00\x00\x94\x08\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x01\x00\x00\x00\x06\x00\x00\x00\x88\x0d\x00\x00\x00\x00\x00\x00\x88\x0d\x01\x00\x00\x00\x00\x00\x88\x0d\x01\x00\x00\x00\x00\x00\x88\x02\x00\x00\x00\x00\x00\x00\x98\x02\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x02\x00\x00\x00\x06\x00\x00\x00\x98\x0d\x00\x00\x00\x00\x00\x00\x98\x0d\x01\x00\x00\x00\x00\x00\x98\x0d\x01\x00\x00\x00\x00\x00\xf0\x01\x00\x00\x00\x00\x00\x00\xf0\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x04\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x50\xe5\x74\x64\x04\x00\x00\x00\xb0\x07\x00\x00\x00\x00\x00\x00\xb0\x07\x00\x00\x00\x00\x00\x00\xb0\x07\x00\x00\x00\x00\x00\x00\x3c\x00\x00\x00\x00\x00\x00\x00\x3c\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x51\xe5\x74\x64\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x52\xe5\x74\x64\x04\x00\x00\x00\x88\x0d\x00\x00\x00\x00\x00\x00\x88\x0d\x01\x00\x00\x00\x00\x00\x88\x0d\x01\x00\x00\x00\x00\x00\x78\x02\x00\x00\x00\x00\x00\x00\x78\x02\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x2f\x6c\x69\x62\x2f\x6c\x64\x2d\x6c\x69\x6e\x75\x78\x2d\x61\x61\x72\x63\x68\x36\x34\x2e\x73\x6f\x2e\x31\x00\x00\x04\x00\x00\x00\x14\x00\x00\x00\x03\x00\x00\x00\x47\x4e\x55\x00\x78\xd8\x5e\x99\xc9\x99\xd7\x53\xc7\xa5\xdf\x3f\x60\x08\x6f\x24\x8a\xa1\xf3\xae\x04\x00\x00\x00\x10\x00\x00\x00\x01\x00\x00\x00\x47\x4e\x55\x00\x00\x00\x00\x00\x03\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x01\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x0b\x00\xb0\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x16\x00\x00\x10\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x48\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x22\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x22\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x73\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5f\x5f\x63\x78\x61\x5f\x66\x69\x6e\x61\x6c\x69\x7a\x65\x00\x5f\x5f\x6c\x69\x62\x63\x5f\x73\x74\x61\x72\x74\x5f\x6d\x61\x69\x6e\x00\x61\x62\x6f\x72\x74\x00\x6c\x69\x62\x63\x2e\x73\x6f\x2e\x36\x00\x47\x4c\x49\x42\x43\x5f\x32\x2e\x31\x37\x00\x47\x4c\x49\x42\x43\x5f\x32\x2e\x33\x34\x00\x5f\x49\x54\x4d\x5f\x64\x65\x72\x65\x67\x69\x73\x74\x65\x72\x54\x4d\x43\x6c\x6f\x6e\x65\x54\x61\x62\x6c\x65\x00\x5f\x5f\x67\x6d\x6f\x6e\x5f\x73\x74\x61\x72\x74\x5f\x5f\x00\x5f\x49\x54\x4d\x5f\x72\x65\x67\x69\x73\x74\x65\x72\x54\x4d\x43\x6c\x6f\x6e\x65\x54\x61\x62\x6c\x65\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x01\x00\x03\x00\x01\x00\x03\x00\x01\x00\x01\x00\x02\x00\x28\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x97\x91\x96\x06\x00\x00\x03\x00\x32\x00\x00\x00\x10\x00\x00\x00\xb4\x91\x96\x06\x00\x00\x02\x00\x3d\x00\x00\x00\x00\x00\x00\x00\x88\x0d\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x50\x07\x00\x00\x00\x00\x00\x00\x90\x0d\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\xd8\x0f\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x18\x10\x01\x00\x00\x00\x00\x00\xe0\x0f\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x14\x10\x01\x00\x00\x00\x00\x00\xf0\x0f\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x54\x07\x00\x00\x00\x00\x00\x00\x08\x10\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x08\x10\x01\x00\x00\x00\x00\x00\xc8\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xd0\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe8\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xf8\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xa0\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xa8\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xb0\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xb8\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1f\x20\x03\xd5\xfd\x7b\xbf\xa9\xfd\x03\x00\x91\x2e\x00\x00\x94\xfd\x7b\xc1\xa8\xc0\x03\x5f\xd6\x00\x00\x00\x00\x00\x00\x00\x00\xf0\x7b\xbf\xa9\x90\x00\x00\x90\x11\xce\x47\xf9\x10\x62\x3e\x91\x20\x02\x1f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x90\x00\x00\x90\x11\xd2\x47\xf9\x10\x82\x3e\x91\x20\x02\x1f\xd6\x90\x00\x00\x90\x11\xd6\x47\xf9\x10\xa2\x3e\x91\x20\x02\x1f\xd6\x90\x00\x00\x90\x11\xda\x47\xf9\x10\xc2\x3e\x91\x20\x02\x1f\xd6\x90\x00\x00\x90\x11\xde\x47\xf9\x10\xe2\x3e\x91\x20\x02\x1f\xd6\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1f\x20\x03\xd5\x1d\x00\x80\xd2\x1e\x00\x80\xd2\xe5\x03\x00\xaa\xe1\x03\x40\xf9\xe2\x23\x00\x91\xe6\x03\x00\x91\x80\x00\x00\x90\x00\xf8\x47\xf9\x03\x00\x80\xd2\x04\x00\x80\xd2\xe1\xff\xff\x97\xec\xff\xff\x97\x80\x00\x00\x90\x00\xf4\x47\xf9\x40\x00\x00\xb4\xe4\xff\xff\x17\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x80\x00\x00\xb0\x00\x40\x00\x91\x81\x00\x00\xb0\x21\x40\x00\x91\x3f\x00\x00\xeb\xc0\x00\x00\x54\x81\x00\x00\x90\x21\xe4\x47\xf9\x61\x00\x00\xb4\xf0\x03\x01\xaa\x00\x02\x1f\xd6\xc0\x03\x5f\xd6\x80\x00\x00\xb0\x00\x40\x00\x91\x81\x00\x00\xb0\x21\x40\x00\x91\x21\x00\x00\xcb\x22\xfc\x7f\xd3\x41\x0c\x81\x8b\x21\xfc\x41\x93\xc1\x00\x00\xb4\x82\x00\x00\x90\x42\xfc\x47\xf9\x62\x00\x00\xb4\xf0\x03\x02\xaa\x00\x02\x1f\xd6\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\xfd\x7b\xbe\xa9\xfd\x03\x00\x91\xf3\x0b\x00\xf9\x93\x00\x00\xb0\x60\x42\x40\x39\x40\x01\x00\x35\x80\x00\x00\x90\x00\xe8\x47\xf9\x80\x00\x00\xb4\x80\x00\x00\xb0\x00\x04\x40\xf9\xb5\xff\xff\x97\xd8\xff\xff\x97\x20\x00\x80\x52\x60\x42\x00\x39\xf3\x0b\x40\xf9\xfd\x7b\xc2\xa8\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\xdc\xff\xff\x17\xff\x43\x00\xd1\xff\x0f\x00\xb9\x80\x00\x00\x90\x00\xec\x47\xf9\x00\x00\x40\xb9\x1f\x00\x00\x71\x01\x01\x00\x54\x80\x00\x00\x90\x00\xf0\x47\xf9\x1f\x00\x00\xb9\x80\x00\x00\x90\x00\xf0\x47\xf9\x00\x00\x40\xb9\xe0\x0f\x00\xb9\xe0\x0f\x40\xb9\xff\x43\x00\x91\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\xfd\x7b\xbf\xa9\xfd\x03\x00\x91\xfd\x7b\xc1\xa8\xc0\x03\x5f\xd6\x01\x00\x02\x00\x01\x1b\x03\x3b\x3c\x00\x00\x00\x06\x00\x00\x00\x90\xfe\xff\xff\x54\x00\x00\x00\xe0\xfe\xff\xff\x68\x00\x00\x00\x10\xff\xff\xff\x7c\x00\x00\x00\x50\xff\xff\xff\x90\x00\x00\x00\xa0\xff\xff\xff\xb4\x00\x00\x00\xa4\xff\xff\xff\xc8\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x01\x7a\x52\x00\x04\x78\x1e\x01\x1b\x0c\x1f\x00\x10\x00\x00\x00\x18\x00\x00\x00\x34\xfe\xff\xff\x34\x00\x00\x00\x00\x41\x07\x1e\x10\x00\x00\x00\x2c\x00\x00\x00\x70\xfe\xff\xff\x30\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x40\x00\x00\x00\x8c\xfe\xff\xff\x3c\x00\x00\x00\x00\x00\x00\x00\x20\x00\x00\x00\x54\x00\x00\x00\xb8\xfe\xff\xff\x48\x00\x00\x00\x00\x41\x0e\x20\x9d\x04\x9e\x03"), -Section(".comment", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x40\x06\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xc0\x1b\x00"), -Section(".interp", 0x238, "\x2f\x6c\x69\x62\x2f\x6c\x64\x2d\x6c\x69\x6e\x75\x78\x2d\x61\x61\x72\x63\x68\x36\x34\x2e\x73\x6f\x2e\x31\x00"), -Section(".note.gnu.build-id", 0x254, "\x04\x00\x00\x00\x14\x00\x00\x00\x03\x00\x00\x00\x47\x4e\x55\x00\x78\xd8\x5e\x99\xc9\x99\xd7\x53\xc7\xa5\xdf\x3f\x60\x08\x6f\x24\x8a\xa1\xf3\xae"), -Section(".note.ABI-tag", 0x278, "\x04\x00\x00\x00\x10\x00\x00\x00\x01\x00\x00\x00\x47\x4e\x55\x00\x00\x00\x00\x00\x03\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00"), -Section(".gnu.hash", 0x298, "\x01\x00\x00\x00\x01\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".dynsym", 0x2B8, "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x0b\x00\xb0\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x16\x00\x00\x10\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x48\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x22\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x22\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x73\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".dynstr", 0x390, "\x00\x5f\x5f\x63\x78\x61\x5f\x66\x69\x6e\x61\x6c\x69\x7a\x65\x00\x5f\x5f\x6c\x69\x62\x63\x5f\x73\x74\x61\x72\x74\x5f\x6d\x61\x69\x6e\x00\x61\x62\x6f\x72\x74\x00\x6c\x69\x62\x63\x2e\x73\x6f\x2e\x36\x00\x47\x4c\x49\x42\x43\x5f\x32\x2e\x31\x37\x00\x47\x4c\x49\x42\x43\x5f\x32\x2e\x33\x34\x00\x5f\x49\x54\x4d\x5f\x64\x65\x72\x65\x67\x69\x73\x74\x65\x72\x54\x4d\x43\x6c\x6f\x6e\x65\x54\x61\x62\x6c\x65\x00\x5f\x5f\x67\x6d\x6f\x6e\x5f\x73\x74\x61\x72\x74\x5f\x5f\x00\x5f\x49\x54\x4d\x5f\x72\x65\x67\x69\x73\x74\x65\x72\x54\x4d\x43\x6c\x6f\x6e\x65\x54\x61\x62\x6c\x65\x00"), -Section(".gnu.version", 0x41E, "\x00\x00\x00\x00\x00\x00\x02\x00\x01\x00\x03\x00\x01\x00\x03\x00\x01\x00"), -Section(".gnu.version_r", 0x430, "\x01\x00\x02\x00\x28\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x97\x91\x96\x06\x00\x00\x03\x00\x32\x00\x00\x00\x10\x00\x00\x00\xb4\x91\x96\x06\x00\x00\x02\x00\x3d\x00\x00\x00\x00\x00\x00\x00"), -Section(".rela.dyn", 0x460, "\x88\x0d\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x50\x07\x00\x00\x00\x00\x00\x00\x90\x0d\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\xd8\x0f\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x18\x10\x01\x00\x00\x00\x00\x00\xe0\x0f\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x14\x10\x01\x00\x00\x00\x00\x00\xf0\x0f\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x54\x07\x00\x00\x00\x00\x00\x00\x08\x10\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x08\x10\x01\x00\x00\x00\x00\x00\xc8\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xd0\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe8\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xf8\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".rela.plt", 0x550, "\xa0\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xa8\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xb0\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xb8\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".init", 0x5B0, "\x1f\x20\x03\xd5\xfd\x7b\xbf\xa9\xfd\x03\x00\x91\x2e\x00\x00\x94\xfd\x7b\xc1\xa8\xc0\x03\x5f\xd6"), -Section(".plt", 0x5D0, "\xf0\x7b\xbf\xa9\x90\x00\x00\x90\x11\xce\x47\xf9\x10\x62\x3e\x91\x20\x02\x1f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x90\x00\x00\x90\x11\xd2\x47\xf9\x10\x82\x3e\x91\x20\x02\x1f\xd6\x90\x00\x00\x90\x11\xd6\x47\xf9\x10\xa2\x3e\x91\x20\x02\x1f\xd6\x90\x00\x00\x90\x11\xda\x47\xf9\x10\xc2\x3e\x91\x20\x02\x1f\xd6\x90\x00\x00\x90\x11\xde\x47\xf9\x10\xe2\x3e\x91\x20\x02\x1f\xd6"), -Section(".fini", 0x798, "\x1f\x20\x03\xd5\xfd\x7b\xbf\xa9\xfd\x03\x00\x91\xfd\x7b\xc1\xa8\xc0\x03\x5f\xd6"), -Section(".rodata", 0x7AC, "\x01\x00\x02\x00"), -Section(".eh_frame_hdr", 0x7B0, "\x01\x1b\x03\x3b\x3c\x00\x00\x00\x06\x00\x00\x00\x90\xfe\xff\xff\x54\x00\x00\x00\xe0\xfe\xff\xff\x68\x00\x00\x00\x10\xff\xff\xff\x7c\x00\x00\x00\x50\xff\xff\xff\x90\x00\x00\x00\xa0\xff\xff\xff\xb4\x00\x00\x00\xa4\xff\xff\xff\xc8\x00\x00\x00"), -Section(".eh_frame", 0x7F0, "\x10\x00\x00\x00\x00\x00\x00\x00\x01\x7a\x52\x00\x04\x78\x1e\x01\x1b\x0c\x1f\x00\x10\x00\x00\x00\x18\x00\x00\x00\x34\xfe\xff\xff\x34\x00\x00\x00\x00\x41\x07\x1e\x10\x00\x00\x00\x2c\x00\x00\x00\x70\xfe\xff\xff\x30\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x40\x00\x00\x00\x8c\xfe\xff\xff\x3c\x00\x00\x00\x00\x00\x00\x00\x20\x00\x00\x00\x54\x00\x00\x00\xb8\xfe\xff\xff\x48\x00\x00\x00\x00\x41\x0e\x20\x9d\x04\x9e\x03\x42\x93\x02\x4e\xde\xdd\xd3\x0e\x00\x00\x00\x00\x10\x00\x00\x00\x78\x00\x00\x00\xe4\xfe\xff\xff\x04\x00\x00\x00\x00\x00\x00\x00\x14\x00\x00\x00\x8c\x00\x00\x00\xd4\xfe\xff\xff\x44\x00\x00\x00\x00\x41\x0e\x10\x4f\x0e\x00\x00\x00\x00\x00\x00"), -Section(".fini_array", 0x10D90, "\x00\x07\x00\x00\x00\x00\x00\x00"), -Section(".dynamic", 0x10D98, "\x01\x00\x00\x00\x00\x00\x00\x00\x28\x00\x00\x00\x00\x00\x00\x00\x0c\x00\x00\x00\x00\x00\x00\x00\xb0\x05\x00\x00\x00\x00\x00\x00\x0d\x00\x00\x00\x00\x00\x00\x00\x98\x07\x00\x00\x00\x00\x00\x00\x19\x00\x00\x00\x00\x00\x00\x00\x88\x0d\x01\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x1a\x00\x00\x00\x00\x00\x00\x00\x90\x0d\x01\x00\x00\x00\x00\x00\x1c\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\xf5\xfe\xff\x6f\x00\x00\x00\x00\x98\x02\x00\x00\x00\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x90\x03\x00\x00\x00\x00\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\xb8\x02\x00\x00\x00\x00\x00\x00\x0a\x00\x00\x00\x00\x00\x00\x00\x8d\x00\x00\x00\x00\x00\x00\x00\x0b\x00\x00\x00\x00\x00\x00\x00\x18\x00\x00\x00\x00\x00\x00\x00\x15\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x88\x0f\x01\x00\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x60\x00\x00\x00\x00\x00\x00\x00\x14\x00\x00\x00\x00\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x17\x00\x00\x00\x00\x00\x00\x00\x50\x05\x00\x00\x00\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x60\x04\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\xf0\x00\x00\x00\x00\x00\x00\x00\x09\x00\x00\x00\x00\x00\x00\x00\x18\x00\x00\x00\x00\x00\x00\x00\x1e\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\xfb\xff\xff\x6f\x00\x00\x00\x00\x01\x00\x00\x08\x00\x00\x00\x00\xfe\xff\xff\x6f\x00\x00\x00\x00\x30\x04\x00\x00\x00\x00\x00\x00\xff\xff\xff\x6f\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\xf0\xff\xff\x6f\x00\x00\x00\x00\x1e\x04\x00\x00\x00\x00\x00\x00\xf9\xff\xff\x6f\x00\x00\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".got", 0x10F88, "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xd0\x05\x00\x00\x00\x00\x00\x00\xd0\x05\x00\x00\x00\x00\x00\x00\xd0\x05\x00\x00\x00\x00\x00\x00\xd0\x05\x00\x00\x00\x00\x00\x00\x98\x0d\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x18\x10\x01\x00\x00\x00\x00\x00\x14\x10\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x54\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".data", 0x11000, "\x00\x00\x00\x00\x00\x00\x00\x00\x08\x10\x01\x00\x00\x00\x00\x00"), -Section(".init_array", 0x10D88, "\x50\x07\x00\x00\x00\x00\x00\x00"), -Section(".text", 0x640, "\x1f\x20\x03\xd5\x1d\x00\x80\xd2\x1e\x00\x80\xd2\xe5\x03\x00\xaa\xe1\x03\x40\xf9\xe2\x23\x00\x91\xe6\x03\x00\x91\x80\x00\x00\x90\x00\xf8\x47\xf9\x03\x00\x80\xd2\x04\x00\x80\xd2\xe1\xff\xff\x97\xec\xff\xff\x97\x80\x00\x00\x90\x00\xf4\x47\xf9\x40\x00\x00\xb4\xe4\xff\xff\x17\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x80\x00\x00\xb0\x00\x40\x00\x91\x81\x00\x00\xb0\x21\x40\x00\x91\x3f\x00\x00\xeb\xc0\x00\x00\x54\x81\x00\x00\x90\x21\xe4\x47\xf9\x61\x00\x00\xb4\xf0\x03\x01\xaa\x00\x02\x1f\xd6\xc0\x03\x5f\xd6\x80\x00\x00\xb0\x00\x40\x00\x91\x81\x00\x00\xb0\x21\x40\x00\x91\x21\x00\x00\xcb\x22\xfc\x7f\xd3\x41\x0c\x81\x8b\x21\xfc\x41\x93\xc1\x00\x00\xb4\x82\x00\x00\x90\x42\xfc\x47\xf9\x62\x00\x00\xb4\xf0\x03\x02\xaa\x00\x02\x1f\xd6\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\xfd\x7b\xbe\xa9\xfd\x03\x00\x91\xf3\x0b\x00\xf9\x93\x00\x00\xb0\x60\x42\x40\x39\x40\x01\x00\x35\x80\x00\x00\x90\x00\xe8\x47\xf9\x80\x00\x00\xb4\x80\x00\x00\xb0\x00\x04\x40\xf9\xb5\xff\xff\x97\xd8\xff\xff\x97\x20\x00\x80\x52\x60\x42\x00\x39\xf3\x0b\x40\xf9\xfd\x7b\xc2\xa8\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\xdc\xff\xff\x17\xff\x43\x00\xd1\xff\x0f\x00\xb9\x80\x00\x00\x90\x00\xec\x47\xf9\x00\x00\x40\xb9\x1f\x00\x00\x71\x01\x01\x00\x54\x80\x00\x00\x90\x00\xf0\x47\xf9\x1f\x00\x00\xb9\x80\x00\x00\x90\x00\xf0\x47\xf9\x00\x00\x40\xb9\xe0\x0f\x00\xb9\xe0\x0f\x40\xb9\xff\x43\x00\x91\xc0\x03\x5f\xd6")]), -Memmap([Annotation(Region(0x0,0x893), Attr("segment","02 0 2196")), -Annotation(Region(0x640,0x673), Attr("symbol","\"_start\"")), -Annotation(Region(0x0,0xF9), Attr("section","\".shstrtab\"")), -Annotation(Region(0x0,0x228), Attr("section","\".strtab\"")), -Annotation(Region(0x0,0x857), Attr("section","\".symtab\"")), -Annotation(Region(0x0,0x2A), Attr("section","\".comment\"")), -Annotation(Region(0x238,0x252), Attr("section","\".interp\"")), -Annotation(Region(0x254,0x277), Attr("section","\".note.gnu.build-id\"")), -Annotation(Region(0x278,0x297), Attr("section","\".note.ABI-tag\"")), -Annotation(Region(0x298,0x2B3), Attr("section","\".gnu.hash\"")), -Annotation(Region(0x2B8,0x38F), Attr("section","\".dynsym\"")), -Annotation(Region(0x390,0x41C), Attr("section","\".dynstr\"")), -Annotation(Region(0x41E,0x42F), Attr("section","\".gnu.version\"")), -Annotation(Region(0x430,0x45F), Attr("section","\".gnu.version_r\"")), -Annotation(Region(0x460,0x54F), Attr("section","\".rela.dyn\"")), -Annotation(Region(0x550,0x5AF), Attr("section","\".rela.plt\"")), -Annotation(Region(0x5B0,0x5C7), Attr("section","\".init\"")), -Annotation(Region(0x5D0,0x62F), Attr("section","\".plt\"")), -Annotation(Region(0x5B0,0x5C7), Attr("code-region","()")), -Annotation(Region(0x5D0,0x62F), Attr("code-region","()")), -Annotation(Region(0x640,0x673), Attr("symbol-info","_start 0x640 52")), -Annotation(Region(0x674,0x687), Attr("symbol","\"call_weak_fn\"")), -Annotation(Region(0x674,0x687), Attr("symbol-info","call_weak_fn 0x674 20")), -Annotation(Region(0x754,0x797), Attr("symbol","\"main\"")), -Annotation(Region(0x754,0x797), Attr("symbol-info","main 0x754 68")), -Annotation(Region(0x798,0x7AB), Attr("section","\".fini\"")), -Annotation(Region(0x7AC,0x7AF), Attr("section","\".rodata\"")), -Annotation(Region(0x7B0,0x7EB), Attr("section","\".eh_frame_hdr\"")), -Annotation(Region(0x7F0,0x893), Attr("section","\".eh_frame\"")), -Annotation(Region(0x10D88,0x1100F), Attr("segment","03 0x10D88 664")), -Annotation(Region(0x10D90,0x10D97), Attr("section","\".fini_array\"")), -Annotation(Region(0x10D98,0x10F87), Attr("section","\".dynamic\"")), -Annotation(Region(0x10F88,0x10FFF), Attr("section","\".got\"")), -Annotation(Region(0x11000,0x1100F), Attr("section","\".data\"")), -Annotation(Region(0x10D88,0x10D8F), Attr("section","\".init_array\"")), -Annotation(Region(0x640,0x797), Attr("section","\".text\"")), -Annotation(Region(0x640,0x797), Attr("code-region","()")), -Annotation(Region(0x798,0x7AB), Attr("code-region","()"))]), -Program(Tid(1_474, "%000005c2"), Attrs([]), - Subs([Sub(Tid(1_420, "@__cxa_finalize"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x600"), -Attr("stub","()")]), "__cxa_finalize", Args([Arg(Tid(1_475, "%000005c3"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("__cxa_finalize_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(932, "@__cxa_finalize"), - Attrs([Attr("address","0x600")]), Phis([]), -Defs([Def(Tid(1_180, "%0000049c"), Attrs([Attr("address","0x600"), -Attr("insn","adrp x16, #65536")]), Var("R16",Imm(64)), Int(65536,64)), -Def(Tid(1_187, "%000004a3"), Attrs([Attr("address","0x604"), -Attr("insn","ldr x17, [x16, #0xfa8]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(4008,64)),LittleEndian(),64)), -Def(Tid(1_193, "%000004a9"), Attrs([Attr("address","0x608"), -Attr("insn","add x16, x16, #0xfa8")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(4008,64)))]), Jmps([Call(Tid(1_198, "%000004ae"), - Attrs([Attr("address","0x60C"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), -Sub(Tid(1_421, "@__do_global_dtors_aux"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x700")]), - "__do_global_dtors_aux", Args([Arg(Tid(1_476, "%000005c4"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("__do_global_dtors_aux_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(658, "@__do_global_dtors_aux"), - Attrs([Attr("address","0x700")]), Phis([]), Defs([Def(Tid(662, "%00000296"), - Attrs([Attr("address","0x700"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("#3",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(18446744073709551584,64))), -Def(Tid(668, "%0000029c"), Attrs([Attr("address","0x700"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("#3",Imm(64)),Var("R29",Imm(64)),LittleEndian(),64)), -Def(Tid(674, "%000002a2"), Attrs([Attr("address","0x700"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("#3",Imm(64)),Int(8,64)),Var("R30",Imm(64)),LittleEndian(),64)), -Def(Tid(678, "%000002a6"), Attrs([Attr("address","0x700"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("R31",Imm(64)), -Var("#3",Imm(64))), Def(Tid(684, "%000002ac"), - Attrs([Attr("address","0x704"), Attr("insn","mov x29, sp")]), - Var("R29",Imm(64)), Var("R31",Imm(64))), Def(Tid(692, "%000002b4"), - Attrs([Attr("address","0x708"), Attr("insn","str x19, [sp, #0x10]")]), - Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(16,64)),Var("R19",Imm(64)),LittleEndian(),64)), -Def(Tid(697, "%000002b9"), Attrs([Attr("address","0x70C"), -Attr("insn","adrp x19, #69632")]), Var("R19",Imm(64)), Int(69632,64)), -Def(Tid(704, "%000002c0"), Attrs([Attr("address","0x710"), -Attr("insn","ldrb w0, [x19, #0x10]")]), Var("R0",Imm(64)), -UNSIGNED(64,Load(Var("mem",Mem(64,8)),PLUS(Var("R19",Imm(64)),Int(16,64)),LittleEndian(),8)))]), -Jmps([Goto(Tid(711, "%000002c7"), Attrs([Attr("address","0x714"), -Attr("insn","cbnz w0, #0x28")]), - NEQ(Extract(31,0,Var("R0",Imm(64))),Int(0,32)), -Direct(Tid(709, "%000002c5"))), Goto(Tid(1_462, "%000005b6"), Attrs([]), - Int(1,1), Direct(Tid(877, "%0000036d")))])), Blk(Tid(877, "%0000036d"), - Attrs([Attr("address","0x718")]), Phis([]), Defs([Def(Tid(880, "%00000370"), - Attrs([Attr("address","0x718"), Attr("insn","adrp x0, #65536")]), - Var("R0",Imm(64)), Int(65536,64)), Def(Tid(887, "%00000377"), - Attrs([Attr("address","0x71C"), Attr("insn","ldr x0, [x0, #0xfd0]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(4048,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(893, "%0000037d"), Attrs([Attr("address","0x720"), -Attr("insn","cbz x0, #0x10")]), EQ(Var("R0",Imm(64)),Int(0,64)), -Direct(Tid(891, "%0000037b"))), Goto(Tid(1_463, "%000005b7"), Attrs([]), - Int(1,1), Direct(Tid(916, "%00000394")))])), Blk(Tid(916, "%00000394"), - Attrs([Attr("address","0x724")]), Phis([]), Defs([Def(Tid(919, "%00000397"), - Attrs([Attr("address","0x724"), Attr("insn","adrp x0, #69632")]), - Var("R0",Imm(64)), Int(69632,64)), Def(Tid(926, "%0000039e"), - Attrs([Attr("address","0x728"), Attr("insn","ldr x0, [x0, #0x8]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(931, "%000003a3"), Attrs([Attr("address","0x72C"), -Attr("insn","bl #-0x12c")]), Var("R30",Imm(64)), Int(1840,64))]), -Jmps([Call(Tid(934, "%000003a6"), Attrs([Attr("address","0x72C"), -Attr("insn","bl #-0x12c")]), Int(1,1), -(Direct(Tid(1_420, "@__cxa_finalize")),Direct(Tid(891, "%0000037b"))))])), -Blk(Tid(891, "%0000037b"), Attrs([Attr("address","0x730")]), Phis([]), -Defs([Def(Tid(899, "%00000383"), Attrs([Attr("address","0x730"), -Attr("insn","bl #-0xa0")]), Var("R30",Imm(64)), Int(1844,64))]), -Jmps([Call(Tid(901, "%00000385"), Attrs([Attr("address","0x730"), -Attr("insn","bl #-0xa0")]), Int(1,1), -(Direct(Tid(1_434, "@deregister_tm_clones")),Direct(Tid(903, "%00000387"))))])), -Blk(Tid(903, "%00000387"), Attrs([Attr("address","0x734")]), Phis([]), -Defs([Def(Tid(906, "%0000038a"), Attrs([Attr("address","0x734"), -Attr("insn","mov w0, #0x1")]), Var("R0",Imm(64)), Int(1,64)), -Def(Tid(914, "%00000392"), Attrs([Attr("address","0x738"), -Attr("insn","strb w0, [x19, #0x10]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R19",Imm(64)),Int(16,64)),Extract(7,0,Var("R0",Imm(64))),LittleEndian(),8))]), -Jmps([Goto(Tid(1_464, "%000005b8"), Attrs([]), Int(1,1), -Direct(Tid(709, "%000002c5")))])), Blk(Tid(709, "%000002c5"), - Attrs([Attr("address","0x73C")]), Phis([]), Defs([Def(Tid(719, "%000002cf"), - Attrs([Attr("address","0x73C"), Attr("insn","ldr x19, [sp, #0x10]")]), - Var("R19",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(16,64)),LittleEndian(),64)), -Def(Tid(726, "%000002d6"), Attrs([Attr("address","0x740"), -Attr("insn","ldp x29, x30, [sp], #0x20")]), Var("R29",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(731, "%000002db"), Attrs([Attr("address","0x740"), -Attr("insn","ldp x29, x30, [sp], #0x20")]), Var("R30",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(735, "%000002df"), Attrs([Attr("address","0x740"), -Attr("insn","ldp x29, x30, [sp], #0x20")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(32,64)))]), Jmps([Call(Tid(740, "%000002e4"), - Attrs([Attr("address","0x744"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), Sub(Tid(1_425, "@__libc_start_main"), - Attrs([Attr("c.proto","signed (*)(signed (*)(signed , char** , char** );* main, signed , char** , \nvoid* auxv)"), -Attr("address","0x5F0"), Attr("stub","()")]), "__libc_start_main", - Args([Arg(Tid(1_477, "%000005c5"), - Attrs([Attr("c.layout","**[ : 64]"), -Attr("c.data","Top:u64 ptr ptr"), -Attr("c.type","signed (*)(signed , char** , char** );*")]), - Var("__libc_start_main_main",Imm(64)), Var("R0",Imm(64)), In()), -Arg(Tid(1_478, "%000005c6"), Attrs([Attr("c.layout","[signed : 32]"), -Attr("c.data","Top:u32"), Attr("c.type","signed")]), - Var("__libc_start_main_arg2",Imm(32)), LOW(32,Var("R1",Imm(64))), In()), -Arg(Tid(1_479, "%000005c7"), Attrs([Attr("c.layout","**[char : 8]"), -Attr("c.data","Top:u8 ptr ptr"), Attr("c.type","char**")]), - Var("__libc_start_main_arg3",Imm(64)), Var("R2",Imm(64)), Both()), -Arg(Tid(1_480, "%000005c8"), Attrs([Attr("c.layout","*[ : 8]"), -Attr("c.data","{} ptr"), Attr("c.type","void*")]), - Var("__libc_start_main_auxv",Imm(64)), Var("R3",Imm(64)), Both()), -Arg(Tid(1_481, "%000005c9"), Attrs([Attr("c.layout","[signed : 32]"), -Attr("c.data","Top:u32"), Attr("c.type","signed")]), - Var("__libc_start_main_result",Imm(32)), LOW(32,Var("R0",Imm(64))), -Out())]), Blks([Blk(Tid(491, "@__libc_start_main"), - Attrs([Attr("address","0x5F0")]), Phis([]), -Defs([Def(Tid(1_158, "%00000486"), Attrs([Attr("address","0x5F0"), -Attr("insn","adrp x16, #65536")]), Var("R16",Imm(64)), Int(65536,64)), -Def(Tid(1_165, "%0000048d"), Attrs([Attr("address","0x5F4"), -Attr("insn","ldr x17, [x16, #0xfa0]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(4000,64)),LittleEndian(),64)), -Def(Tid(1_171, "%00000493"), Attrs([Attr("address","0x5F8"), -Attr("insn","add x16, x16, #0xfa0")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(4000,64)))]), Jmps([Call(Tid(1_176, "%00000498"), - Attrs([Attr("address","0x5FC"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), Sub(Tid(1_426, "@_fini"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x798")]), - "_fini", Args([Arg(Tid(1_482, "%000005ca"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("_fini_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(31, "@_fini"), - Attrs([Attr("address","0x798")]), Phis([]), Defs([Def(Tid(37, "%00000025"), - Attrs([Attr("address","0x79C"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("#0",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(18446744073709551600,64))), -Def(Tid(43, "%0000002b"), Attrs([Attr("address","0x79C"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("#0",Imm(64)),Var("R29",Imm(64)),LittleEndian(),64)), -Def(Tid(49, "%00000031"), Attrs([Attr("address","0x79C"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("#0",Imm(64)),Int(8,64)),Var("R30",Imm(64)),LittleEndian(),64)), -Def(Tid(53, "%00000035"), Attrs([Attr("address","0x79C"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("R31",Imm(64)), -Var("#0",Imm(64))), Def(Tid(59, "%0000003b"), Attrs([Attr("address","0x7A0"), -Attr("insn","mov x29, sp")]), Var("R29",Imm(64)), Var("R31",Imm(64))), -Def(Tid(66, "%00000042"), Attrs([Attr("address","0x7A4"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R29",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(71, "%00000047"), Attrs([Attr("address","0x7A4"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R30",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(75, "%0000004b"), Attrs([Attr("address","0x7A4"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(16,64)))]), Jmps([Call(Tid(80, "%00000050"), - Attrs([Attr("address","0x7A8"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), Sub(Tid(1_427, "@_init"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x5B0")]), - "_init", Args([Arg(Tid(1_483, "%000005cb"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("_init_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(1_270, "@_init"), - Attrs([Attr("address","0x5B0")]), Phis([]), -Defs([Def(Tid(1_276, "%000004fc"), Attrs([Attr("address","0x5B4"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("#6",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(18446744073709551600,64))), -Def(Tid(1_282, "%00000502"), Attrs([Attr("address","0x5B4"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("#6",Imm(64)),Var("R29",Imm(64)),LittleEndian(),64)), -Def(Tid(1_288, "%00000508"), Attrs([Attr("address","0x5B4"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("#6",Imm(64)),Int(8,64)),Var("R30",Imm(64)),LittleEndian(),64)), -Def(Tid(1_292, "%0000050c"), Attrs([Attr("address","0x5B4"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("R31",Imm(64)), -Var("#6",Imm(64))), Def(Tid(1_298, "%00000512"), - Attrs([Attr("address","0x5B8"), Attr("insn","mov x29, sp")]), - Var("R29",Imm(64)), Var("R31",Imm(64))), Def(Tid(1_303, "%00000517"), - Attrs([Attr("address","0x5BC"), Attr("insn","bl #0xb8")]), - Var("R30",Imm(64)), Int(1472,64))]), Jmps([Call(Tid(1_305, "%00000519"), - Attrs([Attr("address","0x5BC"), Attr("insn","bl #0xb8")]), Int(1,1), -(Direct(Tid(1_432, "@call_weak_fn")),Direct(Tid(1_307, "%0000051b"))))])), -Blk(Tid(1_307, "%0000051b"), Attrs([Attr("address","0x5C0")]), Phis([]), -Defs([Def(Tid(1_312, "%00000520"), Attrs([Attr("address","0x5C0"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R29",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(1_317, "%00000525"), Attrs([Attr("address","0x5C0"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R30",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(1_321, "%00000529"), Attrs([Attr("address","0x5C0"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(16,64)))]), Jmps([Call(Tid(1_326, "%0000052e"), - Attrs([Attr("address","0x5C4"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), Sub(Tid(1_428, "@_start"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x640"), -Attr("entry-point","()")]), "_start", Args([Arg(Tid(1_484, "%000005cc"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("_start_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(428, "@_start"), - Attrs([Attr("address","0x640")]), Phis([]), Defs([Def(Tid(433, "%000001b1"), - Attrs([Attr("address","0x644"), Attr("insn","mov x29, #0x0")]), - Var("R29",Imm(64)), Int(0,64)), Def(Tid(438, "%000001b6"), - Attrs([Attr("address","0x648"), Attr("insn","mov x30, #0x0")]), - Var("R30",Imm(64)), Int(0,64)), Def(Tid(444, "%000001bc"), - Attrs([Attr("address","0x64C"), Attr("insn","mov x5, x0")]), - Var("R5",Imm(64)), Var("R0",Imm(64))), Def(Tid(451, "%000001c3"), - Attrs([Attr("address","0x650"), Attr("insn","ldr x1, [sp]")]), - Var("R1",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(457, "%000001c9"), Attrs([Attr("address","0x654"), -Attr("insn","add x2, sp, #0x8")]), Var("R2",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(8,64))), Def(Tid(463, "%000001cf"), - Attrs([Attr("address","0x658"), Attr("insn","mov x6, sp")]), - Var("R6",Imm(64)), Var("R31",Imm(64))), Def(Tid(468, "%000001d4"), - Attrs([Attr("address","0x65C"), Attr("insn","adrp x0, #65536")]), - Var("R0",Imm(64)), Int(65536,64)), Def(Tid(475, "%000001db"), - Attrs([Attr("address","0x660"), Attr("insn","ldr x0, [x0, #0xff0]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(4080,64)),LittleEndian(),64)), -Def(Tid(480, "%000001e0"), Attrs([Attr("address","0x664"), -Attr("insn","mov x3, #0x0")]), Var("R3",Imm(64)), Int(0,64)), -Def(Tid(485, "%000001e5"), Attrs([Attr("address","0x668"), -Attr("insn","mov x4, #0x0")]), Var("R4",Imm(64)), Int(0,64)), -Def(Tid(490, "%000001ea"), Attrs([Attr("address","0x66C"), -Attr("insn","bl #-0x7c")]), Var("R30",Imm(64)), Int(1648,64))]), -Jmps([Call(Tid(493, "%000001ed"), Attrs([Attr("address","0x66C"), -Attr("insn","bl #-0x7c")]), Int(1,1), -(Direct(Tid(1_425, "@__libc_start_main")),Direct(Tid(495, "%000001ef"))))])), -Blk(Tid(495, "%000001ef"), Attrs([Attr("address","0x670")]), Phis([]), -Defs([Def(Tid(498, "%000001f2"), Attrs([Attr("address","0x670"), -Attr("insn","bl #-0x50")]), Var("R30",Imm(64)), Int(1652,64))]), -Jmps([Call(Tid(501, "%000001f5"), Attrs([Attr("address","0x670"), -Attr("insn","bl #-0x50")]), Int(1,1), -(Direct(Tid(1_431, "@abort")),Direct(Tid(1_465, "%000005b9"))))])), -Blk(Tid(1_465, "%000005b9"), Attrs([]), Phis([]), Defs([]), -Jmps([Call(Tid(1_466, "%000005ba"), Attrs([]), Int(1,1), -(Direct(Tid(1_432, "@call_weak_fn")),))]))])), Sub(Tid(1_431, "@abort"), - Attrs([Attr("noreturn","()"), Attr("c.proto","void (*)(void)"), -Attr("address","0x620"), Attr("stub","()")]), "abort", Args([]), -Blks([Blk(Tid(499, "@abort"), Attrs([Attr("address","0x620")]), Phis([]), -Defs([Def(Tid(1_224, "%000004c8"), Attrs([Attr("address","0x620"), -Attr("insn","adrp x16, #65536")]), Var("R16",Imm(64)), Int(65536,64)), -Def(Tid(1_231, "%000004cf"), Attrs([Attr("address","0x624"), -Attr("insn","ldr x17, [x16, #0xfb8]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(4024,64)),LittleEndian(),64)), -Def(Tid(1_237, "%000004d5"), Attrs([Attr("address","0x628"), -Attr("insn","add x16, x16, #0xfb8")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(4024,64)))]), Jmps([Call(Tid(1_242, "%000004da"), - Attrs([Attr("address","0x62C"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), Sub(Tid(1_432, "@call_weak_fn"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x674")]), - "call_weak_fn", Args([Arg(Tid(1_485, "%000005cd"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("call_weak_fn_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(503, "@call_weak_fn"), - Attrs([Attr("address","0x674")]), Phis([]), Defs([Def(Tid(506, "%000001fa"), - Attrs([Attr("address","0x674"), Attr("insn","adrp x0, #65536")]), - Var("R0",Imm(64)), Int(65536,64)), Def(Tid(513, "%00000201"), - Attrs([Attr("address","0x678"), Attr("insn","ldr x0, [x0, #0xfe8]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(4072,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(519, "%00000207"), Attrs([Attr("address","0x67C"), -Attr("insn","cbz x0, #0x8")]), EQ(Var("R0",Imm(64)),Int(0,64)), -Direct(Tid(517, "%00000205"))), Goto(Tid(1_467, "%000005bb"), Attrs([]), - Int(1,1), Direct(Tid(996, "%000003e4")))])), Blk(Tid(517, "%00000205"), - Attrs([Attr("address","0x684")]), Phis([]), Defs([]), -Jmps([Call(Tid(525, "%0000020d"), Attrs([Attr("address","0x684"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))])), -Blk(Tid(996, "%000003e4"), Attrs([Attr("address","0x680")]), Phis([]), -Defs([]), Jmps([Goto(Tid(999, "%000003e7"), Attrs([Attr("address","0x680"), -Attr("insn","b #-0x70")]), Int(1,1), Direct(Tid(997, "@__gmon_start__")))])), -Blk(Tid(997, "@__gmon_start__"), Attrs([Attr("address","0x610")]), Phis([]), -Defs([Def(Tid(1_202, "%000004b2"), Attrs([Attr("address","0x610"), -Attr("insn","adrp x16, #65536")]), Var("R16",Imm(64)), Int(65536,64)), -Def(Tid(1_209, "%000004b9"), Attrs([Attr("address","0x614"), -Attr("insn","ldr x17, [x16, #0xfb0]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(4016,64)),LittleEndian(),64)), -Def(Tid(1_215, "%000004bf"), Attrs([Attr("address","0x618"), -Attr("insn","add x16, x16, #0xfb0")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(4016,64)))]), Jmps([Call(Tid(1_220, "%000004c4"), - Attrs([Attr("address","0x61C"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), -Sub(Tid(1_434, "@deregister_tm_clones"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x690")]), - "deregister_tm_clones", Args([Arg(Tid(1_486, "%000005ce"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("deregister_tm_clones_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(531, "@deregister_tm_clones"), - Attrs([Attr("address","0x690")]), Phis([]), Defs([Def(Tid(534, "%00000216"), - Attrs([Attr("address","0x690"), Attr("insn","adrp x0, #69632")]), - Var("R0",Imm(64)), Int(69632,64)), Def(Tid(540, "%0000021c"), - Attrs([Attr("address","0x694"), Attr("insn","add x0, x0, #0x10")]), - Var("R0",Imm(64)), PLUS(Var("R0",Imm(64)),Int(16,64))), -Def(Tid(545, "%00000221"), Attrs([Attr("address","0x698"), -Attr("insn","adrp x1, #69632")]), Var("R1",Imm(64)), Int(69632,64)), -Def(Tid(551, "%00000227"), Attrs([Attr("address","0x69C"), -Attr("insn","add x1, x1, #0x10")]), Var("R1",Imm(64)), -PLUS(Var("R1",Imm(64)),Int(16,64))), Def(Tid(557, "%0000022d"), - Attrs([Attr("address","0x6A0"), Attr("insn","cmp x1, x0")]), - Var("#1",Imm(64)), NOT(Var("R0",Imm(64)))), Def(Tid(562, "%00000232"), - Attrs([Attr("address","0x6A0"), Attr("insn","cmp x1, x0")]), - Var("#2",Imm(64)), PLUS(Var("R1",Imm(64)),NOT(Var("R0",Imm(64))))), -Def(Tid(568, "%00000238"), Attrs([Attr("address","0x6A0"), -Attr("insn","cmp x1, x0")]), Var("VF",Imm(1)), -NEQ(SIGNED(65,PLUS(Var("#2",Imm(64)),Int(1,64))),PLUS(PLUS(SIGNED(65,Var("R1",Imm(64))),SIGNED(65,Var("#1",Imm(64)))),Int(1,65)))), -Def(Tid(574, "%0000023e"), Attrs([Attr("address","0x6A0"), -Attr("insn","cmp x1, x0")]), Var("CF",Imm(1)), -NEQ(UNSIGNED(65,PLUS(Var("#2",Imm(64)),Int(1,64))),PLUS(PLUS(UNSIGNED(65,Var("R1",Imm(64))),UNSIGNED(65,Var("#1",Imm(64)))),Int(1,65)))), -Def(Tid(578, "%00000242"), Attrs([Attr("address","0x6A0"), -Attr("insn","cmp x1, x0")]), Var("ZF",Imm(1)), -EQ(PLUS(Var("#2",Imm(64)),Int(1,64)),Int(0,64))), Def(Tid(582, "%00000246"), - Attrs([Attr("address","0x6A0"), Attr("insn","cmp x1, x0")]), - Var("NF",Imm(1)), Extract(63,63,PLUS(Var("#2",Imm(64)),Int(1,64))))]), -Jmps([Goto(Tid(588, "%0000024c"), Attrs([Attr("address","0x6A4"), -Attr("insn","b.eq #0x18")]), EQ(Var("ZF",Imm(1)),Int(1,1)), -Direct(Tid(586, "%0000024a"))), Goto(Tid(1_468, "%000005bc"), Attrs([]), - Int(1,1), Direct(Tid(966, "%000003c6")))])), Blk(Tid(966, "%000003c6"), - Attrs([Attr("address","0x6A8")]), Phis([]), Defs([Def(Tid(969, "%000003c9"), - Attrs([Attr("address","0x6A8"), Attr("insn","adrp x1, #65536")]), - Var("R1",Imm(64)), Int(65536,64)), Def(Tid(976, "%000003d0"), - Attrs([Attr("address","0x6AC"), Attr("insn","ldr x1, [x1, #0xfc8]")]), - Var("R1",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R1",Imm(64)),Int(4040,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(981, "%000003d5"), Attrs([Attr("address","0x6B0"), -Attr("insn","cbz x1, #0xc")]), EQ(Var("R1",Imm(64)),Int(0,64)), -Direct(Tid(586, "%0000024a"))), Goto(Tid(1_469, "%000005bd"), Attrs([]), - Int(1,1), Direct(Tid(985, "%000003d9")))])), Blk(Tid(586, "%0000024a"), - Attrs([Attr("address","0x6BC")]), Phis([]), Defs([]), -Jmps([Call(Tid(594, "%00000252"), Attrs([Attr("address","0x6BC"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))])), -Blk(Tid(985, "%000003d9"), Attrs([Attr("address","0x6B4")]), Phis([]), -Defs([Def(Tid(989, "%000003dd"), Attrs([Attr("address","0x6B4"), -Attr("insn","mov x16, x1")]), Var("R16",Imm(64)), Var("R1",Imm(64)))]), -Jmps([Call(Tid(994, "%000003e2"), Attrs([Attr("address","0x6B8"), -Attr("insn","br x16")]), Int(1,1), (Indirect(Var("R16",Imm(64))),))]))])), -Sub(Tid(1_437, "@frame_dummy"), Attrs([Attr("c.proto","signed (*)(void)"), -Attr("address","0x750")]), "frame_dummy", Args([Arg(Tid(1_487, "%000005cf"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("frame_dummy_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(746, "@frame_dummy"), - Attrs([Attr("address","0x750")]), Phis([]), Defs([]), -Jmps([Call(Tid(748, "%000002ec"), Attrs([Attr("address","0x750"), -Attr("insn","b #-0x90")]), Int(1,1), -(Direct(Tid(1_441, "@register_tm_clones")),))]))])), Sub(Tid(1_438, "@main"), - Attrs([Attr("c.proto","signed (*)(signed argc, const char** argv)"), -Attr("address","0x754")]), "main", Args([Arg(Tid(1_488, "%000005d0"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("main_argc",Imm(32)), -LOW(32,Var("R0",Imm(64))), In()), Arg(Tid(1_489, "%000005d1"), - Attrs([Attr("c.layout","**[char : 8]"), Attr("c.data","Top:u8 ptr ptr"), -Attr("c.type"," const char**")]), Var("main_argv",Imm(64)), -Var("R1",Imm(64)), Both()), Arg(Tid(1_490, "%000005d2"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("main_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(750, "@main"), - Attrs([Attr("address","0x754")]), Phis([]), Defs([Def(Tid(754, "%000002f2"), - Attrs([Attr("address","0x754"), Attr("insn","sub sp, sp, #0x10")]), - Var("R31",Imm(64)), PLUS(Var("R31",Imm(64)),Int(18446744073709551600,64))), -Def(Tid(761, "%000002f9"), Attrs([Attr("address","0x758"), -Attr("insn","str wzr, [sp, #0xc]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(12,64)),Int(0,32),LittleEndian(),32)), -Def(Tid(766, "%000002fe"), Attrs([Attr("address","0x75C"), -Attr("insn","adrp x0, #65536")]), Var("R0",Imm(64)), Int(65536,64)), -Def(Tid(773, "%00000305"), Attrs([Attr("address","0x760"), -Attr("insn","ldr x0, [x0, #0xfd8]")]), Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(4056,64)),LittleEndian(),64)), -Def(Tid(780, "%0000030c"), Attrs([Attr("address","0x764"), -Attr("insn","ldr w0, [x0]")]), Var("R0",Imm(64)), -UNSIGNED(64,Load(Var("mem",Mem(64,8)),Var("R0",Imm(64)),LittleEndian(),32))), -Def(Tid(786, "%00000312"), Attrs([Attr("address","0x768"), -Attr("insn","cmp w0, #0x0")]), Var("#4",Imm(32)), -PLUS(Extract(31,0,Var("R0",Imm(64))),Int(4294967295,32))), -Def(Tid(791, "%00000317"), Attrs([Attr("address","0x768"), -Attr("insn","cmp w0, #0x0")]), Var("VF",Imm(1)), -NEQ(SIGNED(33,PLUS(Var("#4",Imm(32)),Int(1,32))),PLUS(SIGNED(33,Extract(31,0,Var("R0",Imm(64)))),Int(0,33)))), -Def(Tid(796, "%0000031c"), Attrs([Attr("address","0x768"), -Attr("insn","cmp w0, #0x0")]), Var("CF",Imm(1)), -NEQ(UNSIGNED(33,PLUS(Var("#4",Imm(32)),Int(1,32))),PLUS(UNSIGNED(33,Extract(31,0,Var("R0",Imm(64)))),Int(4294967296,33)))), -Def(Tid(800, "%00000320"), Attrs([Attr("address","0x768"), -Attr("insn","cmp w0, #0x0")]), Var("ZF",Imm(1)), -EQ(PLUS(Var("#4",Imm(32)),Int(1,32)),Int(0,32))), Def(Tid(804, "%00000324"), - Attrs([Attr("address","0x768"), Attr("insn","cmp w0, #0x0")]), - Var("NF",Imm(1)), Extract(31,31,PLUS(Var("#4",Imm(32)),Int(1,32))))]), -Jmps([Goto(Tid(810, "%0000032a"), Attrs([Attr("address","0x76C"), -Attr("insn","b.ne #0x20")]), NEQ(Var("ZF",Imm(1)),Int(1,1)), -Direct(Tid(808, "%00000328"))), Goto(Tid(1_470, "%000005be"), Attrs([]), - Int(1,1), Direct(Tid(831, "%0000033f")))])), Blk(Tid(831, "%0000033f"), - Attrs([Attr("address","0x770")]), Phis([]), Defs([Def(Tid(834, "%00000342"), - Attrs([Attr("address","0x770"), Attr("insn","adrp x0, #65536")]), - Var("R0",Imm(64)), Int(65536,64)), Def(Tid(841, "%00000349"), - Attrs([Attr("address","0x774"), Attr("insn","ldr x0, [x0, #0xfe0]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(4064,64)),LittleEndian(),64)), -Def(Tid(848, "%00000350"), Attrs([Attr("address","0x778"), -Attr("insn","str wzr, [x0]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("R0",Imm(64)),Int(0,32),LittleEndian(),32)), -Def(Tid(853, "%00000355"), Attrs([Attr("address","0x77C"), -Attr("insn","adrp x0, #65536")]), Var("R0",Imm(64)), Int(65536,64)), -Def(Tid(860, "%0000035c"), Attrs([Attr("address","0x780"), -Attr("insn","ldr x0, [x0, #0xfe0]")]), Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(4064,64)),LittleEndian(),64)), -Def(Tid(867, "%00000363"), Attrs([Attr("address","0x784"), -Attr("insn","ldr w0, [x0]")]), Var("R0",Imm(64)), -UNSIGNED(64,Load(Var("mem",Mem(64,8)),Var("R0",Imm(64)),LittleEndian(),32))), -Def(Tid(875, "%0000036b"), Attrs([Attr("address","0x788"), -Attr("insn","str w0, [sp, #0xc]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(12,64)),Extract(31,0,Var("R0",Imm(64))),LittleEndian(),32))]), -Jmps([Goto(Tid(1_471, "%000005bf"), Attrs([]), Int(1,1), -Direct(Tid(808, "%00000328")))])), Blk(Tid(808, "%00000328"), - Attrs([Attr("address","0x78C")]), Phis([]), Defs([Def(Tid(818, "%00000332"), - Attrs([Attr("address","0x78C"), Attr("insn","ldr w0, [sp, #0xc]")]), - Var("R0",Imm(64)), -UNSIGNED(64,Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(12,64)),LittleEndian(),32))), -Def(Tid(824, "%00000338"), Attrs([Attr("address","0x790"), -Attr("insn","add sp, sp, #0x10")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(16,64)))]), Jmps([Call(Tid(829, "%0000033d"), - Attrs([Attr("address","0x794"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), -Sub(Tid(1_441, "@register_tm_clones"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x6C0")]), - "register_tm_clones", Args([Arg(Tid(1_491, "%000005d3"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("register_tm_clones_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(596, "@register_tm_clones"), Attrs([Attr("address","0x6C0")]), - Phis([]), Defs([Def(Tid(599, "%00000257"), Attrs([Attr("address","0x6C0"), -Attr("insn","adrp x0, #69632")]), Var("R0",Imm(64)), Int(69632,64)), -Def(Tid(605, "%0000025d"), Attrs([Attr("address","0x6C4"), -Attr("insn","add x0, x0, #0x10")]), Var("R0",Imm(64)), -PLUS(Var("R0",Imm(64)),Int(16,64))), Def(Tid(610, "%00000262"), - Attrs([Attr("address","0x6C8"), Attr("insn","adrp x1, #69632")]), - Var("R1",Imm(64)), Int(69632,64)), Def(Tid(616, "%00000268"), - Attrs([Attr("address","0x6CC"), Attr("insn","add x1, x1, #0x10")]), - Var("R1",Imm(64)), PLUS(Var("R1",Imm(64)),Int(16,64))), -Def(Tid(623, "%0000026f"), Attrs([Attr("address","0x6D0"), -Attr("insn","sub x1, x1, x0")]), Var("R1",Imm(64)), -PLUS(PLUS(Var("R1",Imm(64)),NOT(Var("R0",Imm(64)))),Int(1,64))), -Def(Tid(629, "%00000275"), Attrs([Attr("address","0x6D4"), -Attr("insn","lsr x2, x1, #63")]), Var("R2",Imm(64)), -Concat(Int(0,63),Extract(63,63,Var("R1",Imm(64))))), -Def(Tid(636, "%0000027c"), Attrs([Attr("address","0x6D8"), -Attr("insn","add x1, x2, x1, asr #3")]), Var("R1",Imm(64)), -PLUS(Var("R2",Imm(64)),ARSHIFT(Var("R1",Imm(64)),Int(3,3)))), -Def(Tid(642, "%00000282"), Attrs([Attr("address","0x6DC"), -Attr("insn","asr x1, x1, #1")]), Var("R1",Imm(64)), -SIGNED(64,Extract(63,1,Var("R1",Imm(64)))))]), -Jmps([Goto(Tid(648, "%00000288"), Attrs([Attr("address","0x6E0"), -Attr("insn","cbz x1, #0x18")]), EQ(Var("R1",Imm(64)),Int(0,64)), -Direct(Tid(646, "%00000286"))), Goto(Tid(1_472, "%000005c0"), Attrs([]), - Int(1,1), Direct(Tid(936, "%000003a8")))])), Blk(Tid(936, "%000003a8"), - Attrs([Attr("address","0x6E4")]), Phis([]), Defs([Def(Tid(939, "%000003ab"), - Attrs([Attr("address","0x6E4"), Attr("insn","adrp x2, #65536")]), - Var("R2",Imm(64)), Int(65536,64)), Def(Tid(946, "%000003b2"), - Attrs([Attr("address","0x6E8"), Attr("insn","ldr x2, [x2, #0xff8]")]), - Var("R2",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R2",Imm(64)),Int(4088,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(951, "%000003b7"), Attrs([Attr("address","0x6EC"), -Attr("insn","cbz x2, #0xc")]), EQ(Var("R2",Imm(64)),Int(0,64)), -Direct(Tid(646, "%00000286"))), Goto(Tid(1_473, "%000005c1"), Attrs([]), - Int(1,1), Direct(Tid(955, "%000003bb")))])), Blk(Tid(646, "%00000286"), - Attrs([Attr("address","0x6F8")]), Phis([]), Defs([]), -Jmps([Call(Tid(654, "%0000028e"), Attrs([Attr("address","0x6F8"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))])), -Blk(Tid(955, "%000003bb"), Attrs([Attr("address","0x6F0")]), Phis([]), -Defs([Def(Tid(959, "%000003bf"), Attrs([Attr("address","0x6F0"), -Attr("insn","mov x16, x2")]), Var("R16",Imm(64)), Var("R2",Imm(64)))]), -Jmps([Call(Tid(964, "%000003c4"), Attrs([Attr("address","0x6F4"), -Attr("insn","br x16")]), Int(1,1), -(Indirect(Var("R16",Imm(64))),))]))]))]))) \ No newline at end of file diff --git a/src/test/correct/basic_lock_read/gcc_pic/basic_lock_read.bir b/src/test/correct/basic_lock_read/gcc_pic/basic_lock_read.bir deleted file mode 100644 index f9ffca1ba..000000000 --- a/src/test/correct/basic_lock_read/gcc_pic/basic_lock_read.bir +++ /dev/null @@ -1,249 +0,0 @@ -000005c2: program -0000058c: sub __cxa_finalize(__cxa_finalize_result) -000005c3: __cxa_finalize_result :: out u32 = low:32[R0] - -000003a4: -0000049c: R16 := 0x10000 -000004a3: R17 := mem[R16 + 0xFA8, el]:u64 -000004a9: R16 := R16 + 0xFA8 -000004ae: call R17 with noreturn - -0000058d: sub __do_global_dtors_aux(__do_global_dtors_aux_result) -000005c4: __do_global_dtors_aux_result :: out u32 = low:32[R0] - -00000292: -00000296: #3 := R31 - 0x20 -0000029c: mem := mem with [#3, el]:u64 <- R29 -000002a2: mem := mem with [#3 + 8, el]:u64 <- R30 -000002a6: R31 := #3 -000002ac: R29 := R31 -000002b4: mem := mem with [R31 + 0x10, el]:u64 <- R19 -000002b9: R19 := 0x11000 -000002c0: R0 := pad:64[mem[R19 + 0x10]] -000002c7: when 31:0[R0] <> 0 goto %000002c5 -000005b6: goto %0000036d - -0000036d: -00000370: R0 := 0x10000 -00000377: R0 := mem[R0 + 0xFD0, el]:u64 -0000037d: when R0 = 0 goto %0000037b -000005b7: goto %00000394 - -00000394: -00000397: R0 := 0x11000 -0000039e: R0 := mem[R0 + 8, el]:u64 -000003a3: R30 := 0x730 -000003a6: call @__cxa_finalize with return %0000037b - -0000037b: -00000383: R30 := 0x734 -00000385: call @deregister_tm_clones with return %00000387 - -00000387: -0000038a: R0 := 1 -00000392: mem := mem with [R19 + 0x10] <- 7:0[R0] -000005b8: goto %000002c5 - -000002c5: -000002cf: R19 := mem[R31 + 0x10, el]:u64 -000002d6: R29 := mem[R31, el]:u64 -000002db: R30 := mem[R31 + 8, el]:u64 -000002df: R31 := R31 + 0x20 -000002e4: call R30 with noreturn - -00000591: sub __libc_start_main(__libc_start_main_main, __libc_start_main_arg2, __libc_start_main_arg3, __libc_start_main_auxv, __libc_start_main_result) -000005c5: __libc_start_main_main :: in u64 = R0 -000005c6: __libc_start_main_arg2 :: in u32 = low:32[R1] -000005c7: __libc_start_main_arg3 :: in out u64 = R2 -000005c8: __libc_start_main_auxv :: in out u64 = R3 -000005c9: __libc_start_main_result :: out u32 = low:32[R0] - -000001eb: -00000486: R16 := 0x10000 -0000048d: R17 := mem[R16 + 0xFA0, el]:u64 -00000493: R16 := R16 + 0xFA0 -00000498: call R17 with noreturn - -00000592: sub _fini(_fini_result) -000005ca: _fini_result :: out u32 = low:32[R0] - -0000001f: -00000025: #0 := R31 - 0x10 -0000002b: mem := mem with [#0, el]:u64 <- R29 -00000031: mem := mem with [#0 + 8, el]:u64 <- R30 -00000035: R31 := #0 -0000003b: R29 := R31 -00000042: R29 := mem[R31, el]:u64 -00000047: R30 := mem[R31 + 8, el]:u64 -0000004b: R31 := R31 + 0x10 -00000050: call R30 with noreturn - -00000593: sub _init(_init_result) -000005cb: _init_result :: out u32 = low:32[R0] - -000004f6: -000004fc: #6 := R31 - 0x10 -00000502: mem := mem with [#6, el]:u64 <- R29 -00000508: mem := mem with [#6 + 8, el]:u64 <- R30 -0000050c: R31 := #6 -00000512: R29 := R31 -00000517: R30 := 0x5C0 -00000519: call @call_weak_fn with return %0000051b - -0000051b: -00000520: R29 := mem[R31, el]:u64 -00000525: R30 := mem[R31 + 8, el]:u64 -00000529: R31 := R31 + 0x10 -0000052e: call R30 with noreturn - -00000594: sub _start(_start_result) -000005cc: _start_result :: out u32 = low:32[R0] - -000001ac: -000001b1: R29 := 0 -000001b6: R30 := 0 -000001bc: R5 := R0 -000001c3: R1 := mem[R31, el]:u64 -000001c9: R2 := R31 + 8 -000001cf: R6 := R31 -000001d4: R0 := 0x10000 -000001db: R0 := mem[R0 + 0xFF0, el]:u64 -000001e0: R3 := 0 -000001e5: R4 := 0 -000001ea: R30 := 0x670 -000001ed: call @__libc_start_main with return %000001ef - -000001ef: -000001f2: R30 := 0x674 -000001f5: call @abort with return %000005b9 - -000005b9: -000005ba: call @call_weak_fn with noreturn - -00000597: sub abort() - - -000001f3: -000004c8: R16 := 0x10000 -000004cf: R17 := mem[R16 + 0xFB8, el]:u64 -000004d5: R16 := R16 + 0xFB8 -000004da: call R17 with noreturn - -00000598: sub call_weak_fn(call_weak_fn_result) -000005cd: call_weak_fn_result :: out u32 = low:32[R0] - -000001f7: -000001fa: R0 := 0x10000 -00000201: R0 := mem[R0 + 0xFE8, el]:u64 -00000207: when R0 = 0 goto %00000205 -000005bb: goto %000003e4 - -00000205: -0000020d: call R30 with noreturn - -000003e4: -000003e7: goto @__gmon_start__ - -000003e5: -000004b2: R16 := 0x10000 -000004b9: R17 := mem[R16 + 0xFB0, el]:u64 -000004bf: R16 := R16 + 0xFB0 -000004c4: call R17 with noreturn - -0000059a: sub deregister_tm_clones(deregister_tm_clones_result) -000005ce: deregister_tm_clones_result :: out u32 = low:32[R0] - -00000213: -00000216: R0 := 0x11000 -0000021c: R0 := R0 + 0x10 -00000221: R1 := 0x11000 -00000227: R1 := R1 + 0x10 -0000022d: #1 := ~R0 -00000232: #2 := R1 + ~R0 -00000238: VF := extend:65[#2 + 1] <> extend:65[R1] + extend:65[#1] + 1 -0000023e: CF := pad:65[#2 + 1] <> pad:65[R1] + pad:65[#1] + 1 -00000242: ZF := #2 + 1 = 0 -00000246: NF := 63:63[#2 + 1] -0000024c: when ZF goto %0000024a -000005bc: goto %000003c6 - -000003c6: -000003c9: R1 := 0x10000 -000003d0: R1 := mem[R1 + 0xFC8, el]:u64 -000003d5: when R1 = 0 goto %0000024a -000005bd: goto %000003d9 - -0000024a: -00000252: call R30 with noreturn - -000003d9: -000003dd: R16 := R1 -000003e2: call R16 with noreturn - -0000059d: sub frame_dummy(frame_dummy_result) -000005cf: frame_dummy_result :: out u32 = low:32[R0] - -000002ea: -000002ec: call @register_tm_clones with noreturn - -0000059e: sub main(main_argc, main_argv, main_result) -000005d0: main_argc :: in u32 = low:32[R0] -000005d1: main_argv :: in out u64 = R1 -000005d2: main_result :: out u32 = low:32[R0] - -000002ee: -000002f2: R31 := R31 - 0x10 -000002f9: mem := mem with [R31 + 0xC, el]:u32 <- 0 -000002fe: R0 := 0x10000 -00000305: R0 := mem[R0 + 0xFD8, el]:u64 -0000030c: R0 := pad:64[mem[R0, el]:u32] -00000312: #4 := 31:0[R0] - 1 -00000317: VF := extend:33[#4 + 1] <> extend:33[31:0[R0]] + 0 -0000031c: CF := pad:33[#4 + 1] <> pad:33[31:0[R0]] - 0x100000000 -00000320: ZF := #4 + 1 = 0 -00000324: NF := 31:31[#4 + 1] -0000032a: when ZF <> 1 goto %00000328 -000005be: goto %0000033f - -0000033f: -00000342: R0 := 0x10000 -00000349: R0 := mem[R0 + 0xFE0, el]:u64 -00000350: mem := mem with [R0, el]:u32 <- 0 -00000355: R0 := 0x10000 -0000035c: R0 := mem[R0 + 0xFE0, el]:u64 -00000363: R0 := pad:64[mem[R0, el]:u32] -0000036b: mem := mem with [R31 + 0xC, el]:u32 <- 31:0[R0] -000005bf: goto %00000328 - -00000328: -00000332: R0 := pad:64[mem[R31 + 0xC, el]:u32] -00000338: R31 := R31 + 0x10 -0000033d: call R30 with noreturn - -000005a1: sub register_tm_clones(register_tm_clones_result) -000005d3: register_tm_clones_result :: out u32 = low:32[R0] - -00000254: -00000257: R0 := 0x11000 -0000025d: R0 := R0 + 0x10 -00000262: R1 := 0x11000 -00000268: R1 := R1 + 0x10 -0000026f: R1 := R1 + ~R0 + 1 -00000275: R2 := 0.63:63[R1] -0000027c: R1 := R2 + (R1 ~>> 3) -00000282: R1 := extend:64[63:1[R1]] -00000288: when R1 = 0 goto %00000286 -000005c0: goto %000003a8 - -000003a8: -000003ab: R2 := 0x10000 -000003b2: R2 := mem[R2 + 0xFF8, el]:u64 -000003b7: when R2 = 0 goto %00000286 -000005c1: goto %000003bb - -00000286: -0000028e: call R30 with noreturn - -000003bb: -000003bf: R16 := R2 -000003c4: call R16 with noreturn diff --git a/src/test/correct/basic_lock_read/gcc_pic/basic_lock_read.expected b/src/test/correct/basic_lock_read/gcc_pic/basic_lock_read.expected index 323de544f..b4ac0e9ec 100644 --- a/src/test/correct/basic_lock_read/gcc_pic/basic_lock_read.expected +++ b/src/test/correct/basic_lock_read/gcc_pic/basic_lock_read.expected @@ -93,7 +93,7 @@ implementation {:extern} guarantee_reflexive() assert (memory_load32_le(mem, $z_addr) == memory_load32_le(mem, $z_addr)); } -procedure main_1876(); +procedure main(); modifies CF, Gamma_CF, Gamma_NF, Gamma_R0, Gamma_R31, Gamma_VF, Gamma_ZF, Gamma_mem, Gamma_stack, NF, R0, R31, VF, ZF, mem, stack; free requires (memory_load64_le(mem, 69632bv64) == 0bv64); free requires (memory_load64_le(mem, 69640bv64) == 69640bv64); @@ -115,22 +115,22 @@ procedure main_1876(); free ensures (memory_load64_le(mem, 69616bv64) == 1876bv64); free ensures (memory_load64_le(mem, 69640bv64) == 69640bv64); -implementation main_1876() +implementation main() { var #4: bv32; + var $load$18: bv64; + var $load$19: bv32; + var $load$20: bv64; + var $load$21: bv64; + var $load$22: bv32; + var $load$23: bv32; var Gamma_#4: bool; - var Gamma_load18: bool; - var Gamma_load19: bool; - var Gamma_load20: bool; - var Gamma_load21: bool; - var Gamma_load22: bool; - var Gamma_load23: bool; - var load18: bv64; - var load19: bv32; - var load20: bv64; - var load21: bv64; - var load22: bv32; - var load23: bv32; + var Gamma_$load$18: bool; + var Gamma_$load$19: bool; + var Gamma_$load$20: bool; + var Gamma_$load$21: bool; + var Gamma_$load$22: bool; + var Gamma_$load$23: bool; var z_old: bv32; lmain: assume {:captureState "lmain"} true; @@ -139,11 +139,11 @@ implementation main_1876() assume {:captureState "%000002f9"} true; R0, Gamma_R0 := 65536bv64, true; call rely(); - load18, Gamma_load18 := memory_load64_le(mem, bvadd64(R0, 4056bv64)), (gamma_load64(Gamma_mem, bvadd64(R0, 4056bv64)) || L(mem, bvadd64(R0, 4056bv64))); - R0, Gamma_R0 := load18, Gamma_load18; + $load$18, Gamma_$load$18 := memory_load64_le(mem, bvadd64(R0, 4056bv64)), (gamma_load64(Gamma_mem, bvadd64(R0, 4056bv64)) || L(mem, bvadd64(R0, 4056bv64))); + R0, Gamma_R0 := $load$18, Gamma_$load$18; call rely(); - load19, Gamma_load19 := memory_load32_le(mem, R0), (gamma_load32(Gamma_mem, R0) || L(mem, R0)); - R0, Gamma_R0 := zero_extend32_32(load19), Gamma_load19; + $load$19, Gamma_$load$19 := memory_load32_le(mem, R0), (gamma_load32(Gamma_mem, R0) || L(mem, R0)); + R0, Gamma_R0 := zero_extend32_32($load$19), Gamma_$load$19; #4, Gamma_#4 := bvadd32(R0[32:0], 4294967295bv32), Gamma_R0; VF, Gamma_VF := bvnot1(bvcomp33(sign_extend1_32(bvadd32(#4, 1bv32)), bvadd33(sign_extend1_32(R0[32:0]), 0bv33))), (Gamma_R0 && Gamma_#4); CF, Gamma_CF := bvnot1(bvcomp33(zero_extend1_32(bvadd32(#4, 1bv32)), bvadd33(zero_extend1_32(R0[32:0]), 4294967296bv33))), (Gamma_R0 && Gamma_#4); @@ -151,44 +151,44 @@ implementation main_1876() NF, Gamma_NF := bvadd32(#4, 1bv32)[32:31], Gamma_#4; assert Gamma_ZF; goto lmain_goto_l00000328, lmain_goto_l0000033f; - lmain_goto_l0000033f: - assume {:captureState "lmain_goto_l0000033f"} true; - assume (bvnot1(bvcomp1(ZF, 1bv1)) == 0bv1); + l0000033f: + assume {:captureState "l0000033f"} true; R0, Gamma_R0 := 65536bv64, true; call rely(); - load20, Gamma_load20 := memory_load64_le(mem, bvadd64(R0, 4064bv64)), (gamma_load64(Gamma_mem, bvadd64(R0, 4064bv64)) || L(mem, bvadd64(R0, 4064bv64))); - R0, Gamma_R0 := load20, Gamma_load20; + $load$20, Gamma_$load$20 := memory_load64_le(mem, bvadd64(R0, 4064bv64)), (gamma_load64(Gamma_mem, bvadd64(R0, 4064bv64)) || L(mem, bvadd64(R0, 4064bv64))); + R0, Gamma_R0 := $load$20, Gamma_$load$20; call rely(); - z_old := memory_load32_le(mem, $z_addr); assert (L(mem, R0) ==> true); + z_old := memory_load32_le(mem, $z_addr); mem, Gamma_mem := memory_store32_le(mem, R0, 0bv32), gamma_store32(Gamma_mem, R0, true); assert (memory_load32_le(mem, $z_addr) == z_old); assume {:captureState "%00000350"} true; R0, Gamma_R0 := 65536bv64, true; call rely(); - load21, Gamma_load21 := memory_load64_le(mem, bvadd64(R0, 4064bv64)), (gamma_load64(Gamma_mem, bvadd64(R0, 4064bv64)) || L(mem, bvadd64(R0, 4064bv64))); - R0, Gamma_R0 := load21, Gamma_load21; + $load$21, Gamma_$load$21 := memory_load64_le(mem, bvadd64(R0, 4064bv64)), (gamma_load64(Gamma_mem, bvadd64(R0, 4064bv64)) || L(mem, bvadd64(R0, 4064bv64))); + R0, Gamma_R0 := $load$21, Gamma_$load$21; call rely(); - load22, Gamma_load22 := memory_load32_le(mem, R0), (gamma_load32(Gamma_mem, R0) || L(mem, R0)); - R0, Gamma_R0 := zero_extend32_32(load22), Gamma_load22; + $load$22, Gamma_$load$22 := memory_load32_le(mem, R0), (gamma_load32(Gamma_mem, R0) || L(mem, R0)); + R0, Gamma_R0 := zero_extend32_32($load$22), Gamma_$load$22; stack, Gamma_stack := memory_store32_le(stack, bvadd64(R31, 12bv64), R0[32:0]), gamma_store32(Gamma_stack, bvadd64(R31, 12bv64), Gamma_R0); assume {:captureState "%0000036b"} true; - goto l0000033f; - l0000033f: - assume {:captureState "l0000033f"} true; goto l00000328; + l00000328: + assume {:captureState "l00000328"} true; + $load$23, Gamma_$load$23 := memory_load32_le(stack, bvadd64(R31, 12bv64)), gamma_load32(Gamma_stack, bvadd64(R31, 12bv64)); + R0, Gamma_R0 := zero_extend32_32($load$23), Gamma_$load$23; + R31, Gamma_R31 := bvadd64(R31, 16bv64), Gamma_R31; + goto main_basil_return; lmain_goto_l00000328: assume {:captureState "lmain_goto_l00000328"} true; assume (bvnot1(bvcomp1(ZF, 1bv1)) != 0bv1); goto l00000328; - l00000328: - assume {:captureState "l00000328"} true; - load23, Gamma_load23 := memory_load32_le(stack, bvadd64(R31, 12bv64)), gamma_load32(Gamma_stack, bvadd64(R31, 12bv64)); - R0, Gamma_R0 := zero_extend32_32(load23), Gamma_load23; - R31, Gamma_R31 := bvadd64(R31, 16bv64), Gamma_R31; - goto main_1876_basil_return; - main_1876_basil_return: - assume {:captureState "main_1876_basil_return"} true; + lmain_goto_l0000033f: + assume {:captureState "lmain_goto_l0000033f"} true; + assume (bvnot1(bvcomp1(ZF, 1bv1)) == 0bv1); + goto l0000033f; + main_basil_return: + assume {:captureState "main_basil_return"} true; return; } diff --git a/src/test/correct/basic_lock_read/gcc_pic/basic_lock_read.gts b/src/test/correct/basic_lock_read/gcc_pic/basic_lock_read.gts deleted file mode 100644 index 8021e5ff3..000000000 Binary files a/src/test/correct/basic_lock_read/gcc_pic/basic_lock_read.gts and /dev/null differ diff --git a/src/test/correct/basic_lock_read/gcc_pic/basic_lock_read.md5sum b/src/test/correct/basic_lock_read/gcc_pic/basic_lock_read.md5sum new file mode 100644 index 000000000..7efb032ee --- /dev/null +++ b/src/test/correct/basic_lock_read/gcc_pic/basic_lock_read.md5sum @@ -0,0 +1,5 @@ +6bf75b77372c646d413fc02ecdafc1b3 correct/basic_lock_read/gcc_pic/a.out +4d6eaa98c04b5ac5a1c986849242f44a correct/basic_lock_read/gcc_pic/basic_lock_read.adt +973f95c7b8a7b7a3dc616b1282c3b393 correct/basic_lock_read/gcc_pic/basic_lock_read.bir +0d23b4618c3e70017adcba0da6063189 correct/basic_lock_read/gcc_pic/basic_lock_read.relf +f2975589649ccfa2f01fd36338a98663 correct/basic_lock_read/gcc_pic/basic_lock_read.gts diff --git a/src/test/correct/basic_lock_read/gcc_pic/basic_lock_read.relf b/src/test/correct/basic_lock_read/gcc_pic/basic_lock_read.relf deleted file mode 100644 index 73e6282f4..000000000 --- a/src/test/correct/basic_lock_read/gcc_pic/basic_lock_read.relf +++ /dev/null @@ -1,124 +0,0 @@ - -Relocation section '.rela.dyn' at offset 0x460 contains 10 entries: - Offset Info Type Symbol's Value Symbol's Name + Addend -0000000000010d88 0000000000000403 R_AARCH64_RELATIVE 750 -0000000000010d90 0000000000000403 R_AARCH64_RELATIVE 700 -0000000000010fd8 0000000000000403 R_AARCH64_RELATIVE 11018 -0000000000010fe0 0000000000000403 R_AARCH64_RELATIVE 11014 -0000000000010ff0 0000000000000403 R_AARCH64_RELATIVE 754 -0000000000011008 0000000000000403 R_AARCH64_RELATIVE 11008 -0000000000010fc8 0000000400000401 R_AARCH64_GLOB_DAT 0000000000000000 _ITM_deregisterTMCloneTable + 0 -0000000000010fd0 0000000500000401 R_AARCH64_GLOB_DAT 0000000000000000 __cxa_finalize@GLIBC_2.17 + 0 -0000000000010fe8 0000000600000401 R_AARCH64_GLOB_DAT 0000000000000000 __gmon_start__ + 0 -0000000000010ff8 0000000800000401 R_AARCH64_GLOB_DAT 0000000000000000 _ITM_registerTMCloneTable + 0 - -Relocation section '.rela.plt' at offset 0x550 contains 4 entries: - Offset Info Type Symbol's Value Symbol's Name + Addend -0000000000010fa0 0000000300000402 R_AARCH64_JUMP_SLOT 0000000000000000 __libc_start_main@GLIBC_2.34 + 0 -0000000000010fa8 0000000500000402 R_AARCH64_JUMP_SLOT 0000000000000000 __cxa_finalize@GLIBC_2.17 + 0 -0000000000010fb0 0000000600000402 R_AARCH64_JUMP_SLOT 0000000000000000 __gmon_start__ + 0 -0000000000010fb8 0000000700000402 R_AARCH64_JUMP_SLOT 0000000000000000 abort@GLIBC_2.17 + 0 - -Symbol table '.dynsym' contains 9 entries: - Num: Value Size Type Bind Vis Ndx Name - 0: 0000000000000000 0 NOTYPE LOCAL DEFAULT UND - 1: 00000000000005b0 0 SECTION LOCAL DEFAULT 11 .init - 2: 0000000000011000 0 SECTION LOCAL DEFAULT 22 .data - 3: 0000000000000000 0 FUNC GLOBAL DEFAULT UND __libc_start_main@GLIBC_2.34 (2) - 4: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_deregisterTMCloneTable - 5: 0000000000000000 0 FUNC WEAK DEFAULT UND __cxa_finalize@GLIBC_2.17 (3) - 6: 0000000000000000 0 NOTYPE WEAK DEFAULT UND __gmon_start__ - 7: 0000000000000000 0 FUNC GLOBAL DEFAULT UND abort@GLIBC_2.17 (3) - 8: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_registerTMCloneTable - -Symbol table '.symtab' contains 89 entries: - Num: Value Size Type Bind Vis Ndx Name - 0: 0000000000000000 0 NOTYPE LOCAL DEFAULT UND - 1: 0000000000000238 0 SECTION LOCAL DEFAULT 1 .interp - 2: 0000000000000254 0 SECTION LOCAL DEFAULT 2 .note.gnu.build-id - 3: 0000000000000278 0 SECTION LOCAL DEFAULT 3 .note.ABI-tag - 4: 0000000000000298 0 SECTION LOCAL DEFAULT 4 .gnu.hash - 5: 00000000000002b8 0 SECTION LOCAL DEFAULT 5 .dynsym - 6: 0000000000000390 0 SECTION LOCAL DEFAULT 6 .dynstr - 7: 000000000000041e 0 SECTION LOCAL DEFAULT 7 .gnu.version - 8: 0000000000000430 0 SECTION LOCAL DEFAULT 8 .gnu.version_r - 9: 0000000000000460 0 SECTION LOCAL DEFAULT 9 .rela.dyn - 10: 0000000000000550 0 SECTION LOCAL DEFAULT 10 .rela.plt - 11: 00000000000005b0 0 SECTION LOCAL DEFAULT 11 .init - 12: 00000000000005d0 0 SECTION LOCAL DEFAULT 12 .plt - 13: 0000000000000640 0 SECTION LOCAL DEFAULT 13 .text - 14: 0000000000000798 0 SECTION LOCAL DEFAULT 14 .fini - 15: 00000000000007ac 0 SECTION LOCAL DEFAULT 15 .rodata - 16: 00000000000007b0 0 SECTION LOCAL DEFAULT 16 .eh_frame_hdr - 17: 00000000000007f0 0 SECTION LOCAL DEFAULT 17 .eh_frame - 18: 0000000000010d88 0 SECTION LOCAL DEFAULT 18 .init_array - 19: 0000000000010d90 0 SECTION LOCAL DEFAULT 19 .fini_array - 20: 0000000000010d98 0 SECTION LOCAL DEFAULT 20 .dynamic - 21: 0000000000010f88 0 SECTION LOCAL DEFAULT 21 .got - 22: 0000000000011000 0 SECTION LOCAL DEFAULT 22 .data - 23: 0000000000011010 0 SECTION LOCAL DEFAULT 23 .bss - 24: 0000000000000000 0 SECTION LOCAL DEFAULT 24 .comment - 25: 0000000000000000 0 FILE LOCAL DEFAULT ABS Scrt1.o - 26: 0000000000000278 0 NOTYPE LOCAL DEFAULT 3 $d - 27: 0000000000000278 32 OBJECT LOCAL DEFAULT 3 __abi_tag - 28: 0000000000000640 0 NOTYPE LOCAL DEFAULT 13 $x - 29: 0000000000000804 0 NOTYPE LOCAL DEFAULT 17 $d - 30: 00000000000007ac 0 NOTYPE LOCAL DEFAULT 15 $d - 31: 0000000000000000 0 FILE LOCAL DEFAULT ABS crti.o - 32: 0000000000000674 0 NOTYPE LOCAL DEFAULT 13 $x - 33: 0000000000000674 20 FUNC LOCAL DEFAULT 13 call_weak_fn - 34: 00000000000005b0 0 NOTYPE LOCAL DEFAULT 11 $x - 35: 0000000000000798 0 NOTYPE LOCAL DEFAULT 14 $x - 36: 0000000000000000 0 FILE LOCAL DEFAULT ABS crtn.o - 37: 00000000000005c0 0 NOTYPE LOCAL DEFAULT 11 $x - 38: 00000000000007a4 0 NOTYPE LOCAL DEFAULT 14 $x - 39: 0000000000000000 0 FILE LOCAL DEFAULT ABS crtstuff.c - 40: 0000000000000690 0 NOTYPE LOCAL DEFAULT 13 $x - 41: 0000000000000690 0 FUNC LOCAL DEFAULT 13 deregister_tm_clones - 42: 00000000000006c0 0 FUNC LOCAL DEFAULT 13 register_tm_clones - 43: 0000000000011008 0 NOTYPE LOCAL DEFAULT 22 $d - 44: 0000000000000700 0 FUNC LOCAL DEFAULT 13 __do_global_dtors_aux - 45: 0000000000011010 1 OBJECT LOCAL DEFAULT 23 completed.0 - 46: 0000000000010d90 0 NOTYPE LOCAL DEFAULT 19 $d - 47: 0000000000010d90 0 OBJECT LOCAL DEFAULT 19 __do_global_dtors_aux_fini_array_entry - 48: 0000000000000750 0 FUNC LOCAL DEFAULT 13 frame_dummy - 49: 0000000000010d88 0 NOTYPE LOCAL DEFAULT 18 $d - 50: 0000000000010d88 0 OBJECT LOCAL DEFAULT 18 __frame_dummy_init_array_entry - 51: 0000000000000818 0 NOTYPE LOCAL DEFAULT 17 $d - 52: 0000000000011010 0 NOTYPE LOCAL DEFAULT 23 $d - 53: 0000000000000000 0 FILE LOCAL DEFAULT ABS basic_lock_read.c - 54: 0000000000011014 0 NOTYPE LOCAL DEFAULT 23 $d - 55: 0000000000000754 0 NOTYPE LOCAL DEFAULT 13 $x - 56: 0000000000000878 0 NOTYPE LOCAL DEFAULT 17 $d - 57: 0000000000000000 0 FILE LOCAL DEFAULT ABS crtstuff.c - 58: 0000000000000890 0 NOTYPE LOCAL DEFAULT 17 $d - 59: 0000000000000890 0 OBJECT LOCAL DEFAULT 17 __FRAME_END__ - 60: 0000000000000000 0 FILE LOCAL DEFAULT ABS - 61: 0000000000010d98 0 OBJECT LOCAL DEFAULT ABS _DYNAMIC - 62: 00000000000007b0 0 NOTYPE LOCAL DEFAULT 16 __GNU_EH_FRAME_HDR - 63: 0000000000010fc0 0 OBJECT LOCAL DEFAULT ABS _GLOBAL_OFFSET_TABLE_ - 64: 00000000000005d0 0 NOTYPE LOCAL DEFAULT 12 $x - 65: 0000000000000000 0 FUNC GLOBAL DEFAULT UND __libc_start_main@GLIBC_2.34 - 66: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_deregisterTMCloneTable - 67: 0000000000011000 0 NOTYPE WEAK DEFAULT 22 data_start - 68: 0000000000011010 0 NOTYPE GLOBAL DEFAULT 23 __bss_start__ - 69: 0000000000000000 0 FUNC WEAK DEFAULT UND __cxa_finalize@GLIBC_2.17 - 70: 0000000000011020 0 NOTYPE GLOBAL DEFAULT 23 _bss_end__ - 71: 0000000000011010 0 NOTYPE GLOBAL DEFAULT 22 _edata - 72: 0000000000011018 4 OBJECT GLOBAL DEFAULT 23 z - 73: 0000000000011014 4 OBJECT GLOBAL DEFAULT 23 x - 74: 0000000000000798 0 FUNC GLOBAL HIDDEN 14 _fini - 75: 0000000000011020 0 NOTYPE GLOBAL DEFAULT 23 __bss_end__ - 76: 0000000000011000 0 NOTYPE GLOBAL DEFAULT 22 __data_start - 77: 0000000000000000 0 NOTYPE WEAK DEFAULT UND __gmon_start__ - 78: 0000000000011008 0 OBJECT GLOBAL HIDDEN 22 __dso_handle - 79: 0000000000000000 0 FUNC GLOBAL DEFAULT UND abort@GLIBC_2.17 - 80: 00000000000007ac 4 OBJECT GLOBAL DEFAULT 15 _IO_stdin_used - 81: 0000000000011020 0 NOTYPE GLOBAL DEFAULT 23 _end - 82: 0000000000000640 52 FUNC GLOBAL DEFAULT 13 _start - 83: 0000000000011020 0 NOTYPE GLOBAL DEFAULT 23 __end__ - 84: 0000000000011010 0 NOTYPE GLOBAL DEFAULT 23 __bss_start - 85: 0000000000000754 68 FUNC GLOBAL DEFAULT 13 main - 86: 0000000000011010 0 OBJECT GLOBAL HIDDEN 22 __TMC_END__ - 87: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_registerTMCloneTable - 88: 00000000000005b0 0 FUNC GLOBAL HIDDEN 11 _init diff --git a/src/test/correct/basic_lock_read/gcc_pic/basic_lock_read_gtirb.expected b/src/test/correct/basic_lock_read/gcc_pic/basic_lock_read_gtirb.expected index 4c9eb642f..d8199d6f2 100644 --- a/src/test/correct/basic_lock_read/gcc_pic/basic_lock_read_gtirb.expected +++ b/src/test/correct/basic_lock_read/gcc_pic/basic_lock_read_gtirb.expected @@ -91,7 +91,7 @@ implementation {:extern} guarantee_reflexive() assert (memory_load32_le(mem, $z_addr) == memory_load32_le(mem, $z_addr)); } -procedure main_1876(); +procedure main(); modifies CF, Gamma_CF, Gamma_NF, Gamma_R0, Gamma_R31, Gamma_VF, Gamma_ZF, Gamma_mem, Gamma_stack, NF, R0, R31, VF, ZF, mem, stack; free requires (memory_load64_le(mem, 69632bv64) == 0bv64); free requires (memory_load64_le(mem, 69640bv64) == 69640bv64); @@ -113,80 +113,80 @@ procedure main_1876(); free ensures (memory_load64_le(mem, 69616bv64) == 1876bv64); free ensures (memory_load64_le(mem, 69640bv64) == 69640bv64); -implementation main_1876() +implementation main() { - var Cse0__5_0_5: bv32; - var Gamma_Cse0__5_0_5: bool; - var Gamma_load14: bool; - var Gamma_load15: bool; - var Gamma_load16: bool; - var Gamma_load17: bool; - var Gamma_load18: bool; - var Gamma_load19: bool; - var load14: bv64; - var load15: bv32; - var load16: bv32; - var load17: bv64; - var load18: bv64; - var load19: bv32; + var $load14: bv64; + var $load15: bv32; + var $load16: bv32; + var $load17: bv64; + var $load18: bv64; + var $load19: bv32; + var Cse0__5$0$5: bv32; + var Gamma_$load14: bool; + var Gamma_$load15: bool; + var Gamma_$load16: bool; + var Gamma_$load17: bool; + var Gamma_$load18: bool; + var Gamma_$load19: bool; + var Gamma_Cse0__5$0$5: bool; var z_old: bv32; - main_1876__0__Gs_ZZWu2SiejIc_00eklZA: - assume {:captureState "main_1876__0__Gs_ZZWu2SiejIc_00eklZA"} true; + $main$__0__$Gs_ZZWu2SiejIc_00eklZA: + assume {:captureState "$main$__0__$Gs_ZZWu2SiejIc_00eklZA"} true; R31, Gamma_R31 := bvadd64(R31, 18446744073709551600bv64), Gamma_R31; stack, Gamma_stack := memory_store32_le(stack, bvadd64(R31, 12bv64), 0bv32), gamma_store32(Gamma_stack, bvadd64(R31, 12bv64), true); - assume {:captureState "1880_0"} true; + assume {:captureState "1880$0"} true; R0, Gamma_R0 := 65536bv64, true; call rely(); - load14, Gamma_load14 := memory_load64_le(mem, bvadd64(R0, 4056bv64)), (gamma_load64(Gamma_mem, bvadd64(R0, 4056bv64)) || L(mem, bvadd64(R0, 4056bv64))); - R0, Gamma_R0 := load14, Gamma_load14; + $load14, Gamma_$load14 := memory_load64_le(mem, bvadd64(R0, 4056bv64)), (gamma_load64(Gamma_mem, bvadd64(R0, 4056bv64)) || L(mem, bvadd64(R0, 4056bv64))); + R0, Gamma_R0 := $load14, Gamma_$load14; call rely(); - load15, Gamma_load15 := memory_load32_le(mem, R0), (gamma_load32(Gamma_mem, R0) || L(mem, R0)); - R0, Gamma_R0 := zero_extend32_32(load15), Gamma_load15; - Cse0__5_0_5, Gamma_Cse0__5_0_5 := bvadd32(R0[32:0], 0bv32), Gamma_R0; - VF, Gamma_VF := bvnot1(bvcomp32(Cse0__5_0_5, Cse0__5_0_5)), Gamma_Cse0__5_0_5; - CF, Gamma_CF := bvnot1(bvcomp33(zero_extend1_32(Cse0__5_0_5), bvadd33(zero_extend1_32(R0[32:0]), 4294967296bv33))), (Gamma_R0 && Gamma_Cse0__5_0_5); - ZF, Gamma_ZF := bvcomp32(Cse0__5_0_5, 0bv32), Gamma_Cse0__5_0_5; - NF, Gamma_NF := Cse0__5_0_5[32:31], Gamma_Cse0__5_0_5; + $load15, Gamma_$load15 := memory_load32_le(mem, R0), (gamma_load32(Gamma_mem, R0) || L(mem, R0)); + R0, Gamma_R0 := zero_extend32_32($load15), Gamma_$load15; + Cse0__5$0$5, Gamma_Cse0__5$0$5 := bvadd32(R0[32:0], 0bv32), Gamma_R0; + VF, Gamma_VF := bvnot1(bvcomp32(Cse0__5$0$5, Cse0__5$0$5)), Gamma_Cse0__5$0$5; + CF, Gamma_CF := bvnot1(bvcomp33(zero_extend1_32(Cse0__5$0$5), bvadd33(zero_extend1_32(R0[32:0]), 4294967296bv33))), (Gamma_R0 && Gamma_Cse0__5$0$5); + ZF, Gamma_ZF := bvcomp32(Cse0__5$0$5, 0bv32), Gamma_Cse0__5$0$5; + NF, Gamma_NF := Cse0__5$0$5[32:31], Gamma_Cse0__5$0$5; assert Gamma_ZF; - goto main_1876__0__Gs_ZZWu2SiejIc_00eklZA_goto_main_1876__2__zWtL6ov7R~OhQ~Y6jkCfIg, main_1876__0__Gs_ZZWu2SiejIc_00eklZA_goto_main_1876__1__3vOWy9QvQo6ElHgnmXugdw; - main_1876__0__Gs_ZZWu2SiejIc_00eklZA_goto_main_1876__1__3vOWy9QvQo6ElHgnmXugdw: - assume {:captureState "main_1876__0__Gs_ZZWu2SiejIc_00eklZA_goto_main_1876__1__3vOWy9QvQo6ElHgnmXugdw"} true; - assume (!(!(ZF == 1bv1))); + goto $main$__0__$Gs_ZZWu2SiejIc_00eklZA_goto_$main$__2__$zWtL6ov7R~OhQ~Y6jkCfIg, $main$__0__$Gs_ZZWu2SiejIc_00eklZA_goto_$main$__1__$3vOWy9QvQo6ElHgnmXugdw; + $main$__1__$3vOWy9QvQo6ElHgnmXugdw: + assume {:captureState "$main$__1__$3vOWy9QvQo6ElHgnmXugdw"} true; R0, Gamma_R0 := 65536bv64, true; call rely(); - load17, Gamma_load17 := memory_load64_le(mem, bvadd64(R0, 4064bv64)), (gamma_load64(Gamma_mem, bvadd64(R0, 4064bv64)) || L(mem, bvadd64(R0, 4064bv64))); - R0, Gamma_R0 := load17, Gamma_load17; + $load17, Gamma_$load17 := memory_load64_le(mem, bvadd64(R0, 4064bv64)), (gamma_load64(Gamma_mem, bvadd64(R0, 4064bv64)) || L(mem, bvadd64(R0, 4064bv64))); + R0, Gamma_R0 := $load17, Gamma_$load17; call rely(); - z_old := memory_load32_le(mem, $z_addr); assert (L(mem, R0) ==> true); + z_old := memory_load32_le(mem, $z_addr); mem, Gamma_mem := memory_store32_le(mem, R0, 0bv32), gamma_store32(Gamma_mem, R0, true); assert (memory_load32_le(mem, $z_addr) == z_old); - assume {:captureState "1912_0"} true; + assume {:captureState "1912$0"} true; R0, Gamma_R0 := 65536bv64, true; call rely(); - load18, Gamma_load18 := memory_load64_le(mem, bvadd64(R0, 4064bv64)), (gamma_load64(Gamma_mem, bvadd64(R0, 4064bv64)) || L(mem, bvadd64(R0, 4064bv64))); - R0, Gamma_R0 := load18, Gamma_load18; + $load18, Gamma_$load18 := memory_load64_le(mem, bvadd64(R0, 4064bv64)), (gamma_load64(Gamma_mem, bvadd64(R0, 4064bv64)) || L(mem, bvadd64(R0, 4064bv64))); + R0, Gamma_R0 := $load18, Gamma_$load18; call rely(); - load19, Gamma_load19 := memory_load32_le(mem, R0), (gamma_load32(Gamma_mem, R0) || L(mem, R0)); - R0, Gamma_R0 := zero_extend32_32(load19), Gamma_load19; + $load19, Gamma_$load19 := memory_load32_le(mem, R0), (gamma_load32(Gamma_mem, R0) || L(mem, R0)); + R0, Gamma_R0 := zero_extend32_32($load19), Gamma_$load19; stack, Gamma_stack := memory_store32_le(stack, bvadd64(R31, 12bv64), R0[32:0]), gamma_store32(Gamma_stack, bvadd64(R31, 12bv64), Gamma_R0); - assume {:captureState "1928_0"} true; - goto main_1876__1__3vOWy9QvQo6ElHgnmXugdw; - main_1876__1__3vOWy9QvQo6ElHgnmXugdw: - assume {:captureState "main_1876__1__3vOWy9QvQo6ElHgnmXugdw"} true; - goto main_1876__2__zWtL6ov7R~OhQ~Y6jkCfIg; - main_1876__0__Gs_ZZWu2SiejIc_00eklZA_goto_main_1876__2__zWtL6ov7R~OhQ~Y6jkCfIg: - assume {:captureState "main_1876__0__Gs_ZZWu2SiejIc_00eklZA_goto_main_1876__2__zWtL6ov7R~OhQ~Y6jkCfIg"} true; - assume (!(ZF == 1bv1)); - goto main_1876__2__zWtL6ov7R~OhQ~Y6jkCfIg; - main_1876__2__zWtL6ov7R~OhQ~Y6jkCfIg: - assume {:captureState "main_1876__2__zWtL6ov7R~OhQ~Y6jkCfIg"} true; - load16, Gamma_load16 := memory_load32_le(stack, bvadd64(R31, 12bv64)), gamma_load32(Gamma_stack, bvadd64(R31, 12bv64)); - R0, Gamma_R0 := zero_extend32_32(load16), Gamma_load16; + assume {:captureState "1928$0"} true; + goto $main$__2__$zWtL6ov7R~OhQ~Y6jkCfIg; + $main$__2__$zWtL6ov7R~OhQ~Y6jkCfIg: + assume {:captureState "$main$__2__$zWtL6ov7R~OhQ~Y6jkCfIg"} true; + $load16, Gamma_$load16 := memory_load32_le(stack, bvadd64(R31, 12bv64)), gamma_load32(Gamma_stack, bvadd64(R31, 12bv64)); + R0, Gamma_R0 := zero_extend32_32($load16), Gamma_$load16; R31, Gamma_R31 := bvadd64(R31, 16bv64), Gamma_R31; - goto main_1876_basil_return; - main_1876_basil_return: - assume {:captureState "main_1876_basil_return"} true; + goto main_basil_return; + $main$__0__$Gs_ZZWu2SiejIc_00eklZA_goto_$main$__2__$zWtL6ov7R~OhQ~Y6jkCfIg: + assume {:captureState "$main$__0__$Gs_ZZWu2SiejIc_00eklZA_goto_$main$__2__$zWtL6ov7R~OhQ~Y6jkCfIg"} true; + assume (!(ZF == 1bv1)); + goto $main$__2__$zWtL6ov7R~OhQ~Y6jkCfIg; + $main$__0__$Gs_ZZWu2SiejIc_00eklZA_goto_$main$__1__$3vOWy9QvQo6ElHgnmXugdw: + assume {:captureState "$main$__0__$Gs_ZZWu2SiejIc_00eklZA_goto_$main$__1__$3vOWy9QvQo6ElHgnmXugdw"} true; + assume (!(!(ZF == 1bv1))); + goto $main$__1__$3vOWy9QvQo6ElHgnmXugdw; + main_basil_return: + assume {:captureState "main_basil_return"} true; return; } diff --git a/src/test/correct/basic_lock_security_read/clang/basic_lock_security_read.adt b/src/test/correct/basic_lock_security_read/clang/basic_lock_security_read.adt deleted file mode 100644 index 5ca19a9a4..000000000 --- a/src/test/correct/basic_lock_security_read/clang/basic_lock_security_read.adt +++ /dev/null @@ -1,554 +0,0 @@ -Project(Attrs([Attr("filename","\"clang/basic_lock_security_read.out\""), -Attr("image-specification","(declare abi (name str))\n(declare arch (name str))\n(declare base-address (addr int))\n(declare bias (off int))\n(declare bits (size int))\n(declare code-region (addr int) (size int) (off int))\n(declare code-start (addr int))\n(declare entry-point (addr int))\n(declare external-reference (addr int) (name str))\n(declare format (name str))\n(declare is-executable (flag bool))\n(declare is-little-endian (flag bool))\n(declare llvm:base-address (addr int))\n(declare llvm:code-entry (name str) (off int) (size int))\n(declare llvm:coff-import-library (name str))\n(declare llvm:coff-virtual-section-header (name str) (addr int) (size int))\n(declare llvm:elf-program-header (name str) (off int) (size int))\n(declare llvm:elf-program-header-flags (name str) (ld bool) (r bool) \n (w bool) (x bool))\n(declare llvm:elf-virtual-program-header (name str) (addr int) (size int))\n(declare llvm:entry-point (addr int))\n(declare llvm:macho-symbol (name str) (value int))\n(declare llvm:name-reference (at int) (name str))\n(declare llvm:relocation (at int) (addr int))\n(declare llvm:section-entry (name str) (addr int) (size int) (off int))\n(declare llvm:section-flags (name str) (r bool) (w bool) (x bool))\n(declare llvm:segment-command (name str) (off int) (size int))\n(declare llvm:segment-command-flags (name str) (r bool) (w bool) (x bool))\n(declare llvm:symbol-entry (name str) (addr int) (size int) (off int)\n (value int))\n(declare llvm:virtual-segment-command (name str) (addr int) (size int))\n(declare mapped (addr int) (size int) (off int))\n(declare named-region (addr int) (size int) (name str))\n(declare named-symbol (addr int) (name str))\n(declare require (name str))\n(declare section (addr int) (size int))\n(declare segment (addr int) (size int) (r bool) (w bool) (x bool))\n(declare subarch (name str))\n(declare symbol-chunk (addr int) (size int) (root int))\n(declare symbol-value (addr int) (value int))\n(declare system (name str))\n(declare vendor (name str))\n\n(abi unknown)\n(arch aarch64)\n(base-address 0)\n(bias 0)\n(bits 64)\n(code-region 1876 20 1876)\n(code-region 1536 340 1536)\n(code-region 1440 96 1440)\n(code-region 1408 24 1408)\n(code-start 1588)\n(code-start 1536)\n(code-start 1812)\n(entry-point 1536)\n(external-reference 69568 _ITM_deregisterTMCloneTable)\n(external-reference 69576 __cxa_finalize)\n(external-reference 69584 __gmon_start__)\n(external-reference 69600 _ITM_registerTMCloneTable)\n(external-reference 69632 __libc_start_main)\n(external-reference 69640 __cxa_finalize)\n(external-reference 69648 __gmon_start__)\n(external-reference 69656 abort)\n(format elf)\n(is-executable true)\n(is-little-endian true)\n(llvm:base-address 0)\n(llvm:code-entry abort 0 0)\n(llvm:code-entry __cxa_finalize 0 0)\n(llvm:code-entry __libc_start_main 0 0)\n(llvm:code-entry _init 1408 0)\n(llvm:code-entry main 1812 64)\n(llvm:code-entry _start 1536 52)\n(llvm:code-entry abort@GLIBC_2.17 0 0)\n(llvm:code-entry _fini 1876 0)\n(llvm:code-entry __cxa_finalize@GLIBC_2.17 0 0)\n(llvm:code-entry __libc_start_main@GLIBC_2.34 0 0)\n(llvm:code-entry frame_dummy 1808 0)\n(llvm:code-entry __do_global_dtors_aux 1728 0)\n(llvm:code-entry register_tm_clones 1664 0)\n(llvm:code-entry deregister_tm_clones 1616 0)\n(llvm:code-entry call_weak_fn 1588 20)\n(llvm:code-entry .fini 1876 20)\n(llvm:code-entry .text 1536 340)\n(llvm:code-entry .plt 1440 96)\n(llvm:code-entry .init 1408 24)\n(llvm:elf-program-header 08 3528 568)\n(llvm:elf-program-header 07 0 0)\n(llvm:elf-program-header 06 1900 60)\n(llvm:elf-program-header 05 596 68)\n(llvm:elf-program-header 04 3544 480)\n(llvm:elf-program-header 03 3528 616)\n(llvm:elf-program-header 02 0 2144)\n(llvm:elf-program-header 01 568 27)\n(llvm:elf-program-header 00 64 504)\n(llvm:elf-program-header-flags 08 false true false false)\n(llvm:elf-program-header-flags 07 false true true false)\n(llvm:elf-program-header-flags 06 false true false false)\n(llvm:elf-program-header-flags 05 false true false false)\n(llvm:elf-program-header-flags 04 false true true false)\n(llvm:elf-program-header-flags 03 true true true false)\n(llvm:elf-program-header-flags 02 true true false true)\n(llvm:elf-program-header-flags 01 false true false false)\n(llvm:elf-program-header-flags 00 false true false false)\n(llvm:elf-virtual-program-header 08 69064 568)\n(llvm:elf-virtual-program-header 07 0 0)\n(llvm:elf-virtual-program-header 06 1900 60)\n(llvm:elf-virtual-program-header 05 596 68)\n(llvm:elf-virtual-program-header 04 69080 480)\n(llvm:elf-virtual-program-header 03 69064 632)\n(llvm:elf-virtual-program-header 02 0 2144)\n(llvm:elf-virtual-program-header 01 568 27)\n(llvm:elf-virtual-program-header 00 64 504)\n(llvm:entry-point 1536)\n(llvm:name-reference 69656 abort)\n(llvm:name-reference 69648 __gmon_start__)\n(llvm:name-reference 69640 __cxa_finalize)\n(llvm:name-reference 69632 __libc_start_main)\n(llvm:name-reference 69600 _ITM_registerTMCloneTable)\n(llvm:name-reference 69584 __gmon_start__)\n(llvm:name-reference 69576 __cxa_finalize)\n(llvm:name-reference 69568 _ITM_deregisterTMCloneTable)\n(llvm:section-entry .shstrtab 0 259 6982)\n(llvm:section-entry .strtab 0 582 6400)\n(llvm:section-entry .symtab 0 2184 4216)\n(llvm:section-entry .comment 0 71 4144)\n(llvm:section-entry .bss 69680 16 4144)\n(llvm:section-entry .data 69664 16 4128)\n(llvm:section-entry .got.plt 69608 56 4072)\n(llvm:section-entry .got 69560 48 4024)\n(llvm:section-entry .dynamic 69080 480 3544)\n(llvm:section-entry .fini_array 69072 8 3536)\n(llvm:section-entry .init_array 69064 8 3528)\n(llvm:section-entry .eh_frame 1960 184 1960)\n(llvm:section-entry .eh_frame_hdr 1900 60 1900)\n(llvm:section-entry .rodata 1896 4 1896)\n(llvm:section-entry .fini 1876 20 1876)\n(llvm:section-entry .text 1536 340 1536)\n(llvm:section-entry .plt 1440 96 1440)\n(llvm:section-entry .init 1408 24 1408)\n(llvm:section-entry .rela.plt 1312 96 1312)\n(llvm:section-entry .rela.dyn 1120 192 1120)\n(llvm:section-entry .gnu.version_r 1072 48 1072)\n(llvm:section-entry .gnu.version 1054 18 1054)\n(llvm:section-entry .dynstr 912 141 912)\n(llvm:section-entry .dynsym 696 216 696)\n(llvm:section-entry .gnu.hash 664 28 664)\n(llvm:section-entry .note.ABI-tag 632 32 632)\n(llvm:section-entry .note.gnu.build-id 596 36 596)\n(llvm:section-entry .interp 568 27 568)\n(llvm:section-flags .shstrtab true false false)\n(llvm:section-flags .strtab true false false)\n(llvm:section-flags .symtab true false false)\n(llvm:section-flags .comment true false false)\n(llvm:section-flags .bss true true false)\n(llvm:section-flags .data true true false)\n(llvm:section-flags .got.plt true true false)\n(llvm:section-flags .got true true false)\n(llvm:section-flags .dynamic true true false)\n(llvm:section-flags .fini_array true true false)\n(llvm:section-flags .init_array true true false)\n(llvm:section-flags .eh_frame true false false)\n(llvm:section-flags .eh_frame_hdr true false false)\n(llvm:section-flags .rodata true false false)\n(llvm:section-flags .fini true false true)\n(llvm:section-flags .text true false true)\n(llvm:section-flags .plt true false true)\n(llvm:section-flags .init true false true)\n(llvm:section-flags .rela.plt true false false)\n(llvm:section-flags .rela.dyn true false false)\n(llvm:section-flags .gnu.version_r true false false)\n(llvm:section-flags .gnu.version true false false)\n(llvm:section-flags .dynstr true false false)\n(llvm:section-flags .dynsym true false false)\n(llvm:section-flags .gnu.hash true false false)\n(llvm:section-flags .note.ABI-tag true false false)\n(llvm:section-flags .note.gnu.build-id true false false)\n(llvm:section-flags .interp true false false)\n(llvm:symbol-entry abort 0 0 0 0)\n(llvm:symbol-entry __cxa_finalize 0 0 0 0)\n(llvm:symbol-entry __libc_start_main 0 0 0 0)\n(llvm:symbol-entry _init 1408 0 1408 1408)\n(llvm:symbol-entry main 1812 64 1812 1812)\n(llvm:symbol-entry _start 1536 52 1536 1536)\n(llvm:symbol-entry abort@GLIBC_2.17 0 0 0 0)\n(llvm:symbol-entry _fini 1876 0 1876 1876)\n(llvm:symbol-entry __cxa_finalize@GLIBC_2.17 0 0 0 0)\n(llvm:symbol-entry __libc_start_main@GLIBC_2.34 0 0 0 0)\n(llvm:symbol-entry frame_dummy 1808 0 1808 1808)\n(llvm:symbol-entry __do_global_dtors_aux 1728 0 1728 1728)\n(llvm:symbol-entry register_tm_clones 1664 0 1664 1664)\n(llvm:symbol-entry deregister_tm_clones 1616 0 1616 1616)\n(llvm:symbol-entry call_weak_fn 1588 20 1588 1588)\n(mapped 0 2144 0)\n(mapped 69064 616 3528)\n(named-region 0 2144 02)\n(named-region 69064 632 03)\n(named-region 568 27 .interp)\n(named-region 596 36 .note.gnu.build-id)\n(named-region 632 32 .note.ABI-tag)\n(named-region 664 28 .gnu.hash)\n(named-region 696 216 .dynsym)\n(named-region 912 141 .dynstr)\n(named-region 1054 18 .gnu.version)\n(named-region 1072 48 .gnu.version_r)\n(named-region 1120 192 .rela.dyn)\n(named-region 1312 96 .rela.plt)\n(named-region 1408 24 .init)\n(named-region 1440 96 .plt)\n(named-region 1536 340 .text)\n(named-region 1876 20 .fini)\n(named-region 1896 4 .rodata)\n(named-region 1900 60 .eh_frame_hdr)\n(named-region 1960 184 .eh_frame)\n(named-region 69064 8 .init_array)\n(named-region 69072 8 .fini_array)\n(named-region 69080 480 .dynamic)\n(named-region 69560 48 .got)\n(named-region 69608 56 .got.plt)\n(named-region 69664 16 .data)\n(named-region 69680 16 .bss)\n(named-region 0 71 .comment)\n(named-region 0 2184 .symtab)\n(named-region 0 582 .strtab)\n(named-region 0 259 .shstrtab)\n(named-symbol 1588 call_weak_fn)\n(named-symbol 1616 deregister_tm_clones)\n(named-symbol 1664 register_tm_clones)\n(named-symbol 1728 __do_global_dtors_aux)\n(named-symbol 1808 frame_dummy)\n(named-symbol 0 __libc_start_main@GLIBC_2.34)\n(named-symbol 0 __cxa_finalize@GLIBC_2.17)\n(named-symbol 1876 _fini)\n(named-symbol 0 abort@GLIBC_2.17)\n(named-symbol 1536 _start)\n(named-symbol 1812 main)\n(named-symbol 1408 _init)\n(named-symbol 0 __libc_start_main)\n(named-symbol 0 __cxa_finalize)\n(named-symbol 0 abort)\n(require libc.so.6)\n(section 568 27)\n(section 596 36)\n(section 632 32)\n(section 664 28)\n(section 696 216)\n(section 912 141)\n(section 1054 18)\n(section 1072 48)\n(section 1120 192)\n(section 1312 96)\n(section 1408 24)\n(section 1440 96)\n(section 1536 340)\n(section 1876 20)\n(section 1896 4)\n(section 1900 60)\n(section 1960 184)\n(section 69064 8)\n(section 69072 8)\n(section 69080 480)\n(section 69560 48)\n(section 69608 56)\n(section 69664 16)\n(section 69680 16)\n(section 0 71)\n(section 0 2184)\n(section 0 582)\n(section 0 259)\n(segment 0 2144 true false true)\n(segment 69064 632 true true false)\n(subarch v8)\n(symbol-chunk 1588 20 1588)\n(symbol-chunk 1536 52 1536)\n(symbol-chunk 1812 64 1812)\n(symbol-value 1588 1588)\n(symbol-value 1616 1616)\n(symbol-value 1664 1664)\n(symbol-value 1728 1728)\n(symbol-value 1808 1808)\n(symbol-value 1876 1876)\n(symbol-value 1536 1536)\n(symbol-value 1812 1812)\n(symbol-value 1408 1408)\n(symbol-value 0 0)\n(system \"\")\n(vendor \"\")\n"), -Attr("abi-name","\"aarch64-linux-gnu-elf\"")]), -Sections([Section(".shstrtab", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x00\x06\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x50\x1c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x38\x00\x09\x00\x40\x00\x1d\x00\x1c\x00\x06\x00\x00\x00\x04\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x04\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x60\x08\x00\x00\x00\x00\x00\x00\x60\x08\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x01\x00\x00\x00\x06\x00\x00\x00\xc8\x0d\x00\x00\x00\x00\x00\x00\xc8\x0d\x01\x00\x00\x00\x00\x00\xc8\x0d\x01"), -Section(".strtab", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x00\x06\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x50\x1c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x38\x00\x09\x00\x40\x00\x1d\x00\x1c\x00\x06\x00\x00\x00\x04\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x04\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x60\x08\x00\x00\x00\x00\x00\x00\x60\x08\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x01\x00\x00\x00\x06\x00\x00\x00\xc8\x0d\x00\x00\x00\x00\x00\x00\xc8\x0d\x01\x00\x00\x00\x00\x00\xc8\x0d\x01\x00\x00\x00\x00\x00\x68\x02\x00\x00\x00\x00\x00\x00\x78\x02\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x02\x00\x00\x00\x06\x00\x00\x00\xd8\x0d\x00\x00\x00\x00\x00\x00\xd8\x0d\x01\x00\x00\x00\x00\x00\xd8\x0d\x01\x00\x00\x00\x00\x00\xe0\x01\x00\x00\x00\x00\x00\x00\xe0\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x04\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x50\xe5\x74\x64\x04\x00\x00\x00\x6c\x07\x00\x00\x00\x00\x00\x00\x6c\x07\x00\x00\x00\x00\x00\x00\x6c\x07\x00\x00\x00\x00\x00\x00\x3c\x00\x00\x00\x00\x00\x00\x00\x3c\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x51\xe5\x74\x64\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x52\xe5\x74\x64\x04\x00\x00\x00\xc8\x0d\x00\x00\x00\x00\x00\x00\xc8\x0d\x01\x00\x00\x00\x00\x00\xc8\x0d\x01\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x2f\x6c\x69\x62\x2f\x6c\x64\x2d\x6c\x69\x6e\x75\x78\x2d"), -Section(".comment", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x00\x06\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x50\x1c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x38\x00\x09\x00\x40\x00\x1d\x00\x1c\x00\x06\x00\x00\x00\x04\x00\x00"), -Section(".interp", 0x238, "\x2f\x6c\x69\x62\x2f\x6c\x64\x2d\x6c\x69\x6e\x75\x78\x2d\x61\x61\x72\x63\x68\x36\x34\x2e\x73\x6f\x2e\x31\x00"), -Section(".note.gnu.build-id", 0x254, "\x04\x00\x00\x00\x14\x00\x00\x00\x03\x00\x00\x00\x47\x4e\x55\x00\xcc\xd2\x6a\x98\xb2\x0b\x39\x7c\x42\xa2\x2e\x87\x1d\xdc\xd3\x3b\xcd\x8d\xfe\x00"), -Section(".note.ABI-tag", 0x278, "\x04\x00\x00\x00\x10\x00\x00\x00\x01\x00\x00\x00\x47\x4e\x55\x00\x00\x00\x00\x00\x03\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00"), -Section(".gnu.hash", 0x298, "\x01\x00\x00\x00\x01\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".dynsym", 0x2B8, "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x0b\x00\x80\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x17\x00\x20\x10\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x48\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x22\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x22\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x73\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".dynstr", 0x390, "\x00\x5f\x5f\x63\x78\x61\x5f\x66\x69\x6e\x61\x6c\x69\x7a\x65\x00\x5f\x5f\x6c\x69\x62\x63\x5f\x73\x74\x61\x72\x74\x5f\x6d\x61\x69\x6e\x00\x61\x62\x6f\x72\x74\x00\x6c\x69\x62\x63\x2e\x73\x6f\x2e\x36\x00\x47\x4c\x49\x42\x43\x5f\x32\x2e\x31\x37\x00\x47\x4c\x49\x42\x43\x5f\x32\x2e\x33\x34\x00\x5f\x49\x54\x4d\x5f\x64\x65\x72\x65\x67\x69\x73\x74\x65\x72\x54\x4d\x43\x6c\x6f\x6e\x65\x54\x61\x62\x6c\x65\x00\x5f\x5f\x67\x6d\x6f\x6e\x5f\x73\x74\x61\x72\x74\x5f\x5f\x00\x5f\x49\x54\x4d\x5f\x72\x65\x67\x69\x73\x74\x65\x72\x54\x4d\x43\x6c\x6f\x6e\x65\x54\x61\x62\x6c\x65\x00"), -Section(".gnu.version", 0x41E, "\x00\x00\x00\x00\x00\x00\x02\x00\x01\x00\x03\x00\x01\x00\x03\x00\x01\x00"), -Section(".gnu.version_r", 0x430, "\x01\x00\x02\x00\x28\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x97\x91\x96\x06\x00\x00\x03\x00\x32\x00\x00\x00\x10\x00\x00\x00\xb4\x91\x96\x06\x00\x00\x02\x00\x3d\x00\x00\x00\x00\x00\x00\x00"), -Section(".rela.dyn", 0x460, "\xc8\x0d\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x10\x07\x00\x00\x00\x00\x00\x00\xd0\x0d\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\xc0\x06\x00\x00\x00\x00\x00\x00\xd8\x0f\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x14\x07\x00\x00\x00\x00\x00\x00\x28\x10\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x28\x10\x01\x00\x00\x00\x00\x00\xc0\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xc8\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xd0\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe0\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".rela.plt", 0x520, "\x00\x10\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x08\x10\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x10\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x18\x10\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".init", 0x580, "\x1f\x20\x03\xd5\xfd\x7b\xbf\xa9\xfd\x03\x00\x91\x2a\x00\x00\x94\xfd\x7b\xc1\xa8\xc0\x03\x5f\xd6"), -Section(".plt", 0x5A0, "\xf0\x7b\xbf\xa9\x90\x00\x00\x90\x11\xfe\x47\xf9\x10\xe2\x3f\x91\x20\x02\x1f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x90\x00\x00\xb0\x11\x02\x40\xf9\x10\x02\x00\x91\x20\x02\x1f\xd6\x90\x00\x00\xb0\x11\x06\x40\xf9\x10\x22\x00\x91\x20\x02\x1f\xd6\x90\x00\x00\xb0\x11\x0a\x40\xf9\x10\x42\x00\x91\x20\x02\x1f\xd6\x90\x00\x00\xb0\x11\x0e\x40\xf9\x10\x62\x00\x91\x20\x02\x1f\xd6"), -Section(".text", 0x600, "\x1f\x20\x03\xd5\x1d\x00\x80\xd2\x1e\x00\x80\xd2\xe5\x03\x00\xaa\xe1\x03\x40\xf9\xe2\x23\x00\x91\xe6\x03\x00\x91\x80\x00\x00\x90\x00\xec\x47\xf9\x03\x00\x80\xd2\x04\x00\x80\xd2\xe5\xff\xff\x97\xf0\xff\xff\x97\x80\x00\x00\x90\x00\xe8\x47\xf9\x40\x00\x00\xb4\xe8\xff\xff\x17\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x80\x00\x00\xb0\x00\xc0\x00\x91\x81\x00\x00\xb0\x21\xc0\x00\x91\x3f\x00\x00\xeb\xc0\x00\x00\x54\x81\x00\x00\x90\x21\xe0\x47\xf9\x61\x00\x00\xb4\xf0\x03\x01\xaa\x00\x02\x1f\xd6\xc0\x03\x5f\xd6\x80\x00\x00\xb0\x00\xc0\x00\x91\x81\x00\x00\xb0\x21\xc0\x00\x91\x21\x00\x00\xcb\x22\xfc\x7f\xd3\x41\x0c\x81\x8b\x21\xfc\x41\x93\xc1\x00\x00\xb4\x82\x00\x00\x90\x42\xf0\x47\xf9\x62\x00\x00\xb4\xf0\x03\x02\xaa\x00\x02\x1f\xd6\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\xfd\x7b\xbe\xa9\xfd\x03\x00\x91\xf3\x0b\x00\xf9\x93\x00\x00\xb0\x60\xc2\x40\x39\x40\x01\x00\x35\x80\x00\x00\x90\x00\xe4\x47\xf9\x80\x00\x00\xb4\x80\x00\x00\xb0\x00\x14\x40\xf9\xb9\xff\xff\x97\xd8\xff\xff\x97\x20\x00\x80\x52\x60\xc2\x00\x39\xf3\x0b\x40\xf9\xfd\x7b\xc2\xa8\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\xdc\xff\xff\x17\xff\x43\x00\xd1\xff\x0f\x00\xb9\xff\x0b\x00\xb9\x88\x00\x00\xb0\x08\x35\x40\xb9\x08\x01\x00\x71\xe8\x07\x9f\x1a\xc8\x00\x00\x37\x01\x00\x00\x14\x88\x00\x00\xb0\x08\x39\x40\xb9\xe8\x0b\x00\xb9\x01\x00\x00\x14\xe0\x0b\x40\xb9\xff\x43\x00\x91\xc0\x03\x5f\xd6"), -Section(".fini", 0x754, "\x1f\x20\x03\xd5\xfd\x7b\xbf\xa9\xfd\x03\x00\x91\xfd\x7b\xc1\xa8\xc0\x03\x5f\xd6"), -Section(".rodata", 0x768, "\x01\x00\x02\x00"), -Section(".eh_frame_hdr", 0x76C, "\x01\x1b\x03\x3b\x38\x00\x00\x00\x06\x00\x00\x00\x94\xfe\xff\xff\x50\x00\x00\x00\xe4\xfe\xff\xff\x64\x00\x00\x00\x14\xff\xff\xff\x78\x00\x00\x00\x54\xff\xff\xff\x8c\x00\x00\x00\xa4\xff\xff\xff\xb0\x00\x00\x00\xa8\xff\xff\xff\xd8\x00\x00\x00"), -Section(".eh_frame", 0x7A8, "\x10\x00\x00\x00\x00\x00\x00\x00\x01\x7a\x52\x00\x04\x78\x1e\x01\x1b\x0c\x1f\x00\x10\x00\x00\x00\x18\x00\x00\x00\x3c\xfe\xff\xff\x34\x00\x00\x00\x00\x41\x07\x1e\x10\x00\x00\x00\x2c\x00\x00\x00\x78\xfe\xff\xff\x30\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x40\x00\x00\x00\x94\xfe\xff\xff\x3c\x00\x00\x00\x00\x00\x00\x00\x20\x00\x00\x00\x54\x00\x00\x00\xc0\xfe\xff\xff\x48\x00\x00\x00\x00\x41\x0e\x20\x9d\x04\x9e\x03\x42\x93\x02\x4e\xde\xdd\xd3\x0e\x00\x00\x00\x00\x10\x00\x00\x00\x78\x00\x00\x00\xec\xfe\xff\xff\x04\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x01\x7a\x52\x00\x01\x7c\x1e\x01\x1b\x0c\x1f\x00\x14\x00\x00\x00\x18\x00\x00\x00\xc8\xfe\xff\xff\x40\x00\x00\x00\x00\x44\x0e\x10\x78\x0e\x00\x00\x00\x00\x00\x00"), -Section(".fini_array", 0x10DD0, "\xc0\x06\x00\x00\x00\x00\x00\x00"), -Section(".dynamic", 0x10DD8, "\x01\x00\x00\x00\x00\x00\x00\x00\x28\x00\x00\x00\x00\x00\x00\x00\x0c\x00\x00\x00\x00\x00\x00\x00\x80\x05\x00\x00\x00\x00\x00\x00\x0d\x00\x00\x00\x00\x00\x00\x00\x54\x07\x00\x00\x00\x00\x00\x00\x19\x00\x00\x00\x00\x00\x00\x00\xc8\x0d\x01\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x1a\x00\x00\x00\x00\x00\x00\x00\xd0\x0d\x01\x00\x00\x00\x00\x00\x1c\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\xf5\xfe\xff\x6f\x00\x00\x00\x00\x98\x02\x00\x00\x00\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x90\x03\x00\x00\x00\x00\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\xb8\x02\x00\x00\x00\x00\x00\x00\x0a\x00\x00\x00\x00\x00\x00\x00\x8d\x00\x00\x00\x00\x00\x00\x00\x0b\x00\x00\x00\x00\x00\x00\x00\x18\x00\x00\x00\x00\x00\x00\x00\x15\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\xe8\x0f\x01\x00\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x60\x00\x00\x00\x00\x00\x00\x00\x14\x00\x00\x00\x00\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x17\x00\x00\x00\x00\x00\x00\x00\x20\x05\x00\x00\x00\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x60\x04\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\xc0\x00\x00\x00\x00\x00\x00\x00\x09\x00\x00\x00\x00\x00\x00\x00\x18\x00\x00\x00\x00\x00\x00\x00\xfb\xff\xff\x6f\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\xfe\xff\xff\x6f\x00\x00\x00\x00\x30\x04\x00\x00\x00\x00\x00\x00\xff\xff\xff\x6f\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\xf0\xff\xff\x6f\x00\x00\x00\x00\x1e\x04\x00\x00\x00\x00\x00\x00\xf9\xff\xff\x6f\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".init_array", 0x10DC8, "\x10\x07\x00\x00\x00\x00\x00\x00"), -Section(".got", 0x10FB8, "\xd8\x0d\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x14\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".got.plt", 0x10FE8, "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xa0\x05\x00\x00\x00\x00\x00\x00\xa0\x05\x00\x00\x00\x00\x00\x00\xa0\x05\x00\x00\x00\x00\x00\x00\xa0\x05\x00\x00\x00\x00\x00\x00"), -Section(".data", 0x11020, "\x00\x00\x00\x00\x00\x00\x00\x00\x28\x10\x01\x00\x00\x00\x00\x00")]), -Memmap([Annotation(Region(0x0,0x85F), Attr("segment","02 0 2144")), -Annotation(Region(0x600,0x633), Attr("symbol","\"_start\"")), -Annotation(Region(0x0,0x102), Attr("section","\".shstrtab\"")), -Annotation(Region(0x0,0x245), Attr("section","\".strtab\"")), -Annotation(Region(0x0,0x46), Attr("section","\".comment\"")), -Annotation(Region(0x238,0x252), Attr("section","\".interp\"")), -Annotation(Region(0x254,0x277), Attr("section","\".note.gnu.build-id\"")), -Annotation(Region(0x278,0x297), Attr("section","\".note.ABI-tag\"")), -Annotation(Region(0x298,0x2B3), Attr("section","\".gnu.hash\"")), -Annotation(Region(0x2B8,0x38F), Attr("section","\".dynsym\"")), -Annotation(Region(0x390,0x41C), Attr("section","\".dynstr\"")), -Annotation(Region(0x41E,0x42F), Attr("section","\".gnu.version\"")), -Annotation(Region(0x430,0x45F), Attr("section","\".gnu.version_r\"")), -Annotation(Region(0x460,0x51F), Attr("section","\".rela.dyn\"")), -Annotation(Region(0x520,0x57F), Attr("section","\".rela.plt\"")), -Annotation(Region(0x580,0x597), Attr("section","\".init\"")), -Annotation(Region(0x5A0,0x5FF), Attr("section","\".plt\"")), -Annotation(Region(0x580,0x597), Attr("code-region","()")), -Annotation(Region(0x5A0,0x5FF), Attr("code-region","()")), -Annotation(Region(0x600,0x633), Attr("symbol-info","_start 0x600 52")), -Annotation(Region(0x634,0x647), Attr("symbol","\"call_weak_fn\"")), -Annotation(Region(0x634,0x647), Attr("symbol-info","call_weak_fn 0x634 20")), -Annotation(Region(0x600,0x753), Attr("section","\".text\"")), -Annotation(Region(0x600,0x753), Attr("code-region","()")), -Annotation(Region(0x714,0x753), Attr("symbol","\"main\"")), -Annotation(Region(0x714,0x753), Attr("symbol-info","main 0x714 64")), -Annotation(Region(0x754,0x767), Attr("section","\".fini\"")), -Annotation(Region(0x754,0x767), Attr("code-region","()")), -Annotation(Region(0x768,0x76B), Attr("section","\".rodata\"")), -Annotation(Region(0x76C,0x7A7), Attr("section","\".eh_frame_hdr\"")), -Annotation(Region(0x7A8,0x85F), Attr("section","\".eh_frame\"")), -Annotation(Region(0x10DC8,0x1102F), Attr("segment","03 0x10DC8 632")), -Annotation(Region(0x10DD0,0x10DD7), Attr("section","\".fini_array\"")), -Annotation(Region(0x10DD8,0x10FB7), Attr("section","\".dynamic\"")), -Annotation(Region(0x10DC8,0x10DCF), Attr("section","\".init_array\"")), -Annotation(Region(0x10FB8,0x10FE7), Attr("section","\".got\"")), -Annotation(Region(0x10FE8,0x1101F), Attr("section","\".got.plt\"")), -Annotation(Region(0x11020,0x1102F), Attr("section","\".data\""))]), -Program(Tid(1_585, "%00000631"), Attrs([]), - Subs([Sub(Tid(1_533, "@__cxa_finalize"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x5D0"), -Attr("stub","()")]), "__cxa_finalize", Args([Arg(Tid(1_586, "%00000632"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("__cxa_finalize_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(929, "@__cxa_finalize"), - Attrs([Attr("address","0x5D0")]), Phis([]), -Defs([Def(Tid(1_177, "%00000499"), Attrs([Attr("address","0x5D0"), -Attr("insn","adrp x16, #69632")]), Var("R16",Imm(64)), Int(69632,64)), -Def(Tid(1_184, "%000004a0"), Attrs([Attr("address","0x5D4"), -Attr("insn","ldr x17, [x16, #0x8]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(1_190, "%000004a6"), Attrs([Attr("address","0x5D8"), -Attr("insn","add x16, x16, #0x8")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(8,64)))]), Jmps([Call(Tid(1_195, "%000004ab"), - Attrs([Attr("address","0x5DC"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), -Sub(Tid(1_534, "@__do_global_dtors_aux"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x6C0")]), - "__do_global_dtors_aux", Args([Arg(Tid(1_587, "%00000633"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("__do_global_dtors_aux_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(654, "@__do_global_dtors_aux"), - Attrs([Attr("address","0x6C0")]), Phis([]), Defs([Def(Tid(658, "%00000292"), - Attrs([Attr("address","0x6C0"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("#3",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(18446744073709551584,64))), -Def(Tid(664, "%00000298"), Attrs([Attr("address","0x6C0"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("#3",Imm(64)),Var("R29",Imm(64)),LittleEndian(),64)), -Def(Tid(670, "%0000029e"), Attrs([Attr("address","0x6C0"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("#3",Imm(64)),Int(8,64)),Var("R30",Imm(64)),LittleEndian(),64)), -Def(Tid(674, "%000002a2"), Attrs([Attr("address","0x6C0"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("R31",Imm(64)), -Var("#3",Imm(64))), Def(Tid(680, "%000002a8"), - Attrs([Attr("address","0x6C4"), Attr("insn","mov x29, sp")]), - Var("R29",Imm(64)), Var("R31",Imm(64))), Def(Tid(688, "%000002b0"), - Attrs([Attr("address","0x6C8"), Attr("insn","str x19, [sp, #0x10]")]), - Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(16,64)),Var("R19",Imm(64)),LittleEndian(),64)), -Def(Tid(693, "%000002b5"), Attrs([Attr("address","0x6CC"), -Attr("insn","adrp x19, #69632")]), Var("R19",Imm(64)), Int(69632,64)), -Def(Tid(700, "%000002bc"), Attrs([Attr("address","0x6D0"), -Attr("insn","ldrb w0, [x19, #0x30]")]), Var("R0",Imm(64)), -UNSIGNED(64,Load(Var("mem",Mem(64,8)),PLUS(Var("R19",Imm(64)),Int(48,64)),LittleEndian(),8)))]), -Jmps([Goto(Tid(707, "%000002c3"), Attrs([Attr("address","0x6D4"), -Attr("insn","cbnz w0, #0x28")]), - NEQ(Extract(31,0,Var("R0",Imm(64))),Int(0,32)), -Direct(Tid(705, "%000002c1"))), Goto(Tid(1_574, "%00000626"), Attrs([]), - Int(1,1), Direct(Tid(874, "%0000036a")))])), Blk(Tid(874, "%0000036a"), - Attrs([Attr("address","0x6D8")]), Phis([]), Defs([Def(Tid(877, "%0000036d"), - Attrs([Attr("address","0x6D8"), Attr("insn","adrp x0, #65536")]), - Var("R0",Imm(64)), Int(65536,64)), Def(Tid(884, "%00000374"), - Attrs([Attr("address","0x6DC"), Attr("insn","ldr x0, [x0, #0xfc8]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(4040,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(890, "%0000037a"), Attrs([Attr("address","0x6E0"), -Attr("insn","cbz x0, #0x10")]), EQ(Var("R0",Imm(64)),Int(0,64)), -Direct(Tid(888, "%00000378"))), Goto(Tid(1_575, "%00000627"), Attrs([]), - Int(1,1), Direct(Tid(913, "%00000391")))])), Blk(Tid(913, "%00000391"), - Attrs([Attr("address","0x6E4")]), Phis([]), Defs([Def(Tid(916, "%00000394"), - Attrs([Attr("address","0x6E4"), Attr("insn","adrp x0, #69632")]), - Var("R0",Imm(64)), Int(69632,64)), Def(Tid(923, "%0000039b"), - Attrs([Attr("address","0x6E8"), Attr("insn","ldr x0, [x0, #0x28]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(40,64)),LittleEndian(),64)), -Def(Tid(928, "%000003a0"), Attrs([Attr("address","0x6EC"), -Attr("insn","bl #-0x11c")]), Var("R30",Imm(64)), Int(1776,64))]), -Jmps([Call(Tid(931, "%000003a3"), Attrs([Attr("address","0x6EC"), -Attr("insn","bl #-0x11c")]), Int(1,1), -(Direct(Tid(1_533, "@__cxa_finalize")),Direct(Tid(888, "%00000378"))))])), -Blk(Tid(888, "%00000378"), Attrs([Attr("address","0x6F0")]), Phis([]), -Defs([Def(Tid(896, "%00000380"), Attrs([Attr("address","0x6F0"), -Attr("insn","bl #-0xa0")]), Var("R30",Imm(64)), Int(1780,64))]), -Jmps([Call(Tid(898, "%00000382"), Attrs([Attr("address","0x6F0"), -Attr("insn","bl #-0xa0")]), Int(1,1), -(Direct(Tid(1_547, "@deregister_tm_clones")),Direct(Tid(900, "%00000384"))))])), -Blk(Tid(900, "%00000384"), Attrs([Attr("address","0x6F4")]), Phis([]), -Defs([Def(Tid(903, "%00000387"), Attrs([Attr("address","0x6F4"), -Attr("insn","mov w0, #0x1")]), Var("R0",Imm(64)), Int(1,64)), -Def(Tid(911, "%0000038f"), Attrs([Attr("address","0x6F8"), -Attr("insn","strb w0, [x19, #0x30]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R19",Imm(64)),Int(48,64)),Extract(7,0,Var("R0",Imm(64))),LittleEndian(),8))]), -Jmps([Goto(Tid(1_576, "%00000628"), Attrs([]), Int(1,1), -Direct(Tid(705, "%000002c1")))])), Blk(Tid(705, "%000002c1"), - Attrs([Attr("address","0x6FC")]), Phis([]), Defs([Def(Tid(715, "%000002cb"), - Attrs([Attr("address","0x6FC"), Attr("insn","ldr x19, [sp, #0x10]")]), - Var("R19",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(16,64)),LittleEndian(),64)), -Def(Tid(722, "%000002d2"), Attrs([Attr("address","0x700"), -Attr("insn","ldp x29, x30, [sp], #0x20")]), Var("R29",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(727, "%000002d7"), Attrs([Attr("address","0x700"), -Attr("insn","ldp x29, x30, [sp], #0x20")]), Var("R30",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(731, "%000002db"), Attrs([Attr("address","0x700"), -Attr("insn","ldp x29, x30, [sp], #0x20")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(32,64)))]), Jmps([Call(Tid(736, "%000002e0"), - Attrs([Attr("address","0x704"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), Sub(Tid(1_538, "@__libc_start_main"), - Attrs([Attr("c.proto","signed (*)(signed (*)(signed , char** , char** );* main, signed , char** , \nvoid* auxv)"), -Attr("address","0x5C0"), Attr("stub","()")]), "__libc_start_main", - Args([Arg(Tid(1_588, "%00000634"), - Attrs([Attr("c.layout","**[ : 64]"), -Attr("c.data","Top:u64 ptr ptr"), -Attr("c.type","signed (*)(signed , char** , char** );*")]), - Var("__libc_start_main_main",Imm(64)), Var("R0",Imm(64)), In()), -Arg(Tid(1_589, "%00000635"), Attrs([Attr("c.layout","[signed : 32]"), -Attr("c.data","Top:u32"), Attr("c.type","signed")]), - Var("__libc_start_main_arg2",Imm(32)), LOW(32,Var("R1",Imm(64))), In()), -Arg(Tid(1_590, "%00000636"), Attrs([Attr("c.layout","**[char : 8]"), -Attr("c.data","Top:u8 ptr ptr"), Attr("c.type","char**")]), - Var("__libc_start_main_arg3",Imm(64)), Var("R2",Imm(64)), Both()), -Arg(Tid(1_591, "%00000637"), Attrs([Attr("c.layout","*[ : 8]"), -Attr("c.data","{} ptr"), Attr("c.type","void*")]), - Var("__libc_start_main_auxv",Imm(64)), Var("R3",Imm(64)), Both()), -Arg(Tid(1_592, "%00000638"), Attrs([Attr("c.layout","[signed : 32]"), -Attr("c.data","Top:u32"), Attr("c.type","signed")]), - Var("__libc_start_main_result",Imm(32)), LOW(32,Var("R0",Imm(64))), -Out())]), Blks([Blk(Tid(487, "@__libc_start_main"), - Attrs([Attr("address","0x5C0")]), Phis([]), -Defs([Def(Tid(1_155, "%00000483"), Attrs([Attr("address","0x5C0"), -Attr("insn","adrp x16, #69632")]), Var("R16",Imm(64)), Int(69632,64)), -Def(Tid(1_162, "%0000048a"), Attrs([Attr("address","0x5C4"), -Attr("insn","ldr x17, [x16]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R16",Imm(64)),LittleEndian(),64)), -Def(Tid(1_168, "%00000490"), Attrs([Attr("address","0x5C8"), -Attr("insn","add x16, x16, #0x0")]), Var("R16",Imm(64)), -Var("R16",Imm(64)))]), Jmps([Call(Tid(1_173, "%00000495"), - Attrs([Attr("address","0x5CC"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), Sub(Tid(1_539, "@_fini"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x754")]), - "_fini", Args([Arg(Tid(1_593, "%00000639"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("_fini_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(31, "@_fini"), - Attrs([Attr("address","0x754")]), Phis([]), Defs([Def(Tid(37, "%00000025"), - Attrs([Attr("address","0x758"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("#0",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(18446744073709551600,64))), -Def(Tid(43, "%0000002b"), Attrs([Attr("address","0x758"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("#0",Imm(64)),Var("R29",Imm(64)),LittleEndian(),64)), -Def(Tid(49, "%00000031"), Attrs([Attr("address","0x758"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("#0",Imm(64)),Int(8,64)),Var("R30",Imm(64)),LittleEndian(),64)), -Def(Tid(53, "%00000035"), Attrs([Attr("address","0x758"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("R31",Imm(64)), -Var("#0",Imm(64))), Def(Tid(59, "%0000003b"), Attrs([Attr("address","0x75C"), -Attr("insn","mov x29, sp")]), Var("R29",Imm(64)), Var("R31",Imm(64))), -Def(Tid(66, "%00000042"), Attrs([Attr("address","0x760"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R29",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(71, "%00000047"), Attrs([Attr("address","0x760"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R30",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(75, "%0000004b"), Attrs([Attr("address","0x760"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(16,64)))]), Jmps([Call(Tid(80, "%00000050"), - Attrs([Attr("address","0x764"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), Sub(Tid(1_540, "@_init"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x580")]), - "_init", Args([Arg(Tid(1_594, "%0000063a"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("_init_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(1_359, "@_init"), - Attrs([Attr("address","0x580")]), Phis([]), -Defs([Def(Tid(1_365, "%00000555"), Attrs([Attr("address","0x584"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("#6",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(18446744073709551600,64))), -Def(Tid(1_371, "%0000055b"), Attrs([Attr("address","0x584"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("#6",Imm(64)),Var("R29",Imm(64)),LittleEndian(),64)), -Def(Tid(1_377, "%00000561"), Attrs([Attr("address","0x584"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("#6",Imm(64)),Int(8,64)),Var("R30",Imm(64)),LittleEndian(),64)), -Def(Tid(1_381, "%00000565"), Attrs([Attr("address","0x584"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("R31",Imm(64)), -Var("#6",Imm(64))), Def(Tid(1_387, "%0000056b"), - Attrs([Attr("address","0x588"), Attr("insn","mov x29, sp")]), - Var("R29",Imm(64)), Var("R31",Imm(64))), Def(Tid(1_392, "%00000570"), - Attrs([Attr("address","0x58C"), Attr("insn","bl #0xa8")]), - Var("R30",Imm(64)), Int(1424,64))]), Jmps([Call(Tid(1_394, "%00000572"), - Attrs([Attr("address","0x58C"), Attr("insn","bl #0xa8")]), Int(1,1), -(Direct(Tid(1_545, "@call_weak_fn")),Direct(Tid(1_396, "%00000574"))))])), -Blk(Tid(1_396, "%00000574"), Attrs([Attr("address","0x590")]), Phis([]), -Defs([Def(Tid(1_401, "%00000579"), Attrs([Attr("address","0x590"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R29",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(1_406, "%0000057e"), Attrs([Attr("address","0x590"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R30",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(1_410, "%00000582"), Attrs([Attr("address","0x590"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(16,64)))]), Jmps([Call(Tid(1_415, "%00000587"), - Attrs([Attr("address","0x594"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), Sub(Tid(1_541, "@_start"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x600"), -Attr("stub","()"), Attr("entry-point","()")]), "_start", - Args([Arg(Tid(1_595, "%0000063b"), Attrs([Attr("c.layout","[signed : 32]"), -Attr("c.data","Top:u32"), Attr("c.type","signed")]), - Var("_start_result",Imm(32)), LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(424, "@_start"), Attrs([Attr("address","0x600")]), Phis([]), -Defs([Def(Tid(429, "%000001ad"), Attrs([Attr("address","0x604"), -Attr("insn","mov x29, #0x0")]), Var("R29",Imm(64)), Int(0,64)), -Def(Tid(434, "%000001b2"), Attrs([Attr("address","0x608"), -Attr("insn","mov x30, #0x0")]), Var("R30",Imm(64)), Int(0,64)), -Def(Tid(440, "%000001b8"), Attrs([Attr("address","0x60C"), -Attr("insn","mov x5, x0")]), Var("R5",Imm(64)), Var("R0",Imm(64))), -Def(Tid(447, "%000001bf"), Attrs([Attr("address","0x610"), -Attr("insn","ldr x1, [sp]")]), Var("R1",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(453, "%000001c5"), Attrs([Attr("address","0x614"), -Attr("insn","add x2, sp, #0x8")]), Var("R2",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(8,64))), Def(Tid(459, "%000001cb"), - Attrs([Attr("address","0x618"), Attr("insn","mov x6, sp")]), - Var("R6",Imm(64)), Var("R31",Imm(64))), Def(Tid(464, "%000001d0"), - Attrs([Attr("address","0x61C"), Attr("insn","adrp x0, #65536")]), - Var("R0",Imm(64)), Int(65536,64)), Def(Tid(471, "%000001d7"), - Attrs([Attr("address","0x620"), Attr("insn","ldr x0, [x0, #0xfd8]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(4056,64)),LittleEndian(),64)), -Def(Tid(476, "%000001dc"), Attrs([Attr("address","0x624"), -Attr("insn","mov x3, #0x0")]), Var("R3",Imm(64)), Int(0,64)), -Def(Tid(481, "%000001e1"), Attrs([Attr("address","0x628"), -Attr("insn","mov x4, #0x0")]), Var("R4",Imm(64)), Int(0,64)), -Def(Tid(486, "%000001e6"), Attrs([Attr("address","0x62C"), -Attr("insn","bl #-0x6c")]), Var("R30",Imm(64)), Int(1584,64))]), -Jmps([Call(Tid(489, "%000001e9"), Attrs([Attr("address","0x62C"), -Attr("insn","bl #-0x6c")]), Int(1,1), -(Direct(Tid(1_538, "@__libc_start_main")),Direct(Tid(491, "%000001eb"))))])), -Blk(Tid(491, "%000001eb"), Attrs([Attr("address","0x630")]), Phis([]), -Defs([Def(Tid(494, "%000001ee"), Attrs([Attr("address","0x630"), -Attr("insn","bl #-0x40")]), Var("R30",Imm(64)), Int(1588,64))]), -Jmps([Call(Tid(497, "%000001f1"), Attrs([Attr("address","0x630"), -Attr("insn","bl #-0x40")]), Int(1,1), -(Direct(Tid(1_544, "@abort")),Direct(Tid(1_577, "%00000629"))))])), -Blk(Tid(1_577, "%00000629"), Attrs([]), Phis([]), Defs([]), -Jmps([Call(Tid(1_578, "%0000062a"), Attrs([]), Int(1,1), -(Direct(Tid(1_545, "@call_weak_fn")),))]))])), Sub(Tid(1_544, "@abort"), - Attrs([Attr("noreturn","()"), Attr("c.proto","void (*)(void)"), -Attr("address","0x5F0"), Attr("stub","()")]), "abort", Args([]), -Blks([Blk(Tid(495, "@abort"), Attrs([Attr("address","0x5F0")]), Phis([]), -Defs([Def(Tid(1_221, "%000004c5"), Attrs([Attr("address","0x5F0"), -Attr("insn","adrp x16, #69632")]), Var("R16",Imm(64)), Int(69632,64)), -Def(Tid(1_228, "%000004cc"), Attrs([Attr("address","0x5F4"), -Attr("insn","ldr x17, [x16, #0x18]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(24,64)),LittleEndian(),64)), -Def(Tid(1_234, "%000004d2"), Attrs([Attr("address","0x5F8"), -Attr("insn","add x16, x16, #0x18")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(24,64)))]), Jmps([Call(Tid(1_239, "%000004d7"), - Attrs([Attr("address","0x5FC"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), Sub(Tid(1_545, "@call_weak_fn"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x634")]), - "call_weak_fn", Args([Arg(Tid(1_596, "%0000063c"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("call_weak_fn_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(499, "@call_weak_fn"), - Attrs([Attr("address","0x634")]), Phis([]), Defs([Def(Tid(502, "%000001f6"), - Attrs([Attr("address","0x634"), Attr("insn","adrp x0, #65536")]), - Var("R0",Imm(64)), Int(65536,64)), Def(Tid(509, "%000001fd"), - Attrs([Attr("address","0x638"), Attr("insn","ldr x0, [x0, #0xfd0]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(4048,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(515, "%00000203"), Attrs([Attr("address","0x63C"), -Attr("insn","cbz x0, #0x8")]), EQ(Var("R0",Imm(64)),Int(0,64)), -Direct(Tid(513, "%00000201"))), Goto(Tid(1_579, "%0000062b"), Attrs([]), - Int(1,1), Direct(Tid(993, "%000003e1")))])), Blk(Tid(513, "%00000201"), - Attrs([Attr("address","0x644")]), Phis([]), Defs([]), -Jmps([Call(Tid(521, "%00000209"), Attrs([Attr("address","0x644"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))])), -Blk(Tid(993, "%000003e1"), Attrs([Attr("address","0x640")]), Phis([]), -Defs([]), Jmps([Goto(Tid(996, "%000003e4"), Attrs([Attr("address","0x640"), -Attr("insn","b #-0x60")]), Int(1,1), Direct(Tid(994, "@__gmon_start__")))])), -Blk(Tid(994, "@__gmon_start__"), Attrs([Attr("address","0x5E0")]), Phis([]), -Defs([Def(Tid(1_199, "%000004af"), Attrs([Attr("address","0x5E0"), -Attr("insn","adrp x16, #69632")]), Var("R16",Imm(64)), Int(69632,64)), -Def(Tid(1_206, "%000004b6"), Attrs([Attr("address","0x5E4"), -Attr("insn","ldr x17, [x16, #0x10]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(16,64)),LittleEndian(),64)), -Def(Tid(1_212, "%000004bc"), Attrs([Attr("address","0x5E8"), -Attr("insn","add x16, x16, #0x10")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(16,64)))]), Jmps([Call(Tid(1_217, "%000004c1"), - Attrs([Attr("address","0x5EC"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), -Sub(Tid(1_547, "@deregister_tm_clones"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x650")]), - "deregister_tm_clones", Args([Arg(Tid(1_597, "%0000063d"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("deregister_tm_clones_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(527, "@deregister_tm_clones"), - Attrs([Attr("address","0x650")]), Phis([]), Defs([Def(Tid(530, "%00000212"), - Attrs([Attr("address","0x650"), Attr("insn","adrp x0, #69632")]), - Var("R0",Imm(64)), Int(69632,64)), Def(Tid(536, "%00000218"), - Attrs([Attr("address","0x654"), Attr("insn","add x0, x0, #0x30")]), - Var("R0",Imm(64)), PLUS(Var("R0",Imm(64)),Int(48,64))), -Def(Tid(541, "%0000021d"), Attrs([Attr("address","0x658"), -Attr("insn","adrp x1, #69632")]), Var("R1",Imm(64)), Int(69632,64)), -Def(Tid(547, "%00000223"), Attrs([Attr("address","0x65C"), -Attr("insn","add x1, x1, #0x30")]), Var("R1",Imm(64)), -PLUS(Var("R1",Imm(64)),Int(48,64))), Def(Tid(553, "%00000229"), - Attrs([Attr("address","0x660"), Attr("insn","cmp x1, x0")]), - Var("#1",Imm(64)), NOT(Var("R0",Imm(64)))), Def(Tid(558, "%0000022e"), - Attrs([Attr("address","0x660"), Attr("insn","cmp x1, x0")]), - Var("#2",Imm(64)), PLUS(Var("R1",Imm(64)),NOT(Var("R0",Imm(64))))), -Def(Tid(564, "%00000234"), Attrs([Attr("address","0x660"), -Attr("insn","cmp x1, x0")]), Var("VF",Imm(1)), -NEQ(SIGNED(65,PLUS(Var("#2",Imm(64)),Int(1,64))),PLUS(PLUS(SIGNED(65,Var("R1",Imm(64))),SIGNED(65,Var("#1",Imm(64)))),Int(1,65)))), -Def(Tid(570, "%0000023a"), Attrs([Attr("address","0x660"), -Attr("insn","cmp x1, x0")]), Var("CF",Imm(1)), -NEQ(UNSIGNED(65,PLUS(Var("#2",Imm(64)),Int(1,64))),PLUS(PLUS(UNSIGNED(65,Var("R1",Imm(64))),UNSIGNED(65,Var("#1",Imm(64)))),Int(1,65)))), -Def(Tid(574, "%0000023e"), Attrs([Attr("address","0x660"), -Attr("insn","cmp x1, x0")]), Var("ZF",Imm(1)), -EQ(PLUS(Var("#2",Imm(64)),Int(1,64)),Int(0,64))), Def(Tid(578, "%00000242"), - Attrs([Attr("address","0x660"), Attr("insn","cmp x1, x0")]), - Var("NF",Imm(1)), Extract(63,63,PLUS(Var("#2",Imm(64)),Int(1,64))))]), -Jmps([Goto(Tid(584, "%00000248"), Attrs([Attr("address","0x664"), -Attr("insn","b.eq #0x18")]), EQ(Var("ZF",Imm(1)),Int(1,1)), -Direct(Tid(582, "%00000246"))), Goto(Tid(1_580, "%0000062c"), Attrs([]), - Int(1,1), Direct(Tid(963, "%000003c3")))])), Blk(Tid(963, "%000003c3"), - Attrs([Attr("address","0x668")]), Phis([]), Defs([Def(Tid(966, "%000003c6"), - Attrs([Attr("address","0x668"), Attr("insn","adrp x1, #65536")]), - Var("R1",Imm(64)), Int(65536,64)), Def(Tid(973, "%000003cd"), - Attrs([Attr("address","0x66C"), Attr("insn","ldr x1, [x1, #0xfc0]")]), - Var("R1",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R1",Imm(64)),Int(4032,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(978, "%000003d2"), Attrs([Attr("address","0x670"), -Attr("insn","cbz x1, #0xc")]), EQ(Var("R1",Imm(64)),Int(0,64)), -Direct(Tid(582, "%00000246"))), Goto(Tid(1_581, "%0000062d"), Attrs([]), - Int(1,1), Direct(Tid(982, "%000003d6")))])), Blk(Tid(582, "%00000246"), - Attrs([Attr("address","0x67C")]), Phis([]), Defs([]), -Jmps([Call(Tid(590, "%0000024e"), Attrs([Attr("address","0x67C"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))])), -Blk(Tid(982, "%000003d6"), Attrs([Attr("address","0x674")]), Phis([]), -Defs([Def(Tid(986, "%000003da"), Attrs([Attr("address","0x674"), -Attr("insn","mov x16, x1")]), Var("R16",Imm(64)), Var("R1",Imm(64)))]), -Jmps([Call(Tid(991, "%000003df"), Attrs([Attr("address","0x678"), -Attr("insn","br x16")]), Int(1,1), (Indirect(Var("R16",Imm(64))),))]))])), -Sub(Tid(1_550, "@frame_dummy"), Attrs([Attr("c.proto","signed (*)(void)"), -Attr("address","0x710")]), "frame_dummy", Args([Arg(Tid(1_598, "%0000063e"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("frame_dummy_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(742, "@frame_dummy"), - Attrs([Attr("address","0x710")]), Phis([]), Defs([]), -Jmps([Call(Tid(744, "%000002e8"), Attrs([Attr("address","0x710"), -Attr("insn","b #-0x90")]), Int(1,1), -(Direct(Tid(1_553, "@register_tm_clones")),))]))])), Sub(Tid(1_551, "@main"), - Attrs([Attr("c.proto","signed (*)(signed argc, const char** argv)"), -Attr("address","0x714")]), "main", Args([Arg(Tid(1_599, "%0000063f"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("main_argc",Imm(32)), -LOW(32,Var("R0",Imm(64))), In()), Arg(Tid(1_600, "%00000640"), - Attrs([Attr("c.layout","**[char : 8]"), Attr("c.data","Top:u8 ptr ptr"), -Attr("c.type"," const char**")]), Var("main_argv",Imm(64)), -Var("R1",Imm(64)), Both()), Arg(Tid(1_601, "%00000641"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("main_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(746, "@main"), - Attrs([Attr("address","0x714")]), Phis([]), Defs([Def(Tid(750, "%000002ee"), - Attrs([Attr("address","0x714"), Attr("insn","sub sp, sp, #0x10")]), - Var("R31",Imm(64)), PLUS(Var("R31",Imm(64)),Int(18446744073709551600,64))), -Def(Tid(757, "%000002f5"), Attrs([Attr("address","0x718"), -Attr("insn","str wzr, [sp, #0xc]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(12,64)),Int(0,32),LittleEndian(),32)), -Def(Tid(764, "%000002fc"), Attrs([Attr("address","0x71C"), -Attr("insn","str wzr, [sp, #0x8]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),Int(0,32),LittleEndian(),32)), -Def(Tid(769, "%00000301"), Attrs([Attr("address","0x720"), -Attr("insn","adrp x8, #69632")]), Var("R8",Imm(64)), Int(69632,64)), -Def(Tid(776, "%00000308"), Attrs([Attr("address","0x724"), -Attr("insn","ldr w8, [x8, #0x34]")]), Var("R8",Imm(64)), -UNSIGNED(64,Load(Var("mem",Mem(64,8)),PLUS(Var("R8",Imm(64)),Int(52,64)),LittleEndian(),32))), -Def(Tid(782, "%0000030e"), Attrs([Attr("address","0x728"), -Attr("insn","subs w8, w8, #0x0")]), Var("#4",Imm(32)), -PLUS(Extract(31,0,Var("R8",Imm(64))),Int(4294967295,32))), -Def(Tid(787, "%00000313"), Attrs([Attr("address","0x728"), -Attr("insn","subs w8, w8, #0x0")]), Var("VF",Imm(1)), -NEQ(SIGNED(33,PLUS(Var("#4",Imm(32)),Int(1,32))),PLUS(SIGNED(33,Extract(31,0,Var("R8",Imm(64)))),Int(0,33)))), -Def(Tid(792, "%00000318"), Attrs([Attr("address","0x728"), -Attr("insn","subs w8, w8, #0x0")]), Var("CF",Imm(1)), -NEQ(UNSIGNED(33,PLUS(Var("#4",Imm(32)),Int(1,32))),PLUS(UNSIGNED(33,Extract(31,0,Var("R8",Imm(64)))),Int(4294967296,33)))), -Def(Tid(796, "%0000031c"), Attrs([Attr("address","0x728"), -Attr("insn","subs w8, w8, #0x0")]), Var("ZF",Imm(1)), -EQ(PLUS(Var("#4",Imm(32)),Int(1,32)),Int(0,32))), Def(Tid(800, "%00000320"), - Attrs([Attr("address","0x728"), Attr("insn","subs w8, w8, #0x0")]), - Var("NF",Imm(1)), Extract(31,31,PLUS(Var("#4",Imm(32)),Int(1,32)))), -Def(Tid(804, "%00000324"), Attrs([Attr("address","0x728"), -Attr("insn","subs w8, w8, #0x0")]), Var("R8",Imm(64)), -UNSIGNED(64,PLUS(Var("#4",Imm(32)),Int(1,32))))]), -Jmps([Goto(Tid(816, "%00000330"), Attrs([Attr("address","0x72C"), -Attr("insn","cset w8, ne")]), EQ(Var("ZF",Imm(1)),Int(1,1)), -Direct(Tid(809, "%00000329"))), Goto(Tid(817, "%00000331"), - Attrs([Attr("address","0x72C"), Attr("insn","cset w8, ne")]), Int(1,1), -Direct(Tid(812, "%0000032c")))])), Blk(Tid(812, "%0000032c"), Attrs([]), - Phis([]), Defs([Def(Tid(813, "%0000032d"), Attrs([Attr("address","0x72C"), -Attr("insn","cset w8, ne")]), Var("R8",Imm(64)), Int(1,64))]), -Jmps([Goto(Tid(819, "%00000333"), Attrs([Attr("address","0x72C"), -Attr("insn","cset w8, ne")]), Int(1,1), Direct(Tid(815, "%0000032f")))])), -Blk(Tid(809, "%00000329"), Attrs([]), Phis([]), -Defs([Def(Tid(810, "%0000032a"), Attrs([Attr("address","0x72C"), -Attr("insn","cset w8, ne")]), Var("R8",Imm(64)), Int(0,64))]), -Jmps([Goto(Tid(818, "%00000332"), Attrs([Attr("address","0x72C"), -Attr("insn","cset w8, ne")]), Int(1,1), Direct(Tid(815, "%0000032f")))])), -Blk(Tid(815, "%0000032f"), Attrs([]), Phis([]), Defs([]), -Jmps([Goto(Tid(825, "%00000339"), Attrs([Attr("address","0x730"), -Attr("insn","tbnz w8, #0x0, #0x18")]), - EQ(Extract(0,0,Var("R8",Imm(64))),Int(1,1)), Direct(Tid(823, "%00000337"))), -Goto(Tid(1_582, "%0000062e"), Attrs([]), Int(1,1), -Direct(Tid(846, "%0000034e")))])), Blk(Tid(846, "%0000034e"), - Attrs([Attr("address","0x734")]), Phis([]), Defs([]), -Jmps([Goto(Tid(849, "%00000351"), Attrs([Attr("address","0x734"), -Attr("insn","b #0x4")]), Int(1,1), Direct(Tid(847, "%0000034f")))])), -Blk(Tid(847, "%0000034f"), Attrs([Attr("address","0x738")]), Phis([]), -Defs([Def(Tid(853, "%00000355"), Attrs([Attr("address","0x738"), -Attr("insn","adrp x8, #69632")]), Var("R8",Imm(64)), Int(69632,64)), -Def(Tid(860, "%0000035c"), Attrs([Attr("address","0x73C"), -Attr("insn","ldr w8, [x8, #0x38]")]), Var("R8",Imm(64)), -UNSIGNED(64,Load(Var("mem",Mem(64,8)),PLUS(Var("R8",Imm(64)),Int(56,64)),LittleEndian(),32))), -Def(Tid(868, "%00000364"), Attrs([Attr("address","0x740"), -Attr("insn","str w8, [sp, #0x8]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),Extract(31,0,Var("R8",Imm(64))),LittleEndian(),32))]), -Jmps([Goto(Tid(872, "%00000368"), Attrs([Attr("address","0x744"), -Attr("insn","b #0x4")]), Int(1,1), Direct(Tid(823, "%00000337")))])), -Blk(Tid(823, "%00000337"), Attrs([Attr("address","0x748")]), Phis([]), -Defs([Def(Tid(833, "%00000341"), Attrs([Attr("address","0x748"), -Attr("insn","ldr w0, [sp, #0x8]")]), Var("R0",Imm(64)), -UNSIGNED(64,Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),LittleEndian(),32))), -Def(Tid(839, "%00000347"), Attrs([Attr("address","0x74C"), -Attr("insn","add sp, sp, #0x10")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(16,64)))]), Jmps([Call(Tid(844, "%0000034c"), - Attrs([Attr("address","0x750"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), -Sub(Tid(1_553, "@register_tm_clones"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x680")]), - "register_tm_clones", Args([Arg(Tid(1_602, "%00000642"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("register_tm_clones_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(592, "@register_tm_clones"), Attrs([Attr("address","0x680")]), - Phis([]), Defs([Def(Tid(595, "%00000253"), Attrs([Attr("address","0x680"), -Attr("insn","adrp x0, #69632")]), Var("R0",Imm(64)), Int(69632,64)), -Def(Tid(601, "%00000259"), Attrs([Attr("address","0x684"), -Attr("insn","add x0, x0, #0x30")]), Var("R0",Imm(64)), -PLUS(Var("R0",Imm(64)),Int(48,64))), Def(Tid(606, "%0000025e"), - Attrs([Attr("address","0x688"), Attr("insn","adrp x1, #69632")]), - Var("R1",Imm(64)), Int(69632,64)), Def(Tid(612, "%00000264"), - Attrs([Attr("address","0x68C"), Attr("insn","add x1, x1, #0x30")]), - Var("R1",Imm(64)), PLUS(Var("R1",Imm(64)),Int(48,64))), -Def(Tid(619, "%0000026b"), Attrs([Attr("address","0x690"), -Attr("insn","sub x1, x1, x0")]), Var("R1",Imm(64)), -PLUS(PLUS(Var("R1",Imm(64)),NOT(Var("R0",Imm(64)))),Int(1,64))), -Def(Tid(625, "%00000271"), Attrs([Attr("address","0x694"), -Attr("insn","lsr x2, x1, #63")]), Var("R2",Imm(64)), -Concat(Int(0,63),Extract(63,63,Var("R1",Imm(64))))), -Def(Tid(632, "%00000278"), Attrs([Attr("address","0x698"), -Attr("insn","add x1, x2, x1, asr #3")]), Var("R1",Imm(64)), -PLUS(Var("R2",Imm(64)),ARSHIFT(Var("R1",Imm(64)),Int(3,3)))), -Def(Tid(638, "%0000027e"), Attrs([Attr("address","0x69C"), -Attr("insn","asr x1, x1, #1")]), Var("R1",Imm(64)), -SIGNED(64,Extract(63,1,Var("R1",Imm(64)))))]), -Jmps([Goto(Tid(644, "%00000284"), Attrs([Attr("address","0x6A0"), -Attr("insn","cbz x1, #0x18")]), EQ(Var("R1",Imm(64)),Int(0,64)), -Direct(Tid(642, "%00000282"))), Goto(Tid(1_583, "%0000062f"), Attrs([]), - Int(1,1), Direct(Tid(933, "%000003a5")))])), Blk(Tid(933, "%000003a5"), - Attrs([Attr("address","0x6A4")]), Phis([]), Defs([Def(Tid(936, "%000003a8"), - Attrs([Attr("address","0x6A4"), Attr("insn","adrp x2, #65536")]), - Var("R2",Imm(64)), Int(65536,64)), Def(Tid(943, "%000003af"), - Attrs([Attr("address","0x6A8"), Attr("insn","ldr x2, [x2, #0xfe0]")]), - Var("R2",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R2",Imm(64)),Int(4064,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(948, "%000003b4"), Attrs([Attr("address","0x6AC"), -Attr("insn","cbz x2, #0xc")]), EQ(Var("R2",Imm(64)),Int(0,64)), -Direct(Tid(642, "%00000282"))), Goto(Tid(1_584, "%00000630"), Attrs([]), - Int(1,1), Direct(Tid(952, "%000003b8")))])), Blk(Tid(642, "%00000282"), - Attrs([Attr("address","0x6B8")]), Phis([]), Defs([]), -Jmps([Call(Tid(650, "%0000028a"), Attrs([Attr("address","0x6B8"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))])), -Blk(Tid(952, "%000003b8"), Attrs([Attr("address","0x6B0")]), Phis([]), -Defs([Def(Tid(956, "%000003bc"), Attrs([Attr("address","0x6B0"), -Attr("insn","mov x16, x2")]), Var("R16",Imm(64)), Var("R2",Imm(64)))]), -Jmps([Call(Tid(961, "%000003c1"), Attrs([Attr("address","0x6B4"), -Attr("insn","br x16")]), Int(1,1), -(Indirect(Var("R16",Imm(64))),))]))]))]))) \ No newline at end of file diff --git a/src/test/correct/basic_lock_security_read/clang/basic_lock_security_read.bir b/src/test/correct/basic_lock_security_read/clang/basic_lock_security_read.bir deleted file mode 100644 index 2693fc436..000000000 --- a/src/test/correct/basic_lock_security_read/clang/basic_lock_security_read.bir +++ /dev/null @@ -1,261 +0,0 @@ -00000631: program -000005fd: sub __cxa_finalize(__cxa_finalize_result) -00000632: __cxa_finalize_result :: out u32 = low:32[R0] - -000003a1: -00000499: R16 := 0x11000 -000004a0: R17 := mem[R16 + 8, el]:u64 -000004a6: R16 := R16 + 8 -000004ab: call R17 with noreturn - -000005fe: sub __do_global_dtors_aux(__do_global_dtors_aux_result) -00000633: __do_global_dtors_aux_result :: out u32 = low:32[R0] - -0000028e: -00000292: #3 := R31 - 0x20 -00000298: mem := mem with [#3, el]:u64 <- R29 -0000029e: mem := mem with [#3 + 8, el]:u64 <- R30 -000002a2: R31 := #3 -000002a8: R29 := R31 -000002b0: mem := mem with [R31 + 0x10, el]:u64 <- R19 -000002b5: R19 := 0x11000 -000002bc: R0 := pad:64[mem[R19 + 0x30]] -000002c3: when 31:0[R0] <> 0 goto %000002c1 -00000626: goto %0000036a - -0000036a: -0000036d: R0 := 0x10000 -00000374: R0 := mem[R0 + 0xFC8, el]:u64 -0000037a: when R0 = 0 goto %00000378 -00000627: goto %00000391 - -00000391: -00000394: R0 := 0x11000 -0000039b: R0 := mem[R0 + 0x28, el]:u64 -000003a0: R30 := 0x6F0 -000003a3: call @__cxa_finalize with return %00000378 - -00000378: -00000380: R30 := 0x6F4 -00000382: call @deregister_tm_clones with return %00000384 - -00000384: -00000387: R0 := 1 -0000038f: mem := mem with [R19 + 0x30] <- 7:0[R0] -00000628: goto %000002c1 - -000002c1: -000002cb: R19 := mem[R31 + 0x10, el]:u64 -000002d2: R29 := mem[R31, el]:u64 -000002d7: R30 := mem[R31 + 8, el]:u64 -000002db: R31 := R31 + 0x20 -000002e0: call R30 with noreturn - -00000602: sub __libc_start_main(__libc_start_main_main, __libc_start_main_arg2, __libc_start_main_arg3, __libc_start_main_auxv, __libc_start_main_result) -00000634: __libc_start_main_main :: in u64 = R0 -00000635: __libc_start_main_arg2 :: in u32 = low:32[R1] -00000636: __libc_start_main_arg3 :: in out u64 = R2 -00000637: __libc_start_main_auxv :: in out u64 = R3 -00000638: __libc_start_main_result :: out u32 = low:32[R0] - -000001e7: -00000483: R16 := 0x11000 -0000048a: R17 := mem[R16, el]:u64 -00000490: R16 := R16 -00000495: call R17 with noreturn - -00000603: sub _fini(_fini_result) -00000639: _fini_result :: out u32 = low:32[R0] - -0000001f: -00000025: #0 := R31 - 0x10 -0000002b: mem := mem with [#0, el]:u64 <- R29 -00000031: mem := mem with [#0 + 8, el]:u64 <- R30 -00000035: R31 := #0 -0000003b: R29 := R31 -00000042: R29 := mem[R31, el]:u64 -00000047: R30 := mem[R31 + 8, el]:u64 -0000004b: R31 := R31 + 0x10 -00000050: call R30 with noreturn - -00000604: sub _init(_init_result) -0000063a: _init_result :: out u32 = low:32[R0] - -0000054f: -00000555: #6 := R31 - 0x10 -0000055b: mem := mem with [#6, el]:u64 <- R29 -00000561: mem := mem with [#6 + 8, el]:u64 <- R30 -00000565: R31 := #6 -0000056b: R29 := R31 -00000570: R30 := 0x590 -00000572: call @call_weak_fn with return %00000574 - -00000574: -00000579: R29 := mem[R31, el]:u64 -0000057e: R30 := mem[R31 + 8, el]:u64 -00000582: R31 := R31 + 0x10 -00000587: call R30 with noreturn - -00000605: sub _start(_start_result) -0000063b: _start_result :: out u32 = low:32[R0] - -000001a8: -000001ad: R29 := 0 -000001b2: R30 := 0 -000001b8: R5 := R0 -000001bf: R1 := mem[R31, el]:u64 -000001c5: R2 := R31 + 8 -000001cb: R6 := R31 -000001d0: R0 := 0x10000 -000001d7: R0 := mem[R0 + 0xFD8, el]:u64 -000001dc: R3 := 0 -000001e1: R4 := 0 -000001e6: R30 := 0x630 -000001e9: call @__libc_start_main with return %000001eb - -000001eb: -000001ee: R30 := 0x634 -000001f1: call @abort with return %00000629 - -00000629: -0000062a: call @call_weak_fn with noreturn - -00000608: sub abort() - - -000001ef: -000004c5: R16 := 0x11000 -000004cc: R17 := mem[R16 + 0x18, el]:u64 -000004d2: R16 := R16 + 0x18 -000004d7: call R17 with noreturn - -00000609: sub call_weak_fn(call_weak_fn_result) -0000063c: call_weak_fn_result :: out u32 = low:32[R0] - -000001f3: -000001f6: R0 := 0x10000 -000001fd: R0 := mem[R0 + 0xFD0, el]:u64 -00000203: when R0 = 0 goto %00000201 -0000062b: goto %000003e1 - -00000201: -00000209: call R30 with noreturn - -000003e1: -000003e4: goto @__gmon_start__ - -000003e2: -000004af: R16 := 0x11000 -000004b6: R17 := mem[R16 + 0x10, el]:u64 -000004bc: R16 := R16 + 0x10 -000004c1: call R17 with noreturn - -0000060b: sub deregister_tm_clones(deregister_tm_clones_result) -0000063d: deregister_tm_clones_result :: out u32 = low:32[R0] - -0000020f: -00000212: R0 := 0x11000 -00000218: R0 := R0 + 0x30 -0000021d: R1 := 0x11000 -00000223: R1 := R1 + 0x30 -00000229: #1 := ~R0 -0000022e: #2 := R1 + ~R0 -00000234: VF := extend:65[#2 + 1] <> extend:65[R1] + extend:65[#1] + 1 -0000023a: CF := pad:65[#2 + 1] <> pad:65[R1] + pad:65[#1] + 1 -0000023e: ZF := #2 + 1 = 0 -00000242: NF := 63:63[#2 + 1] -00000248: when ZF goto %00000246 -0000062c: goto %000003c3 - -000003c3: -000003c6: R1 := 0x10000 -000003cd: R1 := mem[R1 + 0xFC0, el]:u64 -000003d2: when R1 = 0 goto %00000246 -0000062d: goto %000003d6 - -00000246: -0000024e: call R30 with noreturn - -000003d6: -000003da: R16 := R1 -000003df: call R16 with noreturn - -0000060e: sub frame_dummy(frame_dummy_result) -0000063e: frame_dummy_result :: out u32 = low:32[R0] - -000002e6: -000002e8: call @register_tm_clones with noreturn - -0000060f: sub main(main_argc, main_argv, main_result) -0000063f: main_argc :: in u32 = low:32[R0] -00000640: main_argv :: in out u64 = R1 -00000641: main_result :: out u32 = low:32[R0] - -000002ea: -000002ee: R31 := R31 - 0x10 -000002f5: mem := mem with [R31 + 0xC, el]:u32 <- 0 -000002fc: mem := mem with [R31 + 8, el]:u32 <- 0 -00000301: R8 := 0x11000 -00000308: R8 := pad:64[mem[R8 + 0x34, el]:u32] -0000030e: #4 := 31:0[R8] - 1 -00000313: VF := extend:33[#4 + 1] <> extend:33[31:0[R8]] + 0 -00000318: CF := pad:33[#4 + 1] <> pad:33[31:0[R8]] - 0x100000000 -0000031c: ZF := #4 + 1 = 0 -00000320: NF := 31:31[#4 + 1] -00000324: R8 := pad:64[#4 + 1] -00000330: when ZF goto %00000329 -00000331: goto %0000032c - -0000032c: -0000032d: R8 := 1 -00000333: goto %0000032f - -00000329: -0000032a: R8 := 0 -00000332: goto %0000032f - -0000032f: -00000339: when 0:0[R8] goto %00000337 -0000062e: goto %0000034e - -0000034e: -00000351: goto %0000034f - -0000034f: -00000355: R8 := 0x11000 -0000035c: R8 := pad:64[mem[R8 + 0x38, el]:u32] -00000364: mem := mem with [R31 + 8, el]:u32 <- 31:0[R8] -00000368: goto %00000337 - -00000337: -00000341: R0 := pad:64[mem[R31 + 8, el]:u32] -00000347: R31 := R31 + 0x10 -0000034c: call R30 with noreturn - -00000611: sub register_tm_clones(register_tm_clones_result) -00000642: register_tm_clones_result :: out u32 = low:32[R0] - -00000250: -00000253: R0 := 0x11000 -00000259: R0 := R0 + 0x30 -0000025e: R1 := 0x11000 -00000264: R1 := R1 + 0x30 -0000026b: R1 := R1 + ~R0 + 1 -00000271: R2 := 0.63:63[R1] -00000278: R1 := R2 + (R1 ~>> 3) -0000027e: R1 := extend:64[63:1[R1]] -00000284: when R1 = 0 goto %00000282 -0000062f: goto %000003a5 - -000003a5: -000003a8: R2 := 0x10000 -000003af: R2 := mem[R2 + 0xFE0, el]:u64 -000003b4: when R2 = 0 goto %00000282 -00000630: goto %000003b8 - -00000282: -0000028a: call R30 with noreturn - -000003b8: -000003bc: R16 := R2 -000003c1: call R16 with noreturn diff --git a/src/test/correct/basic_lock_security_read/clang/basic_lock_security_read.expected b/src/test/correct/basic_lock_security_read/clang/basic_lock_security_read.expected index db219868e..df2de2055 100644 --- a/src/test/correct/basic_lock_security_read/clang/basic_lock_security_read.expected +++ b/src/test/correct/basic_lock_security_read/clang/basic_lock_security_read.expected @@ -2,41 +2,35 @@ var {:extern} CF: bv1; var {:extern} Gamma_CF: bool; var {:extern} Gamma_NF: bool; var {:extern} Gamma_R0: bool; -var {:extern} Gamma_R31: bool; var {:extern} Gamma_R8: bool; +var {:extern} Gamma_R9: bool; var {:extern} Gamma_VF: bool; var {:extern} Gamma_ZF: bool; var {:extern} Gamma_mem: [bv64]bool; -var {:extern} Gamma_stack: [bv64]bool; var {:extern} NF: bv1; var {:extern} R0: bv64; -var {:extern} R31: bv64; var {:extern} R8: bv64; +var {:extern} R9: bv64; var {:extern} VF: bv1; var {:extern} ZF: bv1; var {:extern} mem: [bv64]bv8; -var {:extern} stack: [bv64]bv8; const {:extern} $x_addr: bv64; -axiom ($x_addr == 69688bv64); +axiom ($x_addr == 131096bv64); const {:extern} $z_addr: bv64; -axiom ($z_addr == 69684bv64); +axiom ($z_addr == 131092bv64); function {:extern} L(mem$in: [bv64]bv8, index: bv64) returns (bool) { (if (index == $x_addr) then (memory_load32_le(mem$in, $z_addr) == 0bv32) else (if (index == $z_addr) then true else false)) } -function {:extern} {:bvbuiltin "bvadd"} bvadd32(bv32, bv32) returns (bv32); -function {:extern} {:bvbuiltin "bvadd"} bvadd33(bv33, bv33) returns (bv33); function {:extern} {:bvbuiltin "bvadd"} bvadd64(bv64, bv64) returns (bv64); function {:extern} {:bvbuiltin "bvcomp"} bvcomp1(bv1, bv1) returns (bv1); function {:extern} {:bvbuiltin "bvcomp"} bvcomp32(bv32, bv32) returns (bv1); -function {:extern} {:bvbuiltin "bvcomp"} bvcomp33(bv33, bv33) returns (bv1); -function {:extern} {:bvbuiltin "bvnot"} bvnot1(bv1) returns (bv1); function {:extern} gamma_load32(gammaMap: [bv64]bool, index: bv64) returns (bool) { (gammaMap[bvadd64(index, 3bv64)] && (gammaMap[bvadd64(index, 2bv64)] && (gammaMap[bvadd64(index, 1bv64)] && gammaMap[index]))) } -function {:extern} gamma_store32(gammaMap: [bv64]bool, index: bv64, value: bool) returns ([bv64]bool) { - gammaMap[index := value][bvadd64(index, 1bv64) := value][bvadd64(index, 2bv64) := value][bvadd64(index, 3bv64) := value] +function {:extern} gamma_load64(gammaMap: [bv64]bool, index: bv64) returns (bool) { + (gammaMap[bvadd64(index, 7bv64)] && (gammaMap[bvadd64(index, 6bv64)] && (gammaMap[bvadd64(index, 5bv64)] && (gammaMap[bvadd64(index, 4bv64)] && (gammaMap[bvadd64(index, 3bv64)] && (gammaMap[bvadd64(index, 2bv64)] && (gammaMap[bvadd64(index, 1bv64)] && gammaMap[index]))))))) } function {:extern} memory_load32_le(memory: [bv64]bv8, index: bv64) returns (bv32) { @@ -47,22 +41,18 @@ function {:extern} memory_load64_le(memory: [bv64]bv8, index: bv64) returns (bv6 (memory[bvadd64(index, 7bv64)] ++ (memory[bvadd64(index, 6bv64)] ++ (memory[bvadd64(index, 5bv64)] ++ (memory[bvadd64(index, 4bv64)] ++ (memory[bvadd64(index, 3bv64)] ++ (memory[bvadd64(index, 2bv64)] ++ (memory[bvadd64(index, 1bv64)] ++ memory[index]))))))) } -function {:extern} memory_store32_le(memory: [bv64]bv8, index: bv64, value: bv32) returns ([bv64]bv8) { - memory[index := value[8:0]][bvadd64(index, 1bv64) := value[16:8]][bvadd64(index, 2bv64) := value[24:16]][bvadd64(index, 3bv64) := value[32:24]] -} - -function {:extern} {:bvbuiltin "sign_extend 1"} sign_extend1_32(bv32) returns (bv33); -function {:extern} {:bvbuiltin "zero_extend 1"} zero_extend1_32(bv32) returns (bv33); function {:extern} {:bvbuiltin "zero_extend 32"} zero_extend32_32(bv32) returns (bv64); procedure {:extern} rely(); modifies Gamma_mem, mem; ensures (forall i: bv64 :: (((mem[i] == old(mem[i])) ==> (Gamma_mem[i] == old(Gamma_mem[i]))))); ensures ((old(memory_load32_le(mem, $z_addr)) == 0bv32) ==> ((memory_load32_le(mem, $x_addr) == old(memory_load32_le(mem, $x_addr))) && (memory_load32_le(mem, $z_addr) == old(memory_load32_le(mem, $z_addr))))); - free ensures (memory_load32_le(mem, 1896bv64) == 131073bv32); - free ensures (memory_load64_le(mem, 69064bv64) == 1808bv64); - free ensures (memory_load64_le(mem, 69072bv64) == 1728bv64); - free ensures (memory_load64_le(mem, 69592bv64) == 1812bv64); - free ensures (memory_load64_le(mem, 69672bv64) == 69672bv64); + free ensures (memory_load32_le(mem, 2316bv64) == 131073bv32); + free ensures (memory_load64_le(mem, 130424bv64) == 2256bv64); + free ensures (memory_load64_le(mem, 130432bv64) == 2176bv64); + free ensures (memory_load64_le(mem, 131032bv64) == 131092bv64); + free ensures (memory_load64_le(mem, 131040bv64) == 131096bv64); + free ensures (memory_load64_le(mem, 131056bv64) == 2260bv64); + free ensures (memory_load64_le(mem, 131080bv64) == 131080bv64); procedure {:extern} rely_transitive(); modifies Gamma_mem, mem; @@ -89,100 +79,78 @@ implementation {:extern} guarantee_reflexive() assert ((memory_load32_le(mem, $z_addr) == memory_load32_le(mem, $z_addr)) && (memory_load32_le(mem, $x_addr) == memory_load32_le(mem, $x_addr))); } -procedure main_1812(); - modifies CF, Gamma_CF, Gamma_NF, Gamma_R0, Gamma_R31, Gamma_R8, Gamma_VF, Gamma_ZF, Gamma_mem, Gamma_stack, NF, R0, R31, R8, VF, ZF, mem, stack; - free requires (memory_load64_le(mem, 69664bv64) == 0bv64); - free requires (memory_load64_le(mem, 69672bv64) == 69672bv64); - free requires (memory_load32_le(mem, 1896bv64) == 131073bv32); - free requires (memory_load64_le(mem, 69064bv64) == 1808bv64); - free requires (memory_load64_le(mem, 69072bv64) == 1728bv64); - free requires (memory_load64_le(mem, 69592bv64) == 1812bv64); - free requires (memory_load64_le(mem, 69672bv64) == 69672bv64); - free ensures (Gamma_R31 == old(Gamma_R31)); - free ensures (R31 == old(R31)); - free ensures (memory_load32_le(mem, 1896bv64) == 131073bv32); - free ensures (memory_load64_le(mem, 69064bv64) == 1808bv64); - free ensures (memory_load64_le(mem, 69072bv64) == 1728bv64); - free ensures (memory_load64_le(mem, 69592bv64) == 1812bv64); - free ensures (memory_load64_le(mem, 69672bv64) == 69672bv64); +procedure main(); + modifies CF, Gamma_CF, Gamma_NF, Gamma_R0, Gamma_R8, Gamma_R9, Gamma_VF, Gamma_ZF, Gamma_mem, NF, R0, R8, R9, VF, ZF, mem; + free requires (memory_load64_le(mem, 131072bv64) == 0bv64); + free requires (memory_load64_le(mem, 131080bv64) == 131080bv64); + free requires (memory_load32_le(mem, 2316bv64) == 131073bv32); + free requires (memory_load64_le(mem, 130424bv64) == 2256bv64); + free requires (memory_load64_le(mem, 130432bv64) == 2176bv64); + free requires (memory_load64_le(mem, 131032bv64) == 131092bv64); + free requires (memory_load64_le(mem, 131040bv64) == 131096bv64); + free requires (memory_load64_le(mem, 131056bv64) == 2260bv64); + free requires (memory_load64_le(mem, 131080bv64) == 131080bv64); + free ensures (memory_load32_le(mem, 2316bv64) == 131073bv32); + free ensures (memory_load64_le(mem, 130424bv64) == 2256bv64); + free ensures (memory_load64_le(mem, 130432bv64) == 2176bv64); + free ensures (memory_load64_le(mem, 131032bv64) == 131092bv64); + free ensures (memory_load64_le(mem, 131040bv64) == 131096bv64); + free ensures (memory_load64_le(mem, 131056bv64) == 2260bv64); + free ensures (memory_load64_le(mem, 131080bv64) == 131080bv64); -implementation main_1812() +implementation main() { - var #4: bv32; - var Gamma_#4: bool; - var Gamma_load18: bool; - var Gamma_load19: bool; - var Gamma_load20: bool; - var load18: bv32; - var load19: bv32; - var load20: bv32; + var $load$18: bv64; + var $load$19: bv64; + var $load$20: bv32; + var $load$21: bv32; + var Gamma_$load$18: bool; + var Gamma_$load$19: bool; + var Gamma_$load$20: bool; + var Gamma_$load$21: bool; lmain: assume {:captureState "lmain"} true; - R31, Gamma_R31 := bvadd64(R31, 18446744073709551600bv64), Gamma_R31; - stack, Gamma_stack := memory_store32_le(stack, bvadd64(R31, 12bv64), 0bv32), gamma_store32(Gamma_stack, bvadd64(R31, 12bv64), true); - assume {:captureState "%000002f5"} true; - stack, Gamma_stack := memory_store32_le(stack, bvadd64(R31, 8bv64), 0bv32), gamma_store32(Gamma_stack, bvadd64(R31, 8bv64), true); - assume {:captureState "%000002fc"} true; - R8, Gamma_R8 := 69632bv64, true; + R8, Gamma_R8 := 126976bv64, true; + R9, Gamma_R9 := 126976bv64, true; + call rely(); + $load$18, Gamma_$load$18 := memory_load64_le(mem, bvadd64(R8, 4056bv64)), (gamma_load64(Gamma_mem, bvadd64(R8, 4056bv64)) || L(mem, bvadd64(R8, 4056bv64))); + R8, Gamma_R8 := $load$18, Gamma_$load$18; + call rely(); + $load$19, Gamma_$load$19 := memory_load64_le(mem, bvadd64(R9, 4064bv64)), (gamma_load64(Gamma_mem, bvadd64(R9, 4064bv64)) || L(mem, bvadd64(R9, 4064bv64))); + R9, Gamma_R9 := $load$19, Gamma_$load$19; call rely(); - load18, Gamma_load18 := memory_load32_le(mem, bvadd64(R8, 52bv64)), (gamma_load32(Gamma_mem, bvadd64(R8, 52bv64)) || L(mem, bvadd64(R8, 52bv64))); - R8, Gamma_R8 := zero_extend32_32(load18), Gamma_load18; - #4, Gamma_#4 := bvadd32(R8[32:0], 4294967295bv32), Gamma_R8; - VF, Gamma_VF := bvnot1(bvcomp33(sign_extend1_32(bvadd32(#4, 1bv32)), bvadd33(sign_extend1_32(R8[32:0]), 0bv33))), (Gamma_R8 && Gamma_#4); - CF, Gamma_CF := bvnot1(bvcomp33(zero_extend1_32(bvadd32(#4, 1bv32)), bvadd33(zero_extend1_32(R8[32:0]), 4294967296bv33))), (Gamma_R8 && Gamma_#4); - ZF, Gamma_ZF := bvcomp32(bvadd32(#4, 1bv32), 0bv32), Gamma_#4; - NF, Gamma_NF := bvadd32(#4, 1bv32)[32:31], Gamma_#4; - R8, Gamma_R8 := zero_extend32_32(bvadd32(#4, 1bv32)), Gamma_#4; + $load$20, Gamma_$load$20 := memory_load32_le(mem, R8), (gamma_load32(Gamma_mem, R8) || L(mem, R8)); + R8, Gamma_R8 := zero_extend32_32($load$20), Gamma_$load$20; + call rely(); + $load$21, Gamma_$load$21 := memory_load32_le(mem, R9), (gamma_load32(Gamma_mem, R9) || L(mem, R9)); + R9, Gamma_R9 := zero_extend32_32($load$21), Gamma_$load$21; + VF, Gamma_VF := 0bv1, true; + CF, Gamma_CF := 1bv1, true; + ZF, Gamma_ZF := bvcomp32(R8[32:0], 0bv32), Gamma_R8; + NF, Gamma_NF := R8[32:31], Gamma_R8; assert Gamma_ZF; - goto lmain_goto_l00000329, lmain_goto_l0000032c; - lmain_goto_l0000032c: - assume {:captureState "lmain_goto_l0000032c"} true; - assume (bvcomp1(ZF, 1bv1) == 0bv1); - R8, Gamma_R8 := 1bv64, true; - goto l0000032c; - l0000032c: - assume {:captureState "l0000032c"} true; - goto l0000032f; - lmain_goto_l00000329: - assume {:captureState "lmain_goto_l00000329"} true; + goto lmain_goto_l000002a8, lmain_goto_l000002b0; + l000002b0: + assume {:captureState "l000002b0"} true; + R0, Gamma_R0 := 0bv64, true; + goto l000002bc; + l000002a8: + assume {:captureState "l000002a8"} true; + R0, Gamma_R0 := zero_extend32_32(R9[32:0]), Gamma_R9; + goto l000002bc; + l000002bc: + assume {:captureState "l000002bc"} true; + goto main_basil_return; + lmain_goto_l000002a8: + assume {:captureState "lmain_goto_l000002a8"} true; assume (bvcomp1(ZF, 1bv1) != 0bv1); - R8, Gamma_R8 := 0bv64, true; - goto l00000329; - l00000329: - assume {:captureState "l00000329"} true; - goto l0000032f; - l0000032f: - assume {:captureState "l0000032f"} true; - assert Gamma_R8; - goto l0000032f_goto_l00000337, l0000032f_goto_l0000034e; - l0000032f_goto_l0000034e: - assume {:captureState "l0000032f_goto_l0000034e"} true; - assume (bvcomp1(R8[1:0], 1bv1) == 0bv1); - goto l0000034e; - l0000034e: - assume {:captureState "l0000034e"} true; - goto l0000034f; - l0000034f: - assume {:captureState "l0000034f"} true; - R8, Gamma_R8 := 69632bv64, true; - call rely(); - load19, Gamma_load19 := memory_load32_le(mem, bvadd64(R8, 56bv64)), (gamma_load32(Gamma_mem, bvadd64(R8, 56bv64)) || L(mem, bvadd64(R8, 56bv64))); - R8, Gamma_R8 := zero_extend32_32(load19), Gamma_load19; - stack, Gamma_stack := memory_store32_le(stack, bvadd64(R31, 8bv64), R8[32:0]), gamma_store32(Gamma_stack, bvadd64(R31, 8bv64), Gamma_R8); - assume {:captureState "%00000364"} true; - goto l00000337; - l0000032f_goto_l00000337: - assume {:captureState "l0000032f_goto_l00000337"} true; - assume (bvcomp1(R8[1:0], 1bv1) != 0bv1); - goto l00000337; - l00000337: - assume {:captureState "l00000337"} true; - load20, Gamma_load20 := memory_load32_le(stack, bvadd64(R31, 8bv64)), gamma_load32(Gamma_stack, bvadd64(R31, 8bv64)); - R0, Gamma_R0 := zero_extend32_32(load20), Gamma_load20; - R31, Gamma_R31 := bvadd64(R31, 16bv64), Gamma_R31; - goto main_1812_basil_return; - main_1812_basil_return: - assume {:captureState "main_1812_basil_return"} true; + goto l000002a8; + lmain_goto_l000002b0: + assume {:captureState "lmain_goto_l000002b0"} true; + assume (bvcomp1(ZF, 1bv1) == 0bv1); + goto l000002b0; + main_basil_return: + assume {:captureState "main_basil_return"} true; return; } diff --git a/src/test/correct/basic_lock_security_read/clang/basic_lock_security_read.gts b/src/test/correct/basic_lock_security_read/clang/basic_lock_security_read.gts deleted file mode 100644 index f802fa27a..000000000 Binary files a/src/test/correct/basic_lock_security_read/clang/basic_lock_security_read.gts and /dev/null differ diff --git a/src/test/correct/basic_lock_security_read/clang/basic_lock_security_read.md5sum b/src/test/correct/basic_lock_security_read/clang/basic_lock_security_read.md5sum new file mode 100644 index 000000000..d11b0ad36 --- /dev/null +++ b/src/test/correct/basic_lock_security_read/clang/basic_lock_security_read.md5sum @@ -0,0 +1,5 @@ +d74c9ac32e479cb0afc943e78e6f6389 correct/basic_lock_security_read/clang/a.out +260053fcaf9ed99912140b43209970c0 correct/basic_lock_security_read/clang/basic_lock_security_read.adt +93904a6d422648de7cf4c75b2fc7cb4f correct/basic_lock_security_read/clang/basic_lock_security_read.bir +2774051854f8849f695ffa22d71b844a correct/basic_lock_security_read/clang/basic_lock_security_read.relf +76de1ddc37d46ed8bcad96fb09b2e743 correct/basic_lock_security_read/clang/basic_lock_security_read.gts diff --git a/src/test/correct/basic_lock_security_read/clang/basic_lock_security_read.relf b/src/test/correct/basic_lock_security_read/clang/basic_lock_security_read.relf deleted file mode 100644 index 7dc6a5f9d..000000000 --- a/src/test/correct/basic_lock_security_read/clang/basic_lock_security_read.relf +++ /dev/null @@ -1,124 +0,0 @@ - -Relocation section '.rela.dyn' at offset 0x460 contains 8 entries: - Offset Info Type Symbol's Value Symbol's Name + Addend -0000000000010dc8 0000000000000403 R_AARCH64_RELATIVE 710 -0000000000010dd0 0000000000000403 R_AARCH64_RELATIVE 6c0 -0000000000010fd8 0000000000000403 R_AARCH64_RELATIVE 714 -0000000000011028 0000000000000403 R_AARCH64_RELATIVE 11028 -0000000000010fc0 0000000400000401 R_AARCH64_GLOB_DAT 0000000000000000 _ITM_deregisterTMCloneTable + 0 -0000000000010fc8 0000000500000401 R_AARCH64_GLOB_DAT 0000000000000000 __cxa_finalize@GLIBC_2.17 + 0 -0000000000010fd0 0000000600000401 R_AARCH64_GLOB_DAT 0000000000000000 __gmon_start__ + 0 -0000000000010fe0 0000000800000401 R_AARCH64_GLOB_DAT 0000000000000000 _ITM_registerTMCloneTable + 0 - -Relocation section '.rela.plt' at offset 0x520 contains 4 entries: - Offset Info Type Symbol's Value Symbol's Name + Addend -0000000000011000 0000000300000402 R_AARCH64_JUMP_SLOT 0000000000000000 __libc_start_main@GLIBC_2.34 + 0 -0000000000011008 0000000500000402 R_AARCH64_JUMP_SLOT 0000000000000000 __cxa_finalize@GLIBC_2.17 + 0 -0000000000011010 0000000600000402 R_AARCH64_JUMP_SLOT 0000000000000000 __gmon_start__ + 0 -0000000000011018 0000000700000402 R_AARCH64_JUMP_SLOT 0000000000000000 abort@GLIBC_2.17 + 0 - -Symbol table '.dynsym' contains 9 entries: - Num: Value Size Type Bind Vis Ndx Name - 0: 0000000000000000 0 NOTYPE LOCAL DEFAULT UND - 1: 0000000000000580 0 SECTION LOCAL DEFAULT 11 .init - 2: 0000000000011020 0 SECTION LOCAL DEFAULT 23 .data - 3: 0000000000000000 0 FUNC GLOBAL DEFAULT UND __libc_start_main@GLIBC_2.34 (2) - 4: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_deregisterTMCloneTable - 5: 0000000000000000 0 FUNC WEAK DEFAULT UND __cxa_finalize@GLIBC_2.17 (3) - 6: 0000000000000000 0 NOTYPE WEAK DEFAULT UND __gmon_start__ - 7: 0000000000000000 0 FUNC GLOBAL DEFAULT UND abort@GLIBC_2.17 (3) - 8: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_registerTMCloneTable - -Symbol table '.symtab' contains 91 entries: - Num: Value Size Type Bind Vis Ndx Name - 0: 0000000000000000 0 NOTYPE LOCAL DEFAULT UND - 1: 0000000000000238 0 SECTION LOCAL DEFAULT 1 .interp - 2: 0000000000000254 0 SECTION LOCAL DEFAULT 2 .note.gnu.build-id - 3: 0000000000000278 0 SECTION LOCAL DEFAULT 3 .note.ABI-tag - 4: 0000000000000298 0 SECTION LOCAL DEFAULT 4 .gnu.hash - 5: 00000000000002b8 0 SECTION LOCAL DEFAULT 5 .dynsym - 6: 0000000000000390 0 SECTION LOCAL DEFAULT 6 .dynstr - 7: 000000000000041e 0 SECTION LOCAL DEFAULT 7 .gnu.version - 8: 0000000000000430 0 SECTION LOCAL DEFAULT 8 .gnu.version_r - 9: 0000000000000460 0 SECTION LOCAL DEFAULT 9 .rela.dyn - 10: 0000000000000520 0 SECTION LOCAL DEFAULT 10 .rela.plt - 11: 0000000000000580 0 SECTION LOCAL DEFAULT 11 .init - 12: 00000000000005a0 0 SECTION LOCAL DEFAULT 12 .plt - 13: 0000000000000600 0 SECTION LOCAL DEFAULT 13 .text - 14: 0000000000000754 0 SECTION LOCAL DEFAULT 14 .fini - 15: 0000000000000768 0 SECTION LOCAL DEFAULT 15 .rodata - 16: 000000000000076c 0 SECTION LOCAL DEFAULT 16 .eh_frame_hdr - 17: 00000000000007a8 0 SECTION LOCAL DEFAULT 17 .eh_frame - 18: 0000000000010dc8 0 SECTION LOCAL DEFAULT 18 .init_array - 19: 0000000000010dd0 0 SECTION LOCAL DEFAULT 19 .fini_array - 20: 0000000000010dd8 0 SECTION LOCAL DEFAULT 20 .dynamic - 21: 0000000000010fb8 0 SECTION LOCAL DEFAULT 21 .got - 22: 0000000000010fe8 0 SECTION LOCAL DEFAULT 22 .got.plt - 23: 0000000000011020 0 SECTION LOCAL DEFAULT 23 .data - 24: 0000000000011030 0 SECTION LOCAL DEFAULT 24 .bss - 25: 0000000000000000 0 SECTION LOCAL DEFAULT 25 .comment - 26: 0000000000000000 0 FILE LOCAL DEFAULT ABS Scrt1.o - 27: 0000000000000278 0 NOTYPE LOCAL DEFAULT 3 $d - 28: 0000000000000278 32 OBJECT LOCAL DEFAULT 3 __abi_tag - 29: 0000000000000600 0 NOTYPE LOCAL DEFAULT 13 $x - 30: 00000000000007bc 0 NOTYPE LOCAL DEFAULT 17 $d - 31: 0000000000000768 0 NOTYPE LOCAL DEFAULT 15 $d - 32: 0000000000000000 0 FILE LOCAL DEFAULT ABS crti.o - 33: 0000000000000634 0 NOTYPE LOCAL DEFAULT 13 $x - 34: 0000000000000634 20 FUNC LOCAL DEFAULT 13 call_weak_fn - 35: 0000000000000580 0 NOTYPE LOCAL DEFAULT 11 $x - 36: 0000000000000754 0 NOTYPE LOCAL DEFAULT 14 $x - 37: 0000000000000000 0 FILE LOCAL DEFAULT ABS crtn.o - 38: 0000000000000590 0 NOTYPE LOCAL DEFAULT 11 $x - 39: 0000000000000760 0 NOTYPE LOCAL DEFAULT 14 $x - 40: 0000000000000000 0 FILE LOCAL DEFAULT ABS crtstuff.c - 41: 0000000000000650 0 NOTYPE LOCAL DEFAULT 13 $x - 42: 0000000000000650 0 FUNC LOCAL DEFAULT 13 deregister_tm_clones - 43: 0000000000000680 0 FUNC LOCAL DEFAULT 13 register_tm_clones - 44: 0000000000011028 0 NOTYPE LOCAL DEFAULT 23 $d - 45: 00000000000006c0 0 FUNC LOCAL DEFAULT 13 __do_global_dtors_aux - 46: 0000000000011030 1 OBJECT LOCAL DEFAULT 24 completed.0 - 47: 0000000000010dd0 0 NOTYPE LOCAL DEFAULT 19 $d - 48: 0000000000010dd0 0 OBJECT LOCAL DEFAULT 19 __do_global_dtors_aux_fini_array_entry - 49: 0000000000000710 0 FUNC LOCAL DEFAULT 13 frame_dummy - 50: 0000000000010dc8 0 NOTYPE LOCAL DEFAULT 18 $d - 51: 0000000000010dc8 0 OBJECT LOCAL DEFAULT 18 __frame_dummy_init_array_entry - 52: 00000000000007d0 0 NOTYPE LOCAL DEFAULT 17 $d - 53: 0000000000011030 0 NOTYPE LOCAL DEFAULT 24 $d - 54: 0000000000000000 0 FILE LOCAL DEFAULT ABS basic_lock_security_read.c - 55: 0000000000000714 0 NOTYPE LOCAL DEFAULT 13 $x.0 - 56: 0000000000011034 0 NOTYPE LOCAL DEFAULT 24 $d.1 - 57: 000000000000002a 0 NOTYPE LOCAL DEFAULT 25 $d.2 - 58: 0000000000000830 0 NOTYPE LOCAL DEFAULT 17 $d.3 - 59: 0000000000000000 0 FILE LOCAL DEFAULT ABS crtstuff.c - 60: 000000000000085c 0 NOTYPE LOCAL DEFAULT 17 $d - 61: 000000000000085c 0 OBJECT LOCAL DEFAULT 17 __FRAME_END__ - 62: 0000000000000000 0 FILE LOCAL DEFAULT ABS - 63: 0000000000010dd8 0 OBJECT LOCAL DEFAULT ABS _DYNAMIC - 64: 000000000000076c 0 NOTYPE LOCAL DEFAULT 16 __GNU_EH_FRAME_HDR - 65: 0000000000010fb8 0 OBJECT LOCAL DEFAULT ABS _GLOBAL_OFFSET_TABLE_ - 66: 00000000000005a0 0 NOTYPE LOCAL DEFAULT 12 $x - 67: 0000000000000000 0 FUNC GLOBAL DEFAULT UND __libc_start_main@GLIBC_2.34 - 68: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_deregisterTMCloneTable - 69: 0000000000011020 0 NOTYPE WEAK DEFAULT 23 data_start - 70: 0000000000011030 0 NOTYPE GLOBAL DEFAULT 24 __bss_start__ - 71: 0000000000000000 0 FUNC WEAK DEFAULT UND __cxa_finalize@GLIBC_2.17 - 72: 0000000000011040 0 NOTYPE GLOBAL DEFAULT 24 _bss_end__ - 73: 0000000000011030 0 NOTYPE GLOBAL DEFAULT 23 _edata - 74: 0000000000011034 4 OBJECT GLOBAL DEFAULT 24 z - 75: 0000000000011038 4 OBJECT GLOBAL DEFAULT 24 x - 76: 0000000000000754 0 FUNC GLOBAL HIDDEN 14 _fini - 77: 0000000000011040 0 NOTYPE GLOBAL DEFAULT 24 __bss_end__ - 78: 0000000000011020 0 NOTYPE GLOBAL DEFAULT 23 __data_start - 79: 0000000000000000 0 NOTYPE WEAK DEFAULT UND __gmon_start__ - 80: 0000000000011028 0 OBJECT GLOBAL HIDDEN 23 __dso_handle - 81: 0000000000000000 0 FUNC GLOBAL DEFAULT UND abort@GLIBC_2.17 - 82: 0000000000000768 4 OBJECT GLOBAL DEFAULT 15 _IO_stdin_used - 83: 0000000000011040 0 NOTYPE GLOBAL DEFAULT 24 _end - 84: 0000000000000600 52 FUNC GLOBAL DEFAULT 13 _start - 85: 0000000000011040 0 NOTYPE GLOBAL DEFAULT 24 __end__ - 86: 0000000000011030 0 NOTYPE GLOBAL DEFAULT 24 __bss_start - 87: 0000000000000714 64 FUNC GLOBAL DEFAULT 13 main - 88: 0000000000011030 0 OBJECT GLOBAL HIDDEN 23 __TMC_END__ - 89: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_registerTMCloneTable - 90: 0000000000000580 0 FUNC GLOBAL HIDDEN 11 _init diff --git a/src/test/correct/basic_lock_security_read/clang/basic_lock_security_read_gtirb.expected b/src/test/correct/basic_lock_security_read/clang/basic_lock_security_read_gtirb.expected index f04813f16..eace5b7bf 100644 --- a/src/test/correct/basic_lock_security_read/clang/basic_lock_security_read_gtirb.expected +++ b/src/test/correct/basic_lock_security_read/clang/basic_lock_security_read_gtirb.expected @@ -2,40 +2,34 @@ var {:extern} CF: bv1; var {:extern} Gamma_CF: bool; var {:extern} Gamma_NF: bool; var {:extern} Gamma_R0: bool; -var {:extern} Gamma_R31: bool; var {:extern} Gamma_R8: bool; +var {:extern} Gamma_R9: bool; var {:extern} Gamma_VF: bool; var {:extern} Gamma_ZF: bool; var {:extern} Gamma_mem: [bv64]bool; -var {:extern} Gamma_stack: [bv64]bool; var {:extern} NF: bv1; var {:extern} R0: bv64; -var {:extern} R31: bv64; var {:extern} R8: bv64; +var {:extern} R9: bv64; var {:extern} VF: bv1; var {:extern} ZF: bv1; var {:extern} mem: [bv64]bv8; -var {:extern} stack: [bv64]bv8; const {:extern} $x_addr: bv64; -axiom ($x_addr == 69688bv64); +axiom ($x_addr == 131096bv64); const {:extern} $z_addr: bv64; -axiom ($z_addr == 69684bv64); +axiom ($z_addr == 131092bv64); function {:extern} L(mem$in: [bv64]bv8, index: bv64) returns (bool) { (if (index == $x_addr) then (memory_load32_le(mem$in, $z_addr) == 0bv32) else (if (index == $z_addr) then true else false)) } -function {:extern} {:bvbuiltin "bvadd"} bvadd32(bv32, bv32) returns (bv32); -function {:extern} {:bvbuiltin "bvadd"} bvadd33(bv33, bv33) returns (bv33); function {:extern} {:bvbuiltin "bvadd"} bvadd64(bv64, bv64) returns (bv64); function {:extern} {:bvbuiltin "bvcomp"} bvcomp32(bv32, bv32) returns (bv1); -function {:extern} {:bvbuiltin "bvcomp"} bvcomp33(bv33, bv33) returns (bv1); -function {:extern} {:bvbuiltin "bvnot"} bvnot1(bv1) returns (bv1); function {:extern} gamma_load32(gammaMap: [bv64]bool, index: bv64) returns (bool) { (gammaMap[bvadd64(index, 3bv64)] && (gammaMap[bvadd64(index, 2bv64)] && (gammaMap[bvadd64(index, 1bv64)] && gammaMap[index]))) } -function {:extern} gamma_store32(gammaMap: [bv64]bool, index: bv64, value: bool) returns ([bv64]bool) { - gammaMap[index := value][bvadd64(index, 1bv64) := value][bvadd64(index, 2bv64) := value][bvadd64(index, 3bv64) := value] +function {:extern} gamma_load64(gammaMap: [bv64]bool, index: bv64) returns (bool) { + (gammaMap[bvadd64(index, 7bv64)] && (gammaMap[bvadd64(index, 6bv64)] && (gammaMap[bvadd64(index, 5bv64)] && (gammaMap[bvadd64(index, 4bv64)] && (gammaMap[bvadd64(index, 3bv64)] && (gammaMap[bvadd64(index, 2bv64)] && (gammaMap[bvadd64(index, 1bv64)] && gammaMap[index]))))))) } function {:extern} memory_load32_le(memory: [bv64]bv8, index: bv64) returns (bv32) { @@ -46,21 +40,18 @@ function {:extern} memory_load64_le(memory: [bv64]bv8, index: bv64) returns (bv6 (memory[bvadd64(index, 7bv64)] ++ (memory[bvadd64(index, 6bv64)] ++ (memory[bvadd64(index, 5bv64)] ++ (memory[bvadd64(index, 4bv64)] ++ (memory[bvadd64(index, 3bv64)] ++ (memory[bvadd64(index, 2bv64)] ++ (memory[bvadd64(index, 1bv64)] ++ memory[index]))))))) } -function {:extern} memory_store32_le(memory: [bv64]bv8, index: bv64, value: bv32) returns ([bv64]bv8) { - memory[index := value[8:0]][bvadd64(index, 1bv64) := value[16:8]][bvadd64(index, 2bv64) := value[24:16]][bvadd64(index, 3bv64) := value[32:24]] -} - -function {:extern} {:bvbuiltin "zero_extend 1"} zero_extend1_32(bv32) returns (bv33); function {:extern} {:bvbuiltin "zero_extend 32"} zero_extend32_32(bv32) returns (bv64); procedure {:extern} rely(); modifies Gamma_mem, mem; ensures (forall i: bv64 :: (((mem[i] == old(mem[i])) ==> (Gamma_mem[i] == old(Gamma_mem[i]))))); ensures ((old(memory_load32_le(mem, $z_addr)) == 0bv32) ==> ((memory_load32_le(mem, $x_addr) == old(memory_load32_le(mem, $x_addr))) && (memory_load32_le(mem, $z_addr) == old(memory_load32_le(mem, $z_addr))))); - free ensures (memory_load32_le(mem, 1896bv64) == 131073bv32); - free ensures (memory_load64_le(mem, 69064bv64) == 1808bv64); - free ensures (memory_load64_le(mem, 69072bv64) == 1728bv64); - free ensures (memory_load64_le(mem, 69592bv64) == 1812bv64); - free ensures (memory_load64_le(mem, 69672bv64) == 69672bv64); + free ensures (memory_load32_le(mem, 2316bv64) == 131073bv32); + free ensures (memory_load64_le(mem, 130424bv64) == 2256bv64); + free ensures (memory_load64_le(mem, 130432bv64) == 2176bv64); + free ensures (memory_load64_le(mem, 131032bv64) == 131092bv64); + free ensures (memory_load64_le(mem, 131040bv64) == 131096bv64); + free ensures (memory_load64_le(mem, 131056bv64) == 2260bv64); + free ensures (memory_load64_le(mem, 131080bv64) == 131080bv64); procedure {:extern} rely_transitive(); modifies Gamma_mem, mem; @@ -87,92 +78,69 @@ implementation {:extern} guarantee_reflexive() assert ((memory_load32_le(mem, $z_addr) == memory_load32_le(mem, $z_addr)) && (memory_load32_le(mem, $x_addr) == memory_load32_le(mem, $x_addr))); } -procedure main_1812(); - modifies CF, Gamma_CF, Gamma_NF, Gamma_R0, Gamma_R31, Gamma_R8, Gamma_VF, Gamma_ZF, Gamma_mem, Gamma_stack, NF, R0, R31, R8, VF, ZF, mem, stack; - free requires (memory_load64_le(mem, 69664bv64) == 0bv64); - free requires (memory_load64_le(mem, 69672bv64) == 69672bv64); - free requires (memory_load32_le(mem, 1896bv64) == 131073bv32); - free requires (memory_load64_le(mem, 69064bv64) == 1808bv64); - free requires (memory_load64_le(mem, 69072bv64) == 1728bv64); - free requires (memory_load64_le(mem, 69592bv64) == 1812bv64); - free requires (memory_load64_le(mem, 69672bv64) == 69672bv64); - free ensures (Gamma_R31 == old(Gamma_R31)); - free ensures (R31 == old(R31)); - free ensures (memory_load32_le(mem, 1896bv64) == 131073bv32); - free ensures (memory_load64_le(mem, 69064bv64) == 1808bv64); - free ensures (memory_load64_le(mem, 69072bv64) == 1728bv64); - free ensures (memory_load64_le(mem, 69592bv64) == 1812bv64); - free ensures (memory_load64_le(mem, 69672bv64) == 69672bv64); +procedure main(); + modifies CF, Gamma_CF, Gamma_NF, Gamma_R0, Gamma_R8, Gamma_R9, Gamma_VF, Gamma_ZF, Gamma_mem, NF, R0, R8, R9, VF, ZF, mem; + free requires (memory_load64_le(mem, 131072bv64) == 0bv64); + free requires (memory_load64_le(mem, 131080bv64) == 131080bv64); + free requires (memory_load32_le(mem, 2316bv64) == 131073bv32); + free requires (memory_load64_le(mem, 130424bv64) == 2256bv64); + free requires (memory_load64_le(mem, 130432bv64) == 2176bv64); + free requires (memory_load64_le(mem, 131032bv64) == 131092bv64); + free requires (memory_load64_le(mem, 131040bv64) == 131096bv64); + free requires (memory_load64_le(mem, 131056bv64) == 2260bv64); + free requires (memory_load64_le(mem, 131080bv64) == 131080bv64); + free ensures (memory_load32_le(mem, 2316bv64) == 131073bv32); + free ensures (memory_load64_le(mem, 130424bv64) == 2256bv64); + free ensures (memory_load64_le(mem, 130432bv64) == 2176bv64); + free ensures (memory_load64_le(mem, 131032bv64) == 131092bv64); + free ensures (memory_load64_le(mem, 131040bv64) == 131096bv64); + free ensures (memory_load64_le(mem, 131056bv64) == 2260bv64); + free ensures (memory_load64_le(mem, 131080bv64) == 131080bv64); -implementation main_1812() +implementation main() { - var Cse0__5_3_5: bv32; - var Gamma_Cse0__5_3_5: bool; - var Gamma_load6: bool; - var Gamma_load7: bool; - var Gamma_load8: bool; - var load6: bv32; - var load7: bv32; - var load8: bv32; - main_1812__0__9r6UOwhWT0e4r_v5VvoQOg: - assume {:captureState "main_1812__0__9r6UOwhWT0e4r_v5VvoQOg"} true; - R31, Gamma_R31 := bvadd64(R31, 18446744073709551600bv64), Gamma_R31; - stack, Gamma_stack := memory_store32_le(stack, bvadd64(R31, 12bv64), 0bv32), gamma_store32(Gamma_stack, bvadd64(R31, 12bv64), true); - assume {:captureState "1816_0"} true; - stack, Gamma_stack := memory_store32_le(stack, bvadd64(R31, 8bv64), 0bv32), gamma_store32(Gamma_stack, bvadd64(R31, 8bv64), true); - assume {:captureState "1820_0"} true; - R8, Gamma_R8 := 69632bv64, true; + var $load5: bv64; + var $load6: bv64; + var $load7: bv32; + var $load8: bv32; + var Gamma_$load5: bool; + var Gamma_$load6: bool; + var Gamma_$load7: bool; + var Gamma_$load8: bool; + $main$__0__$D9t2gNJrSmyMH3GAVRe3IQ: + assume {:captureState "$main$__0__$D9t2gNJrSmyMH3GAVRe3IQ"} true; + R8, Gamma_R8 := 126976bv64, true; + R9, Gamma_R9 := 126976bv64, true; + call rely(); + $load5, Gamma_$load5 := memory_load64_le(mem, bvadd64(R8, 4056bv64)), (gamma_load64(Gamma_mem, bvadd64(R8, 4056bv64)) || L(mem, bvadd64(R8, 4056bv64))); + R8, Gamma_R8 := $load5, Gamma_$load5; + call rely(); + $load6, Gamma_$load6 := memory_load64_le(mem, bvadd64(R9, 4064bv64)), (gamma_load64(Gamma_mem, bvadd64(R9, 4064bv64)) || L(mem, bvadd64(R9, 4064bv64))); + R9, Gamma_R9 := $load6, Gamma_$load6; call rely(); - load8, Gamma_load8 := memory_load32_le(mem, bvadd64(R8, 52bv64)), (gamma_load32(Gamma_mem, bvadd64(R8, 52bv64)) || L(mem, bvadd64(R8, 52bv64))); - R8, Gamma_R8 := zero_extend32_32(load8), Gamma_load8; - Cse0__5_3_5, Gamma_Cse0__5_3_5 := bvadd32(R8[32:0], 0bv32), Gamma_R8; - VF, Gamma_VF := bvnot1(bvcomp32(Cse0__5_3_5, Cse0__5_3_5)), Gamma_Cse0__5_3_5; - CF, Gamma_CF := bvnot1(bvcomp33(zero_extend1_32(Cse0__5_3_5), bvadd33(zero_extend1_32(R8[32:0]), 4294967296bv33))), (Gamma_R8 && Gamma_Cse0__5_3_5); - ZF, Gamma_ZF := bvcomp32(Cse0__5_3_5, 0bv32), Gamma_Cse0__5_3_5; - NF, Gamma_NF := Cse0__5_3_5[32:31], Gamma_Cse0__5_3_5; - R8, Gamma_R8 := zero_extend32_32(Cse0__5_3_5), Gamma_Cse0__5_3_5; + $load7, Gamma_$load7 := memory_load32_le(mem, R8), (gamma_load32(Gamma_mem, R8) || L(mem, R8)); + R8, Gamma_R8 := zero_extend32_32($load7), Gamma_$load7; + call rely(); + $load8, Gamma_$load8 := memory_load32_le(mem, R9), (gamma_load32(Gamma_mem, R9) || L(mem, R9)); + R9, Gamma_R9 := zero_extend32_32($load8), Gamma_$load8; + VF, Gamma_VF := 0bv1, true; + CF, Gamma_CF := 1bv1, true; + ZF, Gamma_ZF := bvcomp32(R8[32:0], 0bv32), Gamma_R8; + NF, Gamma_NF := R8[32:31], Gamma_R8; assert Gamma_ZF; - goto main_1812__0__9r6UOwhWT0e4r_v5VvoQOg$__0, main_1812__0__9r6UOwhWT0e4r_v5VvoQOg$__1; - main_1812__0__9r6UOwhWT0e4r_v5VvoQOg$__1: - assume {:captureState "main_1812__0__9r6UOwhWT0e4r_v5VvoQOg$__1"} true; - assume (!(ZF == 1bv1)); - R8, Gamma_R8 := 1bv64, true; - assert Gamma_R8; - goto main_1812__0__9r6UOwhWT0e4r_v5VvoQOg_goto_main_1812__3__hMq94Gt8Rsi1RNq0G5~fMQ, main_1812__0__9r6UOwhWT0e4r_v5VvoQOg_goto_main_1812__1__cbw8VJ_4TNWMhitLYT_zHw; - main_1812__0__9r6UOwhWT0e4r_v5VvoQOg$__0: - assume {:captureState "main_1812__0__9r6UOwhWT0e4r_v5VvoQOg$__0"} true; + goto $main$__0__$D9t2gNJrSmyMH3GAVRe3IQ$__0, $main$__0__$D9t2gNJrSmyMH3GAVRe3IQ$__1; + $main$__0__$D9t2gNJrSmyMH3GAVRe3IQ$__0: + assume {:captureState "$main$__0__$D9t2gNJrSmyMH3GAVRe3IQ$__0"} true; assume (ZF == 1bv1); - R8, Gamma_R8 := 0bv64, true; - assert Gamma_R8; - goto main_1812__0__9r6UOwhWT0e4r_v5VvoQOg_goto_main_1812__3__hMq94Gt8Rsi1RNq0G5~fMQ, main_1812__0__9r6UOwhWT0e4r_v5VvoQOg_goto_main_1812__1__cbw8VJ_4TNWMhitLYT_zHw; - main_1812__0__9r6UOwhWT0e4r_v5VvoQOg_goto_main_1812__1__cbw8VJ_4TNWMhitLYT_zHw: - assume {:captureState "main_1812__0__9r6UOwhWT0e4r_v5VvoQOg_goto_main_1812__1__cbw8VJ_4TNWMhitLYT_zHw"} true; - assume (!(R8[1:0] == 1bv1)); - goto main_1812__1__cbw8VJ_4TNWMhitLYT_zHw; - main_1812__1__cbw8VJ_4TNWMhitLYT_zHw: - assume {:captureState "main_1812__1__cbw8VJ_4TNWMhitLYT_zHw"} true; - goto main_1812__2__u39p8w6rTnOZAd6DunNDgQ; - main_1812__2__u39p8w6rTnOZAd6DunNDgQ: - assume {:captureState "main_1812__2__u39p8w6rTnOZAd6DunNDgQ"} true; - R8, Gamma_R8 := 69632bv64, true; - call rely(); - load7, Gamma_load7 := memory_load32_le(mem, bvadd64(R8, 56bv64)), (gamma_load32(Gamma_mem, bvadd64(R8, 56bv64)) || L(mem, bvadd64(R8, 56bv64))); - R8, Gamma_R8 := zero_extend32_32(load7), Gamma_load7; - stack, Gamma_stack := memory_store32_le(stack, bvadd64(R31, 8bv64), R8[32:0]), gamma_store32(Gamma_stack, bvadd64(R31, 8bv64), Gamma_R8); - assume {:captureState "1856_0"} true; - goto main_1812__3__hMq94Gt8Rsi1RNq0G5~fMQ; - main_1812__0__9r6UOwhWT0e4r_v5VvoQOg_goto_main_1812__3__hMq94Gt8Rsi1RNq0G5~fMQ: - assume {:captureState "main_1812__0__9r6UOwhWT0e4r_v5VvoQOg_goto_main_1812__3__hMq94Gt8Rsi1RNq0G5~fMQ"} true; - assume (R8[1:0] == 1bv1); - goto main_1812__3__hMq94Gt8Rsi1RNq0G5~fMQ; - main_1812__3__hMq94Gt8Rsi1RNq0G5~fMQ: - assume {:captureState "main_1812__3__hMq94Gt8Rsi1RNq0G5~fMQ"} true; - load6, Gamma_load6 := memory_load32_le(stack, bvadd64(R31, 8bv64)), gamma_load32(Gamma_stack, bvadd64(R31, 8bv64)); - R0, Gamma_R0 := zero_extend32_32(load6), Gamma_load6; - R31, Gamma_R31 := bvadd64(R31, 16bv64), Gamma_R31; - goto main_1812_basil_return; - main_1812_basil_return: - assume {:captureState "main_1812_basil_return"} true; + R0, Gamma_R0 := zero_extend32_32(R9[32:0]), Gamma_R9; + goto main_basil_return; + $main$__0__$D9t2gNJrSmyMH3GAVRe3IQ$__1: + assume {:captureState "$main$__0__$D9t2gNJrSmyMH3GAVRe3IQ$__1"} true; + assume (!(ZF == 1bv1)); + R0, Gamma_R0 := 0bv64, true; + goto main_basil_return; + main_basil_return: + assume {:captureState "main_basil_return"} true; return; } diff --git a/src/test/correct/basic_lock_security_read/clang_O2/basic_lock_security_read.adt b/src/test/correct/basic_lock_security_read/clang_O2/basic_lock_security_read.adt deleted file mode 100644 index 87c6dcd6c..000000000 --- a/src/test/correct/basic_lock_security_read/clang_O2/basic_lock_security_read.adt +++ /dev/null @@ -1,524 +0,0 @@ -Project(Attrs([Attr("filename","\"clang_O2/basic_lock_security_read.out\""), -Attr("image-specification","(declare abi (name str))\n(declare arch (name str))\n(declare base-address (addr int))\n(declare bias (off int))\n(declare bits (size int))\n(declare code-region (addr int) (size int) (off int))\n(declare code-start (addr int))\n(declare entry-point (addr int))\n(declare external-reference (addr int) (name str))\n(declare format (name str))\n(declare is-executable (flag bool))\n(declare is-little-endian (flag bool))\n(declare llvm:base-address (addr int))\n(declare llvm:code-entry (name str) (off int) (size int))\n(declare llvm:coff-import-library (name str))\n(declare llvm:coff-virtual-section-header (name str) (addr int) (size int))\n(declare llvm:elf-program-header (name str) (off int) (size int))\n(declare llvm:elf-program-header-flags (name str) (ld bool) (r bool) \n (w bool) (x bool))\n(declare llvm:elf-virtual-program-header (name str) (addr int) (size int))\n(declare llvm:entry-point (addr int))\n(declare llvm:macho-symbol (name str) (value int))\n(declare llvm:name-reference (at int) (name str))\n(declare llvm:relocation (at int) (addr int))\n(declare llvm:section-entry (name str) (addr int) (size int) (off int))\n(declare llvm:section-flags (name str) (r bool) (w bool) (x bool))\n(declare llvm:segment-command (name str) (off int) (size int))\n(declare llvm:segment-command-flags (name str) (r bool) (w bool) (x bool))\n(declare llvm:symbol-entry (name str) (addr int) (size int) (off int)\n (value int))\n(declare llvm:virtual-segment-command (name str) (addr int) (size int))\n(declare mapped (addr int) (size int) (off int))\n(declare named-region (addr int) (size int) (name str))\n(declare named-symbol (addr int) (name str))\n(declare require (name str))\n(declare section (addr int) (size int))\n(declare segment (addr int) (size int) (r bool) (w bool) (x bool))\n(declare subarch (name str))\n(declare symbol-chunk (addr int) (size int) (root int))\n(declare symbol-value (addr int) (value int))\n(declare system (name str))\n(declare vendor (name str))\n\n(abi unknown)\n(arch aarch64)\n(base-address 0)\n(bias 0)\n(bits 64)\n(code-region 1840 20 1840)\n(code-region 1536 304 1536)\n(code-region 1440 96 1440)\n(code-region 1408 24 1408)\n(code-start 1588)\n(code-start 1536)\n(code-start 1812)\n(entry-point 1536)\n(external-reference 69568 _ITM_deregisterTMCloneTable)\n(external-reference 69576 __cxa_finalize)\n(external-reference 69584 __gmon_start__)\n(external-reference 69600 _ITM_registerTMCloneTable)\n(external-reference 69632 __libc_start_main)\n(external-reference 69640 __cxa_finalize)\n(external-reference 69648 __gmon_start__)\n(external-reference 69656 abort)\n(format elf)\n(is-executable true)\n(is-little-endian true)\n(llvm:base-address 0)\n(llvm:code-entry abort 0 0)\n(llvm:code-entry __cxa_finalize 0 0)\n(llvm:code-entry __libc_start_main 0 0)\n(llvm:code-entry _init 1408 0)\n(llvm:code-entry main 1812 28)\n(llvm:code-entry _start 1536 52)\n(llvm:code-entry abort@GLIBC_2.17 0 0)\n(llvm:code-entry _fini 1840 0)\n(llvm:code-entry __cxa_finalize@GLIBC_2.17 0 0)\n(llvm:code-entry __libc_start_main@GLIBC_2.34 0 0)\n(llvm:code-entry frame_dummy 1808 0)\n(llvm:code-entry __do_global_dtors_aux 1728 0)\n(llvm:code-entry register_tm_clones 1664 0)\n(llvm:code-entry deregister_tm_clones 1616 0)\n(llvm:code-entry call_weak_fn 1588 20)\n(llvm:code-entry .fini 1840 20)\n(llvm:code-entry .text 1536 304)\n(llvm:code-entry .plt 1440 96)\n(llvm:code-entry .init 1408 24)\n(llvm:elf-program-header 08 3528 568)\n(llvm:elf-program-header 07 0 0)\n(llvm:elf-program-header 06 1864 60)\n(llvm:elf-program-header 05 596 68)\n(llvm:elf-program-header 04 3544 480)\n(llvm:elf-program-header 03 3528 616)\n(llvm:elf-program-header 02 0 2108)\n(llvm:elf-program-header 01 568 27)\n(llvm:elf-program-header 00 64 504)\n(llvm:elf-program-header-flags 08 false true false false)\n(llvm:elf-program-header-flags 07 false true true false)\n(llvm:elf-program-header-flags 06 false true false false)\n(llvm:elf-program-header-flags 05 false true false false)\n(llvm:elf-program-header-flags 04 false true true false)\n(llvm:elf-program-header-flags 03 true true true false)\n(llvm:elf-program-header-flags 02 true true false true)\n(llvm:elf-program-header-flags 01 false true false false)\n(llvm:elf-program-header-flags 00 false true false false)\n(llvm:elf-virtual-program-header 08 69064 568)\n(llvm:elf-virtual-program-header 07 0 0)\n(llvm:elf-virtual-program-header 06 1864 60)\n(llvm:elf-virtual-program-header 05 596 68)\n(llvm:elf-virtual-program-header 04 69080 480)\n(llvm:elf-virtual-program-header 03 69064 632)\n(llvm:elf-virtual-program-header 02 0 2108)\n(llvm:elf-virtual-program-header 01 568 27)\n(llvm:elf-virtual-program-header 00 64 504)\n(llvm:entry-point 1536)\n(llvm:name-reference 69656 abort)\n(llvm:name-reference 69648 __gmon_start__)\n(llvm:name-reference 69640 __cxa_finalize)\n(llvm:name-reference 69632 __libc_start_main)\n(llvm:name-reference 69600 _ITM_registerTMCloneTable)\n(llvm:name-reference 69584 __gmon_start__)\n(llvm:name-reference 69576 __cxa_finalize)\n(llvm:name-reference 69568 _ITM_deregisterTMCloneTable)\n(llvm:section-entry .shstrtab 0 259 6982)\n(llvm:section-entry .strtab 0 582 6400)\n(llvm:section-entry .symtab 0 2184 4216)\n(llvm:section-entry .comment 0 71 4144)\n(llvm:section-entry .bss 69680 16 4144)\n(llvm:section-entry .data 69664 16 4128)\n(llvm:section-entry .got.plt 69608 56 4072)\n(llvm:section-entry .got 69560 48 4024)\n(llvm:section-entry .dynamic 69080 480 3544)\n(llvm:section-entry .fini_array 69072 8 3536)\n(llvm:section-entry .init_array 69064 8 3528)\n(llvm:section-entry .eh_frame 1928 180 1928)\n(llvm:section-entry .eh_frame_hdr 1864 60 1864)\n(llvm:section-entry .rodata 1860 4 1860)\n(llvm:section-entry .fini 1840 20 1840)\n(llvm:section-entry .text 1536 304 1536)\n(llvm:section-entry .plt 1440 96 1440)\n(llvm:section-entry .init 1408 24 1408)\n(llvm:section-entry .rela.plt 1312 96 1312)\n(llvm:section-entry .rela.dyn 1120 192 1120)\n(llvm:section-entry .gnu.version_r 1072 48 1072)\n(llvm:section-entry .gnu.version 1054 18 1054)\n(llvm:section-entry .dynstr 912 141 912)\n(llvm:section-entry .dynsym 696 216 696)\n(llvm:section-entry .gnu.hash 664 28 664)\n(llvm:section-entry .note.ABI-tag 632 32 632)\n(llvm:section-entry .note.gnu.build-id 596 36 596)\n(llvm:section-entry .interp 568 27 568)\n(llvm:section-flags .shstrtab true false false)\n(llvm:section-flags .strtab true false false)\n(llvm:section-flags .symtab true false false)\n(llvm:section-flags .comment true false false)\n(llvm:section-flags .bss true true false)\n(llvm:section-flags .data true true false)\n(llvm:section-flags .got.plt true true false)\n(llvm:section-flags .got true true false)\n(llvm:section-flags .dynamic true true false)\n(llvm:section-flags .fini_array true true false)\n(llvm:section-flags .init_array true true false)\n(llvm:section-flags .eh_frame true false false)\n(llvm:section-flags .eh_frame_hdr true false false)\n(llvm:section-flags .rodata true false false)\n(llvm:section-flags .fini true false true)\n(llvm:section-flags .text true false true)\n(llvm:section-flags .plt true false true)\n(llvm:section-flags .init true false true)\n(llvm:section-flags .rela.plt true false false)\n(llvm:section-flags .rela.dyn true false false)\n(llvm:section-flags .gnu.version_r true false false)\n(llvm:section-flags .gnu.version true false false)\n(llvm:section-flags .dynstr true false false)\n(llvm:section-flags .dynsym true false false)\n(llvm:section-flags .gnu.hash true false false)\n(llvm:section-flags .note.ABI-tag true false false)\n(llvm:section-flags .note.gnu.build-id true false false)\n(llvm:section-flags .interp true false false)\n(llvm:symbol-entry abort 0 0 0 0)\n(llvm:symbol-entry __cxa_finalize 0 0 0 0)\n(llvm:symbol-entry __libc_start_main 0 0 0 0)\n(llvm:symbol-entry _init 1408 0 1408 1408)\n(llvm:symbol-entry main 1812 28 1812 1812)\n(llvm:symbol-entry _start 1536 52 1536 1536)\n(llvm:symbol-entry abort@GLIBC_2.17 0 0 0 0)\n(llvm:symbol-entry _fini 1840 0 1840 1840)\n(llvm:symbol-entry __cxa_finalize@GLIBC_2.17 0 0 0 0)\n(llvm:symbol-entry __libc_start_main@GLIBC_2.34 0 0 0 0)\n(llvm:symbol-entry frame_dummy 1808 0 1808 1808)\n(llvm:symbol-entry __do_global_dtors_aux 1728 0 1728 1728)\n(llvm:symbol-entry register_tm_clones 1664 0 1664 1664)\n(llvm:symbol-entry deregister_tm_clones 1616 0 1616 1616)\n(llvm:symbol-entry call_weak_fn 1588 20 1588 1588)\n(mapped 0 2108 0)\n(mapped 69064 616 3528)\n(named-region 0 2108 02)\n(named-region 69064 632 03)\n(named-region 568 27 .interp)\n(named-region 596 36 .note.gnu.build-id)\n(named-region 632 32 .note.ABI-tag)\n(named-region 664 28 .gnu.hash)\n(named-region 696 216 .dynsym)\n(named-region 912 141 .dynstr)\n(named-region 1054 18 .gnu.version)\n(named-region 1072 48 .gnu.version_r)\n(named-region 1120 192 .rela.dyn)\n(named-region 1312 96 .rela.plt)\n(named-region 1408 24 .init)\n(named-region 1440 96 .plt)\n(named-region 1536 304 .text)\n(named-region 1840 20 .fini)\n(named-region 1860 4 .rodata)\n(named-region 1864 60 .eh_frame_hdr)\n(named-region 1928 180 .eh_frame)\n(named-region 69064 8 .init_array)\n(named-region 69072 8 .fini_array)\n(named-region 69080 480 .dynamic)\n(named-region 69560 48 .got)\n(named-region 69608 56 .got.plt)\n(named-region 69664 16 .data)\n(named-region 69680 16 .bss)\n(named-region 0 71 .comment)\n(named-region 0 2184 .symtab)\n(named-region 0 582 .strtab)\n(named-region 0 259 .shstrtab)\n(named-symbol 1588 call_weak_fn)\n(named-symbol 1616 deregister_tm_clones)\n(named-symbol 1664 register_tm_clones)\n(named-symbol 1728 __do_global_dtors_aux)\n(named-symbol 1808 frame_dummy)\n(named-symbol 0 __libc_start_main@GLIBC_2.34)\n(named-symbol 0 __cxa_finalize@GLIBC_2.17)\n(named-symbol 1840 _fini)\n(named-symbol 0 abort@GLIBC_2.17)\n(named-symbol 1536 _start)\n(named-symbol 1812 main)\n(named-symbol 1408 _init)\n(named-symbol 0 __libc_start_main)\n(named-symbol 0 __cxa_finalize)\n(named-symbol 0 abort)\n(require libc.so.6)\n(section 568 27)\n(section 596 36)\n(section 632 32)\n(section 664 28)\n(section 696 216)\n(section 912 141)\n(section 1054 18)\n(section 1072 48)\n(section 1120 192)\n(section 1312 96)\n(section 1408 24)\n(section 1440 96)\n(section 1536 304)\n(section 1840 20)\n(section 1860 4)\n(section 1864 60)\n(section 1928 180)\n(section 69064 8)\n(section 69072 8)\n(section 69080 480)\n(section 69560 48)\n(section 69608 56)\n(section 69664 16)\n(section 69680 16)\n(section 0 71)\n(section 0 2184)\n(section 0 582)\n(section 0 259)\n(segment 0 2108 true false true)\n(segment 69064 632 true true false)\n(subarch v8)\n(symbol-chunk 1588 20 1588)\n(symbol-chunk 1536 52 1536)\n(symbol-chunk 1812 28 1812)\n(symbol-value 1588 1588)\n(symbol-value 1616 1616)\n(symbol-value 1664 1664)\n(symbol-value 1728 1728)\n(symbol-value 1808 1808)\n(symbol-value 1840 1840)\n(symbol-value 1536 1536)\n(symbol-value 1812 1812)\n(symbol-value 1408 1408)\n(symbol-value 0 0)\n(system \"\")\n(vendor \"\")\n"), -Attr("abi-name","\"aarch64-linux-gnu-elf\"")]), -Sections([Section(".shstrtab", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x00\x06\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x50\x1c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x38\x00\x09\x00\x40\x00\x1d\x00\x1c\x00\x06\x00\x00\x00\x04\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x04\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x3c\x08\x00\x00\x00\x00\x00\x00\x3c\x08\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x01\x00\x00\x00\x06\x00\x00\x00\xc8\x0d\x00\x00\x00\x00\x00\x00\xc8\x0d\x01\x00\x00\x00\x00\x00\xc8\x0d\x01"), -Section(".strtab", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x00\x06\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x50\x1c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x38\x00\x09\x00\x40\x00\x1d\x00\x1c\x00\x06\x00\x00\x00\x04\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x04\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x3c\x08\x00\x00\x00\x00\x00\x00\x3c\x08\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x01\x00\x00\x00\x06\x00\x00\x00\xc8\x0d\x00\x00\x00\x00\x00\x00\xc8\x0d\x01\x00\x00\x00\x00\x00\xc8\x0d\x01\x00\x00\x00\x00\x00\x68\x02\x00\x00\x00\x00\x00\x00\x78\x02\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x02\x00\x00\x00\x06\x00\x00\x00\xd8\x0d\x00\x00\x00\x00\x00\x00\xd8\x0d\x01\x00\x00\x00\x00\x00\xd8\x0d\x01\x00\x00\x00\x00\x00\xe0\x01\x00\x00\x00\x00\x00\x00\xe0\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x04\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x50\xe5\x74\x64\x04\x00\x00\x00\x48\x07\x00\x00\x00\x00\x00\x00\x48\x07\x00\x00\x00\x00\x00\x00\x48\x07\x00\x00\x00\x00\x00\x00\x3c\x00\x00\x00\x00\x00\x00\x00\x3c\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x51\xe5\x74\x64\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x52\xe5\x74\x64\x04\x00\x00\x00\xc8\x0d\x00\x00\x00\x00\x00\x00\xc8\x0d\x01\x00\x00\x00\x00\x00\xc8\x0d\x01\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x2f\x6c\x69\x62\x2f\x6c\x64\x2d\x6c\x69\x6e\x75\x78\x2d"), -Section(".comment", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x00\x06\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x50\x1c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x38\x00\x09\x00\x40\x00\x1d\x00\x1c\x00\x06\x00\x00\x00\x04\x00\x00"), -Section(".interp", 0x238, "\x2f\x6c\x69\x62\x2f\x6c\x64\x2d\x6c\x69\x6e\x75\x78\x2d\x61\x61\x72\x63\x68\x36\x34\x2e\x73\x6f\x2e\x31\x00"), -Section(".note.gnu.build-id", 0x254, "\x04\x00\x00\x00\x14\x00\x00\x00\x03\x00\x00\x00\x47\x4e\x55\x00\x4f\x76\x86\x7f\x6a\xd2\xf6\xc4\x3b\x5f\xf4\x51\xc8\x2a\x1b\xf5\xdf\x94\x35\xa6"), -Section(".note.ABI-tag", 0x278, "\x04\x00\x00\x00\x10\x00\x00\x00\x01\x00\x00\x00\x47\x4e\x55\x00\x00\x00\x00\x00\x03\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00"), -Section(".gnu.hash", 0x298, "\x01\x00\x00\x00\x01\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".dynsym", 0x2B8, "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x0b\x00\x80\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x17\x00\x20\x10\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x48\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x22\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x22\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x73\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".dynstr", 0x390, "\x00\x5f\x5f\x63\x78\x61\x5f\x66\x69\x6e\x61\x6c\x69\x7a\x65\x00\x5f\x5f\x6c\x69\x62\x63\x5f\x73\x74\x61\x72\x74\x5f\x6d\x61\x69\x6e\x00\x61\x62\x6f\x72\x74\x00\x6c\x69\x62\x63\x2e\x73\x6f\x2e\x36\x00\x47\x4c\x49\x42\x43\x5f\x32\x2e\x31\x37\x00\x47\x4c\x49\x42\x43\x5f\x32\x2e\x33\x34\x00\x5f\x49\x54\x4d\x5f\x64\x65\x72\x65\x67\x69\x73\x74\x65\x72\x54\x4d\x43\x6c\x6f\x6e\x65\x54\x61\x62\x6c\x65\x00\x5f\x5f\x67\x6d\x6f\x6e\x5f\x73\x74\x61\x72\x74\x5f\x5f\x00\x5f\x49\x54\x4d\x5f\x72\x65\x67\x69\x73\x74\x65\x72\x54\x4d\x43\x6c\x6f\x6e\x65\x54\x61\x62\x6c\x65\x00"), -Section(".gnu.version", 0x41E, "\x00\x00\x00\x00\x00\x00\x02\x00\x01\x00\x03\x00\x01\x00\x03\x00\x01\x00"), -Section(".gnu.version_r", 0x430, "\x01\x00\x02\x00\x28\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x97\x91\x96\x06\x00\x00\x03\x00\x32\x00\x00\x00\x10\x00\x00\x00\xb4\x91\x96\x06\x00\x00\x02\x00\x3d\x00\x00\x00\x00\x00\x00\x00"), -Section(".rela.dyn", 0x460, "\xc8\x0d\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x10\x07\x00\x00\x00\x00\x00\x00\xd0\x0d\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\xc0\x06\x00\x00\x00\x00\x00\x00\xd8\x0f\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x14\x07\x00\x00\x00\x00\x00\x00\x28\x10\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x28\x10\x01\x00\x00\x00\x00\x00\xc0\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xc8\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xd0\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe0\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".rela.plt", 0x520, "\x00\x10\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x08\x10\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x10\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x18\x10\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".init", 0x580, "\x1f\x20\x03\xd5\xfd\x7b\xbf\xa9\xfd\x03\x00\x91\x2a\x00\x00\x94\xfd\x7b\xc1\xa8\xc0\x03\x5f\xd6"), -Section(".plt", 0x5A0, "\xf0\x7b\xbf\xa9\x90\x00\x00\x90\x11\xfe\x47\xf9\x10\xe2\x3f\x91\x20\x02\x1f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x90\x00\x00\xb0\x11\x02\x40\xf9\x10\x02\x00\x91\x20\x02\x1f\xd6\x90\x00\x00\xb0\x11\x06\x40\xf9\x10\x22\x00\x91\x20\x02\x1f\xd6\x90\x00\x00\xb0\x11\x0a\x40\xf9\x10\x42\x00\x91\x20\x02\x1f\xd6\x90\x00\x00\xb0\x11\x0e\x40\xf9\x10\x62\x00\x91\x20\x02\x1f\xd6"), -Section(".text", 0x600, "\x1f\x20\x03\xd5\x1d\x00\x80\xd2\x1e\x00\x80\xd2\xe5\x03\x00\xaa\xe1\x03\x40\xf9\xe2\x23\x00\x91\xe6\x03\x00\x91\x80\x00\x00\x90\x00\xec\x47\xf9\x03\x00\x80\xd2\x04\x00\x80\xd2\xe5\xff\xff\x97\xf0\xff\xff\x97\x80\x00\x00\x90\x00\xe8\x47\xf9\x40\x00\x00\xb4\xe8\xff\xff\x17\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x80\x00\x00\xb0\x00\xc0\x00\x91\x81\x00\x00\xb0\x21\xc0\x00\x91\x3f\x00\x00\xeb\xc0\x00\x00\x54\x81\x00\x00\x90\x21\xe0\x47\xf9\x61\x00\x00\xb4\xf0\x03\x01\xaa\x00\x02\x1f\xd6\xc0\x03\x5f\xd6\x80\x00\x00\xb0\x00\xc0\x00\x91\x81\x00\x00\xb0\x21\xc0\x00\x91\x21\x00\x00\xcb\x22\xfc\x7f\xd3\x41\x0c\x81\x8b\x21\xfc\x41\x93\xc1\x00\x00\xb4\x82\x00\x00\x90\x42\xf0\x47\xf9\x62\x00\x00\xb4\xf0\x03\x02\xaa\x00\x02\x1f\xd6\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\xfd\x7b\xbe\xa9\xfd\x03\x00\x91\xf3\x0b\x00\xf9\x93\x00\x00\xb0\x60\xc2\x40\x39\x40\x01\x00\x35\x80\x00\x00\x90\x00\xe4\x47\xf9\x80\x00\x00\xb4\x80\x00\x00\xb0\x00\x14\x40\xf9\xb9\xff\xff\x97\xd8\xff\xff\x97\x20\x00\x80\x52\x60\xc2\x00\x39\xf3\x0b\x40\xf9\xfd\x7b\xc2\xa8\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\xdc\xff\xff\x17\x88\x00\x00\xb0\x89\x00\x00\xb0\x08\x35\x40\xb9\x29\x39\x40\xb9\x1f\x01\x00\x71\x20\x01\x9f\x1a\xc0\x03\x5f\xd6"), -Section(".fini", 0x730, "\x1f\x20\x03\xd5\xfd\x7b\xbf\xa9\xfd\x03\x00\x91\xfd\x7b\xc1\xa8\xc0\x03\x5f\xd6"), -Section(".rodata", 0x744, "\x01\x00\x02\x00"), -Section(".eh_frame_hdr", 0x748, "\x01\x1b\x03\x3b\x3c\x00\x00\x00\x06\x00\x00\x00\xb8\xfe\xff\xff\x54\x00\x00\x00\x08\xff\xff\xff\x68\x00\x00\x00\x38\xff\xff\xff\x7c\x00\x00\x00\x78\xff\xff\xff\x90\x00\x00\x00\xc8\xff\xff\xff\xb4\x00\x00\x00\xcc\xff\xff\xff\xdc\x00\x00\x00"), -Section(".eh_frame", 0x788, "\x10\x00\x00\x00\x00\x00\x00\x00\x01\x7a\x52\x00\x04\x78\x1e\x01\x1b\x0c\x1f\x00\x10\x00\x00\x00\x18\x00\x00\x00\x5c\xfe\xff\xff\x34\x00\x00\x00\x00\x41\x07\x1e\x10\x00\x00\x00\x2c\x00\x00\x00\x98\xfe\xff\xff\x30\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x40\x00\x00\x00\xb4\xfe\xff\xff\x3c\x00\x00\x00\x00\x00\x00\x00\x20\x00\x00\x00\x54\x00\x00\x00\xe0\xfe\xff\xff\x48\x00\x00\x00\x00\x41\x0e\x20\x9d\x04\x9e\x03\x42\x93\x02\x4e\xde\xdd\xd3\x0e\x00\x00\x00\x00\x10\x00\x00\x00\x78\x00\x00\x00\x0c\xff\xff\xff\x04\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x01\x7a\x52\x00\x01\x7c\x1e\x01\x1b\x0c\x1f\x00\x10\x00\x00\x00\x18\x00\x00\x00\xe8\xfe\xff\xff\x1c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".fini_array", 0x10DD0, "\xc0\x06\x00\x00\x00\x00\x00\x00"), -Section(".dynamic", 0x10DD8, "\x01\x00\x00\x00\x00\x00\x00\x00\x28\x00\x00\x00\x00\x00\x00\x00\x0c\x00\x00\x00\x00\x00\x00\x00\x80\x05\x00\x00\x00\x00\x00\x00\x0d\x00\x00\x00\x00\x00\x00\x00\x30\x07\x00\x00\x00\x00\x00\x00\x19\x00\x00\x00\x00\x00\x00\x00\xc8\x0d\x01\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x1a\x00\x00\x00\x00\x00\x00\x00\xd0\x0d\x01\x00\x00\x00\x00\x00\x1c\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\xf5\xfe\xff\x6f\x00\x00\x00\x00\x98\x02\x00\x00\x00\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x90\x03\x00\x00\x00\x00\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\xb8\x02\x00\x00\x00\x00\x00\x00\x0a\x00\x00\x00\x00\x00\x00\x00\x8d\x00\x00\x00\x00\x00\x00\x00\x0b\x00\x00\x00\x00\x00\x00\x00\x18\x00\x00\x00\x00\x00\x00\x00\x15\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\xe8\x0f\x01\x00\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x60\x00\x00\x00\x00\x00\x00\x00\x14\x00\x00\x00\x00\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x17\x00\x00\x00\x00\x00\x00\x00\x20\x05\x00\x00\x00\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x60\x04\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\xc0\x00\x00\x00\x00\x00\x00\x00\x09\x00\x00\x00\x00\x00\x00\x00\x18\x00\x00\x00\x00\x00\x00\x00\xfb\xff\xff\x6f\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\xfe\xff\xff\x6f\x00\x00\x00\x00\x30\x04\x00\x00\x00\x00\x00\x00\xff\xff\xff\x6f\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\xf0\xff\xff\x6f\x00\x00\x00\x00\x1e\x04\x00\x00\x00\x00\x00\x00\xf9\xff\xff\x6f\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".init_array", 0x10DC8, "\x10\x07\x00\x00\x00\x00\x00\x00"), -Section(".got", 0x10FB8, "\xd8\x0d\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x14\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".got.plt", 0x10FE8, "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xa0\x05\x00\x00\x00\x00\x00\x00\xa0\x05\x00\x00\x00\x00\x00\x00\xa0\x05\x00\x00\x00\x00\x00\x00\xa0\x05\x00\x00\x00\x00\x00\x00"), -Section(".data", 0x11020, "\x00\x00\x00\x00\x00\x00\x00\x00\x28\x10\x01\x00\x00\x00\x00\x00")]), -Memmap([Annotation(Region(0x0,0x83B), Attr("segment","02 0 2108")), -Annotation(Region(0x600,0x633), Attr("symbol","\"_start\"")), -Annotation(Region(0x0,0x102), Attr("section","\".shstrtab\"")), -Annotation(Region(0x0,0x245), Attr("section","\".strtab\"")), -Annotation(Region(0x0,0x46), Attr("section","\".comment\"")), -Annotation(Region(0x238,0x252), Attr("section","\".interp\"")), -Annotation(Region(0x254,0x277), Attr("section","\".note.gnu.build-id\"")), -Annotation(Region(0x278,0x297), Attr("section","\".note.ABI-tag\"")), -Annotation(Region(0x298,0x2B3), Attr("section","\".gnu.hash\"")), -Annotation(Region(0x2B8,0x38F), Attr("section","\".dynsym\"")), -Annotation(Region(0x390,0x41C), Attr("section","\".dynstr\"")), -Annotation(Region(0x41E,0x42F), Attr("section","\".gnu.version\"")), -Annotation(Region(0x430,0x45F), Attr("section","\".gnu.version_r\"")), -Annotation(Region(0x460,0x51F), Attr("section","\".rela.dyn\"")), -Annotation(Region(0x520,0x57F), Attr("section","\".rela.plt\"")), -Annotation(Region(0x580,0x597), Attr("section","\".init\"")), -Annotation(Region(0x5A0,0x5FF), Attr("section","\".plt\"")), -Annotation(Region(0x580,0x597), Attr("code-region","()")), -Annotation(Region(0x5A0,0x5FF), Attr("code-region","()")), -Annotation(Region(0x600,0x633), Attr("symbol-info","_start 0x600 52")), -Annotation(Region(0x634,0x647), Attr("symbol","\"call_weak_fn\"")), -Annotation(Region(0x634,0x647), Attr("symbol-info","call_weak_fn 0x634 20")), -Annotation(Region(0x600,0x72F), Attr("section","\".text\"")), -Annotation(Region(0x600,0x72F), Attr("code-region","()")), -Annotation(Region(0x714,0x72F), Attr("symbol","\"main\"")), -Annotation(Region(0x714,0x72F), Attr("symbol-info","main 0x714 28")), -Annotation(Region(0x730,0x743), Attr("section","\".fini\"")), -Annotation(Region(0x730,0x743), Attr("code-region","()")), -Annotation(Region(0x744,0x747), Attr("section","\".rodata\"")), -Annotation(Region(0x748,0x783), Attr("section","\".eh_frame_hdr\"")), -Annotation(Region(0x788,0x83B), Attr("section","\".eh_frame\"")), -Annotation(Region(0x10DC8,0x1102F), Attr("segment","03 0x10DC8 632")), -Annotation(Region(0x10DD0,0x10DD7), Attr("section","\".fini_array\"")), -Annotation(Region(0x10DD8,0x10FB7), Attr("section","\".dynamic\"")), -Annotation(Region(0x10DC8,0x10DCF), Attr("section","\".init_array\"")), -Annotation(Region(0x10FB8,0x10FE7), Attr("section","\".got\"")), -Annotation(Region(0x10FE8,0x1101F), Attr("section","\".got.plt\"")), -Annotation(Region(0x11020,0x1102F), Attr("section","\".data\""))]), -Program(Tid(1_470, "%000005be"), Attrs([]), - Subs([Sub(Tid(1_420, "@__cxa_finalize"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x5D0"), -Attr("stub","()")]), "__cxa_finalize", Args([Arg(Tid(1_471, "%000005bf"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("__cxa_finalize_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(834, "@__cxa_finalize"), - Attrs([Attr("address","0x5D0")]), Phis([]), -Defs([Def(Tid(1_082, "%0000043a"), Attrs([Attr("address","0x5D0"), -Attr("insn","adrp x16, #69632")]), Var("R16",Imm(64)), Int(69632,64)), -Def(Tid(1_089, "%00000441"), Attrs([Attr("address","0x5D4"), -Attr("insn","ldr x17, [x16, #0x8]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(1_095, "%00000447"), Attrs([Attr("address","0x5D8"), -Attr("insn","add x16, x16, #0x8")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(8,64)))]), Jmps([Call(Tid(1_100, "%0000044c"), - Attrs([Attr("address","0x5DC"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), -Sub(Tid(1_421, "@__do_global_dtors_aux"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x6C0")]), - "__do_global_dtors_aux", Args([Arg(Tid(1_472, "%000005c0"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("__do_global_dtors_aux_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(618, "@__do_global_dtors_aux"), - Attrs([Attr("address","0x6C0")]), Phis([]), Defs([Def(Tid(622, "%0000026e"), - Attrs([Attr("address","0x6C0"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("#3",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(18446744073709551584,64))), -Def(Tid(628, "%00000274"), Attrs([Attr("address","0x6C0"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("#3",Imm(64)),Var("R29",Imm(64)),LittleEndian(),64)), -Def(Tid(634, "%0000027a"), Attrs([Attr("address","0x6C0"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("#3",Imm(64)),Int(8,64)),Var("R30",Imm(64)),LittleEndian(),64)), -Def(Tid(638, "%0000027e"), Attrs([Attr("address","0x6C0"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("R31",Imm(64)), -Var("#3",Imm(64))), Def(Tid(644, "%00000284"), - Attrs([Attr("address","0x6C4"), Attr("insn","mov x29, sp")]), - Var("R29",Imm(64)), Var("R31",Imm(64))), Def(Tid(652, "%0000028c"), - Attrs([Attr("address","0x6C8"), Attr("insn","str x19, [sp, #0x10]")]), - Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(16,64)),Var("R19",Imm(64)),LittleEndian(),64)), -Def(Tid(657, "%00000291"), Attrs([Attr("address","0x6CC"), -Attr("insn","adrp x19, #69632")]), Var("R19",Imm(64)), Int(69632,64)), -Def(Tid(664, "%00000298"), Attrs([Attr("address","0x6D0"), -Attr("insn","ldrb w0, [x19, #0x30]")]), Var("R0",Imm(64)), -UNSIGNED(64,Load(Var("mem",Mem(64,8)),PLUS(Var("R19",Imm(64)),Int(48,64)),LittleEndian(),8)))]), -Jmps([Goto(Tid(671, "%0000029f"), Attrs([Attr("address","0x6D4"), -Attr("insn","cbnz w0, #0x28")]), - NEQ(Extract(31,0,Var("R0",Imm(64))),Int(0,32)), -Direct(Tid(669, "%0000029d"))), Goto(Tid(1_460, "%000005b4"), Attrs([]), - Int(1,1), Direct(Tid(779, "%0000030b")))])), Blk(Tid(779, "%0000030b"), - Attrs([Attr("address","0x6D8")]), Phis([]), Defs([Def(Tid(782, "%0000030e"), - Attrs([Attr("address","0x6D8"), Attr("insn","adrp x0, #65536")]), - Var("R0",Imm(64)), Int(65536,64)), Def(Tid(789, "%00000315"), - Attrs([Attr("address","0x6DC"), Attr("insn","ldr x0, [x0, #0xfc8]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(4040,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(795, "%0000031b"), Attrs([Attr("address","0x6E0"), -Attr("insn","cbz x0, #0x10")]), EQ(Var("R0",Imm(64)),Int(0,64)), -Direct(Tid(793, "%00000319"))), Goto(Tid(1_461, "%000005b5"), Attrs([]), - Int(1,1), Direct(Tid(818, "%00000332")))])), Blk(Tid(818, "%00000332"), - Attrs([Attr("address","0x6E4")]), Phis([]), Defs([Def(Tid(821, "%00000335"), - Attrs([Attr("address","0x6E4"), Attr("insn","adrp x0, #69632")]), - Var("R0",Imm(64)), Int(69632,64)), Def(Tid(828, "%0000033c"), - Attrs([Attr("address","0x6E8"), Attr("insn","ldr x0, [x0, #0x28]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(40,64)),LittleEndian(),64)), -Def(Tid(833, "%00000341"), Attrs([Attr("address","0x6EC"), -Attr("insn","bl #-0x11c")]), Var("R30",Imm(64)), Int(1776,64))]), -Jmps([Call(Tid(836, "%00000344"), Attrs([Attr("address","0x6EC"), -Attr("insn","bl #-0x11c")]), Int(1,1), -(Direct(Tid(1_420, "@__cxa_finalize")),Direct(Tid(793, "%00000319"))))])), -Blk(Tid(793, "%00000319"), Attrs([Attr("address","0x6F0")]), Phis([]), -Defs([Def(Tid(801, "%00000321"), Attrs([Attr("address","0x6F0"), -Attr("insn","bl #-0xa0")]), Var("R30",Imm(64)), Int(1780,64))]), -Jmps([Call(Tid(803, "%00000323"), Attrs([Attr("address","0x6F0"), -Attr("insn","bl #-0xa0")]), Int(1,1), -(Direct(Tid(1_434, "@deregister_tm_clones")),Direct(Tid(805, "%00000325"))))])), -Blk(Tid(805, "%00000325"), Attrs([Attr("address","0x6F4")]), Phis([]), -Defs([Def(Tid(808, "%00000328"), Attrs([Attr("address","0x6F4"), -Attr("insn","mov w0, #0x1")]), Var("R0",Imm(64)), Int(1,64)), -Def(Tid(816, "%00000330"), Attrs([Attr("address","0x6F8"), -Attr("insn","strb w0, [x19, #0x30]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R19",Imm(64)),Int(48,64)),Extract(7,0,Var("R0",Imm(64))),LittleEndian(),8))]), -Jmps([Goto(Tid(1_462, "%000005b6"), Attrs([]), Int(1,1), -Direct(Tid(669, "%0000029d")))])), Blk(Tid(669, "%0000029d"), - Attrs([Attr("address","0x6FC")]), Phis([]), Defs([Def(Tid(679, "%000002a7"), - Attrs([Attr("address","0x6FC"), Attr("insn","ldr x19, [sp, #0x10]")]), - Var("R19",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(16,64)),LittleEndian(),64)), -Def(Tid(686, "%000002ae"), Attrs([Attr("address","0x700"), -Attr("insn","ldp x29, x30, [sp], #0x20")]), Var("R29",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(691, "%000002b3"), Attrs([Attr("address","0x700"), -Attr("insn","ldp x29, x30, [sp], #0x20")]), Var("R30",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(695, "%000002b7"), Attrs([Attr("address","0x700"), -Attr("insn","ldp x29, x30, [sp], #0x20")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(32,64)))]), Jmps([Call(Tid(700, "%000002bc"), - Attrs([Attr("address","0x704"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), Sub(Tid(1_425, "@__libc_start_main"), - Attrs([Attr("c.proto","signed (*)(signed (*)(signed , char** , char** );* main, signed , char** , \nvoid* auxv)"), -Attr("address","0x5C0"), Attr("stub","()")]), "__libc_start_main", - Args([Arg(Tid(1_473, "%000005c1"), - Attrs([Attr("c.layout","**[ : 64]"), -Attr("c.data","Top:u64 ptr ptr"), -Attr("c.type","signed (*)(signed , char** , char** );*")]), - Var("__libc_start_main_main",Imm(64)), Var("R0",Imm(64)), In()), -Arg(Tid(1_474, "%000005c2"), Attrs([Attr("c.layout","[signed : 32]"), -Attr("c.data","Top:u32"), Attr("c.type","signed")]), - Var("__libc_start_main_arg2",Imm(32)), LOW(32,Var("R1",Imm(64))), In()), -Arg(Tid(1_475, "%000005c3"), Attrs([Attr("c.layout","**[char : 8]"), -Attr("c.data","Top:u8 ptr ptr"), Attr("c.type","char**")]), - Var("__libc_start_main_arg3",Imm(64)), Var("R2",Imm(64)), Both()), -Arg(Tid(1_476, "%000005c4"), Attrs([Attr("c.layout","*[ : 8]"), -Attr("c.data","{} ptr"), Attr("c.type","void*")]), - Var("__libc_start_main_auxv",Imm(64)), Var("R3",Imm(64)), Both()), -Arg(Tid(1_477, "%000005c5"), Attrs([Attr("c.layout","[signed : 32]"), -Attr("c.data","Top:u32"), Attr("c.type","signed")]), - Var("__libc_start_main_result",Imm(32)), LOW(32,Var("R0",Imm(64))), -Out())]), Blks([Blk(Tid(451, "@__libc_start_main"), - Attrs([Attr("address","0x5C0")]), Phis([]), -Defs([Def(Tid(1_060, "%00000424"), Attrs([Attr("address","0x5C0"), -Attr("insn","adrp x16, #69632")]), Var("R16",Imm(64)), Int(69632,64)), -Def(Tid(1_067, "%0000042b"), Attrs([Attr("address","0x5C4"), -Attr("insn","ldr x17, [x16]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R16",Imm(64)),LittleEndian(),64)), -Def(Tid(1_073, "%00000431"), Attrs([Attr("address","0x5C8"), -Attr("insn","add x16, x16, #0x0")]), Var("R16",Imm(64)), -Var("R16",Imm(64)))]), Jmps([Call(Tid(1_078, "%00000436"), - Attrs([Attr("address","0x5CC"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), Sub(Tid(1_426, "@_fini"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x730")]), - "_fini", Args([Arg(Tid(1_478, "%000005c6"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("_fini_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(31, "@_fini"), - Attrs([Attr("address","0x730")]), Phis([]), Defs([Def(Tid(37, "%00000025"), - Attrs([Attr("address","0x734"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("#0",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(18446744073709551600,64))), -Def(Tid(43, "%0000002b"), Attrs([Attr("address","0x734"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("#0",Imm(64)),Var("R29",Imm(64)),LittleEndian(),64)), -Def(Tid(49, "%00000031"), Attrs([Attr("address","0x734"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("#0",Imm(64)),Int(8,64)),Var("R30",Imm(64)),LittleEndian(),64)), -Def(Tid(53, "%00000035"), Attrs([Attr("address","0x734"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("R31",Imm(64)), -Var("#0",Imm(64))), Def(Tid(59, "%0000003b"), Attrs([Attr("address","0x738"), -Attr("insn","mov x29, sp")]), Var("R29",Imm(64)), Var("R31",Imm(64))), -Def(Tid(66, "%00000042"), Attrs([Attr("address","0x73C"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R29",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(71, "%00000047"), Attrs([Attr("address","0x73C"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R30",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(75, "%0000004b"), Attrs([Attr("address","0x73C"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(16,64)))]), Jmps([Call(Tid(80, "%00000050"), - Attrs([Attr("address","0x740"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), Sub(Tid(1_427, "@_init"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x580")]), - "_init", Args([Arg(Tid(1_479, "%000005c7"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("_init_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(1_255, "@_init"), - Attrs([Attr("address","0x580")]), Phis([]), -Defs([Def(Tid(1_261, "%000004ed"), Attrs([Attr("address","0x584"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("#6",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(18446744073709551600,64))), -Def(Tid(1_267, "%000004f3"), Attrs([Attr("address","0x584"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("#6",Imm(64)),Var("R29",Imm(64)),LittleEndian(),64)), -Def(Tid(1_273, "%000004f9"), Attrs([Attr("address","0x584"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("#6",Imm(64)),Int(8,64)),Var("R30",Imm(64)),LittleEndian(),64)), -Def(Tid(1_277, "%000004fd"), Attrs([Attr("address","0x584"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("R31",Imm(64)), -Var("#6",Imm(64))), Def(Tid(1_283, "%00000503"), - Attrs([Attr("address","0x588"), Attr("insn","mov x29, sp")]), - Var("R29",Imm(64)), Var("R31",Imm(64))), Def(Tid(1_288, "%00000508"), - Attrs([Attr("address","0x58C"), Attr("insn","bl #0xa8")]), - Var("R30",Imm(64)), Int(1424,64))]), Jmps([Call(Tid(1_290, "%0000050a"), - Attrs([Attr("address","0x58C"), Attr("insn","bl #0xa8")]), Int(1,1), -(Direct(Tid(1_432, "@call_weak_fn")),Direct(Tid(1_292, "%0000050c"))))])), -Blk(Tid(1_292, "%0000050c"), Attrs([Attr("address","0x590")]), Phis([]), -Defs([Def(Tid(1_297, "%00000511"), Attrs([Attr("address","0x590"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R29",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(1_302, "%00000516"), Attrs([Attr("address","0x590"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R30",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(1_306, "%0000051a"), Attrs([Attr("address","0x590"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(16,64)))]), Jmps([Call(Tid(1_311, "%0000051f"), - Attrs([Attr("address","0x594"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), Sub(Tid(1_428, "@_start"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x600"), -Attr("stub","()"), Attr("entry-point","()")]), "_start", - Args([Arg(Tid(1_480, "%000005c8"), Attrs([Attr("c.layout","[signed : 32]"), -Attr("c.data","Top:u32"), Attr("c.type","signed")]), - Var("_start_result",Imm(32)), LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(388, "@_start"), Attrs([Attr("address","0x600")]), Phis([]), -Defs([Def(Tid(393, "%00000189"), Attrs([Attr("address","0x604"), -Attr("insn","mov x29, #0x0")]), Var("R29",Imm(64)), Int(0,64)), -Def(Tid(398, "%0000018e"), Attrs([Attr("address","0x608"), -Attr("insn","mov x30, #0x0")]), Var("R30",Imm(64)), Int(0,64)), -Def(Tid(404, "%00000194"), Attrs([Attr("address","0x60C"), -Attr("insn","mov x5, x0")]), Var("R5",Imm(64)), Var("R0",Imm(64))), -Def(Tid(411, "%0000019b"), Attrs([Attr("address","0x610"), -Attr("insn","ldr x1, [sp]")]), Var("R1",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(417, "%000001a1"), Attrs([Attr("address","0x614"), -Attr("insn","add x2, sp, #0x8")]), Var("R2",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(8,64))), Def(Tid(423, "%000001a7"), - Attrs([Attr("address","0x618"), Attr("insn","mov x6, sp")]), - Var("R6",Imm(64)), Var("R31",Imm(64))), Def(Tid(428, "%000001ac"), - Attrs([Attr("address","0x61C"), Attr("insn","adrp x0, #65536")]), - Var("R0",Imm(64)), Int(65536,64)), Def(Tid(435, "%000001b3"), - Attrs([Attr("address","0x620"), Attr("insn","ldr x0, [x0, #0xfd8]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(4056,64)),LittleEndian(),64)), -Def(Tid(440, "%000001b8"), Attrs([Attr("address","0x624"), -Attr("insn","mov x3, #0x0")]), Var("R3",Imm(64)), Int(0,64)), -Def(Tid(445, "%000001bd"), Attrs([Attr("address","0x628"), -Attr("insn","mov x4, #0x0")]), Var("R4",Imm(64)), Int(0,64)), -Def(Tid(450, "%000001c2"), Attrs([Attr("address","0x62C"), -Attr("insn","bl #-0x6c")]), Var("R30",Imm(64)), Int(1584,64))]), -Jmps([Call(Tid(453, "%000001c5"), Attrs([Attr("address","0x62C"), -Attr("insn","bl #-0x6c")]), Int(1,1), -(Direct(Tid(1_425, "@__libc_start_main")),Direct(Tid(455, "%000001c7"))))])), -Blk(Tid(455, "%000001c7"), Attrs([Attr("address","0x630")]), Phis([]), -Defs([Def(Tid(458, "%000001ca"), Attrs([Attr("address","0x630"), -Attr("insn","bl #-0x40")]), Var("R30",Imm(64)), Int(1588,64))]), -Jmps([Call(Tid(461, "%000001cd"), Attrs([Attr("address","0x630"), -Attr("insn","bl #-0x40")]), Int(1,1), -(Direct(Tid(1_431, "@abort")),Direct(Tid(1_463, "%000005b7"))))])), -Blk(Tid(1_463, "%000005b7"), Attrs([]), Phis([]), Defs([]), -Jmps([Call(Tid(1_464, "%000005b8"), Attrs([]), Int(1,1), -(Direct(Tid(1_432, "@call_weak_fn")),))]))])), Sub(Tid(1_431, "@abort"), - Attrs([Attr("noreturn","()"), Attr("c.proto","void (*)(void)"), -Attr("address","0x5F0"), Attr("stub","()")]), "abort", Args([]), -Blks([Blk(Tid(459, "@abort"), Attrs([Attr("address","0x5F0")]), Phis([]), -Defs([Def(Tid(1_126, "%00000466"), Attrs([Attr("address","0x5F0"), -Attr("insn","adrp x16, #69632")]), Var("R16",Imm(64)), Int(69632,64)), -Def(Tid(1_133, "%0000046d"), Attrs([Attr("address","0x5F4"), -Attr("insn","ldr x17, [x16, #0x18]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(24,64)),LittleEndian(),64)), -Def(Tid(1_139, "%00000473"), Attrs([Attr("address","0x5F8"), -Attr("insn","add x16, x16, #0x18")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(24,64)))]), Jmps([Call(Tid(1_144, "%00000478"), - Attrs([Attr("address","0x5FC"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), Sub(Tid(1_432, "@call_weak_fn"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x634")]), - "call_weak_fn", Args([Arg(Tid(1_481, "%000005c9"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("call_weak_fn_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(463, "@call_weak_fn"), - Attrs([Attr("address","0x634")]), Phis([]), Defs([Def(Tid(466, "%000001d2"), - Attrs([Attr("address","0x634"), Attr("insn","adrp x0, #65536")]), - Var("R0",Imm(64)), Int(65536,64)), Def(Tid(473, "%000001d9"), - Attrs([Attr("address","0x638"), Attr("insn","ldr x0, [x0, #0xfd0]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(4048,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(479, "%000001df"), Attrs([Attr("address","0x63C"), -Attr("insn","cbz x0, #0x8")]), EQ(Var("R0",Imm(64)),Int(0,64)), -Direct(Tid(477, "%000001dd"))), Goto(Tid(1_465, "%000005b9"), Attrs([]), - Int(1,1), Direct(Tid(898, "%00000382")))])), Blk(Tid(477, "%000001dd"), - Attrs([Attr("address","0x644")]), Phis([]), Defs([]), -Jmps([Call(Tid(485, "%000001e5"), Attrs([Attr("address","0x644"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))])), -Blk(Tid(898, "%00000382"), Attrs([Attr("address","0x640")]), Phis([]), -Defs([]), Jmps([Goto(Tid(901, "%00000385"), Attrs([Attr("address","0x640"), -Attr("insn","b #-0x60")]), Int(1,1), Direct(Tid(899, "@__gmon_start__")))])), -Blk(Tid(899, "@__gmon_start__"), Attrs([Attr("address","0x5E0")]), Phis([]), -Defs([Def(Tid(1_104, "%00000450"), Attrs([Attr("address","0x5E0"), -Attr("insn","adrp x16, #69632")]), Var("R16",Imm(64)), Int(69632,64)), -Def(Tid(1_111, "%00000457"), Attrs([Attr("address","0x5E4"), -Attr("insn","ldr x17, [x16, #0x10]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(16,64)),LittleEndian(),64)), -Def(Tid(1_117, "%0000045d"), Attrs([Attr("address","0x5E8"), -Attr("insn","add x16, x16, #0x10")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(16,64)))]), Jmps([Call(Tid(1_122, "%00000462"), - Attrs([Attr("address","0x5EC"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), -Sub(Tid(1_434, "@deregister_tm_clones"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x650")]), - "deregister_tm_clones", Args([Arg(Tid(1_482, "%000005ca"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("deregister_tm_clones_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(491, "@deregister_tm_clones"), - Attrs([Attr("address","0x650")]), Phis([]), Defs([Def(Tid(494, "%000001ee"), - Attrs([Attr("address","0x650"), Attr("insn","adrp x0, #69632")]), - Var("R0",Imm(64)), Int(69632,64)), Def(Tid(500, "%000001f4"), - Attrs([Attr("address","0x654"), Attr("insn","add x0, x0, #0x30")]), - Var("R0",Imm(64)), PLUS(Var("R0",Imm(64)),Int(48,64))), -Def(Tid(505, "%000001f9"), Attrs([Attr("address","0x658"), -Attr("insn","adrp x1, #69632")]), Var("R1",Imm(64)), Int(69632,64)), -Def(Tid(511, "%000001ff"), Attrs([Attr("address","0x65C"), -Attr("insn","add x1, x1, #0x30")]), Var("R1",Imm(64)), -PLUS(Var("R1",Imm(64)),Int(48,64))), Def(Tid(517, "%00000205"), - Attrs([Attr("address","0x660"), Attr("insn","cmp x1, x0")]), - Var("#1",Imm(64)), NOT(Var("R0",Imm(64)))), Def(Tid(522, "%0000020a"), - Attrs([Attr("address","0x660"), Attr("insn","cmp x1, x0")]), - Var("#2",Imm(64)), PLUS(Var("R1",Imm(64)),NOT(Var("R0",Imm(64))))), -Def(Tid(528, "%00000210"), Attrs([Attr("address","0x660"), -Attr("insn","cmp x1, x0")]), Var("VF",Imm(1)), -NEQ(SIGNED(65,PLUS(Var("#2",Imm(64)),Int(1,64))),PLUS(PLUS(SIGNED(65,Var("R1",Imm(64))),SIGNED(65,Var("#1",Imm(64)))),Int(1,65)))), -Def(Tid(534, "%00000216"), Attrs([Attr("address","0x660"), -Attr("insn","cmp x1, x0")]), Var("CF",Imm(1)), -NEQ(UNSIGNED(65,PLUS(Var("#2",Imm(64)),Int(1,64))),PLUS(PLUS(UNSIGNED(65,Var("R1",Imm(64))),UNSIGNED(65,Var("#1",Imm(64)))),Int(1,65)))), -Def(Tid(538, "%0000021a"), Attrs([Attr("address","0x660"), -Attr("insn","cmp x1, x0")]), Var("ZF",Imm(1)), -EQ(PLUS(Var("#2",Imm(64)),Int(1,64)),Int(0,64))), Def(Tid(542, "%0000021e"), - Attrs([Attr("address","0x660"), Attr("insn","cmp x1, x0")]), - Var("NF",Imm(1)), Extract(63,63,PLUS(Var("#2",Imm(64)),Int(1,64))))]), -Jmps([Goto(Tid(548, "%00000224"), Attrs([Attr("address","0x664"), -Attr("insn","b.eq #0x18")]), EQ(Var("ZF",Imm(1)),Int(1,1)), -Direct(Tid(546, "%00000222"))), Goto(Tid(1_466, "%000005ba"), Attrs([]), - Int(1,1), Direct(Tid(868, "%00000364")))])), Blk(Tid(868, "%00000364"), - Attrs([Attr("address","0x668")]), Phis([]), Defs([Def(Tid(871, "%00000367"), - Attrs([Attr("address","0x668"), Attr("insn","adrp x1, #65536")]), - Var("R1",Imm(64)), Int(65536,64)), Def(Tid(878, "%0000036e"), - Attrs([Attr("address","0x66C"), Attr("insn","ldr x1, [x1, #0xfc0]")]), - Var("R1",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R1",Imm(64)),Int(4032,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(883, "%00000373"), Attrs([Attr("address","0x670"), -Attr("insn","cbz x1, #0xc")]), EQ(Var("R1",Imm(64)),Int(0,64)), -Direct(Tid(546, "%00000222"))), Goto(Tid(1_467, "%000005bb"), Attrs([]), - Int(1,1), Direct(Tid(887, "%00000377")))])), Blk(Tid(546, "%00000222"), - Attrs([Attr("address","0x67C")]), Phis([]), Defs([]), -Jmps([Call(Tid(554, "%0000022a"), Attrs([Attr("address","0x67C"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))])), -Blk(Tid(887, "%00000377"), Attrs([Attr("address","0x674")]), Phis([]), -Defs([Def(Tid(891, "%0000037b"), Attrs([Attr("address","0x674"), -Attr("insn","mov x16, x1")]), Var("R16",Imm(64)), Var("R1",Imm(64)))]), -Jmps([Call(Tid(896, "%00000380"), Attrs([Attr("address","0x678"), -Attr("insn","br x16")]), Int(1,1), (Indirect(Var("R16",Imm(64))),))]))])), -Sub(Tid(1_437, "@frame_dummy"), Attrs([Attr("c.proto","signed (*)(void)"), -Attr("address","0x710")]), "frame_dummy", Args([Arg(Tid(1_483, "%000005cb"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("frame_dummy_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(706, "@frame_dummy"), - Attrs([Attr("address","0x710")]), Phis([]), Defs([]), -Jmps([Call(Tid(708, "%000002c4"), Attrs([Attr("address","0x710"), -Attr("insn","b #-0x90")]), Int(1,1), -(Direct(Tid(1_439, "@register_tm_clones")),))]))])), Sub(Tid(1_438, "@main"), - Attrs([Attr("c.proto","signed (*)(signed argc, const char** argv)"), -Attr("address","0x714")]), "main", Args([Arg(Tid(1_484, "%000005cc"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("main_argc",Imm(32)), -LOW(32,Var("R0",Imm(64))), In()), Arg(Tid(1_485, "%000005cd"), - Attrs([Attr("c.layout","**[char : 8]"), Attr("c.data","Top:u8 ptr ptr"), -Attr("c.type"," const char**")]), Var("main_argv",Imm(64)), -Var("R1",Imm(64)), Both()), Arg(Tid(1_486, "%000005ce"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("main_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(710, "@main"), - Attrs([Attr("address","0x714")]), Phis([]), Defs([Def(Tid(713, "%000002c9"), - Attrs([Attr("address","0x714"), Attr("insn","adrp x8, #69632")]), - Var("R8",Imm(64)), Int(69632,64)), Def(Tid(718, "%000002ce"), - Attrs([Attr("address","0x718"), Attr("insn","adrp x9, #69632")]), - Var("R9",Imm(64)), Int(69632,64)), Def(Tid(725, "%000002d5"), - Attrs([Attr("address","0x71C"), Attr("insn","ldr w8, [x8, #0x34]")]), - Var("R8",Imm(64)), -UNSIGNED(64,Load(Var("mem",Mem(64,8)),PLUS(Var("R8",Imm(64)),Int(52,64)),LittleEndian(),32))), -Def(Tid(732, "%000002dc"), Attrs([Attr("address","0x720"), -Attr("insn","ldr w9, [x9, #0x38]")]), Var("R9",Imm(64)), -UNSIGNED(64,Load(Var("mem",Mem(64,8)),PLUS(Var("R9",Imm(64)),Int(56,64)),LittleEndian(),32))), -Def(Tid(738, "%000002e2"), Attrs([Attr("address","0x724"), -Attr("insn","cmp w8, #0x0")]), Var("#4",Imm(32)), -PLUS(Extract(31,0,Var("R8",Imm(64))),Int(4294967295,32))), -Def(Tid(743, "%000002e7"), Attrs([Attr("address","0x724"), -Attr("insn","cmp w8, #0x0")]), Var("VF",Imm(1)), -NEQ(SIGNED(33,PLUS(Var("#4",Imm(32)),Int(1,32))),PLUS(SIGNED(33,Extract(31,0,Var("R8",Imm(64)))),Int(0,33)))), -Def(Tid(748, "%000002ec"), Attrs([Attr("address","0x724"), -Attr("insn","cmp w8, #0x0")]), Var("CF",Imm(1)), -NEQ(UNSIGNED(33,PLUS(Var("#4",Imm(32)),Int(1,32))),PLUS(UNSIGNED(33,Extract(31,0,Var("R8",Imm(64)))),Int(4294967296,33)))), -Def(Tid(752, "%000002f0"), Attrs([Attr("address","0x724"), -Attr("insn","cmp w8, #0x0")]), Var("ZF",Imm(1)), -EQ(PLUS(Var("#4",Imm(32)),Int(1,32)),Int(0,32))), Def(Tid(756, "%000002f4"), - Attrs([Attr("address","0x724"), Attr("insn","cmp w8, #0x0")]), - Var("NF",Imm(1)), Extract(31,31,PLUS(Var("#4",Imm(32)),Int(1,32))))]), -Jmps([Goto(Tid(769, "%00000301"), Attrs([Attr("address","0x728"), -Attr("insn","csel w0, w9, wzr, eq")]), EQ(Var("ZF",Imm(1)),Int(1,1)), -Direct(Tid(762, "%000002fa"))), Goto(Tid(770, "%00000302"), - Attrs([Attr("address","0x728"), Attr("insn","csel w0, w9, wzr, eq")]), - Int(1,1), Direct(Tid(765, "%000002fd")))])), Blk(Tid(765, "%000002fd"), - Attrs([]), Phis([]), Defs([Def(Tid(766, "%000002fe"), - Attrs([Attr("address","0x728"), Attr("insn","csel w0, w9, wzr, eq")]), - Var("R0",Imm(64)), Int(0,64))]), Jmps([Goto(Tid(772, "%00000304"), - Attrs([Attr("address","0x728"), Attr("insn","csel w0, w9, wzr, eq")]), - Int(1,1), Direct(Tid(768, "%00000300")))])), Blk(Tid(762, "%000002fa"), - Attrs([]), Phis([]), Defs([Def(Tid(763, "%000002fb"), - Attrs([Attr("address","0x728"), Attr("insn","csel w0, w9, wzr, eq")]), - Var("R0",Imm(64)), UNSIGNED(64,Extract(31,0,Var("R9",Imm(64)))))]), -Jmps([Goto(Tid(771, "%00000303"), Attrs([Attr("address","0x728"), -Attr("insn","csel w0, w9, wzr, eq")]), Int(1,1), -Direct(Tid(768, "%00000300")))])), Blk(Tid(768, "%00000300"), Attrs([]), - Phis([]), Defs([]), Jmps([Call(Tid(777, "%00000309"), - Attrs([Attr("address","0x72C"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), -Sub(Tid(1_439, "@register_tm_clones"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x680")]), - "register_tm_clones", Args([Arg(Tid(1_487, "%000005cf"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("register_tm_clones_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(556, "@register_tm_clones"), Attrs([Attr("address","0x680")]), - Phis([]), Defs([Def(Tid(559, "%0000022f"), Attrs([Attr("address","0x680"), -Attr("insn","adrp x0, #69632")]), Var("R0",Imm(64)), Int(69632,64)), -Def(Tid(565, "%00000235"), Attrs([Attr("address","0x684"), -Attr("insn","add x0, x0, #0x30")]), Var("R0",Imm(64)), -PLUS(Var("R0",Imm(64)),Int(48,64))), Def(Tid(570, "%0000023a"), - Attrs([Attr("address","0x688"), Attr("insn","adrp x1, #69632")]), - Var("R1",Imm(64)), Int(69632,64)), Def(Tid(576, "%00000240"), - Attrs([Attr("address","0x68C"), Attr("insn","add x1, x1, #0x30")]), - Var("R1",Imm(64)), PLUS(Var("R1",Imm(64)),Int(48,64))), -Def(Tid(583, "%00000247"), Attrs([Attr("address","0x690"), -Attr("insn","sub x1, x1, x0")]), Var("R1",Imm(64)), -PLUS(PLUS(Var("R1",Imm(64)),NOT(Var("R0",Imm(64)))),Int(1,64))), -Def(Tid(589, "%0000024d"), Attrs([Attr("address","0x694"), -Attr("insn","lsr x2, x1, #63")]), Var("R2",Imm(64)), -Concat(Int(0,63),Extract(63,63,Var("R1",Imm(64))))), -Def(Tid(596, "%00000254"), Attrs([Attr("address","0x698"), -Attr("insn","add x1, x2, x1, asr #3")]), Var("R1",Imm(64)), -PLUS(Var("R2",Imm(64)),ARSHIFT(Var("R1",Imm(64)),Int(3,3)))), -Def(Tid(602, "%0000025a"), Attrs([Attr("address","0x69C"), -Attr("insn","asr x1, x1, #1")]), Var("R1",Imm(64)), -SIGNED(64,Extract(63,1,Var("R1",Imm(64)))))]), -Jmps([Goto(Tid(608, "%00000260"), Attrs([Attr("address","0x6A0"), -Attr("insn","cbz x1, #0x18")]), EQ(Var("R1",Imm(64)),Int(0,64)), -Direct(Tid(606, "%0000025e"))), Goto(Tid(1_468, "%000005bc"), Attrs([]), - Int(1,1), Direct(Tid(838, "%00000346")))])), Blk(Tid(838, "%00000346"), - Attrs([Attr("address","0x6A4")]), Phis([]), Defs([Def(Tid(841, "%00000349"), - Attrs([Attr("address","0x6A4"), Attr("insn","adrp x2, #65536")]), - Var("R2",Imm(64)), Int(65536,64)), Def(Tid(848, "%00000350"), - Attrs([Attr("address","0x6A8"), Attr("insn","ldr x2, [x2, #0xfe0]")]), - Var("R2",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R2",Imm(64)),Int(4064,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(853, "%00000355"), Attrs([Attr("address","0x6AC"), -Attr("insn","cbz x2, #0xc")]), EQ(Var("R2",Imm(64)),Int(0,64)), -Direct(Tid(606, "%0000025e"))), Goto(Tid(1_469, "%000005bd"), Attrs([]), - Int(1,1), Direct(Tid(857, "%00000359")))])), Blk(Tid(606, "%0000025e"), - Attrs([Attr("address","0x6B8")]), Phis([]), Defs([]), -Jmps([Call(Tid(614, "%00000266"), Attrs([Attr("address","0x6B8"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))])), -Blk(Tid(857, "%00000359"), Attrs([Attr("address","0x6B0")]), Phis([]), -Defs([Def(Tid(861, "%0000035d"), Attrs([Attr("address","0x6B0"), -Attr("insn","mov x16, x2")]), Var("R16",Imm(64)), Var("R2",Imm(64)))]), -Jmps([Call(Tid(866, "%00000362"), Attrs([Attr("address","0x6B4"), -Attr("insn","br x16")]), Int(1,1), -(Indirect(Var("R16",Imm(64))),))]))]))]))) \ No newline at end of file diff --git a/src/test/correct/basic_lock_security_read/clang_O2/basic_lock_security_read.bir b/src/test/correct/basic_lock_security_read/clang_O2/basic_lock_security_read.bir deleted file mode 100644 index aae2f22bd..000000000 --- a/src/test/correct/basic_lock_security_read/clang_O2/basic_lock_security_read.bir +++ /dev/null @@ -1,244 +0,0 @@ -000005be: program -0000058c: sub __cxa_finalize(__cxa_finalize_result) -000005bf: __cxa_finalize_result :: out u32 = low:32[R0] - -00000342: -0000043a: R16 := 0x11000 -00000441: R17 := mem[R16 + 8, el]:u64 -00000447: R16 := R16 + 8 -0000044c: call R17 with noreturn - -0000058d: sub __do_global_dtors_aux(__do_global_dtors_aux_result) -000005c0: __do_global_dtors_aux_result :: out u32 = low:32[R0] - -0000026a: -0000026e: #3 := R31 - 0x20 -00000274: mem := mem with [#3, el]:u64 <- R29 -0000027a: mem := mem with [#3 + 8, el]:u64 <- R30 -0000027e: R31 := #3 -00000284: R29 := R31 -0000028c: mem := mem with [R31 + 0x10, el]:u64 <- R19 -00000291: R19 := 0x11000 -00000298: R0 := pad:64[mem[R19 + 0x30]] -0000029f: when 31:0[R0] <> 0 goto %0000029d -000005b4: goto %0000030b - -0000030b: -0000030e: R0 := 0x10000 -00000315: R0 := mem[R0 + 0xFC8, el]:u64 -0000031b: when R0 = 0 goto %00000319 -000005b5: goto %00000332 - -00000332: -00000335: R0 := 0x11000 -0000033c: R0 := mem[R0 + 0x28, el]:u64 -00000341: R30 := 0x6F0 -00000344: call @__cxa_finalize with return %00000319 - -00000319: -00000321: R30 := 0x6F4 -00000323: call @deregister_tm_clones with return %00000325 - -00000325: -00000328: R0 := 1 -00000330: mem := mem with [R19 + 0x30] <- 7:0[R0] -000005b6: goto %0000029d - -0000029d: -000002a7: R19 := mem[R31 + 0x10, el]:u64 -000002ae: R29 := mem[R31, el]:u64 -000002b3: R30 := mem[R31 + 8, el]:u64 -000002b7: R31 := R31 + 0x20 -000002bc: call R30 with noreturn - -00000591: sub __libc_start_main(__libc_start_main_main, __libc_start_main_arg2, __libc_start_main_arg3, __libc_start_main_auxv, __libc_start_main_result) -000005c1: __libc_start_main_main :: in u64 = R0 -000005c2: __libc_start_main_arg2 :: in u32 = low:32[R1] -000005c3: __libc_start_main_arg3 :: in out u64 = R2 -000005c4: __libc_start_main_auxv :: in out u64 = R3 -000005c5: __libc_start_main_result :: out u32 = low:32[R0] - -000001c3: -00000424: R16 := 0x11000 -0000042b: R17 := mem[R16, el]:u64 -00000431: R16 := R16 -00000436: call R17 with noreturn - -00000592: sub _fini(_fini_result) -000005c6: _fini_result :: out u32 = low:32[R0] - -0000001f: -00000025: #0 := R31 - 0x10 -0000002b: mem := mem with [#0, el]:u64 <- R29 -00000031: mem := mem with [#0 + 8, el]:u64 <- R30 -00000035: R31 := #0 -0000003b: R29 := R31 -00000042: R29 := mem[R31, el]:u64 -00000047: R30 := mem[R31 + 8, el]:u64 -0000004b: R31 := R31 + 0x10 -00000050: call R30 with noreturn - -00000593: sub _init(_init_result) -000005c7: _init_result :: out u32 = low:32[R0] - -000004e7: -000004ed: #6 := R31 - 0x10 -000004f3: mem := mem with [#6, el]:u64 <- R29 -000004f9: mem := mem with [#6 + 8, el]:u64 <- R30 -000004fd: R31 := #6 -00000503: R29 := R31 -00000508: R30 := 0x590 -0000050a: call @call_weak_fn with return %0000050c - -0000050c: -00000511: R29 := mem[R31, el]:u64 -00000516: R30 := mem[R31 + 8, el]:u64 -0000051a: R31 := R31 + 0x10 -0000051f: call R30 with noreturn - -00000594: sub _start(_start_result) -000005c8: _start_result :: out u32 = low:32[R0] - -00000184: -00000189: R29 := 0 -0000018e: R30 := 0 -00000194: R5 := R0 -0000019b: R1 := mem[R31, el]:u64 -000001a1: R2 := R31 + 8 -000001a7: R6 := R31 -000001ac: R0 := 0x10000 -000001b3: R0 := mem[R0 + 0xFD8, el]:u64 -000001b8: R3 := 0 -000001bd: R4 := 0 -000001c2: R30 := 0x630 -000001c5: call @__libc_start_main with return %000001c7 - -000001c7: -000001ca: R30 := 0x634 -000001cd: call @abort with return %000005b7 - -000005b7: -000005b8: call @call_weak_fn with noreturn - -00000597: sub abort() - - -000001cb: -00000466: R16 := 0x11000 -0000046d: R17 := mem[R16 + 0x18, el]:u64 -00000473: R16 := R16 + 0x18 -00000478: call R17 with noreturn - -00000598: sub call_weak_fn(call_weak_fn_result) -000005c9: call_weak_fn_result :: out u32 = low:32[R0] - -000001cf: -000001d2: R0 := 0x10000 -000001d9: R0 := mem[R0 + 0xFD0, el]:u64 -000001df: when R0 = 0 goto %000001dd -000005b9: goto %00000382 - -000001dd: -000001e5: call R30 with noreturn - -00000382: -00000385: goto @__gmon_start__ - -00000383: -00000450: R16 := 0x11000 -00000457: R17 := mem[R16 + 0x10, el]:u64 -0000045d: R16 := R16 + 0x10 -00000462: call R17 with noreturn - -0000059a: sub deregister_tm_clones(deregister_tm_clones_result) -000005ca: deregister_tm_clones_result :: out u32 = low:32[R0] - -000001eb: -000001ee: R0 := 0x11000 -000001f4: R0 := R0 + 0x30 -000001f9: R1 := 0x11000 -000001ff: R1 := R1 + 0x30 -00000205: #1 := ~R0 -0000020a: #2 := R1 + ~R0 -00000210: VF := extend:65[#2 + 1] <> extend:65[R1] + extend:65[#1] + 1 -00000216: CF := pad:65[#2 + 1] <> pad:65[R1] + pad:65[#1] + 1 -0000021a: ZF := #2 + 1 = 0 -0000021e: NF := 63:63[#2 + 1] -00000224: when ZF goto %00000222 -000005ba: goto %00000364 - -00000364: -00000367: R1 := 0x10000 -0000036e: R1 := mem[R1 + 0xFC0, el]:u64 -00000373: when R1 = 0 goto %00000222 -000005bb: goto %00000377 - -00000222: -0000022a: call R30 with noreturn - -00000377: -0000037b: R16 := R1 -00000380: call R16 with noreturn - -0000059d: sub frame_dummy(frame_dummy_result) -000005cb: frame_dummy_result :: out u32 = low:32[R0] - -000002c2: -000002c4: call @register_tm_clones with noreturn - -0000059e: sub main(main_argc, main_argv, main_result) -000005cc: main_argc :: in u32 = low:32[R0] -000005cd: main_argv :: in out u64 = R1 -000005ce: main_result :: out u32 = low:32[R0] - -000002c6: -000002c9: R8 := 0x11000 -000002ce: R9 := 0x11000 -000002d5: R8 := pad:64[mem[R8 + 0x34, el]:u32] -000002dc: R9 := pad:64[mem[R9 + 0x38, el]:u32] -000002e2: #4 := 31:0[R8] - 1 -000002e7: VF := extend:33[#4 + 1] <> extend:33[31:0[R8]] + 0 -000002ec: CF := pad:33[#4 + 1] <> pad:33[31:0[R8]] - 0x100000000 -000002f0: ZF := #4 + 1 = 0 -000002f4: NF := 31:31[#4 + 1] -00000301: when ZF goto %000002fa -00000302: goto %000002fd - -000002fd: -000002fe: R0 := 0 -00000304: goto %00000300 - -000002fa: -000002fb: R0 := pad:64[31:0[R9]] -00000303: goto %00000300 - -00000300: -00000309: call R30 with noreturn - -0000059f: sub register_tm_clones(register_tm_clones_result) -000005cf: register_tm_clones_result :: out u32 = low:32[R0] - -0000022c: -0000022f: R0 := 0x11000 -00000235: R0 := R0 + 0x30 -0000023a: R1 := 0x11000 -00000240: R1 := R1 + 0x30 -00000247: R1 := R1 + ~R0 + 1 -0000024d: R2 := 0.63:63[R1] -00000254: R1 := R2 + (R1 ~>> 3) -0000025a: R1 := extend:64[63:1[R1]] -00000260: when R1 = 0 goto %0000025e -000005bc: goto %00000346 - -00000346: -00000349: R2 := 0x10000 -00000350: R2 := mem[R2 + 0xFE0, el]:u64 -00000355: when R2 = 0 goto %0000025e -000005bd: goto %00000359 - -0000025e: -00000266: call R30 with noreturn - -00000359: -0000035d: R16 := R2 -00000362: call R16 with noreturn diff --git a/src/test/correct/basic_lock_security_read/clang_O2/basic_lock_security_read.expected b/src/test/correct/basic_lock_security_read/clang_O2/basic_lock_security_read.expected index c08bd7095..df2de2055 100644 --- a/src/test/correct/basic_lock_security_read/clang_O2/basic_lock_security_read.expected +++ b/src/test/correct/basic_lock_security_read/clang_O2/basic_lock_security_read.expected @@ -15,24 +15,24 @@ var {:extern} VF: bv1; var {:extern} ZF: bv1; var {:extern} mem: [bv64]bv8; const {:extern} $x_addr: bv64; -axiom ($x_addr == 69688bv64); +axiom ($x_addr == 131096bv64); const {:extern} $z_addr: bv64; -axiom ($z_addr == 69684bv64); +axiom ($z_addr == 131092bv64); function {:extern} L(mem$in: [bv64]bv8, index: bv64) returns (bool) { (if (index == $x_addr) then (memory_load32_le(mem$in, $z_addr) == 0bv32) else (if (index == $z_addr) then true else false)) } -function {:extern} {:bvbuiltin "bvadd"} bvadd32(bv32, bv32) returns (bv32); -function {:extern} {:bvbuiltin "bvadd"} bvadd33(bv33, bv33) returns (bv33); function {:extern} {:bvbuiltin "bvadd"} bvadd64(bv64, bv64) returns (bv64); function {:extern} {:bvbuiltin "bvcomp"} bvcomp1(bv1, bv1) returns (bv1); function {:extern} {:bvbuiltin "bvcomp"} bvcomp32(bv32, bv32) returns (bv1); -function {:extern} {:bvbuiltin "bvcomp"} bvcomp33(bv33, bv33) returns (bv1); -function {:extern} {:bvbuiltin "bvnot"} bvnot1(bv1) returns (bv1); function {:extern} gamma_load32(gammaMap: [bv64]bool, index: bv64) returns (bool) { (gammaMap[bvadd64(index, 3bv64)] && (gammaMap[bvadd64(index, 2bv64)] && (gammaMap[bvadd64(index, 1bv64)] && gammaMap[index]))) } +function {:extern} gamma_load64(gammaMap: [bv64]bool, index: bv64) returns (bool) { + (gammaMap[bvadd64(index, 7bv64)] && (gammaMap[bvadd64(index, 6bv64)] && (gammaMap[bvadd64(index, 5bv64)] && (gammaMap[bvadd64(index, 4bv64)] && (gammaMap[bvadd64(index, 3bv64)] && (gammaMap[bvadd64(index, 2bv64)] && (gammaMap[bvadd64(index, 1bv64)] && gammaMap[index]))))))) +} + function {:extern} memory_load32_le(memory: [bv64]bv8, index: bv64) returns (bv32) { (memory[bvadd64(index, 3bv64)] ++ (memory[bvadd64(index, 2bv64)] ++ (memory[bvadd64(index, 1bv64)] ++ memory[index]))) } @@ -41,18 +41,18 @@ function {:extern} memory_load64_le(memory: [bv64]bv8, index: bv64) returns (bv6 (memory[bvadd64(index, 7bv64)] ++ (memory[bvadd64(index, 6bv64)] ++ (memory[bvadd64(index, 5bv64)] ++ (memory[bvadd64(index, 4bv64)] ++ (memory[bvadd64(index, 3bv64)] ++ (memory[bvadd64(index, 2bv64)] ++ (memory[bvadd64(index, 1bv64)] ++ memory[index]))))))) } -function {:extern} {:bvbuiltin "sign_extend 1"} sign_extend1_32(bv32) returns (bv33); -function {:extern} {:bvbuiltin "zero_extend 1"} zero_extend1_32(bv32) returns (bv33); function {:extern} {:bvbuiltin "zero_extend 32"} zero_extend32_32(bv32) returns (bv64); procedure {:extern} rely(); modifies Gamma_mem, mem; ensures (forall i: bv64 :: (((mem[i] == old(mem[i])) ==> (Gamma_mem[i] == old(Gamma_mem[i]))))); ensures ((old(memory_load32_le(mem, $z_addr)) == 0bv32) ==> ((memory_load32_le(mem, $x_addr) == old(memory_load32_le(mem, $x_addr))) && (memory_load32_le(mem, $z_addr) == old(memory_load32_le(mem, $z_addr))))); - free ensures (memory_load32_le(mem, 1860bv64) == 131073bv32); - free ensures (memory_load64_le(mem, 69064bv64) == 1808bv64); - free ensures (memory_load64_le(mem, 69072bv64) == 1728bv64); - free ensures (memory_load64_le(mem, 69592bv64) == 1812bv64); - free ensures (memory_load64_le(mem, 69672bv64) == 69672bv64); + free ensures (memory_load32_le(mem, 2316bv64) == 131073bv32); + free ensures (memory_load64_le(mem, 130424bv64) == 2256bv64); + free ensures (memory_load64_le(mem, 130432bv64) == 2176bv64); + free ensures (memory_load64_le(mem, 131032bv64) == 131092bv64); + free ensures (memory_load64_le(mem, 131040bv64) == 131096bv64); + free ensures (memory_load64_le(mem, 131056bv64) == 2260bv64); + free ensures (memory_load64_le(mem, 131080bv64) == 131080bv64); procedure {:extern} rely_transitive(); modifies Gamma_mem, mem; @@ -79,67 +79,78 @@ implementation {:extern} guarantee_reflexive() assert ((memory_load32_le(mem, $z_addr) == memory_load32_le(mem, $z_addr)) && (memory_load32_le(mem, $x_addr) == memory_load32_le(mem, $x_addr))); } -procedure main_1812(); +procedure main(); modifies CF, Gamma_CF, Gamma_NF, Gamma_R0, Gamma_R8, Gamma_R9, Gamma_VF, Gamma_ZF, Gamma_mem, NF, R0, R8, R9, VF, ZF, mem; - free requires (memory_load64_le(mem, 69664bv64) == 0bv64); - free requires (memory_load64_le(mem, 69672bv64) == 69672bv64); - free requires (memory_load32_le(mem, 1860bv64) == 131073bv32); - free requires (memory_load64_le(mem, 69064bv64) == 1808bv64); - free requires (memory_load64_le(mem, 69072bv64) == 1728bv64); - free requires (memory_load64_le(mem, 69592bv64) == 1812bv64); - free requires (memory_load64_le(mem, 69672bv64) == 69672bv64); - free ensures (memory_load32_le(mem, 1860bv64) == 131073bv32); - free ensures (memory_load64_le(mem, 69064bv64) == 1808bv64); - free ensures (memory_load64_le(mem, 69072bv64) == 1728bv64); - free ensures (memory_load64_le(mem, 69592bv64) == 1812bv64); - free ensures (memory_load64_le(mem, 69672bv64) == 69672bv64); + free requires (memory_load64_le(mem, 131072bv64) == 0bv64); + free requires (memory_load64_le(mem, 131080bv64) == 131080bv64); + free requires (memory_load32_le(mem, 2316bv64) == 131073bv32); + free requires (memory_load64_le(mem, 130424bv64) == 2256bv64); + free requires (memory_load64_le(mem, 130432bv64) == 2176bv64); + free requires (memory_load64_le(mem, 131032bv64) == 131092bv64); + free requires (memory_load64_le(mem, 131040bv64) == 131096bv64); + free requires (memory_load64_le(mem, 131056bv64) == 2260bv64); + free requires (memory_load64_le(mem, 131080bv64) == 131080bv64); + free ensures (memory_load32_le(mem, 2316bv64) == 131073bv32); + free ensures (memory_load64_le(mem, 130424bv64) == 2256bv64); + free ensures (memory_load64_le(mem, 130432bv64) == 2176bv64); + free ensures (memory_load64_le(mem, 131032bv64) == 131092bv64); + free ensures (memory_load64_le(mem, 131040bv64) == 131096bv64); + free ensures (memory_load64_le(mem, 131056bv64) == 2260bv64); + free ensures (memory_load64_le(mem, 131080bv64) == 131080bv64); -implementation main_1812() +implementation main() { - var #4: bv32; - var Gamma_#4: bool; - var Gamma_load18: bool; - var Gamma_load19: bool; - var load18: bv32; - var load19: bv32; + var $load$18: bv64; + var $load$19: bv64; + var $load$20: bv32; + var $load$21: bv32; + var Gamma_$load$18: bool; + var Gamma_$load$19: bool; + var Gamma_$load$20: bool; + var Gamma_$load$21: bool; lmain: assume {:captureState "lmain"} true; - R8, Gamma_R8 := 69632bv64, true; - R9, Gamma_R9 := 69632bv64, true; + R8, Gamma_R8 := 126976bv64, true; + R9, Gamma_R9 := 126976bv64, true; + call rely(); + $load$18, Gamma_$load$18 := memory_load64_le(mem, bvadd64(R8, 4056bv64)), (gamma_load64(Gamma_mem, bvadd64(R8, 4056bv64)) || L(mem, bvadd64(R8, 4056bv64))); + R8, Gamma_R8 := $load$18, Gamma_$load$18; + call rely(); + $load$19, Gamma_$load$19 := memory_load64_le(mem, bvadd64(R9, 4064bv64)), (gamma_load64(Gamma_mem, bvadd64(R9, 4064bv64)) || L(mem, bvadd64(R9, 4064bv64))); + R9, Gamma_R9 := $load$19, Gamma_$load$19; call rely(); - load18, Gamma_load18 := memory_load32_le(mem, bvadd64(R8, 52bv64)), (gamma_load32(Gamma_mem, bvadd64(R8, 52bv64)) || L(mem, bvadd64(R8, 52bv64))); - R8, Gamma_R8 := zero_extend32_32(load18), Gamma_load18; + $load$20, Gamma_$load$20 := memory_load32_le(mem, R8), (gamma_load32(Gamma_mem, R8) || L(mem, R8)); + R8, Gamma_R8 := zero_extend32_32($load$20), Gamma_$load$20; call rely(); - load19, Gamma_load19 := memory_load32_le(mem, bvadd64(R9, 56bv64)), (gamma_load32(Gamma_mem, bvadd64(R9, 56bv64)) || L(mem, bvadd64(R9, 56bv64))); - R9, Gamma_R9 := zero_extend32_32(load19), Gamma_load19; - #4, Gamma_#4 := bvadd32(R8[32:0], 4294967295bv32), Gamma_R8; - VF, Gamma_VF := bvnot1(bvcomp33(sign_extend1_32(bvadd32(#4, 1bv32)), bvadd33(sign_extend1_32(R8[32:0]), 0bv33))), (Gamma_R8 && Gamma_#4); - CF, Gamma_CF := bvnot1(bvcomp33(zero_extend1_32(bvadd32(#4, 1bv32)), bvadd33(zero_extend1_32(R8[32:0]), 4294967296bv33))), (Gamma_R8 && Gamma_#4); - ZF, Gamma_ZF := bvcomp32(bvadd32(#4, 1bv32), 0bv32), Gamma_#4; - NF, Gamma_NF := bvadd32(#4, 1bv32)[32:31], Gamma_#4; + $load$21, Gamma_$load$21 := memory_load32_le(mem, R9), (gamma_load32(Gamma_mem, R9) || L(mem, R9)); + R9, Gamma_R9 := zero_extend32_32($load$21), Gamma_$load$21; + VF, Gamma_VF := 0bv1, true; + CF, Gamma_CF := 1bv1, true; + ZF, Gamma_ZF := bvcomp32(R8[32:0], 0bv32), Gamma_R8; + NF, Gamma_NF := R8[32:31], Gamma_R8; assert Gamma_ZF; - goto lmain_goto_l000002fa, lmain_goto_l000002fd; - lmain_goto_l000002fd: - assume {:captureState "lmain_goto_l000002fd"} true; - assume (bvcomp1(ZF, 1bv1) == 0bv1); + goto lmain_goto_l000002a8, lmain_goto_l000002b0; + l000002b0: + assume {:captureState "l000002b0"} true; R0, Gamma_R0 := 0bv64, true; - goto l000002fd; - l000002fd: - assume {:captureState "l000002fd"} true; - goto l00000300; - lmain_goto_l000002fa: - assume {:captureState "lmain_goto_l000002fa"} true; - assume (bvcomp1(ZF, 1bv1) != 0bv1); + goto l000002bc; + l000002a8: + assume {:captureState "l000002a8"} true; R0, Gamma_R0 := zero_extend32_32(R9[32:0]), Gamma_R9; - goto l000002fa; - l000002fa: - assume {:captureState "l000002fa"} true; - goto l00000300; - l00000300: - assume {:captureState "l00000300"} true; - goto main_1812_basil_return; - main_1812_basil_return: - assume {:captureState "main_1812_basil_return"} true; + goto l000002bc; + l000002bc: + assume {:captureState "l000002bc"} true; + goto main_basil_return; + lmain_goto_l000002a8: + assume {:captureState "lmain_goto_l000002a8"} true; + assume (bvcomp1(ZF, 1bv1) != 0bv1); + goto l000002a8; + lmain_goto_l000002b0: + assume {:captureState "lmain_goto_l000002b0"} true; + assume (bvcomp1(ZF, 1bv1) == 0bv1); + goto l000002b0; + main_basil_return: + assume {:captureState "main_basil_return"} true; return; } diff --git a/src/test/correct/basic_lock_security_read/clang_O2/basic_lock_security_read.gts b/src/test/correct/basic_lock_security_read/clang_O2/basic_lock_security_read.gts deleted file mode 100644 index e878c5e2c..000000000 Binary files a/src/test/correct/basic_lock_security_read/clang_O2/basic_lock_security_read.gts and /dev/null differ diff --git a/src/test/correct/basic_lock_security_read/clang_O2/basic_lock_security_read.md5sum b/src/test/correct/basic_lock_security_read/clang_O2/basic_lock_security_read.md5sum new file mode 100644 index 000000000..3c50364e8 --- /dev/null +++ b/src/test/correct/basic_lock_security_read/clang_O2/basic_lock_security_read.md5sum @@ -0,0 +1,5 @@ +94a3a048251cee19de3605d47c526ae8 correct/basic_lock_security_read/clang_O2/a.out +cbe29e704e2e15af12c09372f158b022 correct/basic_lock_security_read/clang_O2/basic_lock_security_read.adt +7c35fdb8ed5a6b1f96c131c6d6d8f2d2 correct/basic_lock_security_read/clang_O2/basic_lock_security_read.bir +2dd41cf4c31dda5917286c0f301ece66 correct/basic_lock_security_read/clang_O2/basic_lock_security_read.relf +1cf4a6e6337ef1b8b1e94612f295a259 correct/basic_lock_security_read/clang_O2/basic_lock_security_read.gts diff --git a/src/test/correct/basic_lock_security_read/clang_O2/basic_lock_security_read.relf b/src/test/correct/basic_lock_security_read/clang_O2/basic_lock_security_read.relf deleted file mode 100644 index 5a2afcce9..000000000 --- a/src/test/correct/basic_lock_security_read/clang_O2/basic_lock_security_read.relf +++ /dev/null @@ -1,124 +0,0 @@ - -Relocation section '.rela.dyn' at offset 0x460 contains 8 entries: - Offset Info Type Symbol's Value Symbol's Name + Addend -0000000000010dc8 0000000000000403 R_AARCH64_RELATIVE 710 -0000000000010dd0 0000000000000403 R_AARCH64_RELATIVE 6c0 -0000000000010fd8 0000000000000403 R_AARCH64_RELATIVE 714 -0000000000011028 0000000000000403 R_AARCH64_RELATIVE 11028 -0000000000010fc0 0000000400000401 R_AARCH64_GLOB_DAT 0000000000000000 _ITM_deregisterTMCloneTable + 0 -0000000000010fc8 0000000500000401 R_AARCH64_GLOB_DAT 0000000000000000 __cxa_finalize@GLIBC_2.17 + 0 -0000000000010fd0 0000000600000401 R_AARCH64_GLOB_DAT 0000000000000000 __gmon_start__ + 0 -0000000000010fe0 0000000800000401 R_AARCH64_GLOB_DAT 0000000000000000 _ITM_registerTMCloneTable + 0 - -Relocation section '.rela.plt' at offset 0x520 contains 4 entries: - Offset Info Type Symbol's Value Symbol's Name + Addend -0000000000011000 0000000300000402 R_AARCH64_JUMP_SLOT 0000000000000000 __libc_start_main@GLIBC_2.34 + 0 -0000000000011008 0000000500000402 R_AARCH64_JUMP_SLOT 0000000000000000 __cxa_finalize@GLIBC_2.17 + 0 -0000000000011010 0000000600000402 R_AARCH64_JUMP_SLOT 0000000000000000 __gmon_start__ + 0 -0000000000011018 0000000700000402 R_AARCH64_JUMP_SLOT 0000000000000000 abort@GLIBC_2.17 + 0 - -Symbol table '.dynsym' contains 9 entries: - Num: Value Size Type Bind Vis Ndx Name - 0: 0000000000000000 0 NOTYPE LOCAL DEFAULT UND - 1: 0000000000000580 0 SECTION LOCAL DEFAULT 11 .init - 2: 0000000000011020 0 SECTION LOCAL DEFAULT 23 .data - 3: 0000000000000000 0 FUNC GLOBAL DEFAULT UND __libc_start_main@GLIBC_2.34 (2) - 4: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_deregisterTMCloneTable - 5: 0000000000000000 0 FUNC WEAK DEFAULT UND __cxa_finalize@GLIBC_2.17 (3) - 6: 0000000000000000 0 NOTYPE WEAK DEFAULT UND __gmon_start__ - 7: 0000000000000000 0 FUNC GLOBAL DEFAULT UND abort@GLIBC_2.17 (3) - 8: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_registerTMCloneTable - -Symbol table '.symtab' contains 91 entries: - Num: Value Size Type Bind Vis Ndx Name - 0: 0000000000000000 0 NOTYPE LOCAL DEFAULT UND - 1: 0000000000000238 0 SECTION LOCAL DEFAULT 1 .interp - 2: 0000000000000254 0 SECTION LOCAL DEFAULT 2 .note.gnu.build-id - 3: 0000000000000278 0 SECTION LOCAL DEFAULT 3 .note.ABI-tag - 4: 0000000000000298 0 SECTION LOCAL DEFAULT 4 .gnu.hash - 5: 00000000000002b8 0 SECTION LOCAL DEFAULT 5 .dynsym - 6: 0000000000000390 0 SECTION LOCAL DEFAULT 6 .dynstr - 7: 000000000000041e 0 SECTION LOCAL DEFAULT 7 .gnu.version - 8: 0000000000000430 0 SECTION LOCAL DEFAULT 8 .gnu.version_r - 9: 0000000000000460 0 SECTION LOCAL DEFAULT 9 .rela.dyn - 10: 0000000000000520 0 SECTION LOCAL DEFAULT 10 .rela.plt - 11: 0000000000000580 0 SECTION LOCAL DEFAULT 11 .init - 12: 00000000000005a0 0 SECTION LOCAL DEFAULT 12 .plt - 13: 0000000000000600 0 SECTION LOCAL DEFAULT 13 .text - 14: 0000000000000730 0 SECTION LOCAL DEFAULT 14 .fini - 15: 0000000000000744 0 SECTION LOCAL DEFAULT 15 .rodata - 16: 0000000000000748 0 SECTION LOCAL DEFAULT 16 .eh_frame_hdr - 17: 0000000000000788 0 SECTION LOCAL DEFAULT 17 .eh_frame - 18: 0000000000010dc8 0 SECTION LOCAL DEFAULT 18 .init_array - 19: 0000000000010dd0 0 SECTION LOCAL DEFAULT 19 .fini_array - 20: 0000000000010dd8 0 SECTION LOCAL DEFAULT 20 .dynamic - 21: 0000000000010fb8 0 SECTION LOCAL DEFAULT 21 .got - 22: 0000000000010fe8 0 SECTION LOCAL DEFAULT 22 .got.plt - 23: 0000000000011020 0 SECTION LOCAL DEFAULT 23 .data - 24: 0000000000011030 0 SECTION LOCAL DEFAULT 24 .bss - 25: 0000000000000000 0 SECTION LOCAL DEFAULT 25 .comment - 26: 0000000000000000 0 FILE LOCAL DEFAULT ABS Scrt1.o - 27: 0000000000000278 0 NOTYPE LOCAL DEFAULT 3 $d - 28: 0000000000000278 32 OBJECT LOCAL DEFAULT 3 __abi_tag - 29: 0000000000000600 0 NOTYPE LOCAL DEFAULT 13 $x - 30: 000000000000079c 0 NOTYPE LOCAL DEFAULT 17 $d - 31: 0000000000000744 0 NOTYPE LOCAL DEFAULT 15 $d - 32: 0000000000000000 0 FILE LOCAL DEFAULT ABS crti.o - 33: 0000000000000634 0 NOTYPE LOCAL DEFAULT 13 $x - 34: 0000000000000634 20 FUNC LOCAL DEFAULT 13 call_weak_fn - 35: 0000000000000580 0 NOTYPE LOCAL DEFAULT 11 $x - 36: 0000000000000730 0 NOTYPE LOCAL DEFAULT 14 $x - 37: 0000000000000000 0 FILE LOCAL DEFAULT ABS crtn.o - 38: 0000000000000590 0 NOTYPE LOCAL DEFAULT 11 $x - 39: 000000000000073c 0 NOTYPE LOCAL DEFAULT 14 $x - 40: 0000000000000000 0 FILE LOCAL DEFAULT ABS crtstuff.c - 41: 0000000000000650 0 NOTYPE LOCAL DEFAULT 13 $x - 42: 0000000000000650 0 FUNC LOCAL DEFAULT 13 deregister_tm_clones - 43: 0000000000000680 0 FUNC LOCAL DEFAULT 13 register_tm_clones - 44: 0000000000011028 0 NOTYPE LOCAL DEFAULT 23 $d - 45: 00000000000006c0 0 FUNC LOCAL DEFAULT 13 __do_global_dtors_aux - 46: 0000000000011030 1 OBJECT LOCAL DEFAULT 24 completed.0 - 47: 0000000000010dd0 0 NOTYPE LOCAL DEFAULT 19 $d - 48: 0000000000010dd0 0 OBJECT LOCAL DEFAULT 19 __do_global_dtors_aux_fini_array_entry - 49: 0000000000000710 0 FUNC LOCAL DEFAULT 13 frame_dummy - 50: 0000000000010dc8 0 NOTYPE LOCAL DEFAULT 18 $d - 51: 0000000000010dc8 0 OBJECT LOCAL DEFAULT 18 __frame_dummy_init_array_entry - 52: 00000000000007b0 0 NOTYPE LOCAL DEFAULT 17 $d - 53: 0000000000011030 0 NOTYPE LOCAL DEFAULT 24 $d - 54: 0000000000000000 0 FILE LOCAL DEFAULT ABS basic_lock_security_read.c - 55: 0000000000000714 0 NOTYPE LOCAL DEFAULT 13 $x.0 - 56: 0000000000011034 0 NOTYPE LOCAL DEFAULT 24 $d.1 - 57: 000000000000002a 0 NOTYPE LOCAL DEFAULT 25 $d.2 - 58: 0000000000000810 0 NOTYPE LOCAL DEFAULT 17 $d.3 - 59: 0000000000000000 0 FILE LOCAL DEFAULT ABS crtstuff.c - 60: 0000000000000838 0 NOTYPE LOCAL DEFAULT 17 $d - 61: 0000000000000838 0 OBJECT LOCAL DEFAULT 17 __FRAME_END__ - 62: 0000000000000000 0 FILE LOCAL DEFAULT ABS - 63: 0000000000010dd8 0 OBJECT LOCAL DEFAULT ABS _DYNAMIC - 64: 0000000000000748 0 NOTYPE LOCAL DEFAULT 16 __GNU_EH_FRAME_HDR - 65: 0000000000010fb8 0 OBJECT LOCAL DEFAULT ABS _GLOBAL_OFFSET_TABLE_ - 66: 00000000000005a0 0 NOTYPE LOCAL DEFAULT 12 $x - 67: 0000000000000000 0 FUNC GLOBAL DEFAULT UND __libc_start_main@GLIBC_2.34 - 68: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_deregisterTMCloneTable - 69: 0000000000011020 0 NOTYPE WEAK DEFAULT 23 data_start - 70: 0000000000011030 0 NOTYPE GLOBAL DEFAULT 24 __bss_start__ - 71: 0000000000000000 0 FUNC WEAK DEFAULT UND __cxa_finalize@GLIBC_2.17 - 72: 0000000000011040 0 NOTYPE GLOBAL DEFAULT 24 _bss_end__ - 73: 0000000000011030 0 NOTYPE GLOBAL DEFAULT 23 _edata - 74: 0000000000011034 4 OBJECT GLOBAL DEFAULT 24 z - 75: 0000000000011038 4 OBJECT GLOBAL DEFAULT 24 x - 76: 0000000000000730 0 FUNC GLOBAL HIDDEN 14 _fini - 77: 0000000000011040 0 NOTYPE GLOBAL DEFAULT 24 __bss_end__ - 78: 0000000000011020 0 NOTYPE GLOBAL DEFAULT 23 __data_start - 79: 0000000000000000 0 NOTYPE WEAK DEFAULT UND __gmon_start__ - 80: 0000000000011028 0 OBJECT GLOBAL HIDDEN 23 __dso_handle - 81: 0000000000000000 0 FUNC GLOBAL DEFAULT UND abort@GLIBC_2.17 - 82: 0000000000000744 4 OBJECT GLOBAL DEFAULT 15 _IO_stdin_used - 83: 0000000000011040 0 NOTYPE GLOBAL DEFAULT 24 _end - 84: 0000000000000600 52 FUNC GLOBAL DEFAULT 13 _start - 85: 0000000000011040 0 NOTYPE GLOBAL DEFAULT 24 __end__ - 86: 0000000000011030 0 NOTYPE GLOBAL DEFAULT 24 __bss_start - 87: 0000000000000714 28 FUNC GLOBAL DEFAULT 13 main - 88: 0000000000011030 0 OBJECT GLOBAL HIDDEN 23 __TMC_END__ - 89: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_registerTMCloneTable - 90: 0000000000000580 0 FUNC GLOBAL HIDDEN 11 _init diff --git a/src/test/correct/basic_lock_security_read/clang_O2/basic_lock_security_read_gtirb.expected b/src/test/correct/basic_lock_security_read/clang_O2/basic_lock_security_read_gtirb.expected index b9028cde7..eace5b7bf 100644 --- a/src/test/correct/basic_lock_security_read/clang_O2/basic_lock_security_read_gtirb.expected +++ b/src/test/correct/basic_lock_security_read/clang_O2/basic_lock_security_read_gtirb.expected @@ -15,23 +15,23 @@ var {:extern} VF: bv1; var {:extern} ZF: bv1; var {:extern} mem: [bv64]bv8; const {:extern} $x_addr: bv64; -axiom ($x_addr == 69688bv64); +axiom ($x_addr == 131096bv64); const {:extern} $z_addr: bv64; -axiom ($z_addr == 69684bv64); +axiom ($z_addr == 131092bv64); function {:extern} L(mem$in: [bv64]bv8, index: bv64) returns (bool) { (if (index == $x_addr) then (memory_load32_le(mem$in, $z_addr) == 0bv32) else (if (index == $z_addr) then true else false)) } -function {:extern} {:bvbuiltin "bvadd"} bvadd32(bv32, bv32) returns (bv32); -function {:extern} {:bvbuiltin "bvadd"} bvadd33(bv33, bv33) returns (bv33); function {:extern} {:bvbuiltin "bvadd"} bvadd64(bv64, bv64) returns (bv64); function {:extern} {:bvbuiltin "bvcomp"} bvcomp32(bv32, bv32) returns (bv1); -function {:extern} {:bvbuiltin "bvcomp"} bvcomp33(bv33, bv33) returns (bv1); -function {:extern} {:bvbuiltin "bvnot"} bvnot1(bv1) returns (bv1); function {:extern} gamma_load32(gammaMap: [bv64]bool, index: bv64) returns (bool) { (gammaMap[bvadd64(index, 3bv64)] && (gammaMap[bvadd64(index, 2bv64)] && (gammaMap[bvadd64(index, 1bv64)] && gammaMap[index]))) } +function {:extern} gamma_load64(gammaMap: [bv64]bool, index: bv64) returns (bool) { + (gammaMap[bvadd64(index, 7bv64)] && (gammaMap[bvadd64(index, 6bv64)] && (gammaMap[bvadd64(index, 5bv64)] && (gammaMap[bvadd64(index, 4bv64)] && (gammaMap[bvadd64(index, 3bv64)] && (gammaMap[bvadd64(index, 2bv64)] && (gammaMap[bvadd64(index, 1bv64)] && gammaMap[index]))))))) +} + function {:extern} memory_load32_le(memory: [bv64]bv8, index: bv64) returns (bv32) { (memory[bvadd64(index, 3bv64)] ++ (memory[bvadd64(index, 2bv64)] ++ (memory[bvadd64(index, 1bv64)] ++ memory[index]))) } @@ -40,17 +40,18 @@ function {:extern} memory_load64_le(memory: [bv64]bv8, index: bv64) returns (bv6 (memory[bvadd64(index, 7bv64)] ++ (memory[bvadd64(index, 6bv64)] ++ (memory[bvadd64(index, 5bv64)] ++ (memory[bvadd64(index, 4bv64)] ++ (memory[bvadd64(index, 3bv64)] ++ (memory[bvadd64(index, 2bv64)] ++ (memory[bvadd64(index, 1bv64)] ++ memory[index]))))))) } -function {:extern} {:bvbuiltin "zero_extend 1"} zero_extend1_32(bv32) returns (bv33); function {:extern} {:bvbuiltin "zero_extend 32"} zero_extend32_32(bv32) returns (bv64); procedure {:extern} rely(); modifies Gamma_mem, mem; ensures (forall i: bv64 :: (((mem[i] == old(mem[i])) ==> (Gamma_mem[i] == old(Gamma_mem[i]))))); ensures ((old(memory_load32_le(mem, $z_addr)) == 0bv32) ==> ((memory_load32_le(mem, $x_addr) == old(memory_load32_le(mem, $x_addr))) && (memory_load32_le(mem, $z_addr) == old(memory_load32_le(mem, $z_addr))))); - free ensures (memory_load32_le(mem, 1860bv64) == 131073bv32); - free ensures (memory_load64_le(mem, 69064bv64) == 1808bv64); - free ensures (memory_load64_le(mem, 69072bv64) == 1728bv64); - free ensures (memory_load64_le(mem, 69592bv64) == 1812bv64); - free ensures (memory_load64_le(mem, 69672bv64) == 69672bv64); + free ensures (memory_load32_le(mem, 2316bv64) == 131073bv32); + free ensures (memory_load64_le(mem, 130424bv64) == 2256bv64); + free ensures (memory_load64_le(mem, 130432bv64) == 2176bv64); + free ensures (memory_load64_le(mem, 131032bv64) == 131092bv64); + free ensures (memory_load64_le(mem, 131040bv64) == 131096bv64); + free ensures (memory_load64_le(mem, 131056bv64) == 2260bv64); + free ensures (memory_load64_le(mem, 131080bv64) == 131080bv64); procedure {:extern} rely_transitive(); modifies Gamma_mem, mem; @@ -77,58 +78,69 @@ implementation {:extern} guarantee_reflexive() assert ((memory_load32_le(mem, $z_addr) == memory_load32_le(mem, $z_addr)) && (memory_load32_le(mem, $x_addr) == memory_load32_le(mem, $x_addr))); } -procedure main_1812(); +procedure main(); modifies CF, Gamma_CF, Gamma_NF, Gamma_R0, Gamma_R8, Gamma_R9, Gamma_VF, Gamma_ZF, Gamma_mem, NF, R0, R8, R9, VF, ZF, mem; - free requires (memory_load64_le(mem, 69664bv64) == 0bv64); - free requires (memory_load64_le(mem, 69672bv64) == 69672bv64); - free requires (memory_load32_le(mem, 1860bv64) == 131073bv32); - free requires (memory_load64_le(mem, 69064bv64) == 1808bv64); - free requires (memory_load64_le(mem, 69072bv64) == 1728bv64); - free requires (memory_load64_le(mem, 69592bv64) == 1812bv64); - free requires (memory_load64_le(mem, 69672bv64) == 69672bv64); - free ensures (memory_load32_le(mem, 1860bv64) == 131073bv32); - free ensures (memory_load64_le(mem, 69064bv64) == 1808bv64); - free ensures (memory_load64_le(mem, 69072bv64) == 1728bv64); - free ensures (memory_load64_le(mem, 69592bv64) == 1812bv64); - free ensures (memory_load64_le(mem, 69672bv64) == 69672bv64); + free requires (memory_load64_le(mem, 131072bv64) == 0bv64); + free requires (memory_load64_le(mem, 131080bv64) == 131080bv64); + free requires (memory_load32_le(mem, 2316bv64) == 131073bv32); + free requires (memory_load64_le(mem, 130424bv64) == 2256bv64); + free requires (memory_load64_le(mem, 130432bv64) == 2176bv64); + free requires (memory_load64_le(mem, 131032bv64) == 131092bv64); + free requires (memory_load64_le(mem, 131040bv64) == 131096bv64); + free requires (memory_load64_le(mem, 131056bv64) == 2260bv64); + free requires (memory_load64_le(mem, 131080bv64) == 131080bv64); + free ensures (memory_load32_le(mem, 2316bv64) == 131073bv32); + free ensures (memory_load64_le(mem, 130424bv64) == 2256bv64); + free ensures (memory_load64_le(mem, 130432bv64) == 2176bv64); + free ensures (memory_load64_le(mem, 131032bv64) == 131092bv64); + free ensures (memory_load64_le(mem, 131040bv64) == 131096bv64); + free ensures (memory_load64_le(mem, 131056bv64) == 2260bv64); + free ensures (memory_load64_le(mem, 131080bv64) == 131080bv64); -implementation main_1812() +implementation main() { - var Cse0__5_0_4: bv32; - var Gamma_Cse0__5_0_4: bool; - var Gamma_load18: bool; - var Gamma_load19: bool; - var load18: bv32; - var load19: bv32; - main_1812__0__pquulxeLTn6ZdHAVNHAErw: - assume {:captureState "main_1812__0__pquulxeLTn6ZdHAVNHAErw"} true; - R8, Gamma_R8 := 69632bv64, true; - R9, Gamma_R9 := 69632bv64, true; + var $load5: bv64; + var $load6: bv64; + var $load7: bv32; + var $load8: bv32; + var Gamma_$load5: bool; + var Gamma_$load6: bool; + var Gamma_$load7: bool; + var Gamma_$load8: bool; + $main$__0__$D9t2gNJrSmyMH3GAVRe3IQ: + assume {:captureState "$main$__0__$D9t2gNJrSmyMH3GAVRe3IQ"} true; + R8, Gamma_R8 := 126976bv64, true; + R9, Gamma_R9 := 126976bv64, true; + call rely(); + $load5, Gamma_$load5 := memory_load64_le(mem, bvadd64(R8, 4056bv64)), (gamma_load64(Gamma_mem, bvadd64(R8, 4056bv64)) || L(mem, bvadd64(R8, 4056bv64))); + R8, Gamma_R8 := $load5, Gamma_$load5; + call rely(); + $load6, Gamma_$load6 := memory_load64_le(mem, bvadd64(R9, 4064bv64)), (gamma_load64(Gamma_mem, bvadd64(R9, 4064bv64)) || L(mem, bvadd64(R9, 4064bv64))); + R9, Gamma_R9 := $load6, Gamma_$load6; call rely(); - load18, Gamma_load18 := memory_load32_le(mem, bvadd64(R8, 52bv64)), (gamma_load32(Gamma_mem, bvadd64(R8, 52bv64)) || L(mem, bvadd64(R8, 52bv64))); - R8, Gamma_R8 := zero_extend32_32(load18), Gamma_load18; + $load7, Gamma_$load7 := memory_load32_le(mem, R8), (gamma_load32(Gamma_mem, R8) || L(mem, R8)); + R8, Gamma_R8 := zero_extend32_32($load7), Gamma_$load7; call rely(); - load19, Gamma_load19 := memory_load32_le(mem, bvadd64(R9, 56bv64)), (gamma_load32(Gamma_mem, bvadd64(R9, 56bv64)) || L(mem, bvadd64(R9, 56bv64))); - R9, Gamma_R9 := zero_extend32_32(load19), Gamma_load19; - Cse0__5_0_4, Gamma_Cse0__5_0_4 := bvadd32(R8[32:0], 0bv32), Gamma_R8; - VF, Gamma_VF := bvnot1(bvcomp32(Cse0__5_0_4, Cse0__5_0_4)), Gamma_Cse0__5_0_4; - CF, Gamma_CF := bvnot1(bvcomp33(zero_extend1_32(Cse0__5_0_4), bvadd33(zero_extend1_32(R8[32:0]), 4294967296bv33))), (Gamma_R8 && Gamma_Cse0__5_0_4); - ZF, Gamma_ZF := bvcomp32(Cse0__5_0_4, 0bv32), Gamma_Cse0__5_0_4; - NF, Gamma_NF := Cse0__5_0_4[32:31], Gamma_Cse0__5_0_4; + $load8, Gamma_$load8 := memory_load32_le(mem, R9), (gamma_load32(Gamma_mem, R9) || L(mem, R9)); + R9, Gamma_R9 := zero_extend32_32($load8), Gamma_$load8; + VF, Gamma_VF := 0bv1, true; + CF, Gamma_CF := 1bv1, true; + ZF, Gamma_ZF := bvcomp32(R8[32:0], 0bv32), Gamma_R8; + NF, Gamma_NF := R8[32:31], Gamma_R8; assert Gamma_ZF; - goto main_1812__0__pquulxeLTn6ZdHAVNHAErw$__0, main_1812__0__pquulxeLTn6ZdHAVNHAErw$__1; - main_1812__0__pquulxeLTn6ZdHAVNHAErw$__1: - assume {:captureState "main_1812__0__pquulxeLTn6ZdHAVNHAErw$__1"} true; - assume (!(ZF == 1bv1)); - R0, Gamma_R0 := 0bv64, true; - goto main_1812_basil_return; - main_1812__0__pquulxeLTn6ZdHAVNHAErw$__0: - assume {:captureState "main_1812__0__pquulxeLTn6ZdHAVNHAErw$__0"} true; + goto $main$__0__$D9t2gNJrSmyMH3GAVRe3IQ$__0, $main$__0__$D9t2gNJrSmyMH3GAVRe3IQ$__1; + $main$__0__$D9t2gNJrSmyMH3GAVRe3IQ$__0: + assume {:captureState "$main$__0__$D9t2gNJrSmyMH3GAVRe3IQ$__0"} true; assume (ZF == 1bv1); R0, Gamma_R0 := zero_extend32_32(R9[32:0]), Gamma_R9; - goto main_1812_basil_return; - main_1812_basil_return: - assume {:captureState "main_1812_basil_return"} true; + goto main_basil_return; + $main$__0__$D9t2gNJrSmyMH3GAVRe3IQ$__1: + assume {:captureState "$main$__0__$D9t2gNJrSmyMH3GAVRe3IQ$__1"} true; + assume (!(ZF == 1bv1)); + R0, Gamma_R0 := 0bv64, true; + goto main_basil_return; + main_basil_return: + assume {:captureState "main_basil_return"} true; return; } diff --git a/src/test/correct/basic_lock_security_read/clang_pic/basic_lock_security_read.adt b/src/test/correct/basic_lock_security_read/clang_pic/basic_lock_security_read.adt deleted file mode 100644 index 14f4c8536..000000000 --- a/src/test/correct/basic_lock_security_read/clang_pic/basic_lock_security_read.adt +++ /dev/null @@ -1,563 +0,0 @@ -Project(Attrs([Attr("filename","\"clang_pic/basic_lock_security_read.out\""), -Attr("image-specification","(declare abi (name str))\n(declare arch (name str))\n(declare base-address (addr int))\n(declare bias (off int))\n(declare bits (size int))\n(declare code-region (addr int) (size int) (off int))\n(declare code-start (addr int))\n(declare entry-point (addr int))\n(declare external-reference (addr int) (name str))\n(declare format (name str))\n(declare is-executable (flag bool))\n(declare is-little-endian (flag bool))\n(declare llvm:base-address (addr int))\n(declare llvm:code-entry (name str) (off int) (size int))\n(declare llvm:coff-import-library (name str))\n(declare llvm:coff-virtual-section-header (name str) (addr int) (size int))\n(declare llvm:elf-program-header (name str) (off int) (size int))\n(declare llvm:elf-program-header-flags (name str) (ld bool) (r bool) \n (w bool) (x bool))\n(declare llvm:elf-virtual-program-header (name str) (addr int) (size int))\n(declare llvm:entry-point (addr int))\n(declare llvm:macho-symbol (name str) (value int))\n(declare llvm:name-reference (at int) (name str))\n(declare llvm:relocation (at int) (addr int))\n(declare llvm:section-entry (name str) (addr int) (size int) (off int))\n(declare llvm:section-flags (name str) (r bool) (w bool) (x bool))\n(declare llvm:segment-command (name str) (off int) (size int))\n(declare llvm:segment-command-flags (name str) (r bool) (w bool) (x bool))\n(declare llvm:symbol-entry (name str) (addr int) (size int) (off int)\n (value int))\n(declare llvm:virtual-segment-command (name str) (addr int) (size int))\n(declare mapped (addr int) (size int) (off int))\n(declare named-region (addr int) (size int) (name str))\n(declare named-symbol (addr int) (name str))\n(declare require (name str))\n(declare section (addr int) (size int))\n(declare segment (addr int) (size int) (r bool) (w bool) (x bool))\n(declare subarch (name str))\n(declare symbol-chunk (addr int) (size int) (root int))\n(declare symbol-value (addr int) (value int))\n(declare system (name str))\n(declare vendor (name str))\n\n(abi unknown)\n(arch aarch64)\n(base-address 0)\n(bias 0)\n(bits 64)\n(code-region 1948 20 1948)\n(code-region 1600 348 1600)\n(code-region 1488 96 1488)\n(code-region 1456 24 1456)\n(code-start 1652)\n(code-start 1600)\n(code-start 1876)\n(entry-point 1600)\n(external-reference 69552 _ITM_deregisterTMCloneTable)\n(external-reference 69560 __cxa_finalize)\n(external-reference 69584 __gmon_start__)\n(external-reference 69600 _ITM_registerTMCloneTable)\n(external-reference 69632 __libc_start_main)\n(external-reference 69640 __cxa_finalize)\n(external-reference 69648 __gmon_start__)\n(external-reference 69656 abort)\n(format elf)\n(is-executable true)\n(is-little-endian true)\n(llvm:base-address 0)\n(llvm:code-entry abort 0 0)\n(llvm:code-entry __cxa_finalize 0 0)\n(llvm:code-entry __libc_start_main 0 0)\n(llvm:code-entry _init 1456 0)\n(llvm:code-entry main 1876 72)\n(llvm:code-entry _start 1600 52)\n(llvm:code-entry abort@GLIBC_2.17 0 0)\n(llvm:code-entry _fini 1948 0)\n(llvm:code-entry __cxa_finalize@GLIBC_2.17 0 0)\n(llvm:code-entry __libc_start_main@GLIBC_2.34 0 0)\n(llvm:code-entry frame_dummy 1872 0)\n(llvm:code-entry __do_global_dtors_aux 1792 0)\n(llvm:code-entry register_tm_clones 1728 0)\n(llvm:code-entry deregister_tm_clones 1680 0)\n(llvm:code-entry call_weak_fn 1652 20)\n(llvm:code-entry .fini 1948 20)\n(llvm:code-entry .text 1600 348)\n(llvm:code-entry .plt 1488 96)\n(llvm:code-entry .init 1456 24)\n(llvm:elf-program-header 08 3512 584)\n(llvm:elf-program-header 07 0 0)\n(llvm:elf-program-header 06 1972 60)\n(llvm:elf-program-header 05 596 68)\n(llvm:elf-program-header 04 3528 480)\n(llvm:elf-program-header 03 3512 632)\n(llvm:elf-program-header 02 0 2216)\n(llvm:elf-program-header 01 568 27)\n(llvm:elf-program-header 00 64 504)\n(llvm:elf-program-header-flags 08 false true false false)\n(llvm:elf-program-header-flags 07 false true true false)\n(llvm:elf-program-header-flags 06 false true false false)\n(llvm:elf-program-header-flags 05 false true false false)\n(llvm:elf-program-header-flags 04 false true true false)\n(llvm:elf-program-header-flags 03 true true true false)\n(llvm:elf-program-header-flags 02 true true false true)\n(llvm:elf-program-header-flags 01 false true false false)\n(llvm:elf-program-header-flags 00 false true false false)\n(llvm:elf-virtual-program-header 08 69048 584)\n(llvm:elf-virtual-program-header 07 0 0)\n(llvm:elf-virtual-program-header 06 1972 60)\n(llvm:elf-virtual-program-header 05 596 68)\n(llvm:elf-virtual-program-header 04 69064 480)\n(llvm:elf-virtual-program-header 03 69048 648)\n(llvm:elf-virtual-program-header 02 0 2216)\n(llvm:elf-virtual-program-header 01 568 27)\n(llvm:elf-virtual-program-header 00 64 504)\n(llvm:entry-point 1600)\n(llvm:name-reference 69656 abort)\n(llvm:name-reference 69648 __gmon_start__)\n(llvm:name-reference 69640 __cxa_finalize)\n(llvm:name-reference 69632 __libc_start_main)\n(llvm:name-reference 69600 _ITM_registerTMCloneTable)\n(llvm:name-reference 69584 __gmon_start__)\n(llvm:name-reference 69560 __cxa_finalize)\n(llvm:name-reference 69552 _ITM_deregisterTMCloneTable)\n(llvm:section-entry .shstrtab 0 259 6982)\n(llvm:section-entry .strtab 0 582 6400)\n(llvm:section-entry .symtab 0 2184 4216)\n(llvm:section-entry .comment 0 71 4144)\n(llvm:section-entry .bss 69680 16 4144)\n(llvm:section-entry .data 69664 16 4128)\n(llvm:section-entry .got.plt 69608 56 4072)\n(llvm:section-entry .got 69544 64 4008)\n(llvm:section-entry .dynamic 69064 480 3528)\n(llvm:section-entry .fini_array 69056 8 3520)\n(llvm:section-entry .init_array 69048 8 3512)\n(llvm:section-entry .eh_frame 2032 184 2032)\n(llvm:section-entry .eh_frame_hdr 1972 60 1972)\n(llvm:section-entry .rodata 1968 4 1968)\n(llvm:section-entry .fini 1948 20 1948)\n(llvm:section-entry .text 1600 348 1600)\n(llvm:section-entry .plt 1488 96 1488)\n(llvm:section-entry .init 1456 24 1456)\n(llvm:section-entry .rela.plt 1360 96 1360)\n(llvm:section-entry .rela.dyn 1120 240 1120)\n(llvm:section-entry .gnu.version_r 1072 48 1072)\n(llvm:section-entry .gnu.version 1054 18 1054)\n(llvm:section-entry .dynstr 912 141 912)\n(llvm:section-entry .dynsym 696 216 696)\n(llvm:section-entry .gnu.hash 664 28 664)\n(llvm:section-entry .note.ABI-tag 632 32 632)\n(llvm:section-entry .note.gnu.build-id 596 36 596)\n(llvm:section-entry .interp 568 27 568)\n(llvm:section-flags .shstrtab true false false)\n(llvm:section-flags .strtab true false false)\n(llvm:section-flags .symtab true false false)\n(llvm:section-flags .comment true false false)\n(llvm:section-flags .bss true true false)\n(llvm:section-flags .data true true false)\n(llvm:section-flags .got.plt true true false)\n(llvm:section-flags .got true true false)\n(llvm:section-flags .dynamic true true false)\n(llvm:section-flags .fini_array true true false)\n(llvm:section-flags .init_array true true false)\n(llvm:section-flags .eh_frame true false false)\n(llvm:section-flags .eh_frame_hdr true false false)\n(llvm:section-flags .rodata true false false)\n(llvm:section-flags .fini true false true)\n(llvm:section-flags .text true false true)\n(llvm:section-flags .plt true false true)\n(llvm:section-flags .init true false true)\n(llvm:section-flags .rela.plt true false false)\n(llvm:section-flags .rela.dyn true false false)\n(llvm:section-flags .gnu.version_r true false false)\n(llvm:section-flags .gnu.version true false false)\n(llvm:section-flags .dynstr true false false)\n(llvm:section-flags .dynsym true false false)\n(llvm:section-flags .gnu.hash true false false)\n(llvm:section-flags .note.ABI-tag true false false)\n(llvm:section-flags .note.gnu.build-id true false false)\n(llvm:section-flags .interp true false false)\n(llvm:symbol-entry abort 0 0 0 0)\n(llvm:symbol-entry __cxa_finalize 0 0 0 0)\n(llvm:symbol-entry __libc_start_main 0 0 0 0)\n(llvm:symbol-entry _init 1456 0 1456 1456)\n(llvm:symbol-entry main 1876 72 1876 1876)\n(llvm:symbol-entry _start 1600 52 1600 1600)\n(llvm:symbol-entry abort@GLIBC_2.17 0 0 0 0)\n(llvm:symbol-entry _fini 1948 0 1948 1948)\n(llvm:symbol-entry __cxa_finalize@GLIBC_2.17 0 0 0 0)\n(llvm:symbol-entry __libc_start_main@GLIBC_2.34 0 0 0 0)\n(llvm:symbol-entry frame_dummy 1872 0 1872 1872)\n(llvm:symbol-entry __do_global_dtors_aux 1792 0 1792 1792)\n(llvm:symbol-entry register_tm_clones 1728 0 1728 1728)\n(llvm:symbol-entry deregister_tm_clones 1680 0 1680 1680)\n(llvm:symbol-entry call_weak_fn 1652 20 1652 1652)\n(mapped 0 2216 0)\n(mapped 69048 632 3512)\n(named-region 0 2216 02)\n(named-region 69048 648 03)\n(named-region 568 27 .interp)\n(named-region 596 36 .note.gnu.build-id)\n(named-region 632 32 .note.ABI-tag)\n(named-region 664 28 .gnu.hash)\n(named-region 696 216 .dynsym)\n(named-region 912 141 .dynstr)\n(named-region 1054 18 .gnu.version)\n(named-region 1072 48 .gnu.version_r)\n(named-region 1120 240 .rela.dyn)\n(named-region 1360 96 .rela.plt)\n(named-region 1456 24 .init)\n(named-region 1488 96 .plt)\n(named-region 1600 348 .text)\n(named-region 1948 20 .fini)\n(named-region 1968 4 .rodata)\n(named-region 1972 60 .eh_frame_hdr)\n(named-region 2032 184 .eh_frame)\n(named-region 69048 8 .init_array)\n(named-region 69056 8 .fini_array)\n(named-region 69064 480 .dynamic)\n(named-region 69544 64 .got)\n(named-region 69608 56 .got.plt)\n(named-region 69664 16 .data)\n(named-region 69680 16 .bss)\n(named-region 0 71 .comment)\n(named-region 0 2184 .symtab)\n(named-region 0 582 .strtab)\n(named-region 0 259 .shstrtab)\n(named-symbol 1652 call_weak_fn)\n(named-symbol 1680 deregister_tm_clones)\n(named-symbol 1728 register_tm_clones)\n(named-symbol 1792 __do_global_dtors_aux)\n(named-symbol 1872 frame_dummy)\n(named-symbol 0 __libc_start_main@GLIBC_2.34)\n(named-symbol 0 __cxa_finalize@GLIBC_2.17)\n(named-symbol 1948 _fini)\n(named-symbol 0 abort@GLIBC_2.17)\n(named-symbol 1600 _start)\n(named-symbol 1876 main)\n(named-symbol 1456 _init)\n(named-symbol 0 __libc_start_main)\n(named-symbol 0 __cxa_finalize)\n(named-symbol 0 abort)\n(require libc.so.6)\n(section 568 27)\n(section 596 36)\n(section 632 32)\n(section 664 28)\n(section 696 216)\n(section 912 141)\n(section 1054 18)\n(section 1072 48)\n(section 1120 240)\n(section 1360 96)\n(section 1456 24)\n(section 1488 96)\n(section 1600 348)\n(section 1948 20)\n(section 1968 4)\n(section 1972 60)\n(section 2032 184)\n(section 69048 8)\n(section 69056 8)\n(section 69064 480)\n(section 69544 64)\n(section 69608 56)\n(section 69664 16)\n(section 69680 16)\n(section 0 71)\n(section 0 2184)\n(section 0 582)\n(section 0 259)\n(segment 0 2216 true false true)\n(segment 69048 648 true true false)\n(subarch v8)\n(symbol-chunk 1652 20 1652)\n(symbol-chunk 1600 52 1600)\n(symbol-chunk 1876 72 1876)\n(symbol-value 1652 1652)\n(symbol-value 1680 1680)\n(symbol-value 1728 1728)\n(symbol-value 1792 1792)\n(symbol-value 1872 1872)\n(symbol-value 1948 1948)\n(symbol-value 1600 1600)\n(symbol-value 1876 1876)\n(symbol-value 1456 1456)\n(symbol-value 0 0)\n(system \"\")\n(vendor \"\")\n"), -Attr("abi-name","\"aarch64-linux-gnu-elf\"")]), -Sections([Section(".shstrtab", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x40\x06\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x50\x1c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x38\x00\x09\x00\x40\x00\x1d\x00\x1c\x00\x06\x00\x00\x00\x04\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x04\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xa8\x08\x00\x00\x00\x00\x00\x00\xa8\x08\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x01\x00\x00\x00\x06\x00\x00\x00\xb8\x0d\x00\x00\x00\x00\x00\x00\xb8\x0d\x01\x00\x00\x00\x00\x00\xb8\x0d\x01"), -Section(".strtab", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x40\x06\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x50\x1c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x38\x00\x09\x00\x40\x00\x1d\x00\x1c\x00\x06\x00\x00\x00\x04\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x04\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xa8\x08\x00\x00\x00\x00\x00\x00\xa8\x08\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x01\x00\x00\x00\x06\x00\x00\x00\xb8\x0d\x00\x00\x00\x00\x00\x00\xb8\x0d\x01\x00\x00\x00\x00\x00\xb8\x0d\x01\x00\x00\x00\x00\x00\x78\x02\x00\x00\x00\x00\x00\x00\x88\x02\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x02\x00\x00\x00\x06\x00\x00\x00\xc8\x0d\x00\x00\x00\x00\x00\x00\xc8\x0d\x01\x00\x00\x00\x00\x00\xc8\x0d\x01\x00\x00\x00\x00\x00\xe0\x01\x00\x00\x00\x00\x00\x00\xe0\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x04\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x50\xe5\x74\x64\x04\x00\x00\x00\xb4\x07\x00\x00\x00\x00\x00\x00\xb4\x07\x00\x00\x00\x00\x00\x00\xb4\x07\x00\x00\x00\x00\x00\x00\x3c\x00\x00\x00\x00\x00\x00\x00\x3c\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x51\xe5\x74\x64\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x52\xe5\x74\x64\x04\x00\x00\x00\xb8\x0d\x00\x00\x00\x00\x00\x00\xb8\x0d\x01\x00\x00\x00\x00\x00\xb8\x0d\x01\x00\x00\x00\x00\x00\x48\x02\x00\x00\x00\x00\x00\x00\x48\x02\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x2f\x6c\x69\x62\x2f\x6c\x64\x2d\x6c\x69\x6e\x75\x78\x2d"), -Section(".symtab", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x40\x06\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x50\x1c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x38\x00\x09\x00\x40\x00\x1d\x00\x1c\x00\x06\x00\x00\x00\x04\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x04\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xa8\x08\x00\x00\x00\x00\x00\x00\xa8\x08\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x01\x00\x00\x00\x06\x00\x00\x00\xb8\x0d\x00\x00\x00\x00\x00\x00\xb8\x0d\x01\x00\x00\x00\x00\x00\xb8\x0d\x01\x00\x00\x00\x00\x00\x78\x02\x00\x00\x00\x00\x00\x00\x88\x02\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x02\x00\x00\x00\x06\x00\x00\x00\xc8\x0d\x00\x00\x00\x00\x00\x00\xc8\x0d\x01\x00\x00\x00\x00\x00\xc8\x0d\x01\x00\x00\x00\x00\x00\xe0\x01\x00\x00\x00\x00\x00\x00\xe0\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x04\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x50\xe5\x74\x64\x04\x00\x00\x00\xb4\x07\x00\x00\x00\x00\x00\x00\xb4\x07\x00\x00\x00\x00\x00\x00\xb4\x07\x00\x00\x00\x00\x00\x00\x3c\x00\x00\x00\x00\x00\x00\x00\x3c\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x51\xe5\x74\x64\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x52\xe5\x74\x64\x04\x00\x00\x00\xb8\x0d\x00\x00\x00\x00\x00\x00\xb8\x0d\x01\x00\x00\x00\x00\x00\xb8\x0d\x01\x00\x00\x00\x00\x00\x48\x02\x00\x00\x00\x00\x00\x00\x48\x02\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x2f\x6c\x69\x62\x2f\x6c\x64\x2d\x6c\x69\x6e\x75\x78\x2d\x61\x61\x72\x63\x68\x36\x34\x2e\x73\x6f\x2e\x31\x00\x00\x04\x00\x00\x00\x14\x00\x00\x00\x03\x00\x00\x00\x47\x4e\x55\x00\x46\x6e\x46\xcd\x1e\xc5\x30\x74\xd3\x9d\xe1\x54\xed\xe0\x13\x6b\x0a\xd0\xfb\xa8\x04\x00\x00\x00\x10\x00\x00\x00\x01\x00\x00\x00\x47\x4e\x55\x00\x00\x00\x00\x00\x03\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x01\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x0b\x00\xb0\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x17\x00\x20\x10\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x48\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x22\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x22\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x73\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5f\x5f\x63\x78\x61\x5f\x66\x69\x6e\x61\x6c\x69\x7a\x65\x00\x5f\x5f\x6c\x69\x62\x63\x5f\x73\x74\x61\x72\x74\x5f\x6d\x61\x69\x6e\x00\x61\x62\x6f\x72\x74\x00\x6c\x69\x62\x63\x2e\x73\x6f\x2e\x36\x00\x47\x4c\x49\x42\x43\x5f\x32\x2e\x31\x37\x00\x47\x4c\x49\x42\x43\x5f\x32\x2e\x33\x34\x00\x5f\x49\x54\x4d\x5f\x64\x65\x72\x65\x67\x69\x73\x74\x65\x72\x54\x4d\x43\x6c\x6f\x6e\x65\x54\x61\x62\x6c\x65\x00\x5f\x5f\x67\x6d\x6f\x6e\x5f\x73\x74\x61\x72\x74\x5f\x5f\x00\x5f\x49\x54\x4d\x5f\x72\x65\x67\x69\x73\x74\x65\x72\x54\x4d\x43\x6c\x6f\x6e\x65\x54\x61\x62\x6c\x65\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x01\x00\x03\x00\x01\x00\x03\x00\x01\x00\x01\x00\x02\x00\x28\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x97\x91\x96\x06\x00\x00\x03\x00\x32\x00\x00\x00\x10\x00\x00\x00\xb4\x91\x96\x06\x00\x00\x02\x00\x3d\x00\x00\x00\x00\x00\x00\x00\xb8\x0d\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x50\x07\x00\x00\x00\x00\x00\x00\xc0\x0d\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\xc0\x0f\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x34\x10\x01\x00\x00\x00\x00\x00\xc8\x0f\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x38\x10\x01\x00\x00\x00\x00\x00\xd8\x0f\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x54\x07\x00\x00\x00\x00\x00\x00\x28\x10\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x28\x10\x01\x00\x00\x00\x00\x00\xb0\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xb8\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xd0\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe0\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x08\x10\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x10\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x18\x10\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1f\x20\x03\xd5\xfd\x7b\xbf\xa9\xfd\x03\x00\x91\x2e\x00\x00\x94\xfd\x7b\xc1\xa8\xc0\x03\x5f\xd6\x00\x00\x00\x00\x00\x00\x00\x00\xf0\x7b\xbf\xa9\x90\x00\x00\x90\x11\xfe\x47\xf9\x10\xe2\x3f\x91\x20\x02\x1f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x90\x00\x00\xb0\x11\x02\x40\xf9\x10\x02\x00\x91\x20\x02\x1f\xd6\x90\x00\x00\xb0\x11\x06\x40\xf9\x10\x22\x00\x91\x20\x02\x1f\xd6\x90\x00\x00\xb0\x11\x0a\x40\xf9\x10\x42\x00\x91\x20\x02\x1f\xd6\x90\x00\x00\xb0\x11\x0e\x40\xf9\x10\x62\x00\x91\x20\x02\x1f\xd6\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1f\x20\x03\xd5\x1d\x00\x80\xd2\x1e\x00\x80\xd2\xe5\x03\x00\xaa\xe1\x03\x40\xf9\xe2\x23\x00\x91\xe6\x03\x00\x91\x80\x00\x00\x90\x00\xec\x47\xf9\x03\x00\x80\xd2\x04\x00\x80\xd2\xe1\xff\xff\x97\xec\xff\xff\x97\x80\x00\x00\x90\x00\xe8\x47\xf9\x40\x00\x00\xb4\xe4\xff\xff\x17\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x80\x00\x00\xb0\x00\xc0\x00\x91\x81\x00\x00\xb0\x21\xc0\x00\x91\x3f\x00\x00\xeb\xc0\x00\x00\x54\x81\x00\x00\x90\x21\xd8\x47\xf9\x61\x00\x00\xb4\xf0\x03\x01\xaa\x00\x02\x1f\xd6\xc0\x03\x5f\xd6\x80\x00\x00\xb0\x00\xc0\x00\x91\x81\x00\x00\xb0\x21\xc0\x00\x91\x21\x00\x00\xcb\x22\xfc\x7f\xd3\x41\x0c\x81\x8b\x21\xfc\x41\x93\xc1\x00\x00\xb4\x82\x00\x00\x90\x42\xf0\x47\xf9\x62\x00\x00\xb4\xf0\x03\x02\xaa\x00\x02\x1f\xd6\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\xfd\x7b\xbe\xa9\xfd\x03\x00\x91\xf3\x0b\x00\xf9\x93\x00\x00\xb0\x60\xc2\x40\x39\x40\x01\x00\x35\x80\x00\x00\x90\x00\xdc\x47\xf9\x80\x00\x00\xb4\x80\x00\x00\xb0\x00\x14\x40\xf9\xb5\xff\xff\x97\xd8\xff\xff\x97\x20\x00\x80\x52\x60\xc2\x00\x39\xf3\x0b\x40\xf9\xfd\x7b\xc2\xa8\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\xdc\xff\xff\x17\xff\x43\x00\xd1\xff\x0f\x00\xb9\xff\x0b\x00\xb9\x88\x00\x00\x90\x08\xe1\x47\xf9\x08\x01\x40\xb9\x08\x01\x00\x71\xe8\x07\x9f\x1a\xe8\x00\x00\x37\x01\x00\x00\x14\x88\x00\x00\x90\x08\xe5\x47\xf9\x08\x01\x40\xb9\xe8\x0b\x00\xb9\x01\x00\x00\x14\xe0\x0b\x40\xb9\xff\x43\x00\x91\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\xfd\x7b\xbf\xa9\xfd\x03\x00\x91\xfd\x7b\xc1\xa8\xc0\x03\x5f\xd6\x01\x00\x02\x00\x01\x1b\x03\x3b\x38\x00\x00\x00\x06\x00\x00\x00\x8c\xfe\xff\xff\x50\x00\x00\x00\xdc\xfe\xff\xff\x64\x00\x00\x00\x0c\xff\xff\xff\x78\x00\x00\x00\x4c\xff\xff\xff\x8c\x00\x00\x00\x9c\xff\xff\xff\xb0\x00\x00\x00\xa0\xff\xff\xff\xd8\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x01\x7a\x52\x00\x04\x78\x1e\x01\x1b\x0c\x1f\x00\x10\x00\x00\x00\x18\x00\x00\x00\x34\xfe\xff\xff\x34\x00\x00\x00\x00\x41\x07\x1e\x10\x00\x00\x00\x2c\x00\x00\x00\x70\xfe\xff\xff\x30\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x40\x00\x00\x00\x8c\xfe\xff\xff\x3c\x00\x00\x00\x00\x00\x00\x00\x20\x00\x00\x00\x54\x00\x00\x00\xb8\xfe\xff\xff\x48\x00\x00\x00\x00\x41\x0e\x20\x9d\x04\x9e\x03\x42\x93\x02\x4e\xde\xdd\xd3\x0e\x00\x00\x00\x00\x10\x00\x00\x00\x78\x00\x00\x00\xe4\xfe\xff\xff\x04\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x01\x7a\x52\x00\x01\x7c\x1e\x01"), -Section(".comment", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x40\x06\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x50\x1c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x38\x00\x09\x00\x40\x00\x1d\x00\x1c\x00\x06\x00\x00\x00\x04\x00\x00"), -Section(".interp", 0x238, "\x2f\x6c\x69\x62\x2f\x6c\x64\x2d\x6c\x69\x6e\x75\x78\x2d\x61\x61\x72\x63\x68\x36\x34\x2e\x73\x6f\x2e\x31\x00"), -Section(".note.gnu.build-id", 0x254, "\x04\x00\x00\x00\x14\x00\x00\x00\x03\x00\x00\x00\x47\x4e\x55\x00\x46\x6e\x46\xcd\x1e\xc5\x30\x74\xd3\x9d\xe1\x54\xed\xe0\x13\x6b\x0a\xd0\xfb\xa8"), -Section(".note.ABI-tag", 0x278, "\x04\x00\x00\x00\x10\x00\x00\x00\x01\x00\x00\x00\x47\x4e\x55\x00\x00\x00\x00\x00\x03\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00"), -Section(".gnu.hash", 0x298, "\x01\x00\x00\x00\x01\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".dynsym", 0x2B8, "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x0b\x00\xb0\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x17\x00\x20\x10\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x48\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x22\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x22\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x73\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".dynstr", 0x390, "\x00\x5f\x5f\x63\x78\x61\x5f\x66\x69\x6e\x61\x6c\x69\x7a\x65\x00\x5f\x5f\x6c\x69\x62\x63\x5f\x73\x74\x61\x72\x74\x5f\x6d\x61\x69\x6e\x00\x61\x62\x6f\x72\x74\x00\x6c\x69\x62\x63\x2e\x73\x6f\x2e\x36\x00\x47\x4c\x49\x42\x43\x5f\x32\x2e\x31\x37\x00\x47\x4c\x49\x42\x43\x5f\x32\x2e\x33\x34\x00\x5f\x49\x54\x4d\x5f\x64\x65\x72\x65\x67\x69\x73\x74\x65\x72\x54\x4d\x43\x6c\x6f\x6e\x65\x54\x61\x62\x6c\x65\x00\x5f\x5f\x67\x6d\x6f\x6e\x5f\x73\x74\x61\x72\x74\x5f\x5f\x00\x5f\x49\x54\x4d\x5f\x72\x65\x67\x69\x73\x74\x65\x72\x54\x4d\x43\x6c\x6f\x6e\x65\x54\x61\x62\x6c\x65\x00"), -Section(".gnu.version", 0x41E, "\x00\x00\x00\x00\x00\x00\x02\x00\x01\x00\x03\x00\x01\x00\x03\x00\x01\x00"), -Section(".gnu.version_r", 0x430, "\x01\x00\x02\x00\x28\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x97\x91\x96\x06\x00\x00\x03\x00\x32\x00\x00\x00\x10\x00\x00\x00\xb4\x91\x96\x06\x00\x00\x02\x00\x3d\x00\x00\x00\x00\x00\x00\x00"), -Section(".rela.dyn", 0x460, "\xb8\x0d\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x50\x07\x00\x00\x00\x00\x00\x00\xc0\x0d\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\xc0\x0f\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x34\x10\x01\x00\x00\x00\x00\x00\xc8\x0f\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x38\x10\x01\x00\x00\x00\x00\x00\xd8\x0f\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x54\x07\x00\x00\x00\x00\x00\x00\x28\x10\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x28\x10\x01\x00\x00\x00\x00\x00\xb0\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xb8\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xd0\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe0\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".rela.plt", 0x550, "\x00\x10\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x08\x10\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x10\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x18\x10\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".init", 0x5B0, "\x1f\x20\x03\xd5\xfd\x7b\xbf\xa9\xfd\x03\x00\x91\x2e\x00\x00\x94\xfd\x7b\xc1\xa8\xc0\x03\x5f\xd6"), -Section(".plt", 0x5D0, "\xf0\x7b\xbf\xa9\x90\x00\x00\x90\x11\xfe\x47\xf9\x10\xe2\x3f\x91\x20\x02\x1f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x90\x00\x00\xb0\x11\x02\x40\xf9\x10\x02\x00\x91\x20\x02\x1f\xd6\x90\x00\x00\xb0\x11\x06\x40\xf9\x10\x22\x00\x91\x20\x02\x1f\xd6\x90\x00\x00\xb0\x11\x0a\x40\xf9\x10\x42\x00\x91\x20\x02\x1f\xd6\x90\x00\x00\xb0\x11\x0e\x40\xf9\x10\x62\x00\x91\x20\x02\x1f\xd6"), -Section(".fini", 0x79C, "\x1f\x20\x03\xd5\xfd\x7b\xbf\xa9\xfd\x03\x00\x91\xfd\x7b\xc1\xa8\xc0\x03\x5f\xd6"), -Section(".rodata", 0x7B0, "\x01\x00\x02\x00"), -Section(".eh_frame_hdr", 0x7B4, "\x01\x1b\x03\x3b\x38\x00\x00\x00\x06\x00\x00\x00\x8c\xfe\xff\xff\x50\x00\x00\x00\xdc\xfe\xff\xff\x64\x00\x00\x00\x0c\xff\xff\xff\x78\x00\x00\x00\x4c\xff\xff\xff\x8c\x00\x00\x00\x9c\xff\xff\xff\xb0\x00\x00\x00\xa0\xff\xff\xff\xd8\x00\x00\x00"), -Section(".eh_frame", 0x7F0, "\x10\x00\x00\x00\x00\x00\x00\x00\x01\x7a\x52\x00\x04\x78\x1e\x01\x1b\x0c\x1f\x00\x10\x00\x00\x00\x18\x00\x00\x00\x34\xfe\xff\xff\x34\x00\x00\x00\x00\x41\x07\x1e\x10\x00\x00\x00\x2c\x00\x00\x00\x70\xfe\xff\xff\x30\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x40\x00\x00\x00\x8c\xfe\xff\xff\x3c\x00\x00\x00\x00\x00\x00\x00\x20\x00\x00\x00\x54\x00\x00\x00\xb8\xfe\xff\xff\x48\x00\x00\x00\x00\x41\x0e\x20\x9d\x04\x9e\x03\x42\x93\x02\x4e\xde\xdd\xd3\x0e\x00\x00\x00\x00\x10\x00\x00\x00\x78\x00\x00\x00\xe4\xfe\xff\xff\x04\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x01\x7a\x52\x00\x01\x7c\x1e\x01\x1b\x0c\x1f\x00\x14\x00\x00\x00\x18\x00\x00\x00\xc0\xfe\xff\xff\x48\x00\x00\x00\x00\x44\x0e\x10\x02\x40\x0e\x00\x00\x00\x00\x00"), -Section(".fini_array", 0x10DC0, "\x00\x07\x00\x00\x00\x00\x00\x00"), -Section(".dynamic", 0x10DC8, "\x01\x00\x00\x00\x00\x00\x00\x00\x28\x00\x00\x00\x00\x00\x00\x00\x0c\x00\x00\x00\x00\x00\x00\x00\xb0\x05\x00\x00\x00\x00\x00\x00\x0d\x00\x00\x00\x00\x00\x00\x00\x9c\x07\x00\x00\x00\x00\x00\x00\x19\x00\x00\x00\x00\x00\x00\x00\xb8\x0d\x01\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x1a\x00\x00\x00\x00\x00\x00\x00\xc0\x0d\x01\x00\x00\x00\x00\x00\x1c\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\xf5\xfe\xff\x6f\x00\x00\x00\x00\x98\x02\x00\x00\x00\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x90\x03\x00\x00\x00\x00\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\xb8\x02\x00\x00\x00\x00\x00\x00\x0a\x00\x00\x00\x00\x00\x00\x00\x8d\x00\x00\x00\x00\x00\x00\x00\x0b\x00\x00\x00\x00\x00\x00\x00\x18\x00\x00\x00\x00\x00\x00\x00\x15\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\xe8\x0f\x01\x00\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x60\x00\x00\x00\x00\x00\x00\x00\x14\x00\x00\x00\x00\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x17\x00\x00\x00\x00\x00\x00\x00\x50\x05\x00\x00\x00\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x60\x04\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\xf0\x00\x00\x00\x00\x00\x00\x00\x09\x00\x00\x00\x00\x00\x00\x00\x18\x00\x00\x00\x00\x00\x00\x00\xfb\xff\xff\x6f\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\xfe\xff\xff\x6f\x00\x00\x00\x00\x30\x04\x00\x00\x00\x00\x00\x00\xff\xff\xff\x6f\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\xf0\xff\xff\x6f\x00\x00\x00\x00\x1e\x04\x00\x00\x00\x00\x00\x00\xf9\xff\xff\x6f\x00\x00\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".init_array", 0x10DB8, "\x50\x07\x00\x00\x00\x00\x00\x00"), -Section(".got", 0x10FA8, "\xc8\x0d\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x34\x10\x01\x00\x00\x00\x00\x00\x38\x10\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x54\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".got.plt", 0x10FE8, "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xd0\x05\x00\x00\x00\x00\x00\x00\xd0\x05\x00\x00\x00\x00\x00\x00\xd0\x05\x00\x00\x00\x00\x00\x00\xd0\x05\x00\x00\x00\x00\x00\x00"), -Section(".data", 0x11020, "\x00\x00\x00\x00\x00\x00\x00\x00\x28\x10\x01\x00\x00\x00\x00\x00"), -Section(".text", 0x640, "\x1f\x20\x03\xd5\x1d\x00\x80\xd2\x1e\x00\x80\xd2\xe5\x03\x00\xaa\xe1\x03\x40\xf9\xe2\x23\x00\x91\xe6\x03\x00\x91\x80\x00\x00\x90\x00\xec\x47\xf9\x03\x00\x80\xd2\x04\x00\x80\xd2\xe1\xff\xff\x97\xec\xff\xff\x97\x80\x00\x00\x90\x00\xe8\x47\xf9\x40\x00\x00\xb4\xe4\xff\xff\x17\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x80\x00\x00\xb0\x00\xc0\x00\x91\x81\x00\x00\xb0\x21\xc0\x00\x91\x3f\x00\x00\xeb\xc0\x00\x00\x54\x81\x00\x00\x90\x21\xd8\x47\xf9\x61\x00\x00\xb4\xf0\x03\x01\xaa\x00\x02\x1f\xd6\xc0\x03\x5f\xd6\x80\x00\x00\xb0\x00\xc0\x00\x91\x81\x00\x00\xb0\x21\xc0\x00\x91\x21\x00\x00\xcb\x22\xfc\x7f\xd3\x41\x0c\x81\x8b\x21\xfc\x41\x93\xc1\x00\x00\xb4\x82\x00\x00\x90\x42\xf0\x47\xf9\x62\x00\x00\xb4\xf0\x03\x02\xaa\x00\x02\x1f\xd6\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\xfd\x7b\xbe\xa9\xfd\x03\x00\x91\xf3\x0b\x00\xf9\x93\x00\x00\xb0\x60\xc2\x40\x39\x40\x01\x00\x35\x80\x00\x00\x90\x00\xdc\x47\xf9\x80\x00\x00\xb4\x80\x00\x00\xb0\x00\x14\x40\xf9\xb5\xff\xff\x97\xd8\xff\xff\x97\x20\x00\x80\x52\x60\xc2\x00\x39\xf3\x0b\x40\xf9\xfd\x7b\xc2\xa8\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\xdc\xff\xff\x17\xff\x43\x00\xd1\xff\x0f\x00\xb9\xff\x0b\x00\xb9\x88\x00\x00\x90\x08\xe1\x47\xf9\x08\x01\x40\xb9\x08\x01\x00\x71\xe8\x07\x9f\x1a\xe8\x00\x00\x37\x01\x00\x00\x14\x88\x00\x00\x90\x08\xe5\x47\xf9\x08\x01\x40\xb9\xe8\x0b\x00\xb9\x01\x00\x00\x14\xe0\x0b\x40\xb9\xff\x43\x00\x91\xc0\x03\x5f\xd6")]), -Memmap([Annotation(Region(0x0,0x8A7), Attr("segment","02 0 2216")), -Annotation(Region(0x640,0x673), Attr("symbol","\"_start\"")), -Annotation(Region(0x0,0x102), Attr("section","\".shstrtab\"")), -Annotation(Region(0x0,0x245), Attr("section","\".strtab\"")), -Annotation(Region(0x0,0x887), Attr("section","\".symtab\"")), -Annotation(Region(0x0,0x46), Attr("section","\".comment\"")), -Annotation(Region(0x238,0x252), Attr("section","\".interp\"")), -Annotation(Region(0x254,0x277), Attr("section","\".note.gnu.build-id\"")), -Annotation(Region(0x278,0x297), Attr("section","\".note.ABI-tag\"")), -Annotation(Region(0x298,0x2B3), Attr("section","\".gnu.hash\"")), -Annotation(Region(0x2B8,0x38F), Attr("section","\".dynsym\"")), -Annotation(Region(0x390,0x41C), Attr("section","\".dynstr\"")), -Annotation(Region(0x41E,0x42F), Attr("section","\".gnu.version\"")), -Annotation(Region(0x430,0x45F), Attr("section","\".gnu.version_r\"")), -Annotation(Region(0x460,0x54F), Attr("section","\".rela.dyn\"")), -Annotation(Region(0x550,0x5AF), Attr("section","\".rela.plt\"")), -Annotation(Region(0x5B0,0x5C7), Attr("section","\".init\"")), -Annotation(Region(0x5D0,0x62F), Attr("section","\".plt\"")), -Annotation(Region(0x5B0,0x5C7), Attr("code-region","()")), -Annotation(Region(0x5D0,0x62F), Attr("code-region","()")), -Annotation(Region(0x640,0x673), Attr("symbol-info","_start 0x640 52")), -Annotation(Region(0x674,0x687), Attr("symbol","\"call_weak_fn\"")), -Annotation(Region(0x674,0x687), Attr("symbol-info","call_weak_fn 0x674 20")), -Annotation(Region(0x754,0x79B), Attr("symbol","\"main\"")), -Annotation(Region(0x754,0x79B), Attr("symbol-info","main 0x754 72")), -Annotation(Region(0x79C,0x7AF), Attr("section","\".fini\"")), -Annotation(Region(0x7B0,0x7B3), Attr("section","\".rodata\"")), -Annotation(Region(0x7B4,0x7EF), Attr("section","\".eh_frame_hdr\"")), -Annotation(Region(0x7F0,0x8A7), Attr("section","\".eh_frame\"")), -Annotation(Region(0x10DB8,0x1102F), Attr("segment","03 0x10DB8 648")), -Annotation(Region(0x10DC0,0x10DC7), Attr("section","\".fini_array\"")), -Annotation(Region(0x10DC8,0x10FA7), Attr("section","\".dynamic\"")), -Annotation(Region(0x10DB8,0x10DBF), Attr("section","\".init_array\"")), -Annotation(Region(0x10FA8,0x10FE7), Attr("section","\".got\"")), -Annotation(Region(0x10FE8,0x1101F), Attr("section","\".got.plt\"")), -Annotation(Region(0x11020,0x1102F), Attr("section","\".data\"")), -Annotation(Region(0x640,0x79B), Attr("section","\".text\"")), -Annotation(Region(0x640,0x79B), Attr("code-region","()")), -Annotation(Region(0x79C,0x7AF), Attr("code-region","()"))]), -Program(Tid(1_492, "%000005d4"), Attrs([]), - Subs([Sub(Tid(1_440, "@__cxa_finalize"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x600"), -Attr("stub","()")]), "__cxa_finalize", Args([Arg(Tid(1_493, "%000005d5"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("__cxa_finalize_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(951, "@__cxa_finalize"), - Attrs([Attr("address","0x600")]), Phis([]), -Defs([Def(Tid(1_199, "%000004af"), Attrs([Attr("address","0x600"), -Attr("insn","adrp x16, #69632")]), Var("R16",Imm(64)), Int(69632,64)), -Def(Tid(1_206, "%000004b6"), Attrs([Attr("address","0x604"), -Attr("insn","ldr x17, [x16, #0x8]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(1_212, "%000004bc"), Attrs([Attr("address","0x608"), -Attr("insn","add x16, x16, #0x8")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(8,64)))]), Jmps([Call(Tid(1_217, "%000004c1"), - Attrs([Attr("address","0x60C"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), -Sub(Tid(1_441, "@__do_global_dtors_aux"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x700")]), - "__do_global_dtors_aux", Args([Arg(Tid(1_494, "%000005d6"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("__do_global_dtors_aux_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(662, "@__do_global_dtors_aux"), - Attrs([Attr("address","0x700")]), Phis([]), Defs([Def(Tid(666, "%0000029a"), - Attrs([Attr("address","0x700"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("#3",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(18446744073709551584,64))), -Def(Tid(672, "%000002a0"), Attrs([Attr("address","0x700"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("#3",Imm(64)),Var("R29",Imm(64)),LittleEndian(),64)), -Def(Tid(678, "%000002a6"), Attrs([Attr("address","0x700"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("#3",Imm(64)),Int(8,64)),Var("R30",Imm(64)),LittleEndian(),64)), -Def(Tid(682, "%000002aa"), Attrs([Attr("address","0x700"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("R31",Imm(64)), -Var("#3",Imm(64))), Def(Tid(688, "%000002b0"), - Attrs([Attr("address","0x704"), Attr("insn","mov x29, sp")]), - Var("R29",Imm(64)), Var("R31",Imm(64))), Def(Tid(696, "%000002b8"), - Attrs([Attr("address","0x708"), Attr("insn","str x19, [sp, #0x10]")]), - Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(16,64)),Var("R19",Imm(64)),LittleEndian(),64)), -Def(Tid(701, "%000002bd"), Attrs([Attr("address","0x70C"), -Attr("insn","adrp x19, #69632")]), Var("R19",Imm(64)), Int(69632,64)), -Def(Tid(708, "%000002c4"), Attrs([Attr("address","0x710"), -Attr("insn","ldrb w0, [x19, #0x30]")]), Var("R0",Imm(64)), -UNSIGNED(64,Load(Var("mem",Mem(64,8)),PLUS(Var("R19",Imm(64)),Int(48,64)),LittleEndian(),8)))]), -Jmps([Goto(Tid(715, "%000002cb"), Attrs([Attr("address","0x714"), -Attr("insn","cbnz w0, #0x28")]), - NEQ(Extract(31,0,Var("R0",Imm(64))),Int(0,32)), -Direct(Tid(713, "%000002c9"))), Goto(Tid(1_481, "%000005c9"), Attrs([]), - Int(1,1), Direct(Tid(896, "%00000380")))])), Blk(Tid(896, "%00000380"), - Attrs([Attr("address","0x718")]), Phis([]), Defs([Def(Tid(899, "%00000383"), - Attrs([Attr("address","0x718"), Attr("insn","adrp x0, #65536")]), - Var("R0",Imm(64)), Int(65536,64)), Def(Tid(906, "%0000038a"), - Attrs([Attr("address","0x71C"), Attr("insn","ldr x0, [x0, #0xfb8]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(4024,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(912, "%00000390"), Attrs([Attr("address","0x720"), -Attr("insn","cbz x0, #0x10")]), EQ(Var("R0",Imm(64)),Int(0,64)), -Direct(Tid(910, "%0000038e"))), Goto(Tid(1_482, "%000005ca"), Attrs([]), - Int(1,1), Direct(Tid(935, "%000003a7")))])), Blk(Tid(935, "%000003a7"), - Attrs([Attr("address","0x724")]), Phis([]), Defs([Def(Tid(938, "%000003aa"), - Attrs([Attr("address","0x724"), Attr("insn","adrp x0, #69632")]), - Var("R0",Imm(64)), Int(69632,64)), Def(Tid(945, "%000003b1"), - Attrs([Attr("address","0x728"), Attr("insn","ldr x0, [x0, #0x28]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(40,64)),LittleEndian(),64)), -Def(Tid(950, "%000003b6"), Attrs([Attr("address","0x72C"), -Attr("insn","bl #-0x12c")]), Var("R30",Imm(64)), Int(1840,64))]), -Jmps([Call(Tid(953, "%000003b9"), Attrs([Attr("address","0x72C"), -Attr("insn","bl #-0x12c")]), Int(1,1), -(Direct(Tid(1_440, "@__cxa_finalize")),Direct(Tid(910, "%0000038e"))))])), -Blk(Tid(910, "%0000038e"), Attrs([Attr("address","0x730")]), Phis([]), -Defs([Def(Tid(918, "%00000396"), Attrs([Attr("address","0x730"), -Attr("insn","bl #-0xa0")]), Var("R30",Imm(64)), Int(1844,64))]), -Jmps([Call(Tid(920, "%00000398"), Attrs([Attr("address","0x730"), -Attr("insn","bl #-0xa0")]), Int(1,1), -(Direct(Tid(1_454, "@deregister_tm_clones")),Direct(Tid(922, "%0000039a"))))])), -Blk(Tid(922, "%0000039a"), Attrs([Attr("address","0x734")]), Phis([]), -Defs([Def(Tid(925, "%0000039d"), Attrs([Attr("address","0x734"), -Attr("insn","mov w0, #0x1")]), Var("R0",Imm(64)), Int(1,64)), -Def(Tid(933, "%000003a5"), Attrs([Attr("address","0x738"), -Attr("insn","strb w0, [x19, #0x30]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R19",Imm(64)),Int(48,64)),Extract(7,0,Var("R0",Imm(64))),LittleEndian(),8))]), -Jmps([Goto(Tid(1_483, "%000005cb"), Attrs([]), Int(1,1), -Direct(Tid(713, "%000002c9")))])), Blk(Tid(713, "%000002c9"), - Attrs([Attr("address","0x73C")]), Phis([]), Defs([Def(Tid(723, "%000002d3"), - Attrs([Attr("address","0x73C"), Attr("insn","ldr x19, [sp, #0x10]")]), - Var("R19",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(16,64)),LittleEndian(),64)), -Def(Tid(730, "%000002da"), Attrs([Attr("address","0x740"), -Attr("insn","ldp x29, x30, [sp], #0x20")]), Var("R29",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(735, "%000002df"), Attrs([Attr("address","0x740"), -Attr("insn","ldp x29, x30, [sp], #0x20")]), Var("R30",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(739, "%000002e3"), Attrs([Attr("address","0x740"), -Attr("insn","ldp x29, x30, [sp], #0x20")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(32,64)))]), Jmps([Call(Tid(744, "%000002e8"), - Attrs([Attr("address","0x744"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), Sub(Tid(1_445, "@__libc_start_main"), - Attrs([Attr("c.proto","signed (*)(signed (*)(signed , char** , char** );* main, signed , char** , \nvoid* auxv)"), -Attr("address","0x5F0"), Attr("stub","()")]), "__libc_start_main", - Args([Arg(Tid(1_495, "%000005d7"), - Attrs([Attr("c.layout","**[ : 64]"), -Attr("c.data","Top:u64 ptr ptr"), -Attr("c.type","signed (*)(signed , char** , char** );*")]), - Var("__libc_start_main_main",Imm(64)), Var("R0",Imm(64)), In()), -Arg(Tid(1_496, "%000005d8"), Attrs([Attr("c.layout","[signed : 32]"), -Attr("c.data","Top:u32"), Attr("c.type","signed")]), - Var("__libc_start_main_arg2",Imm(32)), LOW(32,Var("R1",Imm(64))), In()), -Arg(Tid(1_497, "%000005d9"), Attrs([Attr("c.layout","**[char : 8]"), -Attr("c.data","Top:u8 ptr ptr"), Attr("c.type","char**")]), - Var("__libc_start_main_arg3",Imm(64)), Var("R2",Imm(64)), Both()), -Arg(Tid(1_498, "%000005da"), Attrs([Attr("c.layout","*[ : 8]"), -Attr("c.data","{} ptr"), Attr("c.type","void*")]), - Var("__libc_start_main_auxv",Imm(64)), Var("R3",Imm(64)), Both()), -Arg(Tid(1_499, "%000005db"), Attrs([Attr("c.layout","[signed : 32]"), -Attr("c.data","Top:u32"), Attr("c.type","signed")]), - Var("__libc_start_main_result",Imm(32)), LOW(32,Var("R0",Imm(64))), -Out())]), Blks([Blk(Tid(495, "@__libc_start_main"), - Attrs([Attr("address","0x5F0")]), Phis([]), -Defs([Def(Tid(1_177, "%00000499"), Attrs([Attr("address","0x5F0"), -Attr("insn","adrp x16, #69632")]), Var("R16",Imm(64)), Int(69632,64)), -Def(Tid(1_184, "%000004a0"), Attrs([Attr("address","0x5F4"), -Attr("insn","ldr x17, [x16]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R16",Imm(64)),LittleEndian(),64)), -Def(Tid(1_190, "%000004a6"), Attrs([Attr("address","0x5F8"), -Attr("insn","add x16, x16, #0x0")]), Var("R16",Imm(64)), -Var("R16",Imm(64)))]), Jmps([Call(Tid(1_195, "%000004ab"), - Attrs([Attr("address","0x5FC"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), Sub(Tid(1_446, "@_fini"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x79C")]), - "_fini", Args([Arg(Tid(1_500, "%000005dc"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("_fini_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(31, "@_fini"), - Attrs([Attr("address","0x79C")]), Phis([]), Defs([Def(Tid(37, "%00000025"), - Attrs([Attr("address","0x7A0"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("#0",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(18446744073709551600,64))), -Def(Tid(43, "%0000002b"), Attrs([Attr("address","0x7A0"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("#0",Imm(64)),Var("R29",Imm(64)),LittleEndian(),64)), -Def(Tid(49, "%00000031"), Attrs([Attr("address","0x7A0"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("#0",Imm(64)),Int(8,64)),Var("R30",Imm(64)),LittleEndian(),64)), -Def(Tid(53, "%00000035"), Attrs([Attr("address","0x7A0"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("R31",Imm(64)), -Var("#0",Imm(64))), Def(Tid(59, "%0000003b"), Attrs([Attr("address","0x7A4"), -Attr("insn","mov x29, sp")]), Var("R29",Imm(64)), Var("R31",Imm(64))), -Def(Tid(66, "%00000042"), Attrs([Attr("address","0x7A8"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R29",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(71, "%00000047"), Attrs([Attr("address","0x7A8"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R30",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(75, "%0000004b"), Attrs([Attr("address","0x7A8"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(16,64)))]), Jmps([Call(Tid(80, "%00000050"), - Attrs([Attr("address","0x7AC"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), Sub(Tid(1_447, "@_init"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x5B0")]), - "_init", Args([Arg(Tid(1_501, "%000005dd"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("_init_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(1_289, "@_init"), - Attrs([Attr("address","0x5B0")]), Phis([]), -Defs([Def(Tid(1_295, "%0000050f"), Attrs([Attr("address","0x5B4"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("#6",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(18446744073709551600,64))), -Def(Tid(1_301, "%00000515"), Attrs([Attr("address","0x5B4"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("#6",Imm(64)),Var("R29",Imm(64)),LittleEndian(),64)), -Def(Tid(1_307, "%0000051b"), Attrs([Attr("address","0x5B4"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("#6",Imm(64)),Int(8,64)),Var("R30",Imm(64)),LittleEndian(),64)), -Def(Tid(1_311, "%0000051f"), Attrs([Attr("address","0x5B4"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("R31",Imm(64)), -Var("#6",Imm(64))), Def(Tid(1_317, "%00000525"), - Attrs([Attr("address","0x5B8"), Attr("insn","mov x29, sp")]), - Var("R29",Imm(64)), Var("R31",Imm(64))), Def(Tid(1_322, "%0000052a"), - Attrs([Attr("address","0x5BC"), Attr("insn","bl #0xb8")]), - Var("R30",Imm(64)), Int(1472,64))]), Jmps([Call(Tid(1_324, "%0000052c"), - Attrs([Attr("address","0x5BC"), Attr("insn","bl #0xb8")]), Int(1,1), -(Direct(Tid(1_452, "@call_weak_fn")),Direct(Tid(1_326, "%0000052e"))))])), -Blk(Tid(1_326, "%0000052e"), Attrs([Attr("address","0x5C0")]), Phis([]), -Defs([Def(Tid(1_331, "%00000533"), Attrs([Attr("address","0x5C0"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R29",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(1_336, "%00000538"), Attrs([Attr("address","0x5C0"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R30",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(1_340, "%0000053c"), Attrs([Attr("address","0x5C0"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(16,64)))]), Jmps([Call(Tid(1_345, "%00000541"), - Attrs([Attr("address","0x5C4"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), Sub(Tid(1_448, "@_start"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x640"), -Attr("entry-point","()")]), "_start", Args([Arg(Tid(1_502, "%000005de"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("_start_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(432, "@_start"), - Attrs([Attr("address","0x640")]), Phis([]), Defs([Def(Tid(437, "%000001b5"), - Attrs([Attr("address","0x644"), Attr("insn","mov x29, #0x0")]), - Var("R29",Imm(64)), Int(0,64)), Def(Tid(442, "%000001ba"), - Attrs([Attr("address","0x648"), Attr("insn","mov x30, #0x0")]), - Var("R30",Imm(64)), Int(0,64)), Def(Tid(448, "%000001c0"), - Attrs([Attr("address","0x64C"), Attr("insn","mov x5, x0")]), - Var("R5",Imm(64)), Var("R0",Imm(64))), Def(Tid(455, "%000001c7"), - Attrs([Attr("address","0x650"), Attr("insn","ldr x1, [sp]")]), - Var("R1",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(461, "%000001cd"), Attrs([Attr("address","0x654"), -Attr("insn","add x2, sp, #0x8")]), Var("R2",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(8,64))), Def(Tid(467, "%000001d3"), - Attrs([Attr("address","0x658"), Attr("insn","mov x6, sp")]), - Var("R6",Imm(64)), Var("R31",Imm(64))), Def(Tid(472, "%000001d8"), - Attrs([Attr("address","0x65C"), Attr("insn","adrp x0, #65536")]), - Var("R0",Imm(64)), Int(65536,64)), Def(Tid(479, "%000001df"), - Attrs([Attr("address","0x660"), Attr("insn","ldr x0, [x0, #0xfd8]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(4056,64)),LittleEndian(),64)), -Def(Tid(484, "%000001e4"), Attrs([Attr("address","0x664"), -Attr("insn","mov x3, #0x0")]), Var("R3",Imm(64)), Int(0,64)), -Def(Tid(489, "%000001e9"), Attrs([Attr("address","0x668"), -Attr("insn","mov x4, #0x0")]), Var("R4",Imm(64)), Int(0,64)), -Def(Tid(494, "%000001ee"), Attrs([Attr("address","0x66C"), -Attr("insn","bl #-0x7c")]), Var("R30",Imm(64)), Int(1648,64))]), -Jmps([Call(Tid(497, "%000001f1"), Attrs([Attr("address","0x66C"), -Attr("insn","bl #-0x7c")]), Int(1,1), -(Direct(Tid(1_445, "@__libc_start_main")),Direct(Tid(499, "%000001f3"))))])), -Blk(Tid(499, "%000001f3"), Attrs([Attr("address","0x670")]), Phis([]), -Defs([Def(Tid(502, "%000001f6"), Attrs([Attr("address","0x670"), -Attr("insn","bl #-0x50")]), Var("R30",Imm(64)), Int(1652,64))]), -Jmps([Call(Tid(505, "%000001f9"), Attrs([Attr("address","0x670"), -Attr("insn","bl #-0x50")]), Int(1,1), -(Direct(Tid(1_451, "@abort")),Direct(Tid(1_484, "%000005cc"))))])), -Blk(Tid(1_484, "%000005cc"), Attrs([]), Phis([]), Defs([]), -Jmps([Call(Tid(1_485, "%000005cd"), Attrs([]), Int(1,1), -(Direct(Tid(1_452, "@call_weak_fn")),))]))])), Sub(Tid(1_451, "@abort"), - Attrs([Attr("noreturn","()"), Attr("c.proto","void (*)(void)"), -Attr("address","0x620"), Attr("stub","()")]), "abort", Args([]), -Blks([Blk(Tid(503, "@abort"), Attrs([Attr("address","0x620")]), Phis([]), -Defs([Def(Tid(1_243, "%000004db"), Attrs([Attr("address","0x620"), -Attr("insn","adrp x16, #69632")]), Var("R16",Imm(64)), Int(69632,64)), -Def(Tid(1_250, "%000004e2"), Attrs([Attr("address","0x624"), -Attr("insn","ldr x17, [x16, #0x18]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(24,64)),LittleEndian(),64)), -Def(Tid(1_256, "%000004e8"), Attrs([Attr("address","0x628"), -Attr("insn","add x16, x16, #0x18")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(24,64)))]), Jmps([Call(Tid(1_261, "%000004ed"), - Attrs([Attr("address","0x62C"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), Sub(Tid(1_452, "@call_weak_fn"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x674")]), - "call_weak_fn", Args([Arg(Tid(1_503, "%000005df"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("call_weak_fn_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(507, "@call_weak_fn"), - Attrs([Attr("address","0x674")]), Phis([]), Defs([Def(Tid(510, "%000001fe"), - Attrs([Attr("address","0x674"), Attr("insn","adrp x0, #65536")]), - Var("R0",Imm(64)), Int(65536,64)), Def(Tid(517, "%00000205"), - Attrs([Attr("address","0x678"), Attr("insn","ldr x0, [x0, #0xfd0]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(4048,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(523, "%0000020b"), Attrs([Attr("address","0x67C"), -Attr("insn","cbz x0, #0x8")]), EQ(Var("R0",Imm(64)),Int(0,64)), -Direct(Tid(521, "%00000209"))), Goto(Tid(1_486, "%000005ce"), Attrs([]), - Int(1,1), Direct(Tid(1_015, "%000003f7")))])), Blk(Tid(521, "%00000209"), - Attrs([Attr("address","0x684")]), Phis([]), Defs([]), -Jmps([Call(Tid(529, "%00000211"), Attrs([Attr("address","0x684"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))])), -Blk(Tid(1_015, "%000003f7"), Attrs([Attr("address","0x680")]), Phis([]), -Defs([]), Jmps([Goto(Tid(1_018, "%000003fa"), Attrs([Attr("address","0x680"), -Attr("insn","b #-0x70")]), Int(1,1), -Direct(Tid(1_016, "@__gmon_start__")))])), Blk(Tid(1_016, "@__gmon_start__"), - Attrs([Attr("address","0x610")]), Phis([]), -Defs([Def(Tid(1_221, "%000004c5"), Attrs([Attr("address","0x610"), -Attr("insn","adrp x16, #69632")]), Var("R16",Imm(64)), Int(69632,64)), -Def(Tid(1_228, "%000004cc"), Attrs([Attr("address","0x614"), -Attr("insn","ldr x17, [x16, #0x10]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(16,64)),LittleEndian(),64)), -Def(Tid(1_234, "%000004d2"), Attrs([Attr("address","0x618"), -Attr("insn","add x16, x16, #0x10")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(16,64)))]), Jmps([Call(Tid(1_239, "%000004d7"), - Attrs([Attr("address","0x61C"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), -Sub(Tid(1_454, "@deregister_tm_clones"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x690")]), - "deregister_tm_clones", Args([Arg(Tid(1_504, "%000005e0"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("deregister_tm_clones_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(535, "@deregister_tm_clones"), - Attrs([Attr("address","0x690")]), Phis([]), Defs([Def(Tid(538, "%0000021a"), - Attrs([Attr("address","0x690"), Attr("insn","adrp x0, #69632")]), - Var("R0",Imm(64)), Int(69632,64)), Def(Tid(544, "%00000220"), - Attrs([Attr("address","0x694"), Attr("insn","add x0, x0, #0x30")]), - Var("R0",Imm(64)), PLUS(Var("R0",Imm(64)),Int(48,64))), -Def(Tid(549, "%00000225"), Attrs([Attr("address","0x698"), -Attr("insn","adrp x1, #69632")]), Var("R1",Imm(64)), Int(69632,64)), -Def(Tid(555, "%0000022b"), Attrs([Attr("address","0x69C"), -Attr("insn","add x1, x1, #0x30")]), Var("R1",Imm(64)), -PLUS(Var("R1",Imm(64)),Int(48,64))), Def(Tid(561, "%00000231"), - Attrs([Attr("address","0x6A0"), Attr("insn","cmp x1, x0")]), - Var("#1",Imm(64)), NOT(Var("R0",Imm(64)))), Def(Tid(566, "%00000236"), - Attrs([Attr("address","0x6A0"), Attr("insn","cmp x1, x0")]), - Var("#2",Imm(64)), PLUS(Var("R1",Imm(64)),NOT(Var("R0",Imm(64))))), -Def(Tid(572, "%0000023c"), Attrs([Attr("address","0x6A0"), -Attr("insn","cmp x1, x0")]), Var("VF",Imm(1)), -NEQ(SIGNED(65,PLUS(Var("#2",Imm(64)),Int(1,64))),PLUS(PLUS(SIGNED(65,Var("R1",Imm(64))),SIGNED(65,Var("#1",Imm(64)))),Int(1,65)))), -Def(Tid(578, "%00000242"), Attrs([Attr("address","0x6A0"), -Attr("insn","cmp x1, x0")]), Var("CF",Imm(1)), -NEQ(UNSIGNED(65,PLUS(Var("#2",Imm(64)),Int(1,64))),PLUS(PLUS(UNSIGNED(65,Var("R1",Imm(64))),UNSIGNED(65,Var("#1",Imm(64)))),Int(1,65)))), -Def(Tid(582, "%00000246"), Attrs([Attr("address","0x6A0"), -Attr("insn","cmp x1, x0")]), Var("ZF",Imm(1)), -EQ(PLUS(Var("#2",Imm(64)),Int(1,64)),Int(0,64))), Def(Tid(586, "%0000024a"), - Attrs([Attr("address","0x6A0"), Attr("insn","cmp x1, x0")]), - Var("NF",Imm(1)), Extract(63,63,PLUS(Var("#2",Imm(64)),Int(1,64))))]), -Jmps([Goto(Tid(592, "%00000250"), Attrs([Attr("address","0x6A4"), -Attr("insn","b.eq #0x18")]), EQ(Var("ZF",Imm(1)),Int(1,1)), -Direct(Tid(590, "%0000024e"))), Goto(Tid(1_487, "%000005cf"), Attrs([]), - Int(1,1), Direct(Tid(985, "%000003d9")))])), Blk(Tid(985, "%000003d9"), - Attrs([Attr("address","0x6A8")]), Phis([]), Defs([Def(Tid(988, "%000003dc"), - Attrs([Attr("address","0x6A8"), Attr("insn","adrp x1, #65536")]), - Var("R1",Imm(64)), Int(65536,64)), Def(Tid(995, "%000003e3"), - Attrs([Attr("address","0x6AC"), Attr("insn","ldr x1, [x1, #0xfb0]")]), - Var("R1",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R1",Imm(64)),Int(4016,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(1_000, "%000003e8"), Attrs([Attr("address","0x6B0"), -Attr("insn","cbz x1, #0xc")]), EQ(Var("R1",Imm(64)),Int(0,64)), -Direct(Tid(590, "%0000024e"))), Goto(Tid(1_488, "%000005d0"), Attrs([]), - Int(1,1), Direct(Tid(1_004, "%000003ec")))])), Blk(Tid(590, "%0000024e"), - Attrs([Attr("address","0x6BC")]), Phis([]), Defs([]), -Jmps([Call(Tid(598, "%00000256"), Attrs([Attr("address","0x6BC"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))])), -Blk(Tid(1_004, "%000003ec"), Attrs([Attr("address","0x6B4")]), Phis([]), -Defs([Def(Tid(1_008, "%000003f0"), Attrs([Attr("address","0x6B4"), -Attr("insn","mov x16, x1")]), Var("R16",Imm(64)), Var("R1",Imm(64)))]), -Jmps([Call(Tid(1_013, "%000003f5"), Attrs([Attr("address","0x6B8"), -Attr("insn","br x16")]), Int(1,1), (Indirect(Var("R16",Imm(64))),))]))])), -Sub(Tid(1_457, "@frame_dummy"), Attrs([Attr("c.proto","signed (*)(void)"), -Attr("address","0x750")]), "frame_dummy", Args([Arg(Tid(1_505, "%000005e1"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("frame_dummy_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(750, "@frame_dummy"), - Attrs([Attr("address","0x750")]), Phis([]), Defs([]), -Jmps([Call(Tid(752, "%000002f0"), Attrs([Attr("address","0x750"), -Attr("insn","b #-0x90")]), Int(1,1), -(Direct(Tid(1_460, "@register_tm_clones")),))]))])), Sub(Tid(1_458, "@main"), - Attrs([Attr("c.proto","signed (*)(signed argc, const char** argv)"), -Attr("address","0x754")]), "main", Args([Arg(Tid(1_506, "%000005e2"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("main_argc",Imm(32)), -LOW(32,Var("R0",Imm(64))), In()), Arg(Tid(1_507, "%000005e3"), - Attrs([Attr("c.layout","**[char : 8]"), Attr("c.data","Top:u8 ptr ptr"), -Attr("c.type"," const char**")]), Var("main_argv",Imm(64)), -Var("R1",Imm(64)), Both()), Arg(Tid(1_508, "%000005e4"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("main_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(754, "@main"), - Attrs([Attr("address","0x754")]), Phis([]), Defs([Def(Tid(758, "%000002f6"), - Attrs([Attr("address","0x754"), Attr("insn","sub sp, sp, #0x10")]), - Var("R31",Imm(64)), PLUS(Var("R31",Imm(64)),Int(18446744073709551600,64))), -Def(Tid(765, "%000002fd"), Attrs([Attr("address","0x758"), -Attr("insn","str wzr, [sp, #0xc]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(12,64)),Int(0,32),LittleEndian(),32)), -Def(Tid(772, "%00000304"), Attrs([Attr("address","0x75C"), -Attr("insn","str wzr, [sp, #0x8]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),Int(0,32),LittleEndian(),32)), -Def(Tid(777, "%00000309"), Attrs([Attr("address","0x760"), -Attr("insn","adrp x8, #65536")]), Var("R8",Imm(64)), Int(65536,64)), -Def(Tid(784, "%00000310"), Attrs([Attr("address","0x764"), -Attr("insn","ldr x8, [x8, #0xfc0]")]), Var("R8",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R8",Imm(64)),Int(4032,64)),LittleEndian(),64)), -Def(Tid(791, "%00000317"), Attrs([Attr("address","0x768"), -Attr("insn","ldr w8, [x8]")]), Var("R8",Imm(64)), -UNSIGNED(64,Load(Var("mem",Mem(64,8)),Var("R8",Imm(64)),LittleEndian(),32))), -Def(Tid(797, "%0000031d"), Attrs([Attr("address","0x76C"), -Attr("insn","subs w8, w8, #0x0")]), Var("#4",Imm(32)), -PLUS(Extract(31,0,Var("R8",Imm(64))),Int(4294967295,32))), -Def(Tid(802, "%00000322"), Attrs([Attr("address","0x76C"), -Attr("insn","subs w8, w8, #0x0")]), Var("VF",Imm(1)), -NEQ(SIGNED(33,PLUS(Var("#4",Imm(32)),Int(1,32))),PLUS(SIGNED(33,Extract(31,0,Var("R8",Imm(64)))),Int(0,33)))), -Def(Tid(807, "%00000327"), Attrs([Attr("address","0x76C"), -Attr("insn","subs w8, w8, #0x0")]), Var("CF",Imm(1)), -NEQ(UNSIGNED(33,PLUS(Var("#4",Imm(32)),Int(1,32))),PLUS(UNSIGNED(33,Extract(31,0,Var("R8",Imm(64)))),Int(4294967296,33)))), -Def(Tid(811, "%0000032b"), Attrs([Attr("address","0x76C"), -Attr("insn","subs w8, w8, #0x0")]), Var("ZF",Imm(1)), -EQ(PLUS(Var("#4",Imm(32)),Int(1,32)),Int(0,32))), Def(Tid(815, "%0000032f"), - Attrs([Attr("address","0x76C"), Attr("insn","subs w8, w8, #0x0")]), - Var("NF",Imm(1)), Extract(31,31,PLUS(Var("#4",Imm(32)),Int(1,32)))), -Def(Tid(819, "%00000333"), Attrs([Attr("address","0x76C"), -Attr("insn","subs w8, w8, #0x0")]), Var("R8",Imm(64)), -UNSIGNED(64,PLUS(Var("#4",Imm(32)),Int(1,32))))]), -Jmps([Goto(Tid(831, "%0000033f"), Attrs([Attr("address","0x770"), -Attr("insn","cset w8, ne")]), EQ(Var("ZF",Imm(1)),Int(1,1)), -Direct(Tid(824, "%00000338"))), Goto(Tid(832, "%00000340"), - Attrs([Attr("address","0x770"), Attr("insn","cset w8, ne")]), Int(1,1), -Direct(Tid(827, "%0000033b")))])), Blk(Tid(827, "%0000033b"), Attrs([]), - Phis([]), Defs([Def(Tid(828, "%0000033c"), Attrs([Attr("address","0x770"), -Attr("insn","cset w8, ne")]), Var("R8",Imm(64)), Int(1,64))]), -Jmps([Goto(Tid(834, "%00000342"), Attrs([Attr("address","0x770"), -Attr("insn","cset w8, ne")]), Int(1,1), Direct(Tid(830, "%0000033e")))])), -Blk(Tid(824, "%00000338"), Attrs([]), Phis([]), -Defs([Def(Tid(825, "%00000339"), Attrs([Attr("address","0x770"), -Attr("insn","cset w8, ne")]), Var("R8",Imm(64)), Int(0,64))]), -Jmps([Goto(Tid(833, "%00000341"), Attrs([Attr("address","0x770"), -Attr("insn","cset w8, ne")]), Int(1,1), Direct(Tid(830, "%0000033e")))])), -Blk(Tid(830, "%0000033e"), Attrs([]), Phis([]), Defs([]), -Jmps([Goto(Tid(840, "%00000348"), Attrs([Attr("address","0x774"), -Attr("insn","tbnz w8, #0x0, #0x1c")]), - EQ(Extract(0,0,Var("R8",Imm(64))),Int(1,1)), Direct(Tid(838, "%00000346"))), -Goto(Tid(1_489, "%000005d1"), Attrs([]), Int(1,1), -Direct(Tid(861, "%0000035d")))])), Blk(Tid(861, "%0000035d"), - Attrs([Attr("address","0x778")]), Phis([]), Defs([]), -Jmps([Goto(Tid(864, "%00000360"), Attrs([Attr("address","0x778"), -Attr("insn","b #0x4")]), Int(1,1), Direct(Tid(862, "%0000035e")))])), -Blk(Tid(862, "%0000035e"), Attrs([Attr("address","0x77C")]), Phis([]), -Defs([Def(Tid(868, "%00000364"), Attrs([Attr("address","0x77C"), -Attr("insn","adrp x8, #65536")]), Var("R8",Imm(64)), Int(65536,64)), -Def(Tid(875, "%0000036b"), Attrs([Attr("address","0x780"), -Attr("insn","ldr x8, [x8, #0xfc8]")]), Var("R8",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R8",Imm(64)),Int(4040,64)),LittleEndian(),64)), -Def(Tid(882, "%00000372"), Attrs([Attr("address","0x784"), -Attr("insn","ldr w8, [x8]")]), Var("R8",Imm(64)), -UNSIGNED(64,Load(Var("mem",Mem(64,8)),Var("R8",Imm(64)),LittleEndian(),32))), -Def(Tid(890, "%0000037a"), Attrs([Attr("address","0x788"), -Attr("insn","str w8, [sp, #0x8]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),Extract(31,0,Var("R8",Imm(64))),LittleEndian(),32))]), -Jmps([Goto(Tid(894, "%0000037e"), Attrs([Attr("address","0x78C"), -Attr("insn","b #0x4")]), Int(1,1), Direct(Tid(838, "%00000346")))])), -Blk(Tid(838, "%00000346"), Attrs([Attr("address","0x790")]), Phis([]), -Defs([Def(Tid(848, "%00000350"), Attrs([Attr("address","0x790"), -Attr("insn","ldr w0, [sp, #0x8]")]), Var("R0",Imm(64)), -UNSIGNED(64,Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),LittleEndian(),32))), -Def(Tid(854, "%00000356"), Attrs([Attr("address","0x794"), -Attr("insn","add sp, sp, #0x10")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(16,64)))]), Jmps([Call(Tid(859, "%0000035b"), - Attrs([Attr("address","0x798"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), -Sub(Tid(1_460, "@register_tm_clones"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x6C0")]), - "register_tm_clones", Args([Arg(Tid(1_509, "%000005e5"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("register_tm_clones_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(600, "@register_tm_clones"), Attrs([Attr("address","0x6C0")]), - Phis([]), Defs([Def(Tid(603, "%0000025b"), Attrs([Attr("address","0x6C0"), -Attr("insn","adrp x0, #69632")]), Var("R0",Imm(64)), Int(69632,64)), -Def(Tid(609, "%00000261"), Attrs([Attr("address","0x6C4"), -Attr("insn","add x0, x0, #0x30")]), Var("R0",Imm(64)), -PLUS(Var("R0",Imm(64)),Int(48,64))), Def(Tid(614, "%00000266"), - Attrs([Attr("address","0x6C8"), Attr("insn","adrp x1, #69632")]), - Var("R1",Imm(64)), Int(69632,64)), Def(Tid(620, "%0000026c"), - Attrs([Attr("address","0x6CC"), Attr("insn","add x1, x1, #0x30")]), - Var("R1",Imm(64)), PLUS(Var("R1",Imm(64)),Int(48,64))), -Def(Tid(627, "%00000273"), Attrs([Attr("address","0x6D0"), -Attr("insn","sub x1, x1, x0")]), Var("R1",Imm(64)), -PLUS(PLUS(Var("R1",Imm(64)),NOT(Var("R0",Imm(64)))),Int(1,64))), -Def(Tid(633, "%00000279"), Attrs([Attr("address","0x6D4"), -Attr("insn","lsr x2, x1, #63")]), Var("R2",Imm(64)), -Concat(Int(0,63),Extract(63,63,Var("R1",Imm(64))))), -Def(Tid(640, "%00000280"), Attrs([Attr("address","0x6D8"), -Attr("insn","add x1, x2, x1, asr #3")]), Var("R1",Imm(64)), -PLUS(Var("R2",Imm(64)),ARSHIFT(Var("R1",Imm(64)),Int(3,3)))), -Def(Tid(646, "%00000286"), Attrs([Attr("address","0x6DC"), -Attr("insn","asr x1, x1, #1")]), Var("R1",Imm(64)), -SIGNED(64,Extract(63,1,Var("R1",Imm(64)))))]), -Jmps([Goto(Tid(652, "%0000028c"), Attrs([Attr("address","0x6E0"), -Attr("insn","cbz x1, #0x18")]), EQ(Var("R1",Imm(64)),Int(0,64)), -Direct(Tid(650, "%0000028a"))), Goto(Tid(1_490, "%000005d2"), Attrs([]), - Int(1,1), Direct(Tid(955, "%000003bb")))])), Blk(Tid(955, "%000003bb"), - Attrs([Attr("address","0x6E4")]), Phis([]), Defs([Def(Tid(958, "%000003be"), - Attrs([Attr("address","0x6E4"), Attr("insn","adrp x2, #65536")]), - Var("R2",Imm(64)), Int(65536,64)), Def(Tid(965, "%000003c5"), - Attrs([Attr("address","0x6E8"), Attr("insn","ldr x2, [x2, #0xfe0]")]), - Var("R2",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R2",Imm(64)),Int(4064,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(970, "%000003ca"), Attrs([Attr("address","0x6EC"), -Attr("insn","cbz x2, #0xc")]), EQ(Var("R2",Imm(64)),Int(0,64)), -Direct(Tid(650, "%0000028a"))), Goto(Tid(1_491, "%000005d3"), Attrs([]), - Int(1,1), Direct(Tid(974, "%000003ce")))])), Blk(Tid(650, "%0000028a"), - Attrs([Attr("address","0x6F8")]), Phis([]), Defs([]), -Jmps([Call(Tid(658, "%00000292"), Attrs([Attr("address","0x6F8"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))])), -Blk(Tid(974, "%000003ce"), Attrs([Attr("address","0x6F0")]), Phis([]), -Defs([Def(Tid(978, "%000003d2"), Attrs([Attr("address","0x6F0"), -Attr("insn","mov x16, x2")]), Var("R16",Imm(64)), Var("R2",Imm(64)))]), -Jmps([Call(Tid(983, "%000003d7"), Attrs([Attr("address","0x6F4"), -Attr("insn","br x16")]), Int(1,1), -(Indirect(Var("R16",Imm(64))),))]))]))]))) \ No newline at end of file diff --git a/src/test/correct/basic_lock_security_read/clang_pic/basic_lock_security_read.bir b/src/test/correct/basic_lock_security_read/clang_pic/basic_lock_security_read.bir deleted file mode 100644 index 49f3046bd..000000000 --- a/src/test/correct/basic_lock_security_read/clang_pic/basic_lock_security_read.bir +++ /dev/null @@ -1,263 +0,0 @@ -000005d4: program -000005a0: sub __cxa_finalize(__cxa_finalize_result) -000005d5: __cxa_finalize_result :: out u32 = low:32[R0] - -000003b7: -000004af: R16 := 0x11000 -000004b6: R17 := mem[R16 + 8, el]:u64 -000004bc: R16 := R16 + 8 -000004c1: call R17 with noreturn - -000005a1: sub __do_global_dtors_aux(__do_global_dtors_aux_result) -000005d6: __do_global_dtors_aux_result :: out u32 = low:32[R0] - -00000296: -0000029a: #3 := R31 - 0x20 -000002a0: mem := mem with [#3, el]:u64 <- R29 -000002a6: mem := mem with [#3 + 8, el]:u64 <- R30 -000002aa: R31 := #3 -000002b0: R29 := R31 -000002b8: mem := mem with [R31 + 0x10, el]:u64 <- R19 -000002bd: R19 := 0x11000 -000002c4: R0 := pad:64[mem[R19 + 0x30]] -000002cb: when 31:0[R0] <> 0 goto %000002c9 -000005c9: goto %00000380 - -00000380: -00000383: R0 := 0x10000 -0000038a: R0 := mem[R0 + 0xFB8, el]:u64 -00000390: when R0 = 0 goto %0000038e -000005ca: goto %000003a7 - -000003a7: -000003aa: R0 := 0x11000 -000003b1: R0 := mem[R0 + 0x28, el]:u64 -000003b6: R30 := 0x730 -000003b9: call @__cxa_finalize with return %0000038e - -0000038e: -00000396: R30 := 0x734 -00000398: call @deregister_tm_clones with return %0000039a - -0000039a: -0000039d: R0 := 1 -000003a5: mem := mem with [R19 + 0x30] <- 7:0[R0] -000005cb: goto %000002c9 - -000002c9: -000002d3: R19 := mem[R31 + 0x10, el]:u64 -000002da: R29 := mem[R31, el]:u64 -000002df: R30 := mem[R31 + 8, el]:u64 -000002e3: R31 := R31 + 0x20 -000002e8: call R30 with noreturn - -000005a5: sub __libc_start_main(__libc_start_main_main, __libc_start_main_arg2, __libc_start_main_arg3, __libc_start_main_auxv, __libc_start_main_result) -000005d7: __libc_start_main_main :: in u64 = R0 -000005d8: __libc_start_main_arg2 :: in u32 = low:32[R1] -000005d9: __libc_start_main_arg3 :: in out u64 = R2 -000005da: __libc_start_main_auxv :: in out u64 = R3 -000005db: __libc_start_main_result :: out u32 = low:32[R0] - -000001ef: -00000499: R16 := 0x11000 -000004a0: R17 := mem[R16, el]:u64 -000004a6: R16 := R16 -000004ab: call R17 with noreturn - -000005a6: sub _fini(_fini_result) -000005dc: _fini_result :: out u32 = low:32[R0] - -0000001f: -00000025: #0 := R31 - 0x10 -0000002b: mem := mem with [#0, el]:u64 <- R29 -00000031: mem := mem with [#0 + 8, el]:u64 <- R30 -00000035: R31 := #0 -0000003b: R29 := R31 -00000042: R29 := mem[R31, el]:u64 -00000047: R30 := mem[R31 + 8, el]:u64 -0000004b: R31 := R31 + 0x10 -00000050: call R30 with noreturn - -000005a7: sub _init(_init_result) -000005dd: _init_result :: out u32 = low:32[R0] - -00000509: -0000050f: #6 := R31 - 0x10 -00000515: mem := mem with [#6, el]:u64 <- R29 -0000051b: mem := mem with [#6 + 8, el]:u64 <- R30 -0000051f: R31 := #6 -00000525: R29 := R31 -0000052a: R30 := 0x5C0 -0000052c: call @call_weak_fn with return %0000052e - -0000052e: -00000533: R29 := mem[R31, el]:u64 -00000538: R30 := mem[R31 + 8, el]:u64 -0000053c: R31 := R31 + 0x10 -00000541: call R30 with noreturn - -000005a8: sub _start(_start_result) -000005de: _start_result :: out u32 = low:32[R0] - -000001b0: -000001b5: R29 := 0 -000001ba: R30 := 0 -000001c0: R5 := R0 -000001c7: R1 := mem[R31, el]:u64 -000001cd: R2 := R31 + 8 -000001d3: R6 := R31 -000001d8: R0 := 0x10000 -000001df: R0 := mem[R0 + 0xFD8, el]:u64 -000001e4: R3 := 0 -000001e9: R4 := 0 -000001ee: R30 := 0x670 -000001f1: call @__libc_start_main with return %000001f3 - -000001f3: -000001f6: R30 := 0x674 -000001f9: call @abort with return %000005cc - -000005cc: -000005cd: call @call_weak_fn with noreturn - -000005ab: sub abort() - - -000001f7: -000004db: R16 := 0x11000 -000004e2: R17 := mem[R16 + 0x18, el]:u64 -000004e8: R16 := R16 + 0x18 -000004ed: call R17 with noreturn - -000005ac: sub call_weak_fn(call_weak_fn_result) -000005df: call_weak_fn_result :: out u32 = low:32[R0] - -000001fb: -000001fe: R0 := 0x10000 -00000205: R0 := mem[R0 + 0xFD0, el]:u64 -0000020b: when R0 = 0 goto %00000209 -000005ce: goto %000003f7 - -00000209: -00000211: call R30 with noreturn - -000003f7: -000003fa: goto @__gmon_start__ - -000003f8: -000004c5: R16 := 0x11000 -000004cc: R17 := mem[R16 + 0x10, el]:u64 -000004d2: R16 := R16 + 0x10 -000004d7: call R17 with noreturn - -000005ae: sub deregister_tm_clones(deregister_tm_clones_result) -000005e0: deregister_tm_clones_result :: out u32 = low:32[R0] - -00000217: -0000021a: R0 := 0x11000 -00000220: R0 := R0 + 0x30 -00000225: R1 := 0x11000 -0000022b: R1 := R1 + 0x30 -00000231: #1 := ~R0 -00000236: #2 := R1 + ~R0 -0000023c: VF := extend:65[#2 + 1] <> extend:65[R1] + extend:65[#1] + 1 -00000242: CF := pad:65[#2 + 1] <> pad:65[R1] + pad:65[#1] + 1 -00000246: ZF := #2 + 1 = 0 -0000024a: NF := 63:63[#2 + 1] -00000250: when ZF goto %0000024e -000005cf: goto %000003d9 - -000003d9: -000003dc: R1 := 0x10000 -000003e3: R1 := mem[R1 + 0xFB0, el]:u64 -000003e8: when R1 = 0 goto %0000024e -000005d0: goto %000003ec - -0000024e: -00000256: call R30 with noreturn - -000003ec: -000003f0: R16 := R1 -000003f5: call R16 with noreturn - -000005b1: sub frame_dummy(frame_dummy_result) -000005e1: frame_dummy_result :: out u32 = low:32[R0] - -000002ee: -000002f0: call @register_tm_clones with noreturn - -000005b2: sub main(main_argc, main_argv, main_result) -000005e2: main_argc :: in u32 = low:32[R0] -000005e3: main_argv :: in out u64 = R1 -000005e4: main_result :: out u32 = low:32[R0] - -000002f2: -000002f6: R31 := R31 - 0x10 -000002fd: mem := mem with [R31 + 0xC, el]:u32 <- 0 -00000304: mem := mem with [R31 + 8, el]:u32 <- 0 -00000309: R8 := 0x10000 -00000310: R8 := mem[R8 + 0xFC0, el]:u64 -00000317: R8 := pad:64[mem[R8, el]:u32] -0000031d: #4 := 31:0[R8] - 1 -00000322: VF := extend:33[#4 + 1] <> extend:33[31:0[R8]] + 0 -00000327: CF := pad:33[#4 + 1] <> pad:33[31:0[R8]] - 0x100000000 -0000032b: ZF := #4 + 1 = 0 -0000032f: NF := 31:31[#4 + 1] -00000333: R8 := pad:64[#4 + 1] -0000033f: when ZF goto %00000338 -00000340: goto %0000033b - -0000033b: -0000033c: R8 := 1 -00000342: goto %0000033e - -00000338: -00000339: R8 := 0 -00000341: goto %0000033e - -0000033e: -00000348: when 0:0[R8] goto %00000346 -000005d1: goto %0000035d - -0000035d: -00000360: goto %0000035e - -0000035e: -00000364: R8 := 0x10000 -0000036b: R8 := mem[R8 + 0xFC8, el]:u64 -00000372: R8 := pad:64[mem[R8, el]:u32] -0000037a: mem := mem with [R31 + 8, el]:u32 <- 31:0[R8] -0000037e: goto %00000346 - -00000346: -00000350: R0 := pad:64[mem[R31 + 8, el]:u32] -00000356: R31 := R31 + 0x10 -0000035b: call R30 with noreturn - -000005b4: sub register_tm_clones(register_tm_clones_result) -000005e5: register_tm_clones_result :: out u32 = low:32[R0] - -00000258: -0000025b: R0 := 0x11000 -00000261: R0 := R0 + 0x30 -00000266: R1 := 0x11000 -0000026c: R1 := R1 + 0x30 -00000273: R1 := R1 + ~R0 + 1 -00000279: R2 := 0.63:63[R1] -00000280: R1 := R2 + (R1 ~>> 3) -00000286: R1 := extend:64[63:1[R1]] -0000028c: when R1 = 0 goto %0000028a -000005d2: goto %000003bb - -000003bb: -000003be: R2 := 0x10000 -000003c5: R2 := mem[R2 + 0xFE0, el]:u64 -000003ca: when R2 = 0 goto %0000028a -000005d3: goto %000003ce - -0000028a: -00000292: call R30 with noreturn - -000003ce: -000003d2: R16 := R2 -000003d7: call R16 with noreturn diff --git a/src/test/correct/basic_lock_security_read/clang_pic/basic_lock_security_read.expected b/src/test/correct/basic_lock_security_read/clang_pic/basic_lock_security_read.expected index 511f46791..df2de2055 100644 --- a/src/test/correct/basic_lock_security_read/clang_pic/basic_lock_security_read.expected +++ b/src/test/correct/basic_lock_security_read/clang_pic/basic_lock_security_read.expected @@ -2,35 +2,29 @@ var {:extern} CF: bv1; var {:extern} Gamma_CF: bool; var {:extern} Gamma_NF: bool; var {:extern} Gamma_R0: bool; -var {:extern} Gamma_R31: bool; var {:extern} Gamma_R8: bool; +var {:extern} Gamma_R9: bool; var {:extern} Gamma_VF: bool; var {:extern} Gamma_ZF: bool; var {:extern} Gamma_mem: [bv64]bool; -var {:extern} Gamma_stack: [bv64]bool; var {:extern} NF: bv1; var {:extern} R0: bv64; -var {:extern} R31: bv64; var {:extern} R8: bv64; +var {:extern} R9: bv64; var {:extern} VF: bv1; var {:extern} ZF: bv1; var {:extern} mem: [bv64]bv8; -var {:extern} stack: [bv64]bv8; const {:extern} $x_addr: bv64; -axiom ($x_addr == 69688bv64); +axiom ($x_addr == 131096bv64); const {:extern} $z_addr: bv64; -axiom ($z_addr == 69684bv64); +axiom ($z_addr == 131092bv64); function {:extern} L(mem$in: [bv64]bv8, index: bv64) returns (bool) { (if (index == $x_addr) then (memory_load32_le(mem$in, $z_addr) == 0bv32) else (if (index == $z_addr) then true else false)) } -function {:extern} {:bvbuiltin "bvadd"} bvadd32(bv32, bv32) returns (bv32); -function {:extern} {:bvbuiltin "bvadd"} bvadd33(bv33, bv33) returns (bv33); function {:extern} {:bvbuiltin "bvadd"} bvadd64(bv64, bv64) returns (bv64); function {:extern} {:bvbuiltin "bvcomp"} bvcomp1(bv1, bv1) returns (bv1); function {:extern} {:bvbuiltin "bvcomp"} bvcomp32(bv32, bv32) returns (bv1); -function {:extern} {:bvbuiltin "bvcomp"} bvcomp33(bv33, bv33) returns (bv1); -function {:extern} {:bvbuiltin "bvnot"} bvnot1(bv1) returns (bv1); function {:extern} gamma_load32(gammaMap: [bv64]bool, index: bv64) returns (bool) { (gammaMap[bvadd64(index, 3bv64)] && (gammaMap[bvadd64(index, 2bv64)] && (gammaMap[bvadd64(index, 1bv64)] && gammaMap[index]))) } @@ -39,10 +33,6 @@ function {:extern} gamma_load64(gammaMap: [bv64]bool, index: bv64) returns (bool (gammaMap[bvadd64(index, 7bv64)] && (gammaMap[bvadd64(index, 6bv64)] && (gammaMap[bvadd64(index, 5bv64)] && (gammaMap[bvadd64(index, 4bv64)] && (gammaMap[bvadd64(index, 3bv64)] && (gammaMap[bvadd64(index, 2bv64)] && (gammaMap[bvadd64(index, 1bv64)] && gammaMap[index]))))))) } -function {:extern} gamma_store32(gammaMap: [bv64]bool, index: bv64, value: bool) returns ([bv64]bool) { - gammaMap[index := value][bvadd64(index, 1bv64) := value][bvadd64(index, 2bv64) := value][bvadd64(index, 3bv64) := value] -} - function {:extern} memory_load32_le(memory: [bv64]bv8, index: bv64) returns (bv32) { (memory[bvadd64(index, 3bv64)] ++ (memory[bvadd64(index, 2bv64)] ++ (memory[bvadd64(index, 1bv64)] ++ memory[index]))) } @@ -51,24 +41,18 @@ function {:extern} memory_load64_le(memory: [bv64]bv8, index: bv64) returns (bv6 (memory[bvadd64(index, 7bv64)] ++ (memory[bvadd64(index, 6bv64)] ++ (memory[bvadd64(index, 5bv64)] ++ (memory[bvadd64(index, 4bv64)] ++ (memory[bvadd64(index, 3bv64)] ++ (memory[bvadd64(index, 2bv64)] ++ (memory[bvadd64(index, 1bv64)] ++ memory[index]))))))) } -function {:extern} memory_store32_le(memory: [bv64]bv8, index: bv64, value: bv32) returns ([bv64]bv8) { - memory[index := value[8:0]][bvadd64(index, 1bv64) := value[16:8]][bvadd64(index, 2bv64) := value[24:16]][bvadd64(index, 3bv64) := value[32:24]] -} - -function {:extern} {:bvbuiltin "sign_extend 1"} sign_extend1_32(bv32) returns (bv33); -function {:extern} {:bvbuiltin "zero_extend 1"} zero_extend1_32(bv32) returns (bv33); function {:extern} {:bvbuiltin "zero_extend 32"} zero_extend32_32(bv32) returns (bv64); procedure {:extern} rely(); modifies Gamma_mem, mem; ensures (forall i: bv64 :: (((mem[i] == old(mem[i])) ==> (Gamma_mem[i] == old(Gamma_mem[i]))))); ensures ((old(memory_load32_le(mem, $z_addr)) == 0bv32) ==> ((memory_load32_le(mem, $x_addr) == old(memory_load32_le(mem, $x_addr))) && (memory_load32_le(mem, $z_addr) == old(memory_load32_le(mem, $z_addr))))); - free ensures (memory_load32_le(mem, 1968bv64) == 131073bv32); - free ensures (memory_load64_le(mem, 69048bv64) == 1872bv64); - free ensures (memory_load64_le(mem, 69056bv64) == 1792bv64); - free ensures (memory_load64_le(mem, 69568bv64) == 69684bv64); - free ensures (memory_load64_le(mem, 69576bv64) == 69688bv64); - free ensures (memory_load64_le(mem, 69592bv64) == 1876bv64); - free ensures (memory_load64_le(mem, 69672bv64) == 69672bv64); + free ensures (memory_load32_le(mem, 2316bv64) == 131073bv32); + free ensures (memory_load64_le(mem, 130424bv64) == 2256bv64); + free ensures (memory_load64_le(mem, 130432bv64) == 2176bv64); + free ensures (memory_load64_le(mem, 131032bv64) == 131092bv64); + free ensures (memory_load64_le(mem, 131040bv64) == 131096bv64); + free ensures (memory_load64_le(mem, 131056bv64) == 2260bv64); + free ensures (memory_load64_le(mem, 131080bv64) == 131080bv64); procedure {:extern} rely_transitive(); modifies Gamma_mem, mem; @@ -95,114 +79,78 @@ implementation {:extern} guarantee_reflexive() assert ((memory_load32_le(mem, $z_addr) == memory_load32_le(mem, $z_addr)) && (memory_load32_le(mem, $x_addr) == memory_load32_le(mem, $x_addr))); } -procedure main_1876(); - modifies CF, Gamma_CF, Gamma_NF, Gamma_R0, Gamma_R31, Gamma_R8, Gamma_VF, Gamma_ZF, Gamma_mem, Gamma_stack, NF, R0, R31, R8, VF, ZF, mem, stack; - free requires (memory_load64_le(mem, 69664bv64) == 0bv64); - free requires (memory_load64_le(mem, 69672bv64) == 69672bv64); - free requires (memory_load32_le(mem, 1968bv64) == 131073bv32); - free requires (memory_load64_le(mem, 69048bv64) == 1872bv64); - free requires (memory_load64_le(mem, 69056bv64) == 1792bv64); - free requires (memory_load64_le(mem, 69568bv64) == 69684bv64); - free requires (memory_load64_le(mem, 69576bv64) == 69688bv64); - free requires (memory_load64_le(mem, 69592bv64) == 1876bv64); - free requires (memory_load64_le(mem, 69672bv64) == 69672bv64); - free ensures (Gamma_R31 == old(Gamma_R31)); - free ensures (R31 == old(R31)); - free ensures (memory_load32_le(mem, 1968bv64) == 131073bv32); - free ensures (memory_load64_le(mem, 69048bv64) == 1872bv64); - free ensures (memory_load64_le(mem, 69056bv64) == 1792bv64); - free ensures (memory_load64_le(mem, 69568bv64) == 69684bv64); - free ensures (memory_load64_le(mem, 69576bv64) == 69688bv64); - free ensures (memory_load64_le(mem, 69592bv64) == 1876bv64); - free ensures (memory_load64_le(mem, 69672bv64) == 69672bv64); - -implementation main_1876() +procedure main(); + modifies CF, Gamma_CF, Gamma_NF, Gamma_R0, Gamma_R8, Gamma_R9, Gamma_VF, Gamma_ZF, Gamma_mem, NF, R0, R8, R9, VF, ZF, mem; + free requires (memory_load64_le(mem, 131072bv64) == 0bv64); + free requires (memory_load64_le(mem, 131080bv64) == 131080bv64); + free requires (memory_load32_le(mem, 2316bv64) == 131073bv32); + free requires (memory_load64_le(mem, 130424bv64) == 2256bv64); + free requires (memory_load64_le(mem, 130432bv64) == 2176bv64); + free requires (memory_load64_le(mem, 131032bv64) == 131092bv64); + free requires (memory_load64_le(mem, 131040bv64) == 131096bv64); + free requires (memory_load64_le(mem, 131056bv64) == 2260bv64); + free requires (memory_load64_le(mem, 131080bv64) == 131080bv64); + free ensures (memory_load32_le(mem, 2316bv64) == 131073bv32); + free ensures (memory_load64_le(mem, 130424bv64) == 2256bv64); + free ensures (memory_load64_le(mem, 130432bv64) == 2176bv64); + free ensures (memory_load64_le(mem, 131032bv64) == 131092bv64); + free ensures (memory_load64_le(mem, 131040bv64) == 131096bv64); + free ensures (memory_load64_le(mem, 131056bv64) == 2260bv64); + free ensures (memory_load64_le(mem, 131080bv64) == 131080bv64); + +implementation main() { - var #4: bv32; - var Gamma_#4: bool; - var Gamma_load18: bool; - var Gamma_load19: bool; - var Gamma_load20: bool; - var Gamma_load21: bool; - var Gamma_load22: bool; - var load18: bv64; - var load19: bv32; - var load20: bv64; - var load21: bv32; - var load22: bv32; + var $load$18: bv64; + var $load$19: bv64; + var $load$20: bv32; + var $load$21: bv32; + var Gamma_$load$18: bool; + var Gamma_$load$19: bool; + var Gamma_$load$20: bool; + var Gamma_$load$21: bool; lmain: assume {:captureState "lmain"} true; - R31, Gamma_R31 := bvadd64(R31, 18446744073709551600bv64), Gamma_R31; - stack, Gamma_stack := memory_store32_le(stack, bvadd64(R31, 12bv64), 0bv32), gamma_store32(Gamma_stack, bvadd64(R31, 12bv64), true); - assume {:captureState "%000002fd"} true; - stack, Gamma_stack := memory_store32_le(stack, bvadd64(R31, 8bv64), 0bv32), gamma_store32(Gamma_stack, bvadd64(R31, 8bv64), true); - assume {:captureState "%00000304"} true; - R8, Gamma_R8 := 65536bv64, true; + R8, Gamma_R8 := 126976bv64, true; + R9, Gamma_R9 := 126976bv64, true; call rely(); - load18, Gamma_load18 := memory_load64_le(mem, bvadd64(R8, 4032bv64)), (gamma_load64(Gamma_mem, bvadd64(R8, 4032bv64)) || L(mem, bvadd64(R8, 4032bv64))); - R8, Gamma_R8 := load18, Gamma_load18; + $load$18, Gamma_$load$18 := memory_load64_le(mem, bvadd64(R8, 4056bv64)), (gamma_load64(Gamma_mem, bvadd64(R8, 4056bv64)) || L(mem, bvadd64(R8, 4056bv64))); + R8, Gamma_R8 := $load$18, Gamma_$load$18; call rely(); - load19, Gamma_load19 := memory_load32_le(mem, R8), (gamma_load32(Gamma_mem, R8) || L(mem, R8)); - R8, Gamma_R8 := zero_extend32_32(load19), Gamma_load19; - #4, Gamma_#4 := bvadd32(R8[32:0], 4294967295bv32), Gamma_R8; - VF, Gamma_VF := bvnot1(bvcomp33(sign_extend1_32(bvadd32(#4, 1bv32)), bvadd33(sign_extend1_32(R8[32:0]), 0bv33))), (Gamma_R8 && Gamma_#4); - CF, Gamma_CF := bvnot1(bvcomp33(zero_extend1_32(bvadd32(#4, 1bv32)), bvadd33(zero_extend1_32(R8[32:0]), 4294967296bv33))), (Gamma_R8 && Gamma_#4); - ZF, Gamma_ZF := bvcomp32(bvadd32(#4, 1bv32), 0bv32), Gamma_#4; - NF, Gamma_NF := bvadd32(#4, 1bv32)[32:31], Gamma_#4; - R8, Gamma_R8 := zero_extend32_32(bvadd32(#4, 1bv32)), Gamma_#4; - assert Gamma_ZF; - goto lmain_goto_l00000338, lmain_goto_l0000033b; - lmain_goto_l0000033b: - assume {:captureState "lmain_goto_l0000033b"} true; - assume (bvcomp1(ZF, 1bv1) == 0bv1); - R8, Gamma_R8 := 1bv64, true; - goto l0000033b; - l0000033b: - assume {:captureState "l0000033b"} true; - goto l0000033e; - lmain_goto_l00000338: - assume {:captureState "lmain_goto_l00000338"} true; - assume (bvcomp1(ZF, 1bv1) != 0bv1); - R8, Gamma_R8 := 0bv64, true; - goto l00000338; - l00000338: - assume {:captureState "l00000338"} true; - goto l0000033e; - l0000033e: - assume {:captureState "l0000033e"} true; - assert Gamma_R8; - goto l0000033e_goto_l00000346, l0000033e_goto_l0000035d; - l0000033e_goto_l0000035d: - assume {:captureState "l0000033e_goto_l0000035d"} true; - assume (bvcomp1(R8[1:0], 1bv1) == 0bv1); - goto l0000035d; - l0000035d: - assume {:captureState "l0000035d"} true; - goto l0000035e; - l0000035e: - assume {:captureState "l0000035e"} true; - R8, Gamma_R8 := 65536bv64, true; + $load$19, Gamma_$load$19 := memory_load64_le(mem, bvadd64(R9, 4064bv64)), (gamma_load64(Gamma_mem, bvadd64(R9, 4064bv64)) || L(mem, bvadd64(R9, 4064bv64))); + R9, Gamma_R9 := $load$19, Gamma_$load$19; call rely(); - load20, Gamma_load20 := memory_load64_le(mem, bvadd64(R8, 4040bv64)), (gamma_load64(Gamma_mem, bvadd64(R8, 4040bv64)) || L(mem, bvadd64(R8, 4040bv64))); - R8, Gamma_R8 := load20, Gamma_load20; + $load$20, Gamma_$load$20 := memory_load32_le(mem, R8), (gamma_load32(Gamma_mem, R8) || L(mem, R8)); + R8, Gamma_R8 := zero_extend32_32($load$20), Gamma_$load$20; call rely(); - load21, Gamma_load21 := memory_load32_le(mem, R8), (gamma_load32(Gamma_mem, R8) || L(mem, R8)); - R8, Gamma_R8 := zero_extend32_32(load21), Gamma_load21; - stack, Gamma_stack := memory_store32_le(stack, bvadd64(R31, 8bv64), R8[32:0]), gamma_store32(Gamma_stack, bvadd64(R31, 8bv64), Gamma_R8); - assume {:captureState "%0000037a"} true; - goto l00000346; - l0000033e_goto_l00000346: - assume {:captureState "l0000033e_goto_l00000346"} true; - assume (bvcomp1(R8[1:0], 1bv1) != 0bv1); - goto l00000346; - l00000346: - assume {:captureState "l00000346"} true; - load22, Gamma_load22 := memory_load32_le(stack, bvadd64(R31, 8bv64)), gamma_load32(Gamma_stack, bvadd64(R31, 8bv64)); - R0, Gamma_R0 := zero_extend32_32(load22), Gamma_load22; - R31, Gamma_R31 := bvadd64(R31, 16bv64), Gamma_R31; - goto main_1876_basil_return; - main_1876_basil_return: - assume {:captureState "main_1876_basil_return"} true; + $load$21, Gamma_$load$21 := memory_load32_le(mem, R9), (gamma_load32(Gamma_mem, R9) || L(mem, R9)); + R9, Gamma_R9 := zero_extend32_32($load$21), Gamma_$load$21; + VF, Gamma_VF := 0bv1, true; + CF, Gamma_CF := 1bv1, true; + ZF, Gamma_ZF := bvcomp32(R8[32:0], 0bv32), Gamma_R8; + NF, Gamma_NF := R8[32:31], Gamma_R8; + assert Gamma_ZF; + goto lmain_goto_l000002a8, lmain_goto_l000002b0; + l000002b0: + assume {:captureState "l000002b0"} true; + R0, Gamma_R0 := 0bv64, true; + goto l000002bc; + l000002a8: + assume {:captureState "l000002a8"} true; + R0, Gamma_R0 := zero_extend32_32(R9[32:0]), Gamma_R9; + goto l000002bc; + l000002bc: + assume {:captureState "l000002bc"} true; + goto main_basil_return; + lmain_goto_l000002a8: + assume {:captureState "lmain_goto_l000002a8"} true; + assume (bvcomp1(ZF, 1bv1) != 0bv1); + goto l000002a8; + lmain_goto_l000002b0: + assume {:captureState "lmain_goto_l000002b0"} true; + assume (bvcomp1(ZF, 1bv1) == 0bv1); + goto l000002b0; + main_basil_return: + assume {:captureState "main_basil_return"} true; return; } diff --git a/src/test/correct/basic_lock_security_read/clang_pic/basic_lock_security_read.gts b/src/test/correct/basic_lock_security_read/clang_pic/basic_lock_security_read.gts deleted file mode 100644 index 9384d8aa0..000000000 Binary files a/src/test/correct/basic_lock_security_read/clang_pic/basic_lock_security_read.gts and /dev/null differ diff --git a/src/test/correct/basic_lock_security_read/clang_pic/basic_lock_security_read.md5sum b/src/test/correct/basic_lock_security_read/clang_pic/basic_lock_security_read.md5sum new file mode 100644 index 000000000..a71599577 --- /dev/null +++ b/src/test/correct/basic_lock_security_read/clang_pic/basic_lock_security_read.md5sum @@ -0,0 +1,5 @@ +617623afa5690292f5ddf6e05dbe3578 correct/basic_lock_security_read/clang_pic/a.out +9c756835c138e65379029945208c78b5 correct/basic_lock_security_read/clang_pic/basic_lock_security_read.adt +f3380363ad28d969c9f1366c9740c003 correct/basic_lock_security_read/clang_pic/basic_lock_security_read.bir +6a49eb2a7b16160cf7a1eab2143cb562 correct/basic_lock_security_read/clang_pic/basic_lock_security_read.relf +839c3aa45738bbd88ef0ddc79e6a6507 correct/basic_lock_security_read/clang_pic/basic_lock_security_read.gts diff --git a/src/test/correct/basic_lock_security_read/clang_pic/basic_lock_security_read.relf b/src/test/correct/basic_lock_security_read/clang_pic/basic_lock_security_read.relf deleted file mode 100644 index c881d2460..000000000 --- a/src/test/correct/basic_lock_security_read/clang_pic/basic_lock_security_read.relf +++ /dev/null @@ -1,126 +0,0 @@ - -Relocation section '.rela.dyn' at offset 0x460 contains 10 entries: - Offset Info Type Symbol's Value Symbol's Name + Addend -0000000000010db8 0000000000000403 R_AARCH64_RELATIVE 750 -0000000000010dc0 0000000000000403 R_AARCH64_RELATIVE 700 -0000000000010fc0 0000000000000403 R_AARCH64_RELATIVE 11034 -0000000000010fc8 0000000000000403 R_AARCH64_RELATIVE 11038 -0000000000010fd8 0000000000000403 R_AARCH64_RELATIVE 754 -0000000000011028 0000000000000403 R_AARCH64_RELATIVE 11028 -0000000000010fb0 0000000400000401 R_AARCH64_GLOB_DAT 0000000000000000 _ITM_deregisterTMCloneTable + 0 -0000000000010fb8 0000000500000401 R_AARCH64_GLOB_DAT 0000000000000000 __cxa_finalize@GLIBC_2.17 + 0 -0000000000010fd0 0000000600000401 R_AARCH64_GLOB_DAT 0000000000000000 __gmon_start__ + 0 -0000000000010fe0 0000000800000401 R_AARCH64_GLOB_DAT 0000000000000000 _ITM_registerTMCloneTable + 0 - -Relocation section '.rela.plt' at offset 0x550 contains 4 entries: - Offset Info Type Symbol's Value Symbol's Name + Addend -0000000000011000 0000000300000402 R_AARCH64_JUMP_SLOT 0000000000000000 __libc_start_main@GLIBC_2.34 + 0 -0000000000011008 0000000500000402 R_AARCH64_JUMP_SLOT 0000000000000000 __cxa_finalize@GLIBC_2.17 + 0 -0000000000011010 0000000600000402 R_AARCH64_JUMP_SLOT 0000000000000000 __gmon_start__ + 0 -0000000000011018 0000000700000402 R_AARCH64_JUMP_SLOT 0000000000000000 abort@GLIBC_2.17 + 0 - -Symbol table '.dynsym' contains 9 entries: - Num: Value Size Type Bind Vis Ndx Name - 0: 0000000000000000 0 NOTYPE LOCAL DEFAULT UND - 1: 00000000000005b0 0 SECTION LOCAL DEFAULT 11 .init - 2: 0000000000011020 0 SECTION LOCAL DEFAULT 23 .data - 3: 0000000000000000 0 FUNC GLOBAL DEFAULT UND __libc_start_main@GLIBC_2.34 (2) - 4: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_deregisterTMCloneTable - 5: 0000000000000000 0 FUNC WEAK DEFAULT UND __cxa_finalize@GLIBC_2.17 (3) - 6: 0000000000000000 0 NOTYPE WEAK DEFAULT UND __gmon_start__ - 7: 0000000000000000 0 FUNC GLOBAL DEFAULT UND abort@GLIBC_2.17 (3) - 8: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_registerTMCloneTable - -Symbol table '.symtab' contains 91 entries: - Num: Value Size Type Bind Vis Ndx Name - 0: 0000000000000000 0 NOTYPE LOCAL DEFAULT UND - 1: 0000000000000238 0 SECTION LOCAL DEFAULT 1 .interp - 2: 0000000000000254 0 SECTION LOCAL DEFAULT 2 .note.gnu.build-id - 3: 0000000000000278 0 SECTION LOCAL DEFAULT 3 .note.ABI-tag - 4: 0000000000000298 0 SECTION LOCAL DEFAULT 4 .gnu.hash - 5: 00000000000002b8 0 SECTION LOCAL DEFAULT 5 .dynsym - 6: 0000000000000390 0 SECTION LOCAL DEFAULT 6 .dynstr - 7: 000000000000041e 0 SECTION LOCAL DEFAULT 7 .gnu.version - 8: 0000000000000430 0 SECTION LOCAL DEFAULT 8 .gnu.version_r - 9: 0000000000000460 0 SECTION LOCAL DEFAULT 9 .rela.dyn - 10: 0000000000000550 0 SECTION LOCAL DEFAULT 10 .rela.plt - 11: 00000000000005b0 0 SECTION LOCAL DEFAULT 11 .init - 12: 00000000000005d0 0 SECTION LOCAL DEFAULT 12 .plt - 13: 0000000000000640 0 SECTION LOCAL DEFAULT 13 .text - 14: 000000000000079c 0 SECTION LOCAL DEFAULT 14 .fini - 15: 00000000000007b0 0 SECTION LOCAL DEFAULT 15 .rodata - 16: 00000000000007b4 0 SECTION LOCAL DEFAULT 16 .eh_frame_hdr - 17: 00000000000007f0 0 SECTION LOCAL DEFAULT 17 .eh_frame - 18: 0000000000010db8 0 SECTION LOCAL DEFAULT 18 .init_array - 19: 0000000000010dc0 0 SECTION LOCAL DEFAULT 19 .fini_array - 20: 0000000000010dc8 0 SECTION LOCAL DEFAULT 20 .dynamic - 21: 0000000000010fa8 0 SECTION LOCAL DEFAULT 21 .got - 22: 0000000000010fe8 0 SECTION LOCAL DEFAULT 22 .got.plt - 23: 0000000000011020 0 SECTION LOCAL DEFAULT 23 .data - 24: 0000000000011030 0 SECTION LOCAL DEFAULT 24 .bss - 25: 0000000000000000 0 SECTION LOCAL DEFAULT 25 .comment - 26: 0000000000000000 0 FILE LOCAL DEFAULT ABS Scrt1.o - 27: 0000000000000278 0 NOTYPE LOCAL DEFAULT 3 $d - 28: 0000000000000278 32 OBJECT LOCAL DEFAULT 3 __abi_tag - 29: 0000000000000640 0 NOTYPE LOCAL DEFAULT 13 $x - 30: 0000000000000804 0 NOTYPE LOCAL DEFAULT 17 $d - 31: 00000000000007b0 0 NOTYPE LOCAL DEFAULT 15 $d - 32: 0000000000000000 0 FILE LOCAL DEFAULT ABS crti.o - 33: 0000000000000674 0 NOTYPE LOCAL DEFAULT 13 $x - 34: 0000000000000674 20 FUNC LOCAL DEFAULT 13 call_weak_fn - 35: 00000000000005b0 0 NOTYPE LOCAL DEFAULT 11 $x - 36: 000000000000079c 0 NOTYPE LOCAL DEFAULT 14 $x - 37: 0000000000000000 0 FILE LOCAL DEFAULT ABS crtn.o - 38: 00000000000005c0 0 NOTYPE LOCAL DEFAULT 11 $x - 39: 00000000000007a8 0 NOTYPE LOCAL DEFAULT 14 $x - 40: 0000000000000000 0 FILE LOCAL DEFAULT ABS crtstuff.c - 41: 0000000000000690 0 NOTYPE LOCAL DEFAULT 13 $x - 42: 0000000000000690 0 FUNC LOCAL DEFAULT 13 deregister_tm_clones - 43: 00000000000006c0 0 FUNC LOCAL DEFAULT 13 register_tm_clones - 44: 0000000000011028 0 NOTYPE LOCAL DEFAULT 23 $d - 45: 0000000000000700 0 FUNC LOCAL DEFAULT 13 __do_global_dtors_aux - 46: 0000000000011030 1 OBJECT LOCAL DEFAULT 24 completed.0 - 47: 0000000000010dc0 0 NOTYPE LOCAL DEFAULT 19 $d - 48: 0000000000010dc0 0 OBJECT LOCAL DEFAULT 19 __do_global_dtors_aux_fini_array_entry - 49: 0000000000000750 0 FUNC LOCAL DEFAULT 13 frame_dummy - 50: 0000000000010db8 0 NOTYPE LOCAL DEFAULT 18 $d - 51: 0000000000010db8 0 OBJECT LOCAL DEFAULT 18 __frame_dummy_init_array_entry - 52: 0000000000000818 0 NOTYPE LOCAL DEFAULT 17 $d - 53: 0000000000011030 0 NOTYPE LOCAL DEFAULT 24 $d - 54: 0000000000000000 0 FILE LOCAL DEFAULT ABS basic_lock_security_read.c - 55: 0000000000000754 0 NOTYPE LOCAL DEFAULT 13 $x.0 - 56: 0000000000011034 0 NOTYPE LOCAL DEFAULT 24 $d.1 - 57: 000000000000002a 0 NOTYPE LOCAL DEFAULT 25 $d.2 - 58: 0000000000000878 0 NOTYPE LOCAL DEFAULT 17 $d.3 - 59: 0000000000000000 0 FILE LOCAL DEFAULT ABS crtstuff.c - 60: 00000000000008a4 0 NOTYPE LOCAL DEFAULT 17 $d - 61: 00000000000008a4 0 OBJECT LOCAL DEFAULT 17 __FRAME_END__ - 62: 0000000000000000 0 FILE LOCAL DEFAULT ABS - 63: 0000000000010dc8 0 OBJECT LOCAL DEFAULT ABS _DYNAMIC - 64: 00000000000007b4 0 NOTYPE LOCAL DEFAULT 16 __GNU_EH_FRAME_HDR - 65: 0000000000010fa8 0 OBJECT LOCAL DEFAULT ABS _GLOBAL_OFFSET_TABLE_ - 66: 00000000000005d0 0 NOTYPE LOCAL DEFAULT 12 $x - 67: 0000000000000000 0 FUNC GLOBAL DEFAULT UND __libc_start_main@GLIBC_2.34 - 68: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_deregisterTMCloneTable - 69: 0000000000011020 0 NOTYPE WEAK DEFAULT 23 data_start - 70: 0000000000011030 0 NOTYPE GLOBAL DEFAULT 24 __bss_start__ - 71: 0000000000000000 0 FUNC WEAK DEFAULT UND __cxa_finalize@GLIBC_2.17 - 72: 0000000000011040 0 NOTYPE GLOBAL DEFAULT 24 _bss_end__ - 73: 0000000000011030 0 NOTYPE GLOBAL DEFAULT 23 _edata - 74: 0000000000011034 4 OBJECT GLOBAL DEFAULT 24 z - 75: 0000000000011038 4 OBJECT GLOBAL DEFAULT 24 x - 76: 000000000000079c 0 FUNC GLOBAL HIDDEN 14 _fini - 77: 0000000000011040 0 NOTYPE GLOBAL DEFAULT 24 __bss_end__ - 78: 0000000000011020 0 NOTYPE GLOBAL DEFAULT 23 __data_start - 79: 0000000000000000 0 NOTYPE WEAK DEFAULT UND __gmon_start__ - 80: 0000000000011028 0 OBJECT GLOBAL HIDDEN 23 __dso_handle - 81: 0000000000000000 0 FUNC GLOBAL DEFAULT UND abort@GLIBC_2.17 - 82: 00000000000007b0 4 OBJECT GLOBAL DEFAULT 15 _IO_stdin_used - 83: 0000000000011040 0 NOTYPE GLOBAL DEFAULT 24 _end - 84: 0000000000000640 52 FUNC GLOBAL DEFAULT 13 _start - 85: 0000000000011040 0 NOTYPE GLOBAL DEFAULT 24 __end__ - 86: 0000000000011030 0 NOTYPE GLOBAL DEFAULT 24 __bss_start - 87: 0000000000000754 72 FUNC GLOBAL DEFAULT 13 main - 88: 0000000000011030 0 OBJECT GLOBAL HIDDEN 23 __TMC_END__ - 89: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_registerTMCloneTable - 90: 00000000000005b0 0 FUNC GLOBAL HIDDEN 11 _init diff --git a/src/test/correct/basic_lock_security_read/clang_pic/basic_lock_security_read_gtirb.expected b/src/test/correct/basic_lock_security_read/clang_pic/basic_lock_security_read_gtirb.expected index b3e7c66f5..eace5b7bf 100644 --- a/src/test/correct/basic_lock_security_read/clang_pic/basic_lock_security_read_gtirb.expected +++ b/src/test/correct/basic_lock_security_read/clang_pic/basic_lock_security_read_gtirb.expected @@ -2,34 +2,28 @@ var {:extern} CF: bv1; var {:extern} Gamma_CF: bool; var {:extern} Gamma_NF: bool; var {:extern} Gamma_R0: bool; -var {:extern} Gamma_R31: bool; var {:extern} Gamma_R8: bool; +var {:extern} Gamma_R9: bool; var {:extern} Gamma_VF: bool; var {:extern} Gamma_ZF: bool; var {:extern} Gamma_mem: [bv64]bool; -var {:extern} Gamma_stack: [bv64]bool; var {:extern} NF: bv1; var {:extern} R0: bv64; -var {:extern} R31: bv64; var {:extern} R8: bv64; +var {:extern} R9: bv64; var {:extern} VF: bv1; var {:extern} ZF: bv1; var {:extern} mem: [bv64]bv8; -var {:extern} stack: [bv64]bv8; const {:extern} $x_addr: bv64; -axiom ($x_addr == 69688bv64); +axiom ($x_addr == 131096bv64); const {:extern} $z_addr: bv64; -axiom ($z_addr == 69684bv64); +axiom ($z_addr == 131092bv64); function {:extern} L(mem$in: [bv64]bv8, index: bv64) returns (bool) { (if (index == $x_addr) then (memory_load32_le(mem$in, $z_addr) == 0bv32) else (if (index == $z_addr) then true else false)) } -function {:extern} {:bvbuiltin "bvadd"} bvadd32(bv32, bv32) returns (bv32); -function {:extern} {:bvbuiltin "bvadd"} bvadd33(bv33, bv33) returns (bv33); function {:extern} {:bvbuiltin "bvadd"} bvadd64(bv64, bv64) returns (bv64); function {:extern} {:bvbuiltin "bvcomp"} bvcomp32(bv32, bv32) returns (bv1); -function {:extern} {:bvbuiltin "bvcomp"} bvcomp33(bv33, bv33) returns (bv1); -function {:extern} {:bvbuiltin "bvnot"} bvnot1(bv1) returns (bv1); function {:extern} gamma_load32(gammaMap: [bv64]bool, index: bv64) returns (bool) { (gammaMap[bvadd64(index, 3bv64)] && (gammaMap[bvadd64(index, 2bv64)] && (gammaMap[bvadd64(index, 1bv64)] && gammaMap[index]))) } @@ -38,10 +32,6 @@ function {:extern} gamma_load64(gammaMap: [bv64]bool, index: bv64) returns (bool (gammaMap[bvadd64(index, 7bv64)] && (gammaMap[bvadd64(index, 6bv64)] && (gammaMap[bvadd64(index, 5bv64)] && (gammaMap[bvadd64(index, 4bv64)] && (gammaMap[bvadd64(index, 3bv64)] && (gammaMap[bvadd64(index, 2bv64)] && (gammaMap[bvadd64(index, 1bv64)] && gammaMap[index]))))))) } -function {:extern} gamma_store32(gammaMap: [bv64]bool, index: bv64, value: bool) returns ([bv64]bool) { - gammaMap[index := value][bvadd64(index, 1bv64) := value][bvadd64(index, 2bv64) := value][bvadd64(index, 3bv64) := value] -} - function {:extern} memory_load32_le(memory: [bv64]bv8, index: bv64) returns (bv32) { (memory[bvadd64(index, 3bv64)] ++ (memory[bvadd64(index, 2bv64)] ++ (memory[bvadd64(index, 1bv64)] ++ memory[index]))) } @@ -50,23 +40,18 @@ function {:extern} memory_load64_le(memory: [bv64]bv8, index: bv64) returns (bv6 (memory[bvadd64(index, 7bv64)] ++ (memory[bvadd64(index, 6bv64)] ++ (memory[bvadd64(index, 5bv64)] ++ (memory[bvadd64(index, 4bv64)] ++ (memory[bvadd64(index, 3bv64)] ++ (memory[bvadd64(index, 2bv64)] ++ (memory[bvadd64(index, 1bv64)] ++ memory[index]))))))) } -function {:extern} memory_store32_le(memory: [bv64]bv8, index: bv64, value: bv32) returns ([bv64]bv8) { - memory[index := value[8:0]][bvadd64(index, 1bv64) := value[16:8]][bvadd64(index, 2bv64) := value[24:16]][bvadd64(index, 3bv64) := value[32:24]] -} - -function {:extern} {:bvbuiltin "zero_extend 1"} zero_extend1_32(bv32) returns (bv33); function {:extern} {:bvbuiltin "zero_extend 32"} zero_extend32_32(bv32) returns (bv64); procedure {:extern} rely(); modifies Gamma_mem, mem; ensures (forall i: bv64 :: (((mem[i] == old(mem[i])) ==> (Gamma_mem[i] == old(Gamma_mem[i]))))); ensures ((old(memory_load32_le(mem, $z_addr)) == 0bv32) ==> ((memory_load32_le(mem, $x_addr) == old(memory_load32_le(mem, $x_addr))) && (memory_load32_le(mem, $z_addr) == old(memory_load32_le(mem, $z_addr))))); - free ensures (memory_load32_le(mem, 1968bv64) == 131073bv32); - free ensures (memory_load64_le(mem, 69048bv64) == 1872bv64); - free ensures (memory_load64_le(mem, 69056bv64) == 1792bv64); - free ensures (memory_load64_le(mem, 69568bv64) == 69684bv64); - free ensures (memory_load64_le(mem, 69576bv64) == 69688bv64); - free ensures (memory_load64_le(mem, 69592bv64) == 1876bv64); - free ensures (memory_load64_le(mem, 69672bv64) == 69672bv64); + free ensures (memory_load32_le(mem, 2316bv64) == 131073bv32); + free ensures (memory_load64_le(mem, 130424bv64) == 2256bv64); + free ensures (memory_load64_le(mem, 130432bv64) == 2176bv64); + free ensures (memory_load64_le(mem, 131032bv64) == 131092bv64); + free ensures (memory_load64_le(mem, 131040bv64) == 131096bv64); + free ensures (memory_load64_le(mem, 131056bv64) == 2260bv64); + free ensures (memory_load64_le(mem, 131080bv64) == 131080bv64); procedure {:extern} rely_transitive(); modifies Gamma_mem, mem; @@ -93,106 +78,69 @@ implementation {:extern} guarantee_reflexive() assert ((memory_load32_le(mem, $z_addr) == memory_load32_le(mem, $z_addr)) && (memory_load32_le(mem, $x_addr) == memory_load32_le(mem, $x_addr))); } -procedure main_1876(); - modifies CF, Gamma_CF, Gamma_NF, Gamma_R0, Gamma_R31, Gamma_R8, Gamma_VF, Gamma_ZF, Gamma_mem, Gamma_stack, NF, R0, R31, R8, VF, ZF, mem, stack; - free requires (memory_load64_le(mem, 69664bv64) == 0bv64); - free requires (memory_load64_le(mem, 69672bv64) == 69672bv64); - free requires (memory_load32_le(mem, 1968bv64) == 131073bv32); - free requires (memory_load64_le(mem, 69048bv64) == 1872bv64); - free requires (memory_load64_le(mem, 69056bv64) == 1792bv64); - free requires (memory_load64_le(mem, 69568bv64) == 69684bv64); - free requires (memory_load64_le(mem, 69576bv64) == 69688bv64); - free requires (memory_load64_le(mem, 69592bv64) == 1876bv64); - free requires (memory_load64_le(mem, 69672bv64) == 69672bv64); - free ensures (Gamma_R31 == old(Gamma_R31)); - free ensures (R31 == old(R31)); - free ensures (memory_load32_le(mem, 1968bv64) == 131073bv32); - free ensures (memory_load64_le(mem, 69048bv64) == 1872bv64); - free ensures (memory_load64_le(mem, 69056bv64) == 1792bv64); - free ensures (memory_load64_le(mem, 69568bv64) == 69684bv64); - free ensures (memory_load64_le(mem, 69576bv64) == 69688bv64); - free ensures (memory_load64_le(mem, 69592bv64) == 1876bv64); - free ensures (memory_load64_le(mem, 69672bv64) == 69672bv64); - -implementation main_1876() +procedure main(); + modifies CF, Gamma_CF, Gamma_NF, Gamma_R0, Gamma_R8, Gamma_R9, Gamma_VF, Gamma_ZF, Gamma_mem, NF, R0, R8, R9, VF, ZF, mem; + free requires (memory_load64_le(mem, 131072bv64) == 0bv64); + free requires (memory_load64_le(mem, 131080bv64) == 131080bv64); + free requires (memory_load32_le(mem, 2316bv64) == 131073bv32); + free requires (memory_load64_le(mem, 130424bv64) == 2256bv64); + free requires (memory_load64_le(mem, 130432bv64) == 2176bv64); + free requires (memory_load64_le(mem, 131032bv64) == 131092bv64); + free requires (memory_load64_le(mem, 131040bv64) == 131096bv64); + free requires (memory_load64_le(mem, 131056bv64) == 2260bv64); + free requires (memory_load64_le(mem, 131080bv64) == 131080bv64); + free ensures (memory_load32_le(mem, 2316bv64) == 131073bv32); + free ensures (memory_load64_le(mem, 130424bv64) == 2256bv64); + free ensures (memory_load64_le(mem, 130432bv64) == 2176bv64); + free ensures (memory_load64_le(mem, 131032bv64) == 131092bv64); + free ensures (memory_load64_le(mem, 131040bv64) == 131096bv64); + free ensures (memory_load64_le(mem, 131056bv64) == 2260bv64); + free ensures (memory_load64_le(mem, 131080bv64) == 131080bv64); + +implementation main() { - var Cse0__5_0_6: bv32; - var Gamma_Cse0__5_0_6: bool; - var Gamma_load20: bool; - var Gamma_load21: bool; - var Gamma_load22: bool; - var Gamma_load23: bool; - var Gamma_load24: bool; - var load20: bv64; - var load21: bv32; - var load22: bv32; - var load23: bv64; - var load24: bv32; - main_1876__0__GWWZBuKKQM26VofqjYL7Vw: - assume {:captureState "main_1876__0__GWWZBuKKQM26VofqjYL7Vw"} true; - R31, Gamma_R31 := bvadd64(R31, 18446744073709551600bv64), Gamma_R31; - stack, Gamma_stack := memory_store32_le(stack, bvadd64(R31, 12bv64), 0bv32), gamma_store32(Gamma_stack, bvadd64(R31, 12bv64), true); - assume {:captureState "1880_0"} true; - stack, Gamma_stack := memory_store32_le(stack, bvadd64(R31, 8bv64), 0bv32), gamma_store32(Gamma_stack, bvadd64(R31, 8bv64), true); - assume {:captureState "1884_0"} true; - R8, Gamma_R8 := 65536bv64, true; + var $load5: bv64; + var $load6: bv64; + var $load7: bv32; + var $load8: bv32; + var Gamma_$load5: bool; + var Gamma_$load6: bool; + var Gamma_$load7: bool; + var Gamma_$load8: bool; + $main$__0__$D9t2gNJrSmyMH3GAVRe3IQ: + assume {:captureState "$main$__0__$D9t2gNJrSmyMH3GAVRe3IQ"} true; + R8, Gamma_R8 := 126976bv64, true; + R9, Gamma_R9 := 126976bv64, true; call rely(); - load20, Gamma_load20 := memory_load64_le(mem, bvadd64(R8, 4032bv64)), (gamma_load64(Gamma_mem, bvadd64(R8, 4032bv64)) || L(mem, bvadd64(R8, 4032bv64))); - R8, Gamma_R8 := load20, Gamma_load20; + $load5, Gamma_$load5 := memory_load64_le(mem, bvadd64(R8, 4056bv64)), (gamma_load64(Gamma_mem, bvadd64(R8, 4056bv64)) || L(mem, bvadd64(R8, 4056bv64))); + R8, Gamma_R8 := $load5, Gamma_$load5; call rely(); - load21, Gamma_load21 := memory_load32_le(mem, R8), (gamma_load32(Gamma_mem, R8) || L(mem, R8)); - R8, Gamma_R8 := zero_extend32_32(load21), Gamma_load21; - Cse0__5_0_6, Gamma_Cse0__5_0_6 := bvadd32(R8[32:0], 0bv32), Gamma_R8; - VF, Gamma_VF := bvnot1(bvcomp32(Cse0__5_0_6, Cse0__5_0_6)), Gamma_Cse0__5_0_6; - CF, Gamma_CF := bvnot1(bvcomp33(zero_extend1_32(Cse0__5_0_6), bvadd33(zero_extend1_32(R8[32:0]), 4294967296bv33))), (Gamma_R8 && Gamma_Cse0__5_0_6); - ZF, Gamma_ZF := bvcomp32(Cse0__5_0_6, 0bv32), Gamma_Cse0__5_0_6; - NF, Gamma_NF := Cse0__5_0_6[32:31], Gamma_Cse0__5_0_6; - R8, Gamma_R8 := zero_extend32_32(Cse0__5_0_6), Gamma_Cse0__5_0_6; - assert Gamma_ZF; - goto main_1876__0__GWWZBuKKQM26VofqjYL7Vw$__0, main_1876__0__GWWZBuKKQM26VofqjYL7Vw$__1; - main_1876__0__GWWZBuKKQM26VofqjYL7Vw$__1: - assume {:captureState "main_1876__0__GWWZBuKKQM26VofqjYL7Vw$__1"} true; - assume (!(ZF == 1bv1)); - R8, Gamma_R8 := 1bv64, true; - assert Gamma_R8; - goto main_1876__0__GWWZBuKKQM26VofqjYL7Vw_goto_main_1876__3__Tg~76Xl4R9iLF7N7aFS1Lg, main_1876__0__GWWZBuKKQM26VofqjYL7Vw_goto_main_1876__1__~AKjztrcRfKvIDu38BnCGQ; - main_1876__0__GWWZBuKKQM26VofqjYL7Vw$__0: - assume {:captureState "main_1876__0__GWWZBuKKQM26VofqjYL7Vw$__0"} true; - assume (ZF == 1bv1); - R8, Gamma_R8 := 0bv64, true; - assert Gamma_R8; - goto main_1876__0__GWWZBuKKQM26VofqjYL7Vw_goto_main_1876__3__Tg~76Xl4R9iLF7N7aFS1Lg, main_1876__0__GWWZBuKKQM26VofqjYL7Vw_goto_main_1876__1__~AKjztrcRfKvIDu38BnCGQ; - main_1876__0__GWWZBuKKQM26VofqjYL7Vw_goto_main_1876__1__~AKjztrcRfKvIDu38BnCGQ: - assume {:captureState "main_1876__0__GWWZBuKKQM26VofqjYL7Vw_goto_main_1876__1__~AKjztrcRfKvIDu38BnCGQ"} true; - assume (!(R8[1:0] == 1bv1)); - goto main_1876__1__~AKjztrcRfKvIDu38BnCGQ; - main_1876__1__~AKjztrcRfKvIDu38BnCGQ: - assume {:captureState "main_1876__1__~AKjztrcRfKvIDu38BnCGQ"} true; - goto main_1876__2__baAsuX2xSiqbUG_8VReSNg; - main_1876__2__baAsuX2xSiqbUG_8VReSNg: - assume {:captureState "main_1876__2__baAsuX2xSiqbUG_8VReSNg"} true; - R8, Gamma_R8 := 65536bv64, true; + $load6, Gamma_$load6 := memory_load64_le(mem, bvadd64(R9, 4064bv64)), (gamma_load64(Gamma_mem, bvadd64(R9, 4064bv64)) || L(mem, bvadd64(R9, 4064bv64))); + R9, Gamma_R9 := $load6, Gamma_$load6; call rely(); - load23, Gamma_load23 := memory_load64_le(mem, bvadd64(R8, 4040bv64)), (gamma_load64(Gamma_mem, bvadd64(R8, 4040bv64)) || L(mem, bvadd64(R8, 4040bv64))); - R8, Gamma_R8 := load23, Gamma_load23; + $load7, Gamma_$load7 := memory_load32_le(mem, R8), (gamma_load32(Gamma_mem, R8) || L(mem, R8)); + R8, Gamma_R8 := zero_extend32_32($load7), Gamma_$load7; call rely(); - load24, Gamma_load24 := memory_load32_le(mem, R8), (gamma_load32(Gamma_mem, R8) || L(mem, R8)); - R8, Gamma_R8 := zero_extend32_32(load24), Gamma_load24; - stack, Gamma_stack := memory_store32_le(stack, bvadd64(R31, 8bv64), R8[32:0]), gamma_store32(Gamma_stack, bvadd64(R31, 8bv64), Gamma_R8); - assume {:captureState "1928_0"} true; - goto main_1876__3__Tg~76Xl4R9iLF7N7aFS1Lg; - main_1876__0__GWWZBuKKQM26VofqjYL7Vw_goto_main_1876__3__Tg~76Xl4R9iLF7N7aFS1Lg: - assume {:captureState "main_1876__0__GWWZBuKKQM26VofqjYL7Vw_goto_main_1876__3__Tg~76Xl4R9iLF7N7aFS1Lg"} true; - assume (R8[1:0] == 1bv1); - goto main_1876__3__Tg~76Xl4R9iLF7N7aFS1Lg; - main_1876__3__Tg~76Xl4R9iLF7N7aFS1Lg: - assume {:captureState "main_1876__3__Tg~76Xl4R9iLF7N7aFS1Lg"} true; - load22, Gamma_load22 := memory_load32_le(stack, bvadd64(R31, 8bv64)), gamma_load32(Gamma_stack, bvadd64(R31, 8bv64)); - R0, Gamma_R0 := zero_extend32_32(load22), Gamma_load22; - R31, Gamma_R31 := bvadd64(R31, 16bv64), Gamma_R31; - goto main_1876_basil_return; - main_1876_basil_return: - assume {:captureState "main_1876_basil_return"} true; + $load8, Gamma_$load8 := memory_load32_le(mem, R9), (gamma_load32(Gamma_mem, R9) || L(mem, R9)); + R9, Gamma_R9 := zero_extend32_32($load8), Gamma_$load8; + VF, Gamma_VF := 0bv1, true; + CF, Gamma_CF := 1bv1, true; + ZF, Gamma_ZF := bvcomp32(R8[32:0], 0bv32), Gamma_R8; + NF, Gamma_NF := R8[32:31], Gamma_R8; + assert Gamma_ZF; + goto $main$__0__$D9t2gNJrSmyMH3GAVRe3IQ$__0, $main$__0__$D9t2gNJrSmyMH3GAVRe3IQ$__1; + $main$__0__$D9t2gNJrSmyMH3GAVRe3IQ$__0: + assume {:captureState "$main$__0__$D9t2gNJrSmyMH3GAVRe3IQ$__0"} true; + assume (ZF == 1bv1); + R0, Gamma_R0 := zero_extend32_32(R9[32:0]), Gamma_R9; + goto main_basil_return; + $main$__0__$D9t2gNJrSmyMH3GAVRe3IQ$__1: + assume {:captureState "$main$__0__$D9t2gNJrSmyMH3GAVRe3IQ$__1"} true; + assume (!(ZF == 1bv1)); + R0, Gamma_R0 := 0bv64, true; + goto main_basil_return; + main_basil_return: + assume {:captureState "main_basil_return"} true; return; } diff --git a/src/test/correct/basic_lock_security_read/gcc/basic_lock_security_read.adt b/src/test/correct/basic_lock_security_read/gcc/basic_lock_security_read.adt deleted file mode 100644 index 680b97b6f..000000000 --- a/src/test/correct/basic_lock_security_read/gcc/basic_lock_security_read.adt +++ /dev/null @@ -1,532 +0,0 @@ -Project(Attrs([Attr("filename","\"gcc/basic_lock_security_read.out\""), -Attr("image-specification","(declare abi (name str))\n(declare arch (name str))\n(declare base-address (addr int))\n(declare bias (off int))\n(declare bits (size int))\n(declare code-region (addr int) (size int) (off int))\n(declare code-start (addr int))\n(declare entry-point (addr int))\n(declare external-reference (addr int) (name str))\n(declare format (name str))\n(declare is-executable (flag bool))\n(declare is-little-endian (flag bool))\n(declare llvm:base-address (addr int))\n(declare llvm:code-entry (name str) (off int) (size int))\n(declare llvm:coff-import-library (name str))\n(declare llvm:coff-virtual-section-header (name str) (addr int) (size int))\n(declare llvm:elf-program-header (name str) (off int) (size int))\n(declare llvm:elf-program-header-flags (name str) (ld bool) (r bool) \n (w bool) (x bool))\n(declare llvm:elf-virtual-program-header (name str) (addr int) (size int))\n(declare llvm:entry-point (addr int))\n(declare llvm:macho-symbol (name str) (value int))\n(declare llvm:name-reference (at int) (name str))\n(declare llvm:relocation (at int) (addr int))\n(declare llvm:section-entry (name str) (addr int) (size int) (off int))\n(declare llvm:section-flags (name str) (r bool) (w bool) (x bool))\n(declare llvm:segment-command (name str) (off int) (size int))\n(declare llvm:segment-command-flags (name str) (r bool) (w bool) (x bool))\n(declare llvm:symbol-entry (name str) (addr int) (size int) (off int)\n (value int))\n(declare llvm:virtual-segment-command (name str) (addr int) (size int))\n(declare mapped (addr int) (size int) (off int))\n(declare named-region (addr int) (size int) (name str))\n(declare named-symbol (addr int) (name str))\n(declare require (name str))\n(declare section (addr int) (size int))\n(declare segment (addr int) (size int) (r bool) (w bool) (x bool))\n(declare subarch (name str))\n(declare symbol-chunk (addr int) (size int) (root int))\n(declare symbol-value (addr int) (value int))\n(declare system (name str))\n(declare vendor (name str))\n\n(abi unknown)\n(arch aarch64)\n(base-address 0)\n(bias 0)\n(bits 64)\n(code-region 1868 20 1868)\n(code-region 1536 332 1536)\n(code-region 1440 96 1440)\n(code-region 1408 24 1408)\n(code-start 1588)\n(code-start 1536)\n(code-start 1812)\n(entry-point 1536)\n(external-reference 69592 _ITM_deregisterTMCloneTable)\n(external-reference 69600 __cxa_finalize)\n(external-reference 69608 __gmon_start__)\n(external-reference 69624 _ITM_registerTMCloneTable)\n(external-reference 69552 __libc_start_main)\n(external-reference 69560 __cxa_finalize)\n(external-reference 69568 __gmon_start__)\n(external-reference 69576 abort)\n(format elf)\n(is-executable true)\n(is-little-endian true)\n(llvm:base-address 0)\n(llvm:code-entry abort 0 0)\n(llvm:code-entry __cxa_finalize 0 0)\n(llvm:code-entry __libc_start_main 0 0)\n(llvm:code-entry _init 1408 0)\n(llvm:code-entry main 1812 56)\n(llvm:code-entry _start 1536 52)\n(llvm:code-entry abort@GLIBC_2.17 0 0)\n(llvm:code-entry _fini 1868 0)\n(llvm:code-entry __cxa_finalize@GLIBC_2.17 0 0)\n(llvm:code-entry __libc_start_main@GLIBC_2.34 0 0)\n(llvm:code-entry frame_dummy 1808 0)\n(llvm:code-entry __do_global_dtors_aux 1728 0)\n(llvm:code-entry register_tm_clones 1664 0)\n(llvm:code-entry deregister_tm_clones 1616 0)\n(llvm:code-entry call_weak_fn 1588 20)\n(llvm:code-entry .fini 1868 20)\n(llvm:code-entry .text 1536 332)\n(llvm:code-entry .plt 1440 96)\n(llvm:code-entry .init 1408 24)\n(llvm:elf-program-header 08 3480 616)\n(llvm:elf-program-header 07 0 0)\n(llvm:elf-program-header 06 1892 60)\n(llvm:elf-program-header 05 596 68)\n(llvm:elf-program-header 04 3496 496)\n(llvm:elf-program-header 03 3480 632)\n(llvm:elf-program-header 02 0 2116)\n(llvm:elf-program-header 01 568 27)\n(llvm:elf-program-header 00 64 504)\n(llvm:elf-program-header-flags 08 false true false false)\n(llvm:elf-program-header-flags 07 false true true false)\n(llvm:elf-program-header-flags 06 false true false false)\n(llvm:elf-program-header-flags 05 false true false false)\n(llvm:elf-program-header-flags 04 false true true false)\n(llvm:elf-program-header-flags 03 true true true false)\n(llvm:elf-program-header-flags 02 true true false true)\n(llvm:elf-program-header-flags 01 false true false false)\n(llvm:elf-program-header-flags 00 false true false false)\n(llvm:elf-virtual-program-header 08 69016 616)\n(llvm:elf-virtual-program-header 07 0 0)\n(llvm:elf-virtual-program-header 06 1892 60)\n(llvm:elf-virtual-program-header 05 596 68)\n(llvm:elf-virtual-program-header 04 69032 496)\n(llvm:elf-virtual-program-header 03 69016 648)\n(llvm:elf-virtual-program-header 02 0 2116)\n(llvm:elf-virtual-program-header 01 568 27)\n(llvm:elf-virtual-program-header 00 64 504)\n(llvm:entry-point 1536)\n(llvm:name-reference 69576 abort)\n(llvm:name-reference 69568 __gmon_start__)\n(llvm:name-reference 69560 __cxa_finalize)\n(llvm:name-reference 69552 __libc_start_main)\n(llvm:name-reference 69624 _ITM_registerTMCloneTable)\n(llvm:name-reference 69608 __gmon_start__)\n(llvm:name-reference 69600 __cxa_finalize)\n(llvm:name-reference 69592 _ITM_deregisterTMCloneTable)\n(llvm:section-entry .shstrtab 0 250 6858)\n(llvm:section-entry .strtab 0 562 6296)\n(llvm:section-entry .symtab 0 2136 4160)\n(llvm:section-entry .comment 0 43 4112)\n(llvm:section-entry .bss 69648 16 4112)\n(llvm:section-entry .data 69632 16 4096)\n(llvm:section-entry .got 69528 104 3992)\n(llvm:section-entry .dynamic 69032 496 3496)\n(llvm:section-entry .fini_array 69024 8 3488)\n(llvm:section-entry .init_array 69016 8 3480)\n(llvm:section-entry .eh_frame 1952 164 1952)\n(llvm:section-entry .eh_frame_hdr 1892 60 1892)\n(llvm:section-entry .rodata 1888 4 1888)\n(llvm:section-entry .fini 1868 20 1868)\n(llvm:section-entry .text 1536 332 1536)\n(llvm:section-entry .plt 1440 96 1440)\n(llvm:section-entry .init 1408 24 1408)\n(llvm:section-entry .rela.plt 1312 96 1312)\n(llvm:section-entry .rela.dyn 1120 192 1120)\n(llvm:section-entry .gnu.version_r 1072 48 1072)\n(llvm:section-entry .gnu.version 1054 18 1054)\n(llvm:section-entry .dynstr 912 141 912)\n(llvm:section-entry .dynsym 696 216 696)\n(llvm:section-entry .gnu.hash 664 28 664)\n(llvm:section-entry .note.ABI-tag 632 32 632)\n(llvm:section-entry .note.gnu.build-id 596 36 596)\n(llvm:section-entry .interp 568 27 568)\n(llvm:section-flags .shstrtab true false false)\n(llvm:section-flags .strtab true false false)\n(llvm:section-flags .symtab true false false)\n(llvm:section-flags .comment true false false)\n(llvm:section-flags .bss true true false)\n(llvm:section-flags .data true true false)\n(llvm:section-flags .got true true false)\n(llvm:section-flags .dynamic true true false)\n(llvm:section-flags .fini_array true true false)\n(llvm:section-flags .init_array true true false)\n(llvm:section-flags .eh_frame true false false)\n(llvm:section-flags .eh_frame_hdr true false false)\n(llvm:section-flags .rodata true false false)\n(llvm:section-flags .fini true false true)\n(llvm:section-flags .text true false true)\n(llvm:section-flags .plt true false true)\n(llvm:section-flags .init true false true)\n(llvm:section-flags .rela.plt true false false)\n(llvm:section-flags .rela.dyn true false false)\n(llvm:section-flags .gnu.version_r true false false)\n(llvm:section-flags .gnu.version true false false)\n(llvm:section-flags .dynstr true false false)\n(llvm:section-flags .dynsym true false false)\n(llvm:section-flags .gnu.hash true false false)\n(llvm:section-flags .note.ABI-tag true false false)\n(llvm:section-flags .note.gnu.build-id true false false)\n(llvm:section-flags .interp true false false)\n(llvm:symbol-entry abort 0 0 0 0)\n(llvm:symbol-entry __cxa_finalize 0 0 0 0)\n(llvm:symbol-entry __libc_start_main 0 0 0 0)\n(llvm:symbol-entry _init 1408 0 1408 1408)\n(llvm:symbol-entry main 1812 56 1812 1812)\n(llvm:symbol-entry _start 1536 52 1536 1536)\n(llvm:symbol-entry abort@GLIBC_2.17 0 0 0 0)\n(llvm:symbol-entry _fini 1868 0 1868 1868)\n(llvm:symbol-entry __cxa_finalize@GLIBC_2.17 0 0 0 0)\n(llvm:symbol-entry __libc_start_main@GLIBC_2.34 0 0 0 0)\n(llvm:symbol-entry frame_dummy 1808 0 1808 1808)\n(llvm:symbol-entry __do_global_dtors_aux 1728 0 1728 1728)\n(llvm:symbol-entry register_tm_clones 1664 0 1664 1664)\n(llvm:symbol-entry deregister_tm_clones 1616 0 1616 1616)\n(llvm:symbol-entry call_weak_fn 1588 20 1588 1588)\n(mapped 0 2116 0)\n(mapped 69016 632 3480)\n(named-region 0 2116 02)\n(named-region 69016 648 03)\n(named-region 568 27 .interp)\n(named-region 596 36 .note.gnu.build-id)\n(named-region 632 32 .note.ABI-tag)\n(named-region 664 28 .gnu.hash)\n(named-region 696 216 .dynsym)\n(named-region 912 141 .dynstr)\n(named-region 1054 18 .gnu.version)\n(named-region 1072 48 .gnu.version_r)\n(named-region 1120 192 .rela.dyn)\n(named-region 1312 96 .rela.plt)\n(named-region 1408 24 .init)\n(named-region 1440 96 .plt)\n(named-region 1536 332 .text)\n(named-region 1868 20 .fini)\n(named-region 1888 4 .rodata)\n(named-region 1892 60 .eh_frame_hdr)\n(named-region 1952 164 .eh_frame)\n(named-region 69016 8 .init_array)\n(named-region 69024 8 .fini_array)\n(named-region 69032 496 .dynamic)\n(named-region 69528 104 .got)\n(named-region 69632 16 .data)\n(named-region 69648 16 .bss)\n(named-region 0 43 .comment)\n(named-region 0 2136 .symtab)\n(named-region 0 562 .strtab)\n(named-region 0 250 .shstrtab)\n(named-symbol 1588 call_weak_fn)\n(named-symbol 1616 deregister_tm_clones)\n(named-symbol 1664 register_tm_clones)\n(named-symbol 1728 __do_global_dtors_aux)\n(named-symbol 1808 frame_dummy)\n(named-symbol 0 __libc_start_main@GLIBC_2.34)\n(named-symbol 0 __cxa_finalize@GLIBC_2.17)\n(named-symbol 1868 _fini)\n(named-symbol 0 abort@GLIBC_2.17)\n(named-symbol 1536 _start)\n(named-symbol 1812 main)\n(named-symbol 1408 _init)\n(named-symbol 0 __libc_start_main)\n(named-symbol 0 __cxa_finalize)\n(named-symbol 0 abort)\n(require libc.so.6)\n(section 568 27)\n(section 596 36)\n(section 632 32)\n(section 664 28)\n(section 696 216)\n(section 912 141)\n(section 1054 18)\n(section 1072 48)\n(section 1120 192)\n(section 1312 96)\n(section 1408 24)\n(section 1440 96)\n(section 1536 332)\n(section 1868 20)\n(section 1888 4)\n(section 1892 60)\n(section 1952 164)\n(section 69016 8)\n(section 69024 8)\n(section 69032 496)\n(section 69528 104)\n(section 69632 16)\n(section 69648 16)\n(section 0 43)\n(section 0 2136)\n(section 0 562)\n(section 0 250)\n(segment 0 2116 true false true)\n(segment 69016 648 true true false)\n(subarch v8)\n(symbol-chunk 1588 20 1588)\n(symbol-chunk 1536 52 1536)\n(symbol-chunk 1812 56 1812)\n(symbol-value 1588 1588)\n(symbol-value 1616 1616)\n(symbol-value 1664 1664)\n(symbol-value 1728 1728)\n(symbol-value 1808 1808)\n(symbol-value 1868 1868)\n(symbol-value 1536 1536)\n(symbol-value 1812 1812)\n(symbol-value 1408 1408)\n(symbol-value 0 0)\n(system \"\")\n(vendor \"\")\n"), -Attr("abi-name","\"aarch64-linux-gnu-elf\"")]), -Sections([Section(".shstrtab", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x00\x06\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xc8\x1b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x38\x00\x09\x00\x40\x00\x1c\x00\x1b\x00\x06\x00\x00\x00\x04\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x04\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x44\x08\x00\x00\x00\x00\x00\x00\x44\x08\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x01\x00\x00\x00\x06\x00\x00\x00\x98\x0d\x00\x00\x00\x00\x00\x00\x98\x0d"), -Section(".strtab", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x00\x06\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xc8\x1b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x38\x00\x09\x00\x40\x00\x1c\x00\x1b\x00\x06\x00\x00\x00\x04\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x04\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x44\x08\x00\x00\x00\x00\x00\x00\x44\x08\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x01\x00\x00\x00\x06\x00\x00\x00\x98\x0d\x00\x00\x00\x00\x00\x00\x98\x0d\x01\x00\x00\x00\x00\x00\x98\x0d\x01\x00\x00\x00\x00\x00\x78\x02\x00\x00\x00\x00\x00\x00\x88\x02\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x02\x00\x00\x00\x06\x00\x00\x00\xa8\x0d\x00\x00\x00\x00\x00\x00\xa8\x0d\x01\x00\x00\x00\x00\x00\xa8\x0d\x01\x00\x00\x00\x00\x00\xf0\x01\x00\x00\x00\x00\x00\x00\xf0\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x04\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x50\xe5\x74\x64\x04\x00\x00\x00\x64\x07\x00\x00\x00\x00\x00\x00\x64\x07\x00\x00\x00\x00\x00\x00\x64\x07\x00\x00\x00\x00\x00\x00\x3c\x00\x00\x00\x00\x00\x00\x00\x3c\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x51\xe5\x74\x64\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x52\xe5\x74\x64\x04\x00\x00\x00\x98\x0d\x00\x00\x00\x00\x00\x00\x98\x0d\x01\x00\x00\x00\x00\x00\x98\x0d\x01\x00\x00\x00\x00\x00\x68\x02\x00\x00\x00\x00\x00\x00\x68\x02\x00\x00\x00\x00\x00\x00\x01\x00"), -Section(".comment", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x00\x06\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xc8\x1b\x00"), -Section(".interp", 0x238, "\x2f\x6c\x69\x62\x2f\x6c\x64\x2d\x6c\x69\x6e\x75\x78\x2d\x61\x61\x72\x63\x68\x36\x34\x2e\x73\x6f\x2e\x31\x00"), -Section(".note.gnu.build-id", 0x254, "\x04\x00\x00\x00\x14\x00\x00\x00\x03\x00\x00\x00\x47\x4e\x55\x00\x32\xc5\x2f\xb9\xab\xd8\x1b\xdb\x7f\x7e\x45\xf6\x94\x78\x8c\x8b\xd4\x55\x7d\x80"), -Section(".note.ABI-tag", 0x278, "\x04\x00\x00\x00\x10\x00\x00\x00\x01\x00\x00\x00\x47\x4e\x55\x00\x00\x00\x00\x00\x03\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00"), -Section(".gnu.hash", 0x298, "\x01\x00\x00\x00\x01\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".dynsym", 0x2B8, "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x0b\x00\x80\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x16\x00\x00\x10\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x48\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x22\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x22\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x73\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".dynstr", 0x390, "\x00\x5f\x5f\x63\x78\x61\x5f\x66\x69\x6e\x61\x6c\x69\x7a\x65\x00\x5f\x5f\x6c\x69\x62\x63\x5f\x73\x74\x61\x72\x74\x5f\x6d\x61\x69\x6e\x00\x61\x62\x6f\x72\x74\x00\x6c\x69\x62\x63\x2e\x73\x6f\x2e\x36\x00\x47\x4c\x49\x42\x43\x5f\x32\x2e\x31\x37\x00\x47\x4c\x49\x42\x43\x5f\x32\x2e\x33\x34\x00\x5f\x49\x54\x4d\x5f\x64\x65\x72\x65\x67\x69\x73\x74\x65\x72\x54\x4d\x43\x6c\x6f\x6e\x65\x54\x61\x62\x6c\x65\x00\x5f\x5f\x67\x6d\x6f\x6e\x5f\x73\x74\x61\x72\x74\x5f\x5f\x00\x5f\x49\x54\x4d\x5f\x72\x65\x67\x69\x73\x74\x65\x72\x54\x4d\x43\x6c\x6f\x6e\x65\x54\x61\x62\x6c\x65\x00"), -Section(".gnu.version", 0x41E, "\x00\x00\x00\x00\x00\x00\x02\x00\x01\x00\x03\x00\x01\x00\x03\x00\x01\x00"), -Section(".gnu.version_r", 0x430, "\x01\x00\x02\x00\x28\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x97\x91\x96\x06\x00\x00\x03\x00\x32\x00\x00\x00\x10\x00\x00\x00\xb4\x91\x96\x06\x00\x00\x02\x00\x3d\x00\x00\x00\x00\x00\x00\x00"), -Section(".rela.dyn", 0x460, "\x98\x0d\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x10\x07\x00\x00\x00\x00\x00\x00\xa0\x0d\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\xc0\x06\x00\x00\x00\x00\x00\x00\xf0\x0f\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x14\x07\x00\x00\x00\x00\x00\x00\x08\x10\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x08\x10\x01\x00\x00\x00\x00\x00\xd8\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe0\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe8\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xf8\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".rela.plt", 0x520, "\xb0\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xb8\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xc0\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xc8\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".init", 0x580, "\x1f\x20\x03\xd5\xfd\x7b\xbf\xa9\xfd\x03\x00\x91\x2a\x00\x00\x94\xfd\x7b\xc1\xa8\xc0\x03\x5f\xd6"), -Section(".plt", 0x5A0, "\xf0\x7b\xbf\xa9\x90\x00\x00\x90\x11\xd6\x47\xf9\x10\xa2\x3e\x91\x20\x02\x1f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x90\x00\x00\x90\x11\xda\x47\xf9\x10\xc2\x3e\x91\x20\x02\x1f\xd6\x90\x00\x00\x90\x11\xde\x47\xf9\x10\xe2\x3e\x91\x20\x02\x1f\xd6\x90\x00\x00\x90\x11\xe2\x47\xf9\x10\x02\x3f\x91\x20\x02\x1f\xd6\x90\x00\x00\x90\x11\xe6\x47\xf9\x10\x22\x3f\x91\x20\x02\x1f\xd6"), -Section(".text", 0x600, "\x1f\x20\x03\xd5\x1d\x00\x80\xd2\x1e\x00\x80\xd2\xe5\x03\x00\xaa\xe1\x03\x40\xf9\xe2\x23\x00\x91\xe6\x03\x00\x91\x80\x00\x00\x90\x00\xf8\x47\xf9\x03\x00\x80\xd2\x04\x00\x80\xd2\xe5\xff\xff\x97\xf0\xff\xff\x97\x80\x00\x00\x90\x00\xf4\x47\xf9\x40\x00\x00\xb4\xe8\xff\xff\x17\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x80\x00\x00\xb0\x00\x40\x00\x91\x81\x00\x00\xb0\x21\x40\x00\x91\x3f\x00\x00\xeb\xc0\x00\x00\x54\x81\x00\x00\x90\x21\xec\x47\xf9\x61\x00\x00\xb4\xf0\x03\x01\xaa\x00\x02\x1f\xd6\xc0\x03\x5f\xd6\x80\x00\x00\xb0\x00\x40\x00\x91\x81\x00\x00\xb0\x21\x40\x00\x91\x21\x00\x00\xcb\x22\xfc\x7f\xd3\x41\x0c\x81\x8b\x21\xfc\x41\x93\xc1\x00\x00\xb4\x82\x00\x00\x90\x42\xfc\x47\xf9\x62\x00\x00\xb4\xf0\x03\x02\xaa\x00\x02\x1f\xd6\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\xfd\x7b\xbe\xa9\xfd\x03\x00\x91\xf3\x0b\x00\xf9\x93\x00\x00\xb0\x60\x42\x40\x39\x40\x01\x00\x35\x80\x00\x00\x90\x00\xf0\x47\xf9\x80\x00\x00\xb4\x80\x00\x00\xb0\x00\x04\x40\xf9\xb9\xff\xff\x97\xd8\xff\xff\x97\x20\x00\x80\x52\x60\x42\x00\x39\xf3\x0b\x40\xf9\xfd\x7b\xc2\xa8\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\xdc\xff\xff\x17\xff\x43\x00\xd1\xff\x0f\x00\xb9\x80\x00\x00\xb0\x00\x60\x00\x91\x00\x00\x40\xb9\x1f\x00\x00\x71\xa1\x00\x00\x54\x80\x00\x00\xb0\x00\x50\x00\x91\x00\x00\x40\xb9\xe0\x0f\x00\xb9\xe0\x0f\x40\xb9\xff\x43\x00\x91\xc0\x03\x5f\xd6"), -Section(".fini", 0x74C, "\x1f\x20\x03\xd5\xfd\x7b\xbf\xa9\xfd\x03\x00\x91\xfd\x7b\xc1\xa8\xc0\x03\x5f\xd6"), -Section(".rodata", 0x760, "\x01\x00\x02\x00"), -Section(".eh_frame_hdr", 0x764, "\x01\x1b\x03\x3b\x38\x00\x00\x00\x06\x00\x00\x00\x9c\xfe\xff\xff\x50\x00\x00\x00\xec\xfe\xff\xff\x64\x00\x00\x00\x1c\xff\xff\xff\x78\x00\x00\x00\x5c\xff\xff\xff\x8c\x00\x00\x00\xac\xff\xff\xff\xb0\x00\x00\x00\xb0\xff\xff\xff\xc4\x00\x00\x00"), -Section(".eh_frame", 0x7A0, "\x10\x00\x00\x00\x00\x00\x00\x00\x01\x7a\x52\x00\x04\x78\x1e\x01\x1b\x0c\x1f\x00\x10\x00\x00\x00\x18\x00\x00\x00\x44\xfe\xff\xff\x34\x00\x00\x00\x00\x41\x07\x1e\x10\x00\x00\x00\x2c\x00\x00\x00\x80\xfe\xff\xff\x30\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x40\x00\x00\x00\x9c\xfe\xff\xff\x3c\x00\x00\x00\x00\x00\x00\x00\x20\x00\x00\x00\x54\x00\x00\x00\xc8\xfe\xff\xff\x48\x00\x00\x00\x00\x41\x0e\x20\x9d\x04\x9e\x03\x42\x93\x02\x4e\xde\xdd\xd3\x0e\x00\x00\x00\x00\x10\x00\x00\x00\x78\x00\x00\x00\xf4\xfe\xff\xff\x04\x00\x00\x00\x00\x00\x00\x00\x14\x00\x00\x00\x8c\x00\x00\x00\xe4\xfe\xff\xff\x38\x00\x00\x00\x00\x41\x0e\x10\x4c\x0e\x00\x00\x00\x00\x00\x00"), -Section(".fini_array", 0x10DA0, "\xc0\x06\x00\x00\x00\x00\x00\x00"), -Section(".dynamic", 0x10DA8, "\x01\x00\x00\x00\x00\x00\x00\x00\x28\x00\x00\x00\x00\x00\x00\x00\x0c\x00\x00\x00\x00\x00\x00\x00\x80\x05\x00\x00\x00\x00\x00\x00\x0d\x00\x00\x00\x00\x00\x00\x00\x4c\x07\x00\x00\x00\x00\x00\x00\x19\x00\x00\x00\x00\x00\x00\x00\x98\x0d\x01\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x1a\x00\x00\x00\x00\x00\x00\x00\xa0\x0d\x01\x00\x00\x00\x00\x00\x1c\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\xf5\xfe\xff\x6f\x00\x00\x00\x00\x98\x02\x00\x00\x00\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x90\x03\x00\x00\x00\x00\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\xb8\x02\x00\x00\x00\x00\x00\x00\x0a\x00\x00\x00\x00\x00\x00\x00\x8d\x00\x00\x00\x00\x00\x00\x00\x0b\x00\x00\x00\x00\x00\x00\x00\x18\x00\x00\x00\x00\x00\x00\x00\x15\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x98\x0f\x01\x00\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x60\x00\x00\x00\x00\x00\x00\x00\x14\x00\x00\x00\x00\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x17\x00\x00\x00\x00\x00\x00\x00\x20\x05\x00\x00\x00\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x60\x04\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\xc0\x00\x00\x00\x00\x00\x00\x00\x09\x00\x00\x00\x00\x00\x00\x00\x18\x00\x00\x00\x00\x00\x00\x00\x1e\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\xfb\xff\xff\x6f\x00\x00\x00\x00\x01\x00\x00\x08\x00\x00\x00\x00\xfe\xff\xff\x6f\x00\x00\x00\x00\x30\x04\x00\x00\x00\x00\x00\x00\xff\xff\xff\x6f\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\xf0\xff\xff\x6f\x00\x00\x00\x00\x1e\x04\x00\x00\x00\x00\x00\x00\xf9\xff\xff\x6f\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".got", 0x10F98, "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xa0\x05\x00\x00\x00\x00\x00\x00\xa0\x05\x00\x00\x00\x00\x00\x00\xa0\x05\x00\x00\x00\x00\x00\x00\xa0\x05\x00\x00\x00\x00\x00\x00\xa8\x0d\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x14\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".data", 0x11000, "\x00\x00\x00\x00\x00\x00\x00\x00\x08\x10\x01\x00\x00\x00\x00\x00"), -Section(".init_array", 0x10D98, "\x10\x07\x00\x00\x00\x00\x00\x00")]), -Memmap([Annotation(Region(0x0,0x843), Attr("segment","02 0 2116")), -Annotation(Region(0x600,0x633), Attr("symbol","\"_start\"")), -Annotation(Region(0x0,0xF9), Attr("section","\".shstrtab\"")), -Annotation(Region(0x0,0x231), Attr("section","\".strtab\"")), -Annotation(Region(0x0,0x2A), Attr("section","\".comment\"")), -Annotation(Region(0x238,0x252), Attr("section","\".interp\"")), -Annotation(Region(0x254,0x277), Attr("section","\".note.gnu.build-id\"")), -Annotation(Region(0x278,0x297), Attr("section","\".note.ABI-tag\"")), -Annotation(Region(0x298,0x2B3), Attr("section","\".gnu.hash\"")), -Annotation(Region(0x2B8,0x38F), Attr("section","\".dynsym\"")), -Annotation(Region(0x390,0x41C), Attr("section","\".dynstr\"")), -Annotation(Region(0x41E,0x42F), Attr("section","\".gnu.version\"")), -Annotation(Region(0x430,0x45F), Attr("section","\".gnu.version_r\"")), -Annotation(Region(0x460,0x51F), Attr("section","\".rela.dyn\"")), -Annotation(Region(0x520,0x57F), Attr("section","\".rela.plt\"")), -Annotation(Region(0x580,0x597), Attr("section","\".init\"")), -Annotation(Region(0x5A0,0x5FF), Attr("section","\".plt\"")), -Annotation(Region(0x580,0x597), Attr("code-region","()")), -Annotation(Region(0x5A0,0x5FF), Attr("code-region","()")), -Annotation(Region(0x600,0x633), Attr("symbol-info","_start 0x600 52")), -Annotation(Region(0x634,0x647), Attr("symbol","\"call_weak_fn\"")), -Annotation(Region(0x634,0x647), Attr("symbol-info","call_weak_fn 0x634 20")), -Annotation(Region(0x600,0x74B), Attr("section","\".text\"")), -Annotation(Region(0x600,0x74B), Attr("code-region","()")), -Annotation(Region(0x714,0x74B), Attr("symbol","\"main\"")), -Annotation(Region(0x714,0x74B), Attr("symbol-info","main 0x714 56")), -Annotation(Region(0x74C,0x75F), Attr("section","\".fini\"")), -Annotation(Region(0x74C,0x75F), Attr("code-region","()")), -Annotation(Region(0x760,0x763), Attr("section","\".rodata\"")), -Annotation(Region(0x764,0x79F), Attr("section","\".eh_frame_hdr\"")), -Annotation(Region(0x7A0,0x843), Attr("section","\".eh_frame\"")), -Annotation(Region(0x10D98,0x1100F), Attr("segment","03 0x10D98 648")), -Annotation(Region(0x10DA0,0x10DA7), Attr("section","\".fini_array\"")), -Annotation(Region(0x10DA8,0x10F97), Attr("section","\".dynamic\"")), -Annotation(Region(0x10F98,0x10FFF), Attr("section","\".got\"")), -Annotation(Region(0x11000,0x1100F), Attr("section","\".data\"")), -Annotation(Region(0x10D98,0x10D9F), Attr("section","\".init_array\""))]), -Program(Tid(1_553, "%00000611"), Attrs([]), - Subs([Sub(Tid(1_499, "@__cxa_finalize"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x5D0"), -Attr("stub","()")]), "__cxa_finalize", Args([Arg(Tid(1_554, "%00000612"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("__cxa_finalize_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(899, "@__cxa_finalize"), - Attrs([Attr("address","0x5D0")]), Phis([]), -Defs([Def(Tid(1_147, "%0000047b"), Attrs([Attr("address","0x5D0"), -Attr("insn","adrp x16, #65536")]), Var("R16",Imm(64)), Int(65536,64)), -Def(Tid(1_154, "%00000482"), Attrs([Attr("address","0x5D4"), -Attr("insn","ldr x17, [x16, #0xfb8]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(4024,64)),LittleEndian(),64)), -Def(Tid(1_160, "%00000488"), Attrs([Attr("address","0x5D8"), -Attr("insn","add x16, x16, #0xfb8")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(4024,64)))]), Jmps([Call(Tid(1_165, "%0000048d"), - Attrs([Attr("address","0x5DC"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), -Sub(Tid(1_500, "@__do_global_dtors_aux"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x6C0")]), - "__do_global_dtors_aux", Args([Arg(Tid(1_555, "%00000613"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("__do_global_dtors_aux_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(646, "@__do_global_dtors_aux"), - Attrs([Attr("address","0x6C0")]), Phis([]), Defs([Def(Tid(650, "%0000028a"), - Attrs([Attr("address","0x6C0"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("#3",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(18446744073709551584,64))), -Def(Tid(656, "%00000290"), Attrs([Attr("address","0x6C0"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("#3",Imm(64)),Var("R29",Imm(64)),LittleEndian(),64)), -Def(Tid(662, "%00000296"), Attrs([Attr("address","0x6C0"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("#3",Imm(64)),Int(8,64)),Var("R30",Imm(64)),LittleEndian(),64)), -Def(Tid(666, "%0000029a"), Attrs([Attr("address","0x6C0"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("R31",Imm(64)), -Var("#3",Imm(64))), Def(Tid(672, "%000002a0"), - Attrs([Attr("address","0x6C4"), Attr("insn","mov x29, sp")]), - Var("R29",Imm(64)), Var("R31",Imm(64))), Def(Tid(680, "%000002a8"), - Attrs([Attr("address","0x6C8"), Attr("insn","str x19, [sp, #0x10]")]), - Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(16,64)),Var("R19",Imm(64)),LittleEndian(),64)), -Def(Tid(685, "%000002ad"), Attrs([Attr("address","0x6CC"), -Attr("insn","adrp x19, #69632")]), Var("R19",Imm(64)), Int(69632,64)), -Def(Tid(692, "%000002b4"), Attrs([Attr("address","0x6D0"), -Attr("insn","ldrb w0, [x19, #0x10]")]), Var("R0",Imm(64)), -UNSIGNED(64,Load(Var("mem",Mem(64,8)),PLUS(Var("R19",Imm(64)),Int(16,64)),LittleEndian(),8)))]), -Jmps([Goto(Tid(699, "%000002bb"), Attrs([Attr("address","0x6D4"), -Attr("insn","cbnz w0, #0x28")]), - NEQ(Extract(31,0,Var("R0",Imm(64))),Int(0,32)), -Direct(Tid(697, "%000002b9"))), Goto(Tid(1_541, "%00000605"), Attrs([]), - Int(1,1), Direct(Tid(844, "%0000034c")))])), Blk(Tid(844, "%0000034c"), - Attrs([Attr("address","0x6D8")]), Phis([]), Defs([Def(Tid(847, "%0000034f"), - Attrs([Attr("address","0x6D8"), Attr("insn","adrp x0, #65536")]), - Var("R0",Imm(64)), Int(65536,64)), Def(Tid(854, "%00000356"), - Attrs([Attr("address","0x6DC"), Attr("insn","ldr x0, [x0, #0xfe0]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(4064,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(860, "%0000035c"), Attrs([Attr("address","0x6E0"), -Attr("insn","cbz x0, #0x10")]), EQ(Var("R0",Imm(64)),Int(0,64)), -Direct(Tid(858, "%0000035a"))), Goto(Tid(1_542, "%00000606"), Attrs([]), - Int(1,1), Direct(Tid(883, "%00000373")))])), Blk(Tid(883, "%00000373"), - Attrs([Attr("address","0x6E4")]), Phis([]), Defs([Def(Tid(886, "%00000376"), - Attrs([Attr("address","0x6E4"), Attr("insn","adrp x0, #69632")]), - Var("R0",Imm(64)), Int(69632,64)), Def(Tid(893, "%0000037d"), - Attrs([Attr("address","0x6E8"), Attr("insn","ldr x0, [x0, #0x8]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(898, "%00000382"), Attrs([Attr("address","0x6EC"), -Attr("insn","bl #-0x11c")]), Var("R30",Imm(64)), Int(1776,64))]), -Jmps([Call(Tid(901, "%00000385"), Attrs([Attr("address","0x6EC"), -Attr("insn","bl #-0x11c")]), Int(1,1), -(Direct(Tid(1_499, "@__cxa_finalize")),Direct(Tid(858, "%0000035a"))))])), -Blk(Tid(858, "%0000035a"), Attrs([Attr("address","0x6F0")]), Phis([]), -Defs([Def(Tid(866, "%00000362"), Attrs([Attr("address","0x6F0"), -Attr("insn","bl #-0xa0")]), Var("R30",Imm(64)), Int(1780,64))]), -Jmps([Call(Tid(868, "%00000364"), Attrs([Attr("address","0x6F0"), -Attr("insn","bl #-0xa0")]), Int(1,1), -(Direct(Tid(1_513, "@deregister_tm_clones")),Direct(Tid(870, "%00000366"))))])), -Blk(Tid(870, "%00000366"), Attrs([Attr("address","0x6F4")]), Phis([]), -Defs([Def(Tid(873, "%00000369"), Attrs([Attr("address","0x6F4"), -Attr("insn","mov w0, #0x1")]), Var("R0",Imm(64)), Int(1,64)), -Def(Tid(881, "%00000371"), Attrs([Attr("address","0x6F8"), -Attr("insn","strb w0, [x19, #0x10]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R19",Imm(64)),Int(16,64)),Extract(7,0,Var("R0",Imm(64))),LittleEndian(),8))]), -Jmps([Goto(Tid(1_543, "%00000607"), Attrs([]), Int(1,1), -Direct(Tid(697, "%000002b9")))])), Blk(Tid(697, "%000002b9"), - Attrs([Attr("address","0x6FC")]), Phis([]), Defs([Def(Tid(707, "%000002c3"), - Attrs([Attr("address","0x6FC"), Attr("insn","ldr x19, [sp, #0x10]")]), - Var("R19",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(16,64)),LittleEndian(),64)), -Def(Tid(714, "%000002ca"), Attrs([Attr("address","0x700"), -Attr("insn","ldp x29, x30, [sp], #0x20")]), Var("R29",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(719, "%000002cf"), Attrs([Attr("address","0x700"), -Attr("insn","ldp x29, x30, [sp], #0x20")]), Var("R30",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(723, "%000002d3"), Attrs([Attr("address","0x700"), -Attr("insn","ldp x29, x30, [sp], #0x20")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(32,64)))]), Jmps([Call(Tid(728, "%000002d8"), - Attrs([Attr("address","0x704"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), Sub(Tid(1_504, "@__libc_start_main"), - Attrs([Attr("c.proto","signed (*)(signed (*)(signed , char** , char** );* main, signed , char** , \nvoid* auxv)"), -Attr("address","0x5C0"), Attr("stub","()")]), "__libc_start_main", - Args([Arg(Tid(1_556, "%00000614"), - Attrs([Attr("c.layout","**[ : 64]"), -Attr("c.data","Top:u64 ptr ptr"), -Attr("c.type","signed (*)(signed , char** , char** );*")]), - Var("__libc_start_main_main",Imm(64)), Var("R0",Imm(64)), In()), -Arg(Tid(1_557, "%00000615"), Attrs([Attr("c.layout","[signed : 32]"), -Attr("c.data","Top:u32"), Attr("c.type","signed")]), - Var("__libc_start_main_arg2",Imm(32)), LOW(32,Var("R1",Imm(64))), In()), -Arg(Tid(1_558, "%00000616"), Attrs([Attr("c.layout","**[char : 8]"), -Attr("c.data","Top:u8 ptr ptr"), Attr("c.type","char**")]), - Var("__libc_start_main_arg3",Imm(64)), Var("R2",Imm(64)), Both()), -Arg(Tid(1_559, "%00000617"), Attrs([Attr("c.layout","*[ : 8]"), -Attr("c.data","{} ptr"), Attr("c.type","void*")]), - Var("__libc_start_main_auxv",Imm(64)), Var("R3",Imm(64)), Both()), -Arg(Tid(1_560, "%00000618"), Attrs([Attr("c.layout","[signed : 32]"), -Attr("c.data","Top:u32"), Attr("c.type","signed")]), - Var("__libc_start_main_result",Imm(32)), LOW(32,Var("R0",Imm(64))), -Out())]), Blks([Blk(Tid(479, "@__libc_start_main"), - Attrs([Attr("address","0x5C0")]), Phis([]), -Defs([Def(Tid(1_125, "%00000465"), Attrs([Attr("address","0x5C0"), -Attr("insn","adrp x16, #65536")]), Var("R16",Imm(64)), Int(65536,64)), -Def(Tid(1_132, "%0000046c"), Attrs([Attr("address","0x5C4"), -Attr("insn","ldr x17, [x16, #0xfb0]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(4016,64)),LittleEndian(),64)), -Def(Tid(1_138, "%00000472"), Attrs([Attr("address","0x5C8"), -Attr("insn","add x16, x16, #0xfb0")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(4016,64)))]), Jmps([Call(Tid(1_143, "%00000477"), - Attrs([Attr("address","0x5CC"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), Sub(Tid(1_505, "@_fini"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x74C")]), - "_fini", Args([Arg(Tid(1_561, "%00000619"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("_fini_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(31, "@_fini"), - Attrs([Attr("address","0x74C")]), Phis([]), Defs([Def(Tid(37, "%00000025"), - Attrs([Attr("address","0x750"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("#0",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(18446744073709551600,64))), -Def(Tid(43, "%0000002b"), Attrs([Attr("address","0x750"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("#0",Imm(64)),Var("R29",Imm(64)),LittleEndian(),64)), -Def(Tid(49, "%00000031"), Attrs([Attr("address","0x750"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("#0",Imm(64)),Int(8,64)),Var("R30",Imm(64)),LittleEndian(),64)), -Def(Tid(53, "%00000035"), Attrs([Attr("address","0x750"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("R31",Imm(64)), -Var("#0",Imm(64))), Def(Tid(59, "%0000003b"), Attrs([Attr("address","0x754"), -Attr("insn","mov x29, sp")]), Var("R29",Imm(64)), Var("R31",Imm(64))), -Def(Tid(66, "%00000042"), Attrs([Attr("address","0x758"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R29",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(71, "%00000047"), Attrs([Attr("address","0x758"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R30",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(75, "%0000004b"), Attrs([Attr("address","0x758"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(16,64)))]), Jmps([Call(Tid(80, "%00000050"), - Attrs([Attr("address","0x75C"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), Sub(Tid(1_506, "@_init"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x580")]), - "_init", Args([Arg(Tid(1_562, "%0000061a"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("_init_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(1_327, "@_init"), - Attrs([Attr("address","0x580")]), Phis([]), -Defs([Def(Tid(1_333, "%00000535"), Attrs([Attr("address","0x584"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("#6",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(18446744073709551600,64))), -Def(Tid(1_339, "%0000053b"), Attrs([Attr("address","0x584"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("#6",Imm(64)),Var("R29",Imm(64)),LittleEndian(),64)), -Def(Tid(1_345, "%00000541"), Attrs([Attr("address","0x584"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("#6",Imm(64)),Int(8,64)),Var("R30",Imm(64)),LittleEndian(),64)), -Def(Tid(1_349, "%00000545"), Attrs([Attr("address","0x584"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("R31",Imm(64)), -Var("#6",Imm(64))), Def(Tid(1_355, "%0000054b"), - Attrs([Attr("address","0x588"), Attr("insn","mov x29, sp")]), - Var("R29",Imm(64)), Var("R31",Imm(64))), Def(Tid(1_360, "%00000550"), - Attrs([Attr("address","0x58C"), Attr("insn","bl #0xa8")]), - Var("R30",Imm(64)), Int(1424,64))]), Jmps([Call(Tid(1_362, "%00000552"), - Attrs([Attr("address","0x58C"), Attr("insn","bl #0xa8")]), Int(1,1), -(Direct(Tid(1_511, "@call_weak_fn")),Direct(Tid(1_364, "%00000554"))))])), -Blk(Tid(1_364, "%00000554"), Attrs([Attr("address","0x590")]), Phis([]), -Defs([Def(Tid(1_369, "%00000559"), Attrs([Attr("address","0x590"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R29",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(1_374, "%0000055e"), Attrs([Attr("address","0x590"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R30",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(1_378, "%00000562"), Attrs([Attr("address","0x590"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(16,64)))]), Jmps([Call(Tid(1_383, "%00000567"), - Attrs([Attr("address","0x594"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), Sub(Tid(1_507, "@_start"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x600"), -Attr("stub","()"), Attr("entry-point","()")]), "_start", - Args([Arg(Tid(1_563, "%0000061b"), Attrs([Attr("c.layout","[signed : 32]"), -Attr("c.data","Top:u32"), Attr("c.type","signed")]), - Var("_start_result",Imm(32)), LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(416, "@_start"), Attrs([Attr("address","0x600")]), Phis([]), -Defs([Def(Tid(421, "%000001a5"), Attrs([Attr("address","0x604"), -Attr("insn","mov x29, #0x0")]), Var("R29",Imm(64)), Int(0,64)), -Def(Tid(426, "%000001aa"), Attrs([Attr("address","0x608"), -Attr("insn","mov x30, #0x0")]), Var("R30",Imm(64)), Int(0,64)), -Def(Tid(432, "%000001b0"), Attrs([Attr("address","0x60C"), -Attr("insn","mov x5, x0")]), Var("R5",Imm(64)), Var("R0",Imm(64))), -Def(Tid(439, "%000001b7"), Attrs([Attr("address","0x610"), -Attr("insn","ldr x1, [sp]")]), Var("R1",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(445, "%000001bd"), Attrs([Attr("address","0x614"), -Attr("insn","add x2, sp, #0x8")]), Var("R2",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(8,64))), Def(Tid(451, "%000001c3"), - Attrs([Attr("address","0x618"), Attr("insn","mov x6, sp")]), - Var("R6",Imm(64)), Var("R31",Imm(64))), Def(Tid(456, "%000001c8"), - Attrs([Attr("address","0x61C"), Attr("insn","adrp x0, #65536")]), - Var("R0",Imm(64)), Int(65536,64)), Def(Tid(463, "%000001cf"), - Attrs([Attr("address","0x620"), Attr("insn","ldr x0, [x0, #0xff0]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(4080,64)),LittleEndian(),64)), -Def(Tid(468, "%000001d4"), Attrs([Attr("address","0x624"), -Attr("insn","mov x3, #0x0")]), Var("R3",Imm(64)), Int(0,64)), -Def(Tid(473, "%000001d9"), Attrs([Attr("address","0x628"), -Attr("insn","mov x4, #0x0")]), Var("R4",Imm(64)), Int(0,64)), -Def(Tid(478, "%000001de"), Attrs([Attr("address","0x62C"), -Attr("insn","bl #-0x6c")]), Var("R30",Imm(64)), Int(1584,64))]), -Jmps([Call(Tid(481, "%000001e1"), Attrs([Attr("address","0x62C"), -Attr("insn","bl #-0x6c")]), Int(1,1), -(Direct(Tid(1_504, "@__libc_start_main")),Direct(Tid(483, "%000001e3"))))])), -Blk(Tid(483, "%000001e3"), Attrs([Attr("address","0x630")]), Phis([]), -Defs([Def(Tid(486, "%000001e6"), Attrs([Attr("address","0x630"), -Attr("insn","bl #-0x40")]), Var("R30",Imm(64)), Int(1588,64))]), -Jmps([Call(Tid(489, "%000001e9"), Attrs([Attr("address","0x630"), -Attr("insn","bl #-0x40")]), Int(1,1), -(Direct(Tid(1_510, "@abort")),Direct(Tid(1_544, "%00000608"))))])), -Blk(Tid(1_544, "%00000608"), Attrs([]), Phis([]), Defs([]), -Jmps([Call(Tid(1_545, "%00000609"), Attrs([]), Int(1,1), -(Direct(Tid(1_511, "@call_weak_fn")),))]))])), Sub(Tid(1_510, "@abort"), - Attrs([Attr("noreturn","()"), Attr("c.proto","void (*)(void)"), -Attr("address","0x5F0"), Attr("stub","()")]), "abort", Args([]), -Blks([Blk(Tid(487, "@abort"), Attrs([Attr("address","0x5F0")]), Phis([]), -Defs([Def(Tid(1_191, "%000004a7"), Attrs([Attr("address","0x5F0"), -Attr("insn","adrp x16, #65536")]), Var("R16",Imm(64)), Int(65536,64)), -Def(Tid(1_198, "%000004ae"), Attrs([Attr("address","0x5F4"), -Attr("insn","ldr x17, [x16, #0xfc8]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(4040,64)),LittleEndian(),64)), -Def(Tid(1_204, "%000004b4"), Attrs([Attr("address","0x5F8"), -Attr("insn","add x16, x16, #0xfc8")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(4040,64)))]), Jmps([Call(Tid(1_209, "%000004b9"), - Attrs([Attr("address","0x5FC"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), Sub(Tid(1_511, "@call_weak_fn"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x634")]), - "call_weak_fn", Args([Arg(Tid(1_564, "%0000061c"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("call_weak_fn_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(491, "@call_weak_fn"), - Attrs([Attr("address","0x634")]), Phis([]), Defs([Def(Tid(494, "%000001ee"), - Attrs([Attr("address","0x634"), Attr("insn","adrp x0, #65536")]), - Var("R0",Imm(64)), Int(65536,64)), Def(Tid(501, "%000001f5"), - Attrs([Attr("address","0x638"), Attr("insn","ldr x0, [x0, #0xfe8]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(4072,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(507, "%000001fb"), Attrs([Attr("address","0x63C"), -Attr("insn","cbz x0, #0x8")]), EQ(Var("R0",Imm(64)),Int(0,64)), -Direct(Tid(505, "%000001f9"))), Goto(Tid(1_546, "%0000060a"), Attrs([]), - Int(1,1), Direct(Tid(963, "%000003c3")))])), Blk(Tid(505, "%000001f9"), - Attrs([Attr("address","0x644")]), Phis([]), Defs([]), -Jmps([Call(Tid(513, "%00000201"), Attrs([Attr("address","0x644"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))])), -Blk(Tid(963, "%000003c3"), Attrs([Attr("address","0x640")]), Phis([]), -Defs([]), Jmps([Goto(Tid(966, "%000003c6"), Attrs([Attr("address","0x640"), -Attr("insn","b #-0x60")]), Int(1,1), Direct(Tid(964, "@__gmon_start__")))])), -Blk(Tid(964, "@__gmon_start__"), Attrs([Attr("address","0x5E0")]), Phis([]), -Defs([Def(Tid(1_169, "%00000491"), Attrs([Attr("address","0x5E0"), -Attr("insn","adrp x16, #65536")]), Var("R16",Imm(64)), Int(65536,64)), -Def(Tid(1_176, "%00000498"), Attrs([Attr("address","0x5E4"), -Attr("insn","ldr x17, [x16, #0xfc0]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(4032,64)),LittleEndian(),64)), -Def(Tid(1_182, "%0000049e"), Attrs([Attr("address","0x5E8"), -Attr("insn","add x16, x16, #0xfc0")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(4032,64)))]), Jmps([Call(Tid(1_187, "%000004a3"), - Attrs([Attr("address","0x5EC"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), -Sub(Tid(1_513, "@deregister_tm_clones"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x650")]), - "deregister_tm_clones", Args([Arg(Tid(1_565, "%0000061d"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("deregister_tm_clones_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(519, "@deregister_tm_clones"), - Attrs([Attr("address","0x650")]), Phis([]), Defs([Def(Tid(522, "%0000020a"), - Attrs([Attr("address","0x650"), Attr("insn","adrp x0, #69632")]), - Var("R0",Imm(64)), Int(69632,64)), Def(Tid(528, "%00000210"), - Attrs([Attr("address","0x654"), Attr("insn","add x0, x0, #0x10")]), - Var("R0",Imm(64)), PLUS(Var("R0",Imm(64)),Int(16,64))), -Def(Tid(533, "%00000215"), Attrs([Attr("address","0x658"), -Attr("insn","adrp x1, #69632")]), Var("R1",Imm(64)), Int(69632,64)), -Def(Tid(539, "%0000021b"), Attrs([Attr("address","0x65C"), -Attr("insn","add x1, x1, #0x10")]), Var("R1",Imm(64)), -PLUS(Var("R1",Imm(64)),Int(16,64))), Def(Tid(545, "%00000221"), - Attrs([Attr("address","0x660"), Attr("insn","cmp x1, x0")]), - Var("#1",Imm(64)), NOT(Var("R0",Imm(64)))), Def(Tid(550, "%00000226"), - Attrs([Attr("address","0x660"), Attr("insn","cmp x1, x0")]), - Var("#2",Imm(64)), PLUS(Var("R1",Imm(64)),NOT(Var("R0",Imm(64))))), -Def(Tid(556, "%0000022c"), Attrs([Attr("address","0x660"), -Attr("insn","cmp x1, x0")]), Var("VF",Imm(1)), -NEQ(SIGNED(65,PLUS(Var("#2",Imm(64)),Int(1,64))),PLUS(PLUS(SIGNED(65,Var("R1",Imm(64))),SIGNED(65,Var("#1",Imm(64)))),Int(1,65)))), -Def(Tid(562, "%00000232"), Attrs([Attr("address","0x660"), -Attr("insn","cmp x1, x0")]), Var("CF",Imm(1)), -NEQ(UNSIGNED(65,PLUS(Var("#2",Imm(64)),Int(1,64))),PLUS(PLUS(UNSIGNED(65,Var("R1",Imm(64))),UNSIGNED(65,Var("#1",Imm(64)))),Int(1,65)))), -Def(Tid(566, "%00000236"), Attrs([Attr("address","0x660"), -Attr("insn","cmp x1, x0")]), Var("ZF",Imm(1)), -EQ(PLUS(Var("#2",Imm(64)),Int(1,64)),Int(0,64))), Def(Tid(570, "%0000023a"), - Attrs([Attr("address","0x660"), Attr("insn","cmp x1, x0")]), - Var("NF",Imm(1)), Extract(63,63,PLUS(Var("#2",Imm(64)),Int(1,64))))]), -Jmps([Goto(Tid(576, "%00000240"), Attrs([Attr("address","0x664"), -Attr("insn","b.eq #0x18")]), EQ(Var("ZF",Imm(1)),Int(1,1)), -Direct(Tid(574, "%0000023e"))), Goto(Tid(1_547, "%0000060b"), Attrs([]), - Int(1,1), Direct(Tid(933, "%000003a5")))])), Blk(Tid(933, "%000003a5"), - Attrs([Attr("address","0x668")]), Phis([]), Defs([Def(Tid(936, "%000003a8"), - Attrs([Attr("address","0x668"), Attr("insn","adrp x1, #65536")]), - Var("R1",Imm(64)), Int(65536,64)), Def(Tid(943, "%000003af"), - Attrs([Attr("address","0x66C"), Attr("insn","ldr x1, [x1, #0xfd8]")]), - Var("R1",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R1",Imm(64)),Int(4056,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(948, "%000003b4"), Attrs([Attr("address","0x670"), -Attr("insn","cbz x1, #0xc")]), EQ(Var("R1",Imm(64)),Int(0,64)), -Direct(Tid(574, "%0000023e"))), Goto(Tid(1_548, "%0000060c"), Attrs([]), - Int(1,1), Direct(Tid(952, "%000003b8")))])), Blk(Tid(574, "%0000023e"), - Attrs([Attr("address","0x67C")]), Phis([]), Defs([]), -Jmps([Call(Tid(582, "%00000246"), Attrs([Attr("address","0x67C"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))])), -Blk(Tid(952, "%000003b8"), Attrs([Attr("address","0x674")]), Phis([]), -Defs([Def(Tid(956, "%000003bc"), Attrs([Attr("address","0x674"), -Attr("insn","mov x16, x1")]), Var("R16",Imm(64)), Var("R1",Imm(64)))]), -Jmps([Call(Tid(961, "%000003c1"), Attrs([Attr("address","0x678"), -Attr("insn","br x16")]), Int(1,1), (Indirect(Var("R16",Imm(64))),))]))])), -Sub(Tid(1_516, "@frame_dummy"), Attrs([Attr("c.proto","signed (*)(void)"), -Attr("address","0x710")]), "frame_dummy", Args([Arg(Tid(1_566, "%0000061e"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("frame_dummy_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(734, "@frame_dummy"), - Attrs([Attr("address","0x710")]), Phis([]), Defs([]), -Jmps([Call(Tid(736, "%000002e0"), Attrs([Attr("address","0x710"), -Attr("insn","b #-0x90")]), Int(1,1), -(Direct(Tid(1_520, "@register_tm_clones")),))]))])), Sub(Tid(1_517, "@main"), - Attrs([Attr("c.proto","signed (*)(signed argc, const char** argv)"), -Attr("address","0x714")]), "main", Args([Arg(Tid(1_567, "%0000061f"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("main_argc",Imm(32)), -LOW(32,Var("R0",Imm(64))), In()), Arg(Tid(1_568, "%00000620"), - Attrs([Attr("c.layout","**[char : 8]"), Attr("c.data","Top:u8 ptr ptr"), -Attr("c.type"," const char**")]), Var("main_argv",Imm(64)), -Var("R1",Imm(64)), Both()), Arg(Tid(1_569, "%00000621"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("main_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(738, "@main"), - Attrs([Attr("address","0x714")]), Phis([]), Defs([Def(Tid(742, "%000002e6"), - Attrs([Attr("address","0x714"), Attr("insn","sub sp, sp, #0x10")]), - Var("R31",Imm(64)), PLUS(Var("R31",Imm(64)),Int(18446744073709551600,64))), -Def(Tid(749, "%000002ed"), Attrs([Attr("address","0x718"), -Attr("insn","str wzr, [sp, #0xc]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(12,64)),Int(0,32),LittleEndian(),32)), -Def(Tid(754, "%000002f2"), Attrs([Attr("address","0x71C"), -Attr("insn","adrp x0, #69632")]), Var("R0",Imm(64)), Int(69632,64)), -Def(Tid(760, "%000002f8"), Attrs([Attr("address","0x720"), -Attr("insn","add x0, x0, #0x18")]), Var("R0",Imm(64)), -PLUS(Var("R0",Imm(64)),Int(24,64))), Def(Tid(767, "%000002ff"), - Attrs([Attr("address","0x724"), Attr("insn","ldr w0, [x0]")]), - Var("R0",Imm(64)), -UNSIGNED(64,Load(Var("mem",Mem(64,8)),Var("R0",Imm(64)),LittleEndian(),32))), -Def(Tid(773, "%00000305"), Attrs([Attr("address","0x728"), -Attr("insn","cmp w0, #0x0")]), Var("#4",Imm(32)), -PLUS(Extract(31,0,Var("R0",Imm(64))),Int(4294967295,32))), -Def(Tid(778, "%0000030a"), Attrs([Attr("address","0x728"), -Attr("insn","cmp w0, #0x0")]), Var("VF",Imm(1)), -NEQ(SIGNED(33,PLUS(Var("#4",Imm(32)),Int(1,32))),PLUS(SIGNED(33,Extract(31,0,Var("R0",Imm(64)))),Int(0,33)))), -Def(Tid(783, "%0000030f"), Attrs([Attr("address","0x728"), -Attr("insn","cmp w0, #0x0")]), Var("CF",Imm(1)), -NEQ(UNSIGNED(33,PLUS(Var("#4",Imm(32)),Int(1,32))),PLUS(UNSIGNED(33,Extract(31,0,Var("R0",Imm(64)))),Int(4294967296,33)))), -Def(Tid(787, "%00000313"), Attrs([Attr("address","0x728"), -Attr("insn","cmp w0, #0x0")]), Var("ZF",Imm(1)), -EQ(PLUS(Var("#4",Imm(32)),Int(1,32)),Int(0,32))), Def(Tid(791, "%00000317"), - Attrs([Attr("address","0x728"), Attr("insn","cmp w0, #0x0")]), - Var("NF",Imm(1)), Extract(31,31,PLUS(Var("#4",Imm(32)),Int(1,32))))]), -Jmps([Goto(Tid(797, "%0000031d"), Attrs([Attr("address","0x72C"), -Attr("insn","b.ne #0x14")]), NEQ(Var("ZF",Imm(1)),Int(1,1)), -Direct(Tid(795, "%0000031b"))), Goto(Tid(1_549, "%0000060d"), Attrs([]), - Int(1,1), Direct(Tid(818, "%00000332")))])), Blk(Tid(818, "%00000332"), - Attrs([Attr("address","0x730")]), Phis([]), Defs([Def(Tid(821, "%00000335"), - Attrs([Attr("address","0x730"), Attr("insn","adrp x0, #69632")]), - Var("R0",Imm(64)), Int(69632,64)), Def(Tid(827, "%0000033b"), - Attrs([Attr("address","0x734"), Attr("insn","add x0, x0, #0x14")]), - Var("R0",Imm(64)), PLUS(Var("R0",Imm(64)),Int(20,64))), -Def(Tid(834, "%00000342"), Attrs([Attr("address","0x738"), -Attr("insn","ldr w0, [x0]")]), Var("R0",Imm(64)), -UNSIGNED(64,Load(Var("mem",Mem(64,8)),Var("R0",Imm(64)),LittleEndian(),32))), -Def(Tid(842, "%0000034a"), Attrs([Attr("address","0x73C"), -Attr("insn","str w0, [sp, #0xc]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(12,64)),Extract(31,0,Var("R0",Imm(64))),LittleEndian(),32))]), -Jmps([Goto(Tid(1_550, "%0000060e"), Attrs([]), Int(1,1), -Direct(Tid(795, "%0000031b")))])), Blk(Tid(795, "%0000031b"), - Attrs([Attr("address","0x740")]), Phis([]), Defs([Def(Tid(805, "%00000325"), - Attrs([Attr("address","0x740"), Attr("insn","ldr w0, [sp, #0xc]")]), - Var("R0",Imm(64)), -UNSIGNED(64,Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(12,64)),LittleEndian(),32))), -Def(Tid(811, "%0000032b"), Attrs([Attr("address","0x744"), -Attr("insn","add sp, sp, #0x10")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(16,64)))]), Jmps([Call(Tid(816, "%00000330"), - Attrs([Attr("address","0x748"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), -Sub(Tid(1_520, "@register_tm_clones"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x680")]), - "register_tm_clones", Args([Arg(Tid(1_570, "%00000622"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("register_tm_clones_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(584, "@register_tm_clones"), Attrs([Attr("address","0x680")]), - Phis([]), Defs([Def(Tid(587, "%0000024b"), Attrs([Attr("address","0x680"), -Attr("insn","adrp x0, #69632")]), Var("R0",Imm(64)), Int(69632,64)), -Def(Tid(593, "%00000251"), Attrs([Attr("address","0x684"), -Attr("insn","add x0, x0, #0x10")]), Var("R0",Imm(64)), -PLUS(Var("R0",Imm(64)),Int(16,64))), Def(Tid(598, "%00000256"), - Attrs([Attr("address","0x688"), Attr("insn","adrp x1, #69632")]), - Var("R1",Imm(64)), Int(69632,64)), Def(Tid(604, "%0000025c"), - Attrs([Attr("address","0x68C"), Attr("insn","add x1, x1, #0x10")]), - Var("R1",Imm(64)), PLUS(Var("R1",Imm(64)),Int(16,64))), -Def(Tid(611, "%00000263"), Attrs([Attr("address","0x690"), -Attr("insn","sub x1, x1, x0")]), Var("R1",Imm(64)), -PLUS(PLUS(Var("R1",Imm(64)),NOT(Var("R0",Imm(64)))),Int(1,64))), -Def(Tid(617, "%00000269"), Attrs([Attr("address","0x694"), -Attr("insn","lsr x2, x1, #63")]), Var("R2",Imm(64)), -Concat(Int(0,63),Extract(63,63,Var("R1",Imm(64))))), -Def(Tid(624, "%00000270"), Attrs([Attr("address","0x698"), -Attr("insn","add x1, x2, x1, asr #3")]), Var("R1",Imm(64)), -PLUS(Var("R2",Imm(64)),ARSHIFT(Var("R1",Imm(64)),Int(3,3)))), -Def(Tid(630, "%00000276"), Attrs([Attr("address","0x69C"), -Attr("insn","asr x1, x1, #1")]), Var("R1",Imm(64)), -SIGNED(64,Extract(63,1,Var("R1",Imm(64)))))]), -Jmps([Goto(Tid(636, "%0000027c"), Attrs([Attr("address","0x6A0"), -Attr("insn","cbz x1, #0x18")]), EQ(Var("R1",Imm(64)),Int(0,64)), -Direct(Tid(634, "%0000027a"))), Goto(Tid(1_551, "%0000060f"), Attrs([]), - Int(1,1), Direct(Tid(903, "%00000387")))])), Blk(Tid(903, "%00000387"), - Attrs([Attr("address","0x6A4")]), Phis([]), Defs([Def(Tid(906, "%0000038a"), - Attrs([Attr("address","0x6A4"), Attr("insn","adrp x2, #65536")]), - Var("R2",Imm(64)), Int(65536,64)), Def(Tid(913, "%00000391"), - Attrs([Attr("address","0x6A8"), Attr("insn","ldr x2, [x2, #0xff8]")]), - Var("R2",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R2",Imm(64)),Int(4088,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(918, "%00000396"), Attrs([Attr("address","0x6AC"), -Attr("insn","cbz x2, #0xc")]), EQ(Var("R2",Imm(64)),Int(0,64)), -Direct(Tid(634, "%0000027a"))), Goto(Tid(1_552, "%00000610"), Attrs([]), - Int(1,1), Direct(Tid(922, "%0000039a")))])), Blk(Tid(634, "%0000027a"), - Attrs([Attr("address","0x6B8")]), Phis([]), Defs([]), -Jmps([Call(Tid(642, "%00000282"), Attrs([Attr("address","0x6B8"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))])), -Blk(Tid(922, "%0000039a"), Attrs([Attr("address","0x6B0")]), Phis([]), -Defs([Def(Tid(926, "%0000039e"), Attrs([Attr("address","0x6B0"), -Attr("insn","mov x16, x2")]), Var("R16",Imm(64)), Var("R2",Imm(64)))]), -Jmps([Call(Tid(931, "%000003a3"), Attrs([Attr("address","0x6B4"), -Attr("insn","br x16")]), Int(1,1), -(Indirect(Var("R16",Imm(64))),))]))]))]))) \ No newline at end of file diff --git a/src/test/correct/basic_lock_security_read/gcc/basic_lock_security_read.bir b/src/test/correct/basic_lock_security_read/gcc/basic_lock_security_read.bir deleted file mode 100644 index 81da291e0..000000000 --- a/src/test/correct/basic_lock_security_read/gcc/basic_lock_security_read.bir +++ /dev/null @@ -1,246 +0,0 @@ -00000611: program -000005db: sub __cxa_finalize(__cxa_finalize_result) -00000612: __cxa_finalize_result :: out u32 = low:32[R0] - -00000383: -0000047b: R16 := 0x10000 -00000482: R17 := mem[R16 + 0xFB8, el]:u64 -00000488: R16 := R16 + 0xFB8 -0000048d: call R17 with noreturn - -000005dc: sub __do_global_dtors_aux(__do_global_dtors_aux_result) -00000613: __do_global_dtors_aux_result :: out u32 = low:32[R0] - -00000286: -0000028a: #3 := R31 - 0x20 -00000290: mem := mem with [#3, el]:u64 <- R29 -00000296: mem := mem with [#3 + 8, el]:u64 <- R30 -0000029a: R31 := #3 -000002a0: R29 := R31 -000002a8: mem := mem with [R31 + 0x10, el]:u64 <- R19 -000002ad: R19 := 0x11000 -000002b4: R0 := pad:64[mem[R19 + 0x10]] -000002bb: when 31:0[R0] <> 0 goto %000002b9 -00000605: goto %0000034c - -0000034c: -0000034f: R0 := 0x10000 -00000356: R0 := mem[R0 + 0xFE0, el]:u64 -0000035c: when R0 = 0 goto %0000035a -00000606: goto %00000373 - -00000373: -00000376: R0 := 0x11000 -0000037d: R0 := mem[R0 + 8, el]:u64 -00000382: R30 := 0x6F0 -00000385: call @__cxa_finalize with return %0000035a - -0000035a: -00000362: R30 := 0x6F4 -00000364: call @deregister_tm_clones with return %00000366 - -00000366: -00000369: R0 := 1 -00000371: mem := mem with [R19 + 0x10] <- 7:0[R0] -00000607: goto %000002b9 - -000002b9: -000002c3: R19 := mem[R31 + 0x10, el]:u64 -000002ca: R29 := mem[R31, el]:u64 -000002cf: R30 := mem[R31 + 8, el]:u64 -000002d3: R31 := R31 + 0x20 -000002d8: call R30 with noreturn - -000005e0: sub __libc_start_main(__libc_start_main_main, __libc_start_main_arg2, __libc_start_main_arg3, __libc_start_main_auxv, __libc_start_main_result) -00000614: __libc_start_main_main :: in u64 = R0 -00000615: __libc_start_main_arg2 :: in u32 = low:32[R1] -00000616: __libc_start_main_arg3 :: in out u64 = R2 -00000617: __libc_start_main_auxv :: in out u64 = R3 -00000618: __libc_start_main_result :: out u32 = low:32[R0] - -000001df: -00000465: R16 := 0x10000 -0000046c: R17 := mem[R16 + 0xFB0, el]:u64 -00000472: R16 := R16 + 0xFB0 -00000477: call R17 with noreturn - -000005e1: sub _fini(_fini_result) -00000619: _fini_result :: out u32 = low:32[R0] - -0000001f: -00000025: #0 := R31 - 0x10 -0000002b: mem := mem with [#0, el]:u64 <- R29 -00000031: mem := mem with [#0 + 8, el]:u64 <- R30 -00000035: R31 := #0 -0000003b: R29 := R31 -00000042: R29 := mem[R31, el]:u64 -00000047: R30 := mem[R31 + 8, el]:u64 -0000004b: R31 := R31 + 0x10 -00000050: call R30 with noreturn - -000005e2: sub _init(_init_result) -0000061a: _init_result :: out u32 = low:32[R0] - -0000052f: -00000535: #6 := R31 - 0x10 -0000053b: mem := mem with [#6, el]:u64 <- R29 -00000541: mem := mem with [#6 + 8, el]:u64 <- R30 -00000545: R31 := #6 -0000054b: R29 := R31 -00000550: R30 := 0x590 -00000552: call @call_weak_fn with return %00000554 - -00000554: -00000559: R29 := mem[R31, el]:u64 -0000055e: R30 := mem[R31 + 8, el]:u64 -00000562: R31 := R31 + 0x10 -00000567: call R30 with noreturn - -000005e3: sub _start(_start_result) -0000061b: _start_result :: out u32 = low:32[R0] - -000001a0: -000001a5: R29 := 0 -000001aa: R30 := 0 -000001b0: R5 := R0 -000001b7: R1 := mem[R31, el]:u64 -000001bd: R2 := R31 + 8 -000001c3: R6 := R31 -000001c8: R0 := 0x10000 -000001cf: R0 := mem[R0 + 0xFF0, el]:u64 -000001d4: R3 := 0 -000001d9: R4 := 0 -000001de: R30 := 0x630 -000001e1: call @__libc_start_main with return %000001e3 - -000001e3: -000001e6: R30 := 0x634 -000001e9: call @abort with return %00000608 - -00000608: -00000609: call @call_weak_fn with noreturn - -000005e6: sub abort() - - -000001e7: -000004a7: R16 := 0x10000 -000004ae: R17 := mem[R16 + 0xFC8, el]:u64 -000004b4: R16 := R16 + 0xFC8 -000004b9: call R17 with noreturn - -000005e7: sub call_weak_fn(call_weak_fn_result) -0000061c: call_weak_fn_result :: out u32 = low:32[R0] - -000001eb: -000001ee: R0 := 0x10000 -000001f5: R0 := mem[R0 + 0xFE8, el]:u64 -000001fb: when R0 = 0 goto %000001f9 -0000060a: goto %000003c3 - -000001f9: -00000201: call R30 with noreturn - -000003c3: -000003c6: goto @__gmon_start__ - -000003c4: -00000491: R16 := 0x10000 -00000498: R17 := mem[R16 + 0xFC0, el]:u64 -0000049e: R16 := R16 + 0xFC0 -000004a3: call R17 with noreturn - -000005e9: sub deregister_tm_clones(deregister_tm_clones_result) -0000061d: deregister_tm_clones_result :: out u32 = low:32[R0] - -00000207: -0000020a: R0 := 0x11000 -00000210: R0 := R0 + 0x10 -00000215: R1 := 0x11000 -0000021b: R1 := R1 + 0x10 -00000221: #1 := ~R0 -00000226: #2 := R1 + ~R0 -0000022c: VF := extend:65[#2 + 1] <> extend:65[R1] + extend:65[#1] + 1 -00000232: CF := pad:65[#2 + 1] <> pad:65[R1] + pad:65[#1] + 1 -00000236: ZF := #2 + 1 = 0 -0000023a: NF := 63:63[#2 + 1] -00000240: when ZF goto %0000023e -0000060b: goto %000003a5 - -000003a5: -000003a8: R1 := 0x10000 -000003af: R1 := mem[R1 + 0xFD8, el]:u64 -000003b4: when R1 = 0 goto %0000023e -0000060c: goto %000003b8 - -0000023e: -00000246: call R30 with noreturn - -000003b8: -000003bc: R16 := R1 -000003c1: call R16 with noreturn - -000005ec: sub frame_dummy(frame_dummy_result) -0000061e: frame_dummy_result :: out u32 = low:32[R0] - -000002de: -000002e0: call @register_tm_clones with noreturn - -000005ed: sub main(main_argc, main_argv, main_result) -0000061f: main_argc :: in u32 = low:32[R0] -00000620: main_argv :: in out u64 = R1 -00000621: main_result :: out u32 = low:32[R0] - -000002e2: -000002e6: R31 := R31 - 0x10 -000002ed: mem := mem with [R31 + 0xC, el]:u32 <- 0 -000002f2: R0 := 0x11000 -000002f8: R0 := R0 + 0x18 -000002ff: R0 := pad:64[mem[R0, el]:u32] -00000305: #4 := 31:0[R0] - 1 -0000030a: VF := extend:33[#4 + 1] <> extend:33[31:0[R0]] + 0 -0000030f: CF := pad:33[#4 + 1] <> pad:33[31:0[R0]] - 0x100000000 -00000313: ZF := #4 + 1 = 0 -00000317: NF := 31:31[#4 + 1] -0000031d: when ZF <> 1 goto %0000031b -0000060d: goto %00000332 - -00000332: -00000335: R0 := 0x11000 -0000033b: R0 := R0 + 0x14 -00000342: R0 := pad:64[mem[R0, el]:u32] -0000034a: mem := mem with [R31 + 0xC, el]:u32 <- 31:0[R0] -0000060e: goto %0000031b - -0000031b: -00000325: R0 := pad:64[mem[R31 + 0xC, el]:u32] -0000032b: R31 := R31 + 0x10 -00000330: call R30 with noreturn - -000005f0: sub register_tm_clones(register_tm_clones_result) -00000622: register_tm_clones_result :: out u32 = low:32[R0] - -00000248: -0000024b: R0 := 0x11000 -00000251: R0 := R0 + 0x10 -00000256: R1 := 0x11000 -0000025c: R1 := R1 + 0x10 -00000263: R1 := R1 + ~R0 + 1 -00000269: R2 := 0.63:63[R1] -00000270: R1 := R2 + (R1 ~>> 3) -00000276: R1 := extend:64[63:1[R1]] -0000027c: when R1 = 0 goto %0000027a -0000060f: goto %00000387 - -00000387: -0000038a: R2 := 0x10000 -00000391: R2 := mem[R2 + 0xFF8, el]:u64 -00000396: when R2 = 0 goto %0000027a -00000610: goto %0000039a - -0000027a: -00000282: call R30 with noreturn - -0000039a: -0000039e: R16 := R2 -000003a3: call R16 with noreturn diff --git a/src/test/correct/basic_lock_security_read/gcc/basic_lock_security_read.expected b/src/test/correct/basic_lock_security_read/gcc/basic_lock_security_read.expected index f0aa50ebf..c34483a5e 100644 --- a/src/test/correct/basic_lock_security_read/gcc/basic_lock_security_read.expected +++ b/src/test/correct/basic_lock_security_read/gcc/basic_lock_security_read.expected @@ -87,7 +87,7 @@ implementation {:extern} guarantee_reflexive() assert ((memory_load32_le(mem, $z_addr) == memory_load32_le(mem, $z_addr)) && (memory_load32_le(mem, $x_addr) == memory_load32_le(mem, $x_addr))); } -procedure main_1812(); +procedure main(); modifies CF, Gamma_CF, Gamma_NF, Gamma_R0, Gamma_R31, Gamma_VF, Gamma_ZF, Gamma_mem, Gamma_stack, NF, R0, R31, VF, ZF, mem, stack; free requires (memory_load64_le(mem, 69632bv64) == 0bv64); free requires (memory_load64_le(mem, 69640bv64) == 69640bv64); @@ -104,16 +104,16 @@ procedure main_1812(); free ensures (memory_load64_le(mem, 69616bv64) == 1812bv64); free ensures (memory_load64_le(mem, 69640bv64) == 69640bv64); -implementation main_1812() +implementation main() { var #4: bv32; + var $load$18: bv32; + var $load$19: bv32; + var $load$20: bv32; var Gamma_#4: bool; - var Gamma_load18: bool; - var Gamma_load19: bool; - var Gamma_load20: bool; - var load18: bv32; - var load19: bv32; - var load20: bv32; + var Gamma_$load$18: bool; + var Gamma_$load$19: bool; + var Gamma_$load$20: bool; lmain: assume {:captureState "lmain"} true; R31, Gamma_R31 := bvadd64(R31, 18446744073709551600bv64), Gamma_R31; @@ -122,8 +122,8 @@ implementation main_1812() R0, Gamma_R0 := 69632bv64, true; R0, Gamma_R0 := bvadd64(R0, 24bv64), Gamma_R0; call rely(); - load18, Gamma_load18 := memory_load32_le(mem, R0), (gamma_load32(Gamma_mem, R0) || L(mem, R0)); - R0, Gamma_R0 := zero_extend32_32(load18), Gamma_load18; + $load$18, Gamma_$load$18 := memory_load32_le(mem, R0), (gamma_load32(Gamma_mem, R0) || L(mem, R0)); + R0, Gamma_R0 := zero_extend32_32($load$18), Gamma_$load$18; #4, Gamma_#4 := bvadd32(R0[32:0], 4294967295bv32), Gamma_R0; VF, Gamma_VF := bvnot1(bvcomp33(sign_extend1_32(bvadd32(#4, 1bv32)), bvadd33(sign_extend1_32(R0[32:0]), 0bv33))), (Gamma_R0 && Gamma_#4); CF, Gamma_CF := bvnot1(bvcomp33(zero_extend1_32(bvadd32(#4, 1bv32)), bvadd33(zero_extend1_32(R0[32:0]), 4294967296bv33))), (Gamma_R0 && Gamma_#4); @@ -131,32 +131,32 @@ implementation main_1812() NF, Gamma_NF := bvadd32(#4, 1bv32)[32:31], Gamma_#4; assert Gamma_ZF; goto lmain_goto_l0000031b, lmain_goto_l00000332; - lmain_goto_l00000332: - assume {:captureState "lmain_goto_l00000332"} true; - assume (bvnot1(bvcomp1(ZF, 1bv1)) == 0bv1); + l00000332: + assume {:captureState "l00000332"} true; R0, Gamma_R0 := 69632bv64, true; R0, Gamma_R0 := bvadd64(R0, 20bv64), Gamma_R0; call rely(); - load19, Gamma_load19 := memory_load32_le(mem, R0), (gamma_load32(Gamma_mem, R0) || L(mem, R0)); - R0, Gamma_R0 := zero_extend32_32(load19), Gamma_load19; + $load$19, Gamma_$load$19 := memory_load32_le(mem, R0), (gamma_load32(Gamma_mem, R0) || L(mem, R0)); + R0, Gamma_R0 := zero_extend32_32($load$19), Gamma_$load$19; stack, Gamma_stack := memory_store32_le(stack, bvadd64(R31, 12bv64), R0[32:0]), gamma_store32(Gamma_stack, bvadd64(R31, 12bv64), Gamma_R0); assume {:captureState "%0000034a"} true; - goto l00000332; - l00000332: - assume {:captureState "l00000332"} true; goto l0000031b; + l0000031b: + assume {:captureState "l0000031b"} true; + $load$20, Gamma_$load$20 := memory_load32_le(stack, bvadd64(R31, 12bv64)), gamma_load32(Gamma_stack, bvadd64(R31, 12bv64)); + R0, Gamma_R0 := zero_extend32_32($load$20), Gamma_$load$20; + R31, Gamma_R31 := bvadd64(R31, 16bv64), Gamma_R31; + goto main_basil_return; lmain_goto_l0000031b: assume {:captureState "lmain_goto_l0000031b"} true; assume (bvnot1(bvcomp1(ZF, 1bv1)) != 0bv1); goto l0000031b; - l0000031b: - assume {:captureState "l0000031b"} true; - load20, Gamma_load20 := memory_load32_le(stack, bvadd64(R31, 12bv64)), gamma_load32(Gamma_stack, bvadd64(R31, 12bv64)); - R0, Gamma_R0 := zero_extend32_32(load20), Gamma_load20; - R31, Gamma_R31 := bvadd64(R31, 16bv64), Gamma_R31; - goto main_1812_basil_return; - main_1812_basil_return: - assume {:captureState "main_1812_basil_return"} true; + lmain_goto_l00000332: + assume {:captureState "lmain_goto_l00000332"} true; + assume (bvnot1(bvcomp1(ZF, 1bv1)) == 0bv1); + goto l00000332; + main_basil_return: + assume {:captureState "main_basil_return"} true; return; } diff --git a/src/test/correct/basic_lock_security_read/gcc/basic_lock_security_read.gts b/src/test/correct/basic_lock_security_read/gcc/basic_lock_security_read.gts deleted file mode 100644 index 7ce9ccc6c..000000000 Binary files a/src/test/correct/basic_lock_security_read/gcc/basic_lock_security_read.gts and /dev/null differ diff --git a/src/test/correct/basic_lock_security_read/gcc/basic_lock_security_read.md5sum b/src/test/correct/basic_lock_security_read/gcc/basic_lock_security_read.md5sum new file mode 100644 index 000000000..bc95072be --- /dev/null +++ b/src/test/correct/basic_lock_security_read/gcc/basic_lock_security_read.md5sum @@ -0,0 +1,5 @@ +f2410f45fc08d7f2b68c5c7074a39399 correct/basic_lock_security_read/gcc/a.out +1c97c58812498563f85409b9c10b23c1 correct/basic_lock_security_read/gcc/basic_lock_security_read.adt +cbd0b7e3c2f6cc299ca019bde95ff258 correct/basic_lock_security_read/gcc/basic_lock_security_read.bir +4123d11b5f1429b57df6bba9699f346b correct/basic_lock_security_read/gcc/basic_lock_security_read.relf +acbade8063f908cfd4f5f24006d390c0 correct/basic_lock_security_read/gcc/basic_lock_security_read.gts diff --git a/src/test/correct/basic_lock_security_read/gcc/basic_lock_security_read.relf b/src/test/correct/basic_lock_security_read/gcc/basic_lock_security_read.relf deleted file mode 100644 index 1a3ab8200..000000000 --- a/src/test/correct/basic_lock_security_read/gcc/basic_lock_security_read.relf +++ /dev/null @@ -1,122 +0,0 @@ - -Relocation section '.rela.dyn' at offset 0x460 contains 8 entries: - Offset Info Type Symbol's Value Symbol's Name + Addend -0000000000010d98 0000000000000403 R_AARCH64_RELATIVE 710 -0000000000010da0 0000000000000403 R_AARCH64_RELATIVE 6c0 -0000000000010ff0 0000000000000403 R_AARCH64_RELATIVE 714 -0000000000011008 0000000000000403 R_AARCH64_RELATIVE 11008 -0000000000010fd8 0000000400000401 R_AARCH64_GLOB_DAT 0000000000000000 _ITM_deregisterTMCloneTable + 0 -0000000000010fe0 0000000500000401 R_AARCH64_GLOB_DAT 0000000000000000 __cxa_finalize@GLIBC_2.17 + 0 -0000000000010fe8 0000000600000401 R_AARCH64_GLOB_DAT 0000000000000000 __gmon_start__ + 0 -0000000000010ff8 0000000800000401 R_AARCH64_GLOB_DAT 0000000000000000 _ITM_registerTMCloneTable + 0 - -Relocation section '.rela.plt' at offset 0x520 contains 4 entries: - Offset Info Type Symbol's Value Symbol's Name + Addend -0000000000010fb0 0000000300000402 R_AARCH64_JUMP_SLOT 0000000000000000 __libc_start_main@GLIBC_2.34 + 0 -0000000000010fb8 0000000500000402 R_AARCH64_JUMP_SLOT 0000000000000000 __cxa_finalize@GLIBC_2.17 + 0 -0000000000010fc0 0000000600000402 R_AARCH64_JUMP_SLOT 0000000000000000 __gmon_start__ + 0 -0000000000010fc8 0000000700000402 R_AARCH64_JUMP_SLOT 0000000000000000 abort@GLIBC_2.17 + 0 - -Symbol table '.dynsym' contains 9 entries: - Num: Value Size Type Bind Vis Ndx Name - 0: 0000000000000000 0 NOTYPE LOCAL DEFAULT UND - 1: 0000000000000580 0 SECTION LOCAL DEFAULT 11 .init - 2: 0000000000011000 0 SECTION LOCAL DEFAULT 22 .data - 3: 0000000000000000 0 FUNC GLOBAL DEFAULT UND __libc_start_main@GLIBC_2.34 (2) - 4: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_deregisterTMCloneTable - 5: 0000000000000000 0 FUNC WEAK DEFAULT UND __cxa_finalize@GLIBC_2.17 (3) - 6: 0000000000000000 0 NOTYPE WEAK DEFAULT UND __gmon_start__ - 7: 0000000000000000 0 FUNC GLOBAL DEFAULT UND abort@GLIBC_2.17 (3) - 8: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_registerTMCloneTable - -Symbol table '.symtab' contains 89 entries: - Num: Value Size Type Bind Vis Ndx Name - 0: 0000000000000000 0 NOTYPE LOCAL DEFAULT UND - 1: 0000000000000238 0 SECTION LOCAL DEFAULT 1 .interp - 2: 0000000000000254 0 SECTION LOCAL DEFAULT 2 .note.gnu.build-id - 3: 0000000000000278 0 SECTION LOCAL DEFAULT 3 .note.ABI-tag - 4: 0000000000000298 0 SECTION LOCAL DEFAULT 4 .gnu.hash - 5: 00000000000002b8 0 SECTION LOCAL DEFAULT 5 .dynsym - 6: 0000000000000390 0 SECTION LOCAL DEFAULT 6 .dynstr - 7: 000000000000041e 0 SECTION LOCAL DEFAULT 7 .gnu.version - 8: 0000000000000430 0 SECTION LOCAL DEFAULT 8 .gnu.version_r - 9: 0000000000000460 0 SECTION LOCAL DEFAULT 9 .rela.dyn - 10: 0000000000000520 0 SECTION LOCAL DEFAULT 10 .rela.plt - 11: 0000000000000580 0 SECTION LOCAL DEFAULT 11 .init - 12: 00000000000005a0 0 SECTION LOCAL DEFAULT 12 .plt - 13: 0000000000000600 0 SECTION LOCAL DEFAULT 13 .text - 14: 000000000000074c 0 SECTION LOCAL DEFAULT 14 .fini - 15: 0000000000000760 0 SECTION LOCAL DEFAULT 15 .rodata - 16: 0000000000000764 0 SECTION LOCAL DEFAULT 16 .eh_frame_hdr - 17: 00000000000007a0 0 SECTION LOCAL DEFAULT 17 .eh_frame - 18: 0000000000010d98 0 SECTION LOCAL DEFAULT 18 .init_array - 19: 0000000000010da0 0 SECTION LOCAL DEFAULT 19 .fini_array - 20: 0000000000010da8 0 SECTION LOCAL DEFAULT 20 .dynamic - 21: 0000000000010f98 0 SECTION LOCAL DEFAULT 21 .got - 22: 0000000000011000 0 SECTION LOCAL DEFAULT 22 .data - 23: 0000000000011010 0 SECTION LOCAL DEFAULT 23 .bss - 24: 0000000000000000 0 SECTION LOCAL DEFAULT 24 .comment - 25: 0000000000000000 0 FILE LOCAL DEFAULT ABS Scrt1.o - 26: 0000000000000278 0 NOTYPE LOCAL DEFAULT 3 $d - 27: 0000000000000278 32 OBJECT LOCAL DEFAULT 3 __abi_tag - 28: 0000000000000600 0 NOTYPE LOCAL DEFAULT 13 $x - 29: 00000000000007b4 0 NOTYPE LOCAL DEFAULT 17 $d - 30: 0000000000000760 0 NOTYPE LOCAL DEFAULT 15 $d - 31: 0000000000000000 0 FILE LOCAL DEFAULT ABS crti.o - 32: 0000000000000634 0 NOTYPE LOCAL DEFAULT 13 $x - 33: 0000000000000634 20 FUNC LOCAL DEFAULT 13 call_weak_fn - 34: 0000000000000580 0 NOTYPE LOCAL DEFAULT 11 $x - 35: 000000000000074c 0 NOTYPE LOCAL DEFAULT 14 $x - 36: 0000000000000000 0 FILE LOCAL DEFAULT ABS crtn.o - 37: 0000000000000590 0 NOTYPE LOCAL DEFAULT 11 $x - 38: 0000000000000758 0 NOTYPE LOCAL DEFAULT 14 $x - 39: 0000000000000000 0 FILE LOCAL DEFAULT ABS crtstuff.c - 40: 0000000000000650 0 NOTYPE LOCAL DEFAULT 13 $x - 41: 0000000000000650 0 FUNC LOCAL DEFAULT 13 deregister_tm_clones - 42: 0000000000000680 0 FUNC LOCAL DEFAULT 13 register_tm_clones - 43: 0000000000011008 0 NOTYPE LOCAL DEFAULT 22 $d - 44: 00000000000006c0 0 FUNC LOCAL DEFAULT 13 __do_global_dtors_aux - 45: 0000000000011010 1 OBJECT LOCAL DEFAULT 23 completed.0 - 46: 0000000000010da0 0 NOTYPE LOCAL DEFAULT 19 $d - 47: 0000000000010da0 0 OBJECT LOCAL DEFAULT 19 __do_global_dtors_aux_fini_array_entry - 48: 0000000000000710 0 FUNC LOCAL DEFAULT 13 frame_dummy - 49: 0000000000010d98 0 NOTYPE LOCAL DEFAULT 18 $d - 50: 0000000000010d98 0 OBJECT LOCAL DEFAULT 18 __frame_dummy_init_array_entry - 51: 00000000000007c8 0 NOTYPE LOCAL DEFAULT 17 $d - 52: 0000000000011010 0 NOTYPE LOCAL DEFAULT 23 $d - 53: 0000000000000000 0 FILE LOCAL DEFAULT ABS basic_lock_security_read.c - 54: 0000000000011014 0 NOTYPE LOCAL DEFAULT 23 $d - 55: 0000000000000714 0 NOTYPE LOCAL DEFAULT 13 $x - 56: 0000000000000828 0 NOTYPE LOCAL DEFAULT 17 $d - 57: 0000000000000000 0 FILE LOCAL DEFAULT ABS crtstuff.c - 58: 0000000000000840 0 NOTYPE LOCAL DEFAULT 17 $d - 59: 0000000000000840 0 OBJECT LOCAL DEFAULT 17 __FRAME_END__ - 60: 0000000000000000 0 FILE LOCAL DEFAULT ABS - 61: 0000000000010da8 0 OBJECT LOCAL DEFAULT ABS _DYNAMIC - 62: 0000000000000764 0 NOTYPE LOCAL DEFAULT 16 __GNU_EH_FRAME_HDR - 63: 0000000000010fd0 0 OBJECT LOCAL DEFAULT ABS _GLOBAL_OFFSET_TABLE_ - 64: 00000000000005a0 0 NOTYPE LOCAL DEFAULT 12 $x - 65: 0000000000000000 0 FUNC GLOBAL DEFAULT UND __libc_start_main@GLIBC_2.34 - 66: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_deregisterTMCloneTable - 67: 0000000000011000 0 NOTYPE WEAK DEFAULT 22 data_start - 68: 0000000000011010 0 NOTYPE GLOBAL DEFAULT 23 __bss_start__ - 69: 0000000000000000 0 FUNC WEAK DEFAULT UND __cxa_finalize@GLIBC_2.17 - 70: 0000000000011020 0 NOTYPE GLOBAL DEFAULT 23 _bss_end__ - 71: 0000000000011010 0 NOTYPE GLOBAL DEFAULT 22 _edata - 72: 0000000000011018 4 OBJECT GLOBAL DEFAULT 23 z - 73: 0000000000011014 4 OBJECT GLOBAL DEFAULT 23 x - 74: 000000000000074c 0 FUNC GLOBAL HIDDEN 14 _fini - 75: 0000000000011020 0 NOTYPE GLOBAL DEFAULT 23 __bss_end__ - 76: 0000000000011000 0 NOTYPE GLOBAL DEFAULT 22 __data_start - 77: 0000000000000000 0 NOTYPE WEAK DEFAULT UND __gmon_start__ - 78: 0000000000011008 0 OBJECT GLOBAL HIDDEN 22 __dso_handle - 79: 0000000000000000 0 FUNC GLOBAL DEFAULT UND abort@GLIBC_2.17 - 80: 0000000000000760 4 OBJECT GLOBAL DEFAULT 15 _IO_stdin_used - 81: 0000000000011020 0 NOTYPE GLOBAL DEFAULT 23 _end - 82: 0000000000000600 52 FUNC GLOBAL DEFAULT 13 _start - 83: 0000000000011020 0 NOTYPE GLOBAL DEFAULT 23 __end__ - 84: 0000000000011010 0 NOTYPE GLOBAL DEFAULT 23 __bss_start - 85: 0000000000000714 56 FUNC GLOBAL DEFAULT 13 main - 86: 0000000000011010 0 OBJECT GLOBAL HIDDEN 22 __TMC_END__ - 87: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_registerTMCloneTable - 88: 0000000000000580 0 FUNC GLOBAL HIDDEN 11 _init diff --git a/src/test/correct/basic_lock_security_read/gcc/basic_lock_security_read_gtirb.expected b/src/test/correct/basic_lock_security_read/gcc/basic_lock_security_read_gtirb.expected index 1a8a7598a..d21696563 100644 --- a/src/test/correct/basic_lock_security_read/gcc/basic_lock_security_read_gtirb.expected +++ b/src/test/correct/basic_lock_security_read/gcc/basic_lock_security_read_gtirb.expected @@ -85,7 +85,7 @@ implementation {:extern} guarantee_reflexive() assert ((memory_load32_le(mem, $z_addr) == memory_load32_le(mem, $z_addr)) && (memory_load32_le(mem, $x_addr) == memory_load32_le(mem, $x_addr))); } -procedure main_1812(); +procedure main(); modifies CF, Gamma_CF, Gamma_NF, Gamma_R0, Gamma_R31, Gamma_VF, Gamma_ZF, Gamma_mem, Gamma_stack, NF, R0, R31, VF, ZF, mem, stack; free requires (memory_load64_le(mem, 69632bv64) == 0bv64); free requires (memory_load64_le(mem, 69640bv64) == 69640bv64); @@ -102,59 +102,59 @@ procedure main_1812(); free ensures (memory_load64_le(mem, 69616bv64) == 1812bv64); free ensures (memory_load64_le(mem, 69640bv64) == 69640bv64); -implementation main_1812() +implementation main() { - var Cse0__5_0_5: bv32; - var Gamma_Cse0__5_0_5: bool; - var Gamma_load5: bool; - var Gamma_load6: bool; - var Gamma_load7: bool; - var load5: bv32; - var load6: bv32; - var load7: bv32; - main_1812__0__A6BkCpHoRvCUlmC~AxLCrg: - assume {:captureState "main_1812__0__A6BkCpHoRvCUlmC~AxLCrg"} true; + var $load5: bv32; + var $load6: bv32; + var $load7: bv32; + var Cse0__5$0$5: bv32; + var Gamma_$load5: bool; + var Gamma_$load6: bool; + var Gamma_$load7: bool; + var Gamma_Cse0__5$0$5: bool; + $main$__0__$A6BkCpHoRvCUlmC~AxLCrg: + assume {:captureState "$main$__0__$A6BkCpHoRvCUlmC~AxLCrg"} true; R31, Gamma_R31 := bvadd64(R31, 18446744073709551600bv64), Gamma_R31; stack, Gamma_stack := memory_store32_le(stack, bvadd64(R31, 12bv64), 0bv32), gamma_store32(Gamma_stack, bvadd64(R31, 12bv64), true); - assume {:captureState "1816_0"} true; + assume {:captureState "1816$0"} true; R0, Gamma_R0 := 69632bv64, true; R0, Gamma_R0 := bvadd64(R0, 24bv64), Gamma_R0; call rely(); - load5, Gamma_load5 := memory_load32_le(mem, R0), (gamma_load32(Gamma_mem, R0) || L(mem, R0)); - R0, Gamma_R0 := zero_extend32_32(load5), Gamma_load5; - Cse0__5_0_5, Gamma_Cse0__5_0_5 := bvadd32(R0[32:0], 0bv32), Gamma_R0; - VF, Gamma_VF := bvnot1(bvcomp32(Cse0__5_0_5, Cse0__5_0_5)), Gamma_Cse0__5_0_5; - CF, Gamma_CF := bvnot1(bvcomp33(zero_extend1_32(Cse0__5_0_5), bvadd33(zero_extend1_32(R0[32:0]), 4294967296bv33))), (Gamma_R0 && Gamma_Cse0__5_0_5); - ZF, Gamma_ZF := bvcomp32(Cse0__5_0_5, 0bv32), Gamma_Cse0__5_0_5; - NF, Gamma_NF := Cse0__5_0_5[32:31], Gamma_Cse0__5_0_5; + $load5, Gamma_$load5 := memory_load32_le(mem, R0), (gamma_load32(Gamma_mem, R0) || L(mem, R0)); + R0, Gamma_R0 := zero_extend32_32($load5), Gamma_$load5; + Cse0__5$0$5, Gamma_Cse0__5$0$5 := bvadd32(R0[32:0], 0bv32), Gamma_R0; + VF, Gamma_VF := bvnot1(bvcomp32(Cse0__5$0$5, Cse0__5$0$5)), Gamma_Cse0__5$0$5; + CF, Gamma_CF := bvnot1(bvcomp33(zero_extend1_32(Cse0__5$0$5), bvadd33(zero_extend1_32(R0[32:0]), 4294967296bv33))), (Gamma_R0 && Gamma_Cse0__5$0$5); + ZF, Gamma_ZF := bvcomp32(Cse0__5$0$5, 0bv32), Gamma_Cse0__5$0$5; + NF, Gamma_NF := Cse0__5$0$5[32:31], Gamma_Cse0__5$0$5; assert Gamma_ZF; - goto main_1812__0__A6BkCpHoRvCUlmC~AxLCrg_goto_main_1812__2__R75hxt8lSuS~GSZvHdnsxA, main_1812__0__A6BkCpHoRvCUlmC~AxLCrg_goto_main_1812__1__iUKQJOs9SUeP0UPwnOWoOA; - main_1812__0__A6BkCpHoRvCUlmC~AxLCrg_goto_main_1812__1__iUKQJOs9SUeP0UPwnOWoOA: - assume {:captureState "main_1812__0__A6BkCpHoRvCUlmC~AxLCrg_goto_main_1812__1__iUKQJOs9SUeP0UPwnOWoOA"} true; - assume (!(!(ZF == 1bv1))); + goto $main$__0__$A6BkCpHoRvCUlmC~AxLCrg_goto_$main$__2__$R75hxt8lSuS~GSZvHdnsxA, $main$__0__$A6BkCpHoRvCUlmC~AxLCrg_goto_$main$__1__$iUKQJOs9SUeP0UPwnOWoOA; + $main$__1__$iUKQJOs9SUeP0UPwnOWoOA: + assume {:captureState "$main$__1__$iUKQJOs9SUeP0UPwnOWoOA"} true; R0, Gamma_R0 := 69632bv64, true; R0, Gamma_R0 := bvadd64(R0, 20bv64), Gamma_R0; call rely(); - load7, Gamma_load7 := memory_load32_le(mem, R0), (gamma_load32(Gamma_mem, R0) || L(mem, R0)); - R0, Gamma_R0 := zero_extend32_32(load7), Gamma_load7; + $load7, Gamma_$load7 := memory_load32_le(mem, R0), (gamma_load32(Gamma_mem, R0) || L(mem, R0)); + R0, Gamma_R0 := zero_extend32_32($load7), Gamma_$load7; stack, Gamma_stack := memory_store32_le(stack, bvadd64(R31, 12bv64), R0[32:0]), gamma_store32(Gamma_stack, bvadd64(R31, 12bv64), Gamma_R0); - assume {:captureState "1852_0"} true; - goto main_1812__1__iUKQJOs9SUeP0UPwnOWoOA; - main_1812__1__iUKQJOs9SUeP0UPwnOWoOA: - assume {:captureState "main_1812__1__iUKQJOs9SUeP0UPwnOWoOA"} true; - goto main_1812__2__R75hxt8lSuS~GSZvHdnsxA; - main_1812__0__A6BkCpHoRvCUlmC~AxLCrg_goto_main_1812__2__R75hxt8lSuS~GSZvHdnsxA: - assume {:captureState "main_1812__0__A6BkCpHoRvCUlmC~AxLCrg_goto_main_1812__2__R75hxt8lSuS~GSZvHdnsxA"} true; - assume (!(ZF == 1bv1)); - goto main_1812__2__R75hxt8lSuS~GSZvHdnsxA; - main_1812__2__R75hxt8lSuS~GSZvHdnsxA: - assume {:captureState "main_1812__2__R75hxt8lSuS~GSZvHdnsxA"} true; - load6, Gamma_load6 := memory_load32_le(stack, bvadd64(R31, 12bv64)), gamma_load32(Gamma_stack, bvadd64(R31, 12bv64)); - R0, Gamma_R0 := zero_extend32_32(load6), Gamma_load6; + assume {:captureState "1852$0"} true; + goto $main$__2__$R75hxt8lSuS~GSZvHdnsxA; + $main$__2__$R75hxt8lSuS~GSZvHdnsxA: + assume {:captureState "$main$__2__$R75hxt8lSuS~GSZvHdnsxA"} true; + $load6, Gamma_$load6 := memory_load32_le(stack, bvadd64(R31, 12bv64)), gamma_load32(Gamma_stack, bvadd64(R31, 12bv64)); + R0, Gamma_R0 := zero_extend32_32($load6), Gamma_$load6; R31, Gamma_R31 := bvadd64(R31, 16bv64), Gamma_R31; - goto main_1812_basil_return; - main_1812_basil_return: - assume {:captureState "main_1812_basil_return"} true; + goto main_basil_return; + $main$__0__$A6BkCpHoRvCUlmC~AxLCrg_goto_$main$__2__$R75hxt8lSuS~GSZvHdnsxA: + assume {:captureState "$main$__0__$A6BkCpHoRvCUlmC~AxLCrg_goto_$main$__2__$R75hxt8lSuS~GSZvHdnsxA"} true; + assume (!(ZF == 1bv1)); + goto $main$__2__$R75hxt8lSuS~GSZvHdnsxA; + $main$__0__$A6BkCpHoRvCUlmC~AxLCrg_goto_$main$__1__$iUKQJOs9SUeP0UPwnOWoOA: + assume {:captureState "$main$__0__$A6BkCpHoRvCUlmC~AxLCrg_goto_$main$__1__$iUKQJOs9SUeP0UPwnOWoOA"} true; + assume (!(!(ZF == 1bv1))); + goto $main$__1__$iUKQJOs9SUeP0UPwnOWoOA; + main_basil_return: + assume {:captureState "main_basil_return"} true; return; } diff --git a/src/test/correct/basic_lock_security_read/gcc_O2/basic_lock_security_read.adt b/src/test/correct/basic_lock_security_read/gcc_O2/basic_lock_security_read.adt deleted file mode 100644 index 0637b87ad..000000000 --- a/src/test/correct/basic_lock_security_read/gcc_O2/basic_lock_security_read.adt +++ /dev/null @@ -1,503 +0,0 @@ -Project(Attrs([Attr("filename","\"gcc_O2/basic_lock_security_read.out\""), -Attr("image-specification","(declare abi (name str))\n(declare arch (name str))\n(declare base-address (addr int))\n(declare bias (off int))\n(declare bits (size int))\n(declare code-region (addr int) (size int) (off int))\n(declare code-start (addr int))\n(declare entry-point (addr int))\n(declare external-reference (addr int) (name str))\n(declare format (name str))\n(declare is-executable (flag bool))\n(declare is-little-endian (flag bool))\n(declare llvm:base-address (addr int))\n(declare llvm:code-entry (name str) (off int) (size int))\n(declare llvm:coff-import-library (name str))\n(declare llvm:coff-virtual-section-header (name str) (addr int) (size int))\n(declare llvm:elf-program-header (name str) (off int) (size int))\n(declare llvm:elf-program-header-flags (name str) (ld bool) (r bool) \n (w bool) (x bool))\n(declare llvm:elf-virtual-program-header (name str) (addr int) (size int))\n(declare llvm:entry-point (addr int))\n(declare llvm:macho-symbol (name str) (value int))\n(declare llvm:name-reference (at int) (name str))\n(declare llvm:relocation (at int) (addr int))\n(declare llvm:section-entry (name str) (addr int) (size int) (off int))\n(declare llvm:section-flags (name str) (r bool) (w bool) (x bool))\n(declare llvm:segment-command (name str) (off int) (size int))\n(declare llvm:segment-command-flags (name str) (r bool) (w bool) (x bool))\n(declare llvm:symbol-entry (name str) (addr int) (size int) (off int)\n (value int))\n(declare llvm:virtual-segment-command (name str) (addr int) (size int))\n(declare mapped (addr int) (size int) (off int))\n(declare named-region (addr int) (size int) (name str))\n(declare named-symbol (addr int) (name str))\n(declare require (name str))\n(declare section (addr int) (size int))\n(declare segment (addr int) (size int) (r bool) (w bool) (x bool))\n(declare subarch (name str))\n(declare symbol-chunk (addr int) (size int) (root int))\n(declare symbol-value (addr int) (value int))\n(declare system (name str))\n(declare vendor (name str))\n\n(abi unknown)\n(arch aarch64)\n(base-address 0)\n(bias 0)\n(bits 64)\n(code-region 1876 20 1876)\n(code-region 1536 340 1536)\n(code-region 1440 96 1440)\n(code-region 1408 24 1408)\n(code-start 1652)\n(code-start 1600)\n(code-start 1536)\n(entry-point 1600)\n(external-reference 69592 _ITM_deregisterTMCloneTable)\n(external-reference 69600 __cxa_finalize)\n(external-reference 69608 __gmon_start__)\n(external-reference 69624 _ITM_registerTMCloneTable)\n(external-reference 69552 __libc_start_main)\n(external-reference 69560 __cxa_finalize)\n(external-reference 69568 __gmon_start__)\n(external-reference 69576 abort)\n(format elf)\n(is-executable true)\n(is-little-endian true)\n(llvm:base-address 0)\n(llvm:code-entry abort 0 0)\n(llvm:code-entry __cxa_finalize 0 0)\n(llvm:code-entry __libc_start_main 0 0)\n(llvm:code-entry _init 1408 0)\n(llvm:code-entry main 1536 28)\n(llvm:code-entry _start 1600 52)\n(llvm:code-entry abort@GLIBC_2.17 0 0)\n(llvm:code-entry _fini 1876 0)\n(llvm:code-entry __cxa_finalize@GLIBC_2.17 0 0)\n(llvm:code-entry __libc_start_main@GLIBC_2.34 0 0)\n(llvm:code-entry frame_dummy 1872 0)\n(llvm:code-entry __do_global_dtors_aux 1792 0)\n(llvm:code-entry register_tm_clones 1728 0)\n(llvm:code-entry deregister_tm_clones 1680 0)\n(llvm:code-entry call_weak_fn 1652 20)\n(llvm:code-entry .fini 1876 20)\n(llvm:code-entry .text 1536 340)\n(llvm:code-entry .plt 1440 96)\n(llvm:code-entry .init 1408 24)\n(llvm:elf-program-header 08 3480 616)\n(llvm:elf-program-header 07 0 0)\n(llvm:elf-program-header 06 1900 60)\n(llvm:elf-program-header 05 596 68)\n(llvm:elf-program-header 04 3496 496)\n(llvm:elf-program-header 03 3480 632)\n(llvm:elf-program-header 02 0 2120)\n(llvm:elf-program-header 01 568 27)\n(llvm:elf-program-header 00 64 504)\n(llvm:elf-program-header-flags 08 false true false false)\n(llvm:elf-program-header-flags 07 false true true false)\n(llvm:elf-program-header-flags 06 false true false false)\n(llvm:elf-program-header-flags 05 false true false false)\n(llvm:elf-program-header-flags 04 false true true false)\n(llvm:elf-program-header-flags 03 true true true false)\n(llvm:elf-program-header-flags 02 true true false true)\n(llvm:elf-program-header-flags 01 false true false false)\n(llvm:elf-program-header-flags 00 false true false false)\n(llvm:elf-virtual-program-header 08 69016 616)\n(llvm:elf-virtual-program-header 07 0 0)\n(llvm:elf-virtual-program-header 06 1900 60)\n(llvm:elf-virtual-program-header 05 596 68)\n(llvm:elf-virtual-program-header 04 69032 496)\n(llvm:elf-virtual-program-header 03 69016 648)\n(llvm:elf-virtual-program-header 02 0 2120)\n(llvm:elf-virtual-program-header 01 568 27)\n(llvm:elf-virtual-program-header 00 64 504)\n(llvm:entry-point 1600)\n(llvm:name-reference 69576 abort)\n(llvm:name-reference 69568 __gmon_start__)\n(llvm:name-reference 69560 __cxa_finalize)\n(llvm:name-reference 69552 __libc_start_main)\n(llvm:name-reference 69624 _ITM_registerTMCloneTable)\n(llvm:name-reference 69608 __gmon_start__)\n(llvm:name-reference 69600 __cxa_finalize)\n(llvm:name-reference 69592 _ITM_deregisterTMCloneTable)\n(llvm:section-entry .shstrtab 0 250 6858)\n(llvm:section-entry .strtab 0 562 6296)\n(llvm:section-entry .symtab 0 2136 4160)\n(llvm:section-entry .comment 0 43 4112)\n(llvm:section-entry .bss 69648 16 4112)\n(llvm:section-entry .data 69632 16 4096)\n(llvm:section-entry .got 69528 104 3992)\n(llvm:section-entry .dynamic 69032 496 3496)\n(llvm:section-entry .fini_array 69024 8 3488)\n(llvm:section-entry .init_array 69016 8 3480)\n(llvm:section-entry .eh_frame 1960 160 1960)\n(llvm:section-entry .eh_frame_hdr 1900 60 1900)\n(llvm:section-entry .rodata 1896 4 1896)\n(llvm:section-entry .fini 1876 20 1876)\n(llvm:section-entry .text 1536 340 1536)\n(llvm:section-entry .plt 1440 96 1440)\n(llvm:section-entry .init 1408 24 1408)\n(llvm:section-entry .rela.plt 1312 96 1312)\n(llvm:section-entry .rela.dyn 1120 192 1120)\n(llvm:section-entry .gnu.version_r 1072 48 1072)\n(llvm:section-entry .gnu.version 1054 18 1054)\n(llvm:section-entry .dynstr 912 141 912)\n(llvm:section-entry .dynsym 696 216 696)\n(llvm:section-entry .gnu.hash 664 28 664)\n(llvm:section-entry .note.ABI-tag 632 32 632)\n(llvm:section-entry .note.gnu.build-id 596 36 596)\n(llvm:section-entry .interp 568 27 568)\n(llvm:section-flags .shstrtab true false false)\n(llvm:section-flags .strtab true false false)\n(llvm:section-flags .symtab true false false)\n(llvm:section-flags .comment true false false)\n(llvm:section-flags .bss true true false)\n(llvm:section-flags .data true true false)\n(llvm:section-flags .got true true false)\n(llvm:section-flags .dynamic true true false)\n(llvm:section-flags .fini_array true true false)\n(llvm:section-flags .init_array true true false)\n(llvm:section-flags .eh_frame true false false)\n(llvm:section-flags .eh_frame_hdr true false false)\n(llvm:section-flags .rodata true false false)\n(llvm:section-flags .fini true false true)\n(llvm:section-flags .text true false true)\n(llvm:section-flags .plt true false true)\n(llvm:section-flags .init true false true)\n(llvm:section-flags .rela.plt true false false)\n(llvm:section-flags .rela.dyn true false false)\n(llvm:section-flags .gnu.version_r true false false)\n(llvm:section-flags .gnu.version true false false)\n(llvm:section-flags .dynstr true false false)\n(llvm:section-flags .dynsym true false false)\n(llvm:section-flags .gnu.hash true false false)\n(llvm:section-flags .note.ABI-tag true false false)\n(llvm:section-flags .note.gnu.build-id true false false)\n(llvm:section-flags .interp true false false)\n(llvm:symbol-entry abort 0 0 0 0)\n(llvm:symbol-entry __cxa_finalize 0 0 0 0)\n(llvm:symbol-entry __libc_start_main 0 0 0 0)\n(llvm:symbol-entry _init 1408 0 1408 1408)\n(llvm:symbol-entry main 1536 28 1536 1536)\n(llvm:symbol-entry _start 1600 52 1600 1600)\n(llvm:symbol-entry abort@GLIBC_2.17 0 0 0 0)\n(llvm:symbol-entry _fini 1876 0 1876 1876)\n(llvm:symbol-entry __cxa_finalize@GLIBC_2.17 0 0 0 0)\n(llvm:symbol-entry __libc_start_main@GLIBC_2.34 0 0 0 0)\n(llvm:symbol-entry frame_dummy 1872 0 1872 1872)\n(llvm:symbol-entry __do_global_dtors_aux 1792 0 1792 1792)\n(llvm:symbol-entry register_tm_clones 1728 0 1728 1728)\n(llvm:symbol-entry deregister_tm_clones 1680 0 1680 1680)\n(llvm:symbol-entry call_weak_fn 1652 20 1652 1652)\n(mapped 0 2120 0)\n(mapped 69016 632 3480)\n(named-region 0 2120 02)\n(named-region 69016 648 03)\n(named-region 568 27 .interp)\n(named-region 596 36 .note.gnu.build-id)\n(named-region 632 32 .note.ABI-tag)\n(named-region 664 28 .gnu.hash)\n(named-region 696 216 .dynsym)\n(named-region 912 141 .dynstr)\n(named-region 1054 18 .gnu.version)\n(named-region 1072 48 .gnu.version_r)\n(named-region 1120 192 .rela.dyn)\n(named-region 1312 96 .rela.plt)\n(named-region 1408 24 .init)\n(named-region 1440 96 .plt)\n(named-region 1536 340 .text)\n(named-region 1876 20 .fini)\n(named-region 1896 4 .rodata)\n(named-region 1900 60 .eh_frame_hdr)\n(named-region 1960 160 .eh_frame)\n(named-region 69016 8 .init_array)\n(named-region 69024 8 .fini_array)\n(named-region 69032 496 .dynamic)\n(named-region 69528 104 .got)\n(named-region 69632 16 .data)\n(named-region 69648 16 .bss)\n(named-region 0 43 .comment)\n(named-region 0 2136 .symtab)\n(named-region 0 562 .strtab)\n(named-region 0 250 .shstrtab)\n(named-symbol 1652 call_weak_fn)\n(named-symbol 1680 deregister_tm_clones)\n(named-symbol 1728 register_tm_clones)\n(named-symbol 1792 __do_global_dtors_aux)\n(named-symbol 1872 frame_dummy)\n(named-symbol 0 __libc_start_main@GLIBC_2.34)\n(named-symbol 0 __cxa_finalize@GLIBC_2.17)\n(named-symbol 1876 _fini)\n(named-symbol 0 abort@GLIBC_2.17)\n(named-symbol 1600 _start)\n(named-symbol 1536 main)\n(named-symbol 1408 _init)\n(named-symbol 0 __libc_start_main)\n(named-symbol 0 __cxa_finalize)\n(named-symbol 0 abort)\n(require libc.so.6)\n(section 568 27)\n(section 596 36)\n(section 632 32)\n(section 664 28)\n(section 696 216)\n(section 912 141)\n(section 1054 18)\n(section 1072 48)\n(section 1120 192)\n(section 1312 96)\n(section 1408 24)\n(section 1440 96)\n(section 1536 340)\n(section 1876 20)\n(section 1896 4)\n(section 1900 60)\n(section 1960 160)\n(section 69016 8)\n(section 69024 8)\n(section 69032 496)\n(section 69528 104)\n(section 69632 16)\n(section 69648 16)\n(section 0 43)\n(section 0 2136)\n(section 0 562)\n(section 0 250)\n(segment 0 2120 true false true)\n(segment 69016 648 true true false)\n(subarch v8)\n(symbol-chunk 1652 20 1652)\n(symbol-chunk 1600 52 1600)\n(symbol-chunk 1536 28 1536)\n(symbol-value 1652 1652)\n(symbol-value 1680 1680)\n(symbol-value 1728 1728)\n(symbol-value 1792 1792)\n(symbol-value 1872 1872)\n(symbol-value 1876 1876)\n(symbol-value 1600 1600)\n(symbol-value 1536 1536)\n(symbol-value 1408 1408)\n(symbol-value 0 0)\n(system \"\")\n(vendor \"\")\n"), -Attr("abi-name","\"aarch64-linux-gnu-elf\"")]), -Sections([Section(".shstrtab", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x40\x06\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xc8\x1b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x38\x00\x09\x00\x40\x00\x1c\x00\x1b\x00\x06\x00\x00\x00\x04\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x04\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x48\x08\x00\x00\x00\x00\x00\x00\x48\x08\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x01\x00\x00\x00\x06\x00\x00\x00\x98\x0d\x00\x00\x00\x00\x00\x00\x98\x0d"), -Section(".strtab", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x40\x06\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xc8\x1b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x38\x00\x09\x00\x40\x00\x1c\x00\x1b\x00\x06\x00\x00\x00\x04\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x04\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x48\x08\x00\x00\x00\x00\x00\x00\x48\x08\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x01\x00\x00\x00\x06\x00\x00\x00\x98\x0d\x00\x00\x00\x00\x00\x00\x98\x0d\x01\x00\x00\x00\x00\x00\x98\x0d\x01\x00\x00\x00\x00\x00\x78\x02\x00\x00\x00\x00\x00\x00\x88\x02\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x02\x00\x00\x00\x06\x00\x00\x00\xa8\x0d\x00\x00\x00\x00\x00\x00\xa8\x0d\x01\x00\x00\x00\x00\x00\xa8\x0d\x01\x00\x00\x00\x00\x00\xf0\x01\x00\x00\x00\x00\x00\x00\xf0\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x04\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x50\xe5\x74\x64\x04\x00\x00\x00\x6c\x07\x00\x00\x00\x00\x00\x00\x6c\x07\x00\x00\x00\x00\x00\x00\x6c\x07\x00\x00\x00\x00\x00\x00\x3c\x00\x00\x00\x00\x00\x00\x00\x3c\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x51\xe5\x74\x64\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x52\xe5\x74\x64\x04\x00\x00\x00\x98\x0d\x00\x00\x00\x00\x00\x00\x98\x0d\x01\x00\x00\x00\x00\x00\x98\x0d\x01\x00\x00\x00\x00\x00\x68\x02\x00\x00\x00\x00\x00\x00\x68\x02\x00\x00\x00\x00\x00\x00\x01\x00"), -Section(".comment", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x40\x06\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xc8\x1b\x00"), -Section(".interp", 0x238, "\x2f\x6c\x69\x62\x2f\x6c\x64\x2d\x6c\x69\x6e\x75\x78\x2d\x61\x61\x72\x63\x68\x36\x34\x2e\x73\x6f\x2e\x31\x00"), -Section(".note.gnu.build-id", 0x254, "\x04\x00\x00\x00\x14\x00\x00\x00\x03\x00\x00\x00\x47\x4e\x55\x00\x09\xf1\x83\xa8\xbb\xc9\x27\xeb\xa8\x86\xa2\x06\x24\x4b\x26\xd5\x15\x0f\xdd\xae"), -Section(".note.ABI-tag", 0x278, "\x04\x00\x00\x00\x10\x00\x00\x00\x01\x00\x00\x00\x47\x4e\x55\x00\x00\x00\x00\x00\x03\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00"), -Section(".gnu.hash", 0x298, "\x01\x00\x00\x00\x01\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".dynsym", 0x2B8, "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x0b\x00\x80\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x16\x00\x00\x10\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x48\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x22\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x22\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x73\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".dynstr", 0x390, "\x00\x5f\x5f\x63\x78\x61\x5f\x66\x69\x6e\x61\x6c\x69\x7a\x65\x00\x5f\x5f\x6c\x69\x62\x63\x5f\x73\x74\x61\x72\x74\x5f\x6d\x61\x69\x6e\x00\x61\x62\x6f\x72\x74\x00\x6c\x69\x62\x63\x2e\x73\x6f\x2e\x36\x00\x47\x4c\x49\x42\x43\x5f\x32\x2e\x31\x37\x00\x47\x4c\x49\x42\x43\x5f\x32\x2e\x33\x34\x00\x5f\x49\x54\x4d\x5f\x64\x65\x72\x65\x67\x69\x73\x74\x65\x72\x54\x4d\x43\x6c\x6f\x6e\x65\x54\x61\x62\x6c\x65\x00\x5f\x5f\x67\x6d\x6f\x6e\x5f\x73\x74\x61\x72\x74\x5f\x5f\x00\x5f\x49\x54\x4d\x5f\x72\x65\x67\x69\x73\x74\x65\x72\x54\x4d\x43\x6c\x6f\x6e\x65\x54\x61\x62\x6c\x65\x00"), -Section(".gnu.version", 0x41E, "\x00\x00\x00\x00\x00\x00\x02\x00\x01\x00\x03\x00\x01\x00\x03\x00\x01\x00"), -Section(".gnu.version_r", 0x430, "\x01\x00\x02\x00\x28\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x97\x91\x96\x06\x00\x00\x03\x00\x32\x00\x00\x00\x10\x00\x00\x00\xb4\x91\x96\x06\x00\x00\x02\x00\x3d\x00\x00\x00\x00\x00\x00\x00"), -Section(".rela.dyn", 0x460, "\x98\x0d\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x50\x07\x00\x00\x00\x00\x00\x00\xa0\x0d\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\xf0\x0f\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x00\x06\x00\x00\x00\x00\x00\x00\x08\x10\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x08\x10\x01\x00\x00\x00\x00\x00\xd8\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe0\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe8\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xf8\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".rela.plt", 0x520, "\xb0\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xb8\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xc0\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xc8\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".init", 0x580, "\x1f\x20\x03\xd5\xfd\x7b\xbf\xa9\xfd\x03\x00\x91\x3a\x00\x00\x94\xfd\x7b\xc1\xa8\xc0\x03\x5f\xd6"), -Section(".plt", 0x5A0, "\xf0\x7b\xbf\xa9\x90\x00\x00\x90\x11\xd6\x47\xf9\x10\xa2\x3e\x91\x20\x02\x1f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x90\x00\x00\x90\x11\xda\x47\xf9\x10\xc2\x3e\x91\x20\x02\x1f\xd6\x90\x00\x00\x90\x11\xde\x47\xf9\x10\xe2\x3e\x91\x20\x02\x1f\xd6\x90\x00\x00\x90\x11\xe2\x47\xf9\x10\x02\x3f\x91\x20\x02\x1f\xd6\x90\x00\x00\x90\x11\xe6\x47\xf9\x10\x22\x3f\x91\x20\x02\x1f\xd6"), -Section(".fini", 0x754, "\x1f\x20\x03\xd5\xfd\x7b\xbf\xa9\xfd\x03\x00\x91\xfd\x7b\xc1\xa8\xc0\x03\x5f\xd6"), -Section(".rodata", 0x768, "\x01\x00\x02\x00"), -Section(".eh_frame_hdr", 0x76C, "\x01\x1b\x03\x3b\x38\x00\x00\x00\x06\x00\x00\x00\x94\xfe\xff\xff\xc4\x00\x00\x00\xd4\xfe\xff\xff\x50\x00\x00\x00\x24\xff\xff\xff\x64\x00\x00\x00\x54\xff\xff\xff\x78\x00\x00\x00\x94\xff\xff\xff\x8c\x00\x00\x00\xe4\xff\xff\xff\xb0\x00\x00\x00"), -Section(".eh_frame", 0x7A8, "\x10\x00\x00\x00\x00\x00\x00\x00\x01\x7a\x52\x00\x04\x78\x1e\x01\x1b\x0c\x1f\x00\x10\x00\x00\x00\x18\x00\x00\x00\x7c\xfe\xff\xff\x34\x00\x00\x00\x00\x41\x07\x1e\x10\x00\x00\x00\x2c\x00\x00\x00\xb8\xfe\xff\xff\x30\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x40\x00\x00\x00\xd4\xfe\xff\xff\x3c\x00\x00\x00\x00\x00\x00\x00\x20\x00\x00\x00\x54\x00\x00\x00\x00\xff\xff\xff\x48\x00\x00\x00\x00\x41\x0e\x20\x9d\x04\x9e\x03\x42\x93\x02\x4e\xde\xdd\xd3\x0e\x00\x00\x00\x00\x10\x00\x00\x00\x78\x00\x00\x00\x2c\xff\xff\xff\x04\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x8c\x00\x00\x00\xc8\xfd\xff\xff\x1c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".fini_array", 0x10DA0, "\x00\x07\x00\x00\x00\x00\x00\x00"), -Section(".dynamic", 0x10DA8, "\x01\x00\x00\x00\x00\x00\x00\x00\x28\x00\x00\x00\x00\x00\x00\x00\x0c\x00\x00\x00\x00\x00\x00\x00\x80\x05\x00\x00\x00\x00\x00\x00\x0d\x00\x00\x00\x00\x00\x00\x00\x54\x07\x00\x00\x00\x00\x00\x00\x19\x00\x00\x00\x00\x00\x00\x00\x98\x0d\x01\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x1a\x00\x00\x00\x00\x00\x00\x00\xa0\x0d\x01\x00\x00\x00\x00\x00\x1c\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\xf5\xfe\xff\x6f\x00\x00\x00\x00\x98\x02\x00\x00\x00\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x90\x03\x00\x00\x00\x00\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\xb8\x02\x00\x00\x00\x00\x00\x00\x0a\x00\x00\x00\x00\x00\x00\x00\x8d\x00\x00\x00\x00\x00\x00\x00\x0b\x00\x00\x00\x00\x00\x00\x00\x18\x00\x00\x00\x00\x00\x00\x00\x15\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x98\x0f\x01\x00\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x60\x00\x00\x00\x00\x00\x00\x00\x14\x00\x00\x00\x00\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x17\x00\x00\x00\x00\x00\x00\x00\x20\x05\x00\x00\x00\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x60\x04\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\xc0\x00\x00\x00\x00\x00\x00\x00\x09\x00\x00\x00\x00\x00\x00\x00\x18\x00\x00\x00\x00\x00\x00\x00\x1e\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\xfb\xff\xff\x6f\x00\x00\x00\x00\x01\x00\x00\x08\x00\x00\x00\x00\xfe\xff\xff\x6f\x00\x00\x00\x00\x30\x04\x00\x00\x00\x00\x00\x00\xff\xff\xff\x6f\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\xf0\xff\xff\x6f\x00\x00\x00\x00\x1e\x04\x00\x00\x00\x00\x00\x00\xf9\xff\xff\x6f\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".init_array", 0x10D98, "\x50\x07\x00\x00\x00\x00\x00\x00"), -Section(".got", 0x10F98, "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xa0\x05\x00\x00\x00\x00\x00\x00\xa0\x05\x00\x00\x00\x00\x00\x00\xa0\x05\x00\x00\x00\x00\x00\x00\xa0\x05\x00\x00\x00\x00\x00\x00\xa8\x0d\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".data", 0x11000, "\x00\x00\x00\x00\x00\x00\x00\x00\x08\x10\x01\x00\x00\x00\x00\x00"), -Section(".text", 0x600, "\x81\x00\x00\xb0\x22\x50\x00\x91\x00\x00\x80\x52\x21\x14\x40\xb9\x41\x00\x00\x35\x40\x04\x40\xb9\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1d\x00\x80\xd2\x1e\x00\x80\xd2\xe5\x03\x00\xaa\xe1\x03\x40\xf9\xe2\x23\x00\x91\xe6\x03\x00\x91\x80\x00\x00\x90\x00\xf8\x47\xf9\x03\x00\x80\xd2\x04\x00\x80\xd2\xd5\xff\xff\x97\xe0\xff\xff\x97\x80\x00\x00\x90\x00\xf4\x47\xf9\x40\x00\x00\xb4\xd8\xff\xff\x17\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x80\x00\x00\xb0\x00\x40\x00\x91\x81\x00\x00\xb0\x21\x40\x00\x91\x3f\x00\x00\xeb\xc0\x00\x00\x54\x81\x00\x00\x90\x21\xec\x47\xf9\x61\x00\x00\xb4\xf0\x03\x01\xaa\x00\x02\x1f\xd6\xc0\x03\x5f\xd6\x80\x00\x00\xb0\x00\x40\x00\x91\x81\x00\x00\xb0\x21\x40\x00\x91\x21\x00\x00\xcb\x22\xfc\x7f\xd3\x41\x0c\x81\x8b\x21\xfc\x41\x93\xc1\x00\x00\xb4\x82\x00\x00\x90\x42\xfc\x47\xf9\x62\x00\x00\xb4\xf0\x03\x02\xaa\x00\x02\x1f\xd6\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\xfd\x7b\xbe\xa9\xfd\x03\x00\x91\xf3\x0b\x00\xf9\x93\x00\x00\xb0\x60\x42\x40\x39\x40\x01\x00\x35\x80\x00\x00\x90\x00\xf0\x47\xf9\x80\x00\x00\xb4\x80\x00\x00\xb0\x00\x04\x40\xf9\xa9\xff\xff\x97\xd8\xff\xff\x97\x20\x00\x80\x52\x60\x42\x00\x39\xf3\x0b\x40\xf9\xfd\x7b\xc2\xa8\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\xdc\xff\xff\x17")]), -Memmap([Annotation(Region(0x0,0x847), Attr("segment","02 0 2120")), -Annotation(Region(0x600,0x61B), Attr("symbol","\"main\"")), -Annotation(Region(0x0,0xF9), Attr("section","\".shstrtab\"")), -Annotation(Region(0x0,0x231), Attr("section","\".strtab\"")), -Annotation(Region(0x0,0x2A), Attr("section","\".comment\"")), -Annotation(Region(0x238,0x252), Attr("section","\".interp\"")), -Annotation(Region(0x254,0x277), Attr("section","\".note.gnu.build-id\"")), -Annotation(Region(0x278,0x297), Attr("section","\".note.ABI-tag\"")), -Annotation(Region(0x298,0x2B3), Attr("section","\".gnu.hash\"")), -Annotation(Region(0x2B8,0x38F), Attr("section","\".dynsym\"")), -Annotation(Region(0x390,0x41C), Attr("section","\".dynstr\"")), -Annotation(Region(0x41E,0x42F), Attr("section","\".gnu.version\"")), -Annotation(Region(0x430,0x45F), Attr("section","\".gnu.version_r\"")), -Annotation(Region(0x460,0x51F), Attr("section","\".rela.dyn\"")), -Annotation(Region(0x520,0x57F), Attr("section","\".rela.plt\"")), -Annotation(Region(0x580,0x597), Attr("section","\".init\"")), -Annotation(Region(0x5A0,0x5FF), Attr("section","\".plt\"")), -Annotation(Region(0x580,0x597), Attr("code-region","()")), -Annotation(Region(0x5A0,0x5FF), Attr("code-region","()")), -Annotation(Region(0x600,0x61B), Attr("symbol-info","main 0x600 28")), -Annotation(Region(0x640,0x673), Attr("symbol","\"_start\"")), -Annotation(Region(0x640,0x673), Attr("symbol-info","_start 0x640 52")), -Annotation(Region(0x674,0x687), Attr("symbol","\"call_weak_fn\"")), -Annotation(Region(0x674,0x687), Attr("symbol-info","call_weak_fn 0x674 20")), -Annotation(Region(0x754,0x767), Attr("section","\".fini\"")), -Annotation(Region(0x768,0x76B), Attr("section","\".rodata\"")), -Annotation(Region(0x76C,0x7A7), Attr("section","\".eh_frame_hdr\"")), -Annotation(Region(0x7A8,0x847), Attr("section","\".eh_frame\"")), -Annotation(Region(0x10D98,0x1100F), Attr("segment","03 0x10D98 648")), -Annotation(Region(0x10DA0,0x10DA7), Attr("section","\".fini_array\"")), -Annotation(Region(0x10DA8,0x10F97), Attr("section","\".dynamic\"")), -Annotation(Region(0x10D98,0x10D9F), Attr("section","\".init_array\"")), -Annotation(Region(0x10F98,0x10FFF), Attr("section","\".got\"")), -Annotation(Region(0x11000,0x1100F), Attr("section","\".data\"")), -Annotation(Region(0x600,0x753), Attr("section","\".text\"")), -Annotation(Region(0x600,0x753), Attr("code-region","()")), -Annotation(Region(0x754,0x767), Attr("code-region","()"))]), -Program(Tid(1_520, "%000005f0"), Attrs([]), - Subs([Sub(Tid(1_466, "@__cxa_finalize"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x5D0"), -Attr("stub","()")]), "__cxa_finalize", Args([Arg(Tid(1_521, "%000005f1"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("__cxa_finalize_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(855, "@__cxa_finalize"), - Attrs([Attr("address","0x5D0")]), Phis([]), -Defs([Def(Tid(1_110, "%00000456"), Attrs([Attr("address","0x5D0"), -Attr("insn","adrp x16, #65536")]), Var("R16",Imm(64)), Int(65536,64)), -Def(Tid(1_117, "%0000045d"), Attrs([Attr("address","0x5D4"), -Attr("insn","ldr x17, [x16, #0xfb8]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(4024,64)),LittleEndian(),64)), -Def(Tid(1_123, "%00000463"), Attrs([Attr("address","0x5D8"), -Attr("insn","add x16, x16, #0xfb8")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(4024,64)))]), Jmps([Call(Tid(1_128, "%00000468"), - Attrs([Attr("address","0x5DC"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), -Sub(Tid(1_467, "@__do_global_dtors_aux"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x700")]), - "__do_global_dtors_aux", Args([Arg(Tid(1_522, "%000005f2"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("__do_global_dtors_aux_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(708, "@__do_global_dtors_aux"), - Attrs([Attr("address","0x700")]), Phis([]), Defs([Def(Tid(712, "%000002c8"), - Attrs([Attr("address","0x700"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("#3",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(18446744073709551584,64))), -Def(Tid(718, "%000002ce"), Attrs([Attr("address","0x700"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("#3",Imm(64)),Var("R29",Imm(64)),LittleEndian(),64)), -Def(Tid(724, "%000002d4"), Attrs([Attr("address","0x700"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("#3",Imm(64)),Int(8,64)),Var("R30",Imm(64)),LittleEndian(),64)), -Def(Tid(728, "%000002d8"), Attrs([Attr("address","0x700"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("R31",Imm(64)), -Var("#3",Imm(64))), Def(Tid(734, "%000002de"), - Attrs([Attr("address","0x704"), Attr("insn","mov x29, sp")]), - Var("R29",Imm(64)), Var("R31",Imm(64))), Def(Tid(742, "%000002e6"), - Attrs([Attr("address","0x708"), Attr("insn","str x19, [sp, #0x10]")]), - Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(16,64)),Var("R19",Imm(64)),LittleEndian(),64)), -Def(Tid(747, "%000002eb"), Attrs([Attr("address","0x70C"), -Attr("insn","adrp x19, #69632")]), Var("R19",Imm(64)), Int(69632,64)), -Def(Tid(754, "%000002f2"), Attrs([Attr("address","0x710"), -Attr("insn","ldrb w0, [x19, #0x10]")]), Var("R0",Imm(64)), -UNSIGNED(64,Load(Var("mem",Mem(64,8)),PLUS(Var("R19",Imm(64)),Int(16,64)),LittleEndian(),8)))]), -Jmps([Goto(Tid(761, "%000002f9"), Attrs([Attr("address","0x714"), -Attr("insn","cbnz w0, #0x28")]), - NEQ(Extract(31,0,Var("R0",Imm(64))),Int(0,32)), -Direct(Tid(759, "%000002f7"))), Goto(Tid(1_508, "%000005e4"), Attrs([]), - Int(1,1), Direct(Tid(800, "%00000320")))])), Blk(Tid(800, "%00000320"), - Attrs([Attr("address","0x718")]), Phis([]), Defs([Def(Tid(803, "%00000323"), - Attrs([Attr("address","0x718"), Attr("insn","adrp x0, #65536")]), - Var("R0",Imm(64)), Int(65536,64)), Def(Tid(810, "%0000032a"), - Attrs([Attr("address","0x71C"), Attr("insn","ldr x0, [x0, #0xfe0]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(4064,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(816, "%00000330"), Attrs([Attr("address","0x720"), -Attr("insn","cbz x0, #0x10")]), EQ(Var("R0",Imm(64)),Int(0,64)), -Direct(Tid(814, "%0000032e"))), Goto(Tid(1_509, "%000005e5"), Attrs([]), - Int(1,1), Direct(Tid(839, "%00000347")))])), Blk(Tid(839, "%00000347"), - Attrs([Attr("address","0x724")]), Phis([]), Defs([Def(Tid(842, "%0000034a"), - Attrs([Attr("address","0x724"), Attr("insn","adrp x0, #69632")]), - Var("R0",Imm(64)), Int(69632,64)), Def(Tid(849, "%00000351"), - Attrs([Attr("address","0x728"), Attr("insn","ldr x0, [x0, #0x8]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(854, "%00000356"), Attrs([Attr("address","0x72C"), -Attr("insn","bl #-0x15c")]), Var("R30",Imm(64)), Int(1840,64))]), -Jmps([Call(Tid(857, "%00000359"), Attrs([Attr("address","0x72C"), -Attr("insn","bl #-0x15c")]), Int(1,1), -(Direct(Tid(1_466, "@__cxa_finalize")),Direct(Tid(814, "%0000032e"))))])), -Blk(Tid(814, "%0000032e"), Attrs([Attr("address","0x730")]), Phis([]), -Defs([Def(Tid(822, "%00000336"), Attrs([Attr("address","0x730"), -Attr("insn","bl #-0xa0")]), Var("R30",Imm(64)), Int(1844,64))]), -Jmps([Call(Tid(824, "%00000338"), Attrs([Attr("address","0x730"), -Attr("insn","bl #-0xa0")]), Int(1,1), -(Direct(Tid(1_480, "@deregister_tm_clones")),Direct(Tid(826, "%0000033a"))))])), -Blk(Tid(826, "%0000033a"), Attrs([Attr("address","0x734")]), Phis([]), -Defs([Def(Tid(829, "%0000033d"), Attrs([Attr("address","0x734"), -Attr("insn","mov w0, #0x1")]), Var("R0",Imm(64)), Int(1,64)), -Def(Tid(837, "%00000345"), Attrs([Attr("address","0x738"), -Attr("insn","strb w0, [x19, #0x10]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R19",Imm(64)),Int(16,64)),Extract(7,0,Var("R0",Imm(64))),LittleEndian(),8))]), -Jmps([Goto(Tid(1_510, "%000005e6"), Attrs([]), Int(1,1), -Direct(Tid(759, "%000002f7")))])), Blk(Tid(759, "%000002f7"), - Attrs([Attr("address","0x73C")]), Phis([]), Defs([Def(Tid(769, "%00000301"), - Attrs([Attr("address","0x73C"), Attr("insn","ldr x19, [sp, #0x10]")]), - Var("R19",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(16,64)),LittleEndian(),64)), -Def(Tid(776, "%00000308"), Attrs([Attr("address","0x740"), -Attr("insn","ldp x29, x30, [sp], #0x20")]), Var("R29",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(781, "%0000030d"), Attrs([Attr("address","0x740"), -Attr("insn","ldp x29, x30, [sp], #0x20")]), Var("R30",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(785, "%00000311"), Attrs([Attr("address","0x740"), -Attr("insn","ldp x29, x30, [sp], #0x20")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(32,64)))]), Jmps([Call(Tid(790, "%00000316"), - Attrs([Attr("address","0x744"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), Sub(Tid(1_471, "@__libc_start_main"), - Attrs([Attr("c.proto","signed (*)(signed (*)(signed , char** , char** );* main, signed , char** , \nvoid* auxv)"), -Attr("address","0x5C0"), Attr("stub","()")]), "__libc_start_main", - Args([Arg(Tid(1_523, "%000005f3"), - Attrs([Attr("c.layout","**[ : 64]"), -Attr("c.data","Top:u64 ptr ptr"), -Attr("c.type","signed (*)(signed , char** , char** );*")]), - Var("__libc_start_main_main",Imm(64)), Var("R0",Imm(64)), In()), -Arg(Tid(1_524, "%000005f4"), Attrs([Attr("c.layout","[signed : 32]"), -Attr("c.data","Top:u32"), Attr("c.type","signed")]), - Var("__libc_start_main_arg2",Imm(32)), LOW(32,Var("R1",Imm(64))), In()), -Arg(Tid(1_525, "%000005f5"), Attrs([Attr("c.layout","**[char : 8]"), -Attr("c.data","Top:u8 ptr ptr"), Attr("c.type","char**")]), - Var("__libc_start_main_arg3",Imm(64)), Var("R2",Imm(64)), Both()), -Arg(Tid(1_526, "%000005f6"), Attrs([Attr("c.layout","*[ : 8]"), -Attr("c.data","{} ptr"), Attr("c.type","void*")]), - Var("__libc_start_main_auxv",Imm(64)), Var("R3",Imm(64)), Both()), -Arg(Tid(1_527, "%000005f7"), Attrs([Attr("c.layout","[signed : 32]"), -Attr("c.data","Top:u32"), Attr("c.type","signed")]), - Var("__libc_start_main_result",Imm(32)), LOW(32,Var("R0",Imm(64))), -Out())]), Blks([Blk(Tid(541, "@__libc_start_main"), - Attrs([Attr("address","0x5C0")]), Phis([]), -Defs([Def(Tid(1_088, "%00000440"), Attrs([Attr("address","0x5C0"), -Attr("insn","adrp x16, #65536")]), Var("R16",Imm(64)), Int(65536,64)), -Def(Tid(1_095, "%00000447"), Attrs([Attr("address","0x5C4"), -Attr("insn","ldr x17, [x16, #0xfb0]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(4016,64)),LittleEndian(),64)), -Def(Tid(1_101, "%0000044d"), Attrs([Attr("address","0x5C8"), -Attr("insn","add x16, x16, #0xfb0")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(4016,64)))]), Jmps([Call(Tid(1_106, "%00000452"), - Attrs([Attr("address","0x5CC"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), Sub(Tid(1_472, "@_fini"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x754")]), - "_fini", Args([Arg(Tid(1_528, "%000005f8"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("_fini_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(31, "@_fini"), - Attrs([Attr("address","0x754")]), Phis([]), Defs([Def(Tid(37, "%00000025"), - Attrs([Attr("address","0x758"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("#0",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(18446744073709551600,64))), -Def(Tid(43, "%0000002b"), Attrs([Attr("address","0x758"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("#0",Imm(64)),Var("R29",Imm(64)),LittleEndian(),64)), -Def(Tid(49, "%00000031"), Attrs([Attr("address","0x758"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("#0",Imm(64)),Int(8,64)),Var("R30",Imm(64)),LittleEndian(),64)), -Def(Tid(53, "%00000035"), Attrs([Attr("address","0x758"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("R31",Imm(64)), -Var("#0",Imm(64))), Def(Tid(59, "%0000003b"), Attrs([Attr("address","0x75C"), -Attr("insn","mov x29, sp")]), Var("R29",Imm(64)), Var("R31",Imm(64))), -Def(Tid(66, "%00000042"), Attrs([Attr("address","0x760"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R29",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(71, "%00000047"), Attrs([Attr("address","0x760"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R30",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(75, "%0000004b"), Attrs([Attr("address","0x760"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(16,64)))]), Jmps([Call(Tid(80, "%00000050"), - Attrs([Attr("address","0x764"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), Sub(Tid(1_473, "@_init"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x580")]), - "_init", Args([Arg(Tid(1_529, "%000005f9"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("_init_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(1_292, "@_init"), - Attrs([Attr("address","0x580")]), Phis([]), -Defs([Def(Tid(1_298, "%00000512"), Attrs([Attr("address","0x584"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("#5",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(18446744073709551600,64))), -Def(Tid(1_304, "%00000518"), Attrs([Attr("address","0x584"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("#5",Imm(64)),Var("R29",Imm(64)),LittleEndian(),64)), -Def(Tid(1_310, "%0000051e"), Attrs([Attr("address","0x584"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("#5",Imm(64)),Int(8,64)),Var("R30",Imm(64)),LittleEndian(),64)), -Def(Tid(1_314, "%00000522"), Attrs([Attr("address","0x584"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("R31",Imm(64)), -Var("#5",Imm(64))), Def(Tid(1_320, "%00000528"), - Attrs([Attr("address","0x588"), Attr("insn","mov x29, sp")]), - Var("R29",Imm(64)), Var("R31",Imm(64))), Def(Tid(1_325, "%0000052d"), - Attrs([Attr("address","0x58C"), Attr("insn","bl #0xe8")]), - Var("R30",Imm(64)), Int(1424,64))]), Jmps([Call(Tid(1_327, "%0000052f"), - Attrs([Attr("address","0x58C"), Attr("insn","bl #0xe8")]), Int(1,1), -(Direct(Tid(1_478, "@call_weak_fn")),Direct(Tid(1_329, "%00000531"))))])), -Blk(Tid(1_329, "%00000531"), Attrs([Attr("address","0x590")]), Phis([]), -Defs([Def(Tid(1_334, "%00000536"), Attrs([Attr("address","0x590"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R29",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(1_339, "%0000053b"), Attrs([Attr("address","0x590"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R30",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(1_343, "%0000053f"), Attrs([Attr("address","0x590"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(16,64)))]), Jmps([Call(Tid(1_348, "%00000544"), - Attrs([Attr("address","0x594"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), Sub(Tid(1_474, "@_start"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x640"), -Attr("entry-point","()")]), "_start", Args([Arg(Tid(1_530, "%000005fa"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("_start_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(478, "@_start"), - Attrs([Attr("address","0x640")]), Phis([]), Defs([Def(Tid(483, "%000001e3"), - Attrs([Attr("address","0x644"), Attr("insn","mov x29, #0x0")]), - Var("R29",Imm(64)), Int(0,64)), Def(Tid(488, "%000001e8"), - Attrs([Attr("address","0x648"), Attr("insn","mov x30, #0x0")]), - Var("R30",Imm(64)), Int(0,64)), Def(Tid(494, "%000001ee"), - Attrs([Attr("address","0x64C"), Attr("insn","mov x5, x0")]), - Var("R5",Imm(64)), Var("R0",Imm(64))), Def(Tid(501, "%000001f5"), - Attrs([Attr("address","0x650"), Attr("insn","ldr x1, [sp]")]), - Var("R1",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(507, "%000001fb"), Attrs([Attr("address","0x654"), -Attr("insn","add x2, sp, #0x8")]), Var("R2",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(8,64))), Def(Tid(513, "%00000201"), - Attrs([Attr("address","0x658"), Attr("insn","mov x6, sp")]), - Var("R6",Imm(64)), Var("R31",Imm(64))), Def(Tid(518, "%00000206"), - Attrs([Attr("address","0x65C"), Attr("insn","adrp x0, #65536")]), - Var("R0",Imm(64)), Int(65536,64)), Def(Tid(525, "%0000020d"), - Attrs([Attr("address","0x660"), Attr("insn","ldr x0, [x0, #0xff0]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(4080,64)),LittleEndian(),64)), -Def(Tid(530, "%00000212"), Attrs([Attr("address","0x664"), -Attr("insn","mov x3, #0x0")]), Var("R3",Imm(64)), Int(0,64)), -Def(Tid(535, "%00000217"), Attrs([Attr("address","0x668"), -Attr("insn","mov x4, #0x0")]), Var("R4",Imm(64)), Int(0,64)), -Def(Tid(540, "%0000021c"), Attrs([Attr("address","0x66C"), -Attr("insn","bl #-0xac")]), Var("R30",Imm(64)), Int(1648,64))]), -Jmps([Call(Tid(543, "%0000021f"), Attrs([Attr("address","0x66C"), -Attr("insn","bl #-0xac")]), Int(1,1), -(Direct(Tid(1_471, "@__libc_start_main")),Direct(Tid(545, "%00000221"))))])), -Blk(Tid(545, "%00000221"), Attrs([Attr("address","0x670")]), Phis([]), -Defs([Def(Tid(548, "%00000224"), Attrs([Attr("address","0x670"), -Attr("insn","bl #-0x80")]), Var("R30",Imm(64)), Int(1652,64))]), -Jmps([Call(Tid(551, "%00000227"), Attrs([Attr("address","0x670"), -Attr("insn","bl #-0x80")]), Int(1,1), -(Direct(Tid(1_477, "@abort")),Direct(Tid(1_511, "%000005e7"))))])), -Blk(Tid(1_511, "%000005e7"), Attrs([]), Phis([]), Defs([]), -Jmps([Call(Tid(1_512, "%000005e8"), Attrs([]), Int(1,1), -(Direct(Tid(1_478, "@call_weak_fn")),))]))])), Sub(Tid(1_477, "@abort"), - Attrs([Attr("noreturn","()"), Attr("c.proto","void (*)(void)"), -Attr("address","0x5F0"), Attr("stub","()")]), "abort", Args([]), -Blks([Blk(Tid(549, "@abort"), Attrs([Attr("address","0x5F0")]), Phis([]), -Defs([Def(Tid(1_154, "%00000482"), Attrs([Attr("address","0x5F0"), -Attr("insn","adrp x16, #65536")]), Var("R16",Imm(64)), Int(65536,64)), -Def(Tid(1_161, "%00000489"), Attrs([Attr("address","0x5F4"), -Attr("insn","ldr x17, [x16, #0xfc8]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(4040,64)),LittleEndian(),64)), -Def(Tid(1_167, "%0000048f"), Attrs([Attr("address","0x5F8"), -Attr("insn","add x16, x16, #0xfc8")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(4040,64)))]), Jmps([Call(Tid(1_172, "%00000494"), - Attrs([Attr("address","0x5FC"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), Sub(Tid(1_478, "@call_weak_fn"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x674")]), - "call_weak_fn", Args([Arg(Tid(1_531, "%000005fb"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("call_weak_fn_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(553, "@call_weak_fn"), - Attrs([Attr("address","0x674")]), Phis([]), Defs([Def(Tid(556, "%0000022c"), - Attrs([Attr("address","0x674"), Attr("insn","adrp x0, #65536")]), - Var("R0",Imm(64)), Int(65536,64)), Def(Tid(563, "%00000233"), - Attrs([Attr("address","0x678"), Attr("insn","ldr x0, [x0, #0xfe8]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(4072,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(569, "%00000239"), Attrs([Attr("address","0x67C"), -Attr("insn","cbz x0, #0x8")]), EQ(Var("R0",Imm(64)),Int(0,64)), -Direct(Tid(567, "%00000237"))), Goto(Tid(1_513, "%000005e9"), Attrs([]), - Int(1,1), Direct(Tid(919, "%00000397")))])), Blk(Tid(567, "%00000237"), - Attrs([Attr("address","0x684")]), Phis([]), Defs([]), -Jmps([Call(Tid(575, "%0000023f"), Attrs([Attr("address","0x684"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))])), -Blk(Tid(919, "%00000397"), Attrs([Attr("address","0x680")]), Phis([]), -Defs([]), Jmps([Goto(Tid(922, "%0000039a"), Attrs([Attr("address","0x680"), -Attr("insn","b #-0xa0")]), Int(1,1), Direct(Tid(920, "@__gmon_start__")))])), -Blk(Tid(920, "@__gmon_start__"), Attrs([Attr("address","0x5E0")]), Phis([]), -Defs([Def(Tid(1_132, "%0000046c"), Attrs([Attr("address","0x5E0"), -Attr("insn","adrp x16, #65536")]), Var("R16",Imm(64)), Int(65536,64)), -Def(Tid(1_139, "%00000473"), Attrs([Attr("address","0x5E4"), -Attr("insn","ldr x17, [x16, #0xfc0]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(4032,64)),LittleEndian(),64)), -Def(Tid(1_145, "%00000479"), Attrs([Attr("address","0x5E8"), -Attr("insn","add x16, x16, #0xfc0")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(4032,64)))]), Jmps([Call(Tid(1_150, "%0000047e"), - Attrs([Attr("address","0x5EC"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), -Sub(Tid(1_480, "@deregister_tm_clones"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x690")]), - "deregister_tm_clones", Args([Arg(Tid(1_532, "%000005fc"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("deregister_tm_clones_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(581, "@deregister_tm_clones"), - Attrs([Attr("address","0x690")]), Phis([]), Defs([Def(Tid(584, "%00000248"), - Attrs([Attr("address","0x690"), Attr("insn","adrp x0, #69632")]), - Var("R0",Imm(64)), Int(69632,64)), Def(Tid(590, "%0000024e"), - Attrs([Attr("address","0x694"), Attr("insn","add x0, x0, #0x10")]), - Var("R0",Imm(64)), PLUS(Var("R0",Imm(64)),Int(16,64))), -Def(Tid(595, "%00000253"), Attrs([Attr("address","0x698"), -Attr("insn","adrp x1, #69632")]), Var("R1",Imm(64)), Int(69632,64)), -Def(Tid(601, "%00000259"), Attrs([Attr("address","0x69C"), -Attr("insn","add x1, x1, #0x10")]), Var("R1",Imm(64)), -PLUS(Var("R1",Imm(64)),Int(16,64))), Def(Tid(607, "%0000025f"), - Attrs([Attr("address","0x6A0"), Attr("insn","cmp x1, x0")]), - Var("#1",Imm(64)), NOT(Var("R0",Imm(64)))), Def(Tid(612, "%00000264"), - Attrs([Attr("address","0x6A0"), Attr("insn","cmp x1, x0")]), - Var("#2",Imm(64)), PLUS(Var("R1",Imm(64)),NOT(Var("R0",Imm(64))))), -Def(Tid(618, "%0000026a"), Attrs([Attr("address","0x6A0"), -Attr("insn","cmp x1, x0")]), Var("VF",Imm(1)), -NEQ(SIGNED(65,PLUS(Var("#2",Imm(64)),Int(1,64))),PLUS(PLUS(SIGNED(65,Var("R1",Imm(64))),SIGNED(65,Var("#1",Imm(64)))),Int(1,65)))), -Def(Tid(624, "%00000270"), Attrs([Attr("address","0x6A0"), -Attr("insn","cmp x1, x0")]), Var("CF",Imm(1)), -NEQ(UNSIGNED(65,PLUS(Var("#2",Imm(64)),Int(1,64))),PLUS(PLUS(UNSIGNED(65,Var("R1",Imm(64))),UNSIGNED(65,Var("#1",Imm(64)))),Int(1,65)))), -Def(Tid(628, "%00000274"), Attrs([Attr("address","0x6A0"), -Attr("insn","cmp x1, x0")]), Var("ZF",Imm(1)), -EQ(PLUS(Var("#2",Imm(64)),Int(1,64)),Int(0,64))), Def(Tid(632, "%00000278"), - Attrs([Attr("address","0x6A0"), Attr("insn","cmp x1, x0")]), - Var("NF",Imm(1)), Extract(63,63,PLUS(Var("#2",Imm(64)),Int(1,64))))]), -Jmps([Goto(Tid(638, "%0000027e"), Attrs([Attr("address","0x6A4"), -Attr("insn","b.eq #0x18")]), EQ(Var("ZF",Imm(1)),Int(1,1)), -Direct(Tid(636, "%0000027c"))), Goto(Tid(1_514, "%000005ea"), Attrs([]), - Int(1,1), Direct(Tid(889, "%00000379")))])), Blk(Tid(889, "%00000379"), - Attrs([Attr("address","0x6A8")]), Phis([]), Defs([Def(Tid(892, "%0000037c"), - Attrs([Attr("address","0x6A8"), Attr("insn","adrp x1, #65536")]), - Var("R1",Imm(64)), Int(65536,64)), Def(Tid(899, "%00000383"), - Attrs([Attr("address","0x6AC"), Attr("insn","ldr x1, [x1, #0xfd8]")]), - Var("R1",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R1",Imm(64)),Int(4056,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(904, "%00000388"), Attrs([Attr("address","0x6B0"), -Attr("insn","cbz x1, #0xc")]), EQ(Var("R1",Imm(64)),Int(0,64)), -Direct(Tid(636, "%0000027c"))), Goto(Tid(1_515, "%000005eb"), Attrs([]), - Int(1,1), Direct(Tid(908, "%0000038c")))])), Blk(Tid(636, "%0000027c"), - Attrs([Attr("address","0x6BC")]), Phis([]), Defs([]), -Jmps([Call(Tid(644, "%00000284"), Attrs([Attr("address","0x6BC"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))])), -Blk(Tid(908, "%0000038c"), Attrs([Attr("address","0x6B4")]), Phis([]), -Defs([Def(Tid(912, "%00000390"), Attrs([Attr("address","0x6B4"), -Attr("insn","mov x16, x1")]), Var("R16",Imm(64)), Var("R1",Imm(64)))]), -Jmps([Call(Tid(917, "%00000395"), Attrs([Attr("address","0x6B8"), -Attr("insn","br x16")]), Int(1,1), (Indirect(Var("R16",Imm(64))),))]))])), -Sub(Tid(1_483, "@frame_dummy"), Attrs([Attr("c.proto","signed (*)(void)"), -Attr("address","0x750")]), "frame_dummy", Args([Arg(Tid(1_533, "%000005fd"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("frame_dummy_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(796, "@frame_dummy"), - Attrs([Attr("address","0x750")]), Phis([]), Defs([]), -Jmps([Call(Tid(798, "%0000031e"), Attrs([Attr("address","0x750"), -Attr("insn","b #-0x90")]), Int(1,1), -(Direct(Tid(1_487, "@register_tm_clones")),))]))])), Sub(Tid(1_484, "@main"), - Attrs([Attr("c.proto","signed (*)(signed argc, const char** argv)"), -Attr("address","0x600"), Attr("stub","()")]), "main", - Args([Arg(Tid(1_534, "%000005fe"), Attrs([Attr("c.layout","[signed : 32]"), -Attr("c.data","Top:u32"), Attr("c.type","signed")]), - Var("main_argc",Imm(32)), LOW(32,Var("R0",Imm(64))), In()), -Arg(Tid(1_535, "%000005ff"), Attrs([Attr("c.layout","**[char : 8]"), -Attr("c.data","Top:u8 ptr ptr"), Attr("c.type"," const char**")]), - Var("main_argv",Imm(64)), Var("R1",Imm(64)), Both()), -Arg(Tid(1_536, "%00000600"), Attrs([Attr("c.layout","[signed : 32]"), -Attr("c.data","Top:u32"), Attr("c.type","signed")]), - Var("main_result",Imm(32)), LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(424, "@main"), Attrs([Attr("address","0x600")]), Phis([]), -Defs([Def(Tid(427, "%000001ab"), Attrs([Attr("address","0x600"), -Attr("insn","adrp x1, #69632")]), Var("R1",Imm(64)), Int(69632,64)), -Def(Tid(433, "%000001b1"), Attrs([Attr("address","0x604"), -Attr("insn","add x2, x1, #0x14")]), Var("R2",Imm(64)), -PLUS(Var("R1",Imm(64)),Int(20,64))), Def(Tid(438, "%000001b6"), - Attrs([Attr("address","0x608"), Attr("insn","mov w0, #0x0")]), - Var("R0",Imm(64)), Int(0,64)), Def(Tid(445, "%000001bd"), - Attrs([Attr("address","0x60C"), Attr("insn","ldr w1, [x1, #0x14]")]), - Var("R1",Imm(64)), -UNSIGNED(64,Load(Var("mem",Mem(64,8)),PLUS(Var("R1",Imm(64)),Int(20,64)),LittleEndian(),32)))]), -Jmps([Goto(Tid(452, "%000001c4"), Attrs([Attr("address","0x610"), -Attr("insn","cbnz w1, #0x8")]), - NEQ(Extract(31,0,Var("R1",Imm(64))),Int(0,32)), -Direct(Tid(450, "%000001c2"))), Goto(Tid(1_516, "%000005ec"), Attrs([]), - Int(1,1), Direct(Tid(924, "%0000039c")))])), Blk(Tid(924, "%0000039c"), - Attrs([Attr("address","0x614")]), Phis([]), Defs([Def(Tid(929, "%000003a1"), - Attrs([Attr("address","0x614"), Attr("insn","ldr w0, [x2, #0x4]")]), - Var("R0",Imm(64)), -UNSIGNED(64,Load(Var("mem",Mem(64,8)),PLUS(Var("R2",Imm(64)),Int(4,64)),LittleEndian(),32)))]), -Jmps([Goto(Tid(1_517, "%000005ed"), Attrs([]), Int(1,1), -Direct(Tid(450, "%000001c2")))])), Blk(Tid(450, "%000001c2"), - Attrs([Attr("address","0x618")]), Phis([]), Defs([]), -Jmps([Call(Tid(458, "%000001ca"), Attrs([Attr("address","0x618"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))]))])), -Sub(Tid(1_487, "@register_tm_clones"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x6C0")]), - "register_tm_clones", Args([Arg(Tid(1_537, "%00000601"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("register_tm_clones_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(646, "@register_tm_clones"), Attrs([Attr("address","0x6C0")]), - Phis([]), Defs([Def(Tid(649, "%00000289"), Attrs([Attr("address","0x6C0"), -Attr("insn","adrp x0, #69632")]), Var("R0",Imm(64)), Int(69632,64)), -Def(Tid(655, "%0000028f"), Attrs([Attr("address","0x6C4"), -Attr("insn","add x0, x0, #0x10")]), Var("R0",Imm(64)), -PLUS(Var("R0",Imm(64)),Int(16,64))), Def(Tid(660, "%00000294"), - Attrs([Attr("address","0x6C8"), Attr("insn","adrp x1, #69632")]), - Var("R1",Imm(64)), Int(69632,64)), Def(Tid(666, "%0000029a"), - Attrs([Attr("address","0x6CC"), Attr("insn","add x1, x1, #0x10")]), - Var("R1",Imm(64)), PLUS(Var("R1",Imm(64)),Int(16,64))), -Def(Tid(673, "%000002a1"), Attrs([Attr("address","0x6D0"), -Attr("insn","sub x1, x1, x0")]), Var("R1",Imm(64)), -PLUS(PLUS(Var("R1",Imm(64)),NOT(Var("R0",Imm(64)))),Int(1,64))), -Def(Tid(679, "%000002a7"), Attrs([Attr("address","0x6D4"), -Attr("insn","lsr x2, x1, #63")]), Var("R2",Imm(64)), -Concat(Int(0,63),Extract(63,63,Var("R1",Imm(64))))), -Def(Tid(686, "%000002ae"), Attrs([Attr("address","0x6D8"), -Attr("insn","add x1, x2, x1, asr #3")]), Var("R1",Imm(64)), -PLUS(Var("R2",Imm(64)),ARSHIFT(Var("R1",Imm(64)),Int(3,3)))), -Def(Tid(692, "%000002b4"), Attrs([Attr("address","0x6DC"), -Attr("insn","asr x1, x1, #1")]), Var("R1",Imm(64)), -SIGNED(64,Extract(63,1,Var("R1",Imm(64)))))]), -Jmps([Goto(Tid(698, "%000002ba"), Attrs([Attr("address","0x6E0"), -Attr("insn","cbz x1, #0x18")]), EQ(Var("R1",Imm(64)),Int(0,64)), -Direct(Tid(696, "%000002b8"))), Goto(Tid(1_518, "%000005ee"), Attrs([]), - Int(1,1), Direct(Tid(859, "%0000035b")))])), Blk(Tid(859, "%0000035b"), - Attrs([Attr("address","0x6E4")]), Phis([]), Defs([Def(Tid(862, "%0000035e"), - Attrs([Attr("address","0x6E4"), Attr("insn","adrp x2, #65536")]), - Var("R2",Imm(64)), Int(65536,64)), Def(Tid(869, "%00000365"), - Attrs([Attr("address","0x6E8"), Attr("insn","ldr x2, [x2, #0xff8]")]), - Var("R2",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R2",Imm(64)),Int(4088,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(874, "%0000036a"), Attrs([Attr("address","0x6EC"), -Attr("insn","cbz x2, #0xc")]), EQ(Var("R2",Imm(64)),Int(0,64)), -Direct(Tid(696, "%000002b8"))), Goto(Tid(1_519, "%000005ef"), Attrs([]), - Int(1,1), Direct(Tid(878, "%0000036e")))])), Blk(Tid(696, "%000002b8"), - Attrs([Attr("address","0x6F8")]), Phis([]), Defs([]), -Jmps([Call(Tid(704, "%000002c0"), Attrs([Attr("address","0x6F8"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))])), -Blk(Tid(878, "%0000036e"), Attrs([Attr("address","0x6F0")]), Phis([]), -Defs([Def(Tid(882, "%00000372"), Attrs([Attr("address","0x6F0"), -Attr("insn","mov x16, x2")]), Var("R16",Imm(64)), Var("R2",Imm(64)))]), -Jmps([Call(Tid(887, "%00000377"), Attrs([Attr("address","0x6F4"), -Attr("insn","br x16")]), Int(1,1), -(Indirect(Var("R16",Imm(64))),))]))]))]))) \ No newline at end of file diff --git a/src/test/correct/basic_lock_security_read/gcc_O2/basic_lock_security_read.bir b/src/test/correct/basic_lock_security_read/gcc_O2/basic_lock_security_read.bir deleted file mode 100644 index a373b5f79..000000000 --- a/src/test/correct/basic_lock_security_read/gcc_O2/basic_lock_security_read.bir +++ /dev/null @@ -1,235 +0,0 @@ -000005f0: program -000005ba: sub __cxa_finalize(__cxa_finalize_result) -000005f1: __cxa_finalize_result :: out u32 = low:32[R0] - -00000357: -00000456: R16 := 0x10000 -0000045d: R17 := mem[R16 + 0xFB8, el]:u64 -00000463: R16 := R16 + 0xFB8 -00000468: call R17 with noreturn - -000005bb: sub __do_global_dtors_aux(__do_global_dtors_aux_result) -000005f2: __do_global_dtors_aux_result :: out u32 = low:32[R0] - -000002c4: -000002c8: #3 := R31 - 0x20 -000002ce: mem := mem with [#3, el]:u64 <- R29 -000002d4: mem := mem with [#3 + 8, el]:u64 <- R30 -000002d8: R31 := #3 -000002de: R29 := R31 -000002e6: mem := mem with [R31 + 0x10, el]:u64 <- R19 -000002eb: R19 := 0x11000 -000002f2: R0 := pad:64[mem[R19 + 0x10]] -000002f9: when 31:0[R0] <> 0 goto %000002f7 -000005e4: goto %00000320 - -00000320: -00000323: R0 := 0x10000 -0000032a: R0 := mem[R0 + 0xFE0, el]:u64 -00000330: when R0 = 0 goto %0000032e -000005e5: goto %00000347 - -00000347: -0000034a: R0 := 0x11000 -00000351: R0 := mem[R0 + 8, el]:u64 -00000356: R30 := 0x730 -00000359: call @__cxa_finalize with return %0000032e - -0000032e: -00000336: R30 := 0x734 -00000338: call @deregister_tm_clones with return %0000033a - -0000033a: -0000033d: R0 := 1 -00000345: mem := mem with [R19 + 0x10] <- 7:0[R0] -000005e6: goto %000002f7 - -000002f7: -00000301: R19 := mem[R31 + 0x10, el]:u64 -00000308: R29 := mem[R31, el]:u64 -0000030d: R30 := mem[R31 + 8, el]:u64 -00000311: R31 := R31 + 0x20 -00000316: call R30 with noreturn - -000005bf: sub __libc_start_main(__libc_start_main_main, __libc_start_main_arg2, __libc_start_main_arg3, __libc_start_main_auxv, __libc_start_main_result) -000005f3: __libc_start_main_main :: in u64 = R0 -000005f4: __libc_start_main_arg2 :: in u32 = low:32[R1] -000005f5: __libc_start_main_arg3 :: in out u64 = R2 -000005f6: __libc_start_main_auxv :: in out u64 = R3 -000005f7: __libc_start_main_result :: out u32 = low:32[R0] - -0000021d: -00000440: R16 := 0x10000 -00000447: R17 := mem[R16 + 0xFB0, el]:u64 -0000044d: R16 := R16 + 0xFB0 -00000452: call R17 with noreturn - -000005c0: sub _fini(_fini_result) -000005f8: _fini_result :: out u32 = low:32[R0] - -0000001f: -00000025: #0 := R31 - 0x10 -0000002b: mem := mem with [#0, el]:u64 <- R29 -00000031: mem := mem with [#0 + 8, el]:u64 <- R30 -00000035: R31 := #0 -0000003b: R29 := R31 -00000042: R29 := mem[R31, el]:u64 -00000047: R30 := mem[R31 + 8, el]:u64 -0000004b: R31 := R31 + 0x10 -00000050: call R30 with noreturn - -000005c1: sub _init(_init_result) -000005f9: _init_result :: out u32 = low:32[R0] - -0000050c: -00000512: #5 := R31 - 0x10 -00000518: mem := mem with [#5, el]:u64 <- R29 -0000051e: mem := mem with [#5 + 8, el]:u64 <- R30 -00000522: R31 := #5 -00000528: R29 := R31 -0000052d: R30 := 0x590 -0000052f: call @call_weak_fn with return %00000531 - -00000531: -00000536: R29 := mem[R31, el]:u64 -0000053b: R30 := mem[R31 + 8, el]:u64 -0000053f: R31 := R31 + 0x10 -00000544: call R30 with noreturn - -000005c2: sub _start(_start_result) -000005fa: _start_result :: out u32 = low:32[R0] - -000001de: -000001e3: R29 := 0 -000001e8: R30 := 0 -000001ee: R5 := R0 -000001f5: R1 := mem[R31, el]:u64 -000001fb: R2 := R31 + 8 -00000201: R6 := R31 -00000206: R0 := 0x10000 -0000020d: R0 := mem[R0 + 0xFF0, el]:u64 -00000212: R3 := 0 -00000217: R4 := 0 -0000021c: R30 := 0x670 -0000021f: call @__libc_start_main with return %00000221 - -00000221: -00000224: R30 := 0x674 -00000227: call @abort with return %000005e7 - -000005e7: -000005e8: call @call_weak_fn with noreturn - -000005c5: sub abort() - - -00000225: -00000482: R16 := 0x10000 -00000489: R17 := mem[R16 + 0xFC8, el]:u64 -0000048f: R16 := R16 + 0xFC8 -00000494: call R17 with noreturn - -000005c6: sub call_weak_fn(call_weak_fn_result) -000005fb: call_weak_fn_result :: out u32 = low:32[R0] - -00000229: -0000022c: R0 := 0x10000 -00000233: R0 := mem[R0 + 0xFE8, el]:u64 -00000239: when R0 = 0 goto %00000237 -000005e9: goto %00000397 - -00000237: -0000023f: call R30 with noreturn - -00000397: -0000039a: goto @__gmon_start__ - -00000398: -0000046c: R16 := 0x10000 -00000473: R17 := mem[R16 + 0xFC0, el]:u64 -00000479: R16 := R16 + 0xFC0 -0000047e: call R17 with noreturn - -000005c8: sub deregister_tm_clones(deregister_tm_clones_result) -000005fc: deregister_tm_clones_result :: out u32 = low:32[R0] - -00000245: -00000248: R0 := 0x11000 -0000024e: R0 := R0 + 0x10 -00000253: R1 := 0x11000 -00000259: R1 := R1 + 0x10 -0000025f: #1 := ~R0 -00000264: #2 := R1 + ~R0 -0000026a: VF := extend:65[#2 + 1] <> extend:65[R1] + extend:65[#1] + 1 -00000270: CF := pad:65[#2 + 1] <> pad:65[R1] + pad:65[#1] + 1 -00000274: ZF := #2 + 1 = 0 -00000278: NF := 63:63[#2 + 1] -0000027e: when ZF goto %0000027c -000005ea: goto %00000379 - -00000379: -0000037c: R1 := 0x10000 -00000383: R1 := mem[R1 + 0xFD8, el]:u64 -00000388: when R1 = 0 goto %0000027c -000005eb: goto %0000038c - -0000027c: -00000284: call R30 with noreturn - -0000038c: -00000390: R16 := R1 -00000395: call R16 with noreturn - -000005cb: sub frame_dummy(frame_dummy_result) -000005fd: frame_dummy_result :: out u32 = low:32[R0] - -0000031c: -0000031e: call @register_tm_clones with noreturn - -000005cc: sub main(main_argc, main_argv, main_result) -000005fe: main_argc :: in u32 = low:32[R0] -000005ff: main_argv :: in out u64 = R1 -00000600: main_result :: out u32 = low:32[R0] - -000001a8: -000001ab: R1 := 0x11000 -000001b1: R2 := R1 + 0x14 -000001b6: R0 := 0 -000001bd: R1 := pad:64[mem[R1 + 0x14, el]:u32] -000001c4: when 31:0[R1] <> 0 goto %000001c2 -000005ec: goto %0000039c - -0000039c: -000003a1: R0 := pad:64[mem[R2 + 4, el]:u32] -000005ed: goto %000001c2 - -000001c2: -000001ca: call R30 with noreturn - -000005cf: sub register_tm_clones(register_tm_clones_result) -00000601: register_tm_clones_result :: out u32 = low:32[R0] - -00000286: -00000289: R0 := 0x11000 -0000028f: R0 := R0 + 0x10 -00000294: R1 := 0x11000 -0000029a: R1 := R1 + 0x10 -000002a1: R1 := R1 + ~R0 + 1 -000002a7: R2 := 0.63:63[R1] -000002ae: R1 := R2 + (R1 ~>> 3) -000002b4: R1 := extend:64[63:1[R1]] -000002ba: when R1 = 0 goto %000002b8 -000005ee: goto %0000035b - -0000035b: -0000035e: R2 := 0x10000 -00000365: R2 := mem[R2 + 0xFF8, el]:u64 -0000036a: when R2 = 0 goto %000002b8 -000005ef: goto %0000036e - -000002b8: -000002c0: call R30 with noreturn - -0000036e: -00000372: R16 := R2 -00000377: call R16 with noreturn diff --git a/src/test/correct/basic_lock_security_read/gcc_O2/basic_lock_security_read.expected b/src/test/correct/basic_lock_security_read/gcc_O2/basic_lock_security_read.expected index d55f892c4..687901e84 100644 --- a/src/test/correct/basic_lock_security_read/gcc_O2/basic_lock_security_read.expected +++ b/src/test/correct/basic_lock_security_read/gcc_O2/basic_lock_security_read.expected @@ -65,7 +65,7 @@ implementation {:extern} guarantee_reflexive() assert ((memory_load32_le(mem, $z_addr) == memory_load32_le(mem, $z_addr)) && (memory_load32_le(mem, $x_addr) == memory_load32_le(mem, $x_addr))); } -procedure main_1536(); +procedure main(); modifies Gamma_R0, Gamma_R1, Gamma_R2, Gamma_mem, R0, R1, R2, mem; free requires (memory_load64_le(mem, 69632bv64) == 0bv64); free requires (memory_load64_le(mem, 69640bv64) == 69640bv64); @@ -80,41 +80,41 @@ procedure main_1536(); free ensures (memory_load64_le(mem, 69616bv64) == 1536bv64); free ensures (memory_load64_le(mem, 69640bv64) == 69640bv64); -implementation main_1536() +implementation main() { - var Gamma_load18: bool; - var Gamma_load19: bool; - var load18: bv32; - var load19: bv32; + var $load$18: bv32; + var $load$19: bv32; + var Gamma_$load$18: bool; + var Gamma_$load$19: bool; lmain: assume {:captureState "lmain"} true; R1, Gamma_R1 := 69632bv64, true; R2, Gamma_R2 := bvadd64(R1, 20bv64), Gamma_R1; R0, Gamma_R0 := 0bv64, true; call rely(); - load18, Gamma_load18 := memory_load32_le(mem, bvadd64(R1, 20bv64)), (gamma_load32(Gamma_mem, bvadd64(R1, 20bv64)) || L(mem, bvadd64(R1, 20bv64))); - R1, Gamma_R1 := zero_extend32_32(load18), Gamma_load18; + $load$18, Gamma_$load$18 := memory_load32_le(mem, bvadd64(R1, 20bv64)), (gamma_load32(Gamma_mem, bvadd64(R1, 20bv64)) || L(mem, bvadd64(R1, 20bv64))); + R1, Gamma_R1 := zero_extend32_32($load$18), Gamma_$load$18; assert Gamma_R1; goto lmain_goto_l000001c2, lmain_goto_l0000039c; - lmain_goto_l0000039c: - assume {:captureState "lmain_goto_l0000039c"} true; - assume (bvnot1(bvcomp32(R1[32:0], 0bv32)) == 0bv1); - call rely(); - load19, Gamma_load19 := memory_load32_le(mem, bvadd64(R2, 4bv64)), (gamma_load32(Gamma_mem, bvadd64(R2, 4bv64)) || L(mem, bvadd64(R2, 4bv64))); - R0, Gamma_R0 := zero_extend32_32(load19), Gamma_load19; - goto l0000039c; l0000039c: assume {:captureState "l0000039c"} true; + call rely(); + $load$19, Gamma_$load$19 := memory_load32_le(mem, bvadd64(R2, 4bv64)), (gamma_load32(Gamma_mem, bvadd64(R2, 4bv64)) || L(mem, bvadd64(R2, 4bv64))); + R0, Gamma_R0 := zero_extend32_32($load$19), Gamma_$load$19; goto l000001c2; + l000001c2: + assume {:captureState "l000001c2"} true; + goto main_basil_return; lmain_goto_l000001c2: assume {:captureState "lmain_goto_l000001c2"} true; assume (bvnot1(bvcomp32(R1[32:0], 0bv32)) != 0bv1); goto l000001c2; - l000001c2: - assume {:captureState "l000001c2"} true; - goto main_1536_basil_return; - main_1536_basil_return: - assume {:captureState "main_1536_basil_return"} true; + lmain_goto_l0000039c: + assume {:captureState "lmain_goto_l0000039c"} true; + assume (bvnot1(bvcomp32(R1[32:0], 0bv32)) == 0bv1); + goto l0000039c; + main_basil_return: + assume {:captureState "main_basil_return"} true; return; } diff --git a/src/test/correct/basic_lock_security_read/gcc_O2/basic_lock_security_read.gts b/src/test/correct/basic_lock_security_read/gcc_O2/basic_lock_security_read.gts deleted file mode 100644 index 6d0020ff9..000000000 Binary files a/src/test/correct/basic_lock_security_read/gcc_O2/basic_lock_security_read.gts and /dev/null differ diff --git a/src/test/correct/basic_lock_security_read/gcc_O2/basic_lock_security_read.md5sum b/src/test/correct/basic_lock_security_read/gcc_O2/basic_lock_security_read.md5sum new file mode 100644 index 000000000..75423f3dd --- /dev/null +++ b/src/test/correct/basic_lock_security_read/gcc_O2/basic_lock_security_read.md5sum @@ -0,0 +1,5 @@ +56befcda57dc15514187a8175fe944bd correct/basic_lock_security_read/gcc_O2/a.out +7ddab046b395dadedbad84e5b43abfb8 correct/basic_lock_security_read/gcc_O2/basic_lock_security_read.adt +469baaf82342696a70b3fb59617285c8 correct/basic_lock_security_read/gcc_O2/basic_lock_security_read.bir +1bbc4c3f0ab4255e94ba6ff7ea5569a0 correct/basic_lock_security_read/gcc_O2/basic_lock_security_read.relf +61e7bd408d464652020f332b4ba775d1 correct/basic_lock_security_read/gcc_O2/basic_lock_security_read.gts diff --git a/src/test/correct/basic_lock_security_read/gcc_O2/basic_lock_security_read.relf b/src/test/correct/basic_lock_security_read/gcc_O2/basic_lock_security_read.relf deleted file mode 100644 index 424cfcb00..000000000 --- a/src/test/correct/basic_lock_security_read/gcc_O2/basic_lock_security_read.relf +++ /dev/null @@ -1,122 +0,0 @@ - -Relocation section '.rela.dyn' at offset 0x460 contains 8 entries: - Offset Info Type Symbol's Value Symbol's Name + Addend -0000000000010d98 0000000000000403 R_AARCH64_RELATIVE 750 -0000000000010da0 0000000000000403 R_AARCH64_RELATIVE 700 -0000000000010ff0 0000000000000403 R_AARCH64_RELATIVE 600 -0000000000011008 0000000000000403 R_AARCH64_RELATIVE 11008 -0000000000010fd8 0000000400000401 R_AARCH64_GLOB_DAT 0000000000000000 _ITM_deregisterTMCloneTable + 0 -0000000000010fe0 0000000500000401 R_AARCH64_GLOB_DAT 0000000000000000 __cxa_finalize@GLIBC_2.17 + 0 -0000000000010fe8 0000000600000401 R_AARCH64_GLOB_DAT 0000000000000000 __gmon_start__ + 0 -0000000000010ff8 0000000800000401 R_AARCH64_GLOB_DAT 0000000000000000 _ITM_registerTMCloneTable + 0 - -Relocation section '.rela.plt' at offset 0x520 contains 4 entries: - Offset Info Type Symbol's Value Symbol's Name + Addend -0000000000010fb0 0000000300000402 R_AARCH64_JUMP_SLOT 0000000000000000 __libc_start_main@GLIBC_2.34 + 0 -0000000000010fb8 0000000500000402 R_AARCH64_JUMP_SLOT 0000000000000000 __cxa_finalize@GLIBC_2.17 + 0 -0000000000010fc0 0000000600000402 R_AARCH64_JUMP_SLOT 0000000000000000 __gmon_start__ + 0 -0000000000010fc8 0000000700000402 R_AARCH64_JUMP_SLOT 0000000000000000 abort@GLIBC_2.17 + 0 - -Symbol table '.dynsym' contains 9 entries: - Num: Value Size Type Bind Vis Ndx Name - 0: 0000000000000000 0 NOTYPE LOCAL DEFAULT UND - 1: 0000000000000580 0 SECTION LOCAL DEFAULT 11 .init - 2: 0000000000011000 0 SECTION LOCAL DEFAULT 22 .data - 3: 0000000000000000 0 FUNC GLOBAL DEFAULT UND __libc_start_main@GLIBC_2.34 (2) - 4: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_deregisterTMCloneTable - 5: 0000000000000000 0 FUNC WEAK DEFAULT UND __cxa_finalize@GLIBC_2.17 (3) - 6: 0000000000000000 0 NOTYPE WEAK DEFAULT UND __gmon_start__ - 7: 0000000000000000 0 FUNC GLOBAL DEFAULT UND abort@GLIBC_2.17 (3) - 8: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_registerTMCloneTable - -Symbol table '.symtab' contains 89 entries: - Num: Value Size Type Bind Vis Ndx Name - 0: 0000000000000000 0 NOTYPE LOCAL DEFAULT UND - 1: 0000000000000238 0 SECTION LOCAL DEFAULT 1 .interp - 2: 0000000000000254 0 SECTION LOCAL DEFAULT 2 .note.gnu.build-id - 3: 0000000000000278 0 SECTION LOCAL DEFAULT 3 .note.ABI-tag - 4: 0000000000000298 0 SECTION LOCAL DEFAULT 4 .gnu.hash - 5: 00000000000002b8 0 SECTION LOCAL DEFAULT 5 .dynsym - 6: 0000000000000390 0 SECTION LOCAL DEFAULT 6 .dynstr - 7: 000000000000041e 0 SECTION LOCAL DEFAULT 7 .gnu.version - 8: 0000000000000430 0 SECTION LOCAL DEFAULT 8 .gnu.version_r - 9: 0000000000000460 0 SECTION LOCAL DEFAULT 9 .rela.dyn - 10: 0000000000000520 0 SECTION LOCAL DEFAULT 10 .rela.plt - 11: 0000000000000580 0 SECTION LOCAL DEFAULT 11 .init - 12: 00000000000005a0 0 SECTION LOCAL DEFAULT 12 .plt - 13: 0000000000000600 0 SECTION LOCAL DEFAULT 13 .text - 14: 0000000000000754 0 SECTION LOCAL DEFAULT 14 .fini - 15: 0000000000000768 0 SECTION LOCAL DEFAULT 15 .rodata - 16: 000000000000076c 0 SECTION LOCAL DEFAULT 16 .eh_frame_hdr - 17: 00000000000007a8 0 SECTION LOCAL DEFAULT 17 .eh_frame - 18: 0000000000010d98 0 SECTION LOCAL DEFAULT 18 .init_array - 19: 0000000000010da0 0 SECTION LOCAL DEFAULT 19 .fini_array - 20: 0000000000010da8 0 SECTION LOCAL DEFAULT 20 .dynamic - 21: 0000000000010f98 0 SECTION LOCAL DEFAULT 21 .got - 22: 0000000000011000 0 SECTION LOCAL DEFAULT 22 .data - 23: 0000000000011010 0 SECTION LOCAL DEFAULT 23 .bss - 24: 0000000000000000 0 SECTION LOCAL DEFAULT 24 .comment - 25: 0000000000000000 0 FILE LOCAL DEFAULT ABS Scrt1.o - 26: 0000000000000278 0 NOTYPE LOCAL DEFAULT 3 $d - 27: 0000000000000278 32 OBJECT LOCAL DEFAULT 3 __abi_tag - 28: 0000000000000640 0 NOTYPE LOCAL DEFAULT 13 $x - 29: 00000000000007bc 0 NOTYPE LOCAL DEFAULT 17 $d - 30: 0000000000000768 0 NOTYPE LOCAL DEFAULT 15 $d - 31: 0000000000000000 0 FILE LOCAL DEFAULT ABS crti.o - 32: 0000000000000674 0 NOTYPE LOCAL DEFAULT 13 $x - 33: 0000000000000674 20 FUNC LOCAL DEFAULT 13 call_weak_fn - 34: 0000000000000580 0 NOTYPE LOCAL DEFAULT 11 $x - 35: 0000000000000754 0 NOTYPE LOCAL DEFAULT 14 $x - 36: 0000000000000000 0 FILE LOCAL DEFAULT ABS crtn.o - 37: 0000000000000590 0 NOTYPE LOCAL DEFAULT 11 $x - 38: 0000000000000760 0 NOTYPE LOCAL DEFAULT 14 $x - 39: 0000000000000000 0 FILE LOCAL DEFAULT ABS basic_lock_security_read.c - 40: 0000000000000600 0 NOTYPE LOCAL DEFAULT 13 $x - 41: 0000000000011014 0 NOTYPE LOCAL DEFAULT 23 $d - 42: 0000000000000830 0 NOTYPE LOCAL DEFAULT 17 $d - 43: 0000000000000000 0 FILE LOCAL DEFAULT ABS crtstuff.c - 44: 0000000000000690 0 NOTYPE LOCAL DEFAULT 13 $x - 45: 0000000000000690 0 FUNC LOCAL DEFAULT 13 deregister_tm_clones - 46: 00000000000006c0 0 FUNC LOCAL DEFAULT 13 register_tm_clones - 47: 0000000000011008 0 NOTYPE LOCAL DEFAULT 22 $d - 48: 0000000000000700 0 FUNC LOCAL DEFAULT 13 __do_global_dtors_aux - 49: 0000000000011010 1 OBJECT LOCAL DEFAULT 23 completed.0 - 50: 0000000000010da0 0 NOTYPE LOCAL DEFAULT 19 $d - 51: 0000000000010da0 0 OBJECT LOCAL DEFAULT 19 __do_global_dtors_aux_fini_array_entry - 52: 0000000000000750 0 FUNC LOCAL DEFAULT 13 frame_dummy - 53: 0000000000010d98 0 NOTYPE LOCAL DEFAULT 18 $d - 54: 0000000000010d98 0 OBJECT LOCAL DEFAULT 18 __frame_dummy_init_array_entry - 55: 00000000000007d0 0 NOTYPE LOCAL DEFAULT 17 $d - 56: 0000000000011010 0 NOTYPE LOCAL DEFAULT 23 $d - 57: 0000000000000000 0 FILE LOCAL DEFAULT ABS crtstuff.c - 58: 0000000000000844 0 NOTYPE LOCAL DEFAULT 17 $d - 59: 0000000000000844 0 OBJECT LOCAL DEFAULT 17 __FRAME_END__ - 60: 0000000000000000 0 FILE LOCAL DEFAULT ABS - 61: 0000000000010da8 0 OBJECT LOCAL DEFAULT ABS _DYNAMIC - 62: 000000000000076c 0 NOTYPE LOCAL DEFAULT 16 __GNU_EH_FRAME_HDR - 63: 0000000000010fd0 0 OBJECT LOCAL DEFAULT ABS _GLOBAL_OFFSET_TABLE_ - 64: 00000000000005a0 0 NOTYPE LOCAL DEFAULT 12 $x - 65: 0000000000000000 0 FUNC GLOBAL DEFAULT UND __libc_start_main@GLIBC_2.34 - 66: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_deregisterTMCloneTable - 67: 0000000000011000 0 NOTYPE WEAK DEFAULT 22 data_start - 68: 0000000000011010 0 NOTYPE GLOBAL DEFAULT 23 __bss_start__ - 69: 0000000000000000 0 FUNC WEAK DEFAULT UND __cxa_finalize@GLIBC_2.17 - 70: 0000000000011020 0 NOTYPE GLOBAL DEFAULT 23 _bss_end__ - 71: 0000000000011010 0 NOTYPE GLOBAL DEFAULT 22 _edata - 72: 0000000000011014 4 OBJECT GLOBAL DEFAULT 23 z - 73: 0000000000011018 4 OBJECT GLOBAL DEFAULT 23 x - 74: 0000000000000754 0 FUNC GLOBAL HIDDEN 14 _fini - 75: 0000000000011020 0 NOTYPE GLOBAL DEFAULT 23 __bss_end__ - 76: 0000000000011000 0 NOTYPE GLOBAL DEFAULT 22 __data_start - 77: 0000000000000000 0 NOTYPE WEAK DEFAULT UND __gmon_start__ - 78: 0000000000011008 0 OBJECT GLOBAL HIDDEN 22 __dso_handle - 79: 0000000000000000 0 FUNC GLOBAL DEFAULT UND abort@GLIBC_2.17 - 80: 0000000000000768 4 OBJECT GLOBAL DEFAULT 15 _IO_stdin_used - 81: 0000000000011020 0 NOTYPE GLOBAL DEFAULT 23 _end - 82: 0000000000000640 52 FUNC GLOBAL DEFAULT 13 _start - 83: 0000000000011020 0 NOTYPE GLOBAL DEFAULT 23 __end__ - 84: 0000000000011010 0 NOTYPE GLOBAL DEFAULT 23 __bss_start - 85: 0000000000000600 28 FUNC GLOBAL DEFAULT 13 main - 86: 0000000000011010 0 OBJECT GLOBAL HIDDEN 22 __TMC_END__ - 87: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_registerTMCloneTable - 88: 0000000000000580 0 FUNC GLOBAL HIDDEN 11 _init diff --git a/src/test/correct/basic_lock_security_read/gcc_O2/basic_lock_security_read_gtirb.expected b/src/test/correct/basic_lock_security_read/gcc_O2/basic_lock_security_read_gtirb.expected index 700f36f69..b3ec4ac9c 100644 --- a/src/test/correct/basic_lock_security_read/gcc_O2/basic_lock_security_read_gtirb.expected +++ b/src/test/correct/basic_lock_security_read/gcc_O2/basic_lock_security_read_gtirb.expected @@ -63,7 +63,7 @@ implementation {:extern} guarantee_reflexive() assert ((memory_load32_le(mem, $z_addr) == memory_load32_le(mem, $z_addr)) && (memory_load32_le(mem, $x_addr) == memory_load32_le(mem, $x_addr))); } -procedure main_1536(); +procedure main(); modifies Gamma_R0, Gamma_R1, Gamma_R2, Gamma_mem, R0, R1, R2, mem; free requires (memory_load64_le(mem, 69632bv64) == 0bv64); free requires (memory_load64_le(mem, 69640bv64) == 69640bv64); @@ -78,41 +78,41 @@ procedure main_1536(); free ensures (memory_load64_le(mem, 69616bv64) == 1536bv64); free ensures (memory_load64_le(mem, 69640bv64) == 69640bv64); -implementation main_1536() +implementation main() { - var Gamma_load19: bool; - var Gamma_load20: bool; - var load19: bv32; - var load20: bv32; - main_1536__0__NPnP15ImRqqyNleAnPQz~w: - assume {:captureState "main_1536__0__NPnP15ImRqqyNleAnPQz~w"} true; + var $load19: bv32; + var $load20: bv32; + var Gamma_$load19: bool; + var Gamma_$load20: bool; + $main$__0__$NPnP15ImRqqyNleAnPQz~w: + assume {:captureState "$main$__0__$NPnP15ImRqqyNleAnPQz~w"} true; R1, Gamma_R1 := 69632bv64, true; R2, Gamma_R2 := bvadd64(R1, 20bv64), Gamma_R1; R0, Gamma_R0 := 0bv64, true; call rely(); - load19, Gamma_load19 := memory_load32_le(mem, bvadd64(R1, 20bv64)), (gamma_load32(Gamma_mem, bvadd64(R1, 20bv64)) || L(mem, bvadd64(R1, 20bv64))); - R1, Gamma_R1 := zero_extend32_32(load19), Gamma_load19; + $load19, Gamma_$load19 := memory_load32_le(mem, bvadd64(R1, 20bv64)), (gamma_load32(Gamma_mem, bvadd64(R1, 20bv64)) || L(mem, bvadd64(R1, 20bv64))); + R1, Gamma_R1 := zero_extend32_32($load19), Gamma_$load19; assert Gamma_R1; - goto main_1536__0__NPnP15ImRqqyNleAnPQz~w_goto_main_1536__2__OHqj~6C8Tc6ePz3jNp~0Hg, main_1536__0__NPnP15ImRqqyNleAnPQz~w_goto_main_1536__1__3ldkocbySLOQC5WZlsP7tA; - main_1536__0__NPnP15ImRqqyNleAnPQz~w_goto_main_1536__1__3ldkocbySLOQC5WZlsP7tA: - assume {:captureState "main_1536__0__NPnP15ImRqqyNleAnPQz~w_goto_main_1536__1__3ldkocbySLOQC5WZlsP7tA"} true; - assume (!((R1[32:0] == 0bv32) == false)); + goto $main$__0__$NPnP15ImRqqyNleAnPQz~w_goto_$main$__2__$OHqj~6C8Tc6ePz3jNp~0Hg, $main$__0__$NPnP15ImRqqyNleAnPQz~w_goto_$main$__1__$3ldkocbySLOQC5WZlsP7tA; + $main$__1__$3ldkocbySLOQC5WZlsP7tA: + assume {:captureState "$main$__1__$3ldkocbySLOQC5WZlsP7tA"} true; call rely(); - load20, Gamma_load20 := memory_load32_le(mem, bvadd64(R2, 4bv64)), (gamma_load32(Gamma_mem, bvadd64(R2, 4bv64)) || L(mem, bvadd64(R2, 4bv64))); - R0, Gamma_R0 := zero_extend32_32(load20), Gamma_load20; - goto main_1536__1__3ldkocbySLOQC5WZlsP7tA; - main_1536__1__3ldkocbySLOQC5WZlsP7tA: - assume {:captureState "main_1536__1__3ldkocbySLOQC5WZlsP7tA"} true; - goto main_1536__2__OHqj~6C8Tc6ePz3jNp~0Hg; - main_1536__0__NPnP15ImRqqyNleAnPQz~w_goto_main_1536__2__OHqj~6C8Tc6ePz3jNp~0Hg: - assume {:captureState "main_1536__0__NPnP15ImRqqyNleAnPQz~w_goto_main_1536__2__OHqj~6C8Tc6ePz3jNp~0Hg"} true; + $load20, Gamma_$load20 := memory_load32_le(mem, bvadd64(R2, 4bv64)), (gamma_load32(Gamma_mem, bvadd64(R2, 4bv64)) || L(mem, bvadd64(R2, 4bv64))); + R0, Gamma_R0 := zero_extend32_32($load20), Gamma_$load20; + goto $main$__2__$OHqj~6C8Tc6ePz3jNp~0Hg; + $main$__2__$OHqj~6C8Tc6ePz3jNp~0Hg: + assume {:captureState "$main$__2__$OHqj~6C8Tc6ePz3jNp~0Hg"} true; + goto main_basil_return; + $main$__0__$NPnP15ImRqqyNleAnPQz~w_goto_$main$__2__$OHqj~6C8Tc6ePz3jNp~0Hg: + assume {:captureState "$main$__0__$NPnP15ImRqqyNleAnPQz~w_goto_$main$__2__$OHqj~6C8Tc6ePz3jNp~0Hg"} true; assume ((R1[32:0] == 0bv32) == false); - goto main_1536__2__OHqj~6C8Tc6ePz3jNp~0Hg; - main_1536__2__OHqj~6C8Tc6ePz3jNp~0Hg: - assume {:captureState "main_1536__2__OHqj~6C8Tc6ePz3jNp~0Hg"} true; - goto main_1536_basil_return; - main_1536_basil_return: - assume {:captureState "main_1536_basil_return"} true; + goto $main$__2__$OHqj~6C8Tc6ePz3jNp~0Hg; + $main$__0__$NPnP15ImRqqyNleAnPQz~w_goto_$main$__1__$3ldkocbySLOQC5WZlsP7tA: + assume {:captureState "$main$__0__$NPnP15ImRqqyNleAnPQz~w_goto_$main$__1__$3ldkocbySLOQC5WZlsP7tA"} true; + assume (!((R1[32:0] == 0bv32) == false)); + goto $main$__1__$3ldkocbySLOQC5WZlsP7tA; + main_basil_return: + assume {:captureState "main_basil_return"} true; return; } diff --git a/src/test/correct/basic_lock_security_read/gcc_pic/basic_lock_security_read.adt b/src/test/correct/basic_lock_security_read/gcc_pic/basic_lock_security_read.adt deleted file mode 100644 index 8d159f0bd..000000000 --- a/src/test/correct/basic_lock_security_read/gcc_pic/basic_lock_security_read.adt +++ /dev/null @@ -1,535 +0,0 @@ -Project(Attrs([Attr("filename","\"gcc_pic/basic_lock_security_read.out\""), -Attr("image-specification","(declare abi (name str))\n(declare arch (name str))\n(declare base-address (addr int))\n(declare bias (off int))\n(declare bits (size int))\n(declare code-region (addr int) (size int) (off int))\n(declare code-start (addr int))\n(declare entry-point (addr int))\n(declare external-reference (addr int) (name str))\n(declare format (name str))\n(declare is-executable (flag bool))\n(declare is-little-endian (flag bool))\n(declare llvm:base-address (addr int))\n(declare llvm:code-entry (name str) (off int) (size int))\n(declare llvm:coff-import-library (name str))\n(declare llvm:coff-virtual-section-header (name str) (addr int) (size int))\n(declare llvm:elf-program-header (name str) (off int) (size int))\n(declare llvm:elf-program-header-flags (name str) (ld bool) (r bool) \n (w bool) (x bool))\n(declare llvm:elf-virtual-program-header (name str) (addr int) (size int))\n(declare llvm:entry-point (addr int))\n(declare llvm:macho-symbol (name str) (value int))\n(declare llvm:name-reference (at int) (name str))\n(declare llvm:relocation (at int) (addr int))\n(declare llvm:section-entry (name str) (addr int) (size int) (off int))\n(declare llvm:section-flags (name str) (r bool) (w bool) (x bool))\n(declare llvm:segment-command (name str) (off int) (size int))\n(declare llvm:segment-command-flags (name str) (r bool) (w bool) (x bool))\n(declare llvm:symbol-entry (name str) (addr int) (size int) (off int)\n (value int))\n(declare llvm:virtual-segment-command (name str) (addr int) (size int))\n(declare mapped (addr int) (size int) (off int))\n(declare named-region (addr int) (size int) (name str))\n(declare named-symbol (addr int) (name str))\n(declare require (name str))\n(declare section (addr int) (size int))\n(declare segment (addr int) (size int) (r bool) (w bool) (x bool))\n(declare subarch (name str))\n(declare symbol-chunk (addr int) (size int) (root int))\n(declare symbol-value (addr int) (value int))\n(declare system (name str))\n(declare vendor (name str))\n\n(abi unknown)\n(arch aarch64)\n(base-address 0)\n(bias 0)\n(bits 64)\n(code-region 1932 20 1932)\n(code-region 1600 332 1600)\n(code-region 1488 96 1488)\n(code-region 1456 24 1456)\n(code-start 1652)\n(code-start 1600)\n(code-start 1876)\n(entry-point 1600)\n(external-reference 69576 _ITM_deregisterTMCloneTable)\n(external-reference 69584 __cxa_finalize)\n(external-reference 69608 __gmon_start__)\n(external-reference 69624 _ITM_registerTMCloneTable)\n(external-reference 69536 __libc_start_main)\n(external-reference 69544 __cxa_finalize)\n(external-reference 69552 __gmon_start__)\n(external-reference 69560 abort)\n(format elf)\n(is-executable true)\n(is-little-endian true)\n(llvm:base-address 0)\n(llvm:code-entry abort 0 0)\n(llvm:code-entry __cxa_finalize 0 0)\n(llvm:code-entry __libc_start_main 0 0)\n(llvm:code-entry _init 1456 0)\n(llvm:code-entry main 1876 56)\n(llvm:code-entry _start 1600 52)\n(llvm:code-entry abort@GLIBC_2.17 0 0)\n(llvm:code-entry _fini 1932 0)\n(llvm:code-entry __cxa_finalize@GLIBC_2.17 0 0)\n(llvm:code-entry __libc_start_main@GLIBC_2.34 0 0)\n(llvm:code-entry frame_dummy 1872 0)\n(llvm:code-entry __do_global_dtors_aux 1792 0)\n(llvm:code-entry register_tm_clones 1728 0)\n(llvm:code-entry deregister_tm_clones 1680 0)\n(llvm:code-entry call_weak_fn 1652 20)\n(llvm:code-entry .fini 1932 20)\n(llvm:code-entry .text 1600 332)\n(llvm:code-entry .plt 1488 96)\n(llvm:code-entry .init 1456 24)\n(llvm:elf-program-header 08 3464 632)\n(llvm:elf-program-header 07 0 0)\n(llvm:elf-program-header 06 1956 60)\n(llvm:elf-program-header 05 596 68)\n(llvm:elf-program-header 04 3480 496)\n(llvm:elf-program-header 03 3464 648)\n(llvm:elf-program-header 02 0 2180)\n(llvm:elf-program-header 01 568 27)\n(llvm:elf-program-header 00 64 504)\n(llvm:elf-program-header-flags 08 false true false false)\n(llvm:elf-program-header-flags 07 false true true false)\n(llvm:elf-program-header-flags 06 false true false false)\n(llvm:elf-program-header-flags 05 false true false false)\n(llvm:elf-program-header-flags 04 false true true false)\n(llvm:elf-program-header-flags 03 true true true false)\n(llvm:elf-program-header-flags 02 true true false true)\n(llvm:elf-program-header-flags 01 false true false false)\n(llvm:elf-program-header-flags 00 false true false false)\n(llvm:elf-virtual-program-header 08 69000 632)\n(llvm:elf-virtual-program-header 07 0 0)\n(llvm:elf-virtual-program-header 06 1956 60)\n(llvm:elf-virtual-program-header 05 596 68)\n(llvm:elf-virtual-program-header 04 69016 496)\n(llvm:elf-virtual-program-header 03 69000 664)\n(llvm:elf-virtual-program-header 02 0 2180)\n(llvm:elf-virtual-program-header 01 568 27)\n(llvm:elf-virtual-program-header 00 64 504)\n(llvm:entry-point 1600)\n(llvm:name-reference 69560 abort)\n(llvm:name-reference 69552 __gmon_start__)\n(llvm:name-reference 69544 __cxa_finalize)\n(llvm:name-reference 69536 __libc_start_main)\n(llvm:name-reference 69624 _ITM_registerTMCloneTable)\n(llvm:name-reference 69608 __gmon_start__)\n(llvm:name-reference 69584 __cxa_finalize)\n(llvm:name-reference 69576 _ITM_deregisterTMCloneTable)\n(llvm:section-entry .shstrtab 0 250 6858)\n(llvm:section-entry .strtab 0 562 6296)\n(llvm:section-entry .symtab 0 2136 4160)\n(llvm:section-entry .comment 0 43 4112)\n(llvm:section-entry .bss 69648 16 4112)\n(llvm:section-entry .data 69632 16 4096)\n(llvm:section-entry .got 69512 120 3976)\n(llvm:section-entry .dynamic 69016 496 3480)\n(llvm:section-entry .fini_array 69008 8 3472)\n(llvm:section-entry .init_array 69000 8 3464)\n(llvm:section-entry .eh_frame 2016 164 2016)\n(llvm:section-entry .eh_frame_hdr 1956 60 1956)\n(llvm:section-entry .rodata 1952 4 1952)\n(llvm:section-entry .fini 1932 20 1932)\n(llvm:section-entry .text 1600 332 1600)\n(llvm:section-entry .plt 1488 96 1488)\n(llvm:section-entry .init 1456 24 1456)\n(llvm:section-entry .rela.plt 1360 96 1360)\n(llvm:section-entry .rela.dyn 1120 240 1120)\n(llvm:section-entry .gnu.version_r 1072 48 1072)\n(llvm:section-entry .gnu.version 1054 18 1054)\n(llvm:section-entry .dynstr 912 141 912)\n(llvm:section-entry .dynsym 696 216 696)\n(llvm:section-entry .gnu.hash 664 28 664)\n(llvm:section-entry .note.ABI-tag 632 32 632)\n(llvm:section-entry .note.gnu.build-id 596 36 596)\n(llvm:section-entry .interp 568 27 568)\n(llvm:section-flags .shstrtab true false false)\n(llvm:section-flags .strtab true false false)\n(llvm:section-flags .symtab true false false)\n(llvm:section-flags .comment true false false)\n(llvm:section-flags .bss true true false)\n(llvm:section-flags .data true true false)\n(llvm:section-flags .got true true false)\n(llvm:section-flags .dynamic true true false)\n(llvm:section-flags .fini_array true true false)\n(llvm:section-flags .init_array true true false)\n(llvm:section-flags .eh_frame true false false)\n(llvm:section-flags .eh_frame_hdr true false false)\n(llvm:section-flags .rodata true false false)\n(llvm:section-flags .fini true false true)\n(llvm:section-flags .text true false true)\n(llvm:section-flags .plt true false true)\n(llvm:section-flags .init true false true)\n(llvm:section-flags .rela.plt true false false)\n(llvm:section-flags .rela.dyn true false false)\n(llvm:section-flags .gnu.version_r true false false)\n(llvm:section-flags .gnu.version true false false)\n(llvm:section-flags .dynstr true false false)\n(llvm:section-flags .dynsym true false false)\n(llvm:section-flags .gnu.hash true false false)\n(llvm:section-flags .note.ABI-tag true false false)\n(llvm:section-flags .note.gnu.build-id true false false)\n(llvm:section-flags .interp true false false)\n(llvm:symbol-entry abort 0 0 0 0)\n(llvm:symbol-entry __cxa_finalize 0 0 0 0)\n(llvm:symbol-entry __libc_start_main 0 0 0 0)\n(llvm:symbol-entry _init 1456 0 1456 1456)\n(llvm:symbol-entry main 1876 56 1876 1876)\n(llvm:symbol-entry _start 1600 52 1600 1600)\n(llvm:symbol-entry abort@GLIBC_2.17 0 0 0 0)\n(llvm:symbol-entry _fini 1932 0 1932 1932)\n(llvm:symbol-entry __cxa_finalize@GLIBC_2.17 0 0 0 0)\n(llvm:symbol-entry __libc_start_main@GLIBC_2.34 0 0 0 0)\n(llvm:symbol-entry frame_dummy 1872 0 1872 1872)\n(llvm:symbol-entry __do_global_dtors_aux 1792 0 1792 1792)\n(llvm:symbol-entry register_tm_clones 1728 0 1728 1728)\n(llvm:symbol-entry deregister_tm_clones 1680 0 1680 1680)\n(llvm:symbol-entry call_weak_fn 1652 20 1652 1652)\n(mapped 0 2180 0)\n(mapped 69000 648 3464)\n(named-region 0 2180 02)\n(named-region 69000 664 03)\n(named-region 568 27 .interp)\n(named-region 596 36 .note.gnu.build-id)\n(named-region 632 32 .note.ABI-tag)\n(named-region 664 28 .gnu.hash)\n(named-region 696 216 .dynsym)\n(named-region 912 141 .dynstr)\n(named-region 1054 18 .gnu.version)\n(named-region 1072 48 .gnu.version_r)\n(named-region 1120 240 .rela.dyn)\n(named-region 1360 96 .rela.plt)\n(named-region 1456 24 .init)\n(named-region 1488 96 .plt)\n(named-region 1600 332 .text)\n(named-region 1932 20 .fini)\n(named-region 1952 4 .rodata)\n(named-region 1956 60 .eh_frame_hdr)\n(named-region 2016 164 .eh_frame)\n(named-region 69000 8 .init_array)\n(named-region 69008 8 .fini_array)\n(named-region 69016 496 .dynamic)\n(named-region 69512 120 .got)\n(named-region 69632 16 .data)\n(named-region 69648 16 .bss)\n(named-region 0 43 .comment)\n(named-region 0 2136 .symtab)\n(named-region 0 562 .strtab)\n(named-region 0 250 .shstrtab)\n(named-symbol 1652 call_weak_fn)\n(named-symbol 1680 deregister_tm_clones)\n(named-symbol 1728 register_tm_clones)\n(named-symbol 1792 __do_global_dtors_aux)\n(named-symbol 1872 frame_dummy)\n(named-symbol 0 __libc_start_main@GLIBC_2.34)\n(named-symbol 0 __cxa_finalize@GLIBC_2.17)\n(named-symbol 1932 _fini)\n(named-symbol 0 abort@GLIBC_2.17)\n(named-symbol 1600 _start)\n(named-symbol 1876 main)\n(named-symbol 1456 _init)\n(named-symbol 0 __libc_start_main)\n(named-symbol 0 __cxa_finalize)\n(named-symbol 0 abort)\n(require libc.so.6)\n(section 568 27)\n(section 596 36)\n(section 632 32)\n(section 664 28)\n(section 696 216)\n(section 912 141)\n(section 1054 18)\n(section 1072 48)\n(section 1120 240)\n(section 1360 96)\n(section 1456 24)\n(section 1488 96)\n(section 1600 332)\n(section 1932 20)\n(section 1952 4)\n(section 1956 60)\n(section 2016 164)\n(section 69000 8)\n(section 69008 8)\n(section 69016 496)\n(section 69512 120)\n(section 69632 16)\n(section 69648 16)\n(section 0 43)\n(section 0 2136)\n(section 0 562)\n(section 0 250)\n(segment 0 2180 true false true)\n(segment 69000 664 true true false)\n(subarch v8)\n(symbol-chunk 1652 20 1652)\n(symbol-chunk 1600 52 1600)\n(symbol-chunk 1876 56 1876)\n(symbol-value 1652 1652)\n(symbol-value 1680 1680)\n(symbol-value 1728 1728)\n(symbol-value 1792 1792)\n(symbol-value 1872 1872)\n(symbol-value 1932 1932)\n(symbol-value 1600 1600)\n(symbol-value 1876 1876)\n(symbol-value 1456 1456)\n(symbol-value 0 0)\n(system \"\")\n(vendor \"\")\n"), -Attr("abi-name","\"aarch64-linux-gnu-elf\"")]), -Sections([Section(".shstrtab", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x40\x06\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xc8\x1b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x38\x00\x09\x00\x40\x00\x1c\x00\x1b\x00\x06\x00\x00\x00\x04\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x04\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x84\x08\x00\x00\x00\x00\x00\x00\x84\x08\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x01\x00\x00\x00\x06\x00\x00\x00\x88\x0d\x00\x00\x00\x00\x00\x00\x88\x0d"), -Section(".strtab", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x40\x06\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xc8\x1b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x38\x00\x09\x00\x40\x00\x1c\x00\x1b\x00\x06\x00\x00\x00\x04\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x04\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x84\x08\x00\x00\x00\x00\x00\x00\x84\x08\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x01\x00\x00\x00\x06\x00\x00\x00\x88\x0d\x00\x00\x00\x00\x00\x00\x88\x0d\x01\x00\x00\x00\x00\x00\x88\x0d\x01\x00\x00\x00\x00\x00\x88\x02\x00\x00\x00\x00\x00\x00\x98\x02\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x02\x00\x00\x00\x06\x00\x00\x00\x98\x0d\x00\x00\x00\x00\x00\x00\x98\x0d\x01\x00\x00\x00\x00\x00\x98\x0d\x01\x00\x00\x00\x00\x00\xf0\x01\x00\x00\x00\x00\x00\x00\xf0\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x04\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x50\xe5\x74\x64\x04\x00\x00\x00\xa4\x07\x00\x00\x00\x00\x00\x00\xa4\x07\x00\x00\x00\x00\x00\x00\xa4\x07\x00\x00\x00\x00\x00\x00\x3c\x00\x00\x00\x00\x00\x00\x00\x3c\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x51\xe5\x74\x64\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x52\xe5\x74\x64\x04\x00\x00\x00\x88\x0d\x00\x00\x00\x00\x00\x00\x88\x0d\x01\x00\x00\x00\x00\x00\x88\x0d\x01\x00\x00\x00\x00\x00\x78\x02\x00\x00\x00\x00\x00\x00\x78\x02\x00\x00\x00\x00\x00\x00\x01\x00"), -Section(".symtab", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x40\x06\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xc8\x1b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x38\x00\x09\x00\x40\x00\x1c\x00\x1b\x00\x06\x00\x00\x00\x04\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x04\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x84\x08\x00\x00\x00\x00\x00\x00\x84\x08\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x01\x00\x00\x00\x06\x00\x00\x00\x88\x0d\x00\x00\x00\x00\x00\x00\x88\x0d\x01\x00\x00\x00\x00\x00\x88\x0d\x01\x00\x00\x00\x00\x00\x88\x02\x00\x00\x00\x00\x00\x00\x98\x02\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x02\x00\x00\x00\x06\x00\x00\x00\x98\x0d\x00\x00\x00\x00\x00\x00\x98\x0d\x01\x00\x00\x00\x00\x00\x98\x0d\x01\x00\x00\x00\x00\x00\xf0\x01\x00\x00\x00\x00\x00\x00\xf0\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x04\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x50\xe5\x74\x64\x04\x00\x00\x00\xa4\x07\x00\x00\x00\x00\x00\x00\xa4\x07\x00\x00\x00\x00\x00\x00\xa4\x07\x00\x00\x00\x00\x00\x00\x3c\x00\x00\x00\x00\x00\x00\x00\x3c\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x51\xe5\x74\x64\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x52\xe5\x74\x64\x04\x00\x00\x00\x88\x0d\x00\x00\x00\x00\x00\x00\x88\x0d\x01\x00\x00\x00\x00\x00\x88\x0d\x01\x00\x00\x00\x00\x00\x78\x02\x00\x00\x00\x00\x00\x00\x78\x02\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x2f\x6c\x69\x62\x2f\x6c\x64\x2d\x6c\x69\x6e\x75\x78\x2d\x61\x61\x72\x63\x68\x36\x34\x2e\x73\x6f\x2e\x31\x00\x00\x04\x00\x00\x00\x14\x00\x00\x00\x03\x00\x00\x00\x47\x4e\x55\x00\x8a\x79\x0e\x02\x38\x89\x61\x63\x50\x72\xee\xed\x10\x95\x5c\xf5\xc4\x50\xc2\x8e\x04\x00\x00\x00\x10\x00\x00\x00\x01\x00\x00\x00\x47\x4e\x55\x00\x00\x00\x00\x00\x03\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x01\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x0b\x00\xb0\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x16\x00\x00\x10\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x48\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x22\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x22\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x73\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5f\x5f\x63\x78\x61\x5f\x66\x69\x6e\x61\x6c\x69\x7a\x65\x00\x5f\x5f\x6c\x69\x62\x63\x5f\x73\x74\x61\x72\x74\x5f\x6d\x61\x69\x6e\x00\x61\x62\x6f\x72\x74\x00\x6c\x69\x62\x63\x2e\x73\x6f\x2e\x36\x00\x47\x4c\x49\x42\x43\x5f\x32\x2e\x31\x37\x00\x47\x4c\x49\x42\x43\x5f\x32\x2e\x33\x34\x00\x5f\x49\x54\x4d\x5f\x64\x65\x72\x65\x67\x69\x73\x74\x65\x72\x54\x4d\x43\x6c\x6f\x6e\x65\x54\x61\x62\x6c\x65\x00\x5f\x5f\x67\x6d\x6f\x6e\x5f\x73\x74\x61\x72\x74\x5f\x5f\x00\x5f\x49\x54\x4d\x5f\x72\x65\x67\x69\x73\x74\x65\x72\x54\x4d\x43\x6c\x6f\x6e\x65\x54\x61\x62\x6c\x65\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x01\x00\x03\x00\x01\x00\x03\x00\x01\x00\x01\x00\x02\x00\x28\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x97\x91\x96\x06\x00\x00\x03\x00\x32\x00\x00\x00\x10\x00\x00\x00\xb4\x91\x96\x06\x00\x00\x02\x00\x3d\x00\x00\x00\x00\x00\x00\x00\x88\x0d\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x50\x07\x00\x00\x00\x00\x00\x00\x90\x0d\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\xd8\x0f\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x18\x10\x01\x00\x00\x00\x00\x00\xe0\x0f\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x14\x10\x01\x00\x00\x00\x00\x00\xf0\x0f\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x54\x07\x00\x00\x00\x00\x00\x00\x08\x10\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x08\x10\x01\x00\x00\x00\x00\x00\xc8\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xd0\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe8\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xf8\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xa0\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xa8\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xb0\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xb8\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1f\x20\x03\xd5\xfd\x7b\xbf\xa9\xfd\x03\x00\x91\x2e\x00\x00\x94\xfd\x7b\xc1\xa8\xc0\x03\x5f\xd6\x00\x00\x00\x00\x00\x00\x00\x00\xf0\x7b\xbf\xa9\x90\x00\x00\x90\x11\xce\x47\xf9\x10\x62\x3e\x91\x20\x02\x1f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x90\x00\x00\x90\x11\xd2\x47\xf9\x10\x82\x3e\x91\x20\x02\x1f\xd6\x90\x00\x00\x90\x11\xd6\x47\xf9\x10\xa2\x3e\x91\x20\x02\x1f\xd6\x90\x00\x00\x90\x11\xda\x47\xf9\x10\xc2\x3e\x91\x20\x02\x1f\xd6\x90\x00\x00\x90\x11\xde\x47\xf9\x10\xe2\x3e\x91\x20\x02\x1f\xd6\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1f\x20\x03\xd5\x1d\x00\x80\xd2\x1e\x00\x80\xd2\xe5\x03\x00\xaa\xe1\x03\x40\xf9\xe2\x23\x00\x91\xe6\x03\x00\x91\x80\x00\x00\x90\x00\xf8\x47\xf9\x03\x00\x80\xd2\x04\x00\x80\xd2\xe1\xff\xff\x97\xec\xff\xff\x97\x80\x00\x00\x90\x00\xf4\x47\xf9\x40\x00\x00\xb4\xe4\xff\xff\x17\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x80\x00\x00\xb0\x00\x40\x00\x91\x81\x00\x00\xb0\x21\x40\x00\x91\x3f\x00\x00\xeb\xc0\x00\x00\x54\x81\x00\x00\x90\x21\xe4\x47\xf9\x61\x00\x00\xb4\xf0\x03\x01\xaa\x00\x02\x1f\xd6\xc0\x03\x5f\xd6\x80\x00\x00\xb0\x00\x40\x00\x91\x81\x00\x00\xb0\x21\x40\x00\x91\x21\x00\x00\xcb\x22\xfc\x7f\xd3\x41\x0c\x81\x8b\x21\xfc\x41\x93\xc1\x00\x00\xb4\x82\x00\x00\x90\x42\xfc\x47\xf9\x62\x00\x00\xb4\xf0\x03\x02\xaa\x00\x02\x1f\xd6\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\xfd\x7b\xbe\xa9\xfd\x03\x00\x91\xf3\x0b\x00\xf9\x93\x00\x00\xb0\x60\x42\x40\x39\x40\x01\x00\x35\x80\x00\x00\x90\x00\xe8\x47\xf9\x80\x00\x00\xb4\x80\x00\x00\xb0\x00\x04\x40\xf9\xb5\xff\xff\x97\xd8\xff\xff\x97\x20\x00\x80\x52\x60\x42\x00\x39\xf3\x0b\x40\xf9\xfd\x7b\xc2\xa8\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\xdc\xff\xff\x17\xff\x43\x00\xd1\xff\x0f\x00\xb9\x80\x00\x00\x90\x00\xec\x47\xf9\x00\x00\x40\xb9\x1f\x00\x00\x71\xa1\x00\x00\x54\x80\x00\x00\x90\x00\xf0\x47\xf9\x00\x00\x40\xb9\xe0\x0f\x00\xb9\xe0\x0f\x40\xb9\xff\x43\x00\x91\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\xfd\x7b\xbf\xa9\xfd\x03\x00\x91\xfd\x7b\xc1\xa8\xc0\x03\x5f\xd6\x01\x00\x02\x00\x01\x1b\x03\x3b\x38\x00\x00\x00\x06\x00\x00\x00\x9c\xfe\xff\xff\x50\x00\x00\x00\xec\xfe\xff\xff\x64\x00\x00\x00\x1c\xff\xff\xff\x78\x00\x00\x00\x5c\xff\xff\xff\x8c\x00\x00\x00\xac\xff\xff\xff\xb0\x00\x00\x00\xb0\xff\xff\xff\xc4\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x01\x7a\x52\x00\x04\x78\x1e\x01\x1b\x0c\x1f\x00\x10\x00\x00\x00\x18\x00\x00\x00\x44\xfe\xff\xff\x34\x00\x00\x00\x00\x41\x07\x1e\x10\x00\x00\x00\x2c\x00\x00\x00\x80\xfe\xff\xff\x30\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x40\x00\x00\x00\x9c\xfe\xff\xff\x3c\x00\x00\x00\x00\x00\x00\x00\x20\x00\x00\x00\x54\x00\x00\x00\xc8\xfe\xff\xff\x48\x00\x00\x00\x00\x41\x0e\x20\x9d\x04\x9e\x03\x42\x93\x02\x4e\xde\xdd\xd3\x0e\x00\x00\x00\x00\x10\x00\x00\x00"), -Section(".comment", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x40\x06\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xc8\x1b\x00"), -Section(".interp", 0x238, "\x2f\x6c\x69\x62\x2f\x6c\x64\x2d\x6c\x69\x6e\x75\x78\x2d\x61\x61\x72\x63\x68\x36\x34\x2e\x73\x6f\x2e\x31\x00"), -Section(".note.gnu.build-id", 0x254, "\x04\x00\x00\x00\x14\x00\x00\x00\x03\x00\x00\x00\x47\x4e\x55\x00\x8a\x79\x0e\x02\x38\x89\x61\x63\x50\x72\xee\xed\x10\x95\x5c\xf5\xc4\x50\xc2\x8e"), -Section(".note.ABI-tag", 0x278, "\x04\x00\x00\x00\x10\x00\x00\x00\x01\x00\x00\x00\x47\x4e\x55\x00\x00\x00\x00\x00\x03\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00"), -Section(".gnu.hash", 0x298, "\x01\x00\x00\x00\x01\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".dynsym", 0x2B8, "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x0b\x00\xb0\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x16\x00\x00\x10\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x48\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x22\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x22\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x73\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".dynstr", 0x390, "\x00\x5f\x5f\x63\x78\x61\x5f\x66\x69\x6e\x61\x6c\x69\x7a\x65\x00\x5f\x5f\x6c\x69\x62\x63\x5f\x73\x74\x61\x72\x74\x5f\x6d\x61\x69\x6e\x00\x61\x62\x6f\x72\x74\x00\x6c\x69\x62\x63\x2e\x73\x6f\x2e\x36\x00\x47\x4c\x49\x42\x43\x5f\x32\x2e\x31\x37\x00\x47\x4c\x49\x42\x43\x5f\x32\x2e\x33\x34\x00\x5f\x49\x54\x4d\x5f\x64\x65\x72\x65\x67\x69\x73\x74\x65\x72\x54\x4d\x43\x6c\x6f\x6e\x65\x54\x61\x62\x6c\x65\x00\x5f\x5f\x67\x6d\x6f\x6e\x5f\x73\x74\x61\x72\x74\x5f\x5f\x00\x5f\x49\x54\x4d\x5f\x72\x65\x67\x69\x73\x74\x65\x72\x54\x4d\x43\x6c\x6f\x6e\x65\x54\x61\x62\x6c\x65\x00"), -Section(".gnu.version", 0x41E, "\x00\x00\x00\x00\x00\x00\x02\x00\x01\x00\x03\x00\x01\x00\x03\x00\x01\x00"), -Section(".gnu.version_r", 0x430, "\x01\x00\x02\x00\x28\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x97\x91\x96\x06\x00\x00\x03\x00\x32\x00\x00\x00\x10\x00\x00\x00\xb4\x91\x96\x06\x00\x00\x02\x00\x3d\x00\x00\x00\x00\x00\x00\x00"), -Section(".rela.dyn", 0x460, "\x88\x0d\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x50\x07\x00\x00\x00\x00\x00\x00\x90\x0d\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\xd8\x0f\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x18\x10\x01\x00\x00\x00\x00\x00\xe0\x0f\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x14\x10\x01\x00\x00\x00\x00\x00\xf0\x0f\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x54\x07\x00\x00\x00\x00\x00\x00\x08\x10\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x08\x10\x01\x00\x00\x00\x00\x00\xc8\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xd0\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe8\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xf8\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".rela.plt", 0x550, "\xa0\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xa8\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xb0\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xb8\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".init", 0x5B0, "\x1f\x20\x03\xd5\xfd\x7b\xbf\xa9\xfd\x03\x00\x91\x2e\x00\x00\x94\xfd\x7b\xc1\xa8\xc0\x03\x5f\xd6"), -Section(".plt", 0x5D0, "\xf0\x7b\xbf\xa9\x90\x00\x00\x90\x11\xce\x47\xf9\x10\x62\x3e\x91\x20\x02\x1f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x90\x00\x00\x90\x11\xd2\x47\xf9\x10\x82\x3e\x91\x20\x02\x1f\xd6\x90\x00\x00\x90\x11\xd6\x47\xf9\x10\xa2\x3e\x91\x20\x02\x1f\xd6\x90\x00\x00\x90\x11\xda\x47\xf9\x10\xc2\x3e\x91\x20\x02\x1f\xd6\x90\x00\x00\x90\x11\xde\x47\xf9\x10\xe2\x3e\x91\x20\x02\x1f\xd6"), -Section(".fini", 0x78C, "\x1f\x20\x03\xd5\xfd\x7b\xbf\xa9\xfd\x03\x00\x91\xfd\x7b\xc1\xa8\xc0\x03\x5f\xd6"), -Section(".rodata", 0x7A0, "\x01\x00\x02\x00"), -Section(".eh_frame_hdr", 0x7A4, "\x01\x1b\x03\x3b\x38\x00\x00\x00\x06\x00\x00\x00\x9c\xfe\xff\xff\x50\x00\x00\x00\xec\xfe\xff\xff\x64\x00\x00\x00\x1c\xff\xff\xff\x78\x00\x00\x00\x5c\xff\xff\xff\x8c\x00\x00\x00\xac\xff\xff\xff\xb0\x00\x00\x00\xb0\xff\xff\xff\xc4\x00\x00\x00"), -Section(".eh_frame", 0x7E0, "\x10\x00\x00\x00\x00\x00\x00\x00\x01\x7a\x52\x00\x04\x78\x1e\x01\x1b\x0c\x1f\x00\x10\x00\x00\x00\x18\x00\x00\x00\x44\xfe\xff\xff\x34\x00\x00\x00\x00\x41\x07\x1e\x10\x00\x00\x00\x2c\x00\x00\x00\x80\xfe\xff\xff\x30\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x40\x00\x00\x00\x9c\xfe\xff\xff\x3c\x00\x00\x00\x00\x00\x00\x00\x20\x00\x00\x00\x54\x00\x00\x00\xc8\xfe\xff\xff\x48\x00\x00\x00\x00\x41\x0e\x20\x9d\x04\x9e\x03\x42\x93\x02\x4e\xde\xdd\xd3\x0e\x00\x00\x00\x00\x10\x00\x00\x00\x78\x00\x00\x00\xf4\xfe\xff\xff\x04\x00\x00\x00\x00\x00\x00\x00\x14\x00\x00\x00\x8c\x00\x00\x00\xe4\xfe\xff\xff\x38\x00\x00\x00\x00\x41\x0e\x10\x4c\x0e\x00\x00\x00\x00\x00\x00"), -Section(".fini_array", 0x10D90, "\x00\x07\x00\x00\x00\x00\x00\x00"), -Section(".dynamic", 0x10D98, "\x01\x00\x00\x00\x00\x00\x00\x00\x28\x00\x00\x00\x00\x00\x00\x00\x0c\x00\x00\x00\x00\x00\x00\x00\xb0\x05\x00\x00\x00\x00\x00\x00\x0d\x00\x00\x00\x00\x00\x00\x00\x8c\x07\x00\x00\x00\x00\x00\x00\x19\x00\x00\x00\x00\x00\x00\x00\x88\x0d\x01\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x1a\x00\x00\x00\x00\x00\x00\x00\x90\x0d\x01\x00\x00\x00\x00\x00\x1c\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\xf5\xfe\xff\x6f\x00\x00\x00\x00\x98\x02\x00\x00\x00\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x90\x03\x00\x00\x00\x00\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\xb8\x02\x00\x00\x00\x00\x00\x00\x0a\x00\x00\x00\x00\x00\x00\x00\x8d\x00\x00\x00\x00\x00\x00\x00\x0b\x00\x00\x00\x00\x00\x00\x00\x18\x00\x00\x00\x00\x00\x00\x00\x15\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x88\x0f\x01\x00\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x60\x00\x00\x00\x00\x00\x00\x00\x14\x00\x00\x00\x00\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x17\x00\x00\x00\x00\x00\x00\x00\x50\x05\x00\x00\x00\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x60\x04\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\xf0\x00\x00\x00\x00\x00\x00\x00\x09\x00\x00\x00\x00\x00\x00\x00\x18\x00\x00\x00\x00\x00\x00\x00\x1e\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\xfb\xff\xff\x6f\x00\x00\x00\x00\x01\x00\x00\x08\x00\x00\x00\x00\xfe\xff\xff\x6f\x00\x00\x00\x00\x30\x04\x00\x00\x00\x00\x00\x00\xff\xff\xff\x6f\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\xf0\xff\xff\x6f\x00\x00\x00\x00\x1e\x04\x00\x00\x00\x00\x00\x00\xf9\xff\xff\x6f\x00\x00\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".got", 0x10F88, "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xd0\x05\x00\x00\x00\x00\x00\x00\xd0\x05\x00\x00\x00\x00\x00\x00\xd0\x05\x00\x00\x00\x00\x00\x00\xd0\x05\x00\x00\x00\x00\x00\x00\x98\x0d\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x18\x10\x01\x00\x00\x00\x00\x00\x14\x10\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x54\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".data", 0x11000, "\x00\x00\x00\x00\x00\x00\x00\x00\x08\x10\x01\x00\x00\x00\x00\x00"), -Section(".init_array", 0x10D88, "\x50\x07\x00\x00\x00\x00\x00\x00"), -Section(".text", 0x640, "\x1f\x20\x03\xd5\x1d\x00\x80\xd2\x1e\x00\x80\xd2\xe5\x03\x00\xaa\xe1\x03\x40\xf9\xe2\x23\x00\x91\xe6\x03\x00\x91\x80\x00\x00\x90\x00\xf8\x47\xf9\x03\x00\x80\xd2\x04\x00\x80\xd2\xe1\xff\xff\x97\xec\xff\xff\x97\x80\x00\x00\x90\x00\xf4\x47\xf9\x40\x00\x00\xb4\xe4\xff\xff\x17\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x80\x00\x00\xb0\x00\x40\x00\x91\x81\x00\x00\xb0\x21\x40\x00\x91\x3f\x00\x00\xeb\xc0\x00\x00\x54\x81\x00\x00\x90\x21\xe4\x47\xf9\x61\x00\x00\xb4\xf0\x03\x01\xaa\x00\x02\x1f\xd6\xc0\x03\x5f\xd6\x80\x00\x00\xb0\x00\x40\x00\x91\x81\x00\x00\xb0\x21\x40\x00\x91\x21\x00\x00\xcb\x22\xfc\x7f\xd3\x41\x0c\x81\x8b\x21\xfc\x41\x93\xc1\x00\x00\xb4\x82\x00\x00\x90\x42\xfc\x47\xf9\x62\x00\x00\xb4\xf0\x03\x02\xaa\x00\x02\x1f\xd6\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\xfd\x7b\xbe\xa9\xfd\x03\x00\x91\xf3\x0b\x00\xf9\x93\x00\x00\xb0\x60\x42\x40\x39\x40\x01\x00\x35\x80\x00\x00\x90\x00\xe8\x47\xf9\x80\x00\x00\xb4\x80\x00\x00\xb0\x00\x04\x40\xf9\xb5\xff\xff\x97\xd8\xff\xff\x97\x20\x00\x80\x52\x60\x42\x00\x39\xf3\x0b\x40\xf9\xfd\x7b\xc2\xa8\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\xdc\xff\xff\x17\xff\x43\x00\xd1\xff\x0f\x00\xb9\x80\x00\x00\x90\x00\xec\x47\xf9\x00\x00\x40\xb9\x1f\x00\x00\x71\xa1\x00\x00\x54\x80\x00\x00\x90\x00\xf0\x47\xf9\x00\x00\x40\xb9\xe0\x0f\x00\xb9\xe0\x0f\x40\xb9\xff\x43\x00\x91\xc0\x03\x5f\xd6")]), -Memmap([Annotation(Region(0x0,0x883), Attr("segment","02 0 2180")), -Annotation(Region(0x640,0x673), Attr("symbol","\"_start\"")), -Annotation(Region(0x0,0xF9), Attr("section","\".shstrtab\"")), -Annotation(Region(0x0,0x231), Attr("section","\".strtab\"")), -Annotation(Region(0x0,0x857), Attr("section","\".symtab\"")), -Annotation(Region(0x0,0x2A), Attr("section","\".comment\"")), -Annotation(Region(0x238,0x252), Attr("section","\".interp\"")), -Annotation(Region(0x254,0x277), Attr("section","\".note.gnu.build-id\"")), -Annotation(Region(0x278,0x297), Attr("section","\".note.ABI-tag\"")), -Annotation(Region(0x298,0x2B3), Attr("section","\".gnu.hash\"")), -Annotation(Region(0x2B8,0x38F), Attr("section","\".dynsym\"")), -Annotation(Region(0x390,0x41C), Attr("section","\".dynstr\"")), -Annotation(Region(0x41E,0x42F), Attr("section","\".gnu.version\"")), -Annotation(Region(0x430,0x45F), Attr("section","\".gnu.version_r\"")), -Annotation(Region(0x460,0x54F), Attr("section","\".rela.dyn\"")), -Annotation(Region(0x550,0x5AF), Attr("section","\".rela.plt\"")), -Annotation(Region(0x5B0,0x5C7), Attr("section","\".init\"")), -Annotation(Region(0x5D0,0x62F), Attr("section","\".plt\"")), -Annotation(Region(0x5B0,0x5C7), Attr("code-region","()")), -Annotation(Region(0x5D0,0x62F), Attr("code-region","()")), -Annotation(Region(0x640,0x673), Attr("symbol-info","_start 0x640 52")), -Annotation(Region(0x674,0x687), Attr("symbol","\"call_weak_fn\"")), -Annotation(Region(0x674,0x687), Attr("symbol-info","call_weak_fn 0x674 20")), -Annotation(Region(0x754,0x78B), Attr("symbol","\"main\"")), -Annotation(Region(0x754,0x78B), Attr("symbol-info","main 0x754 56")), -Annotation(Region(0x78C,0x79F), Attr("section","\".fini\"")), -Annotation(Region(0x7A0,0x7A3), Attr("section","\".rodata\"")), -Annotation(Region(0x7A4,0x7DF), Attr("section","\".eh_frame_hdr\"")), -Annotation(Region(0x7E0,0x883), Attr("section","\".eh_frame\"")), -Annotation(Region(0x10D88,0x1100F), Attr("segment","03 0x10D88 664")), -Annotation(Region(0x10D90,0x10D97), Attr("section","\".fini_array\"")), -Annotation(Region(0x10D98,0x10F87), Attr("section","\".dynamic\"")), -Annotation(Region(0x10F88,0x10FFF), Attr("section","\".got\"")), -Annotation(Region(0x11000,0x1100F), Attr("section","\".data\"")), -Annotation(Region(0x10D88,0x10D8F), Attr("section","\".init_array\"")), -Annotation(Region(0x640,0x78B), Attr("section","\".text\"")), -Annotation(Region(0x640,0x78B), Attr("code-region","()")), -Annotation(Region(0x78C,0x79F), Attr("code-region","()"))]), -Program(Tid(1_440, "%000005a0"), Attrs([]), - Subs([Sub(Tid(1_386, "@__cxa_finalize"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x600"), -Attr("stub","()")]), "__cxa_finalize", Args([Arg(Tid(1_441, "%000005a1"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("__cxa_finalize_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(901, "@__cxa_finalize"), - Attrs([Attr("address","0x600")]), Phis([]), -Defs([Def(Tid(1_149, "%0000047d"), Attrs([Attr("address","0x600"), -Attr("insn","adrp x16, #65536")]), Var("R16",Imm(64)), Int(65536,64)), -Def(Tid(1_156, "%00000484"), Attrs([Attr("address","0x604"), -Attr("insn","ldr x17, [x16, #0xfa8]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(4008,64)),LittleEndian(),64)), -Def(Tid(1_162, "%0000048a"), Attrs([Attr("address","0x608"), -Attr("insn","add x16, x16, #0xfa8")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(4008,64)))]), Jmps([Call(Tid(1_167, "%0000048f"), - Attrs([Attr("address","0x60C"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), -Sub(Tid(1_387, "@__do_global_dtors_aux"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x700")]), - "__do_global_dtors_aux", Args([Arg(Tid(1_442, "%000005a2"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("__do_global_dtors_aux_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(646, "@__do_global_dtors_aux"), - Attrs([Attr("address","0x700")]), Phis([]), Defs([Def(Tid(650, "%0000028a"), - Attrs([Attr("address","0x700"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("#3",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(18446744073709551584,64))), -Def(Tid(656, "%00000290"), Attrs([Attr("address","0x700"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("#3",Imm(64)),Var("R29",Imm(64)),LittleEndian(),64)), -Def(Tid(662, "%00000296"), Attrs([Attr("address","0x700"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("#3",Imm(64)),Int(8,64)),Var("R30",Imm(64)),LittleEndian(),64)), -Def(Tid(666, "%0000029a"), Attrs([Attr("address","0x700"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("R31",Imm(64)), -Var("#3",Imm(64))), Def(Tid(672, "%000002a0"), - Attrs([Attr("address","0x704"), Attr("insn","mov x29, sp")]), - Var("R29",Imm(64)), Var("R31",Imm(64))), Def(Tid(680, "%000002a8"), - Attrs([Attr("address","0x708"), Attr("insn","str x19, [sp, #0x10]")]), - Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(16,64)),Var("R19",Imm(64)),LittleEndian(),64)), -Def(Tid(685, "%000002ad"), Attrs([Attr("address","0x70C"), -Attr("insn","adrp x19, #69632")]), Var("R19",Imm(64)), Int(69632,64)), -Def(Tid(692, "%000002b4"), Attrs([Attr("address","0x710"), -Attr("insn","ldrb w0, [x19, #0x10]")]), Var("R0",Imm(64)), -UNSIGNED(64,Load(Var("mem",Mem(64,8)),PLUS(Var("R19",Imm(64)),Int(16,64)),LittleEndian(),8)))]), -Jmps([Goto(Tid(699, "%000002bb"), Attrs([Attr("address","0x714"), -Attr("insn","cbnz w0, #0x28")]), - NEQ(Extract(31,0,Var("R0",Imm(64))),Int(0,32)), -Direct(Tid(697, "%000002b9"))), Goto(Tid(1_428, "%00000594"), Attrs([]), - Int(1,1), Direct(Tid(846, "%0000034e")))])), Blk(Tid(846, "%0000034e"), - Attrs([Attr("address","0x718")]), Phis([]), Defs([Def(Tid(849, "%00000351"), - Attrs([Attr("address","0x718"), Attr("insn","adrp x0, #65536")]), - Var("R0",Imm(64)), Int(65536,64)), Def(Tid(856, "%00000358"), - Attrs([Attr("address","0x71C"), Attr("insn","ldr x0, [x0, #0xfd0]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(4048,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(862, "%0000035e"), Attrs([Attr("address","0x720"), -Attr("insn","cbz x0, #0x10")]), EQ(Var("R0",Imm(64)),Int(0,64)), -Direct(Tid(860, "%0000035c"))), Goto(Tid(1_429, "%00000595"), Attrs([]), - Int(1,1), Direct(Tid(885, "%00000375")))])), Blk(Tid(885, "%00000375"), - Attrs([Attr("address","0x724")]), Phis([]), Defs([Def(Tid(888, "%00000378"), - Attrs([Attr("address","0x724"), Attr("insn","adrp x0, #69632")]), - Var("R0",Imm(64)), Int(69632,64)), Def(Tid(895, "%0000037f"), - Attrs([Attr("address","0x728"), Attr("insn","ldr x0, [x0, #0x8]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(900, "%00000384"), Attrs([Attr("address","0x72C"), -Attr("insn","bl #-0x12c")]), Var("R30",Imm(64)), Int(1840,64))]), -Jmps([Call(Tid(903, "%00000387"), Attrs([Attr("address","0x72C"), -Attr("insn","bl #-0x12c")]), Int(1,1), -(Direct(Tid(1_386, "@__cxa_finalize")),Direct(Tid(860, "%0000035c"))))])), -Blk(Tid(860, "%0000035c"), Attrs([Attr("address","0x730")]), Phis([]), -Defs([Def(Tid(868, "%00000364"), Attrs([Attr("address","0x730"), -Attr("insn","bl #-0xa0")]), Var("R30",Imm(64)), Int(1844,64))]), -Jmps([Call(Tid(870, "%00000366"), Attrs([Attr("address","0x730"), -Attr("insn","bl #-0xa0")]), Int(1,1), -(Direct(Tid(1_400, "@deregister_tm_clones")),Direct(Tid(872, "%00000368"))))])), -Blk(Tid(872, "%00000368"), Attrs([Attr("address","0x734")]), Phis([]), -Defs([Def(Tid(875, "%0000036b"), Attrs([Attr("address","0x734"), -Attr("insn","mov w0, #0x1")]), Var("R0",Imm(64)), Int(1,64)), -Def(Tid(883, "%00000373"), Attrs([Attr("address","0x738"), -Attr("insn","strb w0, [x19, #0x10]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R19",Imm(64)),Int(16,64)),Extract(7,0,Var("R0",Imm(64))),LittleEndian(),8))]), -Jmps([Goto(Tid(1_430, "%00000596"), Attrs([]), Int(1,1), -Direct(Tid(697, "%000002b9")))])), Blk(Tid(697, "%000002b9"), - Attrs([Attr("address","0x73C")]), Phis([]), Defs([Def(Tid(707, "%000002c3"), - Attrs([Attr("address","0x73C"), Attr("insn","ldr x19, [sp, #0x10]")]), - Var("R19",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(16,64)),LittleEndian(),64)), -Def(Tid(714, "%000002ca"), Attrs([Attr("address","0x740"), -Attr("insn","ldp x29, x30, [sp], #0x20")]), Var("R29",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(719, "%000002cf"), Attrs([Attr("address","0x740"), -Attr("insn","ldp x29, x30, [sp], #0x20")]), Var("R30",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(723, "%000002d3"), Attrs([Attr("address","0x740"), -Attr("insn","ldp x29, x30, [sp], #0x20")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(32,64)))]), Jmps([Call(Tid(728, "%000002d8"), - Attrs([Attr("address","0x744"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), Sub(Tid(1_391, "@__libc_start_main"), - Attrs([Attr("c.proto","signed (*)(signed (*)(signed , char** , char** );* main, signed , char** , \nvoid* auxv)"), -Attr("address","0x5F0"), Attr("stub","()")]), "__libc_start_main", - Args([Arg(Tid(1_443, "%000005a3"), - Attrs([Attr("c.layout","**[ : 64]"), -Attr("c.data","Top:u64 ptr ptr"), -Attr("c.type","signed (*)(signed , char** , char** );*")]), - Var("__libc_start_main_main",Imm(64)), Var("R0",Imm(64)), In()), -Arg(Tid(1_444, "%000005a4"), Attrs([Attr("c.layout","[signed : 32]"), -Attr("c.data","Top:u32"), Attr("c.type","signed")]), - Var("__libc_start_main_arg2",Imm(32)), LOW(32,Var("R1",Imm(64))), In()), -Arg(Tid(1_445, "%000005a5"), Attrs([Attr("c.layout","**[char : 8]"), -Attr("c.data","Top:u8 ptr ptr"), Attr("c.type","char**")]), - Var("__libc_start_main_arg3",Imm(64)), Var("R2",Imm(64)), Both()), -Arg(Tid(1_446, "%000005a6"), Attrs([Attr("c.layout","*[ : 8]"), -Attr("c.data","{} ptr"), Attr("c.type","void*")]), - Var("__libc_start_main_auxv",Imm(64)), Var("R3",Imm(64)), Both()), -Arg(Tid(1_447, "%000005a7"), Attrs([Attr("c.layout","[signed : 32]"), -Attr("c.data","Top:u32"), Attr("c.type","signed")]), - Var("__libc_start_main_result",Imm(32)), LOW(32,Var("R0",Imm(64))), -Out())]), Blks([Blk(Tid(479, "@__libc_start_main"), - Attrs([Attr("address","0x5F0")]), Phis([]), -Defs([Def(Tid(1_127, "%00000467"), Attrs([Attr("address","0x5F0"), -Attr("insn","adrp x16, #65536")]), Var("R16",Imm(64)), Int(65536,64)), -Def(Tid(1_134, "%0000046e"), Attrs([Attr("address","0x5F4"), -Attr("insn","ldr x17, [x16, #0xfa0]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(4000,64)),LittleEndian(),64)), -Def(Tid(1_140, "%00000474"), Attrs([Attr("address","0x5F8"), -Attr("insn","add x16, x16, #0xfa0")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(4000,64)))]), Jmps([Call(Tid(1_145, "%00000479"), - Attrs([Attr("address","0x5FC"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), Sub(Tid(1_392, "@_fini"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x78C")]), - "_fini", Args([Arg(Tid(1_448, "%000005a8"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("_fini_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(31, "@_fini"), - Attrs([Attr("address","0x78C")]), Phis([]), Defs([Def(Tid(37, "%00000025"), - Attrs([Attr("address","0x790"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("#0",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(18446744073709551600,64))), -Def(Tid(43, "%0000002b"), Attrs([Attr("address","0x790"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("#0",Imm(64)),Var("R29",Imm(64)),LittleEndian(),64)), -Def(Tid(49, "%00000031"), Attrs([Attr("address","0x790"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("#0",Imm(64)),Int(8,64)),Var("R30",Imm(64)),LittleEndian(),64)), -Def(Tid(53, "%00000035"), Attrs([Attr("address","0x790"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("R31",Imm(64)), -Var("#0",Imm(64))), Def(Tid(59, "%0000003b"), Attrs([Attr("address","0x794"), -Attr("insn","mov x29, sp")]), Var("R29",Imm(64)), Var("R31",Imm(64))), -Def(Tid(66, "%00000042"), Attrs([Attr("address","0x798"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R29",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(71, "%00000047"), Attrs([Attr("address","0x798"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R30",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(75, "%0000004b"), Attrs([Attr("address","0x798"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(16,64)))]), Jmps([Call(Tid(80, "%00000050"), - Attrs([Attr("address","0x79C"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), Sub(Tid(1_393, "@_init"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x5B0")]), - "_init", Args([Arg(Tid(1_449, "%000005a9"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("_init_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(1_239, "@_init"), - Attrs([Attr("address","0x5B0")]), Phis([]), -Defs([Def(Tid(1_245, "%000004dd"), Attrs([Attr("address","0x5B4"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("#6",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(18446744073709551600,64))), -Def(Tid(1_251, "%000004e3"), Attrs([Attr("address","0x5B4"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("#6",Imm(64)),Var("R29",Imm(64)),LittleEndian(),64)), -Def(Tid(1_257, "%000004e9"), Attrs([Attr("address","0x5B4"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("#6",Imm(64)),Int(8,64)),Var("R30",Imm(64)),LittleEndian(),64)), -Def(Tid(1_261, "%000004ed"), Attrs([Attr("address","0x5B4"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("R31",Imm(64)), -Var("#6",Imm(64))), Def(Tid(1_267, "%000004f3"), - Attrs([Attr("address","0x5B8"), Attr("insn","mov x29, sp")]), - Var("R29",Imm(64)), Var("R31",Imm(64))), Def(Tid(1_272, "%000004f8"), - Attrs([Attr("address","0x5BC"), Attr("insn","bl #0xb8")]), - Var("R30",Imm(64)), Int(1472,64))]), Jmps([Call(Tid(1_274, "%000004fa"), - Attrs([Attr("address","0x5BC"), Attr("insn","bl #0xb8")]), Int(1,1), -(Direct(Tid(1_398, "@call_weak_fn")),Direct(Tid(1_276, "%000004fc"))))])), -Blk(Tid(1_276, "%000004fc"), Attrs([Attr("address","0x5C0")]), Phis([]), -Defs([Def(Tid(1_281, "%00000501"), Attrs([Attr("address","0x5C0"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R29",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(1_286, "%00000506"), Attrs([Attr("address","0x5C0"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R30",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(1_290, "%0000050a"), Attrs([Attr("address","0x5C0"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(16,64)))]), Jmps([Call(Tid(1_295, "%0000050f"), - Attrs([Attr("address","0x5C4"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), Sub(Tid(1_394, "@_start"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x640"), -Attr("entry-point","()")]), "_start", Args([Arg(Tid(1_450, "%000005aa"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("_start_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(416, "@_start"), - Attrs([Attr("address","0x640")]), Phis([]), Defs([Def(Tid(421, "%000001a5"), - Attrs([Attr("address","0x644"), Attr("insn","mov x29, #0x0")]), - Var("R29",Imm(64)), Int(0,64)), Def(Tid(426, "%000001aa"), - Attrs([Attr("address","0x648"), Attr("insn","mov x30, #0x0")]), - Var("R30",Imm(64)), Int(0,64)), Def(Tid(432, "%000001b0"), - Attrs([Attr("address","0x64C"), Attr("insn","mov x5, x0")]), - Var("R5",Imm(64)), Var("R0",Imm(64))), Def(Tid(439, "%000001b7"), - Attrs([Attr("address","0x650"), Attr("insn","ldr x1, [sp]")]), - Var("R1",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(445, "%000001bd"), Attrs([Attr("address","0x654"), -Attr("insn","add x2, sp, #0x8")]), Var("R2",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(8,64))), Def(Tid(451, "%000001c3"), - Attrs([Attr("address","0x658"), Attr("insn","mov x6, sp")]), - Var("R6",Imm(64)), Var("R31",Imm(64))), Def(Tid(456, "%000001c8"), - Attrs([Attr("address","0x65C"), Attr("insn","adrp x0, #65536")]), - Var("R0",Imm(64)), Int(65536,64)), Def(Tid(463, "%000001cf"), - Attrs([Attr("address","0x660"), Attr("insn","ldr x0, [x0, #0xff0]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(4080,64)),LittleEndian(),64)), -Def(Tid(468, "%000001d4"), Attrs([Attr("address","0x664"), -Attr("insn","mov x3, #0x0")]), Var("R3",Imm(64)), Int(0,64)), -Def(Tid(473, "%000001d9"), Attrs([Attr("address","0x668"), -Attr("insn","mov x4, #0x0")]), Var("R4",Imm(64)), Int(0,64)), -Def(Tid(478, "%000001de"), Attrs([Attr("address","0x66C"), -Attr("insn","bl #-0x7c")]), Var("R30",Imm(64)), Int(1648,64))]), -Jmps([Call(Tid(481, "%000001e1"), Attrs([Attr("address","0x66C"), -Attr("insn","bl #-0x7c")]), Int(1,1), -(Direct(Tid(1_391, "@__libc_start_main")),Direct(Tid(483, "%000001e3"))))])), -Blk(Tid(483, "%000001e3"), Attrs([Attr("address","0x670")]), Phis([]), -Defs([Def(Tid(486, "%000001e6"), Attrs([Attr("address","0x670"), -Attr("insn","bl #-0x50")]), Var("R30",Imm(64)), Int(1652,64))]), -Jmps([Call(Tid(489, "%000001e9"), Attrs([Attr("address","0x670"), -Attr("insn","bl #-0x50")]), Int(1,1), -(Direct(Tid(1_397, "@abort")),Direct(Tid(1_431, "%00000597"))))])), -Blk(Tid(1_431, "%00000597"), Attrs([]), Phis([]), Defs([]), -Jmps([Call(Tid(1_432, "%00000598"), Attrs([]), Int(1,1), -(Direct(Tid(1_398, "@call_weak_fn")),))]))])), Sub(Tid(1_397, "@abort"), - Attrs([Attr("noreturn","()"), Attr("c.proto","void (*)(void)"), -Attr("address","0x620"), Attr("stub","()")]), "abort", Args([]), -Blks([Blk(Tid(487, "@abort"), Attrs([Attr("address","0x620")]), Phis([]), -Defs([Def(Tid(1_193, "%000004a9"), Attrs([Attr("address","0x620"), -Attr("insn","adrp x16, #65536")]), Var("R16",Imm(64)), Int(65536,64)), -Def(Tid(1_200, "%000004b0"), Attrs([Attr("address","0x624"), -Attr("insn","ldr x17, [x16, #0xfb8]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(4024,64)),LittleEndian(),64)), -Def(Tid(1_206, "%000004b6"), Attrs([Attr("address","0x628"), -Attr("insn","add x16, x16, #0xfb8")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(4024,64)))]), Jmps([Call(Tid(1_211, "%000004bb"), - Attrs([Attr("address","0x62C"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), Sub(Tid(1_398, "@call_weak_fn"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x674")]), - "call_weak_fn", Args([Arg(Tid(1_451, "%000005ab"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("call_weak_fn_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(491, "@call_weak_fn"), - Attrs([Attr("address","0x674")]), Phis([]), Defs([Def(Tid(494, "%000001ee"), - Attrs([Attr("address","0x674"), Attr("insn","adrp x0, #65536")]), - Var("R0",Imm(64)), Int(65536,64)), Def(Tid(501, "%000001f5"), - Attrs([Attr("address","0x678"), Attr("insn","ldr x0, [x0, #0xfe8]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(4072,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(507, "%000001fb"), Attrs([Attr("address","0x67C"), -Attr("insn","cbz x0, #0x8")]), EQ(Var("R0",Imm(64)),Int(0,64)), -Direct(Tid(505, "%000001f9"))), Goto(Tid(1_433, "%00000599"), Attrs([]), - Int(1,1), Direct(Tid(965, "%000003c5")))])), Blk(Tid(505, "%000001f9"), - Attrs([Attr("address","0x684")]), Phis([]), Defs([]), -Jmps([Call(Tid(513, "%00000201"), Attrs([Attr("address","0x684"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))])), -Blk(Tid(965, "%000003c5"), Attrs([Attr("address","0x680")]), Phis([]), -Defs([]), Jmps([Goto(Tid(968, "%000003c8"), Attrs([Attr("address","0x680"), -Attr("insn","b #-0x70")]), Int(1,1), Direct(Tid(966, "@__gmon_start__")))])), -Blk(Tid(966, "@__gmon_start__"), Attrs([Attr("address","0x610")]), Phis([]), -Defs([Def(Tid(1_171, "%00000493"), Attrs([Attr("address","0x610"), -Attr("insn","adrp x16, #65536")]), Var("R16",Imm(64)), Int(65536,64)), -Def(Tid(1_178, "%0000049a"), Attrs([Attr("address","0x614"), -Attr("insn","ldr x17, [x16, #0xfb0]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(4016,64)),LittleEndian(),64)), -Def(Tid(1_184, "%000004a0"), Attrs([Attr("address","0x618"), -Attr("insn","add x16, x16, #0xfb0")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(4016,64)))]), Jmps([Call(Tid(1_189, "%000004a5"), - Attrs([Attr("address","0x61C"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), -Sub(Tid(1_400, "@deregister_tm_clones"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x690")]), - "deregister_tm_clones", Args([Arg(Tid(1_452, "%000005ac"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("deregister_tm_clones_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(519, "@deregister_tm_clones"), - Attrs([Attr("address","0x690")]), Phis([]), Defs([Def(Tid(522, "%0000020a"), - Attrs([Attr("address","0x690"), Attr("insn","adrp x0, #69632")]), - Var("R0",Imm(64)), Int(69632,64)), Def(Tid(528, "%00000210"), - Attrs([Attr("address","0x694"), Attr("insn","add x0, x0, #0x10")]), - Var("R0",Imm(64)), PLUS(Var("R0",Imm(64)),Int(16,64))), -Def(Tid(533, "%00000215"), Attrs([Attr("address","0x698"), -Attr("insn","adrp x1, #69632")]), Var("R1",Imm(64)), Int(69632,64)), -Def(Tid(539, "%0000021b"), Attrs([Attr("address","0x69C"), -Attr("insn","add x1, x1, #0x10")]), Var("R1",Imm(64)), -PLUS(Var("R1",Imm(64)),Int(16,64))), Def(Tid(545, "%00000221"), - Attrs([Attr("address","0x6A0"), Attr("insn","cmp x1, x0")]), - Var("#1",Imm(64)), NOT(Var("R0",Imm(64)))), Def(Tid(550, "%00000226"), - Attrs([Attr("address","0x6A0"), Attr("insn","cmp x1, x0")]), - Var("#2",Imm(64)), PLUS(Var("R1",Imm(64)),NOT(Var("R0",Imm(64))))), -Def(Tid(556, "%0000022c"), Attrs([Attr("address","0x6A0"), -Attr("insn","cmp x1, x0")]), Var("VF",Imm(1)), -NEQ(SIGNED(65,PLUS(Var("#2",Imm(64)),Int(1,64))),PLUS(PLUS(SIGNED(65,Var("R1",Imm(64))),SIGNED(65,Var("#1",Imm(64)))),Int(1,65)))), -Def(Tid(562, "%00000232"), Attrs([Attr("address","0x6A0"), -Attr("insn","cmp x1, x0")]), Var("CF",Imm(1)), -NEQ(UNSIGNED(65,PLUS(Var("#2",Imm(64)),Int(1,64))),PLUS(PLUS(UNSIGNED(65,Var("R1",Imm(64))),UNSIGNED(65,Var("#1",Imm(64)))),Int(1,65)))), -Def(Tid(566, "%00000236"), Attrs([Attr("address","0x6A0"), -Attr("insn","cmp x1, x0")]), Var("ZF",Imm(1)), -EQ(PLUS(Var("#2",Imm(64)),Int(1,64)),Int(0,64))), Def(Tid(570, "%0000023a"), - Attrs([Attr("address","0x6A0"), Attr("insn","cmp x1, x0")]), - Var("NF",Imm(1)), Extract(63,63,PLUS(Var("#2",Imm(64)),Int(1,64))))]), -Jmps([Goto(Tid(576, "%00000240"), Attrs([Attr("address","0x6A4"), -Attr("insn","b.eq #0x18")]), EQ(Var("ZF",Imm(1)),Int(1,1)), -Direct(Tid(574, "%0000023e"))), Goto(Tid(1_434, "%0000059a"), Attrs([]), - Int(1,1), Direct(Tid(935, "%000003a7")))])), Blk(Tid(935, "%000003a7"), - Attrs([Attr("address","0x6A8")]), Phis([]), Defs([Def(Tid(938, "%000003aa"), - Attrs([Attr("address","0x6A8"), Attr("insn","adrp x1, #65536")]), - Var("R1",Imm(64)), Int(65536,64)), Def(Tid(945, "%000003b1"), - Attrs([Attr("address","0x6AC"), Attr("insn","ldr x1, [x1, #0xfc8]")]), - Var("R1",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R1",Imm(64)),Int(4040,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(950, "%000003b6"), Attrs([Attr("address","0x6B0"), -Attr("insn","cbz x1, #0xc")]), EQ(Var("R1",Imm(64)),Int(0,64)), -Direct(Tid(574, "%0000023e"))), Goto(Tid(1_435, "%0000059b"), Attrs([]), - Int(1,1), Direct(Tid(954, "%000003ba")))])), Blk(Tid(574, "%0000023e"), - Attrs([Attr("address","0x6BC")]), Phis([]), Defs([]), -Jmps([Call(Tid(582, "%00000246"), Attrs([Attr("address","0x6BC"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))])), -Blk(Tid(954, "%000003ba"), Attrs([Attr("address","0x6B4")]), Phis([]), -Defs([Def(Tid(958, "%000003be"), Attrs([Attr("address","0x6B4"), -Attr("insn","mov x16, x1")]), Var("R16",Imm(64)), Var("R1",Imm(64)))]), -Jmps([Call(Tid(963, "%000003c3"), Attrs([Attr("address","0x6B8"), -Attr("insn","br x16")]), Int(1,1), (Indirect(Var("R16",Imm(64))),))]))])), -Sub(Tid(1_403, "@frame_dummy"), Attrs([Attr("c.proto","signed (*)(void)"), -Attr("address","0x750")]), "frame_dummy", Args([Arg(Tid(1_453, "%000005ad"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("frame_dummy_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(734, "@frame_dummy"), - Attrs([Attr("address","0x750")]), Phis([]), Defs([]), -Jmps([Call(Tid(736, "%000002e0"), Attrs([Attr("address","0x750"), -Attr("insn","b #-0x90")]), Int(1,1), -(Direct(Tid(1_407, "@register_tm_clones")),))]))])), Sub(Tid(1_404, "@main"), - Attrs([Attr("c.proto","signed (*)(signed argc, const char** argv)"), -Attr("address","0x754")]), "main", Args([Arg(Tid(1_454, "%000005ae"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("main_argc",Imm(32)), -LOW(32,Var("R0",Imm(64))), In()), Arg(Tid(1_455, "%000005af"), - Attrs([Attr("c.layout","**[char : 8]"), Attr("c.data","Top:u8 ptr ptr"), -Attr("c.type"," const char**")]), Var("main_argv",Imm(64)), -Var("R1",Imm(64)), Both()), Arg(Tid(1_456, "%000005b0"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("main_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(738, "@main"), - Attrs([Attr("address","0x754")]), Phis([]), Defs([Def(Tid(742, "%000002e6"), - Attrs([Attr("address","0x754"), Attr("insn","sub sp, sp, #0x10")]), - Var("R31",Imm(64)), PLUS(Var("R31",Imm(64)),Int(18446744073709551600,64))), -Def(Tid(749, "%000002ed"), Attrs([Attr("address","0x758"), -Attr("insn","str wzr, [sp, #0xc]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(12,64)),Int(0,32),LittleEndian(),32)), -Def(Tid(754, "%000002f2"), Attrs([Attr("address","0x75C"), -Attr("insn","adrp x0, #65536")]), Var("R0",Imm(64)), Int(65536,64)), -Def(Tid(761, "%000002f9"), Attrs([Attr("address","0x760"), -Attr("insn","ldr x0, [x0, #0xfd8]")]), Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(4056,64)),LittleEndian(),64)), -Def(Tid(768, "%00000300"), Attrs([Attr("address","0x764"), -Attr("insn","ldr w0, [x0]")]), Var("R0",Imm(64)), -UNSIGNED(64,Load(Var("mem",Mem(64,8)),Var("R0",Imm(64)),LittleEndian(),32))), -Def(Tid(774, "%00000306"), Attrs([Attr("address","0x768"), -Attr("insn","cmp w0, #0x0")]), Var("#4",Imm(32)), -PLUS(Extract(31,0,Var("R0",Imm(64))),Int(4294967295,32))), -Def(Tid(779, "%0000030b"), Attrs([Attr("address","0x768"), -Attr("insn","cmp w0, #0x0")]), Var("VF",Imm(1)), -NEQ(SIGNED(33,PLUS(Var("#4",Imm(32)),Int(1,32))),PLUS(SIGNED(33,Extract(31,0,Var("R0",Imm(64)))),Int(0,33)))), -Def(Tid(784, "%00000310"), Attrs([Attr("address","0x768"), -Attr("insn","cmp w0, #0x0")]), Var("CF",Imm(1)), -NEQ(UNSIGNED(33,PLUS(Var("#4",Imm(32)),Int(1,32))),PLUS(UNSIGNED(33,Extract(31,0,Var("R0",Imm(64)))),Int(4294967296,33)))), -Def(Tid(788, "%00000314"), Attrs([Attr("address","0x768"), -Attr("insn","cmp w0, #0x0")]), Var("ZF",Imm(1)), -EQ(PLUS(Var("#4",Imm(32)),Int(1,32)),Int(0,32))), Def(Tid(792, "%00000318"), - Attrs([Attr("address","0x768"), Attr("insn","cmp w0, #0x0")]), - Var("NF",Imm(1)), Extract(31,31,PLUS(Var("#4",Imm(32)),Int(1,32))))]), -Jmps([Goto(Tid(798, "%0000031e"), Attrs([Attr("address","0x76C"), -Attr("insn","b.ne #0x14")]), NEQ(Var("ZF",Imm(1)),Int(1,1)), -Direct(Tid(796, "%0000031c"))), Goto(Tid(1_436, "%0000059c"), Attrs([]), - Int(1,1), Direct(Tid(819, "%00000333")))])), Blk(Tid(819, "%00000333"), - Attrs([Attr("address","0x770")]), Phis([]), Defs([Def(Tid(822, "%00000336"), - Attrs([Attr("address","0x770"), Attr("insn","adrp x0, #65536")]), - Var("R0",Imm(64)), Int(65536,64)), Def(Tid(829, "%0000033d"), - Attrs([Attr("address","0x774"), Attr("insn","ldr x0, [x0, #0xfe0]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(4064,64)),LittleEndian(),64)), -Def(Tid(836, "%00000344"), Attrs([Attr("address","0x778"), -Attr("insn","ldr w0, [x0]")]), Var("R0",Imm(64)), -UNSIGNED(64,Load(Var("mem",Mem(64,8)),Var("R0",Imm(64)),LittleEndian(),32))), -Def(Tid(844, "%0000034c"), Attrs([Attr("address","0x77C"), -Attr("insn","str w0, [sp, #0xc]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(12,64)),Extract(31,0,Var("R0",Imm(64))),LittleEndian(),32))]), -Jmps([Goto(Tid(1_437, "%0000059d"), Attrs([]), Int(1,1), -Direct(Tid(796, "%0000031c")))])), Blk(Tid(796, "%0000031c"), - Attrs([Attr("address","0x780")]), Phis([]), Defs([Def(Tid(806, "%00000326"), - Attrs([Attr("address","0x780"), Attr("insn","ldr w0, [sp, #0xc]")]), - Var("R0",Imm(64)), -UNSIGNED(64,Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(12,64)),LittleEndian(),32))), -Def(Tid(812, "%0000032c"), Attrs([Attr("address","0x784"), -Attr("insn","add sp, sp, #0x10")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(16,64)))]), Jmps([Call(Tid(817, "%00000331"), - Attrs([Attr("address","0x788"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), -Sub(Tid(1_407, "@register_tm_clones"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x6C0")]), - "register_tm_clones", Args([Arg(Tid(1_457, "%000005b1"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("register_tm_clones_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(584, "@register_tm_clones"), Attrs([Attr("address","0x6C0")]), - Phis([]), Defs([Def(Tid(587, "%0000024b"), Attrs([Attr("address","0x6C0"), -Attr("insn","adrp x0, #69632")]), Var("R0",Imm(64)), Int(69632,64)), -Def(Tid(593, "%00000251"), Attrs([Attr("address","0x6C4"), -Attr("insn","add x0, x0, #0x10")]), Var("R0",Imm(64)), -PLUS(Var("R0",Imm(64)),Int(16,64))), Def(Tid(598, "%00000256"), - Attrs([Attr("address","0x6C8"), Attr("insn","adrp x1, #69632")]), - Var("R1",Imm(64)), Int(69632,64)), Def(Tid(604, "%0000025c"), - Attrs([Attr("address","0x6CC"), Attr("insn","add x1, x1, #0x10")]), - Var("R1",Imm(64)), PLUS(Var("R1",Imm(64)),Int(16,64))), -Def(Tid(611, "%00000263"), Attrs([Attr("address","0x6D0"), -Attr("insn","sub x1, x1, x0")]), Var("R1",Imm(64)), -PLUS(PLUS(Var("R1",Imm(64)),NOT(Var("R0",Imm(64)))),Int(1,64))), -Def(Tid(617, "%00000269"), Attrs([Attr("address","0x6D4"), -Attr("insn","lsr x2, x1, #63")]), Var("R2",Imm(64)), -Concat(Int(0,63),Extract(63,63,Var("R1",Imm(64))))), -Def(Tid(624, "%00000270"), Attrs([Attr("address","0x6D8"), -Attr("insn","add x1, x2, x1, asr #3")]), Var("R1",Imm(64)), -PLUS(Var("R2",Imm(64)),ARSHIFT(Var("R1",Imm(64)),Int(3,3)))), -Def(Tid(630, "%00000276"), Attrs([Attr("address","0x6DC"), -Attr("insn","asr x1, x1, #1")]), Var("R1",Imm(64)), -SIGNED(64,Extract(63,1,Var("R1",Imm(64)))))]), -Jmps([Goto(Tid(636, "%0000027c"), Attrs([Attr("address","0x6E0"), -Attr("insn","cbz x1, #0x18")]), EQ(Var("R1",Imm(64)),Int(0,64)), -Direct(Tid(634, "%0000027a"))), Goto(Tid(1_438, "%0000059e"), Attrs([]), - Int(1,1), Direct(Tid(905, "%00000389")))])), Blk(Tid(905, "%00000389"), - Attrs([Attr("address","0x6E4")]), Phis([]), Defs([Def(Tid(908, "%0000038c"), - Attrs([Attr("address","0x6E4"), Attr("insn","adrp x2, #65536")]), - Var("R2",Imm(64)), Int(65536,64)), Def(Tid(915, "%00000393"), - Attrs([Attr("address","0x6E8"), Attr("insn","ldr x2, [x2, #0xff8]")]), - Var("R2",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R2",Imm(64)),Int(4088,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(920, "%00000398"), Attrs([Attr("address","0x6EC"), -Attr("insn","cbz x2, #0xc")]), EQ(Var("R2",Imm(64)),Int(0,64)), -Direct(Tid(634, "%0000027a"))), Goto(Tid(1_439, "%0000059f"), Attrs([]), - Int(1,1), Direct(Tid(924, "%0000039c")))])), Blk(Tid(634, "%0000027a"), - Attrs([Attr("address","0x6F8")]), Phis([]), Defs([]), -Jmps([Call(Tid(642, "%00000282"), Attrs([Attr("address","0x6F8"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))])), -Blk(Tid(924, "%0000039c"), Attrs([Attr("address","0x6F0")]), Phis([]), -Defs([Def(Tid(928, "%000003a0"), Attrs([Attr("address","0x6F0"), -Attr("insn","mov x16, x2")]), Var("R16",Imm(64)), Var("R2",Imm(64)))]), -Jmps([Call(Tid(933, "%000003a5"), Attrs([Attr("address","0x6F4"), -Attr("insn","br x16")]), Int(1,1), -(Indirect(Var("R16",Imm(64))),))]))]))]))) \ No newline at end of file diff --git a/src/test/correct/basic_lock_security_read/gcc_pic/basic_lock_security_read.bir b/src/test/correct/basic_lock_security_read/gcc_pic/basic_lock_security_read.bir deleted file mode 100644 index 201834999..000000000 --- a/src/test/correct/basic_lock_security_read/gcc_pic/basic_lock_security_read.bir +++ /dev/null @@ -1,246 +0,0 @@ -000005a0: program -0000056a: sub __cxa_finalize(__cxa_finalize_result) -000005a1: __cxa_finalize_result :: out u32 = low:32[R0] - -00000385: -0000047d: R16 := 0x10000 -00000484: R17 := mem[R16 + 0xFA8, el]:u64 -0000048a: R16 := R16 + 0xFA8 -0000048f: call R17 with noreturn - -0000056b: sub __do_global_dtors_aux(__do_global_dtors_aux_result) -000005a2: __do_global_dtors_aux_result :: out u32 = low:32[R0] - -00000286: -0000028a: #3 := R31 - 0x20 -00000290: mem := mem with [#3, el]:u64 <- R29 -00000296: mem := mem with [#3 + 8, el]:u64 <- R30 -0000029a: R31 := #3 -000002a0: R29 := R31 -000002a8: mem := mem with [R31 + 0x10, el]:u64 <- R19 -000002ad: R19 := 0x11000 -000002b4: R0 := pad:64[mem[R19 + 0x10]] -000002bb: when 31:0[R0] <> 0 goto %000002b9 -00000594: goto %0000034e - -0000034e: -00000351: R0 := 0x10000 -00000358: R0 := mem[R0 + 0xFD0, el]:u64 -0000035e: when R0 = 0 goto %0000035c -00000595: goto %00000375 - -00000375: -00000378: R0 := 0x11000 -0000037f: R0 := mem[R0 + 8, el]:u64 -00000384: R30 := 0x730 -00000387: call @__cxa_finalize with return %0000035c - -0000035c: -00000364: R30 := 0x734 -00000366: call @deregister_tm_clones with return %00000368 - -00000368: -0000036b: R0 := 1 -00000373: mem := mem with [R19 + 0x10] <- 7:0[R0] -00000596: goto %000002b9 - -000002b9: -000002c3: R19 := mem[R31 + 0x10, el]:u64 -000002ca: R29 := mem[R31, el]:u64 -000002cf: R30 := mem[R31 + 8, el]:u64 -000002d3: R31 := R31 + 0x20 -000002d8: call R30 with noreturn - -0000056f: sub __libc_start_main(__libc_start_main_main, __libc_start_main_arg2, __libc_start_main_arg3, __libc_start_main_auxv, __libc_start_main_result) -000005a3: __libc_start_main_main :: in u64 = R0 -000005a4: __libc_start_main_arg2 :: in u32 = low:32[R1] -000005a5: __libc_start_main_arg3 :: in out u64 = R2 -000005a6: __libc_start_main_auxv :: in out u64 = R3 -000005a7: __libc_start_main_result :: out u32 = low:32[R0] - -000001df: -00000467: R16 := 0x10000 -0000046e: R17 := mem[R16 + 0xFA0, el]:u64 -00000474: R16 := R16 + 0xFA0 -00000479: call R17 with noreturn - -00000570: sub _fini(_fini_result) -000005a8: _fini_result :: out u32 = low:32[R0] - -0000001f: -00000025: #0 := R31 - 0x10 -0000002b: mem := mem with [#0, el]:u64 <- R29 -00000031: mem := mem with [#0 + 8, el]:u64 <- R30 -00000035: R31 := #0 -0000003b: R29 := R31 -00000042: R29 := mem[R31, el]:u64 -00000047: R30 := mem[R31 + 8, el]:u64 -0000004b: R31 := R31 + 0x10 -00000050: call R30 with noreturn - -00000571: sub _init(_init_result) -000005a9: _init_result :: out u32 = low:32[R0] - -000004d7: -000004dd: #6 := R31 - 0x10 -000004e3: mem := mem with [#6, el]:u64 <- R29 -000004e9: mem := mem with [#6 + 8, el]:u64 <- R30 -000004ed: R31 := #6 -000004f3: R29 := R31 -000004f8: R30 := 0x5C0 -000004fa: call @call_weak_fn with return %000004fc - -000004fc: -00000501: R29 := mem[R31, el]:u64 -00000506: R30 := mem[R31 + 8, el]:u64 -0000050a: R31 := R31 + 0x10 -0000050f: call R30 with noreturn - -00000572: sub _start(_start_result) -000005aa: _start_result :: out u32 = low:32[R0] - -000001a0: -000001a5: R29 := 0 -000001aa: R30 := 0 -000001b0: R5 := R0 -000001b7: R1 := mem[R31, el]:u64 -000001bd: R2 := R31 + 8 -000001c3: R6 := R31 -000001c8: R0 := 0x10000 -000001cf: R0 := mem[R0 + 0xFF0, el]:u64 -000001d4: R3 := 0 -000001d9: R4 := 0 -000001de: R30 := 0x670 -000001e1: call @__libc_start_main with return %000001e3 - -000001e3: -000001e6: R30 := 0x674 -000001e9: call @abort with return %00000597 - -00000597: -00000598: call @call_weak_fn with noreturn - -00000575: sub abort() - - -000001e7: -000004a9: R16 := 0x10000 -000004b0: R17 := mem[R16 + 0xFB8, el]:u64 -000004b6: R16 := R16 + 0xFB8 -000004bb: call R17 with noreturn - -00000576: sub call_weak_fn(call_weak_fn_result) -000005ab: call_weak_fn_result :: out u32 = low:32[R0] - -000001eb: -000001ee: R0 := 0x10000 -000001f5: R0 := mem[R0 + 0xFE8, el]:u64 -000001fb: when R0 = 0 goto %000001f9 -00000599: goto %000003c5 - -000001f9: -00000201: call R30 with noreturn - -000003c5: -000003c8: goto @__gmon_start__ - -000003c6: -00000493: R16 := 0x10000 -0000049a: R17 := mem[R16 + 0xFB0, el]:u64 -000004a0: R16 := R16 + 0xFB0 -000004a5: call R17 with noreturn - -00000578: sub deregister_tm_clones(deregister_tm_clones_result) -000005ac: deregister_tm_clones_result :: out u32 = low:32[R0] - -00000207: -0000020a: R0 := 0x11000 -00000210: R0 := R0 + 0x10 -00000215: R1 := 0x11000 -0000021b: R1 := R1 + 0x10 -00000221: #1 := ~R0 -00000226: #2 := R1 + ~R0 -0000022c: VF := extend:65[#2 + 1] <> extend:65[R1] + extend:65[#1] + 1 -00000232: CF := pad:65[#2 + 1] <> pad:65[R1] + pad:65[#1] + 1 -00000236: ZF := #2 + 1 = 0 -0000023a: NF := 63:63[#2 + 1] -00000240: when ZF goto %0000023e -0000059a: goto %000003a7 - -000003a7: -000003aa: R1 := 0x10000 -000003b1: R1 := mem[R1 + 0xFC8, el]:u64 -000003b6: when R1 = 0 goto %0000023e -0000059b: goto %000003ba - -0000023e: -00000246: call R30 with noreturn - -000003ba: -000003be: R16 := R1 -000003c3: call R16 with noreturn - -0000057b: sub frame_dummy(frame_dummy_result) -000005ad: frame_dummy_result :: out u32 = low:32[R0] - -000002de: -000002e0: call @register_tm_clones with noreturn - -0000057c: sub main(main_argc, main_argv, main_result) -000005ae: main_argc :: in u32 = low:32[R0] -000005af: main_argv :: in out u64 = R1 -000005b0: main_result :: out u32 = low:32[R0] - -000002e2: -000002e6: R31 := R31 - 0x10 -000002ed: mem := mem with [R31 + 0xC, el]:u32 <- 0 -000002f2: R0 := 0x10000 -000002f9: R0 := mem[R0 + 0xFD8, el]:u64 -00000300: R0 := pad:64[mem[R0, el]:u32] -00000306: #4 := 31:0[R0] - 1 -0000030b: VF := extend:33[#4 + 1] <> extend:33[31:0[R0]] + 0 -00000310: CF := pad:33[#4 + 1] <> pad:33[31:0[R0]] - 0x100000000 -00000314: ZF := #4 + 1 = 0 -00000318: NF := 31:31[#4 + 1] -0000031e: when ZF <> 1 goto %0000031c -0000059c: goto %00000333 - -00000333: -00000336: R0 := 0x10000 -0000033d: R0 := mem[R0 + 0xFE0, el]:u64 -00000344: R0 := pad:64[mem[R0, el]:u32] -0000034c: mem := mem with [R31 + 0xC, el]:u32 <- 31:0[R0] -0000059d: goto %0000031c - -0000031c: -00000326: R0 := pad:64[mem[R31 + 0xC, el]:u32] -0000032c: R31 := R31 + 0x10 -00000331: call R30 with noreturn - -0000057f: sub register_tm_clones(register_tm_clones_result) -000005b1: register_tm_clones_result :: out u32 = low:32[R0] - -00000248: -0000024b: R0 := 0x11000 -00000251: R0 := R0 + 0x10 -00000256: R1 := 0x11000 -0000025c: R1 := R1 + 0x10 -00000263: R1 := R1 + ~R0 + 1 -00000269: R2 := 0.63:63[R1] -00000270: R1 := R2 + (R1 ~>> 3) -00000276: R1 := extend:64[63:1[R1]] -0000027c: when R1 = 0 goto %0000027a -0000059e: goto %00000389 - -00000389: -0000038c: R2 := 0x10000 -00000393: R2 := mem[R2 + 0xFF8, el]:u64 -00000398: when R2 = 0 goto %0000027a -0000059f: goto %0000039c - -0000027a: -00000282: call R30 with noreturn - -0000039c: -000003a0: R16 := R2 -000003a5: call R16 with noreturn diff --git a/src/test/correct/basic_lock_security_read/gcc_pic/basic_lock_security_read.expected b/src/test/correct/basic_lock_security_read/gcc_pic/basic_lock_security_read.expected index 1a61b7ece..97a5b446f 100644 --- a/src/test/correct/basic_lock_security_read/gcc_pic/basic_lock_security_read.expected +++ b/src/test/correct/basic_lock_security_read/gcc_pic/basic_lock_security_read.expected @@ -93,7 +93,7 @@ implementation {:extern} guarantee_reflexive() assert ((memory_load32_le(mem, $z_addr) == memory_load32_le(mem, $z_addr)) && (memory_load32_le(mem, $x_addr) == memory_load32_le(mem, $x_addr))); } -procedure main_1876(); +procedure main(); modifies CF, Gamma_CF, Gamma_NF, Gamma_R0, Gamma_R31, Gamma_VF, Gamma_ZF, Gamma_mem, Gamma_stack, NF, R0, R31, VF, ZF, mem, stack; free requires (memory_load64_le(mem, 69632bv64) == 0bv64); free requires (memory_load64_le(mem, 69640bv64) == 69640bv64); @@ -114,20 +114,20 @@ procedure main_1876(); free ensures (memory_load64_le(mem, 69616bv64) == 1876bv64); free ensures (memory_load64_le(mem, 69640bv64) == 69640bv64); -implementation main_1876() +implementation main() { var #4: bv32; + var $load$18: bv64; + var $load$19: bv32; + var $load$20: bv64; + var $load$21: bv32; + var $load$22: bv32; var Gamma_#4: bool; - var Gamma_load18: bool; - var Gamma_load19: bool; - var Gamma_load20: bool; - var Gamma_load21: bool; - var Gamma_load22: bool; - var load18: bv64; - var load19: bv32; - var load20: bv64; - var load21: bv32; - var load22: bv32; + var Gamma_$load$18: bool; + var Gamma_$load$19: bool; + var Gamma_$load$20: bool; + var Gamma_$load$21: bool; + var Gamma_$load$22: bool; lmain: assume {:captureState "lmain"} true; R31, Gamma_R31 := bvadd64(R31, 18446744073709551600bv64), Gamma_R31; @@ -135,11 +135,11 @@ implementation main_1876() assume {:captureState "%000002ed"} true; R0, Gamma_R0 := 65536bv64, true; call rely(); - load18, Gamma_load18 := memory_load64_le(mem, bvadd64(R0, 4056bv64)), (gamma_load64(Gamma_mem, bvadd64(R0, 4056bv64)) || L(mem, bvadd64(R0, 4056bv64))); - R0, Gamma_R0 := load18, Gamma_load18; + $load$18, Gamma_$load$18 := memory_load64_le(mem, bvadd64(R0, 4056bv64)), (gamma_load64(Gamma_mem, bvadd64(R0, 4056bv64)) || L(mem, bvadd64(R0, 4056bv64))); + R0, Gamma_R0 := $load$18, Gamma_$load$18; call rely(); - load19, Gamma_load19 := memory_load32_le(mem, R0), (gamma_load32(Gamma_mem, R0) || L(mem, R0)); - R0, Gamma_R0 := zero_extend32_32(load19), Gamma_load19; + $load$19, Gamma_$load$19 := memory_load32_le(mem, R0), (gamma_load32(Gamma_mem, R0) || L(mem, R0)); + R0, Gamma_R0 := zero_extend32_32($load$19), Gamma_$load$19; #4, Gamma_#4 := bvadd32(R0[32:0], 4294967295bv32), Gamma_R0; VF, Gamma_VF := bvnot1(bvcomp33(sign_extend1_32(bvadd32(#4, 1bv32)), bvadd33(sign_extend1_32(R0[32:0]), 0bv33))), (Gamma_R0 && Gamma_#4); CF, Gamma_CF := bvnot1(bvcomp33(zero_extend1_32(bvadd32(#4, 1bv32)), bvadd33(zero_extend1_32(R0[32:0]), 4294967296bv33))), (Gamma_R0 && Gamma_#4); @@ -147,34 +147,34 @@ implementation main_1876() NF, Gamma_NF := bvadd32(#4, 1bv32)[32:31], Gamma_#4; assert Gamma_ZF; goto lmain_goto_l0000031c, lmain_goto_l00000333; - lmain_goto_l00000333: - assume {:captureState "lmain_goto_l00000333"} true; - assume (bvnot1(bvcomp1(ZF, 1bv1)) == 0bv1); + l00000333: + assume {:captureState "l00000333"} true; R0, Gamma_R0 := 65536bv64, true; call rely(); - load20, Gamma_load20 := memory_load64_le(mem, bvadd64(R0, 4064bv64)), (gamma_load64(Gamma_mem, bvadd64(R0, 4064bv64)) || L(mem, bvadd64(R0, 4064bv64))); - R0, Gamma_R0 := load20, Gamma_load20; + $load$20, Gamma_$load$20 := memory_load64_le(mem, bvadd64(R0, 4064bv64)), (gamma_load64(Gamma_mem, bvadd64(R0, 4064bv64)) || L(mem, bvadd64(R0, 4064bv64))); + R0, Gamma_R0 := $load$20, Gamma_$load$20; call rely(); - load21, Gamma_load21 := memory_load32_le(mem, R0), (gamma_load32(Gamma_mem, R0) || L(mem, R0)); - R0, Gamma_R0 := zero_extend32_32(load21), Gamma_load21; + $load$21, Gamma_$load$21 := memory_load32_le(mem, R0), (gamma_load32(Gamma_mem, R0) || L(mem, R0)); + R0, Gamma_R0 := zero_extend32_32($load$21), Gamma_$load$21; stack, Gamma_stack := memory_store32_le(stack, bvadd64(R31, 12bv64), R0[32:0]), gamma_store32(Gamma_stack, bvadd64(R31, 12bv64), Gamma_R0); assume {:captureState "%0000034c"} true; - goto l00000333; - l00000333: - assume {:captureState "l00000333"} true; goto l0000031c; + l0000031c: + assume {:captureState "l0000031c"} true; + $load$22, Gamma_$load$22 := memory_load32_le(stack, bvadd64(R31, 12bv64)), gamma_load32(Gamma_stack, bvadd64(R31, 12bv64)); + R0, Gamma_R0 := zero_extend32_32($load$22), Gamma_$load$22; + R31, Gamma_R31 := bvadd64(R31, 16bv64), Gamma_R31; + goto main_basil_return; lmain_goto_l0000031c: assume {:captureState "lmain_goto_l0000031c"} true; assume (bvnot1(bvcomp1(ZF, 1bv1)) != 0bv1); goto l0000031c; - l0000031c: - assume {:captureState "l0000031c"} true; - load22, Gamma_load22 := memory_load32_le(stack, bvadd64(R31, 12bv64)), gamma_load32(Gamma_stack, bvadd64(R31, 12bv64)); - R0, Gamma_R0 := zero_extend32_32(load22), Gamma_load22; - R31, Gamma_R31 := bvadd64(R31, 16bv64), Gamma_R31; - goto main_1876_basil_return; - main_1876_basil_return: - assume {:captureState "main_1876_basil_return"} true; + lmain_goto_l00000333: + assume {:captureState "lmain_goto_l00000333"} true; + assume (bvnot1(bvcomp1(ZF, 1bv1)) == 0bv1); + goto l00000333; + main_basil_return: + assume {:captureState "main_basil_return"} true; return; } diff --git a/src/test/correct/basic_lock_security_read/gcc_pic/basic_lock_security_read.gts b/src/test/correct/basic_lock_security_read/gcc_pic/basic_lock_security_read.gts deleted file mode 100644 index d2735a360..000000000 Binary files a/src/test/correct/basic_lock_security_read/gcc_pic/basic_lock_security_read.gts and /dev/null differ diff --git a/src/test/correct/basic_lock_security_read/gcc_pic/basic_lock_security_read.md5sum b/src/test/correct/basic_lock_security_read/gcc_pic/basic_lock_security_read.md5sum new file mode 100644 index 000000000..41b3377fe --- /dev/null +++ b/src/test/correct/basic_lock_security_read/gcc_pic/basic_lock_security_read.md5sum @@ -0,0 +1,5 @@ +0747e543be3e71767f295987e3654ea1 correct/basic_lock_security_read/gcc_pic/a.out +fcafab2c4c0b6c9aad5c7c010aa66ffd correct/basic_lock_security_read/gcc_pic/basic_lock_security_read.adt +076871327686af633a87e379301af310 correct/basic_lock_security_read/gcc_pic/basic_lock_security_read.bir +2c862f75d5e7783e0e4082d4c8cab0ff correct/basic_lock_security_read/gcc_pic/basic_lock_security_read.relf +4df93c221d31a510ecc23bdde5e18399 correct/basic_lock_security_read/gcc_pic/basic_lock_security_read.gts diff --git a/src/test/correct/basic_lock_security_read/gcc_pic/basic_lock_security_read.relf b/src/test/correct/basic_lock_security_read/gcc_pic/basic_lock_security_read.relf deleted file mode 100644 index 992dbe145..000000000 --- a/src/test/correct/basic_lock_security_read/gcc_pic/basic_lock_security_read.relf +++ /dev/null @@ -1,124 +0,0 @@ - -Relocation section '.rela.dyn' at offset 0x460 contains 10 entries: - Offset Info Type Symbol's Value Symbol's Name + Addend -0000000000010d88 0000000000000403 R_AARCH64_RELATIVE 750 -0000000000010d90 0000000000000403 R_AARCH64_RELATIVE 700 -0000000000010fd8 0000000000000403 R_AARCH64_RELATIVE 11018 -0000000000010fe0 0000000000000403 R_AARCH64_RELATIVE 11014 -0000000000010ff0 0000000000000403 R_AARCH64_RELATIVE 754 -0000000000011008 0000000000000403 R_AARCH64_RELATIVE 11008 -0000000000010fc8 0000000400000401 R_AARCH64_GLOB_DAT 0000000000000000 _ITM_deregisterTMCloneTable + 0 -0000000000010fd0 0000000500000401 R_AARCH64_GLOB_DAT 0000000000000000 __cxa_finalize@GLIBC_2.17 + 0 -0000000000010fe8 0000000600000401 R_AARCH64_GLOB_DAT 0000000000000000 __gmon_start__ + 0 -0000000000010ff8 0000000800000401 R_AARCH64_GLOB_DAT 0000000000000000 _ITM_registerTMCloneTable + 0 - -Relocation section '.rela.plt' at offset 0x550 contains 4 entries: - Offset Info Type Symbol's Value Symbol's Name + Addend -0000000000010fa0 0000000300000402 R_AARCH64_JUMP_SLOT 0000000000000000 __libc_start_main@GLIBC_2.34 + 0 -0000000000010fa8 0000000500000402 R_AARCH64_JUMP_SLOT 0000000000000000 __cxa_finalize@GLIBC_2.17 + 0 -0000000000010fb0 0000000600000402 R_AARCH64_JUMP_SLOT 0000000000000000 __gmon_start__ + 0 -0000000000010fb8 0000000700000402 R_AARCH64_JUMP_SLOT 0000000000000000 abort@GLIBC_2.17 + 0 - -Symbol table '.dynsym' contains 9 entries: - Num: Value Size Type Bind Vis Ndx Name - 0: 0000000000000000 0 NOTYPE LOCAL DEFAULT UND - 1: 00000000000005b0 0 SECTION LOCAL DEFAULT 11 .init - 2: 0000000000011000 0 SECTION LOCAL DEFAULT 22 .data - 3: 0000000000000000 0 FUNC GLOBAL DEFAULT UND __libc_start_main@GLIBC_2.34 (2) - 4: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_deregisterTMCloneTable - 5: 0000000000000000 0 FUNC WEAK DEFAULT UND __cxa_finalize@GLIBC_2.17 (3) - 6: 0000000000000000 0 NOTYPE WEAK DEFAULT UND __gmon_start__ - 7: 0000000000000000 0 FUNC GLOBAL DEFAULT UND abort@GLIBC_2.17 (3) - 8: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_registerTMCloneTable - -Symbol table '.symtab' contains 89 entries: - Num: Value Size Type Bind Vis Ndx Name - 0: 0000000000000000 0 NOTYPE LOCAL DEFAULT UND - 1: 0000000000000238 0 SECTION LOCAL DEFAULT 1 .interp - 2: 0000000000000254 0 SECTION LOCAL DEFAULT 2 .note.gnu.build-id - 3: 0000000000000278 0 SECTION LOCAL DEFAULT 3 .note.ABI-tag - 4: 0000000000000298 0 SECTION LOCAL DEFAULT 4 .gnu.hash - 5: 00000000000002b8 0 SECTION LOCAL DEFAULT 5 .dynsym - 6: 0000000000000390 0 SECTION LOCAL DEFAULT 6 .dynstr - 7: 000000000000041e 0 SECTION LOCAL DEFAULT 7 .gnu.version - 8: 0000000000000430 0 SECTION LOCAL DEFAULT 8 .gnu.version_r - 9: 0000000000000460 0 SECTION LOCAL DEFAULT 9 .rela.dyn - 10: 0000000000000550 0 SECTION LOCAL DEFAULT 10 .rela.plt - 11: 00000000000005b0 0 SECTION LOCAL DEFAULT 11 .init - 12: 00000000000005d0 0 SECTION LOCAL DEFAULT 12 .plt - 13: 0000000000000640 0 SECTION LOCAL DEFAULT 13 .text - 14: 000000000000078c 0 SECTION LOCAL DEFAULT 14 .fini - 15: 00000000000007a0 0 SECTION LOCAL DEFAULT 15 .rodata - 16: 00000000000007a4 0 SECTION LOCAL DEFAULT 16 .eh_frame_hdr - 17: 00000000000007e0 0 SECTION LOCAL DEFAULT 17 .eh_frame - 18: 0000000000010d88 0 SECTION LOCAL DEFAULT 18 .init_array - 19: 0000000000010d90 0 SECTION LOCAL DEFAULT 19 .fini_array - 20: 0000000000010d98 0 SECTION LOCAL DEFAULT 20 .dynamic - 21: 0000000000010f88 0 SECTION LOCAL DEFAULT 21 .got - 22: 0000000000011000 0 SECTION LOCAL DEFAULT 22 .data - 23: 0000000000011010 0 SECTION LOCAL DEFAULT 23 .bss - 24: 0000000000000000 0 SECTION LOCAL DEFAULT 24 .comment - 25: 0000000000000000 0 FILE LOCAL DEFAULT ABS Scrt1.o - 26: 0000000000000278 0 NOTYPE LOCAL DEFAULT 3 $d - 27: 0000000000000278 32 OBJECT LOCAL DEFAULT 3 __abi_tag - 28: 0000000000000640 0 NOTYPE LOCAL DEFAULT 13 $x - 29: 00000000000007f4 0 NOTYPE LOCAL DEFAULT 17 $d - 30: 00000000000007a0 0 NOTYPE LOCAL DEFAULT 15 $d - 31: 0000000000000000 0 FILE LOCAL DEFAULT ABS crti.o - 32: 0000000000000674 0 NOTYPE LOCAL DEFAULT 13 $x - 33: 0000000000000674 20 FUNC LOCAL DEFAULT 13 call_weak_fn - 34: 00000000000005b0 0 NOTYPE LOCAL DEFAULT 11 $x - 35: 000000000000078c 0 NOTYPE LOCAL DEFAULT 14 $x - 36: 0000000000000000 0 FILE LOCAL DEFAULT ABS crtn.o - 37: 00000000000005c0 0 NOTYPE LOCAL DEFAULT 11 $x - 38: 0000000000000798 0 NOTYPE LOCAL DEFAULT 14 $x - 39: 0000000000000000 0 FILE LOCAL DEFAULT ABS crtstuff.c - 40: 0000000000000690 0 NOTYPE LOCAL DEFAULT 13 $x - 41: 0000000000000690 0 FUNC LOCAL DEFAULT 13 deregister_tm_clones - 42: 00000000000006c0 0 FUNC LOCAL DEFAULT 13 register_tm_clones - 43: 0000000000011008 0 NOTYPE LOCAL DEFAULT 22 $d - 44: 0000000000000700 0 FUNC LOCAL DEFAULT 13 __do_global_dtors_aux - 45: 0000000000011010 1 OBJECT LOCAL DEFAULT 23 completed.0 - 46: 0000000000010d90 0 NOTYPE LOCAL DEFAULT 19 $d - 47: 0000000000010d90 0 OBJECT LOCAL DEFAULT 19 __do_global_dtors_aux_fini_array_entry - 48: 0000000000000750 0 FUNC LOCAL DEFAULT 13 frame_dummy - 49: 0000000000010d88 0 NOTYPE LOCAL DEFAULT 18 $d - 50: 0000000000010d88 0 OBJECT LOCAL DEFAULT 18 __frame_dummy_init_array_entry - 51: 0000000000000808 0 NOTYPE LOCAL DEFAULT 17 $d - 52: 0000000000011010 0 NOTYPE LOCAL DEFAULT 23 $d - 53: 0000000000000000 0 FILE LOCAL DEFAULT ABS basic_lock_security_read.c - 54: 0000000000011014 0 NOTYPE LOCAL DEFAULT 23 $d - 55: 0000000000000754 0 NOTYPE LOCAL DEFAULT 13 $x - 56: 0000000000000868 0 NOTYPE LOCAL DEFAULT 17 $d - 57: 0000000000000000 0 FILE LOCAL DEFAULT ABS crtstuff.c - 58: 0000000000000880 0 NOTYPE LOCAL DEFAULT 17 $d - 59: 0000000000000880 0 OBJECT LOCAL DEFAULT 17 __FRAME_END__ - 60: 0000000000000000 0 FILE LOCAL DEFAULT ABS - 61: 0000000000010d98 0 OBJECT LOCAL DEFAULT ABS _DYNAMIC - 62: 00000000000007a4 0 NOTYPE LOCAL DEFAULT 16 __GNU_EH_FRAME_HDR - 63: 0000000000010fc0 0 OBJECT LOCAL DEFAULT ABS _GLOBAL_OFFSET_TABLE_ - 64: 00000000000005d0 0 NOTYPE LOCAL DEFAULT 12 $x - 65: 0000000000000000 0 FUNC GLOBAL DEFAULT UND __libc_start_main@GLIBC_2.34 - 66: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_deregisterTMCloneTable - 67: 0000000000011000 0 NOTYPE WEAK DEFAULT 22 data_start - 68: 0000000000011010 0 NOTYPE GLOBAL DEFAULT 23 __bss_start__ - 69: 0000000000000000 0 FUNC WEAK DEFAULT UND __cxa_finalize@GLIBC_2.17 - 70: 0000000000011020 0 NOTYPE GLOBAL DEFAULT 23 _bss_end__ - 71: 0000000000011010 0 NOTYPE GLOBAL DEFAULT 22 _edata - 72: 0000000000011018 4 OBJECT GLOBAL DEFAULT 23 z - 73: 0000000000011014 4 OBJECT GLOBAL DEFAULT 23 x - 74: 000000000000078c 0 FUNC GLOBAL HIDDEN 14 _fini - 75: 0000000000011020 0 NOTYPE GLOBAL DEFAULT 23 __bss_end__ - 76: 0000000000011000 0 NOTYPE GLOBAL DEFAULT 22 __data_start - 77: 0000000000000000 0 NOTYPE WEAK DEFAULT UND __gmon_start__ - 78: 0000000000011008 0 OBJECT GLOBAL HIDDEN 22 __dso_handle - 79: 0000000000000000 0 FUNC GLOBAL DEFAULT UND abort@GLIBC_2.17 - 80: 00000000000007a0 4 OBJECT GLOBAL DEFAULT 15 _IO_stdin_used - 81: 0000000000011020 0 NOTYPE GLOBAL DEFAULT 23 _end - 82: 0000000000000640 52 FUNC GLOBAL DEFAULT 13 _start - 83: 0000000000011020 0 NOTYPE GLOBAL DEFAULT 23 __end__ - 84: 0000000000011010 0 NOTYPE GLOBAL DEFAULT 23 __bss_start - 85: 0000000000000754 56 FUNC GLOBAL DEFAULT 13 main - 86: 0000000000011010 0 OBJECT GLOBAL HIDDEN 22 __TMC_END__ - 87: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_registerTMCloneTable - 88: 00000000000005b0 0 FUNC GLOBAL HIDDEN 11 _init diff --git a/src/test/correct/basic_lock_security_read/gcc_pic/basic_lock_security_read_gtirb.expected b/src/test/correct/basic_lock_security_read/gcc_pic/basic_lock_security_read_gtirb.expected index 1332aa65d..443daac01 100644 --- a/src/test/correct/basic_lock_security_read/gcc_pic/basic_lock_security_read_gtirb.expected +++ b/src/test/correct/basic_lock_security_read/gcc_pic/basic_lock_security_read_gtirb.expected @@ -91,7 +91,7 @@ implementation {:extern} guarantee_reflexive() assert ((memory_load32_le(mem, $z_addr) == memory_load32_le(mem, $z_addr)) && (memory_load32_le(mem, $x_addr) == memory_load32_le(mem, $x_addr))); } -procedure main_1876(); +procedure main(); modifies CF, Gamma_CF, Gamma_NF, Gamma_R0, Gamma_R31, Gamma_VF, Gamma_ZF, Gamma_mem, Gamma_stack, NF, R0, R31, VF, ZF, mem, stack; free requires (memory_load64_le(mem, 69632bv64) == 0bv64); free requires (memory_load64_le(mem, 69640bv64) == 69640bv64); @@ -112,67 +112,67 @@ procedure main_1876(); free ensures (memory_load64_le(mem, 69616bv64) == 1876bv64); free ensures (memory_load64_le(mem, 69640bv64) == 69640bv64); -implementation main_1876() +implementation main() { - var Cse0__5_2_5: bv32; - var Gamma_Cse0__5_2_5: bool; - var Gamma_load19: bool; - var Gamma_load20: bool; - var Gamma_load21: bool; - var Gamma_load22: bool; - var Gamma_load23: bool; - var load19: bv32; - var load20: bv64; - var load21: bv32; - var load22: bv64; - var load23: bv32; - main_1876__0__kxbde5aJTTep7x_NHw4tDw: - assume {:captureState "main_1876__0__kxbde5aJTTep7x_NHw4tDw"} true; + var $load19: bv32; + var $load20: bv64; + var $load21: bv32; + var $load22: bv64; + var $load23: bv32; + var Cse0__5$2$5: bv32; + var Gamma_$load19: bool; + var Gamma_$load20: bool; + var Gamma_$load21: bool; + var Gamma_$load22: bool; + var Gamma_$load23: bool; + var Gamma_Cse0__5$2$5: bool; + $main$__0__$kxbde5aJTTep7x_NHw4tDw: + assume {:captureState "$main$__0__$kxbde5aJTTep7x_NHw4tDw"} true; R31, Gamma_R31 := bvadd64(R31, 18446744073709551600bv64), Gamma_R31; stack, Gamma_stack := memory_store32_le(stack, bvadd64(R31, 12bv64), 0bv32), gamma_store32(Gamma_stack, bvadd64(R31, 12bv64), true); - assume {:captureState "1880_0"} true; + assume {:captureState "1880$0"} true; R0, Gamma_R0 := 65536bv64, true; call rely(); - load22, Gamma_load22 := memory_load64_le(mem, bvadd64(R0, 4056bv64)), (gamma_load64(Gamma_mem, bvadd64(R0, 4056bv64)) || L(mem, bvadd64(R0, 4056bv64))); - R0, Gamma_R0 := load22, Gamma_load22; + $load22, Gamma_$load22 := memory_load64_le(mem, bvadd64(R0, 4056bv64)), (gamma_load64(Gamma_mem, bvadd64(R0, 4056bv64)) || L(mem, bvadd64(R0, 4056bv64))); + R0, Gamma_R0 := $load22, Gamma_$load22; call rely(); - load23, Gamma_load23 := memory_load32_le(mem, R0), (gamma_load32(Gamma_mem, R0) || L(mem, R0)); - R0, Gamma_R0 := zero_extend32_32(load23), Gamma_load23; - Cse0__5_2_5, Gamma_Cse0__5_2_5 := bvadd32(R0[32:0], 0bv32), Gamma_R0; - VF, Gamma_VF := bvnot1(bvcomp32(Cse0__5_2_5, Cse0__5_2_5)), Gamma_Cse0__5_2_5; - CF, Gamma_CF := bvnot1(bvcomp33(zero_extend1_32(Cse0__5_2_5), bvadd33(zero_extend1_32(R0[32:0]), 4294967296bv33))), (Gamma_R0 && Gamma_Cse0__5_2_5); - ZF, Gamma_ZF := bvcomp32(Cse0__5_2_5, 0bv32), Gamma_Cse0__5_2_5; - NF, Gamma_NF := Cse0__5_2_5[32:31], Gamma_Cse0__5_2_5; + $load23, Gamma_$load23 := memory_load32_le(mem, R0), (gamma_load32(Gamma_mem, R0) || L(mem, R0)); + R0, Gamma_R0 := zero_extend32_32($load23), Gamma_$load23; + Cse0__5$2$5, Gamma_Cse0__5$2$5 := bvadd32(R0[32:0], 0bv32), Gamma_R0; + VF, Gamma_VF := bvnot1(bvcomp32(Cse0__5$2$5, Cse0__5$2$5)), Gamma_Cse0__5$2$5; + CF, Gamma_CF := bvnot1(bvcomp33(zero_extend1_32(Cse0__5$2$5), bvadd33(zero_extend1_32(R0[32:0]), 4294967296bv33))), (Gamma_R0 && Gamma_Cse0__5$2$5); + ZF, Gamma_ZF := bvcomp32(Cse0__5$2$5, 0bv32), Gamma_Cse0__5$2$5; + NF, Gamma_NF := Cse0__5$2$5[32:31], Gamma_Cse0__5$2$5; assert Gamma_ZF; - goto main_1876__0__kxbde5aJTTep7x_NHw4tDw_goto_main_1876__2__ENOb69xvTsOc7YJFk65Gug, main_1876__0__kxbde5aJTTep7x_NHw4tDw_goto_main_1876__1__MrPOp6w3Rd2CG29w9Oykog; - main_1876__0__kxbde5aJTTep7x_NHw4tDw_goto_main_1876__1__MrPOp6w3Rd2CG29w9Oykog: - assume {:captureState "main_1876__0__kxbde5aJTTep7x_NHw4tDw_goto_main_1876__1__MrPOp6w3Rd2CG29w9Oykog"} true; - assume (!(!(ZF == 1bv1))); + goto $main$__0__$kxbde5aJTTep7x_NHw4tDw_goto_$main$__2__$ENOb69xvTsOc7YJFk65Gug, $main$__0__$kxbde5aJTTep7x_NHw4tDw_goto_$main$__1__$MrPOp6w3Rd2CG29w9Oykog; + $main$__1__$MrPOp6w3Rd2CG29w9Oykog: + assume {:captureState "$main$__1__$MrPOp6w3Rd2CG29w9Oykog"} true; R0, Gamma_R0 := 65536bv64, true; call rely(); - load20, Gamma_load20 := memory_load64_le(mem, bvadd64(R0, 4064bv64)), (gamma_load64(Gamma_mem, bvadd64(R0, 4064bv64)) || L(mem, bvadd64(R0, 4064bv64))); - R0, Gamma_R0 := load20, Gamma_load20; + $load20, Gamma_$load20 := memory_load64_le(mem, bvadd64(R0, 4064bv64)), (gamma_load64(Gamma_mem, bvadd64(R0, 4064bv64)) || L(mem, bvadd64(R0, 4064bv64))); + R0, Gamma_R0 := $load20, Gamma_$load20; call rely(); - load21, Gamma_load21 := memory_load32_le(mem, R0), (gamma_load32(Gamma_mem, R0) || L(mem, R0)); - R0, Gamma_R0 := zero_extend32_32(load21), Gamma_load21; + $load21, Gamma_$load21 := memory_load32_le(mem, R0), (gamma_load32(Gamma_mem, R0) || L(mem, R0)); + R0, Gamma_R0 := zero_extend32_32($load21), Gamma_$load21; stack, Gamma_stack := memory_store32_le(stack, bvadd64(R31, 12bv64), R0[32:0]), gamma_store32(Gamma_stack, bvadd64(R31, 12bv64), Gamma_R0); - assume {:captureState "1916_0"} true; - goto main_1876__1__MrPOp6w3Rd2CG29w9Oykog; - main_1876__1__MrPOp6w3Rd2CG29w9Oykog: - assume {:captureState "main_1876__1__MrPOp6w3Rd2CG29w9Oykog"} true; - goto main_1876__2__ENOb69xvTsOc7YJFk65Gug; - main_1876__0__kxbde5aJTTep7x_NHw4tDw_goto_main_1876__2__ENOb69xvTsOc7YJFk65Gug: - assume {:captureState "main_1876__0__kxbde5aJTTep7x_NHw4tDw_goto_main_1876__2__ENOb69xvTsOc7YJFk65Gug"} true; - assume (!(ZF == 1bv1)); - goto main_1876__2__ENOb69xvTsOc7YJFk65Gug; - main_1876__2__ENOb69xvTsOc7YJFk65Gug: - assume {:captureState "main_1876__2__ENOb69xvTsOc7YJFk65Gug"} true; - load19, Gamma_load19 := memory_load32_le(stack, bvadd64(R31, 12bv64)), gamma_load32(Gamma_stack, bvadd64(R31, 12bv64)); - R0, Gamma_R0 := zero_extend32_32(load19), Gamma_load19; + assume {:captureState "1916$0"} true; + goto $main$__2__$ENOb69xvTsOc7YJFk65Gug; + $main$__2__$ENOb69xvTsOc7YJFk65Gug: + assume {:captureState "$main$__2__$ENOb69xvTsOc7YJFk65Gug"} true; + $load19, Gamma_$load19 := memory_load32_le(stack, bvadd64(R31, 12bv64)), gamma_load32(Gamma_stack, bvadd64(R31, 12bv64)); + R0, Gamma_R0 := zero_extend32_32($load19), Gamma_$load19; R31, Gamma_R31 := bvadd64(R31, 16bv64), Gamma_R31; - goto main_1876_basil_return; - main_1876_basil_return: - assume {:captureState "main_1876_basil_return"} true; + goto main_basil_return; + $main$__0__$kxbde5aJTTep7x_NHw4tDw_goto_$main$__2__$ENOb69xvTsOc7YJFk65Gug: + assume {:captureState "$main$__0__$kxbde5aJTTep7x_NHw4tDw_goto_$main$__2__$ENOb69xvTsOc7YJFk65Gug"} true; + assume (!(ZF == 1bv1)); + goto $main$__2__$ENOb69xvTsOc7YJFk65Gug; + $main$__0__$kxbde5aJTTep7x_NHw4tDw_goto_$main$__1__$MrPOp6w3Rd2CG29w9Oykog: + assume {:captureState "$main$__0__$kxbde5aJTTep7x_NHw4tDw_goto_$main$__1__$MrPOp6w3Rd2CG29w9Oykog"} true; + assume (!(!(ZF == 1bv1))); + goto $main$__1__$MrPOp6w3Rd2CG29w9Oykog; + main_basil_return: + assume {:captureState "main_basil_return"} true; return; } diff --git a/src/test/correct/basic_lock_security_write/clang/basic_lock_security_write.adt b/src/test/correct/basic_lock_security_write/clang/basic_lock_security_write.adt deleted file mode 100644 index ef49b22d1..000000000 --- a/src/test/correct/basic_lock_security_write/clang/basic_lock_security_write.adt +++ /dev/null @@ -1,514 +0,0 @@ -Project(Attrs([Attr("filename","\"clang/basic_lock_security_write.out\""), -Attr("image-specification","(declare abi (name str))\n(declare arch (name str))\n(declare base-address (addr int))\n(declare bias (off int))\n(declare bits (size int))\n(declare code-region (addr int) (size int) (off int))\n(declare code-start (addr int))\n(declare entry-point (addr int))\n(declare external-reference (addr int) (name str))\n(declare format (name str))\n(declare is-executable (flag bool))\n(declare is-little-endian (flag bool))\n(declare llvm:base-address (addr int))\n(declare llvm:code-entry (name str) (off int) (size int))\n(declare llvm:coff-import-library (name str))\n(declare llvm:coff-virtual-section-header (name str) (addr int) (size int))\n(declare llvm:elf-program-header (name str) (off int) (size int))\n(declare llvm:elf-program-header-flags (name str) (ld bool) (r bool) \n (w bool) (x bool))\n(declare llvm:elf-virtual-program-header (name str) (addr int) (size int))\n(declare llvm:entry-point (addr int))\n(declare llvm:macho-symbol (name str) (value int))\n(declare llvm:name-reference (at int) (name str))\n(declare llvm:relocation (at int) (addr int))\n(declare llvm:section-entry (name str) (addr int) (size int) (off int))\n(declare llvm:section-flags (name str) (r bool) (w bool) (x bool))\n(declare llvm:segment-command (name str) (off int) (size int))\n(declare llvm:segment-command-flags (name str) (r bool) (w bool) (x bool))\n(declare llvm:symbol-entry (name str) (addr int) (size int) (off int)\n (value int))\n(declare llvm:virtual-segment-command (name str) (addr int) (size int))\n(declare mapped (addr int) (size int) (off int))\n(declare named-region (addr int) (size int) (name str))\n(declare named-symbol (addr int) (name str))\n(declare require (name str))\n(declare section (addr int) (size int))\n(declare segment (addr int) (size int) (r bool) (w bool) (x bool))\n(declare subarch (name str))\n(declare symbol-chunk (addr int) (size int) (root int))\n(declare symbol-value (addr int) (value int))\n(declare system (name str))\n(declare vendor (name str))\n\n(abi unknown)\n(arch aarch64)\n(base-address 0)\n(bias 0)\n(bits 64)\n(code-region 1864 20 1864)\n(code-region 1536 328 1536)\n(code-region 1440 96 1440)\n(code-region 1408 24 1408)\n(code-start 1588)\n(code-start 1536)\n(code-start 1812)\n(entry-point 1536)\n(external-reference 69568 _ITM_deregisterTMCloneTable)\n(external-reference 69576 __cxa_finalize)\n(external-reference 69584 __gmon_start__)\n(external-reference 69600 _ITM_registerTMCloneTable)\n(external-reference 69632 __libc_start_main)\n(external-reference 69640 __cxa_finalize)\n(external-reference 69648 __gmon_start__)\n(external-reference 69656 abort)\n(format elf)\n(is-executable true)\n(is-little-endian true)\n(llvm:base-address 0)\n(llvm:code-entry abort 0 0)\n(llvm:code-entry __cxa_finalize 0 0)\n(llvm:code-entry __libc_start_main 0 0)\n(llvm:code-entry _init 1408 0)\n(llvm:code-entry main 1812 52)\n(llvm:code-entry _start 1536 52)\n(llvm:code-entry abort@GLIBC_2.17 0 0)\n(llvm:code-entry _fini 1864 0)\n(llvm:code-entry __cxa_finalize@GLIBC_2.17 0 0)\n(llvm:code-entry __libc_start_main@GLIBC_2.34 0 0)\n(llvm:code-entry frame_dummy 1808 0)\n(llvm:code-entry __do_global_dtors_aux 1728 0)\n(llvm:code-entry register_tm_clones 1664 0)\n(llvm:code-entry deregister_tm_clones 1616 0)\n(llvm:code-entry call_weak_fn 1588 20)\n(llvm:code-entry .fini 1864 20)\n(llvm:code-entry .text 1536 328)\n(llvm:code-entry .plt 1440 96)\n(llvm:code-entry .init 1408 24)\n(llvm:elf-program-header 08 3528 568)\n(llvm:elf-program-header 07 0 0)\n(llvm:elf-program-header 06 1888 60)\n(llvm:elf-program-header 05 596 68)\n(llvm:elf-program-header 04 3544 480)\n(llvm:elf-program-header 03 3528 616)\n(llvm:elf-program-header 02 0 2136)\n(llvm:elf-program-header 01 568 27)\n(llvm:elf-program-header 00 64 504)\n(llvm:elf-program-header-flags 08 false true false false)\n(llvm:elf-program-header-flags 07 false true true false)\n(llvm:elf-program-header-flags 06 false true false false)\n(llvm:elf-program-header-flags 05 false true false false)\n(llvm:elf-program-header-flags 04 false true true false)\n(llvm:elf-program-header-flags 03 true true true false)\n(llvm:elf-program-header-flags 02 true true false true)\n(llvm:elf-program-header-flags 01 false true false false)\n(llvm:elf-program-header-flags 00 false true false false)\n(llvm:elf-virtual-program-header 08 69064 568)\n(llvm:elf-virtual-program-header 07 0 0)\n(llvm:elf-virtual-program-header 06 1888 60)\n(llvm:elf-virtual-program-header 05 596 68)\n(llvm:elf-virtual-program-header 04 69080 480)\n(llvm:elf-virtual-program-header 03 69064 632)\n(llvm:elf-virtual-program-header 02 0 2136)\n(llvm:elf-virtual-program-header 01 568 27)\n(llvm:elf-virtual-program-header 00 64 504)\n(llvm:entry-point 1536)\n(llvm:name-reference 69656 abort)\n(llvm:name-reference 69648 __gmon_start__)\n(llvm:name-reference 69640 __cxa_finalize)\n(llvm:name-reference 69632 __libc_start_main)\n(llvm:name-reference 69600 _ITM_registerTMCloneTable)\n(llvm:name-reference 69584 __gmon_start__)\n(llvm:name-reference 69576 __cxa_finalize)\n(llvm:name-reference 69568 _ITM_deregisterTMCloneTable)\n(llvm:section-entry .shstrtab 0 259 6983)\n(llvm:section-entry .strtab 0 583 6400)\n(llvm:section-entry .symtab 0 2184 4216)\n(llvm:section-entry .comment 0 71 4144)\n(llvm:section-entry .bss 69680 16 4144)\n(llvm:section-entry .data 69664 16 4128)\n(llvm:section-entry .got.plt 69608 56 4072)\n(llvm:section-entry .got 69560 48 4024)\n(llvm:section-entry .dynamic 69080 480 3544)\n(llvm:section-entry .fini_array 69072 8 3536)\n(llvm:section-entry .init_array 69064 8 3528)\n(llvm:section-entry .eh_frame 1952 184 1952)\n(llvm:section-entry .eh_frame_hdr 1888 60 1888)\n(llvm:section-entry .rodata 1884 4 1884)\n(llvm:section-entry .fini 1864 20 1864)\n(llvm:section-entry .text 1536 328 1536)\n(llvm:section-entry .plt 1440 96 1440)\n(llvm:section-entry .init 1408 24 1408)\n(llvm:section-entry .rela.plt 1312 96 1312)\n(llvm:section-entry .rela.dyn 1120 192 1120)\n(llvm:section-entry .gnu.version_r 1072 48 1072)\n(llvm:section-entry .gnu.version 1054 18 1054)\n(llvm:section-entry .dynstr 912 141 912)\n(llvm:section-entry .dynsym 696 216 696)\n(llvm:section-entry .gnu.hash 664 28 664)\n(llvm:section-entry .note.ABI-tag 632 32 632)\n(llvm:section-entry .note.gnu.build-id 596 36 596)\n(llvm:section-entry .interp 568 27 568)\n(llvm:section-flags .shstrtab true false false)\n(llvm:section-flags .strtab true false false)\n(llvm:section-flags .symtab true false false)\n(llvm:section-flags .comment true false false)\n(llvm:section-flags .bss true true false)\n(llvm:section-flags .data true true false)\n(llvm:section-flags .got.plt true true false)\n(llvm:section-flags .got true true false)\n(llvm:section-flags .dynamic true true false)\n(llvm:section-flags .fini_array true true false)\n(llvm:section-flags .init_array true true false)\n(llvm:section-flags .eh_frame true false false)\n(llvm:section-flags .eh_frame_hdr true false false)\n(llvm:section-flags .rodata true false false)\n(llvm:section-flags .fini true false true)\n(llvm:section-flags .text true false true)\n(llvm:section-flags .plt true false true)\n(llvm:section-flags .init true false true)\n(llvm:section-flags .rela.plt true false false)\n(llvm:section-flags .rela.dyn true false false)\n(llvm:section-flags .gnu.version_r true false false)\n(llvm:section-flags .gnu.version true false false)\n(llvm:section-flags .dynstr true false false)\n(llvm:section-flags .dynsym true false false)\n(llvm:section-flags .gnu.hash true false false)\n(llvm:section-flags .note.ABI-tag true false false)\n(llvm:section-flags .note.gnu.build-id true false false)\n(llvm:section-flags .interp true false false)\n(llvm:symbol-entry abort 0 0 0 0)\n(llvm:symbol-entry __cxa_finalize 0 0 0 0)\n(llvm:symbol-entry __libc_start_main 0 0 0 0)\n(llvm:symbol-entry _init 1408 0 1408 1408)\n(llvm:symbol-entry main 1812 52 1812 1812)\n(llvm:symbol-entry _start 1536 52 1536 1536)\n(llvm:symbol-entry abort@GLIBC_2.17 0 0 0 0)\n(llvm:symbol-entry _fini 1864 0 1864 1864)\n(llvm:symbol-entry __cxa_finalize@GLIBC_2.17 0 0 0 0)\n(llvm:symbol-entry __libc_start_main@GLIBC_2.34 0 0 0 0)\n(llvm:symbol-entry frame_dummy 1808 0 1808 1808)\n(llvm:symbol-entry __do_global_dtors_aux 1728 0 1728 1728)\n(llvm:symbol-entry register_tm_clones 1664 0 1664 1664)\n(llvm:symbol-entry deregister_tm_clones 1616 0 1616 1616)\n(llvm:symbol-entry call_weak_fn 1588 20 1588 1588)\n(mapped 0 2136 0)\n(mapped 69064 616 3528)\n(named-region 0 2136 02)\n(named-region 69064 632 03)\n(named-region 568 27 .interp)\n(named-region 596 36 .note.gnu.build-id)\n(named-region 632 32 .note.ABI-tag)\n(named-region 664 28 .gnu.hash)\n(named-region 696 216 .dynsym)\n(named-region 912 141 .dynstr)\n(named-region 1054 18 .gnu.version)\n(named-region 1072 48 .gnu.version_r)\n(named-region 1120 192 .rela.dyn)\n(named-region 1312 96 .rela.plt)\n(named-region 1408 24 .init)\n(named-region 1440 96 .plt)\n(named-region 1536 328 .text)\n(named-region 1864 20 .fini)\n(named-region 1884 4 .rodata)\n(named-region 1888 60 .eh_frame_hdr)\n(named-region 1952 184 .eh_frame)\n(named-region 69064 8 .init_array)\n(named-region 69072 8 .fini_array)\n(named-region 69080 480 .dynamic)\n(named-region 69560 48 .got)\n(named-region 69608 56 .got.plt)\n(named-region 69664 16 .data)\n(named-region 69680 16 .bss)\n(named-region 0 71 .comment)\n(named-region 0 2184 .symtab)\n(named-region 0 583 .strtab)\n(named-region 0 259 .shstrtab)\n(named-symbol 1588 call_weak_fn)\n(named-symbol 1616 deregister_tm_clones)\n(named-symbol 1664 register_tm_clones)\n(named-symbol 1728 __do_global_dtors_aux)\n(named-symbol 1808 frame_dummy)\n(named-symbol 0 __libc_start_main@GLIBC_2.34)\n(named-symbol 0 __cxa_finalize@GLIBC_2.17)\n(named-symbol 1864 _fini)\n(named-symbol 0 abort@GLIBC_2.17)\n(named-symbol 1536 _start)\n(named-symbol 1812 main)\n(named-symbol 1408 _init)\n(named-symbol 0 __libc_start_main)\n(named-symbol 0 __cxa_finalize)\n(named-symbol 0 abort)\n(require libc.so.6)\n(section 568 27)\n(section 596 36)\n(section 632 32)\n(section 664 28)\n(section 696 216)\n(section 912 141)\n(section 1054 18)\n(section 1072 48)\n(section 1120 192)\n(section 1312 96)\n(section 1408 24)\n(section 1440 96)\n(section 1536 328)\n(section 1864 20)\n(section 1884 4)\n(section 1888 60)\n(section 1952 184)\n(section 69064 8)\n(section 69072 8)\n(section 69080 480)\n(section 69560 48)\n(section 69608 56)\n(section 69664 16)\n(section 69680 16)\n(section 0 71)\n(section 0 2184)\n(section 0 583)\n(section 0 259)\n(segment 0 2136 true false true)\n(segment 69064 632 true true false)\n(subarch v8)\n(symbol-chunk 1588 20 1588)\n(symbol-chunk 1536 52 1536)\n(symbol-chunk 1812 52 1812)\n(symbol-value 1588 1588)\n(symbol-value 1616 1616)\n(symbol-value 1664 1664)\n(symbol-value 1728 1728)\n(symbol-value 1808 1808)\n(symbol-value 1864 1864)\n(symbol-value 1536 1536)\n(symbol-value 1812 1812)\n(symbol-value 1408 1408)\n(symbol-value 0 0)\n(system \"\")\n(vendor \"\")\n"), -Attr("abi-name","\"aarch64-linux-gnu-elf\"")]), -Sections([Section(".shstrtab", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x00\x06\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x50\x1c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x38\x00\x09\x00\x40\x00\x1d\x00\x1c\x00\x06\x00\x00\x00\x04\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x04\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x58\x08\x00\x00\x00\x00\x00\x00\x58\x08\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x01\x00\x00\x00\x06\x00\x00\x00\xc8\x0d\x00\x00\x00\x00\x00\x00\xc8\x0d\x01\x00\x00\x00\x00\x00\xc8\x0d\x01"), -Section(".strtab", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x00\x06\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x50\x1c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x38\x00\x09\x00\x40\x00\x1d\x00\x1c\x00\x06\x00\x00\x00\x04\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x04\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x58\x08\x00\x00\x00\x00\x00\x00\x58\x08\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x01\x00\x00\x00\x06\x00\x00\x00\xc8\x0d\x00\x00\x00\x00\x00\x00\xc8\x0d\x01\x00\x00\x00\x00\x00\xc8\x0d\x01\x00\x00\x00\x00\x00\x68\x02\x00\x00\x00\x00\x00\x00\x78\x02\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x02\x00\x00\x00\x06\x00\x00\x00\xd8\x0d\x00\x00\x00\x00\x00\x00\xd8\x0d\x01\x00\x00\x00\x00\x00\xd8\x0d\x01\x00\x00\x00\x00\x00\xe0\x01\x00\x00\x00\x00\x00\x00\xe0\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x04\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x50\xe5\x74\x64\x04\x00\x00\x00\x60\x07\x00\x00\x00\x00\x00\x00\x60\x07\x00\x00\x00\x00\x00\x00\x60\x07\x00\x00\x00\x00\x00\x00\x3c\x00\x00\x00\x00\x00\x00\x00\x3c\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x51\xe5\x74\x64\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x52\xe5\x74\x64\x04\x00\x00\x00\xc8\x0d\x00\x00\x00\x00\x00\x00\xc8\x0d\x01\x00\x00\x00\x00\x00\xc8\x0d\x01\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x2f\x6c\x69\x62\x2f\x6c\x64\x2d\x6c\x69\x6e\x75\x78\x2d\x61"), -Section(".comment", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x00\x06\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x50\x1c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x38\x00\x09\x00\x40\x00\x1d\x00\x1c\x00\x06\x00\x00\x00\x04\x00\x00"), -Section(".interp", 0x238, "\x2f\x6c\x69\x62\x2f\x6c\x64\x2d\x6c\x69\x6e\x75\x78\x2d\x61\x61\x72\x63\x68\x36\x34\x2e\x73\x6f\x2e\x31\x00"), -Section(".note.gnu.build-id", 0x254, "\x04\x00\x00\x00\x14\x00\x00\x00\x03\x00\x00\x00\x47\x4e\x55\x00\x3b\x36\xb9\x4d\xa9\x59\xea\x05\x6c\xf7\x51\xe8\x15\x4e\x71\x65\x12\x86\x71\xcb"), -Section(".note.ABI-tag", 0x278, "\x04\x00\x00\x00\x10\x00\x00\x00\x01\x00\x00\x00\x47\x4e\x55\x00\x00\x00\x00\x00\x03\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00"), -Section(".gnu.hash", 0x298, "\x01\x00\x00\x00\x01\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".dynsym", 0x2B8, "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x0b\x00\x80\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x17\x00\x20\x10\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x48\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x22\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x22\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x73\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".dynstr", 0x390, "\x00\x5f\x5f\x63\x78\x61\x5f\x66\x69\x6e\x61\x6c\x69\x7a\x65\x00\x5f\x5f\x6c\x69\x62\x63\x5f\x73\x74\x61\x72\x74\x5f\x6d\x61\x69\x6e\x00\x61\x62\x6f\x72\x74\x00\x6c\x69\x62\x63\x2e\x73\x6f\x2e\x36\x00\x47\x4c\x49\x42\x43\x5f\x32\x2e\x31\x37\x00\x47\x4c\x49\x42\x43\x5f\x32\x2e\x33\x34\x00\x5f\x49\x54\x4d\x5f\x64\x65\x72\x65\x67\x69\x73\x74\x65\x72\x54\x4d\x43\x6c\x6f\x6e\x65\x54\x61\x62\x6c\x65\x00\x5f\x5f\x67\x6d\x6f\x6e\x5f\x73\x74\x61\x72\x74\x5f\x5f\x00\x5f\x49\x54\x4d\x5f\x72\x65\x67\x69\x73\x74\x65\x72\x54\x4d\x43\x6c\x6f\x6e\x65\x54\x61\x62\x6c\x65\x00"), -Section(".gnu.version", 0x41E, "\x00\x00\x00\x00\x00\x00\x02\x00\x01\x00\x03\x00\x01\x00\x03\x00\x01\x00"), -Section(".gnu.version_r", 0x430, "\x01\x00\x02\x00\x28\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x97\x91\x96\x06\x00\x00\x03\x00\x32\x00\x00\x00\x10\x00\x00\x00\xb4\x91\x96\x06\x00\x00\x02\x00\x3d\x00\x00\x00\x00\x00\x00\x00"), -Section(".rela.dyn", 0x460, "\xc8\x0d\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x10\x07\x00\x00\x00\x00\x00\x00\xd0\x0d\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\xc0\x06\x00\x00\x00\x00\x00\x00\xd8\x0f\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x14\x07\x00\x00\x00\x00\x00\x00\x28\x10\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x28\x10\x01\x00\x00\x00\x00\x00\xc0\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xc8\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xd0\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe0\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".rela.plt", 0x520, "\x00\x10\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x08\x10\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x10\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x18\x10\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".init", 0x580, "\x1f\x20\x03\xd5\xfd\x7b\xbf\xa9\xfd\x03\x00\x91\x2a\x00\x00\x94\xfd\x7b\xc1\xa8\xc0\x03\x5f\xd6"), -Section(".plt", 0x5A0, "\xf0\x7b\xbf\xa9\x90\x00\x00\x90\x11\xfe\x47\xf9\x10\xe2\x3f\x91\x20\x02\x1f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x90\x00\x00\xb0\x11\x02\x40\xf9\x10\x02\x00\x91\x20\x02\x1f\xd6\x90\x00\x00\xb0\x11\x06\x40\xf9\x10\x22\x00\x91\x20\x02\x1f\xd6\x90\x00\x00\xb0\x11\x0a\x40\xf9\x10\x42\x00\x91\x20\x02\x1f\xd6\x90\x00\x00\xb0\x11\x0e\x40\xf9\x10\x62\x00\x91\x20\x02\x1f\xd6"), -Section(".text", 0x600, "\x1f\x20\x03\xd5\x1d\x00\x80\xd2\x1e\x00\x80\xd2\xe5\x03\x00\xaa\xe1\x03\x40\xf9\xe2\x23\x00\x91\xe6\x03\x00\x91\x80\x00\x00\x90\x00\xec\x47\xf9\x03\x00\x80\xd2\x04\x00\x80\xd2\xe5\xff\xff\x97\xf0\xff\xff\x97\x80\x00\x00\x90\x00\xe8\x47\xf9\x40\x00\x00\xb4\xe8\xff\xff\x17\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x80\x00\x00\xb0\x00\xc0\x00\x91\x81\x00\x00\xb0\x21\xc0\x00\x91\x3f\x00\x00\xeb\xc0\x00\x00\x54\x81\x00\x00\x90\x21\xe0\x47\xf9\x61\x00\x00\xb4\xf0\x03\x01\xaa\x00\x02\x1f\xd6\xc0\x03\x5f\xd6\x80\x00\x00\xb0\x00\xc0\x00\x91\x81\x00\x00\xb0\x21\xc0\x00\x91\x21\x00\x00\xcb\x22\xfc\x7f\xd3\x41\x0c\x81\x8b\x21\xfc\x41\x93\xc1\x00\x00\xb4\x82\x00\x00\x90\x42\xf0\x47\xf9\x62\x00\x00\xb4\xf0\x03\x02\xaa\x00\x02\x1f\xd6\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\xfd\x7b\xbe\xa9\xfd\x03\x00\x91\xf3\x0b\x00\xf9\x93\x00\x00\xb0\x60\xc2\x40\x39\x40\x01\x00\x35\x80\x00\x00\x90\x00\xe4\x47\xf9\x80\x00\x00\xb4\x80\x00\x00\xb0\x00\x14\x40\xf9\xb9\xff\xff\x97\xd8\xff\xff\x97\x20\x00\x80\x52\x60\xc2\x00\x39\xf3\x0b\x40\xf9\xfd\x7b\xc2\xa8\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\xdc\xff\xff\x17\xff\x43\x00\xd1\xe0\x0f\x00\xb9\x88\x00\x00\xb0\x29\x00\x80\x52\x09\x35\x00\xb9\xea\x0f\x40\xb9\x89\x00\x00\xb0\x2a\x39\x00\xb9\xe0\x03\x1f\x2a\x3f\x39\x00\xb9\x1f\x35\x00\xb9\xff\x43\x00\x91\xc0\x03\x5f\xd6"), -Section(".fini", 0x748, "\x1f\x20\x03\xd5\xfd\x7b\xbf\xa9\xfd\x03\x00\x91\xfd\x7b\xc1\xa8\xc0\x03\x5f\xd6"), -Section(".rodata", 0x75C, "\x01\x00\x02\x00"), -Section(".eh_frame_hdr", 0x760, "\x01\x1b\x03\x3b\x3c\x00\x00\x00\x06\x00\x00\x00\xa0\xfe\xff\xff\x54\x00\x00\x00\xf0\xfe\xff\xff\x68\x00\x00\x00\x20\xff\xff\xff\x7c\x00\x00\x00\x60\xff\xff\xff\x90\x00\x00\x00\xb0\xff\xff\xff\xb4\x00\x00\x00\xb4\xff\xff\xff\xdc\x00\x00\x00"), -Section(".eh_frame", 0x7A0, "\x10\x00\x00\x00\x00\x00\x00\x00\x01\x7a\x52\x00\x04\x78\x1e\x01\x1b\x0c\x1f\x00\x10\x00\x00\x00\x18\x00\x00\x00\x44\xfe\xff\xff\x34\x00\x00\x00\x00\x41\x07\x1e\x10\x00\x00\x00\x2c\x00\x00\x00\x80\xfe\xff\xff\x30\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x40\x00\x00\x00\x9c\xfe\xff\xff\x3c\x00\x00\x00\x00\x00\x00\x00\x20\x00\x00\x00\x54\x00\x00\x00\xc8\xfe\xff\xff\x48\x00\x00\x00\x00\x41\x0e\x20\x9d\x04\x9e\x03\x42\x93\x02\x4e\xde\xdd\xd3\x0e\x00\x00\x00\x00\x10\x00\x00\x00\x78\x00\x00\x00\xf4\xfe\xff\xff\x04\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x01\x7a\x52\x00\x01\x7c\x1e\x01\x1b\x0c\x1f\x00\x14\x00\x00\x00\x18\x00\x00\x00\xd0\xfe\xff\xff\x34\x00\x00\x00\x00\x44\x0e\x10\x6c\x0e\x00\x00\x00\x00\x00\x00"), -Section(".fini_array", 0x10DD0, "\xc0\x06\x00\x00\x00\x00\x00\x00"), -Section(".dynamic", 0x10DD8, "\x01\x00\x00\x00\x00\x00\x00\x00\x28\x00\x00\x00\x00\x00\x00\x00\x0c\x00\x00\x00\x00\x00\x00\x00\x80\x05\x00\x00\x00\x00\x00\x00\x0d\x00\x00\x00\x00\x00\x00\x00\x48\x07\x00\x00\x00\x00\x00\x00\x19\x00\x00\x00\x00\x00\x00\x00\xc8\x0d\x01\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x1a\x00\x00\x00\x00\x00\x00\x00\xd0\x0d\x01\x00\x00\x00\x00\x00\x1c\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\xf5\xfe\xff\x6f\x00\x00\x00\x00\x98\x02\x00\x00\x00\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x90\x03\x00\x00\x00\x00\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\xb8\x02\x00\x00\x00\x00\x00\x00\x0a\x00\x00\x00\x00\x00\x00\x00\x8d\x00\x00\x00\x00\x00\x00\x00\x0b\x00\x00\x00\x00\x00\x00\x00\x18\x00\x00\x00\x00\x00\x00\x00\x15\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\xe8\x0f\x01\x00\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x60\x00\x00\x00\x00\x00\x00\x00\x14\x00\x00\x00\x00\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x17\x00\x00\x00\x00\x00\x00\x00\x20\x05\x00\x00\x00\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x60\x04\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\xc0\x00\x00\x00\x00\x00\x00\x00\x09\x00\x00\x00\x00\x00\x00\x00\x18\x00\x00\x00\x00\x00\x00\x00\xfb\xff\xff\x6f\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\xfe\xff\xff\x6f\x00\x00\x00\x00\x30\x04\x00\x00\x00\x00\x00\x00\xff\xff\xff\x6f\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\xf0\xff\xff\x6f\x00\x00\x00\x00\x1e\x04\x00\x00\x00\x00\x00\x00\xf9\xff\xff\x6f\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".init_array", 0x10DC8, "\x10\x07\x00\x00\x00\x00\x00\x00"), -Section(".got", 0x10FB8, "\xd8\x0d\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x14\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".got.plt", 0x10FE8, "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xa0\x05\x00\x00\x00\x00\x00\x00\xa0\x05\x00\x00\x00\x00\x00\x00\xa0\x05\x00\x00\x00\x00\x00\x00\xa0\x05\x00\x00\x00\x00\x00\x00"), -Section(".data", 0x11020, "\x00\x00\x00\x00\x00\x00\x00\x00\x28\x10\x01\x00\x00\x00\x00\x00")]), -Memmap([Annotation(Region(0x0,0x857), Attr("segment","02 0 2136")), -Annotation(Region(0x600,0x633), Attr("symbol","\"_start\"")), -Annotation(Region(0x0,0x102), Attr("section","\".shstrtab\"")), -Annotation(Region(0x0,0x246), Attr("section","\".strtab\"")), -Annotation(Region(0x0,0x46), Attr("section","\".comment\"")), -Annotation(Region(0x238,0x252), Attr("section","\".interp\"")), -Annotation(Region(0x254,0x277), Attr("section","\".note.gnu.build-id\"")), -Annotation(Region(0x278,0x297), Attr("section","\".note.ABI-tag\"")), -Annotation(Region(0x298,0x2B3), Attr("section","\".gnu.hash\"")), -Annotation(Region(0x2B8,0x38F), Attr("section","\".dynsym\"")), -Annotation(Region(0x390,0x41C), Attr("section","\".dynstr\"")), -Annotation(Region(0x41E,0x42F), Attr("section","\".gnu.version\"")), -Annotation(Region(0x430,0x45F), Attr("section","\".gnu.version_r\"")), -Annotation(Region(0x460,0x51F), Attr("section","\".rela.dyn\"")), -Annotation(Region(0x520,0x57F), Attr("section","\".rela.plt\"")), -Annotation(Region(0x580,0x597), Attr("section","\".init\"")), -Annotation(Region(0x5A0,0x5FF), Attr("section","\".plt\"")), -Annotation(Region(0x580,0x597), Attr("code-region","()")), -Annotation(Region(0x5A0,0x5FF), Attr("code-region","()")), -Annotation(Region(0x600,0x633), Attr("symbol-info","_start 0x600 52")), -Annotation(Region(0x634,0x647), Attr("symbol","\"call_weak_fn\"")), -Annotation(Region(0x634,0x647), Attr("symbol-info","call_weak_fn 0x634 20")), -Annotation(Region(0x600,0x747), Attr("section","\".text\"")), -Annotation(Region(0x600,0x747), Attr("code-region","()")), -Annotation(Region(0x714,0x747), Attr("symbol","\"main\"")), -Annotation(Region(0x714,0x747), Attr("symbol-info","main 0x714 52")), -Annotation(Region(0x748,0x75B), Attr("section","\".fini\"")), -Annotation(Region(0x748,0x75B), Attr("code-region","()")), -Annotation(Region(0x75C,0x75F), Attr("section","\".rodata\"")), -Annotation(Region(0x760,0x79B), Attr("section","\".eh_frame_hdr\"")), -Annotation(Region(0x7A0,0x857), Attr("section","\".eh_frame\"")), -Annotation(Region(0x10DC8,0x1102F), Attr("segment","03 0x10DC8 632")), -Annotation(Region(0x10DD0,0x10DD7), Attr("section","\".fini_array\"")), -Annotation(Region(0x10DD8,0x10FB7), Attr("section","\".dynamic\"")), -Annotation(Region(0x10DC8,0x10DCF), Attr("section","\".init_array\"")), -Annotation(Region(0x10FB8,0x10FE7), Attr("section","\".got\"")), -Annotation(Region(0x10FE8,0x1101F), Attr("section","\".got.plt\"")), -Annotation(Region(0x11020,0x1102F), Attr("section","\".data\""))]), -Program(Tid(1_519, "%000005ef"), Attrs([]), - Subs([Sub(Tid(1_469, "@__cxa_finalize"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x5D0"), -Attr("stub","()")]), "__cxa_finalize", Args([Arg(Tid(1_520, "%000005f0"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("__cxa_finalize_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(871, "@__cxa_finalize"), - Attrs([Attr("address","0x5D0")]), Phis([]), -Defs([Def(Tid(1_119, "%0000045f"), Attrs([Attr("address","0x5D0"), -Attr("insn","adrp x16, #69632")]), Var("R16",Imm(64)), Int(69632,64)), -Def(Tid(1_126, "%00000466"), Attrs([Attr("address","0x5D4"), -Attr("insn","ldr x17, [x16, #0x8]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(1_132, "%0000046c"), Attrs([Attr("address","0x5D8"), -Attr("insn","add x16, x16, #0x8")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(8,64)))]), Jmps([Call(Tid(1_137, "%00000471"), - Attrs([Attr("address","0x5DC"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), -Sub(Tid(1_470, "@__do_global_dtors_aux"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x6C0")]), - "__do_global_dtors_aux", Args([Arg(Tid(1_521, "%000005f1"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("__do_global_dtors_aux_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(642, "@__do_global_dtors_aux"), - Attrs([Attr("address","0x6C0")]), Phis([]), Defs([Def(Tid(646, "%00000286"), - Attrs([Attr("address","0x6C0"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("#3",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(18446744073709551584,64))), -Def(Tid(652, "%0000028c"), Attrs([Attr("address","0x6C0"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("#3",Imm(64)),Var("R29",Imm(64)),LittleEndian(),64)), -Def(Tid(658, "%00000292"), Attrs([Attr("address","0x6C0"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("#3",Imm(64)),Int(8,64)),Var("R30",Imm(64)),LittleEndian(),64)), -Def(Tid(662, "%00000296"), Attrs([Attr("address","0x6C0"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("R31",Imm(64)), -Var("#3",Imm(64))), Def(Tid(668, "%0000029c"), - Attrs([Attr("address","0x6C4"), Attr("insn","mov x29, sp")]), - Var("R29",Imm(64)), Var("R31",Imm(64))), Def(Tid(676, "%000002a4"), - Attrs([Attr("address","0x6C8"), Attr("insn","str x19, [sp, #0x10]")]), - Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(16,64)),Var("R19",Imm(64)),LittleEndian(),64)), -Def(Tid(681, "%000002a9"), Attrs([Attr("address","0x6CC"), -Attr("insn","adrp x19, #69632")]), Var("R19",Imm(64)), Int(69632,64)), -Def(Tid(688, "%000002b0"), Attrs([Attr("address","0x6D0"), -Attr("insn","ldrb w0, [x19, #0x30]")]), Var("R0",Imm(64)), -UNSIGNED(64,Load(Var("mem",Mem(64,8)),PLUS(Var("R19",Imm(64)),Int(48,64)),LittleEndian(),8)))]), -Jmps([Goto(Tid(695, "%000002b7"), Attrs([Attr("address","0x6D4"), -Attr("insn","cbnz w0, #0x28")]), - NEQ(Extract(31,0,Var("R0",Imm(64))),Int(0,32)), -Direct(Tid(693, "%000002b5"))), Goto(Tid(1_509, "%000005e5"), Attrs([]), - Int(1,1), Direct(Tid(816, "%00000330")))])), Blk(Tid(816, "%00000330"), - Attrs([Attr("address","0x6D8")]), Phis([]), Defs([Def(Tid(819, "%00000333"), - Attrs([Attr("address","0x6D8"), Attr("insn","adrp x0, #65536")]), - Var("R0",Imm(64)), Int(65536,64)), Def(Tid(826, "%0000033a"), - Attrs([Attr("address","0x6DC"), Attr("insn","ldr x0, [x0, #0xfc8]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(4040,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(832, "%00000340"), Attrs([Attr("address","0x6E0"), -Attr("insn","cbz x0, #0x10")]), EQ(Var("R0",Imm(64)),Int(0,64)), -Direct(Tid(830, "%0000033e"))), Goto(Tid(1_510, "%000005e6"), Attrs([]), - Int(1,1), Direct(Tid(855, "%00000357")))])), Blk(Tid(855, "%00000357"), - Attrs([Attr("address","0x6E4")]), Phis([]), Defs([Def(Tid(858, "%0000035a"), - Attrs([Attr("address","0x6E4"), Attr("insn","adrp x0, #69632")]), - Var("R0",Imm(64)), Int(69632,64)), Def(Tid(865, "%00000361"), - Attrs([Attr("address","0x6E8"), Attr("insn","ldr x0, [x0, #0x28]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(40,64)),LittleEndian(),64)), -Def(Tid(870, "%00000366"), Attrs([Attr("address","0x6EC"), -Attr("insn","bl #-0x11c")]), Var("R30",Imm(64)), Int(1776,64))]), -Jmps([Call(Tid(873, "%00000369"), Attrs([Attr("address","0x6EC"), -Attr("insn","bl #-0x11c")]), Int(1,1), -(Direct(Tid(1_469, "@__cxa_finalize")),Direct(Tid(830, "%0000033e"))))])), -Blk(Tid(830, "%0000033e"), Attrs([Attr("address","0x6F0")]), Phis([]), -Defs([Def(Tid(838, "%00000346"), Attrs([Attr("address","0x6F0"), -Attr("insn","bl #-0xa0")]), Var("R30",Imm(64)), Int(1780,64))]), -Jmps([Call(Tid(840, "%00000348"), Attrs([Attr("address","0x6F0"), -Attr("insn","bl #-0xa0")]), Int(1,1), -(Direct(Tid(1_483, "@deregister_tm_clones")),Direct(Tid(842, "%0000034a"))))])), -Blk(Tid(842, "%0000034a"), Attrs([Attr("address","0x6F4")]), Phis([]), -Defs([Def(Tid(845, "%0000034d"), Attrs([Attr("address","0x6F4"), -Attr("insn","mov w0, #0x1")]), Var("R0",Imm(64)), Int(1,64)), -Def(Tid(853, "%00000355"), Attrs([Attr("address","0x6F8"), -Attr("insn","strb w0, [x19, #0x30]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R19",Imm(64)),Int(48,64)),Extract(7,0,Var("R0",Imm(64))),LittleEndian(),8))]), -Jmps([Goto(Tid(1_511, "%000005e7"), Attrs([]), Int(1,1), -Direct(Tid(693, "%000002b5")))])), Blk(Tid(693, "%000002b5"), - Attrs([Attr("address","0x6FC")]), Phis([]), Defs([Def(Tid(703, "%000002bf"), - Attrs([Attr("address","0x6FC"), Attr("insn","ldr x19, [sp, #0x10]")]), - Var("R19",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(16,64)),LittleEndian(),64)), -Def(Tid(710, "%000002c6"), Attrs([Attr("address","0x700"), -Attr("insn","ldp x29, x30, [sp], #0x20")]), Var("R29",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(715, "%000002cb"), Attrs([Attr("address","0x700"), -Attr("insn","ldp x29, x30, [sp], #0x20")]), Var("R30",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(719, "%000002cf"), Attrs([Attr("address","0x700"), -Attr("insn","ldp x29, x30, [sp], #0x20")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(32,64)))]), Jmps([Call(Tid(724, "%000002d4"), - Attrs([Attr("address","0x704"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), Sub(Tid(1_474, "@__libc_start_main"), - Attrs([Attr("c.proto","signed (*)(signed (*)(signed , char** , char** );* main, signed , char** , \nvoid* auxv)"), -Attr("address","0x5C0"), Attr("stub","()")]), "__libc_start_main", - Args([Arg(Tid(1_522, "%000005f2"), - Attrs([Attr("c.layout","**[ : 64]"), -Attr("c.data","Top:u64 ptr ptr"), -Attr("c.type","signed (*)(signed , char** , char** );*")]), - Var("__libc_start_main_main",Imm(64)), Var("R0",Imm(64)), In()), -Arg(Tid(1_523, "%000005f3"), Attrs([Attr("c.layout","[signed : 32]"), -Attr("c.data","Top:u32"), Attr("c.type","signed")]), - Var("__libc_start_main_arg2",Imm(32)), LOW(32,Var("R1",Imm(64))), In()), -Arg(Tid(1_524, "%000005f4"), Attrs([Attr("c.layout","**[char : 8]"), -Attr("c.data","Top:u8 ptr ptr"), Attr("c.type","char**")]), - Var("__libc_start_main_arg3",Imm(64)), Var("R2",Imm(64)), Both()), -Arg(Tid(1_525, "%000005f5"), Attrs([Attr("c.layout","*[ : 8]"), -Attr("c.data","{} ptr"), Attr("c.type","void*")]), - Var("__libc_start_main_auxv",Imm(64)), Var("R3",Imm(64)), Both()), -Arg(Tid(1_526, "%000005f6"), Attrs([Attr("c.layout","[signed : 32]"), -Attr("c.data","Top:u32"), Attr("c.type","signed")]), - Var("__libc_start_main_result",Imm(32)), LOW(32,Var("R0",Imm(64))), -Out())]), Blks([Blk(Tid(475, "@__libc_start_main"), - Attrs([Attr("address","0x5C0")]), Phis([]), -Defs([Def(Tid(1_097, "%00000449"), Attrs([Attr("address","0x5C0"), -Attr("insn","adrp x16, #69632")]), Var("R16",Imm(64)), Int(69632,64)), -Def(Tid(1_104, "%00000450"), Attrs([Attr("address","0x5C4"), -Attr("insn","ldr x17, [x16]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R16",Imm(64)),LittleEndian(),64)), -Def(Tid(1_110, "%00000456"), Attrs([Attr("address","0x5C8"), -Attr("insn","add x16, x16, #0x0")]), Var("R16",Imm(64)), -Var("R16",Imm(64)))]), Jmps([Call(Tid(1_115, "%0000045b"), - Attrs([Attr("address","0x5CC"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), Sub(Tid(1_475, "@_fini"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x748")]), - "_fini", Args([Arg(Tid(1_527, "%000005f7"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("_fini_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(31, "@_fini"), - Attrs([Attr("address","0x748")]), Phis([]), Defs([Def(Tid(37, "%00000025"), - Attrs([Attr("address","0x74C"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("#0",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(18446744073709551600,64))), -Def(Tid(43, "%0000002b"), Attrs([Attr("address","0x74C"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("#0",Imm(64)),Var("R29",Imm(64)),LittleEndian(),64)), -Def(Tid(49, "%00000031"), Attrs([Attr("address","0x74C"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("#0",Imm(64)),Int(8,64)),Var("R30",Imm(64)),LittleEndian(),64)), -Def(Tid(53, "%00000035"), Attrs([Attr("address","0x74C"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("R31",Imm(64)), -Var("#0",Imm(64))), Def(Tid(59, "%0000003b"), Attrs([Attr("address","0x750"), -Attr("insn","mov x29, sp")]), Var("R29",Imm(64)), Var("R31",Imm(64))), -Def(Tid(66, "%00000042"), Attrs([Attr("address","0x754"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R29",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(71, "%00000047"), Attrs([Attr("address","0x754"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R30",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(75, "%0000004b"), Attrs([Attr("address","0x754"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(16,64)))]), Jmps([Call(Tid(80, "%00000050"), - Attrs([Attr("address","0x758"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), Sub(Tid(1_476, "@_init"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x580")]), - "_init", Args([Arg(Tid(1_528, "%000005f8"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("_init_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(1_298, "@_init"), - Attrs([Attr("address","0x580")]), Phis([]), -Defs([Def(Tid(1_304, "%00000518"), Attrs([Attr("address","0x584"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("#5",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(18446744073709551600,64))), -Def(Tid(1_310, "%0000051e"), Attrs([Attr("address","0x584"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("#5",Imm(64)),Var("R29",Imm(64)),LittleEndian(),64)), -Def(Tid(1_316, "%00000524"), Attrs([Attr("address","0x584"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("#5",Imm(64)),Int(8,64)),Var("R30",Imm(64)),LittleEndian(),64)), -Def(Tid(1_320, "%00000528"), Attrs([Attr("address","0x584"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("R31",Imm(64)), -Var("#5",Imm(64))), Def(Tid(1_326, "%0000052e"), - Attrs([Attr("address","0x588"), Attr("insn","mov x29, sp")]), - Var("R29",Imm(64)), Var("R31",Imm(64))), Def(Tid(1_331, "%00000533"), - Attrs([Attr("address","0x58C"), Attr("insn","bl #0xa8")]), - Var("R30",Imm(64)), Int(1424,64))]), Jmps([Call(Tid(1_333, "%00000535"), - Attrs([Attr("address","0x58C"), Attr("insn","bl #0xa8")]), Int(1,1), -(Direct(Tid(1_481, "@call_weak_fn")),Direct(Tid(1_335, "%00000537"))))])), -Blk(Tid(1_335, "%00000537"), Attrs([Attr("address","0x590")]), Phis([]), -Defs([Def(Tid(1_340, "%0000053c"), Attrs([Attr("address","0x590"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R29",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(1_345, "%00000541"), Attrs([Attr("address","0x590"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R30",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(1_349, "%00000545"), Attrs([Attr("address","0x590"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(16,64)))]), Jmps([Call(Tid(1_354, "%0000054a"), - Attrs([Attr("address","0x594"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), Sub(Tid(1_477, "@_start"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x600"), -Attr("stub","()"), Attr("entry-point","()")]), "_start", - Args([Arg(Tid(1_529, "%000005f9"), Attrs([Attr("c.layout","[signed : 32]"), -Attr("c.data","Top:u32"), Attr("c.type","signed")]), - Var("_start_result",Imm(32)), LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(412, "@_start"), Attrs([Attr("address","0x600")]), Phis([]), -Defs([Def(Tid(417, "%000001a1"), Attrs([Attr("address","0x604"), -Attr("insn","mov x29, #0x0")]), Var("R29",Imm(64)), Int(0,64)), -Def(Tid(422, "%000001a6"), Attrs([Attr("address","0x608"), -Attr("insn","mov x30, #0x0")]), Var("R30",Imm(64)), Int(0,64)), -Def(Tid(428, "%000001ac"), Attrs([Attr("address","0x60C"), -Attr("insn","mov x5, x0")]), Var("R5",Imm(64)), Var("R0",Imm(64))), -Def(Tid(435, "%000001b3"), Attrs([Attr("address","0x610"), -Attr("insn","ldr x1, [sp]")]), Var("R1",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(441, "%000001b9"), Attrs([Attr("address","0x614"), -Attr("insn","add x2, sp, #0x8")]), Var("R2",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(8,64))), Def(Tid(447, "%000001bf"), - Attrs([Attr("address","0x618"), Attr("insn","mov x6, sp")]), - Var("R6",Imm(64)), Var("R31",Imm(64))), Def(Tid(452, "%000001c4"), - Attrs([Attr("address","0x61C"), Attr("insn","adrp x0, #65536")]), - Var("R0",Imm(64)), Int(65536,64)), Def(Tid(459, "%000001cb"), - Attrs([Attr("address","0x620"), Attr("insn","ldr x0, [x0, #0xfd8]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(4056,64)),LittleEndian(),64)), -Def(Tid(464, "%000001d0"), Attrs([Attr("address","0x624"), -Attr("insn","mov x3, #0x0")]), Var("R3",Imm(64)), Int(0,64)), -Def(Tid(469, "%000001d5"), Attrs([Attr("address","0x628"), -Attr("insn","mov x4, #0x0")]), Var("R4",Imm(64)), Int(0,64)), -Def(Tid(474, "%000001da"), Attrs([Attr("address","0x62C"), -Attr("insn","bl #-0x6c")]), Var("R30",Imm(64)), Int(1584,64))]), -Jmps([Call(Tid(477, "%000001dd"), Attrs([Attr("address","0x62C"), -Attr("insn","bl #-0x6c")]), Int(1,1), -(Direct(Tid(1_474, "@__libc_start_main")),Direct(Tid(479, "%000001df"))))])), -Blk(Tid(479, "%000001df"), Attrs([Attr("address","0x630")]), Phis([]), -Defs([Def(Tid(482, "%000001e2"), Attrs([Attr("address","0x630"), -Attr("insn","bl #-0x40")]), Var("R30",Imm(64)), Int(1588,64))]), -Jmps([Call(Tid(485, "%000001e5"), Attrs([Attr("address","0x630"), -Attr("insn","bl #-0x40")]), Int(1,1), -(Direct(Tid(1_480, "@abort")),Direct(Tid(1_512, "%000005e8"))))])), -Blk(Tid(1_512, "%000005e8"), Attrs([]), Phis([]), Defs([]), -Jmps([Call(Tid(1_513, "%000005e9"), Attrs([]), Int(1,1), -(Direct(Tid(1_481, "@call_weak_fn")),))]))])), Sub(Tid(1_480, "@abort"), - Attrs([Attr("noreturn","()"), Attr("c.proto","void (*)(void)"), -Attr("address","0x5F0"), Attr("stub","()")]), "abort", Args([]), -Blks([Blk(Tid(483, "@abort"), Attrs([Attr("address","0x5F0")]), Phis([]), -Defs([Def(Tid(1_163, "%0000048b"), Attrs([Attr("address","0x5F0"), -Attr("insn","adrp x16, #69632")]), Var("R16",Imm(64)), Int(69632,64)), -Def(Tid(1_170, "%00000492"), Attrs([Attr("address","0x5F4"), -Attr("insn","ldr x17, [x16, #0x18]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(24,64)),LittleEndian(),64)), -Def(Tid(1_176, "%00000498"), Attrs([Attr("address","0x5F8"), -Attr("insn","add x16, x16, #0x18")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(24,64)))]), Jmps([Call(Tid(1_181, "%0000049d"), - Attrs([Attr("address","0x5FC"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), Sub(Tid(1_481, "@call_weak_fn"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x634")]), - "call_weak_fn", Args([Arg(Tid(1_530, "%000005fa"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("call_weak_fn_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(487, "@call_weak_fn"), - Attrs([Attr("address","0x634")]), Phis([]), Defs([Def(Tid(490, "%000001ea"), - Attrs([Attr("address","0x634"), Attr("insn","adrp x0, #65536")]), - Var("R0",Imm(64)), Int(65536,64)), Def(Tid(497, "%000001f1"), - Attrs([Attr("address","0x638"), Attr("insn","ldr x0, [x0, #0xfd0]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(4048,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(503, "%000001f7"), Attrs([Attr("address","0x63C"), -Attr("insn","cbz x0, #0x8")]), EQ(Var("R0",Imm(64)),Int(0,64)), -Direct(Tid(501, "%000001f5"))), Goto(Tid(1_514, "%000005ea"), Attrs([]), - Int(1,1), Direct(Tid(935, "%000003a7")))])), Blk(Tid(501, "%000001f5"), - Attrs([Attr("address","0x644")]), Phis([]), Defs([]), -Jmps([Call(Tid(509, "%000001fd"), Attrs([Attr("address","0x644"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))])), -Blk(Tid(935, "%000003a7"), Attrs([Attr("address","0x640")]), Phis([]), -Defs([]), Jmps([Goto(Tid(938, "%000003aa"), Attrs([Attr("address","0x640"), -Attr("insn","b #-0x60")]), Int(1,1), Direct(Tid(936, "@__gmon_start__")))])), -Blk(Tid(936, "@__gmon_start__"), Attrs([Attr("address","0x5E0")]), Phis([]), -Defs([Def(Tid(1_141, "%00000475"), Attrs([Attr("address","0x5E0"), -Attr("insn","adrp x16, #69632")]), Var("R16",Imm(64)), Int(69632,64)), -Def(Tid(1_148, "%0000047c"), Attrs([Attr("address","0x5E4"), -Attr("insn","ldr x17, [x16, #0x10]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(16,64)),LittleEndian(),64)), -Def(Tid(1_154, "%00000482"), Attrs([Attr("address","0x5E8"), -Attr("insn","add x16, x16, #0x10")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(16,64)))]), Jmps([Call(Tid(1_159, "%00000487"), - Attrs([Attr("address","0x5EC"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), -Sub(Tid(1_483, "@deregister_tm_clones"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x650")]), - "deregister_tm_clones", Args([Arg(Tid(1_531, "%000005fb"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("deregister_tm_clones_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(515, "@deregister_tm_clones"), - Attrs([Attr("address","0x650")]), Phis([]), Defs([Def(Tid(518, "%00000206"), - Attrs([Attr("address","0x650"), Attr("insn","adrp x0, #69632")]), - Var("R0",Imm(64)), Int(69632,64)), Def(Tid(524, "%0000020c"), - Attrs([Attr("address","0x654"), Attr("insn","add x0, x0, #0x30")]), - Var("R0",Imm(64)), PLUS(Var("R0",Imm(64)),Int(48,64))), -Def(Tid(529, "%00000211"), Attrs([Attr("address","0x658"), -Attr("insn","adrp x1, #69632")]), Var("R1",Imm(64)), Int(69632,64)), -Def(Tid(535, "%00000217"), Attrs([Attr("address","0x65C"), -Attr("insn","add x1, x1, #0x30")]), Var("R1",Imm(64)), -PLUS(Var("R1",Imm(64)),Int(48,64))), Def(Tid(541, "%0000021d"), - Attrs([Attr("address","0x660"), Attr("insn","cmp x1, x0")]), - Var("#1",Imm(64)), NOT(Var("R0",Imm(64)))), Def(Tid(546, "%00000222"), - Attrs([Attr("address","0x660"), Attr("insn","cmp x1, x0")]), - Var("#2",Imm(64)), PLUS(Var("R1",Imm(64)),NOT(Var("R0",Imm(64))))), -Def(Tid(552, "%00000228"), Attrs([Attr("address","0x660"), -Attr("insn","cmp x1, x0")]), Var("VF",Imm(1)), -NEQ(SIGNED(65,PLUS(Var("#2",Imm(64)),Int(1,64))),PLUS(PLUS(SIGNED(65,Var("R1",Imm(64))),SIGNED(65,Var("#1",Imm(64)))),Int(1,65)))), -Def(Tid(558, "%0000022e"), Attrs([Attr("address","0x660"), -Attr("insn","cmp x1, x0")]), Var("CF",Imm(1)), -NEQ(UNSIGNED(65,PLUS(Var("#2",Imm(64)),Int(1,64))),PLUS(PLUS(UNSIGNED(65,Var("R1",Imm(64))),UNSIGNED(65,Var("#1",Imm(64)))),Int(1,65)))), -Def(Tid(562, "%00000232"), Attrs([Attr("address","0x660"), -Attr("insn","cmp x1, x0")]), Var("ZF",Imm(1)), -EQ(PLUS(Var("#2",Imm(64)),Int(1,64)),Int(0,64))), Def(Tid(566, "%00000236"), - Attrs([Attr("address","0x660"), Attr("insn","cmp x1, x0")]), - Var("NF",Imm(1)), Extract(63,63,PLUS(Var("#2",Imm(64)),Int(1,64))))]), -Jmps([Goto(Tid(572, "%0000023c"), Attrs([Attr("address","0x664"), -Attr("insn","b.eq #0x18")]), EQ(Var("ZF",Imm(1)),Int(1,1)), -Direct(Tid(570, "%0000023a"))), Goto(Tid(1_515, "%000005eb"), Attrs([]), - Int(1,1), Direct(Tid(905, "%00000389")))])), Blk(Tid(905, "%00000389"), - Attrs([Attr("address","0x668")]), Phis([]), Defs([Def(Tid(908, "%0000038c"), - Attrs([Attr("address","0x668"), Attr("insn","adrp x1, #65536")]), - Var("R1",Imm(64)), Int(65536,64)), Def(Tid(915, "%00000393"), - Attrs([Attr("address","0x66C"), Attr("insn","ldr x1, [x1, #0xfc0]")]), - Var("R1",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R1",Imm(64)),Int(4032,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(920, "%00000398"), Attrs([Attr("address","0x670"), -Attr("insn","cbz x1, #0xc")]), EQ(Var("R1",Imm(64)),Int(0,64)), -Direct(Tid(570, "%0000023a"))), Goto(Tid(1_516, "%000005ec"), Attrs([]), - Int(1,1), Direct(Tid(924, "%0000039c")))])), Blk(Tid(570, "%0000023a"), - Attrs([Attr("address","0x67C")]), Phis([]), Defs([]), -Jmps([Call(Tid(578, "%00000242"), Attrs([Attr("address","0x67C"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))])), -Blk(Tid(924, "%0000039c"), Attrs([Attr("address","0x674")]), Phis([]), -Defs([Def(Tid(928, "%000003a0"), Attrs([Attr("address","0x674"), -Attr("insn","mov x16, x1")]), Var("R16",Imm(64)), Var("R1",Imm(64)))]), -Jmps([Call(Tid(933, "%000003a5"), Attrs([Attr("address","0x678"), -Attr("insn","br x16")]), Int(1,1), (Indirect(Var("R16",Imm(64))),))]))])), -Sub(Tid(1_486, "@frame_dummy"), Attrs([Attr("c.proto","signed (*)(void)"), -Attr("address","0x710")]), "frame_dummy", Args([Arg(Tid(1_532, "%000005fc"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("frame_dummy_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(730, "@frame_dummy"), - Attrs([Attr("address","0x710")]), Phis([]), Defs([]), -Jmps([Call(Tid(732, "%000002dc"), Attrs([Attr("address","0x710"), -Attr("insn","b #-0x90")]), Int(1,1), -(Direct(Tid(1_488, "@register_tm_clones")),))]))])), Sub(Tid(1_487, "@main"), - Attrs([Attr("c.proto","signed (*)(signed argc, const char** argv)"), -Attr("address","0x714")]), "main", Args([Arg(Tid(1_533, "%000005fd"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("main_argc",Imm(32)), -LOW(32,Var("R0",Imm(64))), In()), Arg(Tid(1_534, "%000005fe"), - Attrs([Attr("c.layout","**[char : 8]"), Attr("c.data","Top:u8 ptr ptr"), -Attr("c.type"," const char**")]), Var("main_argv",Imm(64)), -Var("R1",Imm(64)), Both()), Arg(Tid(1_535, "%000005ff"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("main_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(734, "@main"), - Attrs([Attr("address","0x714")]), Phis([]), Defs([Def(Tid(738, "%000002e2"), - Attrs([Attr("address","0x714"), Attr("insn","sub sp, sp, #0x10")]), - Var("R31",Imm(64)), PLUS(Var("R31",Imm(64)),Int(18446744073709551600,64))), -Def(Tid(746, "%000002ea"), Attrs([Attr("address","0x718"), -Attr("insn","str w0, [sp, #0xc]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(12,64)),Extract(31,0,Var("R0",Imm(64))),LittleEndian(),32)), -Def(Tid(751, "%000002ef"), Attrs([Attr("address","0x71C"), -Attr("insn","adrp x8, #69632")]), Var("R8",Imm(64)), Int(69632,64)), -Def(Tid(756, "%000002f4"), Attrs([Attr("address","0x720"), -Attr("insn","mov w9, #0x1")]), Var("R9",Imm(64)), Int(1,64)), -Def(Tid(764, "%000002fc"), Attrs([Attr("address","0x724"), -Attr("insn","str w9, [x8, #0x34]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R8",Imm(64)),Int(52,64)),Extract(31,0,Var("R9",Imm(64))),LittleEndian(),32)), -Def(Tid(771, "%00000303"), Attrs([Attr("address","0x728"), -Attr("insn","ldr w10, [sp, #0xc]")]), Var("R10",Imm(64)), -UNSIGNED(64,Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(12,64)),LittleEndian(),32))), -Def(Tid(776, "%00000308"), Attrs([Attr("address","0x72C"), -Attr("insn","adrp x9, #69632")]), Var("R9",Imm(64)), Int(69632,64)), -Def(Tid(784, "%00000310"), Attrs([Attr("address","0x730"), -Attr("insn","str w10, [x9, #0x38]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R9",Imm(64)),Int(56,64)),Extract(31,0,Var("R10",Imm(64))),LittleEndian(),32)), -Def(Tid(789, "%00000315"), Attrs([Attr("address","0x734"), -Attr("insn","mov w0, wzr")]), Var("R0",Imm(64)), Int(0,64)), -Def(Tid(796, "%0000031c"), Attrs([Attr("address","0x738"), -Attr("insn","str wzr, [x9, #0x38]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R9",Imm(64)),Int(56,64)),Int(0,32),LittleEndian(),32)), -Def(Tid(803, "%00000323"), Attrs([Attr("address","0x73C"), -Attr("insn","str wzr, [x8, #0x34]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R8",Imm(64)),Int(52,64)),Int(0,32),LittleEndian(),32)), -Def(Tid(809, "%00000329"), Attrs([Attr("address","0x740"), -Attr("insn","add sp, sp, #0x10")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(16,64)))]), Jmps([Call(Tid(814, "%0000032e"), - Attrs([Attr("address","0x744"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), -Sub(Tid(1_488, "@register_tm_clones"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x680")]), - "register_tm_clones", Args([Arg(Tid(1_536, "%00000600"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("register_tm_clones_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(580, "@register_tm_clones"), Attrs([Attr("address","0x680")]), - Phis([]), Defs([Def(Tid(583, "%00000247"), Attrs([Attr("address","0x680"), -Attr("insn","adrp x0, #69632")]), Var("R0",Imm(64)), Int(69632,64)), -Def(Tid(589, "%0000024d"), Attrs([Attr("address","0x684"), -Attr("insn","add x0, x0, #0x30")]), Var("R0",Imm(64)), -PLUS(Var("R0",Imm(64)),Int(48,64))), Def(Tid(594, "%00000252"), - Attrs([Attr("address","0x688"), Attr("insn","adrp x1, #69632")]), - Var("R1",Imm(64)), Int(69632,64)), Def(Tid(600, "%00000258"), - Attrs([Attr("address","0x68C"), Attr("insn","add x1, x1, #0x30")]), - Var("R1",Imm(64)), PLUS(Var("R1",Imm(64)),Int(48,64))), -Def(Tid(607, "%0000025f"), Attrs([Attr("address","0x690"), -Attr("insn","sub x1, x1, x0")]), Var("R1",Imm(64)), -PLUS(PLUS(Var("R1",Imm(64)),NOT(Var("R0",Imm(64)))),Int(1,64))), -Def(Tid(613, "%00000265"), Attrs([Attr("address","0x694"), -Attr("insn","lsr x2, x1, #63")]), Var("R2",Imm(64)), -Concat(Int(0,63),Extract(63,63,Var("R1",Imm(64))))), -Def(Tid(620, "%0000026c"), Attrs([Attr("address","0x698"), -Attr("insn","add x1, x2, x1, asr #3")]), Var("R1",Imm(64)), -PLUS(Var("R2",Imm(64)),ARSHIFT(Var("R1",Imm(64)),Int(3,3)))), -Def(Tid(626, "%00000272"), Attrs([Attr("address","0x69C"), -Attr("insn","asr x1, x1, #1")]), Var("R1",Imm(64)), -SIGNED(64,Extract(63,1,Var("R1",Imm(64)))))]), -Jmps([Goto(Tid(632, "%00000278"), Attrs([Attr("address","0x6A0"), -Attr("insn","cbz x1, #0x18")]), EQ(Var("R1",Imm(64)),Int(0,64)), -Direct(Tid(630, "%00000276"))), Goto(Tid(1_517, "%000005ed"), Attrs([]), - Int(1,1), Direct(Tid(875, "%0000036b")))])), Blk(Tid(875, "%0000036b"), - Attrs([Attr("address","0x6A4")]), Phis([]), Defs([Def(Tid(878, "%0000036e"), - Attrs([Attr("address","0x6A4"), Attr("insn","adrp x2, #65536")]), - Var("R2",Imm(64)), Int(65536,64)), Def(Tid(885, "%00000375"), - Attrs([Attr("address","0x6A8"), Attr("insn","ldr x2, [x2, #0xfe0]")]), - Var("R2",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R2",Imm(64)),Int(4064,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(890, "%0000037a"), Attrs([Attr("address","0x6AC"), -Attr("insn","cbz x2, #0xc")]), EQ(Var("R2",Imm(64)),Int(0,64)), -Direct(Tid(630, "%00000276"))), Goto(Tid(1_518, "%000005ee"), Attrs([]), - Int(1,1), Direct(Tid(894, "%0000037e")))])), Blk(Tid(630, "%00000276"), - Attrs([Attr("address","0x6B8")]), Phis([]), Defs([]), -Jmps([Call(Tid(638, "%0000027e"), Attrs([Attr("address","0x6B8"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))])), -Blk(Tid(894, "%0000037e"), Attrs([Attr("address","0x6B0")]), Phis([]), -Defs([Def(Tid(898, "%00000382"), Attrs([Attr("address","0x6B0"), -Attr("insn","mov x16, x2")]), Var("R16",Imm(64)), Var("R2",Imm(64)))]), -Jmps([Call(Tid(903, "%00000387"), Attrs([Attr("address","0x6B4"), -Attr("insn","br x16")]), Int(1,1), -(Indirect(Var("R16",Imm(64))),))]))]))]))) \ No newline at end of file diff --git a/src/test/correct/basic_lock_security_write/clang/basic_lock_security_write.bir b/src/test/correct/basic_lock_security_write/clang/basic_lock_security_write.bir deleted file mode 100644 index 55c23e510..000000000 --- a/src/test/correct/basic_lock_security_write/clang/basic_lock_security_write.bir +++ /dev/null @@ -1,235 +0,0 @@ -000005ef: program -000005bd: sub __cxa_finalize(__cxa_finalize_result) -000005f0: __cxa_finalize_result :: out u32 = low:32[R0] - -00000367: -0000045f: R16 := 0x11000 -00000466: R17 := mem[R16 + 8, el]:u64 -0000046c: R16 := R16 + 8 -00000471: call R17 with noreturn - -000005be: sub __do_global_dtors_aux(__do_global_dtors_aux_result) -000005f1: __do_global_dtors_aux_result :: out u32 = low:32[R0] - -00000282: -00000286: #3 := R31 - 0x20 -0000028c: mem := mem with [#3, el]:u64 <- R29 -00000292: mem := mem with [#3 + 8, el]:u64 <- R30 -00000296: R31 := #3 -0000029c: R29 := R31 -000002a4: mem := mem with [R31 + 0x10, el]:u64 <- R19 -000002a9: R19 := 0x11000 -000002b0: R0 := pad:64[mem[R19 + 0x30]] -000002b7: when 31:0[R0] <> 0 goto %000002b5 -000005e5: goto %00000330 - -00000330: -00000333: R0 := 0x10000 -0000033a: R0 := mem[R0 + 0xFC8, el]:u64 -00000340: when R0 = 0 goto %0000033e -000005e6: goto %00000357 - -00000357: -0000035a: R0 := 0x11000 -00000361: R0 := mem[R0 + 0x28, el]:u64 -00000366: R30 := 0x6F0 -00000369: call @__cxa_finalize with return %0000033e - -0000033e: -00000346: R30 := 0x6F4 -00000348: call @deregister_tm_clones with return %0000034a - -0000034a: -0000034d: R0 := 1 -00000355: mem := mem with [R19 + 0x30] <- 7:0[R0] -000005e7: goto %000002b5 - -000002b5: -000002bf: R19 := mem[R31 + 0x10, el]:u64 -000002c6: R29 := mem[R31, el]:u64 -000002cb: R30 := mem[R31 + 8, el]:u64 -000002cf: R31 := R31 + 0x20 -000002d4: call R30 with noreturn - -000005c2: sub __libc_start_main(__libc_start_main_main, __libc_start_main_arg2, __libc_start_main_arg3, __libc_start_main_auxv, __libc_start_main_result) -000005f2: __libc_start_main_main :: in u64 = R0 -000005f3: __libc_start_main_arg2 :: in u32 = low:32[R1] -000005f4: __libc_start_main_arg3 :: in out u64 = R2 -000005f5: __libc_start_main_auxv :: in out u64 = R3 -000005f6: __libc_start_main_result :: out u32 = low:32[R0] - -000001db: -00000449: R16 := 0x11000 -00000450: R17 := mem[R16, el]:u64 -00000456: R16 := R16 -0000045b: call R17 with noreturn - -000005c3: sub _fini(_fini_result) -000005f7: _fini_result :: out u32 = low:32[R0] - -0000001f: -00000025: #0 := R31 - 0x10 -0000002b: mem := mem with [#0, el]:u64 <- R29 -00000031: mem := mem with [#0 + 8, el]:u64 <- R30 -00000035: R31 := #0 -0000003b: R29 := R31 -00000042: R29 := mem[R31, el]:u64 -00000047: R30 := mem[R31 + 8, el]:u64 -0000004b: R31 := R31 + 0x10 -00000050: call R30 with noreturn - -000005c4: sub _init(_init_result) -000005f8: _init_result :: out u32 = low:32[R0] - -00000512: -00000518: #5 := R31 - 0x10 -0000051e: mem := mem with [#5, el]:u64 <- R29 -00000524: mem := mem with [#5 + 8, el]:u64 <- R30 -00000528: R31 := #5 -0000052e: R29 := R31 -00000533: R30 := 0x590 -00000535: call @call_weak_fn with return %00000537 - -00000537: -0000053c: R29 := mem[R31, el]:u64 -00000541: R30 := mem[R31 + 8, el]:u64 -00000545: R31 := R31 + 0x10 -0000054a: call R30 with noreturn - -000005c5: sub _start(_start_result) -000005f9: _start_result :: out u32 = low:32[R0] - -0000019c: -000001a1: R29 := 0 -000001a6: R30 := 0 -000001ac: R5 := R0 -000001b3: R1 := mem[R31, el]:u64 -000001b9: R2 := R31 + 8 -000001bf: R6 := R31 -000001c4: R0 := 0x10000 -000001cb: R0 := mem[R0 + 0xFD8, el]:u64 -000001d0: R3 := 0 -000001d5: R4 := 0 -000001da: R30 := 0x630 -000001dd: call @__libc_start_main with return %000001df - -000001df: -000001e2: R30 := 0x634 -000001e5: call @abort with return %000005e8 - -000005e8: -000005e9: call @call_weak_fn with noreturn - -000005c8: sub abort() - - -000001e3: -0000048b: R16 := 0x11000 -00000492: R17 := mem[R16 + 0x18, el]:u64 -00000498: R16 := R16 + 0x18 -0000049d: call R17 with noreturn - -000005c9: sub call_weak_fn(call_weak_fn_result) -000005fa: call_weak_fn_result :: out u32 = low:32[R0] - -000001e7: -000001ea: R0 := 0x10000 -000001f1: R0 := mem[R0 + 0xFD0, el]:u64 -000001f7: when R0 = 0 goto %000001f5 -000005ea: goto %000003a7 - -000001f5: -000001fd: call R30 with noreturn - -000003a7: -000003aa: goto @__gmon_start__ - -000003a8: -00000475: R16 := 0x11000 -0000047c: R17 := mem[R16 + 0x10, el]:u64 -00000482: R16 := R16 + 0x10 -00000487: call R17 with noreturn - -000005cb: sub deregister_tm_clones(deregister_tm_clones_result) -000005fb: deregister_tm_clones_result :: out u32 = low:32[R0] - -00000203: -00000206: R0 := 0x11000 -0000020c: R0 := R0 + 0x30 -00000211: R1 := 0x11000 -00000217: R1 := R1 + 0x30 -0000021d: #1 := ~R0 -00000222: #2 := R1 + ~R0 -00000228: VF := extend:65[#2 + 1] <> extend:65[R1] + extend:65[#1] + 1 -0000022e: CF := pad:65[#2 + 1] <> pad:65[R1] + pad:65[#1] + 1 -00000232: ZF := #2 + 1 = 0 -00000236: NF := 63:63[#2 + 1] -0000023c: when ZF goto %0000023a -000005eb: goto %00000389 - -00000389: -0000038c: R1 := 0x10000 -00000393: R1 := mem[R1 + 0xFC0, el]:u64 -00000398: when R1 = 0 goto %0000023a -000005ec: goto %0000039c - -0000023a: -00000242: call R30 with noreturn - -0000039c: -000003a0: R16 := R1 -000003a5: call R16 with noreturn - -000005ce: sub frame_dummy(frame_dummy_result) -000005fc: frame_dummy_result :: out u32 = low:32[R0] - -000002da: -000002dc: call @register_tm_clones with noreturn - -000005cf: sub main(main_argc, main_argv, main_result) -000005fd: main_argc :: in u32 = low:32[R0] -000005fe: main_argv :: in out u64 = R1 -000005ff: main_result :: out u32 = low:32[R0] - -000002de: -000002e2: R31 := R31 - 0x10 -000002ea: mem := mem with [R31 + 0xC, el]:u32 <- 31:0[R0] -000002ef: R8 := 0x11000 -000002f4: R9 := 1 -000002fc: mem := mem with [R8 + 0x34, el]:u32 <- 31:0[R9] -00000303: R10 := pad:64[mem[R31 + 0xC, el]:u32] -00000308: R9 := 0x11000 -00000310: mem := mem with [R9 + 0x38, el]:u32 <- 31:0[R10] -00000315: R0 := 0 -0000031c: mem := mem with [R9 + 0x38, el]:u32 <- 0 -00000323: mem := mem with [R8 + 0x34, el]:u32 <- 0 -00000329: R31 := R31 + 0x10 -0000032e: call R30 with noreturn - -000005d0: sub register_tm_clones(register_tm_clones_result) -00000600: register_tm_clones_result :: out u32 = low:32[R0] - -00000244: -00000247: R0 := 0x11000 -0000024d: R0 := R0 + 0x30 -00000252: R1 := 0x11000 -00000258: R1 := R1 + 0x30 -0000025f: R1 := R1 + ~R0 + 1 -00000265: R2 := 0.63:63[R1] -0000026c: R1 := R2 + (R1 ~>> 3) -00000272: R1 := extend:64[63:1[R1]] -00000278: when R1 = 0 goto %00000276 -000005ed: goto %0000036b - -0000036b: -0000036e: R2 := 0x10000 -00000375: R2 := mem[R2 + 0xFE0, el]:u64 -0000037a: when R2 = 0 goto %00000276 -000005ee: goto %0000037e - -00000276: -0000027e: call R30 with noreturn - -0000037e: -00000382: R16 := R2 -00000387: call R16 with noreturn diff --git a/src/test/correct/basic_lock_security_write/clang/basic_lock_security_write.expected b/src/test/correct/basic_lock_security_write/clang/basic_lock_security_write.expected index 1758742b2..a59fcf214 100644 --- a/src/test/correct/basic_lock_security_write/clang/basic_lock_security_write.expected +++ b/src/test/correct/basic_lock_security_write/clang/basic_lock_security_write.expected @@ -1,21 +1,15 @@ var {:extern} Gamma_R0: bool; -var {:extern} Gamma_R10: bool; -var {:extern} Gamma_R31: bool; var {:extern} Gamma_R8: bool; var {:extern} Gamma_R9: bool; var {:extern} Gamma_mem: [bv64]bool; -var {:extern} Gamma_stack: [bv64]bool; var {:extern} R0: bv64; -var {:extern} R10: bv64; -var {:extern} R31: bv64; var {:extern} R8: bv64; var {:extern} R9: bv64; var {:extern} mem: [bv64]bv8; -var {:extern} stack: [bv64]bv8; const {:extern} $x_addr: bv64; -axiom ($x_addr == 69688bv64); +axiom ($x_addr == 131096bv64); const {:extern} $z_addr: bv64; -axiom ($z_addr == 69684bv64); +axiom ($z_addr == 131092bv64); function {:extern} L(mem$in: [bv64]bv8, index: bv64) returns (bool) { (if (index == $x_addr) then (memory_load32_le(mem$in, $z_addr) == 0bv32) else (if (index == $z_addr) then true else false)) } @@ -25,6 +19,10 @@ function {:extern} gamma_load32(gammaMap: [bv64]bool, index: bv64) returns (bool (gammaMap[bvadd64(index, 3bv64)] && (gammaMap[bvadd64(index, 2bv64)] && (gammaMap[bvadd64(index, 1bv64)] && gammaMap[index]))) } +function {:extern} gamma_load64(gammaMap: [bv64]bool, index: bv64) returns (bool) { + (gammaMap[bvadd64(index, 7bv64)] && (gammaMap[bvadd64(index, 6bv64)] && (gammaMap[bvadd64(index, 5bv64)] && (gammaMap[bvadd64(index, 4bv64)] && (gammaMap[bvadd64(index, 3bv64)] && (gammaMap[bvadd64(index, 2bv64)] && (gammaMap[bvadd64(index, 1bv64)] && gammaMap[index]))))))) +} + function {:extern} gamma_store32(gammaMap: [bv64]bool, index: bv64, value: bool) returns ([bv64]bool) { gammaMap[index := value][bvadd64(index, 1bv64) := value][bvadd64(index, 2bv64) := value][bvadd64(index, 3bv64) := value] } @@ -41,16 +39,17 @@ function {:extern} memory_store32_le(memory: [bv64]bv8, index: bv64, value: bv32 memory[index := value[8:0]][bvadd64(index, 1bv64) := value[16:8]][bvadd64(index, 2bv64) := value[24:16]][bvadd64(index, 3bv64) := value[32:24]] } -function {:extern} {:bvbuiltin "zero_extend 32"} zero_extend32_32(bv32) returns (bv64); procedure {:extern} rely(); modifies Gamma_mem, mem; ensures (forall i: bv64 :: (((mem[i] == old(mem[i])) ==> (Gamma_mem[i] == old(Gamma_mem[i]))))); ensures ((memory_load32_le(mem, $z_addr) == old(memory_load32_le(mem, $z_addr))) && (memory_load32_le(mem, $x_addr) == old(memory_load32_le(mem, $x_addr)))); - free ensures (memory_load32_le(mem, 1884bv64) == 131073bv32); - free ensures (memory_load64_le(mem, 69064bv64) == 1808bv64); - free ensures (memory_load64_le(mem, 69072bv64) == 1728bv64); - free ensures (memory_load64_le(mem, 69592bv64) == 1812bv64); - free ensures (memory_load64_le(mem, 69672bv64) == 69672bv64); + free ensures (memory_load32_le(mem, 2312bv64) == 131073bv32); + free ensures (memory_load64_le(mem, 130424bv64) == 2256bv64); + free ensures (memory_load64_le(mem, 130432bv64) == 2176bv64); + free ensures (memory_load64_le(mem, 131032bv64) == 131092bv64); + free ensures (memory_load64_le(mem, 131040bv64) == 131096bv64); + free ensures (memory_load64_le(mem, 131056bv64) == 2260bv64); + free ensures (memory_load64_le(mem, 131080bv64) == 131080bv64); procedure {:extern} rely_transitive(); modifies Gamma_mem, mem; @@ -77,83 +76,68 @@ implementation {:extern} guarantee_reflexive() assert ((memory_load32_le(mem, $z_addr) == 0bv32) ==> ((memory_load32_le(mem, $x_addr) == memory_load32_le(mem, $x_addr)) && (memory_load32_le(mem, $z_addr) == memory_load32_le(mem, $z_addr)))); } -procedure main_1812(); - modifies Gamma_R0, Gamma_R10, Gamma_R31, Gamma_R8, Gamma_R9, Gamma_mem, Gamma_stack, R0, R10, R31, R8, R9, mem, stack; +procedure main(); + modifies Gamma_R0, Gamma_R8, Gamma_R9, Gamma_mem, R0, R8, R9, mem; requires (memory_load32_le(mem, $z_addr) != 0bv32); requires (Gamma_R0 == false); - free requires (memory_load64_le(mem, 69664bv64) == 0bv64); - free requires (memory_load64_le(mem, 69672bv64) == 69672bv64); - free requires (memory_load32_le(mem, 1884bv64) == 131073bv32); - free requires (memory_load64_le(mem, 69064bv64) == 1808bv64); - free requires (memory_load64_le(mem, 69072bv64) == 1728bv64); - free requires (memory_load64_le(mem, 69592bv64) == 1812bv64); - free requires (memory_load64_le(mem, 69672bv64) == 69672bv64); - free ensures (Gamma_R31 == old(Gamma_R31)); - free ensures (R31 == old(R31)); - free ensures (memory_load32_le(mem, 1884bv64) == 131073bv32); - free ensures (memory_load64_le(mem, 69064bv64) == 1808bv64); - free ensures (memory_load64_le(mem, 69072bv64) == 1728bv64); - free ensures (memory_load64_le(mem, 69592bv64) == 1812bv64); - free ensures (memory_load64_le(mem, 69672bv64) == 69672bv64); - -implementation main_1812() + free requires (memory_load64_le(mem, 131072bv64) == 0bv64); + free requires (memory_load64_le(mem, 131080bv64) == 131080bv64); + free requires (memory_load32_le(mem, 2312bv64) == 131073bv32); + free requires (memory_load64_le(mem, 130424bv64) == 2256bv64); + free requires (memory_load64_le(mem, 130432bv64) == 2176bv64); + free requires (memory_load64_le(mem, 131032bv64) == 131092bv64); + free requires (memory_load64_le(mem, 131040bv64) == 131096bv64); + free requires (memory_load64_le(mem, 131056bv64) == 2260bv64); + free requires (memory_load64_le(mem, 131080bv64) == 131080bv64); + free ensures (memory_load32_le(mem, 2312bv64) == 131073bv32); + free ensures (memory_load64_le(mem, 130424bv64) == 2256bv64); + free ensures (memory_load64_le(mem, 130432bv64) == 2176bv64); + free ensures (memory_load64_le(mem, 131032bv64) == 131092bv64); + free ensures (memory_load64_le(mem, 131040bv64) == 131096bv64); + free ensures (memory_load64_le(mem, 131056bv64) == 2260bv64); + free ensures (memory_load64_le(mem, 131080bv64) == 131080bv64); + +implementation main() { - var Gamma_load18: bool; + var $load$18: bv64; + var $load$19: bv64; + var Gamma_$load$18: bool; + var Gamma_$load$19: bool; var Gamma_x_old: bool; - var load18: bv32; var x_old: bv32; var z_old: bv32; lmain: assume {:captureState "lmain"} true; - R31, Gamma_R31 := bvadd64(R31, 18446744073709551600bv64), Gamma_R31; - stack, Gamma_stack := memory_store32_le(stack, bvadd64(R31, 12bv64), R0[32:0]), gamma_store32(Gamma_stack, bvadd64(R31, 12bv64), Gamma_R0); - assume {:captureState "%000002ea"} true; - R8, Gamma_R8 := 69632bv64, true; - R9, Gamma_R9 := 1bv64, true; + R8, Gamma_R8 := 126976bv64, true; + R9, Gamma_R9 := 126976bv64, true; + R0, Gamma_R0 := 0bv64, true; call rely(); - z_old := memory_load32_le(mem, $z_addr); - x_old := memory_load32_le(mem, $x_addr); - Gamma_x_old := (gamma_load32(Gamma_mem, $x_addr) || L(mem, $x_addr)); - assert (L(mem, bvadd64(R8, 52bv64)) ==> Gamma_R9); - mem, Gamma_mem := memory_store32_le(mem, bvadd64(R8, 52bv64), R9[32:0]), gamma_store32(Gamma_mem, bvadd64(R8, 52bv64), Gamma_R9); - assert ((bvadd64(R8, 52bv64) == $z_addr) ==> (L(mem, $x_addr) ==> Gamma_x_old)); - assert ((z_old == 0bv32) ==> ((memory_load32_le(mem, $x_addr) == x_old) && (memory_load32_le(mem, $z_addr) == z_old))); - assume {:captureState "%000002fc"} true; - load18, Gamma_load18 := memory_load32_le(stack, bvadd64(R31, 12bv64)), gamma_load32(Gamma_stack, bvadd64(R31, 12bv64)); - R10, Gamma_R10 := zero_extend32_32(load18), Gamma_load18; - R9, Gamma_R9 := 69632bv64, true; + $load$18, Gamma_$load$18 := memory_load64_le(mem, bvadd64(R8, 4064bv64)), (gamma_load64(Gamma_mem, bvadd64(R8, 4064bv64)) || L(mem, bvadd64(R8, 4064bv64))); + R8, Gamma_R8 := $load$18, Gamma_$load$18; call rely(); - z_old := memory_load32_le(mem, $z_addr); - x_old := memory_load32_le(mem, $x_addr); - Gamma_x_old := (gamma_load32(Gamma_mem, $x_addr) || L(mem, $x_addr)); - assert (L(mem, bvadd64(R9, 56bv64)) ==> Gamma_R10); - mem, Gamma_mem := memory_store32_le(mem, bvadd64(R9, 56bv64), R10[32:0]), gamma_store32(Gamma_mem, bvadd64(R9, 56bv64), Gamma_R10); - assert ((bvadd64(R9, 56bv64) == $z_addr) ==> (L(mem, $x_addr) ==> Gamma_x_old)); - assert ((z_old == 0bv32) ==> ((memory_load32_le(mem, $x_addr) == x_old) && (memory_load32_le(mem, $z_addr) == z_old))); - assume {:captureState "%00000310"} true; - R0, Gamma_R0 := 0bv64, true; + $load$19, Gamma_$load$19 := memory_load64_le(mem, bvadd64(R9, 4056bv64)), (gamma_load64(Gamma_mem, bvadd64(R9, 4056bv64)) || L(mem, bvadd64(R9, 4056bv64))); + R9, Gamma_R9 := $load$19, Gamma_$load$19; call rely(); + assert (L(mem, R8) ==> true); z_old := memory_load32_le(mem, $z_addr); x_old := memory_load32_le(mem, $x_addr); Gamma_x_old := (gamma_load32(Gamma_mem, $x_addr) || L(mem, $x_addr)); - assert (L(mem, bvadd64(R9, 56bv64)) ==> true); - mem, Gamma_mem := memory_store32_le(mem, bvadd64(R9, 56bv64), 0bv32), gamma_store32(Gamma_mem, bvadd64(R9, 56bv64), true); - assert ((bvadd64(R9, 56bv64) == $z_addr) ==> (L(mem, $x_addr) ==> Gamma_x_old)); + mem, Gamma_mem := memory_store32_le(mem, R8, 0bv32), gamma_store32(Gamma_mem, R8, true); + assert ((R8 == $z_addr) ==> (L(mem, $x_addr) ==> Gamma_x_old)); assert ((z_old == 0bv32) ==> ((memory_load32_le(mem, $x_addr) == x_old) && (memory_load32_le(mem, $z_addr) == z_old))); - assume {:captureState "%0000031c"} true; + assume {:captureState "%00000290"} true; call rely(); + assert (L(mem, R9) ==> true); z_old := memory_load32_le(mem, $z_addr); x_old := memory_load32_le(mem, $x_addr); Gamma_x_old := (gamma_load32(Gamma_mem, $x_addr) || L(mem, $x_addr)); - assert (L(mem, bvadd64(R8, 52bv64)) ==> true); - mem, Gamma_mem := memory_store32_le(mem, bvadd64(R8, 52bv64), 0bv32), gamma_store32(Gamma_mem, bvadd64(R8, 52bv64), true); - assert ((bvadd64(R8, 52bv64) == $z_addr) ==> (L(mem, $x_addr) ==> Gamma_x_old)); + mem, Gamma_mem := memory_store32_le(mem, R9, 0bv32), gamma_store32(Gamma_mem, R9, true); + assert ((R9 == $z_addr) ==> (L(mem, $x_addr) ==> Gamma_x_old)); assert ((z_old == 0bv32) ==> ((memory_load32_le(mem, $x_addr) == x_old) && (memory_load32_le(mem, $z_addr) == z_old))); - assume {:captureState "%00000323"} true; - R31, Gamma_R31 := bvadd64(R31, 16bv64), Gamma_R31; - goto main_1812_basil_return; - main_1812_basil_return: - assume {:captureState "main_1812_basil_return"} true; + assume {:captureState "%00000294"} true; + goto main_basil_return; + main_basil_return: + assume {:captureState "main_basil_return"} true; return; } diff --git a/src/test/correct/basic_lock_security_write/clang/basic_lock_security_write.gts b/src/test/correct/basic_lock_security_write/clang/basic_lock_security_write.gts deleted file mode 100644 index 1a31fd75a..000000000 Binary files a/src/test/correct/basic_lock_security_write/clang/basic_lock_security_write.gts and /dev/null differ diff --git a/src/test/correct/basic_lock_security_write/clang/basic_lock_security_write.md5sum b/src/test/correct/basic_lock_security_write/clang/basic_lock_security_write.md5sum new file mode 100644 index 000000000..ec4758935 --- /dev/null +++ b/src/test/correct/basic_lock_security_write/clang/basic_lock_security_write.md5sum @@ -0,0 +1,5 @@ +0c585416a6afce90067c53908e5ac6f3 correct/basic_lock_security_write/clang/a.out +7dc85cdcf7a3532d6fd1584b70b80b4d correct/basic_lock_security_write/clang/basic_lock_security_write.adt +2adb23dec328ae072c2ead938effcb7c correct/basic_lock_security_write/clang/basic_lock_security_write.bir +530360d0126baab6f6eca47b4a6654f3 correct/basic_lock_security_write/clang/basic_lock_security_write.relf +fc48e41083afb6d6c409af32975c5d72 correct/basic_lock_security_write/clang/basic_lock_security_write.gts diff --git a/src/test/correct/basic_lock_security_write/clang/basic_lock_security_write.relf b/src/test/correct/basic_lock_security_write/clang/basic_lock_security_write.relf deleted file mode 100644 index 88dbe283c..000000000 --- a/src/test/correct/basic_lock_security_write/clang/basic_lock_security_write.relf +++ /dev/null @@ -1,124 +0,0 @@ - -Relocation section '.rela.dyn' at offset 0x460 contains 8 entries: - Offset Info Type Symbol's Value Symbol's Name + Addend -0000000000010dc8 0000000000000403 R_AARCH64_RELATIVE 710 -0000000000010dd0 0000000000000403 R_AARCH64_RELATIVE 6c0 -0000000000010fd8 0000000000000403 R_AARCH64_RELATIVE 714 -0000000000011028 0000000000000403 R_AARCH64_RELATIVE 11028 -0000000000010fc0 0000000400000401 R_AARCH64_GLOB_DAT 0000000000000000 _ITM_deregisterTMCloneTable + 0 -0000000000010fc8 0000000500000401 R_AARCH64_GLOB_DAT 0000000000000000 __cxa_finalize@GLIBC_2.17 + 0 -0000000000010fd0 0000000600000401 R_AARCH64_GLOB_DAT 0000000000000000 __gmon_start__ + 0 -0000000000010fe0 0000000800000401 R_AARCH64_GLOB_DAT 0000000000000000 _ITM_registerTMCloneTable + 0 - -Relocation section '.rela.plt' at offset 0x520 contains 4 entries: - Offset Info Type Symbol's Value Symbol's Name + Addend -0000000000011000 0000000300000402 R_AARCH64_JUMP_SLOT 0000000000000000 __libc_start_main@GLIBC_2.34 + 0 -0000000000011008 0000000500000402 R_AARCH64_JUMP_SLOT 0000000000000000 __cxa_finalize@GLIBC_2.17 + 0 -0000000000011010 0000000600000402 R_AARCH64_JUMP_SLOT 0000000000000000 __gmon_start__ + 0 -0000000000011018 0000000700000402 R_AARCH64_JUMP_SLOT 0000000000000000 abort@GLIBC_2.17 + 0 - -Symbol table '.dynsym' contains 9 entries: - Num: Value Size Type Bind Vis Ndx Name - 0: 0000000000000000 0 NOTYPE LOCAL DEFAULT UND - 1: 0000000000000580 0 SECTION LOCAL DEFAULT 11 .init - 2: 0000000000011020 0 SECTION LOCAL DEFAULT 23 .data - 3: 0000000000000000 0 FUNC GLOBAL DEFAULT UND __libc_start_main@GLIBC_2.34 (2) - 4: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_deregisterTMCloneTable - 5: 0000000000000000 0 FUNC WEAK DEFAULT UND __cxa_finalize@GLIBC_2.17 (3) - 6: 0000000000000000 0 NOTYPE WEAK DEFAULT UND __gmon_start__ - 7: 0000000000000000 0 FUNC GLOBAL DEFAULT UND abort@GLIBC_2.17 (3) - 8: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_registerTMCloneTable - -Symbol table '.symtab' contains 91 entries: - Num: Value Size Type Bind Vis Ndx Name - 0: 0000000000000000 0 NOTYPE LOCAL DEFAULT UND - 1: 0000000000000238 0 SECTION LOCAL DEFAULT 1 .interp - 2: 0000000000000254 0 SECTION LOCAL DEFAULT 2 .note.gnu.build-id - 3: 0000000000000278 0 SECTION LOCAL DEFAULT 3 .note.ABI-tag - 4: 0000000000000298 0 SECTION LOCAL DEFAULT 4 .gnu.hash - 5: 00000000000002b8 0 SECTION LOCAL DEFAULT 5 .dynsym - 6: 0000000000000390 0 SECTION LOCAL DEFAULT 6 .dynstr - 7: 000000000000041e 0 SECTION LOCAL DEFAULT 7 .gnu.version - 8: 0000000000000430 0 SECTION LOCAL DEFAULT 8 .gnu.version_r - 9: 0000000000000460 0 SECTION LOCAL DEFAULT 9 .rela.dyn - 10: 0000000000000520 0 SECTION LOCAL DEFAULT 10 .rela.plt - 11: 0000000000000580 0 SECTION LOCAL DEFAULT 11 .init - 12: 00000000000005a0 0 SECTION LOCAL DEFAULT 12 .plt - 13: 0000000000000600 0 SECTION LOCAL DEFAULT 13 .text - 14: 0000000000000748 0 SECTION LOCAL DEFAULT 14 .fini - 15: 000000000000075c 0 SECTION LOCAL DEFAULT 15 .rodata - 16: 0000000000000760 0 SECTION LOCAL DEFAULT 16 .eh_frame_hdr - 17: 00000000000007a0 0 SECTION LOCAL DEFAULT 17 .eh_frame - 18: 0000000000010dc8 0 SECTION LOCAL DEFAULT 18 .init_array - 19: 0000000000010dd0 0 SECTION LOCAL DEFAULT 19 .fini_array - 20: 0000000000010dd8 0 SECTION LOCAL DEFAULT 20 .dynamic - 21: 0000000000010fb8 0 SECTION LOCAL DEFAULT 21 .got - 22: 0000000000010fe8 0 SECTION LOCAL DEFAULT 22 .got.plt - 23: 0000000000011020 0 SECTION LOCAL DEFAULT 23 .data - 24: 0000000000011030 0 SECTION LOCAL DEFAULT 24 .bss - 25: 0000000000000000 0 SECTION LOCAL DEFAULT 25 .comment - 26: 0000000000000000 0 FILE LOCAL DEFAULT ABS Scrt1.o - 27: 0000000000000278 0 NOTYPE LOCAL DEFAULT 3 $d - 28: 0000000000000278 32 OBJECT LOCAL DEFAULT 3 __abi_tag - 29: 0000000000000600 0 NOTYPE LOCAL DEFAULT 13 $x - 30: 00000000000007b4 0 NOTYPE LOCAL DEFAULT 17 $d - 31: 000000000000075c 0 NOTYPE LOCAL DEFAULT 15 $d - 32: 0000000000000000 0 FILE LOCAL DEFAULT ABS crti.o - 33: 0000000000000634 0 NOTYPE LOCAL DEFAULT 13 $x - 34: 0000000000000634 20 FUNC LOCAL DEFAULT 13 call_weak_fn - 35: 0000000000000580 0 NOTYPE LOCAL DEFAULT 11 $x - 36: 0000000000000748 0 NOTYPE LOCAL DEFAULT 14 $x - 37: 0000000000000000 0 FILE LOCAL DEFAULT ABS crtn.o - 38: 0000000000000590 0 NOTYPE LOCAL DEFAULT 11 $x - 39: 0000000000000754 0 NOTYPE LOCAL DEFAULT 14 $x - 40: 0000000000000000 0 FILE LOCAL DEFAULT ABS crtstuff.c - 41: 0000000000000650 0 NOTYPE LOCAL DEFAULT 13 $x - 42: 0000000000000650 0 FUNC LOCAL DEFAULT 13 deregister_tm_clones - 43: 0000000000000680 0 FUNC LOCAL DEFAULT 13 register_tm_clones - 44: 0000000000011028 0 NOTYPE LOCAL DEFAULT 23 $d - 45: 00000000000006c0 0 FUNC LOCAL DEFAULT 13 __do_global_dtors_aux - 46: 0000000000011030 1 OBJECT LOCAL DEFAULT 24 completed.0 - 47: 0000000000010dd0 0 NOTYPE LOCAL DEFAULT 19 $d - 48: 0000000000010dd0 0 OBJECT LOCAL DEFAULT 19 __do_global_dtors_aux_fini_array_entry - 49: 0000000000000710 0 FUNC LOCAL DEFAULT 13 frame_dummy - 50: 0000000000010dc8 0 NOTYPE LOCAL DEFAULT 18 $d - 51: 0000000000010dc8 0 OBJECT LOCAL DEFAULT 18 __frame_dummy_init_array_entry - 52: 00000000000007c8 0 NOTYPE LOCAL DEFAULT 17 $d - 53: 0000000000011030 0 NOTYPE LOCAL DEFAULT 24 $d - 54: 0000000000000000 0 FILE LOCAL DEFAULT ABS basic_lock_security_write.c - 55: 0000000000000714 0 NOTYPE LOCAL DEFAULT 13 $x.0 - 56: 0000000000011034 0 NOTYPE LOCAL DEFAULT 24 $d.1 - 57: 000000000000002a 0 NOTYPE LOCAL DEFAULT 25 $d.2 - 58: 0000000000000828 0 NOTYPE LOCAL DEFAULT 17 $d.3 - 59: 0000000000000000 0 FILE LOCAL DEFAULT ABS crtstuff.c - 60: 0000000000000854 0 NOTYPE LOCAL DEFAULT 17 $d - 61: 0000000000000854 0 OBJECT LOCAL DEFAULT 17 __FRAME_END__ - 62: 0000000000000000 0 FILE LOCAL DEFAULT ABS - 63: 0000000000010dd8 0 OBJECT LOCAL DEFAULT ABS _DYNAMIC - 64: 0000000000000760 0 NOTYPE LOCAL DEFAULT 16 __GNU_EH_FRAME_HDR - 65: 0000000000010fb8 0 OBJECT LOCAL DEFAULT ABS _GLOBAL_OFFSET_TABLE_ - 66: 00000000000005a0 0 NOTYPE LOCAL DEFAULT 12 $x - 67: 0000000000000000 0 FUNC GLOBAL DEFAULT UND __libc_start_main@GLIBC_2.34 - 68: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_deregisterTMCloneTable - 69: 0000000000011020 0 NOTYPE WEAK DEFAULT 23 data_start - 70: 0000000000011030 0 NOTYPE GLOBAL DEFAULT 24 __bss_start__ - 71: 0000000000000000 0 FUNC WEAK DEFAULT UND __cxa_finalize@GLIBC_2.17 - 72: 0000000000011040 0 NOTYPE GLOBAL DEFAULT 24 _bss_end__ - 73: 0000000000011030 0 NOTYPE GLOBAL DEFAULT 23 _edata - 74: 0000000000011034 4 OBJECT GLOBAL DEFAULT 24 z - 75: 0000000000011038 4 OBJECT GLOBAL DEFAULT 24 x - 76: 0000000000000748 0 FUNC GLOBAL HIDDEN 14 _fini - 77: 0000000000011040 0 NOTYPE GLOBAL DEFAULT 24 __bss_end__ - 78: 0000000000011020 0 NOTYPE GLOBAL DEFAULT 23 __data_start - 79: 0000000000000000 0 NOTYPE WEAK DEFAULT UND __gmon_start__ - 80: 0000000000011028 0 OBJECT GLOBAL HIDDEN 23 __dso_handle - 81: 0000000000000000 0 FUNC GLOBAL DEFAULT UND abort@GLIBC_2.17 - 82: 000000000000075c 4 OBJECT GLOBAL DEFAULT 15 _IO_stdin_used - 83: 0000000000011040 0 NOTYPE GLOBAL DEFAULT 24 _end - 84: 0000000000000600 52 FUNC GLOBAL DEFAULT 13 _start - 85: 0000000000011040 0 NOTYPE GLOBAL DEFAULT 24 __end__ - 86: 0000000000011030 0 NOTYPE GLOBAL DEFAULT 24 __bss_start - 87: 0000000000000714 52 FUNC GLOBAL DEFAULT 13 main - 88: 0000000000011030 0 OBJECT GLOBAL HIDDEN 23 __TMC_END__ - 89: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_registerTMCloneTable - 90: 0000000000000580 0 FUNC GLOBAL HIDDEN 11 _init diff --git a/src/test/correct/basic_lock_security_write/clang/basic_lock_security_write_gtirb.expected b/src/test/correct/basic_lock_security_write/clang/basic_lock_security_write_gtirb.expected index c051f6bbd..3eeaca89c 100644 --- a/src/test/correct/basic_lock_security_write/clang/basic_lock_security_write_gtirb.expected +++ b/src/test/correct/basic_lock_security_write/clang/basic_lock_security_write_gtirb.expected @@ -1,21 +1,15 @@ var {:extern} Gamma_R0: bool; -var {:extern} Gamma_R10: bool; -var {:extern} Gamma_R31: bool; var {:extern} Gamma_R8: bool; var {:extern} Gamma_R9: bool; var {:extern} Gamma_mem: [bv64]bool; -var {:extern} Gamma_stack: [bv64]bool; var {:extern} R0: bv64; -var {:extern} R10: bv64; -var {:extern} R31: bv64; var {:extern} R8: bv64; var {:extern} R9: bv64; var {:extern} mem: [bv64]bv8; -var {:extern} stack: [bv64]bv8; const {:extern} $x_addr: bv64; -axiom ($x_addr == 69688bv64); +axiom ($x_addr == 131096bv64); const {:extern} $z_addr: bv64; -axiom ($z_addr == 69684bv64); +axiom ($z_addr == 131092bv64); function {:extern} L(mem$in: [bv64]bv8, index: bv64) returns (bool) { (if (index == $x_addr) then (memory_load32_le(mem$in, $z_addr) == 0bv32) else (if (index == $z_addr) then true else false)) } @@ -25,6 +19,10 @@ function {:extern} gamma_load32(gammaMap: [bv64]bool, index: bv64) returns (bool (gammaMap[bvadd64(index, 3bv64)] && (gammaMap[bvadd64(index, 2bv64)] && (gammaMap[bvadd64(index, 1bv64)] && gammaMap[index]))) } +function {:extern} gamma_load64(gammaMap: [bv64]bool, index: bv64) returns (bool) { + (gammaMap[bvadd64(index, 7bv64)] && (gammaMap[bvadd64(index, 6bv64)] && (gammaMap[bvadd64(index, 5bv64)] && (gammaMap[bvadd64(index, 4bv64)] && (gammaMap[bvadd64(index, 3bv64)] && (gammaMap[bvadd64(index, 2bv64)] && (gammaMap[bvadd64(index, 1bv64)] && gammaMap[index]))))))) +} + function {:extern} gamma_store32(gammaMap: [bv64]bool, index: bv64, value: bool) returns ([bv64]bool) { gammaMap[index := value][bvadd64(index, 1bv64) := value][bvadd64(index, 2bv64) := value][bvadd64(index, 3bv64) := value] } @@ -41,16 +39,17 @@ function {:extern} memory_store32_le(memory: [bv64]bv8, index: bv64, value: bv32 memory[index := value[8:0]][bvadd64(index, 1bv64) := value[16:8]][bvadd64(index, 2bv64) := value[24:16]][bvadd64(index, 3bv64) := value[32:24]] } -function {:extern} {:bvbuiltin "zero_extend 32"} zero_extend32_32(bv32) returns (bv64); procedure {:extern} rely(); modifies Gamma_mem, mem; ensures (forall i: bv64 :: (((mem[i] == old(mem[i])) ==> (Gamma_mem[i] == old(Gamma_mem[i]))))); ensures ((memory_load32_le(mem, $z_addr) == old(memory_load32_le(mem, $z_addr))) && (memory_load32_le(mem, $x_addr) == old(memory_load32_le(mem, $x_addr)))); - free ensures (memory_load32_le(mem, 1884bv64) == 131073bv32); - free ensures (memory_load64_le(mem, 69064bv64) == 1808bv64); - free ensures (memory_load64_le(mem, 69072bv64) == 1728bv64); - free ensures (memory_load64_le(mem, 69592bv64) == 1812bv64); - free ensures (memory_load64_le(mem, 69672bv64) == 69672bv64); + free ensures (memory_load32_le(mem, 2312bv64) == 131073bv32); + free ensures (memory_load64_le(mem, 130424bv64) == 2256bv64); + free ensures (memory_load64_le(mem, 130432bv64) == 2176bv64); + free ensures (memory_load64_le(mem, 131032bv64) == 131092bv64); + free ensures (memory_load64_le(mem, 131040bv64) == 131096bv64); + free ensures (memory_load64_le(mem, 131056bv64) == 2260bv64); + free ensures (memory_load64_le(mem, 131080bv64) == 131080bv64); procedure {:extern} rely_transitive(); modifies Gamma_mem, mem; @@ -77,83 +76,68 @@ implementation {:extern} guarantee_reflexive() assert ((memory_load32_le(mem, $z_addr) == 0bv32) ==> ((memory_load32_le(mem, $x_addr) == memory_load32_le(mem, $x_addr)) && (memory_load32_le(mem, $z_addr) == memory_load32_le(mem, $z_addr)))); } -procedure main_1812(); - modifies Gamma_R0, Gamma_R10, Gamma_R31, Gamma_R8, Gamma_R9, Gamma_mem, Gamma_stack, R0, R10, R31, R8, R9, mem, stack; +procedure main(); + modifies Gamma_R0, Gamma_R8, Gamma_R9, Gamma_mem, R0, R8, R9, mem; requires (memory_load32_le(mem, $z_addr) != 0bv32); requires (Gamma_R0 == false); - free requires (memory_load64_le(mem, 69664bv64) == 0bv64); - free requires (memory_load64_le(mem, 69672bv64) == 69672bv64); - free requires (memory_load32_le(mem, 1884bv64) == 131073bv32); - free requires (memory_load64_le(mem, 69064bv64) == 1808bv64); - free requires (memory_load64_le(mem, 69072bv64) == 1728bv64); - free requires (memory_load64_le(mem, 69592bv64) == 1812bv64); - free requires (memory_load64_le(mem, 69672bv64) == 69672bv64); - free ensures (Gamma_R31 == old(Gamma_R31)); - free ensures (R31 == old(R31)); - free ensures (memory_load32_le(mem, 1884bv64) == 131073bv32); - free ensures (memory_load64_le(mem, 69064bv64) == 1808bv64); - free ensures (memory_load64_le(mem, 69072bv64) == 1728bv64); - free ensures (memory_load64_le(mem, 69592bv64) == 1812bv64); - free ensures (memory_load64_le(mem, 69672bv64) == 69672bv64); - -implementation main_1812() + free requires (memory_load64_le(mem, 131072bv64) == 0bv64); + free requires (memory_load64_le(mem, 131080bv64) == 131080bv64); + free requires (memory_load32_le(mem, 2312bv64) == 131073bv32); + free requires (memory_load64_le(mem, 130424bv64) == 2256bv64); + free requires (memory_load64_le(mem, 130432bv64) == 2176bv64); + free requires (memory_load64_le(mem, 131032bv64) == 131092bv64); + free requires (memory_load64_le(mem, 131040bv64) == 131096bv64); + free requires (memory_load64_le(mem, 131056bv64) == 2260bv64); + free requires (memory_load64_le(mem, 131080bv64) == 131080bv64); + free ensures (memory_load32_le(mem, 2312bv64) == 131073bv32); + free ensures (memory_load64_le(mem, 130424bv64) == 2256bv64); + free ensures (memory_load64_le(mem, 130432bv64) == 2176bv64); + free ensures (memory_load64_le(mem, 131032bv64) == 131092bv64); + free ensures (memory_load64_le(mem, 131040bv64) == 131096bv64); + free ensures (memory_load64_le(mem, 131056bv64) == 2260bv64); + free ensures (memory_load64_le(mem, 131080bv64) == 131080bv64); + +implementation main() { - var Gamma_load13: bool; + var $load5: bv64; + var $load6: bv64; + var Gamma_$load5: bool; + var Gamma_$load6: bool; var Gamma_x_old: bool; - var load13: bv32; var x_old: bv32; var z_old: bv32; - main_1812__0__FB2GGPd7Q9mrOdXSs0peag: - assume {:captureState "main_1812__0__FB2GGPd7Q9mrOdXSs0peag"} true; - R31, Gamma_R31 := bvadd64(R31, 18446744073709551600bv64), Gamma_R31; - stack, Gamma_stack := memory_store32_le(stack, bvadd64(R31, 12bv64), R0[32:0]), gamma_store32(Gamma_stack, bvadd64(R31, 12bv64), Gamma_R0); - assume {:captureState "1816_0"} true; - R8, Gamma_R8 := 69632bv64, true; - R9, Gamma_R9 := 1bv64, true; + $main$__0__$D9t2gNJrSmyMH3GAVRe3IQ: + assume {:captureState "$main$__0__$D9t2gNJrSmyMH3GAVRe3IQ"} true; + R8, Gamma_R8 := 126976bv64, true; + R9, Gamma_R9 := 126976bv64, true; + R0, Gamma_R0 := 0bv64, true; call rely(); - z_old := memory_load32_le(mem, $z_addr); - x_old := memory_load32_le(mem, $x_addr); - Gamma_x_old := (gamma_load32(Gamma_mem, $x_addr) || L(mem, $x_addr)); - assert (L(mem, bvadd64(R8, 52bv64)) ==> Gamma_R9); - mem, Gamma_mem := memory_store32_le(mem, bvadd64(R8, 52bv64), R9[32:0]), gamma_store32(Gamma_mem, bvadd64(R8, 52bv64), Gamma_R9); - assert ((bvadd64(R8, 52bv64) == $z_addr) ==> (L(mem, $x_addr) ==> Gamma_x_old)); - assert ((z_old == 0bv32) ==> ((memory_load32_le(mem, $x_addr) == x_old) && (memory_load32_le(mem, $z_addr) == z_old))); - assume {:captureState "1828_0"} true; - load13, Gamma_load13 := memory_load32_le(stack, bvadd64(R31, 12bv64)), gamma_load32(Gamma_stack, bvadd64(R31, 12bv64)); - R10, Gamma_R10 := zero_extend32_32(load13), Gamma_load13; - R9, Gamma_R9 := 69632bv64, true; + $load5, Gamma_$load5 := memory_load64_le(mem, bvadd64(R8, 4064bv64)), (gamma_load64(Gamma_mem, bvadd64(R8, 4064bv64)) || L(mem, bvadd64(R8, 4064bv64))); + R8, Gamma_R8 := $load5, Gamma_$load5; call rely(); - z_old := memory_load32_le(mem, $z_addr); - x_old := memory_load32_le(mem, $x_addr); - Gamma_x_old := (gamma_load32(Gamma_mem, $x_addr) || L(mem, $x_addr)); - assert (L(mem, bvadd64(R9, 56bv64)) ==> Gamma_R10); - mem, Gamma_mem := memory_store32_le(mem, bvadd64(R9, 56bv64), R10[32:0]), gamma_store32(Gamma_mem, bvadd64(R9, 56bv64), Gamma_R10); - assert ((bvadd64(R9, 56bv64) == $z_addr) ==> (L(mem, $x_addr) ==> Gamma_x_old)); - assert ((z_old == 0bv32) ==> ((memory_load32_le(mem, $x_addr) == x_old) && (memory_load32_le(mem, $z_addr) == z_old))); - assume {:captureState "1840_0"} true; - R0, Gamma_R0 := 0bv64, true; + $load6, Gamma_$load6 := memory_load64_le(mem, bvadd64(R9, 4056bv64)), (gamma_load64(Gamma_mem, bvadd64(R9, 4056bv64)) || L(mem, bvadd64(R9, 4056bv64))); + R9, Gamma_R9 := $load6, Gamma_$load6; call rely(); + assert (L(mem, R8) ==> true); z_old := memory_load32_le(mem, $z_addr); x_old := memory_load32_le(mem, $x_addr); Gamma_x_old := (gamma_load32(Gamma_mem, $x_addr) || L(mem, $x_addr)); - assert (L(mem, bvadd64(R9, 56bv64)) ==> true); - mem, Gamma_mem := memory_store32_le(mem, bvadd64(R9, 56bv64), 0bv32), gamma_store32(Gamma_mem, bvadd64(R9, 56bv64), true); - assert ((bvadd64(R9, 56bv64) == $z_addr) ==> (L(mem, $x_addr) ==> Gamma_x_old)); + mem, Gamma_mem := memory_store32_le(mem, R8, 0bv32), gamma_store32(Gamma_mem, R8, true); + assert ((R8 == $z_addr) ==> (L(mem, $x_addr) ==> Gamma_x_old)); assert ((z_old == 0bv32) ==> ((memory_load32_le(mem, $x_addr) == x_old) && (memory_load32_le(mem, $z_addr) == z_old))); - assume {:captureState "1848_0"} true; + assume {:captureState "2280$0"} true; call rely(); + assert (L(mem, R9) ==> true); z_old := memory_load32_le(mem, $z_addr); x_old := memory_load32_le(mem, $x_addr); Gamma_x_old := (gamma_load32(Gamma_mem, $x_addr) || L(mem, $x_addr)); - assert (L(mem, bvadd64(R8, 52bv64)) ==> true); - mem, Gamma_mem := memory_store32_le(mem, bvadd64(R8, 52bv64), 0bv32), gamma_store32(Gamma_mem, bvadd64(R8, 52bv64), true); - assert ((bvadd64(R8, 52bv64) == $z_addr) ==> (L(mem, $x_addr) ==> Gamma_x_old)); + mem, Gamma_mem := memory_store32_le(mem, R9, 0bv32), gamma_store32(Gamma_mem, R9, true); + assert ((R9 == $z_addr) ==> (L(mem, $x_addr) ==> Gamma_x_old)); assert ((z_old == 0bv32) ==> ((memory_load32_le(mem, $x_addr) == x_old) && (memory_load32_le(mem, $z_addr) == z_old))); - assume {:captureState "1852_0"} true; - R31, Gamma_R31 := bvadd64(R31, 16bv64), Gamma_R31; - goto main_1812_basil_return; - main_1812_basil_return: - assume {:captureState "main_1812_basil_return"} true; + assume {:captureState "2284$0"} true; + goto main_basil_return; + main_basil_return: + assume {:captureState "main_basil_return"} true; return; } diff --git a/src/test/correct/basic_lock_security_write/clang_O2/basic_lock_security_write.adt b/src/test/correct/basic_lock_security_write/clang_O2/basic_lock_security_write.adt deleted file mode 100644 index c95f9b0d3..000000000 --- a/src/test/correct/basic_lock_security_write/clang_O2/basic_lock_security_write.adt +++ /dev/null @@ -1,495 +0,0 @@ -Project(Attrs([Attr("filename","\"clang_O2/basic_lock_security_write.out\""), -Attr("image-specification","(declare abi (name str))\n(declare arch (name str))\n(declare base-address (addr int))\n(declare bias (off int))\n(declare bits (size int))\n(declare code-region (addr int) (size int) (off int))\n(declare code-start (addr int))\n(declare entry-point (addr int))\n(declare external-reference (addr int) (name str))\n(declare format (name str))\n(declare is-executable (flag bool))\n(declare is-little-endian (flag bool))\n(declare llvm:base-address (addr int))\n(declare llvm:code-entry (name str) (off int) (size int))\n(declare llvm:coff-import-library (name str))\n(declare llvm:coff-virtual-section-header (name str) (addr int) (size int))\n(declare llvm:elf-program-header (name str) (off int) (size int))\n(declare llvm:elf-program-header-flags (name str) (ld bool) (r bool) \n (w bool) (x bool))\n(declare llvm:elf-virtual-program-header (name str) (addr int) (size int))\n(declare llvm:entry-point (addr int))\n(declare llvm:macho-symbol (name str) (value int))\n(declare llvm:name-reference (at int) (name str))\n(declare llvm:relocation (at int) (addr int))\n(declare llvm:section-entry (name str) (addr int) (size int) (off int))\n(declare llvm:section-flags (name str) (r bool) (w bool) (x bool))\n(declare llvm:segment-command (name str) (off int) (size int))\n(declare llvm:segment-command-flags (name str) (r bool) (w bool) (x bool))\n(declare llvm:symbol-entry (name str) (addr int) (size int) (off int)\n (value int))\n(declare llvm:virtual-segment-command (name str) (addr int) (size int))\n(declare mapped (addr int) (size int) (off int))\n(declare named-region (addr int) (size int) (name str))\n(declare named-symbol (addr int) (name str))\n(declare require (name str))\n(declare section (addr int) (size int))\n(declare segment (addr int) (size int) (r bool) (w bool) (x bool))\n(declare subarch (name str))\n(declare symbol-chunk (addr int) (size int) (root int))\n(declare symbol-value (addr int) (value int))\n(declare system (name str))\n(declare vendor (name str))\n\n(abi unknown)\n(arch aarch64)\n(base-address 0)\n(bias 0)\n(bits 64)\n(code-region 1836 20 1836)\n(code-region 1536 300 1536)\n(code-region 1440 96 1440)\n(code-region 1408 24 1408)\n(code-start 1588)\n(code-start 1536)\n(code-start 1812)\n(entry-point 1536)\n(external-reference 69568 _ITM_deregisterTMCloneTable)\n(external-reference 69576 __cxa_finalize)\n(external-reference 69584 __gmon_start__)\n(external-reference 69600 _ITM_registerTMCloneTable)\n(external-reference 69632 __libc_start_main)\n(external-reference 69640 __cxa_finalize)\n(external-reference 69648 __gmon_start__)\n(external-reference 69656 abort)\n(format elf)\n(is-executable true)\n(is-little-endian true)\n(llvm:base-address 0)\n(llvm:code-entry abort 0 0)\n(llvm:code-entry __cxa_finalize 0 0)\n(llvm:code-entry __libc_start_main 0 0)\n(llvm:code-entry _init 1408 0)\n(llvm:code-entry main 1812 24)\n(llvm:code-entry _start 1536 52)\n(llvm:code-entry abort@GLIBC_2.17 0 0)\n(llvm:code-entry _fini 1836 0)\n(llvm:code-entry __cxa_finalize@GLIBC_2.17 0 0)\n(llvm:code-entry __libc_start_main@GLIBC_2.34 0 0)\n(llvm:code-entry frame_dummy 1808 0)\n(llvm:code-entry __do_global_dtors_aux 1728 0)\n(llvm:code-entry register_tm_clones 1664 0)\n(llvm:code-entry deregister_tm_clones 1616 0)\n(llvm:code-entry call_weak_fn 1588 20)\n(llvm:code-entry .fini 1836 20)\n(llvm:code-entry .text 1536 300)\n(llvm:code-entry .plt 1440 96)\n(llvm:code-entry .init 1408 24)\n(llvm:elf-program-header 08 3528 568)\n(llvm:elf-program-header 07 0 0)\n(llvm:elf-program-header 06 1860 60)\n(llvm:elf-program-header 05 596 68)\n(llvm:elf-program-header 04 3544 480)\n(llvm:elf-program-header 03 3528 616)\n(llvm:elf-program-header 02 0 2100)\n(llvm:elf-program-header 01 568 27)\n(llvm:elf-program-header 00 64 504)\n(llvm:elf-program-header-flags 08 false true false false)\n(llvm:elf-program-header-flags 07 false true true false)\n(llvm:elf-program-header-flags 06 false true false false)\n(llvm:elf-program-header-flags 05 false true false false)\n(llvm:elf-program-header-flags 04 false true true false)\n(llvm:elf-program-header-flags 03 true true true false)\n(llvm:elf-program-header-flags 02 true true false true)\n(llvm:elf-program-header-flags 01 false true false false)\n(llvm:elf-program-header-flags 00 false true false false)\n(llvm:elf-virtual-program-header 08 69064 568)\n(llvm:elf-virtual-program-header 07 0 0)\n(llvm:elf-virtual-program-header 06 1860 60)\n(llvm:elf-virtual-program-header 05 596 68)\n(llvm:elf-virtual-program-header 04 69080 480)\n(llvm:elf-virtual-program-header 03 69064 632)\n(llvm:elf-virtual-program-header 02 0 2100)\n(llvm:elf-virtual-program-header 01 568 27)\n(llvm:elf-virtual-program-header 00 64 504)\n(llvm:entry-point 1536)\n(llvm:name-reference 69656 abort)\n(llvm:name-reference 69648 __gmon_start__)\n(llvm:name-reference 69640 __cxa_finalize)\n(llvm:name-reference 69632 __libc_start_main)\n(llvm:name-reference 69600 _ITM_registerTMCloneTable)\n(llvm:name-reference 69584 __gmon_start__)\n(llvm:name-reference 69576 __cxa_finalize)\n(llvm:name-reference 69568 _ITM_deregisterTMCloneTable)\n(llvm:section-entry .shstrtab 0 259 6983)\n(llvm:section-entry .strtab 0 583 6400)\n(llvm:section-entry .symtab 0 2184 4216)\n(llvm:section-entry .comment 0 71 4144)\n(llvm:section-entry .bss 69680 16 4144)\n(llvm:section-entry .data 69664 16 4128)\n(llvm:section-entry .got.plt 69608 56 4072)\n(llvm:section-entry .got 69560 48 4024)\n(llvm:section-entry .dynamic 69080 480 3544)\n(llvm:section-entry .fini_array 69072 8 3536)\n(llvm:section-entry .init_array 69064 8 3528)\n(llvm:section-entry .eh_frame 1920 180 1920)\n(llvm:section-entry .eh_frame_hdr 1860 60 1860)\n(llvm:section-entry .rodata 1856 4 1856)\n(llvm:section-entry .fini 1836 20 1836)\n(llvm:section-entry .text 1536 300 1536)\n(llvm:section-entry .plt 1440 96 1440)\n(llvm:section-entry .init 1408 24 1408)\n(llvm:section-entry .rela.plt 1312 96 1312)\n(llvm:section-entry .rela.dyn 1120 192 1120)\n(llvm:section-entry .gnu.version_r 1072 48 1072)\n(llvm:section-entry .gnu.version 1054 18 1054)\n(llvm:section-entry .dynstr 912 141 912)\n(llvm:section-entry .dynsym 696 216 696)\n(llvm:section-entry .gnu.hash 664 28 664)\n(llvm:section-entry .note.ABI-tag 632 32 632)\n(llvm:section-entry .note.gnu.build-id 596 36 596)\n(llvm:section-entry .interp 568 27 568)\n(llvm:section-flags .shstrtab true false false)\n(llvm:section-flags .strtab true false false)\n(llvm:section-flags .symtab true false false)\n(llvm:section-flags .comment true false false)\n(llvm:section-flags .bss true true false)\n(llvm:section-flags .data true true false)\n(llvm:section-flags .got.plt true true false)\n(llvm:section-flags .got true true false)\n(llvm:section-flags .dynamic true true false)\n(llvm:section-flags .fini_array true true false)\n(llvm:section-flags .init_array true true false)\n(llvm:section-flags .eh_frame true false false)\n(llvm:section-flags .eh_frame_hdr true false false)\n(llvm:section-flags .rodata true false false)\n(llvm:section-flags .fini true false true)\n(llvm:section-flags .text true false true)\n(llvm:section-flags .plt true false true)\n(llvm:section-flags .init true false true)\n(llvm:section-flags .rela.plt true false false)\n(llvm:section-flags .rela.dyn true false false)\n(llvm:section-flags .gnu.version_r true false false)\n(llvm:section-flags .gnu.version true false false)\n(llvm:section-flags .dynstr true false false)\n(llvm:section-flags .dynsym true false false)\n(llvm:section-flags .gnu.hash true false false)\n(llvm:section-flags .note.ABI-tag true false false)\n(llvm:section-flags .note.gnu.build-id true false false)\n(llvm:section-flags .interp true false false)\n(llvm:symbol-entry abort 0 0 0 0)\n(llvm:symbol-entry __cxa_finalize 0 0 0 0)\n(llvm:symbol-entry __libc_start_main 0 0 0 0)\n(llvm:symbol-entry _init 1408 0 1408 1408)\n(llvm:symbol-entry main 1812 24 1812 1812)\n(llvm:symbol-entry _start 1536 52 1536 1536)\n(llvm:symbol-entry abort@GLIBC_2.17 0 0 0 0)\n(llvm:symbol-entry _fini 1836 0 1836 1836)\n(llvm:symbol-entry __cxa_finalize@GLIBC_2.17 0 0 0 0)\n(llvm:symbol-entry __libc_start_main@GLIBC_2.34 0 0 0 0)\n(llvm:symbol-entry frame_dummy 1808 0 1808 1808)\n(llvm:symbol-entry __do_global_dtors_aux 1728 0 1728 1728)\n(llvm:symbol-entry register_tm_clones 1664 0 1664 1664)\n(llvm:symbol-entry deregister_tm_clones 1616 0 1616 1616)\n(llvm:symbol-entry call_weak_fn 1588 20 1588 1588)\n(mapped 0 2100 0)\n(mapped 69064 616 3528)\n(named-region 0 2100 02)\n(named-region 69064 632 03)\n(named-region 568 27 .interp)\n(named-region 596 36 .note.gnu.build-id)\n(named-region 632 32 .note.ABI-tag)\n(named-region 664 28 .gnu.hash)\n(named-region 696 216 .dynsym)\n(named-region 912 141 .dynstr)\n(named-region 1054 18 .gnu.version)\n(named-region 1072 48 .gnu.version_r)\n(named-region 1120 192 .rela.dyn)\n(named-region 1312 96 .rela.plt)\n(named-region 1408 24 .init)\n(named-region 1440 96 .plt)\n(named-region 1536 300 .text)\n(named-region 1836 20 .fini)\n(named-region 1856 4 .rodata)\n(named-region 1860 60 .eh_frame_hdr)\n(named-region 1920 180 .eh_frame)\n(named-region 69064 8 .init_array)\n(named-region 69072 8 .fini_array)\n(named-region 69080 480 .dynamic)\n(named-region 69560 48 .got)\n(named-region 69608 56 .got.plt)\n(named-region 69664 16 .data)\n(named-region 69680 16 .bss)\n(named-region 0 71 .comment)\n(named-region 0 2184 .symtab)\n(named-region 0 583 .strtab)\n(named-region 0 259 .shstrtab)\n(named-symbol 1588 call_weak_fn)\n(named-symbol 1616 deregister_tm_clones)\n(named-symbol 1664 register_tm_clones)\n(named-symbol 1728 __do_global_dtors_aux)\n(named-symbol 1808 frame_dummy)\n(named-symbol 0 __libc_start_main@GLIBC_2.34)\n(named-symbol 0 __cxa_finalize@GLIBC_2.17)\n(named-symbol 1836 _fini)\n(named-symbol 0 abort@GLIBC_2.17)\n(named-symbol 1536 _start)\n(named-symbol 1812 main)\n(named-symbol 1408 _init)\n(named-symbol 0 __libc_start_main)\n(named-symbol 0 __cxa_finalize)\n(named-symbol 0 abort)\n(require libc.so.6)\n(section 568 27)\n(section 596 36)\n(section 632 32)\n(section 664 28)\n(section 696 216)\n(section 912 141)\n(section 1054 18)\n(section 1072 48)\n(section 1120 192)\n(section 1312 96)\n(section 1408 24)\n(section 1440 96)\n(section 1536 300)\n(section 1836 20)\n(section 1856 4)\n(section 1860 60)\n(section 1920 180)\n(section 69064 8)\n(section 69072 8)\n(section 69080 480)\n(section 69560 48)\n(section 69608 56)\n(section 69664 16)\n(section 69680 16)\n(section 0 71)\n(section 0 2184)\n(section 0 583)\n(section 0 259)\n(segment 0 2100 true false true)\n(segment 69064 632 true true false)\n(subarch v8)\n(symbol-chunk 1588 20 1588)\n(symbol-chunk 1536 52 1536)\n(symbol-chunk 1812 24 1812)\n(symbol-value 1588 1588)\n(symbol-value 1616 1616)\n(symbol-value 1664 1664)\n(symbol-value 1728 1728)\n(symbol-value 1808 1808)\n(symbol-value 1836 1836)\n(symbol-value 1536 1536)\n(symbol-value 1812 1812)\n(symbol-value 1408 1408)\n(symbol-value 0 0)\n(system \"\")\n(vendor \"\")\n"), -Attr("abi-name","\"aarch64-linux-gnu-elf\"")]), -Sections([Section(".shstrtab", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x00\x06\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x50\x1c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x38\x00\x09\x00\x40\x00\x1d\x00\x1c\x00\x06\x00\x00\x00\x04\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x04\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x34\x08\x00\x00\x00\x00\x00\x00\x34\x08\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x01\x00\x00\x00\x06\x00\x00\x00\xc8\x0d\x00\x00\x00\x00\x00\x00\xc8\x0d\x01\x00\x00\x00\x00\x00\xc8\x0d\x01"), -Section(".strtab", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x00\x06\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x50\x1c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x38\x00\x09\x00\x40\x00\x1d\x00\x1c\x00\x06\x00\x00\x00\x04\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x04\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x34\x08\x00\x00\x00\x00\x00\x00\x34\x08\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x01\x00\x00\x00\x06\x00\x00\x00\xc8\x0d\x00\x00\x00\x00\x00\x00\xc8\x0d\x01\x00\x00\x00\x00\x00\xc8\x0d\x01\x00\x00\x00\x00\x00\x68\x02\x00\x00\x00\x00\x00\x00\x78\x02\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x02\x00\x00\x00\x06\x00\x00\x00\xd8\x0d\x00\x00\x00\x00\x00\x00\xd8\x0d\x01\x00\x00\x00\x00\x00\xd8\x0d\x01\x00\x00\x00\x00\x00\xe0\x01\x00\x00\x00\x00\x00\x00\xe0\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x04\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x50\xe5\x74\x64\x04\x00\x00\x00\x44\x07\x00\x00\x00\x00\x00\x00\x44\x07\x00\x00\x00\x00\x00\x00\x44\x07\x00\x00\x00\x00\x00\x00\x3c\x00\x00\x00\x00\x00\x00\x00\x3c\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x51\xe5\x74\x64\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x52\xe5\x74\x64\x04\x00\x00\x00\xc8\x0d\x00\x00\x00\x00\x00\x00\xc8\x0d\x01\x00\x00\x00\x00\x00\xc8\x0d\x01\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x2f\x6c\x69\x62\x2f\x6c\x64\x2d\x6c\x69\x6e\x75\x78\x2d\x61"), -Section(".comment", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x00\x06\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x50\x1c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x38\x00\x09\x00\x40\x00\x1d\x00\x1c\x00\x06\x00\x00\x00\x04\x00\x00"), -Section(".interp", 0x238, "\x2f\x6c\x69\x62\x2f\x6c\x64\x2d\x6c\x69\x6e\x75\x78\x2d\x61\x61\x72\x63\x68\x36\x34\x2e\x73\x6f\x2e\x31\x00"), -Section(".note.gnu.build-id", 0x254, "\x04\x00\x00\x00\x14\x00\x00\x00\x03\x00\x00\x00\x47\x4e\x55\x00\x98\x2a\x31\xc8\x0f\x3e\x7a\xe8\x3c\xa9\x74\x06\x94\x0a\x1c\xa5\x53\x37\x02\xc0"), -Section(".note.ABI-tag", 0x278, "\x04\x00\x00\x00\x10\x00\x00\x00\x01\x00\x00\x00\x47\x4e\x55\x00\x00\x00\x00\x00\x03\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00"), -Section(".gnu.hash", 0x298, "\x01\x00\x00\x00\x01\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".dynsym", 0x2B8, "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x0b\x00\x80\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x17\x00\x20\x10\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x48\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x22\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x22\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x73\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".dynstr", 0x390, "\x00\x5f\x5f\x63\x78\x61\x5f\x66\x69\x6e\x61\x6c\x69\x7a\x65\x00\x5f\x5f\x6c\x69\x62\x63\x5f\x73\x74\x61\x72\x74\x5f\x6d\x61\x69\x6e\x00\x61\x62\x6f\x72\x74\x00\x6c\x69\x62\x63\x2e\x73\x6f\x2e\x36\x00\x47\x4c\x49\x42\x43\x5f\x32\x2e\x31\x37\x00\x47\x4c\x49\x42\x43\x5f\x32\x2e\x33\x34\x00\x5f\x49\x54\x4d\x5f\x64\x65\x72\x65\x67\x69\x73\x74\x65\x72\x54\x4d\x43\x6c\x6f\x6e\x65\x54\x61\x62\x6c\x65\x00\x5f\x5f\x67\x6d\x6f\x6e\x5f\x73\x74\x61\x72\x74\x5f\x5f\x00\x5f\x49\x54\x4d\x5f\x72\x65\x67\x69\x73\x74\x65\x72\x54\x4d\x43\x6c\x6f\x6e\x65\x54\x61\x62\x6c\x65\x00"), -Section(".gnu.version", 0x41E, "\x00\x00\x00\x00\x00\x00\x02\x00\x01\x00\x03\x00\x01\x00\x03\x00\x01\x00"), -Section(".gnu.version_r", 0x430, "\x01\x00\x02\x00\x28\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x97\x91\x96\x06\x00\x00\x03\x00\x32\x00\x00\x00\x10\x00\x00\x00\xb4\x91\x96\x06\x00\x00\x02\x00\x3d\x00\x00\x00\x00\x00\x00\x00"), -Section(".rela.dyn", 0x460, "\xc8\x0d\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x10\x07\x00\x00\x00\x00\x00\x00\xd0\x0d\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\xc0\x06\x00\x00\x00\x00\x00\x00\xd8\x0f\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x14\x07\x00\x00\x00\x00\x00\x00\x28\x10\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x28\x10\x01\x00\x00\x00\x00\x00\xc0\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xc8\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xd0\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe0\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".rela.plt", 0x520, "\x00\x10\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x08\x10\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x10\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x18\x10\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".init", 0x580, "\x1f\x20\x03\xd5\xfd\x7b\xbf\xa9\xfd\x03\x00\x91\x2a\x00\x00\x94\xfd\x7b\xc1\xa8\xc0\x03\x5f\xd6"), -Section(".plt", 0x5A0, "\xf0\x7b\xbf\xa9\x90\x00\x00\x90\x11\xfe\x47\xf9\x10\xe2\x3f\x91\x20\x02\x1f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x90\x00\x00\xb0\x11\x02\x40\xf9\x10\x02\x00\x91\x20\x02\x1f\xd6\x90\x00\x00\xb0\x11\x06\x40\xf9\x10\x22\x00\x91\x20\x02\x1f\xd6\x90\x00\x00\xb0\x11\x0a\x40\xf9\x10\x42\x00\x91\x20\x02\x1f\xd6\x90\x00\x00\xb0\x11\x0e\x40\xf9\x10\x62\x00\x91\x20\x02\x1f\xd6"), -Section(".text", 0x600, "\x1f\x20\x03\xd5\x1d\x00\x80\xd2\x1e\x00\x80\xd2\xe5\x03\x00\xaa\xe1\x03\x40\xf9\xe2\x23\x00\x91\xe6\x03\x00\x91\x80\x00\x00\x90\x00\xec\x47\xf9\x03\x00\x80\xd2\x04\x00\x80\xd2\xe5\xff\xff\x97\xf0\xff\xff\x97\x80\x00\x00\x90\x00\xe8\x47\xf9\x40\x00\x00\xb4\xe8\xff\xff\x17\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x80\x00\x00\xb0\x00\xc0\x00\x91\x81\x00\x00\xb0\x21\xc0\x00\x91\x3f\x00\x00\xeb\xc0\x00\x00\x54\x81\x00\x00\x90\x21\xe0\x47\xf9\x61\x00\x00\xb4\xf0\x03\x01\xaa\x00\x02\x1f\xd6\xc0\x03\x5f\xd6\x80\x00\x00\xb0\x00\xc0\x00\x91\x81\x00\x00\xb0\x21\xc0\x00\x91\x21\x00\x00\xcb\x22\xfc\x7f\xd3\x41\x0c\x81\x8b\x21\xfc\x41\x93\xc1\x00\x00\xb4\x82\x00\x00\x90\x42\xf0\x47\xf9\x62\x00\x00\xb4\xf0\x03\x02\xaa\x00\x02\x1f\xd6\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\xfd\x7b\xbe\xa9\xfd\x03\x00\x91\xf3\x0b\x00\xf9\x93\x00\x00\xb0\x60\xc2\x40\x39\x40\x01\x00\x35\x80\x00\x00\x90\x00\xe4\x47\xf9\x80\x00\x00\xb4\x80\x00\x00\xb0\x00\x14\x40\xf9\xb9\xff\xff\x97\xd8\xff\xff\x97\x20\x00\x80\x52\x60\xc2\x00\x39\xf3\x0b\x40\xf9\xfd\x7b\xc2\xa8\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\xdc\xff\xff\x17\xe0\x03\x1f\x2a\x88\x00\x00\xb0\x89\x00\x00\xb0\x1f\x39\x00\xb9\x3f\x35\x00\xb9\xc0\x03\x5f\xd6"), -Section(".fini", 0x72C, "\x1f\x20\x03\xd5\xfd\x7b\xbf\xa9\xfd\x03\x00\x91\xfd\x7b\xc1\xa8\xc0\x03\x5f\xd6"), -Section(".rodata", 0x740, "\x01\x00\x02\x00"), -Section(".eh_frame_hdr", 0x744, "\x01\x1b\x03\x3b\x38\x00\x00\x00\x06\x00\x00\x00\xbc\xfe\xff\xff\x50\x00\x00\x00\x0c\xff\xff\xff\x64\x00\x00\x00\x3c\xff\xff\xff\x78\x00\x00\x00\x7c\xff\xff\xff\x8c\x00\x00\x00\xcc\xff\xff\xff\xb0\x00\x00\x00\xd0\xff\xff\xff\xd8\x00\x00\x00"), -Section(".eh_frame", 0x780, "\x10\x00\x00\x00\x00\x00\x00\x00\x01\x7a\x52\x00\x04\x78\x1e\x01\x1b\x0c\x1f\x00\x10\x00\x00\x00\x18\x00\x00\x00\x64\xfe\xff\xff\x34\x00\x00\x00\x00\x41\x07\x1e\x10\x00\x00\x00\x2c\x00\x00\x00\xa0\xfe\xff\xff\x30\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x40\x00\x00\x00\xbc\xfe\xff\xff\x3c\x00\x00\x00\x00\x00\x00\x00\x20\x00\x00\x00\x54\x00\x00\x00\xe8\xfe\xff\xff\x48\x00\x00\x00\x00\x41\x0e\x20\x9d\x04\x9e\x03\x42\x93\x02\x4e\xde\xdd\xd3\x0e\x00\x00\x00\x00\x10\x00\x00\x00\x78\x00\x00\x00\x14\xff\xff\xff\x04\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x01\x7a\x52\x00\x01\x7c\x1e\x01\x1b\x0c\x1f\x00\x10\x00\x00\x00\x18\x00\x00\x00\xf0\xfe\xff\xff\x18\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".fini_array", 0x10DD0, "\xc0\x06\x00\x00\x00\x00\x00\x00"), -Section(".dynamic", 0x10DD8, "\x01\x00\x00\x00\x00\x00\x00\x00\x28\x00\x00\x00\x00\x00\x00\x00\x0c\x00\x00\x00\x00\x00\x00\x00\x80\x05\x00\x00\x00\x00\x00\x00\x0d\x00\x00\x00\x00\x00\x00\x00\x2c\x07\x00\x00\x00\x00\x00\x00\x19\x00\x00\x00\x00\x00\x00\x00\xc8\x0d\x01\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x1a\x00\x00\x00\x00\x00\x00\x00\xd0\x0d\x01\x00\x00\x00\x00\x00\x1c\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\xf5\xfe\xff\x6f\x00\x00\x00\x00\x98\x02\x00\x00\x00\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x90\x03\x00\x00\x00\x00\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\xb8\x02\x00\x00\x00\x00\x00\x00\x0a\x00\x00\x00\x00\x00\x00\x00\x8d\x00\x00\x00\x00\x00\x00\x00\x0b\x00\x00\x00\x00\x00\x00\x00\x18\x00\x00\x00\x00\x00\x00\x00\x15\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\xe8\x0f\x01\x00\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x60\x00\x00\x00\x00\x00\x00\x00\x14\x00\x00\x00\x00\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x17\x00\x00\x00\x00\x00\x00\x00\x20\x05\x00\x00\x00\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x60\x04\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\xc0\x00\x00\x00\x00\x00\x00\x00\x09\x00\x00\x00\x00\x00\x00\x00\x18\x00\x00\x00\x00\x00\x00\x00\xfb\xff\xff\x6f\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\xfe\xff\xff\x6f\x00\x00\x00\x00\x30\x04\x00\x00\x00\x00\x00\x00\xff\xff\xff\x6f\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\xf0\xff\xff\x6f\x00\x00\x00\x00\x1e\x04\x00\x00\x00\x00\x00\x00\xf9\xff\xff\x6f\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".init_array", 0x10DC8, "\x10\x07\x00\x00\x00\x00\x00\x00"), -Section(".got", 0x10FB8, "\xd8\x0d\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x14\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".got.plt", 0x10FE8, "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xa0\x05\x00\x00\x00\x00\x00\x00\xa0\x05\x00\x00\x00\x00\x00\x00\xa0\x05\x00\x00\x00\x00\x00\x00\xa0\x05\x00\x00\x00\x00\x00\x00"), -Section(".data", 0x11020, "\x00\x00\x00\x00\x00\x00\x00\x00\x28\x10\x01\x00\x00\x00\x00\x00")]), -Memmap([Annotation(Region(0x0,0x833), Attr("segment","02 0 2100")), -Annotation(Region(0x600,0x633), Attr("symbol","\"_start\"")), -Annotation(Region(0x0,0x102), Attr("section","\".shstrtab\"")), -Annotation(Region(0x0,0x246), Attr("section","\".strtab\"")), -Annotation(Region(0x0,0x46), Attr("section","\".comment\"")), -Annotation(Region(0x238,0x252), Attr("section","\".interp\"")), -Annotation(Region(0x254,0x277), Attr("section","\".note.gnu.build-id\"")), -Annotation(Region(0x278,0x297), Attr("section","\".note.ABI-tag\"")), -Annotation(Region(0x298,0x2B3), Attr("section","\".gnu.hash\"")), -Annotation(Region(0x2B8,0x38F), Attr("section","\".dynsym\"")), -Annotation(Region(0x390,0x41C), Attr("section","\".dynstr\"")), -Annotation(Region(0x41E,0x42F), Attr("section","\".gnu.version\"")), -Annotation(Region(0x430,0x45F), Attr("section","\".gnu.version_r\"")), -Annotation(Region(0x460,0x51F), Attr("section","\".rela.dyn\"")), -Annotation(Region(0x520,0x57F), Attr("section","\".rela.plt\"")), -Annotation(Region(0x580,0x597), Attr("section","\".init\"")), -Annotation(Region(0x5A0,0x5FF), Attr("section","\".plt\"")), -Annotation(Region(0x580,0x597), Attr("code-region","()")), -Annotation(Region(0x5A0,0x5FF), Attr("code-region","()")), -Annotation(Region(0x600,0x633), Attr("symbol-info","_start 0x600 52")), -Annotation(Region(0x634,0x647), Attr("symbol","\"call_weak_fn\"")), -Annotation(Region(0x634,0x647), Attr("symbol-info","call_weak_fn 0x634 20")), -Annotation(Region(0x600,0x72B), Attr("section","\".text\"")), -Annotation(Region(0x600,0x72B), Attr("code-region","()")), -Annotation(Region(0x714,0x72B), Attr("symbol","\"main\"")), -Annotation(Region(0x714,0x72B), Attr("symbol-info","main 0x714 24")), -Annotation(Region(0x72C,0x73F), Attr("section","\".fini\"")), -Annotation(Region(0x72C,0x73F), Attr("code-region","()")), -Annotation(Region(0x740,0x743), Attr("section","\".rodata\"")), -Annotation(Region(0x744,0x77F), Attr("section","\".eh_frame_hdr\"")), -Annotation(Region(0x780,0x833), Attr("section","\".eh_frame\"")), -Annotation(Region(0x10DC8,0x1102F), Attr("segment","03 0x10DC8 632")), -Annotation(Region(0x10DD0,0x10DD7), Attr("section","\".fini_array\"")), -Annotation(Region(0x10DD8,0x10FB7), Attr("section","\".dynamic\"")), -Annotation(Region(0x10DC8,0x10DCF), Attr("section","\".init_array\"")), -Annotation(Region(0x10FB8,0x10FE7), Attr("section","\".got\"")), -Annotation(Region(0x10FE8,0x1101F), Attr("section","\".got.plt\"")), -Annotation(Region(0x11020,0x1102F), Attr("section","\".data\""))]), -Program(Tid(1_429, "%00000595"), Attrs([]), - Subs([Sub(Tid(1_379, "@__cxa_finalize"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x5D0"), -Attr("stub","()")]), "__cxa_finalize", Args([Arg(Tid(1_430, "%00000596"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("__cxa_finalize_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(795, "@__cxa_finalize"), - Attrs([Attr("address","0x5D0")]), Phis([]), -Defs([Def(Tid(1_043, "%00000413"), Attrs([Attr("address","0x5D0"), -Attr("insn","adrp x16, #69632")]), Var("R16",Imm(64)), Int(69632,64)), -Def(Tid(1_050, "%0000041a"), Attrs([Attr("address","0x5D4"), -Attr("insn","ldr x17, [x16, #0x8]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(1_056, "%00000420"), Attrs([Attr("address","0x5D8"), -Attr("insn","add x16, x16, #0x8")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(8,64)))]), Jmps([Call(Tid(1_061, "%00000425"), - Attrs([Attr("address","0x5DC"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), -Sub(Tid(1_380, "@__do_global_dtors_aux"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x6C0")]), - "__do_global_dtors_aux", Args([Arg(Tid(1_431, "%00000597"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("__do_global_dtors_aux_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(614, "@__do_global_dtors_aux"), - Attrs([Attr("address","0x6C0")]), Phis([]), Defs([Def(Tid(618, "%0000026a"), - Attrs([Attr("address","0x6C0"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("#3",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(18446744073709551584,64))), -Def(Tid(624, "%00000270"), Attrs([Attr("address","0x6C0"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("#3",Imm(64)),Var("R29",Imm(64)),LittleEndian(),64)), -Def(Tid(630, "%00000276"), Attrs([Attr("address","0x6C0"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("#3",Imm(64)),Int(8,64)),Var("R30",Imm(64)),LittleEndian(),64)), -Def(Tid(634, "%0000027a"), Attrs([Attr("address","0x6C0"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("R31",Imm(64)), -Var("#3",Imm(64))), Def(Tid(640, "%00000280"), - Attrs([Attr("address","0x6C4"), Attr("insn","mov x29, sp")]), - Var("R29",Imm(64)), Var("R31",Imm(64))), Def(Tid(648, "%00000288"), - Attrs([Attr("address","0x6C8"), Attr("insn","str x19, [sp, #0x10]")]), - Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(16,64)),Var("R19",Imm(64)),LittleEndian(),64)), -Def(Tid(653, "%0000028d"), Attrs([Attr("address","0x6CC"), -Attr("insn","adrp x19, #69632")]), Var("R19",Imm(64)), Int(69632,64)), -Def(Tid(660, "%00000294"), Attrs([Attr("address","0x6D0"), -Attr("insn","ldrb w0, [x19, #0x30]")]), Var("R0",Imm(64)), -UNSIGNED(64,Load(Var("mem",Mem(64,8)),PLUS(Var("R19",Imm(64)),Int(48,64)),LittleEndian(),8)))]), -Jmps([Goto(Tid(667, "%0000029b"), Attrs([Attr("address","0x6D4"), -Attr("insn","cbnz w0, #0x28")]), - NEQ(Extract(31,0,Var("R0",Imm(64))),Int(0,32)), -Direct(Tid(665, "%00000299"))), Goto(Tid(1_419, "%0000058b"), Attrs([]), - Int(1,1), Direct(Tid(740, "%000002e4")))])), Blk(Tid(740, "%000002e4"), - Attrs([Attr("address","0x6D8")]), Phis([]), Defs([Def(Tid(743, "%000002e7"), - Attrs([Attr("address","0x6D8"), Attr("insn","adrp x0, #65536")]), - Var("R0",Imm(64)), Int(65536,64)), Def(Tid(750, "%000002ee"), - Attrs([Attr("address","0x6DC"), Attr("insn","ldr x0, [x0, #0xfc8]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(4040,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(756, "%000002f4"), Attrs([Attr("address","0x6E0"), -Attr("insn","cbz x0, #0x10")]), EQ(Var("R0",Imm(64)),Int(0,64)), -Direct(Tid(754, "%000002f2"))), Goto(Tid(1_420, "%0000058c"), Attrs([]), - Int(1,1), Direct(Tid(779, "%0000030b")))])), Blk(Tid(779, "%0000030b"), - Attrs([Attr("address","0x6E4")]), Phis([]), Defs([Def(Tid(782, "%0000030e"), - Attrs([Attr("address","0x6E4"), Attr("insn","adrp x0, #69632")]), - Var("R0",Imm(64)), Int(69632,64)), Def(Tid(789, "%00000315"), - Attrs([Attr("address","0x6E8"), Attr("insn","ldr x0, [x0, #0x28]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(40,64)),LittleEndian(),64)), -Def(Tid(794, "%0000031a"), Attrs([Attr("address","0x6EC"), -Attr("insn","bl #-0x11c")]), Var("R30",Imm(64)), Int(1776,64))]), -Jmps([Call(Tid(797, "%0000031d"), Attrs([Attr("address","0x6EC"), -Attr("insn","bl #-0x11c")]), Int(1,1), -(Direct(Tid(1_379, "@__cxa_finalize")),Direct(Tid(754, "%000002f2"))))])), -Blk(Tid(754, "%000002f2"), Attrs([Attr("address","0x6F0")]), Phis([]), -Defs([Def(Tid(762, "%000002fa"), Attrs([Attr("address","0x6F0"), -Attr("insn","bl #-0xa0")]), Var("R30",Imm(64)), Int(1780,64))]), -Jmps([Call(Tid(764, "%000002fc"), Attrs([Attr("address","0x6F0"), -Attr("insn","bl #-0xa0")]), Int(1,1), -(Direct(Tid(1_393, "@deregister_tm_clones")),Direct(Tid(766, "%000002fe"))))])), -Blk(Tid(766, "%000002fe"), Attrs([Attr("address","0x6F4")]), Phis([]), -Defs([Def(Tid(769, "%00000301"), Attrs([Attr("address","0x6F4"), -Attr("insn","mov w0, #0x1")]), Var("R0",Imm(64)), Int(1,64)), -Def(Tid(777, "%00000309"), Attrs([Attr("address","0x6F8"), -Attr("insn","strb w0, [x19, #0x30]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R19",Imm(64)),Int(48,64)),Extract(7,0,Var("R0",Imm(64))),LittleEndian(),8))]), -Jmps([Goto(Tid(1_421, "%0000058d"), Attrs([]), Int(1,1), -Direct(Tid(665, "%00000299")))])), Blk(Tid(665, "%00000299"), - Attrs([Attr("address","0x6FC")]), Phis([]), Defs([Def(Tid(675, "%000002a3"), - Attrs([Attr("address","0x6FC"), Attr("insn","ldr x19, [sp, #0x10]")]), - Var("R19",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(16,64)),LittleEndian(),64)), -Def(Tid(682, "%000002aa"), Attrs([Attr("address","0x700"), -Attr("insn","ldp x29, x30, [sp], #0x20")]), Var("R29",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(687, "%000002af"), Attrs([Attr("address","0x700"), -Attr("insn","ldp x29, x30, [sp], #0x20")]), Var("R30",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(691, "%000002b3"), Attrs([Attr("address","0x700"), -Attr("insn","ldp x29, x30, [sp], #0x20")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(32,64)))]), Jmps([Call(Tid(696, "%000002b8"), - Attrs([Attr("address","0x704"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), Sub(Tid(1_384, "@__libc_start_main"), - Attrs([Attr("c.proto","signed (*)(signed (*)(signed , char** , char** );* main, signed , char** , \nvoid* auxv)"), -Attr("address","0x5C0"), Attr("stub","()")]), "__libc_start_main", - Args([Arg(Tid(1_432, "%00000598"), - Attrs([Attr("c.layout","**[ : 64]"), -Attr("c.data","Top:u64 ptr ptr"), -Attr("c.type","signed (*)(signed , char** , char** );*")]), - Var("__libc_start_main_main",Imm(64)), Var("R0",Imm(64)), In()), -Arg(Tid(1_433, "%00000599"), Attrs([Attr("c.layout","[signed : 32]"), -Attr("c.data","Top:u32"), Attr("c.type","signed")]), - Var("__libc_start_main_arg2",Imm(32)), LOW(32,Var("R1",Imm(64))), In()), -Arg(Tid(1_434, "%0000059a"), Attrs([Attr("c.layout","**[char : 8]"), -Attr("c.data","Top:u8 ptr ptr"), Attr("c.type","char**")]), - Var("__libc_start_main_arg3",Imm(64)), Var("R2",Imm(64)), Both()), -Arg(Tid(1_435, "%0000059b"), Attrs([Attr("c.layout","*[ : 8]"), -Attr("c.data","{} ptr"), Attr("c.type","void*")]), - Var("__libc_start_main_auxv",Imm(64)), Var("R3",Imm(64)), Both()), -Arg(Tid(1_436, "%0000059c"), Attrs([Attr("c.layout","[signed : 32]"), -Attr("c.data","Top:u32"), Attr("c.type","signed")]), - Var("__libc_start_main_result",Imm(32)), LOW(32,Var("R0",Imm(64))), -Out())]), Blks([Blk(Tid(447, "@__libc_start_main"), - Attrs([Attr("address","0x5C0")]), Phis([]), -Defs([Def(Tid(1_021, "%000003fd"), Attrs([Attr("address","0x5C0"), -Attr("insn","adrp x16, #69632")]), Var("R16",Imm(64)), Int(69632,64)), -Def(Tid(1_028, "%00000404"), Attrs([Attr("address","0x5C4"), -Attr("insn","ldr x17, [x16]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R16",Imm(64)),LittleEndian(),64)), -Def(Tid(1_034, "%0000040a"), Attrs([Attr("address","0x5C8"), -Attr("insn","add x16, x16, #0x0")]), Var("R16",Imm(64)), -Var("R16",Imm(64)))]), Jmps([Call(Tid(1_039, "%0000040f"), - Attrs([Attr("address","0x5CC"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), Sub(Tid(1_385, "@_fini"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x72C")]), - "_fini", Args([Arg(Tid(1_437, "%0000059d"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("_fini_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(31, "@_fini"), - Attrs([Attr("address","0x72C")]), Phis([]), Defs([Def(Tid(37, "%00000025"), - Attrs([Attr("address","0x730"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("#0",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(18446744073709551600,64))), -Def(Tid(43, "%0000002b"), Attrs([Attr("address","0x730"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("#0",Imm(64)),Var("R29",Imm(64)),LittleEndian(),64)), -Def(Tid(49, "%00000031"), Attrs([Attr("address","0x730"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("#0",Imm(64)),Int(8,64)),Var("R30",Imm(64)),LittleEndian(),64)), -Def(Tid(53, "%00000035"), Attrs([Attr("address","0x730"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("R31",Imm(64)), -Var("#0",Imm(64))), Def(Tid(59, "%0000003b"), Attrs([Attr("address","0x734"), -Attr("insn","mov x29, sp")]), Var("R29",Imm(64)), Var("R31",Imm(64))), -Def(Tid(66, "%00000042"), Attrs([Attr("address","0x738"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R29",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(71, "%00000047"), Attrs([Attr("address","0x738"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R30",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(75, "%0000004b"), Attrs([Attr("address","0x738"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(16,64)))]), Jmps([Call(Tid(80, "%00000050"), - Attrs([Attr("address","0x73C"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), Sub(Tid(1_386, "@_init"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x580")]), - "_init", Args([Arg(Tid(1_438, "%0000059e"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("_init_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(1_215, "@_init"), - Attrs([Attr("address","0x580")]), Phis([]), -Defs([Def(Tid(1_221, "%000004c5"), Attrs([Attr("address","0x584"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("#5",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(18446744073709551600,64))), -Def(Tid(1_227, "%000004cb"), Attrs([Attr("address","0x584"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("#5",Imm(64)),Var("R29",Imm(64)),LittleEndian(),64)), -Def(Tid(1_233, "%000004d1"), Attrs([Attr("address","0x584"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("#5",Imm(64)),Int(8,64)),Var("R30",Imm(64)),LittleEndian(),64)), -Def(Tid(1_237, "%000004d5"), Attrs([Attr("address","0x584"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("R31",Imm(64)), -Var("#5",Imm(64))), Def(Tid(1_243, "%000004db"), - Attrs([Attr("address","0x588"), Attr("insn","mov x29, sp")]), - Var("R29",Imm(64)), Var("R31",Imm(64))), Def(Tid(1_248, "%000004e0"), - Attrs([Attr("address","0x58C"), Attr("insn","bl #0xa8")]), - Var("R30",Imm(64)), Int(1424,64))]), Jmps([Call(Tid(1_250, "%000004e2"), - Attrs([Attr("address","0x58C"), Attr("insn","bl #0xa8")]), Int(1,1), -(Direct(Tid(1_391, "@call_weak_fn")),Direct(Tid(1_252, "%000004e4"))))])), -Blk(Tid(1_252, "%000004e4"), Attrs([Attr("address","0x590")]), Phis([]), -Defs([Def(Tid(1_257, "%000004e9"), Attrs([Attr("address","0x590"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R29",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(1_262, "%000004ee"), Attrs([Attr("address","0x590"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R30",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(1_266, "%000004f2"), Attrs([Attr("address","0x590"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(16,64)))]), Jmps([Call(Tid(1_271, "%000004f7"), - Attrs([Attr("address","0x594"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), Sub(Tid(1_387, "@_start"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x600"), -Attr("stub","()"), Attr("entry-point","()")]), "_start", - Args([Arg(Tid(1_439, "%0000059f"), Attrs([Attr("c.layout","[signed : 32]"), -Attr("c.data","Top:u32"), Attr("c.type","signed")]), - Var("_start_result",Imm(32)), LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(384, "@_start"), Attrs([Attr("address","0x600")]), Phis([]), -Defs([Def(Tid(389, "%00000185"), Attrs([Attr("address","0x604"), -Attr("insn","mov x29, #0x0")]), Var("R29",Imm(64)), Int(0,64)), -Def(Tid(394, "%0000018a"), Attrs([Attr("address","0x608"), -Attr("insn","mov x30, #0x0")]), Var("R30",Imm(64)), Int(0,64)), -Def(Tid(400, "%00000190"), Attrs([Attr("address","0x60C"), -Attr("insn","mov x5, x0")]), Var("R5",Imm(64)), Var("R0",Imm(64))), -Def(Tid(407, "%00000197"), Attrs([Attr("address","0x610"), -Attr("insn","ldr x1, [sp]")]), Var("R1",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(413, "%0000019d"), Attrs([Attr("address","0x614"), -Attr("insn","add x2, sp, #0x8")]), Var("R2",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(8,64))), Def(Tid(419, "%000001a3"), - Attrs([Attr("address","0x618"), Attr("insn","mov x6, sp")]), - Var("R6",Imm(64)), Var("R31",Imm(64))), Def(Tid(424, "%000001a8"), - Attrs([Attr("address","0x61C"), Attr("insn","adrp x0, #65536")]), - Var("R0",Imm(64)), Int(65536,64)), Def(Tid(431, "%000001af"), - Attrs([Attr("address","0x620"), Attr("insn","ldr x0, [x0, #0xfd8]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(4056,64)),LittleEndian(),64)), -Def(Tid(436, "%000001b4"), Attrs([Attr("address","0x624"), -Attr("insn","mov x3, #0x0")]), Var("R3",Imm(64)), Int(0,64)), -Def(Tid(441, "%000001b9"), Attrs([Attr("address","0x628"), -Attr("insn","mov x4, #0x0")]), Var("R4",Imm(64)), Int(0,64)), -Def(Tid(446, "%000001be"), Attrs([Attr("address","0x62C"), -Attr("insn","bl #-0x6c")]), Var("R30",Imm(64)), Int(1584,64))]), -Jmps([Call(Tid(449, "%000001c1"), Attrs([Attr("address","0x62C"), -Attr("insn","bl #-0x6c")]), Int(1,1), -(Direct(Tid(1_384, "@__libc_start_main")),Direct(Tid(451, "%000001c3"))))])), -Blk(Tid(451, "%000001c3"), Attrs([Attr("address","0x630")]), Phis([]), -Defs([Def(Tid(454, "%000001c6"), Attrs([Attr("address","0x630"), -Attr("insn","bl #-0x40")]), Var("R30",Imm(64)), Int(1588,64))]), -Jmps([Call(Tid(457, "%000001c9"), Attrs([Attr("address","0x630"), -Attr("insn","bl #-0x40")]), Int(1,1), -(Direct(Tid(1_390, "@abort")),Direct(Tid(1_422, "%0000058e"))))])), -Blk(Tid(1_422, "%0000058e"), Attrs([]), Phis([]), Defs([]), -Jmps([Call(Tid(1_423, "%0000058f"), Attrs([]), Int(1,1), -(Direct(Tid(1_391, "@call_weak_fn")),))]))])), Sub(Tid(1_390, "@abort"), - Attrs([Attr("noreturn","()"), Attr("c.proto","void (*)(void)"), -Attr("address","0x5F0"), Attr("stub","()")]), "abort", Args([]), -Blks([Blk(Tid(455, "@abort"), Attrs([Attr("address","0x5F0")]), Phis([]), -Defs([Def(Tid(1_087, "%0000043f"), Attrs([Attr("address","0x5F0"), -Attr("insn","adrp x16, #69632")]), Var("R16",Imm(64)), Int(69632,64)), -Def(Tid(1_094, "%00000446"), Attrs([Attr("address","0x5F4"), -Attr("insn","ldr x17, [x16, #0x18]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(24,64)),LittleEndian(),64)), -Def(Tid(1_100, "%0000044c"), Attrs([Attr("address","0x5F8"), -Attr("insn","add x16, x16, #0x18")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(24,64)))]), Jmps([Call(Tid(1_105, "%00000451"), - Attrs([Attr("address","0x5FC"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), Sub(Tid(1_391, "@call_weak_fn"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x634")]), - "call_weak_fn", Args([Arg(Tid(1_440, "%000005a0"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("call_weak_fn_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(459, "@call_weak_fn"), - Attrs([Attr("address","0x634")]), Phis([]), Defs([Def(Tid(462, "%000001ce"), - Attrs([Attr("address","0x634"), Attr("insn","adrp x0, #65536")]), - Var("R0",Imm(64)), Int(65536,64)), Def(Tid(469, "%000001d5"), - Attrs([Attr("address","0x638"), Attr("insn","ldr x0, [x0, #0xfd0]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(4048,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(475, "%000001db"), Attrs([Attr("address","0x63C"), -Attr("insn","cbz x0, #0x8")]), EQ(Var("R0",Imm(64)),Int(0,64)), -Direct(Tid(473, "%000001d9"))), Goto(Tid(1_424, "%00000590"), Attrs([]), - Int(1,1), Direct(Tid(859, "%0000035b")))])), Blk(Tid(473, "%000001d9"), - Attrs([Attr("address","0x644")]), Phis([]), Defs([]), -Jmps([Call(Tid(481, "%000001e1"), Attrs([Attr("address","0x644"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))])), -Blk(Tid(859, "%0000035b"), Attrs([Attr("address","0x640")]), Phis([]), -Defs([]), Jmps([Goto(Tid(862, "%0000035e"), Attrs([Attr("address","0x640"), -Attr("insn","b #-0x60")]), Int(1,1), Direct(Tid(860, "@__gmon_start__")))])), -Blk(Tid(860, "@__gmon_start__"), Attrs([Attr("address","0x5E0")]), Phis([]), -Defs([Def(Tid(1_065, "%00000429"), Attrs([Attr("address","0x5E0"), -Attr("insn","adrp x16, #69632")]), Var("R16",Imm(64)), Int(69632,64)), -Def(Tid(1_072, "%00000430"), Attrs([Attr("address","0x5E4"), -Attr("insn","ldr x17, [x16, #0x10]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(16,64)),LittleEndian(),64)), -Def(Tid(1_078, "%00000436"), Attrs([Attr("address","0x5E8"), -Attr("insn","add x16, x16, #0x10")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(16,64)))]), Jmps([Call(Tid(1_083, "%0000043b"), - Attrs([Attr("address","0x5EC"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), -Sub(Tid(1_393, "@deregister_tm_clones"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x650")]), - "deregister_tm_clones", Args([Arg(Tid(1_441, "%000005a1"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("deregister_tm_clones_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(487, "@deregister_tm_clones"), - Attrs([Attr("address","0x650")]), Phis([]), Defs([Def(Tid(490, "%000001ea"), - Attrs([Attr("address","0x650"), Attr("insn","adrp x0, #69632")]), - Var("R0",Imm(64)), Int(69632,64)), Def(Tid(496, "%000001f0"), - Attrs([Attr("address","0x654"), Attr("insn","add x0, x0, #0x30")]), - Var("R0",Imm(64)), PLUS(Var("R0",Imm(64)),Int(48,64))), -Def(Tid(501, "%000001f5"), Attrs([Attr("address","0x658"), -Attr("insn","adrp x1, #69632")]), Var("R1",Imm(64)), Int(69632,64)), -Def(Tid(507, "%000001fb"), Attrs([Attr("address","0x65C"), -Attr("insn","add x1, x1, #0x30")]), Var("R1",Imm(64)), -PLUS(Var("R1",Imm(64)),Int(48,64))), Def(Tid(513, "%00000201"), - Attrs([Attr("address","0x660"), Attr("insn","cmp x1, x0")]), - Var("#1",Imm(64)), NOT(Var("R0",Imm(64)))), Def(Tid(518, "%00000206"), - Attrs([Attr("address","0x660"), Attr("insn","cmp x1, x0")]), - Var("#2",Imm(64)), PLUS(Var("R1",Imm(64)),NOT(Var("R0",Imm(64))))), -Def(Tid(524, "%0000020c"), Attrs([Attr("address","0x660"), -Attr("insn","cmp x1, x0")]), Var("VF",Imm(1)), -NEQ(SIGNED(65,PLUS(Var("#2",Imm(64)),Int(1,64))),PLUS(PLUS(SIGNED(65,Var("R1",Imm(64))),SIGNED(65,Var("#1",Imm(64)))),Int(1,65)))), -Def(Tid(530, "%00000212"), Attrs([Attr("address","0x660"), -Attr("insn","cmp x1, x0")]), Var("CF",Imm(1)), -NEQ(UNSIGNED(65,PLUS(Var("#2",Imm(64)),Int(1,64))),PLUS(PLUS(UNSIGNED(65,Var("R1",Imm(64))),UNSIGNED(65,Var("#1",Imm(64)))),Int(1,65)))), -Def(Tid(534, "%00000216"), Attrs([Attr("address","0x660"), -Attr("insn","cmp x1, x0")]), Var("ZF",Imm(1)), -EQ(PLUS(Var("#2",Imm(64)),Int(1,64)),Int(0,64))), Def(Tid(538, "%0000021a"), - Attrs([Attr("address","0x660"), Attr("insn","cmp x1, x0")]), - Var("NF",Imm(1)), Extract(63,63,PLUS(Var("#2",Imm(64)),Int(1,64))))]), -Jmps([Goto(Tid(544, "%00000220"), Attrs([Attr("address","0x664"), -Attr("insn","b.eq #0x18")]), EQ(Var("ZF",Imm(1)),Int(1,1)), -Direct(Tid(542, "%0000021e"))), Goto(Tid(1_425, "%00000591"), Attrs([]), - Int(1,1), Direct(Tid(829, "%0000033d")))])), Blk(Tid(829, "%0000033d"), - Attrs([Attr("address","0x668")]), Phis([]), Defs([Def(Tid(832, "%00000340"), - Attrs([Attr("address","0x668"), Attr("insn","adrp x1, #65536")]), - Var("R1",Imm(64)), Int(65536,64)), Def(Tid(839, "%00000347"), - Attrs([Attr("address","0x66C"), Attr("insn","ldr x1, [x1, #0xfc0]")]), - Var("R1",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R1",Imm(64)),Int(4032,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(844, "%0000034c"), Attrs([Attr("address","0x670"), -Attr("insn","cbz x1, #0xc")]), EQ(Var("R1",Imm(64)),Int(0,64)), -Direct(Tid(542, "%0000021e"))), Goto(Tid(1_426, "%00000592"), Attrs([]), - Int(1,1), Direct(Tid(848, "%00000350")))])), Blk(Tid(542, "%0000021e"), - Attrs([Attr("address","0x67C")]), Phis([]), Defs([]), -Jmps([Call(Tid(550, "%00000226"), Attrs([Attr("address","0x67C"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))])), -Blk(Tid(848, "%00000350"), Attrs([Attr("address","0x674")]), Phis([]), -Defs([Def(Tid(852, "%00000354"), Attrs([Attr("address","0x674"), -Attr("insn","mov x16, x1")]), Var("R16",Imm(64)), Var("R1",Imm(64)))]), -Jmps([Call(Tid(857, "%00000359"), Attrs([Attr("address","0x678"), -Attr("insn","br x16")]), Int(1,1), (Indirect(Var("R16",Imm(64))),))]))])), -Sub(Tid(1_396, "@frame_dummy"), Attrs([Attr("c.proto","signed (*)(void)"), -Attr("address","0x710")]), "frame_dummy", Args([Arg(Tid(1_442, "%000005a2"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("frame_dummy_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(702, "@frame_dummy"), - Attrs([Attr("address","0x710")]), Phis([]), Defs([]), -Jmps([Call(Tid(704, "%000002c0"), Attrs([Attr("address","0x710"), -Attr("insn","b #-0x90")]), Int(1,1), -(Direct(Tid(1_398, "@register_tm_clones")),))]))])), Sub(Tid(1_397, "@main"), - Attrs([Attr("c.proto","signed (*)(signed argc, const char** argv)"), -Attr("address","0x714")]), "main", Args([Arg(Tid(1_443, "%000005a3"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("main_argc",Imm(32)), -LOW(32,Var("R0",Imm(64))), In()), Arg(Tid(1_444, "%000005a4"), - Attrs([Attr("c.layout","**[char : 8]"), Attr("c.data","Top:u8 ptr ptr"), -Attr("c.type"," const char**")]), Var("main_argv",Imm(64)), -Var("R1",Imm(64)), Both()), Arg(Tid(1_445, "%000005a5"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("main_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(706, "@main"), - Attrs([Attr("address","0x714")]), Phis([]), Defs([Def(Tid(709, "%000002c5"), - Attrs([Attr("address","0x714"), Attr("insn","mov w0, wzr")]), - Var("R0",Imm(64)), Int(0,64)), Def(Tid(714, "%000002ca"), - Attrs([Attr("address","0x718"), Attr("insn","adrp x8, #69632")]), - Var("R8",Imm(64)), Int(69632,64)), Def(Tid(719, "%000002cf"), - Attrs([Attr("address","0x71C"), Attr("insn","adrp x9, #69632")]), - Var("R9",Imm(64)), Int(69632,64)), Def(Tid(726, "%000002d6"), - Attrs([Attr("address","0x720"), Attr("insn","str wzr, [x8, #0x38]")]), - Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R8",Imm(64)),Int(56,64)),Int(0,32),LittleEndian(),32)), -Def(Tid(733, "%000002dd"), Attrs([Attr("address","0x724"), -Attr("insn","str wzr, [x9, #0x34]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R9",Imm(64)),Int(52,64)),Int(0,32),LittleEndian(),32))]), -Jmps([Call(Tid(738, "%000002e2"), Attrs([Attr("address","0x728"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))]))])), -Sub(Tid(1_398, "@register_tm_clones"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x680")]), - "register_tm_clones", Args([Arg(Tid(1_446, "%000005a6"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("register_tm_clones_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(552, "@register_tm_clones"), Attrs([Attr("address","0x680")]), - Phis([]), Defs([Def(Tid(555, "%0000022b"), Attrs([Attr("address","0x680"), -Attr("insn","adrp x0, #69632")]), Var("R0",Imm(64)), Int(69632,64)), -Def(Tid(561, "%00000231"), Attrs([Attr("address","0x684"), -Attr("insn","add x0, x0, #0x30")]), Var("R0",Imm(64)), -PLUS(Var("R0",Imm(64)),Int(48,64))), Def(Tid(566, "%00000236"), - Attrs([Attr("address","0x688"), Attr("insn","adrp x1, #69632")]), - Var("R1",Imm(64)), Int(69632,64)), Def(Tid(572, "%0000023c"), - Attrs([Attr("address","0x68C"), Attr("insn","add x1, x1, #0x30")]), - Var("R1",Imm(64)), PLUS(Var("R1",Imm(64)),Int(48,64))), -Def(Tid(579, "%00000243"), Attrs([Attr("address","0x690"), -Attr("insn","sub x1, x1, x0")]), Var("R1",Imm(64)), -PLUS(PLUS(Var("R1",Imm(64)),NOT(Var("R0",Imm(64)))),Int(1,64))), -Def(Tid(585, "%00000249"), Attrs([Attr("address","0x694"), -Attr("insn","lsr x2, x1, #63")]), Var("R2",Imm(64)), -Concat(Int(0,63),Extract(63,63,Var("R1",Imm(64))))), -Def(Tid(592, "%00000250"), Attrs([Attr("address","0x698"), -Attr("insn","add x1, x2, x1, asr #3")]), Var("R1",Imm(64)), -PLUS(Var("R2",Imm(64)),ARSHIFT(Var("R1",Imm(64)),Int(3,3)))), -Def(Tid(598, "%00000256"), Attrs([Attr("address","0x69C"), -Attr("insn","asr x1, x1, #1")]), Var("R1",Imm(64)), -SIGNED(64,Extract(63,1,Var("R1",Imm(64)))))]), -Jmps([Goto(Tid(604, "%0000025c"), Attrs([Attr("address","0x6A0"), -Attr("insn","cbz x1, #0x18")]), EQ(Var("R1",Imm(64)),Int(0,64)), -Direct(Tid(602, "%0000025a"))), Goto(Tid(1_427, "%00000593"), Attrs([]), - Int(1,1), Direct(Tid(799, "%0000031f")))])), Blk(Tid(799, "%0000031f"), - Attrs([Attr("address","0x6A4")]), Phis([]), Defs([Def(Tid(802, "%00000322"), - Attrs([Attr("address","0x6A4"), Attr("insn","adrp x2, #65536")]), - Var("R2",Imm(64)), Int(65536,64)), Def(Tid(809, "%00000329"), - Attrs([Attr("address","0x6A8"), Attr("insn","ldr x2, [x2, #0xfe0]")]), - Var("R2",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R2",Imm(64)),Int(4064,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(814, "%0000032e"), Attrs([Attr("address","0x6AC"), -Attr("insn","cbz x2, #0xc")]), EQ(Var("R2",Imm(64)),Int(0,64)), -Direct(Tid(602, "%0000025a"))), Goto(Tid(1_428, "%00000594"), Attrs([]), - Int(1,1), Direct(Tid(818, "%00000332")))])), Blk(Tid(602, "%0000025a"), - Attrs([Attr("address","0x6B8")]), Phis([]), Defs([]), -Jmps([Call(Tid(610, "%00000262"), Attrs([Attr("address","0x6B8"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))])), -Blk(Tid(818, "%00000332"), Attrs([Attr("address","0x6B0")]), Phis([]), -Defs([Def(Tid(822, "%00000336"), Attrs([Attr("address","0x6B0"), -Attr("insn","mov x16, x2")]), Var("R16",Imm(64)), Var("R2",Imm(64)))]), -Jmps([Call(Tid(827, "%0000033b"), Attrs([Attr("address","0x6B4"), -Attr("insn","br x16")]), Int(1,1), -(Indirect(Var("R16",Imm(64))),))]))]))]))) \ No newline at end of file diff --git a/src/test/correct/basic_lock_security_write/clang_O2/basic_lock_security_write.bir b/src/test/correct/basic_lock_security_write/clang_O2/basic_lock_security_write.bir deleted file mode 100644 index 1c62402e8..000000000 --- a/src/test/correct/basic_lock_security_write/clang_O2/basic_lock_security_write.bir +++ /dev/null @@ -1,228 +0,0 @@ -00000595: program -00000563: sub __cxa_finalize(__cxa_finalize_result) -00000596: __cxa_finalize_result :: out u32 = low:32[R0] - -0000031b: -00000413: R16 := 0x11000 -0000041a: R17 := mem[R16 + 8, el]:u64 -00000420: R16 := R16 + 8 -00000425: call R17 with noreturn - -00000564: sub __do_global_dtors_aux(__do_global_dtors_aux_result) -00000597: __do_global_dtors_aux_result :: out u32 = low:32[R0] - -00000266: -0000026a: #3 := R31 - 0x20 -00000270: mem := mem with [#3, el]:u64 <- R29 -00000276: mem := mem with [#3 + 8, el]:u64 <- R30 -0000027a: R31 := #3 -00000280: R29 := R31 -00000288: mem := mem with [R31 + 0x10, el]:u64 <- R19 -0000028d: R19 := 0x11000 -00000294: R0 := pad:64[mem[R19 + 0x30]] -0000029b: when 31:0[R0] <> 0 goto %00000299 -0000058b: goto %000002e4 - -000002e4: -000002e7: R0 := 0x10000 -000002ee: R0 := mem[R0 + 0xFC8, el]:u64 -000002f4: when R0 = 0 goto %000002f2 -0000058c: goto %0000030b - -0000030b: -0000030e: R0 := 0x11000 -00000315: R0 := mem[R0 + 0x28, el]:u64 -0000031a: R30 := 0x6F0 -0000031d: call @__cxa_finalize with return %000002f2 - -000002f2: -000002fa: R30 := 0x6F4 -000002fc: call @deregister_tm_clones with return %000002fe - -000002fe: -00000301: R0 := 1 -00000309: mem := mem with [R19 + 0x30] <- 7:0[R0] -0000058d: goto %00000299 - -00000299: -000002a3: R19 := mem[R31 + 0x10, el]:u64 -000002aa: R29 := mem[R31, el]:u64 -000002af: R30 := mem[R31 + 8, el]:u64 -000002b3: R31 := R31 + 0x20 -000002b8: call R30 with noreturn - -00000568: sub __libc_start_main(__libc_start_main_main, __libc_start_main_arg2, __libc_start_main_arg3, __libc_start_main_auxv, __libc_start_main_result) -00000598: __libc_start_main_main :: in u64 = R0 -00000599: __libc_start_main_arg2 :: in u32 = low:32[R1] -0000059a: __libc_start_main_arg3 :: in out u64 = R2 -0000059b: __libc_start_main_auxv :: in out u64 = R3 -0000059c: __libc_start_main_result :: out u32 = low:32[R0] - -000001bf: -000003fd: R16 := 0x11000 -00000404: R17 := mem[R16, el]:u64 -0000040a: R16 := R16 -0000040f: call R17 with noreturn - -00000569: sub _fini(_fini_result) -0000059d: _fini_result :: out u32 = low:32[R0] - -0000001f: -00000025: #0 := R31 - 0x10 -0000002b: mem := mem with [#0, el]:u64 <- R29 -00000031: mem := mem with [#0 + 8, el]:u64 <- R30 -00000035: R31 := #0 -0000003b: R29 := R31 -00000042: R29 := mem[R31, el]:u64 -00000047: R30 := mem[R31 + 8, el]:u64 -0000004b: R31 := R31 + 0x10 -00000050: call R30 with noreturn - -0000056a: sub _init(_init_result) -0000059e: _init_result :: out u32 = low:32[R0] - -000004bf: -000004c5: #5 := R31 - 0x10 -000004cb: mem := mem with [#5, el]:u64 <- R29 -000004d1: mem := mem with [#5 + 8, el]:u64 <- R30 -000004d5: R31 := #5 -000004db: R29 := R31 -000004e0: R30 := 0x590 -000004e2: call @call_weak_fn with return %000004e4 - -000004e4: -000004e9: R29 := mem[R31, el]:u64 -000004ee: R30 := mem[R31 + 8, el]:u64 -000004f2: R31 := R31 + 0x10 -000004f7: call R30 with noreturn - -0000056b: sub _start(_start_result) -0000059f: _start_result :: out u32 = low:32[R0] - -00000180: -00000185: R29 := 0 -0000018a: R30 := 0 -00000190: R5 := R0 -00000197: R1 := mem[R31, el]:u64 -0000019d: R2 := R31 + 8 -000001a3: R6 := R31 -000001a8: R0 := 0x10000 -000001af: R0 := mem[R0 + 0xFD8, el]:u64 -000001b4: R3 := 0 -000001b9: R4 := 0 -000001be: R30 := 0x630 -000001c1: call @__libc_start_main with return %000001c3 - -000001c3: -000001c6: R30 := 0x634 -000001c9: call @abort with return %0000058e - -0000058e: -0000058f: call @call_weak_fn with noreturn - -0000056e: sub abort() - - -000001c7: -0000043f: R16 := 0x11000 -00000446: R17 := mem[R16 + 0x18, el]:u64 -0000044c: R16 := R16 + 0x18 -00000451: call R17 with noreturn - -0000056f: sub call_weak_fn(call_weak_fn_result) -000005a0: call_weak_fn_result :: out u32 = low:32[R0] - -000001cb: -000001ce: R0 := 0x10000 -000001d5: R0 := mem[R0 + 0xFD0, el]:u64 -000001db: when R0 = 0 goto %000001d9 -00000590: goto %0000035b - -000001d9: -000001e1: call R30 with noreturn - -0000035b: -0000035e: goto @__gmon_start__ - -0000035c: -00000429: R16 := 0x11000 -00000430: R17 := mem[R16 + 0x10, el]:u64 -00000436: R16 := R16 + 0x10 -0000043b: call R17 with noreturn - -00000571: sub deregister_tm_clones(deregister_tm_clones_result) -000005a1: deregister_tm_clones_result :: out u32 = low:32[R0] - -000001e7: -000001ea: R0 := 0x11000 -000001f0: R0 := R0 + 0x30 -000001f5: R1 := 0x11000 -000001fb: R1 := R1 + 0x30 -00000201: #1 := ~R0 -00000206: #2 := R1 + ~R0 -0000020c: VF := extend:65[#2 + 1] <> extend:65[R1] + extend:65[#1] + 1 -00000212: CF := pad:65[#2 + 1] <> pad:65[R1] + pad:65[#1] + 1 -00000216: ZF := #2 + 1 = 0 -0000021a: NF := 63:63[#2 + 1] -00000220: when ZF goto %0000021e -00000591: goto %0000033d - -0000033d: -00000340: R1 := 0x10000 -00000347: R1 := mem[R1 + 0xFC0, el]:u64 -0000034c: when R1 = 0 goto %0000021e -00000592: goto %00000350 - -0000021e: -00000226: call R30 with noreturn - -00000350: -00000354: R16 := R1 -00000359: call R16 with noreturn - -00000574: sub frame_dummy(frame_dummy_result) -000005a2: frame_dummy_result :: out u32 = low:32[R0] - -000002be: -000002c0: call @register_tm_clones with noreturn - -00000575: sub main(main_argc, main_argv, main_result) -000005a3: main_argc :: in u32 = low:32[R0] -000005a4: main_argv :: in out u64 = R1 -000005a5: main_result :: out u32 = low:32[R0] - -000002c2: -000002c5: R0 := 0 -000002ca: R8 := 0x11000 -000002cf: R9 := 0x11000 -000002d6: mem := mem with [R8 + 0x38, el]:u32 <- 0 -000002dd: mem := mem with [R9 + 0x34, el]:u32 <- 0 -000002e2: call R30 with noreturn - -00000576: sub register_tm_clones(register_tm_clones_result) -000005a6: register_tm_clones_result :: out u32 = low:32[R0] - -00000228: -0000022b: R0 := 0x11000 -00000231: R0 := R0 + 0x30 -00000236: R1 := 0x11000 -0000023c: R1 := R1 + 0x30 -00000243: R1 := R1 + ~R0 + 1 -00000249: R2 := 0.63:63[R1] -00000250: R1 := R2 + (R1 ~>> 3) -00000256: R1 := extend:64[63:1[R1]] -0000025c: when R1 = 0 goto %0000025a -00000593: goto %0000031f - -0000031f: -00000322: R2 := 0x10000 -00000329: R2 := mem[R2 + 0xFE0, el]:u64 -0000032e: when R2 = 0 goto %0000025a -00000594: goto %00000332 - -0000025a: -00000262: call R30 with noreturn - -00000332: -00000336: R16 := R2 -0000033b: call R16 with noreturn diff --git a/src/test/correct/basic_lock_security_write/clang_O2/basic_lock_security_write.expected b/src/test/correct/basic_lock_security_write/clang_O2/basic_lock_security_write.expected index 517425698..a59fcf214 100644 --- a/src/test/correct/basic_lock_security_write/clang_O2/basic_lock_security_write.expected +++ b/src/test/correct/basic_lock_security_write/clang_O2/basic_lock_security_write.expected @@ -7,9 +7,9 @@ var {:extern} R8: bv64; var {:extern} R9: bv64; var {:extern} mem: [bv64]bv8; const {:extern} $x_addr: bv64; -axiom ($x_addr == 69688bv64); +axiom ($x_addr == 131096bv64); const {:extern} $z_addr: bv64; -axiom ($z_addr == 69684bv64); +axiom ($z_addr == 131092bv64); function {:extern} L(mem$in: [bv64]bv8, index: bv64) returns (bool) { (if (index == $x_addr) then (memory_load32_le(mem$in, $z_addr) == 0bv32) else (if (index == $z_addr) then true else false)) } @@ -19,6 +19,10 @@ function {:extern} gamma_load32(gammaMap: [bv64]bool, index: bv64) returns (bool (gammaMap[bvadd64(index, 3bv64)] && (gammaMap[bvadd64(index, 2bv64)] && (gammaMap[bvadd64(index, 1bv64)] && gammaMap[index]))) } +function {:extern} gamma_load64(gammaMap: [bv64]bool, index: bv64) returns (bool) { + (gammaMap[bvadd64(index, 7bv64)] && (gammaMap[bvadd64(index, 6bv64)] && (gammaMap[bvadd64(index, 5bv64)] && (gammaMap[bvadd64(index, 4bv64)] && (gammaMap[bvadd64(index, 3bv64)] && (gammaMap[bvadd64(index, 2bv64)] && (gammaMap[bvadd64(index, 1bv64)] && gammaMap[index]))))))) +} + function {:extern} gamma_store32(gammaMap: [bv64]bool, index: bv64, value: bool) returns ([bv64]bool) { gammaMap[index := value][bvadd64(index, 1bv64) := value][bvadd64(index, 2bv64) := value][bvadd64(index, 3bv64) := value] } @@ -39,11 +43,13 @@ procedure {:extern} rely(); modifies Gamma_mem, mem; ensures (forall i: bv64 :: (((mem[i] == old(mem[i])) ==> (Gamma_mem[i] == old(Gamma_mem[i]))))); ensures ((memory_load32_le(mem, $z_addr) == old(memory_load32_le(mem, $z_addr))) && (memory_load32_le(mem, $x_addr) == old(memory_load32_le(mem, $x_addr)))); - free ensures (memory_load32_le(mem, 1856bv64) == 131073bv32); - free ensures (memory_load64_le(mem, 69064bv64) == 1808bv64); - free ensures (memory_load64_le(mem, 69072bv64) == 1728bv64); - free ensures (memory_load64_le(mem, 69592bv64) == 1812bv64); - free ensures (memory_load64_le(mem, 69672bv64) == 69672bv64); + free ensures (memory_load32_le(mem, 2312bv64) == 131073bv32); + free ensures (memory_load64_le(mem, 130424bv64) == 2256bv64); + free ensures (memory_load64_le(mem, 130432bv64) == 2176bv64); + free ensures (memory_load64_le(mem, 131032bv64) == 131092bv64); + free ensures (memory_load64_le(mem, 131040bv64) == 131096bv64); + free ensures (memory_load64_le(mem, 131056bv64) == 2260bv64); + free ensures (memory_load64_le(mem, 131080bv64) == 131080bv64); procedure {:extern} rely_transitive(); modifies Gamma_mem, mem; @@ -70,54 +76,68 @@ implementation {:extern} guarantee_reflexive() assert ((memory_load32_le(mem, $z_addr) == 0bv32) ==> ((memory_load32_le(mem, $x_addr) == memory_load32_le(mem, $x_addr)) && (memory_load32_le(mem, $z_addr) == memory_load32_le(mem, $z_addr)))); } -procedure main_1812(); +procedure main(); modifies Gamma_R0, Gamma_R8, Gamma_R9, Gamma_mem, R0, R8, R9, mem; requires (memory_load32_le(mem, $z_addr) != 0bv32); requires (Gamma_R0 == false); - free requires (memory_load64_le(mem, 69664bv64) == 0bv64); - free requires (memory_load64_le(mem, 69672bv64) == 69672bv64); - free requires (memory_load32_le(mem, 1856bv64) == 131073bv32); - free requires (memory_load64_le(mem, 69064bv64) == 1808bv64); - free requires (memory_load64_le(mem, 69072bv64) == 1728bv64); - free requires (memory_load64_le(mem, 69592bv64) == 1812bv64); - free requires (memory_load64_le(mem, 69672bv64) == 69672bv64); - free ensures (memory_load32_le(mem, 1856bv64) == 131073bv32); - free ensures (memory_load64_le(mem, 69064bv64) == 1808bv64); - free ensures (memory_load64_le(mem, 69072bv64) == 1728bv64); - free ensures (memory_load64_le(mem, 69592bv64) == 1812bv64); - free ensures (memory_load64_le(mem, 69672bv64) == 69672bv64); - -implementation main_1812() + free requires (memory_load64_le(mem, 131072bv64) == 0bv64); + free requires (memory_load64_le(mem, 131080bv64) == 131080bv64); + free requires (memory_load32_le(mem, 2312bv64) == 131073bv32); + free requires (memory_load64_le(mem, 130424bv64) == 2256bv64); + free requires (memory_load64_le(mem, 130432bv64) == 2176bv64); + free requires (memory_load64_le(mem, 131032bv64) == 131092bv64); + free requires (memory_load64_le(mem, 131040bv64) == 131096bv64); + free requires (memory_load64_le(mem, 131056bv64) == 2260bv64); + free requires (memory_load64_le(mem, 131080bv64) == 131080bv64); + free ensures (memory_load32_le(mem, 2312bv64) == 131073bv32); + free ensures (memory_load64_le(mem, 130424bv64) == 2256bv64); + free ensures (memory_load64_le(mem, 130432bv64) == 2176bv64); + free ensures (memory_load64_le(mem, 131032bv64) == 131092bv64); + free ensures (memory_load64_le(mem, 131040bv64) == 131096bv64); + free ensures (memory_load64_le(mem, 131056bv64) == 2260bv64); + free ensures (memory_load64_le(mem, 131080bv64) == 131080bv64); + +implementation main() { + var $load$18: bv64; + var $load$19: bv64; + var Gamma_$load$18: bool; + var Gamma_$load$19: bool; var Gamma_x_old: bool; var x_old: bv32; var z_old: bv32; lmain: assume {:captureState "lmain"} true; + R8, Gamma_R8 := 126976bv64, true; + R9, Gamma_R9 := 126976bv64, true; R0, Gamma_R0 := 0bv64, true; - R8, Gamma_R8 := 69632bv64, true; - R9, Gamma_R9 := 69632bv64, true; call rely(); + $load$18, Gamma_$load$18 := memory_load64_le(mem, bvadd64(R8, 4064bv64)), (gamma_load64(Gamma_mem, bvadd64(R8, 4064bv64)) || L(mem, bvadd64(R8, 4064bv64))); + R8, Gamma_R8 := $load$18, Gamma_$load$18; + call rely(); + $load$19, Gamma_$load$19 := memory_load64_le(mem, bvadd64(R9, 4056bv64)), (gamma_load64(Gamma_mem, bvadd64(R9, 4056bv64)) || L(mem, bvadd64(R9, 4056bv64))); + R9, Gamma_R9 := $load$19, Gamma_$load$19; + call rely(); + assert (L(mem, R8) ==> true); z_old := memory_load32_le(mem, $z_addr); x_old := memory_load32_le(mem, $x_addr); Gamma_x_old := (gamma_load32(Gamma_mem, $x_addr) || L(mem, $x_addr)); - assert (L(mem, bvadd64(R8, 56bv64)) ==> true); - mem, Gamma_mem := memory_store32_le(mem, bvadd64(R8, 56bv64), 0bv32), gamma_store32(Gamma_mem, bvadd64(R8, 56bv64), true); - assert ((bvadd64(R8, 56bv64) == $z_addr) ==> (L(mem, $x_addr) ==> Gamma_x_old)); + mem, Gamma_mem := memory_store32_le(mem, R8, 0bv32), gamma_store32(Gamma_mem, R8, true); + assert ((R8 == $z_addr) ==> (L(mem, $x_addr) ==> Gamma_x_old)); assert ((z_old == 0bv32) ==> ((memory_load32_le(mem, $x_addr) == x_old) && (memory_load32_le(mem, $z_addr) == z_old))); - assume {:captureState "%000002d6"} true; + assume {:captureState "%00000290"} true; call rely(); + assert (L(mem, R9) ==> true); z_old := memory_load32_le(mem, $z_addr); x_old := memory_load32_le(mem, $x_addr); Gamma_x_old := (gamma_load32(Gamma_mem, $x_addr) || L(mem, $x_addr)); - assert (L(mem, bvadd64(R9, 52bv64)) ==> true); - mem, Gamma_mem := memory_store32_le(mem, bvadd64(R9, 52bv64), 0bv32), gamma_store32(Gamma_mem, bvadd64(R9, 52bv64), true); - assert ((bvadd64(R9, 52bv64) == $z_addr) ==> (L(mem, $x_addr) ==> Gamma_x_old)); + mem, Gamma_mem := memory_store32_le(mem, R9, 0bv32), gamma_store32(Gamma_mem, R9, true); + assert ((R9 == $z_addr) ==> (L(mem, $x_addr) ==> Gamma_x_old)); assert ((z_old == 0bv32) ==> ((memory_load32_le(mem, $x_addr) == x_old) && (memory_load32_le(mem, $z_addr) == z_old))); - assume {:captureState "%000002dd"} true; - goto main_1812_basil_return; - main_1812_basil_return: - assume {:captureState "main_1812_basil_return"} true; + assume {:captureState "%00000294"} true; + goto main_basil_return; + main_basil_return: + assume {:captureState "main_basil_return"} true; return; } diff --git a/src/test/correct/basic_lock_security_write/clang_O2/basic_lock_security_write.gts b/src/test/correct/basic_lock_security_write/clang_O2/basic_lock_security_write.gts deleted file mode 100644 index 15c74582a..000000000 Binary files a/src/test/correct/basic_lock_security_write/clang_O2/basic_lock_security_write.gts and /dev/null differ diff --git a/src/test/correct/basic_lock_security_write/clang_O2/basic_lock_security_write.md5sum b/src/test/correct/basic_lock_security_write/clang_O2/basic_lock_security_write.md5sum new file mode 100644 index 000000000..24dc11663 --- /dev/null +++ b/src/test/correct/basic_lock_security_write/clang_O2/basic_lock_security_write.md5sum @@ -0,0 +1,5 @@ +ca86f5bb57b1790e9110184f223047f8 correct/basic_lock_security_write/clang_O2/a.out +82bec542dbb0808dfca0a65ca067254c correct/basic_lock_security_write/clang_O2/basic_lock_security_write.adt +8ee5bc75ae370ae7e18b1088eb84ac74 correct/basic_lock_security_write/clang_O2/basic_lock_security_write.bir +e86643fc01c48f9e0f44c85a7b63f032 correct/basic_lock_security_write/clang_O2/basic_lock_security_write.relf +6d2a46c21aa26d0dc1bffedd2e568b76 correct/basic_lock_security_write/clang_O2/basic_lock_security_write.gts diff --git a/src/test/correct/basic_lock_security_write/clang_O2/basic_lock_security_write.relf b/src/test/correct/basic_lock_security_write/clang_O2/basic_lock_security_write.relf deleted file mode 100644 index 614538b78..000000000 --- a/src/test/correct/basic_lock_security_write/clang_O2/basic_lock_security_write.relf +++ /dev/null @@ -1,124 +0,0 @@ - -Relocation section '.rela.dyn' at offset 0x460 contains 8 entries: - Offset Info Type Symbol's Value Symbol's Name + Addend -0000000000010dc8 0000000000000403 R_AARCH64_RELATIVE 710 -0000000000010dd0 0000000000000403 R_AARCH64_RELATIVE 6c0 -0000000000010fd8 0000000000000403 R_AARCH64_RELATIVE 714 -0000000000011028 0000000000000403 R_AARCH64_RELATIVE 11028 -0000000000010fc0 0000000400000401 R_AARCH64_GLOB_DAT 0000000000000000 _ITM_deregisterTMCloneTable + 0 -0000000000010fc8 0000000500000401 R_AARCH64_GLOB_DAT 0000000000000000 __cxa_finalize@GLIBC_2.17 + 0 -0000000000010fd0 0000000600000401 R_AARCH64_GLOB_DAT 0000000000000000 __gmon_start__ + 0 -0000000000010fe0 0000000800000401 R_AARCH64_GLOB_DAT 0000000000000000 _ITM_registerTMCloneTable + 0 - -Relocation section '.rela.plt' at offset 0x520 contains 4 entries: - Offset Info Type Symbol's Value Symbol's Name + Addend -0000000000011000 0000000300000402 R_AARCH64_JUMP_SLOT 0000000000000000 __libc_start_main@GLIBC_2.34 + 0 -0000000000011008 0000000500000402 R_AARCH64_JUMP_SLOT 0000000000000000 __cxa_finalize@GLIBC_2.17 + 0 -0000000000011010 0000000600000402 R_AARCH64_JUMP_SLOT 0000000000000000 __gmon_start__ + 0 -0000000000011018 0000000700000402 R_AARCH64_JUMP_SLOT 0000000000000000 abort@GLIBC_2.17 + 0 - -Symbol table '.dynsym' contains 9 entries: - Num: Value Size Type Bind Vis Ndx Name - 0: 0000000000000000 0 NOTYPE LOCAL DEFAULT UND - 1: 0000000000000580 0 SECTION LOCAL DEFAULT 11 .init - 2: 0000000000011020 0 SECTION LOCAL DEFAULT 23 .data - 3: 0000000000000000 0 FUNC GLOBAL DEFAULT UND __libc_start_main@GLIBC_2.34 (2) - 4: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_deregisterTMCloneTable - 5: 0000000000000000 0 FUNC WEAK DEFAULT UND __cxa_finalize@GLIBC_2.17 (3) - 6: 0000000000000000 0 NOTYPE WEAK DEFAULT UND __gmon_start__ - 7: 0000000000000000 0 FUNC GLOBAL DEFAULT UND abort@GLIBC_2.17 (3) - 8: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_registerTMCloneTable - -Symbol table '.symtab' contains 91 entries: - Num: Value Size Type Bind Vis Ndx Name - 0: 0000000000000000 0 NOTYPE LOCAL DEFAULT UND - 1: 0000000000000238 0 SECTION LOCAL DEFAULT 1 .interp - 2: 0000000000000254 0 SECTION LOCAL DEFAULT 2 .note.gnu.build-id - 3: 0000000000000278 0 SECTION LOCAL DEFAULT 3 .note.ABI-tag - 4: 0000000000000298 0 SECTION LOCAL DEFAULT 4 .gnu.hash - 5: 00000000000002b8 0 SECTION LOCAL DEFAULT 5 .dynsym - 6: 0000000000000390 0 SECTION LOCAL DEFAULT 6 .dynstr - 7: 000000000000041e 0 SECTION LOCAL DEFAULT 7 .gnu.version - 8: 0000000000000430 0 SECTION LOCAL DEFAULT 8 .gnu.version_r - 9: 0000000000000460 0 SECTION LOCAL DEFAULT 9 .rela.dyn - 10: 0000000000000520 0 SECTION LOCAL DEFAULT 10 .rela.plt - 11: 0000000000000580 0 SECTION LOCAL DEFAULT 11 .init - 12: 00000000000005a0 0 SECTION LOCAL DEFAULT 12 .plt - 13: 0000000000000600 0 SECTION LOCAL DEFAULT 13 .text - 14: 000000000000072c 0 SECTION LOCAL DEFAULT 14 .fini - 15: 0000000000000740 0 SECTION LOCAL DEFAULT 15 .rodata - 16: 0000000000000744 0 SECTION LOCAL DEFAULT 16 .eh_frame_hdr - 17: 0000000000000780 0 SECTION LOCAL DEFAULT 17 .eh_frame - 18: 0000000000010dc8 0 SECTION LOCAL DEFAULT 18 .init_array - 19: 0000000000010dd0 0 SECTION LOCAL DEFAULT 19 .fini_array - 20: 0000000000010dd8 0 SECTION LOCAL DEFAULT 20 .dynamic - 21: 0000000000010fb8 0 SECTION LOCAL DEFAULT 21 .got - 22: 0000000000010fe8 0 SECTION LOCAL DEFAULT 22 .got.plt - 23: 0000000000011020 0 SECTION LOCAL DEFAULT 23 .data - 24: 0000000000011030 0 SECTION LOCAL DEFAULT 24 .bss - 25: 0000000000000000 0 SECTION LOCAL DEFAULT 25 .comment - 26: 0000000000000000 0 FILE LOCAL DEFAULT ABS Scrt1.o - 27: 0000000000000278 0 NOTYPE LOCAL DEFAULT 3 $d - 28: 0000000000000278 32 OBJECT LOCAL DEFAULT 3 __abi_tag - 29: 0000000000000600 0 NOTYPE LOCAL DEFAULT 13 $x - 30: 0000000000000794 0 NOTYPE LOCAL DEFAULT 17 $d - 31: 0000000000000740 0 NOTYPE LOCAL DEFAULT 15 $d - 32: 0000000000000000 0 FILE LOCAL DEFAULT ABS crti.o - 33: 0000000000000634 0 NOTYPE LOCAL DEFAULT 13 $x - 34: 0000000000000634 20 FUNC LOCAL DEFAULT 13 call_weak_fn - 35: 0000000000000580 0 NOTYPE LOCAL DEFAULT 11 $x - 36: 000000000000072c 0 NOTYPE LOCAL DEFAULT 14 $x - 37: 0000000000000000 0 FILE LOCAL DEFAULT ABS crtn.o - 38: 0000000000000590 0 NOTYPE LOCAL DEFAULT 11 $x - 39: 0000000000000738 0 NOTYPE LOCAL DEFAULT 14 $x - 40: 0000000000000000 0 FILE LOCAL DEFAULT ABS crtstuff.c - 41: 0000000000000650 0 NOTYPE LOCAL DEFAULT 13 $x - 42: 0000000000000650 0 FUNC LOCAL DEFAULT 13 deregister_tm_clones - 43: 0000000000000680 0 FUNC LOCAL DEFAULT 13 register_tm_clones - 44: 0000000000011028 0 NOTYPE LOCAL DEFAULT 23 $d - 45: 00000000000006c0 0 FUNC LOCAL DEFAULT 13 __do_global_dtors_aux - 46: 0000000000011030 1 OBJECT LOCAL DEFAULT 24 completed.0 - 47: 0000000000010dd0 0 NOTYPE LOCAL DEFAULT 19 $d - 48: 0000000000010dd0 0 OBJECT LOCAL DEFAULT 19 __do_global_dtors_aux_fini_array_entry - 49: 0000000000000710 0 FUNC LOCAL DEFAULT 13 frame_dummy - 50: 0000000000010dc8 0 NOTYPE LOCAL DEFAULT 18 $d - 51: 0000000000010dc8 0 OBJECT LOCAL DEFAULT 18 __frame_dummy_init_array_entry - 52: 00000000000007a8 0 NOTYPE LOCAL DEFAULT 17 $d - 53: 0000000000011030 0 NOTYPE LOCAL DEFAULT 24 $d - 54: 0000000000000000 0 FILE LOCAL DEFAULT ABS basic_lock_security_write.c - 55: 0000000000000714 0 NOTYPE LOCAL DEFAULT 13 $x.0 - 56: 0000000000011034 0 NOTYPE LOCAL DEFAULT 24 $d.1 - 57: 000000000000002a 0 NOTYPE LOCAL DEFAULT 25 $d.2 - 58: 0000000000000808 0 NOTYPE LOCAL DEFAULT 17 $d.3 - 59: 0000000000000000 0 FILE LOCAL DEFAULT ABS crtstuff.c - 60: 0000000000000830 0 NOTYPE LOCAL DEFAULT 17 $d - 61: 0000000000000830 0 OBJECT LOCAL DEFAULT 17 __FRAME_END__ - 62: 0000000000000000 0 FILE LOCAL DEFAULT ABS - 63: 0000000000010dd8 0 OBJECT LOCAL DEFAULT ABS _DYNAMIC - 64: 0000000000000744 0 NOTYPE LOCAL DEFAULT 16 __GNU_EH_FRAME_HDR - 65: 0000000000010fb8 0 OBJECT LOCAL DEFAULT ABS _GLOBAL_OFFSET_TABLE_ - 66: 00000000000005a0 0 NOTYPE LOCAL DEFAULT 12 $x - 67: 0000000000000000 0 FUNC GLOBAL DEFAULT UND __libc_start_main@GLIBC_2.34 - 68: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_deregisterTMCloneTable - 69: 0000000000011020 0 NOTYPE WEAK DEFAULT 23 data_start - 70: 0000000000011030 0 NOTYPE GLOBAL DEFAULT 24 __bss_start__ - 71: 0000000000000000 0 FUNC WEAK DEFAULT UND __cxa_finalize@GLIBC_2.17 - 72: 0000000000011040 0 NOTYPE GLOBAL DEFAULT 24 _bss_end__ - 73: 0000000000011030 0 NOTYPE GLOBAL DEFAULT 23 _edata - 74: 0000000000011034 4 OBJECT GLOBAL DEFAULT 24 z - 75: 0000000000011038 4 OBJECT GLOBAL DEFAULT 24 x - 76: 000000000000072c 0 FUNC GLOBAL HIDDEN 14 _fini - 77: 0000000000011040 0 NOTYPE GLOBAL DEFAULT 24 __bss_end__ - 78: 0000000000011020 0 NOTYPE GLOBAL DEFAULT 23 __data_start - 79: 0000000000000000 0 NOTYPE WEAK DEFAULT UND __gmon_start__ - 80: 0000000000011028 0 OBJECT GLOBAL HIDDEN 23 __dso_handle - 81: 0000000000000000 0 FUNC GLOBAL DEFAULT UND abort@GLIBC_2.17 - 82: 0000000000000740 4 OBJECT GLOBAL DEFAULT 15 _IO_stdin_used - 83: 0000000000011040 0 NOTYPE GLOBAL DEFAULT 24 _end - 84: 0000000000000600 52 FUNC GLOBAL DEFAULT 13 _start - 85: 0000000000011040 0 NOTYPE GLOBAL DEFAULT 24 __end__ - 86: 0000000000011030 0 NOTYPE GLOBAL DEFAULT 24 __bss_start - 87: 0000000000000714 24 FUNC GLOBAL DEFAULT 13 main - 88: 0000000000011030 0 OBJECT GLOBAL HIDDEN 23 __TMC_END__ - 89: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_registerTMCloneTable - 90: 0000000000000580 0 FUNC GLOBAL HIDDEN 11 _init diff --git a/src/test/correct/basic_lock_security_write/clang_O2/basic_lock_security_write_gtirb.expected b/src/test/correct/basic_lock_security_write/clang_O2/basic_lock_security_write_gtirb.expected index b7e40bd29..3eeaca89c 100644 --- a/src/test/correct/basic_lock_security_write/clang_O2/basic_lock_security_write_gtirb.expected +++ b/src/test/correct/basic_lock_security_write/clang_O2/basic_lock_security_write_gtirb.expected @@ -7,9 +7,9 @@ var {:extern} R8: bv64; var {:extern} R9: bv64; var {:extern} mem: [bv64]bv8; const {:extern} $x_addr: bv64; -axiom ($x_addr == 69688bv64); +axiom ($x_addr == 131096bv64); const {:extern} $z_addr: bv64; -axiom ($z_addr == 69684bv64); +axiom ($z_addr == 131092bv64); function {:extern} L(mem$in: [bv64]bv8, index: bv64) returns (bool) { (if (index == $x_addr) then (memory_load32_le(mem$in, $z_addr) == 0bv32) else (if (index == $z_addr) then true else false)) } @@ -19,6 +19,10 @@ function {:extern} gamma_load32(gammaMap: [bv64]bool, index: bv64) returns (bool (gammaMap[bvadd64(index, 3bv64)] && (gammaMap[bvadd64(index, 2bv64)] && (gammaMap[bvadd64(index, 1bv64)] && gammaMap[index]))) } +function {:extern} gamma_load64(gammaMap: [bv64]bool, index: bv64) returns (bool) { + (gammaMap[bvadd64(index, 7bv64)] && (gammaMap[bvadd64(index, 6bv64)] && (gammaMap[bvadd64(index, 5bv64)] && (gammaMap[bvadd64(index, 4bv64)] && (gammaMap[bvadd64(index, 3bv64)] && (gammaMap[bvadd64(index, 2bv64)] && (gammaMap[bvadd64(index, 1bv64)] && gammaMap[index]))))))) +} + function {:extern} gamma_store32(gammaMap: [bv64]bool, index: bv64, value: bool) returns ([bv64]bool) { gammaMap[index := value][bvadd64(index, 1bv64) := value][bvadd64(index, 2bv64) := value][bvadd64(index, 3bv64) := value] } @@ -39,11 +43,13 @@ procedure {:extern} rely(); modifies Gamma_mem, mem; ensures (forall i: bv64 :: (((mem[i] == old(mem[i])) ==> (Gamma_mem[i] == old(Gamma_mem[i]))))); ensures ((memory_load32_le(mem, $z_addr) == old(memory_load32_le(mem, $z_addr))) && (memory_load32_le(mem, $x_addr) == old(memory_load32_le(mem, $x_addr)))); - free ensures (memory_load32_le(mem, 1856bv64) == 131073bv32); - free ensures (memory_load64_le(mem, 69064bv64) == 1808bv64); - free ensures (memory_load64_le(mem, 69072bv64) == 1728bv64); - free ensures (memory_load64_le(mem, 69592bv64) == 1812bv64); - free ensures (memory_load64_le(mem, 69672bv64) == 69672bv64); + free ensures (memory_load32_le(mem, 2312bv64) == 131073bv32); + free ensures (memory_load64_le(mem, 130424bv64) == 2256bv64); + free ensures (memory_load64_le(mem, 130432bv64) == 2176bv64); + free ensures (memory_load64_le(mem, 131032bv64) == 131092bv64); + free ensures (memory_load64_le(mem, 131040bv64) == 131096bv64); + free ensures (memory_load64_le(mem, 131056bv64) == 2260bv64); + free ensures (memory_load64_le(mem, 131080bv64) == 131080bv64); procedure {:extern} rely_transitive(); modifies Gamma_mem, mem; @@ -70,54 +76,68 @@ implementation {:extern} guarantee_reflexive() assert ((memory_load32_le(mem, $z_addr) == 0bv32) ==> ((memory_load32_le(mem, $x_addr) == memory_load32_le(mem, $x_addr)) && (memory_load32_le(mem, $z_addr) == memory_load32_le(mem, $z_addr)))); } -procedure main_1812(); +procedure main(); modifies Gamma_R0, Gamma_R8, Gamma_R9, Gamma_mem, R0, R8, R9, mem; requires (memory_load32_le(mem, $z_addr) != 0bv32); requires (Gamma_R0 == false); - free requires (memory_load64_le(mem, 69664bv64) == 0bv64); - free requires (memory_load64_le(mem, 69672bv64) == 69672bv64); - free requires (memory_load32_le(mem, 1856bv64) == 131073bv32); - free requires (memory_load64_le(mem, 69064bv64) == 1808bv64); - free requires (memory_load64_le(mem, 69072bv64) == 1728bv64); - free requires (memory_load64_le(mem, 69592bv64) == 1812bv64); - free requires (memory_load64_le(mem, 69672bv64) == 69672bv64); - free ensures (memory_load32_le(mem, 1856bv64) == 131073bv32); - free ensures (memory_load64_le(mem, 69064bv64) == 1808bv64); - free ensures (memory_load64_le(mem, 69072bv64) == 1728bv64); - free ensures (memory_load64_le(mem, 69592bv64) == 1812bv64); - free ensures (memory_load64_le(mem, 69672bv64) == 69672bv64); - -implementation main_1812() + free requires (memory_load64_le(mem, 131072bv64) == 0bv64); + free requires (memory_load64_le(mem, 131080bv64) == 131080bv64); + free requires (memory_load32_le(mem, 2312bv64) == 131073bv32); + free requires (memory_load64_le(mem, 130424bv64) == 2256bv64); + free requires (memory_load64_le(mem, 130432bv64) == 2176bv64); + free requires (memory_load64_le(mem, 131032bv64) == 131092bv64); + free requires (memory_load64_le(mem, 131040bv64) == 131096bv64); + free requires (memory_load64_le(mem, 131056bv64) == 2260bv64); + free requires (memory_load64_le(mem, 131080bv64) == 131080bv64); + free ensures (memory_load32_le(mem, 2312bv64) == 131073bv32); + free ensures (memory_load64_le(mem, 130424bv64) == 2256bv64); + free ensures (memory_load64_le(mem, 130432bv64) == 2176bv64); + free ensures (memory_load64_le(mem, 131032bv64) == 131092bv64); + free ensures (memory_load64_le(mem, 131040bv64) == 131096bv64); + free ensures (memory_load64_le(mem, 131056bv64) == 2260bv64); + free ensures (memory_load64_le(mem, 131080bv64) == 131080bv64); + +implementation main() { + var $load5: bv64; + var $load6: bv64; + var Gamma_$load5: bool; + var Gamma_$load6: bool; var Gamma_x_old: bool; var x_old: bv32; var z_old: bv32; - main_1812__0__eU82ZTD6Qryyz77c_YQokg: - assume {:captureState "main_1812__0__eU82ZTD6Qryyz77c_YQokg"} true; + $main$__0__$D9t2gNJrSmyMH3GAVRe3IQ: + assume {:captureState "$main$__0__$D9t2gNJrSmyMH3GAVRe3IQ"} true; + R8, Gamma_R8 := 126976bv64, true; + R9, Gamma_R9 := 126976bv64, true; R0, Gamma_R0 := 0bv64, true; - R8, Gamma_R8 := 69632bv64, true; - R9, Gamma_R9 := 69632bv64, true; call rely(); + $load5, Gamma_$load5 := memory_load64_le(mem, bvadd64(R8, 4064bv64)), (gamma_load64(Gamma_mem, bvadd64(R8, 4064bv64)) || L(mem, bvadd64(R8, 4064bv64))); + R8, Gamma_R8 := $load5, Gamma_$load5; + call rely(); + $load6, Gamma_$load6 := memory_load64_le(mem, bvadd64(R9, 4056bv64)), (gamma_load64(Gamma_mem, bvadd64(R9, 4056bv64)) || L(mem, bvadd64(R9, 4056bv64))); + R9, Gamma_R9 := $load6, Gamma_$load6; + call rely(); + assert (L(mem, R8) ==> true); z_old := memory_load32_le(mem, $z_addr); x_old := memory_load32_le(mem, $x_addr); Gamma_x_old := (gamma_load32(Gamma_mem, $x_addr) || L(mem, $x_addr)); - assert (L(mem, bvadd64(R8, 56bv64)) ==> true); - mem, Gamma_mem := memory_store32_le(mem, bvadd64(R8, 56bv64), 0bv32), gamma_store32(Gamma_mem, bvadd64(R8, 56bv64), true); - assert ((bvadd64(R8, 56bv64) == $z_addr) ==> (L(mem, $x_addr) ==> Gamma_x_old)); + mem, Gamma_mem := memory_store32_le(mem, R8, 0bv32), gamma_store32(Gamma_mem, R8, true); + assert ((R8 == $z_addr) ==> (L(mem, $x_addr) ==> Gamma_x_old)); assert ((z_old == 0bv32) ==> ((memory_load32_le(mem, $x_addr) == x_old) && (memory_load32_le(mem, $z_addr) == z_old))); - assume {:captureState "1824_0"} true; + assume {:captureState "2280$0"} true; call rely(); + assert (L(mem, R9) ==> true); z_old := memory_load32_le(mem, $z_addr); x_old := memory_load32_le(mem, $x_addr); Gamma_x_old := (gamma_load32(Gamma_mem, $x_addr) || L(mem, $x_addr)); - assert (L(mem, bvadd64(R9, 52bv64)) ==> true); - mem, Gamma_mem := memory_store32_le(mem, bvadd64(R9, 52bv64), 0bv32), gamma_store32(Gamma_mem, bvadd64(R9, 52bv64), true); - assert ((bvadd64(R9, 52bv64) == $z_addr) ==> (L(mem, $x_addr) ==> Gamma_x_old)); + mem, Gamma_mem := memory_store32_le(mem, R9, 0bv32), gamma_store32(Gamma_mem, R9, true); + assert ((R9 == $z_addr) ==> (L(mem, $x_addr) ==> Gamma_x_old)); assert ((z_old == 0bv32) ==> ((memory_load32_le(mem, $x_addr) == x_old) && (memory_load32_le(mem, $z_addr) == z_old))); - assume {:captureState "1828_0"} true; - goto main_1812_basil_return; - main_1812_basil_return: - assume {:captureState "main_1812_basil_return"} true; + assume {:captureState "2284$0"} true; + goto main_basil_return; + main_basil_return: + assume {:captureState "main_basil_return"} true; return; } diff --git a/src/test/correct/basic_lock_security_write/clang_pic/basic_lock_security_write.adt b/src/test/correct/basic_lock_security_write/clang_pic/basic_lock_security_write.adt deleted file mode 100644 index f6cce4c77..000000000 --- a/src/test/correct/basic_lock_security_write/clang_pic/basic_lock_security_write.adt +++ /dev/null @@ -1,522 +0,0 @@ -Project(Attrs([Attr("filename","\"clang_pic/basic_lock_security_write.out\""), -Attr("image-specification","(declare abi (name str))\n(declare arch (name str))\n(declare base-address (addr int))\n(declare bias (off int))\n(declare bits (size int))\n(declare code-region (addr int) (size int) (off int))\n(declare code-start (addr int))\n(declare entry-point (addr int))\n(declare external-reference (addr int) (name str))\n(declare format (name str))\n(declare is-executable (flag bool))\n(declare is-little-endian (flag bool))\n(declare llvm:base-address (addr int))\n(declare llvm:code-entry (name str) (off int) (size int))\n(declare llvm:coff-import-library (name str))\n(declare llvm:coff-virtual-section-header (name str) (addr int) (size int))\n(declare llvm:elf-program-header (name str) (off int) (size int))\n(declare llvm:elf-program-header-flags (name str) (ld bool) (r bool) \n (w bool) (x bool))\n(declare llvm:elf-virtual-program-header (name str) (addr int) (size int))\n(declare llvm:entry-point (addr int))\n(declare llvm:macho-symbol (name str) (value int))\n(declare llvm:name-reference (at int) (name str))\n(declare llvm:relocation (at int) (addr int))\n(declare llvm:section-entry (name str) (addr int) (size int) (off int))\n(declare llvm:section-flags (name str) (r bool) (w bool) (x bool))\n(declare llvm:segment-command (name str) (off int) (size int))\n(declare llvm:segment-command-flags (name str) (r bool) (w bool) (x bool))\n(declare llvm:symbol-entry (name str) (addr int) (size int) (off int)\n (value int))\n(declare llvm:virtual-segment-command (name str) (addr int) (size int))\n(declare mapped (addr int) (size int) (off int))\n(declare named-region (addr int) (size int) (name str))\n(declare named-symbol (addr int) (name str))\n(declare require (name str))\n(declare section (addr int) (size int))\n(declare segment (addr int) (size int) (r bool) (w bool) (x bool))\n(declare subarch (name str))\n(declare symbol-chunk (addr int) (size int) (root int))\n(declare symbol-value (addr int) (value int))\n(declare system (name str))\n(declare vendor (name str))\n\n(abi unknown)\n(arch aarch64)\n(base-address 0)\n(bias 0)\n(bits 64)\n(code-region 1936 20 1936)\n(code-region 1600 336 1600)\n(code-region 1488 96 1488)\n(code-region 1456 24 1456)\n(code-start 1652)\n(code-start 1600)\n(code-start 1876)\n(entry-point 1600)\n(external-reference 69552 _ITM_deregisterTMCloneTable)\n(external-reference 69560 __cxa_finalize)\n(external-reference 69584 __gmon_start__)\n(external-reference 69600 _ITM_registerTMCloneTable)\n(external-reference 69632 __libc_start_main)\n(external-reference 69640 __cxa_finalize)\n(external-reference 69648 __gmon_start__)\n(external-reference 69656 abort)\n(format elf)\n(is-executable true)\n(is-little-endian true)\n(llvm:base-address 0)\n(llvm:code-entry abort 0 0)\n(llvm:code-entry __cxa_finalize 0 0)\n(llvm:code-entry __libc_start_main 0 0)\n(llvm:code-entry _init 1456 0)\n(llvm:code-entry main 1876 60)\n(llvm:code-entry _start 1600 52)\n(llvm:code-entry abort@GLIBC_2.17 0 0)\n(llvm:code-entry _fini 1936 0)\n(llvm:code-entry __cxa_finalize@GLIBC_2.17 0 0)\n(llvm:code-entry __libc_start_main@GLIBC_2.34 0 0)\n(llvm:code-entry frame_dummy 1872 0)\n(llvm:code-entry __do_global_dtors_aux 1792 0)\n(llvm:code-entry register_tm_clones 1728 0)\n(llvm:code-entry deregister_tm_clones 1680 0)\n(llvm:code-entry call_weak_fn 1652 20)\n(llvm:code-entry .fini 1936 20)\n(llvm:code-entry .text 1600 336)\n(llvm:code-entry .plt 1488 96)\n(llvm:code-entry .init 1456 24)\n(llvm:elf-program-header 08 3512 584)\n(llvm:elf-program-header 07 0 0)\n(llvm:elf-program-header 06 1960 60)\n(llvm:elf-program-header 05 596 68)\n(llvm:elf-program-header 04 3528 480)\n(llvm:elf-program-header 03 3512 632)\n(llvm:elf-program-header 02 0 2208)\n(llvm:elf-program-header 01 568 27)\n(llvm:elf-program-header 00 64 504)\n(llvm:elf-program-header-flags 08 false true false false)\n(llvm:elf-program-header-flags 07 false true true false)\n(llvm:elf-program-header-flags 06 false true false false)\n(llvm:elf-program-header-flags 05 false true false false)\n(llvm:elf-program-header-flags 04 false true true false)\n(llvm:elf-program-header-flags 03 true true true false)\n(llvm:elf-program-header-flags 02 true true false true)\n(llvm:elf-program-header-flags 01 false true false false)\n(llvm:elf-program-header-flags 00 false true false false)\n(llvm:elf-virtual-program-header 08 69048 584)\n(llvm:elf-virtual-program-header 07 0 0)\n(llvm:elf-virtual-program-header 06 1960 60)\n(llvm:elf-virtual-program-header 05 596 68)\n(llvm:elf-virtual-program-header 04 69064 480)\n(llvm:elf-virtual-program-header 03 69048 648)\n(llvm:elf-virtual-program-header 02 0 2208)\n(llvm:elf-virtual-program-header 01 568 27)\n(llvm:elf-virtual-program-header 00 64 504)\n(llvm:entry-point 1600)\n(llvm:name-reference 69656 abort)\n(llvm:name-reference 69648 __gmon_start__)\n(llvm:name-reference 69640 __cxa_finalize)\n(llvm:name-reference 69632 __libc_start_main)\n(llvm:name-reference 69600 _ITM_registerTMCloneTable)\n(llvm:name-reference 69584 __gmon_start__)\n(llvm:name-reference 69560 __cxa_finalize)\n(llvm:name-reference 69552 _ITM_deregisterTMCloneTable)\n(llvm:section-entry .shstrtab 0 259 6983)\n(llvm:section-entry .strtab 0 583 6400)\n(llvm:section-entry .symtab 0 2184 4216)\n(llvm:section-entry .comment 0 71 4144)\n(llvm:section-entry .bss 69680 16 4144)\n(llvm:section-entry .data 69664 16 4128)\n(llvm:section-entry .got.plt 69608 56 4072)\n(llvm:section-entry .got 69544 64 4008)\n(llvm:section-entry .dynamic 69064 480 3528)\n(llvm:section-entry .fini_array 69056 8 3520)\n(llvm:section-entry .init_array 69048 8 3512)\n(llvm:section-entry .eh_frame 2024 184 2024)\n(llvm:section-entry .eh_frame_hdr 1960 60 1960)\n(llvm:section-entry .rodata 1956 4 1956)\n(llvm:section-entry .fini 1936 20 1936)\n(llvm:section-entry .text 1600 336 1600)\n(llvm:section-entry .plt 1488 96 1488)\n(llvm:section-entry .init 1456 24 1456)\n(llvm:section-entry .rela.plt 1360 96 1360)\n(llvm:section-entry .rela.dyn 1120 240 1120)\n(llvm:section-entry .gnu.version_r 1072 48 1072)\n(llvm:section-entry .gnu.version 1054 18 1054)\n(llvm:section-entry .dynstr 912 141 912)\n(llvm:section-entry .dynsym 696 216 696)\n(llvm:section-entry .gnu.hash 664 28 664)\n(llvm:section-entry .note.ABI-tag 632 32 632)\n(llvm:section-entry .note.gnu.build-id 596 36 596)\n(llvm:section-entry .interp 568 27 568)\n(llvm:section-flags .shstrtab true false false)\n(llvm:section-flags .strtab true false false)\n(llvm:section-flags .symtab true false false)\n(llvm:section-flags .comment true false false)\n(llvm:section-flags .bss true true false)\n(llvm:section-flags .data true true false)\n(llvm:section-flags .got.plt true true false)\n(llvm:section-flags .got true true false)\n(llvm:section-flags .dynamic true true false)\n(llvm:section-flags .fini_array true true false)\n(llvm:section-flags .init_array true true false)\n(llvm:section-flags .eh_frame true false false)\n(llvm:section-flags .eh_frame_hdr true false false)\n(llvm:section-flags .rodata true false false)\n(llvm:section-flags .fini true false true)\n(llvm:section-flags .text true false true)\n(llvm:section-flags .plt true false true)\n(llvm:section-flags .init true false true)\n(llvm:section-flags .rela.plt true false false)\n(llvm:section-flags .rela.dyn true false false)\n(llvm:section-flags .gnu.version_r true false false)\n(llvm:section-flags .gnu.version true false false)\n(llvm:section-flags .dynstr true false false)\n(llvm:section-flags .dynsym true false false)\n(llvm:section-flags .gnu.hash true false false)\n(llvm:section-flags .note.ABI-tag true false false)\n(llvm:section-flags .note.gnu.build-id true false false)\n(llvm:section-flags .interp true false false)\n(llvm:symbol-entry abort 0 0 0 0)\n(llvm:symbol-entry __cxa_finalize 0 0 0 0)\n(llvm:symbol-entry __libc_start_main 0 0 0 0)\n(llvm:symbol-entry _init 1456 0 1456 1456)\n(llvm:symbol-entry main 1876 60 1876 1876)\n(llvm:symbol-entry _start 1600 52 1600 1600)\n(llvm:symbol-entry abort@GLIBC_2.17 0 0 0 0)\n(llvm:symbol-entry _fini 1936 0 1936 1936)\n(llvm:symbol-entry __cxa_finalize@GLIBC_2.17 0 0 0 0)\n(llvm:symbol-entry __libc_start_main@GLIBC_2.34 0 0 0 0)\n(llvm:symbol-entry frame_dummy 1872 0 1872 1872)\n(llvm:symbol-entry __do_global_dtors_aux 1792 0 1792 1792)\n(llvm:symbol-entry register_tm_clones 1728 0 1728 1728)\n(llvm:symbol-entry deregister_tm_clones 1680 0 1680 1680)\n(llvm:symbol-entry call_weak_fn 1652 20 1652 1652)\n(mapped 0 2208 0)\n(mapped 69048 632 3512)\n(named-region 0 2208 02)\n(named-region 69048 648 03)\n(named-region 568 27 .interp)\n(named-region 596 36 .note.gnu.build-id)\n(named-region 632 32 .note.ABI-tag)\n(named-region 664 28 .gnu.hash)\n(named-region 696 216 .dynsym)\n(named-region 912 141 .dynstr)\n(named-region 1054 18 .gnu.version)\n(named-region 1072 48 .gnu.version_r)\n(named-region 1120 240 .rela.dyn)\n(named-region 1360 96 .rela.plt)\n(named-region 1456 24 .init)\n(named-region 1488 96 .plt)\n(named-region 1600 336 .text)\n(named-region 1936 20 .fini)\n(named-region 1956 4 .rodata)\n(named-region 1960 60 .eh_frame_hdr)\n(named-region 2024 184 .eh_frame)\n(named-region 69048 8 .init_array)\n(named-region 69056 8 .fini_array)\n(named-region 69064 480 .dynamic)\n(named-region 69544 64 .got)\n(named-region 69608 56 .got.plt)\n(named-region 69664 16 .data)\n(named-region 69680 16 .bss)\n(named-region 0 71 .comment)\n(named-region 0 2184 .symtab)\n(named-region 0 583 .strtab)\n(named-region 0 259 .shstrtab)\n(named-symbol 1652 call_weak_fn)\n(named-symbol 1680 deregister_tm_clones)\n(named-symbol 1728 register_tm_clones)\n(named-symbol 1792 __do_global_dtors_aux)\n(named-symbol 1872 frame_dummy)\n(named-symbol 0 __libc_start_main@GLIBC_2.34)\n(named-symbol 0 __cxa_finalize@GLIBC_2.17)\n(named-symbol 1936 _fini)\n(named-symbol 0 abort@GLIBC_2.17)\n(named-symbol 1600 _start)\n(named-symbol 1876 main)\n(named-symbol 1456 _init)\n(named-symbol 0 __libc_start_main)\n(named-symbol 0 __cxa_finalize)\n(named-symbol 0 abort)\n(require libc.so.6)\n(section 568 27)\n(section 596 36)\n(section 632 32)\n(section 664 28)\n(section 696 216)\n(section 912 141)\n(section 1054 18)\n(section 1072 48)\n(section 1120 240)\n(section 1360 96)\n(section 1456 24)\n(section 1488 96)\n(section 1600 336)\n(section 1936 20)\n(section 1956 4)\n(section 1960 60)\n(section 2024 184)\n(section 69048 8)\n(section 69056 8)\n(section 69064 480)\n(section 69544 64)\n(section 69608 56)\n(section 69664 16)\n(section 69680 16)\n(section 0 71)\n(section 0 2184)\n(section 0 583)\n(section 0 259)\n(segment 0 2208 true false true)\n(segment 69048 648 true true false)\n(subarch v8)\n(symbol-chunk 1652 20 1652)\n(symbol-chunk 1600 52 1600)\n(symbol-chunk 1876 60 1876)\n(symbol-value 1652 1652)\n(symbol-value 1680 1680)\n(symbol-value 1728 1728)\n(symbol-value 1792 1792)\n(symbol-value 1872 1872)\n(symbol-value 1936 1936)\n(symbol-value 1600 1600)\n(symbol-value 1876 1876)\n(symbol-value 1456 1456)\n(symbol-value 0 0)\n(system \"\")\n(vendor \"\")\n"), -Attr("abi-name","\"aarch64-linux-gnu-elf\"")]), -Sections([Section(".shstrtab", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x40\x06\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x50\x1c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x38\x00\x09\x00\x40\x00\x1d\x00\x1c\x00\x06\x00\x00\x00\x04\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x04\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xa0\x08\x00\x00\x00\x00\x00\x00\xa0\x08\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x01\x00\x00\x00\x06\x00\x00\x00\xb8\x0d\x00\x00\x00\x00\x00\x00\xb8\x0d\x01\x00\x00\x00\x00\x00\xb8\x0d\x01"), -Section(".strtab", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x40\x06\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x50\x1c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x38\x00\x09\x00\x40\x00\x1d\x00\x1c\x00\x06\x00\x00\x00\x04\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x04\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xa0\x08\x00\x00\x00\x00\x00\x00\xa0\x08\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x01\x00\x00\x00\x06\x00\x00\x00\xb8\x0d\x00\x00\x00\x00\x00\x00\xb8\x0d\x01\x00\x00\x00\x00\x00\xb8\x0d\x01\x00\x00\x00\x00\x00\x78\x02\x00\x00\x00\x00\x00\x00\x88\x02\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x02\x00\x00\x00\x06\x00\x00\x00\xc8\x0d\x00\x00\x00\x00\x00\x00\xc8\x0d\x01\x00\x00\x00\x00\x00\xc8\x0d\x01\x00\x00\x00\x00\x00\xe0\x01\x00\x00\x00\x00\x00\x00\xe0\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x04\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x50\xe5\x74\x64\x04\x00\x00\x00\xa8\x07\x00\x00\x00\x00\x00\x00\xa8\x07\x00\x00\x00\x00\x00\x00\xa8\x07\x00\x00\x00\x00\x00\x00\x3c\x00\x00\x00\x00\x00\x00\x00\x3c\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x51\xe5\x74\x64\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x52\xe5\x74\x64\x04\x00\x00\x00\xb8\x0d\x00\x00\x00\x00\x00\x00\xb8\x0d\x01\x00\x00\x00\x00\x00\xb8\x0d\x01\x00\x00\x00\x00\x00\x48\x02\x00\x00\x00\x00\x00\x00\x48\x02\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x2f\x6c\x69\x62\x2f\x6c\x64\x2d\x6c\x69\x6e\x75\x78\x2d\x61"), -Section(".symtab", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x40\x06\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x50\x1c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x38\x00\x09\x00\x40\x00\x1d\x00\x1c\x00\x06\x00\x00\x00\x04\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x04\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xa0\x08\x00\x00\x00\x00\x00\x00\xa0\x08\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x01\x00\x00\x00\x06\x00\x00\x00\xb8\x0d\x00\x00\x00\x00\x00\x00\xb8\x0d\x01\x00\x00\x00\x00\x00\xb8\x0d\x01\x00\x00\x00\x00\x00\x78\x02\x00\x00\x00\x00\x00\x00\x88\x02\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x02\x00\x00\x00\x06\x00\x00\x00\xc8\x0d\x00\x00\x00\x00\x00\x00\xc8\x0d\x01\x00\x00\x00\x00\x00\xc8\x0d\x01\x00\x00\x00\x00\x00\xe0\x01\x00\x00\x00\x00\x00\x00\xe0\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x04\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x50\xe5\x74\x64\x04\x00\x00\x00\xa8\x07\x00\x00\x00\x00\x00\x00\xa8\x07\x00\x00\x00\x00\x00\x00\xa8\x07\x00\x00\x00\x00\x00\x00\x3c\x00\x00\x00\x00\x00\x00\x00\x3c\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x51\xe5\x74\x64\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x52\xe5\x74\x64\x04\x00\x00\x00\xb8\x0d\x00\x00\x00\x00\x00\x00\xb8\x0d\x01\x00\x00\x00\x00\x00\xb8\x0d\x01\x00\x00\x00\x00\x00\x48\x02\x00\x00\x00\x00\x00\x00\x48\x02\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x2f\x6c\x69\x62\x2f\x6c\x64\x2d\x6c\x69\x6e\x75\x78\x2d\x61\x61\x72\x63\x68\x36\x34\x2e\x73\x6f\x2e\x31\x00\x00\x04\x00\x00\x00\x14\x00\x00\x00\x03\x00\x00\x00\x47\x4e\x55\x00\x1f\xb6\x86\xf1\x6a\xce\x2f\x4a\x74\x7d\xb4\xa3\xff\xa4\x7c\x75\x89\xba\x6c\x33\x04\x00\x00\x00\x10\x00\x00\x00\x01\x00\x00\x00\x47\x4e\x55\x00\x00\x00\x00\x00\x03\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x01\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x0b\x00\xb0\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x17\x00\x20\x10\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x48\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x22\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x22\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x73\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5f\x5f\x63\x78\x61\x5f\x66\x69\x6e\x61\x6c\x69\x7a\x65\x00\x5f\x5f\x6c\x69\x62\x63\x5f\x73\x74\x61\x72\x74\x5f\x6d\x61\x69\x6e\x00\x61\x62\x6f\x72\x74\x00\x6c\x69\x62\x63\x2e\x73\x6f\x2e\x36\x00\x47\x4c\x49\x42\x43\x5f\x32\x2e\x31\x37\x00\x47\x4c\x49\x42\x43\x5f\x32\x2e\x33\x34\x00\x5f\x49\x54\x4d\x5f\x64\x65\x72\x65\x67\x69\x73\x74\x65\x72\x54\x4d\x43\x6c\x6f\x6e\x65\x54\x61\x62\x6c\x65\x00\x5f\x5f\x67\x6d\x6f\x6e\x5f\x73\x74\x61\x72\x74\x5f\x5f\x00\x5f\x49\x54\x4d\x5f\x72\x65\x67\x69\x73\x74\x65\x72\x54\x4d\x43\x6c\x6f\x6e\x65\x54\x61\x62\x6c\x65\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x01\x00\x03\x00\x01\x00\x03\x00\x01\x00\x01\x00\x02\x00\x28\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x97\x91\x96\x06\x00\x00\x03\x00\x32\x00\x00\x00\x10\x00\x00\x00\xb4\x91\x96\x06\x00\x00\x02\x00\x3d\x00\x00\x00\x00\x00\x00\x00\xb8\x0d\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x50\x07\x00\x00\x00\x00\x00\x00\xc0\x0d\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\xc0\x0f\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x34\x10\x01\x00\x00\x00\x00\x00\xc8\x0f\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x38\x10\x01\x00\x00\x00\x00\x00\xd8\x0f\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x54\x07\x00\x00\x00\x00\x00\x00\x28\x10\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x28\x10\x01\x00\x00\x00\x00\x00\xb0\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xb8\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xd0\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe0\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x08\x10\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x10\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x18\x10\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1f\x20\x03\xd5\xfd\x7b\xbf\xa9\xfd\x03\x00\x91\x2e\x00\x00\x94\xfd\x7b\xc1\xa8\xc0\x03\x5f\xd6\x00\x00\x00\x00\x00\x00\x00\x00\xf0\x7b\xbf\xa9\x90\x00\x00\x90\x11\xfe\x47\xf9\x10\xe2\x3f\x91\x20\x02\x1f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x90\x00\x00\xb0\x11\x02\x40\xf9\x10\x02\x00\x91\x20\x02\x1f\xd6\x90\x00\x00\xb0\x11\x06\x40\xf9\x10\x22\x00\x91\x20\x02\x1f\xd6\x90\x00\x00\xb0\x11\x0a\x40\xf9\x10\x42\x00\x91\x20\x02\x1f\xd6\x90\x00\x00\xb0\x11\x0e\x40\xf9\x10\x62\x00\x91\x20\x02\x1f\xd6\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1f\x20\x03\xd5\x1d\x00\x80\xd2\x1e\x00\x80\xd2\xe5\x03\x00\xaa\xe1\x03\x40\xf9\xe2\x23\x00\x91\xe6\x03\x00\x91\x80\x00\x00\x90\x00\xec\x47\xf9\x03\x00\x80\xd2\x04\x00\x80\xd2\xe1\xff\xff\x97\xec\xff\xff\x97\x80\x00\x00\x90\x00\xe8\x47\xf9\x40\x00\x00\xb4\xe4\xff\xff\x17\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x80\x00\x00\xb0\x00\xc0\x00\x91\x81\x00\x00\xb0\x21\xc0\x00\x91\x3f\x00\x00\xeb\xc0\x00\x00\x54\x81\x00\x00\x90\x21\xd8\x47\xf9\x61\x00\x00\xb4\xf0\x03\x01\xaa\x00\x02\x1f\xd6\xc0\x03\x5f\xd6\x80\x00\x00\xb0\x00\xc0\x00\x91\x81\x00\x00\xb0\x21\xc0\x00\x91\x21\x00\x00\xcb\x22\xfc\x7f\xd3\x41\x0c\x81\x8b\x21\xfc\x41\x93\xc1\x00\x00\xb4\x82\x00\x00\x90\x42\xf0\x47\xf9\x62\x00\x00\xb4\xf0\x03\x02\xaa\x00\x02\x1f\xd6\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\xfd\x7b\xbe\xa9\xfd\x03\x00\x91\xf3\x0b\x00\xf9\x93\x00\x00\xb0\x60\xc2\x40\x39\x40\x01\x00\x35\x80\x00\x00\x90\x00\xdc\x47\xf9\x80\x00\x00\xb4\x80\x00\x00\xb0\x00\x14\x40\xf9\xb5\xff\xff\x97\xd8\xff\xff\x97\x20\x00\x80\x52\x60\xc2\x00\x39\xf3\x0b\x40\xf9\xfd\x7b\xc2\xa8\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\xdc\xff\xff\x17\xff\x43\x00\xd1\xe0\x0f\x00\xb9\x88\x00\x00\x90\x08\xe1\x47\xf9\x29\x00\x80\x52\x09\x01\x00\xb9\xea\x0f\x40\xb9\x89\x00\x00\x90\x29\xe5\x47\xf9\x2a\x01\x00\xb9\xe0\x03\x1f\x2a\x3f\x01\x00\xb9\x1f\x01\x00\xb9\xff\x43\x00\x91\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\xfd\x7b\xbf\xa9\xfd\x03\x00\x91\xfd\x7b\xc1\xa8\xc0\x03\x5f\xd6\x01\x00\x02\x00\x01\x1b\x03\x3b\x3c\x00\x00\x00\x06\x00\x00\x00\x98\xfe\xff\xff\x54\x00\x00\x00\xe8\xfe\xff\xff\x68\x00\x00\x00\x18\xff\xff\xff\x7c\x00\x00\x00\x58\xff\xff\xff\x90\x00\x00\x00\xa8\xff\xff\xff\xb4\x00\x00\x00\xac\xff\xff\xff\xdc\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x01\x7a\x52\x00\x04\x78\x1e\x01\x1b\x0c\x1f\x00\x10\x00\x00\x00\x18\x00\x00\x00\x3c\xfe\xff\xff\x34\x00\x00\x00\x00\x41\x07\x1e\x10\x00\x00\x00\x2c\x00\x00\x00\x78\xfe\xff\xff\x30\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x40\x00\x00\x00\x94\xfe\xff\xff\x3c\x00\x00\x00\x00\x00\x00\x00\x20\x00\x00\x00\x54\x00\x00\x00\xc0\xfe\xff\xff\x48\x00\x00\x00\x00\x41\x0e\x20\x9d\x04\x9e\x03\x42\x93\x02\x4e\xde\xdd\xd3\x0e\x00\x00\x00\x00\x10\x00\x00\x00\x78\x00\x00\x00\xec\xfe\xff\xff\x04\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x01\x7a\x52\x00\x01\x7c\x1e\x01\x1b\x0c\x1f\x00\x14\x00\x00\x00"), -Section(".comment", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x40\x06\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x50\x1c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x38\x00\x09\x00\x40\x00\x1d\x00\x1c\x00\x06\x00\x00\x00\x04\x00\x00"), -Section(".interp", 0x238, "\x2f\x6c\x69\x62\x2f\x6c\x64\x2d\x6c\x69\x6e\x75\x78\x2d\x61\x61\x72\x63\x68\x36\x34\x2e\x73\x6f\x2e\x31\x00"), -Section(".note.gnu.build-id", 0x254, "\x04\x00\x00\x00\x14\x00\x00\x00\x03\x00\x00\x00\x47\x4e\x55\x00\x1f\xb6\x86\xf1\x6a\xce\x2f\x4a\x74\x7d\xb4\xa3\xff\xa4\x7c\x75\x89\xba\x6c\x33"), -Section(".note.ABI-tag", 0x278, "\x04\x00\x00\x00\x10\x00\x00\x00\x01\x00\x00\x00\x47\x4e\x55\x00\x00\x00\x00\x00\x03\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00"), -Section(".gnu.hash", 0x298, "\x01\x00\x00\x00\x01\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".dynsym", 0x2B8, "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x0b\x00\xb0\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x17\x00\x20\x10\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x48\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x22\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x22\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x73\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".dynstr", 0x390, "\x00\x5f\x5f\x63\x78\x61\x5f\x66\x69\x6e\x61\x6c\x69\x7a\x65\x00\x5f\x5f\x6c\x69\x62\x63\x5f\x73\x74\x61\x72\x74\x5f\x6d\x61\x69\x6e\x00\x61\x62\x6f\x72\x74\x00\x6c\x69\x62\x63\x2e\x73\x6f\x2e\x36\x00\x47\x4c\x49\x42\x43\x5f\x32\x2e\x31\x37\x00\x47\x4c\x49\x42\x43\x5f\x32\x2e\x33\x34\x00\x5f\x49\x54\x4d\x5f\x64\x65\x72\x65\x67\x69\x73\x74\x65\x72\x54\x4d\x43\x6c\x6f\x6e\x65\x54\x61\x62\x6c\x65\x00\x5f\x5f\x67\x6d\x6f\x6e\x5f\x73\x74\x61\x72\x74\x5f\x5f\x00\x5f\x49\x54\x4d\x5f\x72\x65\x67\x69\x73\x74\x65\x72\x54\x4d\x43\x6c\x6f\x6e\x65\x54\x61\x62\x6c\x65\x00"), -Section(".gnu.version", 0x41E, "\x00\x00\x00\x00\x00\x00\x02\x00\x01\x00\x03\x00\x01\x00\x03\x00\x01\x00"), -Section(".gnu.version_r", 0x430, "\x01\x00\x02\x00\x28\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x97\x91\x96\x06\x00\x00\x03\x00\x32\x00\x00\x00\x10\x00\x00\x00\xb4\x91\x96\x06\x00\x00\x02\x00\x3d\x00\x00\x00\x00\x00\x00\x00"), -Section(".rela.dyn", 0x460, "\xb8\x0d\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x50\x07\x00\x00\x00\x00\x00\x00\xc0\x0d\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\xc0\x0f\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x34\x10\x01\x00\x00\x00\x00\x00\xc8\x0f\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x38\x10\x01\x00\x00\x00\x00\x00\xd8\x0f\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x54\x07\x00\x00\x00\x00\x00\x00\x28\x10\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x28\x10\x01\x00\x00\x00\x00\x00\xb0\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xb8\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xd0\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe0\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".rela.plt", 0x550, "\x00\x10\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x08\x10\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x10\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x18\x10\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".init", 0x5B0, "\x1f\x20\x03\xd5\xfd\x7b\xbf\xa9\xfd\x03\x00\x91\x2e\x00\x00\x94\xfd\x7b\xc1\xa8\xc0\x03\x5f\xd6"), -Section(".plt", 0x5D0, "\xf0\x7b\xbf\xa9\x90\x00\x00\x90\x11\xfe\x47\xf9\x10\xe2\x3f\x91\x20\x02\x1f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x90\x00\x00\xb0\x11\x02\x40\xf9\x10\x02\x00\x91\x20\x02\x1f\xd6\x90\x00\x00\xb0\x11\x06\x40\xf9\x10\x22\x00\x91\x20\x02\x1f\xd6\x90\x00\x00\xb0\x11\x0a\x40\xf9\x10\x42\x00\x91\x20\x02\x1f\xd6\x90\x00\x00\xb0\x11\x0e\x40\xf9\x10\x62\x00\x91\x20\x02\x1f\xd6"), -Section(".fini", 0x790, "\x1f\x20\x03\xd5\xfd\x7b\xbf\xa9\xfd\x03\x00\x91\xfd\x7b\xc1\xa8\xc0\x03\x5f\xd6"), -Section(".rodata", 0x7A4, "\x01\x00\x02\x00"), -Section(".eh_frame_hdr", 0x7A8, "\x01\x1b\x03\x3b\x3c\x00\x00\x00\x06\x00\x00\x00\x98\xfe\xff\xff\x54\x00\x00\x00\xe8\xfe\xff\xff\x68\x00\x00\x00\x18\xff\xff\xff\x7c\x00\x00\x00\x58\xff\xff\xff\x90\x00\x00\x00\xa8\xff\xff\xff\xb4\x00\x00\x00\xac\xff\xff\xff\xdc\x00\x00\x00"), -Section(".eh_frame", 0x7E8, "\x10\x00\x00\x00\x00\x00\x00\x00\x01\x7a\x52\x00\x04\x78\x1e\x01\x1b\x0c\x1f\x00\x10\x00\x00\x00\x18\x00\x00\x00\x3c\xfe\xff\xff\x34\x00\x00\x00\x00\x41\x07\x1e\x10\x00\x00\x00\x2c\x00\x00\x00\x78\xfe\xff\xff\x30\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x40\x00\x00\x00\x94\xfe\xff\xff\x3c\x00\x00\x00\x00\x00\x00\x00\x20\x00\x00\x00\x54\x00\x00\x00\xc0\xfe\xff\xff\x48\x00\x00\x00\x00\x41\x0e\x20\x9d\x04\x9e\x03\x42\x93\x02\x4e\xde\xdd\xd3\x0e\x00\x00\x00\x00\x10\x00\x00\x00\x78\x00\x00\x00\xec\xfe\xff\xff\x04\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x01\x7a\x52\x00\x01\x7c\x1e\x01\x1b\x0c\x1f\x00\x14\x00\x00\x00\x18\x00\x00\x00\xc8\xfe\xff\xff\x3c\x00\x00\x00\x00\x44\x0e\x10\x74\x0e\x00\x00\x00\x00\x00\x00"), -Section(".fini_array", 0x10DC0, "\x00\x07\x00\x00\x00\x00\x00\x00"), -Section(".dynamic", 0x10DC8, "\x01\x00\x00\x00\x00\x00\x00\x00\x28\x00\x00\x00\x00\x00\x00\x00\x0c\x00\x00\x00\x00\x00\x00\x00\xb0\x05\x00\x00\x00\x00\x00\x00\x0d\x00\x00\x00\x00\x00\x00\x00\x90\x07\x00\x00\x00\x00\x00\x00\x19\x00\x00\x00\x00\x00\x00\x00\xb8\x0d\x01\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x1a\x00\x00\x00\x00\x00\x00\x00\xc0\x0d\x01\x00\x00\x00\x00\x00\x1c\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\xf5\xfe\xff\x6f\x00\x00\x00\x00\x98\x02\x00\x00\x00\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x90\x03\x00\x00\x00\x00\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\xb8\x02\x00\x00\x00\x00\x00\x00\x0a\x00\x00\x00\x00\x00\x00\x00\x8d\x00\x00\x00\x00\x00\x00\x00\x0b\x00\x00\x00\x00\x00\x00\x00\x18\x00\x00\x00\x00\x00\x00\x00\x15\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\xe8\x0f\x01\x00\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x60\x00\x00\x00\x00\x00\x00\x00\x14\x00\x00\x00\x00\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x17\x00\x00\x00\x00\x00\x00\x00\x50\x05\x00\x00\x00\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x60\x04\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\xf0\x00\x00\x00\x00\x00\x00\x00\x09\x00\x00\x00\x00\x00\x00\x00\x18\x00\x00\x00\x00\x00\x00\x00\xfb\xff\xff\x6f\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\xfe\xff\xff\x6f\x00\x00\x00\x00\x30\x04\x00\x00\x00\x00\x00\x00\xff\xff\xff\x6f\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\xf0\xff\xff\x6f\x00\x00\x00\x00\x1e\x04\x00\x00\x00\x00\x00\x00\xf9\xff\xff\x6f\x00\x00\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".init_array", 0x10DB8, "\x50\x07\x00\x00\x00\x00\x00\x00"), -Section(".got", 0x10FA8, "\xc8\x0d\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x34\x10\x01\x00\x00\x00\x00\x00\x38\x10\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x54\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".got.plt", 0x10FE8, "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xd0\x05\x00\x00\x00\x00\x00\x00\xd0\x05\x00\x00\x00\x00\x00\x00\xd0\x05\x00\x00\x00\x00\x00\x00\xd0\x05\x00\x00\x00\x00\x00\x00"), -Section(".data", 0x11020, "\x00\x00\x00\x00\x00\x00\x00\x00\x28\x10\x01\x00\x00\x00\x00\x00"), -Section(".text", 0x640, "\x1f\x20\x03\xd5\x1d\x00\x80\xd2\x1e\x00\x80\xd2\xe5\x03\x00\xaa\xe1\x03\x40\xf9\xe2\x23\x00\x91\xe6\x03\x00\x91\x80\x00\x00\x90\x00\xec\x47\xf9\x03\x00\x80\xd2\x04\x00\x80\xd2\xe1\xff\xff\x97\xec\xff\xff\x97\x80\x00\x00\x90\x00\xe8\x47\xf9\x40\x00\x00\xb4\xe4\xff\xff\x17\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x80\x00\x00\xb0\x00\xc0\x00\x91\x81\x00\x00\xb0\x21\xc0\x00\x91\x3f\x00\x00\xeb\xc0\x00\x00\x54\x81\x00\x00\x90\x21\xd8\x47\xf9\x61\x00\x00\xb4\xf0\x03\x01\xaa\x00\x02\x1f\xd6\xc0\x03\x5f\xd6\x80\x00\x00\xb0\x00\xc0\x00\x91\x81\x00\x00\xb0\x21\xc0\x00\x91\x21\x00\x00\xcb\x22\xfc\x7f\xd3\x41\x0c\x81\x8b\x21\xfc\x41\x93\xc1\x00\x00\xb4\x82\x00\x00\x90\x42\xf0\x47\xf9\x62\x00\x00\xb4\xf0\x03\x02\xaa\x00\x02\x1f\xd6\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\xfd\x7b\xbe\xa9\xfd\x03\x00\x91\xf3\x0b\x00\xf9\x93\x00\x00\xb0\x60\xc2\x40\x39\x40\x01\x00\x35\x80\x00\x00\x90\x00\xdc\x47\xf9\x80\x00\x00\xb4\x80\x00\x00\xb0\x00\x14\x40\xf9\xb5\xff\xff\x97\xd8\xff\xff\x97\x20\x00\x80\x52\x60\xc2\x00\x39\xf3\x0b\x40\xf9\xfd\x7b\xc2\xa8\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\xdc\xff\xff\x17\xff\x43\x00\xd1\xe0\x0f\x00\xb9\x88\x00\x00\x90\x08\xe1\x47\xf9\x29\x00\x80\x52\x09\x01\x00\xb9\xea\x0f\x40\xb9\x89\x00\x00\x90\x29\xe5\x47\xf9\x2a\x01\x00\xb9\xe0\x03\x1f\x2a\x3f\x01\x00\xb9\x1f\x01\x00\xb9\xff\x43\x00\x91\xc0\x03\x5f\xd6")]), -Memmap([Annotation(Region(0x0,0x89F), Attr("segment","02 0 2208")), -Annotation(Region(0x640,0x673), Attr("symbol","\"_start\"")), -Annotation(Region(0x0,0x102), Attr("section","\".shstrtab\"")), -Annotation(Region(0x0,0x246), Attr("section","\".strtab\"")), -Annotation(Region(0x0,0x887), Attr("section","\".symtab\"")), -Annotation(Region(0x0,0x46), Attr("section","\".comment\"")), -Annotation(Region(0x238,0x252), Attr("section","\".interp\"")), -Annotation(Region(0x254,0x277), Attr("section","\".note.gnu.build-id\"")), -Annotation(Region(0x278,0x297), Attr("section","\".note.ABI-tag\"")), -Annotation(Region(0x298,0x2B3), Attr("section","\".gnu.hash\"")), -Annotation(Region(0x2B8,0x38F), Attr("section","\".dynsym\"")), -Annotation(Region(0x390,0x41C), Attr("section","\".dynstr\"")), -Annotation(Region(0x41E,0x42F), Attr("section","\".gnu.version\"")), -Annotation(Region(0x430,0x45F), Attr("section","\".gnu.version_r\"")), -Annotation(Region(0x460,0x54F), Attr("section","\".rela.dyn\"")), -Annotation(Region(0x550,0x5AF), Attr("section","\".rela.plt\"")), -Annotation(Region(0x5B0,0x5C7), Attr("section","\".init\"")), -Annotation(Region(0x5D0,0x62F), Attr("section","\".plt\"")), -Annotation(Region(0x5B0,0x5C7), Attr("code-region","()")), -Annotation(Region(0x5D0,0x62F), Attr("code-region","()")), -Annotation(Region(0x640,0x673), Attr("symbol-info","_start 0x640 52")), -Annotation(Region(0x674,0x687), Attr("symbol","\"call_weak_fn\"")), -Annotation(Region(0x674,0x687), Attr("symbol-info","call_weak_fn 0x674 20")), -Annotation(Region(0x754,0x78F), Attr("symbol","\"main\"")), -Annotation(Region(0x754,0x78F), Attr("symbol-info","main 0x754 60")), -Annotation(Region(0x790,0x7A3), Attr("section","\".fini\"")), -Annotation(Region(0x7A4,0x7A7), Attr("section","\".rodata\"")), -Annotation(Region(0x7A8,0x7E3), Attr("section","\".eh_frame_hdr\"")), -Annotation(Region(0x7E8,0x89F), Attr("section","\".eh_frame\"")), -Annotation(Region(0x10DB8,0x1102F), Attr("segment","03 0x10DB8 648")), -Annotation(Region(0x10DC0,0x10DC7), Attr("section","\".fini_array\"")), -Annotation(Region(0x10DC8,0x10FA7), Attr("section","\".dynamic\"")), -Annotation(Region(0x10DB8,0x10DBF), Attr("section","\".init_array\"")), -Annotation(Region(0x10FA8,0x10FE7), Attr("section","\".got\"")), -Annotation(Region(0x10FE8,0x1101F), Attr("section","\".got.plt\"")), -Annotation(Region(0x11020,0x1102F), Attr("section","\".data\"")), -Annotation(Region(0x640,0x78F), Attr("section","\".text\"")), -Annotation(Region(0x640,0x78F), Attr("code-region","()")), -Annotation(Region(0x790,0x7A3), Attr("code-region","()"))]), -Program(Tid(1_429, "%00000595"), Attrs([]), - Subs([Sub(Tid(1_379, "@__cxa_finalize"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x600"), -Attr("stub","()")]), "__cxa_finalize", Args([Arg(Tid(1_430, "%00000596"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("__cxa_finalize_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(893, "@__cxa_finalize"), - Attrs([Attr("address","0x600")]), Phis([]), -Defs([Def(Tid(1_141, "%00000475"), Attrs([Attr("address","0x600"), -Attr("insn","adrp x16, #69632")]), Var("R16",Imm(64)), Int(69632,64)), -Def(Tid(1_148, "%0000047c"), Attrs([Attr("address","0x604"), -Attr("insn","ldr x17, [x16, #0x8]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(1_154, "%00000482"), Attrs([Attr("address","0x608"), -Attr("insn","add x16, x16, #0x8")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(8,64)))]), Jmps([Call(Tid(1_159, "%00000487"), - Attrs([Attr("address","0x60C"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), -Sub(Tid(1_380, "@__do_global_dtors_aux"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x700")]), - "__do_global_dtors_aux", Args([Arg(Tid(1_431, "%00000597"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("__do_global_dtors_aux_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(650, "@__do_global_dtors_aux"), - Attrs([Attr("address","0x700")]), Phis([]), Defs([Def(Tid(654, "%0000028e"), - Attrs([Attr("address","0x700"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("#3",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(18446744073709551584,64))), -Def(Tid(660, "%00000294"), Attrs([Attr("address","0x700"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("#3",Imm(64)),Var("R29",Imm(64)),LittleEndian(),64)), -Def(Tid(666, "%0000029a"), Attrs([Attr("address","0x700"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("#3",Imm(64)),Int(8,64)),Var("R30",Imm(64)),LittleEndian(),64)), -Def(Tid(670, "%0000029e"), Attrs([Attr("address","0x700"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("R31",Imm(64)), -Var("#3",Imm(64))), Def(Tid(676, "%000002a4"), - Attrs([Attr("address","0x704"), Attr("insn","mov x29, sp")]), - Var("R29",Imm(64)), Var("R31",Imm(64))), Def(Tid(684, "%000002ac"), - Attrs([Attr("address","0x708"), Attr("insn","str x19, [sp, #0x10]")]), - Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(16,64)),Var("R19",Imm(64)),LittleEndian(),64)), -Def(Tid(689, "%000002b1"), Attrs([Attr("address","0x70C"), -Attr("insn","adrp x19, #69632")]), Var("R19",Imm(64)), Int(69632,64)), -Def(Tid(696, "%000002b8"), Attrs([Attr("address","0x710"), -Attr("insn","ldrb w0, [x19, #0x30]")]), Var("R0",Imm(64)), -UNSIGNED(64,Load(Var("mem",Mem(64,8)),PLUS(Var("R19",Imm(64)),Int(48,64)),LittleEndian(),8)))]), -Jmps([Goto(Tid(703, "%000002bf"), Attrs([Attr("address","0x714"), -Attr("insn","cbnz w0, #0x28")]), - NEQ(Extract(31,0,Var("R0",Imm(64))),Int(0,32)), -Direct(Tid(701, "%000002bd"))), Goto(Tid(1_419, "%0000058b"), Attrs([]), - Int(1,1), Direct(Tid(838, "%00000346")))])), Blk(Tid(838, "%00000346"), - Attrs([Attr("address","0x718")]), Phis([]), Defs([Def(Tid(841, "%00000349"), - Attrs([Attr("address","0x718"), Attr("insn","adrp x0, #65536")]), - Var("R0",Imm(64)), Int(65536,64)), Def(Tid(848, "%00000350"), - Attrs([Attr("address","0x71C"), Attr("insn","ldr x0, [x0, #0xfb8]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(4024,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(854, "%00000356"), Attrs([Attr("address","0x720"), -Attr("insn","cbz x0, #0x10")]), EQ(Var("R0",Imm(64)),Int(0,64)), -Direct(Tid(852, "%00000354"))), Goto(Tid(1_420, "%0000058c"), Attrs([]), - Int(1,1), Direct(Tid(877, "%0000036d")))])), Blk(Tid(877, "%0000036d"), - Attrs([Attr("address","0x724")]), Phis([]), Defs([Def(Tid(880, "%00000370"), - Attrs([Attr("address","0x724"), Attr("insn","adrp x0, #69632")]), - Var("R0",Imm(64)), Int(69632,64)), Def(Tid(887, "%00000377"), - Attrs([Attr("address","0x728"), Attr("insn","ldr x0, [x0, #0x28]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(40,64)),LittleEndian(),64)), -Def(Tid(892, "%0000037c"), Attrs([Attr("address","0x72C"), -Attr("insn","bl #-0x12c")]), Var("R30",Imm(64)), Int(1840,64))]), -Jmps([Call(Tid(895, "%0000037f"), Attrs([Attr("address","0x72C"), -Attr("insn","bl #-0x12c")]), Int(1,1), -(Direct(Tid(1_379, "@__cxa_finalize")),Direct(Tid(852, "%00000354"))))])), -Blk(Tid(852, "%00000354"), Attrs([Attr("address","0x730")]), Phis([]), -Defs([Def(Tid(860, "%0000035c"), Attrs([Attr("address","0x730"), -Attr("insn","bl #-0xa0")]), Var("R30",Imm(64)), Int(1844,64))]), -Jmps([Call(Tid(862, "%0000035e"), Attrs([Attr("address","0x730"), -Attr("insn","bl #-0xa0")]), Int(1,1), -(Direct(Tid(1_393, "@deregister_tm_clones")),Direct(Tid(864, "%00000360"))))])), -Blk(Tid(864, "%00000360"), Attrs([Attr("address","0x734")]), Phis([]), -Defs([Def(Tid(867, "%00000363"), Attrs([Attr("address","0x734"), -Attr("insn","mov w0, #0x1")]), Var("R0",Imm(64)), Int(1,64)), -Def(Tid(875, "%0000036b"), Attrs([Attr("address","0x738"), -Attr("insn","strb w0, [x19, #0x30]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R19",Imm(64)),Int(48,64)),Extract(7,0,Var("R0",Imm(64))),LittleEndian(),8))]), -Jmps([Goto(Tid(1_421, "%0000058d"), Attrs([]), Int(1,1), -Direct(Tid(701, "%000002bd")))])), Blk(Tid(701, "%000002bd"), - Attrs([Attr("address","0x73C")]), Phis([]), Defs([Def(Tid(711, "%000002c7"), - Attrs([Attr("address","0x73C"), Attr("insn","ldr x19, [sp, #0x10]")]), - Var("R19",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(16,64)),LittleEndian(),64)), -Def(Tid(718, "%000002ce"), Attrs([Attr("address","0x740"), -Attr("insn","ldp x29, x30, [sp], #0x20")]), Var("R29",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(723, "%000002d3"), Attrs([Attr("address","0x740"), -Attr("insn","ldp x29, x30, [sp], #0x20")]), Var("R30",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(727, "%000002d7"), Attrs([Attr("address","0x740"), -Attr("insn","ldp x29, x30, [sp], #0x20")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(32,64)))]), Jmps([Call(Tid(732, "%000002dc"), - Attrs([Attr("address","0x744"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), Sub(Tid(1_384, "@__libc_start_main"), - Attrs([Attr("c.proto","signed (*)(signed (*)(signed , char** , char** );* main, signed , char** , \nvoid* auxv)"), -Attr("address","0x5F0"), Attr("stub","()")]), "__libc_start_main", - Args([Arg(Tid(1_432, "%00000598"), - Attrs([Attr("c.layout","**[ : 64]"), -Attr("c.data","Top:u64 ptr ptr"), -Attr("c.type","signed (*)(signed , char** , char** );*")]), - Var("__libc_start_main_main",Imm(64)), Var("R0",Imm(64)), In()), -Arg(Tid(1_433, "%00000599"), Attrs([Attr("c.layout","[signed : 32]"), -Attr("c.data","Top:u32"), Attr("c.type","signed")]), - Var("__libc_start_main_arg2",Imm(32)), LOW(32,Var("R1",Imm(64))), In()), -Arg(Tid(1_434, "%0000059a"), Attrs([Attr("c.layout","**[char : 8]"), -Attr("c.data","Top:u8 ptr ptr"), Attr("c.type","char**")]), - Var("__libc_start_main_arg3",Imm(64)), Var("R2",Imm(64)), Both()), -Arg(Tid(1_435, "%0000059b"), Attrs([Attr("c.layout","*[ : 8]"), -Attr("c.data","{} ptr"), Attr("c.type","void*")]), - Var("__libc_start_main_auxv",Imm(64)), Var("R3",Imm(64)), Both()), -Arg(Tid(1_436, "%0000059c"), Attrs([Attr("c.layout","[signed : 32]"), -Attr("c.data","Top:u32"), Attr("c.type","signed")]), - Var("__libc_start_main_result",Imm(32)), LOW(32,Var("R0",Imm(64))), -Out())]), Blks([Blk(Tid(483, "@__libc_start_main"), - Attrs([Attr("address","0x5F0")]), Phis([]), -Defs([Def(Tid(1_119, "%0000045f"), Attrs([Attr("address","0x5F0"), -Attr("insn","adrp x16, #69632")]), Var("R16",Imm(64)), Int(69632,64)), -Def(Tid(1_126, "%00000466"), Attrs([Attr("address","0x5F4"), -Attr("insn","ldr x17, [x16]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R16",Imm(64)),LittleEndian(),64)), -Def(Tid(1_132, "%0000046c"), Attrs([Attr("address","0x5F8"), -Attr("insn","add x16, x16, #0x0")]), Var("R16",Imm(64)), -Var("R16",Imm(64)))]), Jmps([Call(Tid(1_137, "%00000471"), - Attrs([Attr("address","0x5FC"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), Sub(Tid(1_385, "@_fini"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x790")]), - "_fini", Args([Arg(Tid(1_437, "%0000059d"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("_fini_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(31, "@_fini"), - Attrs([Attr("address","0x790")]), Phis([]), Defs([Def(Tid(37, "%00000025"), - Attrs([Attr("address","0x794"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("#0",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(18446744073709551600,64))), -Def(Tid(43, "%0000002b"), Attrs([Attr("address","0x794"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("#0",Imm(64)),Var("R29",Imm(64)),LittleEndian(),64)), -Def(Tid(49, "%00000031"), Attrs([Attr("address","0x794"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("#0",Imm(64)),Int(8,64)),Var("R30",Imm(64)),LittleEndian(),64)), -Def(Tid(53, "%00000035"), Attrs([Attr("address","0x794"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("R31",Imm(64)), -Var("#0",Imm(64))), Def(Tid(59, "%0000003b"), Attrs([Attr("address","0x798"), -Attr("insn","mov x29, sp")]), Var("R29",Imm(64)), Var("R31",Imm(64))), -Def(Tid(66, "%00000042"), Attrs([Attr("address","0x79C"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R29",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(71, "%00000047"), Attrs([Attr("address","0x79C"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R30",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(75, "%0000004b"), Attrs([Attr("address","0x79C"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(16,64)))]), Jmps([Call(Tid(80, "%00000050"), - Attrs([Attr("address","0x7A0"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), Sub(Tid(1_386, "@_init"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x5B0")]), - "_init", Args([Arg(Tid(1_438, "%0000059e"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("_init_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(1_231, "@_init"), - Attrs([Attr("address","0x5B0")]), Phis([]), -Defs([Def(Tid(1_237, "%000004d5"), Attrs([Attr("address","0x5B4"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("#5",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(18446744073709551600,64))), -Def(Tid(1_243, "%000004db"), Attrs([Attr("address","0x5B4"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("#5",Imm(64)),Var("R29",Imm(64)),LittleEndian(),64)), -Def(Tid(1_249, "%000004e1"), Attrs([Attr("address","0x5B4"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("#5",Imm(64)),Int(8,64)),Var("R30",Imm(64)),LittleEndian(),64)), -Def(Tid(1_253, "%000004e5"), Attrs([Attr("address","0x5B4"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("R31",Imm(64)), -Var("#5",Imm(64))), Def(Tid(1_259, "%000004eb"), - Attrs([Attr("address","0x5B8"), Attr("insn","mov x29, sp")]), - Var("R29",Imm(64)), Var("R31",Imm(64))), Def(Tid(1_264, "%000004f0"), - Attrs([Attr("address","0x5BC"), Attr("insn","bl #0xb8")]), - Var("R30",Imm(64)), Int(1472,64))]), Jmps([Call(Tid(1_266, "%000004f2"), - Attrs([Attr("address","0x5BC"), Attr("insn","bl #0xb8")]), Int(1,1), -(Direct(Tid(1_391, "@call_weak_fn")),Direct(Tid(1_268, "%000004f4"))))])), -Blk(Tid(1_268, "%000004f4"), Attrs([Attr("address","0x5C0")]), Phis([]), -Defs([Def(Tid(1_273, "%000004f9"), Attrs([Attr("address","0x5C0"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R29",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(1_278, "%000004fe"), Attrs([Attr("address","0x5C0"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R30",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(1_282, "%00000502"), Attrs([Attr("address","0x5C0"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(16,64)))]), Jmps([Call(Tid(1_287, "%00000507"), - Attrs([Attr("address","0x5C4"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), Sub(Tid(1_387, "@_start"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x640"), -Attr("entry-point","()")]), "_start", Args([Arg(Tid(1_439, "%0000059f"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("_start_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(420, "@_start"), - Attrs([Attr("address","0x640")]), Phis([]), Defs([Def(Tid(425, "%000001a9"), - Attrs([Attr("address","0x644"), Attr("insn","mov x29, #0x0")]), - Var("R29",Imm(64)), Int(0,64)), Def(Tid(430, "%000001ae"), - Attrs([Attr("address","0x648"), Attr("insn","mov x30, #0x0")]), - Var("R30",Imm(64)), Int(0,64)), Def(Tid(436, "%000001b4"), - Attrs([Attr("address","0x64C"), Attr("insn","mov x5, x0")]), - Var("R5",Imm(64)), Var("R0",Imm(64))), Def(Tid(443, "%000001bb"), - Attrs([Attr("address","0x650"), Attr("insn","ldr x1, [sp]")]), - Var("R1",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(449, "%000001c1"), Attrs([Attr("address","0x654"), -Attr("insn","add x2, sp, #0x8")]), Var("R2",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(8,64))), Def(Tid(455, "%000001c7"), - Attrs([Attr("address","0x658"), Attr("insn","mov x6, sp")]), - Var("R6",Imm(64)), Var("R31",Imm(64))), Def(Tid(460, "%000001cc"), - Attrs([Attr("address","0x65C"), Attr("insn","adrp x0, #65536")]), - Var("R0",Imm(64)), Int(65536,64)), Def(Tid(467, "%000001d3"), - Attrs([Attr("address","0x660"), Attr("insn","ldr x0, [x0, #0xfd8]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(4056,64)),LittleEndian(),64)), -Def(Tid(472, "%000001d8"), Attrs([Attr("address","0x664"), -Attr("insn","mov x3, #0x0")]), Var("R3",Imm(64)), Int(0,64)), -Def(Tid(477, "%000001dd"), Attrs([Attr("address","0x668"), -Attr("insn","mov x4, #0x0")]), Var("R4",Imm(64)), Int(0,64)), -Def(Tid(482, "%000001e2"), Attrs([Attr("address","0x66C"), -Attr("insn","bl #-0x7c")]), Var("R30",Imm(64)), Int(1648,64))]), -Jmps([Call(Tid(485, "%000001e5"), Attrs([Attr("address","0x66C"), -Attr("insn","bl #-0x7c")]), Int(1,1), -(Direct(Tid(1_384, "@__libc_start_main")),Direct(Tid(487, "%000001e7"))))])), -Blk(Tid(487, "%000001e7"), Attrs([Attr("address","0x670")]), Phis([]), -Defs([Def(Tid(490, "%000001ea"), Attrs([Attr("address","0x670"), -Attr("insn","bl #-0x50")]), Var("R30",Imm(64)), Int(1652,64))]), -Jmps([Call(Tid(493, "%000001ed"), Attrs([Attr("address","0x670"), -Attr("insn","bl #-0x50")]), Int(1,1), -(Direct(Tid(1_390, "@abort")),Direct(Tid(1_422, "%0000058e"))))])), -Blk(Tid(1_422, "%0000058e"), Attrs([]), Phis([]), Defs([]), -Jmps([Call(Tid(1_423, "%0000058f"), Attrs([]), Int(1,1), -(Direct(Tid(1_391, "@call_weak_fn")),))]))])), Sub(Tid(1_390, "@abort"), - Attrs([Attr("noreturn","()"), Attr("c.proto","void (*)(void)"), -Attr("address","0x620"), Attr("stub","()")]), "abort", Args([]), -Blks([Blk(Tid(491, "@abort"), Attrs([Attr("address","0x620")]), Phis([]), -Defs([Def(Tid(1_185, "%000004a1"), Attrs([Attr("address","0x620"), -Attr("insn","adrp x16, #69632")]), Var("R16",Imm(64)), Int(69632,64)), -Def(Tid(1_192, "%000004a8"), Attrs([Attr("address","0x624"), -Attr("insn","ldr x17, [x16, #0x18]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(24,64)),LittleEndian(),64)), -Def(Tid(1_198, "%000004ae"), Attrs([Attr("address","0x628"), -Attr("insn","add x16, x16, #0x18")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(24,64)))]), Jmps([Call(Tid(1_203, "%000004b3"), - Attrs([Attr("address","0x62C"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), Sub(Tid(1_391, "@call_weak_fn"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x674")]), - "call_weak_fn", Args([Arg(Tid(1_440, "%000005a0"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("call_weak_fn_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(495, "@call_weak_fn"), - Attrs([Attr("address","0x674")]), Phis([]), Defs([Def(Tid(498, "%000001f2"), - Attrs([Attr("address","0x674"), Attr("insn","adrp x0, #65536")]), - Var("R0",Imm(64)), Int(65536,64)), Def(Tid(505, "%000001f9"), - Attrs([Attr("address","0x678"), Attr("insn","ldr x0, [x0, #0xfd0]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(4048,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(511, "%000001ff"), Attrs([Attr("address","0x67C"), -Attr("insn","cbz x0, #0x8")]), EQ(Var("R0",Imm(64)),Int(0,64)), -Direct(Tid(509, "%000001fd"))), Goto(Tid(1_424, "%00000590"), Attrs([]), - Int(1,1), Direct(Tid(957, "%000003bd")))])), Blk(Tid(509, "%000001fd"), - Attrs([Attr("address","0x684")]), Phis([]), Defs([]), -Jmps([Call(Tid(517, "%00000205"), Attrs([Attr("address","0x684"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))])), -Blk(Tid(957, "%000003bd"), Attrs([Attr("address","0x680")]), Phis([]), -Defs([]), Jmps([Goto(Tid(960, "%000003c0"), Attrs([Attr("address","0x680"), -Attr("insn","b #-0x70")]), Int(1,1), Direct(Tid(958, "@__gmon_start__")))])), -Blk(Tid(958, "@__gmon_start__"), Attrs([Attr("address","0x610")]), Phis([]), -Defs([Def(Tid(1_163, "%0000048b"), Attrs([Attr("address","0x610"), -Attr("insn","adrp x16, #69632")]), Var("R16",Imm(64)), Int(69632,64)), -Def(Tid(1_170, "%00000492"), Attrs([Attr("address","0x614"), -Attr("insn","ldr x17, [x16, #0x10]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(16,64)),LittleEndian(),64)), -Def(Tid(1_176, "%00000498"), Attrs([Attr("address","0x618"), -Attr("insn","add x16, x16, #0x10")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(16,64)))]), Jmps([Call(Tid(1_181, "%0000049d"), - Attrs([Attr("address","0x61C"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), -Sub(Tid(1_393, "@deregister_tm_clones"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x690")]), - "deregister_tm_clones", Args([Arg(Tid(1_441, "%000005a1"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("deregister_tm_clones_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(523, "@deregister_tm_clones"), - Attrs([Attr("address","0x690")]), Phis([]), Defs([Def(Tid(526, "%0000020e"), - Attrs([Attr("address","0x690"), Attr("insn","adrp x0, #69632")]), - Var("R0",Imm(64)), Int(69632,64)), Def(Tid(532, "%00000214"), - Attrs([Attr("address","0x694"), Attr("insn","add x0, x0, #0x30")]), - Var("R0",Imm(64)), PLUS(Var("R0",Imm(64)),Int(48,64))), -Def(Tid(537, "%00000219"), Attrs([Attr("address","0x698"), -Attr("insn","adrp x1, #69632")]), Var("R1",Imm(64)), Int(69632,64)), -Def(Tid(543, "%0000021f"), Attrs([Attr("address","0x69C"), -Attr("insn","add x1, x1, #0x30")]), Var("R1",Imm(64)), -PLUS(Var("R1",Imm(64)),Int(48,64))), Def(Tid(549, "%00000225"), - Attrs([Attr("address","0x6A0"), Attr("insn","cmp x1, x0")]), - Var("#1",Imm(64)), NOT(Var("R0",Imm(64)))), Def(Tid(554, "%0000022a"), - Attrs([Attr("address","0x6A0"), Attr("insn","cmp x1, x0")]), - Var("#2",Imm(64)), PLUS(Var("R1",Imm(64)),NOT(Var("R0",Imm(64))))), -Def(Tid(560, "%00000230"), Attrs([Attr("address","0x6A0"), -Attr("insn","cmp x1, x0")]), Var("VF",Imm(1)), -NEQ(SIGNED(65,PLUS(Var("#2",Imm(64)),Int(1,64))),PLUS(PLUS(SIGNED(65,Var("R1",Imm(64))),SIGNED(65,Var("#1",Imm(64)))),Int(1,65)))), -Def(Tid(566, "%00000236"), Attrs([Attr("address","0x6A0"), -Attr("insn","cmp x1, x0")]), Var("CF",Imm(1)), -NEQ(UNSIGNED(65,PLUS(Var("#2",Imm(64)),Int(1,64))),PLUS(PLUS(UNSIGNED(65,Var("R1",Imm(64))),UNSIGNED(65,Var("#1",Imm(64)))),Int(1,65)))), -Def(Tid(570, "%0000023a"), Attrs([Attr("address","0x6A0"), -Attr("insn","cmp x1, x0")]), Var("ZF",Imm(1)), -EQ(PLUS(Var("#2",Imm(64)),Int(1,64)),Int(0,64))), Def(Tid(574, "%0000023e"), - Attrs([Attr("address","0x6A0"), Attr("insn","cmp x1, x0")]), - Var("NF",Imm(1)), Extract(63,63,PLUS(Var("#2",Imm(64)),Int(1,64))))]), -Jmps([Goto(Tid(580, "%00000244"), Attrs([Attr("address","0x6A4"), -Attr("insn","b.eq #0x18")]), EQ(Var("ZF",Imm(1)),Int(1,1)), -Direct(Tid(578, "%00000242"))), Goto(Tid(1_425, "%00000591"), Attrs([]), - Int(1,1), Direct(Tid(927, "%0000039f")))])), Blk(Tid(927, "%0000039f"), - Attrs([Attr("address","0x6A8")]), Phis([]), Defs([Def(Tid(930, "%000003a2"), - Attrs([Attr("address","0x6A8"), Attr("insn","adrp x1, #65536")]), - Var("R1",Imm(64)), Int(65536,64)), Def(Tid(937, "%000003a9"), - Attrs([Attr("address","0x6AC"), Attr("insn","ldr x1, [x1, #0xfb0]")]), - Var("R1",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R1",Imm(64)),Int(4016,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(942, "%000003ae"), Attrs([Attr("address","0x6B0"), -Attr("insn","cbz x1, #0xc")]), EQ(Var("R1",Imm(64)),Int(0,64)), -Direct(Tid(578, "%00000242"))), Goto(Tid(1_426, "%00000592"), Attrs([]), - Int(1,1), Direct(Tid(946, "%000003b2")))])), Blk(Tid(578, "%00000242"), - Attrs([Attr("address","0x6BC")]), Phis([]), Defs([]), -Jmps([Call(Tid(586, "%0000024a"), Attrs([Attr("address","0x6BC"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))])), -Blk(Tid(946, "%000003b2"), Attrs([Attr("address","0x6B4")]), Phis([]), -Defs([Def(Tid(950, "%000003b6"), Attrs([Attr("address","0x6B4"), -Attr("insn","mov x16, x1")]), Var("R16",Imm(64)), Var("R1",Imm(64)))]), -Jmps([Call(Tid(955, "%000003bb"), Attrs([Attr("address","0x6B8"), -Attr("insn","br x16")]), Int(1,1), (Indirect(Var("R16",Imm(64))),))]))])), -Sub(Tid(1_396, "@frame_dummy"), Attrs([Attr("c.proto","signed (*)(void)"), -Attr("address","0x750")]), "frame_dummy", Args([Arg(Tid(1_442, "%000005a2"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("frame_dummy_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(738, "@frame_dummy"), - Attrs([Attr("address","0x750")]), Phis([]), Defs([]), -Jmps([Call(Tid(740, "%000002e4"), Attrs([Attr("address","0x750"), -Attr("insn","b #-0x90")]), Int(1,1), -(Direct(Tid(1_398, "@register_tm_clones")),))]))])), Sub(Tid(1_397, "@main"), - Attrs([Attr("c.proto","signed (*)(signed argc, const char** argv)"), -Attr("address","0x754")]), "main", Args([Arg(Tid(1_443, "%000005a3"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("main_argc",Imm(32)), -LOW(32,Var("R0",Imm(64))), In()), Arg(Tid(1_444, "%000005a4"), - Attrs([Attr("c.layout","**[char : 8]"), Attr("c.data","Top:u8 ptr ptr"), -Attr("c.type"," const char**")]), Var("main_argv",Imm(64)), -Var("R1",Imm(64)), Both()), Arg(Tid(1_445, "%000005a5"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("main_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(742, "@main"), - Attrs([Attr("address","0x754")]), Phis([]), Defs([Def(Tid(746, "%000002ea"), - Attrs([Attr("address","0x754"), Attr("insn","sub sp, sp, #0x10")]), - Var("R31",Imm(64)), PLUS(Var("R31",Imm(64)),Int(18446744073709551600,64))), -Def(Tid(754, "%000002f2"), Attrs([Attr("address","0x758"), -Attr("insn","str w0, [sp, #0xc]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(12,64)),Extract(31,0,Var("R0",Imm(64))),LittleEndian(),32)), -Def(Tid(759, "%000002f7"), Attrs([Attr("address","0x75C"), -Attr("insn","adrp x8, #65536")]), Var("R8",Imm(64)), Int(65536,64)), -Def(Tid(766, "%000002fe"), Attrs([Attr("address","0x760"), -Attr("insn","ldr x8, [x8, #0xfc0]")]), Var("R8",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R8",Imm(64)),Int(4032,64)),LittleEndian(),64)), -Def(Tid(771, "%00000303"), Attrs([Attr("address","0x764"), -Attr("insn","mov w9, #0x1")]), Var("R9",Imm(64)), Int(1,64)), -Def(Tid(779, "%0000030b"), Attrs([Attr("address","0x768"), -Attr("insn","str w9, [x8]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("R8",Imm(64)),Extract(31,0,Var("R9",Imm(64))),LittleEndian(),32)), -Def(Tid(786, "%00000312"), Attrs([Attr("address","0x76C"), -Attr("insn","ldr w10, [sp, #0xc]")]), Var("R10",Imm(64)), -UNSIGNED(64,Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(12,64)),LittleEndian(),32))), -Def(Tid(791, "%00000317"), Attrs([Attr("address","0x770"), -Attr("insn","adrp x9, #65536")]), Var("R9",Imm(64)), Int(65536,64)), -Def(Tid(798, "%0000031e"), Attrs([Attr("address","0x774"), -Attr("insn","ldr x9, [x9, #0xfc8]")]), Var("R9",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R9",Imm(64)),Int(4040,64)),LittleEndian(),64)), -Def(Tid(806, "%00000326"), Attrs([Attr("address","0x778"), -Attr("insn","str w10, [x9]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("R9",Imm(64)),Extract(31,0,Var("R10",Imm(64))),LittleEndian(),32)), -Def(Tid(811, "%0000032b"), Attrs([Attr("address","0x77C"), -Attr("insn","mov w0, wzr")]), Var("R0",Imm(64)), Int(0,64)), -Def(Tid(818, "%00000332"), Attrs([Attr("address","0x780"), -Attr("insn","str wzr, [x9]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("R9",Imm(64)),Int(0,32),LittleEndian(),32)), -Def(Tid(825, "%00000339"), Attrs([Attr("address","0x784"), -Attr("insn","str wzr, [x8]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("R8",Imm(64)),Int(0,32),LittleEndian(),32)), -Def(Tid(831, "%0000033f"), Attrs([Attr("address","0x788"), -Attr("insn","add sp, sp, #0x10")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(16,64)))]), Jmps([Call(Tid(836, "%00000344"), - Attrs([Attr("address","0x78C"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), -Sub(Tid(1_398, "@register_tm_clones"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x6C0")]), - "register_tm_clones", Args([Arg(Tid(1_446, "%000005a6"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("register_tm_clones_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(588, "@register_tm_clones"), Attrs([Attr("address","0x6C0")]), - Phis([]), Defs([Def(Tid(591, "%0000024f"), Attrs([Attr("address","0x6C0"), -Attr("insn","adrp x0, #69632")]), Var("R0",Imm(64)), Int(69632,64)), -Def(Tid(597, "%00000255"), Attrs([Attr("address","0x6C4"), -Attr("insn","add x0, x0, #0x30")]), Var("R0",Imm(64)), -PLUS(Var("R0",Imm(64)),Int(48,64))), Def(Tid(602, "%0000025a"), - Attrs([Attr("address","0x6C8"), Attr("insn","adrp x1, #69632")]), - Var("R1",Imm(64)), Int(69632,64)), Def(Tid(608, "%00000260"), - Attrs([Attr("address","0x6CC"), Attr("insn","add x1, x1, #0x30")]), - Var("R1",Imm(64)), PLUS(Var("R1",Imm(64)),Int(48,64))), -Def(Tid(615, "%00000267"), Attrs([Attr("address","0x6D0"), -Attr("insn","sub x1, x1, x0")]), Var("R1",Imm(64)), -PLUS(PLUS(Var("R1",Imm(64)),NOT(Var("R0",Imm(64)))),Int(1,64))), -Def(Tid(621, "%0000026d"), Attrs([Attr("address","0x6D4"), -Attr("insn","lsr x2, x1, #63")]), Var("R2",Imm(64)), -Concat(Int(0,63),Extract(63,63,Var("R1",Imm(64))))), -Def(Tid(628, "%00000274"), Attrs([Attr("address","0x6D8"), -Attr("insn","add x1, x2, x1, asr #3")]), Var("R1",Imm(64)), -PLUS(Var("R2",Imm(64)),ARSHIFT(Var("R1",Imm(64)),Int(3,3)))), -Def(Tid(634, "%0000027a"), Attrs([Attr("address","0x6DC"), -Attr("insn","asr x1, x1, #1")]), Var("R1",Imm(64)), -SIGNED(64,Extract(63,1,Var("R1",Imm(64)))))]), -Jmps([Goto(Tid(640, "%00000280"), Attrs([Attr("address","0x6E0"), -Attr("insn","cbz x1, #0x18")]), EQ(Var("R1",Imm(64)),Int(0,64)), -Direct(Tid(638, "%0000027e"))), Goto(Tid(1_427, "%00000593"), Attrs([]), - Int(1,1), Direct(Tid(897, "%00000381")))])), Blk(Tid(897, "%00000381"), - Attrs([Attr("address","0x6E4")]), Phis([]), Defs([Def(Tid(900, "%00000384"), - Attrs([Attr("address","0x6E4"), Attr("insn","adrp x2, #65536")]), - Var("R2",Imm(64)), Int(65536,64)), Def(Tid(907, "%0000038b"), - Attrs([Attr("address","0x6E8"), Attr("insn","ldr x2, [x2, #0xfe0]")]), - Var("R2",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R2",Imm(64)),Int(4064,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(912, "%00000390"), Attrs([Attr("address","0x6EC"), -Attr("insn","cbz x2, #0xc")]), EQ(Var("R2",Imm(64)),Int(0,64)), -Direct(Tid(638, "%0000027e"))), Goto(Tid(1_428, "%00000594"), Attrs([]), - Int(1,1), Direct(Tid(916, "%00000394")))])), Blk(Tid(638, "%0000027e"), - Attrs([Attr("address","0x6F8")]), Phis([]), Defs([]), -Jmps([Call(Tid(646, "%00000286"), Attrs([Attr("address","0x6F8"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))])), -Blk(Tid(916, "%00000394"), Attrs([Attr("address","0x6F0")]), Phis([]), -Defs([Def(Tid(920, "%00000398"), Attrs([Attr("address","0x6F0"), -Attr("insn","mov x16, x2")]), Var("R16",Imm(64)), Var("R2",Imm(64)))]), -Jmps([Call(Tid(925, "%0000039d"), Attrs([Attr("address","0x6F4"), -Attr("insn","br x16")]), Int(1,1), -(Indirect(Var("R16",Imm(64))),))]))]))]))) \ No newline at end of file diff --git a/src/test/correct/basic_lock_security_write/clang_pic/basic_lock_security_write.bir b/src/test/correct/basic_lock_security_write/clang_pic/basic_lock_security_write.bir deleted file mode 100644 index c440e7a54..000000000 --- a/src/test/correct/basic_lock_security_write/clang_pic/basic_lock_security_write.bir +++ /dev/null @@ -1,237 +0,0 @@ -00000595: program -00000563: sub __cxa_finalize(__cxa_finalize_result) -00000596: __cxa_finalize_result :: out u32 = low:32[R0] - -0000037d: -00000475: R16 := 0x11000 -0000047c: R17 := mem[R16 + 8, el]:u64 -00000482: R16 := R16 + 8 -00000487: call R17 with noreturn - -00000564: sub __do_global_dtors_aux(__do_global_dtors_aux_result) -00000597: __do_global_dtors_aux_result :: out u32 = low:32[R0] - -0000028a: -0000028e: #3 := R31 - 0x20 -00000294: mem := mem with [#3, el]:u64 <- R29 -0000029a: mem := mem with [#3 + 8, el]:u64 <- R30 -0000029e: R31 := #3 -000002a4: R29 := R31 -000002ac: mem := mem with [R31 + 0x10, el]:u64 <- R19 -000002b1: R19 := 0x11000 -000002b8: R0 := pad:64[mem[R19 + 0x30]] -000002bf: when 31:0[R0] <> 0 goto %000002bd -0000058b: goto %00000346 - -00000346: -00000349: R0 := 0x10000 -00000350: R0 := mem[R0 + 0xFB8, el]:u64 -00000356: when R0 = 0 goto %00000354 -0000058c: goto %0000036d - -0000036d: -00000370: R0 := 0x11000 -00000377: R0 := mem[R0 + 0x28, el]:u64 -0000037c: R30 := 0x730 -0000037f: call @__cxa_finalize with return %00000354 - -00000354: -0000035c: R30 := 0x734 -0000035e: call @deregister_tm_clones with return %00000360 - -00000360: -00000363: R0 := 1 -0000036b: mem := mem with [R19 + 0x30] <- 7:0[R0] -0000058d: goto %000002bd - -000002bd: -000002c7: R19 := mem[R31 + 0x10, el]:u64 -000002ce: R29 := mem[R31, el]:u64 -000002d3: R30 := mem[R31 + 8, el]:u64 -000002d7: R31 := R31 + 0x20 -000002dc: call R30 with noreturn - -00000568: sub __libc_start_main(__libc_start_main_main, __libc_start_main_arg2, __libc_start_main_arg3, __libc_start_main_auxv, __libc_start_main_result) -00000598: __libc_start_main_main :: in u64 = R0 -00000599: __libc_start_main_arg2 :: in u32 = low:32[R1] -0000059a: __libc_start_main_arg3 :: in out u64 = R2 -0000059b: __libc_start_main_auxv :: in out u64 = R3 -0000059c: __libc_start_main_result :: out u32 = low:32[R0] - -000001e3: -0000045f: R16 := 0x11000 -00000466: R17 := mem[R16, el]:u64 -0000046c: R16 := R16 -00000471: call R17 with noreturn - -00000569: sub _fini(_fini_result) -0000059d: _fini_result :: out u32 = low:32[R0] - -0000001f: -00000025: #0 := R31 - 0x10 -0000002b: mem := mem with [#0, el]:u64 <- R29 -00000031: mem := mem with [#0 + 8, el]:u64 <- R30 -00000035: R31 := #0 -0000003b: R29 := R31 -00000042: R29 := mem[R31, el]:u64 -00000047: R30 := mem[R31 + 8, el]:u64 -0000004b: R31 := R31 + 0x10 -00000050: call R30 with noreturn - -0000056a: sub _init(_init_result) -0000059e: _init_result :: out u32 = low:32[R0] - -000004cf: -000004d5: #5 := R31 - 0x10 -000004db: mem := mem with [#5, el]:u64 <- R29 -000004e1: mem := mem with [#5 + 8, el]:u64 <- R30 -000004e5: R31 := #5 -000004eb: R29 := R31 -000004f0: R30 := 0x5C0 -000004f2: call @call_weak_fn with return %000004f4 - -000004f4: -000004f9: R29 := mem[R31, el]:u64 -000004fe: R30 := mem[R31 + 8, el]:u64 -00000502: R31 := R31 + 0x10 -00000507: call R30 with noreturn - -0000056b: sub _start(_start_result) -0000059f: _start_result :: out u32 = low:32[R0] - -000001a4: -000001a9: R29 := 0 -000001ae: R30 := 0 -000001b4: R5 := R0 -000001bb: R1 := mem[R31, el]:u64 -000001c1: R2 := R31 + 8 -000001c7: R6 := R31 -000001cc: R0 := 0x10000 -000001d3: R0 := mem[R0 + 0xFD8, el]:u64 -000001d8: R3 := 0 -000001dd: R4 := 0 -000001e2: R30 := 0x670 -000001e5: call @__libc_start_main with return %000001e7 - -000001e7: -000001ea: R30 := 0x674 -000001ed: call @abort with return %0000058e - -0000058e: -0000058f: call @call_weak_fn with noreturn - -0000056e: sub abort() - - -000001eb: -000004a1: R16 := 0x11000 -000004a8: R17 := mem[R16 + 0x18, el]:u64 -000004ae: R16 := R16 + 0x18 -000004b3: call R17 with noreturn - -0000056f: sub call_weak_fn(call_weak_fn_result) -000005a0: call_weak_fn_result :: out u32 = low:32[R0] - -000001ef: -000001f2: R0 := 0x10000 -000001f9: R0 := mem[R0 + 0xFD0, el]:u64 -000001ff: when R0 = 0 goto %000001fd -00000590: goto %000003bd - -000001fd: -00000205: call R30 with noreturn - -000003bd: -000003c0: goto @__gmon_start__ - -000003be: -0000048b: R16 := 0x11000 -00000492: R17 := mem[R16 + 0x10, el]:u64 -00000498: R16 := R16 + 0x10 -0000049d: call R17 with noreturn - -00000571: sub deregister_tm_clones(deregister_tm_clones_result) -000005a1: deregister_tm_clones_result :: out u32 = low:32[R0] - -0000020b: -0000020e: R0 := 0x11000 -00000214: R0 := R0 + 0x30 -00000219: R1 := 0x11000 -0000021f: R1 := R1 + 0x30 -00000225: #1 := ~R0 -0000022a: #2 := R1 + ~R0 -00000230: VF := extend:65[#2 + 1] <> extend:65[R1] + extend:65[#1] + 1 -00000236: CF := pad:65[#2 + 1] <> pad:65[R1] + pad:65[#1] + 1 -0000023a: ZF := #2 + 1 = 0 -0000023e: NF := 63:63[#2 + 1] -00000244: when ZF goto %00000242 -00000591: goto %0000039f - -0000039f: -000003a2: R1 := 0x10000 -000003a9: R1 := mem[R1 + 0xFB0, el]:u64 -000003ae: when R1 = 0 goto %00000242 -00000592: goto %000003b2 - -00000242: -0000024a: call R30 with noreturn - -000003b2: -000003b6: R16 := R1 -000003bb: call R16 with noreturn - -00000574: sub frame_dummy(frame_dummy_result) -000005a2: frame_dummy_result :: out u32 = low:32[R0] - -000002e2: -000002e4: call @register_tm_clones with noreturn - -00000575: sub main(main_argc, main_argv, main_result) -000005a3: main_argc :: in u32 = low:32[R0] -000005a4: main_argv :: in out u64 = R1 -000005a5: main_result :: out u32 = low:32[R0] - -000002e6: -000002ea: R31 := R31 - 0x10 -000002f2: mem := mem with [R31 + 0xC, el]:u32 <- 31:0[R0] -000002f7: R8 := 0x10000 -000002fe: R8 := mem[R8 + 0xFC0, el]:u64 -00000303: R9 := 1 -0000030b: mem := mem with [R8, el]:u32 <- 31:0[R9] -00000312: R10 := pad:64[mem[R31 + 0xC, el]:u32] -00000317: R9 := 0x10000 -0000031e: R9 := mem[R9 + 0xFC8, el]:u64 -00000326: mem := mem with [R9, el]:u32 <- 31:0[R10] -0000032b: R0 := 0 -00000332: mem := mem with [R9, el]:u32 <- 0 -00000339: mem := mem with [R8, el]:u32 <- 0 -0000033f: R31 := R31 + 0x10 -00000344: call R30 with noreturn - -00000576: sub register_tm_clones(register_tm_clones_result) -000005a6: register_tm_clones_result :: out u32 = low:32[R0] - -0000024c: -0000024f: R0 := 0x11000 -00000255: R0 := R0 + 0x30 -0000025a: R1 := 0x11000 -00000260: R1 := R1 + 0x30 -00000267: R1 := R1 + ~R0 + 1 -0000026d: R2 := 0.63:63[R1] -00000274: R1 := R2 + (R1 ~>> 3) -0000027a: R1 := extend:64[63:1[R1]] -00000280: when R1 = 0 goto %0000027e -00000593: goto %00000381 - -00000381: -00000384: R2 := 0x10000 -0000038b: R2 := mem[R2 + 0xFE0, el]:u64 -00000390: when R2 = 0 goto %0000027e -00000594: goto %00000394 - -0000027e: -00000286: call R30 with noreturn - -00000394: -00000398: R16 := R2 -0000039d: call R16 with noreturn diff --git a/src/test/correct/basic_lock_security_write/clang_pic/basic_lock_security_write.expected b/src/test/correct/basic_lock_security_write/clang_pic/basic_lock_security_write.expected index 7fc585c1c..a59fcf214 100644 --- a/src/test/correct/basic_lock_security_write/clang_pic/basic_lock_security_write.expected +++ b/src/test/correct/basic_lock_security_write/clang_pic/basic_lock_security_write.expected @@ -1,21 +1,15 @@ var {:extern} Gamma_R0: bool; -var {:extern} Gamma_R10: bool; -var {:extern} Gamma_R31: bool; var {:extern} Gamma_R8: bool; var {:extern} Gamma_R9: bool; var {:extern} Gamma_mem: [bv64]bool; -var {:extern} Gamma_stack: [bv64]bool; var {:extern} R0: bv64; -var {:extern} R10: bv64; -var {:extern} R31: bv64; var {:extern} R8: bv64; var {:extern} R9: bv64; var {:extern} mem: [bv64]bv8; -var {:extern} stack: [bv64]bv8; const {:extern} $x_addr: bv64; -axiom ($x_addr == 69688bv64); +axiom ($x_addr == 131096bv64); const {:extern} $z_addr: bv64; -axiom ($z_addr == 69684bv64); +axiom ($z_addr == 131092bv64); function {:extern} L(mem$in: [bv64]bv8, index: bv64) returns (bool) { (if (index == $x_addr) then (memory_load32_le(mem$in, $z_addr) == 0bv32) else (if (index == $z_addr) then true else false)) } @@ -45,18 +39,17 @@ function {:extern} memory_store32_le(memory: [bv64]bv8, index: bv64, value: bv32 memory[index := value[8:0]][bvadd64(index, 1bv64) := value[16:8]][bvadd64(index, 2bv64) := value[24:16]][bvadd64(index, 3bv64) := value[32:24]] } -function {:extern} {:bvbuiltin "zero_extend 32"} zero_extend32_32(bv32) returns (bv64); procedure {:extern} rely(); modifies Gamma_mem, mem; ensures (forall i: bv64 :: (((mem[i] == old(mem[i])) ==> (Gamma_mem[i] == old(Gamma_mem[i]))))); ensures ((memory_load32_le(mem, $z_addr) == old(memory_load32_le(mem, $z_addr))) && (memory_load32_le(mem, $x_addr) == old(memory_load32_le(mem, $x_addr)))); - free ensures (memory_load32_le(mem, 1956bv64) == 131073bv32); - free ensures (memory_load64_le(mem, 69048bv64) == 1872bv64); - free ensures (memory_load64_le(mem, 69056bv64) == 1792bv64); - free ensures (memory_load64_le(mem, 69568bv64) == 69684bv64); - free ensures (memory_load64_le(mem, 69576bv64) == 69688bv64); - free ensures (memory_load64_le(mem, 69592bv64) == 1876bv64); - free ensures (memory_load64_le(mem, 69672bv64) == 69672bv64); + free ensures (memory_load32_le(mem, 2312bv64) == 131073bv32); + free ensures (memory_load64_le(mem, 130424bv64) == 2256bv64); + free ensures (memory_load64_le(mem, 130432bv64) == 2176bv64); + free ensures (memory_load64_le(mem, 131032bv64) == 131092bv64); + free ensures (memory_load64_le(mem, 131040bv64) == 131096bv64); + free ensures (memory_load64_le(mem, 131056bv64) == 2260bv64); + free ensures (memory_load64_le(mem, 131080bv64) == 131080bv64); procedure {:extern} rely_transitive(); modifies Gamma_mem, mem; @@ -83,97 +76,68 @@ implementation {:extern} guarantee_reflexive() assert ((memory_load32_le(mem, $z_addr) == 0bv32) ==> ((memory_load32_le(mem, $x_addr) == memory_load32_le(mem, $x_addr)) && (memory_load32_le(mem, $z_addr) == memory_load32_le(mem, $z_addr)))); } -procedure main_1876(); - modifies Gamma_R0, Gamma_R10, Gamma_R31, Gamma_R8, Gamma_R9, Gamma_mem, Gamma_stack, R0, R10, R31, R8, R9, mem, stack; +procedure main(); + modifies Gamma_R0, Gamma_R8, Gamma_R9, Gamma_mem, R0, R8, R9, mem; requires (memory_load32_le(mem, $z_addr) != 0bv32); requires (Gamma_R0 == false); - free requires (memory_load64_le(mem, 69664bv64) == 0bv64); - free requires (memory_load64_le(mem, 69672bv64) == 69672bv64); - free requires (memory_load32_le(mem, 1956bv64) == 131073bv32); - free requires (memory_load64_le(mem, 69048bv64) == 1872bv64); - free requires (memory_load64_le(mem, 69056bv64) == 1792bv64); - free requires (memory_load64_le(mem, 69568bv64) == 69684bv64); - free requires (memory_load64_le(mem, 69576bv64) == 69688bv64); - free requires (memory_load64_le(mem, 69592bv64) == 1876bv64); - free requires (memory_load64_le(mem, 69672bv64) == 69672bv64); - free ensures (Gamma_R31 == old(Gamma_R31)); - free ensures (R31 == old(R31)); - free ensures (memory_load32_le(mem, 1956bv64) == 131073bv32); - free ensures (memory_load64_le(mem, 69048bv64) == 1872bv64); - free ensures (memory_load64_le(mem, 69056bv64) == 1792bv64); - free ensures (memory_load64_le(mem, 69568bv64) == 69684bv64); - free ensures (memory_load64_le(mem, 69576bv64) == 69688bv64); - free ensures (memory_load64_le(mem, 69592bv64) == 1876bv64); - free ensures (memory_load64_le(mem, 69672bv64) == 69672bv64); - -implementation main_1876() + free requires (memory_load64_le(mem, 131072bv64) == 0bv64); + free requires (memory_load64_le(mem, 131080bv64) == 131080bv64); + free requires (memory_load32_le(mem, 2312bv64) == 131073bv32); + free requires (memory_load64_le(mem, 130424bv64) == 2256bv64); + free requires (memory_load64_le(mem, 130432bv64) == 2176bv64); + free requires (memory_load64_le(mem, 131032bv64) == 131092bv64); + free requires (memory_load64_le(mem, 131040bv64) == 131096bv64); + free requires (memory_load64_le(mem, 131056bv64) == 2260bv64); + free requires (memory_load64_le(mem, 131080bv64) == 131080bv64); + free ensures (memory_load32_le(mem, 2312bv64) == 131073bv32); + free ensures (memory_load64_le(mem, 130424bv64) == 2256bv64); + free ensures (memory_load64_le(mem, 130432bv64) == 2176bv64); + free ensures (memory_load64_le(mem, 131032bv64) == 131092bv64); + free ensures (memory_load64_le(mem, 131040bv64) == 131096bv64); + free ensures (memory_load64_le(mem, 131056bv64) == 2260bv64); + free ensures (memory_load64_le(mem, 131080bv64) == 131080bv64); + +implementation main() { - var Gamma_load18: bool; - var Gamma_load19: bool; - var Gamma_load20: bool; + var $load$18: bv64; + var $load$19: bv64; + var Gamma_$load$18: bool; + var Gamma_$load$19: bool; var Gamma_x_old: bool; - var load18: bv64; - var load19: bv32; - var load20: bv64; var x_old: bv32; var z_old: bv32; lmain: assume {:captureState "lmain"} true; - R31, Gamma_R31 := bvadd64(R31, 18446744073709551600bv64), Gamma_R31; - stack, Gamma_stack := memory_store32_le(stack, bvadd64(R31, 12bv64), R0[32:0]), gamma_store32(Gamma_stack, bvadd64(R31, 12bv64), Gamma_R0); - assume {:captureState "%000002f2"} true; - R8, Gamma_R8 := 65536bv64, true; + R8, Gamma_R8 := 126976bv64, true; + R9, Gamma_R9 := 126976bv64, true; + R0, Gamma_R0 := 0bv64, true; call rely(); - load18, Gamma_load18 := memory_load64_le(mem, bvadd64(R8, 4032bv64)), (gamma_load64(Gamma_mem, bvadd64(R8, 4032bv64)) || L(mem, bvadd64(R8, 4032bv64))); - R8, Gamma_R8 := load18, Gamma_load18; - R9, Gamma_R9 := 1bv64, true; + $load$18, Gamma_$load$18 := memory_load64_le(mem, bvadd64(R8, 4064bv64)), (gamma_load64(Gamma_mem, bvadd64(R8, 4064bv64)) || L(mem, bvadd64(R8, 4064bv64))); + R8, Gamma_R8 := $load$18, Gamma_$load$18; call rely(); - z_old := memory_load32_le(mem, $z_addr); - x_old := memory_load32_le(mem, $x_addr); - Gamma_x_old := (gamma_load32(Gamma_mem, $x_addr) || L(mem, $x_addr)); - assert (L(mem, R8) ==> Gamma_R9); - mem, Gamma_mem := memory_store32_le(mem, R8, R9[32:0]), gamma_store32(Gamma_mem, R8, Gamma_R9); - assert ((R8 == $z_addr) ==> (L(mem, $x_addr) ==> Gamma_x_old)); - assert ((z_old == 0bv32) ==> ((memory_load32_le(mem, $x_addr) == x_old) && (memory_load32_le(mem, $z_addr) == z_old))); - assume {:captureState "%0000030b"} true; - load19, Gamma_load19 := memory_load32_le(stack, bvadd64(R31, 12bv64)), gamma_load32(Gamma_stack, bvadd64(R31, 12bv64)); - R10, Gamma_R10 := zero_extend32_32(load19), Gamma_load19; - R9, Gamma_R9 := 65536bv64, true; - call rely(); - load20, Gamma_load20 := memory_load64_le(mem, bvadd64(R9, 4040bv64)), (gamma_load64(Gamma_mem, bvadd64(R9, 4040bv64)) || L(mem, bvadd64(R9, 4040bv64))); - R9, Gamma_R9 := load20, Gamma_load20; + $load$19, Gamma_$load$19 := memory_load64_le(mem, bvadd64(R9, 4056bv64)), (gamma_load64(Gamma_mem, bvadd64(R9, 4056bv64)) || L(mem, bvadd64(R9, 4056bv64))); + R9, Gamma_R9 := $load$19, Gamma_$load$19; call rely(); + assert (L(mem, R8) ==> true); z_old := memory_load32_le(mem, $z_addr); x_old := memory_load32_le(mem, $x_addr); Gamma_x_old := (gamma_load32(Gamma_mem, $x_addr) || L(mem, $x_addr)); - assert (L(mem, R9) ==> Gamma_R10); - mem, Gamma_mem := memory_store32_le(mem, R9, R10[32:0]), gamma_store32(Gamma_mem, R9, Gamma_R10); - assert ((R9 == $z_addr) ==> (L(mem, $x_addr) ==> Gamma_x_old)); + mem, Gamma_mem := memory_store32_le(mem, R8, 0bv32), gamma_store32(Gamma_mem, R8, true); + assert ((R8 == $z_addr) ==> (L(mem, $x_addr) ==> Gamma_x_old)); assert ((z_old == 0bv32) ==> ((memory_load32_le(mem, $x_addr) == x_old) && (memory_load32_le(mem, $z_addr) == z_old))); - assume {:captureState "%00000326"} true; - R0, Gamma_R0 := 0bv64, true; + assume {:captureState "%00000290"} true; call rely(); + assert (L(mem, R9) ==> true); z_old := memory_load32_le(mem, $z_addr); x_old := memory_load32_le(mem, $x_addr); Gamma_x_old := (gamma_load32(Gamma_mem, $x_addr) || L(mem, $x_addr)); - assert (L(mem, R9) ==> true); mem, Gamma_mem := memory_store32_le(mem, R9, 0bv32), gamma_store32(Gamma_mem, R9, true); assert ((R9 == $z_addr) ==> (L(mem, $x_addr) ==> Gamma_x_old)); assert ((z_old == 0bv32) ==> ((memory_load32_le(mem, $x_addr) == x_old) && (memory_load32_le(mem, $z_addr) == z_old))); - assume {:captureState "%00000332"} true; - call rely(); - z_old := memory_load32_le(mem, $z_addr); - x_old := memory_load32_le(mem, $x_addr); - Gamma_x_old := (gamma_load32(Gamma_mem, $x_addr) || L(mem, $x_addr)); - assert (L(mem, R8) ==> true); - mem, Gamma_mem := memory_store32_le(mem, R8, 0bv32), gamma_store32(Gamma_mem, R8, true); - assert ((R8 == $z_addr) ==> (L(mem, $x_addr) ==> Gamma_x_old)); - assert ((z_old == 0bv32) ==> ((memory_load32_le(mem, $x_addr) == x_old) && (memory_load32_le(mem, $z_addr) == z_old))); - assume {:captureState "%00000339"} true; - R31, Gamma_R31 := bvadd64(R31, 16bv64), Gamma_R31; - goto main_1876_basil_return; - main_1876_basil_return: - assume {:captureState "main_1876_basil_return"} true; + assume {:captureState "%00000294"} true; + goto main_basil_return; + main_basil_return: + assume {:captureState "main_basil_return"} true; return; } diff --git a/src/test/correct/basic_lock_security_write/clang_pic/basic_lock_security_write.gts b/src/test/correct/basic_lock_security_write/clang_pic/basic_lock_security_write.gts deleted file mode 100644 index a9cf167f9..000000000 Binary files a/src/test/correct/basic_lock_security_write/clang_pic/basic_lock_security_write.gts and /dev/null differ diff --git a/src/test/correct/basic_lock_security_write/clang_pic/basic_lock_security_write.md5sum b/src/test/correct/basic_lock_security_write/clang_pic/basic_lock_security_write.md5sum new file mode 100644 index 000000000..e500ff630 --- /dev/null +++ b/src/test/correct/basic_lock_security_write/clang_pic/basic_lock_security_write.md5sum @@ -0,0 +1,5 @@ +dad7590f0e0ef32d6316805cb44ee332 correct/basic_lock_security_write/clang_pic/a.out +e0b1bd62613d848375ff41d38e451ed1 correct/basic_lock_security_write/clang_pic/basic_lock_security_write.adt +062c49b5e32ef50e70b7b05021fd945b correct/basic_lock_security_write/clang_pic/basic_lock_security_write.bir +5edffb7ca3ee13b7f17d42f40c59ba4f correct/basic_lock_security_write/clang_pic/basic_lock_security_write.relf +c691d963ba80827609779a739a4a7cb5 correct/basic_lock_security_write/clang_pic/basic_lock_security_write.gts diff --git a/src/test/correct/basic_lock_security_write/clang_pic/basic_lock_security_write.relf b/src/test/correct/basic_lock_security_write/clang_pic/basic_lock_security_write.relf deleted file mode 100644 index 05ea02feb..000000000 --- a/src/test/correct/basic_lock_security_write/clang_pic/basic_lock_security_write.relf +++ /dev/null @@ -1,126 +0,0 @@ - -Relocation section '.rela.dyn' at offset 0x460 contains 10 entries: - Offset Info Type Symbol's Value Symbol's Name + Addend -0000000000010db8 0000000000000403 R_AARCH64_RELATIVE 750 -0000000000010dc0 0000000000000403 R_AARCH64_RELATIVE 700 -0000000000010fc0 0000000000000403 R_AARCH64_RELATIVE 11034 -0000000000010fc8 0000000000000403 R_AARCH64_RELATIVE 11038 -0000000000010fd8 0000000000000403 R_AARCH64_RELATIVE 754 -0000000000011028 0000000000000403 R_AARCH64_RELATIVE 11028 -0000000000010fb0 0000000400000401 R_AARCH64_GLOB_DAT 0000000000000000 _ITM_deregisterTMCloneTable + 0 -0000000000010fb8 0000000500000401 R_AARCH64_GLOB_DAT 0000000000000000 __cxa_finalize@GLIBC_2.17 + 0 -0000000000010fd0 0000000600000401 R_AARCH64_GLOB_DAT 0000000000000000 __gmon_start__ + 0 -0000000000010fe0 0000000800000401 R_AARCH64_GLOB_DAT 0000000000000000 _ITM_registerTMCloneTable + 0 - -Relocation section '.rela.plt' at offset 0x550 contains 4 entries: - Offset Info Type Symbol's Value Symbol's Name + Addend -0000000000011000 0000000300000402 R_AARCH64_JUMP_SLOT 0000000000000000 __libc_start_main@GLIBC_2.34 + 0 -0000000000011008 0000000500000402 R_AARCH64_JUMP_SLOT 0000000000000000 __cxa_finalize@GLIBC_2.17 + 0 -0000000000011010 0000000600000402 R_AARCH64_JUMP_SLOT 0000000000000000 __gmon_start__ + 0 -0000000000011018 0000000700000402 R_AARCH64_JUMP_SLOT 0000000000000000 abort@GLIBC_2.17 + 0 - -Symbol table '.dynsym' contains 9 entries: - Num: Value Size Type Bind Vis Ndx Name - 0: 0000000000000000 0 NOTYPE LOCAL DEFAULT UND - 1: 00000000000005b0 0 SECTION LOCAL DEFAULT 11 .init - 2: 0000000000011020 0 SECTION LOCAL DEFAULT 23 .data - 3: 0000000000000000 0 FUNC GLOBAL DEFAULT UND __libc_start_main@GLIBC_2.34 (2) - 4: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_deregisterTMCloneTable - 5: 0000000000000000 0 FUNC WEAK DEFAULT UND __cxa_finalize@GLIBC_2.17 (3) - 6: 0000000000000000 0 NOTYPE WEAK DEFAULT UND __gmon_start__ - 7: 0000000000000000 0 FUNC GLOBAL DEFAULT UND abort@GLIBC_2.17 (3) - 8: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_registerTMCloneTable - -Symbol table '.symtab' contains 91 entries: - Num: Value Size Type Bind Vis Ndx Name - 0: 0000000000000000 0 NOTYPE LOCAL DEFAULT UND - 1: 0000000000000238 0 SECTION LOCAL DEFAULT 1 .interp - 2: 0000000000000254 0 SECTION LOCAL DEFAULT 2 .note.gnu.build-id - 3: 0000000000000278 0 SECTION LOCAL DEFAULT 3 .note.ABI-tag - 4: 0000000000000298 0 SECTION LOCAL DEFAULT 4 .gnu.hash - 5: 00000000000002b8 0 SECTION LOCAL DEFAULT 5 .dynsym - 6: 0000000000000390 0 SECTION LOCAL DEFAULT 6 .dynstr - 7: 000000000000041e 0 SECTION LOCAL DEFAULT 7 .gnu.version - 8: 0000000000000430 0 SECTION LOCAL DEFAULT 8 .gnu.version_r - 9: 0000000000000460 0 SECTION LOCAL DEFAULT 9 .rela.dyn - 10: 0000000000000550 0 SECTION LOCAL DEFAULT 10 .rela.plt - 11: 00000000000005b0 0 SECTION LOCAL DEFAULT 11 .init - 12: 00000000000005d0 0 SECTION LOCAL DEFAULT 12 .plt - 13: 0000000000000640 0 SECTION LOCAL DEFAULT 13 .text - 14: 0000000000000790 0 SECTION LOCAL DEFAULT 14 .fini - 15: 00000000000007a4 0 SECTION LOCAL DEFAULT 15 .rodata - 16: 00000000000007a8 0 SECTION LOCAL DEFAULT 16 .eh_frame_hdr - 17: 00000000000007e8 0 SECTION LOCAL DEFAULT 17 .eh_frame - 18: 0000000000010db8 0 SECTION LOCAL DEFAULT 18 .init_array - 19: 0000000000010dc0 0 SECTION LOCAL DEFAULT 19 .fini_array - 20: 0000000000010dc8 0 SECTION LOCAL DEFAULT 20 .dynamic - 21: 0000000000010fa8 0 SECTION LOCAL DEFAULT 21 .got - 22: 0000000000010fe8 0 SECTION LOCAL DEFAULT 22 .got.plt - 23: 0000000000011020 0 SECTION LOCAL DEFAULT 23 .data - 24: 0000000000011030 0 SECTION LOCAL DEFAULT 24 .bss - 25: 0000000000000000 0 SECTION LOCAL DEFAULT 25 .comment - 26: 0000000000000000 0 FILE LOCAL DEFAULT ABS Scrt1.o - 27: 0000000000000278 0 NOTYPE LOCAL DEFAULT 3 $d - 28: 0000000000000278 32 OBJECT LOCAL DEFAULT 3 __abi_tag - 29: 0000000000000640 0 NOTYPE LOCAL DEFAULT 13 $x - 30: 00000000000007fc 0 NOTYPE LOCAL DEFAULT 17 $d - 31: 00000000000007a4 0 NOTYPE LOCAL DEFAULT 15 $d - 32: 0000000000000000 0 FILE LOCAL DEFAULT ABS crti.o - 33: 0000000000000674 0 NOTYPE LOCAL DEFAULT 13 $x - 34: 0000000000000674 20 FUNC LOCAL DEFAULT 13 call_weak_fn - 35: 00000000000005b0 0 NOTYPE LOCAL DEFAULT 11 $x - 36: 0000000000000790 0 NOTYPE LOCAL DEFAULT 14 $x - 37: 0000000000000000 0 FILE LOCAL DEFAULT ABS crtn.o - 38: 00000000000005c0 0 NOTYPE LOCAL DEFAULT 11 $x - 39: 000000000000079c 0 NOTYPE LOCAL DEFAULT 14 $x - 40: 0000000000000000 0 FILE LOCAL DEFAULT ABS crtstuff.c - 41: 0000000000000690 0 NOTYPE LOCAL DEFAULT 13 $x - 42: 0000000000000690 0 FUNC LOCAL DEFAULT 13 deregister_tm_clones - 43: 00000000000006c0 0 FUNC LOCAL DEFAULT 13 register_tm_clones - 44: 0000000000011028 0 NOTYPE LOCAL DEFAULT 23 $d - 45: 0000000000000700 0 FUNC LOCAL DEFAULT 13 __do_global_dtors_aux - 46: 0000000000011030 1 OBJECT LOCAL DEFAULT 24 completed.0 - 47: 0000000000010dc0 0 NOTYPE LOCAL DEFAULT 19 $d - 48: 0000000000010dc0 0 OBJECT LOCAL DEFAULT 19 __do_global_dtors_aux_fini_array_entry - 49: 0000000000000750 0 FUNC LOCAL DEFAULT 13 frame_dummy - 50: 0000000000010db8 0 NOTYPE LOCAL DEFAULT 18 $d - 51: 0000000000010db8 0 OBJECT LOCAL DEFAULT 18 __frame_dummy_init_array_entry - 52: 0000000000000810 0 NOTYPE LOCAL DEFAULT 17 $d - 53: 0000000000011030 0 NOTYPE LOCAL DEFAULT 24 $d - 54: 0000000000000000 0 FILE LOCAL DEFAULT ABS basic_lock_security_write.c - 55: 0000000000000754 0 NOTYPE LOCAL DEFAULT 13 $x.0 - 56: 0000000000011034 0 NOTYPE LOCAL DEFAULT 24 $d.1 - 57: 000000000000002a 0 NOTYPE LOCAL DEFAULT 25 $d.2 - 58: 0000000000000870 0 NOTYPE LOCAL DEFAULT 17 $d.3 - 59: 0000000000000000 0 FILE LOCAL DEFAULT ABS crtstuff.c - 60: 000000000000089c 0 NOTYPE LOCAL DEFAULT 17 $d - 61: 000000000000089c 0 OBJECT LOCAL DEFAULT 17 __FRAME_END__ - 62: 0000000000000000 0 FILE LOCAL DEFAULT ABS - 63: 0000000000010dc8 0 OBJECT LOCAL DEFAULT ABS _DYNAMIC - 64: 00000000000007a8 0 NOTYPE LOCAL DEFAULT 16 __GNU_EH_FRAME_HDR - 65: 0000000000010fa8 0 OBJECT LOCAL DEFAULT ABS _GLOBAL_OFFSET_TABLE_ - 66: 00000000000005d0 0 NOTYPE LOCAL DEFAULT 12 $x - 67: 0000000000000000 0 FUNC GLOBAL DEFAULT UND __libc_start_main@GLIBC_2.34 - 68: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_deregisterTMCloneTable - 69: 0000000000011020 0 NOTYPE WEAK DEFAULT 23 data_start - 70: 0000000000011030 0 NOTYPE GLOBAL DEFAULT 24 __bss_start__ - 71: 0000000000000000 0 FUNC WEAK DEFAULT UND __cxa_finalize@GLIBC_2.17 - 72: 0000000000011040 0 NOTYPE GLOBAL DEFAULT 24 _bss_end__ - 73: 0000000000011030 0 NOTYPE GLOBAL DEFAULT 23 _edata - 74: 0000000000011034 4 OBJECT GLOBAL DEFAULT 24 z - 75: 0000000000011038 4 OBJECT GLOBAL DEFAULT 24 x - 76: 0000000000000790 0 FUNC GLOBAL HIDDEN 14 _fini - 77: 0000000000011040 0 NOTYPE GLOBAL DEFAULT 24 __bss_end__ - 78: 0000000000011020 0 NOTYPE GLOBAL DEFAULT 23 __data_start - 79: 0000000000000000 0 NOTYPE WEAK DEFAULT UND __gmon_start__ - 80: 0000000000011028 0 OBJECT GLOBAL HIDDEN 23 __dso_handle - 81: 0000000000000000 0 FUNC GLOBAL DEFAULT UND abort@GLIBC_2.17 - 82: 00000000000007a4 4 OBJECT GLOBAL DEFAULT 15 _IO_stdin_used - 83: 0000000000011040 0 NOTYPE GLOBAL DEFAULT 24 _end - 84: 0000000000000640 52 FUNC GLOBAL DEFAULT 13 _start - 85: 0000000000011040 0 NOTYPE GLOBAL DEFAULT 24 __end__ - 86: 0000000000011030 0 NOTYPE GLOBAL DEFAULT 24 __bss_start - 87: 0000000000000754 60 FUNC GLOBAL DEFAULT 13 main - 88: 0000000000011030 0 OBJECT GLOBAL HIDDEN 23 __TMC_END__ - 89: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_registerTMCloneTable - 90: 00000000000005b0 0 FUNC GLOBAL HIDDEN 11 _init diff --git a/src/test/correct/basic_lock_security_write/clang_pic/basic_lock_security_write_gtirb.expected b/src/test/correct/basic_lock_security_write/clang_pic/basic_lock_security_write_gtirb.expected index 4e67c08a3..3eeaca89c 100644 --- a/src/test/correct/basic_lock_security_write/clang_pic/basic_lock_security_write_gtirb.expected +++ b/src/test/correct/basic_lock_security_write/clang_pic/basic_lock_security_write_gtirb.expected @@ -1,21 +1,15 @@ var {:extern} Gamma_R0: bool; -var {:extern} Gamma_R10: bool; -var {:extern} Gamma_R31: bool; var {:extern} Gamma_R8: bool; var {:extern} Gamma_R9: bool; var {:extern} Gamma_mem: [bv64]bool; -var {:extern} Gamma_stack: [bv64]bool; var {:extern} R0: bv64; -var {:extern} R10: bv64; -var {:extern} R31: bv64; var {:extern} R8: bv64; var {:extern} R9: bv64; var {:extern} mem: [bv64]bv8; -var {:extern} stack: [bv64]bv8; const {:extern} $x_addr: bv64; -axiom ($x_addr == 69688bv64); +axiom ($x_addr == 131096bv64); const {:extern} $z_addr: bv64; -axiom ($z_addr == 69684bv64); +axiom ($z_addr == 131092bv64); function {:extern} L(mem$in: [bv64]bv8, index: bv64) returns (bool) { (if (index == $x_addr) then (memory_load32_le(mem$in, $z_addr) == 0bv32) else (if (index == $z_addr) then true else false)) } @@ -45,18 +39,17 @@ function {:extern} memory_store32_le(memory: [bv64]bv8, index: bv64, value: bv32 memory[index := value[8:0]][bvadd64(index, 1bv64) := value[16:8]][bvadd64(index, 2bv64) := value[24:16]][bvadd64(index, 3bv64) := value[32:24]] } -function {:extern} {:bvbuiltin "zero_extend 32"} zero_extend32_32(bv32) returns (bv64); procedure {:extern} rely(); modifies Gamma_mem, mem; ensures (forall i: bv64 :: (((mem[i] == old(mem[i])) ==> (Gamma_mem[i] == old(Gamma_mem[i]))))); ensures ((memory_load32_le(mem, $z_addr) == old(memory_load32_le(mem, $z_addr))) && (memory_load32_le(mem, $x_addr) == old(memory_load32_le(mem, $x_addr)))); - free ensures (memory_load32_le(mem, 1956bv64) == 131073bv32); - free ensures (memory_load64_le(mem, 69048bv64) == 1872bv64); - free ensures (memory_load64_le(mem, 69056bv64) == 1792bv64); - free ensures (memory_load64_le(mem, 69568bv64) == 69684bv64); - free ensures (memory_load64_le(mem, 69576bv64) == 69688bv64); - free ensures (memory_load64_le(mem, 69592bv64) == 1876bv64); - free ensures (memory_load64_le(mem, 69672bv64) == 69672bv64); + free ensures (memory_load32_le(mem, 2312bv64) == 131073bv32); + free ensures (memory_load64_le(mem, 130424bv64) == 2256bv64); + free ensures (memory_load64_le(mem, 130432bv64) == 2176bv64); + free ensures (memory_load64_le(mem, 131032bv64) == 131092bv64); + free ensures (memory_load64_le(mem, 131040bv64) == 131096bv64); + free ensures (memory_load64_le(mem, 131056bv64) == 2260bv64); + free ensures (memory_load64_le(mem, 131080bv64) == 131080bv64); procedure {:extern} rely_transitive(); modifies Gamma_mem, mem; @@ -83,97 +76,68 @@ implementation {:extern} guarantee_reflexive() assert ((memory_load32_le(mem, $z_addr) == 0bv32) ==> ((memory_load32_le(mem, $x_addr) == memory_load32_le(mem, $x_addr)) && (memory_load32_le(mem, $z_addr) == memory_load32_le(mem, $z_addr)))); } -procedure main_1876(); - modifies Gamma_R0, Gamma_R10, Gamma_R31, Gamma_R8, Gamma_R9, Gamma_mem, Gamma_stack, R0, R10, R31, R8, R9, mem, stack; +procedure main(); + modifies Gamma_R0, Gamma_R8, Gamma_R9, Gamma_mem, R0, R8, R9, mem; requires (memory_load32_le(mem, $z_addr) != 0bv32); requires (Gamma_R0 == false); - free requires (memory_load64_le(mem, 69664bv64) == 0bv64); - free requires (memory_load64_le(mem, 69672bv64) == 69672bv64); - free requires (memory_load32_le(mem, 1956bv64) == 131073bv32); - free requires (memory_load64_le(mem, 69048bv64) == 1872bv64); - free requires (memory_load64_le(mem, 69056bv64) == 1792bv64); - free requires (memory_load64_le(mem, 69568bv64) == 69684bv64); - free requires (memory_load64_le(mem, 69576bv64) == 69688bv64); - free requires (memory_load64_le(mem, 69592bv64) == 1876bv64); - free requires (memory_load64_le(mem, 69672bv64) == 69672bv64); - free ensures (Gamma_R31 == old(Gamma_R31)); - free ensures (R31 == old(R31)); - free ensures (memory_load32_le(mem, 1956bv64) == 131073bv32); - free ensures (memory_load64_le(mem, 69048bv64) == 1872bv64); - free ensures (memory_load64_le(mem, 69056bv64) == 1792bv64); - free ensures (memory_load64_le(mem, 69568bv64) == 69684bv64); - free ensures (memory_load64_le(mem, 69576bv64) == 69688bv64); - free ensures (memory_load64_le(mem, 69592bv64) == 1876bv64); - free ensures (memory_load64_le(mem, 69672bv64) == 69672bv64); - -implementation main_1876() + free requires (memory_load64_le(mem, 131072bv64) == 0bv64); + free requires (memory_load64_le(mem, 131080bv64) == 131080bv64); + free requires (memory_load32_le(mem, 2312bv64) == 131073bv32); + free requires (memory_load64_le(mem, 130424bv64) == 2256bv64); + free requires (memory_load64_le(mem, 130432bv64) == 2176bv64); + free requires (memory_load64_le(mem, 131032bv64) == 131092bv64); + free requires (memory_load64_le(mem, 131040bv64) == 131096bv64); + free requires (memory_load64_le(mem, 131056bv64) == 2260bv64); + free requires (memory_load64_le(mem, 131080bv64) == 131080bv64); + free ensures (memory_load32_le(mem, 2312bv64) == 131073bv32); + free ensures (memory_load64_le(mem, 130424bv64) == 2256bv64); + free ensures (memory_load64_le(mem, 130432bv64) == 2176bv64); + free ensures (memory_load64_le(mem, 131032bv64) == 131092bv64); + free ensures (memory_load64_le(mem, 131040bv64) == 131096bv64); + free ensures (memory_load64_le(mem, 131056bv64) == 2260bv64); + free ensures (memory_load64_le(mem, 131080bv64) == 131080bv64); + +implementation main() { - var Gamma_load12: bool; - var Gamma_load13: bool; - var Gamma_load14: bool; + var $load5: bv64; + var $load6: bv64; + var Gamma_$load5: bool; + var Gamma_$load6: bool; var Gamma_x_old: bool; - var load12: bv64; - var load13: bv32; - var load14: bv64; var x_old: bv32; var z_old: bv32; - main_1876__0__cNrtTmfQST221cdIXFneVA: - assume {:captureState "main_1876__0__cNrtTmfQST221cdIXFneVA"} true; - R31, Gamma_R31 := bvadd64(R31, 18446744073709551600bv64), Gamma_R31; - stack, Gamma_stack := memory_store32_le(stack, bvadd64(R31, 12bv64), R0[32:0]), gamma_store32(Gamma_stack, bvadd64(R31, 12bv64), Gamma_R0); - assume {:captureState "1880_0"} true; - R8, Gamma_R8 := 65536bv64, true; + $main$__0__$D9t2gNJrSmyMH3GAVRe3IQ: + assume {:captureState "$main$__0__$D9t2gNJrSmyMH3GAVRe3IQ"} true; + R8, Gamma_R8 := 126976bv64, true; + R9, Gamma_R9 := 126976bv64, true; + R0, Gamma_R0 := 0bv64, true; call rely(); - load12, Gamma_load12 := memory_load64_le(mem, bvadd64(R8, 4032bv64)), (gamma_load64(Gamma_mem, bvadd64(R8, 4032bv64)) || L(mem, bvadd64(R8, 4032bv64))); - R8, Gamma_R8 := load12, Gamma_load12; - R9, Gamma_R9 := 1bv64, true; + $load5, Gamma_$load5 := memory_load64_le(mem, bvadd64(R8, 4064bv64)), (gamma_load64(Gamma_mem, bvadd64(R8, 4064bv64)) || L(mem, bvadd64(R8, 4064bv64))); + R8, Gamma_R8 := $load5, Gamma_$load5; call rely(); - z_old := memory_load32_le(mem, $z_addr); - x_old := memory_load32_le(mem, $x_addr); - Gamma_x_old := (gamma_load32(Gamma_mem, $x_addr) || L(mem, $x_addr)); - assert (L(mem, R8) ==> Gamma_R9); - mem, Gamma_mem := memory_store32_le(mem, R8, R9[32:0]), gamma_store32(Gamma_mem, R8, Gamma_R9); - assert ((R8 == $z_addr) ==> (L(mem, $x_addr) ==> Gamma_x_old)); - assert ((z_old == 0bv32) ==> ((memory_load32_le(mem, $x_addr) == x_old) && (memory_load32_le(mem, $z_addr) == z_old))); - assume {:captureState "1896_0"} true; - load13, Gamma_load13 := memory_load32_le(stack, bvadd64(R31, 12bv64)), gamma_load32(Gamma_stack, bvadd64(R31, 12bv64)); - R10, Gamma_R10 := zero_extend32_32(load13), Gamma_load13; - R9, Gamma_R9 := 65536bv64, true; - call rely(); - load14, Gamma_load14 := memory_load64_le(mem, bvadd64(R9, 4040bv64)), (gamma_load64(Gamma_mem, bvadd64(R9, 4040bv64)) || L(mem, bvadd64(R9, 4040bv64))); - R9, Gamma_R9 := load14, Gamma_load14; + $load6, Gamma_$load6 := memory_load64_le(mem, bvadd64(R9, 4056bv64)), (gamma_load64(Gamma_mem, bvadd64(R9, 4056bv64)) || L(mem, bvadd64(R9, 4056bv64))); + R9, Gamma_R9 := $load6, Gamma_$load6; call rely(); + assert (L(mem, R8) ==> true); z_old := memory_load32_le(mem, $z_addr); x_old := memory_load32_le(mem, $x_addr); Gamma_x_old := (gamma_load32(Gamma_mem, $x_addr) || L(mem, $x_addr)); - assert (L(mem, R9) ==> Gamma_R10); - mem, Gamma_mem := memory_store32_le(mem, R9, R10[32:0]), gamma_store32(Gamma_mem, R9, Gamma_R10); - assert ((R9 == $z_addr) ==> (L(mem, $x_addr) ==> Gamma_x_old)); + mem, Gamma_mem := memory_store32_le(mem, R8, 0bv32), gamma_store32(Gamma_mem, R8, true); + assert ((R8 == $z_addr) ==> (L(mem, $x_addr) ==> Gamma_x_old)); assert ((z_old == 0bv32) ==> ((memory_load32_le(mem, $x_addr) == x_old) && (memory_load32_le(mem, $z_addr) == z_old))); - assume {:captureState "1912_0"} true; - R0, Gamma_R0 := 0bv64, true; + assume {:captureState "2280$0"} true; call rely(); + assert (L(mem, R9) ==> true); z_old := memory_load32_le(mem, $z_addr); x_old := memory_load32_le(mem, $x_addr); Gamma_x_old := (gamma_load32(Gamma_mem, $x_addr) || L(mem, $x_addr)); - assert (L(mem, R9) ==> true); mem, Gamma_mem := memory_store32_le(mem, R9, 0bv32), gamma_store32(Gamma_mem, R9, true); assert ((R9 == $z_addr) ==> (L(mem, $x_addr) ==> Gamma_x_old)); assert ((z_old == 0bv32) ==> ((memory_load32_le(mem, $x_addr) == x_old) && (memory_load32_le(mem, $z_addr) == z_old))); - assume {:captureState "1920_0"} true; - call rely(); - z_old := memory_load32_le(mem, $z_addr); - x_old := memory_load32_le(mem, $x_addr); - Gamma_x_old := (gamma_load32(Gamma_mem, $x_addr) || L(mem, $x_addr)); - assert (L(mem, R8) ==> true); - mem, Gamma_mem := memory_store32_le(mem, R8, 0bv32), gamma_store32(Gamma_mem, R8, true); - assert ((R8 == $z_addr) ==> (L(mem, $x_addr) ==> Gamma_x_old)); - assert ((z_old == 0bv32) ==> ((memory_load32_le(mem, $x_addr) == x_old) && (memory_load32_le(mem, $z_addr) == z_old))); - assume {:captureState "1924_0"} true; - R31, Gamma_R31 := bvadd64(R31, 16bv64), Gamma_R31; - goto main_1876_basil_return; - main_1876_basil_return: - assume {:captureState "main_1876_basil_return"} true; + assume {:captureState "2284$0"} true; + goto main_basil_return; + main_basil_return: + assume {:captureState "main_basil_return"} true; return; } diff --git a/src/test/correct/basic_lock_security_write/gcc/basic_lock_security_write.adt b/src/test/correct/basic_lock_security_write/gcc/basic_lock_security_write.adt deleted file mode 100644 index ca301b08e..000000000 --- a/src/test/correct/basic_lock_security_write/gcc/basic_lock_security_write.adt +++ /dev/null @@ -1,530 +0,0 @@ -Project(Attrs([Attr("filename","\"gcc/basic_lock_security_write.out\""), -Attr("image-specification","(declare abi (name str))\n(declare arch (name str))\n(declare base-address (addr int))\n(declare bias (off int))\n(declare bits (size int))\n(declare code-region (addr int) (size int) (off int))\n(declare code-start (addr int))\n(declare entry-point (addr int))\n(declare external-reference (addr int) (name str))\n(declare format (name str))\n(declare is-executable (flag bool))\n(declare is-little-endian (flag bool))\n(declare llvm:base-address (addr int))\n(declare llvm:code-entry (name str) (off int) (size int))\n(declare llvm:coff-import-library (name str))\n(declare llvm:coff-virtual-section-header (name str) (addr int) (size int))\n(declare llvm:elf-program-header (name str) (off int) (size int))\n(declare llvm:elf-program-header-flags (name str) (ld bool) (r bool) \n (w bool) (x bool))\n(declare llvm:elf-virtual-program-header (name str) (addr int) (size int))\n(declare llvm:entry-point (addr int))\n(declare llvm:macho-symbol (name str) (value int))\n(declare llvm:name-reference (at int) (name str))\n(declare llvm:relocation (at int) (addr int))\n(declare llvm:section-entry (name str) (addr int) (size int) (off int))\n(declare llvm:section-flags (name str) (r bool) (w bool) (x bool))\n(declare llvm:segment-command (name str) (off int) (size int))\n(declare llvm:segment-command-flags (name str) (r bool) (w bool) (x bool))\n(declare llvm:symbol-entry (name str) (addr int) (size int) (off int)\n (value int))\n(declare llvm:virtual-segment-command (name str) (addr int) (size int))\n(declare mapped (addr int) (size int) (off int))\n(declare named-region (addr int) (size int) (name str))\n(declare named-symbol (addr int) (name str))\n(declare require (name str))\n(declare section (addr int) (size int))\n(declare segment (addr int) (size int) (r bool) (w bool) (x bool))\n(declare subarch (name str))\n(declare symbol-chunk (addr int) (size int) (root int))\n(declare symbol-value (addr int) (value int))\n(declare system (name str))\n(declare vendor (name str))\n\n(abi unknown)\n(arch aarch64)\n(base-address 0)\n(bias 0)\n(bits 64)\n(code-region 1888 20 1888)\n(code-region 1536 352 1536)\n(code-region 1440 96 1440)\n(code-region 1408 24 1408)\n(code-start 1588)\n(code-start 1536)\n(code-start 1812)\n(entry-point 1536)\n(external-reference 69592 _ITM_deregisterTMCloneTable)\n(external-reference 69600 __cxa_finalize)\n(external-reference 69608 __gmon_start__)\n(external-reference 69624 _ITM_registerTMCloneTable)\n(external-reference 69552 __libc_start_main)\n(external-reference 69560 __cxa_finalize)\n(external-reference 69568 __gmon_start__)\n(external-reference 69576 abort)\n(format elf)\n(is-executable true)\n(is-little-endian true)\n(llvm:base-address 0)\n(llvm:code-entry abort 0 0)\n(llvm:code-entry __cxa_finalize 0 0)\n(llvm:code-entry __libc_start_main 0 0)\n(llvm:code-entry _init 1408 0)\n(llvm:code-entry main 1812 76)\n(llvm:code-entry _start 1536 52)\n(llvm:code-entry abort@GLIBC_2.17 0 0)\n(llvm:code-entry _fini 1888 0)\n(llvm:code-entry __cxa_finalize@GLIBC_2.17 0 0)\n(llvm:code-entry __libc_start_main@GLIBC_2.34 0 0)\n(llvm:code-entry frame_dummy 1808 0)\n(llvm:code-entry __do_global_dtors_aux 1728 0)\n(llvm:code-entry register_tm_clones 1664 0)\n(llvm:code-entry deregister_tm_clones 1616 0)\n(llvm:code-entry call_weak_fn 1588 20)\n(llvm:code-entry .fini 1888 20)\n(llvm:code-entry .text 1536 352)\n(llvm:code-entry .plt 1440 96)\n(llvm:code-entry .init 1408 24)\n(llvm:elf-program-header 08 3480 616)\n(llvm:elf-program-header 07 0 0)\n(llvm:elf-program-header 06 1912 60)\n(llvm:elf-program-header 05 596 68)\n(llvm:elf-program-header 04 3496 496)\n(llvm:elf-program-header 03 3480 632)\n(llvm:elf-program-header 02 0 2140)\n(llvm:elf-program-header 01 568 27)\n(llvm:elf-program-header 00 64 504)\n(llvm:elf-program-header-flags 08 false true false false)\n(llvm:elf-program-header-flags 07 false true true false)\n(llvm:elf-program-header-flags 06 false true false false)\n(llvm:elf-program-header-flags 05 false true false false)\n(llvm:elf-program-header-flags 04 false true true false)\n(llvm:elf-program-header-flags 03 true true true false)\n(llvm:elf-program-header-flags 02 true true false true)\n(llvm:elf-program-header-flags 01 false true false false)\n(llvm:elf-program-header-flags 00 false true false false)\n(llvm:elf-virtual-program-header 08 69016 616)\n(llvm:elf-virtual-program-header 07 0 0)\n(llvm:elf-virtual-program-header 06 1912 60)\n(llvm:elf-virtual-program-header 05 596 68)\n(llvm:elf-virtual-program-header 04 69032 496)\n(llvm:elf-virtual-program-header 03 69016 648)\n(llvm:elf-virtual-program-header 02 0 2140)\n(llvm:elf-virtual-program-header 01 568 27)\n(llvm:elf-virtual-program-header 00 64 504)\n(llvm:entry-point 1536)\n(llvm:name-reference 69576 abort)\n(llvm:name-reference 69568 __gmon_start__)\n(llvm:name-reference 69560 __cxa_finalize)\n(llvm:name-reference 69552 __libc_start_main)\n(llvm:name-reference 69624 _ITM_registerTMCloneTable)\n(llvm:name-reference 69608 __gmon_start__)\n(llvm:name-reference 69600 __cxa_finalize)\n(llvm:name-reference 69592 _ITM_deregisterTMCloneTable)\n(llvm:section-entry .shstrtab 0 250 6859)\n(llvm:section-entry .strtab 0 563 6296)\n(llvm:section-entry .symtab 0 2136 4160)\n(llvm:section-entry .comment 0 43 4112)\n(llvm:section-entry .bss 69648 16 4112)\n(llvm:section-entry .data 69632 16 4096)\n(llvm:section-entry .got 69528 104 3992)\n(llvm:section-entry .dynamic 69032 496 3496)\n(llvm:section-entry .fini_array 69024 8 3488)\n(llvm:section-entry .init_array 69016 8 3480)\n(llvm:section-entry .eh_frame 1976 164 1976)\n(llvm:section-entry .eh_frame_hdr 1912 60 1912)\n(llvm:section-entry .rodata 1908 4 1908)\n(llvm:section-entry .fini 1888 20 1888)\n(llvm:section-entry .text 1536 352 1536)\n(llvm:section-entry .plt 1440 96 1440)\n(llvm:section-entry .init 1408 24 1408)\n(llvm:section-entry .rela.plt 1312 96 1312)\n(llvm:section-entry .rela.dyn 1120 192 1120)\n(llvm:section-entry .gnu.version_r 1072 48 1072)\n(llvm:section-entry .gnu.version 1054 18 1054)\n(llvm:section-entry .dynstr 912 141 912)\n(llvm:section-entry .dynsym 696 216 696)\n(llvm:section-entry .gnu.hash 664 28 664)\n(llvm:section-entry .note.ABI-tag 632 32 632)\n(llvm:section-entry .note.gnu.build-id 596 36 596)\n(llvm:section-entry .interp 568 27 568)\n(llvm:section-flags .shstrtab true false false)\n(llvm:section-flags .strtab true false false)\n(llvm:section-flags .symtab true false false)\n(llvm:section-flags .comment true false false)\n(llvm:section-flags .bss true true false)\n(llvm:section-flags .data true true false)\n(llvm:section-flags .got true true false)\n(llvm:section-flags .dynamic true true false)\n(llvm:section-flags .fini_array true true false)\n(llvm:section-flags .init_array true true false)\n(llvm:section-flags .eh_frame true false false)\n(llvm:section-flags .eh_frame_hdr true false false)\n(llvm:section-flags .rodata true false false)\n(llvm:section-flags .fini true false true)\n(llvm:section-flags .text true false true)\n(llvm:section-flags .plt true false true)\n(llvm:section-flags .init true false true)\n(llvm:section-flags .rela.plt true false false)\n(llvm:section-flags .rela.dyn true false false)\n(llvm:section-flags .gnu.version_r true false false)\n(llvm:section-flags .gnu.version true false false)\n(llvm:section-flags .dynstr true false false)\n(llvm:section-flags .dynsym true false false)\n(llvm:section-flags .gnu.hash true false false)\n(llvm:section-flags .note.ABI-tag true false false)\n(llvm:section-flags .note.gnu.build-id true false false)\n(llvm:section-flags .interp true false false)\n(llvm:symbol-entry abort 0 0 0 0)\n(llvm:symbol-entry __cxa_finalize 0 0 0 0)\n(llvm:symbol-entry __libc_start_main 0 0 0 0)\n(llvm:symbol-entry _init 1408 0 1408 1408)\n(llvm:symbol-entry main 1812 76 1812 1812)\n(llvm:symbol-entry _start 1536 52 1536 1536)\n(llvm:symbol-entry abort@GLIBC_2.17 0 0 0 0)\n(llvm:symbol-entry _fini 1888 0 1888 1888)\n(llvm:symbol-entry __cxa_finalize@GLIBC_2.17 0 0 0 0)\n(llvm:symbol-entry __libc_start_main@GLIBC_2.34 0 0 0 0)\n(llvm:symbol-entry frame_dummy 1808 0 1808 1808)\n(llvm:symbol-entry __do_global_dtors_aux 1728 0 1728 1728)\n(llvm:symbol-entry register_tm_clones 1664 0 1664 1664)\n(llvm:symbol-entry deregister_tm_clones 1616 0 1616 1616)\n(llvm:symbol-entry call_weak_fn 1588 20 1588 1588)\n(mapped 0 2140 0)\n(mapped 69016 632 3480)\n(named-region 0 2140 02)\n(named-region 69016 648 03)\n(named-region 568 27 .interp)\n(named-region 596 36 .note.gnu.build-id)\n(named-region 632 32 .note.ABI-tag)\n(named-region 664 28 .gnu.hash)\n(named-region 696 216 .dynsym)\n(named-region 912 141 .dynstr)\n(named-region 1054 18 .gnu.version)\n(named-region 1072 48 .gnu.version_r)\n(named-region 1120 192 .rela.dyn)\n(named-region 1312 96 .rela.plt)\n(named-region 1408 24 .init)\n(named-region 1440 96 .plt)\n(named-region 1536 352 .text)\n(named-region 1888 20 .fini)\n(named-region 1908 4 .rodata)\n(named-region 1912 60 .eh_frame_hdr)\n(named-region 1976 164 .eh_frame)\n(named-region 69016 8 .init_array)\n(named-region 69024 8 .fini_array)\n(named-region 69032 496 .dynamic)\n(named-region 69528 104 .got)\n(named-region 69632 16 .data)\n(named-region 69648 16 .bss)\n(named-region 0 43 .comment)\n(named-region 0 2136 .symtab)\n(named-region 0 563 .strtab)\n(named-region 0 250 .shstrtab)\n(named-symbol 1588 call_weak_fn)\n(named-symbol 1616 deregister_tm_clones)\n(named-symbol 1664 register_tm_clones)\n(named-symbol 1728 __do_global_dtors_aux)\n(named-symbol 1808 frame_dummy)\n(named-symbol 0 __libc_start_main@GLIBC_2.34)\n(named-symbol 0 __cxa_finalize@GLIBC_2.17)\n(named-symbol 1888 _fini)\n(named-symbol 0 abort@GLIBC_2.17)\n(named-symbol 1536 _start)\n(named-symbol 1812 main)\n(named-symbol 1408 _init)\n(named-symbol 0 __libc_start_main)\n(named-symbol 0 __cxa_finalize)\n(named-symbol 0 abort)\n(require libc.so.6)\n(section 568 27)\n(section 596 36)\n(section 632 32)\n(section 664 28)\n(section 696 216)\n(section 912 141)\n(section 1054 18)\n(section 1072 48)\n(section 1120 192)\n(section 1312 96)\n(section 1408 24)\n(section 1440 96)\n(section 1536 352)\n(section 1888 20)\n(section 1908 4)\n(section 1912 60)\n(section 1976 164)\n(section 69016 8)\n(section 69024 8)\n(section 69032 496)\n(section 69528 104)\n(section 69632 16)\n(section 69648 16)\n(section 0 43)\n(section 0 2136)\n(section 0 563)\n(section 0 250)\n(segment 0 2140 true false true)\n(segment 69016 648 true true false)\n(subarch v8)\n(symbol-chunk 1588 20 1588)\n(symbol-chunk 1536 52 1536)\n(symbol-chunk 1812 76 1812)\n(symbol-value 1588 1588)\n(symbol-value 1616 1616)\n(symbol-value 1664 1664)\n(symbol-value 1728 1728)\n(symbol-value 1808 1808)\n(symbol-value 1888 1888)\n(symbol-value 1536 1536)\n(symbol-value 1812 1812)\n(symbol-value 1408 1408)\n(symbol-value 0 0)\n(system \"\")\n(vendor \"\")\n"), -Attr("abi-name","\"aarch64-linux-gnu-elf\"")]), -Sections([Section(".shstrtab", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x00\x06\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xc8\x1b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x38\x00\x09\x00\x40\x00\x1c\x00\x1b\x00\x06\x00\x00\x00\x04\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x04\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5c\x08\x00\x00\x00\x00\x00\x00\x5c\x08\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x01\x00\x00\x00\x06\x00\x00\x00\x98\x0d\x00\x00\x00\x00\x00\x00\x98\x0d"), -Section(".strtab", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x00\x06\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xc8\x1b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x38\x00\x09\x00\x40\x00\x1c\x00\x1b\x00\x06\x00\x00\x00\x04\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x04\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5c\x08\x00\x00\x00\x00\x00\x00\x5c\x08\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x01\x00\x00\x00\x06\x00\x00\x00\x98\x0d\x00\x00\x00\x00\x00\x00\x98\x0d\x01\x00\x00\x00\x00\x00\x98\x0d\x01\x00\x00\x00\x00\x00\x78\x02\x00\x00\x00\x00\x00\x00\x88\x02\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x02\x00\x00\x00\x06\x00\x00\x00\xa8\x0d\x00\x00\x00\x00\x00\x00\xa8\x0d\x01\x00\x00\x00\x00\x00\xa8\x0d\x01\x00\x00\x00\x00\x00\xf0\x01\x00\x00\x00\x00\x00\x00\xf0\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x04\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x50\xe5\x74\x64\x04\x00\x00\x00\x78\x07\x00\x00\x00\x00\x00\x00\x78\x07\x00\x00\x00\x00\x00\x00\x78\x07\x00\x00\x00\x00\x00\x00\x3c\x00\x00\x00\x00\x00\x00\x00\x3c\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x51\xe5\x74\x64\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x52\xe5\x74\x64\x04\x00\x00\x00\x98\x0d\x00\x00\x00\x00\x00\x00\x98\x0d\x01\x00\x00\x00\x00\x00\x98\x0d\x01\x00\x00\x00\x00\x00\x68\x02\x00\x00\x00\x00\x00\x00\x68\x02\x00\x00\x00\x00\x00\x00\x01\x00\x00"), -Section(".symtab", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x00\x06\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xc8\x1b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x38\x00\x09\x00\x40\x00\x1c\x00\x1b\x00\x06\x00\x00\x00\x04\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x04\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5c\x08\x00\x00\x00\x00\x00\x00\x5c\x08\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x01\x00\x00\x00\x06\x00\x00\x00\x98\x0d\x00\x00\x00\x00\x00\x00\x98\x0d\x01\x00\x00\x00\x00\x00\x98\x0d\x01\x00\x00\x00\x00\x00\x78\x02\x00\x00\x00\x00\x00\x00\x88\x02\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x02\x00\x00\x00\x06\x00\x00\x00\xa8\x0d\x00\x00\x00\x00\x00\x00\xa8\x0d\x01\x00\x00\x00\x00\x00\xa8\x0d\x01\x00\x00\x00\x00\x00\xf0\x01\x00\x00\x00\x00\x00\x00\xf0\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x04\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x50\xe5\x74\x64\x04\x00\x00\x00\x78\x07\x00\x00\x00\x00\x00\x00\x78\x07\x00\x00\x00\x00\x00\x00\x78\x07\x00\x00\x00\x00\x00\x00\x3c\x00\x00\x00\x00\x00\x00\x00\x3c\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x51\xe5\x74\x64\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x52\xe5\x74\x64\x04\x00\x00\x00\x98\x0d\x00\x00\x00\x00\x00\x00\x98\x0d\x01\x00\x00\x00\x00\x00\x98\x0d\x01\x00\x00\x00\x00\x00\x68\x02\x00\x00\x00\x00\x00\x00\x68\x02\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x2f\x6c\x69\x62\x2f\x6c\x64\x2d\x6c\x69\x6e\x75\x78\x2d\x61\x61\x72\x63\x68\x36\x34\x2e\x73\x6f\x2e\x31\x00\x00\x04\x00\x00\x00\x14\x00\x00\x00\x03\x00\x00\x00\x47\x4e\x55\x00\xea\x79\x16\x15\x30\x6a\xc1\x2c\x17\x2d\x22\x5e\x59\x2a\x99\x3d\xf0\x51\x22\x2b\x04\x00\x00\x00\x10\x00\x00\x00\x01\x00\x00\x00\x47\x4e\x55\x00\x00\x00\x00\x00\x03\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x01\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x0b\x00\x80\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x16\x00\x00\x10\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x48\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x22\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x22\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x73\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5f\x5f\x63\x78\x61\x5f\x66\x69\x6e\x61\x6c\x69\x7a\x65\x00\x5f\x5f\x6c\x69\x62\x63\x5f\x73\x74\x61\x72\x74\x5f\x6d\x61\x69\x6e\x00\x61\x62\x6f\x72\x74\x00\x6c\x69\x62\x63\x2e\x73\x6f\x2e\x36\x00\x47\x4c\x49\x42\x43\x5f\x32\x2e\x31\x37\x00\x47\x4c\x49\x42\x43\x5f\x32\x2e\x33\x34\x00\x5f\x49\x54\x4d\x5f\x64\x65\x72\x65\x67\x69\x73\x74\x65\x72\x54\x4d\x43\x6c\x6f\x6e\x65\x54\x61\x62\x6c\x65\x00\x5f\x5f\x67\x6d\x6f\x6e\x5f\x73\x74\x61\x72\x74\x5f\x5f\x00\x5f\x49\x54\x4d\x5f\x72\x65\x67\x69\x73\x74\x65\x72\x54\x4d\x43\x6c\x6f\x6e\x65\x54\x61\x62\x6c\x65\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x01\x00\x03\x00\x01\x00\x03\x00\x01\x00\x01\x00\x02\x00\x28\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x97\x91\x96\x06\x00\x00\x03\x00\x32\x00\x00\x00\x10\x00\x00\x00\xb4\x91\x96\x06\x00\x00\x02\x00\x3d\x00\x00\x00\x00\x00\x00\x00\x98\x0d\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x10\x07\x00\x00\x00\x00\x00\x00\xa0\x0d\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\xc0\x06\x00\x00\x00\x00\x00\x00\xf0\x0f\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x14\x07\x00\x00\x00\x00\x00\x00\x08\x10\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x08\x10\x01\x00\x00\x00\x00\x00\xd8\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe0\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe8\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xf8\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xb0\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xb8\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xc0\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xc8\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1f\x20\x03\xd5\xfd\x7b\xbf\xa9\xfd\x03\x00\x91\x2a\x00\x00\x94\xfd\x7b\xc1\xa8\xc0\x03\x5f\xd6\x00\x00\x00\x00\x00\x00\x00\x00\xf0\x7b\xbf\xa9\x90\x00\x00\x90\x11\xd6\x47\xf9\x10\xa2\x3e\x91\x20\x02\x1f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x90\x00\x00\x90\x11\xda\x47\xf9\x10\xc2\x3e\x91\x20\x02\x1f\xd6\x90\x00\x00\x90\x11\xde\x47\xf9\x10\xe2\x3e\x91\x20\x02\x1f\xd6\x90\x00\x00\x90\x11\xe2\x47\xf9\x10\x02\x3f\x91\x20\x02\x1f\xd6\x90\x00\x00\x90\x11\xe6\x47\xf9\x10\x22\x3f\x91\x20\x02\x1f\xd6\x1f\x20\x03\xd5\x1d\x00\x80\xd2\x1e\x00\x80\xd2\xe5\x03\x00\xaa\xe1\x03\x40\xf9\xe2\x23\x00\x91\xe6\x03\x00\x91\x80\x00\x00\x90\x00\xf8\x47\xf9\x03\x00\x80\xd2\x04\x00\x80\xd2\xe5\xff\xff\x97\xf0\xff\xff\x97\x80\x00\x00\x90\x00\xf4\x47\xf9\x40\x00\x00\xb4\xe8\xff\xff\x17\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x80\x00\x00\xb0\x00\x40\x00\x91\x81\x00\x00\xb0\x21\x40\x00\x91\x3f\x00\x00\xeb\xc0\x00\x00\x54\x81\x00\x00\x90\x21\xec\x47\xf9\x61\x00\x00\xb4\xf0\x03\x01\xaa\x00\x02\x1f\xd6\xc0\x03\x5f\xd6\x80\x00\x00\xb0\x00\x40\x00\x91\x81\x00\x00\xb0\x21\x40\x00\x91\x21\x00\x00\xcb\x22\xfc\x7f\xd3\x41\x0c\x81\x8b\x21\xfc\x41\x93\xc1\x00\x00\xb4\x82\x00\x00\x90\x42\xfc\x47\xf9\x62\x00\x00\xb4\xf0\x03\x02\xaa\x00\x02\x1f\xd6\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\xfd\x7b\xbe\xa9\xfd\x03\x00\x91\xf3\x0b\x00\xf9\x93\x00\x00\xb0\x60\x42\x40\x39\x40\x01\x00\x35\x80\x00\x00\x90\x00\xf0\x47\xf9\x80\x00\x00\xb4\x80\x00\x00\xb0\x00\x04\x40\xf9\xb9\xff\xff\x97\xd8\xff\xff\x97\x20\x00\x80\x52\x60\x42\x00\x39\xf3\x0b\x40\xf9\xfd\x7b\xc2\xa8\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\xdc\xff\xff\x17\xff\x43\x00\xd1\xe0\x0f\x00\xb9\x80\x00\x00\xb0\x00\x60\x00\x91\x21\x00\x80\x52\x01\x00\x00\xb9\x80\x00\x00\xb0\x00\x50\x00\x91\xe1\x0f\x40\xb9\x01\x00\x00\xb9\x80\x00\x00\xb0\x00\x50\x00\x91\x1f\x00\x00\xb9\x80\x00\x00\xb0\x00\x60\x00\x91\x1f\x00\x00\xb9\x00\x00\x80\x52\xff\x43\x00\x91\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\xfd\x7b\xbf\xa9\xfd\x03\x00\x91\xfd\x7b\xc1\xa8\xc0\x03\x5f\xd6\x01\x00\x02\x00\x01\x1b\x03\x3b\x3c\x00\x00\x00\x06\x00\x00\x00\x88\xfe\xff\xff\x54\x00\x00\x00\xd8\xfe\xff\xff\x68\x00\x00\x00\x08\xff\xff\xff\x7c\x00\x00\x00\x48\xff\xff\xff\x90\x00\x00\x00\x98\xff\xff\xff\xb4\x00\x00\x00\x9c\xff\xff\xff\xc8\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x01\x7a\x52\x00\x04\x78\x1e\x01\x1b\x0c\x1f\x00\x10\x00\x00\x00\x18\x00\x00\x00\x2c\xfe\xff\xff\x34\x00\x00\x00\x00\x41\x07\x1e\x10\x00\x00\x00\x2c\x00\x00\x00\x68\xfe\xff\xff\x30\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x40\x00\x00\x00\x84\xfe\xff\xff\x3c\x00\x00\x00\x00\x00\x00\x00\x20\x00\x00\x00\x54\x00\x00\x00\xb0\xfe\xff\xff\x48\x00\x00\x00\x00\x41\x0e\x20\x9d\x04\x9e\x03\x42\x93\x02\x4e\xde\xdd\xd3\x0e\x00\x00\x00\x00\x10\x00\x00\x00\x78\x00\x00\x00\xdc\xfe\xff\xff\x04\x00\x00\x00\x00\x00\x00\x00\x14\x00\x00\x00\x8c\x00\x00\x00\xcc\xfe\xff\xff\x4c\x00\x00\x00\x00\x41\x0e\x10\x51\x0e\x00\x00"), -Section(".comment", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x00\x06\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xc8\x1b\x00"), -Section(".interp", 0x238, "\x2f\x6c\x69\x62\x2f\x6c\x64\x2d\x6c\x69\x6e\x75\x78\x2d\x61\x61\x72\x63\x68\x36\x34\x2e\x73\x6f\x2e\x31\x00"), -Section(".note.gnu.build-id", 0x254, "\x04\x00\x00\x00\x14\x00\x00\x00\x03\x00\x00\x00\x47\x4e\x55\x00\xea\x79\x16\x15\x30\x6a\xc1\x2c\x17\x2d\x22\x5e\x59\x2a\x99\x3d\xf0\x51\x22\x2b"), -Section(".note.ABI-tag", 0x278, "\x04\x00\x00\x00\x10\x00\x00\x00\x01\x00\x00\x00\x47\x4e\x55\x00\x00\x00\x00\x00\x03\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00"), -Section(".gnu.hash", 0x298, "\x01\x00\x00\x00\x01\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".dynsym", 0x2B8, "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x0b\x00\x80\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x16\x00\x00\x10\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x48\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x22\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x22\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x73\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".dynstr", 0x390, "\x00\x5f\x5f\x63\x78\x61\x5f\x66\x69\x6e\x61\x6c\x69\x7a\x65\x00\x5f\x5f\x6c\x69\x62\x63\x5f\x73\x74\x61\x72\x74\x5f\x6d\x61\x69\x6e\x00\x61\x62\x6f\x72\x74\x00\x6c\x69\x62\x63\x2e\x73\x6f\x2e\x36\x00\x47\x4c\x49\x42\x43\x5f\x32\x2e\x31\x37\x00\x47\x4c\x49\x42\x43\x5f\x32\x2e\x33\x34\x00\x5f\x49\x54\x4d\x5f\x64\x65\x72\x65\x67\x69\x73\x74\x65\x72\x54\x4d\x43\x6c\x6f\x6e\x65\x54\x61\x62\x6c\x65\x00\x5f\x5f\x67\x6d\x6f\x6e\x5f\x73\x74\x61\x72\x74\x5f\x5f\x00\x5f\x49\x54\x4d\x5f\x72\x65\x67\x69\x73\x74\x65\x72\x54\x4d\x43\x6c\x6f\x6e\x65\x54\x61\x62\x6c\x65\x00"), -Section(".gnu.version", 0x41E, "\x00\x00\x00\x00\x00\x00\x02\x00\x01\x00\x03\x00\x01\x00\x03\x00\x01\x00"), -Section(".gnu.version_r", 0x430, "\x01\x00\x02\x00\x28\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x97\x91\x96\x06\x00\x00\x03\x00\x32\x00\x00\x00\x10\x00\x00\x00\xb4\x91\x96\x06\x00\x00\x02\x00\x3d\x00\x00\x00\x00\x00\x00\x00"), -Section(".rela.dyn", 0x460, "\x98\x0d\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x10\x07\x00\x00\x00\x00\x00\x00\xa0\x0d\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\xc0\x06\x00\x00\x00\x00\x00\x00\xf0\x0f\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x14\x07\x00\x00\x00\x00\x00\x00\x08\x10\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x08\x10\x01\x00\x00\x00\x00\x00\xd8\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe0\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe8\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xf8\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".rela.plt", 0x520, "\xb0\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xb8\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xc0\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xc8\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".init", 0x580, "\x1f\x20\x03\xd5\xfd\x7b\xbf\xa9\xfd\x03\x00\x91\x2a\x00\x00\x94\xfd\x7b\xc1\xa8\xc0\x03\x5f\xd6"), -Section(".plt", 0x5A0, "\xf0\x7b\xbf\xa9\x90\x00\x00\x90\x11\xd6\x47\xf9\x10\xa2\x3e\x91\x20\x02\x1f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x90\x00\x00\x90\x11\xda\x47\xf9\x10\xc2\x3e\x91\x20\x02\x1f\xd6\x90\x00\x00\x90\x11\xde\x47\xf9\x10\xe2\x3e\x91\x20\x02\x1f\xd6\x90\x00\x00\x90\x11\xe2\x47\xf9\x10\x02\x3f\x91\x20\x02\x1f\xd6\x90\x00\x00\x90\x11\xe6\x47\xf9\x10\x22\x3f\x91\x20\x02\x1f\xd6"), -Section(".fini", 0x760, "\x1f\x20\x03\xd5\xfd\x7b\xbf\xa9\xfd\x03\x00\x91\xfd\x7b\xc1\xa8\xc0\x03\x5f\xd6"), -Section(".rodata", 0x774, "\x01\x00\x02\x00"), -Section(".eh_frame_hdr", 0x778, "\x01\x1b\x03\x3b\x3c\x00\x00\x00\x06\x00\x00\x00\x88\xfe\xff\xff\x54\x00\x00\x00\xd8\xfe\xff\xff\x68\x00\x00\x00\x08\xff\xff\xff\x7c\x00\x00\x00\x48\xff\xff\xff\x90\x00\x00\x00\x98\xff\xff\xff\xb4\x00\x00\x00\x9c\xff\xff\xff\xc8\x00\x00\x00"), -Section(".eh_frame", 0x7B8, "\x10\x00\x00\x00\x00\x00\x00\x00\x01\x7a\x52\x00\x04\x78\x1e\x01\x1b\x0c\x1f\x00\x10\x00\x00\x00\x18\x00\x00\x00\x2c\xfe\xff\xff\x34\x00\x00\x00\x00\x41\x07\x1e\x10\x00\x00\x00\x2c\x00\x00\x00\x68\xfe\xff\xff\x30\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x40\x00\x00\x00\x84\xfe\xff\xff\x3c\x00\x00\x00\x00\x00\x00\x00\x20\x00\x00\x00\x54\x00\x00\x00\xb0\xfe\xff\xff\x48\x00\x00\x00\x00\x41\x0e\x20\x9d\x04\x9e\x03\x42\x93\x02\x4e\xde\xdd\xd3\x0e\x00\x00\x00\x00\x10\x00\x00\x00\x78\x00\x00\x00\xdc\xfe\xff\xff\x04\x00\x00\x00\x00\x00\x00\x00\x14\x00\x00\x00\x8c\x00\x00\x00\xcc\xfe\xff\xff\x4c\x00\x00\x00\x00\x41\x0e\x10\x51\x0e\x00\x00\x00\x00\x00\x00"), -Section(".fini_array", 0x10DA0, "\xc0\x06\x00\x00\x00\x00\x00\x00"), -Section(".dynamic", 0x10DA8, "\x01\x00\x00\x00\x00\x00\x00\x00\x28\x00\x00\x00\x00\x00\x00\x00\x0c\x00\x00\x00\x00\x00\x00\x00\x80\x05\x00\x00\x00\x00\x00\x00\x0d\x00\x00\x00\x00\x00\x00\x00\x60\x07\x00\x00\x00\x00\x00\x00\x19\x00\x00\x00\x00\x00\x00\x00\x98\x0d\x01\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x1a\x00\x00\x00\x00\x00\x00\x00\xa0\x0d\x01\x00\x00\x00\x00\x00\x1c\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\xf5\xfe\xff\x6f\x00\x00\x00\x00\x98\x02\x00\x00\x00\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x90\x03\x00\x00\x00\x00\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\xb8\x02\x00\x00\x00\x00\x00\x00\x0a\x00\x00\x00\x00\x00\x00\x00\x8d\x00\x00\x00\x00\x00\x00\x00\x0b\x00\x00\x00\x00\x00\x00\x00\x18\x00\x00\x00\x00\x00\x00\x00\x15\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x98\x0f\x01\x00\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x60\x00\x00\x00\x00\x00\x00\x00\x14\x00\x00\x00\x00\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x17\x00\x00\x00\x00\x00\x00\x00\x20\x05\x00\x00\x00\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x60\x04\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\xc0\x00\x00\x00\x00\x00\x00\x00\x09\x00\x00\x00\x00\x00\x00\x00\x18\x00\x00\x00\x00\x00\x00\x00\x1e\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\xfb\xff\xff\x6f\x00\x00\x00\x00\x01\x00\x00\x08\x00\x00\x00\x00\xfe\xff\xff\x6f\x00\x00\x00\x00\x30\x04\x00\x00\x00\x00\x00\x00\xff\xff\xff\x6f\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\xf0\xff\xff\x6f\x00\x00\x00\x00\x1e\x04\x00\x00\x00\x00\x00\x00\xf9\xff\xff\x6f\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".got", 0x10F98, "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xa0\x05\x00\x00\x00\x00\x00\x00\xa0\x05\x00\x00\x00\x00\x00\x00\xa0\x05\x00\x00\x00\x00\x00\x00\xa0\x05\x00\x00\x00\x00\x00\x00\xa8\x0d\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x14\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".data", 0x11000, "\x00\x00\x00\x00\x00\x00\x00\x00\x08\x10\x01\x00\x00\x00\x00\x00"), -Section(".init_array", 0x10D98, "\x10\x07\x00\x00\x00\x00\x00\x00"), -Section(".text", 0x600, "\x1f\x20\x03\xd5\x1d\x00\x80\xd2\x1e\x00\x80\xd2\xe5\x03\x00\xaa\xe1\x03\x40\xf9\xe2\x23\x00\x91\xe6\x03\x00\x91\x80\x00\x00\x90\x00\xf8\x47\xf9\x03\x00\x80\xd2\x04\x00\x80\xd2\xe5\xff\xff\x97\xf0\xff\xff\x97\x80\x00\x00\x90\x00\xf4\x47\xf9\x40\x00\x00\xb4\xe8\xff\xff\x17\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x80\x00\x00\xb0\x00\x40\x00\x91\x81\x00\x00\xb0\x21\x40\x00\x91\x3f\x00\x00\xeb\xc0\x00\x00\x54\x81\x00\x00\x90\x21\xec\x47\xf9\x61\x00\x00\xb4\xf0\x03\x01\xaa\x00\x02\x1f\xd6\xc0\x03\x5f\xd6\x80\x00\x00\xb0\x00\x40\x00\x91\x81\x00\x00\xb0\x21\x40\x00\x91\x21\x00\x00\xcb\x22\xfc\x7f\xd3\x41\x0c\x81\x8b\x21\xfc\x41\x93\xc1\x00\x00\xb4\x82\x00\x00\x90\x42\xfc\x47\xf9\x62\x00\x00\xb4\xf0\x03\x02\xaa\x00\x02\x1f\xd6\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\xfd\x7b\xbe\xa9\xfd\x03\x00\x91\xf3\x0b\x00\xf9\x93\x00\x00\xb0\x60\x42\x40\x39\x40\x01\x00\x35\x80\x00\x00\x90\x00\xf0\x47\xf9\x80\x00\x00\xb4\x80\x00\x00\xb0\x00\x04\x40\xf9\xb9\xff\xff\x97\xd8\xff\xff\x97\x20\x00\x80\x52\x60\x42\x00\x39\xf3\x0b\x40\xf9\xfd\x7b\xc2\xa8\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\xdc\xff\xff\x17\xff\x43\x00\xd1\xe0\x0f\x00\xb9\x80\x00\x00\xb0\x00\x60\x00\x91\x21\x00\x80\x52\x01\x00\x00\xb9\x80\x00\x00\xb0\x00\x50\x00\x91\xe1\x0f\x40\xb9\x01\x00\x00\xb9\x80\x00\x00\xb0\x00\x50\x00\x91\x1f\x00\x00\xb9\x80\x00\x00\xb0\x00\x60\x00\x91\x1f\x00\x00\xb9\x00\x00\x80\x52\xff\x43\x00\x91\xc0\x03\x5f\xd6")]), -Memmap([Annotation(Region(0x0,0x85B), Attr("segment","02 0 2140")), -Annotation(Region(0x600,0x633), Attr("symbol","\"_start\"")), -Annotation(Region(0x0,0xF9), Attr("section","\".shstrtab\"")), -Annotation(Region(0x0,0x232), Attr("section","\".strtab\"")), -Annotation(Region(0x0,0x857), Attr("section","\".symtab\"")), -Annotation(Region(0x0,0x2A), Attr("section","\".comment\"")), -Annotation(Region(0x238,0x252), Attr("section","\".interp\"")), -Annotation(Region(0x254,0x277), Attr("section","\".note.gnu.build-id\"")), -Annotation(Region(0x278,0x297), Attr("section","\".note.ABI-tag\"")), -Annotation(Region(0x298,0x2B3), Attr("section","\".gnu.hash\"")), -Annotation(Region(0x2B8,0x38F), Attr("section","\".dynsym\"")), -Annotation(Region(0x390,0x41C), Attr("section","\".dynstr\"")), -Annotation(Region(0x41E,0x42F), Attr("section","\".gnu.version\"")), -Annotation(Region(0x430,0x45F), Attr("section","\".gnu.version_r\"")), -Annotation(Region(0x460,0x51F), Attr("section","\".rela.dyn\"")), -Annotation(Region(0x520,0x57F), Attr("section","\".rela.plt\"")), -Annotation(Region(0x580,0x597), Attr("section","\".init\"")), -Annotation(Region(0x5A0,0x5FF), Attr("section","\".plt\"")), -Annotation(Region(0x580,0x597), Attr("code-region","()")), -Annotation(Region(0x5A0,0x5FF), Attr("code-region","()")), -Annotation(Region(0x600,0x633), Attr("symbol-info","_start 0x600 52")), -Annotation(Region(0x634,0x647), Attr("symbol","\"call_weak_fn\"")), -Annotation(Region(0x634,0x647), Attr("symbol-info","call_weak_fn 0x634 20")), -Annotation(Region(0x714,0x75F), Attr("symbol","\"main\"")), -Annotation(Region(0x714,0x75F), Attr("symbol-info","main 0x714 76")), -Annotation(Region(0x760,0x773), Attr("section","\".fini\"")), -Annotation(Region(0x774,0x777), Attr("section","\".rodata\"")), -Annotation(Region(0x778,0x7B3), Attr("section","\".eh_frame_hdr\"")), -Annotation(Region(0x7B8,0x85B), Attr("section","\".eh_frame\"")), -Annotation(Region(0x10D98,0x1100F), Attr("segment","03 0x10D98 648")), -Annotation(Region(0x10DA0,0x10DA7), Attr("section","\".fini_array\"")), -Annotation(Region(0x10DA8,0x10F97), Attr("section","\".dynamic\"")), -Annotation(Region(0x10F98,0x10FFF), Attr("section","\".got\"")), -Annotation(Region(0x11000,0x1100F), Attr("section","\".data\"")), -Annotation(Region(0x10D98,0x10D9F), Attr("section","\".init_array\"")), -Annotation(Region(0x600,0x75F), Attr("section","\".text\"")), -Annotation(Region(0x600,0x75F), Attr("code-region","()")), -Annotation(Region(0x760,0x773), Attr("code-region","()"))]), -Program(Tid(1_589, "%00000635"), Attrs([]), - Subs([Sub(Tid(1_539, "@__cxa_finalize"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x5D0"), -Attr("stub","()")]), "__cxa_finalize", Args([Arg(Tid(1_590, "%00000636"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("__cxa_finalize_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(929, "@__cxa_finalize"), - Attrs([Attr("address","0x5D0")]), Phis([]), -Defs([Def(Tid(1_177, "%00000499"), Attrs([Attr("address","0x5D0"), -Attr("insn","adrp x16, #65536")]), Var("R16",Imm(64)), Int(65536,64)), -Def(Tid(1_184, "%000004a0"), Attrs([Attr("address","0x5D4"), -Attr("insn","ldr x17, [x16, #0xfb8]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(4024,64)),LittleEndian(),64)), -Def(Tid(1_190, "%000004a6"), Attrs([Attr("address","0x5D8"), -Attr("insn","add x16, x16, #0xfb8")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(4024,64)))]), Jmps([Call(Tid(1_195, "%000004ab"), - Attrs([Attr("address","0x5DC"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), -Sub(Tid(1_540, "@__do_global_dtors_aux"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x6C0")]), - "__do_global_dtors_aux", Args([Arg(Tid(1_591, "%00000637"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("__do_global_dtors_aux_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(666, "@__do_global_dtors_aux"), - Attrs([Attr("address","0x6C0")]), Phis([]), Defs([Def(Tid(670, "%0000029e"), - Attrs([Attr("address","0x6C0"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("#3",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(18446744073709551584,64))), -Def(Tid(676, "%000002a4"), Attrs([Attr("address","0x6C0"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("#3",Imm(64)),Var("R29",Imm(64)),LittleEndian(),64)), -Def(Tid(682, "%000002aa"), Attrs([Attr("address","0x6C0"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("#3",Imm(64)),Int(8,64)),Var("R30",Imm(64)),LittleEndian(),64)), -Def(Tid(686, "%000002ae"), Attrs([Attr("address","0x6C0"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("R31",Imm(64)), -Var("#3",Imm(64))), Def(Tid(692, "%000002b4"), - Attrs([Attr("address","0x6C4"), Attr("insn","mov x29, sp")]), - Var("R29",Imm(64)), Var("R31",Imm(64))), Def(Tid(700, "%000002bc"), - Attrs([Attr("address","0x6C8"), Attr("insn","str x19, [sp, #0x10]")]), - Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(16,64)),Var("R19",Imm(64)),LittleEndian(),64)), -Def(Tid(705, "%000002c1"), Attrs([Attr("address","0x6CC"), -Attr("insn","adrp x19, #69632")]), Var("R19",Imm(64)), Int(69632,64)), -Def(Tid(712, "%000002c8"), Attrs([Attr("address","0x6D0"), -Attr("insn","ldrb w0, [x19, #0x10]")]), Var("R0",Imm(64)), -UNSIGNED(64,Load(Var("mem",Mem(64,8)),PLUS(Var("R19",Imm(64)),Int(16,64)),LittleEndian(),8)))]), -Jmps([Goto(Tid(719, "%000002cf"), Attrs([Attr("address","0x6D4"), -Attr("insn","cbnz w0, #0x28")]), - NEQ(Extract(31,0,Var("R0",Imm(64))),Int(0,32)), -Direct(Tid(717, "%000002cd"))), Goto(Tid(1_579, "%0000062b"), Attrs([]), - Int(1,1), Direct(Tid(874, "%0000036a")))])), Blk(Tid(874, "%0000036a"), - Attrs([Attr("address","0x6D8")]), Phis([]), Defs([Def(Tid(877, "%0000036d"), - Attrs([Attr("address","0x6D8"), Attr("insn","adrp x0, #65536")]), - Var("R0",Imm(64)), Int(65536,64)), Def(Tid(884, "%00000374"), - Attrs([Attr("address","0x6DC"), Attr("insn","ldr x0, [x0, #0xfe0]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(4064,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(890, "%0000037a"), Attrs([Attr("address","0x6E0"), -Attr("insn","cbz x0, #0x10")]), EQ(Var("R0",Imm(64)),Int(0,64)), -Direct(Tid(888, "%00000378"))), Goto(Tid(1_580, "%0000062c"), Attrs([]), - Int(1,1), Direct(Tid(913, "%00000391")))])), Blk(Tid(913, "%00000391"), - Attrs([Attr("address","0x6E4")]), Phis([]), Defs([Def(Tid(916, "%00000394"), - Attrs([Attr("address","0x6E4"), Attr("insn","adrp x0, #69632")]), - Var("R0",Imm(64)), Int(69632,64)), Def(Tid(923, "%0000039b"), - Attrs([Attr("address","0x6E8"), Attr("insn","ldr x0, [x0, #0x8]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(928, "%000003a0"), Attrs([Attr("address","0x6EC"), -Attr("insn","bl #-0x11c")]), Var("R30",Imm(64)), Int(1776,64))]), -Jmps([Call(Tid(931, "%000003a3"), Attrs([Attr("address","0x6EC"), -Attr("insn","bl #-0x11c")]), Int(1,1), -(Direct(Tid(1_539, "@__cxa_finalize")),Direct(Tid(888, "%00000378"))))])), -Blk(Tid(888, "%00000378"), Attrs([Attr("address","0x6F0")]), Phis([]), -Defs([Def(Tid(896, "%00000380"), Attrs([Attr("address","0x6F0"), -Attr("insn","bl #-0xa0")]), Var("R30",Imm(64)), Int(1780,64))]), -Jmps([Call(Tid(898, "%00000382"), Attrs([Attr("address","0x6F0"), -Attr("insn","bl #-0xa0")]), Int(1,1), -(Direct(Tid(1_553, "@deregister_tm_clones")),Direct(Tid(900, "%00000384"))))])), -Blk(Tid(900, "%00000384"), Attrs([Attr("address","0x6F4")]), Phis([]), -Defs([Def(Tid(903, "%00000387"), Attrs([Attr("address","0x6F4"), -Attr("insn","mov w0, #0x1")]), Var("R0",Imm(64)), Int(1,64)), -Def(Tid(911, "%0000038f"), Attrs([Attr("address","0x6F8"), -Attr("insn","strb w0, [x19, #0x10]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R19",Imm(64)),Int(16,64)),Extract(7,0,Var("R0",Imm(64))),LittleEndian(),8))]), -Jmps([Goto(Tid(1_581, "%0000062d"), Attrs([]), Int(1,1), -Direct(Tid(717, "%000002cd")))])), Blk(Tid(717, "%000002cd"), - Attrs([Attr("address","0x6FC")]), Phis([]), Defs([Def(Tid(727, "%000002d7"), - Attrs([Attr("address","0x6FC"), Attr("insn","ldr x19, [sp, #0x10]")]), - Var("R19",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(16,64)),LittleEndian(),64)), -Def(Tid(734, "%000002de"), Attrs([Attr("address","0x700"), -Attr("insn","ldp x29, x30, [sp], #0x20")]), Var("R29",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(739, "%000002e3"), Attrs([Attr("address","0x700"), -Attr("insn","ldp x29, x30, [sp], #0x20")]), Var("R30",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(743, "%000002e7"), Attrs([Attr("address","0x700"), -Attr("insn","ldp x29, x30, [sp], #0x20")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(32,64)))]), Jmps([Call(Tid(748, "%000002ec"), - Attrs([Attr("address","0x704"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), Sub(Tid(1_544, "@__libc_start_main"), - Attrs([Attr("c.proto","signed (*)(signed (*)(signed , char** , char** );* main, signed , char** , \nvoid* auxv)"), -Attr("address","0x5C0"), Attr("stub","()")]), "__libc_start_main", - Args([Arg(Tid(1_592, "%00000638"), - Attrs([Attr("c.layout","**[ : 64]"), -Attr("c.data","Top:u64 ptr ptr"), -Attr("c.type","signed (*)(signed , char** , char** );*")]), - Var("__libc_start_main_main",Imm(64)), Var("R0",Imm(64)), In()), -Arg(Tid(1_593, "%00000639"), Attrs([Attr("c.layout","[signed : 32]"), -Attr("c.data","Top:u32"), Attr("c.type","signed")]), - Var("__libc_start_main_arg2",Imm(32)), LOW(32,Var("R1",Imm(64))), In()), -Arg(Tid(1_594, "%0000063a"), Attrs([Attr("c.layout","**[char : 8]"), -Attr("c.data","Top:u8 ptr ptr"), Attr("c.type","char**")]), - Var("__libc_start_main_arg3",Imm(64)), Var("R2",Imm(64)), Both()), -Arg(Tid(1_595, "%0000063b"), Attrs([Attr("c.layout","*[ : 8]"), -Attr("c.data","{} ptr"), Attr("c.type","void*")]), - Var("__libc_start_main_auxv",Imm(64)), Var("R3",Imm(64)), Both()), -Arg(Tid(1_596, "%0000063c"), Attrs([Attr("c.layout","[signed : 32]"), -Attr("c.data","Top:u32"), Attr("c.type","signed")]), - Var("__libc_start_main_result",Imm(32)), LOW(32,Var("R0",Imm(64))), -Out())]), Blks([Blk(Tid(499, "@__libc_start_main"), - Attrs([Attr("address","0x5C0")]), Phis([]), -Defs([Def(Tid(1_155, "%00000483"), Attrs([Attr("address","0x5C0"), -Attr("insn","adrp x16, #65536")]), Var("R16",Imm(64)), Int(65536,64)), -Def(Tid(1_162, "%0000048a"), Attrs([Attr("address","0x5C4"), -Attr("insn","ldr x17, [x16, #0xfb0]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(4016,64)),LittleEndian(),64)), -Def(Tid(1_168, "%00000490"), Attrs([Attr("address","0x5C8"), -Attr("insn","add x16, x16, #0xfb0")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(4016,64)))]), Jmps([Call(Tid(1_173, "%00000495"), - Attrs([Attr("address","0x5CC"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), Sub(Tid(1_545, "@_fini"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x760")]), - "_fini", Args([Arg(Tid(1_597, "%0000063d"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("_fini_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(31, "@_fini"), - Attrs([Attr("address","0x760")]), Phis([]), Defs([Def(Tid(37, "%00000025"), - Attrs([Attr("address","0x764"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("#0",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(18446744073709551600,64))), -Def(Tid(43, "%0000002b"), Attrs([Attr("address","0x764"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("#0",Imm(64)),Var("R29",Imm(64)),LittleEndian(),64)), -Def(Tid(49, "%00000031"), Attrs([Attr("address","0x764"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("#0",Imm(64)),Int(8,64)),Var("R30",Imm(64)),LittleEndian(),64)), -Def(Tid(53, "%00000035"), Attrs([Attr("address","0x764"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("R31",Imm(64)), -Var("#0",Imm(64))), Def(Tid(59, "%0000003b"), Attrs([Attr("address","0x768"), -Attr("insn","mov x29, sp")]), Var("R29",Imm(64)), Var("R31",Imm(64))), -Def(Tid(66, "%00000042"), Attrs([Attr("address","0x76C"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R29",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(71, "%00000047"), Attrs([Attr("address","0x76C"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R30",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(75, "%0000004b"), Attrs([Attr("address","0x76C"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(16,64)))]), Jmps([Call(Tid(80, "%00000050"), - Attrs([Attr("address","0x770"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), Sub(Tid(1_546, "@_init"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x580")]), - "_init", Args([Arg(Tid(1_598, "%0000063e"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("_init_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(1_362, "@_init"), - Attrs([Attr("address","0x580")]), Phis([]), -Defs([Def(Tid(1_368, "%00000558"), Attrs([Attr("address","0x584"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("#5",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(18446744073709551600,64))), -Def(Tid(1_374, "%0000055e"), Attrs([Attr("address","0x584"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("#5",Imm(64)),Var("R29",Imm(64)),LittleEndian(),64)), -Def(Tid(1_380, "%00000564"), Attrs([Attr("address","0x584"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("#5",Imm(64)),Int(8,64)),Var("R30",Imm(64)),LittleEndian(),64)), -Def(Tid(1_384, "%00000568"), Attrs([Attr("address","0x584"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("R31",Imm(64)), -Var("#5",Imm(64))), Def(Tid(1_390, "%0000056e"), - Attrs([Attr("address","0x588"), Attr("insn","mov x29, sp")]), - Var("R29",Imm(64)), Var("R31",Imm(64))), Def(Tid(1_395, "%00000573"), - Attrs([Attr("address","0x58C"), Attr("insn","bl #0xa8")]), - Var("R30",Imm(64)), Int(1424,64))]), Jmps([Call(Tid(1_397, "%00000575"), - Attrs([Attr("address","0x58C"), Attr("insn","bl #0xa8")]), Int(1,1), -(Direct(Tid(1_551, "@call_weak_fn")),Direct(Tid(1_399, "%00000577"))))])), -Blk(Tid(1_399, "%00000577"), Attrs([Attr("address","0x590")]), Phis([]), -Defs([Def(Tid(1_404, "%0000057c"), Attrs([Attr("address","0x590"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R29",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(1_409, "%00000581"), Attrs([Attr("address","0x590"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R30",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(1_413, "%00000585"), Attrs([Attr("address","0x590"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(16,64)))]), Jmps([Call(Tid(1_418, "%0000058a"), - Attrs([Attr("address","0x594"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), Sub(Tid(1_547, "@_start"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x600"), -Attr("stub","()"), Attr("entry-point","()")]), "_start", - Args([Arg(Tid(1_599, "%0000063f"), Attrs([Attr("c.layout","[signed : 32]"), -Attr("c.data","Top:u32"), Attr("c.type","signed")]), - Var("_start_result",Imm(32)), LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(436, "@_start"), Attrs([Attr("address","0x600")]), Phis([]), -Defs([Def(Tid(441, "%000001b9"), Attrs([Attr("address","0x604"), -Attr("insn","mov x29, #0x0")]), Var("R29",Imm(64)), Int(0,64)), -Def(Tid(446, "%000001be"), Attrs([Attr("address","0x608"), -Attr("insn","mov x30, #0x0")]), Var("R30",Imm(64)), Int(0,64)), -Def(Tid(452, "%000001c4"), Attrs([Attr("address","0x60C"), -Attr("insn","mov x5, x0")]), Var("R5",Imm(64)), Var("R0",Imm(64))), -Def(Tid(459, "%000001cb"), Attrs([Attr("address","0x610"), -Attr("insn","ldr x1, [sp]")]), Var("R1",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(465, "%000001d1"), Attrs([Attr("address","0x614"), -Attr("insn","add x2, sp, #0x8")]), Var("R2",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(8,64))), Def(Tid(471, "%000001d7"), - Attrs([Attr("address","0x618"), Attr("insn","mov x6, sp")]), - Var("R6",Imm(64)), Var("R31",Imm(64))), Def(Tid(476, "%000001dc"), - Attrs([Attr("address","0x61C"), Attr("insn","adrp x0, #65536")]), - Var("R0",Imm(64)), Int(65536,64)), Def(Tid(483, "%000001e3"), - Attrs([Attr("address","0x620"), Attr("insn","ldr x0, [x0, #0xff0]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(4080,64)),LittleEndian(),64)), -Def(Tid(488, "%000001e8"), Attrs([Attr("address","0x624"), -Attr("insn","mov x3, #0x0")]), Var("R3",Imm(64)), Int(0,64)), -Def(Tid(493, "%000001ed"), Attrs([Attr("address","0x628"), -Attr("insn","mov x4, #0x0")]), Var("R4",Imm(64)), Int(0,64)), -Def(Tid(498, "%000001f2"), Attrs([Attr("address","0x62C"), -Attr("insn","bl #-0x6c")]), Var("R30",Imm(64)), Int(1584,64))]), -Jmps([Call(Tid(501, "%000001f5"), Attrs([Attr("address","0x62C"), -Attr("insn","bl #-0x6c")]), Int(1,1), -(Direct(Tid(1_544, "@__libc_start_main")),Direct(Tid(503, "%000001f7"))))])), -Blk(Tid(503, "%000001f7"), Attrs([Attr("address","0x630")]), Phis([]), -Defs([Def(Tid(506, "%000001fa"), Attrs([Attr("address","0x630"), -Attr("insn","bl #-0x40")]), Var("R30",Imm(64)), Int(1588,64))]), -Jmps([Call(Tid(509, "%000001fd"), Attrs([Attr("address","0x630"), -Attr("insn","bl #-0x40")]), Int(1,1), -(Direct(Tid(1_550, "@abort")),Direct(Tid(1_582, "%0000062e"))))])), -Blk(Tid(1_582, "%0000062e"), Attrs([]), Phis([]), Defs([]), -Jmps([Call(Tid(1_583, "%0000062f"), Attrs([]), Int(1,1), -(Direct(Tid(1_551, "@call_weak_fn")),))]))])), Sub(Tid(1_550, "@abort"), - Attrs([Attr("noreturn","()"), Attr("c.proto","void (*)(void)"), -Attr("address","0x5F0"), Attr("stub","()")]), "abort", Args([]), -Blks([Blk(Tid(507, "@abort"), Attrs([Attr("address","0x5F0")]), Phis([]), -Defs([Def(Tid(1_221, "%000004c5"), Attrs([Attr("address","0x5F0"), -Attr("insn","adrp x16, #65536")]), Var("R16",Imm(64)), Int(65536,64)), -Def(Tid(1_228, "%000004cc"), Attrs([Attr("address","0x5F4"), -Attr("insn","ldr x17, [x16, #0xfc8]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(4040,64)),LittleEndian(),64)), -Def(Tid(1_234, "%000004d2"), Attrs([Attr("address","0x5F8"), -Attr("insn","add x16, x16, #0xfc8")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(4040,64)))]), Jmps([Call(Tid(1_239, "%000004d7"), - Attrs([Attr("address","0x5FC"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), Sub(Tid(1_551, "@call_weak_fn"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x634")]), - "call_weak_fn", Args([Arg(Tid(1_600, "%00000640"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("call_weak_fn_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(511, "@call_weak_fn"), - Attrs([Attr("address","0x634")]), Phis([]), Defs([Def(Tid(514, "%00000202"), - Attrs([Attr("address","0x634"), Attr("insn","adrp x0, #65536")]), - Var("R0",Imm(64)), Int(65536,64)), Def(Tid(521, "%00000209"), - Attrs([Attr("address","0x638"), Attr("insn","ldr x0, [x0, #0xfe8]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(4072,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(527, "%0000020f"), Attrs([Attr("address","0x63C"), -Attr("insn","cbz x0, #0x8")]), EQ(Var("R0",Imm(64)),Int(0,64)), -Direct(Tid(525, "%0000020d"))), Goto(Tid(1_584, "%00000630"), Attrs([]), - Int(1,1), Direct(Tid(993, "%000003e1")))])), Blk(Tid(525, "%0000020d"), - Attrs([Attr("address","0x644")]), Phis([]), Defs([]), -Jmps([Call(Tid(533, "%00000215"), Attrs([Attr("address","0x644"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))])), -Blk(Tid(993, "%000003e1"), Attrs([Attr("address","0x640")]), Phis([]), -Defs([]), Jmps([Goto(Tid(996, "%000003e4"), Attrs([Attr("address","0x640"), -Attr("insn","b #-0x60")]), Int(1,1), Direct(Tid(994, "@__gmon_start__")))])), -Blk(Tid(994, "@__gmon_start__"), Attrs([Attr("address","0x5E0")]), Phis([]), -Defs([Def(Tid(1_199, "%000004af"), Attrs([Attr("address","0x5E0"), -Attr("insn","adrp x16, #65536")]), Var("R16",Imm(64)), Int(65536,64)), -Def(Tid(1_206, "%000004b6"), Attrs([Attr("address","0x5E4"), -Attr("insn","ldr x17, [x16, #0xfc0]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(4032,64)),LittleEndian(),64)), -Def(Tid(1_212, "%000004bc"), Attrs([Attr("address","0x5E8"), -Attr("insn","add x16, x16, #0xfc0")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(4032,64)))]), Jmps([Call(Tid(1_217, "%000004c1"), - Attrs([Attr("address","0x5EC"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), -Sub(Tid(1_553, "@deregister_tm_clones"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x650")]), - "deregister_tm_clones", Args([Arg(Tid(1_601, "%00000641"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("deregister_tm_clones_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(539, "@deregister_tm_clones"), - Attrs([Attr("address","0x650")]), Phis([]), Defs([Def(Tid(542, "%0000021e"), - Attrs([Attr("address","0x650"), Attr("insn","adrp x0, #69632")]), - Var("R0",Imm(64)), Int(69632,64)), Def(Tid(548, "%00000224"), - Attrs([Attr("address","0x654"), Attr("insn","add x0, x0, #0x10")]), - Var("R0",Imm(64)), PLUS(Var("R0",Imm(64)),Int(16,64))), -Def(Tid(553, "%00000229"), Attrs([Attr("address","0x658"), -Attr("insn","adrp x1, #69632")]), Var("R1",Imm(64)), Int(69632,64)), -Def(Tid(559, "%0000022f"), Attrs([Attr("address","0x65C"), -Attr("insn","add x1, x1, #0x10")]), Var("R1",Imm(64)), -PLUS(Var("R1",Imm(64)),Int(16,64))), Def(Tid(565, "%00000235"), - Attrs([Attr("address","0x660"), Attr("insn","cmp x1, x0")]), - Var("#1",Imm(64)), NOT(Var("R0",Imm(64)))), Def(Tid(570, "%0000023a"), - Attrs([Attr("address","0x660"), Attr("insn","cmp x1, x0")]), - Var("#2",Imm(64)), PLUS(Var("R1",Imm(64)),NOT(Var("R0",Imm(64))))), -Def(Tid(576, "%00000240"), Attrs([Attr("address","0x660"), -Attr("insn","cmp x1, x0")]), Var("VF",Imm(1)), -NEQ(SIGNED(65,PLUS(Var("#2",Imm(64)),Int(1,64))),PLUS(PLUS(SIGNED(65,Var("R1",Imm(64))),SIGNED(65,Var("#1",Imm(64)))),Int(1,65)))), -Def(Tid(582, "%00000246"), Attrs([Attr("address","0x660"), -Attr("insn","cmp x1, x0")]), Var("CF",Imm(1)), -NEQ(UNSIGNED(65,PLUS(Var("#2",Imm(64)),Int(1,64))),PLUS(PLUS(UNSIGNED(65,Var("R1",Imm(64))),UNSIGNED(65,Var("#1",Imm(64)))),Int(1,65)))), -Def(Tid(586, "%0000024a"), Attrs([Attr("address","0x660"), -Attr("insn","cmp x1, x0")]), Var("ZF",Imm(1)), -EQ(PLUS(Var("#2",Imm(64)),Int(1,64)),Int(0,64))), Def(Tid(590, "%0000024e"), - Attrs([Attr("address","0x660"), Attr("insn","cmp x1, x0")]), - Var("NF",Imm(1)), Extract(63,63,PLUS(Var("#2",Imm(64)),Int(1,64))))]), -Jmps([Goto(Tid(596, "%00000254"), Attrs([Attr("address","0x664"), -Attr("insn","b.eq #0x18")]), EQ(Var("ZF",Imm(1)),Int(1,1)), -Direct(Tid(594, "%00000252"))), Goto(Tid(1_585, "%00000631"), Attrs([]), - Int(1,1), Direct(Tid(963, "%000003c3")))])), Blk(Tid(963, "%000003c3"), - Attrs([Attr("address","0x668")]), Phis([]), Defs([Def(Tid(966, "%000003c6"), - Attrs([Attr("address","0x668"), Attr("insn","adrp x1, #65536")]), - Var("R1",Imm(64)), Int(65536,64)), Def(Tid(973, "%000003cd"), - Attrs([Attr("address","0x66C"), Attr("insn","ldr x1, [x1, #0xfd8]")]), - Var("R1",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R1",Imm(64)),Int(4056,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(978, "%000003d2"), Attrs([Attr("address","0x670"), -Attr("insn","cbz x1, #0xc")]), EQ(Var("R1",Imm(64)),Int(0,64)), -Direct(Tid(594, "%00000252"))), Goto(Tid(1_586, "%00000632"), Attrs([]), - Int(1,1), Direct(Tid(982, "%000003d6")))])), Blk(Tid(594, "%00000252"), - Attrs([Attr("address","0x67C")]), Phis([]), Defs([]), -Jmps([Call(Tid(602, "%0000025a"), Attrs([Attr("address","0x67C"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))])), -Blk(Tid(982, "%000003d6"), Attrs([Attr("address","0x674")]), Phis([]), -Defs([Def(Tid(986, "%000003da"), Attrs([Attr("address","0x674"), -Attr("insn","mov x16, x1")]), Var("R16",Imm(64)), Var("R1",Imm(64)))]), -Jmps([Call(Tid(991, "%000003df"), Attrs([Attr("address","0x678"), -Attr("insn","br x16")]), Int(1,1), (Indirect(Var("R16",Imm(64))),))]))])), -Sub(Tid(1_556, "@frame_dummy"), Attrs([Attr("c.proto","signed (*)(void)"), -Attr("address","0x710")]), "frame_dummy", Args([Arg(Tid(1_602, "%00000642"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("frame_dummy_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(754, "@frame_dummy"), - Attrs([Attr("address","0x710")]), Phis([]), Defs([]), -Jmps([Call(Tid(756, "%000002f4"), Attrs([Attr("address","0x710"), -Attr("insn","b #-0x90")]), Int(1,1), -(Direct(Tid(1_558, "@register_tm_clones")),))]))])), Sub(Tid(1_557, "@main"), - Attrs([Attr("c.proto","signed (*)(signed argc, const char** argv)"), -Attr("address","0x714")]), "main", Args([Arg(Tid(1_603, "%00000643"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("main_argc",Imm(32)), -LOW(32,Var("R0",Imm(64))), In()), Arg(Tid(1_604, "%00000644"), - Attrs([Attr("c.layout","**[char : 8]"), Attr("c.data","Top:u8 ptr ptr"), -Attr("c.type"," const char**")]), Var("main_argv",Imm(64)), -Var("R1",Imm(64)), Both()), Arg(Tid(1_605, "%00000645"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("main_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(758, "@main"), - Attrs([Attr("address","0x714")]), Phis([]), Defs([Def(Tid(762, "%000002fa"), - Attrs([Attr("address","0x714"), Attr("insn","sub sp, sp, #0x10")]), - Var("R31",Imm(64)), PLUS(Var("R31",Imm(64)),Int(18446744073709551600,64))), -Def(Tid(770, "%00000302"), Attrs([Attr("address","0x718"), -Attr("insn","str w0, [sp, #0xc]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(12,64)),Extract(31,0,Var("R0",Imm(64))),LittleEndian(),32)), -Def(Tid(775, "%00000307"), Attrs([Attr("address","0x71C"), -Attr("insn","adrp x0, #69632")]), Var("R0",Imm(64)), Int(69632,64)), -Def(Tid(781, "%0000030d"), Attrs([Attr("address","0x720"), -Attr("insn","add x0, x0, #0x18")]), Var("R0",Imm(64)), -PLUS(Var("R0",Imm(64)),Int(24,64))), Def(Tid(786, "%00000312"), - Attrs([Attr("address","0x724"), Attr("insn","mov w1, #0x1")]), - Var("R1",Imm(64)), Int(1,64)), Def(Tid(794, "%0000031a"), - Attrs([Attr("address","0x728"), Attr("insn","str w1, [x0]")]), - Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("R0",Imm(64)),Extract(31,0,Var("R1",Imm(64))),LittleEndian(),32)), -Def(Tid(799, "%0000031f"), Attrs([Attr("address","0x72C"), -Attr("insn","adrp x0, #69632")]), Var("R0",Imm(64)), Int(69632,64)), -Def(Tid(805, "%00000325"), Attrs([Attr("address","0x730"), -Attr("insn","add x0, x0, #0x14")]), Var("R0",Imm(64)), -PLUS(Var("R0",Imm(64)),Int(20,64))), Def(Tid(812, "%0000032c"), - Attrs([Attr("address","0x734"), Attr("insn","ldr w1, [sp, #0xc]")]), - Var("R1",Imm(64)), -UNSIGNED(64,Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(12,64)),LittleEndian(),32))), -Def(Tid(820, "%00000334"), Attrs([Attr("address","0x738"), -Attr("insn","str w1, [x0]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("R0",Imm(64)),Extract(31,0,Var("R1",Imm(64))),LittleEndian(),32)), -Def(Tid(825, "%00000339"), Attrs([Attr("address","0x73C"), -Attr("insn","adrp x0, #69632")]), Var("R0",Imm(64)), Int(69632,64)), -Def(Tid(831, "%0000033f"), Attrs([Attr("address","0x740"), -Attr("insn","add x0, x0, #0x14")]), Var("R0",Imm(64)), -PLUS(Var("R0",Imm(64)),Int(20,64))), Def(Tid(838, "%00000346"), - Attrs([Attr("address","0x744"), Attr("insn","str wzr, [x0]")]), - Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("R0",Imm(64)),Int(0,32),LittleEndian(),32)), -Def(Tid(843, "%0000034b"), Attrs([Attr("address","0x748"), -Attr("insn","adrp x0, #69632")]), Var("R0",Imm(64)), Int(69632,64)), -Def(Tid(849, "%00000351"), Attrs([Attr("address","0x74C"), -Attr("insn","add x0, x0, #0x18")]), Var("R0",Imm(64)), -PLUS(Var("R0",Imm(64)),Int(24,64))), Def(Tid(856, "%00000358"), - Attrs([Attr("address","0x750"), Attr("insn","str wzr, [x0]")]), - Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("R0",Imm(64)),Int(0,32),LittleEndian(),32)), -Def(Tid(861, "%0000035d"), Attrs([Attr("address","0x754"), -Attr("insn","mov w0, #0x0")]), Var("R0",Imm(64)), Int(0,64)), -Def(Tid(867, "%00000363"), Attrs([Attr("address","0x758"), -Attr("insn","add sp, sp, #0x10")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(16,64)))]), Jmps([Call(Tid(872, "%00000368"), - Attrs([Attr("address","0x75C"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), -Sub(Tid(1_558, "@register_tm_clones"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x680")]), - "register_tm_clones", Args([Arg(Tid(1_606, "%00000646"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("register_tm_clones_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(604, "@register_tm_clones"), Attrs([Attr("address","0x680")]), - Phis([]), Defs([Def(Tid(607, "%0000025f"), Attrs([Attr("address","0x680"), -Attr("insn","adrp x0, #69632")]), Var("R0",Imm(64)), Int(69632,64)), -Def(Tid(613, "%00000265"), Attrs([Attr("address","0x684"), -Attr("insn","add x0, x0, #0x10")]), Var("R0",Imm(64)), -PLUS(Var("R0",Imm(64)),Int(16,64))), Def(Tid(618, "%0000026a"), - Attrs([Attr("address","0x688"), Attr("insn","adrp x1, #69632")]), - Var("R1",Imm(64)), Int(69632,64)), Def(Tid(624, "%00000270"), - Attrs([Attr("address","0x68C"), Attr("insn","add x1, x1, #0x10")]), - Var("R1",Imm(64)), PLUS(Var("R1",Imm(64)),Int(16,64))), -Def(Tid(631, "%00000277"), Attrs([Attr("address","0x690"), -Attr("insn","sub x1, x1, x0")]), Var("R1",Imm(64)), -PLUS(PLUS(Var("R1",Imm(64)),NOT(Var("R0",Imm(64)))),Int(1,64))), -Def(Tid(637, "%0000027d"), Attrs([Attr("address","0x694"), -Attr("insn","lsr x2, x1, #63")]), Var("R2",Imm(64)), -Concat(Int(0,63),Extract(63,63,Var("R1",Imm(64))))), -Def(Tid(644, "%00000284"), Attrs([Attr("address","0x698"), -Attr("insn","add x1, x2, x1, asr #3")]), Var("R1",Imm(64)), -PLUS(Var("R2",Imm(64)),ARSHIFT(Var("R1",Imm(64)),Int(3,3)))), -Def(Tid(650, "%0000028a"), Attrs([Attr("address","0x69C"), -Attr("insn","asr x1, x1, #1")]), Var("R1",Imm(64)), -SIGNED(64,Extract(63,1,Var("R1",Imm(64)))))]), -Jmps([Goto(Tid(656, "%00000290"), Attrs([Attr("address","0x6A0"), -Attr("insn","cbz x1, #0x18")]), EQ(Var("R1",Imm(64)),Int(0,64)), -Direct(Tid(654, "%0000028e"))), Goto(Tid(1_587, "%00000633"), Attrs([]), - Int(1,1), Direct(Tid(933, "%000003a5")))])), Blk(Tid(933, "%000003a5"), - Attrs([Attr("address","0x6A4")]), Phis([]), Defs([Def(Tid(936, "%000003a8"), - Attrs([Attr("address","0x6A4"), Attr("insn","adrp x2, #65536")]), - Var("R2",Imm(64)), Int(65536,64)), Def(Tid(943, "%000003af"), - Attrs([Attr("address","0x6A8"), Attr("insn","ldr x2, [x2, #0xff8]")]), - Var("R2",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R2",Imm(64)),Int(4088,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(948, "%000003b4"), Attrs([Attr("address","0x6AC"), -Attr("insn","cbz x2, #0xc")]), EQ(Var("R2",Imm(64)),Int(0,64)), -Direct(Tid(654, "%0000028e"))), Goto(Tid(1_588, "%00000634"), Attrs([]), - Int(1,1), Direct(Tid(952, "%000003b8")))])), Blk(Tid(654, "%0000028e"), - Attrs([Attr("address","0x6B8")]), Phis([]), Defs([]), -Jmps([Call(Tid(662, "%00000296"), Attrs([Attr("address","0x6B8"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))])), -Blk(Tid(952, "%000003b8"), Attrs([Attr("address","0x6B0")]), Phis([]), -Defs([Def(Tid(956, "%000003bc"), Attrs([Attr("address","0x6B0"), -Attr("insn","mov x16, x2")]), Var("R16",Imm(64)), Var("R2",Imm(64)))]), -Jmps([Call(Tid(961, "%000003c1"), Attrs([Attr("address","0x6B4"), -Attr("insn","br x16")]), Int(1,1), -(Indirect(Var("R16",Imm(64))),))]))]))]))) \ No newline at end of file diff --git a/src/test/correct/basic_lock_security_write/gcc/basic_lock_security_write.bir b/src/test/correct/basic_lock_security_write/gcc/basic_lock_security_write.bir deleted file mode 100644 index edee6379c..000000000 --- a/src/test/correct/basic_lock_security_write/gcc/basic_lock_security_write.bir +++ /dev/null @@ -1,241 +0,0 @@ -00000635: program -00000603: sub __cxa_finalize(__cxa_finalize_result) -00000636: __cxa_finalize_result :: out u32 = low:32[R0] - -000003a1: -00000499: R16 := 0x10000 -000004a0: R17 := mem[R16 + 0xFB8, el]:u64 -000004a6: R16 := R16 + 0xFB8 -000004ab: call R17 with noreturn - -00000604: sub __do_global_dtors_aux(__do_global_dtors_aux_result) -00000637: __do_global_dtors_aux_result :: out u32 = low:32[R0] - -0000029a: -0000029e: #3 := R31 - 0x20 -000002a4: mem := mem with [#3, el]:u64 <- R29 -000002aa: mem := mem with [#3 + 8, el]:u64 <- R30 -000002ae: R31 := #3 -000002b4: R29 := R31 -000002bc: mem := mem with [R31 + 0x10, el]:u64 <- R19 -000002c1: R19 := 0x11000 -000002c8: R0 := pad:64[mem[R19 + 0x10]] -000002cf: when 31:0[R0] <> 0 goto %000002cd -0000062b: goto %0000036a - -0000036a: -0000036d: R0 := 0x10000 -00000374: R0 := mem[R0 + 0xFE0, el]:u64 -0000037a: when R0 = 0 goto %00000378 -0000062c: goto %00000391 - -00000391: -00000394: R0 := 0x11000 -0000039b: R0 := mem[R0 + 8, el]:u64 -000003a0: R30 := 0x6F0 -000003a3: call @__cxa_finalize with return %00000378 - -00000378: -00000380: R30 := 0x6F4 -00000382: call @deregister_tm_clones with return %00000384 - -00000384: -00000387: R0 := 1 -0000038f: mem := mem with [R19 + 0x10] <- 7:0[R0] -0000062d: goto %000002cd - -000002cd: -000002d7: R19 := mem[R31 + 0x10, el]:u64 -000002de: R29 := mem[R31, el]:u64 -000002e3: R30 := mem[R31 + 8, el]:u64 -000002e7: R31 := R31 + 0x20 -000002ec: call R30 with noreturn - -00000608: sub __libc_start_main(__libc_start_main_main, __libc_start_main_arg2, __libc_start_main_arg3, __libc_start_main_auxv, __libc_start_main_result) -00000638: __libc_start_main_main :: in u64 = R0 -00000639: __libc_start_main_arg2 :: in u32 = low:32[R1] -0000063a: __libc_start_main_arg3 :: in out u64 = R2 -0000063b: __libc_start_main_auxv :: in out u64 = R3 -0000063c: __libc_start_main_result :: out u32 = low:32[R0] - -000001f3: -00000483: R16 := 0x10000 -0000048a: R17 := mem[R16 + 0xFB0, el]:u64 -00000490: R16 := R16 + 0xFB0 -00000495: call R17 with noreturn - -00000609: sub _fini(_fini_result) -0000063d: _fini_result :: out u32 = low:32[R0] - -0000001f: -00000025: #0 := R31 - 0x10 -0000002b: mem := mem with [#0, el]:u64 <- R29 -00000031: mem := mem with [#0 + 8, el]:u64 <- R30 -00000035: R31 := #0 -0000003b: R29 := R31 -00000042: R29 := mem[R31, el]:u64 -00000047: R30 := mem[R31 + 8, el]:u64 -0000004b: R31 := R31 + 0x10 -00000050: call R30 with noreturn - -0000060a: sub _init(_init_result) -0000063e: _init_result :: out u32 = low:32[R0] - -00000552: -00000558: #5 := R31 - 0x10 -0000055e: mem := mem with [#5, el]:u64 <- R29 -00000564: mem := mem with [#5 + 8, el]:u64 <- R30 -00000568: R31 := #5 -0000056e: R29 := R31 -00000573: R30 := 0x590 -00000575: call @call_weak_fn with return %00000577 - -00000577: -0000057c: R29 := mem[R31, el]:u64 -00000581: R30 := mem[R31 + 8, el]:u64 -00000585: R31 := R31 + 0x10 -0000058a: call R30 with noreturn - -0000060b: sub _start(_start_result) -0000063f: _start_result :: out u32 = low:32[R0] - -000001b4: -000001b9: R29 := 0 -000001be: R30 := 0 -000001c4: R5 := R0 -000001cb: R1 := mem[R31, el]:u64 -000001d1: R2 := R31 + 8 -000001d7: R6 := R31 -000001dc: R0 := 0x10000 -000001e3: R0 := mem[R0 + 0xFF0, el]:u64 -000001e8: R3 := 0 -000001ed: R4 := 0 -000001f2: R30 := 0x630 -000001f5: call @__libc_start_main with return %000001f7 - -000001f7: -000001fa: R30 := 0x634 -000001fd: call @abort with return %0000062e - -0000062e: -0000062f: call @call_weak_fn with noreturn - -0000060e: sub abort() - - -000001fb: -000004c5: R16 := 0x10000 -000004cc: R17 := mem[R16 + 0xFC8, el]:u64 -000004d2: R16 := R16 + 0xFC8 -000004d7: call R17 with noreturn - -0000060f: sub call_weak_fn(call_weak_fn_result) -00000640: call_weak_fn_result :: out u32 = low:32[R0] - -000001ff: -00000202: R0 := 0x10000 -00000209: R0 := mem[R0 + 0xFE8, el]:u64 -0000020f: when R0 = 0 goto %0000020d -00000630: goto %000003e1 - -0000020d: -00000215: call R30 with noreturn - -000003e1: -000003e4: goto @__gmon_start__ - -000003e2: -000004af: R16 := 0x10000 -000004b6: R17 := mem[R16 + 0xFC0, el]:u64 -000004bc: R16 := R16 + 0xFC0 -000004c1: call R17 with noreturn - -00000611: sub deregister_tm_clones(deregister_tm_clones_result) -00000641: deregister_tm_clones_result :: out u32 = low:32[R0] - -0000021b: -0000021e: R0 := 0x11000 -00000224: R0 := R0 + 0x10 -00000229: R1 := 0x11000 -0000022f: R1 := R1 + 0x10 -00000235: #1 := ~R0 -0000023a: #2 := R1 + ~R0 -00000240: VF := extend:65[#2 + 1] <> extend:65[R1] + extend:65[#1] + 1 -00000246: CF := pad:65[#2 + 1] <> pad:65[R1] + pad:65[#1] + 1 -0000024a: ZF := #2 + 1 = 0 -0000024e: NF := 63:63[#2 + 1] -00000254: when ZF goto %00000252 -00000631: goto %000003c3 - -000003c3: -000003c6: R1 := 0x10000 -000003cd: R1 := mem[R1 + 0xFD8, el]:u64 -000003d2: when R1 = 0 goto %00000252 -00000632: goto %000003d6 - -00000252: -0000025a: call R30 with noreturn - -000003d6: -000003da: R16 := R1 -000003df: call R16 with noreturn - -00000614: sub frame_dummy(frame_dummy_result) -00000642: frame_dummy_result :: out u32 = low:32[R0] - -000002f2: -000002f4: call @register_tm_clones with noreturn - -00000615: sub main(main_argc, main_argv, main_result) -00000643: main_argc :: in u32 = low:32[R0] -00000644: main_argv :: in out u64 = R1 -00000645: main_result :: out u32 = low:32[R0] - -000002f6: -000002fa: R31 := R31 - 0x10 -00000302: mem := mem with [R31 + 0xC, el]:u32 <- 31:0[R0] -00000307: R0 := 0x11000 -0000030d: R0 := R0 + 0x18 -00000312: R1 := 1 -0000031a: mem := mem with [R0, el]:u32 <- 31:0[R1] -0000031f: R0 := 0x11000 -00000325: R0 := R0 + 0x14 -0000032c: R1 := pad:64[mem[R31 + 0xC, el]:u32] -00000334: mem := mem with [R0, el]:u32 <- 31:0[R1] -00000339: R0 := 0x11000 -0000033f: R0 := R0 + 0x14 -00000346: mem := mem with [R0, el]:u32 <- 0 -0000034b: R0 := 0x11000 -00000351: R0 := R0 + 0x18 -00000358: mem := mem with [R0, el]:u32 <- 0 -0000035d: R0 := 0 -00000363: R31 := R31 + 0x10 -00000368: call R30 with noreturn - -00000616: sub register_tm_clones(register_tm_clones_result) -00000646: register_tm_clones_result :: out u32 = low:32[R0] - -0000025c: -0000025f: R0 := 0x11000 -00000265: R0 := R0 + 0x10 -0000026a: R1 := 0x11000 -00000270: R1 := R1 + 0x10 -00000277: R1 := R1 + ~R0 + 1 -0000027d: R2 := 0.63:63[R1] -00000284: R1 := R2 + (R1 ~>> 3) -0000028a: R1 := extend:64[63:1[R1]] -00000290: when R1 = 0 goto %0000028e -00000633: goto %000003a5 - -000003a5: -000003a8: R2 := 0x10000 -000003af: R2 := mem[R2 + 0xFF8, el]:u64 -000003b4: when R2 = 0 goto %0000028e -00000634: goto %000003b8 - -0000028e: -00000296: call R30 with noreturn - -000003b8: -000003bc: R16 := R2 -000003c1: call R16 with noreturn diff --git a/src/test/correct/basic_lock_security_write/gcc/basic_lock_security_write.expected b/src/test/correct/basic_lock_security_write/gcc/basic_lock_security_write.expected index 88f2ebc8e..94381b6bc 100644 --- a/src/test/correct/basic_lock_security_write/gcc/basic_lock_security_write.expected +++ b/src/test/correct/basic_lock_security_write/gcc/basic_lock_security_write.expected @@ -73,7 +73,7 @@ implementation {:extern} guarantee_reflexive() assert ((memory_load32_le(mem, $z_addr) == 0bv32) ==> ((memory_load32_le(mem, $x_addr) == memory_load32_le(mem, $x_addr)) && (memory_load32_le(mem, $z_addr) == memory_load32_le(mem, $z_addr)))); } -procedure main_1812(); +procedure main(); modifies Gamma_R0, Gamma_R1, Gamma_R31, Gamma_mem, Gamma_stack, R0, R1, R31, mem, stack; requires (memory_load32_le(mem, $z_addr) != 0bv32); requires (Gamma_R0 == false); @@ -92,11 +92,11 @@ procedure main_1812(); free ensures (memory_load64_le(mem, 69616bv64) == 1812bv64); free ensures (memory_load64_le(mem, 69640bv64) == 69640bv64); -implementation main_1812() +implementation main() { - var Gamma_load18: bool; + var $load$18: bv32; + var Gamma_$load$18: bool; var Gamma_x_old: bool; - var load18: bv32; var x_old: bv32; var z_old: bv32; lmain: @@ -108,23 +108,23 @@ implementation main_1812() R0, Gamma_R0 := bvadd64(R0, 24bv64), Gamma_R0; R1, Gamma_R1 := 1bv64, true; call rely(); + assert (L(mem, R0) ==> Gamma_R1); x_old := memory_load32_le(mem, $x_addr); z_old := memory_load32_le(mem, $z_addr); Gamma_x_old := (gamma_load32(Gamma_mem, $x_addr) || L(mem, $x_addr)); - assert (L(mem, R0) ==> Gamma_R1); mem, Gamma_mem := memory_store32_le(mem, R0, R1[32:0]), gamma_store32(Gamma_mem, R0, Gamma_R1); assert ((R0 == $z_addr) ==> (L(mem, $x_addr) ==> Gamma_x_old)); assert ((z_old == 0bv32) ==> ((memory_load32_le(mem, $x_addr) == x_old) && (memory_load32_le(mem, $z_addr) == z_old))); assume {:captureState "%0000031a"} true; R0, Gamma_R0 := 69632bv64, true; R0, Gamma_R0 := bvadd64(R0, 20bv64), Gamma_R0; - load18, Gamma_load18 := memory_load32_le(stack, bvadd64(R31, 12bv64)), gamma_load32(Gamma_stack, bvadd64(R31, 12bv64)); - R1, Gamma_R1 := zero_extend32_32(load18), Gamma_load18; + $load$18, Gamma_$load$18 := memory_load32_le(stack, bvadd64(R31, 12bv64)), gamma_load32(Gamma_stack, bvadd64(R31, 12bv64)); + R1, Gamma_R1 := zero_extend32_32($load$18), Gamma_$load$18; call rely(); + assert (L(mem, R0) ==> Gamma_R1); x_old := memory_load32_le(mem, $x_addr); z_old := memory_load32_le(mem, $z_addr); Gamma_x_old := (gamma_load32(Gamma_mem, $x_addr) || L(mem, $x_addr)); - assert (L(mem, R0) ==> Gamma_R1); mem, Gamma_mem := memory_store32_le(mem, R0, R1[32:0]), gamma_store32(Gamma_mem, R0, Gamma_R1); assert ((R0 == $z_addr) ==> (L(mem, $x_addr) ==> Gamma_x_old)); assert ((z_old == 0bv32) ==> ((memory_load32_le(mem, $x_addr) == x_old) && (memory_load32_le(mem, $z_addr) == z_old))); @@ -132,10 +132,10 @@ implementation main_1812() R0, Gamma_R0 := 69632bv64, true; R0, Gamma_R0 := bvadd64(R0, 20bv64), Gamma_R0; call rely(); + assert (L(mem, R0) ==> true); x_old := memory_load32_le(mem, $x_addr); z_old := memory_load32_le(mem, $z_addr); Gamma_x_old := (gamma_load32(Gamma_mem, $x_addr) || L(mem, $x_addr)); - assert (L(mem, R0) ==> true); mem, Gamma_mem := memory_store32_le(mem, R0, 0bv32), gamma_store32(Gamma_mem, R0, true); assert ((R0 == $z_addr) ==> (L(mem, $x_addr) ==> Gamma_x_old)); assert ((z_old == 0bv32) ==> ((memory_load32_le(mem, $x_addr) == x_old) && (memory_load32_le(mem, $z_addr) == z_old))); @@ -143,19 +143,19 @@ implementation main_1812() R0, Gamma_R0 := 69632bv64, true; R0, Gamma_R0 := bvadd64(R0, 24bv64), Gamma_R0; call rely(); + assert (L(mem, R0) ==> true); x_old := memory_load32_le(mem, $x_addr); z_old := memory_load32_le(mem, $z_addr); Gamma_x_old := (gamma_load32(Gamma_mem, $x_addr) || L(mem, $x_addr)); - assert (L(mem, R0) ==> true); mem, Gamma_mem := memory_store32_le(mem, R0, 0bv32), gamma_store32(Gamma_mem, R0, true); assert ((R0 == $z_addr) ==> (L(mem, $x_addr) ==> Gamma_x_old)); assert ((z_old == 0bv32) ==> ((memory_load32_le(mem, $x_addr) == x_old) && (memory_load32_le(mem, $z_addr) == z_old))); assume {:captureState "%00000358"} true; R0, Gamma_R0 := 0bv64, true; R31, Gamma_R31 := bvadd64(R31, 16bv64), Gamma_R31; - goto main_1812_basil_return; - main_1812_basil_return: - assume {:captureState "main_1812_basil_return"} true; + goto main_basil_return; + main_basil_return: + assume {:captureState "main_basil_return"} true; return; } diff --git a/src/test/correct/basic_lock_security_write/gcc/basic_lock_security_write.gts b/src/test/correct/basic_lock_security_write/gcc/basic_lock_security_write.gts deleted file mode 100644 index cee1a4726..000000000 Binary files a/src/test/correct/basic_lock_security_write/gcc/basic_lock_security_write.gts and /dev/null differ diff --git a/src/test/correct/basic_lock_security_write/gcc/basic_lock_security_write.md5sum b/src/test/correct/basic_lock_security_write/gcc/basic_lock_security_write.md5sum new file mode 100644 index 000000000..b86bb0290 --- /dev/null +++ b/src/test/correct/basic_lock_security_write/gcc/basic_lock_security_write.md5sum @@ -0,0 +1,5 @@ +193a62aba7e443e7a8a00cab7639b41d correct/basic_lock_security_write/gcc/a.out +a1e767918edb66de3c4db4cd5e5f605d correct/basic_lock_security_write/gcc/basic_lock_security_write.adt +63a0a8141dee1947ad8d53197081db29 correct/basic_lock_security_write/gcc/basic_lock_security_write.bir +cfb584873f90f389be14e870deb5a463 correct/basic_lock_security_write/gcc/basic_lock_security_write.relf +ae0701a56d3153dc27da9c917c0bf2fa correct/basic_lock_security_write/gcc/basic_lock_security_write.gts diff --git a/src/test/correct/basic_lock_security_write/gcc/basic_lock_security_write.relf b/src/test/correct/basic_lock_security_write/gcc/basic_lock_security_write.relf deleted file mode 100644 index e47e4aa00..000000000 --- a/src/test/correct/basic_lock_security_write/gcc/basic_lock_security_write.relf +++ /dev/null @@ -1,122 +0,0 @@ - -Relocation section '.rela.dyn' at offset 0x460 contains 8 entries: - Offset Info Type Symbol's Value Symbol's Name + Addend -0000000000010d98 0000000000000403 R_AARCH64_RELATIVE 710 -0000000000010da0 0000000000000403 R_AARCH64_RELATIVE 6c0 -0000000000010ff0 0000000000000403 R_AARCH64_RELATIVE 714 -0000000000011008 0000000000000403 R_AARCH64_RELATIVE 11008 -0000000000010fd8 0000000400000401 R_AARCH64_GLOB_DAT 0000000000000000 _ITM_deregisterTMCloneTable + 0 -0000000000010fe0 0000000500000401 R_AARCH64_GLOB_DAT 0000000000000000 __cxa_finalize@GLIBC_2.17 + 0 -0000000000010fe8 0000000600000401 R_AARCH64_GLOB_DAT 0000000000000000 __gmon_start__ + 0 -0000000000010ff8 0000000800000401 R_AARCH64_GLOB_DAT 0000000000000000 _ITM_registerTMCloneTable + 0 - -Relocation section '.rela.plt' at offset 0x520 contains 4 entries: - Offset Info Type Symbol's Value Symbol's Name + Addend -0000000000010fb0 0000000300000402 R_AARCH64_JUMP_SLOT 0000000000000000 __libc_start_main@GLIBC_2.34 + 0 -0000000000010fb8 0000000500000402 R_AARCH64_JUMP_SLOT 0000000000000000 __cxa_finalize@GLIBC_2.17 + 0 -0000000000010fc0 0000000600000402 R_AARCH64_JUMP_SLOT 0000000000000000 __gmon_start__ + 0 -0000000000010fc8 0000000700000402 R_AARCH64_JUMP_SLOT 0000000000000000 abort@GLIBC_2.17 + 0 - -Symbol table '.dynsym' contains 9 entries: - Num: Value Size Type Bind Vis Ndx Name - 0: 0000000000000000 0 NOTYPE LOCAL DEFAULT UND - 1: 0000000000000580 0 SECTION LOCAL DEFAULT 11 .init - 2: 0000000000011000 0 SECTION LOCAL DEFAULT 22 .data - 3: 0000000000000000 0 FUNC GLOBAL DEFAULT UND __libc_start_main@GLIBC_2.34 (2) - 4: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_deregisterTMCloneTable - 5: 0000000000000000 0 FUNC WEAK DEFAULT UND __cxa_finalize@GLIBC_2.17 (3) - 6: 0000000000000000 0 NOTYPE WEAK DEFAULT UND __gmon_start__ - 7: 0000000000000000 0 FUNC GLOBAL DEFAULT UND abort@GLIBC_2.17 (3) - 8: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_registerTMCloneTable - -Symbol table '.symtab' contains 89 entries: - Num: Value Size Type Bind Vis Ndx Name - 0: 0000000000000000 0 NOTYPE LOCAL DEFAULT UND - 1: 0000000000000238 0 SECTION LOCAL DEFAULT 1 .interp - 2: 0000000000000254 0 SECTION LOCAL DEFAULT 2 .note.gnu.build-id - 3: 0000000000000278 0 SECTION LOCAL DEFAULT 3 .note.ABI-tag - 4: 0000000000000298 0 SECTION LOCAL DEFAULT 4 .gnu.hash - 5: 00000000000002b8 0 SECTION LOCAL DEFAULT 5 .dynsym - 6: 0000000000000390 0 SECTION LOCAL DEFAULT 6 .dynstr - 7: 000000000000041e 0 SECTION LOCAL DEFAULT 7 .gnu.version - 8: 0000000000000430 0 SECTION LOCAL DEFAULT 8 .gnu.version_r - 9: 0000000000000460 0 SECTION LOCAL DEFAULT 9 .rela.dyn - 10: 0000000000000520 0 SECTION LOCAL DEFAULT 10 .rela.plt - 11: 0000000000000580 0 SECTION LOCAL DEFAULT 11 .init - 12: 00000000000005a0 0 SECTION LOCAL DEFAULT 12 .plt - 13: 0000000000000600 0 SECTION LOCAL DEFAULT 13 .text - 14: 0000000000000760 0 SECTION LOCAL DEFAULT 14 .fini - 15: 0000000000000774 0 SECTION LOCAL DEFAULT 15 .rodata - 16: 0000000000000778 0 SECTION LOCAL DEFAULT 16 .eh_frame_hdr - 17: 00000000000007b8 0 SECTION LOCAL DEFAULT 17 .eh_frame - 18: 0000000000010d98 0 SECTION LOCAL DEFAULT 18 .init_array - 19: 0000000000010da0 0 SECTION LOCAL DEFAULT 19 .fini_array - 20: 0000000000010da8 0 SECTION LOCAL DEFAULT 20 .dynamic - 21: 0000000000010f98 0 SECTION LOCAL DEFAULT 21 .got - 22: 0000000000011000 0 SECTION LOCAL DEFAULT 22 .data - 23: 0000000000011010 0 SECTION LOCAL DEFAULT 23 .bss - 24: 0000000000000000 0 SECTION LOCAL DEFAULT 24 .comment - 25: 0000000000000000 0 FILE LOCAL DEFAULT ABS Scrt1.o - 26: 0000000000000278 0 NOTYPE LOCAL DEFAULT 3 $d - 27: 0000000000000278 32 OBJECT LOCAL DEFAULT 3 __abi_tag - 28: 0000000000000600 0 NOTYPE LOCAL DEFAULT 13 $x - 29: 00000000000007cc 0 NOTYPE LOCAL DEFAULT 17 $d - 30: 0000000000000774 0 NOTYPE LOCAL DEFAULT 15 $d - 31: 0000000000000000 0 FILE LOCAL DEFAULT ABS crti.o - 32: 0000000000000634 0 NOTYPE LOCAL DEFAULT 13 $x - 33: 0000000000000634 20 FUNC LOCAL DEFAULT 13 call_weak_fn - 34: 0000000000000580 0 NOTYPE LOCAL DEFAULT 11 $x - 35: 0000000000000760 0 NOTYPE LOCAL DEFAULT 14 $x - 36: 0000000000000000 0 FILE LOCAL DEFAULT ABS crtn.o - 37: 0000000000000590 0 NOTYPE LOCAL DEFAULT 11 $x - 38: 000000000000076c 0 NOTYPE LOCAL DEFAULT 14 $x - 39: 0000000000000000 0 FILE LOCAL DEFAULT ABS crtstuff.c - 40: 0000000000000650 0 NOTYPE LOCAL DEFAULT 13 $x - 41: 0000000000000650 0 FUNC LOCAL DEFAULT 13 deregister_tm_clones - 42: 0000000000000680 0 FUNC LOCAL DEFAULT 13 register_tm_clones - 43: 0000000000011008 0 NOTYPE LOCAL DEFAULT 22 $d - 44: 00000000000006c0 0 FUNC LOCAL DEFAULT 13 __do_global_dtors_aux - 45: 0000000000011010 1 OBJECT LOCAL DEFAULT 23 completed.0 - 46: 0000000000010da0 0 NOTYPE LOCAL DEFAULT 19 $d - 47: 0000000000010da0 0 OBJECT LOCAL DEFAULT 19 __do_global_dtors_aux_fini_array_entry - 48: 0000000000000710 0 FUNC LOCAL DEFAULT 13 frame_dummy - 49: 0000000000010d98 0 NOTYPE LOCAL DEFAULT 18 $d - 50: 0000000000010d98 0 OBJECT LOCAL DEFAULT 18 __frame_dummy_init_array_entry - 51: 00000000000007e0 0 NOTYPE LOCAL DEFAULT 17 $d - 52: 0000000000011010 0 NOTYPE LOCAL DEFAULT 23 $d - 53: 0000000000000000 0 FILE LOCAL DEFAULT ABS basic_lock_security_write.c - 54: 0000000000011014 0 NOTYPE LOCAL DEFAULT 23 $d - 55: 0000000000000714 0 NOTYPE LOCAL DEFAULT 13 $x - 56: 0000000000000840 0 NOTYPE LOCAL DEFAULT 17 $d - 57: 0000000000000000 0 FILE LOCAL DEFAULT ABS crtstuff.c - 58: 0000000000000858 0 NOTYPE LOCAL DEFAULT 17 $d - 59: 0000000000000858 0 OBJECT LOCAL DEFAULT 17 __FRAME_END__ - 60: 0000000000000000 0 FILE LOCAL DEFAULT ABS - 61: 0000000000010da8 0 OBJECT LOCAL DEFAULT ABS _DYNAMIC - 62: 0000000000000778 0 NOTYPE LOCAL DEFAULT 16 __GNU_EH_FRAME_HDR - 63: 0000000000010fd0 0 OBJECT LOCAL DEFAULT ABS _GLOBAL_OFFSET_TABLE_ - 64: 00000000000005a0 0 NOTYPE LOCAL DEFAULT 12 $x - 65: 0000000000000000 0 FUNC GLOBAL DEFAULT UND __libc_start_main@GLIBC_2.34 - 66: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_deregisterTMCloneTable - 67: 0000000000011000 0 NOTYPE WEAK DEFAULT 22 data_start - 68: 0000000000011010 0 NOTYPE GLOBAL DEFAULT 23 __bss_start__ - 69: 0000000000000000 0 FUNC WEAK DEFAULT UND __cxa_finalize@GLIBC_2.17 - 70: 0000000000011020 0 NOTYPE GLOBAL DEFAULT 23 _bss_end__ - 71: 0000000000011010 0 NOTYPE GLOBAL DEFAULT 22 _edata - 72: 0000000000011018 4 OBJECT GLOBAL DEFAULT 23 z - 73: 0000000000011014 4 OBJECT GLOBAL DEFAULT 23 x - 74: 0000000000000760 0 FUNC GLOBAL HIDDEN 14 _fini - 75: 0000000000011020 0 NOTYPE GLOBAL DEFAULT 23 __bss_end__ - 76: 0000000000011000 0 NOTYPE GLOBAL DEFAULT 22 __data_start - 77: 0000000000000000 0 NOTYPE WEAK DEFAULT UND __gmon_start__ - 78: 0000000000011008 0 OBJECT GLOBAL HIDDEN 22 __dso_handle - 79: 0000000000000000 0 FUNC GLOBAL DEFAULT UND abort@GLIBC_2.17 - 80: 0000000000000774 4 OBJECT GLOBAL DEFAULT 15 _IO_stdin_used - 81: 0000000000011020 0 NOTYPE GLOBAL DEFAULT 23 _end - 82: 0000000000000600 52 FUNC GLOBAL DEFAULT 13 _start - 83: 0000000000011020 0 NOTYPE GLOBAL DEFAULT 23 __end__ - 84: 0000000000011010 0 NOTYPE GLOBAL DEFAULT 23 __bss_start - 85: 0000000000000714 76 FUNC GLOBAL DEFAULT 13 main - 86: 0000000000011010 0 OBJECT GLOBAL HIDDEN 22 __TMC_END__ - 87: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_registerTMCloneTable - 88: 0000000000000580 0 FUNC GLOBAL HIDDEN 11 _init diff --git a/src/test/correct/basic_lock_security_write/gcc/basic_lock_security_write_gtirb.expected b/src/test/correct/basic_lock_security_write/gcc/basic_lock_security_write_gtirb.expected index 35ae45498..bbc7cd950 100644 --- a/src/test/correct/basic_lock_security_write/gcc/basic_lock_security_write_gtirb.expected +++ b/src/test/correct/basic_lock_security_write/gcc/basic_lock_security_write_gtirb.expected @@ -73,7 +73,7 @@ implementation {:extern} guarantee_reflexive() assert ((memory_load32_le(mem, $z_addr) == 0bv32) ==> ((memory_load32_le(mem, $x_addr) == memory_load32_le(mem, $x_addr)) && (memory_load32_le(mem, $z_addr) == memory_load32_le(mem, $z_addr)))); } -procedure main_1812(); +procedure main(); modifies Gamma_R0, Gamma_R1, Gamma_R31, Gamma_mem, Gamma_stack, R0, R1, R31, mem, stack; requires (memory_load32_le(mem, $z_addr) != 0bv32); requires (Gamma_R0 == false); @@ -92,70 +92,70 @@ procedure main_1812(); free ensures (memory_load64_le(mem, 69616bv64) == 1812bv64); free ensures (memory_load64_le(mem, 69640bv64) == 69640bv64); -implementation main_1812() +implementation main() { - var Gamma_load7: bool; + var $load7: bv32; + var Gamma_$load7: bool; var Gamma_x_old: bool; - var load7: bv32; var x_old: bv32; var z_old: bv32; - main_1812__0__XOlsS5A6TQOpBXsOQtuFIA: - assume {:captureState "main_1812__0__XOlsS5A6TQOpBXsOQtuFIA"} true; + $main$__0__$XOlsS5A6TQOpBXsOQtuFIA: + assume {:captureState "$main$__0__$XOlsS5A6TQOpBXsOQtuFIA"} true; R31, Gamma_R31 := bvadd64(R31, 18446744073709551600bv64), Gamma_R31; stack, Gamma_stack := memory_store32_le(stack, bvadd64(R31, 12bv64), R0[32:0]), gamma_store32(Gamma_stack, bvadd64(R31, 12bv64), Gamma_R0); - assume {:captureState "1816_0"} true; + assume {:captureState "1816$0"} true; R0, Gamma_R0 := 69632bv64, true; R0, Gamma_R0 := bvadd64(R0, 24bv64), Gamma_R0; R1, Gamma_R1 := 1bv64, true; call rely(); + assert (L(mem, R0) ==> Gamma_R1); x_old := memory_load32_le(mem, $x_addr); z_old := memory_load32_le(mem, $z_addr); Gamma_x_old := (gamma_load32(Gamma_mem, $x_addr) || L(mem, $x_addr)); - assert (L(mem, R0) ==> Gamma_R1); mem, Gamma_mem := memory_store32_le(mem, R0, R1[32:0]), gamma_store32(Gamma_mem, R0, Gamma_R1); assert ((R0 == $z_addr) ==> (L(mem, $x_addr) ==> Gamma_x_old)); assert ((z_old == 0bv32) ==> ((memory_load32_le(mem, $x_addr) == x_old) && (memory_load32_le(mem, $z_addr) == z_old))); - assume {:captureState "1832_0"} true; + assume {:captureState "1832$0"} true; R0, Gamma_R0 := 69632bv64, true; R0, Gamma_R0 := bvadd64(R0, 20bv64), Gamma_R0; - load7, Gamma_load7 := memory_load32_le(stack, bvadd64(R31, 12bv64)), gamma_load32(Gamma_stack, bvadd64(R31, 12bv64)); - R1, Gamma_R1 := zero_extend32_32(load7), Gamma_load7; + $load7, Gamma_$load7 := memory_load32_le(stack, bvadd64(R31, 12bv64)), gamma_load32(Gamma_stack, bvadd64(R31, 12bv64)); + R1, Gamma_R1 := zero_extend32_32($load7), Gamma_$load7; call rely(); + assert (L(mem, R0) ==> Gamma_R1); x_old := memory_load32_le(mem, $x_addr); z_old := memory_load32_le(mem, $z_addr); Gamma_x_old := (gamma_load32(Gamma_mem, $x_addr) || L(mem, $x_addr)); - assert (L(mem, R0) ==> Gamma_R1); mem, Gamma_mem := memory_store32_le(mem, R0, R1[32:0]), gamma_store32(Gamma_mem, R0, Gamma_R1); assert ((R0 == $z_addr) ==> (L(mem, $x_addr) ==> Gamma_x_old)); assert ((z_old == 0bv32) ==> ((memory_load32_le(mem, $x_addr) == x_old) && (memory_load32_le(mem, $z_addr) == z_old))); - assume {:captureState "1848_0"} true; + assume {:captureState "1848$0"} true; R0, Gamma_R0 := 69632bv64, true; R0, Gamma_R0 := bvadd64(R0, 20bv64), Gamma_R0; call rely(); + assert (L(mem, R0) ==> true); x_old := memory_load32_le(mem, $x_addr); z_old := memory_load32_le(mem, $z_addr); Gamma_x_old := (gamma_load32(Gamma_mem, $x_addr) || L(mem, $x_addr)); - assert (L(mem, R0) ==> true); mem, Gamma_mem := memory_store32_le(mem, R0, 0bv32), gamma_store32(Gamma_mem, R0, true); assert ((R0 == $z_addr) ==> (L(mem, $x_addr) ==> Gamma_x_old)); assert ((z_old == 0bv32) ==> ((memory_load32_le(mem, $x_addr) == x_old) && (memory_load32_le(mem, $z_addr) == z_old))); - assume {:captureState "1860_0"} true; + assume {:captureState "1860$0"} true; R0, Gamma_R0 := 69632bv64, true; R0, Gamma_R0 := bvadd64(R0, 24bv64), Gamma_R0; call rely(); + assert (L(mem, R0) ==> true); x_old := memory_load32_le(mem, $x_addr); z_old := memory_load32_le(mem, $z_addr); Gamma_x_old := (gamma_load32(Gamma_mem, $x_addr) || L(mem, $x_addr)); - assert (L(mem, R0) ==> true); mem, Gamma_mem := memory_store32_le(mem, R0, 0bv32), gamma_store32(Gamma_mem, R0, true); assert ((R0 == $z_addr) ==> (L(mem, $x_addr) ==> Gamma_x_old)); assert ((z_old == 0bv32) ==> ((memory_load32_le(mem, $x_addr) == x_old) && (memory_load32_le(mem, $z_addr) == z_old))); - assume {:captureState "1872_0"} true; + assume {:captureState "1872$0"} true; R0, Gamma_R0 := 0bv64, true; R31, Gamma_R31 := bvadd64(R31, 16bv64), Gamma_R31; - goto main_1812_basil_return; - main_1812_basil_return: - assume {:captureState "main_1812_basil_return"} true; + goto main_basil_return; + main_basil_return: + assume {:captureState "main_basil_return"} true; return; } diff --git a/src/test/correct/basic_lock_security_write/gcc_O2/basic_lock_security_write.adt b/src/test/correct/basic_lock_security_write/gcc_O2/basic_lock_security_write.adt deleted file mode 100644 index d7cec1140..000000000 --- a/src/test/correct/basic_lock_security_write/gcc_O2/basic_lock_security_write.adt +++ /dev/null @@ -1,494 +0,0 @@ -Project(Attrs([Attr("filename","\"gcc_O2/basic_lock_security_write.out\""), -Attr("image-specification","(declare abi (name str))\n(declare arch (name str))\n(declare base-address (addr int))\n(declare bias (off int))\n(declare bits (size int))\n(declare code-region (addr int) (size int) (off int))\n(declare code-start (addr int))\n(declare entry-point (addr int))\n(declare external-reference (addr int) (name str))\n(declare format (name str))\n(declare is-executable (flag bool))\n(declare is-little-endian (flag bool))\n(declare llvm:base-address (addr int))\n(declare llvm:code-entry (name str) (off int) (size int))\n(declare llvm:coff-import-library (name str))\n(declare llvm:coff-virtual-section-header (name str) (addr int) (size int))\n(declare llvm:elf-program-header (name str) (off int) (size int))\n(declare llvm:elf-program-header-flags (name str) (ld bool) (r bool) \n (w bool) (x bool))\n(declare llvm:elf-virtual-program-header (name str) (addr int) (size int))\n(declare llvm:entry-point (addr int))\n(declare llvm:macho-symbol (name str) (value int))\n(declare llvm:name-reference (at int) (name str))\n(declare llvm:relocation (at int) (addr int))\n(declare llvm:section-entry (name str) (addr int) (size int) (off int))\n(declare llvm:section-flags (name str) (r bool) (w bool) (x bool))\n(declare llvm:segment-command (name str) (off int) (size int))\n(declare llvm:segment-command-flags (name str) (r bool) (w bool) (x bool))\n(declare llvm:symbol-entry (name str) (addr int) (size int) (off int)\n (value int))\n(declare llvm:virtual-segment-command (name str) (addr int) (size int))\n(declare mapped (addr int) (size int) (off int))\n(declare named-region (addr int) (size int) (name str))\n(declare named-symbol (addr int) (name str))\n(declare require (name str))\n(declare section (addr int) (size int))\n(declare segment (addr int) (size int) (r bool) (w bool) (x bool))\n(declare subarch (name str))\n(declare symbol-chunk (addr int) (size int) (root int))\n(declare symbol-value (addr int) (value int))\n(declare system (name str))\n(declare vendor (name str))\n\n(abi unknown)\n(arch aarch64)\n(base-address 0)\n(bias 0)\n(bits 64)\n(code-region 1876 20 1876)\n(code-region 1536 340 1536)\n(code-region 1440 96 1440)\n(code-region 1408 24 1408)\n(code-start 1652)\n(code-start 1600)\n(code-start 1536)\n(entry-point 1600)\n(external-reference 69592 _ITM_deregisterTMCloneTable)\n(external-reference 69600 __cxa_finalize)\n(external-reference 69608 __gmon_start__)\n(external-reference 69624 _ITM_registerTMCloneTable)\n(external-reference 69552 __libc_start_main)\n(external-reference 69560 __cxa_finalize)\n(external-reference 69568 __gmon_start__)\n(external-reference 69576 abort)\n(format elf)\n(is-executable true)\n(is-little-endian true)\n(llvm:base-address 0)\n(llvm:code-entry abort 0 0)\n(llvm:code-entry __cxa_finalize 0 0)\n(llvm:code-entry __libc_start_main 0 0)\n(llvm:code-entry _init 1408 0)\n(llvm:code-entry main 1536 24)\n(llvm:code-entry _start 1600 52)\n(llvm:code-entry abort@GLIBC_2.17 0 0)\n(llvm:code-entry _fini 1876 0)\n(llvm:code-entry __cxa_finalize@GLIBC_2.17 0 0)\n(llvm:code-entry __libc_start_main@GLIBC_2.34 0 0)\n(llvm:code-entry frame_dummy 1872 0)\n(llvm:code-entry __do_global_dtors_aux 1792 0)\n(llvm:code-entry register_tm_clones 1728 0)\n(llvm:code-entry deregister_tm_clones 1680 0)\n(llvm:code-entry call_weak_fn 1652 20)\n(llvm:code-entry .fini 1876 20)\n(llvm:code-entry .text 1536 340)\n(llvm:code-entry .plt 1440 96)\n(llvm:code-entry .init 1408 24)\n(llvm:elf-program-header 08 3480 616)\n(llvm:elf-program-header 07 0 0)\n(llvm:elf-program-header 06 1900 60)\n(llvm:elf-program-header 05 596 68)\n(llvm:elf-program-header 04 3496 496)\n(llvm:elf-program-header 03 3480 632)\n(llvm:elf-program-header 02 0 2120)\n(llvm:elf-program-header 01 568 27)\n(llvm:elf-program-header 00 64 504)\n(llvm:elf-program-header-flags 08 false true false false)\n(llvm:elf-program-header-flags 07 false true true false)\n(llvm:elf-program-header-flags 06 false true false false)\n(llvm:elf-program-header-flags 05 false true false false)\n(llvm:elf-program-header-flags 04 false true true false)\n(llvm:elf-program-header-flags 03 true true true false)\n(llvm:elf-program-header-flags 02 true true false true)\n(llvm:elf-program-header-flags 01 false true false false)\n(llvm:elf-program-header-flags 00 false true false false)\n(llvm:elf-virtual-program-header 08 69016 616)\n(llvm:elf-virtual-program-header 07 0 0)\n(llvm:elf-virtual-program-header 06 1900 60)\n(llvm:elf-virtual-program-header 05 596 68)\n(llvm:elf-virtual-program-header 04 69032 496)\n(llvm:elf-virtual-program-header 03 69016 648)\n(llvm:elf-virtual-program-header 02 0 2120)\n(llvm:elf-virtual-program-header 01 568 27)\n(llvm:elf-virtual-program-header 00 64 504)\n(llvm:entry-point 1600)\n(llvm:name-reference 69576 abort)\n(llvm:name-reference 69568 __gmon_start__)\n(llvm:name-reference 69560 __cxa_finalize)\n(llvm:name-reference 69552 __libc_start_main)\n(llvm:name-reference 69624 _ITM_registerTMCloneTable)\n(llvm:name-reference 69608 __gmon_start__)\n(llvm:name-reference 69600 __cxa_finalize)\n(llvm:name-reference 69592 _ITM_deregisterTMCloneTable)\n(llvm:section-entry .shstrtab 0 250 6859)\n(llvm:section-entry .strtab 0 563 6296)\n(llvm:section-entry .symtab 0 2136 4160)\n(llvm:section-entry .comment 0 43 4112)\n(llvm:section-entry .bss 69648 16 4112)\n(llvm:section-entry .data 69632 16 4096)\n(llvm:section-entry .got 69528 104 3992)\n(llvm:section-entry .dynamic 69032 496 3496)\n(llvm:section-entry .fini_array 69024 8 3488)\n(llvm:section-entry .init_array 69016 8 3480)\n(llvm:section-entry .eh_frame 1960 160 1960)\n(llvm:section-entry .eh_frame_hdr 1900 60 1900)\n(llvm:section-entry .rodata 1896 4 1896)\n(llvm:section-entry .fini 1876 20 1876)\n(llvm:section-entry .text 1536 340 1536)\n(llvm:section-entry .plt 1440 96 1440)\n(llvm:section-entry .init 1408 24 1408)\n(llvm:section-entry .rela.plt 1312 96 1312)\n(llvm:section-entry .rela.dyn 1120 192 1120)\n(llvm:section-entry .gnu.version_r 1072 48 1072)\n(llvm:section-entry .gnu.version 1054 18 1054)\n(llvm:section-entry .dynstr 912 141 912)\n(llvm:section-entry .dynsym 696 216 696)\n(llvm:section-entry .gnu.hash 664 28 664)\n(llvm:section-entry .note.ABI-tag 632 32 632)\n(llvm:section-entry .note.gnu.build-id 596 36 596)\n(llvm:section-entry .interp 568 27 568)\n(llvm:section-flags .shstrtab true false false)\n(llvm:section-flags .strtab true false false)\n(llvm:section-flags .symtab true false false)\n(llvm:section-flags .comment true false false)\n(llvm:section-flags .bss true true false)\n(llvm:section-flags .data true true false)\n(llvm:section-flags .got true true false)\n(llvm:section-flags .dynamic true true false)\n(llvm:section-flags .fini_array true true false)\n(llvm:section-flags .init_array true true false)\n(llvm:section-flags .eh_frame true false false)\n(llvm:section-flags .eh_frame_hdr true false false)\n(llvm:section-flags .rodata true false false)\n(llvm:section-flags .fini true false true)\n(llvm:section-flags .text true false true)\n(llvm:section-flags .plt true false true)\n(llvm:section-flags .init true false true)\n(llvm:section-flags .rela.plt true false false)\n(llvm:section-flags .rela.dyn true false false)\n(llvm:section-flags .gnu.version_r true false false)\n(llvm:section-flags .gnu.version true false false)\n(llvm:section-flags .dynstr true false false)\n(llvm:section-flags .dynsym true false false)\n(llvm:section-flags .gnu.hash true false false)\n(llvm:section-flags .note.ABI-tag true false false)\n(llvm:section-flags .note.gnu.build-id true false false)\n(llvm:section-flags .interp true false false)\n(llvm:symbol-entry abort 0 0 0 0)\n(llvm:symbol-entry __cxa_finalize 0 0 0 0)\n(llvm:symbol-entry __libc_start_main 0 0 0 0)\n(llvm:symbol-entry _init 1408 0 1408 1408)\n(llvm:symbol-entry main 1536 24 1536 1536)\n(llvm:symbol-entry _start 1600 52 1600 1600)\n(llvm:symbol-entry abort@GLIBC_2.17 0 0 0 0)\n(llvm:symbol-entry _fini 1876 0 1876 1876)\n(llvm:symbol-entry __cxa_finalize@GLIBC_2.17 0 0 0 0)\n(llvm:symbol-entry __libc_start_main@GLIBC_2.34 0 0 0 0)\n(llvm:symbol-entry frame_dummy 1872 0 1872 1872)\n(llvm:symbol-entry __do_global_dtors_aux 1792 0 1792 1792)\n(llvm:symbol-entry register_tm_clones 1728 0 1728 1728)\n(llvm:symbol-entry deregister_tm_clones 1680 0 1680 1680)\n(llvm:symbol-entry call_weak_fn 1652 20 1652 1652)\n(mapped 0 2120 0)\n(mapped 69016 632 3480)\n(named-region 0 2120 02)\n(named-region 69016 648 03)\n(named-region 568 27 .interp)\n(named-region 596 36 .note.gnu.build-id)\n(named-region 632 32 .note.ABI-tag)\n(named-region 664 28 .gnu.hash)\n(named-region 696 216 .dynsym)\n(named-region 912 141 .dynstr)\n(named-region 1054 18 .gnu.version)\n(named-region 1072 48 .gnu.version_r)\n(named-region 1120 192 .rela.dyn)\n(named-region 1312 96 .rela.plt)\n(named-region 1408 24 .init)\n(named-region 1440 96 .plt)\n(named-region 1536 340 .text)\n(named-region 1876 20 .fini)\n(named-region 1896 4 .rodata)\n(named-region 1900 60 .eh_frame_hdr)\n(named-region 1960 160 .eh_frame)\n(named-region 69016 8 .init_array)\n(named-region 69024 8 .fini_array)\n(named-region 69032 496 .dynamic)\n(named-region 69528 104 .got)\n(named-region 69632 16 .data)\n(named-region 69648 16 .bss)\n(named-region 0 43 .comment)\n(named-region 0 2136 .symtab)\n(named-region 0 563 .strtab)\n(named-region 0 250 .shstrtab)\n(named-symbol 1652 call_weak_fn)\n(named-symbol 1680 deregister_tm_clones)\n(named-symbol 1728 register_tm_clones)\n(named-symbol 1792 __do_global_dtors_aux)\n(named-symbol 1872 frame_dummy)\n(named-symbol 0 __libc_start_main@GLIBC_2.34)\n(named-symbol 0 __cxa_finalize@GLIBC_2.17)\n(named-symbol 1876 _fini)\n(named-symbol 0 abort@GLIBC_2.17)\n(named-symbol 1600 _start)\n(named-symbol 1536 main)\n(named-symbol 1408 _init)\n(named-symbol 0 __libc_start_main)\n(named-symbol 0 __cxa_finalize)\n(named-symbol 0 abort)\n(require libc.so.6)\n(section 568 27)\n(section 596 36)\n(section 632 32)\n(section 664 28)\n(section 696 216)\n(section 912 141)\n(section 1054 18)\n(section 1072 48)\n(section 1120 192)\n(section 1312 96)\n(section 1408 24)\n(section 1440 96)\n(section 1536 340)\n(section 1876 20)\n(section 1896 4)\n(section 1900 60)\n(section 1960 160)\n(section 69016 8)\n(section 69024 8)\n(section 69032 496)\n(section 69528 104)\n(section 69632 16)\n(section 69648 16)\n(section 0 43)\n(section 0 2136)\n(section 0 563)\n(section 0 250)\n(segment 0 2120 true false true)\n(segment 69016 648 true true false)\n(subarch v8)\n(symbol-chunk 1652 20 1652)\n(symbol-chunk 1600 52 1600)\n(symbol-chunk 1536 24 1536)\n(symbol-value 1652 1652)\n(symbol-value 1680 1680)\n(symbol-value 1728 1728)\n(symbol-value 1792 1792)\n(symbol-value 1872 1872)\n(symbol-value 1876 1876)\n(symbol-value 1600 1600)\n(symbol-value 1536 1536)\n(symbol-value 1408 1408)\n(symbol-value 0 0)\n(system \"\")\n(vendor \"\")\n"), -Attr("abi-name","\"aarch64-linux-gnu-elf\"")]), -Sections([Section(".shstrtab", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x40\x06\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xc8\x1b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x38\x00\x09\x00\x40\x00\x1c\x00\x1b\x00\x06\x00\x00\x00\x04\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x04\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x48\x08\x00\x00\x00\x00\x00\x00\x48\x08\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x01\x00\x00\x00\x06\x00\x00\x00\x98\x0d\x00\x00\x00\x00\x00\x00\x98\x0d"), -Section(".strtab", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x40\x06\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xc8\x1b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x38\x00\x09\x00\x40\x00\x1c\x00\x1b\x00\x06\x00\x00\x00\x04\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x04\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x48\x08\x00\x00\x00\x00\x00\x00\x48\x08\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x01\x00\x00\x00\x06\x00\x00\x00\x98\x0d\x00\x00\x00\x00\x00\x00\x98\x0d\x01\x00\x00\x00\x00\x00\x98\x0d\x01\x00\x00\x00\x00\x00\x78\x02\x00\x00\x00\x00\x00\x00\x88\x02\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x02\x00\x00\x00\x06\x00\x00\x00\xa8\x0d\x00\x00\x00\x00\x00\x00\xa8\x0d\x01\x00\x00\x00\x00\x00\xa8\x0d\x01\x00\x00\x00\x00\x00\xf0\x01\x00\x00\x00\x00\x00\x00\xf0\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x04\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x50\xe5\x74\x64\x04\x00\x00\x00\x6c\x07\x00\x00\x00\x00\x00\x00\x6c\x07\x00\x00\x00\x00\x00\x00\x6c\x07\x00\x00\x00\x00\x00\x00\x3c\x00\x00\x00\x00\x00\x00\x00\x3c\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x51\xe5\x74\x64\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x52\xe5\x74\x64\x04\x00\x00\x00\x98\x0d\x00\x00\x00\x00\x00\x00\x98\x0d\x01\x00\x00\x00\x00\x00\x98\x0d\x01\x00\x00\x00\x00\x00\x68\x02\x00\x00\x00\x00\x00\x00\x68\x02\x00\x00\x00\x00\x00\x00\x01\x00\x00"), -Section(".comment", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x40\x06\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xc8\x1b\x00"), -Section(".interp", 0x238, "\x2f\x6c\x69\x62\x2f\x6c\x64\x2d\x6c\x69\x6e\x75\x78\x2d\x61\x61\x72\x63\x68\x36\x34\x2e\x73\x6f\x2e\x31\x00"), -Section(".note.gnu.build-id", 0x254, "\x04\x00\x00\x00\x14\x00\x00\x00\x03\x00\x00\x00\x47\x4e\x55\x00\x8e\x9f\x6d\x25\x8b\x4c\x67\xe6\xe6\xa4\x71\xd7\x96\x9f\xa8\x55\x85\xc0\xb9\xa2"), -Section(".note.ABI-tag", 0x278, "\x04\x00\x00\x00\x10\x00\x00\x00\x01\x00\x00\x00\x47\x4e\x55\x00\x00\x00\x00\x00\x03\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00"), -Section(".gnu.hash", 0x298, "\x01\x00\x00\x00\x01\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".dynsym", 0x2B8, "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x0b\x00\x80\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x16\x00\x00\x10\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x48\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x22\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x22\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x73\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".dynstr", 0x390, "\x00\x5f\x5f\x63\x78\x61\x5f\x66\x69\x6e\x61\x6c\x69\x7a\x65\x00\x5f\x5f\x6c\x69\x62\x63\x5f\x73\x74\x61\x72\x74\x5f\x6d\x61\x69\x6e\x00\x61\x62\x6f\x72\x74\x00\x6c\x69\x62\x63\x2e\x73\x6f\x2e\x36\x00\x47\x4c\x49\x42\x43\x5f\x32\x2e\x31\x37\x00\x47\x4c\x49\x42\x43\x5f\x32\x2e\x33\x34\x00\x5f\x49\x54\x4d\x5f\x64\x65\x72\x65\x67\x69\x73\x74\x65\x72\x54\x4d\x43\x6c\x6f\x6e\x65\x54\x61\x62\x6c\x65\x00\x5f\x5f\x67\x6d\x6f\x6e\x5f\x73\x74\x61\x72\x74\x5f\x5f\x00\x5f\x49\x54\x4d\x5f\x72\x65\x67\x69\x73\x74\x65\x72\x54\x4d\x43\x6c\x6f\x6e\x65\x54\x61\x62\x6c\x65\x00"), -Section(".gnu.version", 0x41E, "\x00\x00\x00\x00\x00\x00\x02\x00\x01\x00\x03\x00\x01\x00\x03\x00\x01\x00"), -Section(".gnu.version_r", 0x430, "\x01\x00\x02\x00\x28\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x97\x91\x96\x06\x00\x00\x03\x00\x32\x00\x00\x00\x10\x00\x00\x00\xb4\x91\x96\x06\x00\x00\x02\x00\x3d\x00\x00\x00\x00\x00\x00\x00"), -Section(".rela.dyn", 0x460, "\x98\x0d\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x50\x07\x00\x00\x00\x00\x00\x00\xa0\x0d\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\xf0\x0f\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x00\x06\x00\x00\x00\x00\x00\x00\x08\x10\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x08\x10\x01\x00\x00\x00\x00\x00\xd8\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe0\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe8\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xf8\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".rela.plt", 0x520, "\xb0\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xb8\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xc0\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xc8\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".init", 0x580, "\x1f\x20\x03\xd5\xfd\x7b\xbf\xa9\xfd\x03\x00\x91\x3a\x00\x00\x94\xfd\x7b\xc1\xa8\xc0\x03\x5f\xd6"), -Section(".plt", 0x5A0, "\xf0\x7b\xbf\xa9\x90\x00\x00\x90\x11\xd6\x47\xf9\x10\xa2\x3e\x91\x20\x02\x1f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x90\x00\x00\x90\x11\xda\x47\xf9\x10\xc2\x3e\x91\x20\x02\x1f\xd6\x90\x00\x00\x90\x11\xde\x47\xf9\x10\xe2\x3e\x91\x20\x02\x1f\xd6\x90\x00\x00\x90\x11\xe2\x47\xf9\x10\x02\x3f\x91\x20\x02\x1f\xd6\x90\x00\x00\x90\x11\xe6\x47\xf9\x10\x22\x3f\x91\x20\x02\x1f\xd6"), -Section(".fini", 0x754, "\x1f\x20\x03\xd5\xfd\x7b\xbf\xa9\xfd\x03\x00\x91\xfd\x7b\xc1\xa8\xc0\x03\x5f\xd6"), -Section(".rodata", 0x768, "\x01\x00\x02\x00"), -Section(".eh_frame_hdr", 0x76C, "\x01\x1b\x03\x3b\x38\x00\x00\x00\x06\x00\x00\x00\x94\xfe\xff\xff\xc4\x00\x00\x00\xd4\xfe\xff\xff\x50\x00\x00\x00\x24\xff\xff\xff\x64\x00\x00\x00\x54\xff\xff\xff\x78\x00\x00\x00\x94\xff\xff\xff\x8c\x00\x00\x00\xe4\xff\xff\xff\xb0\x00\x00\x00"), -Section(".eh_frame", 0x7A8, "\x10\x00\x00\x00\x00\x00\x00\x00\x01\x7a\x52\x00\x04\x78\x1e\x01\x1b\x0c\x1f\x00\x10\x00\x00\x00\x18\x00\x00\x00\x7c\xfe\xff\xff\x34\x00\x00\x00\x00\x41\x07\x1e\x10\x00\x00\x00\x2c\x00\x00\x00\xb8\xfe\xff\xff\x30\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x40\x00\x00\x00\xd4\xfe\xff\xff\x3c\x00\x00\x00\x00\x00\x00\x00\x20\x00\x00\x00\x54\x00\x00\x00\x00\xff\xff\xff\x48\x00\x00\x00\x00\x41\x0e\x20\x9d\x04\x9e\x03\x42\x93\x02\x4e\xde\xdd\xd3\x0e\x00\x00\x00\x00\x10\x00\x00\x00\x78\x00\x00\x00\x2c\xff\xff\xff\x04\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x8c\x00\x00\x00\xc8\xfd\xff\xff\x18\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".fini_array", 0x10DA0, "\x00\x07\x00\x00\x00\x00\x00\x00"), -Section(".dynamic", 0x10DA8, "\x01\x00\x00\x00\x00\x00\x00\x00\x28\x00\x00\x00\x00\x00\x00\x00\x0c\x00\x00\x00\x00\x00\x00\x00\x80\x05\x00\x00\x00\x00\x00\x00\x0d\x00\x00\x00\x00\x00\x00\x00\x54\x07\x00\x00\x00\x00\x00\x00\x19\x00\x00\x00\x00\x00\x00\x00\x98\x0d\x01\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x1a\x00\x00\x00\x00\x00\x00\x00\xa0\x0d\x01\x00\x00\x00\x00\x00\x1c\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\xf5\xfe\xff\x6f\x00\x00\x00\x00\x98\x02\x00\x00\x00\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x90\x03\x00\x00\x00\x00\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\xb8\x02\x00\x00\x00\x00\x00\x00\x0a\x00\x00\x00\x00\x00\x00\x00\x8d\x00\x00\x00\x00\x00\x00\x00\x0b\x00\x00\x00\x00\x00\x00\x00\x18\x00\x00\x00\x00\x00\x00\x00\x15\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x98\x0f\x01\x00\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x60\x00\x00\x00\x00\x00\x00\x00\x14\x00\x00\x00\x00\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x17\x00\x00\x00\x00\x00\x00\x00\x20\x05\x00\x00\x00\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x60\x04\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\xc0\x00\x00\x00\x00\x00\x00\x00\x09\x00\x00\x00\x00\x00\x00\x00\x18\x00\x00\x00\x00\x00\x00\x00\x1e\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\xfb\xff\xff\x6f\x00\x00\x00\x00\x01\x00\x00\x08\x00\x00\x00\x00\xfe\xff\xff\x6f\x00\x00\x00\x00\x30\x04\x00\x00\x00\x00\x00\x00\xff\xff\xff\x6f\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\xf0\xff\xff\x6f\x00\x00\x00\x00\x1e\x04\x00\x00\x00\x00\x00\x00\xf9\xff\xff\x6f\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".init_array", 0x10D98, "\x50\x07\x00\x00\x00\x00\x00\x00"), -Section(".got", 0x10F98, "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xa0\x05\x00\x00\x00\x00\x00\x00\xa0\x05\x00\x00\x00\x00\x00\x00\xa0\x05\x00\x00\x00\x00\x00\x00\xa0\x05\x00\x00\x00\x00\x00\x00\xa8\x0d\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".data", 0x11000, "\x00\x00\x00\x00\x00\x00\x00\x00\x08\x10\x01\x00\x00\x00\x00\x00"), -Section(".text", 0x600, "\x81\x00\x00\xb0\x22\x50\x00\x91\x00\x00\x80\x52\x3f\x14\x00\xb9\x5f\x04\x00\xb9\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1d\x00\x80\xd2\x1e\x00\x80\xd2\xe5\x03\x00\xaa\xe1\x03\x40\xf9\xe2\x23\x00\x91\xe6\x03\x00\x91\x80\x00\x00\x90\x00\xf8\x47\xf9\x03\x00\x80\xd2\x04\x00\x80\xd2\xd5\xff\xff\x97\xe0\xff\xff\x97\x80\x00\x00\x90\x00\xf4\x47\xf9\x40\x00\x00\xb4\xd8\xff\xff\x17\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x80\x00\x00\xb0\x00\x40\x00\x91\x81\x00\x00\xb0\x21\x40\x00\x91\x3f\x00\x00\xeb\xc0\x00\x00\x54\x81\x00\x00\x90\x21\xec\x47\xf9\x61\x00\x00\xb4\xf0\x03\x01\xaa\x00\x02\x1f\xd6\xc0\x03\x5f\xd6\x80\x00\x00\xb0\x00\x40\x00\x91\x81\x00\x00\xb0\x21\x40\x00\x91\x21\x00\x00\xcb\x22\xfc\x7f\xd3\x41\x0c\x81\x8b\x21\xfc\x41\x93\xc1\x00\x00\xb4\x82\x00\x00\x90\x42\xfc\x47\xf9\x62\x00\x00\xb4\xf0\x03\x02\xaa\x00\x02\x1f\xd6\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\xfd\x7b\xbe\xa9\xfd\x03\x00\x91\xf3\x0b\x00\xf9\x93\x00\x00\xb0\x60\x42\x40\x39\x40\x01\x00\x35\x80\x00\x00\x90\x00\xf0\x47\xf9\x80\x00\x00\xb4\x80\x00\x00\xb0\x00\x04\x40\xf9\xa9\xff\xff\x97\xd8\xff\xff\x97\x20\x00\x80\x52\x60\x42\x00\x39\xf3\x0b\x40\xf9\xfd\x7b\xc2\xa8\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\xdc\xff\xff\x17")]), -Memmap([Annotation(Region(0x0,0x847), Attr("segment","02 0 2120")), -Annotation(Region(0x600,0x617), Attr("symbol","\"main\"")), -Annotation(Region(0x0,0xF9), Attr("section","\".shstrtab\"")), -Annotation(Region(0x0,0x232), Attr("section","\".strtab\"")), -Annotation(Region(0x0,0x2A), Attr("section","\".comment\"")), -Annotation(Region(0x238,0x252), Attr("section","\".interp\"")), -Annotation(Region(0x254,0x277), Attr("section","\".note.gnu.build-id\"")), -Annotation(Region(0x278,0x297), Attr("section","\".note.ABI-tag\"")), -Annotation(Region(0x298,0x2B3), Attr("section","\".gnu.hash\"")), -Annotation(Region(0x2B8,0x38F), Attr("section","\".dynsym\"")), -Annotation(Region(0x390,0x41C), Attr("section","\".dynstr\"")), -Annotation(Region(0x41E,0x42F), Attr("section","\".gnu.version\"")), -Annotation(Region(0x430,0x45F), Attr("section","\".gnu.version_r\"")), -Annotation(Region(0x460,0x51F), Attr("section","\".rela.dyn\"")), -Annotation(Region(0x520,0x57F), Attr("section","\".rela.plt\"")), -Annotation(Region(0x580,0x597), Attr("section","\".init\"")), -Annotation(Region(0x5A0,0x5FF), Attr("section","\".plt\"")), -Annotation(Region(0x580,0x597), Attr("code-region","()")), -Annotation(Region(0x5A0,0x5FF), Attr("code-region","()")), -Annotation(Region(0x600,0x617), Attr("symbol-info","main 0x600 24")), -Annotation(Region(0x640,0x673), Attr("symbol","\"_start\"")), -Annotation(Region(0x640,0x673), Attr("symbol-info","_start 0x640 52")), -Annotation(Region(0x674,0x687), Attr("symbol","\"call_weak_fn\"")), -Annotation(Region(0x674,0x687), Attr("symbol-info","call_weak_fn 0x674 20")), -Annotation(Region(0x754,0x767), Attr("section","\".fini\"")), -Annotation(Region(0x768,0x76B), Attr("section","\".rodata\"")), -Annotation(Region(0x76C,0x7A7), Attr("section","\".eh_frame_hdr\"")), -Annotation(Region(0x7A8,0x847), Attr("section","\".eh_frame\"")), -Annotation(Region(0x10D98,0x1100F), Attr("segment","03 0x10D98 648")), -Annotation(Region(0x10DA0,0x10DA7), Attr("section","\".fini_array\"")), -Annotation(Region(0x10DA8,0x10F97), Attr("section","\".dynamic\"")), -Annotation(Region(0x10D98,0x10D9F), Attr("section","\".init_array\"")), -Annotation(Region(0x10F98,0x10FFF), Attr("section","\".got\"")), -Annotation(Region(0x11000,0x1100F), Attr("section","\".data\"")), -Annotation(Region(0x600,0x753), Attr("section","\".text\"")), -Annotation(Region(0x600,0x753), Attr("code-region","()")), -Annotation(Region(0x754,0x767), Attr("code-region","()"))]), -Program(Tid(1_510, "%000005e6"), Attrs([]), - Subs([Sub(Tid(1_460, "@__cxa_finalize"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x5D0"), -Attr("stub","()")]), "__cxa_finalize", Args([Arg(Tid(1_511, "%000005e7"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("__cxa_finalize_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(856, "@__cxa_finalize"), - Attrs([Attr("address","0x5D0")]), Phis([]), -Defs([Def(Tid(1_104, "%00000450"), Attrs([Attr("address","0x5D0"), -Attr("insn","adrp x16, #65536")]), Var("R16",Imm(64)), Int(65536,64)), -Def(Tid(1_111, "%00000457"), Attrs([Attr("address","0x5D4"), -Attr("insn","ldr x17, [x16, #0xfb8]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(4024,64)),LittleEndian(),64)), -Def(Tid(1_117, "%0000045d"), Attrs([Attr("address","0x5D8"), -Attr("insn","add x16, x16, #0xfb8")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(4024,64)))]), Jmps([Call(Tid(1_122, "%00000462"), - Attrs([Attr("address","0x5DC"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), -Sub(Tid(1_461, "@__do_global_dtors_aux"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x700")]), - "__do_global_dtors_aux", Args([Arg(Tid(1_512, "%000005e8"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("__do_global_dtors_aux_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(709, "@__do_global_dtors_aux"), - Attrs([Attr("address","0x700")]), Phis([]), Defs([Def(Tid(713, "%000002c9"), - Attrs([Attr("address","0x700"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("#3",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(18446744073709551584,64))), -Def(Tid(719, "%000002cf"), Attrs([Attr("address","0x700"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("#3",Imm(64)),Var("R29",Imm(64)),LittleEndian(),64)), -Def(Tid(725, "%000002d5"), Attrs([Attr("address","0x700"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("#3",Imm(64)),Int(8,64)),Var("R30",Imm(64)),LittleEndian(),64)), -Def(Tid(729, "%000002d9"), Attrs([Attr("address","0x700"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("R31",Imm(64)), -Var("#3",Imm(64))), Def(Tid(735, "%000002df"), - Attrs([Attr("address","0x704"), Attr("insn","mov x29, sp")]), - Var("R29",Imm(64)), Var("R31",Imm(64))), Def(Tid(743, "%000002e7"), - Attrs([Attr("address","0x708"), Attr("insn","str x19, [sp, #0x10]")]), - Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(16,64)),Var("R19",Imm(64)),LittleEndian(),64)), -Def(Tid(748, "%000002ec"), Attrs([Attr("address","0x70C"), -Attr("insn","adrp x19, #69632")]), Var("R19",Imm(64)), Int(69632,64)), -Def(Tid(755, "%000002f3"), Attrs([Attr("address","0x710"), -Attr("insn","ldrb w0, [x19, #0x10]")]), Var("R0",Imm(64)), -UNSIGNED(64,Load(Var("mem",Mem(64,8)),PLUS(Var("R19",Imm(64)),Int(16,64)),LittleEndian(),8)))]), -Jmps([Goto(Tid(762, "%000002fa"), Attrs([Attr("address","0x714"), -Attr("insn","cbnz w0, #0x28")]), - NEQ(Extract(31,0,Var("R0",Imm(64))),Int(0,32)), -Direct(Tid(760, "%000002f8"))), Goto(Tid(1_500, "%000005dc"), Attrs([]), - Int(1,1), Direct(Tid(801, "%00000321")))])), Blk(Tid(801, "%00000321"), - Attrs([Attr("address","0x718")]), Phis([]), Defs([Def(Tid(804, "%00000324"), - Attrs([Attr("address","0x718"), Attr("insn","adrp x0, #65536")]), - Var("R0",Imm(64)), Int(65536,64)), Def(Tid(811, "%0000032b"), - Attrs([Attr("address","0x71C"), Attr("insn","ldr x0, [x0, #0xfe0]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(4064,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(817, "%00000331"), Attrs([Attr("address","0x720"), -Attr("insn","cbz x0, #0x10")]), EQ(Var("R0",Imm(64)),Int(0,64)), -Direct(Tid(815, "%0000032f"))), Goto(Tid(1_501, "%000005dd"), Attrs([]), - Int(1,1), Direct(Tid(840, "%00000348")))])), Blk(Tid(840, "%00000348"), - Attrs([Attr("address","0x724")]), Phis([]), Defs([Def(Tid(843, "%0000034b"), - Attrs([Attr("address","0x724"), Attr("insn","adrp x0, #69632")]), - Var("R0",Imm(64)), Int(69632,64)), Def(Tid(850, "%00000352"), - Attrs([Attr("address","0x728"), Attr("insn","ldr x0, [x0, #0x8]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(855, "%00000357"), Attrs([Attr("address","0x72C"), -Attr("insn","bl #-0x15c")]), Var("R30",Imm(64)), Int(1840,64))]), -Jmps([Call(Tid(858, "%0000035a"), Attrs([Attr("address","0x72C"), -Attr("insn","bl #-0x15c")]), Int(1,1), -(Direct(Tid(1_460, "@__cxa_finalize")),Direct(Tid(815, "%0000032f"))))])), -Blk(Tid(815, "%0000032f"), Attrs([Attr("address","0x730")]), Phis([]), -Defs([Def(Tid(823, "%00000337"), Attrs([Attr("address","0x730"), -Attr("insn","bl #-0xa0")]), Var("R30",Imm(64)), Int(1844,64))]), -Jmps([Call(Tid(825, "%00000339"), Attrs([Attr("address","0x730"), -Attr("insn","bl #-0xa0")]), Int(1,1), -(Direct(Tid(1_474, "@deregister_tm_clones")),Direct(Tid(827, "%0000033b"))))])), -Blk(Tid(827, "%0000033b"), Attrs([Attr("address","0x734")]), Phis([]), -Defs([Def(Tid(830, "%0000033e"), Attrs([Attr("address","0x734"), -Attr("insn","mov w0, #0x1")]), Var("R0",Imm(64)), Int(1,64)), -Def(Tid(838, "%00000346"), Attrs([Attr("address","0x738"), -Attr("insn","strb w0, [x19, #0x10]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R19",Imm(64)),Int(16,64)),Extract(7,0,Var("R0",Imm(64))),LittleEndian(),8))]), -Jmps([Goto(Tid(1_502, "%000005de"), Attrs([]), Int(1,1), -Direct(Tid(760, "%000002f8")))])), Blk(Tid(760, "%000002f8"), - Attrs([Attr("address","0x73C")]), Phis([]), Defs([Def(Tid(770, "%00000302"), - Attrs([Attr("address","0x73C"), Attr("insn","ldr x19, [sp, #0x10]")]), - Var("R19",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(16,64)),LittleEndian(),64)), -Def(Tid(777, "%00000309"), Attrs([Attr("address","0x740"), -Attr("insn","ldp x29, x30, [sp], #0x20")]), Var("R29",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(782, "%0000030e"), Attrs([Attr("address","0x740"), -Attr("insn","ldp x29, x30, [sp], #0x20")]), Var("R30",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(786, "%00000312"), Attrs([Attr("address","0x740"), -Attr("insn","ldp x29, x30, [sp], #0x20")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(32,64)))]), Jmps([Call(Tid(791, "%00000317"), - Attrs([Attr("address","0x744"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), Sub(Tid(1_465, "@__libc_start_main"), - Attrs([Attr("c.proto","signed (*)(signed (*)(signed , char** , char** );* main, signed , char** , \nvoid* auxv)"), -Attr("address","0x5C0"), Attr("stub","()")]), "__libc_start_main", - Args([Arg(Tid(1_513, "%000005e9"), - Attrs([Attr("c.layout","**[ : 64]"), -Attr("c.data","Top:u64 ptr ptr"), -Attr("c.type","signed (*)(signed , char** , char** );*")]), - Var("__libc_start_main_main",Imm(64)), Var("R0",Imm(64)), In()), -Arg(Tid(1_514, "%000005ea"), Attrs([Attr("c.layout","[signed : 32]"), -Attr("c.data","Top:u32"), Attr("c.type","signed")]), - Var("__libc_start_main_arg2",Imm(32)), LOW(32,Var("R1",Imm(64))), In()), -Arg(Tid(1_515, "%000005eb"), Attrs([Attr("c.layout","**[char : 8]"), -Attr("c.data","Top:u8 ptr ptr"), Attr("c.type","char**")]), - Var("__libc_start_main_arg3",Imm(64)), Var("R2",Imm(64)), Both()), -Arg(Tid(1_516, "%000005ec"), Attrs([Attr("c.layout","*[ : 8]"), -Attr("c.data","{} ptr"), Attr("c.type","void*")]), - Var("__libc_start_main_auxv",Imm(64)), Var("R3",Imm(64)), Both()), -Arg(Tid(1_517, "%000005ed"), Attrs([Attr("c.layout","[signed : 32]"), -Attr("c.data","Top:u32"), Attr("c.type","signed")]), - Var("__libc_start_main_result",Imm(32)), LOW(32,Var("R0",Imm(64))), -Out())]), Blks([Blk(Tid(542, "@__libc_start_main"), - Attrs([Attr("address","0x5C0")]), Phis([]), -Defs([Def(Tid(1_082, "%0000043a"), Attrs([Attr("address","0x5C0"), -Attr("insn","adrp x16, #65536")]), Var("R16",Imm(64)), Int(65536,64)), -Def(Tid(1_089, "%00000441"), Attrs([Attr("address","0x5C4"), -Attr("insn","ldr x17, [x16, #0xfb0]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(4016,64)),LittleEndian(),64)), -Def(Tid(1_095, "%00000447"), Attrs([Attr("address","0x5C8"), -Attr("insn","add x16, x16, #0xfb0")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(4016,64)))]), Jmps([Call(Tid(1_100, "%0000044c"), - Attrs([Attr("address","0x5CC"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), Sub(Tid(1_466, "@_fini"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x754")]), - "_fini", Args([Arg(Tid(1_518, "%000005ee"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("_fini_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(31, "@_fini"), - Attrs([Attr("address","0x754")]), Phis([]), Defs([Def(Tid(37, "%00000025"), - Attrs([Attr("address","0x758"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("#0",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(18446744073709551600,64))), -Def(Tid(43, "%0000002b"), Attrs([Attr("address","0x758"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("#0",Imm(64)),Var("R29",Imm(64)),LittleEndian(),64)), -Def(Tid(49, "%00000031"), Attrs([Attr("address","0x758"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("#0",Imm(64)),Int(8,64)),Var("R30",Imm(64)),LittleEndian(),64)), -Def(Tid(53, "%00000035"), Attrs([Attr("address","0x758"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("R31",Imm(64)), -Var("#0",Imm(64))), Def(Tid(59, "%0000003b"), Attrs([Attr("address","0x75C"), -Attr("insn","mov x29, sp")]), Var("R29",Imm(64)), Var("R31",Imm(64))), -Def(Tid(66, "%00000042"), Attrs([Attr("address","0x760"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R29",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(71, "%00000047"), Attrs([Attr("address","0x760"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R30",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(75, "%0000004b"), Attrs([Attr("address","0x760"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(16,64)))]), Jmps([Call(Tid(80, "%00000050"), - Attrs([Attr("address","0x764"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), Sub(Tid(1_467, "@_init"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x580")]), - "_init", Args([Arg(Tid(1_519, "%000005ef"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("_init_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(1_286, "@_init"), - Attrs([Attr("address","0x580")]), Phis([]), -Defs([Def(Tid(1_292, "%0000050c"), Attrs([Attr("address","0x584"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("#5",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(18446744073709551600,64))), -Def(Tid(1_298, "%00000512"), Attrs([Attr("address","0x584"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("#5",Imm(64)),Var("R29",Imm(64)),LittleEndian(),64)), -Def(Tid(1_304, "%00000518"), Attrs([Attr("address","0x584"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("#5",Imm(64)),Int(8,64)),Var("R30",Imm(64)),LittleEndian(),64)), -Def(Tid(1_308, "%0000051c"), Attrs([Attr("address","0x584"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("R31",Imm(64)), -Var("#5",Imm(64))), Def(Tid(1_314, "%00000522"), - Attrs([Attr("address","0x588"), Attr("insn","mov x29, sp")]), - Var("R29",Imm(64)), Var("R31",Imm(64))), Def(Tid(1_319, "%00000527"), - Attrs([Attr("address","0x58C"), Attr("insn","bl #0xe8")]), - Var("R30",Imm(64)), Int(1424,64))]), Jmps([Call(Tid(1_321, "%00000529"), - Attrs([Attr("address","0x58C"), Attr("insn","bl #0xe8")]), Int(1,1), -(Direct(Tid(1_472, "@call_weak_fn")),Direct(Tid(1_323, "%0000052b"))))])), -Blk(Tid(1_323, "%0000052b"), Attrs([Attr("address","0x590")]), Phis([]), -Defs([Def(Tid(1_328, "%00000530"), Attrs([Attr("address","0x590"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R29",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(1_333, "%00000535"), Attrs([Attr("address","0x590"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R30",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(1_337, "%00000539"), Attrs([Attr("address","0x590"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(16,64)))]), Jmps([Call(Tid(1_342, "%0000053e"), - Attrs([Attr("address","0x594"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), Sub(Tid(1_468, "@_start"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x640"), -Attr("entry-point","()")]), "_start", Args([Arg(Tid(1_520, "%000005f0"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("_start_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(479, "@_start"), - Attrs([Attr("address","0x640")]), Phis([]), Defs([Def(Tid(484, "%000001e4"), - Attrs([Attr("address","0x644"), Attr("insn","mov x29, #0x0")]), - Var("R29",Imm(64)), Int(0,64)), Def(Tid(489, "%000001e9"), - Attrs([Attr("address","0x648"), Attr("insn","mov x30, #0x0")]), - Var("R30",Imm(64)), Int(0,64)), Def(Tid(495, "%000001ef"), - Attrs([Attr("address","0x64C"), Attr("insn","mov x5, x0")]), - Var("R5",Imm(64)), Var("R0",Imm(64))), Def(Tid(502, "%000001f6"), - Attrs([Attr("address","0x650"), Attr("insn","ldr x1, [sp]")]), - Var("R1",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(508, "%000001fc"), Attrs([Attr("address","0x654"), -Attr("insn","add x2, sp, #0x8")]), Var("R2",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(8,64))), Def(Tid(514, "%00000202"), - Attrs([Attr("address","0x658"), Attr("insn","mov x6, sp")]), - Var("R6",Imm(64)), Var("R31",Imm(64))), Def(Tid(519, "%00000207"), - Attrs([Attr("address","0x65C"), Attr("insn","adrp x0, #65536")]), - Var("R0",Imm(64)), Int(65536,64)), Def(Tid(526, "%0000020e"), - Attrs([Attr("address","0x660"), Attr("insn","ldr x0, [x0, #0xff0]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(4080,64)),LittleEndian(),64)), -Def(Tid(531, "%00000213"), Attrs([Attr("address","0x664"), -Attr("insn","mov x3, #0x0")]), Var("R3",Imm(64)), Int(0,64)), -Def(Tid(536, "%00000218"), Attrs([Attr("address","0x668"), -Attr("insn","mov x4, #0x0")]), Var("R4",Imm(64)), Int(0,64)), -Def(Tid(541, "%0000021d"), Attrs([Attr("address","0x66C"), -Attr("insn","bl #-0xac")]), Var("R30",Imm(64)), Int(1648,64))]), -Jmps([Call(Tid(544, "%00000220"), Attrs([Attr("address","0x66C"), -Attr("insn","bl #-0xac")]), Int(1,1), -(Direct(Tid(1_465, "@__libc_start_main")),Direct(Tid(546, "%00000222"))))])), -Blk(Tid(546, "%00000222"), Attrs([Attr("address","0x670")]), Phis([]), -Defs([Def(Tid(549, "%00000225"), Attrs([Attr("address","0x670"), -Attr("insn","bl #-0x80")]), Var("R30",Imm(64)), Int(1652,64))]), -Jmps([Call(Tid(552, "%00000228"), Attrs([Attr("address","0x670"), -Attr("insn","bl #-0x80")]), Int(1,1), -(Direct(Tid(1_471, "@abort")),Direct(Tid(1_503, "%000005df"))))])), -Blk(Tid(1_503, "%000005df"), Attrs([]), Phis([]), Defs([]), -Jmps([Call(Tid(1_504, "%000005e0"), Attrs([]), Int(1,1), -(Direct(Tid(1_472, "@call_weak_fn")),))]))])), Sub(Tid(1_471, "@abort"), - Attrs([Attr("noreturn","()"), Attr("c.proto","void (*)(void)"), -Attr("address","0x5F0"), Attr("stub","()")]), "abort", Args([]), -Blks([Blk(Tid(550, "@abort"), Attrs([Attr("address","0x5F0")]), Phis([]), -Defs([Def(Tid(1_148, "%0000047c"), Attrs([Attr("address","0x5F0"), -Attr("insn","adrp x16, #65536")]), Var("R16",Imm(64)), Int(65536,64)), -Def(Tid(1_155, "%00000483"), Attrs([Attr("address","0x5F4"), -Attr("insn","ldr x17, [x16, #0xfc8]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(4040,64)),LittleEndian(),64)), -Def(Tid(1_161, "%00000489"), Attrs([Attr("address","0x5F8"), -Attr("insn","add x16, x16, #0xfc8")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(4040,64)))]), Jmps([Call(Tid(1_166, "%0000048e"), - Attrs([Attr("address","0x5FC"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), Sub(Tid(1_472, "@call_weak_fn"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x674")]), - "call_weak_fn", Args([Arg(Tid(1_521, "%000005f1"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("call_weak_fn_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(554, "@call_weak_fn"), - Attrs([Attr("address","0x674")]), Phis([]), Defs([Def(Tid(557, "%0000022d"), - Attrs([Attr("address","0x674"), Attr("insn","adrp x0, #65536")]), - Var("R0",Imm(64)), Int(65536,64)), Def(Tid(564, "%00000234"), - Attrs([Attr("address","0x678"), Attr("insn","ldr x0, [x0, #0xfe8]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(4072,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(570, "%0000023a"), Attrs([Attr("address","0x67C"), -Attr("insn","cbz x0, #0x8")]), EQ(Var("R0",Imm(64)),Int(0,64)), -Direct(Tid(568, "%00000238"))), Goto(Tid(1_505, "%000005e1"), Attrs([]), - Int(1,1), Direct(Tid(920, "%00000398")))])), Blk(Tid(568, "%00000238"), - Attrs([Attr("address","0x684")]), Phis([]), Defs([]), -Jmps([Call(Tid(576, "%00000240"), Attrs([Attr("address","0x684"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))])), -Blk(Tid(920, "%00000398"), Attrs([Attr("address","0x680")]), Phis([]), -Defs([]), Jmps([Goto(Tid(923, "%0000039b"), Attrs([Attr("address","0x680"), -Attr("insn","b #-0xa0")]), Int(1,1), Direct(Tid(921, "@__gmon_start__")))])), -Blk(Tid(921, "@__gmon_start__"), Attrs([Attr("address","0x5E0")]), Phis([]), -Defs([Def(Tid(1_126, "%00000466"), Attrs([Attr("address","0x5E0"), -Attr("insn","adrp x16, #65536")]), Var("R16",Imm(64)), Int(65536,64)), -Def(Tid(1_133, "%0000046d"), Attrs([Attr("address","0x5E4"), -Attr("insn","ldr x17, [x16, #0xfc0]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(4032,64)),LittleEndian(),64)), -Def(Tid(1_139, "%00000473"), Attrs([Attr("address","0x5E8"), -Attr("insn","add x16, x16, #0xfc0")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(4032,64)))]), Jmps([Call(Tid(1_144, "%00000478"), - Attrs([Attr("address","0x5EC"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), -Sub(Tid(1_474, "@deregister_tm_clones"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x690")]), - "deregister_tm_clones", Args([Arg(Tid(1_522, "%000005f2"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("deregister_tm_clones_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(582, "@deregister_tm_clones"), - Attrs([Attr("address","0x690")]), Phis([]), Defs([Def(Tid(585, "%00000249"), - Attrs([Attr("address","0x690"), Attr("insn","adrp x0, #69632")]), - Var("R0",Imm(64)), Int(69632,64)), Def(Tid(591, "%0000024f"), - Attrs([Attr("address","0x694"), Attr("insn","add x0, x0, #0x10")]), - Var("R0",Imm(64)), PLUS(Var("R0",Imm(64)),Int(16,64))), -Def(Tid(596, "%00000254"), Attrs([Attr("address","0x698"), -Attr("insn","adrp x1, #69632")]), Var("R1",Imm(64)), Int(69632,64)), -Def(Tid(602, "%0000025a"), Attrs([Attr("address","0x69C"), -Attr("insn","add x1, x1, #0x10")]), Var("R1",Imm(64)), -PLUS(Var("R1",Imm(64)),Int(16,64))), Def(Tid(608, "%00000260"), - Attrs([Attr("address","0x6A0"), Attr("insn","cmp x1, x0")]), - Var("#1",Imm(64)), NOT(Var("R0",Imm(64)))), Def(Tid(613, "%00000265"), - Attrs([Attr("address","0x6A0"), Attr("insn","cmp x1, x0")]), - Var("#2",Imm(64)), PLUS(Var("R1",Imm(64)),NOT(Var("R0",Imm(64))))), -Def(Tid(619, "%0000026b"), Attrs([Attr("address","0x6A0"), -Attr("insn","cmp x1, x0")]), Var("VF",Imm(1)), -NEQ(SIGNED(65,PLUS(Var("#2",Imm(64)),Int(1,64))),PLUS(PLUS(SIGNED(65,Var("R1",Imm(64))),SIGNED(65,Var("#1",Imm(64)))),Int(1,65)))), -Def(Tid(625, "%00000271"), Attrs([Attr("address","0x6A0"), -Attr("insn","cmp x1, x0")]), Var("CF",Imm(1)), -NEQ(UNSIGNED(65,PLUS(Var("#2",Imm(64)),Int(1,64))),PLUS(PLUS(UNSIGNED(65,Var("R1",Imm(64))),UNSIGNED(65,Var("#1",Imm(64)))),Int(1,65)))), -Def(Tid(629, "%00000275"), Attrs([Attr("address","0x6A0"), -Attr("insn","cmp x1, x0")]), Var("ZF",Imm(1)), -EQ(PLUS(Var("#2",Imm(64)),Int(1,64)),Int(0,64))), Def(Tid(633, "%00000279"), - Attrs([Attr("address","0x6A0"), Attr("insn","cmp x1, x0")]), - Var("NF",Imm(1)), Extract(63,63,PLUS(Var("#2",Imm(64)),Int(1,64))))]), -Jmps([Goto(Tid(639, "%0000027f"), Attrs([Attr("address","0x6A4"), -Attr("insn","b.eq #0x18")]), EQ(Var("ZF",Imm(1)),Int(1,1)), -Direct(Tid(637, "%0000027d"))), Goto(Tid(1_506, "%000005e2"), Attrs([]), - Int(1,1), Direct(Tid(890, "%0000037a")))])), Blk(Tid(890, "%0000037a"), - Attrs([Attr("address","0x6A8")]), Phis([]), Defs([Def(Tid(893, "%0000037d"), - Attrs([Attr("address","0x6A8"), Attr("insn","adrp x1, #65536")]), - Var("R1",Imm(64)), Int(65536,64)), Def(Tid(900, "%00000384"), - Attrs([Attr("address","0x6AC"), Attr("insn","ldr x1, [x1, #0xfd8]")]), - Var("R1",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R1",Imm(64)),Int(4056,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(905, "%00000389"), Attrs([Attr("address","0x6B0"), -Attr("insn","cbz x1, #0xc")]), EQ(Var("R1",Imm(64)),Int(0,64)), -Direct(Tid(637, "%0000027d"))), Goto(Tid(1_507, "%000005e3"), Attrs([]), - Int(1,1), Direct(Tid(909, "%0000038d")))])), Blk(Tid(637, "%0000027d"), - Attrs([Attr("address","0x6BC")]), Phis([]), Defs([]), -Jmps([Call(Tid(645, "%00000285"), Attrs([Attr("address","0x6BC"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))])), -Blk(Tid(909, "%0000038d"), Attrs([Attr("address","0x6B4")]), Phis([]), -Defs([Def(Tid(913, "%00000391"), Attrs([Attr("address","0x6B4"), -Attr("insn","mov x16, x1")]), Var("R16",Imm(64)), Var("R1",Imm(64)))]), -Jmps([Call(Tid(918, "%00000396"), Attrs([Attr("address","0x6B8"), -Attr("insn","br x16")]), Int(1,1), (Indirect(Var("R16",Imm(64))),))]))])), -Sub(Tid(1_477, "@frame_dummy"), Attrs([Attr("c.proto","signed (*)(void)"), -Attr("address","0x750")]), "frame_dummy", Args([Arg(Tid(1_523, "%000005f3"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("frame_dummy_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(797, "@frame_dummy"), - Attrs([Attr("address","0x750")]), Phis([]), Defs([]), -Jmps([Call(Tid(799, "%0000031f"), Attrs([Attr("address","0x750"), -Attr("insn","b #-0x90")]), Int(1,1), -(Direct(Tid(1_479, "@register_tm_clones")),))]))])), Sub(Tid(1_478, "@main"), - Attrs([Attr("c.proto","signed (*)(signed argc, const char** argv)"), -Attr("address","0x600"), Attr("stub","()")]), "main", - Args([Arg(Tid(1_524, "%000005f4"), Attrs([Attr("c.layout","[signed : 32]"), -Attr("c.data","Top:u32"), Attr("c.type","signed")]), - Var("main_argc",Imm(32)), LOW(32,Var("R0",Imm(64))), In()), -Arg(Tid(1_525, "%000005f5"), Attrs([Attr("c.layout","**[char : 8]"), -Attr("c.data","Top:u8 ptr ptr"), Attr("c.type"," const char**")]), - Var("main_argv",Imm(64)), Var("R1",Imm(64)), Both()), -Arg(Tid(1_526, "%000005f6"), Attrs([Attr("c.layout","[signed : 32]"), -Attr("c.data","Top:u32"), Attr("c.type","signed")]), - Var("main_result",Imm(32)), LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(424, "@main"), Attrs([Attr("address","0x600")]), Phis([]), -Defs([Def(Tid(427, "%000001ab"), Attrs([Attr("address","0x600"), -Attr("insn","adrp x1, #69632")]), Var("R1",Imm(64)), Int(69632,64)), -Def(Tid(433, "%000001b1"), Attrs([Attr("address","0x604"), -Attr("insn","add x2, x1, #0x14")]), Var("R2",Imm(64)), -PLUS(Var("R1",Imm(64)),Int(20,64))), Def(Tid(438, "%000001b6"), - Attrs([Attr("address","0x608"), Attr("insn","mov w0, #0x0")]), - Var("R0",Imm(64)), Int(0,64)), Def(Tid(445, "%000001bd"), - Attrs([Attr("address","0x60C"), Attr("insn","str wzr, [x1, #0x14]")]), - Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R1",Imm(64)),Int(20,64)),Int(0,32),LittleEndian(),32)), -Def(Tid(452, "%000001c4"), Attrs([Attr("address","0x610"), -Attr("insn","str wzr, [x2, #0x4]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R2",Imm(64)),Int(4,64)),Int(0,32),LittleEndian(),32))]), -Jmps([Call(Tid(457, "%000001c9"), Attrs([Attr("address","0x614"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))]))])), -Sub(Tid(1_479, "@register_tm_clones"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x6C0")]), - "register_tm_clones", Args([Arg(Tid(1_527, "%000005f7"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("register_tm_clones_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(647, "@register_tm_clones"), Attrs([Attr("address","0x6C0")]), - Phis([]), Defs([Def(Tid(650, "%0000028a"), Attrs([Attr("address","0x6C0"), -Attr("insn","adrp x0, #69632")]), Var("R0",Imm(64)), Int(69632,64)), -Def(Tid(656, "%00000290"), Attrs([Attr("address","0x6C4"), -Attr("insn","add x0, x0, #0x10")]), Var("R0",Imm(64)), -PLUS(Var("R0",Imm(64)),Int(16,64))), Def(Tid(661, "%00000295"), - Attrs([Attr("address","0x6C8"), Attr("insn","adrp x1, #69632")]), - Var("R1",Imm(64)), Int(69632,64)), Def(Tid(667, "%0000029b"), - Attrs([Attr("address","0x6CC"), Attr("insn","add x1, x1, #0x10")]), - Var("R1",Imm(64)), PLUS(Var("R1",Imm(64)),Int(16,64))), -Def(Tid(674, "%000002a2"), Attrs([Attr("address","0x6D0"), -Attr("insn","sub x1, x1, x0")]), Var("R1",Imm(64)), -PLUS(PLUS(Var("R1",Imm(64)),NOT(Var("R0",Imm(64)))),Int(1,64))), -Def(Tid(680, "%000002a8"), Attrs([Attr("address","0x6D4"), -Attr("insn","lsr x2, x1, #63")]), Var("R2",Imm(64)), -Concat(Int(0,63),Extract(63,63,Var("R1",Imm(64))))), -Def(Tid(687, "%000002af"), Attrs([Attr("address","0x6D8"), -Attr("insn","add x1, x2, x1, asr #3")]), Var("R1",Imm(64)), -PLUS(Var("R2",Imm(64)),ARSHIFT(Var("R1",Imm(64)),Int(3,3)))), -Def(Tid(693, "%000002b5"), Attrs([Attr("address","0x6DC"), -Attr("insn","asr x1, x1, #1")]), Var("R1",Imm(64)), -SIGNED(64,Extract(63,1,Var("R1",Imm(64)))))]), -Jmps([Goto(Tid(699, "%000002bb"), Attrs([Attr("address","0x6E0"), -Attr("insn","cbz x1, #0x18")]), EQ(Var("R1",Imm(64)),Int(0,64)), -Direct(Tid(697, "%000002b9"))), Goto(Tid(1_508, "%000005e4"), Attrs([]), - Int(1,1), Direct(Tid(860, "%0000035c")))])), Blk(Tid(860, "%0000035c"), - Attrs([Attr("address","0x6E4")]), Phis([]), Defs([Def(Tid(863, "%0000035f"), - Attrs([Attr("address","0x6E4"), Attr("insn","adrp x2, #65536")]), - Var("R2",Imm(64)), Int(65536,64)), Def(Tid(870, "%00000366"), - Attrs([Attr("address","0x6E8"), Attr("insn","ldr x2, [x2, #0xff8]")]), - Var("R2",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R2",Imm(64)),Int(4088,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(875, "%0000036b"), Attrs([Attr("address","0x6EC"), -Attr("insn","cbz x2, #0xc")]), EQ(Var("R2",Imm(64)),Int(0,64)), -Direct(Tid(697, "%000002b9"))), Goto(Tid(1_509, "%000005e5"), Attrs([]), - Int(1,1), Direct(Tid(879, "%0000036f")))])), Blk(Tid(697, "%000002b9"), - Attrs([Attr("address","0x6F8")]), Phis([]), Defs([]), -Jmps([Call(Tid(705, "%000002c1"), Attrs([Attr("address","0x6F8"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))])), -Blk(Tid(879, "%0000036f"), Attrs([Attr("address","0x6F0")]), Phis([]), -Defs([Def(Tid(883, "%00000373"), Attrs([Attr("address","0x6F0"), -Attr("insn","mov x16, x2")]), Var("R16",Imm(64)), Var("R2",Imm(64)))]), -Jmps([Call(Tid(888, "%00000378"), Attrs([Attr("address","0x6F4"), -Attr("insn","br x16")]), Int(1,1), -(Indirect(Var("R16",Imm(64))),))]))]))]))) \ No newline at end of file diff --git a/src/test/correct/basic_lock_security_write/gcc_O2/basic_lock_security_write.bir b/src/test/correct/basic_lock_security_write/gcc_O2/basic_lock_security_write.bir deleted file mode 100644 index 06951fff1..000000000 --- a/src/test/correct/basic_lock_security_write/gcc_O2/basic_lock_security_write.bir +++ /dev/null @@ -1,228 +0,0 @@ -000005e6: program -000005b4: sub __cxa_finalize(__cxa_finalize_result) -000005e7: __cxa_finalize_result :: out u32 = low:32[R0] - -00000358: -00000450: R16 := 0x10000 -00000457: R17 := mem[R16 + 0xFB8, el]:u64 -0000045d: R16 := R16 + 0xFB8 -00000462: call R17 with noreturn - -000005b5: sub __do_global_dtors_aux(__do_global_dtors_aux_result) -000005e8: __do_global_dtors_aux_result :: out u32 = low:32[R0] - -000002c5: -000002c9: #3 := R31 - 0x20 -000002cf: mem := mem with [#3, el]:u64 <- R29 -000002d5: mem := mem with [#3 + 8, el]:u64 <- R30 -000002d9: R31 := #3 -000002df: R29 := R31 -000002e7: mem := mem with [R31 + 0x10, el]:u64 <- R19 -000002ec: R19 := 0x11000 -000002f3: R0 := pad:64[mem[R19 + 0x10]] -000002fa: when 31:0[R0] <> 0 goto %000002f8 -000005dc: goto %00000321 - -00000321: -00000324: R0 := 0x10000 -0000032b: R0 := mem[R0 + 0xFE0, el]:u64 -00000331: when R0 = 0 goto %0000032f -000005dd: goto %00000348 - -00000348: -0000034b: R0 := 0x11000 -00000352: R0 := mem[R0 + 8, el]:u64 -00000357: R30 := 0x730 -0000035a: call @__cxa_finalize with return %0000032f - -0000032f: -00000337: R30 := 0x734 -00000339: call @deregister_tm_clones with return %0000033b - -0000033b: -0000033e: R0 := 1 -00000346: mem := mem with [R19 + 0x10] <- 7:0[R0] -000005de: goto %000002f8 - -000002f8: -00000302: R19 := mem[R31 + 0x10, el]:u64 -00000309: R29 := mem[R31, el]:u64 -0000030e: R30 := mem[R31 + 8, el]:u64 -00000312: R31 := R31 + 0x20 -00000317: call R30 with noreturn - -000005b9: sub __libc_start_main(__libc_start_main_main, __libc_start_main_arg2, __libc_start_main_arg3, __libc_start_main_auxv, __libc_start_main_result) -000005e9: __libc_start_main_main :: in u64 = R0 -000005ea: __libc_start_main_arg2 :: in u32 = low:32[R1] -000005eb: __libc_start_main_arg3 :: in out u64 = R2 -000005ec: __libc_start_main_auxv :: in out u64 = R3 -000005ed: __libc_start_main_result :: out u32 = low:32[R0] - -0000021e: -0000043a: R16 := 0x10000 -00000441: R17 := mem[R16 + 0xFB0, el]:u64 -00000447: R16 := R16 + 0xFB0 -0000044c: call R17 with noreturn - -000005ba: sub _fini(_fini_result) -000005ee: _fini_result :: out u32 = low:32[R0] - -0000001f: -00000025: #0 := R31 - 0x10 -0000002b: mem := mem with [#0, el]:u64 <- R29 -00000031: mem := mem with [#0 + 8, el]:u64 <- R30 -00000035: R31 := #0 -0000003b: R29 := R31 -00000042: R29 := mem[R31, el]:u64 -00000047: R30 := mem[R31 + 8, el]:u64 -0000004b: R31 := R31 + 0x10 -00000050: call R30 with noreturn - -000005bb: sub _init(_init_result) -000005ef: _init_result :: out u32 = low:32[R0] - -00000506: -0000050c: #5 := R31 - 0x10 -00000512: mem := mem with [#5, el]:u64 <- R29 -00000518: mem := mem with [#5 + 8, el]:u64 <- R30 -0000051c: R31 := #5 -00000522: R29 := R31 -00000527: R30 := 0x590 -00000529: call @call_weak_fn with return %0000052b - -0000052b: -00000530: R29 := mem[R31, el]:u64 -00000535: R30 := mem[R31 + 8, el]:u64 -00000539: R31 := R31 + 0x10 -0000053e: call R30 with noreturn - -000005bc: sub _start(_start_result) -000005f0: _start_result :: out u32 = low:32[R0] - -000001df: -000001e4: R29 := 0 -000001e9: R30 := 0 -000001ef: R5 := R0 -000001f6: R1 := mem[R31, el]:u64 -000001fc: R2 := R31 + 8 -00000202: R6 := R31 -00000207: R0 := 0x10000 -0000020e: R0 := mem[R0 + 0xFF0, el]:u64 -00000213: R3 := 0 -00000218: R4 := 0 -0000021d: R30 := 0x670 -00000220: call @__libc_start_main with return %00000222 - -00000222: -00000225: R30 := 0x674 -00000228: call @abort with return %000005df - -000005df: -000005e0: call @call_weak_fn with noreturn - -000005bf: sub abort() - - -00000226: -0000047c: R16 := 0x10000 -00000483: R17 := mem[R16 + 0xFC8, el]:u64 -00000489: R16 := R16 + 0xFC8 -0000048e: call R17 with noreturn - -000005c0: sub call_weak_fn(call_weak_fn_result) -000005f1: call_weak_fn_result :: out u32 = low:32[R0] - -0000022a: -0000022d: R0 := 0x10000 -00000234: R0 := mem[R0 + 0xFE8, el]:u64 -0000023a: when R0 = 0 goto %00000238 -000005e1: goto %00000398 - -00000238: -00000240: call R30 with noreturn - -00000398: -0000039b: goto @__gmon_start__ - -00000399: -00000466: R16 := 0x10000 -0000046d: R17 := mem[R16 + 0xFC0, el]:u64 -00000473: R16 := R16 + 0xFC0 -00000478: call R17 with noreturn - -000005c2: sub deregister_tm_clones(deregister_tm_clones_result) -000005f2: deregister_tm_clones_result :: out u32 = low:32[R0] - -00000246: -00000249: R0 := 0x11000 -0000024f: R0 := R0 + 0x10 -00000254: R1 := 0x11000 -0000025a: R1 := R1 + 0x10 -00000260: #1 := ~R0 -00000265: #2 := R1 + ~R0 -0000026b: VF := extend:65[#2 + 1] <> extend:65[R1] + extend:65[#1] + 1 -00000271: CF := pad:65[#2 + 1] <> pad:65[R1] + pad:65[#1] + 1 -00000275: ZF := #2 + 1 = 0 -00000279: NF := 63:63[#2 + 1] -0000027f: when ZF goto %0000027d -000005e2: goto %0000037a - -0000037a: -0000037d: R1 := 0x10000 -00000384: R1 := mem[R1 + 0xFD8, el]:u64 -00000389: when R1 = 0 goto %0000027d -000005e3: goto %0000038d - -0000027d: -00000285: call R30 with noreturn - -0000038d: -00000391: R16 := R1 -00000396: call R16 with noreturn - -000005c5: sub frame_dummy(frame_dummy_result) -000005f3: frame_dummy_result :: out u32 = low:32[R0] - -0000031d: -0000031f: call @register_tm_clones with noreturn - -000005c6: sub main(main_argc, main_argv, main_result) -000005f4: main_argc :: in u32 = low:32[R0] -000005f5: main_argv :: in out u64 = R1 -000005f6: main_result :: out u32 = low:32[R0] - -000001a8: -000001ab: R1 := 0x11000 -000001b1: R2 := R1 + 0x14 -000001b6: R0 := 0 -000001bd: mem := mem with [R1 + 0x14, el]:u32 <- 0 -000001c4: mem := mem with [R2 + 4, el]:u32 <- 0 -000001c9: call R30 with noreturn - -000005c7: sub register_tm_clones(register_tm_clones_result) -000005f7: register_tm_clones_result :: out u32 = low:32[R0] - -00000287: -0000028a: R0 := 0x11000 -00000290: R0 := R0 + 0x10 -00000295: R1 := 0x11000 -0000029b: R1 := R1 + 0x10 -000002a2: R1 := R1 + ~R0 + 1 -000002a8: R2 := 0.63:63[R1] -000002af: R1 := R2 + (R1 ~>> 3) -000002b5: R1 := extend:64[63:1[R1]] -000002bb: when R1 = 0 goto %000002b9 -000005e4: goto %0000035c - -0000035c: -0000035f: R2 := 0x10000 -00000366: R2 := mem[R2 + 0xFF8, el]:u64 -0000036b: when R2 = 0 goto %000002b9 -000005e5: goto %0000036f - -000002b9: -000002c1: call R30 with noreturn - -0000036f: -00000373: R16 := R2 -00000378: call R16 with noreturn diff --git a/src/test/correct/basic_lock_security_write/gcc_O2/basic_lock_security_write.expected b/src/test/correct/basic_lock_security_write/gcc_O2/basic_lock_security_write.expected index 618becc6c..4c3d6f081 100644 --- a/src/test/correct/basic_lock_security_write/gcc_O2/basic_lock_security_write.expected +++ b/src/test/correct/basic_lock_security_write/gcc_O2/basic_lock_security_write.expected @@ -70,7 +70,7 @@ implementation {:extern} guarantee_reflexive() assert ((memory_load32_le(mem, $z_addr) == 0bv32) ==> ((memory_load32_le(mem, $x_addr) == memory_load32_le(mem, $x_addr)) && (memory_load32_le(mem, $z_addr) == memory_load32_le(mem, $z_addr)))); } -procedure main_1536(); +procedure main(); modifies Gamma_R0, Gamma_R1, Gamma_R2, Gamma_mem, R0, R1, R2, mem; requires (memory_load32_le(mem, $z_addr) != 0bv32); requires (Gamma_R0 == false); @@ -87,7 +87,7 @@ procedure main_1536(); free ensures (memory_load64_le(mem, 69616bv64) == 1536bv64); free ensures (memory_load64_le(mem, 69640bv64) == 69640bv64); -implementation main_1536() +implementation main() { var Gamma_x_old: bool; var x_old: bv32; @@ -98,26 +98,26 @@ implementation main_1536() R2, Gamma_R2 := bvadd64(R1, 20bv64), Gamma_R1; R0, Gamma_R0 := 0bv64, true; call rely(); + assert (L(mem, bvadd64(R1, 20bv64)) ==> true); x_old := memory_load32_le(mem, $x_addr); z_old := memory_load32_le(mem, $z_addr); Gamma_x_old := (gamma_load32(Gamma_mem, $x_addr) || L(mem, $x_addr)); - assert (L(mem, bvadd64(R1, 20bv64)) ==> true); mem, Gamma_mem := memory_store32_le(mem, bvadd64(R1, 20bv64), 0bv32), gamma_store32(Gamma_mem, bvadd64(R1, 20bv64), true); assert ((bvadd64(R1, 20bv64) == $z_addr) ==> (L(mem, $x_addr) ==> Gamma_x_old)); assert ((z_old == 0bv32) ==> ((memory_load32_le(mem, $x_addr) == x_old) && (memory_load32_le(mem, $z_addr) == z_old))); assume {:captureState "%000001bd"} true; call rely(); + assert (L(mem, bvadd64(R2, 4bv64)) ==> true); x_old := memory_load32_le(mem, $x_addr); z_old := memory_load32_le(mem, $z_addr); Gamma_x_old := (gamma_load32(Gamma_mem, $x_addr) || L(mem, $x_addr)); - assert (L(mem, bvadd64(R2, 4bv64)) ==> true); mem, Gamma_mem := memory_store32_le(mem, bvadd64(R2, 4bv64), 0bv32), gamma_store32(Gamma_mem, bvadd64(R2, 4bv64), true); assert ((bvadd64(R2, 4bv64) == $z_addr) ==> (L(mem, $x_addr) ==> Gamma_x_old)); assert ((z_old == 0bv32) ==> ((memory_load32_le(mem, $x_addr) == x_old) && (memory_load32_le(mem, $z_addr) == z_old))); assume {:captureState "%000001c4"} true; - goto main_1536_basil_return; - main_1536_basil_return: - assume {:captureState "main_1536_basil_return"} true; + goto main_basil_return; + main_basil_return: + assume {:captureState "main_basil_return"} true; return; } diff --git a/src/test/correct/basic_lock_security_write/gcc_O2/basic_lock_security_write.gts b/src/test/correct/basic_lock_security_write/gcc_O2/basic_lock_security_write.gts deleted file mode 100644 index 244a741bd..000000000 Binary files a/src/test/correct/basic_lock_security_write/gcc_O2/basic_lock_security_write.gts and /dev/null differ diff --git a/src/test/correct/basic_lock_security_write/gcc_O2/basic_lock_security_write.md5sum b/src/test/correct/basic_lock_security_write/gcc_O2/basic_lock_security_write.md5sum new file mode 100644 index 000000000..724a1c2a4 --- /dev/null +++ b/src/test/correct/basic_lock_security_write/gcc_O2/basic_lock_security_write.md5sum @@ -0,0 +1,5 @@ +5c9b62f79a399bcee0bfdd4de6c43337 correct/basic_lock_security_write/gcc_O2/a.out +ad27b94ec1e011cb078f2ca09de9626e correct/basic_lock_security_write/gcc_O2/basic_lock_security_write.adt +b6cea1469cdcd11ad998065e4c2ba98a correct/basic_lock_security_write/gcc_O2/basic_lock_security_write.bir +cf503d4e41900c9b39928ea893c4ef53 correct/basic_lock_security_write/gcc_O2/basic_lock_security_write.relf +101335790799fa174e2e188ed01b8961 correct/basic_lock_security_write/gcc_O2/basic_lock_security_write.gts diff --git a/src/test/correct/basic_lock_security_write/gcc_O2/basic_lock_security_write.relf b/src/test/correct/basic_lock_security_write/gcc_O2/basic_lock_security_write.relf deleted file mode 100644 index 258e0aea2..000000000 --- a/src/test/correct/basic_lock_security_write/gcc_O2/basic_lock_security_write.relf +++ /dev/null @@ -1,122 +0,0 @@ - -Relocation section '.rela.dyn' at offset 0x460 contains 8 entries: - Offset Info Type Symbol's Value Symbol's Name + Addend -0000000000010d98 0000000000000403 R_AARCH64_RELATIVE 750 -0000000000010da0 0000000000000403 R_AARCH64_RELATIVE 700 -0000000000010ff0 0000000000000403 R_AARCH64_RELATIVE 600 -0000000000011008 0000000000000403 R_AARCH64_RELATIVE 11008 -0000000000010fd8 0000000400000401 R_AARCH64_GLOB_DAT 0000000000000000 _ITM_deregisterTMCloneTable + 0 -0000000000010fe0 0000000500000401 R_AARCH64_GLOB_DAT 0000000000000000 __cxa_finalize@GLIBC_2.17 + 0 -0000000000010fe8 0000000600000401 R_AARCH64_GLOB_DAT 0000000000000000 __gmon_start__ + 0 -0000000000010ff8 0000000800000401 R_AARCH64_GLOB_DAT 0000000000000000 _ITM_registerTMCloneTable + 0 - -Relocation section '.rela.plt' at offset 0x520 contains 4 entries: - Offset Info Type Symbol's Value Symbol's Name + Addend -0000000000010fb0 0000000300000402 R_AARCH64_JUMP_SLOT 0000000000000000 __libc_start_main@GLIBC_2.34 + 0 -0000000000010fb8 0000000500000402 R_AARCH64_JUMP_SLOT 0000000000000000 __cxa_finalize@GLIBC_2.17 + 0 -0000000000010fc0 0000000600000402 R_AARCH64_JUMP_SLOT 0000000000000000 __gmon_start__ + 0 -0000000000010fc8 0000000700000402 R_AARCH64_JUMP_SLOT 0000000000000000 abort@GLIBC_2.17 + 0 - -Symbol table '.dynsym' contains 9 entries: - Num: Value Size Type Bind Vis Ndx Name - 0: 0000000000000000 0 NOTYPE LOCAL DEFAULT UND - 1: 0000000000000580 0 SECTION LOCAL DEFAULT 11 .init - 2: 0000000000011000 0 SECTION LOCAL DEFAULT 22 .data - 3: 0000000000000000 0 FUNC GLOBAL DEFAULT UND __libc_start_main@GLIBC_2.34 (2) - 4: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_deregisterTMCloneTable - 5: 0000000000000000 0 FUNC WEAK DEFAULT UND __cxa_finalize@GLIBC_2.17 (3) - 6: 0000000000000000 0 NOTYPE WEAK DEFAULT UND __gmon_start__ - 7: 0000000000000000 0 FUNC GLOBAL DEFAULT UND abort@GLIBC_2.17 (3) - 8: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_registerTMCloneTable - -Symbol table '.symtab' contains 89 entries: - Num: Value Size Type Bind Vis Ndx Name - 0: 0000000000000000 0 NOTYPE LOCAL DEFAULT UND - 1: 0000000000000238 0 SECTION LOCAL DEFAULT 1 .interp - 2: 0000000000000254 0 SECTION LOCAL DEFAULT 2 .note.gnu.build-id - 3: 0000000000000278 0 SECTION LOCAL DEFAULT 3 .note.ABI-tag - 4: 0000000000000298 0 SECTION LOCAL DEFAULT 4 .gnu.hash - 5: 00000000000002b8 0 SECTION LOCAL DEFAULT 5 .dynsym - 6: 0000000000000390 0 SECTION LOCAL DEFAULT 6 .dynstr - 7: 000000000000041e 0 SECTION LOCAL DEFAULT 7 .gnu.version - 8: 0000000000000430 0 SECTION LOCAL DEFAULT 8 .gnu.version_r - 9: 0000000000000460 0 SECTION LOCAL DEFAULT 9 .rela.dyn - 10: 0000000000000520 0 SECTION LOCAL DEFAULT 10 .rela.plt - 11: 0000000000000580 0 SECTION LOCAL DEFAULT 11 .init - 12: 00000000000005a0 0 SECTION LOCAL DEFAULT 12 .plt - 13: 0000000000000600 0 SECTION LOCAL DEFAULT 13 .text - 14: 0000000000000754 0 SECTION LOCAL DEFAULT 14 .fini - 15: 0000000000000768 0 SECTION LOCAL DEFAULT 15 .rodata - 16: 000000000000076c 0 SECTION LOCAL DEFAULT 16 .eh_frame_hdr - 17: 00000000000007a8 0 SECTION LOCAL DEFAULT 17 .eh_frame - 18: 0000000000010d98 0 SECTION LOCAL DEFAULT 18 .init_array - 19: 0000000000010da0 0 SECTION LOCAL DEFAULT 19 .fini_array - 20: 0000000000010da8 0 SECTION LOCAL DEFAULT 20 .dynamic - 21: 0000000000010f98 0 SECTION LOCAL DEFAULT 21 .got - 22: 0000000000011000 0 SECTION LOCAL DEFAULT 22 .data - 23: 0000000000011010 0 SECTION LOCAL DEFAULT 23 .bss - 24: 0000000000000000 0 SECTION LOCAL DEFAULT 24 .comment - 25: 0000000000000000 0 FILE LOCAL DEFAULT ABS Scrt1.o - 26: 0000000000000278 0 NOTYPE LOCAL DEFAULT 3 $d - 27: 0000000000000278 32 OBJECT LOCAL DEFAULT 3 __abi_tag - 28: 0000000000000640 0 NOTYPE LOCAL DEFAULT 13 $x - 29: 00000000000007bc 0 NOTYPE LOCAL DEFAULT 17 $d - 30: 0000000000000768 0 NOTYPE LOCAL DEFAULT 15 $d - 31: 0000000000000000 0 FILE LOCAL DEFAULT ABS crti.o - 32: 0000000000000674 0 NOTYPE LOCAL DEFAULT 13 $x - 33: 0000000000000674 20 FUNC LOCAL DEFAULT 13 call_weak_fn - 34: 0000000000000580 0 NOTYPE LOCAL DEFAULT 11 $x - 35: 0000000000000754 0 NOTYPE LOCAL DEFAULT 14 $x - 36: 0000000000000000 0 FILE LOCAL DEFAULT ABS crtn.o - 37: 0000000000000590 0 NOTYPE LOCAL DEFAULT 11 $x - 38: 0000000000000760 0 NOTYPE LOCAL DEFAULT 14 $x - 39: 0000000000000000 0 FILE LOCAL DEFAULT ABS basic_lock_security_write.c - 40: 0000000000000600 0 NOTYPE LOCAL DEFAULT 13 $x - 41: 0000000000011014 0 NOTYPE LOCAL DEFAULT 23 $d - 42: 0000000000000830 0 NOTYPE LOCAL DEFAULT 17 $d - 43: 0000000000000000 0 FILE LOCAL DEFAULT ABS crtstuff.c - 44: 0000000000000690 0 NOTYPE LOCAL DEFAULT 13 $x - 45: 0000000000000690 0 FUNC LOCAL DEFAULT 13 deregister_tm_clones - 46: 00000000000006c0 0 FUNC LOCAL DEFAULT 13 register_tm_clones - 47: 0000000000011008 0 NOTYPE LOCAL DEFAULT 22 $d - 48: 0000000000000700 0 FUNC LOCAL DEFAULT 13 __do_global_dtors_aux - 49: 0000000000011010 1 OBJECT LOCAL DEFAULT 23 completed.0 - 50: 0000000000010da0 0 NOTYPE LOCAL DEFAULT 19 $d - 51: 0000000000010da0 0 OBJECT LOCAL DEFAULT 19 __do_global_dtors_aux_fini_array_entry - 52: 0000000000000750 0 FUNC LOCAL DEFAULT 13 frame_dummy - 53: 0000000000010d98 0 NOTYPE LOCAL DEFAULT 18 $d - 54: 0000000000010d98 0 OBJECT LOCAL DEFAULT 18 __frame_dummy_init_array_entry - 55: 00000000000007d0 0 NOTYPE LOCAL DEFAULT 17 $d - 56: 0000000000011010 0 NOTYPE LOCAL DEFAULT 23 $d - 57: 0000000000000000 0 FILE LOCAL DEFAULT ABS crtstuff.c - 58: 0000000000000844 0 NOTYPE LOCAL DEFAULT 17 $d - 59: 0000000000000844 0 OBJECT LOCAL DEFAULT 17 __FRAME_END__ - 60: 0000000000000000 0 FILE LOCAL DEFAULT ABS - 61: 0000000000010da8 0 OBJECT LOCAL DEFAULT ABS _DYNAMIC - 62: 000000000000076c 0 NOTYPE LOCAL DEFAULT 16 __GNU_EH_FRAME_HDR - 63: 0000000000010fd0 0 OBJECT LOCAL DEFAULT ABS _GLOBAL_OFFSET_TABLE_ - 64: 00000000000005a0 0 NOTYPE LOCAL DEFAULT 12 $x - 65: 0000000000000000 0 FUNC GLOBAL DEFAULT UND __libc_start_main@GLIBC_2.34 - 66: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_deregisterTMCloneTable - 67: 0000000000011000 0 NOTYPE WEAK DEFAULT 22 data_start - 68: 0000000000011010 0 NOTYPE GLOBAL DEFAULT 23 __bss_start__ - 69: 0000000000000000 0 FUNC WEAK DEFAULT UND __cxa_finalize@GLIBC_2.17 - 70: 0000000000011020 0 NOTYPE GLOBAL DEFAULT 23 _bss_end__ - 71: 0000000000011010 0 NOTYPE GLOBAL DEFAULT 22 _edata - 72: 0000000000011018 4 OBJECT GLOBAL DEFAULT 23 z - 73: 0000000000011014 4 OBJECT GLOBAL DEFAULT 23 x - 74: 0000000000000754 0 FUNC GLOBAL HIDDEN 14 _fini - 75: 0000000000011020 0 NOTYPE GLOBAL DEFAULT 23 __bss_end__ - 76: 0000000000011000 0 NOTYPE GLOBAL DEFAULT 22 __data_start - 77: 0000000000000000 0 NOTYPE WEAK DEFAULT UND __gmon_start__ - 78: 0000000000011008 0 OBJECT GLOBAL HIDDEN 22 __dso_handle - 79: 0000000000000000 0 FUNC GLOBAL DEFAULT UND abort@GLIBC_2.17 - 80: 0000000000000768 4 OBJECT GLOBAL DEFAULT 15 _IO_stdin_used - 81: 0000000000011020 0 NOTYPE GLOBAL DEFAULT 23 _end - 82: 0000000000000640 52 FUNC GLOBAL DEFAULT 13 _start - 83: 0000000000011020 0 NOTYPE GLOBAL DEFAULT 23 __end__ - 84: 0000000000011010 0 NOTYPE GLOBAL DEFAULT 23 __bss_start - 85: 0000000000000600 24 FUNC GLOBAL DEFAULT 13 main - 86: 0000000000011010 0 OBJECT GLOBAL HIDDEN 22 __TMC_END__ - 87: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_registerTMCloneTable - 88: 0000000000000580 0 FUNC GLOBAL HIDDEN 11 _init diff --git a/src/test/correct/basic_lock_security_write/gcc_O2/basic_lock_security_write_gtirb.expected b/src/test/correct/basic_lock_security_write/gcc_O2/basic_lock_security_write_gtirb.expected index 018cb9a32..d70a6810b 100644 --- a/src/test/correct/basic_lock_security_write/gcc_O2/basic_lock_security_write_gtirb.expected +++ b/src/test/correct/basic_lock_security_write/gcc_O2/basic_lock_security_write_gtirb.expected @@ -70,7 +70,7 @@ implementation {:extern} guarantee_reflexive() assert ((memory_load32_le(mem, $z_addr) == 0bv32) ==> ((memory_load32_le(mem, $x_addr) == memory_load32_le(mem, $x_addr)) && (memory_load32_le(mem, $z_addr) == memory_load32_le(mem, $z_addr)))); } -procedure main_1536(); +procedure main(); modifies Gamma_R0, Gamma_R1, Gamma_R2, Gamma_mem, R0, R1, R2, mem; requires (memory_load32_le(mem, $z_addr) != 0bv32); requires (Gamma_R0 == false); @@ -87,37 +87,37 @@ procedure main_1536(); free ensures (memory_load64_le(mem, 69616bv64) == 1536bv64); free ensures (memory_load64_le(mem, 69640bv64) == 69640bv64); -implementation main_1536() +implementation main() { var Gamma_x_old: bool; var x_old: bv32; var z_old: bv32; - main_1536__0__5GGaco_8R1W8BlnA7gR28Q: - assume {:captureState "main_1536__0__5GGaco_8R1W8BlnA7gR28Q"} true; + $main$__0__$5GGaco_8R1W8BlnA7gR28Q: + assume {:captureState "$main$__0__$5GGaco_8R1W8BlnA7gR28Q"} true; R1, Gamma_R1 := 69632bv64, true; R2, Gamma_R2 := bvadd64(R1, 20bv64), Gamma_R1; R0, Gamma_R0 := 0bv64, true; call rely(); + assert (L(mem, bvadd64(R1, 20bv64)) ==> true); x_old := memory_load32_le(mem, $x_addr); z_old := memory_load32_le(mem, $z_addr); Gamma_x_old := (gamma_load32(Gamma_mem, $x_addr) || L(mem, $x_addr)); - assert (L(mem, bvadd64(R1, 20bv64)) ==> true); mem, Gamma_mem := memory_store32_le(mem, bvadd64(R1, 20bv64), 0bv32), gamma_store32(Gamma_mem, bvadd64(R1, 20bv64), true); assert ((bvadd64(R1, 20bv64) == $z_addr) ==> (L(mem, $x_addr) ==> Gamma_x_old)); assert ((z_old == 0bv32) ==> ((memory_load32_le(mem, $x_addr) == x_old) && (memory_load32_le(mem, $z_addr) == z_old))); - assume {:captureState "1548_0"} true; + assume {:captureState "1548$0"} true; call rely(); + assert (L(mem, bvadd64(R2, 4bv64)) ==> true); x_old := memory_load32_le(mem, $x_addr); z_old := memory_load32_le(mem, $z_addr); Gamma_x_old := (gamma_load32(Gamma_mem, $x_addr) || L(mem, $x_addr)); - assert (L(mem, bvadd64(R2, 4bv64)) ==> true); mem, Gamma_mem := memory_store32_le(mem, bvadd64(R2, 4bv64), 0bv32), gamma_store32(Gamma_mem, bvadd64(R2, 4bv64), true); assert ((bvadd64(R2, 4bv64) == $z_addr) ==> (L(mem, $x_addr) ==> Gamma_x_old)); assert ((z_old == 0bv32) ==> ((memory_load32_le(mem, $x_addr) == x_old) && (memory_load32_le(mem, $z_addr) == z_old))); - assume {:captureState "1552_0"} true; - goto main_1536_basil_return; - main_1536_basil_return: - assume {:captureState "main_1536_basil_return"} true; + assume {:captureState "1552$0"} true; + goto main_basil_return; + main_basil_return: + assume {:captureState "main_basil_return"} true; return; } diff --git a/src/test/correct/basic_lock_security_write/gcc_pic/basic_lock_security_write.adt b/src/test/correct/basic_lock_security_write/gcc_pic/basic_lock_security_write.adt deleted file mode 100644 index a2c878861..000000000 --- a/src/test/correct/basic_lock_security_write/gcc_pic/basic_lock_security_write.adt +++ /dev/null @@ -1,530 +0,0 @@ -Project(Attrs([Attr("filename","\"gcc_pic/basic_lock_security_write.out\""), -Attr("image-specification","(declare abi (name str))\n(declare arch (name str))\n(declare base-address (addr int))\n(declare bias (off int))\n(declare bits (size int))\n(declare code-region (addr int) (size int) (off int))\n(declare code-start (addr int))\n(declare entry-point (addr int))\n(declare external-reference (addr int) (name str))\n(declare format (name str))\n(declare is-executable (flag bool))\n(declare is-little-endian (flag bool))\n(declare llvm:base-address (addr int))\n(declare llvm:code-entry (name str) (off int) (size int))\n(declare llvm:coff-import-library (name str))\n(declare llvm:coff-virtual-section-header (name str) (addr int) (size int))\n(declare llvm:elf-program-header (name str) (off int) (size int))\n(declare llvm:elf-program-header-flags (name str) (ld bool) (r bool) \n (w bool) (x bool))\n(declare llvm:elf-virtual-program-header (name str) (addr int) (size int))\n(declare llvm:entry-point (addr int))\n(declare llvm:macho-symbol (name str) (value int))\n(declare llvm:name-reference (at int) (name str))\n(declare llvm:relocation (at int) (addr int))\n(declare llvm:section-entry (name str) (addr int) (size int) (off int))\n(declare llvm:section-flags (name str) (r bool) (w bool) (x bool))\n(declare llvm:segment-command (name str) (off int) (size int))\n(declare llvm:segment-command-flags (name str) (r bool) (w bool) (x bool))\n(declare llvm:symbol-entry (name str) (addr int) (size int) (off int)\n (value int))\n(declare llvm:virtual-segment-command (name str) (addr int) (size int))\n(declare mapped (addr int) (size int) (off int))\n(declare named-region (addr int) (size int) (name str))\n(declare named-symbol (addr int) (name str))\n(declare require (name str))\n(declare section (addr int) (size int))\n(declare segment (addr int) (size int) (r bool) (w bool) (x bool))\n(declare subarch (name str))\n(declare symbol-chunk (addr int) (size int) (root int))\n(declare symbol-value (addr int) (value int))\n(declare system (name str))\n(declare vendor (name str))\n\n(abi unknown)\n(arch aarch64)\n(base-address 0)\n(bias 0)\n(bits 64)\n(code-region 1952 20 1952)\n(code-region 1600 352 1600)\n(code-region 1488 96 1488)\n(code-region 1456 24 1456)\n(code-start 1652)\n(code-start 1600)\n(code-start 1876)\n(entry-point 1600)\n(external-reference 69576 _ITM_deregisterTMCloneTable)\n(external-reference 69584 __cxa_finalize)\n(external-reference 69608 __gmon_start__)\n(external-reference 69624 _ITM_registerTMCloneTable)\n(external-reference 69536 __libc_start_main)\n(external-reference 69544 __cxa_finalize)\n(external-reference 69552 __gmon_start__)\n(external-reference 69560 abort)\n(format elf)\n(is-executable true)\n(is-little-endian true)\n(llvm:base-address 0)\n(llvm:code-entry abort 0 0)\n(llvm:code-entry __cxa_finalize 0 0)\n(llvm:code-entry __libc_start_main 0 0)\n(llvm:code-entry _init 1456 0)\n(llvm:code-entry main 1876 76)\n(llvm:code-entry _start 1600 52)\n(llvm:code-entry abort@GLIBC_2.17 0 0)\n(llvm:code-entry _fini 1952 0)\n(llvm:code-entry __cxa_finalize@GLIBC_2.17 0 0)\n(llvm:code-entry __libc_start_main@GLIBC_2.34 0 0)\n(llvm:code-entry frame_dummy 1872 0)\n(llvm:code-entry __do_global_dtors_aux 1792 0)\n(llvm:code-entry register_tm_clones 1728 0)\n(llvm:code-entry deregister_tm_clones 1680 0)\n(llvm:code-entry call_weak_fn 1652 20)\n(llvm:code-entry .fini 1952 20)\n(llvm:code-entry .text 1600 352)\n(llvm:code-entry .plt 1488 96)\n(llvm:code-entry .init 1456 24)\n(llvm:elf-program-header 08 3464 632)\n(llvm:elf-program-header 07 0 0)\n(llvm:elf-program-header 06 1976 60)\n(llvm:elf-program-header 05 596 68)\n(llvm:elf-program-header 04 3480 496)\n(llvm:elf-program-header 03 3464 648)\n(llvm:elf-program-header 02 0 2204)\n(llvm:elf-program-header 01 568 27)\n(llvm:elf-program-header 00 64 504)\n(llvm:elf-program-header-flags 08 false true false false)\n(llvm:elf-program-header-flags 07 false true true false)\n(llvm:elf-program-header-flags 06 false true false false)\n(llvm:elf-program-header-flags 05 false true false false)\n(llvm:elf-program-header-flags 04 false true true false)\n(llvm:elf-program-header-flags 03 true true true false)\n(llvm:elf-program-header-flags 02 true true false true)\n(llvm:elf-program-header-flags 01 false true false false)\n(llvm:elf-program-header-flags 00 false true false false)\n(llvm:elf-virtual-program-header 08 69000 632)\n(llvm:elf-virtual-program-header 07 0 0)\n(llvm:elf-virtual-program-header 06 1976 60)\n(llvm:elf-virtual-program-header 05 596 68)\n(llvm:elf-virtual-program-header 04 69016 496)\n(llvm:elf-virtual-program-header 03 69000 664)\n(llvm:elf-virtual-program-header 02 0 2204)\n(llvm:elf-virtual-program-header 01 568 27)\n(llvm:elf-virtual-program-header 00 64 504)\n(llvm:entry-point 1600)\n(llvm:name-reference 69560 abort)\n(llvm:name-reference 69552 __gmon_start__)\n(llvm:name-reference 69544 __cxa_finalize)\n(llvm:name-reference 69536 __libc_start_main)\n(llvm:name-reference 69624 _ITM_registerTMCloneTable)\n(llvm:name-reference 69608 __gmon_start__)\n(llvm:name-reference 69584 __cxa_finalize)\n(llvm:name-reference 69576 _ITM_deregisterTMCloneTable)\n(llvm:section-entry .shstrtab 0 250 6859)\n(llvm:section-entry .strtab 0 563 6296)\n(llvm:section-entry .symtab 0 2136 4160)\n(llvm:section-entry .comment 0 43 4112)\n(llvm:section-entry .bss 69648 16 4112)\n(llvm:section-entry .data 69632 16 4096)\n(llvm:section-entry .got 69512 120 3976)\n(llvm:section-entry .dynamic 69016 496 3480)\n(llvm:section-entry .fini_array 69008 8 3472)\n(llvm:section-entry .init_array 69000 8 3464)\n(llvm:section-entry .eh_frame 2040 164 2040)\n(llvm:section-entry .eh_frame_hdr 1976 60 1976)\n(llvm:section-entry .rodata 1972 4 1972)\n(llvm:section-entry .fini 1952 20 1952)\n(llvm:section-entry .text 1600 352 1600)\n(llvm:section-entry .plt 1488 96 1488)\n(llvm:section-entry .init 1456 24 1456)\n(llvm:section-entry .rela.plt 1360 96 1360)\n(llvm:section-entry .rela.dyn 1120 240 1120)\n(llvm:section-entry .gnu.version_r 1072 48 1072)\n(llvm:section-entry .gnu.version 1054 18 1054)\n(llvm:section-entry .dynstr 912 141 912)\n(llvm:section-entry .dynsym 696 216 696)\n(llvm:section-entry .gnu.hash 664 28 664)\n(llvm:section-entry .note.ABI-tag 632 32 632)\n(llvm:section-entry .note.gnu.build-id 596 36 596)\n(llvm:section-entry .interp 568 27 568)\n(llvm:section-flags .shstrtab true false false)\n(llvm:section-flags .strtab true false false)\n(llvm:section-flags .symtab true false false)\n(llvm:section-flags .comment true false false)\n(llvm:section-flags .bss true true false)\n(llvm:section-flags .data true true false)\n(llvm:section-flags .got true true false)\n(llvm:section-flags .dynamic true true false)\n(llvm:section-flags .fini_array true true false)\n(llvm:section-flags .init_array true true false)\n(llvm:section-flags .eh_frame true false false)\n(llvm:section-flags .eh_frame_hdr true false false)\n(llvm:section-flags .rodata true false false)\n(llvm:section-flags .fini true false true)\n(llvm:section-flags .text true false true)\n(llvm:section-flags .plt true false true)\n(llvm:section-flags .init true false true)\n(llvm:section-flags .rela.plt true false false)\n(llvm:section-flags .rela.dyn true false false)\n(llvm:section-flags .gnu.version_r true false false)\n(llvm:section-flags .gnu.version true false false)\n(llvm:section-flags .dynstr true false false)\n(llvm:section-flags .dynsym true false false)\n(llvm:section-flags .gnu.hash true false false)\n(llvm:section-flags .note.ABI-tag true false false)\n(llvm:section-flags .note.gnu.build-id true false false)\n(llvm:section-flags .interp true false false)\n(llvm:symbol-entry abort 0 0 0 0)\n(llvm:symbol-entry __cxa_finalize 0 0 0 0)\n(llvm:symbol-entry __libc_start_main 0 0 0 0)\n(llvm:symbol-entry _init 1456 0 1456 1456)\n(llvm:symbol-entry main 1876 76 1876 1876)\n(llvm:symbol-entry _start 1600 52 1600 1600)\n(llvm:symbol-entry abort@GLIBC_2.17 0 0 0 0)\n(llvm:symbol-entry _fini 1952 0 1952 1952)\n(llvm:symbol-entry __cxa_finalize@GLIBC_2.17 0 0 0 0)\n(llvm:symbol-entry __libc_start_main@GLIBC_2.34 0 0 0 0)\n(llvm:symbol-entry frame_dummy 1872 0 1872 1872)\n(llvm:symbol-entry __do_global_dtors_aux 1792 0 1792 1792)\n(llvm:symbol-entry register_tm_clones 1728 0 1728 1728)\n(llvm:symbol-entry deregister_tm_clones 1680 0 1680 1680)\n(llvm:symbol-entry call_weak_fn 1652 20 1652 1652)\n(mapped 0 2204 0)\n(mapped 69000 648 3464)\n(named-region 0 2204 02)\n(named-region 69000 664 03)\n(named-region 568 27 .interp)\n(named-region 596 36 .note.gnu.build-id)\n(named-region 632 32 .note.ABI-tag)\n(named-region 664 28 .gnu.hash)\n(named-region 696 216 .dynsym)\n(named-region 912 141 .dynstr)\n(named-region 1054 18 .gnu.version)\n(named-region 1072 48 .gnu.version_r)\n(named-region 1120 240 .rela.dyn)\n(named-region 1360 96 .rela.plt)\n(named-region 1456 24 .init)\n(named-region 1488 96 .plt)\n(named-region 1600 352 .text)\n(named-region 1952 20 .fini)\n(named-region 1972 4 .rodata)\n(named-region 1976 60 .eh_frame_hdr)\n(named-region 2040 164 .eh_frame)\n(named-region 69000 8 .init_array)\n(named-region 69008 8 .fini_array)\n(named-region 69016 496 .dynamic)\n(named-region 69512 120 .got)\n(named-region 69632 16 .data)\n(named-region 69648 16 .bss)\n(named-region 0 43 .comment)\n(named-region 0 2136 .symtab)\n(named-region 0 563 .strtab)\n(named-region 0 250 .shstrtab)\n(named-symbol 1652 call_weak_fn)\n(named-symbol 1680 deregister_tm_clones)\n(named-symbol 1728 register_tm_clones)\n(named-symbol 1792 __do_global_dtors_aux)\n(named-symbol 1872 frame_dummy)\n(named-symbol 0 __libc_start_main@GLIBC_2.34)\n(named-symbol 0 __cxa_finalize@GLIBC_2.17)\n(named-symbol 1952 _fini)\n(named-symbol 0 abort@GLIBC_2.17)\n(named-symbol 1600 _start)\n(named-symbol 1876 main)\n(named-symbol 1456 _init)\n(named-symbol 0 __libc_start_main)\n(named-symbol 0 __cxa_finalize)\n(named-symbol 0 abort)\n(require libc.so.6)\n(section 568 27)\n(section 596 36)\n(section 632 32)\n(section 664 28)\n(section 696 216)\n(section 912 141)\n(section 1054 18)\n(section 1072 48)\n(section 1120 240)\n(section 1360 96)\n(section 1456 24)\n(section 1488 96)\n(section 1600 352)\n(section 1952 20)\n(section 1972 4)\n(section 1976 60)\n(section 2040 164)\n(section 69000 8)\n(section 69008 8)\n(section 69016 496)\n(section 69512 120)\n(section 69632 16)\n(section 69648 16)\n(section 0 43)\n(section 0 2136)\n(section 0 563)\n(section 0 250)\n(segment 0 2204 true false true)\n(segment 69000 664 true true false)\n(subarch v8)\n(symbol-chunk 1652 20 1652)\n(symbol-chunk 1600 52 1600)\n(symbol-chunk 1876 76 1876)\n(symbol-value 1652 1652)\n(symbol-value 1680 1680)\n(symbol-value 1728 1728)\n(symbol-value 1792 1792)\n(symbol-value 1872 1872)\n(symbol-value 1952 1952)\n(symbol-value 1600 1600)\n(symbol-value 1876 1876)\n(symbol-value 1456 1456)\n(symbol-value 0 0)\n(system \"\")\n(vendor \"\")\n"), -Attr("abi-name","\"aarch64-linux-gnu-elf\"")]), -Sections([Section(".shstrtab", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x40\x06\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xc8\x1b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x38\x00\x09\x00\x40\x00\x1c\x00\x1b\x00\x06\x00\x00\x00\x04\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x04\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x9c\x08\x00\x00\x00\x00\x00\x00\x9c\x08\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x01\x00\x00\x00\x06\x00\x00\x00\x88\x0d\x00\x00\x00\x00\x00\x00\x88\x0d"), -Section(".strtab", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x40\x06\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xc8\x1b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x38\x00\x09\x00\x40\x00\x1c\x00\x1b\x00\x06\x00\x00\x00\x04\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x04\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x9c\x08\x00\x00\x00\x00\x00\x00\x9c\x08\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x01\x00\x00\x00\x06\x00\x00\x00\x88\x0d\x00\x00\x00\x00\x00\x00\x88\x0d\x01\x00\x00\x00\x00\x00\x88\x0d\x01\x00\x00\x00\x00\x00\x88\x02\x00\x00\x00\x00\x00\x00\x98\x02\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x02\x00\x00\x00\x06\x00\x00\x00\x98\x0d\x00\x00\x00\x00\x00\x00\x98\x0d\x01\x00\x00\x00\x00\x00\x98\x0d\x01\x00\x00\x00\x00\x00\xf0\x01\x00\x00\x00\x00\x00\x00\xf0\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x04\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x50\xe5\x74\x64\x04\x00\x00\x00\xb8\x07\x00\x00\x00\x00\x00\x00\xb8\x07\x00\x00\x00\x00\x00\x00\xb8\x07\x00\x00\x00\x00\x00\x00\x3c\x00\x00\x00\x00\x00\x00\x00\x3c\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x51\xe5\x74\x64\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x52\xe5\x74\x64\x04\x00\x00\x00\x88\x0d\x00\x00\x00\x00\x00\x00\x88\x0d\x01\x00\x00\x00\x00\x00\x88\x0d\x01\x00\x00\x00\x00\x00\x78\x02\x00\x00\x00\x00\x00\x00\x78\x02\x00\x00\x00\x00\x00\x00\x01\x00\x00"), -Section(".symtab", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x40\x06\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xc8\x1b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x38\x00\x09\x00\x40\x00\x1c\x00\x1b\x00\x06\x00\x00\x00\x04\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x04\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x9c\x08\x00\x00\x00\x00\x00\x00\x9c\x08\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x01\x00\x00\x00\x06\x00\x00\x00\x88\x0d\x00\x00\x00\x00\x00\x00\x88\x0d\x01\x00\x00\x00\x00\x00\x88\x0d\x01\x00\x00\x00\x00\x00\x88\x02\x00\x00\x00\x00\x00\x00\x98\x02\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x02\x00\x00\x00\x06\x00\x00\x00\x98\x0d\x00\x00\x00\x00\x00\x00\x98\x0d\x01\x00\x00\x00\x00\x00\x98\x0d\x01\x00\x00\x00\x00\x00\xf0\x01\x00\x00\x00\x00\x00\x00\xf0\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x04\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x50\xe5\x74\x64\x04\x00\x00\x00\xb8\x07\x00\x00\x00\x00\x00\x00\xb8\x07\x00\x00\x00\x00\x00\x00\xb8\x07\x00\x00\x00\x00\x00\x00\x3c\x00\x00\x00\x00\x00\x00\x00\x3c\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x51\xe5\x74\x64\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x52\xe5\x74\x64\x04\x00\x00\x00\x88\x0d\x00\x00\x00\x00\x00\x00\x88\x0d\x01\x00\x00\x00\x00\x00\x88\x0d\x01\x00\x00\x00\x00\x00\x78\x02\x00\x00\x00\x00\x00\x00\x78\x02\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x2f\x6c\x69\x62\x2f\x6c\x64\x2d\x6c\x69\x6e\x75\x78\x2d\x61\x61\x72\x63\x68\x36\x34\x2e\x73\x6f\x2e\x31\x00\x00\x04\x00\x00\x00\x14\x00\x00\x00\x03\x00\x00\x00\x47\x4e\x55\x00\x00\x1c\x67\xe9\xb5\x12\x35\x37\x2c\x37\x11\xe0\x4e\xcb\xa0\x30\xcc\x59\xa8\x84\x04\x00\x00\x00\x10\x00\x00\x00\x01\x00\x00\x00\x47\x4e\x55\x00\x00\x00\x00\x00\x03\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x01\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x0b\x00\xb0\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x16\x00\x00\x10\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x48\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x22\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x22\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x73\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5f\x5f\x63\x78\x61\x5f\x66\x69\x6e\x61\x6c\x69\x7a\x65\x00\x5f\x5f\x6c\x69\x62\x63\x5f\x73\x74\x61\x72\x74\x5f\x6d\x61\x69\x6e\x00\x61\x62\x6f\x72\x74\x00\x6c\x69\x62\x63\x2e\x73\x6f\x2e\x36\x00\x47\x4c\x49\x42\x43\x5f\x32\x2e\x31\x37\x00\x47\x4c\x49\x42\x43\x5f\x32\x2e\x33\x34\x00\x5f\x49\x54\x4d\x5f\x64\x65\x72\x65\x67\x69\x73\x74\x65\x72\x54\x4d\x43\x6c\x6f\x6e\x65\x54\x61\x62\x6c\x65\x00\x5f\x5f\x67\x6d\x6f\x6e\x5f\x73\x74\x61\x72\x74\x5f\x5f\x00\x5f\x49\x54\x4d\x5f\x72\x65\x67\x69\x73\x74\x65\x72\x54\x4d\x43\x6c\x6f\x6e\x65\x54\x61\x62\x6c\x65\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x01\x00\x03\x00\x01\x00\x03\x00\x01\x00\x01\x00\x02\x00\x28\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x97\x91\x96\x06\x00\x00\x03\x00\x32\x00\x00\x00\x10\x00\x00\x00\xb4\x91\x96\x06\x00\x00\x02\x00\x3d\x00\x00\x00\x00\x00\x00\x00\x88\x0d\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x50\x07\x00\x00\x00\x00\x00\x00\x90\x0d\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\xd8\x0f\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x18\x10\x01\x00\x00\x00\x00\x00\xe0\x0f\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x14\x10\x01\x00\x00\x00\x00\x00\xf0\x0f\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x54\x07\x00\x00\x00\x00\x00\x00\x08\x10\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x08\x10\x01\x00\x00\x00\x00\x00\xc8\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xd0\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe8\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xf8\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xa0\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xa8\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xb0\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xb8\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1f\x20\x03\xd5\xfd\x7b\xbf\xa9\xfd\x03\x00\x91\x2e\x00\x00\x94\xfd\x7b\xc1\xa8\xc0\x03\x5f\xd6\x00\x00\x00\x00\x00\x00\x00\x00\xf0\x7b\xbf\xa9\x90\x00\x00\x90\x11\xce\x47\xf9\x10\x62\x3e\x91\x20\x02\x1f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x90\x00\x00\x90\x11\xd2\x47\xf9\x10\x82\x3e\x91\x20\x02\x1f\xd6\x90\x00\x00\x90\x11\xd6\x47\xf9\x10\xa2\x3e\x91\x20\x02\x1f\xd6\x90\x00\x00\x90\x11\xda\x47\xf9\x10\xc2\x3e\x91\x20\x02\x1f\xd6\x90\x00\x00\x90\x11\xde\x47\xf9\x10\xe2\x3e\x91\x20\x02\x1f\xd6\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1f\x20\x03\xd5\x1d\x00\x80\xd2\x1e\x00\x80\xd2\xe5\x03\x00\xaa\xe1\x03\x40\xf9\xe2\x23\x00\x91\xe6\x03\x00\x91\x80\x00\x00\x90\x00\xf8\x47\xf9\x03\x00\x80\xd2\x04\x00\x80\xd2\xe1\xff\xff\x97\xec\xff\xff\x97\x80\x00\x00\x90\x00\xf4\x47\xf9\x40\x00\x00\xb4\xe4\xff\xff\x17\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x80\x00\x00\xb0\x00\x40\x00\x91\x81\x00\x00\xb0\x21\x40\x00\x91\x3f\x00\x00\xeb\xc0\x00\x00\x54\x81\x00\x00\x90\x21\xe4\x47\xf9\x61\x00\x00\xb4\xf0\x03\x01\xaa\x00\x02\x1f\xd6\xc0\x03\x5f\xd6\x80\x00\x00\xb0\x00\x40\x00\x91\x81\x00\x00\xb0\x21\x40\x00\x91\x21\x00\x00\xcb\x22\xfc\x7f\xd3\x41\x0c\x81\x8b\x21\xfc\x41\x93\xc1\x00\x00\xb4\x82\x00\x00\x90\x42\xfc\x47\xf9\x62\x00\x00\xb4\xf0\x03\x02\xaa\x00\x02\x1f\xd6\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\xfd\x7b\xbe\xa9\xfd\x03\x00\x91\xf3\x0b\x00\xf9\x93\x00\x00\xb0\x60\x42\x40\x39\x40\x01\x00\x35\x80\x00\x00\x90\x00\xe8\x47\xf9\x80\x00\x00\xb4\x80\x00\x00\xb0\x00\x04\x40\xf9\xb5\xff\xff\x97\xd8\xff\xff\x97\x20\x00\x80\x52\x60\x42\x00\x39\xf3\x0b\x40\xf9\xfd\x7b\xc2\xa8\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\xdc\xff\xff\x17\xff\x43\x00\xd1\xe0\x0f\x00\xb9\x80\x00\x00\x90\x00\xec\x47\xf9\x21\x00\x80\x52\x01\x00\x00\xb9\x80\x00\x00\x90\x00\xf0\x47\xf9\xe1\x0f\x40\xb9\x01\x00\x00\xb9\x80\x00\x00\x90\x00\xf0\x47\xf9\x1f\x00\x00\xb9\x80\x00\x00\x90\x00\xec\x47\xf9\x1f\x00\x00\xb9\x00\x00\x80\x52\xff\x43\x00\x91\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\xfd\x7b\xbf\xa9\xfd\x03\x00\x91\xfd\x7b\xc1\xa8\xc0\x03\x5f\xd6\x01\x00\x02\x00\x01\x1b\x03\x3b\x3c\x00\x00\x00\x06\x00\x00\x00\x88\xfe\xff\xff\x54\x00\x00\x00\xd8\xfe\xff\xff\x68\x00\x00\x00\x08\xff\xff\xff\x7c\x00\x00\x00\x48\xff\xff\xff\x90\x00\x00\x00\x98\xff\xff\xff\xb4\x00\x00\x00\x9c\xff\xff\xff\xc8\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x01\x7a\x52\x00\x04\x78\x1e\x01\x1b\x0c\x1f\x00\x10\x00\x00\x00\x18\x00\x00\x00\x2c\xfe\xff\xff\x34\x00\x00\x00\x00\x41\x07\x1e\x10\x00\x00\x00\x2c\x00\x00\x00\x68\xfe\xff\xff\x30\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x40\x00\x00\x00\x84\xfe\xff\xff\x3c\x00\x00\x00\x00\x00\x00\x00\x20\x00\x00\x00\x54\x00\x00\x00\xb0\xfe\xff\xff\x48\x00\x00\x00"), -Section(".comment", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x40\x06\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xc8\x1b\x00"), -Section(".interp", 0x238, "\x2f\x6c\x69\x62\x2f\x6c\x64\x2d\x6c\x69\x6e\x75\x78\x2d\x61\x61\x72\x63\x68\x36\x34\x2e\x73\x6f\x2e\x31\x00"), -Section(".note.gnu.build-id", 0x254, "\x04\x00\x00\x00\x14\x00\x00\x00\x03\x00\x00\x00\x47\x4e\x55\x00\x00\x1c\x67\xe9\xb5\x12\x35\x37\x2c\x37\x11\xe0\x4e\xcb\xa0\x30\xcc\x59\xa8\x84"), -Section(".note.ABI-tag", 0x278, "\x04\x00\x00\x00\x10\x00\x00\x00\x01\x00\x00\x00\x47\x4e\x55\x00\x00\x00\x00\x00\x03\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00"), -Section(".gnu.hash", 0x298, "\x01\x00\x00\x00\x01\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".dynsym", 0x2B8, "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x0b\x00\xb0\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x16\x00\x00\x10\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x48\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x22\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x22\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x73\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".dynstr", 0x390, "\x00\x5f\x5f\x63\x78\x61\x5f\x66\x69\x6e\x61\x6c\x69\x7a\x65\x00\x5f\x5f\x6c\x69\x62\x63\x5f\x73\x74\x61\x72\x74\x5f\x6d\x61\x69\x6e\x00\x61\x62\x6f\x72\x74\x00\x6c\x69\x62\x63\x2e\x73\x6f\x2e\x36\x00\x47\x4c\x49\x42\x43\x5f\x32\x2e\x31\x37\x00\x47\x4c\x49\x42\x43\x5f\x32\x2e\x33\x34\x00\x5f\x49\x54\x4d\x5f\x64\x65\x72\x65\x67\x69\x73\x74\x65\x72\x54\x4d\x43\x6c\x6f\x6e\x65\x54\x61\x62\x6c\x65\x00\x5f\x5f\x67\x6d\x6f\x6e\x5f\x73\x74\x61\x72\x74\x5f\x5f\x00\x5f\x49\x54\x4d\x5f\x72\x65\x67\x69\x73\x74\x65\x72\x54\x4d\x43\x6c\x6f\x6e\x65\x54\x61\x62\x6c\x65\x00"), -Section(".gnu.version", 0x41E, "\x00\x00\x00\x00\x00\x00\x02\x00\x01\x00\x03\x00\x01\x00\x03\x00\x01\x00"), -Section(".gnu.version_r", 0x430, "\x01\x00\x02\x00\x28\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x97\x91\x96\x06\x00\x00\x03\x00\x32\x00\x00\x00\x10\x00\x00\x00\xb4\x91\x96\x06\x00\x00\x02\x00\x3d\x00\x00\x00\x00\x00\x00\x00"), -Section(".rela.dyn", 0x460, "\x88\x0d\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x50\x07\x00\x00\x00\x00\x00\x00\x90\x0d\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\xd8\x0f\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x18\x10\x01\x00\x00\x00\x00\x00\xe0\x0f\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x14\x10\x01\x00\x00\x00\x00\x00\xf0\x0f\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x54\x07\x00\x00\x00\x00\x00\x00\x08\x10\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x08\x10\x01\x00\x00\x00\x00\x00\xc8\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xd0\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe8\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xf8\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".rela.plt", 0x550, "\xa0\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xa8\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xb0\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xb8\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".init", 0x5B0, "\x1f\x20\x03\xd5\xfd\x7b\xbf\xa9\xfd\x03\x00\x91\x2e\x00\x00\x94\xfd\x7b\xc1\xa8\xc0\x03\x5f\xd6"), -Section(".plt", 0x5D0, "\xf0\x7b\xbf\xa9\x90\x00\x00\x90\x11\xce\x47\xf9\x10\x62\x3e\x91\x20\x02\x1f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x90\x00\x00\x90\x11\xd2\x47\xf9\x10\x82\x3e\x91\x20\x02\x1f\xd6\x90\x00\x00\x90\x11\xd6\x47\xf9\x10\xa2\x3e\x91\x20\x02\x1f\xd6\x90\x00\x00\x90\x11\xda\x47\xf9\x10\xc2\x3e\x91\x20\x02\x1f\xd6\x90\x00\x00\x90\x11\xde\x47\xf9\x10\xe2\x3e\x91\x20\x02\x1f\xd6"), -Section(".fini", 0x7A0, "\x1f\x20\x03\xd5\xfd\x7b\xbf\xa9\xfd\x03\x00\x91\xfd\x7b\xc1\xa8\xc0\x03\x5f\xd6"), -Section(".rodata", 0x7B4, "\x01\x00\x02\x00"), -Section(".eh_frame_hdr", 0x7B8, "\x01\x1b\x03\x3b\x3c\x00\x00\x00\x06\x00\x00\x00\x88\xfe\xff\xff\x54\x00\x00\x00\xd8\xfe\xff\xff\x68\x00\x00\x00\x08\xff\xff\xff\x7c\x00\x00\x00\x48\xff\xff\xff\x90\x00\x00\x00\x98\xff\xff\xff\xb4\x00\x00\x00\x9c\xff\xff\xff\xc8\x00\x00\x00"), -Section(".eh_frame", 0x7F8, "\x10\x00\x00\x00\x00\x00\x00\x00\x01\x7a\x52\x00\x04\x78\x1e\x01\x1b\x0c\x1f\x00\x10\x00\x00\x00\x18\x00\x00\x00\x2c\xfe\xff\xff\x34\x00\x00\x00\x00\x41\x07\x1e\x10\x00\x00\x00\x2c\x00\x00\x00\x68\xfe\xff\xff\x30\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x40\x00\x00\x00\x84\xfe\xff\xff\x3c\x00\x00\x00\x00\x00\x00\x00\x20\x00\x00\x00\x54\x00\x00\x00\xb0\xfe\xff\xff\x48\x00\x00\x00\x00\x41\x0e\x20\x9d\x04\x9e\x03\x42\x93\x02\x4e\xde\xdd\xd3\x0e\x00\x00\x00\x00\x10\x00\x00\x00\x78\x00\x00\x00\xdc\xfe\xff\xff\x04\x00\x00\x00\x00\x00\x00\x00\x14\x00\x00\x00\x8c\x00\x00\x00\xcc\xfe\xff\xff\x4c\x00\x00\x00\x00\x41\x0e\x10\x51\x0e\x00\x00\x00\x00\x00\x00"), -Section(".fini_array", 0x10D90, "\x00\x07\x00\x00\x00\x00\x00\x00"), -Section(".dynamic", 0x10D98, "\x01\x00\x00\x00\x00\x00\x00\x00\x28\x00\x00\x00\x00\x00\x00\x00\x0c\x00\x00\x00\x00\x00\x00\x00\xb0\x05\x00\x00\x00\x00\x00\x00\x0d\x00\x00\x00\x00\x00\x00\x00\xa0\x07\x00\x00\x00\x00\x00\x00\x19\x00\x00\x00\x00\x00\x00\x00\x88\x0d\x01\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x1a\x00\x00\x00\x00\x00\x00\x00\x90\x0d\x01\x00\x00\x00\x00\x00\x1c\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\xf5\xfe\xff\x6f\x00\x00\x00\x00\x98\x02\x00\x00\x00\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x90\x03\x00\x00\x00\x00\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\xb8\x02\x00\x00\x00\x00\x00\x00\x0a\x00\x00\x00\x00\x00\x00\x00\x8d\x00\x00\x00\x00\x00\x00\x00\x0b\x00\x00\x00\x00\x00\x00\x00\x18\x00\x00\x00\x00\x00\x00\x00\x15\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x88\x0f\x01\x00\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x60\x00\x00\x00\x00\x00\x00\x00\x14\x00\x00\x00\x00\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x17\x00\x00\x00\x00\x00\x00\x00\x50\x05\x00\x00\x00\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x60\x04\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\xf0\x00\x00\x00\x00\x00\x00\x00\x09\x00\x00\x00\x00\x00\x00\x00\x18\x00\x00\x00\x00\x00\x00\x00\x1e\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\xfb\xff\xff\x6f\x00\x00\x00\x00\x01\x00\x00\x08\x00\x00\x00\x00\xfe\xff\xff\x6f\x00\x00\x00\x00\x30\x04\x00\x00\x00\x00\x00\x00\xff\xff\xff\x6f\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\xf0\xff\xff\x6f\x00\x00\x00\x00\x1e\x04\x00\x00\x00\x00\x00\x00\xf9\xff\xff\x6f\x00\x00\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".got", 0x10F88, "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xd0\x05\x00\x00\x00\x00\x00\x00\xd0\x05\x00\x00\x00\x00\x00\x00\xd0\x05\x00\x00\x00\x00\x00\x00\xd0\x05\x00\x00\x00\x00\x00\x00\x98\x0d\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x18\x10\x01\x00\x00\x00\x00\x00\x14\x10\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x54\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".data", 0x11000, "\x00\x00\x00\x00\x00\x00\x00\x00\x08\x10\x01\x00\x00\x00\x00\x00"), -Section(".init_array", 0x10D88, "\x50\x07\x00\x00\x00\x00\x00\x00"), -Section(".text", 0x640, "\x1f\x20\x03\xd5\x1d\x00\x80\xd2\x1e\x00\x80\xd2\xe5\x03\x00\xaa\xe1\x03\x40\xf9\xe2\x23\x00\x91\xe6\x03\x00\x91\x80\x00\x00\x90\x00\xf8\x47\xf9\x03\x00\x80\xd2\x04\x00\x80\xd2\xe1\xff\xff\x97\xec\xff\xff\x97\x80\x00\x00\x90\x00\xf4\x47\xf9\x40\x00\x00\xb4\xe4\xff\xff\x17\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x80\x00\x00\xb0\x00\x40\x00\x91\x81\x00\x00\xb0\x21\x40\x00\x91\x3f\x00\x00\xeb\xc0\x00\x00\x54\x81\x00\x00\x90\x21\xe4\x47\xf9\x61\x00\x00\xb4\xf0\x03\x01\xaa\x00\x02\x1f\xd6\xc0\x03\x5f\xd6\x80\x00\x00\xb0\x00\x40\x00\x91\x81\x00\x00\xb0\x21\x40\x00\x91\x21\x00\x00\xcb\x22\xfc\x7f\xd3\x41\x0c\x81\x8b\x21\xfc\x41\x93\xc1\x00\x00\xb4\x82\x00\x00\x90\x42\xfc\x47\xf9\x62\x00\x00\xb4\xf0\x03\x02\xaa\x00\x02\x1f\xd6\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\xfd\x7b\xbe\xa9\xfd\x03\x00\x91\xf3\x0b\x00\xf9\x93\x00\x00\xb0\x60\x42\x40\x39\x40\x01\x00\x35\x80\x00\x00\x90\x00\xe8\x47\xf9\x80\x00\x00\xb4\x80\x00\x00\xb0\x00\x04\x40\xf9\xb5\xff\xff\x97\xd8\xff\xff\x97\x20\x00\x80\x52\x60\x42\x00\x39\xf3\x0b\x40\xf9\xfd\x7b\xc2\xa8\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\xdc\xff\xff\x17\xff\x43\x00\xd1\xe0\x0f\x00\xb9\x80\x00\x00\x90\x00\xec\x47\xf9\x21\x00\x80\x52\x01\x00\x00\xb9\x80\x00\x00\x90\x00\xf0\x47\xf9\xe1\x0f\x40\xb9\x01\x00\x00\xb9\x80\x00\x00\x90\x00\xf0\x47\xf9\x1f\x00\x00\xb9\x80\x00\x00\x90\x00\xec\x47\xf9\x1f\x00\x00\xb9\x00\x00\x80\x52\xff\x43\x00\x91\xc0\x03\x5f\xd6")]), -Memmap([Annotation(Region(0x0,0x89B), Attr("segment","02 0 2204")), -Annotation(Region(0x640,0x673), Attr("symbol","\"_start\"")), -Annotation(Region(0x0,0xF9), Attr("section","\".shstrtab\"")), -Annotation(Region(0x0,0x232), Attr("section","\".strtab\"")), -Annotation(Region(0x0,0x857), Attr("section","\".symtab\"")), -Annotation(Region(0x0,0x2A), Attr("section","\".comment\"")), -Annotation(Region(0x238,0x252), Attr("section","\".interp\"")), -Annotation(Region(0x254,0x277), Attr("section","\".note.gnu.build-id\"")), -Annotation(Region(0x278,0x297), Attr("section","\".note.ABI-tag\"")), -Annotation(Region(0x298,0x2B3), Attr("section","\".gnu.hash\"")), -Annotation(Region(0x2B8,0x38F), Attr("section","\".dynsym\"")), -Annotation(Region(0x390,0x41C), Attr("section","\".dynstr\"")), -Annotation(Region(0x41E,0x42F), Attr("section","\".gnu.version\"")), -Annotation(Region(0x430,0x45F), Attr("section","\".gnu.version_r\"")), -Annotation(Region(0x460,0x54F), Attr("section","\".rela.dyn\"")), -Annotation(Region(0x550,0x5AF), Attr("section","\".rela.plt\"")), -Annotation(Region(0x5B0,0x5C7), Attr("section","\".init\"")), -Annotation(Region(0x5D0,0x62F), Attr("section","\".plt\"")), -Annotation(Region(0x5B0,0x5C7), Attr("code-region","()")), -Annotation(Region(0x5D0,0x62F), Attr("code-region","()")), -Annotation(Region(0x640,0x673), Attr("symbol-info","_start 0x640 52")), -Annotation(Region(0x674,0x687), Attr("symbol","\"call_weak_fn\"")), -Annotation(Region(0x674,0x687), Attr("symbol-info","call_weak_fn 0x674 20")), -Annotation(Region(0x754,0x79F), Attr("symbol","\"main\"")), -Annotation(Region(0x754,0x79F), Attr("symbol-info","main 0x754 76")), -Annotation(Region(0x7A0,0x7B3), Attr("section","\".fini\"")), -Annotation(Region(0x7B4,0x7B7), Attr("section","\".rodata\"")), -Annotation(Region(0x7B8,0x7F3), Attr("section","\".eh_frame_hdr\"")), -Annotation(Region(0x7F8,0x89B), Attr("section","\".eh_frame\"")), -Annotation(Region(0x10D88,0x1100F), Attr("segment","03 0x10D88 664")), -Annotation(Region(0x10D90,0x10D97), Attr("section","\".fini_array\"")), -Annotation(Region(0x10D98,0x10F87), Attr("section","\".dynamic\"")), -Annotation(Region(0x10F88,0x10FFF), Attr("section","\".got\"")), -Annotation(Region(0x11000,0x1100F), Attr("section","\".data\"")), -Annotation(Region(0x10D88,0x10D8F), Attr("section","\".init_array\"")), -Annotation(Region(0x640,0x79F), Attr("section","\".text\"")), -Annotation(Region(0x640,0x79F), Attr("code-region","()")), -Annotation(Region(0x7A0,0x7B3), Attr("code-region","()"))]), -Program(Tid(1_473, "%000005c1"), Attrs([]), - Subs([Sub(Tid(1_423, "@__cxa_finalize"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x600"), -Attr("stub","()")]), "__cxa_finalize", Args([Arg(Tid(1_474, "%000005c2"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("__cxa_finalize_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(933, "@__cxa_finalize"), - Attrs([Attr("address","0x600")]), Phis([]), -Defs([Def(Tid(1_181, "%0000049d"), Attrs([Attr("address","0x600"), -Attr("insn","adrp x16, #65536")]), Var("R16",Imm(64)), Int(65536,64)), -Def(Tid(1_188, "%000004a4"), Attrs([Attr("address","0x604"), -Attr("insn","ldr x17, [x16, #0xfa8]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(4008,64)),LittleEndian(),64)), -Def(Tid(1_194, "%000004aa"), Attrs([Attr("address","0x608"), -Attr("insn","add x16, x16, #0xfa8")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(4008,64)))]), Jmps([Call(Tid(1_199, "%000004af"), - Attrs([Attr("address","0x60C"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), -Sub(Tid(1_424, "@__do_global_dtors_aux"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x700")]), - "__do_global_dtors_aux", Args([Arg(Tid(1_475, "%000005c3"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("__do_global_dtors_aux_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(666, "@__do_global_dtors_aux"), - Attrs([Attr("address","0x700")]), Phis([]), Defs([Def(Tid(670, "%0000029e"), - Attrs([Attr("address","0x700"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("#3",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(18446744073709551584,64))), -Def(Tid(676, "%000002a4"), Attrs([Attr("address","0x700"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("#3",Imm(64)),Var("R29",Imm(64)),LittleEndian(),64)), -Def(Tid(682, "%000002aa"), Attrs([Attr("address","0x700"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("#3",Imm(64)),Int(8,64)),Var("R30",Imm(64)),LittleEndian(),64)), -Def(Tid(686, "%000002ae"), Attrs([Attr("address","0x700"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("R31",Imm(64)), -Var("#3",Imm(64))), Def(Tid(692, "%000002b4"), - Attrs([Attr("address","0x704"), Attr("insn","mov x29, sp")]), - Var("R29",Imm(64)), Var("R31",Imm(64))), Def(Tid(700, "%000002bc"), - Attrs([Attr("address","0x708"), Attr("insn","str x19, [sp, #0x10]")]), - Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(16,64)),Var("R19",Imm(64)),LittleEndian(),64)), -Def(Tid(705, "%000002c1"), Attrs([Attr("address","0x70C"), -Attr("insn","adrp x19, #69632")]), Var("R19",Imm(64)), Int(69632,64)), -Def(Tid(712, "%000002c8"), Attrs([Attr("address","0x710"), -Attr("insn","ldrb w0, [x19, #0x10]")]), Var("R0",Imm(64)), -UNSIGNED(64,Load(Var("mem",Mem(64,8)),PLUS(Var("R19",Imm(64)),Int(16,64)),LittleEndian(),8)))]), -Jmps([Goto(Tid(719, "%000002cf"), Attrs([Attr("address","0x714"), -Attr("insn","cbnz w0, #0x28")]), - NEQ(Extract(31,0,Var("R0",Imm(64))),Int(0,32)), -Direct(Tid(717, "%000002cd"))), Goto(Tid(1_463, "%000005b7"), Attrs([]), - Int(1,1), Direct(Tid(878, "%0000036e")))])), Blk(Tid(878, "%0000036e"), - Attrs([Attr("address","0x718")]), Phis([]), Defs([Def(Tid(881, "%00000371"), - Attrs([Attr("address","0x718"), Attr("insn","adrp x0, #65536")]), - Var("R0",Imm(64)), Int(65536,64)), Def(Tid(888, "%00000378"), - Attrs([Attr("address","0x71C"), Attr("insn","ldr x0, [x0, #0xfd0]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(4048,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(894, "%0000037e"), Attrs([Attr("address","0x720"), -Attr("insn","cbz x0, #0x10")]), EQ(Var("R0",Imm(64)),Int(0,64)), -Direct(Tid(892, "%0000037c"))), Goto(Tid(1_464, "%000005b8"), Attrs([]), - Int(1,1), Direct(Tid(917, "%00000395")))])), Blk(Tid(917, "%00000395"), - Attrs([Attr("address","0x724")]), Phis([]), Defs([Def(Tid(920, "%00000398"), - Attrs([Attr("address","0x724"), Attr("insn","adrp x0, #69632")]), - Var("R0",Imm(64)), Int(69632,64)), Def(Tid(927, "%0000039f"), - Attrs([Attr("address","0x728"), Attr("insn","ldr x0, [x0, #0x8]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(932, "%000003a4"), Attrs([Attr("address","0x72C"), -Attr("insn","bl #-0x12c")]), Var("R30",Imm(64)), Int(1840,64))]), -Jmps([Call(Tid(935, "%000003a7"), Attrs([Attr("address","0x72C"), -Attr("insn","bl #-0x12c")]), Int(1,1), -(Direct(Tid(1_423, "@__cxa_finalize")),Direct(Tid(892, "%0000037c"))))])), -Blk(Tid(892, "%0000037c"), Attrs([Attr("address","0x730")]), Phis([]), -Defs([Def(Tid(900, "%00000384"), Attrs([Attr("address","0x730"), -Attr("insn","bl #-0xa0")]), Var("R30",Imm(64)), Int(1844,64))]), -Jmps([Call(Tid(902, "%00000386"), Attrs([Attr("address","0x730"), -Attr("insn","bl #-0xa0")]), Int(1,1), -(Direct(Tid(1_437, "@deregister_tm_clones")),Direct(Tid(904, "%00000388"))))])), -Blk(Tid(904, "%00000388"), Attrs([Attr("address","0x734")]), Phis([]), -Defs([Def(Tid(907, "%0000038b"), Attrs([Attr("address","0x734"), -Attr("insn","mov w0, #0x1")]), Var("R0",Imm(64)), Int(1,64)), -Def(Tid(915, "%00000393"), Attrs([Attr("address","0x738"), -Attr("insn","strb w0, [x19, #0x10]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R19",Imm(64)),Int(16,64)),Extract(7,0,Var("R0",Imm(64))),LittleEndian(),8))]), -Jmps([Goto(Tid(1_465, "%000005b9"), Attrs([]), Int(1,1), -Direct(Tid(717, "%000002cd")))])), Blk(Tid(717, "%000002cd"), - Attrs([Attr("address","0x73C")]), Phis([]), Defs([Def(Tid(727, "%000002d7"), - Attrs([Attr("address","0x73C"), Attr("insn","ldr x19, [sp, #0x10]")]), - Var("R19",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(16,64)),LittleEndian(),64)), -Def(Tid(734, "%000002de"), Attrs([Attr("address","0x740"), -Attr("insn","ldp x29, x30, [sp], #0x20")]), Var("R29",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(739, "%000002e3"), Attrs([Attr("address","0x740"), -Attr("insn","ldp x29, x30, [sp], #0x20")]), Var("R30",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(743, "%000002e7"), Attrs([Attr("address","0x740"), -Attr("insn","ldp x29, x30, [sp], #0x20")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(32,64)))]), Jmps([Call(Tid(748, "%000002ec"), - Attrs([Attr("address","0x744"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), Sub(Tid(1_428, "@__libc_start_main"), - Attrs([Attr("c.proto","signed (*)(signed (*)(signed , char** , char** );* main, signed , char** , \nvoid* auxv)"), -Attr("address","0x5F0"), Attr("stub","()")]), "__libc_start_main", - Args([Arg(Tid(1_476, "%000005c4"), - Attrs([Attr("c.layout","**[ : 64]"), -Attr("c.data","Top:u64 ptr ptr"), -Attr("c.type","signed (*)(signed , char** , char** );*")]), - Var("__libc_start_main_main",Imm(64)), Var("R0",Imm(64)), In()), -Arg(Tid(1_477, "%000005c5"), Attrs([Attr("c.layout","[signed : 32]"), -Attr("c.data","Top:u32"), Attr("c.type","signed")]), - Var("__libc_start_main_arg2",Imm(32)), LOW(32,Var("R1",Imm(64))), In()), -Arg(Tid(1_478, "%000005c6"), Attrs([Attr("c.layout","**[char : 8]"), -Attr("c.data","Top:u8 ptr ptr"), Attr("c.type","char**")]), - Var("__libc_start_main_arg3",Imm(64)), Var("R2",Imm(64)), Both()), -Arg(Tid(1_479, "%000005c7"), Attrs([Attr("c.layout","*[ : 8]"), -Attr("c.data","{} ptr"), Attr("c.type","void*")]), - Var("__libc_start_main_auxv",Imm(64)), Var("R3",Imm(64)), Both()), -Arg(Tid(1_480, "%000005c8"), Attrs([Attr("c.layout","[signed : 32]"), -Attr("c.data","Top:u32"), Attr("c.type","signed")]), - Var("__libc_start_main_result",Imm(32)), LOW(32,Var("R0",Imm(64))), -Out())]), Blks([Blk(Tid(499, "@__libc_start_main"), - Attrs([Attr("address","0x5F0")]), Phis([]), -Defs([Def(Tid(1_159, "%00000487"), Attrs([Attr("address","0x5F0"), -Attr("insn","adrp x16, #65536")]), Var("R16",Imm(64)), Int(65536,64)), -Def(Tid(1_166, "%0000048e"), Attrs([Attr("address","0x5F4"), -Attr("insn","ldr x17, [x16, #0xfa0]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(4000,64)),LittleEndian(),64)), -Def(Tid(1_172, "%00000494"), Attrs([Attr("address","0x5F8"), -Attr("insn","add x16, x16, #0xfa0")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(4000,64)))]), Jmps([Call(Tid(1_177, "%00000499"), - Attrs([Attr("address","0x5FC"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), Sub(Tid(1_429, "@_fini"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x7A0")]), - "_fini", Args([Arg(Tid(1_481, "%000005c9"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("_fini_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(31, "@_fini"), - Attrs([Attr("address","0x7A0")]), Phis([]), Defs([Def(Tid(37, "%00000025"), - Attrs([Attr("address","0x7A4"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("#0",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(18446744073709551600,64))), -Def(Tid(43, "%0000002b"), Attrs([Attr("address","0x7A4"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("#0",Imm(64)),Var("R29",Imm(64)),LittleEndian(),64)), -Def(Tid(49, "%00000031"), Attrs([Attr("address","0x7A4"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("#0",Imm(64)),Int(8,64)),Var("R30",Imm(64)),LittleEndian(),64)), -Def(Tid(53, "%00000035"), Attrs([Attr("address","0x7A4"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("R31",Imm(64)), -Var("#0",Imm(64))), Def(Tid(59, "%0000003b"), Attrs([Attr("address","0x7A8"), -Attr("insn","mov x29, sp")]), Var("R29",Imm(64)), Var("R31",Imm(64))), -Def(Tid(66, "%00000042"), Attrs([Attr("address","0x7AC"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R29",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(71, "%00000047"), Attrs([Attr("address","0x7AC"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R30",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(75, "%0000004b"), Attrs([Attr("address","0x7AC"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(16,64)))]), Jmps([Call(Tid(80, "%00000050"), - Attrs([Attr("address","0x7B0"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), Sub(Tid(1_430, "@_init"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x5B0")]), - "_init", Args([Arg(Tid(1_482, "%000005ca"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("_init_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(1_271, "@_init"), - Attrs([Attr("address","0x5B0")]), Phis([]), -Defs([Def(Tid(1_277, "%000004fd"), Attrs([Attr("address","0x5B4"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("#5",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(18446744073709551600,64))), -Def(Tid(1_283, "%00000503"), Attrs([Attr("address","0x5B4"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("#5",Imm(64)),Var("R29",Imm(64)),LittleEndian(),64)), -Def(Tid(1_289, "%00000509"), Attrs([Attr("address","0x5B4"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("#5",Imm(64)),Int(8,64)),Var("R30",Imm(64)),LittleEndian(),64)), -Def(Tid(1_293, "%0000050d"), Attrs([Attr("address","0x5B4"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("R31",Imm(64)), -Var("#5",Imm(64))), Def(Tid(1_299, "%00000513"), - Attrs([Attr("address","0x5B8"), Attr("insn","mov x29, sp")]), - Var("R29",Imm(64)), Var("R31",Imm(64))), Def(Tid(1_304, "%00000518"), - Attrs([Attr("address","0x5BC"), Attr("insn","bl #0xb8")]), - Var("R30",Imm(64)), Int(1472,64))]), Jmps([Call(Tid(1_306, "%0000051a"), - Attrs([Attr("address","0x5BC"), Attr("insn","bl #0xb8")]), Int(1,1), -(Direct(Tid(1_435, "@call_weak_fn")),Direct(Tid(1_308, "%0000051c"))))])), -Blk(Tid(1_308, "%0000051c"), Attrs([Attr("address","0x5C0")]), Phis([]), -Defs([Def(Tid(1_313, "%00000521"), Attrs([Attr("address","0x5C0"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R29",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(1_318, "%00000526"), Attrs([Attr("address","0x5C0"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R30",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(1_322, "%0000052a"), Attrs([Attr("address","0x5C0"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(16,64)))]), Jmps([Call(Tid(1_327, "%0000052f"), - Attrs([Attr("address","0x5C4"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), Sub(Tid(1_431, "@_start"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x640"), -Attr("entry-point","()")]), "_start", Args([Arg(Tid(1_483, "%000005cb"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("_start_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(436, "@_start"), - Attrs([Attr("address","0x640")]), Phis([]), Defs([Def(Tid(441, "%000001b9"), - Attrs([Attr("address","0x644"), Attr("insn","mov x29, #0x0")]), - Var("R29",Imm(64)), Int(0,64)), Def(Tid(446, "%000001be"), - Attrs([Attr("address","0x648"), Attr("insn","mov x30, #0x0")]), - Var("R30",Imm(64)), Int(0,64)), Def(Tid(452, "%000001c4"), - Attrs([Attr("address","0x64C"), Attr("insn","mov x5, x0")]), - Var("R5",Imm(64)), Var("R0",Imm(64))), Def(Tid(459, "%000001cb"), - Attrs([Attr("address","0x650"), Attr("insn","ldr x1, [sp]")]), - Var("R1",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(465, "%000001d1"), Attrs([Attr("address","0x654"), -Attr("insn","add x2, sp, #0x8")]), Var("R2",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(8,64))), Def(Tid(471, "%000001d7"), - Attrs([Attr("address","0x658"), Attr("insn","mov x6, sp")]), - Var("R6",Imm(64)), Var("R31",Imm(64))), Def(Tid(476, "%000001dc"), - Attrs([Attr("address","0x65C"), Attr("insn","adrp x0, #65536")]), - Var("R0",Imm(64)), Int(65536,64)), Def(Tid(483, "%000001e3"), - Attrs([Attr("address","0x660"), Attr("insn","ldr x0, [x0, #0xff0]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(4080,64)),LittleEndian(),64)), -Def(Tid(488, "%000001e8"), Attrs([Attr("address","0x664"), -Attr("insn","mov x3, #0x0")]), Var("R3",Imm(64)), Int(0,64)), -Def(Tid(493, "%000001ed"), Attrs([Attr("address","0x668"), -Attr("insn","mov x4, #0x0")]), Var("R4",Imm(64)), Int(0,64)), -Def(Tid(498, "%000001f2"), Attrs([Attr("address","0x66C"), -Attr("insn","bl #-0x7c")]), Var("R30",Imm(64)), Int(1648,64))]), -Jmps([Call(Tid(501, "%000001f5"), Attrs([Attr("address","0x66C"), -Attr("insn","bl #-0x7c")]), Int(1,1), -(Direct(Tid(1_428, "@__libc_start_main")),Direct(Tid(503, "%000001f7"))))])), -Blk(Tid(503, "%000001f7"), Attrs([Attr("address","0x670")]), Phis([]), -Defs([Def(Tid(506, "%000001fa"), Attrs([Attr("address","0x670"), -Attr("insn","bl #-0x50")]), Var("R30",Imm(64)), Int(1652,64))]), -Jmps([Call(Tid(509, "%000001fd"), Attrs([Attr("address","0x670"), -Attr("insn","bl #-0x50")]), Int(1,1), -(Direct(Tid(1_434, "@abort")),Direct(Tid(1_466, "%000005ba"))))])), -Blk(Tid(1_466, "%000005ba"), Attrs([]), Phis([]), Defs([]), -Jmps([Call(Tid(1_467, "%000005bb"), Attrs([]), Int(1,1), -(Direct(Tid(1_435, "@call_weak_fn")),))]))])), Sub(Tid(1_434, "@abort"), - Attrs([Attr("noreturn","()"), Attr("c.proto","void (*)(void)"), -Attr("address","0x620"), Attr("stub","()")]), "abort", Args([]), -Blks([Blk(Tid(507, "@abort"), Attrs([Attr("address","0x620")]), Phis([]), -Defs([Def(Tid(1_225, "%000004c9"), Attrs([Attr("address","0x620"), -Attr("insn","adrp x16, #65536")]), Var("R16",Imm(64)), Int(65536,64)), -Def(Tid(1_232, "%000004d0"), Attrs([Attr("address","0x624"), -Attr("insn","ldr x17, [x16, #0xfb8]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(4024,64)),LittleEndian(),64)), -Def(Tid(1_238, "%000004d6"), Attrs([Attr("address","0x628"), -Attr("insn","add x16, x16, #0xfb8")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(4024,64)))]), Jmps([Call(Tid(1_243, "%000004db"), - Attrs([Attr("address","0x62C"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), Sub(Tid(1_435, "@call_weak_fn"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x674")]), - "call_weak_fn", Args([Arg(Tid(1_484, "%000005cc"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("call_weak_fn_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(511, "@call_weak_fn"), - Attrs([Attr("address","0x674")]), Phis([]), Defs([Def(Tid(514, "%00000202"), - Attrs([Attr("address","0x674"), Attr("insn","adrp x0, #65536")]), - Var("R0",Imm(64)), Int(65536,64)), Def(Tid(521, "%00000209"), - Attrs([Attr("address","0x678"), Attr("insn","ldr x0, [x0, #0xfe8]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(4072,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(527, "%0000020f"), Attrs([Attr("address","0x67C"), -Attr("insn","cbz x0, #0x8")]), EQ(Var("R0",Imm(64)),Int(0,64)), -Direct(Tid(525, "%0000020d"))), Goto(Tid(1_468, "%000005bc"), Attrs([]), - Int(1,1), Direct(Tid(997, "%000003e5")))])), Blk(Tid(525, "%0000020d"), - Attrs([Attr("address","0x684")]), Phis([]), Defs([]), -Jmps([Call(Tid(533, "%00000215"), Attrs([Attr("address","0x684"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))])), -Blk(Tid(997, "%000003e5"), Attrs([Attr("address","0x680")]), Phis([]), -Defs([]), Jmps([Goto(Tid(1_000, "%000003e8"), Attrs([Attr("address","0x680"), -Attr("insn","b #-0x70")]), Int(1,1), Direct(Tid(998, "@__gmon_start__")))])), -Blk(Tid(998, "@__gmon_start__"), Attrs([Attr("address","0x610")]), Phis([]), -Defs([Def(Tid(1_203, "%000004b3"), Attrs([Attr("address","0x610"), -Attr("insn","adrp x16, #65536")]), Var("R16",Imm(64)), Int(65536,64)), -Def(Tid(1_210, "%000004ba"), Attrs([Attr("address","0x614"), -Attr("insn","ldr x17, [x16, #0xfb0]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(4016,64)),LittleEndian(),64)), -Def(Tid(1_216, "%000004c0"), Attrs([Attr("address","0x618"), -Attr("insn","add x16, x16, #0xfb0")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(4016,64)))]), Jmps([Call(Tid(1_221, "%000004c5"), - Attrs([Attr("address","0x61C"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), -Sub(Tid(1_437, "@deregister_tm_clones"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x690")]), - "deregister_tm_clones", Args([Arg(Tid(1_485, "%000005cd"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("deregister_tm_clones_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(539, "@deregister_tm_clones"), - Attrs([Attr("address","0x690")]), Phis([]), Defs([Def(Tid(542, "%0000021e"), - Attrs([Attr("address","0x690"), Attr("insn","adrp x0, #69632")]), - Var("R0",Imm(64)), Int(69632,64)), Def(Tid(548, "%00000224"), - Attrs([Attr("address","0x694"), Attr("insn","add x0, x0, #0x10")]), - Var("R0",Imm(64)), PLUS(Var("R0",Imm(64)),Int(16,64))), -Def(Tid(553, "%00000229"), Attrs([Attr("address","0x698"), -Attr("insn","adrp x1, #69632")]), Var("R1",Imm(64)), Int(69632,64)), -Def(Tid(559, "%0000022f"), Attrs([Attr("address","0x69C"), -Attr("insn","add x1, x1, #0x10")]), Var("R1",Imm(64)), -PLUS(Var("R1",Imm(64)),Int(16,64))), Def(Tid(565, "%00000235"), - Attrs([Attr("address","0x6A0"), Attr("insn","cmp x1, x0")]), - Var("#1",Imm(64)), NOT(Var("R0",Imm(64)))), Def(Tid(570, "%0000023a"), - Attrs([Attr("address","0x6A0"), Attr("insn","cmp x1, x0")]), - Var("#2",Imm(64)), PLUS(Var("R1",Imm(64)),NOT(Var("R0",Imm(64))))), -Def(Tid(576, "%00000240"), Attrs([Attr("address","0x6A0"), -Attr("insn","cmp x1, x0")]), Var("VF",Imm(1)), -NEQ(SIGNED(65,PLUS(Var("#2",Imm(64)),Int(1,64))),PLUS(PLUS(SIGNED(65,Var("R1",Imm(64))),SIGNED(65,Var("#1",Imm(64)))),Int(1,65)))), -Def(Tid(582, "%00000246"), Attrs([Attr("address","0x6A0"), -Attr("insn","cmp x1, x0")]), Var("CF",Imm(1)), -NEQ(UNSIGNED(65,PLUS(Var("#2",Imm(64)),Int(1,64))),PLUS(PLUS(UNSIGNED(65,Var("R1",Imm(64))),UNSIGNED(65,Var("#1",Imm(64)))),Int(1,65)))), -Def(Tid(586, "%0000024a"), Attrs([Attr("address","0x6A0"), -Attr("insn","cmp x1, x0")]), Var("ZF",Imm(1)), -EQ(PLUS(Var("#2",Imm(64)),Int(1,64)),Int(0,64))), Def(Tid(590, "%0000024e"), - Attrs([Attr("address","0x6A0"), Attr("insn","cmp x1, x0")]), - Var("NF",Imm(1)), Extract(63,63,PLUS(Var("#2",Imm(64)),Int(1,64))))]), -Jmps([Goto(Tid(596, "%00000254"), Attrs([Attr("address","0x6A4"), -Attr("insn","b.eq #0x18")]), EQ(Var("ZF",Imm(1)),Int(1,1)), -Direct(Tid(594, "%00000252"))), Goto(Tid(1_469, "%000005bd"), Attrs([]), - Int(1,1), Direct(Tid(967, "%000003c7")))])), Blk(Tid(967, "%000003c7"), - Attrs([Attr("address","0x6A8")]), Phis([]), Defs([Def(Tid(970, "%000003ca"), - Attrs([Attr("address","0x6A8"), Attr("insn","adrp x1, #65536")]), - Var("R1",Imm(64)), Int(65536,64)), Def(Tid(977, "%000003d1"), - Attrs([Attr("address","0x6AC"), Attr("insn","ldr x1, [x1, #0xfc8]")]), - Var("R1",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R1",Imm(64)),Int(4040,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(982, "%000003d6"), Attrs([Attr("address","0x6B0"), -Attr("insn","cbz x1, #0xc")]), EQ(Var("R1",Imm(64)),Int(0,64)), -Direct(Tid(594, "%00000252"))), Goto(Tid(1_470, "%000005be"), Attrs([]), - Int(1,1), Direct(Tid(986, "%000003da")))])), Blk(Tid(594, "%00000252"), - Attrs([Attr("address","0x6BC")]), Phis([]), Defs([]), -Jmps([Call(Tid(602, "%0000025a"), Attrs([Attr("address","0x6BC"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))])), -Blk(Tid(986, "%000003da"), Attrs([Attr("address","0x6B4")]), Phis([]), -Defs([Def(Tid(990, "%000003de"), Attrs([Attr("address","0x6B4"), -Attr("insn","mov x16, x1")]), Var("R16",Imm(64)), Var("R1",Imm(64)))]), -Jmps([Call(Tid(995, "%000003e3"), Attrs([Attr("address","0x6B8"), -Attr("insn","br x16")]), Int(1,1), (Indirect(Var("R16",Imm(64))),))]))])), -Sub(Tid(1_440, "@frame_dummy"), Attrs([Attr("c.proto","signed (*)(void)"), -Attr("address","0x750")]), "frame_dummy", Args([Arg(Tid(1_486, "%000005ce"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("frame_dummy_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(754, "@frame_dummy"), - Attrs([Attr("address","0x750")]), Phis([]), Defs([]), -Jmps([Call(Tid(756, "%000002f4"), Attrs([Attr("address","0x750"), -Attr("insn","b #-0x90")]), Int(1,1), -(Direct(Tid(1_442, "@register_tm_clones")),))]))])), Sub(Tid(1_441, "@main"), - Attrs([Attr("c.proto","signed (*)(signed argc, const char** argv)"), -Attr("address","0x754")]), "main", Args([Arg(Tid(1_487, "%000005cf"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("main_argc",Imm(32)), -LOW(32,Var("R0",Imm(64))), In()), Arg(Tid(1_488, "%000005d0"), - Attrs([Attr("c.layout","**[char : 8]"), Attr("c.data","Top:u8 ptr ptr"), -Attr("c.type"," const char**")]), Var("main_argv",Imm(64)), -Var("R1",Imm(64)), Both()), Arg(Tid(1_489, "%000005d1"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("main_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(758, "@main"), - Attrs([Attr("address","0x754")]), Phis([]), Defs([Def(Tid(762, "%000002fa"), - Attrs([Attr("address","0x754"), Attr("insn","sub sp, sp, #0x10")]), - Var("R31",Imm(64)), PLUS(Var("R31",Imm(64)),Int(18446744073709551600,64))), -Def(Tid(770, "%00000302"), Attrs([Attr("address","0x758"), -Attr("insn","str w0, [sp, #0xc]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(12,64)),Extract(31,0,Var("R0",Imm(64))),LittleEndian(),32)), -Def(Tid(775, "%00000307"), Attrs([Attr("address","0x75C"), -Attr("insn","adrp x0, #65536")]), Var("R0",Imm(64)), Int(65536,64)), -Def(Tid(782, "%0000030e"), Attrs([Attr("address","0x760"), -Attr("insn","ldr x0, [x0, #0xfd8]")]), Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(4056,64)),LittleEndian(),64)), -Def(Tid(787, "%00000313"), Attrs([Attr("address","0x764"), -Attr("insn","mov w1, #0x1")]), Var("R1",Imm(64)), Int(1,64)), -Def(Tid(795, "%0000031b"), Attrs([Attr("address","0x768"), -Attr("insn","str w1, [x0]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("R0",Imm(64)),Extract(31,0,Var("R1",Imm(64))),LittleEndian(),32)), -Def(Tid(800, "%00000320"), Attrs([Attr("address","0x76C"), -Attr("insn","adrp x0, #65536")]), Var("R0",Imm(64)), Int(65536,64)), -Def(Tid(807, "%00000327"), Attrs([Attr("address","0x770"), -Attr("insn","ldr x0, [x0, #0xfe0]")]), Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(4064,64)),LittleEndian(),64)), -Def(Tid(814, "%0000032e"), Attrs([Attr("address","0x774"), -Attr("insn","ldr w1, [sp, #0xc]")]), Var("R1",Imm(64)), -UNSIGNED(64,Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(12,64)),LittleEndian(),32))), -Def(Tid(822, "%00000336"), Attrs([Attr("address","0x778"), -Attr("insn","str w1, [x0]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("R0",Imm(64)),Extract(31,0,Var("R1",Imm(64))),LittleEndian(),32)), -Def(Tid(827, "%0000033b"), Attrs([Attr("address","0x77C"), -Attr("insn","adrp x0, #65536")]), Var("R0",Imm(64)), Int(65536,64)), -Def(Tid(834, "%00000342"), Attrs([Attr("address","0x780"), -Attr("insn","ldr x0, [x0, #0xfe0]")]), Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(4064,64)),LittleEndian(),64)), -Def(Tid(841, "%00000349"), Attrs([Attr("address","0x784"), -Attr("insn","str wzr, [x0]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("R0",Imm(64)),Int(0,32),LittleEndian(),32)), -Def(Tid(846, "%0000034e"), Attrs([Attr("address","0x788"), -Attr("insn","adrp x0, #65536")]), Var("R0",Imm(64)), Int(65536,64)), -Def(Tid(853, "%00000355"), Attrs([Attr("address","0x78C"), -Attr("insn","ldr x0, [x0, #0xfd8]")]), Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(4056,64)),LittleEndian(),64)), -Def(Tid(860, "%0000035c"), Attrs([Attr("address","0x790"), -Attr("insn","str wzr, [x0]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("R0",Imm(64)),Int(0,32),LittleEndian(),32)), -Def(Tid(865, "%00000361"), Attrs([Attr("address","0x794"), -Attr("insn","mov w0, #0x0")]), Var("R0",Imm(64)), Int(0,64)), -Def(Tid(871, "%00000367"), Attrs([Attr("address","0x798"), -Attr("insn","add sp, sp, #0x10")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(16,64)))]), Jmps([Call(Tid(876, "%0000036c"), - Attrs([Attr("address","0x79C"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), -Sub(Tid(1_442, "@register_tm_clones"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x6C0")]), - "register_tm_clones", Args([Arg(Tid(1_490, "%000005d2"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("register_tm_clones_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(604, "@register_tm_clones"), Attrs([Attr("address","0x6C0")]), - Phis([]), Defs([Def(Tid(607, "%0000025f"), Attrs([Attr("address","0x6C0"), -Attr("insn","adrp x0, #69632")]), Var("R0",Imm(64)), Int(69632,64)), -Def(Tid(613, "%00000265"), Attrs([Attr("address","0x6C4"), -Attr("insn","add x0, x0, #0x10")]), Var("R0",Imm(64)), -PLUS(Var("R0",Imm(64)),Int(16,64))), Def(Tid(618, "%0000026a"), - Attrs([Attr("address","0x6C8"), Attr("insn","adrp x1, #69632")]), - Var("R1",Imm(64)), Int(69632,64)), Def(Tid(624, "%00000270"), - Attrs([Attr("address","0x6CC"), Attr("insn","add x1, x1, #0x10")]), - Var("R1",Imm(64)), PLUS(Var("R1",Imm(64)),Int(16,64))), -Def(Tid(631, "%00000277"), Attrs([Attr("address","0x6D0"), -Attr("insn","sub x1, x1, x0")]), Var("R1",Imm(64)), -PLUS(PLUS(Var("R1",Imm(64)),NOT(Var("R0",Imm(64)))),Int(1,64))), -Def(Tid(637, "%0000027d"), Attrs([Attr("address","0x6D4"), -Attr("insn","lsr x2, x1, #63")]), Var("R2",Imm(64)), -Concat(Int(0,63),Extract(63,63,Var("R1",Imm(64))))), -Def(Tid(644, "%00000284"), Attrs([Attr("address","0x6D8"), -Attr("insn","add x1, x2, x1, asr #3")]), Var("R1",Imm(64)), -PLUS(Var("R2",Imm(64)),ARSHIFT(Var("R1",Imm(64)),Int(3,3)))), -Def(Tid(650, "%0000028a"), Attrs([Attr("address","0x6DC"), -Attr("insn","asr x1, x1, #1")]), Var("R1",Imm(64)), -SIGNED(64,Extract(63,1,Var("R1",Imm(64)))))]), -Jmps([Goto(Tid(656, "%00000290"), Attrs([Attr("address","0x6E0"), -Attr("insn","cbz x1, #0x18")]), EQ(Var("R1",Imm(64)),Int(0,64)), -Direct(Tid(654, "%0000028e"))), Goto(Tid(1_471, "%000005bf"), Attrs([]), - Int(1,1), Direct(Tid(937, "%000003a9")))])), Blk(Tid(937, "%000003a9"), - Attrs([Attr("address","0x6E4")]), Phis([]), Defs([Def(Tid(940, "%000003ac"), - Attrs([Attr("address","0x6E4"), Attr("insn","adrp x2, #65536")]), - Var("R2",Imm(64)), Int(65536,64)), Def(Tid(947, "%000003b3"), - Attrs([Attr("address","0x6E8"), Attr("insn","ldr x2, [x2, #0xff8]")]), - Var("R2",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R2",Imm(64)),Int(4088,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(952, "%000003b8"), Attrs([Attr("address","0x6EC"), -Attr("insn","cbz x2, #0xc")]), EQ(Var("R2",Imm(64)),Int(0,64)), -Direct(Tid(654, "%0000028e"))), Goto(Tid(1_472, "%000005c0"), Attrs([]), - Int(1,1), Direct(Tid(956, "%000003bc")))])), Blk(Tid(654, "%0000028e"), - Attrs([Attr("address","0x6F8")]), Phis([]), Defs([]), -Jmps([Call(Tid(662, "%00000296"), Attrs([Attr("address","0x6F8"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))])), -Blk(Tid(956, "%000003bc"), Attrs([Attr("address","0x6F0")]), Phis([]), -Defs([Def(Tid(960, "%000003c0"), Attrs([Attr("address","0x6F0"), -Attr("insn","mov x16, x2")]), Var("R16",Imm(64)), Var("R2",Imm(64)))]), -Jmps([Call(Tid(965, "%000003c5"), Attrs([Attr("address","0x6F4"), -Attr("insn","br x16")]), Int(1,1), -(Indirect(Var("R16",Imm(64))),))]))]))]))) \ No newline at end of file diff --git a/src/test/correct/basic_lock_security_write/gcc_pic/basic_lock_security_write.bir b/src/test/correct/basic_lock_security_write/gcc_pic/basic_lock_security_write.bir deleted file mode 100644 index a6905b13b..000000000 --- a/src/test/correct/basic_lock_security_write/gcc_pic/basic_lock_security_write.bir +++ /dev/null @@ -1,241 +0,0 @@ -000005c1: program -0000058f: sub __cxa_finalize(__cxa_finalize_result) -000005c2: __cxa_finalize_result :: out u32 = low:32[R0] - -000003a5: -0000049d: R16 := 0x10000 -000004a4: R17 := mem[R16 + 0xFA8, el]:u64 -000004aa: R16 := R16 + 0xFA8 -000004af: call R17 with noreturn - -00000590: sub __do_global_dtors_aux(__do_global_dtors_aux_result) -000005c3: __do_global_dtors_aux_result :: out u32 = low:32[R0] - -0000029a: -0000029e: #3 := R31 - 0x20 -000002a4: mem := mem with [#3, el]:u64 <- R29 -000002aa: mem := mem with [#3 + 8, el]:u64 <- R30 -000002ae: R31 := #3 -000002b4: R29 := R31 -000002bc: mem := mem with [R31 + 0x10, el]:u64 <- R19 -000002c1: R19 := 0x11000 -000002c8: R0 := pad:64[mem[R19 + 0x10]] -000002cf: when 31:0[R0] <> 0 goto %000002cd -000005b7: goto %0000036e - -0000036e: -00000371: R0 := 0x10000 -00000378: R0 := mem[R0 + 0xFD0, el]:u64 -0000037e: when R0 = 0 goto %0000037c -000005b8: goto %00000395 - -00000395: -00000398: R0 := 0x11000 -0000039f: R0 := mem[R0 + 8, el]:u64 -000003a4: R30 := 0x730 -000003a7: call @__cxa_finalize with return %0000037c - -0000037c: -00000384: R30 := 0x734 -00000386: call @deregister_tm_clones with return %00000388 - -00000388: -0000038b: R0 := 1 -00000393: mem := mem with [R19 + 0x10] <- 7:0[R0] -000005b9: goto %000002cd - -000002cd: -000002d7: R19 := mem[R31 + 0x10, el]:u64 -000002de: R29 := mem[R31, el]:u64 -000002e3: R30 := mem[R31 + 8, el]:u64 -000002e7: R31 := R31 + 0x20 -000002ec: call R30 with noreturn - -00000594: sub __libc_start_main(__libc_start_main_main, __libc_start_main_arg2, __libc_start_main_arg3, __libc_start_main_auxv, __libc_start_main_result) -000005c4: __libc_start_main_main :: in u64 = R0 -000005c5: __libc_start_main_arg2 :: in u32 = low:32[R1] -000005c6: __libc_start_main_arg3 :: in out u64 = R2 -000005c7: __libc_start_main_auxv :: in out u64 = R3 -000005c8: __libc_start_main_result :: out u32 = low:32[R0] - -000001f3: -00000487: R16 := 0x10000 -0000048e: R17 := mem[R16 + 0xFA0, el]:u64 -00000494: R16 := R16 + 0xFA0 -00000499: call R17 with noreturn - -00000595: sub _fini(_fini_result) -000005c9: _fini_result :: out u32 = low:32[R0] - -0000001f: -00000025: #0 := R31 - 0x10 -0000002b: mem := mem with [#0, el]:u64 <- R29 -00000031: mem := mem with [#0 + 8, el]:u64 <- R30 -00000035: R31 := #0 -0000003b: R29 := R31 -00000042: R29 := mem[R31, el]:u64 -00000047: R30 := mem[R31 + 8, el]:u64 -0000004b: R31 := R31 + 0x10 -00000050: call R30 with noreturn - -00000596: sub _init(_init_result) -000005ca: _init_result :: out u32 = low:32[R0] - -000004f7: -000004fd: #5 := R31 - 0x10 -00000503: mem := mem with [#5, el]:u64 <- R29 -00000509: mem := mem with [#5 + 8, el]:u64 <- R30 -0000050d: R31 := #5 -00000513: R29 := R31 -00000518: R30 := 0x5C0 -0000051a: call @call_weak_fn with return %0000051c - -0000051c: -00000521: R29 := mem[R31, el]:u64 -00000526: R30 := mem[R31 + 8, el]:u64 -0000052a: R31 := R31 + 0x10 -0000052f: call R30 with noreturn - -00000597: sub _start(_start_result) -000005cb: _start_result :: out u32 = low:32[R0] - -000001b4: -000001b9: R29 := 0 -000001be: R30 := 0 -000001c4: R5 := R0 -000001cb: R1 := mem[R31, el]:u64 -000001d1: R2 := R31 + 8 -000001d7: R6 := R31 -000001dc: R0 := 0x10000 -000001e3: R0 := mem[R0 + 0xFF0, el]:u64 -000001e8: R3 := 0 -000001ed: R4 := 0 -000001f2: R30 := 0x670 -000001f5: call @__libc_start_main with return %000001f7 - -000001f7: -000001fa: R30 := 0x674 -000001fd: call @abort with return %000005ba - -000005ba: -000005bb: call @call_weak_fn with noreturn - -0000059a: sub abort() - - -000001fb: -000004c9: R16 := 0x10000 -000004d0: R17 := mem[R16 + 0xFB8, el]:u64 -000004d6: R16 := R16 + 0xFB8 -000004db: call R17 with noreturn - -0000059b: sub call_weak_fn(call_weak_fn_result) -000005cc: call_weak_fn_result :: out u32 = low:32[R0] - -000001ff: -00000202: R0 := 0x10000 -00000209: R0 := mem[R0 + 0xFE8, el]:u64 -0000020f: when R0 = 0 goto %0000020d -000005bc: goto %000003e5 - -0000020d: -00000215: call R30 with noreturn - -000003e5: -000003e8: goto @__gmon_start__ - -000003e6: -000004b3: R16 := 0x10000 -000004ba: R17 := mem[R16 + 0xFB0, el]:u64 -000004c0: R16 := R16 + 0xFB0 -000004c5: call R17 with noreturn - -0000059d: sub deregister_tm_clones(deregister_tm_clones_result) -000005cd: deregister_tm_clones_result :: out u32 = low:32[R0] - -0000021b: -0000021e: R0 := 0x11000 -00000224: R0 := R0 + 0x10 -00000229: R1 := 0x11000 -0000022f: R1 := R1 + 0x10 -00000235: #1 := ~R0 -0000023a: #2 := R1 + ~R0 -00000240: VF := extend:65[#2 + 1] <> extend:65[R1] + extend:65[#1] + 1 -00000246: CF := pad:65[#2 + 1] <> pad:65[R1] + pad:65[#1] + 1 -0000024a: ZF := #2 + 1 = 0 -0000024e: NF := 63:63[#2 + 1] -00000254: when ZF goto %00000252 -000005bd: goto %000003c7 - -000003c7: -000003ca: R1 := 0x10000 -000003d1: R1 := mem[R1 + 0xFC8, el]:u64 -000003d6: when R1 = 0 goto %00000252 -000005be: goto %000003da - -00000252: -0000025a: call R30 with noreturn - -000003da: -000003de: R16 := R1 -000003e3: call R16 with noreturn - -000005a0: sub frame_dummy(frame_dummy_result) -000005ce: frame_dummy_result :: out u32 = low:32[R0] - -000002f2: -000002f4: call @register_tm_clones with noreturn - -000005a1: sub main(main_argc, main_argv, main_result) -000005cf: main_argc :: in u32 = low:32[R0] -000005d0: main_argv :: in out u64 = R1 -000005d1: main_result :: out u32 = low:32[R0] - -000002f6: -000002fa: R31 := R31 - 0x10 -00000302: mem := mem with [R31 + 0xC, el]:u32 <- 31:0[R0] -00000307: R0 := 0x10000 -0000030e: R0 := mem[R0 + 0xFD8, el]:u64 -00000313: R1 := 1 -0000031b: mem := mem with [R0, el]:u32 <- 31:0[R1] -00000320: R0 := 0x10000 -00000327: R0 := mem[R0 + 0xFE0, el]:u64 -0000032e: R1 := pad:64[mem[R31 + 0xC, el]:u32] -00000336: mem := mem with [R0, el]:u32 <- 31:0[R1] -0000033b: R0 := 0x10000 -00000342: R0 := mem[R0 + 0xFE0, el]:u64 -00000349: mem := mem with [R0, el]:u32 <- 0 -0000034e: R0 := 0x10000 -00000355: R0 := mem[R0 + 0xFD8, el]:u64 -0000035c: mem := mem with [R0, el]:u32 <- 0 -00000361: R0 := 0 -00000367: R31 := R31 + 0x10 -0000036c: call R30 with noreturn - -000005a2: sub register_tm_clones(register_tm_clones_result) -000005d2: register_tm_clones_result :: out u32 = low:32[R0] - -0000025c: -0000025f: R0 := 0x11000 -00000265: R0 := R0 + 0x10 -0000026a: R1 := 0x11000 -00000270: R1 := R1 + 0x10 -00000277: R1 := R1 + ~R0 + 1 -0000027d: R2 := 0.63:63[R1] -00000284: R1 := R2 + (R1 ~>> 3) -0000028a: R1 := extend:64[63:1[R1]] -00000290: when R1 = 0 goto %0000028e -000005bf: goto %000003a9 - -000003a9: -000003ac: R2 := 0x10000 -000003b3: R2 := mem[R2 + 0xFF8, el]:u64 -000003b8: when R2 = 0 goto %0000028e -000005c0: goto %000003bc - -0000028e: -00000296: call R30 with noreturn - -000003bc: -000003c0: R16 := R2 -000003c5: call R16 with noreturn diff --git a/src/test/correct/basic_lock_security_write/gcc_pic/basic_lock_security_write.expected b/src/test/correct/basic_lock_security_write/gcc_pic/basic_lock_security_write.expected index cab2ba95e..2909d8a6c 100644 --- a/src/test/correct/basic_lock_security_write/gcc_pic/basic_lock_security_write.expected +++ b/src/test/correct/basic_lock_security_write/gcc_pic/basic_lock_security_write.expected @@ -79,7 +79,7 @@ implementation {:extern} guarantee_reflexive() assert ((memory_load32_le(mem, $z_addr) == 0bv32) ==> ((memory_load32_le(mem, $x_addr) == memory_load32_le(mem, $x_addr)) && (memory_load32_le(mem, $z_addr) == memory_load32_le(mem, $z_addr)))); } -procedure main_1876(); +procedure main(); modifies Gamma_R0, Gamma_R1, Gamma_R31, Gamma_mem, Gamma_stack, R0, R1, R31, mem, stack; requires (memory_load32_le(mem, $z_addr) != 0bv32); requires (Gamma_R0 == false); @@ -102,19 +102,19 @@ procedure main_1876(); free ensures (memory_load64_le(mem, 69616bv64) == 1876bv64); free ensures (memory_load64_le(mem, 69640bv64) == 69640bv64); -implementation main_1876() +implementation main() { - var Gamma_load18: bool; - var Gamma_load19: bool; - var Gamma_load20: bool; - var Gamma_load21: bool; - var Gamma_load22: bool; + var $load$18: bv64; + var $load$19: bv64; + var $load$20: bv32; + var $load$21: bv64; + var $load$22: bv64; + var Gamma_$load$18: bool; + var Gamma_$load$19: bool; + var Gamma_$load$20: bool; + var Gamma_$load$21: bool; + var Gamma_$load$22: bool; var Gamma_x_old: bool; - var load18: bv64; - var load19: bv64; - var load20: bv32; - var load21: bv64; - var load22: bv64; var x_old: bv32; var z_old: bv32; lmain: @@ -124,64 +124,64 @@ implementation main_1876() assume {:captureState "%00000302"} true; R0, Gamma_R0 := 65536bv64, true; call rely(); - load18, Gamma_load18 := memory_load64_le(mem, bvadd64(R0, 4056bv64)), (gamma_load64(Gamma_mem, bvadd64(R0, 4056bv64)) || L(mem, bvadd64(R0, 4056bv64))); - R0, Gamma_R0 := load18, Gamma_load18; + $load$18, Gamma_$load$18 := memory_load64_le(mem, bvadd64(R0, 4056bv64)), (gamma_load64(Gamma_mem, bvadd64(R0, 4056bv64)) || L(mem, bvadd64(R0, 4056bv64))); + R0, Gamma_R0 := $load$18, Gamma_$load$18; R1, Gamma_R1 := 1bv64, true; call rely(); + assert (L(mem, R0) ==> Gamma_R1); x_old := memory_load32_le(mem, $x_addr); z_old := memory_load32_le(mem, $z_addr); Gamma_x_old := (gamma_load32(Gamma_mem, $x_addr) || L(mem, $x_addr)); - assert (L(mem, R0) ==> Gamma_R1); mem, Gamma_mem := memory_store32_le(mem, R0, R1[32:0]), gamma_store32(Gamma_mem, R0, Gamma_R1); assert ((R0 == $z_addr) ==> (L(mem, $x_addr) ==> Gamma_x_old)); assert ((z_old == 0bv32) ==> ((memory_load32_le(mem, $x_addr) == x_old) && (memory_load32_le(mem, $z_addr) == z_old))); assume {:captureState "%0000031b"} true; R0, Gamma_R0 := 65536bv64, true; call rely(); - load19, Gamma_load19 := memory_load64_le(mem, bvadd64(R0, 4064bv64)), (gamma_load64(Gamma_mem, bvadd64(R0, 4064bv64)) || L(mem, bvadd64(R0, 4064bv64))); - R0, Gamma_R0 := load19, Gamma_load19; - load20, Gamma_load20 := memory_load32_le(stack, bvadd64(R31, 12bv64)), gamma_load32(Gamma_stack, bvadd64(R31, 12bv64)); - R1, Gamma_R1 := zero_extend32_32(load20), Gamma_load20; + $load$19, Gamma_$load$19 := memory_load64_le(mem, bvadd64(R0, 4064bv64)), (gamma_load64(Gamma_mem, bvadd64(R0, 4064bv64)) || L(mem, bvadd64(R0, 4064bv64))); + R0, Gamma_R0 := $load$19, Gamma_$load$19; + $load$20, Gamma_$load$20 := memory_load32_le(stack, bvadd64(R31, 12bv64)), gamma_load32(Gamma_stack, bvadd64(R31, 12bv64)); + R1, Gamma_R1 := zero_extend32_32($load$20), Gamma_$load$20; call rely(); + assert (L(mem, R0) ==> Gamma_R1); x_old := memory_load32_le(mem, $x_addr); z_old := memory_load32_le(mem, $z_addr); Gamma_x_old := (gamma_load32(Gamma_mem, $x_addr) || L(mem, $x_addr)); - assert (L(mem, R0) ==> Gamma_R1); mem, Gamma_mem := memory_store32_le(mem, R0, R1[32:0]), gamma_store32(Gamma_mem, R0, Gamma_R1); assert ((R0 == $z_addr) ==> (L(mem, $x_addr) ==> Gamma_x_old)); assert ((z_old == 0bv32) ==> ((memory_load32_le(mem, $x_addr) == x_old) && (memory_load32_le(mem, $z_addr) == z_old))); assume {:captureState "%00000336"} true; R0, Gamma_R0 := 65536bv64, true; call rely(); - load21, Gamma_load21 := memory_load64_le(mem, bvadd64(R0, 4064bv64)), (gamma_load64(Gamma_mem, bvadd64(R0, 4064bv64)) || L(mem, bvadd64(R0, 4064bv64))); - R0, Gamma_R0 := load21, Gamma_load21; + $load$21, Gamma_$load$21 := memory_load64_le(mem, bvadd64(R0, 4064bv64)), (gamma_load64(Gamma_mem, bvadd64(R0, 4064bv64)) || L(mem, bvadd64(R0, 4064bv64))); + R0, Gamma_R0 := $load$21, Gamma_$load$21; call rely(); + assert (L(mem, R0) ==> true); x_old := memory_load32_le(mem, $x_addr); z_old := memory_load32_le(mem, $z_addr); Gamma_x_old := (gamma_load32(Gamma_mem, $x_addr) || L(mem, $x_addr)); - assert (L(mem, R0) ==> true); mem, Gamma_mem := memory_store32_le(mem, R0, 0bv32), gamma_store32(Gamma_mem, R0, true); assert ((R0 == $z_addr) ==> (L(mem, $x_addr) ==> Gamma_x_old)); assert ((z_old == 0bv32) ==> ((memory_load32_le(mem, $x_addr) == x_old) && (memory_load32_le(mem, $z_addr) == z_old))); assume {:captureState "%00000349"} true; R0, Gamma_R0 := 65536bv64, true; call rely(); - load22, Gamma_load22 := memory_load64_le(mem, bvadd64(R0, 4056bv64)), (gamma_load64(Gamma_mem, bvadd64(R0, 4056bv64)) || L(mem, bvadd64(R0, 4056bv64))); - R0, Gamma_R0 := load22, Gamma_load22; + $load$22, Gamma_$load$22 := memory_load64_le(mem, bvadd64(R0, 4056bv64)), (gamma_load64(Gamma_mem, bvadd64(R0, 4056bv64)) || L(mem, bvadd64(R0, 4056bv64))); + R0, Gamma_R0 := $load$22, Gamma_$load$22; call rely(); + assert (L(mem, R0) ==> true); x_old := memory_load32_le(mem, $x_addr); z_old := memory_load32_le(mem, $z_addr); Gamma_x_old := (gamma_load32(Gamma_mem, $x_addr) || L(mem, $x_addr)); - assert (L(mem, R0) ==> true); mem, Gamma_mem := memory_store32_le(mem, R0, 0bv32), gamma_store32(Gamma_mem, R0, true); assert ((R0 == $z_addr) ==> (L(mem, $x_addr) ==> Gamma_x_old)); assert ((z_old == 0bv32) ==> ((memory_load32_le(mem, $x_addr) == x_old) && (memory_load32_le(mem, $z_addr) == z_old))); assume {:captureState "%0000035c"} true; R0, Gamma_R0 := 0bv64, true; R31, Gamma_R31 := bvadd64(R31, 16bv64), Gamma_R31; - goto main_1876_basil_return; - main_1876_basil_return: - assume {:captureState "main_1876_basil_return"} true; + goto main_basil_return; + main_basil_return: + assume {:captureState "main_basil_return"} true; return; } diff --git a/src/test/correct/basic_lock_security_write/gcc_pic/basic_lock_security_write.gts b/src/test/correct/basic_lock_security_write/gcc_pic/basic_lock_security_write.gts deleted file mode 100644 index 06427cc62..000000000 Binary files a/src/test/correct/basic_lock_security_write/gcc_pic/basic_lock_security_write.gts and /dev/null differ diff --git a/src/test/correct/basic_lock_security_write/gcc_pic/basic_lock_security_write.md5sum b/src/test/correct/basic_lock_security_write/gcc_pic/basic_lock_security_write.md5sum new file mode 100644 index 000000000..489968285 --- /dev/null +++ b/src/test/correct/basic_lock_security_write/gcc_pic/basic_lock_security_write.md5sum @@ -0,0 +1,5 @@ +c4b5b579bf78cfe91ad21ecc3bbaa421 correct/basic_lock_security_write/gcc_pic/a.out +9648c1a04b1d200d5397454f3b8dcbd8 correct/basic_lock_security_write/gcc_pic/basic_lock_security_write.adt +cdc19c9c5b06c579181953960c016006 correct/basic_lock_security_write/gcc_pic/basic_lock_security_write.bir +2590d377f7713b809fbbf0046939b876 correct/basic_lock_security_write/gcc_pic/basic_lock_security_write.relf +9e7fded4e993dbeea630c6ef3757d868 correct/basic_lock_security_write/gcc_pic/basic_lock_security_write.gts diff --git a/src/test/correct/basic_lock_security_write/gcc_pic/basic_lock_security_write.relf b/src/test/correct/basic_lock_security_write/gcc_pic/basic_lock_security_write.relf deleted file mode 100644 index 59c31c40e..000000000 --- a/src/test/correct/basic_lock_security_write/gcc_pic/basic_lock_security_write.relf +++ /dev/null @@ -1,124 +0,0 @@ - -Relocation section '.rela.dyn' at offset 0x460 contains 10 entries: - Offset Info Type Symbol's Value Symbol's Name + Addend -0000000000010d88 0000000000000403 R_AARCH64_RELATIVE 750 -0000000000010d90 0000000000000403 R_AARCH64_RELATIVE 700 -0000000000010fd8 0000000000000403 R_AARCH64_RELATIVE 11018 -0000000000010fe0 0000000000000403 R_AARCH64_RELATIVE 11014 -0000000000010ff0 0000000000000403 R_AARCH64_RELATIVE 754 -0000000000011008 0000000000000403 R_AARCH64_RELATIVE 11008 -0000000000010fc8 0000000400000401 R_AARCH64_GLOB_DAT 0000000000000000 _ITM_deregisterTMCloneTable + 0 -0000000000010fd0 0000000500000401 R_AARCH64_GLOB_DAT 0000000000000000 __cxa_finalize@GLIBC_2.17 + 0 -0000000000010fe8 0000000600000401 R_AARCH64_GLOB_DAT 0000000000000000 __gmon_start__ + 0 -0000000000010ff8 0000000800000401 R_AARCH64_GLOB_DAT 0000000000000000 _ITM_registerTMCloneTable + 0 - -Relocation section '.rela.plt' at offset 0x550 contains 4 entries: - Offset Info Type Symbol's Value Symbol's Name + Addend -0000000000010fa0 0000000300000402 R_AARCH64_JUMP_SLOT 0000000000000000 __libc_start_main@GLIBC_2.34 + 0 -0000000000010fa8 0000000500000402 R_AARCH64_JUMP_SLOT 0000000000000000 __cxa_finalize@GLIBC_2.17 + 0 -0000000000010fb0 0000000600000402 R_AARCH64_JUMP_SLOT 0000000000000000 __gmon_start__ + 0 -0000000000010fb8 0000000700000402 R_AARCH64_JUMP_SLOT 0000000000000000 abort@GLIBC_2.17 + 0 - -Symbol table '.dynsym' contains 9 entries: - Num: Value Size Type Bind Vis Ndx Name - 0: 0000000000000000 0 NOTYPE LOCAL DEFAULT UND - 1: 00000000000005b0 0 SECTION LOCAL DEFAULT 11 .init - 2: 0000000000011000 0 SECTION LOCAL DEFAULT 22 .data - 3: 0000000000000000 0 FUNC GLOBAL DEFAULT UND __libc_start_main@GLIBC_2.34 (2) - 4: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_deregisterTMCloneTable - 5: 0000000000000000 0 FUNC WEAK DEFAULT UND __cxa_finalize@GLIBC_2.17 (3) - 6: 0000000000000000 0 NOTYPE WEAK DEFAULT UND __gmon_start__ - 7: 0000000000000000 0 FUNC GLOBAL DEFAULT UND abort@GLIBC_2.17 (3) - 8: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_registerTMCloneTable - -Symbol table '.symtab' contains 89 entries: - Num: Value Size Type Bind Vis Ndx Name - 0: 0000000000000000 0 NOTYPE LOCAL DEFAULT UND - 1: 0000000000000238 0 SECTION LOCAL DEFAULT 1 .interp - 2: 0000000000000254 0 SECTION LOCAL DEFAULT 2 .note.gnu.build-id - 3: 0000000000000278 0 SECTION LOCAL DEFAULT 3 .note.ABI-tag - 4: 0000000000000298 0 SECTION LOCAL DEFAULT 4 .gnu.hash - 5: 00000000000002b8 0 SECTION LOCAL DEFAULT 5 .dynsym - 6: 0000000000000390 0 SECTION LOCAL DEFAULT 6 .dynstr - 7: 000000000000041e 0 SECTION LOCAL DEFAULT 7 .gnu.version - 8: 0000000000000430 0 SECTION LOCAL DEFAULT 8 .gnu.version_r - 9: 0000000000000460 0 SECTION LOCAL DEFAULT 9 .rela.dyn - 10: 0000000000000550 0 SECTION LOCAL DEFAULT 10 .rela.plt - 11: 00000000000005b0 0 SECTION LOCAL DEFAULT 11 .init - 12: 00000000000005d0 0 SECTION LOCAL DEFAULT 12 .plt - 13: 0000000000000640 0 SECTION LOCAL DEFAULT 13 .text - 14: 00000000000007a0 0 SECTION LOCAL DEFAULT 14 .fini - 15: 00000000000007b4 0 SECTION LOCAL DEFAULT 15 .rodata - 16: 00000000000007b8 0 SECTION LOCAL DEFAULT 16 .eh_frame_hdr - 17: 00000000000007f8 0 SECTION LOCAL DEFAULT 17 .eh_frame - 18: 0000000000010d88 0 SECTION LOCAL DEFAULT 18 .init_array - 19: 0000000000010d90 0 SECTION LOCAL DEFAULT 19 .fini_array - 20: 0000000000010d98 0 SECTION LOCAL DEFAULT 20 .dynamic - 21: 0000000000010f88 0 SECTION LOCAL DEFAULT 21 .got - 22: 0000000000011000 0 SECTION LOCAL DEFAULT 22 .data - 23: 0000000000011010 0 SECTION LOCAL DEFAULT 23 .bss - 24: 0000000000000000 0 SECTION LOCAL DEFAULT 24 .comment - 25: 0000000000000000 0 FILE LOCAL DEFAULT ABS Scrt1.o - 26: 0000000000000278 0 NOTYPE LOCAL DEFAULT 3 $d - 27: 0000000000000278 32 OBJECT LOCAL DEFAULT 3 __abi_tag - 28: 0000000000000640 0 NOTYPE LOCAL DEFAULT 13 $x - 29: 000000000000080c 0 NOTYPE LOCAL DEFAULT 17 $d - 30: 00000000000007b4 0 NOTYPE LOCAL DEFAULT 15 $d - 31: 0000000000000000 0 FILE LOCAL DEFAULT ABS crti.o - 32: 0000000000000674 0 NOTYPE LOCAL DEFAULT 13 $x - 33: 0000000000000674 20 FUNC LOCAL DEFAULT 13 call_weak_fn - 34: 00000000000005b0 0 NOTYPE LOCAL DEFAULT 11 $x - 35: 00000000000007a0 0 NOTYPE LOCAL DEFAULT 14 $x - 36: 0000000000000000 0 FILE LOCAL DEFAULT ABS crtn.o - 37: 00000000000005c0 0 NOTYPE LOCAL DEFAULT 11 $x - 38: 00000000000007ac 0 NOTYPE LOCAL DEFAULT 14 $x - 39: 0000000000000000 0 FILE LOCAL DEFAULT ABS crtstuff.c - 40: 0000000000000690 0 NOTYPE LOCAL DEFAULT 13 $x - 41: 0000000000000690 0 FUNC LOCAL DEFAULT 13 deregister_tm_clones - 42: 00000000000006c0 0 FUNC LOCAL DEFAULT 13 register_tm_clones - 43: 0000000000011008 0 NOTYPE LOCAL DEFAULT 22 $d - 44: 0000000000000700 0 FUNC LOCAL DEFAULT 13 __do_global_dtors_aux - 45: 0000000000011010 1 OBJECT LOCAL DEFAULT 23 completed.0 - 46: 0000000000010d90 0 NOTYPE LOCAL DEFAULT 19 $d - 47: 0000000000010d90 0 OBJECT LOCAL DEFAULT 19 __do_global_dtors_aux_fini_array_entry - 48: 0000000000000750 0 FUNC LOCAL DEFAULT 13 frame_dummy - 49: 0000000000010d88 0 NOTYPE LOCAL DEFAULT 18 $d - 50: 0000000000010d88 0 OBJECT LOCAL DEFAULT 18 __frame_dummy_init_array_entry - 51: 0000000000000820 0 NOTYPE LOCAL DEFAULT 17 $d - 52: 0000000000011010 0 NOTYPE LOCAL DEFAULT 23 $d - 53: 0000000000000000 0 FILE LOCAL DEFAULT ABS basic_lock_security_write.c - 54: 0000000000011014 0 NOTYPE LOCAL DEFAULT 23 $d - 55: 0000000000000754 0 NOTYPE LOCAL DEFAULT 13 $x - 56: 0000000000000880 0 NOTYPE LOCAL DEFAULT 17 $d - 57: 0000000000000000 0 FILE LOCAL DEFAULT ABS crtstuff.c - 58: 0000000000000898 0 NOTYPE LOCAL DEFAULT 17 $d - 59: 0000000000000898 0 OBJECT LOCAL DEFAULT 17 __FRAME_END__ - 60: 0000000000000000 0 FILE LOCAL DEFAULT ABS - 61: 0000000000010d98 0 OBJECT LOCAL DEFAULT ABS _DYNAMIC - 62: 00000000000007b8 0 NOTYPE LOCAL DEFAULT 16 __GNU_EH_FRAME_HDR - 63: 0000000000010fc0 0 OBJECT LOCAL DEFAULT ABS _GLOBAL_OFFSET_TABLE_ - 64: 00000000000005d0 0 NOTYPE LOCAL DEFAULT 12 $x - 65: 0000000000000000 0 FUNC GLOBAL DEFAULT UND __libc_start_main@GLIBC_2.34 - 66: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_deregisterTMCloneTable - 67: 0000000000011000 0 NOTYPE WEAK DEFAULT 22 data_start - 68: 0000000000011010 0 NOTYPE GLOBAL DEFAULT 23 __bss_start__ - 69: 0000000000000000 0 FUNC WEAK DEFAULT UND __cxa_finalize@GLIBC_2.17 - 70: 0000000000011020 0 NOTYPE GLOBAL DEFAULT 23 _bss_end__ - 71: 0000000000011010 0 NOTYPE GLOBAL DEFAULT 22 _edata - 72: 0000000000011018 4 OBJECT GLOBAL DEFAULT 23 z - 73: 0000000000011014 4 OBJECT GLOBAL DEFAULT 23 x - 74: 00000000000007a0 0 FUNC GLOBAL HIDDEN 14 _fini - 75: 0000000000011020 0 NOTYPE GLOBAL DEFAULT 23 __bss_end__ - 76: 0000000000011000 0 NOTYPE GLOBAL DEFAULT 22 __data_start - 77: 0000000000000000 0 NOTYPE WEAK DEFAULT UND __gmon_start__ - 78: 0000000000011008 0 OBJECT GLOBAL HIDDEN 22 __dso_handle - 79: 0000000000000000 0 FUNC GLOBAL DEFAULT UND abort@GLIBC_2.17 - 80: 00000000000007b4 4 OBJECT GLOBAL DEFAULT 15 _IO_stdin_used - 81: 0000000000011020 0 NOTYPE GLOBAL DEFAULT 23 _end - 82: 0000000000000640 52 FUNC GLOBAL DEFAULT 13 _start - 83: 0000000000011020 0 NOTYPE GLOBAL DEFAULT 23 __end__ - 84: 0000000000011010 0 NOTYPE GLOBAL DEFAULT 23 __bss_start - 85: 0000000000000754 76 FUNC GLOBAL DEFAULT 13 main - 86: 0000000000011010 0 OBJECT GLOBAL HIDDEN 22 __TMC_END__ - 87: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_registerTMCloneTable - 88: 00000000000005b0 0 FUNC GLOBAL HIDDEN 11 _init diff --git a/src/test/correct/basic_lock_security_write/gcc_pic/basic_lock_security_write_gtirb.expected b/src/test/correct/basic_lock_security_write/gcc_pic/basic_lock_security_write_gtirb.expected index 825f6f7ad..b9c59408b 100644 --- a/src/test/correct/basic_lock_security_write/gcc_pic/basic_lock_security_write_gtirb.expected +++ b/src/test/correct/basic_lock_security_write/gcc_pic/basic_lock_security_write_gtirb.expected @@ -79,7 +79,7 @@ implementation {:extern} guarantee_reflexive() assert ((memory_load32_le(mem, $z_addr) == 0bv32) ==> ((memory_load32_le(mem, $x_addr) == memory_load32_le(mem, $x_addr)) && (memory_load32_le(mem, $z_addr) == memory_load32_le(mem, $z_addr)))); } -procedure main_1876(); +procedure main(); modifies Gamma_R0, Gamma_R1, Gamma_R31, Gamma_mem, Gamma_stack, R0, R1, R31, mem, stack; requires (memory_load32_le(mem, $z_addr) != 0bv32); requires (Gamma_R0 == false); @@ -102,86 +102,86 @@ procedure main_1876(); free ensures (memory_load64_le(mem, 69616bv64) == 1876bv64); free ensures (memory_load64_le(mem, 69640bv64) == 69640bv64); -implementation main_1876() +implementation main() { - var Gamma_load20: bool; - var Gamma_load21: bool; - var Gamma_load22: bool; - var Gamma_load23: bool; - var Gamma_load24: bool; + var $load20: bv64; + var $load21: bv64; + var $load22: bv32; + var $load23: bv64; + var $load24: bv64; + var Gamma_$load20: bool; + var Gamma_$load21: bool; + var Gamma_$load22: bool; + var Gamma_$load23: bool; + var Gamma_$load24: bool; var Gamma_x_old: bool; - var load20: bv64; - var load21: bv64; - var load22: bv32; - var load23: bv64; - var load24: bv64; var x_old: bv32; var z_old: bv32; - main_1876__0__j~RmZ1FYSBm9ctVNQYcBtw: - assume {:captureState "main_1876__0__j~RmZ1FYSBm9ctVNQYcBtw"} true; + $main$__0__$j~RmZ1FYSBm9ctVNQYcBtw: + assume {:captureState "$main$__0__$j~RmZ1FYSBm9ctVNQYcBtw"} true; R31, Gamma_R31 := bvadd64(R31, 18446744073709551600bv64), Gamma_R31; stack, Gamma_stack := memory_store32_le(stack, bvadd64(R31, 12bv64), R0[32:0]), gamma_store32(Gamma_stack, bvadd64(R31, 12bv64), Gamma_R0); - assume {:captureState "1880_0"} true; + assume {:captureState "1880$0"} true; R0, Gamma_R0 := 65536bv64, true; call rely(); - load20, Gamma_load20 := memory_load64_le(mem, bvadd64(R0, 4056bv64)), (gamma_load64(Gamma_mem, bvadd64(R0, 4056bv64)) || L(mem, bvadd64(R0, 4056bv64))); - R0, Gamma_R0 := load20, Gamma_load20; + $load20, Gamma_$load20 := memory_load64_le(mem, bvadd64(R0, 4056bv64)), (gamma_load64(Gamma_mem, bvadd64(R0, 4056bv64)) || L(mem, bvadd64(R0, 4056bv64))); + R0, Gamma_R0 := $load20, Gamma_$load20; R1, Gamma_R1 := 1bv64, true; call rely(); + assert (L(mem, R0) ==> Gamma_R1); x_old := memory_load32_le(mem, $x_addr); z_old := memory_load32_le(mem, $z_addr); Gamma_x_old := (gamma_load32(Gamma_mem, $x_addr) || L(mem, $x_addr)); - assert (L(mem, R0) ==> Gamma_R1); mem, Gamma_mem := memory_store32_le(mem, R0, R1[32:0]), gamma_store32(Gamma_mem, R0, Gamma_R1); assert ((R0 == $z_addr) ==> (L(mem, $x_addr) ==> Gamma_x_old)); assert ((z_old == 0bv32) ==> ((memory_load32_le(mem, $x_addr) == x_old) && (memory_load32_le(mem, $z_addr) == z_old))); - assume {:captureState "1896_0"} true; + assume {:captureState "1896$0"} true; R0, Gamma_R0 := 65536bv64, true; call rely(); - load21, Gamma_load21 := memory_load64_le(mem, bvadd64(R0, 4064bv64)), (gamma_load64(Gamma_mem, bvadd64(R0, 4064bv64)) || L(mem, bvadd64(R0, 4064bv64))); - R0, Gamma_R0 := load21, Gamma_load21; - load22, Gamma_load22 := memory_load32_le(stack, bvadd64(R31, 12bv64)), gamma_load32(Gamma_stack, bvadd64(R31, 12bv64)); - R1, Gamma_R1 := zero_extend32_32(load22), Gamma_load22; + $load21, Gamma_$load21 := memory_load64_le(mem, bvadd64(R0, 4064bv64)), (gamma_load64(Gamma_mem, bvadd64(R0, 4064bv64)) || L(mem, bvadd64(R0, 4064bv64))); + R0, Gamma_R0 := $load21, Gamma_$load21; + $load22, Gamma_$load22 := memory_load32_le(stack, bvadd64(R31, 12bv64)), gamma_load32(Gamma_stack, bvadd64(R31, 12bv64)); + R1, Gamma_R1 := zero_extend32_32($load22), Gamma_$load22; call rely(); + assert (L(mem, R0) ==> Gamma_R1); x_old := memory_load32_le(mem, $x_addr); z_old := memory_load32_le(mem, $z_addr); Gamma_x_old := (gamma_load32(Gamma_mem, $x_addr) || L(mem, $x_addr)); - assert (L(mem, R0) ==> Gamma_R1); mem, Gamma_mem := memory_store32_le(mem, R0, R1[32:0]), gamma_store32(Gamma_mem, R0, Gamma_R1); assert ((R0 == $z_addr) ==> (L(mem, $x_addr) ==> Gamma_x_old)); assert ((z_old == 0bv32) ==> ((memory_load32_le(mem, $x_addr) == x_old) && (memory_load32_le(mem, $z_addr) == z_old))); - assume {:captureState "1912_0"} true; + assume {:captureState "1912$0"} true; R0, Gamma_R0 := 65536bv64, true; call rely(); - load23, Gamma_load23 := memory_load64_le(mem, bvadd64(R0, 4064bv64)), (gamma_load64(Gamma_mem, bvadd64(R0, 4064bv64)) || L(mem, bvadd64(R0, 4064bv64))); - R0, Gamma_R0 := load23, Gamma_load23; + $load23, Gamma_$load23 := memory_load64_le(mem, bvadd64(R0, 4064bv64)), (gamma_load64(Gamma_mem, bvadd64(R0, 4064bv64)) || L(mem, bvadd64(R0, 4064bv64))); + R0, Gamma_R0 := $load23, Gamma_$load23; call rely(); + assert (L(mem, R0) ==> true); x_old := memory_load32_le(mem, $x_addr); z_old := memory_load32_le(mem, $z_addr); Gamma_x_old := (gamma_load32(Gamma_mem, $x_addr) || L(mem, $x_addr)); - assert (L(mem, R0) ==> true); mem, Gamma_mem := memory_store32_le(mem, R0, 0bv32), gamma_store32(Gamma_mem, R0, true); assert ((R0 == $z_addr) ==> (L(mem, $x_addr) ==> Gamma_x_old)); assert ((z_old == 0bv32) ==> ((memory_load32_le(mem, $x_addr) == x_old) && (memory_load32_le(mem, $z_addr) == z_old))); - assume {:captureState "1924_0"} true; + assume {:captureState "1924$0"} true; R0, Gamma_R0 := 65536bv64, true; call rely(); - load24, Gamma_load24 := memory_load64_le(mem, bvadd64(R0, 4056bv64)), (gamma_load64(Gamma_mem, bvadd64(R0, 4056bv64)) || L(mem, bvadd64(R0, 4056bv64))); - R0, Gamma_R0 := load24, Gamma_load24; + $load24, Gamma_$load24 := memory_load64_le(mem, bvadd64(R0, 4056bv64)), (gamma_load64(Gamma_mem, bvadd64(R0, 4056bv64)) || L(mem, bvadd64(R0, 4056bv64))); + R0, Gamma_R0 := $load24, Gamma_$load24; call rely(); + assert (L(mem, R0) ==> true); x_old := memory_load32_le(mem, $x_addr); z_old := memory_load32_le(mem, $z_addr); Gamma_x_old := (gamma_load32(Gamma_mem, $x_addr) || L(mem, $x_addr)); - assert (L(mem, R0) ==> true); mem, Gamma_mem := memory_store32_le(mem, R0, 0bv32), gamma_store32(Gamma_mem, R0, true); assert ((R0 == $z_addr) ==> (L(mem, $x_addr) ==> Gamma_x_old)); assert ((z_old == 0bv32) ==> ((memory_load32_le(mem, $x_addr) == x_old) && (memory_load32_le(mem, $z_addr) == z_old))); - assume {:captureState "1936_0"} true; + assume {:captureState "1936$0"} true; R0, Gamma_R0 := 0bv64, true; R31, Gamma_R31 := bvadd64(R31, 16bv64), Gamma_R31; - goto main_1876_basil_return; - main_1876_basil_return: - assume {:captureState "main_1876_basil_return"} true; + goto main_basil_return; + main_basil_return: + assume {:captureState "main_basil_return"} true; return; } diff --git a/src/test/correct/basic_lock_unlock/clang/basic_lock_unlock.adt b/src/test/correct/basic_lock_unlock/clang/basic_lock_unlock.adt deleted file mode 100644 index 812b07930..000000000 --- a/src/test/correct/basic_lock_unlock/clang/basic_lock_unlock.adt +++ /dev/null @@ -1,497 +0,0 @@ -Project(Attrs([Attr("filename","\"clang/basic_lock_unlock.out\""), -Attr("image-specification","(declare abi (name str))\n(declare arch (name str))\n(declare base-address (addr int))\n(declare bias (off int))\n(declare bits (size int))\n(declare code-region (addr int) (size int) (off int))\n(declare code-start (addr int))\n(declare entry-point (addr int))\n(declare external-reference (addr int) (name str))\n(declare format (name str))\n(declare is-executable (flag bool))\n(declare is-little-endian (flag bool))\n(declare llvm:base-address (addr int))\n(declare llvm:code-entry (name str) (off int) (size int))\n(declare llvm:coff-import-library (name str))\n(declare llvm:coff-virtual-section-header (name str) (addr int) (size int))\n(declare llvm:elf-program-header (name str) (off int) (size int))\n(declare llvm:elf-program-header-flags (name str) (ld bool) (r bool) \n (w bool) (x bool))\n(declare llvm:elf-virtual-program-header (name str) (addr int) (size int))\n(declare llvm:entry-point (addr int))\n(declare llvm:macho-symbol (name str) (value int))\n(declare llvm:name-reference (at int) (name str))\n(declare llvm:relocation (at int) (addr int))\n(declare llvm:section-entry (name str) (addr int) (size int) (off int))\n(declare llvm:section-flags (name str) (r bool) (w bool) (x bool))\n(declare llvm:segment-command (name str) (off int) (size int))\n(declare llvm:segment-command-flags (name str) (r bool) (w bool) (x bool))\n(declare llvm:symbol-entry (name str) (addr int) (size int) (off int)\n (value int))\n(declare llvm:virtual-segment-command (name str) (addr int) (size int))\n(declare mapped (addr int) (size int) (off int))\n(declare named-region (addr int) (size int) (name str))\n(declare named-symbol (addr int) (name str))\n(declare require (name str))\n(declare section (addr int) (size int))\n(declare segment (addr int) (size int) (r bool) (w bool) (x bool))\n(declare subarch (name str))\n(declare symbol-chunk (addr int) (size int) (root int))\n(declare symbol-value (addr int) (value int))\n(declare system (name str))\n(declare vendor (name str))\n\n(abi unknown)\n(arch aarch64)\n(base-address 0)\n(bias 0)\n(bits 64)\n(code-region 1840 20 1840)\n(code-region 1536 304 1536)\n(code-region 1440 96 1440)\n(code-region 1408 24 1408)\n(code-start 1588)\n(code-start 1536)\n(code-start 1812)\n(entry-point 1536)\n(external-reference 69568 _ITM_deregisterTMCloneTable)\n(external-reference 69576 __cxa_finalize)\n(external-reference 69584 __gmon_start__)\n(external-reference 69600 _ITM_registerTMCloneTable)\n(external-reference 69632 __libc_start_main)\n(external-reference 69640 __cxa_finalize)\n(external-reference 69648 __gmon_start__)\n(external-reference 69656 abort)\n(format elf)\n(is-executable true)\n(is-little-endian true)\n(llvm:base-address 0)\n(llvm:code-entry abort 0 0)\n(llvm:code-entry __cxa_finalize 0 0)\n(llvm:code-entry __libc_start_main 0 0)\n(llvm:code-entry _init 1408 0)\n(llvm:code-entry main 1812 28)\n(llvm:code-entry _start 1536 52)\n(llvm:code-entry abort@GLIBC_2.17 0 0)\n(llvm:code-entry _fini 1840 0)\n(llvm:code-entry __cxa_finalize@GLIBC_2.17 0 0)\n(llvm:code-entry __libc_start_main@GLIBC_2.34 0 0)\n(llvm:code-entry frame_dummy 1808 0)\n(llvm:code-entry __do_global_dtors_aux 1728 0)\n(llvm:code-entry register_tm_clones 1664 0)\n(llvm:code-entry deregister_tm_clones 1616 0)\n(llvm:code-entry call_weak_fn 1588 20)\n(llvm:code-entry .fini 1840 20)\n(llvm:code-entry .text 1536 304)\n(llvm:code-entry .plt 1440 96)\n(llvm:code-entry .init 1408 24)\n(llvm:elf-program-header 08 3528 568)\n(llvm:elf-program-header 07 0 0)\n(llvm:elf-program-header 06 1864 60)\n(llvm:elf-program-header 05 596 68)\n(llvm:elf-program-header 04 3544 480)\n(llvm:elf-program-header 03 3528 616)\n(llvm:elf-program-header 02 0 2108)\n(llvm:elf-program-header 01 568 27)\n(llvm:elf-program-header 00 64 504)\n(llvm:elf-program-header-flags 08 false true false false)\n(llvm:elf-program-header-flags 07 false true true false)\n(llvm:elf-program-header-flags 06 false true false false)\n(llvm:elf-program-header-flags 05 false true false false)\n(llvm:elf-program-header-flags 04 false true true false)\n(llvm:elf-program-header-flags 03 true true true false)\n(llvm:elf-program-header-flags 02 true true false true)\n(llvm:elf-program-header-flags 01 false true false false)\n(llvm:elf-program-header-flags 00 false true false false)\n(llvm:elf-virtual-program-header 08 69064 568)\n(llvm:elf-virtual-program-header 07 0 0)\n(llvm:elf-virtual-program-header 06 1864 60)\n(llvm:elf-virtual-program-header 05 596 68)\n(llvm:elf-virtual-program-header 04 69080 480)\n(llvm:elf-virtual-program-header 03 69064 632)\n(llvm:elf-virtual-program-header 02 0 2108)\n(llvm:elf-virtual-program-header 01 568 27)\n(llvm:elf-virtual-program-header 00 64 504)\n(llvm:entry-point 1536)\n(llvm:name-reference 69656 abort)\n(llvm:name-reference 69648 __gmon_start__)\n(llvm:name-reference 69640 __cxa_finalize)\n(llvm:name-reference 69632 __libc_start_main)\n(llvm:name-reference 69600 _ITM_registerTMCloneTable)\n(llvm:name-reference 69584 __gmon_start__)\n(llvm:name-reference 69576 __cxa_finalize)\n(llvm:name-reference 69568 _ITM_deregisterTMCloneTable)\n(llvm:section-entry .shstrtab 0 259 6975)\n(llvm:section-entry .strtab 0 575 6400)\n(llvm:section-entry .symtab 0 2184 4216)\n(llvm:section-entry .comment 0 71 4144)\n(llvm:section-entry .bss 69680 16 4144)\n(llvm:section-entry .data 69664 16 4128)\n(llvm:section-entry .got.plt 69608 56 4072)\n(llvm:section-entry .got 69560 48 4024)\n(llvm:section-entry .dynamic 69080 480 3544)\n(llvm:section-entry .fini_array 69072 8 3536)\n(llvm:section-entry .init_array 69064 8 3528)\n(llvm:section-entry .eh_frame 1928 180 1928)\n(llvm:section-entry .eh_frame_hdr 1864 60 1864)\n(llvm:section-entry .rodata 1860 4 1860)\n(llvm:section-entry .fini 1840 20 1840)\n(llvm:section-entry .text 1536 304 1536)\n(llvm:section-entry .plt 1440 96 1440)\n(llvm:section-entry .init 1408 24 1408)\n(llvm:section-entry .rela.plt 1312 96 1312)\n(llvm:section-entry .rela.dyn 1120 192 1120)\n(llvm:section-entry .gnu.version_r 1072 48 1072)\n(llvm:section-entry .gnu.version 1054 18 1054)\n(llvm:section-entry .dynstr 912 141 912)\n(llvm:section-entry .dynsym 696 216 696)\n(llvm:section-entry .gnu.hash 664 28 664)\n(llvm:section-entry .note.ABI-tag 632 32 632)\n(llvm:section-entry .note.gnu.build-id 596 36 596)\n(llvm:section-entry .interp 568 27 568)\n(llvm:section-flags .shstrtab true false false)\n(llvm:section-flags .strtab true false false)\n(llvm:section-flags .symtab true false false)\n(llvm:section-flags .comment true false false)\n(llvm:section-flags .bss true true false)\n(llvm:section-flags .data true true false)\n(llvm:section-flags .got.plt true true false)\n(llvm:section-flags .got true true false)\n(llvm:section-flags .dynamic true true false)\n(llvm:section-flags .fini_array true true false)\n(llvm:section-flags .init_array true true false)\n(llvm:section-flags .eh_frame true false false)\n(llvm:section-flags .eh_frame_hdr true false false)\n(llvm:section-flags .rodata true false false)\n(llvm:section-flags .fini true false true)\n(llvm:section-flags .text true false true)\n(llvm:section-flags .plt true false true)\n(llvm:section-flags .init true false true)\n(llvm:section-flags .rela.plt true false false)\n(llvm:section-flags .rela.dyn true false false)\n(llvm:section-flags .gnu.version_r true false false)\n(llvm:section-flags .gnu.version true false false)\n(llvm:section-flags .dynstr true false false)\n(llvm:section-flags .dynsym true false false)\n(llvm:section-flags .gnu.hash true false false)\n(llvm:section-flags .note.ABI-tag true false false)\n(llvm:section-flags .note.gnu.build-id true false false)\n(llvm:section-flags .interp true false false)\n(llvm:symbol-entry abort 0 0 0 0)\n(llvm:symbol-entry __cxa_finalize 0 0 0 0)\n(llvm:symbol-entry __libc_start_main 0 0 0 0)\n(llvm:symbol-entry _init 1408 0 1408 1408)\n(llvm:symbol-entry main 1812 28 1812 1812)\n(llvm:symbol-entry _start 1536 52 1536 1536)\n(llvm:symbol-entry abort@GLIBC_2.17 0 0 0 0)\n(llvm:symbol-entry _fini 1840 0 1840 1840)\n(llvm:symbol-entry __cxa_finalize@GLIBC_2.17 0 0 0 0)\n(llvm:symbol-entry __libc_start_main@GLIBC_2.34 0 0 0 0)\n(llvm:symbol-entry frame_dummy 1808 0 1808 1808)\n(llvm:symbol-entry __do_global_dtors_aux 1728 0 1728 1728)\n(llvm:symbol-entry register_tm_clones 1664 0 1664 1664)\n(llvm:symbol-entry deregister_tm_clones 1616 0 1616 1616)\n(llvm:symbol-entry call_weak_fn 1588 20 1588 1588)\n(mapped 0 2108 0)\n(mapped 69064 616 3528)\n(named-region 0 2108 02)\n(named-region 69064 632 03)\n(named-region 568 27 .interp)\n(named-region 596 36 .note.gnu.build-id)\n(named-region 632 32 .note.ABI-tag)\n(named-region 664 28 .gnu.hash)\n(named-region 696 216 .dynsym)\n(named-region 912 141 .dynstr)\n(named-region 1054 18 .gnu.version)\n(named-region 1072 48 .gnu.version_r)\n(named-region 1120 192 .rela.dyn)\n(named-region 1312 96 .rela.plt)\n(named-region 1408 24 .init)\n(named-region 1440 96 .plt)\n(named-region 1536 304 .text)\n(named-region 1840 20 .fini)\n(named-region 1860 4 .rodata)\n(named-region 1864 60 .eh_frame_hdr)\n(named-region 1928 180 .eh_frame)\n(named-region 69064 8 .init_array)\n(named-region 69072 8 .fini_array)\n(named-region 69080 480 .dynamic)\n(named-region 69560 48 .got)\n(named-region 69608 56 .got.plt)\n(named-region 69664 16 .data)\n(named-region 69680 16 .bss)\n(named-region 0 71 .comment)\n(named-region 0 2184 .symtab)\n(named-region 0 575 .strtab)\n(named-region 0 259 .shstrtab)\n(named-symbol 1588 call_weak_fn)\n(named-symbol 1616 deregister_tm_clones)\n(named-symbol 1664 register_tm_clones)\n(named-symbol 1728 __do_global_dtors_aux)\n(named-symbol 1808 frame_dummy)\n(named-symbol 0 __libc_start_main@GLIBC_2.34)\n(named-symbol 0 __cxa_finalize@GLIBC_2.17)\n(named-symbol 1840 _fini)\n(named-symbol 0 abort@GLIBC_2.17)\n(named-symbol 1536 _start)\n(named-symbol 1812 main)\n(named-symbol 1408 _init)\n(named-symbol 0 __libc_start_main)\n(named-symbol 0 __cxa_finalize)\n(named-symbol 0 abort)\n(require libc.so.6)\n(section 568 27)\n(section 596 36)\n(section 632 32)\n(section 664 28)\n(section 696 216)\n(section 912 141)\n(section 1054 18)\n(section 1072 48)\n(section 1120 192)\n(section 1312 96)\n(section 1408 24)\n(section 1440 96)\n(section 1536 304)\n(section 1840 20)\n(section 1860 4)\n(section 1864 60)\n(section 1928 180)\n(section 69064 8)\n(section 69072 8)\n(section 69080 480)\n(section 69560 48)\n(section 69608 56)\n(section 69664 16)\n(section 69680 16)\n(section 0 71)\n(section 0 2184)\n(section 0 575)\n(section 0 259)\n(segment 0 2108 true false true)\n(segment 69064 632 true true false)\n(subarch v8)\n(symbol-chunk 1588 20 1588)\n(symbol-chunk 1536 52 1536)\n(symbol-chunk 1812 28 1812)\n(symbol-value 1588 1588)\n(symbol-value 1616 1616)\n(symbol-value 1664 1664)\n(symbol-value 1728 1728)\n(symbol-value 1808 1808)\n(symbol-value 1840 1840)\n(symbol-value 1536 1536)\n(symbol-value 1812 1812)\n(symbol-value 1408 1408)\n(symbol-value 0 0)\n(system \"\")\n(vendor \"\")\n"), -Attr("abi-name","\"aarch64-linux-gnu-elf\"")]), -Sections([Section(".shstrtab", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x00\x06\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x48\x1c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x38\x00\x09\x00\x40\x00\x1d\x00\x1c\x00\x06\x00\x00\x00\x04\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x04\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x3c\x08\x00\x00\x00\x00\x00\x00\x3c\x08\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x01\x00\x00\x00\x06\x00\x00\x00\xc8\x0d\x00\x00\x00\x00\x00\x00\xc8\x0d\x01\x00\x00\x00\x00\x00\xc8\x0d\x01"), -Section(".strtab", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x00\x06\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x48\x1c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x38\x00\x09\x00\x40\x00\x1d\x00\x1c\x00\x06\x00\x00\x00\x04\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x04\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x3c\x08\x00\x00\x00\x00\x00\x00\x3c\x08\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x01\x00\x00\x00\x06\x00\x00\x00\xc8\x0d\x00\x00\x00\x00\x00\x00\xc8\x0d\x01\x00\x00\x00\x00\x00\xc8\x0d\x01\x00\x00\x00\x00\x00\x68\x02\x00\x00\x00\x00\x00\x00\x78\x02\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x02\x00\x00\x00\x06\x00\x00\x00\xd8\x0d\x00\x00\x00\x00\x00\x00\xd8\x0d\x01\x00\x00\x00\x00\x00\xd8\x0d\x01\x00\x00\x00\x00\x00\xe0\x01\x00\x00\x00\x00\x00\x00\xe0\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x04\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x50\xe5\x74\x64\x04\x00\x00\x00\x48\x07\x00\x00\x00\x00\x00\x00\x48\x07\x00\x00\x00\x00\x00\x00\x48\x07\x00\x00\x00\x00\x00\x00\x3c\x00\x00\x00\x00\x00\x00\x00\x3c\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x51\xe5\x74\x64\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x52\xe5\x74\x64\x04\x00\x00\x00\xc8\x0d\x00\x00\x00\x00\x00\x00\xc8\x0d\x01\x00\x00\x00\x00\x00\xc8\x0d\x01\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x2f\x6c\x69\x62\x2f\x6c\x64"), -Section(".comment", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x00\x06\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x48\x1c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x38\x00\x09\x00\x40\x00\x1d\x00\x1c\x00\x06\x00\x00\x00\x04\x00\x00"), -Section(".interp", 0x238, "\x2f\x6c\x69\x62\x2f\x6c\x64\x2d\x6c\x69\x6e\x75\x78\x2d\x61\x61\x72\x63\x68\x36\x34\x2e\x73\x6f\x2e\x31\x00"), -Section(".note.gnu.build-id", 0x254, "\x04\x00\x00\x00\x14\x00\x00\x00\x03\x00\x00\x00\x47\x4e\x55\x00\x7a\x75\x5f\x0b\x70\x16\xa4\x38\x4a\x5b\x32\x01\xdb\x59\xa0\x3f\x6c\x3c\xd1\xaa"), -Section(".note.ABI-tag", 0x278, "\x04\x00\x00\x00\x10\x00\x00\x00\x01\x00\x00\x00\x47\x4e\x55\x00\x00\x00\x00\x00\x03\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00"), -Section(".gnu.hash", 0x298, "\x01\x00\x00\x00\x01\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".dynsym", 0x2B8, "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x0b\x00\x80\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x17\x00\x20\x10\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x48\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x22\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x22\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x73\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".dynstr", 0x390, "\x00\x5f\x5f\x63\x78\x61\x5f\x66\x69\x6e\x61\x6c\x69\x7a\x65\x00\x5f\x5f\x6c\x69\x62\x63\x5f\x73\x74\x61\x72\x74\x5f\x6d\x61\x69\x6e\x00\x61\x62\x6f\x72\x74\x00\x6c\x69\x62\x63\x2e\x73\x6f\x2e\x36\x00\x47\x4c\x49\x42\x43\x5f\x32\x2e\x31\x37\x00\x47\x4c\x49\x42\x43\x5f\x32\x2e\x33\x34\x00\x5f\x49\x54\x4d\x5f\x64\x65\x72\x65\x67\x69\x73\x74\x65\x72\x54\x4d\x43\x6c\x6f\x6e\x65\x54\x61\x62\x6c\x65\x00\x5f\x5f\x67\x6d\x6f\x6e\x5f\x73\x74\x61\x72\x74\x5f\x5f\x00\x5f\x49\x54\x4d\x5f\x72\x65\x67\x69\x73\x74\x65\x72\x54\x4d\x43\x6c\x6f\x6e\x65\x54\x61\x62\x6c\x65\x00"), -Section(".gnu.version", 0x41E, "\x00\x00\x00\x00\x00\x00\x02\x00\x01\x00\x03\x00\x01\x00\x03\x00\x01\x00"), -Section(".gnu.version_r", 0x430, "\x01\x00\x02\x00\x28\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x97\x91\x96\x06\x00\x00\x03\x00\x32\x00\x00\x00\x10\x00\x00\x00\xb4\x91\x96\x06\x00\x00\x02\x00\x3d\x00\x00\x00\x00\x00\x00\x00"), -Section(".rela.dyn", 0x460, "\xc8\x0d\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x10\x07\x00\x00\x00\x00\x00\x00\xd0\x0d\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\xc0\x06\x00\x00\x00\x00\x00\x00\xd8\x0f\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x14\x07\x00\x00\x00\x00\x00\x00\x28\x10\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x28\x10\x01\x00\x00\x00\x00\x00\xc0\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xc8\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xd0\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe0\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".rela.plt", 0x520, "\x00\x10\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x08\x10\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x10\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x18\x10\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".init", 0x580, "\x1f\x20\x03\xd5\xfd\x7b\xbf\xa9\xfd\x03\x00\x91\x2a\x00\x00\x94\xfd\x7b\xc1\xa8\xc0\x03\x5f\xd6"), -Section(".plt", 0x5A0, "\xf0\x7b\xbf\xa9\x90\x00\x00\x90\x11\xfe\x47\xf9\x10\xe2\x3f\x91\x20\x02\x1f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x90\x00\x00\xb0\x11\x02\x40\xf9\x10\x02\x00\x91\x20\x02\x1f\xd6\x90\x00\x00\xb0\x11\x06\x40\xf9\x10\x22\x00\x91\x20\x02\x1f\xd6\x90\x00\x00\xb0\x11\x0a\x40\xf9\x10\x42\x00\x91\x20\x02\x1f\xd6\x90\x00\x00\xb0\x11\x0e\x40\xf9\x10\x62\x00\x91\x20\x02\x1f\xd6"), -Section(".text", 0x600, "\x1f\x20\x03\xd5\x1d\x00\x80\xd2\x1e\x00\x80\xd2\xe5\x03\x00\xaa\xe1\x03\x40\xf9\xe2\x23\x00\x91\xe6\x03\x00\x91\x80\x00\x00\x90\x00\xec\x47\xf9\x03\x00\x80\xd2\x04\x00\x80\xd2\xe5\xff\xff\x97\xf0\xff\xff\x97\x80\x00\x00\x90\x00\xe8\x47\xf9\x40\x00\x00\xb4\xe8\xff\xff\x17\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x80\x00\x00\xb0\x00\xc0\x00\x91\x81\x00\x00\xb0\x21\xc0\x00\x91\x3f\x00\x00\xeb\xc0\x00\x00\x54\x81\x00\x00\x90\x21\xe0\x47\xf9\x61\x00\x00\xb4\xf0\x03\x01\xaa\x00\x02\x1f\xd6\xc0\x03\x5f\xd6\x80\x00\x00\xb0\x00\xc0\x00\x91\x81\x00\x00\xb0\x21\xc0\x00\x91\x21\x00\x00\xcb\x22\xfc\x7f\xd3\x41\x0c\x81\x8b\x21\xfc\x41\x93\xc1\x00\x00\xb4\x82\x00\x00\x90\x42\xf0\x47\xf9\x62\x00\x00\xb4\xf0\x03\x02\xaa\x00\x02\x1f\xd6\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\xfd\x7b\xbe\xa9\xfd\x03\x00\x91\xf3\x0b\x00\xf9\x93\x00\x00\xb0\x60\xc2\x40\x39\x40\x01\x00\x35\x80\x00\x00\x90\x00\xe4\x47\xf9\x80\x00\x00\xb4\x80\x00\x00\xb0\x00\x14\x40\xf9\xb9\xff\xff\x97\xd8\xff\xff\x97\x20\x00\x80\x52\x60\xc2\x00\x39\xf3\x0b\x40\xf9\xfd\x7b\xc2\xa8\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\xdc\xff\xff\x17\x89\x00\x00\xb0\x28\x00\x80\x52\x28\x35\x00\xb9\x88\x00\x00\xb0\xe0\x03\x1f\x2a\x1f\x39\x00\xb9\xc0\x03\x5f\xd6"), -Section(".fini", 0x730, "\x1f\x20\x03\xd5\xfd\x7b\xbf\xa9\xfd\x03\x00\x91\xfd\x7b\xc1\xa8\xc0\x03\x5f\xd6"), -Section(".rodata", 0x744, "\x01\x00\x02\x00"), -Section(".eh_frame_hdr", 0x748, "\x01\x1b\x03\x3b\x3c\x00\x00\x00\x06\x00\x00\x00\xb8\xfe\xff\xff\x54\x00\x00\x00\x08\xff\xff\xff\x68\x00\x00\x00\x38\xff\xff\xff\x7c\x00\x00\x00\x78\xff\xff\xff\x90\x00\x00\x00\xc8\xff\xff\xff\xb4\x00\x00\x00\xcc\xff\xff\xff\xdc\x00\x00\x00"), -Section(".eh_frame", 0x788, "\x10\x00\x00\x00\x00\x00\x00\x00\x01\x7a\x52\x00\x04\x78\x1e\x01\x1b\x0c\x1f\x00\x10\x00\x00\x00\x18\x00\x00\x00\x5c\xfe\xff\xff\x34\x00\x00\x00\x00\x41\x07\x1e\x10\x00\x00\x00\x2c\x00\x00\x00\x98\xfe\xff\xff\x30\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x40\x00\x00\x00\xb4\xfe\xff\xff\x3c\x00\x00\x00\x00\x00\x00\x00\x20\x00\x00\x00\x54\x00\x00\x00\xe0\xfe\xff\xff\x48\x00\x00\x00\x00\x41\x0e\x20\x9d\x04\x9e\x03\x42\x93\x02\x4e\xde\xdd\xd3\x0e\x00\x00\x00\x00\x10\x00\x00\x00\x78\x00\x00\x00\x0c\xff\xff\xff\x04\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x01\x7a\x52\x00\x01\x7c\x1e\x01\x1b\x0c\x1f\x00\x10\x00\x00\x00\x18\x00\x00\x00\xe8\xfe\xff\xff\x1c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".fini_array", 0x10DD0, "\xc0\x06\x00\x00\x00\x00\x00\x00"), -Section(".dynamic", 0x10DD8, "\x01\x00\x00\x00\x00\x00\x00\x00\x28\x00\x00\x00\x00\x00\x00\x00\x0c\x00\x00\x00\x00\x00\x00\x00\x80\x05\x00\x00\x00\x00\x00\x00\x0d\x00\x00\x00\x00\x00\x00\x00\x30\x07\x00\x00\x00\x00\x00\x00\x19\x00\x00\x00\x00\x00\x00\x00\xc8\x0d\x01\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x1a\x00\x00\x00\x00\x00\x00\x00\xd0\x0d\x01\x00\x00\x00\x00\x00\x1c\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\xf5\xfe\xff\x6f\x00\x00\x00\x00\x98\x02\x00\x00\x00\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x90\x03\x00\x00\x00\x00\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\xb8\x02\x00\x00\x00\x00\x00\x00\x0a\x00\x00\x00\x00\x00\x00\x00\x8d\x00\x00\x00\x00\x00\x00\x00\x0b\x00\x00\x00\x00\x00\x00\x00\x18\x00\x00\x00\x00\x00\x00\x00\x15\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\xe8\x0f\x01\x00\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x60\x00\x00\x00\x00\x00\x00\x00\x14\x00\x00\x00\x00\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x17\x00\x00\x00\x00\x00\x00\x00\x20\x05\x00\x00\x00\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x60\x04\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\xc0\x00\x00\x00\x00\x00\x00\x00\x09\x00\x00\x00\x00\x00\x00\x00\x18\x00\x00\x00\x00\x00\x00\x00\xfb\xff\xff\x6f\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\xfe\xff\xff\x6f\x00\x00\x00\x00\x30\x04\x00\x00\x00\x00\x00\x00\xff\xff\xff\x6f\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\xf0\xff\xff\x6f\x00\x00\x00\x00\x1e\x04\x00\x00\x00\x00\x00\x00\xf9\xff\xff\x6f\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".init_array", 0x10DC8, "\x10\x07\x00\x00\x00\x00\x00\x00"), -Section(".got", 0x10FB8, "\xd8\x0d\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x14\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".got.plt", 0x10FE8, "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xa0\x05\x00\x00\x00\x00\x00\x00\xa0\x05\x00\x00\x00\x00\x00\x00\xa0\x05\x00\x00\x00\x00\x00\x00\xa0\x05\x00\x00\x00\x00\x00\x00"), -Section(".data", 0x11020, "\x00\x00\x00\x00\x00\x00\x00\x00\x28\x10\x01\x00\x00\x00\x00\x00")]), -Memmap([Annotation(Region(0x0,0x83B), Attr("segment","02 0 2108")), -Annotation(Region(0x600,0x633), Attr("symbol","\"_start\"")), -Annotation(Region(0x0,0x102), Attr("section","\".shstrtab\"")), -Annotation(Region(0x0,0x23E), Attr("section","\".strtab\"")), -Annotation(Region(0x0,0x46), Attr("section","\".comment\"")), -Annotation(Region(0x238,0x252), Attr("section","\".interp\"")), -Annotation(Region(0x254,0x277), Attr("section","\".note.gnu.build-id\"")), -Annotation(Region(0x278,0x297), Attr("section","\".note.ABI-tag\"")), -Annotation(Region(0x298,0x2B3), Attr("section","\".gnu.hash\"")), -Annotation(Region(0x2B8,0x38F), Attr("section","\".dynsym\"")), -Annotation(Region(0x390,0x41C), Attr("section","\".dynstr\"")), -Annotation(Region(0x41E,0x42F), Attr("section","\".gnu.version\"")), -Annotation(Region(0x430,0x45F), Attr("section","\".gnu.version_r\"")), -Annotation(Region(0x460,0x51F), Attr("section","\".rela.dyn\"")), -Annotation(Region(0x520,0x57F), Attr("section","\".rela.plt\"")), -Annotation(Region(0x580,0x597), Attr("section","\".init\"")), -Annotation(Region(0x5A0,0x5FF), Attr("section","\".plt\"")), -Annotation(Region(0x580,0x597), Attr("code-region","()")), -Annotation(Region(0x5A0,0x5FF), Attr("code-region","()")), -Annotation(Region(0x600,0x633), Attr("symbol-info","_start 0x600 52")), -Annotation(Region(0x634,0x647), Attr("symbol","\"call_weak_fn\"")), -Annotation(Region(0x634,0x647), Attr("symbol-info","call_weak_fn 0x634 20")), -Annotation(Region(0x600,0x72F), Attr("section","\".text\"")), -Annotation(Region(0x600,0x72F), Attr("code-region","()")), -Annotation(Region(0x714,0x72F), Attr("symbol","\"main\"")), -Annotation(Region(0x714,0x72F), Attr("symbol-info","main 0x714 28")), -Annotation(Region(0x730,0x743), Attr("section","\".fini\"")), -Annotation(Region(0x730,0x743), Attr("code-region","()")), -Annotation(Region(0x744,0x747), Attr("section","\".rodata\"")), -Annotation(Region(0x748,0x783), Attr("section","\".eh_frame_hdr\"")), -Annotation(Region(0x788,0x83B), Attr("section","\".eh_frame\"")), -Annotation(Region(0x10DC8,0x1102F), Attr("segment","03 0x10DC8 632")), -Annotation(Region(0x10DD0,0x10DD7), Attr("section","\".fini_array\"")), -Annotation(Region(0x10DD8,0x10FB7), Attr("section","\".dynamic\"")), -Annotation(Region(0x10DC8,0x10DCF), Attr("section","\".init_array\"")), -Annotation(Region(0x10FB8,0x10FE7), Attr("section","\".got\"")), -Annotation(Region(0x10FE8,0x1101F), Attr("section","\".got.plt\"")), -Annotation(Region(0x11020,0x1102F), Attr("section","\".data\""))]), -Program(Tid(1_441, "%000005a1"), Attrs([]), - Subs([Sub(Tid(1_391, "@__cxa_finalize"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x5D0"), -Attr("stub","()")]), "__cxa_finalize", Args([Arg(Tid(1_442, "%000005a2"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("__cxa_finalize_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(805, "@__cxa_finalize"), - Attrs([Attr("address","0x5D0")]), Phis([]), -Defs([Def(Tid(1_053, "%0000041d"), Attrs([Attr("address","0x5D0"), -Attr("insn","adrp x16, #69632")]), Var("R16",Imm(64)), Int(69632,64)), -Def(Tid(1_060, "%00000424"), Attrs([Attr("address","0x5D4"), -Attr("insn","ldr x17, [x16, #0x8]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(1_066, "%0000042a"), Attrs([Attr("address","0x5D8"), -Attr("insn","add x16, x16, #0x8")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(8,64)))]), Jmps([Call(Tid(1_071, "%0000042f"), - Attrs([Attr("address","0x5DC"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), -Sub(Tid(1_392, "@__do_global_dtors_aux"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x6C0")]), - "__do_global_dtors_aux", Args([Arg(Tid(1_443, "%000005a3"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("__do_global_dtors_aux_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(618, "@__do_global_dtors_aux"), - Attrs([Attr("address","0x6C0")]), Phis([]), Defs([Def(Tid(622, "%0000026e"), - Attrs([Attr("address","0x6C0"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("#3",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(18446744073709551584,64))), -Def(Tid(628, "%00000274"), Attrs([Attr("address","0x6C0"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("#3",Imm(64)),Var("R29",Imm(64)),LittleEndian(),64)), -Def(Tid(634, "%0000027a"), Attrs([Attr("address","0x6C0"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("#3",Imm(64)),Int(8,64)),Var("R30",Imm(64)),LittleEndian(),64)), -Def(Tid(638, "%0000027e"), Attrs([Attr("address","0x6C0"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("R31",Imm(64)), -Var("#3",Imm(64))), Def(Tid(644, "%00000284"), - Attrs([Attr("address","0x6C4"), Attr("insn","mov x29, sp")]), - Var("R29",Imm(64)), Var("R31",Imm(64))), Def(Tid(652, "%0000028c"), - Attrs([Attr("address","0x6C8"), Attr("insn","str x19, [sp, #0x10]")]), - Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(16,64)),Var("R19",Imm(64)),LittleEndian(),64)), -Def(Tid(657, "%00000291"), Attrs([Attr("address","0x6CC"), -Attr("insn","adrp x19, #69632")]), Var("R19",Imm(64)), Int(69632,64)), -Def(Tid(664, "%00000298"), Attrs([Attr("address","0x6D0"), -Attr("insn","ldrb w0, [x19, #0x30]")]), Var("R0",Imm(64)), -UNSIGNED(64,Load(Var("mem",Mem(64,8)),PLUS(Var("R19",Imm(64)),Int(48,64)),LittleEndian(),8)))]), -Jmps([Goto(Tid(671, "%0000029f"), Attrs([Attr("address","0x6D4"), -Attr("insn","cbnz w0, #0x28")]), - NEQ(Extract(31,0,Var("R0",Imm(64))),Int(0,32)), -Direct(Tid(669, "%0000029d"))), Goto(Tid(1_431, "%00000597"), Attrs([]), - Int(1,1), Direct(Tid(750, "%000002ee")))])), Blk(Tid(750, "%000002ee"), - Attrs([Attr("address","0x6D8")]), Phis([]), Defs([Def(Tid(753, "%000002f1"), - Attrs([Attr("address","0x6D8"), Attr("insn","adrp x0, #65536")]), - Var("R0",Imm(64)), Int(65536,64)), Def(Tid(760, "%000002f8"), - Attrs([Attr("address","0x6DC"), Attr("insn","ldr x0, [x0, #0xfc8]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(4040,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(766, "%000002fe"), Attrs([Attr("address","0x6E0"), -Attr("insn","cbz x0, #0x10")]), EQ(Var("R0",Imm(64)),Int(0,64)), -Direct(Tid(764, "%000002fc"))), Goto(Tid(1_432, "%00000598"), Attrs([]), - Int(1,1), Direct(Tid(789, "%00000315")))])), Blk(Tid(789, "%00000315"), - Attrs([Attr("address","0x6E4")]), Phis([]), Defs([Def(Tid(792, "%00000318"), - Attrs([Attr("address","0x6E4"), Attr("insn","adrp x0, #69632")]), - Var("R0",Imm(64)), Int(69632,64)), Def(Tid(799, "%0000031f"), - Attrs([Attr("address","0x6E8"), Attr("insn","ldr x0, [x0, #0x28]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(40,64)),LittleEndian(),64)), -Def(Tid(804, "%00000324"), Attrs([Attr("address","0x6EC"), -Attr("insn","bl #-0x11c")]), Var("R30",Imm(64)), Int(1776,64))]), -Jmps([Call(Tid(807, "%00000327"), Attrs([Attr("address","0x6EC"), -Attr("insn","bl #-0x11c")]), Int(1,1), -(Direct(Tid(1_391, "@__cxa_finalize")),Direct(Tid(764, "%000002fc"))))])), -Blk(Tid(764, "%000002fc"), Attrs([Attr("address","0x6F0")]), Phis([]), -Defs([Def(Tid(772, "%00000304"), Attrs([Attr("address","0x6F0"), -Attr("insn","bl #-0xa0")]), Var("R30",Imm(64)), Int(1780,64))]), -Jmps([Call(Tid(774, "%00000306"), Attrs([Attr("address","0x6F0"), -Attr("insn","bl #-0xa0")]), Int(1,1), -(Direct(Tid(1_405, "@deregister_tm_clones")),Direct(Tid(776, "%00000308"))))])), -Blk(Tid(776, "%00000308"), Attrs([Attr("address","0x6F4")]), Phis([]), -Defs([Def(Tid(779, "%0000030b"), Attrs([Attr("address","0x6F4"), -Attr("insn","mov w0, #0x1")]), Var("R0",Imm(64)), Int(1,64)), -Def(Tid(787, "%00000313"), Attrs([Attr("address","0x6F8"), -Attr("insn","strb w0, [x19, #0x30]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R19",Imm(64)),Int(48,64)),Extract(7,0,Var("R0",Imm(64))),LittleEndian(),8))]), -Jmps([Goto(Tid(1_433, "%00000599"), Attrs([]), Int(1,1), -Direct(Tid(669, "%0000029d")))])), Blk(Tid(669, "%0000029d"), - Attrs([Attr("address","0x6FC")]), Phis([]), Defs([Def(Tid(679, "%000002a7"), - Attrs([Attr("address","0x6FC"), Attr("insn","ldr x19, [sp, #0x10]")]), - Var("R19",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(16,64)),LittleEndian(),64)), -Def(Tid(686, "%000002ae"), Attrs([Attr("address","0x700"), -Attr("insn","ldp x29, x30, [sp], #0x20")]), Var("R29",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(691, "%000002b3"), Attrs([Attr("address","0x700"), -Attr("insn","ldp x29, x30, [sp], #0x20")]), Var("R30",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(695, "%000002b7"), Attrs([Attr("address","0x700"), -Attr("insn","ldp x29, x30, [sp], #0x20")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(32,64)))]), Jmps([Call(Tid(700, "%000002bc"), - Attrs([Attr("address","0x704"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), Sub(Tid(1_396, "@__libc_start_main"), - Attrs([Attr("c.proto","signed (*)(signed (*)(signed , char** , char** );* main, signed , char** , \nvoid* auxv)"), -Attr("address","0x5C0"), Attr("stub","()")]), "__libc_start_main", - Args([Arg(Tid(1_444, "%000005a4"), - Attrs([Attr("c.layout","**[ : 64]"), -Attr("c.data","Top:u64 ptr ptr"), -Attr("c.type","signed (*)(signed , char** , char** );*")]), - Var("__libc_start_main_main",Imm(64)), Var("R0",Imm(64)), In()), -Arg(Tid(1_445, "%000005a5"), Attrs([Attr("c.layout","[signed : 32]"), -Attr("c.data","Top:u32"), Attr("c.type","signed")]), - Var("__libc_start_main_arg2",Imm(32)), LOW(32,Var("R1",Imm(64))), In()), -Arg(Tid(1_446, "%000005a6"), Attrs([Attr("c.layout","**[char : 8]"), -Attr("c.data","Top:u8 ptr ptr"), Attr("c.type","char**")]), - Var("__libc_start_main_arg3",Imm(64)), Var("R2",Imm(64)), Both()), -Arg(Tid(1_447, "%000005a7"), Attrs([Attr("c.layout","*[ : 8]"), -Attr("c.data","{} ptr"), Attr("c.type","void*")]), - Var("__libc_start_main_auxv",Imm(64)), Var("R3",Imm(64)), Both()), -Arg(Tid(1_448, "%000005a8"), Attrs([Attr("c.layout","[signed : 32]"), -Attr("c.data","Top:u32"), Attr("c.type","signed")]), - Var("__libc_start_main_result",Imm(32)), LOW(32,Var("R0",Imm(64))), -Out())]), Blks([Blk(Tid(451, "@__libc_start_main"), - Attrs([Attr("address","0x5C0")]), Phis([]), -Defs([Def(Tid(1_031, "%00000407"), Attrs([Attr("address","0x5C0"), -Attr("insn","adrp x16, #69632")]), Var("R16",Imm(64)), Int(69632,64)), -Def(Tid(1_038, "%0000040e"), Attrs([Attr("address","0x5C4"), -Attr("insn","ldr x17, [x16]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R16",Imm(64)),LittleEndian(),64)), -Def(Tid(1_044, "%00000414"), Attrs([Attr("address","0x5C8"), -Attr("insn","add x16, x16, #0x0")]), Var("R16",Imm(64)), -Var("R16",Imm(64)))]), Jmps([Call(Tid(1_049, "%00000419"), - Attrs([Attr("address","0x5CC"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), Sub(Tid(1_397, "@_fini"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x730")]), - "_fini", Args([Arg(Tid(1_449, "%000005a9"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("_fini_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(31, "@_fini"), - Attrs([Attr("address","0x730")]), Phis([]), Defs([Def(Tid(37, "%00000025"), - Attrs([Attr("address","0x734"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("#0",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(18446744073709551600,64))), -Def(Tid(43, "%0000002b"), Attrs([Attr("address","0x734"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("#0",Imm(64)),Var("R29",Imm(64)),LittleEndian(),64)), -Def(Tid(49, "%00000031"), Attrs([Attr("address","0x734"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("#0",Imm(64)),Int(8,64)),Var("R30",Imm(64)),LittleEndian(),64)), -Def(Tid(53, "%00000035"), Attrs([Attr("address","0x734"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("R31",Imm(64)), -Var("#0",Imm(64))), Def(Tid(59, "%0000003b"), Attrs([Attr("address","0x738"), -Attr("insn","mov x29, sp")]), Var("R29",Imm(64)), Var("R31",Imm(64))), -Def(Tid(66, "%00000042"), Attrs([Attr("address","0x73C"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R29",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(71, "%00000047"), Attrs([Attr("address","0x73C"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R30",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(75, "%0000004b"), Attrs([Attr("address","0x73C"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(16,64)))]), Jmps([Call(Tid(80, "%00000050"), - Attrs([Attr("address","0x740"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), Sub(Tid(1_398, "@_init"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x580")]), - "_init", Args([Arg(Tid(1_450, "%000005aa"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("_init_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(1_226, "@_init"), - Attrs([Attr("address","0x580")]), Phis([]), -Defs([Def(Tid(1_232, "%000004d0"), Attrs([Attr("address","0x584"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("#5",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(18446744073709551600,64))), -Def(Tid(1_238, "%000004d6"), Attrs([Attr("address","0x584"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("#5",Imm(64)),Var("R29",Imm(64)),LittleEndian(),64)), -Def(Tid(1_244, "%000004dc"), Attrs([Attr("address","0x584"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("#5",Imm(64)),Int(8,64)),Var("R30",Imm(64)),LittleEndian(),64)), -Def(Tid(1_248, "%000004e0"), Attrs([Attr("address","0x584"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("R31",Imm(64)), -Var("#5",Imm(64))), Def(Tid(1_254, "%000004e6"), - Attrs([Attr("address","0x588"), Attr("insn","mov x29, sp")]), - Var("R29",Imm(64)), Var("R31",Imm(64))), Def(Tid(1_259, "%000004eb"), - Attrs([Attr("address","0x58C"), Attr("insn","bl #0xa8")]), - Var("R30",Imm(64)), Int(1424,64))]), Jmps([Call(Tid(1_261, "%000004ed"), - Attrs([Attr("address","0x58C"), Attr("insn","bl #0xa8")]), Int(1,1), -(Direct(Tid(1_403, "@call_weak_fn")),Direct(Tid(1_263, "%000004ef"))))])), -Blk(Tid(1_263, "%000004ef"), Attrs([Attr("address","0x590")]), Phis([]), -Defs([Def(Tid(1_268, "%000004f4"), Attrs([Attr("address","0x590"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R29",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(1_273, "%000004f9"), Attrs([Attr("address","0x590"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R30",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(1_277, "%000004fd"), Attrs([Attr("address","0x590"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(16,64)))]), Jmps([Call(Tid(1_282, "%00000502"), - Attrs([Attr("address","0x594"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), Sub(Tid(1_399, "@_start"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x600"), -Attr("stub","()"), Attr("entry-point","()")]), "_start", - Args([Arg(Tid(1_451, "%000005ab"), Attrs([Attr("c.layout","[signed : 32]"), -Attr("c.data","Top:u32"), Attr("c.type","signed")]), - Var("_start_result",Imm(32)), LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(388, "@_start"), Attrs([Attr("address","0x600")]), Phis([]), -Defs([Def(Tid(393, "%00000189"), Attrs([Attr("address","0x604"), -Attr("insn","mov x29, #0x0")]), Var("R29",Imm(64)), Int(0,64)), -Def(Tid(398, "%0000018e"), Attrs([Attr("address","0x608"), -Attr("insn","mov x30, #0x0")]), Var("R30",Imm(64)), Int(0,64)), -Def(Tid(404, "%00000194"), Attrs([Attr("address","0x60C"), -Attr("insn","mov x5, x0")]), Var("R5",Imm(64)), Var("R0",Imm(64))), -Def(Tid(411, "%0000019b"), Attrs([Attr("address","0x610"), -Attr("insn","ldr x1, [sp]")]), Var("R1",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(417, "%000001a1"), Attrs([Attr("address","0x614"), -Attr("insn","add x2, sp, #0x8")]), Var("R2",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(8,64))), Def(Tid(423, "%000001a7"), - Attrs([Attr("address","0x618"), Attr("insn","mov x6, sp")]), - Var("R6",Imm(64)), Var("R31",Imm(64))), Def(Tid(428, "%000001ac"), - Attrs([Attr("address","0x61C"), Attr("insn","adrp x0, #65536")]), - Var("R0",Imm(64)), Int(65536,64)), Def(Tid(435, "%000001b3"), - Attrs([Attr("address","0x620"), Attr("insn","ldr x0, [x0, #0xfd8]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(4056,64)),LittleEndian(),64)), -Def(Tid(440, "%000001b8"), Attrs([Attr("address","0x624"), -Attr("insn","mov x3, #0x0")]), Var("R3",Imm(64)), Int(0,64)), -Def(Tid(445, "%000001bd"), Attrs([Attr("address","0x628"), -Attr("insn","mov x4, #0x0")]), Var("R4",Imm(64)), Int(0,64)), -Def(Tid(450, "%000001c2"), Attrs([Attr("address","0x62C"), -Attr("insn","bl #-0x6c")]), Var("R30",Imm(64)), Int(1584,64))]), -Jmps([Call(Tid(453, "%000001c5"), Attrs([Attr("address","0x62C"), -Attr("insn","bl #-0x6c")]), Int(1,1), -(Direct(Tid(1_396, "@__libc_start_main")),Direct(Tid(455, "%000001c7"))))])), -Blk(Tid(455, "%000001c7"), Attrs([Attr("address","0x630")]), Phis([]), -Defs([Def(Tid(458, "%000001ca"), Attrs([Attr("address","0x630"), -Attr("insn","bl #-0x40")]), Var("R30",Imm(64)), Int(1588,64))]), -Jmps([Call(Tid(461, "%000001cd"), Attrs([Attr("address","0x630"), -Attr("insn","bl #-0x40")]), Int(1,1), -(Direct(Tid(1_402, "@abort")),Direct(Tid(1_434, "%0000059a"))))])), -Blk(Tid(1_434, "%0000059a"), Attrs([]), Phis([]), Defs([]), -Jmps([Call(Tid(1_435, "%0000059b"), Attrs([]), Int(1,1), -(Direct(Tid(1_403, "@call_weak_fn")),))]))])), Sub(Tid(1_402, "@abort"), - Attrs([Attr("noreturn","()"), Attr("c.proto","void (*)(void)"), -Attr("address","0x5F0"), Attr("stub","()")]), "abort", Args([]), -Blks([Blk(Tid(459, "@abort"), Attrs([Attr("address","0x5F0")]), Phis([]), -Defs([Def(Tid(1_097, "%00000449"), Attrs([Attr("address","0x5F0"), -Attr("insn","adrp x16, #69632")]), Var("R16",Imm(64)), Int(69632,64)), -Def(Tid(1_104, "%00000450"), Attrs([Attr("address","0x5F4"), -Attr("insn","ldr x17, [x16, #0x18]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(24,64)),LittleEndian(),64)), -Def(Tid(1_110, "%00000456"), Attrs([Attr("address","0x5F8"), -Attr("insn","add x16, x16, #0x18")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(24,64)))]), Jmps([Call(Tid(1_115, "%0000045b"), - Attrs([Attr("address","0x5FC"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), Sub(Tid(1_403, "@call_weak_fn"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x634")]), - "call_weak_fn", Args([Arg(Tid(1_452, "%000005ac"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("call_weak_fn_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(463, "@call_weak_fn"), - Attrs([Attr("address","0x634")]), Phis([]), Defs([Def(Tid(466, "%000001d2"), - Attrs([Attr("address","0x634"), Attr("insn","adrp x0, #65536")]), - Var("R0",Imm(64)), Int(65536,64)), Def(Tid(473, "%000001d9"), - Attrs([Attr("address","0x638"), Attr("insn","ldr x0, [x0, #0xfd0]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(4048,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(479, "%000001df"), Attrs([Attr("address","0x63C"), -Attr("insn","cbz x0, #0x8")]), EQ(Var("R0",Imm(64)),Int(0,64)), -Direct(Tid(477, "%000001dd"))), Goto(Tid(1_436, "%0000059c"), Attrs([]), - Int(1,1), Direct(Tid(869, "%00000365")))])), Blk(Tid(477, "%000001dd"), - Attrs([Attr("address","0x644")]), Phis([]), Defs([]), -Jmps([Call(Tid(485, "%000001e5"), Attrs([Attr("address","0x644"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))])), -Blk(Tid(869, "%00000365"), Attrs([Attr("address","0x640")]), Phis([]), -Defs([]), Jmps([Goto(Tid(872, "%00000368"), Attrs([Attr("address","0x640"), -Attr("insn","b #-0x60")]), Int(1,1), Direct(Tid(870, "@__gmon_start__")))])), -Blk(Tid(870, "@__gmon_start__"), Attrs([Attr("address","0x5E0")]), Phis([]), -Defs([Def(Tid(1_075, "%00000433"), Attrs([Attr("address","0x5E0"), -Attr("insn","adrp x16, #69632")]), Var("R16",Imm(64)), Int(69632,64)), -Def(Tid(1_082, "%0000043a"), Attrs([Attr("address","0x5E4"), -Attr("insn","ldr x17, [x16, #0x10]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(16,64)),LittleEndian(),64)), -Def(Tid(1_088, "%00000440"), Attrs([Attr("address","0x5E8"), -Attr("insn","add x16, x16, #0x10")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(16,64)))]), Jmps([Call(Tid(1_093, "%00000445"), - Attrs([Attr("address","0x5EC"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), -Sub(Tid(1_405, "@deregister_tm_clones"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x650")]), - "deregister_tm_clones", Args([Arg(Tid(1_453, "%000005ad"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("deregister_tm_clones_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(491, "@deregister_tm_clones"), - Attrs([Attr("address","0x650")]), Phis([]), Defs([Def(Tid(494, "%000001ee"), - Attrs([Attr("address","0x650"), Attr("insn","adrp x0, #69632")]), - Var("R0",Imm(64)), Int(69632,64)), Def(Tid(500, "%000001f4"), - Attrs([Attr("address","0x654"), Attr("insn","add x0, x0, #0x30")]), - Var("R0",Imm(64)), PLUS(Var("R0",Imm(64)),Int(48,64))), -Def(Tid(505, "%000001f9"), Attrs([Attr("address","0x658"), -Attr("insn","adrp x1, #69632")]), Var("R1",Imm(64)), Int(69632,64)), -Def(Tid(511, "%000001ff"), Attrs([Attr("address","0x65C"), -Attr("insn","add x1, x1, #0x30")]), Var("R1",Imm(64)), -PLUS(Var("R1",Imm(64)),Int(48,64))), Def(Tid(517, "%00000205"), - Attrs([Attr("address","0x660"), Attr("insn","cmp x1, x0")]), - Var("#1",Imm(64)), NOT(Var("R0",Imm(64)))), Def(Tid(522, "%0000020a"), - Attrs([Attr("address","0x660"), Attr("insn","cmp x1, x0")]), - Var("#2",Imm(64)), PLUS(Var("R1",Imm(64)),NOT(Var("R0",Imm(64))))), -Def(Tid(528, "%00000210"), Attrs([Attr("address","0x660"), -Attr("insn","cmp x1, x0")]), Var("VF",Imm(1)), -NEQ(SIGNED(65,PLUS(Var("#2",Imm(64)),Int(1,64))),PLUS(PLUS(SIGNED(65,Var("R1",Imm(64))),SIGNED(65,Var("#1",Imm(64)))),Int(1,65)))), -Def(Tid(534, "%00000216"), Attrs([Attr("address","0x660"), -Attr("insn","cmp x1, x0")]), Var("CF",Imm(1)), -NEQ(UNSIGNED(65,PLUS(Var("#2",Imm(64)),Int(1,64))),PLUS(PLUS(UNSIGNED(65,Var("R1",Imm(64))),UNSIGNED(65,Var("#1",Imm(64)))),Int(1,65)))), -Def(Tid(538, "%0000021a"), Attrs([Attr("address","0x660"), -Attr("insn","cmp x1, x0")]), Var("ZF",Imm(1)), -EQ(PLUS(Var("#2",Imm(64)),Int(1,64)),Int(0,64))), Def(Tid(542, "%0000021e"), - Attrs([Attr("address","0x660"), Attr("insn","cmp x1, x0")]), - Var("NF",Imm(1)), Extract(63,63,PLUS(Var("#2",Imm(64)),Int(1,64))))]), -Jmps([Goto(Tid(548, "%00000224"), Attrs([Attr("address","0x664"), -Attr("insn","b.eq #0x18")]), EQ(Var("ZF",Imm(1)),Int(1,1)), -Direct(Tid(546, "%00000222"))), Goto(Tid(1_437, "%0000059d"), Attrs([]), - Int(1,1), Direct(Tid(839, "%00000347")))])), Blk(Tid(839, "%00000347"), - Attrs([Attr("address","0x668")]), Phis([]), Defs([Def(Tid(842, "%0000034a"), - Attrs([Attr("address","0x668"), Attr("insn","adrp x1, #65536")]), - Var("R1",Imm(64)), Int(65536,64)), Def(Tid(849, "%00000351"), - Attrs([Attr("address","0x66C"), Attr("insn","ldr x1, [x1, #0xfc0]")]), - Var("R1",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R1",Imm(64)),Int(4032,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(854, "%00000356"), Attrs([Attr("address","0x670"), -Attr("insn","cbz x1, #0xc")]), EQ(Var("R1",Imm(64)),Int(0,64)), -Direct(Tid(546, "%00000222"))), Goto(Tid(1_438, "%0000059e"), Attrs([]), - Int(1,1), Direct(Tid(858, "%0000035a")))])), Blk(Tid(546, "%00000222"), - Attrs([Attr("address","0x67C")]), Phis([]), Defs([]), -Jmps([Call(Tid(554, "%0000022a"), Attrs([Attr("address","0x67C"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))])), -Blk(Tid(858, "%0000035a"), Attrs([Attr("address","0x674")]), Phis([]), -Defs([Def(Tid(862, "%0000035e"), Attrs([Attr("address","0x674"), -Attr("insn","mov x16, x1")]), Var("R16",Imm(64)), Var("R1",Imm(64)))]), -Jmps([Call(Tid(867, "%00000363"), Attrs([Attr("address","0x678"), -Attr("insn","br x16")]), Int(1,1), (Indirect(Var("R16",Imm(64))),))]))])), -Sub(Tid(1_408, "@frame_dummy"), Attrs([Attr("c.proto","signed (*)(void)"), -Attr("address","0x710")]), "frame_dummy", Args([Arg(Tid(1_454, "%000005ae"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("frame_dummy_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(706, "@frame_dummy"), - Attrs([Attr("address","0x710")]), Phis([]), Defs([]), -Jmps([Call(Tid(708, "%000002c4"), Attrs([Attr("address","0x710"), -Attr("insn","b #-0x90")]), Int(1,1), -(Direct(Tid(1_410, "@register_tm_clones")),))]))])), Sub(Tid(1_409, "@main"), - Attrs([Attr("c.proto","signed (*)(signed argc, const char** argv)"), -Attr("address","0x714")]), "main", Args([Arg(Tid(1_455, "%000005af"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("main_argc",Imm(32)), -LOW(32,Var("R0",Imm(64))), In()), Arg(Tid(1_456, "%000005b0"), - Attrs([Attr("c.layout","**[char : 8]"), Attr("c.data","Top:u8 ptr ptr"), -Attr("c.type"," const char**")]), Var("main_argv",Imm(64)), -Var("R1",Imm(64)), Both()), Arg(Tid(1_457, "%000005b1"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("main_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(710, "@main"), - Attrs([Attr("address","0x714")]), Phis([]), Defs([Def(Tid(713, "%000002c9"), - Attrs([Attr("address","0x714"), Attr("insn","adrp x9, #69632")]), - Var("R9",Imm(64)), Int(69632,64)), Def(Tid(718, "%000002ce"), - Attrs([Attr("address","0x718"), Attr("insn","mov w8, #0x1")]), - Var("R8",Imm(64)), Int(1,64)), Def(Tid(726, "%000002d6"), - Attrs([Attr("address","0x71C"), Attr("insn","str w8, [x9, #0x34]")]), - Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R9",Imm(64)),Int(52,64)),Extract(31,0,Var("R8",Imm(64))),LittleEndian(),32)), -Def(Tid(731, "%000002db"), Attrs([Attr("address","0x720"), -Attr("insn","adrp x8, #69632")]), Var("R8",Imm(64)), Int(69632,64)), -Def(Tid(736, "%000002e0"), Attrs([Attr("address","0x724"), -Attr("insn","mov w0, wzr")]), Var("R0",Imm(64)), Int(0,64)), -Def(Tid(743, "%000002e7"), Attrs([Attr("address","0x728"), -Attr("insn","str wzr, [x8, #0x38]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R8",Imm(64)),Int(56,64)),Int(0,32),LittleEndian(),32))]), -Jmps([Call(Tid(748, "%000002ec"), Attrs([Attr("address","0x72C"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))]))])), -Sub(Tid(1_410, "@register_tm_clones"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x680")]), - "register_tm_clones", Args([Arg(Tid(1_458, "%000005b2"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("register_tm_clones_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(556, "@register_tm_clones"), Attrs([Attr("address","0x680")]), - Phis([]), Defs([Def(Tid(559, "%0000022f"), Attrs([Attr("address","0x680"), -Attr("insn","adrp x0, #69632")]), Var("R0",Imm(64)), Int(69632,64)), -Def(Tid(565, "%00000235"), Attrs([Attr("address","0x684"), -Attr("insn","add x0, x0, #0x30")]), Var("R0",Imm(64)), -PLUS(Var("R0",Imm(64)),Int(48,64))), Def(Tid(570, "%0000023a"), - Attrs([Attr("address","0x688"), Attr("insn","adrp x1, #69632")]), - Var("R1",Imm(64)), Int(69632,64)), Def(Tid(576, "%00000240"), - Attrs([Attr("address","0x68C"), Attr("insn","add x1, x1, #0x30")]), - Var("R1",Imm(64)), PLUS(Var("R1",Imm(64)),Int(48,64))), -Def(Tid(583, "%00000247"), Attrs([Attr("address","0x690"), -Attr("insn","sub x1, x1, x0")]), Var("R1",Imm(64)), -PLUS(PLUS(Var("R1",Imm(64)),NOT(Var("R0",Imm(64)))),Int(1,64))), -Def(Tid(589, "%0000024d"), Attrs([Attr("address","0x694"), -Attr("insn","lsr x2, x1, #63")]), Var("R2",Imm(64)), -Concat(Int(0,63),Extract(63,63,Var("R1",Imm(64))))), -Def(Tid(596, "%00000254"), Attrs([Attr("address","0x698"), -Attr("insn","add x1, x2, x1, asr #3")]), Var("R1",Imm(64)), -PLUS(Var("R2",Imm(64)),ARSHIFT(Var("R1",Imm(64)),Int(3,3)))), -Def(Tid(602, "%0000025a"), Attrs([Attr("address","0x69C"), -Attr("insn","asr x1, x1, #1")]), Var("R1",Imm(64)), -SIGNED(64,Extract(63,1,Var("R1",Imm(64)))))]), -Jmps([Goto(Tid(608, "%00000260"), Attrs([Attr("address","0x6A0"), -Attr("insn","cbz x1, #0x18")]), EQ(Var("R1",Imm(64)),Int(0,64)), -Direct(Tid(606, "%0000025e"))), Goto(Tid(1_439, "%0000059f"), Attrs([]), - Int(1,1), Direct(Tid(809, "%00000329")))])), Blk(Tid(809, "%00000329"), - Attrs([Attr("address","0x6A4")]), Phis([]), Defs([Def(Tid(812, "%0000032c"), - Attrs([Attr("address","0x6A4"), Attr("insn","adrp x2, #65536")]), - Var("R2",Imm(64)), Int(65536,64)), Def(Tid(819, "%00000333"), - Attrs([Attr("address","0x6A8"), Attr("insn","ldr x2, [x2, #0xfe0]")]), - Var("R2",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R2",Imm(64)),Int(4064,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(824, "%00000338"), Attrs([Attr("address","0x6AC"), -Attr("insn","cbz x2, #0xc")]), EQ(Var("R2",Imm(64)),Int(0,64)), -Direct(Tid(606, "%0000025e"))), Goto(Tid(1_440, "%000005a0"), Attrs([]), - Int(1,1), Direct(Tid(828, "%0000033c")))])), Blk(Tid(606, "%0000025e"), - Attrs([Attr("address","0x6B8")]), Phis([]), Defs([]), -Jmps([Call(Tid(614, "%00000266"), Attrs([Attr("address","0x6B8"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))])), -Blk(Tid(828, "%0000033c"), Attrs([Attr("address","0x6B0")]), Phis([]), -Defs([Def(Tid(832, "%00000340"), Attrs([Attr("address","0x6B0"), -Attr("insn","mov x16, x2")]), Var("R16",Imm(64)), Var("R2",Imm(64)))]), -Jmps([Call(Tid(837, "%00000345"), Attrs([Attr("address","0x6B4"), -Attr("insn","br x16")]), Int(1,1), -(Indirect(Var("R16",Imm(64))),))]))]))]))) \ No newline at end of file diff --git a/src/test/correct/basic_lock_unlock/clang/basic_lock_unlock.bir b/src/test/correct/basic_lock_unlock/clang/basic_lock_unlock.bir deleted file mode 100644 index c41e06f11..000000000 --- a/src/test/correct/basic_lock_unlock/clang/basic_lock_unlock.bir +++ /dev/null @@ -1,229 +0,0 @@ -000005a1: program -0000056f: sub __cxa_finalize(__cxa_finalize_result) -000005a2: __cxa_finalize_result :: out u32 = low:32[R0] - -00000325: -0000041d: R16 := 0x11000 -00000424: R17 := mem[R16 + 8, el]:u64 -0000042a: R16 := R16 + 8 -0000042f: call R17 with noreturn - -00000570: sub __do_global_dtors_aux(__do_global_dtors_aux_result) -000005a3: __do_global_dtors_aux_result :: out u32 = low:32[R0] - -0000026a: -0000026e: #3 := R31 - 0x20 -00000274: mem := mem with [#3, el]:u64 <- R29 -0000027a: mem := mem with [#3 + 8, el]:u64 <- R30 -0000027e: R31 := #3 -00000284: R29 := R31 -0000028c: mem := mem with [R31 + 0x10, el]:u64 <- R19 -00000291: R19 := 0x11000 -00000298: R0 := pad:64[mem[R19 + 0x30]] -0000029f: when 31:0[R0] <> 0 goto %0000029d -00000597: goto %000002ee - -000002ee: -000002f1: R0 := 0x10000 -000002f8: R0 := mem[R0 + 0xFC8, el]:u64 -000002fe: when R0 = 0 goto %000002fc -00000598: goto %00000315 - -00000315: -00000318: R0 := 0x11000 -0000031f: R0 := mem[R0 + 0x28, el]:u64 -00000324: R30 := 0x6F0 -00000327: call @__cxa_finalize with return %000002fc - -000002fc: -00000304: R30 := 0x6F4 -00000306: call @deregister_tm_clones with return %00000308 - -00000308: -0000030b: R0 := 1 -00000313: mem := mem with [R19 + 0x30] <- 7:0[R0] -00000599: goto %0000029d - -0000029d: -000002a7: R19 := mem[R31 + 0x10, el]:u64 -000002ae: R29 := mem[R31, el]:u64 -000002b3: R30 := mem[R31 + 8, el]:u64 -000002b7: R31 := R31 + 0x20 -000002bc: call R30 with noreturn - -00000574: sub __libc_start_main(__libc_start_main_main, __libc_start_main_arg2, __libc_start_main_arg3, __libc_start_main_auxv, __libc_start_main_result) -000005a4: __libc_start_main_main :: in u64 = R0 -000005a5: __libc_start_main_arg2 :: in u32 = low:32[R1] -000005a6: __libc_start_main_arg3 :: in out u64 = R2 -000005a7: __libc_start_main_auxv :: in out u64 = R3 -000005a8: __libc_start_main_result :: out u32 = low:32[R0] - -000001c3: -00000407: R16 := 0x11000 -0000040e: R17 := mem[R16, el]:u64 -00000414: R16 := R16 -00000419: call R17 with noreturn - -00000575: sub _fini(_fini_result) -000005a9: _fini_result :: out u32 = low:32[R0] - -0000001f: -00000025: #0 := R31 - 0x10 -0000002b: mem := mem with [#0, el]:u64 <- R29 -00000031: mem := mem with [#0 + 8, el]:u64 <- R30 -00000035: R31 := #0 -0000003b: R29 := R31 -00000042: R29 := mem[R31, el]:u64 -00000047: R30 := mem[R31 + 8, el]:u64 -0000004b: R31 := R31 + 0x10 -00000050: call R30 with noreturn - -00000576: sub _init(_init_result) -000005aa: _init_result :: out u32 = low:32[R0] - -000004ca: -000004d0: #5 := R31 - 0x10 -000004d6: mem := mem with [#5, el]:u64 <- R29 -000004dc: mem := mem with [#5 + 8, el]:u64 <- R30 -000004e0: R31 := #5 -000004e6: R29 := R31 -000004eb: R30 := 0x590 -000004ed: call @call_weak_fn with return %000004ef - -000004ef: -000004f4: R29 := mem[R31, el]:u64 -000004f9: R30 := mem[R31 + 8, el]:u64 -000004fd: R31 := R31 + 0x10 -00000502: call R30 with noreturn - -00000577: sub _start(_start_result) -000005ab: _start_result :: out u32 = low:32[R0] - -00000184: -00000189: R29 := 0 -0000018e: R30 := 0 -00000194: R5 := R0 -0000019b: R1 := mem[R31, el]:u64 -000001a1: R2 := R31 + 8 -000001a7: R6 := R31 -000001ac: R0 := 0x10000 -000001b3: R0 := mem[R0 + 0xFD8, el]:u64 -000001b8: R3 := 0 -000001bd: R4 := 0 -000001c2: R30 := 0x630 -000001c5: call @__libc_start_main with return %000001c7 - -000001c7: -000001ca: R30 := 0x634 -000001cd: call @abort with return %0000059a - -0000059a: -0000059b: call @call_weak_fn with noreturn - -0000057a: sub abort() - - -000001cb: -00000449: R16 := 0x11000 -00000450: R17 := mem[R16 + 0x18, el]:u64 -00000456: R16 := R16 + 0x18 -0000045b: call R17 with noreturn - -0000057b: sub call_weak_fn(call_weak_fn_result) -000005ac: call_weak_fn_result :: out u32 = low:32[R0] - -000001cf: -000001d2: R0 := 0x10000 -000001d9: R0 := mem[R0 + 0xFD0, el]:u64 -000001df: when R0 = 0 goto %000001dd -0000059c: goto %00000365 - -000001dd: -000001e5: call R30 with noreturn - -00000365: -00000368: goto @__gmon_start__ - -00000366: -00000433: R16 := 0x11000 -0000043a: R17 := mem[R16 + 0x10, el]:u64 -00000440: R16 := R16 + 0x10 -00000445: call R17 with noreturn - -0000057d: sub deregister_tm_clones(deregister_tm_clones_result) -000005ad: deregister_tm_clones_result :: out u32 = low:32[R0] - -000001eb: -000001ee: R0 := 0x11000 -000001f4: R0 := R0 + 0x30 -000001f9: R1 := 0x11000 -000001ff: R1 := R1 + 0x30 -00000205: #1 := ~R0 -0000020a: #2 := R1 + ~R0 -00000210: VF := extend:65[#2 + 1] <> extend:65[R1] + extend:65[#1] + 1 -00000216: CF := pad:65[#2 + 1] <> pad:65[R1] + pad:65[#1] + 1 -0000021a: ZF := #2 + 1 = 0 -0000021e: NF := 63:63[#2 + 1] -00000224: when ZF goto %00000222 -0000059d: goto %00000347 - -00000347: -0000034a: R1 := 0x10000 -00000351: R1 := mem[R1 + 0xFC0, el]:u64 -00000356: when R1 = 0 goto %00000222 -0000059e: goto %0000035a - -00000222: -0000022a: call R30 with noreturn - -0000035a: -0000035e: R16 := R1 -00000363: call R16 with noreturn - -00000580: sub frame_dummy(frame_dummy_result) -000005ae: frame_dummy_result :: out u32 = low:32[R0] - -000002c2: -000002c4: call @register_tm_clones with noreturn - -00000581: sub main(main_argc, main_argv, main_result) -000005af: main_argc :: in u32 = low:32[R0] -000005b0: main_argv :: in out u64 = R1 -000005b1: main_result :: out u32 = low:32[R0] - -000002c6: -000002c9: R9 := 0x11000 -000002ce: R8 := 1 -000002d6: mem := mem with [R9 + 0x34, el]:u32 <- 31:0[R8] -000002db: R8 := 0x11000 -000002e0: R0 := 0 -000002e7: mem := mem with [R8 + 0x38, el]:u32 <- 0 -000002ec: call R30 with noreturn - -00000582: sub register_tm_clones(register_tm_clones_result) -000005b2: register_tm_clones_result :: out u32 = low:32[R0] - -0000022c: -0000022f: R0 := 0x11000 -00000235: R0 := R0 + 0x30 -0000023a: R1 := 0x11000 -00000240: R1 := R1 + 0x30 -00000247: R1 := R1 + ~R0 + 1 -0000024d: R2 := 0.63:63[R1] -00000254: R1 := R2 + (R1 ~>> 3) -0000025a: R1 := extend:64[63:1[R1]] -00000260: when R1 = 0 goto %0000025e -0000059f: goto %00000329 - -00000329: -0000032c: R2 := 0x10000 -00000333: R2 := mem[R2 + 0xFE0, el]:u64 -00000338: when R2 = 0 goto %0000025e -000005a0: goto %0000033c - -0000025e: -00000266: call R30 with noreturn - -0000033c: -00000340: R16 := R2 -00000345: call R16 with noreturn diff --git a/src/test/correct/basic_lock_unlock/clang/basic_lock_unlock.expected b/src/test/correct/basic_lock_unlock/clang/basic_lock_unlock.expected index 5436c03f4..68fd06e95 100644 --- a/src/test/correct/basic_lock_unlock/clang/basic_lock_unlock.expected +++ b/src/test/correct/basic_lock_unlock/clang/basic_lock_unlock.expected @@ -1,20 +1,26 @@ var {:extern} Gamma_R0: bool; +var {:extern} Gamma_R10: bool; var {:extern} Gamma_R8: bool; var {:extern} Gamma_R9: bool; var {:extern} Gamma_mem: [bv64]bool; var {:extern} R0: bv64; +var {:extern} R10: bv64; var {:extern} R8: bv64; var {:extern} R9: bv64; var {:extern} mem: [bv64]bv8; const {:extern} $x_addr: bv64; -axiom ($x_addr == 69684bv64); +axiom ($x_addr == 131092bv64); const {:extern} $z_addr: bv64; -axiom ($z_addr == 69688bv64); +axiom ($z_addr == 131096bv64); function {:extern} L(mem$in: [bv64]bv8, index: bv64) returns (bool) { (if (index == $x_addr) then true else (if (index == $z_addr) then true else false)) } function {:extern} {:bvbuiltin "bvadd"} bvadd64(bv64, bv64) returns (bv64); +function {:extern} gamma_load64(gammaMap: [bv64]bool, index: bv64) returns (bool) { + (gammaMap[bvadd64(index, 7bv64)] && (gammaMap[bvadd64(index, 6bv64)] && (gammaMap[bvadd64(index, 5bv64)] && (gammaMap[bvadd64(index, 4bv64)] && (gammaMap[bvadd64(index, 3bv64)] && (gammaMap[bvadd64(index, 2bv64)] && (gammaMap[bvadd64(index, 1bv64)] && gammaMap[index]))))))) +} + function {:extern} gamma_store32(gammaMap: [bv64]bool, index: bv64, value: bool) returns ([bv64]bool) { gammaMap[index := value][bvadd64(index, 1bv64) := value][bvadd64(index, 2bv64) := value][bvadd64(index, 3bv64) := value] } @@ -35,11 +41,13 @@ procedure {:extern} rely(); modifies Gamma_mem, mem; ensures (forall i: bv64 :: (((mem[i] == old(mem[i])) ==> (Gamma_mem[i] == old(Gamma_mem[i]))))); ensures (memory_load32_le(mem, $z_addr) == old(memory_load32_le(mem, $z_addr))); - free ensures (memory_load32_le(mem, 1860bv64) == 131073bv32); - free ensures (memory_load64_le(mem, 69064bv64) == 1808bv64); - free ensures (memory_load64_le(mem, 69072bv64) == 1728bv64); - free ensures (memory_load64_le(mem, 69592bv64) == 1812bv64); - free ensures (memory_load64_le(mem, 69672bv64) == 69672bv64); + free ensures (memory_load32_le(mem, 2316bv64) == 131073bv32); + free ensures (memory_load64_le(mem, 130424bv64) == 2256bv64); + free ensures (memory_load64_le(mem, 130432bv64) == 2176bv64); + free ensures (memory_load64_le(mem, 131032bv64) == 131096bv64); + free ensures (memory_load64_le(mem, 131040bv64) == 131092bv64); + free ensures (memory_load64_le(mem, 131056bv64) == 2260bv64); + free ensures (memory_load64_le(mem, 131080bv64) == 131080bv64); procedure {:extern} rely_transitive(); modifies Gamma_mem, mem; @@ -66,49 +74,63 @@ implementation {:extern} guarantee_reflexive() assert ((memory_load32_le(mem, $z_addr) == 0bv32) ==> ((memory_load32_le(mem, $x_addr) == memory_load32_le(mem, $x_addr)) && (memory_load32_le(mem, $z_addr) == memory_load32_le(mem, $z_addr)))); } -procedure main_1812(); - modifies Gamma_R0, Gamma_R8, Gamma_R9, Gamma_mem, R0, R8, R9, mem; +procedure main(); + modifies Gamma_R0, Gamma_R10, Gamma_R8, Gamma_R9, Gamma_mem, R0, R10, R8, R9, mem; requires (memory_load32_le(mem, $z_addr) == 1bv32); - free requires (memory_load64_le(mem, 69664bv64) == 0bv64); - free requires (memory_load64_le(mem, 69672bv64) == 69672bv64); - free requires (memory_load32_le(mem, 1860bv64) == 131073bv32); - free requires (memory_load64_le(mem, 69064bv64) == 1808bv64); - free requires (memory_load64_le(mem, 69072bv64) == 1728bv64); - free requires (memory_load64_le(mem, 69592bv64) == 1812bv64); - free requires (memory_load64_le(mem, 69672bv64) == 69672bv64); - free ensures (memory_load32_le(mem, 1860bv64) == 131073bv32); - free ensures (memory_load64_le(mem, 69064bv64) == 1808bv64); - free ensures (memory_load64_le(mem, 69072bv64) == 1728bv64); - free ensures (memory_load64_le(mem, 69592bv64) == 1812bv64); - free ensures (memory_load64_le(mem, 69672bv64) == 69672bv64); + free requires (memory_load64_le(mem, 131072bv64) == 0bv64); + free requires (memory_load64_le(mem, 131080bv64) == 131080bv64); + free requires (memory_load32_le(mem, 2316bv64) == 131073bv32); + free requires (memory_load64_le(mem, 130424bv64) == 2256bv64); + free requires (memory_load64_le(mem, 130432bv64) == 2176bv64); + free requires (memory_load64_le(mem, 131032bv64) == 131096bv64); + free requires (memory_load64_le(mem, 131040bv64) == 131092bv64); + free requires (memory_load64_le(mem, 131056bv64) == 2260bv64); + free requires (memory_load64_le(mem, 131080bv64) == 131080bv64); + free ensures (memory_load32_le(mem, 2316bv64) == 131073bv32); + free ensures (memory_load64_le(mem, 130424bv64) == 2256bv64); + free ensures (memory_load64_le(mem, 130432bv64) == 2176bv64); + free ensures (memory_load64_le(mem, 131032bv64) == 131096bv64); + free ensures (memory_load64_le(mem, 131040bv64) == 131092bv64); + free ensures (memory_load64_le(mem, 131056bv64) == 2260bv64); + free ensures (memory_load64_le(mem, 131080bv64) == 131080bv64); -implementation main_1812() +implementation main() { + var $load$18: bv64; + var $load$19: bv64; + var Gamma_$load$18: bool; + var Gamma_$load$19: bool; var x_old: bv32; var z_old: bv32; lmain: assume {:captureState "lmain"} true; - R9, Gamma_R9 := 69632bv64, true; - R8, Gamma_R8 := 1bv64, true; + R8, Gamma_R8 := 126976bv64, true; + R10, Gamma_R10 := 126976bv64, true; + R0, Gamma_R0 := 0bv64, true; call rely(); + $load$18, Gamma_$load$18 := memory_load64_le(mem, bvadd64(R8, 4064bv64)), (gamma_load64(Gamma_mem, bvadd64(R8, 4064bv64)) || L(mem, bvadd64(R8, 4064bv64))); + R8, Gamma_R8 := $load$18, Gamma_$load$18; + call rely(); + $load$19, Gamma_$load$19 := memory_load64_le(mem, bvadd64(R10, 4056bv64)), (gamma_load64(Gamma_mem, bvadd64(R10, 4056bv64)) || L(mem, bvadd64(R10, 4056bv64))); + R10, Gamma_R10 := $load$19, Gamma_$load$19; + R9, Gamma_R9 := 1bv64, true; + call rely(); + assert (L(mem, R8) ==> Gamma_R9); x_old := memory_load32_le(mem, $x_addr); z_old := memory_load32_le(mem, $z_addr); - assert (L(mem, bvadd64(R9, 52bv64)) ==> Gamma_R8); - mem, Gamma_mem := memory_store32_le(mem, bvadd64(R9, 52bv64), R8[32:0]), gamma_store32(Gamma_mem, bvadd64(R9, 52bv64), Gamma_R8); + mem, Gamma_mem := memory_store32_le(mem, R8, R9[32:0]), gamma_store32(Gamma_mem, R8, Gamma_R9); assert ((z_old == 0bv32) ==> ((memory_load32_le(mem, $x_addr) == x_old) && (memory_load32_le(mem, $z_addr) == z_old))); - assume {:captureState "%000002d6"} true; - R8, Gamma_R8 := 69632bv64, true; - R0, Gamma_R0 := 0bv64, true; + assume {:captureState "%00000294"} true; call rely(); + assert (L(mem, R10) ==> true); x_old := memory_load32_le(mem, $x_addr); z_old := memory_load32_le(mem, $z_addr); - assert (L(mem, bvadd64(R8, 56bv64)) ==> true); - mem, Gamma_mem := memory_store32_le(mem, bvadd64(R8, 56bv64), 0bv32), gamma_store32(Gamma_mem, bvadd64(R8, 56bv64), true); + mem, Gamma_mem := memory_store32_le(mem, R10, 0bv32), gamma_store32(Gamma_mem, R10, true); assert ((z_old == 0bv32) ==> ((memory_load32_le(mem, $x_addr) == x_old) && (memory_load32_le(mem, $z_addr) == z_old))); - assume {:captureState "%000002e7"} true; - goto main_1812_basil_return; - main_1812_basil_return: - assume {:captureState "main_1812_basil_return"} true; + assume {:captureState "%00000298"} true; + goto main_basil_return; + main_basil_return: + assume {:captureState "main_basil_return"} true; return; } diff --git a/src/test/correct/basic_lock_unlock/clang/basic_lock_unlock.gts b/src/test/correct/basic_lock_unlock/clang/basic_lock_unlock.gts deleted file mode 100644 index fbeafcca6..000000000 Binary files a/src/test/correct/basic_lock_unlock/clang/basic_lock_unlock.gts and /dev/null differ diff --git a/src/test/correct/basic_lock_unlock/clang/basic_lock_unlock.md5sum b/src/test/correct/basic_lock_unlock/clang/basic_lock_unlock.md5sum new file mode 100644 index 000000000..60b886179 --- /dev/null +++ b/src/test/correct/basic_lock_unlock/clang/basic_lock_unlock.md5sum @@ -0,0 +1,5 @@ +f12a4bfe6bed3769f898573c89e377ee correct/basic_lock_unlock/clang/a.out +9bad9897d0a48abebb2ff3973ea3b263 correct/basic_lock_unlock/clang/basic_lock_unlock.adt +b56e5fd7e1f98828a1ed2da6726297b1 correct/basic_lock_unlock/clang/basic_lock_unlock.bir +c4117b6dc09136267fbed87a1ef796c6 correct/basic_lock_unlock/clang/basic_lock_unlock.relf +c6556cd323c9bef5f817cd5ed1c36a04 correct/basic_lock_unlock/clang/basic_lock_unlock.gts diff --git a/src/test/correct/basic_lock_unlock/clang/basic_lock_unlock.relf b/src/test/correct/basic_lock_unlock/clang/basic_lock_unlock.relf deleted file mode 100644 index b762db234..000000000 --- a/src/test/correct/basic_lock_unlock/clang/basic_lock_unlock.relf +++ /dev/null @@ -1,124 +0,0 @@ - -Relocation section '.rela.dyn' at offset 0x460 contains 8 entries: - Offset Info Type Symbol's Value Symbol's Name + Addend -0000000000010dc8 0000000000000403 R_AARCH64_RELATIVE 710 -0000000000010dd0 0000000000000403 R_AARCH64_RELATIVE 6c0 -0000000000010fd8 0000000000000403 R_AARCH64_RELATIVE 714 -0000000000011028 0000000000000403 R_AARCH64_RELATIVE 11028 -0000000000010fc0 0000000400000401 R_AARCH64_GLOB_DAT 0000000000000000 _ITM_deregisterTMCloneTable + 0 -0000000000010fc8 0000000500000401 R_AARCH64_GLOB_DAT 0000000000000000 __cxa_finalize@GLIBC_2.17 + 0 -0000000000010fd0 0000000600000401 R_AARCH64_GLOB_DAT 0000000000000000 __gmon_start__ + 0 -0000000000010fe0 0000000800000401 R_AARCH64_GLOB_DAT 0000000000000000 _ITM_registerTMCloneTable + 0 - -Relocation section '.rela.plt' at offset 0x520 contains 4 entries: - Offset Info Type Symbol's Value Symbol's Name + Addend -0000000000011000 0000000300000402 R_AARCH64_JUMP_SLOT 0000000000000000 __libc_start_main@GLIBC_2.34 + 0 -0000000000011008 0000000500000402 R_AARCH64_JUMP_SLOT 0000000000000000 __cxa_finalize@GLIBC_2.17 + 0 -0000000000011010 0000000600000402 R_AARCH64_JUMP_SLOT 0000000000000000 __gmon_start__ + 0 -0000000000011018 0000000700000402 R_AARCH64_JUMP_SLOT 0000000000000000 abort@GLIBC_2.17 + 0 - -Symbol table '.dynsym' contains 9 entries: - Num: Value Size Type Bind Vis Ndx Name - 0: 0000000000000000 0 NOTYPE LOCAL DEFAULT UND - 1: 0000000000000580 0 SECTION LOCAL DEFAULT 11 .init - 2: 0000000000011020 0 SECTION LOCAL DEFAULT 23 .data - 3: 0000000000000000 0 FUNC GLOBAL DEFAULT UND __libc_start_main@GLIBC_2.34 (2) - 4: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_deregisterTMCloneTable - 5: 0000000000000000 0 FUNC WEAK DEFAULT UND __cxa_finalize@GLIBC_2.17 (3) - 6: 0000000000000000 0 NOTYPE WEAK DEFAULT UND __gmon_start__ - 7: 0000000000000000 0 FUNC GLOBAL DEFAULT UND abort@GLIBC_2.17 (3) - 8: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_registerTMCloneTable - -Symbol table '.symtab' contains 91 entries: - Num: Value Size Type Bind Vis Ndx Name - 0: 0000000000000000 0 NOTYPE LOCAL DEFAULT UND - 1: 0000000000000238 0 SECTION LOCAL DEFAULT 1 .interp - 2: 0000000000000254 0 SECTION LOCAL DEFAULT 2 .note.gnu.build-id - 3: 0000000000000278 0 SECTION LOCAL DEFAULT 3 .note.ABI-tag - 4: 0000000000000298 0 SECTION LOCAL DEFAULT 4 .gnu.hash - 5: 00000000000002b8 0 SECTION LOCAL DEFAULT 5 .dynsym - 6: 0000000000000390 0 SECTION LOCAL DEFAULT 6 .dynstr - 7: 000000000000041e 0 SECTION LOCAL DEFAULT 7 .gnu.version - 8: 0000000000000430 0 SECTION LOCAL DEFAULT 8 .gnu.version_r - 9: 0000000000000460 0 SECTION LOCAL DEFAULT 9 .rela.dyn - 10: 0000000000000520 0 SECTION LOCAL DEFAULT 10 .rela.plt - 11: 0000000000000580 0 SECTION LOCAL DEFAULT 11 .init - 12: 00000000000005a0 0 SECTION LOCAL DEFAULT 12 .plt - 13: 0000000000000600 0 SECTION LOCAL DEFAULT 13 .text - 14: 0000000000000730 0 SECTION LOCAL DEFAULT 14 .fini - 15: 0000000000000744 0 SECTION LOCAL DEFAULT 15 .rodata - 16: 0000000000000748 0 SECTION LOCAL DEFAULT 16 .eh_frame_hdr - 17: 0000000000000788 0 SECTION LOCAL DEFAULT 17 .eh_frame - 18: 0000000000010dc8 0 SECTION LOCAL DEFAULT 18 .init_array - 19: 0000000000010dd0 0 SECTION LOCAL DEFAULT 19 .fini_array - 20: 0000000000010dd8 0 SECTION LOCAL DEFAULT 20 .dynamic - 21: 0000000000010fb8 0 SECTION LOCAL DEFAULT 21 .got - 22: 0000000000010fe8 0 SECTION LOCAL DEFAULT 22 .got.plt - 23: 0000000000011020 0 SECTION LOCAL DEFAULT 23 .data - 24: 0000000000011030 0 SECTION LOCAL DEFAULT 24 .bss - 25: 0000000000000000 0 SECTION LOCAL DEFAULT 25 .comment - 26: 0000000000000000 0 FILE LOCAL DEFAULT ABS Scrt1.o - 27: 0000000000000278 0 NOTYPE LOCAL DEFAULT 3 $d - 28: 0000000000000278 32 OBJECT LOCAL DEFAULT 3 __abi_tag - 29: 0000000000000600 0 NOTYPE LOCAL DEFAULT 13 $x - 30: 000000000000079c 0 NOTYPE LOCAL DEFAULT 17 $d - 31: 0000000000000744 0 NOTYPE LOCAL DEFAULT 15 $d - 32: 0000000000000000 0 FILE LOCAL DEFAULT ABS crti.o - 33: 0000000000000634 0 NOTYPE LOCAL DEFAULT 13 $x - 34: 0000000000000634 20 FUNC LOCAL DEFAULT 13 call_weak_fn - 35: 0000000000000580 0 NOTYPE LOCAL DEFAULT 11 $x - 36: 0000000000000730 0 NOTYPE LOCAL DEFAULT 14 $x - 37: 0000000000000000 0 FILE LOCAL DEFAULT ABS crtn.o - 38: 0000000000000590 0 NOTYPE LOCAL DEFAULT 11 $x - 39: 000000000000073c 0 NOTYPE LOCAL DEFAULT 14 $x - 40: 0000000000000000 0 FILE LOCAL DEFAULT ABS crtstuff.c - 41: 0000000000000650 0 NOTYPE LOCAL DEFAULT 13 $x - 42: 0000000000000650 0 FUNC LOCAL DEFAULT 13 deregister_tm_clones - 43: 0000000000000680 0 FUNC LOCAL DEFAULT 13 register_tm_clones - 44: 0000000000011028 0 NOTYPE LOCAL DEFAULT 23 $d - 45: 00000000000006c0 0 FUNC LOCAL DEFAULT 13 __do_global_dtors_aux - 46: 0000000000011030 1 OBJECT LOCAL DEFAULT 24 completed.0 - 47: 0000000000010dd0 0 NOTYPE LOCAL DEFAULT 19 $d - 48: 0000000000010dd0 0 OBJECT LOCAL DEFAULT 19 __do_global_dtors_aux_fini_array_entry - 49: 0000000000000710 0 FUNC LOCAL DEFAULT 13 frame_dummy - 50: 0000000000010dc8 0 NOTYPE LOCAL DEFAULT 18 $d - 51: 0000000000010dc8 0 OBJECT LOCAL DEFAULT 18 __frame_dummy_init_array_entry - 52: 00000000000007b0 0 NOTYPE LOCAL DEFAULT 17 $d - 53: 0000000000011030 0 NOTYPE LOCAL DEFAULT 24 $d - 54: 0000000000000000 0 FILE LOCAL DEFAULT ABS basic_lock_unlock.c - 55: 0000000000000714 0 NOTYPE LOCAL DEFAULT 13 $x.0 - 56: 0000000000011034 0 NOTYPE LOCAL DEFAULT 24 $d.1 - 57: 000000000000002a 0 NOTYPE LOCAL DEFAULT 25 $d.2 - 58: 0000000000000810 0 NOTYPE LOCAL DEFAULT 17 $d.3 - 59: 0000000000000000 0 FILE LOCAL DEFAULT ABS crtstuff.c - 60: 0000000000000838 0 NOTYPE LOCAL DEFAULT 17 $d - 61: 0000000000000838 0 OBJECT LOCAL DEFAULT 17 __FRAME_END__ - 62: 0000000000000000 0 FILE LOCAL DEFAULT ABS - 63: 0000000000010dd8 0 OBJECT LOCAL DEFAULT ABS _DYNAMIC - 64: 0000000000000748 0 NOTYPE LOCAL DEFAULT 16 __GNU_EH_FRAME_HDR - 65: 0000000000010fb8 0 OBJECT LOCAL DEFAULT ABS _GLOBAL_OFFSET_TABLE_ - 66: 00000000000005a0 0 NOTYPE LOCAL DEFAULT 12 $x - 67: 0000000000000000 0 FUNC GLOBAL DEFAULT UND __libc_start_main@GLIBC_2.34 - 68: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_deregisterTMCloneTable - 69: 0000000000011020 0 NOTYPE WEAK DEFAULT 23 data_start - 70: 0000000000011030 0 NOTYPE GLOBAL DEFAULT 24 __bss_start__ - 71: 0000000000000000 0 FUNC WEAK DEFAULT UND __cxa_finalize@GLIBC_2.17 - 72: 0000000000011040 0 NOTYPE GLOBAL DEFAULT 24 _bss_end__ - 73: 0000000000011030 0 NOTYPE GLOBAL DEFAULT 23 _edata - 74: 0000000000011038 4 OBJECT GLOBAL DEFAULT 24 z - 75: 0000000000011034 4 OBJECT GLOBAL DEFAULT 24 x - 76: 0000000000000730 0 FUNC GLOBAL HIDDEN 14 _fini - 77: 0000000000011040 0 NOTYPE GLOBAL DEFAULT 24 __bss_end__ - 78: 0000000000011020 0 NOTYPE GLOBAL DEFAULT 23 __data_start - 79: 0000000000000000 0 NOTYPE WEAK DEFAULT UND __gmon_start__ - 80: 0000000000011028 0 OBJECT GLOBAL HIDDEN 23 __dso_handle - 81: 0000000000000000 0 FUNC GLOBAL DEFAULT UND abort@GLIBC_2.17 - 82: 0000000000000744 4 OBJECT GLOBAL DEFAULT 15 _IO_stdin_used - 83: 0000000000011040 0 NOTYPE GLOBAL DEFAULT 24 _end - 84: 0000000000000600 52 FUNC GLOBAL DEFAULT 13 _start - 85: 0000000000011040 0 NOTYPE GLOBAL DEFAULT 24 __end__ - 86: 0000000000011030 0 NOTYPE GLOBAL DEFAULT 24 __bss_start - 87: 0000000000000714 28 FUNC GLOBAL DEFAULT 13 main - 88: 0000000000011030 0 OBJECT GLOBAL HIDDEN 23 __TMC_END__ - 89: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_registerTMCloneTable - 90: 0000000000000580 0 FUNC GLOBAL HIDDEN 11 _init diff --git a/src/test/correct/basic_lock_unlock/clang/basic_lock_unlock_gtirb.expected b/src/test/correct/basic_lock_unlock/clang/basic_lock_unlock_gtirb.expected index 248e1e8a6..02283dcce 100644 --- a/src/test/correct/basic_lock_unlock/clang/basic_lock_unlock_gtirb.expected +++ b/src/test/correct/basic_lock_unlock/clang/basic_lock_unlock_gtirb.expected @@ -1,20 +1,26 @@ var {:extern} Gamma_R0: bool; +var {:extern} Gamma_R10: bool; var {:extern} Gamma_R8: bool; var {:extern} Gamma_R9: bool; var {:extern} Gamma_mem: [bv64]bool; var {:extern} R0: bv64; +var {:extern} R10: bv64; var {:extern} R8: bv64; var {:extern} R9: bv64; var {:extern} mem: [bv64]bv8; const {:extern} $x_addr: bv64; -axiom ($x_addr == 69684bv64); +axiom ($x_addr == 131092bv64); const {:extern} $z_addr: bv64; -axiom ($z_addr == 69688bv64); +axiom ($z_addr == 131096bv64); function {:extern} L(mem$in: [bv64]bv8, index: bv64) returns (bool) { (if (index == $x_addr) then true else (if (index == $z_addr) then true else false)) } function {:extern} {:bvbuiltin "bvadd"} bvadd64(bv64, bv64) returns (bv64); +function {:extern} gamma_load64(gammaMap: [bv64]bool, index: bv64) returns (bool) { + (gammaMap[bvadd64(index, 7bv64)] && (gammaMap[bvadd64(index, 6bv64)] && (gammaMap[bvadd64(index, 5bv64)] && (gammaMap[bvadd64(index, 4bv64)] && (gammaMap[bvadd64(index, 3bv64)] && (gammaMap[bvadd64(index, 2bv64)] && (gammaMap[bvadd64(index, 1bv64)] && gammaMap[index]))))))) +} + function {:extern} gamma_store32(gammaMap: [bv64]bool, index: bv64, value: bool) returns ([bv64]bool) { gammaMap[index := value][bvadd64(index, 1bv64) := value][bvadd64(index, 2bv64) := value][bvadd64(index, 3bv64) := value] } @@ -35,11 +41,13 @@ procedure {:extern} rely(); modifies Gamma_mem, mem; ensures (forall i: bv64 :: (((mem[i] == old(mem[i])) ==> (Gamma_mem[i] == old(Gamma_mem[i]))))); ensures (memory_load32_le(mem, $z_addr) == old(memory_load32_le(mem, $z_addr))); - free ensures (memory_load32_le(mem, 1860bv64) == 131073bv32); - free ensures (memory_load64_le(mem, 69064bv64) == 1808bv64); - free ensures (memory_load64_le(mem, 69072bv64) == 1728bv64); - free ensures (memory_load64_le(mem, 69592bv64) == 1812bv64); - free ensures (memory_load64_le(mem, 69672bv64) == 69672bv64); + free ensures (memory_load32_le(mem, 2316bv64) == 131073bv32); + free ensures (memory_load64_le(mem, 130424bv64) == 2256bv64); + free ensures (memory_load64_le(mem, 130432bv64) == 2176bv64); + free ensures (memory_load64_le(mem, 131032bv64) == 131096bv64); + free ensures (memory_load64_le(mem, 131040bv64) == 131092bv64); + free ensures (memory_load64_le(mem, 131056bv64) == 2260bv64); + free ensures (memory_load64_le(mem, 131080bv64) == 131080bv64); procedure {:extern} rely_transitive(); modifies Gamma_mem, mem; @@ -66,49 +74,63 @@ implementation {:extern} guarantee_reflexive() assert ((memory_load32_le(mem, $z_addr) == 0bv32) ==> ((memory_load32_le(mem, $x_addr) == memory_load32_le(mem, $x_addr)) && (memory_load32_le(mem, $z_addr) == memory_load32_le(mem, $z_addr)))); } -procedure main_1812(); - modifies Gamma_R0, Gamma_R8, Gamma_R9, Gamma_mem, R0, R8, R9, mem; +procedure main(); + modifies Gamma_R0, Gamma_R10, Gamma_R8, Gamma_R9, Gamma_mem, R0, R10, R8, R9, mem; requires (memory_load32_le(mem, $z_addr) == 1bv32); - free requires (memory_load64_le(mem, 69664bv64) == 0bv64); - free requires (memory_load64_le(mem, 69672bv64) == 69672bv64); - free requires (memory_load32_le(mem, 1860bv64) == 131073bv32); - free requires (memory_load64_le(mem, 69064bv64) == 1808bv64); - free requires (memory_load64_le(mem, 69072bv64) == 1728bv64); - free requires (memory_load64_le(mem, 69592bv64) == 1812bv64); - free requires (memory_load64_le(mem, 69672bv64) == 69672bv64); - free ensures (memory_load32_le(mem, 1860bv64) == 131073bv32); - free ensures (memory_load64_le(mem, 69064bv64) == 1808bv64); - free ensures (memory_load64_le(mem, 69072bv64) == 1728bv64); - free ensures (memory_load64_le(mem, 69592bv64) == 1812bv64); - free ensures (memory_load64_le(mem, 69672bv64) == 69672bv64); + free requires (memory_load64_le(mem, 131072bv64) == 0bv64); + free requires (memory_load64_le(mem, 131080bv64) == 131080bv64); + free requires (memory_load32_le(mem, 2316bv64) == 131073bv32); + free requires (memory_load64_le(mem, 130424bv64) == 2256bv64); + free requires (memory_load64_le(mem, 130432bv64) == 2176bv64); + free requires (memory_load64_le(mem, 131032bv64) == 131096bv64); + free requires (memory_load64_le(mem, 131040bv64) == 131092bv64); + free requires (memory_load64_le(mem, 131056bv64) == 2260bv64); + free requires (memory_load64_le(mem, 131080bv64) == 131080bv64); + free ensures (memory_load32_le(mem, 2316bv64) == 131073bv32); + free ensures (memory_load64_le(mem, 130424bv64) == 2256bv64); + free ensures (memory_load64_le(mem, 130432bv64) == 2176bv64); + free ensures (memory_load64_le(mem, 131032bv64) == 131096bv64); + free ensures (memory_load64_le(mem, 131040bv64) == 131092bv64); + free ensures (memory_load64_le(mem, 131056bv64) == 2260bv64); + free ensures (memory_load64_le(mem, 131080bv64) == 131080bv64); -implementation main_1812() +implementation main() { + var $load5: bv64; + var $load6: bv64; + var Gamma_$load5: bool; + var Gamma_$load6: bool; var x_old: bv32; var z_old: bv32; - main_1812__0__coGSV8OXQlKjGr7fs6hIYw: - assume {:captureState "main_1812__0__coGSV8OXQlKjGr7fs6hIYw"} true; - R9, Gamma_R9 := 69632bv64, true; - R8, Gamma_R8 := 1bv64, true; + $main$__0__$D9t2gNJrSmyMH3GAVRe3IQ: + assume {:captureState "$main$__0__$D9t2gNJrSmyMH3GAVRe3IQ"} true; + R8, Gamma_R8 := 126976bv64, true; + R10, Gamma_R10 := 126976bv64, true; + R0, Gamma_R0 := 0bv64, true; call rely(); + $load5, Gamma_$load5 := memory_load64_le(mem, bvadd64(R8, 4064bv64)), (gamma_load64(Gamma_mem, bvadd64(R8, 4064bv64)) || L(mem, bvadd64(R8, 4064bv64))); + R8, Gamma_R8 := $load5, Gamma_$load5; + call rely(); + $load6, Gamma_$load6 := memory_load64_le(mem, bvadd64(R10, 4056bv64)), (gamma_load64(Gamma_mem, bvadd64(R10, 4056bv64)) || L(mem, bvadd64(R10, 4056bv64))); + R10, Gamma_R10 := $load6, Gamma_$load6; + R9, Gamma_R9 := 1bv64, true; + call rely(); + assert (L(mem, R8) ==> Gamma_R9); x_old := memory_load32_le(mem, $x_addr); z_old := memory_load32_le(mem, $z_addr); - assert (L(mem, bvadd64(R9, 52bv64)) ==> Gamma_R8); - mem, Gamma_mem := memory_store32_le(mem, bvadd64(R9, 52bv64), R8[32:0]), gamma_store32(Gamma_mem, bvadd64(R9, 52bv64), Gamma_R8); + mem, Gamma_mem := memory_store32_le(mem, R8, R9[32:0]), gamma_store32(Gamma_mem, R8, Gamma_R9); assert ((z_old == 0bv32) ==> ((memory_load32_le(mem, $x_addr) == x_old) && (memory_load32_le(mem, $z_addr) == z_old))); - assume {:captureState "1820_0"} true; - R8, Gamma_R8 := 69632bv64, true; - R0, Gamma_R0 := 0bv64, true; + assume {:captureState "2284$0"} true; call rely(); + assert (L(mem, R10) ==> true); x_old := memory_load32_le(mem, $x_addr); z_old := memory_load32_le(mem, $z_addr); - assert (L(mem, bvadd64(R8, 56bv64)) ==> true); - mem, Gamma_mem := memory_store32_le(mem, bvadd64(R8, 56bv64), 0bv32), gamma_store32(Gamma_mem, bvadd64(R8, 56bv64), true); + mem, Gamma_mem := memory_store32_le(mem, R10, 0bv32), gamma_store32(Gamma_mem, R10, true); assert ((z_old == 0bv32) ==> ((memory_load32_le(mem, $x_addr) == x_old) && (memory_load32_le(mem, $z_addr) == z_old))); - assume {:captureState "1832_0"} true; - goto main_1812_basil_return; - main_1812_basil_return: - assume {:captureState "main_1812_basil_return"} true; + assume {:captureState "2288$0"} true; + goto main_basil_return; + main_basil_return: + assume {:captureState "main_basil_return"} true; return; } diff --git a/src/test/correct/basic_lock_unlock/clang_pic/basic_lock_unlock.adt b/src/test/correct/basic_lock_unlock/clang_pic/basic_lock_unlock.adt deleted file mode 100644 index ff7f0d008..000000000 --- a/src/test/correct/basic_lock_unlock/clang_pic/basic_lock_unlock.adt +++ /dev/null @@ -1,503 +0,0 @@ -Project(Attrs([Attr("filename","\"clang_pic/basic_lock_unlock.out\""), -Attr("image-specification","(declare abi (name str))\n(declare arch (name str))\n(declare base-address (addr int))\n(declare bias (off int))\n(declare bits (size int))\n(declare code-region (addr int) (size int) (off int))\n(declare code-start (addr int))\n(declare entry-point (addr int))\n(declare external-reference (addr int) (name str))\n(declare format (name str))\n(declare is-executable (flag bool))\n(declare is-little-endian (flag bool))\n(declare llvm:base-address (addr int))\n(declare llvm:code-entry (name str) (off int) (size int))\n(declare llvm:coff-import-library (name str))\n(declare llvm:coff-virtual-section-header (name str) (addr int) (size int))\n(declare llvm:elf-program-header (name str) (off int) (size int))\n(declare llvm:elf-program-header-flags (name str) (ld bool) (r bool) \n (w bool) (x bool))\n(declare llvm:elf-virtual-program-header (name str) (addr int) (size int))\n(declare llvm:entry-point (addr int))\n(declare llvm:macho-symbol (name str) (value int))\n(declare llvm:name-reference (at int) (name str))\n(declare llvm:relocation (at int) (addr int))\n(declare llvm:section-entry (name str) (addr int) (size int) (off int))\n(declare llvm:section-flags (name str) (r bool) (w bool) (x bool))\n(declare llvm:segment-command (name str) (off int) (size int))\n(declare llvm:segment-command-flags (name str) (r bool) (w bool) (x bool))\n(declare llvm:symbol-entry (name str) (addr int) (size int) (off int)\n (value int))\n(declare llvm:virtual-segment-command (name str) (addr int) (size int))\n(declare mapped (addr int) (size int) (off int))\n(declare named-region (addr int) (size int) (name str))\n(declare named-symbol (addr int) (name str))\n(declare require (name str))\n(declare section (addr int) (size int))\n(declare segment (addr int) (size int) (r bool) (w bool) (x bool))\n(declare subarch (name str))\n(declare symbol-chunk (addr int) (size int) (root int))\n(declare symbol-value (addr int) (value int))\n(declare system (name str))\n(declare vendor (name str))\n\n(abi unknown)\n(arch aarch64)\n(base-address 0)\n(bias 0)\n(bits 64)\n(code-region 1912 20 1912)\n(code-region 1600 312 1600)\n(code-region 1488 96 1488)\n(code-region 1456 24 1456)\n(code-start 1652)\n(code-start 1600)\n(code-start 1876)\n(entry-point 1600)\n(external-reference 69552 _ITM_deregisterTMCloneTable)\n(external-reference 69560 __cxa_finalize)\n(external-reference 69584 __gmon_start__)\n(external-reference 69600 _ITM_registerTMCloneTable)\n(external-reference 69632 __libc_start_main)\n(external-reference 69640 __cxa_finalize)\n(external-reference 69648 __gmon_start__)\n(external-reference 69656 abort)\n(format elf)\n(is-executable true)\n(is-little-endian true)\n(llvm:base-address 0)\n(llvm:code-entry abort 0 0)\n(llvm:code-entry __cxa_finalize 0 0)\n(llvm:code-entry __libc_start_main 0 0)\n(llvm:code-entry _init 1456 0)\n(llvm:code-entry main 1876 36)\n(llvm:code-entry _start 1600 52)\n(llvm:code-entry abort@GLIBC_2.17 0 0)\n(llvm:code-entry _fini 1912 0)\n(llvm:code-entry __cxa_finalize@GLIBC_2.17 0 0)\n(llvm:code-entry __libc_start_main@GLIBC_2.34 0 0)\n(llvm:code-entry frame_dummy 1872 0)\n(llvm:code-entry __do_global_dtors_aux 1792 0)\n(llvm:code-entry register_tm_clones 1728 0)\n(llvm:code-entry deregister_tm_clones 1680 0)\n(llvm:code-entry call_weak_fn 1652 20)\n(llvm:code-entry .fini 1912 20)\n(llvm:code-entry .text 1600 312)\n(llvm:code-entry .plt 1488 96)\n(llvm:code-entry .init 1456 24)\n(llvm:elf-program-header 08 3512 584)\n(llvm:elf-program-header 07 0 0)\n(llvm:elf-program-header 06 1936 60)\n(llvm:elf-program-header 05 596 68)\n(llvm:elf-program-header 04 3528 480)\n(llvm:elf-program-header 03 3512 632)\n(llvm:elf-program-header 02 0 2180)\n(llvm:elf-program-header 01 568 27)\n(llvm:elf-program-header 00 64 504)\n(llvm:elf-program-header-flags 08 false true false false)\n(llvm:elf-program-header-flags 07 false true true false)\n(llvm:elf-program-header-flags 06 false true false false)\n(llvm:elf-program-header-flags 05 false true false false)\n(llvm:elf-program-header-flags 04 false true true false)\n(llvm:elf-program-header-flags 03 true true true false)\n(llvm:elf-program-header-flags 02 true true false true)\n(llvm:elf-program-header-flags 01 false true false false)\n(llvm:elf-program-header-flags 00 false true false false)\n(llvm:elf-virtual-program-header 08 69048 584)\n(llvm:elf-virtual-program-header 07 0 0)\n(llvm:elf-virtual-program-header 06 1936 60)\n(llvm:elf-virtual-program-header 05 596 68)\n(llvm:elf-virtual-program-header 04 69064 480)\n(llvm:elf-virtual-program-header 03 69048 648)\n(llvm:elf-virtual-program-header 02 0 2180)\n(llvm:elf-virtual-program-header 01 568 27)\n(llvm:elf-virtual-program-header 00 64 504)\n(llvm:entry-point 1600)\n(llvm:name-reference 69656 abort)\n(llvm:name-reference 69648 __gmon_start__)\n(llvm:name-reference 69640 __cxa_finalize)\n(llvm:name-reference 69632 __libc_start_main)\n(llvm:name-reference 69600 _ITM_registerTMCloneTable)\n(llvm:name-reference 69584 __gmon_start__)\n(llvm:name-reference 69560 __cxa_finalize)\n(llvm:name-reference 69552 _ITM_deregisterTMCloneTable)\n(llvm:section-entry .shstrtab 0 259 6975)\n(llvm:section-entry .strtab 0 575 6400)\n(llvm:section-entry .symtab 0 2184 4216)\n(llvm:section-entry .comment 0 71 4144)\n(llvm:section-entry .bss 69680 16 4144)\n(llvm:section-entry .data 69664 16 4128)\n(llvm:section-entry .got.plt 69608 56 4072)\n(llvm:section-entry .got 69544 64 4008)\n(llvm:section-entry .dynamic 69064 480 3528)\n(llvm:section-entry .fini_array 69056 8 3520)\n(llvm:section-entry .init_array 69048 8 3512)\n(llvm:section-entry .eh_frame 2000 180 2000)\n(llvm:section-entry .eh_frame_hdr 1936 60 1936)\n(llvm:section-entry .rodata 1932 4 1932)\n(llvm:section-entry .fini 1912 20 1912)\n(llvm:section-entry .text 1600 312 1600)\n(llvm:section-entry .plt 1488 96 1488)\n(llvm:section-entry .init 1456 24 1456)\n(llvm:section-entry .rela.plt 1360 96 1360)\n(llvm:section-entry .rela.dyn 1120 240 1120)\n(llvm:section-entry .gnu.version_r 1072 48 1072)\n(llvm:section-entry .gnu.version 1054 18 1054)\n(llvm:section-entry .dynstr 912 141 912)\n(llvm:section-entry .dynsym 696 216 696)\n(llvm:section-entry .gnu.hash 664 28 664)\n(llvm:section-entry .note.ABI-tag 632 32 632)\n(llvm:section-entry .note.gnu.build-id 596 36 596)\n(llvm:section-entry .interp 568 27 568)\n(llvm:section-flags .shstrtab true false false)\n(llvm:section-flags .strtab true false false)\n(llvm:section-flags .symtab true false false)\n(llvm:section-flags .comment true false false)\n(llvm:section-flags .bss true true false)\n(llvm:section-flags .data true true false)\n(llvm:section-flags .got.plt true true false)\n(llvm:section-flags .got true true false)\n(llvm:section-flags .dynamic true true false)\n(llvm:section-flags .fini_array true true false)\n(llvm:section-flags .init_array true true false)\n(llvm:section-flags .eh_frame true false false)\n(llvm:section-flags .eh_frame_hdr true false false)\n(llvm:section-flags .rodata true false false)\n(llvm:section-flags .fini true false true)\n(llvm:section-flags .text true false true)\n(llvm:section-flags .plt true false true)\n(llvm:section-flags .init true false true)\n(llvm:section-flags .rela.plt true false false)\n(llvm:section-flags .rela.dyn true false false)\n(llvm:section-flags .gnu.version_r true false false)\n(llvm:section-flags .gnu.version true false false)\n(llvm:section-flags .dynstr true false false)\n(llvm:section-flags .dynsym true false false)\n(llvm:section-flags .gnu.hash true false false)\n(llvm:section-flags .note.ABI-tag true false false)\n(llvm:section-flags .note.gnu.build-id true false false)\n(llvm:section-flags .interp true false false)\n(llvm:symbol-entry abort 0 0 0 0)\n(llvm:symbol-entry __cxa_finalize 0 0 0 0)\n(llvm:symbol-entry __libc_start_main 0 0 0 0)\n(llvm:symbol-entry _init 1456 0 1456 1456)\n(llvm:symbol-entry main 1876 36 1876 1876)\n(llvm:symbol-entry _start 1600 52 1600 1600)\n(llvm:symbol-entry abort@GLIBC_2.17 0 0 0 0)\n(llvm:symbol-entry _fini 1912 0 1912 1912)\n(llvm:symbol-entry __cxa_finalize@GLIBC_2.17 0 0 0 0)\n(llvm:symbol-entry __libc_start_main@GLIBC_2.34 0 0 0 0)\n(llvm:symbol-entry frame_dummy 1872 0 1872 1872)\n(llvm:symbol-entry __do_global_dtors_aux 1792 0 1792 1792)\n(llvm:symbol-entry register_tm_clones 1728 0 1728 1728)\n(llvm:symbol-entry deregister_tm_clones 1680 0 1680 1680)\n(llvm:symbol-entry call_weak_fn 1652 20 1652 1652)\n(mapped 0 2180 0)\n(mapped 69048 632 3512)\n(named-region 0 2180 02)\n(named-region 69048 648 03)\n(named-region 568 27 .interp)\n(named-region 596 36 .note.gnu.build-id)\n(named-region 632 32 .note.ABI-tag)\n(named-region 664 28 .gnu.hash)\n(named-region 696 216 .dynsym)\n(named-region 912 141 .dynstr)\n(named-region 1054 18 .gnu.version)\n(named-region 1072 48 .gnu.version_r)\n(named-region 1120 240 .rela.dyn)\n(named-region 1360 96 .rela.plt)\n(named-region 1456 24 .init)\n(named-region 1488 96 .plt)\n(named-region 1600 312 .text)\n(named-region 1912 20 .fini)\n(named-region 1932 4 .rodata)\n(named-region 1936 60 .eh_frame_hdr)\n(named-region 2000 180 .eh_frame)\n(named-region 69048 8 .init_array)\n(named-region 69056 8 .fini_array)\n(named-region 69064 480 .dynamic)\n(named-region 69544 64 .got)\n(named-region 69608 56 .got.plt)\n(named-region 69664 16 .data)\n(named-region 69680 16 .bss)\n(named-region 0 71 .comment)\n(named-region 0 2184 .symtab)\n(named-region 0 575 .strtab)\n(named-region 0 259 .shstrtab)\n(named-symbol 1652 call_weak_fn)\n(named-symbol 1680 deregister_tm_clones)\n(named-symbol 1728 register_tm_clones)\n(named-symbol 1792 __do_global_dtors_aux)\n(named-symbol 1872 frame_dummy)\n(named-symbol 0 __libc_start_main@GLIBC_2.34)\n(named-symbol 0 __cxa_finalize@GLIBC_2.17)\n(named-symbol 1912 _fini)\n(named-symbol 0 abort@GLIBC_2.17)\n(named-symbol 1600 _start)\n(named-symbol 1876 main)\n(named-symbol 1456 _init)\n(named-symbol 0 __libc_start_main)\n(named-symbol 0 __cxa_finalize)\n(named-symbol 0 abort)\n(require libc.so.6)\n(section 568 27)\n(section 596 36)\n(section 632 32)\n(section 664 28)\n(section 696 216)\n(section 912 141)\n(section 1054 18)\n(section 1072 48)\n(section 1120 240)\n(section 1360 96)\n(section 1456 24)\n(section 1488 96)\n(section 1600 312)\n(section 1912 20)\n(section 1932 4)\n(section 1936 60)\n(section 2000 180)\n(section 69048 8)\n(section 69056 8)\n(section 69064 480)\n(section 69544 64)\n(section 69608 56)\n(section 69664 16)\n(section 69680 16)\n(section 0 71)\n(section 0 2184)\n(section 0 575)\n(section 0 259)\n(segment 0 2180 true false true)\n(segment 69048 648 true true false)\n(subarch v8)\n(symbol-chunk 1652 20 1652)\n(symbol-chunk 1600 52 1600)\n(symbol-chunk 1876 36 1876)\n(symbol-value 1652 1652)\n(symbol-value 1680 1680)\n(symbol-value 1728 1728)\n(symbol-value 1792 1792)\n(symbol-value 1872 1872)\n(symbol-value 1912 1912)\n(symbol-value 1600 1600)\n(symbol-value 1876 1876)\n(symbol-value 1456 1456)\n(symbol-value 0 0)\n(system \"\")\n(vendor \"\")\n"), -Attr("abi-name","\"aarch64-linux-gnu-elf\"")]), -Sections([Section(".shstrtab", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x40\x06\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x48\x1c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x38\x00\x09\x00\x40\x00\x1d\x00\x1c\x00\x06\x00\x00\x00\x04\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x04\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x84\x08\x00\x00\x00\x00\x00\x00\x84\x08\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x01\x00\x00\x00\x06\x00\x00\x00\xb8\x0d\x00\x00\x00\x00\x00\x00\xb8\x0d\x01\x00\x00\x00\x00\x00\xb8\x0d\x01"), -Section(".strtab", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x40\x06\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x48\x1c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x38\x00\x09\x00\x40\x00\x1d\x00\x1c\x00\x06\x00\x00\x00\x04\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x04\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x84\x08\x00\x00\x00\x00\x00\x00\x84\x08\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x01\x00\x00\x00\x06\x00\x00\x00\xb8\x0d\x00\x00\x00\x00\x00\x00\xb8\x0d\x01\x00\x00\x00\x00\x00\xb8\x0d\x01\x00\x00\x00\x00\x00\x78\x02\x00\x00\x00\x00\x00\x00\x88\x02\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x02\x00\x00\x00\x06\x00\x00\x00\xc8\x0d\x00\x00\x00\x00\x00\x00\xc8\x0d\x01\x00\x00\x00\x00\x00\xc8\x0d\x01\x00\x00\x00\x00\x00\xe0\x01\x00\x00\x00\x00\x00\x00\xe0\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x04\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x50\xe5\x74\x64\x04\x00\x00\x00\x90\x07\x00\x00\x00\x00\x00\x00\x90\x07\x00\x00\x00\x00\x00\x00\x90\x07\x00\x00\x00\x00\x00\x00\x3c\x00\x00\x00\x00\x00\x00\x00\x3c\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x51\xe5\x74\x64\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x52\xe5\x74\x64\x04\x00\x00\x00\xb8\x0d\x00\x00\x00\x00\x00\x00\xb8\x0d\x01\x00\x00\x00\x00\x00\xb8\x0d\x01\x00\x00\x00\x00\x00\x48\x02\x00\x00\x00\x00\x00\x00\x48\x02\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x2f\x6c\x69\x62\x2f\x6c\x64"), -Section(".comment", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x40\x06\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x48\x1c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x38\x00\x09\x00\x40\x00\x1d\x00\x1c\x00\x06\x00\x00\x00\x04\x00\x00"), -Section(".interp", 0x238, "\x2f\x6c\x69\x62\x2f\x6c\x64\x2d\x6c\x69\x6e\x75\x78\x2d\x61\x61\x72\x63\x68\x36\x34\x2e\x73\x6f\x2e\x31\x00"), -Section(".note.gnu.build-id", 0x254, "\x04\x00\x00\x00\x14\x00\x00\x00\x03\x00\x00\x00\x47\x4e\x55\x00\x3e\x8d\xe4\xf7\xa9\x35\x1c\x1f\x8d\xad\xb7\x26\xb6\xf3\x53\xd7\xee\x28\x92\x67"), -Section(".note.ABI-tag", 0x278, "\x04\x00\x00\x00\x10\x00\x00\x00\x01\x00\x00\x00\x47\x4e\x55\x00\x00\x00\x00\x00\x03\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00"), -Section(".gnu.hash", 0x298, "\x01\x00\x00\x00\x01\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".dynsym", 0x2B8, "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x0b\x00\xb0\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x17\x00\x20\x10\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x48\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x22\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x22\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x73\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".dynstr", 0x390, "\x00\x5f\x5f\x63\x78\x61\x5f\x66\x69\x6e\x61\x6c\x69\x7a\x65\x00\x5f\x5f\x6c\x69\x62\x63\x5f\x73\x74\x61\x72\x74\x5f\x6d\x61\x69\x6e\x00\x61\x62\x6f\x72\x74\x00\x6c\x69\x62\x63\x2e\x73\x6f\x2e\x36\x00\x47\x4c\x49\x42\x43\x5f\x32\x2e\x31\x37\x00\x47\x4c\x49\x42\x43\x5f\x32\x2e\x33\x34\x00\x5f\x49\x54\x4d\x5f\x64\x65\x72\x65\x67\x69\x73\x74\x65\x72\x54\x4d\x43\x6c\x6f\x6e\x65\x54\x61\x62\x6c\x65\x00\x5f\x5f\x67\x6d\x6f\x6e\x5f\x73\x74\x61\x72\x74\x5f\x5f\x00\x5f\x49\x54\x4d\x5f\x72\x65\x67\x69\x73\x74\x65\x72\x54\x4d\x43\x6c\x6f\x6e\x65\x54\x61\x62\x6c\x65\x00"), -Section(".gnu.version", 0x41E, "\x00\x00\x00\x00\x00\x00\x02\x00\x01\x00\x03\x00\x01\x00\x03\x00\x01\x00"), -Section(".gnu.version_r", 0x430, "\x01\x00\x02\x00\x28\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x97\x91\x96\x06\x00\x00\x03\x00\x32\x00\x00\x00\x10\x00\x00\x00\xb4\x91\x96\x06\x00\x00\x02\x00\x3d\x00\x00\x00\x00\x00\x00\x00"), -Section(".rela.dyn", 0x460, "\xb8\x0d\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x50\x07\x00\x00\x00\x00\x00\x00\xc0\x0d\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\xc0\x0f\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x38\x10\x01\x00\x00\x00\x00\x00\xc8\x0f\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x34\x10\x01\x00\x00\x00\x00\x00\xd8\x0f\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x54\x07\x00\x00\x00\x00\x00\x00\x28\x10\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x28\x10\x01\x00\x00\x00\x00\x00\xb0\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xb8\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xd0\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe0\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".rela.plt", 0x550, "\x00\x10\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x08\x10\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x10\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x18\x10\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".init", 0x5B0, "\x1f\x20\x03\xd5\xfd\x7b\xbf\xa9\xfd\x03\x00\x91\x2e\x00\x00\x94\xfd\x7b\xc1\xa8\xc0\x03\x5f\xd6"), -Section(".plt", 0x5D0, "\xf0\x7b\xbf\xa9\x90\x00\x00\x90\x11\xfe\x47\xf9\x10\xe2\x3f\x91\x20\x02\x1f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x90\x00\x00\xb0\x11\x02\x40\xf9\x10\x02\x00\x91\x20\x02\x1f\xd6\x90\x00\x00\xb0\x11\x06\x40\xf9\x10\x22\x00\x91\x20\x02\x1f\xd6\x90\x00\x00\xb0\x11\x0a\x40\xf9\x10\x42\x00\x91\x20\x02\x1f\xd6\x90\x00\x00\xb0\x11\x0e\x40\xf9\x10\x62\x00\x91\x20\x02\x1f\xd6"), -Section(".text", 0x640, "\x1f\x20\x03\xd5\x1d\x00\x80\xd2\x1e\x00\x80\xd2\xe5\x03\x00\xaa\xe1\x03\x40\xf9\xe2\x23\x00\x91\xe6\x03\x00\x91\x80\x00\x00\x90\x00\xec\x47\xf9\x03\x00\x80\xd2\x04\x00\x80\xd2\xe1\xff\xff\x97\xec\xff\xff\x97\x80\x00\x00\x90\x00\xe8\x47\xf9\x40\x00\x00\xb4\xe4\xff\xff\x17\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x80\x00\x00\xb0\x00\xc0\x00\x91\x81\x00\x00\xb0\x21\xc0\x00\x91\x3f\x00\x00\xeb\xc0\x00\x00\x54\x81\x00\x00\x90\x21\xd8\x47\xf9\x61\x00\x00\xb4\xf0\x03\x01\xaa\x00\x02\x1f\xd6\xc0\x03\x5f\xd6\x80\x00\x00\xb0\x00\xc0\x00\x91\x81\x00\x00\xb0\x21\xc0\x00\x91\x21\x00\x00\xcb\x22\xfc\x7f\xd3\x41\x0c\x81\x8b\x21\xfc\x41\x93\xc1\x00\x00\xb4\x82\x00\x00\x90\x42\xf0\x47\xf9\x62\x00\x00\xb4\xf0\x03\x02\xaa\x00\x02\x1f\xd6\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\xfd\x7b\xbe\xa9\xfd\x03\x00\x91\xf3\x0b\x00\xf9\x93\x00\x00\xb0\x60\xc2\x40\x39\x40\x01\x00\x35\x80\x00\x00\x90\x00\xdc\x47\xf9\x80\x00\x00\xb4\x80\x00\x00\xb0\x00\x14\x40\xf9\xb5\xff\xff\x97\xd8\xff\xff\x97\x20\x00\x80\x52\x60\xc2\x00\x39\xf3\x0b\x40\xf9\xfd\x7b\xc2\xa8\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\xdc\xff\xff\x17\x89\x00\x00\x90\x29\xe5\x47\xf9\x28\x00\x80\x52\x28\x01\x00\xb9\x88\x00\x00\x90\x08\xe1\x47\xf9\xe0\x03\x1f\x2a\x1f\x01\x00\xb9\xc0\x03\x5f\xd6"), -Section(".fini", 0x778, "\x1f\x20\x03\xd5\xfd\x7b\xbf\xa9\xfd\x03\x00\x91\xfd\x7b\xc1\xa8\xc0\x03\x5f\xd6"), -Section(".rodata", 0x78C, "\x01\x00\x02\x00"), -Section(".eh_frame_hdr", 0x790, "\x01\x1b\x03\x3b\x3c\x00\x00\x00\x06\x00\x00\x00\xb0\xfe\xff\xff\x54\x00\x00\x00\x00\xff\xff\xff\x68\x00\x00\x00\x30\xff\xff\xff\x7c\x00\x00\x00\x70\xff\xff\xff\x90\x00\x00\x00\xc0\xff\xff\xff\xb4\x00\x00\x00\xc4\xff\xff\xff\xdc\x00\x00\x00"), -Section(".eh_frame", 0x7D0, "\x10\x00\x00\x00\x00\x00\x00\x00\x01\x7a\x52\x00\x04\x78\x1e\x01\x1b\x0c\x1f\x00\x10\x00\x00\x00\x18\x00\x00\x00\x54\xfe\xff\xff\x34\x00\x00\x00\x00\x41\x07\x1e\x10\x00\x00\x00\x2c\x00\x00\x00\x90\xfe\xff\xff\x30\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x40\x00\x00\x00\xac\xfe\xff\xff\x3c\x00\x00\x00\x00\x00\x00\x00\x20\x00\x00\x00\x54\x00\x00\x00\xd8\xfe\xff\xff\x48\x00\x00\x00\x00\x41\x0e\x20\x9d\x04\x9e\x03\x42\x93\x02\x4e\xde\xdd\xd3\x0e\x00\x00\x00\x00\x10\x00\x00\x00\x78\x00\x00\x00\x04\xff\xff\xff\x04\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x01\x7a\x52\x00\x01\x7c\x1e\x01\x1b\x0c\x1f\x00\x10\x00\x00\x00\x18\x00\x00\x00\xe0\xfe\xff\xff\x24\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".fini_array", 0x10DC0, "\x00\x07\x00\x00\x00\x00\x00\x00"), -Section(".dynamic", 0x10DC8, "\x01\x00\x00\x00\x00\x00\x00\x00\x28\x00\x00\x00\x00\x00\x00\x00\x0c\x00\x00\x00\x00\x00\x00\x00\xb0\x05\x00\x00\x00\x00\x00\x00\x0d\x00\x00\x00\x00\x00\x00\x00\x78\x07\x00\x00\x00\x00\x00\x00\x19\x00\x00\x00\x00\x00\x00\x00\xb8\x0d\x01\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x1a\x00\x00\x00\x00\x00\x00\x00\xc0\x0d\x01\x00\x00\x00\x00\x00\x1c\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\xf5\xfe\xff\x6f\x00\x00\x00\x00\x98\x02\x00\x00\x00\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x90\x03\x00\x00\x00\x00\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\xb8\x02\x00\x00\x00\x00\x00\x00\x0a\x00\x00\x00\x00\x00\x00\x00\x8d\x00\x00\x00\x00\x00\x00\x00\x0b\x00\x00\x00\x00\x00\x00\x00\x18\x00\x00\x00\x00\x00\x00\x00\x15\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\xe8\x0f\x01\x00\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x60\x00\x00\x00\x00\x00\x00\x00\x14\x00\x00\x00\x00\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x17\x00\x00\x00\x00\x00\x00\x00\x50\x05\x00\x00\x00\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x60\x04\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\xf0\x00\x00\x00\x00\x00\x00\x00\x09\x00\x00\x00\x00\x00\x00\x00\x18\x00\x00\x00\x00\x00\x00\x00\xfb\xff\xff\x6f\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\xfe\xff\xff\x6f\x00\x00\x00\x00\x30\x04\x00\x00\x00\x00\x00\x00\xff\xff\xff\x6f\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\xf0\xff\xff\x6f\x00\x00\x00\x00\x1e\x04\x00\x00\x00\x00\x00\x00\xf9\xff\xff\x6f\x00\x00\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".init_array", 0x10DB8, "\x50\x07\x00\x00\x00\x00\x00\x00"), -Section(".got", 0x10FA8, "\xc8\x0d\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x38\x10\x01\x00\x00\x00\x00\x00\x34\x10\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x54\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".got.plt", 0x10FE8, "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xd0\x05\x00\x00\x00\x00\x00\x00\xd0\x05\x00\x00\x00\x00\x00\x00\xd0\x05\x00\x00\x00\x00\x00\x00\xd0\x05\x00\x00\x00\x00\x00\x00"), -Section(".data", 0x11020, "\x00\x00\x00\x00\x00\x00\x00\x00\x28\x10\x01\x00\x00\x00\x00\x00")]), -Memmap([Annotation(Region(0x0,0x883), Attr("segment","02 0 2180")), -Annotation(Region(0x640,0x673), Attr("symbol","\"_start\"")), -Annotation(Region(0x0,0x102), Attr("section","\".shstrtab\"")), -Annotation(Region(0x0,0x23E), Attr("section","\".strtab\"")), -Annotation(Region(0x0,0x46), Attr("section","\".comment\"")), -Annotation(Region(0x238,0x252), Attr("section","\".interp\"")), -Annotation(Region(0x254,0x277), Attr("section","\".note.gnu.build-id\"")), -Annotation(Region(0x278,0x297), Attr("section","\".note.ABI-tag\"")), -Annotation(Region(0x298,0x2B3), Attr("section","\".gnu.hash\"")), -Annotation(Region(0x2B8,0x38F), Attr("section","\".dynsym\"")), -Annotation(Region(0x390,0x41C), Attr("section","\".dynstr\"")), -Annotation(Region(0x41E,0x42F), Attr("section","\".gnu.version\"")), -Annotation(Region(0x430,0x45F), Attr("section","\".gnu.version_r\"")), -Annotation(Region(0x460,0x54F), Attr("section","\".rela.dyn\"")), -Annotation(Region(0x550,0x5AF), Attr("section","\".rela.plt\"")), -Annotation(Region(0x5B0,0x5C7), Attr("section","\".init\"")), -Annotation(Region(0x5D0,0x62F), Attr("section","\".plt\"")), -Annotation(Region(0x5B0,0x5C7), Attr("code-region","()")), -Annotation(Region(0x5D0,0x62F), Attr("code-region","()")), -Annotation(Region(0x640,0x673), Attr("symbol-info","_start 0x640 52")), -Annotation(Region(0x674,0x687), Attr("symbol","\"call_weak_fn\"")), -Annotation(Region(0x674,0x687), Attr("symbol-info","call_weak_fn 0x674 20")), -Annotation(Region(0x640,0x777), Attr("section","\".text\"")), -Annotation(Region(0x640,0x777), Attr("code-region","()")), -Annotation(Region(0x754,0x777), Attr("symbol","\"main\"")), -Annotation(Region(0x754,0x777), Attr("symbol-info","main 0x754 36")), -Annotation(Region(0x778,0x78B), Attr("section","\".fini\"")), -Annotation(Region(0x778,0x78B), Attr("code-region","()")), -Annotation(Region(0x78C,0x78F), Attr("section","\".rodata\"")), -Annotation(Region(0x790,0x7CB), Attr("section","\".eh_frame_hdr\"")), -Annotation(Region(0x7D0,0x883), Attr("section","\".eh_frame\"")), -Annotation(Region(0x10DB8,0x1102F), Attr("segment","03 0x10DB8 648")), -Annotation(Region(0x10DC0,0x10DC7), Attr("section","\".fini_array\"")), -Annotation(Region(0x10DC8,0x10FA7), Attr("section","\".dynamic\"")), -Annotation(Region(0x10DB8,0x10DBF), Attr("section","\".init_array\"")), -Annotation(Region(0x10FA8,0x10FE7), Attr("section","\".got\"")), -Annotation(Region(0x10FE8,0x1101F), Attr("section","\".got.plt\"")), -Annotation(Region(0x11020,0x1102F), Attr("section","\".data\""))]), -Program(Tid(1_357, "%0000054d"), Attrs([]), - Subs([Sub(Tid(1_307, "@__cxa_finalize"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x600"), -Attr("stub","()")]), "__cxa_finalize", Args([Arg(Tid(1_358, "%0000054e"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("__cxa_finalize_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(827, "@__cxa_finalize"), - Attrs([Attr("address","0x600")]), Phis([]), -Defs([Def(Tid(1_075, "%00000433"), Attrs([Attr("address","0x600"), -Attr("insn","adrp x16, #69632")]), Var("R16",Imm(64)), Int(69632,64)), -Def(Tid(1_082, "%0000043a"), Attrs([Attr("address","0x604"), -Attr("insn","ldr x17, [x16, #0x8]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(1_088, "%00000440"), Attrs([Attr("address","0x608"), -Attr("insn","add x16, x16, #0x8")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(8,64)))]), Jmps([Call(Tid(1_093, "%00000445"), - Attrs([Attr("address","0x60C"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), -Sub(Tid(1_308, "@__do_global_dtors_aux"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x700")]), - "__do_global_dtors_aux", Args([Arg(Tid(1_359, "%0000054f"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("__do_global_dtors_aux_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(626, "@__do_global_dtors_aux"), - Attrs([Attr("address","0x700")]), Phis([]), Defs([Def(Tid(630, "%00000276"), - Attrs([Attr("address","0x700"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("#3",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(18446744073709551584,64))), -Def(Tid(636, "%0000027c"), Attrs([Attr("address","0x700"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("#3",Imm(64)),Var("R29",Imm(64)),LittleEndian(),64)), -Def(Tid(642, "%00000282"), Attrs([Attr("address","0x700"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("#3",Imm(64)),Int(8,64)),Var("R30",Imm(64)),LittleEndian(),64)), -Def(Tid(646, "%00000286"), Attrs([Attr("address","0x700"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("R31",Imm(64)), -Var("#3",Imm(64))), Def(Tid(652, "%0000028c"), - Attrs([Attr("address","0x704"), Attr("insn","mov x29, sp")]), - Var("R29",Imm(64)), Var("R31",Imm(64))), Def(Tid(660, "%00000294"), - Attrs([Attr("address","0x708"), Attr("insn","str x19, [sp, #0x10]")]), - Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(16,64)),Var("R19",Imm(64)),LittleEndian(),64)), -Def(Tid(665, "%00000299"), Attrs([Attr("address","0x70C"), -Attr("insn","adrp x19, #69632")]), Var("R19",Imm(64)), Int(69632,64)), -Def(Tid(672, "%000002a0"), Attrs([Attr("address","0x710"), -Attr("insn","ldrb w0, [x19, #0x30]")]), Var("R0",Imm(64)), -UNSIGNED(64,Load(Var("mem",Mem(64,8)),PLUS(Var("R19",Imm(64)),Int(48,64)),LittleEndian(),8)))]), -Jmps([Goto(Tid(679, "%000002a7"), Attrs([Attr("address","0x714"), -Attr("insn","cbnz w0, #0x28")]), - NEQ(Extract(31,0,Var("R0",Imm(64))),Int(0,32)), -Direct(Tid(677, "%000002a5"))), Goto(Tid(1_347, "%00000543"), Attrs([]), - Int(1,1), Direct(Tid(772, "%00000304")))])), Blk(Tid(772, "%00000304"), - Attrs([Attr("address","0x718")]), Phis([]), Defs([Def(Tid(775, "%00000307"), - Attrs([Attr("address","0x718"), Attr("insn","adrp x0, #65536")]), - Var("R0",Imm(64)), Int(65536,64)), Def(Tid(782, "%0000030e"), - Attrs([Attr("address","0x71C"), Attr("insn","ldr x0, [x0, #0xfb8]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(4024,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(788, "%00000314"), Attrs([Attr("address","0x720"), -Attr("insn","cbz x0, #0x10")]), EQ(Var("R0",Imm(64)),Int(0,64)), -Direct(Tid(786, "%00000312"))), Goto(Tid(1_348, "%00000544"), Attrs([]), - Int(1,1), Direct(Tid(811, "%0000032b")))])), Blk(Tid(811, "%0000032b"), - Attrs([Attr("address","0x724")]), Phis([]), Defs([Def(Tid(814, "%0000032e"), - Attrs([Attr("address","0x724"), Attr("insn","adrp x0, #69632")]), - Var("R0",Imm(64)), Int(69632,64)), Def(Tid(821, "%00000335"), - Attrs([Attr("address","0x728"), Attr("insn","ldr x0, [x0, #0x28]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(40,64)),LittleEndian(),64)), -Def(Tid(826, "%0000033a"), Attrs([Attr("address","0x72C"), -Attr("insn","bl #-0x12c")]), Var("R30",Imm(64)), Int(1840,64))]), -Jmps([Call(Tid(829, "%0000033d"), Attrs([Attr("address","0x72C"), -Attr("insn","bl #-0x12c")]), Int(1,1), -(Direct(Tid(1_307, "@__cxa_finalize")),Direct(Tid(786, "%00000312"))))])), -Blk(Tid(786, "%00000312"), Attrs([Attr("address","0x730")]), Phis([]), -Defs([Def(Tid(794, "%0000031a"), Attrs([Attr("address","0x730"), -Attr("insn","bl #-0xa0")]), Var("R30",Imm(64)), Int(1844,64))]), -Jmps([Call(Tid(796, "%0000031c"), Attrs([Attr("address","0x730"), -Attr("insn","bl #-0xa0")]), Int(1,1), -(Direct(Tid(1_321, "@deregister_tm_clones")),Direct(Tid(798, "%0000031e"))))])), -Blk(Tid(798, "%0000031e"), Attrs([Attr("address","0x734")]), Phis([]), -Defs([Def(Tid(801, "%00000321"), Attrs([Attr("address","0x734"), -Attr("insn","mov w0, #0x1")]), Var("R0",Imm(64)), Int(1,64)), -Def(Tid(809, "%00000329"), Attrs([Attr("address","0x738"), -Attr("insn","strb w0, [x19, #0x30]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R19",Imm(64)),Int(48,64)),Extract(7,0,Var("R0",Imm(64))),LittleEndian(),8))]), -Jmps([Goto(Tid(1_349, "%00000545"), Attrs([]), Int(1,1), -Direct(Tid(677, "%000002a5")))])), Blk(Tid(677, "%000002a5"), - Attrs([Attr("address","0x73C")]), Phis([]), Defs([Def(Tid(687, "%000002af"), - Attrs([Attr("address","0x73C"), Attr("insn","ldr x19, [sp, #0x10]")]), - Var("R19",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(16,64)),LittleEndian(),64)), -Def(Tid(694, "%000002b6"), Attrs([Attr("address","0x740"), -Attr("insn","ldp x29, x30, [sp], #0x20")]), Var("R29",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(699, "%000002bb"), Attrs([Attr("address","0x740"), -Attr("insn","ldp x29, x30, [sp], #0x20")]), Var("R30",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(703, "%000002bf"), Attrs([Attr("address","0x740"), -Attr("insn","ldp x29, x30, [sp], #0x20")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(32,64)))]), Jmps([Call(Tid(708, "%000002c4"), - Attrs([Attr("address","0x744"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), Sub(Tid(1_312, "@__libc_start_main"), - Attrs([Attr("c.proto","signed (*)(signed (*)(signed , char** , char** );* main, signed , char** , \nvoid* auxv)"), -Attr("address","0x5F0"), Attr("stub","()")]), "__libc_start_main", - Args([Arg(Tid(1_360, "%00000550"), - Attrs([Attr("c.layout","**[ : 64]"), -Attr("c.data","Top:u64 ptr ptr"), -Attr("c.type","signed (*)(signed , char** , char** );*")]), - Var("__libc_start_main_main",Imm(64)), Var("R0",Imm(64)), In()), -Arg(Tid(1_361, "%00000551"), Attrs([Attr("c.layout","[signed : 32]"), -Attr("c.data","Top:u32"), Attr("c.type","signed")]), - Var("__libc_start_main_arg2",Imm(32)), LOW(32,Var("R1",Imm(64))), In()), -Arg(Tid(1_362, "%00000552"), Attrs([Attr("c.layout","**[char : 8]"), -Attr("c.data","Top:u8 ptr ptr"), Attr("c.type","char**")]), - Var("__libc_start_main_arg3",Imm(64)), Var("R2",Imm(64)), Both()), -Arg(Tid(1_363, "%00000553"), Attrs([Attr("c.layout","*[ : 8]"), -Attr("c.data","{} ptr"), Attr("c.type","void*")]), - Var("__libc_start_main_auxv",Imm(64)), Var("R3",Imm(64)), Both()), -Arg(Tid(1_364, "%00000554"), Attrs([Attr("c.layout","[signed : 32]"), -Attr("c.data","Top:u32"), Attr("c.type","signed")]), - Var("__libc_start_main_result",Imm(32)), LOW(32,Var("R0",Imm(64))), -Out())]), Blks([Blk(Tid(459, "@__libc_start_main"), - Attrs([Attr("address","0x5F0")]), Phis([]), -Defs([Def(Tid(1_053, "%0000041d"), Attrs([Attr("address","0x5F0"), -Attr("insn","adrp x16, #69632")]), Var("R16",Imm(64)), Int(69632,64)), -Def(Tid(1_060, "%00000424"), Attrs([Attr("address","0x5F4"), -Attr("insn","ldr x17, [x16]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R16",Imm(64)),LittleEndian(),64)), -Def(Tid(1_066, "%0000042a"), Attrs([Attr("address","0x5F8"), -Attr("insn","add x16, x16, #0x0")]), Var("R16",Imm(64)), -Var("R16",Imm(64)))]), Jmps([Call(Tid(1_071, "%0000042f"), - Attrs([Attr("address","0x5FC"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), Sub(Tid(1_313, "@_fini"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x778")]), - "_fini", Args([Arg(Tid(1_365, "%00000555"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("_fini_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(31, "@_fini"), - Attrs([Attr("address","0x778")]), Phis([]), Defs([Def(Tid(37, "%00000025"), - Attrs([Attr("address","0x77C"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("#0",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(18446744073709551600,64))), -Def(Tid(43, "%0000002b"), Attrs([Attr("address","0x77C"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("#0",Imm(64)),Var("R29",Imm(64)),LittleEndian(),64)), -Def(Tid(49, "%00000031"), Attrs([Attr("address","0x77C"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("#0",Imm(64)),Int(8,64)),Var("R30",Imm(64)),LittleEndian(),64)), -Def(Tid(53, "%00000035"), Attrs([Attr("address","0x77C"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("R31",Imm(64)), -Var("#0",Imm(64))), Def(Tid(59, "%0000003b"), Attrs([Attr("address","0x780"), -Attr("insn","mov x29, sp")]), Var("R29",Imm(64)), Var("R31",Imm(64))), -Def(Tid(66, "%00000042"), Attrs([Attr("address","0x784"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R29",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(71, "%00000047"), Attrs([Attr("address","0x784"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R30",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(75, "%0000004b"), Attrs([Attr("address","0x784"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(16,64)))]), Jmps([Call(Tid(80, "%00000050"), - Attrs([Attr("address","0x788"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), Sub(Tid(1_314, "@_init"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x5B0")]), - "_init", Args([Arg(Tid(1_366, "%00000556"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("_init_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(1_165, "@_init"), - Attrs([Attr("address","0x5B0")]), Phis([]), -Defs([Def(Tid(1_171, "%00000493"), Attrs([Attr("address","0x5B4"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("#5",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(18446744073709551600,64))), -Def(Tid(1_177, "%00000499"), Attrs([Attr("address","0x5B4"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("#5",Imm(64)),Var("R29",Imm(64)),LittleEndian(),64)), -Def(Tid(1_183, "%0000049f"), Attrs([Attr("address","0x5B4"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("#5",Imm(64)),Int(8,64)),Var("R30",Imm(64)),LittleEndian(),64)), -Def(Tid(1_187, "%000004a3"), Attrs([Attr("address","0x5B4"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("R31",Imm(64)), -Var("#5",Imm(64))), Def(Tid(1_193, "%000004a9"), - Attrs([Attr("address","0x5B8"), Attr("insn","mov x29, sp")]), - Var("R29",Imm(64)), Var("R31",Imm(64))), Def(Tid(1_198, "%000004ae"), - Attrs([Attr("address","0x5BC"), Attr("insn","bl #0xb8")]), - Var("R30",Imm(64)), Int(1472,64))]), Jmps([Call(Tid(1_200, "%000004b0"), - Attrs([Attr("address","0x5BC"), Attr("insn","bl #0xb8")]), Int(1,1), -(Direct(Tid(1_319, "@call_weak_fn")),Direct(Tid(1_202, "%000004b2"))))])), -Blk(Tid(1_202, "%000004b2"), Attrs([Attr("address","0x5C0")]), Phis([]), -Defs([Def(Tid(1_207, "%000004b7"), Attrs([Attr("address","0x5C0"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R29",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(1_212, "%000004bc"), Attrs([Attr("address","0x5C0"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R30",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(1_216, "%000004c0"), Attrs([Attr("address","0x5C0"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(16,64)))]), Jmps([Call(Tid(1_221, "%000004c5"), - Attrs([Attr("address","0x5C4"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), Sub(Tid(1_315, "@_start"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x640"), -Attr("entry-point","()")]), "_start", Args([Arg(Tid(1_367, "%00000557"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("_start_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(396, "@_start"), - Attrs([Attr("address","0x640")]), Phis([]), Defs([Def(Tid(401, "%00000191"), - Attrs([Attr("address","0x644"), Attr("insn","mov x29, #0x0")]), - Var("R29",Imm(64)), Int(0,64)), Def(Tid(406, "%00000196"), - Attrs([Attr("address","0x648"), Attr("insn","mov x30, #0x0")]), - Var("R30",Imm(64)), Int(0,64)), Def(Tid(412, "%0000019c"), - Attrs([Attr("address","0x64C"), Attr("insn","mov x5, x0")]), - Var("R5",Imm(64)), Var("R0",Imm(64))), Def(Tid(419, "%000001a3"), - Attrs([Attr("address","0x650"), Attr("insn","ldr x1, [sp]")]), - Var("R1",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(425, "%000001a9"), Attrs([Attr("address","0x654"), -Attr("insn","add x2, sp, #0x8")]), Var("R2",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(8,64))), Def(Tid(431, "%000001af"), - Attrs([Attr("address","0x658"), Attr("insn","mov x6, sp")]), - Var("R6",Imm(64)), Var("R31",Imm(64))), Def(Tid(436, "%000001b4"), - Attrs([Attr("address","0x65C"), Attr("insn","adrp x0, #65536")]), - Var("R0",Imm(64)), Int(65536,64)), Def(Tid(443, "%000001bb"), - Attrs([Attr("address","0x660"), Attr("insn","ldr x0, [x0, #0xfd8]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(4056,64)),LittleEndian(),64)), -Def(Tid(448, "%000001c0"), Attrs([Attr("address","0x664"), -Attr("insn","mov x3, #0x0")]), Var("R3",Imm(64)), Int(0,64)), -Def(Tid(453, "%000001c5"), Attrs([Attr("address","0x668"), -Attr("insn","mov x4, #0x0")]), Var("R4",Imm(64)), Int(0,64)), -Def(Tid(458, "%000001ca"), Attrs([Attr("address","0x66C"), -Attr("insn","bl #-0x7c")]), Var("R30",Imm(64)), Int(1648,64))]), -Jmps([Call(Tid(461, "%000001cd"), Attrs([Attr("address","0x66C"), -Attr("insn","bl #-0x7c")]), Int(1,1), -(Direct(Tid(1_312, "@__libc_start_main")),Direct(Tid(463, "%000001cf"))))])), -Blk(Tid(463, "%000001cf"), Attrs([Attr("address","0x670")]), Phis([]), -Defs([Def(Tid(466, "%000001d2"), Attrs([Attr("address","0x670"), -Attr("insn","bl #-0x50")]), Var("R30",Imm(64)), Int(1652,64))]), -Jmps([Call(Tid(469, "%000001d5"), Attrs([Attr("address","0x670"), -Attr("insn","bl #-0x50")]), Int(1,1), -(Direct(Tid(1_318, "@abort")),Direct(Tid(1_350, "%00000546"))))])), -Blk(Tid(1_350, "%00000546"), Attrs([]), Phis([]), Defs([]), -Jmps([Call(Tid(1_351, "%00000547"), Attrs([]), Int(1,1), -(Direct(Tid(1_319, "@call_weak_fn")),))]))])), Sub(Tid(1_318, "@abort"), - Attrs([Attr("noreturn","()"), Attr("c.proto","void (*)(void)"), -Attr("address","0x620"), Attr("stub","()")]), "abort", Args([]), -Blks([Blk(Tid(467, "@abort"), Attrs([Attr("address","0x620")]), Phis([]), -Defs([Def(Tid(1_119, "%0000045f"), Attrs([Attr("address","0x620"), -Attr("insn","adrp x16, #69632")]), Var("R16",Imm(64)), Int(69632,64)), -Def(Tid(1_126, "%00000466"), Attrs([Attr("address","0x624"), -Attr("insn","ldr x17, [x16, #0x18]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(24,64)),LittleEndian(),64)), -Def(Tid(1_132, "%0000046c"), Attrs([Attr("address","0x628"), -Attr("insn","add x16, x16, #0x18")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(24,64)))]), Jmps([Call(Tid(1_137, "%00000471"), - Attrs([Attr("address","0x62C"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), Sub(Tid(1_319, "@call_weak_fn"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x674")]), - "call_weak_fn", Args([Arg(Tid(1_368, "%00000558"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("call_weak_fn_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(471, "@call_weak_fn"), - Attrs([Attr("address","0x674")]), Phis([]), Defs([Def(Tid(474, "%000001da"), - Attrs([Attr("address","0x674"), Attr("insn","adrp x0, #65536")]), - Var("R0",Imm(64)), Int(65536,64)), Def(Tid(481, "%000001e1"), - Attrs([Attr("address","0x678"), Attr("insn","ldr x0, [x0, #0xfd0]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(4048,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(487, "%000001e7"), Attrs([Attr("address","0x67C"), -Attr("insn","cbz x0, #0x8")]), EQ(Var("R0",Imm(64)),Int(0,64)), -Direct(Tid(485, "%000001e5"))), Goto(Tid(1_352, "%00000548"), Attrs([]), - Int(1,1), Direct(Tid(891, "%0000037b")))])), Blk(Tid(485, "%000001e5"), - Attrs([Attr("address","0x684")]), Phis([]), Defs([]), -Jmps([Call(Tid(493, "%000001ed"), Attrs([Attr("address","0x684"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))])), -Blk(Tid(891, "%0000037b"), Attrs([Attr("address","0x680")]), Phis([]), -Defs([]), Jmps([Goto(Tid(894, "%0000037e"), Attrs([Attr("address","0x680"), -Attr("insn","b #-0x70")]), Int(1,1), Direct(Tid(892, "@__gmon_start__")))])), -Blk(Tid(892, "@__gmon_start__"), Attrs([Attr("address","0x610")]), Phis([]), -Defs([Def(Tid(1_097, "%00000449"), Attrs([Attr("address","0x610"), -Attr("insn","adrp x16, #69632")]), Var("R16",Imm(64)), Int(69632,64)), -Def(Tid(1_104, "%00000450"), Attrs([Attr("address","0x614"), -Attr("insn","ldr x17, [x16, #0x10]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(16,64)),LittleEndian(),64)), -Def(Tid(1_110, "%00000456"), Attrs([Attr("address","0x618"), -Attr("insn","add x16, x16, #0x10")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(16,64)))]), Jmps([Call(Tid(1_115, "%0000045b"), - Attrs([Attr("address","0x61C"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), -Sub(Tid(1_321, "@deregister_tm_clones"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x690")]), - "deregister_tm_clones", Args([Arg(Tid(1_369, "%00000559"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("deregister_tm_clones_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(499, "@deregister_tm_clones"), - Attrs([Attr("address","0x690")]), Phis([]), Defs([Def(Tid(502, "%000001f6"), - Attrs([Attr("address","0x690"), Attr("insn","adrp x0, #69632")]), - Var("R0",Imm(64)), Int(69632,64)), Def(Tid(508, "%000001fc"), - Attrs([Attr("address","0x694"), Attr("insn","add x0, x0, #0x30")]), - Var("R0",Imm(64)), PLUS(Var("R0",Imm(64)),Int(48,64))), -Def(Tid(513, "%00000201"), Attrs([Attr("address","0x698"), -Attr("insn","adrp x1, #69632")]), Var("R1",Imm(64)), Int(69632,64)), -Def(Tid(519, "%00000207"), Attrs([Attr("address","0x69C"), -Attr("insn","add x1, x1, #0x30")]), Var("R1",Imm(64)), -PLUS(Var("R1",Imm(64)),Int(48,64))), Def(Tid(525, "%0000020d"), - Attrs([Attr("address","0x6A0"), Attr("insn","cmp x1, x0")]), - Var("#1",Imm(64)), NOT(Var("R0",Imm(64)))), Def(Tid(530, "%00000212"), - Attrs([Attr("address","0x6A0"), Attr("insn","cmp x1, x0")]), - Var("#2",Imm(64)), PLUS(Var("R1",Imm(64)),NOT(Var("R0",Imm(64))))), -Def(Tid(536, "%00000218"), Attrs([Attr("address","0x6A0"), -Attr("insn","cmp x1, x0")]), Var("VF",Imm(1)), -NEQ(SIGNED(65,PLUS(Var("#2",Imm(64)),Int(1,64))),PLUS(PLUS(SIGNED(65,Var("R1",Imm(64))),SIGNED(65,Var("#1",Imm(64)))),Int(1,65)))), -Def(Tid(542, "%0000021e"), Attrs([Attr("address","0x6A0"), -Attr("insn","cmp x1, x0")]), Var("CF",Imm(1)), -NEQ(UNSIGNED(65,PLUS(Var("#2",Imm(64)),Int(1,64))),PLUS(PLUS(UNSIGNED(65,Var("R1",Imm(64))),UNSIGNED(65,Var("#1",Imm(64)))),Int(1,65)))), -Def(Tid(546, "%00000222"), Attrs([Attr("address","0x6A0"), -Attr("insn","cmp x1, x0")]), Var("ZF",Imm(1)), -EQ(PLUS(Var("#2",Imm(64)),Int(1,64)),Int(0,64))), Def(Tid(550, "%00000226"), - Attrs([Attr("address","0x6A0"), Attr("insn","cmp x1, x0")]), - Var("NF",Imm(1)), Extract(63,63,PLUS(Var("#2",Imm(64)),Int(1,64))))]), -Jmps([Goto(Tid(556, "%0000022c"), Attrs([Attr("address","0x6A4"), -Attr("insn","b.eq #0x18")]), EQ(Var("ZF",Imm(1)),Int(1,1)), -Direct(Tid(554, "%0000022a"))), Goto(Tid(1_353, "%00000549"), Attrs([]), - Int(1,1), Direct(Tid(861, "%0000035d")))])), Blk(Tid(861, "%0000035d"), - Attrs([Attr("address","0x6A8")]), Phis([]), Defs([Def(Tid(864, "%00000360"), - Attrs([Attr("address","0x6A8"), Attr("insn","adrp x1, #65536")]), - Var("R1",Imm(64)), Int(65536,64)), Def(Tid(871, "%00000367"), - Attrs([Attr("address","0x6AC"), Attr("insn","ldr x1, [x1, #0xfb0]")]), - Var("R1",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R1",Imm(64)),Int(4016,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(876, "%0000036c"), Attrs([Attr("address","0x6B0"), -Attr("insn","cbz x1, #0xc")]), EQ(Var("R1",Imm(64)),Int(0,64)), -Direct(Tid(554, "%0000022a"))), Goto(Tid(1_354, "%0000054a"), Attrs([]), - Int(1,1), Direct(Tid(880, "%00000370")))])), Blk(Tid(554, "%0000022a"), - Attrs([Attr("address","0x6BC")]), Phis([]), Defs([]), -Jmps([Call(Tid(562, "%00000232"), Attrs([Attr("address","0x6BC"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))])), -Blk(Tid(880, "%00000370"), Attrs([Attr("address","0x6B4")]), Phis([]), -Defs([Def(Tid(884, "%00000374"), Attrs([Attr("address","0x6B4"), -Attr("insn","mov x16, x1")]), Var("R16",Imm(64)), Var("R1",Imm(64)))]), -Jmps([Call(Tid(889, "%00000379"), Attrs([Attr("address","0x6B8"), -Attr("insn","br x16")]), Int(1,1), (Indirect(Var("R16",Imm(64))),))]))])), -Sub(Tid(1_324, "@frame_dummy"), Attrs([Attr("c.proto","signed (*)(void)"), -Attr("address","0x750")]), "frame_dummy", Args([Arg(Tid(1_370, "%0000055a"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("frame_dummy_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(714, "@frame_dummy"), - Attrs([Attr("address","0x750")]), Phis([]), Defs([]), -Jmps([Call(Tid(716, "%000002cc"), Attrs([Attr("address","0x750"), -Attr("insn","b #-0x90")]), Int(1,1), -(Direct(Tid(1_326, "@register_tm_clones")),))]))])), Sub(Tid(1_325, "@main"), - Attrs([Attr("c.proto","signed (*)(signed argc, const char** argv)"), -Attr("address","0x754")]), "main", Args([Arg(Tid(1_371, "%0000055b"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("main_argc",Imm(32)), -LOW(32,Var("R0",Imm(64))), In()), Arg(Tid(1_372, "%0000055c"), - Attrs([Attr("c.layout","**[char : 8]"), Attr("c.data","Top:u8 ptr ptr"), -Attr("c.type"," const char**")]), Var("main_argv",Imm(64)), -Var("R1",Imm(64)), Both()), Arg(Tid(1_373, "%0000055d"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("main_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(718, "@main"), - Attrs([Attr("address","0x754")]), Phis([]), Defs([Def(Tid(721, "%000002d1"), - Attrs([Attr("address","0x754"), Attr("insn","adrp x9, #65536")]), - Var("R9",Imm(64)), Int(65536,64)), Def(Tid(728, "%000002d8"), - Attrs([Attr("address","0x758"), Attr("insn","ldr x9, [x9, #0xfc8]")]), - Var("R9",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R9",Imm(64)),Int(4040,64)),LittleEndian(),64)), -Def(Tid(733, "%000002dd"), Attrs([Attr("address","0x75C"), -Attr("insn","mov w8, #0x1")]), Var("R8",Imm(64)), Int(1,64)), -Def(Tid(741, "%000002e5"), Attrs([Attr("address","0x760"), -Attr("insn","str w8, [x9]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("R9",Imm(64)),Extract(31,0,Var("R8",Imm(64))),LittleEndian(),32)), -Def(Tid(746, "%000002ea"), Attrs([Attr("address","0x764"), -Attr("insn","adrp x8, #65536")]), Var("R8",Imm(64)), Int(65536,64)), -Def(Tid(753, "%000002f1"), Attrs([Attr("address","0x768"), -Attr("insn","ldr x8, [x8, #0xfc0]")]), Var("R8",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R8",Imm(64)),Int(4032,64)),LittleEndian(),64)), -Def(Tid(758, "%000002f6"), Attrs([Attr("address","0x76C"), -Attr("insn","mov w0, wzr")]), Var("R0",Imm(64)), Int(0,64)), -Def(Tid(765, "%000002fd"), Attrs([Attr("address","0x770"), -Attr("insn","str wzr, [x8]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("R8",Imm(64)),Int(0,32),LittleEndian(),32))]), -Jmps([Call(Tid(770, "%00000302"), Attrs([Attr("address","0x774"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))]))])), -Sub(Tid(1_326, "@register_tm_clones"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x6C0")]), - "register_tm_clones", Args([Arg(Tid(1_374, "%0000055e"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("register_tm_clones_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(564, "@register_tm_clones"), Attrs([Attr("address","0x6C0")]), - Phis([]), Defs([Def(Tid(567, "%00000237"), Attrs([Attr("address","0x6C0"), -Attr("insn","adrp x0, #69632")]), Var("R0",Imm(64)), Int(69632,64)), -Def(Tid(573, "%0000023d"), Attrs([Attr("address","0x6C4"), -Attr("insn","add x0, x0, #0x30")]), Var("R0",Imm(64)), -PLUS(Var("R0",Imm(64)),Int(48,64))), Def(Tid(578, "%00000242"), - Attrs([Attr("address","0x6C8"), Attr("insn","adrp x1, #69632")]), - Var("R1",Imm(64)), Int(69632,64)), Def(Tid(584, "%00000248"), - Attrs([Attr("address","0x6CC"), Attr("insn","add x1, x1, #0x30")]), - Var("R1",Imm(64)), PLUS(Var("R1",Imm(64)),Int(48,64))), -Def(Tid(591, "%0000024f"), Attrs([Attr("address","0x6D0"), -Attr("insn","sub x1, x1, x0")]), Var("R1",Imm(64)), -PLUS(PLUS(Var("R1",Imm(64)),NOT(Var("R0",Imm(64)))),Int(1,64))), -Def(Tid(597, "%00000255"), Attrs([Attr("address","0x6D4"), -Attr("insn","lsr x2, x1, #63")]), Var("R2",Imm(64)), -Concat(Int(0,63),Extract(63,63,Var("R1",Imm(64))))), -Def(Tid(604, "%0000025c"), Attrs([Attr("address","0x6D8"), -Attr("insn","add x1, x2, x1, asr #3")]), Var("R1",Imm(64)), -PLUS(Var("R2",Imm(64)),ARSHIFT(Var("R1",Imm(64)),Int(3,3)))), -Def(Tid(610, "%00000262"), Attrs([Attr("address","0x6DC"), -Attr("insn","asr x1, x1, #1")]), Var("R1",Imm(64)), -SIGNED(64,Extract(63,1,Var("R1",Imm(64)))))]), -Jmps([Goto(Tid(616, "%00000268"), Attrs([Attr("address","0x6E0"), -Attr("insn","cbz x1, #0x18")]), EQ(Var("R1",Imm(64)),Int(0,64)), -Direct(Tid(614, "%00000266"))), Goto(Tid(1_355, "%0000054b"), Attrs([]), - Int(1,1), Direct(Tid(831, "%0000033f")))])), Blk(Tid(831, "%0000033f"), - Attrs([Attr("address","0x6E4")]), Phis([]), Defs([Def(Tid(834, "%00000342"), - Attrs([Attr("address","0x6E4"), Attr("insn","adrp x2, #65536")]), - Var("R2",Imm(64)), Int(65536,64)), Def(Tid(841, "%00000349"), - Attrs([Attr("address","0x6E8"), Attr("insn","ldr x2, [x2, #0xfe0]")]), - Var("R2",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R2",Imm(64)),Int(4064,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(846, "%0000034e"), Attrs([Attr("address","0x6EC"), -Attr("insn","cbz x2, #0xc")]), EQ(Var("R2",Imm(64)),Int(0,64)), -Direct(Tid(614, "%00000266"))), Goto(Tid(1_356, "%0000054c"), Attrs([]), - Int(1,1), Direct(Tid(850, "%00000352")))])), Blk(Tid(614, "%00000266"), - Attrs([Attr("address","0x6F8")]), Phis([]), Defs([]), -Jmps([Call(Tid(622, "%0000026e"), Attrs([Attr("address","0x6F8"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))])), -Blk(Tid(850, "%00000352"), Attrs([Attr("address","0x6F0")]), Phis([]), -Defs([Def(Tid(854, "%00000356"), Attrs([Attr("address","0x6F0"), -Attr("insn","mov x16, x2")]), Var("R16",Imm(64)), Var("R2",Imm(64)))]), -Jmps([Call(Tid(859, "%0000035b"), Attrs([Attr("address","0x6F4"), -Attr("insn","br x16")]), Int(1,1), -(Indirect(Var("R16",Imm(64))),))]))]))]))) \ No newline at end of file diff --git a/src/test/correct/basic_lock_unlock/clang_pic/basic_lock_unlock.bir b/src/test/correct/basic_lock_unlock/clang_pic/basic_lock_unlock.bir deleted file mode 100644 index ef35e5df5..000000000 --- a/src/test/correct/basic_lock_unlock/clang_pic/basic_lock_unlock.bir +++ /dev/null @@ -1,231 +0,0 @@ -0000054d: program -0000051b: sub __cxa_finalize(__cxa_finalize_result) -0000054e: __cxa_finalize_result :: out u32 = low:32[R0] - -0000033b: -00000433: R16 := 0x11000 -0000043a: R17 := mem[R16 + 8, el]:u64 -00000440: R16 := R16 + 8 -00000445: call R17 with noreturn - -0000051c: sub __do_global_dtors_aux(__do_global_dtors_aux_result) -0000054f: __do_global_dtors_aux_result :: out u32 = low:32[R0] - -00000272: -00000276: #3 := R31 - 0x20 -0000027c: mem := mem with [#3, el]:u64 <- R29 -00000282: mem := mem with [#3 + 8, el]:u64 <- R30 -00000286: R31 := #3 -0000028c: R29 := R31 -00000294: mem := mem with [R31 + 0x10, el]:u64 <- R19 -00000299: R19 := 0x11000 -000002a0: R0 := pad:64[mem[R19 + 0x30]] -000002a7: when 31:0[R0] <> 0 goto %000002a5 -00000543: goto %00000304 - -00000304: -00000307: R0 := 0x10000 -0000030e: R0 := mem[R0 + 0xFB8, el]:u64 -00000314: when R0 = 0 goto %00000312 -00000544: goto %0000032b - -0000032b: -0000032e: R0 := 0x11000 -00000335: R0 := mem[R0 + 0x28, el]:u64 -0000033a: R30 := 0x730 -0000033d: call @__cxa_finalize with return %00000312 - -00000312: -0000031a: R30 := 0x734 -0000031c: call @deregister_tm_clones with return %0000031e - -0000031e: -00000321: R0 := 1 -00000329: mem := mem with [R19 + 0x30] <- 7:0[R0] -00000545: goto %000002a5 - -000002a5: -000002af: R19 := mem[R31 + 0x10, el]:u64 -000002b6: R29 := mem[R31, el]:u64 -000002bb: R30 := mem[R31 + 8, el]:u64 -000002bf: R31 := R31 + 0x20 -000002c4: call R30 with noreturn - -00000520: sub __libc_start_main(__libc_start_main_main, __libc_start_main_arg2, __libc_start_main_arg3, __libc_start_main_auxv, __libc_start_main_result) -00000550: __libc_start_main_main :: in u64 = R0 -00000551: __libc_start_main_arg2 :: in u32 = low:32[R1] -00000552: __libc_start_main_arg3 :: in out u64 = R2 -00000553: __libc_start_main_auxv :: in out u64 = R3 -00000554: __libc_start_main_result :: out u32 = low:32[R0] - -000001cb: -0000041d: R16 := 0x11000 -00000424: R17 := mem[R16, el]:u64 -0000042a: R16 := R16 -0000042f: call R17 with noreturn - -00000521: sub _fini(_fini_result) -00000555: _fini_result :: out u32 = low:32[R0] - -0000001f: -00000025: #0 := R31 - 0x10 -0000002b: mem := mem with [#0, el]:u64 <- R29 -00000031: mem := mem with [#0 + 8, el]:u64 <- R30 -00000035: R31 := #0 -0000003b: R29 := R31 -00000042: R29 := mem[R31, el]:u64 -00000047: R30 := mem[R31 + 8, el]:u64 -0000004b: R31 := R31 + 0x10 -00000050: call R30 with noreturn - -00000522: sub _init(_init_result) -00000556: _init_result :: out u32 = low:32[R0] - -0000048d: -00000493: #5 := R31 - 0x10 -00000499: mem := mem with [#5, el]:u64 <- R29 -0000049f: mem := mem with [#5 + 8, el]:u64 <- R30 -000004a3: R31 := #5 -000004a9: R29 := R31 -000004ae: R30 := 0x5C0 -000004b0: call @call_weak_fn with return %000004b2 - -000004b2: -000004b7: R29 := mem[R31, el]:u64 -000004bc: R30 := mem[R31 + 8, el]:u64 -000004c0: R31 := R31 + 0x10 -000004c5: call R30 with noreturn - -00000523: sub _start(_start_result) -00000557: _start_result :: out u32 = low:32[R0] - -0000018c: -00000191: R29 := 0 -00000196: R30 := 0 -0000019c: R5 := R0 -000001a3: R1 := mem[R31, el]:u64 -000001a9: R2 := R31 + 8 -000001af: R6 := R31 -000001b4: R0 := 0x10000 -000001bb: R0 := mem[R0 + 0xFD8, el]:u64 -000001c0: R3 := 0 -000001c5: R4 := 0 -000001ca: R30 := 0x670 -000001cd: call @__libc_start_main with return %000001cf - -000001cf: -000001d2: R30 := 0x674 -000001d5: call @abort with return %00000546 - -00000546: -00000547: call @call_weak_fn with noreturn - -00000526: sub abort() - - -000001d3: -0000045f: R16 := 0x11000 -00000466: R17 := mem[R16 + 0x18, el]:u64 -0000046c: R16 := R16 + 0x18 -00000471: call R17 with noreturn - -00000527: sub call_weak_fn(call_weak_fn_result) -00000558: call_weak_fn_result :: out u32 = low:32[R0] - -000001d7: -000001da: R0 := 0x10000 -000001e1: R0 := mem[R0 + 0xFD0, el]:u64 -000001e7: when R0 = 0 goto %000001e5 -00000548: goto %0000037b - -000001e5: -000001ed: call R30 with noreturn - -0000037b: -0000037e: goto @__gmon_start__ - -0000037c: -00000449: R16 := 0x11000 -00000450: R17 := mem[R16 + 0x10, el]:u64 -00000456: R16 := R16 + 0x10 -0000045b: call R17 with noreturn - -00000529: sub deregister_tm_clones(deregister_tm_clones_result) -00000559: deregister_tm_clones_result :: out u32 = low:32[R0] - -000001f3: -000001f6: R0 := 0x11000 -000001fc: R0 := R0 + 0x30 -00000201: R1 := 0x11000 -00000207: R1 := R1 + 0x30 -0000020d: #1 := ~R0 -00000212: #2 := R1 + ~R0 -00000218: VF := extend:65[#2 + 1] <> extend:65[R1] + extend:65[#1] + 1 -0000021e: CF := pad:65[#2 + 1] <> pad:65[R1] + pad:65[#1] + 1 -00000222: ZF := #2 + 1 = 0 -00000226: NF := 63:63[#2 + 1] -0000022c: when ZF goto %0000022a -00000549: goto %0000035d - -0000035d: -00000360: R1 := 0x10000 -00000367: R1 := mem[R1 + 0xFB0, el]:u64 -0000036c: when R1 = 0 goto %0000022a -0000054a: goto %00000370 - -0000022a: -00000232: call R30 with noreturn - -00000370: -00000374: R16 := R1 -00000379: call R16 with noreturn - -0000052c: sub frame_dummy(frame_dummy_result) -0000055a: frame_dummy_result :: out u32 = low:32[R0] - -000002ca: -000002cc: call @register_tm_clones with noreturn - -0000052d: sub main(main_argc, main_argv, main_result) -0000055b: main_argc :: in u32 = low:32[R0] -0000055c: main_argv :: in out u64 = R1 -0000055d: main_result :: out u32 = low:32[R0] - -000002ce: -000002d1: R9 := 0x10000 -000002d8: R9 := mem[R9 + 0xFC8, el]:u64 -000002dd: R8 := 1 -000002e5: mem := mem with [R9, el]:u32 <- 31:0[R8] -000002ea: R8 := 0x10000 -000002f1: R8 := mem[R8 + 0xFC0, el]:u64 -000002f6: R0 := 0 -000002fd: mem := mem with [R8, el]:u32 <- 0 -00000302: call R30 with noreturn - -0000052e: sub register_tm_clones(register_tm_clones_result) -0000055e: register_tm_clones_result :: out u32 = low:32[R0] - -00000234: -00000237: R0 := 0x11000 -0000023d: R0 := R0 + 0x30 -00000242: R1 := 0x11000 -00000248: R1 := R1 + 0x30 -0000024f: R1 := R1 + ~R0 + 1 -00000255: R2 := 0.63:63[R1] -0000025c: R1 := R2 + (R1 ~>> 3) -00000262: R1 := extend:64[63:1[R1]] -00000268: when R1 = 0 goto %00000266 -0000054b: goto %0000033f - -0000033f: -00000342: R2 := 0x10000 -00000349: R2 := mem[R2 + 0xFE0, el]:u64 -0000034e: when R2 = 0 goto %00000266 -0000054c: goto %00000352 - -00000266: -0000026e: call R30 with noreturn - -00000352: -00000356: R16 := R2 -0000035b: call R16 with noreturn diff --git a/src/test/correct/basic_lock_unlock/clang_pic/basic_lock_unlock.expected b/src/test/correct/basic_lock_unlock/clang_pic/basic_lock_unlock.expected index 5c02c0020..68fd06e95 100644 --- a/src/test/correct/basic_lock_unlock/clang_pic/basic_lock_unlock.expected +++ b/src/test/correct/basic_lock_unlock/clang_pic/basic_lock_unlock.expected @@ -1,15 +1,17 @@ var {:extern} Gamma_R0: bool; +var {:extern} Gamma_R10: bool; var {:extern} Gamma_R8: bool; var {:extern} Gamma_R9: bool; var {:extern} Gamma_mem: [bv64]bool; var {:extern} R0: bv64; +var {:extern} R10: bv64; var {:extern} R8: bv64; var {:extern} R9: bv64; var {:extern} mem: [bv64]bv8; const {:extern} $x_addr: bv64; -axiom ($x_addr == 69684bv64); +axiom ($x_addr == 131092bv64); const {:extern} $z_addr: bv64; -axiom ($z_addr == 69688bv64); +axiom ($z_addr == 131096bv64); function {:extern} L(mem$in: [bv64]bv8, index: bv64) returns (bool) { (if (index == $x_addr) then true else (if (index == $z_addr) then true else false)) } @@ -39,13 +41,13 @@ procedure {:extern} rely(); modifies Gamma_mem, mem; ensures (forall i: bv64 :: (((mem[i] == old(mem[i])) ==> (Gamma_mem[i] == old(Gamma_mem[i]))))); ensures (memory_load32_le(mem, $z_addr) == old(memory_load32_le(mem, $z_addr))); - free ensures (memory_load32_le(mem, 1932bv64) == 131073bv32); - free ensures (memory_load64_le(mem, 69048bv64) == 1872bv64); - free ensures (memory_load64_le(mem, 69056bv64) == 1792bv64); - free ensures (memory_load64_le(mem, 69568bv64) == 69688bv64); - free ensures (memory_load64_le(mem, 69576bv64) == 69684bv64); - free ensures (memory_load64_le(mem, 69592bv64) == 1876bv64); - free ensures (memory_load64_le(mem, 69672bv64) == 69672bv64); + free ensures (memory_load32_le(mem, 2316bv64) == 131073bv32); + free ensures (memory_load64_le(mem, 130424bv64) == 2256bv64); + free ensures (memory_load64_le(mem, 130432bv64) == 2176bv64); + free ensures (memory_load64_le(mem, 131032bv64) == 131096bv64); + free ensures (memory_load64_le(mem, 131040bv64) == 131092bv64); + free ensures (memory_load64_le(mem, 131056bv64) == 2260bv64); + free ensures (memory_load64_le(mem, 131080bv64) == 131080bv64); procedure {:extern} rely_transitive(); modifies Gamma_mem, mem; @@ -72,63 +74,63 @@ implementation {:extern} guarantee_reflexive() assert ((memory_load32_le(mem, $z_addr) == 0bv32) ==> ((memory_load32_le(mem, $x_addr) == memory_load32_le(mem, $x_addr)) && (memory_load32_le(mem, $z_addr) == memory_load32_le(mem, $z_addr)))); } -procedure main_1876(); - modifies Gamma_R0, Gamma_R8, Gamma_R9, Gamma_mem, R0, R8, R9, mem; +procedure main(); + modifies Gamma_R0, Gamma_R10, Gamma_R8, Gamma_R9, Gamma_mem, R0, R10, R8, R9, mem; requires (memory_load32_le(mem, $z_addr) == 1bv32); - free requires (memory_load64_le(mem, 69664bv64) == 0bv64); - free requires (memory_load64_le(mem, 69672bv64) == 69672bv64); - free requires (memory_load32_le(mem, 1932bv64) == 131073bv32); - free requires (memory_load64_le(mem, 69048bv64) == 1872bv64); - free requires (memory_load64_le(mem, 69056bv64) == 1792bv64); - free requires (memory_load64_le(mem, 69568bv64) == 69688bv64); - free requires (memory_load64_le(mem, 69576bv64) == 69684bv64); - free requires (memory_load64_le(mem, 69592bv64) == 1876bv64); - free requires (memory_load64_le(mem, 69672bv64) == 69672bv64); - free ensures (memory_load32_le(mem, 1932bv64) == 131073bv32); - free ensures (memory_load64_le(mem, 69048bv64) == 1872bv64); - free ensures (memory_load64_le(mem, 69056bv64) == 1792bv64); - free ensures (memory_load64_le(mem, 69568bv64) == 69688bv64); - free ensures (memory_load64_le(mem, 69576bv64) == 69684bv64); - free ensures (memory_load64_le(mem, 69592bv64) == 1876bv64); - free ensures (memory_load64_le(mem, 69672bv64) == 69672bv64); + free requires (memory_load64_le(mem, 131072bv64) == 0bv64); + free requires (memory_load64_le(mem, 131080bv64) == 131080bv64); + free requires (memory_load32_le(mem, 2316bv64) == 131073bv32); + free requires (memory_load64_le(mem, 130424bv64) == 2256bv64); + free requires (memory_load64_le(mem, 130432bv64) == 2176bv64); + free requires (memory_load64_le(mem, 131032bv64) == 131096bv64); + free requires (memory_load64_le(mem, 131040bv64) == 131092bv64); + free requires (memory_load64_le(mem, 131056bv64) == 2260bv64); + free requires (memory_load64_le(mem, 131080bv64) == 131080bv64); + free ensures (memory_load32_le(mem, 2316bv64) == 131073bv32); + free ensures (memory_load64_le(mem, 130424bv64) == 2256bv64); + free ensures (memory_load64_le(mem, 130432bv64) == 2176bv64); + free ensures (memory_load64_le(mem, 131032bv64) == 131096bv64); + free ensures (memory_load64_le(mem, 131040bv64) == 131092bv64); + free ensures (memory_load64_le(mem, 131056bv64) == 2260bv64); + free ensures (memory_load64_le(mem, 131080bv64) == 131080bv64); -implementation main_1876() +implementation main() { - var Gamma_load18: bool; - var Gamma_load19: bool; - var load18: bv64; - var load19: bv64; + var $load$18: bv64; + var $load$19: bv64; + var Gamma_$load$18: bool; + var Gamma_$load$19: bool; var x_old: bv32; var z_old: bv32; lmain: assume {:captureState "lmain"} true; - R9, Gamma_R9 := 65536bv64, true; + R8, Gamma_R8 := 126976bv64, true; + R10, Gamma_R10 := 126976bv64, true; + R0, Gamma_R0 := 0bv64, true; + call rely(); + $load$18, Gamma_$load$18 := memory_load64_le(mem, bvadd64(R8, 4064bv64)), (gamma_load64(Gamma_mem, bvadd64(R8, 4064bv64)) || L(mem, bvadd64(R8, 4064bv64))); + R8, Gamma_R8 := $load$18, Gamma_$load$18; call rely(); - load18, Gamma_load18 := memory_load64_le(mem, bvadd64(R9, 4040bv64)), (gamma_load64(Gamma_mem, bvadd64(R9, 4040bv64)) || L(mem, bvadd64(R9, 4040bv64))); - R9, Gamma_R9 := load18, Gamma_load18; - R8, Gamma_R8 := 1bv64, true; + $load$19, Gamma_$load$19 := memory_load64_le(mem, bvadd64(R10, 4056bv64)), (gamma_load64(Gamma_mem, bvadd64(R10, 4056bv64)) || L(mem, bvadd64(R10, 4056bv64))); + R10, Gamma_R10 := $load$19, Gamma_$load$19; + R9, Gamma_R9 := 1bv64, true; call rely(); + assert (L(mem, R8) ==> Gamma_R9); x_old := memory_load32_le(mem, $x_addr); z_old := memory_load32_le(mem, $z_addr); - assert (L(mem, R9) ==> Gamma_R8); - mem, Gamma_mem := memory_store32_le(mem, R9, R8[32:0]), gamma_store32(Gamma_mem, R9, Gamma_R8); + mem, Gamma_mem := memory_store32_le(mem, R8, R9[32:0]), gamma_store32(Gamma_mem, R8, Gamma_R9); assert ((z_old == 0bv32) ==> ((memory_load32_le(mem, $x_addr) == x_old) && (memory_load32_le(mem, $z_addr) == z_old))); - assume {:captureState "%000002e5"} true; - R8, Gamma_R8 := 65536bv64, true; - call rely(); - load19, Gamma_load19 := memory_load64_le(mem, bvadd64(R8, 4032bv64)), (gamma_load64(Gamma_mem, bvadd64(R8, 4032bv64)) || L(mem, bvadd64(R8, 4032bv64))); - R8, Gamma_R8 := load19, Gamma_load19; - R0, Gamma_R0 := 0bv64, true; + assume {:captureState "%00000294"} true; call rely(); + assert (L(mem, R10) ==> true); x_old := memory_load32_le(mem, $x_addr); z_old := memory_load32_le(mem, $z_addr); - assert (L(mem, R8) ==> true); - mem, Gamma_mem := memory_store32_le(mem, R8, 0bv32), gamma_store32(Gamma_mem, R8, true); + mem, Gamma_mem := memory_store32_le(mem, R10, 0bv32), gamma_store32(Gamma_mem, R10, true); assert ((z_old == 0bv32) ==> ((memory_load32_le(mem, $x_addr) == x_old) && (memory_load32_le(mem, $z_addr) == z_old))); - assume {:captureState "%000002fd"} true; - goto main_1876_basil_return; - main_1876_basil_return: - assume {:captureState "main_1876_basil_return"} true; + assume {:captureState "%00000298"} true; + goto main_basil_return; + main_basil_return: + assume {:captureState "main_basil_return"} true; return; } diff --git a/src/test/correct/basic_lock_unlock/clang_pic/basic_lock_unlock.gts b/src/test/correct/basic_lock_unlock/clang_pic/basic_lock_unlock.gts deleted file mode 100644 index 2a185f33d..000000000 Binary files a/src/test/correct/basic_lock_unlock/clang_pic/basic_lock_unlock.gts and /dev/null differ diff --git a/src/test/correct/basic_lock_unlock/clang_pic/basic_lock_unlock.md5sum b/src/test/correct/basic_lock_unlock/clang_pic/basic_lock_unlock.md5sum new file mode 100644 index 000000000..ee6de55c3 --- /dev/null +++ b/src/test/correct/basic_lock_unlock/clang_pic/basic_lock_unlock.md5sum @@ -0,0 +1,5 @@ +750f81b72bd1458cb07245dd17e5b27b correct/basic_lock_unlock/clang_pic/a.out +74b0a119bffe2c98fd623dc66dda4f0d correct/basic_lock_unlock/clang_pic/basic_lock_unlock.adt +fd01829bf3f56132990a0c9716154dc7 correct/basic_lock_unlock/clang_pic/basic_lock_unlock.bir +847e9df64778f02808c1ec010427980e correct/basic_lock_unlock/clang_pic/basic_lock_unlock.relf +874387ccc20d00da87a5c10dfcc87133 correct/basic_lock_unlock/clang_pic/basic_lock_unlock.gts diff --git a/src/test/correct/basic_lock_unlock/clang_pic/basic_lock_unlock.relf b/src/test/correct/basic_lock_unlock/clang_pic/basic_lock_unlock.relf deleted file mode 100644 index e6605e551..000000000 --- a/src/test/correct/basic_lock_unlock/clang_pic/basic_lock_unlock.relf +++ /dev/null @@ -1,126 +0,0 @@ - -Relocation section '.rela.dyn' at offset 0x460 contains 10 entries: - Offset Info Type Symbol's Value Symbol's Name + Addend -0000000000010db8 0000000000000403 R_AARCH64_RELATIVE 750 -0000000000010dc0 0000000000000403 R_AARCH64_RELATIVE 700 -0000000000010fc0 0000000000000403 R_AARCH64_RELATIVE 11038 -0000000000010fc8 0000000000000403 R_AARCH64_RELATIVE 11034 -0000000000010fd8 0000000000000403 R_AARCH64_RELATIVE 754 -0000000000011028 0000000000000403 R_AARCH64_RELATIVE 11028 -0000000000010fb0 0000000400000401 R_AARCH64_GLOB_DAT 0000000000000000 _ITM_deregisterTMCloneTable + 0 -0000000000010fb8 0000000500000401 R_AARCH64_GLOB_DAT 0000000000000000 __cxa_finalize@GLIBC_2.17 + 0 -0000000000010fd0 0000000600000401 R_AARCH64_GLOB_DAT 0000000000000000 __gmon_start__ + 0 -0000000000010fe0 0000000800000401 R_AARCH64_GLOB_DAT 0000000000000000 _ITM_registerTMCloneTable + 0 - -Relocation section '.rela.plt' at offset 0x550 contains 4 entries: - Offset Info Type Symbol's Value Symbol's Name + Addend -0000000000011000 0000000300000402 R_AARCH64_JUMP_SLOT 0000000000000000 __libc_start_main@GLIBC_2.34 + 0 -0000000000011008 0000000500000402 R_AARCH64_JUMP_SLOT 0000000000000000 __cxa_finalize@GLIBC_2.17 + 0 -0000000000011010 0000000600000402 R_AARCH64_JUMP_SLOT 0000000000000000 __gmon_start__ + 0 -0000000000011018 0000000700000402 R_AARCH64_JUMP_SLOT 0000000000000000 abort@GLIBC_2.17 + 0 - -Symbol table '.dynsym' contains 9 entries: - Num: Value Size Type Bind Vis Ndx Name - 0: 0000000000000000 0 NOTYPE LOCAL DEFAULT UND - 1: 00000000000005b0 0 SECTION LOCAL DEFAULT 11 .init - 2: 0000000000011020 0 SECTION LOCAL DEFAULT 23 .data - 3: 0000000000000000 0 FUNC GLOBAL DEFAULT UND __libc_start_main@GLIBC_2.34 (2) - 4: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_deregisterTMCloneTable - 5: 0000000000000000 0 FUNC WEAK DEFAULT UND __cxa_finalize@GLIBC_2.17 (3) - 6: 0000000000000000 0 NOTYPE WEAK DEFAULT UND __gmon_start__ - 7: 0000000000000000 0 FUNC GLOBAL DEFAULT UND abort@GLIBC_2.17 (3) - 8: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_registerTMCloneTable - -Symbol table '.symtab' contains 91 entries: - Num: Value Size Type Bind Vis Ndx Name - 0: 0000000000000000 0 NOTYPE LOCAL DEFAULT UND - 1: 0000000000000238 0 SECTION LOCAL DEFAULT 1 .interp - 2: 0000000000000254 0 SECTION LOCAL DEFAULT 2 .note.gnu.build-id - 3: 0000000000000278 0 SECTION LOCAL DEFAULT 3 .note.ABI-tag - 4: 0000000000000298 0 SECTION LOCAL DEFAULT 4 .gnu.hash - 5: 00000000000002b8 0 SECTION LOCAL DEFAULT 5 .dynsym - 6: 0000000000000390 0 SECTION LOCAL DEFAULT 6 .dynstr - 7: 000000000000041e 0 SECTION LOCAL DEFAULT 7 .gnu.version - 8: 0000000000000430 0 SECTION LOCAL DEFAULT 8 .gnu.version_r - 9: 0000000000000460 0 SECTION LOCAL DEFAULT 9 .rela.dyn - 10: 0000000000000550 0 SECTION LOCAL DEFAULT 10 .rela.plt - 11: 00000000000005b0 0 SECTION LOCAL DEFAULT 11 .init - 12: 00000000000005d0 0 SECTION LOCAL DEFAULT 12 .plt - 13: 0000000000000640 0 SECTION LOCAL DEFAULT 13 .text - 14: 0000000000000778 0 SECTION LOCAL DEFAULT 14 .fini - 15: 000000000000078c 0 SECTION LOCAL DEFAULT 15 .rodata - 16: 0000000000000790 0 SECTION LOCAL DEFAULT 16 .eh_frame_hdr - 17: 00000000000007d0 0 SECTION LOCAL DEFAULT 17 .eh_frame - 18: 0000000000010db8 0 SECTION LOCAL DEFAULT 18 .init_array - 19: 0000000000010dc0 0 SECTION LOCAL DEFAULT 19 .fini_array - 20: 0000000000010dc8 0 SECTION LOCAL DEFAULT 20 .dynamic - 21: 0000000000010fa8 0 SECTION LOCAL DEFAULT 21 .got - 22: 0000000000010fe8 0 SECTION LOCAL DEFAULT 22 .got.plt - 23: 0000000000011020 0 SECTION LOCAL DEFAULT 23 .data - 24: 0000000000011030 0 SECTION LOCAL DEFAULT 24 .bss - 25: 0000000000000000 0 SECTION LOCAL DEFAULT 25 .comment - 26: 0000000000000000 0 FILE LOCAL DEFAULT ABS Scrt1.o - 27: 0000000000000278 0 NOTYPE LOCAL DEFAULT 3 $d - 28: 0000000000000278 32 OBJECT LOCAL DEFAULT 3 __abi_tag - 29: 0000000000000640 0 NOTYPE LOCAL DEFAULT 13 $x - 30: 00000000000007e4 0 NOTYPE LOCAL DEFAULT 17 $d - 31: 000000000000078c 0 NOTYPE LOCAL DEFAULT 15 $d - 32: 0000000000000000 0 FILE LOCAL DEFAULT ABS crti.o - 33: 0000000000000674 0 NOTYPE LOCAL DEFAULT 13 $x - 34: 0000000000000674 20 FUNC LOCAL DEFAULT 13 call_weak_fn - 35: 00000000000005b0 0 NOTYPE LOCAL DEFAULT 11 $x - 36: 0000000000000778 0 NOTYPE LOCAL DEFAULT 14 $x - 37: 0000000000000000 0 FILE LOCAL DEFAULT ABS crtn.o - 38: 00000000000005c0 0 NOTYPE LOCAL DEFAULT 11 $x - 39: 0000000000000784 0 NOTYPE LOCAL DEFAULT 14 $x - 40: 0000000000000000 0 FILE LOCAL DEFAULT ABS crtstuff.c - 41: 0000000000000690 0 NOTYPE LOCAL DEFAULT 13 $x - 42: 0000000000000690 0 FUNC LOCAL DEFAULT 13 deregister_tm_clones - 43: 00000000000006c0 0 FUNC LOCAL DEFAULT 13 register_tm_clones - 44: 0000000000011028 0 NOTYPE LOCAL DEFAULT 23 $d - 45: 0000000000000700 0 FUNC LOCAL DEFAULT 13 __do_global_dtors_aux - 46: 0000000000011030 1 OBJECT LOCAL DEFAULT 24 completed.0 - 47: 0000000000010dc0 0 NOTYPE LOCAL DEFAULT 19 $d - 48: 0000000000010dc0 0 OBJECT LOCAL DEFAULT 19 __do_global_dtors_aux_fini_array_entry - 49: 0000000000000750 0 FUNC LOCAL DEFAULT 13 frame_dummy - 50: 0000000000010db8 0 NOTYPE LOCAL DEFAULT 18 $d - 51: 0000000000010db8 0 OBJECT LOCAL DEFAULT 18 __frame_dummy_init_array_entry - 52: 00000000000007f8 0 NOTYPE LOCAL DEFAULT 17 $d - 53: 0000000000011030 0 NOTYPE LOCAL DEFAULT 24 $d - 54: 0000000000000000 0 FILE LOCAL DEFAULT ABS basic_lock_unlock.c - 55: 0000000000000754 0 NOTYPE LOCAL DEFAULT 13 $x.0 - 56: 0000000000011034 0 NOTYPE LOCAL DEFAULT 24 $d.1 - 57: 000000000000002a 0 NOTYPE LOCAL DEFAULT 25 $d.2 - 58: 0000000000000858 0 NOTYPE LOCAL DEFAULT 17 $d.3 - 59: 0000000000000000 0 FILE LOCAL DEFAULT ABS crtstuff.c - 60: 0000000000000880 0 NOTYPE LOCAL DEFAULT 17 $d - 61: 0000000000000880 0 OBJECT LOCAL DEFAULT 17 __FRAME_END__ - 62: 0000000000000000 0 FILE LOCAL DEFAULT ABS - 63: 0000000000010dc8 0 OBJECT LOCAL DEFAULT ABS _DYNAMIC - 64: 0000000000000790 0 NOTYPE LOCAL DEFAULT 16 __GNU_EH_FRAME_HDR - 65: 0000000000010fa8 0 OBJECT LOCAL DEFAULT ABS _GLOBAL_OFFSET_TABLE_ - 66: 00000000000005d0 0 NOTYPE LOCAL DEFAULT 12 $x - 67: 0000000000000000 0 FUNC GLOBAL DEFAULT UND __libc_start_main@GLIBC_2.34 - 68: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_deregisterTMCloneTable - 69: 0000000000011020 0 NOTYPE WEAK DEFAULT 23 data_start - 70: 0000000000011030 0 NOTYPE GLOBAL DEFAULT 24 __bss_start__ - 71: 0000000000000000 0 FUNC WEAK DEFAULT UND __cxa_finalize@GLIBC_2.17 - 72: 0000000000011040 0 NOTYPE GLOBAL DEFAULT 24 _bss_end__ - 73: 0000000000011030 0 NOTYPE GLOBAL DEFAULT 23 _edata - 74: 0000000000011038 4 OBJECT GLOBAL DEFAULT 24 z - 75: 0000000000011034 4 OBJECT GLOBAL DEFAULT 24 x - 76: 0000000000000778 0 FUNC GLOBAL HIDDEN 14 _fini - 77: 0000000000011040 0 NOTYPE GLOBAL DEFAULT 24 __bss_end__ - 78: 0000000000011020 0 NOTYPE GLOBAL DEFAULT 23 __data_start - 79: 0000000000000000 0 NOTYPE WEAK DEFAULT UND __gmon_start__ - 80: 0000000000011028 0 OBJECT GLOBAL HIDDEN 23 __dso_handle - 81: 0000000000000000 0 FUNC GLOBAL DEFAULT UND abort@GLIBC_2.17 - 82: 000000000000078c 4 OBJECT GLOBAL DEFAULT 15 _IO_stdin_used - 83: 0000000000011040 0 NOTYPE GLOBAL DEFAULT 24 _end - 84: 0000000000000640 52 FUNC GLOBAL DEFAULT 13 _start - 85: 0000000000011040 0 NOTYPE GLOBAL DEFAULT 24 __end__ - 86: 0000000000011030 0 NOTYPE GLOBAL DEFAULT 24 __bss_start - 87: 0000000000000754 36 FUNC GLOBAL DEFAULT 13 main - 88: 0000000000011030 0 OBJECT GLOBAL HIDDEN 23 __TMC_END__ - 89: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_registerTMCloneTable - 90: 00000000000005b0 0 FUNC GLOBAL HIDDEN 11 _init diff --git a/src/test/correct/basic_lock_unlock/clang_pic/basic_lock_unlock_gtirb.expected b/src/test/correct/basic_lock_unlock/clang_pic/basic_lock_unlock_gtirb.expected index 9f53776b7..02283dcce 100644 --- a/src/test/correct/basic_lock_unlock/clang_pic/basic_lock_unlock_gtirb.expected +++ b/src/test/correct/basic_lock_unlock/clang_pic/basic_lock_unlock_gtirb.expected @@ -1,15 +1,17 @@ var {:extern} Gamma_R0: bool; +var {:extern} Gamma_R10: bool; var {:extern} Gamma_R8: bool; var {:extern} Gamma_R9: bool; var {:extern} Gamma_mem: [bv64]bool; var {:extern} R0: bv64; +var {:extern} R10: bv64; var {:extern} R8: bv64; var {:extern} R9: bv64; var {:extern} mem: [bv64]bv8; const {:extern} $x_addr: bv64; -axiom ($x_addr == 69684bv64); +axiom ($x_addr == 131092bv64); const {:extern} $z_addr: bv64; -axiom ($z_addr == 69688bv64); +axiom ($z_addr == 131096bv64); function {:extern} L(mem$in: [bv64]bv8, index: bv64) returns (bool) { (if (index == $x_addr) then true else (if (index == $z_addr) then true else false)) } @@ -39,13 +41,13 @@ procedure {:extern} rely(); modifies Gamma_mem, mem; ensures (forall i: bv64 :: (((mem[i] == old(mem[i])) ==> (Gamma_mem[i] == old(Gamma_mem[i]))))); ensures (memory_load32_le(mem, $z_addr) == old(memory_load32_le(mem, $z_addr))); - free ensures (memory_load32_le(mem, 1932bv64) == 131073bv32); - free ensures (memory_load64_le(mem, 69048bv64) == 1872bv64); - free ensures (memory_load64_le(mem, 69056bv64) == 1792bv64); - free ensures (memory_load64_le(mem, 69568bv64) == 69688bv64); - free ensures (memory_load64_le(mem, 69576bv64) == 69684bv64); - free ensures (memory_load64_le(mem, 69592bv64) == 1876bv64); - free ensures (memory_load64_le(mem, 69672bv64) == 69672bv64); + free ensures (memory_load32_le(mem, 2316bv64) == 131073bv32); + free ensures (memory_load64_le(mem, 130424bv64) == 2256bv64); + free ensures (memory_load64_le(mem, 130432bv64) == 2176bv64); + free ensures (memory_load64_le(mem, 131032bv64) == 131096bv64); + free ensures (memory_load64_le(mem, 131040bv64) == 131092bv64); + free ensures (memory_load64_le(mem, 131056bv64) == 2260bv64); + free ensures (memory_load64_le(mem, 131080bv64) == 131080bv64); procedure {:extern} rely_transitive(); modifies Gamma_mem, mem; @@ -72,63 +74,63 @@ implementation {:extern} guarantee_reflexive() assert ((memory_load32_le(mem, $z_addr) == 0bv32) ==> ((memory_load32_le(mem, $x_addr) == memory_load32_le(mem, $x_addr)) && (memory_load32_le(mem, $z_addr) == memory_load32_le(mem, $z_addr)))); } -procedure main_1876(); - modifies Gamma_R0, Gamma_R8, Gamma_R9, Gamma_mem, R0, R8, R9, mem; +procedure main(); + modifies Gamma_R0, Gamma_R10, Gamma_R8, Gamma_R9, Gamma_mem, R0, R10, R8, R9, mem; requires (memory_load32_le(mem, $z_addr) == 1bv32); - free requires (memory_load64_le(mem, 69664bv64) == 0bv64); - free requires (memory_load64_le(mem, 69672bv64) == 69672bv64); - free requires (memory_load32_le(mem, 1932bv64) == 131073bv32); - free requires (memory_load64_le(mem, 69048bv64) == 1872bv64); - free requires (memory_load64_le(mem, 69056bv64) == 1792bv64); - free requires (memory_load64_le(mem, 69568bv64) == 69688bv64); - free requires (memory_load64_le(mem, 69576bv64) == 69684bv64); - free requires (memory_load64_le(mem, 69592bv64) == 1876bv64); - free requires (memory_load64_le(mem, 69672bv64) == 69672bv64); - free ensures (memory_load32_le(mem, 1932bv64) == 131073bv32); - free ensures (memory_load64_le(mem, 69048bv64) == 1872bv64); - free ensures (memory_load64_le(mem, 69056bv64) == 1792bv64); - free ensures (memory_load64_le(mem, 69568bv64) == 69688bv64); - free ensures (memory_load64_le(mem, 69576bv64) == 69684bv64); - free ensures (memory_load64_le(mem, 69592bv64) == 1876bv64); - free ensures (memory_load64_le(mem, 69672bv64) == 69672bv64); + free requires (memory_load64_le(mem, 131072bv64) == 0bv64); + free requires (memory_load64_le(mem, 131080bv64) == 131080bv64); + free requires (memory_load32_le(mem, 2316bv64) == 131073bv32); + free requires (memory_load64_le(mem, 130424bv64) == 2256bv64); + free requires (memory_load64_le(mem, 130432bv64) == 2176bv64); + free requires (memory_load64_le(mem, 131032bv64) == 131096bv64); + free requires (memory_load64_le(mem, 131040bv64) == 131092bv64); + free requires (memory_load64_le(mem, 131056bv64) == 2260bv64); + free requires (memory_load64_le(mem, 131080bv64) == 131080bv64); + free ensures (memory_load32_le(mem, 2316bv64) == 131073bv32); + free ensures (memory_load64_le(mem, 130424bv64) == 2256bv64); + free ensures (memory_load64_le(mem, 130432bv64) == 2176bv64); + free ensures (memory_load64_le(mem, 131032bv64) == 131096bv64); + free ensures (memory_load64_le(mem, 131040bv64) == 131092bv64); + free ensures (memory_load64_le(mem, 131056bv64) == 2260bv64); + free ensures (memory_load64_le(mem, 131080bv64) == 131080bv64); -implementation main_1876() +implementation main() { - var Gamma_load16: bool; - var Gamma_load17: bool; - var load16: bv64; - var load17: bv64; + var $load5: bv64; + var $load6: bv64; + var Gamma_$load5: bool; + var Gamma_$load6: bool; var x_old: bv32; var z_old: bv32; - main_1876__0__o1i8tH7ZQJKzGeXslZGxww: - assume {:captureState "main_1876__0__o1i8tH7ZQJKzGeXslZGxww"} true; - R9, Gamma_R9 := 65536bv64, true; + $main$__0__$D9t2gNJrSmyMH3GAVRe3IQ: + assume {:captureState "$main$__0__$D9t2gNJrSmyMH3GAVRe3IQ"} true; + R8, Gamma_R8 := 126976bv64, true; + R10, Gamma_R10 := 126976bv64, true; + R0, Gamma_R0 := 0bv64, true; + call rely(); + $load5, Gamma_$load5 := memory_load64_le(mem, bvadd64(R8, 4064bv64)), (gamma_load64(Gamma_mem, bvadd64(R8, 4064bv64)) || L(mem, bvadd64(R8, 4064bv64))); + R8, Gamma_R8 := $load5, Gamma_$load5; call rely(); - load16, Gamma_load16 := memory_load64_le(mem, bvadd64(R9, 4040bv64)), (gamma_load64(Gamma_mem, bvadd64(R9, 4040bv64)) || L(mem, bvadd64(R9, 4040bv64))); - R9, Gamma_R9 := load16, Gamma_load16; - R8, Gamma_R8 := 1bv64, true; + $load6, Gamma_$load6 := memory_load64_le(mem, bvadd64(R10, 4056bv64)), (gamma_load64(Gamma_mem, bvadd64(R10, 4056bv64)) || L(mem, bvadd64(R10, 4056bv64))); + R10, Gamma_R10 := $load6, Gamma_$load6; + R9, Gamma_R9 := 1bv64, true; call rely(); + assert (L(mem, R8) ==> Gamma_R9); x_old := memory_load32_le(mem, $x_addr); z_old := memory_load32_le(mem, $z_addr); - assert (L(mem, R9) ==> Gamma_R8); - mem, Gamma_mem := memory_store32_le(mem, R9, R8[32:0]), gamma_store32(Gamma_mem, R9, Gamma_R8); + mem, Gamma_mem := memory_store32_le(mem, R8, R9[32:0]), gamma_store32(Gamma_mem, R8, Gamma_R9); assert ((z_old == 0bv32) ==> ((memory_load32_le(mem, $x_addr) == x_old) && (memory_load32_le(mem, $z_addr) == z_old))); - assume {:captureState "1888_0"} true; - R8, Gamma_R8 := 65536bv64, true; - call rely(); - load17, Gamma_load17 := memory_load64_le(mem, bvadd64(R8, 4032bv64)), (gamma_load64(Gamma_mem, bvadd64(R8, 4032bv64)) || L(mem, bvadd64(R8, 4032bv64))); - R8, Gamma_R8 := load17, Gamma_load17; - R0, Gamma_R0 := 0bv64, true; + assume {:captureState "2284$0"} true; call rely(); + assert (L(mem, R10) ==> true); x_old := memory_load32_le(mem, $x_addr); z_old := memory_load32_le(mem, $z_addr); - assert (L(mem, R8) ==> true); - mem, Gamma_mem := memory_store32_le(mem, R8, 0bv32), gamma_store32(Gamma_mem, R8, true); + mem, Gamma_mem := memory_store32_le(mem, R10, 0bv32), gamma_store32(Gamma_mem, R10, true); assert ((z_old == 0bv32) ==> ((memory_load32_le(mem, $x_addr) == x_old) && (memory_load32_le(mem, $z_addr) == z_old))); - assume {:captureState "1904_0"} true; - goto main_1876_basil_return; - main_1876_basil_return: - assume {:captureState "main_1876_basil_return"} true; + assume {:captureState "2288$0"} true; + goto main_basil_return; + main_basil_return: + assume {:captureState "main_basil_return"} true; return; } diff --git a/src/test/correct/basic_lock_unlock/gcc/basic_lock_unlock.adt b/src/test/correct/basic_lock_unlock/gcc/basic_lock_unlock.adt deleted file mode 100644 index f53e26674..000000000 --- a/src/test/correct/basic_lock_unlock/gcc/basic_lock_unlock.adt +++ /dev/null @@ -1,500 +0,0 @@ -Project(Attrs([Attr("filename","\"gcc/basic_lock_unlock.out\""), -Attr("image-specification","(declare abi (name str))\n(declare arch (name str))\n(declare base-address (addr int))\n(declare bias (off int))\n(declare bits (size int))\n(declare code-region (addr int) (size int) (off int))\n(declare code-start (addr int))\n(declare entry-point (addr int))\n(declare external-reference (addr int) (name str))\n(declare format (name str))\n(declare is-executable (flag bool))\n(declare is-little-endian (flag bool))\n(declare llvm:base-address (addr int))\n(declare llvm:code-entry (name str) (off int) (size int))\n(declare llvm:coff-import-library (name str))\n(declare llvm:coff-virtual-section-header (name str) (addr int) (size int))\n(declare llvm:elf-program-header (name str) (off int) (size int))\n(declare llvm:elf-program-header-flags (name str) (ld bool) (r bool) \n (w bool) (x bool))\n(declare llvm:elf-virtual-program-header (name str) (addr int) (size int))\n(declare llvm:entry-point (addr int))\n(declare llvm:macho-symbol (name str) (value int))\n(declare llvm:name-reference (at int) (name str))\n(declare llvm:relocation (at int) (addr int))\n(declare llvm:section-entry (name str) (addr int) (size int) (off int))\n(declare llvm:section-flags (name str) (r bool) (w bool) (x bool))\n(declare llvm:segment-command (name str) (off int) (size int))\n(declare llvm:segment-command-flags (name str) (r bool) (w bool) (x bool))\n(declare llvm:symbol-entry (name str) (addr int) (size int) (off int)\n (value int))\n(declare llvm:virtual-segment-command (name str) (addr int) (size int))\n(declare mapped (addr int) (size int) (off int))\n(declare named-region (addr int) (size int) (name str))\n(declare named-symbol (addr int) (name str))\n(declare require (name str))\n(declare section (addr int) (size int))\n(declare segment (addr int) (size int) (r bool) (w bool) (x bool))\n(declare subarch (name str))\n(declare symbol-chunk (addr int) (size int) (root int))\n(declare symbol-value (addr int) (value int))\n(declare system (name str))\n(declare vendor (name str))\n\n(abi unknown)\n(arch aarch64)\n(base-address 0)\n(bias 0)\n(bits 64)\n(code-region 1848 20 1848)\n(code-region 1536 312 1536)\n(code-region 1440 96 1440)\n(code-region 1408 24 1408)\n(code-start 1588)\n(code-start 1536)\n(code-start 1812)\n(entry-point 1536)\n(external-reference 69592 _ITM_deregisterTMCloneTable)\n(external-reference 69600 __cxa_finalize)\n(external-reference 69608 __gmon_start__)\n(external-reference 69624 _ITM_registerTMCloneTable)\n(external-reference 69552 __libc_start_main)\n(external-reference 69560 __cxa_finalize)\n(external-reference 69568 __gmon_start__)\n(external-reference 69576 abort)\n(format elf)\n(is-executable true)\n(is-little-endian true)\n(llvm:base-address 0)\n(llvm:code-entry abort 0 0)\n(llvm:code-entry __cxa_finalize 0 0)\n(llvm:code-entry __libc_start_main 0 0)\n(llvm:code-entry _init 1408 0)\n(llvm:code-entry main 1812 36)\n(llvm:code-entry _start 1536 52)\n(llvm:code-entry abort@GLIBC_2.17 0 0)\n(llvm:code-entry _fini 1848 0)\n(llvm:code-entry __cxa_finalize@GLIBC_2.17 0 0)\n(llvm:code-entry __libc_start_main@GLIBC_2.34 0 0)\n(llvm:code-entry frame_dummy 1808 0)\n(llvm:code-entry __do_global_dtors_aux 1728 0)\n(llvm:code-entry register_tm_clones 1664 0)\n(llvm:code-entry deregister_tm_clones 1616 0)\n(llvm:code-entry call_weak_fn 1588 20)\n(llvm:code-entry .fini 1848 20)\n(llvm:code-entry .text 1536 312)\n(llvm:code-entry .plt 1440 96)\n(llvm:code-entry .init 1408 24)\n(llvm:elf-program-header 08 3480 616)\n(llvm:elf-program-header 07 0 0)\n(llvm:elf-program-header 06 1872 60)\n(llvm:elf-program-header 05 596 68)\n(llvm:elf-program-header 04 3496 496)\n(llvm:elf-program-header 03 3480 632)\n(llvm:elf-program-header 02 0 2096)\n(llvm:elf-program-header 01 568 27)\n(llvm:elf-program-header 00 64 504)\n(llvm:elf-program-header-flags 08 false true false false)\n(llvm:elf-program-header-flags 07 false true true false)\n(llvm:elf-program-header-flags 06 false true false false)\n(llvm:elf-program-header-flags 05 false true false false)\n(llvm:elf-program-header-flags 04 false true true false)\n(llvm:elf-program-header-flags 03 true true true false)\n(llvm:elf-program-header-flags 02 true true false true)\n(llvm:elf-program-header-flags 01 false true false false)\n(llvm:elf-program-header-flags 00 false true false false)\n(llvm:elf-virtual-program-header 08 69016 616)\n(llvm:elf-virtual-program-header 07 0 0)\n(llvm:elf-virtual-program-header 06 1872 60)\n(llvm:elf-virtual-program-header 05 596 68)\n(llvm:elf-virtual-program-header 04 69032 496)\n(llvm:elf-virtual-program-header 03 69016 648)\n(llvm:elf-virtual-program-header 02 0 2096)\n(llvm:elf-virtual-program-header 01 568 27)\n(llvm:elf-virtual-program-header 00 64 504)\n(llvm:entry-point 1536)\n(llvm:name-reference 69576 abort)\n(llvm:name-reference 69568 __gmon_start__)\n(llvm:name-reference 69560 __cxa_finalize)\n(llvm:name-reference 69552 __libc_start_main)\n(llvm:name-reference 69624 _ITM_registerTMCloneTable)\n(llvm:name-reference 69608 __gmon_start__)\n(llvm:name-reference 69600 __cxa_finalize)\n(llvm:name-reference 69592 _ITM_deregisterTMCloneTable)\n(llvm:section-entry .shstrtab 0 250 6851)\n(llvm:section-entry .strtab 0 555 6296)\n(llvm:section-entry .symtab 0 2136 4160)\n(llvm:section-entry .comment 0 43 4112)\n(llvm:section-entry .bss 69648 16 4112)\n(llvm:section-entry .data 69632 16 4096)\n(llvm:section-entry .got 69528 104 3992)\n(llvm:section-entry .dynamic 69032 496 3496)\n(llvm:section-entry .fini_array 69024 8 3488)\n(llvm:section-entry .init_array 69016 8 3480)\n(llvm:section-entry .eh_frame 1936 160 1936)\n(llvm:section-entry .eh_frame_hdr 1872 60 1872)\n(llvm:section-entry .rodata 1868 4 1868)\n(llvm:section-entry .fini 1848 20 1848)\n(llvm:section-entry .text 1536 312 1536)\n(llvm:section-entry .plt 1440 96 1440)\n(llvm:section-entry .init 1408 24 1408)\n(llvm:section-entry .rela.plt 1312 96 1312)\n(llvm:section-entry .rela.dyn 1120 192 1120)\n(llvm:section-entry .gnu.version_r 1072 48 1072)\n(llvm:section-entry .gnu.version 1054 18 1054)\n(llvm:section-entry .dynstr 912 141 912)\n(llvm:section-entry .dynsym 696 216 696)\n(llvm:section-entry .gnu.hash 664 28 664)\n(llvm:section-entry .note.ABI-tag 632 32 632)\n(llvm:section-entry .note.gnu.build-id 596 36 596)\n(llvm:section-entry .interp 568 27 568)\n(llvm:section-flags .shstrtab true false false)\n(llvm:section-flags .strtab true false false)\n(llvm:section-flags .symtab true false false)\n(llvm:section-flags .comment true false false)\n(llvm:section-flags .bss true true false)\n(llvm:section-flags .data true true false)\n(llvm:section-flags .got true true false)\n(llvm:section-flags .dynamic true true false)\n(llvm:section-flags .fini_array true true false)\n(llvm:section-flags .init_array true true false)\n(llvm:section-flags .eh_frame true false false)\n(llvm:section-flags .eh_frame_hdr true false false)\n(llvm:section-flags .rodata true false false)\n(llvm:section-flags .fini true false true)\n(llvm:section-flags .text true false true)\n(llvm:section-flags .plt true false true)\n(llvm:section-flags .init true false true)\n(llvm:section-flags .rela.plt true false false)\n(llvm:section-flags .rela.dyn true false false)\n(llvm:section-flags .gnu.version_r true false false)\n(llvm:section-flags .gnu.version true false false)\n(llvm:section-flags .dynstr true false false)\n(llvm:section-flags .dynsym true false false)\n(llvm:section-flags .gnu.hash true false false)\n(llvm:section-flags .note.ABI-tag true false false)\n(llvm:section-flags .note.gnu.build-id true false false)\n(llvm:section-flags .interp true false false)\n(llvm:symbol-entry abort 0 0 0 0)\n(llvm:symbol-entry __cxa_finalize 0 0 0 0)\n(llvm:symbol-entry __libc_start_main 0 0 0 0)\n(llvm:symbol-entry _init 1408 0 1408 1408)\n(llvm:symbol-entry main 1812 36 1812 1812)\n(llvm:symbol-entry _start 1536 52 1536 1536)\n(llvm:symbol-entry abort@GLIBC_2.17 0 0 0 0)\n(llvm:symbol-entry _fini 1848 0 1848 1848)\n(llvm:symbol-entry __cxa_finalize@GLIBC_2.17 0 0 0 0)\n(llvm:symbol-entry __libc_start_main@GLIBC_2.34 0 0 0 0)\n(llvm:symbol-entry frame_dummy 1808 0 1808 1808)\n(llvm:symbol-entry __do_global_dtors_aux 1728 0 1728 1728)\n(llvm:symbol-entry register_tm_clones 1664 0 1664 1664)\n(llvm:symbol-entry deregister_tm_clones 1616 0 1616 1616)\n(llvm:symbol-entry call_weak_fn 1588 20 1588 1588)\n(mapped 0 2096 0)\n(mapped 69016 632 3480)\n(named-region 0 2096 02)\n(named-region 69016 648 03)\n(named-region 568 27 .interp)\n(named-region 596 36 .note.gnu.build-id)\n(named-region 632 32 .note.ABI-tag)\n(named-region 664 28 .gnu.hash)\n(named-region 696 216 .dynsym)\n(named-region 912 141 .dynstr)\n(named-region 1054 18 .gnu.version)\n(named-region 1072 48 .gnu.version_r)\n(named-region 1120 192 .rela.dyn)\n(named-region 1312 96 .rela.plt)\n(named-region 1408 24 .init)\n(named-region 1440 96 .plt)\n(named-region 1536 312 .text)\n(named-region 1848 20 .fini)\n(named-region 1868 4 .rodata)\n(named-region 1872 60 .eh_frame_hdr)\n(named-region 1936 160 .eh_frame)\n(named-region 69016 8 .init_array)\n(named-region 69024 8 .fini_array)\n(named-region 69032 496 .dynamic)\n(named-region 69528 104 .got)\n(named-region 69632 16 .data)\n(named-region 69648 16 .bss)\n(named-region 0 43 .comment)\n(named-region 0 2136 .symtab)\n(named-region 0 555 .strtab)\n(named-region 0 250 .shstrtab)\n(named-symbol 1588 call_weak_fn)\n(named-symbol 1616 deregister_tm_clones)\n(named-symbol 1664 register_tm_clones)\n(named-symbol 1728 __do_global_dtors_aux)\n(named-symbol 1808 frame_dummy)\n(named-symbol 0 __libc_start_main@GLIBC_2.34)\n(named-symbol 0 __cxa_finalize@GLIBC_2.17)\n(named-symbol 1848 _fini)\n(named-symbol 0 abort@GLIBC_2.17)\n(named-symbol 1536 _start)\n(named-symbol 1812 main)\n(named-symbol 1408 _init)\n(named-symbol 0 __libc_start_main)\n(named-symbol 0 __cxa_finalize)\n(named-symbol 0 abort)\n(require libc.so.6)\n(section 568 27)\n(section 596 36)\n(section 632 32)\n(section 664 28)\n(section 696 216)\n(section 912 141)\n(section 1054 18)\n(section 1072 48)\n(section 1120 192)\n(section 1312 96)\n(section 1408 24)\n(section 1440 96)\n(section 1536 312)\n(section 1848 20)\n(section 1868 4)\n(section 1872 60)\n(section 1936 160)\n(section 69016 8)\n(section 69024 8)\n(section 69032 496)\n(section 69528 104)\n(section 69632 16)\n(section 69648 16)\n(section 0 43)\n(section 0 2136)\n(section 0 555)\n(section 0 250)\n(segment 0 2096 true false true)\n(segment 69016 648 true true false)\n(subarch v8)\n(symbol-chunk 1588 20 1588)\n(symbol-chunk 1536 52 1536)\n(symbol-chunk 1812 36 1812)\n(symbol-value 1588 1588)\n(symbol-value 1616 1616)\n(symbol-value 1664 1664)\n(symbol-value 1728 1728)\n(symbol-value 1808 1808)\n(symbol-value 1848 1848)\n(symbol-value 1536 1536)\n(symbol-value 1812 1812)\n(symbol-value 1408 1408)\n(symbol-value 0 0)\n(system \"\")\n(vendor \"\")\n"), -Attr("abi-name","\"aarch64-linux-gnu-elf\"")]), -Sections([Section(".shstrtab", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x00\x06\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xc0\x1b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x38\x00\x09\x00\x40\x00\x1c\x00\x1b\x00\x06\x00\x00\x00\x04\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x04\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x30\x08\x00\x00\x00\x00\x00\x00\x30\x08\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x01\x00\x00\x00\x06\x00\x00\x00\x98\x0d\x00\x00\x00\x00\x00\x00\x98\x0d"), -Section(".strtab", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x00\x06\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xc0\x1b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x38\x00\x09\x00\x40\x00\x1c\x00\x1b\x00\x06\x00\x00\x00\x04\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x04\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x30\x08\x00\x00\x00\x00\x00\x00\x30\x08\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x01\x00\x00\x00\x06\x00\x00\x00\x98\x0d\x00\x00\x00\x00\x00\x00\x98\x0d\x01\x00\x00\x00\x00\x00\x98\x0d\x01\x00\x00\x00\x00\x00\x78\x02\x00\x00\x00\x00\x00\x00\x88\x02\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x02\x00\x00\x00\x06\x00\x00\x00\xa8\x0d\x00\x00\x00\x00\x00\x00\xa8\x0d\x01\x00\x00\x00\x00\x00\xa8\x0d\x01\x00\x00\x00\x00\x00\xf0\x01\x00\x00\x00\x00\x00\x00\xf0\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x04\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x50\xe5\x74\x64\x04\x00\x00\x00\x50\x07\x00\x00\x00\x00\x00\x00\x50\x07\x00\x00\x00\x00\x00\x00\x50\x07\x00\x00\x00\x00\x00\x00\x3c\x00\x00\x00\x00\x00\x00\x00\x3c\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x51\xe5\x74\x64\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x52\xe5\x74\x64\x04\x00\x00\x00\x98\x0d\x00\x00\x00\x00\x00\x00\x98\x0d\x01\x00\x00\x00\x00\x00\x98\x0d\x01\x00\x00\x00\x00\x00\x68\x02\x00\x00\x00\x00\x00\x00\x68\x02\x00"), -Section(".comment", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x00\x06\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xc0\x1b\x00"), -Section(".interp", 0x238, "\x2f\x6c\x69\x62\x2f\x6c\x64\x2d\x6c\x69\x6e\x75\x78\x2d\x61\x61\x72\x63\x68\x36\x34\x2e\x73\x6f\x2e\x31\x00"), -Section(".note.gnu.build-id", 0x254, "\x04\x00\x00\x00\x14\x00\x00\x00\x03\x00\x00\x00\x47\x4e\x55\x00\x2e\x53\xdd\x85\x30\xc0\xa6\xea\x00\xe0\xd6\x5c\x1a\xcc\x1f\x88\x86\x45\x3b\xe1"), -Section(".note.ABI-tag", 0x278, "\x04\x00\x00\x00\x10\x00\x00\x00\x01\x00\x00\x00\x47\x4e\x55\x00\x00\x00\x00\x00\x03\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00"), -Section(".gnu.hash", 0x298, "\x01\x00\x00\x00\x01\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".dynsym", 0x2B8, "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x0b\x00\x80\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x16\x00\x00\x10\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x48\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x22\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x22\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x73\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".dynstr", 0x390, "\x00\x5f\x5f\x63\x78\x61\x5f\x66\x69\x6e\x61\x6c\x69\x7a\x65\x00\x5f\x5f\x6c\x69\x62\x63\x5f\x73\x74\x61\x72\x74\x5f\x6d\x61\x69\x6e\x00\x61\x62\x6f\x72\x74\x00\x6c\x69\x62\x63\x2e\x73\x6f\x2e\x36\x00\x47\x4c\x49\x42\x43\x5f\x32\x2e\x31\x37\x00\x47\x4c\x49\x42\x43\x5f\x32\x2e\x33\x34\x00\x5f\x49\x54\x4d\x5f\x64\x65\x72\x65\x67\x69\x73\x74\x65\x72\x54\x4d\x43\x6c\x6f\x6e\x65\x54\x61\x62\x6c\x65\x00\x5f\x5f\x67\x6d\x6f\x6e\x5f\x73\x74\x61\x72\x74\x5f\x5f\x00\x5f\x49\x54\x4d\x5f\x72\x65\x67\x69\x73\x74\x65\x72\x54\x4d\x43\x6c\x6f\x6e\x65\x54\x61\x62\x6c\x65\x00"), -Section(".gnu.version", 0x41E, "\x00\x00\x00\x00\x00\x00\x02\x00\x01\x00\x03\x00\x01\x00\x03\x00\x01\x00"), -Section(".gnu.version_r", 0x430, "\x01\x00\x02\x00\x28\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x97\x91\x96\x06\x00\x00\x03\x00\x32\x00\x00\x00\x10\x00\x00\x00\xb4\x91\x96\x06\x00\x00\x02\x00\x3d\x00\x00\x00\x00\x00\x00\x00"), -Section(".rela.dyn", 0x460, "\x98\x0d\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x10\x07\x00\x00\x00\x00\x00\x00\xa0\x0d\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\xc0\x06\x00\x00\x00\x00\x00\x00\xf0\x0f\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x14\x07\x00\x00\x00\x00\x00\x00\x08\x10\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x08\x10\x01\x00\x00\x00\x00\x00\xd8\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe0\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe8\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xf8\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".rela.plt", 0x520, "\xb0\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xb8\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xc0\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xc8\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".init", 0x580, "\x1f\x20\x03\xd5\xfd\x7b\xbf\xa9\xfd\x03\x00\x91\x2a\x00\x00\x94\xfd\x7b\xc1\xa8\xc0\x03\x5f\xd6"), -Section(".plt", 0x5A0, "\xf0\x7b\xbf\xa9\x90\x00\x00\x90\x11\xd6\x47\xf9\x10\xa2\x3e\x91\x20\x02\x1f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x90\x00\x00\x90\x11\xda\x47\xf9\x10\xc2\x3e\x91\x20\x02\x1f\xd6\x90\x00\x00\x90\x11\xde\x47\xf9\x10\xe2\x3e\x91\x20\x02\x1f\xd6\x90\x00\x00\x90\x11\xe2\x47\xf9\x10\x02\x3f\x91\x20\x02\x1f\xd6\x90\x00\x00\x90\x11\xe6\x47\xf9\x10\x22\x3f\x91\x20\x02\x1f\xd6"), -Section(".text", 0x600, "\x1f\x20\x03\xd5\x1d\x00\x80\xd2\x1e\x00\x80\xd2\xe5\x03\x00\xaa\xe1\x03\x40\xf9\xe2\x23\x00\x91\xe6\x03\x00\x91\x80\x00\x00\x90\x00\xf8\x47\xf9\x03\x00\x80\xd2\x04\x00\x80\xd2\xe5\xff\xff\x97\xf0\xff\xff\x97\x80\x00\x00\x90\x00\xf4\x47\xf9\x40\x00\x00\xb4\xe8\xff\xff\x17\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x80\x00\x00\xb0\x00\x40\x00\x91\x81\x00\x00\xb0\x21\x40\x00\x91\x3f\x00\x00\xeb\xc0\x00\x00\x54\x81\x00\x00\x90\x21\xec\x47\xf9\x61\x00\x00\xb4\xf0\x03\x01\xaa\x00\x02\x1f\xd6\xc0\x03\x5f\xd6\x80\x00\x00\xb0\x00\x40\x00\x91\x81\x00\x00\xb0\x21\x40\x00\x91\x21\x00\x00\xcb\x22\xfc\x7f\xd3\x41\x0c\x81\x8b\x21\xfc\x41\x93\xc1\x00\x00\xb4\x82\x00\x00\x90\x42\xfc\x47\xf9\x62\x00\x00\xb4\xf0\x03\x02\xaa\x00\x02\x1f\xd6\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\xfd\x7b\xbe\xa9\xfd\x03\x00\x91\xf3\x0b\x00\xf9\x93\x00\x00\xb0\x60\x42\x40\x39\x40\x01\x00\x35\x80\x00\x00\x90\x00\xf0\x47\xf9\x80\x00\x00\xb4\x80\x00\x00\xb0\x00\x04\x40\xf9\xb9\xff\xff\x97\xd8\xff\xff\x97\x20\x00\x80\x52\x60\x42\x00\x39\xf3\x0b\x40\xf9\xfd\x7b\xc2\xa8\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\xdc\xff\xff\x17\x80\x00\x00\xb0\x00\x50\x00\x91\x21\x00\x80\x52\x01\x00\x00\xb9\x80\x00\x00\xb0\x00\x60\x00\x91\x1f\x00\x00\xb9\x00\x00\x80\x52\xc0\x03\x5f\xd6"), -Section(".fini", 0x738, "\x1f\x20\x03\xd5\xfd\x7b\xbf\xa9\xfd\x03\x00\x91\xfd\x7b\xc1\xa8\xc0\x03\x5f\xd6"), -Section(".rodata", 0x74C, "\x01\x00\x02\x00"), -Section(".eh_frame_hdr", 0x750, "\x01\x1b\x03\x3b\x3c\x00\x00\x00\x06\x00\x00\x00\xb0\xfe\xff\xff\x54\x00\x00\x00\x00\xff\xff\xff\x68\x00\x00\x00\x30\xff\xff\xff\x7c\x00\x00\x00\x70\xff\xff\xff\x90\x00\x00\x00\xc0\xff\xff\xff\xb4\x00\x00\x00\xc4\xff\xff\xff\xc8\x00\x00\x00"), -Section(".eh_frame", 0x790, "\x10\x00\x00\x00\x00\x00\x00\x00\x01\x7a\x52\x00\x04\x78\x1e\x01\x1b\x0c\x1f\x00\x10\x00\x00\x00\x18\x00\x00\x00\x54\xfe\xff\xff\x34\x00\x00\x00\x00\x41\x07\x1e\x10\x00\x00\x00\x2c\x00\x00\x00\x90\xfe\xff\xff\x30\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x40\x00\x00\x00\xac\xfe\xff\xff\x3c\x00\x00\x00\x00\x00\x00\x00\x20\x00\x00\x00\x54\x00\x00\x00\xd8\xfe\xff\xff\x48\x00\x00\x00\x00\x41\x0e\x20\x9d\x04\x9e\x03\x42\x93\x02\x4e\xde\xdd\xd3\x0e\x00\x00\x00\x00\x10\x00\x00\x00\x78\x00\x00\x00\x04\xff\xff\xff\x04\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x8c\x00\x00\x00\xf4\xfe\xff\xff\x24\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".fini_array", 0x10DA0, "\xc0\x06\x00\x00\x00\x00\x00\x00"), -Section(".dynamic", 0x10DA8, "\x01\x00\x00\x00\x00\x00\x00\x00\x28\x00\x00\x00\x00\x00\x00\x00\x0c\x00\x00\x00\x00\x00\x00\x00\x80\x05\x00\x00\x00\x00\x00\x00\x0d\x00\x00\x00\x00\x00\x00\x00\x38\x07\x00\x00\x00\x00\x00\x00\x19\x00\x00\x00\x00\x00\x00\x00\x98\x0d\x01\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x1a\x00\x00\x00\x00\x00\x00\x00\xa0\x0d\x01\x00\x00\x00\x00\x00\x1c\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\xf5\xfe\xff\x6f\x00\x00\x00\x00\x98\x02\x00\x00\x00\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x90\x03\x00\x00\x00\x00\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\xb8\x02\x00\x00\x00\x00\x00\x00\x0a\x00\x00\x00\x00\x00\x00\x00\x8d\x00\x00\x00\x00\x00\x00\x00\x0b\x00\x00\x00\x00\x00\x00\x00\x18\x00\x00\x00\x00\x00\x00\x00\x15\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x98\x0f\x01\x00\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x60\x00\x00\x00\x00\x00\x00\x00\x14\x00\x00\x00\x00\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x17\x00\x00\x00\x00\x00\x00\x00\x20\x05\x00\x00\x00\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x60\x04\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\xc0\x00\x00\x00\x00\x00\x00\x00\x09\x00\x00\x00\x00\x00\x00\x00\x18\x00\x00\x00\x00\x00\x00\x00\x1e\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\xfb\xff\xff\x6f\x00\x00\x00\x00\x01\x00\x00\x08\x00\x00\x00\x00\xfe\xff\xff\x6f\x00\x00\x00\x00\x30\x04\x00\x00\x00\x00\x00\x00\xff\xff\xff\x6f\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\xf0\xff\xff\x6f\x00\x00\x00\x00\x1e\x04\x00\x00\x00\x00\x00\x00\xf9\xff\xff\x6f\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".got", 0x10F98, "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xa0\x05\x00\x00\x00\x00\x00\x00\xa0\x05\x00\x00\x00\x00\x00\x00\xa0\x05\x00\x00\x00\x00\x00\x00\xa0\x05\x00\x00\x00\x00\x00\x00\xa8\x0d\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x14\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".data", 0x11000, "\x00\x00\x00\x00\x00\x00\x00\x00\x08\x10\x01\x00\x00\x00\x00\x00"), -Section(".init_array", 0x10D98, "\x10\x07\x00\x00\x00\x00\x00\x00")]), -Memmap([Annotation(Region(0x0,0x82F), Attr("segment","02 0 2096")), -Annotation(Region(0x600,0x633), Attr("symbol","\"_start\"")), -Annotation(Region(0x0,0xF9), Attr("section","\".shstrtab\"")), -Annotation(Region(0x0,0x22A), Attr("section","\".strtab\"")), -Annotation(Region(0x0,0x2A), Attr("section","\".comment\"")), -Annotation(Region(0x238,0x252), Attr("section","\".interp\"")), -Annotation(Region(0x254,0x277), Attr("section","\".note.gnu.build-id\"")), -Annotation(Region(0x278,0x297), Attr("section","\".note.ABI-tag\"")), -Annotation(Region(0x298,0x2B3), Attr("section","\".gnu.hash\"")), -Annotation(Region(0x2B8,0x38F), Attr("section","\".dynsym\"")), -Annotation(Region(0x390,0x41C), Attr("section","\".dynstr\"")), -Annotation(Region(0x41E,0x42F), Attr("section","\".gnu.version\"")), -Annotation(Region(0x430,0x45F), Attr("section","\".gnu.version_r\"")), -Annotation(Region(0x460,0x51F), Attr("section","\".rela.dyn\"")), -Annotation(Region(0x520,0x57F), Attr("section","\".rela.plt\"")), -Annotation(Region(0x580,0x597), Attr("section","\".init\"")), -Annotation(Region(0x5A0,0x5FF), Attr("section","\".plt\"")), -Annotation(Region(0x580,0x597), Attr("code-region","()")), -Annotation(Region(0x5A0,0x5FF), Attr("code-region","()")), -Annotation(Region(0x600,0x633), Attr("symbol-info","_start 0x600 52")), -Annotation(Region(0x634,0x647), Attr("symbol","\"call_weak_fn\"")), -Annotation(Region(0x634,0x647), Attr("symbol-info","call_weak_fn 0x634 20")), -Annotation(Region(0x600,0x737), Attr("section","\".text\"")), -Annotation(Region(0x600,0x737), Attr("code-region","()")), -Annotation(Region(0x714,0x737), Attr("symbol","\"main\"")), -Annotation(Region(0x714,0x737), Attr("symbol-info","main 0x714 36")), -Annotation(Region(0x738,0x74B), Attr("section","\".fini\"")), -Annotation(Region(0x738,0x74B), Attr("code-region","()")), -Annotation(Region(0x74C,0x74F), Attr("section","\".rodata\"")), -Annotation(Region(0x750,0x78B), Attr("section","\".eh_frame_hdr\"")), -Annotation(Region(0x790,0x82F), Attr("section","\".eh_frame\"")), -Annotation(Region(0x10D98,0x1100F), Attr("segment","03 0x10D98 648")), -Annotation(Region(0x10DA0,0x10DA7), Attr("section","\".fini_array\"")), -Annotation(Region(0x10DA8,0x10F97), Attr("section","\".dynamic\"")), -Annotation(Region(0x10F98,0x10FFF), Attr("section","\".got\"")), -Annotation(Region(0x11000,0x1100F), Attr("section","\".data\"")), -Annotation(Region(0x10D98,0x10D9F), Attr("section","\".init_array\""))]), -Program(Tid(1_465, "%000005b9"), Attrs([]), - Subs([Sub(Tid(1_415, "@__cxa_finalize"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x5D0"), -Attr("stub","()")]), "__cxa_finalize", Args([Arg(Tid(1_466, "%000005ba"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("__cxa_finalize_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(825, "@__cxa_finalize"), - Attrs([Attr("address","0x5D0")]), Phis([]), -Defs([Def(Tid(1_073, "%00000431"), Attrs([Attr("address","0x5D0"), -Attr("insn","adrp x16, #65536")]), Var("R16",Imm(64)), Int(65536,64)), -Def(Tid(1_080, "%00000438"), Attrs([Attr("address","0x5D4"), -Attr("insn","ldr x17, [x16, #0xfb8]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(4024,64)),LittleEndian(),64)), -Def(Tid(1_086, "%0000043e"), Attrs([Attr("address","0x5D8"), -Attr("insn","add x16, x16, #0xfb8")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(4024,64)))]), Jmps([Call(Tid(1_091, "%00000443"), - Attrs([Attr("address","0x5DC"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), -Sub(Tid(1_416, "@__do_global_dtors_aux"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x6C0")]), - "__do_global_dtors_aux", Args([Arg(Tid(1_467, "%000005bb"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("__do_global_dtors_aux_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(626, "@__do_global_dtors_aux"), - Attrs([Attr("address","0x6C0")]), Phis([]), Defs([Def(Tid(630, "%00000276"), - Attrs([Attr("address","0x6C0"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("#3",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(18446744073709551584,64))), -Def(Tid(636, "%0000027c"), Attrs([Attr("address","0x6C0"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("#3",Imm(64)),Var("R29",Imm(64)),LittleEndian(),64)), -Def(Tid(642, "%00000282"), Attrs([Attr("address","0x6C0"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("#3",Imm(64)),Int(8,64)),Var("R30",Imm(64)),LittleEndian(),64)), -Def(Tid(646, "%00000286"), Attrs([Attr("address","0x6C0"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("R31",Imm(64)), -Var("#3",Imm(64))), Def(Tid(652, "%0000028c"), - Attrs([Attr("address","0x6C4"), Attr("insn","mov x29, sp")]), - Var("R29",Imm(64)), Var("R31",Imm(64))), Def(Tid(660, "%00000294"), - Attrs([Attr("address","0x6C8"), Attr("insn","str x19, [sp, #0x10]")]), - Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(16,64)),Var("R19",Imm(64)),LittleEndian(),64)), -Def(Tid(665, "%00000299"), Attrs([Attr("address","0x6CC"), -Attr("insn","adrp x19, #69632")]), Var("R19",Imm(64)), Int(69632,64)), -Def(Tid(672, "%000002a0"), Attrs([Attr("address","0x6D0"), -Attr("insn","ldrb w0, [x19, #0x10]")]), Var("R0",Imm(64)), -UNSIGNED(64,Load(Var("mem",Mem(64,8)),PLUS(Var("R19",Imm(64)),Int(16,64)),LittleEndian(),8)))]), -Jmps([Goto(Tid(679, "%000002a7"), Attrs([Attr("address","0x6D4"), -Attr("insn","cbnz w0, #0x28")]), - NEQ(Extract(31,0,Var("R0",Imm(64))),Int(0,32)), -Direct(Tid(677, "%000002a5"))), Goto(Tid(1_455, "%000005af"), Attrs([]), - Int(1,1), Direct(Tid(770, "%00000302")))])), Blk(Tid(770, "%00000302"), - Attrs([Attr("address","0x6D8")]), Phis([]), Defs([Def(Tid(773, "%00000305"), - Attrs([Attr("address","0x6D8"), Attr("insn","adrp x0, #65536")]), - Var("R0",Imm(64)), Int(65536,64)), Def(Tid(780, "%0000030c"), - Attrs([Attr("address","0x6DC"), Attr("insn","ldr x0, [x0, #0xfe0]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(4064,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(786, "%00000312"), Attrs([Attr("address","0x6E0"), -Attr("insn","cbz x0, #0x10")]), EQ(Var("R0",Imm(64)),Int(0,64)), -Direct(Tid(784, "%00000310"))), Goto(Tid(1_456, "%000005b0"), Attrs([]), - Int(1,1), Direct(Tid(809, "%00000329")))])), Blk(Tid(809, "%00000329"), - Attrs([Attr("address","0x6E4")]), Phis([]), Defs([Def(Tid(812, "%0000032c"), - Attrs([Attr("address","0x6E4"), Attr("insn","adrp x0, #69632")]), - Var("R0",Imm(64)), Int(69632,64)), Def(Tid(819, "%00000333"), - Attrs([Attr("address","0x6E8"), Attr("insn","ldr x0, [x0, #0x8]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(824, "%00000338"), Attrs([Attr("address","0x6EC"), -Attr("insn","bl #-0x11c")]), Var("R30",Imm(64)), Int(1776,64))]), -Jmps([Call(Tid(827, "%0000033b"), Attrs([Attr("address","0x6EC"), -Attr("insn","bl #-0x11c")]), Int(1,1), -(Direct(Tid(1_415, "@__cxa_finalize")),Direct(Tid(784, "%00000310"))))])), -Blk(Tid(784, "%00000310"), Attrs([Attr("address","0x6F0")]), Phis([]), -Defs([Def(Tid(792, "%00000318"), Attrs([Attr("address","0x6F0"), -Attr("insn","bl #-0xa0")]), Var("R30",Imm(64)), Int(1780,64))]), -Jmps([Call(Tid(794, "%0000031a"), Attrs([Attr("address","0x6F0"), -Attr("insn","bl #-0xa0")]), Int(1,1), -(Direct(Tid(1_429, "@deregister_tm_clones")),Direct(Tid(796, "%0000031c"))))])), -Blk(Tid(796, "%0000031c"), Attrs([Attr("address","0x6F4")]), Phis([]), -Defs([Def(Tid(799, "%0000031f"), Attrs([Attr("address","0x6F4"), -Attr("insn","mov w0, #0x1")]), Var("R0",Imm(64)), Int(1,64)), -Def(Tid(807, "%00000327"), Attrs([Attr("address","0x6F8"), -Attr("insn","strb w0, [x19, #0x10]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R19",Imm(64)),Int(16,64)),Extract(7,0,Var("R0",Imm(64))),LittleEndian(),8))]), -Jmps([Goto(Tid(1_457, "%000005b1"), Attrs([]), Int(1,1), -Direct(Tid(677, "%000002a5")))])), Blk(Tid(677, "%000002a5"), - Attrs([Attr("address","0x6FC")]), Phis([]), Defs([Def(Tid(687, "%000002af"), - Attrs([Attr("address","0x6FC"), Attr("insn","ldr x19, [sp, #0x10]")]), - Var("R19",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(16,64)),LittleEndian(),64)), -Def(Tid(694, "%000002b6"), Attrs([Attr("address","0x700"), -Attr("insn","ldp x29, x30, [sp], #0x20")]), Var("R29",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(699, "%000002bb"), Attrs([Attr("address","0x700"), -Attr("insn","ldp x29, x30, [sp], #0x20")]), Var("R30",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(703, "%000002bf"), Attrs([Attr("address","0x700"), -Attr("insn","ldp x29, x30, [sp], #0x20")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(32,64)))]), Jmps([Call(Tid(708, "%000002c4"), - Attrs([Attr("address","0x704"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), Sub(Tid(1_420, "@__libc_start_main"), - Attrs([Attr("c.proto","signed (*)(signed (*)(signed , char** , char** );* main, signed , char** , \nvoid* auxv)"), -Attr("address","0x5C0"), Attr("stub","()")]), "__libc_start_main", - Args([Arg(Tid(1_468, "%000005bc"), - Attrs([Attr("c.layout","**[ : 64]"), -Attr("c.data","Top:u64 ptr ptr"), -Attr("c.type","signed (*)(signed , char** , char** );*")]), - Var("__libc_start_main_main",Imm(64)), Var("R0",Imm(64)), In()), -Arg(Tid(1_469, "%000005bd"), Attrs([Attr("c.layout","[signed : 32]"), -Attr("c.data","Top:u32"), Attr("c.type","signed")]), - Var("__libc_start_main_arg2",Imm(32)), LOW(32,Var("R1",Imm(64))), In()), -Arg(Tid(1_470, "%000005be"), Attrs([Attr("c.layout","**[char : 8]"), -Attr("c.data","Top:u8 ptr ptr"), Attr("c.type","char**")]), - Var("__libc_start_main_arg3",Imm(64)), Var("R2",Imm(64)), Both()), -Arg(Tid(1_471, "%000005bf"), Attrs([Attr("c.layout","*[ : 8]"), -Attr("c.data","{} ptr"), Attr("c.type","void*")]), - Var("__libc_start_main_auxv",Imm(64)), Var("R3",Imm(64)), Both()), -Arg(Tid(1_472, "%000005c0"), Attrs([Attr("c.layout","[signed : 32]"), -Attr("c.data","Top:u32"), Attr("c.type","signed")]), - Var("__libc_start_main_result",Imm(32)), LOW(32,Var("R0",Imm(64))), -Out())]), Blks([Blk(Tid(459, "@__libc_start_main"), - Attrs([Attr("address","0x5C0")]), Phis([]), -Defs([Def(Tid(1_051, "%0000041b"), Attrs([Attr("address","0x5C0"), -Attr("insn","adrp x16, #65536")]), Var("R16",Imm(64)), Int(65536,64)), -Def(Tid(1_058, "%00000422"), Attrs([Attr("address","0x5C4"), -Attr("insn","ldr x17, [x16, #0xfb0]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(4016,64)),LittleEndian(),64)), -Def(Tid(1_064, "%00000428"), Attrs([Attr("address","0x5C8"), -Attr("insn","add x16, x16, #0xfb0")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(4016,64)))]), Jmps([Call(Tid(1_069, "%0000042d"), - Attrs([Attr("address","0x5CC"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), Sub(Tid(1_421, "@_fini"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x738")]), - "_fini", Args([Arg(Tid(1_473, "%000005c1"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("_fini_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(31, "@_fini"), - Attrs([Attr("address","0x738")]), Phis([]), Defs([Def(Tid(37, "%00000025"), - Attrs([Attr("address","0x73C"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("#0",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(18446744073709551600,64))), -Def(Tid(43, "%0000002b"), Attrs([Attr("address","0x73C"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("#0",Imm(64)),Var("R29",Imm(64)),LittleEndian(),64)), -Def(Tid(49, "%00000031"), Attrs([Attr("address","0x73C"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("#0",Imm(64)),Int(8,64)),Var("R30",Imm(64)),LittleEndian(),64)), -Def(Tid(53, "%00000035"), Attrs([Attr("address","0x73C"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("R31",Imm(64)), -Var("#0",Imm(64))), Def(Tid(59, "%0000003b"), Attrs([Attr("address","0x740"), -Attr("insn","mov x29, sp")]), Var("R29",Imm(64)), Var("R31",Imm(64))), -Def(Tid(66, "%00000042"), Attrs([Attr("address","0x744"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R29",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(71, "%00000047"), Attrs([Attr("address","0x744"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R30",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(75, "%0000004b"), Attrs([Attr("address","0x744"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(16,64)))]), Jmps([Call(Tid(80, "%00000050"), - Attrs([Attr("address","0x748"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), Sub(Tid(1_422, "@_init"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x580")]), - "_init", Args([Arg(Tid(1_474, "%000005c2"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("_init_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(1_248, "@_init"), - Attrs([Attr("address","0x580")]), Phis([]), -Defs([Def(Tid(1_254, "%000004e6"), Attrs([Attr("address","0x584"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("#5",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(18446744073709551600,64))), -Def(Tid(1_260, "%000004ec"), Attrs([Attr("address","0x584"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("#5",Imm(64)),Var("R29",Imm(64)),LittleEndian(),64)), -Def(Tid(1_266, "%000004f2"), Attrs([Attr("address","0x584"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("#5",Imm(64)),Int(8,64)),Var("R30",Imm(64)),LittleEndian(),64)), -Def(Tid(1_270, "%000004f6"), Attrs([Attr("address","0x584"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("R31",Imm(64)), -Var("#5",Imm(64))), Def(Tid(1_276, "%000004fc"), - Attrs([Attr("address","0x588"), Attr("insn","mov x29, sp")]), - Var("R29",Imm(64)), Var("R31",Imm(64))), Def(Tid(1_281, "%00000501"), - Attrs([Attr("address","0x58C"), Attr("insn","bl #0xa8")]), - Var("R30",Imm(64)), Int(1424,64))]), Jmps([Call(Tid(1_283, "%00000503"), - Attrs([Attr("address","0x58C"), Attr("insn","bl #0xa8")]), Int(1,1), -(Direct(Tid(1_427, "@call_weak_fn")),Direct(Tid(1_285, "%00000505"))))])), -Blk(Tid(1_285, "%00000505"), Attrs([Attr("address","0x590")]), Phis([]), -Defs([Def(Tid(1_290, "%0000050a"), Attrs([Attr("address","0x590"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R29",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(1_295, "%0000050f"), Attrs([Attr("address","0x590"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R30",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(1_299, "%00000513"), Attrs([Attr("address","0x590"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(16,64)))]), Jmps([Call(Tid(1_304, "%00000518"), - Attrs([Attr("address","0x594"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), Sub(Tid(1_423, "@_start"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x600"), -Attr("stub","()"), Attr("entry-point","()")]), "_start", - Args([Arg(Tid(1_475, "%000005c3"), Attrs([Attr("c.layout","[signed : 32]"), -Attr("c.data","Top:u32"), Attr("c.type","signed")]), - Var("_start_result",Imm(32)), LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(396, "@_start"), Attrs([Attr("address","0x600")]), Phis([]), -Defs([Def(Tid(401, "%00000191"), Attrs([Attr("address","0x604"), -Attr("insn","mov x29, #0x0")]), Var("R29",Imm(64)), Int(0,64)), -Def(Tid(406, "%00000196"), Attrs([Attr("address","0x608"), -Attr("insn","mov x30, #0x0")]), Var("R30",Imm(64)), Int(0,64)), -Def(Tid(412, "%0000019c"), Attrs([Attr("address","0x60C"), -Attr("insn","mov x5, x0")]), Var("R5",Imm(64)), Var("R0",Imm(64))), -Def(Tid(419, "%000001a3"), Attrs([Attr("address","0x610"), -Attr("insn","ldr x1, [sp]")]), Var("R1",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(425, "%000001a9"), Attrs([Attr("address","0x614"), -Attr("insn","add x2, sp, #0x8")]), Var("R2",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(8,64))), Def(Tid(431, "%000001af"), - Attrs([Attr("address","0x618"), Attr("insn","mov x6, sp")]), - Var("R6",Imm(64)), Var("R31",Imm(64))), Def(Tid(436, "%000001b4"), - Attrs([Attr("address","0x61C"), Attr("insn","adrp x0, #65536")]), - Var("R0",Imm(64)), Int(65536,64)), Def(Tid(443, "%000001bb"), - Attrs([Attr("address","0x620"), Attr("insn","ldr x0, [x0, #0xff0]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(4080,64)),LittleEndian(),64)), -Def(Tid(448, "%000001c0"), Attrs([Attr("address","0x624"), -Attr("insn","mov x3, #0x0")]), Var("R3",Imm(64)), Int(0,64)), -Def(Tid(453, "%000001c5"), Attrs([Attr("address","0x628"), -Attr("insn","mov x4, #0x0")]), Var("R4",Imm(64)), Int(0,64)), -Def(Tid(458, "%000001ca"), Attrs([Attr("address","0x62C"), -Attr("insn","bl #-0x6c")]), Var("R30",Imm(64)), Int(1584,64))]), -Jmps([Call(Tid(461, "%000001cd"), Attrs([Attr("address","0x62C"), -Attr("insn","bl #-0x6c")]), Int(1,1), -(Direct(Tid(1_420, "@__libc_start_main")),Direct(Tid(463, "%000001cf"))))])), -Blk(Tid(463, "%000001cf"), Attrs([Attr("address","0x630")]), Phis([]), -Defs([Def(Tid(466, "%000001d2"), Attrs([Attr("address","0x630"), -Attr("insn","bl #-0x40")]), Var("R30",Imm(64)), Int(1588,64))]), -Jmps([Call(Tid(469, "%000001d5"), Attrs([Attr("address","0x630"), -Attr("insn","bl #-0x40")]), Int(1,1), -(Direct(Tid(1_426, "@abort")),Direct(Tid(1_458, "%000005b2"))))])), -Blk(Tid(1_458, "%000005b2"), Attrs([]), Phis([]), Defs([]), -Jmps([Call(Tid(1_459, "%000005b3"), Attrs([]), Int(1,1), -(Direct(Tid(1_427, "@call_weak_fn")),))]))])), Sub(Tid(1_426, "@abort"), - Attrs([Attr("noreturn","()"), Attr("c.proto","void (*)(void)"), -Attr("address","0x5F0"), Attr("stub","()")]), "abort", Args([]), -Blks([Blk(Tid(467, "@abort"), Attrs([Attr("address","0x5F0")]), Phis([]), -Defs([Def(Tid(1_117, "%0000045d"), Attrs([Attr("address","0x5F0"), -Attr("insn","adrp x16, #65536")]), Var("R16",Imm(64)), Int(65536,64)), -Def(Tid(1_124, "%00000464"), Attrs([Attr("address","0x5F4"), -Attr("insn","ldr x17, [x16, #0xfc8]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(4040,64)),LittleEndian(),64)), -Def(Tid(1_130, "%0000046a"), Attrs([Attr("address","0x5F8"), -Attr("insn","add x16, x16, #0xfc8")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(4040,64)))]), Jmps([Call(Tid(1_135, "%0000046f"), - Attrs([Attr("address","0x5FC"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), Sub(Tid(1_427, "@call_weak_fn"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x634")]), - "call_weak_fn", Args([Arg(Tid(1_476, "%000005c4"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("call_weak_fn_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(471, "@call_weak_fn"), - Attrs([Attr("address","0x634")]), Phis([]), Defs([Def(Tid(474, "%000001da"), - Attrs([Attr("address","0x634"), Attr("insn","adrp x0, #65536")]), - Var("R0",Imm(64)), Int(65536,64)), Def(Tid(481, "%000001e1"), - Attrs([Attr("address","0x638"), Attr("insn","ldr x0, [x0, #0xfe8]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(4072,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(487, "%000001e7"), Attrs([Attr("address","0x63C"), -Attr("insn","cbz x0, #0x8")]), EQ(Var("R0",Imm(64)),Int(0,64)), -Direct(Tid(485, "%000001e5"))), Goto(Tid(1_460, "%000005b4"), Attrs([]), - Int(1,1), Direct(Tid(889, "%00000379")))])), Blk(Tid(485, "%000001e5"), - Attrs([Attr("address","0x644")]), Phis([]), Defs([]), -Jmps([Call(Tid(493, "%000001ed"), Attrs([Attr("address","0x644"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))])), -Blk(Tid(889, "%00000379"), Attrs([Attr("address","0x640")]), Phis([]), -Defs([]), Jmps([Goto(Tid(892, "%0000037c"), Attrs([Attr("address","0x640"), -Attr("insn","b #-0x60")]), Int(1,1), Direct(Tid(890, "@__gmon_start__")))])), -Blk(Tid(890, "@__gmon_start__"), Attrs([Attr("address","0x5E0")]), Phis([]), -Defs([Def(Tid(1_095, "%00000447"), Attrs([Attr("address","0x5E0"), -Attr("insn","adrp x16, #65536")]), Var("R16",Imm(64)), Int(65536,64)), -Def(Tid(1_102, "%0000044e"), Attrs([Attr("address","0x5E4"), -Attr("insn","ldr x17, [x16, #0xfc0]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(4032,64)),LittleEndian(),64)), -Def(Tid(1_108, "%00000454"), Attrs([Attr("address","0x5E8"), -Attr("insn","add x16, x16, #0xfc0")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(4032,64)))]), Jmps([Call(Tid(1_113, "%00000459"), - Attrs([Attr("address","0x5EC"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), -Sub(Tid(1_429, "@deregister_tm_clones"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x650")]), - "deregister_tm_clones", Args([Arg(Tid(1_477, "%000005c5"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("deregister_tm_clones_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(499, "@deregister_tm_clones"), - Attrs([Attr("address","0x650")]), Phis([]), Defs([Def(Tid(502, "%000001f6"), - Attrs([Attr("address","0x650"), Attr("insn","adrp x0, #69632")]), - Var("R0",Imm(64)), Int(69632,64)), Def(Tid(508, "%000001fc"), - Attrs([Attr("address","0x654"), Attr("insn","add x0, x0, #0x10")]), - Var("R0",Imm(64)), PLUS(Var("R0",Imm(64)),Int(16,64))), -Def(Tid(513, "%00000201"), Attrs([Attr("address","0x658"), -Attr("insn","adrp x1, #69632")]), Var("R1",Imm(64)), Int(69632,64)), -Def(Tid(519, "%00000207"), Attrs([Attr("address","0x65C"), -Attr("insn","add x1, x1, #0x10")]), Var("R1",Imm(64)), -PLUS(Var("R1",Imm(64)),Int(16,64))), Def(Tid(525, "%0000020d"), - Attrs([Attr("address","0x660"), Attr("insn","cmp x1, x0")]), - Var("#1",Imm(64)), NOT(Var("R0",Imm(64)))), Def(Tid(530, "%00000212"), - Attrs([Attr("address","0x660"), Attr("insn","cmp x1, x0")]), - Var("#2",Imm(64)), PLUS(Var("R1",Imm(64)),NOT(Var("R0",Imm(64))))), -Def(Tid(536, "%00000218"), Attrs([Attr("address","0x660"), -Attr("insn","cmp x1, x0")]), Var("VF",Imm(1)), -NEQ(SIGNED(65,PLUS(Var("#2",Imm(64)),Int(1,64))),PLUS(PLUS(SIGNED(65,Var("R1",Imm(64))),SIGNED(65,Var("#1",Imm(64)))),Int(1,65)))), -Def(Tid(542, "%0000021e"), Attrs([Attr("address","0x660"), -Attr("insn","cmp x1, x0")]), Var("CF",Imm(1)), -NEQ(UNSIGNED(65,PLUS(Var("#2",Imm(64)),Int(1,64))),PLUS(PLUS(UNSIGNED(65,Var("R1",Imm(64))),UNSIGNED(65,Var("#1",Imm(64)))),Int(1,65)))), -Def(Tid(546, "%00000222"), Attrs([Attr("address","0x660"), -Attr("insn","cmp x1, x0")]), Var("ZF",Imm(1)), -EQ(PLUS(Var("#2",Imm(64)),Int(1,64)),Int(0,64))), Def(Tid(550, "%00000226"), - Attrs([Attr("address","0x660"), Attr("insn","cmp x1, x0")]), - Var("NF",Imm(1)), Extract(63,63,PLUS(Var("#2",Imm(64)),Int(1,64))))]), -Jmps([Goto(Tid(556, "%0000022c"), Attrs([Attr("address","0x664"), -Attr("insn","b.eq #0x18")]), EQ(Var("ZF",Imm(1)),Int(1,1)), -Direct(Tid(554, "%0000022a"))), Goto(Tid(1_461, "%000005b5"), Attrs([]), - Int(1,1), Direct(Tid(859, "%0000035b")))])), Blk(Tid(859, "%0000035b"), - Attrs([Attr("address","0x668")]), Phis([]), Defs([Def(Tid(862, "%0000035e"), - Attrs([Attr("address","0x668"), Attr("insn","adrp x1, #65536")]), - Var("R1",Imm(64)), Int(65536,64)), Def(Tid(869, "%00000365"), - Attrs([Attr("address","0x66C"), Attr("insn","ldr x1, [x1, #0xfd8]")]), - Var("R1",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R1",Imm(64)),Int(4056,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(874, "%0000036a"), Attrs([Attr("address","0x670"), -Attr("insn","cbz x1, #0xc")]), EQ(Var("R1",Imm(64)),Int(0,64)), -Direct(Tid(554, "%0000022a"))), Goto(Tid(1_462, "%000005b6"), Attrs([]), - Int(1,1), Direct(Tid(878, "%0000036e")))])), Blk(Tid(554, "%0000022a"), - Attrs([Attr("address","0x67C")]), Phis([]), Defs([]), -Jmps([Call(Tid(562, "%00000232"), Attrs([Attr("address","0x67C"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))])), -Blk(Tid(878, "%0000036e"), Attrs([Attr("address","0x674")]), Phis([]), -Defs([Def(Tid(882, "%00000372"), Attrs([Attr("address","0x674"), -Attr("insn","mov x16, x1")]), Var("R16",Imm(64)), Var("R1",Imm(64)))]), -Jmps([Call(Tid(887, "%00000377"), Attrs([Attr("address","0x678"), -Attr("insn","br x16")]), Int(1,1), (Indirect(Var("R16",Imm(64))),))]))])), -Sub(Tid(1_432, "@frame_dummy"), Attrs([Attr("c.proto","signed (*)(void)"), -Attr("address","0x710")]), "frame_dummy", Args([Arg(Tid(1_478, "%000005c6"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("frame_dummy_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(714, "@frame_dummy"), - Attrs([Attr("address","0x710")]), Phis([]), Defs([]), -Jmps([Call(Tid(716, "%000002cc"), Attrs([Attr("address","0x710"), -Attr("insn","b #-0x90")]), Int(1,1), -(Direct(Tid(1_434, "@register_tm_clones")),))]))])), Sub(Tid(1_433, "@main"), - Attrs([Attr("c.proto","signed (*)(signed argc, const char** argv)"), -Attr("address","0x714")]), "main", Args([Arg(Tid(1_479, "%000005c7"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("main_argc",Imm(32)), -LOW(32,Var("R0",Imm(64))), In()), Arg(Tid(1_480, "%000005c8"), - Attrs([Attr("c.layout","**[char : 8]"), Attr("c.data","Top:u8 ptr ptr"), -Attr("c.type"," const char**")]), Var("main_argv",Imm(64)), -Var("R1",Imm(64)), Both()), Arg(Tid(1_481, "%000005c9"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("main_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(718, "@main"), - Attrs([Attr("address","0x714")]), Phis([]), Defs([Def(Tid(721, "%000002d1"), - Attrs([Attr("address","0x714"), Attr("insn","adrp x0, #69632")]), - Var("R0",Imm(64)), Int(69632,64)), Def(Tid(727, "%000002d7"), - Attrs([Attr("address","0x718"), Attr("insn","add x0, x0, #0x14")]), - Var("R0",Imm(64)), PLUS(Var("R0",Imm(64)),Int(20,64))), -Def(Tid(732, "%000002dc"), Attrs([Attr("address","0x71C"), -Attr("insn","mov w1, #0x1")]), Var("R1",Imm(64)), Int(1,64)), -Def(Tid(740, "%000002e4"), Attrs([Attr("address","0x720"), -Attr("insn","str w1, [x0]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("R0",Imm(64)),Extract(31,0,Var("R1",Imm(64))),LittleEndian(),32)), -Def(Tid(745, "%000002e9"), Attrs([Attr("address","0x724"), -Attr("insn","adrp x0, #69632")]), Var("R0",Imm(64)), Int(69632,64)), -Def(Tid(751, "%000002ef"), Attrs([Attr("address","0x728"), -Attr("insn","add x0, x0, #0x18")]), Var("R0",Imm(64)), -PLUS(Var("R0",Imm(64)),Int(24,64))), Def(Tid(758, "%000002f6"), - Attrs([Attr("address","0x72C"), Attr("insn","str wzr, [x0]")]), - Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("R0",Imm(64)),Int(0,32),LittleEndian(),32)), -Def(Tid(763, "%000002fb"), Attrs([Attr("address","0x730"), -Attr("insn","mov w0, #0x0")]), Var("R0",Imm(64)), Int(0,64))]), -Jmps([Call(Tid(768, "%00000300"), Attrs([Attr("address","0x734"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))]))])), -Sub(Tid(1_434, "@register_tm_clones"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x680")]), - "register_tm_clones", Args([Arg(Tid(1_482, "%000005ca"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("register_tm_clones_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(564, "@register_tm_clones"), Attrs([Attr("address","0x680")]), - Phis([]), Defs([Def(Tid(567, "%00000237"), Attrs([Attr("address","0x680"), -Attr("insn","adrp x0, #69632")]), Var("R0",Imm(64)), Int(69632,64)), -Def(Tid(573, "%0000023d"), Attrs([Attr("address","0x684"), -Attr("insn","add x0, x0, #0x10")]), Var("R0",Imm(64)), -PLUS(Var("R0",Imm(64)),Int(16,64))), Def(Tid(578, "%00000242"), - Attrs([Attr("address","0x688"), Attr("insn","adrp x1, #69632")]), - Var("R1",Imm(64)), Int(69632,64)), Def(Tid(584, "%00000248"), - Attrs([Attr("address","0x68C"), Attr("insn","add x1, x1, #0x10")]), - Var("R1",Imm(64)), PLUS(Var("R1",Imm(64)),Int(16,64))), -Def(Tid(591, "%0000024f"), Attrs([Attr("address","0x690"), -Attr("insn","sub x1, x1, x0")]), Var("R1",Imm(64)), -PLUS(PLUS(Var("R1",Imm(64)),NOT(Var("R0",Imm(64)))),Int(1,64))), -Def(Tid(597, "%00000255"), Attrs([Attr("address","0x694"), -Attr("insn","lsr x2, x1, #63")]), Var("R2",Imm(64)), -Concat(Int(0,63),Extract(63,63,Var("R1",Imm(64))))), -Def(Tid(604, "%0000025c"), Attrs([Attr("address","0x698"), -Attr("insn","add x1, x2, x1, asr #3")]), Var("R1",Imm(64)), -PLUS(Var("R2",Imm(64)),ARSHIFT(Var("R1",Imm(64)),Int(3,3)))), -Def(Tid(610, "%00000262"), Attrs([Attr("address","0x69C"), -Attr("insn","asr x1, x1, #1")]), Var("R1",Imm(64)), -SIGNED(64,Extract(63,1,Var("R1",Imm(64)))))]), -Jmps([Goto(Tid(616, "%00000268"), Attrs([Attr("address","0x6A0"), -Attr("insn","cbz x1, #0x18")]), EQ(Var("R1",Imm(64)),Int(0,64)), -Direct(Tid(614, "%00000266"))), Goto(Tid(1_463, "%000005b7"), Attrs([]), - Int(1,1), Direct(Tid(829, "%0000033d")))])), Blk(Tid(829, "%0000033d"), - Attrs([Attr("address","0x6A4")]), Phis([]), Defs([Def(Tid(832, "%00000340"), - Attrs([Attr("address","0x6A4"), Attr("insn","adrp x2, #65536")]), - Var("R2",Imm(64)), Int(65536,64)), Def(Tid(839, "%00000347"), - Attrs([Attr("address","0x6A8"), Attr("insn","ldr x2, [x2, #0xff8]")]), - Var("R2",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R2",Imm(64)),Int(4088,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(844, "%0000034c"), Attrs([Attr("address","0x6AC"), -Attr("insn","cbz x2, #0xc")]), EQ(Var("R2",Imm(64)),Int(0,64)), -Direct(Tid(614, "%00000266"))), Goto(Tid(1_464, "%000005b8"), Attrs([]), - Int(1,1), Direct(Tid(848, "%00000350")))])), Blk(Tid(614, "%00000266"), - Attrs([Attr("address","0x6B8")]), Phis([]), Defs([]), -Jmps([Call(Tid(622, "%0000026e"), Attrs([Attr("address","0x6B8"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))])), -Blk(Tid(848, "%00000350"), Attrs([Attr("address","0x6B0")]), Phis([]), -Defs([Def(Tid(852, "%00000354"), Attrs([Attr("address","0x6B0"), -Attr("insn","mov x16, x2")]), Var("R16",Imm(64)), Var("R2",Imm(64)))]), -Jmps([Call(Tid(857, "%00000359"), Attrs([Attr("address","0x6B4"), -Attr("insn","br x16")]), Int(1,1), -(Indirect(Var("R16",Imm(64))),))]))]))]))) \ No newline at end of file diff --git a/src/test/correct/basic_lock_unlock/gcc/basic_lock_unlock.bir b/src/test/correct/basic_lock_unlock/gcc/basic_lock_unlock.bir deleted file mode 100644 index ba68d0123..000000000 --- a/src/test/correct/basic_lock_unlock/gcc/basic_lock_unlock.bir +++ /dev/null @@ -1,231 +0,0 @@ -000005b9: program -00000587: sub __cxa_finalize(__cxa_finalize_result) -000005ba: __cxa_finalize_result :: out u32 = low:32[R0] - -00000339: -00000431: R16 := 0x10000 -00000438: R17 := mem[R16 + 0xFB8, el]:u64 -0000043e: R16 := R16 + 0xFB8 -00000443: call R17 with noreturn - -00000588: sub __do_global_dtors_aux(__do_global_dtors_aux_result) -000005bb: __do_global_dtors_aux_result :: out u32 = low:32[R0] - -00000272: -00000276: #3 := R31 - 0x20 -0000027c: mem := mem with [#3, el]:u64 <- R29 -00000282: mem := mem with [#3 + 8, el]:u64 <- R30 -00000286: R31 := #3 -0000028c: R29 := R31 -00000294: mem := mem with [R31 + 0x10, el]:u64 <- R19 -00000299: R19 := 0x11000 -000002a0: R0 := pad:64[mem[R19 + 0x10]] -000002a7: when 31:0[R0] <> 0 goto %000002a5 -000005af: goto %00000302 - -00000302: -00000305: R0 := 0x10000 -0000030c: R0 := mem[R0 + 0xFE0, el]:u64 -00000312: when R0 = 0 goto %00000310 -000005b0: goto %00000329 - -00000329: -0000032c: R0 := 0x11000 -00000333: R0 := mem[R0 + 8, el]:u64 -00000338: R30 := 0x6F0 -0000033b: call @__cxa_finalize with return %00000310 - -00000310: -00000318: R30 := 0x6F4 -0000031a: call @deregister_tm_clones with return %0000031c - -0000031c: -0000031f: R0 := 1 -00000327: mem := mem with [R19 + 0x10] <- 7:0[R0] -000005b1: goto %000002a5 - -000002a5: -000002af: R19 := mem[R31 + 0x10, el]:u64 -000002b6: R29 := mem[R31, el]:u64 -000002bb: R30 := mem[R31 + 8, el]:u64 -000002bf: R31 := R31 + 0x20 -000002c4: call R30 with noreturn - -0000058c: sub __libc_start_main(__libc_start_main_main, __libc_start_main_arg2, __libc_start_main_arg3, __libc_start_main_auxv, __libc_start_main_result) -000005bc: __libc_start_main_main :: in u64 = R0 -000005bd: __libc_start_main_arg2 :: in u32 = low:32[R1] -000005be: __libc_start_main_arg3 :: in out u64 = R2 -000005bf: __libc_start_main_auxv :: in out u64 = R3 -000005c0: __libc_start_main_result :: out u32 = low:32[R0] - -000001cb: -0000041b: R16 := 0x10000 -00000422: R17 := mem[R16 + 0xFB0, el]:u64 -00000428: R16 := R16 + 0xFB0 -0000042d: call R17 with noreturn - -0000058d: sub _fini(_fini_result) -000005c1: _fini_result :: out u32 = low:32[R0] - -0000001f: -00000025: #0 := R31 - 0x10 -0000002b: mem := mem with [#0, el]:u64 <- R29 -00000031: mem := mem with [#0 + 8, el]:u64 <- R30 -00000035: R31 := #0 -0000003b: R29 := R31 -00000042: R29 := mem[R31, el]:u64 -00000047: R30 := mem[R31 + 8, el]:u64 -0000004b: R31 := R31 + 0x10 -00000050: call R30 with noreturn - -0000058e: sub _init(_init_result) -000005c2: _init_result :: out u32 = low:32[R0] - -000004e0: -000004e6: #5 := R31 - 0x10 -000004ec: mem := mem with [#5, el]:u64 <- R29 -000004f2: mem := mem with [#5 + 8, el]:u64 <- R30 -000004f6: R31 := #5 -000004fc: R29 := R31 -00000501: R30 := 0x590 -00000503: call @call_weak_fn with return %00000505 - -00000505: -0000050a: R29 := mem[R31, el]:u64 -0000050f: R30 := mem[R31 + 8, el]:u64 -00000513: R31 := R31 + 0x10 -00000518: call R30 with noreturn - -0000058f: sub _start(_start_result) -000005c3: _start_result :: out u32 = low:32[R0] - -0000018c: -00000191: R29 := 0 -00000196: R30 := 0 -0000019c: R5 := R0 -000001a3: R1 := mem[R31, el]:u64 -000001a9: R2 := R31 + 8 -000001af: R6 := R31 -000001b4: R0 := 0x10000 -000001bb: R0 := mem[R0 + 0xFF0, el]:u64 -000001c0: R3 := 0 -000001c5: R4 := 0 -000001ca: R30 := 0x630 -000001cd: call @__libc_start_main with return %000001cf - -000001cf: -000001d2: R30 := 0x634 -000001d5: call @abort with return %000005b2 - -000005b2: -000005b3: call @call_weak_fn with noreturn - -00000592: sub abort() - - -000001d3: -0000045d: R16 := 0x10000 -00000464: R17 := mem[R16 + 0xFC8, el]:u64 -0000046a: R16 := R16 + 0xFC8 -0000046f: call R17 with noreturn - -00000593: sub call_weak_fn(call_weak_fn_result) -000005c4: call_weak_fn_result :: out u32 = low:32[R0] - -000001d7: -000001da: R0 := 0x10000 -000001e1: R0 := mem[R0 + 0xFE8, el]:u64 -000001e7: when R0 = 0 goto %000001e5 -000005b4: goto %00000379 - -000001e5: -000001ed: call R30 with noreturn - -00000379: -0000037c: goto @__gmon_start__ - -0000037a: -00000447: R16 := 0x10000 -0000044e: R17 := mem[R16 + 0xFC0, el]:u64 -00000454: R16 := R16 + 0xFC0 -00000459: call R17 with noreturn - -00000595: sub deregister_tm_clones(deregister_tm_clones_result) -000005c5: deregister_tm_clones_result :: out u32 = low:32[R0] - -000001f3: -000001f6: R0 := 0x11000 -000001fc: R0 := R0 + 0x10 -00000201: R1 := 0x11000 -00000207: R1 := R1 + 0x10 -0000020d: #1 := ~R0 -00000212: #2 := R1 + ~R0 -00000218: VF := extend:65[#2 + 1] <> extend:65[R1] + extend:65[#1] + 1 -0000021e: CF := pad:65[#2 + 1] <> pad:65[R1] + pad:65[#1] + 1 -00000222: ZF := #2 + 1 = 0 -00000226: NF := 63:63[#2 + 1] -0000022c: when ZF goto %0000022a -000005b5: goto %0000035b - -0000035b: -0000035e: R1 := 0x10000 -00000365: R1 := mem[R1 + 0xFD8, el]:u64 -0000036a: when R1 = 0 goto %0000022a -000005b6: goto %0000036e - -0000022a: -00000232: call R30 with noreturn - -0000036e: -00000372: R16 := R1 -00000377: call R16 with noreturn - -00000598: sub frame_dummy(frame_dummy_result) -000005c6: frame_dummy_result :: out u32 = low:32[R0] - -000002ca: -000002cc: call @register_tm_clones with noreturn - -00000599: sub main(main_argc, main_argv, main_result) -000005c7: main_argc :: in u32 = low:32[R0] -000005c8: main_argv :: in out u64 = R1 -000005c9: main_result :: out u32 = low:32[R0] - -000002ce: -000002d1: R0 := 0x11000 -000002d7: R0 := R0 + 0x14 -000002dc: R1 := 1 -000002e4: mem := mem with [R0, el]:u32 <- 31:0[R1] -000002e9: R0 := 0x11000 -000002ef: R0 := R0 + 0x18 -000002f6: mem := mem with [R0, el]:u32 <- 0 -000002fb: R0 := 0 -00000300: call R30 with noreturn - -0000059a: sub register_tm_clones(register_tm_clones_result) -000005ca: register_tm_clones_result :: out u32 = low:32[R0] - -00000234: -00000237: R0 := 0x11000 -0000023d: R0 := R0 + 0x10 -00000242: R1 := 0x11000 -00000248: R1 := R1 + 0x10 -0000024f: R1 := R1 + ~R0 + 1 -00000255: R2 := 0.63:63[R1] -0000025c: R1 := R2 + (R1 ~>> 3) -00000262: R1 := extend:64[63:1[R1]] -00000268: when R1 = 0 goto %00000266 -000005b7: goto %0000033d - -0000033d: -00000340: R2 := 0x10000 -00000347: R2 := mem[R2 + 0xFF8, el]:u64 -0000034c: when R2 = 0 goto %00000266 -000005b8: goto %00000350 - -00000266: -0000026e: call R30 with noreturn - -00000350: -00000354: R16 := R2 -00000359: call R16 with noreturn diff --git a/src/test/correct/basic_lock_unlock/gcc/basic_lock_unlock.expected b/src/test/correct/basic_lock_unlock/gcc/basic_lock_unlock.expected index 187955e02..3b4d7df9b 100644 --- a/src/test/correct/basic_lock_unlock/gcc/basic_lock_unlock.expected +++ b/src/test/correct/basic_lock_unlock/gcc/basic_lock_unlock.expected @@ -64,7 +64,7 @@ implementation {:extern} guarantee_reflexive() assert ((memory_load32_le(mem, $z_addr) == 0bv32) ==> ((memory_load32_le(mem, $x_addr) == memory_load32_le(mem, $x_addr)) && (memory_load32_le(mem, $z_addr) == memory_load32_le(mem, $z_addr)))); } -procedure main_1812(); +procedure main(); modifies Gamma_R0, Gamma_R1, Gamma_mem, R0, R1, mem; requires (memory_load32_le(mem, $z_addr) == 1bv32); free requires (memory_load64_le(mem, 69632bv64) == 0bv64); @@ -80,7 +80,7 @@ procedure main_1812(); free ensures (memory_load64_le(mem, 69616bv64) == 1812bv64); free ensures (memory_load64_le(mem, 69640bv64) == 69640bv64); -implementation main_1812() +implementation main() { var x_old: bv32; var z_old: bv32; @@ -90,25 +90,25 @@ implementation main_1812() R0, Gamma_R0 := bvadd64(R0, 20bv64), Gamma_R0; R1, Gamma_R1 := 1bv64, true; call rely(); + assert (L(mem, R0) ==> Gamma_R1); x_old := memory_load32_le(mem, $x_addr); z_old := memory_load32_le(mem, $z_addr); - assert (L(mem, R0) ==> Gamma_R1); mem, Gamma_mem := memory_store32_le(mem, R0, R1[32:0]), gamma_store32(Gamma_mem, R0, Gamma_R1); assert ((z_old == 0bv32) ==> ((memory_load32_le(mem, $x_addr) == x_old) && (memory_load32_le(mem, $z_addr) == z_old))); assume {:captureState "%000002e4"} true; R0, Gamma_R0 := 69632bv64, true; R0, Gamma_R0 := bvadd64(R0, 24bv64), Gamma_R0; call rely(); + assert (L(mem, R0) ==> true); x_old := memory_load32_le(mem, $x_addr); z_old := memory_load32_le(mem, $z_addr); - assert (L(mem, R0) ==> true); mem, Gamma_mem := memory_store32_le(mem, R0, 0bv32), gamma_store32(Gamma_mem, R0, true); assert ((z_old == 0bv32) ==> ((memory_load32_le(mem, $x_addr) == x_old) && (memory_load32_le(mem, $z_addr) == z_old))); assume {:captureState "%000002f6"} true; R0, Gamma_R0 := 0bv64, true; - goto main_1812_basil_return; - main_1812_basil_return: - assume {:captureState "main_1812_basil_return"} true; + goto main_basil_return; + main_basil_return: + assume {:captureState "main_basil_return"} true; return; } diff --git a/src/test/correct/basic_lock_unlock/gcc/basic_lock_unlock.gts b/src/test/correct/basic_lock_unlock/gcc/basic_lock_unlock.gts deleted file mode 100644 index e725f93c5..000000000 Binary files a/src/test/correct/basic_lock_unlock/gcc/basic_lock_unlock.gts and /dev/null differ diff --git a/src/test/correct/basic_lock_unlock/gcc/basic_lock_unlock.md5sum b/src/test/correct/basic_lock_unlock/gcc/basic_lock_unlock.md5sum new file mode 100644 index 000000000..2f15d0ff9 --- /dev/null +++ b/src/test/correct/basic_lock_unlock/gcc/basic_lock_unlock.md5sum @@ -0,0 +1,5 @@ +6046324efa406c5a76aa9d388ab3ee1e correct/basic_lock_unlock/gcc/a.out +22a6374316254db655e242090da34826 correct/basic_lock_unlock/gcc/basic_lock_unlock.adt +87a9f48f99cb05445aa0118b9e15b6cc correct/basic_lock_unlock/gcc/basic_lock_unlock.bir +20a92ed77f4f1e543576b4e0941b4a4d correct/basic_lock_unlock/gcc/basic_lock_unlock.relf +53d3d050e6792573b7b570049addf608 correct/basic_lock_unlock/gcc/basic_lock_unlock.gts diff --git a/src/test/correct/basic_lock_unlock/gcc/basic_lock_unlock.relf b/src/test/correct/basic_lock_unlock/gcc/basic_lock_unlock.relf deleted file mode 100644 index 36b52c342..000000000 --- a/src/test/correct/basic_lock_unlock/gcc/basic_lock_unlock.relf +++ /dev/null @@ -1,122 +0,0 @@ - -Relocation section '.rela.dyn' at offset 0x460 contains 8 entries: - Offset Info Type Symbol's Value Symbol's Name + Addend -0000000000010d98 0000000000000403 R_AARCH64_RELATIVE 710 -0000000000010da0 0000000000000403 R_AARCH64_RELATIVE 6c0 -0000000000010ff0 0000000000000403 R_AARCH64_RELATIVE 714 -0000000000011008 0000000000000403 R_AARCH64_RELATIVE 11008 -0000000000010fd8 0000000400000401 R_AARCH64_GLOB_DAT 0000000000000000 _ITM_deregisterTMCloneTable + 0 -0000000000010fe0 0000000500000401 R_AARCH64_GLOB_DAT 0000000000000000 __cxa_finalize@GLIBC_2.17 + 0 -0000000000010fe8 0000000600000401 R_AARCH64_GLOB_DAT 0000000000000000 __gmon_start__ + 0 -0000000000010ff8 0000000800000401 R_AARCH64_GLOB_DAT 0000000000000000 _ITM_registerTMCloneTable + 0 - -Relocation section '.rela.plt' at offset 0x520 contains 4 entries: - Offset Info Type Symbol's Value Symbol's Name + Addend -0000000000010fb0 0000000300000402 R_AARCH64_JUMP_SLOT 0000000000000000 __libc_start_main@GLIBC_2.34 + 0 -0000000000010fb8 0000000500000402 R_AARCH64_JUMP_SLOT 0000000000000000 __cxa_finalize@GLIBC_2.17 + 0 -0000000000010fc0 0000000600000402 R_AARCH64_JUMP_SLOT 0000000000000000 __gmon_start__ + 0 -0000000000010fc8 0000000700000402 R_AARCH64_JUMP_SLOT 0000000000000000 abort@GLIBC_2.17 + 0 - -Symbol table '.dynsym' contains 9 entries: - Num: Value Size Type Bind Vis Ndx Name - 0: 0000000000000000 0 NOTYPE LOCAL DEFAULT UND - 1: 0000000000000580 0 SECTION LOCAL DEFAULT 11 .init - 2: 0000000000011000 0 SECTION LOCAL DEFAULT 22 .data - 3: 0000000000000000 0 FUNC GLOBAL DEFAULT UND __libc_start_main@GLIBC_2.34 (2) - 4: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_deregisterTMCloneTable - 5: 0000000000000000 0 FUNC WEAK DEFAULT UND __cxa_finalize@GLIBC_2.17 (3) - 6: 0000000000000000 0 NOTYPE WEAK DEFAULT UND __gmon_start__ - 7: 0000000000000000 0 FUNC GLOBAL DEFAULT UND abort@GLIBC_2.17 (3) - 8: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_registerTMCloneTable - -Symbol table '.symtab' contains 89 entries: - Num: Value Size Type Bind Vis Ndx Name - 0: 0000000000000000 0 NOTYPE LOCAL DEFAULT UND - 1: 0000000000000238 0 SECTION LOCAL DEFAULT 1 .interp - 2: 0000000000000254 0 SECTION LOCAL DEFAULT 2 .note.gnu.build-id - 3: 0000000000000278 0 SECTION LOCAL DEFAULT 3 .note.ABI-tag - 4: 0000000000000298 0 SECTION LOCAL DEFAULT 4 .gnu.hash - 5: 00000000000002b8 0 SECTION LOCAL DEFAULT 5 .dynsym - 6: 0000000000000390 0 SECTION LOCAL DEFAULT 6 .dynstr - 7: 000000000000041e 0 SECTION LOCAL DEFAULT 7 .gnu.version - 8: 0000000000000430 0 SECTION LOCAL DEFAULT 8 .gnu.version_r - 9: 0000000000000460 0 SECTION LOCAL DEFAULT 9 .rela.dyn - 10: 0000000000000520 0 SECTION LOCAL DEFAULT 10 .rela.plt - 11: 0000000000000580 0 SECTION LOCAL DEFAULT 11 .init - 12: 00000000000005a0 0 SECTION LOCAL DEFAULT 12 .plt - 13: 0000000000000600 0 SECTION LOCAL DEFAULT 13 .text - 14: 0000000000000738 0 SECTION LOCAL DEFAULT 14 .fini - 15: 000000000000074c 0 SECTION LOCAL DEFAULT 15 .rodata - 16: 0000000000000750 0 SECTION LOCAL DEFAULT 16 .eh_frame_hdr - 17: 0000000000000790 0 SECTION LOCAL DEFAULT 17 .eh_frame - 18: 0000000000010d98 0 SECTION LOCAL DEFAULT 18 .init_array - 19: 0000000000010da0 0 SECTION LOCAL DEFAULT 19 .fini_array - 20: 0000000000010da8 0 SECTION LOCAL DEFAULT 20 .dynamic - 21: 0000000000010f98 0 SECTION LOCAL DEFAULT 21 .got - 22: 0000000000011000 0 SECTION LOCAL DEFAULT 22 .data - 23: 0000000000011010 0 SECTION LOCAL DEFAULT 23 .bss - 24: 0000000000000000 0 SECTION LOCAL DEFAULT 24 .comment - 25: 0000000000000000 0 FILE LOCAL DEFAULT ABS Scrt1.o - 26: 0000000000000278 0 NOTYPE LOCAL DEFAULT 3 $d - 27: 0000000000000278 32 OBJECT LOCAL DEFAULT 3 __abi_tag - 28: 0000000000000600 0 NOTYPE LOCAL DEFAULT 13 $x - 29: 00000000000007a4 0 NOTYPE LOCAL DEFAULT 17 $d - 30: 000000000000074c 0 NOTYPE LOCAL DEFAULT 15 $d - 31: 0000000000000000 0 FILE LOCAL DEFAULT ABS crti.o - 32: 0000000000000634 0 NOTYPE LOCAL DEFAULT 13 $x - 33: 0000000000000634 20 FUNC LOCAL DEFAULT 13 call_weak_fn - 34: 0000000000000580 0 NOTYPE LOCAL DEFAULT 11 $x - 35: 0000000000000738 0 NOTYPE LOCAL DEFAULT 14 $x - 36: 0000000000000000 0 FILE LOCAL DEFAULT ABS crtn.o - 37: 0000000000000590 0 NOTYPE LOCAL DEFAULT 11 $x - 38: 0000000000000744 0 NOTYPE LOCAL DEFAULT 14 $x - 39: 0000000000000000 0 FILE LOCAL DEFAULT ABS crtstuff.c - 40: 0000000000000650 0 NOTYPE LOCAL DEFAULT 13 $x - 41: 0000000000000650 0 FUNC LOCAL DEFAULT 13 deregister_tm_clones - 42: 0000000000000680 0 FUNC LOCAL DEFAULT 13 register_tm_clones - 43: 0000000000011008 0 NOTYPE LOCAL DEFAULT 22 $d - 44: 00000000000006c0 0 FUNC LOCAL DEFAULT 13 __do_global_dtors_aux - 45: 0000000000011010 1 OBJECT LOCAL DEFAULT 23 completed.0 - 46: 0000000000010da0 0 NOTYPE LOCAL DEFAULT 19 $d - 47: 0000000000010da0 0 OBJECT LOCAL DEFAULT 19 __do_global_dtors_aux_fini_array_entry - 48: 0000000000000710 0 FUNC LOCAL DEFAULT 13 frame_dummy - 49: 0000000000010d98 0 NOTYPE LOCAL DEFAULT 18 $d - 50: 0000000000010d98 0 OBJECT LOCAL DEFAULT 18 __frame_dummy_init_array_entry - 51: 00000000000007b8 0 NOTYPE LOCAL DEFAULT 17 $d - 52: 0000000000011010 0 NOTYPE LOCAL DEFAULT 23 $d - 53: 0000000000000000 0 FILE LOCAL DEFAULT ABS basic_lock_unlock.c - 54: 0000000000011014 0 NOTYPE LOCAL DEFAULT 23 $d - 55: 0000000000000714 0 NOTYPE LOCAL DEFAULT 13 $x - 56: 0000000000000818 0 NOTYPE LOCAL DEFAULT 17 $d - 57: 0000000000000000 0 FILE LOCAL DEFAULT ABS crtstuff.c - 58: 000000000000082c 0 NOTYPE LOCAL DEFAULT 17 $d - 59: 000000000000082c 0 OBJECT LOCAL DEFAULT 17 __FRAME_END__ - 60: 0000000000000000 0 FILE LOCAL DEFAULT ABS - 61: 0000000000010da8 0 OBJECT LOCAL DEFAULT ABS _DYNAMIC - 62: 0000000000000750 0 NOTYPE LOCAL DEFAULT 16 __GNU_EH_FRAME_HDR - 63: 0000000000010fd0 0 OBJECT LOCAL DEFAULT ABS _GLOBAL_OFFSET_TABLE_ - 64: 00000000000005a0 0 NOTYPE LOCAL DEFAULT 12 $x - 65: 0000000000000000 0 FUNC GLOBAL DEFAULT UND __libc_start_main@GLIBC_2.34 - 66: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_deregisterTMCloneTable - 67: 0000000000011000 0 NOTYPE WEAK DEFAULT 22 data_start - 68: 0000000000011010 0 NOTYPE GLOBAL DEFAULT 23 __bss_start__ - 69: 0000000000000000 0 FUNC WEAK DEFAULT UND __cxa_finalize@GLIBC_2.17 - 70: 0000000000011020 0 NOTYPE GLOBAL DEFAULT 23 _bss_end__ - 71: 0000000000011010 0 NOTYPE GLOBAL DEFAULT 22 _edata - 72: 0000000000011018 4 OBJECT GLOBAL DEFAULT 23 z - 73: 0000000000011014 4 OBJECT GLOBAL DEFAULT 23 x - 74: 0000000000000738 0 FUNC GLOBAL HIDDEN 14 _fini - 75: 0000000000011020 0 NOTYPE GLOBAL DEFAULT 23 __bss_end__ - 76: 0000000000011000 0 NOTYPE GLOBAL DEFAULT 22 __data_start - 77: 0000000000000000 0 NOTYPE WEAK DEFAULT UND __gmon_start__ - 78: 0000000000011008 0 OBJECT GLOBAL HIDDEN 22 __dso_handle - 79: 0000000000000000 0 FUNC GLOBAL DEFAULT UND abort@GLIBC_2.17 - 80: 000000000000074c 4 OBJECT GLOBAL DEFAULT 15 _IO_stdin_used - 81: 0000000000011020 0 NOTYPE GLOBAL DEFAULT 23 _end - 82: 0000000000000600 52 FUNC GLOBAL DEFAULT 13 _start - 83: 0000000000011020 0 NOTYPE GLOBAL DEFAULT 23 __end__ - 84: 0000000000011010 0 NOTYPE GLOBAL DEFAULT 23 __bss_start - 85: 0000000000000714 36 FUNC GLOBAL DEFAULT 13 main - 86: 0000000000011010 0 OBJECT GLOBAL HIDDEN 22 __TMC_END__ - 87: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_registerTMCloneTable - 88: 0000000000000580 0 FUNC GLOBAL HIDDEN 11 _init diff --git a/src/test/correct/basic_lock_unlock/gcc/basic_lock_unlock_gtirb.expected b/src/test/correct/basic_lock_unlock/gcc/basic_lock_unlock_gtirb.expected index 27a9d14f5..0e359f034 100644 --- a/src/test/correct/basic_lock_unlock/gcc/basic_lock_unlock_gtirb.expected +++ b/src/test/correct/basic_lock_unlock/gcc/basic_lock_unlock_gtirb.expected @@ -64,7 +64,7 @@ implementation {:extern} guarantee_reflexive() assert ((memory_load32_le(mem, $z_addr) == 0bv32) ==> ((memory_load32_le(mem, $x_addr) == memory_load32_le(mem, $x_addr)) && (memory_load32_le(mem, $z_addr) == memory_load32_le(mem, $z_addr)))); } -procedure main_1812(); +procedure main(); modifies Gamma_R0, Gamma_R1, Gamma_mem, R0, R1, mem; requires (memory_load32_le(mem, $z_addr) == 1bv32); free requires (memory_load64_le(mem, 69632bv64) == 0bv64); @@ -80,35 +80,35 @@ procedure main_1812(); free ensures (memory_load64_le(mem, 69616bv64) == 1812bv64); free ensures (memory_load64_le(mem, 69640bv64) == 69640bv64); -implementation main_1812() +implementation main() { var x_old: bv32; var z_old: bv32; - main_1812__0__Rto88S8uQGavFIfjSKtjNg: - assume {:captureState "main_1812__0__Rto88S8uQGavFIfjSKtjNg"} true; + $main$__0__$Rto88S8uQGavFIfjSKtjNg: + assume {:captureState "$main$__0__$Rto88S8uQGavFIfjSKtjNg"} true; R0, Gamma_R0 := 69632bv64, true; R0, Gamma_R0 := bvadd64(R0, 20bv64), Gamma_R0; R1, Gamma_R1 := 1bv64, true; call rely(); + assert (L(mem, R0) ==> Gamma_R1); x_old := memory_load32_le(mem, $x_addr); z_old := memory_load32_le(mem, $z_addr); - assert (L(mem, R0) ==> Gamma_R1); mem, Gamma_mem := memory_store32_le(mem, R0, R1[32:0]), gamma_store32(Gamma_mem, R0, Gamma_R1); assert ((z_old == 0bv32) ==> ((memory_load32_le(mem, $x_addr) == x_old) && (memory_load32_le(mem, $z_addr) == z_old))); - assume {:captureState "1824_0"} true; + assume {:captureState "1824$0"} true; R0, Gamma_R0 := 69632bv64, true; R0, Gamma_R0 := bvadd64(R0, 24bv64), Gamma_R0; call rely(); + assert (L(mem, R0) ==> true); x_old := memory_load32_le(mem, $x_addr); z_old := memory_load32_le(mem, $z_addr); - assert (L(mem, R0) ==> true); mem, Gamma_mem := memory_store32_le(mem, R0, 0bv32), gamma_store32(Gamma_mem, R0, true); assert ((z_old == 0bv32) ==> ((memory_load32_le(mem, $x_addr) == x_old) && (memory_load32_le(mem, $z_addr) == z_old))); - assume {:captureState "1836_0"} true; + assume {:captureState "1836$0"} true; R0, Gamma_R0 := 0bv64, true; - goto main_1812_basil_return; - main_1812_basil_return: - assume {:captureState "main_1812_basil_return"} true; + goto main_basil_return; + main_basil_return: + assume {:captureState "main_basil_return"} true; return; } diff --git a/src/test/correct/basic_lock_unlock/gcc_O2/basic_lock_unlock.adt b/src/test/correct/basic_lock_unlock/gcc_O2/basic_lock_unlock.adt deleted file mode 100644 index 8482d2012..000000000 --- a/src/test/correct/basic_lock_unlock/gcc_O2/basic_lock_unlock.adt +++ /dev/null @@ -1,496 +0,0 @@ -Project(Attrs([Attr("filename","\"gcc_O2/basic_lock_unlock.out\""), -Attr("image-specification","(declare abi (name str))\n(declare arch (name str))\n(declare base-address (addr int))\n(declare bias (off int))\n(declare bits (size int))\n(declare code-region (addr int) (size int) (off int))\n(declare code-start (addr int))\n(declare entry-point (addr int))\n(declare external-reference (addr int) (name str))\n(declare format (name str))\n(declare is-executable (flag bool))\n(declare is-little-endian (flag bool))\n(declare llvm:base-address (addr int))\n(declare llvm:code-entry (name str) (off int) (size int))\n(declare llvm:coff-import-library (name str))\n(declare llvm:coff-virtual-section-header (name str) (addr int) (size int))\n(declare llvm:elf-program-header (name str) (off int) (size int))\n(declare llvm:elf-program-header-flags (name str) (ld bool) (r bool) \n (w bool) (x bool))\n(declare llvm:elf-virtual-program-header (name str) (addr int) (size int))\n(declare llvm:entry-point (addr int))\n(declare llvm:macho-symbol (name str) (value int))\n(declare llvm:name-reference (at int) (name str))\n(declare llvm:relocation (at int) (addr int))\n(declare llvm:section-entry (name str) (addr int) (size int) (off int))\n(declare llvm:section-flags (name str) (r bool) (w bool) (x bool))\n(declare llvm:segment-command (name str) (off int) (size int))\n(declare llvm:segment-command-flags (name str) (r bool) (w bool) (x bool))\n(declare llvm:symbol-entry (name str) (addr int) (size int) (off int)\n (value int))\n(declare llvm:virtual-segment-command (name str) (addr int) (size int))\n(declare mapped (addr int) (size int) (off int))\n(declare named-region (addr int) (size int) (name str))\n(declare named-symbol (addr int) (name str))\n(declare require (name str))\n(declare section (addr int) (size int))\n(declare segment (addr int) (size int) (r bool) (w bool) (x bool))\n(declare subarch (name str))\n(declare symbol-chunk (addr int) (size int) (root int))\n(declare symbol-value (addr int) (value int))\n(declare system (name str))\n(declare vendor (name str))\n\n(abi unknown)\n(arch aarch64)\n(base-address 0)\n(bias 0)\n(bits 64)\n(code-region 1876 20 1876)\n(code-region 1536 340 1536)\n(code-region 1440 96 1440)\n(code-region 1408 24 1408)\n(code-start 1652)\n(code-start 1600)\n(code-start 1536)\n(entry-point 1600)\n(external-reference 69592 _ITM_deregisterTMCloneTable)\n(external-reference 69600 __cxa_finalize)\n(external-reference 69608 __gmon_start__)\n(external-reference 69624 _ITM_registerTMCloneTable)\n(external-reference 69552 __libc_start_main)\n(external-reference 69560 __cxa_finalize)\n(external-reference 69568 __gmon_start__)\n(external-reference 69576 abort)\n(format elf)\n(is-executable true)\n(is-little-endian true)\n(llvm:base-address 0)\n(llvm:code-entry abort 0 0)\n(llvm:code-entry __cxa_finalize 0 0)\n(llvm:code-entry __libc_start_main 0 0)\n(llvm:code-entry _init 1408 0)\n(llvm:code-entry main 1536 28)\n(llvm:code-entry _start 1600 52)\n(llvm:code-entry abort@GLIBC_2.17 0 0)\n(llvm:code-entry _fini 1876 0)\n(llvm:code-entry __cxa_finalize@GLIBC_2.17 0 0)\n(llvm:code-entry __libc_start_main@GLIBC_2.34 0 0)\n(llvm:code-entry frame_dummy 1872 0)\n(llvm:code-entry __do_global_dtors_aux 1792 0)\n(llvm:code-entry register_tm_clones 1728 0)\n(llvm:code-entry deregister_tm_clones 1680 0)\n(llvm:code-entry call_weak_fn 1652 20)\n(llvm:code-entry .fini 1876 20)\n(llvm:code-entry .text 1536 340)\n(llvm:code-entry .plt 1440 96)\n(llvm:code-entry .init 1408 24)\n(llvm:elf-program-header 08 3480 616)\n(llvm:elf-program-header 07 0 0)\n(llvm:elf-program-header 06 1900 60)\n(llvm:elf-program-header 05 596 68)\n(llvm:elf-program-header 04 3496 496)\n(llvm:elf-program-header 03 3480 632)\n(llvm:elf-program-header 02 0 2120)\n(llvm:elf-program-header 01 568 27)\n(llvm:elf-program-header 00 64 504)\n(llvm:elf-program-header-flags 08 false true false false)\n(llvm:elf-program-header-flags 07 false true true false)\n(llvm:elf-program-header-flags 06 false true false false)\n(llvm:elf-program-header-flags 05 false true false false)\n(llvm:elf-program-header-flags 04 false true true false)\n(llvm:elf-program-header-flags 03 true true true false)\n(llvm:elf-program-header-flags 02 true true false true)\n(llvm:elf-program-header-flags 01 false true false false)\n(llvm:elf-program-header-flags 00 false true false false)\n(llvm:elf-virtual-program-header 08 69016 616)\n(llvm:elf-virtual-program-header 07 0 0)\n(llvm:elf-virtual-program-header 06 1900 60)\n(llvm:elf-virtual-program-header 05 596 68)\n(llvm:elf-virtual-program-header 04 69032 496)\n(llvm:elf-virtual-program-header 03 69016 648)\n(llvm:elf-virtual-program-header 02 0 2120)\n(llvm:elf-virtual-program-header 01 568 27)\n(llvm:elf-virtual-program-header 00 64 504)\n(llvm:entry-point 1600)\n(llvm:name-reference 69576 abort)\n(llvm:name-reference 69568 __gmon_start__)\n(llvm:name-reference 69560 __cxa_finalize)\n(llvm:name-reference 69552 __libc_start_main)\n(llvm:name-reference 69624 _ITM_registerTMCloneTable)\n(llvm:name-reference 69608 __gmon_start__)\n(llvm:name-reference 69600 __cxa_finalize)\n(llvm:name-reference 69592 _ITM_deregisterTMCloneTable)\n(llvm:section-entry .shstrtab 0 250 6851)\n(llvm:section-entry .strtab 0 555 6296)\n(llvm:section-entry .symtab 0 2136 4160)\n(llvm:section-entry .comment 0 43 4112)\n(llvm:section-entry .bss 69648 16 4112)\n(llvm:section-entry .data 69632 16 4096)\n(llvm:section-entry .got 69528 104 3992)\n(llvm:section-entry .dynamic 69032 496 3496)\n(llvm:section-entry .fini_array 69024 8 3488)\n(llvm:section-entry .init_array 69016 8 3480)\n(llvm:section-entry .eh_frame 1960 160 1960)\n(llvm:section-entry .eh_frame_hdr 1900 60 1900)\n(llvm:section-entry .rodata 1896 4 1896)\n(llvm:section-entry .fini 1876 20 1876)\n(llvm:section-entry .text 1536 340 1536)\n(llvm:section-entry .plt 1440 96 1440)\n(llvm:section-entry .init 1408 24 1408)\n(llvm:section-entry .rela.plt 1312 96 1312)\n(llvm:section-entry .rela.dyn 1120 192 1120)\n(llvm:section-entry .gnu.version_r 1072 48 1072)\n(llvm:section-entry .gnu.version 1054 18 1054)\n(llvm:section-entry .dynstr 912 141 912)\n(llvm:section-entry .dynsym 696 216 696)\n(llvm:section-entry .gnu.hash 664 28 664)\n(llvm:section-entry .note.ABI-tag 632 32 632)\n(llvm:section-entry .note.gnu.build-id 596 36 596)\n(llvm:section-entry .interp 568 27 568)\n(llvm:section-flags .shstrtab true false false)\n(llvm:section-flags .strtab true false false)\n(llvm:section-flags .symtab true false false)\n(llvm:section-flags .comment true false false)\n(llvm:section-flags .bss true true false)\n(llvm:section-flags .data true true false)\n(llvm:section-flags .got true true false)\n(llvm:section-flags .dynamic true true false)\n(llvm:section-flags .fini_array true true false)\n(llvm:section-flags .init_array true true false)\n(llvm:section-flags .eh_frame true false false)\n(llvm:section-flags .eh_frame_hdr true false false)\n(llvm:section-flags .rodata true false false)\n(llvm:section-flags .fini true false true)\n(llvm:section-flags .text true false true)\n(llvm:section-flags .plt true false true)\n(llvm:section-flags .init true false true)\n(llvm:section-flags .rela.plt true false false)\n(llvm:section-flags .rela.dyn true false false)\n(llvm:section-flags .gnu.version_r true false false)\n(llvm:section-flags .gnu.version true false false)\n(llvm:section-flags .dynstr true false false)\n(llvm:section-flags .dynsym true false false)\n(llvm:section-flags .gnu.hash true false false)\n(llvm:section-flags .note.ABI-tag true false false)\n(llvm:section-flags .note.gnu.build-id true false false)\n(llvm:section-flags .interp true false false)\n(llvm:symbol-entry abort 0 0 0 0)\n(llvm:symbol-entry __cxa_finalize 0 0 0 0)\n(llvm:symbol-entry __libc_start_main 0 0 0 0)\n(llvm:symbol-entry _init 1408 0 1408 1408)\n(llvm:symbol-entry main 1536 28 1536 1536)\n(llvm:symbol-entry _start 1600 52 1600 1600)\n(llvm:symbol-entry abort@GLIBC_2.17 0 0 0 0)\n(llvm:symbol-entry _fini 1876 0 1876 1876)\n(llvm:symbol-entry __cxa_finalize@GLIBC_2.17 0 0 0 0)\n(llvm:symbol-entry __libc_start_main@GLIBC_2.34 0 0 0 0)\n(llvm:symbol-entry frame_dummy 1872 0 1872 1872)\n(llvm:symbol-entry __do_global_dtors_aux 1792 0 1792 1792)\n(llvm:symbol-entry register_tm_clones 1728 0 1728 1728)\n(llvm:symbol-entry deregister_tm_clones 1680 0 1680 1680)\n(llvm:symbol-entry call_weak_fn 1652 20 1652 1652)\n(mapped 0 2120 0)\n(mapped 69016 632 3480)\n(named-region 0 2120 02)\n(named-region 69016 648 03)\n(named-region 568 27 .interp)\n(named-region 596 36 .note.gnu.build-id)\n(named-region 632 32 .note.ABI-tag)\n(named-region 664 28 .gnu.hash)\n(named-region 696 216 .dynsym)\n(named-region 912 141 .dynstr)\n(named-region 1054 18 .gnu.version)\n(named-region 1072 48 .gnu.version_r)\n(named-region 1120 192 .rela.dyn)\n(named-region 1312 96 .rela.plt)\n(named-region 1408 24 .init)\n(named-region 1440 96 .plt)\n(named-region 1536 340 .text)\n(named-region 1876 20 .fini)\n(named-region 1896 4 .rodata)\n(named-region 1900 60 .eh_frame_hdr)\n(named-region 1960 160 .eh_frame)\n(named-region 69016 8 .init_array)\n(named-region 69024 8 .fini_array)\n(named-region 69032 496 .dynamic)\n(named-region 69528 104 .got)\n(named-region 69632 16 .data)\n(named-region 69648 16 .bss)\n(named-region 0 43 .comment)\n(named-region 0 2136 .symtab)\n(named-region 0 555 .strtab)\n(named-region 0 250 .shstrtab)\n(named-symbol 1652 call_weak_fn)\n(named-symbol 1680 deregister_tm_clones)\n(named-symbol 1728 register_tm_clones)\n(named-symbol 1792 __do_global_dtors_aux)\n(named-symbol 1872 frame_dummy)\n(named-symbol 0 __libc_start_main@GLIBC_2.34)\n(named-symbol 0 __cxa_finalize@GLIBC_2.17)\n(named-symbol 1876 _fini)\n(named-symbol 0 abort@GLIBC_2.17)\n(named-symbol 1600 _start)\n(named-symbol 1536 main)\n(named-symbol 1408 _init)\n(named-symbol 0 __libc_start_main)\n(named-symbol 0 __cxa_finalize)\n(named-symbol 0 abort)\n(require libc.so.6)\n(section 568 27)\n(section 596 36)\n(section 632 32)\n(section 664 28)\n(section 696 216)\n(section 912 141)\n(section 1054 18)\n(section 1072 48)\n(section 1120 192)\n(section 1312 96)\n(section 1408 24)\n(section 1440 96)\n(section 1536 340)\n(section 1876 20)\n(section 1896 4)\n(section 1900 60)\n(section 1960 160)\n(section 69016 8)\n(section 69024 8)\n(section 69032 496)\n(section 69528 104)\n(section 69632 16)\n(section 69648 16)\n(section 0 43)\n(section 0 2136)\n(section 0 555)\n(section 0 250)\n(segment 0 2120 true false true)\n(segment 69016 648 true true false)\n(subarch v8)\n(symbol-chunk 1652 20 1652)\n(symbol-chunk 1600 52 1600)\n(symbol-chunk 1536 28 1536)\n(symbol-value 1652 1652)\n(symbol-value 1680 1680)\n(symbol-value 1728 1728)\n(symbol-value 1792 1792)\n(symbol-value 1872 1872)\n(symbol-value 1876 1876)\n(symbol-value 1600 1600)\n(symbol-value 1536 1536)\n(symbol-value 1408 1408)\n(symbol-value 0 0)\n(system \"\")\n(vendor \"\")\n"), -Attr("abi-name","\"aarch64-linux-gnu-elf\"")]), -Sections([Section(".shstrtab", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x40\x06\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xc0\x1b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x38\x00\x09\x00\x40\x00\x1c\x00\x1b\x00\x06\x00\x00\x00\x04\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x04\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x48\x08\x00\x00\x00\x00\x00\x00\x48\x08\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x01\x00\x00\x00\x06\x00\x00\x00\x98\x0d\x00\x00\x00\x00\x00\x00\x98\x0d"), -Section(".strtab", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x40\x06\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xc0\x1b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x38\x00\x09\x00\x40\x00\x1c\x00\x1b\x00\x06\x00\x00\x00\x04\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x04\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x48\x08\x00\x00\x00\x00\x00\x00\x48\x08\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x01\x00\x00\x00\x06\x00\x00\x00\x98\x0d\x00\x00\x00\x00\x00\x00\x98\x0d\x01\x00\x00\x00\x00\x00\x98\x0d\x01\x00\x00\x00\x00\x00\x78\x02\x00\x00\x00\x00\x00\x00\x88\x02\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x02\x00\x00\x00\x06\x00\x00\x00\xa8\x0d\x00\x00\x00\x00\x00\x00\xa8\x0d\x01\x00\x00\x00\x00\x00\xa8\x0d\x01\x00\x00\x00\x00\x00\xf0\x01\x00\x00\x00\x00\x00\x00\xf0\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x04\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x50\xe5\x74\x64\x04\x00\x00\x00\x6c\x07\x00\x00\x00\x00\x00\x00\x6c\x07\x00\x00\x00\x00\x00\x00\x6c\x07\x00\x00\x00\x00\x00\x00\x3c\x00\x00\x00\x00\x00\x00\x00\x3c\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x51\xe5\x74\x64\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x52\xe5\x74\x64\x04\x00\x00\x00\x98\x0d\x00\x00\x00\x00\x00\x00\x98\x0d\x01\x00\x00\x00\x00\x00\x98\x0d\x01\x00\x00\x00\x00\x00\x68\x02\x00\x00\x00\x00\x00\x00\x68\x02\x00"), -Section(".comment", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x40\x06\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xc0\x1b\x00"), -Section(".interp", 0x238, "\x2f\x6c\x69\x62\x2f\x6c\x64\x2d\x6c\x69\x6e\x75\x78\x2d\x61\x61\x72\x63\x68\x36\x34\x2e\x73\x6f\x2e\x31\x00"), -Section(".note.gnu.build-id", 0x254, "\x04\x00\x00\x00\x14\x00\x00\x00\x03\x00\x00\x00\x47\x4e\x55\x00\xdd\x96\x37\x26\x1b\xe5\x72\x44\x76\x4c\x9c\xe4\x4e\x61\x05\xb0\xe7\x5e\x0d\x7c"), -Section(".note.ABI-tag", 0x278, "\x04\x00\x00\x00\x10\x00\x00\x00\x01\x00\x00\x00\x47\x4e\x55\x00\x00\x00\x00\x00\x03\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00"), -Section(".gnu.hash", 0x298, "\x01\x00\x00\x00\x01\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".dynsym", 0x2B8, "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x0b\x00\x80\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x16\x00\x00\x10\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x48\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x22\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x22\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x73\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".dynstr", 0x390, "\x00\x5f\x5f\x63\x78\x61\x5f\x66\x69\x6e\x61\x6c\x69\x7a\x65\x00\x5f\x5f\x6c\x69\x62\x63\x5f\x73\x74\x61\x72\x74\x5f\x6d\x61\x69\x6e\x00\x61\x62\x6f\x72\x74\x00\x6c\x69\x62\x63\x2e\x73\x6f\x2e\x36\x00\x47\x4c\x49\x42\x43\x5f\x32\x2e\x31\x37\x00\x47\x4c\x49\x42\x43\x5f\x32\x2e\x33\x34\x00\x5f\x49\x54\x4d\x5f\x64\x65\x72\x65\x67\x69\x73\x74\x65\x72\x54\x4d\x43\x6c\x6f\x6e\x65\x54\x61\x62\x6c\x65\x00\x5f\x5f\x67\x6d\x6f\x6e\x5f\x73\x74\x61\x72\x74\x5f\x5f\x00\x5f\x49\x54\x4d\x5f\x72\x65\x67\x69\x73\x74\x65\x72\x54\x4d\x43\x6c\x6f\x6e\x65\x54\x61\x62\x6c\x65\x00"), -Section(".gnu.version", 0x41E, "\x00\x00\x00\x00\x00\x00\x02\x00\x01\x00\x03\x00\x01\x00\x03\x00\x01\x00"), -Section(".gnu.version_r", 0x430, "\x01\x00\x02\x00\x28\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x97\x91\x96\x06\x00\x00\x03\x00\x32\x00\x00\x00\x10\x00\x00\x00\xb4\x91\x96\x06\x00\x00\x02\x00\x3d\x00\x00\x00\x00\x00\x00\x00"), -Section(".rela.dyn", 0x460, "\x98\x0d\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x50\x07\x00\x00\x00\x00\x00\x00\xa0\x0d\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\xf0\x0f\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x00\x06\x00\x00\x00\x00\x00\x00\x08\x10\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x08\x10\x01\x00\x00\x00\x00\x00\xd8\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe0\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe8\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xf8\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".rela.plt", 0x520, "\xb0\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xb8\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xc0\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xc8\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".init", 0x580, "\x1f\x20\x03\xd5\xfd\x7b\xbf\xa9\xfd\x03\x00\x91\x3a\x00\x00\x94\xfd\x7b\xc1\xa8\xc0\x03\x5f\xd6"), -Section(".plt", 0x5A0, "\xf0\x7b\xbf\xa9\x90\x00\x00\x90\x11\xd6\x47\xf9\x10\xa2\x3e\x91\x20\x02\x1f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x90\x00\x00\x90\x11\xda\x47\xf9\x10\xc2\x3e\x91\x20\x02\x1f\xd6\x90\x00\x00\x90\x11\xde\x47\xf9\x10\xe2\x3e\x91\x20\x02\x1f\xd6\x90\x00\x00\x90\x11\xe2\x47\xf9\x10\x02\x3f\x91\x20\x02\x1f\xd6\x90\x00\x00\x90\x11\xe6\x47\xf9\x10\x22\x3f\x91\x20\x02\x1f\xd6"), -Section(".fini", 0x754, "\x1f\x20\x03\xd5\xfd\x7b\xbf\xa9\xfd\x03\x00\x91\xfd\x7b\xc1\xa8\xc0\x03\x5f\xd6"), -Section(".rodata", 0x768, "\x01\x00\x02\x00"), -Section(".eh_frame_hdr", 0x76C, "\x01\x1b\x03\x3b\x38\x00\x00\x00\x06\x00\x00\x00\x94\xfe\xff\xff\xc4\x00\x00\x00\xd4\xfe\xff\xff\x50\x00\x00\x00\x24\xff\xff\xff\x64\x00\x00\x00\x54\xff\xff\xff\x78\x00\x00\x00\x94\xff\xff\xff\x8c\x00\x00\x00\xe4\xff\xff\xff\xb0\x00\x00\x00"), -Section(".eh_frame", 0x7A8, "\x10\x00\x00\x00\x00\x00\x00\x00\x01\x7a\x52\x00\x04\x78\x1e\x01\x1b\x0c\x1f\x00\x10\x00\x00\x00\x18\x00\x00\x00\x7c\xfe\xff\xff\x34\x00\x00\x00\x00\x41\x07\x1e\x10\x00\x00\x00\x2c\x00\x00\x00\xb8\xfe\xff\xff\x30\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x40\x00\x00\x00\xd4\xfe\xff\xff\x3c\x00\x00\x00\x00\x00\x00\x00\x20\x00\x00\x00\x54\x00\x00\x00\x00\xff\xff\xff\x48\x00\x00\x00\x00\x41\x0e\x20\x9d\x04\x9e\x03\x42\x93\x02\x4e\xde\xdd\xd3\x0e\x00\x00\x00\x00\x10\x00\x00\x00\x78\x00\x00\x00\x2c\xff\xff\xff\x04\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x8c\x00\x00\x00\xc8\xfd\xff\xff\x1c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".fini_array", 0x10DA0, "\x00\x07\x00\x00\x00\x00\x00\x00"), -Section(".dynamic", 0x10DA8, "\x01\x00\x00\x00\x00\x00\x00\x00\x28\x00\x00\x00\x00\x00\x00\x00\x0c\x00\x00\x00\x00\x00\x00\x00\x80\x05\x00\x00\x00\x00\x00\x00\x0d\x00\x00\x00\x00\x00\x00\x00\x54\x07\x00\x00\x00\x00\x00\x00\x19\x00\x00\x00\x00\x00\x00\x00\x98\x0d\x01\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x1a\x00\x00\x00\x00\x00\x00\x00\xa0\x0d\x01\x00\x00\x00\x00\x00\x1c\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\xf5\xfe\xff\x6f\x00\x00\x00\x00\x98\x02\x00\x00\x00\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x90\x03\x00\x00\x00\x00\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\xb8\x02\x00\x00\x00\x00\x00\x00\x0a\x00\x00\x00\x00\x00\x00\x00\x8d\x00\x00\x00\x00\x00\x00\x00\x0b\x00\x00\x00\x00\x00\x00\x00\x18\x00\x00\x00\x00\x00\x00\x00\x15\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x98\x0f\x01\x00\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x60\x00\x00\x00\x00\x00\x00\x00\x14\x00\x00\x00\x00\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x17\x00\x00\x00\x00\x00\x00\x00\x20\x05\x00\x00\x00\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x60\x04\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\xc0\x00\x00\x00\x00\x00\x00\x00\x09\x00\x00\x00\x00\x00\x00\x00\x18\x00\x00\x00\x00\x00\x00\x00\x1e\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\xfb\xff\xff\x6f\x00\x00\x00\x00\x01\x00\x00\x08\x00\x00\x00\x00\xfe\xff\xff\x6f\x00\x00\x00\x00\x30\x04\x00\x00\x00\x00\x00\x00\xff\xff\xff\x6f\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\xf0\xff\xff\x6f\x00\x00\x00\x00\x1e\x04\x00\x00\x00\x00\x00\x00\xf9\xff\xff\x6f\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".init_array", 0x10D98, "\x50\x07\x00\x00\x00\x00\x00\x00"), -Section(".got", 0x10F98, "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xa0\x05\x00\x00\x00\x00\x00\x00\xa0\x05\x00\x00\x00\x00\x00\x00\xa0\x05\x00\x00\x00\x00\x00\x00\xa0\x05\x00\x00\x00\x00\x00\x00\xa8\x0d\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".data", 0x11000, "\x00\x00\x00\x00\x00\x00\x00\x00\x08\x10\x01\x00\x00\x00\x00\x00"), -Section(".text", 0x600, "\x81\x00\x00\xb0\x22\x50\x00\x91\x23\x00\x80\x52\x00\x00\x80\x52\x23\x14\x00\xb9\x5f\x04\x00\xb9\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1d\x00\x80\xd2\x1e\x00\x80\xd2\xe5\x03\x00\xaa\xe1\x03\x40\xf9\xe2\x23\x00\x91\xe6\x03\x00\x91\x80\x00\x00\x90\x00\xf8\x47\xf9\x03\x00\x80\xd2\x04\x00\x80\xd2\xd5\xff\xff\x97\xe0\xff\xff\x97\x80\x00\x00\x90\x00\xf4\x47\xf9\x40\x00\x00\xb4\xd8\xff\xff\x17\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x80\x00\x00\xb0\x00\x40\x00\x91\x81\x00\x00\xb0\x21\x40\x00\x91\x3f\x00\x00\xeb\xc0\x00\x00\x54\x81\x00\x00\x90\x21\xec\x47\xf9\x61\x00\x00\xb4\xf0\x03\x01\xaa\x00\x02\x1f\xd6\xc0\x03\x5f\xd6\x80\x00\x00\xb0\x00\x40\x00\x91\x81\x00\x00\xb0\x21\x40\x00\x91\x21\x00\x00\xcb\x22\xfc\x7f\xd3\x41\x0c\x81\x8b\x21\xfc\x41\x93\xc1\x00\x00\xb4\x82\x00\x00\x90\x42\xfc\x47\xf9\x62\x00\x00\xb4\xf0\x03\x02\xaa\x00\x02\x1f\xd6\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\xfd\x7b\xbe\xa9\xfd\x03\x00\x91\xf3\x0b\x00\xf9\x93\x00\x00\xb0\x60\x42\x40\x39\x40\x01\x00\x35\x80\x00\x00\x90\x00\xf0\x47\xf9\x80\x00\x00\xb4\x80\x00\x00\xb0\x00\x04\x40\xf9\xa9\xff\xff\x97\xd8\xff\xff\x97\x20\x00\x80\x52\x60\x42\x00\x39\xf3\x0b\x40\xf9\xfd\x7b\xc2\xa8\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\xdc\xff\xff\x17")]), -Memmap([Annotation(Region(0x0,0x847), Attr("segment","02 0 2120")), -Annotation(Region(0x600,0x61B), Attr("symbol","\"main\"")), -Annotation(Region(0x0,0xF9), Attr("section","\".shstrtab\"")), -Annotation(Region(0x0,0x22A), Attr("section","\".strtab\"")), -Annotation(Region(0x0,0x2A), Attr("section","\".comment\"")), -Annotation(Region(0x238,0x252), Attr("section","\".interp\"")), -Annotation(Region(0x254,0x277), Attr("section","\".note.gnu.build-id\"")), -Annotation(Region(0x278,0x297), Attr("section","\".note.ABI-tag\"")), -Annotation(Region(0x298,0x2B3), Attr("section","\".gnu.hash\"")), -Annotation(Region(0x2B8,0x38F), Attr("section","\".dynsym\"")), -Annotation(Region(0x390,0x41C), Attr("section","\".dynstr\"")), -Annotation(Region(0x41E,0x42F), Attr("section","\".gnu.version\"")), -Annotation(Region(0x430,0x45F), Attr("section","\".gnu.version_r\"")), -Annotation(Region(0x460,0x51F), Attr("section","\".rela.dyn\"")), -Annotation(Region(0x520,0x57F), Attr("section","\".rela.plt\"")), -Annotation(Region(0x580,0x597), Attr("section","\".init\"")), -Annotation(Region(0x5A0,0x5FF), Attr("section","\".plt\"")), -Annotation(Region(0x580,0x597), Attr("code-region","()")), -Annotation(Region(0x5A0,0x5FF), Attr("code-region","()")), -Annotation(Region(0x600,0x61B), Attr("symbol-info","main 0x600 28")), -Annotation(Region(0x640,0x673), Attr("symbol","\"_start\"")), -Annotation(Region(0x640,0x673), Attr("symbol-info","_start 0x640 52")), -Annotation(Region(0x674,0x687), Attr("symbol","\"call_weak_fn\"")), -Annotation(Region(0x674,0x687), Attr("symbol-info","call_weak_fn 0x674 20")), -Annotation(Region(0x754,0x767), Attr("section","\".fini\"")), -Annotation(Region(0x768,0x76B), Attr("section","\".rodata\"")), -Annotation(Region(0x76C,0x7A7), Attr("section","\".eh_frame_hdr\"")), -Annotation(Region(0x7A8,0x847), Attr("section","\".eh_frame\"")), -Annotation(Region(0x10D98,0x1100F), Attr("segment","03 0x10D98 648")), -Annotation(Region(0x10DA0,0x10DA7), Attr("section","\".fini_array\"")), -Annotation(Region(0x10DA8,0x10F97), Attr("section","\".dynamic\"")), -Annotation(Region(0x10D98,0x10D9F), Attr("section","\".init_array\"")), -Annotation(Region(0x10F98,0x10FFF), Attr("section","\".got\"")), -Annotation(Region(0x11000,0x1100F), Attr("section","\".data\"")), -Annotation(Region(0x600,0x753), Attr("section","\".text\"")), -Annotation(Region(0x600,0x753), Attr("code-region","()")), -Annotation(Region(0x754,0x767), Attr("code-region","()"))]), -Program(Tid(1_514, "%000005ea"), Attrs([]), - Subs([Sub(Tid(1_464, "@__cxa_finalize"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x5D0"), -Attr("stub","()")]), "__cxa_finalize", Args([Arg(Tid(1_515, "%000005eb"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("__cxa_finalize_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(860, "@__cxa_finalize"), - Attrs([Attr("address","0x5D0")]), Phis([]), -Defs([Def(Tid(1_108, "%00000454"), Attrs([Attr("address","0x5D0"), -Attr("insn","adrp x16, #65536")]), Var("R16",Imm(64)), Int(65536,64)), -Def(Tid(1_115, "%0000045b"), Attrs([Attr("address","0x5D4"), -Attr("insn","ldr x17, [x16, #0xfb8]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(4024,64)),LittleEndian(),64)), -Def(Tid(1_121, "%00000461"), Attrs([Attr("address","0x5D8"), -Attr("insn","add x16, x16, #0xfb8")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(4024,64)))]), Jmps([Call(Tid(1_126, "%00000466"), - Attrs([Attr("address","0x5DC"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), -Sub(Tid(1_465, "@__do_global_dtors_aux"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x700")]), - "__do_global_dtors_aux", Args([Arg(Tid(1_516, "%000005ec"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("__do_global_dtors_aux_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(713, "@__do_global_dtors_aux"), - Attrs([Attr("address","0x700")]), Phis([]), Defs([Def(Tid(717, "%000002cd"), - Attrs([Attr("address","0x700"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("#3",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(18446744073709551584,64))), -Def(Tid(723, "%000002d3"), Attrs([Attr("address","0x700"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("#3",Imm(64)),Var("R29",Imm(64)),LittleEndian(),64)), -Def(Tid(729, "%000002d9"), Attrs([Attr("address","0x700"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("#3",Imm(64)),Int(8,64)),Var("R30",Imm(64)),LittleEndian(),64)), -Def(Tid(733, "%000002dd"), Attrs([Attr("address","0x700"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("R31",Imm(64)), -Var("#3",Imm(64))), Def(Tid(739, "%000002e3"), - Attrs([Attr("address","0x704"), Attr("insn","mov x29, sp")]), - Var("R29",Imm(64)), Var("R31",Imm(64))), Def(Tid(747, "%000002eb"), - Attrs([Attr("address","0x708"), Attr("insn","str x19, [sp, #0x10]")]), - Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(16,64)),Var("R19",Imm(64)),LittleEndian(),64)), -Def(Tid(752, "%000002f0"), Attrs([Attr("address","0x70C"), -Attr("insn","adrp x19, #69632")]), Var("R19",Imm(64)), Int(69632,64)), -Def(Tid(759, "%000002f7"), Attrs([Attr("address","0x710"), -Attr("insn","ldrb w0, [x19, #0x10]")]), Var("R0",Imm(64)), -UNSIGNED(64,Load(Var("mem",Mem(64,8)),PLUS(Var("R19",Imm(64)),Int(16,64)),LittleEndian(),8)))]), -Jmps([Goto(Tid(766, "%000002fe"), Attrs([Attr("address","0x714"), -Attr("insn","cbnz w0, #0x28")]), - NEQ(Extract(31,0,Var("R0",Imm(64))),Int(0,32)), -Direct(Tid(764, "%000002fc"))), Goto(Tid(1_504, "%000005e0"), Attrs([]), - Int(1,1), Direct(Tid(805, "%00000325")))])), Blk(Tid(805, "%00000325"), - Attrs([Attr("address","0x718")]), Phis([]), Defs([Def(Tid(808, "%00000328"), - Attrs([Attr("address","0x718"), Attr("insn","adrp x0, #65536")]), - Var("R0",Imm(64)), Int(65536,64)), Def(Tid(815, "%0000032f"), - Attrs([Attr("address","0x71C"), Attr("insn","ldr x0, [x0, #0xfe0]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(4064,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(821, "%00000335"), Attrs([Attr("address","0x720"), -Attr("insn","cbz x0, #0x10")]), EQ(Var("R0",Imm(64)),Int(0,64)), -Direct(Tid(819, "%00000333"))), Goto(Tid(1_505, "%000005e1"), Attrs([]), - Int(1,1), Direct(Tid(844, "%0000034c")))])), Blk(Tid(844, "%0000034c"), - Attrs([Attr("address","0x724")]), Phis([]), Defs([Def(Tid(847, "%0000034f"), - Attrs([Attr("address","0x724"), Attr("insn","adrp x0, #69632")]), - Var("R0",Imm(64)), Int(69632,64)), Def(Tid(854, "%00000356"), - Attrs([Attr("address","0x728"), Attr("insn","ldr x0, [x0, #0x8]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(859, "%0000035b"), Attrs([Attr("address","0x72C"), -Attr("insn","bl #-0x15c")]), Var("R30",Imm(64)), Int(1840,64))]), -Jmps([Call(Tid(862, "%0000035e"), Attrs([Attr("address","0x72C"), -Attr("insn","bl #-0x15c")]), Int(1,1), -(Direct(Tid(1_464, "@__cxa_finalize")),Direct(Tid(819, "%00000333"))))])), -Blk(Tid(819, "%00000333"), Attrs([Attr("address","0x730")]), Phis([]), -Defs([Def(Tid(827, "%0000033b"), Attrs([Attr("address","0x730"), -Attr("insn","bl #-0xa0")]), Var("R30",Imm(64)), Int(1844,64))]), -Jmps([Call(Tid(829, "%0000033d"), Attrs([Attr("address","0x730"), -Attr("insn","bl #-0xa0")]), Int(1,1), -(Direct(Tid(1_478, "@deregister_tm_clones")),Direct(Tid(831, "%0000033f"))))])), -Blk(Tid(831, "%0000033f"), Attrs([Attr("address","0x734")]), Phis([]), -Defs([Def(Tid(834, "%00000342"), Attrs([Attr("address","0x734"), -Attr("insn","mov w0, #0x1")]), Var("R0",Imm(64)), Int(1,64)), -Def(Tid(842, "%0000034a"), Attrs([Attr("address","0x738"), -Attr("insn","strb w0, [x19, #0x10]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R19",Imm(64)),Int(16,64)),Extract(7,0,Var("R0",Imm(64))),LittleEndian(),8))]), -Jmps([Goto(Tid(1_506, "%000005e2"), Attrs([]), Int(1,1), -Direct(Tid(764, "%000002fc")))])), Blk(Tid(764, "%000002fc"), - Attrs([Attr("address","0x73C")]), Phis([]), Defs([Def(Tid(774, "%00000306"), - Attrs([Attr("address","0x73C"), Attr("insn","ldr x19, [sp, #0x10]")]), - Var("R19",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(16,64)),LittleEndian(),64)), -Def(Tid(781, "%0000030d"), Attrs([Attr("address","0x740"), -Attr("insn","ldp x29, x30, [sp], #0x20")]), Var("R29",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(786, "%00000312"), Attrs([Attr("address","0x740"), -Attr("insn","ldp x29, x30, [sp], #0x20")]), Var("R30",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(790, "%00000316"), Attrs([Attr("address","0x740"), -Attr("insn","ldp x29, x30, [sp], #0x20")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(32,64)))]), Jmps([Call(Tid(795, "%0000031b"), - Attrs([Attr("address","0x744"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), Sub(Tid(1_469, "@__libc_start_main"), - Attrs([Attr("c.proto","signed (*)(signed (*)(signed , char** , char** );* main, signed , char** , \nvoid* auxv)"), -Attr("address","0x5C0"), Attr("stub","()")]), "__libc_start_main", - Args([Arg(Tid(1_517, "%000005ed"), - Attrs([Attr("c.layout","**[ : 64]"), -Attr("c.data","Top:u64 ptr ptr"), -Attr("c.type","signed (*)(signed , char** , char** );*")]), - Var("__libc_start_main_main",Imm(64)), Var("R0",Imm(64)), In()), -Arg(Tid(1_518, "%000005ee"), Attrs([Attr("c.layout","[signed : 32]"), -Attr("c.data","Top:u32"), Attr("c.type","signed")]), - Var("__libc_start_main_arg2",Imm(32)), LOW(32,Var("R1",Imm(64))), In()), -Arg(Tid(1_519, "%000005ef"), Attrs([Attr("c.layout","**[char : 8]"), -Attr("c.data","Top:u8 ptr ptr"), Attr("c.type","char**")]), - Var("__libc_start_main_arg3",Imm(64)), Var("R2",Imm(64)), Both()), -Arg(Tid(1_520, "%000005f0"), Attrs([Attr("c.layout","*[ : 8]"), -Attr("c.data","{} ptr"), Attr("c.type","void*")]), - Var("__libc_start_main_auxv",Imm(64)), Var("R3",Imm(64)), Both()), -Arg(Tid(1_521, "%000005f1"), Attrs([Attr("c.layout","[signed : 32]"), -Attr("c.data","Top:u32"), Attr("c.type","signed")]), - Var("__libc_start_main_result",Imm(32)), LOW(32,Var("R0",Imm(64))), -Out())]), Blks([Blk(Tid(546, "@__libc_start_main"), - Attrs([Attr("address","0x5C0")]), Phis([]), -Defs([Def(Tid(1_086, "%0000043e"), Attrs([Attr("address","0x5C0"), -Attr("insn","adrp x16, #65536")]), Var("R16",Imm(64)), Int(65536,64)), -Def(Tid(1_093, "%00000445"), Attrs([Attr("address","0x5C4"), -Attr("insn","ldr x17, [x16, #0xfb0]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(4016,64)),LittleEndian(),64)), -Def(Tid(1_099, "%0000044b"), Attrs([Attr("address","0x5C8"), -Attr("insn","add x16, x16, #0xfb0")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(4016,64)))]), Jmps([Call(Tid(1_104, "%00000450"), - Attrs([Attr("address","0x5CC"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), Sub(Tid(1_470, "@_fini"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x754")]), - "_fini", Args([Arg(Tid(1_522, "%000005f2"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("_fini_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(31, "@_fini"), - Attrs([Attr("address","0x754")]), Phis([]), Defs([Def(Tid(37, "%00000025"), - Attrs([Attr("address","0x758"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("#0",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(18446744073709551600,64))), -Def(Tid(43, "%0000002b"), Attrs([Attr("address","0x758"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("#0",Imm(64)),Var("R29",Imm(64)),LittleEndian(),64)), -Def(Tid(49, "%00000031"), Attrs([Attr("address","0x758"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("#0",Imm(64)),Int(8,64)),Var("R30",Imm(64)),LittleEndian(),64)), -Def(Tid(53, "%00000035"), Attrs([Attr("address","0x758"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("R31",Imm(64)), -Var("#0",Imm(64))), Def(Tid(59, "%0000003b"), Attrs([Attr("address","0x75C"), -Attr("insn","mov x29, sp")]), Var("R29",Imm(64)), Var("R31",Imm(64))), -Def(Tid(66, "%00000042"), Attrs([Attr("address","0x760"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R29",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(71, "%00000047"), Attrs([Attr("address","0x760"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R30",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(75, "%0000004b"), Attrs([Attr("address","0x760"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(16,64)))]), Jmps([Call(Tid(80, "%00000050"), - Attrs([Attr("address","0x764"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), Sub(Tid(1_471, "@_init"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x580")]), - "_init", Args([Arg(Tid(1_523, "%000005f3"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("_init_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(1_290, "@_init"), - Attrs([Attr("address","0x580")]), Phis([]), -Defs([Def(Tid(1_296, "%00000510"), Attrs([Attr("address","0x584"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("#5",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(18446744073709551600,64))), -Def(Tid(1_302, "%00000516"), Attrs([Attr("address","0x584"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("#5",Imm(64)),Var("R29",Imm(64)),LittleEndian(),64)), -Def(Tid(1_308, "%0000051c"), Attrs([Attr("address","0x584"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("#5",Imm(64)),Int(8,64)),Var("R30",Imm(64)),LittleEndian(),64)), -Def(Tid(1_312, "%00000520"), Attrs([Attr("address","0x584"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("R31",Imm(64)), -Var("#5",Imm(64))), Def(Tid(1_318, "%00000526"), - Attrs([Attr("address","0x588"), Attr("insn","mov x29, sp")]), - Var("R29",Imm(64)), Var("R31",Imm(64))), Def(Tid(1_323, "%0000052b"), - Attrs([Attr("address","0x58C"), Attr("insn","bl #0xe8")]), - Var("R30",Imm(64)), Int(1424,64))]), Jmps([Call(Tid(1_325, "%0000052d"), - Attrs([Attr("address","0x58C"), Attr("insn","bl #0xe8")]), Int(1,1), -(Direct(Tid(1_476, "@call_weak_fn")),Direct(Tid(1_327, "%0000052f"))))])), -Blk(Tid(1_327, "%0000052f"), Attrs([Attr("address","0x590")]), Phis([]), -Defs([Def(Tid(1_332, "%00000534"), Attrs([Attr("address","0x590"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R29",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(1_337, "%00000539"), Attrs([Attr("address","0x590"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R30",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(1_341, "%0000053d"), Attrs([Attr("address","0x590"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(16,64)))]), Jmps([Call(Tid(1_346, "%00000542"), - Attrs([Attr("address","0x594"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), Sub(Tid(1_472, "@_start"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x640"), -Attr("entry-point","()")]), "_start", Args([Arg(Tid(1_524, "%000005f4"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("_start_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(483, "@_start"), - Attrs([Attr("address","0x640")]), Phis([]), Defs([Def(Tid(488, "%000001e8"), - Attrs([Attr("address","0x644"), Attr("insn","mov x29, #0x0")]), - Var("R29",Imm(64)), Int(0,64)), Def(Tid(493, "%000001ed"), - Attrs([Attr("address","0x648"), Attr("insn","mov x30, #0x0")]), - Var("R30",Imm(64)), Int(0,64)), Def(Tid(499, "%000001f3"), - Attrs([Attr("address","0x64C"), Attr("insn","mov x5, x0")]), - Var("R5",Imm(64)), Var("R0",Imm(64))), Def(Tid(506, "%000001fa"), - Attrs([Attr("address","0x650"), Attr("insn","ldr x1, [sp]")]), - Var("R1",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(512, "%00000200"), Attrs([Attr("address","0x654"), -Attr("insn","add x2, sp, #0x8")]), Var("R2",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(8,64))), Def(Tid(518, "%00000206"), - Attrs([Attr("address","0x658"), Attr("insn","mov x6, sp")]), - Var("R6",Imm(64)), Var("R31",Imm(64))), Def(Tid(523, "%0000020b"), - Attrs([Attr("address","0x65C"), Attr("insn","adrp x0, #65536")]), - Var("R0",Imm(64)), Int(65536,64)), Def(Tid(530, "%00000212"), - Attrs([Attr("address","0x660"), Attr("insn","ldr x0, [x0, #0xff0]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(4080,64)),LittleEndian(),64)), -Def(Tid(535, "%00000217"), Attrs([Attr("address","0x664"), -Attr("insn","mov x3, #0x0")]), Var("R3",Imm(64)), Int(0,64)), -Def(Tid(540, "%0000021c"), Attrs([Attr("address","0x668"), -Attr("insn","mov x4, #0x0")]), Var("R4",Imm(64)), Int(0,64)), -Def(Tid(545, "%00000221"), Attrs([Attr("address","0x66C"), -Attr("insn","bl #-0xac")]), Var("R30",Imm(64)), Int(1648,64))]), -Jmps([Call(Tid(548, "%00000224"), Attrs([Attr("address","0x66C"), -Attr("insn","bl #-0xac")]), Int(1,1), -(Direct(Tid(1_469, "@__libc_start_main")),Direct(Tid(550, "%00000226"))))])), -Blk(Tid(550, "%00000226"), Attrs([Attr("address","0x670")]), Phis([]), -Defs([Def(Tid(553, "%00000229"), Attrs([Attr("address","0x670"), -Attr("insn","bl #-0x80")]), Var("R30",Imm(64)), Int(1652,64))]), -Jmps([Call(Tid(556, "%0000022c"), Attrs([Attr("address","0x670"), -Attr("insn","bl #-0x80")]), Int(1,1), -(Direct(Tid(1_475, "@abort")),Direct(Tid(1_507, "%000005e3"))))])), -Blk(Tid(1_507, "%000005e3"), Attrs([]), Phis([]), Defs([]), -Jmps([Call(Tid(1_508, "%000005e4"), Attrs([]), Int(1,1), -(Direct(Tid(1_476, "@call_weak_fn")),))]))])), Sub(Tid(1_475, "@abort"), - Attrs([Attr("noreturn","()"), Attr("c.proto","void (*)(void)"), -Attr("address","0x5F0"), Attr("stub","()")]), "abort", Args([]), -Blks([Blk(Tid(554, "@abort"), Attrs([Attr("address","0x5F0")]), Phis([]), -Defs([Def(Tid(1_152, "%00000480"), Attrs([Attr("address","0x5F0"), -Attr("insn","adrp x16, #65536")]), Var("R16",Imm(64)), Int(65536,64)), -Def(Tid(1_159, "%00000487"), Attrs([Attr("address","0x5F4"), -Attr("insn","ldr x17, [x16, #0xfc8]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(4040,64)),LittleEndian(),64)), -Def(Tid(1_165, "%0000048d"), Attrs([Attr("address","0x5F8"), -Attr("insn","add x16, x16, #0xfc8")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(4040,64)))]), Jmps([Call(Tid(1_170, "%00000492"), - Attrs([Attr("address","0x5FC"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), Sub(Tid(1_476, "@call_weak_fn"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x674")]), - "call_weak_fn", Args([Arg(Tid(1_525, "%000005f5"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("call_weak_fn_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(558, "@call_weak_fn"), - Attrs([Attr("address","0x674")]), Phis([]), Defs([Def(Tid(561, "%00000231"), - Attrs([Attr("address","0x674"), Attr("insn","adrp x0, #65536")]), - Var("R0",Imm(64)), Int(65536,64)), Def(Tid(568, "%00000238"), - Attrs([Attr("address","0x678"), Attr("insn","ldr x0, [x0, #0xfe8]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(4072,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(574, "%0000023e"), Attrs([Attr("address","0x67C"), -Attr("insn","cbz x0, #0x8")]), EQ(Var("R0",Imm(64)),Int(0,64)), -Direct(Tid(572, "%0000023c"))), Goto(Tid(1_509, "%000005e5"), Attrs([]), - Int(1,1), Direct(Tid(924, "%0000039c")))])), Blk(Tid(572, "%0000023c"), - Attrs([Attr("address","0x684")]), Phis([]), Defs([]), -Jmps([Call(Tid(580, "%00000244"), Attrs([Attr("address","0x684"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))])), -Blk(Tid(924, "%0000039c"), Attrs([Attr("address","0x680")]), Phis([]), -Defs([]), Jmps([Goto(Tid(927, "%0000039f"), Attrs([Attr("address","0x680"), -Attr("insn","b #-0xa0")]), Int(1,1), Direct(Tid(925, "@__gmon_start__")))])), -Blk(Tid(925, "@__gmon_start__"), Attrs([Attr("address","0x5E0")]), Phis([]), -Defs([Def(Tid(1_130, "%0000046a"), Attrs([Attr("address","0x5E0"), -Attr("insn","adrp x16, #65536")]), Var("R16",Imm(64)), Int(65536,64)), -Def(Tid(1_137, "%00000471"), Attrs([Attr("address","0x5E4"), -Attr("insn","ldr x17, [x16, #0xfc0]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(4032,64)),LittleEndian(),64)), -Def(Tid(1_143, "%00000477"), Attrs([Attr("address","0x5E8"), -Attr("insn","add x16, x16, #0xfc0")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(4032,64)))]), Jmps([Call(Tid(1_148, "%0000047c"), - Attrs([Attr("address","0x5EC"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), -Sub(Tid(1_478, "@deregister_tm_clones"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x690")]), - "deregister_tm_clones", Args([Arg(Tid(1_526, "%000005f6"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("deregister_tm_clones_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(586, "@deregister_tm_clones"), - Attrs([Attr("address","0x690")]), Phis([]), Defs([Def(Tid(589, "%0000024d"), - Attrs([Attr("address","0x690"), Attr("insn","adrp x0, #69632")]), - Var("R0",Imm(64)), Int(69632,64)), Def(Tid(595, "%00000253"), - Attrs([Attr("address","0x694"), Attr("insn","add x0, x0, #0x10")]), - Var("R0",Imm(64)), PLUS(Var("R0",Imm(64)),Int(16,64))), -Def(Tid(600, "%00000258"), Attrs([Attr("address","0x698"), -Attr("insn","adrp x1, #69632")]), Var("R1",Imm(64)), Int(69632,64)), -Def(Tid(606, "%0000025e"), Attrs([Attr("address","0x69C"), -Attr("insn","add x1, x1, #0x10")]), Var("R1",Imm(64)), -PLUS(Var("R1",Imm(64)),Int(16,64))), Def(Tid(612, "%00000264"), - Attrs([Attr("address","0x6A0"), Attr("insn","cmp x1, x0")]), - Var("#1",Imm(64)), NOT(Var("R0",Imm(64)))), Def(Tid(617, "%00000269"), - Attrs([Attr("address","0x6A0"), Attr("insn","cmp x1, x0")]), - Var("#2",Imm(64)), PLUS(Var("R1",Imm(64)),NOT(Var("R0",Imm(64))))), -Def(Tid(623, "%0000026f"), Attrs([Attr("address","0x6A0"), -Attr("insn","cmp x1, x0")]), Var("VF",Imm(1)), -NEQ(SIGNED(65,PLUS(Var("#2",Imm(64)),Int(1,64))),PLUS(PLUS(SIGNED(65,Var("R1",Imm(64))),SIGNED(65,Var("#1",Imm(64)))),Int(1,65)))), -Def(Tid(629, "%00000275"), Attrs([Attr("address","0x6A0"), -Attr("insn","cmp x1, x0")]), Var("CF",Imm(1)), -NEQ(UNSIGNED(65,PLUS(Var("#2",Imm(64)),Int(1,64))),PLUS(PLUS(UNSIGNED(65,Var("R1",Imm(64))),UNSIGNED(65,Var("#1",Imm(64)))),Int(1,65)))), -Def(Tid(633, "%00000279"), Attrs([Attr("address","0x6A0"), -Attr("insn","cmp x1, x0")]), Var("ZF",Imm(1)), -EQ(PLUS(Var("#2",Imm(64)),Int(1,64)),Int(0,64))), Def(Tid(637, "%0000027d"), - Attrs([Attr("address","0x6A0"), Attr("insn","cmp x1, x0")]), - Var("NF",Imm(1)), Extract(63,63,PLUS(Var("#2",Imm(64)),Int(1,64))))]), -Jmps([Goto(Tid(643, "%00000283"), Attrs([Attr("address","0x6A4"), -Attr("insn","b.eq #0x18")]), EQ(Var("ZF",Imm(1)),Int(1,1)), -Direct(Tid(641, "%00000281"))), Goto(Tid(1_510, "%000005e6"), Attrs([]), - Int(1,1), Direct(Tid(894, "%0000037e")))])), Blk(Tid(894, "%0000037e"), - Attrs([Attr("address","0x6A8")]), Phis([]), Defs([Def(Tid(897, "%00000381"), - Attrs([Attr("address","0x6A8"), Attr("insn","adrp x1, #65536")]), - Var("R1",Imm(64)), Int(65536,64)), Def(Tid(904, "%00000388"), - Attrs([Attr("address","0x6AC"), Attr("insn","ldr x1, [x1, #0xfd8]")]), - Var("R1",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R1",Imm(64)),Int(4056,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(909, "%0000038d"), Attrs([Attr("address","0x6B0"), -Attr("insn","cbz x1, #0xc")]), EQ(Var("R1",Imm(64)),Int(0,64)), -Direct(Tid(641, "%00000281"))), Goto(Tid(1_511, "%000005e7"), Attrs([]), - Int(1,1), Direct(Tid(913, "%00000391")))])), Blk(Tid(641, "%00000281"), - Attrs([Attr("address","0x6BC")]), Phis([]), Defs([]), -Jmps([Call(Tid(649, "%00000289"), Attrs([Attr("address","0x6BC"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))])), -Blk(Tid(913, "%00000391"), Attrs([Attr("address","0x6B4")]), Phis([]), -Defs([Def(Tid(917, "%00000395"), Attrs([Attr("address","0x6B4"), -Attr("insn","mov x16, x1")]), Var("R16",Imm(64)), Var("R1",Imm(64)))]), -Jmps([Call(Tid(922, "%0000039a"), Attrs([Attr("address","0x6B8"), -Attr("insn","br x16")]), Int(1,1), (Indirect(Var("R16",Imm(64))),))]))])), -Sub(Tid(1_481, "@frame_dummy"), Attrs([Attr("c.proto","signed (*)(void)"), -Attr("address","0x750")]), "frame_dummy", Args([Arg(Tid(1_527, "%000005f7"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("frame_dummy_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(801, "@frame_dummy"), - Attrs([Attr("address","0x750")]), Phis([]), Defs([]), -Jmps([Call(Tid(803, "%00000323"), Attrs([Attr("address","0x750"), -Attr("insn","b #-0x90")]), Int(1,1), -(Direct(Tid(1_483, "@register_tm_clones")),))]))])), Sub(Tid(1_482, "@main"), - Attrs([Attr("c.proto","signed (*)(signed argc, const char** argv)"), -Attr("address","0x600"), Attr("stub","()")]), "main", - Args([Arg(Tid(1_528, "%000005f8"), Attrs([Attr("c.layout","[signed : 32]"), -Attr("c.data","Top:u32"), Attr("c.type","signed")]), - Var("main_argc",Imm(32)), LOW(32,Var("R0",Imm(64))), In()), -Arg(Tid(1_529, "%000005f9"), Attrs([Attr("c.layout","**[char : 8]"), -Attr("c.data","Top:u8 ptr ptr"), Attr("c.type"," const char**")]), - Var("main_argv",Imm(64)), Var("R1",Imm(64)), Both()), -Arg(Tid(1_530, "%000005fa"), Attrs([Attr("c.layout","[signed : 32]"), -Attr("c.data","Top:u32"), Attr("c.type","signed")]), - Var("main_result",Imm(32)), LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(424, "@main"), Attrs([Attr("address","0x600")]), Phis([]), -Defs([Def(Tid(427, "%000001ab"), Attrs([Attr("address","0x600"), -Attr("insn","adrp x1, #69632")]), Var("R1",Imm(64)), Int(69632,64)), -Def(Tid(433, "%000001b1"), Attrs([Attr("address","0x604"), -Attr("insn","add x2, x1, #0x14")]), Var("R2",Imm(64)), -PLUS(Var("R1",Imm(64)),Int(20,64))), Def(Tid(438, "%000001b6"), - Attrs([Attr("address","0x608"), Attr("insn","mov w3, #0x1")]), - Var("R3",Imm(64)), Int(1,64)), Def(Tid(443, "%000001bb"), - Attrs([Attr("address","0x60C"), Attr("insn","mov w0, #0x0")]), - Var("R0",Imm(64)), Int(0,64)), Def(Tid(451, "%000001c3"), - Attrs([Attr("address","0x610"), Attr("insn","str w3, [x1, #0x14]")]), - Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R1",Imm(64)),Int(20,64)),Extract(31,0,Var("R3",Imm(64))),LittleEndian(),32)), -Def(Tid(458, "%000001ca"), Attrs([Attr("address","0x614"), -Attr("insn","str wzr, [x2, #0x4]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R2",Imm(64)),Int(4,64)),Int(0,32),LittleEndian(),32))]), -Jmps([Call(Tid(463, "%000001cf"), Attrs([Attr("address","0x618"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))]))])), -Sub(Tid(1_483, "@register_tm_clones"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x6C0")]), - "register_tm_clones", Args([Arg(Tid(1_531, "%000005fb"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("register_tm_clones_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(651, "@register_tm_clones"), Attrs([Attr("address","0x6C0")]), - Phis([]), Defs([Def(Tid(654, "%0000028e"), Attrs([Attr("address","0x6C0"), -Attr("insn","adrp x0, #69632")]), Var("R0",Imm(64)), Int(69632,64)), -Def(Tid(660, "%00000294"), Attrs([Attr("address","0x6C4"), -Attr("insn","add x0, x0, #0x10")]), Var("R0",Imm(64)), -PLUS(Var("R0",Imm(64)),Int(16,64))), Def(Tid(665, "%00000299"), - Attrs([Attr("address","0x6C8"), Attr("insn","adrp x1, #69632")]), - Var("R1",Imm(64)), Int(69632,64)), Def(Tid(671, "%0000029f"), - Attrs([Attr("address","0x6CC"), Attr("insn","add x1, x1, #0x10")]), - Var("R1",Imm(64)), PLUS(Var("R1",Imm(64)),Int(16,64))), -Def(Tid(678, "%000002a6"), Attrs([Attr("address","0x6D0"), -Attr("insn","sub x1, x1, x0")]), Var("R1",Imm(64)), -PLUS(PLUS(Var("R1",Imm(64)),NOT(Var("R0",Imm(64)))),Int(1,64))), -Def(Tid(684, "%000002ac"), Attrs([Attr("address","0x6D4"), -Attr("insn","lsr x2, x1, #63")]), Var("R2",Imm(64)), -Concat(Int(0,63),Extract(63,63,Var("R1",Imm(64))))), -Def(Tid(691, "%000002b3"), Attrs([Attr("address","0x6D8"), -Attr("insn","add x1, x2, x1, asr #3")]), Var("R1",Imm(64)), -PLUS(Var("R2",Imm(64)),ARSHIFT(Var("R1",Imm(64)),Int(3,3)))), -Def(Tid(697, "%000002b9"), Attrs([Attr("address","0x6DC"), -Attr("insn","asr x1, x1, #1")]), Var("R1",Imm(64)), -SIGNED(64,Extract(63,1,Var("R1",Imm(64)))))]), -Jmps([Goto(Tid(703, "%000002bf"), Attrs([Attr("address","0x6E0"), -Attr("insn","cbz x1, #0x18")]), EQ(Var("R1",Imm(64)),Int(0,64)), -Direct(Tid(701, "%000002bd"))), Goto(Tid(1_512, "%000005e8"), Attrs([]), - Int(1,1), Direct(Tid(864, "%00000360")))])), Blk(Tid(864, "%00000360"), - Attrs([Attr("address","0x6E4")]), Phis([]), Defs([Def(Tid(867, "%00000363"), - Attrs([Attr("address","0x6E4"), Attr("insn","adrp x2, #65536")]), - Var("R2",Imm(64)), Int(65536,64)), Def(Tid(874, "%0000036a"), - Attrs([Attr("address","0x6E8"), Attr("insn","ldr x2, [x2, #0xff8]")]), - Var("R2",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R2",Imm(64)),Int(4088,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(879, "%0000036f"), Attrs([Attr("address","0x6EC"), -Attr("insn","cbz x2, #0xc")]), EQ(Var("R2",Imm(64)),Int(0,64)), -Direct(Tid(701, "%000002bd"))), Goto(Tid(1_513, "%000005e9"), Attrs([]), - Int(1,1), Direct(Tid(883, "%00000373")))])), Blk(Tid(701, "%000002bd"), - Attrs([Attr("address","0x6F8")]), Phis([]), Defs([]), -Jmps([Call(Tid(709, "%000002c5"), Attrs([Attr("address","0x6F8"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))])), -Blk(Tid(883, "%00000373"), Attrs([Attr("address","0x6F0")]), Phis([]), -Defs([Def(Tid(887, "%00000377"), Attrs([Attr("address","0x6F0"), -Attr("insn","mov x16, x2")]), Var("R16",Imm(64)), Var("R2",Imm(64)))]), -Jmps([Call(Tid(892, "%0000037c"), Attrs([Attr("address","0x6F4"), -Attr("insn","br x16")]), Int(1,1), -(Indirect(Var("R16",Imm(64))),))]))]))]))) \ No newline at end of file diff --git a/src/test/correct/basic_lock_unlock/gcc_O2/basic_lock_unlock.bir b/src/test/correct/basic_lock_unlock/gcc_O2/basic_lock_unlock.bir deleted file mode 100644 index 26a09b594..000000000 --- a/src/test/correct/basic_lock_unlock/gcc_O2/basic_lock_unlock.bir +++ /dev/null @@ -1,229 +0,0 @@ -000005ea: program -000005b8: sub __cxa_finalize(__cxa_finalize_result) -000005eb: __cxa_finalize_result :: out u32 = low:32[R0] - -0000035c: -00000454: R16 := 0x10000 -0000045b: R17 := mem[R16 + 0xFB8, el]:u64 -00000461: R16 := R16 + 0xFB8 -00000466: call R17 with noreturn - -000005b9: sub __do_global_dtors_aux(__do_global_dtors_aux_result) -000005ec: __do_global_dtors_aux_result :: out u32 = low:32[R0] - -000002c9: -000002cd: #3 := R31 - 0x20 -000002d3: mem := mem with [#3, el]:u64 <- R29 -000002d9: mem := mem with [#3 + 8, el]:u64 <- R30 -000002dd: R31 := #3 -000002e3: R29 := R31 -000002eb: mem := mem with [R31 + 0x10, el]:u64 <- R19 -000002f0: R19 := 0x11000 -000002f7: R0 := pad:64[mem[R19 + 0x10]] -000002fe: when 31:0[R0] <> 0 goto %000002fc -000005e0: goto %00000325 - -00000325: -00000328: R0 := 0x10000 -0000032f: R0 := mem[R0 + 0xFE0, el]:u64 -00000335: when R0 = 0 goto %00000333 -000005e1: goto %0000034c - -0000034c: -0000034f: R0 := 0x11000 -00000356: R0 := mem[R0 + 8, el]:u64 -0000035b: R30 := 0x730 -0000035e: call @__cxa_finalize with return %00000333 - -00000333: -0000033b: R30 := 0x734 -0000033d: call @deregister_tm_clones with return %0000033f - -0000033f: -00000342: R0 := 1 -0000034a: mem := mem with [R19 + 0x10] <- 7:0[R0] -000005e2: goto %000002fc - -000002fc: -00000306: R19 := mem[R31 + 0x10, el]:u64 -0000030d: R29 := mem[R31, el]:u64 -00000312: R30 := mem[R31 + 8, el]:u64 -00000316: R31 := R31 + 0x20 -0000031b: call R30 with noreturn - -000005bd: sub __libc_start_main(__libc_start_main_main, __libc_start_main_arg2, __libc_start_main_arg3, __libc_start_main_auxv, __libc_start_main_result) -000005ed: __libc_start_main_main :: in u64 = R0 -000005ee: __libc_start_main_arg2 :: in u32 = low:32[R1] -000005ef: __libc_start_main_arg3 :: in out u64 = R2 -000005f0: __libc_start_main_auxv :: in out u64 = R3 -000005f1: __libc_start_main_result :: out u32 = low:32[R0] - -00000222: -0000043e: R16 := 0x10000 -00000445: R17 := mem[R16 + 0xFB0, el]:u64 -0000044b: R16 := R16 + 0xFB0 -00000450: call R17 with noreturn - -000005be: sub _fini(_fini_result) -000005f2: _fini_result :: out u32 = low:32[R0] - -0000001f: -00000025: #0 := R31 - 0x10 -0000002b: mem := mem with [#0, el]:u64 <- R29 -00000031: mem := mem with [#0 + 8, el]:u64 <- R30 -00000035: R31 := #0 -0000003b: R29 := R31 -00000042: R29 := mem[R31, el]:u64 -00000047: R30 := mem[R31 + 8, el]:u64 -0000004b: R31 := R31 + 0x10 -00000050: call R30 with noreturn - -000005bf: sub _init(_init_result) -000005f3: _init_result :: out u32 = low:32[R0] - -0000050a: -00000510: #5 := R31 - 0x10 -00000516: mem := mem with [#5, el]:u64 <- R29 -0000051c: mem := mem with [#5 + 8, el]:u64 <- R30 -00000520: R31 := #5 -00000526: R29 := R31 -0000052b: R30 := 0x590 -0000052d: call @call_weak_fn with return %0000052f - -0000052f: -00000534: R29 := mem[R31, el]:u64 -00000539: R30 := mem[R31 + 8, el]:u64 -0000053d: R31 := R31 + 0x10 -00000542: call R30 with noreturn - -000005c0: sub _start(_start_result) -000005f4: _start_result :: out u32 = low:32[R0] - -000001e3: -000001e8: R29 := 0 -000001ed: R30 := 0 -000001f3: R5 := R0 -000001fa: R1 := mem[R31, el]:u64 -00000200: R2 := R31 + 8 -00000206: R6 := R31 -0000020b: R0 := 0x10000 -00000212: R0 := mem[R0 + 0xFF0, el]:u64 -00000217: R3 := 0 -0000021c: R4 := 0 -00000221: R30 := 0x670 -00000224: call @__libc_start_main with return %00000226 - -00000226: -00000229: R30 := 0x674 -0000022c: call @abort with return %000005e3 - -000005e3: -000005e4: call @call_weak_fn with noreturn - -000005c3: sub abort() - - -0000022a: -00000480: R16 := 0x10000 -00000487: R17 := mem[R16 + 0xFC8, el]:u64 -0000048d: R16 := R16 + 0xFC8 -00000492: call R17 with noreturn - -000005c4: sub call_weak_fn(call_weak_fn_result) -000005f5: call_weak_fn_result :: out u32 = low:32[R0] - -0000022e: -00000231: R0 := 0x10000 -00000238: R0 := mem[R0 + 0xFE8, el]:u64 -0000023e: when R0 = 0 goto %0000023c -000005e5: goto %0000039c - -0000023c: -00000244: call R30 with noreturn - -0000039c: -0000039f: goto @__gmon_start__ - -0000039d: -0000046a: R16 := 0x10000 -00000471: R17 := mem[R16 + 0xFC0, el]:u64 -00000477: R16 := R16 + 0xFC0 -0000047c: call R17 with noreturn - -000005c6: sub deregister_tm_clones(deregister_tm_clones_result) -000005f6: deregister_tm_clones_result :: out u32 = low:32[R0] - -0000024a: -0000024d: R0 := 0x11000 -00000253: R0 := R0 + 0x10 -00000258: R1 := 0x11000 -0000025e: R1 := R1 + 0x10 -00000264: #1 := ~R0 -00000269: #2 := R1 + ~R0 -0000026f: VF := extend:65[#2 + 1] <> extend:65[R1] + extend:65[#1] + 1 -00000275: CF := pad:65[#2 + 1] <> pad:65[R1] + pad:65[#1] + 1 -00000279: ZF := #2 + 1 = 0 -0000027d: NF := 63:63[#2 + 1] -00000283: when ZF goto %00000281 -000005e6: goto %0000037e - -0000037e: -00000381: R1 := 0x10000 -00000388: R1 := mem[R1 + 0xFD8, el]:u64 -0000038d: when R1 = 0 goto %00000281 -000005e7: goto %00000391 - -00000281: -00000289: call R30 with noreturn - -00000391: -00000395: R16 := R1 -0000039a: call R16 with noreturn - -000005c9: sub frame_dummy(frame_dummy_result) -000005f7: frame_dummy_result :: out u32 = low:32[R0] - -00000321: -00000323: call @register_tm_clones with noreturn - -000005ca: sub main(main_argc, main_argv, main_result) -000005f8: main_argc :: in u32 = low:32[R0] -000005f9: main_argv :: in out u64 = R1 -000005fa: main_result :: out u32 = low:32[R0] - -000001a8: -000001ab: R1 := 0x11000 -000001b1: R2 := R1 + 0x14 -000001b6: R3 := 1 -000001bb: R0 := 0 -000001c3: mem := mem with [R1 + 0x14, el]:u32 <- 31:0[R3] -000001ca: mem := mem with [R2 + 4, el]:u32 <- 0 -000001cf: call R30 with noreturn - -000005cb: sub register_tm_clones(register_tm_clones_result) -000005fb: register_tm_clones_result :: out u32 = low:32[R0] - -0000028b: -0000028e: R0 := 0x11000 -00000294: R0 := R0 + 0x10 -00000299: R1 := 0x11000 -0000029f: R1 := R1 + 0x10 -000002a6: R1 := R1 + ~R0 + 1 -000002ac: R2 := 0.63:63[R1] -000002b3: R1 := R2 + (R1 ~>> 3) -000002b9: R1 := extend:64[63:1[R1]] -000002bf: when R1 = 0 goto %000002bd -000005e8: goto %00000360 - -00000360: -00000363: R2 := 0x10000 -0000036a: R2 := mem[R2 + 0xFF8, el]:u64 -0000036f: when R2 = 0 goto %000002bd -000005e9: goto %00000373 - -000002bd: -000002c5: call R30 with noreturn - -00000373: -00000377: R16 := R2 -0000037c: call R16 with noreturn diff --git a/src/test/correct/basic_lock_unlock/gcc_O2/basic_lock_unlock.expected b/src/test/correct/basic_lock_unlock/gcc_O2/basic_lock_unlock.expected index e49078496..eec3701a1 100644 --- a/src/test/correct/basic_lock_unlock/gcc_O2/basic_lock_unlock.expected +++ b/src/test/correct/basic_lock_unlock/gcc_O2/basic_lock_unlock.expected @@ -68,7 +68,7 @@ implementation {:extern} guarantee_reflexive() assert ((memory_load32_le(mem, $z_addr) == 0bv32) ==> ((memory_load32_le(mem, $x_addr) == memory_load32_le(mem, $x_addr)) && (memory_load32_le(mem, $z_addr) == memory_load32_le(mem, $z_addr)))); } -procedure main_1536(); +procedure main(); modifies Gamma_R0, Gamma_R1, Gamma_R2, Gamma_R3, Gamma_mem, R0, R1, R2, R3, mem; requires (memory_load32_le(mem, $z_addr) == 1bv32); free requires (memory_load64_le(mem, 69632bv64) == 0bv64); @@ -84,7 +84,7 @@ procedure main_1536(); free ensures (memory_load64_le(mem, 69616bv64) == 1536bv64); free ensures (memory_load64_le(mem, 69640bv64) == 69640bv64); -implementation main_1536() +implementation main() { var x_old: bv32; var z_old: bv32; @@ -95,22 +95,22 @@ implementation main_1536() R3, Gamma_R3 := 1bv64, true; R0, Gamma_R0 := 0bv64, true; call rely(); + assert (L(mem, bvadd64(R1, 20bv64)) ==> Gamma_R3); x_old := memory_load32_le(mem, $x_addr); z_old := memory_load32_le(mem, $z_addr); - assert (L(mem, bvadd64(R1, 20bv64)) ==> Gamma_R3); mem, Gamma_mem := memory_store32_le(mem, bvadd64(R1, 20bv64), R3[32:0]), gamma_store32(Gamma_mem, bvadd64(R1, 20bv64), Gamma_R3); assert ((z_old == 0bv32) ==> ((memory_load32_le(mem, $x_addr) == x_old) && (memory_load32_le(mem, $z_addr) == z_old))); assume {:captureState "%000001c3"} true; call rely(); + assert (L(mem, bvadd64(R2, 4bv64)) ==> true); x_old := memory_load32_le(mem, $x_addr); z_old := memory_load32_le(mem, $z_addr); - assert (L(mem, bvadd64(R2, 4bv64)) ==> true); mem, Gamma_mem := memory_store32_le(mem, bvadd64(R2, 4bv64), 0bv32), gamma_store32(Gamma_mem, bvadd64(R2, 4bv64), true); assert ((z_old == 0bv32) ==> ((memory_load32_le(mem, $x_addr) == x_old) && (memory_load32_le(mem, $z_addr) == z_old))); assume {:captureState "%000001ca"} true; - goto main_1536_basil_return; - main_1536_basil_return: - assume {:captureState "main_1536_basil_return"} true; + goto main_basil_return; + main_basil_return: + assume {:captureState "main_basil_return"} true; return; } diff --git a/src/test/correct/basic_lock_unlock/gcc_O2/basic_lock_unlock.gts b/src/test/correct/basic_lock_unlock/gcc_O2/basic_lock_unlock.gts deleted file mode 100644 index b25282f6c..000000000 Binary files a/src/test/correct/basic_lock_unlock/gcc_O2/basic_lock_unlock.gts and /dev/null differ diff --git a/src/test/correct/basic_lock_unlock/gcc_O2/basic_lock_unlock.md5sum b/src/test/correct/basic_lock_unlock/gcc_O2/basic_lock_unlock.md5sum new file mode 100644 index 000000000..186aa2048 --- /dev/null +++ b/src/test/correct/basic_lock_unlock/gcc_O2/basic_lock_unlock.md5sum @@ -0,0 +1,5 @@ +7baf1693a7562b5b186cec29bca1d34a correct/basic_lock_unlock/gcc_O2/a.out +47e1e9100bf81d020cb318b9946a6c0f correct/basic_lock_unlock/gcc_O2/basic_lock_unlock.adt +1c15d5edddd717d95ab843b4383e220e correct/basic_lock_unlock/gcc_O2/basic_lock_unlock.bir +cdc291c2f4a01bdcef3f45b12ad7ad03 correct/basic_lock_unlock/gcc_O2/basic_lock_unlock.relf +43e4372c528389d5befb355377da2690 correct/basic_lock_unlock/gcc_O2/basic_lock_unlock.gts diff --git a/src/test/correct/basic_lock_unlock/gcc_O2/basic_lock_unlock.relf b/src/test/correct/basic_lock_unlock/gcc_O2/basic_lock_unlock.relf deleted file mode 100644 index be16f277b..000000000 --- a/src/test/correct/basic_lock_unlock/gcc_O2/basic_lock_unlock.relf +++ /dev/null @@ -1,122 +0,0 @@ - -Relocation section '.rela.dyn' at offset 0x460 contains 8 entries: - Offset Info Type Symbol's Value Symbol's Name + Addend -0000000000010d98 0000000000000403 R_AARCH64_RELATIVE 750 -0000000000010da0 0000000000000403 R_AARCH64_RELATIVE 700 -0000000000010ff0 0000000000000403 R_AARCH64_RELATIVE 600 -0000000000011008 0000000000000403 R_AARCH64_RELATIVE 11008 -0000000000010fd8 0000000400000401 R_AARCH64_GLOB_DAT 0000000000000000 _ITM_deregisterTMCloneTable + 0 -0000000000010fe0 0000000500000401 R_AARCH64_GLOB_DAT 0000000000000000 __cxa_finalize@GLIBC_2.17 + 0 -0000000000010fe8 0000000600000401 R_AARCH64_GLOB_DAT 0000000000000000 __gmon_start__ + 0 -0000000000010ff8 0000000800000401 R_AARCH64_GLOB_DAT 0000000000000000 _ITM_registerTMCloneTable + 0 - -Relocation section '.rela.plt' at offset 0x520 contains 4 entries: - Offset Info Type Symbol's Value Symbol's Name + Addend -0000000000010fb0 0000000300000402 R_AARCH64_JUMP_SLOT 0000000000000000 __libc_start_main@GLIBC_2.34 + 0 -0000000000010fb8 0000000500000402 R_AARCH64_JUMP_SLOT 0000000000000000 __cxa_finalize@GLIBC_2.17 + 0 -0000000000010fc0 0000000600000402 R_AARCH64_JUMP_SLOT 0000000000000000 __gmon_start__ + 0 -0000000000010fc8 0000000700000402 R_AARCH64_JUMP_SLOT 0000000000000000 abort@GLIBC_2.17 + 0 - -Symbol table '.dynsym' contains 9 entries: - Num: Value Size Type Bind Vis Ndx Name - 0: 0000000000000000 0 NOTYPE LOCAL DEFAULT UND - 1: 0000000000000580 0 SECTION LOCAL DEFAULT 11 .init - 2: 0000000000011000 0 SECTION LOCAL DEFAULT 22 .data - 3: 0000000000000000 0 FUNC GLOBAL DEFAULT UND __libc_start_main@GLIBC_2.34 (2) - 4: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_deregisterTMCloneTable - 5: 0000000000000000 0 FUNC WEAK DEFAULT UND __cxa_finalize@GLIBC_2.17 (3) - 6: 0000000000000000 0 NOTYPE WEAK DEFAULT UND __gmon_start__ - 7: 0000000000000000 0 FUNC GLOBAL DEFAULT UND abort@GLIBC_2.17 (3) - 8: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_registerTMCloneTable - -Symbol table '.symtab' contains 89 entries: - Num: Value Size Type Bind Vis Ndx Name - 0: 0000000000000000 0 NOTYPE LOCAL DEFAULT UND - 1: 0000000000000238 0 SECTION LOCAL DEFAULT 1 .interp - 2: 0000000000000254 0 SECTION LOCAL DEFAULT 2 .note.gnu.build-id - 3: 0000000000000278 0 SECTION LOCAL DEFAULT 3 .note.ABI-tag - 4: 0000000000000298 0 SECTION LOCAL DEFAULT 4 .gnu.hash - 5: 00000000000002b8 0 SECTION LOCAL DEFAULT 5 .dynsym - 6: 0000000000000390 0 SECTION LOCAL DEFAULT 6 .dynstr - 7: 000000000000041e 0 SECTION LOCAL DEFAULT 7 .gnu.version - 8: 0000000000000430 0 SECTION LOCAL DEFAULT 8 .gnu.version_r - 9: 0000000000000460 0 SECTION LOCAL DEFAULT 9 .rela.dyn - 10: 0000000000000520 0 SECTION LOCAL DEFAULT 10 .rela.plt - 11: 0000000000000580 0 SECTION LOCAL DEFAULT 11 .init - 12: 00000000000005a0 0 SECTION LOCAL DEFAULT 12 .plt - 13: 0000000000000600 0 SECTION LOCAL DEFAULT 13 .text - 14: 0000000000000754 0 SECTION LOCAL DEFAULT 14 .fini - 15: 0000000000000768 0 SECTION LOCAL DEFAULT 15 .rodata - 16: 000000000000076c 0 SECTION LOCAL DEFAULT 16 .eh_frame_hdr - 17: 00000000000007a8 0 SECTION LOCAL DEFAULT 17 .eh_frame - 18: 0000000000010d98 0 SECTION LOCAL DEFAULT 18 .init_array - 19: 0000000000010da0 0 SECTION LOCAL DEFAULT 19 .fini_array - 20: 0000000000010da8 0 SECTION LOCAL DEFAULT 20 .dynamic - 21: 0000000000010f98 0 SECTION LOCAL DEFAULT 21 .got - 22: 0000000000011000 0 SECTION LOCAL DEFAULT 22 .data - 23: 0000000000011010 0 SECTION LOCAL DEFAULT 23 .bss - 24: 0000000000000000 0 SECTION LOCAL DEFAULT 24 .comment - 25: 0000000000000000 0 FILE LOCAL DEFAULT ABS Scrt1.o - 26: 0000000000000278 0 NOTYPE LOCAL DEFAULT 3 $d - 27: 0000000000000278 32 OBJECT LOCAL DEFAULT 3 __abi_tag - 28: 0000000000000640 0 NOTYPE LOCAL DEFAULT 13 $x - 29: 00000000000007bc 0 NOTYPE LOCAL DEFAULT 17 $d - 30: 0000000000000768 0 NOTYPE LOCAL DEFAULT 15 $d - 31: 0000000000000000 0 FILE LOCAL DEFAULT ABS crti.o - 32: 0000000000000674 0 NOTYPE LOCAL DEFAULT 13 $x - 33: 0000000000000674 20 FUNC LOCAL DEFAULT 13 call_weak_fn - 34: 0000000000000580 0 NOTYPE LOCAL DEFAULT 11 $x - 35: 0000000000000754 0 NOTYPE LOCAL DEFAULT 14 $x - 36: 0000000000000000 0 FILE LOCAL DEFAULT ABS crtn.o - 37: 0000000000000590 0 NOTYPE LOCAL DEFAULT 11 $x - 38: 0000000000000760 0 NOTYPE LOCAL DEFAULT 14 $x - 39: 0000000000000000 0 FILE LOCAL DEFAULT ABS basic_lock_unlock.c - 40: 0000000000000600 0 NOTYPE LOCAL DEFAULT 13 $x - 41: 0000000000011014 0 NOTYPE LOCAL DEFAULT 23 $d - 42: 0000000000000830 0 NOTYPE LOCAL DEFAULT 17 $d - 43: 0000000000000000 0 FILE LOCAL DEFAULT ABS crtstuff.c - 44: 0000000000000690 0 NOTYPE LOCAL DEFAULT 13 $x - 45: 0000000000000690 0 FUNC LOCAL DEFAULT 13 deregister_tm_clones - 46: 00000000000006c0 0 FUNC LOCAL DEFAULT 13 register_tm_clones - 47: 0000000000011008 0 NOTYPE LOCAL DEFAULT 22 $d - 48: 0000000000000700 0 FUNC LOCAL DEFAULT 13 __do_global_dtors_aux - 49: 0000000000011010 1 OBJECT LOCAL DEFAULT 23 completed.0 - 50: 0000000000010da0 0 NOTYPE LOCAL DEFAULT 19 $d - 51: 0000000000010da0 0 OBJECT LOCAL DEFAULT 19 __do_global_dtors_aux_fini_array_entry - 52: 0000000000000750 0 FUNC LOCAL DEFAULT 13 frame_dummy - 53: 0000000000010d98 0 NOTYPE LOCAL DEFAULT 18 $d - 54: 0000000000010d98 0 OBJECT LOCAL DEFAULT 18 __frame_dummy_init_array_entry - 55: 00000000000007d0 0 NOTYPE LOCAL DEFAULT 17 $d - 56: 0000000000011010 0 NOTYPE LOCAL DEFAULT 23 $d - 57: 0000000000000000 0 FILE LOCAL DEFAULT ABS crtstuff.c - 58: 0000000000000844 0 NOTYPE LOCAL DEFAULT 17 $d - 59: 0000000000000844 0 OBJECT LOCAL DEFAULT 17 __FRAME_END__ - 60: 0000000000000000 0 FILE LOCAL DEFAULT ABS - 61: 0000000000010da8 0 OBJECT LOCAL DEFAULT ABS _DYNAMIC - 62: 000000000000076c 0 NOTYPE LOCAL DEFAULT 16 __GNU_EH_FRAME_HDR - 63: 0000000000010fd0 0 OBJECT LOCAL DEFAULT ABS _GLOBAL_OFFSET_TABLE_ - 64: 00000000000005a0 0 NOTYPE LOCAL DEFAULT 12 $x - 65: 0000000000000000 0 FUNC GLOBAL DEFAULT UND __libc_start_main@GLIBC_2.34 - 66: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_deregisterTMCloneTable - 67: 0000000000011000 0 NOTYPE WEAK DEFAULT 22 data_start - 68: 0000000000011010 0 NOTYPE GLOBAL DEFAULT 23 __bss_start__ - 69: 0000000000000000 0 FUNC WEAK DEFAULT UND __cxa_finalize@GLIBC_2.17 - 70: 0000000000011020 0 NOTYPE GLOBAL DEFAULT 23 _bss_end__ - 71: 0000000000011010 0 NOTYPE GLOBAL DEFAULT 22 _edata - 72: 0000000000011018 4 OBJECT GLOBAL DEFAULT 23 z - 73: 0000000000011014 4 OBJECT GLOBAL DEFAULT 23 x - 74: 0000000000000754 0 FUNC GLOBAL HIDDEN 14 _fini - 75: 0000000000011020 0 NOTYPE GLOBAL DEFAULT 23 __bss_end__ - 76: 0000000000011000 0 NOTYPE GLOBAL DEFAULT 22 __data_start - 77: 0000000000000000 0 NOTYPE WEAK DEFAULT UND __gmon_start__ - 78: 0000000000011008 0 OBJECT GLOBAL HIDDEN 22 __dso_handle - 79: 0000000000000000 0 FUNC GLOBAL DEFAULT UND abort@GLIBC_2.17 - 80: 0000000000000768 4 OBJECT GLOBAL DEFAULT 15 _IO_stdin_used - 81: 0000000000011020 0 NOTYPE GLOBAL DEFAULT 23 _end - 82: 0000000000000640 52 FUNC GLOBAL DEFAULT 13 _start - 83: 0000000000011020 0 NOTYPE GLOBAL DEFAULT 23 __end__ - 84: 0000000000011010 0 NOTYPE GLOBAL DEFAULT 23 __bss_start - 85: 0000000000000600 28 FUNC GLOBAL DEFAULT 13 main - 86: 0000000000011010 0 OBJECT GLOBAL HIDDEN 22 __TMC_END__ - 87: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_registerTMCloneTable - 88: 0000000000000580 0 FUNC GLOBAL HIDDEN 11 _init diff --git a/src/test/correct/basic_lock_unlock/gcc_O2/basic_lock_unlock_gtirb.expected b/src/test/correct/basic_lock_unlock/gcc_O2/basic_lock_unlock_gtirb.expected index 6f8844905..00dbd52b5 100644 --- a/src/test/correct/basic_lock_unlock/gcc_O2/basic_lock_unlock_gtirb.expected +++ b/src/test/correct/basic_lock_unlock/gcc_O2/basic_lock_unlock_gtirb.expected @@ -68,7 +68,7 @@ implementation {:extern} guarantee_reflexive() assert ((memory_load32_le(mem, $z_addr) == 0bv32) ==> ((memory_load32_le(mem, $x_addr) == memory_load32_le(mem, $x_addr)) && (memory_load32_le(mem, $z_addr) == memory_load32_le(mem, $z_addr)))); } -procedure main_1536(); +procedure main(); modifies Gamma_R0, Gamma_R1, Gamma_R2, Gamma_R3, Gamma_mem, R0, R1, R2, R3, mem; requires (memory_load32_le(mem, $z_addr) == 1bv32); free requires (memory_load64_le(mem, 69632bv64) == 0bv64); @@ -84,33 +84,33 @@ procedure main_1536(); free ensures (memory_load64_le(mem, 69616bv64) == 1536bv64); free ensures (memory_load64_le(mem, 69640bv64) == 69640bv64); -implementation main_1536() +implementation main() { var x_old: bv32; var z_old: bv32; - main_1536__0__THM0T_BARlWyFvHws4y5Sw: - assume {:captureState "main_1536__0__THM0T_BARlWyFvHws4y5Sw"} true; + $main$__0__$THM0T_BARlWyFvHws4y5Sw: + assume {:captureState "$main$__0__$THM0T_BARlWyFvHws4y5Sw"} true; R1, Gamma_R1 := 69632bv64, true; R2, Gamma_R2 := bvadd64(R1, 20bv64), Gamma_R1; R3, Gamma_R3 := 1bv64, true; R0, Gamma_R0 := 0bv64, true; call rely(); + assert (L(mem, bvadd64(R1, 20bv64)) ==> Gamma_R3); x_old := memory_load32_le(mem, $x_addr); z_old := memory_load32_le(mem, $z_addr); - assert (L(mem, bvadd64(R1, 20bv64)) ==> Gamma_R3); mem, Gamma_mem := memory_store32_le(mem, bvadd64(R1, 20bv64), R3[32:0]), gamma_store32(Gamma_mem, bvadd64(R1, 20bv64), Gamma_R3); assert ((z_old == 0bv32) ==> ((memory_load32_le(mem, $x_addr) == x_old) && (memory_load32_le(mem, $z_addr) == z_old))); - assume {:captureState "1552_0"} true; + assume {:captureState "1552$0"} true; call rely(); + assert (L(mem, bvadd64(R2, 4bv64)) ==> true); x_old := memory_load32_le(mem, $x_addr); z_old := memory_load32_le(mem, $z_addr); - assert (L(mem, bvadd64(R2, 4bv64)) ==> true); mem, Gamma_mem := memory_store32_le(mem, bvadd64(R2, 4bv64), 0bv32), gamma_store32(Gamma_mem, bvadd64(R2, 4bv64), true); assert ((z_old == 0bv32) ==> ((memory_load32_le(mem, $x_addr) == x_old) && (memory_load32_le(mem, $z_addr) == z_old))); - assume {:captureState "1556_0"} true; - goto main_1536_basil_return; - main_1536_basil_return: - assume {:captureState "main_1536_basil_return"} true; + assume {:captureState "1556$0"} true; + goto main_basil_return; + main_basil_return: + assume {:captureState "main_basil_return"} true; return; } diff --git a/src/test/correct/basic_lock_unlock/gcc_pic/basic_lock_unlock.adt b/src/test/correct/basic_lock_unlock/gcc_pic/basic_lock_unlock.adt deleted file mode 100644 index 51216930b..000000000 --- a/src/test/correct/basic_lock_unlock/gcc_pic/basic_lock_unlock.adt +++ /dev/null @@ -1,503 +0,0 @@ -Project(Attrs([Attr("filename","\"gcc_pic/basic_lock_unlock.out\""), -Attr("image-specification","(declare abi (name str))\n(declare arch (name str))\n(declare base-address (addr int))\n(declare bias (off int))\n(declare bits (size int))\n(declare code-region (addr int) (size int) (off int))\n(declare code-start (addr int))\n(declare entry-point (addr int))\n(declare external-reference (addr int) (name str))\n(declare format (name str))\n(declare is-executable (flag bool))\n(declare is-little-endian (flag bool))\n(declare llvm:base-address (addr int))\n(declare llvm:code-entry (name str) (off int) (size int))\n(declare llvm:coff-import-library (name str))\n(declare llvm:coff-virtual-section-header (name str) (addr int) (size int))\n(declare llvm:elf-program-header (name str) (off int) (size int))\n(declare llvm:elf-program-header-flags (name str) (ld bool) (r bool) \n (w bool) (x bool))\n(declare llvm:elf-virtual-program-header (name str) (addr int) (size int))\n(declare llvm:entry-point (addr int))\n(declare llvm:macho-symbol (name str) (value int))\n(declare llvm:name-reference (at int) (name str))\n(declare llvm:relocation (at int) (addr int))\n(declare llvm:section-entry (name str) (addr int) (size int) (off int))\n(declare llvm:section-flags (name str) (r bool) (w bool) (x bool))\n(declare llvm:segment-command (name str) (off int) (size int))\n(declare llvm:segment-command-flags (name str) (r bool) (w bool) (x bool))\n(declare llvm:symbol-entry (name str) (addr int) (size int) (off int)\n (value int))\n(declare llvm:virtual-segment-command (name str) (addr int) (size int))\n(declare mapped (addr int) (size int) (off int))\n(declare named-region (addr int) (size int) (name str))\n(declare named-symbol (addr int) (name str))\n(declare require (name str))\n(declare section (addr int) (size int))\n(declare segment (addr int) (size int) (r bool) (w bool) (x bool))\n(declare subarch (name str))\n(declare symbol-chunk (addr int) (size int) (root int))\n(declare symbol-value (addr int) (value int))\n(declare system (name str))\n(declare vendor (name str))\n\n(abi unknown)\n(arch aarch64)\n(base-address 0)\n(bias 0)\n(bits 64)\n(code-region 1912 20 1912)\n(code-region 1600 312 1600)\n(code-region 1488 96 1488)\n(code-region 1456 24 1456)\n(code-start 1652)\n(code-start 1600)\n(code-start 1876)\n(entry-point 1600)\n(external-reference 69576 _ITM_deregisterTMCloneTable)\n(external-reference 69584 __cxa_finalize)\n(external-reference 69608 __gmon_start__)\n(external-reference 69624 _ITM_registerTMCloneTable)\n(external-reference 69536 __libc_start_main)\n(external-reference 69544 __cxa_finalize)\n(external-reference 69552 __gmon_start__)\n(external-reference 69560 abort)\n(format elf)\n(is-executable true)\n(is-little-endian true)\n(llvm:base-address 0)\n(llvm:code-entry abort 0 0)\n(llvm:code-entry __cxa_finalize 0 0)\n(llvm:code-entry __libc_start_main 0 0)\n(llvm:code-entry _init 1456 0)\n(llvm:code-entry main 1876 36)\n(llvm:code-entry _start 1600 52)\n(llvm:code-entry abort@GLIBC_2.17 0 0)\n(llvm:code-entry _fini 1912 0)\n(llvm:code-entry __cxa_finalize@GLIBC_2.17 0 0)\n(llvm:code-entry __libc_start_main@GLIBC_2.34 0 0)\n(llvm:code-entry frame_dummy 1872 0)\n(llvm:code-entry __do_global_dtors_aux 1792 0)\n(llvm:code-entry register_tm_clones 1728 0)\n(llvm:code-entry deregister_tm_clones 1680 0)\n(llvm:code-entry call_weak_fn 1652 20)\n(llvm:code-entry .fini 1912 20)\n(llvm:code-entry .text 1600 312)\n(llvm:code-entry .plt 1488 96)\n(llvm:code-entry .init 1456 24)\n(llvm:elf-program-header 08 3464 632)\n(llvm:elf-program-header 07 0 0)\n(llvm:elf-program-header 06 1936 60)\n(llvm:elf-program-header 05 596 68)\n(llvm:elf-program-header 04 3480 496)\n(llvm:elf-program-header 03 3464 648)\n(llvm:elf-program-header 02 0 2160)\n(llvm:elf-program-header 01 568 27)\n(llvm:elf-program-header 00 64 504)\n(llvm:elf-program-header-flags 08 false true false false)\n(llvm:elf-program-header-flags 07 false true true false)\n(llvm:elf-program-header-flags 06 false true false false)\n(llvm:elf-program-header-flags 05 false true false false)\n(llvm:elf-program-header-flags 04 false true true false)\n(llvm:elf-program-header-flags 03 true true true false)\n(llvm:elf-program-header-flags 02 true true false true)\n(llvm:elf-program-header-flags 01 false true false false)\n(llvm:elf-program-header-flags 00 false true false false)\n(llvm:elf-virtual-program-header 08 69000 632)\n(llvm:elf-virtual-program-header 07 0 0)\n(llvm:elf-virtual-program-header 06 1936 60)\n(llvm:elf-virtual-program-header 05 596 68)\n(llvm:elf-virtual-program-header 04 69016 496)\n(llvm:elf-virtual-program-header 03 69000 664)\n(llvm:elf-virtual-program-header 02 0 2160)\n(llvm:elf-virtual-program-header 01 568 27)\n(llvm:elf-virtual-program-header 00 64 504)\n(llvm:entry-point 1600)\n(llvm:name-reference 69560 abort)\n(llvm:name-reference 69552 __gmon_start__)\n(llvm:name-reference 69544 __cxa_finalize)\n(llvm:name-reference 69536 __libc_start_main)\n(llvm:name-reference 69624 _ITM_registerTMCloneTable)\n(llvm:name-reference 69608 __gmon_start__)\n(llvm:name-reference 69584 __cxa_finalize)\n(llvm:name-reference 69576 _ITM_deregisterTMCloneTable)\n(llvm:section-entry .shstrtab 0 250 6851)\n(llvm:section-entry .strtab 0 555 6296)\n(llvm:section-entry .symtab 0 2136 4160)\n(llvm:section-entry .comment 0 43 4112)\n(llvm:section-entry .bss 69648 16 4112)\n(llvm:section-entry .data 69632 16 4096)\n(llvm:section-entry .got 69512 120 3976)\n(llvm:section-entry .dynamic 69016 496 3480)\n(llvm:section-entry .fini_array 69008 8 3472)\n(llvm:section-entry .init_array 69000 8 3464)\n(llvm:section-entry .eh_frame 2000 160 2000)\n(llvm:section-entry .eh_frame_hdr 1936 60 1936)\n(llvm:section-entry .rodata 1932 4 1932)\n(llvm:section-entry .fini 1912 20 1912)\n(llvm:section-entry .text 1600 312 1600)\n(llvm:section-entry .plt 1488 96 1488)\n(llvm:section-entry .init 1456 24 1456)\n(llvm:section-entry .rela.plt 1360 96 1360)\n(llvm:section-entry .rela.dyn 1120 240 1120)\n(llvm:section-entry .gnu.version_r 1072 48 1072)\n(llvm:section-entry .gnu.version 1054 18 1054)\n(llvm:section-entry .dynstr 912 141 912)\n(llvm:section-entry .dynsym 696 216 696)\n(llvm:section-entry .gnu.hash 664 28 664)\n(llvm:section-entry .note.ABI-tag 632 32 632)\n(llvm:section-entry .note.gnu.build-id 596 36 596)\n(llvm:section-entry .interp 568 27 568)\n(llvm:section-flags .shstrtab true false false)\n(llvm:section-flags .strtab true false false)\n(llvm:section-flags .symtab true false false)\n(llvm:section-flags .comment true false false)\n(llvm:section-flags .bss true true false)\n(llvm:section-flags .data true true false)\n(llvm:section-flags .got true true false)\n(llvm:section-flags .dynamic true true false)\n(llvm:section-flags .fini_array true true false)\n(llvm:section-flags .init_array true true false)\n(llvm:section-flags .eh_frame true false false)\n(llvm:section-flags .eh_frame_hdr true false false)\n(llvm:section-flags .rodata true false false)\n(llvm:section-flags .fini true false true)\n(llvm:section-flags .text true false true)\n(llvm:section-flags .plt true false true)\n(llvm:section-flags .init true false true)\n(llvm:section-flags .rela.plt true false false)\n(llvm:section-flags .rela.dyn true false false)\n(llvm:section-flags .gnu.version_r true false false)\n(llvm:section-flags .gnu.version true false false)\n(llvm:section-flags .dynstr true false false)\n(llvm:section-flags .dynsym true false false)\n(llvm:section-flags .gnu.hash true false false)\n(llvm:section-flags .note.ABI-tag true false false)\n(llvm:section-flags .note.gnu.build-id true false false)\n(llvm:section-flags .interp true false false)\n(llvm:symbol-entry abort 0 0 0 0)\n(llvm:symbol-entry __cxa_finalize 0 0 0 0)\n(llvm:symbol-entry __libc_start_main 0 0 0 0)\n(llvm:symbol-entry _init 1456 0 1456 1456)\n(llvm:symbol-entry main 1876 36 1876 1876)\n(llvm:symbol-entry _start 1600 52 1600 1600)\n(llvm:symbol-entry abort@GLIBC_2.17 0 0 0 0)\n(llvm:symbol-entry _fini 1912 0 1912 1912)\n(llvm:symbol-entry __cxa_finalize@GLIBC_2.17 0 0 0 0)\n(llvm:symbol-entry __libc_start_main@GLIBC_2.34 0 0 0 0)\n(llvm:symbol-entry frame_dummy 1872 0 1872 1872)\n(llvm:symbol-entry __do_global_dtors_aux 1792 0 1792 1792)\n(llvm:symbol-entry register_tm_clones 1728 0 1728 1728)\n(llvm:symbol-entry deregister_tm_clones 1680 0 1680 1680)\n(llvm:symbol-entry call_weak_fn 1652 20 1652 1652)\n(mapped 0 2160 0)\n(mapped 69000 648 3464)\n(named-region 0 2160 02)\n(named-region 69000 664 03)\n(named-region 568 27 .interp)\n(named-region 596 36 .note.gnu.build-id)\n(named-region 632 32 .note.ABI-tag)\n(named-region 664 28 .gnu.hash)\n(named-region 696 216 .dynsym)\n(named-region 912 141 .dynstr)\n(named-region 1054 18 .gnu.version)\n(named-region 1072 48 .gnu.version_r)\n(named-region 1120 240 .rela.dyn)\n(named-region 1360 96 .rela.plt)\n(named-region 1456 24 .init)\n(named-region 1488 96 .plt)\n(named-region 1600 312 .text)\n(named-region 1912 20 .fini)\n(named-region 1932 4 .rodata)\n(named-region 1936 60 .eh_frame_hdr)\n(named-region 2000 160 .eh_frame)\n(named-region 69000 8 .init_array)\n(named-region 69008 8 .fini_array)\n(named-region 69016 496 .dynamic)\n(named-region 69512 120 .got)\n(named-region 69632 16 .data)\n(named-region 69648 16 .bss)\n(named-region 0 43 .comment)\n(named-region 0 2136 .symtab)\n(named-region 0 555 .strtab)\n(named-region 0 250 .shstrtab)\n(named-symbol 1652 call_weak_fn)\n(named-symbol 1680 deregister_tm_clones)\n(named-symbol 1728 register_tm_clones)\n(named-symbol 1792 __do_global_dtors_aux)\n(named-symbol 1872 frame_dummy)\n(named-symbol 0 __libc_start_main@GLIBC_2.34)\n(named-symbol 0 __cxa_finalize@GLIBC_2.17)\n(named-symbol 1912 _fini)\n(named-symbol 0 abort@GLIBC_2.17)\n(named-symbol 1600 _start)\n(named-symbol 1876 main)\n(named-symbol 1456 _init)\n(named-symbol 0 __libc_start_main)\n(named-symbol 0 __cxa_finalize)\n(named-symbol 0 abort)\n(require libc.so.6)\n(section 568 27)\n(section 596 36)\n(section 632 32)\n(section 664 28)\n(section 696 216)\n(section 912 141)\n(section 1054 18)\n(section 1072 48)\n(section 1120 240)\n(section 1360 96)\n(section 1456 24)\n(section 1488 96)\n(section 1600 312)\n(section 1912 20)\n(section 1932 4)\n(section 1936 60)\n(section 2000 160)\n(section 69000 8)\n(section 69008 8)\n(section 69016 496)\n(section 69512 120)\n(section 69632 16)\n(section 69648 16)\n(section 0 43)\n(section 0 2136)\n(section 0 555)\n(section 0 250)\n(segment 0 2160 true false true)\n(segment 69000 664 true true false)\n(subarch v8)\n(symbol-chunk 1652 20 1652)\n(symbol-chunk 1600 52 1600)\n(symbol-chunk 1876 36 1876)\n(symbol-value 1652 1652)\n(symbol-value 1680 1680)\n(symbol-value 1728 1728)\n(symbol-value 1792 1792)\n(symbol-value 1872 1872)\n(symbol-value 1912 1912)\n(symbol-value 1600 1600)\n(symbol-value 1876 1876)\n(symbol-value 1456 1456)\n(symbol-value 0 0)\n(system \"\")\n(vendor \"\")\n"), -Attr("abi-name","\"aarch64-linux-gnu-elf\"")]), -Sections([Section(".shstrtab", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x40\x06\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xc0\x1b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x38\x00\x09\x00\x40\x00\x1c\x00\x1b\x00\x06\x00\x00\x00\x04\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x04\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x70\x08\x00\x00\x00\x00\x00\x00\x70\x08\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x01\x00\x00\x00\x06\x00\x00\x00\x88\x0d\x00\x00\x00\x00\x00\x00\x88\x0d"), -Section(".strtab", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x40\x06\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xc0\x1b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x38\x00\x09\x00\x40\x00\x1c\x00\x1b\x00\x06\x00\x00\x00\x04\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x04\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x70\x08\x00\x00\x00\x00\x00\x00\x70\x08\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x01\x00\x00\x00\x06\x00\x00\x00\x88\x0d\x00\x00\x00\x00\x00\x00\x88\x0d\x01\x00\x00\x00\x00\x00\x88\x0d\x01\x00\x00\x00\x00\x00\x88\x02\x00\x00\x00\x00\x00\x00\x98\x02\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x02\x00\x00\x00\x06\x00\x00\x00\x98\x0d\x00\x00\x00\x00\x00\x00\x98\x0d\x01\x00\x00\x00\x00\x00\x98\x0d\x01\x00\x00\x00\x00\x00\xf0\x01\x00\x00\x00\x00\x00\x00\xf0\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x04\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x50\xe5\x74\x64\x04\x00\x00\x00\x90\x07\x00\x00\x00\x00\x00\x00\x90\x07\x00\x00\x00\x00\x00\x00\x90\x07\x00\x00\x00\x00\x00\x00\x3c\x00\x00\x00\x00\x00\x00\x00\x3c\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x51\xe5\x74\x64\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x52\xe5\x74\x64\x04\x00\x00\x00\x88\x0d\x00\x00\x00\x00\x00\x00\x88\x0d\x01\x00\x00\x00\x00\x00\x88\x0d\x01\x00\x00\x00\x00\x00\x78\x02\x00\x00\x00\x00\x00\x00\x78\x02\x00"), -Section(".symtab", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x40\x06\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xc0\x1b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x38\x00\x09\x00\x40\x00\x1c\x00\x1b\x00\x06\x00\x00\x00\x04\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x04\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x70\x08\x00\x00\x00\x00\x00\x00\x70\x08\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x01\x00\x00\x00\x06\x00\x00\x00\x88\x0d\x00\x00\x00\x00\x00\x00\x88\x0d\x01\x00\x00\x00\x00\x00\x88\x0d\x01\x00\x00\x00\x00\x00\x88\x02\x00\x00\x00\x00\x00\x00\x98\x02\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x02\x00\x00\x00\x06\x00\x00\x00\x98\x0d\x00\x00\x00\x00\x00\x00\x98\x0d\x01\x00\x00\x00\x00\x00\x98\x0d\x01\x00\x00\x00\x00\x00\xf0\x01\x00\x00\x00\x00\x00\x00\xf0\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x04\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x50\xe5\x74\x64\x04\x00\x00\x00\x90\x07\x00\x00\x00\x00\x00\x00\x90\x07\x00\x00\x00\x00\x00\x00\x90\x07\x00\x00\x00\x00\x00\x00\x3c\x00\x00\x00\x00\x00\x00\x00\x3c\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x51\xe5\x74\x64\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x52\xe5\x74\x64\x04\x00\x00\x00\x88\x0d\x00\x00\x00\x00\x00\x00\x88\x0d\x01\x00\x00\x00\x00\x00\x88\x0d\x01\x00\x00\x00\x00\x00\x78\x02\x00\x00\x00\x00\x00\x00\x78\x02\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x2f\x6c\x69\x62\x2f\x6c\x64\x2d\x6c\x69\x6e\x75\x78\x2d\x61\x61\x72\x63\x68\x36\x34\x2e\x73\x6f\x2e\x31\x00\x00\x04\x00\x00\x00\x14\x00\x00\x00\x03\x00\x00\x00\x47\x4e\x55\x00\x3a\xb7\x09\xf4\xda\x97\xa5\x17\x54\x43\x30\x40\x18\xb0\xba\x4a\xdc\x1c\x8e\xa4\x04\x00\x00\x00\x10\x00\x00\x00\x01\x00\x00\x00\x47\x4e\x55\x00\x00\x00\x00\x00\x03\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x01\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x0b\x00\xb0\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x16\x00\x00\x10\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x48\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x22\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x22\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x73\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5f\x5f\x63\x78\x61\x5f\x66\x69\x6e\x61\x6c\x69\x7a\x65\x00\x5f\x5f\x6c\x69\x62\x63\x5f\x73\x74\x61\x72\x74\x5f\x6d\x61\x69\x6e\x00\x61\x62\x6f\x72\x74\x00\x6c\x69\x62\x63\x2e\x73\x6f\x2e\x36\x00\x47\x4c\x49\x42\x43\x5f\x32\x2e\x31\x37\x00\x47\x4c\x49\x42\x43\x5f\x32\x2e\x33\x34\x00\x5f\x49\x54\x4d\x5f\x64\x65\x72\x65\x67\x69\x73\x74\x65\x72\x54\x4d\x43\x6c\x6f\x6e\x65\x54\x61\x62\x6c\x65\x00\x5f\x5f\x67\x6d\x6f\x6e\x5f\x73\x74\x61\x72\x74\x5f\x5f\x00\x5f\x49\x54\x4d\x5f\x72\x65\x67\x69\x73\x74\x65\x72\x54\x4d\x43\x6c\x6f\x6e\x65\x54\x61\x62\x6c\x65\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x01\x00\x03\x00\x01\x00\x03\x00\x01\x00\x01\x00\x02\x00\x28\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x97\x91\x96\x06\x00\x00\x03\x00\x32\x00\x00\x00\x10\x00\x00\x00\xb4\x91\x96\x06\x00\x00\x02\x00\x3d\x00\x00\x00\x00\x00\x00\x00\x88\x0d\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x50\x07\x00\x00\x00\x00\x00\x00\x90\x0d\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\xd8\x0f\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x18\x10\x01\x00\x00\x00\x00\x00\xe0\x0f\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x14\x10\x01\x00\x00\x00\x00\x00\xf0\x0f\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x54\x07\x00\x00\x00\x00\x00\x00\x08\x10\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x08\x10\x01\x00\x00\x00\x00\x00\xc8\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xd0\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe8\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xf8\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xa0\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xa8\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xb0\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xb8\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1f\x20\x03\xd5\xfd\x7b\xbf\xa9\xfd\x03\x00\x91\x2e\x00\x00\x94\xfd\x7b\xc1\xa8\xc0\x03\x5f\xd6\x00\x00\x00\x00\x00\x00\x00\x00\xf0\x7b\xbf\xa9\x90\x00\x00\x90\x11\xce\x47\xf9\x10\x62\x3e\x91\x20\x02\x1f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x90\x00\x00\x90\x11\xd2\x47\xf9\x10\x82\x3e\x91\x20\x02\x1f\xd6\x90\x00\x00\x90\x11\xd6\x47\xf9\x10\xa2\x3e\x91\x20\x02\x1f\xd6\x90\x00\x00\x90\x11\xda\x47\xf9\x10\xc2\x3e\x91\x20\x02\x1f\xd6\x90\x00\x00\x90\x11\xde\x47\xf9\x10\xe2\x3e\x91\x20\x02\x1f\xd6\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1f\x20\x03\xd5\x1d\x00\x80\xd2\x1e\x00\x80\xd2\xe5\x03\x00\xaa\xe1\x03\x40\xf9\xe2\x23\x00\x91\xe6\x03\x00\x91\x80\x00\x00\x90\x00\xf8\x47\xf9\x03\x00\x80\xd2\x04\x00\x80\xd2\xe1\xff\xff\x97\xec\xff\xff\x97\x80\x00\x00\x90\x00\xf4\x47\xf9\x40\x00\x00\xb4\xe4\xff\xff\x17\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x80\x00\x00\xb0\x00\x40\x00\x91\x81\x00\x00\xb0\x21\x40\x00\x91\x3f\x00\x00\xeb\xc0\x00\x00\x54\x81\x00\x00\x90\x21\xe4\x47\xf9\x61\x00\x00\xb4\xf0\x03\x01\xaa\x00\x02\x1f\xd6\xc0\x03\x5f\xd6\x80\x00\x00\xb0\x00\x40\x00\x91\x81\x00\x00\xb0\x21\x40\x00\x91\x21\x00\x00\xcb\x22\xfc\x7f\xd3\x41\x0c\x81\x8b\x21\xfc\x41\x93\xc1\x00\x00\xb4\x82\x00\x00\x90\x42\xfc\x47\xf9\x62\x00\x00\xb4\xf0\x03\x02\xaa\x00\x02\x1f\xd6\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\xfd\x7b\xbe\xa9\xfd\x03\x00\x91\xf3\x0b\x00\xf9\x93\x00\x00\xb0\x60\x42\x40\x39\x40\x01\x00\x35\x80\x00\x00\x90\x00\xe8\x47\xf9\x80\x00\x00\xb4\x80\x00\x00\xb0\x00\x04\x40\xf9\xb5\xff\xff\x97\xd8\xff\xff\x97\x20\x00\x80\x52\x60\x42\x00\x39\xf3\x0b\x40\xf9\xfd\x7b\xc2\xa8\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\xdc\xff\xff\x17\x80\x00\x00\x90\x00\xf0\x47\xf9\x21\x00\x80\x52\x01\x00\x00\xb9\x80\x00\x00\x90\x00\xec\x47\xf9\x1f\x00\x00\xb9\x00\x00\x80\x52\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\xfd\x7b\xbf\xa9\xfd\x03\x00\x91\xfd\x7b\xc1\xa8\xc0\x03\x5f\xd6\x01\x00\x02\x00\x01\x1b\x03\x3b\x3c\x00\x00\x00\x06\x00\x00\x00\xb0\xfe\xff\xff\x54\x00\x00\x00\x00\xff\xff\xff\x68\x00\x00\x00\x30\xff\xff\xff\x7c\x00\x00\x00\x70\xff\xff\xff\x90\x00\x00\x00\xc0\xff\xff\xff\xb4\x00\x00\x00\xc4\xff\xff\xff\xc8\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x01\x7a\x52\x00\x04\x78\x1e\x01\x1b\x0c\x1f\x00\x10\x00\x00\x00\x18\x00\x00\x00\x54\xfe\xff\xff\x34\x00\x00\x00\x00\x41\x07\x1e\x10\x00\x00\x00\x2c\x00\x00\x00\x90\xfe\xff\xff\x30\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x40\x00\x00\x00\xac\xfe\xff\xff\x3c\x00\x00\x00\x00\x00\x00\x00\x20\x00\x00\x00\x54\x00\x00\x00\xd8\xfe\xff\xff\x48\x00\x00\x00\x00\x41\x0e\x20\x9d\x04\x9e\x03\x42\x93\x02\x4e\xde\xdd\xd3\x0e\x00\x00\x00\x00\x10\x00\x00\x00\x78\x00\x00\x00\x04\xff\xff\xff\x04\x00\x00\x00\x00\x00\x00\x00"), -Section(".comment", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x40\x06\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xc0\x1b\x00"), -Section(".interp", 0x238, "\x2f\x6c\x69\x62\x2f\x6c\x64\x2d\x6c\x69\x6e\x75\x78\x2d\x61\x61\x72\x63\x68\x36\x34\x2e\x73\x6f\x2e\x31\x00"), -Section(".note.gnu.build-id", 0x254, "\x04\x00\x00\x00\x14\x00\x00\x00\x03\x00\x00\x00\x47\x4e\x55\x00\x3a\xb7\x09\xf4\xda\x97\xa5\x17\x54\x43\x30\x40\x18\xb0\xba\x4a\xdc\x1c\x8e\xa4"), -Section(".note.ABI-tag", 0x278, "\x04\x00\x00\x00\x10\x00\x00\x00\x01\x00\x00\x00\x47\x4e\x55\x00\x00\x00\x00\x00\x03\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00"), -Section(".gnu.hash", 0x298, "\x01\x00\x00\x00\x01\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".dynsym", 0x2B8, "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x0b\x00\xb0\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x16\x00\x00\x10\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x48\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x22\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x22\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x73\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".dynstr", 0x390, "\x00\x5f\x5f\x63\x78\x61\x5f\x66\x69\x6e\x61\x6c\x69\x7a\x65\x00\x5f\x5f\x6c\x69\x62\x63\x5f\x73\x74\x61\x72\x74\x5f\x6d\x61\x69\x6e\x00\x61\x62\x6f\x72\x74\x00\x6c\x69\x62\x63\x2e\x73\x6f\x2e\x36\x00\x47\x4c\x49\x42\x43\x5f\x32\x2e\x31\x37\x00\x47\x4c\x49\x42\x43\x5f\x32\x2e\x33\x34\x00\x5f\x49\x54\x4d\x5f\x64\x65\x72\x65\x67\x69\x73\x74\x65\x72\x54\x4d\x43\x6c\x6f\x6e\x65\x54\x61\x62\x6c\x65\x00\x5f\x5f\x67\x6d\x6f\x6e\x5f\x73\x74\x61\x72\x74\x5f\x5f\x00\x5f\x49\x54\x4d\x5f\x72\x65\x67\x69\x73\x74\x65\x72\x54\x4d\x43\x6c\x6f\x6e\x65\x54\x61\x62\x6c\x65\x00"), -Section(".gnu.version", 0x41E, "\x00\x00\x00\x00\x00\x00\x02\x00\x01\x00\x03\x00\x01\x00\x03\x00\x01\x00"), -Section(".gnu.version_r", 0x430, "\x01\x00\x02\x00\x28\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x97\x91\x96\x06\x00\x00\x03\x00\x32\x00\x00\x00\x10\x00\x00\x00\xb4\x91\x96\x06\x00\x00\x02\x00\x3d\x00\x00\x00\x00\x00\x00\x00"), -Section(".rela.dyn", 0x460, "\x88\x0d\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x50\x07\x00\x00\x00\x00\x00\x00\x90\x0d\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\xd8\x0f\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x18\x10\x01\x00\x00\x00\x00\x00\xe0\x0f\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x14\x10\x01\x00\x00\x00\x00\x00\xf0\x0f\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x54\x07\x00\x00\x00\x00\x00\x00\x08\x10\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x08\x10\x01\x00\x00\x00\x00\x00\xc8\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xd0\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe8\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xf8\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".rela.plt", 0x550, "\xa0\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xa8\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xb0\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xb8\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".init", 0x5B0, "\x1f\x20\x03\xd5\xfd\x7b\xbf\xa9\xfd\x03\x00\x91\x2e\x00\x00\x94\xfd\x7b\xc1\xa8\xc0\x03\x5f\xd6"), -Section(".plt", 0x5D0, "\xf0\x7b\xbf\xa9\x90\x00\x00\x90\x11\xce\x47\xf9\x10\x62\x3e\x91\x20\x02\x1f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x90\x00\x00\x90\x11\xd2\x47\xf9\x10\x82\x3e\x91\x20\x02\x1f\xd6\x90\x00\x00\x90\x11\xd6\x47\xf9\x10\xa2\x3e\x91\x20\x02\x1f\xd6\x90\x00\x00\x90\x11\xda\x47\xf9\x10\xc2\x3e\x91\x20\x02\x1f\xd6\x90\x00\x00\x90\x11\xde\x47\xf9\x10\xe2\x3e\x91\x20\x02\x1f\xd6"), -Section(".fini", 0x778, "\x1f\x20\x03\xd5\xfd\x7b\xbf\xa9\xfd\x03\x00\x91\xfd\x7b\xc1\xa8\xc0\x03\x5f\xd6"), -Section(".rodata", 0x78C, "\x01\x00\x02\x00"), -Section(".eh_frame_hdr", 0x790, "\x01\x1b\x03\x3b\x3c\x00\x00\x00\x06\x00\x00\x00\xb0\xfe\xff\xff\x54\x00\x00\x00\x00\xff\xff\xff\x68\x00\x00\x00\x30\xff\xff\xff\x7c\x00\x00\x00\x70\xff\xff\xff\x90\x00\x00\x00\xc0\xff\xff\xff\xb4\x00\x00\x00\xc4\xff\xff\xff\xc8\x00\x00\x00"), -Section(".eh_frame", 0x7D0, "\x10\x00\x00\x00\x00\x00\x00\x00\x01\x7a\x52\x00\x04\x78\x1e\x01\x1b\x0c\x1f\x00\x10\x00\x00\x00\x18\x00\x00\x00\x54\xfe\xff\xff\x34\x00\x00\x00\x00\x41\x07\x1e\x10\x00\x00\x00\x2c\x00\x00\x00\x90\xfe\xff\xff\x30\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x40\x00\x00\x00\xac\xfe\xff\xff\x3c\x00\x00\x00\x00\x00\x00\x00\x20\x00\x00\x00\x54\x00\x00\x00\xd8\xfe\xff\xff\x48\x00\x00\x00\x00\x41\x0e\x20\x9d\x04\x9e\x03\x42\x93\x02\x4e\xde\xdd\xd3\x0e\x00\x00\x00\x00\x10\x00\x00\x00\x78\x00\x00\x00\x04\xff\xff\xff\x04\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x8c\x00\x00\x00\xf4\xfe\xff\xff\x24\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".fini_array", 0x10D90, "\x00\x07\x00\x00\x00\x00\x00\x00"), -Section(".dynamic", 0x10D98, "\x01\x00\x00\x00\x00\x00\x00\x00\x28\x00\x00\x00\x00\x00\x00\x00\x0c\x00\x00\x00\x00\x00\x00\x00\xb0\x05\x00\x00\x00\x00\x00\x00\x0d\x00\x00\x00\x00\x00\x00\x00\x78\x07\x00\x00\x00\x00\x00\x00\x19\x00\x00\x00\x00\x00\x00\x00\x88\x0d\x01\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x1a\x00\x00\x00\x00\x00\x00\x00\x90\x0d\x01\x00\x00\x00\x00\x00\x1c\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\xf5\xfe\xff\x6f\x00\x00\x00\x00\x98\x02\x00\x00\x00\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x90\x03\x00\x00\x00\x00\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\xb8\x02\x00\x00\x00\x00\x00\x00\x0a\x00\x00\x00\x00\x00\x00\x00\x8d\x00\x00\x00\x00\x00\x00\x00\x0b\x00\x00\x00\x00\x00\x00\x00\x18\x00\x00\x00\x00\x00\x00\x00\x15\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x88\x0f\x01\x00\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x60\x00\x00\x00\x00\x00\x00\x00\x14\x00\x00\x00\x00\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x17\x00\x00\x00\x00\x00\x00\x00\x50\x05\x00\x00\x00\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x60\x04\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\xf0\x00\x00\x00\x00\x00\x00\x00\x09\x00\x00\x00\x00\x00\x00\x00\x18\x00\x00\x00\x00\x00\x00\x00\x1e\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\xfb\xff\xff\x6f\x00\x00\x00\x00\x01\x00\x00\x08\x00\x00\x00\x00\xfe\xff\xff\x6f\x00\x00\x00\x00\x30\x04\x00\x00\x00\x00\x00\x00\xff\xff\xff\x6f\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\xf0\xff\xff\x6f\x00\x00\x00\x00\x1e\x04\x00\x00\x00\x00\x00\x00\xf9\xff\xff\x6f\x00\x00\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".got", 0x10F88, "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xd0\x05\x00\x00\x00\x00\x00\x00\xd0\x05\x00\x00\x00\x00\x00\x00\xd0\x05\x00\x00\x00\x00\x00\x00\xd0\x05\x00\x00\x00\x00\x00\x00\x98\x0d\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x18\x10\x01\x00\x00\x00\x00\x00\x14\x10\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x54\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".data", 0x11000, "\x00\x00\x00\x00\x00\x00\x00\x00\x08\x10\x01\x00\x00\x00\x00\x00"), -Section(".init_array", 0x10D88, "\x50\x07\x00\x00\x00\x00\x00\x00"), -Section(".text", 0x640, "\x1f\x20\x03\xd5\x1d\x00\x80\xd2\x1e\x00\x80\xd2\xe5\x03\x00\xaa\xe1\x03\x40\xf9\xe2\x23\x00\x91\xe6\x03\x00\x91\x80\x00\x00\x90\x00\xf8\x47\xf9\x03\x00\x80\xd2\x04\x00\x80\xd2\xe1\xff\xff\x97\xec\xff\xff\x97\x80\x00\x00\x90\x00\xf4\x47\xf9\x40\x00\x00\xb4\xe4\xff\xff\x17\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x80\x00\x00\xb0\x00\x40\x00\x91\x81\x00\x00\xb0\x21\x40\x00\x91\x3f\x00\x00\xeb\xc0\x00\x00\x54\x81\x00\x00\x90\x21\xe4\x47\xf9\x61\x00\x00\xb4\xf0\x03\x01\xaa\x00\x02\x1f\xd6\xc0\x03\x5f\xd6\x80\x00\x00\xb0\x00\x40\x00\x91\x81\x00\x00\xb0\x21\x40\x00\x91\x21\x00\x00\xcb\x22\xfc\x7f\xd3\x41\x0c\x81\x8b\x21\xfc\x41\x93\xc1\x00\x00\xb4\x82\x00\x00\x90\x42\xfc\x47\xf9\x62\x00\x00\xb4\xf0\x03\x02\xaa\x00\x02\x1f\xd6\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\xfd\x7b\xbe\xa9\xfd\x03\x00\x91\xf3\x0b\x00\xf9\x93\x00\x00\xb0\x60\x42\x40\x39\x40\x01\x00\x35\x80\x00\x00\x90\x00\xe8\x47\xf9\x80\x00\x00\xb4\x80\x00\x00\xb0\x00\x04\x40\xf9\xb5\xff\xff\x97\xd8\xff\xff\x97\x20\x00\x80\x52\x60\x42\x00\x39\xf3\x0b\x40\xf9\xfd\x7b\xc2\xa8\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\xdc\xff\xff\x17\x80\x00\x00\x90\x00\xf0\x47\xf9\x21\x00\x80\x52\x01\x00\x00\xb9\x80\x00\x00\x90\x00\xec\x47\xf9\x1f\x00\x00\xb9\x00\x00\x80\x52\xc0\x03\x5f\xd6")]), -Memmap([Annotation(Region(0x0,0x86F), Attr("segment","02 0 2160")), -Annotation(Region(0x640,0x673), Attr("symbol","\"_start\"")), -Annotation(Region(0x0,0xF9), Attr("section","\".shstrtab\"")), -Annotation(Region(0x0,0x22A), Attr("section","\".strtab\"")), -Annotation(Region(0x0,0x857), Attr("section","\".symtab\"")), -Annotation(Region(0x0,0x2A), Attr("section","\".comment\"")), -Annotation(Region(0x238,0x252), Attr("section","\".interp\"")), -Annotation(Region(0x254,0x277), Attr("section","\".note.gnu.build-id\"")), -Annotation(Region(0x278,0x297), Attr("section","\".note.ABI-tag\"")), -Annotation(Region(0x298,0x2B3), Attr("section","\".gnu.hash\"")), -Annotation(Region(0x2B8,0x38F), Attr("section","\".dynsym\"")), -Annotation(Region(0x390,0x41C), Attr("section","\".dynstr\"")), -Annotation(Region(0x41E,0x42F), Attr("section","\".gnu.version\"")), -Annotation(Region(0x430,0x45F), Attr("section","\".gnu.version_r\"")), -Annotation(Region(0x460,0x54F), Attr("section","\".rela.dyn\"")), -Annotation(Region(0x550,0x5AF), Attr("section","\".rela.plt\"")), -Annotation(Region(0x5B0,0x5C7), Attr("section","\".init\"")), -Annotation(Region(0x5D0,0x62F), Attr("section","\".plt\"")), -Annotation(Region(0x5B0,0x5C7), Attr("code-region","()")), -Annotation(Region(0x5D0,0x62F), Attr("code-region","()")), -Annotation(Region(0x640,0x673), Attr("symbol-info","_start 0x640 52")), -Annotation(Region(0x674,0x687), Attr("symbol","\"call_weak_fn\"")), -Annotation(Region(0x674,0x687), Attr("symbol-info","call_weak_fn 0x674 20")), -Annotation(Region(0x754,0x777), Attr("symbol","\"main\"")), -Annotation(Region(0x754,0x777), Attr("symbol-info","main 0x754 36")), -Annotation(Region(0x778,0x78B), Attr("section","\".fini\"")), -Annotation(Region(0x78C,0x78F), Attr("section","\".rodata\"")), -Annotation(Region(0x790,0x7CB), Attr("section","\".eh_frame_hdr\"")), -Annotation(Region(0x7D0,0x86F), Attr("section","\".eh_frame\"")), -Annotation(Region(0x10D88,0x1100F), Attr("segment","03 0x10D88 664")), -Annotation(Region(0x10D90,0x10D97), Attr("section","\".fini_array\"")), -Annotation(Region(0x10D98,0x10F87), Attr("section","\".dynamic\"")), -Annotation(Region(0x10F88,0x10FFF), Attr("section","\".got\"")), -Annotation(Region(0x11000,0x1100F), Attr("section","\".data\"")), -Annotation(Region(0x10D88,0x10D8F), Attr("section","\".init_array\"")), -Annotation(Region(0x640,0x777), Attr("section","\".text\"")), -Annotation(Region(0x640,0x777), Attr("code-region","()")), -Annotation(Region(0x778,0x78B), Attr("code-region","()"))]), -Program(Tid(1_357, "%0000054d"), Attrs([]), - Subs([Sub(Tid(1_307, "@__cxa_finalize"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x600"), -Attr("stub","()")]), "__cxa_finalize", Args([Arg(Tid(1_358, "%0000054e"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("__cxa_finalize_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(827, "@__cxa_finalize"), - Attrs([Attr("address","0x600")]), Phis([]), -Defs([Def(Tid(1_075, "%00000433"), Attrs([Attr("address","0x600"), -Attr("insn","adrp x16, #65536")]), Var("R16",Imm(64)), Int(65536,64)), -Def(Tid(1_082, "%0000043a"), Attrs([Attr("address","0x604"), -Attr("insn","ldr x17, [x16, #0xfa8]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(4008,64)),LittleEndian(),64)), -Def(Tid(1_088, "%00000440"), Attrs([Attr("address","0x608"), -Attr("insn","add x16, x16, #0xfa8")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(4008,64)))]), Jmps([Call(Tid(1_093, "%00000445"), - Attrs([Attr("address","0x60C"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), -Sub(Tid(1_308, "@__do_global_dtors_aux"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x700")]), - "__do_global_dtors_aux", Args([Arg(Tid(1_359, "%0000054f"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("__do_global_dtors_aux_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(626, "@__do_global_dtors_aux"), - Attrs([Attr("address","0x700")]), Phis([]), Defs([Def(Tid(630, "%00000276"), - Attrs([Attr("address","0x700"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("#3",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(18446744073709551584,64))), -Def(Tid(636, "%0000027c"), Attrs([Attr("address","0x700"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("#3",Imm(64)),Var("R29",Imm(64)),LittleEndian(),64)), -Def(Tid(642, "%00000282"), Attrs([Attr("address","0x700"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("#3",Imm(64)),Int(8,64)),Var("R30",Imm(64)),LittleEndian(),64)), -Def(Tid(646, "%00000286"), Attrs([Attr("address","0x700"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("R31",Imm(64)), -Var("#3",Imm(64))), Def(Tid(652, "%0000028c"), - Attrs([Attr("address","0x704"), Attr("insn","mov x29, sp")]), - Var("R29",Imm(64)), Var("R31",Imm(64))), Def(Tid(660, "%00000294"), - Attrs([Attr("address","0x708"), Attr("insn","str x19, [sp, #0x10]")]), - Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(16,64)),Var("R19",Imm(64)),LittleEndian(),64)), -Def(Tid(665, "%00000299"), Attrs([Attr("address","0x70C"), -Attr("insn","adrp x19, #69632")]), Var("R19",Imm(64)), Int(69632,64)), -Def(Tid(672, "%000002a0"), Attrs([Attr("address","0x710"), -Attr("insn","ldrb w0, [x19, #0x10]")]), Var("R0",Imm(64)), -UNSIGNED(64,Load(Var("mem",Mem(64,8)),PLUS(Var("R19",Imm(64)),Int(16,64)),LittleEndian(),8)))]), -Jmps([Goto(Tid(679, "%000002a7"), Attrs([Attr("address","0x714"), -Attr("insn","cbnz w0, #0x28")]), - NEQ(Extract(31,0,Var("R0",Imm(64))),Int(0,32)), -Direct(Tid(677, "%000002a5"))), Goto(Tid(1_347, "%00000543"), Attrs([]), - Int(1,1), Direct(Tid(772, "%00000304")))])), Blk(Tid(772, "%00000304"), - Attrs([Attr("address","0x718")]), Phis([]), Defs([Def(Tid(775, "%00000307"), - Attrs([Attr("address","0x718"), Attr("insn","adrp x0, #65536")]), - Var("R0",Imm(64)), Int(65536,64)), Def(Tid(782, "%0000030e"), - Attrs([Attr("address","0x71C"), Attr("insn","ldr x0, [x0, #0xfd0]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(4048,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(788, "%00000314"), Attrs([Attr("address","0x720"), -Attr("insn","cbz x0, #0x10")]), EQ(Var("R0",Imm(64)),Int(0,64)), -Direct(Tid(786, "%00000312"))), Goto(Tid(1_348, "%00000544"), Attrs([]), - Int(1,1), Direct(Tid(811, "%0000032b")))])), Blk(Tid(811, "%0000032b"), - Attrs([Attr("address","0x724")]), Phis([]), Defs([Def(Tid(814, "%0000032e"), - Attrs([Attr("address","0x724"), Attr("insn","adrp x0, #69632")]), - Var("R0",Imm(64)), Int(69632,64)), Def(Tid(821, "%00000335"), - Attrs([Attr("address","0x728"), Attr("insn","ldr x0, [x0, #0x8]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(826, "%0000033a"), Attrs([Attr("address","0x72C"), -Attr("insn","bl #-0x12c")]), Var("R30",Imm(64)), Int(1840,64))]), -Jmps([Call(Tid(829, "%0000033d"), Attrs([Attr("address","0x72C"), -Attr("insn","bl #-0x12c")]), Int(1,1), -(Direct(Tid(1_307, "@__cxa_finalize")),Direct(Tid(786, "%00000312"))))])), -Blk(Tid(786, "%00000312"), Attrs([Attr("address","0x730")]), Phis([]), -Defs([Def(Tid(794, "%0000031a"), Attrs([Attr("address","0x730"), -Attr("insn","bl #-0xa0")]), Var("R30",Imm(64)), Int(1844,64))]), -Jmps([Call(Tid(796, "%0000031c"), Attrs([Attr("address","0x730"), -Attr("insn","bl #-0xa0")]), Int(1,1), -(Direct(Tid(1_321, "@deregister_tm_clones")),Direct(Tid(798, "%0000031e"))))])), -Blk(Tid(798, "%0000031e"), Attrs([Attr("address","0x734")]), Phis([]), -Defs([Def(Tid(801, "%00000321"), Attrs([Attr("address","0x734"), -Attr("insn","mov w0, #0x1")]), Var("R0",Imm(64)), Int(1,64)), -Def(Tid(809, "%00000329"), Attrs([Attr("address","0x738"), -Attr("insn","strb w0, [x19, #0x10]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R19",Imm(64)),Int(16,64)),Extract(7,0,Var("R0",Imm(64))),LittleEndian(),8))]), -Jmps([Goto(Tid(1_349, "%00000545"), Attrs([]), Int(1,1), -Direct(Tid(677, "%000002a5")))])), Blk(Tid(677, "%000002a5"), - Attrs([Attr("address","0x73C")]), Phis([]), Defs([Def(Tid(687, "%000002af"), - Attrs([Attr("address","0x73C"), Attr("insn","ldr x19, [sp, #0x10]")]), - Var("R19",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(16,64)),LittleEndian(),64)), -Def(Tid(694, "%000002b6"), Attrs([Attr("address","0x740"), -Attr("insn","ldp x29, x30, [sp], #0x20")]), Var("R29",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(699, "%000002bb"), Attrs([Attr("address","0x740"), -Attr("insn","ldp x29, x30, [sp], #0x20")]), Var("R30",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(703, "%000002bf"), Attrs([Attr("address","0x740"), -Attr("insn","ldp x29, x30, [sp], #0x20")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(32,64)))]), Jmps([Call(Tid(708, "%000002c4"), - Attrs([Attr("address","0x744"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), Sub(Tid(1_312, "@__libc_start_main"), - Attrs([Attr("c.proto","signed (*)(signed (*)(signed , char** , char** );* main, signed , char** , \nvoid* auxv)"), -Attr("address","0x5F0"), Attr("stub","()")]), "__libc_start_main", - Args([Arg(Tid(1_360, "%00000550"), - Attrs([Attr("c.layout","**[ : 64]"), -Attr("c.data","Top:u64 ptr ptr"), -Attr("c.type","signed (*)(signed , char** , char** );*")]), - Var("__libc_start_main_main",Imm(64)), Var("R0",Imm(64)), In()), -Arg(Tid(1_361, "%00000551"), Attrs([Attr("c.layout","[signed : 32]"), -Attr("c.data","Top:u32"), Attr("c.type","signed")]), - Var("__libc_start_main_arg2",Imm(32)), LOW(32,Var("R1",Imm(64))), In()), -Arg(Tid(1_362, "%00000552"), Attrs([Attr("c.layout","**[char : 8]"), -Attr("c.data","Top:u8 ptr ptr"), Attr("c.type","char**")]), - Var("__libc_start_main_arg3",Imm(64)), Var("R2",Imm(64)), Both()), -Arg(Tid(1_363, "%00000553"), Attrs([Attr("c.layout","*[ : 8]"), -Attr("c.data","{} ptr"), Attr("c.type","void*")]), - Var("__libc_start_main_auxv",Imm(64)), Var("R3",Imm(64)), Both()), -Arg(Tid(1_364, "%00000554"), Attrs([Attr("c.layout","[signed : 32]"), -Attr("c.data","Top:u32"), Attr("c.type","signed")]), - Var("__libc_start_main_result",Imm(32)), LOW(32,Var("R0",Imm(64))), -Out())]), Blks([Blk(Tid(459, "@__libc_start_main"), - Attrs([Attr("address","0x5F0")]), Phis([]), -Defs([Def(Tid(1_053, "%0000041d"), Attrs([Attr("address","0x5F0"), -Attr("insn","adrp x16, #65536")]), Var("R16",Imm(64)), Int(65536,64)), -Def(Tid(1_060, "%00000424"), Attrs([Attr("address","0x5F4"), -Attr("insn","ldr x17, [x16, #0xfa0]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(4000,64)),LittleEndian(),64)), -Def(Tid(1_066, "%0000042a"), Attrs([Attr("address","0x5F8"), -Attr("insn","add x16, x16, #0xfa0")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(4000,64)))]), Jmps([Call(Tid(1_071, "%0000042f"), - Attrs([Attr("address","0x5FC"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), Sub(Tid(1_313, "@_fini"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x778")]), - "_fini", Args([Arg(Tid(1_365, "%00000555"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("_fini_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(31, "@_fini"), - Attrs([Attr("address","0x778")]), Phis([]), Defs([Def(Tid(37, "%00000025"), - Attrs([Attr("address","0x77C"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("#0",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(18446744073709551600,64))), -Def(Tid(43, "%0000002b"), Attrs([Attr("address","0x77C"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("#0",Imm(64)),Var("R29",Imm(64)),LittleEndian(),64)), -Def(Tid(49, "%00000031"), Attrs([Attr("address","0x77C"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("#0",Imm(64)),Int(8,64)),Var("R30",Imm(64)),LittleEndian(),64)), -Def(Tid(53, "%00000035"), Attrs([Attr("address","0x77C"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("R31",Imm(64)), -Var("#0",Imm(64))), Def(Tid(59, "%0000003b"), Attrs([Attr("address","0x780"), -Attr("insn","mov x29, sp")]), Var("R29",Imm(64)), Var("R31",Imm(64))), -Def(Tid(66, "%00000042"), Attrs([Attr("address","0x784"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R29",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(71, "%00000047"), Attrs([Attr("address","0x784"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R30",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(75, "%0000004b"), Attrs([Attr("address","0x784"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(16,64)))]), Jmps([Call(Tid(80, "%00000050"), - Attrs([Attr("address","0x788"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), Sub(Tid(1_314, "@_init"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x5B0")]), - "_init", Args([Arg(Tid(1_366, "%00000556"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("_init_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(1_165, "@_init"), - Attrs([Attr("address","0x5B0")]), Phis([]), -Defs([Def(Tid(1_171, "%00000493"), Attrs([Attr("address","0x5B4"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("#5",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(18446744073709551600,64))), -Def(Tid(1_177, "%00000499"), Attrs([Attr("address","0x5B4"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("#5",Imm(64)),Var("R29",Imm(64)),LittleEndian(),64)), -Def(Tid(1_183, "%0000049f"), Attrs([Attr("address","0x5B4"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("#5",Imm(64)),Int(8,64)),Var("R30",Imm(64)),LittleEndian(),64)), -Def(Tid(1_187, "%000004a3"), Attrs([Attr("address","0x5B4"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("R31",Imm(64)), -Var("#5",Imm(64))), Def(Tid(1_193, "%000004a9"), - Attrs([Attr("address","0x5B8"), Attr("insn","mov x29, sp")]), - Var("R29",Imm(64)), Var("R31",Imm(64))), Def(Tid(1_198, "%000004ae"), - Attrs([Attr("address","0x5BC"), Attr("insn","bl #0xb8")]), - Var("R30",Imm(64)), Int(1472,64))]), Jmps([Call(Tid(1_200, "%000004b0"), - Attrs([Attr("address","0x5BC"), Attr("insn","bl #0xb8")]), Int(1,1), -(Direct(Tid(1_319, "@call_weak_fn")),Direct(Tid(1_202, "%000004b2"))))])), -Blk(Tid(1_202, "%000004b2"), Attrs([Attr("address","0x5C0")]), Phis([]), -Defs([Def(Tid(1_207, "%000004b7"), Attrs([Attr("address","0x5C0"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R29",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(1_212, "%000004bc"), Attrs([Attr("address","0x5C0"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R30",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(1_216, "%000004c0"), Attrs([Attr("address","0x5C0"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(16,64)))]), Jmps([Call(Tid(1_221, "%000004c5"), - Attrs([Attr("address","0x5C4"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), Sub(Tid(1_315, "@_start"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x640"), -Attr("entry-point","()")]), "_start", Args([Arg(Tid(1_367, "%00000557"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("_start_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(396, "@_start"), - Attrs([Attr("address","0x640")]), Phis([]), Defs([Def(Tid(401, "%00000191"), - Attrs([Attr("address","0x644"), Attr("insn","mov x29, #0x0")]), - Var("R29",Imm(64)), Int(0,64)), Def(Tid(406, "%00000196"), - Attrs([Attr("address","0x648"), Attr("insn","mov x30, #0x0")]), - Var("R30",Imm(64)), Int(0,64)), Def(Tid(412, "%0000019c"), - Attrs([Attr("address","0x64C"), Attr("insn","mov x5, x0")]), - Var("R5",Imm(64)), Var("R0",Imm(64))), Def(Tid(419, "%000001a3"), - Attrs([Attr("address","0x650"), Attr("insn","ldr x1, [sp]")]), - Var("R1",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(425, "%000001a9"), Attrs([Attr("address","0x654"), -Attr("insn","add x2, sp, #0x8")]), Var("R2",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(8,64))), Def(Tid(431, "%000001af"), - Attrs([Attr("address","0x658"), Attr("insn","mov x6, sp")]), - Var("R6",Imm(64)), Var("R31",Imm(64))), Def(Tid(436, "%000001b4"), - Attrs([Attr("address","0x65C"), Attr("insn","adrp x0, #65536")]), - Var("R0",Imm(64)), Int(65536,64)), Def(Tid(443, "%000001bb"), - Attrs([Attr("address","0x660"), Attr("insn","ldr x0, [x0, #0xff0]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(4080,64)),LittleEndian(),64)), -Def(Tid(448, "%000001c0"), Attrs([Attr("address","0x664"), -Attr("insn","mov x3, #0x0")]), Var("R3",Imm(64)), Int(0,64)), -Def(Tid(453, "%000001c5"), Attrs([Attr("address","0x668"), -Attr("insn","mov x4, #0x0")]), Var("R4",Imm(64)), Int(0,64)), -Def(Tid(458, "%000001ca"), Attrs([Attr("address","0x66C"), -Attr("insn","bl #-0x7c")]), Var("R30",Imm(64)), Int(1648,64))]), -Jmps([Call(Tid(461, "%000001cd"), Attrs([Attr("address","0x66C"), -Attr("insn","bl #-0x7c")]), Int(1,1), -(Direct(Tid(1_312, "@__libc_start_main")),Direct(Tid(463, "%000001cf"))))])), -Blk(Tid(463, "%000001cf"), Attrs([Attr("address","0x670")]), Phis([]), -Defs([Def(Tid(466, "%000001d2"), Attrs([Attr("address","0x670"), -Attr("insn","bl #-0x50")]), Var("R30",Imm(64)), Int(1652,64))]), -Jmps([Call(Tid(469, "%000001d5"), Attrs([Attr("address","0x670"), -Attr("insn","bl #-0x50")]), Int(1,1), -(Direct(Tid(1_318, "@abort")),Direct(Tid(1_350, "%00000546"))))])), -Blk(Tid(1_350, "%00000546"), Attrs([]), Phis([]), Defs([]), -Jmps([Call(Tid(1_351, "%00000547"), Attrs([]), Int(1,1), -(Direct(Tid(1_319, "@call_weak_fn")),))]))])), Sub(Tid(1_318, "@abort"), - Attrs([Attr("noreturn","()"), Attr("c.proto","void (*)(void)"), -Attr("address","0x620"), Attr("stub","()")]), "abort", Args([]), -Blks([Blk(Tid(467, "@abort"), Attrs([Attr("address","0x620")]), Phis([]), -Defs([Def(Tid(1_119, "%0000045f"), Attrs([Attr("address","0x620"), -Attr("insn","adrp x16, #65536")]), Var("R16",Imm(64)), Int(65536,64)), -Def(Tid(1_126, "%00000466"), Attrs([Attr("address","0x624"), -Attr("insn","ldr x17, [x16, #0xfb8]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(4024,64)),LittleEndian(),64)), -Def(Tid(1_132, "%0000046c"), Attrs([Attr("address","0x628"), -Attr("insn","add x16, x16, #0xfb8")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(4024,64)))]), Jmps([Call(Tid(1_137, "%00000471"), - Attrs([Attr("address","0x62C"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), Sub(Tid(1_319, "@call_weak_fn"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x674")]), - "call_weak_fn", Args([Arg(Tid(1_368, "%00000558"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("call_weak_fn_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(471, "@call_weak_fn"), - Attrs([Attr("address","0x674")]), Phis([]), Defs([Def(Tid(474, "%000001da"), - Attrs([Attr("address","0x674"), Attr("insn","adrp x0, #65536")]), - Var("R0",Imm(64)), Int(65536,64)), Def(Tid(481, "%000001e1"), - Attrs([Attr("address","0x678"), Attr("insn","ldr x0, [x0, #0xfe8]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(4072,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(487, "%000001e7"), Attrs([Attr("address","0x67C"), -Attr("insn","cbz x0, #0x8")]), EQ(Var("R0",Imm(64)),Int(0,64)), -Direct(Tid(485, "%000001e5"))), Goto(Tid(1_352, "%00000548"), Attrs([]), - Int(1,1), Direct(Tid(891, "%0000037b")))])), Blk(Tid(485, "%000001e5"), - Attrs([Attr("address","0x684")]), Phis([]), Defs([]), -Jmps([Call(Tid(493, "%000001ed"), Attrs([Attr("address","0x684"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))])), -Blk(Tid(891, "%0000037b"), Attrs([Attr("address","0x680")]), Phis([]), -Defs([]), Jmps([Goto(Tid(894, "%0000037e"), Attrs([Attr("address","0x680"), -Attr("insn","b #-0x70")]), Int(1,1), Direct(Tid(892, "@__gmon_start__")))])), -Blk(Tid(892, "@__gmon_start__"), Attrs([Attr("address","0x610")]), Phis([]), -Defs([Def(Tid(1_097, "%00000449"), Attrs([Attr("address","0x610"), -Attr("insn","adrp x16, #65536")]), Var("R16",Imm(64)), Int(65536,64)), -Def(Tid(1_104, "%00000450"), Attrs([Attr("address","0x614"), -Attr("insn","ldr x17, [x16, #0xfb0]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(4016,64)),LittleEndian(),64)), -Def(Tid(1_110, "%00000456"), Attrs([Attr("address","0x618"), -Attr("insn","add x16, x16, #0xfb0")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(4016,64)))]), Jmps([Call(Tid(1_115, "%0000045b"), - Attrs([Attr("address","0x61C"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), -Sub(Tid(1_321, "@deregister_tm_clones"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x690")]), - "deregister_tm_clones", Args([Arg(Tid(1_369, "%00000559"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("deregister_tm_clones_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(499, "@deregister_tm_clones"), - Attrs([Attr("address","0x690")]), Phis([]), Defs([Def(Tid(502, "%000001f6"), - Attrs([Attr("address","0x690"), Attr("insn","adrp x0, #69632")]), - Var("R0",Imm(64)), Int(69632,64)), Def(Tid(508, "%000001fc"), - Attrs([Attr("address","0x694"), Attr("insn","add x0, x0, #0x10")]), - Var("R0",Imm(64)), PLUS(Var("R0",Imm(64)),Int(16,64))), -Def(Tid(513, "%00000201"), Attrs([Attr("address","0x698"), -Attr("insn","adrp x1, #69632")]), Var("R1",Imm(64)), Int(69632,64)), -Def(Tid(519, "%00000207"), Attrs([Attr("address","0x69C"), -Attr("insn","add x1, x1, #0x10")]), Var("R1",Imm(64)), -PLUS(Var("R1",Imm(64)),Int(16,64))), Def(Tid(525, "%0000020d"), - Attrs([Attr("address","0x6A0"), Attr("insn","cmp x1, x0")]), - Var("#1",Imm(64)), NOT(Var("R0",Imm(64)))), Def(Tid(530, "%00000212"), - Attrs([Attr("address","0x6A0"), Attr("insn","cmp x1, x0")]), - Var("#2",Imm(64)), PLUS(Var("R1",Imm(64)),NOT(Var("R0",Imm(64))))), -Def(Tid(536, "%00000218"), Attrs([Attr("address","0x6A0"), -Attr("insn","cmp x1, x0")]), Var("VF",Imm(1)), -NEQ(SIGNED(65,PLUS(Var("#2",Imm(64)),Int(1,64))),PLUS(PLUS(SIGNED(65,Var("R1",Imm(64))),SIGNED(65,Var("#1",Imm(64)))),Int(1,65)))), -Def(Tid(542, "%0000021e"), Attrs([Attr("address","0x6A0"), -Attr("insn","cmp x1, x0")]), Var("CF",Imm(1)), -NEQ(UNSIGNED(65,PLUS(Var("#2",Imm(64)),Int(1,64))),PLUS(PLUS(UNSIGNED(65,Var("R1",Imm(64))),UNSIGNED(65,Var("#1",Imm(64)))),Int(1,65)))), -Def(Tid(546, "%00000222"), Attrs([Attr("address","0x6A0"), -Attr("insn","cmp x1, x0")]), Var("ZF",Imm(1)), -EQ(PLUS(Var("#2",Imm(64)),Int(1,64)),Int(0,64))), Def(Tid(550, "%00000226"), - Attrs([Attr("address","0x6A0"), Attr("insn","cmp x1, x0")]), - Var("NF",Imm(1)), Extract(63,63,PLUS(Var("#2",Imm(64)),Int(1,64))))]), -Jmps([Goto(Tid(556, "%0000022c"), Attrs([Attr("address","0x6A4"), -Attr("insn","b.eq #0x18")]), EQ(Var("ZF",Imm(1)),Int(1,1)), -Direct(Tid(554, "%0000022a"))), Goto(Tid(1_353, "%00000549"), Attrs([]), - Int(1,1), Direct(Tid(861, "%0000035d")))])), Blk(Tid(861, "%0000035d"), - Attrs([Attr("address","0x6A8")]), Phis([]), Defs([Def(Tid(864, "%00000360"), - Attrs([Attr("address","0x6A8"), Attr("insn","adrp x1, #65536")]), - Var("R1",Imm(64)), Int(65536,64)), Def(Tid(871, "%00000367"), - Attrs([Attr("address","0x6AC"), Attr("insn","ldr x1, [x1, #0xfc8]")]), - Var("R1",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R1",Imm(64)),Int(4040,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(876, "%0000036c"), Attrs([Attr("address","0x6B0"), -Attr("insn","cbz x1, #0xc")]), EQ(Var("R1",Imm(64)),Int(0,64)), -Direct(Tid(554, "%0000022a"))), Goto(Tid(1_354, "%0000054a"), Attrs([]), - Int(1,1), Direct(Tid(880, "%00000370")))])), Blk(Tid(554, "%0000022a"), - Attrs([Attr("address","0x6BC")]), Phis([]), Defs([]), -Jmps([Call(Tid(562, "%00000232"), Attrs([Attr("address","0x6BC"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))])), -Blk(Tid(880, "%00000370"), Attrs([Attr("address","0x6B4")]), Phis([]), -Defs([Def(Tid(884, "%00000374"), Attrs([Attr("address","0x6B4"), -Attr("insn","mov x16, x1")]), Var("R16",Imm(64)), Var("R1",Imm(64)))]), -Jmps([Call(Tid(889, "%00000379"), Attrs([Attr("address","0x6B8"), -Attr("insn","br x16")]), Int(1,1), (Indirect(Var("R16",Imm(64))),))]))])), -Sub(Tid(1_324, "@frame_dummy"), Attrs([Attr("c.proto","signed (*)(void)"), -Attr("address","0x750")]), "frame_dummy", Args([Arg(Tid(1_370, "%0000055a"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("frame_dummy_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(714, "@frame_dummy"), - Attrs([Attr("address","0x750")]), Phis([]), Defs([]), -Jmps([Call(Tid(716, "%000002cc"), Attrs([Attr("address","0x750"), -Attr("insn","b #-0x90")]), Int(1,1), -(Direct(Tid(1_326, "@register_tm_clones")),))]))])), Sub(Tid(1_325, "@main"), - Attrs([Attr("c.proto","signed (*)(signed argc, const char** argv)"), -Attr("address","0x754")]), "main", Args([Arg(Tid(1_371, "%0000055b"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("main_argc",Imm(32)), -LOW(32,Var("R0",Imm(64))), In()), Arg(Tid(1_372, "%0000055c"), - Attrs([Attr("c.layout","**[char : 8]"), Attr("c.data","Top:u8 ptr ptr"), -Attr("c.type"," const char**")]), Var("main_argv",Imm(64)), -Var("R1",Imm(64)), Both()), Arg(Tid(1_373, "%0000055d"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("main_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(718, "@main"), - Attrs([Attr("address","0x754")]), Phis([]), Defs([Def(Tid(721, "%000002d1"), - Attrs([Attr("address","0x754"), Attr("insn","adrp x0, #65536")]), - Var("R0",Imm(64)), Int(65536,64)), Def(Tid(728, "%000002d8"), - Attrs([Attr("address","0x758"), Attr("insn","ldr x0, [x0, #0xfe0]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(4064,64)),LittleEndian(),64)), -Def(Tid(733, "%000002dd"), Attrs([Attr("address","0x75C"), -Attr("insn","mov w1, #0x1")]), Var("R1",Imm(64)), Int(1,64)), -Def(Tid(741, "%000002e5"), Attrs([Attr("address","0x760"), -Attr("insn","str w1, [x0]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("R0",Imm(64)),Extract(31,0,Var("R1",Imm(64))),LittleEndian(),32)), -Def(Tid(746, "%000002ea"), Attrs([Attr("address","0x764"), -Attr("insn","adrp x0, #65536")]), Var("R0",Imm(64)), Int(65536,64)), -Def(Tid(753, "%000002f1"), Attrs([Attr("address","0x768"), -Attr("insn","ldr x0, [x0, #0xfd8]")]), Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(4056,64)),LittleEndian(),64)), -Def(Tid(760, "%000002f8"), Attrs([Attr("address","0x76C"), -Attr("insn","str wzr, [x0]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("R0",Imm(64)),Int(0,32),LittleEndian(),32)), -Def(Tid(765, "%000002fd"), Attrs([Attr("address","0x770"), -Attr("insn","mov w0, #0x0")]), Var("R0",Imm(64)), Int(0,64))]), -Jmps([Call(Tid(770, "%00000302"), Attrs([Attr("address","0x774"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))]))])), -Sub(Tid(1_326, "@register_tm_clones"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x6C0")]), - "register_tm_clones", Args([Arg(Tid(1_374, "%0000055e"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("register_tm_clones_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(564, "@register_tm_clones"), Attrs([Attr("address","0x6C0")]), - Phis([]), Defs([Def(Tid(567, "%00000237"), Attrs([Attr("address","0x6C0"), -Attr("insn","adrp x0, #69632")]), Var("R0",Imm(64)), Int(69632,64)), -Def(Tid(573, "%0000023d"), Attrs([Attr("address","0x6C4"), -Attr("insn","add x0, x0, #0x10")]), Var("R0",Imm(64)), -PLUS(Var("R0",Imm(64)),Int(16,64))), Def(Tid(578, "%00000242"), - Attrs([Attr("address","0x6C8"), Attr("insn","adrp x1, #69632")]), - Var("R1",Imm(64)), Int(69632,64)), Def(Tid(584, "%00000248"), - Attrs([Attr("address","0x6CC"), Attr("insn","add x1, x1, #0x10")]), - Var("R1",Imm(64)), PLUS(Var("R1",Imm(64)),Int(16,64))), -Def(Tid(591, "%0000024f"), Attrs([Attr("address","0x6D0"), -Attr("insn","sub x1, x1, x0")]), Var("R1",Imm(64)), -PLUS(PLUS(Var("R1",Imm(64)),NOT(Var("R0",Imm(64)))),Int(1,64))), -Def(Tid(597, "%00000255"), Attrs([Attr("address","0x6D4"), -Attr("insn","lsr x2, x1, #63")]), Var("R2",Imm(64)), -Concat(Int(0,63),Extract(63,63,Var("R1",Imm(64))))), -Def(Tid(604, "%0000025c"), Attrs([Attr("address","0x6D8"), -Attr("insn","add x1, x2, x1, asr #3")]), Var("R1",Imm(64)), -PLUS(Var("R2",Imm(64)),ARSHIFT(Var("R1",Imm(64)),Int(3,3)))), -Def(Tid(610, "%00000262"), Attrs([Attr("address","0x6DC"), -Attr("insn","asr x1, x1, #1")]), Var("R1",Imm(64)), -SIGNED(64,Extract(63,1,Var("R1",Imm(64)))))]), -Jmps([Goto(Tid(616, "%00000268"), Attrs([Attr("address","0x6E0"), -Attr("insn","cbz x1, #0x18")]), EQ(Var("R1",Imm(64)),Int(0,64)), -Direct(Tid(614, "%00000266"))), Goto(Tid(1_355, "%0000054b"), Attrs([]), - Int(1,1), Direct(Tid(831, "%0000033f")))])), Blk(Tid(831, "%0000033f"), - Attrs([Attr("address","0x6E4")]), Phis([]), Defs([Def(Tid(834, "%00000342"), - Attrs([Attr("address","0x6E4"), Attr("insn","adrp x2, #65536")]), - Var("R2",Imm(64)), Int(65536,64)), Def(Tid(841, "%00000349"), - Attrs([Attr("address","0x6E8"), Attr("insn","ldr x2, [x2, #0xff8]")]), - Var("R2",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R2",Imm(64)),Int(4088,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(846, "%0000034e"), Attrs([Attr("address","0x6EC"), -Attr("insn","cbz x2, #0xc")]), EQ(Var("R2",Imm(64)),Int(0,64)), -Direct(Tid(614, "%00000266"))), Goto(Tid(1_356, "%0000054c"), Attrs([]), - Int(1,1), Direct(Tid(850, "%00000352")))])), Blk(Tid(614, "%00000266"), - Attrs([Attr("address","0x6F8")]), Phis([]), Defs([]), -Jmps([Call(Tid(622, "%0000026e"), Attrs([Attr("address","0x6F8"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))])), -Blk(Tid(850, "%00000352"), Attrs([Attr("address","0x6F0")]), Phis([]), -Defs([Def(Tid(854, "%00000356"), Attrs([Attr("address","0x6F0"), -Attr("insn","mov x16, x2")]), Var("R16",Imm(64)), Var("R2",Imm(64)))]), -Jmps([Call(Tid(859, "%0000035b"), Attrs([Attr("address","0x6F4"), -Attr("insn","br x16")]), Int(1,1), -(Indirect(Var("R16",Imm(64))),))]))]))]))) \ No newline at end of file diff --git a/src/test/correct/basic_lock_unlock/gcc_pic/basic_lock_unlock.bir b/src/test/correct/basic_lock_unlock/gcc_pic/basic_lock_unlock.bir deleted file mode 100644 index 9a52c7511..000000000 --- a/src/test/correct/basic_lock_unlock/gcc_pic/basic_lock_unlock.bir +++ /dev/null @@ -1,231 +0,0 @@ -0000054d: program -0000051b: sub __cxa_finalize(__cxa_finalize_result) -0000054e: __cxa_finalize_result :: out u32 = low:32[R0] - -0000033b: -00000433: R16 := 0x10000 -0000043a: R17 := mem[R16 + 0xFA8, el]:u64 -00000440: R16 := R16 + 0xFA8 -00000445: call R17 with noreturn - -0000051c: sub __do_global_dtors_aux(__do_global_dtors_aux_result) -0000054f: __do_global_dtors_aux_result :: out u32 = low:32[R0] - -00000272: -00000276: #3 := R31 - 0x20 -0000027c: mem := mem with [#3, el]:u64 <- R29 -00000282: mem := mem with [#3 + 8, el]:u64 <- R30 -00000286: R31 := #3 -0000028c: R29 := R31 -00000294: mem := mem with [R31 + 0x10, el]:u64 <- R19 -00000299: R19 := 0x11000 -000002a0: R0 := pad:64[mem[R19 + 0x10]] -000002a7: when 31:0[R0] <> 0 goto %000002a5 -00000543: goto %00000304 - -00000304: -00000307: R0 := 0x10000 -0000030e: R0 := mem[R0 + 0xFD0, el]:u64 -00000314: when R0 = 0 goto %00000312 -00000544: goto %0000032b - -0000032b: -0000032e: R0 := 0x11000 -00000335: R0 := mem[R0 + 8, el]:u64 -0000033a: R30 := 0x730 -0000033d: call @__cxa_finalize with return %00000312 - -00000312: -0000031a: R30 := 0x734 -0000031c: call @deregister_tm_clones with return %0000031e - -0000031e: -00000321: R0 := 1 -00000329: mem := mem with [R19 + 0x10] <- 7:0[R0] -00000545: goto %000002a5 - -000002a5: -000002af: R19 := mem[R31 + 0x10, el]:u64 -000002b6: R29 := mem[R31, el]:u64 -000002bb: R30 := mem[R31 + 8, el]:u64 -000002bf: R31 := R31 + 0x20 -000002c4: call R30 with noreturn - -00000520: sub __libc_start_main(__libc_start_main_main, __libc_start_main_arg2, __libc_start_main_arg3, __libc_start_main_auxv, __libc_start_main_result) -00000550: __libc_start_main_main :: in u64 = R0 -00000551: __libc_start_main_arg2 :: in u32 = low:32[R1] -00000552: __libc_start_main_arg3 :: in out u64 = R2 -00000553: __libc_start_main_auxv :: in out u64 = R3 -00000554: __libc_start_main_result :: out u32 = low:32[R0] - -000001cb: -0000041d: R16 := 0x10000 -00000424: R17 := mem[R16 + 0xFA0, el]:u64 -0000042a: R16 := R16 + 0xFA0 -0000042f: call R17 with noreturn - -00000521: sub _fini(_fini_result) -00000555: _fini_result :: out u32 = low:32[R0] - -0000001f: -00000025: #0 := R31 - 0x10 -0000002b: mem := mem with [#0, el]:u64 <- R29 -00000031: mem := mem with [#0 + 8, el]:u64 <- R30 -00000035: R31 := #0 -0000003b: R29 := R31 -00000042: R29 := mem[R31, el]:u64 -00000047: R30 := mem[R31 + 8, el]:u64 -0000004b: R31 := R31 + 0x10 -00000050: call R30 with noreturn - -00000522: sub _init(_init_result) -00000556: _init_result :: out u32 = low:32[R0] - -0000048d: -00000493: #5 := R31 - 0x10 -00000499: mem := mem with [#5, el]:u64 <- R29 -0000049f: mem := mem with [#5 + 8, el]:u64 <- R30 -000004a3: R31 := #5 -000004a9: R29 := R31 -000004ae: R30 := 0x5C0 -000004b0: call @call_weak_fn with return %000004b2 - -000004b2: -000004b7: R29 := mem[R31, el]:u64 -000004bc: R30 := mem[R31 + 8, el]:u64 -000004c0: R31 := R31 + 0x10 -000004c5: call R30 with noreturn - -00000523: sub _start(_start_result) -00000557: _start_result :: out u32 = low:32[R0] - -0000018c: -00000191: R29 := 0 -00000196: R30 := 0 -0000019c: R5 := R0 -000001a3: R1 := mem[R31, el]:u64 -000001a9: R2 := R31 + 8 -000001af: R6 := R31 -000001b4: R0 := 0x10000 -000001bb: R0 := mem[R0 + 0xFF0, el]:u64 -000001c0: R3 := 0 -000001c5: R4 := 0 -000001ca: R30 := 0x670 -000001cd: call @__libc_start_main with return %000001cf - -000001cf: -000001d2: R30 := 0x674 -000001d5: call @abort with return %00000546 - -00000546: -00000547: call @call_weak_fn with noreturn - -00000526: sub abort() - - -000001d3: -0000045f: R16 := 0x10000 -00000466: R17 := mem[R16 + 0xFB8, el]:u64 -0000046c: R16 := R16 + 0xFB8 -00000471: call R17 with noreturn - -00000527: sub call_weak_fn(call_weak_fn_result) -00000558: call_weak_fn_result :: out u32 = low:32[R0] - -000001d7: -000001da: R0 := 0x10000 -000001e1: R0 := mem[R0 + 0xFE8, el]:u64 -000001e7: when R0 = 0 goto %000001e5 -00000548: goto %0000037b - -000001e5: -000001ed: call R30 with noreturn - -0000037b: -0000037e: goto @__gmon_start__ - -0000037c: -00000449: R16 := 0x10000 -00000450: R17 := mem[R16 + 0xFB0, el]:u64 -00000456: R16 := R16 + 0xFB0 -0000045b: call R17 with noreturn - -00000529: sub deregister_tm_clones(deregister_tm_clones_result) -00000559: deregister_tm_clones_result :: out u32 = low:32[R0] - -000001f3: -000001f6: R0 := 0x11000 -000001fc: R0 := R0 + 0x10 -00000201: R1 := 0x11000 -00000207: R1 := R1 + 0x10 -0000020d: #1 := ~R0 -00000212: #2 := R1 + ~R0 -00000218: VF := extend:65[#2 + 1] <> extend:65[R1] + extend:65[#1] + 1 -0000021e: CF := pad:65[#2 + 1] <> pad:65[R1] + pad:65[#1] + 1 -00000222: ZF := #2 + 1 = 0 -00000226: NF := 63:63[#2 + 1] -0000022c: when ZF goto %0000022a -00000549: goto %0000035d - -0000035d: -00000360: R1 := 0x10000 -00000367: R1 := mem[R1 + 0xFC8, el]:u64 -0000036c: when R1 = 0 goto %0000022a -0000054a: goto %00000370 - -0000022a: -00000232: call R30 with noreturn - -00000370: -00000374: R16 := R1 -00000379: call R16 with noreturn - -0000052c: sub frame_dummy(frame_dummy_result) -0000055a: frame_dummy_result :: out u32 = low:32[R0] - -000002ca: -000002cc: call @register_tm_clones with noreturn - -0000052d: sub main(main_argc, main_argv, main_result) -0000055b: main_argc :: in u32 = low:32[R0] -0000055c: main_argv :: in out u64 = R1 -0000055d: main_result :: out u32 = low:32[R0] - -000002ce: -000002d1: R0 := 0x10000 -000002d8: R0 := mem[R0 + 0xFE0, el]:u64 -000002dd: R1 := 1 -000002e5: mem := mem with [R0, el]:u32 <- 31:0[R1] -000002ea: R0 := 0x10000 -000002f1: R0 := mem[R0 + 0xFD8, el]:u64 -000002f8: mem := mem with [R0, el]:u32 <- 0 -000002fd: R0 := 0 -00000302: call R30 with noreturn - -0000052e: sub register_tm_clones(register_tm_clones_result) -0000055e: register_tm_clones_result :: out u32 = low:32[R0] - -00000234: -00000237: R0 := 0x11000 -0000023d: R0 := R0 + 0x10 -00000242: R1 := 0x11000 -00000248: R1 := R1 + 0x10 -0000024f: R1 := R1 + ~R0 + 1 -00000255: R2 := 0.63:63[R1] -0000025c: R1 := R2 + (R1 ~>> 3) -00000262: R1 := extend:64[63:1[R1]] -00000268: when R1 = 0 goto %00000266 -0000054b: goto %0000033f - -0000033f: -00000342: R2 := 0x10000 -00000349: R2 := mem[R2 + 0xFF8, el]:u64 -0000034e: when R2 = 0 goto %00000266 -0000054c: goto %00000352 - -00000266: -0000026e: call R30 with noreturn - -00000352: -00000356: R16 := R2 -0000035b: call R16 with noreturn diff --git a/src/test/correct/basic_lock_unlock/gcc_pic/basic_lock_unlock.expected b/src/test/correct/basic_lock_unlock/gcc_pic/basic_lock_unlock.expected index 0cc0061a0..49188e17c 100644 --- a/src/test/correct/basic_lock_unlock/gcc_pic/basic_lock_unlock.expected +++ b/src/test/correct/basic_lock_unlock/gcc_pic/basic_lock_unlock.expected @@ -70,7 +70,7 @@ implementation {:extern} guarantee_reflexive() assert ((memory_load32_le(mem, $z_addr) == 0bv32) ==> ((memory_load32_le(mem, $x_addr) == memory_load32_le(mem, $x_addr)) && (memory_load32_le(mem, $z_addr) == memory_load32_le(mem, $z_addr)))); } -procedure main_1876(); +procedure main(); modifies Gamma_R0, Gamma_R1, Gamma_mem, R0, R1, mem; requires (memory_load32_le(mem, $z_addr) == 1bv32); free requires (memory_load64_le(mem, 69632bv64) == 0bv64); @@ -90,43 +90,43 @@ procedure main_1876(); free ensures (memory_load64_le(mem, 69616bv64) == 1876bv64); free ensures (memory_load64_le(mem, 69640bv64) == 69640bv64); -implementation main_1876() +implementation main() { - var Gamma_load18: bool; - var Gamma_load19: bool; - var load18: bv64; - var load19: bv64; + var $load$18: bv64; + var $load$19: bv64; + var Gamma_$load$18: bool; + var Gamma_$load$19: bool; var x_old: bv32; var z_old: bv32; lmain: assume {:captureState "lmain"} true; R0, Gamma_R0 := 65536bv64, true; call rely(); - load18, Gamma_load18 := memory_load64_le(mem, bvadd64(R0, 4064bv64)), (gamma_load64(Gamma_mem, bvadd64(R0, 4064bv64)) || L(mem, bvadd64(R0, 4064bv64))); - R0, Gamma_R0 := load18, Gamma_load18; + $load$18, Gamma_$load$18 := memory_load64_le(mem, bvadd64(R0, 4064bv64)), (gamma_load64(Gamma_mem, bvadd64(R0, 4064bv64)) || L(mem, bvadd64(R0, 4064bv64))); + R0, Gamma_R0 := $load$18, Gamma_$load$18; R1, Gamma_R1 := 1bv64, true; call rely(); + assert (L(mem, R0) ==> Gamma_R1); x_old := memory_load32_le(mem, $x_addr); z_old := memory_load32_le(mem, $z_addr); - assert (L(mem, R0) ==> Gamma_R1); mem, Gamma_mem := memory_store32_le(mem, R0, R1[32:0]), gamma_store32(Gamma_mem, R0, Gamma_R1); assert ((z_old == 0bv32) ==> ((memory_load32_le(mem, $x_addr) == x_old) && (memory_load32_le(mem, $z_addr) == z_old))); assume {:captureState "%000002e5"} true; R0, Gamma_R0 := 65536bv64, true; call rely(); - load19, Gamma_load19 := memory_load64_le(mem, bvadd64(R0, 4056bv64)), (gamma_load64(Gamma_mem, bvadd64(R0, 4056bv64)) || L(mem, bvadd64(R0, 4056bv64))); - R0, Gamma_R0 := load19, Gamma_load19; + $load$19, Gamma_$load$19 := memory_load64_le(mem, bvadd64(R0, 4056bv64)), (gamma_load64(Gamma_mem, bvadd64(R0, 4056bv64)) || L(mem, bvadd64(R0, 4056bv64))); + R0, Gamma_R0 := $load$19, Gamma_$load$19; call rely(); + assert (L(mem, R0) ==> true); x_old := memory_load32_le(mem, $x_addr); z_old := memory_load32_le(mem, $z_addr); - assert (L(mem, R0) ==> true); mem, Gamma_mem := memory_store32_le(mem, R0, 0bv32), gamma_store32(Gamma_mem, R0, true); assert ((z_old == 0bv32) ==> ((memory_load32_le(mem, $x_addr) == x_old) && (memory_load32_le(mem, $z_addr) == z_old))); assume {:captureState "%000002f8"} true; R0, Gamma_R0 := 0bv64, true; - goto main_1876_basil_return; - main_1876_basil_return: - assume {:captureState "main_1876_basil_return"} true; + goto main_basil_return; + main_basil_return: + assume {:captureState "main_basil_return"} true; return; } diff --git a/src/test/correct/basic_lock_unlock/gcc_pic/basic_lock_unlock.gts b/src/test/correct/basic_lock_unlock/gcc_pic/basic_lock_unlock.gts deleted file mode 100644 index cbc6ccef2..000000000 Binary files a/src/test/correct/basic_lock_unlock/gcc_pic/basic_lock_unlock.gts and /dev/null differ diff --git a/src/test/correct/basic_lock_unlock/gcc_pic/basic_lock_unlock.md5sum b/src/test/correct/basic_lock_unlock/gcc_pic/basic_lock_unlock.md5sum new file mode 100644 index 000000000..72162b37b --- /dev/null +++ b/src/test/correct/basic_lock_unlock/gcc_pic/basic_lock_unlock.md5sum @@ -0,0 +1,5 @@ +c287ab3102c699d3b0e9c2b209d2c7f4 correct/basic_lock_unlock/gcc_pic/a.out +2918e3138d9721fce3cda2b1da2f09b9 correct/basic_lock_unlock/gcc_pic/basic_lock_unlock.adt +463c0a638be73d9487641fea8bf1deeb correct/basic_lock_unlock/gcc_pic/basic_lock_unlock.bir +5898cf5818cbc7180268ffb086bf0378 correct/basic_lock_unlock/gcc_pic/basic_lock_unlock.relf +b79df0ce75ddc4e623a699e9dc7daff3 correct/basic_lock_unlock/gcc_pic/basic_lock_unlock.gts diff --git a/src/test/correct/basic_lock_unlock/gcc_pic/basic_lock_unlock.relf b/src/test/correct/basic_lock_unlock/gcc_pic/basic_lock_unlock.relf deleted file mode 100644 index 933e2a6ca..000000000 --- a/src/test/correct/basic_lock_unlock/gcc_pic/basic_lock_unlock.relf +++ /dev/null @@ -1,124 +0,0 @@ - -Relocation section '.rela.dyn' at offset 0x460 contains 10 entries: - Offset Info Type Symbol's Value Symbol's Name + Addend -0000000000010d88 0000000000000403 R_AARCH64_RELATIVE 750 -0000000000010d90 0000000000000403 R_AARCH64_RELATIVE 700 -0000000000010fd8 0000000000000403 R_AARCH64_RELATIVE 11018 -0000000000010fe0 0000000000000403 R_AARCH64_RELATIVE 11014 -0000000000010ff0 0000000000000403 R_AARCH64_RELATIVE 754 -0000000000011008 0000000000000403 R_AARCH64_RELATIVE 11008 -0000000000010fc8 0000000400000401 R_AARCH64_GLOB_DAT 0000000000000000 _ITM_deregisterTMCloneTable + 0 -0000000000010fd0 0000000500000401 R_AARCH64_GLOB_DAT 0000000000000000 __cxa_finalize@GLIBC_2.17 + 0 -0000000000010fe8 0000000600000401 R_AARCH64_GLOB_DAT 0000000000000000 __gmon_start__ + 0 -0000000000010ff8 0000000800000401 R_AARCH64_GLOB_DAT 0000000000000000 _ITM_registerTMCloneTable + 0 - -Relocation section '.rela.plt' at offset 0x550 contains 4 entries: - Offset Info Type Symbol's Value Symbol's Name + Addend -0000000000010fa0 0000000300000402 R_AARCH64_JUMP_SLOT 0000000000000000 __libc_start_main@GLIBC_2.34 + 0 -0000000000010fa8 0000000500000402 R_AARCH64_JUMP_SLOT 0000000000000000 __cxa_finalize@GLIBC_2.17 + 0 -0000000000010fb0 0000000600000402 R_AARCH64_JUMP_SLOT 0000000000000000 __gmon_start__ + 0 -0000000000010fb8 0000000700000402 R_AARCH64_JUMP_SLOT 0000000000000000 abort@GLIBC_2.17 + 0 - -Symbol table '.dynsym' contains 9 entries: - Num: Value Size Type Bind Vis Ndx Name - 0: 0000000000000000 0 NOTYPE LOCAL DEFAULT UND - 1: 00000000000005b0 0 SECTION LOCAL DEFAULT 11 .init - 2: 0000000000011000 0 SECTION LOCAL DEFAULT 22 .data - 3: 0000000000000000 0 FUNC GLOBAL DEFAULT UND __libc_start_main@GLIBC_2.34 (2) - 4: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_deregisterTMCloneTable - 5: 0000000000000000 0 FUNC WEAK DEFAULT UND __cxa_finalize@GLIBC_2.17 (3) - 6: 0000000000000000 0 NOTYPE WEAK DEFAULT UND __gmon_start__ - 7: 0000000000000000 0 FUNC GLOBAL DEFAULT UND abort@GLIBC_2.17 (3) - 8: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_registerTMCloneTable - -Symbol table '.symtab' contains 89 entries: - Num: Value Size Type Bind Vis Ndx Name - 0: 0000000000000000 0 NOTYPE LOCAL DEFAULT UND - 1: 0000000000000238 0 SECTION LOCAL DEFAULT 1 .interp - 2: 0000000000000254 0 SECTION LOCAL DEFAULT 2 .note.gnu.build-id - 3: 0000000000000278 0 SECTION LOCAL DEFAULT 3 .note.ABI-tag - 4: 0000000000000298 0 SECTION LOCAL DEFAULT 4 .gnu.hash - 5: 00000000000002b8 0 SECTION LOCAL DEFAULT 5 .dynsym - 6: 0000000000000390 0 SECTION LOCAL DEFAULT 6 .dynstr - 7: 000000000000041e 0 SECTION LOCAL DEFAULT 7 .gnu.version - 8: 0000000000000430 0 SECTION LOCAL DEFAULT 8 .gnu.version_r - 9: 0000000000000460 0 SECTION LOCAL DEFAULT 9 .rela.dyn - 10: 0000000000000550 0 SECTION LOCAL DEFAULT 10 .rela.plt - 11: 00000000000005b0 0 SECTION LOCAL DEFAULT 11 .init - 12: 00000000000005d0 0 SECTION LOCAL DEFAULT 12 .plt - 13: 0000000000000640 0 SECTION LOCAL DEFAULT 13 .text - 14: 0000000000000778 0 SECTION LOCAL DEFAULT 14 .fini - 15: 000000000000078c 0 SECTION LOCAL DEFAULT 15 .rodata - 16: 0000000000000790 0 SECTION LOCAL DEFAULT 16 .eh_frame_hdr - 17: 00000000000007d0 0 SECTION LOCAL DEFAULT 17 .eh_frame - 18: 0000000000010d88 0 SECTION LOCAL DEFAULT 18 .init_array - 19: 0000000000010d90 0 SECTION LOCAL DEFAULT 19 .fini_array - 20: 0000000000010d98 0 SECTION LOCAL DEFAULT 20 .dynamic - 21: 0000000000010f88 0 SECTION LOCAL DEFAULT 21 .got - 22: 0000000000011000 0 SECTION LOCAL DEFAULT 22 .data - 23: 0000000000011010 0 SECTION LOCAL DEFAULT 23 .bss - 24: 0000000000000000 0 SECTION LOCAL DEFAULT 24 .comment - 25: 0000000000000000 0 FILE LOCAL DEFAULT ABS Scrt1.o - 26: 0000000000000278 0 NOTYPE LOCAL DEFAULT 3 $d - 27: 0000000000000278 32 OBJECT LOCAL DEFAULT 3 __abi_tag - 28: 0000000000000640 0 NOTYPE LOCAL DEFAULT 13 $x - 29: 00000000000007e4 0 NOTYPE LOCAL DEFAULT 17 $d - 30: 000000000000078c 0 NOTYPE LOCAL DEFAULT 15 $d - 31: 0000000000000000 0 FILE LOCAL DEFAULT ABS crti.o - 32: 0000000000000674 0 NOTYPE LOCAL DEFAULT 13 $x - 33: 0000000000000674 20 FUNC LOCAL DEFAULT 13 call_weak_fn - 34: 00000000000005b0 0 NOTYPE LOCAL DEFAULT 11 $x - 35: 0000000000000778 0 NOTYPE LOCAL DEFAULT 14 $x - 36: 0000000000000000 0 FILE LOCAL DEFAULT ABS crtn.o - 37: 00000000000005c0 0 NOTYPE LOCAL DEFAULT 11 $x - 38: 0000000000000784 0 NOTYPE LOCAL DEFAULT 14 $x - 39: 0000000000000000 0 FILE LOCAL DEFAULT ABS crtstuff.c - 40: 0000000000000690 0 NOTYPE LOCAL DEFAULT 13 $x - 41: 0000000000000690 0 FUNC LOCAL DEFAULT 13 deregister_tm_clones - 42: 00000000000006c0 0 FUNC LOCAL DEFAULT 13 register_tm_clones - 43: 0000000000011008 0 NOTYPE LOCAL DEFAULT 22 $d - 44: 0000000000000700 0 FUNC LOCAL DEFAULT 13 __do_global_dtors_aux - 45: 0000000000011010 1 OBJECT LOCAL DEFAULT 23 completed.0 - 46: 0000000000010d90 0 NOTYPE LOCAL DEFAULT 19 $d - 47: 0000000000010d90 0 OBJECT LOCAL DEFAULT 19 __do_global_dtors_aux_fini_array_entry - 48: 0000000000000750 0 FUNC LOCAL DEFAULT 13 frame_dummy - 49: 0000000000010d88 0 NOTYPE LOCAL DEFAULT 18 $d - 50: 0000000000010d88 0 OBJECT LOCAL DEFAULT 18 __frame_dummy_init_array_entry - 51: 00000000000007f8 0 NOTYPE LOCAL DEFAULT 17 $d - 52: 0000000000011010 0 NOTYPE LOCAL DEFAULT 23 $d - 53: 0000000000000000 0 FILE LOCAL DEFAULT ABS basic_lock_unlock.c - 54: 0000000000011014 0 NOTYPE LOCAL DEFAULT 23 $d - 55: 0000000000000754 0 NOTYPE LOCAL DEFAULT 13 $x - 56: 0000000000000858 0 NOTYPE LOCAL DEFAULT 17 $d - 57: 0000000000000000 0 FILE LOCAL DEFAULT ABS crtstuff.c - 58: 000000000000086c 0 NOTYPE LOCAL DEFAULT 17 $d - 59: 000000000000086c 0 OBJECT LOCAL DEFAULT 17 __FRAME_END__ - 60: 0000000000000000 0 FILE LOCAL DEFAULT ABS - 61: 0000000000010d98 0 OBJECT LOCAL DEFAULT ABS _DYNAMIC - 62: 0000000000000790 0 NOTYPE LOCAL DEFAULT 16 __GNU_EH_FRAME_HDR - 63: 0000000000010fc0 0 OBJECT LOCAL DEFAULT ABS _GLOBAL_OFFSET_TABLE_ - 64: 00000000000005d0 0 NOTYPE LOCAL DEFAULT 12 $x - 65: 0000000000000000 0 FUNC GLOBAL DEFAULT UND __libc_start_main@GLIBC_2.34 - 66: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_deregisterTMCloneTable - 67: 0000000000011000 0 NOTYPE WEAK DEFAULT 22 data_start - 68: 0000000000011010 0 NOTYPE GLOBAL DEFAULT 23 __bss_start__ - 69: 0000000000000000 0 FUNC WEAK DEFAULT UND __cxa_finalize@GLIBC_2.17 - 70: 0000000000011020 0 NOTYPE GLOBAL DEFAULT 23 _bss_end__ - 71: 0000000000011010 0 NOTYPE GLOBAL DEFAULT 22 _edata - 72: 0000000000011018 4 OBJECT GLOBAL DEFAULT 23 z - 73: 0000000000011014 4 OBJECT GLOBAL DEFAULT 23 x - 74: 0000000000000778 0 FUNC GLOBAL HIDDEN 14 _fini - 75: 0000000000011020 0 NOTYPE GLOBAL DEFAULT 23 __bss_end__ - 76: 0000000000011000 0 NOTYPE GLOBAL DEFAULT 22 __data_start - 77: 0000000000000000 0 NOTYPE WEAK DEFAULT UND __gmon_start__ - 78: 0000000000011008 0 OBJECT GLOBAL HIDDEN 22 __dso_handle - 79: 0000000000000000 0 FUNC GLOBAL DEFAULT UND abort@GLIBC_2.17 - 80: 000000000000078c 4 OBJECT GLOBAL DEFAULT 15 _IO_stdin_used - 81: 0000000000011020 0 NOTYPE GLOBAL DEFAULT 23 _end - 82: 0000000000000640 52 FUNC GLOBAL DEFAULT 13 _start - 83: 0000000000011020 0 NOTYPE GLOBAL DEFAULT 23 __end__ - 84: 0000000000011010 0 NOTYPE GLOBAL DEFAULT 23 __bss_start - 85: 0000000000000754 36 FUNC GLOBAL DEFAULT 13 main - 86: 0000000000011010 0 OBJECT GLOBAL HIDDEN 22 __TMC_END__ - 87: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_registerTMCloneTable - 88: 00000000000005b0 0 FUNC GLOBAL HIDDEN 11 _init diff --git a/src/test/correct/basic_lock_unlock/gcc_pic/basic_lock_unlock_gtirb.expected b/src/test/correct/basic_lock_unlock/gcc_pic/basic_lock_unlock_gtirb.expected index f82edc634..ed34f7f24 100644 --- a/src/test/correct/basic_lock_unlock/gcc_pic/basic_lock_unlock_gtirb.expected +++ b/src/test/correct/basic_lock_unlock/gcc_pic/basic_lock_unlock_gtirb.expected @@ -70,7 +70,7 @@ implementation {:extern} guarantee_reflexive() assert ((memory_load32_le(mem, $z_addr) == 0bv32) ==> ((memory_load32_le(mem, $x_addr) == memory_load32_le(mem, $x_addr)) && (memory_load32_le(mem, $z_addr) == memory_load32_le(mem, $z_addr)))); } -procedure main_1876(); +procedure main(); modifies Gamma_R0, Gamma_R1, Gamma_mem, R0, R1, mem; requires (memory_load32_le(mem, $z_addr) == 1bv32); free requires (memory_load64_le(mem, 69632bv64) == 0bv64); @@ -90,43 +90,43 @@ procedure main_1876(); free ensures (memory_load64_le(mem, 69616bv64) == 1876bv64); free ensures (memory_load64_le(mem, 69640bv64) == 69640bv64); -implementation main_1876() +implementation main() { - var Gamma_load8: bool; - var Gamma_load9: bool; - var load8: bv64; - var load9: bv64; + var $load8: bv64; + var $load9: bv64; + var Gamma_$load8: bool; + var Gamma_$load9: bool; var x_old: bv32; var z_old: bv32; - main_1876__0__hORBC0L8TymPxLxjwBXKWQ: - assume {:captureState "main_1876__0__hORBC0L8TymPxLxjwBXKWQ"} true; + $main$__0__$hORBC0L8TymPxLxjwBXKWQ: + assume {:captureState "$main$__0__$hORBC0L8TymPxLxjwBXKWQ"} true; R0, Gamma_R0 := 65536bv64, true; call rely(); - load8, Gamma_load8 := memory_load64_le(mem, bvadd64(R0, 4064bv64)), (gamma_load64(Gamma_mem, bvadd64(R0, 4064bv64)) || L(mem, bvadd64(R0, 4064bv64))); - R0, Gamma_R0 := load8, Gamma_load8; + $load8, Gamma_$load8 := memory_load64_le(mem, bvadd64(R0, 4064bv64)), (gamma_load64(Gamma_mem, bvadd64(R0, 4064bv64)) || L(mem, bvadd64(R0, 4064bv64))); + R0, Gamma_R0 := $load8, Gamma_$load8; R1, Gamma_R1 := 1bv64, true; call rely(); + assert (L(mem, R0) ==> Gamma_R1); x_old := memory_load32_le(mem, $x_addr); z_old := memory_load32_le(mem, $z_addr); - assert (L(mem, R0) ==> Gamma_R1); mem, Gamma_mem := memory_store32_le(mem, R0, R1[32:0]), gamma_store32(Gamma_mem, R0, Gamma_R1); assert ((z_old == 0bv32) ==> ((memory_load32_le(mem, $x_addr) == x_old) && (memory_load32_le(mem, $z_addr) == z_old))); - assume {:captureState "1888_0"} true; + assume {:captureState "1888$0"} true; R0, Gamma_R0 := 65536bv64, true; call rely(); - load9, Gamma_load9 := memory_load64_le(mem, bvadd64(R0, 4056bv64)), (gamma_load64(Gamma_mem, bvadd64(R0, 4056bv64)) || L(mem, bvadd64(R0, 4056bv64))); - R0, Gamma_R0 := load9, Gamma_load9; + $load9, Gamma_$load9 := memory_load64_le(mem, bvadd64(R0, 4056bv64)), (gamma_load64(Gamma_mem, bvadd64(R0, 4056bv64)) || L(mem, bvadd64(R0, 4056bv64))); + R0, Gamma_R0 := $load9, Gamma_$load9; call rely(); + assert (L(mem, R0) ==> true); x_old := memory_load32_le(mem, $x_addr); z_old := memory_load32_le(mem, $z_addr); - assert (L(mem, R0) ==> true); mem, Gamma_mem := memory_store32_le(mem, R0, 0bv32), gamma_store32(Gamma_mem, R0, true); assert ((z_old == 0bv32) ==> ((memory_load32_le(mem, $x_addr) == x_old) && (memory_load32_le(mem, $z_addr) == z_old))); - assume {:captureState "1900_0"} true; + assume {:captureState "1900$0"} true; R0, Gamma_R0 := 0bv64, true; - goto main_1876_basil_return; - main_1876_basil_return: - assume {:captureState "main_1876_basil_return"} true; + goto main_basil_return; + main_basil_return: + assume {:captureState "main_basil_return"} true; return; } diff --git a/src/test/correct/basic_loop_assign/clang/basic_loop_assign.adt b/src/test/correct/basic_loop_assign/clang/basic_loop_assign.adt deleted file mode 100644 index 89c3be8ed..000000000 --- a/src/test/correct/basic_loop_assign/clang/basic_loop_assign.adt +++ /dev/null @@ -1,492 +0,0 @@ -Project(Attrs([Attr("filename","\"clang/basic_loop_assign.out\""), -Attr("image-specification","(declare abi (name str))\n(declare arch (name str))\n(declare base-address (addr int))\n(declare bias (off int))\n(declare bits (size int))\n(declare code-region (addr int) (size int) (off int))\n(declare code-start (addr int))\n(declare entry-point (addr int))\n(declare external-reference (addr int) (name str))\n(declare format (name str))\n(declare is-executable (flag bool))\n(declare is-little-endian (flag bool))\n(declare llvm:base-address (addr int))\n(declare llvm:code-entry (name str) (off int) (size int))\n(declare llvm:coff-import-library (name str))\n(declare llvm:coff-virtual-section-header (name str) (addr int) (size int))\n(declare llvm:elf-program-header (name str) (off int) (size int))\n(declare llvm:elf-program-header-flags (name str) (ld bool) (r bool) \n (w bool) (x bool))\n(declare llvm:elf-virtual-program-header (name str) (addr int) (size int))\n(declare llvm:entry-point (addr int))\n(declare llvm:macho-symbol (name str) (value int))\n(declare llvm:name-reference (at int) (name str))\n(declare llvm:relocation (at int) (addr int))\n(declare llvm:section-entry (name str) (addr int) (size int) (off int))\n(declare llvm:section-flags (name str) (r bool) (w bool) (x bool))\n(declare llvm:segment-command (name str) (off int) (size int))\n(declare llvm:segment-command-flags (name str) (r bool) (w bool) (x bool))\n(declare llvm:symbol-entry (name str) (addr int) (size int) (off int)\n (value int))\n(declare llvm:virtual-segment-command (name str) (addr int) (size int))\n(declare mapped (addr int) (size int) (off int))\n(declare named-region (addr int) (size int) (name str))\n(declare named-symbol (addr int) (name str))\n(declare require (name str))\n(declare section (addr int) (size int))\n(declare segment (addr int) (size int) (r bool) (w bool) (x bool))\n(declare subarch (name str))\n(declare symbol-chunk (addr int) (size int) (root int))\n(declare symbol-value (addr int) (value int))\n(declare system (name str))\n(declare vendor (name str))\n\n(abi unknown)\n(arch aarch64)\n(base-address 0)\n(bias 0)\n(bits 64)\n(code-region 1832 20 1832)\n(code-region 1536 296 1536)\n(code-region 1440 96 1440)\n(code-region 1408 24 1408)\n(code-start 1588)\n(code-start 1536)\n(code-start 1812)\n(entry-point 1536)\n(external-reference 69568 _ITM_deregisterTMCloneTable)\n(external-reference 69576 __cxa_finalize)\n(external-reference 69584 __gmon_start__)\n(external-reference 69600 _ITM_registerTMCloneTable)\n(external-reference 69632 __libc_start_main)\n(external-reference 69640 __cxa_finalize)\n(external-reference 69648 __gmon_start__)\n(external-reference 69656 abort)\n(format elf)\n(is-executable true)\n(is-little-endian true)\n(llvm:base-address 0)\n(llvm:code-entry abort 0 0)\n(llvm:code-entry __cxa_finalize 0 0)\n(llvm:code-entry __libc_start_main 0 0)\n(llvm:code-entry _init 1408 0)\n(llvm:code-entry main 1812 20)\n(llvm:code-entry _start 1536 52)\n(llvm:code-entry abort@GLIBC_2.17 0 0)\n(llvm:code-entry _fini 1832 0)\n(llvm:code-entry __cxa_finalize@GLIBC_2.17 0 0)\n(llvm:code-entry __libc_start_main@GLIBC_2.34 0 0)\n(llvm:code-entry frame_dummy 1808 0)\n(llvm:code-entry __do_global_dtors_aux 1728 0)\n(llvm:code-entry register_tm_clones 1664 0)\n(llvm:code-entry deregister_tm_clones 1616 0)\n(llvm:code-entry call_weak_fn 1588 20)\n(llvm:code-entry .fini 1832 20)\n(llvm:code-entry .text 1536 296)\n(llvm:code-entry .plt 1440 96)\n(llvm:code-entry .init 1408 24)\n(llvm:elf-program-header 08 3528 568)\n(llvm:elf-program-header 07 0 0)\n(llvm:elf-program-header 06 1856 60)\n(llvm:elf-program-header 05 596 68)\n(llvm:elf-program-header 04 3544 480)\n(llvm:elf-program-header 03 3528 616)\n(llvm:elf-program-header 02 0 2100)\n(llvm:elf-program-header 01 568 27)\n(llvm:elf-program-header 00 64 504)\n(llvm:elf-program-header-flags 08 false true false false)\n(llvm:elf-program-header-flags 07 false true true false)\n(llvm:elf-program-header-flags 06 false true false false)\n(llvm:elf-program-header-flags 05 false true false false)\n(llvm:elf-program-header-flags 04 false true true false)\n(llvm:elf-program-header-flags 03 true true true false)\n(llvm:elf-program-header-flags 02 true true false true)\n(llvm:elf-program-header-flags 01 false true false false)\n(llvm:elf-program-header-flags 00 false true false false)\n(llvm:elf-virtual-program-header 08 69064 568)\n(llvm:elf-virtual-program-header 07 0 0)\n(llvm:elf-virtual-program-header 06 1856 60)\n(llvm:elf-virtual-program-header 05 596 68)\n(llvm:elf-virtual-program-header 04 69080 480)\n(llvm:elf-virtual-program-header 03 69064 624)\n(llvm:elf-virtual-program-header 02 0 2100)\n(llvm:elf-virtual-program-header 01 568 27)\n(llvm:elf-virtual-program-header 00 64 504)\n(llvm:entry-point 1536)\n(llvm:name-reference 69656 abort)\n(llvm:name-reference 69648 __gmon_start__)\n(llvm:name-reference 69640 __cxa_finalize)\n(llvm:name-reference 69632 __libc_start_main)\n(llvm:name-reference 69600 _ITM_registerTMCloneTable)\n(llvm:name-reference 69584 __gmon_start__)\n(llvm:name-reference 69576 __cxa_finalize)\n(llvm:name-reference 69568 _ITM_deregisterTMCloneTable)\n(llvm:section-entry .shstrtab 0 259 6949)\n(llvm:section-entry .strtab 0 573 6376)\n(llvm:section-entry .symtab 0 2160 4216)\n(llvm:section-entry .comment 0 71 4144)\n(llvm:section-entry .bss 69680 8 4144)\n(llvm:section-entry .data 69664 16 4128)\n(llvm:section-entry .got.plt 69608 56 4072)\n(llvm:section-entry .got 69560 48 4024)\n(llvm:section-entry .dynamic 69080 480 3544)\n(llvm:section-entry .fini_array 69072 8 3536)\n(llvm:section-entry .init_array 69064 8 3528)\n(llvm:section-entry .eh_frame 1920 180 1920)\n(llvm:section-entry .eh_frame_hdr 1856 60 1856)\n(llvm:section-entry .rodata 1852 4 1852)\n(llvm:section-entry .fini 1832 20 1832)\n(llvm:section-entry .text 1536 296 1536)\n(llvm:section-entry .plt 1440 96 1440)\n(llvm:section-entry .init 1408 24 1408)\n(llvm:section-entry .rela.plt 1312 96 1312)\n(llvm:section-entry .rela.dyn 1120 192 1120)\n(llvm:section-entry .gnu.version_r 1072 48 1072)\n(llvm:section-entry .gnu.version 1054 18 1054)\n(llvm:section-entry .dynstr 912 141 912)\n(llvm:section-entry .dynsym 696 216 696)\n(llvm:section-entry .gnu.hash 664 28 664)\n(llvm:section-entry .note.ABI-tag 632 32 632)\n(llvm:section-entry .note.gnu.build-id 596 36 596)\n(llvm:section-entry .interp 568 27 568)\n(llvm:section-flags .shstrtab true false false)\n(llvm:section-flags .strtab true false false)\n(llvm:section-flags .symtab true false false)\n(llvm:section-flags .comment true false false)\n(llvm:section-flags .bss true true false)\n(llvm:section-flags .data true true false)\n(llvm:section-flags .got.plt true true false)\n(llvm:section-flags .got true true false)\n(llvm:section-flags .dynamic true true false)\n(llvm:section-flags .fini_array true true false)\n(llvm:section-flags .init_array true true false)\n(llvm:section-flags .eh_frame true false false)\n(llvm:section-flags .eh_frame_hdr true false false)\n(llvm:section-flags .rodata true false false)\n(llvm:section-flags .fini true false true)\n(llvm:section-flags .text true false true)\n(llvm:section-flags .plt true false true)\n(llvm:section-flags .init true false true)\n(llvm:section-flags .rela.plt true false false)\n(llvm:section-flags .rela.dyn true false false)\n(llvm:section-flags .gnu.version_r true false false)\n(llvm:section-flags .gnu.version true false false)\n(llvm:section-flags .dynstr true false false)\n(llvm:section-flags .dynsym true false false)\n(llvm:section-flags .gnu.hash true false false)\n(llvm:section-flags .note.ABI-tag true false false)\n(llvm:section-flags .note.gnu.build-id true false false)\n(llvm:section-flags .interp true false false)\n(llvm:symbol-entry abort 0 0 0 0)\n(llvm:symbol-entry __cxa_finalize 0 0 0 0)\n(llvm:symbol-entry __libc_start_main 0 0 0 0)\n(llvm:symbol-entry _init 1408 0 1408 1408)\n(llvm:symbol-entry main 1812 20 1812 1812)\n(llvm:symbol-entry _start 1536 52 1536 1536)\n(llvm:symbol-entry abort@GLIBC_2.17 0 0 0 0)\n(llvm:symbol-entry _fini 1832 0 1832 1832)\n(llvm:symbol-entry __cxa_finalize@GLIBC_2.17 0 0 0 0)\n(llvm:symbol-entry __libc_start_main@GLIBC_2.34 0 0 0 0)\n(llvm:symbol-entry frame_dummy 1808 0 1808 1808)\n(llvm:symbol-entry __do_global_dtors_aux 1728 0 1728 1728)\n(llvm:symbol-entry register_tm_clones 1664 0 1664 1664)\n(llvm:symbol-entry deregister_tm_clones 1616 0 1616 1616)\n(llvm:symbol-entry call_weak_fn 1588 20 1588 1588)\n(mapped 0 2100 0)\n(mapped 69064 616 3528)\n(named-region 0 2100 02)\n(named-region 69064 624 03)\n(named-region 568 27 .interp)\n(named-region 596 36 .note.gnu.build-id)\n(named-region 632 32 .note.ABI-tag)\n(named-region 664 28 .gnu.hash)\n(named-region 696 216 .dynsym)\n(named-region 912 141 .dynstr)\n(named-region 1054 18 .gnu.version)\n(named-region 1072 48 .gnu.version_r)\n(named-region 1120 192 .rela.dyn)\n(named-region 1312 96 .rela.plt)\n(named-region 1408 24 .init)\n(named-region 1440 96 .plt)\n(named-region 1536 296 .text)\n(named-region 1832 20 .fini)\n(named-region 1852 4 .rodata)\n(named-region 1856 60 .eh_frame_hdr)\n(named-region 1920 180 .eh_frame)\n(named-region 69064 8 .init_array)\n(named-region 69072 8 .fini_array)\n(named-region 69080 480 .dynamic)\n(named-region 69560 48 .got)\n(named-region 69608 56 .got.plt)\n(named-region 69664 16 .data)\n(named-region 69680 8 .bss)\n(named-region 0 71 .comment)\n(named-region 0 2160 .symtab)\n(named-region 0 573 .strtab)\n(named-region 0 259 .shstrtab)\n(named-symbol 1588 call_weak_fn)\n(named-symbol 1616 deregister_tm_clones)\n(named-symbol 1664 register_tm_clones)\n(named-symbol 1728 __do_global_dtors_aux)\n(named-symbol 1808 frame_dummy)\n(named-symbol 0 __libc_start_main@GLIBC_2.34)\n(named-symbol 0 __cxa_finalize@GLIBC_2.17)\n(named-symbol 1832 _fini)\n(named-symbol 0 abort@GLIBC_2.17)\n(named-symbol 1536 _start)\n(named-symbol 1812 main)\n(named-symbol 1408 _init)\n(named-symbol 0 __libc_start_main)\n(named-symbol 0 __cxa_finalize)\n(named-symbol 0 abort)\n(require libc.so.6)\n(section 568 27)\n(section 596 36)\n(section 632 32)\n(section 664 28)\n(section 696 216)\n(section 912 141)\n(section 1054 18)\n(section 1072 48)\n(section 1120 192)\n(section 1312 96)\n(section 1408 24)\n(section 1440 96)\n(section 1536 296)\n(section 1832 20)\n(section 1852 4)\n(section 1856 60)\n(section 1920 180)\n(section 69064 8)\n(section 69072 8)\n(section 69080 480)\n(section 69560 48)\n(section 69608 56)\n(section 69664 16)\n(section 69680 8)\n(section 0 71)\n(section 0 2160)\n(section 0 573)\n(section 0 259)\n(segment 0 2100 true false true)\n(segment 69064 624 true true false)\n(subarch v8)\n(symbol-chunk 1588 20 1588)\n(symbol-chunk 1536 52 1536)\n(symbol-chunk 1812 20 1812)\n(symbol-value 1588 1588)\n(symbol-value 1616 1616)\n(symbol-value 1664 1664)\n(symbol-value 1728 1728)\n(symbol-value 1808 1808)\n(symbol-value 1832 1832)\n(symbol-value 1536 1536)\n(symbol-value 1812 1812)\n(symbol-value 1408 1408)\n(symbol-value 0 0)\n(system \"\")\n(vendor \"\")\n"), -Attr("abi-name","\"aarch64-linux-gnu-elf\"")]), -Sections([Section(".shstrtab", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x00\x06\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x28\x1c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x38\x00\x09\x00\x40\x00\x1d\x00\x1c\x00\x06\x00\x00\x00\x04\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x04\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x34\x08\x00\x00\x00\x00\x00\x00\x34\x08\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x01\x00\x00\x00\x06\x00\x00\x00\xc8\x0d\x00\x00\x00\x00\x00\x00\xc8\x0d\x01\x00\x00\x00\x00\x00\xc8\x0d\x01"), -Section(".strtab", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x00\x06\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x28\x1c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x38\x00\x09\x00\x40\x00\x1d\x00\x1c\x00\x06\x00\x00\x00\x04\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x04\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x34\x08\x00\x00\x00\x00\x00\x00\x34\x08\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x01\x00\x00\x00\x06\x00\x00\x00\xc8\x0d\x00\x00\x00\x00\x00\x00\xc8\x0d\x01\x00\x00\x00\x00\x00\xc8\x0d\x01\x00\x00\x00\x00\x00\x68\x02\x00\x00\x00\x00\x00\x00\x70\x02\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x02\x00\x00\x00\x06\x00\x00\x00\xd8\x0d\x00\x00\x00\x00\x00\x00\xd8\x0d\x01\x00\x00\x00\x00\x00\xd8\x0d\x01\x00\x00\x00\x00\x00\xe0\x01\x00\x00\x00\x00\x00\x00\xe0\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x04\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x50\xe5\x74\x64\x04\x00\x00\x00\x40\x07\x00\x00\x00\x00\x00\x00\x40\x07\x00\x00\x00\x00\x00\x00\x40\x07\x00\x00\x00\x00\x00\x00\x3c\x00\x00\x00\x00\x00\x00\x00\x3c\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x51\xe5\x74\x64\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x52\xe5\x74\x64\x04\x00\x00\x00\xc8\x0d\x00\x00\x00\x00\x00\x00\xc8\x0d\x01\x00\x00\x00\x00\x00\xc8\x0d\x01\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x2f\x6c\x69\x62\x2f"), -Section(".comment", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x00\x06\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x28\x1c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x38\x00\x09\x00\x40\x00\x1d\x00\x1c\x00\x06\x00\x00\x00\x04\x00\x00"), -Section(".interp", 0x238, "\x2f\x6c\x69\x62\x2f\x6c\x64\x2d\x6c\x69\x6e\x75\x78\x2d\x61\x61\x72\x63\x68\x36\x34\x2e\x73\x6f\x2e\x31\x00"), -Section(".note.gnu.build-id", 0x254, "\x04\x00\x00\x00\x14\x00\x00\x00\x03\x00\x00\x00\x47\x4e\x55\x00\x3a\x88\xc3\xcd\x13\xf6\xa1\x59\x0e\xb1\x1b\x21\xca\x1b\x0c\x3f\xe2\xe3\x0c\x70"), -Section(".note.ABI-tag", 0x278, "\x04\x00\x00\x00\x10\x00\x00\x00\x01\x00\x00\x00\x47\x4e\x55\x00\x00\x00\x00\x00\x03\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00"), -Section(".gnu.hash", 0x298, "\x01\x00\x00\x00\x01\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".dynsym", 0x2B8, "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x0b\x00\x80\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x17\x00\x20\x10\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x48\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x22\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x22\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x73\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".dynstr", 0x390, "\x00\x5f\x5f\x63\x78\x61\x5f\x66\x69\x6e\x61\x6c\x69\x7a\x65\x00\x5f\x5f\x6c\x69\x62\x63\x5f\x73\x74\x61\x72\x74\x5f\x6d\x61\x69\x6e\x00\x61\x62\x6f\x72\x74\x00\x6c\x69\x62\x63\x2e\x73\x6f\x2e\x36\x00\x47\x4c\x49\x42\x43\x5f\x32\x2e\x31\x37\x00\x47\x4c\x49\x42\x43\x5f\x32\x2e\x33\x34\x00\x5f\x49\x54\x4d\x5f\x64\x65\x72\x65\x67\x69\x73\x74\x65\x72\x54\x4d\x43\x6c\x6f\x6e\x65\x54\x61\x62\x6c\x65\x00\x5f\x5f\x67\x6d\x6f\x6e\x5f\x73\x74\x61\x72\x74\x5f\x5f\x00\x5f\x49\x54\x4d\x5f\x72\x65\x67\x69\x73\x74\x65\x72\x54\x4d\x43\x6c\x6f\x6e\x65\x54\x61\x62\x6c\x65\x00"), -Section(".gnu.version", 0x41E, "\x00\x00\x00\x00\x00\x00\x02\x00\x01\x00\x03\x00\x01\x00\x03\x00\x01\x00"), -Section(".gnu.version_r", 0x430, "\x01\x00\x02\x00\x28\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x97\x91\x96\x06\x00\x00\x03\x00\x32\x00\x00\x00\x10\x00\x00\x00\xb4\x91\x96\x06\x00\x00\x02\x00\x3d\x00\x00\x00\x00\x00\x00\x00"), -Section(".rela.dyn", 0x460, "\xc8\x0d\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x10\x07\x00\x00\x00\x00\x00\x00\xd0\x0d\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\xc0\x06\x00\x00\x00\x00\x00\x00\xd8\x0f\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x14\x07\x00\x00\x00\x00\x00\x00\x28\x10\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x28\x10\x01\x00\x00\x00\x00\x00\xc0\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xc8\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xd0\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe0\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".rela.plt", 0x520, "\x00\x10\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x08\x10\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x10\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x18\x10\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".init", 0x580, "\x1f\x20\x03\xd5\xfd\x7b\xbf\xa9\xfd\x03\x00\x91\x2a\x00\x00\x94\xfd\x7b\xc1\xa8\xc0\x03\x5f\xd6"), -Section(".plt", 0x5A0, "\xf0\x7b\xbf\xa9\x90\x00\x00\x90\x11\xfe\x47\xf9\x10\xe2\x3f\x91\x20\x02\x1f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x90\x00\x00\xb0\x11\x02\x40\xf9\x10\x02\x00\x91\x20\x02\x1f\xd6\x90\x00\x00\xb0\x11\x06\x40\xf9\x10\x22\x00\x91\x20\x02\x1f\xd6\x90\x00\x00\xb0\x11\x0a\x40\xf9\x10\x42\x00\x91\x20\x02\x1f\xd6\x90\x00\x00\xb0\x11\x0e\x40\xf9\x10\x62\x00\x91\x20\x02\x1f\xd6"), -Section(".text", 0x600, "\x1f\x20\x03\xd5\x1d\x00\x80\xd2\x1e\x00\x80\xd2\xe5\x03\x00\xaa\xe1\x03\x40\xf9\xe2\x23\x00\x91\xe6\x03\x00\x91\x80\x00\x00\x90\x00\xec\x47\xf9\x03\x00\x80\xd2\x04\x00\x80\xd2\xe5\xff\xff\x97\xf0\xff\xff\x97\x80\x00\x00\x90\x00\xe8\x47\xf9\x40\x00\x00\xb4\xe8\xff\xff\x17\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x80\x00\x00\xb0\x00\xc0\x00\x91\x81\x00\x00\xb0\x21\xc0\x00\x91\x3f\x00\x00\xeb\xc0\x00\x00\x54\x81\x00\x00\x90\x21\xe0\x47\xf9\x61\x00\x00\xb4\xf0\x03\x01\xaa\x00\x02\x1f\xd6\xc0\x03\x5f\xd6\x80\x00\x00\xb0\x00\xc0\x00\x91\x81\x00\x00\xb0\x21\xc0\x00\x91\x21\x00\x00\xcb\x22\xfc\x7f\xd3\x41\x0c\x81\x8b\x21\xfc\x41\x93\xc1\x00\x00\xb4\x82\x00\x00\x90\x42\xf0\x47\xf9\x62\x00\x00\xb4\xf0\x03\x02\xaa\x00\x02\x1f\xd6\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\xfd\x7b\xbe\xa9\xfd\x03\x00\x91\xf3\x0b\x00\xf9\x93\x00\x00\xb0\x60\xc2\x40\x39\x40\x01\x00\x35\x80\x00\x00\x90\x00\xe4\x47\xf9\x80\x00\x00\xb4\x80\x00\x00\xb0\x00\x14\x40\xf9\xb9\xff\xff\x97\xd8\xff\xff\x97\x20\x00\x80\x52\x60\xc2\x00\x39\xf3\x0b\x40\xf9\xfd\x7b\xc2\xa8\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\xdc\xff\xff\x17\x89\x00\x00\xb0\x88\x02\x80\x52\x28\x35\x00\xb9\xe0\x03\x1f\x2a\xc0\x03\x5f\xd6"), -Section(".fini", 0x728, "\x1f\x20\x03\xd5\xfd\x7b\xbf\xa9\xfd\x03\x00\x91\xfd\x7b\xc1\xa8\xc0\x03\x5f\xd6"), -Section(".rodata", 0x73C, "\x01\x00\x02\x00"), -Section(".eh_frame_hdr", 0x740, "\x01\x1b\x03\x3b\x3c\x00\x00\x00\x06\x00\x00\x00\xc0\xfe\xff\xff\x54\x00\x00\x00\x10\xff\xff\xff\x68\x00\x00\x00\x40\xff\xff\xff\x7c\x00\x00\x00\x80\xff\xff\xff\x90\x00\x00\x00\xd0\xff\xff\xff\xb4\x00\x00\x00\xd4\xff\xff\xff\xdc\x00\x00\x00"), -Section(".eh_frame", 0x780, "\x10\x00\x00\x00\x00\x00\x00\x00\x01\x7a\x52\x00\x04\x78\x1e\x01\x1b\x0c\x1f\x00\x10\x00\x00\x00\x18\x00\x00\x00\x64\xfe\xff\xff\x34\x00\x00\x00\x00\x41\x07\x1e\x10\x00\x00\x00\x2c\x00\x00\x00\xa0\xfe\xff\xff\x30\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x40\x00\x00\x00\xbc\xfe\xff\xff\x3c\x00\x00\x00\x00\x00\x00\x00\x20\x00\x00\x00\x54\x00\x00\x00\xe8\xfe\xff\xff\x48\x00\x00\x00\x00\x41\x0e\x20\x9d\x04\x9e\x03\x42\x93\x02\x4e\xde\xdd\xd3\x0e\x00\x00\x00\x00\x10\x00\x00\x00\x78\x00\x00\x00\x14\xff\xff\xff\x04\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x01\x7a\x52\x00\x01\x7c\x1e\x01\x1b\x0c\x1f\x00\x10\x00\x00\x00\x18\x00\x00\x00\xf0\xfe\xff\xff\x14\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".fini_array", 0x10DD0, "\xc0\x06\x00\x00\x00\x00\x00\x00"), -Section(".dynamic", 0x10DD8, "\x01\x00\x00\x00\x00\x00\x00\x00\x28\x00\x00\x00\x00\x00\x00\x00\x0c\x00\x00\x00\x00\x00\x00\x00\x80\x05\x00\x00\x00\x00\x00\x00\x0d\x00\x00\x00\x00\x00\x00\x00\x28\x07\x00\x00\x00\x00\x00\x00\x19\x00\x00\x00\x00\x00\x00\x00\xc8\x0d\x01\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x1a\x00\x00\x00\x00\x00\x00\x00\xd0\x0d\x01\x00\x00\x00\x00\x00\x1c\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\xf5\xfe\xff\x6f\x00\x00\x00\x00\x98\x02\x00\x00\x00\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x90\x03\x00\x00\x00\x00\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\xb8\x02\x00\x00\x00\x00\x00\x00\x0a\x00\x00\x00\x00\x00\x00\x00\x8d\x00\x00\x00\x00\x00\x00\x00\x0b\x00\x00\x00\x00\x00\x00\x00\x18\x00\x00\x00\x00\x00\x00\x00\x15\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\xe8\x0f\x01\x00\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x60\x00\x00\x00\x00\x00\x00\x00\x14\x00\x00\x00\x00\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x17\x00\x00\x00\x00\x00\x00\x00\x20\x05\x00\x00\x00\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x60\x04\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\xc0\x00\x00\x00\x00\x00\x00\x00\x09\x00\x00\x00\x00\x00\x00\x00\x18\x00\x00\x00\x00\x00\x00\x00\xfb\xff\xff\x6f\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\xfe\xff\xff\x6f\x00\x00\x00\x00\x30\x04\x00\x00\x00\x00\x00\x00\xff\xff\xff\x6f\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\xf0\xff\xff\x6f\x00\x00\x00\x00\x1e\x04\x00\x00\x00\x00\x00\x00\xf9\xff\xff\x6f\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".init_array", 0x10DC8, "\x10\x07\x00\x00\x00\x00\x00\x00"), -Section(".got", 0x10FB8, "\xd8\x0d\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x14\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".got.plt", 0x10FE8, "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xa0\x05\x00\x00\x00\x00\x00\x00\xa0\x05\x00\x00\x00\x00\x00\x00\xa0\x05\x00\x00\x00\x00\x00\x00\xa0\x05\x00\x00\x00\x00\x00\x00"), -Section(".data", 0x11020, "\x00\x00\x00\x00\x00\x00\x00\x00\x28\x10\x01\x00\x00\x00\x00\x00")]), -Memmap([Annotation(Region(0x0,0x833), Attr("segment","02 0 2100")), -Annotation(Region(0x600,0x633), Attr("symbol","\"_start\"")), -Annotation(Region(0x0,0x102), Attr("section","\".shstrtab\"")), -Annotation(Region(0x0,0x23C), Attr("section","\".strtab\"")), -Annotation(Region(0x0,0x46), Attr("section","\".comment\"")), -Annotation(Region(0x238,0x252), Attr("section","\".interp\"")), -Annotation(Region(0x254,0x277), Attr("section","\".note.gnu.build-id\"")), -Annotation(Region(0x278,0x297), Attr("section","\".note.ABI-tag\"")), -Annotation(Region(0x298,0x2B3), Attr("section","\".gnu.hash\"")), -Annotation(Region(0x2B8,0x38F), Attr("section","\".dynsym\"")), -Annotation(Region(0x390,0x41C), Attr("section","\".dynstr\"")), -Annotation(Region(0x41E,0x42F), Attr("section","\".gnu.version\"")), -Annotation(Region(0x430,0x45F), Attr("section","\".gnu.version_r\"")), -Annotation(Region(0x460,0x51F), Attr("section","\".rela.dyn\"")), -Annotation(Region(0x520,0x57F), Attr("section","\".rela.plt\"")), -Annotation(Region(0x580,0x597), Attr("section","\".init\"")), -Annotation(Region(0x5A0,0x5FF), Attr("section","\".plt\"")), -Annotation(Region(0x580,0x597), Attr("code-region","()")), -Annotation(Region(0x5A0,0x5FF), Attr("code-region","()")), -Annotation(Region(0x600,0x633), Attr("symbol-info","_start 0x600 52")), -Annotation(Region(0x634,0x647), Attr("symbol","\"call_weak_fn\"")), -Annotation(Region(0x634,0x647), Attr("symbol-info","call_weak_fn 0x634 20")), -Annotation(Region(0x600,0x727), Attr("section","\".text\"")), -Annotation(Region(0x600,0x727), Attr("code-region","()")), -Annotation(Region(0x714,0x727), Attr("symbol","\"main\"")), -Annotation(Region(0x714,0x727), Attr("symbol-info","main 0x714 20")), -Annotation(Region(0x728,0x73B), Attr("section","\".fini\"")), -Annotation(Region(0x728,0x73B), Attr("code-region","()")), -Annotation(Region(0x73C,0x73F), Attr("section","\".rodata\"")), -Annotation(Region(0x740,0x77B), Attr("section","\".eh_frame_hdr\"")), -Annotation(Region(0x780,0x833), Attr("section","\".eh_frame\"")), -Annotation(Region(0x10DC8,0x1102F), Attr("segment","03 0x10DC8 624")), -Annotation(Region(0x10DD0,0x10DD7), Attr("section","\".fini_array\"")), -Annotation(Region(0x10DD8,0x10FB7), Attr("section","\".dynamic\"")), -Annotation(Region(0x10DC8,0x10DCF), Attr("section","\".init_array\"")), -Annotation(Region(0x10FB8,0x10FE7), Attr("section","\".got\"")), -Annotation(Region(0x10FE8,0x1101F), Attr("section","\".got.plt\"")), -Annotation(Region(0x11020,0x1102F), Attr("section","\".data\""))]), -Program(Tid(1_417, "%00000589"), Attrs([]), - Subs([Sub(Tid(1_367, "@__cxa_finalize"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x5D0"), -Attr("stub","()")]), "__cxa_finalize", Args([Arg(Tid(1_418, "%0000058a"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("__cxa_finalize_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(785, "@__cxa_finalize"), - Attrs([Attr("address","0x5D0")]), Phis([]), -Defs([Def(Tid(1_033, "%00000409"), Attrs([Attr("address","0x5D0"), -Attr("insn","adrp x16, #69632")]), Var("R16",Imm(64)), Int(69632,64)), -Def(Tid(1_040, "%00000410"), Attrs([Attr("address","0x5D4"), -Attr("insn","ldr x17, [x16, #0x8]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(1_046, "%00000416"), Attrs([Attr("address","0x5D8"), -Attr("insn","add x16, x16, #0x8")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(8,64)))]), Jmps([Call(Tid(1_051, "%0000041b"), - Attrs([Attr("address","0x5DC"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), -Sub(Tid(1_368, "@__do_global_dtors_aux"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x6C0")]), - "__do_global_dtors_aux", Args([Arg(Tid(1_419, "%0000058b"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("__do_global_dtors_aux_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(610, "@__do_global_dtors_aux"), - Attrs([Attr("address","0x6C0")]), Phis([]), Defs([Def(Tid(614, "%00000266"), - Attrs([Attr("address","0x6C0"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("#3",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(18446744073709551584,64))), -Def(Tid(620, "%0000026c"), Attrs([Attr("address","0x6C0"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("#3",Imm(64)),Var("R29",Imm(64)),LittleEndian(),64)), -Def(Tid(626, "%00000272"), Attrs([Attr("address","0x6C0"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("#3",Imm(64)),Int(8,64)),Var("R30",Imm(64)),LittleEndian(),64)), -Def(Tid(630, "%00000276"), Attrs([Attr("address","0x6C0"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("R31",Imm(64)), -Var("#3",Imm(64))), Def(Tid(636, "%0000027c"), - Attrs([Attr("address","0x6C4"), Attr("insn","mov x29, sp")]), - Var("R29",Imm(64)), Var("R31",Imm(64))), Def(Tid(644, "%00000284"), - Attrs([Attr("address","0x6C8"), Attr("insn","str x19, [sp, #0x10]")]), - Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(16,64)),Var("R19",Imm(64)),LittleEndian(),64)), -Def(Tid(649, "%00000289"), Attrs([Attr("address","0x6CC"), -Attr("insn","adrp x19, #69632")]), Var("R19",Imm(64)), Int(69632,64)), -Def(Tid(656, "%00000290"), Attrs([Attr("address","0x6D0"), -Attr("insn","ldrb w0, [x19, #0x30]")]), Var("R0",Imm(64)), -UNSIGNED(64,Load(Var("mem",Mem(64,8)),PLUS(Var("R19",Imm(64)),Int(48,64)),LittleEndian(),8)))]), -Jmps([Goto(Tid(663, "%00000297"), Attrs([Attr("address","0x6D4"), -Attr("insn","cbnz w0, #0x28")]), - NEQ(Extract(31,0,Var("R0",Imm(64))),Int(0,32)), -Direct(Tid(661, "%00000295"))), Goto(Tid(1_407, "%0000057f"), Attrs([]), - Int(1,1), Direct(Tid(730, "%000002da")))])), Blk(Tid(730, "%000002da"), - Attrs([Attr("address","0x6D8")]), Phis([]), Defs([Def(Tid(733, "%000002dd"), - Attrs([Attr("address","0x6D8"), Attr("insn","adrp x0, #65536")]), - Var("R0",Imm(64)), Int(65536,64)), Def(Tid(740, "%000002e4"), - Attrs([Attr("address","0x6DC"), Attr("insn","ldr x0, [x0, #0xfc8]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(4040,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(746, "%000002ea"), Attrs([Attr("address","0x6E0"), -Attr("insn","cbz x0, #0x10")]), EQ(Var("R0",Imm(64)),Int(0,64)), -Direct(Tid(744, "%000002e8"))), Goto(Tid(1_408, "%00000580"), Attrs([]), - Int(1,1), Direct(Tid(769, "%00000301")))])), Blk(Tid(769, "%00000301"), - Attrs([Attr("address","0x6E4")]), Phis([]), Defs([Def(Tid(772, "%00000304"), - Attrs([Attr("address","0x6E4"), Attr("insn","adrp x0, #69632")]), - Var("R0",Imm(64)), Int(69632,64)), Def(Tid(779, "%0000030b"), - Attrs([Attr("address","0x6E8"), Attr("insn","ldr x0, [x0, #0x28]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(40,64)),LittleEndian(),64)), -Def(Tid(784, "%00000310"), Attrs([Attr("address","0x6EC"), -Attr("insn","bl #-0x11c")]), Var("R30",Imm(64)), Int(1776,64))]), -Jmps([Call(Tid(787, "%00000313"), Attrs([Attr("address","0x6EC"), -Attr("insn","bl #-0x11c")]), Int(1,1), -(Direct(Tid(1_367, "@__cxa_finalize")),Direct(Tid(744, "%000002e8"))))])), -Blk(Tid(744, "%000002e8"), Attrs([Attr("address","0x6F0")]), Phis([]), -Defs([Def(Tid(752, "%000002f0"), Attrs([Attr("address","0x6F0"), -Attr("insn","bl #-0xa0")]), Var("R30",Imm(64)), Int(1780,64))]), -Jmps([Call(Tid(754, "%000002f2"), Attrs([Attr("address","0x6F0"), -Attr("insn","bl #-0xa0")]), Int(1,1), -(Direct(Tid(1_381, "@deregister_tm_clones")),Direct(Tid(756, "%000002f4"))))])), -Blk(Tid(756, "%000002f4"), Attrs([Attr("address","0x6F4")]), Phis([]), -Defs([Def(Tid(759, "%000002f7"), Attrs([Attr("address","0x6F4"), -Attr("insn","mov w0, #0x1")]), Var("R0",Imm(64)), Int(1,64)), -Def(Tid(767, "%000002ff"), Attrs([Attr("address","0x6F8"), -Attr("insn","strb w0, [x19, #0x30]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R19",Imm(64)),Int(48,64)),Extract(7,0,Var("R0",Imm(64))),LittleEndian(),8))]), -Jmps([Goto(Tid(1_409, "%00000581"), Attrs([]), Int(1,1), -Direct(Tid(661, "%00000295")))])), Blk(Tid(661, "%00000295"), - Attrs([Attr("address","0x6FC")]), Phis([]), Defs([Def(Tid(671, "%0000029f"), - Attrs([Attr("address","0x6FC"), Attr("insn","ldr x19, [sp, #0x10]")]), - Var("R19",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(16,64)),LittleEndian(),64)), -Def(Tid(678, "%000002a6"), Attrs([Attr("address","0x700"), -Attr("insn","ldp x29, x30, [sp], #0x20")]), Var("R29",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(683, "%000002ab"), Attrs([Attr("address","0x700"), -Attr("insn","ldp x29, x30, [sp], #0x20")]), Var("R30",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(687, "%000002af"), Attrs([Attr("address","0x700"), -Attr("insn","ldp x29, x30, [sp], #0x20")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(32,64)))]), Jmps([Call(Tid(692, "%000002b4"), - Attrs([Attr("address","0x704"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), Sub(Tid(1_372, "@__libc_start_main"), - Attrs([Attr("c.proto","signed (*)(signed (*)(signed , char** , char** );* main, signed , char** , \nvoid* auxv)"), -Attr("address","0x5C0"), Attr("stub","()")]), "__libc_start_main", - Args([Arg(Tid(1_420, "%0000058c"), - Attrs([Attr("c.layout","**[ : 64]"), -Attr("c.data","Top:u64 ptr ptr"), -Attr("c.type","signed (*)(signed , char** , char** );*")]), - Var("__libc_start_main_main",Imm(64)), Var("R0",Imm(64)), In()), -Arg(Tid(1_421, "%0000058d"), Attrs([Attr("c.layout","[signed : 32]"), -Attr("c.data","Top:u32"), Attr("c.type","signed")]), - Var("__libc_start_main_arg2",Imm(32)), LOW(32,Var("R1",Imm(64))), In()), -Arg(Tid(1_422, "%0000058e"), Attrs([Attr("c.layout","**[char : 8]"), -Attr("c.data","Top:u8 ptr ptr"), Attr("c.type","char**")]), - Var("__libc_start_main_arg3",Imm(64)), Var("R2",Imm(64)), Both()), -Arg(Tid(1_423, "%0000058f"), Attrs([Attr("c.layout","*[ : 8]"), -Attr("c.data","{} ptr"), Attr("c.type","void*")]), - Var("__libc_start_main_auxv",Imm(64)), Var("R3",Imm(64)), Both()), -Arg(Tid(1_424, "%00000590"), Attrs([Attr("c.layout","[signed : 32]"), -Attr("c.data","Top:u32"), Attr("c.type","signed")]), - Var("__libc_start_main_result",Imm(32)), LOW(32,Var("R0",Imm(64))), -Out())]), Blks([Blk(Tid(443, "@__libc_start_main"), - Attrs([Attr("address","0x5C0")]), Phis([]), -Defs([Def(Tid(1_011, "%000003f3"), Attrs([Attr("address","0x5C0"), -Attr("insn","adrp x16, #69632")]), Var("R16",Imm(64)), Int(69632,64)), -Def(Tid(1_018, "%000003fa"), Attrs([Attr("address","0x5C4"), -Attr("insn","ldr x17, [x16]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R16",Imm(64)),LittleEndian(),64)), -Def(Tid(1_024, "%00000400"), Attrs([Attr("address","0x5C8"), -Attr("insn","add x16, x16, #0x0")]), Var("R16",Imm(64)), -Var("R16",Imm(64)))]), Jmps([Call(Tid(1_029, "%00000405"), - Attrs([Attr("address","0x5CC"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), Sub(Tid(1_373, "@_fini"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x728")]), - "_fini", Args([Arg(Tid(1_425, "%00000591"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("_fini_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(31, "@_fini"), - Attrs([Attr("address","0x728")]), Phis([]), Defs([Def(Tid(37, "%00000025"), - Attrs([Attr("address","0x72C"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("#0",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(18446744073709551600,64))), -Def(Tid(43, "%0000002b"), Attrs([Attr("address","0x72C"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("#0",Imm(64)),Var("R29",Imm(64)),LittleEndian(),64)), -Def(Tid(49, "%00000031"), Attrs([Attr("address","0x72C"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("#0",Imm(64)),Int(8,64)),Var("R30",Imm(64)),LittleEndian(),64)), -Def(Tid(53, "%00000035"), Attrs([Attr("address","0x72C"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("R31",Imm(64)), -Var("#0",Imm(64))), Def(Tid(59, "%0000003b"), Attrs([Attr("address","0x730"), -Attr("insn","mov x29, sp")]), Var("R29",Imm(64)), Var("R31",Imm(64))), -Def(Tid(66, "%00000042"), Attrs([Attr("address","0x734"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R29",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(71, "%00000047"), Attrs([Attr("address","0x734"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R30",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(75, "%0000004b"), Attrs([Attr("address","0x734"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(16,64)))]), Jmps([Call(Tid(80, "%00000050"), - Attrs([Attr("address","0x738"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), Sub(Tid(1_374, "@_init"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x580")]), - "_init", Args([Arg(Tid(1_426, "%00000592"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("_init_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(1_204, "@_init"), - Attrs([Attr("address","0x580")]), Phis([]), -Defs([Def(Tid(1_210, "%000004ba"), Attrs([Attr("address","0x584"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("#5",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(18446744073709551600,64))), -Def(Tid(1_216, "%000004c0"), Attrs([Attr("address","0x584"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("#5",Imm(64)),Var("R29",Imm(64)),LittleEndian(),64)), -Def(Tid(1_222, "%000004c6"), Attrs([Attr("address","0x584"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("#5",Imm(64)),Int(8,64)),Var("R30",Imm(64)),LittleEndian(),64)), -Def(Tid(1_226, "%000004ca"), Attrs([Attr("address","0x584"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("R31",Imm(64)), -Var("#5",Imm(64))), Def(Tid(1_232, "%000004d0"), - Attrs([Attr("address","0x588"), Attr("insn","mov x29, sp")]), - Var("R29",Imm(64)), Var("R31",Imm(64))), Def(Tid(1_237, "%000004d5"), - Attrs([Attr("address","0x58C"), Attr("insn","bl #0xa8")]), - Var("R30",Imm(64)), Int(1424,64))]), Jmps([Call(Tid(1_239, "%000004d7"), - Attrs([Attr("address","0x58C"), Attr("insn","bl #0xa8")]), Int(1,1), -(Direct(Tid(1_379, "@call_weak_fn")),Direct(Tid(1_241, "%000004d9"))))])), -Blk(Tid(1_241, "%000004d9"), Attrs([Attr("address","0x590")]), Phis([]), -Defs([Def(Tid(1_246, "%000004de"), Attrs([Attr("address","0x590"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R29",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(1_251, "%000004e3"), Attrs([Attr("address","0x590"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R30",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(1_255, "%000004e7"), Attrs([Attr("address","0x590"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(16,64)))]), Jmps([Call(Tid(1_260, "%000004ec"), - Attrs([Attr("address","0x594"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), Sub(Tid(1_375, "@_start"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x600"), -Attr("stub","()"), Attr("entry-point","()")]), "_start", - Args([Arg(Tid(1_427, "%00000593"), Attrs([Attr("c.layout","[signed : 32]"), -Attr("c.data","Top:u32"), Attr("c.type","signed")]), - Var("_start_result",Imm(32)), LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(380, "@_start"), Attrs([Attr("address","0x600")]), Phis([]), -Defs([Def(Tid(385, "%00000181"), Attrs([Attr("address","0x604"), -Attr("insn","mov x29, #0x0")]), Var("R29",Imm(64)), Int(0,64)), -Def(Tid(390, "%00000186"), Attrs([Attr("address","0x608"), -Attr("insn","mov x30, #0x0")]), Var("R30",Imm(64)), Int(0,64)), -Def(Tid(396, "%0000018c"), Attrs([Attr("address","0x60C"), -Attr("insn","mov x5, x0")]), Var("R5",Imm(64)), Var("R0",Imm(64))), -Def(Tid(403, "%00000193"), Attrs([Attr("address","0x610"), -Attr("insn","ldr x1, [sp]")]), Var("R1",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(409, "%00000199"), Attrs([Attr("address","0x614"), -Attr("insn","add x2, sp, #0x8")]), Var("R2",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(8,64))), Def(Tid(415, "%0000019f"), - Attrs([Attr("address","0x618"), Attr("insn","mov x6, sp")]), - Var("R6",Imm(64)), Var("R31",Imm(64))), Def(Tid(420, "%000001a4"), - Attrs([Attr("address","0x61C"), Attr("insn","adrp x0, #65536")]), - Var("R0",Imm(64)), Int(65536,64)), Def(Tid(427, "%000001ab"), - Attrs([Attr("address","0x620"), Attr("insn","ldr x0, [x0, #0xfd8]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(4056,64)),LittleEndian(),64)), -Def(Tid(432, "%000001b0"), Attrs([Attr("address","0x624"), -Attr("insn","mov x3, #0x0")]), Var("R3",Imm(64)), Int(0,64)), -Def(Tid(437, "%000001b5"), Attrs([Attr("address","0x628"), -Attr("insn","mov x4, #0x0")]), Var("R4",Imm(64)), Int(0,64)), -Def(Tid(442, "%000001ba"), Attrs([Attr("address","0x62C"), -Attr("insn","bl #-0x6c")]), Var("R30",Imm(64)), Int(1584,64))]), -Jmps([Call(Tid(445, "%000001bd"), Attrs([Attr("address","0x62C"), -Attr("insn","bl #-0x6c")]), Int(1,1), -(Direct(Tid(1_372, "@__libc_start_main")),Direct(Tid(447, "%000001bf"))))])), -Blk(Tid(447, "%000001bf"), Attrs([Attr("address","0x630")]), Phis([]), -Defs([Def(Tid(450, "%000001c2"), Attrs([Attr("address","0x630"), -Attr("insn","bl #-0x40")]), Var("R30",Imm(64)), Int(1588,64))]), -Jmps([Call(Tid(453, "%000001c5"), Attrs([Attr("address","0x630"), -Attr("insn","bl #-0x40")]), Int(1,1), -(Direct(Tid(1_378, "@abort")),Direct(Tid(1_410, "%00000582"))))])), -Blk(Tid(1_410, "%00000582"), Attrs([]), Phis([]), Defs([]), -Jmps([Call(Tid(1_411, "%00000583"), Attrs([]), Int(1,1), -(Direct(Tid(1_379, "@call_weak_fn")),))]))])), Sub(Tid(1_378, "@abort"), - Attrs([Attr("noreturn","()"), Attr("c.proto","void (*)(void)"), -Attr("address","0x5F0"), Attr("stub","()")]), "abort", Args([]), -Blks([Blk(Tid(451, "@abort"), Attrs([Attr("address","0x5F0")]), Phis([]), -Defs([Def(Tid(1_077, "%00000435"), Attrs([Attr("address","0x5F0"), -Attr("insn","adrp x16, #69632")]), Var("R16",Imm(64)), Int(69632,64)), -Def(Tid(1_084, "%0000043c"), Attrs([Attr("address","0x5F4"), -Attr("insn","ldr x17, [x16, #0x18]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(24,64)),LittleEndian(),64)), -Def(Tid(1_090, "%00000442"), Attrs([Attr("address","0x5F8"), -Attr("insn","add x16, x16, #0x18")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(24,64)))]), Jmps([Call(Tid(1_095, "%00000447"), - Attrs([Attr("address","0x5FC"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), Sub(Tid(1_379, "@call_weak_fn"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x634")]), - "call_weak_fn", Args([Arg(Tid(1_428, "%00000594"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("call_weak_fn_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(455, "@call_weak_fn"), - Attrs([Attr("address","0x634")]), Phis([]), Defs([Def(Tid(458, "%000001ca"), - Attrs([Attr("address","0x634"), Attr("insn","adrp x0, #65536")]), - Var("R0",Imm(64)), Int(65536,64)), Def(Tid(465, "%000001d1"), - Attrs([Attr("address","0x638"), Attr("insn","ldr x0, [x0, #0xfd0]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(4048,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(471, "%000001d7"), Attrs([Attr("address","0x63C"), -Attr("insn","cbz x0, #0x8")]), EQ(Var("R0",Imm(64)),Int(0,64)), -Direct(Tid(469, "%000001d5"))), Goto(Tid(1_412, "%00000584"), Attrs([]), - Int(1,1), Direct(Tid(849, "%00000351")))])), Blk(Tid(469, "%000001d5"), - Attrs([Attr("address","0x644")]), Phis([]), Defs([]), -Jmps([Call(Tid(477, "%000001dd"), Attrs([Attr("address","0x644"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))])), -Blk(Tid(849, "%00000351"), Attrs([Attr("address","0x640")]), Phis([]), -Defs([]), Jmps([Goto(Tid(852, "%00000354"), Attrs([Attr("address","0x640"), -Attr("insn","b #-0x60")]), Int(1,1), Direct(Tid(850, "@__gmon_start__")))])), -Blk(Tid(850, "@__gmon_start__"), Attrs([Attr("address","0x5E0")]), Phis([]), -Defs([Def(Tid(1_055, "%0000041f"), Attrs([Attr("address","0x5E0"), -Attr("insn","adrp x16, #69632")]), Var("R16",Imm(64)), Int(69632,64)), -Def(Tid(1_062, "%00000426"), Attrs([Attr("address","0x5E4"), -Attr("insn","ldr x17, [x16, #0x10]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(16,64)),LittleEndian(),64)), -Def(Tid(1_068, "%0000042c"), Attrs([Attr("address","0x5E8"), -Attr("insn","add x16, x16, #0x10")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(16,64)))]), Jmps([Call(Tid(1_073, "%00000431"), - Attrs([Attr("address","0x5EC"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), -Sub(Tid(1_381, "@deregister_tm_clones"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x650")]), - "deregister_tm_clones", Args([Arg(Tid(1_429, "%00000595"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("deregister_tm_clones_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(483, "@deregister_tm_clones"), - Attrs([Attr("address","0x650")]), Phis([]), Defs([Def(Tid(486, "%000001e6"), - Attrs([Attr("address","0x650"), Attr("insn","adrp x0, #69632")]), - Var("R0",Imm(64)), Int(69632,64)), Def(Tid(492, "%000001ec"), - Attrs([Attr("address","0x654"), Attr("insn","add x0, x0, #0x30")]), - Var("R0",Imm(64)), PLUS(Var("R0",Imm(64)),Int(48,64))), -Def(Tid(497, "%000001f1"), Attrs([Attr("address","0x658"), -Attr("insn","adrp x1, #69632")]), Var("R1",Imm(64)), Int(69632,64)), -Def(Tid(503, "%000001f7"), Attrs([Attr("address","0x65C"), -Attr("insn","add x1, x1, #0x30")]), Var("R1",Imm(64)), -PLUS(Var("R1",Imm(64)),Int(48,64))), Def(Tid(509, "%000001fd"), - Attrs([Attr("address","0x660"), Attr("insn","cmp x1, x0")]), - Var("#1",Imm(64)), NOT(Var("R0",Imm(64)))), Def(Tid(514, "%00000202"), - Attrs([Attr("address","0x660"), Attr("insn","cmp x1, x0")]), - Var("#2",Imm(64)), PLUS(Var("R1",Imm(64)),NOT(Var("R0",Imm(64))))), -Def(Tid(520, "%00000208"), Attrs([Attr("address","0x660"), -Attr("insn","cmp x1, x0")]), Var("VF",Imm(1)), -NEQ(SIGNED(65,PLUS(Var("#2",Imm(64)),Int(1,64))),PLUS(PLUS(SIGNED(65,Var("R1",Imm(64))),SIGNED(65,Var("#1",Imm(64)))),Int(1,65)))), -Def(Tid(526, "%0000020e"), Attrs([Attr("address","0x660"), -Attr("insn","cmp x1, x0")]), Var("CF",Imm(1)), -NEQ(UNSIGNED(65,PLUS(Var("#2",Imm(64)),Int(1,64))),PLUS(PLUS(UNSIGNED(65,Var("R1",Imm(64))),UNSIGNED(65,Var("#1",Imm(64)))),Int(1,65)))), -Def(Tid(530, "%00000212"), Attrs([Attr("address","0x660"), -Attr("insn","cmp x1, x0")]), Var("ZF",Imm(1)), -EQ(PLUS(Var("#2",Imm(64)),Int(1,64)),Int(0,64))), Def(Tid(534, "%00000216"), - Attrs([Attr("address","0x660"), Attr("insn","cmp x1, x0")]), - Var("NF",Imm(1)), Extract(63,63,PLUS(Var("#2",Imm(64)),Int(1,64))))]), -Jmps([Goto(Tid(540, "%0000021c"), Attrs([Attr("address","0x664"), -Attr("insn","b.eq #0x18")]), EQ(Var("ZF",Imm(1)),Int(1,1)), -Direct(Tid(538, "%0000021a"))), Goto(Tid(1_413, "%00000585"), Attrs([]), - Int(1,1), Direct(Tid(819, "%00000333")))])), Blk(Tid(819, "%00000333"), - Attrs([Attr("address","0x668")]), Phis([]), Defs([Def(Tid(822, "%00000336"), - Attrs([Attr("address","0x668"), Attr("insn","adrp x1, #65536")]), - Var("R1",Imm(64)), Int(65536,64)), Def(Tid(829, "%0000033d"), - Attrs([Attr("address","0x66C"), Attr("insn","ldr x1, [x1, #0xfc0]")]), - Var("R1",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R1",Imm(64)),Int(4032,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(834, "%00000342"), Attrs([Attr("address","0x670"), -Attr("insn","cbz x1, #0xc")]), EQ(Var("R1",Imm(64)),Int(0,64)), -Direct(Tid(538, "%0000021a"))), Goto(Tid(1_414, "%00000586"), Attrs([]), - Int(1,1), Direct(Tid(838, "%00000346")))])), Blk(Tid(538, "%0000021a"), - Attrs([Attr("address","0x67C")]), Phis([]), Defs([]), -Jmps([Call(Tid(546, "%00000222"), Attrs([Attr("address","0x67C"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))])), -Blk(Tid(838, "%00000346"), Attrs([Attr("address","0x674")]), Phis([]), -Defs([Def(Tid(842, "%0000034a"), Attrs([Attr("address","0x674"), -Attr("insn","mov x16, x1")]), Var("R16",Imm(64)), Var("R1",Imm(64)))]), -Jmps([Call(Tid(847, "%0000034f"), Attrs([Attr("address","0x678"), -Attr("insn","br x16")]), Int(1,1), (Indirect(Var("R16",Imm(64))),))]))])), -Sub(Tid(1_384, "@frame_dummy"), Attrs([Attr("c.proto","signed (*)(void)"), -Attr("address","0x710")]), "frame_dummy", Args([Arg(Tid(1_430, "%00000596"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("frame_dummy_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(698, "@frame_dummy"), - Attrs([Attr("address","0x710")]), Phis([]), Defs([]), -Jmps([Call(Tid(700, "%000002bc"), Attrs([Attr("address","0x710"), -Attr("insn","b #-0x90")]), Int(1,1), -(Direct(Tid(1_386, "@register_tm_clones")),))]))])), Sub(Tid(1_385, "@main"), - Attrs([Attr("c.proto","signed (*)(signed argc, const char** argv)"), -Attr("address","0x714")]), "main", Args([Arg(Tid(1_431, "%00000597"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("main_argc",Imm(32)), -LOW(32,Var("R0",Imm(64))), In()), Arg(Tid(1_432, "%00000598"), - Attrs([Attr("c.layout","**[char : 8]"), Attr("c.data","Top:u8 ptr ptr"), -Attr("c.type"," const char**")]), Var("main_argv",Imm(64)), -Var("R1",Imm(64)), Both()), Arg(Tid(1_433, "%00000599"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("main_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(702, "@main"), - Attrs([Attr("address","0x714")]), Phis([]), Defs([Def(Tid(705, "%000002c1"), - Attrs([Attr("address","0x714"), Attr("insn","adrp x9, #69632")]), - Var("R9",Imm(64)), Int(69632,64)), Def(Tid(710, "%000002c6"), - Attrs([Attr("address","0x718"), Attr("insn","mov w8, #0x14")]), - Var("R8",Imm(64)), Int(20,64)), Def(Tid(718, "%000002ce"), - Attrs([Attr("address","0x71C"), Attr("insn","str w8, [x9, #0x34]")]), - Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R9",Imm(64)),Int(52,64)),Extract(31,0,Var("R8",Imm(64))),LittleEndian(),32)), -Def(Tid(723, "%000002d3"), Attrs([Attr("address","0x720"), -Attr("insn","mov w0, wzr")]), Var("R0",Imm(64)), Int(0,64))]), -Jmps([Call(Tid(728, "%000002d8"), Attrs([Attr("address","0x724"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))]))])), -Sub(Tid(1_386, "@register_tm_clones"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x680")]), - "register_tm_clones", Args([Arg(Tid(1_434, "%0000059a"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("register_tm_clones_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(548, "@register_tm_clones"), Attrs([Attr("address","0x680")]), - Phis([]), Defs([Def(Tid(551, "%00000227"), Attrs([Attr("address","0x680"), -Attr("insn","adrp x0, #69632")]), Var("R0",Imm(64)), Int(69632,64)), -Def(Tid(557, "%0000022d"), Attrs([Attr("address","0x684"), -Attr("insn","add x0, x0, #0x30")]), Var("R0",Imm(64)), -PLUS(Var("R0",Imm(64)),Int(48,64))), Def(Tid(562, "%00000232"), - Attrs([Attr("address","0x688"), Attr("insn","adrp x1, #69632")]), - Var("R1",Imm(64)), Int(69632,64)), Def(Tid(568, "%00000238"), - Attrs([Attr("address","0x68C"), Attr("insn","add x1, x1, #0x30")]), - Var("R1",Imm(64)), PLUS(Var("R1",Imm(64)),Int(48,64))), -Def(Tid(575, "%0000023f"), Attrs([Attr("address","0x690"), -Attr("insn","sub x1, x1, x0")]), Var("R1",Imm(64)), -PLUS(PLUS(Var("R1",Imm(64)),NOT(Var("R0",Imm(64)))),Int(1,64))), -Def(Tid(581, "%00000245"), Attrs([Attr("address","0x694"), -Attr("insn","lsr x2, x1, #63")]), Var("R2",Imm(64)), -Concat(Int(0,63),Extract(63,63,Var("R1",Imm(64))))), -Def(Tid(588, "%0000024c"), Attrs([Attr("address","0x698"), -Attr("insn","add x1, x2, x1, asr #3")]), Var("R1",Imm(64)), -PLUS(Var("R2",Imm(64)),ARSHIFT(Var("R1",Imm(64)),Int(3,3)))), -Def(Tid(594, "%00000252"), Attrs([Attr("address","0x69C"), -Attr("insn","asr x1, x1, #1")]), Var("R1",Imm(64)), -SIGNED(64,Extract(63,1,Var("R1",Imm(64)))))]), -Jmps([Goto(Tid(600, "%00000258"), Attrs([Attr("address","0x6A0"), -Attr("insn","cbz x1, #0x18")]), EQ(Var("R1",Imm(64)),Int(0,64)), -Direct(Tid(598, "%00000256"))), Goto(Tid(1_415, "%00000587"), Attrs([]), - Int(1,1), Direct(Tid(789, "%00000315")))])), Blk(Tid(789, "%00000315"), - Attrs([Attr("address","0x6A4")]), Phis([]), Defs([Def(Tid(792, "%00000318"), - Attrs([Attr("address","0x6A4"), Attr("insn","adrp x2, #65536")]), - Var("R2",Imm(64)), Int(65536,64)), Def(Tid(799, "%0000031f"), - Attrs([Attr("address","0x6A8"), Attr("insn","ldr x2, [x2, #0xfe0]")]), - Var("R2",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R2",Imm(64)),Int(4064,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(804, "%00000324"), Attrs([Attr("address","0x6AC"), -Attr("insn","cbz x2, #0xc")]), EQ(Var("R2",Imm(64)),Int(0,64)), -Direct(Tid(598, "%00000256"))), Goto(Tid(1_416, "%00000588"), Attrs([]), - Int(1,1), Direct(Tid(808, "%00000328")))])), Blk(Tid(598, "%00000256"), - Attrs([Attr("address","0x6B8")]), Phis([]), Defs([]), -Jmps([Call(Tid(606, "%0000025e"), Attrs([Attr("address","0x6B8"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))])), -Blk(Tid(808, "%00000328"), Attrs([Attr("address","0x6B0")]), Phis([]), -Defs([Def(Tid(812, "%0000032c"), Attrs([Attr("address","0x6B0"), -Attr("insn","mov x16, x2")]), Var("R16",Imm(64)), Var("R2",Imm(64)))]), -Jmps([Call(Tid(817, "%00000331"), Attrs([Attr("address","0x6B4"), -Attr("insn","br x16")]), Int(1,1), -(Indirect(Var("R16",Imm(64))),))]))]))]))) \ No newline at end of file diff --git a/src/test/correct/basic_loop_assign/clang/basic_loop_assign.bir b/src/test/correct/basic_loop_assign/clang/basic_loop_assign.bir deleted file mode 100644 index 3475de9c7..000000000 --- a/src/test/correct/basic_loop_assign/clang/basic_loop_assign.bir +++ /dev/null @@ -1,227 +0,0 @@ -00000589: program -00000557: sub __cxa_finalize(__cxa_finalize_result) -0000058a: __cxa_finalize_result :: out u32 = low:32[R0] - -00000311: -00000409: R16 := 0x11000 -00000410: R17 := mem[R16 + 8, el]:u64 -00000416: R16 := R16 + 8 -0000041b: call R17 with noreturn - -00000558: sub __do_global_dtors_aux(__do_global_dtors_aux_result) -0000058b: __do_global_dtors_aux_result :: out u32 = low:32[R0] - -00000262: -00000266: #3 := R31 - 0x20 -0000026c: mem := mem with [#3, el]:u64 <- R29 -00000272: mem := mem with [#3 + 8, el]:u64 <- R30 -00000276: R31 := #3 -0000027c: R29 := R31 -00000284: mem := mem with [R31 + 0x10, el]:u64 <- R19 -00000289: R19 := 0x11000 -00000290: R0 := pad:64[mem[R19 + 0x30]] -00000297: when 31:0[R0] <> 0 goto %00000295 -0000057f: goto %000002da - -000002da: -000002dd: R0 := 0x10000 -000002e4: R0 := mem[R0 + 0xFC8, el]:u64 -000002ea: when R0 = 0 goto %000002e8 -00000580: goto %00000301 - -00000301: -00000304: R0 := 0x11000 -0000030b: R0 := mem[R0 + 0x28, el]:u64 -00000310: R30 := 0x6F0 -00000313: call @__cxa_finalize with return %000002e8 - -000002e8: -000002f0: R30 := 0x6F4 -000002f2: call @deregister_tm_clones with return %000002f4 - -000002f4: -000002f7: R0 := 1 -000002ff: mem := mem with [R19 + 0x30] <- 7:0[R0] -00000581: goto %00000295 - -00000295: -0000029f: R19 := mem[R31 + 0x10, el]:u64 -000002a6: R29 := mem[R31, el]:u64 -000002ab: R30 := mem[R31 + 8, el]:u64 -000002af: R31 := R31 + 0x20 -000002b4: call R30 with noreturn - -0000055c: sub __libc_start_main(__libc_start_main_main, __libc_start_main_arg2, __libc_start_main_arg3, __libc_start_main_auxv, __libc_start_main_result) -0000058c: __libc_start_main_main :: in u64 = R0 -0000058d: __libc_start_main_arg2 :: in u32 = low:32[R1] -0000058e: __libc_start_main_arg3 :: in out u64 = R2 -0000058f: __libc_start_main_auxv :: in out u64 = R3 -00000590: __libc_start_main_result :: out u32 = low:32[R0] - -000001bb: -000003f3: R16 := 0x11000 -000003fa: R17 := mem[R16, el]:u64 -00000400: R16 := R16 -00000405: call R17 with noreturn - -0000055d: sub _fini(_fini_result) -00000591: _fini_result :: out u32 = low:32[R0] - -0000001f: -00000025: #0 := R31 - 0x10 -0000002b: mem := mem with [#0, el]:u64 <- R29 -00000031: mem := mem with [#0 + 8, el]:u64 <- R30 -00000035: R31 := #0 -0000003b: R29 := R31 -00000042: R29 := mem[R31, el]:u64 -00000047: R30 := mem[R31 + 8, el]:u64 -0000004b: R31 := R31 + 0x10 -00000050: call R30 with noreturn - -0000055e: sub _init(_init_result) -00000592: _init_result :: out u32 = low:32[R0] - -000004b4: -000004ba: #5 := R31 - 0x10 -000004c0: mem := mem with [#5, el]:u64 <- R29 -000004c6: mem := mem with [#5 + 8, el]:u64 <- R30 -000004ca: R31 := #5 -000004d0: R29 := R31 -000004d5: R30 := 0x590 -000004d7: call @call_weak_fn with return %000004d9 - -000004d9: -000004de: R29 := mem[R31, el]:u64 -000004e3: R30 := mem[R31 + 8, el]:u64 -000004e7: R31 := R31 + 0x10 -000004ec: call R30 with noreturn - -0000055f: sub _start(_start_result) -00000593: _start_result :: out u32 = low:32[R0] - -0000017c: -00000181: R29 := 0 -00000186: R30 := 0 -0000018c: R5 := R0 -00000193: R1 := mem[R31, el]:u64 -00000199: R2 := R31 + 8 -0000019f: R6 := R31 -000001a4: R0 := 0x10000 -000001ab: R0 := mem[R0 + 0xFD8, el]:u64 -000001b0: R3 := 0 -000001b5: R4 := 0 -000001ba: R30 := 0x630 -000001bd: call @__libc_start_main with return %000001bf - -000001bf: -000001c2: R30 := 0x634 -000001c5: call @abort with return %00000582 - -00000582: -00000583: call @call_weak_fn with noreturn - -00000562: sub abort() - - -000001c3: -00000435: R16 := 0x11000 -0000043c: R17 := mem[R16 + 0x18, el]:u64 -00000442: R16 := R16 + 0x18 -00000447: call R17 with noreturn - -00000563: sub call_weak_fn(call_weak_fn_result) -00000594: call_weak_fn_result :: out u32 = low:32[R0] - -000001c7: -000001ca: R0 := 0x10000 -000001d1: R0 := mem[R0 + 0xFD0, el]:u64 -000001d7: when R0 = 0 goto %000001d5 -00000584: goto %00000351 - -000001d5: -000001dd: call R30 with noreturn - -00000351: -00000354: goto @__gmon_start__ - -00000352: -0000041f: R16 := 0x11000 -00000426: R17 := mem[R16 + 0x10, el]:u64 -0000042c: R16 := R16 + 0x10 -00000431: call R17 with noreturn - -00000565: sub deregister_tm_clones(deregister_tm_clones_result) -00000595: deregister_tm_clones_result :: out u32 = low:32[R0] - -000001e3: -000001e6: R0 := 0x11000 -000001ec: R0 := R0 + 0x30 -000001f1: R1 := 0x11000 -000001f7: R1 := R1 + 0x30 -000001fd: #1 := ~R0 -00000202: #2 := R1 + ~R0 -00000208: VF := extend:65[#2 + 1] <> extend:65[R1] + extend:65[#1] + 1 -0000020e: CF := pad:65[#2 + 1] <> pad:65[R1] + pad:65[#1] + 1 -00000212: ZF := #2 + 1 = 0 -00000216: NF := 63:63[#2 + 1] -0000021c: when ZF goto %0000021a -00000585: goto %00000333 - -00000333: -00000336: R1 := 0x10000 -0000033d: R1 := mem[R1 + 0xFC0, el]:u64 -00000342: when R1 = 0 goto %0000021a -00000586: goto %00000346 - -0000021a: -00000222: call R30 with noreturn - -00000346: -0000034a: R16 := R1 -0000034f: call R16 with noreturn - -00000568: sub frame_dummy(frame_dummy_result) -00000596: frame_dummy_result :: out u32 = low:32[R0] - -000002ba: -000002bc: call @register_tm_clones with noreturn - -00000569: sub main(main_argc, main_argv, main_result) -00000597: main_argc :: in u32 = low:32[R0] -00000598: main_argv :: in out u64 = R1 -00000599: main_result :: out u32 = low:32[R0] - -000002be: -000002c1: R9 := 0x11000 -000002c6: R8 := 0x14 -000002ce: mem := mem with [R9 + 0x34, el]:u32 <- 31:0[R8] -000002d3: R0 := 0 -000002d8: call R30 with noreturn - -0000056a: sub register_tm_clones(register_tm_clones_result) -0000059a: register_tm_clones_result :: out u32 = low:32[R0] - -00000224: -00000227: R0 := 0x11000 -0000022d: R0 := R0 + 0x30 -00000232: R1 := 0x11000 -00000238: R1 := R1 + 0x30 -0000023f: R1 := R1 + ~R0 + 1 -00000245: R2 := 0.63:63[R1] -0000024c: R1 := R2 + (R1 ~>> 3) -00000252: R1 := extend:64[63:1[R1]] -00000258: when R1 = 0 goto %00000256 -00000587: goto %00000315 - -00000315: -00000318: R2 := 0x10000 -0000031f: R2 := mem[R2 + 0xFE0, el]:u64 -00000324: when R2 = 0 goto %00000256 -00000588: goto %00000328 - -00000256: -0000025e: call R30 with noreturn - -00000328: -0000032c: R16 := R2 -00000331: call R16 with noreturn diff --git a/src/test/correct/basic_loop_assign/clang/basic_loop_assign.expected b/src/test/correct/basic_loop_assign/clang/basic_loop_assign.expected index c8e213005..a18e26193 100644 --- a/src/test/correct/basic_loop_assign/clang/basic_loop_assign.expected +++ b/src/test/correct/basic_loop_assign/clang/basic_loop_assign.expected @@ -7,7 +7,7 @@ var {:extern} R8: bv64; var {:extern} R9: bv64; var {:extern} mem: [bv64]bv8; const {:extern} $x_addr: bv64; -axiom ($x_addr == 69684bv64); +axiom ($x_addr == 131092bv64); function {:extern} L(mem$in: [bv64]bv8, index: bv64) returns (bool) { (if (index == $x_addr) then true else false) } @@ -15,6 +15,10 @@ function {:extern} L(mem$in: [bv64]bv8, index: bv64) returns (bool) { function {:extern} {:bvbuiltin "bvadd"} bvadd64(bv64, bv64) returns (bv64); function {:extern} {:bvbuiltin "bvsle"} bvsle32(bv32, bv32) returns (bool); function {:extern} {:bvbuiltin "bvslt"} bvslt32(bv32, bv32) returns (bool); +function {:extern} gamma_load64(gammaMap: [bv64]bool, index: bv64) returns (bool) { + (gammaMap[bvadd64(index, 7bv64)] && (gammaMap[bvadd64(index, 6bv64)] && (gammaMap[bvadd64(index, 5bv64)] && (gammaMap[bvadd64(index, 4bv64)] && (gammaMap[bvadd64(index, 3bv64)] && (gammaMap[bvadd64(index, 2bv64)] && (gammaMap[bvadd64(index, 1bv64)] && gammaMap[index]))))))) +} + function {:extern} gamma_store32(gammaMap: [bv64]bool, index: bv64, value: bool) returns ([bv64]bool) { gammaMap[index := value][bvadd64(index, 1bv64) := value][bvadd64(index, 2bv64) := value][bvadd64(index, 3bv64) := value] } @@ -35,11 +39,12 @@ procedure {:extern} rely(); modifies Gamma_mem, mem; ensures (forall i: bv64 :: (((mem[i] == old(mem[i])) ==> (Gamma_mem[i] == old(Gamma_mem[i]))))); ensures (((memory_load32_le(mem, $x_addr) == old(memory_load32_le(mem, $x_addr))) || (bvsle32(memory_load32_le(mem, $x_addr), 10bv32) && bvslt32(old(memory_load32_le(mem, $x_addr)), 10bv32))) || ((memory_load32_le(mem, $x_addr) == 21bv32) && (old(memory_load32_le(mem, $x_addr)) == 20bv32))); - free ensures (memory_load32_le(mem, 1852bv64) == 131073bv32); - free ensures (memory_load64_le(mem, 69064bv64) == 1808bv64); - free ensures (memory_load64_le(mem, 69072bv64) == 1728bv64); - free ensures (memory_load64_le(mem, 69592bv64) == 1812bv64); - free ensures (memory_load64_le(mem, 69672bv64) == 69672bv64); + free ensures (memory_load32_le(mem, 2304bv64) == 131073bv32); + free ensures (memory_load64_le(mem, 130432bv64) == 2256bv64); + free ensures (memory_load64_le(mem, 130440bv64) == 2176bv64); + free ensures (memory_load64_le(mem, 131040bv64) == 131092bv64); + free ensures (memory_load64_le(mem, 131056bv64) == 2260bv64); + free ensures (memory_load64_le(mem, 131080bv64) == 131080bv64); procedure {:extern} rely_transitive(); modifies Gamma_mem, mem; @@ -66,40 +71,47 @@ implementation {:extern} guarantee_reflexive() assert (((memory_load32_le(mem, $x_addr) == memory_load32_le(mem, $x_addr)) || ((memory_load32_le(mem, $x_addr) == 20bv32) && (memory_load32_le(mem, $x_addr) == 0bv32))) || ((memory_load32_le(mem, $x_addr) == 20bv32) && bvsle32(memory_load32_le(mem, $x_addr), 10bv32))); } -procedure main_1812(); +procedure main(); modifies Gamma_R0, Gamma_R8, Gamma_R9, Gamma_mem, R0, R8, R9, mem; requires (memory_load32_le(mem, $x_addr) == 0bv32); - free requires (memory_load64_le(mem, 69664bv64) == 0bv64); - free requires (memory_load64_le(mem, 69672bv64) == 69672bv64); - free requires (memory_load32_le(mem, 1852bv64) == 131073bv32); - free requires (memory_load64_le(mem, 69064bv64) == 1808bv64); - free requires (memory_load64_le(mem, 69072bv64) == 1728bv64); - free requires (memory_load64_le(mem, 69592bv64) == 1812bv64); - free requires (memory_load64_le(mem, 69672bv64) == 69672bv64); + free requires (memory_load64_le(mem, 131072bv64) == 0bv64); + free requires (memory_load64_le(mem, 131080bv64) == 131080bv64); + free requires (memory_load32_le(mem, 2304bv64) == 131073bv32); + free requires (memory_load64_le(mem, 130432bv64) == 2256bv64); + free requires (memory_load64_le(mem, 130440bv64) == 2176bv64); + free requires (memory_load64_le(mem, 131040bv64) == 131092bv64); + free requires (memory_load64_le(mem, 131056bv64) == 2260bv64); + free requires (memory_load64_le(mem, 131080bv64) == 131080bv64); ensures ((memory_load32_le(mem, $x_addr) == 20bv32) || (memory_load32_le(mem, $x_addr) == 21bv32)); - free ensures (memory_load32_le(mem, 1852bv64) == 131073bv32); - free ensures (memory_load64_le(mem, 69064bv64) == 1808bv64); - free ensures (memory_load64_le(mem, 69072bv64) == 1728bv64); - free ensures (memory_load64_le(mem, 69592bv64) == 1812bv64); - free ensures (memory_load64_le(mem, 69672bv64) == 69672bv64); + free ensures (memory_load32_le(mem, 2304bv64) == 131073bv32); + free ensures (memory_load64_le(mem, 130432bv64) == 2256bv64); + free ensures (memory_load64_le(mem, 130440bv64) == 2176bv64); + free ensures (memory_load64_le(mem, 131040bv64) == 131092bv64); + free ensures (memory_load64_le(mem, 131056bv64) == 2260bv64); + free ensures (memory_load64_le(mem, 131080bv64) == 131080bv64); -implementation main_1812() +implementation main() { + var $load$18: bv64; + var Gamma_$load$18: bool; var x_old: bv32; lmain: assume {:captureState "lmain"} true; - R9, Gamma_R9 := 69632bv64, true; - R8, Gamma_R8 := 20bv64, true; + R8, Gamma_R8 := 126976bv64, true; + R9, Gamma_R9 := 20bv64, true; + R0, Gamma_R0 := 0bv64, true; call rely(); + $load$18, Gamma_$load$18 := memory_load64_le(mem, bvadd64(R8, 4064bv64)), (gamma_load64(Gamma_mem, bvadd64(R8, 4064bv64)) || L(mem, bvadd64(R8, 4064bv64))); + R8, Gamma_R8 := $load$18, Gamma_$load$18; + call rely(); + assert (L(mem, R8) ==> Gamma_R9); x_old := memory_load32_le(mem, $x_addr); - assert (L(mem, bvadd64(R9, 52bv64)) ==> Gamma_R8); - mem, Gamma_mem := memory_store32_le(mem, bvadd64(R9, 52bv64), R8[32:0]), gamma_store32(Gamma_mem, bvadd64(R9, 52bv64), Gamma_R8); + mem, Gamma_mem := memory_store32_le(mem, R8, R9[32:0]), gamma_store32(Gamma_mem, R8, Gamma_R9); assert (((memory_load32_le(mem, $x_addr) == x_old) || ((memory_load32_le(mem, $x_addr) == 20bv32) && (x_old == 0bv32))) || ((memory_load32_le(mem, $x_addr) == 20bv32) && bvsle32(x_old, 10bv32))); - assume {:captureState "%000002ce"} true; - R0, Gamma_R0 := 0bv64, true; - goto main_1812_basil_return; - main_1812_basil_return: - assume {:captureState "main_1812_basil_return"} true; + assume {:captureState "%0000028c"} true; + goto main_basil_return; + main_basil_return: + assume {:captureState "main_basil_return"} true; return; } diff --git a/src/test/correct/basic_loop_assign/clang/basic_loop_assign.gts b/src/test/correct/basic_loop_assign/clang/basic_loop_assign.gts deleted file mode 100644 index c78c5a478..000000000 Binary files a/src/test/correct/basic_loop_assign/clang/basic_loop_assign.gts and /dev/null differ diff --git a/src/test/correct/basic_loop_assign/clang/basic_loop_assign.md5sum b/src/test/correct/basic_loop_assign/clang/basic_loop_assign.md5sum new file mode 100644 index 000000000..47df0152d --- /dev/null +++ b/src/test/correct/basic_loop_assign/clang/basic_loop_assign.md5sum @@ -0,0 +1,5 @@ +599aa766bbae5c5476350369a953d045 correct/basic_loop_assign/clang/a.out +4a14e42f7d41ef53d98570c43324db4b correct/basic_loop_assign/clang/basic_loop_assign.adt +4660ad3f86fab6ee9148b2a7b8f87672 correct/basic_loop_assign/clang/basic_loop_assign.bir +c673dcfc0a126de47387f9c24dcb7faa correct/basic_loop_assign/clang/basic_loop_assign.relf +98c16039dc78465233512616df1a1e05 correct/basic_loop_assign/clang/basic_loop_assign.gts diff --git a/src/test/correct/basic_loop_assign/clang/basic_loop_assign.relf b/src/test/correct/basic_loop_assign/clang/basic_loop_assign.relf deleted file mode 100644 index 438ac9abd..000000000 --- a/src/test/correct/basic_loop_assign/clang/basic_loop_assign.relf +++ /dev/null @@ -1,123 +0,0 @@ - -Relocation section '.rela.dyn' at offset 0x460 contains 8 entries: - Offset Info Type Symbol's Value Symbol's Name + Addend -0000000000010dc8 0000000000000403 R_AARCH64_RELATIVE 710 -0000000000010dd0 0000000000000403 R_AARCH64_RELATIVE 6c0 -0000000000010fd8 0000000000000403 R_AARCH64_RELATIVE 714 -0000000000011028 0000000000000403 R_AARCH64_RELATIVE 11028 -0000000000010fc0 0000000400000401 R_AARCH64_GLOB_DAT 0000000000000000 _ITM_deregisterTMCloneTable + 0 -0000000000010fc8 0000000500000401 R_AARCH64_GLOB_DAT 0000000000000000 __cxa_finalize@GLIBC_2.17 + 0 -0000000000010fd0 0000000600000401 R_AARCH64_GLOB_DAT 0000000000000000 __gmon_start__ + 0 -0000000000010fe0 0000000800000401 R_AARCH64_GLOB_DAT 0000000000000000 _ITM_registerTMCloneTable + 0 - -Relocation section '.rela.plt' at offset 0x520 contains 4 entries: - Offset Info Type Symbol's Value Symbol's Name + Addend -0000000000011000 0000000300000402 R_AARCH64_JUMP_SLOT 0000000000000000 __libc_start_main@GLIBC_2.34 + 0 -0000000000011008 0000000500000402 R_AARCH64_JUMP_SLOT 0000000000000000 __cxa_finalize@GLIBC_2.17 + 0 -0000000000011010 0000000600000402 R_AARCH64_JUMP_SLOT 0000000000000000 __gmon_start__ + 0 -0000000000011018 0000000700000402 R_AARCH64_JUMP_SLOT 0000000000000000 abort@GLIBC_2.17 + 0 - -Symbol table '.dynsym' contains 9 entries: - Num: Value Size Type Bind Vis Ndx Name - 0: 0000000000000000 0 NOTYPE LOCAL DEFAULT UND - 1: 0000000000000580 0 SECTION LOCAL DEFAULT 11 .init - 2: 0000000000011020 0 SECTION LOCAL DEFAULT 23 .data - 3: 0000000000000000 0 FUNC GLOBAL DEFAULT UND __libc_start_main@GLIBC_2.34 (2) - 4: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_deregisterTMCloneTable - 5: 0000000000000000 0 FUNC WEAK DEFAULT UND __cxa_finalize@GLIBC_2.17 (3) - 6: 0000000000000000 0 NOTYPE WEAK DEFAULT UND __gmon_start__ - 7: 0000000000000000 0 FUNC GLOBAL DEFAULT UND abort@GLIBC_2.17 (3) - 8: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_registerTMCloneTable - -Symbol table '.symtab' contains 90 entries: - Num: Value Size Type Bind Vis Ndx Name - 0: 0000000000000000 0 NOTYPE LOCAL DEFAULT UND - 1: 0000000000000238 0 SECTION LOCAL DEFAULT 1 .interp - 2: 0000000000000254 0 SECTION LOCAL DEFAULT 2 .note.gnu.build-id - 3: 0000000000000278 0 SECTION LOCAL DEFAULT 3 .note.ABI-tag - 4: 0000000000000298 0 SECTION LOCAL DEFAULT 4 .gnu.hash - 5: 00000000000002b8 0 SECTION LOCAL DEFAULT 5 .dynsym - 6: 0000000000000390 0 SECTION LOCAL DEFAULT 6 .dynstr - 7: 000000000000041e 0 SECTION LOCAL DEFAULT 7 .gnu.version - 8: 0000000000000430 0 SECTION LOCAL DEFAULT 8 .gnu.version_r - 9: 0000000000000460 0 SECTION LOCAL DEFAULT 9 .rela.dyn - 10: 0000000000000520 0 SECTION LOCAL DEFAULT 10 .rela.plt - 11: 0000000000000580 0 SECTION LOCAL DEFAULT 11 .init - 12: 00000000000005a0 0 SECTION LOCAL DEFAULT 12 .plt - 13: 0000000000000600 0 SECTION LOCAL DEFAULT 13 .text - 14: 0000000000000728 0 SECTION LOCAL DEFAULT 14 .fini - 15: 000000000000073c 0 SECTION LOCAL DEFAULT 15 .rodata - 16: 0000000000000740 0 SECTION LOCAL DEFAULT 16 .eh_frame_hdr - 17: 0000000000000780 0 SECTION LOCAL DEFAULT 17 .eh_frame - 18: 0000000000010dc8 0 SECTION LOCAL DEFAULT 18 .init_array - 19: 0000000000010dd0 0 SECTION LOCAL DEFAULT 19 .fini_array - 20: 0000000000010dd8 0 SECTION LOCAL DEFAULT 20 .dynamic - 21: 0000000000010fb8 0 SECTION LOCAL DEFAULT 21 .got - 22: 0000000000010fe8 0 SECTION LOCAL DEFAULT 22 .got.plt - 23: 0000000000011020 0 SECTION LOCAL DEFAULT 23 .data - 24: 0000000000011030 0 SECTION LOCAL DEFAULT 24 .bss - 25: 0000000000000000 0 SECTION LOCAL DEFAULT 25 .comment - 26: 0000000000000000 0 FILE LOCAL DEFAULT ABS Scrt1.o - 27: 0000000000000278 0 NOTYPE LOCAL DEFAULT 3 $d - 28: 0000000000000278 32 OBJECT LOCAL DEFAULT 3 __abi_tag - 29: 0000000000000600 0 NOTYPE LOCAL DEFAULT 13 $x - 30: 0000000000000794 0 NOTYPE LOCAL DEFAULT 17 $d - 31: 000000000000073c 0 NOTYPE LOCAL DEFAULT 15 $d - 32: 0000000000000000 0 FILE LOCAL DEFAULT ABS crti.o - 33: 0000000000000634 0 NOTYPE LOCAL DEFAULT 13 $x - 34: 0000000000000634 20 FUNC LOCAL DEFAULT 13 call_weak_fn - 35: 0000000000000580 0 NOTYPE LOCAL DEFAULT 11 $x - 36: 0000000000000728 0 NOTYPE LOCAL DEFAULT 14 $x - 37: 0000000000000000 0 FILE LOCAL DEFAULT ABS crtn.o - 38: 0000000000000590 0 NOTYPE LOCAL DEFAULT 11 $x - 39: 0000000000000734 0 NOTYPE LOCAL DEFAULT 14 $x - 40: 0000000000000000 0 FILE LOCAL DEFAULT ABS crtstuff.c - 41: 0000000000000650 0 NOTYPE LOCAL DEFAULT 13 $x - 42: 0000000000000650 0 FUNC LOCAL DEFAULT 13 deregister_tm_clones - 43: 0000000000000680 0 FUNC LOCAL DEFAULT 13 register_tm_clones - 44: 0000000000011028 0 NOTYPE LOCAL DEFAULT 23 $d - 45: 00000000000006c0 0 FUNC LOCAL DEFAULT 13 __do_global_dtors_aux - 46: 0000000000011030 1 OBJECT LOCAL DEFAULT 24 completed.0 - 47: 0000000000010dd0 0 NOTYPE LOCAL DEFAULT 19 $d - 48: 0000000000010dd0 0 OBJECT LOCAL DEFAULT 19 __do_global_dtors_aux_fini_array_entry - 49: 0000000000000710 0 FUNC LOCAL DEFAULT 13 frame_dummy - 50: 0000000000010dc8 0 NOTYPE LOCAL DEFAULT 18 $d - 51: 0000000000010dc8 0 OBJECT LOCAL DEFAULT 18 __frame_dummy_init_array_entry - 52: 00000000000007a8 0 NOTYPE LOCAL DEFAULT 17 $d - 53: 0000000000011030 0 NOTYPE LOCAL DEFAULT 24 $d - 54: 0000000000000000 0 FILE LOCAL DEFAULT ABS basic_loop_assign.c - 55: 0000000000000714 0 NOTYPE LOCAL DEFAULT 13 $x.0 - 56: 0000000000011034 0 NOTYPE LOCAL DEFAULT 24 $d.1 - 57: 000000000000002a 0 NOTYPE LOCAL DEFAULT 25 $d.2 - 58: 0000000000000808 0 NOTYPE LOCAL DEFAULT 17 $d.3 - 59: 0000000000000000 0 FILE LOCAL DEFAULT ABS crtstuff.c - 60: 0000000000000830 0 NOTYPE LOCAL DEFAULT 17 $d - 61: 0000000000000830 0 OBJECT LOCAL DEFAULT 17 __FRAME_END__ - 62: 0000000000000000 0 FILE LOCAL DEFAULT ABS - 63: 0000000000010dd8 0 OBJECT LOCAL DEFAULT ABS _DYNAMIC - 64: 0000000000000740 0 NOTYPE LOCAL DEFAULT 16 __GNU_EH_FRAME_HDR - 65: 0000000000010fb8 0 OBJECT LOCAL DEFAULT ABS _GLOBAL_OFFSET_TABLE_ - 66: 00000000000005a0 0 NOTYPE LOCAL DEFAULT 12 $x - 67: 0000000000000000 0 FUNC GLOBAL DEFAULT UND __libc_start_main@GLIBC_2.34 - 68: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_deregisterTMCloneTable - 69: 0000000000011020 0 NOTYPE WEAK DEFAULT 23 data_start - 70: 0000000000011030 0 NOTYPE GLOBAL DEFAULT 24 __bss_start__ - 71: 0000000000000000 0 FUNC WEAK DEFAULT UND __cxa_finalize@GLIBC_2.17 - 72: 0000000000011038 0 NOTYPE GLOBAL DEFAULT 24 _bss_end__ - 73: 0000000000011030 0 NOTYPE GLOBAL DEFAULT 23 _edata - 74: 0000000000011034 4 OBJECT GLOBAL DEFAULT 24 x - 75: 0000000000000728 0 FUNC GLOBAL HIDDEN 14 _fini - 76: 0000000000011038 0 NOTYPE GLOBAL DEFAULT 24 __bss_end__ - 77: 0000000000011020 0 NOTYPE GLOBAL DEFAULT 23 __data_start - 78: 0000000000000000 0 NOTYPE WEAK DEFAULT UND __gmon_start__ - 79: 0000000000011028 0 OBJECT GLOBAL HIDDEN 23 __dso_handle - 80: 0000000000000000 0 FUNC GLOBAL DEFAULT UND abort@GLIBC_2.17 - 81: 000000000000073c 4 OBJECT GLOBAL DEFAULT 15 _IO_stdin_used - 82: 0000000000011038 0 NOTYPE GLOBAL DEFAULT 24 _end - 83: 0000000000000600 52 FUNC GLOBAL DEFAULT 13 _start - 84: 0000000000011038 0 NOTYPE GLOBAL DEFAULT 24 __end__ - 85: 0000000000011030 0 NOTYPE GLOBAL DEFAULT 24 __bss_start - 86: 0000000000000714 20 FUNC GLOBAL DEFAULT 13 main - 87: 0000000000011030 0 OBJECT GLOBAL HIDDEN 23 __TMC_END__ - 88: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_registerTMCloneTable - 89: 0000000000000580 0 FUNC GLOBAL HIDDEN 11 _init diff --git a/src/test/correct/basic_loop_assign/clang/basic_loop_assign_gtirb.expected b/src/test/correct/basic_loop_assign/clang/basic_loop_assign_gtirb.expected index f8bc880e9..c294b6b10 100644 --- a/src/test/correct/basic_loop_assign/clang/basic_loop_assign_gtirb.expected +++ b/src/test/correct/basic_loop_assign/clang/basic_loop_assign_gtirb.expected @@ -7,7 +7,7 @@ var {:extern} R8: bv64; var {:extern} R9: bv64; var {:extern} mem: [bv64]bv8; const {:extern} $x_addr: bv64; -axiom ($x_addr == 69684bv64); +axiom ($x_addr == 131092bv64); function {:extern} L(mem$in: [bv64]bv8, index: bv64) returns (bool) { (if (index == $x_addr) then true else false) } @@ -15,6 +15,10 @@ function {:extern} L(mem$in: [bv64]bv8, index: bv64) returns (bool) { function {:extern} {:bvbuiltin "bvadd"} bvadd64(bv64, bv64) returns (bv64); function {:extern} {:bvbuiltin "bvsle"} bvsle32(bv32, bv32) returns (bool); function {:extern} {:bvbuiltin "bvslt"} bvslt32(bv32, bv32) returns (bool); +function {:extern} gamma_load64(gammaMap: [bv64]bool, index: bv64) returns (bool) { + (gammaMap[bvadd64(index, 7bv64)] && (gammaMap[bvadd64(index, 6bv64)] && (gammaMap[bvadd64(index, 5bv64)] && (gammaMap[bvadd64(index, 4bv64)] && (gammaMap[bvadd64(index, 3bv64)] && (gammaMap[bvadd64(index, 2bv64)] && (gammaMap[bvadd64(index, 1bv64)] && gammaMap[index]))))))) +} + function {:extern} gamma_store32(gammaMap: [bv64]bool, index: bv64, value: bool) returns ([bv64]bool) { gammaMap[index := value][bvadd64(index, 1bv64) := value][bvadd64(index, 2bv64) := value][bvadd64(index, 3bv64) := value] } @@ -35,11 +39,12 @@ procedure {:extern} rely(); modifies Gamma_mem, mem; ensures (forall i: bv64 :: (((mem[i] == old(mem[i])) ==> (Gamma_mem[i] == old(Gamma_mem[i]))))); ensures (((memory_load32_le(mem, $x_addr) == old(memory_load32_le(mem, $x_addr))) || (bvsle32(memory_load32_le(mem, $x_addr), 10bv32) && bvslt32(old(memory_load32_le(mem, $x_addr)), 10bv32))) || ((memory_load32_le(mem, $x_addr) == 21bv32) && (old(memory_load32_le(mem, $x_addr)) == 20bv32))); - free ensures (memory_load32_le(mem, 1852bv64) == 131073bv32); - free ensures (memory_load64_le(mem, 69064bv64) == 1808bv64); - free ensures (memory_load64_le(mem, 69072bv64) == 1728bv64); - free ensures (memory_load64_le(mem, 69592bv64) == 1812bv64); - free ensures (memory_load64_le(mem, 69672bv64) == 69672bv64); + free ensures (memory_load32_le(mem, 2304bv64) == 131073bv32); + free ensures (memory_load64_le(mem, 130432bv64) == 2256bv64); + free ensures (memory_load64_le(mem, 130440bv64) == 2176bv64); + free ensures (memory_load64_le(mem, 131040bv64) == 131092bv64); + free ensures (memory_load64_le(mem, 131056bv64) == 2260bv64); + free ensures (memory_load64_le(mem, 131080bv64) == 131080bv64); procedure {:extern} rely_transitive(); modifies Gamma_mem, mem; @@ -66,40 +71,47 @@ implementation {:extern} guarantee_reflexive() assert (((memory_load32_le(mem, $x_addr) == memory_load32_le(mem, $x_addr)) || ((memory_load32_le(mem, $x_addr) == 20bv32) && (memory_load32_le(mem, $x_addr) == 0bv32))) || ((memory_load32_le(mem, $x_addr) == 20bv32) && bvsle32(memory_load32_le(mem, $x_addr), 10bv32))); } -procedure main_1812(); +procedure main(); modifies Gamma_R0, Gamma_R8, Gamma_R9, Gamma_mem, R0, R8, R9, mem; requires (memory_load32_le(mem, $x_addr) == 0bv32); - free requires (memory_load64_le(mem, 69664bv64) == 0bv64); - free requires (memory_load64_le(mem, 69672bv64) == 69672bv64); - free requires (memory_load32_le(mem, 1852bv64) == 131073bv32); - free requires (memory_load64_le(mem, 69064bv64) == 1808bv64); - free requires (memory_load64_le(mem, 69072bv64) == 1728bv64); - free requires (memory_load64_le(mem, 69592bv64) == 1812bv64); - free requires (memory_load64_le(mem, 69672bv64) == 69672bv64); + free requires (memory_load64_le(mem, 131072bv64) == 0bv64); + free requires (memory_load64_le(mem, 131080bv64) == 131080bv64); + free requires (memory_load32_le(mem, 2304bv64) == 131073bv32); + free requires (memory_load64_le(mem, 130432bv64) == 2256bv64); + free requires (memory_load64_le(mem, 130440bv64) == 2176bv64); + free requires (memory_load64_le(mem, 131040bv64) == 131092bv64); + free requires (memory_load64_le(mem, 131056bv64) == 2260bv64); + free requires (memory_load64_le(mem, 131080bv64) == 131080bv64); ensures ((memory_load32_le(mem, $x_addr) == 20bv32) || (memory_load32_le(mem, $x_addr) == 21bv32)); - free ensures (memory_load32_le(mem, 1852bv64) == 131073bv32); - free ensures (memory_load64_le(mem, 69064bv64) == 1808bv64); - free ensures (memory_load64_le(mem, 69072bv64) == 1728bv64); - free ensures (memory_load64_le(mem, 69592bv64) == 1812bv64); - free ensures (memory_load64_le(mem, 69672bv64) == 69672bv64); + free ensures (memory_load32_le(mem, 2304bv64) == 131073bv32); + free ensures (memory_load64_le(mem, 130432bv64) == 2256bv64); + free ensures (memory_load64_le(mem, 130440bv64) == 2176bv64); + free ensures (memory_load64_le(mem, 131040bv64) == 131092bv64); + free ensures (memory_load64_le(mem, 131056bv64) == 2260bv64); + free ensures (memory_load64_le(mem, 131080bv64) == 131080bv64); -implementation main_1812() +implementation main() { + var $load11: bv64; + var Gamma_$load11: bool; var x_old: bv32; - main_1812__0__L_e50MLRSa~d2P~wAEs2UA: - assume {:captureState "main_1812__0__L_e50MLRSa~d2P~wAEs2UA"} true; - R9, Gamma_R9 := 69632bv64, true; - R8, Gamma_R8 := 20bv64, true; + $main$__0__$oqiqdATZTc6MDOYJqL9Aew: + assume {:captureState "$main$__0__$oqiqdATZTc6MDOYJqL9Aew"} true; + R8, Gamma_R8 := 126976bv64, true; + R9, Gamma_R9 := 20bv64, true; + R0, Gamma_R0 := 0bv64, true; call rely(); + $load11, Gamma_$load11 := memory_load64_le(mem, bvadd64(R8, 4064bv64)), (gamma_load64(Gamma_mem, bvadd64(R8, 4064bv64)) || L(mem, bvadd64(R8, 4064bv64))); + R8, Gamma_R8 := $load11, Gamma_$load11; + call rely(); + assert (L(mem, R8) ==> Gamma_R9); x_old := memory_load32_le(mem, $x_addr); - assert (L(mem, bvadd64(R9, 52bv64)) ==> Gamma_R8); - mem, Gamma_mem := memory_store32_le(mem, bvadd64(R9, 52bv64), R8[32:0]), gamma_store32(Gamma_mem, bvadd64(R9, 52bv64), Gamma_R8); + mem, Gamma_mem := memory_store32_le(mem, R8, R9[32:0]), gamma_store32(Gamma_mem, R8, Gamma_R9); assert (((memory_load32_le(mem, $x_addr) == x_old) || ((memory_load32_le(mem, $x_addr) == 20bv32) && (x_old == 0bv32))) || ((memory_load32_le(mem, $x_addr) == 20bv32) && bvsle32(x_old, 10bv32))); - assume {:captureState "1820_0"} true; - R0, Gamma_R0 := 0bv64, true; - goto main_1812_basil_return; - main_1812_basil_return: - assume {:captureState "main_1812_basil_return"} true; + assume {:captureState "2276$0"} true; + goto main_basil_return; + main_basil_return: + assume {:captureState "main_basil_return"} true; return; } diff --git a/src/test/correct/basic_loop_assign/clang_pic/basic_loop_assign.adt b/src/test/correct/basic_loop_assign/clang_pic/basic_loop_assign.adt deleted file mode 100644 index a261b720c..000000000 --- a/src/test/correct/basic_loop_assign/clang_pic/basic_loop_assign.adt +++ /dev/null @@ -1,497 +0,0 @@ -Project(Attrs([Attr("filename","\"clang_pic/basic_loop_assign.out\""), -Attr("image-specification","(declare abi (name str))\n(declare arch (name str))\n(declare base-address (addr int))\n(declare bias (off int))\n(declare bits (size int))\n(declare code-region (addr int) (size int) (off int))\n(declare code-start (addr int))\n(declare entry-point (addr int))\n(declare external-reference (addr int) (name str))\n(declare format (name str))\n(declare is-executable (flag bool))\n(declare is-little-endian (flag bool))\n(declare llvm:base-address (addr int))\n(declare llvm:code-entry (name str) (off int) (size int))\n(declare llvm:coff-import-library (name str))\n(declare llvm:coff-virtual-section-header (name str) (addr int) (size int))\n(declare llvm:elf-program-header (name str) (off int) (size int))\n(declare llvm:elf-program-header-flags (name str) (ld bool) (r bool) \n (w bool) (x bool))\n(declare llvm:elf-virtual-program-header (name str) (addr int) (size int))\n(declare llvm:entry-point (addr int))\n(declare llvm:macho-symbol (name str) (value int))\n(declare llvm:name-reference (at int) (name str))\n(declare llvm:relocation (at int) (addr int))\n(declare llvm:section-entry (name str) (addr int) (size int) (off int))\n(declare llvm:section-flags (name str) (r bool) (w bool) (x bool))\n(declare llvm:segment-command (name str) (off int) (size int))\n(declare llvm:segment-command-flags (name str) (r bool) (w bool) (x bool))\n(declare llvm:symbol-entry (name str) (addr int) (size int) (off int)\n (value int))\n(declare llvm:virtual-segment-command (name str) (addr int) (size int))\n(declare mapped (addr int) (size int) (off int))\n(declare named-region (addr int) (size int) (name str))\n(declare named-symbol (addr int) (name str))\n(declare require (name str))\n(declare section (addr int) (size int))\n(declare segment (addr int) (size int) (r bool) (w bool) (x bool))\n(declare subarch (name str))\n(declare symbol-chunk (addr int) (size int) (root int))\n(declare symbol-value (addr int) (value int))\n(declare system (name str))\n(declare vendor (name str))\n\n(abi unknown)\n(arch aarch64)\n(base-address 0)\n(bias 0)\n(bits 64)\n(code-region 1900 20 1900)\n(code-region 1600 300 1600)\n(code-region 1456 96 1456)\n(code-region 1432 24 1432)\n(code-start 1652)\n(code-start 1600)\n(code-start 1876)\n(entry-point 1600)\n(external-reference 69560 _ITM_deregisterTMCloneTable)\n(external-reference 69568 __cxa_finalize)\n(external-reference 69584 __gmon_start__)\n(external-reference 69600 _ITM_registerTMCloneTable)\n(external-reference 69632 __libc_start_main)\n(external-reference 69640 __cxa_finalize)\n(external-reference 69648 __gmon_start__)\n(external-reference 69656 abort)\n(format elf)\n(is-executable true)\n(is-little-endian true)\n(llvm:base-address 0)\n(llvm:code-entry abort 0 0)\n(llvm:code-entry __cxa_finalize 0 0)\n(llvm:code-entry __libc_start_main 0 0)\n(llvm:code-entry _init 1432 0)\n(llvm:code-entry main 1876 24)\n(llvm:code-entry _start 1600 52)\n(llvm:code-entry abort@GLIBC_2.17 0 0)\n(llvm:code-entry _fini 1900 0)\n(llvm:code-entry __cxa_finalize@GLIBC_2.17 0 0)\n(llvm:code-entry __libc_start_main@GLIBC_2.34 0 0)\n(llvm:code-entry frame_dummy 1872 0)\n(llvm:code-entry __do_global_dtors_aux 1792 0)\n(llvm:code-entry register_tm_clones 1728 0)\n(llvm:code-entry deregister_tm_clones 1680 0)\n(llvm:code-entry call_weak_fn 1652 20)\n(llvm:code-entry .fini 1900 20)\n(llvm:code-entry .text 1600 300)\n(llvm:code-entry .plt 1456 96)\n(llvm:code-entry .init 1432 24)\n(llvm:elf-program-header 08 3520 576)\n(llvm:elf-program-header 07 0 0)\n(llvm:elf-program-header 06 1924 60)\n(llvm:elf-program-header 05 596 68)\n(llvm:elf-program-header 04 3536 480)\n(llvm:elf-program-header 03 3520 624)\n(llvm:elf-program-header 02 0 2164)\n(llvm:elf-program-header 01 568 27)\n(llvm:elf-program-header 00 64 504)\n(llvm:elf-program-header-flags 08 false true false false)\n(llvm:elf-program-header-flags 07 false true true false)\n(llvm:elf-program-header-flags 06 false true false false)\n(llvm:elf-program-header-flags 05 false true false false)\n(llvm:elf-program-header-flags 04 false true true false)\n(llvm:elf-program-header-flags 03 true true true false)\n(llvm:elf-program-header-flags 02 true true false true)\n(llvm:elf-program-header-flags 01 false true false false)\n(llvm:elf-program-header-flags 00 false true false false)\n(llvm:elf-virtual-program-header 08 69056 576)\n(llvm:elf-virtual-program-header 07 0 0)\n(llvm:elf-virtual-program-header 06 1924 60)\n(llvm:elf-virtual-program-header 05 596 68)\n(llvm:elf-virtual-program-header 04 69072 480)\n(llvm:elf-virtual-program-header 03 69056 632)\n(llvm:elf-virtual-program-header 02 0 2164)\n(llvm:elf-virtual-program-header 01 568 27)\n(llvm:elf-virtual-program-header 00 64 504)\n(llvm:entry-point 1600)\n(llvm:name-reference 69656 abort)\n(llvm:name-reference 69648 __gmon_start__)\n(llvm:name-reference 69640 __cxa_finalize)\n(llvm:name-reference 69632 __libc_start_main)\n(llvm:name-reference 69600 _ITM_registerTMCloneTable)\n(llvm:name-reference 69584 __gmon_start__)\n(llvm:name-reference 69568 __cxa_finalize)\n(llvm:name-reference 69560 _ITM_deregisterTMCloneTable)\n(llvm:section-entry .shstrtab 0 259 6949)\n(llvm:section-entry .strtab 0 573 6376)\n(llvm:section-entry .symtab 0 2160 4216)\n(llvm:section-entry .comment 0 71 4144)\n(llvm:section-entry .bss 69680 8 4144)\n(llvm:section-entry .data 69664 16 4128)\n(llvm:section-entry .got.plt 69608 56 4072)\n(llvm:section-entry .got 69552 56 4016)\n(llvm:section-entry .dynamic 69072 480 3536)\n(llvm:section-entry .fini_array 69064 8 3528)\n(llvm:section-entry .init_array 69056 8 3520)\n(llvm:section-entry .eh_frame 1984 180 1984)\n(llvm:section-entry .eh_frame_hdr 1924 60 1924)\n(llvm:section-entry .rodata 1920 4 1920)\n(llvm:section-entry .fini 1900 20 1900)\n(llvm:section-entry .text 1600 300 1600)\n(llvm:section-entry .plt 1456 96 1456)\n(llvm:section-entry .init 1432 24 1432)\n(llvm:section-entry .rela.plt 1336 96 1336)\n(llvm:section-entry .rela.dyn 1120 216 1120)\n(llvm:section-entry .gnu.version_r 1072 48 1072)\n(llvm:section-entry .gnu.version 1054 18 1054)\n(llvm:section-entry .dynstr 912 141 912)\n(llvm:section-entry .dynsym 696 216 696)\n(llvm:section-entry .gnu.hash 664 28 664)\n(llvm:section-entry .note.ABI-tag 632 32 632)\n(llvm:section-entry .note.gnu.build-id 596 36 596)\n(llvm:section-entry .interp 568 27 568)\n(llvm:section-flags .shstrtab true false false)\n(llvm:section-flags .strtab true false false)\n(llvm:section-flags .symtab true false false)\n(llvm:section-flags .comment true false false)\n(llvm:section-flags .bss true true false)\n(llvm:section-flags .data true true false)\n(llvm:section-flags .got.plt true true false)\n(llvm:section-flags .got true true false)\n(llvm:section-flags .dynamic true true false)\n(llvm:section-flags .fini_array true true false)\n(llvm:section-flags .init_array true true false)\n(llvm:section-flags .eh_frame true false false)\n(llvm:section-flags .eh_frame_hdr true false false)\n(llvm:section-flags .rodata true false false)\n(llvm:section-flags .fini true false true)\n(llvm:section-flags .text true false true)\n(llvm:section-flags .plt true false true)\n(llvm:section-flags .init true false true)\n(llvm:section-flags .rela.plt true false false)\n(llvm:section-flags .rela.dyn true false false)\n(llvm:section-flags .gnu.version_r true false false)\n(llvm:section-flags .gnu.version true false false)\n(llvm:section-flags .dynstr true false false)\n(llvm:section-flags .dynsym true false false)\n(llvm:section-flags .gnu.hash true false false)\n(llvm:section-flags .note.ABI-tag true false false)\n(llvm:section-flags .note.gnu.build-id true false false)\n(llvm:section-flags .interp true false false)\n(llvm:symbol-entry abort 0 0 0 0)\n(llvm:symbol-entry __cxa_finalize 0 0 0 0)\n(llvm:symbol-entry __libc_start_main 0 0 0 0)\n(llvm:symbol-entry _init 1432 0 1432 1432)\n(llvm:symbol-entry main 1876 24 1876 1876)\n(llvm:symbol-entry _start 1600 52 1600 1600)\n(llvm:symbol-entry abort@GLIBC_2.17 0 0 0 0)\n(llvm:symbol-entry _fini 1900 0 1900 1900)\n(llvm:symbol-entry __cxa_finalize@GLIBC_2.17 0 0 0 0)\n(llvm:symbol-entry __libc_start_main@GLIBC_2.34 0 0 0 0)\n(llvm:symbol-entry frame_dummy 1872 0 1872 1872)\n(llvm:symbol-entry __do_global_dtors_aux 1792 0 1792 1792)\n(llvm:symbol-entry register_tm_clones 1728 0 1728 1728)\n(llvm:symbol-entry deregister_tm_clones 1680 0 1680 1680)\n(llvm:symbol-entry call_weak_fn 1652 20 1652 1652)\n(mapped 0 2164 0)\n(mapped 69056 624 3520)\n(named-region 0 2164 02)\n(named-region 69056 632 03)\n(named-region 568 27 .interp)\n(named-region 596 36 .note.gnu.build-id)\n(named-region 632 32 .note.ABI-tag)\n(named-region 664 28 .gnu.hash)\n(named-region 696 216 .dynsym)\n(named-region 912 141 .dynstr)\n(named-region 1054 18 .gnu.version)\n(named-region 1072 48 .gnu.version_r)\n(named-region 1120 216 .rela.dyn)\n(named-region 1336 96 .rela.plt)\n(named-region 1432 24 .init)\n(named-region 1456 96 .plt)\n(named-region 1600 300 .text)\n(named-region 1900 20 .fini)\n(named-region 1920 4 .rodata)\n(named-region 1924 60 .eh_frame_hdr)\n(named-region 1984 180 .eh_frame)\n(named-region 69056 8 .init_array)\n(named-region 69064 8 .fini_array)\n(named-region 69072 480 .dynamic)\n(named-region 69552 56 .got)\n(named-region 69608 56 .got.plt)\n(named-region 69664 16 .data)\n(named-region 69680 8 .bss)\n(named-region 0 71 .comment)\n(named-region 0 2160 .symtab)\n(named-region 0 573 .strtab)\n(named-region 0 259 .shstrtab)\n(named-symbol 1652 call_weak_fn)\n(named-symbol 1680 deregister_tm_clones)\n(named-symbol 1728 register_tm_clones)\n(named-symbol 1792 __do_global_dtors_aux)\n(named-symbol 1872 frame_dummy)\n(named-symbol 0 __libc_start_main@GLIBC_2.34)\n(named-symbol 0 __cxa_finalize@GLIBC_2.17)\n(named-symbol 1900 _fini)\n(named-symbol 0 abort@GLIBC_2.17)\n(named-symbol 1600 _start)\n(named-symbol 1876 main)\n(named-symbol 1432 _init)\n(named-symbol 0 __libc_start_main)\n(named-symbol 0 __cxa_finalize)\n(named-symbol 0 abort)\n(require libc.so.6)\n(section 568 27)\n(section 596 36)\n(section 632 32)\n(section 664 28)\n(section 696 216)\n(section 912 141)\n(section 1054 18)\n(section 1072 48)\n(section 1120 216)\n(section 1336 96)\n(section 1432 24)\n(section 1456 96)\n(section 1600 300)\n(section 1900 20)\n(section 1920 4)\n(section 1924 60)\n(section 1984 180)\n(section 69056 8)\n(section 69064 8)\n(section 69072 480)\n(section 69552 56)\n(section 69608 56)\n(section 69664 16)\n(section 69680 8)\n(section 0 71)\n(section 0 2160)\n(section 0 573)\n(section 0 259)\n(segment 0 2164 true false true)\n(segment 69056 632 true true false)\n(subarch v8)\n(symbol-chunk 1652 20 1652)\n(symbol-chunk 1600 52 1600)\n(symbol-chunk 1876 24 1876)\n(symbol-value 1652 1652)\n(symbol-value 1680 1680)\n(symbol-value 1728 1728)\n(symbol-value 1792 1792)\n(symbol-value 1872 1872)\n(symbol-value 1900 1900)\n(symbol-value 1600 1600)\n(symbol-value 1876 1876)\n(symbol-value 1432 1432)\n(symbol-value 0 0)\n(system \"\")\n(vendor \"\")\n"), -Attr("abi-name","\"aarch64-linux-gnu-elf\"")]), -Sections([Section(".shstrtab", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x40\x06\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x28\x1c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x38\x00\x09\x00\x40\x00\x1d\x00\x1c\x00\x06\x00\x00\x00\x04\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x04\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x74\x08\x00\x00\x00\x00\x00\x00\x74\x08\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x01\x00\x00\x00\x06\x00\x00\x00\xc0\x0d\x00\x00\x00\x00\x00\x00\xc0\x0d\x01\x00\x00\x00\x00\x00\xc0\x0d\x01"), -Section(".strtab", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x40\x06\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x28\x1c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x38\x00\x09\x00\x40\x00\x1d\x00\x1c\x00\x06\x00\x00\x00\x04\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x04\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x74\x08\x00\x00\x00\x00\x00\x00\x74\x08\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x01\x00\x00\x00\x06\x00\x00\x00\xc0\x0d\x00\x00\x00\x00\x00\x00\xc0\x0d\x01\x00\x00\x00\x00\x00\xc0\x0d\x01\x00\x00\x00\x00\x00\x70\x02\x00\x00\x00\x00\x00\x00\x78\x02\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x02\x00\x00\x00\x06\x00\x00\x00\xd0\x0d\x00\x00\x00\x00\x00\x00\xd0\x0d\x01\x00\x00\x00\x00\x00\xd0\x0d\x01\x00\x00\x00\x00\x00\xe0\x01\x00\x00\x00\x00\x00\x00\xe0\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x04\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x50\xe5\x74\x64\x04\x00\x00\x00\x84\x07\x00\x00\x00\x00\x00\x00\x84\x07\x00\x00\x00\x00\x00\x00\x84\x07\x00\x00\x00\x00\x00\x00\x3c\x00\x00\x00\x00\x00\x00\x00\x3c\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x51\xe5\x74\x64\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x52\xe5\x74\x64\x04\x00\x00\x00\xc0\x0d\x00\x00\x00\x00\x00\x00\xc0\x0d\x01\x00\x00\x00\x00\x00\xc0\x0d\x01\x00\x00\x00\x00\x00\x40\x02\x00\x00\x00\x00\x00\x00\x40\x02\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x2f\x6c\x69\x62\x2f"), -Section(".symtab", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x40\x06\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x28\x1c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x38\x00\x09\x00\x40\x00\x1d\x00\x1c\x00\x06\x00\x00\x00\x04\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x04\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x74\x08\x00\x00\x00\x00\x00\x00\x74\x08\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x01\x00\x00\x00\x06\x00\x00\x00\xc0\x0d\x00\x00\x00\x00\x00\x00\xc0\x0d\x01\x00\x00\x00\x00\x00\xc0\x0d\x01\x00\x00\x00\x00\x00\x70\x02\x00\x00\x00\x00\x00\x00\x78\x02\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x02\x00\x00\x00\x06\x00\x00\x00\xd0\x0d\x00\x00\x00\x00\x00\x00\xd0\x0d\x01\x00\x00\x00\x00\x00\xd0\x0d\x01\x00\x00\x00\x00\x00\xe0\x01\x00\x00\x00\x00\x00\x00\xe0\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x04\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x50\xe5\x74\x64\x04\x00\x00\x00\x84\x07\x00\x00\x00\x00\x00\x00\x84\x07\x00\x00\x00\x00\x00\x00\x84\x07\x00\x00\x00\x00\x00\x00\x3c\x00\x00\x00\x00\x00\x00\x00\x3c\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x51\xe5\x74\x64\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x52\xe5\x74\x64\x04\x00\x00\x00\xc0\x0d\x00\x00\x00\x00\x00\x00\xc0\x0d\x01\x00\x00\x00\x00\x00\xc0\x0d\x01\x00\x00\x00\x00\x00\x40\x02\x00\x00\x00\x00\x00\x00\x40\x02\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x2f\x6c\x69\x62\x2f\x6c\x64\x2d\x6c\x69\x6e\x75\x78\x2d\x61\x61\x72\x63\x68\x36\x34\x2e\x73\x6f\x2e\x31\x00\x00\x04\x00\x00\x00\x14\x00\x00\x00\x03\x00\x00\x00\x47\x4e\x55\x00\x68\x5f\xa6\x52\x21\xb4\xf2\xed\xfe\x04\x3e\x97\xb0\xd1\x8a\xbb\x2a\xe3\xb0\xb9\x04\x00\x00\x00\x10\x00\x00\x00\x01\x00\x00\x00\x47\x4e\x55\x00\x00\x00\x00\x00\x03\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x01\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x0b\x00\x98\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x17\x00\x20\x10\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x48\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x22\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x22\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x73\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5f\x5f\x63\x78\x61\x5f\x66\x69\x6e\x61\x6c\x69\x7a\x65\x00\x5f\x5f\x6c\x69\x62\x63\x5f\x73\x74\x61\x72\x74\x5f\x6d\x61\x69\x6e\x00\x61\x62\x6f\x72\x74\x00\x6c\x69\x62\x63\x2e\x73\x6f\x2e\x36\x00\x47\x4c\x49\x42\x43\x5f\x32\x2e\x31\x37\x00\x47\x4c\x49\x42\x43\x5f\x32\x2e\x33\x34\x00\x5f\x49\x54\x4d\x5f\x64\x65\x72\x65\x67\x69\x73\x74\x65\x72\x54\x4d\x43\x6c\x6f\x6e\x65\x54\x61\x62\x6c\x65\x00\x5f\x5f\x67\x6d\x6f\x6e\x5f\x73\x74\x61\x72\x74\x5f\x5f\x00\x5f\x49\x54\x4d\x5f\x72\x65\x67\x69\x73\x74\x65\x72\x54\x4d\x43\x6c\x6f\x6e\x65\x54\x61\x62\x6c\x65\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x01\x00\x03\x00\x01\x00\x03\x00\x01\x00\x01\x00\x02\x00\x28\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x97\x91\x96\x06\x00\x00\x03\x00\x32\x00\x00\x00\x10\x00\x00\x00\xb4\x91\x96\x06\x00\x00\x02\x00\x3d\x00\x00\x00\x00\x00\x00\x00\xc0\x0d\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x50\x07\x00\x00\x00\x00\x00\x00\xc8\x0d\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\xc8\x0f\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x34\x10\x01\x00\x00\x00\x00\x00\xd8\x0f\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x54\x07\x00\x00\x00\x00\x00\x00\x28\x10\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x28\x10\x01\x00\x00\x00\x00\x00\xb8\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xc0\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xd0\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe0\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x08\x10\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x10\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x18\x10\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1f\x20\x03\xd5\xfd\x7b\xbf\xa9\xfd\x03\x00\x91\x34\x00\x00\x94\xfd\x7b\xc1\xa8\xc0\x03\x5f\xd6\xf0\x7b\xbf\xa9\x90\x00\x00\x90\x11\xfe\x47\xf9\x10\xe2\x3f\x91\x20\x02\x1f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x90\x00\x00\xb0\x11\x02\x40\xf9\x10\x02\x00\x91\x20\x02\x1f\xd6\x90\x00\x00\xb0\x11\x06\x40\xf9\x10\x22\x00\x91\x20\x02\x1f\xd6\x90\x00\x00\xb0\x11\x0a\x40\xf9\x10\x42\x00\x91\x20\x02\x1f\xd6\x90\x00\x00\xb0\x11\x0e\x40\xf9\x10\x62\x00\x91\x20\x02\x1f\xd6\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1f\x20\x03\xd5\x1d\x00\x80\xd2\x1e\x00\x80\xd2\xe5\x03\x00\xaa\xe1\x03\x40\xf9\xe2\x23\x00\x91\xe6\x03\x00\x91\x80\x00\x00\x90\x00\xec\x47\xf9\x03\x00\x80\xd2\x04\x00\x80\xd2\xd9\xff\xff\x97\xe4\xff\xff\x97\x80\x00\x00\x90\x00\xe8\x47\xf9\x40\x00\x00\xb4\xdc\xff\xff\x17\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x80\x00\x00\xb0\x00\xc0\x00\x91\x81\x00\x00\xb0\x21\xc0\x00\x91\x3f\x00\x00\xeb\xc0\x00\x00\x54\x81\x00\x00\x90\x21\xdc\x47\xf9\x61\x00\x00\xb4\xf0\x03\x01\xaa\x00\x02\x1f\xd6\xc0\x03\x5f\xd6\x80\x00\x00\xb0\x00\xc0\x00\x91\x81\x00\x00\xb0\x21\xc0\x00\x91\x21\x00\x00\xcb\x22\xfc\x7f\xd3\x41\x0c\x81\x8b\x21\xfc\x41\x93\xc1\x00\x00\xb4\x82\x00\x00\x90\x42\xf0\x47\xf9\x62\x00\x00\xb4\xf0\x03\x02\xaa\x00\x02\x1f\xd6\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\xfd\x7b\xbe\xa9\xfd\x03\x00\x91\xf3\x0b\x00\xf9\x93\x00\x00\xb0\x60\xc2\x40\x39\x40\x01\x00\x35\x80\x00\x00\x90\x00\xe0\x47\xf9\x80\x00\x00\xb4\x80\x00\x00\xb0\x00\x14\x40\xf9\xad\xff\xff\x97\xd8\xff\xff\x97\x20\x00\x80\x52\x60\xc2\x00\x39\xf3\x0b\x40\xf9\xfd\x7b\xc2\xa8\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\xdc\xff\xff\x17\x89\x00\x00\x90\x29\xe5\x47\xf9\x88\x02\x80\x52\x28\x01\x00\xb9\xe0\x03\x1f\x2a\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\xfd\x7b\xbf\xa9\xfd\x03\x00\x91\xfd\x7b\xc1\xa8\xc0\x03\x5f\xd6\x01\x00\x02\x00\x01\x1b\x03\x3b\x38\x00\x00\x00\x06\x00\x00\x00\xbc\xfe\xff\xff\x50\x00\x00\x00\x0c\xff\xff\xff\x64\x00\x00\x00\x3c\xff\xff\xff\x78\x00\x00\x00\x7c\xff\xff\xff\x8c\x00\x00\x00\xcc\xff\xff\xff\xb0\x00\x00\x00\xd0\xff\xff\xff\xd8\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x01\x7a\x52\x00\x04\x78\x1e\x01\x1b\x0c\x1f\x00\x10\x00\x00\x00\x18\x00\x00\x00\x64\xfe\xff\xff\x34\x00\x00\x00\x00\x41\x07\x1e\x10\x00\x00\x00\x2c\x00\x00\x00\xa0\xfe\xff\xff\x30\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x40\x00\x00\x00\xbc\xfe\xff\xff\x3c\x00\x00\x00\x00\x00\x00\x00\x20\x00\x00\x00\x54\x00\x00\x00\xe8\xfe\xff\xff\x48\x00\x00\x00\x00\x41\x0e\x20\x9d\x04\x9e\x03\x42\x93\x02\x4e\xde\xdd\xd3\x0e\x00\x00\x00\x00\x10\x00\x00\x00\x78\x00\x00\x00\x14\xff\xff\xff\x04\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x01\x7a\x52\x00\x01\x7c\x1e\x01\x1b\x0c\x1f\x00\x10\x00\x00\x00\x18\x00\x00\x00\xf0\xfe\xff\xff\x18\x00\x00\x00\x00\x00\x00\x00"), -Section(".comment", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x40\x06\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x28\x1c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x38\x00\x09\x00\x40\x00\x1d\x00\x1c\x00\x06\x00\x00\x00\x04\x00\x00"), -Section(".interp", 0x238, "\x2f\x6c\x69\x62\x2f\x6c\x64\x2d\x6c\x69\x6e\x75\x78\x2d\x61\x61\x72\x63\x68\x36\x34\x2e\x73\x6f\x2e\x31\x00"), -Section(".note.gnu.build-id", 0x254, "\x04\x00\x00\x00\x14\x00\x00\x00\x03\x00\x00\x00\x47\x4e\x55\x00\x68\x5f\xa6\x52\x21\xb4\xf2\xed\xfe\x04\x3e\x97\xb0\xd1\x8a\xbb\x2a\xe3\xb0\xb9"), -Section(".note.ABI-tag", 0x278, "\x04\x00\x00\x00\x10\x00\x00\x00\x01\x00\x00\x00\x47\x4e\x55\x00\x00\x00\x00\x00\x03\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00"), -Section(".gnu.hash", 0x298, "\x01\x00\x00\x00\x01\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".dynsym", 0x2B8, "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x0b\x00\x98\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x17\x00\x20\x10\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x48\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x22\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x22\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x73\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".dynstr", 0x390, "\x00\x5f\x5f\x63\x78\x61\x5f\x66\x69\x6e\x61\x6c\x69\x7a\x65\x00\x5f\x5f\x6c\x69\x62\x63\x5f\x73\x74\x61\x72\x74\x5f\x6d\x61\x69\x6e\x00\x61\x62\x6f\x72\x74\x00\x6c\x69\x62\x63\x2e\x73\x6f\x2e\x36\x00\x47\x4c\x49\x42\x43\x5f\x32\x2e\x31\x37\x00\x47\x4c\x49\x42\x43\x5f\x32\x2e\x33\x34\x00\x5f\x49\x54\x4d\x5f\x64\x65\x72\x65\x67\x69\x73\x74\x65\x72\x54\x4d\x43\x6c\x6f\x6e\x65\x54\x61\x62\x6c\x65\x00\x5f\x5f\x67\x6d\x6f\x6e\x5f\x73\x74\x61\x72\x74\x5f\x5f\x00\x5f\x49\x54\x4d\x5f\x72\x65\x67\x69\x73\x74\x65\x72\x54\x4d\x43\x6c\x6f\x6e\x65\x54\x61\x62\x6c\x65\x00"), -Section(".gnu.version", 0x41E, "\x00\x00\x00\x00\x00\x00\x02\x00\x01\x00\x03\x00\x01\x00\x03\x00\x01\x00"), -Section(".gnu.version_r", 0x430, "\x01\x00\x02\x00\x28\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x97\x91\x96\x06\x00\x00\x03\x00\x32\x00\x00\x00\x10\x00\x00\x00\xb4\x91\x96\x06\x00\x00\x02\x00\x3d\x00\x00\x00\x00\x00\x00\x00"), -Section(".rela.dyn", 0x460, "\xc0\x0d\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x50\x07\x00\x00\x00\x00\x00\x00\xc8\x0d\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\xc8\x0f\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x34\x10\x01\x00\x00\x00\x00\x00\xd8\x0f\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x54\x07\x00\x00\x00\x00\x00\x00\x28\x10\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x28\x10\x01\x00\x00\x00\x00\x00\xb8\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xc0\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xd0\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe0\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".rela.plt", 0x538, "\x00\x10\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x08\x10\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x10\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x18\x10\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".init", 0x598, "\x1f\x20\x03\xd5\xfd\x7b\xbf\xa9\xfd\x03\x00\x91\x34\x00\x00\x94\xfd\x7b\xc1\xa8\xc0\x03\x5f\xd6"), -Section(".plt", 0x5B0, "\xf0\x7b\xbf\xa9\x90\x00\x00\x90\x11\xfe\x47\xf9\x10\xe2\x3f\x91\x20\x02\x1f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x90\x00\x00\xb0\x11\x02\x40\xf9\x10\x02\x00\x91\x20\x02\x1f\xd6\x90\x00\x00\xb0\x11\x06\x40\xf9\x10\x22\x00\x91\x20\x02\x1f\xd6\x90\x00\x00\xb0\x11\x0a\x40\xf9\x10\x42\x00\x91\x20\x02\x1f\xd6\x90\x00\x00\xb0\x11\x0e\x40\xf9\x10\x62\x00\x91\x20\x02\x1f\xd6"), -Section(".fini", 0x76C, "\x1f\x20\x03\xd5\xfd\x7b\xbf\xa9\xfd\x03\x00\x91\xfd\x7b\xc1\xa8\xc0\x03\x5f\xd6"), -Section(".rodata", 0x780, "\x01\x00\x02\x00"), -Section(".eh_frame_hdr", 0x784, "\x01\x1b\x03\x3b\x38\x00\x00\x00\x06\x00\x00\x00\xbc\xfe\xff\xff\x50\x00\x00\x00\x0c\xff\xff\xff\x64\x00\x00\x00\x3c\xff\xff\xff\x78\x00\x00\x00\x7c\xff\xff\xff\x8c\x00\x00\x00\xcc\xff\xff\xff\xb0\x00\x00\x00\xd0\xff\xff\xff\xd8\x00\x00\x00"), -Section(".eh_frame", 0x7C0, "\x10\x00\x00\x00\x00\x00\x00\x00\x01\x7a\x52\x00\x04\x78\x1e\x01\x1b\x0c\x1f\x00\x10\x00\x00\x00\x18\x00\x00\x00\x64\xfe\xff\xff\x34\x00\x00\x00\x00\x41\x07\x1e\x10\x00\x00\x00\x2c\x00\x00\x00\xa0\xfe\xff\xff\x30\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x40\x00\x00\x00\xbc\xfe\xff\xff\x3c\x00\x00\x00\x00\x00\x00\x00\x20\x00\x00\x00\x54\x00\x00\x00\xe8\xfe\xff\xff\x48\x00\x00\x00\x00\x41\x0e\x20\x9d\x04\x9e\x03\x42\x93\x02\x4e\xde\xdd\xd3\x0e\x00\x00\x00\x00\x10\x00\x00\x00\x78\x00\x00\x00\x14\xff\xff\xff\x04\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x01\x7a\x52\x00\x01\x7c\x1e\x01\x1b\x0c\x1f\x00\x10\x00\x00\x00\x18\x00\x00\x00\xf0\xfe\xff\xff\x18\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".fini_array", 0x10DC8, "\x00\x07\x00\x00\x00\x00\x00\x00"), -Section(".dynamic", 0x10DD0, "\x01\x00\x00\x00\x00\x00\x00\x00\x28\x00\x00\x00\x00\x00\x00\x00\x0c\x00\x00\x00\x00\x00\x00\x00\x98\x05\x00\x00\x00\x00\x00\x00\x0d\x00\x00\x00\x00\x00\x00\x00\x6c\x07\x00\x00\x00\x00\x00\x00\x19\x00\x00\x00\x00\x00\x00\x00\xc0\x0d\x01\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x1a\x00\x00\x00\x00\x00\x00\x00\xc8\x0d\x01\x00\x00\x00\x00\x00\x1c\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\xf5\xfe\xff\x6f\x00\x00\x00\x00\x98\x02\x00\x00\x00\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x90\x03\x00\x00\x00\x00\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\xb8\x02\x00\x00\x00\x00\x00\x00\x0a\x00\x00\x00\x00\x00\x00\x00\x8d\x00\x00\x00\x00\x00\x00\x00\x0b\x00\x00\x00\x00\x00\x00\x00\x18\x00\x00\x00\x00\x00\x00\x00\x15\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\xe8\x0f\x01\x00\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x60\x00\x00\x00\x00\x00\x00\x00\x14\x00\x00\x00\x00\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x17\x00\x00\x00\x00\x00\x00\x00\x38\x05\x00\x00\x00\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x60\x04\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\xd8\x00\x00\x00\x00\x00\x00\x00\x09\x00\x00\x00\x00\x00\x00\x00\x18\x00\x00\x00\x00\x00\x00\x00\xfb\xff\xff\x6f\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\xfe\xff\xff\x6f\x00\x00\x00\x00\x30\x04\x00\x00\x00\x00\x00\x00\xff\xff\xff\x6f\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\xf0\xff\xff\x6f\x00\x00\x00\x00\x1e\x04\x00\x00\x00\x00\x00\x00\xf9\xff\xff\x6f\x00\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".init_array", 0x10DC0, "\x50\x07\x00\x00\x00\x00\x00\x00"), -Section(".got", 0x10FB0, "\xd0\x0d\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x34\x10\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x54\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".got.plt", 0x10FE8, "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xb0\x05\x00\x00\x00\x00\x00\x00\xb0\x05\x00\x00\x00\x00\x00\x00\xb0\x05\x00\x00\x00\x00\x00\x00\xb0\x05\x00\x00\x00\x00\x00\x00"), -Section(".data", 0x11020, "\x00\x00\x00\x00\x00\x00\x00\x00\x28\x10\x01\x00\x00\x00\x00\x00"), -Section(".text", 0x640, "\x1f\x20\x03\xd5\x1d\x00\x80\xd2\x1e\x00\x80\xd2\xe5\x03\x00\xaa\xe1\x03\x40\xf9\xe2\x23\x00\x91\xe6\x03\x00\x91\x80\x00\x00\x90\x00\xec\x47\xf9\x03\x00\x80\xd2\x04\x00\x80\xd2\xd9\xff\xff\x97\xe4\xff\xff\x97\x80\x00\x00\x90\x00\xe8\x47\xf9\x40\x00\x00\xb4\xdc\xff\xff\x17\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x80\x00\x00\xb0\x00\xc0\x00\x91\x81\x00\x00\xb0\x21\xc0\x00\x91\x3f\x00\x00\xeb\xc0\x00\x00\x54\x81\x00\x00\x90\x21\xdc\x47\xf9\x61\x00\x00\xb4\xf0\x03\x01\xaa\x00\x02\x1f\xd6\xc0\x03\x5f\xd6\x80\x00\x00\xb0\x00\xc0\x00\x91\x81\x00\x00\xb0\x21\xc0\x00\x91\x21\x00\x00\xcb\x22\xfc\x7f\xd3\x41\x0c\x81\x8b\x21\xfc\x41\x93\xc1\x00\x00\xb4\x82\x00\x00\x90\x42\xf0\x47\xf9\x62\x00\x00\xb4\xf0\x03\x02\xaa\x00\x02\x1f\xd6\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\xfd\x7b\xbe\xa9\xfd\x03\x00\x91\xf3\x0b\x00\xf9\x93\x00\x00\xb0\x60\xc2\x40\x39\x40\x01\x00\x35\x80\x00\x00\x90\x00\xe0\x47\xf9\x80\x00\x00\xb4\x80\x00\x00\xb0\x00\x14\x40\xf9\xad\xff\xff\x97\xd8\xff\xff\x97\x20\x00\x80\x52\x60\xc2\x00\x39\xf3\x0b\x40\xf9\xfd\x7b\xc2\xa8\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\xdc\xff\xff\x17\x89\x00\x00\x90\x29\xe5\x47\xf9\x88\x02\x80\x52\x28\x01\x00\xb9\xe0\x03\x1f\x2a\xc0\x03\x5f\xd6")]), -Memmap([Annotation(Region(0x0,0x873), Attr("segment","02 0 2164")), -Annotation(Region(0x640,0x673), Attr("symbol","\"_start\"")), -Annotation(Region(0x0,0x102), Attr("section","\".shstrtab\"")), -Annotation(Region(0x0,0x23C), Attr("section","\".strtab\"")), -Annotation(Region(0x0,0x86F), Attr("section","\".symtab\"")), -Annotation(Region(0x0,0x46), Attr("section","\".comment\"")), -Annotation(Region(0x238,0x252), Attr("section","\".interp\"")), -Annotation(Region(0x254,0x277), Attr("section","\".note.gnu.build-id\"")), -Annotation(Region(0x278,0x297), Attr("section","\".note.ABI-tag\"")), -Annotation(Region(0x298,0x2B3), Attr("section","\".gnu.hash\"")), -Annotation(Region(0x2B8,0x38F), Attr("section","\".dynsym\"")), -Annotation(Region(0x390,0x41C), Attr("section","\".dynstr\"")), -Annotation(Region(0x41E,0x42F), Attr("section","\".gnu.version\"")), -Annotation(Region(0x430,0x45F), Attr("section","\".gnu.version_r\"")), -Annotation(Region(0x460,0x537), Attr("section","\".rela.dyn\"")), -Annotation(Region(0x538,0x597), Attr("section","\".rela.plt\"")), -Annotation(Region(0x598,0x5AF), Attr("section","\".init\"")), -Annotation(Region(0x5B0,0x60F), Attr("section","\".plt\"")), -Annotation(Region(0x598,0x5AF), Attr("code-region","()")), -Annotation(Region(0x5B0,0x60F), Attr("code-region","()")), -Annotation(Region(0x640,0x673), Attr("symbol-info","_start 0x640 52")), -Annotation(Region(0x674,0x687), Attr("symbol","\"call_weak_fn\"")), -Annotation(Region(0x674,0x687), Attr("symbol-info","call_weak_fn 0x674 20")), -Annotation(Region(0x754,0x76B), Attr("symbol","\"main\"")), -Annotation(Region(0x754,0x76B), Attr("symbol-info","main 0x754 24")), -Annotation(Region(0x76C,0x77F), Attr("section","\".fini\"")), -Annotation(Region(0x780,0x783), Attr("section","\".rodata\"")), -Annotation(Region(0x784,0x7BF), Attr("section","\".eh_frame_hdr\"")), -Annotation(Region(0x7C0,0x873), Attr("section","\".eh_frame\"")), -Annotation(Region(0x10DC0,0x1102F), Attr("segment","03 0x10DC0 632")), -Annotation(Region(0x10DC8,0x10DCF), Attr("section","\".fini_array\"")), -Annotation(Region(0x10DD0,0x10FAF), Attr("section","\".dynamic\"")), -Annotation(Region(0x10DC0,0x10DC7), Attr("section","\".init_array\"")), -Annotation(Region(0x10FB0,0x10FE7), Attr("section","\".got\"")), -Annotation(Region(0x10FE8,0x1101F), Attr("section","\".got.plt\"")), -Annotation(Region(0x11020,0x1102F), Attr("section","\".data\"")), -Annotation(Region(0x640,0x76B), Attr("section","\".text\"")), -Annotation(Region(0x640,0x76B), Attr("code-region","()")), -Annotation(Region(0x76C,0x77F), Attr("code-region","()"))]), -Program(Tid(1_348, "%00000544"), Attrs([]), - Subs([Sub(Tid(1_298, "@__cxa_finalize"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x5E0"), -Attr("stub","()")]), "__cxa_finalize", Args([Arg(Tid(1_349, "%00000545"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("__cxa_finalize_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(796, "@__cxa_finalize"), - Attrs([Attr("address","0x5E0")]), Phis([]), -Defs([Def(Tid(1_044, "%00000414"), Attrs([Attr("address","0x5E0"), -Attr("insn","adrp x16, #69632")]), Var("R16",Imm(64)), Int(69632,64)), -Def(Tid(1_051, "%0000041b"), Attrs([Attr("address","0x5E4"), -Attr("insn","ldr x17, [x16, #0x8]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(1_057, "%00000421"), Attrs([Attr("address","0x5E8"), -Attr("insn","add x16, x16, #0x8")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(8,64)))]), Jmps([Call(Tid(1_062, "%00000426"), - Attrs([Attr("address","0x5EC"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), -Sub(Tid(1_299, "@__do_global_dtors_aux"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x700")]), - "__do_global_dtors_aux", Args([Arg(Tid(1_350, "%00000546"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("__do_global_dtors_aux_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(614, "@__do_global_dtors_aux"), - Attrs([Attr("address","0x700")]), Phis([]), Defs([Def(Tid(618, "%0000026a"), - Attrs([Attr("address","0x700"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("#3",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(18446744073709551584,64))), -Def(Tid(624, "%00000270"), Attrs([Attr("address","0x700"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("#3",Imm(64)),Var("R29",Imm(64)),LittleEndian(),64)), -Def(Tid(630, "%00000276"), Attrs([Attr("address","0x700"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("#3",Imm(64)),Int(8,64)),Var("R30",Imm(64)),LittleEndian(),64)), -Def(Tid(634, "%0000027a"), Attrs([Attr("address","0x700"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("R31",Imm(64)), -Var("#3",Imm(64))), Def(Tid(640, "%00000280"), - Attrs([Attr("address","0x704"), Attr("insn","mov x29, sp")]), - Var("R29",Imm(64)), Var("R31",Imm(64))), Def(Tid(648, "%00000288"), - Attrs([Attr("address","0x708"), Attr("insn","str x19, [sp, #0x10]")]), - Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(16,64)),Var("R19",Imm(64)),LittleEndian(),64)), -Def(Tid(653, "%0000028d"), Attrs([Attr("address","0x70C"), -Attr("insn","adrp x19, #69632")]), Var("R19",Imm(64)), Int(69632,64)), -Def(Tid(660, "%00000294"), Attrs([Attr("address","0x710"), -Attr("insn","ldrb w0, [x19, #0x30]")]), Var("R0",Imm(64)), -UNSIGNED(64,Load(Var("mem",Mem(64,8)),PLUS(Var("R19",Imm(64)),Int(48,64)),LittleEndian(),8)))]), -Jmps([Goto(Tid(667, "%0000029b"), Attrs([Attr("address","0x714"), -Attr("insn","cbnz w0, #0x28")]), - NEQ(Extract(31,0,Var("R0",Imm(64))),Int(0,32)), -Direct(Tid(665, "%00000299"))), Goto(Tid(1_338, "%0000053a"), Attrs([]), - Int(1,1), Direct(Tid(741, "%000002e5")))])), Blk(Tid(741, "%000002e5"), - Attrs([Attr("address","0x718")]), Phis([]), Defs([Def(Tid(744, "%000002e8"), - Attrs([Attr("address","0x718"), Attr("insn","adrp x0, #65536")]), - Var("R0",Imm(64)), Int(65536,64)), Def(Tid(751, "%000002ef"), - Attrs([Attr("address","0x71C"), Attr("insn","ldr x0, [x0, #0xfc0]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(4032,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(757, "%000002f5"), Attrs([Attr("address","0x720"), -Attr("insn","cbz x0, #0x10")]), EQ(Var("R0",Imm(64)),Int(0,64)), -Direct(Tid(755, "%000002f3"))), Goto(Tid(1_339, "%0000053b"), Attrs([]), - Int(1,1), Direct(Tid(780, "%0000030c")))])), Blk(Tid(780, "%0000030c"), - Attrs([Attr("address","0x724")]), Phis([]), Defs([Def(Tid(783, "%0000030f"), - Attrs([Attr("address","0x724"), Attr("insn","adrp x0, #69632")]), - Var("R0",Imm(64)), Int(69632,64)), Def(Tid(790, "%00000316"), - Attrs([Attr("address","0x728"), Attr("insn","ldr x0, [x0, #0x28]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(40,64)),LittleEndian(),64)), -Def(Tid(795, "%0000031b"), Attrs([Attr("address","0x72C"), -Attr("insn","bl #-0x14c")]), Var("R30",Imm(64)), Int(1840,64))]), -Jmps([Call(Tid(798, "%0000031e"), Attrs([Attr("address","0x72C"), -Attr("insn","bl #-0x14c")]), Int(1,1), -(Direct(Tid(1_298, "@__cxa_finalize")),Direct(Tid(755, "%000002f3"))))])), -Blk(Tid(755, "%000002f3"), Attrs([Attr("address","0x730")]), Phis([]), -Defs([Def(Tid(763, "%000002fb"), Attrs([Attr("address","0x730"), -Attr("insn","bl #-0xa0")]), Var("R30",Imm(64)), Int(1844,64))]), -Jmps([Call(Tid(765, "%000002fd"), Attrs([Attr("address","0x730"), -Attr("insn","bl #-0xa0")]), Int(1,1), -(Direct(Tid(1_312, "@deregister_tm_clones")),Direct(Tid(767, "%000002ff"))))])), -Blk(Tid(767, "%000002ff"), Attrs([Attr("address","0x734")]), Phis([]), -Defs([Def(Tid(770, "%00000302"), Attrs([Attr("address","0x734"), -Attr("insn","mov w0, #0x1")]), Var("R0",Imm(64)), Int(1,64)), -Def(Tid(778, "%0000030a"), Attrs([Attr("address","0x738"), -Attr("insn","strb w0, [x19, #0x30]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R19",Imm(64)),Int(48,64)),Extract(7,0,Var("R0",Imm(64))),LittleEndian(),8))]), -Jmps([Goto(Tid(1_340, "%0000053c"), Attrs([]), Int(1,1), -Direct(Tid(665, "%00000299")))])), Blk(Tid(665, "%00000299"), - Attrs([Attr("address","0x73C")]), Phis([]), Defs([Def(Tid(675, "%000002a3"), - Attrs([Attr("address","0x73C"), Attr("insn","ldr x19, [sp, #0x10]")]), - Var("R19",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(16,64)),LittleEndian(),64)), -Def(Tid(682, "%000002aa"), Attrs([Attr("address","0x740"), -Attr("insn","ldp x29, x30, [sp], #0x20")]), Var("R29",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(687, "%000002af"), Attrs([Attr("address","0x740"), -Attr("insn","ldp x29, x30, [sp], #0x20")]), Var("R30",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(691, "%000002b3"), Attrs([Attr("address","0x740"), -Attr("insn","ldp x29, x30, [sp], #0x20")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(32,64)))]), Jmps([Call(Tid(696, "%000002b8"), - Attrs([Attr("address","0x744"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), Sub(Tid(1_303, "@__libc_start_main"), - Attrs([Attr("c.proto","signed (*)(signed (*)(signed , char** , char** );* main, signed , char** , \nvoid* auxv)"), -Attr("address","0x5D0"), Attr("stub","()")]), "__libc_start_main", - Args([Arg(Tid(1_351, "%00000547"), - Attrs([Attr("c.layout","**[ : 64]"), -Attr("c.data","Top:u64 ptr ptr"), -Attr("c.type","signed (*)(signed , char** , char** );*")]), - Var("__libc_start_main_main",Imm(64)), Var("R0",Imm(64)), In()), -Arg(Tid(1_352, "%00000548"), Attrs([Attr("c.layout","[signed : 32]"), -Attr("c.data","Top:u32"), Attr("c.type","signed")]), - Var("__libc_start_main_arg2",Imm(32)), LOW(32,Var("R1",Imm(64))), In()), -Arg(Tid(1_353, "%00000549"), Attrs([Attr("c.layout","**[char : 8]"), -Attr("c.data","Top:u8 ptr ptr"), Attr("c.type","char**")]), - Var("__libc_start_main_arg3",Imm(64)), Var("R2",Imm(64)), Both()), -Arg(Tid(1_354, "%0000054a"), Attrs([Attr("c.layout","*[ : 8]"), -Attr("c.data","{} ptr"), Attr("c.type","void*")]), - Var("__libc_start_main_auxv",Imm(64)), Var("R3",Imm(64)), Both()), -Arg(Tid(1_355, "%0000054b"), Attrs([Attr("c.layout","[signed : 32]"), -Attr("c.data","Top:u32"), Attr("c.type","signed")]), - Var("__libc_start_main_result",Imm(32)), LOW(32,Var("R0",Imm(64))), -Out())]), Blks([Blk(Tid(447, "@__libc_start_main"), - Attrs([Attr("address","0x5D0")]), Phis([]), -Defs([Def(Tid(1_022, "%000003fe"), Attrs([Attr("address","0x5D0"), -Attr("insn","adrp x16, #69632")]), Var("R16",Imm(64)), Int(69632,64)), -Def(Tid(1_029, "%00000405"), Attrs([Attr("address","0x5D4"), -Attr("insn","ldr x17, [x16]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R16",Imm(64)),LittleEndian(),64)), -Def(Tid(1_035, "%0000040b"), Attrs([Attr("address","0x5D8"), -Attr("insn","add x16, x16, #0x0")]), Var("R16",Imm(64)), -Var("R16",Imm(64)))]), Jmps([Call(Tid(1_040, "%00000410"), - Attrs([Attr("address","0x5DC"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), Sub(Tid(1_304, "@_fini"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x76C")]), - "_fini", Args([Arg(Tid(1_356, "%0000054c"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("_fini_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(31, "@_fini"), - Attrs([Attr("address","0x76C")]), Phis([]), Defs([Def(Tid(37, "%00000025"), - Attrs([Attr("address","0x770"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("#0",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(18446744073709551600,64))), -Def(Tid(43, "%0000002b"), Attrs([Attr("address","0x770"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("#0",Imm(64)),Var("R29",Imm(64)),LittleEndian(),64)), -Def(Tid(49, "%00000031"), Attrs([Attr("address","0x770"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("#0",Imm(64)),Int(8,64)),Var("R30",Imm(64)),LittleEndian(),64)), -Def(Tid(53, "%00000035"), Attrs([Attr("address","0x770"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("R31",Imm(64)), -Var("#0",Imm(64))), Def(Tid(59, "%0000003b"), Attrs([Attr("address","0x774"), -Attr("insn","mov x29, sp")]), Var("R29",Imm(64)), Var("R31",Imm(64))), -Def(Tid(66, "%00000042"), Attrs([Attr("address","0x778"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R29",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(71, "%00000047"), Attrs([Attr("address","0x778"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R30",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(75, "%0000004b"), Attrs([Attr("address","0x778"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(16,64)))]), Jmps([Call(Tid(80, "%00000050"), - Attrs([Attr("address","0x77C"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), Sub(Tid(1_305, "@_init"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x598")]), - "_init", Args([Arg(Tid(1_357, "%0000054d"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("_init_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(1_134, "@_init"), - Attrs([Attr("address","0x598")]), Phis([]), -Defs([Def(Tid(1_140, "%00000474"), Attrs([Attr("address","0x59C"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("#5",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(18446744073709551600,64))), -Def(Tid(1_146, "%0000047a"), Attrs([Attr("address","0x59C"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("#5",Imm(64)),Var("R29",Imm(64)),LittleEndian(),64)), -Def(Tid(1_152, "%00000480"), Attrs([Attr("address","0x59C"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("#5",Imm(64)),Int(8,64)),Var("R30",Imm(64)),LittleEndian(),64)), -Def(Tid(1_156, "%00000484"), Attrs([Attr("address","0x59C"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("R31",Imm(64)), -Var("#5",Imm(64))), Def(Tid(1_162, "%0000048a"), - Attrs([Attr("address","0x5A0"), Attr("insn","mov x29, sp")]), - Var("R29",Imm(64)), Var("R31",Imm(64))), Def(Tid(1_167, "%0000048f"), - Attrs([Attr("address","0x5A4"), Attr("insn","bl #0xd0")]), - Var("R30",Imm(64)), Int(1448,64))]), Jmps([Call(Tid(1_169, "%00000491"), - Attrs([Attr("address","0x5A4"), Attr("insn","bl #0xd0")]), Int(1,1), -(Direct(Tid(1_310, "@call_weak_fn")),Direct(Tid(1_171, "%00000493"))))])), -Blk(Tid(1_171, "%00000493"), Attrs([Attr("address","0x5A8")]), Phis([]), -Defs([Def(Tid(1_176, "%00000498"), Attrs([Attr("address","0x5A8"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R29",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(1_181, "%0000049d"), Attrs([Attr("address","0x5A8"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R30",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(1_185, "%000004a1"), Attrs([Attr("address","0x5A8"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(16,64)))]), Jmps([Call(Tid(1_190, "%000004a6"), - Attrs([Attr("address","0x5AC"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), Sub(Tid(1_306, "@_start"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x640"), -Attr("entry-point","()")]), "_start", Args([Arg(Tid(1_358, "%0000054e"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("_start_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(384, "@_start"), - Attrs([Attr("address","0x640")]), Phis([]), Defs([Def(Tid(389, "%00000185"), - Attrs([Attr("address","0x644"), Attr("insn","mov x29, #0x0")]), - Var("R29",Imm(64)), Int(0,64)), Def(Tid(394, "%0000018a"), - Attrs([Attr("address","0x648"), Attr("insn","mov x30, #0x0")]), - Var("R30",Imm(64)), Int(0,64)), Def(Tid(400, "%00000190"), - Attrs([Attr("address","0x64C"), Attr("insn","mov x5, x0")]), - Var("R5",Imm(64)), Var("R0",Imm(64))), Def(Tid(407, "%00000197"), - Attrs([Attr("address","0x650"), Attr("insn","ldr x1, [sp]")]), - Var("R1",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(413, "%0000019d"), Attrs([Attr("address","0x654"), -Attr("insn","add x2, sp, #0x8")]), Var("R2",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(8,64))), Def(Tid(419, "%000001a3"), - Attrs([Attr("address","0x658"), Attr("insn","mov x6, sp")]), - Var("R6",Imm(64)), Var("R31",Imm(64))), Def(Tid(424, "%000001a8"), - Attrs([Attr("address","0x65C"), Attr("insn","adrp x0, #65536")]), - Var("R0",Imm(64)), Int(65536,64)), Def(Tid(431, "%000001af"), - Attrs([Attr("address","0x660"), Attr("insn","ldr x0, [x0, #0xfd8]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(4056,64)),LittleEndian(),64)), -Def(Tid(436, "%000001b4"), Attrs([Attr("address","0x664"), -Attr("insn","mov x3, #0x0")]), Var("R3",Imm(64)), Int(0,64)), -Def(Tid(441, "%000001b9"), Attrs([Attr("address","0x668"), -Attr("insn","mov x4, #0x0")]), Var("R4",Imm(64)), Int(0,64)), -Def(Tid(446, "%000001be"), Attrs([Attr("address","0x66C"), -Attr("insn","bl #-0x9c")]), Var("R30",Imm(64)), Int(1648,64))]), -Jmps([Call(Tid(449, "%000001c1"), Attrs([Attr("address","0x66C"), -Attr("insn","bl #-0x9c")]), Int(1,1), -(Direct(Tid(1_303, "@__libc_start_main")),Direct(Tid(451, "%000001c3"))))])), -Blk(Tid(451, "%000001c3"), Attrs([Attr("address","0x670")]), Phis([]), -Defs([Def(Tid(454, "%000001c6"), Attrs([Attr("address","0x670"), -Attr("insn","bl #-0x70")]), Var("R30",Imm(64)), Int(1652,64))]), -Jmps([Call(Tid(457, "%000001c9"), Attrs([Attr("address","0x670"), -Attr("insn","bl #-0x70")]), Int(1,1), -(Direct(Tid(1_309, "@abort")),Direct(Tid(1_341, "%0000053d"))))])), -Blk(Tid(1_341, "%0000053d"), Attrs([]), Phis([]), Defs([]), -Jmps([Call(Tid(1_342, "%0000053e"), Attrs([]), Int(1,1), -(Direct(Tid(1_310, "@call_weak_fn")),))]))])), Sub(Tid(1_309, "@abort"), - Attrs([Attr("noreturn","()"), Attr("c.proto","void (*)(void)"), -Attr("address","0x600"), Attr("stub","()")]), "abort", Args([]), -Blks([Blk(Tid(455, "@abort"), Attrs([Attr("address","0x600")]), Phis([]), -Defs([Def(Tid(1_088, "%00000440"), Attrs([Attr("address","0x600"), -Attr("insn","adrp x16, #69632")]), Var("R16",Imm(64)), Int(69632,64)), -Def(Tid(1_095, "%00000447"), Attrs([Attr("address","0x604"), -Attr("insn","ldr x17, [x16, #0x18]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(24,64)),LittleEndian(),64)), -Def(Tid(1_101, "%0000044d"), Attrs([Attr("address","0x608"), -Attr("insn","add x16, x16, #0x18")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(24,64)))]), Jmps([Call(Tid(1_106, "%00000452"), - Attrs([Attr("address","0x60C"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), Sub(Tid(1_310, "@call_weak_fn"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x674")]), - "call_weak_fn", Args([Arg(Tid(1_359, "%0000054f"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("call_weak_fn_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(459, "@call_weak_fn"), - Attrs([Attr("address","0x674")]), Phis([]), Defs([Def(Tid(462, "%000001ce"), - Attrs([Attr("address","0x674"), Attr("insn","adrp x0, #65536")]), - Var("R0",Imm(64)), Int(65536,64)), Def(Tid(469, "%000001d5"), - Attrs([Attr("address","0x678"), Attr("insn","ldr x0, [x0, #0xfd0]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(4048,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(475, "%000001db"), Attrs([Attr("address","0x67C"), -Attr("insn","cbz x0, #0x8")]), EQ(Var("R0",Imm(64)),Int(0,64)), -Direct(Tid(473, "%000001d9"))), Goto(Tid(1_343, "%0000053f"), Attrs([]), - Int(1,1), Direct(Tid(860, "%0000035c")))])), Blk(Tid(473, "%000001d9"), - Attrs([Attr("address","0x684")]), Phis([]), Defs([]), -Jmps([Call(Tid(481, "%000001e1"), Attrs([Attr("address","0x684"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))])), -Blk(Tid(860, "%0000035c"), Attrs([Attr("address","0x680")]), Phis([]), -Defs([]), Jmps([Goto(Tid(863, "%0000035f"), Attrs([Attr("address","0x680"), -Attr("insn","b #-0x90")]), Int(1,1), Direct(Tid(861, "@__gmon_start__")))])), -Blk(Tid(861, "@__gmon_start__"), Attrs([Attr("address","0x5F0")]), Phis([]), -Defs([Def(Tid(1_066, "%0000042a"), Attrs([Attr("address","0x5F0"), -Attr("insn","adrp x16, #69632")]), Var("R16",Imm(64)), Int(69632,64)), -Def(Tid(1_073, "%00000431"), Attrs([Attr("address","0x5F4"), -Attr("insn","ldr x17, [x16, #0x10]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(16,64)),LittleEndian(),64)), -Def(Tid(1_079, "%00000437"), Attrs([Attr("address","0x5F8"), -Attr("insn","add x16, x16, #0x10")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(16,64)))]), Jmps([Call(Tid(1_084, "%0000043c"), - Attrs([Attr("address","0x5FC"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), -Sub(Tid(1_312, "@deregister_tm_clones"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x690")]), - "deregister_tm_clones", Args([Arg(Tid(1_360, "%00000550"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("deregister_tm_clones_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(487, "@deregister_tm_clones"), - Attrs([Attr("address","0x690")]), Phis([]), Defs([Def(Tid(490, "%000001ea"), - Attrs([Attr("address","0x690"), Attr("insn","adrp x0, #69632")]), - Var("R0",Imm(64)), Int(69632,64)), Def(Tid(496, "%000001f0"), - Attrs([Attr("address","0x694"), Attr("insn","add x0, x0, #0x30")]), - Var("R0",Imm(64)), PLUS(Var("R0",Imm(64)),Int(48,64))), -Def(Tid(501, "%000001f5"), Attrs([Attr("address","0x698"), -Attr("insn","adrp x1, #69632")]), Var("R1",Imm(64)), Int(69632,64)), -Def(Tid(507, "%000001fb"), Attrs([Attr("address","0x69C"), -Attr("insn","add x1, x1, #0x30")]), Var("R1",Imm(64)), -PLUS(Var("R1",Imm(64)),Int(48,64))), Def(Tid(513, "%00000201"), - Attrs([Attr("address","0x6A0"), Attr("insn","cmp x1, x0")]), - Var("#1",Imm(64)), NOT(Var("R0",Imm(64)))), Def(Tid(518, "%00000206"), - Attrs([Attr("address","0x6A0"), Attr("insn","cmp x1, x0")]), - Var("#2",Imm(64)), PLUS(Var("R1",Imm(64)),NOT(Var("R0",Imm(64))))), -Def(Tid(524, "%0000020c"), Attrs([Attr("address","0x6A0"), -Attr("insn","cmp x1, x0")]), Var("VF",Imm(1)), -NEQ(SIGNED(65,PLUS(Var("#2",Imm(64)),Int(1,64))),PLUS(PLUS(SIGNED(65,Var("R1",Imm(64))),SIGNED(65,Var("#1",Imm(64)))),Int(1,65)))), -Def(Tid(530, "%00000212"), Attrs([Attr("address","0x6A0"), -Attr("insn","cmp x1, x0")]), Var("CF",Imm(1)), -NEQ(UNSIGNED(65,PLUS(Var("#2",Imm(64)),Int(1,64))),PLUS(PLUS(UNSIGNED(65,Var("R1",Imm(64))),UNSIGNED(65,Var("#1",Imm(64)))),Int(1,65)))), -Def(Tid(534, "%00000216"), Attrs([Attr("address","0x6A0"), -Attr("insn","cmp x1, x0")]), Var("ZF",Imm(1)), -EQ(PLUS(Var("#2",Imm(64)),Int(1,64)),Int(0,64))), Def(Tid(538, "%0000021a"), - Attrs([Attr("address","0x6A0"), Attr("insn","cmp x1, x0")]), - Var("NF",Imm(1)), Extract(63,63,PLUS(Var("#2",Imm(64)),Int(1,64))))]), -Jmps([Goto(Tid(544, "%00000220"), Attrs([Attr("address","0x6A4"), -Attr("insn","b.eq #0x18")]), EQ(Var("ZF",Imm(1)),Int(1,1)), -Direct(Tid(542, "%0000021e"))), Goto(Tid(1_344, "%00000540"), Attrs([]), - Int(1,1), Direct(Tid(830, "%0000033e")))])), Blk(Tid(830, "%0000033e"), - Attrs([Attr("address","0x6A8")]), Phis([]), Defs([Def(Tid(833, "%00000341"), - Attrs([Attr("address","0x6A8"), Attr("insn","adrp x1, #65536")]), - Var("R1",Imm(64)), Int(65536,64)), Def(Tid(840, "%00000348"), - Attrs([Attr("address","0x6AC"), Attr("insn","ldr x1, [x1, #0xfb8]")]), - Var("R1",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R1",Imm(64)),Int(4024,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(845, "%0000034d"), Attrs([Attr("address","0x6B0"), -Attr("insn","cbz x1, #0xc")]), EQ(Var("R1",Imm(64)),Int(0,64)), -Direct(Tid(542, "%0000021e"))), Goto(Tid(1_345, "%00000541"), Attrs([]), - Int(1,1), Direct(Tid(849, "%00000351")))])), Blk(Tid(542, "%0000021e"), - Attrs([Attr("address","0x6BC")]), Phis([]), Defs([]), -Jmps([Call(Tid(550, "%00000226"), Attrs([Attr("address","0x6BC"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))])), -Blk(Tid(849, "%00000351"), Attrs([Attr("address","0x6B4")]), Phis([]), -Defs([Def(Tid(853, "%00000355"), Attrs([Attr("address","0x6B4"), -Attr("insn","mov x16, x1")]), Var("R16",Imm(64)), Var("R1",Imm(64)))]), -Jmps([Call(Tid(858, "%0000035a"), Attrs([Attr("address","0x6B8"), -Attr("insn","br x16")]), Int(1,1), (Indirect(Var("R16",Imm(64))),))]))])), -Sub(Tid(1_315, "@frame_dummy"), Attrs([Attr("c.proto","signed (*)(void)"), -Attr("address","0x750")]), "frame_dummy", Args([Arg(Tid(1_361, "%00000551"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("frame_dummy_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(702, "@frame_dummy"), - Attrs([Attr("address","0x750")]), Phis([]), Defs([]), -Jmps([Call(Tid(704, "%000002c0"), Attrs([Attr("address","0x750"), -Attr("insn","b #-0x90")]), Int(1,1), -(Direct(Tid(1_317, "@register_tm_clones")),))]))])), Sub(Tid(1_316, "@main"), - Attrs([Attr("c.proto","signed (*)(signed argc, const char** argv)"), -Attr("address","0x754")]), "main", Args([Arg(Tid(1_362, "%00000552"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("main_argc",Imm(32)), -LOW(32,Var("R0",Imm(64))), In()), Arg(Tid(1_363, "%00000553"), - Attrs([Attr("c.layout","**[char : 8]"), Attr("c.data","Top:u8 ptr ptr"), -Attr("c.type"," const char**")]), Var("main_argv",Imm(64)), -Var("R1",Imm(64)), Both()), Arg(Tid(1_364, "%00000554"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("main_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(706, "@main"), - Attrs([Attr("address","0x754")]), Phis([]), Defs([Def(Tid(709, "%000002c5"), - Attrs([Attr("address","0x754"), Attr("insn","adrp x9, #65536")]), - Var("R9",Imm(64)), Int(65536,64)), Def(Tid(716, "%000002cc"), - Attrs([Attr("address","0x758"), Attr("insn","ldr x9, [x9, #0xfc8]")]), - Var("R9",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R9",Imm(64)),Int(4040,64)),LittleEndian(),64)), -Def(Tid(721, "%000002d1"), Attrs([Attr("address","0x75C"), -Attr("insn","mov w8, #0x14")]), Var("R8",Imm(64)), Int(20,64)), -Def(Tid(729, "%000002d9"), Attrs([Attr("address","0x760"), -Attr("insn","str w8, [x9]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("R9",Imm(64)),Extract(31,0,Var("R8",Imm(64))),LittleEndian(),32)), -Def(Tid(734, "%000002de"), Attrs([Attr("address","0x764"), -Attr("insn","mov w0, wzr")]), Var("R0",Imm(64)), Int(0,64))]), -Jmps([Call(Tid(739, "%000002e3"), Attrs([Attr("address","0x768"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))]))])), -Sub(Tid(1_317, "@register_tm_clones"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x6C0")]), - "register_tm_clones", Args([Arg(Tid(1_365, "%00000555"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("register_tm_clones_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(552, "@register_tm_clones"), Attrs([Attr("address","0x6C0")]), - Phis([]), Defs([Def(Tid(555, "%0000022b"), Attrs([Attr("address","0x6C0"), -Attr("insn","adrp x0, #69632")]), Var("R0",Imm(64)), Int(69632,64)), -Def(Tid(561, "%00000231"), Attrs([Attr("address","0x6C4"), -Attr("insn","add x0, x0, #0x30")]), Var("R0",Imm(64)), -PLUS(Var("R0",Imm(64)),Int(48,64))), Def(Tid(566, "%00000236"), - Attrs([Attr("address","0x6C8"), Attr("insn","adrp x1, #69632")]), - Var("R1",Imm(64)), Int(69632,64)), Def(Tid(572, "%0000023c"), - Attrs([Attr("address","0x6CC"), Attr("insn","add x1, x1, #0x30")]), - Var("R1",Imm(64)), PLUS(Var("R1",Imm(64)),Int(48,64))), -Def(Tid(579, "%00000243"), Attrs([Attr("address","0x6D0"), -Attr("insn","sub x1, x1, x0")]), Var("R1",Imm(64)), -PLUS(PLUS(Var("R1",Imm(64)),NOT(Var("R0",Imm(64)))),Int(1,64))), -Def(Tid(585, "%00000249"), Attrs([Attr("address","0x6D4"), -Attr("insn","lsr x2, x1, #63")]), Var("R2",Imm(64)), -Concat(Int(0,63),Extract(63,63,Var("R1",Imm(64))))), -Def(Tid(592, "%00000250"), Attrs([Attr("address","0x6D8"), -Attr("insn","add x1, x2, x1, asr #3")]), Var("R1",Imm(64)), -PLUS(Var("R2",Imm(64)),ARSHIFT(Var("R1",Imm(64)),Int(3,3)))), -Def(Tid(598, "%00000256"), Attrs([Attr("address","0x6DC"), -Attr("insn","asr x1, x1, #1")]), Var("R1",Imm(64)), -SIGNED(64,Extract(63,1,Var("R1",Imm(64)))))]), -Jmps([Goto(Tid(604, "%0000025c"), Attrs([Attr("address","0x6E0"), -Attr("insn","cbz x1, #0x18")]), EQ(Var("R1",Imm(64)),Int(0,64)), -Direct(Tid(602, "%0000025a"))), Goto(Tid(1_346, "%00000542"), Attrs([]), - Int(1,1), Direct(Tid(800, "%00000320")))])), Blk(Tid(800, "%00000320"), - Attrs([Attr("address","0x6E4")]), Phis([]), Defs([Def(Tid(803, "%00000323"), - Attrs([Attr("address","0x6E4"), Attr("insn","adrp x2, #65536")]), - Var("R2",Imm(64)), Int(65536,64)), Def(Tid(810, "%0000032a"), - Attrs([Attr("address","0x6E8"), Attr("insn","ldr x2, [x2, #0xfe0]")]), - Var("R2",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R2",Imm(64)),Int(4064,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(815, "%0000032f"), Attrs([Attr("address","0x6EC"), -Attr("insn","cbz x2, #0xc")]), EQ(Var("R2",Imm(64)),Int(0,64)), -Direct(Tid(602, "%0000025a"))), Goto(Tid(1_347, "%00000543"), Attrs([]), - Int(1,1), Direct(Tid(819, "%00000333")))])), Blk(Tid(602, "%0000025a"), - Attrs([Attr("address","0x6F8")]), Phis([]), Defs([]), -Jmps([Call(Tid(610, "%00000262"), Attrs([Attr("address","0x6F8"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))])), -Blk(Tid(819, "%00000333"), Attrs([Attr("address","0x6F0")]), Phis([]), -Defs([Def(Tid(823, "%00000337"), Attrs([Attr("address","0x6F0"), -Attr("insn","mov x16, x2")]), Var("R16",Imm(64)), Var("R2",Imm(64)))]), -Jmps([Call(Tid(828, "%0000033c"), Attrs([Attr("address","0x6F4"), -Attr("insn","br x16")]), Int(1,1), -(Indirect(Var("R16",Imm(64))),))]))]))]))) \ No newline at end of file diff --git a/src/test/correct/basic_loop_assign/clang_pic/basic_loop_assign.bir b/src/test/correct/basic_loop_assign/clang_pic/basic_loop_assign.bir deleted file mode 100644 index 74e6497d1..000000000 --- a/src/test/correct/basic_loop_assign/clang_pic/basic_loop_assign.bir +++ /dev/null @@ -1,228 +0,0 @@ -00000544: program -00000512: sub __cxa_finalize(__cxa_finalize_result) -00000545: __cxa_finalize_result :: out u32 = low:32[R0] - -0000031c: -00000414: R16 := 0x11000 -0000041b: R17 := mem[R16 + 8, el]:u64 -00000421: R16 := R16 + 8 -00000426: call R17 with noreturn - -00000513: sub __do_global_dtors_aux(__do_global_dtors_aux_result) -00000546: __do_global_dtors_aux_result :: out u32 = low:32[R0] - -00000266: -0000026a: #3 := R31 - 0x20 -00000270: mem := mem with [#3, el]:u64 <- R29 -00000276: mem := mem with [#3 + 8, el]:u64 <- R30 -0000027a: R31 := #3 -00000280: R29 := R31 -00000288: mem := mem with [R31 + 0x10, el]:u64 <- R19 -0000028d: R19 := 0x11000 -00000294: R0 := pad:64[mem[R19 + 0x30]] -0000029b: when 31:0[R0] <> 0 goto %00000299 -0000053a: goto %000002e5 - -000002e5: -000002e8: R0 := 0x10000 -000002ef: R0 := mem[R0 + 0xFC0, el]:u64 -000002f5: when R0 = 0 goto %000002f3 -0000053b: goto %0000030c - -0000030c: -0000030f: R0 := 0x11000 -00000316: R0 := mem[R0 + 0x28, el]:u64 -0000031b: R30 := 0x730 -0000031e: call @__cxa_finalize with return %000002f3 - -000002f3: -000002fb: R30 := 0x734 -000002fd: call @deregister_tm_clones with return %000002ff - -000002ff: -00000302: R0 := 1 -0000030a: mem := mem with [R19 + 0x30] <- 7:0[R0] -0000053c: goto %00000299 - -00000299: -000002a3: R19 := mem[R31 + 0x10, el]:u64 -000002aa: R29 := mem[R31, el]:u64 -000002af: R30 := mem[R31 + 8, el]:u64 -000002b3: R31 := R31 + 0x20 -000002b8: call R30 with noreturn - -00000517: sub __libc_start_main(__libc_start_main_main, __libc_start_main_arg2, __libc_start_main_arg3, __libc_start_main_auxv, __libc_start_main_result) -00000547: __libc_start_main_main :: in u64 = R0 -00000548: __libc_start_main_arg2 :: in u32 = low:32[R1] -00000549: __libc_start_main_arg3 :: in out u64 = R2 -0000054a: __libc_start_main_auxv :: in out u64 = R3 -0000054b: __libc_start_main_result :: out u32 = low:32[R0] - -000001bf: -000003fe: R16 := 0x11000 -00000405: R17 := mem[R16, el]:u64 -0000040b: R16 := R16 -00000410: call R17 with noreturn - -00000518: sub _fini(_fini_result) -0000054c: _fini_result :: out u32 = low:32[R0] - -0000001f: -00000025: #0 := R31 - 0x10 -0000002b: mem := mem with [#0, el]:u64 <- R29 -00000031: mem := mem with [#0 + 8, el]:u64 <- R30 -00000035: R31 := #0 -0000003b: R29 := R31 -00000042: R29 := mem[R31, el]:u64 -00000047: R30 := mem[R31 + 8, el]:u64 -0000004b: R31 := R31 + 0x10 -00000050: call R30 with noreturn - -00000519: sub _init(_init_result) -0000054d: _init_result :: out u32 = low:32[R0] - -0000046e: -00000474: #5 := R31 - 0x10 -0000047a: mem := mem with [#5, el]:u64 <- R29 -00000480: mem := mem with [#5 + 8, el]:u64 <- R30 -00000484: R31 := #5 -0000048a: R29 := R31 -0000048f: R30 := 0x5A8 -00000491: call @call_weak_fn with return %00000493 - -00000493: -00000498: R29 := mem[R31, el]:u64 -0000049d: R30 := mem[R31 + 8, el]:u64 -000004a1: R31 := R31 + 0x10 -000004a6: call R30 with noreturn - -0000051a: sub _start(_start_result) -0000054e: _start_result :: out u32 = low:32[R0] - -00000180: -00000185: R29 := 0 -0000018a: R30 := 0 -00000190: R5 := R0 -00000197: R1 := mem[R31, el]:u64 -0000019d: R2 := R31 + 8 -000001a3: R6 := R31 -000001a8: R0 := 0x10000 -000001af: R0 := mem[R0 + 0xFD8, el]:u64 -000001b4: R3 := 0 -000001b9: R4 := 0 -000001be: R30 := 0x670 -000001c1: call @__libc_start_main with return %000001c3 - -000001c3: -000001c6: R30 := 0x674 -000001c9: call @abort with return %0000053d - -0000053d: -0000053e: call @call_weak_fn with noreturn - -0000051d: sub abort() - - -000001c7: -00000440: R16 := 0x11000 -00000447: R17 := mem[R16 + 0x18, el]:u64 -0000044d: R16 := R16 + 0x18 -00000452: call R17 with noreturn - -0000051e: sub call_weak_fn(call_weak_fn_result) -0000054f: call_weak_fn_result :: out u32 = low:32[R0] - -000001cb: -000001ce: R0 := 0x10000 -000001d5: R0 := mem[R0 + 0xFD0, el]:u64 -000001db: when R0 = 0 goto %000001d9 -0000053f: goto %0000035c - -000001d9: -000001e1: call R30 with noreturn - -0000035c: -0000035f: goto @__gmon_start__ - -0000035d: -0000042a: R16 := 0x11000 -00000431: R17 := mem[R16 + 0x10, el]:u64 -00000437: R16 := R16 + 0x10 -0000043c: call R17 with noreturn - -00000520: sub deregister_tm_clones(deregister_tm_clones_result) -00000550: deregister_tm_clones_result :: out u32 = low:32[R0] - -000001e7: -000001ea: R0 := 0x11000 -000001f0: R0 := R0 + 0x30 -000001f5: R1 := 0x11000 -000001fb: R1 := R1 + 0x30 -00000201: #1 := ~R0 -00000206: #2 := R1 + ~R0 -0000020c: VF := extend:65[#2 + 1] <> extend:65[R1] + extend:65[#1] + 1 -00000212: CF := pad:65[#2 + 1] <> pad:65[R1] + pad:65[#1] + 1 -00000216: ZF := #2 + 1 = 0 -0000021a: NF := 63:63[#2 + 1] -00000220: when ZF goto %0000021e -00000540: goto %0000033e - -0000033e: -00000341: R1 := 0x10000 -00000348: R1 := mem[R1 + 0xFB8, el]:u64 -0000034d: when R1 = 0 goto %0000021e -00000541: goto %00000351 - -0000021e: -00000226: call R30 with noreturn - -00000351: -00000355: R16 := R1 -0000035a: call R16 with noreturn - -00000523: sub frame_dummy(frame_dummy_result) -00000551: frame_dummy_result :: out u32 = low:32[R0] - -000002be: -000002c0: call @register_tm_clones with noreturn - -00000524: sub main(main_argc, main_argv, main_result) -00000552: main_argc :: in u32 = low:32[R0] -00000553: main_argv :: in out u64 = R1 -00000554: main_result :: out u32 = low:32[R0] - -000002c2: -000002c5: R9 := 0x10000 -000002cc: R9 := mem[R9 + 0xFC8, el]:u64 -000002d1: R8 := 0x14 -000002d9: mem := mem with [R9, el]:u32 <- 31:0[R8] -000002de: R0 := 0 -000002e3: call R30 with noreturn - -00000525: sub register_tm_clones(register_tm_clones_result) -00000555: register_tm_clones_result :: out u32 = low:32[R0] - -00000228: -0000022b: R0 := 0x11000 -00000231: R0 := R0 + 0x30 -00000236: R1 := 0x11000 -0000023c: R1 := R1 + 0x30 -00000243: R1 := R1 + ~R0 + 1 -00000249: R2 := 0.63:63[R1] -00000250: R1 := R2 + (R1 ~>> 3) -00000256: R1 := extend:64[63:1[R1]] -0000025c: when R1 = 0 goto %0000025a -00000542: goto %00000320 - -00000320: -00000323: R2 := 0x10000 -0000032a: R2 := mem[R2 + 0xFE0, el]:u64 -0000032f: when R2 = 0 goto %0000025a -00000543: goto %00000333 - -0000025a: -00000262: call R30 with noreturn - -00000333: -00000337: R16 := R2 -0000033c: call R16 with noreturn diff --git a/src/test/correct/basic_loop_assign/clang_pic/basic_loop_assign.expected b/src/test/correct/basic_loop_assign/clang_pic/basic_loop_assign.expected index 984fae2eb..a18e26193 100644 --- a/src/test/correct/basic_loop_assign/clang_pic/basic_loop_assign.expected +++ b/src/test/correct/basic_loop_assign/clang_pic/basic_loop_assign.expected @@ -7,7 +7,7 @@ var {:extern} R8: bv64; var {:extern} R9: bv64; var {:extern} mem: [bv64]bv8; const {:extern} $x_addr: bv64; -axiom ($x_addr == 69684bv64); +axiom ($x_addr == 131092bv64); function {:extern} L(mem$in: [bv64]bv8, index: bv64) returns (bool) { (if (index == $x_addr) then true else false) } @@ -39,12 +39,12 @@ procedure {:extern} rely(); modifies Gamma_mem, mem; ensures (forall i: bv64 :: (((mem[i] == old(mem[i])) ==> (Gamma_mem[i] == old(Gamma_mem[i]))))); ensures (((memory_load32_le(mem, $x_addr) == old(memory_load32_le(mem, $x_addr))) || (bvsle32(memory_load32_le(mem, $x_addr), 10bv32) && bvslt32(old(memory_load32_le(mem, $x_addr)), 10bv32))) || ((memory_load32_le(mem, $x_addr) == 21bv32) && (old(memory_load32_le(mem, $x_addr)) == 20bv32))); - free ensures (memory_load32_le(mem, 1920bv64) == 131073bv32); - free ensures (memory_load64_le(mem, 69056bv64) == 1872bv64); - free ensures (memory_load64_le(mem, 69064bv64) == 1792bv64); - free ensures (memory_load64_le(mem, 69576bv64) == 69684bv64); - free ensures (memory_load64_le(mem, 69592bv64) == 1876bv64); - free ensures (memory_load64_le(mem, 69672bv64) == 69672bv64); + free ensures (memory_load32_le(mem, 2304bv64) == 131073bv32); + free ensures (memory_load64_le(mem, 130432bv64) == 2256bv64); + free ensures (memory_load64_le(mem, 130440bv64) == 2176bv64); + free ensures (memory_load64_le(mem, 131040bv64) == 131092bv64); + free ensures (memory_load64_le(mem, 131056bv64) == 2260bv64); + free ensures (memory_load64_le(mem, 131080bv64) == 131080bv64); procedure {:extern} rely_transitive(); modifies Gamma_mem, mem; @@ -71,47 +71,47 @@ implementation {:extern} guarantee_reflexive() assert (((memory_load32_le(mem, $x_addr) == memory_load32_le(mem, $x_addr)) || ((memory_load32_le(mem, $x_addr) == 20bv32) && (memory_load32_le(mem, $x_addr) == 0bv32))) || ((memory_load32_le(mem, $x_addr) == 20bv32) && bvsle32(memory_load32_le(mem, $x_addr), 10bv32))); } -procedure main_1876(); +procedure main(); modifies Gamma_R0, Gamma_R8, Gamma_R9, Gamma_mem, R0, R8, R9, mem; requires (memory_load32_le(mem, $x_addr) == 0bv32); - free requires (memory_load64_le(mem, 69664bv64) == 0bv64); - free requires (memory_load64_le(mem, 69672bv64) == 69672bv64); - free requires (memory_load32_le(mem, 1920bv64) == 131073bv32); - free requires (memory_load64_le(mem, 69056bv64) == 1872bv64); - free requires (memory_load64_le(mem, 69064bv64) == 1792bv64); - free requires (memory_load64_le(mem, 69576bv64) == 69684bv64); - free requires (memory_load64_le(mem, 69592bv64) == 1876bv64); - free requires (memory_load64_le(mem, 69672bv64) == 69672bv64); + free requires (memory_load64_le(mem, 131072bv64) == 0bv64); + free requires (memory_load64_le(mem, 131080bv64) == 131080bv64); + free requires (memory_load32_le(mem, 2304bv64) == 131073bv32); + free requires (memory_load64_le(mem, 130432bv64) == 2256bv64); + free requires (memory_load64_le(mem, 130440bv64) == 2176bv64); + free requires (memory_load64_le(mem, 131040bv64) == 131092bv64); + free requires (memory_load64_le(mem, 131056bv64) == 2260bv64); + free requires (memory_load64_le(mem, 131080bv64) == 131080bv64); ensures ((memory_load32_le(mem, $x_addr) == 20bv32) || (memory_load32_le(mem, $x_addr) == 21bv32)); - free ensures (memory_load32_le(mem, 1920bv64) == 131073bv32); - free ensures (memory_load64_le(mem, 69056bv64) == 1872bv64); - free ensures (memory_load64_le(mem, 69064bv64) == 1792bv64); - free ensures (memory_load64_le(mem, 69576bv64) == 69684bv64); - free ensures (memory_load64_le(mem, 69592bv64) == 1876bv64); - free ensures (memory_load64_le(mem, 69672bv64) == 69672bv64); + free ensures (memory_load32_le(mem, 2304bv64) == 131073bv32); + free ensures (memory_load64_le(mem, 130432bv64) == 2256bv64); + free ensures (memory_load64_le(mem, 130440bv64) == 2176bv64); + free ensures (memory_load64_le(mem, 131040bv64) == 131092bv64); + free ensures (memory_load64_le(mem, 131056bv64) == 2260bv64); + free ensures (memory_load64_le(mem, 131080bv64) == 131080bv64); -implementation main_1876() +implementation main() { - var Gamma_load18: bool; - var load18: bv64; + var $load$18: bv64; + var Gamma_$load$18: bool; var x_old: bv32; lmain: assume {:captureState "lmain"} true; - R9, Gamma_R9 := 65536bv64, true; + R8, Gamma_R8 := 126976bv64, true; + R9, Gamma_R9 := 20bv64, true; + R0, Gamma_R0 := 0bv64, true; call rely(); - load18, Gamma_load18 := memory_load64_le(mem, bvadd64(R9, 4040bv64)), (gamma_load64(Gamma_mem, bvadd64(R9, 4040bv64)) || L(mem, bvadd64(R9, 4040bv64))); - R9, Gamma_R9 := load18, Gamma_load18; - R8, Gamma_R8 := 20bv64, true; + $load$18, Gamma_$load$18 := memory_load64_le(mem, bvadd64(R8, 4064bv64)), (gamma_load64(Gamma_mem, bvadd64(R8, 4064bv64)) || L(mem, bvadd64(R8, 4064bv64))); + R8, Gamma_R8 := $load$18, Gamma_$load$18; call rely(); + assert (L(mem, R8) ==> Gamma_R9); x_old := memory_load32_le(mem, $x_addr); - assert (L(mem, R9) ==> Gamma_R8); - mem, Gamma_mem := memory_store32_le(mem, R9, R8[32:0]), gamma_store32(Gamma_mem, R9, Gamma_R8); + mem, Gamma_mem := memory_store32_le(mem, R8, R9[32:0]), gamma_store32(Gamma_mem, R8, Gamma_R9); assert (((memory_load32_le(mem, $x_addr) == x_old) || ((memory_load32_le(mem, $x_addr) == 20bv32) && (x_old == 0bv32))) || ((memory_load32_le(mem, $x_addr) == 20bv32) && bvsle32(x_old, 10bv32))); - assume {:captureState "%000002d9"} true; - R0, Gamma_R0 := 0bv64, true; - goto main_1876_basil_return; - main_1876_basil_return: - assume {:captureState "main_1876_basil_return"} true; + assume {:captureState "%0000028c"} true; + goto main_basil_return; + main_basil_return: + assume {:captureState "main_basil_return"} true; return; } diff --git a/src/test/correct/basic_loop_assign/clang_pic/basic_loop_assign.gts b/src/test/correct/basic_loop_assign/clang_pic/basic_loop_assign.gts deleted file mode 100644 index 945ba0858..000000000 Binary files a/src/test/correct/basic_loop_assign/clang_pic/basic_loop_assign.gts and /dev/null differ diff --git a/src/test/correct/basic_loop_assign/clang_pic/basic_loop_assign.md5sum b/src/test/correct/basic_loop_assign/clang_pic/basic_loop_assign.md5sum new file mode 100644 index 000000000..0c6fd0e3c --- /dev/null +++ b/src/test/correct/basic_loop_assign/clang_pic/basic_loop_assign.md5sum @@ -0,0 +1,5 @@ +b1f1811e3ffe325399df4f15c6fcac3d correct/basic_loop_assign/clang_pic/a.out +0cc546201d0dc7ff98ddebf115ea1658 correct/basic_loop_assign/clang_pic/basic_loop_assign.adt +4fca98964c758fa21321a5137828c0f8 correct/basic_loop_assign/clang_pic/basic_loop_assign.bir +b94dc044ebf626cbcd9695aae3159334 correct/basic_loop_assign/clang_pic/basic_loop_assign.relf +8f53703370046c7d21156d3aad461ed5 correct/basic_loop_assign/clang_pic/basic_loop_assign.gts diff --git a/src/test/correct/basic_loop_assign/clang_pic/basic_loop_assign.relf b/src/test/correct/basic_loop_assign/clang_pic/basic_loop_assign.relf deleted file mode 100644 index 875b2fa52..000000000 --- a/src/test/correct/basic_loop_assign/clang_pic/basic_loop_assign.relf +++ /dev/null @@ -1,124 +0,0 @@ - -Relocation section '.rela.dyn' at offset 0x460 contains 9 entries: - Offset Info Type Symbol's Value Symbol's Name + Addend -0000000000010dc0 0000000000000403 R_AARCH64_RELATIVE 750 -0000000000010dc8 0000000000000403 R_AARCH64_RELATIVE 700 -0000000000010fc8 0000000000000403 R_AARCH64_RELATIVE 11034 -0000000000010fd8 0000000000000403 R_AARCH64_RELATIVE 754 -0000000000011028 0000000000000403 R_AARCH64_RELATIVE 11028 -0000000000010fb8 0000000400000401 R_AARCH64_GLOB_DAT 0000000000000000 _ITM_deregisterTMCloneTable + 0 -0000000000010fc0 0000000500000401 R_AARCH64_GLOB_DAT 0000000000000000 __cxa_finalize@GLIBC_2.17 + 0 -0000000000010fd0 0000000600000401 R_AARCH64_GLOB_DAT 0000000000000000 __gmon_start__ + 0 -0000000000010fe0 0000000800000401 R_AARCH64_GLOB_DAT 0000000000000000 _ITM_registerTMCloneTable + 0 - -Relocation section '.rela.plt' at offset 0x538 contains 4 entries: - Offset Info Type Symbol's Value Symbol's Name + Addend -0000000000011000 0000000300000402 R_AARCH64_JUMP_SLOT 0000000000000000 __libc_start_main@GLIBC_2.34 + 0 -0000000000011008 0000000500000402 R_AARCH64_JUMP_SLOT 0000000000000000 __cxa_finalize@GLIBC_2.17 + 0 -0000000000011010 0000000600000402 R_AARCH64_JUMP_SLOT 0000000000000000 __gmon_start__ + 0 -0000000000011018 0000000700000402 R_AARCH64_JUMP_SLOT 0000000000000000 abort@GLIBC_2.17 + 0 - -Symbol table '.dynsym' contains 9 entries: - Num: Value Size Type Bind Vis Ndx Name - 0: 0000000000000000 0 NOTYPE LOCAL DEFAULT UND - 1: 0000000000000598 0 SECTION LOCAL DEFAULT 11 .init - 2: 0000000000011020 0 SECTION LOCAL DEFAULT 23 .data - 3: 0000000000000000 0 FUNC GLOBAL DEFAULT UND __libc_start_main@GLIBC_2.34 (2) - 4: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_deregisterTMCloneTable - 5: 0000000000000000 0 FUNC WEAK DEFAULT UND __cxa_finalize@GLIBC_2.17 (3) - 6: 0000000000000000 0 NOTYPE WEAK DEFAULT UND __gmon_start__ - 7: 0000000000000000 0 FUNC GLOBAL DEFAULT UND abort@GLIBC_2.17 (3) - 8: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_registerTMCloneTable - -Symbol table '.symtab' contains 90 entries: - Num: Value Size Type Bind Vis Ndx Name - 0: 0000000000000000 0 NOTYPE LOCAL DEFAULT UND - 1: 0000000000000238 0 SECTION LOCAL DEFAULT 1 .interp - 2: 0000000000000254 0 SECTION LOCAL DEFAULT 2 .note.gnu.build-id - 3: 0000000000000278 0 SECTION LOCAL DEFAULT 3 .note.ABI-tag - 4: 0000000000000298 0 SECTION LOCAL DEFAULT 4 .gnu.hash - 5: 00000000000002b8 0 SECTION LOCAL DEFAULT 5 .dynsym - 6: 0000000000000390 0 SECTION LOCAL DEFAULT 6 .dynstr - 7: 000000000000041e 0 SECTION LOCAL DEFAULT 7 .gnu.version - 8: 0000000000000430 0 SECTION LOCAL DEFAULT 8 .gnu.version_r - 9: 0000000000000460 0 SECTION LOCAL DEFAULT 9 .rela.dyn - 10: 0000000000000538 0 SECTION LOCAL DEFAULT 10 .rela.plt - 11: 0000000000000598 0 SECTION LOCAL DEFAULT 11 .init - 12: 00000000000005b0 0 SECTION LOCAL DEFAULT 12 .plt - 13: 0000000000000640 0 SECTION LOCAL DEFAULT 13 .text - 14: 000000000000076c 0 SECTION LOCAL DEFAULT 14 .fini - 15: 0000000000000780 0 SECTION LOCAL DEFAULT 15 .rodata - 16: 0000000000000784 0 SECTION LOCAL DEFAULT 16 .eh_frame_hdr - 17: 00000000000007c0 0 SECTION LOCAL DEFAULT 17 .eh_frame - 18: 0000000000010dc0 0 SECTION LOCAL DEFAULT 18 .init_array - 19: 0000000000010dc8 0 SECTION LOCAL DEFAULT 19 .fini_array - 20: 0000000000010dd0 0 SECTION LOCAL DEFAULT 20 .dynamic - 21: 0000000000010fb0 0 SECTION LOCAL DEFAULT 21 .got - 22: 0000000000010fe8 0 SECTION LOCAL DEFAULT 22 .got.plt - 23: 0000000000011020 0 SECTION LOCAL DEFAULT 23 .data - 24: 0000000000011030 0 SECTION LOCAL DEFAULT 24 .bss - 25: 0000000000000000 0 SECTION LOCAL DEFAULT 25 .comment - 26: 0000000000000000 0 FILE LOCAL DEFAULT ABS Scrt1.o - 27: 0000000000000278 0 NOTYPE LOCAL DEFAULT 3 $d - 28: 0000000000000278 32 OBJECT LOCAL DEFAULT 3 __abi_tag - 29: 0000000000000640 0 NOTYPE LOCAL DEFAULT 13 $x - 30: 00000000000007d4 0 NOTYPE LOCAL DEFAULT 17 $d - 31: 0000000000000780 0 NOTYPE LOCAL DEFAULT 15 $d - 32: 0000000000000000 0 FILE LOCAL DEFAULT ABS crti.o - 33: 0000000000000674 0 NOTYPE LOCAL DEFAULT 13 $x - 34: 0000000000000674 20 FUNC LOCAL DEFAULT 13 call_weak_fn - 35: 0000000000000598 0 NOTYPE LOCAL DEFAULT 11 $x - 36: 000000000000076c 0 NOTYPE LOCAL DEFAULT 14 $x - 37: 0000000000000000 0 FILE LOCAL DEFAULT ABS crtn.o - 38: 00000000000005a8 0 NOTYPE LOCAL DEFAULT 11 $x - 39: 0000000000000778 0 NOTYPE LOCAL DEFAULT 14 $x - 40: 0000000000000000 0 FILE LOCAL DEFAULT ABS crtstuff.c - 41: 0000000000000690 0 NOTYPE LOCAL DEFAULT 13 $x - 42: 0000000000000690 0 FUNC LOCAL DEFAULT 13 deregister_tm_clones - 43: 00000000000006c0 0 FUNC LOCAL DEFAULT 13 register_tm_clones - 44: 0000000000011028 0 NOTYPE LOCAL DEFAULT 23 $d - 45: 0000000000000700 0 FUNC LOCAL DEFAULT 13 __do_global_dtors_aux - 46: 0000000000011030 1 OBJECT LOCAL DEFAULT 24 completed.0 - 47: 0000000000010dc8 0 NOTYPE LOCAL DEFAULT 19 $d - 48: 0000000000010dc8 0 OBJECT LOCAL DEFAULT 19 __do_global_dtors_aux_fini_array_entry - 49: 0000000000000750 0 FUNC LOCAL DEFAULT 13 frame_dummy - 50: 0000000000010dc0 0 NOTYPE LOCAL DEFAULT 18 $d - 51: 0000000000010dc0 0 OBJECT LOCAL DEFAULT 18 __frame_dummy_init_array_entry - 52: 00000000000007e8 0 NOTYPE LOCAL DEFAULT 17 $d - 53: 0000000000011030 0 NOTYPE LOCAL DEFAULT 24 $d - 54: 0000000000000000 0 FILE LOCAL DEFAULT ABS basic_loop_assign.c - 55: 0000000000000754 0 NOTYPE LOCAL DEFAULT 13 $x.0 - 56: 0000000000011034 0 NOTYPE LOCAL DEFAULT 24 $d.1 - 57: 000000000000002a 0 NOTYPE LOCAL DEFAULT 25 $d.2 - 58: 0000000000000848 0 NOTYPE LOCAL DEFAULT 17 $d.3 - 59: 0000000000000000 0 FILE LOCAL DEFAULT ABS crtstuff.c - 60: 0000000000000870 0 NOTYPE LOCAL DEFAULT 17 $d - 61: 0000000000000870 0 OBJECT LOCAL DEFAULT 17 __FRAME_END__ - 62: 0000000000000000 0 FILE LOCAL DEFAULT ABS - 63: 0000000000010dd0 0 OBJECT LOCAL DEFAULT ABS _DYNAMIC - 64: 0000000000000784 0 NOTYPE LOCAL DEFAULT 16 __GNU_EH_FRAME_HDR - 65: 0000000000010fb0 0 OBJECT LOCAL DEFAULT ABS _GLOBAL_OFFSET_TABLE_ - 66: 00000000000005b0 0 NOTYPE LOCAL DEFAULT 12 $x - 67: 0000000000000000 0 FUNC GLOBAL DEFAULT UND __libc_start_main@GLIBC_2.34 - 68: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_deregisterTMCloneTable - 69: 0000000000011020 0 NOTYPE WEAK DEFAULT 23 data_start - 70: 0000000000011030 0 NOTYPE GLOBAL DEFAULT 24 __bss_start__ - 71: 0000000000000000 0 FUNC WEAK DEFAULT UND __cxa_finalize@GLIBC_2.17 - 72: 0000000000011038 0 NOTYPE GLOBAL DEFAULT 24 _bss_end__ - 73: 0000000000011030 0 NOTYPE GLOBAL DEFAULT 23 _edata - 74: 0000000000011034 4 OBJECT GLOBAL DEFAULT 24 x - 75: 000000000000076c 0 FUNC GLOBAL HIDDEN 14 _fini - 76: 0000000000011038 0 NOTYPE GLOBAL DEFAULT 24 __bss_end__ - 77: 0000000000011020 0 NOTYPE GLOBAL DEFAULT 23 __data_start - 78: 0000000000000000 0 NOTYPE WEAK DEFAULT UND __gmon_start__ - 79: 0000000000011028 0 OBJECT GLOBAL HIDDEN 23 __dso_handle - 80: 0000000000000000 0 FUNC GLOBAL DEFAULT UND abort@GLIBC_2.17 - 81: 0000000000000780 4 OBJECT GLOBAL DEFAULT 15 _IO_stdin_used - 82: 0000000000011038 0 NOTYPE GLOBAL DEFAULT 24 _end - 83: 0000000000000640 52 FUNC GLOBAL DEFAULT 13 _start - 84: 0000000000011038 0 NOTYPE GLOBAL DEFAULT 24 __end__ - 85: 0000000000011030 0 NOTYPE GLOBAL DEFAULT 24 __bss_start - 86: 0000000000000754 24 FUNC GLOBAL DEFAULT 13 main - 87: 0000000000011030 0 OBJECT GLOBAL HIDDEN 23 __TMC_END__ - 88: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_registerTMCloneTable - 89: 0000000000000598 0 FUNC GLOBAL HIDDEN 11 _init diff --git a/src/test/correct/basic_loop_assign/clang_pic/basic_loop_assign_gtirb.expected b/src/test/correct/basic_loop_assign/clang_pic/basic_loop_assign_gtirb.expected index 782a8ac1b..c294b6b10 100644 --- a/src/test/correct/basic_loop_assign/clang_pic/basic_loop_assign_gtirb.expected +++ b/src/test/correct/basic_loop_assign/clang_pic/basic_loop_assign_gtirb.expected @@ -7,7 +7,7 @@ var {:extern} R8: bv64; var {:extern} R9: bv64; var {:extern} mem: [bv64]bv8; const {:extern} $x_addr: bv64; -axiom ($x_addr == 69684bv64); +axiom ($x_addr == 131092bv64); function {:extern} L(mem$in: [bv64]bv8, index: bv64) returns (bool) { (if (index == $x_addr) then true else false) } @@ -39,12 +39,12 @@ procedure {:extern} rely(); modifies Gamma_mem, mem; ensures (forall i: bv64 :: (((mem[i] == old(mem[i])) ==> (Gamma_mem[i] == old(Gamma_mem[i]))))); ensures (((memory_load32_le(mem, $x_addr) == old(memory_load32_le(mem, $x_addr))) || (bvsle32(memory_load32_le(mem, $x_addr), 10bv32) && bvslt32(old(memory_load32_le(mem, $x_addr)), 10bv32))) || ((memory_load32_le(mem, $x_addr) == 21bv32) && (old(memory_load32_le(mem, $x_addr)) == 20bv32))); - free ensures (memory_load32_le(mem, 1920bv64) == 131073bv32); - free ensures (memory_load64_le(mem, 69056bv64) == 1872bv64); - free ensures (memory_load64_le(mem, 69064bv64) == 1792bv64); - free ensures (memory_load64_le(mem, 69576bv64) == 69684bv64); - free ensures (memory_load64_le(mem, 69592bv64) == 1876bv64); - free ensures (memory_load64_le(mem, 69672bv64) == 69672bv64); + free ensures (memory_load32_le(mem, 2304bv64) == 131073bv32); + free ensures (memory_load64_le(mem, 130432bv64) == 2256bv64); + free ensures (memory_load64_le(mem, 130440bv64) == 2176bv64); + free ensures (memory_load64_le(mem, 131040bv64) == 131092bv64); + free ensures (memory_load64_le(mem, 131056bv64) == 2260bv64); + free ensures (memory_load64_le(mem, 131080bv64) == 131080bv64); procedure {:extern} rely_transitive(); modifies Gamma_mem, mem; @@ -71,47 +71,47 @@ implementation {:extern} guarantee_reflexive() assert (((memory_load32_le(mem, $x_addr) == memory_load32_le(mem, $x_addr)) || ((memory_load32_le(mem, $x_addr) == 20bv32) && (memory_load32_le(mem, $x_addr) == 0bv32))) || ((memory_load32_le(mem, $x_addr) == 20bv32) && bvsle32(memory_load32_le(mem, $x_addr), 10bv32))); } -procedure main_1876(); +procedure main(); modifies Gamma_R0, Gamma_R8, Gamma_R9, Gamma_mem, R0, R8, R9, mem; requires (memory_load32_le(mem, $x_addr) == 0bv32); - free requires (memory_load64_le(mem, 69664bv64) == 0bv64); - free requires (memory_load64_le(mem, 69672bv64) == 69672bv64); - free requires (memory_load32_le(mem, 1920bv64) == 131073bv32); - free requires (memory_load64_le(mem, 69056bv64) == 1872bv64); - free requires (memory_load64_le(mem, 69064bv64) == 1792bv64); - free requires (memory_load64_le(mem, 69576bv64) == 69684bv64); - free requires (memory_load64_le(mem, 69592bv64) == 1876bv64); - free requires (memory_load64_le(mem, 69672bv64) == 69672bv64); + free requires (memory_load64_le(mem, 131072bv64) == 0bv64); + free requires (memory_load64_le(mem, 131080bv64) == 131080bv64); + free requires (memory_load32_le(mem, 2304bv64) == 131073bv32); + free requires (memory_load64_le(mem, 130432bv64) == 2256bv64); + free requires (memory_load64_le(mem, 130440bv64) == 2176bv64); + free requires (memory_load64_le(mem, 131040bv64) == 131092bv64); + free requires (memory_load64_le(mem, 131056bv64) == 2260bv64); + free requires (memory_load64_le(mem, 131080bv64) == 131080bv64); ensures ((memory_load32_le(mem, $x_addr) == 20bv32) || (memory_load32_le(mem, $x_addr) == 21bv32)); - free ensures (memory_load32_le(mem, 1920bv64) == 131073bv32); - free ensures (memory_load64_le(mem, 69056bv64) == 1872bv64); - free ensures (memory_load64_le(mem, 69064bv64) == 1792bv64); - free ensures (memory_load64_le(mem, 69576bv64) == 69684bv64); - free ensures (memory_load64_le(mem, 69592bv64) == 1876bv64); - free ensures (memory_load64_le(mem, 69672bv64) == 69672bv64); + free ensures (memory_load32_le(mem, 2304bv64) == 131073bv32); + free ensures (memory_load64_le(mem, 130432bv64) == 2256bv64); + free ensures (memory_load64_le(mem, 130440bv64) == 2176bv64); + free ensures (memory_load64_le(mem, 131040bv64) == 131092bv64); + free ensures (memory_load64_le(mem, 131056bv64) == 2260bv64); + free ensures (memory_load64_le(mem, 131080bv64) == 131080bv64); -implementation main_1876() +implementation main() { - var Gamma_load0: bool; - var load0: bv64; + var $load11: bv64; + var Gamma_$load11: bool; var x_old: bv32; - main_1876__0__MX_GEJThQOiJAxGVoE4EUA: - assume {:captureState "main_1876__0__MX_GEJThQOiJAxGVoE4EUA"} true; - R9, Gamma_R9 := 65536bv64, true; + $main$__0__$oqiqdATZTc6MDOYJqL9Aew: + assume {:captureState "$main$__0__$oqiqdATZTc6MDOYJqL9Aew"} true; + R8, Gamma_R8 := 126976bv64, true; + R9, Gamma_R9 := 20bv64, true; + R0, Gamma_R0 := 0bv64, true; call rely(); - load0, Gamma_load0 := memory_load64_le(mem, bvadd64(R9, 4040bv64)), (gamma_load64(Gamma_mem, bvadd64(R9, 4040bv64)) || L(mem, bvadd64(R9, 4040bv64))); - R9, Gamma_R9 := load0, Gamma_load0; - R8, Gamma_R8 := 20bv64, true; + $load11, Gamma_$load11 := memory_load64_le(mem, bvadd64(R8, 4064bv64)), (gamma_load64(Gamma_mem, bvadd64(R8, 4064bv64)) || L(mem, bvadd64(R8, 4064bv64))); + R8, Gamma_R8 := $load11, Gamma_$load11; call rely(); + assert (L(mem, R8) ==> Gamma_R9); x_old := memory_load32_le(mem, $x_addr); - assert (L(mem, R9) ==> Gamma_R8); - mem, Gamma_mem := memory_store32_le(mem, R9, R8[32:0]), gamma_store32(Gamma_mem, R9, Gamma_R8); + mem, Gamma_mem := memory_store32_le(mem, R8, R9[32:0]), gamma_store32(Gamma_mem, R8, Gamma_R9); assert (((memory_load32_le(mem, $x_addr) == x_old) || ((memory_load32_le(mem, $x_addr) == 20bv32) && (x_old == 0bv32))) || ((memory_load32_le(mem, $x_addr) == 20bv32) && bvsle32(x_old, 10bv32))); - assume {:captureState "1888_0"} true; - R0, Gamma_R0 := 0bv64, true; - goto main_1876_basil_return; - main_1876_basil_return: - assume {:captureState "main_1876_basil_return"} true; + assume {:captureState "2276$0"} true; + goto main_basil_return; + main_basil_return: + assume {:captureState "main_basil_return"} true; return; } diff --git a/src/test/correct/basic_loop_assign/gcc/basic_loop_assign.adt b/src/test/correct/basic_loop_assign/gcc/basic_loop_assign.adt deleted file mode 100644 index 6b7465699..000000000 --- a/src/test/correct/basic_loop_assign/gcc/basic_loop_assign.adt +++ /dev/null @@ -1,492 +0,0 @@ -Project(Attrs([Attr("filename","\"gcc/basic_loop_assign.out\""), -Attr("image-specification","(declare abi (name str))\n(declare arch (name str))\n(declare base-address (addr int))\n(declare bias (off int))\n(declare bits (size int))\n(declare code-region (addr int) (size int) (off int))\n(declare code-start (addr int))\n(declare entry-point (addr int))\n(declare external-reference (addr int) (name str))\n(declare format (name str))\n(declare is-executable (flag bool))\n(declare is-little-endian (flag bool))\n(declare llvm:base-address (addr int))\n(declare llvm:code-entry (name str) (off int) (size int))\n(declare llvm:coff-import-library (name str))\n(declare llvm:coff-virtual-section-header (name str) (addr int) (size int))\n(declare llvm:elf-program-header (name str) (off int) (size int))\n(declare llvm:elf-program-header-flags (name str) (ld bool) (r bool) \n (w bool) (x bool))\n(declare llvm:elf-virtual-program-header (name str) (addr int) (size int))\n(declare llvm:entry-point (addr int))\n(declare llvm:macho-symbol (name str) (value int))\n(declare llvm:name-reference (at int) (name str))\n(declare llvm:relocation (at int) (addr int))\n(declare llvm:section-entry (name str) (addr int) (size int) (off int))\n(declare llvm:section-flags (name str) (r bool) (w bool) (x bool))\n(declare llvm:segment-command (name str) (off int) (size int))\n(declare llvm:segment-command-flags (name str) (r bool) (w bool) (x bool))\n(declare llvm:symbol-entry (name str) (addr int) (size int) (off int)\n (value int))\n(declare llvm:virtual-segment-command (name str) (addr int) (size int))\n(declare mapped (addr int) (size int) (off int))\n(declare named-region (addr int) (size int) (name str))\n(declare named-symbol (addr int) (name str))\n(declare require (name str))\n(declare section (addr int) (size int))\n(declare segment (addr int) (size int) (r bool) (w bool) (x bool))\n(declare subarch (name str))\n(declare symbol-chunk (addr int) (size int) (root int))\n(declare symbol-value (addr int) (value int))\n(declare system (name str))\n(declare vendor (name str))\n\n(abi unknown)\n(arch aarch64)\n(base-address 0)\n(bias 0)\n(bits 64)\n(code-region 1836 20 1836)\n(code-region 1536 300 1536)\n(code-region 1440 96 1440)\n(code-region 1408 24 1408)\n(code-start 1588)\n(code-start 1536)\n(code-start 1812)\n(entry-point 1536)\n(external-reference 69592 _ITM_deregisterTMCloneTable)\n(external-reference 69600 __cxa_finalize)\n(external-reference 69608 __gmon_start__)\n(external-reference 69624 _ITM_registerTMCloneTable)\n(external-reference 69552 __libc_start_main)\n(external-reference 69560 __cxa_finalize)\n(external-reference 69568 __gmon_start__)\n(external-reference 69576 abort)\n(format elf)\n(is-executable true)\n(is-little-endian true)\n(llvm:base-address 0)\n(llvm:code-entry abort 0 0)\n(llvm:code-entry __cxa_finalize 0 0)\n(llvm:code-entry __libc_start_main 0 0)\n(llvm:code-entry _init 1408 0)\n(llvm:code-entry main 1812 24)\n(llvm:code-entry _start 1536 52)\n(llvm:code-entry abort@GLIBC_2.17 0 0)\n(llvm:code-entry _fini 1836 0)\n(llvm:code-entry __cxa_finalize@GLIBC_2.17 0 0)\n(llvm:code-entry __libc_start_main@GLIBC_2.34 0 0)\n(llvm:code-entry frame_dummy 1808 0)\n(llvm:code-entry __do_global_dtors_aux 1728 0)\n(llvm:code-entry register_tm_clones 1664 0)\n(llvm:code-entry deregister_tm_clones 1616 0)\n(llvm:code-entry call_weak_fn 1588 20)\n(llvm:code-entry .fini 1836 20)\n(llvm:code-entry .text 1536 300)\n(llvm:code-entry .plt 1440 96)\n(llvm:code-entry .init 1408 24)\n(llvm:elf-program-header 08 3480 616)\n(llvm:elf-program-header 07 0 0)\n(llvm:elf-program-header 06 1860 60)\n(llvm:elf-program-header 05 596 68)\n(llvm:elf-program-header 04 3496 496)\n(llvm:elf-program-header 03 3480 632)\n(llvm:elf-program-header 02 0 2080)\n(llvm:elf-program-header 01 568 27)\n(llvm:elf-program-header 00 64 504)\n(llvm:elf-program-header-flags 08 false true false false)\n(llvm:elf-program-header-flags 07 false true true false)\n(llvm:elf-program-header-flags 06 false true false false)\n(llvm:elf-program-header-flags 05 false true false false)\n(llvm:elf-program-header-flags 04 false true true false)\n(llvm:elf-program-header-flags 03 true true true false)\n(llvm:elf-program-header-flags 02 true true false true)\n(llvm:elf-program-header-flags 01 false true false false)\n(llvm:elf-program-header-flags 00 false true false false)\n(llvm:elf-virtual-program-header 08 69016 616)\n(llvm:elf-virtual-program-header 07 0 0)\n(llvm:elf-virtual-program-header 06 1860 60)\n(llvm:elf-virtual-program-header 05 596 68)\n(llvm:elf-virtual-program-header 04 69032 496)\n(llvm:elf-virtual-program-header 03 69016 640)\n(llvm:elf-virtual-program-header 02 0 2080)\n(llvm:elf-virtual-program-header 01 568 27)\n(llvm:elf-virtual-program-header 00 64 504)\n(llvm:entry-point 1536)\n(llvm:name-reference 69576 abort)\n(llvm:name-reference 69568 __gmon_start__)\n(llvm:name-reference 69560 __cxa_finalize)\n(llvm:name-reference 69552 __libc_start_main)\n(llvm:name-reference 69624 _ITM_registerTMCloneTable)\n(llvm:name-reference 69608 __gmon_start__)\n(llvm:name-reference 69600 __cxa_finalize)\n(llvm:name-reference 69592 _ITM_deregisterTMCloneTable)\n(llvm:section-entry .shstrtab 0 250 6825)\n(llvm:section-entry .strtab 0 553 6272)\n(llvm:section-entry .symtab 0 2112 4160)\n(llvm:section-entry .comment 0 43 4112)\n(llvm:section-entry .bss 69648 8 4112)\n(llvm:section-entry .data 69632 16 4096)\n(llvm:section-entry .got 69528 104 3992)\n(llvm:section-entry .dynamic 69032 496 3496)\n(llvm:section-entry .fini_array 69024 8 3488)\n(llvm:section-entry .init_array 69016 8 3480)\n(llvm:section-entry .eh_frame 1920 160 1920)\n(llvm:section-entry .eh_frame_hdr 1860 60 1860)\n(llvm:section-entry .rodata 1856 4 1856)\n(llvm:section-entry .fini 1836 20 1836)\n(llvm:section-entry .text 1536 300 1536)\n(llvm:section-entry .plt 1440 96 1440)\n(llvm:section-entry .init 1408 24 1408)\n(llvm:section-entry .rela.plt 1312 96 1312)\n(llvm:section-entry .rela.dyn 1120 192 1120)\n(llvm:section-entry .gnu.version_r 1072 48 1072)\n(llvm:section-entry .gnu.version 1054 18 1054)\n(llvm:section-entry .dynstr 912 141 912)\n(llvm:section-entry .dynsym 696 216 696)\n(llvm:section-entry .gnu.hash 664 28 664)\n(llvm:section-entry .note.ABI-tag 632 32 632)\n(llvm:section-entry .note.gnu.build-id 596 36 596)\n(llvm:section-entry .interp 568 27 568)\n(llvm:section-flags .shstrtab true false false)\n(llvm:section-flags .strtab true false false)\n(llvm:section-flags .symtab true false false)\n(llvm:section-flags .comment true false false)\n(llvm:section-flags .bss true true false)\n(llvm:section-flags .data true true false)\n(llvm:section-flags .got true true false)\n(llvm:section-flags .dynamic true true false)\n(llvm:section-flags .fini_array true true false)\n(llvm:section-flags .init_array true true false)\n(llvm:section-flags .eh_frame true false false)\n(llvm:section-flags .eh_frame_hdr true false false)\n(llvm:section-flags .rodata true false false)\n(llvm:section-flags .fini true false true)\n(llvm:section-flags .text true false true)\n(llvm:section-flags .plt true false true)\n(llvm:section-flags .init true false true)\n(llvm:section-flags .rela.plt true false false)\n(llvm:section-flags .rela.dyn true false false)\n(llvm:section-flags .gnu.version_r true false false)\n(llvm:section-flags .gnu.version true false false)\n(llvm:section-flags .dynstr true false false)\n(llvm:section-flags .dynsym true false false)\n(llvm:section-flags .gnu.hash true false false)\n(llvm:section-flags .note.ABI-tag true false false)\n(llvm:section-flags .note.gnu.build-id true false false)\n(llvm:section-flags .interp true false false)\n(llvm:symbol-entry abort 0 0 0 0)\n(llvm:symbol-entry __cxa_finalize 0 0 0 0)\n(llvm:symbol-entry __libc_start_main 0 0 0 0)\n(llvm:symbol-entry _init 1408 0 1408 1408)\n(llvm:symbol-entry main 1812 24 1812 1812)\n(llvm:symbol-entry _start 1536 52 1536 1536)\n(llvm:symbol-entry abort@GLIBC_2.17 0 0 0 0)\n(llvm:symbol-entry _fini 1836 0 1836 1836)\n(llvm:symbol-entry __cxa_finalize@GLIBC_2.17 0 0 0 0)\n(llvm:symbol-entry __libc_start_main@GLIBC_2.34 0 0 0 0)\n(llvm:symbol-entry frame_dummy 1808 0 1808 1808)\n(llvm:symbol-entry __do_global_dtors_aux 1728 0 1728 1728)\n(llvm:symbol-entry register_tm_clones 1664 0 1664 1664)\n(llvm:symbol-entry deregister_tm_clones 1616 0 1616 1616)\n(llvm:symbol-entry call_weak_fn 1588 20 1588 1588)\n(mapped 0 2080 0)\n(mapped 69016 632 3480)\n(named-region 0 2080 02)\n(named-region 69016 640 03)\n(named-region 568 27 .interp)\n(named-region 596 36 .note.gnu.build-id)\n(named-region 632 32 .note.ABI-tag)\n(named-region 664 28 .gnu.hash)\n(named-region 696 216 .dynsym)\n(named-region 912 141 .dynstr)\n(named-region 1054 18 .gnu.version)\n(named-region 1072 48 .gnu.version_r)\n(named-region 1120 192 .rela.dyn)\n(named-region 1312 96 .rela.plt)\n(named-region 1408 24 .init)\n(named-region 1440 96 .plt)\n(named-region 1536 300 .text)\n(named-region 1836 20 .fini)\n(named-region 1856 4 .rodata)\n(named-region 1860 60 .eh_frame_hdr)\n(named-region 1920 160 .eh_frame)\n(named-region 69016 8 .init_array)\n(named-region 69024 8 .fini_array)\n(named-region 69032 496 .dynamic)\n(named-region 69528 104 .got)\n(named-region 69632 16 .data)\n(named-region 69648 8 .bss)\n(named-region 0 43 .comment)\n(named-region 0 2112 .symtab)\n(named-region 0 553 .strtab)\n(named-region 0 250 .shstrtab)\n(named-symbol 1588 call_weak_fn)\n(named-symbol 1616 deregister_tm_clones)\n(named-symbol 1664 register_tm_clones)\n(named-symbol 1728 __do_global_dtors_aux)\n(named-symbol 1808 frame_dummy)\n(named-symbol 0 __libc_start_main@GLIBC_2.34)\n(named-symbol 0 __cxa_finalize@GLIBC_2.17)\n(named-symbol 1836 _fini)\n(named-symbol 0 abort@GLIBC_2.17)\n(named-symbol 1536 _start)\n(named-symbol 1812 main)\n(named-symbol 1408 _init)\n(named-symbol 0 __libc_start_main)\n(named-symbol 0 __cxa_finalize)\n(named-symbol 0 abort)\n(require libc.so.6)\n(section 568 27)\n(section 596 36)\n(section 632 32)\n(section 664 28)\n(section 696 216)\n(section 912 141)\n(section 1054 18)\n(section 1072 48)\n(section 1120 192)\n(section 1312 96)\n(section 1408 24)\n(section 1440 96)\n(section 1536 300)\n(section 1836 20)\n(section 1856 4)\n(section 1860 60)\n(section 1920 160)\n(section 69016 8)\n(section 69024 8)\n(section 69032 496)\n(section 69528 104)\n(section 69632 16)\n(section 69648 8)\n(section 0 43)\n(section 0 2112)\n(section 0 553)\n(section 0 250)\n(segment 0 2080 true false true)\n(segment 69016 640 true true false)\n(subarch v8)\n(symbol-chunk 1588 20 1588)\n(symbol-chunk 1536 52 1536)\n(symbol-chunk 1812 24 1812)\n(symbol-value 1588 1588)\n(symbol-value 1616 1616)\n(symbol-value 1664 1664)\n(symbol-value 1728 1728)\n(symbol-value 1808 1808)\n(symbol-value 1836 1836)\n(symbol-value 1536 1536)\n(symbol-value 1812 1812)\n(symbol-value 1408 1408)\n(symbol-value 0 0)\n(system \"\")\n(vendor \"\")\n"), -Attr("abi-name","\"aarch64-linux-gnu-elf\"")]), -Sections([Section(".shstrtab", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x00\x06\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xa8\x1b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x38\x00\x09\x00\x40\x00\x1c\x00\x1b\x00\x06\x00\x00\x00\x04\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x04\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x20\x08\x00\x00\x00\x00\x00\x00\x20\x08\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x01\x00\x00\x00\x06\x00\x00\x00\x98\x0d\x00\x00\x00\x00\x00\x00\x98\x0d"), -Section(".strtab", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x00\x06\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xa8\x1b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x38\x00\x09\x00\x40\x00\x1c\x00\x1b\x00\x06\x00\x00\x00\x04\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x04\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x20\x08\x00\x00\x00\x00\x00\x00\x20\x08\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x01\x00\x00\x00\x06\x00\x00\x00\x98\x0d\x00\x00\x00\x00\x00\x00\x98\x0d\x01\x00\x00\x00\x00\x00\x98\x0d\x01\x00\x00\x00\x00\x00\x78\x02\x00\x00\x00\x00\x00\x00\x80\x02\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x02\x00\x00\x00\x06\x00\x00\x00\xa8\x0d\x00\x00\x00\x00\x00\x00\xa8\x0d\x01\x00\x00\x00\x00\x00\xa8\x0d\x01\x00\x00\x00\x00\x00\xf0\x01\x00\x00\x00\x00\x00\x00\xf0\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x04\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x50\xe5\x74\x64\x04\x00\x00\x00\x44\x07\x00\x00\x00\x00\x00\x00\x44\x07\x00\x00\x00\x00\x00\x00\x44\x07\x00\x00\x00\x00\x00\x00\x3c\x00\x00\x00\x00\x00\x00\x00\x3c\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x51\xe5\x74\x64\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x52\xe5\x74\x64\x04\x00\x00\x00\x98\x0d\x00\x00\x00\x00\x00\x00\x98\x0d\x01\x00\x00\x00\x00\x00\x98\x0d\x01\x00\x00\x00\x00\x00\x68\x02\x00\x00\x00\x00\x00\x00\x68"), -Section(".comment", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x00\x06\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xa8\x1b\x00"), -Section(".interp", 0x238, "\x2f\x6c\x69\x62\x2f\x6c\x64\x2d\x6c\x69\x6e\x75\x78\x2d\x61\x61\x72\x63\x68\x36\x34\x2e\x73\x6f\x2e\x31\x00"), -Section(".note.gnu.build-id", 0x254, "\x04\x00\x00\x00\x14\x00\x00\x00\x03\x00\x00\x00\x47\x4e\x55\x00\x35\xcf\x99\xf0\x5d\x82\x02\xa8\x82\xe1\x22\x4f\x03\xed\x06\x0c\x0b\xa8\x1a\x01"), -Section(".note.ABI-tag", 0x278, "\x04\x00\x00\x00\x10\x00\x00\x00\x01\x00\x00\x00\x47\x4e\x55\x00\x00\x00\x00\x00\x03\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00"), -Section(".gnu.hash", 0x298, "\x01\x00\x00\x00\x01\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".dynsym", 0x2B8, "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x0b\x00\x80\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x16\x00\x00\x10\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x48\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x22\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x22\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x73\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".dynstr", 0x390, "\x00\x5f\x5f\x63\x78\x61\x5f\x66\x69\x6e\x61\x6c\x69\x7a\x65\x00\x5f\x5f\x6c\x69\x62\x63\x5f\x73\x74\x61\x72\x74\x5f\x6d\x61\x69\x6e\x00\x61\x62\x6f\x72\x74\x00\x6c\x69\x62\x63\x2e\x73\x6f\x2e\x36\x00\x47\x4c\x49\x42\x43\x5f\x32\x2e\x31\x37\x00\x47\x4c\x49\x42\x43\x5f\x32\x2e\x33\x34\x00\x5f\x49\x54\x4d\x5f\x64\x65\x72\x65\x67\x69\x73\x74\x65\x72\x54\x4d\x43\x6c\x6f\x6e\x65\x54\x61\x62\x6c\x65\x00\x5f\x5f\x67\x6d\x6f\x6e\x5f\x73\x74\x61\x72\x74\x5f\x5f\x00\x5f\x49\x54\x4d\x5f\x72\x65\x67\x69\x73\x74\x65\x72\x54\x4d\x43\x6c\x6f\x6e\x65\x54\x61\x62\x6c\x65\x00"), -Section(".gnu.version", 0x41E, "\x00\x00\x00\x00\x00\x00\x02\x00\x01\x00\x03\x00\x01\x00\x03\x00\x01\x00"), -Section(".gnu.version_r", 0x430, "\x01\x00\x02\x00\x28\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x97\x91\x96\x06\x00\x00\x03\x00\x32\x00\x00\x00\x10\x00\x00\x00\xb4\x91\x96\x06\x00\x00\x02\x00\x3d\x00\x00\x00\x00\x00\x00\x00"), -Section(".rela.dyn", 0x460, "\x98\x0d\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x10\x07\x00\x00\x00\x00\x00\x00\xa0\x0d\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\xc0\x06\x00\x00\x00\x00\x00\x00\xf0\x0f\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x14\x07\x00\x00\x00\x00\x00\x00\x08\x10\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x08\x10\x01\x00\x00\x00\x00\x00\xd8\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe0\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe8\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xf8\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".rela.plt", 0x520, "\xb0\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xb8\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xc0\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xc8\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".init", 0x580, "\x1f\x20\x03\xd5\xfd\x7b\xbf\xa9\xfd\x03\x00\x91\x2a\x00\x00\x94\xfd\x7b\xc1\xa8\xc0\x03\x5f\xd6"), -Section(".plt", 0x5A0, "\xf0\x7b\xbf\xa9\x90\x00\x00\x90\x11\xd6\x47\xf9\x10\xa2\x3e\x91\x20\x02\x1f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x90\x00\x00\x90\x11\xda\x47\xf9\x10\xc2\x3e\x91\x20\x02\x1f\xd6\x90\x00\x00\x90\x11\xde\x47\xf9\x10\xe2\x3e\x91\x20\x02\x1f\xd6\x90\x00\x00\x90\x11\xe2\x47\xf9\x10\x02\x3f\x91\x20\x02\x1f\xd6\x90\x00\x00\x90\x11\xe6\x47\xf9\x10\x22\x3f\x91\x20\x02\x1f\xd6"), -Section(".text", 0x600, "\x1f\x20\x03\xd5\x1d\x00\x80\xd2\x1e\x00\x80\xd2\xe5\x03\x00\xaa\xe1\x03\x40\xf9\xe2\x23\x00\x91\xe6\x03\x00\x91\x80\x00\x00\x90\x00\xf8\x47\xf9\x03\x00\x80\xd2\x04\x00\x80\xd2\xe5\xff\xff\x97\xf0\xff\xff\x97\x80\x00\x00\x90\x00\xf4\x47\xf9\x40\x00\x00\xb4\xe8\xff\xff\x17\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x80\x00\x00\xb0\x00\x40\x00\x91\x81\x00\x00\xb0\x21\x40\x00\x91\x3f\x00\x00\xeb\xc0\x00\x00\x54\x81\x00\x00\x90\x21\xec\x47\xf9\x61\x00\x00\xb4\xf0\x03\x01\xaa\x00\x02\x1f\xd6\xc0\x03\x5f\xd6\x80\x00\x00\xb0\x00\x40\x00\x91\x81\x00\x00\xb0\x21\x40\x00\x91\x21\x00\x00\xcb\x22\xfc\x7f\xd3\x41\x0c\x81\x8b\x21\xfc\x41\x93\xc1\x00\x00\xb4\x82\x00\x00\x90\x42\xfc\x47\xf9\x62\x00\x00\xb4\xf0\x03\x02\xaa\x00\x02\x1f\xd6\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\xfd\x7b\xbe\xa9\xfd\x03\x00\x91\xf3\x0b\x00\xf9\x93\x00\x00\xb0\x60\x42\x40\x39\x40\x01\x00\x35\x80\x00\x00\x90\x00\xf0\x47\xf9\x80\x00\x00\xb4\x80\x00\x00\xb0\x00\x04\x40\xf9\xb9\xff\xff\x97\xd8\xff\xff\x97\x20\x00\x80\x52\x60\x42\x00\x39\xf3\x0b\x40\xf9\xfd\x7b\xc2\xa8\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\xdc\xff\xff\x17\x80\x00\x00\xb0\x00\x50\x00\x91\x81\x02\x80\x52\x01\x00\x00\xb9\x00\x00\x80\x52\xc0\x03\x5f\xd6"), -Section(".fini", 0x72C, "\x1f\x20\x03\xd5\xfd\x7b\xbf\xa9\xfd\x03\x00\x91\xfd\x7b\xc1\xa8\xc0\x03\x5f\xd6"), -Section(".rodata", 0x740, "\x01\x00\x02\x00"), -Section(".eh_frame_hdr", 0x744, "\x01\x1b\x03\x3b\x38\x00\x00\x00\x06\x00\x00\x00\xbc\xfe\xff\xff\x50\x00\x00\x00\x0c\xff\xff\xff\x64\x00\x00\x00\x3c\xff\xff\xff\x78\x00\x00\x00\x7c\xff\xff\xff\x8c\x00\x00\x00\xcc\xff\xff\xff\xb0\x00\x00\x00\xd0\xff\xff\xff\xc4\x00\x00\x00"), -Section(".eh_frame", 0x780, "\x10\x00\x00\x00\x00\x00\x00\x00\x01\x7a\x52\x00\x04\x78\x1e\x01\x1b\x0c\x1f\x00\x10\x00\x00\x00\x18\x00\x00\x00\x64\xfe\xff\xff\x34\x00\x00\x00\x00\x41\x07\x1e\x10\x00\x00\x00\x2c\x00\x00\x00\xa0\xfe\xff\xff\x30\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x40\x00\x00\x00\xbc\xfe\xff\xff\x3c\x00\x00\x00\x00\x00\x00\x00\x20\x00\x00\x00\x54\x00\x00\x00\xe8\xfe\xff\xff\x48\x00\x00\x00\x00\x41\x0e\x20\x9d\x04\x9e\x03\x42\x93\x02\x4e\xde\xdd\xd3\x0e\x00\x00\x00\x00\x10\x00\x00\x00\x78\x00\x00\x00\x14\xff\xff\xff\x04\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x8c\x00\x00\x00\x04\xff\xff\xff\x18\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".fini_array", 0x10DA0, "\xc0\x06\x00\x00\x00\x00\x00\x00"), -Section(".dynamic", 0x10DA8, "\x01\x00\x00\x00\x00\x00\x00\x00\x28\x00\x00\x00\x00\x00\x00\x00\x0c\x00\x00\x00\x00\x00\x00\x00\x80\x05\x00\x00\x00\x00\x00\x00\x0d\x00\x00\x00\x00\x00\x00\x00\x2c\x07\x00\x00\x00\x00\x00\x00\x19\x00\x00\x00\x00\x00\x00\x00\x98\x0d\x01\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x1a\x00\x00\x00\x00\x00\x00\x00\xa0\x0d\x01\x00\x00\x00\x00\x00\x1c\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\xf5\xfe\xff\x6f\x00\x00\x00\x00\x98\x02\x00\x00\x00\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x90\x03\x00\x00\x00\x00\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\xb8\x02\x00\x00\x00\x00\x00\x00\x0a\x00\x00\x00\x00\x00\x00\x00\x8d\x00\x00\x00\x00\x00\x00\x00\x0b\x00\x00\x00\x00\x00\x00\x00\x18\x00\x00\x00\x00\x00\x00\x00\x15\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x98\x0f\x01\x00\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x60\x00\x00\x00\x00\x00\x00\x00\x14\x00\x00\x00\x00\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x17\x00\x00\x00\x00\x00\x00\x00\x20\x05\x00\x00\x00\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x60\x04\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\xc0\x00\x00\x00\x00\x00\x00\x00\x09\x00\x00\x00\x00\x00\x00\x00\x18\x00\x00\x00\x00\x00\x00\x00\x1e\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\xfb\xff\xff\x6f\x00\x00\x00\x00\x01\x00\x00\x08\x00\x00\x00\x00\xfe\xff\xff\x6f\x00\x00\x00\x00\x30\x04\x00\x00\x00\x00\x00\x00\xff\xff\xff\x6f\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\xf0\xff\xff\x6f\x00\x00\x00\x00\x1e\x04\x00\x00\x00\x00\x00\x00\xf9\xff\xff\x6f\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".got", 0x10F98, "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xa0\x05\x00\x00\x00\x00\x00\x00\xa0\x05\x00\x00\x00\x00\x00\x00\xa0\x05\x00\x00\x00\x00\x00\x00\xa0\x05\x00\x00\x00\x00\x00\x00\xa8\x0d\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x14\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".data", 0x11000, "\x00\x00\x00\x00\x00\x00\x00\x00\x08\x10\x01\x00\x00\x00\x00\x00"), -Section(".init_array", 0x10D98, "\x10\x07\x00\x00\x00\x00\x00\x00")]), -Memmap([Annotation(Region(0x0,0x81F), Attr("segment","02 0 2080")), -Annotation(Region(0x600,0x633), Attr("symbol","\"_start\"")), -Annotation(Region(0x0,0xF9), Attr("section","\".shstrtab\"")), -Annotation(Region(0x0,0x228), Attr("section","\".strtab\"")), -Annotation(Region(0x0,0x2A), Attr("section","\".comment\"")), -Annotation(Region(0x238,0x252), Attr("section","\".interp\"")), -Annotation(Region(0x254,0x277), Attr("section","\".note.gnu.build-id\"")), -Annotation(Region(0x278,0x297), Attr("section","\".note.ABI-tag\"")), -Annotation(Region(0x298,0x2B3), Attr("section","\".gnu.hash\"")), -Annotation(Region(0x2B8,0x38F), Attr("section","\".dynsym\"")), -Annotation(Region(0x390,0x41C), Attr("section","\".dynstr\"")), -Annotation(Region(0x41E,0x42F), Attr("section","\".gnu.version\"")), -Annotation(Region(0x430,0x45F), Attr("section","\".gnu.version_r\"")), -Annotation(Region(0x460,0x51F), Attr("section","\".rela.dyn\"")), -Annotation(Region(0x520,0x57F), Attr("section","\".rela.plt\"")), -Annotation(Region(0x580,0x597), Attr("section","\".init\"")), -Annotation(Region(0x5A0,0x5FF), Attr("section","\".plt\"")), -Annotation(Region(0x580,0x597), Attr("code-region","()")), -Annotation(Region(0x5A0,0x5FF), Attr("code-region","()")), -Annotation(Region(0x600,0x633), Attr("symbol-info","_start 0x600 52")), -Annotation(Region(0x634,0x647), Attr("symbol","\"call_weak_fn\"")), -Annotation(Region(0x634,0x647), Attr("symbol-info","call_weak_fn 0x634 20")), -Annotation(Region(0x600,0x72B), Attr("section","\".text\"")), -Annotation(Region(0x600,0x72B), Attr("code-region","()")), -Annotation(Region(0x714,0x72B), Attr("symbol","\"main\"")), -Annotation(Region(0x714,0x72B), Attr("symbol-info","main 0x714 24")), -Annotation(Region(0x72C,0x73F), Attr("section","\".fini\"")), -Annotation(Region(0x72C,0x73F), Attr("code-region","()")), -Annotation(Region(0x740,0x743), Attr("section","\".rodata\"")), -Annotation(Region(0x744,0x77F), Attr("section","\".eh_frame_hdr\"")), -Annotation(Region(0x780,0x81F), Attr("section","\".eh_frame\"")), -Annotation(Region(0x10D98,0x1100F), Attr("segment","03 0x10D98 640")), -Annotation(Region(0x10DA0,0x10DA7), Attr("section","\".fini_array\"")), -Annotation(Region(0x10DA8,0x10F97), Attr("section","\".dynamic\"")), -Annotation(Region(0x10F98,0x10FFF), Attr("section","\".got\"")), -Annotation(Region(0x11000,0x1100F), Attr("section","\".data\"")), -Annotation(Region(0x10D98,0x10D9F), Attr("section","\".init_array\""))]), -Program(Tid(1_429, "%00000595"), Attrs([]), - Subs([Sub(Tid(1_379, "@__cxa_finalize"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x5D0"), -Attr("stub","()")]), "__cxa_finalize", Args([Arg(Tid(1_430, "%00000596"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("__cxa_finalize_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(795, "@__cxa_finalize"), - Attrs([Attr("address","0x5D0")]), Phis([]), -Defs([Def(Tid(1_043, "%00000413"), Attrs([Attr("address","0x5D0"), -Attr("insn","adrp x16, #65536")]), Var("R16",Imm(64)), Int(65536,64)), -Def(Tid(1_050, "%0000041a"), Attrs([Attr("address","0x5D4"), -Attr("insn","ldr x17, [x16, #0xfb8]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(4024,64)),LittleEndian(),64)), -Def(Tid(1_056, "%00000420"), Attrs([Attr("address","0x5D8"), -Attr("insn","add x16, x16, #0xfb8")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(4024,64)))]), Jmps([Call(Tid(1_061, "%00000425"), - Attrs([Attr("address","0x5DC"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), -Sub(Tid(1_380, "@__do_global_dtors_aux"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x6C0")]), - "__do_global_dtors_aux", Args([Arg(Tid(1_431, "%00000597"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("__do_global_dtors_aux_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(614, "@__do_global_dtors_aux"), - Attrs([Attr("address","0x6C0")]), Phis([]), Defs([Def(Tid(618, "%0000026a"), - Attrs([Attr("address","0x6C0"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("#3",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(18446744073709551584,64))), -Def(Tid(624, "%00000270"), Attrs([Attr("address","0x6C0"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("#3",Imm(64)),Var("R29",Imm(64)),LittleEndian(),64)), -Def(Tid(630, "%00000276"), Attrs([Attr("address","0x6C0"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("#3",Imm(64)),Int(8,64)),Var("R30",Imm(64)),LittleEndian(),64)), -Def(Tid(634, "%0000027a"), Attrs([Attr("address","0x6C0"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("R31",Imm(64)), -Var("#3",Imm(64))), Def(Tid(640, "%00000280"), - Attrs([Attr("address","0x6C4"), Attr("insn","mov x29, sp")]), - Var("R29",Imm(64)), Var("R31",Imm(64))), Def(Tid(648, "%00000288"), - Attrs([Attr("address","0x6C8"), Attr("insn","str x19, [sp, #0x10]")]), - Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(16,64)),Var("R19",Imm(64)),LittleEndian(),64)), -Def(Tid(653, "%0000028d"), Attrs([Attr("address","0x6CC"), -Attr("insn","adrp x19, #69632")]), Var("R19",Imm(64)), Int(69632,64)), -Def(Tid(660, "%00000294"), Attrs([Attr("address","0x6D0"), -Attr("insn","ldrb w0, [x19, #0x10]")]), Var("R0",Imm(64)), -UNSIGNED(64,Load(Var("mem",Mem(64,8)),PLUS(Var("R19",Imm(64)),Int(16,64)),LittleEndian(),8)))]), -Jmps([Goto(Tid(667, "%0000029b"), Attrs([Attr("address","0x6D4"), -Attr("insn","cbnz w0, #0x28")]), - NEQ(Extract(31,0,Var("R0",Imm(64))),Int(0,32)), -Direct(Tid(665, "%00000299"))), Goto(Tid(1_419, "%0000058b"), Attrs([]), - Int(1,1), Direct(Tid(740, "%000002e4")))])), Blk(Tid(740, "%000002e4"), - Attrs([Attr("address","0x6D8")]), Phis([]), Defs([Def(Tid(743, "%000002e7"), - Attrs([Attr("address","0x6D8"), Attr("insn","adrp x0, #65536")]), - Var("R0",Imm(64)), Int(65536,64)), Def(Tid(750, "%000002ee"), - Attrs([Attr("address","0x6DC"), Attr("insn","ldr x0, [x0, #0xfe0]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(4064,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(756, "%000002f4"), Attrs([Attr("address","0x6E0"), -Attr("insn","cbz x0, #0x10")]), EQ(Var("R0",Imm(64)),Int(0,64)), -Direct(Tid(754, "%000002f2"))), Goto(Tid(1_420, "%0000058c"), Attrs([]), - Int(1,1), Direct(Tid(779, "%0000030b")))])), Blk(Tid(779, "%0000030b"), - Attrs([Attr("address","0x6E4")]), Phis([]), Defs([Def(Tid(782, "%0000030e"), - Attrs([Attr("address","0x6E4"), Attr("insn","adrp x0, #69632")]), - Var("R0",Imm(64)), Int(69632,64)), Def(Tid(789, "%00000315"), - Attrs([Attr("address","0x6E8"), Attr("insn","ldr x0, [x0, #0x8]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(794, "%0000031a"), Attrs([Attr("address","0x6EC"), -Attr("insn","bl #-0x11c")]), Var("R30",Imm(64)), Int(1776,64))]), -Jmps([Call(Tid(797, "%0000031d"), Attrs([Attr("address","0x6EC"), -Attr("insn","bl #-0x11c")]), Int(1,1), -(Direct(Tid(1_379, "@__cxa_finalize")),Direct(Tid(754, "%000002f2"))))])), -Blk(Tid(754, "%000002f2"), Attrs([Attr("address","0x6F0")]), Phis([]), -Defs([Def(Tid(762, "%000002fa"), Attrs([Attr("address","0x6F0"), -Attr("insn","bl #-0xa0")]), Var("R30",Imm(64)), Int(1780,64))]), -Jmps([Call(Tid(764, "%000002fc"), Attrs([Attr("address","0x6F0"), -Attr("insn","bl #-0xa0")]), Int(1,1), -(Direct(Tid(1_393, "@deregister_tm_clones")),Direct(Tid(766, "%000002fe"))))])), -Blk(Tid(766, "%000002fe"), Attrs([Attr("address","0x6F4")]), Phis([]), -Defs([Def(Tid(769, "%00000301"), Attrs([Attr("address","0x6F4"), -Attr("insn","mov w0, #0x1")]), Var("R0",Imm(64)), Int(1,64)), -Def(Tid(777, "%00000309"), Attrs([Attr("address","0x6F8"), -Attr("insn","strb w0, [x19, #0x10]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R19",Imm(64)),Int(16,64)),Extract(7,0,Var("R0",Imm(64))),LittleEndian(),8))]), -Jmps([Goto(Tid(1_421, "%0000058d"), Attrs([]), Int(1,1), -Direct(Tid(665, "%00000299")))])), Blk(Tid(665, "%00000299"), - Attrs([Attr("address","0x6FC")]), Phis([]), Defs([Def(Tid(675, "%000002a3"), - Attrs([Attr("address","0x6FC"), Attr("insn","ldr x19, [sp, #0x10]")]), - Var("R19",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(16,64)),LittleEndian(),64)), -Def(Tid(682, "%000002aa"), Attrs([Attr("address","0x700"), -Attr("insn","ldp x29, x30, [sp], #0x20")]), Var("R29",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(687, "%000002af"), Attrs([Attr("address","0x700"), -Attr("insn","ldp x29, x30, [sp], #0x20")]), Var("R30",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(691, "%000002b3"), Attrs([Attr("address","0x700"), -Attr("insn","ldp x29, x30, [sp], #0x20")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(32,64)))]), Jmps([Call(Tid(696, "%000002b8"), - Attrs([Attr("address","0x704"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), Sub(Tid(1_384, "@__libc_start_main"), - Attrs([Attr("c.proto","signed (*)(signed (*)(signed , char** , char** );* main, signed , char** , \nvoid* auxv)"), -Attr("address","0x5C0"), Attr("stub","()")]), "__libc_start_main", - Args([Arg(Tid(1_432, "%00000598"), - Attrs([Attr("c.layout","**[ : 64]"), -Attr("c.data","Top:u64 ptr ptr"), -Attr("c.type","signed (*)(signed , char** , char** );*")]), - Var("__libc_start_main_main",Imm(64)), Var("R0",Imm(64)), In()), -Arg(Tid(1_433, "%00000599"), Attrs([Attr("c.layout","[signed : 32]"), -Attr("c.data","Top:u32"), Attr("c.type","signed")]), - Var("__libc_start_main_arg2",Imm(32)), LOW(32,Var("R1",Imm(64))), In()), -Arg(Tid(1_434, "%0000059a"), Attrs([Attr("c.layout","**[char : 8]"), -Attr("c.data","Top:u8 ptr ptr"), Attr("c.type","char**")]), - Var("__libc_start_main_arg3",Imm(64)), Var("R2",Imm(64)), Both()), -Arg(Tid(1_435, "%0000059b"), Attrs([Attr("c.layout","*[ : 8]"), -Attr("c.data","{} ptr"), Attr("c.type","void*")]), - Var("__libc_start_main_auxv",Imm(64)), Var("R3",Imm(64)), Both()), -Arg(Tid(1_436, "%0000059c"), Attrs([Attr("c.layout","[signed : 32]"), -Attr("c.data","Top:u32"), Attr("c.type","signed")]), - Var("__libc_start_main_result",Imm(32)), LOW(32,Var("R0",Imm(64))), -Out())]), Blks([Blk(Tid(447, "@__libc_start_main"), - Attrs([Attr("address","0x5C0")]), Phis([]), -Defs([Def(Tid(1_021, "%000003fd"), Attrs([Attr("address","0x5C0"), -Attr("insn","adrp x16, #65536")]), Var("R16",Imm(64)), Int(65536,64)), -Def(Tid(1_028, "%00000404"), Attrs([Attr("address","0x5C4"), -Attr("insn","ldr x17, [x16, #0xfb0]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(4016,64)),LittleEndian(),64)), -Def(Tid(1_034, "%0000040a"), Attrs([Attr("address","0x5C8"), -Attr("insn","add x16, x16, #0xfb0")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(4016,64)))]), Jmps([Call(Tid(1_039, "%0000040f"), - Attrs([Attr("address","0x5CC"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), Sub(Tid(1_385, "@_fini"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x72C")]), - "_fini", Args([Arg(Tid(1_437, "%0000059d"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("_fini_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(31, "@_fini"), - Attrs([Attr("address","0x72C")]), Phis([]), Defs([Def(Tid(37, "%00000025"), - Attrs([Attr("address","0x730"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("#0",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(18446744073709551600,64))), -Def(Tid(43, "%0000002b"), Attrs([Attr("address","0x730"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("#0",Imm(64)),Var("R29",Imm(64)),LittleEndian(),64)), -Def(Tid(49, "%00000031"), Attrs([Attr("address","0x730"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("#0",Imm(64)),Int(8,64)),Var("R30",Imm(64)),LittleEndian(),64)), -Def(Tid(53, "%00000035"), Attrs([Attr("address","0x730"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("R31",Imm(64)), -Var("#0",Imm(64))), Def(Tid(59, "%0000003b"), Attrs([Attr("address","0x734"), -Attr("insn","mov x29, sp")]), Var("R29",Imm(64)), Var("R31",Imm(64))), -Def(Tid(66, "%00000042"), Attrs([Attr("address","0x738"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R29",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(71, "%00000047"), Attrs([Attr("address","0x738"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R30",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(75, "%0000004b"), Attrs([Attr("address","0x738"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(16,64)))]), Jmps([Call(Tid(80, "%00000050"), - Attrs([Attr("address","0x73C"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), Sub(Tid(1_386, "@_init"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x580")]), - "_init", Args([Arg(Tid(1_438, "%0000059e"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("_init_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(1_215, "@_init"), - Attrs([Attr("address","0x580")]), Phis([]), -Defs([Def(Tid(1_221, "%000004c5"), Attrs([Attr("address","0x584"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("#5",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(18446744073709551600,64))), -Def(Tid(1_227, "%000004cb"), Attrs([Attr("address","0x584"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("#5",Imm(64)),Var("R29",Imm(64)),LittleEndian(),64)), -Def(Tid(1_233, "%000004d1"), Attrs([Attr("address","0x584"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("#5",Imm(64)),Int(8,64)),Var("R30",Imm(64)),LittleEndian(),64)), -Def(Tid(1_237, "%000004d5"), Attrs([Attr("address","0x584"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("R31",Imm(64)), -Var("#5",Imm(64))), Def(Tid(1_243, "%000004db"), - Attrs([Attr("address","0x588"), Attr("insn","mov x29, sp")]), - Var("R29",Imm(64)), Var("R31",Imm(64))), Def(Tid(1_248, "%000004e0"), - Attrs([Attr("address","0x58C"), Attr("insn","bl #0xa8")]), - Var("R30",Imm(64)), Int(1424,64))]), Jmps([Call(Tid(1_250, "%000004e2"), - Attrs([Attr("address","0x58C"), Attr("insn","bl #0xa8")]), Int(1,1), -(Direct(Tid(1_391, "@call_weak_fn")),Direct(Tid(1_252, "%000004e4"))))])), -Blk(Tid(1_252, "%000004e4"), Attrs([Attr("address","0x590")]), Phis([]), -Defs([Def(Tid(1_257, "%000004e9"), Attrs([Attr("address","0x590"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R29",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(1_262, "%000004ee"), Attrs([Attr("address","0x590"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R30",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(1_266, "%000004f2"), Attrs([Attr("address","0x590"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(16,64)))]), Jmps([Call(Tid(1_271, "%000004f7"), - Attrs([Attr("address","0x594"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), Sub(Tid(1_387, "@_start"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x600"), -Attr("stub","()"), Attr("entry-point","()")]), "_start", - Args([Arg(Tid(1_439, "%0000059f"), Attrs([Attr("c.layout","[signed : 32]"), -Attr("c.data","Top:u32"), Attr("c.type","signed")]), - Var("_start_result",Imm(32)), LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(384, "@_start"), Attrs([Attr("address","0x600")]), Phis([]), -Defs([Def(Tid(389, "%00000185"), Attrs([Attr("address","0x604"), -Attr("insn","mov x29, #0x0")]), Var("R29",Imm(64)), Int(0,64)), -Def(Tid(394, "%0000018a"), Attrs([Attr("address","0x608"), -Attr("insn","mov x30, #0x0")]), Var("R30",Imm(64)), Int(0,64)), -Def(Tid(400, "%00000190"), Attrs([Attr("address","0x60C"), -Attr("insn","mov x5, x0")]), Var("R5",Imm(64)), Var("R0",Imm(64))), -Def(Tid(407, "%00000197"), Attrs([Attr("address","0x610"), -Attr("insn","ldr x1, [sp]")]), Var("R1",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(413, "%0000019d"), Attrs([Attr("address","0x614"), -Attr("insn","add x2, sp, #0x8")]), Var("R2",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(8,64))), Def(Tid(419, "%000001a3"), - Attrs([Attr("address","0x618"), Attr("insn","mov x6, sp")]), - Var("R6",Imm(64)), Var("R31",Imm(64))), Def(Tid(424, "%000001a8"), - Attrs([Attr("address","0x61C"), Attr("insn","adrp x0, #65536")]), - Var("R0",Imm(64)), Int(65536,64)), Def(Tid(431, "%000001af"), - Attrs([Attr("address","0x620"), Attr("insn","ldr x0, [x0, #0xff0]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(4080,64)),LittleEndian(),64)), -Def(Tid(436, "%000001b4"), Attrs([Attr("address","0x624"), -Attr("insn","mov x3, #0x0")]), Var("R3",Imm(64)), Int(0,64)), -Def(Tid(441, "%000001b9"), Attrs([Attr("address","0x628"), -Attr("insn","mov x4, #0x0")]), Var("R4",Imm(64)), Int(0,64)), -Def(Tid(446, "%000001be"), Attrs([Attr("address","0x62C"), -Attr("insn","bl #-0x6c")]), Var("R30",Imm(64)), Int(1584,64))]), -Jmps([Call(Tid(449, "%000001c1"), Attrs([Attr("address","0x62C"), -Attr("insn","bl #-0x6c")]), Int(1,1), -(Direct(Tid(1_384, "@__libc_start_main")),Direct(Tid(451, "%000001c3"))))])), -Blk(Tid(451, "%000001c3"), Attrs([Attr("address","0x630")]), Phis([]), -Defs([Def(Tid(454, "%000001c6"), Attrs([Attr("address","0x630"), -Attr("insn","bl #-0x40")]), Var("R30",Imm(64)), Int(1588,64))]), -Jmps([Call(Tid(457, "%000001c9"), Attrs([Attr("address","0x630"), -Attr("insn","bl #-0x40")]), Int(1,1), -(Direct(Tid(1_390, "@abort")),Direct(Tid(1_422, "%0000058e"))))])), -Blk(Tid(1_422, "%0000058e"), Attrs([]), Phis([]), Defs([]), -Jmps([Call(Tid(1_423, "%0000058f"), Attrs([]), Int(1,1), -(Direct(Tid(1_391, "@call_weak_fn")),))]))])), Sub(Tid(1_390, "@abort"), - Attrs([Attr("noreturn","()"), Attr("c.proto","void (*)(void)"), -Attr("address","0x5F0"), Attr("stub","()")]), "abort", Args([]), -Blks([Blk(Tid(455, "@abort"), Attrs([Attr("address","0x5F0")]), Phis([]), -Defs([Def(Tid(1_087, "%0000043f"), Attrs([Attr("address","0x5F0"), -Attr("insn","adrp x16, #65536")]), Var("R16",Imm(64)), Int(65536,64)), -Def(Tid(1_094, "%00000446"), Attrs([Attr("address","0x5F4"), -Attr("insn","ldr x17, [x16, #0xfc8]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(4040,64)),LittleEndian(),64)), -Def(Tid(1_100, "%0000044c"), Attrs([Attr("address","0x5F8"), -Attr("insn","add x16, x16, #0xfc8")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(4040,64)))]), Jmps([Call(Tid(1_105, "%00000451"), - Attrs([Attr("address","0x5FC"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), Sub(Tid(1_391, "@call_weak_fn"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x634")]), - "call_weak_fn", Args([Arg(Tid(1_440, "%000005a0"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("call_weak_fn_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(459, "@call_weak_fn"), - Attrs([Attr("address","0x634")]), Phis([]), Defs([Def(Tid(462, "%000001ce"), - Attrs([Attr("address","0x634"), Attr("insn","adrp x0, #65536")]), - Var("R0",Imm(64)), Int(65536,64)), Def(Tid(469, "%000001d5"), - Attrs([Attr("address","0x638"), Attr("insn","ldr x0, [x0, #0xfe8]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(4072,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(475, "%000001db"), Attrs([Attr("address","0x63C"), -Attr("insn","cbz x0, #0x8")]), EQ(Var("R0",Imm(64)),Int(0,64)), -Direct(Tid(473, "%000001d9"))), Goto(Tid(1_424, "%00000590"), Attrs([]), - Int(1,1), Direct(Tid(859, "%0000035b")))])), Blk(Tid(473, "%000001d9"), - Attrs([Attr("address","0x644")]), Phis([]), Defs([]), -Jmps([Call(Tid(481, "%000001e1"), Attrs([Attr("address","0x644"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))])), -Blk(Tid(859, "%0000035b"), Attrs([Attr("address","0x640")]), Phis([]), -Defs([]), Jmps([Goto(Tid(862, "%0000035e"), Attrs([Attr("address","0x640"), -Attr("insn","b #-0x60")]), Int(1,1), Direct(Tid(860, "@__gmon_start__")))])), -Blk(Tid(860, "@__gmon_start__"), Attrs([Attr("address","0x5E0")]), Phis([]), -Defs([Def(Tid(1_065, "%00000429"), Attrs([Attr("address","0x5E0"), -Attr("insn","adrp x16, #65536")]), Var("R16",Imm(64)), Int(65536,64)), -Def(Tid(1_072, "%00000430"), Attrs([Attr("address","0x5E4"), -Attr("insn","ldr x17, [x16, #0xfc0]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(4032,64)),LittleEndian(),64)), -Def(Tid(1_078, "%00000436"), Attrs([Attr("address","0x5E8"), -Attr("insn","add x16, x16, #0xfc0")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(4032,64)))]), Jmps([Call(Tid(1_083, "%0000043b"), - Attrs([Attr("address","0x5EC"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), -Sub(Tid(1_393, "@deregister_tm_clones"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x650")]), - "deregister_tm_clones", Args([Arg(Tid(1_441, "%000005a1"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("deregister_tm_clones_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(487, "@deregister_tm_clones"), - Attrs([Attr("address","0x650")]), Phis([]), Defs([Def(Tid(490, "%000001ea"), - Attrs([Attr("address","0x650"), Attr("insn","adrp x0, #69632")]), - Var("R0",Imm(64)), Int(69632,64)), Def(Tid(496, "%000001f0"), - Attrs([Attr("address","0x654"), Attr("insn","add x0, x0, #0x10")]), - Var("R0",Imm(64)), PLUS(Var("R0",Imm(64)),Int(16,64))), -Def(Tid(501, "%000001f5"), Attrs([Attr("address","0x658"), -Attr("insn","adrp x1, #69632")]), Var("R1",Imm(64)), Int(69632,64)), -Def(Tid(507, "%000001fb"), Attrs([Attr("address","0x65C"), -Attr("insn","add x1, x1, #0x10")]), Var("R1",Imm(64)), -PLUS(Var("R1",Imm(64)),Int(16,64))), Def(Tid(513, "%00000201"), - Attrs([Attr("address","0x660"), Attr("insn","cmp x1, x0")]), - Var("#1",Imm(64)), NOT(Var("R0",Imm(64)))), Def(Tid(518, "%00000206"), - Attrs([Attr("address","0x660"), Attr("insn","cmp x1, x0")]), - Var("#2",Imm(64)), PLUS(Var("R1",Imm(64)),NOT(Var("R0",Imm(64))))), -Def(Tid(524, "%0000020c"), Attrs([Attr("address","0x660"), -Attr("insn","cmp x1, x0")]), Var("VF",Imm(1)), -NEQ(SIGNED(65,PLUS(Var("#2",Imm(64)),Int(1,64))),PLUS(PLUS(SIGNED(65,Var("R1",Imm(64))),SIGNED(65,Var("#1",Imm(64)))),Int(1,65)))), -Def(Tid(530, "%00000212"), Attrs([Attr("address","0x660"), -Attr("insn","cmp x1, x0")]), Var("CF",Imm(1)), -NEQ(UNSIGNED(65,PLUS(Var("#2",Imm(64)),Int(1,64))),PLUS(PLUS(UNSIGNED(65,Var("R1",Imm(64))),UNSIGNED(65,Var("#1",Imm(64)))),Int(1,65)))), -Def(Tid(534, "%00000216"), Attrs([Attr("address","0x660"), -Attr("insn","cmp x1, x0")]), Var("ZF",Imm(1)), -EQ(PLUS(Var("#2",Imm(64)),Int(1,64)),Int(0,64))), Def(Tid(538, "%0000021a"), - Attrs([Attr("address","0x660"), Attr("insn","cmp x1, x0")]), - Var("NF",Imm(1)), Extract(63,63,PLUS(Var("#2",Imm(64)),Int(1,64))))]), -Jmps([Goto(Tid(544, "%00000220"), Attrs([Attr("address","0x664"), -Attr("insn","b.eq #0x18")]), EQ(Var("ZF",Imm(1)),Int(1,1)), -Direct(Tid(542, "%0000021e"))), Goto(Tid(1_425, "%00000591"), Attrs([]), - Int(1,1), Direct(Tid(829, "%0000033d")))])), Blk(Tid(829, "%0000033d"), - Attrs([Attr("address","0x668")]), Phis([]), Defs([Def(Tid(832, "%00000340"), - Attrs([Attr("address","0x668"), Attr("insn","adrp x1, #65536")]), - Var("R1",Imm(64)), Int(65536,64)), Def(Tid(839, "%00000347"), - Attrs([Attr("address","0x66C"), Attr("insn","ldr x1, [x1, #0xfd8]")]), - Var("R1",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R1",Imm(64)),Int(4056,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(844, "%0000034c"), Attrs([Attr("address","0x670"), -Attr("insn","cbz x1, #0xc")]), EQ(Var("R1",Imm(64)),Int(0,64)), -Direct(Tid(542, "%0000021e"))), Goto(Tid(1_426, "%00000592"), Attrs([]), - Int(1,1), Direct(Tid(848, "%00000350")))])), Blk(Tid(542, "%0000021e"), - Attrs([Attr("address","0x67C")]), Phis([]), Defs([]), -Jmps([Call(Tid(550, "%00000226"), Attrs([Attr("address","0x67C"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))])), -Blk(Tid(848, "%00000350"), Attrs([Attr("address","0x674")]), Phis([]), -Defs([Def(Tid(852, "%00000354"), Attrs([Attr("address","0x674"), -Attr("insn","mov x16, x1")]), Var("R16",Imm(64)), Var("R1",Imm(64)))]), -Jmps([Call(Tid(857, "%00000359"), Attrs([Attr("address","0x678"), -Attr("insn","br x16")]), Int(1,1), (Indirect(Var("R16",Imm(64))),))]))])), -Sub(Tid(1_396, "@frame_dummy"), Attrs([Attr("c.proto","signed (*)(void)"), -Attr("address","0x710")]), "frame_dummy", Args([Arg(Tid(1_442, "%000005a2"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("frame_dummy_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(702, "@frame_dummy"), - Attrs([Attr("address","0x710")]), Phis([]), Defs([]), -Jmps([Call(Tid(704, "%000002c0"), Attrs([Attr("address","0x710"), -Attr("insn","b #-0x90")]), Int(1,1), -(Direct(Tid(1_398, "@register_tm_clones")),))]))])), Sub(Tid(1_397, "@main"), - Attrs([Attr("c.proto","signed (*)(signed argc, const char** argv)"), -Attr("address","0x714")]), "main", Args([Arg(Tid(1_443, "%000005a3"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("main_argc",Imm(32)), -LOW(32,Var("R0",Imm(64))), In()), Arg(Tid(1_444, "%000005a4"), - Attrs([Attr("c.layout","**[char : 8]"), Attr("c.data","Top:u8 ptr ptr"), -Attr("c.type"," const char**")]), Var("main_argv",Imm(64)), -Var("R1",Imm(64)), Both()), Arg(Tid(1_445, "%000005a5"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("main_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(706, "@main"), - Attrs([Attr("address","0x714")]), Phis([]), Defs([Def(Tid(709, "%000002c5"), - Attrs([Attr("address","0x714"), Attr("insn","adrp x0, #69632")]), - Var("R0",Imm(64)), Int(69632,64)), Def(Tid(715, "%000002cb"), - Attrs([Attr("address","0x718"), Attr("insn","add x0, x0, #0x14")]), - Var("R0",Imm(64)), PLUS(Var("R0",Imm(64)),Int(20,64))), -Def(Tid(720, "%000002d0"), Attrs([Attr("address","0x71C"), -Attr("insn","mov w1, #0x14")]), Var("R1",Imm(64)), Int(20,64)), -Def(Tid(728, "%000002d8"), Attrs([Attr("address","0x720"), -Attr("insn","str w1, [x0]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("R0",Imm(64)),Extract(31,0,Var("R1",Imm(64))),LittleEndian(),32)), -Def(Tid(733, "%000002dd"), Attrs([Attr("address","0x724"), -Attr("insn","mov w0, #0x0")]), Var("R0",Imm(64)), Int(0,64))]), -Jmps([Call(Tid(738, "%000002e2"), Attrs([Attr("address","0x728"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))]))])), -Sub(Tid(1_398, "@register_tm_clones"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x680")]), - "register_tm_clones", Args([Arg(Tid(1_446, "%000005a6"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("register_tm_clones_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(552, "@register_tm_clones"), Attrs([Attr("address","0x680")]), - Phis([]), Defs([Def(Tid(555, "%0000022b"), Attrs([Attr("address","0x680"), -Attr("insn","adrp x0, #69632")]), Var("R0",Imm(64)), Int(69632,64)), -Def(Tid(561, "%00000231"), Attrs([Attr("address","0x684"), -Attr("insn","add x0, x0, #0x10")]), Var("R0",Imm(64)), -PLUS(Var("R0",Imm(64)),Int(16,64))), Def(Tid(566, "%00000236"), - Attrs([Attr("address","0x688"), Attr("insn","adrp x1, #69632")]), - Var("R1",Imm(64)), Int(69632,64)), Def(Tid(572, "%0000023c"), - Attrs([Attr("address","0x68C"), Attr("insn","add x1, x1, #0x10")]), - Var("R1",Imm(64)), PLUS(Var("R1",Imm(64)),Int(16,64))), -Def(Tid(579, "%00000243"), Attrs([Attr("address","0x690"), -Attr("insn","sub x1, x1, x0")]), Var("R1",Imm(64)), -PLUS(PLUS(Var("R1",Imm(64)),NOT(Var("R0",Imm(64)))),Int(1,64))), -Def(Tid(585, "%00000249"), Attrs([Attr("address","0x694"), -Attr("insn","lsr x2, x1, #63")]), Var("R2",Imm(64)), -Concat(Int(0,63),Extract(63,63,Var("R1",Imm(64))))), -Def(Tid(592, "%00000250"), Attrs([Attr("address","0x698"), -Attr("insn","add x1, x2, x1, asr #3")]), Var("R1",Imm(64)), -PLUS(Var("R2",Imm(64)),ARSHIFT(Var("R1",Imm(64)),Int(3,3)))), -Def(Tid(598, "%00000256"), Attrs([Attr("address","0x69C"), -Attr("insn","asr x1, x1, #1")]), Var("R1",Imm(64)), -SIGNED(64,Extract(63,1,Var("R1",Imm(64)))))]), -Jmps([Goto(Tid(604, "%0000025c"), Attrs([Attr("address","0x6A0"), -Attr("insn","cbz x1, #0x18")]), EQ(Var("R1",Imm(64)),Int(0,64)), -Direct(Tid(602, "%0000025a"))), Goto(Tid(1_427, "%00000593"), Attrs([]), - Int(1,1), Direct(Tid(799, "%0000031f")))])), Blk(Tid(799, "%0000031f"), - Attrs([Attr("address","0x6A4")]), Phis([]), Defs([Def(Tid(802, "%00000322"), - Attrs([Attr("address","0x6A4"), Attr("insn","adrp x2, #65536")]), - Var("R2",Imm(64)), Int(65536,64)), Def(Tid(809, "%00000329"), - Attrs([Attr("address","0x6A8"), Attr("insn","ldr x2, [x2, #0xff8]")]), - Var("R2",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R2",Imm(64)),Int(4088,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(814, "%0000032e"), Attrs([Attr("address","0x6AC"), -Attr("insn","cbz x2, #0xc")]), EQ(Var("R2",Imm(64)),Int(0,64)), -Direct(Tid(602, "%0000025a"))), Goto(Tid(1_428, "%00000594"), Attrs([]), - Int(1,1), Direct(Tid(818, "%00000332")))])), Blk(Tid(602, "%0000025a"), - Attrs([Attr("address","0x6B8")]), Phis([]), Defs([]), -Jmps([Call(Tid(610, "%00000262"), Attrs([Attr("address","0x6B8"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))])), -Blk(Tid(818, "%00000332"), Attrs([Attr("address","0x6B0")]), Phis([]), -Defs([Def(Tid(822, "%00000336"), Attrs([Attr("address","0x6B0"), -Attr("insn","mov x16, x2")]), Var("R16",Imm(64)), Var("R2",Imm(64)))]), -Jmps([Call(Tid(827, "%0000033b"), Attrs([Attr("address","0x6B4"), -Attr("insn","br x16")]), Int(1,1), -(Indirect(Var("R16",Imm(64))),))]))]))]))) \ No newline at end of file diff --git a/src/test/correct/basic_loop_assign/gcc/basic_loop_assign.bir b/src/test/correct/basic_loop_assign/gcc/basic_loop_assign.bir deleted file mode 100644 index c3693364b..000000000 --- a/src/test/correct/basic_loop_assign/gcc/basic_loop_assign.bir +++ /dev/null @@ -1,228 +0,0 @@ -00000595: program -00000563: sub __cxa_finalize(__cxa_finalize_result) -00000596: __cxa_finalize_result :: out u32 = low:32[R0] - -0000031b: -00000413: R16 := 0x10000 -0000041a: R17 := mem[R16 + 0xFB8, el]:u64 -00000420: R16 := R16 + 0xFB8 -00000425: call R17 with noreturn - -00000564: sub __do_global_dtors_aux(__do_global_dtors_aux_result) -00000597: __do_global_dtors_aux_result :: out u32 = low:32[R0] - -00000266: -0000026a: #3 := R31 - 0x20 -00000270: mem := mem with [#3, el]:u64 <- R29 -00000276: mem := mem with [#3 + 8, el]:u64 <- R30 -0000027a: R31 := #3 -00000280: R29 := R31 -00000288: mem := mem with [R31 + 0x10, el]:u64 <- R19 -0000028d: R19 := 0x11000 -00000294: R0 := pad:64[mem[R19 + 0x10]] -0000029b: when 31:0[R0] <> 0 goto %00000299 -0000058b: goto %000002e4 - -000002e4: -000002e7: R0 := 0x10000 -000002ee: R0 := mem[R0 + 0xFE0, el]:u64 -000002f4: when R0 = 0 goto %000002f2 -0000058c: goto %0000030b - -0000030b: -0000030e: R0 := 0x11000 -00000315: R0 := mem[R0 + 8, el]:u64 -0000031a: R30 := 0x6F0 -0000031d: call @__cxa_finalize with return %000002f2 - -000002f2: -000002fa: R30 := 0x6F4 -000002fc: call @deregister_tm_clones with return %000002fe - -000002fe: -00000301: R0 := 1 -00000309: mem := mem with [R19 + 0x10] <- 7:0[R0] -0000058d: goto %00000299 - -00000299: -000002a3: R19 := mem[R31 + 0x10, el]:u64 -000002aa: R29 := mem[R31, el]:u64 -000002af: R30 := mem[R31 + 8, el]:u64 -000002b3: R31 := R31 + 0x20 -000002b8: call R30 with noreturn - -00000568: sub __libc_start_main(__libc_start_main_main, __libc_start_main_arg2, __libc_start_main_arg3, __libc_start_main_auxv, __libc_start_main_result) -00000598: __libc_start_main_main :: in u64 = R0 -00000599: __libc_start_main_arg2 :: in u32 = low:32[R1] -0000059a: __libc_start_main_arg3 :: in out u64 = R2 -0000059b: __libc_start_main_auxv :: in out u64 = R3 -0000059c: __libc_start_main_result :: out u32 = low:32[R0] - -000001bf: -000003fd: R16 := 0x10000 -00000404: R17 := mem[R16 + 0xFB0, el]:u64 -0000040a: R16 := R16 + 0xFB0 -0000040f: call R17 with noreturn - -00000569: sub _fini(_fini_result) -0000059d: _fini_result :: out u32 = low:32[R0] - -0000001f: -00000025: #0 := R31 - 0x10 -0000002b: mem := mem with [#0, el]:u64 <- R29 -00000031: mem := mem with [#0 + 8, el]:u64 <- R30 -00000035: R31 := #0 -0000003b: R29 := R31 -00000042: R29 := mem[R31, el]:u64 -00000047: R30 := mem[R31 + 8, el]:u64 -0000004b: R31 := R31 + 0x10 -00000050: call R30 with noreturn - -0000056a: sub _init(_init_result) -0000059e: _init_result :: out u32 = low:32[R0] - -000004bf: -000004c5: #5 := R31 - 0x10 -000004cb: mem := mem with [#5, el]:u64 <- R29 -000004d1: mem := mem with [#5 + 8, el]:u64 <- R30 -000004d5: R31 := #5 -000004db: R29 := R31 -000004e0: R30 := 0x590 -000004e2: call @call_weak_fn with return %000004e4 - -000004e4: -000004e9: R29 := mem[R31, el]:u64 -000004ee: R30 := mem[R31 + 8, el]:u64 -000004f2: R31 := R31 + 0x10 -000004f7: call R30 with noreturn - -0000056b: sub _start(_start_result) -0000059f: _start_result :: out u32 = low:32[R0] - -00000180: -00000185: R29 := 0 -0000018a: R30 := 0 -00000190: R5 := R0 -00000197: R1 := mem[R31, el]:u64 -0000019d: R2 := R31 + 8 -000001a3: R6 := R31 -000001a8: R0 := 0x10000 -000001af: R0 := mem[R0 + 0xFF0, el]:u64 -000001b4: R3 := 0 -000001b9: R4 := 0 -000001be: R30 := 0x630 -000001c1: call @__libc_start_main with return %000001c3 - -000001c3: -000001c6: R30 := 0x634 -000001c9: call @abort with return %0000058e - -0000058e: -0000058f: call @call_weak_fn with noreturn - -0000056e: sub abort() - - -000001c7: -0000043f: R16 := 0x10000 -00000446: R17 := mem[R16 + 0xFC8, el]:u64 -0000044c: R16 := R16 + 0xFC8 -00000451: call R17 with noreturn - -0000056f: sub call_weak_fn(call_weak_fn_result) -000005a0: call_weak_fn_result :: out u32 = low:32[R0] - -000001cb: -000001ce: R0 := 0x10000 -000001d5: R0 := mem[R0 + 0xFE8, el]:u64 -000001db: when R0 = 0 goto %000001d9 -00000590: goto %0000035b - -000001d9: -000001e1: call R30 with noreturn - -0000035b: -0000035e: goto @__gmon_start__ - -0000035c: -00000429: R16 := 0x10000 -00000430: R17 := mem[R16 + 0xFC0, el]:u64 -00000436: R16 := R16 + 0xFC0 -0000043b: call R17 with noreturn - -00000571: sub deregister_tm_clones(deregister_tm_clones_result) -000005a1: deregister_tm_clones_result :: out u32 = low:32[R0] - -000001e7: -000001ea: R0 := 0x11000 -000001f0: R0 := R0 + 0x10 -000001f5: R1 := 0x11000 -000001fb: R1 := R1 + 0x10 -00000201: #1 := ~R0 -00000206: #2 := R1 + ~R0 -0000020c: VF := extend:65[#2 + 1] <> extend:65[R1] + extend:65[#1] + 1 -00000212: CF := pad:65[#2 + 1] <> pad:65[R1] + pad:65[#1] + 1 -00000216: ZF := #2 + 1 = 0 -0000021a: NF := 63:63[#2 + 1] -00000220: when ZF goto %0000021e -00000591: goto %0000033d - -0000033d: -00000340: R1 := 0x10000 -00000347: R1 := mem[R1 + 0xFD8, el]:u64 -0000034c: when R1 = 0 goto %0000021e -00000592: goto %00000350 - -0000021e: -00000226: call R30 with noreturn - -00000350: -00000354: R16 := R1 -00000359: call R16 with noreturn - -00000574: sub frame_dummy(frame_dummy_result) -000005a2: frame_dummy_result :: out u32 = low:32[R0] - -000002be: -000002c0: call @register_tm_clones with noreturn - -00000575: sub main(main_argc, main_argv, main_result) -000005a3: main_argc :: in u32 = low:32[R0] -000005a4: main_argv :: in out u64 = R1 -000005a5: main_result :: out u32 = low:32[R0] - -000002c2: -000002c5: R0 := 0x11000 -000002cb: R0 := R0 + 0x14 -000002d0: R1 := 0x14 -000002d8: mem := mem with [R0, el]:u32 <- 31:0[R1] -000002dd: R0 := 0 -000002e2: call R30 with noreturn - -00000576: sub register_tm_clones(register_tm_clones_result) -000005a6: register_tm_clones_result :: out u32 = low:32[R0] - -00000228: -0000022b: R0 := 0x11000 -00000231: R0 := R0 + 0x10 -00000236: R1 := 0x11000 -0000023c: R1 := R1 + 0x10 -00000243: R1 := R1 + ~R0 + 1 -00000249: R2 := 0.63:63[R1] -00000250: R1 := R2 + (R1 ~>> 3) -00000256: R1 := extend:64[63:1[R1]] -0000025c: when R1 = 0 goto %0000025a -00000593: goto %0000031f - -0000031f: -00000322: R2 := 0x10000 -00000329: R2 := mem[R2 + 0xFF8, el]:u64 -0000032e: when R2 = 0 goto %0000025a -00000594: goto %00000332 - -0000025a: -00000262: call R30 with noreturn - -00000332: -00000336: R16 := R2 -0000033b: call R16 with noreturn diff --git a/src/test/correct/basic_loop_assign/gcc/basic_loop_assign.expected b/src/test/correct/basic_loop_assign/gcc/basic_loop_assign.expected index cc2a358cf..e0062a835 100644 --- a/src/test/correct/basic_loop_assign/gcc/basic_loop_assign.expected +++ b/src/test/correct/basic_loop_assign/gcc/basic_loop_assign.expected @@ -64,7 +64,7 @@ implementation {:extern} guarantee_reflexive() assert (((memory_load32_le(mem, $x_addr) == memory_load32_le(mem, $x_addr)) || ((memory_load32_le(mem, $x_addr) == 20bv32) && (memory_load32_le(mem, $x_addr) == 0bv32))) || ((memory_load32_le(mem, $x_addr) == 20bv32) && bvsle32(memory_load32_le(mem, $x_addr), 10bv32))); } -procedure main_1812(); +procedure main(); modifies Gamma_R0, Gamma_R1, Gamma_mem, R0, R1, mem; requires (memory_load32_le(mem, $x_addr) == 0bv32); free requires (memory_load64_le(mem, 69632bv64) == 0bv64); @@ -81,7 +81,7 @@ procedure main_1812(); free ensures (memory_load64_le(mem, 69616bv64) == 1812bv64); free ensures (memory_load64_le(mem, 69640bv64) == 69640bv64); -implementation main_1812() +implementation main() { var x_old: bv32; lmain: @@ -90,15 +90,15 @@ implementation main_1812() R0, Gamma_R0 := bvadd64(R0, 20bv64), Gamma_R0; R1, Gamma_R1 := 20bv64, true; call rely(); - x_old := memory_load32_le(mem, $x_addr); assert (L(mem, R0) ==> Gamma_R1); + x_old := memory_load32_le(mem, $x_addr); mem, Gamma_mem := memory_store32_le(mem, R0, R1[32:0]), gamma_store32(Gamma_mem, R0, Gamma_R1); assert (((memory_load32_le(mem, $x_addr) == x_old) || ((memory_load32_le(mem, $x_addr) == 20bv32) && (x_old == 0bv32))) || ((memory_load32_le(mem, $x_addr) == 20bv32) && bvsle32(x_old, 10bv32))); assume {:captureState "%000002d8"} true; R0, Gamma_R0 := 0bv64, true; - goto main_1812_basil_return; - main_1812_basil_return: - assume {:captureState "main_1812_basil_return"} true; + goto main_basil_return; + main_basil_return: + assume {:captureState "main_basil_return"} true; return; } diff --git a/src/test/correct/basic_loop_assign/gcc/basic_loop_assign.gts b/src/test/correct/basic_loop_assign/gcc/basic_loop_assign.gts deleted file mode 100644 index 7443e436e..000000000 Binary files a/src/test/correct/basic_loop_assign/gcc/basic_loop_assign.gts and /dev/null differ diff --git a/src/test/correct/basic_loop_assign/gcc/basic_loop_assign.md5sum b/src/test/correct/basic_loop_assign/gcc/basic_loop_assign.md5sum new file mode 100644 index 000000000..08031939e --- /dev/null +++ b/src/test/correct/basic_loop_assign/gcc/basic_loop_assign.md5sum @@ -0,0 +1,5 @@ +68c3032266a5fb63cb39793c29a5bd35 correct/basic_loop_assign/gcc/a.out +b385b96d304530a098a01c7281c3afd7 correct/basic_loop_assign/gcc/basic_loop_assign.adt +0fde082059a270494fd4954391a135b6 correct/basic_loop_assign/gcc/basic_loop_assign.bir +f4152c33097293fe3682d02cf1e4de5e correct/basic_loop_assign/gcc/basic_loop_assign.relf +004b5c48ae3e62da68528f150e767826 correct/basic_loop_assign/gcc/basic_loop_assign.gts diff --git a/src/test/correct/basic_loop_assign/gcc/basic_loop_assign.relf b/src/test/correct/basic_loop_assign/gcc/basic_loop_assign.relf deleted file mode 100644 index 17746f420..000000000 --- a/src/test/correct/basic_loop_assign/gcc/basic_loop_assign.relf +++ /dev/null @@ -1,121 +0,0 @@ - -Relocation section '.rela.dyn' at offset 0x460 contains 8 entries: - Offset Info Type Symbol's Value Symbol's Name + Addend -0000000000010d98 0000000000000403 R_AARCH64_RELATIVE 710 -0000000000010da0 0000000000000403 R_AARCH64_RELATIVE 6c0 -0000000000010ff0 0000000000000403 R_AARCH64_RELATIVE 714 -0000000000011008 0000000000000403 R_AARCH64_RELATIVE 11008 -0000000000010fd8 0000000400000401 R_AARCH64_GLOB_DAT 0000000000000000 _ITM_deregisterTMCloneTable + 0 -0000000000010fe0 0000000500000401 R_AARCH64_GLOB_DAT 0000000000000000 __cxa_finalize@GLIBC_2.17 + 0 -0000000000010fe8 0000000600000401 R_AARCH64_GLOB_DAT 0000000000000000 __gmon_start__ + 0 -0000000000010ff8 0000000800000401 R_AARCH64_GLOB_DAT 0000000000000000 _ITM_registerTMCloneTable + 0 - -Relocation section '.rela.plt' at offset 0x520 contains 4 entries: - Offset Info Type Symbol's Value Symbol's Name + Addend -0000000000010fb0 0000000300000402 R_AARCH64_JUMP_SLOT 0000000000000000 __libc_start_main@GLIBC_2.34 + 0 -0000000000010fb8 0000000500000402 R_AARCH64_JUMP_SLOT 0000000000000000 __cxa_finalize@GLIBC_2.17 + 0 -0000000000010fc0 0000000600000402 R_AARCH64_JUMP_SLOT 0000000000000000 __gmon_start__ + 0 -0000000000010fc8 0000000700000402 R_AARCH64_JUMP_SLOT 0000000000000000 abort@GLIBC_2.17 + 0 - -Symbol table '.dynsym' contains 9 entries: - Num: Value Size Type Bind Vis Ndx Name - 0: 0000000000000000 0 NOTYPE LOCAL DEFAULT UND - 1: 0000000000000580 0 SECTION LOCAL DEFAULT 11 .init - 2: 0000000000011000 0 SECTION LOCAL DEFAULT 22 .data - 3: 0000000000000000 0 FUNC GLOBAL DEFAULT UND __libc_start_main@GLIBC_2.34 (2) - 4: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_deregisterTMCloneTable - 5: 0000000000000000 0 FUNC WEAK DEFAULT UND __cxa_finalize@GLIBC_2.17 (3) - 6: 0000000000000000 0 NOTYPE WEAK DEFAULT UND __gmon_start__ - 7: 0000000000000000 0 FUNC GLOBAL DEFAULT UND abort@GLIBC_2.17 (3) - 8: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_registerTMCloneTable - -Symbol table '.symtab' contains 88 entries: - Num: Value Size Type Bind Vis Ndx Name - 0: 0000000000000000 0 NOTYPE LOCAL DEFAULT UND - 1: 0000000000000238 0 SECTION LOCAL DEFAULT 1 .interp - 2: 0000000000000254 0 SECTION LOCAL DEFAULT 2 .note.gnu.build-id - 3: 0000000000000278 0 SECTION LOCAL DEFAULT 3 .note.ABI-tag - 4: 0000000000000298 0 SECTION LOCAL DEFAULT 4 .gnu.hash - 5: 00000000000002b8 0 SECTION LOCAL DEFAULT 5 .dynsym - 6: 0000000000000390 0 SECTION LOCAL DEFAULT 6 .dynstr - 7: 000000000000041e 0 SECTION LOCAL DEFAULT 7 .gnu.version - 8: 0000000000000430 0 SECTION LOCAL DEFAULT 8 .gnu.version_r - 9: 0000000000000460 0 SECTION LOCAL DEFAULT 9 .rela.dyn - 10: 0000000000000520 0 SECTION LOCAL DEFAULT 10 .rela.plt - 11: 0000000000000580 0 SECTION LOCAL DEFAULT 11 .init - 12: 00000000000005a0 0 SECTION LOCAL DEFAULT 12 .plt - 13: 0000000000000600 0 SECTION LOCAL DEFAULT 13 .text - 14: 000000000000072c 0 SECTION LOCAL DEFAULT 14 .fini - 15: 0000000000000740 0 SECTION LOCAL DEFAULT 15 .rodata - 16: 0000000000000744 0 SECTION LOCAL DEFAULT 16 .eh_frame_hdr - 17: 0000000000000780 0 SECTION LOCAL DEFAULT 17 .eh_frame - 18: 0000000000010d98 0 SECTION LOCAL DEFAULT 18 .init_array - 19: 0000000000010da0 0 SECTION LOCAL DEFAULT 19 .fini_array - 20: 0000000000010da8 0 SECTION LOCAL DEFAULT 20 .dynamic - 21: 0000000000010f98 0 SECTION LOCAL DEFAULT 21 .got - 22: 0000000000011000 0 SECTION LOCAL DEFAULT 22 .data - 23: 0000000000011010 0 SECTION LOCAL DEFAULT 23 .bss - 24: 0000000000000000 0 SECTION LOCAL DEFAULT 24 .comment - 25: 0000000000000000 0 FILE LOCAL DEFAULT ABS Scrt1.o - 26: 0000000000000278 0 NOTYPE LOCAL DEFAULT 3 $d - 27: 0000000000000278 32 OBJECT LOCAL DEFAULT 3 __abi_tag - 28: 0000000000000600 0 NOTYPE LOCAL DEFAULT 13 $x - 29: 0000000000000794 0 NOTYPE LOCAL DEFAULT 17 $d - 30: 0000000000000740 0 NOTYPE LOCAL DEFAULT 15 $d - 31: 0000000000000000 0 FILE LOCAL DEFAULT ABS crti.o - 32: 0000000000000634 0 NOTYPE LOCAL DEFAULT 13 $x - 33: 0000000000000634 20 FUNC LOCAL DEFAULT 13 call_weak_fn - 34: 0000000000000580 0 NOTYPE LOCAL DEFAULT 11 $x - 35: 000000000000072c 0 NOTYPE LOCAL DEFAULT 14 $x - 36: 0000000000000000 0 FILE LOCAL DEFAULT ABS crtn.o - 37: 0000000000000590 0 NOTYPE LOCAL DEFAULT 11 $x - 38: 0000000000000738 0 NOTYPE LOCAL DEFAULT 14 $x - 39: 0000000000000000 0 FILE LOCAL DEFAULT ABS crtstuff.c - 40: 0000000000000650 0 NOTYPE LOCAL DEFAULT 13 $x - 41: 0000000000000650 0 FUNC LOCAL DEFAULT 13 deregister_tm_clones - 42: 0000000000000680 0 FUNC LOCAL DEFAULT 13 register_tm_clones - 43: 0000000000011008 0 NOTYPE LOCAL DEFAULT 22 $d - 44: 00000000000006c0 0 FUNC LOCAL DEFAULT 13 __do_global_dtors_aux - 45: 0000000000011010 1 OBJECT LOCAL DEFAULT 23 completed.0 - 46: 0000000000010da0 0 NOTYPE LOCAL DEFAULT 19 $d - 47: 0000000000010da0 0 OBJECT LOCAL DEFAULT 19 __do_global_dtors_aux_fini_array_entry - 48: 0000000000000710 0 FUNC LOCAL DEFAULT 13 frame_dummy - 49: 0000000000010d98 0 NOTYPE LOCAL DEFAULT 18 $d - 50: 0000000000010d98 0 OBJECT LOCAL DEFAULT 18 __frame_dummy_init_array_entry - 51: 00000000000007a8 0 NOTYPE LOCAL DEFAULT 17 $d - 52: 0000000000011010 0 NOTYPE LOCAL DEFAULT 23 $d - 53: 0000000000000000 0 FILE LOCAL DEFAULT ABS basic_loop_assign.c - 54: 0000000000011014 0 NOTYPE LOCAL DEFAULT 23 $d - 55: 0000000000000714 0 NOTYPE LOCAL DEFAULT 13 $x - 56: 0000000000000808 0 NOTYPE LOCAL DEFAULT 17 $d - 57: 0000000000000000 0 FILE LOCAL DEFAULT ABS crtstuff.c - 58: 000000000000081c 0 NOTYPE LOCAL DEFAULT 17 $d - 59: 000000000000081c 0 OBJECT LOCAL DEFAULT 17 __FRAME_END__ - 60: 0000000000000000 0 FILE LOCAL DEFAULT ABS - 61: 0000000000010da8 0 OBJECT LOCAL DEFAULT ABS _DYNAMIC - 62: 0000000000000744 0 NOTYPE LOCAL DEFAULT 16 __GNU_EH_FRAME_HDR - 63: 0000000000010fd0 0 OBJECT LOCAL DEFAULT ABS _GLOBAL_OFFSET_TABLE_ - 64: 00000000000005a0 0 NOTYPE LOCAL DEFAULT 12 $x - 65: 0000000000000000 0 FUNC GLOBAL DEFAULT UND __libc_start_main@GLIBC_2.34 - 66: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_deregisterTMCloneTable - 67: 0000000000011000 0 NOTYPE WEAK DEFAULT 22 data_start - 68: 0000000000011010 0 NOTYPE GLOBAL DEFAULT 23 __bss_start__ - 69: 0000000000000000 0 FUNC WEAK DEFAULT UND __cxa_finalize@GLIBC_2.17 - 70: 0000000000011018 0 NOTYPE GLOBAL DEFAULT 23 _bss_end__ - 71: 0000000000011010 0 NOTYPE GLOBAL DEFAULT 22 _edata - 72: 0000000000011014 4 OBJECT GLOBAL DEFAULT 23 x - 73: 000000000000072c 0 FUNC GLOBAL HIDDEN 14 _fini - 74: 0000000000011018 0 NOTYPE GLOBAL DEFAULT 23 __bss_end__ - 75: 0000000000011000 0 NOTYPE GLOBAL DEFAULT 22 __data_start - 76: 0000000000000000 0 NOTYPE WEAK DEFAULT UND __gmon_start__ - 77: 0000000000011008 0 OBJECT GLOBAL HIDDEN 22 __dso_handle - 78: 0000000000000000 0 FUNC GLOBAL DEFAULT UND abort@GLIBC_2.17 - 79: 0000000000000740 4 OBJECT GLOBAL DEFAULT 15 _IO_stdin_used - 80: 0000000000011018 0 NOTYPE GLOBAL DEFAULT 23 _end - 81: 0000000000000600 52 FUNC GLOBAL DEFAULT 13 _start - 82: 0000000000011018 0 NOTYPE GLOBAL DEFAULT 23 __end__ - 83: 0000000000011010 0 NOTYPE GLOBAL DEFAULT 23 __bss_start - 84: 0000000000000714 24 FUNC GLOBAL DEFAULT 13 main - 85: 0000000000011010 0 OBJECT GLOBAL HIDDEN 22 __TMC_END__ - 86: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_registerTMCloneTable - 87: 0000000000000580 0 FUNC GLOBAL HIDDEN 11 _init diff --git a/src/test/correct/basic_loop_assign/gcc/basic_loop_assign_gtirb.expected b/src/test/correct/basic_loop_assign/gcc/basic_loop_assign_gtirb.expected index 426d00a50..0af511b16 100644 --- a/src/test/correct/basic_loop_assign/gcc/basic_loop_assign_gtirb.expected +++ b/src/test/correct/basic_loop_assign/gcc/basic_loop_assign_gtirb.expected @@ -64,7 +64,7 @@ implementation {:extern} guarantee_reflexive() assert (((memory_load32_le(mem, $x_addr) == memory_load32_le(mem, $x_addr)) || ((memory_load32_le(mem, $x_addr) == 20bv32) && (memory_load32_le(mem, $x_addr) == 0bv32))) || ((memory_load32_le(mem, $x_addr) == 20bv32) && bvsle32(memory_load32_le(mem, $x_addr), 10bv32))); } -procedure main_1812(); +procedure main(); modifies Gamma_R0, Gamma_R1, Gamma_mem, R0, R1, mem; requires (memory_load32_le(mem, $x_addr) == 0bv32); free requires (memory_load64_le(mem, 69632bv64) == 0bv64); @@ -81,24 +81,24 @@ procedure main_1812(); free ensures (memory_load64_le(mem, 69616bv64) == 1812bv64); free ensures (memory_load64_le(mem, 69640bv64) == 69640bv64); -implementation main_1812() +implementation main() { var x_old: bv32; - main_1812__0__p4UERrmhRwu7KcaoTRPNUg: - assume {:captureState "main_1812__0__p4UERrmhRwu7KcaoTRPNUg"} true; + $main$__0__$p4UERrmhRwu7KcaoTRPNUg: + assume {:captureState "$main$__0__$p4UERrmhRwu7KcaoTRPNUg"} true; R0, Gamma_R0 := 69632bv64, true; R0, Gamma_R0 := bvadd64(R0, 20bv64), Gamma_R0; R1, Gamma_R1 := 20bv64, true; call rely(); - x_old := memory_load32_le(mem, $x_addr); assert (L(mem, R0) ==> Gamma_R1); + x_old := memory_load32_le(mem, $x_addr); mem, Gamma_mem := memory_store32_le(mem, R0, R1[32:0]), gamma_store32(Gamma_mem, R0, Gamma_R1); assert (((memory_load32_le(mem, $x_addr) == x_old) || ((memory_load32_le(mem, $x_addr) == 20bv32) && (x_old == 0bv32))) || ((memory_load32_le(mem, $x_addr) == 20bv32) && bvsle32(x_old, 10bv32))); - assume {:captureState "1824_0"} true; + assume {:captureState "1824$0"} true; R0, Gamma_R0 := 0bv64, true; - goto main_1812_basil_return; - main_1812_basil_return: - assume {:captureState "main_1812_basil_return"} true; + goto main_basil_return; + main_basil_return: + assume {:captureState "main_basil_return"} true; return; } diff --git a/src/test/correct/basic_loop_assign/gcc_O2/basic_loop_assign.adt b/src/test/correct/basic_loop_assign/gcc_O2/basic_loop_assign.adt deleted file mode 100644 index 505feba73..000000000 --- a/src/test/correct/basic_loop_assign/gcc_O2/basic_loop_assign.adt +++ /dev/null @@ -1,492 +0,0 @@ -Project(Attrs([Attr("filename","\"gcc_O2/basic_loop_assign.out\""), -Attr("image-specification","(declare abi (name str))\n(declare arch (name str))\n(declare base-address (addr int))\n(declare bias (off int))\n(declare bits (size int))\n(declare code-region (addr int) (size int) (off int))\n(declare code-start (addr int))\n(declare entry-point (addr int))\n(declare external-reference (addr int) (name str))\n(declare format (name str))\n(declare is-executable (flag bool))\n(declare is-little-endian (flag bool))\n(declare llvm:base-address (addr int))\n(declare llvm:code-entry (name str) (off int) (size int))\n(declare llvm:coff-import-library (name str))\n(declare llvm:coff-virtual-section-header (name str) (addr int) (size int))\n(declare llvm:elf-program-header (name str) (off int) (size int))\n(declare llvm:elf-program-header-flags (name str) (ld bool) (r bool) \n (w bool) (x bool))\n(declare llvm:elf-virtual-program-header (name str) (addr int) (size int))\n(declare llvm:entry-point (addr int))\n(declare llvm:macho-symbol (name str) (value int))\n(declare llvm:name-reference (at int) (name str))\n(declare llvm:relocation (at int) (addr int))\n(declare llvm:section-entry (name str) (addr int) (size int) (off int))\n(declare llvm:section-flags (name str) (r bool) (w bool) (x bool))\n(declare llvm:segment-command (name str) (off int) (size int))\n(declare llvm:segment-command-flags (name str) (r bool) (w bool) (x bool))\n(declare llvm:symbol-entry (name str) (addr int) (size int) (off int)\n (value int))\n(declare llvm:virtual-segment-command (name str) (addr int) (size int))\n(declare mapped (addr int) (size int) (off int))\n(declare named-region (addr int) (size int) (name str))\n(declare named-symbol (addr int) (name str))\n(declare require (name str))\n(declare section (addr int) (size int))\n(declare segment (addr int) (size int) (r bool) (w bool) (x bool))\n(declare subarch (name str))\n(declare symbol-chunk (addr int) (size int) (root int))\n(declare symbol-value (addr int) (value int))\n(declare system (name str))\n(declare vendor (name str))\n\n(abi unknown)\n(arch aarch64)\n(base-address 0)\n(bias 0)\n(bits 64)\n(code-region 1876 20 1876)\n(code-region 1536 340 1536)\n(code-region 1440 96 1440)\n(code-region 1408 24 1408)\n(code-start 1652)\n(code-start 1600)\n(code-start 1536)\n(entry-point 1600)\n(external-reference 69592 _ITM_deregisterTMCloneTable)\n(external-reference 69600 __cxa_finalize)\n(external-reference 69608 __gmon_start__)\n(external-reference 69624 _ITM_registerTMCloneTable)\n(external-reference 69552 __libc_start_main)\n(external-reference 69560 __cxa_finalize)\n(external-reference 69568 __gmon_start__)\n(external-reference 69576 abort)\n(format elf)\n(is-executable true)\n(is-little-endian true)\n(llvm:base-address 0)\n(llvm:code-entry abort 0 0)\n(llvm:code-entry __cxa_finalize 0 0)\n(llvm:code-entry __libc_start_main 0 0)\n(llvm:code-entry _init 1408 0)\n(llvm:code-entry main 1536 20)\n(llvm:code-entry _start 1600 52)\n(llvm:code-entry abort@GLIBC_2.17 0 0)\n(llvm:code-entry _fini 1876 0)\n(llvm:code-entry __cxa_finalize@GLIBC_2.17 0 0)\n(llvm:code-entry __libc_start_main@GLIBC_2.34 0 0)\n(llvm:code-entry frame_dummy 1872 0)\n(llvm:code-entry __do_global_dtors_aux 1792 0)\n(llvm:code-entry register_tm_clones 1728 0)\n(llvm:code-entry deregister_tm_clones 1680 0)\n(llvm:code-entry call_weak_fn 1652 20)\n(llvm:code-entry .fini 1876 20)\n(llvm:code-entry .text 1536 340)\n(llvm:code-entry .plt 1440 96)\n(llvm:code-entry .init 1408 24)\n(llvm:elf-program-header 08 3480 616)\n(llvm:elf-program-header 07 0 0)\n(llvm:elf-program-header 06 1900 60)\n(llvm:elf-program-header 05 596 68)\n(llvm:elf-program-header 04 3496 496)\n(llvm:elf-program-header 03 3480 632)\n(llvm:elf-program-header 02 0 2120)\n(llvm:elf-program-header 01 568 27)\n(llvm:elf-program-header 00 64 504)\n(llvm:elf-program-header-flags 08 false true false false)\n(llvm:elf-program-header-flags 07 false true true false)\n(llvm:elf-program-header-flags 06 false true false false)\n(llvm:elf-program-header-flags 05 false true false false)\n(llvm:elf-program-header-flags 04 false true true false)\n(llvm:elf-program-header-flags 03 true true true false)\n(llvm:elf-program-header-flags 02 true true false true)\n(llvm:elf-program-header-flags 01 false true false false)\n(llvm:elf-program-header-flags 00 false true false false)\n(llvm:elf-virtual-program-header 08 69016 616)\n(llvm:elf-virtual-program-header 07 0 0)\n(llvm:elf-virtual-program-header 06 1900 60)\n(llvm:elf-virtual-program-header 05 596 68)\n(llvm:elf-virtual-program-header 04 69032 496)\n(llvm:elf-virtual-program-header 03 69016 640)\n(llvm:elf-virtual-program-header 02 0 2120)\n(llvm:elf-virtual-program-header 01 568 27)\n(llvm:elf-virtual-program-header 00 64 504)\n(llvm:entry-point 1600)\n(llvm:name-reference 69576 abort)\n(llvm:name-reference 69568 __gmon_start__)\n(llvm:name-reference 69560 __cxa_finalize)\n(llvm:name-reference 69552 __libc_start_main)\n(llvm:name-reference 69624 _ITM_registerTMCloneTable)\n(llvm:name-reference 69608 __gmon_start__)\n(llvm:name-reference 69600 __cxa_finalize)\n(llvm:name-reference 69592 _ITM_deregisterTMCloneTable)\n(llvm:section-entry .shstrtab 0 250 6825)\n(llvm:section-entry .strtab 0 553 6272)\n(llvm:section-entry .symtab 0 2112 4160)\n(llvm:section-entry .comment 0 43 4112)\n(llvm:section-entry .bss 69648 8 4112)\n(llvm:section-entry .data 69632 16 4096)\n(llvm:section-entry .got 69528 104 3992)\n(llvm:section-entry .dynamic 69032 496 3496)\n(llvm:section-entry .fini_array 69024 8 3488)\n(llvm:section-entry .init_array 69016 8 3480)\n(llvm:section-entry .eh_frame 1960 160 1960)\n(llvm:section-entry .eh_frame_hdr 1900 60 1900)\n(llvm:section-entry .rodata 1896 4 1896)\n(llvm:section-entry .fini 1876 20 1876)\n(llvm:section-entry .text 1536 340 1536)\n(llvm:section-entry .plt 1440 96 1440)\n(llvm:section-entry .init 1408 24 1408)\n(llvm:section-entry .rela.plt 1312 96 1312)\n(llvm:section-entry .rela.dyn 1120 192 1120)\n(llvm:section-entry .gnu.version_r 1072 48 1072)\n(llvm:section-entry .gnu.version 1054 18 1054)\n(llvm:section-entry .dynstr 912 141 912)\n(llvm:section-entry .dynsym 696 216 696)\n(llvm:section-entry .gnu.hash 664 28 664)\n(llvm:section-entry .note.ABI-tag 632 32 632)\n(llvm:section-entry .note.gnu.build-id 596 36 596)\n(llvm:section-entry .interp 568 27 568)\n(llvm:section-flags .shstrtab true false false)\n(llvm:section-flags .strtab true false false)\n(llvm:section-flags .symtab true false false)\n(llvm:section-flags .comment true false false)\n(llvm:section-flags .bss true true false)\n(llvm:section-flags .data true true false)\n(llvm:section-flags .got true true false)\n(llvm:section-flags .dynamic true true false)\n(llvm:section-flags .fini_array true true false)\n(llvm:section-flags .init_array true true false)\n(llvm:section-flags .eh_frame true false false)\n(llvm:section-flags .eh_frame_hdr true false false)\n(llvm:section-flags .rodata true false false)\n(llvm:section-flags .fini true false true)\n(llvm:section-flags .text true false true)\n(llvm:section-flags .plt true false true)\n(llvm:section-flags .init true false true)\n(llvm:section-flags .rela.plt true false false)\n(llvm:section-flags .rela.dyn true false false)\n(llvm:section-flags .gnu.version_r true false false)\n(llvm:section-flags .gnu.version true false false)\n(llvm:section-flags .dynstr true false false)\n(llvm:section-flags .dynsym true false false)\n(llvm:section-flags .gnu.hash true false false)\n(llvm:section-flags .note.ABI-tag true false false)\n(llvm:section-flags .note.gnu.build-id true false false)\n(llvm:section-flags .interp true false false)\n(llvm:symbol-entry abort 0 0 0 0)\n(llvm:symbol-entry __cxa_finalize 0 0 0 0)\n(llvm:symbol-entry __libc_start_main 0 0 0 0)\n(llvm:symbol-entry _init 1408 0 1408 1408)\n(llvm:symbol-entry main 1536 20 1536 1536)\n(llvm:symbol-entry _start 1600 52 1600 1600)\n(llvm:symbol-entry abort@GLIBC_2.17 0 0 0 0)\n(llvm:symbol-entry _fini 1876 0 1876 1876)\n(llvm:symbol-entry __cxa_finalize@GLIBC_2.17 0 0 0 0)\n(llvm:symbol-entry __libc_start_main@GLIBC_2.34 0 0 0 0)\n(llvm:symbol-entry frame_dummy 1872 0 1872 1872)\n(llvm:symbol-entry __do_global_dtors_aux 1792 0 1792 1792)\n(llvm:symbol-entry register_tm_clones 1728 0 1728 1728)\n(llvm:symbol-entry deregister_tm_clones 1680 0 1680 1680)\n(llvm:symbol-entry call_weak_fn 1652 20 1652 1652)\n(mapped 0 2120 0)\n(mapped 69016 632 3480)\n(named-region 0 2120 02)\n(named-region 69016 640 03)\n(named-region 568 27 .interp)\n(named-region 596 36 .note.gnu.build-id)\n(named-region 632 32 .note.ABI-tag)\n(named-region 664 28 .gnu.hash)\n(named-region 696 216 .dynsym)\n(named-region 912 141 .dynstr)\n(named-region 1054 18 .gnu.version)\n(named-region 1072 48 .gnu.version_r)\n(named-region 1120 192 .rela.dyn)\n(named-region 1312 96 .rela.plt)\n(named-region 1408 24 .init)\n(named-region 1440 96 .plt)\n(named-region 1536 340 .text)\n(named-region 1876 20 .fini)\n(named-region 1896 4 .rodata)\n(named-region 1900 60 .eh_frame_hdr)\n(named-region 1960 160 .eh_frame)\n(named-region 69016 8 .init_array)\n(named-region 69024 8 .fini_array)\n(named-region 69032 496 .dynamic)\n(named-region 69528 104 .got)\n(named-region 69632 16 .data)\n(named-region 69648 8 .bss)\n(named-region 0 43 .comment)\n(named-region 0 2112 .symtab)\n(named-region 0 553 .strtab)\n(named-region 0 250 .shstrtab)\n(named-symbol 1652 call_weak_fn)\n(named-symbol 1680 deregister_tm_clones)\n(named-symbol 1728 register_tm_clones)\n(named-symbol 1792 __do_global_dtors_aux)\n(named-symbol 1872 frame_dummy)\n(named-symbol 0 __libc_start_main@GLIBC_2.34)\n(named-symbol 0 __cxa_finalize@GLIBC_2.17)\n(named-symbol 1876 _fini)\n(named-symbol 0 abort@GLIBC_2.17)\n(named-symbol 1600 _start)\n(named-symbol 1536 main)\n(named-symbol 1408 _init)\n(named-symbol 0 __libc_start_main)\n(named-symbol 0 __cxa_finalize)\n(named-symbol 0 abort)\n(require libc.so.6)\n(section 568 27)\n(section 596 36)\n(section 632 32)\n(section 664 28)\n(section 696 216)\n(section 912 141)\n(section 1054 18)\n(section 1072 48)\n(section 1120 192)\n(section 1312 96)\n(section 1408 24)\n(section 1440 96)\n(section 1536 340)\n(section 1876 20)\n(section 1896 4)\n(section 1900 60)\n(section 1960 160)\n(section 69016 8)\n(section 69024 8)\n(section 69032 496)\n(section 69528 104)\n(section 69632 16)\n(section 69648 8)\n(section 0 43)\n(section 0 2112)\n(section 0 553)\n(section 0 250)\n(segment 0 2120 true false true)\n(segment 69016 640 true true false)\n(subarch v8)\n(symbol-chunk 1652 20 1652)\n(symbol-chunk 1600 52 1600)\n(symbol-chunk 1536 20 1536)\n(symbol-value 1652 1652)\n(symbol-value 1680 1680)\n(symbol-value 1728 1728)\n(symbol-value 1792 1792)\n(symbol-value 1872 1872)\n(symbol-value 1876 1876)\n(symbol-value 1600 1600)\n(symbol-value 1536 1536)\n(symbol-value 1408 1408)\n(symbol-value 0 0)\n(system \"\")\n(vendor \"\")\n"), -Attr("abi-name","\"aarch64-linux-gnu-elf\"")]), -Sections([Section(".shstrtab", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x40\x06\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xa8\x1b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x38\x00\x09\x00\x40\x00\x1c\x00\x1b\x00\x06\x00\x00\x00\x04\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x04\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x48\x08\x00\x00\x00\x00\x00\x00\x48\x08\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x01\x00\x00\x00\x06\x00\x00\x00\x98\x0d\x00\x00\x00\x00\x00\x00\x98\x0d"), -Section(".strtab", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x40\x06\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xa8\x1b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x38\x00\x09\x00\x40\x00\x1c\x00\x1b\x00\x06\x00\x00\x00\x04\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x04\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x48\x08\x00\x00\x00\x00\x00\x00\x48\x08\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x01\x00\x00\x00\x06\x00\x00\x00\x98\x0d\x00\x00\x00\x00\x00\x00\x98\x0d\x01\x00\x00\x00\x00\x00\x98\x0d\x01\x00\x00\x00\x00\x00\x78\x02\x00\x00\x00\x00\x00\x00\x80\x02\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x02\x00\x00\x00\x06\x00\x00\x00\xa8\x0d\x00\x00\x00\x00\x00\x00\xa8\x0d\x01\x00\x00\x00\x00\x00\xa8\x0d\x01\x00\x00\x00\x00\x00\xf0\x01\x00\x00\x00\x00\x00\x00\xf0\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x04\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x50\xe5\x74\x64\x04\x00\x00\x00\x6c\x07\x00\x00\x00\x00\x00\x00\x6c\x07\x00\x00\x00\x00\x00\x00\x6c\x07\x00\x00\x00\x00\x00\x00\x3c\x00\x00\x00\x00\x00\x00\x00\x3c\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x51\xe5\x74\x64\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x52\xe5\x74\x64\x04\x00\x00\x00\x98\x0d\x00\x00\x00\x00\x00\x00\x98\x0d\x01\x00\x00\x00\x00\x00\x98\x0d\x01\x00\x00\x00\x00\x00\x68\x02\x00\x00\x00\x00\x00\x00\x68"), -Section(".symtab", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x40\x06\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xa8\x1b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x38\x00\x09\x00\x40\x00\x1c\x00\x1b\x00\x06\x00\x00\x00\x04\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x04\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x48\x08\x00\x00\x00\x00\x00\x00\x48\x08\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x01\x00\x00\x00\x06\x00\x00\x00\x98\x0d\x00\x00\x00\x00\x00\x00\x98\x0d\x01\x00\x00\x00\x00\x00\x98\x0d\x01\x00\x00\x00\x00\x00\x78\x02\x00\x00\x00\x00\x00\x00\x80\x02\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x02\x00\x00\x00\x06\x00\x00\x00\xa8\x0d\x00\x00\x00\x00\x00\x00\xa8\x0d\x01\x00\x00\x00\x00\x00\xa8\x0d\x01\x00\x00\x00\x00\x00\xf0\x01\x00\x00\x00\x00\x00\x00\xf0\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x04\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x50\xe5\x74\x64\x04\x00\x00\x00\x6c\x07\x00\x00\x00\x00\x00\x00\x6c\x07\x00\x00\x00\x00\x00\x00\x6c\x07\x00\x00\x00\x00\x00\x00\x3c\x00\x00\x00\x00\x00\x00\x00\x3c\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x51\xe5\x74\x64\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x52\xe5\x74\x64\x04\x00\x00\x00\x98\x0d\x00\x00\x00\x00\x00\x00\x98\x0d\x01\x00\x00\x00\x00\x00\x98\x0d\x01\x00\x00\x00\x00\x00\x68\x02\x00\x00\x00\x00\x00\x00\x68\x02\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x2f\x6c\x69\x62\x2f\x6c\x64\x2d\x6c\x69\x6e\x75\x78\x2d\x61\x61\x72\x63\x68\x36\x34\x2e\x73\x6f\x2e\x31\x00\x00\x04\x00\x00\x00\x14\x00\x00\x00\x03\x00\x00\x00\x47\x4e\x55\x00\x66\x1c\x56\xc9\xb8\x6e\x85\xd5\x0c\xd5\x54\xdf\x34\xb6\x25\x3a\x8a\x58\x27\x21\x04\x00\x00\x00\x10\x00\x00\x00\x01\x00\x00\x00\x47\x4e\x55\x00\x00\x00\x00\x00\x03\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x01\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x0b\x00\x80\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x16\x00\x00\x10\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x48\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x22\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x22\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x73\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5f\x5f\x63\x78\x61\x5f\x66\x69\x6e\x61\x6c\x69\x7a\x65\x00\x5f\x5f\x6c\x69\x62\x63\x5f\x73\x74\x61\x72\x74\x5f\x6d\x61\x69\x6e\x00\x61\x62\x6f\x72\x74\x00\x6c\x69\x62\x63\x2e\x73\x6f\x2e\x36\x00\x47\x4c\x49\x42\x43\x5f\x32\x2e\x31\x37\x00\x47\x4c\x49\x42\x43\x5f\x32\x2e\x33\x34\x00\x5f\x49\x54\x4d\x5f\x64\x65\x72\x65\x67\x69\x73\x74\x65\x72\x54\x4d\x43\x6c\x6f\x6e\x65\x54\x61\x62\x6c\x65\x00\x5f\x5f\x67\x6d\x6f\x6e\x5f\x73\x74\x61\x72\x74\x5f\x5f\x00\x5f\x49\x54\x4d\x5f\x72\x65\x67\x69\x73\x74\x65\x72\x54\x4d\x43\x6c\x6f\x6e\x65\x54\x61\x62\x6c\x65\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x01\x00\x03\x00\x01\x00\x03\x00\x01\x00\x01\x00\x02\x00\x28\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x97\x91\x96\x06\x00\x00\x03\x00\x32\x00\x00\x00\x10\x00\x00\x00\xb4\x91\x96\x06\x00\x00\x02\x00\x3d\x00\x00\x00\x00\x00\x00\x00\x98\x0d\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x50\x07\x00\x00\x00\x00\x00\x00\xa0\x0d\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\xf0\x0f\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x00\x06\x00\x00\x00\x00\x00\x00\x08\x10\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x08\x10\x01\x00\x00\x00\x00\x00\xd8\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe0\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe8\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xf8\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xb0\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xb8\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xc0\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xc8\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1f\x20\x03\xd5\xfd\x7b\xbf\xa9\xfd\x03\x00\x91\x3a\x00\x00\x94\xfd\x7b\xc1\xa8\xc0\x03\x5f\xd6\x00\x00\x00\x00\x00\x00\x00\x00\xf0\x7b\xbf\xa9\x90\x00\x00\x90\x11\xd6\x47\xf9\x10\xa2\x3e\x91\x20\x02\x1f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x90\x00\x00\x90\x11\xda\x47\xf9\x10\xc2\x3e\x91\x20\x02\x1f\xd6\x90\x00\x00\x90\x11\xde\x47\xf9\x10\xe2\x3e\x91\x20\x02\x1f\xd6\x90\x00\x00\x90\x11\xe2\x47\xf9\x10\x02\x3f\x91\x20\x02\x1f\xd6\x90\x00\x00\x90\x11\xe6\x47\xf9\x10\x22\x3f\x91\x20\x02\x1f\xd6\x81\x00\x00\xb0\x82\x02\x80\x52\x00\x00\x80\x52\x22\x14\x00\xb9\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1d\x00\x80\xd2\x1e\x00\x80\xd2\xe5\x03\x00\xaa\xe1\x03\x40\xf9\xe2\x23\x00\x91\xe6\x03\x00\x91\x80\x00\x00\x90\x00\xf8\x47\xf9\x03\x00\x80\xd2\x04\x00\x80\xd2\xd5\xff\xff\x97\xe0\xff\xff\x97\x80\x00\x00\x90\x00\xf4\x47\xf9\x40\x00\x00\xb4\xd8\xff\xff\x17\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x80\x00\x00\xb0\x00\x40\x00\x91\x81\x00\x00\xb0\x21\x40\x00\x91\x3f\x00\x00\xeb\xc0\x00\x00\x54\x81\x00\x00\x90\x21\xec\x47\xf9\x61\x00\x00\xb4\xf0\x03\x01\xaa\x00\x02\x1f\xd6\xc0\x03\x5f\xd6\x80\x00\x00\xb0\x00\x40\x00\x91\x81\x00\x00\xb0\x21\x40\x00\x91\x21\x00\x00\xcb\x22\xfc\x7f\xd3\x41\x0c\x81\x8b\x21\xfc\x41\x93\xc1\x00\x00\xb4\x82\x00\x00\x90\x42\xfc\x47\xf9\x62\x00\x00\xb4\xf0\x03\x02\xaa\x00\x02\x1f\xd6\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\xfd\x7b\xbe\xa9\xfd\x03\x00\x91\xf3\x0b\x00\xf9\x93\x00\x00\xb0\x60\x42\x40\x39\x40\x01\x00\x35\x80\x00\x00\x90\x00\xf0\x47\xf9\x80\x00\x00\xb4\x80\x00\x00\xb0\x00\x04\x40\xf9\xa9\xff\xff\x97\xd8\xff\xff\x97\x20\x00\x80\x52\x60\x42\x00\x39\xf3\x0b\x40\xf9\xfd\x7b\xc2\xa8\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\xdc\xff\xff\x17\x1f\x20\x03\xd5\xfd\x7b\xbf\xa9\xfd\x03\x00\x91\xfd\x7b\xc1\xa8\xc0\x03\x5f\xd6\x01\x00\x02\x00\x01\x1b\x03\x3b\x38\x00\x00\x00\x06\x00\x00\x00\x94\xfe\xff\xff\xc4\x00\x00\x00\xd4\xfe\xff\xff\x50\x00\x00\x00\x24\xff\xff\xff\x64\x00\x00\x00\x54\xff\xff\xff\x78\x00\x00\x00\x94\xff\xff\xff\x8c\x00\x00\x00\xe4\xff\xff\xff\xb0\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x01\x7a\x52\x00\x04\x78\x1e\x01\x1b\x0c\x1f\x00\x10\x00\x00\x00\x18\x00\x00\x00\x7c\xfe\xff\xff\x34\x00\x00\x00\x00\x41\x07\x1e\x10\x00\x00\x00\x2c\x00\x00\x00\xb8\xfe\xff\xff\x30\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x40\x00\x00\x00\xd4\xfe\xff\xff\x3c\x00\x00\x00\x00\x00\x00\x00\x20\x00\x00\x00\x54\x00\x00\x00\x00\xff\xff\xff\x48\x00\x00\x00\x00\x41\x0e\x20\x9d\x04\x9e\x03\x42\x93\x02\x4e\xde\xdd\xd3\x0e\x00\x00\x00\x00\x10\x00\x00\x00\x78\x00\x00\x00\x2c\xff\xff\xff\x04\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x8c\x00\x00\x00\xc8\xfd\xff\xff\x14\x00\x00\x00"), -Section(".comment", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x40\x06\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xa8\x1b\x00"), -Section(".interp", 0x238, "\x2f\x6c\x69\x62\x2f\x6c\x64\x2d\x6c\x69\x6e\x75\x78\x2d\x61\x61\x72\x63\x68\x36\x34\x2e\x73\x6f\x2e\x31\x00"), -Section(".note.gnu.build-id", 0x254, "\x04\x00\x00\x00\x14\x00\x00\x00\x03\x00\x00\x00\x47\x4e\x55\x00\x66\x1c\x56\xc9\xb8\x6e\x85\xd5\x0c\xd5\x54\xdf\x34\xb6\x25\x3a\x8a\x58\x27\x21"), -Section(".note.ABI-tag", 0x278, "\x04\x00\x00\x00\x10\x00\x00\x00\x01\x00\x00\x00\x47\x4e\x55\x00\x00\x00\x00\x00\x03\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00"), -Section(".gnu.hash", 0x298, "\x01\x00\x00\x00\x01\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".dynsym", 0x2B8, "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x0b\x00\x80\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x16\x00\x00\x10\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x48\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x22\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x22\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x73\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".dynstr", 0x390, "\x00\x5f\x5f\x63\x78\x61\x5f\x66\x69\x6e\x61\x6c\x69\x7a\x65\x00\x5f\x5f\x6c\x69\x62\x63\x5f\x73\x74\x61\x72\x74\x5f\x6d\x61\x69\x6e\x00\x61\x62\x6f\x72\x74\x00\x6c\x69\x62\x63\x2e\x73\x6f\x2e\x36\x00\x47\x4c\x49\x42\x43\x5f\x32\x2e\x31\x37\x00\x47\x4c\x49\x42\x43\x5f\x32\x2e\x33\x34\x00\x5f\x49\x54\x4d\x5f\x64\x65\x72\x65\x67\x69\x73\x74\x65\x72\x54\x4d\x43\x6c\x6f\x6e\x65\x54\x61\x62\x6c\x65\x00\x5f\x5f\x67\x6d\x6f\x6e\x5f\x73\x74\x61\x72\x74\x5f\x5f\x00\x5f\x49\x54\x4d\x5f\x72\x65\x67\x69\x73\x74\x65\x72\x54\x4d\x43\x6c\x6f\x6e\x65\x54\x61\x62\x6c\x65\x00"), -Section(".gnu.version", 0x41E, "\x00\x00\x00\x00\x00\x00\x02\x00\x01\x00\x03\x00\x01\x00\x03\x00\x01\x00"), -Section(".gnu.version_r", 0x430, "\x01\x00\x02\x00\x28\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x97\x91\x96\x06\x00\x00\x03\x00\x32\x00\x00\x00\x10\x00\x00\x00\xb4\x91\x96\x06\x00\x00\x02\x00\x3d\x00\x00\x00\x00\x00\x00\x00"), -Section(".rela.dyn", 0x460, "\x98\x0d\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x50\x07\x00\x00\x00\x00\x00\x00\xa0\x0d\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\xf0\x0f\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x00\x06\x00\x00\x00\x00\x00\x00\x08\x10\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x08\x10\x01\x00\x00\x00\x00\x00\xd8\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe0\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe8\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xf8\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".rela.plt", 0x520, "\xb0\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xb8\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xc0\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xc8\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".init", 0x580, "\x1f\x20\x03\xd5\xfd\x7b\xbf\xa9\xfd\x03\x00\x91\x3a\x00\x00\x94\xfd\x7b\xc1\xa8\xc0\x03\x5f\xd6"), -Section(".plt", 0x5A0, "\xf0\x7b\xbf\xa9\x90\x00\x00\x90\x11\xd6\x47\xf9\x10\xa2\x3e\x91\x20\x02\x1f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x90\x00\x00\x90\x11\xda\x47\xf9\x10\xc2\x3e\x91\x20\x02\x1f\xd6\x90\x00\x00\x90\x11\xde\x47\xf9\x10\xe2\x3e\x91\x20\x02\x1f\xd6\x90\x00\x00\x90\x11\xe2\x47\xf9\x10\x02\x3f\x91\x20\x02\x1f\xd6\x90\x00\x00\x90\x11\xe6\x47\xf9\x10\x22\x3f\x91\x20\x02\x1f\xd6"), -Section(".fini", 0x754, "\x1f\x20\x03\xd5\xfd\x7b\xbf\xa9\xfd\x03\x00\x91\xfd\x7b\xc1\xa8\xc0\x03\x5f\xd6"), -Section(".rodata", 0x768, "\x01\x00\x02\x00"), -Section(".eh_frame_hdr", 0x76C, "\x01\x1b\x03\x3b\x38\x00\x00\x00\x06\x00\x00\x00\x94\xfe\xff\xff\xc4\x00\x00\x00\xd4\xfe\xff\xff\x50\x00\x00\x00\x24\xff\xff\xff\x64\x00\x00\x00\x54\xff\xff\xff\x78\x00\x00\x00\x94\xff\xff\xff\x8c\x00\x00\x00\xe4\xff\xff\xff\xb0\x00\x00\x00"), -Section(".eh_frame", 0x7A8, "\x10\x00\x00\x00\x00\x00\x00\x00\x01\x7a\x52\x00\x04\x78\x1e\x01\x1b\x0c\x1f\x00\x10\x00\x00\x00\x18\x00\x00\x00\x7c\xfe\xff\xff\x34\x00\x00\x00\x00\x41\x07\x1e\x10\x00\x00\x00\x2c\x00\x00\x00\xb8\xfe\xff\xff\x30\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x40\x00\x00\x00\xd4\xfe\xff\xff\x3c\x00\x00\x00\x00\x00\x00\x00\x20\x00\x00\x00\x54\x00\x00\x00\x00\xff\xff\xff\x48\x00\x00\x00\x00\x41\x0e\x20\x9d\x04\x9e\x03\x42\x93\x02\x4e\xde\xdd\xd3\x0e\x00\x00\x00\x00\x10\x00\x00\x00\x78\x00\x00\x00\x2c\xff\xff\xff\x04\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x8c\x00\x00\x00\xc8\xfd\xff\xff\x14\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".fini_array", 0x10DA0, "\x00\x07\x00\x00\x00\x00\x00\x00"), -Section(".dynamic", 0x10DA8, "\x01\x00\x00\x00\x00\x00\x00\x00\x28\x00\x00\x00\x00\x00\x00\x00\x0c\x00\x00\x00\x00\x00\x00\x00\x80\x05\x00\x00\x00\x00\x00\x00\x0d\x00\x00\x00\x00\x00\x00\x00\x54\x07\x00\x00\x00\x00\x00\x00\x19\x00\x00\x00\x00\x00\x00\x00\x98\x0d\x01\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x1a\x00\x00\x00\x00\x00\x00\x00\xa0\x0d\x01\x00\x00\x00\x00\x00\x1c\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\xf5\xfe\xff\x6f\x00\x00\x00\x00\x98\x02\x00\x00\x00\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x90\x03\x00\x00\x00\x00\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\xb8\x02\x00\x00\x00\x00\x00\x00\x0a\x00\x00\x00\x00\x00\x00\x00\x8d\x00\x00\x00\x00\x00\x00\x00\x0b\x00\x00\x00\x00\x00\x00\x00\x18\x00\x00\x00\x00\x00\x00\x00\x15\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x98\x0f\x01\x00\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x60\x00\x00\x00\x00\x00\x00\x00\x14\x00\x00\x00\x00\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x17\x00\x00\x00\x00\x00\x00\x00\x20\x05\x00\x00\x00\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x60\x04\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\xc0\x00\x00\x00\x00\x00\x00\x00\x09\x00\x00\x00\x00\x00\x00\x00\x18\x00\x00\x00\x00\x00\x00\x00\x1e\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\xfb\xff\xff\x6f\x00\x00\x00\x00\x01\x00\x00\x08\x00\x00\x00\x00\xfe\xff\xff\x6f\x00\x00\x00\x00\x30\x04\x00\x00\x00\x00\x00\x00\xff\xff\xff\x6f\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\xf0\xff\xff\x6f\x00\x00\x00\x00\x1e\x04\x00\x00\x00\x00\x00\x00\xf9\xff\xff\x6f\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".init_array", 0x10D98, "\x50\x07\x00\x00\x00\x00\x00\x00"), -Section(".got", 0x10F98, "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xa0\x05\x00\x00\x00\x00\x00\x00\xa0\x05\x00\x00\x00\x00\x00\x00\xa0\x05\x00\x00\x00\x00\x00\x00\xa0\x05\x00\x00\x00\x00\x00\x00\xa8\x0d\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".data", 0x11000, "\x00\x00\x00\x00\x00\x00\x00\x00\x08\x10\x01\x00\x00\x00\x00\x00"), -Section(".text", 0x600, "\x81\x00\x00\xb0\x82\x02\x80\x52\x00\x00\x80\x52\x22\x14\x00\xb9\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1d\x00\x80\xd2\x1e\x00\x80\xd2\xe5\x03\x00\xaa\xe1\x03\x40\xf9\xe2\x23\x00\x91\xe6\x03\x00\x91\x80\x00\x00\x90\x00\xf8\x47\xf9\x03\x00\x80\xd2\x04\x00\x80\xd2\xd5\xff\xff\x97\xe0\xff\xff\x97\x80\x00\x00\x90\x00\xf4\x47\xf9\x40\x00\x00\xb4\xd8\xff\xff\x17\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x80\x00\x00\xb0\x00\x40\x00\x91\x81\x00\x00\xb0\x21\x40\x00\x91\x3f\x00\x00\xeb\xc0\x00\x00\x54\x81\x00\x00\x90\x21\xec\x47\xf9\x61\x00\x00\xb4\xf0\x03\x01\xaa\x00\x02\x1f\xd6\xc0\x03\x5f\xd6\x80\x00\x00\xb0\x00\x40\x00\x91\x81\x00\x00\xb0\x21\x40\x00\x91\x21\x00\x00\xcb\x22\xfc\x7f\xd3\x41\x0c\x81\x8b\x21\xfc\x41\x93\xc1\x00\x00\xb4\x82\x00\x00\x90\x42\xfc\x47\xf9\x62\x00\x00\xb4\xf0\x03\x02\xaa\x00\x02\x1f\xd6\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\xfd\x7b\xbe\xa9\xfd\x03\x00\x91\xf3\x0b\x00\xf9\x93\x00\x00\xb0\x60\x42\x40\x39\x40\x01\x00\x35\x80\x00\x00\x90\x00\xf0\x47\xf9\x80\x00\x00\xb4\x80\x00\x00\xb0\x00\x04\x40\xf9\xa9\xff\xff\x97\xd8\xff\xff\x97\x20\x00\x80\x52\x60\x42\x00\x39\xf3\x0b\x40\xf9\xfd\x7b\xc2\xa8\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\xdc\xff\xff\x17")]), -Memmap([Annotation(Region(0x0,0x847), Attr("segment","02 0 2120")), -Annotation(Region(0x600,0x613), Attr("symbol","\"main\"")), -Annotation(Region(0x0,0xF9), Attr("section","\".shstrtab\"")), -Annotation(Region(0x0,0x228), Attr("section","\".strtab\"")), -Annotation(Region(0x0,0x83F), Attr("section","\".symtab\"")), -Annotation(Region(0x0,0x2A), Attr("section","\".comment\"")), -Annotation(Region(0x238,0x252), Attr("section","\".interp\"")), -Annotation(Region(0x254,0x277), Attr("section","\".note.gnu.build-id\"")), -Annotation(Region(0x278,0x297), Attr("section","\".note.ABI-tag\"")), -Annotation(Region(0x298,0x2B3), Attr("section","\".gnu.hash\"")), -Annotation(Region(0x2B8,0x38F), Attr("section","\".dynsym\"")), -Annotation(Region(0x390,0x41C), Attr("section","\".dynstr\"")), -Annotation(Region(0x41E,0x42F), Attr("section","\".gnu.version\"")), -Annotation(Region(0x430,0x45F), Attr("section","\".gnu.version_r\"")), -Annotation(Region(0x460,0x51F), Attr("section","\".rela.dyn\"")), -Annotation(Region(0x520,0x57F), Attr("section","\".rela.plt\"")), -Annotation(Region(0x580,0x597), Attr("section","\".init\"")), -Annotation(Region(0x5A0,0x5FF), Attr("section","\".plt\"")), -Annotation(Region(0x580,0x597), Attr("code-region","()")), -Annotation(Region(0x5A0,0x5FF), Attr("code-region","()")), -Annotation(Region(0x600,0x613), Attr("symbol-info","main 0x600 20")), -Annotation(Region(0x640,0x673), Attr("symbol","\"_start\"")), -Annotation(Region(0x640,0x673), Attr("symbol-info","_start 0x640 52")), -Annotation(Region(0x674,0x687), Attr("symbol","\"call_weak_fn\"")), -Annotation(Region(0x674,0x687), Attr("symbol-info","call_weak_fn 0x674 20")), -Annotation(Region(0x754,0x767), Attr("section","\".fini\"")), -Annotation(Region(0x768,0x76B), Attr("section","\".rodata\"")), -Annotation(Region(0x76C,0x7A7), Attr("section","\".eh_frame_hdr\"")), -Annotation(Region(0x7A8,0x847), Attr("section","\".eh_frame\"")), -Annotation(Region(0x10D98,0x1100F), Attr("segment","03 0x10D98 640")), -Annotation(Region(0x10DA0,0x10DA7), Attr("section","\".fini_array\"")), -Annotation(Region(0x10DA8,0x10F97), Attr("section","\".dynamic\"")), -Annotation(Region(0x10D98,0x10D9F), Attr("section","\".init_array\"")), -Annotation(Region(0x10F98,0x10FFF), Attr("section","\".got\"")), -Annotation(Region(0x11000,0x1100F), Attr("section","\".data\"")), -Annotation(Region(0x600,0x753), Attr("section","\".text\"")), -Annotation(Region(0x600,0x753), Attr("code-region","()")), -Annotation(Region(0x754,0x767), Attr("code-region","()"))]), -Program(Tid(1_505, "%000005e1"), Attrs([]), - Subs([Sub(Tid(1_455, "@__cxa_finalize"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x5D0"), -Attr("stub","()")]), "__cxa_finalize", Args([Arg(Tid(1_506, "%000005e2"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("__cxa_finalize_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(851, "@__cxa_finalize"), - Attrs([Attr("address","0x5D0")]), Phis([]), -Defs([Def(Tid(1_099, "%0000044b"), Attrs([Attr("address","0x5D0"), -Attr("insn","adrp x16, #65536")]), Var("R16",Imm(64)), Int(65536,64)), -Def(Tid(1_106, "%00000452"), Attrs([Attr("address","0x5D4"), -Attr("insn","ldr x17, [x16, #0xfb8]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(4024,64)),LittleEndian(),64)), -Def(Tid(1_112, "%00000458"), Attrs([Attr("address","0x5D8"), -Attr("insn","add x16, x16, #0xfb8")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(4024,64)))]), Jmps([Call(Tid(1_117, "%0000045d"), - Attrs([Attr("address","0x5DC"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), -Sub(Tid(1_456, "@__do_global_dtors_aux"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x700")]), - "__do_global_dtors_aux", Args([Arg(Tid(1_507, "%000005e3"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("__do_global_dtors_aux_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(704, "@__do_global_dtors_aux"), - Attrs([Attr("address","0x700")]), Phis([]), Defs([Def(Tid(708, "%000002c4"), - Attrs([Attr("address","0x700"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("#3",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(18446744073709551584,64))), -Def(Tid(714, "%000002ca"), Attrs([Attr("address","0x700"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("#3",Imm(64)),Var("R29",Imm(64)),LittleEndian(),64)), -Def(Tid(720, "%000002d0"), Attrs([Attr("address","0x700"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("#3",Imm(64)),Int(8,64)),Var("R30",Imm(64)),LittleEndian(),64)), -Def(Tid(724, "%000002d4"), Attrs([Attr("address","0x700"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("R31",Imm(64)), -Var("#3",Imm(64))), Def(Tid(730, "%000002da"), - Attrs([Attr("address","0x704"), Attr("insn","mov x29, sp")]), - Var("R29",Imm(64)), Var("R31",Imm(64))), Def(Tid(738, "%000002e2"), - Attrs([Attr("address","0x708"), Attr("insn","str x19, [sp, #0x10]")]), - Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(16,64)),Var("R19",Imm(64)),LittleEndian(),64)), -Def(Tid(743, "%000002e7"), Attrs([Attr("address","0x70C"), -Attr("insn","adrp x19, #69632")]), Var("R19",Imm(64)), Int(69632,64)), -Def(Tid(750, "%000002ee"), Attrs([Attr("address","0x710"), -Attr("insn","ldrb w0, [x19, #0x10]")]), Var("R0",Imm(64)), -UNSIGNED(64,Load(Var("mem",Mem(64,8)),PLUS(Var("R19",Imm(64)),Int(16,64)),LittleEndian(),8)))]), -Jmps([Goto(Tid(757, "%000002f5"), Attrs([Attr("address","0x714"), -Attr("insn","cbnz w0, #0x28")]), - NEQ(Extract(31,0,Var("R0",Imm(64))),Int(0,32)), -Direct(Tid(755, "%000002f3"))), Goto(Tid(1_495, "%000005d7"), Attrs([]), - Int(1,1), Direct(Tid(796, "%0000031c")))])), Blk(Tid(796, "%0000031c"), - Attrs([Attr("address","0x718")]), Phis([]), Defs([Def(Tid(799, "%0000031f"), - Attrs([Attr("address","0x718"), Attr("insn","adrp x0, #65536")]), - Var("R0",Imm(64)), Int(65536,64)), Def(Tid(806, "%00000326"), - Attrs([Attr("address","0x71C"), Attr("insn","ldr x0, [x0, #0xfe0]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(4064,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(812, "%0000032c"), Attrs([Attr("address","0x720"), -Attr("insn","cbz x0, #0x10")]), EQ(Var("R0",Imm(64)),Int(0,64)), -Direct(Tid(810, "%0000032a"))), Goto(Tid(1_496, "%000005d8"), Attrs([]), - Int(1,1), Direct(Tid(835, "%00000343")))])), Blk(Tid(835, "%00000343"), - Attrs([Attr("address","0x724")]), Phis([]), Defs([Def(Tid(838, "%00000346"), - Attrs([Attr("address","0x724"), Attr("insn","adrp x0, #69632")]), - Var("R0",Imm(64)), Int(69632,64)), Def(Tid(845, "%0000034d"), - Attrs([Attr("address","0x728"), Attr("insn","ldr x0, [x0, #0x8]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(850, "%00000352"), Attrs([Attr("address","0x72C"), -Attr("insn","bl #-0x15c")]), Var("R30",Imm(64)), Int(1840,64))]), -Jmps([Call(Tid(853, "%00000355"), Attrs([Attr("address","0x72C"), -Attr("insn","bl #-0x15c")]), Int(1,1), -(Direct(Tid(1_455, "@__cxa_finalize")),Direct(Tid(810, "%0000032a"))))])), -Blk(Tid(810, "%0000032a"), Attrs([Attr("address","0x730")]), Phis([]), -Defs([Def(Tid(818, "%00000332"), Attrs([Attr("address","0x730"), -Attr("insn","bl #-0xa0")]), Var("R30",Imm(64)), Int(1844,64))]), -Jmps([Call(Tid(820, "%00000334"), Attrs([Attr("address","0x730"), -Attr("insn","bl #-0xa0")]), Int(1,1), -(Direct(Tid(1_469, "@deregister_tm_clones")),Direct(Tid(822, "%00000336"))))])), -Blk(Tid(822, "%00000336"), Attrs([Attr("address","0x734")]), Phis([]), -Defs([Def(Tid(825, "%00000339"), Attrs([Attr("address","0x734"), -Attr("insn","mov w0, #0x1")]), Var("R0",Imm(64)), Int(1,64)), -Def(Tid(833, "%00000341"), Attrs([Attr("address","0x738"), -Attr("insn","strb w0, [x19, #0x10]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R19",Imm(64)),Int(16,64)),Extract(7,0,Var("R0",Imm(64))),LittleEndian(),8))]), -Jmps([Goto(Tid(1_497, "%000005d9"), Attrs([]), Int(1,1), -Direct(Tid(755, "%000002f3")))])), Blk(Tid(755, "%000002f3"), - Attrs([Attr("address","0x73C")]), Phis([]), Defs([Def(Tid(765, "%000002fd"), - Attrs([Attr("address","0x73C"), Attr("insn","ldr x19, [sp, #0x10]")]), - Var("R19",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(16,64)),LittleEndian(),64)), -Def(Tid(772, "%00000304"), Attrs([Attr("address","0x740"), -Attr("insn","ldp x29, x30, [sp], #0x20")]), Var("R29",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(777, "%00000309"), Attrs([Attr("address","0x740"), -Attr("insn","ldp x29, x30, [sp], #0x20")]), Var("R30",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(781, "%0000030d"), Attrs([Attr("address","0x740"), -Attr("insn","ldp x29, x30, [sp], #0x20")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(32,64)))]), Jmps([Call(Tid(786, "%00000312"), - Attrs([Attr("address","0x744"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), Sub(Tid(1_460, "@__libc_start_main"), - Attrs([Attr("c.proto","signed (*)(signed (*)(signed , char** , char** );* main, signed , char** , \nvoid* auxv)"), -Attr("address","0x5C0"), Attr("stub","()")]), "__libc_start_main", - Args([Arg(Tid(1_508, "%000005e4"), - Attrs([Attr("c.layout","**[ : 64]"), -Attr("c.data","Top:u64 ptr ptr"), -Attr("c.type","signed (*)(signed , char** , char** );*")]), - Var("__libc_start_main_main",Imm(64)), Var("R0",Imm(64)), In()), -Arg(Tid(1_509, "%000005e5"), Attrs([Attr("c.layout","[signed : 32]"), -Attr("c.data","Top:u32"), Attr("c.type","signed")]), - Var("__libc_start_main_arg2",Imm(32)), LOW(32,Var("R1",Imm(64))), In()), -Arg(Tid(1_510, "%000005e6"), Attrs([Attr("c.layout","**[char : 8]"), -Attr("c.data","Top:u8 ptr ptr"), Attr("c.type","char**")]), - Var("__libc_start_main_arg3",Imm(64)), Var("R2",Imm(64)), Both()), -Arg(Tid(1_511, "%000005e7"), Attrs([Attr("c.layout","*[ : 8]"), -Attr("c.data","{} ptr"), Attr("c.type","void*")]), - Var("__libc_start_main_auxv",Imm(64)), Var("R3",Imm(64)), Both()), -Arg(Tid(1_512, "%000005e8"), Attrs([Attr("c.layout","[signed : 32]"), -Attr("c.data","Top:u32"), Attr("c.type","signed")]), - Var("__libc_start_main_result",Imm(32)), LOW(32,Var("R0",Imm(64))), -Out())]), Blks([Blk(Tid(537, "@__libc_start_main"), - Attrs([Attr("address","0x5C0")]), Phis([]), -Defs([Def(Tid(1_077, "%00000435"), Attrs([Attr("address","0x5C0"), -Attr("insn","adrp x16, #65536")]), Var("R16",Imm(64)), Int(65536,64)), -Def(Tid(1_084, "%0000043c"), Attrs([Attr("address","0x5C4"), -Attr("insn","ldr x17, [x16, #0xfb0]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(4016,64)),LittleEndian(),64)), -Def(Tid(1_090, "%00000442"), Attrs([Attr("address","0x5C8"), -Attr("insn","add x16, x16, #0xfb0")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(4016,64)))]), Jmps([Call(Tid(1_095, "%00000447"), - Attrs([Attr("address","0x5CC"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), Sub(Tid(1_461, "@_fini"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x754")]), - "_fini", Args([Arg(Tid(1_513, "%000005e9"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("_fini_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(31, "@_fini"), - Attrs([Attr("address","0x754")]), Phis([]), Defs([Def(Tid(37, "%00000025"), - Attrs([Attr("address","0x758"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("#0",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(18446744073709551600,64))), -Def(Tid(43, "%0000002b"), Attrs([Attr("address","0x758"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("#0",Imm(64)),Var("R29",Imm(64)),LittleEndian(),64)), -Def(Tid(49, "%00000031"), Attrs([Attr("address","0x758"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("#0",Imm(64)),Int(8,64)),Var("R30",Imm(64)),LittleEndian(),64)), -Def(Tid(53, "%00000035"), Attrs([Attr("address","0x758"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("R31",Imm(64)), -Var("#0",Imm(64))), Def(Tid(59, "%0000003b"), Attrs([Attr("address","0x75C"), -Attr("insn","mov x29, sp")]), Var("R29",Imm(64)), Var("R31",Imm(64))), -Def(Tid(66, "%00000042"), Attrs([Attr("address","0x760"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R29",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(71, "%00000047"), Attrs([Attr("address","0x760"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R30",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(75, "%0000004b"), Attrs([Attr("address","0x760"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(16,64)))]), Jmps([Call(Tid(80, "%00000050"), - Attrs([Attr("address","0x764"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), Sub(Tid(1_462, "@_init"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x580")]), - "_init", Args([Arg(Tid(1_514, "%000005ea"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("_init_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(1_281, "@_init"), - Attrs([Attr("address","0x580")]), Phis([]), -Defs([Def(Tid(1_287, "%00000507"), Attrs([Attr("address","0x584"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("#5",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(18446744073709551600,64))), -Def(Tid(1_293, "%0000050d"), Attrs([Attr("address","0x584"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("#5",Imm(64)),Var("R29",Imm(64)),LittleEndian(),64)), -Def(Tid(1_299, "%00000513"), Attrs([Attr("address","0x584"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("#5",Imm(64)),Int(8,64)),Var("R30",Imm(64)),LittleEndian(),64)), -Def(Tid(1_303, "%00000517"), Attrs([Attr("address","0x584"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("R31",Imm(64)), -Var("#5",Imm(64))), Def(Tid(1_309, "%0000051d"), - Attrs([Attr("address","0x588"), Attr("insn","mov x29, sp")]), - Var("R29",Imm(64)), Var("R31",Imm(64))), Def(Tid(1_314, "%00000522"), - Attrs([Attr("address","0x58C"), Attr("insn","bl #0xe8")]), - Var("R30",Imm(64)), Int(1424,64))]), Jmps([Call(Tid(1_316, "%00000524"), - Attrs([Attr("address","0x58C"), Attr("insn","bl #0xe8")]), Int(1,1), -(Direct(Tid(1_467, "@call_weak_fn")),Direct(Tid(1_318, "%00000526"))))])), -Blk(Tid(1_318, "%00000526"), Attrs([Attr("address","0x590")]), Phis([]), -Defs([Def(Tid(1_323, "%0000052b"), Attrs([Attr("address","0x590"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R29",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(1_328, "%00000530"), Attrs([Attr("address","0x590"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R30",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(1_332, "%00000534"), Attrs([Attr("address","0x590"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(16,64)))]), Jmps([Call(Tid(1_337, "%00000539"), - Attrs([Attr("address","0x594"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), Sub(Tid(1_463, "@_start"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x640"), -Attr("entry-point","()")]), "_start", Args([Arg(Tid(1_515, "%000005eb"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("_start_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(474, "@_start"), - Attrs([Attr("address","0x640")]), Phis([]), Defs([Def(Tid(479, "%000001df"), - Attrs([Attr("address","0x644"), Attr("insn","mov x29, #0x0")]), - Var("R29",Imm(64)), Int(0,64)), Def(Tid(484, "%000001e4"), - Attrs([Attr("address","0x648"), Attr("insn","mov x30, #0x0")]), - Var("R30",Imm(64)), Int(0,64)), Def(Tid(490, "%000001ea"), - Attrs([Attr("address","0x64C"), Attr("insn","mov x5, x0")]), - Var("R5",Imm(64)), Var("R0",Imm(64))), Def(Tid(497, "%000001f1"), - Attrs([Attr("address","0x650"), Attr("insn","ldr x1, [sp]")]), - Var("R1",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(503, "%000001f7"), Attrs([Attr("address","0x654"), -Attr("insn","add x2, sp, #0x8")]), Var("R2",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(8,64))), Def(Tid(509, "%000001fd"), - Attrs([Attr("address","0x658"), Attr("insn","mov x6, sp")]), - Var("R6",Imm(64)), Var("R31",Imm(64))), Def(Tid(514, "%00000202"), - Attrs([Attr("address","0x65C"), Attr("insn","adrp x0, #65536")]), - Var("R0",Imm(64)), Int(65536,64)), Def(Tid(521, "%00000209"), - Attrs([Attr("address","0x660"), Attr("insn","ldr x0, [x0, #0xff0]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(4080,64)),LittleEndian(),64)), -Def(Tid(526, "%0000020e"), Attrs([Attr("address","0x664"), -Attr("insn","mov x3, #0x0")]), Var("R3",Imm(64)), Int(0,64)), -Def(Tid(531, "%00000213"), Attrs([Attr("address","0x668"), -Attr("insn","mov x4, #0x0")]), Var("R4",Imm(64)), Int(0,64)), -Def(Tid(536, "%00000218"), Attrs([Attr("address","0x66C"), -Attr("insn","bl #-0xac")]), Var("R30",Imm(64)), Int(1648,64))]), -Jmps([Call(Tid(539, "%0000021b"), Attrs([Attr("address","0x66C"), -Attr("insn","bl #-0xac")]), Int(1,1), -(Direct(Tid(1_460, "@__libc_start_main")),Direct(Tid(541, "%0000021d"))))])), -Blk(Tid(541, "%0000021d"), Attrs([Attr("address","0x670")]), Phis([]), -Defs([Def(Tid(544, "%00000220"), Attrs([Attr("address","0x670"), -Attr("insn","bl #-0x80")]), Var("R30",Imm(64)), Int(1652,64))]), -Jmps([Call(Tid(547, "%00000223"), Attrs([Attr("address","0x670"), -Attr("insn","bl #-0x80")]), Int(1,1), -(Direct(Tid(1_466, "@abort")),Direct(Tid(1_498, "%000005da"))))])), -Blk(Tid(1_498, "%000005da"), Attrs([]), Phis([]), Defs([]), -Jmps([Call(Tid(1_499, "%000005db"), Attrs([]), Int(1,1), -(Direct(Tid(1_467, "@call_weak_fn")),))]))])), Sub(Tid(1_466, "@abort"), - Attrs([Attr("noreturn","()"), Attr("c.proto","void (*)(void)"), -Attr("address","0x5F0"), Attr("stub","()")]), "abort", Args([]), -Blks([Blk(Tid(545, "@abort"), Attrs([Attr("address","0x5F0")]), Phis([]), -Defs([Def(Tid(1_143, "%00000477"), Attrs([Attr("address","0x5F0"), -Attr("insn","adrp x16, #65536")]), Var("R16",Imm(64)), Int(65536,64)), -Def(Tid(1_150, "%0000047e"), Attrs([Attr("address","0x5F4"), -Attr("insn","ldr x17, [x16, #0xfc8]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(4040,64)),LittleEndian(),64)), -Def(Tid(1_156, "%00000484"), Attrs([Attr("address","0x5F8"), -Attr("insn","add x16, x16, #0xfc8")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(4040,64)))]), Jmps([Call(Tid(1_161, "%00000489"), - Attrs([Attr("address","0x5FC"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), Sub(Tid(1_467, "@call_weak_fn"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x674")]), - "call_weak_fn", Args([Arg(Tid(1_516, "%000005ec"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("call_weak_fn_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(549, "@call_weak_fn"), - Attrs([Attr("address","0x674")]), Phis([]), Defs([Def(Tid(552, "%00000228"), - Attrs([Attr("address","0x674"), Attr("insn","adrp x0, #65536")]), - Var("R0",Imm(64)), Int(65536,64)), Def(Tid(559, "%0000022f"), - Attrs([Attr("address","0x678"), Attr("insn","ldr x0, [x0, #0xfe8]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(4072,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(565, "%00000235"), Attrs([Attr("address","0x67C"), -Attr("insn","cbz x0, #0x8")]), EQ(Var("R0",Imm(64)),Int(0,64)), -Direct(Tid(563, "%00000233"))), Goto(Tid(1_500, "%000005dc"), Attrs([]), - Int(1,1), Direct(Tid(915, "%00000393")))])), Blk(Tid(563, "%00000233"), - Attrs([Attr("address","0x684")]), Phis([]), Defs([]), -Jmps([Call(Tid(571, "%0000023b"), Attrs([Attr("address","0x684"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))])), -Blk(Tid(915, "%00000393"), Attrs([Attr("address","0x680")]), Phis([]), -Defs([]), Jmps([Goto(Tid(918, "%00000396"), Attrs([Attr("address","0x680"), -Attr("insn","b #-0xa0")]), Int(1,1), Direct(Tid(916, "@__gmon_start__")))])), -Blk(Tid(916, "@__gmon_start__"), Attrs([Attr("address","0x5E0")]), Phis([]), -Defs([Def(Tid(1_121, "%00000461"), Attrs([Attr("address","0x5E0"), -Attr("insn","adrp x16, #65536")]), Var("R16",Imm(64)), Int(65536,64)), -Def(Tid(1_128, "%00000468"), Attrs([Attr("address","0x5E4"), -Attr("insn","ldr x17, [x16, #0xfc0]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(4032,64)),LittleEndian(),64)), -Def(Tid(1_134, "%0000046e"), Attrs([Attr("address","0x5E8"), -Attr("insn","add x16, x16, #0xfc0")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(4032,64)))]), Jmps([Call(Tid(1_139, "%00000473"), - Attrs([Attr("address","0x5EC"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), -Sub(Tid(1_469, "@deregister_tm_clones"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x690")]), - "deregister_tm_clones", Args([Arg(Tid(1_517, "%000005ed"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("deregister_tm_clones_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(577, "@deregister_tm_clones"), - Attrs([Attr("address","0x690")]), Phis([]), Defs([Def(Tid(580, "%00000244"), - Attrs([Attr("address","0x690"), Attr("insn","adrp x0, #69632")]), - Var("R0",Imm(64)), Int(69632,64)), Def(Tid(586, "%0000024a"), - Attrs([Attr("address","0x694"), Attr("insn","add x0, x0, #0x10")]), - Var("R0",Imm(64)), PLUS(Var("R0",Imm(64)),Int(16,64))), -Def(Tid(591, "%0000024f"), Attrs([Attr("address","0x698"), -Attr("insn","adrp x1, #69632")]), Var("R1",Imm(64)), Int(69632,64)), -Def(Tid(597, "%00000255"), Attrs([Attr("address","0x69C"), -Attr("insn","add x1, x1, #0x10")]), Var("R1",Imm(64)), -PLUS(Var("R1",Imm(64)),Int(16,64))), Def(Tid(603, "%0000025b"), - Attrs([Attr("address","0x6A0"), Attr("insn","cmp x1, x0")]), - Var("#1",Imm(64)), NOT(Var("R0",Imm(64)))), Def(Tid(608, "%00000260"), - Attrs([Attr("address","0x6A0"), Attr("insn","cmp x1, x0")]), - Var("#2",Imm(64)), PLUS(Var("R1",Imm(64)),NOT(Var("R0",Imm(64))))), -Def(Tid(614, "%00000266"), Attrs([Attr("address","0x6A0"), -Attr("insn","cmp x1, x0")]), Var("VF",Imm(1)), -NEQ(SIGNED(65,PLUS(Var("#2",Imm(64)),Int(1,64))),PLUS(PLUS(SIGNED(65,Var("R1",Imm(64))),SIGNED(65,Var("#1",Imm(64)))),Int(1,65)))), -Def(Tid(620, "%0000026c"), Attrs([Attr("address","0x6A0"), -Attr("insn","cmp x1, x0")]), Var("CF",Imm(1)), -NEQ(UNSIGNED(65,PLUS(Var("#2",Imm(64)),Int(1,64))),PLUS(PLUS(UNSIGNED(65,Var("R1",Imm(64))),UNSIGNED(65,Var("#1",Imm(64)))),Int(1,65)))), -Def(Tid(624, "%00000270"), Attrs([Attr("address","0x6A0"), -Attr("insn","cmp x1, x0")]), Var("ZF",Imm(1)), -EQ(PLUS(Var("#2",Imm(64)),Int(1,64)),Int(0,64))), Def(Tid(628, "%00000274"), - Attrs([Attr("address","0x6A0"), Attr("insn","cmp x1, x0")]), - Var("NF",Imm(1)), Extract(63,63,PLUS(Var("#2",Imm(64)),Int(1,64))))]), -Jmps([Goto(Tid(634, "%0000027a"), Attrs([Attr("address","0x6A4"), -Attr("insn","b.eq #0x18")]), EQ(Var("ZF",Imm(1)),Int(1,1)), -Direct(Tid(632, "%00000278"))), Goto(Tid(1_501, "%000005dd"), Attrs([]), - Int(1,1), Direct(Tid(885, "%00000375")))])), Blk(Tid(885, "%00000375"), - Attrs([Attr("address","0x6A8")]), Phis([]), Defs([Def(Tid(888, "%00000378"), - Attrs([Attr("address","0x6A8"), Attr("insn","adrp x1, #65536")]), - Var("R1",Imm(64)), Int(65536,64)), Def(Tid(895, "%0000037f"), - Attrs([Attr("address","0x6AC"), Attr("insn","ldr x1, [x1, #0xfd8]")]), - Var("R1",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R1",Imm(64)),Int(4056,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(900, "%00000384"), Attrs([Attr("address","0x6B0"), -Attr("insn","cbz x1, #0xc")]), EQ(Var("R1",Imm(64)),Int(0,64)), -Direct(Tid(632, "%00000278"))), Goto(Tid(1_502, "%000005de"), Attrs([]), - Int(1,1), Direct(Tid(904, "%00000388")))])), Blk(Tid(632, "%00000278"), - Attrs([Attr("address","0x6BC")]), Phis([]), Defs([]), -Jmps([Call(Tid(640, "%00000280"), Attrs([Attr("address","0x6BC"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))])), -Blk(Tid(904, "%00000388"), Attrs([Attr("address","0x6B4")]), Phis([]), -Defs([Def(Tid(908, "%0000038c"), Attrs([Attr("address","0x6B4"), -Attr("insn","mov x16, x1")]), Var("R16",Imm(64)), Var("R1",Imm(64)))]), -Jmps([Call(Tid(913, "%00000391"), Attrs([Attr("address","0x6B8"), -Attr("insn","br x16")]), Int(1,1), (Indirect(Var("R16",Imm(64))),))]))])), -Sub(Tid(1_472, "@frame_dummy"), Attrs([Attr("c.proto","signed (*)(void)"), -Attr("address","0x750")]), "frame_dummy", Args([Arg(Tid(1_518, "%000005ee"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("frame_dummy_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(792, "@frame_dummy"), - Attrs([Attr("address","0x750")]), Phis([]), Defs([]), -Jmps([Call(Tid(794, "%0000031a"), Attrs([Attr("address","0x750"), -Attr("insn","b #-0x90")]), Int(1,1), -(Direct(Tid(1_474, "@register_tm_clones")),))]))])), Sub(Tid(1_473, "@main"), - Attrs([Attr("c.proto","signed (*)(signed argc, const char** argv)"), -Attr("address","0x600"), Attr("stub","()")]), "main", - Args([Arg(Tid(1_519, "%000005ef"), Attrs([Attr("c.layout","[signed : 32]"), -Attr("c.data","Top:u32"), Attr("c.type","signed")]), - Var("main_argc",Imm(32)), LOW(32,Var("R0",Imm(64))), In()), -Arg(Tid(1_520, "%000005f0"), Attrs([Attr("c.layout","**[char : 8]"), -Attr("c.data","Top:u8 ptr ptr"), Attr("c.type"," const char**")]), - Var("main_argv",Imm(64)), Var("R1",Imm(64)), Both()), -Arg(Tid(1_521, "%000005f1"), Attrs([Attr("c.layout","[signed : 32]"), -Attr("c.data","Top:u32"), Attr("c.type","signed")]), - Var("main_result",Imm(32)), LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(424, "@main"), Attrs([Attr("address","0x600")]), Phis([]), -Defs([Def(Tid(427, "%000001ab"), Attrs([Attr("address","0x600"), -Attr("insn","adrp x1, #69632")]), Var("R1",Imm(64)), Int(69632,64)), -Def(Tid(432, "%000001b0"), Attrs([Attr("address","0x604"), -Attr("insn","mov w2, #0x14")]), Var("R2",Imm(64)), Int(20,64)), -Def(Tid(437, "%000001b5"), Attrs([Attr("address","0x608"), -Attr("insn","mov w0, #0x0")]), Var("R0",Imm(64)), Int(0,64)), -Def(Tid(445, "%000001bd"), Attrs([Attr("address","0x60C"), -Attr("insn","str w2, [x1, #0x14]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R1",Imm(64)),Int(20,64)),Extract(31,0,Var("R2",Imm(64))),LittleEndian(),32))]), -Jmps([Call(Tid(450, "%000001c2"), Attrs([Attr("address","0x610"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))]))])), -Sub(Tid(1_474, "@register_tm_clones"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x6C0")]), - "register_tm_clones", Args([Arg(Tid(1_522, "%000005f2"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("register_tm_clones_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(642, "@register_tm_clones"), Attrs([Attr("address","0x6C0")]), - Phis([]), Defs([Def(Tid(645, "%00000285"), Attrs([Attr("address","0x6C0"), -Attr("insn","adrp x0, #69632")]), Var("R0",Imm(64)), Int(69632,64)), -Def(Tid(651, "%0000028b"), Attrs([Attr("address","0x6C4"), -Attr("insn","add x0, x0, #0x10")]), Var("R0",Imm(64)), -PLUS(Var("R0",Imm(64)),Int(16,64))), Def(Tid(656, "%00000290"), - Attrs([Attr("address","0x6C8"), Attr("insn","adrp x1, #69632")]), - Var("R1",Imm(64)), Int(69632,64)), Def(Tid(662, "%00000296"), - Attrs([Attr("address","0x6CC"), Attr("insn","add x1, x1, #0x10")]), - Var("R1",Imm(64)), PLUS(Var("R1",Imm(64)),Int(16,64))), -Def(Tid(669, "%0000029d"), Attrs([Attr("address","0x6D0"), -Attr("insn","sub x1, x1, x0")]), Var("R1",Imm(64)), -PLUS(PLUS(Var("R1",Imm(64)),NOT(Var("R0",Imm(64)))),Int(1,64))), -Def(Tid(675, "%000002a3"), Attrs([Attr("address","0x6D4"), -Attr("insn","lsr x2, x1, #63")]), Var("R2",Imm(64)), -Concat(Int(0,63),Extract(63,63,Var("R1",Imm(64))))), -Def(Tid(682, "%000002aa"), Attrs([Attr("address","0x6D8"), -Attr("insn","add x1, x2, x1, asr #3")]), Var("R1",Imm(64)), -PLUS(Var("R2",Imm(64)),ARSHIFT(Var("R1",Imm(64)),Int(3,3)))), -Def(Tid(688, "%000002b0"), Attrs([Attr("address","0x6DC"), -Attr("insn","asr x1, x1, #1")]), Var("R1",Imm(64)), -SIGNED(64,Extract(63,1,Var("R1",Imm(64)))))]), -Jmps([Goto(Tid(694, "%000002b6"), Attrs([Attr("address","0x6E0"), -Attr("insn","cbz x1, #0x18")]), EQ(Var("R1",Imm(64)),Int(0,64)), -Direct(Tid(692, "%000002b4"))), Goto(Tid(1_503, "%000005df"), Attrs([]), - Int(1,1), Direct(Tid(855, "%00000357")))])), Blk(Tid(855, "%00000357"), - Attrs([Attr("address","0x6E4")]), Phis([]), Defs([Def(Tid(858, "%0000035a"), - Attrs([Attr("address","0x6E4"), Attr("insn","adrp x2, #65536")]), - Var("R2",Imm(64)), Int(65536,64)), Def(Tid(865, "%00000361"), - Attrs([Attr("address","0x6E8"), Attr("insn","ldr x2, [x2, #0xff8]")]), - Var("R2",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R2",Imm(64)),Int(4088,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(870, "%00000366"), Attrs([Attr("address","0x6EC"), -Attr("insn","cbz x2, #0xc")]), EQ(Var("R2",Imm(64)),Int(0,64)), -Direct(Tid(692, "%000002b4"))), Goto(Tid(1_504, "%000005e0"), Attrs([]), - Int(1,1), Direct(Tid(874, "%0000036a")))])), Blk(Tid(692, "%000002b4"), - Attrs([Attr("address","0x6F8")]), Phis([]), Defs([]), -Jmps([Call(Tid(700, "%000002bc"), Attrs([Attr("address","0x6F8"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))])), -Blk(Tid(874, "%0000036a"), Attrs([Attr("address","0x6F0")]), Phis([]), -Defs([Def(Tid(878, "%0000036e"), Attrs([Attr("address","0x6F0"), -Attr("insn","mov x16, x2")]), Var("R16",Imm(64)), Var("R2",Imm(64)))]), -Jmps([Call(Tid(883, "%00000373"), Attrs([Attr("address","0x6F4"), -Attr("insn","br x16")]), Int(1,1), -(Indirect(Var("R16",Imm(64))),))]))]))]))) \ No newline at end of file diff --git a/src/test/correct/basic_loop_assign/gcc_O2/basic_loop_assign.bir b/src/test/correct/basic_loop_assign/gcc_O2/basic_loop_assign.bir deleted file mode 100644 index e5a0a3862..000000000 --- a/src/test/correct/basic_loop_assign/gcc_O2/basic_loop_assign.bir +++ /dev/null @@ -1,227 +0,0 @@ -000005e1: program -000005af: sub __cxa_finalize(__cxa_finalize_result) -000005e2: __cxa_finalize_result :: out u32 = low:32[R0] - -00000353: -0000044b: R16 := 0x10000 -00000452: R17 := mem[R16 + 0xFB8, el]:u64 -00000458: R16 := R16 + 0xFB8 -0000045d: call R17 with noreturn - -000005b0: sub __do_global_dtors_aux(__do_global_dtors_aux_result) -000005e3: __do_global_dtors_aux_result :: out u32 = low:32[R0] - -000002c0: -000002c4: #3 := R31 - 0x20 -000002ca: mem := mem with [#3, el]:u64 <- R29 -000002d0: mem := mem with [#3 + 8, el]:u64 <- R30 -000002d4: R31 := #3 -000002da: R29 := R31 -000002e2: mem := mem with [R31 + 0x10, el]:u64 <- R19 -000002e7: R19 := 0x11000 -000002ee: R0 := pad:64[mem[R19 + 0x10]] -000002f5: when 31:0[R0] <> 0 goto %000002f3 -000005d7: goto %0000031c - -0000031c: -0000031f: R0 := 0x10000 -00000326: R0 := mem[R0 + 0xFE0, el]:u64 -0000032c: when R0 = 0 goto %0000032a -000005d8: goto %00000343 - -00000343: -00000346: R0 := 0x11000 -0000034d: R0 := mem[R0 + 8, el]:u64 -00000352: R30 := 0x730 -00000355: call @__cxa_finalize with return %0000032a - -0000032a: -00000332: R30 := 0x734 -00000334: call @deregister_tm_clones with return %00000336 - -00000336: -00000339: R0 := 1 -00000341: mem := mem with [R19 + 0x10] <- 7:0[R0] -000005d9: goto %000002f3 - -000002f3: -000002fd: R19 := mem[R31 + 0x10, el]:u64 -00000304: R29 := mem[R31, el]:u64 -00000309: R30 := mem[R31 + 8, el]:u64 -0000030d: R31 := R31 + 0x20 -00000312: call R30 with noreturn - -000005b4: sub __libc_start_main(__libc_start_main_main, __libc_start_main_arg2, __libc_start_main_arg3, __libc_start_main_auxv, __libc_start_main_result) -000005e4: __libc_start_main_main :: in u64 = R0 -000005e5: __libc_start_main_arg2 :: in u32 = low:32[R1] -000005e6: __libc_start_main_arg3 :: in out u64 = R2 -000005e7: __libc_start_main_auxv :: in out u64 = R3 -000005e8: __libc_start_main_result :: out u32 = low:32[R0] - -00000219: -00000435: R16 := 0x10000 -0000043c: R17 := mem[R16 + 0xFB0, el]:u64 -00000442: R16 := R16 + 0xFB0 -00000447: call R17 with noreturn - -000005b5: sub _fini(_fini_result) -000005e9: _fini_result :: out u32 = low:32[R0] - -0000001f: -00000025: #0 := R31 - 0x10 -0000002b: mem := mem with [#0, el]:u64 <- R29 -00000031: mem := mem with [#0 + 8, el]:u64 <- R30 -00000035: R31 := #0 -0000003b: R29 := R31 -00000042: R29 := mem[R31, el]:u64 -00000047: R30 := mem[R31 + 8, el]:u64 -0000004b: R31 := R31 + 0x10 -00000050: call R30 with noreturn - -000005b6: sub _init(_init_result) -000005ea: _init_result :: out u32 = low:32[R0] - -00000501: -00000507: #5 := R31 - 0x10 -0000050d: mem := mem with [#5, el]:u64 <- R29 -00000513: mem := mem with [#5 + 8, el]:u64 <- R30 -00000517: R31 := #5 -0000051d: R29 := R31 -00000522: R30 := 0x590 -00000524: call @call_weak_fn with return %00000526 - -00000526: -0000052b: R29 := mem[R31, el]:u64 -00000530: R30 := mem[R31 + 8, el]:u64 -00000534: R31 := R31 + 0x10 -00000539: call R30 with noreturn - -000005b7: sub _start(_start_result) -000005eb: _start_result :: out u32 = low:32[R0] - -000001da: -000001df: R29 := 0 -000001e4: R30 := 0 -000001ea: R5 := R0 -000001f1: R1 := mem[R31, el]:u64 -000001f7: R2 := R31 + 8 -000001fd: R6 := R31 -00000202: R0 := 0x10000 -00000209: R0 := mem[R0 + 0xFF0, el]:u64 -0000020e: R3 := 0 -00000213: R4 := 0 -00000218: R30 := 0x670 -0000021b: call @__libc_start_main with return %0000021d - -0000021d: -00000220: R30 := 0x674 -00000223: call @abort with return %000005da - -000005da: -000005db: call @call_weak_fn with noreturn - -000005ba: sub abort() - - -00000221: -00000477: R16 := 0x10000 -0000047e: R17 := mem[R16 + 0xFC8, el]:u64 -00000484: R16 := R16 + 0xFC8 -00000489: call R17 with noreturn - -000005bb: sub call_weak_fn(call_weak_fn_result) -000005ec: call_weak_fn_result :: out u32 = low:32[R0] - -00000225: -00000228: R0 := 0x10000 -0000022f: R0 := mem[R0 + 0xFE8, el]:u64 -00000235: when R0 = 0 goto %00000233 -000005dc: goto %00000393 - -00000233: -0000023b: call R30 with noreturn - -00000393: -00000396: goto @__gmon_start__ - -00000394: -00000461: R16 := 0x10000 -00000468: R17 := mem[R16 + 0xFC0, el]:u64 -0000046e: R16 := R16 + 0xFC0 -00000473: call R17 with noreturn - -000005bd: sub deregister_tm_clones(deregister_tm_clones_result) -000005ed: deregister_tm_clones_result :: out u32 = low:32[R0] - -00000241: -00000244: R0 := 0x11000 -0000024a: R0 := R0 + 0x10 -0000024f: R1 := 0x11000 -00000255: R1 := R1 + 0x10 -0000025b: #1 := ~R0 -00000260: #2 := R1 + ~R0 -00000266: VF := extend:65[#2 + 1] <> extend:65[R1] + extend:65[#1] + 1 -0000026c: CF := pad:65[#2 + 1] <> pad:65[R1] + pad:65[#1] + 1 -00000270: ZF := #2 + 1 = 0 -00000274: NF := 63:63[#2 + 1] -0000027a: when ZF goto %00000278 -000005dd: goto %00000375 - -00000375: -00000378: R1 := 0x10000 -0000037f: R1 := mem[R1 + 0xFD8, el]:u64 -00000384: when R1 = 0 goto %00000278 -000005de: goto %00000388 - -00000278: -00000280: call R30 with noreturn - -00000388: -0000038c: R16 := R1 -00000391: call R16 with noreturn - -000005c0: sub frame_dummy(frame_dummy_result) -000005ee: frame_dummy_result :: out u32 = low:32[R0] - -00000318: -0000031a: call @register_tm_clones with noreturn - -000005c1: sub main(main_argc, main_argv, main_result) -000005ef: main_argc :: in u32 = low:32[R0] -000005f0: main_argv :: in out u64 = R1 -000005f1: main_result :: out u32 = low:32[R0] - -000001a8: -000001ab: R1 := 0x11000 -000001b0: R2 := 0x14 -000001b5: R0 := 0 -000001bd: mem := mem with [R1 + 0x14, el]:u32 <- 31:0[R2] -000001c2: call R30 with noreturn - -000005c2: sub register_tm_clones(register_tm_clones_result) -000005f2: register_tm_clones_result :: out u32 = low:32[R0] - -00000282: -00000285: R0 := 0x11000 -0000028b: R0 := R0 + 0x10 -00000290: R1 := 0x11000 -00000296: R1 := R1 + 0x10 -0000029d: R1 := R1 + ~R0 + 1 -000002a3: R2 := 0.63:63[R1] -000002aa: R1 := R2 + (R1 ~>> 3) -000002b0: R1 := extend:64[63:1[R1]] -000002b6: when R1 = 0 goto %000002b4 -000005df: goto %00000357 - -00000357: -0000035a: R2 := 0x10000 -00000361: R2 := mem[R2 + 0xFF8, el]:u64 -00000366: when R2 = 0 goto %000002b4 -000005e0: goto %0000036a - -000002b4: -000002bc: call R30 with noreturn - -0000036a: -0000036e: R16 := R2 -00000373: call R16 with noreturn diff --git a/src/test/correct/basic_loop_assign/gcc_O2/basic_loop_assign.expected b/src/test/correct/basic_loop_assign/gcc_O2/basic_loop_assign.expected index 06d727655..ba3a372d4 100644 --- a/src/test/correct/basic_loop_assign/gcc_O2/basic_loop_assign.expected +++ b/src/test/correct/basic_loop_assign/gcc_O2/basic_loop_assign.expected @@ -66,7 +66,7 @@ implementation {:extern} guarantee_reflexive() assert (((memory_load32_le(mem, $x_addr) == memory_load32_le(mem, $x_addr)) || ((memory_load32_le(mem, $x_addr) == 20bv32) && (memory_load32_le(mem, $x_addr) == 0bv32))) || ((memory_load32_le(mem, $x_addr) == 20bv32) && bvsle32(memory_load32_le(mem, $x_addr), 10bv32))); } -procedure main_1536(); +procedure main(); modifies Gamma_R0, Gamma_R1, Gamma_R2, Gamma_mem, R0, R1, R2, mem; requires (memory_load32_le(mem, $x_addr) == 0bv32); free requires (memory_load64_le(mem, 69632bv64) == 0bv64); @@ -83,7 +83,7 @@ procedure main_1536(); free ensures (memory_load64_le(mem, 69616bv64) == 1536bv64); free ensures (memory_load64_le(mem, 69640bv64) == 69640bv64); -implementation main_1536() +implementation main() { var x_old: bv32; lmain: @@ -92,14 +92,14 @@ implementation main_1536() R2, Gamma_R2 := 20bv64, true; R0, Gamma_R0 := 0bv64, true; call rely(); - x_old := memory_load32_le(mem, $x_addr); assert (L(mem, bvadd64(R1, 20bv64)) ==> Gamma_R2); + x_old := memory_load32_le(mem, $x_addr); mem, Gamma_mem := memory_store32_le(mem, bvadd64(R1, 20bv64), R2[32:0]), gamma_store32(Gamma_mem, bvadd64(R1, 20bv64), Gamma_R2); assert (((memory_load32_le(mem, $x_addr) == x_old) || ((memory_load32_le(mem, $x_addr) == 20bv32) && (x_old == 0bv32))) || ((memory_load32_le(mem, $x_addr) == 20bv32) && bvsle32(x_old, 10bv32))); assume {:captureState "%000001bd"} true; - goto main_1536_basil_return; - main_1536_basil_return: - assume {:captureState "main_1536_basil_return"} true; + goto main_basil_return; + main_basil_return: + assume {:captureState "main_basil_return"} true; return; } diff --git a/src/test/correct/basic_loop_assign/gcc_O2/basic_loop_assign.gts b/src/test/correct/basic_loop_assign/gcc_O2/basic_loop_assign.gts deleted file mode 100644 index 17c75e0bb..000000000 Binary files a/src/test/correct/basic_loop_assign/gcc_O2/basic_loop_assign.gts and /dev/null differ diff --git a/src/test/correct/basic_loop_assign/gcc_O2/basic_loop_assign.md5sum b/src/test/correct/basic_loop_assign/gcc_O2/basic_loop_assign.md5sum new file mode 100644 index 000000000..7da4ab891 --- /dev/null +++ b/src/test/correct/basic_loop_assign/gcc_O2/basic_loop_assign.md5sum @@ -0,0 +1,5 @@ +628e2b42987842d1c0b5324506efc024 correct/basic_loop_assign/gcc_O2/a.out +5b2054d17078e289cb058fd1b2e1399f correct/basic_loop_assign/gcc_O2/basic_loop_assign.adt +eea336cd6c1dc0db6b9e143d7615fd46 correct/basic_loop_assign/gcc_O2/basic_loop_assign.bir +f8b327bf113edfa42f41c1de25d12edc correct/basic_loop_assign/gcc_O2/basic_loop_assign.relf +64bd1532cb8ae595953d22189f953970 correct/basic_loop_assign/gcc_O2/basic_loop_assign.gts diff --git a/src/test/correct/basic_loop_assign/gcc_O2/basic_loop_assign.relf b/src/test/correct/basic_loop_assign/gcc_O2/basic_loop_assign.relf deleted file mode 100644 index 8e69e2183..000000000 --- a/src/test/correct/basic_loop_assign/gcc_O2/basic_loop_assign.relf +++ /dev/null @@ -1,121 +0,0 @@ - -Relocation section '.rela.dyn' at offset 0x460 contains 8 entries: - Offset Info Type Symbol's Value Symbol's Name + Addend -0000000000010d98 0000000000000403 R_AARCH64_RELATIVE 750 -0000000000010da0 0000000000000403 R_AARCH64_RELATIVE 700 -0000000000010ff0 0000000000000403 R_AARCH64_RELATIVE 600 -0000000000011008 0000000000000403 R_AARCH64_RELATIVE 11008 -0000000000010fd8 0000000400000401 R_AARCH64_GLOB_DAT 0000000000000000 _ITM_deregisterTMCloneTable + 0 -0000000000010fe0 0000000500000401 R_AARCH64_GLOB_DAT 0000000000000000 __cxa_finalize@GLIBC_2.17 + 0 -0000000000010fe8 0000000600000401 R_AARCH64_GLOB_DAT 0000000000000000 __gmon_start__ + 0 -0000000000010ff8 0000000800000401 R_AARCH64_GLOB_DAT 0000000000000000 _ITM_registerTMCloneTable + 0 - -Relocation section '.rela.plt' at offset 0x520 contains 4 entries: - Offset Info Type Symbol's Value Symbol's Name + Addend -0000000000010fb0 0000000300000402 R_AARCH64_JUMP_SLOT 0000000000000000 __libc_start_main@GLIBC_2.34 + 0 -0000000000010fb8 0000000500000402 R_AARCH64_JUMP_SLOT 0000000000000000 __cxa_finalize@GLIBC_2.17 + 0 -0000000000010fc0 0000000600000402 R_AARCH64_JUMP_SLOT 0000000000000000 __gmon_start__ + 0 -0000000000010fc8 0000000700000402 R_AARCH64_JUMP_SLOT 0000000000000000 abort@GLIBC_2.17 + 0 - -Symbol table '.dynsym' contains 9 entries: - Num: Value Size Type Bind Vis Ndx Name - 0: 0000000000000000 0 NOTYPE LOCAL DEFAULT UND - 1: 0000000000000580 0 SECTION LOCAL DEFAULT 11 .init - 2: 0000000000011000 0 SECTION LOCAL DEFAULT 22 .data - 3: 0000000000000000 0 FUNC GLOBAL DEFAULT UND __libc_start_main@GLIBC_2.34 (2) - 4: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_deregisterTMCloneTable - 5: 0000000000000000 0 FUNC WEAK DEFAULT UND __cxa_finalize@GLIBC_2.17 (3) - 6: 0000000000000000 0 NOTYPE WEAK DEFAULT UND __gmon_start__ - 7: 0000000000000000 0 FUNC GLOBAL DEFAULT UND abort@GLIBC_2.17 (3) - 8: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_registerTMCloneTable - -Symbol table '.symtab' contains 88 entries: - Num: Value Size Type Bind Vis Ndx Name - 0: 0000000000000000 0 NOTYPE LOCAL DEFAULT UND - 1: 0000000000000238 0 SECTION LOCAL DEFAULT 1 .interp - 2: 0000000000000254 0 SECTION LOCAL DEFAULT 2 .note.gnu.build-id - 3: 0000000000000278 0 SECTION LOCAL DEFAULT 3 .note.ABI-tag - 4: 0000000000000298 0 SECTION LOCAL DEFAULT 4 .gnu.hash - 5: 00000000000002b8 0 SECTION LOCAL DEFAULT 5 .dynsym - 6: 0000000000000390 0 SECTION LOCAL DEFAULT 6 .dynstr - 7: 000000000000041e 0 SECTION LOCAL DEFAULT 7 .gnu.version - 8: 0000000000000430 0 SECTION LOCAL DEFAULT 8 .gnu.version_r - 9: 0000000000000460 0 SECTION LOCAL DEFAULT 9 .rela.dyn - 10: 0000000000000520 0 SECTION LOCAL DEFAULT 10 .rela.plt - 11: 0000000000000580 0 SECTION LOCAL DEFAULT 11 .init - 12: 00000000000005a0 0 SECTION LOCAL DEFAULT 12 .plt - 13: 0000000000000600 0 SECTION LOCAL DEFAULT 13 .text - 14: 0000000000000754 0 SECTION LOCAL DEFAULT 14 .fini - 15: 0000000000000768 0 SECTION LOCAL DEFAULT 15 .rodata - 16: 000000000000076c 0 SECTION LOCAL DEFAULT 16 .eh_frame_hdr - 17: 00000000000007a8 0 SECTION LOCAL DEFAULT 17 .eh_frame - 18: 0000000000010d98 0 SECTION LOCAL DEFAULT 18 .init_array - 19: 0000000000010da0 0 SECTION LOCAL DEFAULT 19 .fini_array - 20: 0000000000010da8 0 SECTION LOCAL DEFAULT 20 .dynamic - 21: 0000000000010f98 0 SECTION LOCAL DEFAULT 21 .got - 22: 0000000000011000 0 SECTION LOCAL DEFAULT 22 .data - 23: 0000000000011010 0 SECTION LOCAL DEFAULT 23 .bss - 24: 0000000000000000 0 SECTION LOCAL DEFAULT 24 .comment - 25: 0000000000000000 0 FILE LOCAL DEFAULT ABS Scrt1.o - 26: 0000000000000278 0 NOTYPE LOCAL DEFAULT 3 $d - 27: 0000000000000278 32 OBJECT LOCAL DEFAULT 3 __abi_tag - 28: 0000000000000640 0 NOTYPE LOCAL DEFAULT 13 $x - 29: 00000000000007bc 0 NOTYPE LOCAL DEFAULT 17 $d - 30: 0000000000000768 0 NOTYPE LOCAL DEFAULT 15 $d - 31: 0000000000000000 0 FILE LOCAL DEFAULT ABS crti.o - 32: 0000000000000674 0 NOTYPE LOCAL DEFAULT 13 $x - 33: 0000000000000674 20 FUNC LOCAL DEFAULT 13 call_weak_fn - 34: 0000000000000580 0 NOTYPE LOCAL DEFAULT 11 $x - 35: 0000000000000754 0 NOTYPE LOCAL DEFAULT 14 $x - 36: 0000000000000000 0 FILE LOCAL DEFAULT ABS crtn.o - 37: 0000000000000590 0 NOTYPE LOCAL DEFAULT 11 $x - 38: 0000000000000760 0 NOTYPE LOCAL DEFAULT 14 $x - 39: 0000000000000000 0 FILE LOCAL DEFAULT ABS basic_loop_assign.c - 40: 0000000000000600 0 NOTYPE LOCAL DEFAULT 13 $x - 41: 0000000000011014 0 NOTYPE LOCAL DEFAULT 23 $d - 42: 0000000000000830 0 NOTYPE LOCAL DEFAULT 17 $d - 43: 0000000000000000 0 FILE LOCAL DEFAULT ABS crtstuff.c - 44: 0000000000000690 0 NOTYPE LOCAL DEFAULT 13 $x - 45: 0000000000000690 0 FUNC LOCAL DEFAULT 13 deregister_tm_clones - 46: 00000000000006c0 0 FUNC LOCAL DEFAULT 13 register_tm_clones - 47: 0000000000011008 0 NOTYPE LOCAL DEFAULT 22 $d - 48: 0000000000000700 0 FUNC LOCAL DEFAULT 13 __do_global_dtors_aux - 49: 0000000000011010 1 OBJECT LOCAL DEFAULT 23 completed.0 - 50: 0000000000010da0 0 NOTYPE LOCAL DEFAULT 19 $d - 51: 0000000000010da0 0 OBJECT LOCAL DEFAULT 19 __do_global_dtors_aux_fini_array_entry - 52: 0000000000000750 0 FUNC LOCAL DEFAULT 13 frame_dummy - 53: 0000000000010d98 0 NOTYPE LOCAL DEFAULT 18 $d - 54: 0000000000010d98 0 OBJECT LOCAL DEFAULT 18 __frame_dummy_init_array_entry - 55: 00000000000007d0 0 NOTYPE LOCAL DEFAULT 17 $d - 56: 0000000000011010 0 NOTYPE LOCAL DEFAULT 23 $d - 57: 0000000000000000 0 FILE LOCAL DEFAULT ABS crtstuff.c - 58: 0000000000000844 0 NOTYPE LOCAL DEFAULT 17 $d - 59: 0000000000000844 0 OBJECT LOCAL DEFAULT 17 __FRAME_END__ - 60: 0000000000000000 0 FILE LOCAL DEFAULT ABS - 61: 0000000000010da8 0 OBJECT LOCAL DEFAULT ABS _DYNAMIC - 62: 000000000000076c 0 NOTYPE LOCAL DEFAULT 16 __GNU_EH_FRAME_HDR - 63: 0000000000010fd0 0 OBJECT LOCAL DEFAULT ABS _GLOBAL_OFFSET_TABLE_ - 64: 00000000000005a0 0 NOTYPE LOCAL DEFAULT 12 $x - 65: 0000000000000000 0 FUNC GLOBAL DEFAULT UND __libc_start_main@GLIBC_2.34 - 66: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_deregisterTMCloneTable - 67: 0000000000011000 0 NOTYPE WEAK DEFAULT 22 data_start - 68: 0000000000011010 0 NOTYPE GLOBAL DEFAULT 23 __bss_start__ - 69: 0000000000000000 0 FUNC WEAK DEFAULT UND __cxa_finalize@GLIBC_2.17 - 70: 0000000000011018 0 NOTYPE GLOBAL DEFAULT 23 _bss_end__ - 71: 0000000000011010 0 NOTYPE GLOBAL DEFAULT 22 _edata - 72: 0000000000011014 4 OBJECT GLOBAL DEFAULT 23 x - 73: 0000000000000754 0 FUNC GLOBAL HIDDEN 14 _fini - 74: 0000000000011018 0 NOTYPE GLOBAL DEFAULT 23 __bss_end__ - 75: 0000000000011000 0 NOTYPE GLOBAL DEFAULT 22 __data_start - 76: 0000000000000000 0 NOTYPE WEAK DEFAULT UND __gmon_start__ - 77: 0000000000011008 0 OBJECT GLOBAL HIDDEN 22 __dso_handle - 78: 0000000000000000 0 FUNC GLOBAL DEFAULT UND abort@GLIBC_2.17 - 79: 0000000000000768 4 OBJECT GLOBAL DEFAULT 15 _IO_stdin_used - 80: 0000000000011018 0 NOTYPE GLOBAL DEFAULT 23 _end - 81: 0000000000000640 52 FUNC GLOBAL DEFAULT 13 _start - 82: 0000000000011018 0 NOTYPE GLOBAL DEFAULT 23 __end__ - 83: 0000000000011010 0 NOTYPE GLOBAL DEFAULT 23 __bss_start - 84: 0000000000000600 20 FUNC GLOBAL DEFAULT 13 main - 85: 0000000000011010 0 OBJECT GLOBAL HIDDEN 22 __TMC_END__ - 86: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_registerTMCloneTable - 87: 0000000000000580 0 FUNC GLOBAL HIDDEN 11 _init diff --git a/src/test/correct/basic_loop_assign/gcc_O2/basic_loop_assign_gtirb.expected b/src/test/correct/basic_loop_assign/gcc_O2/basic_loop_assign_gtirb.expected index 8debbf0bd..a6dc84191 100644 --- a/src/test/correct/basic_loop_assign/gcc_O2/basic_loop_assign_gtirb.expected +++ b/src/test/correct/basic_loop_assign/gcc_O2/basic_loop_assign_gtirb.expected @@ -66,7 +66,7 @@ implementation {:extern} guarantee_reflexive() assert (((memory_load32_le(mem, $x_addr) == memory_load32_le(mem, $x_addr)) || ((memory_load32_le(mem, $x_addr) == 20bv32) && (memory_load32_le(mem, $x_addr) == 0bv32))) || ((memory_load32_le(mem, $x_addr) == 20bv32) && bvsle32(memory_load32_le(mem, $x_addr), 10bv32))); } -procedure main_1536(); +procedure main(); modifies Gamma_R0, Gamma_R1, Gamma_R2, Gamma_mem, R0, R1, R2, mem; requires (memory_load32_le(mem, $x_addr) == 0bv32); free requires (memory_load64_le(mem, 69632bv64) == 0bv64); @@ -83,23 +83,23 @@ procedure main_1536(); free ensures (memory_load64_le(mem, 69616bv64) == 1536bv64); free ensures (memory_load64_le(mem, 69640bv64) == 69640bv64); -implementation main_1536() +implementation main() { var x_old: bv32; - main_1536__0__tffdqh2YTRCyJnOTdD6cPQ: - assume {:captureState "main_1536__0__tffdqh2YTRCyJnOTdD6cPQ"} true; + $main$__0__$tffdqh2YTRCyJnOTdD6cPQ: + assume {:captureState "$main$__0__$tffdqh2YTRCyJnOTdD6cPQ"} true; R1, Gamma_R1 := 69632bv64, true; R2, Gamma_R2 := 20bv64, true; R0, Gamma_R0 := 0bv64, true; call rely(); - x_old := memory_load32_le(mem, $x_addr); assert (L(mem, bvadd64(R1, 20bv64)) ==> Gamma_R2); + x_old := memory_load32_le(mem, $x_addr); mem, Gamma_mem := memory_store32_le(mem, bvadd64(R1, 20bv64), R2[32:0]), gamma_store32(Gamma_mem, bvadd64(R1, 20bv64), Gamma_R2); assert (((memory_load32_le(mem, $x_addr) == x_old) || ((memory_load32_le(mem, $x_addr) == 20bv32) && (x_old == 0bv32))) || ((memory_load32_le(mem, $x_addr) == 20bv32) && bvsle32(x_old, 10bv32))); - assume {:captureState "1548_0"} true; - goto main_1536_basil_return; - main_1536_basil_return: - assume {:captureState "main_1536_basil_return"} true; + assume {:captureState "1548$0"} true; + goto main_basil_return; + main_basil_return: + assume {:captureState "main_basil_return"} true; return; } diff --git a/src/test/correct/basic_loop_assign/gcc_pic/basic_loop_assign.adt b/src/test/correct/basic_loop_assign/gcc_pic/basic_loop_assign.adt deleted file mode 100644 index 7f940cc6a..000000000 --- a/src/test/correct/basic_loop_assign/gcc_pic/basic_loop_assign.adt +++ /dev/null @@ -1,495 +0,0 @@ -Project(Attrs([Attr("filename","\"gcc_pic/basic_loop_assign.out\""), -Attr("image-specification","(declare abi (name str))\n(declare arch (name str))\n(declare base-address (addr int))\n(declare bias (off int))\n(declare bits (size int))\n(declare code-region (addr int) (size int) (off int))\n(declare code-start (addr int))\n(declare entry-point (addr int))\n(declare external-reference (addr int) (name str))\n(declare format (name str))\n(declare is-executable (flag bool))\n(declare is-little-endian (flag bool))\n(declare llvm:base-address (addr int))\n(declare llvm:code-entry (name str) (off int) (size int))\n(declare llvm:coff-import-library (name str))\n(declare llvm:coff-virtual-section-header (name str) (addr int) (size int))\n(declare llvm:elf-program-header (name str) (off int) (size int))\n(declare llvm:elf-program-header-flags (name str) (ld bool) (r bool) \n (w bool) (x bool))\n(declare llvm:elf-virtual-program-header (name str) (addr int) (size int))\n(declare llvm:entry-point (addr int))\n(declare llvm:macho-symbol (name str) (value int))\n(declare llvm:name-reference (at int) (name str))\n(declare llvm:relocation (at int) (addr int))\n(declare llvm:section-entry (name str) (addr int) (size int) (off int))\n(declare llvm:section-flags (name str) (r bool) (w bool) (x bool))\n(declare llvm:segment-command (name str) (off int) (size int))\n(declare llvm:segment-command-flags (name str) (r bool) (w bool) (x bool))\n(declare llvm:symbol-entry (name str) (addr int) (size int) (off int)\n (value int))\n(declare llvm:virtual-segment-command (name str) (addr int) (size int))\n(declare mapped (addr int) (size int) (off int))\n(declare named-region (addr int) (size int) (name str))\n(declare named-symbol (addr int) (name str))\n(declare require (name str))\n(declare section (addr int) (size int))\n(declare segment (addr int) (size int) (r bool) (w bool) (x bool))\n(declare subarch (name str))\n(declare symbol-chunk (addr int) (size int) (root int))\n(declare symbol-value (addr int) (value int))\n(declare system (name str))\n(declare vendor (name str))\n\n(abi unknown)\n(arch aarch64)\n(base-address 0)\n(bias 0)\n(bits 64)\n(code-region 1900 20 1900)\n(code-region 1600 300 1600)\n(code-region 1456 96 1456)\n(code-region 1432 24 1432)\n(code-start 1652)\n(code-start 1600)\n(code-start 1876)\n(entry-point 1600)\n(external-reference 69584 _ITM_deregisterTMCloneTable)\n(external-reference 69592 __cxa_finalize)\n(external-reference 69608 __gmon_start__)\n(external-reference 69624 _ITM_registerTMCloneTable)\n(external-reference 69544 __libc_start_main)\n(external-reference 69552 __cxa_finalize)\n(external-reference 69560 __gmon_start__)\n(external-reference 69568 abort)\n(format elf)\n(is-executable true)\n(is-little-endian true)\n(llvm:base-address 0)\n(llvm:code-entry abort 0 0)\n(llvm:code-entry __cxa_finalize 0 0)\n(llvm:code-entry __libc_start_main 0 0)\n(llvm:code-entry _init 1432 0)\n(llvm:code-entry main 1876 24)\n(llvm:code-entry _start 1600 52)\n(llvm:code-entry abort@GLIBC_2.17 0 0)\n(llvm:code-entry _fini 1900 0)\n(llvm:code-entry __cxa_finalize@GLIBC_2.17 0 0)\n(llvm:code-entry __libc_start_main@GLIBC_2.34 0 0)\n(llvm:code-entry frame_dummy 1872 0)\n(llvm:code-entry __do_global_dtors_aux 1792 0)\n(llvm:code-entry register_tm_clones 1728 0)\n(llvm:code-entry deregister_tm_clones 1680 0)\n(llvm:code-entry call_weak_fn 1652 20)\n(llvm:code-entry .fini 1900 20)\n(llvm:code-entry .text 1600 300)\n(llvm:code-entry .plt 1456 96)\n(llvm:code-entry .init 1432 24)\n(llvm:elf-program-header 08 3472 624)\n(llvm:elf-program-header 07 0 0)\n(llvm:elf-program-header 06 1924 60)\n(llvm:elf-program-header 05 596 68)\n(llvm:elf-program-header 04 3488 496)\n(llvm:elf-program-header 03 3472 640)\n(llvm:elf-program-header 02 0 2144)\n(llvm:elf-program-header 01 568 27)\n(llvm:elf-program-header 00 64 504)\n(llvm:elf-program-header-flags 08 false true false false)\n(llvm:elf-program-header-flags 07 false true true false)\n(llvm:elf-program-header-flags 06 false true false false)\n(llvm:elf-program-header-flags 05 false true false false)\n(llvm:elf-program-header-flags 04 false true true false)\n(llvm:elf-program-header-flags 03 true true true false)\n(llvm:elf-program-header-flags 02 true true false true)\n(llvm:elf-program-header-flags 01 false true false false)\n(llvm:elf-program-header-flags 00 false true false false)\n(llvm:elf-virtual-program-header 08 69008 624)\n(llvm:elf-virtual-program-header 07 0 0)\n(llvm:elf-virtual-program-header 06 1924 60)\n(llvm:elf-virtual-program-header 05 596 68)\n(llvm:elf-virtual-program-header 04 69024 496)\n(llvm:elf-virtual-program-header 03 69008 648)\n(llvm:elf-virtual-program-header 02 0 2144)\n(llvm:elf-virtual-program-header 01 568 27)\n(llvm:elf-virtual-program-header 00 64 504)\n(llvm:entry-point 1600)\n(llvm:name-reference 69568 abort)\n(llvm:name-reference 69560 __gmon_start__)\n(llvm:name-reference 69552 __cxa_finalize)\n(llvm:name-reference 69544 __libc_start_main)\n(llvm:name-reference 69624 _ITM_registerTMCloneTable)\n(llvm:name-reference 69608 __gmon_start__)\n(llvm:name-reference 69592 __cxa_finalize)\n(llvm:name-reference 69584 _ITM_deregisterTMCloneTable)\n(llvm:section-entry .shstrtab 0 250 6825)\n(llvm:section-entry .strtab 0 553 6272)\n(llvm:section-entry .symtab 0 2112 4160)\n(llvm:section-entry .comment 0 43 4112)\n(llvm:section-entry .bss 69648 8 4112)\n(llvm:section-entry .data 69632 16 4096)\n(llvm:section-entry .got 69520 112 3984)\n(llvm:section-entry .dynamic 69024 496 3488)\n(llvm:section-entry .fini_array 69016 8 3480)\n(llvm:section-entry .init_array 69008 8 3472)\n(llvm:section-entry .eh_frame 1984 160 1984)\n(llvm:section-entry .eh_frame_hdr 1924 60 1924)\n(llvm:section-entry .rodata 1920 4 1920)\n(llvm:section-entry .fini 1900 20 1900)\n(llvm:section-entry .text 1600 300 1600)\n(llvm:section-entry .plt 1456 96 1456)\n(llvm:section-entry .init 1432 24 1432)\n(llvm:section-entry .rela.plt 1336 96 1336)\n(llvm:section-entry .rela.dyn 1120 216 1120)\n(llvm:section-entry .gnu.version_r 1072 48 1072)\n(llvm:section-entry .gnu.version 1054 18 1054)\n(llvm:section-entry .dynstr 912 141 912)\n(llvm:section-entry .dynsym 696 216 696)\n(llvm:section-entry .gnu.hash 664 28 664)\n(llvm:section-entry .note.ABI-tag 632 32 632)\n(llvm:section-entry .note.gnu.build-id 596 36 596)\n(llvm:section-entry .interp 568 27 568)\n(llvm:section-flags .shstrtab true false false)\n(llvm:section-flags .strtab true false false)\n(llvm:section-flags .symtab true false false)\n(llvm:section-flags .comment true false false)\n(llvm:section-flags .bss true true false)\n(llvm:section-flags .data true true false)\n(llvm:section-flags .got true true false)\n(llvm:section-flags .dynamic true true false)\n(llvm:section-flags .fini_array true true false)\n(llvm:section-flags .init_array true true false)\n(llvm:section-flags .eh_frame true false false)\n(llvm:section-flags .eh_frame_hdr true false false)\n(llvm:section-flags .rodata true false false)\n(llvm:section-flags .fini true false true)\n(llvm:section-flags .text true false true)\n(llvm:section-flags .plt true false true)\n(llvm:section-flags .init true false true)\n(llvm:section-flags .rela.plt true false false)\n(llvm:section-flags .rela.dyn true false false)\n(llvm:section-flags .gnu.version_r true false false)\n(llvm:section-flags .gnu.version true false false)\n(llvm:section-flags .dynstr true false false)\n(llvm:section-flags .dynsym true false false)\n(llvm:section-flags .gnu.hash true false false)\n(llvm:section-flags .note.ABI-tag true false false)\n(llvm:section-flags .note.gnu.build-id true false false)\n(llvm:section-flags .interp true false false)\n(llvm:symbol-entry abort 0 0 0 0)\n(llvm:symbol-entry __cxa_finalize 0 0 0 0)\n(llvm:symbol-entry __libc_start_main 0 0 0 0)\n(llvm:symbol-entry _init 1432 0 1432 1432)\n(llvm:symbol-entry main 1876 24 1876 1876)\n(llvm:symbol-entry _start 1600 52 1600 1600)\n(llvm:symbol-entry abort@GLIBC_2.17 0 0 0 0)\n(llvm:symbol-entry _fini 1900 0 1900 1900)\n(llvm:symbol-entry __cxa_finalize@GLIBC_2.17 0 0 0 0)\n(llvm:symbol-entry __libc_start_main@GLIBC_2.34 0 0 0 0)\n(llvm:symbol-entry frame_dummy 1872 0 1872 1872)\n(llvm:symbol-entry __do_global_dtors_aux 1792 0 1792 1792)\n(llvm:symbol-entry register_tm_clones 1728 0 1728 1728)\n(llvm:symbol-entry deregister_tm_clones 1680 0 1680 1680)\n(llvm:symbol-entry call_weak_fn 1652 20 1652 1652)\n(mapped 0 2144 0)\n(mapped 69008 640 3472)\n(named-region 0 2144 02)\n(named-region 69008 648 03)\n(named-region 568 27 .interp)\n(named-region 596 36 .note.gnu.build-id)\n(named-region 632 32 .note.ABI-tag)\n(named-region 664 28 .gnu.hash)\n(named-region 696 216 .dynsym)\n(named-region 912 141 .dynstr)\n(named-region 1054 18 .gnu.version)\n(named-region 1072 48 .gnu.version_r)\n(named-region 1120 216 .rela.dyn)\n(named-region 1336 96 .rela.plt)\n(named-region 1432 24 .init)\n(named-region 1456 96 .plt)\n(named-region 1600 300 .text)\n(named-region 1900 20 .fini)\n(named-region 1920 4 .rodata)\n(named-region 1924 60 .eh_frame_hdr)\n(named-region 1984 160 .eh_frame)\n(named-region 69008 8 .init_array)\n(named-region 69016 8 .fini_array)\n(named-region 69024 496 .dynamic)\n(named-region 69520 112 .got)\n(named-region 69632 16 .data)\n(named-region 69648 8 .bss)\n(named-region 0 43 .comment)\n(named-region 0 2112 .symtab)\n(named-region 0 553 .strtab)\n(named-region 0 250 .shstrtab)\n(named-symbol 1652 call_weak_fn)\n(named-symbol 1680 deregister_tm_clones)\n(named-symbol 1728 register_tm_clones)\n(named-symbol 1792 __do_global_dtors_aux)\n(named-symbol 1872 frame_dummy)\n(named-symbol 0 __libc_start_main@GLIBC_2.34)\n(named-symbol 0 __cxa_finalize@GLIBC_2.17)\n(named-symbol 1900 _fini)\n(named-symbol 0 abort@GLIBC_2.17)\n(named-symbol 1600 _start)\n(named-symbol 1876 main)\n(named-symbol 1432 _init)\n(named-symbol 0 __libc_start_main)\n(named-symbol 0 __cxa_finalize)\n(named-symbol 0 abort)\n(require libc.so.6)\n(section 568 27)\n(section 596 36)\n(section 632 32)\n(section 664 28)\n(section 696 216)\n(section 912 141)\n(section 1054 18)\n(section 1072 48)\n(section 1120 216)\n(section 1336 96)\n(section 1432 24)\n(section 1456 96)\n(section 1600 300)\n(section 1900 20)\n(section 1920 4)\n(section 1924 60)\n(section 1984 160)\n(section 69008 8)\n(section 69016 8)\n(section 69024 496)\n(section 69520 112)\n(section 69632 16)\n(section 69648 8)\n(section 0 43)\n(section 0 2112)\n(section 0 553)\n(section 0 250)\n(segment 0 2144 true false true)\n(segment 69008 648 true true false)\n(subarch v8)\n(symbol-chunk 1652 20 1652)\n(symbol-chunk 1600 52 1600)\n(symbol-chunk 1876 24 1876)\n(symbol-value 1652 1652)\n(symbol-value 1680 1680)\n(symbol-value 1728 1728)\n(symbol-value 1792 1792)\n(symbol-value 1872 1872)\n(symbol-value 1900 1900)\n(symbol-value 1600 1600)\n(symbol-value 1876 1876)\n(symbol-value 1432 1432)\n(symbol-value 0 0)\n(system \"\")\n(vendor \"\")\n"), -Attr("abi-name","\"aarch64-linux-gnu-elf\"")]), -Sections([Section(".shstrtab", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x40\x06\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xa8\x1b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x38\x00\x09\x00\x40\x00\x1c\x00\x1b\x00\x06\x00\x00\x00\x04\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x04\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x60\x08\x00\x00\x00\x00\x00\x00\x60\x08\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x01\x00\x00\x00\x06\x00\x00\x00\x90\x0d\x00\x00\x00\x00\x00\x00\x90\x0d"), -Section(".strtab", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x40\x06\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xa8\x1b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x38\x00\x09\x00\x40\x00\x1c\x00\x1b\x00\x06\x00\x00\x00\x04\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x04\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x60\x08\x00\x00\x00\x00\x00\x00\x60\x08\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x01\x00\x00\x00\x06\x00\x00\x00\x90\x0d\x00\x00\x00\x00\x00\x00\x90\x0d\x01\x00\x00\x00\x00\x00\x90\x0d\x01\x00\x00\x00\x00\x00\x80\x02\x00\x00\x00\x00\x00\x00\x88\x02\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x02\x00\x00\x00\x06\x00\x00\x00\xa0\x0d\x00\x00\x00\x00\x00\x00\xa0\x0d\x01\x00\x00\x00\x00\x00\xa0\x0d\x01\x00\x00\x00\x00\x00\xf0\x01\x00\x00\x00\x00\x00\x00\xf0\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x04\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x50\xe5\x74\x64\x04\x00\x00\x00\x84\x07\x00\x00\x00\x00\x00\x00\x84\x07\x00\x00\x00\x00\x00\x00\x84\x07\x00\x00\x00\x00\x00\x00\x3c\x00\x00\x00\x00\x00\x00\x00\x3c\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x51\xe5\x74\x64\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x52\xe5\x74\x64\x04\x00\x00\x00\x90\x0d\x00\x00\x00\x00\x00\x00\x90\x0d\x01\x00\x00\x00\x00\x00\x90\x0d\x01\x00\x00\x00\x00\x00\x70\x02\x00\x00\x00\x00\x00\x00\x70"), -Section(".symtab", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x40\x06\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xa8\x1b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x38\x00\x09\x00\x40\x00\x1c\x00\x1b\x00\x06\x00\x00\x00\x04\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x04\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x60\x08\x00\x00\x00\x00\x00\x00\x60\x08\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x01\x00\x00\x00\x06\x00\x00\x00\x90\x0d\x00\x00\x00\x00\x00\x00\x90\x0d\x01\x00\x00\x00\x00\x00\x90\x0d\x01\x00\x00\x00\x00\x00\x80\x02\x00\x00\x00\x00\x00\x00\x88\x02\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x02\x00\x00\x00\x06\x00\x00\x00\xa0\x0d\x00\x00\x00\x00\x00\x00\xa0\x0d\x01\x00\x00\x00\x00\x00\xa0\x0d\x01\x00\x00\x00\x00\x00\xf0\x01\x00\x00\x00\x00\x00\x00\xf0\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x04\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x50\xe5\x74\x64\x04\x00\x00\x00\x84\x07\x00\x00\x00\x00\x00\x00\x84\x07\x00\x00\x00\x00\x00\x00\x84\x07\x00\x00\x00\x00\x00\x00\x3c\x00\x00\x00\x00\x00\x00\x00\x3c\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x51\xe5\x74\x64\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x52\xe5\x74\x64\x04\x00\x00\x00\x90\x0d\x00\x00\x00\x00\x00\x00\x90\x0d\x01\x00\x00\x00\x00\x00\x90\x0d\x01\x00\x00\x00\x00\x00\x70\x02\x00\x00\x00\x00\x00\x00\x70\x02\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x2f\x6c\x69\x62\x2f\x6c\x64\x2d\x6c\x69\x6e\x75\x78\x2d\x61\x61\x72\x63\x68\x36\x34\x2e\x73\x6f\x2e\x31\x00\x00\x04\x00\x00\x00\x14\x00\x00\x00\x03\x00\x00\x00\x47\x4e\x55\x00\x23\x3d\x4d\x78\x78\x17\x7e\x4c\xac\x1c\x00\x4c\x70\x3b\xdb\x93\xc0\x80\xa5\x46\x04\x00\x00\x00\x10\x00\x00\x00\x01\x00\x00\x00\x47\x4e\x55\x00\x00\x00\x00\x00\x03\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x01\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x0b\x00\x98\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x16\x00\x00\x10\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x48\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x22\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x22\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x73\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5f\x5f\x63\x78\x61\x5f\x66\x69\x6e\x61\x6c\x69\x7a\x65\x00\x5f\x5f\x6c\x69\x62\x63\x5f\x73\x74\x61\x72\x74\x5f\x6d\x61\x69\x6e\x00\x61\x62\x6f\x72\x74\x00\x6c\x69\x62\x63\x2e\x73\x6f\x2e\x36\x00\x47\x4c\x49\x42\x43\x5f\x32\x2e\x31\x37\x00\x47\x4c\x49\x42\x43\x5f\x32\x2e\x33\x34\x00\x5f\x49\x54\x4d\x5f\x64\x65\x72\x65\x67\x69\x73\x74\x65\x72\x54\x4d\x43\x6c\x6f\x6e\x65\x54\x61\x62\x6c\x65\x00\x5f\x5f\x67\x6d\x6f\x6e\x5f\x73\x74\x61\x72\x74\x5f\x5f\x00\x5f\x49\x54\x4d\x5f\x72\x65\x67\x69\x73\x74\x65\x72\x54\x4d\x43\x6c\x6f\x6e\x65\x54\x61\x62\x6c\x65\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x01\x00\x03\x00\x01\x00\x03\x00\x01\x00\x01\x00\x02\x00\x28\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x97\x91\x96\x06\x00\x00\x03\x00\x32\x00\x00\x00\x10\x00\x00\x00\xb4\x91\x96\x06\x00\x00\x02\x00\x3d\x00\x00\x00\x00\x00\x00\x00\x90\x0d\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x50\x07\x00\x00\x00\x00\x00\x00\x98\x0d\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\xe0\x0f\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x14\x10\x01\x00\x00\x00\x00\x00\xf0\x0f\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x54\x07\x00\x00\x00\x00\x00\x00\x08\x10\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x08\x10\x01\x00\x00\x00\x00\x00\xd0\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xd8\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe8\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xf8\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xa8\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xb0\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xb8\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xc0\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1f\x20\x03\xd5\xfd\x7b\xbf\xa9\xfd\x03\x00\x91\x34\x00\x00\x94\xfd\x7b\xc1\xa8\xc0\x03\x5f\xd6\xf0\x7b\xbf\xa9\x90\x00\x00\x90\x11\xd2\x47\xf9\x10\x82\x3e\x91\x20\x02\x1f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x90\x00\x00\x90\x11\xd6\x47\xf9\x10\xa2\x3e\x91\x20\x02\x1f\xd6\x90\x00\x00\x90\x11\xda\x47\xf9\x10\xc2\x3e\x91\x20\x02\x1f\xd6\x90\x00\x00\x90\x11\xde\x47\xf9\x10\xe2\x3e\x91\x20\x02\x1f\xd6\x90\x00\x00\x90\x11\xe2\x47\xf9\x10\x02\x3f\x91\x20\x02\x1f\xd6\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1f\x20\x03\xd5\x1d\x00\x80\xd2\x1e\x00\x80\xd2\xe5\x03\x00\xaa\xe1\x03\x40\xf9\xe2\x23\x00\x91\xe6\x03\x00\x91\x80\x00\x00\x90\x00\xf8\x47\xf9\x03\x00\x80\xd2\x04\x00\x80\xd2\xd9\xff\xff\x97\xe4\xff\xff\x97\x80\x00\x00\x90\x00\xf4\x47\xf9\x40\x00\x00\xb4\xdc\xff\xff\x17\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x80\x00\x00\xb0\x00\x40\x00\x91\x81\x00\x00\xb0\x21\x40\x00\x91\x3f\x00\x00\xeb\xc0\x00\x00\x54\x81\x00\x00\x90\x21\xe8\x47\xf9\x61\x00\x00\xb4\xf0\x03\x01\xaa\x00\x02\x1f\xd6\xc0\x03\x5f\xd6\x80\x00\x00\xb0\x00\x40\x00\x91\x81\x00\x00\xb0\x21\x40\x00\x91\x21\x00\x00\xcb\x22\xfc\x7f\xd3\x41\x0c\x81\x8b\x21\xfc\x41\x93\xc1\x00\x00\xb4\x82\x00\x00\x90\x42\xfc\x47\xf9\x62\x00\x00\xb4\xf0\x03\x02\xaa\x00\x02\x1f\xd6\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\xfd\x7b\xbe\xa9\xfd\x03\x00\x91\xf3\x0b\x00\xf9\x93\x00\x00\xb0\x60\x42\x40\x39\x40\x01\x00\x35\x80\x00\x00\x90\x00\xec\x47\xf9\x80\x00\x00\xb4\x80\x00\x00\xb0\x00\x04\x40\xf9\xad\xff\xff\x97\xd8\xff\xff\x97\x20\x00\x80\x52\x60\x42\x00\x39\xf3\x0b\x40\xf9\xfd\x7b\xc2\xa8\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\xdc\xff\xff\x17\x80\x00\x00\x90\x00\xf0\x47\xf9\x81\x02\x80\x52\x01\x00\x00\xb9\x00\x00\x80\x52\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\xfd\x7b\xbf\xa9\xfd\x03\x00\x91\xfd\x7b\xc1\xa8\xc0\x03\x5f\xd6\x01\x00\x02\x00\x01\x1b\x03\x3b\x38\x00\x00\x00\x06\x00\x00\x00\xbc\xfe\xff\xff\x50\x00\x00\x00\x0c\xff\xff\xff\x64\x00\x00\x00\x3c\xff\xff\xff\x78\x00\x00\x00\x7c\xff\xff\xff\x8c\x00\x00\x00\xcc\xff\xff\xff\xb0\x00\x00\x00\xd0\xff\xff\xff\xc4\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x01\x7a\x52\x00\x04\x78\x1e\x01\x1b\x0c\x1f\x00\x10\x00\x00\x00\x18\x00\x00\x00\x64\xfe\xff\xff\x34\x00\x00\x00\x00\x41\x07\x1e\x10\x00\x00\x00\x2c\x00\x00\x00\xa0\xfe\xff\xff\x30\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x40\x00\x00\x00\xbc\xfe\xff\xff\x3c\x00\x00\x00\x00\x00\x00\x00\x20\x00\x00\x00\x54\x00\x00\x00\xe8\xfe\xff\xff\x48\x00\x00\x00\x00\x41\x0e\x20\x9d\x04\x9e\x03\x42\x93\x02\x4e\xde\xdd\xd3\x0e\x00\x00\x00\x00\x10\x00\x00\x00\x78\x00\x00\x00\x14\xff\xff\xff"), -Section(".comment", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x40\x06\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xa8\x1b\x00"), -Section(".interp", 0x238, "\x2f\x6c\x69\x62\x2f\x6c\x64\x2d\x6c\x69\x6e\x75\x78\x2d\x61\x61\x72\x63\x68\x36\x34\x2e\x73\x6f\x2e\x31\x00"), -Section(".note.gnu.build-id", 0x254, "\x04\x00\x00\x00\x14\x00\x00\x00\x03\x00\x00\x00\x47\x4e\x55\x00\x23\x3d\x4d\x78\x78\x17\x7e\x4c\xac\x1c\x00\x4c\x70\x3b\xdb\x93\xc0\x80\xa5\x46"), -Section(".note.ABI-tag", 0x278, "\x04\x00\x00\x00\x10\x00\x00\x00\x01\x00\x00\x00\x47\x4e\x55\x00\x00\x00\x00\x00\x03\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00"), -Section(".gnu.hash", 0x298, "\x01\x00\x00\x00\x01\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".dynsym", 0x2B8, "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x0b\x00\x98\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x16\x00\x00\x10\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x48\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x22\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x22\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x73\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".dynstr", 0x390, "\x00\x5f\x5f\x63\x78\x61\x5f\x66\x69\x6e\x61\x6c\x69\x7a\x65\x00\x5f\x5f\x6c\x69\x62\x63\x5f\x73\x74\x61\x72\x74\x5f\x6d\x61\x69\x6e\x00\x61\x62\x6f\x72\x74\x00\x6c\x69\x62\x63\x2e\x73\x6f\x2e\x36\x00\x47\x4c\x49\x42\x43\x5f\x32\x2e\x31\x37\x00\x47\x4c\x49\x42\x43\x5f\x32\x2e\x33\x34\x00\x5f\x49\x54\x4d\x5f\x64\x65\x72\x65\x67\x69\x73\x74\x65\x72\x54\x4d\x43\x6c\x6f\x6e\x65\x54\x61\x62\x6c\x65\x00\x5f\x5f\x67\x6d\x6f\x6e\x5f\x73\x74\x61\x72\x74\x5f\x5f\x00\x5f\x49\x54\x4d\x5f\x72\x65\x67\x69\x73\x74\x65\x72\x54\x4d\x43\x6c\x6f\x6e\x65\x54\x61\x62\x6c\x65\x00"), -Section(".gnu.version", 0x41E, "\x00\x00\x00\x00\x00\x00\x02\x00\x01\x00\x03\x00\x01\x00\x03\x00\x01\x00"), -Section(".gnu.version_r", 0x430, "\x01\x00\x02\x00\x28\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x97\x91\x96\x06\x00\x00\x03\x00\x32\x00\x00\x00\x10\x00\x00\x00\xb4\x91\x96\x06\x00\x00\x02\x00\x3d\x00\x00\x00\x00\x00\x00\x00"), -Section(".rela.dyn", 0x460, "\x90\x0d\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x50\x07\x00\x00\x00\x00\x00\x00\x98\x0d\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\xe0\x0f\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x14\x10\x01\x00\x00\x00\x00\x00\xf0\x0f\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x54\x07\x00\x00\x00\x00\x00\x00\x08\x10\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x08\x10\x01\x00\x00\x00\x00\x00\xd0\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xd8\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe8\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xf8\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".rela.plt", 0x538, "\xa8\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xb0\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xb8\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xc0\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".init", 0x598, "\x1f\x20\x03\xd5\xfd\x7b\xbf\xa9\xfd\x03\x00\x91\x34\x00\x00\x94\xfd\x7b\xc1\xa8\xc0\x03\x5f\xd6"), -Section(".plt", 0x5B0, "\xf0\x7b\xbf\xa9\x90\x00\x00\x90\x11\xd2\x47\xf9\x10\x82\x3e\x91\x20\x02\x1f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x90\x00\x00\x90\x11\xd6\x47\xf9\x10\xa2\x3e\x91\x20\x02\x1f\xd6\x90\x00\x00\x90\x11\xda\x47\xf9\x10\xc2\x3e\x91\x20\x02\x1f\xd6\x90\x00\x00\x90\x11\xde\x47\xf9\x10\xe2\x3e\x91\x20\x02\x1f\xd6\x90\x00\x00\x90\x11\xe2\x47\xf9\x10\x02\x3f\x91\x20\x02\x1f\xd6"), -Section(".fini", 0x76C, "\x1f\x20\x03\xd5\xfd\x7b\xbf\xa9\xfd\x03\x00\x91\xfd\x7b\xc1\xa8\xc0\x03\x5f\xd6"), -Section(".rodata", 0x780, "\x01\x00\x02\x00"), -Section(".eh_frame_hdr", 0x784, "\x01\x1b\x03\x3b\x38\x00\x00\x00\x06\x00\x00\x00\xbc\xfe\xff\xff\x50\x00\x00\x00\x0c\xff\xff\xff\x64\x00\x00\x00\x3c\xff\xff\xff\x78\x00\x00\x00\x7c\xff\xff\xff\x8c\x00\x00\x00\xcc\xff\xff\xff\xb0\x00\x00\x00\xd0\xff\xff\xff\xc4\x00\x00\x00"), -Section(".eh_frame", 0x7C0, "\x10\x00\x00\x00\x00\x00\x00\x00\x01\x7a\x52\x00\x04\x78\x1e\x01\x1b\x0c\x1f\x00\x10\x00\x00\x00\x18\x00\x00\x00\x64\xfe\xff\xff\x34\x00\x00\x00\x00\x41\x07\x1e\x10\x00\x00\x00\x2c\x00\x00\x00\xa0\xfe\xff\xff\x30\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x40\x00\x00\x00\xbc\xfe\xff\xff\x3c\x00\x00\x00\x00\x00\x00\x00\x20\x00\x00\x00\x54\x00\x00\x00\xe8\xfe\xff\xff\x48\x00\x00\x00\x00\x41\x0e\x20\x9d\x04\x9e\x03\x42\x93\x02\x4e\xde\xdd\xd3\x0e\x00\x00\x00\x00\x10\x00\x00\x00\x78\x00\x00\x00\x14\xff\xff\xff\x04\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x8c\x00\x00\x00\x04\xff\xff\xff\x18\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".fini_array", 0x10D98, "\x00\x07\x00\x00\x00\x00\x00\x00"), -Section(".dynamic", 0x10DA0, "\x01\x00\x00\x00\x00\x00\x00\x00\x28\x00\x00\x00\x00\x00\x00\x00\x0c\x00\x00\x00\x00\x00\x00\x00\x98\x05\x00\x00\x00\x00\x00\x00\x0d\x00\x00\x00\x00\x00\x00\x00\x6c\x07\x00\x00\x00\x00\x00\x00\x19\x00\x00\x00\x00\x00\x00\x00\x90\x0d\x01\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x1a\x00\x00\x00\x00\x00\x00\x00\x98\x0d\x01\x00\x00\x00\x00\x00\x1c\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\xf5\xfe\xff\x6f\x00\x00\x00\x00\x98\x02\x00\x00\x00\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x90\x03\x00\x00\x00\x00\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\xb8\x02\x00\x00\x00\x00\x00\x00\x0a\x00\x00\x00\x00\x00\x00\x00\x8d\x00\x00\x00\x00\x00\x00\x00\x0b\x00\x00\x00\x00\x00\x00\x00\x18\x00\x00\x00\x00\x00\x00\x00\x15\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x90\x0f\x01\x00\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x60\x00\x00\x00\x00\x00\x00\x00\x14\x00\x00\x00\x00\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x17\x00\x00\x00\x00\x00\x00\x00\x38\x05\x00\x00\x00\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x60\x04\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\xd8\x00\x00\x00\x00\x00\x00\x00\x09\x00\x00\x00\x00\x00\x00\x00\x18\x00\x00\x00\x00\x00\x00\x00\x1e\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\xfb\xff\xff\x6f\x00\x00\x00\x00\x01\x00\x00\x08\x00\x00\x00\x00\xfe\xff\xff\x6f\x00\x00\x00\x00\x30\x04\x00\x00\x00\x00\x00\x00\xff\xff\xff\x6f\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\xf0\xff\xff\x6f\x00\x00\x00\x00\x1e\x04\x00\x00\x00\x00\x00\x00\xf9\xff\xff\x6f\x00\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".got", 0x10F90, "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xb0\x05\x00\x00\x00\x00\x00\x00\xb0\x05\x00\x00\x00\x00\x00\x00\xb0\x05\x00\x00\x00\x00\x00\x00\xb0\x05\x00\x00\x00\x00\x00\x00\xa0\x0d\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x14\x10\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x54\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".data", 0x11000, "\x00\x00\x00\x00\x00\x00\x00\x00\x08\x10\x01\x00\x00\x00\x00\x00"), -Section(".init_array", 0x10D90, "\x50\x07\x00\x00\x00\x00\x00\x00"), -Section(".text", 0x640, "\x1f\x20\x03\xd5\x1d\x00\x80\xd2\x1e\x00\x80\xd2\xe5\x03\x00\xaa\xe1\x03\x40\xf9\xe2\x23\x00\x91\xe6\x03\x00\x91\x80\x00\x00\x90\x00\xf8\x47\xf9\x03\x00\x80\xd2\x04\x00\x80\xd2\xd9\xff\xff\x97\xe4\xff\xff\x97\x80\x00\x00\x90\x00\xf4\x47\xf9\x40\x00\x00\xb4\xdc\xff\xff\x17\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x80\x00\x00\xb0\x00\x40\x00\x91\x81\x00\x00\xb0\x21\x40\x00\x91\x3f\x00\x00\xeb\xc0\x00\x00\x54\x81\x00\x00\x90\x21\xe8\x47\xf9\x61\x00\x00\xb4\xf0\x03\x01\xaa\x00\x02\x1f\xd6\xc0\x03\x5f\xd6\x80\x00\x00\xb0\x00\x40\x00\x91\x81\x00\x00\xb0\x21\x40\x00\x91\x21\x00\x00\xcb\x22\xfc\x7f\xd3\x41\x0c\x81\x8b\x21\xfc\x41\x93\xc1\x00\x00\xb4\x82\x00\x00\x90\x42\xfc\x47\xf9\x62\x00\x00\xb4\xf0\x03\x02\xaa\x00\x02\x1f\xd6\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\xfd\x7b\xbe\xa9\xfd\x03\x00\x91\xf3\x0b\x00\xf9\x93\x00\x00\xb0\x60\x42\x40\x39\x40\x01\x00\x35\x80\x00\x00\x90\x00\xec\x47\xf9\x80\x00\x00\xb4\x80\x00\x00\xb0\x00\x04\x40\xf9\xad\xff\xff\x97\xd8\xff\xff\x97\x20\x00\x80\x52\x60\x42\x00\x39\xf3\x0b\x40\xf9\xfd\x7b\xc2\xa8\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\xdc\xff\xff\x17\x80\x00\x00\x90\x00\xf0\x47\xf9\x81\x02\x80\x52\x01\x00\x00\xb9\x00\x00\x80\x52\xc0\x03\x5f\xd6")]), -Memmap([Annotation(Region(0x0,0x85F), Attr("segment","02 0 2144")), -Annotation(Region(0x640,0x673), Attr("symbol","\"_start\"")), -Annotation(Region(0x0,0xF9), Attr("section","\".shstrtab\"")), -Annotation(Region(0x0,0x228), Attr("section","\".strtab\"")), -Annotation(Region(0x0,0x83F), Attr("section","\".symtab\"")), -Annotation(Region(0x0,0x2A), Attr("section","\".comment\"")), -Annotation(Region(0x238,0x252), Attr("section","\".interp\"")), -Annotation(Region(0x254,0x277), Attr("section","\".note.gnu.build-id\"")), -Annotation(Region(0x278,0x297), Attr("section","\".note.ABI-tag\"")), -Annotation(Region(0x298,0x2B3), Attr("section","\".gnu.hash\"")), -Annotation(Region(0x2B8,0x38F), Attr("section","\".dynsym\"")), -Annotation(Region(0x390,0x41C), Attr("section","\".dynstr\"")), -Annotation(Region(0x41E,0x42F), Attr("section","\".gnu.version\"")), -Annotation(Region(0x430,0x45F), Attr("section","\".gnu.version_r\"")), -Annotation(Region(0x460,0x537), Attr("section","\".rela.dyn\"")), -Annotation(Region(0x538,0x597), Attr("section","\".rela.plt\"")), -Annotation(Region(0x598,0x5AF), Attr("section","\".init\"")), -Annotation(Region(0x5B0,0x60F), Attr("section","\".plt\"")), -Annotation(Region(0x598,0x5AF), Attr("code-region","()")), -Annotation(Region(0x5B0,0x60F), Attr("code-region","()")), -Annotation(Region(0x640,0x673), Attr("symbol-info","_start 0x640 52")), -Annotation(Region(0x674,0x687), Attr("symbol","\"call_weak_fn\"")), -Annotation(Region(0x674,0x687), Attr("symbol-info","call_weak_fn 0x674 20")), -Annotation(Region(0x754,0x76B), Attr("symbol","\"main\"")), -Annotation(Region(0x754,0x76B), Attr("symbol-info","main 0x754 24")), -Annotation(Region(0x76C,0x77F), Attr("section","\".fini\"")), -Annotation(Region(0x780,0x783), Attr("section","\".rodata\"")), -Annotation(Region(0x784,0x7BF), Attr("section","\".eh_frame_hdr\"")), -Annotation(Region(0x7C0,0x85F), Attr("section","\".eh_frame\"")), -Annotation(Region(0x10D90,0x1100F), Attr("segment","03 0x10D90 648")), -Annotation(Region(0x10D98,0x10D9F), Attr("section","\".fini_array\"")), -Annotation(Region(0x10DA0,0x10F8F), Attr("section","\".dynamic\"")), -Annotation(Region(0x10F90,0x10FFF), Attr("section","\".got\"")), -Annotation(Region(0x11000,0x1100F), Attr("section","\".data\"")), -Annotation(Region(0x10D90,0x10D97), Attr("section","\".init_array\"")), -Annotation(Region(0x640,0x76B), Attr("section","\".text\"")), -Annotation(Region(0x640,0x76B), Attr("code-region","()")), -Annotation(Region(0x76C,0x77F), Attr("code-region","()"))]), -Program(Tid(1_348, "%00000544"), Attrs([]), - Subs([Sub(Tid(1_298, "@__cxa_finalize"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x5E0"), -Attr("stub","()")]), "__cxa_finalize", Args([Arg(Tid(1_349, "%00000545"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("__cxa_finalize_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(796, "@__cxa_finalize"), - Attrs([Attr("address","0x5E0")]), Phis([]), -Defs([Def(Tid(1_044, "%00000414"), Attrs([Attr("address","0x5E0"), -Attr("insn","adrp x16, #65536")]), Var("R16",Imm(64)), Int(65536,64)), -Def(Tid(1_051, "%0000041b"), Attrs([Attr("address","0x5E4"), -Attr("insn","ldr x17, [x16, #0xfb0]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(4016,64)),LittleEndian(),64)), -Def(Tid(1_057, "%00000421"), Attrs([Attr("address","0x5E8"), -Attr("insn","add x16, x16, #0xfb0")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(4016,64)))]), Jmps([Call(Tid(1_062, "%00000426"), - Attrs([Attr("address","0x5EC"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), -Sub(Tid(1_299, "@__do_global_dtors_aux"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x700")]), - "__do_global_dtors_aux", Args([Arg(Tid(1_350, "%00000546"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("__do_global_dtors_aux_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(614, "@__do_global_dtors_aux"), - Attrs([Attr("address","0x700")]), Phis([]), Defs([Def(Tid(618, "%0000026a"), - Attrs([Attr("address","0x700"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("#3",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(18446744073709551584,64))), -Def(Tid(624, "%00000270"), Attrs([Attr("address","0x700"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("#3",Imm(64)),Var("R29",Imm(64)),LittleEndian(),64)), -Def(Tid(630, "%00000276"), Attrs([Attr("address","0x700"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("#3",Imm(64)),Int(8,64)),Var("R30",Imm(64)),LittleEndian(),64)), -Def(Tid(634, "%0000027a"), Attrs([Attr("address","0x700"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("R31",Imm(64)), -Var("#3",Imm(64))), Def(Tid(640, "%00000280"), - Attrs([Attr("address","0x704"), Attr("insn","mov x29, sp")]), - Var("R29",Imm(64)), Var("R31",Imm(64))), Def(Tid(648, "%00000288"), - Attrs([Attr("address","0x708"), Attr("insn","str x19, [sp, #0x10]")]), - Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(16,64)),Var("R19",Imm(64)),LittleEndian(),64)), -Def(Tid(653, "%0000028d"), Attrs([Attr("address","0x70C"), -Attr("insn","adrp x19, #69632")]), Var("R19",Imm(64)), Int(69632,64)), -Def(Tid(660, "%00000294"), Attrs([Attr("address","0x710"), -Attr("insn","ldrb w0, [x19, #0x10]")]), Var("R0",Imm(64)), -UNSIGNED(64,Load(Var("mem",Mem(64,8)),PLUS(Var("R19",Imm(64)),Int(16,64)),LittleEndian(),8)))]), -Jmps([Goto(Tid(667, "%0000029b"), Attrs([Attr("address","0x714"), -Attr("insn","cbnz w0, #0x28")]), - NEQ(Extract(31,0,Var("R0",Imm(64))),Int(0,32)), -Direct(Tid(665, "%00000299"))), Goto(Tid(1_338, "%0000053a"), Attrs([]), - Int(1,1), Direct(Tid(741, "%000002e5")))])), Blk(Tid(741, "%000002e5"), - Attrs([Attr("address","0x718")]), Phis([]), Defs([Def(Tid(744, "%000002e8"), - Attrs([Attr("address","0x718"), Attr("insn","adrp x0, #65536")]), - Var("R0",Imm(64)), Int(65536,64)), Def(Tid(751, "%000002ef"), - Attrs([Attr("address","0x71C"), Attr("insn","ldr x0, [x0, #0xfd8]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(4056,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(757, "%000002f5"), Attrs([Attr("address","0x720"), -Attr("insn","cbz x0, #0x10")]), EQ(Var("R0",Imm(64)),Int(0,64)), -Direct(Tid(755, "%000002f3"))), Goto(Tid(1_339, "%0000053b"), Attrs([]), - Int(1,1), Direct(Tid(780, "%0000030c")))])), Blk(Tid(780, "%0000030c"), - Attrs([Attr("address","0x724")]), Phis([]), Defs([Def(Tid(783, "%0000030f"), - Attrs([Attr("address","0x724"), Attr("insn","adrp x0, #69632")]), - Var("R0",Imm(64)), Int(69632,64)), Def(Tid(790, "%00000316"), - Attrs([Attr("address","0x728"), Attr("insn","ldr x0, [x0, #0x8]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(795, "%0000031b"), Attrs([Attr("address","0x72C"), -Attr("insn","bl #-0x14c")]), Var("R30",Imm(64)), Int(1840,64))]), -Jmps([Call(Tid(798, "%0000031e"), Attrs([Attr("address","0x72C"), -Attr("insn","bl #-0x14c")]), Int(1,1), -(Direct(Tid(1_298, "@__cxa_finalize")),Direct(Tid(755, "%000002f3"))))])), -Blk(Tid(755, "%000002f3"), Attrs([Attr("address","0x730")]), Phis([]), -Defs([Def(Tid(763, "%000002fb"), Attrs([Attr("address","0x730"), -Attr("insn","bl #-0xa0")]), Var("R30",Imm(64)), Int(1844,64))]), -Jmps([Call(Tid(765, "%000002fd"), Attrs([Attr("address","0x730"), -Attr("insn","bl #-0xa0")]), Int(1,1), -(Direct(Tid(1_312, "@deregister_tm_clones")),Direct(Tid(767, "%000002ff"))))])), -Blk(Tid(767, "%000002ff"), Attrs([Attr("address","0x734")]), Phis([]), -Defs([Def(Tid(770, "%00000302"), Attrs([Attr("address","0x734"), -Attr("insn","mov w0, #0x1")]), Var("R0",Imm(64)), Int(1,64)), -Def(Tid(778, "%0000030a"), Attrs([Attr("address","0x738"), -Attr("insn","strb w0, [x19, #0x10]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R19",Imm(64)),Int(16,64)),Extract(7,0,Var("R0",Imm(64))),LittleEndian(),8))]), -Jmps([Goto(Tid(1_340, "%0000053c"), Attrs([]), Int(1,1), -Direct(Tid(665, "%00000299")))])), Blk(Tid(665, "%00000299"), - Attrs([Attr("address","0x73C")]), Phis([]), Defs([Def(Tid(675, "%000002a3"), - Attrs([Attr("address","0x73C"), Attr("insn","ldr x19, [sp, #0x10]")]), - Var("R19",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(16,64)),LittleEndian(),64)), -Def(Tid(682, "%000002aa"), Attrs([Attr("address","0x740"), -Attr("insn","ldp x29, x30, [sp], #0x20")]), Var("R29",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(687, "%000002af"), Attrs([Attr("address","0x740"), -Attr("insn","ldp x29, x30, [sp], #0x20")]), Var("R30",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(691, "%000002b3"), Attrs([Attr("address","0x740"), -Attr("insn","ldp x29, x30, [sp], #0x20")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(32,64)))]), Jmps([Call(Tid(696, "%000002b8"), - Attrs([Attr("address","0x744"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), Sub(Tid(1_303, "@__libc_start_main"), - Attrs([Attr("c.proto","signed (*)(signed (*)(signed , char** , char** );* main, signed , char** , \nvoid* auxv)"), -Attr("address","0x5D0"), Attr("stub","()")]), "__libc_start_main", - Args([Arg(Tid(1_351, "%00000547"), - Attrs([Attr("c.layout","**[ : 64]"), -Attr("c.data","Top:u64 ptr ptr"), -Attr("c.type","signed (*)(signed , char** , char** );*")]), - Var("__libc_start_main_main",Imm(64)), Var("R0",Imm(64)), In()), -Arg(Tid(1_352, "%00000548"), Attrs([Attr("c.layout","[signed : 32]"), -Attr("c.data","Top:u32"), Attr("c.type","signed")]), - Var("__libc_start_main_arg2",Imm(32)), LOW(32,Var("R1",Imm(64))), In()), -Arg(Tid(1_353, "%00000549"), Attrs([Attr("c.layout","**[char : 8]"), -Attr("c.data","Top:u8 ptr ptr"), Attr("c.type","char**")]), - Var("__libc_start_main_arg3",Imm(64)), Var("R2",Imm(64)), Both()), -Arg(Tid(1_354, "%0000054a"), Attrs([Attr("c.layout","*[ : 8]"), -Attr("c.data","{} ptr"), Attr("c.type","void*")]), - Var("__libc_start_main_auxv",Imm(64)), Var("R3",Imm(64)), Both()), -Arg(Tid(1_355, "%0000054b"), Attrs([Attr("c.layout","[signed : 32]"), -Attr("c.data","Top:u32"), Attr("c.type","signed")]), - Var("__libc_start_main_result",Imm(32)), LOW(32,Var("R0",Imm(64))), -Out())]), Blks([Blk(Tid(447, "@__libc_start_main"), - Attrs([Attr("address","0x5D0")]), Phis([]), -Defs([Def(Tid(1_022, "%000003fe"), Attrs([Attr("address","0x5D0"), -Attr("insn","adrp x16, #65536")]), Var("R16",Imm(64)), Int(65536,64)), -Def(Tid(1_029, "%00000405"), Attrs([Attr("address","0x5D4"), -Attr("insn","ldr x17, [x16, #0xfa8]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(4008,64)),LittleEndian(),64)), -Def(Tid(1_035, "%0000040b"), Attrs([Attr("address","0x5D8"), -Attr("insn","add x16, x16, #0xfa8")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(4008,64)))]), Jmps([Call(Tid(1_040, "%00000410"), - Attrs([Attr("address","0x5DC"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), Sub(Tid(1_304, "@_fini"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x76C")]), - "_fini", Args([Arg(Tid(1_356, "%0000054c"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("_fini_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(31, "@_fini"), - Attrs([Attr("address","0x76C")]), Phis([]), Defs([Def(Tid(37, "%00000025"), - Attrs([Attr("address","0x770"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("#0",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(18446744073709551600,64))), -Def(Tid(43, "%0000002b"), Attrs([Attr("address","0x770"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("#0",Imm(64)),Var("R29",Imm(64)),LittleEndian(),64)), -Def(Tid(49, "%00000031"), Attrs([Attr("address","0x770"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("#0",Imm(64)),Int(8,64)),Var("R30",Imm(64)),LittleEndian(),64)), -Def(Tid(53, "%00000035"), Attrs([Attr("address","0x770"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("R31",Imm(64)), -Var("#0",Imm(64))), Def(Tid(59, "%0000003b"), Attrs([Attr("address","0x774"), -Attr("insn","mov x29, sp")]), Var("R29",Imm(64)), Var("R31",Imm(64))), -Def(Tid(66, "%00000042"), Attrs([Attr("address","0x778"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R29",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(71, "%00000047"), Attrs([Attr("address","0x778"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R30",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(75, "%0000004b"), Attrs([Attr("address","0x778"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(16,64)))]), Jmps([Call(Tid(80, "%00000050"), - Attrs([Attr("address","0x77C"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), Sub(Tid(1_305, "@_init"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x598")]), - "_init", Args([Arg(Tid(1_357, "%0000054d"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("_init_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(1_134, "@_init"), - Attrs([Attr("address","0x598")]), Phis([]), -Defs([Def(Tid(1_140, "%00000474"), Attrs([Attr("address","0x59C"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("#5",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(18446744073709551600,64))), -Def(Tid(1_146, "%0000047a"), Attrs([Attr("address","0x59C"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("#5",Imm(64)),Var("R29",Imm(64)),LittleEndian(),64)), -Def(Tid(1_152, "%00000480"), Attrs([Attr("address","0x59C"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("#5",Imm(64)),Int(8,64)),Var("R30",Imm(64)),LittleEndian(),64)), -Def(Tid(1_156, "%00000484"), Attrs([Attr("address","0x59C"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("R31",Imm(64)), -Var("#5",Imm(64))), Def(Tid(1_162, "%0000048a"), - Attrs([Attr("address","0x5A0"), Attr("insn","mov x29, sp")]), - Var("R29",Imm(64)), Var("R31",Imm(64))), Def(Tid(1_167, "%0000048f"), - Attrs([Attr("address","0x5A4"), Attr("insn","bl #0xd0")]), - Var("R30",Imm(64)), Int(1448,64))]), Jmps([Call(Tid(1_169, "%00000491"), - Attrs([Attr("address","0x5A4"), Attr("insn","bl #0xd0")]), Int(1,1), -(Direct(Tid(1_310, "@call_weak_fn")),Direct(Tid(1_171, "%00000493"))))])), -Blk(Tid(1_171, "%00000493"), Attrs([Attr("address","0x5A8")]), Phis([]), -Defs([Def(Tid(1_176, "%00000498"), Attrs([Attr("address","0x5A8"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R29",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(1_181, "%0000049d"), Attrs([Attr("address","0x5A8"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R30",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(1_185, "%000004a1"), Attrs([Attr("address","0x5A8"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(16,64)))]), Jmps([Call(Tid(1_190, "%000004a6"), - Attrs([Attr("address","0x5AC"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), Sub(Tid(1_306, "@_start"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x640"), -Attr("entry-point","()")]), "_start", Args([Arg(Tid(1_358, "%0000054e"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("_start_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(384, "@_start"), - Attrs([Attr("address","0x640")]), Phis([]), Defs([Def(Tid(389, "%00000185"), - Attrs([Attr("address","0x644"), Attr("insn","mov x29, #0x0")]), - Var("R29",Imm(64)), Int(0,64)), Def(Tid(394, "%0000018a"), - Attrs([Attr("address","0x648"), Attr("insn","mov x30, #0x0")]), - Var("R30",Imm(64)), Int(0,64)), Def(Tid(400, "%00000190"), - Attrs([Attr("address","0x64C"), Attr("insn","mov x5, x0")]), - Var("R5",Imm(64)), Var("R0",Imm(64))), Def(Tid(407, "%00000197"), - Attrs([Attr("address","0x650"), Attr("insn","ldr x1, [sp]")]), - Var("R1",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(413, "%0000019d"), Attrs([Attr("address","0x654"), -Attr("insn","add x2, sp, #0x8")]), Var("R2",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(8,64))), Def(Tid(419, "%000001a3"), - Attrs([Attr("address","0x658"), Attr("insn","mov x6, sp")]), - Var("R6",Imm(64)), Var("R31",Imm(64))), Def(Tid(424, "%000001a8"), - Attrs([Attr("address","0x65C"), Attr("insn","adrp x0, #65536")]), - Var("R0",Imm(64)), Int(65536,64)), Def(Tid(431, "%000001af"), - Attrs([Attr("address","0x660"), Attr("insn","ldr x0, [x0, #0xff0]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(4080,64)),LittleEndian(),64)), -Def(Tid(436, "%000001b4"), Attrs([Attr("address","0x664"), -Attr("insn","mov x3, #0x0")]), Var("R3",Imm(64)), Int(0,64)), -Def(Tid(441, "%000001b9"), Attrs([Attr("address","0x668"), -Attr("insn","mov x4, #0x0")]), Var("R4",Imm(64)), Int(0,64)), -Def(Tid(446, "%000001be"), Attrs([Attr("address","0x66C"), -Attr("insn","bl #-0x9c")]), Var("R30",Imm(64)), Int(1648,64))]), -Jmps([Call(Tid(449, "%000001c1"), Attrs([Attr("address","0x66C"), -Attr("insn","bl #-0x9c")]), Int(1,1), -(Direct(Tid(1_303, "@__libc_start_main")),Direct(Tid(451, "%000001c3"))))])), -Blk(Tid(451, "%000001c3"), Attrs([Attr("address","0x670")]), Phis([]), -Defs([Def(Tid(454, "%000001c6"), Attrs([Attr("address","0x670"), -Attr("insn","bl #-0x70")]), Var("R30",Imm(64)), Int(1652,64))]), -Jmps([Call(Tid(457, "%000001c9"), Attrs([Attr("address","0x670"), -Attr("insn","bl #-0x70")]), Int(1,1), -(Direct(Tid(1_309, "@abort")),Direct(Tid(1_341, "%0000053d"))))])), -Blk(Tid(1_341, "%0000053d"), Attrs([]), Phis([]), Defs([]), -Jmps([Call(Tid(1_342, "%0000053e"), Attrs([]), Int(1,1), -(Direct(Tid(1_310, "@call_weak_fn")),))]))])), Sub(Tid(1_309, "@abort"), - Attrs([Attr("noreturn","()"), Attr("c.proto","void (*)(void)"), -Attr("address","0x600"), Attr("stub","()")]), "abort", Args([]), -Blks([Blk(Tid(455, "@abort"), Attrs([Attr("address","0x600")]), Phis([]), -Defs([Def(Tid(1_088, "%00000440"), Attrs([Attr("address","0x600"), -Attr("insn","adrp x16, #65536")]), Var("R16",Imm(64)), Int(65536,64)), -Def(Tid(1_095, "%00000447"), Attrs([Attr("address","0x604"), -Attr("insn","ldr x17, [x16, #0xfc0]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(4032,64)),LittleEndian(),64)), -Def(Tid(1_101, "%0000044d"), Attrs([Attr("address","0x608"), -Attr("insn","add x16, x16, #0xfc0")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(4032,64)))]), Jmps([Call(Tid(1_106, "%00000452"), - Attrs([Attr("address","0x60C"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), Sub(Tid(1_310, "@call_weak_fn"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x674")]), - "call_weak_fn", Args([Arg(Tid(1_359, "%0000054f"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("call_weak_fn_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(459, "@call_weak_fn"), - Attrs([Attr("address","0x674")]), Phis([]), Defs([Def(Tid(462, "%000001ce"), - Attrs([Attr("address","0x674"), Attr("insn","adrp x0, #65536")]), - Var("R0",Imm(64)), Int(65536,64)), Def(Tid(469, "%000001d5"), - Attrs([Attr("address","0x678"), Attr("insn","ldr x0, [x0, #0xfe8]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(4072,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(475, "%000001db"), Attrs([Attr("address","0x67C"), -Attr("insn","cbz x0, #0x8")]), EQ(Var("R0",Imm(64)),Int(0,64)), -Direct(Tid(473, "%000001d9"))), Goto(Tid(1_343, "%0000053f"), Attrs([]), - Int(1,1), Direct(Tid(860, "%0000035c")))])), Blk(Tid(473, "%000001d9"), - Attrs([Attr("address","0x684")]), Phis([]), Defs([]), -Jmps([Call(Tid(481, "%000001e1"), Attrs([Attr("address","0x684"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))])), -Blk(Tid(860, "%0000035c"), Attrs([Attr("address","0x680")]), Phis([]), -Defs([]), Jmps([Goto(Tid(863, "%0000035f"), Attrs([Attr("address","0x680"), -Attr("insn","b #-0x90")]), Int(1,1), Direct(Tid(861, "@__gmon_start__")))])), -Blk(Tid(861, "@__gmon_start__"), Attrs([Attr("address","0x5F0")]), Phis([]), -Defs([Def(Tid(1_066, "%0000042a"), Attrs([Attr("address","0x5F0"), -Attr("insn","adrp x16, #65536")]), Var("R16",Imm(64)), Int(65536,64)), -Def(Tid(1_073, "%00000431"), Attrs([Attr("address","0x5F4"), -Attr("insn","ldr x17, [x16, #0xfb8]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(4024,64)),LittleEndian(),64)), -Def(Tid(1_079, "%00000437"), Attrs([Attr("address","0x5F8"), -Attr("insn","add x16, x16, #0xfb8")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(4024,64)))]), Jmps([Call(Tid(1_084, "%0000043c"), - Attrs([Attr("address","0x5FC"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), -Sub(Tid(1_312, "@deregister_tm_clones"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x690")]), - "deregister_tm_clones", Args([Arg(Tid(1_360, "%00000550"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("deregister_tm_clones_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(487, "@deregister_tm_clones"), - Attrs([Attr("address","0x690")]), Phis([]), Defs([Def(Tid(490, "%000001ea"), - Attrs([Attr("address","0x690"), Attr("insn","adrp x0, #69632")]), - Var("R0",Imm(64)), Int(69632,64)), Def(Tid(496, "%000001f0"), - Attrs([Attr("address","0x694"), Attr("insn","add x0, x0, #0x10")]), - Var("R0",Imm(64)), PLUS(Var("R0",Imm(64)),Int(16,64))), -Def(Tid(501, "%000001f5"), Attrs([Attr("address","0x698"), -Attr("insn","adrp x1, #69632")]), Var("R1",Imm(64)), Int(69632,64)), -Def(Tid(507, "%000001fb"), Attrs([Attr("address","0x69C"), -Attr("insn","add x1, x1, #0x10")]), Var("R1",Imm(64)), -PLUS(Var("R1",Imm(64)),Int(16,64))), Def(Tid(513, "%00000201"), - Attrs([Attr("address","0x6A0"), Attr("insn","cmp x1, x0")]), - Var("#1",Imm(64)), NOT(Var("R0",Imm(64)))), Def(Tid(518, "%00000206"), - Attrs([Attr("address","0x6A0"), Attr("insn","cmp x1, x0")]), - Var("#2",Imm(64)), PLUS(Var("R1",Imm(64)),NOT(Var("R0",Imm(64))))), -Def(Tid(524, "%0000020c"), Attrs([Attr("address","0x6A0"), -Attr("insn","cmp x1, x0")]), Var("VF",Imm(1)), -NEQ(SIGNED(65,PLUS(Var("#2",Imm(64)),Int(1,64))),PLUS(PLUS(SIGNED(65,Var("R1",Imm(64))),SIGNED(65,Var("#1",Imm(64)))),Int(1,65)))), -Def(Tid(530, "%00000212"), Attrs([Attr("address","0x6A0"), -Attr("insn","cmp x1, x0")]), Var("CF",Imm(1)), -NEQ(UNSIGNED(65,PLUS(Var("#2",Imm(64)),Int(1,64))),PLUS(PLUS(UNSIGNED(65,Var("R1",Imm(64))),UNSIGNED(65,Var("#1",Imm(64)))),Int(1,65)))), -Def(Tid(534, "%00000216"), Attrs([Attr("address","0x6A0"), -Attr("insn","cmp x1, x0")]), Var("ZF",Imm(1)), -EQ(PLUS(Var("#2",Imm(64)),Int(1,64)),Int(0,64))), Def(Tid(538, "%0000021a"), - Attrs([Attr("address","0x6A0"), Attr("insn","cmp x1, x0")]), - Var("NF",Imm(1)), Extract(63,63,PLUS(Var("#2",Imm(64)),Int(1,64))))]), -Jmps([Goto(Tid(544, "%00000220"), Attrs([Attr("address","0x6A4"), -Attr("insn","b.eq #0x18")]), EQ(Var("ZF",Imm(1)),Int(1,1)), -Direct(Tid(542, "%0000021e"))), Goto(Tid(1_344, "%00000540"), Attrs([]), - Int(1,1), Direct(Tid(830, "%0000033e")))])), Blk(Tid(830, "%0000033e"), - Attrs([Attr("address","0x6A8")]), Phis([]), Defs([Def(Tid(833, "%00000341"), - Attrs([Attr("address","0x6A8"), Attr("insn","adrp x1, #65536")]), - Var("R1",Imm(64)), Int(65536,64)), Def(Tid(840, "%00000348"), - Attrs([Attr("address","0x6AC"), Attr("insn","ldr x1, [x1, #0xfd0]")]), - Var("R1",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R1",Imm(64)),Int(4048,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(845, "%0000034d"), Attrs([Attr("address","0x6B0"), -Attr("insn","cbz x1, #0xc")]), EQ(Var("R1",Imm(64)),Int(0,64)), -Direct(Tid(542, "%0000021e"))), Goto(Tid(1_345, "%00000541"), Attrs([]), - Int(1,1), Direct(Tid(849, "%00000351")))])), Blk(Tid(542, "%0000021e"), - Attrs([Attr("address","0x6BC")]), Phis([]), Defs([]), -Jmps([Call(Tid(550, "%00000226"), Attrs([Attr("address","0x6BC"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))])), -Blk(Tid(849, "%00000351"), Attrs([Attr("address","0x6B4")]), Phis([]), -Defs([Def(Tid(853, "%00000355"), Attrs([Attr("address","0x6B4"), -Attr("insn","mov x16, x1")]), Var("R16",Imm(64)), Var("R1",Imm(64)))]), -Jmps([Call(Tid(858, "%0000035a"), Attrs([Attr("address","0x6B8"), -Attr("insn","br x16")]), Int(1,1), (Indirect(Var("R16",Imm(64))),))]))])), -Sub(Tid(1_315, "@frame_dummy"), Attrs([Attr("c.proto","signed (*)(void)"), -Attr("address","0x750")]), "frame_dummy", Args([Arg(Tid(1_361, "%00000551"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("frame_dummy_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(702, "@frame_dummy"), - Attrs([Attr("address","0x750")]), Phis([]), Defs([]), -Jmps([Call(Tid(704, "%000002c0"), Attrs([Attr("address","0x750"), -Attr("insn","b #-0x90")]), Int(1,1), -(Direct(Tid(1_317, "@register_tm_clones")),))]))])), Sub(Tid(1_316, "@main"), - Attrs([Attr("c.proto","signed (*)(signed argc, const char** argv)"), -Attr("address","0x754")]), "main", Args([Arg(Tid(1_362, "%00000552"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("main_argc",Imm(32)), -LOW(32,Var("R0",Imm(64))), In()), Arg(Tid(1_363, "%00000553"), - Attrs([Attr("c.layout","**[char : 8]"), Attr("c.data","Top:u8 ptr ptr"), -Attr("c.type"," const char**")]), Var("main_argv",Imm(64)), -Var("R1",Imm(64)), Both()), Arg(Tid(1_364, "%00000554"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("main_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(706, "@main"), - Attrs([Attr("address","0x754")]), Phis([]), Defs([Def(Tid(709, "%000002c5"), - Attrs([Attr("address","0x754"), Attr("insn","adrp x0, #65536")]), - Var("R0",Imm(64)), Int(65536,64)), Def(Tid(716, "%000002cc"), - Attrs([Attr("address","0x758"), Attr("insn","ldr x0, [x0, #0xfe0]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(4064,64)),LittleEndian(),64)), -Def(Tid(721, "%000002d1"), Attrs([Attr("address","0x75C"), -Attr("insn","mov w1, #0x14")]), Var("R1",Imm(64)), Int(20,64)), -Def(Tid(729, "%000002d9"), Attrs([Attr("address","0x760"), -Attr("insn","str w1, [x0]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("R0",Imm(64)),Extract(31,0,Var("R1",Imm(64))),LittleEndian(),32)), -Def(Tid(734, "%000002de"), Attrs([Attr("address","0x764"), -Attr("insn","mov w0, #0x0")]), Var("R0",Imm(64)), Int(0,64))]), -Jmps([Call(Tid(739, "%000002e3"), Attrs([Attr("address","0x768"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))]))])), -Sub(Tid(1_317, "@register_tm_clones"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x6C0")]), - "register_tm_clones", Args([Arg(Tid(1_365, "%00000555"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("register_tm_clones_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(552, "@register_tm_clones"), Attrs([Attr("address","0x6C0")]), - Phis([]), Defs([Def(Tid(555, "%0000022b"), Attrs([Attr("address","0x6C0"), -Attr("insn","adrp x0, #69632")]), Var("R0",Imm(64)), Int(69632,64)), -Def(Tid(561, "%00000231"), Attrs([Attr("address","0x6C4"), -Attr("insn","add x0, x0, #0x10")]), Var("R0",Imm(64)), -PLUS(Var("R0",Imm(64)),Int(16,64))), Def(Tid(566, "%00000236"), - Attrs([Attr("address","0x6C8"), Attr("insn","adrp x1, #69632")]), - Var("R1",Imm(64)), Int(69632,64)), Def(Tid(572, "%0000023c"), - Attrs([Attr("address","0x6CC"), Attr("insn","add x1, x1, #0x10")]), - Var("R1",Imm(64)), PLUS(Var("R1",Imm(64)),Int(16,64))), -Def(Tid(579, "%00000243"), Attrs([Attr("address","0x6D0"), -Attr("insn","sub x1, x1, x0")]), Var("R1",Imm(64)), -PLUS(PLUS(Var("R1",Imm(64)),NOT(Var("R0",Imm(64)))),Int(1,64))), -Def(Tid(585, "%00000249"), Attrs([Attr("address","0x6D4"), -Attr("insn","lsr x2, x1, #63")]), Var("R2",Imm(64)), -Concat(Int(0,63),Extract(63,63,Var("R1",Imm(64))))), -Def(Tid(592, "%00000250"), Attrs([Attr("address","0x6D8"), -Attr("insn","add x1, x2, x1, asr #3")]), Var("R1",Imm(64)), -PLUS(Var("R2",Imm(64)),ARSHIFT(Var("R1",Imm(64)),Int(3,3)))), -Def(Tid(598, "%00000256"), Attrs([Attr("address","0x6DC"), -Attr("insn","asr x1, x1, #1")]), Var("R1",Imm(64)), -SIGNED(64,Extract(63,1,Var("R1",Imm(64)))))]), -Jmps([Goto(Tid(604, "%0000025c"), Attrs([Attr("address","0x6E0"), -Attr("insn","cbz x1, #0x18")]), EQ(Var("R1",Imm(64)),Int(0,64)), -Direct(Tid(602, "%0000025a"))), Goto(Tid(1_346, "%00000542"), Attrs([]), - Int(1,1), Direct(Tid(800, "%00000320")))])), Blk(Tid(800, "%00000320"), - Attrs([Attr("address","0x6E4")]), Phis([]), Defs([Def(Tid(803, "%00000323"), - Attrs([Attr("address","0x6E4"), Attr("insn","adrp x2, #65536")]), - Var("R2",Imm(64)), Int(65536,64)), Def(Tid(810, "%0000032a"), - Attrs([Attr("address","0x6E8"), Attr("insn","ldr x2, [x2, #0xff8]")]), - Var("R2",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R2",Imm(64)),Int(4088,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(815, "%0000032f"), Attrs([Attr("address","0x6EC"), -Attr("insn","cbz x2, #0xc")]), EQ(Var("R2",Imm(64)),Int(0,64)), -Direct(Tid(602, "%0000025a"))), Goto(Tid(1_347, "%00000543"), Attrs([]), - Int(1,1), Direct(Tid(819, "%00000333")))])), Blk(Tid(602, "%0000025a"), - Attrs([Attr("address","0x6F8")]), Phis([]), Defs([]), -Jmps([Call(Tid(610, "%00000262"), Attrs([Attr("address","0x6F8"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))])), -Blk(Tid(819, "%00000333"), Attrs([Attr("address","0x6F0")]), Phis([]), -Defs([Def(Tid(823, "%00000337"), Attrs([Attr("address","0x6F0"), -Attr("insn","mov x16, x2")]), Var("R16",Imm(64)), Var("R2",Imm(64)))]), -Jmps([Call(Tid(828, "%0000033c"), Attrs([Attr("address","0x6F4"), -Attr("insn","br x16")]), Int(1,1), -(Indirect(Var("R16",Imm(64))),))]))]))]))) \ No newline at end of file diff --git a/src/test/correct/basic_loop_assign/gcc_pic/basic_loop_assign.bir b/src/test/correct/basic_loop_assign/gcc_pic/basic_loop_assign.bir deleted file mode 100644 index f09229133..000000000 --- a/src/test/correct/basic_loop_assign/gcc_pic/basic_loop_assign.bir +++ /dev/null @@ -1,228 +0,0 @@ -00000544: program -00000512: sub __cxa_finalize(__cxa_finalize_result) -00000545: __cxa_finalize_result :: out u32 = low:32[R0] - -0000031c: -00000414: R16 := 0x10000 -0000041b: R17 := mem[R16 + 0xFB0, el]:u64 -00000421: R16 := R16 + 0xFB0 -00000426: call R17 with noreturn - -00000513: sub __do_global_dtors_aux(__do_global_dtors_aux_result) -00000546: __do_global_dtors_aux_result :: out u32 = low:32[R0] - -00000266: -0000026a: #3 := R31 - 0x20 -00000270: mem := mem with [#3, el]:u64 <- R29 -00000276: mem := mem with [#3 + 8, el]:u64 <- R30 -0000027a: R31 := #3 -00000280: R29 := R31 -00000288: mem := mem with [R31 + 0x10, el]:u64 <- R19 -0000028d: R19 := 0x11000 -00000294: R0 := pad:64[mem[R19 + 0x10]] -0000029b: when 31:0[R0] <> 0 goto %00000299 -0000053a: goto %000002e5 - -000002e5: -000002e8: R0 := 0x10000 -000002ef: R0 := mem[R0 + 0xFD8, el]:u64 -000002f5: when R0 = 0 goto %000002f3 -0000053b: goto %0000030c - -0000030c: -0000030f: R0 := 0x11000 -00000316: R0 := mem[R0 + 8, el]:u64 -0000031b: R30 := 0x730 -0000031e: call @__cxa_finalize with return %000002f3 - -000002f3: -000002fb: R30 := 0x734 -000002fd: call @deregister_tm_clones with return %000002ff - -000002ff: -00000302: R0 := 1 -0000030a: mem := mem with [R19 + 0x10] <- 7:0[R0] -0000053c: goto %00000299 - -00000299: -000002a3: R19 := mem[R31 + 0x10, el]:u64 -000002aa: R29 := mem[R31, el]:u64 -000002af: R30 := mem[R31 + 8, el]:u64 -000002b3: R31 := R31 + 0x20 -000002b8: call R30 with noreturn - -00000517: sub __libc_start_main(__libc_start_main_main, __libc_start_main_arg2, __libc_start_main_arg3, __libc_start_main_auxv, __libc_start_main_result) -00000547: __libc_start_main_main :: in u64 = R0 -00000548: __libc_start_main_arg2 :: in u32 = low:32[R1] -00000549: __libc_start_main_arg3 :: in out u64 = R2 -0000054a: __libc_start_main_auxv :: in out u64 = R3 -0000054b: __libc_start_main_result :: out u32 = low:32[R0] - -000001bf: -000003fe: R16 := 0x10000 -00000405: R17 := mem[R16 + 0xFA8, el]:u64 -0000040b: R16 := R16 + 0xFA8 -00000410: call R17 with noreturn - -00000518: sub _fini(_fini_result) -0000054c: _fini_result :: out u32 = low:32[R0] - -0000001f: -00000025: #0 := R31 - 0x10 -0000002b: mem := mem with [#0, el]:u64 <- R29 -00000031: mem := mem with [#0 + 8, el]:u64 <- R30 -00000035: R31 := #0 -0000003b: R29 := R31 -00000042: R29 := mem[R31, el]:u64 -00000047: R30 := mem[R31 + 8, el]:u64 -0000004b: R31 := R31 + 0x10 -00000050: call R30 with noreturn - -00000519: sub _init(_init_result) -0000054d: _init_result :: out u32 = low:32[R0] - -0000046e: -00000474: #5 := R31 - 0x10 -0000047a: mem := mem with [#5, el]:u64 <- R29 -00000480: mem := mem with [#5 + 8, el]:u64 <- R30 -00000484: R31 := #5 -0000048a: R29 := R31 -0000048f: R30 := 0x5A8 -00000491: call @call_weak_fn with return %00000493 - -00000493: -00000498: R29 := mem[R31, el]:u64 -0000049d: R30 := mem[R31 + 8, el]:u64 -000004a1: R31 := R31 + 0x10 -000004a6: call R30 with noreturn - -0000051a: sub _start(_start_result) -0000054e: _start_result :: out u32 = low:32[R0] - -00000180: -00000185: R29 := 0 -0000018a: R30 := 0 -00000190: R5 := R0 -00000197: R1 := mem[R31, el]:u64 -0000019d: R2 := R31 + 8 -000001a3: R6 := R31 -000001a8: R0 := 0x10000 -000001af: R0 := mem[R0 + 0xFF0, el]:u64 -000001b4: R3 := 0 -000001b9: R4 := 0 -000001be: R30 := 0x670 -000001c1: call @__libc_start_main with return %000001c3 - -000001c3: -000001c6: R30 := 0x674 -000001c9: call @abort with return %0000053d - -0000053d: -0000053e: call @call_weak_fn with noreturn - -0000051d: sub abort() - - -000001c7: -00000440: R16 := 0x10000 -00000447: R17 := mem[R16 + 0xFC0, el]:u64 -0000044d: R16 := R16 + 0xFC0 -00000452: call R17 with noreturn - -0000051e: sub call_weak_fn(call_weak_fn_result) -0000054f: call_weak_fn_result :: out u32 = low:32[R0] - -000001cb: -000001ce: R0 := 0x10000 -000001d5: R0 := mem[R0 + 0xFE8, el]:u64 -000001db: when R0 = 0 goto %000001d9 -0000053f: goto %0000035c - -000001d9: -000001e1: call R30 with noreturn - -0000035c: -0000035f: goto @__gmon_start__ - -0000035d: -0000042a: R16 := 0x10000 -00000431: R17 := mem[R16 + 0xFB8, el]:u64 -00000437: R16 := R16 + 0xFB8 -0000043c: call R17 with noreturn - -00000520: sub deregister_tm_clones(deregister_tm_clones_result) -00000550: deregister_tm_clones_result :: out u32 = low:32[R0] - -000001e7: -000001ea: R0 := 0x11000 -000001f0: R0 := R0 + 0x10 -000001f5: R1 := 0x11000 -000001fb: R1 := R1 + 0x10 -00000201: #1 := ~R0 -00000206: #2 := R1 + ~R0 -0000020c: VF := extend:65[#2 + 1] <> extend:65[R1] + extend:65[#1] + 1 -00000212: CF := pad:65[#2 + 1] <> pad:65[R1] + pad:65[#1] + 1 -00000216: ZF := #2 + 1 = 0 -0000021a: NF := 63:63[#2 + 1] -00000220: when ZF goto %0000021e -00000540: goto %0000033e - -0000033e: -00000341: R1 := 0x10000 -00000348: R1 := mem[R1 + 0xFD0, el]:u64 -0000034d: when R1 = 0 goto %0000021e -00000541: goto %00000351 - -0000021e: -00000226: call R30 with noreturn - -00000351: -00000355: R16 := R1 -0000035a: call R16 with noreturn - -00000523: sub frame_dummy(frame_dummy_result) -00000551: frame_dummy_result :: out u32 = low:32[R0] - -000002be: -000002c0: call @register_tm_clones with noreturn - -00000524: sub main(main_argc, main_argv, main_result) -00000552: main_argc :: in u32 = low:32[R0] -00000553: main_argv :: in out u64 = R1 -00000554: main_result :: out u32 = low:32[R0] - -000002c2: -000002c5: R0 := 0x10000 -000002cc: R0 := mem[R0 + 0xFE0, el]:u64 -000002d1: R1 := 0x14 -000002d9: mem := mem with [R0, el]:u32 <- 31:0[R1] -000002de: R0 := 0 -000002e3: call R30 with noreturn - -00000525: sub register_tm_clones(register_tm_clones_result) -00000555: register_tm_clones_result :: out u32 = low:32[R0] - -00000228: -0000022b: R0 := 0x11000 -00000231: R0 := R0 + 0x10 -00000236: R1 := 0x11000 -0000023c: R1 := R1 + 0x10 -00000243: R1 := R1 + ~R0 + 1 -00000249: R2 := 0.63:63[R1] -00000250: R1 := R2 + (R1 ~>> 3) -00000256: R1 := extend:64[63:1[R1]] -0000025c: when R1 = 0 goto %0000025a -00000542: goto %00000320 - -00000320: -00000323: R2 := 0x10000 -0000032a: R2 := mem[R2 + 0xFF8, el]:u64 -0000032f: when R2 = 0 goto %0000025a -00000543: goto %00000333 - -0000025a: -00000262: call R30 with noreturn - -00000333: -00000337: R16 := R2 -0000033c: call R16 with noreturn diff --git a/src/test/correct/basic_loop_assign/gcc_pic/basic_loop_assign.expected b/src/test/correct/basic_loop_assign/gcc_pic/basic_loop_assign.expected index bbe462076..87474a593 100644 --- a/src/test/correct/basic_loop_assign/gcc_pic/basic_loop_assign.expected +++ b/src/test/correct/basic_loop_assign/gcc_pic/basic_loop_assign.expected @@ -69,7 +69,7 @@ implementation {:extern} guarantee_reflexive() assert (((memory_load32_le(mem, $x_addr) == memory_load32_le(mem, $x_addr)) || ((memory_load32_le(mem, $x_addr) == 20bv32) && (memory_load32_le(mem, $x_addr) == 0bv32))) || ((memory_load32_le(mem, $x_addr) == 20bv32) && bvsle32(memory_load32_le(mem, $x_addr), 10bv32))); } -procedure main_1876(); +procedure main(); modifies Gamma_R0, Gamma_R1, Gamma_mem, R0, R1, mem; requires (memory_load32_le(mem, $x_addr) == 0bv32); free requires (memory_load64_le(mem, 69632bv64) == 0bv64); @@ -88,28 +88,28 @@ procedure main_1876(); free ensures (memory_load64_le(mem, 69616bv64) == 1876bv64); free ensures (memory_load64_le(mem, 69640bv64) == 69640bv64); -implementation main_1876() +implementation main() { - var Gamma_load18: bool; - var load18: bv64; + var $load$18: bv64; + var Gamma_$load$18: bool; var x_old: bv32; lmain: assume {:captureState "lmain"} true; R0, Gamma_R0 := 65536bv64, true; call rely(); - load18, Gamma_load18 := memory_load64_le(mem, bvadd64(R0, 4064bv64)), (gamma_load64(Gamma_mem, bvadd64(R0, 4064bv64)) || L(mem, bvadd64(R0, 4064bv64))); - R0, Gamma_R0 := load18, Gamma_load18; + $load$18, Gamma_$load$18 := memory_load64_le(mem, bvadd64(R0, 4064bv64)), (gamma_load64(Gamma_mem, bvadd64(R0, 4064bv64)) || L(mem, bvadd64(R0, 4064bv64))); + R0, Gamma_R0 := $load$18, Gamma_$load$18; R1, Gamma_R1 := 20bv64, true; call rely(); - x_old := memory_load32_le(mem, $x_addr); assert (L(mem, R0) ==> Gamma_R1); + x_old := memory_load32_le(mem, $x_addr); mem, Gamma_mem := memory_store32_le(mem, R0, R1[32:0]), gamma_store32(Gamma_mem, R0, Gamma_R1); assert (((memory_load32_le(mem, $x_addr) == x_old) || ((memory_load32_le(mem, $x_addr) == 20bv32) && (x_old == 0bv32))) || ((memory_load32_le(mem, $x_addr) == 20bv32) && bvsle32(x_old, 10bv32))); assume {:captureState "%000002d9"} true; R0, Gamma_R0 := 0bv64, true; - goto main_1876_basil_return; - main_1876_basil_return: - assume {:captureState "main_1876_basil_return"} true; + goto main_basil_return; + main_basil_return: + assume {:captureState "main_basil_return"} true; return; } diff --git a/src/test/correct/basic_loop_assign/gcc_pic/basic_loop_assign.gts b/src/test/correct/basic_loop_assign/gcc_pic/basic_loop_assign.gts deleted file mode 100644 index e6982d55e..000000000 Binary files a/src/test/correct/basic_loop_assign/gcc_pic/basic_loop_assign.gts and /dev/null differ diff --git a/src/test/correct/basic_loop_assign/gcc_pic/basic_loop_assign.md5sum b/src/test/correct/basic_loop_assign/gcc_pic/basic_loop_assign.md5sum new file mode 100644 index 000000000..09eb8a67e --- /dev/null +++ b/src/test/correct/basic_loop_assign/gcc_pic/basic_loop_assign.md5sum @@ -0,0 +1,5 @@ +9439b0a50a25eef86e6ac0c819de302c correct/basic_loop_assign/gcc_pic/a.out +d00b7eff8aaf81b2642ac0939c9dbf46 correct/basic_loop_assign/gcc_pic/basic_loop_assign.adt +8226efce2bda678ba2feb5dd619e4d6f correct/basic_loop_assign/gcc_pic/basic_loop_assign.bir +c3e03ee3c8a84d01352d3a310ff62de8 correct/basic_loop_assign/gcc_pic/basic_loop_assign.relf +beadc3895ed7f71b38f9b722b7bbf447 correct/basic_loop_assign/gcc_pic/basic_loop_assign.gts diff --git a/src/test/correct/basic_loop_assign/gcc_pic/basic_loop_assign.relf b/src/test/correct/basic_loop_assign/gcc_pic/basic_loop_assign.relf deleted file mode 100644 index f5b3cfb5e..000000000 --- a/src/test/correct/basic_loop_assign/gcc_pic/basic_loop_assign.relf +++ /dev/null @@ -1,122 +0,0 @@ - -Relocation section '.rela.dyn' at offset 0x460 contains 9 entries: - Offset Info Type Symbol's Value Symbol's Name + Addend -0000000000010d90 0000000000000403 R_AARCH64_RELATIVE 750 -0000000000010d98 0000000000000403 R_AARCH64_RELATIVE 700 -0000000000010fe0 0000000000000403 R_AARCH64_RELATIVE 11014 -0000000000010ff0 0000000000000403 R_AARCH64_RELATIVE 754 -0000000000011008 0000000000000403 R_AARCH64_RELATIVE 11008 -0000000000010fd0 0000000400000401 R_AARCH64_GLOB_DAT 0000000000000000 _ITM_deregisterTMCloneTable + 0 -0000000000010fd8 0000000500000401 R_AARCH64_GLOB_DAT 0000000000000000 __cxa_finalize@GLIBC_2.17 + 0 -0000000000010fe8 0000000600000401 R_AARCH64_GLOB_DAT 0000000000000000 __gmon_start__ + 0 -0000000000010ff8 0000000800000401 R_AARCH64_GLOB_DAT 0000000000000000 _ITM_registerTMCloneTable + 0 - -Relocation section '.rela.plt' at offset 0x538 contains 4 entries: - Offset Info Type Symbol's Value Symbol's Name + Addend -0000000000010fa8 0000000300000402 R_AARCH64_JUMP_SLOT 0000000000000000 __libc_start_main@GLIBC_2.34 + 0 -0000000000010fb0 0000000500000402 R_AARCH64_JUMP_SLOT 0000000000000000 __cxa_finalize@GLIBC_2.17 + 0 -0000000000010fb8 0000000600000402 R_AARCH64_JUMP_SLOT 0000000000000000 __gmon_start__ + 0 -0000000000010fc0 0000000700000402 R_AARCH64_JUMP_SLOT 0000000000000000 abort@GLIBC_2.17 + 0 - -Symbol table '.dynsym' contains 9 entries: - Num: Value Size Type Bind Vis Ndx Name - 0: 0000000000000000 0 NOTYPE LOCAL DEFAULT UND - 1: 0000000000000598 0 SECTION LOCAL DEFAULT 11 .init - 2: 0000000000011000 0 SECTION LOCAL DEFAULT 22 .data - 3: 0000000000000000 0 FUNC GLOBAL DEFAULT UND __libc_start_main@GLIBC_2.34 (2) - 4: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_deregisterTMCloneTable - 5: 0000000000000000 0 FUNC WEAK DEFAULT UND __cxa_finalize@GLIBC_2.17 (3) - 6: 0000000000000000 0 NOTYPE WEAK DEFAULT UND __gmon_start__ - 7: 0000000000000000 0 FUNC GLOBAL DEFAULT UND abort@GLIBC_2.17 (3) - 8: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_registerTMCloneTable - -Symbol table '.symtab' contains 88 entries: - Num: Value Size Type Bind Vis Ndx Name - 0: 0000000000000000 0 NOTYPE LOCAL DEFAULT UND - 1: 0000000000000238 0 SECTION LOCAL DEFAULT 1 .interp - 2: 0000000000000254 0 SECTION LOCAL DEFAULT 2 .note.gnu.build-id - 3: 0000000000000278 0 SECTION LOCAL DEFAULT 3 .note.ABI-tag - 4: 0000000000000298 0 SECTION LOCAL DEFAULT 4 .gnu.hash - 5: 00000000000002b8 0 SECTION LOCAL DEFAULT 5 .dynsym - 6: 0000000000000390 0 SECTION LOCAL DEFAULT 6 .dynstr - 7: 000000000000041e 0 SECTION LOCAL DEFAULT 7 .gnu.version - 8: 0000000000000430 0 SECTION LOCAL DEFAULT 8 .gnu.version_r - 9: 0000000000000460 0 SECTION LOCAL DEFAULT 9 .rela.dyn - 10: 0000000000000538 0 SECTION LOCAL DEFAULT 10 .rela.plt - 11: 0000000000000598 0 SECTION LOCAL DEFAULT 11 .init - 12: 00000000000005b0 0 SECTION LOCAL DEFAULT 12 .plt - 13: 0000000000000640 0 SECTION LOCAL DEFAULT 13 .text - 14: 000000000000076c 0 SECTION LOCAL DEFAULT 14 .fini - 15: 0000000000000780 0 SECTION LOCAL DEFAULT 15 .rodata - 16: 0000000000000784 0 SECTION LOCAL DEFAULT 16 .eh_frame_hdr - 17: 00000000000007c0 0 SECTION LOCAL DEFAULT 17 .eh_frame - 18: 0000000000010d90 0 SECTION LOCAL DEFAULT 18 .init_array - 19: 0000000000010d98 0 SECTION LOCAL DEFAULT 19 .fini_array - 20: 0000000000010da0 0 SECTION LOCAL DEFAULT 20 .dynamic - 21: 0000000000010f90 0 SECTION LOCAL DEFAULT 21 .got - 22: 0000000000011000 0 SECTION LOCAL DEFAULT 22 .data - 23: 0000000000011010 0 SECTION LOCAL DEFAULT 23 .bss - 24: 0000000000000000 0 SECTION LOCAL DEFAULT 24 .comment - 25: 0000000000000000 0 FILE LOCAL DEFAULT ABS Scrt1.o - 26: 0000000000000278 0 NOTYPE LOCAL DEFAULT 3 $d - 27: 0000000000000278 32 OBJECT LOCAL DEFAULT 3 __abi_tag - 28: 0000000000000640 0 NOTYPE LOCAL DEFAULT 13 $x - 29: 00000000000007d4 0 NOTYPE LOCAL DEFAULT 17 $d - 30: 0000000000000780 0 NOTYPE LOCAL DEFAULT 15 $d - 31: 0000000000000000 0 FILE LOCAL DEFAULT ABS crti.o - 32: 0000000000000674 0 NOTYPE LOCAL DEFAULT 13 $x - 33: 0000000000000674 20 FUNC LOCAL DEFAULT 13 call_weak_fn - 34: 0000000000000598 0 NOTYPE LOCAL DEFAULT 11 $x - 35: 000000000000076c 0 NOTYPE LOCAL DEFAULT 14 $x - 36: 0000000000000000 0 FILE LOCAL DEFAULT ABS crtn.o - 37: 00000000000005a8 0 NOTYPE LOCAL DEFAULT 11 $x - 38: 0000000000000778 0 NOTYPE LOCAL DEFAULT 14 $x - 39: 0000000000000000 0 FILE LOCAL DEFAULT ABS crtstuff.c - 40: 0000000000000690 0 NOTYPE LOCAL DEFAULT 13 $x - 41: 0000000000000690 0 FUNC LOCAL DEFAULT 13 deregister_tm_clones - 42: 00000000000006c0 0 FUNC LOCAL DEFAULT 13 register_tm_clones - 43: 0000000000011008 0 NOTYPE LOCAL DEFAULT 22 $d - 44: 0000000000000700 0 FUNC LOCAL DEFAULT 13 __do_global_dtors_aux - 45: 0000000000011010 1 OBJECT LOCAL DEFAULT 23 completed.0 - 46: 0000000000010d98 0 NOTYPE LOCAL DEFAULT 19 $d - 47: 0000000000010d98 0 OBJECT LOCAL DEFAULT 19 __do_global_dtors_aux_fini_array_entry - 48: 0000000000000750 0 FUNC LOCAL DEFAULT 13 frame_dummy - 49: 0000000000010d90 0 NOTYPE LOCAL DEFAULT 18 $d - 50: 0000000000010d90 0 OBJECT LOCAL DEFAULT 18 __frame_dummy_init_array_entry - 51: 00000000000007e8 0 NOTYPE LOCAL DEFAULT 17 $d - 52: 0000000000011010 0 NOTYPE LOCAL DEFAULT 23 $d - 53: 0000000000000000 0 FILE LOCAL DEFAULT ABS basic_loop_assign.c - 54: 0000000000011014 0 NOTYPE LOCAL DEFAULT 23 $d - 55: 0000000000000754 0 NOTYPE LOCAL DEFAULT 13 $x - 56: 0000000000000848 0 NOTYPE LOCAL DEFAULT 17 $d - 57: 0000000000000000 0 FILE LOCAL DEFAULT ABS crtstuff.c - 58: 000000000000085c 0 NOTYPE LOCAL DEFAULT 17 $d - 59: 000000000000085c 0 OBJECT LOCAL DEFAULT 17 __FRAME_END__ - 60: 0000000000000000 0 FILE LOCAL DEFAULT ABS - 61: 0000000000010da0 0 OBJECT LOCAL DEFAULT ABS _DYNAMIC - 62: 0000000000000784 0 NOTYPE LOCAL DEFAULT 16 __GNU_EH_FRAME_HDR - 63: 0000000000010fc8 0 OBJECT LOCAL DEFAULT ABS _GLOBAL_OFFSET_TABLE_ - 64: 00000000000005b0 0 NOTYPE LOCAL DEFAULT 12 $x - 65: 0000000000000000 0 FUNC GLOBAL DEFAULT UND __libc_start_main@GLIBC_2.34 - 66: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_deregisterTMCloneTable - 67: 0000000000011000 0 NOTYPE WEAK DEFAULT 22 data_start - 68: 0000000000011010 0 NOTYPE GLOBAL DEFAULT 23 __bss_start__ - 69: 0000000000000000 0 FUNC WEAK DEFAULT UND __cxa_finalize@GLIBC_2.17 - 70: 0000000000011018 0 NOTYPE GLOBAL DEFAULT 23 _bss_end__ - 71: 0000000000011010 0 NOTYPE GLOBAL DEFAULT 22 _edata - 72: 0000000000011014 4 OBJECT GLOBAL DEFAULT 23 x - 73: 000000000000076c 0 FUNC GLOBAL HIDDEN 14 _fini - 74: 0000000000011018 0 NOTYPE GLOBAL DEFAULT 23 __bss_end__ - 75: 0000000000011000 0 NOTYPE GLOBAL DEFAULT 22 __data_start - 76: 0000000000000000 0 NOTYPE WEAK DEFAULT UND __gmon_start__ - 77: 0000000000011008 0 OBJECT GLOBAL HIDDEN 22 __dso_handle - 78: 0000000000000000 0 FUNC GLOBAL DEFAULT UND abort@GLIBC_2.17 - 79: 0000000000000780 4 OBJECT GLOBAL DEFAULT 15 _IO_stdin_used - 80: 0000000000011018 0 NOTYPE GLOBAL DEFAULT 23 _end - 81: 0000000000000640 52 FUNC GLOBAL DEFAULT 13 _start - 82: 0000000000011018 0 NOTYPE GLOBAL DEFAULT 23 __end__ - 83: 0000000000011010 0 NOTYPE GLOBAL DEFAULT 23 __bss_start - 84: 0000000000000754 24 FUNC GLOBAL DEFAULT 13 main - 85: 0000000000011010 0 OBJECT GLOBAL HIDDEN 22 __TMC_END__ - 86: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_registerTMCloneTable - 87: 0000000000000598 0 FUNC GLOBAL HIDDEN 11 _init diff --git a/src/test/correct/basic_loop_assign/gcc_pic/basic_loop_assign_gtirb.expected b/src/test/correct/basic_loop_assign/gcc_pic/basic_loop_assign_gtirb.expected index c45b6c1ce..8138a8989 100644 --- a/src/test/correct/basic_loop_assign/gcc_pic/basic_loop_assign_gtirb.expected +++ b/src/test/correct/basic_loop_assign/gcc_pic/basic_loop_assign_gtirb.expected @@ -69,7 +69,7 @@ implementation {:extern} guarantee_reflexive() assert (((memory_load32_le(mem, $x_addr) == memory_load32_le(mem, $x_addr)) || ((memory_load32_le(mem, $x_addr) == 20bv32) && (memory_load32_le(mem, $x_addr) == 0bv32))) || ((memory_load32_le(mem, $x_addr) == 20bv32) && bvsle32(memory_load32_le(mem, $x_addr), 10bv32))); } -procedure main_1876(); +procedure main(); modifies Gamma_R0, Gamma_R1, Gamma_mem, R0, R1, mem; requires (memory_load32_le(mem, $x_addr) == 0bv32); free requires (memory_load64_le(mem, 69632bv64) == 0bv64); @@ -88,28 +88,28 @@ procedure main_1876(); free ensures (memory_load64_le(mem, 69616bv64) == 1876bv64); free ensures (memory_load64_le(mem, 69640bv64) == 69640bv64); -implementation main_1876() +implementation main() { - var Gamma_load20: bool; - var load20: bv64; + var $load20: bv64; + var Gamma_$load20: bool; var x_old: bv32; - main_1876__0__~IFbIe1LSOiw4wk6mEI7Ig: - assume {:captureState "main_1876__0__~IFbIe1LSOiw4wk6mEI7Ig"} true; + $main$__0__$~IFbIe1LSOiw4wk6mEI7Ig: + assume {:captureState "$main$__0__$~IFbIe1LSOiw4wk6mEI7Ig"} true; R0, Gamma_R0 := 65536bv64, true; call rely(); - load20, Gamma_load20 := memory_load64_le(mem, bvadd64(R0, 4064bv64)), (gamma_load64(Gamma_mem, bvadd64(R0, 4064bv64)) || L(mem, bvadd64(R0, 4064bv64))); - R0, Gamma_R0 := load20, Gamma_load20; + $load20, Gamma_$load20 := memory_load64_le(mem, bvadd64(R0, 4064bv64)), (gamma_load64(Gamma_mem, bvadd64(R0, 4064bv64)) || L(mem, bvadd64(R0, 4064bv64))); + R0, Gamma_R0 := $load20, Gamma_$load20; R1, Gamma_R1 := 20bv64, true; call rely(); - x_old := memory_load32_le(mem, $x_addr); assert (L(mem, R0) ==> Gamma_R1); + x_old := memory_load32_le(mem, $x_addr); mem, Gamma_mem := memory_store32_le(mem, R0, R1[32:0]), gamma_store32(Gamma_mem, R0, Gamma_R1); assert (((memory_load32_le(mem, $x_addr) == x_old) || ((memory_load32_le(mem, $x_addr) == 20bv32) && (x_old == 0bv32))) || ((memory_load32_le(mem, $x_addr) == 20bv32) && bvsle32(x_old, 10bv32))); - assume {:captureState "1888_0"} true; + assume {:captureState "1888$0"} true; R0, Gamma_R0 := 0bv64, true; - goto main_1876_basil_return; - main_1876_basil_return: - assume {:captureState "main_1876_basil_return"} true; + goto main_basil_return; + main_basil_return: + assume {:captureState "main_basil_return"} true; return; } diff --git a/src/test/correct/basic_operation_evaluation/clang/basic_operation_evaluation.adt b/src/test/correct/basic_operation_evaluation/clang/basic_operation_evaluation.adt deleted file mode 100644 index 7d85f395e..000000000 --- a/src/test/correct/basic_operation_evaluation/clang/basic_operation_evaluation.adt +++ /dev/null @@ -1,599 +0,0 @@ -Project(Attrs([Attr("filename","\"clang/basic_operation_evaluation.out\""), -Attr("image-specification","(declare abi (name str))\n(declare arch (name str))\n(declare base-address (addr int))\n(declare bias (off int))\n(declare bits (size int))\n(declare code-region (addr int) (size int) (off int))\n(declare code-start (addr int))\n(declare entry-point (addr int))\n(declare external-reference (addr int) (name str))\n(declare format (name str))\n(declare is-executable (flag bool))\n(declare is-little-endian (flag bool))\n(declare llvm:base-address (addr int))\n(declare llvm:code-entry (name str) (off int) (size int))\n(declare llvm:coff-import-library (name str))\n(declare llvm:coff-virtual-section-header (name str) (addr int) (size int))\n(declare llvm:elf-program-header (name str) (off int) (size int))\n(declare llvm:elf-program-header-flags (name str) (ld bool) (r bool) \n (w bool) (x bool))\n(declare llvm:elf-virtual-program-header (name str) (addr int) (size int))\n(declare llvm:entry-point (addr int))\n(declare llvm:macho-symbol (name str) (value int))\n(declare llvm:name-reference (at int) (name str))\n(declare llvm:relocation (at int) (addr int))\n(declare llvm:section-entry (name str) (addr int) (size int) (off int))\n(declare llvm:section-flags (name str) (r bool) (w bool) (x bool))\n(declare llvm:segment-command (name str) (off int) (size int))\n(declare llvm:segment-command-flags (name str) (r bool) (w bool) (x bool))\n(declare llvm:symbol-entry (name str) (addr int) (size int) (off int)\n (value int))\n(declare llvm:virtual-segment-command (name str) (addr int) (size int))\n(declare mapped (addr int) (size int) (off int))\n(declare named-region (addr int) (size int) (name str))\n(declare named-symbol (addr int) (name str))\n(declare require (name str))\n(declare section (addr int) (size int))\n(declare segment (addr int) (size int) (r bool) (w bool) (x bool))\n(declare subarch (name str))\n(declare symbol-chunk (addr int) (size int) (root int))\n(declare symbol-value (addr int) (value int))\n(declare system (name str))\n(declare vendor (name str))\n\n(abi unknown)\n(arch aarch64)\n(base-address 0)\n(bias 0)\n(bits 64)\n(code-region 1932 20 1932)\n(code-region 1536 396 1536)\n(code-region 1440 96 1440)\n(code-region 1408 24 1408)\n(code-start 1588)\n(code-start 1536)\n(code-start 1812)\n(entry-point 1536)\n(external-reference 69568 _ITM_deregisterTMCloneTable)\n(external-reference 69576 __cxa_finalize)\n(external-reference 69584 __gmon_start__)\n(external-reference 69600 _ITM_registerTMCloneTable)\n(external-reference 69632 __libc_start_main)\n(external-reference 69640 __cxa_finalize)\n(external-reference 69648 __gmon_start__)\n(external-reference 69656 abort)\n(format elf)\n(is-executable true)\n(is-little-endian true)\n(llvm:base-address 0)\n(llvm:code-entry abort 0 0)\n(llvm:code-entry __cxa_finalize 0 0)\n(llvm:code-entry __libc_start_main 0 0)\n(llvm:code-entry _init 1408 0)\n(llvm:code-entry main 1812 120)\n(llvm:code-entry _start 1536 52)\n(llvm:code-entry abort@GLIBC_2.17 0 0)\n(llvm:code-entry _fini 1932 0)\n(llvm:code-entry __cxa_finalize@GLIBC_2.17 0 0)\n(llvm:code-entry __libc_start_main@GLIBC_2.34 0 0)\n(llvm:code-entry frame_dummy 1808 0)\n(llvm:code-entry __do_global_dtors_aux 1728 0)\n(llvm:code-entry register_tm_clones 1664 0)\n(llvm:code-entry deregister_tm_clones 1616 0)\n(llvm:code-entry call_weak_fn 1588 20)\n(llvm:code-entry .fini 1932 20)\n(llvm:code-entry .text 1536 396)\n(llvm:code-entry .plt 1440 96)\n(llvm:code-entry .init 1408 24)\n(llvm:elf-program-header 08 3528 568)\n(llvm:elf-program-header 07 0 0)\n(llvm:elf-program-header 06 1956 60)\n(llvm:elf-program-header 05 596 68)\n(llvm:elf-program-header 04 3544 480)\n(llvm:elf-program-header 03 3528 616)\n(llvm:elf-program-header 02 0 2200)\n(llvm:elf-program-header 01 568 27)\n(llvm:elf-program-header 00 64 504)\n(llvm:elf-program-header-flags 08 false true false false)\n(llvm:elf-program-header-flags 07 false true true false)\n(llvm:elf-program-header-flags 06 false true false false)\n(llvm:elf-program-header-flags 05 false true false false)\n(llvm:elf-program-header-flags 04 false true true false)\n(llvm:elf-program-header-flags 03 true true true false)\n(llvm:elf-program-header-flags 02 true true false true)\n(llvm:elf-program-header-flags 01 false true false false)\n(llvm:elf-program-header-flags 00 false true false false)\n(llvm:elf-virtual-program-header 08 69064 568)\n(llvm:elf-virtual-program-header 07 0 0)\n(llvm:elf-virtual-program-header 06 1956 60)\n(llvm:elf-virtual-program-header 05 596 68)\n(llvm:elf-virtual-program-header 04 69080 480)\n(llvm:elf-virtual-program-header 03 69064 624)\n(llvm:elf-virtual-program-header 02 0 2200)\n(llvm:elf-virtual-program-header 01 568 27)\n(llvm:elf-virtual-program-header 00 64 504)\n(llvm:entry-point 1536)\n(llvm:name-reference 69656 abort)\n(llvm:name-reference 69648 __gmon_start__)\n(llvm:name-reference 69640 __cxa_finalize)\n(llvm:name-reference 69632 __libc_start_main)\n(llvm:name-reference 69600 _ITM_registerTMCloneTable)\n(llvm:name-reference 69584 __gmon_start__)\n(llvm:name-reference 69576 __cxa_finalize)\n(llvm:name-reference 69568 _ITM_deregisterTMCloneTable)\n(llvm:section-entry .shstrtab 0 259 6905)\n(llvm:section-entry .strtab 0 577 6328)\n(llvm:section-entry .symtab 0 2112 4216)\n(llvm:section-entry .comment 0 71 4144)\n(llvm:section-entry .bss 69680 8 4144)\n(llvm:section-entry .data 69664 16 4128)\n(llvm:section-entry .got.plt 69608 56 4072)\n(llvm:section-entry .got 69560 48 4024)\n(llvm:section-entry .dynamic 69080 480 3544)\n(llvm:section-entry .fini_array 69072 8 3536)\n(llvm:section-entry .init_array 69064 8 3528)\n(llvm:section-entry .eh_frame 2016 184 2016)\n(llvm:section-entry .eh_frame_hdr 1956 60 1956)\n(llvm:section-entry .rodata 1952 4 1952)\n(llvm:section-entry .fini 1932 20 1932)\n(llvm:section-entry .text 1536 396 1536)\n(llvm:section-entry .plt 1440 96 1440)\n(llvm:section-entry .init 1408 24 1408)\n(llvm:section-entry .rela.plt 1312 96 1312)\n(llvm:section-entry .rela.dyn 1120 192 1120)\n(llvm:section-entry .gnu.version_r 1072 48 1072)\n(llvm:section-entry .gnu.version 1054 18 1054)\n(llvm:section-entry .dynstr 912 141 912)\n(llvm:section-entry .dynsym 696 216 696)\n(llvm:section-entry .gnu.hash 664 28 664)\n(llvm:section-entry .note.ABI-tag 632 32 632)\n(llvm:section-entry .note.gnu.build-id 596 36 596)\n(llvm:section-entry .interp 568 27 568)\n(llvm:section-flags .shstrtab true false false)\n(llvm:section-flags .strtab true false false)\n(llvm:section-flags .symtab true false false)\n(llvm:section-flags .comment true false false)\n(llvm:section-flags .bss true true false)\n(llvm:section-flags .data true true false)\n(llvm:section-flags .got.plt true true false)\n(llvm:section-flags .got true true false)\n(llvm:section-flags .dynamic true true false)\n(llvm:section-flags .fini_array true true false)\n(llvm:section-flags .init_array true true false)\n(llvm:section-flags .eh_frame true false false)\n(llvm:section-flags .eh_frame_hdr true false false)\n(llvm:section-flags .rodata true false false)\n(llvm:section-flags .fini true false true)\n(llvm:section-flags .text true false true)\n(llvm:section-flags .plt true false true)\n(llvm:section-flags .init true false true)\n(llvm:section-flags .rela.plt true false false)\n(llvm:section-flags .rela.dyn true false false)\n(llvm:section-flags .gnu.version_r true false false)\n(llvm:section-flags .gnu.version true false false)\n(llvm:section-flags .dynstr true false false)\n(llvm:section-flags .dynsym true false false)\n(llvm:section-flags .gnu.hash true false false)\n(llvm:section-flags .note.ABI-tag true false false)\n(llvm:section-flags .note.gnu.build-id true false false)\n(llvm:section-flags .interp true false false)\n(llvm:symbol-entry abort 0 0 0 0)\n(llvm:symbol-entry __cxa_finalize 0 0 0 0)\n(llvm:symbol-entry __libc_start_main 0 0 0 0)\n(llvm:symbol-entry _init 1408 0 1408 1408)\n(llvm:symbol-entry main 1812 120 1812 1812)\n(llvm:symbol-entry _start 1536 52 1536 1536)\n(llvm:symbol-entry abort@GLIBC_2.17 0 0 0 0)\n(llvm:symbol-entry _fini 1932 0 1932 1932)\n(llvm:symbol-entry __cxa_finalize@GLIBC_2.17 0 0 0 0)\n(llvm:symbol-entry __libc_start_main@GLIBC_2.34 0 0 0 0)\n(llvm:symbol-entry frame_dummy 1808 0 1808 1808)\n(llvm:symbol-entry __do_global_dtors_aux 1728 0 1728 1728)\n(llvm:symbol-entry register_tm_clones 1664 0 1664 1664)\n(llvm:symbol-entry deregister_tm_clones 1616 0 1616 1616)\n(llvm:symbol-entry call_weak_fn 1588 20 1588 1588)\n(mapped 0 2200 0)\n(mapped 69064 616 3528)\n(named-region 0 2200 02)\n(named-region 69064 624 03)\n(named-region 568 27 .interp)\n(named-region 596 36 .note.gnu.build-id)\n(named-region 632 32 .note.ABI-tag)\n(named-region 664 28 .gnu.hash)\n(named-region 696 216 .dynsym)\n(named-region 912 141 .dynstr)\n(named-region 1054 18 .gnu.version)\n(named-region 1072 48 .gnu.version_r)\n(named-region 1120 192 .rela.dyn)\n(named-region 1312 96 .rela.plt)\n(named-region 1408 24 .init)\n(named-region 1440 96 .plt)\n(named-region 1536 396 .text)\n(named-region 1932 20 .fini)\n(named-region 1952 4 .rodata)\n(named-region 1956 60 .eh_frame_hdr)\n(named-region 2016 184 .eh_frame)\n(named-region 69064 8 .init_array)\n(named-region 69072 8 .fini_array)\n(named-region 69080 480 .dynamic)\n(named-region 69560 48 .got)\n(named-region 69608 56 .got.plt)\n(named-region 69664 16 .data)\n(named-region 69680 8 .bss)\n(named-region 0 71 .comment)\n(named-region 0 2112 .symtab)\n(named-region 0 577 .strtab)\n(named-region 0 259 .shstrtab)\n(named-symbol 1588 call_weak_fn)\n(named-symbol 1616 deregister_tm_clones)\n(named-symbol 1664 register_tm_clones)\n(named-symbol 1728 __do_global_dtors_aux)\n(named-symbol 1808 frame_dummy)\n(named-symbol 0 __libc_start_main@GLIBC_2.34)\n(named-symbol 0 __cxa_finalize@GLIBC_2.17)\n(named-symbol 1932 _fini)\n(named-symbol 0 abort@GLIBC_2.17)\n(named-symbol 1536 _start)\n(named-symbol 1812 main)\n(named-symbol 1408 _init)\n(named-symbol 0 __libc_start_main)\n(named-symbol 0 __cxa_finalize)\n(named-symbol 0 abort)\n(require libc.so.6)\n(section 568 27)\n(section 596 36)\n(section 632 32)\n(section 664 28)\n(section 696 216)\n(section 912 141)\n(section 1054 18)\n(section 1072 48)\n(section 1120 192)\n(section 1312 96)\n(section 1408 24)\n(section 1440 96)\n(section 1536 396)\n(section 1932 20)\n(section 1952 4)\n(section 1956 60)\n(section 2016 184)\n(section 69064 8)\n(section 69072 8)\n(section 69080 480)\n(section 69560 48)\n(section 69608 56)\n(section 69664 16)\n(section 69680 8)\n(section 0 71)\n(section 0 2112)\n(section 0 577)\n(section 0 259)\n(segment 0 2200 true false true)\n(segment 69064 624 true true false)\n(subarch v8)\n(symbol-chunk 1588 20 1588)\n(symbol-chunk 1536 52 1536)\n(symbol-chunk 1812 120 1812)\n(symbol-value 1588 1588)\n(symbol-value 1616 1616)\n(symbol-value 1664 1664)\n(symbol-value 1728 1728)\n(symbol-value 1808 1808)\n(symbol-value 1932 1932)\n(symbol-value 1536 1536)\n(symbol-value 1812 1812)\n(symbol-value 1408 1408)\n(symbol-value 0 0)\n(system \"\")\n(vendor \"\")\n"), -Attr("abi-name","\"aarch64-linux-gnu-elf\"")]), -Sections([Section(".shstrtab", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x00\x06\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x00\x1c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x38\x00\x09\x00\x40\x00\x1d\x00\x1c\x00\x06\x00\x00\x00\x04\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x04\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x98\x08\x00\x00\x00\x00\x00\x00\x98\x08\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x01\x00\x00\x00\x06\x00\x00\x00\xc8\x0d\x00\x00\x00\x00\x00\x00\xc8\x0d\x01\x00\x00\x00\x00\x00\xc8\x0d\x01"), -Section(".strtab", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x00\x06\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x00\x1c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x38\x00\x09\x00\x40\x00\x1d\x00\x1c\x00\x06\x00\x00\x00\x04\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x04\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x98\x08\x00\x00\x00\x00\x00\x00\x98\x08\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x01\x00\x00\x00\x06\x00\x00\x00\xc8\x0d\x00\x00\x00\x00\x00\x00\xc8\x0d\x01\x00\x00\x00\x00\x00\xc8\x0d\x01\x00\x00\x00\x00\x00\x68\x02\x00\x00\x00\x00\x00\x00\x70\x02\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x02\x00\x00\x00\x06\x00\x00\x00\xd8\x0d\x00\x00\x00\x00\x00\x00\xd8\x0d\x01\x00\x00\x00\x00\x00\xd8\x0d\x01\x00\x00\x00\x00\x00\xe0\x01\x00\x00\x00\x00\x00\x00\xe0\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x04\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x50\xe5\x74\x64\x04\x00\x00\x00\xa4\x07\x00\x00\x00\x00\x00\x00\xa4\x07\x00\x00\x00\x00\x00\x00\xa4\x07\x00\x00\x00\x00\x00\x00\x3c\x00\x00\x00\x00\x00\x00\x00\x3c\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x51\xe5\x74\x64\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x52\xe5\x74\x64\x04\x00\x00\x00\xc8\x0d\x00\x00\x00\x00\x00\x00\xc8\x0d\x01\x00\x00\x00\x00\x00\xc8\x0d\x01\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x2f\x6c\x69\x62\x2f\x6c\x64\x2d\x6c"), -Section(".symtab", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x00\x06\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x00\x1c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x38\x00\x09\x00\x40\x00\x1d\x00\x1c\x00\x06\x00\x00\x00\x04\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x04\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x98\x08\x00\x00\x00\x00\x00\x00\x98\x08\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x01\x00\x00\x00\x06\x00\x00\x00\xc8\x0d\x00\x00\x00\x00\x00\x00\xc8\x0d\x01\x00\x00\x00\x00\x00\xc8\x0d\x01\x00\x00\x00\x00\x00\x68\x02\x00\x00\x00\x00\x00\x00\x70\x02\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x02\x00\x00\x00\x06\x00\x00\x00\xd8\x0d\x00\x00\x00\x00\x00\x00\xd8\x0d\x01\x00\x00\x00\x00\x00\xd8\x0d\x01\x00\x00\x00\x00\x00\xe0\x01\x00\x00\x00\x00\x00\x00\xe0\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x04\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x50\xe5\x74\x64\x04\x00\x00\x00\xa4\x07\x00\x00\x00\x00\x00\x00\xa4\x07\x00\x00\x00\x00\x00\x00\xa4\x07\x00\x00\x00\x00\x00\x00\x3c\x00\x00\x00\x00\x00\x00\x00\x3c\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x51\xe5\x74\x64\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x52\xe5\x74\x64\x04\x00\x00\x00\xc8\x0d\x00\x00\x00\x00\x00\x00\xc8\x0d\x01\x00\x00\x00\x00\x00\xc8\x0d\x01\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x2f\x6c\x69\x62\x2f\x6c\x64\x2d\x6c\x69\x6e\x75\x78\x2d\x61\x61\x72\x63\x68\x36\x34\x2e\x73\x6f\x2e\x31\x00\x00\x04\x00\x00\x00\x14\x00\x00\x00\x03\x00\x00\x00\x47\x4e\x55\x00\xd7\xe3\x49\x86\x93\x80\xf4\xa4\x8a\x85\x75\xb6\xf6\x80\xbf\xbd\x95\x0f\xad\x8d\x04\x00\x00\x00\x10\x00\x00\x00\x01\x00\x00\x00\x47\x4e\x55\x00\x00\x00\x00\x00\x03\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x01\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x0b\x00\x80\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x17\x00\x20\x10\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x48\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x22\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x22\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x73\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5f\x5f\x63\x78\x61\x5f\x66\x69\x6e\x61\x6c\x69\x7a\x65\x00\x5f\x5f\x6c\x69\x62\x63\x5f\x73\x74\x61\x72\x74\x5f\x6d\x61\x69\x6e\x00\x61\x62\x6f\x72\x74\x00\x6c\x69\x62\x63\x2e\x73\x6f\x2e\x36\x00\x47\x4c\x49\x42\x43\x5f\x32\x2e\x31\x37\x00\x47\x4c\x49\x42\x43\x5f\x32\x2e\x33\x34\x00\x5f\x49\x54\x4d\x5f\x64\x65\x72\x65\x67\x69\x73\x74\x65\x72\x54\x4d\x43\x6c\x6f\x6e\x65\x54\x61\x62\x6c\x65\x00\x5f\x5f\x67\x6d\x6f\x6e\x5f\x73\x74\x61\x72\x74\x5f\x5f\x00\x5f\x49\x54\x4d\x5f\x72\x65\x67\x69\x73\x74\x65\x72\x54\x4d\x43\x6c\x6f\x6e\x65\x54\x61\x62\x6c\x65\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x01\x00\x03\x00\x01\x00\x03\x00\x01\x00\x01\x00\x02\x00\x28\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x97\x91\x96\x06\x00\x00\x03\x00\x32\x00\x00\x00\x10\x00\x00\x00\xb4\x91\x96\x06\x00\x00\x02\x00\x3d\x00\x00\x00\x00\x00\x00\x00\xc8\x0d\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x10\x07\x00\x00\x00\x00\x00\x00\xd0\x0d\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\xc0\x06\x00\x00\x00\x00\x00\x00\xd8\x0f\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x14\x07\x00\x00\x00\x00\x00\x00\x28\x10\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x28\x10\x01\x00\x00\x00\x00\x00\xc0\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xc8\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xd0\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe0\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x08\x10\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x10\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x18\x10\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1f\x20\x03\xd5\xfd\x7b\xbf\xa9\xfd\x03\x00\x91\x2a\x00\x00\x94\xfd\x7b\xc1\xa8\xc0\x03\x5f\xd6\x00\x00\x00\x00\x00\x00\x00\x00\xf0\x7b\xbf\xa9\x90\x00\x00\x90\x11\xfe\x47\xf9\x10\xe2\x3f\x91\x20\x02\x1f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x90\x00\x00\xb0\x11\x02\x40\xf9\x10\x02\x00\x91\x20\x02\x1f\xd6\x90\x00\x00\xb0\x11\x06\x40\xf9\x10\x22\x00\x91\x20\x02\x1f\xd6\x90\x00\x00\xb0\x11\x0a\x40\xf9\x10\x42\x00\x91\x20\x02\x1f\xd6\x90\x00\x00\xb0\x11\x0e\x40\xf9\x10\x62\x00\x91\x20\x02\x1f\xd6\x1f\x20\x03\xd5\x1d\x00\x80\xd2\x1e\x00\x80\xd2\xe5\x03\x00\xaa\xe1\x03\x40\xf9\xe2\x23\x00\x91\xe6\x03\x00\x91\x80\x00\x00\x90\x00\xec\x47\xf9\x03\x00\x80\xd2\x04\x00\x80\xd2\xe5\xff\xff\x97\xf0\xff\xff\x97\x80\x00\x00\x90\x00\xe8\x47\xf9\x40\x00\x00\xb4\xe8\xff\xff\x17\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x80\x00\x00\xb0\x00\xc0\x00\x91\x81\x00\x00\xb0\x21\xc0\x00\x91\x3f\x00\x00\xeb\xc0\x00\x00\x54\x81\x00\x00\x90\x21\xe0\x47\xf9\x61\x00\x00\xb4\xf0\x03\x01\xaa\x00\x02\x1f\xd6\xc0\x03\x5f\xd6\x80\x00\x00\xb0\x00\xc0\x00\x91\x81\x00\x00\xb0\x21\xc0\x00\x91\x21\x00\x00\xcb\x22\xfc\x7f\xd3\x41\x0c\x81\x8b\x21\xfc\x41\x93\xc1\x00\x00\xb4\x82\x00\x00\x90\x42\xf0\x47\xf9\x62\x00\x00\xb4\xf0\x03\x02\xaa\x00\x02\x1f\xd6\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\xfd\x7b\xbe\xa9\xfd\x03\x00\x91\xf3\x0b\x00\xf9\x93\x00\x00\xb0\x60\xc2\x40\x39\x40\x01\x00\x35\x80\x00\x00\x90\x00\xe4\x47\xf9\x80\x00\x00\xb4\x80\x00\x00\xb0\x00\x14\x40\xf9\xb9\xff\xff\x97\xd8\xff\xff\x97\x20\x00\x80\x52\x60\xc2\x00\x39\xf3\x0b\x40\xf9\xfd\x7b\xc2\xa8\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\xdc\xff\xff\x17\xff\x83\x00\xd1\xe8\x03\x00\x2a\xe0\x03\x1f\x2a\xff\x1f\x00\xb9\xe8\x1b\x00\xb9\xe1\x0b\x00\xf9\x48\x00\x80\x52\xe8\x0f\x00\xb9\x68\x00\x80\x52\xe8\x0b\x00\xb9\xe8\x0f\x40\xb9\xe9\x0b\x40\xb9\x08\x01\x09\x4a\xe8\x07\x00\xb9\xe8\x0f\x40\xb9\xe9\x07\x40\xb9\x08\x01\x09\x2a\xe8\x0b\x00\xb9\xc8\x03\x80\x52\xe8\x0f\x00\xb9\x28\x02\x80\x52\xe8\x0b\x00\xb9\xe8\x0f\x40\xb9\xea\x0b\x40\xb9\x09\x0d\xca\x1a\x29\x7d\x0a\x1b\x08\x01\x09\x6b\xe8\x07\x00\xb9\xff\x83\x00\x91\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\xfd\x7b\xbf\xa9\xfd\x03\x00\x91\xfd\x7b\xc1\xa8\xc0\x03\x5f\xd6\x01\x00\x02\x00\x01\x1b\x03\x3b\x38\x00\x00\x00\x06\x00\x00\x00\x5c\xfe\xff\xff\x50\x00\x00\x00\xac\xfe\xff\xff\x64\x00\x00\x00\xdc\xfe\xff\xff\x78\x00\x00\x00\x1c\xff\xff\xff\x8c\x00\x00\x00\x6c\xff\xff\xff\xb0\x00\x00\x00\x70\xff\xff\xff\xd8\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x01\x7a\x52\x00\x04\x78\x1e\x01\x1b\x0c\x1f\x00\x10\x00\x00\x00\x18\x00\x00\x00\x04\xfe\xff\xff\x34\x00\x00\x00\x00\x41\x07\x1e\x10\x00\x00\x00\x2c\x00\x00\x00\x40\xfe\xff\xff\x30\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x40\x00\x00\x00\x5c\xfe\xff\xff\x3c\x00\x00\x00\x00\x00\x00\x00\x20\x00\x00\x00\x54\x00\x00\x00\x88\xfe\xff\xff\x48\x00\x00\x00"), -Section(".comment", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x00\x06\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x00\x1c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x38\x00\x09\x00\x40\x00\x1d\x00\x1c\x00\x06\x00\x00\x00\x04\x00\x00"), -Section(".interp", 0x238, "\x2f\x6c\x69\x62\x2f\x6c\x64\x2d\x6c\x69\x6e\x75\x78\x2d\x61\x61\x72\x63\x68\x36\x34\x2e\x73\x6f\x2e\x31\x00"), -Section(".note.gnu.build-id", 0x254, "\x04\x00\x00\x00\x14\x00\x00\x00\x03\x00\x00\x00\x47\x4e\x55\x00\xd7\xe3\x49\x86\x93\x80\xf4\xa4\x8a\x85\x75\xb6\xf6\x80\xbf\xbd\x95\x0f\xad\x8d"), -Section(".note.ABI-tag", 0x278, "\x04\x00\x00\x00\x10\x00\x00\x00\x01\x00\x00\x00\x47\x4e\x55\x00\x00\x00\x00\x00\x03\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00"), -Section(".gnu.hash", 0x298, "\x01\x00\x00\x00\x01\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".dynsym", 0x2B8, "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x0b\x00\x80\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x17\x00\x20\x10\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x48\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x22\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x22\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x73\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".dynstr", 0x390, "\x00\x5f\x5f\x63\x78\x61\x5f\x66\x69\x6e\x61\x6c\x69\x7a\x65\x00\x5f\x5f\x6c\x69\x62\x63\x5f\x73\x74\x61\x72\x74\x5f\x6d\x61\x69\x6e\x00\x61\x62\x6f\x72\x74\x00\x6c\x69\x62\x63\x2e\x73\x6f\x2e\x36\x00\x47\x4c\x49\x42\x43\x5f\x32\x2e\x31\x37\x00\x47\x4c\x49\x42\x43\x5f\x32\x2e\x33\x34\x00\x5f\x49\x54\x4d\x5f\x64\x65\x72\x65\x67\x69\x73\x74\x65\x72\x54\x4d\x43\x6c\x6f\x6e\x65\x54\x61\x62\x6c\x65\x00\x5f\x5f\x67\x6d\x6f\x6e\x5f\x73\x74\x61\x72\x74\x5f\x5f\x00\x5f\x49\x54\x4d\x5f\x72\x65\x67\x69\x73\x74\x65\x72\x54\x4d\x43\x6c\x6f\x6e\x65\x54\x61\x62\x6c\x65\x00"), -Section(".gnu.version", 0x41E, "\x00\x00\x00\x00\x00\x00\x02\x00\x01\x00\x03\x00\x01\x00\x03\x00\x01\x00"), -Section(".gnu.version_r", 0x430, "\x01\x00\x02\x00\x28\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x97\x91\x96\x06\x00\x00\x03\x00\x32\x00\x00\x00\x10\x00\x00\x00\xb4\x91\x96\x06\x00\x00\x02\x00\x3d\x00\x00\x00\x00\x00\x00\x00"), -Section(".rela.dyn", 0x460, "\xc8\x0d\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x10\x07\x00\x00\x00\x00\x00\x00\xd0\x0d\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\xc0\x06\x00\x00\x00\x00\x00\x00\xd8\x0f\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x14\x07\x00\x00\x00\x00\x00\x00\x28\x10\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x28\x10\x01\x00\x00\x00\x00\x00\xc0\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xc8\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xd0\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe0\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".rela.plt", 0x520, "\x00\x10\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x08\x10\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x10\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x18\x10\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".init", 0x580, "\x1f\x20\x03\xd5\xfd\x7b\xbf\xa9\xfd\x03\x00\x91\x2a\x00\x00\x94\xfd\x7b\xc1\xa8\xc0\x03\x5f\xd6"), -Section(".plt", 0x5A0, "\xf0\x7b\xbf\xa9\x90\x00\x00\x90\x11\xfe\x47\xf9\x10\xe2\x3f\x91\x20\x02\x1f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x90\x00\x00\xb0\x11\x02\x40\xf9\x10\x02\x00\x91\x20\x02\x1f\xd6\x90\x00\x00\xb0\x11\x06\x40\xf9\x10\x22\x00\x91\x20\x02\x1f\xd6\x90\x00\x00\xb0\x11\x0a\x40\xf9\x10\x42\x00\x91\x20\x02\x1f\xd6\x90\x00\x00\xb0\x11\x0e\x40\xf9\x10\x62\x00\x91\x20\x02\x1f\xd6"), -Section(".fini", 0x78C, "\x1f\x20\x03\xd5\xfd\x7b\xbf\xa9\xfd\x03\x00\x91\xfd\x7b\xc1\xa8\xc0\x03\x5f\xd6"), -Section(".rodata", 0x7A0, "\x01\x00\x02\x00"), -Section(".eh_frame_hdr", 0x7A4, "\x01\x1b\x03\x3b\x38\x00\x00\x00\x06\x00\x00\x00\x5c\xfe\xff\xff\x50\x00\x00\x00\xac\xfe\xff\xff\x64\x00\x00\x00\xdc\xfe\xff\xff\x78\x00\x00\x00\x1c\xff\xff\xff\x8c\x00\x00\x00\x6c\xff\xff\xff\xb0\x00\x00\x00\x70\xff\xff\xff\xd8\x00\x00\x00"), -Section(".eh_frame", 0x7E0, "\x10\x00\x00\x00\x00\x00\x00\x00\x01\x7a\x52\x00\x04\x78\x1e\x01\x1b\x0c\x1f\x00\x10\x00\x00\x00\x18\x00\x00\x00\x04\xfe\xff\xff\x34\x00\x00\x00\x00\x41\x07\x1e\x10\x00\x00\x00\x2c\x00\x00\x00\x40\xfe\xff\xff\x30\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x40\x00\x00\x00\x5c\xfe\xff\xff\x3c\x00\x00\x00\x00\x00\x00\x00\x20\x00\x00\x00\x54\x00\x00\x00\x88\xfe\xff\xff\x48\x00\x00\x00\x00\x41\x0e\x20\x9d\x04\x9e\x03\x42\x93\x02\x4e\xde\xdd\xd3\x0e\x00\x00\x00\x00\x10\x00\x00\x00\x78\x00\x00\x00\xb4\xfe\xff\xff\x04\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x01\x7a\x52\x00\x01\x7c\x1e\x01\x1b\x0c\x1f\x00\x14\x00\x00\x00\x18\x00\x00\x00\x90\xfe\xff\xff\x78\x00\x00\x00\x00\x44\x0e\x20\x02\x70\x0e\x00\x00\x00\x00\x00"), -Section(".fini_array", 0x10DD0, "\xc0\x06\x00\x00\x00\x00\x00\x00"), -Section(".dynamic", 0x10DD8, "\x01\x00\x00\x00\x00\x00\x00\x00\x28\x00\x00\x00\x00\x00\x00\x00\x0c\x00\x00\x00\x00\x00\x00\x00\x80\x05\x00\x00\x00\x00\x00\x00\x0d\x00\x00\x00\x00\x00\x00\x00\x8c\x07\x00\x00\x00\x00\x00\x00\x19\x00\x00\x00\x00\x00\x00\x00\xc8\x0d\x01\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x1a\x00\x00\x00\x00\x00\x00\x00\xd0\x0d\x01\x00\x00\x00\x00\x00\x1c\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\xf5\xfe\xff\x6f\x00\x00\x00\x00\x98\x02\x00\x00\x00\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x90\x03\x00\x00\x00\x00\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\xb8\x02\x00\x00\x00\x00\x00\x00\x0a\x00\x00\x00\x00\x00\x00\x00\x8d\x00\x00\x00\x00\x00\x00\x00\x0b\x00\x00\x00\x00\x00\x00\x00\x18\x00\x00\x00\x00\x00\x00\x00\x15\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\xe8\x0f\x01\x00\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x60\x00\x00\x00\x00\x00\x00\x00\x14\x00\x00\x00\x00\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x17\x00\x00\x00\x00\x00\x00\x00\x20\x05\x00\x00\x00\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x60\x04\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\xc0\x00\x00\x00\x00\x00\x00\x00\x09\x00\x00\x00\x00\x00\x00\x00\x18\x00\x00\x00\x00\x00\x00\x00\xfb\xff\xff\x6f\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\xfe\xff\xff\x6f\x00\x00\x00\x00\x30\x04\x00\x00\x00\x00\x00\x00\xff\xff\xff\x6f\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\xf0\xff\xff\x6f\x00\x00\x00\x00\x1e\x04\x00\x00\x00\x00\x00\x00\xf9\xff\xff\x6f\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".init_array", 0x10DC8, "\x10\x07\x00\x00\x00\x00\x00\x00"), -Section(".got", 0x10FB8, "\xd8\x0d\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x14\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".got.plt", 0x10FE8, "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xa0\x05\x00\x00\x00\x00\x00\x00\xa0\x05\x00\x00\x00\x00\x00\x00\xa0\x05\x00\x00\x00\x00\x00\x00\xa0\x05\x00\x00\x00\x00\x00\x00"), -Section(".data", 0x11020, "\x00\x00\x00\x00\x00\x00\x00\x00\x28\x10\x01\x00\x00\x00\x00\x00"), -Section(".text", 0x600, "\x1f\x20\x03\xd5\x1d\x00\x80\xd2\x1e\x00\x80\xd2\xe5\x03\x00\xaa\xe1\x03\x40\xf9\xe2\x23\x00\x91\xe6\x03\x00\x91\x80\x00\x00\x90\x00\xec\x47\xf9\x03\x00\x80\xd2\x04\x00\x80\xd2\xe5\xff\xff\x97\xf0\xff\xff\x97\x80\x00\x00\x90\x00\xe8\x47\xf9\x40\x00\x00\xb4\xe8\xff\xff\x17\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x80\x00\x00\xb0\x00\xc0\x00\x91\x81\x00\x00\xb0\x21\xc0\x00\x91\x3f\x00\x00\xeb\xc0\x00\x00\x54\x81\x00\x00\x90\x21\xe0\x47\xf9\x61\x00\x00\xb4\xf0\x03\x01\xaa\x00\x02\x1f\xd6\xc0\x03\x5f\xd6\x80\x00\x00\xb0\x00\xc0\x00\x91\x81\x00\x00\xb0\x21\xc0\x00\x91\x21\x00\x00\xcb\x22\xfc\x7f\xd3\x41\x0c\x81\x8b\x21\xfc\x41\x93\xc1\x00\x00\xb4\x82\x00\x00\x90\x42\xf0\x47\xf9\x62\x00\x00\xb4\xf0\x03\x02\xaa\x00\x02\x1f\xd6\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\xfd\x7b\xbe\xa9\xfd\x03\x00\x91\xf3\x0b\x00\xf9\x93\x00\x00\xb0\x60\xc2\x40\x39\x40\x01\x00\x35\x80\x00\x00\x90\x00\xe4\x47\xf9\x80\x00\x00\xb4\x80\x00\x00\xb0\x00\x14\x40\xf9\xb9\xff\xff\x97\xd8\xff\xff\x97\x20\x00\x80\x52\x60\xc2\x00\x39\xf3\x0b\x40\xf9\xfd\x7b\xc2\xa8\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\xdc\xff\xff\x17\xff\x83\x00\xd1\xe8\x03\x00\x2a\xe0\x03\x1f\x2a\xff\x1f\x00\xb9\xe8\x1b\x00\xb9\xe1\x0b\x00\xf9\x48\x00\x80\x52\xe8\x0f\x00\xb9\x68\x00\x80\x52\xe8\x0b\x00\xb9\xe8\x0f\x40\xb9\xe9\x0b\x40\xb9\x08\x01\x09\x4a\xe8\x07\x00\xb9\xe8\x0f\x40\xb9\xe9\x07\x40\xb9\x08\x01\x09\x2a\xe8\x0b\x00\xb9\xc8\x03\x80\x52\xe8\x0f\x00\xb9\x28\x02\x80\x52\xe8\x0b\x00\xb9\xe8\x0f\x40\xb9\xea\x0b\x40\xb9\x09\x0d\xca\x1a\x29\x7d\x0a\x1b\x08\x01\x09\x6b\xe8\x07\x00\xb9\xff\x83\x00\x91\xc0\x03\x5f\xd6")]), -Memmap([Annotation(Region(0x0,0x897), Attr("segment","02 0 2200")), -Annotation(Region(0x600,0x633), Attr("symbol","\"_start\"")), -Annotation(Region(0x0,0x102), Attr("section","\".shstrtab\"")), -Annotation(Region(0x0,0x240), Attr("section","\".strtab\"")), -Annotation(Region(0x0,0x83F), Attr("section","\".symtab\"")), -Annotation(Region(0x0,0x46), Attr("section","\".comment\"")), -Annotation(Region(0x238,0x252), Attr("section","\".interp\"")), -Annotation(Region(0x254,0x277), Attr("section","\".note.gnu.build-id\"")), -Annotation(Region(0x278,0x297), Attr("section","\".note.ABI-tag\"")), -Annotation(Region(0x298,0x2B3), Attr("section","\".gnu.hash\"")), -Annotation(Region(0x2B8,0x38F), Attr("section","\".dynsym\"")), -Annotation(Region(0x390,0x41C), Attr("section","\".dynstr\"")), -Annotation(Region(0x41E,0x42F), Attr("section","\".gnu.version\"")), -Annotation(Region(0x430,0x45F), Attr("section","\".gnu.version_r\"")), -Annotation(Region(0x460,0x51F), Attr("section","\".rela.dyn\"")), -Annotation(Region(0x520,0x57F), Attr("section","\".rela.plt\"")), -Annotation(Region(0x580,0x597), Attr("section","\".init\"")), -Annotation(Region(0x5A0,0x5FF), Attr("section","\".plt\"")), -Annotation(Region(0x580,0x597), Attr("code-region","()")), -Annotation(Region(0x5A0,0x5FF), Attr("code-region","()")), -Annotation(Region(0x600,0x633), Attr("symbol-info","_start 0x600 52")), -Annotation(Region(0x634,0x647), Attr("symbol","\"call_weak_fn\"")), -Annotation(Region(0x634,0x647), Attr("symbol-info","call_weak_fn 0x634 20")), -Annotation(Region(0x714,0x78B), Attr("symbol","\"main\"")), -Annotation(Region(0x714,0x78B), Attr("symbol-info","main 0x714 120")), -Annotation(Region(0x78C,0x79F), Attr("section","\".fini\"")), -Annotation(Region(0x7A0,0x7A3), Attr("section","\".rodata\"")), -Annotation(Region(0x7A4,0x7DF), Attr("section","\".eh_frame_hdr\"")), -Annotation(Region(0x7E0,0x897), Attr("section","\".eh_frame\"")), -Annotation(Region(0x10DC8,0x1102F), Attr("segment","03 0x10DC8 624")), -Annotation(Region(0x10DD0,0x10DD7), Attr("section","\".fini_array\"")), -Annotation(Region(0x10DD8,0x10FB7), Attr("section","\".dynamic\"")), -Annotation(Region(0x10DC8,0x10DCF), Attr("section","\".init_array\"")), -Annotation(Region(0x10FB8,0x10FE7), Attr("section","\".got\"")), -Annotation(Region(0x10FE8,0x1101F), Attr("section","\".got.plt\"")), -Annotation(Region(0x11020,0x1102F), Attr("section","\".data\"")), -Annotation(Region(0x600,0x78B), Attr("section","\".text\"")), -Annotation(Region(0x600,0x78B), Attr("code-region","()")), -Annotation(Region(0x78C,0x79F), Attr("code-region","()"))]), -Program(Tid(1_753, "%000006d9"), Attrs([]), - Subs([Sub(Tid(1_731, "@__cxa_finalize"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x5D0"), -Attr("stub","()")]), "__cxa_finalize", Args([Arg(Tid(1_754, "%000006da"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("__cxa_finalize_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(1_099, "@__cxa_finalize"), - Attrs([Attr("address","0x5D0")]), Phis([]), -Defs([Def(Tid(1_347, "%00000543"), Attrs([Attr("address","0x5D0"), -Attr("insn","adrp x16, #69632")]), Var("R16",Imm(64)), Int(69632,64)), -Def(Tid(1_354, "%0000054a"), Attrs([Attr("address","0x5D4"), -Attr("insn","ldr x17, [x16, #0x8]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(1_360, "%00000550"), Attrs([Attr("address","0x5D8"), -Attr("insn","add x16, x16, #0x8")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(8,64)))]), Jmps([Call(Tid(1_365, "%00000555"), - Attrs([Attr("address","0x5DC"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), -Sub(Tid(1_732, "@__do_global_dtors_aux"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x6C0")]), - "__do_global_dtors_aux", Args([Arg(Tid(1_755, "%000006db"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("__do_global_dtors_aux_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(710, "@__do_global_dtors_aux"), - Attrs([Attr("address","0x6C0")]), Phis([]), Defs([Def(Tid(714, "%000002ca"), - Attrs([Attr("address","0x6C0"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("#3",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(18446744073709551584,64))), -Def(Tid(720, "%000002d0"), Attrs([Attr("address","0x6C0"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("#3",Imm(64)),Var("R29",Imm(64)),LittleEndian(),64)), -Def(Tid(726, "%000002d6"), Attrs([Attr("address","0x6C0"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("#3",Imm(64)),Int(8,64)),Var("R30",Imm(64)),LittleEndian(),64)), -Def(Tid(730, "%000002da"), Attrs([Attr("address","0x6C0"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("R31",Imm(64)), -Var("#3",Imm(64))), Def(Tid(736, "%000002e0"), - Attrs([Attr("address","0x6C4"), Attr("insn","mov x29, sp")]), - Var("R29",Imm(64)), Var("R31",Imm(64))), Def(Tid(744, "%000002e8"), - Attrs([Attr("address","0x6C8"), Attr("insn","str x19, [sp, #0x10]")]), - Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(16,64)),Var("R19",Imm(64)),LittleEndian(),64)), -Def(Tid(749, "%000002ed"), Attrs([Attr("address","0x6CC"), -Attr("insn","adrp x19, #69632")]), Var("R19",Imm(64)), Int(69632,64)), -Def(Tid(756, "%000002f4"), Attrs([Attr("address","0x6D0"), -Attr("insn","ldrb w0, [x19, #0x30]")]), Var("R0",Imm(64)), -UNSIGNED(64,Load(Var("mem",Mem(64,8)),PLUS(Var("R19",Imm(64)),Int(48,64)),LittleEndian(),8)))]), -Jmps([Goto(Tid(763, "%000002fb"), Attrs([Attr("address","0x6D4"), -Attr("insn","cbnz w0, #0x28")]), - NEQ(Extract(31,0,Var("R0",Imm(64))),Int(0,32)), -Direct(Tid(761, "%000002f9"))), Goto(Tid(1_733, "%000006c5"), Attrs([]), - Int(1,1), Direct(Tid(1_044, "%00000414")))])), Blk(Tid(1_044, "%00000414"), - Attrs([Attr("address","0x6D8")]), Phis([]), -Defs([Def(Tid(1_047, "%00000417"), Attrs([Attr("address","0x6D8"), -Attr("insn","adrp x0, #65536")]), Var("R0",Imm(64)), Int(65536,64)), -Def(Tid(1_054, "%0000041e"), Attrs([Attr("address","0x6DC"), -Attr("insn","ldr x0, [x0, #0xfc8]")]), Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(4040,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(1_060, "%00000424"), Attrs([Attr("address","0x6E0"), -Attr("insn","cbz x0, #0x10")]), EQ(Var("R0",Imm(64)),Int(0,64)), -Direct(Tid(1_058, "%00000422"))), Goto(Tid(1_734, "%000006c6"), Attrs([]), - Int(1,1), Direct(Tid(1_083, "%0000043b")))])), Blk(Tid(1_083, "%0000043b"), - Attrs([Attr("address","0x6E4")]), Phis([]), -Defs([Def(Tid(1_086, "%0000043e"), Attrs([Attr("address","0x6E4"), -Attr("insn","adrp x0, #69632")]), Var("R0",Imm(64)), Int(69632,64)), -Def(Tid(1_093, "%00000445"), Attrs([Attr("address","0x6E8"), -Attr("insn","ldr x0, [x0, #0x28]")]), Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(40,64)),LittleEndian(),64)), -Def(Tid(1_098, "%0000044a"), Attrs([Attr("address","0x6EC"), -Attr("insn","bl #-0x11c")]), Var("R30",Imm(64)), Int(1776,64))]), -Jmps([Call(Tid(1_101, "%0000044d"), Attrs([Attr("address","0x6EC"), -Attr("insn","bl #-0x11c")]), Int(1,1), -(Direct(Tid(1_731, "@__cxa_finalize")),Direct(Tid(1_058, "%00000422"))))])), -Blk(Tid(1_058, "%00000422"), Attrs([Attr("address","0x6F0")]), Phis([]), -Defs([Def(Tid(1_066, "%0000042a"), Attrs([Attr("address","0x6F0"), -Attr("insn","bl #-0xa0")]), Var("R30",Imm(64)), Int(1780,64))]), -Jmps([Call(Tid(1_068, "%0000042c"), Attrs([Attr("address","0x6F0"), -Attr("insn","bl #-0xa0")]), Int(1,1), -(Direct(Tid(1_745, "@deregister_tm_clones")),Direct(Tid(1_070, "%0000042e"))))])), -Blk(Tid(1_070, "%0000042e"), Attrs([Attr("address","0x6F4")]), Phis([]), -Defs([Def(Tid(1_073, "%00000431"), Attrs([Attr("address","0x6F4"), -Attr("insn","mov w0, #0x1")]), Var("R0",Imm(64)), Int(1,64)), -Def(Tid(1_081, "%00000439"), Attrs([Attr("address","0x6F8"), -Attr("insn","strb w0, [x19, #0x30]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R19",Imm(64)),Int(48,64)),Extract(7,0,Var("R0",Imm(64))),LittleEndian(),8))]), -Jmps([Goto(Tid(1_735, "%000006c7"), Attrs([]), Int(1,1), -Direct(Tid(761, "%000002f9")))])), Blk(Tid(761, "%000002f9"), - Attrs([Attr("address","0x6FC")]), Phis([]), Defs([Def(Tid(771, "%00000303"), - Attrs([Attr("address","0x6FC"), Attr("insn","ldr x19, [sp, #0x10]")]), - Var("R19",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(16,64)),LittleEndian(),64)), -Def(Tid(778, "%0000030a"), Attrs([Attr("address","0x700"), -Attr("insn","ldp x29, x30, [sp], #0x20")]), Var("R29",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(783, "%0000030f"), Attrs([Attr("address","0x700"), -Attr("insn","ldp x29, x30, [sp], #0x20")]), Var("R30",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(787, "%00000313"), Attrs([Attr("address","0x700"), -Attr("insn","ldp x29, x30, [sp], #0x20")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(32,64)))]), Jmps([Call(Tid(792, "%00000318"), - Attrs([Attr("address","0x704"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), Sub(Tid(1_736, "@__libc_start_main"), - Attrs([Attr("c.proto","signed (*)(signed (*)(signed , char** , char** );* main, signed , char** , \nvoid* auxv)"), -Attr("address","0x5C0"), Attr("stub","()")]), "__libc_start_main", - Args([Arg(Tid(1_756, "%000006dc"), - Attrs([Attr("c.layout","**[ : 64]"), -Attr("c.data","Top:u64 ptr ptr"), -Attr("c.type","signed (*)(signed , char** , char** );*")]), - Var("__libc_start_main_main",Imm(64)), Var("R0",Imm(64)), In()), -Arg(Tid(1_757, "%000006dd"), Attrs([Attr("c.layout","[signed : 32]"), -Attr("c.data","Top:u32"), Attr("c.type","signed")]), - Var("__libc_start_main_arg2",Imm(32)), LOW(32,Var("R1",Imm(64))), In()), -Arg(Tid(1_758, "%000006de"), Attrs([Attr("c.layout","**[char : 8]"), -Attr("c.data","Top:u8 ptr ptr"), Attr("c.type","char**")]), - Var("__libc_start_main_arg3",Imm(64)), Var("R2",Imm(64)), Both()), -Arg(Tid(1_759, "%000006df"), Attrs([Attr("c.layout","*[ : 8]"), -Attr("c.data","{} ptr"), Attr("c.type","void*")]), - Var("__libc_start_main_auxv",Imm(64)), Var("R3",Imm(64)), Both()), -Arg(Tid(1_760, "%000006e0"), Attrs([Attr("c.layout","[signed : 32]"), -Attr("c.data","Top:u32"), Attr("c.type","signed")]), - Var("__libc_start_main_result",Imm(32)), LOW(32,Var("R0",Imm(64))), -Out())]), Blks([Blk(Tid(543, "@__libc_start_main"), - Attrs([Attr("address","0x5C0")]), Phis([]), -Defs([Def(Tid(1_325, "%0000052d"), Attrs([Attr("address","0x5C0"), -Attr("insn","adrp x16, #69632")]), Var("R16",Imm(64)), Int(69632,64)), -Def(Tid(1_332, "%00000534"), Attrs([Attr("address","0x5C4"), -Attr("insn","ldr x17, [x16]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R16",Imm(64)),LittleEndian(),64)), -Def(Tid(1_338, "%0000053a"), Attrs([Attr("address","0x5C8"), -Attr("insn","add x16, x16, #0x0")]), Var("R16",Imm(64)), -Var("R16",Imm(64)))]), Jmps([Call(Tid(1_343, "%0000053f"), - Attrs([Attr("address","0x5CC"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), Sub(Tid(1_737, "@_fini"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x78C")]), - "_fini", Args([Arg(Tid(1_761, "%000006e1"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("_fini_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(31, "@_fini"), - Attrs([Attr("address","0x78C")]), Phis([]), Defs([Def(Tid(37, "%00000025"), - Attrs([Attr("address","0x790"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("#0",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(18446744073709551600,64))), -Def(Tid(43, "%0000002b"), Attrs([Attr("address","0x790"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("#0",Imm(64)),Var("R29",Imm(64)),LittleEndian(),64)), -Def(Tid(49, "%00000031"), Attrs([Attr("address","0x790"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("#0",Imm(64)),Int(8,64)),Var("R30",Imm(64)),LittleEndian(),64)), -Def(Tid(53, "%00000035"), Attrs([Attr("address","0x790"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("R31",Imm(64)), -Var("#0",Imm(64))), Def(Tid(59, "%0000003b"), Attrs([Attr("address","0x794"), -Attr("insn","mov x29, sp")]), Var("R29",Imm(64)), Var("R31",Imm(64))), -Def(Tid(66, "%00000042"), Attrs([Attr("address","0x798"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R29",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(71, "%00000047"), Attrs([Attr("address","0x798"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R30",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(75, "%0000004b"), Attrs([Attr("address","0x798"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(16,64)))]), Jmps([Call(Tid(80, "%00000050"), - Attrs([Attr("address","0x79C"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), Sub(Tid(1_738, "@_init"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x580")]), - "_init", Args([Arg(Tid(1_762, "%000006e2"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("_init_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(1_543, "@_init"), - Attrs([Attr("address","0x580")]), Phis([]), -Defs([Def(Tid(1_549, "%0000060d"), Attrs([Attr("address","0x584"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("#7",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(18446744073709551600,64))), -Def(Tid(1_555, "%00000613"), Attrs([Attr("address","0x584"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("#7",Imm(64)),Var("R29",Imm(64)),LittleEndian(),64)), -Def(Tid(1_561, "%00000619"), Attrs([Attr("address","0x584"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("#7",Imm(64)),Int(8,64)),Var("R30",Imm(64)),LittleEndian(),64)), -Def(Tid(1_565, "%0000061d"), Attrs([Attr("address","0x584"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("R31",Imm(64)), -Var("#7",Imm(64))), Def(Tid(1_571, "%00000623"), - Attrs([Attr("address","0x588"), Attr("insn","mov x29, sp")]), - Var("R29",Imm(64)), Var("R31",Imm(64))), Def(Tid(1_576, "%00000628"), - Attrs([Attr("address","0x58C"), Attr("insn","bl #0xa8")]), - Var("R30",Imm(64)), Int(1424,64))]), Jmps([Call(Tid(1_578, "%0000062a"), - Attrs([Attr("address","0x58C"), Attr("insn","bl #0xa8")]), Int(1,1), -(Direct(Tid(1_743, "@call_weak_fn")),Direct(Tid(1_580, "%0000062c"))))])), -Blk(Tid(1_580, "%0000062c"), Attrs([Attr("address","0x590")]), Phis([]), -Defs([Def(Tid(1_585, "%00000631"), Attrs([Attr("address","0x590"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R29",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(1_590, "%00000636"), Attrs([Attr("address","0x590"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R30",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(1_594, "%0000063a"), Attrs([Attr("address","0x590"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(16,64)))]), Jmps([Call(Tid(1_599, "%0000063f"), - Attrs([Attr("address","0x594"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), Sub(Tid(1_739, "@_start"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x600"), -Attr("stub","()"), Attr("entry-point","()")]), "_start", - Args([Arg(Tid(1_763, "%000006e3"), Attrs([Attr("c.layout","[signed : 32]"), -Attr("c.data","Top:u32"), Attr("c.type","signed")]), - Var("_start_result",Imm(32)), LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(480, "@_start"), Attrs([Attr("address","0x600")]), Phis([]), -Defs([Def(Tid(485, "%000001e5"), Attrs([Attr("address","0x604"), -Attr("insn","mov x29, #0x0")]), Var("R29",Imm(64)), Int(0,64)), -Def(Tid(490, "%000001ea"), Attrs([Attr("address","0x608"), -Attr("insn","mov x30, #0x0")]), Var("R30",Imm(64)), Int(0,64)), -Def(Tid(496, "%000001f0"), Attrs([Attr("address","0x60C"), -Attr("insn","mov x5, x0")]), Var("R5",Imm(64)), Var("R0",Imm(64))), -Def(Tid(503, "%000001f7"), Attrs([Attr("address","0x610"), -Attr("insn","ldr x1, [sp]")]), Var("R1",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(509, "%000001fd"), Attrs([Attr("address","0x614"), -Attr("insn","add x2, sp, #0x8")]), Var("R2",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(8,64))), Def(Tid(515, "%00000203"), - Attrs([Attr("address","0x618"), Attr("insn","mov x6, sp")]), - Var("R6",Imm(64)), Var("R31",Imm(64))), Def(Tid(520, "%00000208"), - Attrs([Attr("address","0x61C"), Attr("insn","adrp x0, #65536")]), - Var("R0",Imm(64)), Int(65536,64)), Def(Tid(527, "%0000020f"), - Attrs([Attr("address","0x620"), Attr("insn","ldr x0, [x0, #0xfd8]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(4056,64)),LittleEndian(),64)), -Def(Tid(532, "%00000214"), Attrs([Attr("address","0x624"), -Attr("insn","mov x3, #0x0")]), Var("R3",Imm(64)), Int(0,64)), -Def(Tid(537, "%00000219"), Attrs([Attr("address","0x628"), -Attr("insn","mov x4, #0x0")]), Var("R4",Imm(64)), Int(0,64)), -Def(Tid(542, "%0000021e"), Attrs([Attr("address","0x62C"), -Attr("insn","bl #-0x6c")]), Var("R30",Imm(64)), Int(1584,64))]), -Jmps([Call(Tid(545, "%00000221"), Attrs([Attr("address","0x62C"), -Attr("insn","bl #-0x6c")]), Int(1,1), -(Direct(Tid(1_736, "@__libc_start_main")),Direct(Tid(547, "%00000223"))))])), -Blk(Tid(547, "%00000223"), Attrs([Attr("address","0x630")]), Phis([]), -Defs([Def(Tid(550, "%00000226"), Attrs([Attr("address","0x630"), -Attr("insn","bl #-0x40")]), Var("R30",Imm(64)), Int(1588,64))]), -Jmps([Call(Tid(553, "%00000229"), Attrs([Attr("address","0x630"), -Attr("insn","bl #-0x40")]), Int(1,1), -(Direct(Tid(1_742, "@abort")),Direct(Tid(1_740, "%000006cc"))))])), -Blk(Tid(1_740, "%000006cc"), Attrs([]), Phis([]), Defs([]), -Jmps([Call(Tid(1_741, "%000006cd"), Attrs([]), Int(1,1), -(Direct(Tid(1_743, "@call_weak_fn")),))]))])), Sub(Tid(1_742, "@abort"), - Attrs([Attr("noreturn","()"), Attr("c.proto","void (*)(void)"), -Attr("address","0x5F0"), Attr("stub","()")]), "abort", Args([]), -Blks([Blk(Tid(551, "@abort"), Attrs([Attr("address","0x5F0")]), Phis([]), -Defs([Def(Tid(1_391, "%0000056f"), Attrs([Attr("address","0x5F0"), -Attr("insn","adrp x16, #69632")]), Var("R16",Imm(64)), Int(69632,64)), -Def(Tid(1_398, "%00000576"), Attrs([Attr("address","0x5F4"), -Attr("insn","ldr x17, [x16, #0x18]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(24,64)),LittleEndian(),64)), -Def(Tid(1_404, "%0000057c"), Attrs([Attr("address","0x5F8"), -Attr("insn","add x16, x16, #0x18")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(24,64)))]), Jmps([Call(Tid(1_409, "%00000581"), - Attrs([Attr("address","0x5FC"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), Sub(Tid(1_743, "@call_weak_fn"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x634")]), - "call_weak_fn", Args([Arg(Tid(1_764, "%000006e4"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("call_weak_fn_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(555, "@call_weak_fn"), - Attrs([Attr("address","0x634")]), Phis([]), Defs([Def(Tid(558, "%0000022e"), - Attrs([Attr("address","0x634"), Attr("insn","adrp x0, #65536")]), - Var("R0",Imm(64)), Int(65536,64)), Def(Tid(565, "%00000235"), - Attrs([Attr("address","0x638"), Attr("insn","ldr x0, [x0, #0xfd0]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(4048,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(571, "%0000023b"), Attrs([Attr("address","0x63C"), -Attr("insn","cbz x0, #0x8")]), EQ(Var("R0",Imm(64)),Int(0,64)), -Direct(Tid(569, "%00000239"))), Goto(Tid(1_744, "%000006d0"), Attrs([]), - Int(1,1), Direct(Tid(1_163, "%0000048b")))])), Blk(Tid(569, "%00000239"), - Attrs([Attr("address","0x644")]), Phis([]), Defs([]), -Jmps([Call(Tid(577, "%00000241"), Attrs([Attr("address","0x644"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))])), -Blk(Tid(1_163, "%0000048b"), Attrs([Attr("address","0x640")]), Phis([]), -Defs([]), Jmps([Goto(Tid(1_166, "%0000048e"), Attrs([Attr("address","0x640"), -Attr("insn","b #-0x60")]), Int(1,1), -Direct(Tid(1_164, "@__gmon_start__")))])), Blk(Tid(1_164, "@__gmon_start__"), - Attrs([Attr("address","0x5E0")]), Phis([]), -Defs([Def(Tid(1_369, "%00000559"), Attrs([Attr("address","0x5E0"), -Attr("insn","adrp x16, #69632")]), Var("R16",Imm(64)), Int(69632,64)), -Def(Tid(1_376, "%00000560"), Attrs([Attr("address","0x5E4"), -Attr("insn","ldr x17, [x16, #0x10]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(16,64)),LittleEndian(),64)), -Def(Tid(1_382, "%00000566"), Attrs([Attr("address","0x5E8"), -Attr("insn","add x16, x16, #0x10")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(16,64)))]), Jmps([Call(Tid(1_387, "%0000056b"), - Attrs([Attr("address","0x5EC"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), -Sub(Tid(1_745, "@deregister_tm_clones"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x650")]), - "deregister_tm_clones", Args([Arg(Tid(1_765, "%000006e5"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("deregister_tm_clones_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(583, "@deregister_tm_clones"), - Attrs([Attr("address","0x650")]), Phis([]), Defs([Def(Tid(586, "%0000024a"), - Attrs([Attr("address","0x650"), Attr("insn","adrp x0, #69632")]), - Var("R0",Imm(64)), Int(69632,64)), Def(Tid(592, "%00000250"), - Attrs([Attr("address","0x654"), Attr("insn","add x0, x0, #0x30")]), - Var("R0",Imm(64)), PLUS(Var("R0",Imm(64)),Int(48,64))), -Def(Tid(597, "%00000255"), Attrs([Attr("address","0x658"), -Attr("insn","adrp x1, #69632")]), Var("R1",Imm(64)), Int(69632,64)), -Def(Tid(603, "%0000025b"), Attrs([Attr("address","0x65C"), -Attr("insn","add x1, x1, #0x30")]), Var("R1",Imm(64)), -PLUS(Var("R1",Imm(64)),Int(48,64))), Def(Tid(609, "%00000261"), - Attrs([Attr("address","0x660"), Attr("insn","cmp x1, x0")]), - Var("#1",Imm(64)), NOT(Var("R0",Imm(64)))), Def(Tid(614, "%00000266"), - Attrs([Attr("address","0x660"), Attr("insn","cmp x1, x0")]), - Var("#2",Imm(64)), PLUS(Var("R1",Imm(64)),NOT(Var("R0",Imm(64))))), -Def(Tid(620, "%0000026c"), Attrs([Attr("address","0x660"), -Attr("insn","cmp x1, x0")]), Var("VF",Imm(1)), -NEQ(SIGNED(65,PLUS(Var("#2",Imm(64)),Int(1,64))),PLUS(PLUS(SIGNED(65,Var("R1",Imm(64))),SIGNED(65,Var("#1",Imm(64)))),Int(1,65)))), -Def(Tid(626, "%00000272"), Attrs([Attr("address","0x660"), -Attr("insn","cmp x1, x0")]), Var("CF",Imm(1)), -NEQ(UNSIGNED(65,PLUS(Var("#2",Imm(64)),Int(1,64))),PLUS(PLUS(UNSIGNED(65,Var("R1",Imm(64))),UNSIGNED(65,Var("#1",Imm(64)))),Int(1,65)))), -Def(Tid(630, "%00000276"), Attrs([Attr("address","0x660"), -Attr("insn","cmp x1, x0")]), Var("ZF",Imm(1)), -EQ(PLUS(Var("#2",Imm(64)),Int(1,64)),Int(0,64))), Def(Tid(634, "%0000027a"), - Attrs([Attr("address","0x660"), Attr("insn","cmp x1, x0")]), - Var("NF",Imm(1)), Extract(63,63,PLUS(Var("#2",Imm(64)),Int(1,64))))]), -Jmps([Goto(Tid(640, "%00000280"), Attrs([Attr("address","0x664"), -Attr("insn","b.eq #0x18")]), EQ(Var("ZF",Imm(1)),Int(1,1)), -Direct(Tid(638, "%0000027e"))), Goto(Tid(1_746, "%000006d2"), Attrs([]), - Int(1,1), Direct(Tid(1_133, "%0000046d")))])), Blk(Tid(1_133, "%0000046d"), - Attrs([Attr("address","0x668")]), Phis([]), -Defs([Def(Tid(1_136, "%00000470"), Attrs([Attr("address","0x668"), -Attr("insn","adrp x1, #65536")]), Var("R1",Imm(64)), Int(65536,64)), -Def(Tid(1_143, "%00000477"), Attrs([Attr("address","0x66C"), -Attr("insn","ldr x1, [x1, #0xfc0]")]), Var("R1",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R1",Imm(64)),Int(4032,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(1_148, "%0000047c"), Attrs([Attr("address","0x670"), -Attr("insn","cbz x1, #0xc")]), EQ(Var("R1",Imm(64)),Int(0,64)), -Direct(Tid(638, "%0000027e"))), Goto(Tid(1_747, "%000006d3"), Attrs([]), - Int(1,1), Direct(Tid(1_152, "%00000480")))])), Blk(Tid(638, "%0000027e"), - Attrs([Attr("address","0x67C")]), Phis([]), Defs([]), -Jmps([Call(Tid(646, "%00000286"), Attrs([Attr("address","0x67C"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))])), -Blk(Tid(1_152, "%00000480"), Attrs([Attr("address","0x674")]), Phis([]), -Defs([Def(Tid(1_156, "%00000484"), Attrs([Attr("address","0x674"), -Attr("insn","mov x16, x1")]), Var("R16",Imm(64)), Var("R1",Imm(64)))]), -Jmps([Call(Tid(1_161, "%00000489"), Attrs([Attr("address","0x678"), -Attr("insn","br x16")]), Int(1,1), (Indirect(Var("R16",Imm(64))),))]))])), -Sub(Tid(1_748, "@frame_dummy"), Attrs([Attr("c.proto","signed (*)(void)"), -Attr("address","0x710")]), "frame_dummy", Args([Arg(Tid(1_766, "%000006e6"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("frame_dummy_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(798, "@frame_dummy"), - Attrs([Attr("address","0x710")]), Phis([]), Defs([]), -Jmps([Call(Tid(800, "%00000320"), Attrs([Attr("address","0x710"), -Attr("insn","b #-0x90")]), Int(1,1), -(Direct(Tid(1_750, "@register_tm_clones")),))]))])), Sub(Tid(1_749, "@main"), - Attrs([Attr("c.proto","signed (*)(signed argc, const char** argv)"), -Attr("address","0x714")]), "main", Args([Arg(Tid(1_767, "%000006e7"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("main_argc",Imm(32)), -LOW(32,Var("R0",Imm(64))), In()), Arg(Tid(1_768, "%000006e8"), - Attrs([Attr("c.layout","**[char : 8]"), Attr("c.data","Top:u8 ptr ptr"), -Attr("c.type"," const char**")]), Var("main_argv",Imm(64)), -Var("R1",Imm(64)), Both()), Arg(Tid(1_769, "%000006e9"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("main_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(802, "@main"), - Attrs([Attr("address","0x714")]), Phis([]), Defs([Def(Tid(806, "%00000326"), - Attrs([Attr("address","0x714"), Attr("insn","sub sp, sp, #0x20")]), - Var("R31",Imm(64)), PLUS(Var("R31",Imm(64)),Int(18446744073709551584,64))), -Def(Tid(812, "%0000032c"), Attrs([Attr("address","0x718"), -Attr("insn","mov w8, w0")]), Var("R8",Imm(64)), -UNSIGNED(64,Extract(31,0,Var("R0",Imm(64))))), Def(Tid(817, "%00000331"), - Attrs([Attr("address","0x71C"), Attr("insn","mov w0, wzr")]), - Var("R0",Imm(64)), Int(0,64)), Def(Tid(824, "%00000338"), - Attrs([Attr("address","0x720"), Attr("insn","str wzr, [sp, #0x1c]")]), - Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(28,64)),Int(0,32),LittleEndian(),32)), -Def(Tid(832, "%00000340"), Attrs([Attr("address","0x724"), -Attr("insn","str w8, [sp, #0x18]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(24,64)),Extract(31,0,Var("R8",Imm(64))),LittleEndian(),32)), -Def(Tid(840, "%00000348"), Attrs([Attr("address","0x728"), -Attr("insn","str x1, [sp, #0x10]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(16,64)),Var("R1",Imm(64)),LittleEndian(),64)), -Def(Tid(845, "%0000034d"), Attrs([Attr("address","0x72C"), -Attr("insn","mov w8, #0x2")]), Var("R8",Imm(64)), Int(2,64)), -Def(Tid(853, "%00000355"), Attrs([Attr("address","0x730"), -Attr("insn","str w8, [sp, #0xc]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(12,64)),Extract(31,0,Var("R8",Imm(64))),LittleEndian(),32)), -Def(Tid(858, "%0000035a"), Attrs([Attr("address","0x734"), -Attr("insn","mov w8, #0x3")]), Var("R8",Imm(64)), Int(3,64)), -Def(Tid(866, "%00000362"), Attrs([Attr("address","0x738"), -Attr("insn","str w8, [sp, #0x8]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),Extract(31,0,Var("R8",Imm(64))),LittleEndian(),32)), -Def(Tid(873, "%00000369"), Attrs([Attr("address","0x73C"), -Attr("insn","ldr w8, [sp, #0xc]")]), Var("R8",Imm(64)), -UNSIGNED(64,Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(12,64)),LittleEndian(),32))), -Def(Tid(880, "%00000370"), Attrs([Attr("address","0x740"), -Attr("insn","ldr w9, [sp, #0x8]")]), Var("R9",Imm(64)), -UNSIGNED(64,Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),LittleEndian(),32))), -Def(Tid(887, "%00000377"), Attrs([Attr("address","0x744"), -Attr("insn","eor w8, w8, w9")]), Var("R8",Imm(64)), -UNSIGNED(64,XOR(Extract(31,0,Var("R8",Imm(64))),Extract(31,0,Var("R9",Imm(64)))))), -Def(Tid(895, "%0000037f"), Attrs([Attr("address","0x748"), -Attr("insn","str w8, [sp, #0x4]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(4,64)),Extract(31,0,Var("R8",Imm(64))),LittleEndian(),32)), -Def(Tid(902, "%00000386"), Attrs([Attr("address","0x74C"), -Attr("insn","ldr w8, [sp, #0xc]")]), Var("R8",Imm(64)), -UNSIGNED(64,Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(12,64)),LittleEndian(),32))), -Def(Tid(909, "%0000038d"), Attrs([Attr("address","0x750"), -Attr("insn","ldr w9, [sp, #0x4]")]), Var("R9",Imm(64)), -UNSIGNED(64,Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(4,64)),LittleEndian(),32))), -Def(Tid(916, "%00000394"), Attrs([Attr("address","0x754"), -Attr("insn","orr w8, w8, w9")]), Var("R8",Imm(64)), -UNSIGNED(64,OR(Extract(31,0,Var("R8",Imm(64))),Extract(31,0,Var("R9",Imm(64)))))), -Def(Tid(924, "%0000039c"), Attrs([Attr("address","0x758"), -Attr("insn","str w8, [sp, #0x8]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),Extract(31,0,Var("R8",Imm(64))),LittleEndian(),32)), -Def(Tid(929, "%000003a1"), Attrs([Attr("address","0x75C"), -Attr("insn","mov w8, #0x1e")]), Var("R8",Imm(64)), Int(30,64)), -Def(Tid(937, "%000003a9"), Attrs([Attr("address","0x760"), -Attr("insn","str w8, [sp, #0xc]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(12,64)),Extract(31,0,Var("R8",Imm(64))),LittleEndian(),32)), -Def(Tid(942, "%000003ae"), Attrs([Attr("address","0x764"), -Attr("insn","mov w8, #0x11")]), Var("R8",Imm(64)), Int(17,64)), -Def(Tid(950, "%000003b6"), Attrs([Attr("address","0x768"), -Attr("insn","str w8, [sp, #0x8]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),Extract(31,0,Var("R8",Imm(64))),LittleEndian(),32)), -Def(Tid(957, "%000003bd"), Attrs([Attr("address","0x76C"), -Attr("insn","ldr w8, [sp, #0xc]")]), Var("R8",Imm(64)), -UNSIGNED(64,Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(12,64)),LittleEndian(),32))), -Def(Tid(964, "%000003c4"), Attrs([Attr("address","0x770"), -Attr("insn","ldr w10, [sp, #0x8]")]), Var("R10",Imm(64)), -UNSIGNED(64,Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),LittleEndian(),32)))]), -Jmps([Goto(Tid(978, "%000003d2"), Attrs([Attr("address","0x774"), -Attr("insn","sdiv w9, w8, w10")]), - EQ(Extract(31,0,Var("R10",Imm(64))),Int(0,32)), -Direct(Tid(969, "%000003c9"))), Goto(Tid(979, "%000003d3"), - Attrs([Attr("address","0x774"), Attr("insn","sdiv w9, w8, w10")]), Int(1,1), -Direct(Tid(974, "%000003ce")))])), Blk(Tid(974, "%000003ce"), Attrs([]), - Phis([]), Defs([Def(Tid(975, "%000003cf"), Attrs([Attr("address","0x774"), -Attr("insn","sdiv w9, w8, w10")]), Var("R9",Imm(64)), -UNSIGNED(64,Extract(31,0,SDIVIDE(SIGNED(33,Extract(31,0,Var("R8",Imm(64)))),SIGNED(33,Extract(31,0,Var("R10",Imm(64))))))))]), -Jmps([Goto(Tid(981, "%000003d5"), Attrs([Attr("address","0x774"), -Attr("insn","sdiv w9, w8, w10")]), Int(1,1), -Direct(Tid(977, "%000003d1")))])), Blk(Tid(969, "%000003c9"), Attrs([]), - Phis([]), Defs([Def(Tid(970, "%000003ca"), Attrs([Attr("address","0x774"), -Attr("insn","sdiv w9, w8, w10")]), Var("R9",Imm(64)), Int(0,64))]), -Jmps([Goto(Tid(980, "%000003d4"), Attrs([Attr("address","0x774"), -Attr("insn","sdiv w9, w8, w10")]), Int(1,1), -Direct(Tid(977, "%000003d1")))])), Blk(Tid(977, "%000003d1"), Attrs([]), - Phis([]), Defs([Def(Tid(988, "%000003dc"), Attrs([Attr("address","0x778"), -Attr("insn","mul w9, w9, w10")]), Var("R9",Imm(64)), -UNSIGNED(64,Extract(31,0,TIMES(UNSIGNED(64,Extract(31,0,Var("R9",Imm(64)))),UNSIGNED(64,Extract(31,0,Var("R10",Imm(64)))))))), -Def(Tid(994, "%000003e2"), Attrs([Attr("address","0x77C"), -Attr("insn","subs w8, w8, w9")]), Var("#4",Imm(32)), -NOT(Extract(31,0,Var("R9",Imm(64))))), Def(Tid(999, "%000003e7"), - Attrs([Attr("address","0x77C"), Attr("insn","subs w8, w8, w9")]), - Var("#5",Imm(32)), -PLUS(Extract(31,0,Var("R8",Imm(64))),NOT(Extract(31,0,Var("R9",Imm(64)))))), -Def(Tid(1_005, "%000003ed"), Attrs([Attr("address","0x77C"), -Attr("insn","subs w8, w8, w9")]), Var("VF",Imm(1)), -NEQ(SIGNED(33,PLUS(Var("#5",Imm(32)),Int(1,32))),PLUS(PLUS(SIGNED(33,Extract(31,0,Var("R8",Imm(64)))),SIGNED(33,Var("#4",Imm(32)))),Int(1,33)))), -Def(Tid(1_011, "%000003f3"), Attrs([Attr("address","0x77C"), -Attr("insn","subs w8, w8, w9")]), Var("CF",Imm(1)), -NEQ(UNSIGNED(33,PLUS(Var("#5",Imm(32)),Int(1,32))),PLUS(PLUS(UNSIGNED(33,Extract(31,0,Var("R8",Imm(64)))),UNSIGNED(33,Var("#4",Imm(32)))),Int(1,33)))), -Def(Tid(1_015, "%000003f7"), Attrs([Attr("address","0x77C"), -Attr("insn","subs w8, w8, w9")]), Var("ZF",Imm(1)), -EQ(PLUS(Var("#5",Imm(32)),Int(1,32)),Int(0,32))), -Def(Tid(1_019, "%000003fb"), Attrs([Attr("address","0x77C"), -Attr("insn","subs w8, w8, w9")]), Var("NF",Imm(1)), -Extract(31,31,PLUS(Var("#5",Imm(32)),Int(1,32)))), -Def(Tid(1_023, "%000003ff"), Attrs([Attr("address","0x77C"), -Attr("insn","subs w8, w8, w9")]), Var("R8",Imm(64)), -UNSIGNED(64,PLUS(Var("#5",Imm(32)),Int(1,32)))), Def(Tid(1_031, "%00000407"), - Attrs([Attr("address","0x780"), Attr("insn","str w8, [sp, #0x4]")]), - Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(4,64)),Extract(31,0,Var("R8",Imm(64))),LittleEndian(),32)), -Def(Tid(1_037, "%0000040d"), Attrs([Attr("address","0x784"), -Attr("insn","add sp, sp, #0x20")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(32,64)))]), Jmps([Call(Tid(1_042, "%00000412"), - Attrs([Attr("address","0x788"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), -Sub(Tid(1_750, "@register_tm_clones"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x680")]), - "register_tm_clones", Args([Arg(Tid(1_770, "%000006ea"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("register_tm_clones_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(648, "@register_tm_clones"), Attrs([Attr("address","0x680")]), - Phis([]), Defs([Def(Tid(651, "%0000028b"), Attrs([Attr("address","0x680"), -Attr("insn","adrp x0, #69632")]), Var("R0",Imm(64)), Int(69632,64)), -Def(Tid(657, "%00000291"), Attrs([Attr("address","0x684"), -Attr("insn","add x0, x0, #0x30")]), Var("R0",Imm(64)), -PLUS(Var("R0",Imm(64)),Int(48,64))), Def(Tid(662, "%00000296"), - Attrs([Attr("address","0x688"), Attr("insn","adrp x1, #69632")]), - Var("R1",Imm(64)), Int(69632,64)), Def(Tid(668, "%0000029c"), - Attrs([Attr("address","0x68C"), Attr("insn","add x1, x1, #0x30")]), - Var("R1",Imm(64)), PLUS(Var("R1",Imm(64)),Int(48,64))), -Def(Tid(675, "%000002a3"), Attrs([Attr("address","0x690"), -Attr("insn","sub x1, x1, x0")]), Var("R1",Imm(64)), -PLUS(PLUS(Var("R1",Imm(64)),NOT(Var("R0",Imm(64)))),Int(1,64))), -Def(Tid(681, "%000002a9"), Attrs([Attr("address","0x694"), -Attr("insn","lsr x2, x1, #63")]), Var("R2",Imm(64)), -Concat(Int(0,63),Extract(63,63,Var("R1",Imm(64))))), -Def(Tid(688, "%000002b0"), Attrs([Attr("address","0x698"), -Attr("insn","add x1, x2, x1, asr #3")]), Var("R1",Imm(64)), -PLUS(Var("R2",Imm(64)),ARSHIFT(Var("R1",Imm(64)),Int(3,3)))), -Def(Tid(694, "%000002b6"), Attrs([Attr("address","0x69C"), -Attr("insn","asr x1, x1, #1")]), Var("R1",Imm(64)), -SIGNED(64,Extract(63,1,Var("R1",Imm(64)))))]), -Jmps([Goto(Tid(700, "%000002bc"), Attrs([Attr("address","0x6A0"), -Attr("insn","cbz x1, #0x18")]), EQ(Var("R1",Imm(64)),Int(0,64)), -Direct(Tid(698, "%000002ba"))), Goto(Tid(1_751, "%000006d7"), Attrs([]), - Int(1,1), Direct(Tid(1_103, "%0000044f")))])), Blk(Tid(1_103, "%0000044f"), - Attrs([Attr("address","0x6A4")]), Phis([]), -Defs([Def(Tid(1_106, "%00000452"), Attrs([Attr("address","0x6A4"), -Attr("insn","adrp x2, #65536")]), Var("R2",Imm(64)), Int(65536,64)), -Def(Tid(1_113, "%00000459"), Attrs([Attr("address","0x6A8"), -Attr("insn","ldr x2, [x2, #0xfe0]")]), Var("R2",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R2",Imm(64)),Int(4064,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(1_118, "%0000045e"), Attrs([Attr("address","0x6AC"), -Attr("insn","cbz x2, #0xc")]), EQ(Var("R2",Imm(64)),Int(0,64)), -Direct(Tid(698, "%000002ba"))), Goto(Tid(1_752, "%000006d8"), Attrs([]), - Int(1,1), Direct(Tid(1_122, "%00000462")))])), Blk(Tid(698, "%000002ba"), - Attrs([Attr("address","0x6B8")]), Phis([]), Defs([]), -Jmps([Call(Tid(706, "%000002c2"), Attrs([Attr("address","0x6B8"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))])), -Blk(Tid(1_122, "%00000462"), Attrs([Attr("address","0x6B0")]), Phis([]), -Defs([Def(Tid(1_126, "%00000466"), Attrs([Attr("address","0x6B0"), -Attr("insn","mov x16, x2")]), Var("R16",Imm(64)), Var("R2",Imm(64)))]), -Jmps([Call(Tid(1_131, "%0000046b"), Attrs([Attr("address","0x6B4"), -Attr("insn","br x16")]), Int(1,1), -(Indirect(Var("R16",Imm(64))),))]))]))]))) \ No newline at end of file diff --git a/src/test/correct/basic_operation_evaluation/clang/basic_operation_evaluation.bir b/src/test/correct/basic_operation_evaluation/clang/basic_operation_evaluation.bir deleted file mode 100644 index db678727b..000000000 --- a/src/test/correct/basic_operation_evaluation/clang/basic_operation_evaluation.bir +++ /dev/null @@ -1,269 +0,0 @@ -000006d9: program -000006c3: sub __cxa_finalize(__cxa_finalize_result) -000006da: __cxa_finalize_result :: out u32 = low:32[R0] - -0000044b: -00000543: R16 := 0x11000 -0000054a: R17 := mem[R16 + 8, el]:u64 -00000550: R16 := R16 + 8 -00000555: call R17 with noreturn - -000006c4: sub __do_global_dtors_aux(__do_global_dtors_aux_result) -000006db: __do_global_dtors_aux_result :: out u32 = low:32[R0] - -000002c6: -000002ca: #3 := R31 - 0x20 -000002d0: mem := mem with [#3, el]:u64 <- R29 -000002d6: mem := mem with [#3 + 8, el]:u64 <- R30 -000002da: R31 := #3 -000002e0: R29 := R31 -000002e8: mem := mem with [R31 + 0x10, el]:u64 <- R19 -000002ed: R19 := 0x11000 -000002f4: R0 := pad:64[mem[R19 + 0x30]] -000002fb: when 31:0[R0] <> 0 goto %000002f9 -000006c5: goto %00000414 - -00000414: -00000417: R0 := 0x10000 -0000041e: R0 := mem[R0 + 0xFC8, el]:u64 -00000424: when R0 = 0 goto %00000422 -000006c6: goto %0000043b - -0000043b: -0000043e: R0 := 0x11000 -00000445: R0 := mem[R0 + 0x28, el]:u64 -0000044a: R30 := 0x6F0 -0000044d: call @__cxa_finalize with return %00000422 - -00000422: -0000042a: R30 := 0x6F4 -0000042c: call @deregister_tm_clones with return %0000042e - -0000042e: -00000431: R0 := 1 -00000439: mem := mem with [R19 + 0x30] <- 7:0[R0] -000006c7: goto %000002f9 - -000002f9: -00000303: R19 := mem[R31 + 0x10, el]:u64 -0000030a: R29 := mem[R31, el]:u64 -0000030f: R30 := mem[R31 + 8, el]:u64 -00000313: R31 := R31 + 0x20 -00000318: call R30 with noreturn - -000006c8: sub __libc_start_main(__libc_start_main_main, __libc_start_main_arg2, __libc_start_main_arg3, __libc_start_main_auxv, __libc_start_main_result) -000006dc: __libc_start_main_main :: in u64 = R0 -000006dd: __libc_start_main_arg2 :: in u32 = low:32[R1] -000006de: __libc_start_main_arg3 :: in out u64 = R2 -000006df: __libc_start_main_auxv :: in out u64 = R3 -000006e0: __libc_start_main_result :: out u32 = low:32[R0] - -0000021f: -0000052d: R16 := 0x11000 -00000534: R17 := mem[R16, el]:u64 -0000053a: R16 := R16 -0000053f: call R17 with noreturn - -000006c9: sub _fini(_fini_result) -000006e1: _fini_result :: out u32 = low:32[R0] - -0000001f: -00000025: #0 := R31 - 0x10 -0000002b: mem := mem with [#0, el]:u64 <- R29 -00000031: mem := mem with [#0 + 8, el]:u64 <- R30 -00000035: R31 := #0 -0000003b: R29 := R31 -00000042: R29 := mem[R31, el]:u64 -00000047: R30 := mem[R31 + 8, el]:u64 -0000004b: R31 := R31 + 0x10 -00000050: call R30 with noreturn - -000006ca: sub _init(_init_result) -000006e2: _init_result :: out u32 = low:32[R0] - -00000607: -0000060d: #7 := R31 - 0x10 -00000613: mem := mem with [#7, el]:u64 <- R29 -00000619: mem := mem with [#7 + 8, el]:u64 <- R30 -0000061d: R31 := #7 -00000623: R29 := R31 -00000628: R30 := 0x590 -0000062a: call @call_weak_fn with return %0000062c - -0000062c: -00000631: R29 := mem[R31, el]:u64 -00000636: R30 := mem[R31 + 8, el]:u64 -0000063a: R31 := R31 + 0x10 -0000063f: call R30 with noreturn - -000006cb: sub _start(_start_result) -000006e3: _start_result :: out u32 = low:32[R0] - -000001e0: -000001e5: R29 := 0 -000001ea: R30 := 0 -000001f0: R5 := R0 -000001f7: R1 := mem[R31, el]:u64 -000001fd: R2 := R31 + 8 -00000203: R6 := R31 -00000208: R0 := 0x10000 -0000020f: R0 := mem[R0 + 0xFD8, el]:u64 -00000214: R3 := 0 -00000219: R4 := 0 -0000021e: R30 := 0x630 -00000221: call @__libc_start_main with return %00000223 - -00000223: -00000226: R30 := 0x634 -00000229: call @abort with return %000006cc - -000006cc: -000006cd: call @call_weak_fn with noreturn - -000006ce: sub abort() - - -00000227: -0000056f: R16 := 0x11000 -00000576: R17 := mem[R16 + 0x18, el]:u64 -0000057c: R16 := R16 + 0x18 -00000581: call R17 with noreturn - -000006cf: sub call_weak_fn(call_weak_fn_result) -000006e4: call_weak_fn_result :: out u32 = low:32[R0] - -0000022b: -0000022e: R0 := 0x10000 -00000235: R0 := mem[R0 + 0xFD0, el]:u64 -0000023b: when R0 = 0 goto %00000239 -000006d0: goto %0000048b - -00000239: -00000241: call R30 with noreturn - -0000048b: -0000048e: goto @__gmon_start__ - -0000048c: -00000559: R16 := 0x11000 -00000560: R17 := mem[R16 + 0x10, el]:u64 -00000566: R16 := R16 + 0x10 -0000056b: call R17 with noreturn - -000006d1: sub deregister_tm_clones(deregister_tm_clones_result) -000006e5: deregister_tm_clones_result :: out u32 = low:32[R0] - -00000247: -0000024a: R0 := 0x11000 -00000250: R0 := R0 + 0x30 -00000255: R1 := 0x11000 -0000025b: R1 := R1 + 0x30 -00000261: #1 := ~R0 -00000266: #2 := R1 + ~R0 -0000026c: VF := extend:65[#2 + 1] <> extend:65[R1] + extend:65[#1] + 1 -00000272: CF := pad:65[#2 + 1] <> pad:65[R1] + pad:65[#1] + 1 -00000276: ZF := #2 + 1 = 0 -0000027a: NF := 63:63[#2 + 1] -00000280: when ZF goto %0000027e -000006d2: goto %0000046d - -0000046d: -00000470: R1 := 0x10000 -00000477: R1 := mem[R1 + 0xFC0, el]:u64 -0000047c: when R1 = 0 goto %0000027e -000006d3: goto %00000480 - -0000027e: -00000286: call R30 with noreturn - -00000480: -00000484: R16 := R1 -00000489: call R16 with noreturn - -000006d4: sub frame_dummy(frame_dummy_result) -000006e6: frame_dummy_result :: out u32 = low:32[R0] - -0000031e: -00000320: call @register_tm_clones with noreturn - -000006d5: sub main(main_argc, main_argv, main_result) -000006e7: main_argc :: in u32 = low:32[R0] -000006e8: main_argv :: in out u64 = R1 -000006e9: main_result :: out u32 = low:32[R0] - -00000322: -00000326: R31 := R31 - 0x20 -0000032c: R8 := pad:64[31:0[R0]] -00000331: R0 := 0 -00000338: mem := mem with [R31 + 0x1C, el]:u32 <- 0 -00000340: mem := mem with [R31 + 0x18, el]:u32 <- 31:0[R8] -00000348: mem := mem with [R31 + 0x10, el]:u64 <- R1 -0000034d: R8 := 2 -00000355: mem := mem with [R31 + 0xC, el]:u32 <- 31:0[R8] -0000035a: R8 := 3 -00000362: mem := mem with [R31 + 8, el]:u32 <- 31:0[R8] -00000369: R8 := pad:64[mem[R31 + 0xC, el]:u32] -00000370: R9 := pad:64[mem[R31 + 8, el]:u32] -00000377: R8 := pad:64[31:0[R8] ^ 31:0[R9]] -0000037f: mem := mem with [R31 + 4, el]:u32 <- 31:0[R8] -00000386: R8 := pad:64[mem[R31 + 0xC, el]:u32] -0000038d: R9 := pad:64[mem[R31 + 4, el]:u32] -00000394: R8 := pad:64[31:0[R8] | 31:0[R9]] -0000039c: mem := mem with [R31 + 8, el]:u32 <- 31:0[R8] -000003a1: R8 := 0x1E -000003a9: mem := mem with [R31 + 0xC, el]:u32 <- 31:0[R8] -000003ae: R8 := 0x11 -000003b6: mem := mem with [R31 + 8, el]:u32 <- 31:0[R8] -000003bd: R8 := pad:64[mem[R31 + 0xC, el]:u32] -000003c4: R10 := pad:64[mem[R31 + 8, el]:u32] -000003d2: when 31:0[R10] = 0 goto %000003c9 -000003d3: goto %000003ce - -000003ce: -000003cf: R9 := pad:64[31:0[extend:33[31:0[R8]] /$ extend:33[31:0[R10]]]] -000003d5: goto %000003d1 - -000003c9: -000003ca: R9 := 0 -000003d4: goto %000003d1 - -000003d1: -000003dc: R9 := pad:64[31:0[pad:64[31:0[R9]] * pad:64[31:0[R10]]]] -000003e2: #4 := ~31:0[R9] -000003e7: #5 := 31:0[R8] + ~31:0[R9] -000003ed: VF := extend:33[#5 + 1] <> extend:33[31:0[R8]] + extend:33[#4] + 1 -000003f3: CF := pad:33[#5 + 1] <> pad:33[31:0[R8]] + pad:33[#4] + 1 -000003f7: ZF := #5 + 1 = 0 -000003fb: NF := 31:31[#5 + 1] -000003ff: R8 := pad:64[#5 + 1] -00000407: mem := mem with [R31 + 4, el]:u32 <- 31:0[R8] -0000040d: R31 := R31 + 0x20 -00000412: call R30 with noreturn - -000006d6: sub register_tm_clones(register_tm_clones_result) -000006ea: register_tm_clones_result :: out u32 = low:32[R0] - -00000288: -0000028b: R0 := 0x11000 -00000291: R0 := R0 + 0x30 -00000296: R1 := 0x11000 -0000029c: R1 := R1 + 0x30 -000002a3: R1 := R1 + ~R0 + 1 -000002a9: R2 := 0.63:63[R1] -000002b0: R1 := R2 + (R1 ~>> 3) -000002b6: R1 := extend:64[63:1[R1]] -000002bc: when R1 = 0 goto %000002ba -000006d7: goto %0000044f - -0000044f: -00000452: R2 := 0x10000 -00000459: R2 := mem[R2 + 0xFE0, el]:u64 -0000045e: when R2 = 0 goto %000002ba -000006d8: goto %00000462 - -000002ba: -000002c2: call R30 with noreturn - -00000462: -00000466: R16 := R2 -0000046b: call R16 with noreturn diff --git a/src/test/correct/basic_operation_evaluation/clang/basic_operation_evaluation.expected b/src/test/correct/basic_operation_evaluation/clang/basic_operation_evaluation.expected index 5c6e19e2b..b9fe97f1b 100644 --- a/src/test/correct/basic_operation_evaluation/clang/basic_operation_evaluation.expected +++ b/src/test/correct/basic_operation_evaluation/clang/basic_operation_evaluation.expected @@ -1,52 +1,10 @@ -var {:extern} CF: bv1; -var {:extern} Gamma_CF: bool; -var {:extern} Gamma_NF: bool; var {:extern} Gamma_R0: bool; -var {:extern} Gamma_R1: bool; -var {:extern} Gamma_R10: bool; -var {:extern} Gamma_R31: bool; -var {:extern} Gamma_R8: bool; -var {:extern} Gamma_R9: bool; -var {:extern} Gamma_VF: bool; -var {:extern} Gamma_ZF: bool; var {:extern} Gamma_mem: [bv64]bool; -var {:extern} Gamma_stack: [bv64]bool; -var {:extern} NF: bv1; var {:extern} R0: bv64; -var {:extern} R1: bv64; -var {:extern} R10: bv64; -var {:extern} R31: bv64; -var {:extern} R8: bv64; -var {:extern} R9: bv64; -var {:extern} VF: bv1; -var {:extern} ZF: bv1; var {:extern} mem: [bv64]bv8; -var {:extern} stack: [bv64]bv8; const {:extern} $_IO_stdin_used_addr: bv64; -axiom ($_IO_stdin_used_addr == 1952bv64); -function {:extern} {:bvbuiltin "bvadd"} bvadd32(bv32, bv32) returns (bv32); -function {:extern} {:bvbuiltin "bvadd"} bvadd33(bv33, bv33) returns (bv33); +axiom ($_IO_stdin_used_addr == 2224bv64); function {:extern} {:bvbuiltin "bvadd"} bvadd64(bv64, bv64) returns (bv64); -function {:extern} {:bvbuiltin "bvcomp"} bvcomp32(bv32, bv32) returns (bv1); -function {:extern} {:bvbuiltin "bvcomp"} bvcomp33(bv33, bv33) returns (bv1); -function {:extern} {:bvbuiltin "bvmul"} bvmul64(bv64, bv64) returns (bv64); -function {:extern} {:bvbuiltin "bvnot"} bvnot1(bv1) returns (bv1); -function {:extern} {:bvbuiltin "bvnot"} bvnot32(bv32) returns (bv32); -function {:extern} {:bvbuiltin "bvor"} bvor32(bv32, bv32) returns (bv32); -function {:extern} {:bvbuiltin "bvsdiv"} bvsdiv33(bv33, bv33) returns (bv33); -function {:extern} {:bvbuiltin "bvxor"} bvxor32(bv32, bv32) returns (bv32); -function {:extern} gamma_load32(gammaMap: [bv64]bool, index: bv64) returns (bool) { - (gammaMap[bvadd64(index, 3bv64)] && (gammaMap[bvadd64(index, 2bv64)] && (gammaMap[bvadd64(index, 1bv64)] && gammaMap[index]))) -} - -function {:extern} gamma_store32(gammaMap: [bv64]bool, index: bv64, value: bool) returns ([bv64]bool) { - gammaMap[index := value][bvadd64(index, 1bv64) := value][bvadd64(index, 2bv64) := value][bvadd64(index, 3bv64) := value] -} - -function {:extern} gamma_store64(gammaMap: [bv64]bool, index: bv64, value: bool) returns ([bv64]bool) { - gammaMap[index := value][bvadd64(index, 1bv64) := value][bvadd64(index, 2bv64) := value][bvadd64(index, 3bv64) := value][bvadd64(index, 4bv64) := value][bvadd64(index, 5bv64) := value][bvadd64(index, 6bv64) := value][bvadd64(index, 7bv64) := value] -} - function {:extern} memory_load32_le(memory: [bv64]bv8, index: bv64) returns (bv32) { (memory[bvadd64(index, 3bv64)] ++ (memory[bvadd64(index, 2bv64)] ++ (memory[bvadd64(index, 1bv64)] ++ memory[index]))) } @@ -55,26 +13,15 @@ function {:extern} memory_load64_le(memory: [bv64]bv8, index: bv64) returns (bv6 (memory[bvadd64(index, 7bv64)] ++ (memory[bvadd64(index, 6bv64)] ++ (memory[bvadd64(index, 5bv64)] ++ (memory[bvadd64(index, 4bv64)] ++ (memory[bvadd64(index, 3bv64)] ++ (memory[bvadd64(index, 2bv64)] ++ (memory[bvadd64(index, 1bv64)] ++ memory[index]))))))) } -function {:extern} memory_store32_le(memory: [bv64]bv8, index: bv64, value: bv32) returns ([bv64]bv8) { - memory[index := value[8:0]][bvadd64(index, 1bv64) := value[16:8]][bvadd64(index, 2bv64) := value[24:16]][bvadd64(index, 3bv64) := value[32:24]] -} - -function {:extern} memory_store64_le(memory: [bv64]bv8, index: bv64, value: bv64) returns ([bv64]bv8) { - memory[index := value[8:0]][bvadd64(index, 1bv64) := value[16:8]][bvadd64(index, 2bv64) := value[24:16]][bvadd64(index, 3bv64) := value[32:24]][bvadd64(index, 4bv64) := value[40:32]][bvadd64(index, 5bv64) := value[48:40]][bvadd64(index, 6bv64) := value[56:48]][bvadd64(index, 7bv64) := value[64:56]] -} - -function {:extern} {:bvbuiltin "sign_extend 1"} sign_extend1_32(bv32) returns (bv33); -function {:extern} {:bvbuiltin "zero_extend 1"} zero_extend1_32(bv32) returns (bv33); -function {:extern} {:bvbuiltin "zero_extend 32"} zero_extend32_32(bv32) returns (bv64); procedure {:extern} rely(); modifies Gamma_mem, mem; ensures (Gamma_mem == old(Gamma_mem)); ensures (mem == old(mem)); - free ensures (memory_load32_le(mem, 1952bv64) == 131073bv32); - free ensures (memory_load64_le(mem, 69064bv64) == 1808bv64); - free ensures (memory_load64_le(mem, 69072bv64) == 1728bv64); - free ensures (memory_load64_le(mem, 69592bv64) == 1812bv64); - free ensures (memory_load64_le(mem, 69672bv64) == 69672bv64); + free ensures (memory_load32_le(mem, 2224bv64) == 131073bv32); + free ensures (memory_load64_le(mem, 130440bv64) == 2192bv64); + free ensures (memory_load64_le(mem, 130448bv64) == 2112bv64); + free ensures (memory_load64_le(mem, 131056bv64) == 2196bv64); + free ensures (memory_load64_le(mem, 131080bv64) == 131080bv64); procedure {:extern} rely_transitive(); modifies Gamma_mem, mem; @@ -92,116 +39,29 @@ procedure {:extern} rely_reflexive(); procedure {:extern} guarantee_reflexive(); modifies Gamma_mem, mem; -procedure main_1812(); - modifies CF, Gamma_CF, Gamma_NF, Gamma_R0, Gamma_R10, Gamma_R31, Gamma_R8, Gamma_R9, Gamma_VF, Gamma_ZF, Gamma_stack, NF, R0, R10, R31, R8, R9, VF, ZF, stack; - free requires (memory_load64_le(mem, 69664bv64) == 0bv64); - free requires (memory_load64_le(mem, 69672bv64) == 69672bv64); - free requires (memory_load32_le(mem, 1952bv64) == 131073bv32); - free requires (memory_load64_le(mem, 69064bv64) == 1808bv64); - free requires (memory_load64_le(mem, 69072bv64) == 1728bv64); - free requires (memory_load64_le(mem, 69592bv64) == 1812bv64); - free requires (memory_load64_le(mem, 69672bv64) == 69672bv64); - free ensures (Gamma_R31 == old(Gamma_R31)); - free ensures (R31 == old(R31)); - free ensures (memory_load32_le(mem, 1952bv64) == 131073bv32); - free ensures (memory_load64_le(mem, 69064bv64) == 1808bv64); - free ensures (memory_load64_le(mem, 69072bv64) == 1728bv64); - free ensures (memory_load64_le(mem, 69592bv64) == 1812bv64); - free ensures (memory_load64_le(mem, 69672bv64) == 69672bv64); +procedure main(); + modifies Gamma_R0, R0; + free requires (memory_load64_le(mem, 131072bv64) == 0bv64); + free requires (memory_load64_le(mem, 131080bv64) == 131080bv64); + free requires (memory_load32_le(mem, 2224bv64) == 131073bv32); + free requires (memory_load64_le(mem, 130440bv64) == 2192bv64); + free requires (memory_load64_le(mem, 130448bv64) == 2112bv64); + free requires (memory_load64_le(mem, 131056bv64) == 2196bv64); + free requires (memory_load64_le(mem, 131080bv64) == 131080bv64); + free ensures (memory_load32_le(mem, 2224bv64) == 131073bv32); + free ensures (memory_load64_le(mem, 130440bv64) == 2192bv64); + free ensures (memory_load64_le(mem, 130448bv64) == 2112bv64); + free ensures (memory_load64_le(mem, 131056bv64) == 2196bv64); + free ensures (memory_load64_le(mem, 131080bv64) == 131080bv64); -implementation main_1812() +implementation main() { - var #4: bv32; - var #5: bv32; - var Gamma_#4: bool; - var Gamma_#5: bool; - var Gamma_load18: bool; - var Gamma_load19: bool; - var Gamma_load20: bool; - var Gamma_load21: bool; - var Gamma_load22: bool; - var Gamma_load23: bool; - var load18: bv32; - var load19: bv32; - var load20: bv32; - var load21: bv32; - var load22: bv32; - var load23: bv32; lmain: assume {:captureState "lmain"} true; - R31, Gamma_R31 := bvadd64(R31, 18446744073709551584bv64), Gamma_R31; - R8, Gamma_R8 := zero_extend32_32(R0[32:0]), Gamma_R0; R0, Gamma_R0 := 0bv64, true; - stack, Gamma_stack := memory_store32_le(stack, bvadd64(R31, 28bv64), 0bv32), gamma_store32(Gamma_stack, bvadd64(R31, 28bv64), true); - assume {:captureState "%00000338"} true; - stack, Gamma_stack := memory_store32_le(stack, bvadd64(R31, 24bv64), R8[32:0]), gamma_store32(Gamma_stack, bvadd64(R31, 24bv64), Gamma_R8); - assume {:captureState "%00000340"} true; - stack, Gamma_stack := memory_store64_le(stack, bvadd64(R31, 16bv64), R1), gamma_store64(Gamma_stack, bvadd64(R31, 16bv64), Gamma_R1); - assume {:captureState "%00000348"} true; - R8, Gamma_R8 := 2bv64, true; - stack, Gamma_stack := memory_store32_le(stack, bvadd64(R31, 12bv64), R8[32:0]), gamma_store32(Gamma_stack, bvadd64(R31, 12bv64), Gamma_R8); - assume {:captureState "%00000355"} true; - R8, Gamma_R8 := 3bv64, true; - stack, Gamma_stack := memory_store32_le(stack, bvadd64(R31, 8bv64), R8[32:0]), gamma_store32(Gamma_stack, bvadd64(R31, 8bv64), Gamma_R8); - assume {:captureState "%00000362"} true; - load18, Gamma_load18 := memory_load32_le(stack, bvadd64(R31, 12bv64)), gamma_load32(Gamma_stack, bvadd64(R31, 12bv64)); - R8, Gamma_R8 := zero_extend32_32(load18), Gamma_load18; - load19, Gamma_load19 := memory_load32_le(stack, bvadd64(R31, 8bv64)), gamma_load32(Gamma_stack, bvadd64(R31, 8bv64)); - R9, Gamma_R9 := zero_extend32_32(load19), Gamma_load19; - R8, Gamma_R8 := zero_extend32_32(bvxor32(R8[32:0], R9[32:0])), (Gamma_R9 && Gamma_R8); - stack, Gamma_stack := memory_store32_le(stack, bvadd64(R31, 4bv64), R8[32:0]), gamma_store32(Gamma_stack, bvadd64(R31, 4bv64), Gamma_R8); - assume {:captureState "%0000037f"} true; - load20, Gamma_load20 := memory_load32_le(stack, bvadd64(R31, 12bv64)), gamma_load32(Gamma_stack, bvadd64(R31, 12bv64)); - R8, Gamma_R8 := zero_extend32_32(load20), Gamma_load20; - load21, Gamma_load21 := memory_load32_le(stack, bvadd64(R31, 4bv64)), gamma_load32(Gamma_stack, bvadd64(R31, 4bv64)); - R9, Gamma_R9 := zero_extend32_32(load21), Gamma_load21; - R8, Gamma_R8 := zero_extend32_32(bvor32(R8[32:0], R9[32:0])), (Gamma_R9 && Gamma_R8); - stack, Gamma_stack := memory_store32_le(stack, bvadd64(R31, 8bv64), R8[32:0]), gamma_store32(Gamma_stack, bvadd64(R31, 8bv64), Gamma_R8); - assume {:captureState "%0000039c"} true; - R8, Gamma_R8 := 30bv64, true; - stack, Gamma_stack := memory_store32_le(stack, bvadd64(R31, 12bv64), R8[32:0]), gamma_store32(Gamma_stack, bvadd64(R31, 12bv64), Gamma_R8); - assume {:captureState "%000003a9"} true; - R8, Gamma_R8 := 17bv64, true; - stack, Gamma_stack := memory_store32_le(stack, bvadd64(R31, 8bv64), R8[32:0]), gamma_store32(Gamma_stack, bvadd64(R31, 8bv64), Gamma_R8); - assume {:captureState "%000003b6"} true; - load22, Gamma_load22 := memory_load32_le(stack, bvadd64(R31, 12bv64)), gamma_load32(Gamma_stack, bvadd64(R31, 12bv64)); - R8, Gamma_R8 := zero_extend32_32(load22), Gamma_load22; - load23, Gamma_load23 := memory_load32_le(stack, bvadd64(R31, 8bv64)), gamma_load32(Gamma_stack, bvadd64(R31, 8bv64)); - R10, Gamma_R10 := zero_extend32_32(load23), Gamma_load23; - assert Gamma_R10; - goto lmain_goto_l000003c9, lmain_goto_l000003ce; - lmain_goto_l000003ce: - assume {:captureState "lmain_goto_l000003ce"} true; - assume (bvcomp32(R10[32:0], 0bv32) == 0bv1); - R9, Gamma_R9 := zero_extend32_32(bvsdiv33(sign_extend1_32(R8[32:0]), sign_extend1_32(R10[32:0]))[32:0]), (Gamma_R10 && Gamma_R8); - goto l000003ce; - l000003ce: - assume {:captureState "l000003ce"} true; - goto l000003d1; - lmain_goto_l000003c9: - assume {:captureState "lmain_goto_l000003c9"} true; - assume (bvcomp32(R10[32:0], 0bv32) != 0bv1); - R9, Gamma_R9 := 0bv64, true; - goto l000003c9; - l000003c9: - assume {:captureState "l000003c9"} true; - goto l000003d1; - l000003d1: - assume {:captureState "l000003d1"} true; - R9, Gamma_R9 := zero_extend32_32(bvmul64(zero_extend32_32(R9[32:0]), zero_extend32_32(R10[32:0]))[32:0]), (Gamma_R10 && Gamma_R9); - #4, Gamma_#4 := bvnot32(R9[32:0]), Gamma_R9; - #5, Gamma_#5 := bvadd32(R8[32:0], bvnot32(R9[32:0])), (Gamma_R9 && Gamma_R8); - VF, Gamma_VF := bvnot1(bvcomp33(sign_extend1_32(bvadd32(#5, 1bv32)), bvadd33(bvadd33(sign_extend1_32(R8[32:0]), sign_extend1_32(#4)), 1bv33))), (Gamma_#4 && (Gamma_R8 && Gamma_#5)); - CF, Gamma_CF := bvnot1(bvcomp33(zero_extend1_32(bvadd32(#5, 1bv32)), bvadd33(bvadd33(zero_extend1_32(R8[32:0]), zero_extend1_32(#4)), 1bv33))), (Gamma_#4 && (Gamma_R8 && Gamma_#5)); - ZF, Gamma_ZF := bvcomp32(bvadd32(#5, 1bv32), 0bv32), Gamma_#5; - NF, Gamma_NF := bvadd32(#5, 1bv32)[32:31], Gamma_#5; - R8, Gamma_R8 := zero_extend32_32(bvadd32(#5, 1bv32)), Gamma_#5; - stack, Gamma_stack := memory_store32_le(stack, bvadd64(R31, 4bv64), R8[32:0]), gamma_store32(Gamma_stack, bvadd64(R31, 4bv64), Gamma_R8); - assume {:captureState "%00000407"} true; - R31, Gamma_R31 := bvadd64(R31, 32bv64), Gamma_R31; - goto main_1812_basil_return; - main_1812_basil_return: - assume {:captureState "main_1812_basil_return"} true; + goto main_basil_return; + main_basil_return: + assume {:captureState "main_basil_return"} true; return; } diff --git a/src/test/correct/basic_operation_evaluation/clang/basic_operation_evaluation.gts b/src/test/correct/basic_operation_evaluation/clang/basic_operation_evaluation.gts deleted file mode 100644 index 7abea7ccc..000000000 Binary files a/src/test/correct/basic_operation_evaluation/clang/basic_operation_evaluation.gts and /dev/null differ diff --git a/src/test/correct/basic_operation_evaluation/clang/basic_operation_evaluation.md5sum b/src/test/correct/basic_operation_evaluation/clang/basic_operation_evaluation.md5sum new file mode 100644 index 000000000..d6276eb07 --- /dev/null +++ b/src/test/correct/basic_operation_evaluation/clang/basic_operation_evaluation.md5sum @@ -0,0 +1,5 @@ +20cbf70253486431426512451d5b9843 correct/basic_operation_evaluation/clang/a.out +6747020c8b6ba40ff2120284a4805e78 correct/basic_operation_evaluation/clang/basic_operation_evaluation.adt +6d7a0143c0032ece6c1df3cdf83a4d86 correct/basic_operation_evaluation/clang/basic_operation_evaluation.bir +1bc7843732b1f36acc3d91ee094f87ee correct/basic_operation_evaluation/clang/basic_operation_evaluation.relf +3c9374ad2e073b16e852ee41dd959436 correct/basic_operation_evaluation/clang/basic_operation_evaluation.gts diff --git a/src/test/correct/basic_operation_evaluation/clang/basic_operation_evaluation.relf b/src/test/correct/basic_operation_evaluation/clang/basic_operation_evaluation.relf deleted file mode 100644 index c3d9d9bc1..000000000 --- a/src/test/correct/basic_operation_evaluation/clang/basic_operation_evaluation.relf +++ /dev/null @@ -1,121 +0,0 @@ - -Relocation section '.rela.dyn' at offset 0x460 contains 8 entries: - Offset Info Type Symbol's Value Symbol's Name + Addend -0000000000010dc8 0000000000000403 R_AARCH64_RELATIVE 710 -0000000000010dd0 0000000000000403 R_AARCH64_RELATIVE 6c0 -0000000000010fd8 0000000000000403 R_AARCH64_RELATIVE 714 -0000000000011028 0000000000000403 R_AARCH64_RELATIVE 11028 -0000000000010fc0 0000000400000401 R_AARCH64_GLOB_DAT 0000000000000000 _ITM_deregisterTMCloneTable + 0 -0000000000010fc8 0000000500000401 R_AARCH64_GLOB_DAT 0000000000000000 __cxa_finalize@GLIBC_2.17 + 0 -0000000000010fd0 0000000600000401 R_AARCH64_GLOB_DAT 0000000000000000 __gmon_start__ + 0 -0000000000010fe0 0000000800000401 R_AARCH64_GLOB_DAT 0000000000000000 _ITM_registerTMCloneTable + 0 - -Relocation section '.rela.plt' at offset 0x520 contains 4 entries: - Offset Info Type Symbol's Value Symbol's Name + Addend -0000000000011000 0000000300000402 R_AARCH64_JUMP_SLOT 0000000000000000 __libc_start_main@GLIBC_2.34 + 0 -0000000000011008 0000000500000402 R_AARCH64_JUMP_SLOT 0000000000000000 __cxa_finalize@GLIBC_2.17 + 0 -0000000000011010 0000000600000402 R_AARCH64_JUMP_SLOT 0000000000000000 __gmon_start__ + 0 -0000000000011018 0000000700000402 R_AARCH64_JUMP_SLOT 0000000000000000 abort@GLIBC_2.17 + 0 - -Symbol table '.dynsym' contains 9 entries: - Num: Value Size Type Bind Vis Ndx Name - 0: 0000000000000000 0 NOTYPE LOCAL DEFAULT UND - 1: 0000000000000580 0 SECTION LOCAL DEFAULT 11 .init - 2: 0000000000011020 0 SECTION LOCAL DEFAULT 23 .data - 3: 0000000000000000 0 FUNC GLOBAL DEFAULT UND __libc_start_main@GLIBC_2.34 (2) - 4: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_deregisterTMCloneTable - 5: 0000000000000000 0 FUNC WEAK DEFAULT UND __cxa_finalize@GLIBC_2.17 (3) - 6: 0000000000000000 0 NOTYPE WEAK DEFAULT UND __gmon_start__ - 7: 0000000000000000 0 FUNC GLOBAL DEFAULT UND abort@GLIBC_2.17 (3) - 8: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_registerTMCloneTable - -Symbol table '.symtab' contains 88 entries: - Num: Value Size Type Bind Vis Ndx Name - 0: 0000000000000000 0 NOTYPE LOCAL DEFAULT UND - 1: 0000000000000238 0 SECTION LOCAL DEFAULT 1 .interp - 2: 0000000000000254 0 SECTION LOCAL DEFAULT 2 .note.gnu.build-id - 3: 0000000000000278 0 SECTION LOCAL DEFAULT 3 .note.ABI-tag - 4: 0000000000000298 0 SECTION LOCAL DEFAULT 4 .gnu.hash - 5: 00000000000002b8 0 SECTION LOCAL DEFAULT 5 .dynsym - 6: 0000000000000390 0 SECTION LOCAL DEFAULT 6 .dynstr - 7: 000000000000041e 0 SECTION LOCAL DEFAULT 7 .gnu.version - 8: 0000000000000430 0 SECTION LOCAL DEFAULT 8 .gnu.version_r - 9: 0000000000000460 0 SECTION LOCAL DEFAULT 9 .rela.dyn - 10: 0000000000000520 0 SECTION LOCAL DEFAULT 10 .rela.plt - 11: 0000000000000580 0 SECTION LOCAL DEFAULT 11 .init - 12: 00000000000005a0 0 SECTION LOCAL DEFAULT 12 .plt - 13: 0000000000000600 0 SECTION LOCAL DEFAULT 13 .text - 14: 000000000000078c 0 SECTION LOCAL DEFAULT 14 .fini - 15: 00000000000007a0 0 SECTION LOCAL DEFAULT 15 .rodata - 16: 00000000000007a4 0 SECTION LOCAL DEFAULT 16 .eh_frame_hdr - 17: 00000000000007e0 0 SECTION LOCAL DEFAULT 17 .eh_frame - 18: 0000000000010dc8 0 SECTION LOCAL DEFAULT 18 .init_array - 19: 0000000000010dd0 0 SECTION LOCAL DEFAULT 19 .fini_array - 20: 0000000000010dd8 0 SECTION LOCAL DEFAULT 20 .dynamic - 21: 0000000000010fb8 0 SECTION LOCAL DEFAULT 21 .got - 22: 0000000000010fe8 0 SECTION LOCAL DEFAULT 22 .got.plt - 23: 0000000000011020 0 SECTION LOCAL DEFAULT 23 .data - 24: 0000000000011030 0 SECTION LOCAL DEFAULT 24 .bss - 25: 0000000000000000 0 SECTION LOCAL DEFAULT 25 .comment - 26: 0000000000000000 0 FILE LOCAL DEFAULT ABS Scrt1.o - 27: 0000000000000278 0 NOTYPE LOCAL DEFAULT 3 $d - 28: 0000000000000278 32 OBJECT LOCAL DEFAULT 3 __abi_tag - 29: 0000000000000600 0 NOTYPE LOCAL DEFAULT 13 $x - 30: 00000000000007f4 0 NOTYPE LOCAL DEFAULT 17 $d - 31: 00000000000007a0 0 NOTYPE LOCAL DEFAULT 15 $d - 32: 0000000000000000 0 FILE LOCAL DEFAULT ABS crti.o - 33: 0000000000000634 0 NOTYPE LOCAL DEFAULT 13 $x - 34: 0000000000000634 20 FUNC LOCAL DEFAULT 13 call_weak_fn - 35: 0000000000000580 0 NOTYPE LOCAL DEFAULT 11 $x - 36: 000000000000078c 0 NOTYPE LOCAL DEFAULT 14 $x - 37: 0000000000000000 0 FILE LOCAL DEFAULT ABS crtn.o - 38: 0000000000000590 0 NOTYPE LOCAL DEFAULT 11 $x - 39: 0000000000000798 0 NOTYPE LOCAL DEFAULT 14 $x - 40: 0000000000000000 0 FILE LOCAL DEFAULT ABS crtstuff.c - 41: 0000000000000650 0 NOTYPE LOCAL DEFAULT 13 $x - 42: 0000000000000650 0 FUNC LOCAL DEFAULT 13 deregister_tm_clones - 43: 0000000000000680 0 FUNC LOCAL DEFAULT 13 register_tm_clones - 44: 0000000000011028 0 NOTYPE LOCAL DEFAULT 23 $d - 45: 00000000000006c0 0 FUNC LOCAL DEFAULT 13 __do_global_dtors_aux - 46: 0000000000011030 1 OBJECT LOCAL DEFAULT 24 completed.0 - 47: 0000000000010dd0 0 NOTYPE LOCAL DEFAULT 19 $d - 48: 0000000000010dd0 0 OBJECT LOCAL DEFAULT 19 __do_global_dtors_aux_fini_array_entry - 49: 0000000000000710 0 FUNC LOCAL DEFAULT 13 frame_dummy - 50: 0000000000010dc8 0 NOTYPE LOCAL DEFAULT 18 $d - 51: 0000000000010dc8 0 OBJECT LOCAL DEFAULT 18 __frame_dummy_init_array_entry - 52: 0000000000000808 0 NOTYPE LOCAL DEFAULT 17 $d - 53: 0000000000011030 0 NOTYPE LOCAL DEFAULT 24 $d - 54: 0000000000000000 0 FILE LOCAL DEFAULT ABS basic_operation_evaluation.c - 55: 0000000000000714 0 NOTYPE LOCAL DEFAULT 13 $x.0 - 56: 000000000000002a 0 NOTYPE LOCAL DEFAULT 25 $d.1 - 57: 0000000000000868 0 NOTYPE LOCAL DEFAULT 17 $d.2 - 58: 0000000000000000 0 FILE LOCAL DEFAULT ABS crtstuff.c - 59: 0000000000000894 0 NOTYPE LOCAL DEFAULT 17 $d - 60: 0000000000000894 0 OBJECT LOCAL DEFAULT 17 __FRAME_END__ - 61: 0000000000000000 0 FILE LOCAL DEFAULT ABS - 62: 0000000000010dd8 0 OBJECT LOCAL DEFAULT ABS _DYNAMIC - 63: 00000000000007a4 0 NOTYPE LOCAL DEFAULT 16 __GNU_EH_FRAME_HDR - 64: 0000000000010fb8 0 OBJECT LOCAL DEFAULT ABS _GLOBAL_OFFSET_TABLE_ - 65: 00000000000005a0 0 NOTYPE LOCAL DEFAULT 12 $x - 66: 0000000000000000 0 FUNC GLOBAL DEFAULT UND __libc_start_main@GLIBC_2.34 - 67: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_deregisterTMCloneTable - 68: 0000000000011020 0 NOTYPE WEAK DEFAULT 23 data_start - 69: 0000000000011030 0 NOTYPE GLOBAL DEFAULT 24 __bss_start__ - 70: 0000000000000000 0 FUNC WEAK DEFAULT UND __cxa_finalize@GLIBC_2.17 - 71: 0000000000011038 0 NOTYPE GLOBAL DEFAULT 24 _bss_end__ - 72: 0000000000011030 0 NOTYPE GLOBAL DEFAULT 23 _edata - 73: 000000000000078c 0 FUNC GLOBAL HIDDEN 14 _fini - 74: 0000000000011038 0 NOTYPE GLOBAL DEFAULT 24 __bss_end__ - 75: 0000000000011020 0 NOTYPE GLOBAL DEFAULT 23 __data_start - 76: 0000000000000000 0 NOTYPE WEAK DEFAULT UND __gmon_start__ - 77: 0000000000011028 0 OBJECT GLOBAL HIDDEN 23 __dso_handle - 78: 0000000000000000 0 FUNC GLOBAL DEFAULT UND abort@GLIBC_2.17 - 79: 00000000000007a0 4 OBJECT GLOBAL DEFAULT 15 _IO_stdin_used - 80: 0000000000011038 0 NOTYPE GLOBAL DEFAULT 24 _end - 81: 0000000000000600 52 FUNC GLOBAL DEFAULT 13 _start - 82: 0000000000011038 0 NOTYPE GLOBAL DEFAULT 24 __end__ - 83: 0000000000011030 0 NOTYPE GLOBAL DEFAULT 24 __bss_start - 84: 0000000000000714 120 FUNC GLOBAL DEFAULT 13 main - 85: 0000000000011030 0 OBJECT GLOBAL HIDDEN 23 __TMC_END__ - 86: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_registerTMCloneTable - 87: 0000000000000580 0 FUNC GLOBAL HIDDEN 11 _init diff --git a/src/test/correct/basic_operation_evaluation/clang/basic_operation_evaluation_gtirb.expected b/src/test/correct/basic_operation_evaluation/clang/basic_operation_evaluation_gtirb.expected index b63193c71..f1f30cc9b 100644 --- a/src/test/correct/basic_operation_evaluation/clang/basic_operation_evaluation_gtirb.expected +++ b/src/test/correct/basic_operation_evaluation/clang/basic_operation_evaluation_gtirb.expected @@ -1,52 +1,10 @@ -var {:extern} CF: bv1; -var {:extern} Gamma_CF: bool; -var {:extern} Gamma_NF: bool; var {:extern} Gamma_R0: bool; -var {:extern} Gamma_R1: bool; -var {:extern} Gamma_R10: bool; -var {:extern} Gamma_R31: bool; -var {:extern} Gamma_R8: bool; -var {:extern} Gamma_R9: bool; -var {:extern} Gamma_VF: bool; -var {:extern} Gamma_ZF: bool; var {:extern} Gamma_mem: [bv64]bool; -var {:extern} Gamma_stack: [bv64]bool; -var {:extern} NF: bv1; var {:extern} R0: bv64; -var {:extern} R1: bv64; -var {:extern} R10: bv64; -var {:extern} R31: bv64; -var {:extern} R8: bv64; -var {:extern} R9: bv64; -var {:extern} VF: bv1; -var {:extern} ZF: bv1; var {:extern} mem: [bv64]bv8; -var {:extern} stack: [bv64]bv8; const {:extern} $_IO_stdin_used_addr: bv64; -axiom ($_IO_stdin_used_addr == 1952bv64); -function {:extern} {:bvbuiltin "bvadd"} bvadd32(bv32, bv32) returns (bv32); -function {:extern} {:bvbuiltin "bvadd"} bvadd33(bv33, bv33) returns (bv33); +axiom ($_IO_stdin_used_addr == 2224bv64); function {:extern} {:bvbuiltin "bvadd"} bvadd64(bv64, bv64) returns (bv64); -function {:extern} {:bvbuiltin "bvcomp"} bvcomp32(bv32, bv32) returns (bv1); -function {:extern} {:bvbuiltin "bvcomp"} bvcomp33(bv33, bv33) returns (bv1); -function {:extern} {:bvbuiltin "bvmul"} bvmul64(bv64, bv64) returns (bv64); -function {:extern} {:bvbuiltin "bvnot"} bvnot1(bv1) returns (bv1); -function {:extern} {:bvbuiltin "bvnot"} bvnot32(bv32) returns (bv32); -function {:extern} {:bvbuiltin "bvor"} bvor32(bv32, bv32) returns (bv32); -function {:extern} {:bvbuiltin "bvsdiv"} bvsdiv33(bv33, bv33) returns (bv33); -function {:extern} {:bvbuiltin "bvxor"} bvxor32(bv32, bv32) returns (bv32); -function {:extern} gamma_load32(gammaMap: [bv64]bool, index: bv64) returns (bool) { - (gammaMap[bvadd64(index, 3bv64)] && (gammaMap[bvadd64(index, 2bv64)] && (gammaMap[bvadd64(index, 1bv64)] && gammaMap[index]))) -} - -function {:extern} gamma_store32(gammaMap: [bv64]bool, index: bv64, value: bool) returns ([bv64]bool) { - gammaMap[index := value][bvadd64(index, 1bv64) := value][bvadd64(index, 2bv64) := value][bvadd64(index, 3bv64) := value] -} - -function {:extern} gamma_store64(gammaMap: [bv64]bool, index: bv64, value: bool) returns ([bv64]bool) { - gammaMap[index := value][bvadd64(index, 1bv64) := value][bvadd64(index, 2bv64) := value][bvadd64(index, 3bv64) := value][bvadd64(index, 4bv64) := value][bvadd64(index, 5bv64) := value][bvadd64(index, 6bv64) := value][bvadd64(index, 7bv64) := value] -} - function {:extern} memory_load32_le(memory: [bv64]bv8, index: bv64) returns (bv32) { (memory[bvadd64(index, 3bv64)] ++ (memory[bvadd64(index, 2bv64)] ++ (memory[bvadd64(index, 1bv64)] ++ memory[index]))) } @@ -55,26 +13,15 @@ function {:extern} memory_load64_le(memory: [bv64]bv8, index: bv64) returns (bv6 (memory[bvadd64(index, 7bv64)] ++ (memory[bvadd64(index, 6bv64)] ++ (memory[bvadd64(index, 5bv64)] ++ (memory[bvadd64(index, 4bv64)] ++ (memory[bvadd64(index, 3bv64)] ++ (memory[bvadd64(index, 2bv64)] ++ (memory[bvadd64(index, 1bv64)] ++ memory[index]))))))) } -function {:extern} memory_store32_le(memory: [bv64]bv8, index: bv64, value: bv32) returns ([bv64]bv8) { - memory[index := value[8:0]][bvadd64(index, 1bv64) := value[16:8]][bvadd64(index, 2bv64) := value[24:16]][bvadd64(index, 3bv64) := value[32:24]] -} - -function {:extern} memory_store64_le(memory: [bv64]bv8, index: bv64, value: bv64) returns ([bv64]bv8) { - memory[index := value[8:0]][bvadd64(index, 1bv64) := value[16:8]][bvadd64(index, 2bv64) := value[24:16]][bvadd64(index, 3bv64) := value[32:24]][bvadd64(index, 4bv64) := value[40:32]][bvadd64(index, 5bv64) := value[48:40]][bvadd64(index, 6bv64) := value[56:48]][bvadd64(index, 7bv64) := value[64:56]] -} - -function {:extern} {:bvbuiltin "sign_extend 1"} sign_extend1_32(bv32) returns (bv33); -function {:extern} {:bvbuiltin "zero_extend 1"} zero_extend1_32(bv32) returns (bv33); -function {:extern} {:bvbuiltin "zero_extend 32"} zero_extend32_32(bv32) returns (bv64); procedure {:extern} rely(); modifies Gamma_mem, mem; ensures (Gamma_mem == old(Gamma_mem)); ensures (mem == old(mem)); - free ensures (memory_load32_le(mem, 1952bv64) == 131073bv32); - free ensures (memory_load64_le(mem, 69064bv64) == 1808bv64); - free ensures (memory_load64_le(mem, 69072bv64) == 1728bv64); - free ensures (memory_load64_le(mem, 69592bv64) == 1812bv64); - free ensures (memory_load64_le(mem, 69672bv64) == 69672bv64); + free ensures (memory_load32_le(mem, 2224bv64) == 131073bv32); + free ensures (memory_load64_le(mem, 130440bv64) == 2192bv64); + free ensures (memory_load64_le(mem, 130448bv64) == 2112bv64); + free ensures (memory_load64_le(mem, 131056bv64) == 2196bv64); + free ensures (memory_load64_le(mem, 131080bv64) == 131080bv64); procedure {:extern} rely_transitive(); modifies Gamma_mem, mem; @@ -92,110 +39,29 @@ procedure {:extern} rely_reflexive(); procedure {:extern} guarantee_reflexive(); modifies Gamma_mem, mem; -procedure main_1812(); - modifies CF, Gamma_CF, Gamma_NF, Gamma_R0, Gamma_R10, Gamma_R31, Gamma_R8, Gamma_R9, Gamma_VF, Gamma_ZF, Gamma_stack, NF, R0, R10, R31, R8, R9, VF, ZF, stack; - free requires (memory_load64_le(mem, 69664bv64) == 0bv64); - free requires (memory_load64_le(mem, 69672bv64) == 69672bv64); - free requires (memory_load32_le(mem, 1952bv64) == 131073bv32); - free requires (memory_load64_le(mem, 69064bv64) == 1808bv64); - free requires (memory_load64_le(mem, 69072bv64) == 1728bv64); - free requires (memory_load64_le(mem, 69592bv64) == 1812bv64); - free requires (memory_load64_le(mem, 69672bv64) == 69672bv64); - free ensures (Gamma_R31 == old(Gamma_R31)); - free ensures (R31 == old(R31)); - free ensures (memory_load32_le(mem, 1952bv64) == 131073bv32); - free ensures (memory_load64_le(mem, 69064bv64) == 1808bv64); - free ensures (memory_load64_le(mem, 69072bv64) == 1728bv64); - free ensures (memory_load64_le(mem, 69592bv64) == 1812bv64); - free ensures (memory_load64_le(mem, 69672bv64) == 69672bv64); +procedure main(); + modifies Gamma_R0, R0; + free requires (memory_load64_le(mem, 131072bv64) == 0bv64); + free requires (memory_load64_le(mem, 131080bv64) == 131080bv64); + free requires (memory_load32_le(mem, 2224bv64) == 131073bv32); + free requires (memory_load64_le(mem, 130440bv64) == 2192bv64); + free requires (memory_load64_le(mem, 130448bv64) == 2112bv64); + free requires (memory_load64_le(mem, 131056bv64) == 2196bv64); + free requires (memory_load64_le(mem, 131080bv64) == 131080bv64); + free ensures (memory_load32_le(mem, 2224bv64) == 131073bv32); + free ensures (memory_load64_le(mem, 130440bv64) == 2192bv64); + free ensures (memory_load64_le(mem, 130448bv64) == 2112bv64); + free ensures (memory_load64_le(mem, 131056bv64) == 2196bv64); + free ensures (memory_load64_le(mem, 131080bv64) == 131080bv64); -implementation main_1812() +implementation main() { - var Cse0__5_0_26: bv32; - var Cse2__5_0_26: bv32; - var Gamma_Cse0__5_0_26: bool; - var Gamma_Cse2__5_0_26: bool; - var Gamma_load19: bool; - var Gamma_load20: bool; - var Gamma_load21: bool; - var Gamma_load22: bool; - var Gamma_load23: bool; - var Gamma_load24: bool; - var load19: bv32; - var load20: bv32; - var load21: bv32; - var load22: bv32; - var load23: bv32; - var load24: bv32; - main_1812__0__f_18rgXZQX6Lj31g4VI6BQ: - assume {:captureState "main_1812__0__f_18rgXZQX6Lj31g4VI6BQ"} true; - R31, Gamma_R31 := bvadd64(R31, 18446744073709551584bv64), Gamma_R31; - R8, Gamma_R8 := zero_extend32_32(R0[32:0]), Gamma_R0; + $main$__0__$cdQ2GS2~QhaOa7OUvPWMRQ: + assume {:captureState "$main$__0__$cdQ2GS2~QhaOa7OUvPWMRQ"} true; R0, Gamma_R0 := 0bv64, true; - stack, Gamma_stack := memory_store32_le(stack, bvadd64(R31, 28bv64), 0bv32), gamma_store32(Gamma_stack, bvadd64(R31, 28bv64), true); - assume {:captureState "1824_0"} true; - stack, Gamma_stack := memory_store32_le(stack, bvadd64(R31, 24bv64), R8[32:0]), gamma_store32(Gamma_stack, bvadd64(R31, 24bv64), Gamma_R8); - assume {:captureState "1828_0"} true; - stack, Gamma_stack := memory_store64_le(stack, bvadd64(R31, 16bv64), R1), gamma_store64(Gamma_stack, bvadd64(R31, 16bv64), Gamma_R1); - assume {:captureState "1832_0"} true; - R8, Gamma_R8 := 2bv64, true; - stack, Gamma_stack := memory_store32_le(stack, bvadd64(R31, 12bv64), R8[32:0]), gamma_store32(Gamma_stack, bvadd64(R31, 12bv64), Gamma_R8); - assume {:captureState "1840_0"} true; - R8, Gamma_R8 := 3bv64, true; - stack, Gamma_stack := memory_store32_le(stack, bvadd64(R31, 8bv64), R8[32:0]), gamma_store32(Gamma_stack, bvadd64(R31, 8bv64), Gamma_R8); - assume {:captureState "1848_0"} true; - load19, Gamma_load19 := memory_load32_le(stack, bvadd64(R31, 12bv64)), gamma_load32(Gamma_stack, bvadd64(R31, 12bv64)); - R8, Gamma_R8 := zero_extend32_32(load19), Gamma_load19; - load20, Gamma_load20 := memory_load32_le(stack, bvadd64(R31, 8bv64)), gamma_load32(Gamma_stack, bvadd64(R31, 8bv64)); - R9, Gamma_R9 := zero_extend32_32(load20), Gamma_load20; - R8, Gamma_R8 := zero_extend32_32(bvxor32(R8[32:0], R9[32:0])), (Gamma_R9 && Gamma_R8); - stack, Gamma_stack := memory_store32_le(stack, bvadd64(R31, 4bv64), R8[32:0]), gamma_store32(Gamma_stack, bvadd64(R31, 4bv64), Gamma_R8); - assume {:captureState "1864_0"} true; - load21, Gamma_load21 := memory_load32_le(stack, bvadd64(R31, 12bv64)), gamma_load32(Gamma_stack, bvadd64(R31, 12bv64)); - R8, Gamma_R8 := zero_extend32_32(load21), Gamma_load21; - load22, Gamma_load22 := memory_load32_le(stack, bvadd64(R31, 4bv64)), gamma_load32(Gamma_stack, bvadd64(R31, 4bv64)); - R9, Gamma_R9 := zero_extend32_32(load22), Gamma_load22; - R8, Gamma_R8 := zero_extend32_32(bvor32(R8[32:0], R9[32:0])), (Gamma_R9 && Gamma_R8); - stack, Gamma_stack := memory_store32_le(stack, bvadd64(R31, 8bv64), R8[32:0]), gamma_store32(Gamma_stack, bvadd64(R31, 8bv64), Gamma_R8); - assume {:captureState "1880_0"} true; - R8, Gamma_R8 := 30bv64, true; - stack, Gamma_stack := memory_store32_le(stack, bvadd64(R31, 12bv64), R8[32:0]), gamma_store32(Gamma_stack, bvadd64(R31, 12bv64), Gamma_R8); - assume {:captureState "1888_0"} true; - R8, Gamma_R8 := 17bv64, true; - stack, Gamma_stack := memory_store32_le(stack, bvadd64(R31, 8bv64), R8[32:0]), gamma_store32(Gamma_stack, bvadd64(R31, 8bv64), Gamma_R8); - assume {:captureState "1896_0"} true; - load23, Gamma_load23 := memory_load32_le(stack, bvadd64(R31, 12bv64)), gamma_load32(Gamma_stack, bvadd64(R31, 12bv64)); - R8, Gamma_R8 := zero_extend32_32(load23), Gamma_load23; - load24, Gamma_load24 := memory_load32_le(stack, bvadd64(R31, 8bv64)), gamma_load32(Gamma_stack, bvadd64(R31, 8bv64)); - R10, Gamma_R10 := zero_extend32_32(load24), Gamma_load24; - assert Gamma_R10; - goto main_1812__0__f_18rgXZQX6Lj31g4VI6BQ$__0, main_1812__0__f_18rgXZQX6Lj31g4VI6BQ$__1; - main_1812__0__f_18rgXZQX6Lj31g4VI6BQ$__1: - assume {:captureState "main_1812__0__f_18rgXZQX6Lj31g4VI6BQ$__1"} true; - assume (!(R10[32:0] == 0bv32)); - R9, Gamma_R9 := zero_extend32_32(bvsdiv33(sign_extend1_32(R8[32:0]), sign_extend1_32(R10[32:0]))[32:0]), (Gamma_R10 && Gamma_R8); - goto main_1812__0__f_18rgXZQX6Lj31g4VI6BQ$__2; - main_1812__0__f_18rgXZQX6Lj31g4VI6BQ$__0: - assume {:captureState "main_1812__0__f_18rgXZQX6Lj31g4VI6BQ$__0"} true; - assume (R10[32:0] == 0bv32); - R9, Gamma_R9 := 0bv64, true; - goto main_1812__0__f_18rgXZQX6Lj31g4VI6BQ$__2; - main_1812__0__f_18rgXZQX6Lj31g4VI6BQ$__2: - assume {:captureState "main_1812__0__f_18rgXZQX6Lj31g4VI6BQ$__2"} true; - R9, Gamma_R9 := zero_extend32_32(bvmul64(zero_extend32_32(R9[32:0]), zero_extend32_32(R10[32:0]))[32:0]), (Gamma_R10 && Gamma_R9); - Cse2__5_0_26, Gamma_Cse2__5_0_26 := bvnot32(R9[32:0]), Gamma_R9; - Cse0__5_0_26, Gamma_Cse0__5_0_26 := bvadd32(R8[32:0], bvnot32(R9[32:0])), (Gamma_R9 && Gamma_R8); - VF, Gamma_VF := bvnot1(bvcomp33(sign_extend1_32(bvadd32(Cse0__5_0_26, 1bv32)), bvadd33(bvadd33(sign_extend1_32(R8[32:0]), sign_extend1_32(Cse2__5_0_26)), 1bv33))), (Gamma_Cse2__5_0_26 && (Gamma_R8 && Gamma_Cse0__5_0_26)); - CF, Gamma_CF := bvnot1(bvcomp33(zero_extend1_32(bvadd32(Cse0__5_0_26, 1bv32)), bvadd33(bvadd33(zero_extend1_32(R8[32:0]), zero_extend1_32(Cse2__5_0_26)), 1bv33))), (Gamma_Cse2__5_0_26 && (Gamma_R8 && Gamma_Cse0__5_0_26)); - ZF, Gamma_ZF := bvcomp32(bvadd32(Cse0__5_0_26, 1bv32), 0bv32), Gamma_Cse0__5_0_26; - NF, Gamma_NF := bvadd32(Cse0__5_0_26, 1bv32)[32:31], Gamma_Cse0__5_0_26; - R8, Gamma_R8 := zero_extend32_32(bvadd32(Cse0__5_0_26, 1bv32)), Gamma_Cse0__5_0_26; - stack, Gamma_stack := memory_store32_le(stack, bvadd64(R31, 4bv64), R8[32:0]), gamma_store32(Gamma_stack, bvadd64(R31, 4bv64), Gamma_R8); - assume {:captureState "1920_0"} true; - R31, Gamma_R31 := bvadd64(R31, 32bv64), Gamma_R31; - goto main_1812_basil_return; - main_1812_basil_return: - assume {:captureState "main_1812_basil_return"} true; + goto main_basil_return; + main_basil_return: + assume {:captureState "main_basil_return"} true; return; } diff --git a/src/test/correct/basic_operation_evaluation/gcc/basic_operation_evaluation.adt b/src/test/correct/basic_operation_evaluation/gcc/basic_operation_evaluation.adt deleted file mode 100644 index b2cd405ea..000000000 --- a/src/test/correct/basic_operation_evaluation/gcc/basic_operation_evaluation.adt +++ /dev/null @@ -1,576 +0,0 @@ -Project(Attrs([Attr("filename","\"gcc/basic_operation_evaluation.out\""), -Attr("image-specification","(declare abi (name str))\n(declare arch (name str))\n(declare base-address (addr int))\n(declare bias (off int))\n(declare bits (size int))\n(declare code-region (addr int) (size int) (off int))\n(declare code-start (addr int))\n(declare entry-point (addr int))\n(declare external-reference (addr int) (name str))\n(declare format (name str))\n(declare is-executable (flag bool))\n(declare is-little-endian (flag bool))\n(declare llvm:base-address (addr int))\n(declare llvm:code-entry (name str) (off int) (size int))\n(declare llvm:coff-import-library (name str))\n(declare llvm:coff-virtual-section-header (name str) (addr int) (size int))\n(declare llvm:elf-program-header (name str) (off int) (size int))\n(declare llvm:elf-program-header-flags (name str) (ld bool) (r bool) \n (w bool) (x bool))\n(declare llvm:elf-virtual-program-header (name str) (addr int) (size int))\n(declare llvm:entry-point (addr int))\n(declare llvm:macho-symbol (name str) (value int))\n(declare llvm:name-reference (at int) (name str))\n(declare llvm:relocation (at int) (addr int))\n(declare llvm:section-entry (name str) (addr int) (size int) (off int))\n(declare llvm:section-flags (name str) (r bool) (w bool) (x bool))\n(declare llvm:segment-command (name str) (off int) (size int))\n(declare llvm:segment-command-flags (name str) (r bool) (w bool) (x bool))\n(declare llvm:symbol-entry (name str) (addr int) (size int) (off int)\n (value int))\n(declare llvm:virtual-segment-command (name str) (addr int) (size int))\n(declare mapped (addr int) (size int) (off int))\n(declare named-region (addr int) (size int) (name str))\n(declare named-symbol (addr int) (name str))\n(declare require (name str))\n(declare section (addr int) (size int))\n(declare segment (addr int) (size int) (r bool) (w bool) (x bool))\n(declare subarch (name str))\n(declare symbol-chunk (addr int) (size int) (root int))\n(declare symbol-value (addr int) (value int))\n(declare system (name str))\n(declare vendor (name str))\n\n(abi unknown)\n(arch aarch64)\n(base-address 0)\n(bias 0)\n(bits 64)\n(code-region 1928 20 1928)\n(code-region 1536 392 1536)\n(code-region 1440 96 1440)\n(code-region 1408 24 1408)\n(code-start 1588)\n(code-start 1536)\n(code-start 1812)\n(entry-point 1536)\n(external-reference 69592 _ITM_deregisterTMCloneTable)\n(external-reference 69600 __cxa_finalize)\n(external-reference 69608 __gmon_start__)\n(external-reference 69624 _ITM_registerTMCloneTable)\n(external-reference 69552 __libc_start_main)\n(external-reference 69560 __cxa_finalize)\n(external-reference 69568 __gmon_start__)\n(external-reference 69576 abort)\n(format elf)\n(is-executable true)\n(is-little-endian true)\n(llvm:base-address 0)\n(llvm:code-entry abort 0 0)\n(llvm:code-entry __cxa_finalize 0 0)\n(llvm:code-entry __libc_start_main 0 0)\n(llvm:code-entry _init 1408 0)\n(llvm:code-entry main 1812 116)\n(llvm:code-entry _start 1536 52)\n(llvm:code-entry abort@GLIBC_2.17 0 0)\n(llvm:code-entry _fini 1928 0)\n(llvm:code-entry __cxa_finalize@GLIBC_2.17 0 0)\n(llvm:code-entry __libc_start_main@GLIBC_2.34 0 0)\n(llvm:code-entry frame_dummy 1808 0)\n(llvm:code-entry __do_global_dtors_aux 1728 0)\n(llvm:code-entry register_tm_clones 1664 0)\n(llvm:code-entry deregister_tm_clones 1616 0)\n(llvm:code-entry call_weak_fn 1588 20)\n(llvm:code-entry .fini 1928 20)\n(llvm:code-entry .text 1536 392)\n(llvm:code-entry .plt 1440 96)\n(llvm:code-entry .init 1408 24)\n(llvm:elf-program-header 08 3480 616)\n(llvm:elf-program-header 07 0 0)\n(llvm:elf-program-header 06 1952 60)\n(llvm:elf-program-header 05 596 68)\n(llvm:elf-program-header 04 3496 496)\n(llvm:elf-program-header 03 3480 632)\n(llvm:elf-program-header 02 0 2180)\n(llvm:elf-program-header 01 568 27)\n(llvm:elf-program-header 00 64 504)\n(llvm:elf-program-header-flags 08 false true false false)\n(llvm:elf-program-header-flags 07 false true true false)\n(llvm:elf-program-header-flags 06 false true false false)\n(llvm:elf-program-header-flags 05 false true false false)\n(llvm:elf-program-header-flags 04 false true true false)\n(llvm:elf-program-header-flags 03 true true true false)\n(llvm:elf-program-header-flags 02 true true false true)\n(llvm:elf-program-header-flags 01 false true false false)\n(llvm:elf-program-header-flags 00 false true false false)\n(llvm:elf-virtual-program-header 08 69016 616)\n(llvm:elf-virtual-program-header 07 0 0)\n(llvm:elf-virtual-program-header 06 1952 60)\n(llvm:elf-virtual-program-header 05 596 68)\n(llvm:elf-virtual-program-header 04 69032 496)\n(llvm:elf-virtual-program-header 03 69016 640)\n(llvm:elf-virtual-program-header 02 0 2180)\n(llvm:elf-virtual-program-header 01 568 27)\n(llvm:elf-virtual-program-header 00 64 504)\n(llvm:entry-point 1536)\n(llvm:name-reference 69576 abort)\n(llvm:name-reference 69568 __gmon_start__)\n(llvm:name-reference 69560 __cxa_finalize)\n(llvm:name-reference 69552 __libc_start_main)\n(llvm:name-reference 69624 _ITM_registerTMCloneTable)\n(llvm:name-reference 69608 __gmon_start__)\n(llvm:name-reference 69600 __cxa_finalize)\n(llvm:name-reference 69592 _ITM_deregisterTMCloneTable)\n(llvm:section-entry .shstrtab 0 250 6786)\n(llvm:section-entry .strtab 0 562 6224)\n(llvm:section-entry .symtab 0 2064 4160)\n(llvm:section-entry .comment 0 43 4112)\n(llvm:section-entry .bss 69648 8 4112)\n(llvm:section-entry .data 69632 16 4096)\n(llvm:section-entry .got 69528 104 3992)\n(llvm:section-entry .dynamic 69032 496 3496)\n(llvm:section-entry .fini_array 69024 8 3488)\n(llvm:section-entry .init_array 69016 8 3480)\n(llvm:section-entry .eh_frame 2016 164 2016)\n(llvm:section-entry .eh_frame_hdr 1952 60 1952)\n(llvm:section-entry .rodata 1948 4 1948)\n(llvm:section-entry .fini 1928 20 1928)\n(llvm:section-entry .text 1536 392 1536)\n(llvm:section-entry .plt 1440 96 1440)\n(llvm:section-entry .init 1408 24 1408)\n(llvm:section-entry .rela.plt 1312 96 1312)\n(llvm:section-entry .rela.dyn 1120 192 1120)\n(llvm:section-entry .gnu.version_r 1072 48 1072)\n(llvm:section-entry .gnu.version 1054 18 1054)\n(llvm:section-entry .dynstr 912 141 912)\n(llvm:section-entry .dynsym 696 216 696)\n(llvm:section-entry .gnu.hash 664 28 664)\n(llvm:section-entry .note.ABI-tag 632 32 632)\n(llvm:section-entry .note.gnu.build-id 596 36 596)\n(llvm:section-entry .interp 568 27 568)\n(llvm:section-flags .shstrtab true false false)\n(llvm:section-flags .strtab true false false)\n(llvm:section-flags .symtab true false false)\n(llvm:section-flags .comment true false false)\n(llvm:section-flags .bss true true false)\n(llvm:section-flags .data true true false)\n(llvm:section-flags .got true true false)\n(llvm:section-flags .dynamic true true false)\n(llvm:section-flags .fini_array true true false)\n(llvm:section-flags .init_array true true false)\n(llvm:section-flags .eh_frame true false false)\n(llvm:section-flags .eh_frame_hdr true false false)\n(llvm:section-flags .rodata true false false)\n(llvm:section-flags .fini true false true)\n(llvm:section-flags .text true false true)\n(llvm:section-flags .plt true false true)\n(llvm:section-flags .init true false true)\n(llvm:section-flags .rela.plt true false false)\n(llvm:section-flags .rela.dyn true false false)\n(llvm:section-flags .gnu.version_r true false false)\n(llvm:section-flags .gnu.version true false false)\n(llvm:section-flags .dynstr true false false)\n(llvm:section-flags .dynsym true false false)\n(llvm:section-flags .gnu.hash true false false)\n(llvm:section-flags .note.ABI-tag true false false)\n(llvm:section-flags .note.gnu.build-id true false false)\n(llvm:section-flags .interp true false false)\n(llvm:symbol-entry abort 0 0 0 0)\n(llvm:symbol-entry __cxa_finalize 0 0 0 0)\n(llvm:symbol-entry __libc_start_main 0 0 0 0)\n(llvm:symbol-entry _init 1408 0 1408 1408)\n(llvm:symbol-entry main 1812 116 1812 1812)\n(llvm:symbol-entry _start 1536 52 1536 1536)\n(llvm:symbol-entry abort@GLIBC_2.17 0 0 0 0)\n(llvm:symbol-entry _fini 1928 0 1928 1928)\n(llvm:symbol-entry __cxa_finalize@GLIBC_2.17 0 0 0 0)\n(llvm:symbol-entry __libc_start_main@GLIBC_2.34 0 0 0 0)\n(llvm:symbol-entry frame_dummy 1808 0 1808 1808)\n(llvm:symbol-entry __do_global_dtors_aux 1728 0 1728 1728)\n(llvm:symbol-entry register_tm_clones 1664 0 1664 1664)\n(llvm:symbol-entry deregister_tm_clones 1616 0 1616 1616)\n(llvm:symbol-entry call_weak_fn 1588 20 1588 1588)\n(mapped 0 2180 0)\n(mapped 69016 632 3480)\n(named-region 0 2180 02)\n(named-region 69016 640 03)\n(named-region 568 27 .interp)\n(named-region 596 36 .note.gnu.build-id)\n(named-region 632 32 .note.ABI-tag)\n(named-region 664 28 .gnu.hash)\n(named-region 696 216 .dynsym)\n(named-region 912 141 .dynstr)\n(named-region 1054 18 .gnu.version)\n(named-region 1072 48 .gnu.version_r)\n(named-region 1120 192 .rela.dyn)\n(named-region 1312 96 .rela.plt)\n(named-region 1408 24 .init)\n(named-region 1440 96 .plt)\n(named-region 1536 392 .text)\n(named-region 1928 20 .fini)\n(named-region 1948 4 .rodata)\n(named-region 1952 60 .eh_frame_hdr)\n(named-region 2016 164 .eh_frame)\n(named-region 69016 8 .init_array)\n(named-region 69024 8 .fini_array)\n(named-region 69032 496 .dynamic)\n(named-region 69528 104 .got)\n(named-region 69632 16 .data)\n(named-region 69648 8 .bss)\n(named-region 0 43 .comment)\n(named-region 0 2064 .symtab)\n(named-region 0 562 .strtab)\n(named-region 0 250 .shstrtab)\n(named-symbol 1588 call_weak_fn)\n(named-symbol 1616 deregister_tm_clones)\n(named-symbol 1664 register_tm_clones)\n(named-symbol 1728 __do_global_dtors_aux)\n(named-symbol 1808 frame_dummy)\n(named-symbol 0 __libc_start_main@GLIBC_2.34)\n(named-symbol 0 __cxa_finalize@GLIBC_2.17)\n(named-symbol 1928 _fini)\n(named-symbol 0 abort@GLIBC_2.17)\n(named-symbol 1536 _start)\n(named-symbol 1812 main)\n(named-symbol 1408 _init)\n(named-symbol 0 __libc_start_main)\n(named-symbol 0 __cxa_finalize)\n(named-symbol 0 abort)\n(require libc.so.6)\n(section 568 27)\n(section 596 36)\n(section 632 32)\n(section 664 28)\n(section 696 216)\n(section 912 141)\n(section 1054 18)\n(section 1072 48)\n(section 1120 192)\n(section 1312 96)\n(section 1408 24)\n(section 1440 96)\n(section 1536 392)\n(section 1928 20)\n(section 1948 4)\n(section 1952 60)\n(section 2016 164)\n(section 69016 8)\n(section 69024 8)\n(section 69032 496)\n(section 69528 104)\n(section 69632 16)\n(section 69648 8)\n(section 0 43)\n(section 0 2064)\n(section 0 562)\n(section 0 250)\n(segment 0 2180 true false true)\n(segment 69016 640 true true false)\n(subarch v8)\n(symbol-chunk 1588 20 1588)\n(symbol-chunk 1536 52 1536)\n(symbol-chunk 1812 116 1812)\n(symbol-value 1588 1588)\n(symbol-value 1616 1616)\n(symbol-value 1664 1664)\n(symbol-value 1728 1728)\n(symbol-value 1808 1808)\n(symbol-value 1928 1928)\n(symbol-value 1536 1536)\n(symbol-value 1812 1812)\n(symbol-value 1408 1408)\n(symbol-value 0 0)\n(system \"\")\n(vendor \"\")\n"), -Attr("abi-name","\"aarch64-linux-gnu-elf\"")]), -Sections([Section(".shstrtab", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x00\x06\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x80\x1b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x38\x00\x09\x00\x40\x00\x1c\x00\x1b\x00\x06\x00\x00\x00\x04\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x04\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x84\x08\x00\x00\x00\x00\x00\x00\x84\x08\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x01\x00\x00\x00\x06\x00\x00\x00\x98\x0d\x00\x00\x00\x00\x00\x00\x98\x0d"), -Section(".strtab", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x00\x06\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x80\x1b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x38\x00\x09\x00\x40\x00\x1c\x00\x1b\x00\x06\x00\x00\x00\x04\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x04\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x84\x08\x00\x00\x00\x00\x00\x00\x84\x08\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x01\x00\x00\x00\x06\x00\x00\x00\x98\x0d\x00\x00\x00\x00\x00\x00\x98\x0d\x01\x00\x00\x00\x00\x00\x98\x0d\x01\x00\x00\x00\x00\x00\x78\x02\x00\x00\x00\x00\x00\x00\x80\x02\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x02\x00\x00\x00\x06\x00\x00\x00\xa8\x0d\x00\x00\x00\x00\x00\x00\xa8\x0d\x01\x00\x00\x00\x00\x00\xa8\x0d\x01\x00\x00\x00\x00\x00\xf0\x01\x00\x00\x00\x00\x00\x00\xf0\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x04\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x50\xe5\x74\x64\x04\x00\x00\x00\xa0\x07\x00\x00\x00\x00\x00\x00\xa0\x07\x00\x00\x00\x00\x00\x00\xa0\x07\x00\x00\x00\x00\x00\x00\x3c\x00\x00\x00\x00\x00\x00\x00\x3c\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x51\xe5\x74\x64\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x52\xe5\x74\x64\x04\x00\x00\x00\x98\x0d\x00\x00\x00\x00\x00\x00\x98\x0d\x01\x00\x00\x00\x00\x00\x98\x0d\x01\x00\x00\x00\x00\x00\x68\x02\x00\x00\x00\x00\x00\x00\x68\x02\x00\x00\x00\x00\x00\x00\x01\x00"), -Section(".symtab", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x00\x06\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x80\x1b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x38\x00\x09\x00\x40\x00\x1c\x00\x1b\x00\x06\x00\x00\x00\x04\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x04\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x84\x08\x00\x00\x00\x00\x00\x00\x84\x08\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x01\x00\x00\x00\x06\x00\x00\x00\x98\x0d\x00\x00\x00\x00\x00\x00\x98\x0d\x01\x00\x00\x00\x00\x00\x98\x0d\x01\x00\x00\x00\x00\x00\x78\x02\x00\x00\x00\x00\x00\x00\x80\x02\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x02\x00\x00\x00\x06\x00\x00\x00\xa8\x0d\x00\x00\x00\x00\x00\x00\xa8\x0d\x01\x00\x00\x00\x00\x00\xa8\x0d\x01\x00\x00\x00\x00\x00\xf0\x01\x00\x00\x00\x00\x00\x00\xf0\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x04\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x50\xe5\x74\x64\x04\x00\x00\x00\xa0\x07\x00\x00\x00\x00\x00\x00\xa0\x07\x00\x00\x00\x00\x00\x00\xa0\x07\x00\x00\x00\x00\x00\x00\x3c\x00\x00\x00\x00\x00\x00\x00\x3c\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x51\xe5\x74\x64\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x52\xe5\x74\x64\x04\x00\x00\x00\x98\x0d\x00\x00\x00\x00\x00\x00\x98\x0d\x01\x00\x00\x00\x00\x00\x98\x0d\x01\x00\x00\x00\x00\x00\x68\x02\x00\x00\x00\x00\x00\x00\x68\x02\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x2f\x6c\x69\x62\x2f\x6c\x64\x2d\x6c\x69\x6e\x75\x78\x2d\x61\x61\x72\x63\x68\x36\x34\x2e\x73\x6f\x2e\x31\x00\x00\x04\x00\x00\x00\x14\x00\x00\x00\x03\x00\x00\x00\x47\x4e\x55\x00\x4c\x77\xa0\xbe\x70\xa9\x0b\x56\x02\x24\x73\xf2\xbc\xa6\x48\xde\x7e\xcb\x93\xbd\x04\x00\x00\x00\x10\x00\x00\x00\x01\x00\x00\x00\x47\x4e\x55\x00\x00\x00\x00\x00\x03\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x01\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x0b\x00\x80\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x16\x00\x00\x10\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x48\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x22\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x22\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x73\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5f\x5f\x63\x78\x61\x5f\x66\x69\x6e\x61\x6c\x69\x7a\x65\x00\x5f\x5f\x6c\x69\x62\x63\x5f\x73\x74\x61\x72\x74\x5f\x6d\x61\x69\x6e\x00\x61\x62\x6f\x72\x74\x00\x6c\x69\x62\x63\x2e\x73\x6f\x2e\x36\x00\x47\x4c\x49\x42\x43\x5f\x32\x2e\x31\x37\x00\x47\x4c\x49\x42\x43\x5f\x32\x2e\x33\x34\x00\x5f\x49\x54\x4d\x5f\x64\x65\x72\x65\x67\x69\x73\x74\x65\x72\x54\x4d\x43\x6c\x6f\x6e\x65\x54\x61\x62\x6c\x65\x00\x5f\x5f\x67\x6d\x6f\x6e\x5f\x73\x74\x61\x72\x74\x5f\x5f\x00\x5f\x49\x54\x4d\x5f\x72\x65\x67\x69\x73\x74\x65\x72\x54\x4d\x43\x6c\x6f\x6e\x65\x54\x61\x62\x6c\x65\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x01\x00\x03\x00\x01\x00\x03\x00\x01\x00\x01\x00\x02\x00\x28\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x97\x91\x96\x06\x00\x00\x03\x00\x32\x00\x00\x00\x10\x00\x00\x00\xb4\x91\x96\x06\x00\x00\x02\x00\x3d\x00\x00\x00\x00\x00\x00\x00\x98\x0d\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x10\x07\x00\x00\x00\x00\x00\x00\xa0\x0d\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\xc0\x06\x00\x00\x00\x00\x00\x00\xf0\x0f\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x14\x07\x00\x00\x00\x00\x00\x00\x08\x10\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x08\x10\x01\x00\x00\x00\x00\x00\xd8\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe0\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe8\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xf8\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xb0\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xb8\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xc0\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xc8\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1f\x20\x03\xd5\xfd\x7b\xbf\xa9\xfd\x03\x00\x91\x2a\x00\x00\x94\xfd\x7b\xc1\xa8\xc0\x03\x5f\xd6\x00\x00\x00\x00\x00\x00\x00\x00\xf0\x7b\xbf\xa9\x90\x00\x00\x90\x11\xd6\x47\xf9\x10\xa2\x3e\x91\x20\x02\x1f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x90\x00\x00\x90\x11\xda\x47\xf9\x10\xc2\x3e\x91\x20\x02\x1f\xd6\x90\x00\x00\x90\x11\xde\x47\xf9\x10\xe2\x3e\x91\x20\x02\x1f\xd6\x90\x00\x00\x90\x11\xe2\x47\xf9\x10\x02\x3f\x91\x20\x02\x1f\xd6\x90\x00\x00\x90\x11\xe6\x47\xf9\x10\x22\x3f\x91\x20\x02\x1f\xd6\x1f\x20\x03\xd5\x1d\x00\x80\xd2\x1e\x00\x80\xd2\xe5\x03\x00\xaa\xe1\x03\x40\xf9\xe2\x23\x00\x91\xe6\x03\x00\x91\x80\x00\x00\x90\x00\xf8\x47\xf9\x03\x00\x80\xd2\x04\x00\x80\xd2\xe5\xff\xff\x97\xf0\xff\xff\x97\x80\x00\x00\x90\x00\xf4\x47\xf9\x40\x00\x00\xb4\xe8\xff\xff\x17\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x80\x00\x00\xb0\x00\x40\x00\x91\x81\x00\x00\xb0\x21\x40\x00\x91\x3f\x00\x00\xeb\xc0\x00\x00\x54\x81\x00\x00\x90\x21\xec\x47\xf9\x61\x00\x00\xb4\xf0\x03\x01\xaa\x00\x02\x1f\xd6\xc0\x03\x5f\xd6\x80\x00\x00\xb0\x00\x40\x00\x91\x81\x00\x00\xb0\x21\x40\x00\x91\x21\x00\x00\xcb\x22\xfc\x7f\xd3\x41\x0c\x81\x8b\x21\xfc\x41\x93\xc1\x00\x00\xb4\x82\x00\x00\x90\x42\xfc\x47\xf9\x62\x00\x00\xb4\xf0\x03\x02\xaa\x00\x02\x1f\xd6\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\xfd\x7b\xbe\xa9\xfd\x03\x00\x91\xf3\x0b\x00\xf9\x93\x00\x00\xb0\x60\x42\x40\x39\x40\x01\x00\x35\x80\x00\x00\x90\x00\xf0\x47\xf9\x80\x00\x00\xb4\x80\x00\x00\xb0\x00\x04\x40\xf9\xb9\xff\xff\x97\xd8\xff\xff\x97\x20\x00\x80\x52\x60\x42\x00\x39\xf3\x0b\x40\xf9\xfd\x7b\xc2\xa8\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\xdc\xff\xff\x17\xff\x83\x00\xd1\xe0\x0f\x00\xb9\xe1\x03\x00\xf9\x40\x00\x80\x52\xe0\x17\x00\xb9\x60\x00\x80\x52\xe0\x1b\x00\xb9\xe1\x17\x40\xb9\xe0\x1b\x40\xb9\x20\x00\x00\x4a\xe0\x1f\x00\xb9\xe1\x17\x40\xb9\xe0\x1f\x40\xb9\x20\x00\x00\x2a\xe0\x1b\x00\xb9\xc0\x03\x80\x52\xe0\x17\x00\xb9\x20\x02\x80\x52\xe0\x1b\x00\xb9\xe0\x17\x40\xb9\xe1\x1b\x40\xb9\x02\x0c\xc1\x1a\xe1\x1b\x40\xb9\x41\x7c\x01\x1b\x00\x00\x01\x4b\xe0\x1f\x00\xb9\x00\x00\x80\x52\xff\x83\x00\x91\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\xfd\x7b\xbf\xa9\xfd\x03\x00\x91\xfd\x7b\xc1\xa8\xc0\x03\x5f\xd6\x01\x00\x02\x00\x01\x1b\x03\x3b\x3c\x00\x00\x00\x06\x00\x00\x00\x60\xfe\xff\xff\x54\x00\x00\x00\xb0\xfe\xff\xff\x68\x00\x00\x00\xe0\xfe\xff\xff\x7c\x00\x00\x00\x20\xff\xff\xff\x90\x00\x00\x00\x70\xff\xff\xff\xb4\x00\x00\x00\x74\xff\xff\xff\xc8\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x01\x7a\x52\x00\x04\x78\x1e\x01\x1b\x0c\x1f\x00\x10\x00\x00\x00\x18\x00\x00\x00\x04\xfe\xff\xff\x34\x00\x00\x00\x00\x41\x07\x1e\x10\x00\x00\x00\x2c\x00\x00\x00"), -Section(".comment", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x00\x06\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x80\x1b\x00"), -Section(".interp", 0x238, "\x2f\x6c\x69\x62\x2f\x6c\x64\x2d\x6c\x69\x6e\x75\x78\x2d\x61\x61\x72\x63\x68\x36\x34\x2e\x73\x6f\x2e\x31\x00"), -Section(".note.gnu.build-id", 0x254, "\x04\x00\x00\x00\x14\x00\x00\x00\x03\x00\x00\x00\x47\x4e\x55\x00\x4c\x77\xa0\xbe\x70\xa9\x0b\x56\x02\x24\x73\xf2\xbc\xa6\x48\xde\x7e\xcb\x93\xbd"), -Section(".note.ABI-tag", 0x278, "\x04\x00\x00\x00\x10\x00\x00\x00\x01\x00\x00\x00\x47\x4e\x55\x00\x00\x00\x00\x00\x03\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00"), -Section(".gnu.hash", 0x298, "\x01\x00\x00\x00\x01\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".dynsym", 0x2B8, "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x0b\x00\x80\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x16\x00\x00\x10\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x48\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x22\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x22\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x73\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".dynstr", 0x390, "\x00\x5f\x5f\x63\x78\x61\x5f\x66\x69\x6e\x61\x6c\x69\x7a\x65\x00\x5f\x5f\x6c\x69\x62\x63\x5f\x73\x74\x61\x72\x74\x5f\x6d\x61\x69\x6e\x00\x61\x62\x6f\x72\x74\x00\x6c\x69\x62\x63\x2e\x73\x6f\x2e\x36\x00\x47\x4c\x49\x42\x43\x5f\x32\x2e\x31\x37\x00\x47\x4c\x49\x42\x43\x5f\x32\x2e\x33\x34\x00\x5f\x49\x54\x4d\x5f\x64\x65\x72\x65\x67\x69\x73\x74\x65\x72\x54\x4d\x43\x6c\x6f\x6e\x65\x54\x61\x62\x6c\x65\x00\x5f\x5f\x67\x6d\x6f\x6e\x5f\x73\x74\x61\x72\x74\x5f\x5f\x00\x5f\x49\x54\x4d\x5f\x72\x65\x67\x69\x73\x74\x65\x72\x54\x4d\x43\x6c\x6f\x6e\x65\x54\x61\x62\x6c\x65\x00"), -Section(".gnu.version", 0x41E, "\x00\x00\x00\x00\x00\x00\x02\x00\x01\x00\x03\x00\x01\x00\x03\x00\x01\x00"), -Section(".gnu.version_r", 0x430, "\x01\x00\x02\x00\x28\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x97\x91\x96\x06\x00\x00\x03\x00\x32\x00\x00\x00\x10\x00\x00\x00\xb4\x91\x96\x06\x00\x00\x02\x00\x3d\x00\x00\x00\x00\x00\x00\x00"), -Section(".rela.dyn", 0x460, "\x98\x0d\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x10\x07\x00\x00\x00\x00\x00\x00\xa0\x0d\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\xc0\x06\x00\x00\x00\x00\x00\x00\xf0\x0f\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x14\x07\x00\x00\x00\x00\x00\x00\x08\x10\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x08\x10\x01\x00\x00\x00\x00\x00\xd8\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe0\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe8\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xf8\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".rela.plt", 0x520, "\xb0\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xb8\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xc0\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xc8\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".init", 0x580, "\x1f\x20\x03\xd5\xfd\x7b\xbf\xa9\xfd\x03\x00\x91\x2a\x00\x00\x94\xfd\x7b\xc1\xa8\xc0\x03\x5f\xd6"), -Section(".plt", 0x5A0, "\xf0\x7b\xbf\xa9\x90\x00\x00\x90\x11\xd6\x47\xf9\x10\xa2\x3e\x91\x20\x02\x1f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x90\x00\x00\x90\x11\xda\x47\xf9\x10\xc2\x3e\x91\x20\x02\x1f\xd6\x90\x00\x00\x90\x11\xde\x47\xf9\x10\xe2\x3e\x91\x20\x02\x1f\xd6\x90\x00\x00\x90\x11\xe2\x47\xf9\x10\x02\x3f\x91\x20\x02\x1f\xd6\x90\x00\x00\x90\x11\xe6\x47\xf9\x10\x22\x3f\x91\x20\x02\x1f\xd6"), -Section(".fini", 0x788, "\x1f\x20\x03\xd5\xfd\x7b\xbf\xa9\xfd\x03\x00\x91\xfd\x7b\xc1\xa8\xc0\x03\x5f\xd6"), -Section(".rodata", 0x79C, "\x01\x00\x02\x00"), -Section(".eh_frame_hdr", 0x7A0, "\x01\x1b\x03\x3b\x3c\x00\x00\x00\x06\x00\x00\x00\x60\xfe\xff\xff\x54\x00\x00\x00\xb0\xfe\xff\xff\x68\x00\x00\x00\xe0\xfe\xff\xff\x7c\x00\x00\x00\x20\xff\xff\xff\x90\x00\x00\x00\x70\xff\xff\xff\xb4\x00\x00\x00\x74\xff\xff\xff\xc8\x00\x00\x00"), -Section(".eh_frame", 0x7E0, "\x10\x00\x00\x00\x00\x00\x00\x00\x01\x7a\x52\x00\x04\x78\x1e\x01\x1b\x0c\x1f\x00\x10\x00\x00\x00\x18\x00\x00\x00\x04\xfe\xff\xff\x34\x00\x00\x00\x00\x41\x07\x1e\x10\x00\x00\x00\x2c\x00\x00\x00\x40\xfe\xff\xff\x30\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x40\x00\x00\x00\x5c\xfe\xff\xff\x3c\x00\x00\x00\x00\x00\x00\x00\x20\x00\x00\x00\x54\x00\x00\x00\x88\xfe\xff\xff\x48\x00\x00\x00\x00\x41\x0e\x20\x9d\x04\x9e\x03\x42\x93\x02\x4e\xde\xdd\xd3\x0e\x00\x00\x00\x00\x10\x00\x00\x00\x78\x00\x00\x00\xb4\xfe\xff\xff\x04\x00\x00\x00\x00\x00\x00\x00\x14\x00\x00\x00\x8c\x00\x00\x00\xa4\xfe\xff\xff\x74\x00\x00\x00\x00\x41\x0e\x20\x5b\x0e\x00\x00\x00\x00\x00\x00"), -Section(".fini_array", 0x10DA0, "\xc0\x06\x00\x00\x00\x00\x00\x00"), -Section(".dynamic", 0x10DA8, "\x01\x00\x00\x00\x00\x00\x00\x00\x28\x00\x00\x00\x00\x00\x00\x00\x0c\x00\x00\x00\x00\x00\x00\x00\x80\x05\x00\x00\x00\x00\x00\x00\x0d\x00\x00\x00\x00\x00\x00\x00\x88\x07\x00\x00\x00\x00\x00\x00\x19\x00\x00\x00\x00\x00\x00\x00\x98\x0d\x01\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x1a\x00\x00\x00\x00\x00\x00\x00\xa0\x0d\x01\x00\x00\x00\x00\x00\x1c\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\xf5\xfe\xff\x6f\x00\x00\x00\x00\x98\x02\x00\x00\x00\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x90\x03\x00\x00\x00\x00\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\xb8\x02\x00\x00\x00\x00\x00\x00\x0a\x00\x00\x00\x00\x00\x00\x00\x8d\x00\x00\x00\x00\x00\x00\x00\x0b\x00\x00\x00\x00\x00\x00\x00\x18\x00\x00\x00\x00\x00\x00\x00\x15\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x98\x0f\x01\x00\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x60\x00\x00\x00\x00\x00\x00\x00\x14\x00\x00\x00\x00\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x17\x00\x00\x00\x00\x00\x00\x00\x20\x05\x00\x00\x00\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x60\x04\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\xc0\x00\x00\x00\x00\x00\x00\x00\x09\x00\x00\x00\x00\x00\x00\x00\x18\x00\x00\x00\x00\x00\x00\x00\x1e\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\xfb\xff\xff\x6f\x00\x00\x00\x00\x01\x00\x00\x08\x00\x00\x00\x00\xfe\xff\xff\x6f\x00\x00\x00\x00\x30\x04\x00\x00\x00\x00\x00\x00\xff\xff\xff\x6f\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\xf0\xff\xff\x6f\x00\x00\x00\x00\x1e\x04\x00\x00\x00\x00\x00\x00\xf9\xff\xff\x6f\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".got", 0x10F98, "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xa0\x05\x00\x00\x00\x00\x00\x00\xa0\x05\x00\x00\x00\x00\x00\x00\xa0\x05\x00\x00\x00\x00\x00\x00\xa0\x05\x00\x00\x00\x00\x00\x00\xa8\x0d\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x14\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".data", 0x11000, "\x00\x00\x00\x00\x00\x00\x00\x00\x08\x10\x01\x00\x00\x00\x00\x00"), -Section(".init_array", 0x10D98, "\x10\x07\x00\x00\x00\x00\x00\x00"), -Section(".text", 0x600, "\x1f\x20\x03\xd5\x1d\x00\x80\xd2\x1e\x00\x80\xd2\xe5\x03\x00\xaa\xe1\x03\x40\xf9\xe2\x23\x00\x91\xe6\x03\x00\x91\x80\x00\x00\x90\x00\xf8\x47\xf9\x03\x00\x80\xd2\x04\x00\x80\xd2\xe5\xff\xff\x97\xf0\xff\xff\x97\x80\x00\x00\x90\x00\xf4\x47\xf9\x40\x00\x00\xb4\xe8\xff\xff\x17\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x80\x00\x00\xb0\x00\x40\x00\x91\x81\x00\x00\xb0\x21\x40\x00\x91\x3f\x00\x00\xeb\xc0\x00\x00\x54\x81\x00\x00\x90\x21\xec\x47\xf9\x61\x00\x00\xb4\xf0\x03\x01\xaa\x00\x02\x1f\xd6\xc0\x03\x5f\xd6\x80\x00\x00\xb0\x00\x40\x00\x91\x81\x00\x00\xb0\x21\x40\x00\x91\x21\x00\x00\xcb\x22\xfc\x7f\xd3\x41\x0c\x81\x8b\x21\xfc\x41\x93\xc1\x00\x00\xb4\x82\x00\x00\x90\x42\xfc\x47\xf9\x62\x00\x00\xb4\xf0\x03\x02\xaa\x00\x02\x1f\xd6\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\xfd\x7b\xbe\xa9\xfd\x03\x00\x91\xf3\x0b\x00\xf9\x93\x00\x00\xb0\x60\x42\x40\x39\x40\x01\x00\x35\x80\x00\x00\x90\x00\xf0\x47\xf9\x80\x00\x00\xb4\x80\x00\x00\xb0\x00\x04\x40\xf9\xb9\xff\xff\x97\xd8\xff\xff\x97\x20\x00\x80\x52\x60\x42\x00\x39\xf3\x0b\x40\xf9\xfd\x7b\xc2\xa8\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\xdc\xff\xff\x17\xff\x83\x00\xd1\xe0\x0f\x00\xb9\xe1\x03\x00\xf9\x40\x00\x80\x52\xe0\x17\x00\xb9\x60\x00\x80\x52\xe0\x1b\x00\xb9\xe1\x17\x40\xb9\xe0\x1b\x40\xb9\x20\x00\x00\x4a\xe0\x1f\x00\xb9\xe1\x17\x40\xb9\xe0\x1f\x40\xb9\x20\x00\x00\x2a\xe0\x1b\x00\xb9\xc0\x03\x80\x52\xe0\x17\x00\xb9\x20\x02\x80\x52\xe0\x1b\x00\xb9\xe0\x17\x40\xb9\xe1\x1b\x40\xb9\x02\x0c\xc1\x1a\xe1\x1b\x40\xb9\x41\x7c\x01\x1b\x00\x00\x01\x4b\xe0\x1f\x00\xb9\x00\x00\x80\x52\xff\x83\x00\x91\xc0\x03\x5f\xd6")]), -Memmap([Annotation(Region(0x0,0x883), Attr("segment","02 0 2180")), -Annotation(Region(0x600,0x633), Attr("symbol","\"_start\"")), -Annotation(Region(0x0,0xF9), Attr("section","\".shstrtab\"")), -Annotation(Region(0x0,0x231), Attr("section","\".strtab\"")), -Annotation(Region(0x0,0x80F), Attr("section","\".symtab\"")), -Annotation(Region(0x0,0x2A), Attr("section","\".comment\"")), -Annotation(Region(0x238,0x252), Attr("section","\".interp\"")), -Annotation(Region(0x254,0x277), Attr("section","\".note.gnu.build-id\"")), -Annotation(Region(0x278,0x297), Attr("section","\".note.ABI-tag\"")), -Annotation(Region(0x298,0x2B3), Attr("section","\".gnu.hash\"")), -Annotation(Region(0x2B8,0x38F), Attr("section","\".dynsym\"")), -Annotation(Region(0x390,0x41C), Attr("section","\".dynstr\"")), -Annotation(Region(0x41E,0x42F), Attr("section","\".gnu.version\"")), -Annotation(Region(0x430,0x45F), Attr("section","\".gnu.version_r\"")), -Annotation(Region(0x460,0x51F), Attr("section","\".rela.dyn\"")), -Annotation(Region(0x520,0x57F), Attr("section","\".rela.plt\"")), -Annotation(Region(0x580,0x597), Attr("section","\".init\"")), -Annotation(Region(0x5A0,0x5FF), Attr("section","\".plt\"")), -Annotation(Region(0x580,0x597), Attr("code-region","()")), -Annotation(Region(0x5A0,0x5FF), Attr("code-region","()")), -Annotation(Region(0x600,0x633), Attr("symbol-info","_start 0x600 52")), -Annotation(Region(0x634,0x647), Attr("symbol","\"call_weak_fn\"")), -Annotation(Region(0x634,0x647), Attr("symbol-info","call_weak_fn 0x634 20")), -Annotation(Region(0x714,0x787), Attr("symbol","\"main\"")), -Annotation(Region(0x714,0x787), Attr("symbol-info","main 0x714 116")), -Annotation(Region(0x788,0x79B), Attr("section","\".fini\"")), -Annotation(Region(0x79C,0x79F), Attr("section","\".rodata\"")), -Annotation(Region(0x7A0,0x7DB), Attr("section","\".eh_frame_hdr\"")), -Annotation(Region(0x7E0,0x883), Attr("section","\".eh_frame\"")), -Annotation(Region(0x10D98,0x1100F), Attr("segment","03 0x10D98 640")), -Annotation(Region(0x10DA0,0x10DA7), Attr("section","\".fini_array\"")), -Annotation(Region(0x10DA8,0x10F97), Attr("section","\".dynamic\"")), -Annotation(Region(0x10F98,0x10FFF), Attr("section","\".got\"")), -Annotation(Region(0x11000,0x1100F), Attr("section","\".data\"")), -Annotation(Region(0x10D98,0x10D9F), Attr("section","\".init_array\"")), -Annotation(Region(0x600,0x787), Attr("section","\".text\"")), -Annotation(Region(0x600,0x787), Attr("code-region","()")), -Annotation(Region(0x788,0x79B), Attr("code-region","()"))]), -Program(Tid(1_713, "%000006b1"), Attrs([]), - Subs([Sub(Tid(1_691, "@__cxa_finalize"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x5D0"), -Attr("stub","()")]), "__cxa_finalize", Args([Arg(Tid(1_714, "%000006b2"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("__cxa_finalize_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(1_061, "@__cxa_finalize"), - Attrs([Attr("address","0x5D0")]), Phis([]), -Defs([Def(Tid(1_309, "%0000051d"), Attrs([Attr("address","0x5D0"), -Attr("insn","adrp x16, #65536")]), Var("R16",Imm(64)), Int(65536,64)), -Def(Tid(1_316, "%00000524"), Attrs([Attr("address","0x5D4"), -Attr("insn","ldr x17, [x16, #0xfb8]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(4024,64)),LittleEndian(),64)), -Def(Tid(1_322, "%0000052a"), Attrs([Attr("address","0x5D8"), -Attr("insn","add x16, x16, #0xfb8")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(4024,64)))]), Jmps([Call(Tid(1_327, "%0000052f"), - Attrs([Attr("address","0x5DC"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), -Sub(Tid(1_692, "@__do_global_dtors_aux"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x6C0")]), - "__do_global_dtors_aux", Args([Arg(Tid(1_715, "%000006b3"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("__do_global_dtors_aux_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(706, "@__do_global_dtors_aux"), - Attrs([Attr("address","0x6C0")]), Phis([]), Defs([Def(Tid(710, "%000002c6"), - Attrs([Attr("address","0x6C0"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("#3",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(18446744073709551584,64))), -Def(Tid(716, "%000002cc"), Attrs([Attr("address","0x6C0"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("#3",Imm(64)),Var("R29",Imm(64)),LittleEndian(),64)), -Def(Tid(722, "%000002d2"), Attrs([Attr("address","0x6C0"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("#3",Imm(64)),Int(8,64)),Var("R30",Imm(64)),LittleEndian(),64)), -Def(Tid(726, "%000002d6"), Attrs([Attr("address","0x6C0"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("R31",Imm(64)), -Var("#3",Imm(64))), Def(Tid(732, "%000002dc"), - Attrs([Attr("address","0x6C4"), Attr("insn","mov x29, sp")]), - Var("R29",Imm(64)), Var("R31",Imm(64))), Def(Tid(740, "%000002e4"), - Attrs([Attr("address","0x6C8"), Attr("insn","str x19, [sp, #0x10]")]), - Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(16,64)),Var("R19",Imm(64)),LittleEndian(),64)), -Def(Tid(745, "%000002e9"), Attrs([Attr("address","0x6CC"), -Attr("insn","adrp x19, #69632")]), Var("R19",Imm(64)), Int(69632,64)), -Def(Tid(752, "%000002f0"), Attrs([Attr("address","0x6D0"), -Attr("insn","ldrb w0, [x19, #0x10]")]), Var("R0",Imm(64)), -UNSIGNED(64,Load(Var("mem",Mem(64,8)),PLUS(Var("R19",Imm(64)),Int(16,64)),LittleEndian(),8)))]), -Jmps([Goto(Tid(759, "%000002f7"), Attrs([Attr("address","0x6D4"), -Attr("insn","cbnz w0, #0x28")]), - NEQ(Extract(31,0,Var("R0",Imm(64))),Int(0,32)), -Direct(Tid(757, "%000002f5"))), Goto(Tid(1_693, "%0000069d"), Attrs([]), - Int(1,1), Direct(Tid(1_006, "%000003ee")))])), Blk(Tid(1_006, "%000003ee"), - Attrs([Attr("address","0x6D8")]), Phis([]), -Defs([Def(Tid(1_009, "%000003f1"), Attrs([Attr("address","0x6D8"), -Attr("insn","adrp x0, #65536")]), Var("R0",Imm(64)), Int(65536,64)), -Def(Tid(1_016, "%000003f8"), Attrs([Attr("address","0x6DC"), -Attr("insn","ldr x0, [x0, #0xfe0]")]), Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(4064,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(1_022, "%000003fe"), Attrs([Attr("address","0x6E0"), -Attr("insn","cbz x0, #0x10")]), EQ(Var("R0",Imm(64)),Int(0,64)), -Direct(Tid(1_020, "%000003fc"))), Goto(Tid(1_694, "%0000069e"), Attrs([]), - Int(1,1), Direct(Tid(1_045, "%00000415")))])), Blk(Tid(1_045, "%00000415"), - Attrs([Attr("address","0x6E4")]), Phis([]), -Defs([Def(Tid(1_048, "%00000418"), Attrs([Attr("address","0x6E4"), -Attr("insn","adrp x0, #69632")]), Var("R0",Imm(64)), Int(69632,64)), -Def(Tid(1_055, "%0000041f"), Attrs([Attr("address","0x6E8"), -Attr("insn","ldr x0, [x0, #0x8]")]), Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(1_060, "%00000424"), Attrs([Attr("address","0x6EC"), -Attr("insn","bl #-0x11c")]), Var("R30",Imm(64)), Int(1776,64))]), -Jmps([Call(Tid(1_063, "%00000427"), Attrs([Attr("address","0x6EC"), -Attr("insn","bl #-0x11c")]), Int(1,1), -(Direct(Tid(1_691, "@__cxa_finalize")),Direct(Tid(1_020, "%000003fc"))))])), -Blk(Tid(1_020, "%000003fc"), Attrs([Attr("address","0x6F0")]), Phis([]), -Defs([Def(Tid(1_028, "%00000404"), Attrs([Attr("address","0x6F0"), -Attr("insn","bl #-0xa0")]), Var("R30",Imm(64)), Int(1780,64))]), -Jmps([Call(Tid(1_030, "%00000406"), Attrs([Attr("address","0x6F0"), -Attr("insn","bl #-0xa0")]), Int(1,1), -(Direct(Tid(1_705, "@deregister_tm_clones")),Direct(Tid(1_032, "%00000408"))))])), -Blk(Tid(1_032, "%00000408"), Attrs([Attr("address","0x6F4")]), Phis([]), -Defs([Def(Tid(1_035, "%0000040b"), Attrs([Attr("address","0x6F4"), -Attr("insn","mov w0, #0x1")]), Var("R0",Imm(64)), Int(1,64)), -Def(Tid(1_043, "%00000413"), Attrs([Attr("address","0x6F8"), -Attr("insn","strb w0, [x19, #0x10]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R19",Imm(64)),Int(16,64)),Extract(7,0,Var("R0",Imm(64))),LittleEndian(),8))]), -Jmps([Goto(Tid(1_695, "%0000069f"), Attrs([]), Int(1,1), -Direct(Tid(757, "%000002f5")))])), Blk(Tid(757, "%000002f5"), - Attrs([Attr("address","0x6FC")]), Phis([]), Defs([Def(Tid(767, "%000002ff"), - Attrs([Attr("address","0x6FC"), Attr("insn","ldr x19, [sp, #0x10]")]), - Var("R19",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(16,64)),LittleEndian(),64)), -Def(Tid(774, "%00000306"), Attrs([Attr("address","0x700"), -Attr("insn","ldp x29, x30, [sp], #0x20")]), Var("R29",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(779, "%0000030b"), Attrs([Attr("address","0x700"), -Attr("insn","ldp x29, x30, [sp], #0x20")]), Var("R30",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(783, "%0000030f"), Attrs([Attr("address","0x700"), -Attr("insn","ldp x29, x30, [sp], #0x20")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(32,64)))]), Jmps([Call(Tid(788, "%00000314"), - Attrs([Attr("address","0x704"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), Sub(Tid(1_696, "@__libc_start_main"), - Attrs([Attr("c.proto","signed (*)(signed (*)(signed , char** , char** );* main, signed , char** , \nvoid* auxv)"), -Attr("address","0x5C0"), Attr("stub","()")]), "__libc_start_main", - Args([Arg(Tid(1_716, "%000006b4"), - Attrs([Attr("c.layout","**[ : 64]"), -Attr("c.data","Top:u64 ptr ptr"), -Attr("c.type","signed (*)(signed , char** , char** );*")]), - Var("__libc_start_main_main",Imm(64)), Var("R0",Imm(64)), In()), -Arg(Tid(1_717, "%000006b5"), Attrs([Attr("c.layout","[signed : 32]"), -Attr("c.data","Top:u32"), Attr("c.type","signed")]), - Var("__libc_start_main_arg2",Imm(32)), LOW(32,Var("R1",Imm(64))), In()), -Arg(Tid(1_718, "%000006b6"), Attrs([Attr("c.layout","**[char : 8]"), -Attr("c.data","Top:u8 ptr ptr"), Attr("c.type","char**")]), - Var("__libc_start_main_arg3",Imm(64)), Var("R2",Imm(64)), Both()), -Arg(Tid(1_719, "%000006b7"), Attrs([Attr("c.layout","*[ : 8]"), -Attr("c.data","{} ptr"), Attr("c.type","void*")]), - Var("__libc_start_main_auxv",Imm(64)), Var("R3",Imm(64)), Both()), -Arg(Tid(1_720, "%000006b8"), Attrs([Attr("c.layout","[signed : 32]"), -Attr("c.data","Top:u32"), Attr("c.type","signed")]), - Var("__libc_start_main_result",Imm(32)), LOW(32,Var("R0",Imm(64))), -Out())]), Blks([Blk(Tid(539, "@__libc_start_main"), - Attrs([Attr("address","0x5C0")]), Phis([]), -Defs([Def(Tid(1_287, "%00000507"), Attrs([Attr("address","0x5C0"), -Attr("insn","adrp x16, #65536")]), Var("R16",Imm(64)), Int(65536,64)), -Def(Tid(1_294, "%0000050e"), Attrs([Attr("address","0x5C4"), -Attr("insn","ldr x17, [x16, #0xfb0]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(4016,64)),LittleEndian(),64)), -Def(Tid(1_300, "%00000514"), Attrs([Attr("address","0x5C8"), -Attr("insn","add x16, x16, #0xfb0")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(4016,64)))]), Jmps([Call(Tid(1_305, "%00000519"), - Attrs([Attr("address","0x5CC"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), Sub(Tid(1_697, "@_fini"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x788")]), - "_fini", Args([Arg(Tid(1_721, "%000006b9"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("_fini_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(31, "@_fini"), - Attrs([Attr("address","0x788")]), Phis([]), Defs([Def(Tid(37, "%00000025"), - Attrs([Attr("address","0x78C"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("#0",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(18446744073709551600,64))), -Def(Tid(43, "%0000002b"), Attrs([Attr("address","0x78C"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("#0",Imm(64)),Var("R29",Imm(64)),LittleEndian(),64)), -Def(Tid(49, "%00000031"), Attrs([Attr("address","0x78C"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("#0",Imm(64)),Int(8,64)),Var("R30",Imm(64)),LittleEndian(),64)), -Def(Tid(53, "%00000035"), Attrs([Attr("address","0x78C"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("R31",Imm(64)), -Var("#0",Imm(64))), Def(Tid(59, "%0000003b"), Attrs([Attr("address","0x790"), -Attr("insn","mov x29, sp")]), Var("R29",Imm(64)), Var("R31",Imm(64))), -Def(Tid(66, "%00000042"), Attrs([Attr("address","0x794"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R29",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(71, "%00000047"), Attrs([Attr("address","0x794"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R30",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(75, "%0000004b"), Attrs([Attr("address","0x794"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(16,64)))]), Jmps([Call(Tid(80, "%00000050"), - Attrs([Attr("address","0x798"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), Sub(Tid(1_698, "@_init"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x580")]), - "_init", Args([Arg(Tid(1_722, "%000006ba"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("_init_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(1_504, "@_init"), - Attrs([Attr("address","0x580")]), Phis([]), -Defs([Def(Tid(1_510, "%000005e6"), Attrs([Attr("address","0x584"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("#5",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(18446744073709551600,64))), -Def(Tid(1_516, "%000005ec"), Attrs([Attr("address","0x584"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("#5",Imm(64)),Var("R29",Imm(64)),LittleEndian(),64)), -Def(Tid(1_522, "%000005f2"), Attrs([Attr("address","0x584"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("#5",Imm(64)),Int(8,64)),Var("R30",Imm(64)),LittleEndian(),64)), -Def(Tid(1_526, "%000005f6"), Attrs([Attr("address","0x584"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("R31",Imm(64)), -Var("#5",Imm(64))), Def(Tid(1_532, "%000005fc"), - Attrs([Attr("address","0x588"), Attr("insn","mov x29, sp")]), - Var("R29",Imm(64)), Var("R31",Imm(64))), Def(Tid(1_537, "%00000601"), - Attrs([Attr("address","0x58C"), Attr("insn","bl #0xa8")]), - Var("R30",Imm(64)), Int(1424,64))]), Jmps([Call(Tid(1_539, "%00000603"), - Attrs([Attr("address","0x58C"), Attr("insn","bl #0xa8")]), Int(1,1), -(Direct(Tid(1_703, "@call_weak_fn")),Direct(Tid(1_541, "%00000605"))))])), -Blk(Tid(1_541, "%00000605"), Attrs([Attr("address","0x590")]), Phis([]), -Defs([Def(Tid(1_546, "%0000060a"), Attrs([Attr("address","0x590"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R29",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(1_551, "%0000060f"), Attrs([Attr("address","0x590"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R30",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(1_555, "%00000613"), Attrs([Attr("address","0x590"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(16,64)))]), Jmps([Call(Tid(1_560, "%00000618"), - Attrs([Attr("address","0x594"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), Sub(Tid(1_699, "@_start"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x600"), -Attr("stub","()"), Attr("entry-point","()")]), "_start", - Args([Arg(Tid(1_723, "%000006bb"), Attrs([Attr("c.layout","[signed : 32]"), -Attr("c.data","Top:u32"), Attr("c.type","signed")]), - Var("_start_result",Imm(32)), LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(476, "@_start"), Attrs([Attr("address","0x600")]), Phis([]), -Defs([Def(Tid(481, "%000001e1"), Attrs([Attr("address","0x604"), -Attr("insn","mov x29, #0x0")]), Var("R29",Imm(64)), Int(0,64)), -Def(Tid(486, "%000001e6"), Attrs([Attr("address","0x608"), -Attr("insn","mov x30, #0x0")]), Var("R30",Imm(64)), Int(0,64)), -Def(Tid(492, "%000001ec"), Attrs([Attr("address","0x60C"), -Attr("insn","mov x5, x0")]), Var("R5",Imm(64)), Var("R0",Imm(64))), -Def(Tid(499, "%000001f3"), Attrs([Attr("address","0x610"), -Attr("insn","ldr x1, [sp]")]), Var("R1",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(505, "%000001f9"), Attrs([Attr("address","0x614"), -Attr("insn","add x2, sp, #0x8")]), Var("R2",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(8,64))), Def(Tid(511, "%000001ff"), - Attrs([Attr("address","0x618"), Attr("insn","mov x6, sp")]), - Var("R6",Imm(64)), Var("R31",Imm(64))), Def(Tid(516, "%00000204"), - Attrs([Attr("address","0x61C"), Attr("insn","adrp x0, #65536")]), - Var("R0",Imm(64)), Int(65536,64)), Def(Tid(523, "%0000020b"), - Attrs([Attr("address","0x620"), Attr("insn","ldr x0, [x0, #0xff0]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(4080,64)),LittleEndian(),64)), -Def(Tid(528, "%00000210"), Attrs([Attr("address","0x624"), -Attr("insn","mov x3, #0x0")]), Var("R3",Imm(64)), Int(0,64)), -Def(Tid(533, "%00000215"), Attrs([Attr("address","0x628"), -Attr("insn","mov x4, #0x0")]), Var("R4",Imm(64)), Int(0,64)), -Def(Tid(538, "%0000021a"), Attrs([Attr("address","0x62C"), -Attr("insn","bl #-0x6c")]), Var("R30",Imm(64)), Int(1584,64))]), -Jmps([Call(Tid(541, "%0000021d"), Attrs([Attr("address","0x62C"), -Attr("insn","bl #-0x6c")]), Int(1,1), -(Direct(Tid(1_696, "@__libc_start_main")),Direct(Tid(543, "%0000021f"))))])), -Blk(Tid(543, "%0000021f"), Attrs([Attr("address","0x630")]), Phis([]), -Defs([Def(Tid(546, "%00000222"), Attrs([Attr("address","0x630"), -Attr("insn","bl #-0x40")]), Var("R30",Imm(64)), Int(1588,64))]), -Jmps([Call(Tid(549, "%00000225"), Attrs([Attr("address","0x630"), -Attr("insn","bl #-0x40")]), Int(1,1), -(Direct(Tid(1_702, "@abort")),Direct(Tid(1_700, "%000006a4"))))])), -Blk(Tid(1_700, "%000006a4"), Attrs([]), Phis([]), Defs([]), -Jmps([Call(Tid(1_701, "%000006a5"), Attrs([]), Int(1,1), -(Direct(Tid(1_703, "@call_weak_fn")),))]))])), Sub(Tid(1_702, "@abort"), - Attrs([Attr("noreturn","()"), Attr("c.proto","void (*)(void)"), -Attr("address","0x5F0"), Attr("stub","()")]), "abort", Args([]), -Blks([Blk(Tid(547, "@abort"), Attrs([Attr("address","0x5F0")]), Phis([]), -Defs([Def(Tid(1_353, "%00000549"), Attrs([Attr("address","0x5F0"), -Attr("insn","adrp x16, #65536")]), Var("R16",Imm(64)), Int(65536,64)), -Def(Tid(1_360, "%00000550"), Attrs([Attr("address","0x5F4"), -Attr("insn","ldr x17, [x16, #0xfc8]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(4040,64)),LittleEndian(),64)), -Def(Tid(1_366, "%00000556"), Attrs([Attr("address","0x5F8"), -Attr("insn","add x16, x16, #0xfc8")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(4040,64)))]), Jmps([Call(Tid(1_371, "%0000055b"), - Attrs([Attr("address","0x5FC"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), Sub(Tid(1_703, "@call_weak_fn"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x634")]), - "call_weak_fn", Args([Arg(Tid(1_724, "%000006bc"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("call_weak_fn_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(551, "@call_weak_fn"), - Attrs([Attr("address","0x634")]), Phis([]), Defs([Def(Tid(554, "%0000022a"), - Attrs([Attr("address","0x634"), Attr("insn","adrp x0, #65536")]), - Var("R0",Imm(64)), Int(65536,64)), Def(Tid(561, "%00000231"), - Attrs([Attr("address","0x638"), Attr("insn","ldr x0, [x0, #0xfe8]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(4072,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(567, "%00000237"), Attrs([Attr("address","0x63C"), -Attr("insn","cbz x0, #0x8")]), EQ(Var("R0",Imm(64)),Int(0,64)), -Direct(Tid(565, "%00000235"))), Goto(Tid(1_704, "%000006a8"), Attrs([]), - Int(1,1), Direct(Tid(1_125, "%00000465")))])), Blk(Tid(565, "%00000235"), - Attrs([Attr("address","0x644")]), Phis([]), Defs([]), -Jmps([Call(Tid(573, "%0000023d"), Attrs([Attr("address","0x644"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))])), -Blk(Tid(1_125, "%00000465"), Attrs([Attr("address","0x640")]), Phis([]), -Defs([]), Jmps([Goto(Tid(1_128, "%00000468"), Attrs([Attr("address","0x640"), -Attr("insn","b #-0x60")]), Int(1,1), -Direct(Tid(1_126, "@__gmon_start__")))])), Blk(Tid(1_126, "@__gmon_start__"), - Attrs([Attr("address","0x5E0")]), Phis([]), -Defs([Def(Tid(1_331, "%00000533"), Attrs([Attr("address","0x5E0"), -Attr("insn","adrp x16, #65536")]), Var("R16",Imm(64)), Int(65536,64)), -Def(Tid(1_338, "%0000053a"), Attrs([Attr("address","0x5E4"), -Attr("insn","ldr x17, [x16, #0xfc0]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(4032,64)),LittleEndian(),64)), -Def(Tid(1_344, "%00000540"), Attrs([Attr("address","0x5E8"), -Attr("insn","add x16, x16, #0xfc0")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(4032,64)))]), Jmps([Call(Tid(1_349, "%00000545"), - Attrs([Attr("address","0x5EC"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), -Sub(Tid(1_705, "@deregister_tm_clones"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x650")]), - "deregister_tm_clones", Args([Arg(Tid(1_725, "%000006bd"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("deregister_tm_clones_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(579, "@deregister_tm_clones"), - Attrs([Attr("address","0x650")]), Phis([]), Defs([Def(Tid(582, "%00000246"), - Attrs([Attr("address","0x650"), Attr("insn","adrp x0, #69632")]), - Var("R0",Imm(64)), Int(69632,64)), Def(Tid(588, "%0000024c"), - Attrs([Attr("address","0x654"), Attr("insn","add x0, x0, #0x10")]), - Var("R0",Imm(64)), PLUS(Var("R0",Imm(64)),Int(16,64))), -Def(Tid(593, "%00000251"), Attrs([Attr("address","0x658"), -Attr("insn","adrp x1, #69632")]), Var("R1",Imm(64)), Int(69632,64)), -Def(Tid(599, "%00000257"), Attrs([Attr("address","0x65C"), -Attr("insn","add x1, x1, #0x10")]), Var("R1",Imm(64)), -PLUS(Var("R1",Imm(64)),Int(16,64))), Def(Tid(605, "%0000025d"), - Attrs([Attr("address","0x660"), Attr("insn","cmp x1, x0")]), - Var("#1",Imm(64)), NOT(Var("R0",Imm(64)))), Def(Tid(610, "%00000262"), - Attrs([Attr("address","0x660"), Attr("insn","cmp x1, x0")]), - Var("#2",Imm(64)), PLUS(Var("R1",Imm(64)),NOT(Var("R0",Imm(64))))), -Def(Tid(616, "%00000268"), Attrs([Attr("address","0x660"), -Attr("insn","cmp x1, x0")]), Var("VF",Imm(1)), -NEQ(SIGNED(65,PLUS(Var("#2",Imm(64)),Int(1,64))),PLUS(PLUS(SIGNED(65,Var("R1",Imm(64))),SIGNED(65,Var("#1",Imm(64)))),Int(1,65)))), -Def(Tid(622, "%0000026e"), Attrs([Attr("address","0x660"), -Attr("insn","cmp x1, x0")]), Var("CF",Imm(1)), -NEQ(UNSIGNED(65,PLUS(Var("#2",Imm(64)),Int(1,64))),PLUS(PLUS(UNSIGNED(65,Var("R1",Imm(64))),UNSIGNED(65,Var("#1",Imm(64)))),Int(1,65)))), -Def(Tid(626, "%00000272"), Attrs([Attr("address","0x660"), -Attr("insn","cmp x1, x0")]), Var("ZF",Imm(1)), -EQ(PLUS(Var("#2",Imm(64)),Int(1,64)),Int(0,64))), Def(Tid(630, "%00000276"), - Attrs([Attr("address","0x660"), Attr("insn","cmp x1, x0")]), - Var("NF",Imm(1)), Extract(63,63,PLUS(Var("#2",Imm(64)),Int(1,64))))]), -Jmps([Goto(Tid(636, "%0000027c"), Attrs([Attr("address","0x664"), -Attr("insn","b.eq #0x18")]), EQ(Var("ZF",Imm(1)),Int(1,1)), -Direct(Tid(634, "%0000027a"))), Goto(Tid(1_706, "%000006aa"), Attrs([]), - Int(1,1), Direct(Tid(1_095, "%00000447")))])), Blk(Tid(1_095, "%00000447"), - Attrs([Attr("address","0x668")]), Phis([]), -Defs([Def(Tid(1_098, "%0000044a"), Attrs([Attr("address","0x668"), -Attr("insn","adrp x1, #65536")]), Var("R1",Imm(64)), Int(65536,64)), -Def(Tid(1_105, "%00000451"), Attrs([Attr("address","0x66C"), -Attr("insn","ldr x1, [x1, #0xfd8]")]), Var("R1",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R1",Imm(64)),Int(4056,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(1_110, "%00000456"), Attrs([Attr("address","0x670"), -Attr("insn","cbz x1, #0xc")]), EQ(Var("R1",Imm(64)),Int(0,64)), -Direct(Tid(634, "%0000027a"))), Goto(Tid(1_707, "%000006ab"), Attrs([]), - Int(1,1), Direct(Tid(1_114, "%0000045a")))])), Blk(Tid(634, "%0000027a"), - Attrs([Attr("address","0x67C")]), Phis([]), Defs([]), -Jmps([Call(Tid(642, "%00000282"), Attrs([Attr("address","0x67C"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))])), -Blk(Tid(1_114, "%0000045a"), Attrs([Attr("address","0x674")]), Phis([]), -Defs([Def(Tid(1_118, "%0000045e"), Attrs([Attr("address","0x674"), -Attr("insn","mov x16, x1")]), Var("R16",Imm(64)), Var("R1",Imm(64)))]), -Jmps([Call(Tid(1_123, "%00000463"), Attrs([Attr("address","0x678"), -Attr("insn","br x16")]), Int(1,1), (Indirect(Var("R16",Imm(64))),))]))])), -Sub(Tid(1_708, "@frame_dummy"), Attrs([Attr("c.proto","signed (*)(void)"), -Attr("address","0x710")]), "frame_dummy", Args([Arg(Tid(1_726, "%000006be"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("frame_dummy_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(794, "@frame_dummy"), - Attrs([Attr("address","0x710")]), Phis([]), Defs([]), -Jmps([Call(Tid(796, "%0000031c"), Attrs([Attr("address","0x710"), -Attr("insn","b #-0x90")]), Int(1,1), -(Direct(Tid(1_710, "@register_tm_clones")),))]))])), Sub(Tid(1_709, "@main"), - Attrs([Attr("c.proto","signed (*)(signed argc, const char** argv)"), -Attr("address","0x714")]), "main", Args([Arg(Tid(1_727, "%000006bf"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("main_argc",Imm(32)), -LOW(32,Var("R0",Imm(64))), In()), Arg(Tid(1_728, "%000006c0"), - Attrs([Attr("c.layout","**[char : 8]"), Attr("c.data","Top:u8 ptr ptr"), -Attr("c.type"," const char**")]), Var("main_argv",Imm(64)), -Var("R1",Imm(64)), Both()), Arg(Tid(1_729, "%000006c1"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("main_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(798, "@main"), - Attrs([Attr("address","0x714")]), Phis([]), Defs([Def(Tid(802, "%00000322"), - Attrs([Attr("address","0x714"), Attr("insn","sub sp, sp, #0x20")]), - Var("R31",Imm(64)), PLUS(Var("R31",Imm(64)),Int(18446744073709551584,64))), -Def(Tid(810, "%0000032a"), Attrs([Attr("address","0x718"), -Attr("insn","str w0, [sp, #0xc]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(12,64)),Extract(31,0,Var("R0",Imm(64))),LittleEndian(),32)), -Def(Tid(818, "%00000332"), Attrs([Attr("address","0x71C"), -Attr("insn","str x1, [sp]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("R31",Imm(64)),Var("R1",Imm(64)),LittleEndian(),64)), -Def(Tid(823, "%00000337"), Attrs([Attr("address","0x720"), -Attr("insn","mov w0, #0x2")]), Var("R0",Imm(64)), Int(2,64)), -Def(Tid(831, "%0000033f"), Attrs([Attr("address","0x724"), -Attr("insn","str w0, [sp, #0x14]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(20,64)),Extract(31,0,Var("R0",Imm(64))),LittleEndian(),32)), -Def(Tid(836, "%00000344"), Attrs([Attr("address","0x728"), -Attr("insn","mov w0, #0x3")]), Var("R0",Imm(64)), Int(3,64)), -Def(Tid(844, "%0000034c"), Attrs([Attr("address","0x72C"), -Attr("insn","str w0, [sp, #0x18]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(24,64)),Extract(31,0,Var("R0",Imm(64))),LittleEndian(),32)), -Def(Tid(851, "%00000353"), Attrs([Attr("address","0x730"), -Attr("insn","ldr w1, [sp, #0x14]")]), Var("R1",Imm(64)), -UNSIGNED(64,Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(20,64)),LittleEndian(),32))), -Def(Tid(858, "%0000035a"), Attrs([Attr("address","0x734"), -Attr("insn","ldr w0, [sp, #0x18]")]), Var("R0",Imm(64)), -UNSIGNED(64,Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(24,64)),LittleEndian(),32))), -Def(Tid(865, "%00000361"), Attrs([Attr("address","0x738"), -Attr("insn","eor w0, w1, w0")]), Var("R0",Imm(64)), -UNSIGNED(64,XOR(Extract(31,0,Var("R1",Imm(64))),Extract(31,0,Var("R0",Imm(64)))))), -Def(Tid(873, "%00000369"), Attrs([Attr("address","0x73C"), -Attr("insn","str w0, [sp, #0x1c]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(28,64)),Extract(31,0,Var("R0",Imm(64))),LittleEndian(),32)), -Def(Tid(880, "%00000370"), Attrs([Attr("address","0x740"), -Attr("insn","ldr w1, [sp, #0x14]")]), Var("R1",Imm(64)), -UNSIGNED(64,Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(20,64)),LittleEndian(),32))), -Def(Tid(887, "%00000377"), Attrs([Attr("address","0x744"), -Attr("insn","ldr w0, [sp, #0x1c]")]), Var("R0",Imm(64)), -UNSIGNED(64,Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(28,64)),LittleEndian(),32))), -Def(Tid(894, "%0000037e"), Attrs([Attr("address","0x748"), -Attr("insn","orr w0, w1, w0")]), Var("R0",Imm(64)), -UNSIGNED(64,OR(Extract(31,0,Var("R1",Imm(64))),Extract(31,0,Var("R0",Imm(64)))))), -Def(Tid(902, "%00000386"), Attrs([Attr("address","0x74C"), -Attr("insn","str w0, [sp, #0x18]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(24,64)),Extract(31,0,Var("R0",Imm(64))),LittleEndian(),32)), -Def(Tid(907, "%0000038b"), Attrs([Attr("address","0x750"), -Attr("insn","mov w0, #0x1e")]), Var("R0",Imm(64)), Int(30,64)), -Def(Tid(915, "%00000393"), Attrs([Attr("address","0x754"), -Attr("insn","str w0, [sp, #0x14]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(20,64)),Extract(31,0,Var("R0",Imm(64))),LittleEndian(),32)), -Def(Tid(920, "%00000398"), Attrs([Attr("address","0x758"), -Attr("insn","mov w0, #0x11")]), Var("R0",Imm(64)), Int(17,64)), -Def(Tid(928, "%000003a0"), Attrs([Attr("address","0x75C"), -Attr("insn","str w0, [sp, #0x18]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(24,64)),Extract(31,0,Var("R0",Imm(64))),LittleEndian(),32)), -Def(Tid(935, "%000003a7"), Attrs([Attr("address","0x760"), -Attr("insn","ldr w0, [sp, #0x14]")]), Var("R0",Imm(64)), -UNSIGNED(64,Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(20,64)),LittleEndian(),32))), -Def(Tid(942, "%000003ae"), Attrs([Attr("address","0x764"), -Attr("insn","ldr w1, [sp, #0x18]")]), Var("R1",Imm(64)), -UNSIGNED(64,Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(24,64)),LittleEndian(),32)))]), -Jmps([Goto(Tid(956, "%000003bc"), Attrs([Attr("address","0x768"), -Attr("insn","sdiv w2, w0, w1")]), - EQ(Extract(31,0,Var("R1",Imm(64))),Int(0,32)), -Direct(Tid(947, "%000003b3"))), Goto(Tid(957, "%000003bd"), - Attrs([Attr("address","0x768"), Attr("insn","sdiv w2, w0, w1")]), Int(1,1), -Direct(Tid(952, "%000003b8")))])), Blk(Tid(952, "%000003b8"), Attrs([]), - Phis([]), Defs([Def(Tid(953, "%000003b9"), Attrs([Attr("address","0x768"), -Attr("insn","sdiv w2, w0, w1")]), Var("R2",Imm(64)), -UNSIGNED(64,Extract(31,0,SDIVIDE(SIGNED(33,Extract(31,0,Var("R0",Imm(64)))),SIGNED(33,Extract(31,0,Var("R1",Imm(64))))))))]), -Jmps([Goto(Tid(959, "%000003bf"), Attrs([Attr("address","0x768"), -Attr("insn","sdiv w2, w0, w1")]), Int(1,1), -Direct(Tid(955, "%000003bb")))])), Blk(Tid(947, "%000003b3"), Attrs([]), - Phis([]), Defs([Def(Tid(948, "%000003b4"), Attrs([Attr("address","0x768"), -Attr("insn","sdiv w2, w0, w1")]), Var("R2",Imm(64)), Int(0,64))]), -Jmps([Goto(Tid(958, "%000003be"), Attrs([Attr("address","0x768"), -Attr("insn","sdiv w2, w0, w1")]), Int(1,1), -Direct(Tid(955, "%000003bb")))])), Blk(Tid(955, "%000003bb"), Attrs([]), - Phis([]), Defs([Def(Tid(966, "%000003c6"), Attrs([Attr("address","0x76C"), -Attr("insn","ldr w1, [sp, #0x18]")]), Var("R1",Imm(64)), -UNSIGNED(64,Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(24,64)),LittleEndian(),32))), -Def(Tid(973, "%000003cd"), Attrs([Attr("address","0x770"), -Attr("insn","mul w1, w2, w1")]), Var("R1",Imm(64)), -UNSIGNED(64,Extract(31,0,TIMES(UNSIGNED(64,Extract(31,0,Var("R2",Imm(64)))),UNSIGNED(64,Extract(31,0,Var("R1",Imm(64)))))))), -Def(Tid(980, "%000003d4"), Attrs([Attr("address","0x774"), -Attr("insn","sub w0, w0, w1")]), Var("R0",Imm(64)), -UNSIGNED(64,PLUS(PLUS(Extract(31,0,Var("R0",Imm(64))),NOT(Extract(31,0,Var("R1",Imm(64))))),Int(1,32)))), -Def(Tid(988, "%000003dc"), Attrs([Attr("address","0x778"), -Attr("insn","str w0, [sp, #0x1c]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(28,64)),Extract(31,0,Var("R0",Imm(64))),LittleEndian(),32)), -Def(Tid(993, "%000003e1"), Attrs([Attr("address","0x77C"), -Attr("insn","mov w0, #0x0")]), Var("R0",Imm(64)), Int(0,64)), -Def(Tid(999, "%000003e7"), Attrs([Attr("address","0x780"), -Attr("insn","add sp, sp, #0x20")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(32,64)))]), Jmps([Call(Tid(1_004, "%000003ec"), - Attrs([Attr("address","0x784"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), -Sub(Tid(1_710, "@register_tm_clones"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x680")]), - "register_tm_clones", Args([Arg(Tid(1_730, "%000006c2"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("register_tm_clones_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(644, "@register_tm_clones"), Attrs([Attr("address","0x680")]), - Phis([]), Defs([Def(Tid(647, "%00000287"), Attrs([Attr("address","0x680"), -Attr("insn","adrp x0, #69632")]), Var("R0",Imm(64)), Int(69632,64)), -Def(Tid(653, "%0000028d"), Attrs([Attr("address","0x684"), -Attr("insn","add x0, x0, #0x10")]), Var("R0",Imm(64)), -PLUS(Var("R0",Imm(64)),Int(16,64))), Def(Tid(658, "%00000292"), - Attrs([Attr("address","0x688"), Attr("insn","adrp x1, #69632")]), - Var("R1",Imm(64)), Int(69632,64)), Def(Tid(664, "%00000298"), - Attrs([Attr("address","0x68C"), Attr("insn","add x1, x1, #0x10")]), - Var("R1",Imm(64)), PLUS(Var("R1",Imm(64)),Int(16,64))), -Def(Tid(671, "%0000029f"), Attrs([Attr("address","0x690"), -Attr("insn","sub x1, x1, x0")]), Var("R1",Imm(64)), -PLUS(PLUS(Var("R1",Imm(64)),NOT(Var("R0",Imm(64)))),Int(1,64))), -Def(Tid(677, "%000002a5"), Attrs([Attr("address","0x694"), -Attr("insn","lsr x2, x1, #63")]), Var("R2",Imm(64)), -Concat(Int(0,63),Extract(63,63,Var("R1",Imm(64))))), -Def(Tid(684, "%000002ac"), Attrs([Attr("address","0x698"), -Attr("insn","add x1, x2, x1, asr #3")]), Var("R1",Imm(64)), -PLUS(Var("R2",Imm(64)),ARSHIFT(Var("R1",Imm(64)),Int(3,3)))), -Def(Tid(690, "%000002b2"), Attrs([Attr("address","0x69C"), -Attr("insn","asr x1, x1, #1")]), Var("R1",Imm(64)), -SIGNED(64,Extract(63,1,Var("R1",Imm(64)))))]), -Jmps([Goto(Tid(696, "%000002b8"), Attrs([Attr("address","0x6A0"), -Attr("insn","cbz x1, #0x18")]), EQ(Var("R1",Imm(64)),Int(0,64)), -Direct(Tid(694, "%000002b6"))), Goto(Tid(1_711, "%000006af"), Attrs([]), - Int(1,1), Direct(Tid(1_065, "%00000429")))])), Blk(Tid(1_065, "%00000429"), - Attrs([Attr("address","0x6A4")]), Phis([]), -Defs([Def(Tid(1_068, "%0000042c"), Attrs([Attr("address","0x6A4"), -Attr("insn","adrp x2, #65536")]), Var("R2",Imm(64)), Int(65536,64)), -Def(Tid(1_075, "%00000433"), Attrs([Attr("address","0x6A8"), -Attr("insn","ldr x2, [x2, #0xff8]")]), Var("R2",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R2",Imm(64)),Int(4088,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(1_080, "%00000438"), Attrs([Attr("address","0x6AC"), -Attr("insn","cbz x2, #0xc")]), EQ(Var("R2",Imm(64)),Int(0,64)), -Direct(Tid(694, "%000002b6"))), Goto(Tid(1_712, "%000006b0"), Attrs([]), - Int(1,1), Direct(Tid(1_084, "%0000043c")))])), Blk(Tid(694, "%000002b6"), - Attrs([Attr("address","0x6B8")]), Phis([]), Defs([]), -Jmps([Call(Tid(702, "%000002be"), Attrs([Attr("address","0x6B8"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))])), -Blk(Tid(1_084, "%0000043c"), Attrs([Attr("address","0x6B0")]), Phis([]), -Defs([Def(Tid(1_088, "%00000440"), Attrs([Attr("address","0x6B0"), -Attr("insn","mov x16, x2")]), Var("R16",Imm(64)), Var("R2",Imm(64)))]), -Jmps([Call(Tid(1_093, "%00000445"), Attrs([Attr("address","0x6B4"), -Attr("insn","br x16")]), Int(1,1), -(Indirect(Var("R16",Imm(64))),))]))]))]))) \ No newline at end of file diff --git a/src/test/correct/basic_operation_evaluation/gcc/basic_operation_evaluation.bir b/src/test/correct/basic_operation_evaluation/gcc/basic_operation_evaluation.bir deleted file mode 100644 index 66f4d4b8a..000000000 --- a/src/test/correct/basic_operation_evaluation/gcc/basic_operation_evaluation.bir +++ /dev/null @@ -1,262 +0,0 @@ -000006b1: program -0000069b: sub __cxa_finalize(__cxa_finalize_result) -000006b2: __cxa_finalize_result :: out u32 = low:32[R0] - -00000425: -0000051d: R16 := 0x10000 -00000524: R17 := mem[R16 + 0xFB8, el]:u64 -0000052a: R16 := R16 + 0xFB8 -0000052f: call R17 with noreturn - -0000069c: sub __do_global_dtors_aux(__do_global_dtors_aux_result) -000006b3: __do_global_dtors_aux_result :: out u32 = low:32[R0] - -000002c2: -000002c6: #3 := R31 - 0x20 -000002cc: mem := mem with [#3, el]:u64 <- R29 -000002d2: mem := mem with [#3 + 8, el]:u64 <- R30 -000002d6: R31 := #3 -000002dc: R29 := R31 -000002e4: mem := mem with [R31 + 0x10, el]:u64 <- R19 -000002e9: R19 := 0x11000 -000002f0: R0 := pad:64[mem[R19 + 0x10]] -000002f7: when 31:0[R0] <> 0 goto %000002f5 -0000069d: goto %000003ee - -000003ee: -000003f1: R0 := 0x10000 -000003f8: R0 := mem[R0 + 0xFE0, el]:u64 -000003fe: when R0 = 0 goto %000003fc -0000069e: goto %00000415 - -00000415: -00000418: R0 := 0x11000 -0000041f: R0 := mem[R0 + 8, el]:u64 -00000424: R30 := 0x6F0 -00000427: call @__cxa_finalize with return %000003fc - -000003fc: -00000404: R30 := 0x6F4 -00000406: call @deregister_tm_clones with return %00000408 - -00000408: -0000040b: R0 := 1 -00000413: mem := mem with [R19 + 0x10] <- 7:0[R0] -0000069f: goto %000002f5 - -000002f5: -000002ff: R19 := mem[R31 + 0x10, el]:u64 -00000306: R29 := mem[R31, el]:u64 -0000030b: R30 := mem[R31 + 8, el]:u64 -0000030f: R31 := R31 + 0x20 -00000314: call R30 with noreturn - -000006a0: sub __libc_start_main(__libc_start_main_main, __libc_start_main_arg2, __libc_start_main_arg3, __libc_start_main_auxv, __libc_start_main_result) -000006b4: __libc_start_main_main :: in u64 = R0 -000006b5: __libc_start_main_arg2 :: in u32 = low:32[R1] -000006b6: __libc_start_main_arg3 :: in out u64 = R2 -000006b7: __libc_start_main_auxv :: in out u64 = R3 -000006b8: __libc_start_main_result :: out u32 = low:32[R0] - -0000021b: -00000507: R16 := 0x10000 -0000050e: R17 := mem[R16 + 0xFB0, el]:u64 -00000514: R16 := R16 + 0xFB0 -00000519: call R17 with noreturn - -000006a1: sub _fini(_fini_result) -000006b9: _fini_result :: out u32 = low:32[R0] - -0000001f: -00000025: #0 := R31 - 0x10 -0000002b: mem := mem with [#0, el]:u64 <- R29 -00000031: mem := mem with [#0 + 8, el]:u64 <- R30 -00000035: R31 := #0 -0000003b: R29 := R31 -00000042: R29 := mem[R31, el]:u64 -00000047: R30 := mem[R31 + 8, el]:u64 -0000004b: R31 := R31 + 0x10 -00000050: call R30 with noreturn - -000006a2: sub _init(_init_result) -000006ba: _init_result :: out u32 = low:32[R0] - -000005e0: -000005e6: #5 := R31 - 0x10 -000005ec: mem := mem with [#5, el]:u64 <- R29 -000005f2: mem := mem with [#5 + 8, el]:u64 <- R30 -000005f6: R31 := #5 -000005fc: R29 := R31 -00000601: R30 := 0x590 -00000603: call @call_weak_fn with return %00000605 - -00000605: -0000060a: R29 := mem[R31, el]:u64 -0000060f: R30 := mem[R31 + 8, el]:u64 -00000613: R31 := R31 + 0x10 -00000618: call R30 with noreturn - -000006a3: sub _start(_start_result) -000006bb: _start_result :: out u32 = low:32[R0] - -000001dc: -000001e1: R29 := 0 -000001e6: R30 := 0 -000001ec: R5 := R0 -000001f3: R1 := mem[R31, el]:u64 -000001f9: R2 := R31 + 8 -000001ff: R6 := R31 -00000204: R0 := 0x10000 -0000020b: R0 := mem[R0 + 0xFF0, el]:u64 -00000210: R3 := 0 -00000215: R4 := 0 -0000021a: R30 := 0x630 -0000021d: call @__libc_start_main with return %0000021f - -0000021f: -00000222: R30 := 0x634 -00000225: call @abort with return %000006a4 - -000006a4: -000006a5: call @call_weak_fn with noreturn - -000006a6: sub abort() - - -00000223: -00000549: R16 := 0x10000 -00000550: R17 := mem[R16 + 0xFC8, el]:u64 -00000556: R16 := R16 + 0xFC8 -0000055b: call R17 with noreturn - -000006a7: sub call_weak_fn(call_weak_fn_result) -000006bc: call_weak_fn_result :: out u32 = low:32[R0] - -00000227: -0000022a: R0 := 0x10000 -00000231: R0 := mem[R0 + 0xFE8, el]:u64 -00000237: when R0 = 0 goto %00000235 -000006a8: goto %00000465 - -00000235: -0000023d: call R30 with noreturn - -00000465: -00000468: goto @__gmon_start__ - -00000466: -00000533: R16 := 0x10000 -0000053a: R17 := mem[R16 + 0xFC0, el]:u64 -00000540: R16 := R16 + 0xFC0 -00000545: call R17 with noreturn - -000006a9: sub deregister_tm_clones(deregister_tm_clones_result) -000006bd: deregister_tm_clones_result :: out u32 = low:32[R0] - -00000243: -00000246: R0 := 0x11000 -0000024c: R0 := R0 + 0x10 -00000251: R1 := 0x11000 -00000257: R1 := R1 + 0x10 -0000025d: #1 := ~R0 -00000262: #2 := R1 + ~R0 -00000268: VF := extend:65[#2 + 1] <> extend:65[R1] + extend:65[#1] + 1 -0000026e: CF := pad:65[#2 + 1] <> pad:65[R1] + pad:65[#1] + 1 -00000272: ZF := #2 + 1 = 0 -00000276: NF := 63:63[#2 + 1] -0000027c: when ZF goto %0000027a -000006aa: goto %00000447 - -00000447: -0000044a: R1 := 0x10000 -00000451: R1 := mem[R1 + 0xFD8, el]:u64 -00000456: when R1 = 0 goto %0000027a -000006ab: goto %0000045a - -0000027a: -00000282: call R30 with noreturn - -0000045a: -0000045e: R16 := R1 -00000463: call R16 with noreturn - -000006ac: sub frame_dummy(frame_dummy_result) -000006be: frame_dummy_result :: out u32 = low:32[R0] - -0000031a: -0000031c: call @register_tm_clones with noreturn - -000006ad: sub main(main_argc, main_argv, main_result) -000006bf: main_argc :: in u32 = low:32[R0] -000006c0: main_argv :: in out u64 = R1 -000006c1: main_result :: out u32 = low:32[R0] - -0000031e: -00000322: R31 := R31 - 0x20 -0000032a: mem := mem with [R31 + 0xC, el]:u32 <- 31:0[R0] -00000332: mem := mem with [R31, el]:u64 <- R1 -00000337: R0 := 2 -0000033f: mem := mem with [R31 + 0x14, el]:u32 <- 31:0[R0] -00000344: R0 := 3 -0000034c: mem := mem with [R31 + 0x18, el]:u32 <- 31:0[R0] -00000353: R1 := pad:64[mem[R31 + 0x14, el]:u32] -0000035a: R0 := pad:64[mem[R31 + 0x18, el]:u32] -00000361: R0 := pad:64[31:0[R1] ^ 31:0[R0]] -00000369: mem := mem with [R31 + 0x1C, el]:u32 <- 31:0[R0] -00000370: R1 := pad:64[mem[R31 + 0x14, el]:u32] -00000377: R0 := pad:64[mem[R31 + 0x1C, el]:u32] -0000037e: R0 := pad:64[31:0[R1] | 31:0[R0]] -00000386: mem := mem with [R31 + 0x18, el]:u32 <- 31:0[R0] -0000038b: R0 := 0x1E -00000393: mem := mem with [R31 + 0x14, el]:u32 <- 31:0[R0] -00000398: R0 := 0x11 -000003a0: mem := mem with [R31 + 0x18, el]:u32 <- 31:0[R0] -000003a7: R0 := pad:64[mem[R31 + 0x14, el]:u32] -000003ae: R1 := pad:64[mem[R31 + 0x18, el]:u32] -000003bc: when 31:0[R1] = 0 goto %000003b3 -000003bd: goto %000003b8 - -000003b8: -000003b9: R2 := pad:64[31:0[extend:33[31:0[R0]] /$ extend:33[31:0[R1]]]] -000003bf: goto %000003bb - -000003b3: -000003b4: R2 := 0 -000003be: goto %000003bb - -000003bb: -000003c6: R1 := pad:64[mem[R31 + 0x18, el]:u32] -000003cd: R1 := pad:64[31:0[pad:64[31:0[R2]] * pad:64[31:0[R1]]]] -000003d4: R0 := pad:64[31:0[R0] + ~31:0[R1] + 1] -000003dc: mem := mem with [R31 + 0x1C, el]:u32 <- 31:0[R0] -000003e1: R0 := 0 -000003e7: R31 := R31 + 0x20 -000003ec: call R30 with noreturn - -000006ae: sub register_tm_clones(register_tm_clones_result) -000006c2: register_tm_clones_result :: out u32 = low:32[R0] - -00000284: -00000287: R0 := 0x11000 -0000028d: R0 := R0 + 0x10 -00000292: R1 := 0x11000 -00000298: R1 := R1 + 0x10 -0000029f: R1 := R1 + ~R0 + 1 -000002a5: R2 := 0.63:63[R1] -000002ac: R1 := R2 + (R1 ~>> 3) -000002b2: R1 := extend:64[63:1[R1]] -000002b8: when R1 = 0 goto %000002b6 -000006af: goto %00000429 - -00000429: -0000042c: R2 := 0x10000 -00000433: R2 := mem[R2 + 0xFF8, el]:u64 -00000438: when R2 = 0 goto %000002b6 -000006b0: goto %0000043c - -000002b6: -000002be: call R30 with noreturn - -0000043c: -00000440: R16 := R2 -00000445: call R16 with noreturn diff --git a/src/test/correct/basic_operation_evaluation/gcc/basic_operation_evaluation.expected b/src/test/correct/basic_operation_evaluation/gcc/basic_operation_evaluation.expected index 8ea66b806..62152601e 100644 --- a/src/test/correct/basic_operation_evaluation/gcc/basic_operation_evaluation.expected +++ b/src/test/correct/basic_operation_evaluation/gcc/basic_operation_evaluation.expected @@ -1,37 +1,10 @@ var {:extern} Gamma_R0: bool; -var {:extern} Gamma_R1: bool; -var {:extern} Gamma_R2: bool; -var {:extern} Gamma_R31: bool; var {:extern} Gamma_mem: [bv64]bool; -var {:extern} Gamma_stack: [bv64]bool; var {:extern} R0: bv64; -var {:extern} R1: bv64; -var {:extern} R2: bv64; -var {:extern} R31: bv64; var {:extern} mem: [bv64]bv8; -var {:extern} stack: [bv64]bv8; const {:extern} $_IO_stdin_used_addr: bv64; -axiom ($_IO_stdin_used_addr == 1948bv64); -function {:extern} {:bvbuiltin "bvadd"} bvadd32(bv32, bv32) returns (bv32); +axiom ($_IO_stdin_used_addr == 4196312bv64); function {:extern} {:bvbuiltin "bvadd"} bvadd64(bv64, bv64) returns (bv64); -function {:extern} {:bvbuiltin "bvcomp"} bvcomp32(bv32, bv32) returns (bv1); -function {:extern} {:bvbuiltin "bvmul"} bvmul64(bv64, bv64) returns (bv64); -function {:extern} {:bvbuiltin "bvnot"} bvnot32(bv32) returns (bv32); -function {:extern} {:bvbuiltin "bvor"} bvor32(bv32, bv32) returns (bv32); -function {:extern} {:bvbuiltin "bvsdiv"} bvsdiv33(bv33, bv33) returns (bv33); -function {:extern} {:bvbuiltin "bvxor"} bvxor32(bv32, bv32) returns (bv32); -function {:extern} gamma_load32(gammaMap: [bv64]bool, index: bv64) returns (bool) { - (gammaMap[bvadd64(index, 3bv64)] && (gammaMap[bvadd64(index, 2bv64)] && (gammaMap[bvadd64(index, 1bv64)] && gammaMap[index]))) -} - -function {:extern} gamma_store32(gammaMap: [bv64]bool, index: bv64, value: bool) returns ([bv64]bool) { - gammaMap[index := value][bvadd64(index, 1bv64) := value][bvadd64(index, 2bv64) := value][bvadd64(index, 3bv64) := value] -} - -function {:extern} gamma_store64(gammaMap: [bv64]bool, index: bv64, value: bool) returns ([bv64]bool) { - gammaMap[index := value][bvadd64(index, 1bv64) := value][bvadd64(index, 2bv64) := value][bvadd64(index, 3bv64) := value][bvadd64(index, 4bv64) := value][bvadd64(index, 5bv64) := value][bvadd64(index, 6bv64) := value][bvadd64(index, 7bv64) := value] -} - function {:extern} memory_load32_le(memory: [bv64]bv8, index: bv64) returns (bv32) { (memory[bvadd64(index, 3bv64)] ++ (memory[bvadd64(index, 2bv64)] ++ (memory[bvadd64(index, 1bv64)] ++ memory[index]))) } @@ -40,25 +13,11 @@ function {:extern} memory_load64_le(memory: [bv64]bv8, index: bv64) returns (bv6 (memory[bvadd64(index, 7bv64)] ++ (memory[bvadd64(index, 6bv64)] ++ (memory[bvadd64(index, 5bv64)] ++ (memory[bvadd64(index, 4bv64)] ++ (memory[bvadd64(index, 3bv64)] ++ (memory[bvadd64(index, 2bv64)] ++ (memory[bvadd64(index, 1bv64)] ++ memory[index]))))))) } -function {:extern} memory_store32_le(memory: [bv64]bv8, index: bv64, value: bv32) returns ([bv64]bv8) { - memory[index := value[8:0]][bvadd64(index, 1bv64) := value[16:8]][bvadd64(index, 2bv64) := value[24:16]][bvadd64(index, 3bv64) := value[32:24]] -} - -function {:extern} memory_store64_le(memory: [bv64]bv8, index: bv64, value: bv64) returns ([bv64]bv8) { - memory[index := value[8:0]][bvadd64(index, 1bv64) := value[16:8]][bvadd64(index, 2bv64) := value[24:16]][bvadd64(index, 3bv64) := value[32:24]][bvadd64(index, 4bv64) := value[40:32]][bvadd64(index, 5bv64) := value[48:40]][bvadd64(index, 6bv64) := value[56:48]][bvadd64(index, 7bv64) := value[64:56]] -} - -function {:extern} {:bvbuiltin "sign_extend 1"} sign_extend1_32(bv32) returns (bv33); -function {:extern} {:bvbuiltin "zero_extend 32"} zero_extend32_32(bv32) returns (bv64); procedure {:extern} rely(); modifies Gamma_mem, mem; ensures (Gamma_mem == old(Gamma_mem)); ensures (mem == old(mem)); - free ensures (memory_load32_le(mem, 1948bv64) == 131073bv32); - free ensures (memory_load64_le(mem, 69016bv64) == 1808bv64); - free ensures (memory_load64_le(mem, 69024bv64) == 1728bv64); - free ensures (memory_load64_le(mem, 69616bv64) == 1812bv64); - free ensures (memory_load64_le(mem, 69640bv64) == 69640bv64); + free ensures (memory_load32_le(mem, 4196312bv64) == 131073bv32); procedure {:extern} rely_transitive(); modifies Gamma_mem, mem; @@ -76,107 +35,21 @@ procedure {:extern} rely_reflexive(); procedure {:extern} guarantee_reflexive(); modifies Gamma_mem, mem; -procedure main_1812(); - modifies Gamma_R0, Gamma_R1, Gamma_R2, Gamma_R31, Gamma_stack, R0, R1, R2, R31, stack; - free requires (memory_load64_le(mem, 69632bv64) == 0bv64); - free requires (memory_load64_le(mem, 69640bv64) == 69640bv64); - free requires (memory_load32_le(mem, 1948bv64) == 131073bv32); - free requires (memory_load64_le(mem, 69016bv64) == 1808bv64); - free requires (memory_load64_le(mem, 69024bv64) == 1728bv64); - free requires (memory_load64_le(mem, 69616bv64) == 1812bv64); - free requires (memory_load64_le(mem, 69640bv64) == 69640bv64); - free ensures (Gamma_R31 == old(Gamma_R31)); - free ensures (R31 == old(R31)); - free ensures (memory_load32_le(mem, 1948bv64) == 131073bv32); - free ensures (memory_load64_le(mem, 69016bv64) == 1808bv64); - free ensures (memory_load64_le(mem, 69024bv64) == 1728bv64); - free ensures (memory_load64_le(mem, 69616bv64) == 1812bv64); - free ensures (memory_load64_le(mem, 69640bv64) == 69640bv64); +procedure main(); + modifies Gamma_R0, R0; + free requires (memory_load64_le(mem, 4325376bv64) == 0bv64); + free requires (memory_load64_le(mem, 4325384bv64) == 0bv64); + free requires (memory_load32_le(mem, 4196312bv64) == 131073bv32); + free ensures (memory_load32_le(mem, 4196312bv64) == 131073bv32); -implementation main_1812() +implementation main() { - var Gamma_load18: bool; - var Gamma_load19: bool; - var Gamma_load20: bool; - var Gamma_load21: bool; - var Gamma_load22: bool; - var Gamma_load23: bool; - var Gamma_load24: bool; - var load18: bv32; - var load19: bv32; - var load20: bv32; - var load21: bv32; - var load22: bv32; - var load23: bv32; - var load24: bv32; lmain: assume {:captureState "lmain"} true; - R31, Gamma_R31 := bvadd64(R31, 18446744073709551584bv64), Gamma_R31; - stack, Gamma_stack := memory_store32_le(stack, bvadd64(R31, 12bv64), R0[32:0]), gamma_store32(Gamma_stack, bvadd64(R31, 12bv64), Gamma_R0); - assume {:captureState "%0000032a"} true; - stack, Gamma_stack := memory_store64_le(stack, R31, R1), gamma_store64(Gamma_stack, R31, Gamma_R1); - assume {:captureState "%00000332"} true; - R0, Gamma_R0 := 2bv64, true; - stack, Gamma_stack := memory_store32_le(stack, bvadd64(R31, 20bv64), R0[32:0]), gamma_store32(Gamma_stack, bvadd64(R31, 20bv64), Gamma_R0); - assume {:captureState "%0000033f"} true; - R0, Gamma_R0 := 3bv64, true; - stack, Gamma_stack := memory_store32_le(stack, bvadd64(R31, 24bv64), R0[32:0]), gamma_store32(Gamma_stack, bvadd64(R31, 24bv64), Gamma_R0); - assume {:captureState "%0000034c"} true; - load18, Gamma_load18 := memory_load32_le(stack, bvadd64(R31, 20bv64)), gamma_load32(Gamma_stack, bvadd64(R31, 20bv64)); - R1, Gamma_R1 := zero_extend32_32(load18), Gamma_load18; - load19, Gamma_load19 := memory_load32_le(stack, bvadd64(R31, 24bv64)), gamma_load32(Gamma_stack, bvadd64(R31, 24bv64)); - R0, Gamma_R0 := zero_extend32_32(load19), Gamma_load19; - R0, Gamma_R0 := zero_extend32_32(bvxor32(R1[32:0], R0[32:0])), (Gamma_R0 && Gamma_R1); - stack, Gamma_stack := memory_store32_le(stack, bvadd64(R31, 28bv64), R0[32:0]), gamma_store32(Gamma_stack, bvadd64(R31, 28bv64), Gamma_R0); - assume {:captureState "%00000369"} true; - load20, Gamma_load20 := memory_load32_le(stack, bvadd64(R31, 20bv64)), gamma_load32(Gamma_stack, bvadd64(R31, 20bv64)); - R1, Gamma_R1 := zero_extend32_32(load20), Gamma_load20; - load21, Gamma_load21 := memory_load32_le(stack, bvadd64(R31, 28bv64)), gamma_load32(Gamma_stack, bvadd64(R31, 28bv64)); - R0, Gamma_R0 := zero_extend32_32(load21), Gamma_load21; - R0, Gamma_R0 := zero_extend32_32(bvor32(R1[32:0], R0[32:0])), (Gamma_R0 && Gamma_R1); - stack, Gamma_stack := memory_store32_le(stack, bvadd64(R31, 24bv64), R0[32:0]), gamma_store32(Gamma_stack, bvadd64(R31, 24bv64), Gamma_R0); - assume {:captureState "%00000386"} true; - R0, Gamma_R0 := 30bv64, true; - stack, Gamma_stack := memory_store32_le(stack, bvadd64(R31, 20bv64), R0[32:0]), gamma_store32(Gamma_stack, bvadd64(R31, 20bv64), Gamma_R0); - assume {:captureState "%00000393"} true; - R0, Gamma_R0 := 17bv64, true; - stack, Gamma_stack := memory_store32_le(stack, bvadd64(R31, 24bv64), R0[32:0]), gamma_store32(Gamma_stack, bvadd64(R31, 24bv64), Gamma_R0); - assume {:captureState "%000003a0"} true; - load22, Gamma_load22 := memory_load32_le(stack, bvadd64(R31, 20bv64)), gamma_load32(Gamma_stack, bvadd64(R31, 20bv64)); - R0, Gamma_R0 := zero_extend32_32(load22), Gamma_load22; - load23, Gamma_load23 := memory_load32_le(stack, bvadd64(R31, 24bv64)), gamma_load32(Gamma_stack, bvadd64(R31, 24bv64)); - R1, Gamma_R1 := zero_extend32_32(load23), Gamma_load23; - assert Gamma_R1; - goto lmain_goto_l000003b3, lmain_goto_l000003b8; - lmain_goto_l000003b8: - assume {:captureState "lmain_goto_l000003b8"} true; - assume (bvcomp32(R1[32:0], 0bv32) == 0bv1); - R2, Gamma_R2 := zero_extend32_32(bvsdiv33(sign_extend1_32(R0[32:0]), sign_extend1_32(R1[32:0]))[32:0]), (Gamma_R1 && Gamma_R0); - goto l000003b8; - l000003b8: - assume {:captureState "l000003b8"} true; - goto l000003bb; - lmain_goto_l000003b3: - assume {:captureState "lmain_goto_l000003b3"} true; - assume (bvcomp32(R1[32:0], 0bv32) != 0bv1); - R2, Gamma_R2 := 0bv64, true; - goto l000003b3; - l000003b3: - assume {:captureState "l000003b3"} true; - goto l000003bb; - l000003bb: - assume {:captureState "l000003bb"} true; - load24, Gamma_load24 := memory_load32_le(stack, bvadd64(R31, 24bv64)), gamma_load32(Gamma_stack, bvadd64(R31, 24bv64)); - R1, Gamma_R1 := zero_extend32_32(load24), Gamma_load24; - R1, Gamma_R1 := zero_extend32_32(bvmul64(zero_extend32_32(R2[32:0]), zero_extend32_32(R1[32:0]))[32:0]), (Gamma_R1 && Gamma_R2); - R0, Gamma_R0 := zero_extend32_32(bvadd32(bvadd32(R0[32:0], bvnot32(R1[32:0])), 1bv32)), (Gamma_R1 && Gamma_R0); - stack, Gamma_stack := memory_store32_le(stack, bvadd64(R31, 28bv64), R0[32:0]), gamma_store32(Gamma_stack, bvadd64(R31, 28bv64), Gamma_R0); - assume {:captureState "%000003dc"} true; R0, Gamma_R0 := 0bv64, true; - R31, Gamma_R31 := bvadd64(R31, 32bv64), Gamma_R31; - goto main_1812_basil_return; - main_1812_basil_return: - assume {:captureState "main_1812_basil_return"} true; + goto main_basil_return; + main_basil_return: + assume {:captureState "main_basil_return"} true; return; } diff --git a/src/test/correct/basic_operation_evaluation/gcc/basic_operation_evaluation.gts b/src/test/correct/basic_operation_evaluation/gcc/basic_operation_evaluation.gts deleted file mode 100644 index 38fed10a8..000000000 Binary files a/src/test/correct/basic_operation_evaluation/gcc/basic_operation_evaluation.gts and /dev/null differ diff --git a/src/test/correct/basic_operation_evaluation/gcc/basic_operation_evaluation.md5sum b/src/test/correct/basic_operation_evaluation/gcc/basic_operation_evaluation.md5sum new file mode 100644 index 000000000..a8707fc26 --- /dev/null +++ b/src/test/correct/basic_operation_evaluation/gcc/basic_operation_evaluation.md5sum @@ -0,0 +1,5 @@ +964648d9cfdbc6de86317398feb1faa1 correct/basic_operation_evaluation/gcc/a.out +c6f0a8a8595db28cc6916c99de222661 correct/basic_operation_evaluation/gcc/basic_operation_evaluation.adt +666637e4717587b51a2052b24c6a7a5b correct/basic_operation_evaluation/gcc/basic_operation_evaluation.bir +19bf7060f0976148af43bbfe2d17dbfa correct/basic_operation_evaluation/gcc/basic_operation_evaluation.relf +33ad199af856c8caf09ab102272c7e8e correct/basic_operation_evaluation/gcc/basic_operation_evaluation.gts diff --git a/src/test/correct/basic_operation_evaluation/gcc/basic_operation_evaluation.relf b/src/test/correct/basic_operation_evaluation/gcc/basic_operation_evaluation.relf deleted file mode 100644 index 580f9f942..000000000 --- a/src/test/correct/basic_operation_evaluation/gcc/basic_operation_evaluation.relf +++ /dev/null @@ -1,119 +0,0 @@ - -Relocation section '.rela.dyn' at offset 0x460 contains 8 entries: - Offset Info Type Symbol's Value Symbol's Name + Addend -0000000000010d98 0000000000000403 R_AARCH64_RELATIVE 710 -0000000000010da0 0000000000000403 R_AARCH64_RELATIVE 6c0 -0000000000010ff0 0000000000000403 R_AARCH64_RELATIVE 714 -0000000000011008 0000000000000403 R_AARCH64_RELATIVE 11008 -0000000000010fd8 0000000400000401 R_AARCH64_GLOB_DAT 0000000000000000 _ITM_deregisterTMCloneTable + 0 -0000000000010fe0 0000000500000401 R_AARCH64_GLOB_DAT 0000000000000000 __cxa_finalize@GLIBC_2.17 + 0 -0000000000010fe8 0000000600000401 R_AARCH64_GLOB_DAT 0000000000000000 __gmon_start__ + 0 -0000000000010ff8 0000000800000401 R_AARCH64_GLOB_DAT 0000000000000000 _ITM_registerTMCloneTable + 0 - -Relocation section '.rela.plt' at offset 0x520 contains 4 entries: - Offset Info Type Symbol's Value Symbol's Name + Addend -0000000000010fb0 0000000300000402 R_AARCH64_JUMP_SLOT 0000000000000000 __libc_start_main@GLIBC_2.34 + 0 -0000000000010fb8 0000000500000402 R_AARCH64_JUMP_SLOT 0000000000000000 __cxa_finalize@GLIBC_2.17 + 0 -0000000000010fc0 0000000600000402 R_AARCH64_JUMP_SLOT 0000000000000000 __gmon_start__ + 0 -0000000000010fc8 0000000700000402 R_AARCH64_JUMP_SLOT 0000000000000000 abort@GLIBC_2.17 + 0 - -Symbol table '.dynsym' contains 9 entries: - Num: Value Size Type Bind Vis Ndx Name - 0: 0000000000000000 0 NOTYPE LOCAL DEFAULT UND - 1: 0000000000000580 0 SECTION LOCAL DEFAULT 11 .init - 2: 0000000000011000 0 SECTION LOCAL DEFAULT 22 .data - 3: 0000000000000000 0 FUNC GLOBAL DEFAULT UND __libc_start_main@GLIBC_2.34 (2) - 4: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_deregisterTMCloneTable - 5: 0000000000000000 0 FUNC WEAK DEFAULT UND __cxa_finalize@GLIBC_2.17 (3) - 6: 0000000000000000 0 NOTYPE WEAK DEFAULT UND __gmon_start__ - 7: 0000000000000000 0 FUNC GLOBAL DEFAULT UND abort@GLIBC_2.17 (3) - 8: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_registerTMCloneTable - -Symbol table '.symtab' contains 86 entries: - Num: Value Size Type Bind Vis Ndx Name - 0: 0000000000000000 0 NOTYPE LOCAL DEFAULT UND - 1: 0000000000000238 0 SECTION LOCAL DEFAULT 1 .interp - 2: 0000000000000254 0 SECTION LOCAL DEFAULT 2 .note.gnu.build-id - 3: 0000000000000278 0 SECTION LOCAL DEFAULT 3 .note.ABI-tag - 4: 0000000000000298 0 SECTION LOCAL DEFAULT 4 .gnu.hash - 5: 00000000000002b8 0 SECTION LOCAL DEFAULT 5 .dynsym - 6: 0000000000000390 0 SECTION LOCAL DEFAULT 6 .dynstr - 7: 000000000000041e 0 SECTION LOCAL DEFAULT 7 .gnu.version - 8: 0000000000000430 0 SECTION LOCAL DEFAULT 8 .gnu.version_r - 9: 0000000000000460 0 SECTION LOCAL DEFAULT 9 .rela.dyn - 10: 0000000000000520 0 SECTION LOCAL DEFAULT 10 .rela.plt - 11: 0000000000000580 0 SECTION LOCAL DEFAULT 11 .init - 12: 00000000000005a0 0 SECTION LOCAL DEFAULT 12 .plt - 13: 0000000000000600 0 SECTION LOCAL DEFAULT 13 .text - 14: 0000000000000788 0 SECTION LOCAL DEFAULT 14 .fini - 15: 000000000000079c 0 SECTION LOCAL DEFAULT 15 .rodata - 16: 00000000000007a0 0 SECTION LOCAL DEFAULT 16 .eh_frame_hdr - 17: 00000000000007e0 0 SECTION LOCAL DEFAULT 17 .eh_frame - 18: 0000000000010d98 0 SECTION LOCAL DEFAULT 18 .init_array - 19: 0000000000010da0 0 SECTION LOCAL DEFAULT 19 .fini_array - 20: 0000000000010da8 0 SECTION LOCAL DEFAULT 20 .dynamic - 21: 0000000000010f98 0 SECTION LOCAL DEFAULT 21 .got - 22: 0000000000011000 0 SECTION LOCAL DEFAULT 22 .data - 23: 0000000000011010 0 SECTION LOCAL DEFAULT 23 .bss - 24: 0000000000000000 0 SECTION LOCAL DEFAULT 24 .comment - 25: 0000000000000000 0 FILE LOCAL DEFAULT ABS Scrt1.o - 26: 0000000000000278 0 NOTYPE LOCAL DEFAULT 3 $d - 27: 0000000000000278 32 OBJECT LOCAL DEFAULT 3 __abi_tag - 28: 0000000000000600 0 NOTYPE LOCAL DEFAULT 13 $x - 29: 00000000000007f4 0 NOTYPE LOCAL DEFAULT 17 $d - 30: 000000000000079c 0 NOTYPE LOCAL DEFAULT 15 $d - 31: 0000000000000000 0 FILE LOCAL DEFAULT ABS crti.o - 32: 0000000000000634 0 NOTYPE LOCAL DEFAULT 13 $x - 33: 0000000000000634 20 FUNC LOCAL DEFAULT 13 call_weak_fn - 34: 0000000000000580 0 NOTYPE LOCAL DEFAULT 11 $x - 35: 0000000000000788 0 NOTYPE LOCAL DEFAULT 14 $x - 36: 0000000000000000 0 FILE LOCAL DEFAULT ABS crtn.o - 37: 0000000000000590 0 NOTYPE LOCAL DEFAULT 11 $x - 38: 0000000000000794 0 NOTYPE LOCAL DEFAULT 14 $x - 39: 0000000000000000 0 FILE LOCAL DEFAULT ABS crtstuff.c - 40: 0000000000000650 0 NOTYPE LOCAL DEFAULT 13 $x - 41: 0000000000000650 0 FUNC LOCAL DEFAULT 13 deregister_tm_clones - 42: 0000000000000680 0 FUNC LOCAL DEFAULT 13 register_tm_clones - 43: 0000000000011008 0 NOTYPE LOCAL DEFAULT 22 $d - 44: 00000000000006c0 0 FUNC LOCAL DEFAULT 13 __do_global_dtors_aux - 45: 0000000000011010 1 OBJECT LOCAL DEFAULT 23 completed.0 - 46: 0000000000010da0 0 NOTYPE LOCAL DEFAULT 19 $d - 47: 0000000000010da0 0 OBJECT LOCAL DEFAULT 19 __do_global_dtors_aux_fini_array_entry - 48: 0000000000000710 0 FUNC LOCAL DEFAULT 13 frame_dummy - 49: 0000000000010d98 0 NOTYPE LOCAL DEFAULT 18 $d - 50: 0000000000010d98 0 OBJECT LOCAL DEFAULT 18 __frame_dummy_init_array_entry - 51: 0000000000000808 0 NOTYPE LOCAL DEFAULT 17 $d - 52: 0000000000011010 0 NOTYPE LOCAL DEFAULT 23 $d - 53: 0000000000000000 0 FILE LOCAL DEFAULT ABS basic_operation_evaluation.c - 54: 0000000000000714 0 NOTYPE LOCAL DEFAULT 13 $x - 55: 0000000000000868 0 NOTYPE LOCAL DEFAULT 17 $d - 56: 0000000000000000 0 FILE LOCAL DEFAULT ABS crtstuff.c - 57: 0000000000000880 0 NOTYPE LOCAL DEFAULT 17 $d - 58: 0000000000000880 0 OBJECT LOCAL DEFAULT 17 __FRAME_END__ - 59: 0000000000000000 0 FILE LOCAL DEFAULT ABS - 60: 0000000000010da8 0 OBJECT LOCAL DEFAULT ABS _DYNAMIC - 61: 00000000000007a0 0 NOTYPE LOCAL DEFAULT 16 __GNU_EH_FRAME_HDR - 62: 0000000000010fd0 0 OBJECT LOCAL DEFAULT ABS _GLOBAL_OFFSET_TABLE_ - 63: 00000000000005a0 0 NOTYPE LOCAL DEFAULT 12 $x - 64: 0000000000000000 0 FUNC GLOBAL DEFAULT UND __libc_start_main@GLIBC_2.34 - 65: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_deregisterTMCloneTable - 66: 0000000000011000 0 NOTYPE WEAK DEFAULT 22 data_start - 67: 0000000000011010 0 NOTYPE GLOBAL DEFAULT 23 __bss_start__ - 68: 0000000000000000 0 FUNC WEAK DEFAULT UND __cxa_finalize@GLIBC_2.17 - 69: 0000000000011018 0 NOTYPE GLOBAL DEFAULT 23 _bss_end__ - 70: 0000000000011010 0 NOTYPE GLOBAL DEFAULT 22 _edata - 71: 0000000000000788 0 FUNC GLOBAL HIDDEN 14 _fini - 72: 0000000000011018 0 NOTYPE GLOBAL DEFAULT 23 __bss_end__ - 73: 0000000000011000 0 NOTYPE GLOBAL DEFAULT 22 __data_start - 74: 0000000000000000 0 NOTYPE WEAK DEFAULT UND __gmon_start__ - 75: 0000000000011008 0 OBJECT GLOBAL HIDDEN 22 __dso_handle - 76: 0000000000000000 0 FUNC GLOBAL DEFAULT UND abort@GLIBC_2.17 - 77: 000000000000079c 4 OBJECT GLOBAL DEFAULT 15 _IO_stdin_used - 78: 0000000000011018 0 NOTYPE GLOBAL DEFAULT 23 _end - 79: 0000000000000600 52 FUNC GLOBAL DEFAULT 13 _start - 80: 0000000000011018 0 NOTYPE GLOBAL DEFAULT 23 __end__ - 81: 0000000000011010 0 NOTYPE GLOBAL DEFAULT 23 __bss_start - 82: 0000000000000714 116 FUNC GLOBAL DEFAULT 13 main - 83: 0000000000011010 0 OBJECT GLOBAL HIDDEN 22 __TMC_END__ - 84: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_registerTMCloneTable - 85: 0000000000000580 0 FUNC GLOBAL HIDDEN 11 _init diff --git a/src/test/correct/basic_operation_evaluation/gcc/basic_operation_evaluation_gtirb.expected b/src/test/correct/basic_operation_evaluation/gcc/basic_operation_evaluation_gtirb.expected index 18bbd9524..3f24e578d 100644 --- a/src/test/correct/basic_operation_evaluation/gcc/basic_operation_evaluation_gtirb.expected +++ b/src/test/correct/basic_operation_evaluation/gcc/basic_operation_evaluation_gtirb.expected @@ -1,36 +1,10 @@ var {:extern} Gamma_R0: bool; -var {:extern} Gamma_R1: bool; -var {:extern} Gamma_R2: bool; -var {:extern} Gamma_R31: bool; var {:extern} Gamma_mem: [bv64]bool; -var {:extern} Gamma_stack: [bv64]bool; var {:extern} R0: bv64; -var {:extern} R1: bv64; -var {:extern} R2: bv64; -var {:extern} R31: bv64; var {:extern} mem: [bv64]bv8; -var {:extern} stack: [bv64]bv8; const {:extern} $_IO_stdin_used_addr: bv64; -axiom ($_IO_stdin_used_addr == 1948bv64); -function {:extern} {:bvbuiltin "bvadd"} bvadd32(bv32, bv32) returns (bv32); +axiom ($_IO_stdin_used_addr == 4196312bv64); function {:extern} {:bvbuiltin "bvadd"} bvadd64(bv64, bv64) returns (bv64); -function {:extern} {:bvbuiltin "bvmul"} bvmul64(bv64, bv64) returns (bv64); -function {:extern} {:bvbuiltin "bvnot"} bvnot32(bv32) returns (bv32); -function {:extern} {:bvbuiltin "bvor"} bvor32(bv32, bv32) returns (bv32); -function {:extern} {:bvbuiltin "bvsdiv"} bvsdiv33(bv33, bv33) returns (bv33); -function {:extern} {:bvbuiltin "bvxor"} bvxor32(bv32, bv32) returns (bv32); -function {:extern} gamma_load32(gammaMap: [bv64]bool, index: bv64) returns (bool) { - (gammaMap[bvadd64(index, 3bv64)] && (gammaMap[bvadd64(index, 2bv64)] && (gammaMap[bvadd64(index, 1bv64)] && gammaMap[index]))) -} - -function {:extern} gamma_store32(gammaMap: [bv64]bool, index: bv64, value: bool) returns ([bv64]bool) { - gammaMap[index := value][bvadd64(index, 1bv64) := value][bvadd64(index, 2bv64) := value][bvadd64(index, 3bv64) := value] -} - -function {:extern} gamma_store64(gammaMap: [bv64]bool, index: bv64, value: bool) returns ([bv64]bool) { - gammaMap[index := value][bvadd64(index, 1bv64) := value][bvadd64(index, 2bv64) := value][bvadd64(index, 3bv64) := value][bvadd64(index, 4bv64) := value][bvadd64(index, 5bv64) := value][bvadd64(index, 6bv64) := value][bvadd64(index, 7bv64) := value] -} - function {:extern} memory_load32_le(memory: [bv64]bv8, index: bv64) returns (bv32) { (memory[bvadd64(index, 3bv64)] ++ (memory[bvadd64(index, 2bv64)] ++ (memory[bvadd64(index, 1bv64)] ++ memory[index]))) } @@ -39,25 +13,11 @@ function {:extern} memory_load64_le(memory: [bv64]bv8, index: bv64) returns (bv6 (memory[bvadd64(index, 7bv64)] ++ (memory[bvadd64(index, 6bv64)] ++ (memory[bvadd64(index, 5bv64)] ++ (memory[bvadd64(index, 4bv64)] ++ (memory[bvadd64(index, 3bv64)] ++ (memory[bvadd64(index, 2bv64)] ++ (memory[bvadd64(index, 1bv64)] ++ memory[index]))))))) } -function {:extern} memory_store32_le(memory: [bv64]bv8, index: bv64, value: bv32) returns ([bv64]bv8) { - memory[index := value[8:0]][bvadd64(index, 1bv64) := value[16:8]][bvadd64(index, 2bv64) := value[24:16]][bvadd64(index, 3bv64) := value[32:24]] -} - -function {:extern} memory_store64_le(memory: [bv64]bv8, index: bv64, value: bv64) returns ([bv64]bv8) { - memory[index := value[8:0]][bvadd64(index, 1bv64) := value[16:8]][bvadd64(index, 2bv64) := value[24:16]][bvadd64(index, 3bv64) := value[32:24]][bvadd64(index, 4bv64) := value[40:32]][bvadd64(index, 5bv64) := value[48:40]][bvadd64(index, 6bv64) := value[56:48]][bvadd64(index, 7bv64) := value[64:56]] -} - -function {:extern} {:bvbuiltin "sign_extend 1"} sign_extend1_32(bv32) returns (bv33); -function {:extern} {:bvbuiltin "zero_extend 32"} zero_extend32_32(bv32) returns (bv64); procedure {:extern} rely(); modifies Gamma_mem, mem; ensures (Gamma_mem == old(Gamma_mem)); ensures (mem == old(mem)); - free ensures (memory_load32_le(mem, 1948bv64) == 131073bv32); - free ensures (memory_load64_le(mem, 69016bv64) == 1808bv64); - free ensures (memory_load64_le(mem, 69024bv64) == 1728bv64); - free ensures (memory_load64_le(mem, 69616bv64) == 1812bv64); - free ensures (memory_load64_le(mem, 69640bv64) == 69640bv64); + free ensures (memory_load32_le(mem, 4196312bv64) == 131073bv32); procedure {:extern} rely_transitive(); modifies Gamma_mem, mem; @@ -75,101 +35,21 @@ procedure {:extern} rely_reflexive(); procedure {:extern} guarantee_reflexive(); modifies Gamma_mem, mem; -procedure main_1812(); - modifies Gamma_R0, Gamma_R1, Gamma_R2, Gamma_R31, Gamma_stack, R0, R1, R2, R31, stack; - free requires (memory_load64_le(mem, 69632bv64) == 0bv64); - free requires (memory_load64_le(mem, 69640bv64) == 69640bv64); - free requires (memory_load32_le(mem, 1948bv64) == 131073bv32); - free requires (memory_load64_le(mem, 69016bv64) == 1808bv64); - free requires (memory_load64_le(mem, 69024bv64) == 1728bv64); - free requires (memory_load64_le(mem, 69616bv64) == 1812bv64); - free requires (memory_load64_le(mem, 69640bv64) == 69640bv64); - free ensures (Gamma_R31 == old(Gamma_R31)); - free ensures (R31 == old(R31)); - free ensures (memory_load32_le(mem, 1948bv64) == 131073bv32); - free ensures (memory_load64_le(mem, 69016bv64) == 1808bv64); - free ensures (memory_load64_le(mem, 69024bv64) == 1728bv64); - free ensures (memory_load64_le(mem, 69616bv64) == 1812bv64); - free ensures (memory_load64_le(mem, 69640bv64) == 69640bv64); +procedure main(); + modifies Gamma_R0, R0; + free requires (memory_load64_le(mem, 4325376bv64) == 0bv64); + free requires (memory_load64_le(mem, 4325384bv64) == 0bv64); + free requires (memory_load32_le(mem, 4196312bv64) == 131073bv32); + free ensures (memory_load32_le(mem, 4196312bv64) == 131073bv32); -implementation main_1812() +implementation main() { - var Gamma_load20: bool; - var Gamma_load21: bool; - var Gamma_load22: bool; - var Gamma_load23: bool; - var Gamma_load24: bool; - var Gamma_load25: bool; - var Gamma_load26: bool; - var load20: bv32; - var load21: bv32; - var load22: bv32; - var load23: bv32; - var load24: bv32; - var load25: bv32; - var load26: bv32; - main_1812__0__B9tkaGtQRX6xFjqGS87lEw: - assume {:captureState "main_1812__0__B9tkaGtQRX6xFjqGS87lEw"} true; - R31, Gamma_R31 := bvadd64(R31, 18446744073709551584bv64), Gamma_R31; - stack, Gamma_stack := memory_store32_le(stack, bvadd64(R31, 12bv64), R0[32:0]), gamma_store32(Gamma_stack, bvadd64(R31, 12bv64), Gamma_R0); - assume {:captureState "1816_0"} true; - stack, Gamma_stack := memory_store64_le(stack, R31, R1), gamma_store64(Gamma_stack, R31, Gamma_R1); - assume {:captureState "1820_0"} true; - R0, Gamma_R0 := 2bv64, true; - stack, Gamma_stack := memory_store32_le(stack, bvadd64(R31, 20bv64), R0[32:0]), gamma_store32(Gamma_stack, bvadd64(R31, 20bv64), Gamma_R0); - assume {:captureState "1828_0"} true; - R0, Gamma_R0 := 3bv64, true; - stack, Gamma_stack := memory_store32_le(stack, bvadd64(R31, 24bv64), R0[32:0]), gamma_store32(Gamma_stack, bvadd64(R31, 24bv64), Gamma_R0); - assume {:captureState "1836_0"} true; - load20, Gamma_load20 := memory_load32_le(stack, bvadd64(R31, 20bv64)), gamma_load32(Gamma_stack, bvadd64(R31, 20bv64)); - R1, Gamma_R1 := zero_extend32_32(load20), Gamma_load20; - load21, Gamma_load21 := memory_load32_le(stack, bvadd64(R31, 24bv64)), gamma_load32(Gamma_stack, bvadd64(R31, 24bv64)); - R0, Gamma_R0 := zero_extend32_32(load21), Gamma_load21; - R0, Gamma_R0 := zero_extend32_32(bvxor32(R1[32:0], R0[32:0])), (Gamma_R0 && Gamma_R1); - stack, Gamma_stack := memory_store32_le(stack, bvadd64(R31, 28bv64), R0[32:0]), gamma_store32(Gamma_stack, bvadd64(R31, 28bv64), Gamma_R0); - assume {:captureState "1852_0"} true; - load22, Gamma_load22 := memory_load32_le(stack, bvadd64(R31, 20bv64)), gamma_load32(Gamma_stack, bvadd64(R31, 20bv64)); - R1, Gamma_R1 := zero_extend32_32(load22), Gamma_load22; - load23, Gamma_load23 := memory_load32_le(stack, bvadd64(R31, 28bv64)), gamma_load32(Gamma_stack, bvadd64(R31, 28bv64)); - R0, Gamma_R0 := zero_extend32_32(load23), Gamma_load23; - R0, Gamma_R0 := zero_extend32_32(bvor32(R1[32:0], R0[32:0])), (Gamma_R0 && Gamma_R1); - stack, Gamma_stack := memory_store32_le(stack, bvadd64(R31, 24bv64), R0[32:0]), gamma_store32(Gamma_stack, bvadd64(R31, 24bv64), Gamma_R0); - assume {:captureState "1868_0"} true; - R0, Gamma_R0 := 30bv64, true; - stack, Gamma_stack := memory_store32_le(stack, bvadd64(R31, 20bv64), R0[32:0]), gamma_store32(Gamma_stack, bvadd64(R31, 20bv64), Gamma_R0); - assume {:captureState "1876_0"} true; - R0, Gamma_R0 := 17bv64, true; - stack, Gamma_stack := memory_store32_le(stack, bvadd64(R31, 24bv64), R0[32:0]), gamma_store32(Gamma_stack, bvadd64(R31, 24bv64), Gamma_R0); - assume {:captureState "1884_0"} true; - load24, Gamma_load24 := memory_load32_le(stack, bvadd64(R31, 20bv64)), gamma_load32(Gamma_stack, bvadd64(R31, 20bv64)); - R0, Gamma_R0 := zero_extend32_32(load24), Gamma_load24; - load25, Gamma_load25 := memory_load32_le(stack, bvadd64(R31, 24bv64)), gamma_load32(Gamma_stack, bvadd64(R31, 24bv64)); - R1, Gamma_R1 := zero_extend32_32(load25), Gamma_load25; - assert Gamma_R1; - goto main_1812__0__B9tkaGtQRX6xFjqGS87lEw$__0, main_1812__0__B9tkaGtQRX6xFjqGS87lEw$__1; - main_1812__0__B9tkaGtQRX6xFjqGS87lEw$__1: - assume {:captureState "main_1812__0__B9tkaGtQRX6xFjqGS87lEw$__1"} true; - assume (!(R1[32:0] == 0bv32)); - R2, Gamma_R2 := zero_extend32_32(bvsdiv33(sign_extend1_32(R0[32:0]), sign_extend1_32(R1[32:0]))[32:0]), (Gamma_R1 && Gamma_R0); - goto main_1812__0__B9tkaGtQRX6xFjqGS87lEw$__2; - main_1812__0__B9tkaGtQRX6xFjqGS87lEw$__0: - assume {:captureState "main_1812__0__B9tkaGtQRX6xFjqGS87lEw$__0"} true; - assume (R1[32:0] == 0bv32); - R2, Gamma_R2 := 0bv64, true; - goto main_1812__0__B9tkaGtQRX6xFjqGS87lEw$__2; - main_1812__0__B9tkaGtQRX6xFjqGS87lEw$__2: - assume {:captureState "main_1812__0__B9tkaGtQRX6xFjqGS87lEw$__2"} true; - load26, Gamma_load26 := memory_load32_le(stack, bvadd64(R31, 24bv64)), gamma_load32(Gamma_stack, bvadd64(R31, 24bv64)); - R1, Gamma_R1 := zero_extend32_32(load26), Gamma_load26; - R1, Gamma_R1 := zero_extend32_32(bvmul64(zero_extend32_32(R2[32:0]), zero_extend32_32(R1[32:0]))[32:0]), (Gamma_R1 && Gamma_R2); - R0, Gamma_R0 := zero_extend32_32(bvadd32(bvadd32(R0[32:0], bvnot32(R1[32:0])), 1bv32)), (Gamma_R1 && Gamma_R0); - stack, Gamma_stack := memory_store32_le(stack, bvadd64(R31, 28bv64), R0[32:0]), gamma_store32(Gamma_stack, bvadd64(R31, 28bv64), Gamma_R0); - assume {:captureState "1912_0"} true; + $main$__0__$cegbDVc9S6m8Z0kHHU8BZQ: + assume {:captureState "$main$__0__$cegbDVc9S6m8Z0kHHU8BZQ"} true; R0, Gamma_R0 := 0bv64, true; - R31, Gamma_R31 := bvadd64(R31, 32bv64), Gamma_R31; - goto main_1812_basil_return; - main_1812_basil_return: - assume {:captureState "main_1812_basil_return"} true; + goto main_basil_return; + main_basil_return: + assume {:captureState "main_basil_return"} true; return; } diff --git a/src/test/correct/basic_sec_policy_read/clang/basic_sec_policy_read.adt b/src/test/correct/basic_sec_policy_read/clang/basic_sec_policy_read.adt deleted file mode 100644 index ad9fa009b..000000000 --- a/src/test/correct/basic_sec_policy_read/clang/basic_sec_policy_read.adt +++ /dev/null @@ -1,554 +0,0 @@ -Project(Attrs([Attr("filename","\"clang/basic_sec_policy_read.out\""), -Attr("image-specification","(declare abi (name str))\n(declare arch (name str))\n(declare base-address (addr int))\n(declare bias (off int))\n(declare bits (size int))\n(declare code-region (addr int) (size int) (off int))\n(declare code-start (addr int))\n(declare entry-point (addr int))\n(declare external-reference (addr int) (name str))\n(declare format (name str))\n(declare is-executable (flag bool))\n(declare is-little-endian (flag bool))\n(declare llvm:base-address (addr int))\n(declare llvm:code-entry (name str) (off int) (size int))\n(declare llvm:coff-import-library (name str))\n(declare llvm:coff-virtual-section-header (name str) (addr int) (size int))\n(declare llvm:elf-program-header (name str) (off int) (size int))\n(declare llvm:elf-program-header-flags (name str) (ld bool) (r bool) \n (w bool) (x bool))\n(declare llvm:elf-virtual-program-header (name str) (addr int) (size int))\n(declare llvm:entry-point (addr int))\n(declare llvm:macho-symbol (name str) (value int))\n(declare llvm:name-reference (at int) (name str))\n(declare llvm:relocation (at int) (addr int))\n(declare llvm:section-entry (name str) (addr int) (size int) (off int))\n(declare llvm:section-flags (name str) (r bool) (w bool) (x bool))\n(declare llvm:segment-command (name str) (off int) (size int))\n(declare llvm:segment-command-flags (name str) (r bool) (w bool) (x bool))\n(declare llvm:symbol-entry (name str) (addr int) (size int) (off int)\n (value int))\n(declare llvm:virtual-segment-command (name str) (addr int) (size int))\n(declare mapped (addr int) (size int) (off int))\n(declare named-region (addr int) (size int) (name str))\n(declare named-symbol (addr int) (name str))\n(declare require (name str))\n(declare section (addr int) (size int))\n(declare segment (addr int) (size int) (r bool) (w bool) (x bool))\n(declare subarch (name str))\n(declare symbol-chunk (addr int) (size int) (root int))\n(declare symbol-value (addr int) (value int))\n(declare system (name str))\n(declare vendor (name str))\n\n(abi unknown)\n(arch aarch64)\n(base-address 0)\n(bias 0)\n(bits 64)\n(code-region 1876 20 1876)\n(code-region 1536 340 1536)\n(code-region 1440 96 1440)\n(code-region 1408 24 1408)\n(code-start 1588)\n(code-start 1536)\n(code-start 1812)\n(entry-point 1536)\n(external-reference 69568 _ITM_deregisterTMCloneTable)\n(external-reference 69576 __cxa_finalize)\n(external-reference 69584 __gmon_start__)\n(external-reference 69600 _ITM_registerTMCloneTable)\n(external-reference 69632 __libc_start_main)\n(external-reference 69640 __cxa_finalize)\n(external-reference 69648 __gmon_start__)\n(external-reference 69656 abort)\n(format elf)\n(is-executable true)\n(is-little-endian true)\n(llvm:base-address 0)\n(llvm:code-entry abort 0 0)\n(llvm:code-entry __cxa_finalize 0 0)\n(llvm:code-entry __libc_start_main 0 0)\n(llvm:code-entry _init 1408 0)\n(llvm:code-entry main 1812 64)\n(llvm:code-entry _start 1536 52)\n(llvm:code-entry abort@GLIBC_2.17 0 0)\n(llvm:code-entry _fini 1876 0)\n(llvm:code-entry __cxa_finalize@GLIBC_2.17 0 0)\n(llvm:code-entry __libc_start_main@GLIBC_2.34 0 0)\n(llvm:code-entry frame_dummy 1808 0)\n(llvm:code-entry __do_global_dtors_aux 1728 0)\n(llvm:code-entry register_tm_clones 1664 0)\n(llvm:code-entry deregister_tm_clones 1616 0)\n(llvm:code-entry call_weak_fn 1588 20)\n(llvm:code-entry .fini 1876 20)\n(llvm:code-entry .text 1536 340)\n(llvm:code-entry .plt 1440 96)\n(llvm:code-entry .init 1408 24)\n(llvm:elf-program-header 08 3528 568)\n(llvm:elf-program-header 07 0 0)\n(llvm:elf-program-header 06 1900 60)\n(llvm:elf-program-header 05 596 68)\n(llvm:elf-program-header 04 3544 480)\n(llvm:elf-program-header 03 3528 616)\n(llvm:elf-program-header 02 0 2144)\n(llvm:elf-program-header 01 568 27)\n(llvm:elf-program-header 00 64 504)\n(llvm:elf-program-header-flags 08 false true false false)\n(llvm:elf-program-header-flags 07 false true true false)\n(llvm:elf-program-header-flags 06 false true false false)\n(llvm:elf-program-header-flags 05 false true false false)\n(llvm:elf-program-header-flags 04 false true true false)\n(llvm:elf-program-header-flags 03 true true true false)\n(llvm:elf-program-header-flags 02 true true false true)\n(llvm:elf-program-header-flags 01 false true false false)\n(llvm:elf-program-header-flags 00 false true false false)\n(llvm:elf-virtual-program-header 08 69064 568)\n(llvm:elf-virtual-program-header 07 0 0)\n(llvm:elf-virtual-program-header 06 1900 60)\n(llvm:elf-virtual-program-header 05 596 68)\n(llvm:elf-virtual-program-header 04 69080 480)\n(llvm:elf-virtual-program-header 03 69064 632)\n(llvm:elf-virtual-program-header 02 0 2144)\n(llvm:elf-virtual-program-header 01 568 27)\n(llvm:elf-virtual-program-header 00 64 504)\n(llvm:entry-point 1536)\n(llvm:name-reference 69656 abort)\n(llvm:name-reference 69648 __gmon_start__)\n(llvm:name-reference 69640 __cxa_finalize)\n(llvm:name-reference 69632 __libc_start_main)\n(llvm:name-reference 69600 _ITM_registerTMCloneTable)\n(llvm:name-reference 69584 __gmon_start__)\n(llvm:name-reference 69576 __cxa_finalize)\n(llvm:name-reference 69568 _ITM_deregisterTMCloneTable)\n(llvm:section-entry .shstrtab 0 259 6979)\n(llvm:section-entry .strtab 0 579 6400)\n(llvm:section-entry .symtab 0 2184 4216)\n(llvm:section-entry .comment 0 71 4144)\n(llvm:section-entry .bss 69680 16 4144)\n(llvm:section-entry .data 69664 16 4128)\n(llvm:section-entry .got.plt 69608 56 4072)\n(llvm:section-entry .got 69560 48 4024)\n(llvm:section-entry .dynamic 69080 480 3544)\n(llvm:section-entry .fini_array 69072 8 3536)\n(llvm:section-entry .init_array 69064 8 3528)\n(llvm:section-entry .eh_frame 1960 184 1960)\n(llvm:section-entry .eh_frame_hdr 1900 60 1900)\n(llvm:section-entry .rodata 1896 4 1896)\n(llvm:section-entry .fini 1876 20 1876)\n(llvm:section-entry .text 1536 340 1536)\n(llvm:section-entry .plt 1440 96 1440)\n(llvm:section-entry .init 1408 24 1408)\n(llvm:section-entry .rela.plt 1312 96 1312)\n(llvm:section-entry .rela.dyn 1120 192 1120)\n(llvm:section-entry .gnu.version_r 1072 48 1072)\n(llvm:section-entry .gnu.version 1054 18 1054)\n(llvm:section-entry .dynstr 912 141 912)\n(llvm:section-entry .dynsym 696 216 696)\n(llvm:section-entry .gnu.hash 664 28 664)\n(llvm:section-entry .note.ABI-tag 632 32 632)\n(llvm:section-entry .note.gnu.build-id 596 36 596)\n(llvm:section-entry .interp 568 27 568)\n(llvm:section-flags .shstrtab true false false)\n(llvm:section-flags .strtab true false false)\n(llvm:section-flags .symtab true false false)\n(llvm:section-flags .comment true false false)\n(llvm:section-flags .bss true true false)\n(llvm:section-flags .data true true false)\n(llvm:section-flags .got.plt true true false)\n(llvm:section-flags .got true true false)\n(llvm:section-flags .dynamic true true false)\n(llvm:section-flags .fini_array true true false)\n(llvm:section-flags .init_array true true false)\n(llvm:section-flags .eh_frame true false false)\n(llvm:section-flags .eh_frame_hdr true false false)\n(llvm:section-flags .rodata true false false)\n(llvm:section-flags .fini true false true)\n(llvm:section-flags .text true false true)\n(llvm:section-flags .plt true false true)\n(llvm:section-flags .init true false true)\n(llvm:section-flags .rela.plt true false false)\n(llvm:section-flags .rela.dyn true false false)\n(llvm:section-flags .gnu.version_r true false false)\n(llvm:section-flags .gnu.version true false false)\n(llvm:section-flags .dynstr true false false)\n(llvm:section-flags .dynsym true false false)\n(llvm:section-flags .gnu.hash true false false)\n(llvm:section-flags .note.ABI-tag true false false)\n(llvm:section-flags .note.gnu.build-id true false false)\n(llvm:section-flags .interp true false false)\n(llvm:symbol-entry abort 0 0 0 0)\n(llvm:symbol-entry __cxa_finalize 0 0 0 0)\n(llvm:symbol-entry __libc_start_main 0 0 0 0)\n(llvm:symbol-entry _init 1408 0 1408 1408)\n(llvm:symbol-entry main 1812 64 1812 1812)\n(llvm:symbol-entry _start 1536 52 1536 1536)\n(llvm:symbol-entry abort@GLIBC_2.17 0 0 0 0)\n(llvm:symbol-entry _fini 1876 0 1876 1876)\n(llvm:symbol-entry __cxa_finalize@GLIBC_2.17 0 0 0 0)\n(llvm:symbol-entry __libc_start_main@GLIBC_2.34 0 0 0 0)\n(llvm:symbol-entry frame_dummy 1808 0 1808 1808)\n(llvm:symbol-entry __do_global_dtors_aux 1728 0 1728 1728)\n(llvm:symbol-entry register_tm_clones 1664 0 1664 1664)\n(llvm:symbol-entry deregister_tm_clones 1616 0 1616 1616)\n(llvm:symbol-entry call_weak_fn 1588 20 1588 1588)\n(mapped 0 2144 0)\n(mapped 69064 616 3528)\n(named-region 0 2144 02)\n(named-region 69064 632 03)\n(named-region 568 27 .interp)\n(named-region 596 36 .note.gnu.build-id)\n(named-region 632 32 .note.ABI-tag)\n(named-region 664 28 .gnu.hash)\n(named-region 696 216 .dynsym)\n(named-region 912 141 .dynstr)\n(named-region 1054 18 .gnu.version)\n(named-region 1072 48 .gnu.version_r)\n(named-region 1120 192 .rela.dyn)\n(named-region 1312 96 .rela.plt)\n(named-region 1408 24 .init)\n(named-region 1440 96 .plt)\n(named-region 1536 340 .text)\n(named-region 1876 20 .fini)\n(named-region 1896 4 .rodata)\n(named-region 1900 60 .eh_frame_hdr)\n(named-region 1960 184 .eh_frame)\n(named-region 69064 8 .init_array)\n(named-region 69072 8 .fini_array)\n(named-region 69080 480 .dynamic)\n(named-region 69560 48 .got)\n(named-region 69608 56 .got.plt)\n(named-region 69664 16 .data)\n(named-region 69680 16 .bss)\n(named-region 0 71 .comment)\n(named-region 0 2184 .symtab)\n(named-region 0 579 .strtab)\n(named-region 0 259 .shstrtab)\n(named-symbol 1588 call_weak_fn)\n(named-symbol 1616 deregister_tm_clones)\n(named-symbol 1664 register_tm_clones)\n(named-symbol 1728 __do_global_dtors_aux)\n(named-symbol 1808 frame_dummy)\n(named-symbol 0 __libc_start_main@GLIBC_2.34)\n(named-symbol 0 __cxa_finalize@GLIBC_2.17)\n(named-symbol 1876 _fini)\n(named-symbol 0 abort@GLIBC_2.17)\n(named-symbol 1536 _start)\n(named-symbol 1812 main)\n(named-symbol 1408 _init)\n(named-symbol 0 __libc_start_main)\n(named-symbol 0 __cxa_finalize)\n(named-symbol 0 abort)\n(require libc.so.6)\n(section 568 27)\n(section 596 36)\n(section 632 32)\n(section 664 28)\n(section 696 216)\n(section 912 141)\n(section 1054 18)\n(section 1072 48)\n(section 1120 192)\n(section 1312 96)\n(section 1408 24)\n(section 1440 96)\n(section 1536 340)\n(section 1876 20)\n(section 1896 4)\n(section 1900 60)\n(section 1960 184)\n(section 69064 8)\n(section 69072 8)\n(section 69080 480)\n(section 69560 48)\n(section 69608 56)\n(section 69664 16)\n(section 69680 16)\n(section 0 71)\n(section 0 2184)\n(section 0 579)\n(section 0 259)\n(segment 0 2144 true false true)\n(segment 69064 632 true true false)\n(subarch v8)\n(symbol-chunk 1588 20 1588)\n(symbol-chunk 1536 52 1536)\n(symbol-chunk 1812 64 1812)\n(symbol-value 1588 1588)\n(symbol-value 1616 1616)\n(symbol-value 1664 1664)\n(symbol-value 1728 1728)\n(symbol-value 1808 1808)\n(symbol-value 1876 1876)\n(symbol-value 1536 1536)\n(symbol-value 1812 1812)\n(symbol-value 1408 1408)\n(symbol-value 0 0)\n(system \"\")\n(vendor \"\")\n"), -Attr("abi-name","\"aarch64-linux-gnu-elf\"")]), -Sections([Section(".shstrtab", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x00\x06\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x48\x1c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x38\x00\x09\x00\x40\x00\x1d\x00\x1c\x00\x06\x00\x00\x00\x04\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x04\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x60\x08\x00\x00\x00\x00\x00\x00\x60\x08\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x01\x00\x00\x00\x06\x00\x00\x00\xc8\x0d\x00\x00\x00\x00\x00\x00\xc8\x0d\x01\x00\x00\x00\x00\x00\xc8\x0d\x01"), -Section(".strtab", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x00\x06\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x48\x1c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x38\x00\x09\x00\x40\x00\x1d\x00\x1c\x00\x06\x00\x00\x00\x04\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x04\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x60\x08\x00\x00\x00\x00\x00\x00\x60\x08\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x01\x00\x00\x00\x06\x00\x00\x00\xc8\x0d\x00\x00\x00\x00\x00\x00\xc8\x0d\x01\x00\x00\x00\x00\x00\xc8\x0d\x01\x00\x00\x00\x00\x00\x68\x02\x00\x00\x00\x00\x00\x00\x78\x02\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x02\x00\x00\x00\x06\x00\x00\x00\xd8\x0d\x00\x00\x00\x00\x00\x00\xd8\x0d\x01\x00\x00\x00\x00\x00\xd8\x0d\x01\x00\x00\x00\x00\x00\xe0\x01\x00\x00\x00\x00\x00\x00\xe0\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x04\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x50\xe5\x74\x64\x04\x00\x00\x00\x6c\x07\x00\x00\x00\x00\x00\x00\x6c\x07\x00\x00\x00\x00\x00\x00\x6c\x07\x00\x00\x00\x00\x00\x00\x3c\x00\x00\x00\x00\x00\x00\x00\x3c\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x51\xe5\x74\x64\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x52\xe5\x74\x64\x04\x00\x00\x00\xc8\x0d\x00\x00\x00\x00\x00\x00\xc8\x0d\x01\x00\x00\x00\x00\x00\xc8\x0d\x01\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x2f\x6c\x69\x62\x2f\x6c\x64\x2d\x6c\x69\x6e"), -Section(".comment", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x00\x06\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x48\x1c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x38\x00\x09\x00\x40\x00\x1d\x00\x1c\x00\x06\x00\x00\x00\x04\x00\x00"), -Section(".interp", 0x238, "\x2f\x6c\x69\x62\x2f\x6c\x64\x2d\x6c\x69\x6e\x75\x78\x2d\x61\x61\x72\x63\x68\x36\x34\x2e\x73\x6f\x2e\x31\x00"), -Section(".note.gnu.build-id", 0x254, "\x04\x00\x00\x00\x14\x00\x00\x00\x03\x00\x00\x00\x47\x4e\x55\x00\x86\x98\x53\xb1\x64\x23\x41\x62\xea\x3d\x22\x80\xeb\x2d\x8d\x83\xa5\xb1\x6a\x3c"), -Section(".note.ABI-tag", 0x278, "\x04\x00\x00\x00\x10\x00\x00\x00\x01\x00\x00\x00\x47\x4e\x55\x00\x00\x00\x00\x00\x03\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00"), -Section(".gnu.hash", 0x298, "\x01\x00\x00\x00\x01\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".dynsym", 0x2B8, "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x0b\x00\x80\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x17\x00\x20\x10\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x48\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x22\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x22\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x73\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".dynstr", 0x390, "\x00\x5f\x5f\x63\x78\x61\x5f\x66\x69\x6e\x61\x6c\x69\x7a\x65\x00\x5f\x5f\x6c\x69\x62\x63\x5f\x73\x74\x61\x72\x74\x5f\x6d\x61\x69\x6e\x00\x61\x62\x6f\x72\x74\x00\x6c\x69\x62\x63\x2e\x73\x6f\x2e\x36\x00\x47\x4c\x49\x42\x43\x5f\x32\x2e\x31\x37\x00\x47\x4c\x49\x42\x43\x5f\x32\x2e\x33\x34\x00\x5f\x49\x54\x4d\x5f\x64\x65\x72\x65\x67\x69\x73\x74\x65\x72\x54\x4d\x43\x6c\x6f\x6e\x65\x54\x61\x62\x6c\x65\x00\x5f\x5f\x67\x6d\x6f\x6e\x5f\x73\x74\x61\x72\x74\x5f\x5f\x00\x5f\x49\x54\x4d\x5f\x72\x65\x67\x69\x73\x74\x65\x72\x54\x4d\x43\x6c\x6f\x6e\x65\x54\x61\x62\x6c\x65\x00"), -Section(".gnu.version", 0x41E, "\x00\x00\x00\x00\x00\x00\x02\x00\x01\x00\x03\x00\x01\x00\x03\x00\x01\x00"), -Section(".gnu.version_r", 0x430, "\x01\x00\x02\x00\x28\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x97\x91\x96\x06\x00\x00\x03\x00\x32\x00\x00\x00\x10\x00\x00\x00\xb4\x91\x96\x06\x00\x00\x02\x00\x3d\x00\x00\x00\x00\x00\x00\x00"), -Section(".rela.dyn", 0x460, "\xc8\x0d\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x10\x07\x00\x00\x00\x00\x00\x00\xd0\x0d\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\xc0\x06\x00\x00\x00\x00\x00\x00\xd8\x0f\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x14\x07\x00\x00\x00\x00\x00\x00\x28\x10\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x28\x10\x01\x00\x00\x00\x00\x00\xc0\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xc8\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xd0\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe0\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".rela.plt", 0x520, "\x00\x10\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x08\x10\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x10\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x18\x10\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".init", 0x580, "\x1f\x20\x03\xd5\xfd\x7b\xbf\xa9\xfd\x03\x00\x91\x2a\x00\x00\x94\xfd\x7b\xc1\xa8\xc0\x03\x5f\xd6"), -Section(".plt", 0x5A0, "\xf0\x7b\xbf\xa9\x90\x00\x00\x90\x11\xfe\x47\xf9\x10\xe2\x3f\x91\x20\x02\x1f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x90\x00\x00\xb0\x11\x02\x40\xf9\x10\x02\x00\x91\x20\x02\x1f\xd6\x90\x00\x00\xb0\x11\x06\x40\xf9\x10\x22\x00\x91\x20\x02\x1f\xd6\x90\x00\x00\xb0\x11\x0a\x40\xf9\x10\x42\x00\x91\x20\x02\x1f\xd6\x90\x00\x00\xb0\x11\x0e\x40\xf9\x10\x62\x00\x91\x20\x02\x1f\xd6"), -Section(".text", 0x600, "\x1f\x20\x03\xd5\x1d\x00\x80\xd2\x1e\x00\x80\xd2\xe5\x03\x00\xaa\xe1\x03\x40\xf9\xe2\x23\x00\x91\xe6\x03\x00\x91\x80\x00\x00\x90\x00\xec\x47\xf9\x03\x00\x80\xd2\x04\x00\x80\xd2\xe5\xff\xff\x97\xf0\xff\xff\x97\x80\x00\x00\x90\x00\xe8\x47\xf9\x40\x00\x00\xb4\xe8\xff\xff\x17\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x80\x00\x00\xb0\x00\xc0\x00\x91\x81\x00\x00\xb0\x21\xc0\x00\x91\x3f\x00\x00\xeb\xc0\x00\x00\x54\x81\x00\x00\x90\x21\xe0\x47\xf9\x61\x00\x00\xb4\xf0\x03\x01\xaa\x00\x02\x1f\xd6\xc0\x03\x5f\xd6\x80\x00\x00\xb0\x00\xc0\x00\x91\x81\x00\x00\xb0\x21\xc0\x00\x91\x21\x00\x00\xcb\x22\xfc\x7f\xd3\x41\x0c\x81\x8b\x21\xfc\x41\x93\xc1\x00\x00\xb4\x82\x00\x00\x90\x42\xf0\x47\xf9\x62\x00\x00\xb4\xf0\x03\x02\xaa\x00\x02\x1f\xd6\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\xfd\x7b\xbe\xa9\xfd\x03\x00\x91\xf3\x0b\x00\xf9\x93\x00\x00\xb0\x60\xc2\x40\x39\x40\x01\x00\x35\x80\x00\x00\x90\x00\xe4\x47\xf9\x80\x00\x00\xb4\x80\x00\x00\xb0\x00\x14\x40\xf9\xb9\xff\xff\x97\xd8\xff\xff\x97\x20\x00\x80\x52\x60\xc2\x00\x39\xf3\x0b\x40\xf9\xfd\x7b\xc2\xa8\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\xdc\xff\xff\x17\xff\x43\x00\xd1\xff\x0f\x00\xb9\x88\x00\x00\xb0\x08\x35\x40\xb9\xe8\x0b\x00\xb9\x88\x00\x00\xb0\x08\x39\x40\xb9\x08\x01\x00\x71\xe8\x17\x9f\x1a\x88\x00\x00\x37\x01\x00\x00\x14\xff\x0b\x00\xb9\x01\x00\x00\x14\xe0\x0b\x40\xb9\xff\x43\x00\x91\xc0\x03\x5f\xd6"), -Section(".fini", 0x754, "\x1f\x20\x03\xd5\xfd\x7b\xbf\xa9\xfd\x03\x00\x91\xfd\x7b\xc1\xa8\xc0\x03\x5f\xd6"), -Section(".rodata", 0x768, "\x01\x00\x02\x00"), -Section(".eh_frame_hdr", 0x76C, "\x01\x1b\x03\x3b\x38\x00\x00\x00\x06\x00\x00\x00\x94\xfe\xff\xff\x50\x00\x00\x00\xe4\xfe\xff\xff\x64\x00\x00\x00\x14\xff\xff\xff\x78\x00\x00\x00\x54\xff\xff\xff\x8c\x00\x00\x00\xa4\xff\xff\xff\xb0\x00\x00\x00\xa8\xff\xff\xff\xd8\x00\x00\x00"), -Section(".eh_frame", 0x7A8, "\x10\x00\x00\x00\x00\x00\x00\x00\x01\x7a\x52\x00\x04\x78\x1e\x01\x1b\x0c\x1f\x00\x10\x00\x00\x00\x18\x00\x00\x00\x3c\xfe\xff\xff\x34\x00\x00\x00\x00\x41\x07\x1e\x10\x00\x00\x00\x2c\x00\x00\x00\x78\xfe\xff\xff\x30\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x40\x00\x00\x00\x94\xfe\xff\xff\x3c\x00\x00\x00\x00\x00\x00\x00\x20\x00\x00\x00\x54\x00\x00\x00\xc0\xfe\xff\xff\x48\x00\x00\x00\x00\x41\x0e\x20\x9d\x04\x9e\x03\x42\x93\x02\x4e\xde\xdd\xd3\x0e\x00\x00\x00\x00\x10\x00\x00\x00\x78\x00\x00\x00\xec\xfe\xff\xff\x04\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x01\x7a\x52\x00\x01\x7c\x1e\x01\x1b\x0c\x1f\x00\x14\x00\x00\x00\x18\x00\x00\x00\xc8\xfe\xff\xff\x40\x00\x00\x00\x00\x44\x0e\x10\x78\x0e\x00\x00\x00\x00\x00\x00"), -Section(".fini_array", 0x10DD0, "\xc0\x06\x00\x00\x00\x00\x00\x00"), -Section(".dynamic", 0x10DD8, "\x01\x00\x00\x00\x00\x00\x00\x00\x28\x00\x00\x00\x00\x00\x00\x00\x0c\x00\x00\x00\x00\x00\x00\x00\x80\x05\x00\x00\x00\x00\x00\x00\x0d\x00\x00\x00\x00\x00\x00\x00\x54\x07\x00\x00\x00\x00\x00\x00\x19\x00\x00\x00\x00\x00\x00\x00\xc8\x0d\x01\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x1a\x00\x00\x00\x00\x00\x00\x00\xd0\x0d\x01\x00\x00\x00\x00\x00\x1c\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\xf5\xfe\xff\x6f\x00\x00\x00\x00\x98\x02\x00\x00\x00\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x90\x03\x00\x00\x00\x00\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\xb8\x02\x00\x00\x00\x00\x00\x00\x0a\x00\x00\x00\x00\x00\x00\x00\x8d\x00\x00\x00\x00\x00\x00\x00\x0b\x00\x00\x00\x00\x00\x00\x00\x18\x00\x00\x00\x00\x00\x00\x00\x15\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\xe8\x0f\x01\x00\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x60\x00\x00\x00\x00\x00\x00\x00\x14\x00\x00\x00\x00\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x17\x00\x00\x00\x00\x00\x00\x00\x20\x05\x00\x00\x00\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x60\x04\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\xc0\x00\x00\x00\x00\x00\x00\x00\x09\x00\x00\x00\x00\x00\x00\x00\x18\x00\x00\x00\x00\x00\x00\x00\xfb\xff\xff\x6f\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\xfe\xff\xff\x6f\x00\x00\x00\x00\x30\x04\x00\x00\x00\x00\x00\x00\xff\xff\xff\x6f\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\xf0\xff\xff\x6f\x00\x00\x00\x00\x1e\x04\x00\x00\x00\x00\x00\x00\xf9\xff\xff\x6f\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".init_array", 0x10DC8, "\x10\x07\x00\x00\x00\x00\x00\x00"), -Section(".got", 0x10FB8, "\xd8\x0d\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x14\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".got.plt", 0x10FE8, "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xa0\x05\x00\x00\x00\x00\x00\x00\xa0\x05\x00\x00\x00\x00\x00\x00\xa0\x05\x00\x00\x00\x00\x00\x00\xa0\x05\x00\x00\x00\x00\x00\x00"), -Section(".data", 0x11020, "\x00\x00\x00\x00\x00\x00\x00\x00\x28\x10\x01\x00\x00\x00\x00\x00")]), -Memmap([Annotation(Region(0x0,0x85F), Attr("segment","02 0 2144")), -Annotation(Region(0x600,0x633), Attr("symbol","\"_start\"")), -Annotation(Region(0x0,0x102), Attr("section","\".shstrtab\"")), -Annotation(Region(0x0,0x242), Attr("section","\".strtab\"")), -Annotation(Region(0x0,0x46), Attr("section","\".comment\"")), -Annotation(Region(0x238,0x252), Attr("section","\".interp\"")), -Annotation(Region(0x254,0x277), Attr("section","\".note.gnu.build-id\"")), -Annotation(Region(0x278,0x297), Attr("section","\".note.ABI-tag\"")), -Annotation(Region(0x298,0x2B3), Attr("section","\".gnu.hash\"")), -Annotation(Region(0x2B8,0x38F), Attr("section","\".dynsym\"")), -Annotation(Region(0x390,0x41C), Attr("section","\".dynstr\"")), -Annotation(Region(0x41E,0x42F), Attr("section","\".gnu.version\"")), -Annotation(Region(0x430,0x45F), Attr("section","\".gnu.version_r\"")), -Annotation(Region(0x460,0x51F), Attr("section","\".rela.dyn\"")), -Annotation(Region(0x520,0x57F), Attr("section","\".rela.plt\"")), -Annotation(Region(0x580,0x597), Attr("section","\".init\"")), -Annotation(Region(0x5A0,0x5FF), Attr("section","\".plt\"")), -Annotation(Region(0x580,0x597), Attr("code-region","()")), -Annotation(Region(0x5A0,0x5FF), Attr("code-region","()")), -Annotation(Region(0x600,0x633), Attr("symbol-info","_start 0x600 52")), -Annotation(Region(0x634,0x647), Attr("symbol","\"call_weak_fn\"")), -Annotation(Region(0x634,0x647), Attr("symbol-info","call_weak_fn 0x634 20")), -Annotation(Region(0x600,0x753), Attr("section","\".text\"")), -Annotation(Region(0x600,0x753), Attr("code-region","()")), -Annotation(Region(0x714,0x753), Attr("symbol","\"main\"")), -Annotation(Region(0x714,0x753), Attr("symbol-info","main 0x714 64")), -Annotation(Region(0x754,0x767), Attr("section","\".fini\"")), -Annotation(Region(0x754,0x767), Attr("code-region","()")), -Annotation(Region(0x768,0x76B), Attr("section","\".rodata\"")), -Annotation(Region(0x76C,0x7A7), Attr("section","\".eh_frame_hdr\"")), -Annotation(Region(0x7A8,0x85F), Attr("section","\".eh_frame\"")), -Annotation(Region(0x10DC8,0x1102F), Attr("segment","03 0x10DC8 632")), -Annotation(Region(0x10DD0,0x10DD7), Attr("section","\".fini_array\"")), -Annotation(Region(0x10DD8,0x10FB7), Attr("section","\".dynamic\"")), -Annotation(Region(0x10DC8,0x10DCF), Attr("section","\".init_array\"")), -Annotation(Region(0x10FB8,0x10FE7), Attr("section","\".got\"")), -Annotation(Region(0x10FE8,0x1101F), Attr("section","\".got.plt\"")), -Annotation(Region(0x11020,0x1102F), Attr("section","\".data\""))]), -Program(Tid(1_585, "%00000631"), Attrs([]), - Subs([Sub(Tid(1_533, "@__cxa_finalize"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x5D0"), -Attr("stub","()")]), "__cxa_finalize", Args([Arg(Tid(1_586, "%00000632"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("__cxa_finalize_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(929, "@__cxa_finalize"), - Attrs([Attr("address","0x5D0")]), Phis([]), -Defs([Def(Tid(1_177, "%00000499"), Attrs([Attr("address","0x5D0"), -Attr("insn","adrp x16, #69632")]), Var("R16",Imm(64)), Int(69632,64)), -Def(Tid(1_184, "%000004a0"), Attrs([Attr("address","0x5D4"), -Attr("insn","ldr x17, [x16, #0x8]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(1_190, "%000004a6"), Attrs([Attr("address","0x5D8"), -Attr("insn","add x16, x16, #0x8")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(8,64)))]), Jmps([Call(Tid(1_195, "%000004ab"), - Attrs([Attr("address","0x5DC"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), -Sub(Tid(1_534, "@__do_global_dtors_aux"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x6C0")]), - "__do_global_dtors_aux", Args([Arg(Tid(1_587, "%00000633"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("__do_global_dtors_aux_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(654, "@__do_global_dtors_aux"), - Attrs([Attr("address","0x6C0")]), Phis([]), Defs([Def(Tid(658, "%00000292"), - Attrs([Attr("address","0x6C0"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("#3",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(18446744073709551584,64))), -Def(Tid(664, "%00000298"), Attrs([Attr("address","0x6C0"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("#3",Imm(64)),Var("R29",Imm(64)),LittleEndian(),64)), -Def(Tid(670, "%0000029e"), Attrs([Attr("address","0x6C0"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("#3",Imm(64)),Int(8,64)),Var("R30",Imm(64)),LittleEndian(),64)), -Def(Tid(674, "%000002a2"), Attrs([Attr("address","0x6C0"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("R31",Imm(64)), -Var("#3",Imm(64))), Def(Tid(680, "%000002a8"), - Attrs([Attr("address","0x6C4"), Attr("insn","mov x29, sp")]), - Var("R29",Imm(64)), Var("R31",Imm(64))), Def(Tid(688, "%000002b0"), - Attrs([Attr("address","0x6C8"), Attr("insn","str x19, [sp, #0x10]")]), - Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(16,64)),Var("R19",Imm(64)),LittleEndian(),64)), -Def(Tid(693, "%000002b5"), Attrs([Attr("address","0x6CC"), -Attr("insn","adrp x19, #69632")]), Var("R19",Imm(64)), Int(69632,64)), -Def(Tid(700, "%000002bc"), Attrs([Attr("address","0x6D0"), -Attr("insn","ldrb w0, [x19, #0x30]")]), Var("R0",Imm(64)), -UNSIGNED(64,Load(Var("mem",Mem(64,8)),PLUS(Var("R19",Imm(64)),Int(48,64)),LittleEndian(),8)))]), -Jmps([Goto(Tid(707, "%000002c3"), Attrs([Attr("address","0x6D4"), -Attr("insn","cbnz w0, #0x28")]), - NEQ(Extract(31,0,Var("R0",Imm(64))),Int(0,32)), -Direct(Tid(705, "%000002c1"))), Goto(Tid(1_574, "%00000626"), Attrs([]), - Int(1,1), Direct(Tid(874, "%0000036a")))])), Blk(Tid(874, "%0000036a"), - Attrs([Attr("address","0x6D8")]), Phis([]), Defs([Def(Tid(877, "%0000036d"), - Attrs([Attr("address","0x6D8"), Attr("insn","adrp x0, #65536")]), - Var("R0",Imm(64)), Int(65536,64)), Def(Tid(884, "%00000374"), - Attrs([Attr("address","0x6DC"), Attr("insn","ldr x0, [x0, #0xfc8]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(4040,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(890, "%0000037a"), Attrs([Attr("address","0x6E0"), -Attr("insn","cbz x0, #0x10")]), EQ(Var("R0",Imm(64)),Int(0,64)), -Direct(Tid(888, "%00000378"))), Goto(Tid(1_575, "%00000627"), Attrs([]), - Int(1,1), Direct(Tid(913, "%00000391")))])), Blk(Tid(913, "%00000391"), - Attrs([Attr("address","0x6E4")]), Phis([]), Defs([Def(Tid(916, "%00000394"), - Attrs([Attr("address","0x6E4"), Attr("insn","adrp x0, #69632")]), - Var("R0",Imm(64)), Int(69632,64)), Def(Tid(923, "%0000039b"), - Attrs([Attr("address","0x6E8"), Attr("insn","ldr x0, [x0, #0x28]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(40,64)),LittleEndian(),64)), -Def(Tid(928, "%000003a0"), Attrs([Attr("address","0x6EC"), -Attr("insn","bl #-0x11c")]), Var("R30",Imm(64)), Int(1776,64))]), -Jmps([Call(Tid(931, "%000003a3"), Attrs([Attr("address","0x6EC"), -Attr("insn","bl #-0x11c")]), Int(1,1), -(Direct(Tid(1_533, "@__cxa_finalize")),Direct(Tid(888, "%00000378"))))])), -Blk(Tid(888, "%00000378"), Attrs([Attr("address","0x6F0")]), Phis([]), -Defs([Def(Tid(896, "%00000380"), Attrs([Attr("address","0x6F0"), -Attr("insn","bl #-0xa0")]), Var("R30",Imm(64)), Int(1780,64))]), -Jmps([Call(Tid(898, "%00000382"), Attrs([Attr("address","0x6F0"), -Attr("insn","bl #-0xa0")]), Int(1,1), -(Direct(Tid(1_547, "@deregister_tm_clones")),Direct(Tid(900, "%00000384"))))])), -Blk(Tid(900, "%00000384"), Attrs([Attr("address","0x6F4")]), Phis([]), -Defs([Def(Tid(903, "%00000387"), Attrs([Attr("address","0x6F4"), -Attr("insn","mov w0, #0x1")]), Var("R0",Imm(64)), Int(1,64)), -Def(Tid(911, "%0000038f"), Attrs([Attr("address","0x6F8"), -Attr("insn","strb w0, [x19, #0x30]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R19",Imm(64)),Int(48,64)),Extract(7,0,Var("R0",Imm(64))),LittleEndian(),8))]), -Jmps([Goto(Tid(1_576, "%00000628"), Attrs([]), Int(1,1), -Direct(Tid(705, "%000002c1")))])), Blk(Tid(705, "%000002c1"), - Attrs([Attr("address","0x6FC")]), Phis([]), Defs([Def(Tid(715, "%000002cb"), - Attrs([Attr("address","0x6FC"), Attr("insn","ldr x19, [sp, #0x10]")]), - Var("R19",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(16,64)),LittleEndian(),64)), -Def(Tid(722, "%000002d2"), Attrs([Attr("address","0x700"), -Attr("insn","ldp x29, x30, [sp], #0x20")]), Var("R29",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(727, "%000002d7"), Attrs([Attr("address","0x700"), -Attr("insn","ldp x29, x30, [sp], #0x20")]), Var("R30",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(731, "%000002db"), Attrs([Attr("address","0x700"), -Attr("insn","ldp x29, x30, [sp], #0x20")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(32,64)))]), Jmps([Call(Tid(736, "%000002e0"), - Attrs([Attr("address","0x704"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), Sub(Tid(1_538, "@__libc_start_main"), - Attrs([Attr("c.proto","signed (*)(signed (*)(signed , char** , char** );* main, signed , char** , \nvoid* auxv)"), -Attr("address","0x5C0"), Attr("stub","()")]), "__libc_start_main", - Args([Arg(Tid(1_588, "%00000634"), - Attrs([Attr("c.layout","**[ : 64]"), -Attr("c.data","Top:u64 ptr ptr"), -Attr("c.type","signed (*)(signed , char** , char** );*")]), - Var("__libc_start_main_main",Imm(64)), Var("R0",Imm(64)), In()), -Arg(Tid(1_589, "%00000635"), Attrs([Attr("c.layout","[signed : 32]"), -Attr("c.data","Top:u32"), Attr("c.type","signed")]), - Var("__libc_start_main_arg2",Imm(32)), LOW(32,Var("R1",Imm(64))), In()), -Arg(Tid(1_590, "%00000636"), Attrs([Attr("c.layout","**[char : 8]"), -Attr("c.data","Top:u8 ptr ptr"), Attr("c.type","char**")]), - Var("__libc_start_main_arg3",Imm(64)), Var("R2",Imm(64)), Both()), -Arg(Tid(1_591, "%00000637"), Attrs([Attr("c.layout","*[ : 8]"), -Attr("c.data","{} ptr"), Attr("c.type","void*")]), - Var("__libc_start_main_auxv",Imm(64)), Var("R3",Imm(64)), Both()), -Arg(Tid(1_592, "%00000638"), Attrs([Attr("c.layout","[signed : 32]"), -Attr("c.data","Top:u32"), Attr("c.type","signed")]), - Var("__libc_start_main_result",Imm(32)), LOW(32,Var("R0",Imm(64))), -Out())]), Blks([Blk(Tid(487, "@__libc_start_main"), - Attrs([Attr("address","0x5C0")]), Phis([]), -Defs([Def(Tid(1_155, "%00000483"), Attrs([Attr("address","0x5C0"), -Attr("insn","adrp x16, #69632")]), Var("R16",Imm(64)), Int(69632,64)), -Def(Tid(1_162, "%0000048a"), Attrs([Attr("address","0x5C4"), -Attr("insn","ldr x17, [x16]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R16",Imm(64)),LittleEndian(),64)), -Def(Tid(1_168, "%00000490"), Attrs([Attr("address","0x5C8"), -Attr("insn","add x16, x16, #0x0")]), Var("R16",Imm(64)), -Var("R16",Imm(64)))]), Jmps([Call(Tid(1_173, "%00000495"), - Attrs([Attr("address","0x5CC"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), Sub(Tid(1_539, "@_fini"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x754")]), - "_fini", Args([Arg(Tid(1_593, "%00000639"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("_fini_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(31, "@_fini"), - Attrs([Attr("address","0x754")]), Phis([]), Defs([Def(Tid(37, "%00000025"), - Attrs([Attr("address","0x758"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("#0",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(18446744073709551600,64))), -Def(Tid(43, "%0000002b"), Attrs([Attr("address","0x758"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("#0",Imm(64)),Var("R29",Imm(64)),LittleEndian(),64)), -Def(Tid(49, "%00000031"), Attrs([Attr("address","0x758"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("#0",Imm(64)),Int(8,64)),Var("R30",Imm(64)),LittleEndian(),64)), -Def(Tid(53, "%00000035"), Attrs([Attr("address","0x758"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("R31",Imm(64)), -Var("#0",Imm(64))), Def(Tid(59, "%0000003b"), Attrs([Attr("address","0x75C"), -Attr("insn","mov x29, sp")]), Var("R29",Imm(64)), Var("R31",Imm(64))), -Def(Tid(66, "%00000042"), Attrs([Attr("address","0x760"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R29",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(71, "%00000047"), Attrs([Attr("address","0x760"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R30",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(75, "%0000004b"), Attrs([Attr("address","0x760"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(16,64)))]), Jmps([Call(Tid(80, "%00000050"), - Attrs([Attr("address","0x764"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), Sub(Tid(1_540, "@_init"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x580")]), - "_init", Args([Arg(Tid(1_594, "%0000063a"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("_init_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(1_359, "@_init"), - Attrs([Attr("address","0x580")]), Phis([]), -Defs([Def(Tid(1_365, "%00000555"), Attrs([Attr("address","0x584"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("#6",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(18446744073709551600,64))), -Def(Tid(1_371, "%0000055b"), Attrs([Attr("address","0x584"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("#6",Imm(64)),Var("R29",Imm(64)),LittleEndian(),64)), -Def(Tid(1_377, "%00000561"), Attrs([Attr("address","0x584"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("#6",Imm(64)),Int(8,64)),Var("R30",Imm(64)),LittleEndian(),64)), -Def(Tid(1_381, "%00000565"), Attrs([Attr("address","0x584"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("R31",Imm(64)), -Var("#6",Imm(64))), Def(Tid(1_387, "%0000056b"), - Attrs([Attr("address","0x588"), Attr("insn","mov x29, sp")]), - Var("R29",Imm(64)), Var("R31",Imm(64))), Def(Tid(1_392, "%00000570"), - Attrs([Attr("address","0x58C"), Attr("insn","bl #0xa8")]), - Var("R30",Imm(64)), Int(1424,64))]), Jmps([Call(Tid(1_394, "%00000572"), - Attrs([Attr("address","0x58C"), Attr("insn","bl #0xa8")]), Int(1,1), -(Direct(Tid(1_545, "@call_weak_fn")),Direct(Tid(1_396, "%00000574"))))])), -Blk(Tid(1_396, "%00000574"), Attrs([Attr("address","0x590")]), Phis([]), -Defs([Def(Tid(1_401, "%00000579"), Attrs([Attr("address","0x590"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R29",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(1_406, "%0000057e"), Attrs([Attr("address","0x590"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R30",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(1_410, "%00000582"), Attrs([Attr("address","0x590"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(16,64)))]), Jmps([Call(Tid(1_415, "%00000587"), - Attrs([Attr("address","0x594"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), Sub(Tid(1_541, "@_start"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x600"), -Attr("stub","()"), Attr("entry-point","()")]), "_start", - Args([Arg(Tid(1_595, "%0000063b"), Attrs([Attr("c.layout","[signed : 32]"), -Attr("c.data","Top:u32"), Attr("c.type","signed")]), - Var("_start_result",Imm(32)), LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(424, "@_start"), Attrs([Attr("address","0x600")]), Phis([]), -Defs([Def(Tid(429, "%000001ad"), Attrs([Attr("address","0x604"), -Attr("insn","mov x29, #0x0")]), Var("R29",Imm(64)), Int(0,64)), -Def(Tid(434, "%000001b2"), Attrs([Attr("address","0x608"), -Attr("insn","mov x30, #0x0")]), Var("R30",Imm(64)), Int(0,64)), -Def(Tid(440, "%000001b8"), Attrs([Attr("address","0x60C"), -Attr("insn","mov x5, x0")]), Var("R5",Imm(64)), Var("R0",Imm(64))), -Def(Tid(447, "%000001bf"), Attrs([Attr("address","0x610"), -Attr("insn","ldr x1, [sp]")]), Var("R1",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(453, "%000001c5"), Attrs([Attr("address","0x614"), -Attr("insn","add x2, sp, #0x8")]), Var("R2",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(8,64))), Def(Tid(459, "%000001cb"), - Attrs([Attr("address","0x618"), Attr("insn","mov x6, sp")]), - Var("R6",Imm(64)), Var("R31",Imm(64))), Def(Tid(464, "%000001d0"), - Attrs([Attr("address","0x61C"), Attr("insn","adrp x0, #65536")]), - Var("R0",Imm(64)), Int(65536,64)), Def(Tid(471, "%000001d7"), - Attrs([Attr("address","0x620"), Attr("insn","ldr x0, [x0, #0xfd8]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(4056,64)),LittleEndian(),64)), -Def(Tid(476, "%000001dc"), Attrs([Attr("address","0x624"), -Attr("insn","mov x3, #0x0")]), Var("R3",Imm(64)), Int(0,64)), -Def(Tid(481, "%000001e1"), Attrs([Attr("address","0x628"), -Attr("insn","mov x4, #0x0")]), Var("R4",Imm(64)), Int(0,64)), -Def(Tid(486, "%000001e6"), Attrs([Attr("address","0x62C"), -Attr("insn","bl #-0x6c")]), Var("R30",Imm(64)), Int(1584,64))]), -Jmps([Call(Tid(489, "%000001e9"), Attrs([Attr("address","0x62C"), -Attr("insn","bl #-0x6c")]), Int(1,1), -(Direct(Tid(1_538, "@__libc_start_main")),Direct(Tid(491, "%000001eb"))))])), -Blk(Tid(491, "%000001eb"), Attrs([Attr("address","0x630")]), Phis([]), -Defs([Def(Tid(494, "%000001ee"), Attrs([Attr("address","0x630"), -Attr("insn","bl #-0x40")]), Var("R30",Imm(64)), Int(1588,64))]), -Jmps([Call(Tid(497, "%000001f1"), Attrs([Attr("address","0x630"), -Attr("insn","bl #-0x40")]), Int(1,1), -(Direct(Tid(1_544, "@abort")),Direct(Tid(1_577, "%00000629"))))])), -Blk(Tid(1_577, "%00000629"), Attrs([]), Phis([]), Defs([]), -Jmps([Call(Tid(1_578, "%0000062a"), Attrs([]), Int(1,1), -(Direct(Tid(1_545, "@call_weak_fn")),))]))])), Sub(Tid(1_544, "@abort"), - Attrs([Attr("noreturn","()"), Attr("c.proto","void (*)(void)"), -Attr("address","0x5F0"), Attr("stub","()")]), "abort", Args([]), -Blks([Blk(Tid(495, "@abort"), Attrs([Attr("address","0x5F0")]), Phis([]), -Defs([Def(Tid(1_221, "%000004c5"), Attrs([Attr("address","0x5F0"), -Attr("insn","adrp x16, #69632")]), Var("R16",Imm(64)), Int(69632,64)), -Def(Tid(1_228, "%000004cc"), Attrs([Attr("address","0x5F4"), -Attr("insn","ldr x17, [x16, #0x18]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(24,64)),LittleEndian(),64)), -Def(Tid(1_234, "%000004d2"), Attrs([Attr("address","0x5F8"), -Attr("insn","add x16, x16, #0x18")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(24,64)))]), Jmps([Call(Tid(1_239, "%000004d7"), - Attrs([Attr("address","0x5FC"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), Sub(Tid(1_545, "@call_weak_fn"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x634")]), - "call_weak_fn", Args([Arg(Tid(1_596, "%0000063c"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("call_weak_fn_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(499, "@call_weak_fn"), - Attrs([Attr("address","0x634")]), Phis([]), Defs([Def(Tid(502, "%000001f6"), - Attrs([Attr("address","0x634"), Attr("insn","adrp x0, #65536")]), - Var("R0",Imm(64)), Int(65536,64)), Def(Tid(509, "%000001fd"), - Attrs([Attr("address","0x638"), Attr("insn","ldr x0, [x0, #0xfd0]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(4048,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(515, "%00000203"), Attrs([Attr("address","0x63C"), -Attr("insn","cbz x0, #0x8")]), EQ(Var("R0",Imm(64)),Int(0,64)), -Direct(Tid(513, "%00000201"))), Goto(Tid(1_579, "%0000062b"), Attrs([]), - Int(1,1), Direct(Tid(993, "%000003e1")))])), Blk(Tid(513, "%00000201"), - Attrs([Attr("address","0x644")]), Phis([]), Defs([]), -Jmps([Call(Tid(521, "%00000209"), Attrs([Attr("address","0x644"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))])), -Blk(Tid(993, "%000003e1"), Attrs([Attr("address","0x640")]), Phis([]), -Defs([]), Jmps([Goto(Tid(996, "%000003e4"), Attrs([Attr("address","0x640"), -Attr("insn","b #-0x60")]), Int(1,1), Direct(Tid(994, "@__gmon_start__")))])), -Blk(Tid(994, "@__gmon_start__"), Attrs([Attr("address","0x5E0")]), Phis([]), -Defs([Def(Tid(1_199, "%000004af"), Attrs([Attr("address","0x5E0"), -Attr("insn","adrp x16, #69632")]), Var("R16",Imm(64)), Int(69632,64)), -Def(Tid(1_206, "%000004b6"), Attrs([Attr("address","0x5E4"), -Attr("insn","ldr x17, [x16, #0x10]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(16,64)),LittleEndian(),64)), -Def(Tid(1_212, "%000004bc"), Attrs([Attr("address","0x5E8"), -Attr("insn","add x16, x16, #0x10")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(16,64)))]), Jmps([Call(Tid(1_217, "%000004c1"), - Attrs([Attr("address","0x5EC"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), -Sub(Tid(1_547, "@deregister_tm_clones"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x650")]), - "deregister_tm_clones", Args([Arg(Tid(1_597, "%0000063d"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("deregister_tm_clones_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(527, "@deregister_tm_clones"), - Attrs([Attr("address","0x650")]), Phis([]), Defs([Def(Tid(530, "%00000212"), - Attrs([Attr("address","0x650"), Attr("insn","adrp x0, #69632")]), - Var("R0",Imm(64)), Int(69632,64)), Def(Tid(536, "%00000218"), - Attrs([Attr("address","0x654"), Attr("insn","add x0, x0, #0x30")]), - Var("R0",Imm(64)), PLUS(Var("R0",Imm(64)),Int(48,64))), -Def(Tid(541, "%0000021d"), Attrs([Attr("address","0x658"), -Attr("insn","adrp x1, #69632")]), Var("R1",Imm(64)), Int(69632,64)), -Def(Tid(547, "%00000223"), Attrs([Attr("address","0x65C"), -Attr("insn","add x1, x1, #0x30")]), Var("R1",Imm(64)), -PLUS(Var("R1",Imm(64)),Int(48,64))), Def(Tid(553, "%00000229"), - Attrs([Attr("address","0x660"), Attr("insn","cmp x1, x0")]), - Var("#1",Imm(64)), NOT(Var("R0",Imm(64)))), Def(Tid(558, "%0000022e"), - Attrs([Attr("address","0x660"), Attr("insn","cmp x1, x0")]), - Var("#2",Imm(64)), PLUS(Var("R1",Imm(64)),NOT(Var("R0",Imm(64))))), -Def(Tid(564, "%00000234"), Attrs([Attr("address","0x660"), -Attr("insn","cmp x1, x0")]), Var("VF",Imm(1)), -NEQ(SIGNED(65,PLUS(Var("#2",Imm(64)),Int(1,64))),PLUS(PLUS(SIGNED(65,Var("R1",Imm(64))),SIGNED(65,Var("#1",Imm(64)))),Int(1,65)))), -Def(Tid(570, "%0000023a"), Attrs([Attr("address","0x660"), -Attr("insn","cmp x1, x0")]), Var("CF",Imm(1)), -NEQ(UNSIGNED(65,PLUS(Var("#2",Imm(64)),Int(1,64))),PLUS(PLUS(UNSIGNED(65,Var("R1",Imm(64))),UNSIGNED(65,Var("#1",Imm(64)))),Int(1,65)))), -Def(Tid(574, "%0000023e"), Attrs([Attr("address","0x660"), -Attr("insn","cmp x1, x0")]), Var("ZF",Imm(1)), -EQ(PLUS(Var("#2",Imm(64)),Int(1,64)),Int(0,64))), Def(Tid(578, "%00000242"), - Attrs([Attr("address","0x660"), Attr("insn","cmp x1, x0")]), - Var("NF",Imm(1)), Extract(63,63,PLUS(Var("#2",Imm(64)),Int(1,64))))]), -Jmps([Goto(Tid(584, "%00000248"), Attrs([Attr("address","0x664"), -Attr("insn","b.eq #0x18")]), EQ(Var("ZF",Imm(1)),Int(1,1)), -Direct(Tid(582, "%00000246"))), Goto(Tid(1_580, "%0000062c"), Attrs([]), - Int(1,1), Direct(Tid(963, "%000003c3")))])), Blk(Tid(963, "%000003c3"), - Attrs([Attr("address","0x668")]), Phis([]), Defs([Def(Tid(966, "%000003c6"), - Attrs([Attr("address","0x668"), Attr("insn","adrp x1, #65536")]), - Var("R1",Imm(64)), Int(65536,64)), Def(Tid(973, "%000003cd"), - Attrs([Attr("address","0x66C"), Attr("insn","ldr x1, [x1, #0xfc0]")]), - Var("R1",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R1",Imm(64)),Int(4032,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(978, "%000003d2"), Attrs([Attr("address","0x670"), -Attr("insn","cbz x1, #0xc")]), EQ(Var("R1",Imm(64)),Int(0,64)), -Direct(Tid(582, "%00000246"))), Goto(Tid(1_581, "%0000062d"), Attrs([]), - Int(1,1), Direct(Tid(982, "%000003d6")))])), Blk(Tid(582, "%00000246"), - Attrs([Attr("address","0x67C")]), Phis([]), Defs([]), -Jmps([Call(Tid(590, "%0000024e"), Attrs([Attr("address","0x67C"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))])), -Blk(Tid(982, "%000003d6"), Attrs([Attr("address","0x674")]), Phis([]), -Defs([Def(Tid(986, "%000003da"), Attrs([Attr("address","0x674"), -Attr("insn","mov x16, x1")]), Var("R16",Imm(64)), Var("R1",Imm(64)))]), -Jmps([Call(Tid(991, "%000003df"), Attrs([Attr("address","0x678"), -Attr("insn","br x16")]), Int(1,1), (Indirect(Var("R16",Imm(64))),))]))])), -Sub(Tid(1_550, "@frame_dummy"), Attrs([Attr("c.proto","signed (*)(void)"), -Attr("address","0x710")]), "frame_dummy", Args([Arg(Tid(1_598, "%0000063e"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("frame_dummy_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(742, "@frame_dummy"), - Attrs([Attr("address","0x710")]), Phis([]), Defs([]), -Jmps([Call(Tid(744, "%000002e8"), Attrs([Attr("address","0x710"), -Attr("insn","b #-0x90")]), Int(1,1), -(Direct(Tid(1_553, "@register_tm_clones")),))]))])), Sub(Tid(1_551, "@main"), - Attrs([Attr("c.proto","signed (*)(signed argc, const char** argv)"), -Attr("address","0x714")]), "main", Args([Arg(Tid(1_599, "%0000063f"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("main_argc",Imm(32)), -LOW(32,Var("R0",Imm(64))), In()), Arg(Tid(1_600, "%00000640"), - Attrs([Attr("c.layout","**[char : 8]"), Attr("c.data","Top:u8 ptr ptr"), -Attr("c.type"," const char**")]), Var("main_argv",Imm(64)), -Var("R1",Imm(64)), Both()), Arg(Tid(1_601, "%00000641"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("main_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(746, "@main"), - Attrs([Attr("address","0x714")]), Phis([]), Defs([Def(Tid(750, "%000002ee"), - Attrs([Attr("address","0x714"), Attr("insn","sub sp, sp, #0x10")]), - Var("R31",Imm(64)), PLUS(Var("R31",Imm(64)),Int(18446744073709551600,64))), -Def(Tid(757, "%000002f5"), Attrs([Attr("address","0x718"), -Attr("insn","str wzr, [sp, #0xc]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(12,64)),Int(0,32),LittleEndian(),32)), -Def(Tid(762, "%000002fa"), Attrs([Attr("address","0x71C"), -Attr("insn","adrp x8, #69632")]), Var("R8",Imm(64)), Int(69632,64)), -Def(Tid(769, "%00000301"), Attrs([Attr("address","0x720"), -Attr("insn","ldr w8, [x8, #0x34]")]), Var("R8",Imm(64)), -UNSIGNED(64,Load(Var("mem",Mem(64,8)),PLUS(Var("R8",Imm(64)),Int(52,64)),LittleEndian(),32))), -Def(Tid(777, "%00000309"), Attrs([Attr("address","0x724"), -Attr("insn","str w8, [sp, #0x8]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),Extract(31,0,Var("R8",Imm(64))),LittleEndian(),32)), -Def(Tid(782, "%0000030e"), Attrs([Attr("address","0x728"), -Attr("insn","adrp x8, #69632")]), Var("R8",Imm(64)), Int(69632,64)), -Def(Tid(789, "%00000315"), Attrs([Attr("address","0x72C"), -Attr("insn","ldr w8, [x8, #0x38]")]), Var("R8",Imm(64)), -UNSIGNED(64,Load(Var("mem",Mem(64,8)),PLUS(Var("R8",Imm(64)),Int(56,64)),LittleEndian(),32))), -Def(Tid(795, "%0000031b"), Attrs([Attr("address","0x730"), -Attr("insn","subs w8, w8, #0x0")]), Var("#4",Imm(32)), -PLUS(Extract(31,0,Var("R8",Imm(64))),Int(4294967295,32))), -Def(Tid(800, "%00000320"), Attrs([Attr("address","0x730"), -Attr("insn","subs w8, w8, #0x0")]), Var("VF",Imm(1)), -NEQ(SIGNED(33,PLUS(Var("#4",Imm(32)),Int(1,32))),PLUS(SIGNED(33,Extract(31,0,Var("R8",Imm(64)))),Int(0,33)))), -Def(Tid(805, "%00000325"), Attrs([Attr("address","0x730"), -Attr("insn","subs w8, w8, #0x0")]), Var("CF",Imm(1)), -NEQ(UNSIGNED(33,PLUS(Var("#4",Imm(32)),Int(1,32))),PLUS(UNSIGNED(33,Extract(31,0,Var("R8",Imm(64)))),Int(4294967296,33)))), -Def(Tid(809, "%00000329"), Attrs([Attr("address","0x730"), -Attr("insn","subs w8, w8, #0x0")]), Var("ZF",Imm(1)), -EQ(PLUS(Var("#4",Imm(32)),Int(1,32)),Int(0,32))), Def(Tid(813, "%0000032d"), - Attrs([Attr("address","0x730"), Attr("insn","subs w8, w8, #0x0")]), - Var("NF",Imm(1)), Extract(31,31,PLUS(Var("#4",Imm(32)),Int(1,32)))), -Def(Tid(817, "%00000331"), Attrs([Attr("address","0x730"), -Attr("insn","subs w8, w8, #0x0")]), Var("R8",Imm(64)), -UNSIGNED(64,PLUS(Var("#4",Imm(32)),Int(1,32))))]), -Jmps([Goto(Tid(829, "%0000033d"), Attrs([Attr("address","0x734"), -Attr("insn","cset w8, eq")]), NEQ(Var("ZF",Imm(1)),Int(1,1)), -Direct(Tid(822, "%00000336"))), Goto(Tid(830, "%0000033e"), - Attrs([Attr("address","0x734"), Attr("insn","cset w8, eq")]), Int(1,1), -Direct(Tid(825, "%00000339")))])), Blk(Tid(825, "%00000339"), Attrs([]), - Phis([]), Defs([Def(Tid(826, "%0000033a"), Attrs([Attr("address","0x734"), -Attr("insn","cset w8, eq")]), Var("R8",Imm(64)), Int(1,64))]), -Jmps([Goto(Tid(832, "%00000340"), Attrs([Attr("address","0x734"), -Attr("insn","cset w8, eq")]), Int(1,1), Direct(Tid(828, "%0000033c")))])), -Blk(Tid(822, "%00000336"), Attrs([]), Phis([]), -Defs([Def(Tid(823, "%00000337"), Attrs([Attr("address","0x734"), -Attr("insn","cset w8, eq")]), Var("R8",Imm(64)), Int(0,64))]), -Jmps([Goto(Tid(831, "%0000033f"), Attrs([Attr("address","0x734"), -Attr("insn","cset w8, eq")]), Int(1,1), Direct(Tid(828, "%0000033c")))])), -Blk(Tid(828, "%0000033c"), Attrs([]), Phis([]), Defs([]), -Jmps([Goto(Tid(838, "%00000346"), Attrs([Attr("address","0x738"), -Attr("insn","tbnz w8, #0x0, #0x10")]), - EQ(Extract(0,0,Var("R8",Imm(64))),Int(1,1)), Direct(Tid(836, "%00000344"))), -Goto(Tid(1_582, "%0000062e"), Attrs([]), Int(1,1), -Direct(Tid(859, "%0000035b")))])), Blk(Tid(859, "%0000035b"), - Attrs([Attr("address","0x73C")]), Phis([]), Defs([]), -Jmps([Goto(Tid(862, "%0000035e"), Attrs([Attr("address","0x73C"), -Attr("insn","b #0x4")]), Int(1,1), Direct(Tid(860, "%0000035c")))])), -Blk(Tid(860, "%0000035c"), Attrs([Attr("address","0x740")]), Phis([]), -Defs([Def(Tid(868, "%00000364"), Attrs([Attr("address","0x740"), -Attr("insn","str wzr, [sp, #0x8]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),Int(0,32),LittleEndian(),32))]), -Jmps([Goto(Tid(872, "%00000368"), Attrs([Attr("address","0x744"), -Attr("insn","b #0x4")]), Int(1,1), Direct(Tid(836, "%00000344")))])), -Blk(Tid(836, "%00000344"), Attrs([Attr("address","0x748")]), Phis([]), -Defs([Def(Tid(846, "%0000034e"), Attrs([Attr("address","0x748"), -Attr("insn","ldr w0, [sp, #0x8]")]), Var("R0",Imm(64)), -UNSIGNED(64,Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),LittleEndian(),32))), -Def(Tid(852, "%00000354"), Attrs([Attr("address","0x74C"), -Attr("insn","add sp, sp, #0x10")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(16,64)))]), Jmps([Call(Tid(857, "%00000359"), - Attrs([Attr("address","0x750"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), -Sub(Tid(1_553, "@register_tm_clones"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x680")]), - "register_tm_clones", Args([Arg(Tid(1_602, "%00000642"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("register_tm_clones_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(592, "@register_tm_clones"), Attrs([Attr("address","0x680")]), - Phis([]), Defs([Def(Tid(595, "%00000253"), Attrs([Attr("address","0x680"), -Attr("insn","adrp x0, #69632")]), Var("R0",Imm(64)), Int(69632,64)), -Def(Tid(601, "%00000259"), Attrs([Attr("address","0x684"), -Attr("insn","add x0, x0, #0x30")]), Var("R0",Imm(64)), -PLUS(Var("R0",Imm(64)),Int(48,64))), Def(Tid(606, "%0000025e"), - Attrs([Attr("address","0x688"), Attr("insn","adrp x1, #69632")]), - Var("R1",Imm(64)), Int(69632,64)), Def(Tid(612, "%00000264"), - Attrs([Attr("address","0x68C"), Attr("insn","add x1, x1, #0x30")]), - Var("R1",Imm(64)), PLUS(Var("R1",Imm(64)),Int(48,64))), -Def(Tid(619, "%0000026b"), Attrs([Attr("address","0x690"), -Attr("insn","sub x1, x1, x0")]), Var("R1",Imm(64)), -PLUS(PLUS(Var("R1",Imm(64)),NOT(Var("R0",Imm(64)))),Int(1,64))), -Def(Tid(625, "%00000271"), Attrs([Attr("address","0x694"), -Attr("insn","lsr x2, x1, #63")]), Var("R2",Imm(64)), -Concat(Int(0,63),Extract(63,63,Var("R1",Imm(64))))), -Def(Tid(632, "%00000278"), Attrs([Attr("address","0x698"), -Attr("insn","add x1, x2, x1, asr #3")]), Var("R1",Imm(64)), -PLUS(Var("R2",Imm(64)),ARSHIFT(Var("R1",Imm(64)),Int(3,3)))), -Def(Tid(638, "%0000027e"), Attrs([Attr("address","0x69C"), -Attr("insn","asr x1, x1, #1")]), Var("R1",Imm(64)), -SIGNED(64,Extract(63,1,Var("R1",Imm(64)))))]), -Jmps([Goto(Tid(644, "%00000284"), Attrs([Attr("address","0x6A0"), -Attr("insn","cbz x1, #0x18")]), EQ(Var("R1",Imm(64)),Int(0,64)), -Direct(Tid(642, "%00000282"))), Goto(Tid(1_583, "%0000062f"), Attrs([]), - Int(1,1), Direct(Tid(933, "%000003a5")))])), Blk(Tid(933, "%000003a5"), - Attrs([Attr("address","0x6A4")]), Phis([]), Defs([Def(Tid(936, "%000003a8"), - Attrs([Attr("address","0x6A4"), Attr("insn","adrp x2, #65536")]), - Var("R2",Imm(64)), Int(65536,64)), Def(Tid(943, "%000003af"), - Attrs([Attr("address","0x6A8"), Attr("insn","ldr x2, [x2, #0xfe0]")]), - Var("R2",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R2",Imm(64)),Int(4064,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(948, "%000003b4"), Attrs([Attr("address","0x6AC"), -Attr("insn","cbz x2, #0xc")]), EQ(Var("R2",Imm(64)),Int(0,64)), -Direct(Tid(642, "%00000282"))), Goto(Tid(1_584, "%00000630"), Attrs([]), - Int(1,1), Direct(Tid(952, "%000003b8")))])), Blk(Tid(642, "%00000282"), - Attrs([Attr("address","0x6B8")]), Phis([]), Defs([]), -Jmps([Call(Tid(650, "%0000028a"), Attrs([Attr("address","0x6B8"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))])), -Blk(Tid(952, "%000003b8"), Attrs([Attr("address","0x6B0")]), Phis([]), -Defs([Def(Tid(956, "%000003bc"), Attrs([Attr("address","0x6B0"), -Attr("insn","mov x16, x2")]), Var("R16",Imm(64)), Var("R2",Imm(64)))]), -Jmps([Call(Tid(961, "%000003c1"), Attrs([Attr("address","0x6B4"), -Attr("insn","br x16")]), Int(1,1), -(Indirect(Var("R16",Imm(64))),))]))]))]))) \ No newline at end of file diff --git a/src/test/correct/basic_sec_policy_read/clang/basic_sec_policy_read.bir b/src/test/correct/basic_sec_policy_read/clang/basic_sec_policy_read.bir deleted file mode 100644 index 57cd688d4..000000000 --- a/src/test/correct/basic_sec_policy_read/clang/basic_sec_policy_read.bir +++ /dev/null @@ -1,261 +0,0 @@ -00000631: program -000005fd: sub __cxa_finalize(__cxa_finalize_result) -00000632: __cxa_finalize_result :: out u32 = low:32[R0] - -000003a1: -00000499: R16 := 0x11000 -000004a0: R17 := mem[R16 + 8, el]:u64 -000004a6: R16 := R16 + 8 -000004ab: call R17 with noreturn - -000005fe: sub __do_global_dtors_aux(__do_global_dtors_aux_result) -00000633: __do_global_dtors_aux_result :: out u32 = low:32[R0] - -0000028e: -00000292: #3 := R31 - 0x20 -00000298: mem := mem with [#3, el]:u64 <- R29 -0000029e: mem := mem with [#3 + 8, el]:u64 <- R30 -000002a2: R31 := #3 -000002a8: R29 := R31 -000002b0: mem := mem with [R31 + 0x10, el]:u64 <- R19 -000002b5: R19 := 0x11000 -000002bc: R0 := pad:64[mem[R19 + 0x30]] -000002c3: when 31:0[R0] <> 0 goto %000002c1 -00000626: goto %0000036a - -0000036a: -0000036d: R0 := 0x10000 -00000374: R0 := mem[R0 + 0xFC8, el]:u64 -0000037a: when R0 = 0 goto %00000378 -00000627: goto %00000391 - -00000391: -00000394: R0 := 0x11000 -0000039b: R0 := mem[R0 + 0x28, el]:u64 -000003a0: R30 := 0x6F0 -000003a3: call @__cxa_finalize with return %00000378 - -00000378: -00000380: R30 := 0x6F4 -00000382: call @deregister_tm_clones with return %00000384 - -00000384: -00000387: R0 := 1 -0000038f: mem := mem with [R19 + 0x30] <- 7:0[R0] -00000628: goto %000002c1 - -000002c1: -000002cb: R19 := mem[R31 + 0x10, el]:u64 -000002d2: R29 := mem[R31, el]:u64 -000002d7: R30 := mem[R31 + 8, el]:u64 -000002db: R31 := R31 + 0x20 -000002e0: call R30 with noreturn - -00000602: sub __libc_start_main(__libc_start_main_main, __libc_start_main_arg2, __libc_start_main_arg3, __libc_start_main_auxv, __libc_start_main_result) -00000634: __libc_start_main_main :: in u64 = R0 -00000635: __libc_start_main_arg2 :: in u32 = low:32[R1] -00000636: __libc_start_main_arg3 :: in out u64 = R2 -00000637: __libc_start_main_auxv :: in out u64 = R3 -00000638: __libc_start_main_result :: out u32 = low:32[R0] - -000001e7: -00000483: R16 := 0x11000 -0000048a: R17 := mem[R16, el]:u64 -00000490: R16 := R16 -00000495: call R17 with noreturn - -00000603: sub _fini(_fini_result) -00000639: _fini_result :: out u32 = low:32[R0] - -0000001f: -00000025: #0 := R31 - 0x10 -0000002b: mem := mem with [#0, el]:u64 <- R29 -00000031: mem := mem with [#0 + 8, el]:u64 <- R30 -00000035: R31 := #0 -0000003b: R29 := R31 -00000042: R29 := mem[R31, el]:u64 -00000047: R30 := mem[R31 + 8, el]:u64 -0000004b: R31 := R31 + 0x10 -00000050: call R30 with noreturn - -00000604: sub _init(_init_result) -0000063a: _init_result :: out u32 = low:32[R0] - -0000054f: -00000555: #6 := R31 - 0x10 -0000055b: mem := mem with [#6, el]:u64 <- R29 -00000561: mem := mem with [#6 + 8, el]:u64 <- R30 -00000565: R31 := #6 -0000056b: R29 := R31 -00000570: R30 := 0x590 -00000572: call @call_weak_fn with return %00000574 - -00000574: -00000579: R29 := mem[R31, el]:u64 -0000057e: R30 := mem[R31 + 8, el]:u64 -00000582: R31 := R31 + 0x10 -00000587: call R30 with noreturn - -00000605: sub _start(_start_result) -0000063b: _start_result :: out u32 = low:32[R0] - -000001a8: -000001ad: R29 := 0 -000001b2: R30 := 0 -000001b8: R5 := R0 -000001bf: R1 := mem[R31, el]:u64 -000001c5: R2 := R31 + 8 -000001cb: R6 := R31 -000001d0: R0 := 0x10000 -000001d7: R0 := mem[R0 + 0xFD8, el]:u64 -000001dc: R3 := 0 -000001e1: R4 := 0 -000001e6: R30 := 0x630 -000001e9: call @__libc_start_main with return %000001eb - -000001eb: -000001ee: R30 := 0x634 -000001f1: call @abort with return %00000629 - -00000629: -0000062a: call @call_weak_fn with noreturn - -00000608: sub abort() - - -000001ef: -000004c5: R16 := 0x11000 -000004cc: R17 := mem[R16 + 0x18, el]:u64 -000004d2: R16 := R16 + 0x18 -000004d7: call R17 with noreturn - -00000609: sub call_weak_fn(call_weak_fn_result) -0000063c: call_weak_fn_result :: out u32 = low:32[R0] - -000001f3: -000001f6: R0 := 0x10000 -000001fd: R0 := mem[R0 + 0xFD0, el]:u64 -00000203: when R0 = 0 goto %00000201 -0000062b: goto %000003e1 - -00000201: -00000209: call R30 with noreturn - -000003e1: -000003e4: goto @__gmon_start__ - -000003e2: -000004af: R16 := 0x11000 -000004b6: R17 := mem[R16 + 0x10, el]:u64 -000004bc: R16 := R16 + 0x10 -000004c1: call R17 with noreturn - -0000060b: sub deregister_tm_clones(deregister_tm_clones_result) -0000063d: deregister_tm_clones_result :: out u32 = low:32[R0] - -0000020f: -00000212: R0 := 0x11000 -00000218: R0 := R0 + 0x30 -0000021d: R1 := 0x11000 -00000223: R1 := R1 + 0x30 -00000229: #1 := ~R0 -0000022e: #2 := R1 + ~R0 -00000234: VF := extend:65[#2 + 1] <> extend:65[R1] + extend:65[#1] + 1 -0000023a: CF := pad:65[#2 + 1] <> pad:65[R1] + pad:65[#1] + 1 -0000023e: ZF := #2 + 1 = 0 -00000242: NF := 63:63[#2 + 1] -00000248: when ZF goto %00000246 -0000062c: goto %000003c3 - -000003c3: -000003c6: R1 := 0x10000 -000003cd: R1 := mem[R1 + 0xFC0, el]:u64 -000003d2: when R1 = 0 goto %00000246 -0000062d: goto %000003d6 - -00000246: -0000024e: call R30 with noreturn - -000003d6: -000003da: R16 := R1 -000003df: call R16 with noreturn - -0000060e: sub frame_dummy(frame_dummy_result) -0000063e: frame_dummy_result :: out u32 = low:32[R0] - -000002e6: -000002e8: call @register_tm_clones with noreturn - -0000060f: sub main(main_argc, main_argv, main_result) -0000063f: main_argc :: in u32 = low:32[R0] -00000640: main_argv :: in out u64 = R1 -00000641: main_result :: out u32 = low:32[R0] - -000002ea: -000002ee: R31 := R31 - 0x10 -000002f5: mem := mem with [R31 + 0xC, el]:u32 <- 0 -000002fa: R8 := 0x11000 -00000301: R8 := pad:64[mem[R8 + 0x34, el]:u32] -00000309: mem := mem with [R31 + 8, el]:u32 <- 31:0[R8] -0000030e: R8 := 0x11000 -00000315: R8 := pad:64[mem[R8 + 0x38, el]:u32] -0000031b: #4 := 31:0[R8] - 1 -00000320: VF := extend:33[#4 + 1] <> extend:33[31:0[R8]] + 0 -00000325: CF := pad:33[#4 + 1] <> pad:33[31:0[R8]] - 0x100000000 -00000329: ZF := #4 + 1 = 0 -0000032d: NF := 31:31[#4 + 1] -00000331: R8 := pad:64[#4 + 1] -0000033d: when ZF <> 1 goto %00000336 -0000033e: goto %00000339 - -00000339: -0000033a: R8 := 1 -00000340: goto %0000033c - -00000336: -00000337: R8 := 0 -0000033f: goto %0000033c - -0000033c: -00000346: when 0:0[R8] goto %00000344 -0000062e: goto %0000035b - -0000035b: -0000035e: goto %0000035c - -0000035c: -00000364: mem := mem with [R31 + 8, el]:u32 <- 0 -00000368: goto %00000344 - -00000344: -0000034e: R0 := pad:64[mem[R31 + 8, el]:u32] -00000354: R31 := R31 + 0x10 -00000359: call R30 with noreturn - -00000611: sub register_tm_clones(register_tm_clones_result) -00000642: register_tm_clones_result :: out u32 = low:32[R0] - -00000250: -00000253: R0 := 0x11000 -00000259: R0 := R0 + 0x30 -0000025e: R1 := 0x11000 -00000264: R1 := R1 + 0x30 -0000026b: R1 := R1 + ~R0 + 1 -00000271: R2 := 0.63:63[R1] -00000278: R1 := R2 + (R1 ~>> 3) -0000027e: R1 := extend:64[63:1[R1]] -00000284: when R1 = 0 goto %00000282 -0000062f: goto %000003a5 - -000003a5: -000003a8: R2 := 0x10000 -000003af: R2 := mem[R2 + 0xFE0, el]:u64 -000003b4: when R2 = 0 goto %00000282 -00000630: goto %000003b8 - -00000282: -0000028a: call R30 with noreturn - -000003b8: -000003bc: R16 := R2 -000003c1: call R16 with noreturn diff --git a/src/test/correct/basic_sec_policy_read/clang/basic_sec_policy_read.expected b/src/test/correct/basic_sec_policy_read/clang/basic_sec_policy_read.expected index 7d7087c6b..45ed79911 100644 --- a/src/test/correct/basic_sec_policy_read/clang/basic_sec_policy_read.expected +++ b/src/test/correct/basic_sec_policy_read/clang/basic_sec_policy_read.expected @@ -2,41 +2,35 @@ var {:extern} CF: bv1; var {:extern} Gamma_CF: bool; var {:extern} Gamma_NF: bool; var {:extern} Gamma_R0: bool; -var {:extern} Gamma_R31: bool; var {:extern} Gamma_R8: bool; +var {:extern} Gamma_R9: bool; var {:extern} Gamma_VF: bool; var {:extern} Gamma_ZF: bool; var {:extern} Gamma_mem: [bv64]bool; -var {:extern} Gamma_stack: [bv64]bool; var {:extern} NF: bv1; var {:extern} R0: bv64; -var {:extern} R31: bv64; var {:extern} R8: bv64; +var {:extern} R9: bv64; var {:extern} VF: bv1; var {:extern} ZF: bv1; var {:extern} mem: [bv64]bv8; -var {:extern} stack: [bv64]bv8; const {:extern} $x_addr: bv64; -axiom ($x_addr == 69684bv64); +axiom ($x_addr == 131092bv64); const {:extern} $z_addr: bv64; -axiom ($z_addr == 69688bv64); +axiom ($z_addr == 131096bv64); function {:extern} L(mem$in: [bv64]bv8, index: bv64) returns (bool) { (if (index == $z_addr) then true else (if (index == $x_addr) then (memory_load32_le(mem$in, $z_addr) == 0bv32) else false)) } -function {:extern} {:bvbuiltin "bvadd"} bvadd32(bv32, bv32) returns (bv32); -function {:extern} {:bvbuiltin "bvadd"} bvadd33(bv33, bv33) returns (bv33); function {:extern} {:bvbuiltin "bvadd"} bvadd64(bv64, bv64) returns (bv64); function {:extern} {:bvbuiltin "bvcomp"} bvcomp1(bv1, bv1) returns (bv1); function {:extern} {:bvbuiltin "bvcomp"} bvcomp32(bv32, bv32) returns (bv1); -function {:extern} {:bvbuiltin "bvcomp"} bvcomp33(bv33, bv33) returns (bv1); -function {:extern} {:bvbuiltin "bvnot"} bvnot1(bv1) returns (bv1); function {:extern} gamma_load32(gammaMap: [bv64]bool, index: bv64) returns (bool) { (gammaMap[bvadd64(index, 3bv64)] && (gammaMap[bvadd64(index, 2bv64)] && (gammaMap[bvadd64(index, 1bv64)] && gammaMap[index]))) } -function {:extern} gamma_store32(gammaMap: [bv64]bool, index: bv64, value: bool) returns ([bv64]bool) { - gammaMap[index := value][bvadd64(index, 1bv64) := value][bvadd64(index, 2bv64) := value][bvadd64(index, 3bv64) := value] +function {:extern} gamma_load64(gammaMap: [bv64]bool, index: bv64) returns (bool) { + (gammaMap[bvadd64(index, 7bv64)] && (gammaMap[bvadd64(index, 6bv64)] && (gammaMap[bvadd64(index, 5bv64)] && (gammaMap[bvadd64(index, 4bv64)] && (gammaMap[bvadd64(index, 3bv64)] && (gammaMap[bvadd64(index, 2bv64)] && (gammaMap[bvadd64(index, 1bv64)] && gammaMap[index]))))))) } function {:extern} memory_load32_le(memory: [bv64]bv8, index: bv64) returns (bv32) { @@ -47,22 +41,18 @@ function {:extern} memory_load64_le(memory: [bv64]bv8, index: bv64) returns (bv6 (memory[bvadd64(index, 7bv64)] ++ (memory[bvadd64(index, 6bv64)] ++ (memory[bvadd64(index, 5bv64)] ++ (memory[bvadd64(index, 4bv64)] ++ (memory[bvadd64(index, 3bv64)] ++ (memory[bvadd64(index, 2bv64)] ++ (memory[bvadd64(index, 1bv64)] ++ memory[index]))))))) } -function {:extern} memory_store32_le(memory: [bv64]bv8, index: bv64, value: bv32) returns ([bv64]bv8) { - memory[index := value[8:0]][bvadd64(index, 1bv64) := value[16:8]][bvadd64(index, 2bv64) := value[24:16]][bvadd64(index, 3bv64) := value[32:24]] -} - -function {:extern} {:bvbuiltin "sign_extend 1"} sign_extend1_32(bv32) returns (bv33); -function {:extern} {:bvbuiltin "zero_extend 1"} zero_extend1_32(bv32) returns (bv33); function {:extern} {:bvbuiltin "zero_extend 32"} zero_extend32_32(bv32) returns (bv64); procedure {:extern} rely(); modifies Gamma_mem, mem; ensures (forall i: bv64 :: (((mem[i] == old(mem[i])) ==> (Gamma_mem[i] == old(Gamma_mem[i]))))); ensures ((old(memory_load32_le(mem, $z_addr)) != 0bv32) ==> (memory_load32_le(mem, $z_addr) != 0bv32)); - free ensures (memory_load32_le(mem, 1896bv64) == 131073bv32); - free ensures (memory_load64_le(mem, 69064bv64) == 1808bv64); - free ensures (memory_load64_le(mem, 69072bv64) == 1728bv64); - free ensures (memory_load64_le(mem, 69592bv64) == 1812bv64); - free ensures (memory_load64_le(mem, 69672bv64) == 69672bv64); + free ensures (memory_load32_le(mem, 2316bv64) == 131073bv32); + free ensures (memory_load64_le(mem, 130424bv64) == 2256bv64); + free ensures (memory_load64_le(mem, 130432bv64) == 2176bv64); + free ensures (memory_load64_le(mem, 131032bv64) == 131096bv64); + free ensures (memory_load64_le(mem, 131040bv64) == 131092bv64); + free ensures (memory_load64_le(mem, 131056bv64) == 2260bv64); + free ensures (memory_load64_le(mem, 131080bv64) == 131080bv64); procedure {:extern} rely_transitive(); modifies Gamma_mem, mem; @@ -89,100 +79,78 @@ implementation {:extern} guarantee_reflexive() assert (memory_load32_le(mem, $z_addr) == memory_load32_le(mem, $z_addr)); } -procedure main_1812(); - modifies CF, Gamma_CF, Gamma_NF, Gamma_R0, Gamma_R31, Gamma_R8, Gamma_VF, Gamma_ZF, Gamma_mem, Gamma_stack, NF, R0, R31, R8, VF, ZF, mem, stack; - free requires (memory_load64_le(mem, 69664bv64) == 0bv64); - free requires (memory_load64_le(mem, 69672bv64) == 69672bv64); - free requires (memory_load32_le(mem, 1896bv64) == 131073bv32); - free requires (memory_load64_le(mem, 69064bv64) == 1808bv64); - free requires (memory_load64_le(mem, 69072bv64) == 1728bv64); - free requires (memory_load64_le(mem, 69592bv64) == 1812bv64); - free requires (memory_load64_le(mem, 69672bv64) == 69672bv64); - free ensures (Gamma_R31 == old(Gamma_R31)); - free ensures (R31 == old(R31)); - free ensures (memory_load32_le(mem, 1896bv64) == 131073bv32); - free ensures (memory_load64_le(mem, 69064bv64) == 1808bv64); - free ensures (memory_load64_le(mem, 69072bv64) == 1728bv64); - free ensures (memory_load64_le(mem, 69592bv64) == 1812bv64); - free ensures (memory_load64_le(mem, 69672bv64) == 69672bv64); +procedure main(); + modifies CF, Gamma_CF, Gamma_NF, Gamma_R0, Gamma_R8, Gamma_R9, Gamma_VF, Gamma_ZF, Gamma_mem, NF, R0, R8, R9, VF, ZF, mem; + free requires (memory_load64_le(mem, 131072bv64) == 0bv64); + free requires (memory_load64_le(mem, 131080bv64) == 131080bv64); + free requires (memory_load32_le(mem, 2316bv64) == 131073bv32); + free requires (memory_load64_le(mem, 130424bv64) == 2256bv64); + free requires (memory_load64_le(mem, 130432bv64) == 2176bv64); + free requires (memory_load64_le(mem, 131032bv64) == 131096bv64); + free requires (memory_load64_le(mem, 131040bv64) == 131092bv64); + free requires (memory_load64_le(mem, 131056bv64) == 2260bv64); + free requires (memory_load64_le(mem, 131080bv64) == 131080bv64); + free ensures (memory_load32_le(mem, 2316bv64) == 131073bv32); + free ensures (memory_load64_le(mem, 130424bv64) == 2256bv64); + free ensures (memory_load64_le(mem, 130432bv64) == 2176bv64); + free ensures (memory_load64_le(mem, 131032bv64) == 131096bv64); + free ensures (memory_load64_le(mem, 131040bv64) == 131092bv64); + free ensures (memory_load64_le(mem, 131056bv64) == 2260bv64); + free ensures (memory_load64_le(mem, 131080bv64) == 131080bv64); -implementation main_1812() +implementation main() { - var #4: bv32; - var Gamma_#4: bool; - var Gamma_load18: bool; - var Gamma_load19: bool; - var Gamma_load20: bool; - var load18: bv32; - var load19: bv32; - var load20: bv32; + var $load$18: bv64; + var $load$19: bv64; + var $load$20: bv32; + var $load$21: bv32; + var Gamma_$load$18: bool; + var Gamma_$load$19: bool; + var Gamma_$load$20: bool; + var Gamma_$load$21: bool; lmain: assume {:captureState "lmain"} true; - R31, Gamma_R31 := bvadd64(R31, 18446744073709551600bv64), Gamma_R31; - stack, Gamma_stack := memory_store32_le(stack, bvadd64(R31, 12bv64), 0bv32), gamma_store32(Gamma_stack, bvadd64(R31, 12bv64), true); - assume {:captureState "%000002f5"} true; - R8, Gamma_R8 := 69632bv64, true; + R8, Gamma_R8 := 126976bv64, true; + R9, Gamma_R9 := 126976bv64, true; + call rely(); + $load$18, Gamma_$load$18 := memory_load64_le(mem, bvadd64(R8, 4056bv64)), (gamma_load64(Gamma_mem, bvadd64(R8, 4056bv64)) || L(mem, bvadd64(R8, 4056bv64))); + R8, Gamma_R8 := $load$18, Gamma_$load$18; + call rely(); + $load$19, Gamma_$load$19 := memory_load64_le(mem, bvadd64(R9, 4064bv64)), (gamma_load64(Gamma_mem, bvadd64(R9, 4064bv64)) || L(mem, bvadd64(R9, 4064bv64))); + R9, Gamma_R9 := $load$19, Gamma_$load$19; call rely(); - load18, Gamma_load18 := memory_load32_le(mem, bvadd64(R8, 52bv64)), (gamma_load32(Gamma_mem, bvadd64(R8, 52bv64)) || L(mem, bvadd64(R8, 52bv64))); - R8, Gamma_R8 := zero_extend32_32(load18), Gamma_load18; - stack, Gamma_stack := memory_store32_le(stack, bvadd64(R31, 8bv64), R8[32:0]), gamma_store32(Gamma_stack, bvadd64(R31, 8bv64), Gamma_R8); - assume {:captureState "%00000309"} true; - R8, Gamma_R8 := 69632bv64, true; + $load$20, Gamma_$load$20 := memory_load32_le(mem, R8), (gamma_load32(Gamma_mem, R8) || L(mem, R8)); + R8, Gamma_R8 := zero_extend32_32($load$20), Gamma_$load$20; call rely(); - load19, Gamma_load19 := memory_load32_le(mem, bvadd64(R8, 56bv64)), (gamma_load32(Gamma_mem, bvadd64(R8, 56bv64)) || L(mem, bvadd64(R8, 56bv64))); - R8, Gamma_R8 := zero_extend32_32(load19), Gamma_load19; - #4, Gamma_#4 := bvadd32(R8[32:0], 4294967295bv32), Gamma_R8; - VF, Gamma_VF := bvnot1(bvcomp33(sign_extend1_32(bvadd32(#4, 1bv32)), bvadd33(sign_extend1_32(R8[32:0]), 0bv33))), (Gamma_R8 && Gamma_#4); - CF, Gamma_CF := bvnot1(bvcomp33(zero_extend1_32(bvadd32(#4, 1bv32)), bvadd33(zero_extend1_32(R8[32:0]), 4294967296bv33))), (Gamma_R8 && Gamma_#4); - ZF, Gamma_ZF := bvcomp32(bvadd32(#4, 1bv32), 0bv32), Gamma_#4; - NF, Gamma_NF := bvadd32(#4, 1bv32)[32:31], Gamma_#4; - R8, Gamma_R8 := zero_extend32_32(bvadd32(#4, 1bv32)), Gamma_#4; + $load$21, Gamma_$load$21 := memory_load32_le(mem, R9), (gamma_load32(Gamma_mem, R9) || L(mem, R9)); + R9, Gamma_R9 := zero_extend32_32($load$21), Gamma_$load$21; + VF, Gamma_VF := 0bv1, true; + CF, Gamma_CF := 1bv1, true; + ZF, Gamma_ZF := bvcomp32(R8[32:0], 0bv32), Gamma_R8; + NF, Gamma_NF := R8[32:31], Gamma_R8; assert Gamma_ZF; - goto lmain_goto_l00000336, lmain_goto_l00000339; - lmain_goto_l00000339: - assume {:captureState "lmain_goto_l00000339"} true; - assume (bvnot1(bvcomp1(ZF, 1bv1)) == 0bv1); - R8, Gamma_R8 := 1bv64, true; - goto l00000339; - l00000339: - assume {:captureState "l00000339"} true; - goto l0000033c; - lmain_goto_l00000336: - assume {:captureState "lmain_goto_l00000336"} true; - assume (bvnot1(bvcomp1(ZF, 1bv1)) != 0bv1); - R8, Gamma_R8 := 0bv64, true; - goto l00000336; - l00000336: - assume {:captureState "l00000336"} true; - goto l0000033c; - l0000033c: - assume {:captureState "l0000033c"} true; - assert Gamma_R8; - goto l0000033c_goto_l00000344, l0000033c_goto_l0000035b; - l0000033c_goto_l0000035b: - assume {:captureState "l0000033c_goto_l0000035b"} true; - assume (bvcomp1(R8[1:0], 1bv1) == 0bv1); - goto l0000035b; - l0000035b: - assume {:captureState "l0000035b"} true; - goto l0000035c; - l0000035c: - assume {:captureState "l0000035c"} true; - stack, Gamma_stack := memory_store32_le(stack, bvadd64(R31, 8bv64), 0bv32), gamma_store32(Gamma_stack, bvadd64(R31, 8bv64), true); - assume {:captureState "%00000364"} true; - goto l00000344; - l0000033c_goto_l00000344: - assume {:captureState "l0000033c_goto_l00000344"} true; - assume (bvcomp1(R8[1:0], 1bv1) != 0bv1); - goto l00000344; - l00000344: - assume {:captureState "l00000344"} true; - load20, Gamma_load20 := memory_load32_le(stack, bvadd64(R31, 8bv64)), gamma_load32(Gamma_stack, bvadd64(R31, 8bv64)); - R0, Gamma_R0 := zero_extend32_32(load20), Gamma_load20; - R31, Gamma_R31 := bvadd64(R31, 16bv64), Gamma_R31; - goto main_1812_basil_return; - main_1812_basil_return: - assume {:captureState "main_1812_basil_return"} true; + goto lmain_goto_l000002a8, lmain_goto_l000002b0; + l000002b0: + assume {:captureState "l000002b0"} true; + R0, Gamma_R0 := 0bv64, true; + goto l000002bc; + l000002a8: + assume {:captureState "l000002a8"} true; + R0, Gamma_R0 := zero_extend32_32(R9[32:0]), Gamma_R9; + goto l000002bc; + l000002bc: + assume {:captureState "l000002bc"} true; + goto main_basil_return; + lmain_goto_l000002a8: + assume {:captureState "lmain_goto_l000002a8"} true; + assume (bvcomp1(ZF, 1bv1) != 0bv1); + goto l000002a8; + lmain_goto_l000002b0: + assume {:captureState "lmain_goto_l000002b0"} true; + assume (bvcomp1(ZF, 1bv1) == 0bv1); + goto l000002b0; + main_basil_return: + assume {:captureState "main_basil_return"} true; return; } diff --git a/src/test/correct/basic_sec_policy_read/clang/basic_sec_policy_read.gts b/src/test/correct/basic_sec_policy_read/clang/basic_sec_policy_read.gts deleted file mode 100644 index 24294ab7b..000000000 Binary files a/src/test/correct/basic_sec_policy_read/clang/basic_sec_policy_read.gts and /dev/null differ diff --git a/src/test/correct/basic_sec_policy_read/clang/basic_sec_policy_read.md5sum b/src/test/correct/basic_sec_policy_read/clang/basic_sec_policy_read.md5sum new file mode 100644 index 000000000..4fb70082e --- /dev/null +++ b/src/test/correct/basic_sec_policy_read/clang/basic_sec_policy_read.md5sum @@ -0,0 +1,5 @@ +81cdd58e174df933b76251a90f1ce2c1 correct/basic_sec_policy_read/clang/a.out +31270b3c8c249e18c412ce9dba20233d correct/basic_sec_policy_read/clang/basic_sec_policy_read.adt +d6d283f664c7fae330d3758a306db568 correct/basic_sec_policy_read/clang/basic_sec_policy_read.bir +48f9bef18f517681313e6f1166672395 correct/basic_sec_policy_read/clang/basic_sec_policy_read.relf +c3cc7b1278a4345bf6a018cf3c1d391a correct/basic_sec_policy_read/clang/basic_sec_policy_read.gts diff --git a/src/test/correct/basic_sec_policy_read/clang/basic_sec_policy_read.relf b/src/test/correct/basic_sec_policy_read/clang/basic_sec_policy_read.relf deleted file mode 100644 index 537518d13..000000000 --- a/src/test/correct/basic_sec_policy_read/clang/basic_sec_policy_read.relf +++ /dev/null @@ -1,124 +0,0 @@ - -Relocation section '.rela.dyn' at offset 0x460 contains 8 entries: - Offset Info Type Symbol's Value Symbol's Name + Addend -0000000000010dc8 0000000000000403 R_AARCH64_RELATIVE 710 -0000000000010dd0 0000000000000403 R_AARCH64_RELATIVE 6c0 -0000000000010fd8 0000000000000403 R_AARCH64_RELATIVE 714 -0000000000011028 0000000000000403 R_AARCH64_RELATIVE 11028 -0000000000010fc0 0000000400000401 R_AARCH64_GLOB_DAT 0000000000000000 _ITM_deregisterTMCloneTable + 0 -0000000000010fc8 0000000500000401 R_AARCH64_GLOB_DAT 0000000000000000 __cxa_finalize@GLIBC_2.17 + 0 -0000000000010fd0 0000000600000401 R_AARCH64_GLOB_DAT 0000000000000000 __gmon_start__ + 0 -0000000000010fe0 0000000800000401 R_AARCH64_GLOB_DAT 0000000000000000 _ITM_registerTMCloneTable + 0 - -Relocation section '.rela.plt' at offset 0x520 contains 4 entries: - Offset Info Type Symbol's Value Symbol's Name + Addend -0000000000011000 0000000300000402 R_AARCH64_JUMP_SLOT 0000000000000000 __libc_start_main@GLIBC_2.34 + 0 -0000000000011008 0000000500000402 R_AARCH64_JUMP_SLOT 0000000000000000 __cxa_finalize@GLIBC_2.17 + 0 -0000000000011010 0000000600000402 R_AARCH64_JUMP_SLOT 0000000000000000 __gmon_start__ + 0 -0000000000011018 0000000700000402 R_AARCH64_JUMP_SLOT 0000000000000000 abort@GLIBC_2.17 + 0 - -Symbol table '.dynsym' contains 9 entries: - Num: Value Size Type Bind Vis Ndx Name - 0: 0000000000000000 0 NOTYPE LOCAL DEFAULT UND - 1: 0000000000000580 0 SECTION LOCAL DEFAULT 11 .init - 2: 0000000000011020 0 SECTION LOCAL DEFAULT 23 .data - 3: 0000000000000000 0 FUNC GLOBAL DEFAULT UND __libc_start_main@GLIBC_2.34 (2) - 4: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_deregisterTMCloneTable - 5: 0000000000000000 0 FUNC WEAK DEFAULT UND __cxa_finalize@GLIBC_2.17 (3) - 6: 0000000000000000 0 NOTYPE WEAK DEFAULT UND __gmon_start__ - 7: 0000000000000000 0 FUNC GLOBAL DEFAULT UND abort@GLIBC_2.17 (3) - 8: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_registerTMCloneTable - -Symbol table '.symtab' contains 91 entries: - Num: Value Size Type Bind Vis Ndx Name - 0: 0000000000000000 0 NOTYPE LOCAL DEFAULT UND - 1: 0000000000000238 0 SECTION LOCAL DEFAULT 1 .interp - 2: 0000000000000254 0 SECTION LOCAL DEFAULT 2 .note.gnu.build-id - 3: 0000000000000278 0 SECTION LOCAL DEFAULT 3 .note.ABI-tag - 4: 0000000000000298 0 SECTION LOCAL DEFAULT 4 .gnu.hash - 5: 00000000000002b8 0 SECTION LOCAL DEFAULT 5 .dynsym - 6: 0000000000000390 0 SECTION LOCAL DEFAULT 6 .dynstr - 7: 000000000000041e 0 SECTION LOCAL DEFAULT 7 .gnu.version - 8: 0000000000000430 0 SECTION LOCAL DEFAULT 8 .gnu.version_r - 9: 0000000000000460 0 SECTION LOCAL DEFAULT 9 .rela.dyn - 10: 0000000000000520 0 SECTION LOCAL DEFAULT 10 .rela.plt - 11: 0000000000000580 0 SECTION LOCAL DEFAULT 11 .init - 12: 00000000000005a0 0 SECTION LOCAL DEFAULT 12 .plt - 13: 0000000000000600 0 SECTION LOCAL DEFAULT 13 .text - 14: 0000000000000754 0 SECTION LOCAL DEFAULT 14 .fini - 15: 0000000000000768 0 SECTION LOCAL DEFAULT 15 .rodata - 16: 000000000000076c 0 SECTION LOCAL DEFAULT 16 .eh_frame_hdr - 17: 00000000000007a8 0 SECTION LOCAL DEFAULT 17 .eh_frame - 18: 0000000000010dc8 0 SECTION LOCAL DEFAULT 18 .init_array - 19: 0000000000010dd0 0 SECTION LOCAL DEFAULT 19 .fini_array - 20: 0000000000010dd8 0 SECTION LOCAL DEFAULT 20 .dynamic - 21: 0000000000010fb8 0 SECTION LOCAL DEFAULT 21 .got - 22: 0000000000010fe8 0 SECTION LOCAL DEFAULT 22 .got.plt - 23: 0000000000011020 0 SECTION LOCAL DEFAULT 23 .data - 24: 0000000000011030 0 SECTION LOCAL DEFAULT 24 .bss - 25: 0000000000000000 0 SECTION LOCAL DEFAULT 25 .comment - 26: 0000000000000000 0 FILE LOCAL DEFAULT ABS Scrt1.o - 27: 0000000000000278 0 NOTYPE LOCAL DEFAULT 3 $d - 28: 0000000000000278 32 OBJECT LOCAL DEFAULT 3 __abi_tag - 29: 0000000000000600 0 NOTYPE LOCAL DEFAULT 13 $x - 30: 00000000000007bc 0 NOTYPE LOCAL DEFAULT 17 $d - 31: 0000000000000768 0 NOTYPE LOCAL DEFAULT 15 $d - 32: 0000000000000000 0 FILE LOCAL DEFAULT ABS crti.o - 33: 0000000000000634 0 NOTYPE LOCAL DEFAULT 13 $x - 34: 0000000000000634 20 FUNC LOCAL DEFAULT 13 call_weak_fn - 35: 0000000000000580 0 NOTYPE LOCAL DEFAULT 11 $x - 36: 0000000000000754 0 NOTYPE LOCAL DEFAULT 14 $x - 37: 0000000000000000 0 FILE LOCAL DEFAULT ABS crtn.o - 38: 0000000000000590 0 NOTYPE LOCAL DEFAULT 11 $x - 39: 0000000000000760 0 NOTYPE LOCAL DEFAULT 14 $x - 40: 0000000000000000 0 FILE LOCAL DEFAULT ABS crtstuff.c - 41: 0000000000000650 0 NOTYPE LOCAL DEFAULT 13 $x - 42: 0000000000000650 0 FUNC LOCAL DEFAULT 13 deregister_tm_clones - 43: 0000000000000680 0 FUNC LOCAL DEFAULT 13 register_tm_clones - 44: 0000000000011028 0 NOTYPE LOCAL DEFAULT 23 $d - 45: 00000000000006c0 0 FUNC LOCAL DEFAULT 13 __do_global_dtors_aux - 46: 0000000000011030 1 OBJECT LOCAL DEFAULT 24 completed.0 - 47: 0000000000010dd0 0 NOTYPE LOCAL DEFAULT 19 $d - 48: 0000000000010dd0 0 OBJECT LOCAL DEFAULT 19 __do_global_dtors_aux_fini_array_entry - 49: 0000000000000710 0 FUNC LOCAL DEFAULT 13 frame_dummy - 50: 0000000000010dc8 0 NOTYPE LOCAL DEFAULT 18 $d - 51: 0000000000010dc8 0 OBJECT LOCAL DEFAULT 18 __frame_dummy_init_array_entry - 52: 00000000000007d0 0 NOTYPE LOCAL DEFAULT 17 $d - 53: 0000000000011030 0 NOTYPE LOCAL DEFAULT 24 $d - 54: 0000000000000000 0 FILE LOCAL DEFAULT ABS basic_sec_policy_read.c - 55: 0000000000000714 0 NOTYPE LOCAL DEFAULT 13 $x.0 - 56: 0000000000011034 0 NOTYPE LOCAL DEFAULT 24 $d.1 - 57: 000000000000002a 0 NOTYPE LOCAL DEFAULT 25 $d.2 - 58: 0000000000000830 0 NOTYPE LOCAL DEFAULT 17 $d.3 - 59: 0000000000000000 0 FILE LOCAL DEFAULT ABS crtstuff.c - 60: 000000000000085c 0 NOTYPE LOCAL DEFAULT 17 $d - 61: 000000000000085c 0 OBJECT LOCAL DEFAULT 17 __FRAME_END__ - 62: 0000000000000000 0 FILE LOCAL DEFAULT ABS - 63: 0000000000010dd8 0 OBJECT LOCAL DEFAULT ABS _DYNAMIC - 64: 000000000000076c 0 NOTYPE LOCAL DEFAULT 16 __GNU_EH_FRAME_HDR - 65: 0000000000010fb8 0 OBJECT LOCAL DEFAULT ABS _GLOBAL_OFFSET_TABLE_ - 66: 00000000000005a0 0 NOTYPE LOCAL DEFAULT 12 $x - 67: 0000000000000000 0 FUNC GLOBAL DEFAULT UND __libc_start_main@GLIBC_2.34 - 68: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_deregisterTMCloneTable - 69: 0000000000011020 0 NOTYPE WEAK DEFAULT 23 data_start - 70: 0000000000011030 0 NOTYPE GLOBAL DEFAULT 24 __bss_start__ - 71: 0000000000000000 0 FUNC WEAK DEFAULT UND __cxa_finalize@GLIBC_2.17 - 72: 0000000000011040 0 NOTYPE GLOBAL DEFAULT 24 _bss_end__ - 73: 0000000000011030 0 NOTYPE GLOBAL DEFAULT 23 _edata - 74: 0000000000011038 4 OBJECT GLOBAL DEFAULT 24 z - 75: 0000000000011034 4 OBJECT GLOBAL DEFAULT 24 x - 76: 0000000000000754 0 FUNC GLOBAL HIDDEN 14 _fini - 77: 0000000000011040 0 NOTYPE GLOBAL DEFAULT 24 __bss_end__ - 78: 0000000000011020 0 NOTYPE GLOBAL DEFAULT 23 __data_start - 79: 0000000000000000 0 NOTYPE WEAK DEFAULT UND __gmon_start__ - 80: 0000000000011028 0 OBJECT GLOBAL HIDDEN 23 __dso_handle - 81: 0000000000000000 0 FUNC GLOBAL DEFAULT UND abort@GLIBC_2.17 - 82: 0000000000000768 4 OBJECT GLOBAL DEFAULT 15 _IO_stdin_used - 83: 0000000000011040 0 NOTYPE GLOBAL DEFAULT 24 _end - 84: 0000000000000600 52 FUNC GLOBAL DEFAULT 13 _start - 85: 0000000000011040 0 NOTYPE GLOBAL DEFAULT 24 __end__ - 86: 0000000000011030 0 NOTYPE GLOBAL DEFAULT 24 __bss_start - 87: 0000000000000714 64 FUNC GLOBAL DEFAULT 13 main - 88: 0000000000011030 0 OBJECT GLOBAL HIDDEN 23 __TMC_END__ - 89: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_registerTMCloneTable - 90: 0000000000000580 0 FUNC GLOBAL HIDDEN 11 _init diff --git a/src/test/correct/basic_sec_policy_read/clang/basic_sec_policy_read_gtirb.expected b/src/test/correct/basic_sec_policy_read/clang/basic_sec_policy_read_gtirb.expected index 3207dfc6c..ab9b533bc 100644 --- a/src/test/correct/basic_sec_policy_read/clang/basic_sec_policy_read_gtirb.expected +++ b/src/test/correct/basic_sec_policy_read/clang/basic_sec_policy_read_gtirb.expected @@ -2,40 +2,34 @@ var {:extern} CF: bv1; var {:extern} Gamma_CF: bool; var {:extern} Gamma_NF: bool; var {:extern} Gamma_R0: bool; -var {:extern} Gamma_R31: bool; var {:extern} Gamma_R8: bool; +var {:extern} Gamma_R9: bool; var {:extern} Gamma_VF: bool; var {:extern} Gamma_ZF: bool; var {:extern} Gamma_mem: [bv64]bool; -var {:extern} Gamma_stack: [bv64]bool; var {:extern} NF: bv1; var {:extern} R0: bv64; -var {:extern} R31: bv64; var {:extern} R8: bv64; +var {:extern} R9: bv64; var {:extern} VF: bv1; var {:extern} ZF: bv1; var {:extern} mem: [bv64]bv8; -var {:extern} stack: [bv64]bv8; const {:extern} $x_addr: bv64; -axiom ($x_addr == 69684bv64); +axiom ($x_addr == 131092bv64); const {:extern} $z_addr: bv64; -axiom ($z_addr == 69688bv64); +axiom ($z_addr == 131096bv64); function {:extern} L(mem$in: [bv64]bv8, index: bv64) returns (bool) { (if (index == $z_addr) then true else (if (index == $x_addr) then (memory_load32_le(mem$in, $z_addr) == 0bv32) else false)) } -function {:extern} {:bvbuiltin "bvadd"} bvadd32(bv32, bv32) returns (bv32); -function {:extern} {:bvbuiltin "bvadd"} bvadd33(bv33, bv33) returns (bv33); function {:extern} {:bvbuiltin "bvadd"} bvadd64(bv64, bv64) returns (bv64); function {:extern} {:bvbuiltin "bvcomp"} bvcomp32(bv32, bv32) returns (bv1); -function {:extern} {:bvbuiltin "bvcomp"} bvcomp33(bv33, bv33) returns (bv1); -function {:extern} {:bvbuiltin "bvnot"} bvnot1(bv1) returns (bv1); function {:extern} gamma_load32(gammaMap: [bv64]bool, index: bv64) returns (bool) { (gammaMap[bvadd64(index, 3bv64)] && (gammaMap[bvadd64(index, 2bv64)] && (gammaMap[bvadd64(index, 1bv64)] && gammaMap[index]))) } -function {:extern} gamma_store32(gammaMap: [bv64]bool, index: bv64, value: bool) returns ([bv64]bool) { - gammaMap[index := value][bvadd64(index, 1bv64) := value][bvadd64(index, 2bv64) := value][bvadd64(index, 3bv64) := value] +function {:extern} gamma_load64(gammaMap: [bv64]bool, index: bv64) returns (bool) { + (gammaMap[bvadd64(index, 7bv64)] && (gammaMap[bvadd64(index, 6bv64)] && (gammaMap[bvadd64(index, 5bv64)] && (gammaMap[bvadd64(index, 4bv64)] && (gammaMap[bvadd64(index, 3bv64)] && (gammaMap[bvadd64(index, 2bv64)] && (gammaMap[bvadd64(index, 1bv64)] && gammaMap[index]))))))) } function {:extern} memory_load32_le(memory: [bv64]bv8, index: bv64) returns (bv32) { @@ -46,21 +40,18 @@ function {:extern} memory_load64_le(memory: [bv64]bv8, index: bv64) returns (bv6 (memory[bvadd64(index, 7bv64)] ++ (memory[bvadd64(index, 6bv64)] ++ (memory[bvadd64(index, 5bv64)] ++ (memory[bvadd64(index, 4bv64)] ++ (memory[bvadd64(index, 3bv64)] ++ (memory[bvadd64(index, 2bv64)] ++ (memory[bvadd64(index, 1bv64)] ++ memory[index]))))))) } -function {:extern} memory_store32_le(memory: [bv64]bv8, index: bv64, value: bv32) returns ([bv64]bv8) { - memory[index := value[8:0]][bvadd64(index, 1bv64) := value[16:8]][bvadd64(index, 2bv64) := value[24:16]][bvadd64(index, 3bv64) := value[32:24]] -} - -function {:extern} {:bvbuiltin "zero_extend 1"} zero_extend1_32(bv32) returns (bv33); function {:extern} {:bvbuiltin "zero_extend 32"} zero_extend32_32(bv32) returns (bv64); procedure {:extern} rely(); modifies Gamma_mem, mem; ensures (forall i: bv64 :: (((mem[i] == old(mem[i])) ==> (Gamma_mem[i] == old(Gamma_mem[i]))))); ensures ((old(memory_load32_le(mem, $z_addr)) != 0bv32) ==> (memory_load32_le(mem, $z_addr) != 0bv32)); - free ensures (memory_load32_le(mem, 1896bv64) == 131073bv32); - free ensures (memory_load64_le(mem, 69064bv64) == 1808bv64); - free ensures (memory_load64_le(mem, 69072bv64) == 1728bv64); - free ensures (memory_load64_le(mem, 69592bv64) == 1812bv64); - free ensures (memory_load64_le(mem, 69672bv64) == 69672bv64); + free ensures (memory_load32_le(mem, 2316bv64) == 131073bv32); + free ensures (memory_load64_le(mem, 130424bv64) == 2256bv64); + free ensures (memory_load64_le(mem, 130432bv64) == 2176bv64); + free ensures (memory_load64_le(mem, 131032bv64) == 131096bv64); + free ensures (memory_load64_le(mem, 131040bv64) == 131092bv64); + free ensures (memory_load64_le(mem, 131056bv64) == 2260bv64); + free ensures (memory_load64_le(mem, 131080bv64) == 131080bv64); procedure {:extern} rely_transitive(); modifies Gamma_mem, mem; @@ -87,92 +78,69 @@ implementation {:extern} guarantee_reflexive() assert (memory_load32_le(mem, $z_addr) == memory_load32_le(mem, $z_addr)); } -procedure main_1812(); - modifies CF, Gamma_CF, Gamma_NF, Gamma_R0, Gamma_R31, Gamma_R8, Gamma_VF, Gamma_ZF, Gamma_mem, Gamma_stack, NF, R0, R31, R8, VF, ZF, mem, stack; - free requires (memory_load64_le(mem, 69664bv64) == 0bv64); - free requires (memory_load64_le(mem, 69672bv64) == 69672bv64); - free requires (memory_load32_le(mem, 1896bv64) == 131073bv32); - free requires (memory_load64_le(mem, 69064bv64) == 1808bv64); - free requires (memory_load64_le(mem, 69072bv64) == 1728bv64); - free requires (memory_load64_le(mem, 69592bv64) == 1812bv64); - free requires (memory_load64_le(mem, 69672bv64) == 69672bv64); - free ensures (Gamma_R31 == old(Gamma_R31)); - free ensures (R31 == old(R31)); - free ensures (memory_load32_le(mem, 1896bv64) == 131073bv32); - free ensures (memory_load64_le(mem, 69064bv64) == 1808bv64); - free ensures (memory_load64_le(mem, 69072bv64) == 1728bv64); - free ensures (memory_load64_le(mem, 69592bv64) == 1812bv64); - free ensures (memory_load64_le(mem, 69672bv64) == 69672bv64); +procedure main(); + modifies CF, Gamma_CF, Gamma_NF, Gamma_R0, Gamma_R8, Gamma_R9, Gamma_VF, Gamma_ZF, Gamma_mem, NF, R0, R8, R9, VF, ZF, mem; + free requires (memory_load64_le(mem, 131072bv64) == 0bv64); + free requires (memory_load64_le(mem, 131080bv64) == 131080bv64); + free requires (memory_load32_le(mem, 2316bv64) == 131073bv32); + free requires (memory_load64_le(mem, 130424bv64) == 2256bv64); + free requires (memory_load64_le(mem, 130432bv64) == 2176bv64); + free requires (memory_load64_le(mem, 131032bv64) == 131096bv64); + free requires (memory_load64_le(mem, 131040bv64) == 131092bv64); + free requires (memory_load64_le(mem, 131056bv64) == 2260bv64); + free requires (memory_load64_le(mem, 131080bv64) == 131080bv64); + free ensures (memory_load32_le(mem, 2316bv64) == 131073bv32); + free ensures (memory_load64_le(mem, 130424bv64) == 2256bv64); + free ensures (memory_load64_le(mem, 130432bv64) == 2176bv64); + free ensures (memory_load64_le(mem, 131032bv64) == 131096bv64); + free ensures (memory_load64_le(mem, 131040bv64) == 131092bv64); + free ensures (memory_load64_le(mem, 131056bv64) == 2260bv64); + free ensures (memory_load64_le(mem, 131080bv64) == 131080bv64); -implementation main_1812() +implementation main() { - var Cse0__5_1_7: bv32; - var Gamma_Cse0__5_1_7: bool; - var Gamma_load20: bool; - var Gamma_load21: bool; - var Gamma_load22: bool; - var load20: bv32; - var load21: bv32; - var load22: bv32; - main_1812__0__WzLWYelmQTqUhds6mh5VTA: - assume {:captureState "main_1812__0__WzLWYelmQTqUhds6mh5VTA"} true; - R31, Gamma_R31 := bvadd64(R31, 18446744073709551600bv64), Gamma_R31; - stack, Gamma_stack := memory_store32_le(stack, bvadd64(R31, 12bv64), 0bv32), gamma_store32(Gamma_stack, bvadd64(R31, 12bv64), true); - assume {:captureState "1816_0"} true; - R8, Gamma_R8 := 69632bv64, true; + var $load5: bv64; + var $load6: bv64; + var $load7: bv32; + var $load8: bv32; + var Gamma_$load5: bool; + var Gamma_$load6: bool; + var Gamma_$load7: bool; + var Gamma_$load8: bool; + $main$__0__$D9t2gNJrSmyMH3GAVRe3IQ: + assume {:captureState "$main$__0__$D9t2gNJrSmyMH3GAVRe3IQ"} true; + R8, Gamma_R8 := 126976bv64, true; + R9, Gamma_R9 := 126976bv64, true; + call rely(); + $load5, Gamma_$load5 := memory_load64_le(mem, bvadd64(R8, 4056bv64)), (gamma_load64(Gamma_mem, bvadd64(R8, 4056bv64)) || L(mem, bvadd64(R8, 4056bv64))); + R8, Gamma_R8 := $load5, Gamma_$load5; + call rely(); + $load6, Gamma_$load6 := memory_load64_le(mem, bvadd64(R9, 4064bv64)), (gamma_load64(Gamma_mem, bvadd64(R9, 4064bv64)) || L(mem, bvadd64(R9, 4064bv64))); + R9, Gamma_R9 := $load6, Gamma_$load6; call rely(); - load21, Gamma_load21 := memory_load32_le(mem, bvadd64(R8, 52bv64)), (gamma_load32(Gamma_mem, bvadd64(R8, 52bv64)) || L(mem, bvadd64(R8, 52bv64))); - R8, Gamma_R8 := zero_extend32_32(load21), Gamma_load21; - stack, Gamma_stack := memory_store32_le(stack, bvadd64(R31, 8bv64), R8[32:0]), gamma_store32(Gamma_stack, bvadd64(R31, 8bv64), Gamma_R8); - assume {:captureState "1828_0"} true; - R8, Gamma_R8 := 69632bv64, true; + $load7, Gamma_$load7 := memory_load32_le(mem, R8), (gamma_load32(Gamma_mem, R8) || L(mem, R8)); + R8, Gamma_R8 := zero_extend32_32($load7), Gamma_$load7; call rely(); - load22, Gamma_load22 := memory_load32_le(mem, bvadd64(R8, 56bv64)), (gamma_load32(Gamma_mem, bvadd64(R8, 56bv64)) || L(mem, bvadd64(R8, 56bv64))); - R8, Gamma_R8 := zero_extend32_32(load22), Gamma_load22; - Cse0__5_1_7, Gamma_Cse0__5_1_7 := bvadd32(R8[32:0], 0bv32), Gamma_R8; - VF, Gamma_VF := bvnot1(bvcomp32(Cse0__5_1_7, Cse0__5_1_7)), Gamma_Cse0__5_1_7; - CF, Gamma_CF := bvnot1(bvcomp33(zero_extend1_32(Cse0__5_1_7), bvadd33(zero_extend1_32(R8[32:0]), 4294967296bv33))), (Gamma_R8 && Gamma_Cse0__5_1_7); - ZF, Gamma_ZF := bvcomp32(Cse0__5_1_7, 0bv32), Gamma_Cse0__5_1_7; - NF, Gamma_NF := Cse0__5_1_7[32:31], Gamma_Cse0__5_1_7; - R8, Gamma_R8 := zero_extend32_32(Cse0__5_1_7), Gamma_Cse0__5_1_7; + $load8, Gamma_$load8 := memory_load32_le(mem, R9), (gamma_load32(Gamma_mem, R9) || L(mem, R9)); + R9, Gamma_R9 := zero_extend32_32($load8), Gamma_$load8; + VF, Gamma_VF := 0bv1, true; + CF, Gamma_CF := 1bv1, true; + ZF, Gamma_ZF := bvcomp32(R8[32:0], 0bv32), Gamma_R8; + NF, Gamma_NF := R8[32:31], Gamma_R8; assert Gamma_ZF; - goto main_1812__0__WzLWYelmQTqUhds6mh5VTA$__0, main_1812__0__WzLWYelmQTqUhds6mh5VTA$__1; - main_1812__0__WzLWYelmQTqUhds6mh5VTA$__1: - assume {:captureState "main_1812__0__WzLWYelmQTqUhds6mh5VTA$__1"} true; - assume (!(!(ZF == 1bv1))); - R8, Gamma_R8 := 1bv64, true; - assert Gamma_R8; - goto main_1812__0__WzLWYelmQTqUhds6mh5VTA_goto_main_1812__3__UK2k~hvfRbmxHh2j_afrRg, main_1812__0__WzLWYelmQTqUhds6mh5VTA_goto_main_1812__1__dD2JwdxOSPSFx54LfUM9kw; - main_1812__0__WzLWYelmQTqUhds6mh5VTA$__0: - assume {:captureState "main_1812__0__WzLWYelmQTqUhds6mh5VTA$__0"} true; + goto $main$__0__$D9t2gNJrSmyMH3GAVRe3IQ$__0, $main$__0__$D9t2gNJrSmyMH3GAVRe3IQ$__1; + $main$__0__$D9t2gNJrSmyMH3GAVRe3IQ$__0: + assume {:captureState "$main$__0__$D9t2gNJrSmyMH3GAVRe3IQ$__0"} true; + assume (ZF == 1bv1); + R0, Gamma_R0 := zero_extend32_32(R9[32:0]), Gamma_R9; + goto main_basil_return; + $main$__0__$D9t2gNJrSmyMH3GAVRe3IQ$__1: + assume {:captureState "$main$__0__$D9t2gNJrSmyMH3GAVRe3IQ$__1"} true; assume (!(ZF == 1bv1)); - R8, Gamma_R8 := 0bv64, true; - assert Gamma_R8; - goto main_1812__0__WzLWYelmQTqUhds6mh5VTA_goto_main_1812__3__UK2k~hvfRbmxHh2j_afrRg, main_1812__0__WzLWYelmQTqUhds6mh5VTA_goto_main_1812__1__dD2JwdxOSPSFx54LfUM9kw; - main_1812__0__WzLWYelmQTqUhds6mh5VTA_goto_main_1812__1__dD2JwdxOSPSFx54LfUM9kw: - assume {:captureState "main_1812__0__WzLWYelmQTqUhds6mh5VTA_goto_main_1812__1__dD2JwdxOSPSFx54LfUM9kw"} true; - assume (!(R8[1:0] == 1bv1)); - goto main_1812__1__dD2JwdxOSPSFx54LfUM9kw; - main_1812__1__dD2JwdxOSPSFx54LfUM9kw: - assume {:captureState "main_1812__1__dD2JwdxOSPSFx54LfUM9kw"} true; - goto main_1812__2__7JWI5TAPT9~RSSH4jlqpjg; - main_1812__2__7JWI5TAPT9~RSSH4jlqpjg: - assume {:captureState "main_1812__2__7JWI5TAPT9~RSSH4jlqpjg"} true; - stack, Gamma_stack := memory_store32_le(stack, bvadd64(R31, 8bv64), 0bv32), gamma_store32(Gamma_stack, bvadd64(R31, 8bv64), true); - assume {:captureState "1856_0"} true; - goto main_1812__3__UK2k~hvfRbmxHh2j_afrRg; - main_1812__0__WzLWYelmQTqUhds6mh5VTA_goto_main_1812__3__UK2k~hvfRbmxHh2j_afrRg: - assume {:captureState "main_1812__0__WzLWYelmQTqUhds6mh5VTA_goto_main_1812__3__UK2k~hvfRbmxHh2j_afrRg"} true; - assume (R8[1:0] == 1bv1); - goto main_1812__3__UK2k~hvfRbmxHh2j_afrRg; - main_1812__3__UK2k~hvfRbmxHh2j_afrRg: - assume {:captureState "main_1812__3__UK2k~hvfRbmxHh2j_afrRg"} true; - load20, Gamma_load20 := memory_load32_le(stack, bvadd64(R31, 8bv64)), gamma_load32(Gamma_stack, bvadd64(R31, 8bv64)); - R0, Gamma_R0 := zero_extend32_32(load20), Gamma_load20; - R31, Gamma_R31 := bvadd64(R31, 16bv64), Gamma_R31; - goto main_1812_basil_return; - main_1812_basil_return: - assume {:captureState "main_1812_basil_return"} true; + R0, Gamma_R0 := 0bv64, true; + goto main_basil_return; + main_basil_return: + assume {:captureState "main_basil_return"} true; return; } diff --git a/src/test/correct/basic_sec_policy_read/clang_O2/basic_sec_policy_read.adt b/src/test/correct/basic_sec_policy_read/clang_O2/basic_sec_policy_read.adt deleted file mode 100644 index e2dc090b9..000000000 --- a/src/test/correct/basic_sec_policy_read/clang_O2/basic_sec_policy_read.adt +++ /dev/null @@ -1,524 +0,0 @@ -Project(Attrs([Attr("filename","\"clang_O2/basic_sec_policy_read.out\""), -Attr("image-specification","(declare abi (name str))\n(declare arch (name str))\n(declare base-address (addr int))\n(declare bias (off int))\n(declare bits (size int))\n(declare code-region (addr int) (size int) (off int))\n(declare code-start (addr int))\n(declare entry-point (addr int))\n(declare external-reference (addr int) (name str))\n(declare format (name str))\n(declare is-executable (flag bool))\n(declare is-little-endian (flag bool))\n(declare llvm:base-address (addr int))\n(declare llvm:code-entry (name str) (off int) (size int))\n(declare llvm:coff-import-library (name str))\n(declare llvm:coff-virtual-section-header (name str) (addr int) (size int))\n(declare llvm:elf-program-header (name str) (off int) (size int))\n(declare llvm:elf-program-header-flags (name str) (ld bool) (r bool) \n (w bool) (x bool))\n(declare llvm:elf-virtual-program-header (name str) (addr int) (size int))\n(declare llvm:entry-point (addr int))\n(declare llvm:macho-symbol (name str) (value int))\n(declare llvm:name-reference (at int) (name str))\n(declare llvm:relocation (at int) (addr int))\n(declare llvm:section-entry (name str) (addr int) (size int) (off int))\n(declare llvm:section-flags (name str) (r bool) (w bool) (x bool))\n(declare llvm:segment-command (name str) (off int) (size int))\n(declare llvm:segment-command-flags (name str) (r bool) (w bool) (x bool))\n(declare llvm:symbol-entry (name str) (addr int) (size int) (off int)\n (value int))\n(declare llvm:virtual-segment-command (name str) (addr int) (size int))\n(declare mapped (addr int) (size int) (off int))\n(declare named-region (addr int) (size int) (name str))\n(declare named-symbol (addr int) (name str))\n(declare require (name str))\n(declare section (addr int) (size int))\n(declare segment (addr int) (size int) (r bool) (w bool) (x bool))\n(declare subarch (name str))\n(declare symbol-chunk (addr int) (size int) (root int))\n(declare symbol-value (addr int) (value int))\n(declare system (name str))\n(declare vendor (name str))\n\n(abi unknown)\n(arch aarch64)\n(base-address 0)\n(bias 0)\n(bits 64)\n(code-region 1840 20 1840)\n(code-region 1536 304 1536)\n(code-region 1440 96 1440)\n(code-region 1408 24 1408)\n(code-start 1588)\n(code-start 1536)\n(code-start 1812)\n(entry-point 1536)\n(external-reference 69568 _ITM_deregisterTMCloneTable)\n(external-reference 69576 __cxa_finalize)\n(external-reference 69584 __gmon_start__)\n(external-reference 69600 _ITM_registerTMCloneTable)\n(external-reference 69632 __libc_start_main)\n(external-reference 69640 __cxa_finalize)\n(external-reference 69648 __gmon_start__)\n(external-reference 69656 abort)\n(format elf)\n(is-executable true)\n(is-little-endian true)\n(llvm:base-address 0)\n(llvm:code-entry abort 0 0)\n(llvm:code-entry __cxa_finalize 0 0)\n(llvm:code-entry __libc_start_main 0 0)\n(llvm:code-entry _init 1408 0)\n(llvm:code-entry main 1812 28)\n(llvm:code-entry _start 1536 52)\n(llvm:code-entry abort@GLIBC_2.17 0 0)\n(llvm:code-entry _fini 1840 0)\n(llvm:code-entry __cxa_finalize@GLIBC_2.17 0 0)\n(llvm:code-entry __libc_start_main@GLIBC_2.34 0 0)\n(llvm:code-entry frame_dummy 1808 0)\n(llvm:code-entry __do_global_dtors_aux 1728 0)\n(llvm:code-entry register_tm_clones 1664 0)\n(llvm:code-entry deregister_tm_clones 1616 0)\n(llvm:code-entry call_weak_fn 1588 20)\n(llvm:code-entry .fini 1840 20)\n(llvm:code-entry .text 1536 304)\n(llvm:code-entry .plt 1440 96)\n(llvm:code-entry .init 1408 24)\n(llvm:elf-program-header 08 3528 568)\n(llvm:elf-program-header 07 0 0)\n(llvm:elf-program-header 06 1864 60)\n(llvm:elf-program-header 05 596 68)\n(llvm:elf-program-header 04 3544 480)\n(llvm:elf-program-header 03 3528 616)\n(llvm:elf-program-header 02 0 2108)\n(llvm:elf-program-header 01 568 27)\n(llvm:elf-program-header 00 64 504)\n(llvm:elf-program-header-flags 08 false true false false)\n(llvm:elf-program-header-flags 07 false true true false)\n(llvm:elf-program-header-flags 06 false true false false)\n(llvm:elf-program-header-flags 05 false true false false)\n(llvm:elf-program-header-flags 04 false true true false)\n(llvm:elf-program-header-flags 03 true true true false)\n(llvm:elf-program-header-flags 02 true true false true)\n(llvm:elf-program-header-flags 01 false true false false)\n(llvm:elf-program-header-flags 00 false true false false)\n(llvm:elf-virtual-program-header 08 69064 568)\n(llvm:elf-virtual-program-header 07 0 0)\n(llvm:elf-virtual-program-header 06 1864 60)\n(llvm:elf-virtual-program-header 05 596 68)\n(llvm:elf-virtual-program-header 04 69080 480)\n(llvm:elf-virtual-program-header 03 69064 632)\n(llvm:elf-virtual-program-header 02 0 2108)\n(llvm:elf-virtual-program-header 01 568 27)\n(llvm:elf-virtual-program-header 00 64 504)\n(llvm:entry-point 1536)\n(llvm:name-reference 69656 abort)\n(llvm:name-reference 69648 __gmon_start__)\n(llvm:name-reference 69640 __cxa_finalize)\n(llvm:name-reference 69632 __libc_start_main)\n(llvm:name-reference 69600 _ITM_registerTMCloneTable)\n(llvm:name-reference 69584 __gmon_start__)\n(llvm:name-reference 69576 __cxa_finalize)\n(llvm:name-reference 69568 _ITM_deregisterTMCloneTable)\n(llvm:section-entry .shstrtab 0 259 6979)\n(llvm:section-entry .strtab 0 579 6400)\n(llvm:section-entry .symtab 0 2184 4216)\n(llvm:section-entry .comment 0 71 4144)\n(llvm:section-entry .bss 69680 16 4144)\n(llvm:section-entry .data 69664 16 4128)\n(llvm:section-entry .got.plt 69608 56 4072)\n(llvm:section-entry .got 69560 48 4024)\n(llvm:section-entry .dynamic 69080 480 3544)\n(llvm:section-entry .fini_array 69072 8 3536)\n(llvm:section-entry .init_array 69064 8 3528)\n(llvm:section-entry .eh_frame 1928 180 1928)\n(llvm:section-entry .eh_frame_hdr 1864 60 1864)\n(llvm:section-entry .rodata 1860 4 1860)\n(llvm:section-entry .fini 1840 20 1840)\n(llvm:section-entry .text 1536 304 1536)\n(llvm:section-entry .plt 1440 96 1440)\n(llvm:section-entry .init 1408 24 1408)\n(llvm:section-entry .rela.plt 1312 96 1312)\n(llvm:section-entry .rela.dyn 1120 192 1120)\n(llvm:section-entry .gnu.version_r 1072 48 1072)\n(llvm:section-entry .gnu.version 1054 18 1054)\n(llvm:section-entry .dynstr 912 141 912)\n(llvm:section-entry .dynsym 696 216 696)\n(llvm:section-entry .gnu.hash 664 28 664)\n(llvm:section-entry .note.ABI-tag 632 32 632)\n(llvm:section-entry .note.gnu.build-id 596 36 596)\n(llvm:section-entry .interp 568 27 568)\n(llvm:section-flags .shstrtab true false false)\n(llvm:section-flags .strtab true false false)\n(llvm:section-flags .symtab true false false)\n(llvm:section-flags .comment true false false)\n(llvm:section-flags .bss true true false)\n(llvm:section-flags .data true true false)\n(llvm:section-flags .got.plt true true false)\n(llvm:section-flags .got true true false)\n(llvm:section-flags .dynamic true true false)\n(llvm:section-flags .fini_array true true false)\n(llvm:section-flags .init_array true true false)\n(llvm:section-flags .eh_frame true false false)\n(llvm:section-flags .eh_frame_hdr true false false)\n(llvm:section-flags .rodata true false false)\n(llvm:section-flags .fini true false true)\n(llvm:section-flags .text true false true)\n(llvm:section-flags .plt true false true)\n(llvm:section-flags .init true false true)\n(llvm:section-flags .rela.plt true false false)\n(llvm:section-flags .rela.dyn true false false)\n(llvm:section-flags .gnu.version_r true false false)\n(llvm:section-flags .gnu.version true false false)\n(llvm:section-flags .dynstr true false false)\n(llvm:section-flags .dynsym true false false)\n(llvm:section-flags .gnu.hash true false false)\n(llvm:section-flags .note.ABI-tag true false false)\n(llvm:section-flags .note.gnu.build-id true false false)\n(llvm:section-flags .interp true false false)\n(llvm:symbol-entry abort 0 0 0 0)\n(llvm:symbol-entry __cxa_finalize 0 0 0 0)\n(llvm:symbol-entry __libc_start_main 0 0 0 0)\n(llvm:symbol-entry _init 1408 0 1408 1408)\n(llvm:symbol-entry main 1812 28 1812 1812)\n(llvm:symbol-entry _start 1536 52 1536 1536)\n(llvm:symbol-entry abort@GLIBC_2.17 0 0 0 0)\n(llvm:symbol-entry _fini 1840 0 1840 1840)\n(llvm:symbol-entry __cxa_finalize@GLIBC_2.17 0 0 0 0)\n(llvm:symbol-entry __libc_start_main@GLIBC_2.34 0 0 0 0)\n(llvm:symbol-entry frame_dummy 1808 0 1808 1808)\n(llvm:symbol-entry __do_global_dtors_aux 1728 0 1728 1728)\n(llvm:symbol-entry register_tm_clones 1664 0 1664 1664)\n(llvm:symbol-entry deregister_tm_clones 1616 0 1616 1616)\n(llvm:symbol-entry call_weak_fn 1588 20 1588 1588)\n(mapped 0 2108 0)\n(mapped 69064 616 3528)\n(named-region 0 2108 02)\n(named-region 69064 632 03)\n(named-region 568 27 .interp)\n(named-region 596 36 .note.gnu.build-id)\n(named-region 632 32 .note.ABI-tag)\n(named-region 664 28 .gnu.hash)\n(named-region 696 216 .dynsym)\n(named-region 912 141 .dynstr)\n(named-region 1054 18 .gnu.version)\n(named-region 1072 48 .gnu.version_r)\n(named-region 1120 192 .rela.dyn)\n(named-region 1312 96 .rela.plt)\n(named-region 1408 24 .init)\n(named-region 1440 96 .plt)\n(named-region 1536 304 .text)\n(named-region 1840 20 .fini)\n(named-region 1860 4 .rodata)\n(named-region 1864 60 .eh_frame_hdr)\n(named-region 1928 180 .eh_frame)\n(named-region 69064 8 .init_array)\n(named-region 69072 8 .fini_array)\n(named-region 69080 480 .dynamic)\n(named-region 69560 48 .got)\n(named-region 69608 56 .got.plt)\n(named-region 69664 16 .data)\n(named-region 69680 16 .bss)\n(named-region 0 71 .comment)\n(named-region 0 2184 .symtab)\n(named-region 0 579 .strtab)\n(named-region 0 259 .shstrtab)\n(named-symbol 1588 call_weak_fn)\n(named-symbol 1616 deregister_tm_clones)\n(named-symbol 1664 register_tm_clones)\n(named-symbol 1728 __do_global_dtors_aux)\n(named-symbol 1808 frame_dummy)\n(named-symbol 0 __libc_start_main@GLIBC_2.34)\n(named-symbol 0 __cxa_finalize@GLIBC_2.17)\n(named-symbol 1840 _fini)\n(named-symbol 0 abort@GLIBC_2.17)\n(named-symbol 1536 _start)\n(named-symbol 1812 main)\n(named-symbol 1408 _init)\n(named-symbol 0 __libc_start_main)\n(named-symbol 0 __cxa_finalize)\n(named-symbol 0 abort)\n(require libc.so.6)\n(section 568 27)\n(section 596 36)\n(section 632 32)\n(section 664 28)\n(section 696 216)\n(section 912 141)\n(section 1054 18)\n(section 1072 48)\n(section 1120 192)\n(section 1312 96)\n(section 1408 24)\n(section 1440 96)\n(section 1536 304)\n(section 1840 20)\n(section 1860 4)\n(section 1864 60)\n(section 1928 180)\n(section 69064 8)\n(section 69072 8)\n(section 69080 480)\n(section 69560 48)\n(section 69608 56)\n(section 69664 16)\n(section 69680 16)\n(section 0 71)\n(section 0 2184)\n(section 0 579)\n(section 0 259)\n(segment 0 2108 true false true)\n(segment 69064 632 true true false)\n(subarch v8)\n(symbol-chunk 1588 20 1588)\n(symbol-chunk 1536 52 1536)\n(symbol-chunk 1812 28 1812)\n(symbol-value 1588 1588)\n(symbol-value 1616 1616)\n(symbol-value 1664 1664)\n(symbol-value 1728 1728)\n(symbol-value 1808 1808)\n(symbol-value 1840 1840)\n(symbol-value 1536 1536)\n(symbol-value 1812 1812)\n(symbol-value 1408 1408)\n(symbol-value 0 0)\n(system \"\")\n(vendor \"\")\n"), -Attr("abi-name","\"aarch64-linux-gnu-elf\"")]), -Sections([Section(".shstrtab", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x00\x06\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x48\x1c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x38\x00\x09\x00\x40\x00\x1d\x00\x1c\x00\x06\x00\x00\x00\x04\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x04\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x3c\x08\x00\x00\x00\x00\x00\x00\x3c\x08\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x01\x00\x00\x00\x06\x00\x00\x00\xc8\x0d\x00\x00\x00\x00\x00\x00\xc8\x0d\x01\x00\x00\x00\x00\x00\xc8\x0d\x01"), -Section(".strtab", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x00\x06\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x48\x1c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x38\x00\x09\x00\x40\x00\x1d\x00\x1c\x00\x06\x00\x00\x00\x04\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x04\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x3c\x08\x00\x00\x00\x00\x00\x00\x3c\x08\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x01\x00\x00\x00\x06\x00\x00\x00\xc8\x0d\x00\x00\x00\x00\x00\x00\xc8\x0d\x01\x00\x00\x00\x00\x00\xc8\x0d\x01\x00\x00\x00\x00\x00\x68\x02\x00\x00\x00\x00\x00\x00\x78\x02\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x02\x00\x00\x00\x06\x00\x00\x00\xd8\x0d\x00\x00\x00\x00\x00\x00\xd8\x0d\x01\x00\x00\x00\x00\x00\xd8\x0d\x01\x00\x00\x00\x00\x00\xe0\x01\x00\x00\x00\x00\x00\x00\xe0\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x04\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x50\xe5\x74\x64\x04\x00\x00\x00\x48\x07\x00\x00\x00\x00\x00\x00\x48\x07\x00\x00\x00\x00\x00\x00\x48\x07\x00\x00\x00\x00\x00\x00\x3c\x00\x00\x00\x00\x00\x00\x00\x3c\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x51\xe5\x74\x64\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x52\xe5\x74\x64\x04\x00\x00\x00\xc8\x0d\x00\x00\x00\x00\x00\x00\xc8\x0d\x01\x00\x00\x00\x00\x00\xc8\x0d\x01\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x2f\x6c\x69\x62\x2f\x6c\x64\x2d\x6c\x69\x6e"), -Section(".comment", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x00\x06\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x48\x1c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x38\x00\x09\x00\x40\x00\x1d\x00\x1c\x00\x06\x00\x00\x00\x04\x00\x00"), -Section(".interp", 0x238, "\x2f\x6c\x69\x62\x2f\x6c\x64\x2d\x6c\x69\x6e\x75\x78\x2d\x61\x61\x72\x63\x68\x36\x34\x2e\x73\x6f\x2e\x31\x00"), -Section(".note.gnu.build-id", 0x254, "\x04\x00\x00\x00\x14\x00\x00\x00\x03\x00\x00\x00\x47\x4e\x55\x00\x43\x77\xda\x56\xb7\xfa\x32\x7e\x29\xf8\x91\x6a\xbc\x5a\xce\xba\xce\x08\x0b\xb9"), -Section(".note.ABI-tag", 0x278, "\x04\x00\x00\x00\x10\x00\x00\x00\x01\x00\x00\x00\x47\x4e\x55\x00\x00\x00\x00\x00\x03\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00"), -Section(".gnu.hash", 0x298, "\x01\x00\x00\x00\x01\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".dynsym", 0x2B8, "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x0b\x00\x80\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x17\x00\x20\x10\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x48\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x22\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x22\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x73\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".dynstr", 0x390, "\x00\x5f\x5f\x63\x78\x61\x5f\x66\x69\x6e\x61\x6c\x69\x7a\x65\x00\x5f\x5f\x6c\x69\x62\x63\x5f\x73\x74\x61\x72\x74\x5f\x6d\x61\x69\x6e\x00\x61\x62\x6f\x72\x74\x00\x6c\x69\x62\x63\x2e\x73\x6f\x2e\x36\x00\x47\x4c\x49\x42\x43\x5f\x32\x2e\x31\x37\x00\x47\x4c\x49\x42\x43\x5f\x32\x2e\x33\x34\x00\x5f\x49\x54\x4d\x5f\x64\x65\x72\x65\x67\x69\x73\x74\x65\x72\x54\x4d\x43\x6c\x6f\x6e\x65\x54\x61\x62\x6c\x65\x00\x5f\x5f\x67\x6d\x6f\x6e\x5f\x73\x74\x61\x72\x74\x5f\x5f\x00\x5f\x49\x54\x4d\x5f\x72\x65\x67\x69\x73\x74\x65\x72\x54\x4d\x43\x6c\x6f\x6e\x65\x54\x61\x62\x6c\x65\x00"), -Section(".gnu.version", 0x41E, "\x00\x00\x00\x00\x00\x00\x02\x00\x01\x00\x03\x00\x01\x00\x03\x00\x01\x00"), -Section(".gnu.version_r", 0x430, "\x01\x00\x02\x00\x28\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x97\x91\x96\x06\x00\x00\x03\x00\x32\x00\x00\x00\x10\x00\x00\x00\xb4\x91\x96\x06\x00\x00\x02\x00\x3d\x00\x00\x00\x00\x00\x00\x00"), -Section(".rela.dyn", 0x460, "\xc8\x0d\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x10\x07\x00\x00\x00\x00\x00\x00\xd0\x0d\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\xc0\x06\x00\x00\x00\x00\x00\x00\xd8\x0f\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x14\x07\x00\x00\x00\x00\x00\x00\x28\x10\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x28\x10\x01\x00\x00\x00\x00\x00\xc0\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xc8\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xd0\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe0\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".rela.plt", 0x520, "\x00\x10\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x08\x10\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x10\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x18\x10\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".init", 0x580, "\x1f\x20\x03\xd5\xfd\x7b\xbf\xa9\xfd\x03\x00\x91\x2a\x00\x00\x94\xfd\x7b\xc1\xa8\xc0\x03\x5f\xd6"), -Section(".plt", 0x5A0, "\xf0\x7b\xbf\xa9\x90\x00\x00\x90\x11\xfe\x47\xf9\x10\xe2\x3f\x91\x20\x02\x1f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x90\x00\x00\xb0\x11\x02\x40\xf9\x10\x02\x00\x91\x20\x02\x1f\xd6\x90\x00\x00\xb0\x11\x06\x40\xf9\x10\x22\x00\x91\x20\x02\x1f\xd6\x90\x00\x00\xb0\x11\x0a\x40\xf9\x10\x42\x00\x91\x20\x02\x1f\xd6\x90\x00\x00\xb0\x11\x0e\x40\xf9\x10\x62\x00\x91\x20\x02\x1f\xd6"), -Section(".text", 0x600, "\x1f\x20\x03\xd5\x1d\x00\x80\xd2\x1e\x00\x80\xd2\xe5\x03\x00\xaa\xe1\x03\x40\xf9\xe2\x23\x00\x91\xe6\x03\x00\x91\x80\x00\x00\x90\x00\xec\x47\xf9\x03\x00\x80\xd2\x04\x00\x80\xd2\xe5\xff\xff\x97\xf0\xff\xff\x97\x80\x00\x00\x90\x00\xe8\x47\xf9\x40\x00\x00\xb4\xe8\xff\xff\x17\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x80\x00\x00\xb0\x00\xc0\x00\x91\x81\x00\x00\xb0\x21\xc0\x00\x91\x3f\x00\x00\xeb\xc0\x00\x00\x54\x81\x00\x00\x90\x21\xe0\x47\xf9\x61\x00\x00\xb4\xf0\x03\x01\xaa\x00\x02\x1f\xd6\xc0\x03\x5f\xd6\x80\x00\x00\xb0\x00\xc0\x00\x91\x81\x00\x00\xb0\x21\xc0\x00\x91\x21\x00\x00\xcb\x22\xfc\x7f\xd3\x41\x0c\x81\x8b\x21\xfc\x41\x93\xc1\x00\x00\xb4\x82\x00\x00\x90\x42\xf0\x47\xf9\x62\x00\x00\xb4\xf0\x03\x02\xaa\x00\x02\x1f\xd6\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\xfd\x7b\xbe\xa9\xfd\x03\x00\x91\xf3\x0b\x00\xf9\x93\x00\x00\xb0\x60\xc2\x40\x39\x40\x01\x00\x35\x80\x00\x00\x90\x00\xe4\x47\xf9\x80\x00\x00\xb4\x80\x00\x00\xb0\x00\x14\x40\xf9\xb9\xff\xff\x97\xd8\xff\xff\x97\x20\x00\x80\x52\x60\xc2\x00\x39\xf3\x0b\x40\xf9\xfd\x7b\xc2\xa8\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\xdc\xff\xff\x17\x88\x00\x00\xb0\x89\x00\x00\xb0\x08\x39\x40\xb9\x29\x35\x40\xb9\x1f\x01\x00\x71\x20\x01\x9f\x1a\xc0\x03\x5f\xd6"), -Section(".fini", 0x730, "\x1f\x20\x03\xd5\xfd\x7b\xbf\xa9\xfd\x03\x00\x91\xfd\x7b\xc1\xa8\xc0\x03\x5f\xd6"), -Section(".rodata", 0x744, "\x01\x00\x02\x00"), -Section(".eh_frame_hdr", 0x748, "\x01\x1b\x03\x3b\x3c\x00\x00\x00\x06\x00\x00\x00\xb8\xfe\xff\xff\x54\x00\x00\x00\x08\xff\xff\xff\x68\x00\x00\x00\x38\xff\xff\xff\x7c\x00\x00\x00\x78\xff\xff\xff\x90\x00\x00\x00\xc8\xff\xff\xff\xb4\x00\x00\x00\xcc\xff\xff\xff\xdc\x00\x00\x00"), -Section(".eh_frame", 0x788, "\x10\x00\x00\x00\x00\x00\x00\x00\x01\x7a\x52\x00\x04\x78\x1e\x01\x1b\x0c\x1f\x00\x10\x00\x00\x00\x18\x00\x00\x00\x5c\xfe\xff\xff\x34\x00\x00\x00\x00\x41\x07\x1e\x10\x00\x00\x00\x2c\x00\x00\x00\x98\xfe\xff\xff\x30\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x40\x00\x00\x00\xb4\xfe\xff\xff\x3c\x00\x00\x00\x00\x00\x00\x00\x20\x00\x00\x00\x54\x00\x00\x00\xe0\xfe\xff\xff\x48\x00\x00\x00\x00\x41\x0e\x20\x9d\x04\x9e\x03\x42\x93\x02\x4e\xde\xdd\xd3\x0e\x00\x00\x00\x00\x10\x00\x00\x00\x78\x00\x00\x00\x0c\xff\xff\xff\x04\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x01\x7a\x52\x00\x01\x7c\x1e\x01\x1b\x0c\x1f\x00\x10\x00\x00\x00\x18\x00\x00\x00\xe8\xfe\xff\xff\x1c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".fini_array", 0x10DD0, "\xc0\x06\x00\x00\x00\x00\x00\x00"), -Section(".dynamic", 0x10DD8, "\x01\x00\x00\x00\x00\x00\x00\x00\x28\x00\x00\x00\x00\x00\x00\x00\x0c\x00\x00\x00\x00\x00\x00\x00\x80\x05\x00\x00\x00\x00\x00\x00\x0d\x00\x00\x00\x00\x00\x00\x00\x30\x07\x00\x00\x00\x00\x00\x00\x19\x00\x00\x00\x00\x00\x00\x00\xc8\x0d\x01\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x1a\x00\x00\x00\x00\x00\x00\x00\xd0\x0d\x01\x00\x00\x00\x00\x00\x1c\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\xf5\xfe\xff\x6f\x00\x00\x00\x00\x98\x02\x00\x00\x00\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x90\x03\x00\x00\x00\x00\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\xb8\x02\x00\x00\x00\x00\x00\x00\x0a\x00\x00\x00\x00\x00\x00\x00\x8d\x00\x00\x00\x00\x00\x00\x00\x0b\x00\x00\x00\x00\x00\x00\x00\x18\x00\x00\x00\x00\x00\x00\x00\x15\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\xe8\x0f\x01\x00\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x60\x00\x00\x00\x00\x00\x00\x00\x14\x00\x00\x00\x00\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x17\x00\x00\x00\x00\x00\x00\x00\x20\x05\x00\x00\x00\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x60\x04\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\xc0\x00\x00\x00\x00\x00\x00\x00\x09\x00\x00\x00\x00\x00\x00\x00\x18\x00\x00\x00\x00\x00\x00\x00\xfb\xff\xff\x6f\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\xfe\xff\xff\x6f\x00\x00\x00\x00\x30\x04\x00\x00\x00\x00\x00\x00\xff\xff\xff\x6f\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\xf0\xff\xff\x6f\x00\x00\x00\x00\x1e\x04\x00\x00\x00\x00\x00\x00\xf9\xff\xff\x6f\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".init_array", 0x10DC8, "\x10\x07\x00\x00\x00\x00\x00\x00"), -Section(".got", 0x10FB8, "\xd8\x0d\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x14\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".got.plt", 0x10FE8, "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xa0\x05\x00\x00\x00\x00\x00\x00\xa0\x05\x00\x00\x00\x00\x00\x00\xa0\x05\x00\x00\x00\x00\x00\x00\xa0\x05\x00\x00\x00\x00\x00\x00"), -Section(".data", 0x11020, "\x00\x00\x00\x00\x00\x00\x00\x00\x28\x10\x01\x00\x00\x00\x00\x00")]), -Memmap([Annotation(Region(0x0,0x83B), Attr("segment","02 0 2108")), -Annotation(Region(0x600,0x633), Attr("symbol","\"_start\"")), -Annotation(Region(0x0,0x102), Attr("section","\".shstrtab\"")), -Annotation(Region(0x0,0x242), Attr("section","\".strtab\"")), -Annotation(Region(0x0,0x46), Attr("section","\".comment\"")), -Annotation(Region(0x238,0x252), Attr("section","\".interp\"")), -Annotation(Region(0x254,0x277), Attr("section","\".note.gnu.build-id\"")), -Annotation(Region(0x278,0x297), Attr("section","\".note.ABI-tag\"")), -Annotation(Region(0x298,0x2B3), Attr("section","\".gnu.hash\"")), -Annotation(Region(0x2B8,0x38F), Attr("section","\".dynsym\"")), -Annotation(Region(0x390,0x41C), Attr("section","\".dynstr\"")), -Annotation(Region(0x41E,0x42F), Attr("section","\".gnu.version\"")), -Annotation(Region(0x430,0x45F), Attr("section","\".gnu.version_r\"")), -Annotation(Region(0x460,0x51F), Attr("section","\".rela.dyn\"")), -Annotation(Region(0x520,0x57F), Attr("section","\".rela.plt\"")), -Annotation(Region(0x580,0x597), Attr("section","\".init\"")), -Annotation(Region(0x5A0,0x5FF), Attr("section","\".plt\"")), -Annotation(Region(0x580,0x597), Attr("code-region","()")), -Annotation(Region(0x5A0,0x5FF), Attr("code-region","()")), -Annotation(Region(0x600,0x633), Attr("symbol-info","_start 0x600 52")), -Annotation(Region(0x634,0x647), Attr("symbol","\"call_weak_fn\"")), -Annotation(Region(0x634,0x647), Attr("symbol-info","call_weak_fn 0x634 20")), -Annotation(Region(0x600,0x72F), Attr("section","\".text\"")), -Annotation(Region(0x600,0x72F), Attr("code-region","()")), -Annotation(Region(0x714,0x72F), Attr("symbol","\"main\"")), -Annotation(Region(0x714,0x72F), Attr("symbol-info","main 0x714 28")), -Annotation(Region(0x730,0x743), Attr("section","\".fini\"")), -Annotation(Region(0x730,0x743), Attr("code-region","()")), -Annotation(Region(0x744,0x747), Attr("section","\".rodata\"")), -Annotation(Region(0x748,0x783), Attr("section","\".eh_frame_hdr\"")), -Annotation(Region(0x788,0x83B), Attr("section","\".eh_frame\"")), -Annotation(Region(0x10DC8,0x1102F), Attr("segment","03 0x10DC8 632")), -Annotation(Region(0x10DD0,0x10DD7), Attr("section","\".fini_array\"")), -Annotation(Region(0x10DD8,0x10FB7), Attr("section","\".dynamic\"")), -Annotation(Region(0x10DC8,0x10DCF), Attr("section","\".init_array\"")), -Annotation(Region(0x10FB8,0x10FE7), Attr("section","\".got\"")), -Annotation(Region(0x10FE8,0x1101F), Attr("section","\".got.plt\"")), -Annotation(Region(0x11020,0x1102F), Attr("section","\".data\""))]), -Program(Tid(1_470, "%000005be"), Attrs([]), - Subs([Sub(Tid(1_420, "@__cxa_finalize"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x5D0"), -Attr("stub","()")]), "__cxa_finalize", Args([Arg(Tid(1_471, "%000005bf"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("__cxa_finalize_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(834, "@__cxa_finalize"), - Attrs([Attr("address","0x5D0")]), Phis([]), -Defs([Def(Tid(1_082, "%0000043a"), Attrs([Attr("address","0x5D0"), -Attr("insn","adrp x16, #69632")]), Var("R16",Imm(64)), Int(69632,64)), -Def(Tid(1_089, "%00000441"), Attrs([Attr("address","0x5D4"), -Attr("insn","ldr x17, [x16, #0x8]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(1_095, "%00000447"), Attrs([Attr("address","0x5D8"), -Attr("insn","add x16, x16, #0x8")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(8,64)))]), Jmps([Call(Tid(1_100, "%0000044c"), - Attrs([Attr("address","0x5DC"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), -Sub(Tid(1_421, "@__do_global_dtors_aux"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x6C0")]), - "__do_global_dtors_aux", Args([Arg(Tid(1_472, "%000005c0"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("__do_global_dtors_aux_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(618, "@__do_global_dtors_aux"), - Attrs([Attr("address","0x6C0")]), Phis([]), Defs([Def(Tid(622, "%0000026e"), - Attrs([Attr("address","0x6C0"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("#3",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(18446744073709551584,64))), -Def(Tid(628, "%00000274"), Attrs([Attr("address","0x6C0"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("#3",Imm(64)),Var("R29",Imm(64)),LittleEndian(),64)), -Def(Tid(634, "%0000027a"), Attrs([Attr("address","0x6C0"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("#3",Imm(64)),Int(8,64)),Var("R30",Imm(64)),LittleEndian(),64)), -Def(Tid(638, "%0000027e"), Attrs([Attr("address","0x6C0"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("R31",Imm(64)), -Var("#3",Imm(64))), Def(Tid(644, "%00000284"), - Attrs([Attr("address","0x6C4"), Attr("insn","mov x29, sp")]), - Var("R29",Imm(64)), Var("R31",Imm(64))), Def(Tid(652, "%0000028c"), - Attrs([Attr("address","0x6C8"), Attr("insn","str x19, [sp, #0x10]")]), - Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(16,64)),Var("R19",Imm(64)),LittleEndian(),64)), -Def(Tid(657, "%00000291"), Attrs([Attr("address","0x6CC"), -Attr("insn","adrp x19, #69632")]), Var("R19",Imm(64)), Int(69632,64)), -Def(Tid(664, "%00000298"), Attrs([Attr("address","0x6D0"), -Attr("insn","ldrb w0, [x19, #0x30]")]), Var("R0",Imm(64)), -UNSIGNED(64,Load(Var("mem",Mem(64,8)),PLUS(Var("R19",Imm(64)),Int(48,64)),LittleEndian(),8)))]), -Jmps([Goto(Tid(671, "%0000029f"), Attrs([Attr("address","0x6D4"), -Attr("insn","cbnz w0, #0x28")]), - NEQ(Extract(31,0,Var("R0",Imm(64))),Int(0,32)), -Direct(Tid(669, "%0000029d"))), Goto(Tid(1_460, "%000005b4"), Attrs([]), - Int(1,1), Direct(Tid(779, "%0000030b")))])), Blk(Tid(779, "%0000030b"), - Attrs([Attr("address","0x6D8")]), Phis([]), Defs([Def(Tid(782, "%0000030e"), - Attrs([Attr("address","0x6D8"), Attr("insn","adrp x0, #65536")]), - Var("R0",Imm(64)), Int(65536,64)), Def(Tid(789, "%00000315"), - Attrs([Attr("address","0x6DC"), Attr("insn","ldr x0, [x0, #0xfc8]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(4040,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(795, "%0000031b"), Attrs([Attr("address","0x6E0"), -Attr("insn","cbz x0, #0x10")]), EQ(Var("R0",Imm(64)),Int(0,64)), -Direct(Tid(793, "%00000319"))), Goto(Tid(1_461, "%000005b5"), Attrs([]), - Int(1,1), Direct(Tid(818, "%00000332")))])), Blk(Tid(818, "%00000332"), - Attrs([Attr("address","0x6E4")]), Phis([]), Defs([Def(Tid(821, "%00000335"), - Attrs([Attr("address","0x6E4"), Attr("insn","adrp x0, #69632")]), - Var("R0",Imm(64)), Int(69632,64)), Def(Tid(828, "%0000033c"), - Attrs([Attr("address","0x6E8"), Attr("insn","ldr x0, [x0, #0x28]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(40,64)),LittleEndian(),64)), -Def(Tid(833, "%00000341"), Attrs([Attr("address","0x6EC"), -Attr("insn","bl #-0x11c")]), Var("R30",Imm(64)), Int(1776,64))]), -Jmps([Call(Tid(836, "%00000344"), Attrs([Attr("address","0x6EC"), -Attr("insn","bl #-0x11c")]), Int(1,1), -(Direct(Tid(1_420, "@__cxa_finalize")),Direct(Tid(793, "%00000319"))))])), -Blk(Tid(793, "%00000319"), Attrs([Attr("address","0x6F0")]), Phis([]), -Defs([Def(Tid(801, "%00000321"), Attrs([Attr("address","0x6F0"), -Attr("insn","bl #-0xa0")]), Var("R30",Imm(64)), Int(1780,64))]), -Jmps([Call(Tid(803, "%00000323"), Attrs([Attr("address","0x6F0"), -Attr("insn","bl #-0xa0")]), Int(1,1), -(Direct(Tid(1_434, "@deregister_tm_clones")),Direct(Tid(805, "%00000325"))))])), -Blk(Tid(805, "%00000325"), Attrs([Attr("address","0x6F4")]), Phis([]), -Defs([Def(Tid(808, "%00000328"), Attrs([Attr("address","0x6F4"), -Attr("insn","mov w0, #0x1")]), Var("R0",Imm(64)), Int(1,64)), -Def(Tid(816, "%00000330"), Attrs([Attr("address","0x6F8"), -Attr("insn","strb w0, [x19, #0x30]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R19",Imm(64)),Int(48,64)),Extract(7,0,Var("R0",Imm(64))),LittleEndian(),8))]), -Jmps([Goto(Tid(1_462, "%000005b6"), Attrs([]), Int(1,1), -Direct(Tid(669, "%0000029d")))])), Blk(Tid(669, "%0000029d"), - Attrs([Attr("address","0x6FC")]), Phis([]), Defs([Def(Tid(679, "%000002a7"), - Attrs([Attr("address","0x6FC"), Attr("insn","ldr x19, [sp, #0x10]")]), - Var("R19",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(16,64)),LittleEndian(),64)), -Def(Tid(686, "%000002ae"), Attrs([Attr("address","0x700"), -Attr("insn","ldp x29, x30, [sp], #0x20")]), Var("R29",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(691, "%000002b3"), Attrs([Attr("address","0x700"), -Attr("insn","ldp x29, x30, [sp], #0x20")]), Var("R30",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(695, "%000002b7"), Attrs([Attr("address","0x700"), -Attr("insn","ldp x29, x30, [sp], #0x20")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(32,64)))]), Jmps([Call(Tid(700, "%000002bc"), - Attrs([Attr("address","0x704"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), Sub(Tid(1_425, "@__libc_start_main"), - Attrs([Attr("c.proto","signed (*)(signed (*)(signed , char** , char** );* main, signed , char** , \nvoid* auxv)"), -Attr("address","0x5C0"), Attr("stub","()")]), "__libc_start_main", - Args([Arg(Tid(1_473, "%000005c1"), - Attrs([Attr("c.layout","**[ : 64]"), -Attr("c.data","Top:u64 ptr ptr"), -Attr("c.type","signed (*)(signed , char** , char** );*")]), - Var("__libc_start_main_main",Imm(64)), Var("R0",Imm(64)), In()), -Arg(Tid(1_474, "%000005c2"), Attrs([Attr("c.layout","[signed : 32]"), -Attr("c.data","Top:u32"), Attr("c.type","signed")]), - Var("__libc_start_main_arg2",Imm(32)), LOW(32,Var("R1",Imm(64))), In()), -Arg(Tid(1_475, "%000005c3"), Attrs([Attr("c.layout","**[char : 8]"), -Attr("c.data","Top:u8 ptr ptr"), Attr("c.type","char**")]), - Var("__libc_start_main_arg3",Imm(64)), Var("R2",Imm(64)), Both()), -Arg(Tid(1_476, "%000005c4"), Attrs([Attr("c.layout","*[ : 8]"), -Attr("c.data","{} ptr"), Attr("c.type","void*")]), - Var("__libc_start_main_auxv",Imm(64)), Var("R3",Imm(64)), Both()), -Arg(Tid(1_477, "%000005c5"), Attrs([Attr("c.layout","[signed : 32]"), -Attr("c.data","Top:u32"), Attr("c.type","signed")]), - Var("__libc_start_main_result",Imm(32)), LOW(32,Var("R0",Imm(64))), -Out())]), Blks([Blk(Tid(451, "@__libc_start_main"), - Attrs([Attr("address","0x5C0")]), Phis([]), -Defs([Def(Tid(1_060, "%00000424"), Attrs([Attr("address","0x5C0"), -Attr("insn","adrp x16, #69632")]), Var("R16",Imm(64)), Int(69632,64)), -Def(Tid(1_067, "%0000042b"), Attrs([Attr("address","0x5C4"), -Attr("insn","ldr x17, [x16]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R16",Imm(64)),LittleEndian(),64)), -Def(Tid(1_073, "%00000431"), Attrs([Attr("address","0x5C8"), -Attr("insn","add x16, x16, #0x0")]), Var("R16",Imm(64)), -Var("R16",Imm(64)))]), Jmps([Call(Tid(1_078, "%00000436"), - Attrs([Attr("address","0x5CC"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), Sub(Tid(1_426, "@_fini"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x730")]), - "_fini", Args([Arg(Tid(1_478, "%000005c6"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("_fini_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(31, "@_fini"), - Attrs([Attr("address","0x730")]), Phis([]), Defs([Def(Tid(37, "%00000025"), - Attrs([Attr("address","0x734"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("#0",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(18446744073709551600,64))), -Def(Tid(43, "%0000002b"), Attrs([Attr("address","0x734"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("#0",Imm(64)),Var("R29",Imm(64)),LittleEndian(),64)), -Def(Tid(49, "%00000031"), Attrs([Attr("address","0x734"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("#0",Imm(64)),Int(8,64)),Var("R30",Imm(64)),LittleEndian(),64)), -Def(Tid(53, "%00000035"), Attrs([Attr("address","0x734"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("R31",Imm(64)), -Var("#0",Imm(64))), Def(Tid(59, "%0000003b"), Attrs([Attr("address","0x738"), -Attr("insn","mov x29, sp")]), Var("R29",Imm(64)), Var("R31",Imm(64))), -Def(Tid(66, "%00000042"), Attrs([Attr("address","0x73C"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R29",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(71, "%00000047"), Attrs([Attr("address","0x73C"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R30",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(75, "%0000004b"), Attrs([Attr("address","0x73C"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(16,64)))]), Jmps([Call(Tid(80, "%00000050"), - Attrs([Attr("address","0x740"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), Sub(Tid(1_427, "@_init"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x580")]), - "_init", Args([Arg(Tid(1_479, "%000005c7"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("_init_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(1_255, "@_init"), - Attrs([Attr("address","0x580")]), Phis([]), -Defs([Def(Tid(1_261, "%000004ed"), Attrs([Attr("address","0x584"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("#6",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(18446744073709551600,64))), -Def(Tid(1_267, "%000004f3"), Attrs([Attr("address","0x584"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("#6",Imm(64)),Var("R29",Imm(64)),LittleEndian(),64)), -Def(Tid(1_273, "%000004f9"), Attrs([Attr("address","0x584"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("#6",Imm(64)),Int(8,64)),Var("R30",Imm(64)),LittleEndian(),64)), -Def(Tid(1_277, "%000004fd"), Attrs([Attr("address","0x584"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("R31",Imm(64)), -Var("#6",Imm(64))), Def(Tid(1_283, "%00000503"), - Attrs([Attr("address","0x588"), Attr("insn","mov x29, sp")]), - Var("R29",Imm(64)), Var("R31",Imm(64))), Def(Tid(1_288, "%00000508"), - Attrs([Attr("address","0x58C"), Attr("insn","bl #0xa8")]), - Var("R30",Imm(64)), Int(1424,64))]), Jmps([Call(Tid(1_290, "%0000050a"), - Attrs([Attr("address","0x58C"), Attr("insn","bl #0xa8")]), Int(1,1), -(Direct(Tid(1_432, "@call_weak_fn")),Direct(Tid(1_292, "%0000050c"))))])), -Blk(Tid(1_292, "%0000050c"), Attrs([Attr("address","0x590")]), Phis([]), -Defs([Def(Tid(1_297, "%00000511"), Attrs([Attr("address","0x590"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R29",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(1_302, "%00000516"), Attrs([Attr("address","0x590"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R30",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(1_306, "%0000051a"), Attrs([Attr("address","0x590"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(16,64)))]), Jmps([Call(Tid(1_311, "%0000051f"), - Attrs([Attr("address","0x594"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), Sub(Tid(1_428, "@_start"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x600"), -Attr("stub","()"), Attr("entry-point","()")]), "_start", - Args([Arg(Tid(1_480, "%000005c8"), Attrs([Attr("c.layout","[signed : 32]"), -Attr("c.data","Top:u32"), Attr("c.type","signed")]), - Var("_start_result",Imm(32)), LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(388, "@_start"), Attrs([Attr("address","0x600")]), Phis([]), -Defs([Def(Tid(393, "%00000189"), Attrs([Attr("address","0x604"), -Attr("insn","mov x29, #0x0")]), Var("R29",Imm(64)), Int(0,64)), -Def(Tid(398, "%0000018e"), Attrs([Attr("address","0x608"), -Attr("insn","mov x30, #0x0")]), Var("R30",Imm(64)), Int(0,64)), -Def(Tid(404, "%00000194"), Attrs([Attr("address","0x60C"), -Attr("insn","mov x5, x0")]), Var("R5",Imm(64)), Var("R0",Imm(64))), -Def(Tid(411, "%0000019b"), Attrs([Attr("address","0x610"), -Attr("insn","ldr x1, [sp]")]), Var("R1",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(417, "%000001a1"), Attrs([Attr("address","0x614"), -Attr("insn","add x2, sp, #0x8")]), Var("R2",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(8,64))), Def(Tid(423, "%000001a7"), - Attrs([Attr("address","0x618"), Attr("insn","mov x6, sp")]), - Var("R6",Imm(64)), Var("R31",Imm(64))), Def(Tid(428, "%000001ac"), - Attrs([Attr("address","0x61C"), Attr("insn","adrp x0, #65536")]), - Var("R0",Imm(64)), Int(65536,64)), Def(Tid(435, "%000001b3"), - Attrs([Attr("address","0x620"), Attr("insn","ldr x0, [x0, #0xfd8]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(4056,64)),LittleEndian(),64)), -Def(Tid(440, "%000001b8"), Attrs([Attr("address","0x624"), -Attr("insn","mov x3, #0x0")]), Var("R3",Imm(64)), Int(0,64)), -Def(Tid(445, "%000001bd"), Attrs([Attr("address","0x628"), -Attr("insn","mov x4, #0x0")]), Var("R4",Imm(64)), Int(0,64)), -Def(Tid(450, "%000001c2"), Attrs([Attr("address","0x62C"), -Attr("insn","bl #-0x6c")]), Var("R30",Imm(64)), Int(1584,64))]), -Jmps([Call(Tid(453, "%000001c5"), Attrs([Attr("address","0x62C"), -Attr("insn","bl #-0x6c")]), Int(1,1), -(Direct(Tid(1_425, "@__libc_start_main")),Direct(Tid(455, "%000001c7"))))])), -Blk(Tid(455, "%000001c7"), Attrs([Attr("address","0x630")]), Phis([]), -Defs([Def(Tid(458, "%000001ca"), Attrs([Attr("address","0x630"), -Attr("insn","bl #-0x40")]), Var("R30",Imm(64)), Int(1588,64))]), -Jmps([Call(Tid(461, "%000001cd"), Attrs([Attr("address","0x630"), -Attr("insn","bl #-0x40")]), Int(1,1), -(Direct(Tid(1_431, "@abort")),Direct(Tid(1_463, "%000005b7"))))])), -Blk(Tid(1_463, "%000005b7"), Attrs([]), Phis([]), Defs([]), -Jmps([Call(Tid(1_464, "%000005b8"), Attrs([]), Int(1,1), -(Direct(Tid(1_432, "@call_weak_fn")),))]))])), Sub(Tid(1_431, "@abort"), - Attrs([Attr("noreturn","()"), Attr("c.proto","void (*)(void)"), -Attr("address","0x5F0"), Attr("stub","()")]), "abort", Args([]), -Blks([Blk(Tid(459, "@abort"), Attrs([Attr("address","0x5F0")]), Phis([]), -Defs([Def(Tid(1_126, "%00000466"), Attrs([Attr("address","0x5F0"), -Attr("insn","adrp x16, #69632")]), Var("R16",Imm(64)), Int(69632,64)), -Def(Tid(1_133, "%0000046d"), Attrs([Attr("address","0x5F4"), -Attr("insn","ldr x17, [x16, #0x18]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(24,64)),LittleEndian(),64)), -Def(Tid(1_139, "%00000473"), Attrs([Attr("address","0x5F8"), -Attr("insn","add x16, x16, #0x18")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(24,64)))]), Jmps([Call(Tid(1_144, "%00000478"), - Attrs([Attr("address","0x5FC"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), Sub(Tid(1_432, "@call_weak_fn"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x634")]), - "call_weak_fn", Args([Arg(Tid(1_481, "%000005c9"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("call_weak_fn_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(463, "@call_weak_fn"), - Attrs([Attr("address","0x634")]), Phis([]), Defs([Def(Tid(466, "%000001d2"), - Attrs([Attr("address","0x634"), Attr("insn","adrp x0, #65536")]), - Var("R0",Imm(64)), Int(65536,64)), Def(Tid(473, "%000001d9"), - Attrs([Attr("address","0x638"), Attr("insn","ldr x0, [x0, #0xfd0]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(4048,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(479, "%000001df"), Attrs([Attr("address","0x63C"), -Attr("insn","cbz x0, #0x8")]), EQ(Var("R0",Imm(64)),Int(0,64)), -Direct(Tid(477, "%000001dd"))), Goto(Tid(1_465, "%000005b9"), Attrs([]), - Int(1,1), Direct(Tid(898, "%00000382")))])), Blk(Tid(477, "%000001dd"), - Attrs([Attr("address","0x644")]), Phis([]), Defs([]), -Jmps([Call(Tid(485, "%000001e5"), Attrs([Attr("address","0x644"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))])), -Blk(Tid(898, "%00000382"), Attrs([Attr("address","0x640")]), Phis([]), -Defs([]), Jmps([Goto(Tid(901, "%00000385"), Attrs([Attr("address","0x640"), -Attr("insn","b #-0x60")]), Int(1,1), Direct(Tid(899, "@__gmon_start__")))])), -Blk(Tid(899, "@__gmon_start__"), Attrs([Attr("address","0x5E0")]), Phis([]), -Defs([Def(Tid(1_104, "%00000450"), Attrs([Attr("address","0x5E0"), -Attr("insn","adrp x16, #69632")]), Var("R16",Imm(64)), Int(69632,64)), -Def(Tid(1_111, "%00000457"), Attrs([Attr("address","0x5E4"), -Attr("insn","ldr x17, [x16, #0x10]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(16,64)),LittleEndian(),64)), -Def(Tid(1_117, "%0000045d"), Attrs([Attr("address","0x5E8"), -Attr("insn","add x16, x16, #0x10")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(16,64)))]), Jmps([Call(Tid(1_122, "%00000462"), - Attrs([Attr("address","0x5EC"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), -Sub(Tid(1_434, "@deregister_tm_clones"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x650")]), - "deregister_tm_clones", Args([Arg(Tid(1_482, "%000005ca"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("deregister_tm_clones_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(491, "@deregister_tm_clones"), - Attrs([Attr("address","0x650")]), Phis([]), Defs([Def(Tid(494, "%000001ee"), - Attrs([Attr("address","0x650"), Attr("insn","adrp x0, #69632")]), - Var("R0",Imm(64)), Int(69632,64)), Def(Tid(500, "%000001f4"), - Attrs([Attr("address","0x654"), Attr("insn","add x0, x0, #0x30")]), - Var("R0",Imm(64)), PLUS(Var("R0",Imm(64)),Int(48,64))), -Def(Tid(505, "%000001f9"), Attrs([Attr("address","0x658"), -Attr("insn","adrp x1, #69632")]), Var("R1",Imm(64)), Int(69632,64)), -Def(Tid(511, "%000001ff"), Attrs([Attr("address","0x65C"), -Attr("insn","add x1, x1, #0x30")]), Var("R1",Imm(64)), -PLUS(Var("R1",Imm(64)),Int(48,64))), Def(Tid(517, "%00000205"), - Attrs([Attr("address","0x660"), Attr("insn","cmp x1, x0")]), - Var("#1",Imm(64)), NOT(Var("R0",Imm(64)))), Def(Tid(522, "%0000020a"), - Attrs([Attr("address","0x660"), Attr("insn","cmp x1, x0")]), - Var("#2",Imm(64)), PLUS(Var("R1",Imm(64)),NOT(Var("R0",Imm(64))))), -Def(Tid(528, "%00000210"), Attrs([Attr("address","0x660"), -Attr("insn","cmp x1, x0")]), Var("VF",Imm(1)), -NEQ(SIGNED(65,PLUS(Var("#2",Imm(64)),Int(1,64))),PLUS(PLUS(SIGNED(65,Var("R1",Imm(64))),SIGNED(65,Var("#1",Imm(64)))),Int(1,65)))), -Def(Tid(534, "%00000216"), Attrs([Attr("address","0x660"), -Attr("insn","cmp x1, x0")]), Var("CF",Imm(1)), -NEQ(UNSIGNED(65,PLUS(Var("#2",Imm(64)),Int(1,64))),PLUS(PLUS(UNSIGNED(65,Var("R1",Imm(64))),UNSIGNED(65,Var("#1",Imm(64)))),Int(1,65)))), -Def(Tid(538, "%0000021a"), Attrs([Attr("address","0x660"), -Attr("insn","cmp x1, x0")]), Var("ZF",Imm(1)), -EQ(PLUS(Var("#2",Imm(64)),Int(1,64)),Int(0,64))), Def(Tid(542, "%0000021e"), - Attrs([Attr("address","0x660"), Attr("insn","cmp x1, x0")]), - Var("NF",Imm(1)), Extract(63,63,PLUS(Var("#2",Imm(64)),Int(1,64))))]), -Jmps([Goto(Tid(548, "%00000224"), Attrs([Attr("address","0x664"), -Attr("insn","b.eq #0x18")]), EQ(Var("ZF",Imm(1)),Int(1,1)), -Direct(Tid(546, "%00000222"))), Goto(Tid(1_466, "%000005ba"), Attrs([]), - Int(1,1), Direct(Tid(868, "%00000364")))])), Blk(Tid(868, "%00000364"), - Attrs([Attr("address","0x668")]), Phis([]), Defs([Def(Tid(871, "%00000367"), - Attrs([Attr("address","0x668"), Attr("insn","adrp x1, #65536")]), - Var("R1",Imm(64)), Int(65536,64)), Def(Tid(878, "%0000036e"), - Attrs([Attr("address","0x66C"), Attr("insn","ldr x1, [x1, #0xfc0]")]), - Var("R1",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R1",Imm(64)),Int(4032,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(883, "%00000373"), Attrs([Attr("address","0x670"), -Attr("insn","cbz x1, #0xc")]), EQ(Var("R1",Imm(64)),Int(0,64)), -Direct(Tid(546, "%00000222"))), Goto(Tid(1_467, "%000005bb"), Attrs([]), - Int(1,1), Direct(Tid(887, "%00000377")))])), Blk(Tid(546, "%00000222"), - Attrs([Attr("address","0x67C")]), Phis([]), Defs([]), -Jmps([Call(Tid(554, "%0000022a"), Attrs([Attr("address","0x67C"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))])), -Blk(Tid(887, "%00000377"), Attrs([Attr("address","0x674")]), Phis([]), -Defs([Def(Tid(891, "%0000037b"), Attrs([Attr("address","0x674"), -Attr("insn","mov x16, x1")]), Var("R16",Imm(64)), Var("R1",Imm(64)))]), -Jmps([Call(Tid(896, "%00000380"), Attrs([Attr("address","0x678"), -Attr("insn","br x16")]), Int(1,1), (Indirect(Var("R16",Imm(64))),))]))])), -Sub(Tid(1_437, "@frame_dummy"), Attrs([Attr("c.proto","signed (*)(void)"), -Attr("address","0x710")]), "frame_dummy", Args([Arg(Tid(1_483, "%000005cb"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("frame_dummy_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(706, "@frame_dummy"), - Attrs([Attr("address","0x710")]), Phis([]), Defs([]), -Jmps([Call(Tid(708, "%000002c4"), Attrs([Attr("address","0x710"), -Attr("insn","b #-0x90")]), Int(1,1), -(Direct(Tid(1_439, "@register_tm_clones")),))]))])), Sub(Tid(1_438, "@main"), - Attrs([Attr("c.proto","signed (*)(signed argc, const char** argv)"), -Attr("address","0x714")]), "main", Args([Arg(Tid(1_484, "%000005cc"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("main_argc",Imm(32)), -LOW(32,Var("R0",Imm(64))), In()), Arg(Tid(1_485, "%000005cd"), - Attrs([Attr("c.layout","**[char : 8]"), Attr("c.data","Top:u8 ptr ptr"), -Attr("c.type"," const char**")]), Var("main_argv",Imm(64)), -Var("R1",Imm(64)), Both()), Arg(Tid(1_486, "%000005ce"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("main_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(710, "@main"), - Attrs([Attr("address","0x714")]), Phis([]), Defs([Def(Tid(713, "%000002c9"), - Attrs([Attr("address","0x714"), Attr("insn","adrp x8, #69632")]), - Var("R8",Imm(64)), Int(69632,64)), Def(Tid(718, "%000002ce"), - Attrs([Attr("address","0x718"), Attr("insn","adrp x9, #69632")]), - Var("R9",Imm(64)), Int(69632,64)), Def(Tid(725, "%000002d5"), - Attrs([Attr("address","0x71C"), Attr("insn","ldr w8, [x8, #0x38]")]), - Var("R8",Imm(64)), -UNSIGNED(64,Load(Var("mem",Mem(64,8)),PLUS(Var("R8",Imm(64)),Int(56,64)),LittleEndian(),32))), -Def(Tid(732, "%000002dc"), Attrs([Attr("address","0x720"), -Attr("insn","ldr w9, [x9, #0x34]")]), Var("R9",Imm(64)), -UNSIGNED(64,Load(Var("mem",Mem(64,8)),PLUS(Var("R9",Imm(64)),Int(52,64)),LittleEndian(),32))), -Def(Tid(738, "%000002e2"), Attrs([Attr("address","0x724"), -Attr("insn","cmp w8, #0x0")]), Var("#4",Imm(32)), -PLUS(Extract(31,0,Var("R8",Imm(64))),Int(4294967295,32))), -Def(Tid(743, "%000002e7"), Attrs([Attr("address","0x724"), -Attr("insn","cmp w8, #0x0")]), Var("VF",Imm(1)), -NEQ(SIGNED(33,PLUS(Var("#4",Imm(32)),Int(1,32))),PLUS(SIGNED(33,Extract(31,0,Var("R8",Imm(64)))),Int(0,33)))), -Def(Tid(748, "%000002ec"), Attrs([Attr("address","0x724"), -Attr("insn","cmp w8, #0x0")]), Var("CF",Imm(1)), -NEQ(UNSIGNED(33,PLUS(Var("#4",Imm(32)),Int(1,32))),PLUS(UNSIGNED(33,Extract(31,0,Var("R8",Imm(64)))),Int(4294967296,33)))), -Def(Tid(752, "%000002f0"), Attrs([Attr("address","0x724"), -Attr("insn","cmp w8, #0x0")]), Var("ZF",Imm(1)), -EQ(PLUS(Var("#4",Imm(32)),Int(1,32)),Int(0,32))), Def(Tid(756, "%000002f4"), - Attrs([Attr("address","0x724"), Attr("insn","cmp w8, #0x0")]), - Var("NF",Imm(1)), Extract(31,31,PLUS(Var("#4",Imm(32)),Int(1,32))))]), -Jmps([Goto(Tid(769, "%00000301"), Attrs([Attr("address","0x728"), -Attr("insn","csel w0, w9, wzr, eq")]), EQ(Var("ZF",Imm(1)),Int(1,1)), -Direct(Tid(762, "%000002fa"))), Goto(Tid(770, "%00000302"), - Attrs([Attr("address","0x728"), Attr("insn","csel w0, w9, wzr, eq")]), - Int(1,1), Direct(Tid(765, "%000002fd")))])), Blk(Tid(765, "%000002fd"), - Attrs([]), Phis([]), Defs([Def(Tid(766, "%000002fe"), - Attrs([Attr("address","0x728"), Attr("insn","csel w0, w9, wzr, eq")]), - Var("R0",Imm(64)), Int(0,64))]), Jmps([Goto(Tid(772, "%00000304"), - Attrs([Attr("address","0x728"), Attr("insn","csel w0, w9, wzr, eq")]), - Int(1,1), Direct(Tid(768, "%00000300")))])), Blk(Tid(762, "%000002fa"), - Attrs([]), Phis([]), Defs([Def(Tid(763, "%000002fb"), - Attrs([Attr("address","0x728"), Attr("insn","csel w0, w9, wzr, eq")]), - Var("R0",Imm(64)), UNSIGNED(64,Extract(31,0,Var("R9",Imm(64)))))]), -Jmps([Goto(Tid(771, "%00000303"), Attrs([Attr("address","0x728"), -Attr("insn","csel w0, w9, wzr, eq")]), Int(1,1), -Direct(Tid(768, "%00000300")))])), Blk(Tid(768, "%00000300"), Attrs([]), - Phis([]), Defs([]), Jmps([Call(Tid(777, "%00000309"), - Attrs([Attr("address","0x72C"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), -Sub(Tid(1_439, "@register_tm_clones"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x680")]), - "register_tm_clones", Args([Arg(Tid(1_487, "%000005cf"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("register_tm_clones_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(556, "@register_tm_clones"), Attrs([Attr("address","0x680")]), - Phis([]), Defs([Def(Tid(559, "%0000022f"), Attrs([Attr("address","0x680"), -Attr("insn","adrp x0, #69632")]), Var("R0",Imm(64)), Int(69632,64)), -Def(Tid(565, "%00000235"), Attrs([Attr("address","0x684"), -Attr("insn","add x0, x0, #0x30")]), Var("R0",Imm(64)), -PLUS(Var("R0",Imm(64)),Int(48,64))), Def(Tid(570, "%0000023a"), - Attrs([Attr("address","0x688"), Attr("insn","adrp x1, #69632")]), - Var("R1",Imm(64)), Int(69632,64)), Def(Tid(576, "%00000240"), - Attrs([Attr("address","0x68C"), Attr("insn","add x1, x1, #0x30")]), - Var("R1",Imm(64)), PLUS(Var("R1",Imm(64)),Int(48,64))), -Def(Tid(583, "%00000247"), Attrs([Attr("address","0x690"), -Attr("insn","sub x1, x1, x0")]), Var("R1",Imm(64)), -PLUS(PLUS(Var("R1",Imm(64)),NOT(Var("R0",Imm(64)))),Int(1,64))), -Def(Tid(589, "%0000024d"), Attrs([Attr("address","0x694"), -Attr("insn","lsr x2, x1, #63")]), Var("R2",Imm(64)), -Concat(Int(0,63),Extract(63,63,Var("R1",Imm(64))))), -Def(Tid(596, "%00000254"), Attrs([Attr("address","0x698"), -Attr("insn","add x1, x2, x1, asr #3")]), Var("R1",Imm(64)), -PLUS(Var("R2",Imm(64)),ARSHIFT(Var("R1",Imm(64)),Int(3,3)))), -Def(Tid(602, "%0000025a"), Attrs([Attr("address","0x69C"), -Attr("insn","asr x1, x1, #1")]), Var("R1",Imm(64)), -SIGNED(64,Extract(63,1,Var("R1",Imm(64)))))]), -Jmps([Goto(Tid(608, "%00000260"), Attrs([Attr("address","0x6A0"), -Attr("insn","cbz x1, #0x18")]), EQ(Var("R1",Imm(64)),Int(0,64)), -Direct(Tid(606, "%0000025e"))), Goto(Tid(1_468, "%000005bc"), Attrs([]), - Int(1,1), Direct(Tid(838, "%00000346")))])), Blk(Tid(838, "%00000346"), - Attrs([Attr("address","0x6A4")]), Phis([]), Defs([Def(Tid(841, "%00000349"), - Attrs([Attr("address","0x6A4"), Attr("insn","adrp x2, #65536")]), - Var("R2",Imm(64)), Int(65536,64)), Def(Tid(848, "%00000350"), - Attrs([Attr("address","0x6A8"), Attr("insn","ldr x2, [x2, #0xfe0]")]), - Var("R2",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R2",Imm(64)),Int(4064,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(853, "%00000355"), Attrs([Attr("address","0x6AC"), -Attr("insn","cbz x2, #0xc")]), EQ(Var("R2",Imm(64)),Int(0,64)), -Direct(Tid(606, "%0000025e"))), Goto(Tid(1_469, "%000005bd"), Attrs([]), - Int(1,1), Direct(Tid(857, "%00000359")))])), Blk(Tid(606, "%0000025e"), - Attrs([Attr("address","0x6B8")]), Phis([]), Defs([]), -Jmps([Call(Tid(614, "%00000266"), Attrs([Attr("address","0x6B8"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))])), -Blk(Tid(857, "%00000359"), Attrs([Attr("address","0x6B0")]), Phis([]), -Defs([Def(Tid(861, "%0000035d"), Attrs([Attr("address","0x6B0"), -Attr("insn","mov x16, x2")]), Var("R16",Imm(64)), Var("R2",Imm(64)))]), -Jmps([Call(Tid(866, "%00000362"), Attrs([Attr("address","0x6B4"), -Attr("insn","br x16")]), Int(1,1), -(Indirect(Var("R16",Imm(64))),))]))]))]))) \ No newline at end of file diff --git a/src/test/correct/basic_sec_policy_read/clang_O2/basic_sec_policy_read.bir b/src/test/correct/basic_sec_policy_read/clang_O2/basic_sec_policy_read.bir deleted file mode 100644 index 78609a9ee..000000000 --- a/src/test/correct/basic_sec_policy_read/clang_O2/basic_sec_policy_read.bir +++ /dev/null @@ -1,244 +0,0 @@ -000005be: program -0000058c: sub __cxa_finalize(__cxa_finalize_result) -000005bf: __cxa_finalize_result :: out u32 = low:32[R0] - -00000342: -0000043a: R16 := 0x11000 -00000441: R17 := mem[R16 + 8, el]:u64 -00000447: R16 := R16 + 8 -0000044c: call R17 with noreturn - -0000058d: sub __do_global_dtors_aux(__do_global_dtors_aux_result) -000005c0: __do_global_dtors_aux_result :: out u32 = low:32[R0] - -0000026a: -0000026e: #3 := R31 - 0x20 -00000274: mem := mem with [#3, el]:u64 <- R29 -0000027a: mem := mem with [#3 + 8, el]:u64 <- R30 -0000027e: R31 := #3 -00000284: R29 := R31 -0000028c: mem := mem with [R31 + 0x10, el]:u64 <- R19 -00000291: R19 := 0x11000 -00000298: R0 := pad:64[mem[R19 + 0x30]] -0000029f: when 31:0[R0] <> 0 goto %0000029d -000005b4: goto %0000030b - -0000030b: -0000030e: R0 := 0x10000 -00000315: R0 := mem[R0 + 0xFC8, el]:u64 -0000031b: when R0 = 0 goto %00000319 -000005b5: goto %00000332 - -00000332: -00000335: R0 := 0x11000 -0000033c: R0 := mem[R0 + 0x28, el]:u64 -00000341: R30 := 0x6F0 -00000344: call @__cxa_finalize with return %00000319 - -00000319: -00000321: R30 := 0x6F4 -00000323: call @deregister_tm_clones with return %00000325 - -00000325: -00000328: R0 := 1 -00000330: mem := mem with [R19 + 0x30] <- 7:0[R0] -000005b6: goto %0000029d - -0000029d: -000002a7: R19 := mem[R31 + 0x10, el]:u64 -000002ae: R29 := mem[R31, el]:u64 -000002b3: R30 := mem[R31 + 8, el]:u64 -000002b7: R31 := R31 + 0x20 -000002bc: call R30 with noreturn - -00000591: sub __libc_start_main(__libc_start_main_main, __libc_start_main_arg2, __libc_start_main_arg3, __libc_start_main_auxv, __libc_start_main_result) -000005c1: __libc_start_main_main :: in u64 = R0 -000005c2: __libc_start_main_arg2 :: in u32 = low:32[R1] -000005c3: __libc_start_main_arg3 :: in out u64 = R2 -000005c4: __libc_start_main_auxv :: in out u64 = R3 -000005c5: __libc_start_main_result :: out u32 = low:32[R0] - -000001c3: -00000424: R16 := 0x11000 -0000042b: R17 := mem[R16, el]:u64 -00000431: R16 := R16 -00000436: call R17 with noreturn - -00000592: sub _fini(_fini_result) -000005c6: _fini_result :: out u32 = low:32[R0] - -0000001f: -00000025: #0 := R31 - 0x10 -0000002b: mem := mem with [#0, el]:u64 <- R29 -00000031: mem := mem with [#0 + 8, el]:u64 <- R30 -00000035: R31 := #0 -0000003b: R29 := R31 -00000042: R29 := mem[R31, el]:u64 -00000047: R30 := mem[R31 + 8, el]:u64 -0000004b: R31 := R31 + 0x10 -00000050: call R30 with noreturn - -00000593: sub _init(_init_result) -000005c7: _init_result :: out u32 = low:32[R0] - -000004e7: -000004ed: #6 := R31 - 0x10 -000004f3: mem := mem with [#6, el]:u64 <- R29 -000004f9: mem := mem with [#6 + 8, el]:u64 <- R30 -000004fd: R31 := #6 -00000503: R29 := R31 -00000508: R30 := 0x590 -0000050a: call @call_weak_fn with return %0000050c - -0000050c: -00000511: R29 := mem[R31, el]:u64 -00000516: R30 := mem[R31 + 8, el]:u64 -0000051a: R31 := R31 + 0x10 -0000051f: call R30 with noreturn - -00000594: sub _start(_start_result) -000005c8: _start_result :: out u32 = low:32[R0] - -00000184: -00000189: R29 := 0 -0000018e: R30 := 0 -00000194: R5 := R0 -0000019b: R1 := mem[R31, el]:u64 -000001a1: R2 := R31 + 8 -000001a7: R6 := R31 -000001ac: R0 := 0x10000 -000001b3: R0 := mem[R0 + 0xFD8, el]:u64 -000001b8: R3 := 0 -000001bd: R4 := 0 -000001c2: R30 := 0x630 -000001c5: call @__libc_start_main with return %000001c7 - -000001c7: -000001ca: R30 := 0x634 -000001cd: call @abort with return %000005b7 - -000005b7: -000005b8: call @call_weak_fn with noreturn - -00000597: sub abort() - - -000001cb: -00000466: R16 := 0x11000 -0000046d: R17 := mem[R16 + 0x18, el]:u64 -00000473: R16 := R16 + 0x18 -00000478: call R17 with noreturn - -00000598: sub call_weak_fn(call_weak_fn_result) -000005c9: call_weak_fn_result :: out u32 = low:32[R0] - -000001cf: -000001d2: R0 := 0x10000 -000001d9: R0 := mem[R0 + 0xFD0, el]:u64 -000001df: when R0 = 0 goto %000001dd -000005b9: goto %00000382 - -000001dd: -000001e5: call R30 with noreturn - -00000382: -00000385: goto @__gmon_start__ - -00000383: -00000450: R16 := 0x11000 -00000457: R17 := mem[R16 + 0x10, el]:u64 -0000045d: R16 := R16 + 0x10 -00000462: call R17 with noreturn - -0000059a: sub deregister_tm_clones(deregister_tm_clones_result) -000005ca: deregister_tm_clones_result :: out u32 = low:32[R0] - -000001eb: -000001ee: R0 := 0x11000 -000001f4: R0 := R0 + 0x30 -000001f9: R1 := 0x11000 -000001ff: R1 := R1 + 0x30 -00000205: #1 := ~R0 -0000020a: #2 := R1 + ~R0 -00000210: VF := extend:65[#2 + 1] <> extend:65[R1] + extend:65[#1] + 1 -00000216: CF := pad:65[#2 + 1] <> pad:65[R1] + pad:65[#1] + 1 -0000021a: ZF := #2 + 1 = 0 -0000021e: NF := 63:63[#2 + 1] -00000224: when ZF goto %00000222 -000005ba: goto %00000364 - -00000364: -00000367: R1 := 0x10000 -0000036e: R1 := mem[R1 + 0xFC0, el]:u64 -00000373: when R1 = 0 goto %00000222 -000005bb: goto %00000377 - -00000222: -0000022a: call R30 with noreturn - -00000377: -0000037b: R16 := R1 -00000380: call R16 with noreturn - -0000059d: sub frame_dummy(frame_dummy_result) -000005cb: frame_dummy_result :: out u32 = low:32[R0] - -000002c2: -000002c4: call @register_tm_clones with noreturn - -0000059e: sub main(main_argc, main_argv, main_result) -000005cc: main_argc :: in u32 = low:32[R0] -000005cd: main_argv :: in out u64 = R1 -000005ce: main_result :: out u32 = low:32[R0] - -000002c6: -000002c9: R8 := 0x11000 -000002ce: R9 := 0x11000 -000002d5: R8 := pad:64[mem[R8 + 0x38, el]:u32] -000002dc: R9 := pad:64[mem[R9 + 0x34, el]:u32] -000002e2: #4 := 31:0[R8] - 1 -000002e7: VF := extend:33[#4 + 1] <> extend:33[31:0[R8]] + 0 -000002ec: CF := pad:33[#4 + 1] <> pad:33[31:0[R8]] - 0x100000000 -000002f0: ZF := #4 + 1 = 0 -000002f4: NF := 31:31[#4 + 1] -00000301: when ZF goto %000002fa -00000302: goto %000002fd - -000002fd: -000002fe: R0 := 0 -00000304: goto %00000300 - -000002fa: -000002fb: R0 := pad:64[31:0[R9]] -00000303: goto %00000300 - -00000300: -00000309: call R30 with noreturn - -0000059f: sub register_tm_clones(register_tm_clones_result) -000005cf: register_tm_clones_result :: out u32 = low:32[R0] - -0000022c: -0000022f: R0 := 0x11000 -00000235: R0 := R0 + 0x30 -0000023a: R1 := 0x11000 -00000240: R1 := R1 + 0x30 -00000247: R1 := R1 + ~R0 + 1 -0000024d: R2 := 0.63:63[R1] -00000254: R1 := R2 + (R1 ~>> 3) -0000025a: R1 := extend:64[63:1[R1]] -00000260: when R1 = 0 goto %0000025e -000005bc: goto %00000346 - -00000346: -00000349: R2 := 0x10000 -00000350: R2 := mem[R2 + 0xFE0, el]:u64 -00000355: when R2 = 0 goto %0000025e -000005bd: goto %00000359 - -0000025e: -00000266: call R30 with noreturn - -00000359: -0000035d: R16 := R2 -00000362: call R16 with noreturn diff --git a/src/test/correct/basic_sec_policy_read/clang_O2/basic_sec_policy_read.expected b/src/test/correct/basic_sec_policy_read/clang_O2/basic_sec_policy_read.expected index 4c50ac23d..45ed79911 100644 --- a/src/test/correct/basic_sec_policy_read/clang_O2/basic_sec_policy_read.expected +++ b/src/test/correct/basic_sec_policy_read/clang_O2/basic_sec_policy_read.expected @@ -15,24 +15,24 @@ var {:extern} VF: bv1; var {:extern} ZF: bv1; var {:extern} mem: [bv64]bv8; const {:extern} $x_addr: bv64; -axiom ($x_addr == 69684bv64); +axiom ($x_addr == 131092bv64); const {:extern} $z_addr: bv64; -axiom ($z_addr == 69688bv64); +axiom ($z_addr == 131096bv64); function {:extern} L(mem$in: [bv64]bv8, index: bv64) returns (bool) { (if (index == $z_addr) then true else (if (index == $x_addr) then (memory_load32_le(mem$in, $z_addr) == 0bv32) else false)) } -function {:extern} {:bvbuiltin "bvadd"} bvadd32(bv32, bv32) returns (bv32); -function {:extern} {:bvbuiltin "bvadd"} bvadd33(bv33, bv33) returns (bv33); function {:extern} {:bvbuiltin "bvadd"} bvadd64(bv64, bv64) returns (bv64); function {:extern} {:bvbuiltin "bvcomp"} bvcomp1(bv1, bv1) returns (bv1); function {:extern} {:bvbuiltin "bvcomp"} bvcomp32(bv32, bv32) returns (bv1); -function {:extern} {:bvbuiltin "bvcomp"} bvcomp33(bv33, bv33) returns (bv1); -function {:extern} {:bvbuiltin "bvnot"} bvnot1(bv1) returns (bv1); function {:extern} gamma_load32(gammaMap: [bv64]bool, index: bv64) returns (bool) { (gammaMap[bvadd64(index, 3bv64)] && (gammaMap[bvadd64(index, 2bv64)] && (gammaMap[bvadd64(index, 1bv64)] && gammaMap[index]))) } +function {:extern} gamma_load64(gammaMap: [bv64]bool, index: bv64) returns (bool) { + (gammaMap[bvadd64(index, 7bv64)] && (gammaMap[bvadd64(index, 6bv64)] && (gammaMap[bvadd64(index, 5bv64)] && (gammaMap[bvadd64(index, 4bv64)] && (gammaMap[bvadd64(index, 3bv64)] && (gammaMap[bvadd64(index, 2bv64)] && (gammaMap[bvadd64(index, 1bv64)] && gammaMap[index]))))))) +} + function {:extern} memory_load32_le(memory: [bv64]bv8, index: bv64) returns (bv32) { (memory[bvadd64(index, 3bv64)] ++ (memory[bvadd64(index, 2bv64)] ++ (memory[bvadd64(index, 1bv64)] ++ memory[index]))) } @@ -41,18 +41,18 @@ function {:extern} memory_load64_le(memory: [bv64]bv8, index: bv64) returns (bv6 (memory[bvadd64(index, 7bv64)] ++ (memory[bvadd64(index, 6bv64)] ++ (memory[bvadd64(index, 5bv64)] ++ (memory[bvadd64(index, 4bv64)] ++ (memory[bvadd64(index, 3bv64)] ++ (memory[bvadd64(index, 2bv64)] ++ (memory[bvadd64(index, 1bv64)] ++ memory[index]))))))) } -function {:extern} {:bvbuiltin "sign_extend 1"} sign_extend1_32(bv32) returns (bv33); -function {:extern} {:bvbuiltin "zero_extend 1"} zero_extend1_32(bv32) returns (bv33); function {:extern} {:bvbuiltin "zero_extend 32"} zero_extend32_32(bv32) returns (bv64); procedure {:extern} rely(); modifies Gamma_mem, mem; ensures (forall i: bv64 :: (((mem[i] == old(mem[i])) ==> (Gamma_mem[i] == old(Gamma_mem[i]))))); ensures ((old(memory_load32_le(mem, $z_addr)) != 0bv32) ==> (memory_load32_le(mem, $z_addr) != 0bv32)); - free ensures (memory_load32_le(mem, 1860bv64) == 131073bv32); - free ensures (memory_load64_le(mem, 69064bv64) == 1808bv64); - free ensures (memory_load64_le(mem, 69072bv64) == 1728bv64); - free ensures (memory_load64_le(mem, 69592bv64) == 1812bv64); - free ensures (memory_load64_le(mem, 69672bv64) == 69672bv64); + free ensures (memory_load32_le(mem, 2316bv64) == 131073bv32); + free ensures (memory_load64_le(mem, 130424bv64) == 2256bv64); + free ensures (memory_load64_le(mem, 130432bv64) == 2176bv64); + free ensures (memory_load64_le(mem, 131032bv64) == 131096bv64); + free ensures (memory_load64_le(mem, 131040bv64) == 131092bv64); + free ensures (memory_load64_le(mem, 131056bv64) == 2260bv64); + free ensures (memory_load64_le(mem, 131080bv64) == 131080bv64); procedure {:extern} rely_transitive(); modifies Gamma_mem, mem; @@ -79,67 +79,78 @@ implementation {:extern} guarantee_reflexive() assert (memory_load32_le(mem, $z_addr) == memory_load32_le(mem, $z_addr)); } -procedure main_1812(); +procedure main(); modifies CF, Gamma_CF, Gamma_NF, Gamma_R0, Gamma_R8, Gamma_R9, Gamma_VF, Gamma_ZF, Gamma_mem, NF, R0, R8, R9, VF, ZF, mem; - free requires (memory_load64_le(mem, 69664bv64) == 0bv64); - free requires (memory_load64_le(mem, 69672bv64) == 69672bv64); - free requires (memory_load32_le(mem, 1860bv64) == 131073bv32); - free requires (memory_load64_le(mem, 69064bv64) == 1808bv64); - free requires (memory_load64_le(mem, 69072bv64) == 1728bv64); - free requires (memory_load64_le(mem, 69592bv64) == 1812bv64); - free requires (memory_load64_le(mem, 69672bv64) == 69672bv64); - free ensures (memory_load32_le(mem, 1860bv64) == 131073bv32); - free ensures (memory_load64_le(mem, 69064bv64) == 1808bv64); - free ensures (memory_load64_le(mem, 69072bv64) == 1728bv64); - free ensures (memory_load64_le(mem, 69592bv64) == 1812bv64); - free ensures (memory_load64_le(mem, 69672bv64) == 69672bv64); + free requires (memory_load64_le(mem, 131072bv64) == 0bv64); + free requires (memory_load64_le(mem, 131080bv64) == 131080bv64); + free requires (memory_load32_le(mem, 2316bv64) == 131073bv32); + free requires (memory_load64_le(mem, 130424bv64) == 2256bv64); + free requires (memory_load64_le(mem, 130432bv64) == 2176bv64); + free requires (memory_load64_le(mem, 131032bv64) == 131096bv64); + free requires (memory_load64_le(mem, 131040bv64) == 131092bv64); + free requires (memory_load64_le(mem, 131056bv64) == 2260bv64); + free requires (memory_load64_le(mem, 131080bv64) == 131080bv64); + free ensures (memory_load32_le(mem, 2316bv64) == 131073bv32); + free ensures (memory_load64_le(mem, 130424bv64) == 2256bv64); + free ensures (memory_load64_le(mem, 130432bv64) == 2176bv64); + free ensures (memory_load64_le(mem, 131032bv64) == 131096bv64); + free ensures (memory_load64_le(mem, 131040bv64) == 131092bv64); + free ensures (memory_load64_le(mem, 131056bv64) == 2260bv64); + free ensures (memory_load64_le(mem, 131080bv64) == 131080bv64); -implementation main_1812() +implementation main() { - var #4: bv32; - var Gamma_#4: bool; - var Gamma_load18: bool; - var Gamma_load19: bool; - var load18: bv32; - var load19: bv32; + var $load$18: bv64; + var $load$19: bv64; + var $load$20: bv32; + var $load$21: bv32; + var Gamma_$load$18: bool; + var Gamma_$load$19: bool; + var Gamma_$load$20: bool; + var Gamma_$load$21: bool; lmain: assume {:captureState "lmain"} true; - R8, Gamma_R8 := 69632bv64, true; - R9, Gamma_R9 := 69632bv64, true; + R8, Gamma_R8 := 126976bv64, true; + R9, Gamma_R9 := 126976bv64, true; + call rely(); + $load$18, Gamma_$load$18 := memory_load64_le(mem, bvadd64(R8, 4056bv64)), (gamma_load64(Gamma_mem, bvadd64(R8, 4056bv64)) || L(mem, bvadd64(R8, 4056bv64))); + R8, Gamma_R8 := $load$18, Gamma_$load$18; + call rely(); + $load$19, Gamma_$load$19 := memory_load64_le(mem, bvadd64(R9, 4064bv64)), (gamma_load64(Gamma_mem, bvadd64(R9, 4064bv64)) || L(mem, bvadd64(R9, 4064bv64))); + R9, Gamma_R9 := $load$19, Gamma_$load$19; call rely(); - load18, Gamma_load18 := memory_load32_le(mem, bvadd64(R8, 56bv64)), (gamma_load32(Gamma_mem, bvadd64(R8, 56bv64)) || L(mem, bvadd64(R8, 56bv64))); - R8, Gamma_R8 := zero_extend32_32(load18), Gamma_load18; + $load$20, Gamma_$load$20 := memory_load32_le(mem, R8), (gamma_load32(Gamma_mem, R8) || L(mem, R8)); + R8, Gamma_R8 := zero_extend32_32($load$20), Gamma_$load$20; call rely(); - load19, Gamma_load19 := memory_load32_le(mem, bvadd64(R9, 52bv64)), (gamma_load32(Gamma_mem, bvadd64(R9, 52bv64)) || L(mem, bvadd64(R9, 52bv64))); - R9, Gamma_R9 := zero_extend32_32(load19), Gamma_load19; - #4, Gamma_#4 := bvadd32(R8[32:0], 4294967295bv32), Gamma_R8; - VF, Gamma_VF := bvnot1(bvcomp33(sign_extend1_32(bvadd32(#4, 1bv32)), bvadd33(sign_extend1_32(R8[32:0]), 0bv33))), (Gamma_R8 && Gamma_#4); - CF, Gamma_CF := bvnot1(bvcomp33(zero_extend1_32(bvadd32(#4, 1bv32)), bvadd33(zero_extend1_32(R8[32:0]), 4294967296bv33))), (Gamma_R8 && Gamma_#4); - ZF, Gamma_ZF := bvcomp32(bvadd32(#4, 1bv32), 0bv32), Gamma_#4; - NF, Gamma_NF := bvadd32(#4, 1bv32)[32:31], Gamma_#4; + $load$21, Gamma_$load$21 := memory_load32_le(mem, R9), (gamma_load32(Gamma_mem, R9) || L(mem, R9)); + R9, Gamma_R9 := zero_extend32_32($load$21), Gamma_$load$21; + VF, Gamma_VF := 0bv1, true; + CF, Gamma_CF := 1bv1, true; + ZF, Gamma_ZF := bvcomp32(R8[32:0], 0bv32), Gamma_R8; + NF, Gamma_NF := R8[32:31], Gamma_R8; assert Gamma_ZF; - goto lmain_goto_l000002fa, lmain_goto_l000002fd; - lmain_goto_l000002fd: - assume {:captureState "lmain_goto_l000002fd"} true; - assume (bvcomp1(ZF, 1bv1) == 0bv1); + goto lmain_goto_l000002a8, lmain_goto_l000002b0; + l000002b0: + assume {:captureState "l000002b0"} true; R0, Gamma_R0 := 0bv64, true; - goto l000002fd; - l000002fd: - assume {:captureState "l000002fd"} true; - goto l00000300; - lmain_goto_l000002fa: - assume {:captureState "lmain_goto_l000002fa"} true; - assume (bvcomp1(ZF, 1bv1) != 0bv1); + goto l000002bc; + l000002a8: + assume {:captureState "l000002a8"} true; R0, Gamma_R0 := zero_extend32_32(R9[32:0]), Gamma_R9; - goto l000002fa; - l000002fa: - assume {:captureState "l000002fa"} true; - goto l00000300; - l00000300: - assume {:captureState "l00000300"} true; - goto main_1812_basil_return; - main_1812_basil_return: - assume {:captureState "main_1812_basil_return"} true; + goto l000002bc; + l000002bc: + assume {:captureState "l000002bc"} true; + goto main_basil_return; + lmain_goto_l000002a8: + assume {:captureState "lmain_goto_l000002a8"} true; + assume (bvcomp1(ZF, 1bv1) != 0bv1); + goto l000002a8; + lmain_goto_l000002b0: + assume {:captureState "lmain_goto_l000002b0"} true; + assume (bvcomp1(ZF, 1bv1) == 0bv1); + goto l000002b0; + main_basil_return: + assume {:captureState "main_basil_return"} true; return; } diff --git a/src/test/correct/basic_sec_policy_read/clang_O2/basic_sec_policy_read.gts b/src/test/correct/basic_sec_policy_read/clang_O2/basic_sec_policy_read.gts deleted file mode 100644 index 4591e33ce..000000000 Binary files a/src/test/correct/basic_sec_policy_read/clang_O2/basic_sec_policy_read.gts and /dev/null differ diff --git a/src/test/correct/basic_sec_policy_read/clang_O2/basic_sec_policy_read.md5sum b/src/test/correct/basic_sec_policy_read/clang_O2/basic_sec_policy_read.md5sum new file mode 100644 index 000000000..9309430fc --- /dev/null +++ b/src/test/correct/basic_sec_policy_read/clang_O2/basic_sec_policy_read.md5sum @@ -0,0 +1,5 @@ +21c801ccfa936efe10b5967d624bad1c correct/basic_sec_policy_read/clang_O2/a.out +8c49cc8686de1d7cdf3598ac0fe14977 correct/basic_sec_policy_read/clang_O2/basic_sec_policy_read.adt +3995fe563889cb172824014afb4927cc correct/basic_sec_policy_read/clang_O2/basic_sec_policy_read.bir +9081b30b8fbf35666935c806a24ca881 correct/basic_sec_policy_read/clang_O2/basic_sec_policy_read.relf +83292e07cd983b8552d65a43d09fdeef correct/basic_sec_policy_read/clang_O2/basic_sec_policy_read.gts diff --git a/src/test/correct/basic_sec_policy_read/clang_O2/basic_sec_policy_read.relf b/src/test/correct/basic_sec_policy_read/clang_O2/basic_sec_policy_read.relf deleted file mode 100644 index b36a1a900..000000000 --- a/src/test/correct/basic_sec_policy_read/clang_O2/basic_sec_policy_read.relf +++ /dev/null @@ -1,124 +0,0 @@ - -Relocation section '.rela.dyn' at offset 0x460 contains 8 entries: - Offset Info Type Symbol's Value Symbol's Name + Addend -0000000000010dc8 0000000000000403 R_AARCH64_RELATIVE 710 -0000000000010dd0 0000000000000403 R_AARCH64_RELATIVE 6c0 -0000000000010fd8 0000000000000403 R_AARCH64_RELATIVE 714 -0000000000011028 0000000000000403 R_AARCH64_RELATIVE 11028 -0000000000010fc0 0000000400000401 R_AARCH64_GLOB_DAT 0000000000000000 _ITM_deregisterTMCloneTable + 0 -0000000000010fc8 0000000500000401 R_AARCH64_GLOB_DAT 0000000000000000 __cxa_finalize@GLIBC_2.17 + 0 -0000000000010fd0 0000000600000401 R_AARCH64_GLOB_DAT 0000000000000000 __gmon_start__ + 0 -0000000000010fe0 0000000800000401 R_AARCH64_GLOB_DAT 0000000000000000 _ITM_registerTMCloneTable + 0 - -Relocation section '.rela.plt' at offset 0x520 contains 4 entries: - Offset Info Type Symbol's Value Symbol's Name + Addend -0000000000011000 0000000300000402 R_AARCH64_JUMP_SLOT 0000000000000000 __libc_start_main@GLIBC_2.34 + 0 -0000000000011008 0000000500000402 R_AARCH64_JUMP_SLOT 0000000000000000 __cxa_finalize@GLIBC_2.17 + 0 -0000000000011010 0000000600000402 R_AARCH64_JUMP_SLOT 0000000000000000 __gmon_start__ + 0 -0000000000011018 0000000700000402 R_AARCH64_JUMP_SLOT 0000000000000000 abort@GLIBC_2.17 + 0 - -Symbol table '.dynsym' contains 9 entries: - Num: Value Size Type Bind Vis Ndx Name - 0: 0000000000000000 0 NOTYPE LOCAL DEFAULT UND - 1: 0000000000000580 0 SECTION LOCAL DEFAULT 11 .init - 2: 0000000000011020 0 SECTION LOCAL DEFAULT 23 .data - 3: 0000000000000000 0 FUNC GLOBAL DEFAULT UND __libc_start_main@GLIBC_2.34 (2) - 4: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_deregisterTMCloneTable - 5: 0000000000000000 0 FUNC WEAK DEFAULT UND __cxa_finalize@GLIBC_2.17 (3) - 6: 0000000000000000 0 NOTYPE WEAK DEFAULT UND __gmon_start__ - 7: 0000000000000000 0 FUNC GLOBAL DEFAULT UND abort@GLIBC_2.17 (3) - 8: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_registerTMCloneTable - -Symbol table '.symtab' contains 91 entries: - Num: Value Size Type Bind Vis Ndx Name - 0: 0000000000000000 0 NOTYPE LOCAL DEFAULT UND - 1: 0000000000000238 0 SECTION LOCAL DEFAULT 1 .interp - 2: 0000000000000254 0 SECTION LOCAL DEFAULT 2 .note.gnu.build-id - 3: 0000000000000278 0 SECTION LOCAL DEFAULT 3 .note.ABI-tag - 4: 0000000000000298 0 SECTION LOCAL DEFAULT 4 .gnu.hash - 5: 00000000000002b8 0 SECTION LOCAL DEFAULT 5 .dynsym - 6: 0000000000000390 0 SECTION LOCAL DEFAULT 6 .dynstr - 7: 000000000000041e 0 SECTION LOCAL DEFAULT 7 .gnu.version - 8: 0000000000000430 0 SECTION LOCAL DEFAULT 8 .gnu.version_r - 9: 0000000000000460 0 SECTION LOCAL DEFAULT 9 .rela.dyn - 10: 0000000000000520 0 SECTION LOCAL DEFAULT 10 .rela.plt - 11: 0000000000000580 0 SECTION LOCAL DEFAULT 11 .init - 12: 00000000000005a0 0 SECTION LOCAL DEFAULT 12 .plt - 13: 0000000000000600 0 SECTION LOCAL DEFAULT 13 .text - 14: 0000000000000730 0 SECTION LOCAL DEFAULT 14 .fini - 15: 0000000000000744 0 SECTION LOCAL DEFAULT 15 .rodata - 16: 0000000000000748 0 SECTION LOCAL DEFAULT 16 .eh_frame_hdr - 17: 0000000000000788 0 SECTION LOCAL DEFAULT 17 .eh_frame - 18: 0000000000010dc8 0 SECTION LOCAL DEFAULT 18 .init_array - 19: 0000000000010dd0 0 SECTION LOCAL DEFAULT 19 .fini_array - 20: 0000000000010dd8 0 SECTION LOCAL DEFAULT 20 .dynamic - 21: 0000000000010fb8 0 SECTION LOCAL DEFAULT 21 .got - 22: 0000000000010fe8 0 SECTION LOCAL DEFAULT 22 .got.plt - 23: 0000000000011020 0 SECTION LOCAL DEFAULT 23 .data - 24: 0000000000011030 0 SECTION LOCAL DEFAULT 24 .bss - 25: 0000000000000000 0 SECTION LOCAL DEFAULT 25 .comment - 26: 0000000000000000 0 FILE LOCAL DEFAULT ABS Scrt1.o - 27: 0000000000000278 0 NOTYPE LOCAL DEFAULT 3 $d - 28: 0000000000000278 32 OBJECT LOCAL DEFAULT 3 __abi_tag - 29: 0000000000000600 0 NOTYPE LOCAL DEFAULT 13 $x - 30: 000000000000079c 0 NOTYPE LOCAL DEFAULT 17 $d - 31: 0000000000000744 0 NOTYPE LOCAL DEFAULT 15 $d - 32: 0000000000000000 0 FILE LOCAL DEFAULT ABS crti.o - 33: 0000000000000634 0 NOTYPE LOCAL DEFAULT 13 $x - 34: 0000000000000634 20 FUNC LOCAL DEFAULT 13 call_weak_fn - 35: 0000000000000580 0 NOTYPE LOCAL DEFAULT 11 $x - 36: 0000000000000730 0 NOTYPE LOCAL DEFAULT 14 $x - 37: 0000000000000000 0 FILE LOCAL DEFAULT ABS crtn.o - 38: 0000000000000590 0 NOTYPE LOCAL DEFAULT 11 $x - 39: 000000000000073c 0 NOTYPE LOCAL DEFAULT 14 $x - 40: 0000000000000000 0 FILE LOCAL DEFAULT ABS crtstuff.c - 41: 0000000000000650 0 NOTYPE LOCAL DEFAULT 13 $x - 42: 0000000000000650 0 FUNC LOCAL DEFAULT 13 deregister_tm_clones - 43: 0000000000000680 0 FUNC LOCAL DEFAULT 13 register_tm_clones - 44: 0000000000011028 0 NOTYPE LOCAL DEFAULT 23 $d - 45: 00000000000006c0 0 FUNC LOCAL DEFAULT 13 __do_global_dtors_aux - 46: 0000000000011030 1 OBJECT LOCAL DEFAULT 24 completed.0 - 47: 0000000000010dd0 0 NOTYPE LOCAL DEFAULT 19 $d - 48: 0000000000010dd0 0 OBJECT LOCAL DEFAULT 19 __do_global_dtors_aux_fini_array_entry - 49: 0000000000000710 0 FUNC LOCAL DEFAULT 13 frame_dummy - 50: 0000000000010dc8 0 NOTYPE LOCAL DEFAULT 18 $d - 51: 0000000000010dc8 0 OBJECT LOCAL DEFAULT 18 __frame_dummy_init_array_entry - 52: 00000000000007b0 0 NOTYPE LOCAL DEFAULT 17 $d - 53: 0000000000011030 0 NOTYPE LOCAL DEFAULT 24 $d - 54: 0000000000000000 0 FILE LOCAL DEFAULT ABS basic_sec_policy_read.c - 55: 0000000000000714 0 NOTYPE LOCAL DEFAULT 13 $x.0 - 56: 0000000000011034 0 NOTYPE LOCAL DEFAULT 24 $d.1 - 57: 000000000000002a 0 NOTYPE LOCAL DEFAULT 25 $d.2 - 58: 0000000000000810 0 NOTYPE LOCAL DEFAULT 17 $d.3 - 59: 0000000000000000 0 FILE LOCAL DEFAULT ABS crtstuff.c - 60: 0000000000000838 0 NOTYPE LOCAL DEFAULT 17 $d - 61: 0000000000000838 0 OBJECT LOCAL DEFAULT 17 __FRAME_END__ - 62: 0000000000000000 0 FILE LOCAL DEFAULT ABS - 63: 0000000000010dd8 0 OBJECT LOCAL DEFAULT ABS _DYNAMIC - 64: 0000000000000748 0 NOTYPE LOCAL DEFAULT 16 __GNU_EH_FRAME_HDR - 65: 0000000000010fb8 0 OBJECT LOCAL DEFAULT ABS _GLOBAL_OFFSET_TABLE_ - 66: 00000000000005a0 0 NOTYPE LOCAL DEFAULT 12 $x - 67: 0000000000000000 0 FUNC GLOBAL DEFAULT UND __libc_start_main@GLIBC_2.34 - 68: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_deregisterTMCloneTable - 69: 0000000000011020 0 NOTYPE WEAK DEFAULT 23 data_start - 70: 0000000000011030 0 NOTYPE GLOBAL DEFAULT 24 __bss_start__ - 71: 0000000000000000 0 FUNC WEAK DEFAULT UND __cxa_finalize@GLIBC_2.17 - 72: 0000000000011040 0 NOTYPE GLOBAL DEFAULT 24 _bss_end__ - 73: 0000000000011030 0 NOTYPE GLOBAL DEFAULT 23 _edata - 74: 0000000000011038 4 OBJECT GLOBAL DEFAULT 24 z - 75: 0000000000011034 4 OBJECT GLOBAL DEFAULT 24 x - 76: 0000000000000730 0 FUNC GLOBAL HIDDEN 14 _fini - 77: 0000000000011040 0 NOTYPE GLOBAL DEFAULT 24 __bss_end__ - 78: 0000000000011020 0 NOTYPE GLOBAL DEFAULT 23 __data_start - 79: 0000000000000000 0 NOTYPE WEAK DEFAULT UND __gmon_start__ - 80: 0000000000011028 0 OBJECT GLOBAL HIDDEN 23 __dso_handle - 81: 0000000000000000 0 FUNC GLOBAL DEFAULT UND abort@GLIBC_2.17 - 82: 0000000000000744 4 OBJECT GLOBAL DEFAULT 15 _IO_stdin_used - 83: 0000000000011040 0 NOTYPE GLOBAL DEFAULT 24 _end - 84: 0000000000000600 52 FUNC GLOBAL DEFAULT 13 _start - 85: 0000000000011040 0 NOTYPE GLOBAL DEFAULT 24 __end__ - 86: 0000000000011030 0 NOTYPE GLOBAL DEFAULT 24 __bss_start - 87: 0000000000000714 28 FUNC GLOBAL DEFAULT 13 main - 88: 0000000000011030 0 OBJECT GLOBAL HIDDEN 23 __TMC_END__ - 89: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_registerTMCloneTable - 90: 0000000000000580 0 FUNC GLOBAL HIDDEN 11 _init diff --git a/src/test/correct/basic_sec_policy_read/clang_O2/basic_sec_policy_read_gtirb.expected b/src/test/correct/basic_sec_policy_read/clang_O2/basic_sec_policy_read_gtirb.expected index a351cdedf..ab9b533bc 100644 --- a/src/test/correct/basic_sec_policy_read/clang_O2/basic_sec_policy_read_gtirb.expected +++ b/src/test/correct/basic_sec_policy_read/clang_O2/basic_sec_policy_read_gtirb.expected @@ -15,23 +15,23 @@ var {:extern} VF: bv1; var {:extern} ZF: bv1; var {:extern} mem: [bv64]bv8; const {:extern} $x_addr: bv64; -axiom ($x_addr == 69684bv64); +axiom ($x_addr == 131092bv64); const {:extern} $z_addr: bv64; -axiom ($z_addr == 69688bv64); +axiom ($z_addr == 131096bv64); function {:extern} L(mem$in: [bv64]bv8, index: bv64) returns (bool) { (if (index == $z_addr) then true else (if (index == $x_addr) then (memory_load32_le(mem$in, $z_addr) == 0bv32) else false)) } -function {:extern} {:bvbuiltin "bvadd"} bvadd32(bv32, bv32) returns (bv32); -function {:extern} {:bvbuiltin "bvadd"} bvadd33(bv33, bv33) returns (bv33); function {:extern} {:bvbuiltin "bvadd"} bvadd64(bv64, bv64) returns (bv64); function {:extern} {:bvbuiltin "bvcomp"} bvcomp32(bv32, bv32) returns (bv1); -function {:extern} {:bvbuiltin "bvcomp"} bvcomp33(bv33, bv33) returns (bv1); -function {:extern} {:bvbuiltin "bvnot"} bvnot1(bv1) returns (bv1); function {:extern} gamma_load32(gammaMap: [bv64]bool, index: bv64) returns (bool) { (gammaMap[bvadd64(index, 3bv64)] && (gammaMap[bvadd64(index, 2bv64)] && (gammaMap[bvadd64(index, 1bv64)] && gammaMap[index]))) } +function {:extern} gamma_load64(gammaMap: [bv64]bool, index: bv64) returns (bool) { + (gammaMap[bvadd64(index, 7bv64)] && (gammaMap[bvadd64(index, 6bv64)] && (gammaMap[bvadd64(index, 5bv64)] && (gammaMap[bvadd64(index, 4bv64)] && (gammaMap[bvadd64(index, 3bv64)] && (gammaMap[bvadd64(index, 2bv64)] && (gammaMap[bvadd64(index, 1bv64)] && gammaMap[index]))))))) +} + function {:extern} memory_load32_le(memory: [bv64]bv8, index: bv64) returns (bv32) { (memory[bvadd64(index, 3bv64)] ++ (memory[bvadd64(index, 2bv64)] ++ (memory[bvadd64(index, 1bv64)] ++ memory[index]))) } @@ -40,17 +40,18 @@ function {:extern} memory_load64_le(memory: [bv64]bv8, index: bv64) returns (bv6 (memory[bvadd64(index, 7bv64)] ++ (memory[bvadd64(index, 6bv64)] ++ (memory[bvadd64(index, 5bv64)] ++ (memory[bvadd64(index, 4bv64)] ++ (memory[bvadd64(index, 3bv64)] ++ (memory[bvadd64(index, 2bv64)] ++ (memory[bvadd64(index, 1bv64)] ++ memory[index]))))))) } -function {:extern} {:bvbuiltin "zero_extend 1"} zero_extend1_32(bv32) returns (bv33); function {:extern} {:bvbuiltin "zero_extend 32"} zero_extend32_32(bv32) returns (bv64); procedure {:extern} rely(); modifies Gamma_mem, mem; ensures (forall i: bv64 :: (((mem[i] == old(mem[i])) ==> (Gamma_mem[i] == old(Gamma_mem[i]))))); ensures ((old(memory_load32_le(mem, $z_addr)) != 0bv32) ==> (memory_load32_le(mem, $z_addr) != 0bv32)); - free ensures (memory_load32_le(mem, 1860bv64) == 131073bv32); - free ensures (memory_load64_le(mem, 69064bv64) == 1808bv64); - free ensures (memory_load64_le(mem, 69072bv64) == 1728bv64); - free ensures (memory_load64_le(mem, 69592bv64) == 1812bv64); - free ensures (memory_load64_le(mem, 69672bv64) == 69672bv64); + free ensures (memory_load32_le(mem, 2316bv64) == 131073bv32); + free ensures (memory_load64_le(mem, 130424bv64) == 2256bv64); + free ensures (memory_load64_le(mem, 130432bv64) == 2176bv64); + free ensures (memory_load64_le(mem, 131032bv64) == 131096bv64); + free ensures (memory_load64_le(mem, 131040bv64) == 131092bv64); + free ensures (memory_load64_le(mem, 131056bv64) == 2260bv64); + free ensures (memory_load64_le(mem, 131080bv64) == 131080bv64); procedure {:extern} rely_transitive(); modifies Gamma_mem, mem; @@ -77,58 +78,69 @@ implementation {:extern} guarantee_reflexive() assert (memory_load32_le(mem, $z_addr) == memory_load32_le(mem, $z_addr)); } -procedure main_1812(); +procedure main(); modifies CF, Gamma_CF, Gamma_NF, Gamma_R0, Gamma_R8, Gamma_R9, Gamma_VF, Gamma_ZF, Gamma_mem, NF, R0, R8, R9, VF, ZF, mem; - free requires (memory_load64_le(mem, 69664bv64) == 0bv64); - free requires (memory_load64_le(mem, 69672bv64) == 69672bv64); - free requires (memory_load32_le(mem, 1860bv64) == 131073bv32); - free requires (memory_load64_le(mem, 69064bv64) == 1808bv64); - free requires (memory_load64_le(mem, 69072bv64) == 1728bv64); - free requires (memory_load64_le(mem, 69592bv64) == 1812bv64); - free requires (memory_load64_le(mem, 69672bv64) == 69672bv64); - free ensures (memory_load32_le(mem, 1860bv64) == 131073bv32); - free ensures (memory_load64_le(mem, 69064bv64) == 1808bv64); - free ensures (memory_load64_le(mem, 69072bv64) == 1728bv64); - free ensures (memory_load64_le(mem, 69592bv64) == 1812bv64); - free ensures (memory_load64_le(mem, 69672bv64) == 69672bv64); + free requires (memory_load64_le(mem, 131072bv64) == 0bv64); + free requires (memory_load64_le(mem, 131080bv64) == 131080bv64); + free requires (memory_load32_le(mem, 2316bv64) == 131073bv32); + free requires (memory_load64_le(mem, 130424bv64) == 2256bv64); + free requires (memory_load64_le(mem, 130432bv64) == 2176bv64); + free requires (memory_load64_le(mem, 131032bv64) == 131096bv64); + free requires (memory_load64_le(mem, 131040bv64) == 131092bv64); + free requires (memory_load64_le(mem, 131056bv64) == 2260bv64); + free requires (memory_load64_le(mem, 131080bv64) == 131080bv64); + free ensures (memory_load32_le(mem, 2316bv64) == 131073bv32); + free ensures (memory_load64_le(mem, 130424bv64) == 2256bv64); + free ensures (memory_load64_le(mem, 130432bv64) == 2176bv64); + free ensures (memory_load64_le(mem, 131032bv64) == 131096bv64); + free ensures (memory_load64_le(mem, 131040bv64) == 131092bv64); + free ensures (memory_load64_le(mem, 131056bv64) == 2260bv64); + free ensures (memory_load64_le(mem, 131080bv64) == 131080bv64); -implementation main_1812() +implementation main() { - var Cse0__5_0_4: bv32; - var Gamma_Cse0__5_0_4: bool; - var Gamma_load20: bool; - var Gamma_load21: bool; - var load20: bv32; - var load21: bv32; - main_1812__0__a~U4vJBkTaO8Xfm888rzkw: - assume {:captureState "main_1812__0__a~U4vJBkTaO8Xfm888rzkw"} true; - R8, Gamma_R8 := 69632bv64, true; - R9, Gamma_R9 := 69632bv64, true; + var $load5: bv64; + var $load6: bv64; + var $load7: bv32; + var $load8: bv32; + var Gamma_$load5: bool; + var Gamma_$load6: bool; + var Gamma_$load7: bool; + var Gamma_$load8: bool; + $main$__0__$D9t2gNJrSmyMH3GAVRe3IQ: + assume {:captureState "$main$__0__$D9t2gNJrSmyMH3GAVRe3IQ"} true; + R8, Gamma_R8 := 126976bv64, true; + R9, Gamma_R9 := 126976bv64, true; + call rely(); + $load5, Gamma_$load5 := memory_load64_le(mem, bvadd64(R8, 4056bv64)), (gamma_load64(Gamma_mem, bvadd64(R8, 4056bv64)) || L(mem, bvadd64(R8, 4056bv64))); + R8, Gamma_R8 := $load5, Gamma_$load5; + call rely(); + $load6, Gamma_$load6 := memory_load64_le(mem, bvadd64(R9, 4064bv64)), (gamma_load64(Gamma_mem, bvadd64(R9, 4064bv64)) || L(mem, bvadd64(R9, 4064bv64))); + R9, Gamma_R9 := $load6, Gamma_$load6; call rely(); - load20, Gamma_load20 := memory_load32_le(mem, bvadd64(R8, 56bv64)), (gamma_load32(Gamma_mem, bvadd64(R8, 56bv64)) || L(mem, bvadd64(R8, 56bv64))); - R8, Gamma_R8 := zero_extend32_32(load20), Gamma_load20; + $load7, Gamma_$load7 := memory_load32_le(mem, R8), (gamma_load32(Gamma_mem, R8) || L(mem, R8)); + R8, Gamma_R8 := zero_extend32_32($load7), Gamma_$load7; call rely(); - load21, Gamma_load21 := memory_load32_le(mem, bvadd64(R9, 52bv64)), (gamma_load32(Gamma_mem, bvadd64(R9, 52bv64)) || L(mem, bvadd64(R9, 52bv64))); - R9, Gamma_R9 := zero_extend32_32(load21), Gamma_load21; - Cse0__5_0_4, Gamma_Cse0__5_0_4 := bvadd32(R8[32:0], 0bv32), Gamma_R8; - VF, Gamma_VF := bvnot1(bvcomp32(Cse0__5_0_4, Cse0__5_0_4)), Gamma_Cse0__5_0_4; - CF, Gamma_CF := bvnot1(bvcomp33(zero_extend1_32(Cse0__5_0_4), bvadd33(zero_extend1_32(R8[32:0]), 4294967296bv33))), (Gamma_R8 && Gamma_Cse0__5_0_4); - ZF, Gamma_ZF := bvcomp32(Cse0__5_0_4, 0bv32), Gamma_Cse0__5_0_4; - NF, Gamma_NF := Cse0__5_0_4[32:31], Gamma_Cse0__5_0_4; + $load8, Gamma_$load8 := memory_load32_le(mem, R9), (gamma_load32(Gamma_mem, R9) || L(mem, R9)); + R9, Gamma_R9 := zero_extend32_32($load8), Gamma_$load8; + VF, Gamma_VF := 0bv1, true; + CF, Gamma_CF := 1bv1, true; + ZF, Gamma_ZF := bvcomp32(R8[32:0], 0bv32), Gamma_R8; + NF, Gamma_NF := R8[32:31], Gamma_R8; assert Gamma_ZF; - goto main_1812__0__a~U4vJBkTaO8Xfm888rzkw$__0, main_1812__0__a~U4vJBkTaO8Xfm888rzkw$__1; - main_1812__0__a~U4vJBkTaO8Xfm888rzkw$__1: - assume {:captureState "main_1812__0__a~U4vJBkTaO8Xfm888rzkw$__1"} true; - assume (!(ZF == 1bv1)); - R0, Gamma_R0 := 0bv64, true; - goto main_1812_basil_return; - main_1812__0__a~U4vJBkTaO8Xfm888rzkw$__0: - assume {:captureState "main_1812__0__a~U4vJBkTaO8Xfm888rzkw$__0"} true; + goto $main$__0__$D9t2gNJrSmyMH3GAVRe3IQ$__0, $main$__0__$D9t2gNJrSmyMH3GAVRe3IQ$__1; + $main$__0__$D9t2gNJrSmyMH3GAVRe3IQ$__0: + assume {:captureState "$main$__0__$D9t2gNJrSmyMH3GAVRe3IQ$__0"} true; assume (ZF == 1bv1); R0, Gamma_R0 := zero_extend32_32(R9[32:0]), Gamma_R9; - goto main_1812_basil_return; - main_1812_basil_return: - assume {:captureState "main_1812_basil_return"} true; + goto main_basil_return; + $main$__0__$D9t2gNJrSmyMH3GAVRe3IQ$__1: + assume {:captureState "$main$__0__$D9t2gNJrSmyMH3GAVRe3IQ$__1"} true; + assume (!(ZF == 1bv1)); + R0, Gamma_R0 := 0bv64, true; + goto main_basil_return; + main_basil_return: + assume {:captureState "main_basil_return"} true; return; } diff --git a/src/test/correct/basic_sec_policy_read/clang_pic/basic_sec_policy_read.adt b/src/test/correct/basic_sec_policy_read/clang_pic/basic_sec_policy_read.adt deleted file mode 100644 index 2341e8d37..000000000 --- a/src/test/correct/basic_sec_policy_read/clang_pic/basic_sec_policy_read.adt +++ /dev/null @@ -1,563 +0,0 @@ -Project(Attrs([Attr("filename","\"clang_pic/basic_sec_policy_read.out\""), -Attr("image-specification","(declare abi (name str))\n(declare arch (name str))\n(declare base-address (addr int))\n(declare bias (off int))\n(declare bits (size int))\n(declare code-region (addr int) (size int) (off int))\n(declare code-start (addr int))\n(declare entry-point (addr int))\n(declare external-reference (addr int) (name str))\n(declare format (name str))\n(declare is-executable (flag bool))\n(declare is-little-endian (flag bool))\n(declare llvm:base-address (addr int))\n(declare llvm:code-entry (name str) (off int) (size int))\n(declare llvm:coff-import-library (name str))\n(declare llvm:coff-virtual-section-header (name str) (addr int) (size int))\n(declare llvm:elf-program-header (name str) (off int) (size int))\n(declare llvm:elf-program-header-flags (name str) (ld bool) (r bool) \n (w bool) (x bool))\n(declare llvm:elf-virtual-program-header (name str) (addr int) (size int))\n(declare llvm:entry-point (addr int))\n(declare llvm:macho-symbol (name str) (value int))\n(declare llvm:name-reference (at int) (name str))\n(declare llvm:relocation (at int) (addr int))\n(declare llvm:section-entry (name str) (addr int) (size int) (off int))\n(declare llvm:section-flags (name str) (r bool) (w bool) (x bool))\n(declare llvm:segment-command (name str) (off int) (size int))\n(declare llvm:segment-command-flags (name str) (r bool) (w bool) (x bool))\n(declare llvm:symbol-entry (name str) (addr int) (size int) (off int)\n (value int))\n(declare llvm:virtual-segment-command (name str) (addr int) (size int))\n(declare mapped (addr int) (size int) (off int))\n(declare named-region (addr int) (size int) (name str))\n(declare named-symbol (addr int) (name str))\n(declare require (name str))\n(declare section (addr int) (size int))\n(declare segment (addr int) (size int) (r bool) (w bool) (x bool))\n(declare subarch (name str))\n(declare symbol-chunk (addr int) (size int) (root int))\n(declare symbol-value (addr int) (value int))\n(declare system (name str))\n(declare vendor (name str))\n\n(abi unknown)\n(arch aarch64)\n(base-address 0)\n(bias 0)\n(bits 64)\n(code-region 1948 20 1948)\n(code-region 1600 348 1600)\n(code-region 1488 96 1488)\n(code-region 1456 24 1456)\n(code-start 1652)\n(code-start 1600)\n(code-start 1876)\n(entry-point 1600)\n(external-reference 69552 _ITM_deregisterTMCloneTable)\n(external-reference 69560 __cxa_finalize)\n(external-reference 69584 __gmon_start__)\n(external-reference 69600 _ITM_registerTMCloneTable)\n(external-reference 69632 __libc_start_main)\n(external-reference 69640 __cxa_finalize)\n(external-reference 69648 __gmon_start__)\n(external-reference 69656 abort)\n(format elf)\n(is-executable true)\n(is-little-endian true)\n(llvm:base-address 0)\n(llvm:code-entry abort 0 0)\n(llvm:code-entry __cxa_finalize 0 0)\n(llvm:code-entry __libc_start_main 0 0)\n(llvm:code-entry _init 1456 0)\n(llvm:code-entry main 1876 72)\n(llvm:code-entry _start 1600 52)\n(llvm:code-entry abort@GLIBC_2.17 0 0)\n(llvm:code-entry _fini 1948 0)\n(llvm:code-entry __cxa_finalize@GLIBC_2.17 0 0)\n(llvm:code-entry __libc_start_main@GLIBC_2.34 0 0)\n(llvm:code-entry frame_dummy 1872 0)\n(llvm:code-entry __do_global_dtors_aux 1792 0)\n(llvm:code-entry register_tm_clones 1728 0)\n(llvm:code-entry deregister_tm_clones 1680 0)\n(llvm:code-entry call_weak_fn 1652 20)\n(llvm:code-entry .fini 1948 20)\n(llvm:code-entry .text 1600 348)\n(llvm:code-entry .plt 1488 96)\n(llvm:code-entry .init 1456 24)\n(llvm:elf-program-header 08 3512 584)\n(llvm:elf-program-header 07 0 0)\n(llvm:elf-program-header 06 1972 60)\n(llvm:elf-program-header 05 596 68)\n(llvm:elf-program-header 04 3528 480)\n(llvm:elf-program-header 03 3512 632)\n(llvm:elf-program-header 02 0 2216)\n(llvm:elf-program-header 01 568 27)\n(llvm:elf-program-header 00 64 504)\n(llvm:elf-program-header-flags 08 false true false false)\n(llvm:elf-program-header-flags 07 false true true false)\n(llvm:elf-program-header-flags 06 false true false false)\n(llvm:elf-program-header-flags 05 false true false false)\n(llvm:elf-program-header-flags 04 false true true false)\n(llvm:elf-program-header-flags 03 true true true false)\n(llvm:elf-program-header-flags 02 true true false true)\n(llvm:elf-program-header-flags 01 false true false false)\n(llvm:elf-program-header-flags 00 false true false false)\n(llvm:elf-virtual-program-header 08 69048 584)\n(llvm:elf-virtual-program-header 07 0 0)\n(llvm:elf-virtual-program-header 06 1972 60)\n(llvm:elf-virtual-program-header 05 596 68)\n(llvm:elf-virtual-program-header 04 69064 480)\n(llvm:elf-virtual-program-header 03 69048 648)\n(llvm:elf-virtual-program-header 02 0 2216)\n(llvm:elf-virtual-program-header 01 568 27)\n(llvm:elf-virtual-program-header 00 64 504)\n(llvm:entry-point 1600)\n(llvm:name-reference 69656 abort)\n(llvm:name-reference 69648 __gmon_start__)\n(llvm:name-reference 69640 __cxa_finalize)\n(llvm:name-reference 69632 __libc_start_main)\n(llvm:name-reference 69600 _ITM_registerTMCloneTable)\n(llvm:name-reference 69584 __gmon_start__)\n(llvm:name-reference 69560 __cxa_finalize)\n(llvm:name-reference 69552 _ITM_deregisterTMCloneTable)\n(llvm:section-entry .shstrtab 0 259 6979)\n(llvm:section-entry .strtab 0 579 6400)\n(llvm:section-entry .symtab 0 2184 4216)\n(llvm:section-entry .comment 0 71 4144)\n(llvm:section-entry .bss 69680 16 4144)\n(llvm:section-entry .data 69664 16 4128)\n(llvm:section-entry .got.plt 69608 56 4072)\n(llvm:section-entry .got 69544 64 4008)\n(llvm:section-entry .dynamic 69064 480 3528)\n(llvm:section-entry .fini_array 69056 8 3520)\n(llvm:section-entry .init_array 69048 8 3512)\n(llvm:section-entry .eh_frame 2032 184 2032)\n(llvm:section-entry .eh_frame_hdr 1972 60 1972)\n(llvm:section-entry .rodata 1968 4 1968)\n(llvm:section-entry .fini 1948 20 1948)\n(llvm:section-entry .text 1600 348 1600)\n(llvm:section-entry .plt 1488 96 1488)\n(llvm:section-entry .init 1456 24 1456)\n(llvm:section-entry .rela.plt 1360 96 1360)\n(llvm:section-entry .rela.dyn 1120 240 1120)\n(llvm:section-entry .gnu.version_r 1072 48 1072)\n(llvm:section-entry .gnu.version 1054 18 1054)\n(llvm:section-entry .dynstr 912 141 912)\n(llvm:section-entry .dynsym 696 216 696)\n(llvm:section-entry .gnu.hash 664 28 664)\n(llvm:section-entry .note.ABI-tag 632 32 632)\n(llvm:section-entry .note.gnu.build-id 596 36 596)\n(llvm:section-entry .interp 568 27 568)\n(llvm:section-flags .shstrtab true false false)\n(llvm:section-flags .strtab true false false)\n(llvm:section-flags .symtab true false false)\n(llvm:section-flags .comment true false false)\n(llvm:section-flags .bss true true false)\n(llvm:section-flags .data true true false)\n(llvm:section-flags .got.plt true true false)\n(llvm:section-flags .got true true false)\n(llvm:section-flags .dynamic true true false)\n(llvm:section-flags .fini_array true true false)\n(llvm:section-flags .init_array true true false)\n(llvm:section-flags .eh_frame true false false)\n(llvm:section-flags .eh_frame_hdr true false false)\n(llvm:section-flags .rodata true false false)\n(llvm:section-flags .fini true false true)\n(llvm:section-flags .text true false true)\n(llvm:section-flags .plt true false true)\n(llvm:section-flags .init true false true)\n(llvm:section-flags .rela.plt true false false)\n(llvm:section-flags .rela.dyn true false false)\n(llvm:section-flags .gnu.version_r true false false)\n(llvm:section-flags .gnu.version true false false)\n(llvm:section-flags .dynstr true false false)\n(llvm:section-flags .dynsym true false false)\n(llvm:section-flags .gnu.hash true false false)\n(llvm:section-flags .note.ABI-tag true false false)\n(llvm:section-flags .note.gnu.build-id true false false)\n(llvm:section-flags .interp true false false)\n(llvm:symbol-entry abort 0 0 0 0)\n(llvm:symbol-entry __cxa_finalize 0 0 0 0)\n(llvm:symbol-entry __libc_start_main 0 0 0 0)\n(llvm:symbol-entry _init 1456 0 1456 1456)\n(llvm:symbol-entry main 1876 72 1876 1876)\n(llvm:symbol-entry _start 1600 52 1600 1600)\n(llvm:symbol-entry abort@GLIBC_2.17 0 0 0 0)\n(llvm:symbol-entry _fini 1948 0 1948 1948)\n(llvm:symbol-entry __cxa_finalize@GLIBC_2.17 0 0 0 0)\n(llvm:symbol-entry __libc_start_main@GLIBC_2.34 0 0 0 0)\n(llvm:symbol-entry frame_dummy 1872 0 1872 1872)\n(llvm:symbol-entry __do_global_dtors_aux 1792 0 1792 1792)\n(llvm:symbol-entry register_tm_clones 1728 0 1728 1728)\n(llvm:symbol-entry deregister_tm_clones 1680 0 1680 1680)\n(llvm:symbol-entry call_weak_fn 1652 20 1652 1652)\n(mapped 0 2216 0)\n(mapped 69048 632 3512)\n(named-region 0 2216 02)\n(named-region 69048 648 03)\n(named-region 568 27 .interp)\n(named-region 596 36 .note.gnu.build-id)\n(named-region 632 32 .note.ABI-tag)\n(named-region 664 28 .gnu.hash)\n(named-region 696 216 .dynsym)\n(named-region 912 141 .dynstr)\n(named-region 1054 18 .gnu.version)\n(named-region 1072 48 .gnu.version_r)\n(named-region 1120 240 .rela.dyn)\n(named-region 1360 96 .rela.plt)\n(named-region 1456 24 .init)\n(named-region 1488 96 .plt)\n(named-region 1600 348 .text)\n(named-region 1948 20 .fini)\n(named-region 1968 4 .rodata)\n(named-region 1972 60 .eh_frame_hdr)\n(named-region 2032 184 .eh_frame)\n(named-region 69048 8 .init_array)\n(named-region 69056 8 .fini_array)\n(named-region 69064 480 .dynamic)\n(named-region 69544 64 .got)\n(named-region 69608 56 .got.plt)\n(named-region 69664 16 .data)\n(named-region 69680 16 .bss)\n(named-region 0 71 .comment)\n(named-region 0 2184 .symtab)\n(named-region 0 579 .strtab)\n(named-region 0 259 .shstrtab)\n(named-symbol 1652 call_weak_fn)\n(named-symbol 1680 deregister_tm_clones)\n(named-symbol 1728 register_tm_clones)\n(named-symbol 1792 __do_global_dtors_aux)\n(named-symbol 1872 frame_dummy)\n(named-symbol 0 __libc_start_main@GLIBC_2.34)\n(named-symbol 0 __cxa_finalize@GLIBC_2.17)\n(named-symbol 1948 _fini)\n(named-symbol 0 abort@GLIBC_2.17)\n(named-symbol 1600 _start)\n(named-symbol 1876 main)\n(named-symbol 1456 _init)\n(named-symbol 0 __libc_start_main)\n(named-symbol 0 __cxa_finalize)\n(named-symbol 0 abort)\n(require libc.so.6)\n(section 568 27)\n(section 596 36)\n(section 632 32)\n(section 664 28)\n(section 696 216)\n(section 912 141)\n(section 1054 18)\n(section 1072 48)\n(section 1120 240)\n(section 1360 96)\n(section 1456 24)\n(section 1488 96)\n(section 1600 348)\n(section 1948 20)\n(section 1968 4)\n(section 1972 60)\n(section 2032 184)\n(section 69048 8)\n(section 69056 8)\n(section 69064 480)\n(section 69544 64)\n(section 69608 56)\n(section 69664 16)\n(section 69680 16)\n(section 0 71)\n(section 0 2184)\n(section 0 579)\n(section 0 259)\n(segment 0 2216 true false true)\n(segment 69048 648 true true false)\n(subarch v8)\n(symbol-chunk 1652 20 1652)\n(symbol-chunk 1600 52 1600)\n(symbol-chunk 1876 72 1876)\n(symbol-value 1652 1652)\n(symbol-value 1680 1680)\n(symbol-value 1728 1728)\n(symbol-value 1792 1792)\n(symbol-value 1872 1872)\n(symbol-value 1948 1948)\n(symbol-value 1600 1600)\n(symbol-value 1876 1876)\n(symbol-value 1456 1456)\n(symbol-value 0 0)\n(system \"\")\n(vendor \"\")\n"), -Attr("abi-name","\"aarch64-linux-gnu-elf\"")]), -Sections([Section(".shstrtab", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x40\x06\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x48\x1c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x38\x00\x09\x00\x40\x00\x1d\x00\x1c\x00\x06\x00\x00\x00\x04\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x04\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xa8\x08\x00\x00\x00\x00\x00\x00\xa8\x08\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x01\x00\x00\x00\x06\x00\x00\x00\xb8\x0d\x00\x00\x00\x00\x00\x00\xb8\x0d\x01\x00\x00\x00\x00\x00\xb8\x0d\x01"), -Section(".strtab", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x40\x06\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x48\x1c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x38\x00\x09\x00\x40\x00\x1d\x00\x1c\x00\x06\x00\x00\x00\x04\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x04\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xa8\x08\x00\x00\x00\x00\x00\x00\xa8\x08\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x01\x00\x00\x00\x06\x00\x00\x00\xb8\x0d\x00\x00\x00\x00\x00\x00\xb8\x0d\x01\x00\x00\x00\x00\x00\xb8\x0d\x01\x00\x00\x00\x00\x00\x78\x02\x00\x00\x00\x00\x00\x00\x88\x02\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x02\x00\x00\x00\x06\x00\x00\x00\xc8\x0d\x00\x00\x00\x00\x00\x00\xc8\x0d\x01\x00\x00\x00\x00\x00\xc8\x0d\x01\x00\x00\x00\x00\x00\xe0\x01\x00\x00\x00\x00\x00\x00\xe0\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x04\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x50\xe5\x74\x64\x04\x00\x00\x00\xb4\x07\x00\x00\x00\x00\x00\x00\xb4\x07\x00\x00\x00\x00\x00\x00\xb4\x07\x00\x00\x00\x00\x00\x00\x3c\x00\x00\x00\x00\x00\x00\x00\x3c\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x51\xe5\x74\x64\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x52\xe5\x74\x64\x04\x00\x00\x00\xb8\x0d\x00\x00\x00\x00\x00\x00\xb8\x0d\x01\x00\x00\x00\x00\x00\xb8\x0d\x01\x00\x00\x00\x00\x00\x48\x02\x00\x00\x00\x00\x00\x00\x48\x02\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x2f\x6c\x69\x62\x2f\x6c\x64\x2d\x6c\x69\x6e"), -Section(".symtab", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x40\x06\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x48\x1c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x38\x00\x09\x00\x40\x00\x1d\x00\x1c\x00\x06\x00\x00\x00\x04\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x04\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xa8\x08\x00\x00\x00\x00\x00\x00\xa8\x08\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x01\x00\x00\x00\x06\x00\x00\x00\xb8\x0d\x00\x00\x00\x00\x00\x00\xb8\x0d\x01\x00\x00\x00\x00\x00\xb8\x0d\x01\x00\x00\x00\x00\x00\x78\x02\x00\x00\x00\x00\x00\x00\x88\x02\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x02\x00\x00\x00\x06\x00\x00\x00\xc8\x0d\x00\x00\x00\x00\x00\x00\xc8\x0d\x01\x00\x00\x00\x00\x00\xc8\x0d\x01\x00\x00\x00\x00\x00\xe0\x01\x00\x00\x00\x00\x00\x00\xe0\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x04\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x50\xe5\x74\x64\x04\x00\x00\x00\xb4\x07\x00\x00\x00\x00\x00\x00\xb4\x07\x00\x00\x00\x00\x00\x00\xb4\x07\x00\x00\x00\x00\x00\x00\x3c\x00\x00\x00\x00\x00\x00\x00\x3c\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x51\xe5\x74\x64\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x52\xe5\x74\x64\x04\x00\x00\x00\xb8\x0d\x00\x00\x00\x00\x00\x00\xb8\x0d\x01\x00\x00\x00\x00\x00\xb8\x0d\x01\x00\x00\x00\x00\x00\x48\x02\x00\x00\x00\x00\x00\x00\x48\x02\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x2f\x6c\x69\x62\x2f\x6c\x64\x2d\x6c\x69\x6e\x75\x78\x2d\x61\x61\x72\x63\x68\x36\x34\x2e\x73\x6f\x2e\x31\x00\x00\x04\x00\x00\x00\x14\x00\x00\x00\x03\x00\x00\x00\x47\x4e\x55\x00\x42\xc5\x67\xe2\xa2\x5e\x52\x27\xc0\xb9\x87\x36\x68\x6e\x53\xff\xb0\xf2\x37\xd0\x04\x00\x00\x00\x10\x00\x00\x00\x01\x00\x00\x00\x47\x4e\x55\x00\x00\x00\x00\x00\x03\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x01\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x0b\x00\xb0\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x17\x00\x20\x10\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x48\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x22\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x22\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x73\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5f\x5f\x63\x78\x61\x5f\x66\x69\x6e\x61\x6c\x69\x7a\x65\x00\x5f\x5f\x6c\x69\x62\x63\x5f\x73\x74\x61\x72\x74\x5f\x6d\x61\x69\x6e\x00\x61\x62\x6f\x72\x74\x00\x6c\x69\x62\x63\x2e\x73\x6f\x2e\x36\x00\x47\x4c\x49\x42\x43\x5f\x32\x2e\x31\x37\x00\x47\x4c\x49\x42\x43\x5f\x32\x2e\x33\x34\x00\x5f\x49\x54\x4d\x5f\x64\x65\x72\x65\x67\x69\x73\x74\x65\x72\x54\x4d\x43\x6c\x6f\x6e\x65\x54\x61\x62\x6c\x65\x00\x5f\x5f\x67\x6d\x6f\x6e\x5f\x73\x74\x61\x72\x74\x5f\x5f\x00\x5f\x49\x54\x4d\x5f\x72\x65\x67\x69\x73\x74\x65\x72\x54\x4d\x43\x6c\x6f\x6e\x65\x54\x61\x62\x6c\x65\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x01\x00\x03\x00\x01\x00\x03\x00\x01\x00\x01\x00\x02\x00\x28\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x97\x91\x96\x06\x00\x00\x03\x00\x32\x00\x00\x00\x10\x00\x00\x00\xb4\x91\x96\x06\x00\x00\x02\x00\x3d\x00\x00\x00\x00\x00\x00\x00\xb8\x0d\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x50\x07\x00\x00\x00\x00\x00\x00\xc0\x0d\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\xc0\x0f\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x38\x10\x01\x00\x00\x00\x00\x00\xc8\x0f\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x34\x10\x01\x00\x00\x00\x00\x00\xd8\x0f\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x54\x07\x00\x00\x00\x00\x00\x00\x28\x10\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x28\x10\x01\x00\x00\x00\x00\x00\xb0\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xb8\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xd0\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe0\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x08\x10\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x10\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x18\x10\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1f\x20\x03\xd5\xfd\x7b\xbf\xa9\xfd\x03\x00\x91\x2e\x00\x00\x94\xfd\x7b\xc1\xa8\xc0\x03\x5f\xd6\x00\x00\x00\x00\x00\x00\x00\x00\xf0\x7b\xbf\xa9\x90\x00\x00\x90\x11\xfe\x47\xf9\x10\xe2\x3f\x91\x20\x02\x1f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x90\x00\x00\xb0\x11\x02\x40\xf9\x10\x02\x00\x91\x20\x02\x1f\xd6\x90\x00\x00\xb0\x11\x06\x40\xf9\x10\x22\x00\x91\x20\x02\x1f\xd6\x90\x00\x00\xb0\x11\x0a\x40\xf9\x10\x42\x00\x91\x20\x02\x1f\xd6\x90\x00\x00\xb0\x11\x0e\x40\xf9\x10\x62\x00\x91\x20\x02\x1f\xd6\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1f\x20\x03\xd5\x1d\x00\x80\xd2\x1e\x00\x80\xd2\xe5\x03\x00\xaa\xe1\x03\x40\xf9\xe2\x23\x00\x91\xe6\x03\x00\x91\x80\x00\x00\x90\x00\xec\x47\xf9\x03\x00\x80\xd2\x04\x00\x80\xd2\xe1\xff\xff\x97\xec\xff\xff\x97\x80\x00\x00\x90\x00\xe8\x47\xf9\x40\x00\x00\xb4\xe4\xff\xff\x17\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x80\x00\x00\xb0\x00\xc0\x00\x91\x81\x00\x00\xb0\x21\xc0\x00\x91\x3f\x00\x00\xeb\xc0\x00\x00\x54\x81\x00\x00\x90\x21\xd8\x47\xf9\x61\x00\x00\xb4\xf0\x03\x01\xaa\x00\x02\x1f\xd6\xc0\x03\x5f\xd6\x80\x00\x00\xb0\x00\xc0\x00\x91\x81\x00\x00\xb0\x21\xc0\x00\x91\x21\x00\x00\xcb\x22\xfc\x7f\xd3\x41\x0c\x81\x8b\x21\xfc\x41\x93\xc1\x00\x00\xb4\x82\x00\x00\x90\x42\xf0\x47\xf9\x62\x00\x00\xb4\xf0\x03\x02\xaa\x00\x02\x1f\xd6\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\xfd\x7b\xbe\xa9\xfd\x03\x00\x91\xf3\x0b\x00\xf9\x93\x00\x00\xb0\x60\xc2\x40\x39\x40\x01\x00\x35\x80\x00\x00\x90\x00\xdc\x47\xf9\x80\x00\x00\xb4\x80\x00\x00\xb0\x00\x14\x40\xf9\xb5\xff\xff\x97\xd8\xff\xff\x97\x20\x00\x80\x52\x60\xc2\x00\x39\xf3\x0b\x40\xf9\xfd\x7b\xc2\xa8\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\xdc\xff\xff\x17\xff\x43\x00\xd1\xff\x0f\x00\xb9\x88\x00\x00\x90\x08\xe5\x47\xf9\x08\x01\x40\xb9\xe8\x0b\x00\xb9\x88\x00\x00\x90\x08\xe1\x47\xf9\x08\x01\x40\xb9\x08\x01\x00\x71\xe8\x17\x9f\x1a\x88\x00\x00\x37\x01\x00\x00\x14\xff\x0b\x00\xb9\x01\x00\x00\x14\xe0\x0b\x40\xb9\xff\x43\x00\x91\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\xfd\x7b\xbf\xa9\xfd\x03\x00\x91\xfd\x7b\xc1\xa8\xc0\x03\x5f\xd6\x01\x00\x02\x00\x01\x1b\x03\x3b\x38\x00\x00\x00\x06\x00\x00\x00\x8c\xfe\xff\xff\x50\x00\x00\x00\xdc\xfe\xff\xff\x64\x00\x00\x00\x0c\xff\xff\xff\x78\x00\x00\x00\x4c\xff\xff\xff\x8c\x00\x00\x00\x9c\xff\xff\xff\xb0\x00\x00\x00\xa0\xff\xff\xff\xd8\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x01\x7a\x52\x00\x04\x78\x1e\x01\x1b\x0c\x1f\x00\x10\x00\x00\x00\x18\x00\x00\x00\x34\xfe\xff\xff\x34\x00\x00\x00\x00\x41\x07\x1e\x10\x00\x00\x00\x2c\x00\x00\x00\x70\xfe\xff\xff\x30\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x40\x00\x00\x00\x8c\xfe\xff\xff\x3c\x00\x00\x00\x00\x00\x00\x00\x20\x00\x00\x00\x54\x00\x00\x00\xb8\xfe\xff\xff\x48\x00\x00\x00\x00\x41\x0e\x20\x9d\x04\x9e\x03\x42\x93\x02\x4e\xde\xdd\xd3\x0e\x00\x00\x00\x00\x10\x00\x00\x00\x78\x00\x00\x00\xe4\xfe\xff\xff\x04\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x01\x7a\x52\x00\x01\x7c\x1e\x01"), -Section(".comment", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x40\x06\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x48\x1c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x38\x00\x09\x00\x40\x00\x1d\x00\x1c\x00\x06\x00\x00\x00\x04\x00\x00"), -Section(".interp", 0x238, "\x2f\x6c\x69\x62\x2f\x6c\x64\x2d\x6c\x69\x6e\x75\x78\x2d\x61\x61\x72\x63\x68\x36\x34\x2e\x73\x6f\x2e\x31\x00"), -Section(".note.gnu.build-id", 0x254, "\x04\x00\x00\x00\x14\x00\x00\x00\x03\x00\x00\x00\x47\x4e\x55\x00\x42\xc5\x67\xe2\xa2\x5e\x52\x27\xc0\xb9\x87\x36\x68\x6e\x53\xff\xb0\xf2\x37\xd0"), -Section(".note.ABI-tag", 0x278, "\x04\x00\x00\x00\x10\x00\x00\x00\x01\x00\x00\x00\x47\x4e\x55\x00\x00\x00\x00\x00\x03\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00"), -Section(".gnu.hash", 0x298, "\x01\x00\x00\x00\x01\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".dynsym", 0x2B8, "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x0b\x00\xb0\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x17\x00\x20\x10\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x48\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x22\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x22\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x73\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".dynstr", 0x390, "\x00\x5f\x5f\x63\x78\x61\x5f\x66\x69\x6e\x61\x6c\x69\x7a\x65\x00\x5f\x5f\x6c\x69\x62\x63\x5f\x73\x74\x61\x72\x74\x5f\x6d\x61\x69\x6e\x00\x61\x62\x6f\x72\x74\x00\x6c\x69\x62\x63\x2e\x73\x6f\x2e\x36\x00\x47\x4c\x49\x42\x43\x5f\x32\x2e\x31\x37\x00\x47\x4c\x49\x42\x43\x5f\x32\x2e\x33\x34\x00\x5f\x49\x54\x4d\x5f\x64\x65\x72\x65\x67\x69\x73\x74\x65\x72\x54\x4d\x43\x6c\x6f\x6e\x65\x54\x61\x62\x6c\x65\x00\x5f\x5f\x67\x6d\x6f\x6e\x5f\x73\x74\x61\x72\x74\x5f\x5f\x00\x5f\x49\x54\x4d\x5f\x72\x65\x67\x69\x73\x74\x65\x72\x54\x4d\x43\x6c\x6f\x6e\x65\x54\x61\x62\x6c\x65\x00"), -Section(".gnu.version", 0x41E, "\x00\x00\x00\x00\x00\x00\x02\x00\x01\x00\x03\x00\x01\x00\x03\x00\x01\x00"), -Section(".gnu.version_r", 0x430, "\x01\x00\x02\x00\x28\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x97\x91\x96\x06\x00\x00\x03\x00\x32\x00\x00\x00\x10\x00\x00\x00\xb4\x91\x96\x06\x00\x00\x02\x00\x3d\x00\x00\x00\x00\x00\x00\x00"), -Section(".rela.dyn", 0x460, "\xb8\x0d\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x50\x07\x00\x00\x00\x00\x00\x00\xc0\x0d\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\xc0\x0f\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x38\x10\x01\x00\x00\x00\x00\x00\xc8\x0f\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x34\x10\x01\x00\x00\x00\x00\x00\xd8\x0f\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x54\x07\x00\x00\x00\x00\x00\x00\x28\x10\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x28\x10\x01\x00\x00\x00\x00\x00\xb0\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xb8\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xd0\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe0\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".rela.plt", 0x550, "\x00\x10\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x08\x10\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x10\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x18\x10\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".init", 0x5B0, "\x1f\x20\x03\xd5\xfd\x7b\xbf\xa9\xfd\x03\x00\x91\x2e\x00\x00\x94\xfd\x7b\xc1\xa8\xc0\x03\x5f\xd6"), -Section(".plt", 0x5D0, "\xf0\x7b\xbf\xa9\x90\x00\x00\x90\x11\xfe\x47\xf9\x10\xe2\x3f\x91\x20\x02\x1f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x90\x00\x00\xb0\x11\x02\x40\xf9\x10\x02\x00\x91\x20\x02\x1f\xd6\x90\x00\x00\xb0\x11\x06\x40\xf9\x10\x22\x00\x91\x20\x02\x1f\xd6\x90\x00\x00\xb0\x11\x0a\x40\xf9\x10\x42\x00\x91\x20\x02\x1f\xd6\x90\x00\x00\xb0\x11\x0e\x40\xf9\x10\x62\x00\x91\x20\x02\x1f\xd6"), -Section(".fini", 0x79C, "\x1f\x20\x03\xd5\xfd\x7b\xbf\xa9\xfd\x03\x00\x91\xfd\x7b\xc1\xa8\xc0\x03\x5f\xd6"), -Section(".rodata", 0x7B0, "\x01\x00\x02\x00"), -Section(".eh_frame_hdr", 0x7B4, "\x01\x1b\x03\x3b\x38\x00\x00\x00\x06\x00\x00\x00\x8c\xfe\xff\xff\x50\x00\x00\x00\xdc\xfe\xff\xff\x64\x00\x00\x00\x0c\xff\xff\xff\x78\x00\x00\x00\x4c\xff\xff\xff\x8c\x00\x00\x00\x9c\xff\xff\xff\xb0\x00\x00\x00\xa0\xff\xff\xff\xd8\x00\x00\x00"), -Section(".eh_frame", 0x7F0, "\x10\x00\x00\x00\x00\x00\x00\x00\x01\x7a\x52\x00\x04\x78\x1e\x01\x1b\x0c\x1f\x00\x10\x00\x00\x00\x18\x00\x00\x00\x34\xfe\xff\xff\x34\x00\x00\x00\x00\x41\x07\x1e\x10\x00\x00\x00\x2c\x00\x00\x00\x70\xfe\xff\xff\x30\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x40\x00\x00\x00\x8c\xfe\xff\xff\x3c\x00\x00\x00\x00\x00\x00\x00\x20\x00\x00\x00\x54\x00\x00\x00\xb8\xfe\xff\xff\x48\x00\x00\x00\x00\x41\x0e\x20\x9d\x04\x9e\x03\x42\x93\x02\x4e\xde\xdd\xd3\x0e\x00\x00\x00\x00\x10\x00\x00\x00\x78\x00\x00\x00\xe4\xfe\xff\xff\x04\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x01\x7a\x52\x00\x01\x7c\x1e\x01\x1b\x0c\x1f\x00\x14\x00\x00\x00\x18\x00\x00\x00\xc0\xfe\xff\xff\x48\x00\x00\x00\x00\x44\x0e\x10\x02\x40\x0e\x00\x00\x00\x00\x00"), -Section(".fini_array", 0x10DC0, "\x00\x07\x00\x00\x00\x00\x00\x00"), -Section(".dynamic", 0x10DC8, "\x01\x00\x00\x00\x00\x00\x00\x00\x28\x00\x00\x00\x00\x00\x00\x00\x0c\x00\x00\x00\x00\x00\x00\x00\xb0\x05\x00\x00\x00\x00\x00\x00\x0d\x00\x00\x00\x00\x00\x00\x00\x9c\x07\x00\x00\x00\x00\x00\x00\x19\x00\x00\x00\x00\x00\x00\x00\xb8\x0d\x01\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x1a\x00\x00\x00\x00\x00\x00\x00\xc0\x0d\x01\x00\x00\x00\x00\x00\x1c\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\xf5\xfe\xff\x6f\x00\x00\x00\x00\x98\x02\x00\x00\x00\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x90\x03\x00\x00\x00\x00\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\xb8\x02\x00\x00\x00\x00\x00\x00\x0a\x00\x00\x00\x00\x00\x00\x00\x8d\x00\x00\x00\x00\x00\x00\x00\x0b\x00\x00\x00\x00\x00\x00\x00\x18\x00\x00\x00\x00\x00\x00\x00\x15\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\xe8\x0f\x01\x00\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x60\x00\x00\x00\x00\x00\x00\x00\x14\x00\x00\x00\x00\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x17\x00\x00\x00\x00\x00\x00\x00\x50\x05\x00\x00\x00\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x60\x04\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\xf0\x00\x00\x00\x00\x00\x00\x00\x09\x00\x00\x00\x00\x00\x00\x00\x18\x00\x00\x00\x00\x00\x00\x00\xfb\xff\xff\x6f\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\xfe\xff\xff\x6f\x00\x00\x00\x00\x30\x04\x00\x00\x00\x00\x00\x00\xff\xff\xff\x6f\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\xf0\xff\xff\x6f\x00\x00\x00\x00\x1e\x04\x00\x00\x00\x00\x00\x00\xf9\xff\xff\x6f\x00\x00\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".init_array", 0x10DB8, "\x50\x07\x00\x00\x00\x00\x00\x00"), -Section(".got", 0x10FA8, "\xc8\x0d\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x38\x10\x01\x00\x00\x00\x00\x00\x34\x10\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x54\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".got.plt", 0x10FE8, "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xd0\x05\x00\x00\x00\x00\x00\x00\xd0\x05\x00\x00\x00\x00\x00\x00\xd0\x05\x00\x00\x00\x00\x00\x00\xd0\x05\x00\x00\x00\x00\x00\x00"), -Section(".data", 0x11020, "\x00\x00\x00\x00\x00\x00\x00\x00\x28\x10\x01\x00\x00\x00\x00\x00"), -Section(".text", 0x640, "\x1f\x20\x03\xd5\x1d\x00\x80\xd2\x1e\x00\x80\xd2\xe5\x03\x00\xaa\xe1\x03\x40\xf9\xe2\x23\x00\x91\xe6\x03\x00\x91\x80\x00\x00\x90\x00\xec\x47\xf9\x03\x00\x80\xd2\x04\x00\x80\xd2\xe1\xff\xff\x97\xec\xff\xff\x97\x80\x00\x00\x90\x00\xe8\x47\xf9\x40\x00\x00\xb4\xe4\xff\xff\x17\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x80\x00\x00\xb0\x00\xc0\x00\x91\x81\x00\x00\xb0\x21\xc0\x00\x91\x3f\x00\x00\xeb\xc0\x00\x00\x54\x81\x00\x00\x90\x21\xd8\x47\xf9\x61\x00\x00\xb4\xf0\x03\x01\xaa\x00\x02\x1f\xd6\xc0\x03\x5f\xd6\x80\x00\x00\xb0\x00\xc0\x00\x91\x81\x00\x00\xb0\x21\xc0\x00\x91\x21\x00\x00\xcb\x22\xfc\x7f\xd3\x41\x0c\x81\x8b\x21\xfc\x41\x93\xc1\x00\x00\xb4\x82\x00\x00\x90\x42\xf0\x47\xf9\x62\x00\x00\xb4\xf0\x03\x02\xaa\x00\x02\x1f\xd6\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\xfd\x7b\xbe\xa9\xfd\x03\x00\x91\xf3\x0b\x00\xf9\x93\x00\x00\xb0\x60\xc2\x40\x39\x40\x01\x00\x35\x80\x00\x00\x90\x00\xdc\x47\xf9\x80\x00\x00\xb4\x80\x00\x00\xb0\x00\x14\x40\xf9\xb5\xff\xff\x97\xd8\xff\xff\x97\x20\x00\x80\x52\x60\xc2\x00\x39\xf3\x0b\x40\xf9\xfd\x7b\xc2\xa8\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\xdc\xff\xff\x17\xff\x43\x00\xd1\xff\x0f\x00\xb9\x88\x00\x00\x90\x08\xe5\x47\xf9\x08\x01\x40\xb9\xe8\x0b\x00\xb9\x88\x00\x00\x90\x08\xe1\x47\xf9\x08\x01\x40\xb9\x08\x01\x00\x71\xe8\x17\x9f\x1a\x88\x00\x00\x37\x01\x00\x00\x14\xff\x0b\x00\xb9\x01\x00\x00\x14\xe0\x0b\x40\xb9\xff\x43\x00\x91\xc0\x03\x5f\xd6")]), -Memmap([Annotation(Region(0x0,0x8A7), Attr("segment","02 0 2216")), -Annotation(Region(0x640,0x673), Attr("symbol","\"_start\"")), -Annotation(Region(0x0,0x102), Attr("section","\".shstrtab\"")), -Annotation(Region(0x0,0x242), Attr("section","\".strtab\"")), -Annotation(Region(0x0,0x887), Attr("section","\".symtab\"")), -Annotation(Region(0x0,0x46), Attr("section","\".comment\"")), -Annotation(Region(0x238,0x252), Attr("section","\".interp\"")), -Annotation(Region(0x254,0x277), Attr("section","\".note.gnu.build-id\"")), -Annotation(Region(0x278,0x297), Attr("section","\".note.ABI-tag\"")), -Annotation(Region(0x298,0x2B3), Attr("section","\".gnu.hash\"")), -Annotation(Region(0x2B8,0x38F), Attr("section","\".dynsym\"")), -Annotation(Region(0x390,0x41C), Attr("section","\".dynstr\"")), -Annotation(Region(0x41E,0x42F), Attr("section","\".gnu.version\"")), -Annotation(Region(0x430,0x45F), Attr("section","\".gnu.version_r\"")), -Annotation(Region(0x460,0x54F), Attr("section","\".rela.dyn\"")), -Annotation(Region(0x550,0x5AF), Attr("section","\".rela.plt\"")), -Annotation(Region(0x5B0,0x5C7), Attr("section","\".init\"")), -Annotation(Region(0x5D0,0x62F), Attr("section","\".plt\"")), -Annotation(Region(0x5B0,0x5C7), Attr("code-region","()")), -Annotation(Region(0x5D0,0x62F), Attr("code-region","()")), -Annotation(Region(0x640,0x673), Attr("symbol-info","_start 0x640 52")), -Annotation(Region(0x674,0x687), Attr("symbol","\"call_weak_fn\"")), -Annotation(Region(0x674,0x687), Attr("symbol-info","call_weak_fn 0x674 20")), -Annotation(Region(0x754,0x79B), Attr("symbol","\"main\"")), -Annotation(Region(0x754,0x79B), Attr("symbol-info","main 0x754 72")), -Annotation(Region(0x79C,0x7AF), Attr("section","\".fini\"")), -Annotation(Region(0x7B0,0x7B3), Attr("section","\".rodata\"")), -Annotation(Region(0x7B4,0x7EF), Attr("section","\".eh_frame_hdr\"")), -Annotation(Region(0x7F0,0x8A7), Attr("section","\".eh_frame\"")), -Annotation(Region(0x10DB8,0x1102F), Attr("segment","03 0x10DB8 648")), -Annotation(Region(0x10DC0,0x10DC7), Attr("section","\".fini_array\"")), -Annotation(Region(0x10DC8,0x10FA7), Attr("section","\".dynamic\"")), -Annotation(Region(0x10DB8,0x10DBF), Attr("section","\".init_array\"")), -Annotation(Region(0x10FA8,0x10FE7), Attr("section","\".got\"")), -Annotation(Region(0x10FE8,0x1101F), Attr("section","\".got.plt\"")), -Annotation(Region(0x11020,0x1102F), Attr("section","\".data\"")), -Annotation(Region(0x640,0x79B), Attr("section","\".text\"")), -Annotation(Region(0x640,0x79B), Attr("code-region","()")), -Annotation(Region(0x79C,0x7AF), Attr("code-region","()"))]), -Program(Tid(1_492, "%000005d4"), Attrs([]), - Subs([Sub(Tid(1_440, "@__cxa_finalize"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x600"), -Attr("stub","()")]), "__cxa_finalize", Args([Arg(Tid(1_493, "%000005d5"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("__cxa_finalize_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(951, "@__cxa_finalize"), - Attrs([Attr("address","0x600")]), Phis([]), -Defs([Def(Tid(1_199, "%000004af"), Attrs([Attr("address","0x600"), -Attr("insn","adrp x16, #69632")]), Var("R16",Imm(64)), Int(69632,64)), -Def(Tid(1_206, "%000004b6"), Attrs([Attr("address","0x604"), -Attr("insn","ldr x17, [x16, #0x8]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(1_212, "%000004bc"), Attrs([Attr("address","0x608"), -Attr("insn","add x16, x16, #0x8")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(8,64)))]), Jmps([Call(Tid(1_217, "%000004c1"), - Attrs([Attr("address","0x60C"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), -Sub(Tid(1_441, "@__do_global_dtors_aux"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x700")]), - "__do_global_dtors_aux", Args([Arg(Tid(1_494, "%000005d6"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("__do_global_dtors_aux_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(662, "@__do_global_dtors_aux"), - Attrs([Attr("address","0x700")]), Phis([]), Defs([Def(Tid(666, "%0000029a"), - Attrs([Attr("address","0x700"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("#3",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(18446744073709551584,64))), -Def(Tid(672, "%000002a0"), Attrs([Attr("address","0x700"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("#3",Imm(64)),Var("R29",Imm(64)),LittleEndian(),64)), -Def(Tid(678, "%000002a6"), Attrs([Attr("address","0x700"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("#3",Imm(64)),Int(8,64)),Var("R30",Imm(64)),LittleEndian(),64)), -Def(Tid(682, "%000002aa"), Attrs([Attr("address","0x700"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("R31",Imm(64)), -Var("#3",Imm(64))), Def(Tid(688, "%000002b0"), - Attrs([Attr("address","0x704"), Attr("insn","mov x29, sp")]), - Var("R29",Imm(64)), Var("R31",Imm(64))), Def(Tid(696, "%000002b8"), - Attrs([Attr("address","0x708"), Attr("insn","str x19, [sp, #0x10]")]), - Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(16,64)),Var("R19",Imm(64)),LittleEndian(),64)), -Def(Tid(701, "%000002bd"), Attrs([Attr("address","0x70C"), -Attr("insn","adrp x19, #69632")]), Var("R19",Imm(64)), Int(69632,64)), -Def(Tid(708, "%000002c4"), Attrs([Attr("address","0x710"), -Attr("insn","ldrb w0, [x19, #0x30]")]), Var("R0",Imm(64)), -UNSIGNED(64,Load(Var("mem",Mem(64,8)),PLUS(Var("R19",Imm(64)),Int(48,64)),LittleEndian(),8)))]), -Jmps([Goto(Tid(715, "%000002cb"), Attrs([Attr("address","0x714"), -Attr("insn","cbnz w0, #0x28")]), - NEQ(Extract(31,0,Var("R0",Imm(64))),Int(0,32)), -Direct(Tid(713, "%000002c9"))), Goto(Tid(1_481, "%000005c9"), Attrs([]), - Int(1,1), Direct(Tid(896, "%00000380")))])), Blk(Tid(896, "%00000380"), - Attrs([Attr("address","0x718")]), Phis([]), Defs([Def(Tid(899, "%00000383"), - Attrs([Attr("address","0x718"), Attr("insn","adrp x0, #65536")]), - Var("R0",Imm(64)), Int(65536,64)), Def(Tid(906, "%0000038a"), - Attrs([Attr("address","0x71C"), Attr("insn","ldr x0, [x0, #0xfb8]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(4024,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(912, "%00000390"), Attrs([Attr("address","0x720"), -Attr("insn","cbz x0, #0x10")]), EQ(Var("R0",Imm(64)),Int(0,64)), -Direct(Tid(910, "%0000038e"))), Goto(Tid(1_482, "%000005ca"), Attrs([]), - Int(1,1), Direct(Tid(935, "%000003a7")))])), Blk(Tid(935, "%000003a7"), - Attrs([Attr("address","0x724")]), Phis([]), Defs([Def(Tid(938, "%000003aa"), - Attrs([Attr("address","0x724"), Attr("insn","adrp x0, #69632")]), - Var("R0",Imm(64)), Int(69632,64)), Def(Tid(945, "%000003b1"), - Attrs([Attr("address","0x728"), Attr("insn","ldr x0, [x0, #0x28]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(40,64)),LittleEndian(),64)), -Def(Tid(950, "%000003b6"), Attrs([Attr("address","0x72C"), -Attr("insn","bl #-0x12c")]), Var("R30",Imm(64)), Int(1840,64))]), -Jmps([Call(Tid(953, "%000003b9"), Attrs([Attr("address","0x72C"), -Attr("insn","bl #-0x12c")]), Int(1,1), -(Direct(Tid(1_440, "@__cxa_finalize")),Direct(Tid(910, "%0000038e"))))])), -Blk(Tid(910, "%0000038e"), Attrs([Attr("address","0x730")]), Phis([]), -Defs([Def(Tid(918, "%00000396"), Attrs([Attr("address","0x730"), -Attr("insn","bl #-0xa0")]), Var("R30",Imm(64)), Int(1844,64))]), -Jmps([Call(Tid(920, "%00000398"), Attrs([Attr("address","0x730"), -Attr("insn","bl #-0xa0")]), Int(1,1), -(Direct(Tid(1_454, "@deregister_tm_clones")),Direct(Tid(922, "%0000039a"))))])), -Blk(Tid(922, "%0000039a"), Attrs([Attr("address","0x734")]), Phis([]), -Defs([Def(Tid(925, "%0000039d"), Attrs([Attr("address","0x734"), -Attr("insn","mov w0, #0x1")]), Var("R0",Imm(64)), Int(1,64)), -Def(Tid(933, "%000003a5"), Attrs([Attr("address","0x738"), -Attr("insn","strb w0, [x19, #0x30]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R19",Imm(64)),Int(48,64)),Extract(7,0,Var("R0",Imm(64))),LittleEndian(),8))]), -Jmps([Goto(Tid(1_483, "%000005cb"), Attrs([]), Int(1,1), -Direct(Tid(713, "%000002c9")))])), Blk(Tid(713, "%000002c9"), - Attrs([Attr("address","0x73C")]), Phis([]), Defs([Def(Tid(723, "%000002d3"), - Attrs([Attr("address","0x73C"), Attr("insn","ldr x19, [sp, #0x10]")]), - Var("R19",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(16,64)),LittleEndian(),64)), -Def(Tid(730, "%000002da"), Attrs([Attr("address","0x740"), -Attr("insn","ldp x29, x30, [sp], #0x20")]), Var("R29",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(735, "%000002df"), Attrs([Attr("address","0x740"), -Attr("insn","ldp x29, x30, [sp], #0x20")]), Var("R30",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(739, "%000002e3"), Attrs([Attr("address","0x740"), -Attr("insn","ldp x29, x30, [sp], #0x20")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(32,64)))]), Jmps([Call(Tid(744, "%000002e8"), - Attrs([Attr("address","0x744"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), Sub(Tid(1_445, "@__libc_start_main"), - Attrs([Attr("c.proto","signed (*)(signed (*)(signed , char** , char** );* main, signed , char** , \nvoid* auxv)"), -Attr("address","0x5F0"), Attr("stub","()")]), "__libc_start_main", - Args([Arg(Tid(1_495, "%000005d7"), - Attrs([Attr("c.layout","**[ : 64]"), -Attr("c.data","Top:u64 ptr ptr"), -Attr("c.type","signed (*)(signed , char** , char** );*")]), - Var("__libc_start_main_main",Imm(64)), Var("R0",Imm(64)), In()), -Arg(Tid(1_496, "%000005d8"), Attrs([Attr("c.layout","[signed : 32]"), -Attr("c.data","Top:u32"), Attr("c.type","signed")]), - Var("__libc_start_main_arg2",Imm(32)), LOW(32,Var("R1",Imm(64))), In()), -Arg(Tid(1_497, "%000005d9"), Attrs([Attr("c.layout","**[char : 8]"), -Attr("c.data","Top:u8 ptr ptr"), Attr("c.type","char**")]), - Var("__libc_start_main_arg3",Imm(64)), Var("R2",Imm(64)), Both()), -Arg(Tid(1_498, "%000005da"), Attrs([Attr("c.layout","*[ : 8]"), -Attr("c.data","{} ptr"), Attr("c.type","void*")]), - Var("__libc_start_main_auxv",Imm(64)), Var("R3",Imm(64)), Both()), -Arg(Tid(1_499, "%000005db"), Attrs([Attr("c.layout","[signed : 32]"), -Attr("c.data","Top:u32"), Attr("c.type","signed")]), - Var("__libc_start_main_result",Imm(32)), LOW(32,Var("R0",Imm(64))), -Out())]), Blks([Blk(Tid(495, "@__libc_start_main"), - Attrs([Attr("address","0x5F0")]), Phis([]), -Defs([Def(Tid(1_177, "%00000499"), Attrs([Attr("address","0x5F0"), -Attr("insn","adrp x16, #69632")]), Var("R16",Imm(64)), Int(69632,64)), -Def(Tid(1_184, "%000004a0"), Attrs([Attr("address","0x5F4"), -Attr("insn","ldr x17, [x16]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R16",Imm(64)),LittleEndian(),64)), -Def(Tid(1_190, "%000004a6"), Attrs([Attr("address","0x5F8"), -Attr("insn","add x16, x16, #0x0")]), Var("R16",Imm(64)), -Var("R16",Imm(64)))]), Jmps([Call(Tid(1_195, "%000004ab"), - Attrs([Attr("address","0x5FC"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), Sub(Tid(1_446, "@_fini"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x79C")]), - "_fini", Args([Arg(Tid(1_500, "%000005dc"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("_fini_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(31, "@_fini"), - Attrs([Attr("address","0x79C")]), Phis([]), Defs([Def(Tid(37, "%00000025"), - Attrs([Attr("address","0x7A0"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("#0",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(18446744073709551600,64))), -Def(Tid(43, "%0000002b"), Attrs([Attr("address","0x7A0"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("#0",Imm(64)),Var("R29",Imm(64)),LittleEndian(),64)), -Def(Tid(49, "%00000031"), Attrs([Attr("address","0x7A0"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("#0",Imm(64)),Int(8,64)),Var("R30",Imm(64)),LittleEndian(),64)), -Def(Tid(53, "%00000035"), Attrs([Attr("address","0x7A0"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("R31",Imm(64)), -Var("#0",Imm(64))), Def(Tid(59, "%0000003b"), Attrs([Attr("address","0x7A4"), -Attr("insn","mov x29, sp")]), Var("R29",Imm(64)), Var("R31",Imm(64))), -Def(Tid(66, "%00000042"), Attrs([Attr("address","0x7A8"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R29",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(71, "%00000047"), Attrs([Attr("address","0x7A8"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R30",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(75, "%0000004b"), Attrs([Attr("address","0x7A8"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(16,64)))]), Jmps([Call(Tid(80, "%00000050"), - Attrs([Attr("address","0x7AC"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), Sub(Tid(1_447, "@_init"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x5B0")]), - "_init", Args([Arg(Tid(1_501, "%000005dd"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("_init_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(1_289, "@_init"), - Attrs([Attr("address","0x5B0")]), Phis([]), -Defs([Def(Tid(1_295, "%0000050f"), Attrs([Attr("address","0x5B4"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("#6",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(18446744073709551600,64))), -Def(Tid(1_301, "%00000515"), Attrs([Attr("address","0x5B4"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("#6",Imm(64)),Var("R29",Imm(64)),LittleEndian(),64)), -Def(Tid(1_307, "%0000051b"), Attrs([Attr("address","0x5B4"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("#6",Imm(64)),Int(8,64)),Var("R30",Imm(64)),LittleEndian(),64)), -Def(Tid(1_311, "%0000051f"), Attrs([Attr("address","0x5B4"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("R31",Imm(64)), -Var("#6",Imm(64))), Def(Tid(1_317, "%00000525"), - Attrs([Attr("address","0x5B8"), Attr("insn","mov x29, sp")]), - Var("R29",Imm(64)), Var("R31",Imm(64))), Def(Tid(1_322, "%0000052a"), - Attrs([Attr("address","0x5BC"), Attr("insn","bl #0xb8")]), - Var("R30",Imm(64)), Int(1472,64))]), Jmps([Call(Tid(1_324, "%0000052c"), - Attrs([Attr("address","0x5BC"), Attr("insn","bl #0xb8")]), Int(1,1), -(Direct(Tid(1_452, "@call_weak_fn")),Direct(Tid(1_326, "%0000052e"))))])), -Blk(Tid(1_326, "%0000052e"), Attrs([Attr("address","0x5C0")]), Phis([]), -Defs([Def(Tid(1_331, "%00000533"), Attrs([Attr("address","0x5C0"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R29",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(1_336, "%00000538"), Attrs([Attr("address","0x5C0"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R30",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(1_340, "%0000053c"), Attrs([Attr("address","0x5C0"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(16,64)))]), Jmps([Call(Tid(1_345, "%00000541"), - Attrs([Attr("address","0x5C4"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), Sub(Tid(1_448, "@_start"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x640"), -Attr("entry-point","()")]), "_start", Args([Arg(Tid(1_502, "%000005de"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("_start_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(432, "@_start"), - Attrs([Attr("address","0x640")]), Phis([]), Defs([Def(Tid(437, "%000001b5"), - Attrs([Attr("address","0x644"), Attr("insn","mov x29, #0x0")]), - Var("R29",Imm(64)), Int(0,64)), Def(Tid(442, "%000001ba"), - Attrs([Attr("address","0x648"), Attr("insn","mov x30, #0x0")]), - Var("R30",Imm(64)), Int(0,64)), Def(Tid(448, "%000001c0"), - Attrs([Attr("address","0x64C"), Attr("insn","mov x5, x0")]), - Var("R5",Imm(64)), Var("R0",Imm(64))), Def(Tid(455, "%000001c7"), - Attrs([Attr("address","0x650"), Attr("insn","ldr x1, [sp]")]), - Var("R1",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(461, "%000001cd"), Attrs([Attr("address","0x654"), -Attr("insn","add x2, sp, #0x8")]), Var("R2",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(8,64))), Def(Tid(467, "%000001d3"), - Attrs([Attr("address","0x658"), Attr("insn","mov x6, sp")]), - Var("R6",Imm(64)), Var("R31",Imm(64))), Def(Tid(472, "%000001d8"), - Attrs([Attr("address","0x65C"), Attr("insn","adrp x0, #65536")]), - Var("R0",Imm(64)), Int(65536,64)), Def(Tid(479, "%000001df"), - Attrs([Attr("address","0x660"), Attr("insn","ldr x0, [x0, #0xfd8]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(4056,64)),LittleEndian(),64)), -Def(Tid(484, "%000001e4"), Attrs([Attr("address","0x664"), -Attr("insn","mov x3, #0x0")]), Var("R3",Imm(64)), Int(0,64)), -Def(Tid(489, "%000001e9"), Attrs([Attr("address","0x668"), -Attr("insn","mov x4, #0x0")]), Var("R4",Imm(64)), Int(0,64)), -Def(Tid(494, "%000001ee"), Attrs([Attr("address","0x66C"), -Attr("insn","bl #-0x7c")]), Var("R30",Imm(64)), Int(1648,64))]), -Jmps([Call(Tid(497, "%000001f1"), Attrs([Attr("address","0x66C"), -Attr("insn","bl #-0x7c")]), Int(1,1), -(Direct(Tid(1_445, "@__libc_start_main")),Direct(Tid(499, "%000001f3"))))])), -Blk(Tid(499, "%000001f3"), Attrs([Attr("address","0x670")]), Phis([]), -Defs([Def(Tid(502, "%000001f6"), Attrs([Attr("address","0x670"), -Attr("insn","bl #-0x50")]), Var("R30",Imm(64)), Int(1652,64))]), -Jmps([Call(Tid(505, "%000001f9"), Attrs([Attr("address","0x670"), -Attr("insn","bl #-0x50")]), Int(1,1), -(Direct(Tid(1_451, "@abort")),Direct(Tid(1_484, "%000005cc"))))])), -Blk(Tid(1_484, "%000005cc"), Attrs([]), Phis([]), Defs([]), -Jmps([Call(Tid(1_485, "%000005cd"), Attrs([]), Int(1,1), -(Direct(Tid(1_452, "@call_weak_fn")),))]))])), Sub(Tid(1_451, "@abort"), - Attrs([Attr("noreturn","()"), Attr("c.proto","void (*)(void)"), -Attr("address","0x620"), Attr("stub","()")]), "abort", Args([]), -Blks([Blk(Tid(503, "@abort"), Attrs([Attr("address","0x620")]), Phis([]), -Defs([Def(Tid(1_243, "%000004db"), Attrs([Attr("address","0x620"), -Attr("insn","adrp x16, #69632")]), Var("R16",Imm(64)), Int(69632,64)), -Def(Tid(1_250, "%000004e2"), Attrs([Attr("address","0x624"), -Attr("insn","ldr x17, [x16, #0x18]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(24,64)),LittleEndian(),64)), -Def(Tid(1_256, "%000004e8"), Attrs([Attr("address","0x628"), -Attr("insn","add x16, x16, #0x18")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(24,64)))]), Jmps([Call(Tid(1_261, "%000004ed"), - Attrs([Attr("address","0x62C"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), Sub(Tid(1_452, "@call_weak_fn"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x674")]), - "call_weak_fn", Args([Arg(Tid(1_503, "%000005df"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("call_weak_fn_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(507, "@call_weak_fn"), - Attrs([Attr("address","0x674")]), Phis([]), Defs([Def(Tid(510, "%000001fe"), - Attrs([Attr("address","0x674"), Attr("insn","adrp x0, #65536")]), - Var("R0",Imm(64)), Int(65536,64)), Def(Tid(517, "%00000205"), - Attrs([Attr("address","0x678"), Attr("insn","ldr x0, [x0, #0xfd0]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(4048,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(523, "%0000020b"), Attrs([Attr("address","0x67C"), -Attr("insn","cbz x0, #0x8")]), EQ(Var("R0",Imm(64)),Int(0,64)), -Direct(Tid(521, "%00000209"))), Goto(Tid(1_486, "%000005ce"), Attrs([]), - Int(1,1), Direct(Tid(1_015, "%000003f7")))])), Blk(Tid(521, "%00000209"), - Attrs([Attr("address","0x684")]), Phis([]), Defs([]), -Jmps([Call(Tid(529, "%00000211"), Attrs([Attr("address","0x684"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))])), -Blk(Tid(1_015, "%000003f7"), Attrs([Attr("address","0x680")]), Phis([]), -Defs([]), Jmps([Goto(Tid(1_018, "%000003fa"), Attrs([Attr("address","0x680"), -Attr("insn","b #-0x70")]), Int(1,1), -Direct(Tid(1_016, "@__gmon_start__")))])), Blk(Tid(1_016, "@__gmon_start__"), - Attrs([Attr("address","0x610")]), Phis([]), -Defs([Def(Tid(1_221, "%000004c5"), Attrs([Attr("address","0x610"), -Attr("insn","adrp x16, #69632")]), Var("R16",Imm(64)), Int(69632,64)), -Def(Tid(1_228, "%000004cc"), Attrs([Attr("address","0x614"), -Attr("insn","ldr x17, [x16, #0x10]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(16,64)),LittleEndian(),64)), -Def(Tid(1_234, "%000004d2"), Attrs([Attr("address","0x618"), -Attr("insn","add x16, x16, #0x10")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(16,64)))]), Jmps([Call(Tid(1_239, "%000004d7"), - Attrs([Attr("address","0x61C"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), -Sub(Tid(1_454, "@deregister_tm_clones"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x690")]), - "deregister_tm_clones", Args([Arg(Tid(1_504, "%000005e0"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("deregister_tm_clones_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(535, "@deregister_tm_clones"), - Attrs([Attr("address","0x690")]), Phis([]), Defs([Def(Tid(538, "%0000021a"), - Attrs([Attr("address","0x690"), Attr("insn","adrp x0, #69632")]), - Var("R0",Imm(64)), Int(69632,64)), Def(Tid(544, "%00000220"), - Attrs([Attr("address","0x694"), Attr("insn","add x0, x0, #0x30")]), - Var("R0",Imm(64)), PLUS(Var("R0",Imm(64)),Int(48,64))), -Def(Tid(549, "%00000225"), Attrs([Attr("address","0x698"), -Attr("insn","adrp x1, #69632")]), Var("R1",Imm(64)), Int(69632,64)), -Def(Tid(555, "%0000022b"), Attrs([Attr("address","0x69C"), -Attr("insn","add x1, x1, #0x30")]), Var("R1",Imm(64)), -PLUS(Var("R1",Imm(64)),Int(48,64))), Def(Tid(561, "%00000231"), - Attrs([Attr("address","0x6A0"), Attr("insn","cmp x1, x0")]), - Var("#1",Imm(64)), NOT(Var("R0",Imm(64)))), Def(Tid(566, "%00000236"), - Attrs([Attr("address","0x6A0"), Attr("insn","cmp x1, x0")]), - Var("#2",Imm(64)), PLUS(Var("R1",Imm(64)),NOT(Var("R0",Imm(64))))), -Def(Tid(572, "%0000023c"), Attrs([Attr("address","0x6A0"), -Attr("insn","cmp x1, x0")]), Var("VF",Imm(1)), -NEQ(SIGNED(65,PLUS(Var("#2",Imm(64)),Int(1,64))),PLUS(PLUS(SIGNED(65,Var("R1",Imm(64))),SIGNED(65,Var("#1",Imm(64)))),Int(1,65)))), -Def(Tid(578, "%00000242"), Attrs([Attr("address","0x6A0"), -Attr("insn","cmp x1, x0")]), Var("CF",Imm(1)), -NEQ(UNSIGNED(65,PLUS(Var("#2",Imm(64)),Int(1,64))),PLUS(PLUS(UNSIGNED(65,Var("R1",Imm(64))),UNSIGNED(65,Var("#1",Imm(64)))),Int(1,65)))), -Def(Tid(582, "%00000246"), Attrs([Attr("address","0x6A0"), -Attr("insn","cmp x1, x0")]), Var("ZF",Imm(1)), -EQ(PLUS(Var("#2",Imm(64)),Int(1,64)),Int(0,64))), Def(Tid(586, "%0000024a"), - Attrs([Attr("address","0x6A0"), Attr("insn","cmp x1, x0")]), - Var("NF",Imm(1)), Extract(63,63,PLUS(Var("#2",Imm(64)),Int(1,64))))]), -Jmps([Goto(Tid(592, "%00000250"), Attrs([Attr("address","0x6A4"), -Attr("insn","b.eq #0x18")]), EQ(Var("ZF",Imm(1)),Int(1,1)), -Direct(Tid(590, "%0000024e"))), Goto(Tid(1_487, "%000005cf"), Attrs([]), - Int(1,1), Direct(Tid(985, "%000003d9")))])), Blk(Tid(985, "%000003d9"), - Attrs([Attr("address","0x6A8")]), Phis([]), Defs([Def(Tid(988, "%000003dc"), - Attrs([Attr("address","0x6A8"), Attr("insn","adrp x1, #65536")]), - Var("R1",Imm(64)), Int(65536,64)), Def(Tid(995, "%000003e3"), - Attrs([Attr("address","0x6AC"), Attr("insn","ldr x1, [x1, #0xfb0]")]), - Var("R1",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R1",Imm(64)),Int(4016,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(1_000, "%000003e8"), Attrs([Attr("address","0x6B0"), -Attr("insn","cbz x1, #0xc")]), EQ(Var("R1",Imm(64)),Int(0,64)), -Direct(Tid(590, "%0000024e"))), Goto(Tid(1_488, "%000005d0"), Attrs([]), - Int(1,1), Direct(Tid(1_004, "%000003ec")))])), Blk(Tid(590, "%0000024e"), - Attrs([Attr("address","0x6BC")]), Phis([]), Defs([]), -Jmps([Call(Tid(598, "%00000256"), Attrs([Attr("address","0x6BC"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))])), -Blk(Tid(1_004, "%000003ec"), Attrs([Attr("address","0x6B4")]), Phis([]), -Defs([Def(Tid(1_008, "%000003f0"), Attrs([Attr("address","0x6B4"), -Attr("insn","mov x16, x1")]), Var("R16",Imm(64)), Var("R1",Imm(64)))]), -Jmps([Call(Tid(1_013, "%000003f5"), Attrs([Attr("address","0x6B8"), -Attr("insn","br x16")]), Int(1,1), (Indirect(Var("R16",Imm(64))),))]))])), -Sub(Tid(1_457, "@frame_dummy"), Attrs([Attr("c.proto","signed (*)(void)"), -Attr("address","0x750")]), "frame_dummy", Args([Arg(Tid(1_505, "%000005e1"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("frame_dummy_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(750, "@frame_dummy"), - Attrs([Attr("address","0x750")]), Phis([]), Defs([]), -Jmps([Call(Tid(752, "%000002f0"), Attrs([Attr("address","0x750"), -Attr("insn","b #-0x90")]), Int(1,1), -(Direct(Tid(1_460, "@register_tm_clones")),))]))])), Sub(Tid(1_458, "@main"), - Attrs([Attr("c.proto","signed (*)(signed argc, const char** argv)"), -Attr("address","0x754")]), "main", Args([Arg(Tid(1_506, "%000005e2"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("main_argc",Imm(32)), -LOW(32,Var("R0",Imm(64))), In()), Arg(Tid(1_507, "%000005e3"), - Attrs([Attr("c.layout","**[char : 8]"), Attr("c.data","Top:u8 ptr ptr"), -Attr("c.type"," const char**")]), Var("main_argv",Imm(64)), -Var("R1",Imm(64)), Both()), Arg(Tid(1_508, "%000005e4"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("main_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(754, "@main"), - Attrs([Attr("address","0x754")]), Phis([]), Defs([Def(Tid(758, "%000002f6"), - Attrs([Attr("address","0x754"), Attr("insn","sub sp, sp, #0x10")]), - Var("R31",Imm(64)), PLUS(Var("R31",Imm(64)),Int(18446744073709551600,64))), -Def(Tid(765, "%000002fd"), Attrs([Attr("address","0x758"), -Attr("insn","str wzr, [sp, #0xc]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(12,64)),Int(0,32),LittleEndian(),32)), -Def(Tid(770, "%00000302"), Attrs([Attr("address","0x75C"), -Attr("insn","adrp x8, #65536")]), Var("R8",Imm(64)), Int(65536,64)), -Def(Tid(777, "%00000309"), Attrs([Attr("address","0x760"), -Attr("insn","ldr x8, [x8, #0xfc8]")]), Var("R8",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R8",Imm(64)),Int(4040,64)),LittleEndian(),64)), -Def(Tid(784, "%00000310"), Attrs([Attr("address","0x764"), -Attr("insn","ldr w8, [x8]")]), Var("R8",Imm(64)), -UNSIGNED(64,Load(Var("mem",Mem(64,8)),Var("R8",Imm(64)),LittleEndian(),32))), -Def(Tid(792, "%00000318"), Attrs([Attr("address","0x768"), -Attr("insn","str w8, [sp, #0x8]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),Extract(31,0,Var("R8",Imm(64))),LittleEndian(),32)), -Def(Tid(797, "%0000031d"), Attrs([Attr("address","0x76C"), -Attr("insn","adrp x8, #65536")]), Var("R8",Imm(64)), Int(65536,64)), -Def(Tid(804, "%00000324"), Attrs([Attr("address","0x770"), -Attr("insn","ldr x8, [x8, #0xfc0]")]), Var("R8",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R8",Imm(64)),Int(4032,64)),LittleEndian(),64)), -Def(Tid(811, "%0000032b"), Attrs([Attr("address","0x774"), -Attr("insn","ldr w8, [x8]")]), Var("R8",Imm(64)), -UNSIGNED(64,Load(Var("mem",Mem(64,8)),Var("R8",Imm(64)),LittleEndian(),32))), -Def(Tid(817, "%00000331"), Attrs([Attr("address","0x778"), -Attr("insn","subs w8, w8, #0x0")]), Var("#4",Imm(32)), -PLUS(Extract(31,0,Var("R8",Imm(64))),Int(4294967295,32))), -Def(Tid(822, "%00000336"), Attrs([Attr("address","0x778"), -Attr("insn","subs w8, w8, #0x0")]), Var("VF",Imm(1)), -NEQ(SIGNED(33,PLUS(Var("#4",Imm(32)),Int(1,32))),PLUS(SIGNED(33,Extract(31,0,Var("R8",Imm(64)))),Int(0,33)))), -Def(Tid(827, "%0000033b"), Attrs([Attr("address","0x778"), -Attr("insn","subs w8, w8, #0x0")]), Var("CF",Imm(1)), -NEQ(UNSIGNED(33,PLUS(Var("#4",Imm(32)),Int(1,32))),PLUS(UNSIGNED(33,Extract(31,0,Var("R8",Imm(64)))),Int(4294967296,33)))), -Def(Tid(831, "%0000033f"), Attrs([Attr("address","0x778"), -Attr("insn","subs w8, w8, #0x0")]), Var("ZF",Imm(1)), -EQ(PLUS(Var("#4",Imm(32)),Int(1,32)),Int(0,32))), Def(Tid(835, "%00000343"), - Attrs([Attr("address","0x778"), Attr("insn","subs w8, w8, #0x0")]), - Var("NF",Imm(1)), Extract(31,31,PLUS(Var("#4",Imm(32)),Int(1,32)))), -Def(Tid(839, "%00000347"), Attrs([Attr("address","0x778"), -Attr("insn","subs w8, w8, #0x0")]), Var("R8",Imm(64)), -UNSIGNED(64,PLUS(Var("#4",Imm(32)),Int(1,32))))]), -Jmps([Goto(Tid(851, "%00000353"), Attrs([Attr("address","0x77C"), -Attr("insn","cset w8, eq")]), NEQ(Var("ZF",Imm(1)),Int(1,1)), -Direct(Tid(844, "%0000034c"))), Goto(Tid(852, "%00000354"), - Attrs([Attr("address","0x77C"), Attr("insn","cset w8, eq")]), Int(1,1), -Direct(Tid(847, "%0000034f")))])), Blk(Tid(847, "%0000034f"), Attrs([]), - Phis([]), Defs([Def(Tid(848, "%00000350"), Attrs([Attr("address","0x77C"), -Attr("insn","cset w8, eq")]), Var("R8",Imm(64)), Int(1,64))]), -Jmps([Goto(Tid(854, "%00000356"), Attrs([Attr("address","0x77C"), -Attr("insn","cset w8, eq")]), Int(1,1), Direct(Tid(850, "%00000352")))])), -Blk(Tid(844, "%0000034c"), Attrs([]), Phis([]), -Defs([Def(Tid(845, "%0000034d"), Attrs([Attr("address","0x77C"), -Attr("insn","cset w8, eq")]), Var("R8",Imm(64)), Int(0,64))]), -Jmps([Goto(Tid(853, "%00000355"), Attrs([Attr("address","0x77C"), -Attr("insn","cset w8, eq")]), Int(1,1), Direct(Tid(850, "%00000352")))])), -Blk(Tid(850, "%00000352"), Attrs([]), Phis([]), Defs([]), -Jmps([Goto(Tid(860, "%0000035c"), Attrs([Attr("address","0x780"), -Attr("insn","tbnz w8, #0x0, #0x10")]), - EQ(Extract(0,0,Var("R8",Imm(64))),Int(1,1)), Direct(Tid(858, "%0000035a"))), -Goto(Tid(1_489, "%000005d1"), Attrs([]), Int(1,1), -Direct(Tid(881, "%00000371")))])), Blk(Tid(881, "%00000371"), - Attrs([Attr("address","0x784")]), Phis([]), Defs([]), -Jmps([Goto(Tid(884, "%00000374"), Attrs([Attr("address","0x784"), -Attr("insn","b #0x4")]), Int(1,1), Direct(Tid(882, "%00000372")))])), -Blk(Tid(882, "%00000372"), Attrs([Attr("address","0x788")]), Phis([]), -Defs([Def(Tid(890, "%0000037a"), Attrs([Attr("address","0x788"), -Attr("insn","str wzr, [sp, #0x8]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),Int(0,32),LittleEndian(),32))]), -Jmps([Goto(Tid(894, "%0000037e"), Attrs([Attr("address","0x78C"), -Attr("insn","b #0x4")]), Int(1,1), Direct(Tid(858, "%0000035a")))])), -Blk(Tid(858, "%0000035a"), Attrs([Attr("address","0x790")]), Phis([]), -Defs([Def(Tid(868, "%00000364"), Attrs([Attr("address","0x790"), -Attr("insn","ldr w0, [sp, #0x8]")]), Var("R0",Imm(64)), -UNSIGNED(64,Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),LittleEndian(),32))), -Def(Tid(874, "%0000036a"), Attrs([Attr("address","0x794"), -Attr("insn","add sp, sp, #0x10")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(16,64)))]), Jmps([Call(Tid(879, "%0000036f"), - Attrs([Attr("address","0x798"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), -Sub(Tid(1_460, "@register_tm_clones"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x6C0")]), - "register_tm_clones", Args([Arg(Tid(1_509, "%000005e5"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("register_tm_clones_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(600, "@register_tm_clones"), Attrs([Attr("address","0x6C0")]), - Phis([]), Defs([Def(Tid(603, "%0000025b"), Attrs([Attr("address","0x6C0"), -Attr("insn","adrp x0, #69632")]), Var("R0",Imm(64)), Int(69632,64)), -Def(Tid(609, "%00000261"), Attrs([Attr("address","0x6C4"), -Attr("insn","add x0, x0, #0x30")]), Var("R0",Imm(64)), -PLUS(Var("R0",Imm(64)),Int(48,64))), Def(Tid(614, "%00000266"), - Attrs([Attr("address","0x6C8"), Attr("insn","adrp x1, #69632")]), - Var("R1",Imm(64)), Int(69632,64)), Def(Tid(620, "%0000026c"), - Attrs([Attr("address","0x6CC"), Attr("insn","add x1, x1, #0x30")]), - Var("R1",Imm(64)), PLUS(Var("R1",Imm(64)),Int(48,64))), -Def(Tid(627, "%00000273"), Attrs([Attr("address","0x6D0"), -Attr("insn","sub x1, x1, x0")]), Var("R1",Imm(64)), -PLUS(PLUS(Var("R1",Imm(64)),NOT(Var("R0",Imm(64)))),Int(1,64))), -Def(Tid(633, "%00000279"), Attrs([Attr("address","0x6D4"), -Attr("insn","lsr x2, x1, #63")]), Var("R2",Imm(64)), -Concat(Int(0,63),Extract(63,63,Var("R1",Imm(64))))), -Def(Tid(640, "%00000280"), Attrs([Attr("address","0x6D8"), -Attr("insn","add x1, x2, x1, asr #3")]), Var("R1",Imm(64)), -PLUS(Var("R2",Imm(64)),ARSHIFT(Var("R1",Imm(64)),Int(3,3)))), -Def(Tid(646, "%00000286"), Attrs([Attr("address","0x6DC"), -Attr("insn","asr x1, x1, #1")]), Var("R1",Imm(64)), -SIGNED(64,Extract(63,1,Var("R1",Imm(64)))))]), -Jmps([Goto(Tid(652, "%0000028c"), Attrs([Attr("address","0x6E0"), -Attr("insn","cbz x1, #0x18")]), EQ(Var("R1",Imm(64)),Int(0,64)), -Direct(Tid(650, "%0000028a"))), Goto(Tid(1_490, "%000005d2"), Attrs([]), - Int(1,1), Direct(Tid(955, "%000003bb")))])), Blk(Tid(955, "%000003bb"), - Attrs([Attr("address","0x6E4")]), Phis([]), Defs([Def(Tid(958, "%000003be"), - Attrs([Attr("address","0x6E4"), Attr("insn","adrp x2, #65536")]), - Var("R2",Imm(64)), Int(65536,64)), Def(Tid(965, "%000003c5"), - Attrs([Attr("address","0x6E8"), Attr("insn","ldr x2, [x2, #0xfe0]")]), - Var("R2",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R2",Imm(64)),Int(4064,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(970, "%000003ca"), Attrs([Attr("address","0x6EC"), -Attr("insn","cbz x2, #0xc")]), EQ(Var("R2",Imm(64)),Int(0,64)), -Direct(Tid(650, "%0000028a"))), Goto(Tid(1_491, "%000005d3"), Attrs([]), - Int(1,1), Direct(Tid(974, "%000003ce")))])), Blk(Tid(650, "%0000028a"), - Attrs([Attr("address","0x6F8")]), Phis([]), Defs([]), -Jmps([Call(Tid(658, "%00000292"), Attrs([Attr("address","0x6F8"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))])), -Blk(Tid(974, "%000003ce"), Attrs([Attr("address","0x6F0")]), Phis([]), -Defs([Def(Tid(978, "%000003d2"), Attrs([Attr("address","0x6F0"), -Attr("insn","mov x16, x2")]), Var("R16",Imm(64)), Var("R2",Imm(64)))]), -Jmps([Call(Tid(983, "%000003d7"), Attrs([Attr("address","0x6F4"), -Attr("insn","br x16")]), Int(1,1), -(Indirect(Var("R16",Imm(64))),))]))]))]))) \ No newline at end of file diff --git a/src/test/correct/basic_sec_policy_read/clang_pic/basic_sec_policy_read.bir b/src/test/correct/basic_sec_policy_read/clang_pic/basic_sec_policy_read.bir deleted file mode 100644 index 857358804..000000000 --- a/src/test/correct/basic_sec_policy_read/clang_pic/basic_sec_policy_read.bir +++ /dev/null @@ -1,263 +0,0 @@ -000005d4: program -000005a0: sub __cxa_finalize(__cxa_finalize_result) -000005d5: __cxa_finalize_result :: out u32 = low:32[R0] - -000003b7: -000004af: R16 := 0x11000 -000004b6: R17 := mem[R16 + 8, el]:u64 -000004bc: R16 := R16 + 8 -000004c1: call R17 with noreturn - -000005a1: sub __do_global_dtors_aux(__do_global_dtors_aux_result) -000005d6: __do_global_dtors_aux_result :: out u32 = low:32[R0] - -00000296: -0000029a: #3 := R31 - 0x20 -000002a0: mem := mem with [#3, el]:u64 <- R29 -000002a6: mem := mem with [#3 + 8, el]:u64 <- R30 -000002aa: R31 := #3 -000002b0: R29 := R31 -000002b8: mem := mem with [R31 + 0x10, el]:u64 <- R19 -000002bd: R19 := 0x11000 -000002c4: R0 := pad:64[mem[R19 + 0x30]] -000002cb: when 31:0[R0] <> 0 goto %000002c9 -000005c9: goto %00000380 - -00000380: -00000383: R0 := 0x10000 -0000038a: R0 := mem[R0 + 0xFB8, el]:u64 -00000390: when R0 = 0 goto %0000038e -000005ca: goto %000003a7 - -000003a7: -000003aa: R0 := 0x11000 -000003b1: R0 := mem[R0 + 0x28, el]:u64 -000003b6: R30 := 0x730 -000003b9: call @__cxa_finalize with return %0000038e - -0000038e: -00000396: R30 := 0x734 -00000398: call @deregister_tm_clones with return %0000039a - -0000039a: -0000039d: R0 := 1 -000003a5: mem := mem with [R19 + 0x30] <- 7:0[R0] -000005cb: goto %000002c9 - -000002c9: -000002d3: R19 := mem[R31 + 0x10, el]:u64 -000002da: R29 := mem[R31, el]:u64 -000002df: R30 := mem[R31 + 8, el]:u64 -000002e3: R31 := R31 + 0x20 -000002e8: call R30 with noreturn - -000005a5: sub __libc_start_main(__libc_start_main_main, __libc_start_main_arg2, __libc_start_main_arg3, __libc_start_main_auxv, __libc_start_main_result) -000005d7: __libc_start_main_main :: in u64 = R0 -000005d8: __libc_start_main_arg2 :: in u32 = low:32[R1] -000005d9: __libc_start_main_arg3 :: in out u64 = R2 -000005da: __libc_start_main_auxv :: in out u64 = R3 -000005db: __libc_start_main_result :: out u32 = low:32[R0] - -000001ef: -00000499: R16 := 0x11000 -000004a0: R17 := mem[R16, el]:u64 -000004a6: R16 := R16 -000004ab: call R17 with noreturn - -000005a6: sub _fini(_fini_result) -000005dc: _fini_result :: out u32 = low:32[R0] - -0000001f: -00000025: #0 := R31 - 0x10 -0000002b: mem := mem with [#0, el]:u64 <- R29 -00000031: mem := mem with [#0 + 8, el]:u64 <- R30 -00000035: R31 := #0 -0000003b: R29 := R31 -00000042: R29 := mem[R31, el]:u64 -00000047: R30 := mem[R31 + 8, el]:u64 -0000004b: R31 := R31 + 0x10 -00000050: call R30 with noreturn - -000005a7: sub _init(_init_result) -000005dd: _init_result :: out u32 = low:32[R0] - -00000509: -0000050f: #6 := R31 - 0x10 -00000515: mem := mem with [#6, el]:u64 <- R29 -0000051b: mem := mem with [#6 + 8, el]:u64 <- R30 -0000051f: R31 := #6 -00000525: R29 := R31 -0000052a: R30 := 0x5C0 -0000052c: call @call_weak_fn with return %0000052e - -0000052e: -00000533: R29 := mem[R31, el]:u64 -00000538: R30 := mem[R31 + 8, el]:u64 -0000053c: R31 := R31 + 0x10 -00000541: call R30 with noreturn - -000005a8: sub _start(_start_result) -000005de: _start_result :: out u32 = low:32[R0] - -000001b0: -000001b5: R29 := 0 -000001ba: R30 := 0 -000001c0: R5 := R0 -000001c7: R1 := mem[R31, el]:u64 -000001cd: R2 := R31 + 8 -000001d3: R6 := R31 -000001d8: R0 := 0x10000 -000001df: R0 := mem[R0 + 0xFD8, el]:u64 -000001e4: R3 := 0 -000001e9: R4 := 0 -000001ee: R30 := 0x670 -000001f1: call @__libc_start_main with return %000001f3 - -000001f3: -000001f6: R30 := 0x674 -000001f9: call @abort with return %000005cc - -000005cc: -000005cd: call @call_weak_fn with noreturn - -000005ab: sub abort() - - -000001f7: -000004db: R16 := 0x11000 -000004e2: R17 := mem[R16 + 0x18, el]:u64 -000004e8: R16 := R16 + 0x18 -000004ed: call R17 with noreturn - -000005ac: sub call_weak_fn(call_weak_fn_result) -000005df: call_weak_fn_result :: out u32 = low:32[R0] - -000001fb: -000001fe: R0 := 0x10000 -00000205: R0 := mem[R0 + 0xFD0, el]:u64 -0000020b: when R0 = 0 goto %00000209 -000005ce: goto %000003f7 - -00000209: -00000211: call R30 with noreturn - -000003f7: -000003fa: goto @__gmon_start__ - -000003f8: -000004c5: R16 := 0x11000 -000004cc: R17 := mem[R16 + 0x10, el]:u64 -000004d2: R16 := R16 + 0x10 -000004d7: call R17 with noreturn - -000005ae: sub deregister_tm_clones(deregister_tm_clones_result) -000005e0: deregister_tm_clones_result :: out u32 = low:32[R0] - -00000217: -0000021a: R0 := 0x11000 -00000220: R0 := R0 + 0x30 -00000225: R1 := 0x11000 -0000022b: R1 := R1 + 0x30 -00000231: #1 := ~R0 -00000236: #2 := R1 + ~R0 -0000023c: VF := extend:65[#2 + 1] <> extend:65[R1] + extend:65[#1] + 1 -00000242: CF := pad:65[#2 + 1] <> pad:65[R1] + pad:65[#1] + 1 -00000246: ZF := #2 + 1 = 0 -0000024a: NF := 63:63[#2 + 1] -00000250: when ZF goto %0000024e -000005cf: goto %000003d9 - -000003d9: -000003dc: R1 := 0x10000 -000003e3: R1 := mem[R1 + 0xFB0, el]:u64 -000003e8: when R1 = 0 goto %0000024e -000005d0: goto %000003ec - -0000024e: -00000256: call R30 with noreturn - -000003ec: -000003f0: R16 := R1 -000003f5: call R16 with noreturn - -000005b1: sub frame_dummy(frame_dummy_result) -000005e1: frame_dummy_result :: out u32 = low:32[R0] - -000002ee: -000002f0: call @register_tm_clones with noreturn - -000005b2: sub main(main_argc, main_argv, main_result) -000005e2: main_argc :: in u32 = low:32[R0] -000005e3: main_argv :: in out u64 = R1 -000005e4: main_result :: out u32 = low:32[R0] - -000002f2: -000002f6: R31 := R31 - 0x10 -000002fd: mem := mem with [R31 + 0xC, el]:u32 <- 0 -00000302: R8 := 0x10000 -00000309: R8 := mem[R8 + 0xFC8, el]:u64 -00000310: R8 := pad:64[mem[R8, el]:u32] -00000318: mem := mem with [R31 + 8, el]:u32 <- 31:0[R8] -0000031d: R8 := 0x10000 -00000324: R8 := mem[R8 + 0xFC0, el]:u64 -0000032b: R8 := pad:64[mem[R8, el]:u32] -00000331: #4 := 31:0[R8] - 1 -00000336: VF := extend:33[#4 + 1] <> extend:33[31:0[R8]] + 0 -0000033b: CF := pad:33[#4 + 1] <> pad:33[31:0[R8]] - 0x100000000 -0000033f: ZF := #4 + 1 = 0 -00000343: NF := 31:31[#4 + 1] -00000347: R8 := pad:64[#4 + 1] -00000353: when ZF <> 1 goto %0000034c -00000354: goto %0000034f - -0000034f: -00000350: R8 := 1 -00000356: goto %00000352 - -0000034c: -0000034d: R8 := 0 -00000355: goto %00000352 - -00000352: -0000035c: when 0:0[R8] goto %0000035a -000005d1: goto %00000371 - -00000371: -00000374: goto %00000372 - -00000372: -0000037a: mem := mem with [R31 + 8, el]:u32 <- 0 -0000037e: goto %0000035a - -0000035a: -00000364: R0 := pad:64[mem[R31 + 8, el]:u32] -0000036a: R31 := R31 + 0x10 -0000036f: call R30 with noreturn - -000005b4: sub register_tm_clones(register_tm_clones_result) -000005e5: register_tm_clones_result :: out u32 = low:32[R0] - -00000258: -0000025b: R0 := 0x11000 -00000261: R0 := R0 + 0x30 -00000266: R1 := 0x11000 -0000026c: R1 := R1 + 0x30 -00000273: R1 := R1 + ~R0 + 1 -00000279: R2 := 0.63:63[R1] -00000280: R1 := R2 + (R1 ~>> 3) -00000286: R1 := extend:64[63:1[R1]] -0000028c: when R1 = 0 goto %0000028a -000005d2: goto %000003bb - -000003bb: -000003be: R2 := 0x10000 -000003c5: R2 := mem[R2 + 0xFE0, el]:u64 -000003ca: when R2 = 0 goto %0000028a -000005d3: goto %000003ce - -0000028a: -00000292: call R30 with noreturn - -000003ce: -000003d2: R16 := R2 -000003d7: call R16 with noreturn diff --git a/src/test/correct/basic_sec_policy_read/clang_pic/basic_sec_policy_read.expected b/src/test/correct/basic_sec_policy_read/clang_pic/basic_sec_policy_read.expected index da7e48a7d..45ed79911 100644 --- a/src/test/correct/basic_sec_policy_read/clang_pic/basic_sec_policy_read.expected +++ b/src/test/correct/basic_sec_policy_read/clang_pic/basic_sec_policy_read.expected @@ -2,35 +2,29 @@ var {:extern} CF: bv1; var {:extern} Gamma_CF: bool; var {:extern} Gamma_NF: bool; var {:extern} Gamma_R0: bool; -var {:extern} Gamma_R31: bool; var {:extern} Gamma_R8: bool; +var {:extern} Gamma_R9: bool; var {:extern} Gamma_VF: bool; var {:extern} Gamma_ZF: bool; var {:extern} Gamma_mem: [bv64]bool; -var {:extern} Gamma_stack: [bv64]bool; var {:extern} NF: bv1; var {:extern} R0: bv64; -var {:extern} R31: bv64; var {:extern} R8: bv64; +var {:extern} R9: bv64; var {:extern} VF: bv1; var {:extern} ZF: bv1; var {:extern} mem: [bv64]bv8; -var {:extern} stack: [bv64]bv8; const {:extern} $x_addr: bv64; -axiom ($x_addr == 69684bv64); +axiom ($x_addr == 131092bv64); const {:extern} $z_addr: bv64; -axiom ($z_addr == 69688bv64); +axiom ($z_addr == 131096bv64); function {:extern} L(mem$in: [bv64]bv8, index: bv64) returns (bool) { (if (index == $z_addr) then true else (if (index == $x_addr) then (memory_load32_le(mem$in, $z_addr) == 0bv32) else false)) } -function {:extern} {:bvbuiltin "bvadd"} bvadd32(bv32, bv32) returns (bv32); -function {:extern} {:bvbuiltin "bvadd"} bvadd33(bv33, bv33) returns (bv33); function {:extern} {:bvbuiltin "bvadd"} bvadd64(bv64, bv64) returns (bv64); function {:extern} {:bvbuiltin "bvcomp"} bvcomp1(bv1, bv1) returns (bv1); function {:extern} {:bvbuiltin "bvcomp"} bvcomp32(bv32, bv32) returns (bv1); -function {:extern} {:bvbuiltin "bvcomp"} bvcomp33(bv33, bv33) returns (bv1); -function {:extern} {:bvbuiltin "bvnot"} bvnot1(bv1) returns (bv1); function {:extern} gamma_load32(gammaMap: [bv64]bool, index: bv64) returns (bool) { (gammaMap[bvadd64(index, 3bv64)] && (gammaMap[bvadd64(index, 2bv64)] && (gammaMap[bvadd64(index, 1bv64)] && gammaMap[index]))) } @@ -39,10 +33,6 @@ function {:extern} gamma_load64(gammaMap: [bv64]bool, index: bv64) returns (bool (gammaMap[bvadd64(index, 7bv64)] && (gammaMap[bvadd64(index, 6bv64)] && (gammaMap[bvadd64(index, 5bv64)] && (gammaMap[bvadd64(index, 4bv64)] && (gammaMap[bvadd64(index, 3bv64)] && (gammaMap[bvadd64(index, 2bv64)] && (gammaMap[bvadd64(index, 1bv64)] && gammaMap[index]))))))) } -function {:extern} gamma_store32(gammaMap: [bv64]bool, index: bv64, value: bool) returns ([bv64]bool) { - gammaMap[index := value][bvadd64(index, 1bv64) := value][bvadd64(index, 2bv64) := value][bvadd64(index, 3bv64) := value] -} - function {:extern} memory_load32_le(memory: [bv64]bv8, index: bv64) returns (bv32) { (memory[bvadd64(index, 3bv64)] ++ (memory[bvadd64(index, 2bv64)] ++ (memory[bvadd64(index, 1bv64)] ++ memory[index]))) } @@ -51,24 +41,18 @@ function {:extern} memory_load64_le(memory: [bv64]bv8, index: bv64) returns (bv6 (memory[bvadd64(index, 7bv64)] ++ (memory[bvadd64(index, 6bv64)] ++ (memory[bvadd64(index, 5bv64)] ++ (memory[bvadd64(index, 4bv64)] ++ (memory[bvadd64(index, 3bv64)] ++ (memory[bvadd64(index, 2bv64)] ++ (memory[bvadd64(index, 1bv64)] ++ memory[index]))))))) } -function {:extern} memory_store32_le(memory: [bv64]bv8, index: bv64, value: bv32) returns ([bv64]bv8) { - memory[index := value[8:0]][bvadd64(index, 1bv64) := value[16:8]][bvadd64(index, 2bv64) := value[24:16]][bvadd64(index, 3bv64) := value[32:24]] -} - -function {:extern} {:bvbuiltin "sign_extend 1"} sign_extend1_32(bv32) returns (bv33); -function {:extern} {:bvbuiltin "zero_extend 1"} zero_extend1_32(bv32) returns (bv33); function {:extern} {:bvbuiltin "zero_extend 32"} zero_extend32_32(bv32) returns (bv64); procedure {:extern} rely(); modifies Gamma_mem, mem; ensures (forall i: bv64 :: (((mem[i] == old(mem[i])) ==> (Gamma_mem[i] == old(Gamma_mem[i]))))); ensures ((old(memory_load32_le(mem, $z_addr)) != 0bv32) ==> (memory_load32_le(mem, $z_addr) != 0bv32)); - free ensures (memory_load32_le(mem, 1968bv64) == 131073bv32); - free ensures (memory_load64_le(mem, 69048bv64) == 1872bv64); - free ensures (memory_load64_le(mem, 69056bv64) == 1792bv64); - free ensures (memory_load64_le(mem, 69568bv64) == 69688bv64); - free ensures (memory_load64_le(mem, 69576bv64) == 69684bv64); - free ensures (memory_load64_le(mem, 69592bv64) == 1876bv64); - free ensures (memory_load64_le(mem, 69672bv64) == 69672bv64); + free ensures (memory_load32_le(mem, 2316bv64) == 131073bv32); + free ensures (memory_load64_le(mem, 130424bv64) == 2256bv64); + free ensures (memory_load64_le(mem, 130432bv64) == 2176bv64); + free ensures (memory_load64_le(mem, 131032bv64) == 131096bv64); + free ensures (memory_load64_le(mem, 131040bv64) == 131092bv64); + free ensures (memory_load64_le(mem, 131056bv64) == 2260bv64); + free ensures (memory_load64_le(mem, 131080bv64) == 131080bv64); procedure {:extern} rely_transitive(); modifies Gamma_mem, mem; @@ -95,114 +79,78 @@ implementation {:extern} guarantee_reflexive() assert (memory_load32_le(mem, $z_addr) == memory_load32_le(mem, $z_addr)); } -procedure main_1876(); - modifies CF, Gamma_CF, Gamma_NF, Gamma_R0, Gamma_R31, Gamma_R8, Gamma_VF, Gamma_ZF, Gamma_mem, Gamma_stack, NF, R0, R31, R8, VF, ZF, mem, stack; - free requires (memory_load64_le(mem, 69664bv64) == 0bv64); - free requires (memory_load64_le(mem, 69672bv64) == 69672bv64); - free requires (memory_load32_le(mem, 1968bv64) == 131073bv32); - free requires (memory_load64_le(mem, 69048bv64) == 1872bv64); - free requires (memory_load64_le(mem, 69056bv64) == 1792bv64); - free requires (memory_load64_le(mem, 69568bv64) == 69688bv64); - free requires (memory_load64_le(mem, 69576bv64) == 69684bv64); - free requires (memory_load64_le(mem, 69592bv64) == 1876bv64); - free requires (memory_load64_le(mem, 69672bv64) == 69672bv64); - free ensures (Gamma_R31 == old(Gamma_R31)); - free ensures (R31 == old(R31)); - free ensures (memory_load32_le(mem, 1968bv64) == 131073bv32); - free ensures (memory_load64_le(mem, 69048bv64) == 1872bv64); - free ensures (memory_load64_le(mem, 69056bv64) == 1792bv64); - free ensures (memory_load64_le(mem, 69568bv64) == 69688bv64); - free ensures (memory_load64_le(mem, 69576bv64) == 69684bv64); - free ensures (memory_load64_le(mem, 69592bv64) == 1876bv64); - free ensures (memory_load64_le(mem, 69672bv64) == 69672bv64); - -implementation main_1876() +procedure main(); + modifies CF, Gamma_CF, Gamma_NF, Gamma_R0, Gamma_R8, Gamma_R9, Gamma_VF, Gamma_ZF, Gamma_mem, NF, R0, R8, R9, VF, ZF, mem; + free requires (memory_load64_le(mem, 131072bv64) == 0bv64); + free requires (memory_load64_le(mem, 131080bv64) == 131080bv64); + free requires (memory_load32_le(mem, 2316bv64) == 131073bv32); + free requires (memory_load64_le(mem, 130424bv64) == 2256bv64); + free requires (memory_load64_le(mem, 130432bv64) == 2176bv64); + free requires (memory_load64_le(mem, 131032bv64) == 131096bv64); + free requires (memory_load64_le(mem, 131040bv64) == 131092bv64); + free requires (memory_load64_le(mem, 131056bv64) == 2260bv64); + free requires (memory_load64_le(mem, 131080bv64) == 131080bv64); + free ensures (memory_load32_le(mem, 2316bv64) == 131073bv32); + free ensures (memory_load64_le(mem, 130424bv64) == 2256bv64); + free ensures (memory_load64_le(mem, 130432bv64) == 2176bv64); + free ensures (memory_load64_le(mem, 131032bv64) == 131096bv64); + free ensures (memory_load64_le(mem, 131040bv64) == 131092bv64); + free ensures (memory_load64_le(mem, 131056bv64) == 2260bv64); + free ensures (memory_load64_le(mem, 131080bv64) == 131080bv64); + +implementation main() { - var #4: bv32; - var Gamma_#4: bool; - var Gamma_load18: bool; - var Gamma_load19: bool; - var Gamma_load20: bool; - var Gamma_load21: bool; - var Gamma_load22: bool; - var load18: bv64; - var load19: bv32; - var load20: bv64; - var load21: bv32; - var load22: bv32; + var $load$18: bv64; + var $load$19: bv64; + var $load$20: bv32; + var $load$21: bv32; + var Gamma_$load$18: bool; + var Gamma_$load$19: bool; + var Gamma_$load$20: bool; + var Gamma_$load$21: bool; lmain: assume {:captureState "lmain"} true; - R31, Gamma_R31 := bvadd64(R31, 18446744073709551600bv64), Gamma_R31; - stack, Gamma_stack := memory_store32_le(stack, bvadd64(R31, 12bv64), 0bv32), gamma_store32(Gamma_stack, bvadd64(R31, 12bv64), true); - assume {:captureState "%000002fd"} true; - R8, Gamma_R8 := 65536bv64, true; + R8, Gamma_R8 := 126976bv64, true; + R9, Gamma_R9 := 126976bv64, true; call rely(); - load18, Gamma_load18 := memory_load64_le(mem, bvadd64(R8, 4040bv64)), (gamma_load64(Gamma_mem, bvadd64(R8, 4040bv64)) || L(mem, bvadd64(R8, 4040bv64))); - R8, Gamma_R8 := load18, Gamma_load18; + $load$18, Gamma_$load$18 := memory_load64_le(mem, bvadd64(R8, 4056bv64)), (gamma_load64(Gamma_mem, bvadd64(R8, 4056bv64)) || L(mem, bvadd64(R8, 4056bv64))); + R8, Gamma_R8 := $load$18, Gamma_$load$18; call rely(); - load19, Gamma_load19 := memory_load32_le(mem, R8), (gamma_load32(Gamma_mem, R8) || L(mem, R8)); - R8, Gamma_R8 := zero_extend32_32(load19), Gamma_load19; - stack, Gamma_stack := memory_store32_le(stack, bvadd64(R31, 8bv64), R8[32:0]), gamma_store32(Gamma_stack, bvadd64(R31, 8bv64), Gamma_R8); - assume {:captureState "%00000318"} true; - R8, Gamma_R8 := 65536bv64, true; + $load$19, Gamma_$load$19 := memory_load64_le(mem, bvadd64(R9, 4064bv64)), (gamma_load64(Gamma_mem, bvadd64(R9, 4064bv64)) || L(mem, bvadd64(R9, 4064bv64))); + R9, Gamma_R9 := $load$19, Gamma_$load$19; call rely(); - load20, Gamma_load20 := memory_load64_le(mem, bvadd64(R8, 4032bv64)), (gamma_load64(Gamma_mem, bvadd64(R8, 4032bv64)) || L(mem, bvadd64(R8, 4032bv64))); - R8, Gamma_R8 := load20, Gamma_load20; + $load$20, Gamma_$load$20 := memory_load32_le(mem, R8), (gamma_load32(Gamma_mem, R8) || L(mem, R8)); + R8, Gamma_R8 := zero_extend32_32($load$20), Gamma_$load$20; call rely(); - load21, Gamma_load21 := memory_load32_le(mem, R8), (gamma_load32(Gamma_mem, R8) || L(mem, R8)); - R8, Gamma_R8 := zero_extend32_32(load21), Gamma_load21; - #4, Gamma_#4 := bvadd32(R8[32:0], 4294967295bv32), Gamma_R8; - VF, Gamma_VF := bvnot1(bvcomp33(sign_extend1_32(bvadd32(#4, 1bv32)), bvadd33(sign_extend1_32(R8[32:0]), 0bv33))), (Gamma_R8 && Gamma_#4); - CF, Gamma_CF := bvnot1(bvcomp33(zero_extend1_32(bvadd32(#4, 1bv32)), bvadd33(zero_extend1_32(R8[32:0]), 4294967296bv33))), (Gamma_R8 && Gamma_#4); - ZF, Gamma_ZF := bvcomp32(bvadd32(#4, 1bv32), 0bv32), Gamma_#4; - NF, Gamma_NF := bvadd32(#4, 1bv32)[32:31], Gamma_#4; - R8, Gamma_R8 := zero_extend32_32(bvadd32(#4, 1bv32)), Gamma_#4; + $load$21, Gamma_$load$21 := memory_load32_le(mem, R9), (gamma_load32(Gamma_mem, R9) || L(mem, R9)); + R9, Gamma_R9 := zero_extend32_32($load$21), Gamma_$load$21; + VF, Gamma_VF := 0bv1, true; + CF, Gamma_CF := 1bv1, true; + ZF, Gamma_ZF := bvcomp32(R8[32:0], 0bv32), Gamma_R8; + NF, Gamma_NF := R8[32:31], Gamma_R8; assert Gamma_ZF; - goto lmain_goto_l0000034c, lmain_goto_l0000034f; - lmain_goto_l0000034f: - assume {:captureState "lmain_goto_l0000034f"} true; - assume (bvnot1(bvcomp1(ZF, 1bv1)) == 0bv1); - R8, Gamma_R8 := 1bv64, true; - goto l0000034f; - l0000034f: - assume {:captureState "l0000034f"} true; - goto l00000352; - lmain_goto_l0000034c: - assume {:captureState "lmain_goto_l0000034c"} true; - assume (bvnot1(bvcomp1(ZF, 1bv1)) != 0bv1); - R8, Gamma_R8 := 0bv64, true; - goto l0000034c; - l0000034c: - assume {:captureState "l0000034c"} true; - goto l00000352; - l00000352: - assume {:captureState "l00000352"} true; - assert Gamma_R8; - goto l00000352_goto_l0000035a, l00000352_goto_l00000371; - l00000352_goto_l00000371: - assume {:captureState "l00000352_goto_l00000371"} true; - assume (bvcomp1(R8[1:0], 1bv1) == 0bv1); - goto l00000371; - l00000371: - assume {:captureState "l00000371"} true; - goto l00000372; - l00000372: - assume {:captureState "l00000372"} true; - stack, Gamma_stack := memory_store32_le(stack, bvadd64(R31, 8bv64), 0bv32), gamma_store32(Gamma_stack, bvadd64(R31, 8bv64), true); - assume {:captureState "%0000037a"} true; - goto l0000035a; - l00000352_goto_l0000035a: - assume {:captureState "l00000352_goto_l0000035a"} true; - assume (bvcomp1(R8[1:0], 1bv1) != 0bv1); - goto l0000035a; - l0000035a: - assume {:captureState "l0000035a"} true; - load22, Gamma_load22 := memory_load32_le(stack, bvadd64(R31, 8bv64)), gamma_load32(Gamma_stack, bvadd64(R31, 8bv64)); - R0, Gamma_R0 := zero_extend32_32(load22), Gamma_load22; - R31, Gamma_R31 := bvadd64(R31, 16bv64), Gamma_R31; - goto main_1876_basil_return; - main_1876_basil_return: - assume {:captureState "main_1876_basil_return"} true; + goto lmain_goto_l000002a8, lmain_goto_l000002b0; + l000002b0: + assume {:captureState "l000002b0"} true; + R0, Gamma_R0 := 0bv64, true; + goto l000002bc; + l000002a8: + assume {:captureState "l000002a8"} true; + R0, Gamma_R0 := zero_extend32_32(R9[32:0]), Gamma_R9; + goto l000002bc; + l000002bc: + assume {:captureState "l000002bc"} true; + goto main_basil_return; + lmain_goto_l000002a8: + assume {:captureState "lmain_goto_l000002a8"} true; + assume (bvcomp1(ZF, 1bv1) != 0bv1); + goto l000002a8; + lmain_goto_l000002b0: + assume {:captureState "lmain_goto_l000002b0"} true; + assume (bvcomp1(ZF, 1bv1) == 0bv1); + goto l000002b0; + main_basil_return: + assume {:captureState "main_basil_return"} true; return; } diff --git a/src/test/correct/basic_sec_policy_read/clang_pic/basic_sec_policy_read.gts b/src/test/correct/basic_sec_policy_read/clang_pic/basic_sec_policy_read.gts deleted file mode 100644 index 676885892..000000000 Binary files a/src/test/correct/basic_sec_policy_read/clang_pic/basic_sec_policy_read.gts and /dev/null differ diff --git a/src/test/correct/basic_sec_policy_read/clang_pic/basic_sec_policy_read.md5sum b/src/test/correct/basic_sec_policy_read/clang_pic/basic_sec_policy_read.md5sum new file mode 100644 index 000000000..e604285f8 --- /dev/null +++ b/src/test/correct/basic_sec_policy_read/clang_pic/basic_sec_policy_read.md5sum @@ -0,0 +1,5 @@ +da7c394f9b260b8af7cbcf86d02d74c3 correct/basic_sec_policy_read/clang_pic/a.out +5f51774ac98a9abe36116a859fb53145 correct/basic_sec_policy_read/clang_pic/basic_sec_policy_read.adt +67276e886c39fca50c00741fd4c063e0 correct/basic_sec_policy_read/clang_pic/basic_sec_policy_read.bir +e8386d0a77a53906205074a36ba84a07 correct/basic_sec_policy_read/clang_pic/basic_sec_policy_read.relf +da1d643c97c66dff0ae3b0efbef177d9 correct/basic_sec_policy_read/clang_pic/basic_sec_policy_read.gts diff --git a/src/test/correct/basic_sec_policy_read/clang_pic/basic_sec_policy_read.relf b/src/test/correct/basic_sec_policy_read/clang_pic/basic_sec_policy_read.relf deleted file mode 100644 index dcf72af36..000000000 --- a/src/test/correct/basic_sec_policy_read/clang_pic/basic_sec_policy_read.relf +++ /dev/null @@ -1,126 +0,0 @@ - -Relocation section '.rela.dyn' at offset 0x460 contains 10 entries: - Offset Info Type Symbol's Value Symbol's Name + Addend -0000000000010db8 0000000000000403 R_AARCH64_RELATIVE 750 -0000000000010dc0 0000000000000403 R_AARCH64_RELATIVE 700 -0000000000010fc0 0000000000000403 R_AARCH64_RELATIVE 11038 -0000000000010fc8 0000000000000403 R_AARCH64_RELATIVE 11034 -0000000000010fd8 0000000000000403 R_AARCH64_RELATIVE 754 -0000000000011028 0000000000000403 R_AARCH64_RELATIVE 11028 -0000000000010fb0 0000000400000401 R_AARCH64_GLOB_DAT 0000000000000000 _ITM_deregisterTMCloneTable + 0 -0000000000010fb8 0000000500000401 R_AARCH64_GLOB_DAT 0000000000000000 __cxa_finalize@GLIBC_2.17 + 0 -0000000000010fd0 0000000600000401 R_AARCH64_GLOB_DAT 0000000000000000 __gmon_start__ + 0 -0000000000010fe0 0000000800000401 R_AARCH64_GLOB_DAT 0000000000000000 _ITM_registerTMCloneTable + 0 - -Relocation section '.rela.plt' at offset 0x550 contains 4 entries: - Offset Info Type Symbol's Value Symbol's Name + Addend -0000000000011000 0000000300000402 R_AARCH64_JUMP_SLOT 0000000000000000 __libc_start_main@GLIBC_2.34 + 0 -0000000000011008 0000000500000402 R_AARCH64_JUMP_SLOT 0000000000000000 __cxa_finalize@GLIBC_2.17 + 0 -0000000000011010 0000000600000402 R_AARCH64_JUMP_SLOT 0000000000000000 __gmon_start__ + 0 -0000000000011018 0000000700000402 R_AARCH64_JUMP_SLOT 0000000000000000 abort@GLIBC_2.17 + 0 - -Symbol table '.dynsym' contains 9 entries: - Num: Value Size Type Bind Vis Ndx Name - 0: 0000000000000000 0 NOTYPE LOCAL DEFAULT UND - 1: 00000000000005b0 0 SECTION LOCAL DEFAULT 11 .init - 2: 0000000000011020 0 SECTION LOCAL DEFAULT 23 .data - 3: 0000000000000000 0 FUNC GLOBAL DEFAULT UND __libc_start_main@GLIBC_2.34 (2) - 4: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_deregisterTMCloneTable - 5: 0000000000000000 0 FUNC WEAK DEFAULT UND __cxa_finalize@GLIBC_2.17 (3) - 6: 0000000000000000 0 NOTYPE WEAK DEFAULT UND __gmon_start__ - 7: 0000000000000000 0 FUNC GLOBAL DEFAULT UND abort@GLIBC_2.17 (3) - 8: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_registerTMCloneTable - -Symbol table '.symtab' contains 91 entries: - Num: Value Size Type Bind Vis Ndx Name - 0: 0000000000000000 0 NOTYPE LOCAL DEFAULT UND - 1: 0000000000000238 0 SECTION LOCAL DEFAULT 1 .interp - 2: 0000000000000254 0 SECTION LOCAL DEFAULT 2 .note.gnu.build-id - 3: 0000000000000278 0 SECTION LOCAL DEFAULT 3 .note.ABI-tag - 4: 0000000000000298 0 SECTION LOCAL DEFAULT 4 .gnu.hash - 5: 00000000000002b8 0 SECTION LOCAL DEFAULT 5 .dynsym - 6: 0000000000000390 0 SECTION LOCAL DEFAULT 6 .dynstr - 7: 000000000000041e 0 SECTION LOCAL DEFAULT 7 .gnu.version - 8: 0000000000000430 0 SECTION LOCAL DEFAULT 8 .gnu.version_r - 9: 0000000000000460 0 SECTION LOCAL DEFAULT 9 .rela.dyn - 10: 0000000000000550 0 SECTION LOCAL DEFAULT 10 .rela.plt - 11: 00000000000005b0 0 SECTION LOCAL DEFAULT 11 .init - 12: 00000000000005d0 0 SECTION LOCAL DEFAULT 12 .plt - 13: 0000000000000640 0 SECTION LOCAL DEFAULT 13 .text - 14: 000000000000079c 0 SECTION LOCAL DEFAULT 14 .fini - 15: 00000000000007b0 0 SECTION LOCAL DEFAULT 15 .rodata - 16: 00000000000007b4 0 SECTION LOCAL DEFAULT 16 .eh_frame_hdr - 17: 00000000000007f0 0 SECTION LOCAL DEFAULT 17 .eh_frame - 18: 0000000000010db8 0 SECTION LOCAL DEFAULT 18 .init_array - 19: 0000000000010dc0 0 SECTION LOCAL DEFAULT 19 .fini_array - 20: 0000000000010dc8 0 SECTION LOCAL DEFAULT 20 .dynamic - 21: 0000000000010fa8 0 SECTION LOCAL DEFAULT 21 .got - 22: 0000000000010fe8 0 SECTION LOCAL DEFAULT 22 .got.plt - 23: 0000000000011020 0 SECTION LOCAL DEFAULT 23 .data - 24: 0000000000011030 0 SECTION LOCAL DEFAULT 24 .bss - 25: 0000000000000000 0 SECTION LOCAL DEFAULT 25 .comment - 26: 0000000000000000 0 FILE LOCAL DEFAULT ABS Scrt1.o - 27: 0000000000000278 0 NOTYPE LOCAL DEFAULT 3 $d - 28: 0000000000000278 32 OBJECT LOCAL DEFAULT 3 __abi_tag - 29: 0000000000000640 0 NOTYPE LOCAL DEFAULT 13 $x - 30: 0000000000000804 0 NOTYPE LOCAL DEFAULT 17 $d - 31: 00000000000007b0 0 NOTYPE LOCAL DEFAULT 15 $d - 32: 0000000000000000 0 FILE LOCAL DEFAULT ABS crti.o - 33: 0000000000000674 0 NOTYPE LOCAL DEFAULT 13 $x - 34: 0000000000000674 20 FUNC LOCAL DEFAULT 13 call_weak_fn - 35: 00000000000005b0 0 NOTYPE LOCAL DEFAULT 11 $x - 36: 000000000000079c 0 NOTYPE LOCAL DEFAULT 14 $x - 37: 0000000000000000 0 FILE LOCAL DEFAULT ABS crtn.o - 38: 00000000000005c0 0 NOTYPE LOCAL DEFAULT 11 $x - 39: 00000000000007a8 0 NOTYPE LOCAL DEFAULT 14 $x - 40: 0000000000000000 0 FILE LOCAL DEFAULT ABS crtstuff.c - 41: 0000000000000690 0 NOTYPE LOCAL DEFAULT 13 $x - 42: 0000000000000690 0 FUNC LOCAL DEFAULT 13 deregister_tm_clones - 43: 00000000000006c0 0 FUNC LOCAL DEFAULT 13 register_tm_clones - 44: 0000000000011028 0 NOTYPE LOCAL DEFAULT 23 $d - 45: 0000000000000700 0 FUNC LOCAL DEFAULT 13 __do_global_dtors_aux - 46: 0000000000011030 1 OBJECT LOCAL DEFAULT 24 completed.0 - 47: 0000000000010dc0 0 NOTYPE LOCAL DEFAULT 19 $d - 48: 0000000000010dc0 0 OBJECT LOCAL DEFAULT 19 __do_global_dtors_aux_fini_array_entry - 49: 0000000000000750 0 FUNC LOCAL DEFAULT 13 frame_dummy - 50: 0000000000010db8 0 NOTYPE LOCAL DEFAULT 18 $d - 51: 0000000000010db8 0 OBJECT LOCAL DEFAULT 18 __frame_dummy_init_array_entry - 52: 0000000000000818 0 NOTYPE LOCAL DEFAULT 17 $d - 53: 0000000000011030 0 NOTYPE LOCAL DEFAULT 24 $d - 54: 0000000000000000 0 FILE LOCAL DEFAULT ABS basic_sec_policy_read.c - 55: 0000000000000754 0 NOTYPE LOCAL DEFAULT 13 $x.0 - 56: 0000000000011034 0 NOTYPE LOCAL DEFAULT 24 $d.1 - 57: 000000000000002a 0 NOTYPE LOCAL DEFAULT 25 $d.2 - 58: 0000000000000878 0 NOTYPE LOCAL DEFAULT 17 $d.3 - 59: 0000000000000000 0 FILE LOCAL DEFAULT ABS crtstuff.c - 60: 00000000000008a4 0 NOTYPE LOCAL DEFAULT 17 $d - 61: 00000000000008a4 0 OBJECT LOCAL DEFAULT 17 __FRAME_END__ - 62: 0000000000000000 0 FILE LOCAL DEFAULT ABS - 63: 0000000000010dc8 0 OBJECT LOCAL DEFAULT ABS _DYNAMIC - 64: 00000000000007b4 0 NOTYPE LOCAL DEFAULT 16 __GNU_EH_FRAME_HDR - 65: 0000000000010fa8 0 OBJECT LOCAL DEFAULT ABS _GLOBAL_OFFSET_TABLE_ - 66: 00000000000005d0 0 NOTYPE LOCAL DEFAULT 12 $x - 67: 0000000000000000 0 FUNC GLOBAL DEFAULT UND __libc_start_main@GLIBC_2.34 - 68: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_deregisterTMCloneTable - 69: 0000000000011020 0 NOTYPE WEAK DEFAULT 23 data_start - 70: 0000000000011030 0 NOTYPE GLOBAL DEFAULT 24 __bss_start__ - 71: 0000000000000000 0 FUNC WEAK DEFAULT UND __cxa_finalize@GLIBC_2.17 - 72: 0000000000011040 0 NOTYPE GLOBAL DEFAULT 24 _bss_end__ - 73: 0000000000011030 0 NOTYPE GLOBAL DEFAULT 23 _edata - 74: 0000000000011038 4 OBJECT GLOBAL DEFAULT 24 z - 75: 0000000000011034 4 OBJECT GLOBAL DEFAULT 24 x - 76: 000000000000079c 0 FUNC GLOBAL HIDDEN 14 _fini - 77: 0000000000011040 0 NOTYPE GLOBAL DEFAULT 24 __bss_end__ - 78: 0000000000011020 0 NOTYPE GLOBAL DEFAULT 23 __data_start - 79: 0000000000000000 0 NOTYPE WEAK DEFAULT UND __gmon_start__ - 80: 0000000000011028 0 OBJECT GLOBAL HIDDEN 23 __dso_handle - 81: 0000000000000000 0 FUNC GLOBAL DEFAULT UND abort@GLIBC_2.17 - 82: 00000000000007b0 4 OBJECT GLOBAL DEFAULT 15 _IO_stdin_used - 83: 0000000000011040 0 NOTYPE GLOBAL DEFAULT 24 _end - 84: 0000000000000640 52 FUNC GLOBAL DEFAULT 13 _start - 85: 0000000000011040 0 NOTYPE GLOBAL DEFAULT 24 __end__ - 86: 0000000000011030 0 NOTYPE GLOBAL DEFAULT 24 __bss_start - 87: 0000000000000754 72 FUNC GLOBAL DEFAULT 13 main - 88: 0000000000011030 0 OBJECT GLOBAL HIDDEN 23 __TMC_END__ - 89: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_registerTMCloneTable - 90: 00000000000005b0 0 FUNC GLOBAL HIDDEN 11 _init diff --git a/src/test/correct/basic_sec_policy_read/clang_pic/basic_sec_policy_read_gtirb.expected b/src/test/correct/basic_sec_policy_read/clang_pic/basic_sec_policy_read_gtirb.expected index 30df1dc94..ab9b533bc 100644 --- a/src/test/correct/basic_sec_policy_read/clang_pic/basic_sec_policy_read_gtirb.expected +++ b/src/test/correct/basic_sec_policy_read/clang_pic/basic_sec_policy_read_gtirb.expected @@ -2,34 +2,28 @@ var {:extern} CF: bv1; var {:extern} Gamma_CF: bool; var {:extern} Gamma_NF: bool; var {:extern} Gamma_R0: bool; -var {:extern} Gamma_R31: bool; var {:extern} Gamma_R8: bool; +var {:extern} Gamma_R9: bool; var {:extern} Gamma_VF: bool; var {:extern} Gamma_ZF: bool; var {:extern} Gamma_mem: [bv64]bool; -var {:extern} Gamma_stack: [bv64]bool; var {:extern} NF: bv1; var {:extern} R0: bv64; -var {:extern} R31: bv64; var {:extern} R8: bv64; +var {:extern} R9: bv64; var {:extern} VF: bv1; var {:extern} ZF: bv1; var {:extern} mem: [bv64]bv8; -var {:extern} stack: [bv64]bv8; const {:extern} $x_addr: bv64; -axiom ($x_addr == 69684bv64); +axiom ($x_addr == 131092bv64); const {:extern} $z_addr: bv64; -axiom ($z_addr == 69688bv64); +axiom ($z_addr == 131096bv64); function {:extern} L(mem$in: [bv64]bv8, index: bv64) returns (bool) { (if (index == $z_addr) then true else (if (index == $x_addr) then (memory_load32_le(mem$in, $z_addr) == 0bv32) else false)) } -function {:extern} {:bvbuiltin "bvadd"} bvadd32(bv32, bv32) returns (bv32); -function {:extern} {:bvbuiltin "bvadd"} bvadd33(bv33, bv33) returns (bv33); function {:extern} {:bvbuiltin "bvadd"} bvadd64(bv64, bv64) returns (bv64); function {:extern} {:bvbuiltin "bvcomp"} bvcomp32(bv32, bv32) returns (bv1); -function {:extern} {:bvbuiltin "bvcomp"} bvcomp33(bv33, bv33) returns (bv1); -function {:extern} {:bvbuiltin "bvnot"} bvnot1(bv1) returns (bv1); function {:extern} gamma_load32(gammaMap: [bv64]bool, index: bv64) returns (bool) { (gammaMap[bvadd64(index, 3bv64)] && (gammaMap[bvadd64(index, 2bv64)] && (gammaMap[bvadd64(index, 1bv64)] && gammaMap[index]))) } @@ -38,10 +32,6 @@ function {:extern} gamma_load64(gammaMap: [bv64]bool, index: bv64) returns (bool (gammaMap[bvadd64(index, 7bv64)] && (gammaMap[bvadd64(index, 6bv64)] && (gammaMap[bvadd64(index, 5bv64)] && (gammaMap[bvadd64(index, 4bv64)] && (gammaMap[bvadd64(index, 3bv64)] && (gammaMap[bvadd64(index, 2bv64)] && (gammaMap[bvadd64(index, 1bv64)] && gammaMap[index]))))))) } -function {:extern} gamma_store32(gammaMap: [bv64]bool, index: bv64, value: bool) returns ([bv64]bool) { - gammaMap[index := value][bvadd64(index, 1bv64) := value][bvadd64(index, 2bv64) := value][bvadd64(index, 3bv64) := value] -} - function {:extern} memory_load32_le(memory: [bv64]bv8, index: bv64) returns (bv32) { (memory[bvadd64(index, 3bv64)] ++ (memory[bvadd64(index, 2bv64)] ++ (memory[bvadd64(index, 1bv64)] ++ memory[index]))) } @@ -50,23 +40,18 @@ function {:extern} memory_load64_le(memory: [bv64]bv8, index: bv64) returns (bv6 (memory[bvadd64(index, 7bv64)] ++ (memory[bvadd64(index, 6bv64)] ++ (memory[bvadd64(index, 5bv64)] ++ (memory[bvadd64(index, 4bv64)] ++ (memory[bvadd64(index, 3bv64)] ++ (memory[bvadd64(index, 2bv64)] ++ (memory[bvadd64(index, 1bv64)] ++ memory[index]))))))) } -function {:extern} memory_store32_le(memory: [bv64]bv8, index: bv64, value: bv32) returns ([bv64]bv8) { - memory[index := value[8:0]][bvadd64(index, 1bv64) := value[16:8]][bvadd64(index, 2bv64) := value[24:16]][bvadd64(index, 3bv64) := value[32:24]] -} - -function {:extern} {:bvbuiltin "zero_extend 1"} zero_extend1_32(bv32) returns (bv33); function {:extern} {:bvbuiltin "zero_extend 32"} zero_extend32_32(bv32) returns (bv64); procedure {:extern} rely(); modifies Gamma_mem, mem; ensures (forall i: bv64 :: (((mem[i] == old(mem[i])) ==> (Gamma_mem[i] == old(Gamma_mem[i]))))); ensures ((old(memory_load32_le(mem, $z_addr)) != 0bv32) ==> (memory_load32_le(mem, $z_addr) != 0bv32)); - free ensures (memory_load32_le(mem, 1968bv64) == 131073bv32); - free ensures (memory_load64_le(mem, 69048bv64) == 1872bv64); - free ensures (memory_load64_le(mem, 69056bv64) == 1792bv64); - free ensures (memory_load64_le(mem, 69568bv64) == 69688bv64); - free ensures (memory_load64_le(mem, 69576bv64) == 69684bv64); - free ensures (memory_load64_le(mem, 69592bv64) == 1876bv64); - free ensures (memory_load64_le(mem, 69672bv64) == 69672bv64); + free ensures (memory_load32_le(mem, 2316bv64) == 131073bv32); + free ensures (memory_load64_le(mem, 130424bv64) == 2256bv64); + free ensures (memory_load64_le(mem, 130432bv64) == 2176bv64); + free ensures (memory_load64_le(mem, 131032bv64) == 131096bv64); + free ensures (memory_load64_le(mem, 131040bv64) == 131092bv64); + free ensures (memory_load64_le(mem, 131056bv64) == 2260bv64); + free ensures (memory_load64_le(mem, 131080bv64) == 131080bv64); procedure {:extern} rely_transitive(); modifies Gamma_mem, mem; @@ -93,106 +78,69 @@ implementation {:extern} guarantee_reflexive() assert (memory_load32_le(mem, $z_addr) == memory_load32_le(mem, $z_addr)); } -procedure main_1876(); - modifies CF, Gamma_CF, Gamma_NF, Gamma_R0, Gamma_R31, Gamma_R8, Gamma_VF, Gamma_ZF, Gamma_mem, Gamma_stack, NF, R0, R31, R8, VF, ZF, mem, stack; - free requires (memory_load64_le(mem, 69664bv64) == 0bv64); - free requires (memory_load64_le(mem, 69672bv64) == 69672bv64); - free requires (memory_load32_le(mem, 1968bv64) == 131073bv32); - free requires (memory_load64_le(mem, 69048bv64) == 1872bv64); - free requires (memory_load64_le(mem, 69056bv64) == 1792bv64); - free requires (memory_load64_le(mem, 69568bv64) == 69688bv64); - free requires (memory_load64_le(mem, 69576bv64) == 69684bv64); - free requires (memory_load64_le(mem, 69592bv64) == 1876bv64); - free requires (memory_load64_le(mem, 69672bv64) == 69672bv64); - free ensures (Gamma_R31 == old(Gamma_R31)); - free ensures (R31 == old(R31)); - free ensures (memory_load32_le(mem, 1968bv64) == 131073bv32); - free ensures (memory_load64_le(mem, 69048bv64) == 1872bv64); - free ensures (memory_load64_le(mem, 69056bv64) == 1792bv64); - free ensures (memory_load64_le(mem, 69568bv64) == 69688bv64); - free ensures (memory_load64_le(mem, 69576bv64) == 69684bv64); - free ensures (memory_load64_le(mem, 69592bv64) == 1876bv64); - free ensures (memory_load64_le(mem, 69672bv64) == 69672bv64); - -implementation main_1876() +procedure main(); + modifies CF, Gamma_CF, Gamma_NF, Gamma_R0, Gamma_R8, Gamma_R9, Gamma_VF, Gamma_ZF, Gamma_mem, NF, R0, R8, R9, VF, ZF, mem; + free requires (memory_load64_le(mem, 131072bv64) == 0bv64); + free requires (memory_load64_le(mem, 131080bv64) == 131080bv64); + free requires (memory_load32_le(mem, 2316bv64) == 131073bv32); + free requires (memory_load64_le(mem, 130424bv64) == 2256bv64); + free requires (memory_load64_le(mem, 130432bv64) == 2176bv64); + free requires (memory_load64_le(mem, 131032bv64) == 131096bv64); + free requires (memory_load64_le(mem, 131040bv64) == 131092bv64); + free requires (memory_load64_le(mem, 131056bv64) == 2260bv64); + free requires (memory_load64_le(mem, 131080bv64) == 131080bv64); + free ensures (memory_load32_le(mem, 2316bv64) == 131073bv32); + free ensures (memory_load64_le(mem, 130424bv64) == 2256bv64); + free ensures (memory_load64_le(mem, 130432bv64) == 2176bv64); + free ensures (memory_load64_le(mem, 131032bv64) == 131096bv64); + free ensures (memory_load64_le(mem, 131040bv64) == 131092bv64); + free ensures (memory_load64_le(mem, 131056bv64) == 2260bv64); + free ensures (memory_load64_le(mem, 131080bv64) == 131080bv64); + +implementation main() { - var Cse0__5_3_9: bv32; - var Gamma_Cse0__5_3_9: bool; - var Gamma_load17: bool; - var Gamma_load18: bool; - var Gamma_load19: bool; - var Gamma_load20: bool; - var Gamma_load21: bool; - var load17: bv32; - var load18: bv64; - var load19: bv32; - var load20: bv64; - var load21: bv32; - main_1876__0___zy4nZRRQ4202Be_0Qr3jw: - assume {:captureState "main_1876__0___zy4nZRRQ4202Be_0Qr3jw"} true; - R31, Gamma_R31 := bvadd64(R31, 18446744073709551600bv64), Gamma_R31; - stack, Gamma_stack := memory_store32_le(stack, bvadd64(R31, 12bv64), 0bv32), gamma_store32(Gamma_stack, bvadd64(R31, 12bv64), true); - assume {:captureState "1880_0"} true; - R8, Gamma_R8 := 65536bv64, true; + var $load5: bv64; + var $load6: bv64; + var $load7: bv32; + var $load8: bv32; + var Gamma_$load5: bool; + var Gamma_$load6: bool; + var Gamma_$load7: bool; + var Gamma_$load8: bool; + $main$__0__$D9t2gNJrSmyMH3GAVRe3IQ: + assume {:captureState "$main$__0__$D9t2gNJrSmyMH3GAVRe3IQ"} true; + R8, Gamma_R8 := 126976bv64, true; + R9, Gamma_R9 := 126976bv64, true; call rely(); - load18, Gamma_load18 := memory_load64_le(mem, bvadd64(R8, 4040bv64)), (gamma_load64(Gamma_mem, bvadd64(R8, 4040bv64)) || L(mem, bvadd64(R8, 4040bv64))); - R8, Gamma_R8 := load18, Gamma_load18; + $load5, Gamma_$load5 := memory_load64_le(mem, bvadd64(R8, 4056bv64)), (gamma_load64(Gamma_mem, bvadd64(R8, 4056bv64)) || L(mem, bvadd64(R8, 4056bv64))); + R8, Gamma_R8 := $load5, Gamma_$load5; call rely(); - load19, Gamma_load19 := memory_load32_le(mem, R8), (gamma_load32(Gamma_mem, R8) || L(mem, R8)); - R8, Gamma_R8 := zero_extend32_32(load19), Gamma_load19; - stack, Gamma_stack := memory_store32_le(stack, bvadd64(R31, 8bv64), R8[32:0]), gamma_store32(Gamma_stack, bvadd64(R31, 8bv64), Gamma_R8); - assume {:captureState "1896_0"} true; - R8, Gamma_R8 := 65536bv64, true; + $load6, Gamma_$load6 := memory_load64_le(mem, bvadd64(R9, 4064bv64)), (gamma_load64(Gamma_mem, bvadd64(R9, 4064bv64)) || L(mem, bvadd64(R9, 4064bv64))); + R9, Gamma_R9 := $load6, Gamma_$load6; call rely(); - load20, Gamma_load20 := memory_load64_le(mem, bvadd64(R8, 4032bv64)), (gamma_load64(Gamma_mem, bvadd64(R8, 4032bv64)) || L(mem, bvadd64(R8, 4032bv64))); - R8, Gamma_R8 := load20, Gamma_load20; + $load7, Gamma_$load7 := memory_load32_le(mem, R8), (gamma_load32(Gamma_mem, R8) || L(mem, R8)); + R8, Gamma_R8 := zero_extend32_32($load7), Gamma_$load7; call rely(); - load21, Gamma_load21 := memory_load32_le(mem, R8), (gamma_load32(Gamma_mem, R8) || L(mem, R8)); - R8, Gamma_R8 := zero_extend32_32(load21), Gamma_load21; - Cse0__5_3_9, Gamma_Cse0__5_3_9 := bvadd32(R8[32:0], 0bv32), Gamma_R8; - VF, Gamma_VF := bvnot1(bvcomp32(Cse0__5_3_9, Cse0__5_3_9)), Gamma_Cse0__5_3_9; - CF, Gamma_CF := bvnot1(bvcomp33(zero_extend1_32(Cse0__5_3_9), bvadd33(zero_extend1_32(R8[32:0]), 4294967296bv33))), (Gamma_R8 && Gamma_Cse0__5_3_9); - ZF, Gamma_ZF := bvcomp32(Cse0__5_3_9, 0bv32), Gamma_Cse0__5_3_9; - NF, Gamma_NF := Cse0__5_3_9[32:31], Gamma_Cse0__5_3_9; - R8, Gamma_R8 := zero_extend32_32(Cse0__5_3_9), Gamma_Cse0__5_3_9; + $load8, Gamma_$load8 := memory_load32_le(mem, R9), (gamma_load32(Gamma_mem, R9) || L(mem, R9)); + R9, Gamma_R9 := zero_extend32_32($load8), Gamma_$load8; + VF, Gamma_VF := 0bv1, true; + CF, Gamma_CF := 1bv1, true; + ZF, Gamma_ZF := bvcomp32(R8[32:0], 0bv32), Gamma_R8; + NF, Gamma_NF := R8[32:31], Gamma_R8; assert Gamma_ZF; - goto main_1876__0___zy4nZRRQ4202Be_0Qr3jw$__0, main_1876__0___zy4nZRRQ4202Be_0Qr3jw$__1; - main_1876__0___zy4nZRRQ4202Be_0Qr3jw$__1: - assume {:captureState "main_1876__0___zy4nZRRQ4202Be_0Qr3jw$__1"} true; - assume (!(!(ZF == 1bv1))); - R8, Gamma_R8 := 1bv64, true; - assert Gamma_R8; - goto main_1876__0___zy4nZRRQ4202Be_0Qr3jw_goto_main_1876__3__LP5ka6yvSFWP2kjw23G57g, main_1876__0___zy4nZRRQ4202Be_0Qr3jw_goto_main_1876__1__rmVyzzfSSQeYVjuxiNU3PA; - main_1876__0___zy4nZRRQ4202Be_0Qr3jw$__0: - assume {:captureState "main_1876__0___zy4nZRRQ4202Be_0Qr3jw$__0"} true; + goto $main$__0__$D9t2gNJrSmyMH3GAVRe3IQ$__0, $main$__0__$D9t2gNJrSmyMH3GAVRe3IQ$__1; + $main$__0__$D9t2gNJrSmyMH3GAVRe3IQ$__0: + assume {:captureState "$main$__0__$D9t2gNJrSmyMH3GAVRe3IQ$__0"} true; + assume (ZF == 1bv1); + R0, Gamma_R0 := zero_extend32_32(R9[32:0]), Gamma_R9; + goto main_basil_return; + $main$__0__$D9t2gNJrSmyMH3GAVRe3IQ$__1: + assume {:captureState "$main$__0__$D9t2gNJrSmyMH3GAVRe3IQ$__1"} true; assume (!(ZF == 1bv1)); - R8, Gamma_R8 := 0bv64, true; - assert Gamma_R8; - goto main_1876__0___zy4nZRRQ4202Be_0Qr3jw_goto_main_1876__3__LP5ka6yvSFWP2kjw23G57g, main_1876__0___zy4nZRRQ4202Be_0Qr3jw_goto_main_1876__1__rmVyzzfSSQeYVjuxiNU3PA; - main_1876__0___zy4nZRRQ4202Be_0Qr3jw_goto_main_1876__1__rmVyzzfSSQeYVjuxiNU3PA: - assume {:captureState "main_1876__0___zy4nZRRQ4202Be_0Qr3jw_goto_main_1876__1__rmVyzzfSSQeYVjuxiNU3PA"} true; - assume (!(R8[1:0] == 1bv1)); - goto main_1876__1__rmVyzzfSSQeYVjuxiNU3PA; - main_1876__1__rmVyzzfSSQeYVjuxiNU3PA: - assume {:captureState "main_1876__1__rmVyzzfSSQeYVjuxiNU3PA"} true; - goto main_1876__2__nmt_XUHDT5eyVHAHshN3ww; - main_1876__2__nmt_XUHDT5eyVHAHshN3ww: - assume {:captureState "main_1876__2__nmt_XUHDT5eyVHAHshN3ww"} true; - stack, Gamma_stack := memory_store32_le(stack, bvadd64(R31, 8bv64), 0bv32), gamma_store32(Gamma_stack, bvadd64(R31, 8bv64), true); - assume {:captureState "1928_0"} true; - goto main_1876__3__LP5ka6yvSFWP2kjw23G57g; - main_1876__0___zy4nZRRQ4202Be_0Qr3jw_goto_main_1876__3__LP5ka6yvSFWP2kjw23G57g: - assume {:captureState "main_1876__0___zy4nZRRQ4202Be_0Qr3jw_goto_main_1876__3__LP5ka6yvSFWP2kjw23G57g"} true; - assume (R8[1:0] == 1bv1); - goto main_1876__3__LP5ka6yvSFWP2kjw23G57g; - main_1876__3__LP5ka6yvSFWP2kjw23G57g: - assume {:captureState "main_1876__3__LP5ka6yvSFWP2kjw23G57g"} true; - load17, Gamma_load17 := memory_load32_le(stack, bvadd64(R31, 8bv64)), gamma_load32(Gamma_stack, bvadd64(R31, 8bv64)); - R0, Gamma_R0 := zero_extend32_32(load17), Gamma_load17; - R31, Gamma_R31 := bvadd64(R31, 16bv64), Gamma_R31; - goto main_1876_basil_return; - main_1876_basil_return: - assume {:captureState "main_1876_basil_return"} true; + R0, Gamma_R0 := 0bv64, true; + goto main_basil_return; + main_basil_return: + assume {:captureState "main_basil_return"} true; return; } diff --git a/src/test/correct/basic_sec_policy_read/gcc/basic_sec_policy_read.adt b/src/test/correct/basic_sec_policy_read/gcc/basic_sec_policy_read.adt deleted file mode 100644 index c54f5ce6c..000000000 --- a/src/test/correct/basic_sec_policy_read/gcc/basic_sec_policy_read.adt +++ /dev/null @@ -1,533 +0,0 @@ -Project(Attrs([Attr("filename","\"gcc/basic_sec_policy_read.out\""), -Attr("image-specification","(declare abi (name str))\n(declare arch (name str))\n(declare base-address (addr int))\n(declare bias (off int))\n(declare bits (size int))\n(declare code-region (addr int) (size int) (off int))\n(declare code-start (addr int))\n(declare entry-point (addr int))\n(declare external-reference (addr int) (name str))\n(declare format (name str))\n(declare is-executable (flag bool))\n(declare is-little-endian (flag bool))\n(declare llvm:base-address (addr int))\n(declare llvm:code-entry (name str) (off int) (size int))\n(declare llvm:coff-import-library (name str))\n(declare llvm:coff-virtual-section-header (name str) (addr int) (size int))\n(declare llvm:elf-program-header (name str) (off int) (size int))\n(declare llvm:elf-program-header-flags (name str) (ld bool) (r bool) \n (w bool) (x bool))\n(declare llvm:elf-virtual-program-header (name str) (addr int) (size int))\n(declare llvm:entry-point (addr int))\n(declare llvm:macho-symbol (name str) (value int))\n(declare llvm:name-reference (at int) (name str))\n(declare llvm:relocation (at int) (addr int))\n(declare llvm:section-entry (name str) (addr int) (size int) (off int))\n(declare llvm:section-flags (name str) (r bool) (w bool) (x bool))\n(declare llvm:segment-command (name str) (off int) (size int))\n(declare llvm:segment-command-flags (name str) (r bool) (w bool) (x bool))\n(declare llvm:symbol-entry (name str) (addr int) (size int) (off int)\n (value int))\n(declare llvm:virtual-segment-command (name str) (addr int) (size int))\n(declare mapped (addr int) (size int) (off int))\n(declare named-region (addr int) (size int) (name str))\n(declare named-symbol (addr int) (name str))\n(declare require (name str))\n(declare section (addr int) (size int))\n(declare segment (addr int) (size int) (r bool) (w bool) (x bool))\n(declare subarch (name str))\n(declare symbol-chunk (addr int) (size int) (root int))\n(declare symbol-value (addr int) (value int))\n(declare system (name str))\n(declare vendor (name str))\n\n(abi unknown)\n(arch aarch64)\n(base-address 0)\n(bias 0)\n(bits 64)\n(code-region 1868 20 1868)\n(code-region 1536 332 1536)\n(code-region 1440 96 1440)\n(code-region 1408 24 1408)\n(code-start 1588)\n(code-start 1536)\n(code-start 1812)\n(entry-point 1536)\n(external-reference 69592 _ITM_deregisterTMCloneTable)\n(external-reference 69600 __cxa_finalize)\n(external-reference 69608 __gmon_start__)\n(external-reference 69624 _ITM_registerTMCloneTable)\n(external-reference 69552 __libc_start_main)\n(external-reference 69560 __cxa_finalize)\n(external-reference 69568 __gmon_start__)\n(external-reference 69576 abort)\n(format elf)\n(is-executable true)\n(is-little-endian true)\n(llvm:base-address 0)\n(llvm:code-entry abort 0 0)\n(llvm:code-entry __cxa_finalize 0 0)\n(llvm:code-entry __libc_start_main 0 0)\n(llvm:code-entry _init 1408 0)\n(llvm:code-entry main 1812 56)\n(llvm:code-entry _start 1536 52)\n(llvm:code-entry abort@GLIBC_2.17 0 0)\n(llvm:code-entry _fini 1868 0)\n(llvm:code-entry __cxa_finalize@GLIBC_2.17 0 0)\n(llvm:code-entry __libc_start_main@GLIBC_2.34 0 0)\n(llvm:code-entry frame_dummy 1808 0)\n(llvm:code-entry __do_global_dtors_aux 1728 0)\n(llvm:code-entry register_tm_clones 1664 0)\n(llvm:code-entry deregister_tm_clones 1616 0)\n(llvm:code-entry call_weak_fn 1588 20)\n(llvm:code-entry .fini 1868 20)\n(llvm:code-entry .text 1536 332)\n(llvm:code-entry .plt 1440 96)\n(llvm:code-entry .init 1408 24)\n(llvm:elf-program-header 08 3480 616)\n(llvm:elf-program-header 07 0 0)\n(llvm:elf-program-header 06 1892 60)\n(llvm:elf-program-header 05 596 68)\n(llvm:elf-program-header 04 3496 496)\n(llvm:elf-program-header 03 3480 632)\n(llvm:elf-program-header 02 0 2116)\n(llvm:elf-program-header 01 568 27)\n(llvm:elf-program-header 00 64 504)\n(llvm:elf-program-header-flags 08 false true false false)\n(llvm:elf-program-header-flags 07 false true true false)\n(llvm:elf-program-header-flags 06 false true false false)\n(llvm:elf-program-header-flags 05 false true false false)\n(llvm:elf-program-header-flags 04 false true true false)\n(llvm:elf-program-header-flags 03 true true true false)\n(llvm:elf-program-header-flags 02 true true false true)\n(llvm:elf-program-header-flags 01 false true false false)\n(llvm:elf-program-header-flags 00 false true false false)\n(llvm:elf-virtual-program-header 08 69016 616)\n(llvm:elf-virtual-program-header 07 0 0)\n(llvm:elf-virtual-program-header 06 1892 60)\n(llvm:elf-virtual-program-header 05 596 68)\n(llvm:elf-virtual-program-header 04 69032 496)\n(llvm:elf-virtual-program-header 03 69016 648)\n(llvm:elf-virtual-program-header 02 0 2116)\n(llvm:elf-virtual-program-header 01 568 27)\n(llvm:elf-virtual-program-header 00 64 504)\n(llvm:entry-point 1536)\n(llvm:name-reference 69576 abort)\n(llvm:name-reference 69568 __gmon_start__)\n(llvm:name-reference 69560 __cxa_finalize)\n(llvm:name-reference 69552 __libc_start_main)\n(llvm:name-reference 69624 _ITM_registerTMCloneTable)\n(llvm:name-reference 69608 __gmon_start__)\n(llvm:name-reference 69600 __cxa_finalize)\n(llvm:name-reference 69592 _ITM_deregisterTMCloneTable)\n(llvm:section-entry .shstrtab 0 250 6855)\n(llvm:section-entry .strtab 0 559 6296)\n(llvm:section-entry .symtab 0 2136 4160)\n(llvm:section-entry .comment 0 43 4112)\n(llvm:section-entry .bss 69648 16 4112)\n(llvm:section-entry .data 69632 16 4096)\n(llvm:section-entry .got 69528 104 3992)\n(llvm:section-entry .dynamic 69032 496 3496)\n(llvm:section-entry .fini_array 69024 8 3488)\n(llvm:section-entry .init_array 69016 8 3480)\n(llvm:section-entry .eh_frame 1952 164 1952)\n(llvm:section-entry .eh_frame_hdr 1892 60 1892)\n(llvm:section-entry .rodata 1888 4 1888)\n(llvm:section-entry .fini 1868 20 1868)\n(llvm:section-entry .text 1536 332 1536)\n(llvm:section-entry .plt 1440 96 1440)\n(llvm:section-entry .init 1408 24 1408)\n(llvm:section-entry .rela.plt 1312 96 1312)\n(llvm:section-entry .rela.dyn 1120 192 1120)\n(llvm:section-entry .gnu.version_r 1072 48 1072)\n(llvm:section-entry .gnu.version 1054 18 1054)\n(llvm:section-entry .dynstr 912 141 912)\n(llvm:section-entry .dynsym 696 216 696)\n(llvm:section-entry .gnu.hash 664 28 664)\n(llvm:section-entry .note.ABI-tag 632 32 632)\n(llvm:section-entry .note.gnu.build-id 596 36 596)\n(llvm:section-entry .interp 568 27 568)\n(llvm:section-flags .shstrtab true false false)\n(llvm:section-flags .strtab true false false)\n(llvm:section-flags .symtab true false false)\n(llvm:section-flags .comment true false false)\n(llvm:section-flags .bss true true false)\n(llvm:section-flags .data true true false)\n(llvm:section-flags .got true true false)\n(llvm:section-flags .dynamic true true false)\n(llvm:section-flags .fini_array true true false)\n(llvm:section-flags .init_array true true false)\n(llvm:section-flags .eh_frame true false false)\n(llvm:section-flags .eh_frame_hdr true false false)\n(llvm:section-flags .rodata true false false)\n(llvm:section-flags .fini true false true)\n(llvm:section-flags .text true false true)\n(llvm:section-flags .plt true false true)\n(llvm:section-flags .init true false true)\n(llvm:section-flags .rela.plt true false false)\n(llvm:section-flags .rela.dyn true false false)\n(llvm:section-flags .gnu.version_r true false false)\n(llvm:section-flags .gnu.version true false false)\n(llvm:section-flags .dynstr true false false)\n(llvm:section-flags .dynsym true false false)\n(llvm:section-flags .gnu.hash true false false)\n(llvm:section-flags .note.ABI-tag true false false)\n(llvm:section-flags .note.gnu.build-id true false false)\n(llvm:section-flags .interp true false false)\n(llvm:symbol-entry abort 0 0 0 0)\n(llvm:symbol-entry __cxa_finalize 0 0 0 0)\n(llvm:symbol-entry __libc_start_main 0 0 0 0)\n(llvm:symbol-entry _init 1408 0 1408 1408)\n(llvm:symbol-entry main 1812 56 1812 1812)\n(llvm:symbol-entry _start 1536 52 1536 1536)\n(llvm:symbol-entry abort@GLIBC_2.17 0 0 0 0)\n(llvm:symbol-entry _fini 1868 0 1868 1868)\n(llvm:symbol-entry __cxa_finalize@GLIBC_2.17 0 0 0 0)\n(llvm:symbol-entry __libc_start_main@GLIBC_2.34 0 0 0 0)\n(llvm:symbol-entry frame_dummy 1808 0 1808 1808)\n(llvm:symbol-entry __do_global_dtors_aux 1728 0 1728 1728)\n(llvm:symbol-entry register_tm_clones 1664 0 1664 1664)\n(llvm:symbol-entry deregister_tm_clones 1616 0 1616 1616)\n(llvm:symbol-entry call_weak_fn 1588 20 1588 1588)\n(mapped 0 2116 0)\n(mapped 69016 632 3480)\n(named-region 0 2116 02)\n(named-region 69016 648 03)\n(named-region 568 27 .interp)\n(named-region 596 36 .note.gnu.build-id)\n(named-region 632 32 .note.ABI-tag)\n(named-region 664 28 .gnu.hash)\n(named-region 696 216 .dynsym)\n(named-region 912 141 .dynstr)\n(named-region 1054 18 .gnu.version)\n(named-region 1072 48 .gnu.version_r)\n(named-region 1120 192 .rela.dyn)\n(named-region 1312 96 .rela.plt)\n(named-region 1408 24 .init)\n(named-region 1440 96 .plt)\n(named-region 1536 332 .text)\n(named-region 1868 20 .fini)\n(named-region 1888 4 .rodata)\n(named-region 1892 60 .eh_frame_hdr)\n(named-region 1952 164 .eh_frame)\n(named-region 69016 8 .init_array)\n(named-region 69024 8 .fini_array)\n(named-region 69032 496 .dynamic)\n(named-region 69528 104 .got)\n(named-region 69632 16 .data)\n(named-region 69648 16 .bss)\n(named-region 0 43 .comment)\n(named-region 0 2136 .symtab)\n(named-region 0 559 .strtab)\n(named-region 0 250 .shstrtab)\n(named-symbol 1588 call_weak_fn)\n(named-symbol 1616 deregister_tm_clones)\n(named-symbol 1664 register_tm_clones)\n(named-symbol 1728 __do_global_dtors_aux)\n(named-symbol 1808 frame_dummy)\n(named-symbol 0 __libc_start_main@GLIBC_2.34)\n(named-symbol 0 __cxa_finalize@GLIBC_2.17)\n(named-symbol 1868 _fini)\n(named-symbol 0 abort@GLIBC_2.17)\n(named-symbol 1536 _start)\n(named-symbol 1812 main)\n(named-symbol 1408 _init)\n(named-symbol 0 __libc_start_main)\n(named-symbol 0 __cxa_finalize)\n(named-symbol 0 abort)\n(require libc.so.6)\n(section 568 27)\n(section 596 36)\n(section 632 32)\n(section 664 28)\n(section 696 216)\n(section 912 141)\n(section 1054 18)\n(section 1072 48)\n(section 1120 192)\n(section 1312 96)\n(section 1408 24)\n(section 1440 96)\n(section 1536 332)\n(section 1868 20)\n(section 1888 4)\n(section 1892 60)\n(section 1952 164)\n(section 69016 8)\n(section 69024 8)\n(section 69032 496)\n(section 69528 104)\n(section 69632 16)\n(section 69648 16)\n(section 0 43)\n(section 0 2136)\n(section 0 559)\n(section 0 250)\n(segment 0 2116 true false true)\n(segment 69016 648 true true false)\n(subarch v8)\n(symbol-chunk 1588 20 1588)\n(symbol-chunk 1536 52 1536)\n(symbol-chunk 1812 56 1812)\n(symbol-value 1588 1588)\n(symbol-value 1616 1616)\n(symbol-value 1664 1664)\n(symbol-value 1728 1728)\n(symbol-value 1808 1808)\n(symbol-value 1868 1868)\n(symbol-value 1536 1536)\n(symbol-value 1812 1812)\n(symbol-value 1408 1408)\n(symbol-value 0 0)\n(system \"\")\n(vendor \"\")\n"), -Attr("abi-name","\"aarch64-linux-gnu-elf\"")]), -Sections([Section(".shstrtab", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x00\x06\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xc8\x1b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x38\x00\x09\x00\x40\x00\x1c\x00\x1b\x00\x06\x00\x00\x00\x04\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x04\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x44\x08\x00\x00\x00\x00\x00\x00\x44\x08\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x01\x00\x00\x00\x06\x00\x00\x00\x98\x0d\x00\x00\x00\x00\x00\x00\x98\x0d"), -Section(".strtab", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x00\x06\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xc8\x1b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x38\x00\x09\x00\x40\x00\x1c\x00\x1b\x00\x06\x00\x00\x00\x04\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x04\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x44\x08\x00\x00\x00\x00\x00\x00\x44\x08\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x01\x00\x00\x00\x06\x00\x00\x00\x98\x0d\x00\x00\x00\x00\x00\x00\x98\x0d\x01\x00\x00\x00\x00\x00\x98\x0d\x01\x00\x00\x00\x00\x00\x78\x02\x00\x00\x00\x00\x00\x00\x88\x02\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x02\x00\x00\x00\x06\x00\x00\x00\xa8\x0d\x00\x00\x00\x00\x00\x00\xa8\x0d\x01\x00\x00\x00\x00\x00\xa8\x0d\x01\x00\x00\x00\x00\x00\xf0\x01\x00\x00\x00\x00\x00\x00\xf0\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x04\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x50\xe5\x74\x64\x04\x00\x00\x00\x64\x07\x00\x00\x00\x00\x00\x00\x64\x07\x00\x00\x00\x00\x00\x00\x64\x07\x00\x00\x00\x00\x00\x00\x3c\x00\x00\x00\x00\x00\x00\x00\x3c\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x51\xe5\x74\x64\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x52\xe5\x74\x64\x04\x00\x00\x00\x98\x0d\x00\x00\x00\x00\x00\x00\x98\x0d\x01\x00\x00\x00\x00\x00\x98\x0d\x01\x00\x00\x00\x00\x00\x68\x02\x00\x00\x00\x00\x00\x00\x68\x02\x00\x00\x00\x00\x00"), -Section(".comment", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x00\x06\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xc8\x1b\x00"), -Section(".interp", 0x238, "\x2f\x6c\x69\x62\x2f\x6c\x64\x2d\x6c\x69\x6e\x75\x78\x2d\x61\x61\x72\x63\x68\x36\x34\x2e\x73\x6f\x2e\x31\x00"), -Section(".note.gnu.build-id", 0x254, "\x04\x00\x00\x00\x14\x00\x00\x00\x03\x00\x00\x00\x47\x4e\x55\x00\x53\x1a\x3e\x30\x9e\xf1\xf3\x69\xee\x53\xa4\x36\x6d\xf1\xd5\x88\xd4\xde\xcc\x0d"), -Section(".note.ABI-tag", 0x278, "\x04\x00\x00\x00\x10\x00\x00\x00\x01\x00\x00\x00\x47\x4e\x55\x00\x00\x00\x00\x00\x03\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00"), -Section(".gnu.hash", 0x298, "\x01\x00\x00\x00\x01\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".dynsym", 0x2B8, "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x0b\x00\x80\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x16\x00\x00\x10\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x48\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x22\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x22\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x73\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".dynstr", 0x390, "\x00\x5f\x5f\x63\x78\x61\x5f\x66\x69\x6e\x61\x6c\x69\x7a\x65\x00\x5f\x5f\x6c\x69\x62\x63\x5f\x73\x74\x61\x72\x74\x5f\x6d\x61\x69\x6e\x00\x61\x62\x6f\x72\x74\x00\x6c\x69\x62\x63\x2e\x73\x6f\x2e\x36\x00\x47\x4c\x49\x42\x43\x5f\x32\x2e\x31\x37\x00\x47\x4c\x49\x42\x43\x5f\x32\x2e\x33\x34\x00\x5f\x49\x54\x4d\x5f\x64\x65\x72\x65\x67\x69\x73\x74\x65\x72\x54\x4d\x43\x6c\x6f\x6e\x65\x54\x61\x62\x6c\x65\x00\x5f\x5f\x67\x6d\x6f\x6e\x5f\x73\x74\x61\x72\x74\x5f\x5f\x00\x5f\x49\x54\x4d\x5f\x72\x65\x67\x69\x73\x74\x65\x72\x54\x4d\x43\x6c\x6f\x6e\x65\x54\x61\x62\x6c\x65\x00"), -Section(".gnu.version", 0x41E, "\x00\x00\x00\x00\x00\x00\x02\x00\x01\x00\x03\x00\x01\x00\x03\x00\x01\x00"), -Section(".gnu.version_r", 0x430, "\x01\x00\x02\x00\x28\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x97\x91\x96\x06\x00\x00\x03\x00\x32\x00\x00\x00\x10\x00\x00\x00\xb4\x91\x96\x06\x00\x00\x02\x00\x3d\x00\x00\x00\x00\x00\x00\x00"), -Section(".rela.dyn", 0x460, "\x98\x0d\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x10\x07\x00\x00\x00\x00\x00\x00\xa0\x0d\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\xc0\x06\x00\x00\x00\x00\x00\x00\xf0\x0f\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x14\x07\x00\x00\x00\x00\x00\x00\x08\x10\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x08\x10\x01\x00\x00\x00\x00\x00\xd8\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe0\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe8\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xf8\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".rela.plt", 0x520, "\xb0\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xb8\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xc0\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xc8\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".init", 0x580, "\x1f\x20\x03\xd5\xfd\x7b\xbf\xa9\xfd\x03\x00\x91\x2a\x00\x00\x94\xfd\x7b\xc1\xa8\xc0\x03\x5f\xd6"), -Section(".plt", 0x5A0, "\xf0\x7b\xbf\xa9\x90\x00\x00\x90\x11\xd6\x47\xf9\x10\xa2\x3e\x91\x20\x02\x1f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x90\x00\x00\x90\x11\xda\x47\xf9\x10\xc2\x3e\x91\x20\x02\x1f\xd6\x90\x00\x00\x90\x11\xde\x47\xf9\x10\xe2\x3e\x91\x20\x02\x1f\xd6\x90\x00\x00\x90\x11\xe2\x47\xf9\x10\x02\x3f\x91\x20\x02\x1f\xd6\x90\x00\x00\x90\x11\xe6\x47\xf9\x10\x22\x3f\x91\x20\x02\x1f\xd6"), -Section(".text", 0x600, "\x1f\x20\x03\xd5\x1d\x00\x80\xd2\x1e\x00\x80\xd2\xe5\x03\x00\xaa\xe1\x03\x40\xf9\xe2\x23\x00\x91\xe6\x03\x00\x91\x80\x00\x00\x90\x00\xf8\x47\xf9\x03\x00\x80\xd2\x04\x00\x80\xd2\xe5\xff\xff\x97\xf0\xff\xff\x97\x80\x00\x00\x90\x00\xf4\x47\xf9\x40\x00\x00\xb4\xe8\xff\xff\x17\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x80\x00\x00\xb0\x00\x40\x00\x91\x81\x00\x00\xb0\x21\x40\x00\x91\x3f\x00\x00\xeb\xc0\x00\x00\x54\x81\x00\x00\x90\x21\xec\x47\xf9\x61\x00\x00\xb4\xf0\x03\x01\xaa\x00\x02\x1f\xd6\xc0\x03\x5f\xd6\x80\x00\x00\xb0\x00\x40\x00\x91\x81\x00\x00\xb0\x21\x40\x00\x91\x21\x00\x00\xcb\x22\xfc\x7f\xd3\x41\x0c\x81\x8b\x21\xfc\x41\x93\xc1\x00\x00\xb4\x82\x00\x00\x90\x42\xfc\x47\xf9\x62\x00\x00\xb4\xf0\x03\x02\xaa\x00\x02\x1f\xd6\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\xfd\x7b\xbe\xa9\xfd\x03\x00\x91\xf3\x0b\x00\xf9\x93\x00\x00\xb0\x60\x42\x40\x39\x40\x01\x00\x35\x80\x00\x00\x90\x00\xf0\x47\xf9\x80\x00\x00\xb4\x80\x00\x00\xb0\x00\x04\x40\xf9\xb9\xff\xff\x97\xd8\xff\xff\x97\x20\x00\x80\x52\x60\x42\x00\x39\xf3\x0b\x40\xf9\xfd\x7b\xc2\xa8\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\xdc\xff\xff\x17\xff\x43\x00\xd1\x80\x00\x00\xb0\x00\x50\x00\x91\x00\x00\x40\xb9\xe0\x0f\x00\xb9\x80\x00\x00\xb0\x00\x60\x00\x91\x00\x00\x40\xb9\x1f\x00\x00\x71\x40\x00\x00\x54\xff\x0f\x00\xb9\xe0\x0f\x40\xb9\xff\x43\x00\x91\xc0\x03\x5f\xd6"), -Section(".fini", 0x74C, "\x1f\x20\x03\xd5\xfd\x7b\xbf\xa9\xfd\x03\x00\x91\xfd\x7b\xc1\xa8\xc0\x03\x5f\xd6"), -Section(".rodata", 0x760, "\x01\x00\x02\x00"), -Section(".eh_frame_hdr", 0x764, "\x01\x1b\x03\x3b\x38\x00\x00\x00\x06\x00\x00\x00\x9c\xfe\xff\xff\x50\x00\x00\x00\xec\xfe\xff\xff\x64\x00\x00\x00\x1c\xff\xff\xff\x78\x00\x00\x00\x5c\xff\xff\xff\x8c\x00\x00\x00\xac\xff\xff\xff\xb0\x00\x00\x00\xb0\xff\xff\xff\xc4\x00\x00\x00"), -Section(".eh_frame", 0x7A0, "\x10\x00\x00\x00\x00\x00\x00\x00\x01\x7a\x52\x00\x04\x78\x1e\x01\x1b\x0c\x1f\x00\x10\x00\x00\x00\x18\x00\x00\x00\x44\xfe\xff\xff\x34\x00\x00\x00\x00\x41\x07\x1e\x10\x00\x00\x00\x2c\x00\x00\x00\x80\xfe\xff\xff\x30\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x40\x00\x00\x00\x9c\xfe\xff\xff\x3c\x00\x00\x00\x00\x00\x00\x00\x20\x00\x00\x00\x54\x00\x00\x00\xc8\xfe\xff\xff\x48\x00\x00\x00\x00\x41\x0e\x20\x9d\x04\x9e\x03\x42\x93\x02\x4e\xde\xdd\xd3\x0e\x00\x00\x00\x00\x10\x00\x00\x00\x78\x00\x00\x00\xf4\xfe\xff\xff\x04\x00\x00\x00\x00\x00\x00\x00\x14\x00\x00\x00\x8c\x00\x00\x00\xe4\xfe\xff\xff\x38\x00\x00\x00\x00\x41\x0e\x10\x4c\x0e\x00\x00\x00\x00\x00\x00"), -Section(".fini_array", 0x10DA0, "\xc0\x06\x00\x00\x00\x00\x00\x00"), -Section(".dynamic", 0x10DA8, "\x01\x00\x00\x00\x00\x00\x00\x00\x28\x00\x00\x00\x00\x00\x00\x00\x0c\x00\x00\x00\x00\x00\x00\x00\x80\x05\x00\x00\x00\x00\x00\x00\x0d\x00\x00\x00\x00\x00\x00\x00\x4c\x07\x00\x00\x00\x00\x00\x00\x19\x00\x00\x00\x00\x00\x00\x00\x98\x0d\x01\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x1a\x00\x00\x00\x00\x00\x00\x00\xa0\x0d\x01\x00\x00\x00\x00\x00\x1c\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\xf5\xfe\xff\x6f\x00\x00\x00\x00\x98\x02\x00\x00\x00\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x90\x03\x00\x00\x00\x00\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\xb8\x02\x00\x00\x00\x00\x00\x00\x0a\x00\x00\x00\x00\x00\x00\x00\x8d\x00\x00\x00\x00\x00\x00\x00\x0b\x00\x00\x00\x00\x00\x00\x00\x18\x00\x00\x00\x00\x00\x00\x00\x15\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x98\x0f\x01\x00\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x60\x00\x00\x00\x00\x00\x00\x00\x14\x00\x00\x00\x00\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x17\x00\x00\x00\x00\x00\x00\x00\x20\x05\x00\x00\x00\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x60\x04\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\xc0\x00\x00\x00\x00\x00\x00\x00\x09\x00\x00\x00\x00\x00\x00\x00\x18\x00\x00\x00\x00\x00\x00\x00\x1e\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\xfb\xff\xff\x6f\x00\x00\x00\x00\x01\x00\x00\x08\x00\x00\x00\x00\xfe\xff\xff\x6f\x00\x00\x00\x00\x30\x04\x00\x00\x00\x00\x00\x00\xff\xff\xff\x6f\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\xf0\xff\xff\x6f\x00\x00\x00\x00\x1e\x04\x00\x00\x00\x00\x00\x00\xf9\xff\xff\x6f\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".got", 0x10F98, "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xa0\x05\x00\x00\x00\x00\x00\x00\xa0\x05\x00\x00\x00\x00\x00\x00\xa0\x05\x00\x00\x00\x00\x00\x00\xa0\x05\x00\x00\x00\x00\x00\x00\xa8\x0d\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x14\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".data", 0x11000, "\x00\x00\x00\x00\x00\x00\x00\x00\x08\x10\x01\x00\x00\x00\x00\x00"), -Section(".init_array", 0x10D98, "\x10\x07\x00\x00\x00\x00\x00\x00")]), -Memmap([Annotation(Region(0x0,0x843), Attr("segment","02 0 2116")), -Annotation(Region(0x600,0x633), Attr("symbol","\"_start\"")), -Annotation(Region(0x0,0xF9), Attr("section","\".shstrtab\"")), -Annotation(Region(0x0,0x22E), Attr("section","\".strtab\"")), -Annotation(Region(0x0,0x2A), Attr("section","\".comment\"")), -Annotation(Region(0x238,0x252), Attr("section","\".interp\"")), -Annotation(Region(0x254,0x277), Attr("section","\".note.gnu.build-id\"")), -Annotation(Region(0x278,0x297), Attr("section","\".note.ABI-tag\"")), -Annotation(Region(0x298,0x2B3), Attr("section","\".gnu.hash\"")), -Annotation(Region(0x2B8,0x38F), Attr("section","\".dynsym\"")), -Annotation(Region(0x390,0x41C), Attr("section","\".dynstr\"")), -Annotation(Region(0x41E,0x42F), Attr("section","\".gnu.version\"")), -Annotation(Region(0x430,0x45F), Attr("section","\".gnu.version_r\"")), -Annotation(Region(0x460,0x51F), Attr("section","\".rela.dyn\"")), -Annotation(Region(0x520,0x57F), Attr("section","\".rela.plt\"")), -Annotation(Region(0x580,0x597), Attr("section","\".init\"")), -Annotation(Region(0x5A0,0x5FF), Attr("section","\".plt\"")), -Annotation(Region(0x580,0x597), Attr("code-region","()")), -Annotation(Region(0x5A0,0x5FF), Attr("code-region","()")), -Annotation(Region(0x600,0x633), Attr("symbol-info","_start 0x600 52")), -Annotation(Region(0x634,0x647), Attr("symbol","\"call_weak_fn\"")), -Annotation(Region(0x634,0x647), Attr("symbol-info","call_weak_fn 0x634 20")), -Annotation(Region(0x600,0x74B), Attr("section","\".text\"")), -Annotation(Region(0x600,0x74B), Attr("code-region","()")), -Annotation(Region(0x714,0x74B), Attr("symbol","\"main\"")), -Annotation(Region(0x714,0x74B), Attr("symbol-info","main 0x714 56")), -Annotation(Region(0x74C,0x75F), Attr("section","\".fini\"")), -Annotation(Region(0x74C,0x75F), Attr("code-region","()")), -Annotation(Region(0x760,0x763), Attr("section","\".rodata\"")), -Annotation(Region(0x764,0x79F), Attr("section","\".eh_frame_hdr\"")), -Annotation(Region(0x7A0,0x843), Attr("section","\".eh_frame\"")), -Annotation(Region(0x10D98,0x1100F), Attr("segment","03 0x10D98 648")), -Annotation(Region(0x10DA0,0x10DA7), Attr("section","\".fini_array\"")), -Annotation(Region(0x10DA8,0x10F97), Attr("section","\".dynamic\"")), -Annotation(Region(0x10F98,0x10FFF), Attr("section","\".got\"")), -Annotation(Region(0x11000,0x1100F), Attr("section","\".data\"")), -Annotation(Region(0x10D98,0x10D9F), Attr("section","\".init_array\""))]), -Program(Tid(1_553, "%00000611"), Attrs([]), - Subs([Sub(Tid(1_499, "@__cxa_finalize"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x5D0"), -Attr("stub","()")]), "__cxa_finalize", Args([Arg(Tid(1_554, "%00000612"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("__cxa_finalize_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(899, "@__cxa_finalize"), - Attrs([Attr("address","0x5D0")]), Phis([]), -Defs([Def(Tid(1_147, "%0000047b"), Attrs([Attr("address","0x5D0"), -Attr("insn","adrp x16, #65536")]), Var("R16",Imm(64)), Int(65536,64)), -Def(Tid(1_154, "%00000482"), Attrs([Attr("address","0x5D4"), -Attr("insn","ldr x17, [x16, #0xfb8]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(4024,64)),LittleEndian(),64)), -Def(Tid(1_160, "%00000488"), Attrs([Attr("address","0x5D8"), -Attr("insn","add x16, x16, #0xfb8")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(4024,64)))]), Jmps([Call(Tid(1_165, "%0000048d"), - Attrs([Attr("address","0x5DC"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), -Sub(Tid(1_500, "@__do_global_dtors_aux"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x6C0")]), - "__do_global_dtors_aux", Args([Arg(Tid(1_555, "%00000613"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("__do_global_dtors_aux_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(646, "@__do_global_dtors_aux"), - Attrs([Attr("address","0x6C0")]), Phis([]), Defs([Def(Tid(650, "%0000028a"), - Attrs([Attr("address","0x6C0"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("#3",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(18446744073709551584,64))), -Def(Tid(656, "%00000290"), Attrs([Attr("address","0x6C0"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("#3",Imm(64)),Var("R29",Imm(64)),LittleEndian(),64)), -Def(Tid(662, "%00000296"), Attrs([Attr("address","0x6C0"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("#3",Imm(64)),Int(8,64)),Var("R30",Imm(64)),LittleEndian(),64)), -Def(Tid(666, "%0000029a"), Attrs([Attr("address","0x6C0"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("R31",Imm(64)), -Var("#3",Imm(64))), Def(Tid(672, "%000002a0"), - Attrs([Attr("address","0x6C4"), Attr("insn","mov x29, sp")]), - Var("R29",Imm(64)), Var("R31",Imm(64))), Def(Tid(680, "%000002a8"), - Attrs([Attr("address","0x6C8"), Attr("insn","str x19, [sp, #0x10]")]), - Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(16,64)),Var("R19",Imm(64)),LittleEndian(),64)), -Def(Tid(685, "%000002ad"), Attrs([Attr("address","0x6CC"), -Attr("insn","adrp x19, #69632")]), Var("R19",Imm(64)), Int(69632,64)), -Def(Tid(692, "%000002b4"), Attrs([Attr("address","0x6D0"), -Attr("insn","ldrb w0, [x19, #0x10]")]), Var("R0",Imm(64)), -UNSIGNED(64,Load(Var("mem",Mem(64,8)),PLUS(Var("R19",Imm(64)),Int(16,64)),LittleEndian(),8)))]), -Jmps([Goto(Tid(699, "%000002bb"), Attrs([Attr("address","0x6D4"), -Attr("insn","cbnz w0, #0x28")]), - NEQ(Extract(31,0,Var("R0",Imm(64))),Int(0,32)), -Direct(Tid(697, "%000002b9"))), Goto(Tid(1_541, "%00000605"), Attrs([]), - Int(1,1), Direct(Tid(844, "%0000034c")))])), Blk(Tid(844, "%0000034c"), - Attrs([Attr("address","0x6D8")]), Phis([]), Defs([Def(Tid(847, "%0000034f"), - Attrs([Attr("address","0x6D8"), Attr("insn","adrp x0, #65536")]), - Var("R0",Imm(64)), Int(65536,64)), Def(Tid(854, "%00000356"), - Attrs([Attr("address","0x6DC"), Attr("insn","ldr x0, [x0, #0xfe0]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(4064,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(860, "%0000035c"), Attrs([Attr("address","0x6E0"), -Attr("insn","cbz x0, #0x10")]), EQ(Var("R0",Imm(64)),Int(0,64)), -Direct(Tid(858, "%0000035a"))), Goto(Tid(1_542, "%00000606"), Attrs([]), - Int(1,1), Direct(Tid(883, "%00000373")))])), Blk(Tid(883, "%00000373"), - Attrs([Attr("address","0x6E4")]), Phis([]), Defs([Def(Tid(886, "%00000376"), - Attrs([Attr("address","0x6E4"), Attr("insn","adrp x0, #69632")]), - Var("R0",Imm(64)), Int(69632,64)), Def(Tid(893, "%0000037d"), - Attrs([Attr("address","0x6E8"), Attr("insn","ldr x0, [x0, #0x8]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(898, "%00000382"), Attrs([Attr("address","0x6EC"), -Attr("insn","bl #-0x11c")]), Var("R30",Imm(64)), Int(1776,64))]), -Jmps([Call(Tid(901, "%00000385"), Attrs([Attr("address","0x6EC"), -Attr("insn","bl #-0x11c")]), Int(1,1), -(Direct(Tid(1_499, "@__cxa_finalize")),Direct(Tid(858, "%0000035a"))))])), -Blk(Tid(858, "%0000035a"), Attrs([Attr("address","0x6F0")]), Phis([]), -Defs([Def(Tid(866, "%00000362"), Attrs([Attr("address","0x6F0"), -Attr("insn","bl #-0xa0")]), Var("R30",Imm(64)), Int(1780,64))]), -Jmps([Call(Tid(868, "%00000364"), Attrs([Attr("address","0x6F0"), -Attr("insn","bl #-0xa0")]), Int(1,1), -(Direct(Tid(1_513, "@deregister_tm_clones")),Direct(Tid(870, "%00000366"))))])), -Blk(Tid(870, "%00000366"), Attrs([Attr("address","0x6F4")]), Phis([]), -Defs([Def(Tid(873, "%00000369"), Attrs([Attr("address","0x6F4"), -Attr("insn","mov w0, #0x1")]), Var("R0",Imm(64)), Int(1,64)), -Def(Tid(881, "%00000371"), Attrs([Attr("address","0x6F8"), -Attr("insn","strb w0, [x19, #0x10]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R19",Imm(64)),Int(16,64)),Extract(7,0,Var("R0",Imm(64))),LittleEndian(),8))]), -Jmps([Goto(Tid(1_543, "%00000607"), Attrs([]), Int(1,1), -Direct(Tid(697, "%000002b9")))])), Blk(Tid(697, "%000002b9"), - Attrs([Attr("address","0x6FC")]), Phis([]), Defs([Def(Tid(707, "%000002c3"), - Attrs([Attr("address","0x6FC"), Attr("insn","ldr x19, [sp, #0x10]")]), - Var("R19",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(16,64)),LittleEndian(),64)), -Def(Tid(714, "%000002ca"), Attrs([Attr("address","0x700"), -Attr("insn","ldp x29, x30, [sp], #0x20")]), Var("R29",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(719, "%000002cf"), Attrs([Attr("address","0x700"), -Attr("insn","ldp x29, x30, [sp], #0x20")]), Var("R30",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(723, "%000002d3"), Attrs([Attr("address","0x700"), -Attr("insn","ldp x29, x30, [sp], #0x20")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(32,64)))]), Jmps([Call(Tid(728, "%000002d8"), - Attrs([Attr("address","0x704"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), Sub(Tid(1_504, "@__libc_start_main"), - Attrs([Attr("c.proto","signed (*)(signed (*)(signed , char** , char** );* main, signed , char** , \nvoid* auxv)"), -Attr("address","0x5C0"), Attr("stub","()")]), "__libc_start_main", - Args([Arg(Tid(1_556, "%00000614"), - Attrs([Attr("c.layout","**[ : 64]"), -Attr("c.data","Top:u64 ptr ptr"), -Attr("c.type","signed (*)(signed , char** , char** );*")]), - Var("__libc_start_main_main",Imm(64)), Var("R0",Imm(64)), In()), -Arg(Tid(1_557, "%00000615"), Attrs([Attr("c.layout","[signed : 32]"), -Attr("c.data","Top:u32"), Attr("c.type","signed")]), - Var("__libc_start_main_arg2",Imm(32)), LOW(32,Var("R1",Imm(64))), In()), -Arg(Tid(1_558, "%00000616"), Attrs([Attr("c.layout","**[char : 8]"), -Attr("c.data","Top:u8 ptr ptr"), Attr("c.type","char**")]), - Var("__libc_start_main_arg3",Imm(64)), Var("R2",Imm(64)), Both()), -Arg(Tid(1_559, "%00000617"), Attrs([Attr("c.layout","*[ : 8]"), -Attr("c.data","{} ptr"), Attr("c.type","void*")]), - Var("__libc_start_main_auxv",Imm(64)), Var("R3",Imm(64)), Both()), -Arg(Tid(1_560, "%00000618"), Attrs([Attr("c.layout","[signed : 32]"), -Attr("c.data","Top:u32"), Attr("c.type","signed")]), - Var("__libc_start_main_result",Imm(32)), LOW(32,Var("R0",Imm(64))), -Out())]), Blks([Blk(Tid(479, "@__libc_start_main"), - Attrs([Attr("address","0x5C0")]), Phis([]), -Defs([Def(Tid(1_125, "%00000465"), Attrs([Attr("address","0x5C0"), -Attr("insn","adrp x16, #65536")]), Var("R16",Imm(64)), Int(65536,64)), -Def(Tid(1_132, "%0000046c"), Attrs([Attr("address","0x5C4"), -Attr("insn","ldr x17, [x16, #0xfb0]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(4016,64)),LittleEndian(),64)), -Def(Tid(1_138, "%00000472"), Attrs([Attr("address","0x5C8"), -Attr("insn","add x16, x16, #0xfb0")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(4016,64)))]), Jmps([Call(Tid(1_143, "%00000477"), - Attrs([Attr("address","0x5CC"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), Sub(Tid(1_505, "@_fini"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x74C")]), - "_fini", Args([Arg(Tid(1_561, "%00000619"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("_fini_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(31, "@_fini"), - Attrs([Attr("address","0x74C")]), Phis([]), Defs([Def(Tid(37, "%00000025"), - Attrs([Attr("address","0x750"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("#0",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(18446744073709551600,64))), -Def(Tid(43, "%0000002b"), Attrs([Attr("address","0x750"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("#0",Imm(64)),Var("R29",Imm(64)),LittleEndian(),64)), -Def(Tid(49, "%00000031"), Attrs([Attr("address","0x750"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("#0",Imm(64)),Int(8,64)),Var("R30",Imm(64)),LittleEndian(),64)), -Def(Tid(53, "%00000035"), Attrs([Attr("address","0x750"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("R31",Imm(64)), -Var("#0",Imm(64))), Def(Tid(59, "%0000003b"), Attrs([Attr("address","0x754"), -Attr("insn","mov x29, sp")]), Var("R29",Imm(64)), Var("R31",Imm(64))), -Def(Tid(66, "%00000042"), Attrs([Attr("address","0x758"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R29",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(71, "%00000047"), Attrs([Attr("address","0x758"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R30",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(75, "%0000004b"), Attrs([Attr("address","0x758"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(16,64)))]), Jmps([Call(Tid(80, "%00000050"), - Attrs([Attr("address","0x75C"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), Sub(Tid(1_506, "@_init"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x580")]), - "_init", Args([Arg(Tid(1_562, "%0000061a"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("_init_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(1_327, "@_init"), - Attrs([Attr("address","0x580")]), Phis([]), -Defs([Def(Tid(1_333, "%00000535"), Attrs([Attr("address","0x584"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("#6",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(18446744073709551600,64))), -Def(Tid(1_339, "%0000053b"), Attrs([Attr("address","0x584"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("#6",Imm(64)),Var("R29",Imm(64)),LittleEndian(),64)), -Def(Tid(1_345, "%00000541"), Attrs([Attr("address","0x584"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("#6",Imm(64)),Int(8,64)),Var("R30",Imm(64)),LittleEndian(),64)), -Def(Tid(1_349, "%00000545"), Attrs([Attr("address","0x584"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("R31",Imm(64)), -Var("#6",Imm(64))), Def(Tid(1_355, "%0000054b"), - Attrs([Attr("address","0x588"), Attr("insn","mov x29, sp")]), - Var("R29",Imm(64)), Var("R31",Imm(64))), Def(Tid(1_360, "%00000550"), - Attrs([Attr("address","0x58C"), Attr("insn","bl #0xa8")]), - Var("R30",Imm(64)), Int(1424,64))]), Jmps([Call(Tid(1_362, "%00000552"), - Attrs([Attr("address","0x58C"), Attr("insn","bl #0xa8")]), Int(1,1), -(Direct(Tid(1_511, "@call_weak_fn")),Direct(Tid(1_364, "%00000554"))))])), -Blk(Tid(1_364, "%00000554"), Attrs([Attr("address","0x590")]), Phis([]), -Defs([Def(Tid(1_369, "%00000559"), Attrs([Attr("address","0x590"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R29",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(1_374, "%0000055e"), Attrs([Attr("address","0x590"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R30",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(1_378, "%00000562"), Attrs([Attr("address","0x590"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(16,64)))]), Jmps([Call(Tid(1_383, "%00000567"), - Attrs([Attr("address","0x594"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), Sub(Tid(1_507, "@_start"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x600"), -Attr("stub","()"), Attr("entry-point","()")]), "_start", - Args([Arg(Tid(1_563, "%0000061b"), Attrs([Attr("c.layout","[signed : 32]"), -Attr("c.data","Top:u32"), Attr("c.type","signed")]), - Var("_start_result",Imm(32)), LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(416, "@_start"), Attrs([Attr("address","0x600")]), Phis([]), -Defs([Def(Tid(421, "%000001a5"), Attrs([Attr("address","0x604"), -Attr("insn","mov x29, #0x0")]), Var("R29",Imm(64)), Int(0,64)), -Def(Tid(426, "%000001aa"), Attrs([Attr("address","0x608"), -Attr("insn","mov x30, #0x0")]), Var("R30",Imm(64)), Int(0,64)), -Def(Tid(432, "%000001b0"), Attrs([Attr("address","0x60C"), -Attr("insn","mov x5, x0")]), Var("R5",Imm(64)), Var("R0",Imm(64))), -Def(Tid(439, "%000001b7"), Attrs([Attr("address","0x610"), -Attr("insn","ldr x1, [sp]")]), Var("R1",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(445, "%000001bd"), Attrs([Attr("address","0x614"), -Attr("insn","add x2, sp, #0x8")]), Var("R2",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(8,64))), Def(Tid(451, "%000001c3"), - Attrs([Attr("address","0x618"), Attr("insn","mov x6, sp")]), - Var("R6",Imm(64)), Var("R31",Imm(64))), Def(Tid(456, "%000001c8"), - Attrs([Attr("address","0x61C"), Attr("insn","adrp x0, #65536")]), - Var("R0",Imm(64)), Int(65536,64)), Def(Tid(463, "%000001cf"), - Attrs([Attr("address","0x620"), Attr("insn","ldr x0, [x0, #0xff0]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(4080,64)),LittleEndian(),64)), -Def(Tid(468, "%000001d4"), Attrs([Attr("address","0x624"), -Attr("insn","mov x3, #0x0")]), Var("R3",Imm(64)), Int(0,64)), -Def(Tid(473, "%000001d9"), Attrs([Attr("address","0x628"), -Attr("insn","mov x4, #0x0")]), Var("R4",Imm(64)), Int(0,64)), -Def(Tid(478, "%000001de"), Attrs([Attr("address","0x62C"), -Attr("insn","bl #-0x6c")]), Var("R30",Imm(64)), Int(1584,64))]), -Jmps([Call(Tid(481, "%000001e1"), Attrs([Attr("address","0x62C"), -Attr("insn","bl #-0x6c")]), Int(1,1), -(Direct(Tid(1_504, "@__libc_start_main")),Direct(Tid(483, "%000001e3"))))])), -Blk(Tid(483, "%000001e3"), Attrs([Attr("address","0x630")]), Phis([]), -Defs([Def(Tid(486, "%000001e6"), Attrs([Attr("address","0x630"), -Attr("insn","bl #-0x40")]), Var("R30",Imm(64)), Int(1588,64))]), -Jmps([Call(Tid(489, "%000001e9"), Attrs([Attr("address","0x630"), -Attr("insn","bl #-0x40")]), Int(1,1), -(Direct(Tid(1_510, "@abort")),Direct(Tid(1_544, "%00000608"))))])), -Blk(Tid(1_544, "%00000608"), Attrs([]), Phis([]), Defs([]), -Jmps([Call(Tid(1_545, "%00000609"), Attrs([]), Int(1,1), -(Direct(Tid(1_511, "@call_weak_fn")),))]))])), Sub(Tid(1_510, "@abort"), - Attrs([Attr("noreturn","()"), Attr("c.proto","void (*)(void)"), -Attr("address","0x5F0"), Attr("stub","()")]), "abort", Args([]), -Blks([Blk(Tid(487, "@abort"), Attrs([Attr("address","0x5F0")]), Phis([]), -Defs([Def(Tid(1_191, "%000004a7"), Attrs([Attr("address","0x5F0"), -Attr("insn","adrp x16, #65536")]), Var("R16",Imm(64)), Int(65536,64)), -Def(Tid(1_198, "%000004ae"), Attrs([Attr("address","0x5F4"), -Attr("insn","ldr x17, [x16, #0xfc8]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(4040,64)),LittleEndian(),64)), -Def(Tid(1_204, "%000004b4"), Attrs([Attr("address","0x5F8"), -Attr("insn","add x16, x16, #0xfc8")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(4040,64)))]), Jmps([Call(Tid(1_209, "%000004b9"), - Attrs([Attr("address","0x5FC"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), Sub(Tid(1_511, "@call_weak_fn"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x634")]), - "call_weak_fn", Args([Arg(Tid(1_564, "%0000061c"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("call_weak_fn_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(491, "@call_weak_fn"), - Attrs([Attr("address","0x634")]), Phis([]), Defs([Def(Tid(494, "%000001ee"), - Attrs([Attr("address","0x634"), Attr("insn","adrp x0, #65536")]), - Var("R0",Imm(64)), Int(65536,64)), Def(Tid(501, "%000001f5"), - Attrs([Attr("address","0x638"), Attr("insn","ldr x0, [x0, #0xfe8]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(4072,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(507, "%000001fb"), Attrs([Attr("address","0x63C"), -Attr("insn","cbz x0, #0x8")]), EQ(Var("R0",Imm(64)),Int(0,64)), -Direct(Tid(505, "%000001f9"))), Goto(Tid(1_546, "%0000060a"), Attrs([]), - Int(1,1), Direct(Tid(963, "%000003c3")))])), Blk(Tid(505, "%000001f9"), - Attrs([Attr("address","0x644")]), Phis([]), Defs([]), -Jmps([Call(Tid(513, "%00000201"), Attrs([Attr("address","0x644"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))])), -Blk(Tid(963, "%000003c3"), Attrs([Attr("address","0x640")]), Phis([]), -Defs([]), Jmps([Goto(Tid(966, "%000003c6"), Attrs([Attr("address","0x640"), -Attr("insn","b #-0x60")]), Int(1,1), Direct(Tid(964, "@__gmon_start__")))])), -Blk(Tid(964, "@__gmon_start__"), Attrs([Attr("address","0x5E0")]), Phis([]), -Defs([Def(Tid(1_169, "%00000491"), Attrs([Attr("address","0x5E0"), -Attr("insn","adrp x16, #65536")]), Var("R16",Imm(64)), Int(65536,64)), -Def(Tid(1_176, "%00000498"), Attrs([Attr("address","0x5E4"), -Attr("insn","ldr x17, [x16, #0xfc0]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(4032,64)),LittleEndian(),64)), -Def(Tid(1_182, "%0000049e"), Attrs([Attr("address","0x5E8"), -Attr("insn","add x16, x16, #0xfc0")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(4032,64)))]), Jmps([Call(Tid(1_187, "%000004a3"), - Attrs([Attr("address","0x5EC"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), -Sub(Tid(1_513, "@deregister_tm_clones"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x650")]), - "deregister_tm_clones", Args([Arg(Tid(1_565, "%0000061d"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("deregister_tm_clones_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(519, "@deregister_tm_clones"), - Attrs([Attr("address","0x650")]), Phis([]), Defs([Def(Tid(522, "%0000020a"), - Attrs([Attr("address","0x650"), Attr("insn","adrp x0, #69632")]), - Var("R0",Imm(64)), Int(69632,64)), Def(Tid(528, "%00000210"), - Attrs([Attr("address","0x654"), Attr("insn","add x0, x0, #0x10")]), - Var("R0",Imm(64)), PLUS(Var("R0",Imm(64)),Int(16,64))), -Def(Tid(533, "%00000215"), Attrs([Attr("address","0x658"), -Attr("insn","adrp x1, #69632")]), Var("R1",Imm(64)), Int(69632,64)), -Def(Tid(539, "%0000021b"), Attrs([Attr("address","0x65C"), -Attr("insn","add x1, x1, #0x10")]), Var("R1",Imm(64)), -PLUS(Var("R1",Imm(64)),Int(16,64))), Def(Tid(545, "%00000221"), - Attrs([Attr("address","0x660"), Attr("insn","cmp x1, x0")]), - Var("#1",Imm(64)), NOT(Var("R0",Imm(64)))), Def(Tid(550, "%00000226"), - Attrs([Attr("address","0x660"), Attr("insn","cmp x1, x0")]), - Var("#2",Imm(64)), PLUS(Var("R1",Imm(64)),NOT(Var("R0",Imm(64))))), -Def(Tid(556, "%0000022c"), Attrs([Attr("address","0x660"), -Attr("insn","cmp x1, x0")]), Var("VF",Imm(1)), -NEQ(SIGNED(65,PLUS(Var("#2",Imm(64)),Int(1,64))),PLUS(PLUS(SIGNED(65,Var("R1",Imm(64))),SIGNED(65,Var("#1",Imm(64)))),Int(1,65)))), -Def(Tid(562, "%00000232"), Attrs([Attr("address","0x660"), -Attr("insn","cmp x1, x0")]), Var("CF",Imm(1)), -NEQ(UNSIGNED(65,PLUS(Var("#2",Imm(64)),Int(1,64))),PLUS(PLUS(UNSIGNED(65,Var("R1",Imm(64))),UNSIGNED(65,Var("#1",Imm(64)))),Int(1,65)))), -Def(Tid(566, "%00000236"), Attrs([Attr("address","0x660"), -Attr("insn","cmp x1, x0")]), Var("ZF",Imm(1)), -EQ(PLUS(Var("#2",Imm(64)),Int(1,64)),Int(0,64))), Def(Tid(570, "%0000023a"), - Attrs([Attr("address","0x660"), Attr("insn","cmp x1, x0")]), - Var("NF",Imm(1)), Extract(63,63,PLUS(Var("#2",Imm(64)),Int(1,64))))]), -Jmps([Goto(Tid(576, "%00000240"), Attrs([Attr("address","0x664"), -Attr("insn","b.eq #0x18")]), EQ(Var("ZF",Imm(1)),Int(1,1)), -Direct(Tid(574, "%0000023e"))), Goto(Tid(1_547, "%0000060b"), Attrs([]), - Int(1,1), Direct(Tid(933, "%000003a5")))])), Blk(Tid(933, "%000003a5"), - Attrs([Attr("address","0x668")]), Phis([]), Defs([Def(Tid(936, "%000003a8"), - Attrs([Attr("address","0x668"), Attr("insn","adrp x1, #65536")]), - Var("R1",Imm(64)), Int(65536,64)), Def(Tid(943, "%000003af"), - Attrs([Attr("address","0x66C"), Attr("insn","ldr x1, [x1, #0xfd8]")]), - Var("R1",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R1",Imm(64)),Int(4056,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(948, "%000003b4"), Attrs([Attr("address","0x670"), -Attr("insn","cbz x1, #0xc")]), EQ(Var("R1",Imm(64)),Int(0,64)), -Direct(Tid(574, "%0000023e"))), Goto(Tid(1_548, "%0000060c"), Attrs([]), - Int(1,1), Direct(Tid(952, "%000003b8")))])), Blk(Tid(574, "%0000023e"), - Attrs([Attr("address","0x67C")]), Phis([]), Defs([]), -Jmps([Call(Tid(582, "%00000246"), Attrs([Attr("address","0x67C"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))])), -Blk(Tid(952, "%000003b8"), Attrs([Attr("address","0x674")]), Phis([]), -Defs([Def(Tid(956, "%000003bc"), Attrs([Attr("address","0x674"), -Attr("insn","mov x16, x1")]), Var("R16",Imm(64)), Var("R1",Imm(64)))]), -Jmps([Call(Tid(961, "%000003c1"), Attrs([Attr("address","0x678"), -Attr("insn","br x16")]), Int(1,1), (Indirect(Var("R16",Imm(64))),))]))])), -Sub(Tid(1_516, "@frame_dummy"), Attrs([Attr("c.proto","signed (*)(void)"), -Attr("address","0x710")]), "frame_dummy", Args([Arg(Tid(1_566, "%0000061e"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("frame_dummy_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(734, "@frame_dummy"), - Attrs([Attr("address","0x710")]), Phis([]), Defs([]), -Jmps([Call(Tid(736, "%000002e0"), Attrs([Attr("address","0x710"), -Attr("insn","b #-0x90")]), Int(1,1), -(Direct(Tid(1_520, "@register_tm_clones")),))]))])), Sub(Tid(1_517, "@main"), - Attrs([Attr("c.proto","signed (*)(signed argc, const char** argv)"), -Attr("address","0x714")]), "main", Args([Arg(Tid(1_567, "%0000061f"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("main_argc",Imm(32)), -LOW(32,Var("R0",Imm(64))), In()), Arg(Tid(1_568, "%00000620"), - Attrs([Attr("c.layout","**[char : 8]"), Attr("c.data","Top:u8 ptr ptr"), -Attr("c.type"," const char**")]), Var("main_argv",Imm(64)), -Var("R1",Imm(64)), Both()), Arg(Tid(1_569, "%00000621"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("main_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(738, "@main"), - Attrs([Attr("address","0x714")]), Phis([]), Defs([Def(Tid(742, "%000002e6"), - Attrs([Attr("address","0x714"), Attr("insn","sub sp, sp, #0x10")]), - Var("R31",Imm(64)), PLUS(Var("R31",Imm(64)),Int(18446744073709551600,64))), -Def(Tid(747, "%000002eb"), Attrs([Attr("address","0x718"), -Attr("insn","adrp x0, #69632")]), Var("R0",Imm(64)), Int(69632,64)), -Def(Tid(753, "%000002f1"), Attrs([Attr("address","0x71C"), -Attr("insn","add x0, x0, #0x14")]), Var("R0",Imm(64)), -PLUS(Var("R0",Imm(64)),Int(20,64))), Def(Tid(760, "%000002f8"), - Attrs([Attr("address","0x720"), Attr("insn","ldr w0, [x0]")]), - Var("R0",Imm(64)), -UNSIGNED(64,Load(Var("mem",Mem(64,8)),Var("R0",Imm(64)),LittleEndian(),32))), -Def(Tid(768, "%00000300"), Attrs([Attr("address","0x724"), -Attr("insn","str w0, [sp, #0xc]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(12,64)),Extract(31,0,Var("R0",Imm(64))),LittleEndian(),32)), -Def(Tid(773, "%00000305"), Attrs([Attr("address","0x728"), -Attr("insn","adrp x0, #69632")]), Var("R0",Imm(64)), Int(69632,64)), -Def(Tid(779, "%0000030b"), Attrs([Attr("address","0x72C"), -Attr("insn","add x0, x0, #0x18")]), Var("R0",Imm(64)), -PLUS(Var("R0",Imm(64)),Int(24,64))), Def(Tid(786, "%00000312"), - Attrs([Attr("address","0x730"), Attr("insn","ldr w0, [x0]")]), - Var("R0",Imm(64)), -UNSIGNED(64,Load(Var("mem",Mem(64,8)),Var("R0",Imm(64)),LittleEndian(),32))), -Def(Tid(792, "%00000318"), Attrs([Attr("address","0x734"), -Attr("insn","cmp w0, #0x0")]), Var("#4",Imm(32)), -PLUS(Extract(31,0,Var("R0",Imm(64))),Int(4294967295,32))), -Def(Tid(797, "%0000031d"), Attrs([Attr("address","0x734"), -Attr("insn","cmp w0, #0x0")]), Var("VF",Imm(1)), -NEQ(SIGNED(33,PLUS(Var("#4",Imm(32)),Int(1,32))),PLUS(SIGNED(33,Extract(31,0,Var("R0",Imm(64)))),Int(0,33)))), -Def(Tid(802, "%00000322"), Attrs([Attr("address","0x734"), -Attr("insn","cmp w0, #0x0")]), Var("CF",Imm(1)), -NEQ(UNSIGNED(33,PLUS(Var("#4",Imm(32)),Int(1,32))),PLUS(UNSIGNED(33,Extract(31,0,Var("R0",Imm(64)))),Int(4294967296,33)))), -Def(Tid(806, "%00000326"), Attrs([Attr("address","0x734"), -Attr("insn","cmp w0, #0x0")]), Var("ZF",Imm(1)), -EQ(PLUS(Var("#4",Imm(32)),Int(1,32)),Int(0,32))), Def(Tid(810, "%0000032a"), - Attrs([Attr("address","0x734"), Attr("insn","cmp w0, #0x0")]), - Var("NF",Imm(1)), Extract(31,31,PLUS(Var("#4",Imm(32)),Int(1,32))))]), -Jmps([Goto(Tid(816, "%00000330"), Attrs([Attr("address","0x738"), -Attr("insn","b.eq #0x8")]), EQ(Var("ZF",Imm(1)),Int(1,1)), -Direct(Tid(814, "%0000032e"))), Goto(Tid(1_549, "%0000060d"), Attrs([]), - Int(1,1), Direct(Tid(837, "%00000345")))])), Blk(Tid(837, "%00000345"), - Attrs([Attr("address","0x73C")]), Phis([]), Defs([Def(Tid(842, "%0000034a"), - Attrs([Attr("address","0x73C"), Attr("insn","str wzr, [sp, #0xc]")]), - Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(12,64)),Int(0,32),LittleEndian(),32))]), -Jmps([Goto(Tid(1_550, "%0000060e"), Attrs([]), Int(1,1), -Direct(Tid(814, "%0000032e")))])), Blk(Tid(814, "%0000032e"), - Attrs([Attr("address","0x740")]), Phis([]), Defs([Def(Tid(824, "%00000338"), - Attrs([Attr("address","0x740"), Attr("insn","ldr w0, [sp, #0xc]")]), - Var("R0",Imm(64)), -UNSIGNED(64,Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(12,64)),LittleEndian(),32))), -Def(Tid(830, "%0000033e"), Attrs([Attr("address","0x744"), -Attr("insn","add sp, sp, #0x10")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(16,64)))]), Jmps([Call(Tid(835, "%00000343"), - Attrs([Attr("address","0x748"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), -Sub(Tid(1_520, "@register_tm_clones"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x680")]), - "register_tm_clones", Args([Arg(Tid(1_570, "%00000622"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("register_tm_clones_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(584, "@register_tm_clones"), Attrs([Attr("address","0x680")]), - Phis([]), Defs([Def(Tid(587, "%0000024b"), Attrs([Attr("address","0x680"), -Attr("insn","adrp x0, #69632")]), Var("R0",Imm(64)), Int(69632,64)), -Def(Tid(593, "%00000251"), Attrs([Attr("address","0x684"), -Attr("insn","add x0, x0, #0x10")]), Var("R0",Imm(64)), -PLUS(Var("R0",Imm(64)),Int(16,64))), Def(Tid(598, "%00000256"), - Attrs([Attr("address","0x688"), Attr("insn","adrp x1, #69632")]), - Var("R1",Imm(64)), Int(69632,64)), Def(Tid(604, "%0000025c"), - Attrs([Attr("address","0x68C"), Attr("insn","add x1, x1, #0x10")]), - Var("R1",Imm(64)), PLUS(Var("R1",Imm(64)),Int(16,64))), -Def(Tid(611, "%00000263"), Attrs([Attr("address","0x690"), -Attr("insn","sub x1, x1, x0")]), Var("R1",Imm(64)), -PLUS(PLUS(Var("R1",Imm(64)),NOT(Var("R0",Imm(64)))),Int(1,64))), -Def(Tid(617, "%00000269"), Attrs([Attr("address","0x694"), -Attr("insn","lsr x2, x1, #63")]), Var("R2",Imm(64)), -Concat(Int(0,63),Extract(63,63,Var("R1",Imm(64))))), -Def(Tid(624, "%00000270"), Attrs([Attr("address","0x698"), -Attr("insn","add x1, x2, x1, asr #3")]), Var("R1",Imm(64)), -PLUS(Var("R2",Imm(64)),ARSHIFT(Var("R1",Imm(64)),Int(3,3)))), -Def(Tid(630, "%00000276"), Attrs([Attr("address","0x69C"), -Attr("insn","asr x1, x1, #1")]), Var("R1",Imm(64)), -SIGNED(64,Extract(63,1,Var("R1",Imm(64)))))]), -Jmps([Goto(Tid(636, "%0000027c"), Attrs([Attr("address","0x6A0"), -Attr("insn","cbz x1, #0x18")]), EQ(Var("R1",Imm(64)),Int(0,64)), -Direct(Tid(634, "%0000027a"))), Goto(Tid(1_551, "%0000060f"), Attrs([]), - Int(1,1), Direct(Tid(903, "%00000387")))])), Blk(Tid(903, "%00000387"), - Attrs([Attr("address","0x6A4")]), Phis([]), Defs([Def(Tid(906, "%0000038a"), - Attrs([Attr("address","0x6A4"), Attr("insn","adrp x2, #65536")]), - Var("R2",Imm(64)), Int(65536,64)), Def(Tid(913, "%00000391"), - Attrs([Attr("address","0x6A8"), Attr("insn","ldr x2, [x2, #0xff8]")]), - Var("R2",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R2",Imm(64)),Int(4088,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(918, "%00000396"), Attrs([Attr("address","0x6AC"), -Attr("insn","cbz x2, #0xc")]), EQ(Var("R2",Imm(64)),Int(0,64)), -Direct(Tid(634, "%0000027a"))), Goto(Tid(1_552, "%00000610"), Attrs([]), - Int(1,1), Direct(Tid(922, "%0000039a")))])), Blk(Tid(634, "%0000027a"), - Attrs([Attr("address","0x6B8")]), Phis([]), Defs([]), -Jmps([Call(Tid(642, "%00000282"), Attrs([Attr("address","0x6B8"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))])), -Blk(Tid(922, "%0000039a"), Attrs([Attr("address","0x6B0")]), Phis([]), -Defs([Def(Tid(926, "%0000039e"), Attrs([Attr("address","0x6B0"), -Attr("insn","mov x16, x2")]), Var("R16",Imm(64)), Var("R2",Imm(64)))]), -Jmps([Call(Tid(931, "%000003a3"), Attrs([Attr("address","0x6B4"), -Attr("insn","br x16")]), Int(1,1), -(Indirect(Var("R16",Imm(64))),))]))]))]))) \ No newline at end of file diff --git a/src/test/correct/basic_sec_policy_read/gcc/basic_sec_policy_read.bir b/src/test/correct/basic_sec_policy_read/gcc/basic_sec_policy_read.bir deleted file mode 100644 index 22001ebc6..000000000 --- a/src/test/correct/basic_sec_policy_read/gcc/basic_sec_policy_read.bir +++ /dev/null @@ -1,246 +0,0 @@ -00000611: program -000005db: sub __cxa_finalize(__cxa_finalize_result) -00000612: __cxa_finalize_result :: out u32 = low:32[R0] - -00000383: -0000047b: R16 := 0x10000 -00000482: R17 := mem[R16 + 0xFB8, el]:u64 -00000488: R16 := R16 + 0xFB8 -0000048d: call R17 with noreturn - -000005dc: sub __do_global_dtors_aux(__do_global_dtors_aux_result) -00000613: __do_global_dtors_aux_result :: out u32 = low:32[R0] - -00000286: -0000028a: #3 := R31 - 0x20 -00000290: mem := mem with [#3, el]:u64 <- R29 -00000296: mem := mem with [#3 + 8, el]:u64 <- R30 -0000029a: R31 := #3 -000002a0: R29 := R31 -000002a8: mem := mem with [R31 + 0x10, el]:u64 <- R19 -000002ad: R19 := 0x11000 -000002b4: R0 := pad:64[mem[R19 + 0x10]] -000002bb: when 31:0[R0] <> 0 goto %000002b9 -00000605: goto %0000034c - -0000034c: -0000034f: R0 := 0x10000 -00000356: R0 := mem[R0 + 0xFE0, el]:u64 -0000035c: when R0 = 0 goto %0000035a -00000606: goto %00000373 - -00000373: -00000376: R0 := 0x11000 -0000037d: R0 := mem[R0 + 8, el]:u64 -00000382: R30 := 0x6F0 -00000385: call @__cxa_finalize with return %0000035a - -0000035a: -00000362: R30 := 0x6F4 -00000364: call @deregister_tm_clones with return %00000366 - -00000366: -00000369: R0 := 1 -00000371: mem := mem with [R19 + 0x10] <- 7:0[R0] -00000607: goto %000002b9 - -000002b9: -000002c3: R19 := mem[R31 + 0x10, el]:u64 -000002ca: R29 := mem[R31, el]:u64 -000002cf: R30 := mem[R31 + 8, el]:u64 -000002d3: R31 := R31 + 0x20 -000002d8: call R30 with noreturn - -000005e0: sub __libc_start_main(__libc_start_main_main, __libc_start_main_arg2, __libc_start_main_arg3, __libc_start_main_auxv, __libc_start_main_result) -00000614: __libc_start_main_main :: in u64 = R0 -00000615: __libc_start_main_arg2 :: in u32 = low:32[R1] -00000616: __libc_start_main_arg3 :: in out u64 = R2 -00000617: __libc_start_main_auxv :: in out u64 = R3 -00000618: __libc_start_main_result :: out u32 = low:32[R0] - -000001df: -00000465: R16 := 0x10000 -0000046c: R17 := mem[R16 + 0xFB0, el]:u64 -00000472: R16 := R16 + 0xFB0 -00000477: call R17 with noreturn - -000005e1: sub _fini(_fini_result) -00000619: _fini_result :: out u32 = low:32[R0] - -0000001f: -00000025: #0 := R31 - 0x10 -0000002b: mem := mem with [#0, el]:u64 <- R29 -00000031: mem := mem with [#0 + 8, el]:u64 <- R30 -00000035: R31 := #0 -0000003b: R29 := R31 -00000042: R29 := mem[R31, el]:u64 -00000047: R30 := mem[R31 + 8, el]:u64 -0000004b: R31 := R31 + 0x10 -00000050: call R30 with noreturn - -000005e2: sub _init(_init_result) -0000061a: _init_result :: out u32 = low:32[R0] - -0000052f: -00000535: #6 := R31 - 0x10 -0000053b: mem := mem with [#6, el]:u64 <- R29 -00000541: mem := mem with [#6 + 8, el]:u64 <- R30 -00000545: R31 := #6 -0000054b: R29 := R31 -00000550: R30 := 0x590 -00000552: call @call_weak_fn with return %00000554 - -00000554: -00000559: R29 := mem[R31, el]:u64 -0000055e: R30 := mem[R31 + 8, el]:u64 -00000562: R31 := R31 + 0x10 -00000567: call R30 with noreturn - -000005e3: sub _start(_start_result) -0000061b: _start_result :: out u32 = low:32[R0] - -000001a0: -000001a5: R29 := 0 -000001aa: R30 := 0 -000001b0: R5 := R0 -000001b7: R1 := mem[R31, el]:u64 -000001bd: R2 := R31 + 8 -000001c3: R6 := R31 -000001c8: R0 := 0x10000 -000001cf: R0 := mem[R0 + 0xFF0, el]:u64 -000001d4: R3 := 0 -000001d9: R4 := 0 -000001de: R30 := 0x630 -000001e1: call @__libc_start_main with return %000001e3 - -000001e3: -000001e6: R30 := 0x634 -000001e9: call @abort with return %00000608 - -00000608: -00000609: call @call_weak_fn with noreturn - -000005e6: sub abort() - - -000001e7: -000004a7: R16 := 0x10000 -000004ae: R17 := mem[R16 + 0xFC8, el]:u64 -000004b4: R16 := R16 + 0xFC8 -000004b9: call R17 with noreturn - -000005e7: sub call_weak_fn(call_weak_fn_result) -0000061c: call_weak_fn_result :: out u32 = low:32[R0] - -000001eb: -000001ee: R0 := 0x10000 -000001f5: R0 := mem[R0 + 0xFE8, el]:u64 -000001fb: when R0 = 0 goto %000001f9 -0000060a: goto %000003c3 - -000001f9: -00000201: call R30 with noreturn - -000003c3: -000003c6: goto @__gmon_start__ - -000003c4: -00000491: R16 := 0x10000 -00000498: R17 := mem[R16 + 0xFC0, el]:u64 -0000049e: R16 := R16 + 0xFC0 -000004a3: call R17 with noreturn - -000005e9: sub deregister_tm_clones(deregister_tm_clones_result) -0000061d: deregister_tm_clones_result :: out u32 = low:32[R0] - -00000207: -0000020a: R0 := 0x11000 -00000210: R0 := R0 + 0x10 -00000215: R1 := 0x11000 -0000021b: R1 := R1 + 0x10 -00000221: #1 := ~R0 -00000226: #2 := R1 + ~R0 -0000022c: VF := extend:65[#2 + 1] <> extend:65[R1] + extend:65[#1] + 1 -00000232: CF := pad:65[#2 + 1] <> pad:65[R1] + pad:65[#1] + 1 -00000236: ZF := #2 + 1 = 0 -0000023a: NF := 63:63[#2 + 1] -00000240: when ZF goto %0000023e -0000060b: goto %000003a5 - -000003a5: -000003a8: R1 := 0x10000 -000003af: R1 := mem[R1 + 0xFD8, el]:u64 -000003b4: when R1 = 0 goto %0000023e -0000060c: goto %000003b8 - -0000023e: -00000246: call R30 with noreturn - -000003b8: -000003bc: R16 := R1 -000003c1: call R16 with noreturn - -000005ec: sub frame_dummy(frame_dummy_result) -0000061e: frame_dummy_result :: out u32 = low:32[R0] - -000002de: -000002e0: call @register_tm_clones with noreturn - -000005ed: sub main(main_argc, main_argv, main_result) -0000061f: main_argc :: in u32 = low:32[R0] -00000620: main_argv :: in out u64 = R1 -00000621: main_result :: out u32 = low:32[R0] - -000002e2: -000002e6: R31 := R31 - 0x10 -000002eb: R0 := 0x11000 -000002f1: R0 := R0 + 0x14 -000002f8: R0 := pad:64[mem[R0, el]:u32] -00000300: mem := mem with [R31 + 0xC, el]:u32 <- 31:0[R0] -00000305: R0 := 0x11000 -0000030b: R0 := R0 + 0x18 -00000312: R0 := pad:64[mem[R0, el]:u32] -00000318: #4 := 31:0[R0] - 1 -0000031d: VF := extend:33[#4 + 1] <> extend:33[31:0[R0]] + 0 -00000322: CF := pad:33[#4 + 1] <> pad:33[31:0[R0]] - 0x100000000 -00000326: ZF := #4 + 1 = 0 -0000032a: NF := 31:31[#4 + 1] -00000330: when ZF goto %0000032e -0000060d: goto %00000345 - -00000345: -0000034a: mem := mem with [R31 + 0xC, el]:u32 <- 0 -0000060e: goto %0000032e - -0000032e: -00000338: R0 := pad:64[mem[R31 + 0xC, el]:u32] -0000033e: R31 := R31 + 0x10 -00000343: call R30 with noreturn - -000005f0: sub register_tm_clones(register_tm_clones_result) -00000622: register_tm_clones_result :: out u32 = low:32[R0] - -00000248: -0000024b: R0 := 0x11000 -00000251: R0 := R0 + 0x10 -00000256: R1 := 0x11000 -0000025c: R1 := R1 + 0x10 -00000263: R1 := R1 + ~R0 + 1 -00000269: R2 := 0.63:63[R1] -00000270: R1 := R2 + (R1 ~>> 3) -00000276: R1 := extend:64[63:1[R1]] -0000027c: when R1 = 0 goto %0000027a -0000060f: goto %00000387 - -00000387: -0000038a: R2 := 0x10000 -00000391: R2 := mem[R2 + 0xFF8, el]:u64 -00000396: when R2 = 0 goto %0000027a -00000610: goto %0000039a - -0000027a: -00000282: call R30 with noreturn - -0000039a: -0000039e: R16 := R2 -000003a3: call R16 with noreturn diff --git a/src/test/correct/basic_sec_policy_read/gcc/basic_sec_policy_read.expected b/src/test/correct/basic_sec_policy_read/gcc/basic_sec_policy_read.expected index 4f17b67a1..194558265 100644 --- a/src/test/correct/basic_sec_policy_read/gcc/basic_sec_policy_read.expected +++ b/src/test/correct/basic_sec_policy_read/gcc/basic_sec_policy_read.expected @@ -87,7 +87,7 @@ implementation {:extern} guarantee_reflexive() assert (memory_load32_le(mem, $z_addr) == memory_load32_le(mem, $z_addr)); } -procedure main_1812(); +procedure main(); modifies CF, Gamma_CF, Gamma_NF, Gamma_R0, Gamma_R31, Gamma_VF, Gamma_ZF, Gamma_mem, Gamma_stack, NF, R0, R31, VF, ZF, mem, stack; free requires (memory_load64_le(mem, 69632bv64) == 0bv64); free requires (memory_load64_le(mem, 69640bv64) == 69640bv64); @@ -104,31 +104,31 @@ procedure main_1812(); free ensures (memory_load64_le(mem, 69616bv64) == 1812bv64); free ensures (memory_load64_le(mem, 69640bv64) == 69640bv64); -implementation main_1812() +implementation main() { var #4: bv32; + var $load$18: bv32; + var $load$19: bv32; + var $load$20: bv32; var Gamma_#4: bool; - var Gamma_load18: bool; - var Gamma_load19: bool; - var Gamma_load20: bool; - var load18: bv32; - var load19: bv32; - var load20: bv32; + var Gamma_$load$18: bool; + var Gamma_$load$19: bool; + var Gamma_$load$20: bool; lmain: assume {:captureState "lmain"} true; R31, Gamma_R31 := bvadd64(R31, 18446744073709551600bv64), Gamma_R31; R0, Gamma_R0 := 69632bv64, true; R0, Gamma_R0 := bvadd64(R0, 20bv64), Gamma_R0; call rely(); - load18, Gamma_load18 := memory_load32_le(mem, R0), (gamma_load32(Gamma_mem, R0) || L(mem, R0)); - R0, Gamma_R0 := zero_extend32_32(load18), Gamma_load18; + $load$18, Gamma_$load$18 := memory_load32_le(mem, R0), (gamma_load32(Gamma_mem, R0) || L(mem, R0)); + R0, Gamma_R0 := zero_extend32_32($load$18), Gamma_$load$18; stack, Gamma_stack := memory_store32_le(stack, bvadd64(R31, 12bv64), R0[32:0]), gamma_store32(Gamma_stack, bvadd64(R31, 12bv64), Gamma_R0); assume {:captureState "%00000300"} true; R0, Gamma_R0 := 69632bv64, true; R0, Gamma_R0 := bvadd64(R0, 24bv64), Gamma_R0; call rely(); - load19, Gamma_load19 := memory_load32_le(mem, R0), (gamma_load32(Gamma_mem, R0) || L(mem, R0)); - R0, Gamma_R0 := zero_extend32_32(load19), Gamma_load19; + $load$19, Gamma_$load$19 := memory_load32_le(mem, R0), (gamma_load32(Gamma_mem, R0) || L(mem, R0)); + R0, Gamma_R0 := zero_extend32_32($load$19), Gamma_$load$19; #4, Gamma_#4 := bvadd32(R0[32:0], 4294967295bv32), Gamma_R0; VF, Gamma_VF := bvnot1(bvcomp33(sign_extend1_32(bvadd32(#4, 1bv32)), bvadd33(sign_extend1_32(R0[32:0]), 0bv33))), (Gamma_R0 && Gamma_#4); CF, Gamma_CF := bvnot1(bvcomp33(zero_extend1_32(bvadd32(#4, 1bv32)), bvadd33(zero_extend1_32(R0[32:0]), 4294967296bv33))), (Gamma_R0 && Gamma_#4); @@ -136,27 +136,27 @@ implementation main_1812() NF, Gamma_NF := bvadd32(#4, 1bv32)[32:31], Gamma_#4; assert Gamma_ZF; goto lmain_goto_l0000032e, lmain_goto_l00000345; - lmain_goto_l00000345: - assume {:captureState "lmain_goto_l00000345"} true; - assume (bvcomp1(ZF, 1bv1) == 0bv1); - stack, Gamma_stack := memory_store32_le(stack, bvadd64(R31, 12bv64), 0bv32), gamma_store32(Gamma_stack, bvadd64(R31, 12bv64), true); - assume {:captureState "%0000034a"} true; - goto l00000345; l00000345: assume {:captureState "l00000345"} true; + stack, Gamma_stack := memory_store32_le(stack, bvadd64(R31, 12bv64), 0bv32), gamma_store32(Gamma_stack, bvadd64(R31, 12bv64), true); + assume {:captureState "%0000034a"} true; goto l0000032e; + l0000032e: + assume {:captureState "l0000032e"} true; + $load$20, Gamma_$load$20 := memory_load32_le(stack, bvadd64(R31, 12bv64)), gamma_load32(Gamma_stack, bvadd64(R31, 12bv64)); + R0, Gamma_R0 := zero_extend32_32($load$20), Gamma_$load$20; + R31, Gamma_R31 := bvadd64(R31, 16bv64), Gamma_R31; + goto main_basil_return; lmain_goto_l0000032e: assume {:captureState "lmain_goto_l0000032e"} true; assume (bvcomp1(ZF, 1bv1) != 0bv1); goto l0000032e; - l0000032e: - assume {:captureState "l0000032e"} true; - load20, Gamma_load20 := memory_load32_le(stack, bvadd64(R31, 12bv64)), gamma_load32(Gamma_stack, bvadd64(R31, 12bv64)); - R0, Gamma_R0 := zero_extend32_32(load20), Gamma_load20; - R31, Gamma_R31 := bvadd64(R31, 16bv64), Gamma_R31; - goto main_1812_basil_return; - main_1812_basil_return: - assume {:captureState "main_1812_basil_return"} true; + lmain_goto_l00000345: + assume {:captureState "lmain_goto_l00000345"} true; + assume (bvcomp1(ZF, 1bv1) == 0bv1); + goto l00000345; + main_basil_return: + assume {:captureState "main_basil_return"} true; return; } diff --git a/src/test/correct/basic_sec_policy_read/gcc/basic_sec_policy_read.gts b/src/test/correct/basic_sec_policy_read/gcc/basic_sec_policy_read.gts deleted file mode 100644 index 98765e360..000000000 Binary files a/src/test/correct/basic_sec_policy_read/gcc/basic_sec_policy_read.gts and /dev/null differ diff --git a/src/test/correct/basic_sec_policy_read/gcc/basic_sec_policy_read.md5sum b/src/test/correct/basic_sec_policy_read/gcc/basic_sec_policy_read.md5sum new file mode 100644 index 000000000..d04600769 --- /dev/null +++ b/src/test/correct/basic_sec_policy_read/gcc/basic_sec_policy_read.md5sum @@ -0,0 +1,5 @@ +66a4fa57cfa4f599acebc854905c5c67 correct/basic_sec_policy_read/gcc/a.out +707dbb12904ed82b6b9646b4c884ca8a correct/basic_sec_policy_read/gcc/basic_sec_policy_read.adt +6b7656ac5234e83fdaee70c2830475c7 correct/basic_sec_policy_read/gcc/basic_sec_policy_read.bir +9d32162f0c90b2786be35b2aaaaf6012 correct/basic_sec_policy_read/gcc/basic_sec_policy_read.relf +b6cdfd26d10d4fac8d180ea4f8ff984d correct/basic_sec_policy_read/gcc/basic_sec_policy_read.gts diff --git a/src/test/correct/basic_sec_policy_read/gcc/basic_sec_policy_read.relf b/src/test/correct/basic_sec_policy_read/gcc/basic_sec_policy_read.relf deleted file mode 100644 index 26d6bae2d..000000000 --- a/src/test/correct/basic_sec_policy_read/gcc/basic_sec_policy_read.relf +++ /dev/null @@ -1,122 +0,0 @@ - -Relocation section '.rela.dyn' at offset 0x460 contains 8 entries: - Offset Info Type Symbol's Value Symbol's Name + Addend -0000000000010d98 0000000000000403 R_AARCH64_RELATIVE 710 -0000000000010da0 0000000000000403 R_AARCH64_RELATIVE 6c0 -0000000000010ff0 0000000000000403 R_AARCH64_RELATIVE 714 -0000000000011008 0000000000000403 R_AARCH64_RELATIVE 11008 -0000000000010fd8 0000000400000401 R_AARCH64_GLOB_DAT 0000000000000000 _ITM_deregisterTMCloneTable + 0 -0000000000010fe0 0000000500000401 R_AARCH64_GLOB_DAT 0000000000000000 __cxa_finalize@GLIBC_2.17 + 0 -0000000000010fe8 0000000600000401 R_AARCH64_GLOB_DAT 0000000000000000 __gmon_start__ + 0 -0000000000010ff8 0000000800000401 R_AARCH64_GLOB_DAT 0000000000000000 _ITM_registerTMCloneTable + 0 - -Relocation section '.rela.plt' at offset 0x520 contains 4 entries: - Offset Info Type Symbol's Value Symbol's Name + Addend -0000000000010fb0 0000000300000402 R_AARCH64_JUMP_SLOT 0000000000000000 __libc_start_main@GLIBC_2.34 + 0 -0000000000010fb8 0000000500000402 R_AARCH64_JUMP_SLOT 0000000000000000 __cxa_finalize@GLIBC_2.17 + 0 -0000000000010fc0 0000000600000402 R_AARCH64_JUMP_SLOT 0000000000000000 __gmon_start__ + 0 -0000000000010fc8 0000000700000402 R_AARCH64_JUMP_SLOT 0000000000000000 abort@GLIBC_2.17 + 0 - -Symbol table '.dynsym' contains 9 entries: - Num: Value Size Type Bind Vis Ndx Name - 0: 0000000000000000 0 NOTYPE LOCAL DEFAULT UND - 1: 0000000000000580 0 SECTION LOCAL DEFAULT 11 .init - 2: 0000000000011000 0 SECTION LOCAL DEFAULT 22 .data - 3: 0000000000000000 0 FUNC GLOBAL DEFAULT UND __libc_start_main@GLIBC_2.34 (2) - 4: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_deregisterTMCloneTable - 5: 0000000000000000 0 FUNC WEAK DEFAULT UND __cxa_finalize@GLIBC_2.17 (3) - 6: 0000000000000000 0 NOTYPE WEAK DEFAULT UND __gmon_start__ - 7: 0000000000000000 0 FUNC GLOBAL DEFAULT UND abort@GLIBC_2.17 (3) - 8: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_registerTMCloneTable - -Symbol table '.symtab' contains 89 entries: - Num: Value Size Type Bind Vis Ndx Name - 0: 0000000000000000 0 NOTYPE LOCAL DEFAULT UND - 1: 0000000000000238 0 SECTION LOCAL DEFAULT 1 .interp - 2: 0000000000000254 0 SECTION LOCAL DEFAULT 2 .note.gnu.build-id - 3: 0000000000000278 0 SECTION LOCAL DEFAULT 3 .note.ABI-tag - 4: 0000000000000298 0 SECTION LOCAL DEFAULT 4 .gnu.hash - 5: 00000000000002b8 0 SECTION LOCAL DEFAULT 5 .dynsym - 6: 0000000000000390 0 SECTION LOCAL DEFAULT 6 .dynstr - 7: 000000000000041e 0 SECTION LOCAL DEFAULT 7 .gnu.version - 8: 0000000000000430 0 SECTION LOCAL DEFAULT 8 .gnu.version_r - 9: 0000000000000460 0 SECTION LOCAL DEFAULT 9 .rela.dyn - 10: 0000000000000520 0 SECTION LOCAL DEFAULT 10 .rela.plt - 11: 0000000000000580 0 SECTION LOCAL DEFAULT 11 .init - 12: 00000000000005a0 0 SECTION LOCAL DEFAULT 12 .plt - 13: 0000000000000600 0 SECTION LOCAL DEFAULT 13 .text - 14: 000000000000074c 0 SECTION LOCAL DEFAULT 14 .fini - 15: 0000000000000760 0 SECTION LOCAL DEFAULT 15 .rodata - 16: 0000000000000764 0 SECTION LOCAL DEFAULT 16 .eh_frame_hdr - 17: 00000000000007a0 0 SECTION LOCAL DEFAULT 17 .eh_frame - 18: 0000000000010d98 0 SECTION LOCAL DEFAULT 18 .init_array - 19: 0000000000010da0 0 SECTION LOCAL DEFAULT 19 .fini_array - 20: 0000000000010da8 0 SECTION LOCAL DEFAULT 20 .dynamic - 21: 0000000000010f98 0 SECTION LOCAL DEFAULT 21 .got - 22: 0000000000011000 0 SECTION LOCAL DEFAULT 22 .data - 23: 0000000000011010 0 SECTION LOCAL DEFAULT 23 .bss - 24: 0000000000000000 0 SECTION LOCAL DEFAULT 24 .comment - 25: 0000000000000000 0 FILE LOCAL DEFAULT ABS Scrt1.o - 26: 0000000000000278 0 NOTYPE LOCAL DEFAULT 3 $d - 27: 0000000000000278 32 OBJECT LOCAL DEFAULT 3 __abi_tag - 28: 0000000000000600 0 NOTYPE LOCAL DEFAULT 13 $x - 29: 00000000000007b4 0 NOTYPE LOCAL DEFAULT 17 $d - 30: 0000000000000760 0 NOTYPE LOCAL DEFAULT 15 $d - 31: 0000000000000000 0 FILE LOCAL DEFAULT ABS crti.o - 32: 0000000000000634 0 NOTYPE LOCAL DEFAULT 13 $x - 33: 0000000000000634 20 FUNC LOCAL DEFAULT 13 call_weak_fn - 34: 0000000000000580 0 NOTYPE LOCAL DEFAULT 11 $x - 35: 000000000000074c 0 NOTYPE LOCAL DEFAULT 14 $x - 36: 0000000000000000 0 FILE LOCAL DEFAULT ABS crtn.o - 37: 0000000000000590 0 NOTYPE LOCAL DEFAULT 11 $x - 38: 0000000000000758 0 NOTYPE LOCAL DEFAULT 14 $x - 39: 0000000000000000 0 FILE LOCAL DEFAULT ABS crtstuff.c - 40: 0000000000000650 0 NOTYPE LOCAL DEFAULT 13 $x - 41: 0000000000000650 0 FUNC LOCAL DEFAULT 13 deregister_tm_clones - 42: 0000000000000680 0 FUNC LOCAL DEFAULT 13 register_tm_clones - 43: 0000000000011008 0 NOTYPE LOCAL DEFAULT 22 $d - 44: 00000000000006c0 0 FUNC LOCAL DEFAULT 13 __do_global_dtors_aux - 45: 0000000000011010 1 OBJECT LOCAL DEFAULT 23 completed.0 - 46: 0000000000010da0 0 NOTYPE LOCAL DEFAULT 19 $d - 47: 0000000000010da0 0 OBJECT LOCAL DEFAULT 19 __do_global_dtors_aux_fini_array_entry - 48: 0000000000000710 0 FUNC LOCAL DEFAULT 13 frame_dummy - 49: 0000000000010d98 0 NOTYPE LOCAL DEFAULT 18 $d - 50: 0000000000010d98 0 OBJECT LOCAL DEFAULT 18 __frame_dummy_init_array_entry - 51: 00000000000007c8 0 NOTYPE LOCAL DEFAULT 17 $d - 52: 0000000000011010 0 NOTYPE LOCAL DEFAULT 23 $d - 53: 0000000000000000 0 FILE LOCAL DEFAULT ABS basic_sec_policy_read.c - 54: 0000000000011014 0 NOTYPE LOCAL DEFAULT 23 $d - 55: 0000000000000714 0 NOTYPE LOCAL DEFAULT 13 $x - 56: 0000000000000828 0 NOTYPE LOCAL DEFAULT 17 $d - 57: 0000000000000000 0 FILE LOCAL DEFAULT ABS crtstuff.c - 58: 0000000000000840 0 NOTYPE LOCAL DEFAULT 17 $d - 59: 0000000000000840 0 OBJECT LOCAL DEFAULT 17 __FRAME_END__ - 60: 0000000000000000 0 FILE LOCAL DEFAULT ABS - 61: 0000000000010da8 0 OBJECT LOCAL DEFAULT ABS _DYNAMIC - 62: 0000000000000764 0 NOTYPE LOCAL DEFAULT 16 __GNU_EH_FRAME_HDR - 63: 0000000000010fd0 0 OBJECT LOCAL DEFAULT ABS _GLOBAL_OFFSET_TABLE_ - 64: 00000000000005a0 0 NOTYPE LOCAL DEFAULT 12 $x - 65: 0000000000000000 0 FUNC GLOBAL DEFAULT UND __libc_start_main@GLIBC_2.34 - 66: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_deregisterTMCloneTable - 67: 0000000000011000 0 NOTYPE WEAK DEFAULT 22 data_start - 68: 0000000000011010 0 NOTYPE GLOBAL DEFAULT 23 __bss_start__ - 69: 0000000000000000 0 FUNC WEAK DEFAULT UND __cxa_finalize@GLIBC_2.17 - 70: 0000000000011020 0 NOTYPE GLOBAL DEFAULT 23 _bss_end__ - 71: 0000000000011010 0 NOTYPE GLOBAL DEFAULT 22 _edata - 72: 0000000000011018 4 OBJECT GLOBAL DEFAULT 23 z - 73: 0000000000011014 4 OBJECT GLOBAL DEFAULT 23 x - 74: 000000000000074c 0 FUNC GLOBAL HIDDEN 14 _fini - 75: 0000000000011020 0 NOTYPE GLOBAL DEFAULT 23 __bss_end__ - 76: 0000000000011000 0 NOTYPE GLOBAL DEFAULT 22 __data_start - 77: 0000000000000000 0 NOTYPE WEAK DEFAULT UND __gmon_start__ - 78: 0000000000011008 0 OBJECT GLOBAL HIDDEN 22 __dso_handle - 79: 0000000000000000 0 FUNC GLOBAL DEFAULT UND abort@GLIBC_2.17 - 80: 0000000000000760 4 OBJECT GLOBAL DEFAULT 15 _IO_stdin_used - 81: 0000000000011020 0 NOTYPE GLOBAL DEFAULT 23 _end - 82: 0000000000000600 52 FUNC GLOBAL DEFAULT 13 _start - 83: 0000000000011020 0 NOTYPE GLOBAL DEFAULT 23 __end__ - 84: 0000000000011010 0 NOTYPE GLOBAL DEFAULT 23 __bss_start - 85: 0000000000000714 56 FUNC GLOBAL DEFAULT 13 main - 86: 0000000000011010 0 OBJECT GLOBAL HIDDEN 22 __TMC_END__ - 87: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_registerTMCloneTable - 88: 0000000000000580 0 FUNC GLOBAL HIDDEN 11 _init diff --git a/src/test/correct/basic_sec_policy_read/gcc/basic_sec_policy_read_gtirb.expected b/src/test/correct/basic_sec_policy_read/gcc/basic_sec_policy_read_gtirb.expected index 7b62099a4..4f9f9f788 100644 --- a/src/test/correct/basic_sec_policy_read/gcc/basic_sec_policy_read_gtirb.expected +++ b/src/test/correct/basic_sec_policy_read/gcc/basic_sec_policy_read_gtirb.expected @@ -85,7 +85,7 @@ implementation {:extern} guarantee_reflexive() assert (memory_load32_le(mem, $z_addr) == memory_load32_le(mem, $z_addr)); } -procedure main_1812(); +procedure main(); modifies CF, Gamma_CF, Gamma_NF, Gamma_R0, Gamma_R31, Gamma_VF, Gamma_ZF, Gamma_mem, Gamma_stack, NF, R0, R31, VF, ZF, mem, stack; free requires (memory_load64_le(mem, 69632bv64) == 0bv64); free requires (memory_load64_le(mem, 69640bv64) == 69640bv64); @@ -102,59 +102,59 @@ procedure main_1812(); free ensures (memory_load64_le(mem, 69616bv64) == 1812bv64); free ensures (memory_load64_le(mem, 69640bv64) == 69640bv64); -implementation main_1812() +implementation main() { - var Cse0__5_0_8: bv32; - var Gamma_Cse0__5_0_8: bool; - var Gamma_load4: bool; - var Gamma_load5: bool; - var Gamma_load6: bool; - var load4: bv32; - var load5: bv32; - var load6: bv32; - main_1812__0__qLy9TrC9QH2pk7NWiim55Q: - assume {:captureState "main_1812__0__qLy9TrC9QH2pk7NWiim55Q"} true; + var $load4: bv32; + var $load5: bv32; + var $load6: bv32; + var Cse0__5$0$8: bv32; + var Gamma_$load4: bool; + var Gamma_$load5: bool; + var Gamma_$load6: bool; + var Gamma_Cse0__5$0$8: bool; + $main$__0__$qLy9TrC9QH2pk7NWiim55Q: + assume {:captureState "$main$__0__$qLy9TrC9QH2pk7NWiim55Q"} true; R31, Gamma_R31 := bvadd64(R31, 18446744073709551600bv64), Gamma_R31; R0, Gamma_R0 := 69632bv64, true; R0, Gamma_R0 := bvadd64(R0, 20bv64), Gamma_R0; call rely(); - load4, Gamma_load4 := memory_load32_le(mem, R0), (gamma_load32(Gamma_mem, R0) || L(mem, R0)); - R0, Gamma_R0 := zero_extend32_32(load4), Gamma_load4; + $load4, Gamma_$load4 := memory_load32_le(mem, R0), (gamma_load32(Gamma_mem, R0) || L(mem, R0)); + R0, Gamma_R0 := zero_extend32_32($load4), Gamma_$load4; stack, Gamma_stack := memory_store32_le(stack, bvadd64(R31, 12bv64), R0[32:0]), gamma_store32(Gamma_stack, bvadd64(R31, 12bv64), Gamma_R0); - assume {:captureState "1828_0"} true; + assume {:captureState "1828$0"} true; R0, Gamma_R0 := 69632bv64, true; R0, Gamma_R0 := bvadd64(R0, 24bv64), Gamma_R0; call rely(); - load5, Gamma_load5 := memory_load32_le(mem, R0), (gamma_load32(Gamma_mem, R0) || L(mem, R0)); - R0, Gamma_R0 := zero_extend32_32(load5), Gamma_load5; - Cse0__5_0_8, Gamma_Cse0__5_0_8 := bvadd32(R0[32:0], 0bv32), Gamma_R0; - VF, Gamma_VF := bvnot1(bvcomp32(Cse0__5_0_8, Cse0__5_0_8)), Gamma_Cse0__5_0_8; - CF, Gamma_CF := bvnot1(bvcomp33(zero_extend1_32(Cse0__5_0_8), bvadd33(zero_extend1_32(R0[32:0]), 4294967296bv33))), (Gamma_R0 && Gamma_Cse0__5_0_8); - ZF, Gamma_ZF := bvcomp32(Cse0__5_0_8, 0bv32), Gamma_Cse0__5_0_8; - NF, Gamma_NF := Cse0__5_0_8[32:31], Gamma_Cse0__5_0_8; + $load5, Gamma_$load5 := memory_load32_le(mem, R0), (gamma_load32(Gamma_mem, R0) || L(mem, R0)); + R0, Gamma_R0 := zero_extend32_32($load5), Gamma_$load5; + Cse0__5$0$8, Gamma_Cse0__5$0$8 := bvadd32(R0[32:0], 0bv32), Gamma_R0; + VF, Gamma_VF := bvnot1(bvcomp32(Cse0__5$0$8, Cse0__5$0$8)), Gamma_Cse0__5$0$8; + CF, Gamma_CF := bvnot1(bvcomp33(zero_extend1_32(Cse0__5$0$8), bvadd33(zero_extend1_32(R0[32:0]), 4294967296bv33))), (Gamma_R0 && Gamma_Cse0__5$0$8); + ZF, Gamma_ZF := bvcomp32(Cse0__5$0$8, 0bv32), Gamma_Cse0__5$0$8; + NF, Gamma_NF := Cse0__5$0$8[32:31], Gamma_Cse0__5$0$8; assert Gamma_ZF; - goto main_1812__0__qLy9TrC9QH2pk7NWiim55Q_goto_main_1812__2__w_2v0dVvQ2~CbK2pWb20GA, main_1812__0__qLy9TrC9QH2pk7NWiim55Q_goto_main_1812__1___azgQEK1R4ujBoxU5Olnyw; - main_1812__0__qLy9TrC9QH2pk7NWiim55Q_goto_main_1812__1___azgQEK1R4ujBoxU5Olnyw: - assume {:captureState "main_1812__0__qLy9TrC9QH2pk7NWiim55Q_goto_main_1812__1___azgQEK1R4ujBoxU5Olnyw"} true; - assume (!(ZF == 1bv1)); + goto $main$__0__$qLy9TrC9QH2pk7NWiim55Q_goto_$main$__2__$w_2v0dVvQ2~CbK2pWb20GA, $main$__0__$qLy9TrC9QH2pk7NWiim55Q_goto_$main$__1__$_azgQEK1R4ujBoxU5Olnyw; + $main$__1__$_azgQEK1R4ujBoxU5Olnyw: + assume {:captureState "$main$__1__$_azgQEK1R4ujBoxU5Olnyw"} true; stack, Gamma_stack := memory_store32_le(stack, bvadd64(R31, 12bv64), 0bv32), gamma_store32(Gamma_stack, bvadd64(R31, 12bv64), true); - assume {:captureState "1852_0"} true; - goto main_1812__1___azgQEK1R4ujBoxU5Olnyw; - main_1812__1___azgQEK1R4ujBoxU5Olnyw: - assume {:captureState "main_1812__1___azgQEK1R4ujBoxU5Olnyw"} true; - goto main_1812__2__w_2v0dVvQ2~CbK2pWb20GA; - main_1812__0__qLy9TrC9QH2pk7NWiim55Q_goto_main_1812__2__w_2v0dVvQ2~CbK2pWb20GA: - assume {:captureState "main_1812__0__qLy9TrC9QH2pk7NWiim55Q_goto_main_1812__2__w_2v0dVvQ2~CbK2pWb20GA"} true; - assume (ZF == 1bv1); - goto main_1812__2__w_2v0dVvQ2~CbK2pWb20GA; - main_1812__2__w_2v0dVvQ2~CbK2pWb20GA: - assume {:captureState "main_1812__2__w_2v0dVvQ2~CbK2pWb20GA"} true; - load6, Gamma_load6 := memory_load32_le(stack, bvadd64(R31, 12bv64)), gamma_load32(Gamma_stack, bvadd64(R31, 12bv64)); - R0, Gamma_R0 := zero_extend32_32(load6), Gamma_load6; + assume {:captureState "1852$0"} true; + goto $main$__2__$w_2v0dVvQ2~CbK2pWb20GA; + $main$__2__$w_2v0dVvQ2~CbK2pWb20GA: + assume {:captureState "$main$__2__$w_2v0dVvQ2~CbK2pWb20GA"} true; + $load6, Gamma_$load6 := memory_load32_le(stack, bvadd64(R31, 12bv64)), gamma_load32(Gamma_stack, bvadd64(R31, 12bv64)); + R0, Gamma_R0 := zero_extend32_32($load6), Gamma_$load6; R31, Gamma_R31 := bvadd64(R31, 16bv64), Gamma_R31; - goto main_1812_basil_return; - main_1812_basil_return: - assume {:captureState "main_1812_basil_return"} true; + goto main_basil_return; + $main$__0__$qLy9TrC9QH2pk7NWiim55Q_goto_$main$__2__$w_2v0dVvQ2~CbK2pWb20GA: + assume {:captureState "$main$__0__$qLy9TrC9QH2pk7NWiim55Q_goto_$main$__2__$w_2v0dVvQ2~CbK2pWb20GA"} true; + assume (ZF == 1bv1); + goto $main$__2__$w_2v0dVvQ2~CbK2pWb20GA; + $main$__0__$qLy9TrC9QH2pk7NWiim55Q_goto_$main$__1__$_azgQEK1R4ujBoxU5Olnyw: + assume {:captureState "$main$__0__$qLy9TrC9QH2pk7NWiim55Q_goto_$main$__1__$_azgQEK1R4ujBoxU5Olnyw"} true; + assume (!(ZF == 1bv1)); + goto $main$__1__$_azgQEK1R4ujBoxU5Olnyw; + main_basil_return: + assume {:captureState "main_basil_return"} true; return; } diff --git a/src/test/correct/basic_sec_policy_read/gcc_O2/basic_sec_policy_read.adt b/src/test/correct/basic_sec_policy_read/gcc_O2/basic_sec_policy_read.adt deleted file mode 100644 index 114538486..000000000 --- a/src/test/correct/basic_sec_policy_read/gcc_O2/basic_sec_policy_read.adt +++ /dev/null @@ -1,503 +0,0 @@ -Project(Attrs([Attr("filename","\"gcc_O2/basic_sec_policy_read.out\""), -Attr("image-specification","(declare abi (name str))\n(declare arch (name str))\n(declare base-address (addr int))\n(declare bias (off int))\n(declare bits (size int))\n(declare code-region (addr int) (size int) (off int))\n(declare code-start (addr int))\n(declare entry-point (addr int))\n(declare external-reference (addr int) (name str))\n(declare format (name str))\n(declare is-executable (flag bool))\n(declare is-little-endian (flag bool))\n(declare llvm:base-address (addr int))\n(declare llvm:code-entry (name str) (off int) (size int))\n(declare llvm:coff-import-library (name str))\n(declare llvm:coff-virtual-section-header (name str) (addr int) (size int))\n(declare llvm:elf-program-header (name str) (off int) (size int))\n(declare llvm:elf-program-header-flags (name str) (ld bool) (r bool) \n (w bool) (x bool))\n(declare llvm:elf-virtual-program-header (name str) (addr int) (size int))\n(declare llvm:entry-point (addr int))\n(declare llvm:macho-symbol (name str) (value int))\n(declare llvm:name-reference (at int) (name str))\n(declare llvm:relocation (at int) (addr int))\n(declare llvm:section-entry (name str) (addr int) (size int) (off int))\n(declare llvm:section-flags (name str) (r bool) (w bool) (x bool))\n(declare llvm:segment-command (name str) (off int) (size int))\n(declare llvm:segment-command-flags (name str) (r bool) (w bool) (x bool))\n(declare llvm:symbol-entry (name str) (addr int) (size int) (off int)\n (value int))\n(declare llvm:virtual-segment-command (name str) (addr int) (size int))\n(declare mapped (addr int) (size int) (off int))\n(declare named-region (addr int) (size int) (name str))\n(declare named-symbol (addr int) (name str))\n(declare require (name str))\n(declare section (addr int) (size int))\n(declare segment (addr int) (size int) (r bool) (w bool) (x bool))\n(declare subarch (name str))\n(declare symbol-chunk (addr int) (size int) (root int))\n(declare symbol-value (addr int) (value int))\n(declare system (name str))\n(declare vendor (name str))\n\n(abi unknown)\n(arch aarch64)\n(base-address 0)\n(bias 0)\n(bits 64)\n(code-region 1876 20 1876)\n(code-region 1536 340 1536)\n(code-region 1440 96 1440)\n(code-region 1408 24 1408)\n(code-start 1652)\n(code-start 1600)\n(code-start 1536)\n(entry-point 1600)\n(external-reference 69592 _ITM_deregisterTMCloneTable)\n(external-reference 69600 __cxa_finalize)\n(external-reference 69608 __gmon_start__)\n(external-reference 69624 _ITM_registerTMCloneTable)\n(external-reference 69552 __libc_start_main)\n(external-reference 69560 __cxa_finalize)\n(external-reference 69568 __gmon_start__)\n(external-reference 69576 abort)\n(format elf)\n(is-executable true)\n(is-little-endian true)\n(llvm:base-address 0)\n(llvm:code-entry abort 0 0)\n(llvm:code-entry __cxa_finalize 0 0)\n(llvm:code-entry __libc_start_main 0 0)\n(llvm:code-entry _init 1408 0)\n(llvm:code-entry main 1536 28)\n(llvm:code-entry _start 1600 52)\n(llvm:code-entry abort@GLIBC_2.17 0 0)\n(llvm:code-entry _fini 1876 0)\n(llvm:code-entry __cxa_finalize@GLIBC_2.17 0 0)\n(llvm:code-entry __libc_start_main@GLIBC_2.34 0 0)\n(llvm:code-entry frame_dummy 1872 0)\n(llvm:code-entry __do_global_dtors_aux 1792 0)\n(llvm:code-entry register_tm_clones 1728 0)\n(llvm:code-entry deregister_tm_clones 1680 0)\n(llvm:code-entry call_weak_fn 1652 20)\n(llvm:code-entry .fini 1876 20)\n(llvm:code-entry .text 1536 340)\n(llvm:code-entry .plt 1440 96)\n(llvm:code-entry .init 1408 24)\n(llvm:elf-program-header 08 3480 616)\n(llvm:elf-program-header 07 0 0)\n(llvm:elf-program-header 06 1900 60)\n(llvm:elf-program-header 05 596 68)\n(llvm:elf-program-header 04 3496 496)\n(llvm:elf-program-header 03 3480 632)\n(llvm:elf-program-header 02 0 2120)\n(llvm:elf-program-header 01 568 27)\n(llvm:elf-program-header 00 64 504)\n(llvm:elf-program-header-flags 08 false true false false)\n(llvm:elf-program-header-flags 07 false true true false)\n(llvm:elf-program-header-flags 06 false true false false)\n(llvm:elf-program-header-flags 05 false true false false)\n(llvm:elf-program-header-flags 04 false true true false)\n(llvm:elf-program-header-flags 03 true true true false)\n(llvm:elf-program-header-flags 02 true true false true)\n(llvm:elf-program-header-flags 01 false true false false)\n(llvm:elf-program-header-flags 00 false true false false)\n(llvm:elf-virtual-program-header 08 69016 616)\n(llvm:elf-virtual-program-header 07 0 0)\n(llvm:elf-virtual-program-header 06 1900 60)\n(llvm:elf-virtual-program-header 05 596 68)\n(llvm:elf-virtual-program-header 04 69032 496)\n(llvm:elf-virtual-program-header 03 69016 648)\n(llvm:elf-virtual-program-header 02 0 2120)\n(llvm:elf-virtual-program-header 01 568 27)\n(llvm:elf-virtual-program-header 00 64 504)\n(llvm:entry-point 1600)\n(llvm:name-reference 69576 abort)\n(llvm:name-reference 69568 __gmon_start__)\n(llvm:name-reference 69560 __cxa_finalize)\n(llvm:name-reference 69552 __libc_start_main)\n(llvm:name-reference 69624 _ITM_registerTMCloneTable)\n(llvm:name-reference 69608 __gmon_start__)\n(llvm:name-reference 69600 __cxa_finalize)\n(llvm:name-reference 69592 _ITM_deregisterTMCloneTable)\n(llvm:section-entry .shstrtab 0 250 6855)\n(llvm:section-entry .strtab 0 559 6296)\n(llvm:section-entry .symtab 0 2136 4160)\n(llvm:section-entry .comment 0 43 4112)\n(llvm:section-entry .bss 69648 16 4112)\n(llvm:section-entry .data 69632 16 4096)\n(llvm:section-entry .got 69528 104 3992)\n(llvm:section-entry .dynamic 69032 496 3496)\n(llvm:section-entry .fini_array 69024 8 3488)\n(llvm:section-entry .init_array 69016 8 3480)\n(llvm:section-entry .eh_frame 1960 160 1960)\n(llvm:section-entry .eh_frame_hdr 1900 60 1900)\n(llvm:section-entry .rodata 1896 4 1896)\n(llvm:section-entry .fini 1876 20 1876)\n(llvm:section-entry .text 1536 340 1536)\n(llvm:section-entry .plt 1440 96 1440)\n(llvm:section-entry .init 1408 24 1408)\n(llvm:section-entry .rela.plt 1312 96 1312)\n(llvm:section-entry .rela.dyn 1120 192 1120)\n(llvm:section-entry .gnu.version_r 1072 48 1072)\n(llvm:section-entry .gnu.version 1054 18 1054)\n(llvm:section-entry .dynstr 912 141 912)\n(llvm:section-entry .dynsym 696 216 696)\n(llvm:section-entry .gnu.hash 664 28 664)\n(llvm:section-entry .note.ABI-tag 632 32 632)\n(llvm:section-entry .note.gnu.build-id 596 36 596)\n(llvm:section-entry .interp 568 27 568)\n(llvm:section-flags .shstrtab true false false)\n(llvm:section-flags .strtab true false false)\n(llvm:section-flags .symtab true false false)\n(llvm:section-flags .comment true false false)\n(llvm:section-flags .bss true true false)\n(llvm:section-flags .data true true false)\n(llvm:section-flags .got true true false)\n(llvm:section-flags .dynamic true true false)\n(llvm:section-flags .fini_array true true false)\n(llvm:section-flags .init_array true true false)\n(llvm:section-flags .eh_frame true false false)\n(llvm:section-flags .eh_frame_hdr true false false)\n(llvm:section-flags .rodata true false false)\n(llvm:section-flags .fini true false true)\n(llvm:section-flags .text true false true)\n(llvm:section-flags .plt true false true)\n(llvm:section-flags .init true false true)\n(llvm:section-flags .rela.plt true false false)\n(llvm:section-flags .rela.dyn true false false)\n(llvm:section-flags .gnu.version_r true false false)\n(llvm:section-flags .gnu.version true false false)\n(llvm:section-flags .dynstr true false false)\n(llvm:section-flags .dynsym true false false)\n(llvm:section-flags .gnu.hash true false false)\n(llvm:section-flags .note.ABI-tag true false false)\n(llvm:section-flags .note.gnu.build-id true false false)\n(llvm:section-flags .interp true false false)\n(llvm:symbol-entry abort 0 0 0 0)\n(llvm:symbol-entry __cxa_finalize 0 0 0 0)\n(llvm:symbol-entry __libc_start_main 0 0 0 0)\n(llvm:symbol-entry _init 1408 0 1408 1408)\n(llvm:symbol-entry main 1536 28 1536 1536)\n(llvm:symbol-entry _start 1600 52 1600 1600)\n(llvm:symbol-entry abort@GLIBC_2.17 0 0 0 0)\n(llvm:symbol-entry _fini 1876 0 1876 1876)\n(llvm:symbol-entry __cxa_finalize@GLIBC_2.17 0 0 0 0)\n(llvm:symbol-entry __libc_start_main@GLIBC_2.34 0 0 0 0)\n(llvm:symbol-entry frame_dummy 1872 0 1872 1872)\n(llvm:symbol-entry __do_global_dtors_aux 1792 0 1792 1792)\n(llvm:symbol-entry register_tm_clones 1728 0 1728 1728)\n(llvm:symbol-entry deregister_tm_clones 1680 0 1680 1680)\n(llvm:symbol-entry call_weak_fn 1652 20 1652 1652)\n(mapped 0 2120 0)\n(mapped 69016 632 3480)\n(named-region 0 2120 02)\n(named-region 69016 648 03)\n(named-region 568 27 .interp)\n(named-region 596 36 .note.gnu.build-id)\n(named-region 632 32 .note.ABI-tag)\n(named-region 664 28 .gnu.hash)\n(named-region 696 216 .dynsym)\n(named-region 912 141 .dynstr)\n(named-region 1054 18 .gnu.version)\n(named-region 1072 48 .gnu.version_r)\n(named-region 1120 192 .rela.dyn)\n(named-region 1312 96 .rela.plt)\n(named-region 1408 24 .init)\n(named-region 1440 96 .plt)\n(named-region 1536 340 .text)\n(named-region 1876 20 .fini)\n(named-region 1896 4 .rodata)\n(named-region 1900 60 .eh_frame_hdr)\n(named-region 1960 160 .eh_frame)\n(named-region 69016 8 .init_array)\n(named-region 69024 8 .fini_array)\n(named-region 69032 496 .dynamic)\n(named-region 69528 104 .got)\n(named-region 69632 16 .data)\n(named-region 69648 16 .bss)\n(named-region 0 43 .comment)\n(named-region 0 2136 .symtab)\n(named-region 0 559 .strtab)\n(named-region 0 250 .shstrtab)\n(named-symbol 1652 call_weak_fn)\n(named-symbol 1680 deregister_tm_clones)\n(named-symbol 1728 register_tm_clones)\n(named-symbol 1792 __do_global_dtors_aux)\n(named-symbol 1872 frame_dummy)\n(named-symbol 0 __libc_start_main@GLIBC_2.34)\n(named-symbol 0 __cxa_finalize@GLIBC_2.17)\n(named-symbol 1876 _fini)\n(named-symbol 0 abort@GLIBC_2.17)\n(named-symbol 1600 _start)\n(named-symbol 1536 main)\n(named-symbol 1408 _init)\n(named-symbol 0 __libc_start_main)\n(named-symbol 0 __cxa_finalize)\n(named-symbol 0 abort)\n(require libc.so.6)\n(section 568 27)\n(section 596 36)\n(section 632 32)\n(section 664 28)\n(section 696 216)\n(section 912 141)\n(section 1054 18)\n(section 1072 48)\n(section 1120 192)\n(section 1312 96)\n(section 1408 24)\n(section 1440 96)\n(section 1536 340)\n(section 1876 20)\n(section 1896 4)\n(section 1900 60)\n(section 1960 160)\n(section 69016 8)\n(section 69024 8)\n(section 69032 496)\n(section 69528 104)\n(section 69632 16)\n(section 69648 16)\n(section 0 43)\n(section 0 2136)\n(section 0 559)\n(section 0 250)\n(segment 0 2120 true false true)\n(segment 69016 648 true true false)\n(subarch v8)\n(symbol-chunk 1652 20 1652)\n(symbol-chunk 1600 52 1600)\n(symbol-chunk 1536 28 1536)\n(symbol-value 1652 1652)\n(symbol-value 1680 1680)\n(symbol-value 1728 1728)\n(symbol-value 1792 1792)\n(symbol-value 1872 1872)\n(symbol-value 1876 1876)\n(symbol-value 1600 1600)\n(symbol-value 1536 1536)\n(symbol-value 1408 1408)\n(symbol-value 0 0)\n(system \"\")\n(vendor \"\")\n"), -Attr("abi-name","\"aarch64-linux-gnu-elf\"")]), -Sections([Section(".shstrtab", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x40\x06\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xc8\x1b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x38\x00\x09\x00\x40\x00\x1c\x00\x1b\x00\x06\x00\x00\x00\x04\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x04\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x48\x08\x00\x00\x00\x00\x00\x00\x48\x08\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x01\x00\x00\x00\x06\x00\x00\x00\x98\x0d\x00\x00\x00\x00\x00\x00\x98\x0d"), -Section(".strtab", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x40\x06\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xc8\x1b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x38\x00\x09\x00\x40\x00\x1c\x00\x1b\x00\x06\x00\x00\x00\x04\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x04\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x48\x08\x00\x00\x00\x00\x00\x00\x48\x08\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x01\x00\x00\x00\x06\x00\x00\x00\x98\x0d\x00\x00\x00\x00\x00\x00\x98\x0d\x01\x00\x00\x00\x00\x00\x98\x0d\x01\x00\x00\x00\x00\x00\x78\x02\x00\x00\x00\x00\x00\x00\x88\x02\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x02\x00\x00\x00\x06\x00\x00\x00\xa8\x0d\x00\x00\x00\x00\x00\x00\xa8\x0d\x01\x00\x00\x00\x00\x00\xa8\x0d\x01\x00\x00\x00\x00\x00\xf0\x01\x00\x00\x00\x00\x00\x00\xf0\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x04\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x50\xe5\x74\x64\x04\x00\x00\x00\x6c\x07\x00\x00\x00\x00\x00\x00\x6c\x07\x00\x00\x00\x00\x00\x00\x6c\x07\x00\x00\x00\x00\x00\x00\x3c\x00\x00\x00\x00\x00\x00\x00\x3c\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x51\xe5\x74\x64\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x52\xe5\x74\x64\x04\x00\x00\x00\x98\x0d\x00\x00\x00\x00\x00\x00\x98\x0d\x01\x00\x00\x00\x00\x00\x98\x0d\x01\x00\x00\x00\x00\x00\x68\x02\x00\x00\x00\x00\x00\x00\x68\x02\x00\x00\x00\x00\x00"), -Section(".comment", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x40\x06\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xc8\x1b\x00"), -Section(".interp", 0x238, "\x2f\x6c\x69\x62\x2f\x6c\x64\x2d\x6c\x69\x6e\x75\x78\x2d\x61\x61\x72\x63\x68\x36\x34\x2e\x73\x6f\x2e\x31\x00"), -Section(".note.gnu.build-id", 0x254, "\x04\x00\x00\x00\x14\x00\x00\x00\x03\x00\x00\x00\x47\x4e\x55\x00\x39\x97\x4f\x3f\xa8\x8b\x9b\xb0\x55\xc1\x4b\x4f\x7e\xc0\xdd\xf7\xc2\xbd\x45\x0b"), -Section(".note.ABI-tag", 0x278, "\x04\x00\x00\x00\x10\x00\x00\x00\x01\x00\x00\x00\x47\x4e\x55\x00\x00\x00\x00\x00\x03\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00"), -Section(".gnu.hash", 0x298, "\x01\x00\x00\x00\x01\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".dynsym", 0x2B8, "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x0b\x00\x80\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x16\x00\x00\x10\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x48\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x22\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x22\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x73\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".dynstr", 0x390, "\x00\x5f\x5f\x63\x78\x61\x5f\x66\x69\x6e\x61\x6c\x69\x7a\x65\x00\x5f\x5f\x6c\x69\x62\x63\x5f\x73\x74\x61\x72\x74\x5f\x6d\x61\x69\x6e\x00\x61\x62\x6f\x72\x74\x00\x6c\x69\x62\x63\x2e\x73\x6f\x2e\x36\x00\x47\x4c\x49\x42\x43\x5f\x32\x2e\x31\x37\x00\x47\x4c\x49\x42\x43\x5f\x32\x2e\x33\x34\x00\x5f\x49\x54\x4d\x5f\x64\x65\x72\x65\x67\x69\x73\x74\x65\x72\x54\x4d\x43\x6c\x6f\x6e\x65\x54\x61\x62\x6c\x65\x00\x5f\x5f\x67\x6d\x6f\x6e\x5f\x73\x74\x61\x72\x74\x5f\x5f\x00\x5f\x49\x54\x4d\x5f\x72\x65\x67\x69\x73\x74\x65\x72\x54\x4d\x43\x6c\x6f\x6e\x65\x54\x61\x62\x6c\x65\x00"), -Section(".gnu.version", 0x41E, "\x00\x00\x00\x00\x00\x00\x02\x00\x01\x00\x03\x00\x01\x00\x03\x00\x01\x00"), -Section(".gnu.version_r", 0x430, "\x01\x00\x02\x00\x28\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x97\x91\x96\x06\x00\x00\x03\x00\x32\x00\x00\x00\x10\x00\x00\x00\xb4\x91\x96\x06\x00\x00\x02\x00\x3d\x00\x00\x00\x00\x00\x00\x00"), -Section(".rela.dyn", 0x460, "\x98\x0d\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x50\x07\x00\x00\x00\x00\x00\x00\xa0\x0d\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\xf0\x0f\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x00\x06\x00\x00\x00\x00\x00\x00\x08\x10\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x08\x10\x01\x00\x00\x00\x00\x00\xd8\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe0\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe8\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xf8\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".rela.plt", 0x520, "\xb0\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xb8\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xc0\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xc8\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".init", 0x580, "\x1f\x20\x03\xd5\xfd\x7b\xbf\xa9\xfd\x03\x00\x91\x3a\x00\x00\x94\xfd\x7b\xc1\xa8\xc0\x03\x5f\xd6"), -Section(".plt", 0x5A0, "\xf0\x7b\xbf\xa9\x90\x00\x00\x90\x11\xd6\x47\xf9\x10\xa2\x3e\x91\x20\x02\x1f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x90\x00\x00\x90\x11\xda\x47\xf9\x10\xc2\x3e\x91\x20\x02\x1f\xd6\x90\x00\x00\x90\x11\xde\x47\xf9\x10\xe2\x3e\x91\x20\x02\x1f\xd6\x90\x00\x00\x90\x11\xe2\x47\xf9\x10\x02\x3f\x91\x20\x02\x1f\xd6\x90\x00\x00\x90\x11\xe6\x47\xf9\x10\x22\x3f\x91\x20\x02\x1f\xd6"), -Section(".fini", 0x754, "\x1f\x20\x03\xd5\xfd\x7b\xbf\xa9\xfd\x03\x00\x91\xfd\x7b\xc1\xa8\xc0\x03\x5f\xd6"), -Section(".rodata", 0x768, "\x01\x00\x02\x00"), -Section(".eh_frame_hdr", 0x76C, "\x01\x1b\x03\x3b\x38\x00\x00\x00\x06\x00\x00\x00\x94\xfe\xff\xff\xc4\x00\x00\x00\xd4\xfe\xff\xff\x50\x00\x00\x00\x24\xff\xff\xff\x64\x00\x00\x00\x54\xff\xff\xff\x78\x00\x00\x00\x94\xff\xff\xff\x8c\x00\x00\x00\xe4\xff\xff\xff\xb0\x00\x00\x00"), -Section(".eh_frame", 0x7A8, "\x10\x00\x00\x00\x00\x00\x00\x00\x01\x7a\x52\x00\x04\x78\x1e\x01\x1b\x0c\x1f\x00\x10\x00\x00\x00\x18\x00\x00\x00\x7c\xfe\xff\xff\x34\x00\x00\x00\x00\x41\x07\x1e\x10\x00\x00\x00\x2c\x00\x00\x00\xb8\xfe\xff\xff\x30\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x40\x00\x00\x00\xd4\xfe\xff\xff\x3c\x00\x00\x00\x00\x00\x00\x00\x20\x00\x00\x00\x54\x00\x00\x00\x00\xff\xff\xff\x48\x00\x00\x00\x00\x41\x0e\x20\x9d\x04\x9e\x03\x42\x93\x02\x4e\xde\xdd\xd3\x0e\x00\x00\x00\x00\x10\x00\x00\x00\x78\x00\x00\x00\x2c\xff\xff\xff\x04\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x8c\x00\x00\x00\xc8\xfd\xff\xff\x1c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".fini_array", 0x10DA0, "\x00\x07\x00\x00\x00\x00\x00\x00"), -Section(".dynamic", 0x10DA8, "\x01\x00\x00\x00\x00\x00\x00\x00\x28\x00\x00\x00\x00\x00\x00\x00\x0c\x00\x00\x00\x00\x00\x00\x00\x80\x05\x00\x00\x00\x00\x00\x00\x0d\x00\x00\x00\x00\x00\x00\x00\x54\x07\x00\x00\x00\x00\x00\x00\x19\x00\x00\x00\x00\x00\x00\x00\x98\x0d\x01\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x1a\x00\x00\x00\x00\x00\x00\x00\xa0\x0d\x01\x00\x00\x00\x00\x00\x1c\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\xf5\xfe\xff\x6f\x00\x00\x00\x00\x98\x02\x00\x00\x00\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x90\x03\x00\x00\x00\x00\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\xb8\x02\x00\x00\x00\x00\x00\x00\x0a\x00\x00\x00\x00\x00\x00\x00\x8d\x00\x00\x00\x00\x00\x00\x00\x0b\x00\x00\x00\x00\x00\x00\x00\x18\x00\x00\x00\x00\x00\x00\x00\x15\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x98\x0f\x01\x00\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x60\x00\x00\x00\x00\x00\x00\x00\x14\x00\x00\x00\x00\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x17\x00\x00\x00\x00\x00\x00\x00\x20\x05\x00\x00\x00\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x60\x04\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\xc0\x00\x00\x00\x00\x00\x00\x00\x09\x00\x00\x00\x00\x00\x00\x00\x18\x00\x00\x00\x00\x00\x00\x00\x1e\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\xfb\xff\xff\x6f\x00\x00\x00\x00\x01\x00\x00\x08\x00\x00\x00\x00\xfe\xff\xff\x6f\x00\x00\x00\x00\x30\x04\x00\x00\x00\x00\x00\x00\xff\xff\xff\x6f\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\xf0\xff\xff\x6f\x00\x00\x00\x00\x1e\x04\x00\x00\x00\x00\x00\x00\xf9\xff\xff\x6f\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".init_array", 0x10D98, "\x50\x07\x00\x00\x00\x00\x00\x00"), -Section(".got", 0x10F98, "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xa0\x05\x00\x00\x00\x00\x00\x00\xa0\x05\x00\x00\x00\x00\x00\x00\xa0\x05\x00\x00\x00\x00\x00\x00\xa0\x05\x00\x00\x00\x00\x00\x00\xa8\x0d\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".data", 0x11000, "\x00\x00\x00\x00\x00\x00\x00\x00\x08\x10\x01\x00\x00\x00\x00\x00"), -Section(".text", 0x600, "\x81\x00\x00\xb0\x22\x50\x00\x91\x00\x00\x80\x52\x21\x14\x40\xb9\x41\x00\x00\x35\x40\x04\x40\xb9\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1d\x00\x80\xd2\x1e\x00\x80\xd2\xe5\x03\x00\xaa\xe1\x03\x40\xf9\xe2\x23\x00\x91\xe6\x03\x00\x91\x80\x00\x00\x90\x00\xf8\x47\xf9\x03\x00\x80\xd2\x04\x00\x80\xd2\xd5\xff\xff\x97\xe0\xff\xff\x97\x80\x00\x00\x90\x00\xf4\x47\xf9\x40\x00\x00\xb4\xd8\xff\xff\x17\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x80\x00\x00\xb0\x00\x40\x00\x91\x81\x00\x00\xb0\x21\x40\x00\x91\x3f\x00\x00\xeb\xc0\x00\x00\x54\x81\x00\x00\x90\x21\xec\x47\xf9\x61\x00\x00\xb4\xf0\x03\x01\xaa\x00\x02\x1f\xd6\xc0\x03\x5f\xd6\x80\x00\x00\xb0\x00\x40\x00\x91\x81\x00\x00\xb0\x21\x40\x00\x91\x21\x00\x00\xcb\x22\xfc\x7f\xd3\x41\x0c\x81\x8b\x21\xfc\x41\x93\xc1\x00\x00\xb4\x82\x00\x00\x90\x42\xfc\x47\xf9\x62\x00\x00\xb4\xf0\x03\x02\xaa\x00\x02\x1f\xd6\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\xfd\x7b\xbe\xa9\xfd\x03\x00\x91\xf3\x0b\x00\xf9\x93\x00\x00\xb0\x60\x42\x40\x39\x40\x01\x00\x35\x80\x00\x00\x90\x00\xf0\x47\xf9\x80\x00\x00\xb4\x80\x00\x00\xb0\x00\x04\x40\xf9\xa9\xff\xff\x97\xd8\xff\xff\x97\x20\x00\x80\x52\x60\x42\x00\x39\xf3\x0b\x40\xf9\xfd\x7b\xc2\xa8\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\xdc\xff\xff\x17")]), -Memmap([Annotation(Region(0x0,0x847), Attr("segment","02 0 2120")), -Annotation(Region(0x600,0x61B), Attr("symbol","\"main\"")), -Annotation(Region(0x0,0xF9), Attr("section","\".shstrtab\"")), -Annotation(Region(0x0,0x22E), Attr("section","\".strtab\"")), -Annotation(Region(0x0,0x2A), Attr("section","\".comment\"")), -Annotation(Region(0x238,0x252), Attr("section","\".interp\"")), -Annotation(Region(0x254,0x277), Attr("section","\".note.gnu.build-id\"")), -Annotation(Region(0x278,0x297), Attr("section","\".note.ABI-tag\"")), -Annotation(Region(0x298,0x2B3), Attr("section","\".gnu.hash\"")), -Annotation(Region(0x2B8,0x38F), Attr("section","\".dynsym\"")), -Annotation(Region(0x390,0x41C), Attr("section","\".dynstr\"")), -Annotation(Region(0x41E,0x42F), Attr("section","\".gnu.version\"")), -Annotation(Region(0x430,0x45F), Attr("section","\".gnu.version_r\"")), -Annotation(Region(0x460,0x51F), Attr("section","\".rela.dyn\"")), -Annotation(Region(0x520,0x57F), Attr("section","\".rela.plt\"")), -Annotation(Region(0x580,0x597), Attr("section","\".init\"")), -Annotation(Region(0x5A0,0x5FF), Attr("section","\".plt\"")), -Annotation(Region(0x580,0x597), Attr("code-region","()")), -Annotation(Region(0x5A0,0x5FF), Attr("code-region","()")), -Annotation(Region(0x600,0x61B), Attr("symbol-info","main 0x600 28")), -Annotation(Region(0x640,0x673), Attr("symbol","\"_start\"")), -Annotation(Region(0x640,0x673), Attr("symbol-info","_start 0x640 52")), -Annotation(Region(0x674,0x687), Attr("symbol","\"call_weak_fn\"")), -Annotation(Region(0x674,0x687), Attr("symbol-info","call_weak_fn 0x674 20")), -Annotation(Region(0x754,0x767), Attr("section","\".fini\"")), -Annotation(Region(0x768,0x76B), Attr("section","\".rodata\"")), -Annotation(Region(0x76C,0x7A7), Attr("section","\".eh_frame_hdr\"")), -Annotation(Region(0x7A8,0x847), Attr("section","\".eh_frame\"")), -Annotation(Region(0x10D98,0x1100F), Attr("segment","03 0x10D98 648")), -Annotation(Region(0x10DA0,0x10DA7), Attr("section","\".fini_array\"")), -Annotation(Region(0x10DA8,0x10F97), Attr("section","\".dynamic\"")), -Annotation(Region(0x10D98,0x10D9F), Attr("section","\".init_array\"")), -Annotation(Region(0x10F98,0x10FFF), Attr("section","\".got\"")), -Annotation(Region(0x11000,0x1100F), Attr("section","\".data\"")), -Annotation(Region(0x600,0x753), Attr("section","\".text\"")), -Annotation(Region(0x600,0x753), Attr("code-region","()")), -Annotation(Region(0x754,0x767), Attr("code-region","()"))]), -Program(Tid(1_520, "%000005f0"), Attrs([]), - Subs([Sub(Tid(1_466, "@__cxa_finalize"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x5D0"), -Attr("stub","()")]), "__cxa_finalize", Args([Arg(Tid(1_521, "%000005f1"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("__cxa_finalize_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(855, "@__cxa_finalize"), - Attrs([Attr("address","0x5D0")]), Phis([]), -Defs([Def(Tid(1_110, "%00000456"), Attrs([Attr("address","0x5D0"), -Attr("insn","adrp x16, #65536")]), Var("R16",Imm(64)), Int(65536,64)), -Def(Tid(1_117, "%0000045d"), Attrs([Attr("address","0x5D4"), -Attr("insn","ldr x17, [x16, #0xfb8]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(4024,64)),LittleEndian(),64)), -Def(Tid(1_123, "%00000463"), Attrs([Attr("address","0x5D8"), -Attr("insn","add x16, x16, #0xfb8")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(4024,64)))]), Jmps([Call(Tid(1_128, "%00000468"), - Attrs([Attr("address","0x5DC"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), -Sub(Tid(1_467, "@__do_global_dtors_aux"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x700")]), - "__do_global_dtors_aux", Args([Arg(Tid(1_522, "%000005f2"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("__do_global_dtors_aux_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(708, "@__do_global_dtors_aux"), - Attrs([Attr("address","0x700")]), Phis([]), Defs([Def(Tid(712, "%000002c8"), - Attrs([Attr("address","0x700"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("#3",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(18446744073709551584,64))), -Def(Tid(718, "%000002ce"), Attrs([Attr("address","0x700"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("#3",Imm(64)),Var("R29",Imm(64)),LittleEndian(),64)), -Def(Tid(724, "%000002d4"), Attrs([Attr("address","0x700"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("#3",Imm(64)),Int(8,64)),Var("R30",Imm(64)),LittleEndian(),64)), -Def(Tid(728, "%000002d8"), Attrs([Attr("address","0x700"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("R31",Imm(64)), -Var("#3",Imm(64))), Def(Tid(734, "%000002de"), - Attrs([Attr("address","0x704"), Attr("insn","mov x29, sp")]), - Var("R29",Imm(64)), Var("R31",Imm(64))), Def(Tid(742, "%000002e6"), - Attrs([Attr("address","0x708"), Attr("insn","str x19, [sp, #0x10]")]), - Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(16,64)),Var("R19",Imm(64)),LittleEndian(),64)), -Def(Tid(747, "%000002eb"), Attrs([Attr("address","0x70C"), -Attr("insn","adrp x19, #69632")]), Var("R19",Imm(64)), Int(69632,64)), -Def(Tid(754, "%000002f2"), Attrs([Attr("address","0x710"), -Attr("insn","ldrb w0, [x19, #0x10]")]), Var("R0",Imm(64)), -UNSIGNED(64,Load(Var("mem",Mem(64,8)),PLUS(Var("R19",Imm(64)),Int(16,64)),LittleEndian(),8)))]), -Jmps([Goto(Tid(761, "%000002f9"), Attrs([Attr("address","0x714"), -Attr("insn","cbnz w0, #0x28")]), - NEQ(Extract(31,0,Var("R0",Imm(64))),Int(0,32)), -Direct(Tid(759, "%000002f7"))), Goto(Tid(1_508, "%000005e4"), Attrs([]), - Int(1,1), Direct(Tid(800, "%00000320")))])), Blk(Tid(800, "%00000320"), - Attrs([Attr("address","0x718")]), Phis([]), Defs([Def(Tid(803, "%00000323"), - Attrs([Attr("address","0x718"), Attr("insn","adrp x0, #65536")]), - Var("R0",Imm(64)), Int(65536,64)), Def(Tid(810, "%0000032a"), - Attrs([Attr("address","0x71C"), Attr("insn","ldr x0, [x0, #0xfe0]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(4064,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(816, "%00000330"), Attrs([Attr("address","0x720"), -Attr("insn","cbz x0, #0x10")]), EQ(Var("R0",Imm(64)),Int(0,64)), -Direct(Tid(814, "%0000032e"))), Goto(Tid(1_509, "%000005e5"), Attrs([]), - Int(1,1), Direct(Tid(839, "%00000347")))])), Blk(Tid(839, "%00000347"), - Attrs([Attr("address","0x724")]), Phis([]), Defs([Def(Tid(842, "%0000034a"), - Attrs([Attr("address","0x724"), Attr("insn","adrp x0, #69632")]), - Var("R0",Imm(64)), Int(69632,64)), Def(Tid(849, "%00000351"), - Attrs([Attr("address","0x728"), Attr("insn","ldr x0, [x0, #0x8]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(854, "%00000356"), Attrs([Attr("address","0x72C"), -Attr("insn","bl #-0x15c")]), Var("R30",Imm(64)), Int(1840,64))]), -Jmps([Call(Tid(857, "%00000359"), Attrs([Attr("address","0x72C"), -Attr("insn","bl #-0x15c")]), Int(1,1), -(Direct(Tid(1_466, "@__cxa_finalize")),Direct(Tid(814, "%0000032e"))))])), -Blk(Tid(814, "%0000032e"), Attrs([Attr("address","0x730")]), Phis([]), -Defs([Def(Tid(822, "%00000336"), Attrs([Attr("address","0x730"), -Attr("insn","bl #-0xa0")]), Var("R30",Imm(64)), Int(1844,64))]), -Jmps([Call(Tid(824, "%00000338"), Attrs([Attr("address","0x730"), -Attr("insn","bl #-0xa0")]), Int(1,1), -(Direct(Tid(1_480, "@deregister_tm_clones")),Direct(Tid(826, "%0000033a"))))])), -Blk(Tid(826, "%0000033a"), Attrs([Attr("address","0x734")]), Phis([]), -Defs([Def(Tid(829, "%0000033d"), Attrs([Attr("address","0x734"), -Attr("insn","mov w0, #0x1")]), Var("R0",Imm(64)), Int(1,64)), -Def(Tid(837, "%00000345"), Attrs([Attr("address","0x738"), -Attr("insn","strb w0, [x19, #0x10]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R19",Imm(64)),Int(16,64)),Extract(7,0,Var("R0",Imm(64))),LittleEndian(),8))]), -Jmps([Goto(Tid(1_510, "%000005e6"), Attrs([]), Int(1,1), -Direct(Tid(759, "%000002f7")))])), Blk(Tid(759, "%000002f7"), - Attrs([Attr("address","0x73C")]), Phis([]), Defs([Def(Tid(769, "%00000301"), - Attrs([Attr("address","0x73C"), Attr("insn","ldr x19, [sp, #0x10]")]), - Var("R19",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(16,64)),LittleEndian(),64)), -Def(Tid(776, "%00000308"), Attrs([Attr("address","0x740"), -Attr("insn","ldp x29, x30, [sp], #0x20")]), Var("R29",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(781, "%0000030d"), Attrs([Attr("address","0x740"), -Attr("insn","ldp x29, x30, [sp], #0x20")]), Var("R30",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(785, "%00000311"), Attrs([Attr("address","0x740"), -Attr("insn","ldp x29, x30, [sp], #0x20")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(32,64)))]), Jmps([Call(Tid(790, "%00000316"), - Attrs([Attr("address","0x744"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), Sub(Tid(1_471, "@__libc_start_main"), - Attrs([Attr("c.proto","signed (*)(signed (*)(signed , char** , char** );* main, signed , char** , \nvoid* auxv)"), -Attr("address","0x5C0"), Attr("stub","()")]), "__libc_start_main", - Args([Arg(Tid(1_523, "%000005f3"), - Attrs([Attr("c.layout","**[ : 64]"), -Attr("c.data","Top:u64 ptr ptr"), -Attr("c.type","signed (*)(signed , char** , char** );*")]), - Var("__libc_start_main_main",Imm(64)), Var("R0",Imm(64)), In()), -Arg(Tid(1_524, "%000005f4"), Attrs([Attr("c.layout","[signed : 32]"), -Attr("c.data","Top:u32"), Attr("c.type","signed")]), - Var("__libc_start_main_arg2",Imm(32)), LOW(32,Var("R1",Imm(64))), In()), -Arg(Tid(1_525, "%000005f5"), Attrs([Attr("c.layout","**[char : 8]"), -Attr("c.data","Top:u8 ptr ptr"), Attr("c.type","char**")]), - Var("__libc_start_main_arg3",Imm(64)), Var("R2",Imm(64)), Both()), -Arg(Tid(1_526, "%000005f6"), Attrs([Attr("c.layout","*[ : 8]"), -Attr("c.data","{} ptr"), Attr("c.type","void*")]), - Var("__libc_start_main_auxv",Imm(64)), Var("R3",Imm(64)), Both()), -Arg(Tid(1_527, "%000005f7"), Attrs([Attr("c.layout","[signed : 32]"), -Attr("c.data","Top:u32"), Attr("c.type","signed")]), - Var("__libc_start_main_result",Imm(32)), LOW(32,Var("R0",Imm(64))), -Out())]), Blks([Blk(Tid(541, "@__libc_start_main"), - Attrs([Attr("address","0x5C0")]), Phis([]), -Defs([Def(Tid(1_088, "%00000440"), Attrs([Attr("address","0x5C0"), -Attr("insn","adrp x16, #65536")]), Var("R16",Imm(64)), Int(65536,64)), -Def(Tid(1_095, "%00000447"), Attrs([Attr("address","0x5C4"), -Attr("insn","ldr x17, [x16, #0xfb0]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(4016,64)),LittleEndian(),64)), -Def(Tid(1_101, "%0000044d"), Attrs([Attr("address","0x5C8"), -Attr("insn","add x16, x16, #0xfb0")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(4016,64)))]), Jmps([Call(Tid(1_106, "%00000452"), - Attrs([Attr("address","0x5CC"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), Sub(Tid(1_472, "@_fini"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x754")]), - "_fini", Args([Arg(Tid(1_528, "%000005f8"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("_fini_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(31, "@_fini"), - Attrs([Attr("address","0x754")]), Phis([]), Defs([Def(Tid(37, "%00000025"), - Attrs([Attr("address","0x758"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("#0",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(18446744073709551600,64))), -Def(Tid(43, "%0000002b"), Attrs([Attr("address","0x758"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("#0",Imm(64)),Var("R29",Imm(64)),LittleEndian(),64)), -Def(Tid(49, "%00000031"), Attrs([Attr("address","0x758"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("#0",Imm(64)),Int(8,64)),Var("R30",Imm(64)),LittleEndian(),64)), -Def(Tid(53, "%00000035"), Attrs([Attr("address","0x758"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("R31",Imm(64)), -Var("#0",Imm(64))), Def(Tid(59, "%0000003b"), Attrs([Attr("address","0x75C"), -Attr("insn","mov x29, sp")]), Var("R29",Imm(64)), Var("R31",Imm(64))), -Def(Tid(66, "%00000042"), Attrs([Attr("address","0x760"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R29",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(71, "%00000047"), Attrs([Attr("address","0x760"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R30",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(75, "%0000004b"), Attrs([Attr("address","0x760"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(16,64)))]), Jmps([Call(Tid(80, "%00000050"), - Attrs([Attr("address","0x764"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), Sub(Tid(1_473, "@_init"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x580")]), - "_init", Args([Arg(Tid(1_529, "%000005f9"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("_init_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(1_292, "@_init"), - Attrs([Attr("address","0x580")]), Phis([]), -Defs([Def(Tid(1_298, "%00000512"), Attrs([Attr("address","0x584"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("#5",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(18446744073709551600,64))), -Def(Tid(1_304, "%00000518"), Attrs([Attr("address","0x584"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("#5",Imm(64)),Var("R29",Imm(64)),LittleEndian(),64)), -Def(Tid(1_310, "%0000051e"), Attrs([Attr("address","0x584"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("#5",Imm(64)),Int(8,64)),Var("R30",Imm(64)),LittleEndian(),64)), -Def(Tid(1_314, "%00000522"), Attrs([Attr("address","0x584"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("R31",Imm(64)), -Var("#5",Imm(64))), Def(Tid(1_320, "%00000528"), - Attrs([Attr("address","0x588"), Attr("insn","mov x29, sp")]), - Var("R29",Imm(64)), Var("R31",Imm(64))), Def(Tid(1_325, "%0000052d"), - Attrs([Attr("address","0x58C"), Attr("insn","bl #0xe8")]), - Var("R30",Imm(64)), Int(1424,64))]), Jmps([Call(Tid(1_327, "%0000052f"), - Attrs([Attr("address","0x58C"), Attr("insn","bl #0xe8")]), Int(1,1), -(Direct(Tid(1_478, "@call_weak_fn")),Direct(Tid(1_329, "%00000531"))))])), -Blk(Tid(1_329, "%00000531"), Attrs([Attr("address","0x590")]), Phis([]), -Defs([Def(Tid(1_334, "%00000536"), Attrs([Attr("address","0x590"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R29",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(1_339, "%0000053b"), Attrs([Attr("address","0x590"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R30",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(1_343, "%0000053f"), Attrs([Attr("address","0x590"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(16,64)))]), Jmps([Call(Tid(1_348, "%00000544"), - Attrs([Attr("address","0x594"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), Sub(Tid(1_474, "@_start"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x640"), -Attr("entry-point","()")]), "_start", Args([Arg(Tid(1_530, "%000005fa"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("_start_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(478, "@_start"), - Attrs([Attr("address","0x640")]), Phis([]), Defs([Def(Tid(483, "%000001e3"), - Attrs([Attr("address","0x644"), Attr("insn","mov x29, #0x0")]), - Var("R29",Imm(64)), Int(0,64)), Def(Tid(488, "%000001e8"), - Attrs([Attr("address","0x648"), Attr("insn","mov x30, #0x0")]), - Var("R30",Imm(64)), Int(0,64)), Def(Tid(494, "%000001ee"), - Attrs([Attr("address","0x64C"), Attr("insn","mov x5, x0")]), - Var("R5",Imm(64)), Var("R0",Imm(64))), Def(Tid(501, "%000001f5"), - Attrs([Attr("address","0x650"), Attr("insn","ldr x1, [sp]")]), - Var("R1",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(507, "%000001fb"), Attrs([Attr("address","0x654"), -Attr("insn","add x2, sp, #0x8")]), Var("R2",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(8,64))), Def(Tid(513, "%00000201"), - Attrs([Attr("address","0x658"), Attr("insn","mov x6, sp")]), - Var("R6",Imm(64)), Var("R31",Imm(64))), Def(Tid(518, "%00000206"), - Attrs([Attr("address","0x65C"), Attr("insn","adrp x0, #65536")]), - Var("R0",Imm(64)), Int(65536,64)), Def(Tid(525, "%0000020d"), - Attrs([Attr("address","0x660"), Attr("insn","ldr x0, [x0, #0xff0]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(4080,64)),LittleEndian(),64)), -Def(Tid(530, "%00000212"), Attrs([Attr("address","0x664"), -Attr("insn","mov x3, #0x0")]), Var("R3",Imm(64)), Int(0,64)), -Def(Tid(535, "%00000217"), Attrs([Attr("address","0x668"), -Attr("insn","mov x4, #0x0")]), Var("R4",Imm(64)), Int(0,64)), -Def(Tid(540, "%0000021c"), Attrs([Attr("address","0x66C"), -Attr("insn","bl #-0xac")]), Var("R30",Imm(64)), Int(1648,64))]), -Jmps([Call(Tid(543, "%0000021f"), Attrs([Attr("address","0x66C"), -Attr("insn","bl #-0xac")]), Int(1,1), -(Direct(Tid(1_471, "@__libc_start_main")),Direct(Tid(545, "%00000221"))))])), -Blk(Tid(545, "%00000221"), Attrs([Attr("address","0x670")]), Phis([]), -Defs([Def(Tid(548, "%00000224"), Attrs([Attr("address","0x670"), -Attr("insn","bl #-0x80")]), Var("R30",Imm(64)), Int(1652,64))]), -Jmps([Call(Tid(551, "%00000227"), Attrs([Attr("address","0x670"), -Attr("insn","bl #-0x80")]), Int(1,1), -(Direct(Tid(1_477, "@abort")),Direct(Tid(1_511, "%000005e7"))))])), -Blk(Tid(1_511, "%000005e7"), Attrs([]), Phis([]), Defs([]), -Jmps([Call(Tid(1_512, "%000005e8"), Attrs([]), Int(1,1), -(Direct(Tid(1_478, "@call_weak_fn")),))]))])), Sub(Tid(1_477, "@abort"), - Attrs([Attr("noreturn","()"), Attr("c.proto","void (*)(void)"), -Attr("address","0x5F0"), Attr("stub","()")]), "abort", Args([]), -Blks([Blk(Tid(549, "@abort"), Attrs([Attr("address","0x5F0")]), Phis([]), -Defs([Def(Tid(1_154, "%00000482"), Attrs([Attr("address","0x5F0"), -Attr("insn","adrp x16, #65536")]), Var("R16",Imm(64)), Int(65536,64)), -Def(Tid(1_161, "%00000489"), Attrs([Attr("address","0x5F4"), -Attr("insn","ldr x17, [x16, #0xfc8]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(4040,64)),LittleEndian(),64)), -Def(Tid(1_167, "%0000048f"), Attrs([Attr("address","0x5F8"), -Attr("insn","add x16, x16, #0xfc8")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(4040,64)))]), Jmps([Call(Tid(1_172, "%00000494"), - Attrs([Attr("address","0x5FC"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), Sub(Tid(1_478, "@call_weak_fn"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x674")]), - "call_weak_fn", Args([Arg(Tid(1_531, "%000005fb"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("call_weak_fn_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(553, "@call_weak_fn"), - Attrs([Attr("address","0x674")]), Phis([]), Defs([Def(Tid(556, "%0000022c"), - Attrs([Attr("address","0x674"), Attr("insn","adrp x0, #65536")]), - Var("R0",Imm(64)), Int(65536,64)), Def(Tid(563, "%00000233"), - Attrs([Attr("address","0x678"), Attr("insn","ldr x0, [x0, #0xfe8]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(4072,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(569, "%00000239"), Attrs([Attr("address","0x67C"), -Attr("insn","cbz x0, #0x8")]), EQ(Var("R0",Imm(64)),Int(0,64)), -Direct(Tid(567, "%00000237"))), Goto(Tid(1_513, "%000005e9"), Attrs([]), - Int(1,1), Direct(Tid(919, "%00000397")))])), Blk(Tid(567, "%00000237"), - Attrs([Attr("address","0x684")]), Phis([]), Defs([]), -Jmps([Call(Tid(575, "%0000023f"), Attrs([Attr("address","0x684"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))])), -Blk(Tid(919, "%00000397"), Attrs([Attr("address","0x680")]), Phis([]), -Defs([]), Jmps([Goto(Tid(922, "%0000039a"), Attrs([Attr("address","0x680"), -Attr("insn","b #-0xa0")]), Int(1,1), Direct(Tid(920, "@__gmon_start__")))])), -Blk(Tid(920, "@__gmon_start__"), Attrs([Attr("address","0x5E0")]), Phis([]), -Defs([Def(Tid(1_132, "%0000046c"), Attrs([Attr("address","0x5E0"), -Attr("insn","adrp x16, #65536")]), Var("R16",Imm(64)), Int(65536,64)), -Def(Tid(1_139, "%00000473"), Attrs([Attr("address","0x5E4"), -Attr("insn","ldr x17, [x16, #0xfc0]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(4032,64)),LittleEndian(),64)), -Def(Tid(1_145, "%00000479"), Attrs([Attr("address","0x5E8"), -Attr("insn","add x16, x16, #0xfc0")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(4032,64)))]), Jmps([Call(Tid(1_150, "%0000047e"), - Attrs([Attr("address","0x5EC"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), -Sub(Tid(1_480, "@deregister_tm_clones"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x690")]), - "deregister_tm_clones", Args([Arg(Tid(1_532, "%000005fc"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("deregister_tm_clones_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(581, "@deregister_tm_clones"), - Attrs([Attr("address","0x690")]), Phis([]), Defs([Def(Tid(584, "%00000248"), - Attrs([Attr("address","0x690"), Attr("insn","adrp x0, #69632")]), - Var("R0",Imm(64)), Int(69632,64)), Def(Tid(590, "%0000024e"), - Attrs([Attr("address","0x694"), Attr("insn","add x0, x0, #0x10")]), - Var("R0",Imm(64)), PLUS(Var("R0",Imm(64)),Int(16,64))), -Def(Tid(595, "%00000253"), Attrs([Attr("address","0x698"), -Attr("insn","adrp x1, #69632")]), Var("R1",Imm(64)), Int(69632,64)), -Def(Tid(601, "%00000259"), Attrs([Attr("address","0x69C"), -Attr("insn","add x1, x1, #0x10")]), Var("R1",Imm(64)), -PLUS(Var("R1",Imm(64)),Int(16,64))), Def(Tid(607, "%0000025f"), - Attrs([Attr("address","0x6A0"), Attr("insn","cmp x1, x0")]), - Var("#1",Imm(64)), NOT(Var("R0",Imm(64)))), Def(Tid(612, "%00000264"), - Attrs([Attr("address","0x6A0"), Attr("insn","cmp x1, x0")]), - Var("#2",Imm(64)), PLUS(Var("R1",Imm(64)),NOT(Var("R0",Imm(64))))), -Def(Tid(618, "%0000026a"), Attrs([Attr("address","0x6A0"), -Attr("insn","cmp x1, x0")]), Var("VF",Imm(1)), -NEQ(SIGNED(65,PLUS(Var("#2",Imm(64)),Int(1,64))),PLUS(PLUS(SIGNED(65,Var("R1",Imm(64))),SIGNED(65,Var("#1",Imm(64)))),Int(1,65)))), -Def(Tid(624, "%00000270"), Attrs([Attr("address","0x6A0"), -Attr("insn","cmp x1, x0")]), Var("CF",Imm(1)), -NEQ(UNSIGNED(65,PLUS(Var("#2",Imm(64)),Int(1,64))),PLUS(PLUS(UNSIGNED(65,Var("R1",Imm(64))),UNSIGNED(65,Var("#1",Imm(64)))),Int(1,65)))), -Def(Tid(628, "%00000274"), Attrs([Attr("address","0x6A0"), -Attr("insn","cmp x1, x0")]), Var("ZF",Imm(1)), -EQ(PLUS(Var("#2",Imm(64)),Int(1,64)),Int(0,64))), Def(Tid(632, "%00000278"), - Attrs([Attr("address","0x6A0"), Attr("insn","cmp x1, x0")]), - Var("NF",Imm(1)), Extract(63,63,PLUS(Var("#2",Imm(64)),Int(1,64))))]), -Jmps([Goto(Tid(638, "%0000027e"), Attrs([Attr("address","0x6A4"), -Attr("insn","b.eq #0x18")]), EQ(Var("ZF",Imm(1)),Int(1,1)), -Direct(Tid(636, "%0000027c"))), Goto(Tid(1_514, "%000005ea"), Attrs([]), - Int(1,1), Direct(Tid(889, "%00000379")))])), Blk(Tid(889, "%00000379"), - Attrs([Attr("address","0x6A8")]), Phis([]), Defs([Def(Tid(892, "%0000037c"), - Attrs([Attr("address","0x6A8"), Attr("insn","adrp x1, #65536")]), - Var("R1",Imm(64)), Int(65536,64)), Def(Tid(899, "%00000383"), - Attrs([Attr("address","0x6AC"), Attr("insn","ldr x1, [x1, #0xfd8]")]), - Var("R1",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R1",Imm(64)),Int(4056,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(904, "%00000388"), Attrs([Attr("address","0x6B0"), -Attr("insn","cbz x1, #0xc")]), EQ(Var("R1",Imm(64)),Int(0,64)), -Direct(Tid(636, "%0000027c"))), Goto(Tid(1_515, "%000005eb"), Attrs([]), - Int(1,1), Direct(Tid(908, "%0000038c")))])), Blk(Tid(636, "%0000027c"), - Attrs([Attr("address","0x6BC")]), Phis([]), Defs([]), -Jmps([Call(Tid(644, "%00000284"), Attrs([Attr("address","0x6BC"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))])), -Blk(Tid(908, "%0000038c"), Attrs([Attr("address","0x6B4")]), Phis([]), -Defs([Def(Tid(912, "%00000390"), Attrs([Attr("address","0x6B4"), -Attr("insn","mov x16, x1")]), Var("R16",Imm(64)), Var("R1",Imm(64)))]), -Jmps([Call(Tid(917, "%00000395"), Attrs([Attr("address","0x6B8"), -Attr("insn","br x16")]), Int(1,1), (Indirect(Var("R16",Imm(64))),))]))])), -Sub(Tid(1_483, "@frame_dummy"), Attrs([Attr("c.proto","signed (*)(void)"), -Attr("address","0x750")]), "frame_dummy", Args([Arg(Tid(1_533, "%000005fd"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("frame_dummy_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(796, "@frame_dummy"), - Attrs([Attr("address","0x750")]), Phis([]), Defs([]), -Jmps([Call(Tid(798, "%0000031e"), Attrs([Attr("address","0x750"), -Attr("insn","b #-0x90")]), Int(1,1), -(Direct(Tid(1_487, "@register_tm_clones")),))]))])), Sub(Tid(1_484, "@main"), - Attrs([Attr("c.proto","signed (*)(signed argc, const char** argv)"), -Attr("address","0x600"), Attr("stub","()")]), "main", - Args([Arg(Tid(1_534, "%000005fe"), Attrs([Attr("c.layout","[signed : 32]"), -Attr("c.data","Top:u32"), Attr("c.type","signed")]), - Var("main_argc",Imm(32)), LOW(32,Var("R0",Imm(64))), In()), -Arg(Tid(1_535, "%000005ff"), Attrs([Attr("c.layout","**[char : 8]"), -Attr("c.data","Top:u8 ptr ptr"), Attr("c.type"," const char**")]), - Var("main_argv",Imm(64)), Var("R1",Imm(64)), Both()), -Arg(Tid(1_536, "%00000600"), Attrs([Attr("c.layout","[signed : 32]"), -Attr("c.data","Top:u32"), Attr("c.type","signed")]), - Var("main_result",Imm(32)), LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(424, "@main"), Attrs([Attr("address","0x600")]), Phis([]), -Defs([Def(Tid(427, "%000001ab"), Attrs([Attr("address","0x600"), -Attr("insn","adrp x1, #69632")]), Var("R1",Imm(64)), Int(69632,64)), -Def(Tid(433, "%000001b1"), Attrs([Attr("address","0x604"), -Attr("insn","add x2, x1, #0x14")]), Var("R2",Imm(64)), -PLUS(Var("R1",Imm(64)),Int(20,64))), Def(Tid(438, "%000001b6"), - Attrs([Attr("address","0x608"), Attr("insn","mov w0, #0x0")]), - Var("R0",Imm(64)), Int(0,64)), Def(Tid(445, "%000001bd"), - Attrs([Attr("address","0x60C"), Attr("insn","ldr w1, [x1, #0x14]")]), - Var("R1",Imm(64)), -UNSIGNED(64,Load(Var("mem",Mem(64,8)),PLUS(Var("R1",Imm(64)),Int(20,64)),LittleEndian(),32)))]), -Jmps([Goto(Tid(452, "%000001c4"), Attrs([Attr("address","0x610"), -Attr("insn","cbnz w1, #0x8")]), - NEQ(Extract(31,0,Var("R1",Imm(64))),Int(0,32)), -Direct(Tid(450, "%000001c2"))), Goto(Tid(1_516, "%000005ec"), Attrs([]), - Int(1,1), Direct(Tid(924, "%0000039c")))])), Blk(Tid(924, "%0000039c"), - Attrs([Attr("address","0x614")]), Phis([]), Defs([Def(Tid(929, "%000003a1"), - Attrs([Attr("address","0x614"), Attr("insn","ldr w0, [x2, #0x4]")]), - Var("R0",Imm(64)), -UNSIGNED(64,Load(Var("mem",Mem(64,8)),PLUS(Var("R2",Imm(64)),Int(4,64)),LittleEndian(),32)))]), -Jmps([Goto(Tid(1_517, "%000005ed"), Attrs([]), Int(1,1), -Direct(Tid(450, "%000001c2")))])), Blk(Tid(450, "%000001c2"), - Attrs([Attr("address","0x618")]), Phis([]), Defs([]), -Jmps([Call(Tid(458, "%000001ca"), Attrs([Attr("address","0x618"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))]))])), -Sub(Tid(1_487, "@register_tm_clones"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x6C0")]), - "register_tm_clones", Args([Arg(Tid(1_537, "%00000601"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("register_tm_clones_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(646, "@register_tm_clones"), Attrs([Attr("address","0x6C0")]), - Phis([]), Defs([Def(Tid(649, "%00000289"), Attrs([Attr("address","0x6C0"), -Attr("insn","adrp x0, #69632")]), Var("R0",Imm(64)), Int(69632,64)), -Def(Tid(655, "%0000028f"), Attrs([Attr("address","0x6C4"), -Attr("insn","add x0, x0, #0x10")]), Var("R0",Imm(64)), -PLUS(Var("R0",Imm(64)),Int(16,64))), Def(Tid(660, "%00000294"), - Attrs([Attr("address","0x6C8"), Attr("insn","adrp x1, #69632")]), - Var("R1",Imm(64)), Int(69632,64)), Def(Tid(666, "%0000029a"), - Attrs([Attr("address","0x6CC"), Attr("insn","add x1, x1, #0x10")]), - Var("R1",Imm(64)), PLUS(Var("R1",Imm(64)),Int(16,64))), -Def(Tid(673, "%000002a1"), Attrs([Attr("address","0x6D0"), -Attr("insn","sub x1, x1, x0")]), Var("R1",Imm(64)), -PLUS(PLUS(Var("R1",Imm(64)),NOT(Var("R0",Imm(64)))),Int(1,64))), -Def(Tid(679, "%000002a7"), Attrs([Attr("address","0x6D4"), -Attr("insn","lsr x2, x1, #63")]), Var("R2",Imm(64)), -Concat(Int(0,63),Extract(63,63,Var("R1",Imm(64))))), -Def(Tid(686, "%000002ae"), Attrs([Attr("address","0x6D8"), -Attr("insn","add x1, x2, x1, asr #3")]), Var("R1",Imm(64)), -PLUS(Var("R2",Imm(64)),ARSHIFT(Var("R1",Imm(64)),Int(3,3)))), -Def(Tid(692, "%000002b4"), Attrs([Attr("address","0x6DC"), -Attr("insn","asr x1, x1, #1")]), Var("R1",Imm(64)), -SIGNED(64,Extract(63,1,Var("R1",Imm(64)))))]), -Jmps([Goto(Tid(698, "%000002ba"), Attrs([Attr("address","0x6E0"), -Attr("insn","cbz x1, #0x18")]), EQ(Var("R1",Imm(64)),Int(0,64)), -Direct(Tid(696, "%000002b8"))), Goto(Tid(1_518, "%000005ee"), Attrs([]), - Int(1,1), Direct(Tid(859, "%0000035b")))])), Blk(Tid(859, "%0000035b"), - Attrs([Attr("address","0x6E4")]), Phis([]), Defs([Def(Tid(862, "%0000035e"), - Attrs([Attr("address","0x6E4"), Attr("insn","adrp x2, #65536")]), - Var("R2",Imm(64)), Int(65536,64)), Def(Tid(869, "%00000365"), - Attrs([Attr("address","0x6E8"), Attr("insn","ldr x2, [x2, #0xff8]")]), - Var("R2",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R2",Imm(64)),Int(4088,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(874, "%0000036a"), Attrs([Attr("address","0x6EC"), -Attr("insn","cbz x2, #0xc")]), EQ(Var("R2",Imm(64)),Int(0,64)), -Direct(Tid(696, "%000002b8"))), Goto(Tid(1_519, "%000005ef"), Attrs([]), - Int(1,1), Direct(Tid(878, "%0000036e")))])), Blk(Tid(696, "%000002b8"), - Attrs([Attr("address","0x6F8")]), Phis([]), Defs([]), -Jmps([Call(Tid(704, "%000002c0"), Attrs([Attr("address","0x6F8"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))])), -Blk(Tid(878, "%0000036e"), Attrs([Attr("address","0x6F0")]), Phis([]), -Defs([Def(Tid(882, "%00000372"), Attrs([Attr("address","0x6F0"), -Attr("insn","mov x16, x2")]), Var("R16",Imm(64)), Var("R2",Imm(64)))]), -Jmps([Call(Tid(887, "%00000377"), Attrs([Attr("address","0x6F4"), -Attr("insn","br x16")]), Int(1,1), -(Indirect(Var("R16",Imm(64))),))]))]))]))) \ No newline at end of file diff --git a/src/test/correct/basic_sec_policy_read/gcc_O2/basic_sec_policy_read.bir b/src/test/correct/basic_sec_policy_read/gcc_O2/basic_sec_policy_read.bir deleted file mode 100644 index a373b5f79..000000000 --- a/src/test/correct/basic_sec_policy_read/gcc_O2/basic_sec_policy_read.bir +++ /dev/null @@ -1,235 +0,0 @@ -000005f0: program -000005ba: sub __cxa_finalize(__cxa_finalize_result) -000005f1: __cxa_finalize_result :: out u32 = low:32[R0] - -00000357: -00000456: R16 := 0x10000 -0000045d: R17 := mem[R16 + 0xFB8, el]:u64 -00000463: R16 := R16 + 0xFB8 -00000468: call R17 with noreturn - -000005bb: sub __do_global_dtors_aux(__do_global_dtors_aux_result) -000005f2: __do_global_dtors_aux_result :: out u32 = low:32[R0] - -000002c4: -000002c8: #3 := R31 - 0x20 -000002ce: mem := mem with [#3, el]:u64 <- R29 -000002d4: mem := mem with [#3 + 8, el]:u64 <- R30 -000002d8: R31 := #3 -000002de: R29 := R31 -000002e6: mem := mem with [R31 + 0x10, el]:u64 <- R19 -000002eb: R19 := 0x11000 -000002f2: R0 := pad:64[mem[R19 + 0x10]] -000002f9: when 31:0[R0] <> 0 goto %000002f7 -000005e4: goto %00000320 - -00000320: -00000323: R0 := 0x10000 -0000032a: R0 := mem[R0 + 0xFE0, el]:u64 -00000330: when R0 = 0 goto %0000032e -000005e5: goto %00000347 - -00000347: -0000034a: R0 := 0x11000 -00000351: R0 := mem[R0 + 8, el]:u64 -00000356: R30 := 0x730 -00000359: call @__cxa_finalize with return %0000032e - -0000032e: -00000336: R30 := 0x734 -00000338: call @deregister_tm_clones with return %0000033a - -0000033a: -0000033d: R0 := 1 -00000345: mem := mem with [R19 + 0x10] <- 7:0[R0] -000005e6: goto %000002f7 - -000002f7: -00000301: R19 := mem[R31 + 0x10, el]:u64 -00000308: R29 := mem[R31, el]:u64 -0000030d: R30 := mem[R31 + 8, el]:u64 -00000311: R31 := R31 + 0x20 -00000316: call R30 with noreturn - -000005bf: sub __libc_start_main(__libc_start_main_main, __libc_start_main_arg2, __libc_start_main_arg3, __libc_start_main_auxv, __libc_start_main_result) -000005f3: __libc_start_main_main :: in u64 = R0 -000005f4: __libc_start_main_arg2 :: in u32 = low:32[R1] -000005f5: __libc_start_main_arg3 :: in out u64 = R2 -000005f6: __libc_start_main_auxv :: in out u64 = R3 -000005f7: __libc_start_main_result :: out u32 = low:32[R0] - -0000021d: -00000440: R16 := 0x10000 -00000447: R17 := mem[R16 + 0xFB0, el]:u64 -0000044d: R16 := R16 + 0xFB0 -00000452: call R17 with noreturn - -000005c0: sub _fini(_fini_result) -000005f8: _fini_result :: out u32 = low:32[R0] - -0000001f: -00000025: #0 := R31 - 0x10 -0000002b: mem := mem with [#0, el]:u64 <- R29 -00000031: mem := mem with [#0 + 8, el]:u64 <- R30 -00000035: R31 := #0 -0000003b: R29 := R31 -00000042: R29 := mem[R31, el]:u64 -00000047: R30 := mem[R31 + 8, el]:u64 -0000004b: R31 := R31 + 0x10 -00000050: call R30 with noreturn - -000005c1: sub _init(_init_result) -000005f9: _init_result :: out u32 = low:32[R0] - -0000050c: -00000512: #5 := R31 - 0x10 -00000518: mem := mem with [#5, el]:u64 <- R29 -0000051e: mem := mem with [#5 + 8, el]:u64 <- R30 -00000522: R31 := #5 -00000528: R29 := R31 -0000052d: R30 := 0x590 -0000052f: call @call_weak_fn with return %00000531 - -00000531: -00000536: R29 := mem[R31, el]:u64 -0000053b: R30 := mem[R31 + 8, el]:u64 -0000053f: R31 := R31 + 0x10 -00000544: call R30 with noreturn - -000005c2: sub _start(_start_result) -000005fa: _start_result :: out u32 = low:32[R0] - -000001de: -000001e3: R29 := 0 -000001e8: R30 := 0 -000001ee: R5 := R0 -000001f5: R1 := mem[R31, el]:u64 -000001fb: R2 := R31 + 8 -00000201: R6 := R31 -00000206: R0 := 0x10000 -0000020d: R0 := mem[R0 + 0xFF0, el]:u64 -00000212: R3 := 0 -00000217: R4 := 0 -0000021c: R30 := 0x670 -0000021f: call @__libc_start_main with return %00000221 - -00000221: -00000224: R30 := 0x674 -00000227: call @abort with return %000005e7 - -000005e7: -000005e8: call @call_weak_fn with noreturn - -000005c5: sub abort() - - -00000225: -00000482: R16 := 0x10000 -00000489: R17 := mem[R16 + 0xFC8, el]:u64 -0000048f: R16 := R16 + 0xFC8 -00000494: call R17 with noreturn - -000005c6: sub call_weak_fn(call_weak_fn_result) -000005fb: call_weak_fn_result :: out u32 = low:32[R0] - -00000229: -0000022c: R0 := 0x10000 -00000233: R0 := mem[R0 + 0xFE8, el]:u64 -00000239: when R0 = 0 goto %00000237 -000005e9: goto %00000397 - -00000237: -0000023f: call R30 with noreturn - -00000397: -0000039a: goto @__gmon_start__ - -00000398: -0000046c: R16 := 0x10000 -00000473: R17 := mem[R16 + 0xFC0, el]:u64 -00000479: R16 := R16 + 0xFC0 -0000047e: call R17 with noreturn - -000005c8: sub deregister_tm_clones(deregister_tm_clones_result) -000005fc: deregister_tm_clones_result :: out u32 = low:32[R0] - -00000245: -00000248: R0 := 0x11000 -0000024e: R0 := R0 + 0x10 -00000253: R1 := 0x11000 -00000259: R1 := R1 + 0x10 -0000025f: #1 := ~R0 -00000264: #2 := R1 + ~R0 -0000026a: VF := extend:65[#2 + 1] <> extend:65[R1] + extend:65[#1] + 1 -00000270: CF := pad:65[#2 + 1] <> pad:65[R1] + pad:65[#1] + 1 -00000274: ZF := #2 + 1 = 0 -00000278: NF := 63:63[#2 + 1] -0000027e: when ZF goto %0000027c -000005ea: goto %00000379 - -00000379: -0000037c: R1 := 0x10000 -00000383: R1 := mem[R1 + 0xFD8, el]:u64 -00000388: when R1 = 0 goto %0000027c -000005eb: goto %0000038c - -0000027c: -00000284: call R30 with noreturn - -0000038c: -00000390: R16 := R1 -00000395: call R16 with noreturn - -000005cb: sub frame_dummy(frame_dummy_result) -000005fd: frame_dummy_result :: out u32 = low:32[R0] - -0000031c: -0000031e: call @register_tm_clones with noreturn - -000005cc: sub main(main_argc, main_argv, main_result) -000005fe: main_argc :: in u32 = low:32[R0] -000005ff: main_argv :: in out u64 = R1 -00000600: main_result :: out u32 = low:32[R0] - -000001a8: -000001ab: R1 := 0x11000 -000001b1: R2 := R1 + 0x14 -000001b6: R0 := 0 -000001bd: R1 := pad:64[mem[R1 + 0x14, el]:u32] -000001c4: when 31:0[R1] <> 0 goto %000001c2 -000005ec: goto %0000039c - -0000039c: -000003a1: R0 := pad:64[mem[R2 + 4, el]:u32] -000005ed: goto %000001c2 - -000001c2: -000001ca: call R30 with noreturn - -000005cf: sub register_tm_clones(register_tm_clones_result) -00000601: register_tm_clones_result :: out u32 = low:32[R0] - -00000286: -00000289: R0 := 0x11000 -0000028f: R0 := R0 + 0x10 -00000294: R1 := 0x11000 -0000029a: R1 := R1 + 0x10 -000002a1: R1 := R1 + ~R0 + 1 -000002a7: R2 := 0.63:63[R1] -000002ae: R1 := R2 + (R1 ~>> 3) -000002b4: R1 := extend:64[63:1[R1]] -000002ba: when R1 = 0 goto %000002b8 -000005ee: goto %0000035b - -0000035b: -0000035e: R2 := 0x10000 -00000365: R2 := mem[R2 + 0xFF8, el]:u64 -0000036a: when R2 = 0 goto %000002b8 -000005ef: goto %0000036e - -000002b8: -000002c0: call R30 with noreturn - -0000036e: -00000372: R16 := R2 -00000377: call R16 with noreturn diff --git a/src/test/correct/basic_sec_policy_read/gcc_O2/basic_sec_policy_read.expected b/src/test/correct/basic_sec_policy_read/gcc_O2/basic_sec_policy_read.expected index 765827a1b..d1fec5007 100644 --- a/src/test/correct/basic_sec_policy_read/gcc_O2/basic_sec_policy_read.expected +++ b/src/test/correct/basic_sec_policy_read/gcc_O2/basic_sec_policy_read.expected @@ -65,7 +65,7 @@ implementation {:extern} guarantee_reflexive() assert (memory_load32_le(mem, $z_addr) == memory_load32_le(mem, $z_addr)); } -procedure main_1536(); +procedure main(); modifies Gamma_R0, Gamma_R1, Gamma_R2, Gamma_mem, R0, R1, R2, mem; free requires (memory_load64_le(mem, 69632bv64) == 0bv64); free requires (memory_load64_le(mem, 69640bv64) == 69640bv64); @@ -80,41 +80,41 @@ procedure main_1536(); free ensures (memory_load64_le(mem, 69616bv64) == 1536bv64); free ensures (memory_load64_le(mem, 69640bv64) == 69640bv64); -implementation main_1536() +implementation main() { - var Gamma_load18: bool; - var Gamma_load19: bool; - var load18: bv32; - var load19: bv32; + var $load$18: bv32; + var $load$19: bv32; + var Gamma_$load$18: bool; + var Gamma_$load$19: bool; lmain: assume {:captureState "lmain"} true; R1, Gamma_R1 := 69632bv64, true; R2, Gamma_R2 := bvadd64(R1, 20bv64), Gamma_R1; R0, Gamma_R0 := 0bv64, true; call rely(); - load18, Gamma_load18 := memory_load32_le(mem, bvadd64(R1, 20bv64)), (gamma_load32(Gamma_mem, bvadd64(R1, 20bv64)) || L(mem, bvadd64(R1, 20bv64))); - R1, Gamma_R1 := zero_extend32_32(load18), Gamma_load18; + $load$18, Gamma_$load$18 := memory_load32_le(mem, bvadd64(R1, 20bv64)), (gamma_load32(Gamma_mem, bvadd64(R1, 20bv64)) || L(mem, bvadd64(R1, 20bv64))); + R1, Gamma_R1 := zero_extend32_32($load$18), Gamma_$load$18; assert Gamma_R1; goto lmain_goto_l000001c2, lmain_goto_l0000039c; - lmain_goto_l0000039c: - assume {:captureState "lmain_goto_l0000039c"} true; - assume (bvnot1(bvcomp32(R1[32:0], 0bv32)) == 0bv1); - call rely(); - load19, Gamma_load19 := memory_load32_le(mem, bvadd64(R2, 4bv64)), (gamma_load32(Gamma_mem, bvadd64(R2, 4bv64)) || L(mem, bvadd64(R2, 4bv64))); - R0, Gamma_R0 := zero_extend32_32(load19), Gamma_load19; - goto l0000039c; l0000039c: assume {:captureState "l0000039c"} true; + call rely(); + $load$19, Gamma_$load$19 := memory_load32_le(mem, bvadd64(R2, 4bv64)), (gamma_load32(Gamma_mem, bvadd64(R2, 4bv64)) || L(mem, bvadd64(R2, 4bv64))); + R0, Gamma_R0 := zero_extend32_32($load$19), Gamma_$load$19; goto l000001c2; + l000001c2: + assume {:captureState "l000001c2"} true; + goto main_basil_return; lmain_goto_l000001c2: assume {:captureState "lmain_goto_l000001c2"} true; assume (bvnot1(bvcomp32(R1[32:0], 0bv32)) != 0bv1); goto l000001c2; - l000001c2: - assume {:captureState "l000001c2"} true; - goto main_1536_basil_return; - main_1536_basil_return: - assume {:captureState "main_1536_basil_return"} true; + lmain_goto_l0000039c: + assume {:captureState "lmain_goto_l0000039c"} true; + assume (bvnot1(bvcomp32(R1[32:0], 0bv32)) == 0bv1); + goto l0000039c; + main_basil_return: + assume {:captureState "main_basil_return"} true; return; } diff --git a/src/test/correct/basic_sec_policy_read/gcc_O2/basic_sec_policy_read.gts b/src/test/correct/basic_sec_policy_read/gcc_O2/basic_sec_policy_read.gts deleted file mode 100644 index 6c84eb15a..000000000 Binary files a/src/test/correct/basic_sec_policy_read/gcc_O2/basic_sec_policy_read.gts and /dev/null differ diff --git a/src/test/correct/basic_sec_policy_read/gcc_O2/basic_sec_policy_read.md5sum b/src/test/correct/basic_sec_policy_read/gcc_O2/basic_sec_policy_read.md5sum new file mode 100644 index 000000000..0a5019e95 --- /dev/null +++ b/src/test/correct/basic_sec_policy_read/gcc_O2/basic_sec_policy_read.md5sum @@ -0,0 +1,5 @@ +05edfdcea9b1f754cc85c513a993114d correct/basic_sec_policy_read/gcc_O2/a.out +5c579da29766b89237069e221fbc2247 correct/basic_sec_policy_read/gcc_O2/basic_sec_policy_read.adt +469baaf82342696a70b3fb59617285c8 correct/basic_sec_policy_read/gcc_O2/basic_sec_policy_read.bir +8ac9c301e203b4391c67146f6253c421 correct/basic_sec_policy_read/gcc_O2/basic_sec_policy_read.relf +2db595e5a0e7cb49f3d987676e00ba07 correct/basic_sec_policy_read/gcc_O2/basic_sec_policy_read.gts diff --git a/src/test/correct/basic_sec_policy_read/gcc_O2/basic_sec_policy_read.relf b/src/test/correct/basic_sec_policy_read/gcc_O2/basic_sec_policy_read.relf deleted file mode 100644 index 8f43c339c..000000000 --- a/src/test/correct/basic_sec_policy_read/gcc_O2/basic_sec_policy_read.relf +++ /dev/null @@ -1,122 +0,0 @@ - -Relocation section '.rela.dyn' at offset 0x460 contains 8 entries: - Offset Info Type Symbol's Value Symbol's Name + Addend -0000000000010d98 0000000000000403 R_AARCH64_RELATIVE 750 -0000000000010da0 0000000000000403 R_AARCH64_RELATIVE 700 -0000000000010ff0 0000000000000403 R_AARCH64_RELATIVE 600 -0000000000011008 0000000000000403 R_AARCH64_RELATIVE 11008 -0000000000010fd8 0000000400000401 R_AARCH64_GLOB_DAT 0000000000000000 _ITM_deregisterTMCloneTable + 0 -0000000000010fe0 0000000500000401 R_AARCH64_GLOB_DAT 0000000000000000 __cxa_finalize@GLIBC_2.17 + 0 -0000000000010fe8 0000000600000401 R_AARCH64_GLOB_DAT 0000000000000000 __gmon_start__ + 0 -0000000000010ff8 0000000800000401 R_AARCH64_GLOB_DAT 0000000000000000 _ITM_registerTMCloneTable + 0 - -Relocation section '.rela.plt' at offset 0x520 contains 4 entries: - Offset Info Type Symbol's Value Symbol's Name + Addend -0000000000010fb0 0000000300000402 R_AARCH64_JUMP_SLOT 0000000000000000 __libc_start_main@GLIBC_2.34 + 0 -0000000000010fb8 0000000500000402 R_AARCH64_JUMP_SLOT 0000000000000000 __cxa_finalize@GLIBC_2.17 + 0 -0000000000010fc0 0000000600000402 R_AARCH64_JUMP_SLOT 0000000000000000 __gmon_start__ + 0 -0000000000010fc8 0000000700000402 R_AARCH64_JUMP_SLOT 0000000000000000 abort@GLIBC_2.17 + 0 - -Symbol table '.dynsym' contains 9 entries: - Num: Value Size Type Bind Vis Ndx Name - 0: 0000000000000000 0 NOTYPE LOCAL DEFAULT UND - 1: 0000000000000580 0 SECTION LOCAL DEFAULT 11 .init - 2: 0000000000011000 0 SECTION LOCAL DEFAULT 22 .data - 3: 0000000000000000 0 FUNC GLOBAL DEFAULT UND __libc_start_main@GLIBC_2.34 (2) - 4: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_deregisterTMCloneTable - 5: 0000000000000000 0 FUNC WEAK DEFAULT UND __cxa_finalize@GLIBC_2.17 (3) - 6: 0000000000000000 0 NOTYPE WEAK DEFAULT UND __gmon_start__ - 7: 0000000000000000 0 FUNC GLOBAL DEFAULT UND abort@GLIBC_2.17 (3) - 8: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_registerTMCloneTable - -Symbol table '.symtab' contains 89 entries: - Num: Value Size Type Bind Vis Ndx Name - 0: 0000000000000000 0 NOTYPE LOCAL DEFAULT UND - 1: 0000000000000238 0 SECTION LOCAL DEFAULT 1 .interp - 2: 0000000000000254 0 SECTION LOCAL DEFAULT 2 .note.gnu.build-id - 3: 0000000000000278 0 SECTION LOCAL DEFAULT 3 .note.ABI-tag - 4: 0000000000000298 0 SECTION LOCAL DEFAULT 4 .gnu.hash - 5: 00000000000002b8 0 SECTION LOCAL DEFAULT 5 .dynsym - 6: 0000000000000390 0 SECTION LOCAL DEFAULT 6 .dynstr - 7: 000000000000041e 0 SECTION LOCAL DEFAULT 7 .gnu.version - 8: 0000000000000430 0 SECTION LOCAL DEFAULT 8 .gnu.version_r - 9: 0000000000000460 0 SECTION LOCAL DEFAULT 9 .rela.dyn - 10: 0000000000000520 0 SECTION LOCAL DEFAULT 10 .rela.plt - 11: 0000000000000580 0 SECTION LOCAL DEFAULT 11 .init - 12: 00000000000005a0 0 SECTION LOCAL DEFAULT 12 .plt - 13: 0000000000000600 0 SECTION LOCAL DEFAULT 13 .text - 14: 0000000000000754 0 SECTION LOCAL DEFAULT 14 .fini - 15: 0000000000000768 0 SECTION LOCAL DEFAULT 15 .rodata - 16: 000000000000076c 0 SECTION LOCAL DEFAULT 16 .eh_frame_hdr - 17: 00000000000007a8 0 SECTION LOCAL DEFAULT 17 .eh_frame - 18: 0000000000010d98 0 SECTION LOCAL DEFAULT 18 .init_array - 19: 0000000000010da0 0 SECTION LOCAL DEFAULT 19 .fini_array - 20: 0000000000010da8 0 SECTION LOCAL DEFAULT 20 .dynamic - 21: 0000000000010f98 0 SECTION LOCAL DEFAULT 21 .got - 22: 0000000000011000 0 SECTION LOCAL DEFAULT 22 .data - 23: 0000000000011010 0 SECTION LOCAL DEFAULT 23 .bss - 24: 0000000000000000 0 SECTION LOCAL DEFAULT 24 .comment - 25: 0000000000000000 0 FILE LOCAL DEFAULT ABS Scrt1.o - 26: 0000000000000278 0 NOTYPE LOCAL DEFAULT 3 $d - 27: 0000000000000278 32 OBJECT LOCAL DEFAULT 3 __abi_tag - 28: 0000000000000640 0 NOTYPE LOCAL DEFAULT 13 $x - 29: 00000000000007bc 0 NOTYPE LOCAL DEFAULT 17 $d - 30: 0000000000000768 0 NOTYPE LOCAL DEFAULT 15 $d - 31: 0000000000000000 0 FILE LOCAL DEFAULT ABS crti.o - 32: 0000000000000674 0 NOTYPE LOCAL DEFAULT 13 $x - 33: 0000000000000674 20 FUNC LOCAL DEFAULT 13 call_weak_fn - 34: 0000000000000580 0 NOTYPE LOCAL DEFAULT 11 $x - 35: 0000000000000754 0 NOTYPE LOCAL DEFAULT 14 $x - 36: 0000000000000000 0 FILE LOCAL DEFAULT ABS crtn.o - 37: 0000000000000590 0 NOTYPE LOCAL DEFAULT 11 $x - 38: 0000000000000760 0 NOTYPE LOCAL DEFAULT 14 $x - 39: 0000000000000000 0 FILE LOCAL DEFAULT ABS basic_sec_policy_read.c - 40: 0000000000000600 0 NOTYPE LOCAL DEFAULT 13 $x - 41: 0000000000011014 0 NOTYPE LOCAL DEFAULT 23 $d - 42: 0000000000000830 0 NOTYPE LOCAL DEFAULT 17 $d - 43: 0000000000000000 0 FILE LOCAL DEFAULT ABS crtstuff.c - 44: 0000000000000690 0 NOTYPE LOCAL DEFAULT 13 $x - 45: 0000000000000690 0 FUNC LOCAL DEFAULT 13 deregister_tm_clones - 46: 00000000000006c0 0 FUNC LOCAL DEFAULT 13 register_tm_clones - 47: 0000000000011008 0 NOTYPE LOCAL DEFAULT 22 $d - 48: 0000000000000700 0 FUNC LOCAL DEFAULT 13 __do_global_dtors_aux - 49: 0000000000011010 1 OBJECT LOCAL DEFAULT 23 completed.0 - 50: 0000000000010da0 0 NOTYPE LOCAL DEFAULT 19 $d - 51: 0000000000010da0 0 OBJECT LOCAL DEFAULT 19 __do_global_dtors_aux_fini_array_entry - 52: 0000000000000750 0 FUNC LOCAL DEFAULT 13 frame_dummy - 53: 0000000000010d98 0 NOTYPE LOCAL DEFAULT 18 $d - 54: 0000000000010d98 0 OBJECT LOCAL DEFAULT 18 __frame_dummy_init_array_entry - 55: 00000000000007d0 0 NOTYPE LOCAL DEFAULT 17 $d - 56: 0000000000011010 0 NOTYPE LOCAL DEFAULT 23 $d - 57: 0000000000000000 0 FILE LOCAL DEFAULT ABS crtstuff.c - 58: 0000000000000844 0 NOTYPE LOCAL DEFAULT 17 $d - 59: 0000000000000844 0 OBJECT LOCAL DEFAULT 17 __FRAME_END__ - 60: 0000000000000000 0 FILE LOCAL DEFAULT ABS - 61: 0000000000010da8 0 OBJECT LOCAL DEFAULT ABS _DYNAMIC - 62: 000000000000076c 0 NOTYPE LOCAL DEFAULT 16 __GNU_EH_FRAME_HDR - 63: 0000000000010fd0 0 OBJECT LOCAL DEFAULT ABS _GLOBAL_OFFSET_TABLE_ - 64: 00000000000005a0 0 NOTYPE LOCAL DEFAULT 12 $x - 65: 0000000000000000 0 FUNC GLOBAL DEFAULT UND __libc_start_main@GLIBC_2.34 - 66: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_deregisterTMCloneTable - 67: 0000000000011000 0 NOTYPE WEAK DEFAULT 22 data_start - 68: 0000000000011010 0 NOTYPE GLOBAL DEFAULT 23 __bss_start__ - 69: 0000000000000000 0 FUNC WEAK DEFAULT UND __cxa_finalize@GLIBC_2.17 - 70: 0000000000011020 0 NOTYPE GLOBAL DEFAULT 23 _bss_end__ - 71: 0000000000011010 0 NOTYPE GLOBAL DEFAULT 22 _edata - 72: 0000000000011014 4 OBJECT GLOBAL DEFAULT 23 z - 73: 0000000000011018 4 OBJECT GLOBAL DEFAULT 23 x - 74: 0000000000000754 0 FUNC GLOBAL HIDDEN 14 _fini - 75: 0000000000011020 0 NOTYPE GLOBAL DEFAULT 23 __bss_end__ - 76: 0000000000011000 0 NOTYPE GLOBAL DEFAULT 22 __data_start - 77: 0000000000000000 0 NOTYPE WEAK DEFAULT UND __gmon_start__ - 78: 0000000000011008 0 OBJECT GLOBAL HIDDEN 22 __dso_handle - 79: 0000000000000000 0 FUNC GLOBAL DEFAULT UND abort@GLIBC_2.17 - 80: 0000000000000768 4 OBJECT GLOBAL DEFAULT 15 _IO_stdin_used - 81: 0000000000011020 0 NOTYPE GLOBAL DEFAULT 23 _end - 82: 0000000000000640 52 FUNC GLOBAL DEFAULT 13 _start - 83: 0000000000011020 0 NOTYPE GLOBAL DEFAULT 23 __end__ - 84: 0000000000011010 0 NOTYPE GLOBAL DEFAULT 23 __bss_start - 85: 0000000000000600 28 FUNC GLOBAL DEFAULT 13 main - 86: 0000000000011010 0 OBJECT GLOBAL HIDDEN 22 __TMC_END__ - 87: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_registerTMCloneTable - 88: 0000000000000580 0 FUNC GLOBAL HIDDEN 11 _init diff --git a/src/test/correct/basic_sec_policy_read/gcc_O2/basic_sec_policy_read_gtirb.expected b/src/test/correct/basic_sec_policy_read/gcc_O2/basic_sec_policy_read_gtirb.expected index cf53abc5e..7fa5d8048 100644 --- a/src/test/correct/basic_sec_policy_read/gcc_O2/basic_sec_policy_read_gtirb.expected +++ b/src/test/correct/basic_sec_policy_read/gcc_O2/basic_sec_policy_read_gtirb.expected @@ -63,7 +63,7 @@ implementation {:extern} guarantee_reflexive() assert (memory_load32_le(mem, $z_addr) == memory_load32_le(mem, $z_addr)); } -procedure main_1536(); +procedure main(); modifies Gamma_R0, Gamma_R1, Gamma_R2, Gamma_mem, R0, R1, R2, mem; free requires (memory_load64_le(mem, 69632bv64) == 0bv64); free requires (memory_load64_le(mem, 69640bv64) == 69640bv64); @@ -78,41 +78,41 @@ procedure main_1536(); free ensures (memory_load64_le(mem, 69616bv64) == 1536bv64); free ensures (memory_load64_le(mem, 69640bv64) == 69640bv64); -implementation main_1536() +implementation main() { - var Gamma_load10: bool; - var Gamma_load9: bool; - var load10: bv32; - var load9: bv32; - main_1536__0__iALoIb4ETM23Kc4pUOH9GQ: - assume {:captureState "main_1536__0__iALoIb4ETM23Kc4pUOH9GQ"} true; + var $load10: bv32; + var $load9: bv32; + var Gamma_$load10: bool; + var Gamma_$load9: bool; + $main$__0__$iALoIb4ETM23Kc4pUOH9GQ: + assume {:captureState "$main$__0__$iALoIb4ETM23Kc4pUOH9GQ"} true; R1, Gamma_R1 := 69632bv64, true; R2, Gamma_R2 := bvadd64(R1, 20bv64), Gamma_R1; R0, Gamma_R0 := 0bv64, true; call rely(); - load10, Gamma_load10 := memory_load32_le(mem, bvadd64(R1, 20bv64)), (gamma_load32(Gamma_mem, bvadd64(R1, 20bv64)) || L(mem, bvadd64(R1, 20bv64))); - R1, Gamma_R1 := zero_extend32_32(load10), Gamma_load10; + $load10, Gamma_$load10 := memory_load32_le(mem, bvadd64(R1, 20bv64)), (gamma_load32(Gamma_mem, bvadd64(R1, 20bv64)) || L(mem, bvadd64(R1, 20bv64))); + R1, Gamma_R1 := zero_extend32_32($load10), Gamma_$load10; assert Gamma_R1; - goto main_1536__0__iALoIb4ETM23Kc4pUOH9GQ_goto_main_1536__2__Y~6LIazeTTCtbeZ37_HdXQ, main_1536__0__iALoIb4ETM23Kc4pUOH9GQ_goto_main_1536__1__Jddk5YHLSfKVviyVawKy~g; - main_1536__0__iALoIb4ETM23Kc4pUOH9GQ_goto_main_1536__1__Jddk5YHLSfKVviyVawKy~g: - assume {:captureState "main_1536__0__iALoIb4ETM23Kc4pUOH9GQ_goto_main_1536__1__Jddk5YHLSfKVviyVawKy~g"} true; - assume (!((R1[32:0] == 0bv32) == false)); + goto $main$__0__$iALoIb4ETM23Kc4pUOH9GQ_goto_$main$__2__$Y~6LIazeTTCtbeZ37_HdXQ, $main$__0__$iALoIb4ETM23Kc4pUOH9GQ_goto_$main$__1__$Jddk5YHLSfKVviyVawKy~g; + $main$__1__$Jddk5YHLSfKVviyVawKy~g: + assume {:captureState "$main$__1__$Jddk5YHLSfKVviyVawKy~g"} true; call rely(); - load9, Gamma_load9 := memory_load32_le(mem, bvadd64(R2, 4bv64)), (gamma_load32(Gamma_mem, bvadd64(R2, 4bv64)) || L(mem, bvadd64(R2, 4bv64))); - R0, Gamma_R0 := zero_extend32_32(load9), Gamma_load9; - goto main_1536__1__Jddk5YHLSfKVviyVawKy~g; - main_1536__1__Jddk5YHLSfKVviyVawKy~g: - assume {:captureState "main_1536__1__Jddk5YHLSfKVviyVawKy~g"} true; - goto main_1536__2__Y~6LIazeTTCtbeZ37_HdXQ; - main_1536__0__iALoIb4ETM23Kc4pUOH9GQ_goto_main_1536__2__Y~6LIazeTTCtbeZ37_HdXQ: - assume {:captureState "main_1536__0__iALoIb4ETM23Kc4pUOH9GQ_goto_main_1536__2__Y~6LIazeTTCtbeZ37_HdXQ"} true; + $load9, Gamma_$load9 := memory_load32_le(mem, bvadd64(R2, 4bv64)), (gamma_load32(Gamma_mem, bvadd64(R2, 4bv64)) || L(mem, bvadd64(R2, 4bv64))); + R0, Gamma_R0 := zero_extend32_32($load9), Gamma_$load9; + goto $main$__2__$Y~6LIazeTTCtbeZ37_HdXQ; + $main$__2__$Y~6LIazeTTCtbeZ37_HdXQ: + assume {:captureState "$main$__2__$Y~6LIazeTTCtbeZ37_HdXQ"} true; + goto main_basil_return; + $main$__0__$iALoIb4ETM23Kc4pUOH9GQ_goto_$main$__2__$Y~6LIazeTTCtbeZ37_HdXQ: + assume {:captureState "$main$__0__$iALoIb4ETM23Kc4pUOH9GQ_goto_$main$__2__$Y~6LIazeTTCtbeZ37_HdXQ"} true; assume ((R1[32:0] == 0bv32) == false); - goto main_1536__2__Y~6LIazeTTCtbeZ37_HdXQ; - main_1536__2__Y~6LIazeTTCtbeZ37_HdXQ: - assume {:captureState "main_1536__2__Y~6LIazeTTCtbeZ37_HdXQ"} true; - goto main_1536_basil_return; - main_1536_basil_return: - assume {:captureState "main_1536_basil_return"} true; + goto $main$__2__$Y~6LIazeTTCtbeZ37_HdXQ; + $main$__0__$iALoIb4ETM23Kc4pUOH9GQ_goto_$main$__1__$Jddk5YHLSfKVviyVawKy~g: + assume {:captureState "$main$__0__$iALoIb4ETM23Kc4pUOH9GQ_goto_$main$__1__$Jddk5YHLSfKVviyVawKy~g"} true; + assume (!((R1[32:0] == 0bv32) == false)); + goto $main$__1__$Jddk5YHLSfKVviyVawKy~g; + main_basil_return: + assume {:captureState "main_basil_return"} true; return; } diff --git a/src/test/correct/basic_sec_policy_read/gcc_pic/basic_sec_policy_read.adt b/src/test/correct/basic_sec_policy_read/gcc_pic/basic_sec_policy_read.adt deleted file mode 100644 index 88054c32d..000000000 --- a/src/test/correct/basic_sec_policy_read/gcc_pic/basic_sec_policy_read.adt +++ /dev/null @@ -1,535 +0,0 @@ -Project(Attrs([Attr("filename","\"gcc_pic/basic_sec_policy_read.out\""), -Attr("image-specification","(declare abi (name str))\n(declare arch (name str))\n(declare base-address (addr int))\n(declare bias (off int))\n(declare bits (size int))\n(declare code-region (addr int) (size int) (off int))\n(declare code-start (addr int))\n(declare entry-point (addr int))\n(declare external-reference (addr int) (name str))\n(declare format (name str))\n(declare is-executable (flag bool))\n(declare is-little-endian (flag bool))\n(declare llvm:base-address (addr int))\n(declare llvm:code-entry (name str) (off int) (size int))\n(declare llvm:coff-import-library (name str))\n(declare llvm:coff-virtual-section-header (name str) (addr int) (size int))\n(declare llvm:elf-program-header (name str) (off int) (size int))\n(declare llvm:elf-program-header-flags (name str) (ld bool) (r bool) \n (w bool) (x bool))\n(declare llvm:elf-virtual-program-header (name str) (addr int) (size int))\n(declare llvm:entry-point (addr int))\n(declare llvm:macho-symbol (name str) (value int))\n(declare llvm:name-reference (at int) (name str))\n(declare llvm:relocation (at int) (addr int))\n(declare llvm:section-entry (name str) (addr int) (size int) (off int))\n(declare llvm:section-flags (name str) (r bool) (w bool) (x bool))\n(declare llvm:segment-command (name str) (off int) (size int))\n(declare llvm:segment-command-flags (name str) (r bool) (w bool) (x bool))\n(declare llvm:symbol-entry (name str) (addr int) (size int) (off int)\n (value int))\n(declare llvm:virtual-segment-command (name str) (addr int) (size int))\n(declare mapped (addr int) (size int) (off int))\n(declare named-region (addr int) (size int) (name str))\n(declare named-symbol (addr int) (name str))\n(declare require (name str))\n(declare section (addr int) (size int))\n(declare segment (addr int) (size int) (r bool) (w bool) (x bool))\n(declare subarch (name str))\n(declare symbol-chunk (addr int) (size int) (root int))\n(declare symbol-value (addr int) (value int))\n(declare system (name str))\n(declare vendor (name str))\n\n(abi unknown)\n(arch aarch64)\n(base-address 0)\n(bias 0)\n(bits 64)\n(code-region 1932 20 1932)\n(code-region 1600 332 1600)\n(code-region 1488 96 1488)\n(code-region 1456 24 1456)\n(code-start 1652)\n(code-start 1600)\n(code-start 1876)\n(entry-point 1600)\n(external-reference 69576 _ITM_deregisterTMCloneTable)\n(external-reference 69584 __cxa_finalize)\n(external-reference 69608 __gmon_start__)\n(external-reference 69624 _ITM_registerTMCloneTable)\n(external-reference 69536 __libc_start_main)\n(external-reference 69544 __cxa_finalize)\n(external-reference 69552 __gmon_start__)\n(external-reference 69560 abort)\n(format elf)\n(is-executable true)\n(is-little-endian true)\n(llvm:base-address 0)\n(llvm:code-entry abort 0 0)\n(llvm:code-entry __cxa_finalize 0 0)\n(llvm:code-entry __libc_start_main 0 0)\n(llvm:code-entry _init 1456 0)\n(llvm:code-entry main 1876 56)\n(llvm:code-entry _start 1600 52)\n(llvm:code-entry abort@GLIBC_2.17 0 0)\n(llvm:code-entry _fini 1932 0)\n(llvm:code-entry __cxa_finalize@GLIBC_2.17 0 0)\n(llvm:code-entry __libc_start_main@GLIBC_2.34 0 0)\n(llvm:code-entry frame_dummy 1872 0)\n(llvm:code-entry __do_global_dtors_aux 1792 0)\n(llvm:code-entry register_tm_clones 1728 0)\n(llvm:code-entry deregister_tm_clones 1680 0)\n(llvm:code-entry call_weak_fn 1652 20)\n(llvm:code-entry .fini 1932 20)\n(llvm:code-entry .text 1600 332)\n(llvm:code-entry .plt 1488 96)\n(llvm:code-entry .init 1456 24)\n(llvm:elf-program-header 08 3464 632)\n(llvm:elf-program-header 07 0 0)\n(llvm:elf-program-header 06 1956 60)\n(llvm:elf-program-header 05 596 68)\n(llvm:elf-program-header 04 3480 496)\n(llvm:elf-program-header 03 3464 648)\n(llvm:elf-program-header 02 0 2180)\n(llvm:elf-program-header 01 568 27)\n(llvm:elf-program-header 00 64 504)\n(llvm:elf-program-header-flags 08 false true false false)\n(llvm:elf-program-header-flags 07 false true true false)\n(llvm:elf-program-header-flags 06 false true false false)\n(llvm:elf-program-header-flags 05 false true false false)\n(llvm:elf-program-header-flags 04 false true true false)\n(llvm:elf-program-header-flags 03 true true true false)\n(llvm:elf-program-header-flags 02 true true false true)\n(llvm:elf-program-header-flags 01 false true false false)\n(llvm:elf-program-header-flags 00 false true false false)\n(llvm:elf-virtual-program-header 08 69000 632)\n(llvm:elf-virtual-program-header 07 0 0)\n(llvm:elf-virtual-program-header 06 1956 60)\n(llvm:elf-virtual-program-header 05 596 68)\n(llvm:elf-virtual-program-header 04 69016 496)\n(llvm:elf-virtual-program-header 03 69000 664)\n(llvm:elf-virtual-program-header 02 0 2180)\n(llvm:elf-virtual-program-header 01 568 27)\n(llvm:elf-virtual-program-header 00 64 504)\n(llvm:entry-point 1600)\n(llvm:name-reference 69560 abort)\n(llvm:name-reference 69552 __gmon_start__)\n(llvm:name-reference 69544 __cxa_finalize)\n(llvm:name-reference 69536 __libc_start_main)\n(llvm:name-reference 69624 _ITM_registerTMCloneTable)\n(llvm:name-reference 69608 __gmon_start__)\n(llvm:name-reference 69584 __cxa_finalize)\n(llvm:name-reference 69576 _ITM_deregisterTMCloneTable)\n(llvm:section-entry .shstrtab 0 250 6855)\n(llvm:section-entry .strtab 0 559 6296)\n(llvm:section-entry .symtab 0 2136 4160)\n(llvm:section-entry .comment 0 43 4112)\n(llvm:section-entry .bss 69648 16 4112)\n(llvm:section-entry .data 69632 16 4096)\n(llvm:section-entry .got 69512 120 3976)\n(llvm:section-entry .dynamic 69016 496 3480)\n(llvm:section-entry .fini_array 69008 8 3472)\n(llvm:section-entry .init_array 69000 8 3464)\n(llvm:section-entry .eh_frame 2016 164 2016)\n(llvm:section-entry .eh_frame_hdr 1956 60 1956)\n(llvm:section-entry .rodata 1952 4 1952)\n(llvm:section-entry .fini 1932 20 1932)\n(llvm:section-entry .text 1600 332 1600)\n(llvm:section-entry .plt 1488 96 1488)\n(llvm:section-entry .init 1456 24 1456)\n(llvm:section-entry .rela.plt 1360 96 1360)\n(llvm:section-entry .rela.dyn 1120 240 1120)\n(llvm:section-entry .gnu.version_r 1072 48 1072)\n(llvm:section-entry .gnu.version 1054 18 1054)\n(llvm:section-entry .dynstr 912 141 912)\n(llvm:section-entry .dynsym 696 216 696)\n(llvm:section-entry .gnu.hash 664 28 664)\n(llvm:section-entry .note.ABI-tag 632 32 632)\n(llvm:section-entry .note.gnu.build-id 596 36 596)\n(llvm:section-entry .interp 568 27 568)\n(llvm:section-flags .shstrtab true false false)\n(llvm:section-flags .strtab true false false)\n(llvm:section-flags .symtab true false false)\n(llvm:section-flags .comment true false false)\n(llvm:section-flags .bss true true false)\n(llvm:section-flags .data true true false)\n(llvm:section-flags .got true true false)\n(llvm:section-flags .dynamic true true false)\n(llvm:section-flags .fini_array true true false)\n(llvm:section-flags .init_array true true false)\n(llvm:section-flags .eh_frame true false false)\n(llvm:section-flags .eh_frame_hdr true false false)\n(llvm:section-flags .rodata true false false)\n(llvm:section-flags .fini true false true)\n(llvm:section-flags .text true false true)\n(llvm:section-flags .plt true false true)\n(llvm:section-flags .init true false true)\n(llvm:section-flags .rela.plt true false false)\n(llvm:section-flags .rela.dyn true false false)\n(llvm:section-flags .gnu.version_r true false false)\n(llvm:section-flags .gnu.version true false false)\n(llvm:section-flags .dynstr true false false)\n(llvm:section-flags .dynsym true false false)\n(llvm:section-flags .gnu.hash true false false)\n(llvm:section-flags .note.ABI-tag true false false)\n(llvm:section-flags .note.gnu.build-id true false false)\n(llvm:section-flags .interp true false false)\n(llvm:symbol-entry abort 0 0 0 0)\n(llvm:symbol-entry __cxa_finalize 0 0 0 0)\n(llvm:symbol-entry __libc_start_main 0 0 0 0)\n(llvm:symbol-entry _init 1456 0 1456 1456)\n(llvm:symbol-entry main 1876 56 1876 1876)\n(llvm:symbol-entry _start 1600 52 1600 1600)\n(llvm:symbol-entry abort@GLIBC_2.17 0 0 0 0)\n(llvm:symbol-entry _fini 1932 0 1932 1932)\n(llvm:symbol-entry __cxa_finalize@GLIBC_2.17 0 0 0 0)\n(llvm:symbol-entry __libc_start_main@GLIBC_2.34 0 0 0 0)\n(llvm:symbol-entry frame_dummy 1872 0 1872 1872)\n(llvm:symbol-entry __do_global_dtors_aux 1792 0 1792 1792)\n(llvm:symbol-entry register_tm_clones 1728 0 1728 1728)\n(llvm:symbol-entry deregister_tm_clones 1680 0 1680 1680)\n(llvm:symbol-entry call_weak_fn 1652 20 1652 1652)\n(mapped 0 2180 0)\n(mapped 69000 648 3464)\n(named-region 0 2180 02)\n(named-region 69000 664 03)\n(named-region 568 27 .interp)\n(named-region 596 36 .note.gnu.build-id)\n(named-region 632 32 .note.ABI-tag)\n(named-region 664 28 .gnu.hash)\n(named-region 696 216 .dynsym)\n(named-region 912 141 .dynstr)\n(named-region 1054 18 .gnu.version)\n(named-region 1072 48 .gnu.version_r)\n(named-region 1120 240 .rela.dyn)\n(named-region 1360 96 .rela.plt)\n(named-region 1456 24 .init)\n(named-region 1488 96 .plt)\n(named-region 1600 332 .text)\n(named-region 1932 20 .fini)\n(named-region 1952 4 .rodata)\n(named-region 1956 60 .eh_frame_hdr)\n(named-region 2016 164 .eh_frame)\n(named-region 69000 8 .init_array)\n(named-region 69008 8 .fini_array)\n(named-region 69016 496 .dynamic)\n(named-region 69512 120 .got)\n(named-region 69632 16 .data)\n(named-region 69648 16 .bss)\n(named-region 0 43 .comment)\n(named-region 0 2136 .symtab)\n(named-region 0 559 .strtab)\n(named-region 0 250 .shstrtab)\n(named-symbol 1652 call_weak_fn)\n(named-symbol 1680 deregister_tm_clones)\n(named-symbol 1728 register_tm_clones)\n(named-symbol 1792 __do_global_dtors_aux)\n(named-symbol 1872 frame_dummy)\n(named-symbol 0 __libc_start_main@GLIBC_2.34)\n(named-symbol 0 __cxa_finalize@GLIBC_2.17)\n(named-symbol 1932 _fini)\n(named-symbol 0 abort@GLIBC_2.17)\n(named-symbol 1600 _start)\n(named-symbol 1876 main)\n(named-symbol 1456 _init)\n(named-symbol 0 __libc_start_main)\n(named-symbol 0 __cxa_finalize)\n(named-symbol 0 abort)\n(require libc.so.6)\n(section 568 27)\n(section 596 36)\n(section 632 32)\n(section 664 28)\n(section 696 216)\n(section 912 141)\n(section 1054 18)\n(section 1072 48)\n(section 1120 240)\n(section 1360 96)\n(section 1456 24)\n(section 1488 96)\n(section 1600 332)\n(section 1932 20)\n(section 1952 4)\n(section 1956 60)\n(section 2016 164)\n(section 69000 8)\n(section 69008 8)\n(section 69016 496)\n(section 69512 120)\n(section 69632 16)\n(section 69648 16)\n(section 0 43)\n(section 0 2136)\n(section 0 559)\n(section 0 250)\n(segment 0 2180 true false true)\n(segment 69000 664 true true false)\n(subarch v8)\n(symbol-chunk 1652 20 1652)\n(symbol-chunk 1600 52 1600)\n(symbol-chunk 1876 56 1876)\n(symbol-value 1652 1652)\n(symbol-value 1680 1680)\n(symbol-value 1728 1728)\n(symbol-value 1792 1792)\n(symbol-value 1872 1872)\n(symbol-value 1932 1932)\n(symbol-value 1600 1600)\n(symbol-value 1876 1876)\n(symbol-value 1456 1456)\n(symbol-value 0 0)\n(system \"\")\n(vendor \"\")\n"), -Attr("abi-name","\"aarch64-linux-gnu-elf\"")]), -Sections([Section(".shstrtab", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x40\x06\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xc8\x1b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x38\x00\x09\x00\x40\x00\x1c\x00\x1b\x00\x06\x00\x00\x00\x04\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x04\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x84\x08\x00\x00\x00\x00\x00\x00\x84\x08\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x01\x00\x00\x00\x06\x00\x00\x00\x88\x0d\x00\x00\x00\x00\x00\x00\x88\x0d"), -Section(".strtab", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x40\x06\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xc8\x1b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x38\x00\x09\x00\x40\x00\x1c\x00\x1b\x00\x06\x00\x00\x00\x04\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x04\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x84\x08\x00\x00\x00\x00\x00\x00\x84\x08\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x01\x00\x00\x00\x06\x00\x00\x00\x88\x0d\x00\x00\x00\x00\x00\x00\x88\x0d\x01\x00\x00\x00\x00\x00\x88\x0d\x01\x00\x00\x00\x00\x00\x88\x02\x00\x00\x00\x00\x00\x00\x98\x02\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x02\x00\x00\x00\x06\x00\x00\x00\x98\x0d\x00\x00\x00\x00\x00\x00\x98\x0d\x01\x00\x00\x00\x00\x00\x98\x0d\x01\x00\x00\x00\x00\x00\xf0\x01\x00\x00\x00\x00\x00\x00\xf0\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x04\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x50\xe5\x74\x64\x04\x00\x00\x00\xa4\x07\x00\x00\x00\x00\x00\x00\xa4\x07\x00\x00\x00\x00\x00\x00\xa4\x07\x00\x00\x00\x00\x00\x00\x3c\x00\x00\x00\x00\x00\x00\x00\x3c\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x51\xe5\x74\x64\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x52\xe5\x74\x64\x04\x00\x00\x00\x88\x0d\x00\x00\x00\x00\x00\x00\x88\x0d\x01\x00\x00\x00\x00\x00\x88\x0d\x01\x00\x00\x00\x00\x00\x78\x02\x00\x00\x00\x00\x00\x00\x78\x02\x00\x00\x00\x00\x00"), -Section(".symtab", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x40\x06\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xc8\x1b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x38\x00\x09\x00\x40\x00\x1c\x00\x1b\x00\x06\x00\x00\x00\x04\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x04\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x84\x08\x00\x00\x00\x00\x00\x00\x84\x08\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x01\x00\x00\x00\x06\x00\x00\x00\x88\x0d\x00\x00\x00\x00\x00\x00\x88\x0d\x01\x00\x00\x00\x00\x00\x88\x0d\x01\x00\x00\x00\x00\x00\x88\x02\x00\x00\x00\x00\x00\x00\x98\x02\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x02\x00\x00\x00\x06\x00\x00\x00\x98\x0d\x00\x00\x00\x00\x00\x00\x98\x0d\x01\x00\x00\x00\x00\x00\x98\x0d\x01\x00\x00\x00\x00\x00\xf0\x01\x00\x00\x00\x00\x00\x00\xf0\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x04\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x50\xe5\x74\x64\x04\x00\x00\x00\xa4\x07\x00\x00\x00\x00\x00\x00\xa4\x07\x00\x00\x00\x00\x00\x00\xa4\x07\x00\x00\x00\x00\x00\x00\x3c\x00\x00\x00\x00\x00\x00\x00\x3c\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x51\xe5\x74\x64\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x52\xe5\x74\x64\x04\x00\x00\x00\x88\x0d\x00\x00\x00\x00\x00\x00\x88\x0d\x01\x00\x00\x00\x00\x00\x88\x0d\x01\x00\x00\x00\x00\x00\x78\x02\x00\x00\x00\x00\x00\x00\x78\x02\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x2f\x6c\x69\x62\x2f\x6c\x64\x2d\x6c\x69\x6e\x75\x78\x2d\x61\x61\x72\x63\x68\x36\x34\x2e\x73\x6f\x2e\x31\x00\x00\x04\x00\x00\x00\x14\x00\x00\x00\x03\x00\x00\x00\x47\x4e\x55\x00\x37\x12\xd2\x62\x61\xd8\x80\xc7\x1f\x81\xa1\x78\x01\x7e\xb4\xc2\x97\x24\x9f\x72\x04\x00\x00\x00\x10\x00\x00\x00\x01\x00\x00\x00\x47\x4e\x55\x00\x00\x00\x00\x00\x03\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x01\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x0b\x00\xb0\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x16\x00\x00\x10\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x48\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x22\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x22\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x73\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5f\x5f\x63\x78\x61\x5f\x66\x69\x6e\x61\x6c\x69\x7a\x65\x00\x5f\x5f\x6c\x69\x62\x63\x5f\x73\x74\x61\x72\x74\x5f\x6d\x61\x69\x6e\x00\x61\x62\x6f\x72\x74\x00\x6c\x69\x62\x63\x2e\x73\x6f\x2e\x36\x00\x47\x4c\x49\x42\x43\x5f\x32\x2e\x31\x37\x00\x47\x4c\x49\x42\x43\x5f\x32\x2e\x33\x34\x00\x5f\x49\x54\x4d\x5f\x64\x65\x72\x65\x67\x69\x73\x74\x65\x72\x54\x4d\x43\x6c\x6f\x6e\x65\x54\x61\x62\x6c\x65\x00\x5f\x5f\x67\x6d\x6f\x6e\x5f\x73\x74\x61\x72\x74\x5f\x5f\x00\x5f\x49\x54\x4d\x5f\x72\x65\x67\x69\x73\x74\x65\x72\x54\x4d\x43\x6c\x6f\x6e\x65\x54\x61\x62\x6c\x65\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x01\x00\x03\x00\x01\x00\x03\x00\x01\x00\x01\x00\x02\x00\x28\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x97\x91\x96\x06\x00\x00\x03\x00\x32\x00\x00\x00\x10\x00\x00\x00\xb4\x91\x96\x06\x00\x00\x02\x00\x3d\x00\x00\x00\x00\x00\x00\x00\x88\x0d\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x50\x07\x00\x00\x00\x00\x00\x00\x90\x0d\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\xd8\x0f\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x18\x10\x01\x00\x00\x00\x00\x00\xe0\x0f\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x14\x10\x01\x00\x00\x00\x00\x00\xf0\x0f\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x54\x07\x00\x00\x00\x00\x00\x00\x08\x10\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x08\x10\x01\x00\x00\x00\x00\x00\xc8\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xd0\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe8\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xf8\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xa0\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xa8\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xb0\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xb8\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1f\x20\x03\xd5\xfd\x7b\xbf\xa9\xfd\x03\x00\x91\x2e\x00\x00\x94\xfd\x7b\xc1\xa8\xc0\x03\x5f\xd6\x00\x00\x00\x00\x00\x00\x00\x00\xf0\x7b\xbf\xa9\x90\x00\x00\x90\x11\xce\x47\xf9\x10\x62\x3e\x91\x20\x02\x1f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x90\x00\x00\x90\x11\xd2\x47\xf9\x10\x82\x3e\x91\x20\x02\x1f\xd6\x90\x00\x00\x90\x11\xd6\x47\xf9\x10\xa2\x3e\x91\x20\x02\x1f\xd6\x90\x00\x00\x90\x11\xda\x47\xf9\x10\xc2\x3e\x91\x20\x02\x1f\xd6\x90\x00\x00\x90\x11\xde\x47\xf9\x10\xe2\x3e\x91\x20\x02\x1f\xd6\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1f\x20\x03\xd5\x1d\x00\x80\xd2\x1e\x00\x80\xd2\xe5\x03\x00\xaa\xe1\x03\x40\xf9\xe2\x23\x00\x91\xe6\x03\x00\x91\x80\x00\x00\x90\x00\xf8\x47\xf9\x03\x00\x80\xd2\x04\x00\x80\xd2\xe1\xff\xff\x97\xec\xff\xff\x97\x80\x00\x00\x90\x00\xf4\x47\xf9\x40\x00\x00\xb4\xe4\xff\xff\x17\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x80\x00\x00\xb0\x00\x40\x00\x91\x81\x00\x00\xb0\x21\x40\x00\x91\x3f\x00\x00\xeb\xc0\x00\x00\x54\x81\x00\x00\x90\x21\xe4\x47\xf9\x61\x00\x00\xb4\xf0\x03\x01\xaa\x00\x02\x1f\xd6\xc0\x03\x5f\xd6\x80\x00\x00\xb0\x00\x40\x00\x91\x81\x00\x00\xb0\x21\x40\x00\x91\x21\x00\x00\xcb\x22\xfc\x7f\xd3\x41\x0c\x81\x8b\x21\xfc\x41\x93\xc1\x00\x00\xb4\x82\x00\x00\x90\x42\xfc\x47\xf9\x62\x00\x00\xb4\xf0\x03\x02\xaa\x00\x02\x1f\xd6\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\xfd\x7b\xbe\xa9\xfd\x03\x00\x91\xf3\x0b\x00\xf9\x93\x00\x00\xb0\x60\x42\x40\x39\x40\x01\x00\x35\x80\x00\x00\x90\x00\xe8\x47\xf9\x80\x00\x00\xb4\x80\x00\x00\xb0\x00\x04\x40\xf9\xb5\xff\xff\x97\xd8\xff\xff\x97\x20\x00\x80\x52\x60\x42\x00\x39\xf3\x0b\x40\xf9\xfd\x7b\xc2\xa8\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\xdc\xff\xff\x17\xff\x43\x00\xd1\x80\x00\x00\x90\x00\xf0\x47\xf9\x00\x00\x40\xb9\xe0\x0f\x00\xb9\x80\x00\x00\x90\x00\xec\x47\xf9\x00\x00\x40\xb9\x1f\x00\x00\x71\x40\x00\x00\x54\xff\x0f\x00\xb9\xe0\x0f\x40\xb9\xff\x43\x00\x91\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\xfd\x7b\xbf\xa9\xfd\x03\x00\x91\xfd\x7b\xc1\xa8\xc0\x03\x5f\xd6\x01\x00\x02\x00\x01\x1b\x03\x3b\x38\x00\x00\x00\x06\x00\x00\x00\x9c\xfe\xff\xff\x50\x00\x00\x00\xec\xfe\xff\xff\x64\x00\x00\x00\x1c\xff\xff\xff\x78\x00\x00\x00\x5c\xff\xff\xff\x8c\x00\x00\x00\xac\xff\xff\xff\xb0\x00\x00\x00\xb0\xff\xff\xff\xc4\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x01\x7a\x52\x00\x04\x78\x1e\x01\x1b\x0c\x1f\x00\x10\x00\x00\x00\x18\x00\x00\x00\x44\xfe\xff\xff\x34\x00\x00\x00\x00\x41\x07\x1e\x10\x00\x00\x00\x2c\x00\x00\x00\x80\xfe\xff\xff\x30\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x40\x00\x00\x00\x9c\xfe\xff\xff\x3c\x00\x00\x00\x00\x00\x00\x00\x20\x00\x00\x00\x54\x00\x00\x00\xc8\xfe\xff\xff\x48\x00\x00\x00\x00\x41\x0e\x20\x9d\x04\x9e\x03\x42\x93\x02\x4e\xde\xdd\xd3\x0e\x00\x00\x00\x00\x10\x00\x00\x00"), -Section(".comment", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x40\x06\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xc8\x1b\x00"), -Section(".interp", 0x238, "\x2f\x6c\x69\x62\x2f\x6c\x64\x2d\x6c\x69\x6e\x75\x78\x2d\x61\x61\x72\x63\x68\x36\x34\x2e\x73\x6f\x2e\x31\x00"), -Section(".note.gnu.build-id", 0x254, "\x04\x00\x00\x00\x14\x00\x00\x00\x03\x00\x00\x00\x47\x4e\x55\x00\x37\x12\xd2\x62\x61\xd8\x80\xc7\x1f\x81\xa1\x78\x01\x7e\xb4\xc2\x97\x24\x9f\x72"), -Section(".note.ABI-tag", 0x278, "\x04\x00\x00\x00\x10\x00\x00\x00\x01\x00\x00\x00\x47\x4e\x55\x00\x00\x00\x00\x00\x03\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00"), -Section(".gnu.hash", 0x298, "\x01\x00\x00\x00\x01\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".dynsym", 0x2B8, "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x0b\x00\xb0\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x16\x00\x00\x10\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x48\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x22\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x22\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x73\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".dynstr", 0x390, "\x00\x5f\x5f\x63\x78\x61\x5f\x66\x69\x6e\x61\x6c\x69\x7a\x65\x00\x5f\x5f\x6c\x69\x62\x63\x5f\x73\x74\x61\x72\x74\x5f\x6d\x61\x69\x6e\x00\x61\x62\x6f\x72\x74\x00\x6c\x69\x62\x63\x2e\x73\x6f\x2e\x36\x00\x47\x4c\x49\x42\x43\x5f\x32\x2e\x31\x37\x00\x47\x4c\x49\x42\x43\x5f\x32\x2e\x33\x34\x00\x5f\x49\x54\x4d\x5f\x64\x65\x72\x65\x67\x69\x73\x74\x65\x72\x54\x4d\x43\x6c\x6f\x6e\x65\x54\x61\x62\x6c\x65\x00\x5f\x5f\x67\x6d\x6f\x6e\x5f\x73\x74\x61\x72\x74\x5f\x5f\x00\x5f\x49\x54\x4d\x5f\x72\x65\x67\x69\x73\x74\x65\x72\x54\x4d\x43\x6c\x6f\x6e\x65\x54\x61\x62\x6c\x65\x00"), -Section(".gnu.version", 0x41E, "\x00\x00\x00\x00\x00\x00\x02\x00\x01\x00\x03\x00\x01\x00\x03\x00\x01\x00"), -Section(".gnu.version_r", 0x430, "\x01\x00\x02\x00\x28\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x97\x91\x96\x06\x00\x00\x03\x00\x32\x00\x00\x00\x10\x00\x00\x00\xb4\x91\x96\x06\x00\x00\x02\x00\x3d\x00\x00\x00\x00\x00\x00\x00"), -Section(".rela.dyn", 0x460, "\x88\x0d\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x50\x07\x00\x00\x00\x00\x00\x00\x90\x0d\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\xd8\x0f\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x18\x10\x01\x00\x00\x00\x00\x00\xe0\x0f\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x14\x10\x01\x00\x00\x00\x00\x00\xf0\x0f\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x54\x07\x00\x00\x00\x00\x00\x00\x08\x10\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x08\x10\x01\x00\x00\x00\x00\x00\xc8\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xd0\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe8\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xf8\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".rela.plt", 0x550, "\xa0\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xa8\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xb0\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xb8\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".init", 0x5B0, "\x1f\x20\x03\xd5\xfd\x7b\xbf\xa9\xfd\x03\x00\x91\x2e\x00\x00\x94\xfd\x7b\xc1\xa8\xc0\x03\x5f\xd6"), -Section(".plt", 0x5D0, "\xf0\x7b\xbf\xa9\x90\x00\x00\x90\x11\xce\x47\xf9\x10\x62\x3e\x91\x20\x02\x1f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x90\x00\x00\x90\x11\xd2\x47\xf9\x10\x82\x3e\x91\x20\x02\x1f\xd6\x90\x00\x00\x90\x11\xd6\x47\xf9\x10\xa2\x3e\x91\x20\x02\x1f\xd6\x90\x00\x00\x90\x11\xda\x47\xf9\x10\xc2\x3e\x91\x20\x02\x1f\xd6\x90\x00\x00\x90\x11\xde\x47\xf9\x10\xe2\x3e\x91\x20\x02\x1f\xd6"), -Section(".fini", 0x78C, "\x1f\x20\x03\xd5\xfd\x7b\xbf\xa9\xfd\x03\x00\x91\xfd\x7b\xc1\xa8\xc0\x03\x5f\xd6"), -Section(".rodata", 0x7A0, "\x01\x00\x02\x00"), -Section(".eh_frame_hdr", 0x7A4, "\x01\x1b\x03\x3b\x38\x00\x00\x00\x06\x00\x00\x00\x9c\xfe\xff\xff\x50\x00\x00\x00\xec\xfe\xff\xff\x64\x00\x00\x00\x1c\xff\xff\xff\x78\x00\x00\x00\x5c\xff\xff\xff\x8c\x00\x00\x00\xac\xff\xff\xff\xb0\x00\x00\x00\xb0\xff\xff\xff\xc4\x00\x00\x00"), -Section(".eh_frame", 0x7E0, "\x10\x00\x00\x00\x00\x00\x00\x00\x01\x7a\x52\x00\x04\x78\x1e\x01\x1b\x0c\x1f\x00\x10\x00\x00\x00\x18\x00\x00\x00\x44\xfe\xff\xff\x34\x00\x00\x00\x00\x41\x07\x1e\x10\x00\x00\x00\x2c\x00\x00\x00\x80\xfe\xff\xff\x30\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x40\x00\x00\x00\x9c\xfe\xff\xff\x3c\x00\x00\x00\x00\x00\x00\x00\x20\x00\x00\x00\x54\x00\x00\x00\xc8\xfe\xff\xff\x48\x00\x00\x00\x00\x41\x0e\x20\x9d\x04\x9e\x03\x42\x93\x02\x4e\xde\xdd\xd3\x0e\x00\x00\x00\x00\x10\x00\x00\x00\x78\x00\x00\x00\xf4\xfe\xff\xff\x04\x00\x00\x00\x00\x00\x00\x00\x14\x00\x00\x00\x8c\x00\x00\x00\xe4\xfe\xff\xff\x38\x00\x00\x00\x00\x41\x0e\x10\x4c\x0e\x00\x00\x00\x00\x00\x00"), -Section(".fini_array", 0x10D90, "\x00\x07\x00\x00\x00\x00\x00\x00"), -Section(".dynamic", 0x10D98, "\x01\x00\x00\x00\x00\x00\x00\x00\x28\x00\x00\x00\x00\x00\x00\x00\x0c\x00\x00\x00\x00\x00\x00\x00\xb0\x05\x00\x00\x00\x00\x00\x00\x0d\x00\x00\x00\x00\x00\x00\x00\x8c\x07\x00\x00\x00\x00\x00\x00\x19\x00\x00\x00\x00\x00\x00\x00\x88\x0d\x01\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x1a\x00\x00\x00\x00\x00\x00\x00\x90\x0d\x01\x00\x00\x00\x00\x00\x1c\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\xf5\xfe\xff\x6f\x00\x00\x00\x00\x98\x02\x00\x00\x00\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x90\x03\x00\x00\x00\x00\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\xb8\x02\x00\x00\x00\x00\x00\x00\x0a\x00\x00\x00\x00\x00\x00\x00\x8d\x00\x00\x00\x00\x00\x00\x00\x0b\x00\x00\x00\x00\x00\x00\x00\x18\x00\x00\x00\x00\x00\x00\x00\x15\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x88\x0f\x01\x00\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x60\x00\x00\x00\x00\x00\x00\x00\x14\x00\x00\x00\x00\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x17\x00\x00\x00\x00\x00\x00\x00\x50\x05\x00\x00\x00\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x60\x04\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\xf0\x00\x00\x00\x00\x00\x00\x00\x09\x00\x00\x00\x00\x00\x00\x00\x18\x00\x00\x00\x00\x00\x00\x00\x1e\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\xfb\xff\xff\x6f\x00\x00\x00\x00\x01\x00\x00\x08\x00\x00\x00\x00\xfe\xff\xff\x6f\x00\x00\x00\x00\x30\x04\x00\x00\x00\x00\x00\x00\xff\xff\xff\x6f\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\xf0\xff\xff\x6f\x00\x00\x00\x00\x1e\x04\x00\x00\x00\x00\x00\x00\xf9\xff\xff\x6f\x00\x00\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".got", 0x10F88, "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xd0\x05\x00\x00\x00\x00\x00\x00\xd0\x05\x00\x00\x00\x00\x00\x00\xd0\x05\x00\x00\x00\x00\x00\x00\xd0\x05\x00\x00\x00\x00\x00\x00\x98\x0d\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x18\x10\x01\x00\x00\x00\x00\x00\x14\x10\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x54\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".data", 0x11000, "\x00\x00\x00\x00\x00\x00\x00\x00\x08\x10\x01\x00\x00\x00\x00\x00"), -Section(".init_array", 0x10D88, "\x50\x07\x00\x00\x00\x00\x00\x00"), -Section(".text", 0x640, "\x1f\x20\x03\xd5\x1d\x00\x80\xd2\x1e\x00\x80\xd2\xe5\x03\x00\xaa\xe1\x03\x40\xf9\xe2\x23\x00\x91\xe6\x03\x00\x91\x80\x00\x00\x90\x00\xf8\x47\xf9\x03\x00\x80\xd2\x04\x00\x80\xd2\xe1\xff\xff\x97\xec\xff\xff\x97\x80\x00\x00\x90\x00\xf4\x47\xf9\x40\x00\x00\xb4\xe4\xff\xff\x17\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x80\x00\x00\xb0\x00\x40\x00\x91\x81\x00\x00\xb0\x21\x40\x00\x91\x3f\x00\x00\xeb\xc0\x00\x00\x54\x81\x00\x00\x90\x21\xe4\x47\xf9\x61\x00\x00\xb4\xf0\x03\x01\xaa\x00\x02\x1f\xd6\xc0\x03\x5f\xd6\x80\x00\x00\xb0\x00\x40\x00\x91\x81\x00\x00\xb0\x21\x40\x00\x91\x21\x00\x00\xcb\x22\xfc\x7f\xd3\x41\x0c\x81\x8b\x21\xfc\x41\x93\xc1\x00\x00\xb4\x82\x00\x00\x90\x42\xfc\x47\xf9\x62\x00\x00\xb4\xf0\x03\x02\xaa\x00\x02\x1f\xd6\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\xfd\x7b\xbe\xa9\xfd\x03\x00\x91\xf3\x0b\x00\xf9\x93\x00\x00\xb0\x60\x42\x40\x39\x40\x01\x00\x35\x80\x00\x00\x90\x00\xe8\x47\xf9\x80\x00\x00\xb4\x80\x00\x00\xb0\x00\x04\x40\xf9\xb5\xff\xff\x97\xd8\xff\xff\x97\x20\x00\x80\x52\x60\x42\x00\x39\xf3\x0b\x40\xf9\xfd\x7b\xc2\xa8\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\xdc\xff\xff\x17\xff\x43\x00\xd1\x80\x00\x00\x90\x00\xf0\x47\xf9\x00\x00\x40\xb9\xe0\x0f\x00\xb9\x80\x00\x00\x90\x00\xec\x47\xf9\x00\x00\x40\xb9\x1f\x00\x00\x71\x40\x00\x00\x54\xff\x0f\x00\xb9\xe0\x0f\x40\xb9\xff\x43\x00\x91\xc0\x03\x5f\xd6")]), -Memmap([Annotation(Region(0x0,0x883), Attr("segment","02 0 2180")), -Annotation(Region(0x640,0x673), Attr("symbol","\"_start\"")), -Annotation(Region(0x0,0xF9), Attr("section","\".shstrtab\"")), -Annotation(Region(0x0,0x22E), Attr("section","\".strtab\"")), -Annotation(Region(0x0,0x857), Attr("section","\".symtab\"")), -Annotation(Region(0x0,0x2A), Attr("section","\".comment\"")), -Annotation(Region(0x238,0x252), Attr("section","\".interp\"")), -Annotation(Region(0x254,0x277), Attr("section","\".note.gnu.build-id\"")), -Annotation(Region(0x278,0x297), Attr("section","\".note.ABI-tag\"")), -Annotation(Region(0x298,0x2B3), Attr("section","\".gnu.hash\"")), -Annotation(Region(0x2B8,0x38F), Attr("section","\".dynsym\"")), -Annotation(Region(0x390,0x41C), Attr("section","\".dynstr\"")), -Annotation(Region(0x41E,0x42F), Attr("section","\".gnu.version\"")), -Annotation(Region(0x430,0x45F), Attr("section","\".gnu.version_r\"")), -Annotation(Region(0x460,0x54F), Attr("section","\".rela.dyn\"")), -Annotation(Region(0x550,0x5AF), Attr("section","\".rela.plt\"")), -Annotation(Region(0x5B0,0x5C7), Attr("section","\".init\"")), -Annotation(Region(0x5D0,0x62F), Attr("section","\".plt\"")), -Annotation(Region(0x5B0,0x5C7), Attr("code-region","()")), -Annotation(Region(0x5D0,0x62F), Attr("code-region","()")), -Annotation(Region(0x640,0x673), Attr("symbol-info","_start 0x640 52")), -Annotation(Region(0x674,0x687), Attr("symbol","\"call_weak_fn\"")), -Annotation(Region(0x674,0x687), Attr("symbol-info","call_weak_fn 0x674 20")), -Annotation(Region(0x754,0x78B), Attr("symbol","\"main\"")), -Annotation(Region(0x754,0x78B), Attr("symbol-info","main 0x754 56")), -Annotation(Region(0x78C,0x79F), Attr("section","\".fini\"")), -Annotation(Region(0x7A0,0x7A3), Attr("section","\".rodata\"")), -Annotation(Region(0x7A4,0x7DF), Attr("section","\".eh_frame_hdr\"")), -Annotation(Region(0x7E0,0x883), Attr("section","\".eh_frame\"")), -Annotation(Region(0x10D88,0x1100F), Attr("segment","03 0x10D88 664")), -Annotation(Region(0x10D90,0x10D97), Attr("section","\".fini_array\"")), -Annotation(Region(0x10D98,0x10F87), Attr("section","\".dynamic\"")), -Annotation(Region(0x10F88,0x10FFF), Attr("section","\".got\"")), -Annotation(Region(0x11000,0x1100F), Attr("section","\".data\"")), -Annotation(Region(0x10D88,0x10D8F), Attr("section","\".init_array\"")), -Annotation(Region(0x640,0x78B), Attr("section","\".text\"")), -Annotation(Region(0x640,0x78B), Attr("code-region","()")), -Annotation(Region(0x78C,0x79F), Attr("code-region","()"))]), -Program(Tid(1_440, "%000005a0"), Attrs([]), - Subs([Sub(Tid(1_386, "@__cxa_finalize"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x600"), -Attr("stub","()")]), "__cxa_finalize", Args([Arg(Tid(1_441, "%000005a1"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("__cxa_finalize_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(901, "@__cxa_finalize"), - Attrs([Attr("address","0x600")]), Phis([]), -Defs([Def(Tid(1_149, "%0000047d"), Attrs([Attr("address","0x600"), -Attr("insn","adrp x16, #65536")]), Var("R16",Imm(64)), Int(65536,64)), -Def(Tid(1_156, "%00000484"), Attrs([Attr("address","0x604"), -Attr("insn","ldr x17, [x16, #0xfa8]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(4008,64)),LittleEndian(),64)), -Def(Tid(1_162, "%0000048a"), Attrs([Attr("address","0x608"), -Attr("insn","add x16, x16, #0xfa8")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(4008,64)))]), Jmps([Call(Tid(1_167, "%0000048f"), - Attrs([Attr("address","0x60C"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), -Sub(Tid(1_387, "@__do_global_dtors_aux"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x700")]), - "__do_global_dtors_aux", Args([Arg(Tid(1_442, "%000005a2"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("__do_global_dtors_aux_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(646, "@__do_global_dtors_aux"), - Attrs([Attr("address","0x700")]), Phis([]), Defs([Def(Tid(650, "%0000028a"), - Attrs([Attr("address","0x700"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("#3",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(18446744073709551584,64))), -Def(Tid(656, "%00000290"), Attrs([Attr("address","0x700"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("#3",Imm(64)),Var("R29",Imm(64)),LittleEndian(),64)), -Def(Tid(662, "%00000296"), Attrs([Attr("address","0x700"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("#3",Imm(64)),Int(8,64)),Var("R30",Imm(64)),LittleEndian(),64)), -Def(Tid(666, "%0000029a"), Attrs([Attr("address","0x700"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("R31",Imm(64)), -Var("#3",Imm(64))), Def(Tid(672, "%000002a0"), - Attrs([Attr("address","0x704"), Attr("insn","mov x29, sp")]), - Var("R29",Imm(64)), Var("R31",Imm(64))), Def(Tid(680, "%000002a8"), - Attrs([Attr("address","0x708"), Attr("insn","str x19, [sp, #0x10]")]), - Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(16,64)),Var("R19",Imm(64)),LittleEndian(),64)), -Def(Tid(685, "%000002ad"), Attrs([Attr("address","0x70C"), -Attr("insn","adrp x19, #69632")]), Var("R19",Imm(64)), Int(69632,64)), -Def(Tid(692, "%000002b4"), Attrs([Attr("address","0x710"), -Attr("insn","ldrb w0, [x19, #0x10]")]), Var("R0",Imm(64)), -UNSIGNED(64,Load(Var("mem",Mem(64,8)),PLUS(Var("R19",Imm(64)),Int(16,64)),LittleEndian(),8)))]), -Jmps([Goto(Tid(699, "%000002bb"), Attrs([Attr("address","0x714"), -Attr("insn","cbnz w0, #0x28")]), - NEQ(Extract(31,0,Var("R0",Imm(64))),Int(0,32)), -Direct(Tid(697, "%000002b9"))), Goto(Tid(1_428, "%00000594"), Attrs([]), - Int(1,1), Direct(Tid(846, "%0000034e")))])), Blk(Tid(846, "%0000034e"), - Attrs([Attr("address","0x718")]), Phis([]), Defs([Def(Tid(849, "%00000351"), - Attrs([Attr("address","0x718"), Attr("insn","adrp x0, #65536")]), - Var("R0",Imm(64)), Int(65536,64)), Def(Tid(856, "%00000358"), - Attrs([Attr("address","0x71C"), Attr("insn","ldr x0, [x0, #0xfd0]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(4048,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(862, "%0000035e"), Attrs([Attr("address","0x720"), -Attr("insn","cbz x0, #0x10")]), EQ(Var("R0",Imm(64)),Int(0,64)), -Direct(Tid(860, "%0000035c"))), Goto(Tid(1_429, "%00000595"), Attrs([]), - Int(1,1), Direct(Tid(885, "%00000375")))])), Blk(Tid(885, "%00000375"), - Attrs([Attr("address","0x724")]), Phis([]), Defs([Def(Tid(888, "%00000378"), - Attrs([Attr("address","0x724"), Attr("insn","adrp x0, #69632")]), - Var("R0",Imm(64)), Int(69632,64)), Def(Tid(895, "%0000037f"), - Attrs([Attr("address","0x728"), Attr("insn","ldr x0, [x0, #0x8]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(900, "%00000384"), Attrs([Attr("address","0x72C"), -Attr("insn","bl #-0x12c")]), Var("R30",Imm(64)), Int(1840,64))]), -Jmps([Call(Tid(903, "%00000387"), Attrs([Attr("address","0x72C"), -Attr("insn","bl #-0x12c")]), Int(1,1), -(Direct(Tid(1_386, "@__cxa_finalize")),Direct(Tid(860, "%0000035c"))))])), -Blk(Tid(860, "%0000035c"), Attrs([Attr("address","0x730")]), Phis([]), -Defs([Def(Tid(868, "%00000364"), Attrs([Attr("address","0x730"), -Attr("insn","bl #-0xa0")]), Var("R30",Imm(64)), Int(1844,64))]), -Jmps([Call(Tid(870, "%00000366"), Attrs([Attr("address","0x730"), -Attr("insn","bl #-0xa0")]), Int(1,1), -(Direct(Tid(1_400, "@deregister_tm_clones")),Direct(Tid(872, "%00000368"))))])), -Blk(Tid(872, "%00000368"), Attrs([Attr("address","0x734")]), Phis([]), -Defs([Def(Tid(875, "%0000036b"), Attrs([Attr("address","0x734"), -Attr("insn","mov w0, #0x1")]), Var("R0",Imm(64)), Int(1,64)), -Def(Tid(883, "%00000373"), Attrs([Attr("address","0x738"), -Attr("insn","strb w0, [x19, #0x10]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R19",Imm(64)),Int(16,64)),Extract(7,0,Var("R0",Imm(64))),LittleEndian(),8))]), -Jmps([Goto(Tid(1_430, "%00000596"), Attrs([]), Int(1,1), -Direct(Tid(697, "%000002b9")))])), Blk(Tid(697, "%000002b9"), - Attrs([Attr("address","0x73C")]), Phis([]), Defs([Def(Tid(707, "%000002c3"), - Attrs([Attr("address","0x73C"), Attr("insn","ldr x19, [sp, #0x10]")]), - Var("R19",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(16,64)),LittleEndian(),64)), -Def(Tid(714, "%000002ca"), Attrs([Attr("address","0x740"), -Attr("insn","ldp x29, x30, [sp], #0x20")]), Var("R29",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(719, "%000002cf"), Attrs([Attr("address","0x740"), -Attr("insn","ldp x29, x30, [sp], #0x20")]), Var("R30",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(723, "%000002d3"), Attrs([Attr("address","0x740"), -Attr("insn","ldp x29, x30, [sp], #0x20")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(32,64)))]), Jmps([Call(Tid(728, "%000002d8"), - Attrs([Attr("address","0x744"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), Sub(Tid(1_391, "@__libc_start_main"), - Attrs([Attr("c.proto","signed (*)(signed (*)(signed , char** , char** );* main, signed , char** , \nvoid* auxv)"), -Attr("address","0x5F0"), Attr("stub","()")]), "__libc_start_main", - Args([Arg(Tid(1_443, "%000005a3"), - Attrs([Attr("c.layout","**[ : 64]"), -Attr("c.data","Top:u64 ptr ptr"), -Attr("c.type","signed (*)(signed , char** , char** );*")]), - Var("__libc_start_main_main",Imm(64)), Var("R0",Imm(64)), In()), -Arg(Tid(1_444, "%000005a4"), Attrs([Attr("c.layout","[signed : 32]"), -Attr("c.data","Top:u32"), Attr("c.type","signed")]), - Var("__libc_start_main_arg2",Imm(32)), LOW(32,Var("R1",Imm(64))), In()), -Arg(Tid(1_445, "%000005a5"), Attrs([Attr("c.layout","**[char : 8]"), -Attr("c.data","Top:u8 ptr ptr"), Attr("c.type","char**")]), - Var("__libc_start_main_arg3",Imm(64)), Var("R2",Imm(64)), Both()), -Arg(Tid(1_446, "%000005a6"), Attrs([Attr("c.layout","*[ : 8]"), -Attr("c.data","{} ptr"), Attr("c.type","void*")]), - Var("__libc_start_main_auxv",Imm(64)), Var("R3",Imm(64)), Both()), -Arg(Tid(1_447, "%000005a7"), Attrs([Attr("c.layout","[signed : 32]"), -Attr("c.data","Top:u32"), Attr("c.type","signed")]), - Var("__libc_start_main_result",Imm(32)), LOW(32,Var("R0",Imm(64))), -Out())]), Blks([Blk(Tid(479, "@__libc_start_main"), - Attrs([Attr("address","0x5F0")]), Phis([]), -Defs([Def(Tid(1_127, "%00000467"), Attrs([Attr("address","0x5F0"), -Attr("insn","adrp x16, #65536")]), Var("R16",Imm(64)), Int(65536,64)), -Def(Tid(1_134, "%0000046e"), Attrs([Attr("address","0x5F4"), -Attr("insn","ldr x17, [x16, #0xfa0]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(4000,64)),LittleEndian(),64)), -Def(Tid(1_140, "%00000474"), Attrs([Attr("address","0x5F8"), -Attr("insn","add x16, x16, #0xfa0")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(4000,64)))]), Jmps([Call(Tid(1_145, "%00000479"), - Attrs([Attr("address","0x5FC"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), Sub(Tid(1_392, "@_fini"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x78C")]), - "_fini", Args([Arg(Tid(1_448, "%000005a8"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("_fini_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(31, "@_fini"), - Attrs([Attr("address","0x78C")]), Phis([]), Defs([Def(Tid(37, "%00000025"), - Attrs([Attr("address","0x790"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("#0",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(18446744073709551600,64))), -Def(Tid(43, "%0000002b"), Attrs([Attr("address","0x790"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("#0",Imm(64)),Var("R29",Imm(64)),LittleEndian(),64)), -Def(Tid(49, "%00000031"), Attrs([Attr("address","0x790"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("#0",Imm(64)),Int(8,64)),Var("R30",Imm(64)),LittleEndian(),64)), -Def(Tid(53, "%00000035"), Attrs([Attr("address","0x790"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("R31",Imm(64)), -Var("#0",Imm(64))), Def(Tid(59, "%0000003b"), Attrs([Attr("address","0x794"), -Attr("insn","mov x29, sp")]), Var("R29",Imm(64)), Var("R31",Imm(64))), -Def(Tid(66, "%00000042"), Attrs([Attr("address","0x798"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R29",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(71, "%00000047"), Attrs([Attr("address","0x798"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R30",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(75, "%0000004b"), Attrs([Attr("address","0x798"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(16,64)))]), Jmps([Call(Tid(80, "%00000050"), - Attrs([Attr("address","0x79C"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), Sub(Tid(1_393, "@_init"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x5B0")]), - "_init", Args([Arg(Tid(1_449, "%000005a9"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("_init_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(1_239, "@_init"), - Attrs([Attr("address","0x5B0")]), Phis([]), -Defs([Def(Tid(1_245, "%000004dd"), Attrs([Attr("address","0x5B4"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("#6",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(18446744073709551600,64))), -Def(Tid(1_251, "%000004e3"), Attrs([Attr("address","0x5B4"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("#6",Imm(64)),Var("R29",Imm(64)),LittleEndian(),64)), -Def(Tid(1_257, "%000004e9"), Attrs([Attr("address","0x5B4"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("#6",Imm(64)),Int(8,64)),Var("R30",Imm(64)),LittleEndian(),64)), -Def(Tid(1_261, "%000004ed"), Attrs([Attr("address","0x5B4"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("R31",Imm(64)), -Var("#6",Imm(64))), Def(Tid(1_267, "%000004f3"), - Attrs([Attr("address","0x5B8"), Attr("insn","mov x29, sp")]), - Var("R29",Imm(64)), Var("R31",Imm(64))), Def(Tid(1_272, "%000004f8"), - Attrs([Attr("address","0x5BC"), Attr("insn","bl #0xb8")]), - Var("R30",Imm(64)), Int(1472,64))]), Jmps([Call(Tid(1_274, "%000004fa"), - Attrs([Attr("address","0x5BC"), Attr("insn","bl #0xb8")]), Int(1,1), -(Direct(Tid(1_398, "@call_weak_fn")),Direct(Tid(1_276, "%000004fc"))))])), -Blk(Tid(1_276, "%000004fc"), Attrs([Attr("address","0x5C0")]), Phis([]), -Defs([Def(Tid(1_281, "%00000501"), Attrs([Attr("address","0x5C0"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R29",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(1_286, "%00000506"), Attrs([Attr("address","0x5C0"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R30",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(1_290, "%0000050a"), Attrs([Attr("address","0x5C0"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(16,64)))]), Jmps([Call(Tid(1_295, "%0000050f"), - Attrs([Attr("address","0x5C4"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), Sub(Tid(1_394, "@_start"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x640"), -Attr("entry-point","()")]), "_start", Args([Arg(Tid(1_450, "%000005aa"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("_start_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(416, "@_start"), - Attrs([Attr("address","0x640")]), Phis([]), Defs([Def(Tid(421, "%000001a5"), - Attrs([Attr("address","0x644"), Attr("insn","mov x29, #0x0")]), - Var("R29",Imm(64)), Int(0,64)), Def(Tid(426, "%000001aa"), - Attrs([Attr("address","0x648"), Attr("insn","mov x30, #0x0")]), - Var("R30",Imm(64)), Int(0,64)), Def(Tid(432, "%000001b0"), - Attrs([Attr("address","0x64C"), Attr("insn","mov x5, x0")]), - Var("R5",Imm(64)), Var("R0",Imm(64))), Def(Tid(439, "%000001b7"), - Attrs([Attr("address","0x650"), Attr("insn","ldr x1, [sp]")]), - Var("R1",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(445, "%000001bd"), Attrs([Attr("address","0x654"), -Attr("insn","add x2, sp, #0x8")]), Var("R2",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(8,64))), Def(Tid(451, "%000001c3"), - Attrs([Attr("address","0x658"), Attr("insn","mov x6, sp")]), - Var("R6",Imm(64)), Var("R31",Imm(64))), Def(Tid(456, "%000001c8"), - Attrs([Attr("address","0x65C"), Attr("insn","adrp x0, #65536")]), - Var("R0",Imm(64)), Int(65536,64)), Def(Tid(463, "%000001cf"), - Attrs([Attr("address","0x660"), Attr("insn","ldr x0, [x0, #0xff0]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(4080,64)),LittleEndian(),64)), -Def(Tid(468, "%000001d4"), Attrs([Attr("address","0x664"), -Attr("insn","mov x3, #0x0")]), Var("R3",Imm(64)), Int(0,64)), -Def(Tid(473, "%000001d9"), Attrs([Attr("address","0x668"), -Attr("insn","mov x4, #0x0")]), Var("R4",Imm(64)), Int(0,64)), -Def(Tid(478, "%000001de"), Attrs([Attr("address","0x66C"), -Attr("insn","bl #-0x7c")]), Var("R30",Imm(64)), Int(1648,64))]), -Jmps([Call(Tid(481, "%000001e1"), Attrs([Attr("address","0x66C"), -Attr("insn","bl #-0x7c")]), Int(1,1), -(Direct(Tid(1_391, "@__libc_start_main")),Direct(Tid(483, "%000001e3"))))])), -Blk(Tid(483, "%000001e3"), Attrs([Attr("address","0x670")]), Phis([]), -Defs([Def(Tid(486, "%000001e6"), Attrs([Attr("address","0x670"), -Attr("insn","bl #-0x50")]), Var("R30",Imm(64)), Int(1652,64))]), -Jmps([Call(Tid(489, "%000001e9"), Attrs([Attr("address","0x670"), -Attr("insn","bl #-0x50")]), Int(1,1), -(Direct(Tid(1_397, "@abort")),Direct(Tid(1_431, "%00000597"))))])), -Blk(Tid(1_431, "%00000597"), Attrs([]), Phis([]), Defs([]), -Jmps([Call(Tid(1_432, "%00000598"), Attrs([]), Int(1,1), -(Direct(Tid(1_398, "@call_weak_fn")),))]))])), Sub(Tid(1_397, "@abort"), - Attrs([Attr("noreturn","()"), Attr("c.proto","void (*)(void)"), -Attr("address","0x620"), Attr("stub","()")]), "abort", Args([]), -Blks([Blk(Tid(487, "@abort"), Attrs([Attr("address","0x620")]), Phis([]), -Defs([Def(Tid(1_193, "%000004a9"), Attrs([Attr("address","0x620"), -Attr("insn","adrp x16, #65536")]), Var("R16",Imm(64)), Int(65536,64)), -Def(Tid(1_200, "%000004b0"), Attrs([Attr("address","0x624"), -Attr("insn","ldr x17, [x16, #0xfb8]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(4024,64)),LittleEndian(),64)), -Def(Tid(1_206, "%000004b6"), Attrs([Attr("address","0x628"), -Attr("insn","add x16, x16, #0xfb8")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(4024,64)))]), Jmps([Call(Tid(1_211, "%000004bb"), - Attrs([Attr("address","0x62C"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), Sub(Tid(1_398, "@call_weak_fn"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x674")]), - "call_weak_fn", Args([Arg(Tid(1_451, "%000005ab"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("call_weak_fn_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(491, "@call_weak_fn"), - Attrs([Attr("address","0x674")]), Phis([]), Defs([Def(Tid(494, "%000001ee"), - Attrs([Attr("address","0x674"), Attr("insn","adrp x0, #65536")]), - Var("R0",Imm(64)), Int(65536,64)), Def(Tid(501, "%000001f5"), - Attrs([Attr("address","0x678"), Attr("insn","ldr x0, [x0, #0xfe8]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(4072,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(507, "%000001fb"), Attrs([Attr("address","0x67C"), -Attr("insn","cbz x0, #0x8")]), EQ(Var("R0",Imm(64)),Int(0,64)), -Direct(Tid(505, "%000001f9"))), Goto(Tid(1_433, "%00000599"), Attrs([]), - Int(1,1), Direct(Tid(965, "%000003c5")))])), Blk(Tid(505, "%000001f9"), - Attrs([Attr("address","0x684")]), Phis([]), Defs([]), -Jmps([Call(Tid(513, "%00000201"), Attrs([Attr("address","0x684"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))])), -Blk(Tid(965, "%000003c5"), Attrs([Attr("address","0x680")]), Phis([]), -Defs([]), Jmps([Goto(Tid(968, "%000003c8"), Attrs([Attr("address","0x680"), -Attr("insn","b #-0x70")]), Int(1,1), Direct(Tid(966, "@__gmon_start__")))])), -Blk(Tid(966, "@__gmon_start__"), Attrs([Attr("address","0x610")]), Phis([]), -Defs([Def(Tid(1_171, "%00000493"), Attrs([Attr("address","0x610"), -Attr("insn","adrp x16, #65536")]), Var("R16",Imm(64)), Int(65536,64)), -Def(Tid(1_178, "%0000049a"), Attrs([Attr("address","0x614"), -Attr("insn","ldr x17, [x16, #0xfb0]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(4016,64)),LittleEndian(),64)), -Def(Tid(1_184, "%000004a0"), Attrs([Attr("address","0x618"), -Attr("insn","add x16, x16, #0xfb0")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(4016,64)))]), Jmps([Call(Tid(1_189, "%000004a5"), - Attrs([Attr("address","0x61C"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), -Sub(Tid(1_400, "@deregister_tm_clones"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x690")]), - "deregister_tm_clones", Args([Arg(Tid(1_452, "%000005ac"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("deregister_tm_clones_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(519, "@deregister_tm_clones"), - Attrs([Attr("address","0x690")]), Phis([]), Defs([Def(Tid(522, "%0000020a"), - Attrs([Attr("address","0x690"), Attr("insn","adrp x0, #69632")]), - Var("R0",Imm(64)), Int(69632,64)), Def(Tid(528, "%00000210"), - Attrs([Attr("address","0x694"), Attr("insn","add x0, x0, #0x10")]), - Var("R0",Imm(64)), PLUS(Var("R0",Imm(64)),Int(16,64))), -Def(Tid(533, "%00000215"), Attrs([Attr("address","0x698"), -Attr("insn","adrp x1, #69632")]), Var("R1",Imm(64)), Int(69632,64)), -Def(Tid(539, "%0000021b"), Attrs([Attr("address","0x69C"), -Attr("insn","add x1, x1, #0x10")]), Var("R1",Imm(64)), -PLUS(Var("R1",Imm(64)),Int(16,64))), Def(Tid(545, "%00000221"), - Attrs([Attr("address","0x6A0"), Attr("insn","cmp x1, x0")]), - Var("#1",Imm(64)), NOT(Var("R0",Imm(64)))), Def(Tid(550, "%00000226"), - Attrs([Attr("address","0x6A0"), Attr("insn","cmp x1, x0")]), - Var("#2",Imm(64)), PLUS(Var("R1",Imm(64)),NOT(Var("R0",Imm(64))))), -Def(Tid(556, "%0000022c"), Attrs([Attr("address","0x6A0"), -Attr("insn","cmp x1, x0")]), Var("VF",Imm(1)), -NEQ(SIGNED(65,PLUS(Var("#2",Imm(64)),Int(1,64))),PLUS(PLUS(SIGNED(65,Var("R1",Imm(64))),SIGNED(65,Var("#1",Imm(64)))),Int(1,65)))), -Def(Tid(562, "%00000232"), Attrs([Attr("address","0x6A0"), -Attr("insn","cmp x1, x0")]), Var("CF",Imm(1)), -NEQ(UNSIGNED(65,PLUS(Var("#2",Imm(64)),Int(1,64))),PLUS(PLUS(UNSIGNED(65,Var("R1",Imm(64))),UNSIGNED(65,Var("#1",Imm(64)))),Int(1,65)))), -Def(Tid(566, "%00000236"), Attrs([Attr("address","0x6A0"), -Attr("insn","cmp x1, x0")]), Var("ZF",Imm(1)), -EQ(PLUS(Var("#2",Imm(64)),Int(1,64)),Int(0,64))), Def(Tid(570, "%0000023a"), - Attrs([Attr("address","0x6A0"), Attr("insn","cmp x1, x0")]), - Var("NF",Imm(1)), Extract(63,63,PLUS(Var("#2",Imm(64)),Int(1,64))))]), -Jmps([Goto(Tid(576, "%00000240"), Attrs([Attr("address","0x6A4"), -Attr("insn","b.eq #0x18")]), EQ(Var("ZF",Imm(1)),Int(1,1)), -Direct(Tid(574, "%0000023e"))), Goto(Tid(1_434, "%0000059a"), Attrs([]), - Int(1,1), Direct(Tid(935, "%000003a7")))])), Blk(Tid(935, "%000003a7"), - Attrs([Attr("address","0x6A8")]), Phis([]), Defs([Def(Tid(938, "%000003aa"), - Attrs([Attr("address","0x6A8"), Attr("insn","adrp x1, #65536")]), - Var("R1",Imm(64)), Int(65536,64)), Def(Tid(945, "%000003b1"), - Attrs([Attr("address","0x6AC"), Attr("insn","ldr x1, [x1, #0xfc8]")]), - Var("R1",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R1",Imm(64)),Int(4040,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(950, "%000003b6"), Attrs([Attr("address","0x6B0"), -Attr("insn","cbz x1, #0xc")]), EQ(Var("R1",Imm(64)),Int(0,64)), -Direct(Tid(574, "%0000023e"))), Goto(Tid(1_435, "%0000059b"), Attrs([]), - Int(1,1), Direct(Tid(954, "%000003ba")))])), Blk(Tid(574, "%0000023e"), - Attrs([Attr("address","0x6BC")]), Phis([]), Defs([]), -Jmps([Call(Tid(582, "%00000246"), Attrs([Attr("address","0x6BC"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))])), -Blk(Tid(954, "%000003ba"), Attrs([Attr("address","0x6B4")]), Phis([]), -Defs([Def(Tid(958, "%000003be"), Attrs([Attr("address","0x6B4"), -Attr("insn","mov x16, x1")]), Var("R16",Imm(64)), Var("R1",Imm(64)))]), -Jmps([Call(Tid(963, "%000003c3"), Attrs([Attr("address","0x6B8"), -Attr("insn","br x16")]), Int(1,1), (Indirect(Var("R16",Imm(64))),))]))])), -Sub(Tid(1_403, "@frame_dummy"), Attrs([Attr("c.proto","signed (*)(void)"), -Attr("address","0x750")]), "frame_dummy", Args([Arg(Tid(1_453, "%000005ad"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("frame_dummy_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(734, "@frame_dummy"), - Attrs([Attr("address","0x750")]), Phis([]), Defs([]), -Jmps([Call(Tid(736, "%000002e0"), Attrs([Attr("address","0x750"), -Attr("insn","b #-0x90")]), Int(1,1), -(Direct(Tid(1_407, "@register_tm_clones")),))]))])), Sub(Tid(1_404, "@main"), - Attrs([Attr("c.proto","signed (*)(signed argc, const char** argv)"), -Attr("address","0x754")]), "main", Args([Arg(Tid(1_454, "%000005ae"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("main_argc",Imm(32)), -LOW(32,Var("R0",Imm(64))), In()), Arg(Tid(1_455, "%000005af"), - Attrs([Attr("c.layout","**[char : 8]"), Attr("c.data","Top:u8 ptr ptr"), -Attr("c.type"," const char**")]), Var("main_argv",Imm(64)), -Var("R1",Imm(64)), Both()), Arg(Tid(1_456, "%000005b0"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("main_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(738, "@main"), - Attrs([Attr("address","0x754")]), Phis([]), Defs([Def(Tid(742, "%000002e6"), - Attrs([Attr("address","0x754"), Attr("insn","sub sp, sp, #0x10")]), - Var("R31",Imm(64)), PLUS(Var("R31",Imm(64)),Int(18446744073709551600,64))), -Def(Tid(747, "%000002eb"), Attrs([Attr("address","0x758"), -Attr("insn","adrp x0, #65536")]), Var("R0",Imm(64)), Int(65536,64)), -Def(Tid(754, "%000002f2"), Attrs([Attr("address","0x75C"), -Attr("insn","ldr x0, [x0, #0xfe0]")]), Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(4064,64)),LittleEndian(),64)), -Def(Tid(761, "%000002f9"), Attrs([Attr("address","0x760"), -Attr("insn","ldr w0, [x0]")]), Var("R0",Imm(64)), -UNSIGNED(64,Load(Var("mem",Mem(64,8)),Var("R0",Imm(64)),LittleEndian(),32))), -Def(Tid(769, "%00000301"), Attrs([Attr("address","0x764"), -Attr("insn","str w0, [sp, #0xc]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(12,64)),Extract(31,0,Var("R0",Imm(64))),LittleEndian(),32)), -Def(Tid(774, "%00000306"), Attrs([Attr("address","0x768"), -Attr("insn","adrp x0, #65536")]), Var("R0",Imm(64)), Int(65536,64)), -Def(Tid(781, "%0000030d"), Attrs([Attr("address","0x76C"), -Attr("insn","ldr x0, [x0, #0xfd8]")]), Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(4056,64)),LittleEndian(),64)), -Def(Tid(788, "%00000314"), Attrs([Attr("address","0x770"), -Attr("insn","ldr w0, [x0]")]), Var("R0",Imm(64)), -UNSIGNED(64,Load(Var("mem",Mem(64,8)),Var("R0",Imm(64)),LittleEndian(),32))), -Def(Tid(794, "%0000031a"), Attrs([Attr("address","0x774"), -Attr("insn","cmp w0, #0x0")]), Var("#4",Imm(32)), -PLUS(Extract(31,0,Var("R0",Imm(64))),Int(4294967295,32))), -Def(Tid(799, "%0000031f"), Attrs([Attr("address","0x774"), -Attr("insn","cmp w0, #0x0")]), Var("VF",Imm(1)), -NEQ(SIGNED(33,PLUS(Var("#4",Imm(32)),Int(1,32))),PLUS(SIGNED(33,Extract(31,0,Var("R0",Imm(64)))),Int(0,33)))), -Def(Tid(804, "%00000324"), Attrs([Attr("address","0x774"), -Attr("insn","cmp w0, #0x0")]), Var("CF",Imm(1)), -NEQ(UNSIGNED(33,PLUS(Var("#4",Imm(32)),Int(1,32))),PLUS(UNSIGNED(33,Extract(31,0,Var("R0",Imm(64)))),Int(4294967296,33)))), -Def(Tid(808, "%00000328"), Attrs([Attr("address","0x774"), -Attr("insn","cmp w0, #0x0")]), Var("ZF",Imm(1)), -EQ(PLUS(Var("#4",Imm(32)),Int(1,32)),Int(0,32))), Def(Tid(812, "%0000032c"), - Attrs([Attr("address","0x774"), Attr("insn","cmp w0, #0x0")]), - Var("NF",Imm(1)), Extract(31,31,PLUS(Var("#4",Imm(32)),Int(1,32))))]), -Jmps([Goto(Tid(818, "%00000332"), Attrs([Attr("address","0x778"), -Attr("insn","b.eq #0x8")]), EQ(Var("ZF",Imm(1)),Int(1,1)), -Direct(Tid(816, "%00000330"))), Goto(Tid(1_436, "%0000059c"), Attrs([]), - Int(1,1), Direct(Tid(839, "%00000347")))])), Blk(Tid(839, "%00000347"), - Attrs([Attr("address","0x77C")]), Phis([]), Defs([Def(Tid(844, "%0000034c"), - Attrs([Attr("address","0x77C"), Attr("insn","str wzr, [sp, #0xc]")]), - Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(12,64)),Int(0,32),LittleEndian(),32))]), -Jmps([Goto(Tid(1_437, "%0000059d"), Attrs([]), Int(1,1), -Direct(Tid(816, "%00000330")))])), Blk(Tid(816, "%00000330"), - Attrs([Attr("address","0x780")]), Phis([]), Defs([Def(Tid(826, "%0000033a"), - Attrs([Attr("address","0x780"), Attr("insn","ldr w0, [sp, #0xc]")]), - Var("R0",Imm(64)), -UNSIGNED(64,Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(12,64)),LittleEndian(),32))), -Def(Tid(832, "%00000340"), Attrs([Attr("address","0x784"), -Attr("insn","add sp, sp, #0x10")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(16,64)))]), Jmps([Call(Tid(837, "%00000345"), - Attrs([Attr("address","0x788"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), -Sub(Tid(1_407, "@register_tm_clones"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x6C0")]), - "register_tm_clones", Args([Arg(Tid(1_457, "%000005b1"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("register_tm_clones_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(584, "@register_tm_clones"), Attrs([Attr("address","0x6C0")]), - Phis([]), Defs([Def(Tid(587, "%0000024b"), Attrs([Attr("address","0x6C0"), -Attr("insn","adrp x0, #69632")]), Var("R0",Imm(64)), Int(69632,64)), -Def(Tid(593, "%00000251"), Attrs([Attr("address","0x6C4"), -Attr("insn","add x0, x0, #0x10")]), Var("R0",Imm(64)), -PLUS(Var("R0",Imm(64)),Int(16,64))), Def(Tid(598, "%00000256"), - Attrs([Attr("address","0x6C8"), Attr("insn","adrp x1, #69632")]), - Var("R1",Imm(64)), Int(69632,64)), Def(Tid(604, "%0000025c"), - Attrs([Attr("address","0x6CC"), Attr("insn","add x1, x1, #0x10")]), - Var("R1",Imm(64)), PLUS(Var("R1",Imm(64)),Int(16,64))), -Def(Tid(611, "%00000263"), Attrs([Attr("address","0x6D0"), -Attr("insn","sub x1, x1, x0")]), Var("R1",Imm(64)), -PLUS(PLUS(Var("R1",Imm(64)),NOT(Var("R0",Imm(64)))),Int(1,64))), -Def(Tid(617, "%00000269"), Attrs([Attr("address","0x6D4"), -Attr("insn","lsr x2, x1, #63")]), Var("R2",Imm(64)), -Concat(Int(0,63),Extract(63,63,Var("R1",Imm(64))))), -Def(Tid(624, "%00000270"), Attrs([Attr("address","0x6D8"), -Attr("insn","add x1, x2, x1, asr #3")]), Var("R1",Imm(64)), -PLUS(Var("R2",Imm(64)),ARSHIFT(Var("R1",Imm(64)),Int(3,3)))), -Def(Tid(630, "%00000276"), Attrs([Attr("address","0x6DC"), -Attr("insn","asr x1, x1, #1")]), Var("R1",Imm(64)), -SIGNED(64,Extract(63,1,Var("R1",Imm(64)))))]), -Jmps([Goto(Tid(636, "%0000027c"), Attrs([Attr("address","0x6E0"), -Attr("insn","cbz x1, #0x18")]), EQ(Var("R1",Imm(64)),Int(0,64)), -Direct(Tid(634, "%0000027a"))), Goto(Tid(1_438, "%0000059e"), Attrs([]), - Int(1,1), Direct(Tid(905, "%00000389")))])), Blk(Tid(905, "%00000389"), - Attrs([Attr("address","0x6E4")]), Phis([]), Defs([Def(Tid(908, "%0000038c"), - Attrs([Attr("address","0x6E4"), Attr("insn","adrp x2, #65536")]), - Var("R2",Imm(64)), Int(65536,64)), Def(Tid(915, "%00000393"), - Attrs([Attr("address","0x6E8"), Attr("insn","ldr x2, [x2, #0xff8]")]), - Var("R2",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R2",Imm(64)),Int(4088,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(920, "%00000398"), Attrs([Attr("address","0x6EC"), -Attr("insn","cbz x2, #0xc")]), EQ(Var("R2",Imm(64)),Int(0,64)), -Direct(Tid(634, "%0000027a"))), Goto(Tid(1_439, "%0000059f"), Attrs([]), - Int(1,1), Direct(Tid(924, "%0000039c")))])), Blk(Tid(634, "%0000027a"), - Attrs([Attr("address","0x6F8")]), Phis([]), Defs([]), -Jmps([Call(Tid(642, "%00000282"), Attrs([Attr("address","0x6F8"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))])), -Blk(Tid(924, "%0000039c"), Attrs([Attr("address","0x6F0")]), Phis([]), -Defs([Def(Tid(928, "%000003a0"), Attrs([Attr("address","0x6F0"), -Attr("insn","mov x16, x2")]), Var("R16",Imm(64)), Var("R2",Imm(64)))]), -Jmps([Call(Tid(933, "%000003a5"), Attrs([Attr("address","0x6F4"), -Attr("insn","br x16")]), Int(1,1), -(Indirect(Var("R16",Imm(64))),))]))]))]))) \ No newline at end of file diff --git a/src/test/correct/basic_sec_policy_read/gcc_pic/basic_sec_policy_read.bir b/src/test/correct/basic_sec_policy_read/gcc_pic/basic_sec_policy_read.bir deleted file mode 100644 index 9c6005e75..000000000 --- a/src/test/correct/basic_sec_policy_read/gcc_pic/basic_sec_policy_read.bir +++ /dev/null @@ -1,246 +0,0 @@ -000005a0: program -0000056a: sub __cxa_finalize(__cxa_finalize_result) -000005a1: __cxa_finalize_result :: out u32 = low:32[R0] - -00000385: -0000047d: R16 := 0x10000 -00000484: R17 := mem[R16 + 0xFA8, el]:u64 -0000048a: R16 := R16 + 0xFA8 -0000048f: call R17 with noreturn - -0000056b: sub __do_global_dtors_aux(__do_global_dtors_aux_result) -000005a2: __do_global_dtors_aux_result :: out u32 = low:32[R0] - -00000286: -0000028a: #3 := R31 - 0x20 -00000290: mem := mem with [#3, el]:u64 <- R29 -00000296: mem := mem with [#3 + 8, el]:u64 <- R30 -0000029a: R31 := #3 -000002a0: R29 := R31 -000002a8: mem := mem with [R31 + 0x10, el]:u64 <- R19 -000002ad: R19 := 0x11000 -000002b4: R0 := pad:64[mem[R19 + 0x10]] -000002bb: when 31:0[R0] <> 0 goto %000002b9 -00000594: goto %0000034e - -0000034e: -00000351: R0 := 0x10000 -00000358: R0 := mem[R0 + 0xFD0, el]:u64 -0000035e: when R0 = 0 goto %0000035c -00000595: goto %00000375 - -00000375: -00000378: R0 := 0x11000 -0000037f: R0 := mem[R0 + 8, el]:u64 -00000384: R30 := 0x730 -00000387: call @__cxa_finalize with return %0000035c - -0000035c: -00000364: R30 := 0x734 -00000366: call @deregister_tm_clones with return %00000368 - -00000368: -0000036b: R0 := 1 -00000373: mem := mem with [R19 + 0x10] <- 7:0[R0] -00000596: goto %000002b9 - -000002b9: -000002c3: R19 := mem[R31 + 0x10, el]:u64 -000002ca: R29 := mem[R31, el]:u64 -000002cf: R30 := mem[R31 + 8, el]:u64 -000002d3: R31 := R31 + 0x20 -000002d8: call R30 with noreturn - -0000056f: sub __libc_start_main(__libc_start_main_main, __libc_start_main_arg2, __libc_start_main_arg3, __libc_start_main_auxv, __libc_start_main_result) -000005a3: __libc_start_main_main :: in u64 = R0 -000005a4: __libc_start_main_arg2 :: in u32 = low:32[R1] -000005a5: __libc_start_main_arg3 :: in out u64 = R2 -000005a6: __libc_start_main_auxv :: in out u64 = R3 -000005a7: __libc_start_main_result :: out u32 = low:32[R0] - -000001df: -00000467: R16 := 0x10000 -0000046e: R17 := mem[R16 + 0xFA0, el]:u64 -00000474: R16 := R16 + 0xFA0 -00000479: call R17 with noreturn - -00000570: sub _fini(_fini_result) -000005a8: _fini_result :: out u32 = low:32[R0] - -0000001f: -00000025: #0 := R31 - 0x10 -0000002b: mem := mem with [#0, el]:u64 <- R29 -00000031: mem := mem with [#0 + 8, el]:u64 <- R30 -00000035: R31 := #0 -0000003b: R29 := R31 -00000042: R29 := mem[R31, el]:u64 -00000047: R30 := mem[R31 + 8, el]:u64 -0000004b: R31 := R31 + 0x10 -00000050: call R30 with noreturn - -00000571: sub _init(_init_result) -000005a9: _init_result :: out u32 = low:32[R0] - -000004d7: -000004dd: #6 := R31 - 0x10 -000004e3: mem := mem with [#6, el]:u64 <- R29 -000004e9: mem := mem with [#6 + 8, el]:u64 <- R30 -000004ed: R31 := #6 -000004f3: R29 := R31 -000004f8: R30 := 0x5C0 -000004fa: call @call_weak_fn with return %000004fc - -000004fc: -00000501: R29 := mem[R31, el]:u64 -00000506: R30 := mem[R31 + 8, el]:u64 -0000050a: R31 := R31 + 0x10 -0000050f: call R30 with noreturn - -00000572: sub _start(_start_result) -000005aa: _start_result :: out u32 = low:32[R0] - -000001a0: -000001a5: R29 := 0 -000001aa: R30 := 0 -000001b0: R5 := R0 -000001b7: R1 := mem[R31, el]:u64 -000001bd: R2 := R31 + 8 -000001c3: R6 := R31 -000001c8: R0 := 0x10000 -000001cf: R0 := mem[R0 + 0xFF0, el]:u64 -000001d4: R3 := 0 -000001d9: R4 := 0 -000001de: R30 := 0x670 -000001e1: call @__libc_start_main with return %000001e3 - -000001e3: -000001e6: R30 := 0x674 -000001e9: call @abort with return %00000597 - -00000597: -00000598: call @call_weak_fn with noreturn - -00000575: sub abort() - - -000001e7: -000004a9: R16 := 0x10000 -000004b0: R17 := mem[R16 + 0xFB8, el]:u64 -000004b6: R16 := R16 + 0xFB8 -000004bb: call R17 with noreturn - -00000576: sub call_weak_fn(call_weak_fn_result) -000005ab: call_weak_fn_result :: out u32 = low:32[R0] - -000001eb: -000001ee: R0 := 0x10000 -000001f5: R0 := mem[R0 + 0xFE8, el]:u64 -000001fb: when R0 = 0 goto %000001f9 -00000599: goto %000003c5 - -000001f9: -00000201: call R30 with noreturn - -000003c5: -000003c8: goto @__gmon_start__ - -000003c6: -00000493: R16 := 0x10000 -0000049a: R17 := mem[R16 + 0xFB0, el]:u64 -000004a0: R16 := R16 + 0xFB0 -000004a5: call R17 with noreturn - -00000578: sub deregister_tm_clones(deregister_tm_clones_result) -000005ac: deregister_tm_clones_result :: out u32 = low:32[R0] - -00000207: -0000020a: R0 := 0x11000 -00000210: R0 := R0 + 0x10 -00000215: R1 := 0x11000 -0000021b: R1 := R1 + 0x10 -00000221: #1 := ~R0 -00000226: #2 := R1 + ~R0 -0000022c: VF := extend:65[#2 + 1] <> extend:65[R1] + extend:65[#1] + 1 -00000232: CF := pad:65[#2 + 1] <> pad:65[R1] + pad:65[#1] + 1 -00000236: ZF := #2 + 1 = 0 -0000023a: NF := 63:63[#2 + 1] -00000240: when ZF goto %0000023e -0000059a: goto %000003a7 - -000003a7: -000003aa: R1 := 0x10000 -000003b1: R1 := mem[R1 + 0xFC8, el]:u64 -000003b6: when R1 = 0 goto %0000023e -0000059b: goto %000003ba - -0000023e: -00000246: call R30 with noreturn - -000003ba: -000003be: R16 := R1 -000003c3: call R16 with noreturn - -0000057b: sub frame_dummy(frame_dummy_result) -000005ad: frame_dummy_result :: out u32 = low:32[R0] - -000002de: -000002e0: call @register_tm_clones with noreturn - -0000057c: sub main(main_argc, main_argv, main_result) -000005ae: main_argc :: in u32 = low:32[R0] -000005af: main_argv :: in out u64 = R1 -000005b0: main_result :: out u32 = low:32[R0] - -000002e2: -000002e6: R31 := R31 - 0x10 -000002eb: R0 := 0x10000 -000002f2: R0 := mem[R0 + 0xFE0, el]:u64 -000002f9: R0 := pad:64[mem[R0, el]:u32] -00000301: mem := mem with [R31 + 0xC, el]:u32 <- 31:0[R0] -00000306: R0 := 0x10000 -0000030d: R0 := mem[R0 + 0xFD8, el]:u64 -00000314: R0 := pad:64[mem[R0, el]:u32] -0000031a: #4 := 31:0[R0] - 1 -0000031f: VF := extend:33[#4 + 1] <> extend:33[31:0[R0]] + 0 -00000324: CF := pad:33[#4 + 1] <> pad:33[31:0[R0]] - 0x100000000 -00000328: ZF := #4 + 1 = 0 -0000032c: NF := 31:31[#4 + 1] -00000332: when ZF goto %00000330 -0000059c: goto %00000347 - -00000347: -0000034c: mem := mem with [R31 + 0xC, el]:u32 <- 0 -0000059d: goto %00000330 - -00000330: -0000033a: R0 := pad:64[mem[R31 + 0xC, el]:u32] -00000340: R31 := R31 + 0x10 -00000345: call R30 with noreturn - -0000057f: sub register_tm_clones(register_tm_clones_result) -000005b1: register_tm_clones_result :: out u32 = low:32[R0] - -00000248: -0000024b: R0 := 0x11000 -00000251: R0 := R0 + 0x10 -00000256: R1 := 0x11000 -0000025c: R1 := R1 + 0x10 -00000263: R1 := R1 + ~R0 + 1 -00000269: R2 := 0.63:63[R1] -00000270: R1 := R2 + (R1 ~>> 3) -00000276: R1 := extend:64[63:1[R1]] -0000027c: when R1 = 0 goto %0000027a -0000059e: goto %00000389 - -00000389: -0000038c: R2 := 0x10000 -00000393: R2 := mem[R2 + 0xFF8, el]:u64 -00000398: when R2 = 0 goto %0000027a -0000059f: goto %0000039c - -0000027a: -00000282: call R30 with noreturn - -0000039c: -000003a0: R16 := R2 -000003a5: call R16 with noreturn diff --git a/src/test/correct/basic_sec_policy_read/gcc_pic/basic_sec_policy_read.expected b/src/test/correct/basic_sec_policy_read/gcc_pic/basic_sec_policy_read.expected index 2f98dab1f..3fca37261 100644 --- a/src/test/correct/basic_sec_policy_read/gcc_pic/basic_sec_policy_read.expected +++ b/src/test/correct/basic_sec_policy_read/gcc_pic/basic_sec_policy_read.expected @@ -93,7 +93,7 @@ implementation {:extern} guarantee_reflexive() assert (memory_load32_le(mem, $z_addr) == memory_load32_le(mem, $z_addr)); } -procedure main_1876(); +procedure main(); modifies CF, Gamma_CF, Gamma_NF, Gamma_R0, Gamma_R31, Gamma_VF, Gamma_ZF, Gamma_mem, Gamma_stack, NF, R0, R31, VF, ZF, mem, stack; free requires (memory_load64_le(mem, 69632bv64) == 0bv64); free requires (memory_load64_le(mem, 69640bv64) == 69640bv64); @@ -114,39 +114,39 @@ procedure main_1876(); free ensures (memory_load64_le(mem, 69616bv64) == 1876bv64); free ensures (memory_load64_le(mem, 69640bv64) == 69640bv64); -implementation main_1876() +implementation main() { var #4: bv32; + var $load$18: bv64; + var $load$19: bv32; + var $load$20: bv64; + var $load$21: bv32; + var $load$22: bv32; var Gamma_#4: bool; - var Gamma_load18: bool; - var Gamma_load19: bool; - var Gamma_load20: bool; - var Gamma_load21: bool; - var Gamma_load22: bool; - var load18: bv64; - var load19: bv32; - var load20: bv64; - var load21: bv32; - var load22: bv32; + var Gamma_$load$18: bool; + var Gamma_$load$19: bool; + var Gamma_$load$20: bool; + var Gamma_$load$21: bool; + var Gamma_$load$22: bool; lmain: assume {:captureState "lmain"} true; R31, Gamma_R31 := bvadd64(R31, 18446744073709551600bv64), Gamma_R31; R0, Gamma_R0 := 65536bv64, true; call rely(); - load18, Gamma_load18 := memory_load64_le(mem, bvadd64(R0, 4064bv64)), (gamma_load64(Gamma_mem, bvadd64(R0, 4064bv64)) || L(mem, bvadd64(R0, 4064bv64))); - R0, Gamma_R0 := load18, Gamma_load18; + $load$18, Gamma_$load$18 := memory_load64_le(mem, bvadd64(R0, 4064bv64)), (gamma_load64(Gamma_mem, bvadd64(R0, 4064bv64)) || L(mem, bvadd64(R0, 4064bv64))); + R0, Gamma_R0 := $load$18, Gamma_$load$18; call rely(); - load19, Gamma_load19 := memory_load32_le(mem, R0), (gamma_load32(Gamma_mem, R0) || L(mem, R0)); - R0, Gamma_R0 := zero_extend32_32(load19), Gamma_load19; + $load$19, Gamma_$load$19 := memory_load32_le(mem, R0), (gamma_load32(Gamma_mem, R0) || L(mem, R0)); + R0, Gamma_R0 := zero_extend32_32($load$19), Gamma_$load$19; stack, Gamma_stack := memory_store32_le(stack, bvadd64(R31, 12bv64), R0[32:0]), gamma_store32(Gamma_stack, bvadd64(R31, 12bv64), Gamma_R0); assume {:captureState "%00000301"} true; R0, Gamma_R0 := 65536bv64, true; call rely(); - load20, Gamma_load20 := memory_load64_le(mem, bvadd64(R0, 4056bv64)), (gamma_load64(Gamma_mem, bvadd64(R0, 4056bv64)) || L(mem, bvadd64(R0, 4056bv64))); - R0, Gamma_R0 := load20, Gamma_load20; + $load$20, Gamma_$load$20 := memory_load64_le(mem, bvadd64(R0, 4056bv64)), (gamma_load64(Gamma_mem, bvadd64(R0, 4056bv64)) || L(mem, bvadd64(R0, 4056bv64))); + R0, Gamma_R0 := $load$20, Gamma_$load$20; call rely(); - load21, Gamma_load21 := memory_load32_le(mem, R0), (gamma_load32(Gamma_mem, R0) || L(mem, R0)); - R0, Gamma_R0 := zero_extend32_32(load21), Gamma_load21; + $load$21, Gamma_$load$21 := memory_load32_le(mem, R0), (gamma_load32(Gamma_mem, R0) || L(mem, R0)); + R0, Gamma_R0 := zero_extend32_32($load$21), Gamma_$load$21; #4, Gamma_#4 := bvadd32(R0[32:0], 4294967295bv32), Gamma_R0; VF, Gamma_VF := bvnot1(bvcomp33(sign_extend1_32(bvadd32(#4, 1bv32)), bvadd33(sign_extend1_32(R0[32:0]), 0bv33))), (Gamma_R0 && Gamma_#4); CF, Gamma_CF := bvnot1(bvcomp33(zero_extend1_32(bvadd32(#4, 1bv32)), bvadd33(zero_extend1_32(R0[32:0]), 4294967296bv33))), (Gamma_R0 && Gamma_#4); @@ -154,27 +154,27 @@ implementation main_1876() NF, Gamma_NF := bvadd32(#4, 1bv32)[32:31], Gamma_#4; assert Gamma_ZF; goto lmain_goto_l00000330, lmain_goto_l00000347; - lmain_goto_l00000347: - assume {:captureState "lmain_goto_l00000347"} true; - assume (bvcomp1(ZF, 1bv1) == 0bv1); - stack, Gamma_stack := memory_store32_le(stack, bvadd64(R31, 12bv64), 0bv32), gamma_store32(Gamma_stack, bvadd64(R31, 12bv64), true); - assume {:captureState "%0000034c"} true; - goto l00000347; l00000347: assume {:captureState "l00000347"} true; + stack, Gamma_stack := memory_store32_le(stack, bvadd64(R31, 12bv64), 0bv32), gamma_store32(Gamma_stack, bvadd64(R31, 12bv64), true); + assume {:captureState "%0000034c"} true; goto l00000330; + l00000330: + assume {:captureState "l00000330"} true; + $load$22, Gamma_$load$22 := memory_load32_le(stack, bvadd64(R31, 12bv64)), gamma_load32(Gamma_stack, bvadd64(R31, 12bv64)); + R0, Gamma_R0 := zero_extend32_32($load$22), Gamma_$load$22; + R31, Gamma_R31 := bvadd64(R31, 16bv64), Gamma_R31; + goto main_basil_return; lmain_goto_l00000330: assume {:captureState "lmain_goto_l00000330"} true; assume (bvcomp1(ZF, 1bv1) != 0bv1); goto l00000330; - l00000330: - assume {:captureState "l00000330"} true; - load22, Gamma_load22 := memory_load32_le(stack, bvadd64(R31, 12bv64)), gamma_load32(Gamma_stack, bvadd64(R31, 12bv64)); - R0, Gamma_R0 := zero_extend32_32(load22), Gamma_load22; - R31, Gamma_R31 := bvadd64(R31, 16bv64), Gamma_R31; - goto main_1876_basil_return; - main_1876_basil_return: - assume {:captureState "main_1876_basil_return"} true; + lmain_goto_l00000347: + assume {:captureState "lmain_goto_l00000347"} true; + assume (bvcomp1(ZF, 1bv1) == 0bv1); + goto l00000347; + main_basil_return: + assume {:captureState "main_basil_return"} true; return; } diff --git a/src/test/correct/basic_sec_policy_read/gcc_pic/basic_sec_policy_read.gts b/src/test/correct/basic_sec_policy_read/gcc_pic/basic_sec_policy_read.gts deleted file mode 100644 index 2f8868fe8..000000000 Binary files a/src/test/correct/basic_sec_policy_read/gcc_pic/basic_sec_policy_read.gts and /dev/null differ diff --git a/src/test/correct/basic_sec_policy_read/gcc_pic/basic_sec_policy_read.md5sum b/src/test/correct/basic_sec_policy_read/gcc_pic/basic_sec_policy_read.md5sum new file mode 100644 index 000000000..f5955e82b --- /dev/null +++ b/src/test/correct/basic_sec_policy_read/gcc_pic/basic_sec_policy_read.md5sum @@ -0,0 +1,5 @@ +4b43f7b6a324e533fa4cb65fcf4e8ccb correct/basic_sec_policy_read/gcc_pic/a.out +558a052675cb9dd314ea3409c7d081a1 correct/basic_sec_policy_read/gcc_pic/basic_sec_policy_read.adt +9748518b332b61a3a403a3180747eb57 correct/basic_sec_policy_read/gcc_pic/basic_sec_policy_read.bir +7269e9c372f35846ee435914433d2835 correct/basic_sec_policy_read/gcc_pic/basic_sec_policy_read.relf +4f32849f44f143ce29c4e06b871dfacb correct/basic_sec_policy_read/gcc_pic/basic_sec_policy_read.gts diff --git a/src/test/correct/basic_sec_policy_read/gcc_pic/basic_sec_policy_read.relf b/src/test/correct/basic_sec_policy_read/gcc_pic/basic_sec_policy_read.relf deleted file mode 100644 index 21eb9addb..000000000 --- a/src/test/correct/basic_sec_policy_read/gcc_pic/basic_sec_policy_read.relf +++ /dev/null @@ -1,124 +0,0 @@ - -Relocation section '.rela.dyn' at offset 0x460 contains 10 entries: - Offset Info Type Symbol's Value Symbol's Name + Addend -0000000000010d88 0000000000000403 R_AARCH64_RELATIVE 750 -0000000000010d90 0000000000000403 R_AARCH64_RELATIVE 700 -0000000000010fd8 0000000000000403 R_AARCH64_RELATIVE 11018 -0000000000010fe0 0000000000000403 R_AARCH64_RELATIVE 11014 -0000000000010ff0 0000000000000403 R_AARCH64_RELATIVE 754 -0000000000011008 0000000000000403 R_AARCH64_RELATIVE 11008 -0000000000010fc8 0000000400000401 R_AARCH64_GLOB_DAT 0000000000000000 _ITM_deregisterTMCloneTable + 0 -0000000000010fd0 0000000500000401 R_AARCH64_GLOB_DAT 0000000000000000 __cxa_finalize@GLIBC_2.17 + 0 -0000000000010fe8 0000000600000401 R_AARCH64_GLOB_DAT 0000000000000000 __gmon_start__ + 0 -0000000000010ff8 0000000800000401 R_AARCH64_GLOB_DAT 0000000000000000 _ITM_registerTMCloneTable + 0 - -Relocation section '.rela.plt' at offset 0x550 contains 4 entries: - Offset Info Type Symbol's Value Symbol's Name + Addend -0000000000010fa0 0000000300000402 R_AARCH64_JUMP_SLOT 0000000000000000 __libc_start_main@GLIBC_2.34 + 0 -0000000000010fa8 0000000500000402 R_AARCH64_JUMP_SLOT 0000000000000000 __cxa_finalize@GLIBC_2.17 + 0 -0000000000010fb0 0000000600000402 R_AARCH64_JUMP_SLOT 0000000000000000 __gmon_start__ + 0 -0000000000010fb8 0000000700000402 R_AARCH64_JUMP_SLOT 0000000000000000 abort@GLIBC_2.17 + 0 - -Symbol table '.dynsym' contains 9 entries: - Num: Value Size Type Bind Vis Ndx Name - 0: 0000000000000000 0 NOTYPE LOCAL DEFAULT UND - 1: 00000000000005b0 0 SECTION LOCAL DEFAULT 11 .init - 2: 0000000000011000 0 SECTION LOCAL DEFAULT 22 .data - 3: 0000000000000000 0 FUNC GLOBAL DEFAULT UND __libc_start_main@GLIBC_2.34 (2) - 4: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_deregisterTMCloneTable - 5: 0000000000000000 0 FUNC WEAK DEFAULT UND __cxa_finalize@GLIBC_2.17 (3) - 6: 0000000000000000 0 NOTYPE WEAK DEFAULT UND __gmon_start__ - 7: 0000000000000000 0 FUNC GLOBAL DEFAULT UND abort@GLIBC_2.17 (3) - 8: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_registerTMCloneTable - -Symbol table '.symtab' contains 89 entries: - Num: Value Size Type Bind Vis Ndx Name - 0: 0000000000000000 0 NOTYPE LOCAL DEFAULT UND - 1: 0000000000000238 0 SECTION LOCAL DEFAULT 1 .interp - 2: 0000000000000254 0 SECTION LOCAL DEFAULT 2 .note.gnu.build-id - 3: 0000000000000278 0 SECTION LOCAL DEFAULT 3 .note.ABI-tag - 4: 0000000000000298 0 SECTION LOCAL DEFAULT 4 .gnu.hash - 5: 00000000000002b8 0 SECTION LOCAL DEFAULT 5 .dynsym - 6: 0000000000000390 0 SECTION LOCAL DEFAULT 6 .dynstr - 7: 000000000000041e 0 SECTION LOCAL DEFAULT 7 .gnu.version - 8: 0000000000000430 0 SECTION LOCAL DEFAULT 8 .gnu.version_r - 9: 0000000000000460 0 SECTION LOCAL DEFAULT 9 .rela.dyn - 10: 0000000000000550 0 SECTION LOCAL DEFAULT 10 .rela.plt - 11: 00000000000005b0 0 SECTION LOCAL DEFAULT 11 .init - 12: 00000000000005d0 0 SECTION LOCAL DEFAULT 12 .plt - 13: 0000000000000640 0 SECTION LOCAL DEFAULT 13 .text - 14: 000000000000078c 0 SECTION LOCAL DEFAULT 14 .fini - 15: 00000000000007a0 0 SECTION LOCAL DEFAULT 15 .rodata - 16: 00000000000007a4 0 SECTION LOCAL DEFAULT 16 .eh_frame_hdr - 17: 00000000000007e0 0 SECTION LOCAL DEFAULT 17 .eh_frame - 18: 0000000000010d88 0 SECTION LOCAL DEFAULT 18 .init_array - 19: 0000000000010d90 0 SECTION LOCAL DEFAULT 19 .fini_array - 20: 0000000000010d98 0 SECTION LOCAL DEFAULT 20 .dynamic - 21: 0000000000010f88 0 SECTION LOCAL DEFAULT 21 .got - 22: 0000000000011000 0 SECTION LOCAL DEFAULT 22 .data - 23: 0000000000011010 0 SECTION LOCAL DEFAULT 23 .bss - 24: 0000000000000000 0 SECTION LOCAL DEFAULT 24 .comment - 25: 0000000000000000 0 FILE LOCAL DEFAULT ABS Scrt1.o - 26: 0000000000000278 0 NOTYPE LOCAL DEFAULT 3 $d - 27: 0000000000000278 32 OBJECT LOCAL DEFAULT 3 __abi_tag - 28: 0000000000000640 0 NOTYPE LOCAL DEFAULT 13 $x - 29: 00000000000007f4 0 NOTYPE LOCAL DEFAULT 17 $d - 30: 00000000000007a0 0 NOTYPE LOCAL DEFAULT 15 $d - 31: 0000000000000000 0 FILE LOCAL DEFAULT ABS crti.o - 32: 0000000000000674 0 NOTYPE LOCAL DEFAULT 13 $x - 33: 0000000000000674 20 FUNC LOCAL DEFAULT 13 call_weak_fn - 34: 00000000000005b0 0 NOTYPE LOCAL DEFAULT 11 $x - 35: 000000000000078c 0 NOTYPE LOCAL DEFAULT 14 $x - 36: 0000000000000000 0 FILE LOCAL DEFAULT ABS crtn.o - 37: 00000000000005c0 0 NOTYPE LOCAL DEFAULT 11 $x - 38: 0000000000000798 0 NOTYPE LOCAL DEFAULT 14 $x - 39: 0000000000000000 0 FILE LOCAL DEFAULT ABS crtstuff.c - 40: 0000000000000690 0 NOTYPE LOCAL DEFAULT 13 $x - 41: 0000000000000690 0 FUNC LOCAL DEFAULT 13 deregister_tm_clones - 42: 00000000000006c0 0 FUNC LOCAL DEFAULT 13 register_tm_clones - 43: 0000000000011008 0 NOTYPE LOCAL DEFAULT 22 $d - 44: 0000000000000700 0 FUNC LOCAL DEFAULT 13 __do_global_dtors_aux - 45: 0000000000011010 1 OBJECT LOCAL DEFAULT 23 completed.0 - 46: 0000000000010d90 0 NOTYPE LOCAL DEFAULT 19 $d - 47: 0000000000010d90 0 OBJECT LOCAL DEFAULT 19 __do_global_dtors_aux_fini_array_entry - 48: 0000000000000750 0 FUNC LOCAL DEFAULT 13 frame_dummy - 49: 0000000000010d88 0 NOTYPE LOCAL DEFAULT 18 $d - 50: 0000000000010d88 0 OBJECT LOCAL DEFAULT 18 __frame_dummy_init_array_entry - 51: 0000000000000808 0 NOTYPE LOCAL DEFAULT 17 $d - 52: 0000000000011010 0 NOTYPE LOCAL DEFAULT 23 $d - 53: 0000000000000000 0 FILE LOCAL DEFAULT ABS basic_sec_policy_read.c - 54: 0000000000011014 0 NOTYPE LOCAL DEFAULT 23 $d - 55: 0000000000000754 0 NOTYPE LOCAL DEFAULT 13 $x - 56: 0000000000000868 0 NOTYPE LOCAL DEFAULT 17 $d - 57: 0000000000000000 0 FILE LOCAL DEFAULT ABS crtstuff.c - 58: 0000000000000880 0 NOTYPE LOCAL DEFAULT 17 $d - 59: 0000000000000880 0 OBJECT LOCAL DEFAULT 17 __FRAME_END__ - 60: 0000000000000000 0 FILE LOCAL DEFAULT ABS - 61: 0000000000010d98 0 OBJECT LOCAL DEFAULT ABS _DYNAMIC - 62: 00000000000007a4 0 NOTYPE LOCAL DEFAULT 16 __GNU_EH_FRAME_HDR - 63: 0000000000010fc0 0 OBJECT LOCAL DEFAULT ABS _GLOBAL_OFFSET_TABLE_ - 64: 00000000000005d0 0 NOTYPE LOCAL DEFAULT 12 $x - 65: 0000000000000000 0 FUNC GLOBAL DEFAULT UND __libc_start_main@GLIBC_2.34 - 66: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_deregisterTMCloneTable - 67: 0000000000011000 0 NOTYPE WEAK DEFAULT 22 data_start - 68: 0000000000011010 0 NOTYPE GLOBAL DEFAULT 23 __bss_start__ - 69: 0000000000000000 0 FUNC WEAK DEFAULT UND __cxa_finalize@GLIBC_2.17 - 70: 0000000000011020 0 NOTYPE GLOBAL DEFAULT 23 _bss_end__ - 71: 0000000000011010 0 NOTYPE GLOBAL DEFAULT 22 _edata - 72: 0000000000011018 4 OBJECT GLOBAL DEFAULT 23 z - 73: 0000000000011014 4 OBJECT GLOBAL DEFAULT 23 x - 74: 000000000000078c 0 FUNC GLOBAL HIDDEN 14 _fini - 75: 0000000000011020 0 NOTYPE GLOBAL DEFAULT 23 __bss_end__ - 76: 0000000000011000 0 NOTYPE GLOBAL DEFAULT 22 __data_start - 77: 0000000000000000 0 NOTYPE WEAK DEFAULT UND __gmon_start__ - 78: 0000000000011008 0 OBJECT GLOBAL HIDDEN 22 __dso_handle - 79: 0000000000000000 0 FUNC GLOBAL DEFAULT UND abort@GLIBC_2.17 - 80: 00000000000007a0 4 OBJECT GLOBAL DEFAULT 15 _IO_stdin_used - 81: 0000000000011020 0 NOTYPE GLOBAL DEFAULT 23 _end - 82: 0000000000000640 52 FUNC GLOBAL DEFAULT 13 _start - 83: 0000000000011020 0 NOTYPE GLOBAL DEFAULT 23 __end__ - 84: 0000000000011010 0 NOTYPE GLOBAL DEFAULT 23 __bss_start - 85: 0000000000000754 56 FUNC GLOBAL DEFAULT 13 main - 86: 0000000000011010 0 OBJECT GLOBAL HIDDEN 22 __TMC_END__ - 87: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_registerTMCloneTable - 88: 00000000000005b0 0 FUNC GLOBAL HIDDEN 11 _init diff --git a/src/test/correct/basic_sec_policy_read/gcc_pic/basic_sec_policy_read_gtirb.expected b/src/test/correct/basic_sec_policy_read/gcc_pic/basic_sec_policy_read_gtirb.expected index 28f39ef29..8e6b8b8f9 100644 --- a/src/test/correct/basic_sec_policy_read/gcc_pic/basic_sec_policy_read_gtirb.expected +++ b/src/test/correct/basic_sec_policy_read/gcc_pic/basic_sec_policy_read_gtirb.expected @@ -91,7 +91,7 @@ implementation {:extern} guarantee_reflexive() assert (memory_load32_le(mem, $z_addr) == memory_load32_le(mem, $z_addr)); } -procedure main_1876(); +procedure main(); modifies CF, Gamma_CF, Gamma_NF, Gamma_R0, Gamma_R31, Gamma_VF, Gamma_ZF, Gamma_mem, Gamma_stack, NF, R0, R31, VF, ZF, mem, stack; free requires (memory_load64_le(mem, 69632bv64) == 0bv64); free requires (memory_load64_le(mem, 69640bv64) == 69640bv64); @@ -112,67 +112,67 @@ procedure main_1876(); free ensures (memory_load64_le(mem, 69616bv64) == 1876bv64); free ensures (memory_load64_le(mem, 69640bv64) == 69640bv64); -implementation main_1876() +implementation main() { - var Cse0__5_1_8: bv32; - var Gamma_Cse0__5_1_8: bool; - var Gamma_load3: bool; - var Gamma_load4: bool; - var Gamma_load5: bool; - var Gamma_load6: bool; - var Gamma_load7: bool; - var load3: bv32; - var load4: bv64; - var load5: bv32; - var load6: bv64; - var load7: bv32; - main_1876__0__c_xQDd7dTMmXdcuFG3bPhA: - assume {:captureState "main_1876__0__c_xQDd7dTMmXdcuFG3bPhA"} true; + var $load3: bv32; + var $load4: bv64; + var $load5: bv32; + var $load6: bv64; + var $load7: bv32; + var Cse0__5$1$8: bv32; + var Gamma_$load3: bool; + var Gamma_$load4: bool; + var Gamma_$load5: bool; + var Gamma_$load6: bool; + var Gamma_$load7: bool; + var Gamma_Cse0__5$1$8: bool; + $main$__0__$c_xQDd7dTMmXdcuFG3bPhA: + assume {:captureState "$main$__0__$c_xQDd7dTMmXdcuFG3bPhA"} true; R31, Gamma_R31 := bvadd64(R31, 18446744073709551600bv64), Gamma_R31; R0, Gamma_R0 := 65536bv64, true; call rely(); - load4, Gamma_load4 := memory_load64_le(mem, bvadd64(R0, 4064bv64)), (gamma_load64(Gamma_mem, bvadd64(R0, 4064bv64)) || L(mem, bvadd64(R0, 4064bv64))); - R0, Gamma_R0 := load4, Gamma_load4; + $load4, Gamma_$load4 := memory_load64_le(mem, bvadd64(R0, 4064bv64)), (gamma_load64(Gamma_mem, bvadd64(R0, 4064bv64)) || L(mem, bvadd64(R0, 4064bv64))); + R0, Gamma_R0 := $load4, Gamma_$load4; call rely(); - load5, Gamma_load5 := memory_load32_le(mem, R0), (gamma_load32(Gamma_mem, R0) || L(mem, R0)); - R0, Gamma_R0 := zero_extend32_32(load5), Gamma_load5; + $load5, Gamma_$load5 := memory_load32_le(mem, R0), (gamma_load32(Gamma_mem, R0) || L(mem, R0)); + R0, Gamma_R0 := zero_extend32_32($load5), Gamma_$load5; stack, Gamma_stack := memory_store32_le(stack, bvadd64(R31, 12bv64), R0[32:0]), gamma_store32(Gamma_stack, bvadd64(R31, 12bv64), Gamma_R0); - assume {:captureState "1892_0"} true; + assume {:captureState "1892$0"} true; R0, Gamma_R0 := 65536bv64, true; call rely(); - load6, Gamma_load6 := memory_load64_le(mem, bvadd64(R0, 4056bv64)), (gamma_load64(Gamma_mem, bvadd64(R0, 4056bv64)) || L(mem, bvadd64(R0, 4056bv64))); - R0, Gamma_R0 := load6, Gamma_load6; + $load6, Gamma_$load6 := memory_load64_le(mem, bvadd64(R0, 4056bv64)), (gamma_load64(Gamma_mem, bvadd64(R0, 4056bv64)) || L(mem, bvadd64(R0, 4056bv64))); + R0, Gamma_R0 := $load6, Gamma_$load6; call rely(); - load7, Gamma_load7 := memory_load32_le(mem, R0), (gamma_load32(Gamma_mem, R0) || L(mem, R0)); - R0, Gamma_R0 := zero_extend32_32(load7), Gamma_load7; - Cse0__5_1_8, Gamma_Cse0__5_1_8 := bvadd32(R0[32:0], 0bv32), Gamma_R0; - VF, Gamma_VF := bvnot1(bvcomp32(Cse0__5_1_8, Cse0__5_1_8)), Gamma_Cse0__5_1_8; - CF, Gamma_CF := bvnot1(bvcomp33(zero_extend1_32(Cse0__5_1_8), bvadd33(zero_extend1_32(R0[32:0]), 4294967296bv33))), (Gamma_R0 && Gamma_Cse0__5_1_8); - ZF, Gamma_ZF := bvcomp32(Cse0__5_1_8, 0bv32), Gamma_Cse0__5_1_8; - NF, Gamma_NF := Cse0__5_1_8[32:31], Gamma_Cse0__5_1_8; + $load7, Gamma_$load7 := memory_load32_le(mem, R0), (gamma_load32(Gamma_mem, R0) || L(mem, R0)); + R0, Gamma_R0 := zero_extend32_32($load7), Gamma_$load7; + Cse0__5$1$8, Gamma_Cse0__5$1$8 := bvadd32(R0[32:0], 0bv32), Gamma_R0; + VF, Gamma_VF := bvnot1(bvcomp32(Cse0__5$1$8, Cse0__5$1$8)), Gamma_Cse0__5$1$8; + CF, Gamma_CF := bvnot1(bvcomp33(zero_extend1_32(Cse0__5$1$8), bvadd33(zero_extend1_32(R0[32:0]), 4294967296bv33))), (Gamma_R0 && Gamma_Cse0__5$1$8); + ZF, Gamma_ZF := bvcomp32(Cse0__5$1$8, 0bv32), Gamma_Cse0__5$1$8; + NF, Gamma_NF := Cse0__5$1$8[32:31], Gamma_Cse0__5$1$8; assert Gamma_ZF; - goto main_1876__0__c_xQDd7dTMmXdcuFG3bPhA_goto_main_1876__2__GiBIfuJeR2SduseX6HGFYw, main_1876__0__c_xQDd7dTMmXdcuFG3bPhA_goto_main_1876__1__kAMxpbl8Q2GFrZSNGYpqAA; - main_1876__0__c_xQDd7dTMmXdcuFG3bPhA_goto_main_1876__1__kAMxpbl8Q2GFrZSNGYpqAA: - assume {:captureState "main_1876__0__c_xQDd7dTMmXdcuFG3bPhA_goto_main_1876__1__kAMxpbl8Q2GFrZSNGYpqAA"} true; - assume (!(ZF == 1bv1)); + goto $main$__0__$c_xQDd7dTMmXdcuFG3bPhA_goto_$main$__2__$GiBIfuJeR2SduseX6HGFYw, $main$__0__$c_xQDd7dTMmXdcuFG3bPhA_goto_$main$__1__$kAMxpbl8Q2GFrZSNGYpqAA; + $main$__1__$kAMxpbl8Q2GFrZSNGYpqAA: + assume {:captureState "$main$__1__$kAMxpbl8Q2GFrZSNGYpqAA"} true; stack, Gamma_stack := memory_store32_le(stack, bvadd64(R31, 12bv64), 0bv32), gamma_store32(Gamma_stack, bvadd64(R31, 12bv64), true); - assume {:captureState "1916_0"} true; - goto main_1876__1__kAMxpbl8Q2GFrZSNGYpqAA; - main_1876__1__kAMxpbl8Q2GFrZSNGYpqAA: - assume {:captureState "main_1876__1__kAMxpbl8Q2GFrZSNGYpqAA"} true; - goto main_1876__2__GiBIfuJeR2SduseX6HGFYw; - main_1876__0__c_xQDd7dTMmXdcuFG3bPhA_goto_main_1876__2__GiBIfuJeR2SduseX6HGFYw: - assume {:captureState "main_1876__0__c_xQDd7dTMmXdcuFG3bPhA_goto_main_1876__2__GiBIfuJeR2SduseX6HGFYw"} true; - assume (ZF == 1bv1); - goto main_1876__2__GiBIfuJeR2SduseX6HGFYw; - main_1876__2__GiBIfuJeR2SduseX6HGFYw: - assume {:captureState "main_1876__2__GiBIfuJeR2SduseX6HGFYw"} true; - load3, Gamma_load3 := memory_load32_le(stack, bvadd64(R31, 12bv64)), gamma_load32(Gamma_stack, bvadd64(R31, 12bv64)); - R0, Gamma_R0 := zero_extend32_32(load3), Gamma_load3; + assume {:captureState "1916$0"} true; + goto $main$__2__$GiBIfuJeR2SduseX6HGFYw; + $main$__2__$GiBIfuJeR2SduseX6HGFYw: + assume {:captureState "$main$__2__$GiBIfuJeR2SduseX6HGFYw"} true; + $load3, Gamma_$load3 := memory_load32_le(stack, bvadd64(R31, 12bv64)), gamma_load32(Gamma_stack, bvadd64(R31, 12bv64)); + R0, Gamma_R0 := zero_extend32_32($load3), Gamma_$load3; R31, Gamma_R31 := bvadd64(R31, 16bv64), Gamma_R31; - goto main_1876_basil_return; - main_1876_basil_return: - assume {:captureState "main_1876_basil_return"} true; + goto main_basil_return; + $main$__0__$c_xQDd7dTMmXdcuFG3bPhA_goto_$main$__2__$GiBIfuJeR2SduseX6HGFYw: + assume {:captureState "$main$__0__$c_xQDd7dTMmXdcuFG3bPhA_goto_$main$__2__$GiBIfuJeR2SduseX6HGFYw"} true; + assume (ZF == 1bv1); + goto $main$__2__$GiBIfuJeR2SduseX6HGFYw; + $main$__0__$c_xQDd7dTMmXdcuFG3bPhA_goto_$main$__1__$kAMxpbl8Q2GFrZSNGYpqAA: + assume {:captureState "$main$__0__$c_xQDd7dTMmXdcuFG3bPhA_goto_$main$__1__$kAMxpbl8Q2GFrZSNGYpqAA"} true; + assume (!(ZF == 1bv1)); + goto $main$__1__$kAMxpbl8Q2GFrZSNGYpqAA; + main_basil_return: + assume {:captureState "main_basil_return"} true; return; } diff --git a/src/test/correct/basic_sec_policy_write/clang/basic_sec_policy_write.adt b/src/test/correct/basic_sec_policy_write/clang/basic_sec_policy_write.adt deleted file mode 100644 index ea31c54f7..000000000 --- a/src/test/correct/basic_sec_policy_write/clang/basic_sec_policy_write.adt +++ /dev/null @@ -1,516 +0,0 @@ -Project(Attrs([Attr("filename","\"clang/basic_sec_policy_write.out\""), -Attr("image-specification","(declare abi (name str))\n(declare arch (name str))\n(declare base-address (addr int))\n(declare bias (off int))\n(declare bits (size int))\n(declare code-region (addr int) (size int) (off int))\n(declare code-start (addr int))\n(declare entry-point (addr int))\n(declare external-reference (addr int) (name str))\n(declare format (name str))\n(declare is-executable (flag bool))\n(declare is-little-endian (flag bool))\n(declare llvm:base-address (addr int))\n(declare llvm:code-entry (name str) (off int) (size int))\n(declare llvm:coff-import-library (name str))\n(declare llvm:coff-virtual-section-header (name str) (addr int) (size int))\n(declare llvm:elf-program-header (name str) (off int) (size int))\n(declare llvm:elf-program-header-flags (name str) (ld bool) (r bool) \n (w bool) (x bool))\n(declare llvm:elf-virtual-program-header (name str) (addr int) (size int))\n(declare llvm:entry-point (addr int))\n(declare llvm:macho-symbol (name str) (value int))\n(declare llvm:name-reference (at int) (name str))\n(declare llvm:relocation (at int) (addr int))\n(declare llvm:section-entry (name str) (addr int) (size int) (off int))\n(declare llvm:section-flags (name str) (r bool) (w bool) (x bool))\n(declare llvm:segment-command (name str) (off int) (size int))\n(declare llvm:segment-command-flags (name str) (r bool) (w bool) (x bool))\n(declare llvm:symbol-entry (name str) (addr int) (size int) (off int)\n (value int))\n(declare llvm:virtual-segment-command (name str) (addr int) (size int))\n(declare mapped (addr int) (size int) (off int))\n(declare named-region (addr int) (size int) (name str))\n(declare named-symbol (addr int) (name str))\n(declare require (name str))\n(declare section (addr int) (size int))\n(declare segment (addr int) (size int) (r bool) (w bool) (x bool))\n(declare subarch (name str))\n(declare symbol-chunk (addr int) (size int) (root int))\n(declare symbol-value (addr int) (value int))\n(declare system (name str))\n(declare vendor (name str))\n\n(abi unknown)\n(arch aarch64)\n(base-address 0)\n(bias 0)\n(bits 64)\n(code-region 1868 20 1868)\n(code-region 1536 332 1536)\n(code-region 1440 96 1440)\n(code-region 1408 24 1408)\n(code-start 1588)\n(code-start 1536)\n(code-start 1812)\n(entry-point 1536)\n(external-reference 69568 _ITM_deregisterTMCloneTable)\n(external-reference 69576 __cxa_finalize)\n(external-reference 69584 __gmon_start__)\n(external-reference 69600 _ITM_registerTMCloneTable)\n(external-reference 69632 __libc_start_main)\n(external-reference 69640 __cxa_finalize)\n(external-reference 69648 __gmon_start__)\n(external-reference 69656 abort)\n(format elf)\n(is-executable true)\n(is-little-endian true)\n(llvm:base-address 0)\n(llvm:code-entry abort 0 0)\n(llvm:code-entry __cxa_finalize 0 0)\n(llvm:code-entry __libc_start_main 0 0)\n(llvm:code-entry _init 1408 0)\n(llvm:code-entry main 1812 56)\n(llvm:code-entry _start 1536 52)\n(llvm:code-entry abort@GLIBC_2.17 0 0)\n(llvm:code-entry _fini 1868 0)\n(llvm:code-entry __cxa_finalize@GLIBC_2.17 0 0)\n(llvm:code-entry __libc_start_main@GLIBC_2.34 0 0)\n(llvm:code-entry frame_dummy 1808 0)\n(llvm:code-entry __do_global_dtors_aux 1728 0)\n(llvm:code-entry register_tm_clones 1664 0)\n(llvm:code-entry deregister_tm_clones 1616 0)\n(llvm:code-entry call_weak_fn 1588 20)\n(llvm:code-entry .fini 1868 20)\n(llvm:code-entry .text 1536 332)\n(llvm:code-entry .plt 1440 96)\n(llvm:code-entry .init 1408 24)\n(llvm:elf-program-header 08 3528 568)\n(llvm:elf-program-header 07 0 0)\n(llvm:elf-program-header 06 1892 60)\n(llvm:elf-program-header 05 596 68)\n(llvm:elf-program-header 04 3544 480)\n(llvm:elf-program-header 03 3528 616)\n(llvm:elf-program-header 02 0 2136)\n(llvm:elf-program-header 01 568 27)\n(llvm:elf-program-header 00 64 504)\n(llvm:elf-program-header-flags 08 false true false false)\n(llvm:elf-program-header-flags 07 false true true false)\n(llvm:elf-program-header-flags 06 false true false false)\n(llvm:elf-program-header-flags 05 false true false false)\n(llvm:elf-program-header-flags 04 false true true false)\n(llvm:elf-program-header-flags 03 true true true false)\n(llvm:elf-program-header-flags 02 true true false true)\n(llvm:elf-program-header-flags 01 false true false false)\n(llvm:elf-program-header-flags 00 false true false false)\n(llvm:elf-virtual-program-header 08 69064 568)\n(llvm:elf-virtual-program-header 07 0 0)\n(llvm:elf-virtual-program-header 06 1892 60)\n(llvm:elf-virtual-program-header 05 596 68)\n(llvm:elf-virtual-program-header 04 69080 480)\n(llvm:elf-virtual-program-header 03 69064 632)\n(llvm:elf-virtual-program-header 02 0 2136)\n(llvm:elf-virtual-program-header 01 568 27)\n(llvm:elf-virtual-program-header 00 64 504)\n(llvm:entry-point 1536)\n(llvm:name-reference 69656 abort)\n(llvm:name-reference 69648 __gmon_start__)\n(llvm:name-reference 69640 __cxa_finalize)\n(llvm:name-reference 69632 __libc_start_main)\n(llvm:name-reference 69600 _ITM_registerTMCloneTable)\n(llvm:name-reference 69584 __gmon_start__)\n(llvm:name-reference 69576 __cxa_finalize)\n(llvm:name-reference 69568 _ITM_deregisterTMCloneTable)\n(llvm:section-entry .shstrtab 0 259 6980)\n(llvm:section-entry .strtab 0 580 6400)\n(llvm:section-entry .symtab 0 2184 4216)\n(llvm:section-entry .comment 0 71 4144)\n(llvm:section-entry .bss 69680 16 4144)\n(llvm:section-entry .data 69664 16 4128)\n(llvm:section-entry .got.plt 69608 56 4072)\n(llvm:section-entry .got 69560 48 4024)\n(llvm:section-entry .dynamic 69080 480 3544)\n(llvm:section-entry .fini_array 69072 8 3536)\n(llvm:section-entry .init_array 69064 8 3528)\n(llvm:section-entry .eh_frame 1952 184 1952)\n(llvm:section-entry .eh_frame_hdr 1892 60 1892)\n(llvm:section-entry .rodata 1888 4 1888)\n(llvm:section-entry .fini 1868 20 1868)\n(llvm:section-entry .text 1536 332 1536)\n(llvm:section-entry .plt 1440 96 1440)\n(llvm:section-entry .init 1408 24 1408)\n(llvm:section-entry .rela.plt 1312 96 1312)\n(llvm:section-entry .rela.dyn 1120 192 1120)\n(llvm:section-entry .gnu.version_r 1072 48 1072)\n(llvm:section-entry .gnu.version 1054 18 1054)\n(llvm:section-entry .dynstr 912 141 912)\n(llvm:section-entry .dynsym 696 216 696)\n(llvm:section-entry .gnu.hash 664 28 664)\n(llvm:section-entry .note.ABI-tag 632 32 632)\n(llvm:section-entry .note.gnu.build-id 596 36 596)\n(llvm:section-entry .interp 568 27 568)\n(llvm:section-flags .shstrtab true false false)\n(llvm:section-flags .strtab true false false)\n(llvm:section-flags .symtab true false false)\n(llvm:section-flags .comment true false false)\n(llvm:section-flags .bss true true false)\n(llvm:section-flags .data true true false)\n(llvm:section-flags .got.plt true true false)\n(llvm:section-flags .got true true false)\n(llvm:section-flags .dynamic true true false)\n(llvm:section-flags .fini_array true true false)\n(llvm:section-flags .init_array true true false)\n(llvm:section-flags .eh_frame true false false)\n(llvm:section-flags .eh_frame_hdr true false false)\n(llvm:section-flags .rodata true false false)\n(llvm:section-flags .fini true false true)\n(llvm:section-flags .text true false true)\n(llvm:section-flags .plt true false true)\n(llvm:section-flags .init true false true)\n(llvm:section-flags .rela.plt true false false)\n(llvm:section-flags .rela.dyn true false false)\n(llvm:section-flags .gnu.version_r true false false)\n(llvm:section-flags .gnu.version true false false)\n(llvm:section-flags .dynstr true false false)\n(llvm:section-flags .dynsym true false false)\n(llvm:section-flags .gnu.hash true false false)\n(llvm:section-flags .note.ABI-tag true false false)\n(llvm:section-flags .note.gnu.build-id true false false)\n(llvm:section-flags .interp true false false)\n(llvm:symbol-entry abort 0 0 0 0)\n(llvm:symbol-entry __cxa_finalize 0 0 0 0)\n(llvm:symbol-entry __libc_start_main 0 0 0 0)\n(llvm:symbol-entry _init 1408 0 1408 1408)\n(llvm:symbol-entry main 1812 56 1812 1812)\n(llvm:symbol-entry _start 1536 52 1536 1536)\n(llvm:symbol-entry abort@GLIBC_2.17 0 0 0 0)\n(llvm:symbol-entry _fini 1868 0 1868 1868)\n(llvm:symbol-entry __cxa_finalize@GLIBC_2.17 0 0 0 0)\n(llvm:symbol-entry __libc_start_main@GLIBC_2.34 0 0 0 0)\n(llvm:symbol-entry frame_dummy 1808 0 1808 1808)\n(llvm:symbol-entry __do_global_dtors_aux 1728 0 1728 1728)\n(llvm:symbol-entry register_tm_clones 1664 0 1664 1664)\n(llvm:symbol-entry deregister_tm_clones 1616 0 1616 1616)\n(llvm:symbol-entry call_weak_fn 1588 20 1588 1588)\n(mapped 0 2136 0)\n(mapped 69064 616 3528)\n(named-region 0 2136 02)\n(named-region 69064 632 03)\n(named-region 568 27 .interp)\n(named-region 596 36 .note.gnu.build-id)\n(named-region 632 32 .note.ABI-tag)\n(named-region 664 28 .gnu.hash)\n(named-region 696 216 .dynsym)\n(named-region 912 141 .dynstr)\n(named-region 1054 18 .gnu.version)\n(named-region 1072 48 .gnu.version_r)\n(named-region 1120 192 .rela.dyn)\n(named-region 1312 96 .rela.plt)\n(named-region 1408 24 .init)\n(named-region 1440 96 .plt)\n(named-region 1536 332 .text)\n(named-region 1868 20 .fini)\n(named-region 1888 4 .rodata)\n(named-region 1892 60 .eh_frame_hdr)\n(named-region 1952 184 .eh_frame)\n(named-region 69064 8 .init_array)\n(named-region 69072 8 .fini_array)\n(named-region 69080 480 .dynamic)\n(named-region 69560 48 .got)\n(named-region 69608 56 .got.plt)\n(named-region 69664 16 .data)\n(named-region 69680 16 .bss)\n(named-region 0 71 .comment)\n(named-region 0 2184 .symtab)\n(named-region 0 580 .strtab)\n(named-region 0 259 .shstrtab)\n(named-symbol 1588 call_weak_fn)\n(named-symbol 1616 deregister_tm_clones)\n(named-symbol 1664 register_tm_clones)\n(named-symbol 1728 __do_global_dtors_aux)\n(named-symbol 1808 frame_dummy)\n(named-symbol 0 __libc_start_main@GLIBC_2.34)\n(named-symbol 0 __cxa_finalize@GLIBC_2.17)\n(named-symbol 1868 _fini)\n(named-symbol 0 abort@GLIBC_2.17)\n(named-symbol 1536 _start)\n(named-symbol 1812 main)\n(named-symbol 1408 _init)\n(named-symbol 0 __libc_start_main)\n(named-symbol 0 __cxa_finalize)\n(named-symbol 0 abort)\n(require libc.so.6)\n(section 568 27)\n(section 596 36)\n(section 632 32)\n(section 664 28)\n(section 696 216)\n(section 912 141)\n(section 1054 18)\n(section 1072 48)\n(section 1120 192)\n(section 1312 96)\n(section 1408 24)\n(section 1440 96)\n(section 1536 332)\n(section 1868 20)\n(section 1888 4)\n(section 1892 60)\n(section 1952 184)\n(section 69064 8)\n(section 69072 8)\n(section 69080 480)\n(section 69560 48)\n(section 69608 56)\n(section 69664 16)\n(section 69680 16)\n(section 0 71)\n(section 0 2184)\n(section 0 580)\n(section 0 259)\n(segment 0 2136 true false true)\n(segment 69064 632 true true false)\n(subarch v8)\n(symbol-chunk 1588 20 1588)\n(symbol-chunk 1536 52 1536)\n(symbol-chunk 1812 56 1812)\n(symbol-value 1588 1588)\n(symbol-value 1616 1616)\n(symbol-value 1664 1664)\n(symbol-value 1728 1728)\n(symbol-value 1808 1808)\n(symbol-value 1868 1868)\n(symbol-value 1536 1536)\n(symbol-value 1812 1812)\n(symbol-value 1408 1408)\n(symbol-value 0 0)\n(system \"\")\n(vendor \"\")\n"), -Attr("abi-name","\"aarch64-linux-gnu-elf\"")]), -Sections([Section(".shstrtab", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x00\x06\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x48\x1c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x38\x00\x09\x00\x40\x00\x1d\x00\x1c\x00\x06\x00\x00\x00\x04\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x04\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x58\x08\x00\x00\x00\x00\x00\x00\x58\x08\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x01\x00\x00\x00\x06\x00\x00\x00\xc8\x0d\x00\x00\x00\x00\x00\x00\xc8\x0d\x01\x00\x00\x00\x00\x00\xc8\x0d\x01"), -Section(".strtab", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x00\x06\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x48\x1c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x38\x00\x09\x00\x40\x00\x1d\x00\x1c\x00\x06\x00\x00\x00\x04\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x04\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x58\x08\x00\x00\x00\x00\x00\x00\x58\x08\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x01\x00\x00\x00\x06\x00\x00\x00\xc8\x0d\x00\x00\x00\x00\x00\x00\xc8\x0d\x01\x00\x00\x00\x00\x00\xc8\x0d\x01\x00\x00\x00\x00\x00\x68\x02\x00\x00\x00\x00\x00\x00\x78\x02\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x02\x00\x00\x00\x06\x00\x00\x00\xd8\x0d\x00\x00\x00\x00\x00\x00\xd8\x0d\x01\x00\x00\x00\x00\x00\xd8\x0d\x01\x00\x00\x00\x00\x00\xe0\x01\x00\x00\x00\x00\x00\x00\xe0\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x04\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x50\xe5\x74\x64\x04\x00\x00\x00\x64\x07\x00\x00\x00\x00\x00\x00\x64\x07\x00\x00\x00\x00\x00\x00\x64\x07\x00\x00\x00\x00\x00\x00\x3c\x00\x00\x00\x00\x00\x00\x00\x3c\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x51\xe5\x74\x64\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x52\xe5\x74\x64\x04\x00\x00\x00\xc8\x0d\x00\x00\x00\x00\x00\x00\xc8\x0d\x01\x00\x00\x00\x00\x00\xc8\x0d\x01\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x2f\x6c\x69\x62\x2f\x6c\x64\x2d\x6c\x69\x6e\x75"), -Section(".comment", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x00\x06\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x48\x1c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x38\x00\x09\x00\x40\x00\x1d\x00\x1c\x00\x06\x00\x00\x00\x04\x00\x00"), -Section(".interp", 0x238, "\x2f\x6c\x69\x62\x2f\x6c\x64\x2d\x6c\x69\x6e\x75\x78\x2d\x61\x61\x72\x63\x68\x36\x34\x2e\x73\x6f\x2e\x31\x00"), -Section(".note.gnu.build-id", 0x254, "\x04\x00\x00\x00\x14\x00\x00\x00\x03\x00\x00\x00\x47\x4e\x55\x00\x1a\xbf\x2d\x5c\xb1\xa0\xae\x60\x86\x73\x19\xc1\x86\xe7\x8a\x07\x9b\x18\x39\xe9"), -Section(".note.ABI-tag", 0x278, "\x04\x00\x00\x00\x10\x00\x00\x00\x01\x00\x00\x00\x47\x4e\x55\x00\x00\x00\x00\x00\x03\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00"), -Section(".gnu.hash", 0x298, "\x01\x00\x00\x00\x01\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".dynsym", 0x2B8, "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x0b\x00\x80\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x17\x00\x20\x10\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x48\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x22\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x22\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x73\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".dynstr", 0x390, "\x00\x5f\x5f\x63\x78\x61\x5f\x66\x69\x6e\x61\x6c\x69\x7a\x65\x00\x5f\x5f\x6c\x69\x62\x63\x5f\x73\x74\x61\x72\x74\x5f\x6d\x61\x69\x6e\x00\x61\x62\x6f\x72\x74\x00\x6c\x69\x62\x63\x2e\x73\x6f\x2e\x36\x00\x47\x4c\x49\x42\x43\x5f\x32\x2e\x31\x37\x00\x47\x4c\x49\x42\x43\x5f\x32\x2e\x33\x34\x00\x5f\x49\x54\x4d\x5f\x64\x65\x72\x65\x67\x69\x73\x74\x65\x72\x54\x4d\x43\x6c\x6f\x6e\x65\x54\x61\x62\x6c\x65\x00\x5f\x5f\x67\x6d\x6f\x6e\x5f\x73\x74\x61\x72\x74\x5f\x5f\x00\x5f\x49\x54\x4d\x5f\x72\x65\x67\x69\x73\x74\x65\x72\x54\x4d\x43\x6c\x6f\x6e\x65\x54\x61\x62\x6c\x65\x00"), -Section(".gnu.version", 0x41E, "\x00\x00\x00\x00\x00\x00\x02\x00\x01\x00\x03\x00\x01\x00\x03\x00\x01\x00"), -Section(".gnu.version_r", 0x430, "\x01\x00\x02\x00\x28\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x97\x91\x96\x06\x00\x00\x03\x00\x32\x00\x00\x00\x10\x00\x00\x00\xb4\x91\x96\x06\x00\x00\x02\x00\x3d\x00\x00\x00\x00\x00\x00\x00"), -Section(".rela.dyn", 0x460, "\xc8\x0d\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x10\x07\x00\x00\x00\x00\x00\x00\xd0\x0d\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\xc0\x06\x00\x00\x00\x00\x00\x00\xd8\x0f\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x14\x07\x00\x00\x00\x00\x00\x00\x28\x10\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x28\x10\x01\x00\x00\x00\x00\x00\xc0\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xc8\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xd0\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe0\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".rela.plt", 0x520, "\x00\x10\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x08\x10\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x10\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x18\x10\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".init", 0x580, "\x1f\x20\x03\xd5\xfd\x7b\xbf\xa9\xfd\x03\x00\x91\x2a\x00\x00\x94\xfd\x7b\xc1\xa8\xc0\x03\x5f\xd6"), -Section(".plt", 0x5A0, "\xf0\x7b\xbf\xa9\x90\x00\x00\x90\x11\xfe\x47\xf9\x10\xe2\x3f\x91\x20\x02\x1f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x90\x00\x00\xb0\x11\x02\x40\xf9\x10\x02\x00\x91\x20\x02\x1f\xd6\x90\x00\x00\xb0\x11\x06\x40\xf9\x10\x22\x00\x91\x20\x02\x1f\xd6\x90\x00\x00\xb0\x11\x0a\x40\xf9\x10\x42\x00\x91\x20\x02\x1f\xd6\x90\x00\x00\xb0\x11\x0e\x40\xf9\x10\x62\x00\x91\x20\x02\x1f\xd6"), -Section(".text", 0x600, "\x1f\x20\x03\xd5\x1d\x00\x80\xd2\x1e\x00\x80\xd2\xe5\x03\x00\xaa\xe1\x03\x40\xf9\xe2\x23\x00\x91\xe6\x03\x00\x91\x80\x00\x00\x90\x00\xec\x47\xf9\x03\x00\x80\xd2\x04\x00\x80\xd2\xe5\xff\xff\x97\xf0\xff\xff\x97\x80\x00\x00\x90\x00\xe8\x47\xf9\x40\x00\x00\xb4\xe8\xff\xff\x17\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x80\x00\x00\xb0\x00\xc0\x00\x91\x81\x00\x00\xb0\x21\xc0\x00\x91\x3f\x00\x00\xeb\xc0\x00\x00\x54\x81\x00\x00\x90\x21\xe0\x47\xf9\x61\x00\x00\xb4\xf0\x03\x01\xaa\x00\x02\x1f\xd6\xc0\x03\x5f\xd6\x80\x00\x00\xb0\x00\xc0\x00\x91\x81\x00\x00\xb0\x21\xc0\x00\x91\x21\x00\x00\xcb\x22\xfc\x7f\xd3\x41\x0c\x81\x8b\x21\xfc\x41\x93\xc1\x00\x00\xb4\x82\x00\x00\x90\x42\xf0\x47\xf9\x62\x00\x00\xb4\xf0\x03\x02\xaa\x00\x02\x1f\xd6\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\xfd\x7b\xbe\xa9\xfd\x03\x00\x91\xf3\x0b\x00\xf9\x93\x00\x00\xb0\x60\xc2\x40\x39\x40\x01\x00\x35\x80\x00\x00\x90\x00\xe4\x47\xf9\x80\x00\x00\xb4\x80\x00\x00\xb0\x00\x14\x40\xf9\xb9\xff\xff\x97\xd8\xff\xff\x97\x20\x00\x80\x52\x60\xc2\x00\x39\xf3\x0b\x40\xf9\xfd\x7b\xc2\xa8\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\xdc\xff\xff\x17\xff\x43\x00\xd1\xe0\x0f\x00\xb9\x89\x00\x00\xb0\x28\x00\x80\x52\x28\x35\x00\xb9\xea\x0f\x40\xb9\x88\x00\x00\xb0\x0a\x39\x00\xb9\xe0\x03\x1f\x2a\x1f\x39\x00\xb9\x48\x00\x80\x52\x28\x35\x00\xb9\xff\x43\x00\x91\xc0\x03\x5f\xd6"), -Section(".fini", 0x74C, "\x1f\x20\x03\xd5\xfd\x7b\xbf\xa9\xfd\x03\x00\x91\xfd\x7b\xc1\xa8\xc0\x03\x5f\xd6"), -Section(".rodata", 0x760, "\x01\x00\x02\x00"), -Section(".eh_frame_hdr", 0x764, "\x01\x1b\x03\x3b\x38\x00\x00\x00\x06\x00\x00\x00\x9c\xfe\xff\xff\x50\x00\x00\x00\xec\xfe\xff\xff\x64\x00\x00\x00\x1c\xff\xff\xff\x78\x00\x00\x00\x5c\xff\xff\xff\x8c\x00\x00\x00\xac\xff\xff\xff\xb0\x00\x00\x00\xb0\xff\xff\xff\xd8\x00\x00\x00"), -Section(".eh_frame", 0x7A0, "\x10\x00\x00\x00\x00\x00\x00\x00\x01\x7a\x52\x00\x04\x78\x1e\x01\x1b\x0c\x1f\x00\x10\x00\x00\x00\x18\x00\x00\x00\x44\xfe\xff\xff\x34\x00\x00\x00\x00\x41\x07\x1e\x10\x00\x00\x00\x2c\x00\x00\x00\x80\xfe\xff\xff\x30\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x40\x00\x00\x00\x9c\xfe\xff\xff\x3c\x00\x00\x00\x00\x00\x00\x00\x20\x00\x00\x00\x54\x00\x00\x00\xc8\xfe\xff\xff\x48\x00\x00\x00\x00\x41\x0e\x20\x9d\x04\x9e\x03\x42\x93\x02\x4e\xde\xdd\xd3\x0e\x00\x00\x00\x00\x10\x00\x00\x00\x78\x00\x00\x00\xf4\xfe\xff\xff\x04\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x01\x7a\x52\x00\x01\x7c\x1e\x01\x1b\x0c\x1f\x00\x14\x00\x00\x00\x18\x00\x00\x00\xd0\xfe\xff\xff\x38\x00\x00\x00\x00\x44\x0e\x10\x70\x0e\x00\x00\x00\x00\x00\x00"), -Section(".fini_array", 0x10DD0, "\xc0\x06\x00\x00\x00\x00\x00\x00"), -Section(".dynamic", 0x10DD8, "\x01\x00\x00\x00\x00\x00\x00\x00\x28\x00\x00\x00\x00\x00\x00\x00\x0c\x00\x00\x00\x00\x00\x00\x00\x80\x05\x00\x00\x00\x00\x00\x00\x0d\x00\x00\x00\x00\x00\x00\x00\x4c\x07\x00\x00\x00\x00\x00\x00\x19\x00\x00\x00\x00\x00\x00\x00\xc8\x0d\x01\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x1a\x00\x00\x00\x00\x00\x00\x00\xd0\x0d\x01\x00\x00\x00\x00\x00\x1c\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\xf5\xfe\xff\x6f\x00\x00\x00\x00\x98\x02\x00\x00\x00\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x90\x03\x00\x00\x00\x00\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\xb8\x02\x00\x00\x00\x00\x00\x00\x0a\x00\x00\x00\x00\x00\x00\x00\x8d\x00\x00\x00\x00\x00\x00\x00\x0b\x00\x00\x00\x00\x00\x00\x00\x18\x00\x00\x00\x00\x00\x00\x00\x15\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\xe8\x0f\x01\x00\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x60\x00\x00\x00\x00\x00\x00\x00\x14\x00\x00\x00\x00\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x17\x00\x00\x00\x00\x00\x00\x00\x20\x05\x00\x00\x00\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x60\x04\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\xc0\x00\x00\x00\x00\x00\x00\x00\x09\x00\x00\x00\x00\x00\x00\x00\x18\x00\x00\x00\x00\x00\x00\x00\xfb\xff\xff\x6f\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\xfe\xff\xff\x6f\x00\x00\x00\x00\x30\x04\x00\x00\x00\x00\x00\x00\xff\xff\xff\x6f\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\xf0\xff\xff\x6f\x00\x00\x00\x00\x1e\x04\x00\x00\x00\x00\x00\x00\xf9\xff\xff\x6f\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".init_array", 0x10DC8, "\x10\x07\x00\x00\x00\x00\x00\x00"), -Section(".got", 0x10FB8, "\xd8\x0d\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x14\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".got.plt", 0x10FE8, "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xa0\x05\x00\x00\x00\x00\x00\x00\xa0\x05\x00\x00\x00\x00\x00\x00\xa0\x05\x00\x00\x00\x00\x00\x00\xa0\x05\x00\x00\x00\x00\x00\x00"), -Section(".data", 0x11020, "\x00\x00\x00\x00\x00\x00\x00\x00\x28\x10\x01\x00\x00\x00\x00\x00")]), -Memmap([Annotation(Region(0x0,0x857), Attr("segment","02 0 2136")), -Annotation(Region(0x600,0x633), Attr("symbol","\"_start\"")), -Annotation(Region(0x0,0x102), Attr("section","\".shstrtab\"")), -Annotation(Region(0x0,0x243), Attr("section","\".strtab\"")), -Annotation(Region(0x0,0x46), Attr("section","\".comment\"")), -Annotation(Region(0x238,0x252), Attr("section","\".interp\"")), -Annotation(Region(0x254,0x277), Attr("section","\".note.gnu.build-id\"")), -Annotation(Region(0x278,0x297), Attr("section","\".note.ABI-tag\"")), -Annotation(Region(0x298,0x2B3), Attr("section","\".gnu.hash\"")), -Annotation(Region(0x2B8,0x38F), Attr("section","\".dynsym\"")), -Annotation(Region(0x390,0x41C), Attr("section","\".dynstr\"")), -Annotation(Region(0x41E,0x42F), Attr("section","\".gnu.version\"")), -Annotation(Region(0x430,0x45F), Attr("section","\".gnu.version_r\"")), -Annotation(Region(0x460,0x51F), Attr("section","\".rela.dyn\"")), -Annotation(Region(0x520,0x57F), Attr("section","\".rela.plt\"")), -Annotation(Region(0x580,0x597), Attr("section","\".init\"")), -Annotation(Region(0x5A0,0x5FF), Attr("section","\".plt\"")), -Annotation(Region(0x580,0x597), Attr("code-region","()")), -Annotation(Region(0x5A0,0x5FF), Attr("code-region","()")), -Annotation(Region(0x600,0x633), Attr("symbol-info","_start 0x600 52")), -Annotation(Region(0x634,0x647), Attr("symbol","\"call_weak_fn\"")), -Annotation(Region(0x634,0x647), Attr("symbol-info","call_weak_fn 0x634 20")), -Annotation(Region(0x600,0x74B), Attr("section","\".text\"")), -Annotation(Region(0x600,0x74B), Attr("code-region","()")), -Annotation(Region(0x714,0x74B), Attr("symbol","\"main\"")), -Annotation(Region(0x714,0x74B), Attr("symbol-info","main 0x714 56")), -Annotation(Region(0x74C,0x75F), Attr("section","\".fini\"")), -Annotation(Region(0x74C,0x75F), Attr("code-region","()")), -Annotation(Region(0x760,0x763), Attr("section","\".rodata\"")), -Annotation(Region(0x764,0x79F), Attr("section","\".eh_frame_hdr\"")), -Annotation(Region(0x7A0,0x857), Attr("section","\".eh_frame\"")), -Annotation(Region(0x10DC8,0x1102F), Attr("segment","03 0x10DC8 632")), -Annotation(Region(0x10DD0,0x10DD7), Attr("section","\".fini_array\"")), -Annotation(Region(0x10DD8,0x10FB7), Attr("section","\".dynamic\"")), -Annotation(Region(0x10DC8,0x10DCF), Attr("section","\".init_array\"")), -Annotation(Region(0x10FB8,0x10FE7), Attr("section","\".got\"")), -Annotation(Region(0x10FE8,0x1101F), Attr("section","\".got.plt\"")), -Annotation(Region(0x11020,0x1102F), Attr("section","\".data\""))]), -Program(Tid(1_531, "%000005fb"), Attrs([]), - Subs([Sub(Tid(1_481, "@__cxa_finalize"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x5D0"), -Attr("stub","()")]), "__cxa_finalize", Args([Arg(Tid(1_532, "%000005fc"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("__cxa_finalize_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(881, "@__cxa_finalize"), - Attrs([Attr("address","0x5D0")]), Phis([]), -Defs([Def(Tid(1_129, "%00000469"), Attrs([Attr("address","0x5D0"), -Attr("insn","adrp x16, #69632")]), Var("R16",Imm(64)), Int(69632,64)), -Def(Tid(1_136, "%00000470"), Attrs([Attr("address","0x5D4"), -Attr("insn","ldr x17, [x16, #0x8]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(1_142, "%00000476"), Attrs([Attr("address","0x5D8"), -Attr("insn","add x16, x16, #0x8")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(8,64)))]), Jmps([Call(Tid(1_147, "%0000047b"), - Attrs([Attr("address","0x5DC"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), -Sub(Tid(1_482, "@__do_global_dtors_aux"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x6C0")]), - "__do_global_dtors_aux", Args([Arg(Tid(1_533, "%000005fd"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("__do_global_dtors_aux_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(646, "@__do_global_dtors_aux"), - Attrs([Attr("address","0x6C0")]), Phis([]), Defs([Def(Tid(650, "%0000028a"), - Attrs([Attr("address","0x6C0"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("#3",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(18446744073709551584,64))), -Def(Tid(656, "%00000290"), Attrs([Attr("address","0x6C0"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("#3",Imm(64)),Var("R29",Imm(64)),LittleEndian(),64)), -Def(Tid(662, "%00000296"), Attrs([Attr("address","0x6C0"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("#3",Imm(64)),Int(8,64)),Var("R30",Imm(64)),LittleEndian(),64)), -Def(Tid(666, "%0000029a"), Attrs([Attr("address","0x6C0"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("R31",Imm(64)), -Var("#3",Imm(64))), Def(Tid(672, "%000002a0"), - Attrs([Attr("address","0x6C4"), Attr("insn","mov x29, sp")]), - Var("R29",Imm(64)), Var("R31",Imm(64))), Def(Tid(680, "%000002a8"), - Attrs([Attr("address","0x6C8"), Attr("insn","str x19, [sp, #0x10]")]), - Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(16,64)),Var("R19",Imm(64)),LittleEndian(),64)), -Def(Tid(685, "%000002ad"), Attrs([Attr("address","0x6CC"), -Attr("insn","adrp x19, #69632")]), Var("R19",Imm(64)), Int(69632,64)), -Def(Tid(692, "%000002b4"), Attrs([Attr("address","0x6D0"), -Attr("insn","ldrb w0, [x19, #0x30]")]), Var("R0",Imm(64)), -UNSIGNED(64,Load(Var("mem",Mem(64,8)),PLUS(Var("R19",Imm(64)),Int(48,64)),LittleEndian(),8)))]), -Jmps([Goto(Tid(699, "%000002bb"), Attrs([Attr("address","0x6D4"), -Attr("insn","cbnz w0, #0x28")]), - NEQ(Extract(31,0,Var("R0",Imm(64))),Int(0,32)), -Direct(Tid(697, "%000002b9"))), Goto(Tid(1_521, "%000005f1"), Attrs([]), - Int(1,1), Direct(Tid(826, "%0000033a")))])), Blk(Tid(826, "%0000033a"), - Attrs([Attr("address","0x6D8")]), Phis([]), Defs([Def(Tid(829, "%0000033d"), - Attrs([Attr("address","0x6D8"), Attr("insn","adrp x0, #65536")]), - Var("R0",Imm(64)), Int(65536,64)), Def(Tid(836, "%00000344"), - Attrs([Attr("address","0x6DC"), Attr("insn","ldr x0, [x0, #0xfc8]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(4040,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(842, "%0000034a"), Attrs([Attr("address","0x6E0"), -Attr("insn","cbz x0, #0x10")]), EQ(Var("R0",Imm(64)),Int(0,64)), -Direct(Tid(840, "%00000348"))), Goto(Tid(1_522, "%000005f2"), Attrs([]), - Int(1,1), Direct(Tid(865, "%00000361")))])), Blk(Tid(865, "%00000361"), - Attrs([Attr("address","0x6E4")]), Phis([]), Defs([Def(Tid(868, "%00000364"), - Attrs([Attr("address","0x6E4"), Attr("insn","adrp x0, #69632")]), - Var("R0",Imm(64)), Int(69632,64)), Def(Tid(875, "%0000036b"), - Attrs([Attr("address","0x6E8"), Attr("insn","ldr x0, [x0, #0x28]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(40,64)),LittleEndian(),64)), -Def(Tid(880, "%00000370"), Attrs([Attr("address","0x6EC"), -Attr("insn","bl #-0x11c")]), Var("R30",Imm(64)), Int(1776,64))]), -Jmps([Call(Tid(883, "%00000373"), Attrs([Attr("address","0x6EC"), -Attr("insn","bl #-0x11c")]), Int(1,1), -(Direct(Tid(1_481, "@__cxa_finalize")),Direct(Tid(840, "%00000348"))))])), -Blk(Tid(840, "%00000348"), Attrs([Attr("address","0x6F0")]), Phis([]), -Defs([Def(Tid(848, "%00000350"), Attrs([Attr("address","0x6F0"), -Attr("insn","bl #-0xa0")]), Var("R30",Imm(64)), Int(1780,64))]), -Jmps([Call(Tid(850, "%00000352"), Attrs([Attr("address","0x6F0"), -Attr("insn","bl #-0xa0")]), Int(1,1), -(Direct(Tid(1_495, "@deregister_tm_clones")),Direct(Tid(852, "%00000354"))))])), -Blk(Tid(852, "%00000354"), Attrs([Attr("address","0x6F4")]), Phis([]), -Defs([Def(Tid(855, "%00000357"), Attrs([Attr("address","0x6F4"), -Attr("insn","mov w0, #0x1")]), Var("R0",Imm(64)), Int(1,64)), -Def(Tid(863, "%0000035f"), Attrs([Attr("address","0x6F8"), -Attr("insn","strb w0, [x19, #0x30]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R19",Imm(64)),Int(48,64)),Extract(7,0,Var("R0",Imm(64))),LittleEndian(),8))]), -Jmps([Goto(Tid(1_523, "%000005f3"), Attrs([]), Int(1,1), -Direct(Tid(697, "%000002b9")))])), Blk(Tid(697, "%000002b9"), - Attrs([Attr("address","0x6FC")]), Phis([]), Defs([Def(Tid(707, "%000002c3"), - Attrs([Attr("address","0x6FC"), Attr("insn","ldr x19, [sp, #0x10]")]), - Var("R19",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(16,64)),LittleEndian(),64)), -Def(Tid(714, "%000002ca"), Attrs([Attr("address","0x700"), -Attr("insn","ldp x29, x30, [sp], #0x20")]), Var("R29",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(719, "%000002cf"), Attrs([Attr("address","0x700"), -Attr("insn","ldp x29, x30, [sp], #0x20")]), Var("R30",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(723, "%000002d3"), Attrs([Attr("address","0x700"), -Attr("insn","ldp x29, x30, [sp], #0x20")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(32,64)))]), Jmps([Call(Tid(728, "%000002d8"), - Attrs([Attr("address","0x704"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), Sub(Tid(1_486, "@__libc_start_main"), - Attrs([Attr("c.proto","signed (*)(signed (*)(signed , char** , char** );* main, signed , char** , \nvoid* auxv)"), -Attr("address","0x5C0"), Attr("stub","()")]), "__libc_start_main", - Args([Arg(Tid(1_534, "%000005fe"), - Attrs([Attr("c.layout","**[ : 64]"), -Attr("c.data","Top:u64 ptr ptr"), -Attr("c.type","signed (*)(signed , char** , char** );*")]), - Var("__libc_start_main_main",Imm(64)), Var("R0",Imm(64)), In()), -Arg(Tid(1_535, "%000005ff"), Attrs([Attr("c.layout","[signed : 32]"), -Attr("c.data","Top:u32"), Attr("c.type","signed")]), - Var("__libc_start_main_arg2",Imm(32)), LOW(32,Var("R1",Imm(64))), In()), -Arg(Tid(1_536, "%00000600"), Attrs([Attr("c.layout","**[char : 8]"), -Attr("c.data","Top:u8 ptr ptr"), Attr("c.type","char**")]), - Var("__libc_start_main_arg3",Imm(64)), Var("R2",Imm(64)), Both()), -Arg(Tid(1_537, "%00000601"), Attrs([Attr("c.layout","*[ : 8]"), -Attr("c.data","{} ptr"), Attr("c.type","void*")]), - Var("__libc_start_main_auxv",Imm(64)), Var("R3",Imm(64)), Both()), -Arg(Tid(1_538, "%00000602"), Attrs([Attr("c.layout","[signed : 32]"), -Attr("c.data","Top:u32"), Attr("c.type","signed")]), - Var("__libc_start_main_result",Imm(32)), LOW(32,Var("R0",Imm(64))), -Out())]), Blks([Blk(Tid(479, "@__libc_start_main"), - Attrs([Attr("address","0x5C0")]), Phis([]), -Defs([Def(Tid(1_107, "%00000453"), Attrs([Attr("address","0x5C0"), -Attr("insn","adrp x16, #69632")]), Var("R16",Imm(64)), Int(69632,64)), -Def(Tid(1_114, "%0000045a"), Attrs([Attr("address","0x5C4"), -Attr("insn","ldr x17, [x16]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R16",Imm(64)),LittleEndian(),64)), -Def(Tid(1_120, "%00000460"), Attrs([Attr("address","0x5C8"), -Attr("insn","add x16, x16, #0x0")]), Var("R16",Imm(64)), -Var("R16",Imm(64)))]), Jmps([Call(Tid(1_125, "%00000465"), - Attrs([Attr("address","0x5CC"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), Sub(Tid(1_487, "@_fini"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x74C")]), - "_fini", Args([Arg(Tid(1_539, "%00000603"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("_fini_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(31, "@_fini"), - Attrs([Attr("address","0x74C")]), Phis([]), Defs([Def(Tid(37, "%00000025"), - Attrs([Attr("address","0x750"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("#0",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(18446744073709551600,64))), -Def(Tid(43, "%0000002b"), Attrs([Attr("address","0x750"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("#0",Imm(64)),Var("R29",Imm(64)),LittleEndian(),64)), -Def(Tid(49, "%00000031"), Attrs([Attr("address","0x750"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("#0",Imm(64)),Int(8,64)),Var("R30",Imm(64)),LittleEndian(),64)), -Def(Tid(53, "%00000035"), Attrs([Attr("address","0x750"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("R31",Imm(64)), -Var("#0",Imm(64))), Def(Tid(59, "%0000003b"), Attrs([Attr("address","0x754"), -Attr("insn","mov x29, sp")]), Var("R29",Imm(64)), Var("R31",Imm(64))), -Def(Tid(66, "%00000042"), Attrs([Attr("address","0x758"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R29",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(71, "%00000047"), Attrs([Attr("address","0x758"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R30",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(75, "%0000004b"), Attrs([Attr("address","0x758"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(16,64)))]), Jmps([Call(Tid(80, "%00000050"), - Attrs([Attr("address","0x75C"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), Sub(Tid(1_488, "@_init"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x580")]), - "_init", Args([Arg(Tid(1_540, "%00000604"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("_init_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(1_309, "@_init"), - Attrs([Attr("address","0x580")]), Phis([]), -Defs([Def(Tid(1_315, "%00000523"), Attrs([Attr("address","0x584"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("#5",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(18446744073709551600,64))), -Def(Tid(1_321, "%00000529"), Attrs([Attr("address","0x584"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("#5",Imm(64)),Var("R29",Imm(64)),LittleEndian(),64)), -Def(Tid(1_327, "%0000052f"), Attrs([Attr("address","0x584"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("#5",Imm(64)),Int(8,64)),Var("R30",Imm(64)),LittleEndian(),64)), -Def(Tid(1_331, "%00000533"), Attrs([Attr("address","0x584"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("R31",Imm(64)), -Var("#5",Imm(64))), Def(Tid(1_337, "%00000539"), - Attrs([Attr("address","0x588"), Attr("insn","mov x29, sp")]), - Var("R29",Imm(64)), Var("R31",Imm(64))), Def(Tid(1_342, "%0000053e"), - Attrs([Attr("address","0x58C"), Attr("insn","bl #0xa8")]), - Var("R30",Imm(64)), Int(1424,64))]), Jmps([Call(Tid(1_344, "%00000540"), - Attrs([Attr("address","0x58C"), Attr("insn","bl #0xa8")]), Int(1,1), -(Direct(Tid(1_493, "@call_weak_fn")),Direct(Tid(1_346, "%00000542"))))])), -Blk(Tid(1_346, "%00000542"), Attrs([Attr("address","0x590")]), Phis([]), -Defs([Def(Tid(1_351, "%00000547"), Attrs([Attr("address","0x590"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R29",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(1_356, "%0000054c"), Attrs([Attr("address","0x590"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R30",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(1_360, "%00000550"), Attrs([Attr("address","0x590"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(16,64)))]), Jmps([Call(Tid(1_365, "%00000555"), - Attrs([Attr("address","0x594"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), Sub(Tid(1_489, "@_start"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x600"), -Attr("stub","()"), Attr("entry-point","()")]), "_start", - Args([Arg(Tid(1_541, "%00000605"), Attrs([Attr("c.layout","[signed : 32]"), -Attr("c.data","Top:u32"), Attr("c.type","signed")]), - Var("_start_result",Imm(32)), LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(416, "@_start"), Attrs([Attr("address","0x600")]), Phis([]), -Defs([Def(Tid(421, "%000001a5"), Attrs([Attr("address","0x604"), -Attr("insn","mov x29, #0x0")]), Var("R29",Imm(64)), Int(0,64)), -Def(Tid(426, "%000001aa"), Attrs([Attr("address","0x608"), -Attr("insn","mov x30, #0x0")]), Var("R30",Imm(64)), Int(0,64)), -Def(Tid(432, "%000001b0"), Attrs([Attr("address","0x60C"), -Attr("insn","mov x5, x0")]), Var("R5",Imm(64)), Var("R0",Imm(64))), -Def(Tid(439, "%000001b7"), Attrs([Attr("address","0x610"), -Attr("insn","ldr x1, [sp]")]), Var("R1",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(445, "%000001bd"), Attrs([Attr("address","0x614"), -Attr("insn","add x2, sp, #0x8")]), Var("R2",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(8,64))), Def(Tid(451, "%000001c3"), - Attrs([Attr("address","0x618"), Attr("insn","mov x6, sp")]), - Var("R6",Imm(64)), Var("R31",Imm(64))), Def(Tid(456, "%000001c8"), - Attrs([Attr("address","0x61C"), Attr("insn","adrp x0, #65536")]), - Var("R0",Imm(64)), Int(65536,64)), Def(Tid(463, "%000001cf"), - Attrs([Attr("address","0x620"), Attr("insn","ldr x0, [x0, #0xfd8]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(4056,64)),LittleEndian(),64)), -Def(Tid(468, "%000001d4"), Attrs([Attr("address","0x624"), -Attr("insn","mov x3, #0x0")]), Var("R3",Imm(64)), Int(0,64)), -Def(Tid(473, "%000001d9"), Attrs([Attr("address","0x628"), -Attr("insn","mov x4, #0x0")]), Var("R4",Imm(64)), Int(0,64)), -Def(Tid(478, "%000001de"), Attrs([Attr("address","0x62C"), -Attr("insn","bl #-0x6c")]), Var("R30",Imm(64)), Int(1584,64))]), -Jmps([Call(Tid(481, "%000001e1"), Attrs([Attr("address","0x62C"), -Attr("insn","bl #-0x6c")]), Int(1,1), -(Direct(Tid(1_486, "@__libc_start_main")),Direct(Tid(483, "%000001e3"))))])), -Blk(Tid(483, "%000001e3"), Attrs([Attr("address","0x630")]), Phis([]), -Defs([Def(Tid(486, "%000001e6"), Attrs([Attr("address","0x630"), -Attr("insn","bl #-0x40")]), Var("R30",Imm(64)), Int(1588,64))]), -Jmps([Call(Tid(489, "%000001e9"), Attrs([Attr("address","0x630"), -Attr("insn","bl #-0x40")]), Int(1,1), -(Direct(Tid(1_492, "@abort")),Direct(Tid(1_524, "%000005f4"))))])), -Blk(Tid(1_524, "%000005f4"), Attrs([]), Phis([]), Defs([]), -Jmps([Call(Tid(1_525, "%000005f5"), Attrs([]), Int(1,1), -(Direct(Tid(1_493, "@call_weak_fn")),))]))])), Sub(Tid(1_492, "@abort"), - Attrs([Attr("noreturn","()"), Attr("c.proto","void (*)(void)"), -Attr("address","0x5F0"), Attr("stub","()")]), "abort", Args([]), -Blks([Blk(Tid(487, "@abort"), Attrs([Attr("address","0x5F0")]), Phis([]), -Defs([Def(Tid(1_173, "%00000495"), Attrs([Attr("address","0x5F0"), -Attr("insn","adrp x16, #69632")]), Var("R16",Imm(64)), Int(69632,64)), -Def(Tid(1_180, "%0000049c"), Attrs([Attr("address","0x5F4"), -Attr("insn","ldr x17, [x16, #0x18]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(24,64)),LittleEndian(),64)), -Def(Tid(1_186, "%000004a2"), Attrs([Attr("address","0x5F8"), -Attr("insn","add x16, x16, #0x18")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(24,64)))]), Jmps([Call(Tid(1_191, "%000004a7"), - Attrs([Attr("address","0x5FC"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), Sub(Tid(1_493, "@call_weak_fn"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x634")]), - "call_weak_fn", Args([Arg(Tid(1_542, "%00000606"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("call_weak_fn_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(491, "@call_weak_fn"), - Attrs([Attr("address","0x634")]), Phis([]), Defs([Def(Tid(494, "%000001ee"), - Attrs([Attr("address","0x634"), Attr("insn","adrp x0, #65536")]), - Var("R0",Imm(64)), Int(65536,64)), Def(Tid(501, "%000001f5"), - Attrs([Attr("address","0x638"), Attr("insn","ldr x0, [x0, #0xfd0]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(4048,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(507, "%000001fb"), Attrs([Attr("address","0x63C"), -Attr("insn","cbz x0, #0x8")]), EQ(Var("R0",Imm(64)),Int(0,64)), -Direct(Tid(505, "%000001f9"))), Goto(Tid(1_526, "%000005f6"), Attrs([]), - Int(1,1), Direct(Tid(945, "%000003b1")))])), Blk(Tid(505, "%000001f9"), - Attrs([Attr("address","0x644")]), Phis([]), Defs([]), -Jmps([Call(Tid(513, "%00000201"), Attrs([Attr("address","0x644"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))])), -Blk(Tid(945, "%000003b1"), Attrs([Attr("address","0x640")]), Phis([]), -Defs([]), Jmps([Goto(Tid(948, "%000003b4"), Attrs([Attr("address","0x640"), -Attr("insn","b #-0x60")]), Int(1,1), Direct(Tid(946, "@__gmon_start__")))])), -Blk(Tid(946, "@__gmon_start__"), Attrs([Attr("address","0x5E0")]), Phis([]), -Defs([Def(Tid(1_151, "%0000047f"), Attrs([Attr("address","0x5E0"), -Attr("insn","adrp x16, #69632")]), Var("R16",Imm(64)), Int(69632,64)), -Def(Tid(1_158, "%00000486"), Attrs([Attr("address","0x5E4"), -Attr("insn","ldr x17, [x16, #0x10]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(16,64)),LittleEndian(),64)), -Def(Tid(1_164, "%0000048c"), Attrs([Attr("address","0x5E8"), -Attr("insn","add x16, x16, #0x10")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(16,64)))]), Jmps([Call(Tid(1_169, "%00000491"), - Attrs([Attr("address","0x5EC"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), -Sub(Tid(1_495, "@deregister_tm_clones"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x650")]), - "deregister_tm_clones", Args([Arg(Tid(1_543, "%00000607"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("deregister_tm_clones_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(519, "@deregister_tm_clones"), - Attrs([Attr("address","0x650")]), Phis([]), Defs([Def(Tid(522, "%0000020a"), - Attrs([Attr("address","0x650"), Attr("insn","adrp x0, #69632")]), - Var("R0",Imm(64)), Int(69632,64)), Def(Tid(528, "%00000210"), - Attrs([Attr("address","0x654"), Attr("insn","add x0, x0, #0x30")]), - Var("R0",Imm(64)), PLUS(Var("R0",Imm(64)),Int(48,64))), -Def(Tid(533, "%00000215"), Attrs([Attr("address","0x658"), -Attr("insn","adrp x1, #69632")]), Var("R1",Imm(64)), Int(69632,64)), -Def(Tid(539, "%0000021b"), Attrs([Attr("address","0x65C"), -Attr("insn","add x1, x1, #0x30")]), Var("R1",Imm(64)), -PLUS(Var("R1",Imm(64)),Int(48,64))), Def(Tid(545, "%00000221"), - Attrs([Attr("address","0x660"), Attr("insn","cmp x1, x0")]), - Var("#1",Imm(64)), NOT(Var("R0",Imm(64)))), Def(Tid(550, "%00000226"), - Attrs([Attr("address","0x660"), Attr("insn","cmp x1, x0")]), - Var("#2",Imm(64)), PLUS(Var("R1",Imm(64)),NOT(Var("R0",Imm(64))))), -Def(Tid(556, "%0000022c"), Attrs([Attr("address","0x660"), -Attr("insn","cmp x1, x0")]), Var("VF",Imm(1)), -NEQ(SIGNED(65,PLUS(Var("#2",Imm(64)),Int(1,64))),PLUS(PLUS(SIGNED(65,Var("R1",Imm(64))),SIGNED(65,Var("#1",Imm(64)))),Int(1,65)))), -Def(Tid(562, "%00000232"), Attrs([Attr("address","0x660"), -Attr("insn","cmp x1, x0")]), Var("CF",Imm(1)), -NEQ(UNSIGNED(65,PLUS(Var("#2",Imm(64)),Int(1,64))),PLUS(PLUS(UNSIGNED(65,Var("R1",Imm(64))),UNSIGNED(65,Var("#1",Imm(64)))),Int(1,65)))), -Def(Tid(566, "%00000236"), Attrs([Attr("address","0x660"), -Attr("insn","cmp x1, x0")]), Var("ZF",Imm(1)), -EQ(PLUS(Var("#2",Imm(64)),Int(1,64)),Int(0,64))), Def(Tid(570, "%0000023a"), - Attrs([Attr("address","0x660"), Attr("insn","cmp x1, x0")]), - Var("NF",Imm(1)), Extract(63,63,PLUS(Var("#2",Imm(64)),Int(1,64))))]), -Jmps([Goto(Tid(576, "%00000240"), Attrs([Attr("address","0x664"), -Attr("insn","b.eq #0x18")]), EQ(Var("ZF",Imm(1)),Int(1,1)), -Direct(Tid(574, "%0000023e"))), Goto(Tid(1_527, "%000005f7"), Attrs([]), - Int(1,1), Direct(Tid(915, "%00000393")))])), Blk(Tid(915, "%00000393"), - Attrs([Attr("address","0x668")]), Phis([]), Defs([Def(Tid(918, "%00000396"), - Attrs([Attr("address","0x668"), Attr("insn","adrp x1, #65536")]), - Var("R1",Imm(64)), Int(65536,64)), Def(Tid(925, "%0000039d"), - Attrs([Attr("address","0x66C"), Attr("insn","ldr x1, [x1, #0xfc0]")]), - Var("R1",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R1",Imm(64)),Int(4032,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(930, "%000003a2"), Attrs([Attr("address","0x670"), -Attr("insn","cbz x1, #0xc")]), EQ(Var("R1",Imm(64)),Int(0,64)), -Direct(Tid(574, "%0000023e"))), Goto(Tid(1_528, "%000005f8"), Attrs([]), - Int(1,1), Direct(Tid(934, "%000003a6")))])), Blk(Tid(574, "%0000023e"), - Attrs([Attr("address","0x67C")]), Phis([]), Defs([]), -Jmps([Call(Tid(582, "%00000246"), Attrs([Attr("address","0x67C"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))])), -Blk(Tid(934, "%000003a6"), Attrs([Attr("address","0x674")]), Phis([]), -Defs([Def(Tid(938, "%000003aa"), Attrs([Attr("address","0x674"), -Attr("insn","mov x16, x1")]), Var("R16",Imm(64)), Var("R1",Imm(64)))]), -Jmps([Call(Tid(943, "%000003af"), Attrs([Attr("address","0x678"), -Attr("insn","br x16")]), Int(1,1), (Indirect(Var("R16",Imm(64))),))]))])), -Sub(Tid(1_498, "@frame_dummy"), Attrs([Attr("c.proto","signed (*)(void)"), -Attr("address","0x710")]), "frame_dummy", Args([Arg(Tid(1_544, "%00000608"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("frame_dummy_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(734, "@frame_dummy"), - Attrs([Attr("address","0x710")]), Phis([]), Defs([]), -Jmps([Call(Tid(736, "%000002e0"), Attrs([Attr("address","0x710"), -Attr("insn","b #-0x90")]), Int(1,1), -(Direct(Tid(1_500, "@register_tm_clones")),))]))])), Sub(Tid(1_499, "@main"), - Attrs([Attr("c.proto","signed (*)(signed argc, const char** argv)"), -Attr("address","0x714")]), "main", Args([Arg(Tid(1_545, "%00000609"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("main_argc",Imm(32)), -LOW(32,Var("R0",Imm(64))), In()), Arg(Tid(1_546, "%0000060a"), - Attrs([Attr("c.layout","**[char : 8]"), Attr("c.data","Top:u8 ptr ptr"), -Attr("c.type"," const char**")]), Var("main_argv",Imm(64)), -Var("R1",Imm(64)), Both()), Arg(Tid(1_547, "%0000060b"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("main_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(738, "@main"), - Attrs([Attr("address","0x714")]), Phis([]), Defs([Def(Tid(742, "%000002e6"), - Attrs([Attr("address","0x714"), Attr("insn","sub sp, sp, #0x10")]), - Var("R31",Imm(64)), PLUS(Var("R31",Imm(64)),Int(18446744073709551600,64))), -Def(Tid(750, "%000002ee"), Attrs([Attr("address","0x718"), -Attr("insn","str w0, [sp, #0xc]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(12,64)),Extract(31,0,Var("R0",Imm(64))),LittleEndian(),32)), -Def(Tid(755, "%000002f3"), Attrs([Attr("address","0x71C"), -Attr("insn","adrp x9, #69632")]), Var("R9",Imm(64)), Int(69632,64)), -Def(Tid(760, "%000002f8"), Attrs([Attr("address","0x720"), -Attr("insn","mov w8, #0x1")]), Var("R8",Imm(64)), Int(1,64)), -Def(Tid(768, "%00000300"), Attrs([Attr("address","0x724"), -Attr("insn","str w8, [x9, #0x34]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R9",Imm(64)),Int(52,64)),Extract(31,0,Var("R8",Imm(64))),LittleEndian(),32)), -Def(Tid(775, "%00000307"), Attrs([Attr("address","0x728"), -Attr("insn","ldr w10, [sp, #0xc]")]), Var("R10",Imm(64)), -UNSIGNED(64,Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(12,64)),LittleEndian(),32))), -Def(Tid(780, "%0000030c"), Attrs([Attr("address","0x72C"), -Attr("insn","adrp x8, #69632")]), Var("R8",Imm(64)), Int(69632,64)), -Def(Tid(788, "%00000314"), Attrs([Attr("address","0x730"), -Attr("insn","str w10, [x8, #0x38]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R8",Imm(64)),Int(56,64)),Extract(31,0,Var("R10",Imm(64))),LittleEndian(),32)), -Def(Tid(793, "%00000319"), Attrs([Attr("address","0x734"), -Attr("insn","mov w0, wzr")]), Var("R0",Imm(64)), Int(0,64)), -Def(Tid(800, "%00000320"), Attrs([Attr("address","0x738"), -Attr("insn","str wzr, [x8, #0x38]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R8",Imm(64)),Int(56,64)),Int(0,32),LittleEndian(),32)), -Def(Tid(805, "%00000325"), Attrs([Attr("address","0x73C"), -Attr("insn","mov w8, #0x2")]), Var("R8",Imm(64)), Int(2,64)), -Def(Tid(813, "%0000032d"), Attrs([Attr("address","0x740"), -Attr("insn","str w8, [x9, #0x34]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R9",Imm(64)),Int(52,64)),Extract(31,0,Var("R8",Imm(64))),LittleEndian(),32)), -Def(Tid(819, "%00000333"), Attrs([Attr("address","0x744"), -Attr("insn","add sp, sp, #0x10")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(16,64)))]), Jmps([Call(Tid(824, "%00000338"), - Attrs([Attr("address","0x748"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), -Sub(Tid(1_500, "@register_tm_clones"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x680")]), - "register_tm_clones", Args([Arg(Tid(1_548, "%0000060c"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("register_tm_clones_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(584, "@register_tm_clones"), Attrs([Attr("address","0x680")]), - Phis([]), Defs([Def(Tid(587, "%0000024b"), Attrs([Attr("address","0x680"), -Attr("insn","adrp x0, #69632")]), Var("R0",Imm(64)), Int(69632,64)), -Def(Tid(593, "%00000251"), Attrs([Attr("address","0x684"), -Attr("insn","add x0, x0, #0x30")]), Var("R0",Imm(64)), -PLUS(Var("R0",Imm(64)),Int(48,64))), Def(Tid(598, "%00000256"), - Attrs([Attr("address","0x688"), Attr("insn","adrp x1, #69632")]), - Var("R1",Imm(64)), Int(69632,64)), Def(Tid(604, "%0000025c"), - Attrs([Attr("address","0x68C"), Attr("insn","add x1, x1, #0x30")]), - Var("R1",Imm(64)), PLUS(Var("R1",Imm(64)),Int(48,64))), -Def(Tid(611, "%00000263"), Attrs([Attr("address","0x690"), -Attr("insn","sub x1, x1, x0")]), Var("R1",Imm(64)), -PLUS(PLUS(Var("R1",Imm(64)),NOT(Var("R0",Imm(64)))),Int(1,64))), -Def(Tid(617, "%00000269"), Attrs([Attr("address","0x694"), -Attr("insn","lsr x2, x1, #63")]), Var("R2",Imm(64)), -Concat(Int(0,63),Extract(63,63,Var("R1",Imm(64))))), -Def(Tid(624, "%00000270"), Attrs([Attr("address","0x698"), -Attr("insn","add x1, x2, x1, asr #3")]), Var("R1",Imm(64)), -PLUS(Var("R2",Imm(64)),ARSHIFT(Var("R1",Imm(64)),Int(3,3)))), -Def(Tid(630, "%00000276"), Attrs([Attr("address","0x69C"), -Attr("insn","asr x1, x1, #1")]), Var("R1",Imm(64)), -SIGNED(64,Extract(63,1,Var("R1",Imm(64)))))]), -Jmps([Goto(Tid(636, "%0000027c"), Attrs([Attr("address","0x6A0"), -Attr("insn","cbz x1, #0x18")]), EQ(Var("R1",Imm(64)),Int(0,64)), -Direct(Tid(634, "%0000027a"))), Goto(Tid(1_529, "%000005f9"), Attrs([]), - Int(1,1), Direct(Tid(885, "%00000375")))])), Blk(Tid(885, "%00000375"), - Attrs([Attr("address","0x6A4")]), Phis([]), Defs([Def(Tid(888, "%00000378"), - Attrs([Attr("address","0x6A4"), Attr("insn","adrp x2, #65536")]), - Var("R2",Imm(64)), Int(65536,64)), Def(Tid(895, "%0000037f"), - Attrs([Attr("address","0x6A8"), Attr("insn","ldr x2, [x2, #0xfe0]")]), - Var("R2",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R2",Imm(64)),Int(4064,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(900, "%00000384"), Attrs([Attr("address","0x6AC"), -Attr("insn","cbz x2, #0xc")]), EQ(Var("R2",Imm(64)),Int(0,64)), -Direct(Tid(634, "%0000027a"))), Goto(Tid(1_530, "%000005fa"), Attrs([]), - Int(1,1), Direct(Tid(904, "%00000388")))])), Blk(Tid(634, "%0000027a"), - Attrs([Attr("address","0x6B8")]), Phis([]), Defs([]), -Jmps([Call(Tid(642, "%00000282"), Attrs([Attr("address","0x6B8"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))])), -Blk(Tid(904, "%00000388"), Attrs([Attr("address","0x6B0")]), Phis([]), -Defs([Def(Tid(908, "%0000038c"), Attrs([Attr("address","0x6B0"), -Attr("insn","mov x16, x2")]), Var("R16",Imm(64)), Var("R2",Imm(64)))]), -Jmps([Call(Tid(913, "%00000391"), Attrs([Attr("address","0x6B4"), -Attr("insn","br x16")]), Int(1,1), -(Indirect(Var("R16",Imm(64))),))]))]))]))) \ No newline at end of file diff --git a/src/test/correct/basic_sec_policy_write/clang/basic_sec_policy_write.bir b/src/test/correct/basic_sec_policy_write/clang/basic_sec_policy_write.bir deleted file mode 100644 index c4a5d1f1a..000000000 --- a/src/test/correct/basic_sec_policy_write/clang/basic_sec_policy_write.bir +++ /dev/null @@ -1,236 +0,0 @@ -000005fb: program -000005c9: sub __cxa_finalize(__cxa_finalize_result) -000005fc: __cxa_finalize_result :: out u32 = low:32[R0] - -00000371: -00000469: R16 := 0x11000 -00000470: R17 := mem[R16 + 8, el]:u64 -00000476: R16 := R16 + 8 -0000047b: call R17 with noreturn - -000005ca: sub __do_global_dtors_aux(__do_global_dtors_aux_result) -000005fd: __do_global_dtors_aux_result :: out u32 = low:32[R0] - -00000286: -0000028a: #3 := R31 - 0x20 -00000290: mem := mem with [#3, el]:u64 <- R29 -00000296: mem := mem with [#3 + 8, el]:u64 <- R30 -0000029a: R31 := #3 -000002a0: R29 := R31 -000002a8: mem := mem with [R31 + 0x10, el]:u64 <- R19 -000002ad: R19 := 0x11000 -000002b4: R0 := pad:64[mem[R19 + 0x30]] -000002bb: when 31:0[R0] <> 0 goto %000002b9 -000005f1: goto %0000033a - -0000033a: -0000033d: R0 := 0x10000 -00000344: R0 := mem[R0 + 0xFC8, el]:u64 -0000034a: when R0 = 0 goto %00000348 -000005f2: goto %00000361 - -00000361: -00000364: R0 := 0x11000 -0000036b: R0 := mem[R0 + 0x28, el]:u64 -00000370: R30 := 0x6F0 -00000373: call @__cxa_finalize with return %00000348 - -00000348: -00000350: R30 := 0x6F4 -00000352: call @deregister_tm_clones with return %00000354 - -00000354: -00000357: R0 := 1 -0000035f: mem := mem with [R19 + 0x30] <- 7:0[R0] -000005f3: goto %000002b9 - -000002b9: -000002c3: R19 := mem[R31 + 0x10, el]:u64 -000002ca: R29 := mem[R31, el]:u64 -000002cf: R30 := mem[R31 + 8, el]:u64 -000002d3: R31 := R31 + 0x20 -000002d8: call R30 with noreturn - -000005ce: sub __libc_start_main(__libc_start_main_main, __libc_start_main_arg2, __libc_start_main_arg3, __libc_start_main_auxv, __libc_start_main_result) -000005fe: __libc_start_main_main :: in u64 = R0 -000005ff: __libc_start_main_arg2 :: in u32 = low:32[R1] -00000600: __libc_start_main_arg3 :: in out u64 = R2 -00000601: __libc_start_main_auxv :: in out u64 = R3 -00000602: __libc_start_main_result :: out u32 = low:32[R0] - -000001df: -00000453: R16 := 0x11000 -0000045a: R17 := mem[R16, el]:u64 -00000460: R16 := R16 -00000465: call R17 with noreturn - -000005cf: sub _fini(_fini_result) -00000603: _fini_result :: out u32 = low:32[R0] - -0000001f: -00000025: #0 := R31 - 0x10 -0000002b: mem := mem with [#0, el]:u64 <- R29 -00000031: mem := mem with [#0 + 8, el]:u64 <- R30 -00000035: R31 := #0 -0000003b: R29 := R31 -00000042: R29 := mem[R31, el]:u64 -00000047: R30 := mem[R31 + 8, el]:u64 -0000004b: R31 := R31 + 0x10 -00000050: call R30 with noreturn - -000005d0: sub _init(_init_result) -00000604: _init_result :: out u32 = low:32[R0] - -0000051d: -00000523: #5 := R31 - 0x10 -00000529: mem := mem with [#5, el]:u64 <- R29 -0000052f: mem := mem with [#5 + 8, el]:u64 <- R30 -00000533: R31 := #5 -00000539: R29 := R31 -0000053e: R30 := 0x590 -00000540: call @call_weak_fn with return %00000542 - -00000542: -00000547: R29 := mem[R31, el]:u64 -0000054c: R30 := mem[R31 + 8, el]:u64 -00000550: R31 := R31 + 0x10 -00000555: call R30 with noreturn - -000005d1: sub _start(_start_result) -00000605: _start_result :: out u32 = low:32[R0] - -000001a0: -000001a5: R29 := 0 -000001aa: R30 := 0 -000001b0: R5 := R0 -000001b7: R1 := mem[R31, el]:u64 -000001bd: R2 := R31 + 8 -000001c3: R6 := R31 -000001c8: R0 := 0x10000 -000001cf: R0 := mem[R0 + 0xFD8, el]:u64 -000001d4: R3 := 0 -000001d9: R4 := 0 -000001de: R30 := 0x630 -000001e1: call @__libc_start_main with return %000001e3 - -000001e3: -000001e6: R30 := 0x634 -000001e9: call @abort with return %000005f4 - -000005f4: -000005f5: call @call_weak_fn with noreturn - -000005d4: sub abort() - - -000001e7: -00000495: R16 := 0x11000 -0000049c: R17 := mem[R16 + 0x18, el]:u64 -000004a2: R16 := R16 + 0x18 -000004a7: call R17 with noreturn - -000005d5: sub call_weak_fn(call_weak_fn_result) -00000606: call_weak_fn_result :: out u32 = low:32[R0] - -000001eb: -000001ee: R0 := 0x10000 -000001f5: R0 := mem[R0 + 0xFD0, el]:u64 -000001fb: when R0 = 0 goto %000001f9 -000005f6: goto %000003b1 - -000001f9: -00000201: call R30 with noreturn - -000003b1: -000003b4: goto @__gmon_start__ - -000003b2: -0000047f: R16 := 0x11000 -00000486: R17 := mem[R16 + 0x10, el]:u64 -0000048c: R16 := R16 + 0x10 -00000491: call R17 with noreturn - -000005d7: sub deregister_tm_clones(deregister_tm_clones_result) -00000607: deregister_tm_clones_result :: out u32 = low:32[R0] - -00000207: -0000020a: R0 := 0x11000 -00000210: R0 := R0 + 0x30 -00000215: R1 := 0x11000 -0000021b: R1 := R1 + 0x30 -00000221: #1 := ~R0 -00000226: #2 := R1 + ~R0 -0000022c: VF := extend:65[#2 + 1] <> extend:65[R1] + extend:65[#1] + 1 -00000232: CF := pad:65[#2 + 1] <> pad:65[R1] + pad:65[#1] + 1 -00000236: ZF := #2 + 1 = 0 -0000023a: NF := 63:63[#2 + 1] -00000240: when ZF goto %0000023e -000005f7: goto %00000393 - -00000393: -00000396: R1 := 0x10000 -0000039d: R1 := mem[R1 + 0xFC0, el]:u64 -000003a2: when R1 = 0 goto %0000023e -000005f8: goto %000003a6 - -0000023e: -00000246: call R30 with noreturn - -000003a6: -000003aa: R16 := R1 -000003af: call R16 with noreturn - -000005da: sub frame_dummy(frame_dummy_result) -00000608: frame_dummy_result :: out u32 = low:32[R0] - -000002de: -000002e0: call @register_tm_clones with noreturn - -000005db: sub main(main_argc, main_argv, main_result) -00000609: main_argc :: in u32 = low:32[R0] -0000060a: main_argv :: in out u64 = R1 -0000060b: main_result :: out u32 = low:32[R0] - -000002e2: -000002e6: R31 := R31 - 0x10 -000002ee: mem := mem with [R31 + 0xC, el]:u32 <- 31:0[R0] -000002f3: R9 := 0x11000 -000002f8: R8 := 1 -00000300: mem := mem with [R9 + 0x34, el]:u32 <- 31:0[R8] -00000307: R10 := pad:64[mem[R31 + 0xC, el]:u32] -0000030c: R8 := 0x11000 -00000314: mem := mem with [R8 + 0x38, el]:u32 <- 31:0[R10] -00000319: R0 := 0 -00000320: mem := mem with [R8 + 0x38, el]:u32 <- 0 -00000325: R8 := 2 -0000032d: mem := mem with [R9 + 0x34, el]:u32 <- 31:0[R8] -00000333: R31 := R31 + 0x10 -00000338: call R30 with noreturn - -000005dc: sub register_tm_clones(register_tm_clones_result) -0000060c: register_tm_clones_result :: out u32 = low:32[R0] - -00000248: -0000024b: R0 := 0x11000 -00000251: R0 := R0 + 0x30 -00000256: R1 := 0x11000 -0000025c: R1 := R1 + 0x30 -00000263: R1 := R1 + ~R0 + 1 -00000269: R2 := 0.63:63[R1] -00000270: R1 := R2 + (R1 ~>> 3) -00000276: R1 := extend:64[63:1[R1]] -0000027c: when R1 = 0 goto %0000027a -000005f9: goto %00000375 - -00000375: -00000378: R2 := 0x10000 -0000037f: R2 := mem[R2 + 0xFE0, el]:u64 -00000384: when R2 = 0 goto %0000027a -000005fa: goto %00000388 - -0000027a: -00000282: call R30 with noreturn - -00000388: -0000038c: R16 := R2 -00000391: call R16 with noreturn diff --git a/src/test/correct/basic_sec_policy_write/clang/basic_sec_policy_write.expected b/src/test/correct/basic_sec_policy_write/clang/basic_sec_policy_write.expected index bd37062e0..16fce81da 100644 --- a/src/test/correct/basic_sec_policy_write/clang/basic_sec_policy_write.expected +++ b/src/test/correct/basic_sec_policy_write/clang/basic_sec_policy_write.expected @@ -1,21 +1,17 @@ var {:extern} Gamma_R0: bool; var {:extern} Gamma_R10: bool; -var {:extern} Gamma_R31: bool; var {:extern} Gamma_R8: bool; var {:extern} Gamma_R9: bool; var {:extern} Gamma_mem: [bv64]bool; -var {:extern} Gamma_stack: [bv64]bool; var {:extern} R0: bv64; var {:extern} R10: bv64; -var {:extern} R31: bv64; var {:extern} R8: bv64; var {:extern} R9: bv64; var {:extern} mem: [bv64]bv8; -var {:extern} stack: [bv64]bv8; const {:extern} $x_addr: bv64; -axiom ($x_addr == 69688bv64); +axiom ($x_addr == 131096bv64); const {:extern} $z_addr: bv64; -axiom ($z_addr == 69684bv64); +axiom ($z_addr == 131092bv64); function {:extern} L(mem$in: [bv64]bv8, index: bv64) returns (bool) { (if (index == $z_addr) then true else (if (index == $x_addr) then (memory_load32_le(mem$in, $z_addr) == 0bv32) else false)) } @@ -25,6 +21,10 @@ function {:extern} gamma_load32(gammaMap: [bv64]bool, index: bv64) returns (bool (gammaMap[bvadd64(index, 3bv64)] && (gammaMap[bvadd64(index, 2bv64)] && (gammaMap[bvadd64(index, 1bv64)] && gammaMap[index]))) } +function {:extern} gamma_load64(gammaMap: [bv64]bool, index: bv64) returns (bool) { + (gammaMap[bvadd64(index, 7bv64)] && (gammaMap[bvadd64(index, 6bv64)] && (gammaMap[bvadd64(index, 5bv64)] && (gammaMap[bvadd64(index, 4bv64)] && (gammaMap[bvadd64(index, 3bv64)] && (gammaMap[bvadd64(index, 2bv64)] && (gammaMap[bvadd64(index, 1bv64)] && gammaMap[index]))))))) +} + function {:extern} gamma_store32(gammaMap: [bv64]bool, index: bv64, value: bool) returns ([bv64]bool) { gammaMap[index := value][bvadd64(index, 1bv64) := value][bvadd64(index, 2bv64) := value][bvadd64(index, 3bv64) := value] } @@ -41,16 +41,17 @@ function {:extern} memory_store32_le(memory: [bv64]bv8, index: bv64, value: bv32 memory[index := value[8:0]][bvadd64(index, 1bv64) := value[16:8]][bvadd64(index, 2bv64) := value[24:16]][bvadd64(index, 3bv64) := value[32:24]] } -function {:extern} {:bvbuiltin "zero_extend 32"} zero_extend32_32(bv32) returns (bv64); procedure {:extern} rely(); modifies Gamma_mem, mem; ensures (forall i: bv64 :: (((mem[i] == old(mem[i])) ==> (Gamma_mem[i] == old(Gamma_mem[i]))))); ensures (old(memory_load32_le(mem, $z_addr)) == memory_load32_le(mem, $z_addr)); - free ensures (memory_load32_le(mem, 1888bv64) == 131073bv32); - free ensures (memory_load64_le(mem, 69064bv64) == 1808bv64); - free ensures (memory_load64_le(mem, 69072bv64) == 1728bv64); - free ensures (memory_load64_le(mem, 69592bv64) == 1812bv64); - free ensures (memory_load64_le(mem, 69672bv64) == 69672bv64); + free ensures (memory_load32_le(mem, 2316bv64) == 131073bv32); + free ensures (memory_load64_le(mem, 130424bv64) == 2256bv64); + free ensures (memory_load64_le(mem, 130432bv64) == 2176bv64); + free ensures (memory_load64_le(mem, 131032bv64) == 131092bv64); + free ensures (memory_load64_le(mem, 131040bv64) == 131096bv64); + free ensures (memory_load64_le(mem, 131056bv64) == 2260bv64); + free ensures (memory_load64_le(mem, 131080bv64) == 131080bv64); procedure {:extern} rely_transitive(); modifies Gamma_mem, mem; @@ -77,78 +78,65 @@ implementation {:extern} guarantee_reflexive() assert ((memory_load32_le(mem, $z_addr) != 0bv32) ==> (memory_load32_le(mem, $z_addr) != 0bv32)); } -procedure main_1812(); - modifies Gamma_R0, Gamma_R10, Gamma_R31, Gamma_R8, Gamma_R9, Gamma_mem, Gamma_stack, R0, R10, R31, R8, R9, mem, stack; +procedure main(); + modifies Gamma_R0, Gamma_R10, Gamma_R8, Gamma_R9, Gamma_mem, R0, R10, R8, R9, mem; requires (Gamma_R0 == false); - free requires (memory_load64_le(mem, 69664bv64) == 0bv64); - free requires (memory_load64_le(mem, 69672bv64) == 69672bv64); - free requires (memory_load32_le(mem, 1888bv64) == 131073bv32); - free requires (memory_load64_le(mem, 69064bv64) == 1808bv64); - free requires (memory_load64_le(mem, 69072bv64) == 1728bv64); - free requires (memory_load64_le(mem, 69592bv64) == 1812bv64); - free requires (memory_load64_le(mem, 69672bv64) == 69672bv64); - free ensures (Gamma_R31 == old(Gamma_R31)); - free ensures (R31 == old(R31)); - free ensures (memory_load32_le(mem, 1888bv64) == 131073bv32); - free ensures (memory_load64_le(mem, 69064bv64) == 1808bv64); - free ensures (memory_load64_le(mem, 69072bv64) == 1728bv64); - free ensures (memory_load64_le(mem, 69592bv64) == 1812bv64); - free ensures (memory_load64_le(mem, 69672bv64) == 69672bv64); - -implementation main_1812() + free requires (memory_load64_le(mem, 131072bv64) == 0bv64); + free requires (memory_load64_le(mem, 131080bv64) == 131080bv64); + free requires (memory_load32_le(mem, 2316bv64) == 131073bv32); + free requires (memory_load64_le(mem, 130424bv64) == 2256bv64); + free requires (memory_load64_le(mem, 130432bv64) == 2176bv64); + free requires (memory_load64_le(mem, 131032bv64) == 131092bv64); + free requires (memory_load64_le(mem, 131040bv64) == 131096bv64); + free requires (memory_load64_le(mem, 131056bv64) == 2260bv64); + free requires (memory_load64_le(mem, 131080bv64) == 131080bv64); + free ensures (memory_load32_le(mem, 2316bv64) == 131073bv32); + free ensures (memory_load64_le(mem, 130424bv64) == 2256bv64); + free ensures (memory_load64_le(mem, 130432bv64) == 2176bv64); + free ensures (memory_load64_le(mem, 131032bv64) == 131092bv64); + free ensures (memory_load64_le(mem, 131040bv64) == 131096bv64); + free ensures (memory_load64_le(mem, 131056bv64) == 2260bv64); + free ensures (memory_load64_le(mem, 131080bv64) == 131080bv64); + +implementation main() { - var Gamma_load18: bool; + var $load$18: bv64; + var $load$19: bv64; + var Gamma_$load$18: bool; + var Gamma_$load$19: bool; var Gamma_x_old: bool; - var load18: bv32; var z_old: bv32; lmain: assume {:captureState "lmain"} true; - R31, Gamma_R31 := bvadd64(R31, 18446744073709551600bv64), Gamma_R31; - stack, Gamma_stack := memory_store32_le(stack, bvadd64(R31, 12bv64), R0[32:0]), gamma_store32(Gamma_stack, bvadd64(R31, 12bv64), Gamma_R0); - assume {:captureState "%000002ee"} true; - R9, Gamma_R9 := 69632bv64, true; - R8, Gamma_R8 := 1bv64, true; + R8, Gamma_R8 := 126976bv64, true; + R9, Gamma_R9 := 126976bv64, true; + R0, Gamma_R0 := 0bv64, true; call rely(); - z_old := memory_load32_le(mem, $z_addr); - Gamma_x_old := (gamma_load32(Gamma_mem, $x_addr) || L(mem, $x_addr)); - assert (L(mem, bvadd64(R9, 52bv64)) ==> Gamma_R8); - mem, Gamma_mem := memory_store32_le(mem, bvadd64(R9, 52bv64), R8[32:0]), gamma_store32(Gamma_mem, bvadd64(R9, 52bv64), Gamma_R8); - assert ((bvadd64(R9, 52bv64) == $z_addr) ==> (L(mem, $x_addr) ==> Gamma_x_old)); - assert ((z_old != 0bv32) ==> (memory_load32_le(mem, $z_addr) != 0bv32)); - assume {:captureState "%00000300"} true; - load18, Gamma_load18 := memory_load32_le(stack, bvadd64(R31, 12bv64)), gamma_load32(Gamma_stack, bvadd64(R31, 12bv64)); - R10, Gamma_R10 := zero_extend32_32(load18), Gamma_load18; - R8, Gamma_R8 := 69632bv64, true; + $load$18, Gamma_$load$18 := memory_load64_le(mem, bvadd64(R8, 4064bv64)), (gamma_load64(Gamma_mem, bvadd64(R8, 4064bv64)) || L(mem, bvadd64(R8, 4064bv64))); + R8, Gamma_R8 := $load$18, Gamma_$load$18; call rely(); - z_old := memory_load32_le(mem, $z_addr); - Gamma_x_old := (gamma_load32(Gamma_mem, $x_addr) || L(mem, $x_addr)); - assert (L(mem, bvadd64(R8, 56bv64)) ==> Gamma_R10); - mem, Gamma_mem := memory_store32_le(mem, bvadd64(R8, 56bv64), R10[32:0]), gamma_store32(Gamma_mem, bvadd64(R8, 56bv64), Gamma_R10); - assert ((bvadd64(R8, 56bv64) == $z_addr) ==> (L(mem, $x_addr) ==> Gamma_x_old)); - assert ((z_old != 0bv32) ==> (memory_load32_le(mem, $z_addr) != 0bv32)); - assume {:captureState "%00000314"} true; - R0, Gamma_R0 := 0bv64, true; + $load$19, Gamma_$load$19 := memory_load64_le(mem, bvadd64(R9, 4056bv64)), (gamma_load64(Gamma_mem, bvadd64(R9, 4056bv64)) || L(mem, bvadd64(R9, 4056bv64))); + R9, Gamma_R9 := $load$19, Gamma_$load$19; + R10, Gamma_R10 := 2bv64, true; call rely(); + assert (L(mem, R8) ==> true); z_old := memory_load32_le(mem, $z_addr); Gamma_x_old := (gamma_load32(Gamma_mem, $x_addr) || L(mem, $x_addr)); - assert (L(mem, bvadd64(R8, 56bv64)) ==> true); - mem, Gamma_mem := memory_store32_le(mem, bvadd64(R8, 56bv64), 0bv32), gamma_store32(Gamma_mem, bvadd64(R8, 56bv64), true); - assert ((bvadd64(R8, 56bv64) == $z_addr) ==> (L(mem, $x_addr) ==> Gamma_x_old)); + mem, Gamma_mem := memory_store32_le(mem, R8, 0bv32), gamma_store32(Gamma_mem, R8, true); + assert ((R8 == $z_addr) ==> (L(mem, $x_addr) ==> Gamma_x_old)); assert ((z_old != 0bv32) ==> (memory_load32_le(mem, $z_addr) != 0bv32)); - assume {:captureState "%00000320"} true; - R8, Gamma_R8 := 2bv64, true; + assume {:captureState "%00000294"} true; call rely(); + assert (L(mem, R9) ==> Gamma_R10); z_old := memory_load32_le(mem, $z_addr); Gamma_x_old := (gamma_load32(Gamma_mem, $x_addr) || L(mem, $x_addr)); - assert (L(mem, bvadd64(R9, 52bv64)) ==> Gamma_R8); - mem, Gamma_mem := memory_store32_le(mem, bvadd64(R9, 52bv64), R8[32:0]), gamma_store32(Gamma_mem, bvadd64(R9, 52bv64), Gamma_R8); - assert ((bvadd64(R9, 52bv64) == $z_addr) ==> (L(mem, $x_addr) ==> Gamma_x_old)); + mem, Gamma_mem := memory_store32_le(mem, R9, R10[32:0]), gamma_store32(Gamma_mem, R9, Gamma_R10); + assert ((R9 == $z_addr) ==> (L(mem, $x_addr) ==> Gamma_x_old)); assert ((z_old != 0bv32) ==> (memory_load32_le(mem, $z_addr) != 0bv32)); - assume {:captureState "%0000032d"} true; - R31, Gamma_R31 := bvadd64(R31, 16bv64), Gamma_R31; - goto main_1812_basil_return; - main_1812_basil_return: - assume {:captureState "main_1812_basil_return"} true; + assume {:captureState "%00000298"} true; + goto main_basil_return; + main_basil_return: + assume {:captureState "main_basil_return"} true; return; } diff --git a/src/test/correct/basic_sec_policy_write/clang/basic_sec_policy_write.gts b/src/test/correct/basic_sec_policy_write/clang/basic_sec_policy_write.gts deleted file mode 100644 index a3df81383..000000000 Binary files a/src/test/correct/basic_sec_policy_write/clang/basic_sec_policy_write.gts and /dev/null differ diff --git a/src/test/correct/basic_sec_policy_write/clang/basic_sec_policy_write.md5sum b/src/test/correct/basic_sec_policy_write/clang/basic_sec_policy_write.md5sum new file mode 100644 index 000000000..6e5229fc4 --- /dev/null +++ b/src/test/correct/basic_sec_policy_write/clang/basic_sec_policy_write.md5sum @@ -0,0 +1,5 @@ +175a05e629aad4ab9d46e99d88eed8a6 correct/basic_sec_policy_write/clang/a.out +08dc0bbee75ffd0f1d147199d166caff correct/basic_sec_policy_write/clang/basic_sec_policy_write.adt +8a10642145a1352f2a5d82acc268f8c0 correct/basic_sec_policy_write/clang/basic_sec_policy_write.bir +9097de1473f56225bd96d524aa5d0ff8 correct/basic_sec_policy_write/clang/basic_sec_policy_write.relf +572c528e2c1d4bee5bc8de1c8f4cd5c3 correct/basic_sec_policy_write/clang/basic_sec_policy_write.gts diff --git a/src/test/correct/basic_sec_policy_write/clang/basic_sec_policy_write.relf b/src/test/correct/basic_sec_policy_write/clang/basic_sec_policy_write.relf deleted file mode 100644 index 24b755f81..000000000 --- a/src/test/correct/basic_sec_policy_write/clang/basic_sec_policy_write.relf +++ /dev/null @@ -1,124 +0,0 @@ - -Relocation section '.rela.dyn' at offset 0x460 contains 8 entries: - Offset Info Type Symbol's Value Symbol's Name + Addend -0000000000010dc8 0000000000000403 R_AARCH64_RELATIVE 710 -0000000000010dd0 0000000000000403 R_AARCH64_RELATIVE 6c0 -0000000000010fd8 0000000000000403 R_AARCH64_RELATIVE 714 -0000000000011028 0000000000000403 R_AARCH64_RELATIVE 11028 -0000000000010fc0 0000000400000401 R_AARCH64_GLOB_DAT 0000000000000000 _ITM_deregisterTMCloneTable + 0 -0000000000010fc8 0000000500000401 R_AARCH64_GLOB_DAT 0000000000000000 __cxa_finalize@GLIBC_2.17 + 0 -0000000000010fd0 0000000600000401 R_AARCH64_GLOB_DAT 0000000000000000 __gmon_start__ + 0 -0000000000010fe0 0000000800000401 R_AARCH64_GLOB_DAT 0000000000000000 _ITM_registerTMCloneTable + 0 - -Relocation section '.rela.plt' at offset 0x520 contains 4 entries: - Offset Info Type Symbol's Value Symbol's Name + Addend -0000000000011000 0000000300000402 R_AARCH64_JUMP_SLOT 0000000000000000 __libc_start_main@GLIBC_2.34 + 0 -0000000000011008 0000000500000402 R_AARCH64_JUMP_SLOT 0000000000000000 __cxa_finalize@GLIBC_2.17 + 0 -0000000000011010 0000000600000402 R_AARCH64_JUMP_SLOT 0000000000000000 __gmon_start__ + 0 -0000000000011018 0000000700000402 R_AARCH64_JUMP_SLOT 0000000000000000 abort@GLIBC_2.17 + 0 - -Symbol table '.dynsym' contains 9 entries: - Num: Value Size Type Bind Vis Ndx Name - 0: 0000000000000000 0 NOTYPE LOCAL DEFAULT UND - 1: 0000000000000580 0 SECTION LOCAL DEFAULT 11 .init - 2: 0000000000011020 0 SECTION LOCAL DEFAULT 23 .data - 3: 0000000000000000 0 FUNC GLOBAL DEFAULT UND __libc_start_main@GLIBC_2.34 (2) - 4: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_deregisterTMCloneTable - 5: 0000000000000000 0 FUNC WEAK DEFAULT UND __cxa_finalize@GLIBC_2.17 (3) - 6: 0000000000000000 0 NOTYPE WEAK DEFAULT UND __gmon_start__ - 7: 0000000000000000 0 FUNC GLOBAL DEFAULT UND abort@GLIBC_2.17 (3) - 8: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_registerTMCloneTable - -Symbol table '.symtab' contains 91 entries: - Num: Value Size Type Bind Vis Ndx Name - 0: 0000000000000000 0 NOTYPE LOCAL DEFAULT UND - 1: 0000000000000238 0 SECTION LOCAL DEFAULT 1 .interp - 2: 0000000000000254 0 SECTION LOCAL DEFAULT 2 .note.gnu.build-id - 3: 0000000000000278 0 SECTION LOCAL DEFAULT 3 .note.ABI-tag - 4: 0000000000000298 0 SECTION LOCAL DEFAULT 4 .gnu.hash - 5: 00000000000002b8 0 SECTION LOCAL DEFAULT 5 .dynsym - 6: 0000000000000390 0 SECTION LOCAL DEFAULT 6 .dynstr - 7: 000000000000041e 0 SECTION LOCAL DEFAULT 7 .gnu.version - 8: 0000000000000430 0 SECTION LOCAL DEFAULT 8 .gnu.version_r - 9: 0000000000000460 0 SECTION LOCAL DEFAULT 9 .rela.dyn - 10: 0000000000000520 0 SECTION LOCAL DEFAULT 10 .rela.plt - 11: 0000000000000580 0 SECTION LOCAL DEFAULT 11 .init - 12: 00000000000005a0 0 SECTION LOCAL DEFAULT 12 .plt - 13: 0000000000000600 0 SECTION LOCAL DEFAULT 13 .text - 14: 000000000000074c 0 SECTION LOCAL DEFAULT 14 .fini - 15: 0000000000000760 0 SECTION LOCAL DEFAULT 15 .rodata - 16: 0000000000000764 0 SECTION LOCAL DEFAULT 16 .eh_frame_hdr - 17: 00000000000007a0 0 SECTION LOCAL DEFAULT 17 .eh_frame - 18: 0000000000010dc8 0 SECTION LOCAL DEFAULT 18 .init_array - 19: 0000000000010dd0 0 SECTION LOCAL DEFAULT 19 .fini_array - 20: 0000000000010dd8 0 SECTION LOCAL DEFAULT 20 .dynamic - 21: 0000000000010fb8 0 SECTION LOCAL DEFAULT 21 .got - 22: 0000000000010fe8 0 SECTION LOCAL DEFAULT 22 .got.plt - 23: 0000000000011020 0 SECTION LOCAL DEFAULT 23 .data - 24: 0000000000011030 0 SECTION LOCAL DEFAULT 24 .bss - 25: 0000000000000000 0 SECTION LOCAL DEFAULT 25 .comment - 26: 0000000000000000 0 FILE LOCAL DEFAULT ABS Scrt1.o - 27: 0000000000000278 0 NOTYPE LOCAL DEFAULT 3 $d - 28: 0000000000000278 32 OBJECT LOCAL DEFAULT 3 __abi_tag - 29: 0000000000000600 0 NOTYPE LOCAL DEFAULT 13 $x - 30: 00000000000007b4 0 NOTYPE LOCAL DEFAULT 17 $d - 31: 0000000000000760 0 NOTYPE LOCAL DEFAULT 15 $d - 32: 0000000000000000 0 FILE LOCAL DEFAULT ABS crti.o - 33: 0000000000000634 0 NOTYPE LOCAL DEFAULT 13 $x - 34: 0000000000000634 20 FUNC LOCAL DEFAULT 13 call_weak_fn - 35: 0000000000000580 0 NOTYPE LOCAL DEFAULT 11 $x - 36: 000000000000074c 0 NOTYPE LOCAL DEFAULT 14 $x - 37: 0000000000000000 0 FILE LOCAL DEFAULT ABS crtn.o - 38: 0000000000000590 0 NOTYPE LOCAL DEFAULT 11 $x - 39: 0000000000000758 0 NOTYPE LOCAL DEFAULT 14 $x - 40: 0000000000000000 0 FILE LOCAL DEFAULT ABS crtstuff.c - 41: 0000000000000650 0 NOTYPE LOCAL DEFAULT 13 $x - 42: 0000000000000650 0 FUNC LOCAL DEFAULT 13 deregister_tm_clones - 43: 0000000000000680 0 FUNC LOCAL DEFAULT 13 register_tm_clones - 44: 0000000000011028 0 NOTYPE LOCAL DEFAULT 23 $d - 45: 00000000000006c0 0 FUNC LOCAL DEFAULT 13 __do_global_dtors_aux - 46: 0000000000011030 1 OBJECT LOCAL DEFAULT 24 completed.0 - 47: 0000000000010dd0 0 NOTYPE LOCAL DEFAULT 19 $d - 48: 0000000000010dd0 0 OBJECT LOCAL DEFAULT 19 __do_global_dtors_aux_fini_array_entry - 49: 0000000000000710 0 FUNC LOCAL DEFAULT 13 frame_dummy - 50: 0000000000010dc8 0 NOTYPE LOCAL DEFAULT 18 $d - 51: 0000000000010dc8 0 OBJECT LOCAL DEFAULT 18 __frame_dummy_init_array_entry - 52: 00000000000007c8 0 NOTYPE LOCAL DEFAULT 17 $d - 53: 0000000000011030 0 NOTYPE LOCAL DEFAULT 24 $d - 54: 0000000000000000 0 FILE LOCAL DEFAULT ABS basic_sec_policy_write.c - 55: 0000000000000714 0 NOTYPE LOCAL DEFAULT 13 $x.0 - 56: 0000000000011034 0 NOTYPE LOCAL DEFAULT 24 $d.1 - 57: 000000000000002a 0 NOTYPE LOCAL DEFAULT 25 $d.2 - 58: 0000000000000828 0 NOTYPE LOCAL DEFAULT 17 $d.3 - 59: 0000000000000000 0 FILE LOCAL DEFAULT ABS crtstuff.c - 60: 0000000000000854 0 NOTYPE LOCAL DEFAULT 17 $d - 61: 0000000000000854 0 OBJECT LOCAL DEFAULT 17 __FRAME_END__ - 62: 0000000000000000 0 FILE LOCAL DEFAULT ABS - 63: 0000000000010dd8 0 OBJECT LOCAL DEFAULT ABS _DYNAMIC - 64: 0000000000000764 0 NOTYPE LOCAL DEFAULT 16 __GNU_EH_FRAME_HDR - 65: 0000000000010fb8 0 OBJECT LOCAL DEFAULT ABS _GLOBAL_OFFSET_TABLE_ - 66: 00000000000005a0 0 NOTYPE LOCAL DEFAULT 12 $x - 67: 0000000000000000 0 FUNC GLOBAL DEFAULT UND __libc_start_main@GLIBC_2.34 - 68: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_deregisterTMCloneTable - 69: 0000000000011020 0 NOTYPE WEAK DEFAULT 23 data_start - 70: 0000000000011030 0 NOTYPE GLOBAL DEFAULT 24 __bss_start__ - 71: 0000000000000000 0 FUNC WEAK DEFAULT UND __cxa_finalize@GLIBC_2.17 - 72: 0000000000011040 0 NOTYPE GLOBAL DEFAULT 24 _bss_end__ - 73: 0000000000011030 0 NOTYPE GLOBAL DEFAULT 23 _edata - 74: 0000000000011034 4 OBJECT GLOBAL DEFAULT 24 z - 75: 0000000000011038 4 OBJECT GLOBAL DEFAULT 24 x - 76: 000000000000074c 0 FUNC GLOBAL HIDDEN 14 _fini - 77: 0000000000011040 0 NOTYPE GLOBAL DEFAULT 24 __bss_end__ - 78: 0000000000011020 0 NOTYPE GLOBAL DEFAULT 23 __data_start - 79: 0000000000000000 0 NOTYPE WEAK DEFAULT UND __gmon_start__ - 80: 0000000000011028 0 OBJECT GLOBAL HIDDEN 23 __dso_handle - 81: 0000000000000000 0 FUNC GLOBAL DEFAULT UND abort@GLIBC_2.17 - 82: 0000000000000760 4 OBJECT GLOBAL DEFAULT 15 _IO_stdin_used - 83: 0000000000011040 0 NOTYPE GLOBAL DEFAULT 24 _end - 84: 0000000000000600 52 FUNC GLOBAL DEFAULT 13 _start - 85: 0000000000011040 0 NOTYPE GLOBAL DEFAULT 24 __end__ - 86: 0000000000011030 0 NOTYPE GLOBAL DEFAULT 24 __bss_start - 87: 0000000000000714 56 FUNC GLOBAL DEFAULT 13 main - 88: 0000000000011030 0 OBJECT GLOBAL HIDDEN 23 __TMC_END__ - 89: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_registerTMCloneTable - 90: 0000000000000580 0 FUNC GLOBAL HIDDEN 11 _init diff --git a/src/test/correct/basic_sec_policy_write/clang/basic_sec_policy_write_gtirb.expected b/src/test/correct/basic_sec_policy_write/clang/basic_sec_policy_write_gtirb.expected index b7f7d94a8..f836b50fe 100644 --- a/src/test/correct/basic_sec_policy_write/clang/basic_sec_policy_write_gtirb.expected +++ b/src/test/correct/basic_sec_policy_write/clang/basic_sec_policy_write_gtirb.expected @@ -1,21 +1,17 @@ var {:extern} Gamma_R0: bool; var {:extern} Gamma_R10: bool; -var {:extern} Gamma_R31: bool; var {:extern} Gamma_R8: bool; var {:extern} Gamma_R9: bool; var {:extern} Gamma_mem: [bv64]bool; -var {:extern} Gamma_stack: [bv64]bool; var {:extern} R0: bv64; var {:extern} R10: bv64; -var {:extern} R31: bv64; var {:extern} R8: bv64; var {:extern} R9: bv64; var {:extern} mem: [bv64]bv8; -var {:extern} stack: [bv64]bv8; const {:extern} $x_addr: bv64; -axiom ($x_addr == 69688bv64); +axiom ($x_addr == 131096bv64); const {:extern} $z_addr: bv64; -axiom ($z_addr == 69684bv64); +axiom ($z_addr == 131092bv64); function {:extern} L(mem$in: [bv64]bv8, index: bv64) returns (bool) { (if (index == $z_addr) then true else (if (index == $x_addr) then (memory_load32_le(mem$in, $z_addr) == 0bv32) else false)) } @@ -25,6 +21,10 @@ function {:extern} gamma_load32(gammaMap: [bv64]bool, index: bv64) returns (bool (gammaMap[bvadd64(index, 3bv64)] && (gammaMap[bvadd64(index, 2bv64)] && (gammaMap[bvadd64(index, 1bv64)] && gammaMap[index]))) } +function {:extern} gamma_load64(gammaMap: [bv64]bool, index: bv64) returns (bool) { + (gammaMap[bvadd64(index, 7bv64)] && (gammaMap[bvadd64(index, 6bv64)] && (gammaMap[bvadd64(index, 5bv64)] && (gammaMap[bvadd64(index, 4bv64)] && (gammaMap[bvadd64(index, 3bv64)] && (gammaMap[bvadd64(index, 2bv64)] && (gammaMap[bvadd64(index, 1bv64)] && gammaMap[index]))))))) +} + function {:extern} gamma_store32(gammaMap: [bv64]bool, index: bv64, value: bool) returns ([bv64]bool) { gammaMap[index := value][bvadd64(index, 1bv64) := value][bvadd64(index, 2bv64) := value][bvadd64(index, 3bv64) := value] } @@ -41,16 +41,17 @@ function {:extern} memory_store32_le(memory: [bv64]bv8, index: bv64, value: bv32 memory[index := value[8:0]][bvadd64(index, 1bv64) := value[16:8]][bvadd64(index, 2bv64) := value[24:16]][bvadd64(index, 3bv64) := value[32:24]] } -function {:extern} {:bvbuiltin "zero_extend 32"} zero_extend32_32(bv32) returns (bv64); procedure {:extern} rely(); modifies Gamma_mem, mem; ensures (forall i: bv64 :: (((mem[i] == old(mem[i])) ==> (Gamma_mem[i] == old(Gamma_mem[i]))))); ensures (old(memory_load32_le(mem, $z_addr)) == memory_load32_le(mem, $z_addr)); - free ensures (memory_load32_le(mem, 1888bv64) == 131073bv32); - free ensures (memory_load64_le(mem, 69064bv64) == 1808bv64); - free ensures (memory_load64_le(mem, 69072bv64) == 1728bv64); - free ensures (memory_load64_le(mem, 69592bv64) == 1812bv64); - free ensures (memory_load64_le(mem, 69672bv64) == 69672bv64); + free ensures (memory_load32_le(mem, 2316bv64) == 131073bv32); + free ensures (memory_load64_le(mem, 130424bv64) == 2256bv64); + free ensures (memory_load64_le(mem, 130432bv64) == 2176bv64); + free ensures (memory_load64_le(mem, 131032bv64) == 131092bv64); + free ensures (memory_load64_le(mem, 131040bv64) == 131096bv64); + free ensures (memory_load64_le(mem, 131056bv64) == 2260bv64); + free ensures (memory_load64_le(mem, 131080bv64) == 131080bv64); procedure {:extern} rely_transitive(); modifies Gamma_mem, mem; @@ -77,78 +78,65 @@ implementation {:extern} guarantee_reflexive() assert ((memory_load32_le(mem, $z_addr) != 0bv32) ==> (memory_load32_le(mem, $z_addr) != 0bv32)); } -procedure main_1812(); - modifies Gamma_R0, Gamma_R10, Gamma_R31, Gamma_R8, Gamma_R9, Gamma_mem, Gamma_stack, R0, R10, R31, R8, R9, mem, stack; +procedure main(); + modifies Gamma_R0, Gamma_R10, Gamma_R8, Gamma_R9, Gamma_mem, R0, R10, R8, R9, mem; requires (Gamma_R0 == false); - free requires (memory_load64_le(mem, 69664bv64) == 0bv64); - free requires (memory_load64_le(mem, 69672bv64) == 69672bv64); - free requires (memory_load32_le(mem, 1888bv64) == 131073bv32); - free requires (memory_load64_le(mem, 69064bv64) == 1808bv64); - free requires (memory_load64_le(mem, 69072bv64) == 1728bv64); - free requires (memory_load64_le(mem, 69592bv64) == 1812bv64); - free requires (memory_load64_le(mem, 69672bv64) == 69672bv64); - free ensures (Gamma_R31 == old(Gamma_R31)); - free ensures (R31 == old(R31)); - free ensures (memory_load32_le(mem, 1888bv64) == 131073bv32); - free ensures (memory_load64_le(mem, 69064bv64) == 1808bv64); - free ensures (memory_load64_le(mem, 69072bv64) == 1728bv64); - free ensures (memory_load64_le(mem, 69592bv64) == 1812bv64); - free ensures (memory_load64_le(mem, 69672bv64) == 69672bv64); - -implementation main_1812() + free requires (memory_load64_le(mem, 131072bv64) == 0bv64); + free requires (memory_load64_le(mem, 131080bv64) == 131080bv64); + free requires (memory_load32_le(mem, 2316bv64) == 131073bv32); + free requires (memory_load64_le(mem, 130424bv64) == 2256bv64); + free requires (memory_load64_le(mem, 130432bv64) == 2176bv64); + free requires (memory_load64_le(mem, 131032bv64) == 131092bv64); + free requires (memory_load64_le(mem, 131040bv64) == 131096bv64); + free requires (memory_load64_le(mem, 131056bv64) == 2260bv64); + free requires (memory_load64_le(mem, 131080bv64) == 131080bv64); + free ensures (memory_load32_le(mem, 2316bv64) == 131073bv32); + free ensures (memory_load64_le(mem, 130424bv64) == 2256bv64); + free ensures (memory_load64_le(mem, 130432bv64) == 2176bv64); + free ensures (memory_load64_le(mem, 131032bv64) == 131092bv64); + free ensures (memory_load64_le(mem, 131040bv64) == 131096bv64); + free ensures (memory_load64_le(mem, 131056bv64) == 2260bv64); + free ensures (memory_load64_le(mem, 131080bv64) == 131080bv64); + +implementation main() { - var Gamma_load14: bool; + var $load5: bv64; + var $load6: bv64; + var Gamma_$load5: bool; + var Gamma_$load6: bool; var Gamma_x_old: bool; - var load14: bv32; var z_old: bv32; - main_1812__0__GQL0b5TkRWCLhw9luiQEHw: - assume {:captureState "main_1812__0__GQL0b5TkRWCLhw9luiQEHw"} true; - R31, Gamma_R31 := bvadd64(R31, 18446744073709551600bv64), Gamma_R31; - stack, Gamma_stack := memory_store32_le(stack, bvadd64(R31, 12bv64), R0[32:0]), gamma_store32(Gamma_stack, bvadd64(R31, 12bv64), Gamma_R0); - assume {:captureState "1816_0"} true; - R9, Gamma_R9 := 69632bv64, true; - R8, Gamma_R8 := 1bv64, true; + $main$__0__$D9t2gNJrSmyMH3GAVRe3IQ: + assume {:captureState "$main$__0__$D9t2gNJrSmyMH3GAVRe3IQ"} true; + R8, Gamma_R8 := 126976bv64, true; + R9, Gamma_R9 := 126976bv64, true; + R0, Gamma_R0 := 0bv64, true; call rely(); - z_old := memory_load32_le(mem, $z_addr); - Gamma_x_old := (gamma_load32(Gamma_mem, $x_addr) || L(mem, $x_addr)); - assert (L(mem, bvadd64(R9, 52bv64)) ==> Gamma_R8); - mem, Gamma_mem := memory_store32_le(mem, bvadd64(R9, 52bv64), R8[32:0]), gamma_store32(Gamma_mem, bvadd64(R9, 52bv64), Gamma_R8); - assert ((bvadd64(R9, 52bv64) == $z_addr) ==> (L(mem, $x_addr) ==> Gamma_x_old)); - assert ((z_old != 0bv32) ==> (memory_load32_le(mem, $z_addr) != 0bv32)); - assume {:captureState "1828_0"} true; - load14, Gamma_load14 := memory_load32_le(stack, bvadd64(R31, 12bv64)), gamma_load32(Gamma_stack, bvadd64(R31, 12bv64)); - R10, Gamma_R10 := zero_extend32_32(load14), Gamma_load14; - R8, Gamma_R8 := 69632bv64, true; + $load5, Gamma_$load5 := memory_load64_le(mem, bvadd64(R8, 4064bv64)), (gamma_load64(Gamma_mem, bvadd64(R8, 4064bv64)) || L(mem, bvadd64(R8, 4064bv64))); + R8, Gamma_R8 := $load5, Gamma_$load5; call rely(); - z_old := memory_load32_le(mem, $z_addr); - Gamma_x_old := (gamma_load32(Gamma_mem, $x_addr) || L(mem, $x_addr)); - assert (L(mem, bvadd64(R8, 56bv64)) ==> Gamma_R10); - mem, Gamma_mem := memory_store32_le(mem, bvadd64(R8, 56bv64), R10[32:0]), gamma_store32(Gamma_mem, bvadd64(R8, 56bv64), Gamma_R10); - assert ((bvadd64(R8, 56bv64) == $z_addr) ==> (L(mem, $x_addr) ==> Gamma_x_old)); - assert ((z_old != 0bv32) ==> (memory_load32_le(mem, $z_addr) != 0bv32)); - assume {:captureState "1840_0"} true; - R0, Gamma_R0 := 0bv64, true; + $load6, Gamma_$load6 := memory_load64_le(mem, bvadd64(R9, 4056bv64)), (gamma_load64(Gamma_mem, bvadd64(R9, 4056bv64)) || L(mem, bvadd64(R9, 4056bv64))); + R9, Gamma_R9 := $load6, Gamma_$load6; + R10, Gamma_R10 := 2bv64, true; call rely(); + assert (L(mem, R8) ==> true); z_old := memory_load32_le(mem, $z_addr); Gamma_x_old := (gamma_load32(Gamma_mem, $x_addr) || L(mem, $x_addr)); - assert (L(mem, bvadd64(R8, 56bv64)) ==> true); - mem, Gamma_mem := memory_store32_le(mem, bvadd64(R8, 56bv64), 0bv32), gamma_store32(Gamma_mem, bvadd64(R8, 56bv64), true); - assert ((bvadd64(R8, 56bv64) == $z_addr) ==> (L(mem, $x_addr) ==> Gamma_x_old)); + mem, Gamma_mem := memory_store32_le(mem, R8, 0bv32), gamma_store32(Gamma_mem, R8, true); + assert ((R8 == $z_addr) ==> (L(mem, $x_addr) ==> Gamma_x_old)); assert ((z_old != 0bv32) ==> (memory_load32_le(mem, $z_addr) != 0bv32)); - assume {:captureState "1848_0"} true; - R8, Gamma_R8 := 2bv64, true; + assume {:captureState "2284$0"} true; call rely(); + assert (L(mem, R9) ==> Gamma_R10); z_old := memory_load32_le(mem, $z_addr); Gamma_x_old := (gamma_load32(Gamma_mem, $x_addr) || L(mem, $x_addr)); - assert (L(mem, bvadd64(R9, 52bv64)) ==> Gamma_R8); - mem, Gamma_mem := memory_store32_le(mem, bvadd64(R9, 52bv64), R8[32:0]), gamma_store32(Gamma_mem, bvadd64(R9, 52bv64), Gamma_R8); - assert ((bvadd64(R9, 52bv64) == $z_addr) ==> (L(mem, $x_addr) ==> Gamma_x_old)); + mem, Gamma_mem := memory_store32_le(mem, R9, R10[32:0]), gamma_store32(Gamma_mem, R9, Gamma_R10); + assert ((R9 == $z_addr) ==> (L(mem, $x_addr) ==> Gamma_x_old)); assert ((z_old != 0bv32) ==> (memory_load32_le(mem, $z_addr) != 0bv32)); - assume {:captureState "1856_0"} true; - R31, Gamma_R31 := bvadd64(R31, 16bv64), Gamma_R31; - goto main_1812_basil_return; - main_1812_basil_return: - assume {:captureState "main_1812_basil_return"} true; + assume {:captureState "2288$0"} true; + goto main_basil_return; + main_basil_return: + assume {:captureState "main_basil_return"} true; return; } diff --git a/src/test/correct/basic_sec_policy_write/clang_O2/basic_sec_policy_write.adt b/src/test/correct/basic_sec_policy_write/clang_O2/basic_sec_policy_write.adt deleted file mode 100644 index 7db64c775..000000000 --- a/src/test/correct/basic_sec_policy_write/clang_O2/basic_sec_policy_write.adt +++ /dev/null @@ -1,497 +0,0 @@ -Project(Attrs([Attr("filename","\"clang_O2/basic_sec_policy_write.out\""), -Attr("image-specification","(declare abi (name str))\n(declare arch (name str))\n(declare base-address (addr int))\n(declare bias (off int))\n(declare bits (size int))\n(declare code-region (addr int) (size int) (off int))\n(declare code-start (addr int))\n(declare entry-point (addr int))\n(declare external-reference (addr int) (name str))\n(declare format (name str))\n(declare is-executable (flag bool))\n(declare is-little-endian (flag bool))\n(declare llvm:base-address (addr int))\n(declare llvm:code-entry (name str) (off int) (size int))\n(declare llvm:coff-import-library (name str))\n(declare llvm:coff-virtual-section-header (name str) (addr int) (size int))\n(declare llvm:elf-program-header (name str) (off int) (size int))\n(declare llvm:elf-program-header-flags (name str) (ld bool) (r bool) \n (w bool) (x bool))\n(declare llvm:elf-virtual-program-header (name str) (addr int) (size int))\n(declare llvm:entry-point (addr int))\n(declare llvm:macho-symbol (name str) (value int))\n(declare llvm:name-reference (at int) (name str))\n(declare llvm:relocation (at int) (addr int))\n(declare llvm:section-entry (name str) (addr int) (size int) (off int))\n(declare llvm:section-flags (name str) (r bool) (w bool) (x bool))\n(declare llvm:segment-command (name str) (off int) (size int))\n(declare llvm:segment-command-flags (name str) (r bool) (w bool) (x bool))\n(declare llvm:symbol-entry (name str) (addr int) (size int) (off int)\n (value int))\n(declare llvm:virtual-segment-command (name str) (addr int) (size int))\n(declare mapped (addr int) (size int) (off int))\n(declare named-region (addr int) (size int) (name str))\n(declare named-symbol (addr int) (name str))\n(declare require (name str))\n(declare section (addr int) (size int))\n(declare segment (addr int) (size int) (r bool) (w bool) (x bool))\n(declare subarch (name str))\n(declare symbol-chunk (addr int) (size int) (root int))\n(declare symbol-value (addr int) (value int))\n(declare system (name str))\n(declare vendor (name str))\n\n(abi unknown)\n(arch aarch64)\n(base-address 0)\n(bias 0)\n(bits 64)\n(code-region 1840 20 1840)\n(code-region 1536 304 1536)\n(code-region 1440 96 1440)\n(code-region 1408 24 1408)\n(code-start 1588)\n(code-start 1536)\n(code-start 1812)\n(entry-point 1536)\n(external-reference 69568 _ITM_deregisterTMCloneTable)\n(external-reference 69576 __cxa_finalize)\n(external-reference 69584 __gmon_start__)\n(external-reference 69600 _ITM_registerTMCloneTable)\n(external-reference 69632 __libc_start_main)\n(external-reference 69640 __cxa_finalize)\n(external-reference 69648 __gmon_start__)\n(external-reference 69656 abort)\n(format elf)\n(is-executable true)\n(is-little-endian true)\n(llvm:base-address 0)\n(llvm:code-entry abort 0 0)\n(llvm:code-entry __cxa_finalize 0 0)\n(llvm:code-entry __libc_start_main 0 0)\n(llvm:code-entry _init 1408 0)\n(llvm:code-entry main 1812 28)\n(llvm:code-entry _start 1536 52)\n(llvm:code-entry abort@GLIBC_2.17 0 0)\n(llvm:code-entry _fini 1840 0)\n(llvm:code-entry __cxa_finalize@GLIBC_2.17 0 0)\n(llvm:code-entry __libc_start_main@GLIBC_2.34 0 0)\n(llvm:code-entry frame_dummy 1808 0)\n(llvm:code-entry __do_global_dtors_aux 1728 0)\n(llvm:code-entry register_tm_clones 1664 0)\n(llvm:code-entry deregister_tm_clones 1616 0)\n(llvm:code-entry call_weak_fn 1588 20)\n(llvm:code-entry .fini 1840 20)\n(llvm:code-entry .text 1536 304)\n(llvm:code-entry .plt 1440 96)\n(llvm:code-entry .init 1408 24)\n(llvm:elf-program-header 08 3528 568)\n(llvm:elf-program-header 07 0 0)\n(llvm:elf-program-header 06 1864 60)\n(llvm:elf-program-header 05 596 68)\n(llvm:elf-program-header 04 3544 480)\n(llvm:elf-program-header 03 3528 616)\n(llvm:elf-program-header 02 0 2108)\n(llvm:elf-program-header 01 568 27)\n(llvm:elf-program-header 00 64 504)\n(llvm:elf-program-header-flags 08 false true false false)\n(llvm:elf-program-header-flags 07 false true true false)\n(llvm:elf-program-header-flags 06 false true false false)\n(llvm:elf-program-header-flags 05 false true false false)\n(llvm:elf-program-header-flags 04 false true true false)\n(llvm:elf-program-header-flags 03 true true true false)\n(llvm:elf-program-header-flags 02 true true false true)\n(llvm:elf-program-header-flags 01 false true false false)\n(llvm:elf-program-header-flags 00 false true false false)\n(llvm:elf-virtual-program-header 08 69064 568)\n(llvm:elf-virtual-program-header 07 0 0)\n(llvm:elf-virtual-program-header 06 1864 60)\n(llvm:elf-virtual-program-header 05 596 68)\n(llvm:elf-virtual-program-header 04 69080 480)\n(llvm:elf-virtual-program-header 03 69064 632)\n(llvm:elf-virtual-program-header 02 0 2108)\n(llvm:elf-virtual-program-header 01 568 27)\n(llvm:elf-virtual-program-header 00 64 504)\n(llvm:entry-point 1536)\n(llvm:name-reference 69656 abort)\n(llvm:name-reference 69648 __gmon_start__)\n(llvm:name-reference 69640 __cxa_finalize)\n(llvm:name-reference 69632 __libc_start_main)\n(llvm:name-reference 69600 _ITM_registerTMCloneTable)\n(llvm:name-reference 69584 __gmon_start__)\n(llvm:name-reference 69576 __cxa_finalize)\n(llvm:name-reference 69568 _ITM_deregisterTMCloneTable)\n(llvm:section-entry .shstrtab 0 259 6980)\n(llvm:section-entry .strtab 0 580 6400)\n(llvm:section-entry .symtab 0 2184 4216)\n(llvm:section-entry .comment 0 71 4144)\n(llvm:section-entry .bss 69680 16 4144)\n(llvm:section-entry .data 69664 16 4128)\n(llvm:section-entry .got.plt 69608 56 4072)\n(llvm:section-entry .got 69560 48 4024)\n(llvm:section-entry .dynamic 69080 480 3544)\n(llvm:section-entry .fini_array 69072 8 3536)\n(llvm:section-entry .init_array 69064 8 3528)\n(llvm:section-entry .eh_frame 1928 180 1928)\n(llvm:section-entry .eh_frame_hdr 1864 60 1864)\n(llvm:section-entry .rodata 1860 4 1860)\n(llvm:section-entry .fini 1840 20 1840)\n(llvm:section-entry .text 1536 304 1536)\n(llvm:section-entry .plt 1440 96 1440)\n(llvm:section-entry .init 1408 24 1408)\n(llvm:section-entry .rela.plt 1312 96 1312)\n(llvm:section-entry .rela.dyn 1120 192 1120)\n(llvm:section-entry .gnu.version_r 1072 48 1072)\n(llvm:section-entry .gnu.version 1054 18 1054)\n(llvm:section-entry .dynstr 912 141 912)\n(llvm:section-entry .dynsym 696 216 696)\n(llvm:section-entry .gnu.hash 664 28 664)\n(llvm:section-entry .note.ABI-tag 632 32 632)\n(llvm:section-entry .note.gnu.build-id 596 36 596)\n(llvm:section-entry .interp 568 27 568)\n(llvm:section-flags .shstrtab true false false)\n(llvm:section-flags .strtab true false false)\n(llvm:section-flags .symtab true false false)\n(llvm:section-flags .comment true false false)\n(llvm:section-flags .bss true true false)\n(llvm:section-flags .data true true false)\n(llvm:section-flags .got.plt true true false)\n(llvm:section-flags .got true true false)\n(llvm:section-flags .dynamic true true false)\n(llvm:section-flags .fini_array true true false)\n(llvm:section-flags .init_array true true false)\n(llvm:section-flags .eh_frame true false false)\n(llvm:section-flags .eh_frame_hdr true false false)\n(llvm:section-flags .rodata true false false)\n(llvm:section-flags .fini true false true)\n(llvm:section-flags .text true false true)\n(llvm:section-flags .plt true false true)\n(llvm:section-flags .init true false true)\n(llvm:section-flags .rela.plt true false false)\n(llvm:section-flags .rela.dyn true false false)\n(llvm:section-flags .gnu.version_r true false false)\n(llvm:section-flags .gnu.version true false false)\n(llvm:section-flags .dynstr true false false)\n(llvm:section-flags .dynsym true false false)\n(llvm:section-flags .gnu.hash true false false)\n(llvm:section-flags .note.ABI-tag true false false)\n(llvm:section-flags .note.gnu.build-id true false false)\n(llvm:section-flags .interp true false false)\n(llvm:symbol-entry abort 0 0 0 0)\n(llvm:symbol-entry __cxa_finalize 0 0 0 0)\n(llvm:symbol-entry __libc_start_main 0 0 0 0)\n(llvm:symbol-entry _init 1408 0 1408 1408)\n(llvm:symbol-entry main 1812 28 1812 1812)\n(llvm:symbol-entry _start 1536 52 1536 1536)\n(llvm:symbol-entry abort@GLIBC_2.17 0 0 0 0)\n(llvm:symbol-entry _fini 1840 0 1840 1840)\n(llvm:symbol-entry __cxa_finalize@GLIBC_2.17 0 0 0 0)\n(llvm:symbol-entry __libc_start_main@GLIBC_2.34 0 0 0 0)\n(llvm:symbol-entry frame_dummy 1808 0 1808 1808)\n(llvm:symbol-entry __do_global_dtors_aux 1728 0 1728 1728)\n(llvm:symbol-entry register_tm_clones 1664 0 1664 1664)\n(llvm:symbol-entry deregister_tm_clones 1616 0 1616 1616)\n(llvm:symbol-entry call_weak_fn 1588 20 1588 1588)\n(mapped 0 2108 0)\n(mapped 69064 616 3528)\n(named-region 0 2108 02)\n(named-region 69064 632 03)\n(named-region 568 27 .interp)\n(named-region 596 36 .note.gnu.build-id)\n(named-region 632 32 .note.ABI-tag)\n(named-region 664 28 .gnu.hash)\n(named-region 696 216 .dynsym)\n(named-region 912 141 .dynstr)\n(named-region 1054 18 .gnu.version)\n(named-region 1072 48 .gnu.version_r)\n(named-region 1120 192 .rela.dyn)\n(named-region 1312 96 .rela.plt)\n(named-region 1408 24 .init)\n(named-region 1440 96 .plt)\n(named-region 1536 304 .text)\n(named-region 1840 20 .fini)\n(named-region 1860 4 .rodata)\n(named-region 1864 60 .eh_frame_hdr)\n(named-region 1928 180 .eh_frame)\n(named-region 69064 8 .init_array)\n(named-region 69072 8 .fini_array)\n(named-region 69080 480 .dynamic)\n(named-region 69560 48 .got)\n(named-region 69608 56 .got.plt)\n(named-region 69664 16 .data)\n(named-region 69680 16 .bss)\n(named-region 0 71 .comment)\n(named-region 0 2184 .symtab)\n(named-region 0 580 .strtab)\n(named-region 0 259 .shstrtab)\n(named-symbol 1588 call_weak_fn)\n(named-symbol 1616 deregister_tm_clones)\n(named-symbol 1664 register_tm_clones)\n(named-symbol 1728 __do_global_dtors_aux)\n(named-symbol 1808 frame_dummy)\n(named-symbol 0 __libc_start_main@GLIBC_2.34)\n(named-symbol 0 __cxa_finalize@GLIBC_2.17)\n(named-symbol 1840 _fini)\n(named-symbol 0 abort@GLIBC_2.17)\n(named-symbol 1536 _start)\n(named-symbol 1812 main)\n(named-symbol 1408 _init)\n(named-symbol 0 __libc_start_main)\n(named-symbol 0 __cxa_finalize)\n(named-symbol 0 abort)\n(require libc.so.6)\n(section 568 27)\n(section 596 36)\n(section 632 32)\n(section 664 28)\n(section 696 216)\n(section 912 141)\n(section 1054 18)\n(section 1072 48)\n(section 1120 192)\n(section 1312 96)\n(section 1408 24)\n(section 1440 96)\n(section 1536 304)\n(section 1840 20)\n(section 1860 4)\n(section 1864 60)\n(section 1928 180)\n(section 69064 8)\n(section 69072 8)\n(section 69080 480)\n(section 69560 48)\n(section 69608 56)\n(section 69664 16)\n(section 69680 16)\n(section 0 71)\n(section 0 2184)\n(section 0 580)\n(section 0 259)\n(segment 0 2108 true false true)\n(segment 69064 632 true true false)\n(subarch v8)\n(symbol-chunk 1588 20 1588)\n(symbol-chunk 1536 52 1536)\n(symbol-chunk 1812 28 1812)\n(symbol-value 1588 1588)\n(symbol-value 1616 1616)\n(symbol-value 1664 1664)\n(symbol-value 1728 1728)\n(symbol-value 1808 1808)\n(symbol-value 1840 1840)\n(symbol-value 1536 1536)\n(symbol-value 1812 1812)\n(symbol-value 1408 1408)\n(symbol-value 0 0)\n(system \"\")\n(vendor \"\")\n"), -Attr("abi-name","\"aarch64-linux-gnu-elf\"")]), -Sections([Section(".shstrtab", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x00\x06\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x48\x1c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x38\x00\x09\x00\x40\x00\x1d\x00\x1c\x00\x06\x00\x00\x00\x04\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x04\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x3c\x08\x00\x00\x00\x00\x00\x00\x3c\x08\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x01\x00\x00\x00\x06\x00\x00\x00\xc8\x0d\x00\x00\x00\x00\x00\x00\xc8\x0d\x01\x00\x00\x00\x00\x00\xc8\x0d\x01"), -Section(".strtab", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x00\x06\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x48\x1c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x38\x00\x09\x00\x40\x00\x1d\x00\x1c\x00\x06\x00\x00\x00\x04\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x04\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x3c\x08\x00\x00\x00\x00\x00\x00\x3c\x08\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x01\x00\x00\x00\x06\x00\x00\x00\xc8\x0d\x00\x00\x00\x00\x00\x00\xc8\x0d\x01\x00\x00\x00\x00\x00\xc8\x0d\x01\x00\x00\x00\x00\x00\x68\x02\x00\x00\x00\x00\x00\x00\x78\x02\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x02\x00\x00\x00\x06\x00\x00\x00\xd8\x0d\x00\x00\x00\x00\x00\x00\xd8\x0d\x01\x00\x00\x00\x00\x00\xd8\x0d\x01\x00\x00\x00\x00\x00\xe0\x01\x00\x00\x00\x00\x00\x00\xe0\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x04\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x50\xe5\x74\x64\x04\x00\x00\x00\x48\x07\x00\x00\x00\x00\x00\x00\x48\x07\x00\x00\x00\x00\x00\x00\x48\x07\x00\x00\x00\x00\x00\x00\x3c\x00\x00\x00\x00\x00\x00\x00\x3c\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x51\xe5\x74\x64\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x52\xe5\x74\x64\x04\x00\x00\x00\xc8\x0d\x00\x00\x00\x00\x00\x00\xc8\x0d\x01\x00\x00\x00\x00\x00\xc8\x0d\x01\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x2f\x6c\x69\x62\x2f\x6c\x64\x2d\x6c\x69\x6e\x75"), -Section(".comment", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x00\x06\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x48\x1c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x38\x00\x09\x00\x40\x00\x1d\x00\x1c\x00\x06\x00\x00\x00\x04\x00\x00"), -Section(".interp", 0x238, "\x2f\x6c\x69\x62\x2f\x6c\x64\x2d\x6c\x69\x6e\x75\x78\x2d\x61\x61\x72\x63\x68\x36\x34\x2e\x73\x6f\x2e\x31\x00"), -Section(".note.gnu.build-id", 0x254, "\x04\x00\x00\x00\x14\x00\x00\x00\x03\x00\x00\x00\x47\x4e\x55\x00\x18\xbb\xa9\x7d\xb5\xba\xcd\x98\xa8\x5e\xf8\x42\x1b\x6c\x78\xbd\x84\x1f\x01\xc3"), -Section(".note.ABI-tag", 0x278, "\x04\x00\x00\x00\x10\x00\x00\x00\x01\x00\x00\x00\x47\x4e\x55\x00\x00\x00\x00\x00\x03\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00"), -Section(".gnu.hash", 0x298, "\x01\x00\x00\x00\x01\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".dynsym", 0x2B8, "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x0b\x00\x80\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x17\x00\x20\x10\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x48\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x22\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x22\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x73\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".dynstr", 0x390, "\x00\x5f\x5f\x63\x78\x61\x5f\x66\x69\x6e\x61\x6c\x69\x7a\x65\x00\x5f\x5f\x6c\x69\x62\x63\x5f\x73\x74\x61\x72\x74\x5f\x6d\x61\x69\x6e\x00\x61\x62\x6f\x72\x74\x00\x6c\x69\x62\x63\x2e\x73\x6f\x2e\x36\x00\x47\x4c\x49\x42\x43\x5f\x32\x2e\x31\x37\x00\x47\x4c\x49\x42\x43\x5f\x32\x2e\x33\x34\x00\x5f\x49\x54\x4d\x5f\x64\x65\x72\x65\x67\x69\x73\x74\x65\x72\x54\x4d\x43\x6c\x6f\x6e\x65\x54\x61\x62\x6c\x65\x00\x5f\x5f\x67\x6d\x6f\x6e\x5f\x73\x74\x61\x72\x74\x5f\x5f\x00\x5f\x49\x54\x4d\x5f\x72\x65\x67\x69\x73\x74\x65\x72\x54\x4d\x43\x6c\x6f\x6e\x65\x54\x61\x62\x6c\x65\x00"), -Section(".gnu.version", 0x41E, "\x00\x00\x00\x00\x00\x00\x02\x00\x01\x00\x03\x00\x01\x00\x03\x00\x01\x00"), -Section(".gnu.version_r", 0x430, "\x01\x00\x02\x00\x28\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x97\x91\x96\x06\x00\x00\x03\x00\x32\x00\x00\x00\x10\x00\x00\x00\xb4\x91\x96\x06\x00\x00\x02\x00\x3d\x00\x00\x00\x00\x00\x00\x00"), -Section(".rela.dyn", 0x460, "\xc8\x0d\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x10\x07\x00\x00\x00\x00\x00\x00\xd0\x0d\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\xc0\x06\x00\x00\x00\x00\x00\x00\xd8\x0f\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x14\x07\x00\x00\x00\x00\x00\x00\x28\x10\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x28\x10\x01\x00\x00\x00\x00\x00\xc0\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xc8\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xd0\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe0\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".rela.plt", 0x520, "\x00\x10\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x08\x10\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x10\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x18\x10\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".init", 0x580, "\x1f\x20\x03\xd5\xfd\x7b\xbf\xa9\xfd\x03\x00\x91\x2a\x00\x00\x94\xfd\x7b\xc1\xa8\xc0\x03\x5f\xd6"), -Section(".plt", 0x5A0, "\xf0\x7b\xbf\xa9\x90\x00\x00\x90\x11\xfe\x47\xf9\x10\xe2\x3f\x91\x20\x02\x1f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x90\x00\x00\xb0\x11\x02\x40\xf9\x10\x02\x00\x91\x20\x02\x1f\xd6\x90\x00\x00\xb0\x11\x06\x40\xf9\x10\x22\x00\x91\x20\x02\x1f\xd6\x90\x00\x00\xb0\x11\x0a\x40\xf9\x10\x42\x00\x91\x20\x02\x1f\xd6\x90\x00\x00\xb0\x11\x0e\x40\xf9\x10\x62\x00\x91\x20\x02\x1f\xd6"), -Section(".text", 0x600, "\x1f\x20\x03\xd5\x1d\x00\x80\xd2\x1e\x00\x80\xd2\xe5\x03\x00\xaa\xe1\x03\x40\xf9\xe2\x23\x00\x91\xe6\x03\x00\x91\x80\x00\x00\x90\x00\xec\x47\xf9\x03\x00\x80\xd2\x04\x00\x80\xd2\xe5\xff\xff\x97\xf0\xff\xff\x97\x80\x00\x00\x90\x00\xe8\x47\xf9\x40\x00\x00\xb4\xe8\xff\xff\x17\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x80\x00\x00\xb0\x00\xc0\x00\x91\x81\x00\x00\xb0\x21\xc0\x00\x91\x3f\x00\x00\xeb\xc0\x00\x00\x54\x81\x00\x00\x90\x21\xe0\x47\xf9\x61\x00\x00\xb4\xf0\x03\x01\xaa\x00\x02\x1f\xd6\xc0\x03\x5f\xd6\x80\x00\x00\xb0\x00\xc0\x00\x91\x81\x00\x00\xb0\x21\xc0\x00\x91\x21\x00\x00\xcb\x22\xfc\x7f\xd3\x41\x0c\x81\x8b\x21\xfc\x41\x93\xc1\x00\x00\xb4\x82\x00\x00\x90\x42\xf0\x47\xf9\x62\x00\x00\xb4\xf0\x03\x02\xaa\x00\x02\x1f\xd6\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\xfd\x7b\xbe\xa9\xfd\x03\x00\x91\xf3\x0b\x00\xf9\x93\x00\x00\xb0\x60\xc2\x40\x39\x40\x01\x00\x35\x80\x00\x00\x90\x00\xe4\x47\xf9\x80\x00\x00\xb4\x80\x00\x00\xb0\x00\x14\x40\xf9\xb9\xff\xff\x97\xd8\xff\xff\x97\x20\x00\x80\x52\x60\xc2\x00\x39\xf3\x0b\x40\xf9\xfd\x7b\xc2\xa8\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\xdc\xff\xff\x17\xe0\x03\x1f\x2a\x88\x00\x00\xb0\x89\x00\x00\xb0\x4a\x00\x80\x52\x1f\x39\x00\xb9\x2a\x35\x00\xb9\xc0\x03\x5f\xd6"), -Section(".fini", 0x730, "\x1f\x20\x03\xd5\xfd\x7b\xbf\xa9\xfd\x03\x00\x91\xfd\x7b\xc1\xa8\xc0\x03\x5f\xd6"), -Section(".rodata", 0x744, "\x01\x00\x02\x00"), -Section(".eh_frame_hdr", 0x748, "\x01\x1b\x03\x3b\x3c\x00\x00\x00\x06\x00\x00\x00\xb8\xfe\xff\xff\x54\x00\x00\x00\x08\xff\xff\xff\x68\x00\x00\x00\x38\xff\xff\xff\x7c\x00\x00\x00\x78\xff\xff\xff\x90\x00\x00\x00\xc8\xff\xff\xff\xb4\x00\x00\x00\xcc\xff\xff\xff\xdc\x00\x00\x00"), -Section(".eh_frame", 0x788, "\x10\x00\x00\x00\x00\x00\x00\x00\x01\x7a\x52\x00\x04\x78\x1e\x01\x1b\x0c\x1f\x00\x10\x00\x00\x00\x18\x00\x00\x00\x5c\xfe\xff\xff\x34\x00\x00\x00\x00\x41\x07\x1e\x10\x00\x00\x00\x2c\x00\x00\x00\x98\xfe\xff\xff\x30\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x40\x00\x00\x00\xb4\xfe\xff\xff\x3c\x00\x00\x00\x00\x00\x00\x00\x20\x00\x00\x00\x54\x00\x00\x00\xe0\xfe\xff\xff\x48\x00\x00\x00\x00\x41\x0e\x20\x9d\x04\x9e\x03\x42\x93\x02\x4e\xde\xdd\xd3\x0e\x00\x00\x00\x00\x10\x00\x00\x00\x78\x00\x00\x00\x0c\xff\xff\xff\x04\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x01\x7a\x52\x00\x01\x7c\x1e\x01\x1b\x0c\x1f\x00\x10\x00\x00\x00\x18\x00\x00\x00\xe8\xfe\xff\xff\x1c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".fini_array", 0x10DD0, "\xc0\x06\x00\x00\x00\x00\x00\x00"), -Section(".dynamic", 0x10DD8, "\x01\x00\x00\x00\x00\x00\x00\x00\x28\x00\x00\x00\x00\x00\x00\x00\x0c\x00\x00\x00\x00\x00\x00\x00\x80\x05\x00\x00\x00\x00\x00\x00\x0d\x00\x00\x00\x00\x00\x00\x00\x30\x07\x00\x00\x00\x00\x00\x00\x19\x00\x00\x00\x00\x00\x00\x00\xc8\x0d\x01\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x1a\x00\x00\x00\x00\x00\x00\x00\xd0\x0d\x01\x00\x00\x00\x00\x00\x1c\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\xf5\xfe\xff\x6f\x00\x00\x00\x00\x98\x02\x00\x00\x00\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x90\x03\x00\x00\x00\x00\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\xb8\x02\x00\x00\x00\x00\x00\x00\x0a\x00\x00\x00\x00\x00\x00\x00\x8d\x00\x00\x00\x00\x00\x00\x00\x0b\x00\x00\x00\x00\x00\x00\x00\x18\x00\x00\x00\x00\x00\x00\x00\x15\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\xe8\x0f\x01\x00\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x60\x00\x00\x00\x00\x00\x00\x00\x14\x00\x00\x00\x00\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x17\x00\x00\x00\x00\x00\x00\x00\x20\x05\x00\x00\x00\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x60\x04\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\xc0\x00\x00\x00\x00\x00\x00\x00\x09\x00\x00\x00\x00\x00\x00\x00\x18\x00\x00\x00\x00\x00\x00\x00\xfb\xff\xff\x6f\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\xfe\xff\xff\x6f\x00\x00\x00\x00\x30\x04\x00\x00\x00\x00\x00\x00\xff\xff\xff\x6f\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\xf0\xff\xff\x6f\x00\x00\x00\x00\x1e\x04\x00\x00\x00\x00\x00\x00\xf9\xff\xff\x6f\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".init_array", 0x10DC8, "\x10\x07\x00\x00\x00\x00\x00\x00"), -Section(".got", 0x10FB8, "\xd8\x0d\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x14\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".got.plt", 0x10FE8, "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xa0\x05\x00\x00\x00\x00\x00\x00\xa0\x05\x00\x00\x00\x00\x00\x00\xa0\x05\x00\x00\x00\x00\x00\x00\xa0\x05\x00\x00\x00\x00\x00\x00"), -Section(".data", 0x11020, "\x00\x00\x00\x00\x00\x00\x00\x00\x28\x10\x01\x00\x00\x00\x00\x00")]), -Memmap([Annotation(Region(0x0,0x83B), Attr("segment","02 0 2108")), -Annotation(Region(0x600,0x633), Attr("symbol","\"_start\"")), -Annotation(Region(0x0,0x102), Attr("section","\".shstrtab\"")), -Annotation(Region(0x0,0x243), Attr("section","\".strtab\"")), -Annotation(Region(0x0,0x46), Attr("section","\".comment\"")), -Annotation(Region(0x238,0x252), Attr("section","\".interp\"")), -Annotation(Region(0x254,0x277), Attr("section","\".note.gnu.build-id\"")), -Annotation(Region(0x278,0x297), Attr("section","\".note.ABI-tag\"")), -Annotation(Region(0x298,0x2B3), Attr("section","\".gnu.hash\"")), -Annotation(Region(0x2B8,0x38F), Attr("section","\".dynsym\"")), -Annotation(Region(0x390,0x41C), Attr("section","\".dynstr\"")), -Annotation(Region(0x41E,0x42F), Attr("section","\".gnu.version\"")), -Annotation(Region(0x430,0x45F), Attr("section","\".gnu.version_r\"")), -Annotation(Region(0x460,0x51F), Attr("section","\".rela.dyn\"")), -Annotation(Region(0x520,0x57F), Attr("section","\".rela.plt\"")), -Annotation(Region(0x580,0x597), Attr("section","\".init\"")), -Annotation(Region(0x5A0,0x5FF), Attr("section","\".plt\"")), -Annotation(Region(0x580,0x597), Attr("code-region","()")), -Annotation(Region(0x5A0,0x5FF), Attr("code-region","()")), -Annotation(Region(0x600,0x633), Attr("symbol-info","_start 0x600 52")), -Annotation(Region(0x634,0x647), Attr("symbol","\"call_weak_fn\"")), -Annotation(Region(0x634,0x647), Attr("symbol-info","call_weak_fn 0x634 20")), -Annotation(Region(0x600,0x72F), Attr("section","\".text\"")), -Annotation(Region(0x600,0x72F), Attr("code-region","()")), -Annotation(Region(0x714,0x72F), Attr("symbol","\"main\"")), -Annotation(Region(0x714,0x72F), Attr("symbol-info","main 0x714 28")), -Annotation(Region(0x730,0x743), Attr("section","\".fini\"")), -Annotation(Region(0x730,0x743), Attr("code-region","()")), -Annotation(Region(0x744,0x747), Attr("section","\".rodata\"")), -Annotation(Region(0x748,0x783), Attr("section","\".eh_frame_hdr\"")), -Annotation(Region(0x788,0x83B), Attr("section","\".eh_frame\"")), -Annotation(Region(0x10DC8,0x1102F), Attr("segment","03 0x10DC8 632")), -Annotation(Region(0x10DD0,0x10DD7), Attr("section","\".fini_array\"")), -Annotation(Region(0x10DD8,0x10FB7), Attr("section","\".dynamic\"")), -Annotation(Region(0x10DC8,0x10DCF), Attr("section","\".init_array\"")), -Annotation(Region(0x10FB8,0x10FE7), Attr("section","\".got\"")), -Annotation(Region(0x10FE8,0x1101F), Attr("section","\".got.plt\"")), -Annotation(Region(0x11020,0x1102F), Attr("section","\".data\""))]), -Program(Tid(1_441, "%000005a1"), Attrs([]), - Subs([Sub(Tid(1_391, "@__cxa_finalize"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x5D0"), -Attr("stub","()")]), "__cxa_finalize", Args([Arg(Tid(1_442, "%000005a2"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("__cxa_finalize_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(805, "@__cxa_finalize"), - Attrs([Attr("address","0x5D0")]), Phis([]), -Defs([Def(Tid(1_053, "%0000041d"), Attrs([Attr("address","0x5D0"), -Attr("insn","adrp x16, #69632")]), Var("R16",Imm(64)), Int(69632,64)), -Def(Tid(1_060, "%00000424"), Attrs([Attr("address","0x5D4"), -Attr("insn","ldr x17, [x16, #0x8]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(1_066, "%0000042a"), Attrs([Attr("address","0x5D8"), -Attr("insn","add x16, x16, #0x8")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(8,64)))]), Jmps([Call(Tid(1_071, "%0000042f"), - Attrs([Attr("address","0x5DC"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), -Sub(Tid(1_392, "@__do_global_dtors_aux"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x6C0")]), - "__do_global_dtors_aux", Args([Arg(Tid(1_443, "%000005a3"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("__do_global_dtors_aux_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(618, "@__do_global_dtors_aux"), - Attrs([Attr("address","0x6C0")]), Phis([]), Defs([Def(Tid(622, "%0000026e"), - Attrs([Attr("address","0x6C0"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("#3",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(18446744073709551584,64))), -Def(Tid(628, "%00000274"), Attrs([Attr("address","0x6C0"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("#3",Imm(64)),Var("R29",Imm(64)),LittleEndian(),64)), -Def(Tid(634, "%0000027a"), Attrs([Attr("address","0x6C0"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("#3",Imm(64)),Int(8,64)),Var("R30",Imm(64)),LittleEndian(),64)), -Def(Tid(638, "%0000027e"), Attrs([Attr("address","0x6C0"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("R31",Imm(64)), -Var("#3",Imm(64))), Def(Tid(644, "%00000284"), - Attrs([Attr("address","0x6C4"), Attr("insn","mov x29, sp")]), - Var("R29",Imm(64)), Var("R31",Imm(64))), Def(Tid(652, "%0000028c"), - Attrs([Attr("address","0x6C8"), Attr("insn","str x19, [sp, #0x10]")]), - Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(16,64)),Var("R19",Imm(64)),LittleEndian(),64)), -Def(Tid(657, "%00000291"), Attrs([Attr("address","0x6CC"), -Attr("insn","adrp x19, #69632")]), Var("R19",Imm(64)), Int(69632,64)), -Def(Tid(664, "%00000298"), Attrs([Attr("address","0x6D0"), -Attr("insn","ldrb w0, [x19, #0x30]")]), Var("R0",Imm(64)), -UNSIGNED(64,Load(Var("mem",Mem(64,8)),PLUS(Var("R19",Imm(64)),Int(48,64)),LittleEndian(),8)))]), -Jmps([Goto(Tid(671, "%0000029f"), Attrs([Attr("address","0x6D4"), -Attr("insn","cbnz w0, #0x28")]), - NEQ(Extract(31,0,Var("R0",Imm(64))),Int(0,32)), -Direct(Tid(669, "%0000029d"))), Goto(Tid(1_431, "%00000597"), Attrs([]), - Int(1,1), Direct(Tid(750, "%000002ee")))])), Blk(Tid(750, "%000002ee"), - Attrs([Attr("address","0x6D8")]), Phis([]), Defs([Def(Tid(753, "%000002f1"), - Attrs([Attr("address","0x6D8"), Attr("insn","adrp x0, #65536")]), - Var("R0",Imm(64)), Int(65536,64)), Def(Tid(760, "%000002f8"), - Attrs([Attr("address","0x6DC"), Attr("insn","ldr x0, [x0, #0xfc8]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(4040,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(766, "%000002fe"), Attrs([Attr("address","0x6E0"), -Attr("insn","cbz x0, #0x10")]), EQ(Var("R0",Imm(64)),Int(0,64)), -Direct(Tid(764, "%000002fc"))), Goto(Tid(1_432, "%00000598"), Attrs([]), - Int(1,1), Direct(Tid(789, "%00000315")))])), Blk(Tid(789, "%00000315"), - Attrs([Attr("address","0x6E4")]), Phis([]), Defs([Def(Tid(792, "%00000318"), - Attrs([Attr("address","0x6E4"), Attr("insn","adrp x0, #69632")]), - Var("R0",Imm(64)), Int(69632,64)), Def(Tid(799, "%0000031f"), - Attrs([Attr("address","0x6E8"), Attr("insn","ldr x0, [x0, #0x28]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(40,64)),LittleEndian(),64)), -Def(Tid(804, "%00000324"), Attrs([Attr("address","0x6EC"), -Attr("insn","bl #-0x11c")]), Var("R30",Imm(64)), Int(1776,64))]), -Jmps([Call(Tid(807, "%00000327"), Attrs([Attr("address","0x6EC"), -Attr("insn","bl #-0x11c")]), Int(1,1), -(Direct(Tid(1_391, "@__cxa_finalize")),Direct(Tid(764, "%000002fc"))))])), -Blk(Tid(764, "%000002fc"), Attrs([Attr("address","0x6F0")]), Phis([]), -Defs([Def(Tid(772, "%00000304"), Attrs([Attr("address","0x6F0"), -Attr("insn","bl #-0xa0")]), Var("R30",Imm(64)), Int(1780,64))]), -Jmps([Call(Tid(774, "%00000306"), Attrs([Attr("address","0x6F0"), -Attr("insn","bl #-0xa0")]), Int(1,1), -(Direct(Tid(1_405, "@deregister_tm_clones")),Direct(Tid(776, "%00000308"))))])), -Blk(Tid(776, "%00000308"), Attrs([Attr("address","0x6F4")]), Phis([]), -Defs([Def(Tid(779, "%0000030b"), Attrs([Attr("address","0x6F4"), -Attr("insn","mov w0, #0x1")]), Var("R0",Imm(64)), Int(1,64)), -Def(Tid(787, "%00000313"), Attrs([Attr("address","0x6F8"), -Attr("insn","strb w0, [x19, #0x30]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R19",Imm(64)),Int(48,64)),Extract(7,0,Var("R0",Imm(64))),LittleEndian(),8))]), -Jmps([Goto(Tid(1_433, "%00000599"), Attrs([]), Int(1,1), -Direct(Tid(669, "%0000029d")))])), Blk(Tid(669, "%0000029d"), - Attrs([Attr("address","0x6FC")]), Phis([]), Defs([Def(Tid(679, "%000002a7"), - Attrs([Attr("address","0x6FC"), Attr("insn","ldr x19, [sp, #0x10]")]), - Var("R19",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(16,64)),LittleEndian(),64)), -Def(Tid(686, "%000002ae"), Attrs([Attr("address","0x700"), -Attr("insn","ldp x29, x30, [sp], #0x20")]), Var("R29",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(691, "%000002b3"), Attrs([Attr("address","0x700"), -Attr("insn","ldp x29, x30, [sp], #0x20")]), Var("R30",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(695, "%000002b7"), Attrs([Attr("address","0x700"), -Attr("insn","ldp x29, x30, [sp], #0x20")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(32,64)))]), Jmps([Call(Tid(700, "%000002bc"), - Attrs([Attr("address","0x704"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), Sub(Tid(1_396, "@__libc_start_main"), - Attrs([Attr("c.proto","signed (*)(signed (*)(signed , char** , char** );* main, signed , char** , \nvoid* auxv)"), -Attr("address","0x5C0"), Attr("stub","()")]), "__libc_start_main", - Args([Arg(Tid(1_444, "%000005a4"), - Attrs([Attr("c.layout","**[ : 64]"), -Attr("c.data","Top:u64 ptr ptr"), -Attr("c.type","signed (*)(signed , char** , char** );*")]), - Var("__libc_start_main_main",Imm(64)), Var("R0",Imm(64)), In()), -Arg(Tid(1_445, "%000005a5"), Attrs([Attr("c.layout","[signed : 32]"), -Attr("c.data","Top:u32"), Attr("c.type","signed")]), - Var("__libc_start_main_arg2",Imm(32)), LOW(32,Var("R1",Imm(64))), In()), -Arg(Tid(1_446, "%000005a6"), Attrs([Attr("c.layout","**[char : 8]"), -Attr("c.data","Top:u8 ptr ptr"), Attr("c.type","char**")]), - Var("__libc_start_main_arg3",Imm(64)), Var("R2",Imm(64)), Both()), -Arg(Tid(1_447, "%000005a7"), Attrs([Attr("c.layout","*[ : 8]"), -Attr("c.data","{} ptr"), Attr("c.type","void*")]), - Var("__libc_start_main_auxv",Imm(64)), Var("R3",Imm(64)), Both()), -Arg(Tid(1_448, "%000005a8"), Attrs([Attr("c.layout","[signed : 32]"), -Attr("c.data","Top:u32"), Attr("c.type","signed")]), - Var("__libc_start_main_result",Imm(32)), LOW(32,Var("R0",Imm(64))), -Out())]), Blks([Blk(Tid(451, "@__libc_start_main"), - Attrs([Attr("address","0x5C0")]), Phis([]), -Defs([Def(Tid(1_031, "%00000407"), Attrs([Attr("address","0x5C0"), -Attr("insn","adrp x16, #69632")]), Var("R16",Imm(64)), Int(69632,64)), -Def(Tid(1_038, "%0000040e"), Attrs([Attr("address","0x5C4"), -Attr("insn","ldr x17, [x16]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R16",Imm(64)),LittleEndian(),64)), -Def(Tid(1_044, "%00000414"), Attrs([Attr("address","0x5C8"), -Attr("insn","add x16, x16, #0x0")]), Var("R16",Imm(64)), -Var("R16",Imm(64)))]), Jmps([Call(Tid(1_049, "%00000419"), - Attrs([Attr("address","0x5CC"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), Sub(Tid(1_397, "@_fini"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x730")]), - "_fini", Args([Arg(Tid(1_449, "%000005a9"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("_fini_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(31, "@_fini"), - Attrs([Attr("address","0x730")]), Phis([]), Defs([Def(Tid(37, "%00000025"), - Attrs([Attr("address","0x734"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("#0",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(18446744073709551600,64))), -Def(Tid(43, "%0000002b"), Attrs([Attr("address","0x734"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("#0",Imm(64)),Var("R29",Imm(64)),LittleEndian(),64)), -Def(Tid(49, "%00000031"), Attrs([Attr("address","0x734"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("#0",Imm(64)),Int(8,64)),Var("R30",Imm(64)),LittleEndian(),64)), -Def(Tid(53, "%00000035"), Attrs([Attr("address","0x734"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("R31",Imm(64)), -Var("#0",Imm(64))), Def(Tid(59, "%0000003b"), Attrs([Attr("address","0x738"), -Attr("insn","mov x29, sp")]), Var("R29",Imm(64)), Var("R31",Imm(64))), -Def(Tid(66, "%00000042"), Attrs([Attr("address","0x73C"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R29",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(71, "%00000047"), Attrs([Attr("address","0x73C"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R30",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(75, "%0000004b"), Attrs([Attr("address","0x73C"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(16,64)))]), Jmps([Call(Tid(80, "%00000050"), - Attrs([Attr("address","0x740"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), Sub(Tid(1_398, "@_init"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x580")]), - "_init", Args([Arg(Tid(1_450, "%000005aa"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("_init_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(1_226, "@_init"), - Attrs([Attr("address","0x580")]), Phis([]), -Defs([Def(Tid(1_232, "%000004d0"), Attrs([Attr("address","0x584"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("#5",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(18446744073709551600,64))), -Def(Tid(1_238, "%000004d6"), Attrs([Attr("address","0x584"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("#5",Imm(64)),Var("R29",Imm(64)),LittleEndian(),64)), -Def(Tid(1_244, "%000004dc"), Attrs([Attr("address","0x584"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("#5",Imm(64)),Int(8,64)),Var("R30",Imm(64)),LittleEndian(),64)), -Def(Tid(1_248, "%000004e0"), Attrs([Attr("address","0x584"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("R31",Imm(64)), -Var("#5",Imm(64))), Def(Tid(1_254, "%000004e6"), - Attrs([Attr("address","0x588"), Attr("insn","mov x29, sp")]), - Var("R29",Imm(64)), Var("R31",Imm(64))), Def(Tid(1_259, "%000004eb"), - Attrs([Attr("address","0x58C"), Attr("insn","bl #0xa8")]), - Var("R30",Imm(64)), Int(1424,64))]), Jmps([Call(Tid(1_261, "%000004ed"), - Attrs([Attr("address","0x58C"), Attr("insn","bl #0xa8")]), Int(1,1), -(Direct(Tid(1_403, "@call_weak_fn")),Direct(Tid(1_263, "%000004ef"))))])), -Blk(Tid(1_263, "%000004ef"), Attrs([Attr("address","0x590")]), Phis([]), -Defs([Def(Tid(1_268, "%000004f4"), Attrs([Attr("address","0x590"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R29",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(1_273, "%000004f9"), Attrs([Attr("address","0x590"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R30",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(1_277, "%000004fd"), Attrs([Attr("address","0x590"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(16,64)))]), Jmps([Call(Tid(1_282, "%00000502"), - Attrs([Attr("address","0x594"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), Sub(Tid(1_399, "@_start"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x600"), -Attr("stub","()"), Attr("entry-point","()")]), "_start", - Args([Arg(Tid(1_451, "%000005ab"), Attrs([Attr("c.layout","[signed : 32]"), -Attr("c.data","Top:u32"), Attr("c.type","signed")]), - Var("_start_result",Imm(32)), LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(388, "@_start"), Attrs([Attr("address","0x600")]), Phis([]), -Defs([Def(Tid(393, "%00000189"), Attrs([Attr("address","0x604"), -Attr("insn","mov x29, #0x0")]), Var("R29",Imm(64)), Int(0,64)), -Def(Tid(398, "%0000018e"), Attrs([Attr("address","0x608"), -Attr("insn","mov x30, #0x0")]), Var("R30",Imm(64)), Int(0,64)), -Def(Tid(404, "%00000194"), Attrs([Attr("address","0x60C"), -Attr("insn","mov x5, x0")]), Var("R5",Imm(64)), Var("R0",Imm(64))), -Def(Tid(411, "%0000019b"), Attrs([Attr("address","0x610"), -Attr("insn","ldr x1, [sp]")]), Var("R1",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(417, "%000001a1"), Attrs([Attr("address","0x614"), -Attr("insn","add x2, sp, #0x8")]), Var("R2",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(8,64))), Def(Tid(423, "%000001a7"), - Attrs([Attr("address","0x618"), Attr("insn","mov x6, sp")]), - Var("R6",Imm(64)), Var("R31",Imm(64))), Def(Tid(428, "%000001ac"), - Attrs([Attr("address","0x61C"), Attr("insn","adrp x0, #65536")]), - Var("R0",Imm(64)), Int(65536,64)), Def(Tid(435, "%000001b3"), - Attrs([Attr("address","0x620"), Attr("insn","ldr x0, [x0, #0xfd8]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(4056,64)),LittleEndian(),64)), -Def(Tid(440, "%000001b8"), Attrs([Attr("address","0x624"), -Attr("insn","mov x3, #0x0")]), Var("R3",Imm(64)), Int(0,64)), -Def(Tid(445, "%000001bd"), Attrs([Attr("address","0x628"), -Attr("insn","mov x4, #0x0")]), Var("R4",Imm(64)), Int(0,64)), -Def(Tid(450, "%000001c2"), Attrs([Attr("address","0x62C"), -Attr("insn","bl #-0x6c")]), Var("R30",Imm(64)), Int(1584,64))]), -Jmps([Call(Tid(453, "%000001c5"), Attrs([Attr("address","0x62C"), -Attr("insn","bl #-0x6c")]), Int(1,1), -(Direct(Tid(1_396, "@__libc_start_main")),Direct(Tid(455, "%000001c7"))))])), -Blk(Tid(455, "%000001c7"), Attrs([Attr("address","0x630")]), Phis([]), -Defs([Def(Tid(458, "%000001ca"), Attrs([Attr("address","0x630"), -Attr("insn","bl #-0x40")]), Var("R30",Imm(64)), Int(1588,64))]), -Jmps([Call(Tid(461, "%000001cd"), Attrs([Attr("address","0x630"), -Attr("insn","bl #-0x40")]), Int(1,1), -(Direct(Tid(1_402, "@abort")),Direct(Tid(1_434, "%0000059a"))))])), -Blk(Tid(1_434, "%0000059a"), Attrs([]), Phis([]), Defs([]), -Jmps([Call(Tid(1_435, "%0000059b"), Attrs([]), Int(1,1), -(Direct(Tid(1_403, "@call_weak_fn")),))]))])), Sub(Tid(1_402, "@abort"), - Attrs([Attr("noreturn","()"), Attr("c.proto","void (*)(void)"), -Attr("address","0x5F0"), Attr("stub","()")]), "abort", Args([]), -Blks([Blk(Tid(459, "@abort"), Attrs([Attr("address","0x5F0")]), Phis([]), -Defs([Def(Tid(1_097, "%00000449"), Attrs([Attr("address","0x5F0"), -Attr("insn","adrp x16, #69632")]), Var("R16",Imm(64)), Int(69632,64)), -Def(Tid(1_104, "%00000450"), Attrs([Attr("address","0x5F4"), -Attr("insn","ldr x17, [x16, #0x18]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(24,64)),LittleEndian(),64)), -Def(Tid(1_110, "%00000456"), Attrs([Attr("address","0x5F8"), -Attr("insn","add x16, x16, #0x18")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(24,64)))]), Jmps([Call(Tid(1_115, "%0000045b"), - Attrs([Attr("address","0x5FC"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), Sub(Tid(1_403, "@call_weak_fn"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x634")]), - "call_weak_fn", Args([Arg(Tid(1_452, "%000005ac"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("call_weak_fn_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(463, "@call_weak_fn"), - Attrs([Attr("address","0x634")]), Phis([]), Defs([Def(Tid(466, "%000001d2"), - Attrs([Attr("address","0x634"), Attr("insn","adrp x0, #65536")]), - Var("R0",Imm(64)), Int(65536,64)), Def(Tid(473, "%000001d9"), - Attrs([Attr("address","0x638"), Attr("insn","ldr x0, [x0, #0xfd0]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(4048,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(479, "%000001df"), Attrs([Attr("address","0x63C"), -Attr("insn","cbz x0, #0x8")]), EQ(Var("R0",Imm(64)),Int(0,64)), -Direct(Tid(477, "%000001dd"))), Goto(Tid(1_436, "%0000059c"), Attrs([]), - Int(1,1), Direct(Tid(869, "%00000365")))])), Blk(Tid(477, "%000001dd"), - Attrs([Attr("address","0x644")]), Phis([]), Defs([]), -Jmps([Call(Tid(485, "%000001e5"), Attrs([Attr("address","0x644"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))])), -Blk(Tid(869, "%00000365"), Attrs([Attr("address","0x640")]), Phis([]), -Defs([]), Jmps([Goto(Tid(872, "%00000368"), Attrs([Attr("address","0x640"), -Attr("insn","b #-0x60")]), Int(1,1), Direct(Tid(870, "@__gmon_start__")))])), -Blk(Tid(870, "@__gmon_start__"), Attrs([Attr("address","0x5E0")]), Phis([]), -Defs([Def(Tid(1_075, "%00000433"), Attrs([Attr("address","0x5E0"), -Attr("insn","adrp x16, #69632")]), Var("R16",Imm(64)), Int(69632,64)), -Def(Tid(1_082, "%0000043a"), Attrs([Attr("address","0x5E4"), -Attr("insn","ldr x17, [x16, #0x10]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(16,64)),LittleEndian(),64)), -Def(Tid(1_088, "%00000440"), Attrs([Attr("address","0x5E8"), -Attr("insn","add x16, x16, #0x10")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(16,64)))]), Jmps([Call(Tid(1_093, "%00000445"), - Attrs([Attr("address","0x5EC"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), -Sub(Tid(1_405, "@deregister_tm_clones"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x650")]), - "deregister_tm_clones", Args([Arg(Tid(1_453, "%000005ad"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("deregister_tm_clones_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(491, "@deregister_tm_clones"), - Attrs([Attr("address","0x650")]), Phis([]), Defs([Def(Tid(494, "%000001ee"), - Attrs([Attr("address","0x650"), Attr("insn","adrp x0, #69632")]), - Var("R0",Imm(64)), Int(69632,64)), Def(Tid(500, "%000001f4"), - Attrs([Attr("address","0x654"), Attr("insn","add x0, x0, #0x30")]), - Var("R0",Imm(64)), PLUS(Var("R0",Imm(64)),Int(48,64))), -Def(Tid(505, "%000001f9"), Attrs([Attr("address","0x658"), -Attr("insn","adrp x1, #69632")]), Var("R1",Imm(64)), Int(69632,64)), -Def(Tid(511, "%000001ff"), Attrs([Attr("address","0x65C"), -Attr("insn","add x1, x1, #0x30")]), Var("R1",Imm(64)), -PLUS(Var("R1",Imm(64)),Int(48,64))), Def(Tid(517, "%00000205"), - Attrs([Attr("address","0x660"), Attr("insn","cmp x1, x0")]), - Var("#1",Imm(64)), NOT(Var("R0",Imm(64)))), Def(Tid(522, "%0000020a"), - Attrs([Attr("address","0x660"), Attr("insn","cmp x1, x0")]), - Var("#2",Imm(64)), PLUS(Var("R1",Imm(64)),NOT(Var("R0",Imm(64))))), -Def(Tid(528, "%00000210"), Attrs([Attr("address","0x660"), -Attr("insn","cmp x1, x0")]), Var("VF",Imm(1)), -NEQ(SIGNED(65,PLUS(Var("#2",Imm(64)),Int(1,64))),PLUS(PLUS(SIGNED(65,Var("R1",Imm(64))),SIGNED(65,Var("#1",Imm(64)))),Int(1,65)))), -Def(Tid(534, "%00000216"), Attrs([Attr("address","0x660"), -Attr("insn","cmp x1, x0")]), Var("CF",Imm(1)), -NEQ(UNSIGNED(65,PLUS(Var("#2",Imm(64)),Int(1,64))),PLUS(PLUS(UNSIGNED(65,Var("R1",Imm(64))),UNSIGNED(65,Var("#1",Imm(64)))),Int(1,65)))), -Def(Tid(538, "%0000021a"), Attrs([Attr("address","0x660"), -Attr("insn","cmp x1, x0")]), Var("ZF",Imm(1)), -EQ(PLUS(Var("#2",Imm(64)),Int(1,64)),Int(0,64))), Def(Tid(542, "%0000021e"), - Attrs([Attr("address","0x660"), Attr("insn","cmp x1, x0")]), - Var("NF",Imm(1)), Extract(63,63,PLUS(Var("#2",Imm(64)),Int(1,64))))]), -Jmps([Goto(Tid(548, "%00000224"), Attrs([Attr("address","0x664"), -Attr("insn","b.eq #0x18")]), EQ(Var("ZF",Imm(1)),Int(1,1)), -Direct(Tid(546, "%00000222"))), Goto(Tid(1_437, "%0000059d"), Attrs([]), - Int(1,1), Direct(Tid(839, "%00000347")))])), Blk(Tid(839, "%00000347"), - Attrs([Attr("address","0x668")]), Phis([]), Defs([Def(Tid(842, "%0000034a"), - Attrs([Attr("address","0x668"), Attr("insn","adrp x1, #65536")]), - Var("R1",Imm(64)), Int(65536,64)), Def(Tid(849, "%00000351"), - Attrs([Attr("address","0x66C"), Attr("insn","ldr x1, [x1, #0xfc0]")]), - Var("R1",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R1",Imm(64)),Int(4032,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(854, "%00000356"), Attrs([Attr("address","0x670"), -Attr("insn","cbz x1, #0xc")]), EQ(Var("R1",Imm(64)),Int(0,64)), -Direct(Tid(546, "%00000222"))), Goto(Tid(1_438, "%0000059e"), Attrs([]), - Int(1,1), Direct(Tid(858, "%0000035a")))])), Blk(Tid(546, "%00000222"), - Attrs([Attr("address","0x67C")]), Phis([]), Defs([]), -Jmps([Call(Tid(554, "%0000022a"), Attrs([Attr("address","0x67C"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))])), -Blk(Tid(858, "%0000035a"), Attrs([Attr("address","0x674")]), Phis([]), -Defs([Def(Tid(862, "%0000035e"), Attrs([Attr("address","0x674"), -Attr("insn","mov x16, x1")]), Var("R16",Imm(64)), Var("R1",Imm(64)))]), -Jmps([Call(Tid(867, "%00000363"), Attrs([Attr("address","0x678"), -Attr("insn","br x16")]), Int(1,1), (Indirect(Var("R16",Imm(64))),))]))])), -Sub(Tid(1_408, "@frame_dummy"), Attrs([Attr("c.proto","signed (*)(void)"), -Attr("address","0x710")]), "frame_dummy", Args([Arg(Tid(1_454, "%000005ae"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("frame_dummy_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(706, "@frame_dummy"), - Attrs([Attr("address","0x710")]), Phis([]), Defs([]), -Jmps([Call(Tid(708, "%000002c4"), Attrs([Attr("address","0x710"), -Attr("insn","b #-0x90")]), Int(1,1), -(Direct(Tid(1_410, "@register_tm_clones")),))]))])), Sub(Tid(1_409, "@main"), - Attrs([Attr("c.proto","signed (*)(signed argc, const char** argv)"), -Attr("address","0x714")]), "main", Args([Arg(Tid(1_455, "%000005af"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("main_argc",Imm(32)), -LOW(32,Var("R0",Imm(64))), In()), Arg(Tid(1_456, "%000005b0"), - Attrs([Attr("c.layout","**[char : 8]"), Attr("c.data","Top:u8 ptr ptr"), -Attr("c.type"," const char**")]), Var("main_argv",Imm(64)), -Var("R1",Imm(64)), Both()), Arg(Tid(1_457, "%000005b1"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("main_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(710, "@main"), - Attrs([Attr("address","0x714")]), Phis([]), Defs([Def(Tid(713, "%000002c9"), - Attrs([Attr("address","0x714"), Attr("insn","mov w0, wzr")]), - Var("R0",Imm(64)), Int(0,64)), Def(Tid(718, "%000002ce"), - Attrs([Attr("address","0x718"), Attr("insn","adrp x8, #69632")]), - Var("R8",Imm(64)), Int(69632,64)), Def(Tid(723, "%000002d3"), - Attrs([Attr("address","0x71C"), Attr("insn","adrp x9, #69632")]), - Var("R9",Imm(64)), Int(69632,64)), Def(Tid(728, "%000002d8"), - Attrs([Attr("address","0x720"), Attr("insn","mov w10, #0x2")]), - Var("R10",Imm(64)), Int(2,64)), Def(Tid(735, "%000002df"), - Attrs([Attr("address","0x724"), Attr("insn","str wzr, [x8, #0x38]")]), - Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R8",Imm(64)),Int(56,64)),Int(0,32),LittleEndian(),32)), -Def(Tid(743, "%000002e7"), Attrs([Attr("address","0x728"), -Attr("insn","str w10, [x9, #0x34]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R9",Imm(64)),Int(52,64)),Extract(31,0,Var("R10",Imm(64))),LittleEndian(),32))]), -Jmps([Call(Tid(748, "%000002ec"), Attrs([Attr("address","0x72C"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))]))])), -Sub(Tid(1_410, "@register_tm_clones"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x680")]), - "register_tm_clones", Args([Arg(Tid(1_458, "%000005b2"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("register_tm_clones_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(556, "@register_tm_clones"), Attrs([Attr("address","0x680")]), - Phis([]), Defs([Def(Tid(559, "%0000022f"), Attrs([Attr("address","0x680"), -Attr("insn","adrp x0, #69632")]), Var("R0",Imm(64)), Int(69632,64)), -Def(Tid(565, "%00000235"), Attrs([Attr("address","0x684"), -Attr("insn","add x0, x0, #0x30")]), Var("R0",Imm(64)), -PLUS(Var("R0",Imm(64)),Int(48,64))), Def(Tid(570, "%0000023a"), - Attrs([Attr("address","0x688"), Attr("insn","adrp x1, #69632")]), - Var("R1",Imm(64)), Int(69632,64)), Def(Tid(576, "%00000240"), - Attrs([Attr("address","0x68C"), Attr("insn","add x1, x1, #0x30")]), - Var("R1",Imm(64)), PLUS(Var("R1",Imm(64)),Int(48,64))), -Def(Tid(583, "%00000247"), Attrs([Attr("address","0x690"), -Attr("insn","sub x1, x1, x0")]), Var("R1",Imm(64)), -PLUS(PLUS(Var("R1",Imm(64)),NOT(Var("R0",Imm(64)))),Int(1,64))), -Def(Tid(589, "%0000024d"), Attrs([Attr("address","0x694"), -Attr("insn","lsr x2, x1, #63")]), Var("R2",Imm(64)), -Concat(Int(0,63),Extract(63,63,Var("R1",Imm(64))))), -Def(Tid(596, "%00000254"), Attrs([Attr("address","0x698"), -Attr("insn","add x1, x2, x1, asr #3")]), Var("R1",Imm(64)), -PLUS(Var("R2",Imm(64)),ARSHIFT(Var("R1",Imm(64)),Int(3,3)))), -Def(Tid(602, "%0000025a"), Attrs([Attr("address","0x69C"), -Attr("insn","asr x1, x1, #1")]), Var("R1",Imm(64)), -SIGNED(64,Extract(63,1,Var("R1",Imm(64)))))]), -Jmps([Goto(Tid(608, "%00000260"), Attrs([Attr("address","0x6A0"), -Attr("insn","cbz x1, #0x18")]), EQ(Var("R1",Imm(64)),Int(0,64)), -Direct(Tid(606, "%0000025e"))), Goto(Tid(1_439, "%0000059f"), Attrs([]), - Int(1,1), Direct(Tid(809, "%00000329")))])), Blk(Tid(809, "%00000329"), - Attrs([Attr("address","0x6A4")]), Phis([]), Defs([Def(Tid(812, "%0000032c"), - Attrs([Attr("address","0x6A4"), Attr("insn","adrp x2, #65536")]), - Var("R2",Imm(64)), Int(65536,64)), Def(Tid(819, "%00000333"), - Attrs([Attr("address","0x6A8"), Attr("insn","ldr x2, [x2, #0xfe0]")]), - Var("R2",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R2",Imm(64)),Int(4064,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(824, "%00000338"), Attrs([Attr("address","0x6AC"), -Attr("insn","cbz x2, #0xc")]), EQ(Var("R2",Imm(64)),Int(0,64)), -Direct(Tid(606, "%0000025e"))), Goto(Tid(1_440, "%000005a0"), Attrs([]), - Int(1,1), Direct(Tid(828, "%0000033c")))])), Blk(Tid(606, "%0000025e"), - Attrs([Attr("address","0x6B8")]), Phis([]), Defs([]), -Jmps([Call(Tid(614, "%00000266"), Attrs([Attr("address","0x6B8"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))])), -Blk(Tid(828, "%0000033c"), Attrs([Attr("address","0x6B0")]), Phis([]), -Defs([Def(Tid(832, "%00000340"), Attrs([Attr("address","0x6B0"), -Attr("insn","mov x16, x2")]), Var("R16",Imm(64)), Var("R2",Imm(64)))]), -Jmps([Call(Tid(837, "%00000345"), Attrs([Attr("address","0x6B4"), -Attr("insn","br x16")]), Int(1,1), -(Indirect(Var("R16",Imm(64))),))]))]))]))) \ No newline at end of file diff --git a/src/test/correct/basic_sec_policy_write/clang_O2/basic_sec_policy_write.bir b/src/test/correct/basic_sec_policy_write/clang_O2/basic_sec_policy_write.bir deleted file mode 100644 index d8831cb25..000000000 --- a/src/test/correct/basic_sec_policy_write/clang_O2/basic_sec_policy_write.bir +++ /dev/null @@ -1,229 +0,0 @@ -000005a1: program -0000056f: sub __cxa_finalize(__cxa_finalize_result) -000005a2: __cxa_finalize_result :: out u32 = low:32[R0] - -00000325: -0000041d: R16 := 0x11000 -00000424: R17 := mem[R16 + 8, el]:u64 -0000042a: R16 := R16 + 8 -0000042f: call R17 with noreturn - -00000570: sub __do_global_dtors_aux(__do_global_dtors_aux_result) -000005a3: __do_global_dtors_aux_result :: out u32 = low:32[R0] - -0000026a: -0000026e: #3 := R31 - 0x20 -00000274: mem := mem with [#3, el]:u64 <- R29 -0000027a: mem := mem with [#3 + 8, el]:u64 <- R30 -0000027e: R31 := #3 -00000284: R29 := R31 -0000028c: mem := mem with [R31 + 0x10, el]:u64 <- R19 -00000291: R19 := 0x11000 -00000298: R0 := pad:64[mem[R19 + 0x30]] -0000029f: when 31:0[R0] <> 0 goto %0000029d -00000597: goto %000002ee - -000002ee: -000002f1: R0 := 0x10000 -000002f8: R0 := mem[R0 + 0xFC8, el]:u64 -000002fe: when R0 = 0 goto %000002fc -00000598: goto %00000315 - -00000315: -00000318: R0 := 0x11000 -0000031f: R0 := mem[R0 + 0x28, el]:u64 -00000324: R30 := 0x6F0 -00000327: call @__cxa_finalize with return %000002fc - -000002fc: -00000304: R30 := 0x6F4 -00000306: call @deregister_tm_clones with return %00000308 - -00000308: -0000030b: R0 := 1 -00000313: mem := mem with [R19 + 0x30] <- 7:0[R0] -00000599: goto %0000029d - -0000029d: -000002a7: R19 := mem[R31 + 0x10, el]:u64 -000002ae: R29 := mem[R31, el]:u64 -000002b3: R30 := mem[R31 + 8, el]:u64 -000002b7: R31 := R31 + 0x20 -000002bc: call R30 with noreturn - -00000574: sub __libc_start_main(__libc_start_main_main, __libc_start_main_arg2, __libc_start_main_arg3, __libc_start_main_auxv, __libc_start_main_result) -000005a4: __libc_start_main_main :: in u64 = R0 -000005a5: __libc_start_main_arg2 :: in u32 = low:32[R1] -000005a6: __libc_start_main_arg3 :: in out u64 = R2 -000005a7: __libc_start_main_auxv :: in out u64 = R3 -000005a8: __libc_start_main_result :: out u32 = low:32[R0] - -000001c3: -00000407: R16 := 0x11000 -0000040e: R17 := mem[R16, el]:u64 -00000414: R16 := R16 -00000419: call R17 with noreturn - -00000575: sub _fini(_fini_result) -000005a9: _fini_result :: out u32 = low:32[R0] - -0000001f: -00000025: #0 := R31 - 0x10 -0000002b: mem := mem with [#0, el]:u64 <- R29 -00000031: mem := mem with [#0 + 8, el]:u64 <- R30 -00000035: R31 := #0 -0000003b: R29 := R31 -00000042: R29 := mem[R31, el]:u64 -00000047: R30 := mem[R31 + 8, el]:u64 -0000004b: R31 := R31 + 0x10 -00000050: call R30 with noreturn - -00000576: sub _init(_init_result) -000005aa: _init_result :: out u32 = low:32[R0] - -000004ca: -000004d0: #5 := R31 - 0x10 -000004d6: mem := mem with [#5, el]:u64 <- R29 -000004dc: mem := mem with [#5 + 8, el]:u64 <- R30 -000004e0: R31 := #5 -000004e6: R29 := R31 -000004eb: R30 := 0x590 -000004ed: call @call_weak_fn with return %000004ef - -000004ef: -000004f4: R29 := mem[R31, el]:u64 -000004f9: R30 := mem[R31 + 8, el]:u64 -000004fd: R31 := R31 + 0x10 -00000502: call R30 with noreturn - -00000577: sub _start(_start_result) -000005ab: _start_result :: out u32 = low:32[R0] - -00000184: -00000189: R29 := 0 -0000018e: R30 := 0 -00000194: R5 := R0 -0000019b: R1 := mem[R31, el]:u64 -000001a1: R2 := R31 + 8 -000001a7: R6 := R31 -000001ac: R0 := 0x10000 -000001b3: R0 := mem[R0 + 0xFD8, el]:u64 -000001b8: R3 := 0 -000001bd: R4 := 0 -000001c2: R30 := 0x630 -000001c5: call @__libc_start_main with return %000001c7 - -000001c7: -000001ca: R30 := 0x634 -000001cd: call @abort with return %0000059a - -0000059a: -0000059b: call @call_weak_fn with noreturn - -0000057a: sub abort() - - -000001cb: -00000449: R16 := 0x11000 -00000450: R17 := mem[R16 + 0x18, el]:u64 -00000456: R16 := R16 + 0x18 -0000045b: call R17 with noreturn - -0000057b: sub call_weak_fn(call_weak_fn_result) -000005ac: call_weak_fn_result :: out u32 = low:32[R0] - -000001cf: -000001d2: R0 := 0x10000 -000001d9: R0 := mem[R0 + 0xFD0, el]:u64 -000001df: when R0 = 0 goto %000001dd -0000059c: goto %00000365 - -000001dd: -000001e5: call R30 with noreturn - -00000365: -00000368: goto @__gmon_start__ - -00000366: -00000433: R16 := 0x11000 -0000043a: R17 := mem[R16 + 0x10, el]:u64 -00000440: R16 := R16 + 0x10 -00000445: call R17 with noreturn - -0000057d: sub deregister_tm_clones(deregister_tm_clones_result) -000005ad: deregister_tm_clones_result :: out u32 = low:32[R0] - -000001eb: -000001ee: R0 := 0x11000 -000001f4: R0 := R0 + 0x30 -000001f9: R1 := 0x11000 -000001ff: R1 := R1 + 0x30 -00000205: #1 := ~R0 -0000020a: #2 := R1 + ~R0 -00000210: VF := extend:65[#2 + 1] <> extend:65[R1] + extend:65[#1] + 1 -00000216: CF := pad:65[#2 + 1] <> pad:65[R1] + pad:65[#1] + 1 -0000021a: ZF := #2 + 1 = 0 -0000021e: NF := 63:63[#2 + 1] -00000224: when ZF goto %00000222 -0000059d: goto %00000347 - -00000347: -0000034a: R1 := 0x10000 -00000351: R1 := mem[R1 + 0xFC0, el]:u64 -00000356: when R1 = 0 goto %00000222 -0000059e: goto %0000035a - -00000222: -0000022a: call R30 with noreturn - -0000035a: -0000035e: R16 := R1 -00000363: call R16 with noreturn - -00000580: sub frame_dummy(frame_dummy_result) -000005ae: frame_dummy_result :: out u32 = low:32[R0] - -000002c2: -000002c4: call @register_tm_clones with noreturn - -00000581: sub main(main_argc, main_argv, main_result) -000005af: main_argc :: in u32 = low:32[R0] -000005b0: main_argv :: in out u64 = R1 -000005b1: main_result :: out u32 = low:32[R0] - -000002c6: -000002c9: R0 := 0 -000002ce: R8 := 0x11000 -000002d3: R9 := 0x11000 -000002d8: R10 := 2 -000002df: mem := mem with [R8 + 0x38, el]:u32 <- 0 -000002e7: mem := mem with [R9 + 0x34, el]:u32 <- 31:0[R10] -000002ec: call R30 with noreturn - -00000582: sub register_tm_clones(register_tm_clones_result) -000005b2: register_tm_clones_result :: out u32 = low:32[R0] - -0000022c: -0000022f: R0 := 0x11000 -00000235: R0 := R0 + 0x30 -0000023a: R1 := 0x11000 -00000240: R1 := R1 + 0x30 -00000247: R1 := R1 + ~R0 + 1 -0000024d: R2 := 0.63:63[R1] -00000254: R1 := R2 + (R1 ~>> 3) -0000025a: R1 := extend:64[63:1[R1]] -00000260: when R1 = 0 goto %0000025e -0000059f: goto %00000329 - -00000329: -0000032c: R2 := 0x10000 -00000333: R2 := mem[R2 + 0xFE0, el]:u64 -00000338: when R2 = 0 goto %0000025e -000005a0: goto %0000033c - -0000025e: -00000266: call R30 with noreturn - -0000033c: -00000340: R16 := R2 -00000345: call R16 with noreturn diff --git a/src/test/correct/basic_sec_policy_write/clang_O2/basic_sec_policy_write.expected b/src/test/correct/basic_sec_policy_write/clang_O2/basic_sec_policy_write.expected index e478e5ccb..16fce81da 100644 --- a/src/test/correct/basic_sec_policy_write/clang_O2/basic_sec_policy_write.expected +++ b/src/test/correct/basic_sec_policy_write/clang_O2/basic_sec_policy_write.expected @@ -9,9 +9,9 @@ var {:extern} R8: bv64; var {:extern} R9: bv64; var {:extern} mem: [bv64]bv8; const {:extern} $x_addr: bv64; -axiom ($x_addr == 69688bv64); +axiom ($x_addr == 131096bv64); const {:extern} $z_addr: bv64; -axiom ($z_addr == 69684bv64); +axiom ($z_addr == 131092bv64); function {:extern} L(mem$in: [bv64]bv8, index: bv64) returns (bool) { (if (index == $z_addr) then true else (if (index == $x_addr) then (memory_load32_le(mem$in, $z_addr) == 0bv32) else false)) } @@ -21,6 +21,10 @@ function {:extern} gamma_load32(gammaMap: [bv64]bool, index: bv64) returns (bool (gammaMap[bvadd64(index, 3bv64)] && (gammaMap[bvadd64(index, 2bv64)] && (gammaMap[bvadd64(index, 1bv64)] && gammaMap[index]))) } +function {:extern} gamma_load64(gammaMap: [bv64]bool, index: bv64) returns (bool) { + (gammaMap[bvadd64(index, 7bv64)] && (gammaMap[bvadd64(index, 6bv64)] && (gammaMap[bvadd64(index, 5bv64)] && (gammaMap[bvadd64(index, 4bv64)] && (gammaMap[bvadd64(index, 3bv64)] && (gammaMap[bvadd64(index, 2bv64)] && (gammaMap[bvadd64(index, 1bv64)] && gammaMap[index]))))))) +} + function {:extern} gamma_store32(gammaMap: [bv64]bool, index: bv64, value: bool) returns ([bv64]bool) { gammaMap[index := value][bvadd64(index, 1bv64) := value][bvadd64(index, 2bv64) := value][bvadd64(index, 3bv64) := value] } @@ -41,11 +45,13 @@ procedure {:extern} rely(); modifies Gamma_mem, mem; ensures (forall i: bv64 :: (((mem[i] == old(mem[i])) ==> (Gamma_mem[i] == old(Gamma_mem[i]))))); ensures (old(memory_load32_le(mem, $z_addr)) == memory_load32_le(mem, $z_addr)); - free ensures (memory_load32_le(mem, 1860bv64) == 131073bv32); - free ensures (memory_load64_le(mem, 69064bv64) == 1808bv64); - free ensures (memory_load64_le(mem, 69072bv64) == 1728bv64); - free ensures (memory_load64_le(mem, 69592bv64) == 1812bv64); - free ensures (memory_load64_le(mem, 69672bv64) == 69672bv64); + free ensures (memory_load32_le(mem, 2316bv64) == 131073bv32); + free ensures (memory_load64_le(mem, 130424bv64) == 2256bv64); + free ensures (memory_load64_le(mem, 130432bv64) == 2176bv64); + free ensures (memory_load64_le(mem, 131032bv64) == 131092bv64); + free ensures (memory_load64_le(mem, 131040bv64) == 131096bv64); + free ensures (memory_load64_le(mem, 131056bv64) == 2260bv64); + free ensures (memory_load64_le(mem, 131080bv64) == 131080bv64); procedure {:extern} rely_transitive(); modifies Gamma_mem, mem; @@ -72,51 +78,65 @@ implementation {:extern} guarantee_reflexive() assert ((memory_load32_le(mem, $z_addr) != 0bv32) ==> (memory_load32_le(mem, $z_addr) != 0bv32)); } -procedure main_1812(); +procedure main(); modifies Gamma_R0, Gamma_R10, Gamma_R8, Gamma_R9, Gamma_mem, R0, R10, R8, R9, mem; requires (Gamma_R0 == false); - free requires (memory_load64_le(mem, 69664bv64) == 0bv64); - free requires (memory_load64_le(mem, 69672bv64) == 69672bv64); - free requires (memory_load32_le(mem, 1860bv64) == 131073bv32); - free requires (memory_load64_le(mem, 69064bv64) == 1808bv64); - free requires (memory_load64_le(mem, 69072bv64) == 1728bv64); - free requires (memory_load64_le(mem, 69592bv64) == 1812bv64); - free requires (memory_load64_le(mem, 69672bv64) == 69672bv64); - free ensures (memory_load32_le(mem, 1860bv64) == 131073bv32); - free ensures (memory_load64_le(mem, 69064bv64) == 1808bv64); - free ensures (memory_load64_le(mem, 69072bv64) == 1728bv64); - free ensures (memory_load64_le(mem, 69592bv64) == 1812bv64); - free ensures (memory_load64_le(mem, 69672bv64) == 69672bv64); - -implementation main_1812() + free requires (memory_load64_le(mem, 131072bv64) == 0bv64); + free requires (memory_load64_le(mem, 131080bv64) == 131080bv64); + free requires (memory_load32_le(mem, 2316bv64) == 131073bv32); + free requires (memory_load64_le(mem, 130424bv64) == 2256bv64); + free requires (memory_load64_le(mem, 130432bv64) == 2176bv64); + free requires (memory_load64_le(mem, 131032bv64) == 131092bv64); + free requires (memory_load64_le(mem, 131040bv64) == 131096bv64); + free requires (memory_load64_le(mem, 131056bv64) == 2260bv64); + free requires (memory_load64_le(mem, 131080bv64) == 131080bv64); + free ensures (memory_load32_le(mem, 2316bv64) == 131073bv32); + free ensures (memory_load64_le(mem, 130424bv64) == 2256bv64); + free ensures (memory_load64_le(mem, 130432bv64) == 2176bv64); + free ensures (memory_load64_le(mem, 131032bv64) == 131092bv64); + free ensures (memory_load64_le(mem, 131040bv64) == 131096bv64); + free ensures (memory_load64_le(mem, 131056bv64) == 2260bv64); + free ensures (memory_load64_le(mem, 131080bv64) == 131080bv64); + +implementation main() { + var $load$18: bv64; + var $load$19: bv64; + var Gamma_$load$18: bool; + var Gamma_$load$19: bool; var Gamma_x_old: bool; var z_old: bv32; lmain: assume {:captureState "lmain"} true; + R8, Gamma_R8 := 126976bv64, true; + R9, Gamma_R9 := 126976bv64, true; R0, Gamma_R0 := 0bv64, true; - R8, Gamma_R8 := 69632bv64, true; - R9, Gamma_R9 := 69632bv64, true; + call rely(); + $load$18, Gamma_$load$18 := memory_load64_le(mem, bvadd64(R8, 4064bv64)), (gamma_load64(Gamma_mem, bvadd64(R8, 4064bv64)) || L(mem, bvadd64(R8, 4064bv64))); + R8, Gamma_R8 := $load$18, Gamma_$load$18; + call rely(); + $load$19, Gamma_$load$19 := memory_load64_le(mem, bvadd64(R9, 4056bv64)), (gamma_load64(Gamma_mem, bvadd64(R9, 4056bv64)) || L(mem, bvadd64(R9, 4056bv64))); + R9, Gamma_R9 := $load$19, Gamma_$load$19; R10, Gamma_R10 := 2bv64, true; call rely(); + assert (L(mem, R8) ==> true); z_old := memory_load32_le(mem, $z_addr); Gamma_x_old := (gamma_load32(Gamma_mem, $x_addr) || L(mem, $x_addr)); - assert (L(mem, bvadd64(R8, 56bv64)) ==> true); - mem, Gamma_mem := memory_store32_le(mem, bvadd64(R8, 56bv64), 0bv32), gamma_store32(Gamma_mem, bvadd64(R8, 56bv64), true); - assert ((bvadd64(R8, 56bv64) == $z_addr) ==> (L(mem, $x_addr) ==> Gamma_x_old)); + mem, Gamma_mem := memory_store32_le(mem, R8, 0bv32), gamma_store32(Gamma_mem, R8, true); + assert ((R8 == $z_addr) ==> (L(mem, $x_addr) ==> Gamma_x_old)); assert ((z_old != 0bv32) ==> (memory_load32_le(mem, $z_addr) != 0bv32)); - assume {:captureState "%000002df"} true; + assume {:captureState "%00000294"} true; call rely(); + assert (L(mem, R9) ==> Gamma_R10); z_old := memory_load32_le(mem, $z_addr); Gamma_x_old := (gamma_load32(Gamma_mem, $x_addr) || L(mem, $x_addr)); - assert (L(mem, bvadd64(R9, 52bv64)) ==> Gamma_R10); - mem, Gamma_mem := memory_store32_le(mem, bvadd64(R9, 52bv64), R10[32:0]), gamma_store32(Gamma_mem, bvadd64(R9, 52bv64), Gamma_R10); - assert ((bvadd64(R9, 52bv64) == $z_addr) ==> (L(mem, $x_addr) ==> Gamma_x_old)); + mem, Gamma_mem := memory_store32_le(mem, R9, R10[32:0]), gamma_store32(Gamma_mem, R9, Gamma_R10); + assert ((R9 == $z_addr) ==> (L(mem, $x_addr) ==> Gamma_x_old)); assert ((z_old != 0bv32) ==> (memory_load32_le(mem, $z_addr) != 0bv32)); - assume {:captureState "%000002e7"} true; - goto main_1812_basil_return; - main_1812_basil_return: - assume {:captureState "main_1812_basil_return"} true; + assume {:captureState "%00000298"} true; + goto main_basil_return; + main_basil_return: + assume {:captureState "main_basil_return"} true; return; } diff --git a/src/test/correct/basic_sec_policy_write/clang_O2/basic_sec_policy_write.gts b/src/test/correct/basic_sec_policy_write/clang_O2/basic_sec_policy_write.gts deleted file mode 100644 index b55b79b0f..000000000 Binary files a/src/test/correct/basic_sec_policy_write/clang_O2/basic_sec_policy_write.gts and /dev/null differ diff --git a/src/test/correct/basic_sec_policy_write/clang_O2/basic_sec_policy_write.md5sum b/src/test/correct/basic_sec_policy_write/clang_O2/basic_sec_policy_write.md5sum new file mode 100644 index 000000000..e88fec5d1 --- /dev/null +++ b/src/test/correct/basic_sec_policy_write/clang_O2/basic_sec_policy_write.md5sum @@ -0,0 +1,5 @@ +e600f24d7acba0f08bb134db4f9d11f3 correct/basic_sec_policy_write/clang_O2/a.out +3b901c8eb8962909f6719adef5c3905e correct/basic_sec_policy_write/clang_O2/basic_sec_policy_write.adt +34cac1b3f82c19c11c5b8111a0af9708 correct/basic_sec_policy_write/clang_O2/basic_sec_policy_write.bir +1f7a313352f1ddc73e19851da824a298 correct/basic_sec_policy_write/clang_O2/basic_sec_policy_write.relf +8ca5aede49e996b0e0c541443c23cd0e correct/basic_sec_policy_write/clang_O2/basic_sec_policy_write.gts diff --git a/src/test/correct/basic_sec_policy_write/clang_O2/basic_sec_policy_write.relf b/src/test/correct/basic_sec_policy_write/clang_O2/basic_sec_policy_write.relf deleted file mode 100644 index e044b7194..000000000 --- a/src/test/correct/basic_sec_policy_write/clang_O2/basic_sec_policy_write.relf +++ /dev/null @@ -1,124 +0,0 @@ - -Relocation section '.rela.dyn' at offset 0x460 contains 8 entries: - Offset Info Type Symbol's Value Symbol's Name + Addend -0000000000010dc8 0000000000000403 R_AARCH64_RELATIVE 710 -0000000000010dd0 0000000000000403 R_AARCH64_RELATIVE 6c0 -0000000000010fd8 0000000000000403 R_AARCH64_RELATIVE 714 -0000000000011028 0000000000000403 R_AARCH64_RELATIVE 11028 -0000000000010fc0 0000000400000401 R_AARCH64_GLOB_DAT 0000000000000000 _ITM_deregisterTMCloneTable + 0 -0000000000010fc8 0000000500000401 R_AARCH64_GLOB_DAT 0000000000000000 __cxa_finalize@GLIBC_2.17 + 0 -0000000000010fd0 0000000600000401 R_AARCH64_GLOB_DAT 0000000000000000 __gmon_start__ + 0 -0000000000010fe0 0000000800000401 R_AARCH64_GLOB_DAT 0000000000000000 _ITM_registerTMCloneTable + 0 - -Relocation section '.rela.plt' at offset 0x520 contains 4 entries: - Offset Info Type Symbol's Value Symbol's Name + Addend -0000000000011000 0000000300000402 R_AARCH64_JUMP_SLOT 0000000000000000 __libc_start_main@GLIBC_2.34 + 0 -0000000000011008 0000000500000402 R_AARCH64_JUMP_SLOT 0000000000000000 __cxa_finalize@GLIBC_2.17 + 0 -0000000000011010 0000000600000402 R_AARCH64_JUMP_SLOT 0000000000000000 __gmon_start__ + 0 -0000000000011018 0000000700000402 R_AARCH64_JUMP_SLOT 0000000000000000 abort@GLIBC_2.17 + 0 - -Symbol table '.dynsym' contains 9 entries: - Num: Value Size Type Bind Vis Ndx Name - 0: 0000000000000000 0 NOTYPE LOCAL DEFAULT UND - 1: 0000000000000580 0 SECTION LOCAL DEFAULT 11 .init - 2: 0000000000011020 0 SECTION LOCAL DEFAULT 23 .data - 3: 0000000000000000 0 FUNC GLOBAL DEFAULT UND __libc_start_main@GLIBC_2.34 (2) - 4: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_deregisterTMCloneTable - 5: 0000000000000000 0 FUNC WEAK DEFAULT UND __cxa_finalize@GLIBC_2.17 (3) - 6: 0000000000000000 0 NOTYPE WEAK DEFAULT UND __gmon_start__ - 7: 0000000000000000 0 FUNC GLOBAL DEFAULT UND abort@GLIBC_2.17 (3) - 8: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_registerTMCloneTable - -Symbol table '.symtab' contains 91 entries: - Num: Value Size Type Bind Vis Ndx Name - 0: 0000000000000000 0 NOTYPE LOCAL DEFAULT UND - 1: 0000000000000238 0 SECTION LOCAL DEFAULT 1 .interp - 2: 0000000000000254 0 SECTION LOCAL DEFAULT 2 .note.gnu.build-id - 3: 0000000000000278 0 SECTION LOCAL DEFAULT 3 .note.ABI-tag - 4: 0000000000000298 0 SECTION LOCAL DEFAULT 4 .gnu.hash - 5: 00000000000002b8 0 SECTION LOCAL DEFAULT 5 .dynsym - 6: 0000000000000390 0 SECTION LOCAL DEFAULT 6 .dynstr - 7: 000000000000041e 0 SECTION LOCAL DEFAULT 7 .gnu.version - 8: 0000000000000430 0 SECTION LOCAL DEFAULT 8 .gnu.version_r - 9: 0000000000000460 0 SECTION LOCAL DEFAULT 9 .rela.dyn - 10: 0000000000000520 0 SECTION LOCAL DEFAULT 10 .rela.plt - 11: 0000000000000580 0 SECTION LOCAL DEFAULT 11 .init - 12: 00000000000005a0 0 SECTION LOCAL DEFAULT 12 .plt - 13: 0000000000000600 0 SECTION LOCAL DEFAULT 13 .text - 14: 0000000000000730 0 SECTION LOCAL DEFAULT 14 .fini - 15: 0000000000000744 0 SECTION LOCAL DEFAULT 15 .rodata - 16: 0000000000000748 0 SECTION LOCAL DEFAULT 16 .eh_frame_hdr - 17: 0000000000000788 0 SECTION LOCAL DEFAULT 17 .eh_frame - 18: 0000000000010dc8 0 SECTION LOCAL DEFAULT 18 .init_array - 19: 0000000000010dd0 0 SECTION LOCAL DEFAULT 19 .fini_array - 20: 0000000000010dd8 0 SECTION LOCAL DEFAULT 20 .dynamic - 21: 0000000000010fb8 0 SECTION LOCAL DEFAULT 21 .got - 22: 0000000000010fe8 0 SECTION LOCAL DEFAULT 22 .got.plt - 23: 0000000000011020 0 SECTION LOCAL DEFAULT 23 .data - 24: 0000000000011030 0 SECTION LOCAL DEFAULT 24 .bss - 25: 0000000000000000 0 SECTION LOCAL DEFAULT 25 .comment - 26: 0000000000000000 0 FILE LOCAL DEFAULT ABS Scrt1.o - 27: 0000000000000278 0 NOTYPE LOCAL DEFAULT 3 $d - 28: 0000000000000278 32 OBJECT LOCAL DEFAULT 3 __abi_tag - 29: 0000000000000600 0 NOTYPE LOCAL DEFAULT 13 $x - 30: 000000000000079c 0 NOTYPE LOCAL DEFAULT 17 $d - 31: 0000000000000744 0 NOTYPE LOCAL DEFAULT 15 $d - 32: 0000000000000000 0 FILE LOCAL DEFAULT ABS crti.o - 33: 0000000000000634 0 NOTYPE LOCAL DEFAULT 13 $x - 34: 0000000000000634 20 FUNC LOCAL DEFAULT 13 call_weak_fn - 35: 0000000000000580 0 NOTYPE LOCAL DEFAULT 11 $x - 36: 0000000000000730 0 NOTYPE LOCAL DEFAULT 14 $x - 37: 0000000000000000 0 FILE LOCAL DEFAULT ABS crtn.o - 38: 0000000000000590 0 NOTYPE LOCAL DEFAULT 11 $x - 39: 000000000000073c 0 NOTYPE LOCAL DEFAULT 14 $x - 40: 0000000000000000 0 FILE LOCAL DEFAULT ABS crtstuff.c - 41: 0000000000000650 0 NOTYPE LOCAL DEFAULT 13 $x - 42: 0000000000000650 0 FUNC LOCAL DEFAULT 13 deregister_tm_clones - 43: 0000000000000680 0 FUNC LOCAL DEFAULT 13 register_tm_clones - 44: 0000000000011028 0 NOTYPE LOCAL DEFAULT 23 $d - 45: 00000000000006c0 0 FUNC LOCAL DEFAULT 13 __do_global_dtors_aux - 46: 0000000000011030 1 OBJECT LOCAL DEFAULT 24 completed.0 - 47: 0000000000010dd0 0 NOTYPE LOCAL DEFAULT 19 $d - 48: 0000000000010dd0 0 OBJECT LOCAL DEFAULT 19 __do_global_dtors_aux_fini_array_entry - 49: 0000000000000710 0 FUNC LOCAL DEFAULT 13 frame_dummy - 50: 0000000000010dc8 0 NOTYPE LOCAL DEFAULT 18 $d - 51: 0000000000010dc8 0 OBJECT LOCAL DEFAULT 18 __frame_dummy_init_array_entry - 52: 00000000000007b0 0 NOTYPE LOCAL DEFAULT 17 $d - 53: 0000000000011030 0 NOTYPE LOCAL DEFAULT 24 $d - 54: 0000000000000000 0 FILE LOCAL DEFAULT ABS basic_sec_policy_write.c - 55: 0000000000000714 0 NOTYPE LOCAL DEFAULT 13 $x.0 - 56: 0000000000011034 0 NOTYPE LOCAL DEFAULT 24 $d.1 - 57: 000000000000002a 0 NOTYPE LOCAL DEFAULT 25 $d.2 - 58: 0000000000000810 0 NOTYPE LOCAL DEFAULT 17 $d.3 - 59: 0000000000000000 0 FILE LOCAL DEFAULT ABS crtstuff.c - 60: 0000000000000838 0 NOTYPE LOCAL DEFAULT 17 $d - 61: 0000000000000838 0 OBJECT LOCAL DEFAULT 17 __FRAME_END__ - 62: 0000000000000000 0 FILE LOCAL DEFAULT ABS - 63: 0000000000010dd8 0 OBJECT LOCAL DEFAULT ABS _DYNAMIC - 64: 0000000000000748 0 NOTYPE LOCAL DEFAULT 16 __GNU_EH_FRAME_HDR - 65: 0000000000010fb8 0 OBJECT LOCAL DEFAULT ABS _GLOBAL_OFFSET_TABLE_ - 66: 00000000000005a0 0 NOTYPE LOCAL DEFAULT 12 $x - 67: 0000000000000000 0 FUNC GLOBAL DEFAULT UND __libc_start_main@GLIBC_2.34 - 68: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_deregisterTMCloneTable - 69: 0000000000011020 0 NOTYPE WEAK DEFAULT 23 data_start - 70: 0000000000011030 0 NOTYPE GLOBAL DEFAULT 24 __bss_start__ - 71: 0000000000000000 0 FUNC WEAK DEFAULT UND __cxa_finalize@GLIBC_2.17 - 72: 0000000000011040 0 NOTYPE GLOBAL DEFAULT 24 _bss_end__ - 73: 0000000000011030 0 NOTYPE GLOBAL DEFAULT 23 _edata - 74: 0000000000011034 4 OBJECT GLOBAL DEFAULT 24 z - 75: 0000000000011038 4 OBJECT GLOBAL DEFAULT 24 x - 76: 0000000000000730 0 FUNC GLOBAL HIDDEN 14 _fini - 77: 0000000000011040 0 NOTYPE GLOBAL DEFAULT 24 __bss_end__ - 78: 0000000000011020 0 NOTYPE GLOBAL DEFAULT 23 __data_start - 79: 0000000000000000 0 NOTYPE WEAK DEFAULT UND __gmon_start__ - 80: 0000000000011028 0 OBJECT GLOBAL HIDDEN 23 __dso_handle - 81: 0000000000000000 0 FUNC GLOBAL DEFAULT UND abort@GLIBC_2.17 - 82: 0000000000000744 4 OBJECT GLOBAL DEFAULT 15 _IO_stdin_used - 83: 0000000000011040 0 NOTYPE GLOBAL DEFAULT 24 _end - 84: 0000000000000600 52 FUNC GLOBAL DEFAULT 13 _start - 85: 0000000000011040 0 NOTYPE GLOBAL DEFAULT 24 __end__ - 86: 0000000000011030 0 NOTYPE GLOBAL DEFAULT 24 __bss_start - 87: 0000000000000714 28 FUNC GLOBAL DEFAULT 13 main - 88: 0000000000011030 0 OBJECT GLOBAL HIDDEN 23 __TMC_END__ - 89: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_registerTMCloneTable - 90: 0000000000000580 0 FUNC GLOBAL HIDDEN 11 _init diff --git a/src/test/correct/basic_sec_policy_write/clang_O2/basic_sec_policy_write_gtirb.expected b/src/test/correct/basic_sec_policy_write/clang_O2/basic_sec_policy_write_gtirb.expected index 505171ecd..f836b50fe 100644 --- a/src/test/correct/basic_sec_policy_write/clang_O2/basic_sec_policy_write_gtirb.expected +++ b/src/test/correct/basic_sec_policy_write/clang_O2/basic_sec_policy_write_gtirb.expected @@ -9,9 +9,9 @@ var {:extern} R8: bv64; var {:extern} R9: bv64; var {:extern} mem: [bv64]bv8; const {:extern} $x_addr: bv64; -axiom ($x_addr == 69688bv64); +axiom ($x_addr == 131096bv64); const {:extern} $z_addr: bv64; -axiom ($z_addr == 69684bv64); +axiom ($z_addr == 131092bv64); function {:extern} L(mem$in: [bv64]bv8, index: bv64) returns (bool) { (if (index == $z_addr) then true else (if (index == $x_addr) then (memory_load32_le(mem$in, $z_addr) == 0bv32) else false)) } @@ -21,6 +21,10 @@ function {:extern} gamma_load32(gammaMap: [bv64]bool, index: bv64) returns (bool (gammaMap[bvadd64(index, 3bv64)] && (gammaMap[bvadd64(index, 2bv64)] && (gammaMap[bvadd64(index, 1bv64)] && gammaMap[index]))) } +function {:extern} gamma_load64(gammaMap: [bv64]bool, index: bv64) returns (bool) { + (gammaMap[bvadd64(index, 7bv64)] && (gammaMap[bvadd64(index, 6bv64)] && (gammaMap[bvadd64(index, 5bv64)] && (gammaMap[bvadd64(index, 4bv64)] && (gammaMap[bvadd64(index, 3bv64)] && (gammaMap[bvadd64(index, 2bv64)] && (gammaMap[bvadd64(index, 1bv64)] && gammaMap[index]))))))) +} + function {:extern} gamma_store32(gammaMap: [bv64]bool, index: bv64, value: bool) returns ([bv64]bool) { gammaMap[index := value][bvadd64(index, 1bv64) := value][bvadd64(index, 2bv64) := value][bvadd64(index, 3bv64) := value] } @@ -41,11 +45,13 @@ procedure {:extern} rely(); modifies Gamma_mem, mem; ensures (forall i: bv64 :: (((mem[i] == old(mem[i])) ==> (Gamma_mem[i] == old(Gamma_mem[i]))))); ensures (old(memory_load32_le(mem, $z_addr)) == memory_load32_le(mem, $z_addr)); - free ensures (memory_load32_le(mem, 1860bv64) == 131073bv32); - free ensures (memory_load64_le(mem, 69064bv64) == 1808bv64); - free ensures (memory_load64_le(mem, 69072bv64) == 1728bv64); - free ensures (memory_load64_le(mem, 69592bv64) == 1812bv64); - free ensures (memory_load64_le(mem, 69672bv64) == 69672bv64); + free ensures (memory_load32_le(mem, 2316bv64) == 131073bv32); + free ensures (memory_load64_le(mem, 130424bv64) == 2256bv64); + free ensures (memory_load64_le(mem, 130432bv64) == 2176bv64); + free ensures (memory_load64_le(mem, 131032bv64) == 131092bv64); + free ensures (memory_load64_le(mem, 131040bv64) == 131096bv64); + free ensures (memory_load64_le(mem, 131056bv64) == 2260bv64); + free ensures (memory_load64_le(mem, 131080bv64) == 131080bv64); procedure {:extern} rely_transitive(); modifies Gamma_mem, mem; @@ -72,51 +78,65 @@ implementation {:extern} guarantee_reflexive() assert ((memory_load32_le(mem, $z_addr) != 0bv32) ==> (memory_load32_le(mem, $z_addr) != 0bv32)); } -procedure main_1812(); +procedure main(); modifies Gamma_R0, Gamma_R10, Gamma_R8, Gamma_R9, Gamma_mem, R0, R10, R8, R9, mem; requires (Gamma_R0 == false); - free requires (memory_load64_le(mem, 69664bv64) == 0bv64); - free requires (memory_load64_le(mem, 69672bv64) == 69672bv64); - free requires (memory_load32_le(mem, 1860bv64) == 131073bv32); - free requires (memory_load64_le(mem, 69064bv64) == 1808bv64); - free requires (memory_load64_le(mem, 69072bv64) == 1728bv64); - free requires (memory_load64_le(mem, 69592bv64) == 1812bv64); - free requires (memory_load64_le(mem, 69672bv64) == 69672bv64); - free ensures (memory_load32_le(mem, 1860bv64) == 131073bv32); - free ensures (memory_load64_le(mem, 69064bv64) == 1808bv64); - free ensures (memory_load64_le(mem, 69072bv64) == 1728bv64); - free ensures (memory_load64_le(mem, 69592bv64) == 1812bv64); - free ensures (memory_load64_le(mem, 69672bv64) == 69672bv64); - -implementation main_1812() + free requires (memory_load64_le(mem, 131072bv64) == 0bv64); + free requires (memory_load64_le(mem, 131080bv64) == 131080bv64); + free requires (memory_load32_le(mem, 2316bv64) == 131073bv32); + free requires (memory_load64_le(mem, 130424bv64) == 2256bv64); + free requires (memory_load64_le(mem, 130432bv64) == 2176bv64); + free requires (memory_load64_le(mem, 131032bv64) == 131092bv64); + free requires (memory_load64_le(mem, 131040bv64) == 131096bv64); + free requires (memory_load64_le(mem, 131056bv64) == 2260bv64); + free requires (memory_load64_le(mem, 131080bv64) == 131080bv64); + free ensures (memory_load32_le(mem, 2316bv64) == 131073bv32); + free ensures (memory_load64_le(mem, 130424bv64) == 2256bv64); + free ensures (memory_load64_le(mem, 130432bv64) == 2176bv64); + free ensures (memory_load64_le(mem, 131032bv64) == 131092bv64); + free ensures (memory_load64_le(mem, 131040bv64) == 131096bv64); + free ensures (memory_load64_le(mem, 131056bv64) == 2260bv64); + free ensures (memory_load64_le(mem, 131080bv64) == 131080bv64); + +implementation main() { + var $load5: bv64; + var $load6: bv64; + var Gamma_$load5: bool; + var Gamma_$load6: bool; var Gamma_x_old: bool; var z_old: bv32; - main_1812__0___hi9iFJbTHKoI22LcBI~BA: - assume {:captureState "main_1812__0___hi9iFJbTHKoI22LcBI~BA"} true; + $main$__0__$D9t2gNJrSmyMH3GAVRe3IQ: + assume {:captureState "$main$__0__$D9t2gNJrSmyMH3GAVRe3IQ"} true; + R8, Gamma_R8 := 126976bv64, true; + R9, Gamma_R9 := 126976bv64, true; R0, Gamma_R0 := 0bv64, true; - R8, Gamma_R8 := 69632bv64, true; - R9, Gamma_R9 := 69632bv64, true; + call rely(); + $load5, Gamma_$load5 := memory_load64_le(mem, bvadd64(R8, 4064bv64)), (gamma_load64(Gamma_mem, bvadd64(R8, 4064bv64)) || L(mem, bvadd64(R8, 4064bv64))); + R8, Gamma_R8 := $load5, Gamma_$load5; + call rely(); + $load6, Gamma_$load6 := memory_load64_le(mem, bvadd64(R9, 4056bv64)), (gamma_load64(Gamma_mem, bvadd64(R9, 4056bv64)) || L(mem, bvadd64(R9, 4056bv64))); + R9, Gamma_R9 := $load6, Gamma_$load6; R10, Gamma_R10 := 2bv64, true; call rely(); + assert (L(mem, R8) ==> true); z_old := memory_load32_le(mem, $z_addr); Gamma_x_old := (gamma_load32(Gamma_mem, $x_addr) || L(mem, $x_addr)); - assert (L(mem, bvadd64(R8, 56bv64)) ==> true); - mem, Gamma_mem := memory_store32_le(mem, bvadd64(R8, 56bv64), 0bv32), gamma_store32(Gamma_mem, bvadd64(R8, 56bv64), true); - assert ((bvadd64(R8, 56bv64) == $z_addr) ==> (L(mem, $x_addr) ==> Gamma_x_old)); + mem, Gamma_mem := memory_store32_le(mem, R8, 0bv32), gamma_store32(Gamma_mem, R8, true); + assert ((R8 == $z_addr) ==> (L(mem, $x_addr) ==> Gamma_x_old)); assert ((z_old != 0bv32) ==> (memory_load32_le(mem, $z_addr) != 0bv32)); - assume {:captureState "1828_0"} true; + assume {:captureState "2284$0"} true; call rely(); + assert (L(mem, R9) ==> Gamma_R10); z_old := memory_load32_le(mem, $z_addr); Gamma_x_old := (gamma_load32(Gamma_mem, $x_addr) || L(mem, $x_addr)); - assert (L(mem, bvadd64(R9, 52bv64)) ==> Gamma_R10); - mem, Gamma_mem := memory_store32_le(mem, bvadd64(R9, 52bv64), R10[32:0]), gamma_store32(Gamma_mem, bvadd64(R9, 52bv64), Gamma_R10); - assert ((bvadd64(R9, 52bv64) == $z_addr) ==> (L(mem, $x_addr) ==> Gamma_x_old)); + mem, Gamma_mem := memory_store32_le(mem, R9, R10[32:0]), gamma_store32(Gamma_mem, R9, Gamma_R10); + assert ((R9 == $z_addr) ==> (L(mem, $x_addr) ==> Gamma_x_old)); assert ((z_old != 0bv32) ==> (memory_load32_le(mem, $z_addr) != 0bv32)); - assume {:captureState "1832_0"} true; - goto main_1812_basil_return; - main_1812_basil_return: - assume {:captureState "main_1812_basil_return"} true; + assume {:captureState "2288$0"} true; + goto main_basil_return; + main_basil_return: + assume {:captureState "main_basil_return"} true; return; } diff --git a/src/test/correct/basic_sec_policy_write/clang_pic/basic_sec_policy_write.adt b/src/test/correct/basic_sec_policy_write/clang_pic/basic_sec_policy_write.adt deleted file mode 100644 index 8aae9d6c8..000000000 --- a/src/test/correct/basic_sec_policy_write/clang_pic/basic_sec_policy_write.adt +++ /dev/null @@ -1,524 +0,0 @@ -Project(Attrs([Attr("filename","\"clang_pic/basic_sec_policy_write.out\""), -Attr("image-specification","(declare abi (name str))\n(declare arch (name str))\n(declare base-address (addr int))\n(declare bias (off int))\n(declare bits (size int))\n(declare code-region (addr int) (size int) (off int))\n(declare code-start (addr int))\n(declare entry-point (addr int))\n(declare external-reference (addr int) (name str))\n(declare format (name str))\n(declare is-executable (flag bool))\n(declare is-little-endian (flag bool))\n(declare llvm:base-address (addr int))\n(declare llvm:code-entry (name str) (off int) (size int))\n(declare llvm:coff-import-library (name str))\n(declare llvm:coff-virtual-section-header (name str) (addr int) (size int))\n(declare llvm:elf-program-header (name str) (off int) (size int))\n(declare llvm:elf-program-header-flags (name str) (ld bool) (r bool) \n (w bool) (x bool))\n(declare llvm:elf-virtual-program-header (name str) (addr int) (size int))\n(declare llvm:entry-point (addr int))\n(declare llvm:macho-symbol (name str) (value int))\n(declare llvm:name-reference (at int) (name str))\n(declare llvm:relocation (at int) (addr int))\n(declare llvm:section-entry (name str) (addr int) (size int) (off int))\n(declare llvm:section-flags (name str) (r bool) (w bool) (x bool))\n(declare llvm:segment-command (name str) (off int) (size int))\n(declare llvm:segment-command-flags (name str) (r bool) (w bool) (x bool))\n(declare llvm:symbol-entry (name str) (addr int) (size int) (off int)\n (value int))\n(declare llvm:virtual-segment-command (name str) (addr int) (size int))\n(declare mapped (addr int) (size int) (off int))\n(declare named-region (addr int) (size int) (name str))\n(declare named-symbol (addr int) (name str))\n(declare require (name str))\n(declare section (addr int) (size int))\n(declare segment (addr int) (size int) (r bool) (w bool) (x bool))\n(declare subarch (name str))\n(declare symbol-chunk (addr int) (size int) (root int))\n(declare symbol-value (addr int) (value int))\n(declare system (name str))\n(declare vendor (name str))\n\n(abi unknown)\n(arch aarch64)\n(base-address 0)\n(bias 0)\n(bits 64)\n(code-region 1940 20 1940)\n(code-region 1600 340 1600)\n(code-region 1488 96 1488)\n(code-region 1456 24 1456)\n(code-start 1652)\n(code-start 1600)\n(code-start 1876)\n(entry-point 1600)\n(external-reference 69552 _ITM_deregisterTMCloneTable)\n(external-reference 69560 __cxa_finalize)\n(external-reference 69584 __gmon_start__)\n(external-reference 69600 _ITM_registerTMCloneTable)\n(external-reference 69632 __libc_start_main)\n(external-reference 69640 __cxa_finalize)\n(external-reference 69648 __gmon_start__)\n(external-reference 69656 abort)\n(format elf)\n(is-executable true)\n(is-little-endian true)\n(llvm:base-address 0)\n(llvm:code-entry abort 0 0)\n(llvm:code-entry __cxa_finalize 0 0)\n(llvm:code-entry __libc_start_main 0 0)\n(llvm:code-entry _init 1456 0)\n(llvm:code-entry main 1876 64)\n(llvm:code-entry _start 1600 52)\n(llvm:code-entry abort@GLIBC_2.17 0 0)\n(llvm:code-entry _fini 1940 0)\n(llvm:code-entry __cxa_finalize@GLIBC_2.17 0 0)\n(llvm:code-entry __libc_start_main@GLIBC_2.34 0 0)\n(llvm:code-entry frame_dummy 1872 0)\n(llvm:code-entry __do_global_dtors_aux 1792 0)\n(llvm:code-entry register_tm_clones 1728 0)\n(llvm:code-entry deregister_tm_clones 1680 0)\n(llvm:code-entry call_weak_fn 1652 20)\n(llvm:code-entry .fini 1940 20)\n(llvm:code-entry .text 1600 340)\n(llvm:code-entry .plt 1488 96)\n(llvm:code-entry .init 1456 24)\n(llvm:elf-program-header 08 3512 584)\n(llvm:elf-program-header 07 0 0)\n(llvm:elf-program-header 06 1964 60)\n(llvm:elf-program-header 05 596 68)\n(llvm:elf-program-header 04 3528 480)\n(llvm:elf-program-header 03 3512 632)\n(llvm:elf-program-header 02 0 2208)\n(llvm:elf-program-header 01 568 27)\n(llvm:elf-program-header 00 64 504)\n(llvm:elf-program-header-flags 08 false true false false)\n(llvm:elf-program-header-flags 07 false true true false)\n(llvm:elf-program-header-flags 06 false true false false)\n(llvm:elf-program-header-flags 05 false true false false)\n(llvm:elf-program-header-flags 04 false true true false)\n(llvm:elf-program-header-flags 03 true true true false)\n(llvm:elf-program-header-flags 02 true true false true)\n(llvm:elf-program-header-flags 01 false true false false)\n(llvm:elf-program-header-flags 00 false true false false)\n(llvm:elf-virtual-program-header 08 69048 584)\n(llvm:elf-virtual-program-header 07 0 0)\n(llvm:elf-virtual-program-header 06 1964 60)\n(llvm:elf-virtual-program-header 05 596 68)\n(llvm:elf-virtual-program-header 04 69064 480)\n(llvm:elf-virtual-program-header 03 69048 648)\n(llvm:elf-virtual-program-header 02 0 2208)\n(llvm:elf-virtual-program-header 01 568 27)\n(llvm:elf-virtual-program-header 00 64 504)\n(llvm:entry-point 1600)\n(llvm:name-reference 69656 abort)\n(llvm:name-reference 69648 __gmon_start__)\n(llvm:name-reference 69640 __cxa_finalize)\n(llvm:name-reference 69632 __libc_start_main)\n(llvm:name-reference 69600 _ITM_registerTMCloneTable)\n(llvm:name-reference 69584 __gmon_start__)\n(llvm:name-reference 69560 __cxa_finalize)\n(llvm:name-reference 69552 _ITM_deregisterTMCloneTable)\n(llvm:section-entry .shstrtab 0 259 6980)\n(llvm:section-entry .strtab 0 580 6400)\n(llvm:section-entry .symtab 0 2184 4216)\n(llvm:section-entry .comment 0 71 4144)\n(llvm:section-entry .bss 69680 16 4144)\n(llvm:section-entry .data 69664 16 4128)\n(llvm:section-entry .got.plt 69608 56 4072)\n(llvm:section-entry .got 69544 64 4008)\n(llvm:section-entry .dynamic 69064 480 3528)\n(llvm:section-entry .fini_array 69056 8 3520)\n(llvm:section-entry .init_array 69048 8 3512)\n(llvm:section-entry .eh_frame 2024 184 2024)\n(llvm:section-entry .eh_frame_hdr 1964 60 1964)\n(llvm:section-entry .rodata 1960 4 1960)\n(llvm:section-entry .fini 1940 20 1940)\n(llvm:section-entry .text 1600 340 1600)\n(llvm:section-entry .plt 1488 96 1488)\n(llvm:section-entry .init 1456 24 1456)\n(llvm:section-entry .rela.plt 1360 96 1360)\n(llvm:section-entry .rela.dyn 1120 240 1120)\n(llvm:section-entry .gnu.version_r 1072 48 1072)\n(llvm:section-entry .gnu.version 1054 18 1054)\n(llvm:section-entry .dynstr 912 141 912)\n(llvm:section-entry .dynsym 696 216 696)\n(llvm:section-entry .gnu.hash 664 28 664)\n(llvm:section-entry .note.ABI-tag 632 32 632)\n(llvm:section-entry .note.gnu.build-id 596 36 596)\n(llvm:section-entry .interp 568 27 568)\n(llvm:section-flags .shstrtab true false false)\n(llvm:section-flags .strtab true false false)\n(llvm:section-flags .symtab true false false)\n(llvm:section-flags .comment true false false)\n(llvm:section-flags .bss true true false)\n(llvm:section-flags .data true true false)\n(llvm:section-flags .got.plt true true false)\n(llvm:section-flags .got true true false)\n(llvm:section-flags .dynamic true true false)\n(llvm:section-flags .fini_array true true false)\n(llvm:section-flags .init_array true true false)\n(llvm:section-flags .eh_frame true false false)\n(llvm:section-flags .eh_frame_hdr true false false)\n(llvm:section-flags .rodata true false false)\n(llvm:section-flags .fini true false true)\n(llvm:section-flags .text true false true)\n(llvm:section-flags .plt true false true)\n(llvm:section-flags .init true false true)\n(llvm:section-flags .rela.plt true false false)\n(llvm:section-flags .rela.dyn true false false)\n(llvm:section-flags .gnu.version_r true false false)\n(llvm:section-flags .gnu.version true false false)\n(llvm:section-flags .dynstr true false false)\n(llvm:section-flags .dynsym true false false)\n(llvm:section-flags .gnu.hash true false false)\n(llvm:section-flags .note.ABI-tag true false false)\n(llvm:section-flags .note.gnu.build-id true false false)\n(llvm:section-flags .interp true false false)\n(llvm:symbol-entry abort 0 0 0 0)\n(llvm:symbol-entry __cxa_finalize 0 0 0 0)\n(llvm:symbol-entry __libc_start_main 0 0 0 0)\n(llvm:symbol-entry _init 1456 0 1456 1456)\n(llvm:symbol-entry main 1876 64 1876 1876)\n(llvm:symbol-entry _start 1600 52 1600 1600)\n(llvm:symbol-entry abort@GLIBC_2.17 0 0 0 0)\n(llvm:symbol-entry _fini 1940 0 1940 1940)\n(llvm:symbol-entry __cxa_finalize@GLIBC_2.17 0 0 0 0)\n(llvm:symbol-entry __libc_start_main@GLIBC_2.34 0 0 0 0)\n(llvm:symbol-entry frame_dummy 1872 0 1872 1872)\n(llvm:symbol-entry __do_global_dtors_aux 1792 0 1792 1792)\n(llvm:symbol-entry register_tm_clones 1728 0 1728 1728)\n(llvm:symbol-entry deregister_tm_clones 1680 0 1680 1680)\n(llvm:symbol-entry call_weak_fn 1652 20 1652 1652)\n(mapped 0 2208 0)\n(mapped 69048 632 3512)\n(named-region 0 2208 02)\n(named-region 69048 648 03)\n(named-region 568 27 .interp)\n(named-region 596 36 .note.gnu.build-id)\n(named-region 632 32 .note.ABI-tag)\n(named-region 664 28 .gnu.hash)\n(named-region 696 216 .dynsym)\n(named-region 912 141 .dynstr)\n(named-region 1054 18 .gnu.version)\n(named-region 1072 48 .gnu.version_r)\n(named-region 1120 240 .rela.dyn)\n(named-region 1360 96 .rela.plt)\n(named-region 1456 24 .init)\n(named-region 1488 96 .plt)\n(named-region 1600 340 .text)\n(named-region 1940 20 .fini)\n(named-region 1960 4 .rodata)\n(named-region 1964 60 .eh_frame_hdr)\n(named-region 2024 184 .eh_frame)\n(named-region 69048 8 .init_array)\n(named-region 69056 8 .fini_array)\n(named-region 69064 480 .dynamic)\n(named-region 69544 64 .got)\n(named-region 69608 56 .got.plt)\n(named-region 69664 16 .data)\n(named-region 69680 16 .bss)\n(named-region 0 71 .comment)\n(named-region 0 2184 .symtab)\n(named-region 0 580 .strtab)\n(named-region 0 259 .shstrtab)\n(named-symbol 1652 call_weak_fn)\n(named-symbol 1680 deregister_tm_clones)\n(named-symbol 1728 register_tm_clones)\n(named-symbol 1792 __do_global_dtors_aux)\n(named-symbol 1872 frame_dummy)\n(named-symbol 0 __libc_start_main@GLIBC_2.34)\n(named-symbol 0 __cxa_finalize@GLIBC_2.17)\n(named-symbol 1940 _fini)\n(named-symbol 0 abort@GLIBC_2.17)\n(named-symbol 1600 _start)\n(named-symbol 1876 main)\n(named-symbol 1456 _init)\n(named-symbol 0 __libc_start_main)\n(named-symbol 0 __cxa_finalize)\n(named-symbol 0 abort)\n(require libc.so.6)\n(section 568 27)\n(section 596 36)\n(section 632 32)\n(section 664 28)\n(section 696 216)\n(section 912 141)\n(section 1054 18)\n(section 1072 48)\n(section 1120 240)\n(section 1360 96)\n(section 1456 24)\n(section 1488 96)\n(section 1600 340)\n(section 1940 20)\n(section 1960 4)\n(section 1964 60)\n(section 2024 184)\n(section 69048 8)\n(section 69056 8)\n(section 69064 480)\n(section 69544 64)\n(section 69608 56)\n(section 69664 16)\n(section 69680 16)\n(section 0 71)\n(section 0 2184)\n(section 0 580)\n(section 0 259)\n(segment 0 2208 true false true)\n(segment 69048 648 true true false)\n(subarch v8)\n(symbol-chunk 1652 20 1652)\n(symbol-chunk 1600 52 1600)\n(symbol-chunk 1876 64 1876)\n(symbol-value 1652 1652)\n(symbol-value 1680 1680)\n(symbol-value 1728 1728)\n(symbol-value 1792 1792)\n(symbol-value 1872 1872)\n(symbol-value 1940 1940)\n(symbol-value 1600 1600)\n(symbol-value 1876 1876)\n(symbol-value 1456 1456)\n(symbol-value 0 0)\n(system \"\")\n(vendor \"\")\n"), -Attr("abi-name","\"aarch64-linux-gnu-elf\"")]), -Sections([Section(".shstrtab", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x40\x06\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x48\x1c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x38\x00\x09\x00\x40\x00\x1d\x00\x1c\x00\x06\x00\x00\x00\x04\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x04\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xa0\x08\x00\x00\x00\x00\x00\x00\xa0\x08\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x01\x00\x00\x00\x06\x00\x00\x00\xb8\x0d\x00\x00\x00\x00\x00\x00\xb8\x0d\x01\x00\x00\x00\x00\x00\xb8\x0d\x01"), -Section(".strtab", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x40\x06\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x48\x1c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x38\x00\x09\x00\x40\x00\x1d\x00\x1c\x00\x06\x00\x00\x00\x04\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x04\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xa0\x08\x00\x00\x00\x00\x00\x00\xa0\x08\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x01\x00\x00\x00\x06\x00\x00\x00\xb8\x0d\x00\x00\x00\x00\x00\x00\xb8\x0d\x01\x00\x00\x00\x00\x00\xb8\x0d\x01\x00\x00\x00\x00\x00\x78\x02\x00\x00\x00\x00\x00\x00\x88\x02\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x02\x00\x00\x00\x06\x00\x00\x00\xc8\x0d\x00\x00\x00\x00\x00\x00\xc8\x0d\x01\x00\x00\x00\x00\x00\xc8\x0d\x01\x00\x00\x00\x00\x00\xe0\x01\x00\x00\x00\x00\x00\x00\xe0\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x04\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x50\xe5\x74\x64\x04\x00\x00\x00\xac\x07\x00\x00\x00\x00\x00\x00\xac\x07\x00\x00\x00\x00\x00\x00\xac\x07\x00\x00\x00\x00\x00\x00\x3c\x00\x00\x00\x00\x00\x00\x00\x3c\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x51\xe5\x74\x64\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x52\xe5\x74\x64\x04\x00\x00\x00\xb8\x0d\x00\x00\x00\x00\x00\x00\xb8\x0d\x01\x00\x00\x00\x00\x00\xb8\x0d\x01\x00\x00\x00\x00\x00\x48\x02\x00\x00\x00\x00\x00\x00\x48\x02\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x2f\x6c\x69\x62\x2f\x6c\x64\x2d\x6c\x69\x6e\x75"), -Section(".symtab", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x40\x06\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x48\x1c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x38\x00\x09\x00\x40\x00\x1d\x00\x1c\x00\x06\x00\x00\x00\x04\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x04\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xa0\x08\x00\x00\x00\x00\x00\x00\xa0\x08\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x01\x00\x00\x00\x06\x00\x00\x00\xb8\x0d\x00\x00\x00\x00\x00\x00\xb8\x0d\x01\x00\x00\x00\x00\x00\xb8\x0d\x01\x00\x00\x00\x00\x00\x78\x02\x00\x00\x00\x00\x00\x00\x88\x02\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x02\x00\x00\x00\x06\x00\x00\x00\xc8\x0d\x00\x00\x00\x00\x00\x00\xc8\x0d\x01\x00\x00\x00\x00\x00\xc8\x0d\x01\x00\x00\x00\x00\x00\xe0\x01\x00\x00\x00\x00\x00\x00\xe0\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x04\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x50\xe5\x74\x64\x04\x00\x00\x00\xac\x07\x00\x00\x00\x00\x00\x00\xac\x07\x00\x00\x00\x00\x00\x00\xac\x07\x00\x00\x00\x00\x00\x00\x3c\x00\x00\x00\x00\x00\x00\x00\x3c\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x51\xe5\x74\x64\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x52\xe5\x74\x64\x04\x00\x00\x00\xb8\x0d\x00\x00\x00\x00\x00\x00\xb8\x0d\x01\x00\x00\x00\x00\x00\xb8\x0d\x01\x00\x00\x00\x00\x00\x48\x02\x00\x00\x00\x00\x00\x00\x48\x02\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x2f\x6c\x69\x62\x2f\x6c\x64\x2d\x6c\x69\x6e\x75\x78\x2d\x61\x61\x72\x63\x68\x36\x34\x2e\x73\x6f\x2e\x31\x00\x00\x04\x00\x00\x00\x14\x00\x00\x00\x03\x00\x00\x00\x47\x4e\x55\x00\x46\x2d\x93\xfe\xdd\x3b\xd9\x98\x91\x08\xd2\xcb\xaf\x3b\x91\x1a\x1a\x00\xfd\xe6\x04\x00\x00\x00\x10\x00\x00\x00\x01\x00\x00\x00\x47\x4e\x55\x00\x00\x00\x00\x00\x03\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x01\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x0b\x00\xb0\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x17\x00\x20\x10\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x48\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x22\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x22\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x73\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5f\x5f\x63\x78\x61\x5f\x66\x69\x6e\x61\x6c\x69\x7a\x65\x00\x5f\x5f\x6c\x69\x62\x63\x5f\x73\x74\x61\x72\x74\x5f\x6d\x61\x69\x6e\x00\x61\x62\x6f\x72\x74\x00\x6c\x69\x62\x63\x2e\x73\x6f\x2e\x36\x00\x47\x4c\x49\x42\x43\x5f\x32\x2e\x31\x37\x00\x47\x4c\x49\x42\x43\x5f\x32\x2e\x33\x34\x00\x5f\x49\x54\x4d\x5f\x64\x65\x72\x65\x67\x69\x73\x74\x65\x72\x54\x4d\x43\x6c\x6f\x6e\x65\x54\x61\x62\x6c\x65\x00\x5f\x5f\x67\x6d\x6f\x6e\x5f\x73\x74\x61\x72\x74\x5f\x5f\x00\x5f\x49\x54\x4d\x5f\x72\x65\x67\x69\x73\x74\x65\x72\x54\x4d\x43\x6c\x6f\x6e\x65\x54\x61\x62\x6c\x65\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x01\x00\x03\x00\x01\x00\x03\x00\x01\x00\x01\x00\x02\x00\x28\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x97\x91\x96\x06\x00\x00\x03\x00\x32\x00\x00\x00\x10\x00\x00\x00\xb4\x91\x96\x06\x00\x00\x02\x00\x3d\x00\x00\x00\x00\x00\x00\x00\xb8\x0d\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x50\x07\x00\x00\x00\x00\x00\x00\xc0\x0d\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\xc0\x0f\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x34\x10\x01\x00\x00\x00\x00\x00\xc8\x0f\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x38\x10\x01\x00\x00\x00\x00\x00\xd8\x0f\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x54\x07\x00\x00\x00\x00\x00\x00\x28\x10\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x28\x10\x01\x00\x00\x00\x00\x00\xb0\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xb8\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xd0\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe0\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x08\x10\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x10\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x18\x10\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1f\x20\x03\xd5\xfd\x7b\xbf\xa9\xfd\x03\x00\x91\x2e\x00\x00\x94\xfd\x7b\xc1\xa8\xc0\x03\x5f\xd6\x00\x00\x00\x00\x00\x00\x00\x00\xf0\x7b\xbf\xa9\x90\x00\x00\x90\x11\xfe\x47\xf9\x10\xe2\x3f\x91\x20\x02\x1f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x90\x00\x00\xb0\x11\x02\x40\xf9\x10\x02\x00\x91\x20\x02\x1f\xd6\x90\x00\x00\xb0\x11\x06\x40\xf9\x10\x22\x00\x91\x20\x02\x1f\xd6\x90\x00\x00\xb0\x11\x0a\x40\xf9\x10\x42\x00\x91\x20\x02\x1f\xd6\x90\x00\x00\xb0\x11\x0e\x40\xf9\x10\x62\x00\x91\x20\x02\x1f\xd6\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1f\x20\x03\xd5\x1d\x00\x80\xd2\x1e\x00\x80\xd2\xe5\x03\x00\xaa\xe1\x03\x40\xf9\xe2\x23\x00\x91\xe6\x03\x00\x91\x80\x00\x00\x90\x00\xec\x47\xf9\x03\x00\x80\xd2\x04\x00\x80\xd2\xe1\xff\xff\x97\xec\xff\xff\x97\x80\x00\x00\x90\x00\xe8\x47\xf9\x40\x00\x00\xb4\xe4\xff\xff\x17\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x80\x00\x00\xb0\x00\xc0\x00\x91\x81\x00\x00\xb0\x21\xc0\x00\x91\x3f\x00\x00\xeb\xc0\x00\x00\x54\x81\x00\x00\x90\x21\xd8\x47\xf9\x61\x00\x00\xb4\xf0\x03\x01\xaa\x00\x02\x1f\xd6\xc0\x03\x5f\xd6\x80\x00\x00\xb0\x00\xc0\x00\x91\x81\x00\x00\xb0\x21\xc0\x00\x91\x21\x00\x00\xcb\x22\xfc\x7f\xd3\x41\x0c\x81\x8b\x21\xfc\x41\x93\xc1\x00\x00\xb4\x82\x00\x00\x90\x42\xf0\x47\xf9\x62\x00\x00\xb4\xf0\x03\x02\xaa\x00\x02\x1f\xd6\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\xfd\x7b\xbe\xa9\xfd\x03\x00\x91\xf3\x0b\x00\xf9\x93\x00\x00\xb0\x60\xc2\x40\x39\x40\x01\x00\x35\x80\x00\x00\x90\x00\xdc\x47\xf9\x80\x00\x00\xb4\x80\x00\x00\xb0\x00\x14\x40\xf9\xb5\xff\xff\x97\xd8\xff\xff\x97\x20\x00\x80\x52\x60\xc2\x00\x39\xf3\x0b\x40\xf9\xfd\x7b\xc2\xa8\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\xdc\xff\xff\x17\xff\x43\x00\xd1\xe0\x0f\x00\xb9\x89\x00\x00\x90\x29\xe1\x47\xf9\x28\x00\x80\x52\x28\x01\x00\xb9\xea\x0f\x40\xb9\x88\x00\x00\x90\x08\xe5\x47\xf9\x0a\x01\x00\xb9\xe0\x03\x1f\x2a\x1f\x01\x00\xb9\x48\x00\x80\x52\x28\x01\x00\xb9\xff\x43\x00\x91\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\xfd\x7b\xbf\xa9\xfd\x03\x00\x91\xfd\x7b\xc1\xa8\xc0\x03\x5f\xd6\x01\x00\x02\x00\x01\x1b\x03\x3b\x38\x00\x00\x00\x06\x00\x00\x00\x94\xfe\xff\xff\x50\x00\x00\x00\xe4\xfe\xff\xff\x64\x00\x00\x00\x14\xff\xff\xff\x78\x00\x00\x00\x54\xff\xff\xff\x8c\x00\x00\x00\xa4\xff\xff\xff\xb0\x00\x00\x00\xa8\xff\xff\xff\xd8\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x01\x7a\x52\x00\x04\x78\x1e\x01\x1b\x0c\x1f\x00\x10\x00\x00\x00\x18\x00\x00\x00\x3c\xfe\xff\xff\x34\x00\x00\x00\x00\x41\x07\x1e\x10\x00\x00\x00\x2c\x00\x00\x00\x78\xfe\xff\xff\x30\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x40\x00\x00\x00\x94\xfe\xff\xff\x3c\x00\x00\x00\x00\x00\x00\x00\x20\x00\x00\x00\x54\x00\x00\x00\xc0\xfe\xff\xff\x48\x00\x00\x00\x00\x41\x0e\x20\x9d\x04\x9e\x03\x42\x93\x02\x4e\xde\xdd\xd3\x0e\x00\x00\x00\x00\x10\x00\x00\x00\x78\x00\x00\x00\xec\xfe\xff\xff\x04\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x01\x7a\x52\x00\x01\x7c\x1e\x01\x1b\x0c\x1f\x00\x14\x00\x00\x00"), -Section(".comment", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x40\x06\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x48\x1c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x38\x00\x09\x00\x40\x00\x1d\x00\x1c\x00\x06\x00\x00\x00\x04\x00\x00"), -Section(".interp", 0x238, "\x2f\x6c\x69\x62\x2f\x6c\x64\x2d\x6c\x69\x6e\x75\x78\x2d\x61\x61\x72\x63\x68\x36\x34\x2e\x73\x6f\x2e\x31\x00"), -Section(".note.gnu.build-id", 0x254, "\x04\x00\x00\x00\x14\x00\x00\x00\x03\x00\x00\x00\x47\x4e\x55\x00\x46\x2d\x93\xfe\xdd\x3b\xd9\x98\x91\x08\xd2\xcb\xaf\x3b\x91\x1a\x1a\x00\xfd\xe6"), -Section(".note.ABI-tag", 0x278, "\x04\x00\x00\x00\x10\x00\x00\x00\x01\x00\x00\x00\x47\x4e\x55\x00\x00\x00\x00\x00\x03\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00"), -Section(".gnu.hash", 0x298, "\x01\x00\x00\x00\x01\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".dynsym", 0x2B8, "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x0b\x00\xb0\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x17\x00\x20\x10\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x48\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x22\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x22\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x73\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".dynstr", 0x390, "\x00\x5f\x5f\x63\x78\x61\x5f\x66\x69\x6e\x61\x6c\x69\x7a\x65\x00\x5f\x5f\x6c\x69\x62\x63\x5f\x73\x74\x61\x72\x74\x5f\x6d\x61\x69\x6e\x00\x61\x62\x6f\x72\x74\x00\x6c\x69\x62\x63\x2e\x73\x6f\x2e\x36\x00\x47\x4c\x49\x42\x43\x5f\x32\x2e\x31\x37\x00\x47\x4c\x49\x42\x43\x5f\x32\x2e\x33\x34\x00\x5f\x49\x54\x4d\x5f\x64\x65\x72\x65\x67\x69\x73\x74\x65\x72\x54\x4d\x43\x6c\x6f\x6e\x65\x54\x61\x62\x6c\x65\x00\x5f\x5f\x67\x6d\x6f\x6e\x5f\x73\x74\x61\x72\x74\x5f\x5f\x00\x5f\x49\x54\x4d\x5f\x72\x65\x67\x69\x73\x74\x65\x72\x54\x4d\x43\x6c\x6f\x6e\x65\x54\x61\x62\x6c\x65\x00"), -Section(".gnu.version", 0x41E, "\x00\x00\x00\x00\x00\x00\x02\x00\x01\x00\x03\x00\x01\x00\x03\x00\x01\x00"), -Section(".gnu.version_r", 0x430, "\x01\x00\x02\x00\x28\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x97\x91\x96\x06\x00\x00\x03\x00\x32\x00\x00\x00\x10\x00\x00\x00\xb4\x91\x96\x06\x00\x00\x02\x00\x3d\x00\x00\x00\x00\x00\x00\x00"), -Section(".rela.dyn", 0x460, "\xb8\x0d\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x50\x07\x00\x00\x00\x00\x00\x00\xc0\x0d\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\xc0\x0f\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x34\x10\x01\x00\x00\x00\x00\x00\xc8\x0f\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x38\x10\x01\x00\x00\x00\x00\x00\xd8\x0f\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x54\x07\x00\x00\x00\x00\x00\x00\x28\x10\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x28\x10\x01\x00\x00\x00\x00\x00\xb0\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xb8\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xd0\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe0\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".rela.plt", 0x550, "\x00\x10\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x08\x10\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x10\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x18\x10\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".init", 0x5B0, "\x1f\x20\x03\xd5\xfd\x7b\xbf\xa9\xfd\x03\x00\x91\x2e\x00\x00\x94\xfd\x7b\xc1\xa8\xc0\x03\x5f\xd6"), -Section(".plt", 0x5D0, "\xf0\x7b\xbf\xa9\x90\x00\x00\x90\x11\xfe\x47\xf9\x10\xe2\x3f\x91\x20\x02\x1f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x90\x00\x00\xb0\x11\x02\x40\xf9\x10\x02\x00\x91\x20\x02\x1f\xd6\x90\x00\x00\xb0\x11\x06\x40\xf9\x10\x22\x00\x91\x20\x02\x1f\xd6\x90\x00\x00\xb0\x11\x0a\x40\xf9\x10\x42\x00\x91\x20\x02\x1f\xd6\x90\x00\x00\xb0\x11\x0e\x40\xf9\x10\x62\x00\x91\x20\x02\x1f\xd6"), -Section(".fini", 0x794, "\x1f\x20\x03\xd5\xfd\x7b\xbf\xa9\xfd\x03\x00\x91\xfd\x7b\xc1\xa8\xc0\x03\x5f\xd6"), -Section(".rodata", 0x7A8, "\x01\x00\x02\x00"), -Section(".eh_frame_hdr", 0x7AC, "\x01\x1b\x03\x3b\x38\x00\x00\x00\x06\x00\x00\x00\x94\xfe\xff\xff\x50\x00\x00\x00\xe4\xfe\xff\xff\x64\x00\x00\x00\x14\xff\xff\xff\x78\x00\x00\x00\x54\xff\xff\xff\x8c\x00\x00\x00\xa4\xff\xff\xff\xb0\x00\x00\x00\xa8\xff\xff\xff\xd8\x00\x00\x00"), -Section(".eh_frame", 0x7E8, "\x10\x00\x00\x00\x00\x00\x00\x00\x01\x7a\x52\x00\x04\x78\x1e\x01\x1b\x0c\x1f\x00\x10\x00\x00\x00\x18\x00\x00\x00\x3c\xfe\xff\xff\x34\x00\x00\x00\x00\x41\x07\x1e\x10\x00\x00\x00\x2c\x00\x00\x00\x78\xfe\xff\xff\x30\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x40\x00\x00\x00\x94\xfe\xff\xff\x3c\x00\x00\x00\x00\x00\x00\x00\x20\x00\x00\x00\x54\x00\x00\x00\xc0\xfe\xff\xff\x48\x00\x00\x00\x00\x41\x0e\x20\x9d\x04\x9e\x03\x42\x93\x02\x4e\xde\xdd\xd3\x0e\x00\x00\x00\x00\x10\x00\x00\x00\x78\x00\x00\x00\xec\xfe\xff\xff\x04\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x01\x7a\x52\x00\x01\x7c\x1e\x01\x1b\x0c\x1f\x00\x14\x00\x00\x00\x18\x00\x00\x00\xc8\xfe\xff\xff\x40\x00\x00\x00\x00\x44\x0e\x10\x78\x0e\x00\x00\x00\x00\x00\x00"), -Section(".fini_array", 0x10DC0, "\x00\x07\x00\x00\x00\x00\x00\x00"), -Section(".dynamic", 0x10DC8, "\x01\x00\x00\x00\x00\x00\x00\x00\x28\x00\x00\x00\x00\x00\x00\x00\x0c\x00\x00\x00\x00\x00\x00\x00\xb0\x05\x00\x00\x00\x00\x00\x00\x0d\x00\x00\x00\x00\x00\x00\x00\x94\x07\x00\x00\x00\x00\x00\x00\x19\x00\x00\x00\x00\x00\x00\x00\xb8\x0d\x01\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x1a\x00\x00\x00\x00\x00\x00\x00\xc0\x0d\x01\x00\x00\x00\x00\x00\x1c\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\xf5\xfe\xff\x6f\x00\x00\x00\x00\x98\x02\x00\x00\x00\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x90\x03\x00\x00\x00\x00\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\xb8\x02\x00\x00\x00\x00\x00\x00\x0a\x00\x00\x00\x00\x00\x00\x00\x8d\x00\x00\x00\x00\x00\x00\x00\x0b\x00\x00\x00\x00\x00\x00\x00\x18\x00\x00\x00\x00\x00\x00\x00\x15\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\xe8\x0f\x01\x00\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x60\x00\x00\x00\x00\x00\x00\x00\x14\x00\x00\x00\x00\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x17\x00\x00\x00\x00\x00\x00\x00\x50\x05\x00\x00\x00\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x60\x04\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\xf0\x00\x00\x00\x00\x00\x00\x00\x09\x00\x00\x00\x00\x00\x00\x00\x18\x00\x00\x00\x00\x00\x00\x00\xfb\xff\xff\x6f\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\xfe\xff\xff\x6f\x00\x00\x00\x00\x30\x04\x00\x00\x00\x00\x00\x00\xff\xff\xff\x6f\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\xf0\xff\xff\x6f\x00\x00\x00\x00\x1e\x04\x00\x00\x00\x00\x00\x00\xf9\xff\xff\x6f\x00\x00\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".init_array", 0x10DB8, "\x50\x07\x00\x00\x00\x00\x00\x00"), -Section(".got", 0x10FA8, "\xc8\x0d\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x34\x10\x01\x00\x00\x00\x00\x00\x38\x10\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x54\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".got.plt", 0x10FE8, "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xd0\x05\x00\x00\x00\x00\x00\x00\xd0\x05\x00\x00\x00\x00\x00\x00\xd0\x05\x00\x00\x00\x00\x00\x00\xd0\x05\x00\x00\x00\x00\x00\x00"), -Section(".data", 0x11020, "\x00\x00\x00\x00\x00\x00\x00\x00\x28\x10\x01\x00\x00\x00\x00\x00"), -Section(".text", 0x640, "\x1f\x20\x03\xd5\x1d\x00\x80\xd2\x1e\x00\x80\xd2\xe5\x03\x00\xaa\xe1\x03\x40\xf9\xe2\x23\x00\x91\xe6\x03\x00\x91\x80\x00\x00\x90\x00\xec\x47\xf9\x03\x00\x80\xd2\x04\x00\x80\xd2\xe1\xff\xff\x97\xec\xff\xff\x97\x80\x00\x00\x90\x00\xe8\x47\xf9\x40\x00\x00\xb4\xe4\xff\xff\x17\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x80\x00\x00\xb0\x00\xc0\x00\x91\x81\x00\x00\xb0\x21\xc0\x00\x91\x3f\x00\x00\xeb\xc0\x00\x00\x54\x81\x00\x00\x90\x21\xd8\x47\xf9\x61\x00\x00\xb4\xf0\x03\x01\xaa\x00\x02\x1f\xd6\xc0\x03\x5f\xd6\x80\x00\x00\xb0\x00\xc0\x00\x91\x81\x00\x00\xb0\x21\xc0\x00\x91\x21\x00\x00\xcb\x22\xfc\x7f\xd3\x41\x0c\x81\x8b\x21\xfc\x41\x93\xc1\x00\x00\xb4\x82\x00\x00\x90\x42\xf0\x47\xf9\x62\x00\x00\xb4\xf0\x03\x02\xaa\x00\x02\x1f\xd6\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\xfd\x7b\xbe\xa9\xfd\x03\x00\x91\xf3\x0b\x00\xf9\x93\x00\x00\xb0\x60\xc2\x40\x39\x40\x01\x00\x35\x80\x00\x00\x90\x00\xdc\x47\xf9\x80\x00\x00\xb4\x80\x00\x00\xb0\x00\x14\x40\xf9\xb5\xff\xff\x97\xd8\xff\xff\x97\x20\x00\x80\x52\x60\xc2\x00\x39\xf3\x0b\x40\xf9\xfd\x7b\xc2\xa8\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\xdc\xff\xff\x17\xff\x43\x00\xd1\xe0\x0f\x00\xb9\x89\x00\x00\x90\x29\xe1\x47\xf9\x28\x00\x80\x52\x28\x01\x00\xb9\xea\x0f\x40\xb9\x88\x00\x00\x90\x08\xe5\x47\xf9\x0a\x01\x00\xb9\xe0\x03\x1f\x2a\x1f\x01\x00\xb9\x48\x00\x80\x52\x28\x01\x00\xb9\xff\x43\x00\x91\xc0\x03\x5f\xd6")]), -Memmap([Annotation(Region(0x0,0x89F), Attr("segment","02 0 2208")), -Annotation(Region(0x640,0x673), Attr("symbol","\"_start\"")), -Annotation(Region(0x0,0x102), Attr("section","\".shstrtab\"")), -Annotation(Region(0x0,0x243), Attr("section","\".strtab\"")), -Annotation(Region(0x0,0x887), Attr("section","\".symtab\"")), -Annotation(Region(0x0,0x46), Attr("section","\".comment\"")), -Annotation(Region(0x238,0x252), Attr("section","\".interp\"")), -Annotation(Region(0x254,0x277), Attr("section","\".note.gnu.build-id\"")), -Annotation(Region(0x278,0x297), Attr("section","\".note.ABI-tag\"")), -Annotation(Region(0x298,0x2B3), Attr("section","\".gnu.hash\"")), -Annotation(Region(0x2B8,0x38F), Attr("section","\".dynsym\"")), -Annotation(Region(0x390,0x41C), Attr("section","\".dynstr\"")), -Annotation(Region(0x41E,0x42F), Attr("section","\".gnu.version\"")), -Annotation(Region(0x430,0x45F), Attr("section","\".gnu.version_r\"")), -Annotation(Region(0x460,0x54F), Attr("section","\".rela.dyn\"")), -Annotation(Region(0x550,0x5AF), Attr("section","\".rela.plt\"")), -Annotation(Region(0x5B0,0x5C7), Attr("section","\".init\"")), -Annotation(Region(0x5D0,0x62F), Attr("section","\".plt\"")), -Annotation(Region(0x5B0,0x5C7), Attr("code-region","()")), -Annotation(Region(0x5D0,0x62F), Attr("code-region","()")), -Annotation(Region(0x640,0x673), Attr("symbol-info","_start 0x640 52")), -Annotation(Region(0x674,0x687), Attr("symbol","\"call_weak_fn\"")), -Annotation(Region(0x674,0x687), Attr("symbol-info","call_weak_fn 0x674 20")), -Annotation(Region(0x754,0x793), Attr("symbol","\"main\"")), -Annotation(Region(0x754,0x793), Attr("symbol-info","main 0x754 64")), -Annotation(Region(0x794,0x7A7), Attr("section","\".fini\"")), -Annotation(Region(0x7A8,0x7AB), Attr("section","\".rodata\"")), -Annotation(Region(0x7AC,0x7E7), Attr("section","\".eh_frame_hdr\"")), -Annotation(Region(0x7E8,0x89F), Attr("section","\".eh_frame\"")), -Annotation(Region(0x10DB8,0x1102F), Attr("segment","03 0x10DB8 648")), -Annotation(Region(0x10DC0,0x10DC7), Attr("section","\".fini_array\"")), -Annotation(Region(0x10DC8,0x10FA7), Attr("section","\".dynamic\"")), -Annotation(Region(0x10DB8,0x10DBF), Attr("section","\".init_array\"")), -Annotation(Region(0x10FA8,0x10FE7), Attr("section","\".got\"")), -Annotation(Region(0x10FE8,0x1101F), Attr("section","\".got.plt\"")), -Annotation(Region(0x11020,0x1102F), Attr("section","\".data\"")), -Annotation(Region(0x640,0x793), Attr("section","\".text\"")), -Annotation(Region(0x640,0x793), Attr("code-region","()")), -Annotation(Region(0x794,0x7A7), Attr("code-region","()"))]), -Program(Tid(1_440, "%000005a0"), Attrs([]), - Subs([Sub(Tid(1_390, "@__cxa_finalize"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x600"), -Attr("stub","()")]), "__cxa_finalize", Args([Arg(Tid(1_441, "%000005a1"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("__cxa_finalize_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(903, "@__cxa_finalize"), - Attrs([Attr("address","0x600")]), Phis([]), -Defs([Def(Tid(1_151, "%0000047f"), Attrs([Attr("address","0x600"), -Attr("insn","adrp x16, #69632")]), Var("R16",Imm(64)), Int(69632,64)), -Def(Tid(1_158, "%00000486"), Attrs([Attr("address","0x604"), -Attr("insn","ldr x17, [x16, #0x8]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(1_164, "%0000048c"), Attrs([Attr("address","0x608"), -Attr("insn","add x16, x16, #0x8")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(8,64)))]), Jmps([Call(Tid(1_169, "%00000491"), - Attrs([Attr("address","0x60C"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), -Sub(Tid(1_391, "@__do_global_dtors_aux"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x700")]), - "__do_global_dtors_aux", Args([Arg(Tid(1_442, "%000005a2"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("__do_global_dtors_aux_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(654, "@__do_global_dtors_aux"), - Attrs([Attr("address","0x700")]), Phis([]), Defs([Def(Tid(658, "%00000292"), - Attrs([Attr("address","0x700"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("#3",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(18446744073709551584,64))), -Def(Tid(664, "%00000298"), Attrs([Attr("address","0x700"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("#3",Imm(64)),Var("R29",Imm(64)),LittleEndian(),64)), -Def(Tid(670, "%0000029e"), Attrs([Attr("address","0x700"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("#3",Imm(64)),Int(8,64)),Var("R30",Imm(64)),LittleEndian(),64)), -Def(Tid(674, "%000002a2"), Attrs([Attr("address","0x700"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("R31",Imm(64)), -Var("#3",Imm(64))), Def(Tid(680, "%000002a8"), - Attrs([Attr("address","0x704"), Attr("insn","mov x29, sp")]), - Var("R29",Imm(64)), Var("R31",Imm(64))), Def(Tid(688, "%000002b0"), - Attrs([Attr("address","0x708"), Attr("insn","str x19, [sp, #0x10]")]), - Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(16,64)),Var("R19",Imm(64)),LittleEndian(),64)), -Def(Tid(693, "%000002b5"), Attrs([Attr("address","0x70C"), -Attr("insn","adrp x19, #69632")]), Var("R19",Imm(64)), Int(69632,64)), -Def(Tid(700, "%000002bc"), Attrs([Attr("address","0x710"), -Attr("insn","ldrb w0, [x19, #0x30]")]), Var("R0",Imm(64)), -UNSIGNED(64,Load(Var("mem",Mem(64,8)),PLUS(Var("R19",Imm(64)),Int(48,64)),LittleEndian(),8)))]), -Jmps([Goto(Tid(707, "%000002c3"), Attrs([Attr("address","0x714"), -Attr("insn","cbnz w0, #0x28")]), - NEQ(Extract(31,0,Var("R0",Imm(64))),Int(0,32)), -Direct(Tid(705, "%000002c1"))), Goto(Tid(1_430, "%00000596"), Attrs([]), - Int(1,1), Direct(Tid(848, "%00000350")))])), Blk(Tid(848, "%00000350"), - Attrs([Attr("address","0x718")]), Phis([]), Defs([Def(Tid(851, "%00000353"), - Attrs([Attr("address","0x718"), Attr("insn","adrp x0, #65536")]), - Var("R0",Imm(64)), Int(65536,64)), Def(Tid(858, "%0000035a"), - Attrs([Attr("address","0x71C"), Attr("insn","ldr x0, [x0, #0xfb8]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(4024,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(864, "%00000360"), Attrs([Attr("address","0x720"), -Attr("insn","cbz x0, #0x10")]), EQ(Var("R0",Imm(64)),Int(0,64)), -Direct(Tid(862, "%0000035e"))), Goto(Tid(1_431, "%00000597"), Attrs([]), - Int(1,1), Direct(Tid(887, "%00000377")))])), Blk(Tid(887, "%00000377"), - Attrs([Attr("address","0x724")]), Phis([]), Defs([Def(Tid(890, "%0000037a"), - Attrs([Attr("address","0x724"), Attr("insn","adrp x0, #69632")]), - Var("R0",Imm(64)), Int(69632,64)), Def(Tid(897, "%00000381"), - Attrs([Attr("address","0x728"), Attr("insn","ldr x0, [x0, #0x28]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(40,64)),LittleEndian(),64)), -Def(Tid(902, "%00000386"), Attrs([Attr("address","0x72C"), -Attr("insn","bl #-0x12c")]), Var("R30",Imm(64)), Int(1840,64))]), -Jmps([Call(Tid(905, "%00000389"), Attrs([Attr("address","0x72C"), -Attr("insn","bl #-0x12c")]), Int(1,1), -(Direct(Tid(1_390, "@__cxa_finalize")),Direct(Tid(862, "%0000035e"))))])), -Blk(Tid(862, "%0000035e"), Attrs([Attr("address","0x730")]), Phis([]), -Defs([Def(Tid(870, "%00000366"), Attrs([Attr("address","0x730"), -Attr("insn","bl #-0xa0")]), Var("R30",Imm(64)), Int(1844,64))]), -Jmps([Call(Tid(872, "%00000368"), Attrs([Attr("address","0x730"), -Attr("insn","bl #-0xa0")]), Int(1,1), -(Direct(Tid(1_404, "@deregister_tm_clones")),Direct(Tid(874, "%0000036a"))))])), -Blk(Tid(874, "%0000036a"), Attrs([Attr("address","0x734")]), Phis([]), -Defs([Def(Tid(877, "%0000036d"), Attrs([Attr("address","0x734"), -Attr("insn","mov w0, #0x1")]), Var("R0",Imm(64)), Int(1,64)), -Def(Tid(885, "%00000375"), Attrs([Attr("address","0x738"), -Attr("insn","strb w0, [x19, #0x30]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R19",Imm(64)),Int(48,64)),Extract(7,0,Var("R0",Imm(64))),LittleEndian(),8))]), -Jmps([Goto(Tid(1_432, "%00000598"), Attrs([]), Int(1,1), -Direct(Tid(705, "%000002c1")))])), Blk(Tid(705, "%000002c1"), - Attrs([Attr("address","0x73C")]), Phis([]), Defs([Def(Tid(715, "%000002cb"), - Attrs([Attr("address","0x73C"), Attr("insn","ldr x19, [sp, #0x10]")]), - Var("R19",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(16,64)),LittleEndian(),64)), -Def(Tid(722, "%000002d2"), Attrs([Attr("address","0x740"), -Attr("insn","ldp x29, x30, [sp], #0x20")]), Var("R29",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(727, "%000002d7"), Attrs([Attr("address","0x740"), -Attr("insn","ldp x29, x30, [sp], #0x20")]), Var("R30",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(731, "%000002db"), Attrs([Attr("address","0x740"), -Attr("insn","ldp x29, x30, [sp], #0x20")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(32,64)))]), Jmps([Call(Tid(736, "%000002e0"), - Attrs([Attr("address","0x744"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), Sub(Tid(1_395, "@__libc_start_main"), - Attrs([Attr("c.proto","signed (*)(signed (*)(signed , char** , char** );* main, signed , char** , \nvoid* auxv)"), -Attr("address","0x5F0"), Attr("stub","()")]), "__libc_start_main", - Args([Arg(Tid(1_443, "%000005a3"), - Attrs([Attr("c.layout","**[ : 64]"), -Attr("c.data","Top:u64 ptr ptr"), -Attr("c.type","signed (*)(signed , char** , char** );*")]), - Var("__libc_start_main_main",Imm(64)), Var("R0",Imm(64)), In()), -Arg(Tid(1_444, "%000005a4"), Attrs([Attr("c.layout","[signed : 32]"), -Attr("c.data","Top:u32"), Attr("c.type","signed")]), - Var("__libc_start_main_arg2",Imm(32)), LOW(32,Var("R1",Imm(64))), In()), -Arg(Tid(1_445, "%000005a5"), Attrs([Attr("c.layout","**[char : 8]"), -Attr("c.data","Top:u8 ptr ptr"), Attr("c.type","char**")]), - Var("__libc_start_main_arg3",Imm(64)), Var("R2",Imm(64)), Both()), -Arg(Tid(1_446, "%000005a6"), Attrs([Attr("c.layout","*[ : 8]"), -Attr("c.data","{} ptr"), Attr("c.type","void*")]), - Var("__libc_start_main_auxv",Imm(64)), Var("R3",Imm(64)), Both()), -Arg(Tid(1_447, "%000005a7"), Attrs([Attr("c.layout","[signed : 32]"), -Attr("c.data","Top:u32"), Attr("c.type","signed")]), - Var("__libc_start_main_result",Imm(32)), LOW(32,Var("R0",Imm(64))), -Out())]), Blks([Blk(Tid(487, "@__libc_start_main"), - Attrs([Attr("address","0x5F0")]), Phis([]), -Defs([Def(Tid(1_129, "%00000469"), Attrs([Attr("address","0x5F0"), -Attr("insn","adrp x16, #69632")]), Var("R16",Imm(64)), Int(69632,64)), -Def(Tid(1_136, "%00000470"), Attrs([Attr("address","0x5F4"), -Attr("insn","ldr x17, [x16]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R16",Imm(64)),LittleEndian(),64)), -Def(Tid(1_142, "%00000476"), Attrs([Attr("address","0x5F8"), -Attr("insn","add x16, x16, #0x0")]), Var("R16",Imm(64)), -Var("R16",Imm(64)))]), Jmps([Call(Tid(1_147, "%0000047b"), - Attrs([Attr("address","0x5FC"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), Sub(Tid(1_396, "@_fini"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x794")]), - "_fini", Args([Arg(Tid(1_448, "%000005a8"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("_fini_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(31, "@_fini"), - Attrs([Attr("address","0x794")]), Phis([]), Defs([Def(Tid(37, "%00000025"), - Attrs([Attr("address","0x798"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("#0",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(18446744073709551600,64))), -Def(Tid(43, "%0000002b"), Attrs([Attr("address","0x798"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("#0",Imm(64)),Var("R29",Imm(64)),LittleEndian(),64)), -Def(Tid(49, "%00000031"), Attrs([Attr("address","0x798"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("#0",Imm(64)),Int(8,64)),Var("R30",Imm(64)),LittleEndian(),64)), -Def(Tid(53, "%00000035"), Attrs([Attr("address","0x798"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("R31",Imm(64)), -Var("#0",Imm(64))), Def(Tid(59, "%0000003b"), Attrs([Attr("address","0x79C"), -Attr("insn","mov x29, sp")]), Var("R29",Imm(64)), Var("R31",Imm(64))), -Def(Tid(66, "%00000042"), Attrs([Attr("address","0x7A0"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R29",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(71, "%00000047"), Attrs([Attr("address","0x7A0"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R30",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(75, "%0000004b"), Attrs([Attr("address","0x7A0"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(16,64)))]), Jmps([Call(Tid(80, "%00000050"), - Attrs([Attr("address","0x7A4"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), Sub(Tid(1_397, "@_init"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x5B0")]), - "_init", Args([Arg(Tid(1_449, "%000005a9"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("_init_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(1_241, "@_init"), - Attrs([Attr("address","0x5B0")]), Phis([]), -Defs([Def(Tid(1_247, "%000004df"), Attrs([Attr("address","0x5B4"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("#5",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(18446744073709551600,64))), -Def(Tid(1_253, "%000004e5"), Attrs([Attr("address","0x5B4"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("#5",Imm(64)),Var("R29",Imm(64)),LittleEndian(),64)), -Def(Tid(1_259, "%000004eb"), Attrs([Attr("address","0x5B4"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("#5",Imm(64)),Int(8,64)),Var("R30",Imm(64)),LittleEndian(),64)), -Def(Tid(1_263, "%000004ef"), Attrs([Attr("address","0x5B4"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("R31",Imm(64)), -Var("#5",Imm(64))), Def(Tid(1_269, "%000004f5"), - Attrs([Attr("address","0x5B8"), Attr("insn","mov x29, sp")]), - Var("R29",Imm(64)), Var("R31",Imm(64))), Def(Tid(1_274, "%000004fa"), - Attrs([Attr("address","0x5BC"), Attr("insn","bl #0xb8")]), - Var("R30",Imm(64)), Int(1472,64))]), Jmps([Call(Tid(1_276, "%000004fc"), - Attrs([Attr("address","0x5BC"), Attr("insn","bl #0xb8")]), Int(1,1), -(Direct(Tid(1_402, "@call_weak_fn")),Direct(Tid(1_278, "%000004fe"))))])), -Blk(Tid(1_278, "%000004fe"), Attrs([Attr("address","0x5C0")]), Phis([]), -Defs([Def(Tid(1_283, "%00000503"), Attrs([Attr("address","0x5C0"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R29",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(1_288, "%00000508"), Attrs([Attr("address","0x5C0"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R30",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(1_292, "%0000050c"), Attrs([Attr("address","0x5C0"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(16,64)))]), Jmps([Call(Tid(1_297, "%00000511"), - Attrs([Attr("address","0x5C4"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), Sub(Tid(1_398, "@_start"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x640"), -Attr("entry-point","()")]), "_start", Args([Arg(Tid(1_450, "%000005aa"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("_start_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(424, "@_start"), - Attrs([Attr("address","0x640")]), Phis([]), Defs([Def(Tid(429, "%000001ad"), - Attrs([Attr("address","0x644"), Attr("insn","mov x29, #0x0")]), - Var("R29",Imm(64)), Int(0,64)), Def(Tid(434, "%000001b2"), - Attrs([Attr("address","0x648"), Attr("insn","mov x30, #0x0")]), - Var("R30",Imm(64)), Int(0,64)), Def(Tid(440, "%000001b8"), - Attrs([Attr("address","0x64C"), Attr("insn","mov x5, x0")]), - Var("R5",Imm(64)), Var("R0",Imm(64))), Def(Tid(447, "%000001bf"), - Attrs([Attr("address","0x650"), Attr("insn","ldr x1, [sp]")]), - Var("R1",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(453, "%000001c5"), Attrs([Attr("address","0x654"), -Attr("insn","add x2, sp, #0x8")]), Var("R2",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(8,64))), Def(Tid(459, "%000001cb"), - Attrs([Attr("address","0x658"), Attr("insn","mov x6, sp")]), - Var("R6",Imm(64)), Var("R31",Imm(64))), Def(Tid(464, "%000001d0"), - Attrs([Attr("address","0x65C"), Attr("insn","adrp x0, #65536")]), - Var("R0",Imm(64)), Int(65536,64)), Def(Tid(471, "%000001d7"), - Attrs([Attr("address","0x660"), Attr("insn","ldr x0, [x0, #0xfd8]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(4056,64)),LittleEndian(),64)), -Def(Tid(476, "%000001dc"), Attrs([Attr("address","0x664"), -Attr("insn","mov x3, #0x0")]), Var("R3",Imm(64)), Int(0,64)), -Def(Tid(481, "%000001e1"), Attrs([Attr("address","0x668"), -Attr("insn","mov x4, #0x0")]), Var("R4",Imm(64)), Int(0,64)), -Def(Tid(486, "%000001e6"), Attrs([Attr("address","0x66C"), -Attr("insn","bl #-0x7c")]), Var("R30",Imm(64)), Int(1648,64))]), -Jmps([Call(Tid(489, "%000001e9"), Attrs([Attr("address","0x66C"), -Attr("insn","bl #-0x7c")]), Int(1,1), -(Direct(Tid(1_395, "@__libc_start_main")),Direct(Tid(491, "%000001eb"))))])), -Blk(Tid(491, "%000001eb"), Attrs([Attr("address","0x670")]), Phis([]), -Defs([Def(Tid(494, "%000001ee"), Attrs([Attr("address","0x670"), -Attr("insn","bl #-0x50")]), Var("R30",Imm(64)), Int(1652,64))]), -Jmps([Call(Tid(497, "%000001f1"), Attrs([Attr("address","0x670"), -Attr("insn","bl #-0x50")]), Int(1,1), -(Direct(Tid(1_401, "@abort")),Direct(Tid(1_433, "%00000599"))))])), -Blk(Tid(1_433, "%00000599"), Attrs([]), Phis([]), Defs([]), -Jmps([Call(Tid(1_434, "%0000059a"), Attrs([]), Int(1,1), -(Direct(Tid(1_402, "@call_weak_fn")),))]))])), Sub(Tid(1_401, "@abort"), - Attrs([Attr("noreturn","()"), Attr("c.proto","void (*)(void)"), -Attr("address","0x620"), Attr("stub","()")]), "abort", Args([]), -Blks([Blk(Tid(495, "@abort"), Attrs([Attr("address","0x620")]), Phis([]), -Defs([Def(Tid(1_195, "%000004ab"), Attrs([Attr("address","0x620"), -Attr("insn","adrp x16, #69632")]), Var("R16",Imm(64)), Int(69632,64)), -Def(Tid(1_202, "%000004b2"), Attrs([Attr("address","0x624"), -Attr("insn","ldr x17, [x16, #0x18]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(24,64)),LittleEndian(),64)), -Def(Tid(1_208, "%000004b8"), Attrs([Attr("address","0x628"), -Attr("insn","add x16, x16, #0x18")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(24,64)))]), Jmps([Call(Tid(1_213, "%000004bd"), - Attrs([Attr("address","0x62C"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), Sub(Tid(1_402, "@call_weak_fn"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x674")]), - "call_weak_fn", Args([Arg(Tid(1_451, "%000005ab"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("call_weak_fn_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(499, "@call_weak_fn"), - Attrs([Attr("address","0x674")]), Phis([]), Defs([Def(Tid(502, "%000001f6"), - Attrs([Attr("address","0x674"), Attr("insn","adrp x0, #65536")]), - Var("R0",Imm(64)), Int(65536,64)), Def(Tid(509, "%000001fd"), - Attrs([Attr("address","0x678"), Attr("insn","ldr x0, [x0, #0xfd0]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(4048,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(515, "%00000203"), Attrs([Attr("address","0x67C"), -Attr("insn","cbz x0, #0x8")]), EQ(Var("R0",Imm(64)),Int(0,64)), -Direct(Tid(513, "%00000201"))), Goto(Tid(1_435, "%0000059b"), Attrs([]), - Int(1,1), Direct(Tid(967, "%000003c7")))])), Blk(Tid(513, "%00000201"), - Attrs([Attr("address","0x684")]), Phis([]), Defs([]), -Jmps([Call(Tid(521, "%00000209"), Attrs([Attr("address","0x684"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))])), -Blk(Tid(967, "%000003c7"), Attrs([Attr("address","0x680")]), Phis([]), -Defs([]), Jmps([Goto(Tid(970, "%000003ca"), Attrs([Attr("address","0x680"), -Attr("insn","b #-0x70")]), Int(1,1), Direct(Tid(968, "@__gmon_start__")))])), -Blk(Tid(968, "@__gmon_start__"), Attrs([Attr("address","0x610")]), Phis([]), -Defs([Def(Tid(1_173, "%00000495"), Attrs([Attr("address","0x610"), -Attr("insn","adrp x16, #69632")]), Var("R16",Imm(64)), Int(69632,64)), -Def(Tid(1_180, "%0000049c"), Attrs([Attr("address","0x614"), -Attr("insn","ldr x17, [x16, #0x10]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(16,64)),LittleEndian(),64)), -Def(Tid(1_186, "%000004a2"), Attrs([Attr("address","0x618"), -Attr("insn","add x16, x16, #0x10")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(16,64)))]), Jmps([Call(Tid(1_191, "%000004a7"), - Attrs([Attr("address","0x61C"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), -Sub(Tid(1_404, "@deregister_tm_clones"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x690")]), - "deregister_tm_clones", Args([Arg(Tid(1_452, "%000005ac"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("deregister_tm_clones_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(527, "@deregister_tm_clones"), - Attrs([Attr("address","0x690")]), Phis([]), Defs([Def(Tid(530, "%00000212"), - Attrs([Attr("address","0x690"), Attr("insn","adrp x0, #69632")]), - Var("R0",Imm(64)), Int(69632,64)), Def(Tid(536, "%00000218"), - Attrs([Attr("address","0x694"), Attr("insn","add x0, x0, #0x30")]), - Var("R0",Imm(64)), PLUS(Var("R0",Imm(64)),Int(48,64))), -Def(Tid(541, "%0000021d"), Attrs([Attr("address","0x698"), -Attr("insn","adrp x1, #69632")]), Var("R1",Imm(64)), Int(69632,64)), -Def(Tid(547, "%00000223"), Attrs([Attr("address","0x69C"), -Attr("insn","add x1, x1, #0x30")]), Var("R1",Imm(64)), -PLUS(Var("R1",Imm(64)),Int(48,64))), Def(Tid(553, "%00000229"), - Attrs([Attr("address","0x6A0"), Attr("insn","cmp x1, x0")]), - Var("#1",Imm(64)), NOT(Var("R0",Imm(64)))), Def(Tid(558, "%0000022e"), - Attrs([Attr("address","0x6A0"), Attr("insn","cmp x1, x0")]), - Var("#2",Imm(64)), PLUS(Var("R1",Imm(64)),NOT(Var("R0",Imm(64))))), -Def(Tid(564, "%00000234"), Attrs([Attr("address","0x6A0"), -Attr("insn","cmp x1, x0")]), Var("VF",Imm(1)), -NEQ(SIGNED(65,PLUS(Var("#2",Imm(64)),Int(1,64))),PLUS(PLUS(SIGNED(65,Var("R1",Imm(64))),SIGNED(65,Var("#1",Imm(64)))),Int(1,65)))), -Def(Tid(570, "%0000023a"), Attrs([Attr("address","0x6A0"), -Attr("insn","cmp x1, x0")]), Var("CF",Imm(1)), -NEQ(UNSIGNED(65,PLUS(Var("#2",Imm(64)),Int(1,64))),PLUS(PLUS(UNSIGNED(65,Var("R1",Imm(64))),UNSIGNED(65,Var("#1",Imm(64)))),Int(1,65)))), -Def(Tid(574, "%0000023e"), Attrs([Attr("address","0x6A0"), -Attr("insn","cmp x1, x0")]), Var("ZF",Imm(1)), -EQ(PLUS(Var("#2",Imm(64)),Int(1,64)),Int(0,64))), Def(Tid(578, "%00000242"), - Attrs([Attr("address","0x6A0"), Attr("insn","cmp x1, x0")]), - Var("NF",Imm(1)), Extract(63,63,PLUS(Var("#2",Imm(64)),Int(1,64))))]), -Jmps([Goto(Tid(584, "%00000248"), Attrs([Attr("address","0x6A4"), -Attr("insn","b.eq #0x18")]), EQ(Var("ZF",Imm(1)),Int(1,1)), -Direct(Tid(582, "%00000246"))), Goto(Tid(1_436, "%0000059c"), Attrs([]), - Int(1,1), Direct(Tid(937, "%000003a9")))])), Blk(Tid(937, "%000003a9"), - Attrs([Attr("address","0x6A8")]), Phis([]), Defs([Def(Tid(940, "%000003ac"), - Attrs([Attr("address","0x6A8"), Attr("insn","adrp x1, #65536")]), - Var("R1",Imm(64)), Int(65536,64)), Def(Tid(947, "%000003b3"), - Attrs([Attr("address","0x6AC"), Attr("insn","ldr x1, [x1, #0xfb0]")]), - Var("R1",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R1",Imm(64)),Int(4016,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(952, "%000003b8"), Attrs([Attr("address","0x6B0"), -Attr("insn","cbz x1, #0xc")]), EQ(Var("R1",Imm(64)),Int(0,64)), -Direct(Tid(582, "%00000246"))), Goto(Tid(1_437, "%0000059d"), Attrs([]), - Int(1,1), Direct(Tid(956, "%000003bc")))])), Blk(Tid(582, "%00000246"), - Attrs([Attr("address","0x6BC")]), Phis([]), Defs([]), -Jmps([Call(Tid(590, "%0000024e"), Attrs([Attr("address","0x6BC"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))])), -Blk(Tid(956, "%000003bc"), Attrs([Attr("address","0x6B4")]), Phis([]), -Defs([Def(Tid(960, "%000003c0"), Attrs([Attr("address","0x6B4"), -Attr("insn","mov x16, x1")]), Var("R16",Imm(64)), Var("R1",Imm(64)))]), -Jmps([Call(Tid(965, "%000003c5"), Attrs([Attr("address","0x6B8"), -Attr("insn","br x16")]), Int(1,1), (Indirect(Var("R16",Imm(64))),))]))])), -Sub(Tid(1_407, "@frame_dummy"), Attrs([Attr("c.proto","signed (*)(void)"), -Attr("address","0x750")]), "frame_dummy", Args([Arg(Tid(1_453, "%000005ad"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("frame_dummy_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(742, "@frame_dummy"), - Attrs([Attr("address","0x750")]), Phis([]), Defs([]), -Jmps([Call(Tid(744, "%000002e8"), Attrs([Attr("address","0x750"), -Attr("insn","b #-0x90")]), Int(1,1), -(Direct(Tid(1_409, "@register_tm_clones")),))]))])), Sub(Tid(1_408, "@main"), - Attrs([Attr("c.proto","signed (*)(signed argc, const char** argv)"), -Attr("address","0x754")]), "main", Args([Arg(Tid(1_454, "%000005ae"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("main_argc",Imm(32)), -LOW(32,Var("R0",Imm(64))), In()), Arg(Tid(1_455, "%000005af"), - Attrs([Attr("c.layout","**[char : 8]"), Attr("c.data","Top:u8 ptr ptr"), -Attr("c.type"," const char**")]), Var("main_argv",Imm(64)), -Var("R1",Imm(64)), Both()), Arg(Tid(1_456, "%000005b0"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("main_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(746, "@main"), - Attrs([Attr("address","0x754")]), Phis([]), Defs([Def(Tid(750, "%000002ee"), - Attrs([Attr("address","0x754"), Attr("insn","sub sp, sp, #0x10")]), - Var("R31",Imm(64)), PLUS(Var("R31",Imm(64)),Int(18446744073709551600,64))), -Def(Tid(758, "%000002f6"), Attrs([Attr("address","0x758"), -Attr("insn","str w0, [sp, #0xc]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(12,64)),Extract(31,0,Var("R0",Imm(64))),LittleEndian(),32)), -Def(Tid(763, "%000002fb"), Attrs([Attr("address","0x75C"), -Attr("insn","adrp x9, #65536")]), Var("R9",Imm(64)), Int(65536,64)), -Def(Tid(770, "%00000302"), Attrs([Attr("address","0x760"), -Attr("insn","ldr x9, [x9, #0xfc0]")]), Var("R9",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R9",Imm(64)),Int(4032,64)),LittleEndian(),64)), -Def(Tid(775, "%00000307"), Attrs([Attr("address","0x764"), -Attr("insn","mov w8, #0x1")]), Var("R8",Imm(64)), Int(1,64)), -Def(Tid(783, "%0000030f"), Attrs([Attr("address","0x768"), -Attr("insn","str w8, [x9]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("R9",Imm(64)),Extract(31,0,Var("R8",Imm(64))),LittleEndian(),32)), -Def(Tid(790, "%00000316"), Attrs([Attr("address","0x76C"), -Attr("insn","ldr w10, [sp, #0xc]")]), Var("R10",Imm(64)), -UNSIGNED(64,Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(12,64)),LittleEndian(),32))), -Def(Tid(795, "%0000031b"), Attrs([Attr("address","0x770"), -Attr("insn","adrp x8, #65536")]), Var("R8",Imm(64)), Int(65536,64)), -Def(Tid(802, "%00000322"), Attrs([Attr("address","0x774"), -Attr("insn","ldr x8, [x8, #0xfc8]")]), Var("R8",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R8",Imm(64)),Int(4040,64)),LittleEndian(),64)), -Def(Tid(810, "%0000032a"), Attrs([Attr("address","0x778"), -Attr("insn","str w10, [x8]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("R8",Imm(64)),Extract(31,0,Var("R10",Imm(64))),LittleEndian(),32)), -Def(Tid(815, "%0000032f"), Attrs([Attr("address","0x77C"), -Attr("insn","mov w0, wzr")]), Var("R0",Imm(64)), Int(0,64)), -Def(Tid(822, "%00000336"), Attrs([Attr("address","0x780"), -Attr("insn","str wzr, [x8]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("R8",Imm(64)),Int(0,32),LittleEndian(),32)), -Def(Tid(827, "%0000033b"), Attrs([Attr("address","0x784"), -Attr("insn","mov w8, #0x2")]), Var("R8",Imm(64)), Int(2,64)), -Def(Tid(835, "%00000343"), Attrs([Attr("address","0x788"), -Attr("insn","str w8, [x9]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("R9",Imm(64)),Extract(31,0,Var("R8",Imm(64))),LittleEndian(),32)), -Def(Tid(841, "%00000349"), Attrs([Attr("address","0x78C"), -Attr("insn","add sp, sp, #0x10")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(16,64)))]), Jmps([Call(Tid(846, "%0000034e"), - Attrs([Attr("address","0x790"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), -Sub(Tid(1_409, "@register_tm_clones"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x6C0")]), - "register_tm_clones", Args([Arg(Tid(1_457, "%000005b1"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("register_tm_clones_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(592, "@register_tm_clones"), Attrs([Attr("address","0x6C0")]), - Phis([]), Defs([Def(Tid(595, "%00000253"), Attrs([Attr("address","0x6C0"), -Attr("insn","adrp x0, #69632")]), Var("R0",Imm(64)), Int(69632,64)), -Def(Tid(601, "%00000259"), Attrs([Attr("address","0x6C4"), -Attr("insn","add x0, x0, #0x30")]), Var("R0",Imm(64)), -PLUS(Var("R0",Imm(64)),Int(48,64))), Def(Tid(606, "%0000025e"), - Attrs([Attr("address","0x6C8"), Attr("insn","adrp x1, #69632")]), - Var("R1",Imm(64)), Int(69632,64)), Def(Tid(612, "%00000264"), - Attrs([Attr("address","0x6CC"), Attr("insn","add x1, x1, #0x30")]), - Var("R1",Imm(64)), PLUS(Var("R1",Imm(64)),Int(48,64))), -Def(Tid(619, "%0000026b"), Attrs([Attr("address","0x6D0"), -Attr("insn","sub x1, x1, x0")]), Var("R1",Imm(64)), -PLUS(PLUS(Var("R1",Imm(64)),NOT(Var("R0",Imm(64)))),Int(1,64))), -Def(Tid(625, "%00000271"), Attrs([Attr("address","0x6D4"), -Attr("insn","lsr x2, x1, #63")]), Var("R2",Imm(64)), -Concat(Int(0,63),Extract(63,63,Var("R1",Imm(64))))), -Def(Tid(632, "%00000278"), Attrs([Attr("address","0x6D8"), -Attr("insn","add x1, x2, x1, asr #3")]), Var("R1",Imm(64)), -PLUS(Var("R2",Imm(64)),ARSHIFT(Var("R1",Imm(64)),Int(3,3)))), -Def(Tid(638, "%0000027e"), Attrs([Attr("address","0x6DC"), -Attr("insn","asr x1, x1, #1")]), Var("R1",Imm(64)), -SIGNED(64,Extract(63,1,Var("R1",Imm(64)))))]), -Jmps([Goto(Tid(644, "%00000284"), Attrs([Attr("address","0x6E0"), -Attr("insn","cbz x1, #0x18")]), EQ(Var("R1",Imm(64)),Int(0,64)), -Direct(Tid(642, "%00000282"))), Goto(Tid(1_438, "%0000059e"), Attrs([]), - Int(1,1), Direct(Tid(907, "%0000038b")))])), Blk(Tid(907, "%0000038b"), - Attrs([Attr("address","0x6E4")]), Phis([]), Defs([Def(Tid(910, "%0000038e"), - Attrs([Attr("address","0x6E4"), Attr("insn","adrp x2, #65536")]), - Var("R2",Imm(64)), Int(65536,64)), Def(Tid(917, "%00000395"), - Attrs([Attr("address","0x6E8"), Attr("insn","ldr x2, [x2, #0xfe0]")]), - Var("R2",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R2",Imm(64)),Int(4064,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(922, "%0000039a"), Attrs([Attr("address","0x6EC"), -Attr("insn","cbz x2, #0xc")]), EQ(Var("R2",Imm(64)),Int(0,64)), -Direct(Tid(642, "%00000282"))), Goto(Tid(1_439, "%0000059f"), Attrs([]), - Int(1,1), Direct(Tid(926, "%0000039e")))])), Blk(Tid(642, "%00000282"), - Attrs([Attr("address","0x6F8")]), Phis([]), Defs([]), -Jmps([Call(Tid(650, "%0000028a"), Attrs([Attr("address","0x6F8"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))])), -Blk(Tid(926, "%0000039e"), Attrs([Attr("address","0x6F0")]), Phis([]), -Defs([Def(Tid(930, "%000003a2"), Attrs([Attr("address","0x6F0"), -Attr("insn","mov x16, x2")]), Var("R16",Imm(64)), Var("R2",Imm(64)))]), -Jmps([Call(Tid(935, "%000003a7"), Attrs([Attr("address","0x6F4"), -Attr("insn","br x16")]), Int(1,1), -(Indirect(Var("R16",Imm(64))),))]))]))]))) \ No newline at end of file diff --git a/src/test/correct/basic_sec_policy_write/clang_pic/basic_sec_policy_write.bir b/src/test/correct/basic_sec_policy_write/clang_pic/basic_sec_policy_write.bir deleted file mode 100644 index 530dbe544..000000000 --- a/src/test/correct/basic_sec_policy_write/clang_pic/basic_sec_policy_write.bir +++ /dev/null @@ -1,238 +0,0 @@ -000005a0: program -0000056e: sub __cxa_finalize(__cxa_finalize_result) -000005a1: __cxa_finalize_result :: out u32 = low:32[R0] - -00000387: -0000047f: R16 := 0x11000 -00000486: R17 := mem[R16 + 8, el]:u64 -0000048c: R16 := R16 + 8 -00000491: call R17 with noreturn - -0000056f: sub __do_global_dtors_aux(__do_global_dtors_aux_result) -000005a2: __do_global_dtors_aux_result :: out u32 = low:32[R0] - -0000028e: -00000292: #3 := R31 - 0x20 -00000298: mem := mem with [#3, el]:u64 <- R29 -0000029e: mem := mem with [#3 + 8, el]:u64 <- R30 -000002a2: R31 := #3 -000002a8: R29 := R31 -000002b0: mem := mem with [R31 + 0x10, el]:u64 <- R19 -000002b5: R19 := 0x11000 -000002bc: R0 := pad:64[mem[R19 + 0x30]] -000002c3: when 31:0[R0] <> 0 goto %000002c1 -00000596: goto %00000350 - -00000350: -00000353: R0 := 0x10000 -0000035a: R0 := mem[R0 + 0xFB8, el]:u64 -00000360: when R0 = 0 goto %0000035e -00000597: goto %00000377 - -00000377: -0000037a: R0 := 0x11000 -00000381: R0 := mem[R0 + 0x28, el]:u64 -00000386: R30 := 0x730 -00000389: call @__cxa_finalize with return %0000035e - -0000035e: -00000366: R30 := 0x734 -00000368: call @deregister_tm_clones with return %0000036a - -0000036a: -0000036d: R0 := 1 -00000375: mem := mem with [R19 + 0x30] <- 7:0[R0] -00000598: goto %000002c1 - -000002c1: -000002cb: R19 := mem[R31 + 0x10, el]:u64 -000002d2: R29 := mem[R31, el]:u64 -000002d7: R30 := mem[R31 + 8, el]:u64 -000002db: R31 := R31 + 0x20 -000002e0: call R30 with noreturn - -00000573: sub __libc_start_main(__libc_start_main_main, __libc_start_main_arg2, __libc_start_main_arg3, __libc_start_main_auxv, __libc_start_main_result) -000005a3: __libc_start_main_main :: in u64 = R0 -000005a4: __libc_start_main_arg2 :: in u32 = low:32[R1] -000005a5: __libc_start_main_arg3 :: in out u64 = R2 -000005a6: __libc_start_main_auxv :: in out u64 = R3 -000005a7: __libc_start_main_result :: out u32 = low:32[R0] - -000001e7: -00000469: R16 := 0x11000 -00000470: R17 := mem[R16, el]:u64 -00000476: R16 := R16 -0000047b: call R17 with noreturn - -00000574: sub _fini(_fini_result) -000005a8: _fini_result :: out u32 = low:32[R0] - -0000001f: -00000025: #0 := R31 - 0x10 -0000002b: mem := mem with [#0, el]:u64 <- R29 -00000031: mem := mem with [#0 + 8, el]:u64 <- R30 -00000035: R31 := #0 -0000003b: R29 := R31 -00000042: R29 := mem[R31, el]:u64 -00000047: R30 := mem[R31 + 8, el]:u64 -0000004b: R31 := R31 + 0x10 -00000050: call R30 with noreturn - -00000575: sub _init(_init_result) -000005a9: _init_result :: out u32 = low:32[R0] - -000004d9: -000004df: #5 := R31 - 0x10 -000004e5: mem := mem with [#5, el]:u64 <- R29 -000004eb: mem := mem with [#5 + 8, el]:u64 <- R30 -000004ef: R31 := #5 -000004f5: R29 := R31 -000004fa: R30 := 0x5C0 -000004fc: call @call_weak_fn with return %000004fe - -000004fe: -00000503: R29 := mem[R31, el]:u64 -00000508: R30 := mem[R31 + 8, el]:u64 -0000050c: R31 := R31 + 0x10 -00000511: call R30 with noreturn - -00000576: sub _start(_start_result) -000005aa: _start_result :: out u32 = low:32[R0] - -000001a8: -000001ad: R29 := 0 -000001b2: R30 := 0 -000001b8: R5 := R0 -000001bf: R1 := mem[R31, el]:u64 -000001c5: R2 := R31 + 8 -000001cb: R6 := R31 -000001d0: R0 := 0x10000 -000001d7: R0 := mem[R0 + 0xFD8, el]:u64 -000001dc: R3 := 0 -000001e1: R4 := 0 -000001e6: R30 := 0x670 -000001e9: call @__libc_start_main with return %000001eb - -000001eb: -000001ee: R30 := 0x674 -000001f1: call @abort with return %00000599 - -00000599: -0000059a: call @call_weak_fn with noreturn - -00000579: sub abort() - - -000001ef: -000004ab: R16 := 0x11000 -000004b2: R17 := mem[R16 + 0x18, el]:u64 -000004b8: R16 := R16 + 0x18 -000004bd: call R17 with noreturn - -0000057a: sub call_weak_fn(call_weak_fn_result) -000005ab: call_weak_fn_result :: out u32 = low:32[R0] - -000001f3: -000001f6: R0 := 0x10000 -000001fd: R0 := mem[R0 + 0xFD0, el]:u64 -00000203: when R0 = 0 goto %00000201 -0000059b: goto %000003c7 - -00000201: -00000209: call R30 with noreturn - -000003c7: -000003ca: goto @__gmon_start__ - -000003c8: -00000495: R16 := 0x11000 -0000049c: R17 := mem[R16 + 0x10, el]:u64 -000004a2: R16 := R16 + 0x10 -000004a7: call R17 with noreturn - -0000057c: sub deregister_tm_clones(deregister_tm_clones_result) -000005ac: deregister_tm_clones_result :: out u32 = low:32[R0] - -0000020f: -00000212: R0 := 0x11000 -00000218: R0 := R0 + 0x30 -0000021d: R1 := 0x11000 -00000223: R1 := R1 + 0x30 -00000229: #1 := ~R0 -0000022e: #2 := R1 + ~R0 -00000234: VF := extend:65[#2 + 1] <> extend:65[R1] + extend:65[#1] + 1 -0000023a: CF := pad:65[#2 + 1] <> pad:65[R1] + pad:65[#1] + 1 -0000023e: ZF := #2 + 1 = 0 -00000242: NF := 63:63[#2 + 1] -00000248: when ZF goto %00000246 -0000059c: goto %000003a9 - -000003a9: -000003ac: R1 := 0x10000 -000003b3: R1 := mem[R1 + 0xFB0, el]:u64 -000003b8: when R1 = 0 goto %00000246 -0000059d: goto %000003bc - -00000246: -0000024e: call R30 with noreturn - -000003bc: -000003c0: R16 := R1 -000003c5: call R16 with noreturn - -0000057f: sub frame_dummy(frame_dummy_result) -000005ad: frame_dummy_result :: out u32 = low:32[R0] - -000002e6: -000002e8: call @register_tm_clones with noreturn - -00000580: sub main(main_argc, main_argv, main_result) -000005ae: main_argc :: in u32 = low:32[R0] -000005af: main_argv :: in out u64 = R1 -000005b0: main_result :: out u32 = low:32[R0] - -000002ea: -000002ee: R31 := R31 - 0x10 -000002f6: mem := mem with [R31 + 0xC, el]:u32 <- 31:0[R0] -000002fb: R9 := 0x10000 -00000302: R9 := mem[R9 + 0xFC0, el]:u64 -00000307: R8 := 1 -0000030f: mem := mem with [R9, el]:u32 <- 31:0[R8] -00000316: R10 := pad:64[mem[R31 + 0xC, el]:u32] -0000031b: R8 := 0x10000 -00000322: R8 := mem[R8 + 0xFC8, el]:u64 -0000032a: mem := mem with [R8, el]:u32 <- 31:0[R10] -0000032f: R0 := 0 -00000336: mem := mem with [R8, el]:u32 <- 0 -0000033b: R8 := 2 -00000343: mem := mem with [R9, el]:u32 <- 31:0[R8] -00000349: R31 := R31 + 0x10 -0000034e: call R30 with noreturn - -00000581: sub register_tm_clones(register_tm_clones_result) -000005b1: register_tm_clones_result :: out u32 = low:32[R0] - -00000250: -00000253: R0 := 0x11000 -00000259: R0 := R0 + 0x30 -0000025e: R1 := 0x11000 -00000264: R1 := R1 + 0x30 -0000026b: R1 := R1 + ~R0 + 1 -00000271: R2 := 0.63:63[R1] -00000278: R1 := R2 + (R1 ~>> 3) -0000027e: R1 := extend:64[63:1[R1]] -00000284: when R1 = 0 goto %00000282 -0000059e: goto %0000038b - -0000038b: -0000038e: R2 := 0x10000 -00000395: R2 := mem[R2 + 0xFE0, el]:u64 -0000039a: when R2 = 0 goto %00000282 -0000059f: goto %0000039e - -00000282: -0000028a: call R30 with noreturn - -0000039e: -000003a2: R16 := R2 -000003a7: call R16 with noreturn diff --git a/src/test/correct/basic_sec_policy_write/clang_pic/basic_sec_policy_write.expected b/src/test/correct/basic_sec_policy_write/clang_pic/basic_sec_policy_write.expected index e6c57deba..16fce81da 100644 --- a/src/test/correct/basic_sec_policy_write/clang_pic/basic_sec_policy_write.expected +++ b/src/test/correct/basic_sec_policy_write/clang_pic/basic_sec_policy_write.expected @@ -1,21 +1,17 @@ var {:extern} Gamma_R0: bool; var {:extern} Gamma_R10: bool; -var {:extern} Gamma_R31: bool; var {:extern} Gamma_R8: bool; var {:extern} Gamma_R9: bool; var {:extern} Gamma_mem: [bv64]bool; -var {:extern} Gamma_stack: [bv64]bool; var {:extern} R0: bv64; var {:extern} R10: bv64; -var {:extern} R31: bv64; var {:extern} R8: bv64; var {:extern} R9: bv64; var {:extern} mem: [bv64]bv8; -var {:extern} stack: [bv64]bv8; const {:extern} $x_addr: bv64; -axiom ($x_addr == 69688bv64); +axiom ($x_addr == 131096bv64); const {:extern} $z_addr: bv64; -axiom ($z_addr == 69684bv64); +axiom ($z_addr == 131092bv64); function {:extern} L(mem$in: [bv64]bv8, index: bv64) returns (bool) { (if (index == $z_addr) then true else (if (index == $x_addr) then (memory_load32_le(mem$in, $z_addr) == 0bv32) else false)) } @@ -45,18 +41,17 @@ function {:extern} memory_store32_le(memory: [bv64]bv8, index: bv64, value: bv32 memory[index := value[8:0]][bvadd64(index, 1bv64) := value[16:8]][bvadd64(index, 2bv64) := value[24:16]][bvadd64(index, 3bv64) := value[32:24]] } -function {:extern} {:bvbuiltin "zero_extend 32"} zero_extend32_32(bv32) returns (bv64); procedure {:extern} rely(); modifies Gamma_mem, mem; ensures (forall i: bv64 :: (((mem[i] == old(mem[i])) ==> (Gamma_mem[i] == old(Gamma_mem[i]))))); ensures (old(memory_load32_le(mem, $z_addr)) == memory_load32_le(mem, $z_addr)); - free ensures (memory_load32_le(mem, 1960bv64) == 131073bv32); - free ensures (memory_load64_le(mem, 69048bv64) == 1872bv64); - free ensures (memory_load64_le(mem, 69056bv64) == 1792bv64); - free ensures (memory_load64_le(mem, 69568bv64) == 69684bv64); - free ensures (memory_load64_le(mem, 69576bv64) == 69688bv64); - free ensures (memory_load64_le(mem, 69592bv64) == 1876bv64); - free ensures (memory_load64_le(mem, 69672bv64) == 69672bv64); + free ensures (memory_load32_le(mem, 2316bv64) == 131073bv32); + free ensures (memory_load64_le(mem, 130424bv64) == 2256bv64); + free ensures (memory_load64_le(mem, 130432bv64) == 2176bv64); + free ensures (memory_load64_le(mem, 131032bv64) == 131092bv64); + free ensures (memory_load64_le(mem, 131040bv64) == 131096bv64); + free ensures (memory_load64_le(mem, 131056bv64) == 2260bv64); + free ensures (memory_load64_le(mem, 131080bv64) == 131080bv64); procedure {:extern} rely_transitive(); modifies Gamma_mem, mem; @@ -83,92 +78,65 @@ implementation {:extern} guarantee_reflexive() assert ((memory_load32_le(mem, $z_addr) != 0bv32) ==> (memory_load32_le(mem, $z_addr) != 0bv32)); } -procedure main_1876(); - modifies Gamma_R0, Gamma_R10, Gamma_R31, Gamma_R8, Gamma_R9, Gamma_mem, Gamma_stack, R0, R10, R31, R8, R9, mem, stack; +procedure main(); + modifies Gamma_R0, Gamma_R10, Gamma_R8, Gamma_R9, Gamma_mem, R0, R10, R8, R9, mem; requires (Gamma_R0 == false); - free requires (memory_load64_le(mem, 69664bv64) == 0bv64); - free requires (memory_load64_le(mem, 69672bv64) == 69672bv64); - free requires (memory_load32_le(mem, 1960bv64) == 131073bv32); - free requires (memory_load64_le(mem, 69048bv64) == 1872bv64); - free requires (memory_load64_le(mem, 69056bv64) == 1792bv64); - free requires (memory_load64_le(mem, 69568bv64) == 69684bv64); - free requires (memory_load64_le(mem, 69576bv64) == 69688bv64); - free requires (memory_load64_le(mem, 69592bv64) == 1876bv64); - free requires (memory_load64_le(mem, 69672bv64) == 69672bv64); - free ensures (Gamma_R31 == old(Gamma_R31)); - free ensures (R31 == old(R31)); - free ensures (memory_load32_le(mem, 1960bv64) == 131073bv32); - free ensures (memory_load64_le(mem, 69048bv64) == 1872bv64); - free ensures (memory_load64_le(mem, 69056bv64) == 1792bv64); - free ensures (memory_load64_le(mem, 69568bv64) == 69684bv64); - free ensures (memory_load64_le(mem, 69576bv64) == 69688bv64); - free ensures (memory_load64_le(mem, 69592bv64) == 1876bv64); - free ensures (memory_load64_le(mem, 69672bv64) == 69672bv64); - -implementation main_1876() + free requires (memory_load64_le(mem, 131072bv64) == 0bv64); + free requires (memory_load64_le(mem, 131080bv64) == 131080bv64); + free requires (memory_load32_le(mem, 2316bv64) == 131073bv32); + free requires (memory_load64_le(mem, 130424bv64) == 2256bv64); + free requires (memory_load64_le(mem, 130432bv64) == 2176bv64); + free requires (memory_load64_le(mem, 131032bv64) == 131092bv64); + free requires (memory_load64_le(mem, 131040bv64) == 131096bv64); + free requires (memory_load64_le(mem, 131056bv64) == 2260bv64); + free requires (memory_load64_le(mem, 131080bv64) == 131080bv64); + free ensures (memory_load32_le(mem, 2316bv64) == 131073bv32); + free ensures (memory_load64_le(mem, 130424bv64) == 2256bv64); + free ensures (memory_load64_le(mem, 130432bv64) == 2176bv64); + free ensures (memory_load64_le(mem, 131032bv64) == 131092bv64); + free ensures (memory_load64_le(mem, 131040bv64) == 131096bv64); + free ensures (memory_load64_le(mem, 131056bv64) == 2260bv64); + free ensures (memory_load64_le(mem, 131080bv64) == 131080bv64); + +implementation main() { - var Gamma_load18: bool; - var Gamma_load19: bool; - var Gamma_load20: bool; + var $load$18: bv64; + var $load$19: bv64; + var Gamma_$load$18: bool; + var Gamma_$load$19: bool; var Gamma_x_old: bool; - var load18: bv64; - var load19: bv32; - var load20: bv64; var z_old: bv32; lmain: assume {:captureState "lmain"} true; - R31, Gamma_R31 := bvadd64(R31, 18446744073709551600bv64), Gamma_R31; - stack, Gamma_stack := memory_store32_le(stack, bvadd64(R31, 12bv64), R0[32:0]), gamma_store32(Gamma_stack, bvadd64(R31, 12bv64), Gamma_R0); - assume {:captureState "%000002f6"} true; - R9, Gamma_R9 := 65536bv64, true; - call rely(); - load18, Gamma_load18 := memory_load64_le(mem, bvadd64(R9, 4032bv64)), (gamma_load64(Gamma_mem, bvadd64(R9, 4032bv64)) || L(mem, bvadd64(R9, 4032bv64))); - R9, Gamma_R9 := load18, Gamma_load18; - R8, Gamma_R8 := 1bv64, true; - call rely(); - z_old := memory_load32_le(mem, $z_addr); - Gamma_x_old := (gamma_load32(Gamma_mem, $x_addr) || L(mem, $x_addr)); - assert (L(mem, R9) ==> Gamma_R8); - mem, Gamma_mem := memory_store32_le(mem, R9, R8[32:0]), gamma_store32(Gamma_mem, R9, Gamma_R8); - assert ((R9 == $z_addr) ==> (L(mem, $x_addr) ==> Gamma_x_old)); - assert ((z_old != 0bv32) ==> (memory_load32_le(mem, $z_addr) != 0bv32)); - assume {:captureState "%0000030f"} true; - load19, Gamma_load19 := memory_load32_le(stack, bvadd64(R31, 12bv64)), gamma_load32(Gamma_stack, bvadd64(R31, 12bv64)); - R10, Gamma_R10 := zero_extend32_32(load19), Gamma_load19; - R8, Gamma_R8 := 65536bv64, true; + R8, Gamma_R8 := 126976bv64, true; + R9, Gamma_R9 := 126976bv64, true; + R0, Gamma_R0 := 0bv64, true; call rely(); - load20, Gamma_load20 := memory_load64_le(mem, bvadd64(R8, 4040bv64)), (gamma_load64(Gamma_mem, bvadd64(R8, 4040bv64)) || L(mem, bvadd64(R8, 4040bv64))); - R8, Gamma_R8 := load20, Gamma_load20; + $load$18, Gamma_$load$18 := memory_load64_le(mem, bvadd64(R8, 4064bv64)), (gamma_load64(Gamma_mem, bvadd64(R8, 4064bv64)) || L(mem, bvadd64(R8, 4064bv64))); + R8, Gamma_R8 := $load$18, Gamma_$load$18; call rely(); - z_old := memory_load32_le(mem, $z_addr); - Gamma_x_old := (gamma_load32(Gamma_mem, $x_addr) || L(mem, $x_addr)); - assert (L(mem, R8) ==> Gamma_R10); - mem, Gamma_mem := memory_store32_le(mem, R8, R10[32:0]), gamma_store32(Gamma_mem, R8, Gamma_R10); - assert ((R8 == $z_addr) ==> (L(mem, $x_addr) ==> Gamma_x_old)); - assert ((z_old != 0bv32) ==> (memory_load32_le(mem, $z_addr) != 0bv32)); - assume {:captureState "%0000032a"} true; - R0, Gamma_R0 := 0bv64, true; + $load$19, Gamma_$load$19 := memory_load64_le(mem, bvadd64(R9, 4056bv64)), (gamma_load64(Gamma_mem, bvadd64(R9, 4056bv64)) || L(mem, bvadd64(R9, 4056bv64))); + R9, Gamma_R9 := $load$19, Gamma_$load$19; + R10, Gamma_R10 := 2bv64, true; call rely(); + assert (L(mem, R8) ==> true); z_old := memory_load32_le(mem, $z_addr); Gamma_x_old := (gamma_load32(Gamma_mem, $x_addr) || L(mem, $x_addr)); - assert (L(mem, R8) ==> true); mem, Gamma_mem := memory_store32_le(mem, R8, 0bv32), gamma_store32(Gamma_mem, R8, true); assert ((R8 == $z_addr) ==> (L(mem, $x_addr) ==> Gamma_x_old)); assert ((z_old != 0bv32) ==> (memory_load32_le(mem, $z_addr) != 0bv32)); - assume {:captureState "%00000336"} true; - R8, Gamma_R8 := 2bv64, true; + assume {:captureState "%00000294"} true; call rely(); + assert (L(mem, R9) ==> Gamma_R10); z_old := memory_load32_le(mem, $z_addr); Gamma_x_old := (gamma_load32(Gamma_mem, $x_addr) || L(mem, $x_addr)); - assert (L(mem, R9) ==> Gamma_R8); - mem, Gamma_mem := memory_store32_le(mem, R9, R8[32:0]), gamma_store32(Gamma_mem, R9, Gamma_R8); + mem, Gamma_mem := memory_store32_le(mem, R9, R10[32:0]), gamma_store32(Gamma_mem, R9, Gamma_R10); assert ((R9 == $z_addr) ==> (L(mem, $x_addr) ==> Gamma_x_old)); assert ((z_old != 0bv32) ==> (memory_load32_le(mem, $z_addr) != 0bv32)); - assume {:captureState "%00000343"} true; - R31, Gamma_R31 := bvadd64(R31, 16bv64), Gamma_R31; - goto main_1876_basil_return; - main_1876_basil_return: - assume {:captureState "main_1876_basil_return"} true; + assume {:captureState "%00000298"} true; + goto main_basil_return; + main_basil_return: + assume {:captureState "main_basil_return"} true; return; } diff --git a/src/test/correct/basic_sec_policy_write/clang_pic/basic_sec_policy_write.gts b/src/test/correct/basic_sec_policy_write/clang_pic/basic_sec_policy_write.gts deleted file mode 100644 index 339317498..000000000 Binary files a/src/test/correct/basic_sec_policy_write/clang_pic/basic_sec_policy_write.gts and /dev/null differ diff --git a/src/test/correct/basic_sec_policy_write/clang_pic/basic_sec_policy_write.md5sum b/src/test/correct/basic_sec_policy_write/clang_pic/basic_sec_policy_write.md5sum new file mode 100644 index 000000000..f84961a19 --- /dev/null +++ b/src/test/correct/basic_sec_policy_write/clang_pic/basic_sec_policy_write.md5sum @@ -0,0 +1,5 @@ +b2d31c5837bc1990fdb457c3e969833a correct/basic_sec_policy_write/clang_pic/a.out +731145c9e3f3991d0d46fd5bce9dcaca correct/basic_sec_policy_write/clang_pic/basic_sec_policy_write.adt +be2269ed66e076fbf865e95ef56d6647 correct/basic_sec_policy_write/clang_pic/basic_sec_policy_write.bir +2db23a15c997ae99fdf5c16cfa58f4f1 correct/basic_sec_policy_write/clang_pic/basic_sec_policy_write.relf +23e23191c5f643099292a798fd1a3e62 correct/basic_sec_policy_write/clang_pic/basic_sec_policy_write.gts diff --git a/src/test/correct/basic_sec_policy_write/clang_pic/basic_sec_policy_write.relf b/src/test/correct/basic_sec_policy_write/clang_pic/basic_sec_policy_write.relf deleted file mode 100644 index 5063e3cd4..000000000 --- a/src/test/correct/basic_sec_policy_write/clang_pic/basic_sec_policy_write.relf +++ /dev/null @@ -1,126 +0,0 @@ - -Relocation section '.rela.dyn' at offset 0x460 contains 10 entries: - Offset Info Type Symbol's Value Symbol's Name + Addend -0000000000010db8 0000000000000403 R_AARCH64_RELATIVE 750 -0000000000010dc0 0000000000000403 R_AARCH64_RELATIVE 700 -0000000000010fc0 0000000000000403 R_AARCH64_RELATIVE 11034 -0000000000010fc8 0000000000000403 R_AARCH64_RELATIVE 11038 -0000000000010fd8 0000000000000403 R_AARCH64_RELATIVE 754 -0000000000011028 0000000000000403 R_AARCH64_RELATIVE 11028 -0000000000010fb0 0000000400000401 R_AARCH64_GLOB_DAT 0000000000000000 _ITM_deregisterTMCloneTable + 0 -0000000000010fb8 0000000500000401 R_AARCH64_GLOB_DAT 0000000000000000 __cxa_finalize@GLIBC_2.17 + 0 -0000000000010fd0 0000000600000401 R_AARCH64_GLOB_DAT 0000000000000000 __gmon_start__ + 0 -0000000000010fe0 0000000800000401 R_AARCH64_GLOB_DAT 0000000000000000 _ITM_registerTMCloneTable + 0 - -Relocation section '.rela.plt' at offset 0x550 contains 4 entries: - Offset Info Type Symbol's Value Symbol's Name + Addend -0000000000011000 0000000300000402 R_AARCH64_JUMP_SLOT 0000000000000000 __libc_start_main@GLIBC_2.34 + 0 -0000000000011008 0000000500000402 R_AARCH64_JUMP_SLOT 0000000000000000 __cxa_finalize@GLIBC_2.17 + 0 -0000000000011010 0000000600000402 R_AARCH64_JUMP_SLOT 0000000000000000 __gmon_start__ + 0 -0000000000011018 0000000700000402 R_AARCH64_JUMP_SLOT 0000000000000000 abort@GLIBC_2.17 + 0 - -Symbol table '.dynsym' contains 9 entries: - Num: Value Size Type Bind Vis Ndx Name - 0: 0000000000000000 0 NOTYPE LOCAL DEFAULT UND - 1: 00000000000005b0 0 SECTION LOCAL DEFAULT 11 .init - 2: 0000000000011020 0 SECTION LOCAL DEFAULT 23 .data - 3: 0000000000000000 0 FUNC GLOBAL DEFAULT UND __libc_start_main@GLIBC_2.34 (2) - 4: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_deregisterTMCloneTable - 5: 0000000000000000 0 FUNC WEAK DEFAULT UND __cxa_finalize@GLIBC_2.17 (3) - 6: 0000000000000000 0 NOTYPE WEAK DEFAULT UND __gmon_start__ - 7: 0000000000000000 0 FUNC GLOBAL DEFAULT UND abort@GLIBC_2.17 (3) - 8: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_registerTMCloneTable - -Symbol table '.symtab' contains 91 entries: - Num: Value Size Type Bind Vis Ndx Name - 0: 0000000000000000 0 NOTYPE LOCAL DEFAULT UND - 1: 0000000000000238 0 SECTION LOCAL DEFAULT 1 .interp - 2: 0000000000000254 0 SECTION LOCAL DEFAULT 2 .note.gnu.build-id - 3: 0000000000000278 0 SECTION LOCAL DEFAULT 3 .note.ABI-tag - 4: 0000000000000298 0 SECTION LOCAL DEFAULT 4 .gnu.hash - 5: 00000000000002b8 0 SECTION LOCAL DEFAULT 5 .dynsym - 6: 0000000000000390 0 SECTION LOCAL DEFAULT 6 .dynstr - 7: 000000000000041e 0 SECTION LOCAL DEFAULT 7 .gnu.version - 8: 0000000000000430 0 SECTION LOCAL DEFAULT 8 .gnu.version_r - 9: 0000000000000460 0 SECTION LOCAL DEFAULT 9 .rela.dyn - 10: 0000000000000550 0 SECTION LOCAL DEFAULT 10 .rela.plt - 11: 00000000000005b0 0 SECTION LOCAL DEFAULT 11 .init - 12: 00000000000005d0 0 SECTION LOCAL DEFAULT 12 .plt - 13: 0000000000000640 0 SECTION LOCAL DEFAULT 13 .text - 14: 0000000000000794 0 SECTION LOCAL DEFAULT 14 .fini - 15: 00000000000007a8 0 SECTION LOCAL DEFAULT 15 .rodata - 16: 00000000000007ac 0 SECTION LOCAL DEFAULT 16 .eh_frame_hdr - 17: 00000000000007e8 0 SECTION LOCAL DEFAULT 17 .eh_frame - 18: 0000000000010db8 0 SECTION LOCAL DEFAULT 18 .init_array - 19: 0000000000010dc0 0 SECTION LOCAL DEFAULT 19 .fini_array - 20: 0000000000010dc8 0 SECTION LOCAL DEFAULT 20 .dynamic - 21: 0000000000010fa8 0 SECTION LOCAL DEFAULT 21 .got - 22: 0000000000010fe8 0 SECTION LOCAL DEFAULT 22 .got.plt - 23: 0000000000011020 0 SECTION LOCAL DEFAULT 23 .data - 24: 0000000000011030 0 SECTION LOCAL DEFAULT 24 .bss - 25: 0000000000000000 0 SECTION LOCAL DEFAULT 25 .comment - 26: 0000000000000000 0 FILE LOCAL DEFAULT ABS Scrt1.o - 27: 0000000000000278 0 NOTYPE LOCAL DEFAULT 3 $d - 28: 0000000000000278 32 OBJECT LOCAL DEFAULT 3 __abi_tag - 29: 0000000000000640 0 NOTYPE LOCAL DEFAULT 13 $x - 30: 00000000000007fc 0 NOTYPE LOCAL DEFAULT 17 $d - 31: 00000000000007a8 0 NOTYPE LOCAL DEFAULT 15 $d - 32: 0000000000000000 0 FILE LOCAL DEFAULT ABS crti.o - 33: 0000000000000674 0 NOTYPE LOCAL DEFAULT 13 $x - 34: 0000000000000674 20 FUNC LOCAL DEFAULT 13 call_weak_fn - 35: 00000000000005b0 0 NOTYPE LOCAL DEFAULT 11 $x - 36: 0000000000000794 0 NOTYPE LOCAL DEFAULT 14 $x - 37: 0000000000000000 0 FILE LOCAL DEFAULT ABS crtn.o - 38: 00000000000005c0 0 NOTYPE LOCAL DEFAULT 11 $x - 39: 00000000000007a0 0 NOTYPE LOCAL DEFAULT 14 $x - 40: 0000000000000000 0 FILE LOCAL DEFAULT ABS crtstuff.c - 41: 0000000000000690 0 NOTYPE LOCAL DEFAULT 13 $x - 42: 0000000000000690 0 FUNC LOCAL DEFAULT 13 deregister_tm_clones - 43: 00000000000006c0 0 FUNC LOCAL DEFAULT 13 register_tm_clones - 44: 0000000000011028 0 NOTYPE LOCAL DEFAULT 23 $d - 45: 0000000000000700 0 FUNC LOCAL DEFAULT 13 __do_global_dtors_aux - 46: 0000000000011030 1 OBJECT LOCAL DEFAULT 24 completed.0 - 47: 0000000000010dc0 0 NOTYPE LOCAL DEFAULT 19 $d - 48: 0000000000010dc0 0 OBJECT LOCAL DEFAULT 19 __do_global_dtors_aux_fini_array_entry - 49: 0000000000000750 0 FUNC LOCAL DEFAULT 13 frame_dummy - 50: 0000000000010db8 0 NOTYPE LOCAL DEFAULT 18 $d - 51: 0000000000010db8 0 OBJECT LOCAL DEFAULT 18 __frame_dummy_init_array_entry - 52: 0000000000000810 0 NOTYPE LOCAL DEFAULT 17 $d - 53: 0000000000011030 0 NOTYPE LOCAL DEFAULT 24 $d - 54: 0000000000000000 0 FILE LOCAL DEFAULT ABS basic_sec_policy_write.c - 55: 0000000000000754 0 NOTYPE LOCAL DEFAULT 13 $x.0 - 56: 0000000000011034 0 NOTYPE LOCAL DEFAULT 24 $d.1 - 57: 000000000000002a 0 NOTYPE LOCAL DEFAULT 25 $d.2 - 58: 0000000000000870 0 NOTYPE LOCAL DEFAULT 17 $d.3 - 59: 0000000000000000 0 FILE LOCAL DEFAULT ABS crtstuff.c - 60: 000000000000089c 0 NOTYPE LOCAL DEFAULT 17 $d - 61: 000000000000089c 0 OBJECT LOCAL DEFAULT 17 __FRAME_END__ - 62: 0000000000000000 0 FILE LOCAL DEFAULT ABS - 63: 0000000000010dc8 0 OBJECT LOCAL DEFAULT ABS _DYNAMIC - 64: 00000000000007ac 0 NOTYPE LOCAL DEFAULT 16 __GNU_EH_FRAME_HDR - 65: 0000000000010fa8 0 OBJECT LOCAL DEFAULT ABS _GLOBAL_OFFSET_TABLE_ - 66: 00000000000005d0 0 NOTYPE LOCAL DEFAULT 12 $x - 67: 0000000000000000 0 FUNC GLOBAL DEFAULT UND __libc_start_main@GLIBC_2.34 - 68: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_deregisterTMCloneTable - 69: 0000000000011020 0 NOTYPE WEAK DEFAULT 23 data_start - 70: 0000000000011030 0 NOTYPE GLOBAL DEFAULT 24 __bss_start__ - 71: 0000000000000000 0 FUNC WEAK DEFAULT UND __cxa_finalize@GLIBC_2.17 - 72: 0000000000011040 0 NOTYPE GLOBAL DEFAULT 24 _bss_end__ - 73: 0000000000011030 0 NOTYPE GLOBAL DEFAULT 23 _edata - 74: 0000000000011034 4 OBJECT GLOBAL DEFAULT 24 z - 75: 0000000000011038 4 OBJECT GLOBAL DEFAULT 24 x - 76: 0000000000000794 0 FUNC GLOBAL HIDDEN 14 _fini - 77: 0000000000011040 0 NOTYPE GLOBAL DEFAULT 24 __bss_end__ - 78: 0000000000011020 0 NOTYPE GLOBAL DEFAULT 23 __data_start - 79: 0000000000000000 0 NOTYPE WEAK DEFAULT UND __gmon_start__ - 80: 0000000000011028 0 OBJECT GLOBAL HIDDEN 23 __dso_handle - 81: 0000000000000000 0 FUNC GLOBAL DEFAULT UND abort@GLIBC_2.17 - 82: 00000000000007a8 4 OBJECT GLOBAL DEFAULT 15 _IO_stdin_used - 83: 0000000000011040 0 NOTYPE GLOBAL DEFAULT 24 _end - 84: 0000000000000640 52 FUNC GLOBAL DEFAULT 13 _start - 85: 0000000000011040 0 NOTYPE GLOBAL DEFAULT 24 __end__ - 86: 0000000000011030 0 NOTYPE GLOBAL DEFAULT 24 __bss_start - 87: 0000000000000754 64 FUNC GLOBAL DEFAULT 13 main - 88: 0000000000011030 0 OBJECT GLOBAL HIDDEN 23 __TMC_END__ - 89: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_registerTMCloneTable - 90: 00000000000005b0 0 FUNC GLOBAL HIDDEN 11 _init diff --git a/src/test/correct/basic_sec_policy_write/clang_pic/basic_sec_policy_write_gtirb.expected b/src/test/correct/basic_sec_policy_write/clang_pic/basic_sec_policy_write_gtirb.expected index 4f4fff6c9..f836b50fe 100644 --- a/src/test/correct/basic_sec_policy_write/clang_pic/basic_sec_policy_write_gtirb.expected +++ b/src/test/correct/basic_sec_policy_write/clang_pic/basic_sec_policy_write_gtirb.expected @@ -1,21 +1,17 @@ var {:extern} Gamma_R0: bool; var {:extern} Gamma_R10: bool; -var {:extern} Gamma_R31: bool; var {:extern} Gamma_R8: bool; var {:extern} Gamma_R9: bool; var {:extern} Gamma_mem: [bv64]bool; -var {:extern} Gamma_stack: [bv64]bool; var {:extern} R0: bv64; var {:extern} R10: bv64; -var {:extern} R31: bv64; var {:extern} R8: bv64; var {:extern} R9: bv64; var {:extern} mem: [bv64]bv8; -var {:extern} stack: [bv64]bv8; const {:extern} $x_addr: bv64; -axiom ($x_addr == 69688bv64); +axiom ($x_addr == 131096bv64); const {:extern} $z_addr: bv64; -axiom ($z_addr == 69684bv64); +axiom ($z_addr == 131092bv64); function {:extern} L(mem$in: [bv64]bv8, index: bv64) returns (bool) { (if (index == $z_addr) then true else (if (index == $x_addr) then (memory_load32_le(mem$in, $z_addr) == 0bv32) else false)) } @@ -45,18 +41,17 @@ function {:extern} memory_store32_le(memory: [bv64]bv8, index: bv64, value: bv32 memory[index := value[8:0]][bvadd64(index, 1bv64) := value[16:8]][bvadd64(index, 2bv64) := value[24:16]][bvadd64(index, 3bv64) := value[32:24]] } -function {:extern} {:bvbuiltin "zero_extend 32"} zero_extend32_32(bv32) returns (bv64); procedure {:extern} rely(); modifies Gamma_mem, mem; ensures (forall i: bv64 :: (((mem[i] == old(mem[i])) ==> (Gamma_mem[i] == old(Gamma_mem[i]))))); ensures (old(memory_load32_le(mem, $z_addr)) == memory_load32_le(mem, $z_addr)); - free ensures (memory_load32_le(mem, 1960bv64) == 131073bv32); - free ensures (memory_load64_le(mem, 69048bv64) == 1872bv64); - free ensures (memory_load64_le(mem, 69056bv64) == 1792bv64); - free ensures (memory_load64_le(mem, 69568bv64) == 69684bv64); - free ensures (memory_load64_le(mem, 69576bv64) == 69688bv64); - free ensures (memory_load64_le(mem, 69592bv64) == 1876bv64); - free ensures (memory_load64_le(mem, 69672bv64) == 69672bv64); + free ensures (memory_load32_le(mem, 2316bv64) == 131073bv32); + free ensures (memory_load64_le(mem, 130424bv64) == 2256bv64); + free ensures (memory_load64_le(mem, 130432bv64) == 2176bv64); + free ensures (memory_load64_le(mem, 131032bv64) == 131092bv64); + free ensures (memory_load64_le(mem, 131040bv64) == 131096bv64); + free ensures (memory_load64_le(mem, 131056bv64) == 2260bv64); + free ensures (memory_load64_le(mem, 131080bv64) == 131080bv64); procedure {:extern} rely_transitive(); modifies Gamma_mem, mem; @@ -83,92 +78,65 @@ implementation {:extern} guarantee_reflexive() assert ((memory_load32_le(mem, $z_addr) != 0bv32) ==> (memory_load32_le(mem, $z_addr) != 0bv32)); } -procedure main_1876(); - modifies Gamma_R0, Gamma_R10, Gamma_R31, Gamma_R8, Gamma_R9, Gamma_mem, Gamma_stack, R0, R10, R31, R8, R9, mem, stack; +procedure main(); + modifies Gamma_R0, Gamma_R10, Gamma_R8, Gamma_R9, Gamma_mem, R0, R10, R8, R9, mem; requires (Gamma_R0 == false); - free requires (memory_load64_le(mem, 69664bv64) == 0bv64); - free requires (memory_load64_le(mem, 69672bv64) == 69672bv64); - free requires (memory_load32_le(mem, 1960bv64) == 131073bv32); - free requires (memory_load64_le(mem, 69048bv64) == 1872bv64); - free requires (memory_load64_le(mem, 69056bv64) == 1792bv64); - free requires (memory_load64_le(mem, 69568bv64) == 69684bv64); - free requires (memory_load64_le(mem, 69576bv64) == 69688bv64); - free requires (memory_load64_le(mem, 69592bv64) == 1876bv64); - free requires (memory_load64_le(mem, 69672bv64) == 69672bv64); - free ensures (Gamma_R31 == old(Gamma_R31)); - free ensures (R31 == old(R31)); - free ensures (memory_load32_le(mem, 1960bv64) == 131073bv32); - free ensures (memory_load64_le(mem, 69048bv64) == 1872bv64); - free ensures (memory_load64_le(mem, 69056bv64) == 1792bv64); - free ensures (memory_load64_le(mem, 69568bv64) == 69684bv64); - free ensures (memory_load64_le(mem, 69576bv64) == 69688bv64); - free ensures (memory_load64_le(mem, 69592bv64) == 1876bv64); - free ensures (memory_load64_le(mem, 69672bv64) == 69672bv64); - -implementation main_1876() + free requires (memory_load64_le(mem, 131072bv64) == 0bv64); + free requires (memory_load64_le(mem, 131080bv64) == 131080bv64); + free requires (memory_load32_le(mem, 2316bv64) == 131073bv32); + free requires (memory_load64_le(mem, 130424bv64) == 2256bv64); + free requires (memory_load64_le(mem, 130432bv64) == 2176bv64); + free requires (memory_load64_le(mem, 131032bv64) == 131092bv64); + free requires (memory_load64_le(mem, 131040bv64) == 131096bv64); + free requires (memory_load64_le(mem, 131056bv64) == 2260bv64); + free requires (memory_load64_le(mem, 131080bv64) == 131080bv64); + free ensures (memory_load32_le(mem, 2316bv64) == 131073bv32); + free ensures (memory_load64_le(mem, 130424bv64) == 2256bv64); + free ensures (memory_load64_le(mem, 130432bv64) == 2176bv64); + free ensures (memory_load64_le(mem, 131032bv64) == 131092bv64); + free ensures (memory_load64_le(mem, 131040bv64) == 131096bv64); + free ensures (memory_load64_le(mem, 131056bv64) == 2260bv64); + free ensures (memory_load64_le(mem, 131080bv64) == 131080bv64); + +implementation main() { - var Gamma_load2: bool; - var Gamma_load3: bool; - var Gamma_load4: bool; + var $load5: bv64; + var $load6: bv64; + var Gamma_$load5: bool; + var Gamma_$load6: bool; var Gamma_x_old: bool; - var load2: bv64; - var load3: bv32; - var load4: bv64; var z_old: bv32; - main_1876__0__7yoZTp0aQWOcm6Iu3MMmPw: - assume {:captureState "main_1876__0__7yoZTp0aQWOcm6Iu3MMmPw"} true; - R31, Gamma_R31 := bvadd64(R31, 18446744073709551600bv64), Gamma_R31; - stack, Gamma_stack := memory_store32_le(stack, bvadd64(R31, 12bv64), R0[32:0]), gamma_store32(Gamma_stack, bvadd64(R31, 12bv64), Gamma_R0); - assume {:captureState "1880_0"} true; - R9, Gamma_R9 := 65536bv64, true; - call rely(); - load2, Gamma_load2 := memory_load64_le(mem, bvadd64(R9, 4032bv64)), (gamma_load64(Gamma_mem, bvadd64(R9, 4032bv64)) || L(mem, bvadd64(R9, 4032bv64))); - R9, Gamma_R9 := load2, Gamma_load2; - R8, Gamma_R8 := 1bv64, true; - call rely(); - z_old := memory_load32_le(mem, $z_addr); - Gamma_x_old := (gamma_load32(Gamma_mem, $x_addr) || L(mem, $x_addr)); - assert (L(mem, R9) ==> Gamma_R8); - mem, Gamma_mem := memory_store32_le(mem, R9, R8[32:0]), gamma_store32(Gamma_mem, R9, Gamma_R8); - assert ((R9 == $z_addr) ==> (L(mem, $x_addr) ==> Gamma_x_old)); - assert ((z_old != 0bv32) ==> (memory_load32_le(mem, $z_addr) != 0bv32)); - assume {:captureState "1896_0"} true; - load3, Gamma_load3 := memory_load32_le(stack, bvadd64(R31, 12bv64)), gamma_load32(Gamma_stack, bvadd64(R31, 12bv64)); - R10, Gamma_R10 := zero_extend32_32(load3), Gamma_load3; - R8, Gamma_R8 := 65536bv64, true; + $main$__0__$D9t2gNJrSmyMH3GAVRe3IQ: + assume {:captureState "$main$__0__$D9t2gNJrSmyMH3GAVRe3IQ"} true; + R8, Gamma_R8 := 126976bv64, true; + R9, Gamma_R9 := 126976bv64, true; + R0, Gamma_R0 := 0bv64, true; call rely(); - load4, Gamma_load4 := memory_load64_le(mem, bvadd64(R8, 4040bv64)), (gamma_load64(Gamma_mem, bvadd64(R8, 4040bv64)) || L(mem, bvadd64(R8, 4040bv64))); - R8, Gamma_R8 := load4, Gamma_load4; + $load5, Gamma_$load5 := memory_load64_le(mem, bvadd64(R8, 4064bv64)), (gamma_load64(Gamma_mem, bvadd64(R8, 4064bv64)) || L(mem, bvadd64(R8, 4064bv64))); + R8, Gamma_R8 := $load5, Gamma_$load5; call rely(); - z_old := memory_load32_le(mem, $z_addr); - Gamma_x_old := (gamma_load32(Gamma_mem, $x_addr) || L(mem, $x_addr)); - assert (L(mem, R8) ==> Gamma_R10); - mem, Gamma_mem := memory_store32_le(mem, R8, R10[32:0]), gamma_store32(Gamma_mem, R8, Gamma_R10); - assert ((R8 == $z_addr) ==> (L(mem, $x_addr) ==> Gamma_x_old)); - assert ((z_old != 0bv32) ==> (memory_load32_le(mem, $z_addr) != 0bv32)); - assume {:captureState "1912_0"} true; - R0, Gamma_R0 := 0bv64, true; + $load6, Gamma_$load6 := memory_load64_le(mem, bvadd64(R9, 4056bv64)), (gamma_load64(Gamma_mem, bvadd64(R9, 4056bv64)) || L(mem, bvadd64(R9, 4056bv64))); + R9, Gamma_R9 := $load6, Gamma_$load6; + R10, Gamma_R10 := 2bv64, true; call rely(); + assert (L(mem, R8) ==> true); z_old := memory_load32_le(mem, $z_addr); Gamma_x_old := (gamma_load32(Gamma_mem, $x_addr) || L(mem, $x_addr)); - assert (L(mem, R8) ==> true); mem, Gamma_mem := memory_store32_le(mem, R8, 0bv32), gamma_store32(Gamma_mem, R8, true); assert ((R8 == $z_addr) ==> (L(mem, $x_addr) ==> Gamma_x_old)); assert ((z_old != 0bv32) ==> (memory_load32_le(mem, $z_addr) != 0bv32)); - assume {:captureState "1920_0"} true; - R8, Gamma_R8 := 2bv64, true; + assume {:captureState "2284$0"} true; call rely(); + assert (L(mem, R9) ==> Gamma_R10); z_old := memory_load32_le(mem, $z_addr); Gamma_x_old := (gamma_load32(Gamma_mem, $x_addr) || L(mem, $x_addr)); - assert (L(mem, R9) ==> Gamma_R8); - mem, Gamma_mem := memory_store32_le(mem, R9, R8[32:0]), gamma_store32(Gamma_mem, R9, Gamma_R8); + mem, Gamma_mem := memory_store32_le(mem, R9, R10[32:0]), gamma_store32(Gamma_mem, R9, Gamma_R10); assert ((R9 == $z_addr) ==> (L(mem, $x_addr) ==> Gamma_x_old)); assert ((z_old != 0bv32) ==> (memory_load32_le(mem, $z_addr) != 0bv32)); - assume {:captureState "1928_0"} true; - R31, Gamma_R31 := bvadd64(R31, 16bv64), Gamma_R31; - goto main_1876_basil_return; - main_1876_basil_return: - assume {:captureState "main_1876_basil_return"} true; + assume {:captureState "2288$0"} true; + goto main_basil_return; + main_basil_return: + assume {:captureState "main_basil_return"} true; return; } diff --git a/src/test/correct/basic_sec_policy_write/gcc/basic_sec_policy_write.adt b/src/test/correct/basic_sec_policy_write/gcc/basic_sec_policy_write.adt deleted file mode 100644 index 5fc145b8a..000000000 --- a/src/test/correct/basic_sec_policy_write/gcc/basic_sec_policy_write.adt +++ /dev/null @@ -1,533 +0,0 @@ -Project(Attrs([Attr("filename","\"gcc/basic_sec_policy_write.out\""), -Attr("image-specification","(declare abi (name str))\n(declare arch (name str))\n(declare base-address (addr int))\n(declare bias (off int))\n(declare bits (size int))\n(declare code-region (addr int) (size int) (off int))\n(declare code-start (addr int))\n(declare entry-point (addr int))\n(declare external-reference (addr int) (name str))\n(declare format (name str))\n(declare is-executable (flag bool))\n(declare is-little-endian (flag bool))\n(declare llvm:base-address (addr int))\n(declare llvm:code-entry (name str) (off int) (size int))\n(declare llvm:coff-import-library (name str))\n(declare llvm:coff-virtual-section-header (name str) (addr int) (size int))\n(declare llvm:elf-program-header (name str) (off int) (size int))\n(declare llvm:elf-program-header-flags (name str) (ld bool) (r bool) \n (w bool) (x bool))\n(declare llvm:elf-virtual-program-header (name str) (addr int) (size int))\n(declare llvm:entry-point (addr int))\n(declare llvm:macho-symbol (name str) (value int))\n(declare llvm:name-reference (at int) (name str))\n(declare llvm:relocation (at int) (addr int))\n(declare llvm:section-entry (name str) (addr int) (size int) (off int))\n(declare llvm:section-flags (name str) (r bool) (w bool) (x bool))\n(declare llvm:segment-command (name str) (off int) (size int))\n(declare llvm:segment-command-flags (name str) (r bool) (w bool) (x bool))\n(declare llvm:symbol-entry (name str) (addr int) (size int) (off int)\n (value int))\n(declare llvm:virtual-segment-command (name str) (addr int) (size int))\n(declare mapped (addr int) (size int) (off int))\n(declare named-region (addr int) (size int) (name str))\n(declare named-symbol (addr int) (name str))\n(declare require (name str))\n(declare section (addr int) (size int))\n(declare segment (addr int) (size int) (r bool) (w bool) (x bool))\n(declare subarch (name str))\n(declare symbol-chunk (addr int) (size int) (root int))\n(declare symbol-value (addr int) (value int))\n(declare system (name str))\n(declare vendor (name str))\n\n(abi unknown)\n(arch aarch64)\n(base-address 0)\n(bias 0)\n(bits 64)\n(code-region 1892 20 1892)\n(code-region 1536 356 1536)\n(code-region 1440 96 1440)\n(code-region 1408 24 1408)\n(code-start 1588)\n(code-start 1536)\n(code-start 1812)\n(entry-point 1536)\n(external-reference 69592 _ITM_deregisterTMCloneTable)\n(external-reference 69600 __cxa_finalize)\n(external-reference 69608 __gmon_start__)\n(external-reference 69624 _ITM_registerTMCloneTable)\n(external-reference 69552 __libc_start_main)\n(external-reference 69560 __cxa_finalize)\n(external-reference 69568 __gmon_start__)\n(external-reference 69576 abort)\n(format elf)\n(is-executable true)\n(is-little-endian true)\n(llvm:base-address 0)\n(llvm:code-entry abort 0 0)\n(llvm:code-entry __cxa_finalize 0 0)\n(llvm:code-entry __libc_start_main 0 0)\n(llvm:code-entry _init 1408 0)\n(llvm:code-entry main 1812 80)\n(llvm:code-entry _start 1536 52)\n(llvm:code-entry abort@GLIBC_2.17 0 0)\n(llvm:code-entry _fini 1892 0)\n(llvm:code-entry __cxa_finalize@GLIBC_2.17 0 0)\n(llvm:code-entry __libc_start_main@GLIBC_2.34 0 0)\n(llvm:code-entry frame_dummy 1808 0)\n(llvm:code-entry __do_global_dtors_aux 1728 0)\n(llvm:code-entry register_tm_clones 1664 0)\n(llvm:code-entry deregister_tm_clones 1616 0)\n(llvm:code-entry call_weak_fn 1588 20)\n(llvm:code-entry .fini 1892 20)\n(llvm:code-entry .text 1536 356)\n(llvm:code-entry .plt 1440 96)\n(llvm:code-entry .init 1408 24)\n(llvm:elf-program-header 08 3480 616)\n(llvm:elf-program-header 07 0 0)\n(llvm:elf-program-header 06 1916 60)\n(llvm:elf-program-header 05 596 68)\n(llvm:elf-program-header 04 3496 496)\n(llvm:elf-program-header 03 3480 632)\n(llvm:elf-program-header 02 0 2140)\n(llvm:elf-program-header 01 568 27)\n(llvm:elf-program-header 00 64 504)\n(llvm:elf-program-header-flags 08 false true false false)\n(llvm:elf-program-header-flags 07 false true true false)\n(llvm:elf-program-header-flags 06 false true false false)\n(llvm:elf-program-header-flags 05 false true false false)\n(llvm:elf-program-header-flags 04 false true true false)\n(llvm:elf-program-header-flags 03 true true true false)\n(llvm:elf-program-header-flags 02 true true false true)\n(llvm:elf-program-header-flags 01 false true false false)\n(llvm:elf-program-header-flags 00 false true false false)\n(llvm:elf-virtual-program-header 08 69016 616)\n(llvm:elf-virtual-program-header 07 0 0)\n(llvm:elf-virtual-program-header 06 1916 60)\n(llvm:elf-virtual-program-header 05 596 68)\n(llvm:elf-virtual-program-header 04 69032 496)\n(llvm:elf-virtual-program-header 03 69016 648)\n(llvm:elf-virtual-program-header 02 0 2140)\n(llvm:elf-virtual-program-header 01 568 27)\n(llvm:elf-virtual-program-header 00 64 504)\n(llvm:entry-point 1536)\n(llvm:name-reference 69576 abort)\n(llvm:name-reference 69568 __gmon_start__)\n(llvm:name-reference 69560 __cxa_finalize)\n(llvm:name-reference 69552 __libc_start_main)\n(llvm:name-reference 69624 _ITM_registerTMCloneTable)\n(llvm:name-reference 69608 __gmon_start__)\n(llvm:name-reference 69600 __cxa_finalize)\n(llvm:name-reference 69592 _ITM_deregisterTMCloneTable)\n(llvm:section-entry .shstrtab 0 250 6856)\n(llvm:section-entry .strtab 0 560 6296)\n(llvm:section-entry .symtab 0 2136 4160)\n(llvm:section-entry .comment 0 43 4112)\n(llvm:section-entry .bss 69648 16 4112)\n(llvm:section-entry .data 69632 16 4096)\n(llvm:section-entry .got 69528 104 3992)\n(llvm:section-entry .dynamic 69032 496 3496)\n(llvm:section-entry .fini_array 69024 8 3488)\n(llvm:section-entry .init_array 69016 8 3480)\n(llvm:section-entry .eh_frame 1976 164 1976)\n(llvm:section-entry .eh_frame_hdr 1916 60 1916)\n(llvm:section-entry .rodata 1912 4 1912)\n(llvm:section-entry .fini 1892 20 1892)\n(llvm:section-entry .text 1536 356 1536)\n(llvm:section-entry .plt 1440 96 1440)\n(llvm:section-entry .init 1408 24 1408)\n(llvm:section-entry .rela.plt 1312 96 1312)\n(llvm:section-entry .rela.dyn 1120 192 1120)\n(llvm:section-entry .gnu.version_r 1072 48 1072)\n(llvm:section-entry .gnu.version 1054 18 1054)\n(llvm:section-entry .dynstr 912 141 912)\n(llvm:section-entry .dynsym 696 216 696)\n(llvm:section-entry .gnu.hash 664 28 664)\n(llvm:section-entry .note.ABI-tag 632 32 632)\n(llvm:section-entry .note.gnu.build-id 596 36 596)\n(llvm:section-entry .interp 568 27 568)\n(llvm:section-flags .shstrtab true false false)\n(llvm:section-flags .strtab true false false)\n(llvm:section-flags .symtab true false false)\n(llvm:section-flags .comment true false false)\n(llvm:section-flags .bss true true false)\n(llvm:section-flags .data true true false)\n(llvm:section-flags .got true true false)\n(llvm:section-flags .dynamic true true false)\n(llvm:section-flags .fini_array true true false)\n(llvm:section-flags .init_array true true false)\n(llvm:section-flags .eh_frame true false false)\n(llvm:section-flags .eh_frame_hdr true false false)\n(llvm:section-flags .rodata true false false)\n(llvm:section-flags .fini true false true)\n(llvm:section-flags .text true false true)\n(llvm:section-flags .plt true false true)\n(llvm:section-flags .init true false true)\n(llvm:section-flags .rela.plt true false false)\n(llvm:section-flags .rela.dyn true false false)\n(llvm:section-flags .gnu.version_r true false false)\n(llvm:section-flags .gnu.version true false false)\n(llvm:section-flags .dynstr true false false)\n(llvm:section-flags .dynsym true false false)\n(llvm:section-flags .gnu.hash true false false)\n(llvm:section-flags .note.ABI-tag true false false)\n(llvm:section-flags .note.gnu.build-id true false false)\n(llvm:section-flags .interp true false false)\n(llvm:symbol-entry abort 0 0 0 0)\n(llvm:symbol-entry __cxa_finalize 0 0 0 0)\n(llvm:symbol-entry __libc_start_main 0 0 0 0)\n(llvm:symbol-entry _init 1408 0 1408 1408)\n(llvm:symbol-entry main 1812 80 1812 1812)\n(llvm:symbol-entry _start 1536 52 1536 1536)\n(llvm:symbol-entry abort@GLIBC_2.17 0 0 0 0)\n(llvm:symbol-entry _fini 1892 0 1892 1892)\n(llvm:symbol-entry __cxa_finalize@GLIBC_2.17 0 0 0 0)\n(llvm:symbol-entry __libc_start_main@GLIBC_2.34 0 0 0 0)\n(llvm:symbol-entry frame_dummy 1808 0 1808 1808)\n(llvm:symbol-entry __do_global_dtors_aux 1728 0 1728 1728)\n(llvm:symbol-entry register_tm_clones 1664 0 1664 1664)\n(llvm:symbol-entry deregister_tm_clones 1616 0 1616 1616)\n(llvm:symbol-entry call_weak_fn 1588 20 1588 1588)\n(mapped 0 2140 0)\n(mapped 69016 632 3480)\n(named-region 0 2140 02)\n(named-region 69016 648 03)\n(named-region 568 27 .interp)\n(named-region 596 36 .note.gnu.build-id)\n(named-region 632 32 .note.ABI-tag)\n(named-region 664 28 .gnu.hash)\n(named-region 696 216 .dynsym)\n(named-region 912 141 .dynstr)\n(named-region 1054 18 .gnu.version)\n(named-region 1072 48 .gnu.version_r)\n(named-region 1120 192 .rela.dyn)\n(named-region 1312 96 .rela.plt)\n(named-region 1408 24 .init)\n(named-region 1440 96 .plt)\n(named-region 1536 356 .text)\n(named-region 1892 20 .fini)\n(named-region 1912 4 .rodata)\n(named-region 1916 60 .eh_frame_hdr)\n(named-region 1976 164 .eh_frame)\n(named-region 69016 8 .init_array)\n(named-region 69024 8 .fini_array)\n(named-region 69032 496 .dynamic)\n(named-region 69528 104 .got)\n(named-region 69632 16 .data)\n(named-region 69648 16 .bss)\n(named-region 0 43 .comment)\n(named-region 0 2136 .symtab)\n(named-region 0 560 .strtab)\n(named-region 0 250 .shstrtab)\n(named-symbol 1588 call_weak_fn)\n(named-symbol 1616 deregister_tm_clones)\n(named-symbol 1664 register_tm_clones)\n(named-symbol 1728 __do_global_dtors_aux)\n(named-symbol 1808 frame_dummy)\n(named-symbol 0 __libc_start_main@GLIBC_2.34)\n(named-symbol 0 __cxa_finalize@GLIBC_2.17)\n(named-symbol 1892 _fini)\n(named-symbol 0 abort@GLIBC_2.17)\n(named-symbol 1536 _start)\n(named-symbol 1812 main)\n(named-symbol 1408 _init)\n(named-symbol 0 __libc_start_main)\n(named-symbol 0 __cxa_finalize)\n(named-symbol 0 abort)\n(require libc.so.6)\n(section 568 27)\n(section 596 36)\n(section 632 32)\n(section 664 28)\n(section 696 216)\n(section 912 141)\n(section 1054 18)\n(section 1072 48)\n(section 1120 192)\n(section 1312 96)\n(section 1408 24)\n(section 1440 96)\n(section 1536 356)\n(section 1892 20)\n(section 1912 4)\n(section 1916 60)\n(section 1976 164)\n(section 69016 8)\n(section 69024 8)\n(section 69032 496)\n(section 69528 104)\n(section 69632 16)\n(section 69648 16)\n(section 0 43)\n(section 0 2136)\n(section 0 560)\n(section 0 250)\n(segment 0 2140 true false true)\n(segment 69016 648 true true false)\n(subarch v8)\n(symbol-chunk 1588 20 1588)\n(symbol-chunk 1536 52 1536)\n(symbol-chunk 1812 80 1812)\n(symbol-value 1588 1588)\n(symbol-value 1616 1616)\n(symbol-value 1664 1664)\n(symbol-value 1728 1728)\n(symbol-value 1808 1808)\n(symbol-value 1892 1892)\n(symbol-value 1536 1536)\n(symbol-value 1812 1812)\n(symbol-value 1408 1408)\n(symbol-value 0 0)\n(system \"\")\n(vendor \"\")\n"), -Attr("abi-name","\"aarch64-linux-gnu-elf\"")]), -Sections([Section(".shstrtab", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x00\x06\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xc8\x1b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x38\x00\x09\x00\x40\x00\x1c\x00\x1b\x00\x06\x00\x00\x00\x04\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x04\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5c\x08\x00\x00\x00\x00\x00\x00\x5c\x08\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x01\x00\x00\x00\x06\x00\x00\x00\x98\x0d\x00\x00\x00\x00\x00\x00\x98\x0d"), -Section(".strtab", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x00\x06\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xc8\x1b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x38\x00\x09\x00\x40\x00\x1c\x00\x1b\x00\x06\x00\x00\x00\x04\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x04\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5c\x08\x00\x00\x00\x00\x00\x00\x5c\x08\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x01\x00\x00\x00\x06\x00\x00\x00\x98\x0d\x00\x00\x00\x00\x00\x00\x98\x0d\x01\x00\x00\x00\x00\x00\x98\x0d\x01\x00\x00\x00\x00\x00\x78\x02\x00\x00\x00\x00\x00\x00\x88\x02\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x02\x00\x00\x00\x06\x00\x00\x00\xa8\x0d\x00\x00\x00\x00\x00\x00\xa8\x0d\x01\x00\x00\x00\x00\x00\xa8\x0d\x01\x00\x00\x00\x00\x00\xf0\x01\x00\x00\x00\x00\x00\x00\xf0\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x04\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x50\xe5\x74\x64\x04\x00\x00\x00\x7c\x07\x00\x00\x00\x00\x00\x00\x7c\x07\x00\x00\x00\x00\x00\x00\x7c\x07\x00\x00\x00\x00\x00\x00\x3c\x00\x00\x00\x00\x00\x00\x00\x3c\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x51\xe5\x74\x64\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x52\xe5\x74\x64\x04\x00\x00\x00\x98\x0d\x00\x00\x00\x00\x00\x00\x98\x0d\x01\x00\x00\x00\x00\x00\x98\x0d\x01\x00\x00\x00\x00\x00\x68\x02\x00\x00\x00\x00\x00\x00\x68\x02\x00\x00\x00\x00\x00\x00"), -Section(".symtab", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x00\x06\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xc8\x1b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x38\x00\x09\x00\x40\x00\x1c\x00\x1b\x00\x06\x00\x00\x00\x04\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x04\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5c\x08\x00\x00\x00\x00\x00\x00\x5c\x08\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x01\x00\x00\x00\x06\x00\x00\x00\x98\x0d\x00\x00\x00\x00\x00\x00\x98\x0d\x01\x00\x00\x00\x00\x00\x98\x0d\x01\x00\x00\x00\x00\x00\x78\x02\x00\x00\x00\x00\x00\x00\x88\x02\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x02\x00\x00\x00\x06\x00\x00\x00\xa8\x0d\x00\x00\x00\x00\x00\x00\xa8\x0d\x01\x00\x00\x00\x00\x00\xa8\x0d\x01\x00\x00\x00\x00\x00\xf0\x01\x00\x00\x00\x00\x00\x00\xf0\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x04\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x50\xe5\x74\x64\x04\x00\x00\x00\x7c\x07\x00\x00\x00\x00\x00\x00\x7c\x07\x00\x00\x00\x00\x00\x00\x7c\x07\x00\x00\x00\x00\x00\x00\x3c\x00\x00\x00\x00\x00\x00\x00\x3c\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x51\xe5\x74\x64\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x52\xe5\x74\x64\x04\x00\x00\x00\x98\x0d\x00\x00\x00\x00\x00\x00\x98\x0d\x01\x00\x00\x00\x00\x00\x98\x0d\x01\x00\x00\x00\x00\x00\x68\x02\x00\x00\x00\x00\x00\x00\x68\x02\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x2f\x6c\x69\x62\x2f\x6c\x64\x2d\x6c\x69\x6e\x75\x78\x2d\x61\x61\x72\x63\x68\x36\x34\x2e\x73\x6f\x2e\x31\x00\x00\x04\x00\x00\x00\x14\x00\x00\x00\x03\x00\x00\x00\x47\x4e\x55\x00\x89\x02\x2a\x39\x28\x90\x27\x0b\xd9\xd9\xdf\x90\x7d\xdd\xa3\xae\x69\x63\x25\x82\x04\x00\x00\x00\x10\x00\x00\x00\x01\x00\x00\x00\x47\x4e\x55\x00\x00\x00\x00\x00\x03\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x01\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x0b\x00\x80\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x16\x00\x00\x10\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x48\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x22\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x22\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x73\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5f\x5f\x63\x78\x61\x5f\x66\x69\x6e\x61\x6c\x69\x7a\x65\x00\x5f\x5f\x6c\x69\x62\x63\x5f\x73\x74\x61\x72\x74\x5f\x6d\x61\x69\x6e\x00\x61\x62\x6f\x72\x74\x00\x6c\x69\x62\x63\x2e\x73\x6f\x2e\x36\x00\x47\x4c\x49\x42\x43\x5f\x32\x2e\x31\x37\x00\x47\x4c\x49\x42\x43\x5f\x32\x2e\x33\x34\x00\x5f\x49\x54\x4d\x5f\x64\x65\x72\x65\x67\x69\x73\x74\x65\x72\x54\x4d\x43\x6c\x6f\x6e\x65\x54\x61\x62\x6c\x65\x00\x5f\x5f\x67\x6d\x6f\x6e\x5f\x73\x74\x61\x72\x74\x5f\x5f\x00\x5f\x49\x54\x4d\x5f\x72\x65\x67\x69\x73\x74\x65\x72\x54\x4d\x43\x6c\x6f\x6e\x65\x54\x61\x62\x6c\x65\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x01\x00\x03\x00\x01\x00\x03\x00\x01\x00\x01\x00\x02\x00\x28\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x97\x91\x96\x06\x00\x00\x03\x00\x32\x00\x00\x00\x10\x00\x00\x00\xb4\x91\x96\x06\x00\x00\x02\x00\x3d\x00\x00\x00\x00\x00\x00\x00\x98\x0d\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x10\x07\x00\x00\x00\x00\x00\x00\xa0\x0d\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\xc0\x06\x00\x00\x00\x00\x00\x00\xf0\x0f\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x14\x07\x00\x00\x00\x00\x00\x00\x08\x10\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x08\x10\x01\x00\x00\x00\x00\x00\xd8\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe0\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe8\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xf8\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xb0\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xb8\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xc0\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xc8\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1f\x20\x03\xd5\xfd\x7b\xbf\xa9\xfd\x03\x00\x91\x2a\x00\x00\x94\xfd\x7b\xc1\xa8\xc0\x03\x5f\xd6\x00\x00\x00\x00\x00\x00\x00\x00\xf0\x7b\xbf\xa9\x90\x00\x00\x90\x11\xd6\x47\xf9\x10\xa2\x3e\x91\x20\x02\x1f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x90\x00\x00\x90\x11\xda\x47\xf9\x10\xc2\x3e\x91\x20\x02\x1f\xd6\x90\x00\x00\x90\x11\xde\x47\xf9\x10\xe2\x3e\x91\x20\x02\x1f\xd6\x90\x00\x00\x90\x11\xe2\x47\xf9\x10\x02\x3f\x91\x20\x02\x1f\xd6\x90\x00\x00\x90\x11\xe6\x47\xf9\x10\x22\x3f\x91\x20\x02\x1f\xd6\x1f\x20\x03\xd5\x1d\x00\x80\xd2\x1e\x00\x80\xd2\xe5\x03\x00\xaa\xe1\x03\x40\xf9\xe2\x23\x00\x91\xe6\x03\x00\x91\x80\x00\x00\x90\x00\xf8\x47\xf9\x03\x00\x80\xd2\x04\x00\x80\xd2\xe5\xff\xff\x97\xf0\xff\xff\x97\x80\x00\x00\x90\x00\xf4\x47\xf9\x40\x00\x00\xb4\xe8\xff\xff\x17\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x80\x00\x00\xb0\x00\x40\x00\x91\x81\x00\x00\xb0\x21\x40\x00\x91\x3f\x00\x00\xeb\xc0\x00\x00\x54\x81\x00\x00\x90\x21\xec\x47\xf9\x61\x00\x00\xb4\xf0\x03\x01\xaa\x00\x02\x1f\xd6\xc0\x03\x5f\xd6\x80\x00\x00\xb0\x00\x40\x00\x91\x81\x00\x00\xb0\x21\x40\x00\x91\x21\x00\x00\xcb\x22\xfc\x7f\xd3\x41\x0c\x81\x8b\x21\xfc\x41\x93\xc1\x00\x00\xb4\x82\x00\x00\x90\x42\xfc\x47\xf9\x62\x00\x00\xb4\xf0\x03\x02\xaa\x00\x02\x1f\xd6\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\xfd\x7b\xbe\xa9\xfd\x03\x00\x91\xf3\x0b\x00\xf9\x93\x00\x00\xb0\x60\x42\x40\x39\x40\x01\x00\x35\x80\x00\x00\x90\x00\xf0\x47\xf9\x80\x00\x00\xb4\x80\x00\x00\xb0\x00\x04\x40\xf9\xb9\xff\xff\x97\xd8\xff\xff\x97\x20\x00\x80\x52\x60\x42\x00\x39\xf3\x0b\x40\xf9\xfd\x7b\xc2\xa8\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\xdc\xff\xff\x17\xff\x43\x00\xd1\xe0\x0f\x00\xb9\x80\x00\x00\xb0\x00\x60\x00\x91\x21\x00\x80\x52\x01\x00\x00\xb9\x80\x00\x00\xb0\x00\x50\x00\x91\xe1\x0f\x40\xb9\x01\x00\x00\xb9\x80\x00\x00\xb0\x00\x50\x00\x91\x1f\x00\x00\xb9\x80\x00\x00\xb0\x00\x60\x00\x91\x41\x00\x80\x52\x01\x00\x00\xb9\x00\x00\x80\x52\xff\x43\x00\x91\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\xfd\x7b\xbf\xa9\xfd\x03\x00\x91\xfd\x7b\xc1\xa8\xc0\x03\x5f\xd6\x01\x00\x02\x00\x01\x1b\x03\x3b\x38\x00\x00\x00\x06\x00\x00\x00\x84\xfe\xff\xff\x50\x00\x00\x00\xd4\xfe\xff\xff\x64\x00\x00\x00\x04\xff\xff\xff\x78\x00\x00\x00\x44\xff\xff\xff\x8c\x00\x00\x00\x94\xff\xff\xff\xb0\x00\x00\x00\x98\xff\xff\xff\xc4\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x01\x7a\x52\x00\x04\x78\x1e\x01\x1b\x0c\x1f\x00\x10\x00\x00\x00\x18\x00\x00\x00\x2c\xfe\xff\xff\x34\x00\x00\x00\x00\x41\x07\x1e\x10\x00\x00\x00\x2c\x00\x00\x00\x68\xfe\xff\xff\x30\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x40\x00\x00\x00\x84\xfe\xff\xff\x3c\x00\x00\x00\x00\x00\x00\x00\x20\x00\x00\x00\x54\x00\x00\x00\xb0\xfe\xff\xff\x48\x00\x00\x00\x00\x41\x0e\x20\x9d\x04\x9e\x03\x42\x93\x02\x4e\xde\xdd\xd3\x0e\x00\x00\x00\x00\x10\x00\x00\x00\x78\x00\x00\x00\xdc\xfe\xff\xff\x04\x00\x00\x00\x00\x00\x00\x00\x14\x00\x00\x00\x8c\x00\x00\x00\xcc\xfe\xff\xff\x50\x00\x00\x00\x00\x41\x0e\x10\x52\x0e\x00\x00"), -Section(".comment", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x00\x06\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xc8\x1b\x00"), -Section(".interp", 0x238, "\x2f\x6c\x69\x62\x2f\x6c\x64\x2d\x6c\x69\x6e\x75\x78\x2d\x61\x61\x72\x63\x68\x36\x34\x2e\x73\x6f\x2e\x31\x00"), -Section(".note.gnu.build-id", 0x254, "\x04\x00\x00\x00\x14\x00\x00\x00\x03\x00\x00\x00\x47\x4e\x55\x00\x89\x02\x2a\x39\x28\x90\x27\x0b\xd9\xd9\xdf\x90\x7d\xdd\xa3\xae\x69\x63\x25\x82"), -Section(".note.ABI-tag", 0x278, "\x04\x00\x00\x00\x10\x00\x00\x00\x01\x00\x00\x00\x47\x4e\x55\x00\x00\x00\x00\x00\x03\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00"), -Section(".gnu.hash", 0x298, "\x01\x00\x00\x00\x01\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".dynsym", 0x2B8, "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x0b\x00\x80\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x16\x00\x00\x10\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x48\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x22\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x22\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x73\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".dynstr", 0x390, "\x00\x5f\x5f\x63\x78\x61\x5f\x66\x69\x6e\x61\x6c\x69\x7a\x65\x00\x5f\x5f\x6c\x69\x62\x63\x5f\x73\x74\x61\x72\x74\x5f\x6d\x61\x69\x6e\x00\x61\x62\x6f\x72\x74\x00\x6c\x69\x62\x63\x2e\x73\x6f\x2e\x36\x00\x47\x4c\x49\x42\x43\x5f\x32\x2e\x31\x37\x00\x47\x4c\x49\x42\x43\x5f\x32\x2e\x33\x34\x00\x5f\x49\x54\x4d\x5f\x64\x65\x72\x65\x67\x69\x73\x74\x65\x72\x54\x4d\x43\x6c\x6f\x6e\x65\x54\x61\x62\x6c\x65\x00\x5f\x5f\x67\x6d\x6f\x6e\x5f\x73\x74\x61\x72\x74\x5f\x5f\x00\x5f\x49\x54\x4d\x5f\x72\x65\x67\x69\x73\x74\x65\x72\x54\x4d\x43\x6c\x6f\x6e\x65\x54\x61\x62\x6c\x65\x00"), -Section(".gnu.version", 0x41E, "\x00\x00\x00\x00\x00\x00\x02\x00\x01\x00\x03\x00\x01\x00\x03\x00\x01\x00"), -Section(".gnu.version_r", 0x430, "\x01\x00\x02\x00\x28\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x97\x91\x96\x06\x00\x00\x03\x00\x32\x00\x00\x00\x10\x00\x00\x00\xb4\x91\x96\x06\x00\x00\x02\x00\x3d\x00\x00\x00\x00\x00\x00\x00"), -Section(".rela.dyn", 0x460, "\x98\x0d\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x10\x07\x00\x00\x00\x00\x00\x00\xa0\x0d\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\xc0\x06\x00\x00\x00\x00\x00\x00\xf0\x0f\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x14\x07\x00\x00\x00\x00\x00\x00\x08\x10\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x08\x10\x01\x00\x00\x00\x00\x00\xd8\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe0\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe8\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xf8\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".rela.plt", 0x520, "\xb0\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xb8\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xc0\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xc8\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".init", 0x580, "\x1f\x20\x03\xd5\xfd\x7b\xbf\xa9\xfd\x03\x00\x91\x2a\x00\x00\x94\xfd\x7b\xc1\xa8\xc0\x03\x5f\xd6"), -Section(".plt", 0x5A0, "\xf0\x7b\xbf\xa9\x90\x00\x00\x90\x11\xd6\x47\xf9\x10\xa2\x3e\x91\x20\x02\x1f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x90\x00\x00\x90\x11\xda\x47\xf9\x10\xc2\x3e\x91\x20\x02\x1f\xd6\x90\x00\x00\x90\x11\xde\x47\xf9\x10\xe2\x3e\x91\x20\x02\x1f\xd6\x90\x00\x00\x90\x11\xe2\x47\xf9\x10\x02\x3f\x91\x20\x02\x1f\xd6\x90\x00\x00\x90\x11\xe6\x47\xf9\x10\x22\x3f\x91\x20\x02\x1f\xd6"), -Section(".fini", 0x764, "\x1f\x20\x03\xd5\xfd\x7b\xbf\xa9\xfd\x03\x00\x91\xfd\x7b\xc1\xa8\xc0\x03\x5f\xd6"), -Section(".rodata", 0x778, "\x01\x00\x02\x00"), -Section(".eh_frame_hdr", 0x77C, "\x01\x1b\x03\x3b\x38\x00\x00\x00\x06\x00\x00\x00\x84\xfe\xff\xff\x50\x00\x00\x00\xd4\xfe\xff\xff\x64\x00\x00\x00\x04\xff\xff\xff\x78\x00\x00\x00\x44\xff\xff\xff\x8c\x00\x00\x00\x94\xff\xff\xff\xb0\x00\x00\x00\x98\xff\xff\xff\xc4\x00\x00\x00"), -Section(".eh_frame", 0x7B8, "\x10\x00\x00\x00\x00\x00\x00\x00\x01\x7a\x52\x00\x04\x78\x1e\x01\x1b\x0c\x1f\x00\x10\x00\x00\x00\x18\x00\x00\x00\x2c\xfe\xff\xff\x34\x00\x00\x00\x00\x41\x07\x1e\x10\x00\x00\x00\x2c\x00\x00\x00\x68\xfe\xff\xff\x30\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x40\x00\x00\x00\x84\xfe\xff\xff\x3c\x00\x00\x00\x00\x00\x00\x00\x20\x00\x00\x00\x54\x00\x00\x00\xb0\xfe\xff\xff\x48\x00\x00\x00\x00\x41\x0e\x20\x9d\x04\x9e\x03\x42\x93\x02\x4e\xde\xdd\xd3\x0e\x00\x00\x00\x00\x10\x00\x00\x00\x78\x00\x00\x00\xdc\xfe\xff\xff\x04\x00\x00\x00\x00\x00\x00\x00\x14\x00\x00\x00\x8c\x00\x00\x00\xcc\xfe\xff\xff\x50\x00\x00\x00\x00\x41\x0e\x10\x52\x0e\x00\x00\x00\x00\x00\x00"), -Section(".fini_array", 0x10DA0, "\xc0\x06\x00\x00\x00\x00\x00\x00"), -Section(".dynamic", 0x10DA8, "\x01\x00\x00\x00\x00\x00\x00\x00\x28\x00\x00\x00\x00\x00\x00\x00\x0c\x00\x00\x00\x00\x00\x00\x00\x80\x05\x00\x00\x00\x00\x00\x00\x0d\x00\x00\x00\x00\x00\x00\x00\x64\x07\x00\x00\x00\x00\x00\x00\x19\x00\x00\x00\x00\x00\x00\x00\x98\x0d\x01\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x1a\x00\x00\x00\x00\x00\x00\x00\xa0\x0d\x01\x00\x00\x00\x00\x00\x1c\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\xf5\xfe\xff\x6f\x00\x00\x00\x00\x98\x02\x00\x00\x00\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x90\x03\x00\x00\x00\x00\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\xb8\x02\x00\x00\x00\x00\x00\x00\x0a\x00\x00\x00\x00\x00\x00\x00\x8d\x00\x00\x00\x00\x00\x00\x00\x0b\x00\x00\x00\x00\x00\x00\x00\x18\x00\x00\x00\x00\x00\x00\x00\x15\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x98\x0f\x01\x00\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x60\x00\x00\x00\x00\x00\x00\x00\x14\x00\x00\x00\x00\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x17\x00\x00\x00\x00\x00\x00\x00\x20\x05\x00\x00\x00\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x60\x04\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\xc0\x00\x00\x00\x00\x00\x00\x00\x09\x00\x00\x00\x00\x00\x00\x00\x18\x00\x00\x00\x00\x00\x00\x00\x1e\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\xfb\xff\xff\x6f\x00\x00\x00\x00\x01\x00\x00\x08\x00\x00\x00\x00\xfe\xff\xff\x6f\x00\x00\x00\x00\x30\x04\x00\x00\x00\x00\x00\x00\xff\xff\xff\x6f\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\xf0\xff\xff\x6f\x00\x00\x00\x00\x1e\x04\x00\x00\x00\x00\x00\x00\xf9\xff\xff\x6f\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".got", 0x10F98, "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xa0\x05\x00\x00\x00\x00\x00\x00\xa0\x05\x00\x00\x00\x00\x00\x00\xa0\x05\x00\x00\x00\x00\x00\x00\xa0\x05\x00\x00\x00\x00\x00\x00\xa8\x0d\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x14\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".data", 0x11000, "\x00\x00\x00\x00\x00\x00\x00\x00\x08\x10\x01\x00\x00\x00\x00\x00"), -Section(".init_array", 0x10D98, "\x10\x07\x00\x00\x00\x00\x00\x00"), -Section(".text", 0x600, "\x1f\x20\x03\xd5\x1d\x00\x80\xd2\x1e\x00\x80\xd2\xe5\x03\x00\xaa\xe1\x03\x40\xf9\xe2\x23\x00\x91\xe6\x03\x00\x91\x80\x00\x00\x90\x00\xf8\x47\xf9\x03\x00\x80\xd2\x04\x00\x80\xd2\xe5\xff\xff\x97\xf0\xff\xff\x97\x80\x00\x00\x90\x00\xf4\x47\xf9\x40\x00\x00\xb4\xe8\xff\xff\x17\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x80\x00\x00\xb0\x00\x40\x00\x91\x81\x00\x00\xb0\x21\x40\x00\x91\x3f\x00\x00\xeb\xc0\x00\x00\x54\x81\x00\x00\x90\x21\xec\x47\xf9\x61\x00\x00\xb4\xf0\x03\x01\xaa\x00\x02\x1f\xd6\xc0\x03\x5f\xd6\x80\x00\x00\xb0\x00\x40\x00\x91\x81\x00\x00\xb0\x21\x40\x00\x91\x21\x00\x00\xcb\x22\xfc\x7f\xd3\x41\x0c\x81\x8b\x21\xfc\x41\x93\xc1\x00\x00\xb4\x82\x00\x00\x90\x42\xfc\x47\xf9\x62\x00\x00\xb4\xf0\x03\x02\xaa\x00\x02\x1f\xd6\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\xfd\x7b\xbe\xa9\xfd\x03\x00\x91\xf3\x0b\x00\xf9\x93\x00\x00\xb0\x60\x42\x40\x39\x40\x01\x00\x35\x80\x00\x00\x90\x00\xf0\x47\xf9\x80\x00\x00\xb4\x80\x00\x00\xb0\x00\x04\x40\xf9\xb9\xff\xff\x97\xd8\xff\xff\x97\x20\x00\x80\x52\x60\x42\x00\x39\xf3\x0b\x40\xf9\xfd\x7b\xc2\xa8\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\xdc\xff\xff\x17\xff\x43\x00\xd1\xe0\x0f\x00\xb9\x80\x00\x00\xb0\x00\x60\x00\x91\x21\x00\x80\x52\x01\x00\x00\xb9\x80\x00\x00\xb0\x00\x50\x00\x91\xe1\x0f\x40\xb9\x01\x00\x00\xb9\x80\x00\x00\xb0\x00\x50\x00\x91\x1f\x00\x00\xb9\x80\x00\x00\xb0\x00\x60\x00\x91\x41\x00\x80\x52\x01\x00\x00\xb9\x00\x00\x80\x52\xff\x43\x00\x91\xc0\x03\x5f\xd6")]), -Memmap([Annotation(Region(0x0,0x85B), Attr("segment","02 0 2140")), -Annotation(Region(0x600,0x633), Attr("symbol","\"_start\"")), -Annotation(Region(0x0,0xF9), Attr("section","\".shstrtab\"")), -Annotation(Region(0x0,0x22F), Attr("section","\".strtab\"")), -Annotation(Region(0x0,0x857), Attr("section","\".symtab\"")), -Annotation(Region(0x0,0x2A), Attr("section","\".comment\"")), -Annotation(Region(0x238,0x252), Attr("section","\".interp\"")), -Annotation(Region(0x254,0x277), Attr("section","\".note.gnu.build-id\"")), -Annotation(Region(0x278,0x297), Attr("section","\".note.ABI-tag\"")), -Annotation(Region(0x298,0x2B3), Attr("section","\".gnu.hash\"")), -Annotation(Region(0x2B8,0x38F), Attr("section","\".dynsym\"")), -Annotation(Region(0x390,0x41C), Attr("section","\".dynstr\"")), -Annotation(Region(0x41E,0x42F), Attr("section","\".gnu.version\"")), -Annotation(Region(0x430,0x45F), Attr("section","\".gnu.version_r\"")), -Annotation(Region(0x460,0x51F), Attr("section","\".rela.dyn\"")), -Annotation(Region(0x520,0x57F), Attr("section","\".rela.plt\"")), -Annotation(Region(0x580,0x597), Attr("section","\".init\"")), -Annotation(Region(0x5A0,0x5FF), Attr("section","\".plt\"")), -Annotation(Region(0x580,0x597), Attr("code-region","()")), -Annotation(Region(0x5A0,0x5FF), Attr("code-region","()")), -Annotation(Region(0x600,0x633), Attr("symbol-info","_start 0x600 52")), -Annotation(Region(0x634,0x647), Attr("symbol","\"call_weak_fn\"")), -Annotation(Region(0x634,0x647), Attr("symbol-info","call_weak_fn 0x634 20")), -Annotation(Region(0x714,0x763), Attr("symbol","\"main\"")), -Annotation(Region(0x714,0x763), Attr("symbol-info","main 0x714 80")), -Annotation(Region(0x764,0x777), Attr("section","\".fini\"")), -Annotation(Region(0x778,0x77B), Attr("section","\".rodata\"")), -Annotation(Region(0x77C,0x7B7), Attr("section","\".eh_frame_hdr\"")), -Annotation(Region(0x7B8,0x85B), Attr("section","\".eh_frame\"")), -Annotation(Region(0x10D98,0x1100F), Attr("segment","03 0x10D98 648")), -Annotation(Region(0x10DA0,0x10DA7), Attr("section","\".fini_array\"")), -Annotation(Region(0x10DA8,0x10F97), Attr("section","\".dynamic\"")), -Annotation(Region(0x10F98,0x10FFF), Attr("section","\".got\"")), -Annotation(Region(0x11000,0x1100F), Attr("section","\".data\"")), -Annotation(Region(0x10D98,0x10D9F), Attr("section","\".init_array\"")), -Annotation(Region(0x600,0x763), Attr("section","\".text\"")), -Annotation(Region(0x600,0x763), Attr("code-region","()")), -Annotation(Region(0x764,0x777), Attr("code-region","()"))]), -Program(Tid(1_601, "%00000641"), Attrs([]), - Subs([Sub(Tid(1_551, "@__cxa_finalize"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x5D0"), -Attr("stub","()")]), "__cxa_finalize", Args([Arg(Tid(1_602, "%00000642"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("__cxa_finalize_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(939, "@__cxa_finalize"), - Attrs([Attr("address","0x5D0")]), Phis([]), -Defs([Def(Tid(1_187, "%000004a3"), Attrs([Attr("address","0x5D0"), -Attr("insn","adrp x16, #65536")]), Var("R16",Imm(64)), Int(65536,64)), -Def(Tid(1_194, "%000004aa"), Attrs([Attr("address","0x5D4"), -Attr("insn","ldr x17, [x16, #0xfb8]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(4024,64)),LittleEndian(),64)), -Def(Tid(1_200, "%000004b0"), Attrs([Attr("address","0x5D8"), -Attr("insn","add x16, x16, #0xfb8")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(4024,64)))]), Jmps([Call(Tid(1_205, "%000004b5"), - Attrs([Attr("address","0x5DC"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), -Sub(Tid(1_552, "@__do_global_dtors_aux"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x6C0")]), - "__do_global_dtors_aux", Args([Arg(Tid(1_603, "%00000643"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("__do_global_dtors_aux_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(670, "@__do_global_dtors_aux"), - Attrs([Attr("address","0x6C0")]), Phis([]), Defs([Def(Tid(674, "%000002a2"), - Attrs([Attr("address","0x6C0"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("#3",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(18446744073709551584,64))), -Def(Tid(680, "%000002a8"), Attrs([Attr("address","0x6C0"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("#3",Imm(64)),Var("R29",Imm(64)),LittleEndian(),64)), -Def(Tid(686, "%000002ae"), Attrs([Attr("address","0x6C0"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("#3",Imm(64)),Int(8,64)),Var("R30",Imm(64)),LittleEndian(),64)), -Def(Tid(690, "%000002b2"), Attrs([Attr("address","0x6C0"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("R31",Imm(64)), -Var("#3",Imm(64))), Def(Tid(696, "%000002b8"), - Attrs([Attr("address","0x6C4"), Attr("insn","mov x29, sp")]), - Var("R29",Imm(64)), Var("R31",Imm(64))), Def(Tid(704, "%000002c0"), - Attrs([Attr("address","0x6C8"), Attr("insn","str x19, [sp, #0x10]")]), - Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(16,64)),Var("R19",Imm(64)),LittleEndian(),64)), -Def(Tid(709, "%000002c5"), Attrs([Attr("address","0x6CC"), -Attr("insn","adrp x19, #69632")]), Var("R19",Imm(64)), Int(69632,64)), -Def(Tid(716, "%000002cc"), Attrs([Attr("address","0x6D0"), -Attr("insn","ldrb w0, [x19, #0x10]")]), Var("R0",Imm(64)), -UNSIGNED(64,Load(Var("mem",Mem(64,8)),PLUS(Var("R19",Imm(64)),Int(16,64)),LittleEndian(),8)))]), -Jmps([Goto(Tid(723, "%000002d3"), Attrs([Attr("address","0x6D4"), -Attr("insn","cbnz w0, #0x28")]), - NEQ(Extract(31,0,Var("R0",Imm(64))),Int(0,32)), -Direct(Tid(721, "%000002d1"))), Goto(Tid(1_591, "%00000637"), Attrs([]), - Int(1,1), Direct(Tid(884, "%00000374")))])), Blk(Tid(884, "%00000374"), - Attrs([Attr("address","0x6D8")]), Phis([]), Defs([Def(Tid(887, "%00000377"), - Attrs([Attr("address","0x6D8"), Attr("insn","adrp x0, #65536")]), - Var("R0",Imm(64)), Int(65536,64)), Def(Tid(894, "%0000037e"), - Attrs([Attr("address","0x6DC"), Attr("insn","ldr x0, [x0, #0xfe0]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(4064,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(900, "%00000384"), Attrs([Attr("address","0x6E0"), -Attr("insn","cbz x0, #0x10")]), EQ(Var("R0",Imm(64)),Int(0,64)), -Direct(Tid(898, "%00000382"))), Goto(Tid(1_592, "%00000638"), Attrs([]), - Int(1,1), Direct(Tid(923, "%0000039b")))])), Blk(Tid(923, "%0000039b"), - Attrs([Attr("address","0x6E4")]), Phis([]), Defs([Def(Tid(926, "%0000039e"), - Attrs([Attr("address","0x6E4"), Attr("insn","adrp x0, #69632")]), - Var("R0",Imm(64)), Int(69632,64)), Def(Tid(933, "%000003a5"), - Attrs([Attr("address","0x6E8"), Attr("insn","ldr x0, [x0, #0x8]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(938, "%000003aa"), Attrs([Attr("address","0x6EC"), -Attr("insn","bl #-0x11c")]), Var("R30",Imm(64)), Int(1776,64))]), -Jmps([Call(Tid(941, "%000003ad"), Attrs([Attr("address","0x6EC"), -Attr("insn","bl #-0x11c")]), Int(1,1), -(Direct(Tid(1_551, "@__cxa_finalize")),Direct(Tid(898, "%00000382"))))])), -Blk(Tid(898, "%00000382"), Attrs([Attr("address","0x6F0")]), Phis([]), -Defs([Def(Tid(906, "%0000038a"), Attrs([Attr("address","0x6F0"), -Attr("insn","bl #-0xa0")]), Var("R30",Imm(64)), Int(1780,64))]), -Jmps([Call(Tid(908, "%0000038c"), Attrs([Attr("address","0x6F0"), -Attr("insn","bl #-0xa0")]), Int(1,1), -(Direct(Tid(1_565, "@deregister_tm_clones")),Direct(Tid(910, "%0000038e"))))])), -Blk(Tid(910, "%0000038e"), Attrs([Attr("address","0x6F4")]), Phis([]), -Defs([Def(Tid(913, "%00000391"), Attrs([Attr("address","0x6F4"), -Attr("insn","mov w0, #0x1")]), Var("R0",Imm(64)), Int(1,64)), -Def(Tid(921, "%00000399"), Attrs([Attr("address","0x6F8"), -Attr("insn","strb w0, [x19, #0x10]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R19",Imm(64)),Int(16,64)),Extract(7,0,Var("R0",Imm(64))),LittleEndian(),8))]), -Jmps([Goto(Tid(1_593, "%00000639"), Attrs([]), Int(1,1), -Direct(Tid(721, "%000002d1")))])), Blk(Tid(721, "%000002d1"), - Attrs([Attr("address","0x6FC")]), Phis([]), Defs([Def(Tid(731, "%000002db"), - Attrs([Attr("address","0x6FC"), Attr("insn","ldr x19, [sp, #0x10]")]), - Var("R19",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(16,64)),LittleEndian(),64)), -Def(Tid(738, "%000002e2"), Attrs([Attr("address","0x700"), -Attr("insn","ldp x29, x30, [sp], #0x20")]), Var("R29",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(743, "%000002e7"), Attrs([Attr("address","0x700"), -Attr("insn","ldp x29, x30, [sp], #0x20")]), Var("R30",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(747, "%000002eb"), Attrs([Attr("address","0x700"), -Attr("insn","ldp x29, x30, [sp], #0x20")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(32,64)))]), Jmps([Call(Tid(752, "%000002f0"), - Attrs([Attr("address","0x704"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), Sub(Tid(1_556, "@__libc_start_main"), - Attrs([Attr("c.proto","signed (*)(signed (*)(signed , char** , char** );* main, signed , char** , \nvoid* auxv)"), -Attr("address","0x5C0"), Attr("stub","()")]), "__libc_start_main", - Args([Arg(Tid(1_604, "%00000644"), - Attrs([Attr("c.layout","**[ : 64]"), -Attr("c.data","Top:u64 ptr ptr"), -Attr("c.type","signed (*)(signed , char** , char** );*")]), - Var("__libc_start_main_main",Imm(64)), Var("R0",Imm(64)), In()), -Arg(Tid(1_605, "%00000645"), Attrs([Attr("c.layout","[signed : 32]"), -Attr("c.data","Top:u32"), Attr("c.type","signed")]), - Var("__libc_start_main_arg2",Imm(32)), LOW(32,Var("R1",Imm(64))), In()), -Arg(Tid(1_606, "%00000646"), Attrs([Attr("c.layout","**[char : 8]"), -Attr("c.data","Top:u8 ptr ptr"), Attr("c.type","char**")]), - Var("__libc_start_main_arg3",Imm(64)), Var("R2",Imm(64)), Both()), -Arg(Tid(1_607, "%00000647"), Attrs([Attr("c.layout","*[ : 8]"), -Attr("c.data","{} ptr"), Attr("c.type","void*")]), - Var("__libc_start_main_auxv",Imm(64)), Var("R3",Imm(64)), Both()), -Arg(Tid(1_608, "%00000648"), Attrs([Attr("c.layout","[signed : 32]"), -Attr("c.data","Top:u32"), Attr("c.type","signed")]), - Var("__libc_start_main_result",Imm(32)), LOW(32,Var("R0",Imm(64))), -Out())]), Blks([Blk(Tid(503, "@__libc_start_main"), - Attrs([Attr("address","0x5C0")]), Phis([]), -Defs([Def(Tid(1_165, "%0000048d"), Attrs([Attr("address","0x5C0"), -Attr("insn","adrp x16, #65536")]), Var("R16",Imm(64)), Int(65536,64)), -Def(Tid(1_172, "%00000494"), Attrs([Attr("address","0x5C4"), -Attr("insn","ldr x17, [x16, #0xfb0]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(4016,64)),LittleEndian(),64)), -Def(Tid(1_178, "%0000049a"), Attrs([Attr("address","0x5C8"), -Attr("insn","add x16, x16, #0xfb0")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(4016,64)))]), Jmps([Call(Tid(1_183, "%0000049f"), - Attrs([Attr("address","0x5CC"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), Sub(Tid(1_557, "@_fini"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x764")]), - "_fini", Args([Arg(Tid(1_609, "%00000649"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("_fini_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(31, "@_fini"), - Attrs([Attr("address","0x764")]), Phis([]), Defs([Def(Tid(37, "%00000025"), - Attrs([Attr("address","0x768"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("#0",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(18446744073709551600,64))), -Def(Tid(43, "%0000002b"), Attrs([Attr("address","0x768"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("#0",Imm(64)),Var("R29",Imm(64)),LittleEndian(),64)), -Def(Tid(49, "%00000031"), Attrs([Attr("address","0x768"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("#0",Imm(64)),Int(8,64)),Var("R30",Imm(64)),LittleEndian(),64)), -Def(Tid(53, "%00000035"), Attrs([Attr("address","0x768"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("R31",Imm(64)), -Var("#0",Imm(64))), Def(Tid(59, "%0000003b"), Attrs([Attr("address","0x76C"), -Attr("insn","mov x29, sp")]), Var("R29",Imm(64)), Var("R31",Imm(64))), -Def(Tid(66, "%00000042"), Attrs([Attr("address","0x770"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R29",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(71, "%00000047"), Attrs([Attr("address","0x770"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R30",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(75, "%0000004b"), Attrs([Attr("address","0x770"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(16,64)))]), Jmps([Call(Tid(80, "%00000050"), - Attrs([Attr("address","0x774"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), Sub(Tid(1_558, "@_init"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x580")]), - "_init", Args([Arg(Tid(1_610, "%0000064a"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("_init_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(1_373, "@_init"), - Attrs([Attr("address","0x580")]), Phis([]), -Defs([Def(Tid(1_379, "%00000563"), Attrs([Attr("address","0x584"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("#5",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(18446744073709551600,64))), -Def(Tid(1_385, "%00000569"), Attrs([Attr("address","0x584"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("#5",Imm(64)),Var("R29",Imm(64)),LittleEndian(),64)), -Def(Tid(1_391, "%0000056f"), Attrs([Attr("address","0x584"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("#5",Imm(64)),Int(8,64)),Var("R30",Imm(64)),LittleEndian(),64)), -Def(Tid(1_395, "%00000573"), Attrs([Attr("address","0x584"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("R31",Imm(64)), -Var("#5",Imm(64))), Def(Tid(1_401, "%00000579"), - Attrs([Attr("address","0x588"), Attr("insn","mov x29, sp")]), - Var("R29",Imm(64)), Var("R31",Imm(64))), Def(Tid(1_406, "%0000057e"), - Attrs([Attr("address","0x58C"), Attr("insn","bl #0xa8")]), - Var("R30",Imm(64)), Int(1424,64))]), Jmps([Call(Tid(1_408, "%00000580"), - Attrs([Attr("address","0x58C"), Attr("insn","bl #0xa8")]), Int(1,1), -(Direct(Tid(1_563, "@call_weak_fn")),Direct(Tid(1_410, "%00000582"))))])), -Blk(Tid(1_410, "%00000582"), Attrs([Attr("address","0x590")]), Phis([]), -Defs([Def(Tid(1_415, "%00000587"), Attrs([Attr("address","0x590"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R29",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(1_420, "%0000058c"), Attrs([Attr("address","0x590"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R30",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(1_424, "%00000590"), Attrs([Attr("address","0x590"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(16,64)))]), Jmps([Call(Tid(1_429, "%00000595"), - Attrs([Attr("address","0x594"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), Sub(Tid(1_559, "@_start"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x600"), -Attr("stub","()"), Attr("entry-point","()")]), "_start", - Args([Arg(Tid(1_611, "%0000064b"), Attrs([Attr("c.layout","[signed : 32]"), -Attr("c.data","Top:u32"), Attr("c.type","signed")]), - Var("_start_result",Imm(32)), LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(440, "@_start"), Attrs([Attr("address","0x600")]), Phis([]), -Defs([Def(Tid(445, "%000001bd"), Attrs([Attr("address","0x604"), -Attr("insn","mov x29, #0x0")]), Var("R29",Imm(64)), Int(0,64)), -Def(Tid(450, "%000001c2"), Attrs([Attr("address","0x608"), -Attr("insn","mov x30, #0x0")]), Var("R30",Imm(64)), Int(0,64)), -Def(Tid(456, "%000001c8"), Attrs([Attr("address","0x60C"), -Attr("insn","mov x5, x0")]), Var("R5",Imm(64)), Var("R0",Imm(64))), -Def(Tid(463, "%000001cf"), Attrs([Attr("address","0x610"), -Attr("insn","ldr x1, [sp]")]), Var("R1",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(469, "%000001d5"), Attrs([Attr("address","0x614"), -Attr("insn","add x2, sp, #0x8")]), Var("R2",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(8,64))), Def(Tid(475, "%000001db"), - Attrs([Attr("address","0x618"), Attr("insn","mov x6, sp")]), - Var("R6",Imm(64)), Var("R31",Imm(64))), Def(Tid(480, "%000001e0"), - Attrs([Attr("address","0x61C"), Attr("insn","adrp x0, #65536")]), - Var("R0",Imm(64)), Int(65536,64)), Def(Tid(487, "%000001e7"), - Attrs([Attr("address","0x620"), Attr("insn","ldr x0, [x0, #0xff0]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(4080,64)),LittleEndian(),64)), -Def(Tid(492, "%000001ec"), Attrs([Attr("address","0x624"), -Attr("insn","mov x3, #0x0")]), Var("R3",Imm(64)), Int(0,64)), -Def(Tid(497, "%000001f1"), Attrs([Attr("address","0x628"), -Attr("insn","mov x4, #0x0")]), Var("R4",Imm(64)), Int(0,64)), -Def(Tid(502, "%000001f6"), Attrs([Attr("address","0x62C"), -Attr("insn","bl #-0x6c")]), Var("R30",Imm(64)), Int(1584,64))]), -Jmps([Call(Tid(505, "%000001f9"), Attrs([Attr("address","0x62C"), -Attr("insn","bl #-0x6c")]), Int(1,1), -(Direct(Tid(1_556, "@__libc_start_main")),Direct(Tid(507, "%000001fb"))))])), -Blk(Tid(507, "%000001fb"), Attrs([Attr("address","0x630")]), Phis([]), -Defs([Def(Tid(510, "%000001fe"), Attrs([Attr("address","0x630"), -Attr("insn","bl #-0x40")]), Var("R30",Imm(64)), Int(1588,64))]), -Jmps([Call(Tid(513, "%00000201"), Attrs([Attr("address","0x630"), -Attr("insn","bl #-0x40")]), Int(1,1), -(Direct(Tid(1_562, "@abort")),Direct(Tid(1_594, "%0000063a"))))])), -Blk(Tid(1_594, "%0000063a"), Attrs([]), Phis([]), Defs([]), -Jmps([Call(Tid(1_595, "%0000063b"), Attrs([]), Int(1,1), -(Direct(Tid(1_563, "@call_weak_fn")),))]))])), Sub(Tid(1_562, "@abort"), - Attrs([Attr("noreturn","()"), Attr("c.proto","void (*)(void)"), -Attr("address","0x5F0"), Attr("stub","()")]), "abort", Args([]), -Blks([Blk(Tid(511, "@abort"), Attrs([Attr("address","0x5F0")]), Phis([]), -Defs([Def(Tid(1_231, "%000004cf"), Attrs([Attr("address","0x5F0"), -Attr("insn","adrp x16, #65536")]), Var("R16",Imm(64)), Int(65536,64)), -Def(Tid(1_238, "%000004d6"), Attrs([Attr("address","0x5F4"), -Attr("insn","ldr x17, [x16, #0xfc8]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(4040,64)),LittleEndian(),64)), -Def(Tid(1_244, "%000004dc"), Attrs([Attr("address","0x5F8"), -Attr("insn","add x16, x16, #0xfc8")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(4040,64)))]), Jmps([Call(Tid(1_249, "%000004e1"), - Attrs([Attr("address","0x5FC"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), Sub(Tid(1_563, "@call_weak_fn"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x634")]), - "call_weak_fn", Args([Arg(Tid(1_612, "%0000064c"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("call_weak_fn_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(515, "@call_weak_fn"), - Attrs([Attr("address","0x634")]), Phis([]), Defs([Def(Tid(518, "%00000206"), - Attrs([Attr("address","0x634"), Attr("insn","adrp x0, #65536")]), - Var("R0",Imm(64)), Int(65536,64)), Def(Tid(525, "%0000020d"), - Attrs([Attr("address","0x638"), Attr("insn","ldr x0, [x0, #0xfe8]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(4072,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(531, "%00000213"), Attrs([Attr("address","0x63C"), -Attr("insn","cbz x0, #0x8")]), EQ(Var("R0",Imm(64)),Int(0,64)), -Direct(Tid(529, "%00000211"))), Goto(Tid(1_596, "%0000063c"), Attrs([]), - Int(1,1), Direct(Tid(1_003, "%000003eb")))])), Blk(Tid(529, "%00000211"), - Attrs([Attr("address","0x644")]), Phis([]), Defs([]), -Jmps([Call(Tid(537, "%00000219"), Attrs([Attr("address","0x644"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))])), -Blk(Tid(1_003, "%000003eb"), Attrs([Attr("address","0x640")]), Phis([]), -Defs([]), Jmps([Goto(Tid(1_006, "%000003ee"), Attrs([Attr("address","0x640"), -Attr("insn","b #-0x60")]), Int(1,1), -Direct(Tid(1_004, "@__gmon_start__")))])), Blk(Tid(1_004, "@__gmon_start__"), - Attrs([Attr("address","0x5E0")]), Phis([]), -Defs([Def(Tid(1_209, "%000004b9"), Attrs([Attr("address","0x5E0"), -Attr("insn","adrp x16, #65536")]), Var("R16",Imm(64)), Int(65536,64)), -Def(Tid(1_216, "%000004c0"), Attrs([Attr("address","0x5E4"), -Attr("insn","ldr x17, [x16, #0xfc0]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(4032,64)),LittleEndian(),64)), -Def(Tid(1_222, "%000004c6"), Attrs([Attr("address","0x5E8"), -Attr("insn","add x16, x16, #0xfc0")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(4032,64)))]), Jmps([Call(Tid(1_227, "%000004cb"), - Attrs([Attr("address","0x5EC"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), -Sub(Tid(1_565, "@deregister_tm_clones"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x650")]), - "deregister_tm_clones", Args([Arg(Tid(1_613, "%0000064d"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("deregister_tm_clones_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(543, "@deregister_tm_clones"), - Attrs([Attr("address","0x650")]), Phis([]), Defs([Def(Tid(546, "%00000222"), - Attrs([Attr("address","0x650"), Attr("insn","adrp x0, #69632")]), - Var("R0",Imm(64)), Int(69632,64)), Def(Tid(552, "%00000228"), - Attrs([Attr("address","0x654"), Attr("insn","add x0, x0, #0x10")]), - Var("R0",Imm(64)), PLUS(Var("R0",Imm(64)),Int(16,64))), -Def(Tid(557, "%0000022d"), Attrs([Attr("address","0x658"), -Attr("insn","adrp x1, #69632")]), Var("R1",Imm(64)), Int(69632,64)), -Def(Tid(563, "%00000233"), Attrs([Attr("address","0x65C"), -Attr("insn","add x1, x1, #0x10")]), Var("R1",Imm(64)), -PLUS(Var("R1",Imm(64)),Int(16,64))), Def(Tid(569, "%00000239"), - Attrs([Attr("address","0x660"), Attr("insn","cmp x1, x0")]), - Var("#1",Imm(64)), NOT(Var("R0",Imm(64)))), Def(Tid(574, "%0000023e"), - Attrs([Attr("address","0x660"), Attr("insn","cmp x1, x0")]), - Var("#2",Imm(64)), PLUS(Var("R1",Imm(64)),NOT(Var("R0",Imm(64))))), -Def(Tid(580, "%00000244"), Attrs([Attr("address","0x660"), -Attr("insn","cmp x1, x0")]), Var("VF",Imm(1)), -NEQ(SIGNED(65,PLUS(Var("#2",Imm(64)),Int(1,64))),PLUS(PLUS(SIGNED(65,Var("R1",Imm(64))),SIGNED(65,Var("#1",Imm(64)))),Int(1,65)))), -Def(Tid(586, "%0000024a"), Attrs([Attr("address","0x660"), -Attr("insn","cmp x1, x0")]), Var("CF",Imm(1)), -NEQ(UNSIGNED(65,PLUS(Var("#2",Imm(64)),Int(1,64))),PLUS(PLUS(UNSIGNED(65,Var("R1",Imm(64))),UNSIGNED(65,Var("#1",Imm(64)))),Int(1,65)))), -Def(Tid(590, "%0000024e"), Attrs([Attr("address","0x660"), -Attr("insn","cmp x1, x0")]), Var("ZF",Imm(1)), -EQ(PLUS(Var("#2",Imm(64)),Int(1,64)),Int(0,64))), Def(Tid(594, "%00000252"), - Attrs([Attr("address","0x660"), Attr("insn","cmp x1, x0")]), - Var("NF",Imm(1)), Extract(63,63,PLUS(Var("#2",Imm(64)),Int(1,64))))]), -Jmps([Goto(Tid(600, "%00000258"), Attrs([Attr("address","0x664"), -Attr("insn","b.eq #0x18")]), EQ(Var("ZF",Imm(1)),Int(1,1)), -Direct(Tid(598, "%00000256"))), Goto(Tid(1_597, "%0000063d"), Attrs([]), - Int(1,1), Direct(Tid(973, "%000003cd")))])), Blk(Tid(973, "%000003cd"), - Attrs([Attr("address","0x668")]), Phis([]), Defs([Def(Tid(976, "%000003d0"), - Attrs([Attr("address","0x668"), Attr("insn","adrp x1, #65536")]), - Var("R1",Imm(64)), Int(65536,64)), Def(Tid(983, "%000003d7"), - Attrs([Attr("address","0x66C"), Attr("insn","ldr x1, [x1, #0xfd8]")]), - Var("R1",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R1",Imm(64)),Int(4056,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(988, "%000003dc"), Attrs([Attr("address","0x670"), -Attr("insn","cbz x1, #0xc")]), EQ(Var("R1",Imm(64)),Int(0,64)), -Direct(Tid(598, "%00000256"))), Goto(Tid(1_598, "%0000063e"), Attrs([]), - Int(1,1), Direct(Tid(992, "%000003e0")))])), Blk(Tid(598, "%00000256"), - Attrs([Attr("address","0x67C")]), Phis([]), Defs([]), -Jmps([Call(Tid(606, "%0000025e"), Attrs([Attr("address","0x67C"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))])), -Blk(Tid(992, "%000003e0"), Attrs([Attr("address","0x674")]), Phis([]), -Defs([Def(Tid(996, "%000003e4"), Attrs([Attr("address","0x674"), -Attr("insn","mov x16, x1")]), Var("R16",Imm(64)), Var("R1",Imm(64)))]), -Jmps([Call(Tid(1_001, "%000003e9"), Attrs([Attr("address","0x678"), -Attr("insn","br x16")]), Int(1,1), (Indirect(Var("R16",Imm(64))),))]))])), -Sub(Tid(1_568, "@frame_dummy"), Attrs([Attr("c.proto","signed (*)(void)"), -Attr("address","0x710")]), "frame_dummy", Args([Arg(Tid(1_614, "%0000064e"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("frame_dummy_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(758, "@frame_dummy"), - Attrs([Attr("address","0x710")]), Phis([]), Defs([]), -Jmps([Call(Tid(760, "%000002f8"), Attrs([Attr("address","0x710"), -Attr("insn","b #-0x90")]), Int(1,1), -(Direct(Tid(1_570, "@register_tm_clones")),))]))])), Sub(Tid(1_569, "@main"), - Attrs([Attr("c.proto","signed (*)(signed argc, const char** argv)"), -Attr("address","0x714")]), "main", Args([Arg(Tid(1_615, "%0000064f"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("main_argc",Imm(32)), -LOW(32,Var("R0",Imm(64))), In()), Arg(Tid(1_616, "%00000650"), - Attrs([Attr("c.layout","**[char : 8]"), Attr("c.data","Top:u8 ptr ptr"), -Attr("c.type"," const char**")]), Var("main_argv",Imm(64)), -Var("R1",Imm(64)), Both()), Arg(Tid(1_617, "%00000651"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("main_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(762, "@main"), - Attrs([Attr("address","0x714")]), Phis([]), Defs([Def(Tid(766, "%000002fe"), - Attrs([Attr("address","0x714"), Attr("insn","sub sp, sp, #0x10")]), - Var("R31",Imm(64)), PLUS(Var("R31",Imm(64)),Int(18446744073709551600,64))), -Def(Tid(774, "%00000306"), Attrs([Attr("address","0x718"), -Attr("insn","str w0, [sp, #0xc]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(12,64)),Extract(31,0,Var("R0",Imm(64))),LittleEndian(),32)), -Def(Tid(779, "%0000030b"), Attrs([Attr("address","0x71C"), -Attr("insn","adrp x0, #69632")]), Var("R0",Imm(64)), Int(69632,64)), -Def(Tid(785, "%00000311"), Attrs([Attr("address","0x720"), -Attr("insn","add x0, x0, #0x18")]), Var("R0",Imm(64)), -PLUS(Var("R0",Imm(64)),Int(24,64))), Def(Tid(790, "%00000316"), - Attrs([Attr("address","0x724"), Attr("insn","mov w1, #0x1")]), - Var("R1",Imm(64)), Int(1,64)), Def(Tid(798, "%0000031e"), - Attrs([Attr("address","0x728"), Attr("insn","str w1, [x0]")]), - Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("R0",Imm(64)),Extract(31,0,Var("R1",Imm(64))),LittleEndian(),32)), -Def(Tid(803, "%00000323"), Attrs([Attr("address","0x72C"), -Attr("insn","adrp x0, #69632")]), Var("R0",Imm(64)), Int(69632,64)), -Def(Tid(809, "%00000329"), Attrs([Attr("address","0x730"), -Attr("insn","add x0, x0, #0x14")]), Var("R0",Imm(64)), -PLUS(Var("R0",Imm(64)),Int(20,64))), Def(Tid(816, "%00000330"), - Attrs([Attr("address","0x734"), Attr("insn","ldr w1, [sp, #0xc]")]), - Var("R1",Imm(64)), -UNSIGNED(64,Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(12,64)),LittleEndian(),32))), -Def(Tid(824, "%00000338"), Attrs([Attr("address","0x738"), -Attr("insn","str w1, [x0]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("R0",Imm(64)),Extract(31,0,Var("R1",Imm(64))),LittleEndian(),32)), -Def(Tid(829, "%0000033d"), Attrs([Attr("address","0x73C"), -Attr("insn","adrp x0, #69632")]), Var("R0",Imm(64)), Int(69632,64)), -Def(Tid(835, "%00000343"), Attrs([Attr("address","0x740"), -Attr("insn","add x0, x0, #0x14")]), Var("R0",Imm(64)), -PLUS(Var("R0",Imm(64)),Int(20,64))), Def(Tid(842, "%0000034a"), - Attrs([Attr("address","0x744"), Attr("insn","str wzr, [x0]")]), - Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("R0",Imm(64)),Int(0,32),LittleEndian(),32)), -Def(Tid(847, "%0000034f"), Attrs([Attr("address","0x748"), -Attr("insn","adrp x0, #69632")]), Var("R0",Imm(64)), Int(69632,64)), -Def(Tid(853, "%00000355"), Attrs([Attr("address","0x74C"), -Attr("insn","add x0, x0, #0x18")]), Var("R0",Imm(64)), -PLUS(Var("R0",Imm(64)),Int(24,64))), Def(Tid(858, "%0000035a"), - Attrs([Attr("address","0x750"), Attr("insn","mov w1, #0x2")]), - Var("R1",Imm(64)), Int(2,64)), Def(Tid(866, "%00000362"), - Attrs([Attr("address","0x754"), Attr("insn","str w1, [x0]")]), - Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("R0",Imm(64)),Extract(31,0,Var("R1",Imm(64))),LittleEndian(),32)), -Def(Tid(871, "%00000367"), Attrs([Attr("address","0x758"), -Attr("insn","mov w0, #0x0")]), Var("R0",Imm(64)), Int(0,64)), -Def(Tid(877, "%0000036d"), Attrs([Attr("address","0x75C"), -Attr("insn","add sp, sp, #0x10")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(16,64)))]), Jmps([Call(Tid(882, "%00000372"), - Attrs([Attr("address","0x760"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), -Sub(Tid(1_570, "@register_tm_clones"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x680")]), - "register_tm_clones", Args([Arg(Tid(1_618, "%00000652"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("register_tm_clones_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(608, "@register_tm_clones"), Attrs([Attr("address","0x680")]), - Phis([]), Defs([Def(Tid(611, "%00000263"), Attrs([Attr("address","0x680"), -Attr("insn","adrp x0, #69632")]), Var("R0",Imm(64)), Int(69632,64)), -Def(Tid(617, "%00000269"), Attrs([Attr("address","0x684"), -Attr("insn","add x0, x0, #0x10")]), Var("R0",Imm(64)), -PLUS(Var("R0",Imm(64)),Int(16,64))), Def(Tid(622, "%0000026e"), - Attrs([Attr("address","0x688"), Attr("insn","adrp x1, #69632")]), - Var("R1",Imm(64)), Int(69632,64)), Def(Tid(628, "%00000274"), - Attrs([Attr("address","0x68C"), Attr("insn","add x1, x1, #0x10")]), - Var("R1",Imm(64)), PLUS(Var("R1",Imm(64)),Int(16,64))), -Def(Tid(635, "%0000027b"), Attrs([Attr("address","0x690"), -Attr("insn","sub x1, x1, x0")]), Var("R1",Imm(64)), -PLUS(PLUS(Var("R1",Imm(64)),NOT(Var("R0",Imm(64)))),Int(1,64))), -Def(Tid(641, "%00000281"), Attrs([Attr("address","0x694"), -Attr("insn","lsr x2, x1, #63")]), Var("R2",Imm(64)), -Concat(Int(0,63),Extract(63,63,Var("R1",Imm(64))))), -Def(Tid(648, "%00000288"), Attrs([Attr("address","0x698"), -Attr("insn","add x1, x2, x1, asr #3")]), Var("R1",Imm(64)), -PLUS(Var("R2",Imm(64)),ARSHIFT(Var("R1",Imm(64)),Int(3,3)))), -Def(Tid(654, "%0000028e"), Attrs([Attr("address","0x69C"), -Attr("insn","asr x1, x1, #1")]), Var("R1",Imm(64)), -SIGNED(64,Extract(63,1,Var("R1",Imm(64)))))]), -Jmps([Goto(Tid(660, "%00000294"), Attrs([Attr("address","0x6A0"), -Attr("insn","cbz x1, #0x18")]), EQ(Var("R1",Imm(64)),Int(0,64)), -Direct(Tid(658, "%00000292"))), Goto(Tid(1_599, "%0000063f"), Attrs([]), - Int(1,1), Direct(Tid(943, "%000003af")))])), Blk(Tid(943, "%000003af"), - Attrs([Attr("address","0x6A4")]), Phis([]), Defs([Def(Tid(946, "%000003b2"), - Attrs([Attr("address","0x6A4"), Attr("insn","adrp x2, #65536")]), - Var("R2",Imm(64)), Int(65536,64)), Def(Tid(953, "%000003b9"), - Attrs([Attr("address","0x6A8"), Attr("insn","ldr x2, [x2, #0xff8]")]), - Var("R2",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R2",Imm(64)),Int(4088,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(958, "%000003be"), Attrs([Attr("address","0x6AC"), -Attr("insn","cbz x2, #0xc")]), EQ(Var("R2",Imm(64)),Int(0,64)), -Direct(Tid(658, "%00000292"))), Goto(Tid(1_600, "%00000640"), Attrs([]), - Int(1,1), Direct(Tid(962, "%000003c2")))])), Blk(Tid(658, "%00000292"), - Attrs([Attr("address","0x6B8")]), Phis([]), Defs([]), -Jmps([Call(Tid(666, "%0000029a"), Attrs([Attr("address","0x6B8"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))])), -Blk(Tid(962, "%000003c2"), Attrs([Attr("address","0x6B0")]), Phis([]), -Defs([Def(Tid(966, "%000003c6"), Attrs([Attr("address","0x6B0"), -Attr("insn","mov x16, x2")]), Var("R16",Imm(64)), Var("R2",Imm(64)))]), -Jmps([Call(Tid(971, "%000003cb"), Attrs([Attr("address","0x6B4"), -Attr("insn","br x16")]), Int(1,1), -(Indirect(Var("R16",Imm(64))),))]))]))]))) \ No newline at end of file diff --git a/src/test/correct/basic_sec_policy_write/gcc/basic_sec_policy_write.bir b/src/test/correct/basic_sec_policy_write/gcc/basic_sec_policy_write.bir deleted file mode 100644 index 649276776..000000000 --- a/src/test/correct/basic_sec_policy_write/gcc/basic_sec_policy_write.bir +++ /dev/null @@ -1,242 +0,0 @@ -00000641: program -0000060f: sub __cxa_finalize(__cxa_finalize_result) -00000642: __cxa_finalize_result :: out u32 = low:32[R0] - -000003ab: -000004a3: R16 := 0x10000 -000004aa: R17 := mem[R16 + 0xFB8, el]:u64 -000004b0: R16 := R16 + 0xFB8 -000004b5: call R17 with noreturn - -00000610: sub __do_global_dtors_aux(__do_global_dtors_aux_result) -00000643: __do_global_dtors_aux_result :: out u32 = low:32[R0] - -0000029e: -000002a2: #3 := R31 - 0x20 -000002a8: mem := mem with [#3, el]:u64 <- R29 -000002ae: mem := mem with [#3 + 8, el]:u64 <- R30 -000002b2: R31 := #3 -000002b8: R29 := R31 -000002c0: mem := mem with [R31 + 0x10, el]:u64 <- R19 -000002c5: R19 := 0x11000 -000002cc: R0 := pad:64[mem[R19 + 0x10]] -000002d3: when 31:0[R0] <> 0 goto %000002d1 -00000637: goto %00000374 - -00000374: -00000377: R0 := 0x10000 -0000037e: R0 := mem[R0 + 0xFE0, el]:u64 -00000384: when R0 = 0 goto %00000382 -00000638: goto %0000039b - -0000039b: -0000039e: R0 := 0x11000 -000003a5: R0 := mem[R0 + 8, el]:u64 -000003aa: R30 := 0x6F0 -000003ad: call @__cxa_finalize with return %00000382 - -00000382: -0000038a: R30 := 0x6F4 -0000038c: call @deregister_tm_clones with return %0000038e - -0000038e: -00000391: R0 := 1 -00000399: mem := mem with [R19 + 0x10] <- 7:0[R0] -00000639: goto %000002d1 - -000002d1: -000002db: R19 := mem[R31 + 0x10, el]:u64 -000002e2: R29 := mem[R31, el]:u64 -000002e7: R30 := mem[R31 + 8, el]:u64 -000002eb: R31 := R31 + 0x20 -000002f0: call R30 with noreturn - -00000614: sub __libc_start_main(__libc_start_main_main, __libc_start_main_arg2, __libc_start_main_arg3, __libc_start_main_auxv, __libc_start_main_result) -00000644: __libc_start_main_main :: in u64 = R0 -00000645: __libc_start_main_arg2 :: in u32 = low:32[R1] -00000646: __libc_start_main_arg3 :: in out u64 = R2 -00000647: __libc_start_main_auxv :: in out u64 = R3 -00000648: __libc_start_main_result :: out u32 = low:32[R0] - -000001f7: -0000048d: R16 := 0x10000 -00000494: R17 := mem[R16 + 0xFB0, el]:u64 -0000049a: R16 := R16 + 0xFB0 -0000049f: call R17 with noreturn - -00000615: sub _fini(_fini_result) -00000649: _fini_result :: out u32 = low:32[R0] - -0000001f: -00000025: #0 := R31 - 0x10 -0000002b: mem := mem with [#0, el]:u64 <- R29 -00000031: mem := mem with [#0 + 8, el]:u64 <- R30 -00000035: R31 := #0 -0000003b: R29 := R31 -00000042: R29 := mem[R31, el]:u64 -00000047: R30 := mem[R31 + 8, el]:u64 -0000004b: R31 := R31 + 0x10 -00000050: call R30 with noreturn - -00000616: sub _init(_init_result) -0000064a: _init_result :: out u32 = low:32[R0] - -0000055d: -00000563: #5 := R31 - 0x10 -00000569: mem := mem with [#5, el]:u64 <- R29 -0000056f: mem := mem with [#5 + 8, el]:u64 <- R30 -00000573: R31 := #5 -00000579: R29 := R31 -0000057e: R30 := 0x590 -00000580: call @call_weak_fn with return %00000582 - -00000582: -00000587: R29 := mem[R31, el]:u64 -0000058c: R30 := mem[R31 + 8, el]:u64 -00000590: R31 := R31 + 0x10 -00000595: call R30 with noreturn - -00000617: sub _start(_start_result) -0000064b: _start_result :: out u32 = low:32[R0] - -000001b8: -000001bd: R29 := 0 -000001c2: R30 := 0 -000001c8: R5 := R0 -000001cf: R1 := mem[R31, el]:u64 -000001d5: R2 := R31 + 8 -000001db: R6 := R31 -000001e0: R0 := 0x10000 -000001e7: R0 := mem[R0 + 0xFF0, el]:u64 -000001ec: R3 := 0 -000001f1: R4 := 0 -000001f6: R30 := 0x630 -000001f9: call @__libc_start_main with return %000001fb - -000001fb: -000001fe: R30 := 0x634 -00000201: call @abort with return %0000063a - -0000063a: -0000063b: call @call_weak_fn with noreturn - -0000061a: sub abort() - - -000001ff: -000004cf: R16 := 0x10000 -000004d6: R17 := mem[R16 + 0xFC8, el]:u64 -000004dc: R16 := R16 + 0xFC8 -000004e1: call R17 with noreturn - -0000061b: sub call_weak_fn(call_weak_fn_result) -0000064c: call_weak_fn_result :: out u32 = low:32[R0] - -00000203: -00000206: R0 := 0x10000 -0000020d: R0 := mem[R0 + 0xFE8, el]:u64 -00000213: when R0 = 0 goto %00000211 -0000063c: goto %000003eb - -00000211: -00000219: call R30 with noreturn - -000003eb: -000003ee: goto @__gmon_start__ - -000003ec: -000004b9: R16 := 0x10000 -000004c0: R17 := mem[R16 + 0xFC0, el]:u64 -000004c6: R16 := R16 + 0xFC0 -000004cb: call R17 with noreturn - -0000061d: sub deregister_tm_clones(deregister_tm_clones_result) -0000064d: deregister_tm_clones_result :: out u32 = low:32[R0] - -0000021f: -00000222: R0 := 0x11000 -00000228: R0 := R0 + 0x10 -0000022d: R1 := 0x11000 -00000233: R1 := R1 + 0x10 -00000239: #1 := ~R0 -0000023e: #2 := R1 + ~R0 -00000244: VF := extend:65[#2 + 1] <> extend:65[R1] + extend:65[#1] + 1 -0000024a: CF := pad:65[#2 + 1] <> pad:65[R1] + pad:65[#1] + 1 -0000024e: ZF := #2 + 1 = 0 -00000252: NF := 63:63[#2 + 1] -00000258: when ZF goto %00000256 -0000063d: goto %000003cd - -000003cd: -000003d0: R1 := 0x10000 -000003d7: R1 := mem[R1 + 0xFD8, el]:u64 -000003dc: when R1 = 0 goto %00000256 -0000063e: goto %000003e0 - -00000256: -0000025e: call R30 with noreturn - -000003e0: -000003e4: R16 := R1 -000003e9: call R16 with noreturn - -00000620: sub frame_dummy(frame_dummy_result) -0000064e: frame_dummy_result :: out u32 = low:32[R0] - -000002f6: -000002f8: call @register_tm_clones with noreturn - -00000621: sub main(main_argc, main_argv, main_result) -0000064f: main_argc :: in u32 = low:32[R0] -00000650: main_argv :: in out u64 = R1 -00000651: main_result :: out u32 = low:32[R0] - -000002fa: -000002fe: R31 := R31 - 0x10 -00000306: mem := mem with [R31 + 0xC, el]:u32 <- 31:0[R0] -0000030b: R0 := 0x11000 -00000311: R0 := R0 + 0x18 -00000316: R1 := 1 -0000031e: mem := mem with [R0, el]:u32 <- 31:0[R1] -00000323: R0 := 0x11000 -00000329: R0 := R0 + 0x14 -00000330: R1 := pad:64[mem[R31 + 0xC, el]:u32] -00000338: mem := mem with [R0, el]:u32 <- 31:0[R1] -0000033d: R0 := 0x11000 -00000343: R0 := R0 + 0x14 -0000034a: mem := mem with [R0, el]:u32 <- 0 -0000034f: R0 := 0x11000 -00000355: R0 := R0 + 0x18 -0000035a: R1 := 2 -00000362: mem := mem with [R0, el]:u32 <- 31:0[R1] -00000367: R0 := 0 -0000036d: R31 := R31 + 0x10 -00000372: call R30 with noreturn - -00000622: sub register_tm_clones(register_tm_clones_result) -00000652: register_tm_clones_result :: out u32 = low:32[R0] - -00000260: -00000263: R0 := 0x11000 -00000269: R0 := R0 + 0x10 -0000026e: R1 := 0x11000 -00000274: R1 := R1 + 0x10 -0000027b: R1 := R1 + ~R0 + 1 -00000281: R2 := 0.63:63[R1] -00000288: R1 := R2 + (R1 ~>> 3) -0000028e: R1 := extend:64[63:1[R1]] -00000294: when R1 = 0 goto %00000292 -0000063f: goto %000003af - -000003af: -000003b2: R2 := 0x10000 -000003b9: R2 := mem[R2 + 0xFF8, el]:u64 -000003be: when R2 = 0 goto %00000292 -00000640: goto %000003c2 - -00000292: -0000029a: call R30 with noreturn - -000003c2: -000003c6: R16 := R2 -000003cb: call R16 with noreturn diff --git a/src/test/correct/basic_sec_policy_write/gcc/basic_sec_policy_write.expected b/src/test/correct/basic_sec_policy_write/gcc/basic_sec_policy_write.expected index c36db8a51..ed52dbe68 100644 --- a/src/test/correct/basic_sec_policy_write/gcc/basic_sec_policy_write.expected +++ b/src/test/correct/basic_sec_policy_write/gcc/basic_sec_policy_write.expected @@ -73,7 +73,7 @@ implementation {:extern} guarantee_reflexive() assert ((memory_load32_le(mem, $z_addr) != 0bv32) ==> (memory_load32_le(mem, $z_addr) != 0bv32)); } -procedure main_1812(); +procedure main(); modifies Gamma_R0, Gamma_R1, Gamma_R31, Gamma_mem, Gamma_stack, R0, R1, R31, mem, stack; requires (Gamma_R0 == false); free requires (memory_load64_le(mem, 69632bv64) == 0bv64); @@ -91,11 +91,11 @@ procedure main_1812(); free ensures (memory_load64_le(mem, 69616bv64) == 1812bv64); free ensures (memory_load64_le(mem, 69640bv64) == 69640bv64); -implementation main_1812() +implementation main() { - var Gamma_load18: bool; + var $load$18: bv32; + var Gamma_$load$18: bool; var Gamma_x_old: bool; - var load18: bv32; var z_old: bv32; lmain: assume {:captureState "lmain"} true; @@ -106,21 +106,21 @@ implementation main_1812() R0, Gamma_R0 := bvadd64(R0, 24bv64), Gamma_R0; R1, Gamma_R1 := 1bv64, true; call rely(); + assert (L(mem, R0) ==> Gamma_R1); z_old := memory_load32_le(mem, $z_addr); Gamma_x_old := (gamma_load32(Gamma_mem, $x_addr) || L(mem, $x_addr)); - assert (L(mem, R0) ==> Gamma_R1); mem, Gamma_mem := memory_store32_le(mem, R0, R1[32:0]), gamma_store32(Gamma_mem, R0, Gamma_R1); assert ((R0 == $z_addr) ==> (L(mem, $x_addr) ==> Gamma_x_old)); assert ((z_old != 0bv32) ==> (memory_load32_le(mem, $z_addr) != 0bv32)); assume {:captureState "%0000031e"} true; R0, Gamma_R0 := 69632bv64, true; R0, Gamma_R0 := bvadd64(R0, 20bv64), Gamma_R0; - load18, Gamma_load18 := memory_load32_le(stack, bvadd64(R31, 12bv64)), gamma_load32(Gamma_stack, bvadd64(R31, 12bv64)); - R1, Gamma_R1 := zero_extend32_32(load18), Gamma_load18; + $load$18, Gamma_$load$18 := memory_load32_le(stack, bvadd64(R31, 12bv64)), gamma_load32(Gamma_stack, bvadd64(R31, 12bv64)); + R1, Gamma_R1 := zero_extend32_32($load$18), Gamma_$load$18; call rely(); + assert (L(mem, R0) ==> Gamma_R1); z_old := memory_load32_le(mem, $z_addr); Gamma_x_old := (gamma_load32(Gamma_mem, $x_addr) || L(mem, $x_addr)); - assert (L(mem, R0) ==> Gamma_R1); mem, Gamma_mem := memory_store32_le(mem, R0, R1[32:0]), gamma_store32(Gamma_mem, R0, Gamma_R1); assert ((R0 == $z_addr) ==> (L(mem, $x_addr) ==> Gamma_x_old)); assert ((z_old != 0bv32) ==> (memory_load32_le(mem, $z_addr) != 0bv32)); @@ -128,9 +128,9 @@ implementation main_1812() R0, Gamma_R0 := 69632bv64, true; R0, Gamma_R0 := bvadd64(R0, 20bv64), Gamma_R0; call rely(); + assert (L(mem, R0) ==> true); z_old := memory_load32_le(mem, $z_addr); Gamma_x_old := (gamma_load32(Gamma_mem, $x_addr) || L(mem, $x_addr)); - assert (L(mem, R0) ==> true); mem, Gamma_mem := memory_store32_le(mem, R0, 0bv32), gamma_store32(Gamma_mem, R0, true); assert ((R0 == $z_addr) ==> (L(mem, $x_addr) ==> Gamma_x_old)); assert ((z_old != 0bv32) ==> (memory_load32_le(mem, $z_addr) != 0bv32)); @@ -139,18 +139,18 @@ implementation main_1812() R0, Gamma_R0 := bvadd64(R0, 24bv64), Gamma_R0; R1, Gamma_R1 := 2bv64, true; call rely(); + assert (L(mem, R0) ==> Gamma_R1); z_old := memory_load32_le(mem, $z_addr); Gamma_x_old := (gamma_load32(Gamma_mem, $x_addr) || L(mem, $x_addr)); - assert (L(mem, R0) ==> Gamma_R1); mem, Gamma_mem := memory_store32_le(mem, R0, R1[32:0]), gamma_store32(Gamma_mem, R0, Gamma_R1); assert ((R0 == $z_addr) ==> (L(mem, $x_addr) ==> Gamma_x_old)); assert ((z_old != 0bv32) ==> (memory_load32_le(mem, $z_addr) != 0bv32)); assume {:captureState "%00000362"} true; R0, Gamma_R0 := 0bv64, true; R31, Gamma_R31 := bvadd64(R31, 16bv64), Gamma_R31; - goto main_1812_basil_return; - main_1812_basil_return: - assume {:captureState "main_1812_basil_return"} true; + goto main_basil_return; + main_basil_return: + assume {:captureState "main_basil_return"} true; return; } diff --git a/src/test/correct/basic_sec_policy_write/gcc/basic_sec_policy_write.gts b/src/test/correct/basic_sec_policy_write/gcc/basic_sec_policy_write.gts deleted file mode 100644 index da114c0c7..000000000 Binary files a/src/test/correct/basic_sec_policy_write/gcc/basic_sec_policy_write.gts and /dev/null differ diff --git a/src/test/correct/basic_sec_policy_write/gcc/basic_sec_policy_write.md5sum b/src/test/correct/basic_sec_policy_write/gcc/basic_sec_policy_write.md5sum new file mode 100644 index 000000000..085ab9729 --- /dev/null +++ b/src/test/correct/basic_sec_policy_write/gcc/basic_sec_policy_write.md5sum @@ -0,0 +1,5 @@ +7f32eccc4de65f8307217bcc7ed93fb3 correct/basic_sec_policy_write/gcc/a.out +6bad66db04bb76bbd29440812df744c0 correct/basic_sec_policy_write/gcc/basic_sec_policy_write.adt +4a2cb2561a73389bb1ef568e7e489b81 correct/basic_sec_policy_write/gcc/basic_sec_policy_write.bir +47e4cc9508d285951ff70eea224528c1 correct/basic_sec_policy_write/gcc/basic_sec_policy_write.relf +784f0b29f4e657c852289923c67efcd6 correct/basic_sec_policy_write/gcc/basic_sec_policy_write.gts diff --git a/src/test/correct/basic_sec_policy_write/gcc/basic_sec_policy_write.relf b/src/test/correct/basic_sec_policy_write/gcc/basic_sec_policy_write.relf deleted file mode 100644 index f49ff649a..000000000 --- a/src/test/correct/basic_sec_policy_write/gcc/basic_sec_policy_write.relf +++ /dev/null @@ -1,122 +0,0 @@ - -Relocation section '.rela.dyn' at offset 0x460 contains 8 entries: - Offset Info Type Symbol's Value Symbol's Name + Addend -0000000000010d98 0000000000000403 R_AARCH64_RELATIVE 710 -0000000000010da0 0000000000000403 R_AARCH64_RELATIVE 6c0 -0000000000010ff0 0000000000000403 R_AARCH64_RELATIVE 714 -0000000000011008 0000000000000403 R_AARCH64_RELATIVE 11008 -0000000000010fd8 0000000400000401 R_AARCH64_GLOB_DAT 0000000000000000 _ITM_deregisterTMCloneTable + 0 -0000000000010fe0 0000000500000401 R_AARCH64_GLOB_DAT 0000000000000000 __cxa_finalize@GLIBC_2.17 + 0 -0000000000010fe8 0000000600000401 R_AARCH64_GLOB_DAT 0000000000000000 __gmon_start__ + 0 -0000000000010ff8 0000000800000401 R_AARCH64_GLOB_DAT 0000000000000000 _ITM_registerTMCloneTable + 0 - -Relocation section '.rela.plt' at offset 0x520 contains 4 entries: - Offset Info Type Symbol's Value Symbol's Name + Addend -0000000000010fb0 0000000300000402 R_AARCH64_JUMP_SLOT 0000000000000000 __libc_start_main@GLIBC_2.34 + 0 -0000000000010fb8 0000000500000402 R_AARCH64_JUMP_SLOT 0000000000000000 __cxa_finalize@GLIBC_2.17 + 0 -0000000000010fc0 0000000600000402 R_AARCH64_JUMP_SLOT 0000000000000000 __gmon_start__ + 0 -0000000000010fc8 0000000700000402 R_AARCH64_JUMP_SLOT 0000000000000000 abort@GLIBC_2.17 + 0 - -Symbol table '.dynsym' contains 9 entries: - Num: Value Size Type Bind Vis Ndx Name - 0: 0000000000000000 0 NOTYPE LOCAL DEFAULT UND - 1: 0000000000000580 0 SECTION LOCAL DEFAULT 11 .init - 2: 0000000000011000 0 SECTION LOCAL DEFAULT 22 .data - 3: 0000000000000000 0 FUNC GLOBAL DEFAULT UND __libc_start_main@GLIBC_2.34 (2) - 4: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_deregisterTMCloneTable - 5: 0000000000000000 0 FUNC WEAK DEFAULT UND __cxa_finalize@GLIBC_2.17 (3) - 6: 0000000000000000 0 NOTYPE WEAK DEFAULT UND __gmon_start__ - 7: 0000000000000000 0 FUNC GLOBAL DEFAULT UND abort@GLIBC_2.17 (3) - 8: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_registerTMCloneTable - -Symbol table '.symtab' contains 89 entries: - Num: Value Size Type Bind Vis Ndx Name - 0: 0000000000000000 0 NOTYPE LOCAL DEFAULT UND - 1: 0000000000000238 0 SECTION LOCAL DEFAULT 1 .interp - 2: 0000000000000254 0 SECTION LOCAL DEFAULT 2 .note.gnu.build-id - 3: 0000000000000278 0 SECTION LOCAL DEFAULT 3 .note.ABI-tag - 4: 0000000000000298 0 SECTION LOCAL DEFAULT 4 .gnu.hash - 5: 00000000000002b8 0 SECTION LOCAL DEFAULT 5 .dynsym - 6: 0000000000000390 0 SECTION LOCAL DEFAULT 6 .dynstr - 7: 000000000000041e 0 SECTION LOCAL DEFAULT 7 .gnu.version - 8: 0000000000000430 0 SECTION LOCAL DEFAULT 8 .gnu.version_r - 9: 0000000000000460 0 SECTION LOCAL DEFAULT 9 .rela.dyn - 10: 0000000000000520 0 SECTION LOCAL DEFAULT 10 .rela.plt - 11: 0000000000000580 0 SECTION LOCAL DEFAULT 11 .init - 12: 00000000000005a0 0 SECTION LOCAL DEFAULT 12 .plt - 13: 0000000000000600 0 SECTION LOCAL DEFAULT 13 .text - 14: 0000000000000764 0 SECTION LOCAL DEFAULT 14 .fini - 15: 0000000000000778 0 SECTION LOCAL DEFAULT 15 .rodata - 16: 000000000000077c 0 SECTION LOCAL DEFAULT 16 .eh_frame_hdr - 17: 00000000000007b8 0 SECTION LOCAL DEFAULT 17 .eh_frame - 18: 0000000000010d98 0 SECTION LOCAL DEFAULT 18 .init_array - 19: 0000000000010da0 0 SECTION LOCAL DEFAULT 19 .fini_array - 20: 0000000000010da8 0 SECTION LOCAL DEFAULT 20 .dynamic - 21: 0000000000010f98 0 SECTION LOCAL DEFAULT 21 .got - 22: 0000000000011000 0 SECTION LOCAL DEFAULT 22 .data - 23: 0000000000011010 0 SECTION LOCAL DEFAULT 23 .bss - 24: 0000000000000000 0 SECTION LOCAL DEFAULT 24 .comment - 25: 0000000000000000 0 FILE LOCAL DEFAULT ABS Scrt1.o - 26: 0000000000000278 0 NOTYPE LOCAL DEFAULT 3 $d - 27: 0000000000000278 32 OBJECT LOCAL DEFAULT 3 __abi_tag - 28: 0000000000000600 0 NOTYPE LOCAL DEFAULT 13 $x - 29: 00000000000007cc 0 NOTYPE LOCAL DEFAULT 17 $d - 30: 0000000000000778 0 NOTYPE LOCAL DEFAULT 15 $d - 31: 0000000000000000 0 FILE LOCAL DEFAULT ABS crti.o - 32: 0000000000000634 0 NOTYPE LOCAL DEFAULT 13 $x - 33: 0000000000000634 20 FUNC LOCAL DEFAULT 13 call_weak_fn - 34: 0000000000000580 0 NOTYPE LOCAL DEFAULT 11 $x - 35: 0000000000000764 0 NOTYPE LOCAL DEFAULT 14 $x - 36: 0000000000000000 0 FILE LOCAL DEFAULT ABS crtn.o - 37: 0000000000000590 0 NOTYPE LOCAL DEFAULT 11 $x - 38: 0000000000000770 0 NOTYPE LOCAL DEFAULT 14 $x - 39: 0000000000000000 0 FILE LOCAL DEFAULT ABS crtstuff.c - 40: 0000000000000650 0 NOTYPE LOCAL DEFAULT 13 $x - 41: 0000000000000650 0 FUNC LOCAL DEFAULT 13 deregister_tm_clones - 42: 0000000000000680 0 FUNC LOCAL DEFAULT 13 register_tm_clones - 43: 0000000000011008 0 NOTYPE LOCAL DEFAULT 22 $d - 44: 00000000000006c0 0 FUNC LOCAL DEFAULT 13 __do_global_dtors_aux - 45: 0000000000011010 1 OBJECT LOCAL DEFAULT 23 completed.0 - 46: 0000000000010da0 0 NOTYPE LOCAL DEFAULT 19 $d - 47: 0000000000010da0 0 OBJECT LOCAL DEFAULT 19 __do_global_dtors_aux_fini_array_entry - 48: 0000000000000710 0 FUNC LOCAL DEFAULT 13 frame_dummy - 49: 0000000000010d98 0 NOTYPE LOCAL DEFAULT 18 $d - 50: 0000000000010d98 0 OBJECT LOCAL DEFAULT 18 __frame_dummy_init_array_entry - 51: 00000000000007e0 0 NOTYPE LOCAL DEFAULT 17 $d - 52: 0000000000011010 0 NOTYPE LOCAL DEFAULT 23 $d - 53: 0000000000000000 0 FILE LOCAL DEFAULT ABS basic_sec_policy_write.c - 54: 0000000000011014 0 NOTYPE LOCAL DEFAULT 23 $d - 55: 0000000000000714 0 NOTYPE LOCAL DEFAULT 13 $x - 56: 0000000000000840 0 NOTYPE LOCAL DEFAULT 17 $d - 57: 0000000000000000 0 FILE LOCAL DEFAULT ABS crtstuff.c - 58: 0000000000000858 0 NOTYPE LOCAL DEFAULT 17 $d - 59: 0000000000000858 0 OBJECT LOCAL DEFAULT 17 __FRAME_END__ - 60: 0000000000000000 0 FILE LOCAL DEFAULT ABS - 61: 0000000000010da8 0 OBJECT LOCAL DEFAULT ABS _DYNAMIC - 62: 000000000000077c 0 NOTYPE LOCAL DEFAULT 16 __GNU_EH_FRAME_HDR - 63: 0000000000010fd0 0 OBJECT LOCAL DEFAULT ABS _GLOBAL_OFFSET_TABLE_ - 64: 00000000000005a0 0 NOTYPE LOCAL DEFAULT 12 $x - 65: 0000000000000000 0 FUNC GLOBAL DEFAULT UND __libc_start_main@GLIBC_2.34 - 66: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_deregisterTMCloneTable - 67: 0000000000011000 0 NOTYPE WEAK DEFAULT 22 data_start - 68: 0000000000011010 0 NOTYPE GLOBAL DEFAULT 23 __bss_start__ - 69: 0000000000000000 0 FUNC WEAK DEFAULT UND __cxa_finalize@GLIBC_2.17 - 70: 0000000000011020 0 NOTYPE GLOBAL DEFAULT 23 _bss_end__ - 71: 0000000000011010 0 NOTYPE GLOBAL DEFAULT 22 _edata - 72: 0000000000011018 4 OBJECT GLOBAL DEFAULT 23 z - 73: 0000000000011014 4 OBJECT GLOBAL DEFAULT 23 x - 74: 0000000000000764 0 FUNC GLOBAL HIDDEN 14 _fini - 75: 0000000000011020 0 NOTYPE GLOBAL DEFAULT 23 __bss_end__ - 76: 0000000000011000 0 NOTYPE GLOBAL DEFAULT 22 __data_start - 77: 0000000000000000 0 NOTYPE WEAK DEFAULT UND __gmon_start__ - 78: 0000000000011008 0 OBJECT GLOBAL HIDDEN 22 __dso_handle - 79: 0000000000000000 0 FUNC GLOBAL DEFAULT UND abort@GLIBC_2.17 - 80: 0000000000000778 4 OBJECT GLOBAL DEFAULT 15 _IO_stdin_used - 81: 0000000000011020 0 NOTYPE GLOBAL DEFAULT 23 _end - 82: 0000000000000600 52 FUNC GLOBAL DEFAULT 13 _start - 83: 0000000000011020 0 NOTYPE GLOBAL DEFAULT 23 __end__ - 84: 0000000000011010 0 NOTYPE GLOBAL DEFAULT 23 __bss_start - 85: 0000000000000714 80 FUNC GLOBAL DEFAULT 13 main - 86: 0000000000011010 0 OBJECT GLOBAL HIDDEN 22 __TMC_END__ - 87: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_registerTMCloneTable - 88: 0000000000000580 0 FUNC GLOBAL HIDDEN 11 _init diff --git a/src/test/correct/basic_sec_policy_write/gcc/basic_sec_policy_write_gtirb.expected b/src/test/correct/basic_sec_policy_write/gcc/basic_sec_policy_write_gtirb.expected index 23784ebf7..cb99ad8ea 100644 --- a/src/test/correct/basic_sec_policy_write/gcc/basic_sec_policy_write_gtirb.expected +++ b/src/test/correct/basic_sec_policy_write/gcc/basic_sec_policy_write_gtirb.expected @@ -73,7 +73,7 @@ implementation {:extern} guarantee_reflexive() assert ((memory_load32_le(mem, $z_addr) != 0bv32) ==> (memory_load32_le(mem, $z_addr) != 0bv32)); } -procedure main_1812(); +procedure main(); modifies Gamma_R0, Gamma_R1, Gamma_R31, Gamma_mem, Gamma_stack, R0, R1, R31, mem, stack; requires (Gamma_R0 == false); free requires (memory_load64_le(mem, 69632bv64) == 0bv64); @@ -91,66 +91,66 @@ procedure main_1812(); free ensures (memory_load64_le(mem, 69616bv64) == 1812bv64); free ensures (memory_load64_le(mem, 69640bv64) == 69640bv64); -implementation main_1812() +implementation main() { - var Gamma_load9: bool; + var $load9: bv32; + var Gamma_$load9: bool; var Gamma_x_old: bool; - var load9: bv32; var z_old: bv32; - main_1812__0__5B4s2Td8TWOj0raIcjCjQg: - assume {:captureState "main_1812__0__5B4s2Td8TWOj0raIcjCjQg"} true; + $main$__0__$5B4s2Td8TWOj0raIcjCjQg: + assume {:captureState "$main$__0__$5B4s2Td8TWOj0raIcjCjQg"} true; R31, Gamma_R31 := bvadd64(R31, 18446744073709551600bv64), Gamma_R31; stack, Gamma_stack := memory_store32_le(stack, bvadd64(R31, 12bv64), R0[32:0]), gamma_store32(Gamma_stack, bvadd64(R31, 12bv64), Gamma_R0); - assume {:captureState "1816_0"} true; + assume {:captureState "1816$0"} true; R0, Gamma_R0 := 69632bv64, true; R0, Gamma_R0 := bvadd64(R0, 24bv64), Gamma_R0; R1, Gamma_R1 := 1bv64, true; call rely(); + assert (L(mem, R0) ==> Gamma_R1); z_old := memory_load32_le(mem, $z_addr); Gamma_x_old := (gamma_load32(Gamma_mem, $x_addr) || L(mem, $x_addr)); - assert (L(mem, R0) ==> Gamma_R1); mem, Gamma_mem := memory_store32_le(mem, R0, R1[32:0]), gamma_store32(Gamma_mem, R0, Gamma_R1); assert ((R0 == $z_addr) ==> (L(mem, $x_addr) ==> Gamma_x_old)); assert ((z_old != 0bv32) ==> (memory_load32_le(mem, $z_addr) != 0bv32)); - assume {:captureState "1832_0"} true; + assume {:captureState "1832$0"} true; R0, Gamma_R0 := 69632bv64, true; R0, Gamma_R0 := bvadd64(R0, 20bv64), Gamma_R0; - load9, Gamma_load9 := memory_load32_le(stack, bvadd64(R31, 12bv64)), gamma_load32(Gamma_stack, bvadd64(R31, 12bv64)); - R1, Gamma_R1 := zero_extend32_32(load9), Gamma_load9; + $load9, Gamma_$load9 := memory_load32_le(stack, bvadd64(R31, 12bv64)), gamma_load32(Gamma_stack, bvadd64(R31, 12bv64)); + R1, Gamma_R1 := zero_extend32_32($load9), Gamma_$load9; call rely(); + assert (L(mem, R0) ==> Gamma_R1); z_old := memory_load32_le(mem, $z_addr); Gamma_x_old := (gamma_load32(Gamma_mem, $x_addr) || L(mem, $x_addr)); - assert (L(mem, R0) ==> Gamma_R1); mem, Gamma_mem := memory_store32_le(mem, R0, R1[32:0]), gamma_store32(Gamma_mem, R0, Gamma_R1); assert ((R0 == $z_addr) ==> (L(mem, $x_addr) ==> Gamma_x_old)); assert ((z_old != 0bv32) ==> (memory_load32_le(mem, $z_addr) != 0bv32)); - assume {:captureState "1848_0"} true; + assume {:captureState "1848$0"} true; R0, Gamma_R0 := 69632bv64, true; R0, Gamma_R0 := bvadd64(R0, 20bv64), Gamma_R0; call rely(); + assert (L(mem, R0) ==> true); z_old := memory_load32_le(mem, $z_addr); Gamma_x_old := (gamma_load32(Gamma_mem, $x_addr) || L(mem, $x_addr)); - assert (L(mem, R0) ==> true); mem, Gamma_mem := memory_store32_le(mem, R0, 0bv32), gamma_store32(Gamma_mem, R0, true); assert ((R0 == $z_addr) ==> (L(mem, $x_addr) ==> Gamma_x_old)); assert ((z_old != 0bv32) ==> (memory_load32_le(mem, $z_addr) != 0bv32)); - assume {:captureState "1860_0"} true; + assume {:captureState "1860$0"} true; R0, Gamma_R0 := 69632bv64, true; R0, Gamma_R0 := bvadd64(R0, 24bv64), Gamma_R0; R1, Gamma_R1 := 2bv64, true; call rely(); + assert (L(mem, R0) ==> Gamma_R1); z_old := memory_load32_le(mem, $z_addr); Gamma_x_old := (gamma_load32(Gamma_mem, $x_addr) || L(mem, $x_addr)); - assert (L(mem, R0) ==> Gamma_R1); mem, Gamma_mem := memory_store32_le(mem, R0, R1[32:0]), gamma_store32(Gamma_mem, R0, Gamma_R1); assert ((R0 == $z_addr) ==> (L(mem, $x_addr) ==> Gamma_x_old)); assert ((z_old != 0bv32) ==> (memory_load32_le(mem, $z_addr) != 0bv32)); - assume {:captureState "1876_0"} true; + assume {:captureState "1876$0"} true; R0, Gamma_R0 := 0bv64, true; R31, Gamma_R31 := bvadd64(R31, 16bv64), Gamma_R31; - goto main_1812_basil_return; - main_1812_basil_return: - assume {:captureState "main_1812_basil_return"} true; + goto main_basil_return; + main_basil_return: + assume {:captureState "main_basil_return"} true; return; } diff --git a/src/test/correct/basic_sec_policy_write/gcc_O2/basic_sec_policy_write.adt b/src/test/correct/basic_sec_policy_write/gcc_O2/basic_sec_policy_write.adt deleted file mode 100644 index ad9d31d42..000000000 --- a/src/test/correct/basic_sec_policy_write/gcc_O2/basic_sec_policy_write.adt +++ /dev/null @@ -1,496 +0,0 @@ -Project(Attrs([Attr("filename","\"gcc_O2/basic_sec_policy_write.out\""), -Attr("image-specification","(declare abi (name str))\n(declare arch (name str))\n(declare base-address (addr int))\n(declare bias (off int))\n(declare bits (size int))\n(declare code-region (addr int) (size int) (off int))\n(declare code-start (addr int))\n(declare entry-point (addr int))\n(declare external-reference (addr int) (name str))\n(declare format (name str))\n(declare is-executable (flag bool))\n(declare is-little-endian (flag bool))\n(declare llvm:base-address (addr int))\n(declare llvm:code-entry (name str) (off int) (size int))\n(declare llvm:coff-import-library (name str))\n(declare llvm:coff-virtual-section-header (name str) (addr int) (size int))\n(declare llvm:elf-program-header (name str) (off int) (size int))\n(declare llvm:elf-program-header-flags (name str) (ld bool) (r bool) \n (w bool) (x bool))\n(declare llvm:elf-virtual-program-header (name str) (addr int) (size int))\n(declare llvm:entry-point (addr int))\n(declare llvm:macho-symbol (name str) (value int))\n(declare llvm:name-reference (at int) (name str))\n(declare llvm:relocation (at int) (addr int))\n(declare llvm:section-entry (name str) (addr int) (size int) (off int))\n(declare llvm:section-flags (name str) (r bool) (w bool) (x bool))\n(declare llvm:segment-command (name str) (off int) (size int))\n(declare llvm:segment-command-flags (name str) (r bool) (w bool) (x bool))\n(declare llvm:symbol-entry (name str) (addr int) (size int) (off int)\n (value int))\n(declare llvm:virtual-segment-command (name str) (addr int) (size int))\n(declare mapped (addr int) (size int) (off int))\n(declare named-region (addr int) (size int) (name str))\n(declare named-symbol (addr int) (name str))\n(declare require (name str))\n(declare section (addr int) (size int))\n(declare segment (addr int) (size int) (r bool) (w bool) (x bool))\n(declare subarch (name str))\n(declare symbol-chunk (addr int) (size int) (root int))\n(declare symbol-value (addr int) (value int))\n(declare system (name str))\n(declare vendor (name str))\n\n(abi unknown)\n(arch aarch64)\n(base-address 0)\n(bias 0)\n(bits 64)\n(code-region 1876 20 1876)\n(code-region 1536 340 1536)\n(code-region 1440 96 1440)\n(code-region 1408 24 1408)\n(code-start 1652)\n(code-start 1600)\n(code-start 1536)\n(entry-point 1600)\n(external-reference 69592 _ITM_deregisterTMCloneTable)\n(external-reference 69600 __cxa_finalize)\n(external-reference 69608 __gmon_start__)\n(external-reference 69624 _ITM_registerTMCloneTable)\n(external-reference 69552 __libc_start_main)\n(external-reference 69560 __cxa_finalize)\n(external-reference 69568 __gmon_start__)\n(external-reference 69576 abort)\n(format elf)\n(is-executable true)\n(is-little-endian true)\n(llvm:base-address 0)\n(llvm:code-entry abort 0 0)\n(llvm:code-entry __cxa_finalize 0 0)\n(llvm:code-entry __libc_start_main 0 0)\n(llvm:code-entry _init 1408 0)\n(llvm:code-entry main 1536 28)\n(llvm:code-entry _start 1600 52)\n(llvm:code-entry abort@GLIBC_2.17 0 0)\n(llvm:code-entry _fini 1876 0)\n(llvm:code-entry __cxa_finalize@GLIBC_2.17 0 0)\n(llvm:code-entry __libc_start_main@GLIBC_2.34 0 0)\n(llvm:code-entry frame_dummy 1872 0)\n(llvm:code-entry __do_global_dtors_aux 1792 0)\n(llvm:code-entry register_tm_clones 1728 0)\n(llvm:code-entry deregister_tm_clones 1680 0)\n(llvm:code-entry call_weak_fn 1652 20)\n(llvm:code-entry .fini 1876 20)\n(llvm:code-entry .text 1536 340)\n(llvm:code-entry .plt 1440 96)\n(llvm:code-entry .init 1408 24)\n(llvm:elf-program-header 08 3480 616)\n(llvm:elf-program-header 07 0 0)\n(llvm:elf-program-header 06 1900 60)\n(llvm:elf-program-header 05 596 68)\n(llvm:elf-program-header 04 3496 496)\n(llvm:elf-program-header 03 3480 632)\n(llvm:elf-program-header 02 0 2120)\n(llvm:elf-program-header 01 568 27)\n(llvm:elf-program-header 00 64 504)\n(llvm:elf-program-header-flags 08 false true false false)\n(llvm:elf-program-header-flags 07 false true true false)\n(llvm:elf-program-header-flags 06 false true false false)\n(llvm:elf-program-header-flags 05 false true false false)\n(llvm:elf-program-header-flags 04 false true true false)\n(llvm:elf-program-header-flags 03 true true true false)\n(llvm:elf-program-header-flags 02 true true false true)\n(llvm:elf-program-header-flags 01 false true false false)\n(llvm:elf-program-header-flags 00 false true false false)\n(llvm:elf-virtual-program-header 08 69016 616)\n(llvm:elf-virtual-program-header 07 0 0)\n(llvm:elf-virtual-program-header 06 1900 60)\n(llvm:elf-virtual-program-header 05 596 68)\n(llvm:elf-virtual-program-header 04 69032 496)\n(llvm:elf-virtual-program-header 03 69016 648)\n(llvm:elf-virtual-program-header 02 0 2120)\n(llvm:elf-virtual-program-header 01 568 27)\n(llvm:elf-virtual-program-header 00 64 504)\n(llvm:entry-point 1600)\n(llvm:name-reference 69576 abort)\n(llvm:name-reference 69568 __gmon_start__)\n(llvm:name-reference 69560 __cxa_finalize)\n(llvm:name-reference 69552 __libc_start_main)\n(llvm:name-reference 69624 _ITM_registerTMCloneTable)\n(llvm:name-reference 69608 __gmon_start__)\n(llvm:name-reference 69600 __cxa_finalize)\n(llvm:name-reference 69592 _ITM_deregisterTMCloneTable)\n(llvm:section-entry .shstrtab 0 250 6856)\n(llvm:section-entry .strtab 0 560 6296)\n(llvm:section-entry .symtab 0 2136 4160)\n(llvm:section-entry .comment 0 43 4112)\n(llvm:section-entry .bss 69648 16 4112)\n(llvm:section-entry .data 69632 16 4096)\n(llvm:section-entry .got 69528 104 3992)\n(llvm:section-entry .dynamic 69032 496 3496)\n(llvm:section-entry .fini_array 69024 8 3488)\n(llvm:section-entry .init_array 69016 8 3480)\n(llvm:section-entry .eh_frame 1960 160 1960)\n(llvm:section-entry .eh_frame_hdr 1900 60 1900)\n(llvm:section-entry .rodata 1896 4 1896)\n(llvm:section-entry .fini 1876 20 1876)\n(llvm:section-entry .text 1536 340 1536)\n(llvm:section-entry .plt 1440 96 1440)\n(llvm:section-entry .init 1408 24 1408)\n(llvm:section-entry .rela.plt 1312 96 1312)\n(llvm:section-entry .rela.dyn 1120 192 1120)\n(llvm:section-entry .gnu.version_r 1072 48 1072)\n(llvm:section-entry .gnu.version 1054 18 1054)\n(llvm:section-entry .dynstr 912 141 912)\n(llvm:section-entry .dynsym 696 216 696)\n(llvm:section-entry .gnu.hash 664 28 664)\n(llvm:section-entry .note.ABI-tag 632 32 632)\n(llvm:section-entry .note.gnu.build-id 596 36 596)\n(llvm:section-entry .interp 568 27 568)\n(llvm:section-flags .shstrtab true false false)\n(llvm:section-flags .strtab true false false)\n(llvm:section-flags .symtab true false false)\n(llvm:section-flags .comment true false false)\n(llvm:section-flags .bss true true false)\n(llvm:section-flags .data true true false)\n(llvm:section-flags .got true true false)\n(llvm:section-flags .dynamic true true false)\n(llvm:section-flags .fini_array true true false)\n(llvm:section-flags .init_array true true false)\n(llvm:section-flags .eh_frame true false false)\n(llvm:section-flags .eh_frame_hdr true false false)\n(llvm:section-flags .rodata true false false)\n(llvm:section-flags .fini true false true)\n(llvm:section-flags .text true false true)\n(llvm:section-flags .plt true false true)\n(llvm:section-flags .init true false true)\n(llvm:section-flags .rela.plt true false false)\n(llvm:section-flags .rela.dyn true false false)\n(llvm:section-flags .gnu.version_r true false false)\n(llvm:section-flags .gnu.version true false false)\n(llvm:section-flags .dynstr true false false)\n(llvm:section-flags .dynsym true false false)\n(llvm:section-flags .gnu.hash true false false)\n(llvm:section-flags .note.ABI-tag true false false)\n(llvm:section-flags .note.gnu.build-id true false false)\n(llvm:section-flags .interp true false false)\n(llvm:symbol-entry abort 0 0 0 0)\n(llvm:symbol-entry __cxa_finalize 0 0 0 0)\n(llvm:symbol-entry __libc_start_main 0 0 0 0)\n(llvm:symbol-entry _init 1408 0 1408 1408)\n(llvm:symbol-entry main 1536 28 1536 1536)\n(llvm:symbol-entry _start 1600 52 1600 1600)\n(llvm:symbol-entry abort@GLIBC_2.17 0 0 0 0)\n(llvm:symbol-entry _fini 1876 0 1876 1876)\n(llvm:symbol-entry __cxa_finalize@GLIBC_2.17 0 0 0 0)\n(llvm:symbol-entry __libc_start_main@GLIBC_2.34 0 0 0 0)\n(llvm:symbol-entry frame_dummy 1872 0 1872 1872)\n(llvm:symbol-entry __do_global_dtors_aux 1792 0 1792 1792)\n(llvm:symbol-entry register_tm_clones 1728 0 1728 1728)\n(llvm:symbol-entry deregister_tm_clones 1680 0 1680 1680)\n(llvm:symbol-entry call_weak_fn 1652 20 1652 1652)\n(mapped 0 2120 0)\n(mapped 69016 632 3480)\n(named-region 0 2120 02)\n(named-region 69016 648 03)\n(named-region 568 27 .interp)\n(named-region 596 36 .note.gnu.build-id)\n(named-region 632 32 .note.ABI-tag)\n(named-region 664 28 .gnu.hash)\n(named-region 696 216 .dynsym)\n(named-region 912 141 .dynstr)\n(named-region 1054 18 .gnu.version)\n(named-region 1072 48 .gnu.version_r)\n(named-region 1120 192 .rela.dyn)\n(named-region 1312 96 .rela.plt)\n(named-region 1408 24 .init)\n(named-region 1440 96 .plt)\n(named-region 1536 340 .text)\n(named-region 1876 20 .fini)\n(named-region 1896 4 .rodata)\n(named-region 1900 60 .eh_frame_hdr)\n(named-region 1960 160 .eh_frame)\n(named-region 69016 8 .init_array)\n(named-region 69024 8 .fini_array)\n(named-region 69032 496 .dynamic)\n(named-region 69528 104 .got)\n(named-region 69632 16 .data)\n(named-region 69648 16 .bss)\n(named-region 0 43 .comment)\n(named-region 0 2136 .symtab)\n(named-region 0 560 .strtab)\n(named-region 0 250 .shstrtab)\n(named-symbol 1652 call_weak_fn)\n(named-symbol 1680 deregister_tm_clones)\n(named-symbol 1728 register_tm_clones)\n(named-symbol 1792 __do_global_dtors_aux)\n(named-symbol 1872 frame_dummy)\n(named-symbol 0 __libc_start_main@GLIBC_2.34)\n(named-symbol 0 __cxa_finalize@GLIBC_2.17)\n(named-symbol 1876 _fini)\n(named-symbol 0 abort@GLIBC_2.17)\n(named-symbol 1600 _start)\n(named-symbol 1536 main)\n(named-symbol 1408 _init)\n(named-symbol 0 __libc_start_main)\n(named-symbol 0 __cxa_finalize)\n(named-symbol 0 abort)\n(require libc.so.6)\n(section 568 27)\n(section 596 36)\n(section 632 32)\n(section 664 28)\n(section 696 216)\n(section 912 141)\n(section 1054 18)\n(section 1072 48)\n(section 1120 192)\n(section 1312 96)\n(section 1408 24)\n(section 1440 96)\n(section 1536 340)\n(section 1876 20)\n(section 1896 4)\n(section 1900 60)\n(section 1960 160)\n(section 69016 8)\n(section 69024 8)\n(section 69032 496)\n(section 69528 104)\n(section 69632 16)\n(section 69648 16)\n(section 0 43)\n(section 0 2136)\n(section 0 560)\n(section 0 250)\n(segment 0 2120 true false true)\n(segment 69016 648 true true false)\n(subarch v8)\n(symbol-chunk 1652 20 1652)\n(symbol-chunk 1600 52 1600)\n(symbol-chunk 1536 28 1536)\n(symbol-value 1652 1652)\n(symbol-value 1680 1680)\n(symbol-value 1728 1728)\n(symbol-value 1792 1792)\n(symbol-value 1872 1872)\n(symbol-value 1876 1876)\n(symbol-value 1600 1600)\n(symbol-value 1536 1536)\n(symbol-value 1408 1408)\n(symbol-value 0 0)\n(system \"\")\n(vendor \"\")\n"), -Attr("abi-name","\"aarch64-linux-gnu-elf\"")]), -Sections([Section(".shstrtab", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x40\x06\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xc8\x1b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x38\x00\x09\x00\x40\x00\x1c\x00\x1b\x00\x06\x00\x00\x00\x04\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x04\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x48\x08\x00\x00\x00\x00\x00\x00\x48\x08\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x01\x00\x00\x00\x06\x00\x00\x00\x98\x0d\x00\x00\x00\x00\x00\x00\x98\x0d"), -Section(".strtab", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x40\x06\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xc8\x1b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x38\x00\x09\x00\x40\x00\x1c\x00\x1b\x00\x06\x00\x00\x00\x04\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x04\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x48\x08\x00\x00\x00\x00\x00\x00\x48\x08\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x01\x00\x00\x00\x06\x00\x00\x00\x98\x0d\x00\x00\x00\x00\x00\x00\x98\x0d\x01\x00\x00\x00\x00\x00\x98\x0d\x01\x00\x00\x00\x00\x00\x78\x02\x00\x00\x00\x00\x00\x00\x88\x02\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x02\x00\x00\x00\x06\x00\x00\x00\xa8\x0d\x00\x00\x00\x00\x00\x00\xa8\x0d\x01\x00\x00\x00\x00\x00\xa8\x0d\x01\x00\x00\x00\x00\x00\xf0\x01\x00\x00\x00\x00\x00\x00\xf0\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x04\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x50\xe5\x74\x64\x04\x00\x00\x00\x6c\x07\x00\x00\x00\x00\x00\x00\x6c\x07\x00\x00\x00\x00\x00\x00\x6c\x07\x00\x00\x00\x00\x00\x00\x3c\x00\x00\x00\x00\x00\x00\x00\x3c\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x51\xe5\x74\x64\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x52\xe5\x74\x64\x04\x00\x00\x00\x98\x0d\x00\x00\x00\x00\x00\x00\x98\x0d\x01\x00\x00\x00\x00\x00\x98\x0d\x01\x00\x00\x00\x00\x00\x68\x02\x00\x00\x00\x00\x00\x00\x68\x02\x00\x00\x00\x00\x00\x00"), -Section(".comment", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x40\x06\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xc8\x1b\x00"), -Section(".interp", 0x238, "\x2f\x6c\x69\x62\x2f\x6c\x64\x2d\x6c\x69\x6e\x75\x78\x2d\x61\x61\x72\x63\x68\x36\x34\x2e\x73\x6f\x2e\x31\x00"), -Section(".note.gnu.build-id", 0x254, "\x04\x00\x00\x00\x14\x00\x00\x00\x03\x00\x00\x00\x47\x4e\x55\x00\x29\xe7\x26\x8d\x74\x2c\x19\xc9\xfd\xf9\x47\xfc\x2b\xb6\xb2\x08\xf3\x77\xbd\xfd"), -Section(".note.ABI-tag", 0x278, "\x04\x00\x00\x00\x10\x00\x00\x00\x01\x00\x00\x00\x47\x4e\x55\x00\x00\x00\x00\x00\x03\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00"), -Section(".gnu.hash", 0x298, "\x01\x00\x00\x00\x01\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".dynsym", 0x2B8, "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x0b\x00\x80\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x16\x00\x00\x10\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x48\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x22\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x22\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x73\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".dynstr", 0x390, "\x00\x5f\x5f\x63\x78\x61\x5f\x66\x69\x6e\x61\x6c\x69\x7a\x65\x00\x5f\x5f\x6c\x69\x62\x63\x5f\x73\x74\x61\x72\x74\x5f\x6d\x61\x69\x6e\x00\x61\x62\x6f\x72\x74\x00\x6c\x69\x62\x63\x2e\x73\x6f\x2e\x36\x00\x47\x4c\x49\x42\x43\x5f\x32\x2e\x31\x37\x00\x47\x4c\x49\x42\x43\x5f\x32\x2e\x33\x34\x00\x5f\x49\x54\x4d\x5f\x64\x65\x72\x65\x67\x69\x73\x74\x65\x72\x54\x4d\x43\x6c\x6f\x6e\x65\x54\x61\x62\x6c\x65\x00\x5f\x5f\x67\x6d\x6f\x6e\x5f\x73\x74\x61\x72\x74\x5f\x5f\x00\x5f\x49\x54\x4d\x5f\x72\x65\x67\x69\x73\x74\x65\x72\x54\x4d\x43\x6c\x6f\x6e\x65\x54\x61\x62\x6c\x65\x00"), -Section(".gnu.version", 0x41E, "\x00\x00\x00\x00\x00\x00\x02\x00\x01\x00\x03\x00\x01\x00\x03\x00\x01\x00"), -Section(".gnu.version_r", 0x430, "\x01\x00\x02\x00\x28\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x97\x91\x96\x06\x00\x00\x03\x00\x32\x00\x00\x00\x10\x00\x00\x00\xb4\x91\x96\x06\x00\x00\x02\x00\x3d\x00\x00\x00\x00\x00\x00\x00"), -Section(".rela.dyn", 0x460, "\x98\x0d\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x50\x07\x00\x00\x00\x00\x00\x00\xa0\x0d\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\xf0\x0f\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x00\x06\x00\x00\x00\x00\x00\x00\x08\x10\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x08\x10\x01\x00\x00\x00\x00\x00\xd8\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe0\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe8\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xf8\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".rela.plt", 0x520, "\xb0\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xb8\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xc0\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xc8\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".init", 0x580, "\x1f\x20\x03\xd5\xfd\x7b\xbf\xa9\xfd\x03\x00\x91\x3a\x00\x00\x94\xfd\x7b\xc1\xa8\xc0\x03\x5f\xd6"), -Section(".plt", 0x5A0, "\xf0\x7b\xbf\xa9\x90\x00\x00\x90\x11\xd6\x47\xf9\x10\xa2\x3e\x91\x20\x02\x1f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x90\x00\x00\x90\x11\xda\x47\xf9\x10\xc2\x3e\x91\x20\x02\x1f\xd6\x90\x00\x00\x90\x11\xde\x47\xf9\x10\xe2\x3e\x91\x20\x02\x1f\xd6\x90\x00\x00\x90\x11\xe2\x47\xf9\x10\x02\x3f\x91\x20\x02\x1f\xd6\x90\x00\x00\x90\x11\xe6\x47\xf9\x10\x22\x3f\x91\x20\x02\x1f\xd6"), -Section(".fini", 0x754, "\x1f\x20\x03\xd5\xfd\x7b\xbf\xa9\xfd\x03\x00\x91\xfd\x7b\xc1\xa8\xc0\x03\x5f\xd6"), -Section(".rodata", 0x768, "\x01\x00\x02\x00"), -Section(".eh_frame_hdr", 0x76C, "\x01\x1b\x03\x3b\x38\x00\x00\x00\x06\x00\x00\x00\x94\xfe\xff\xff\xc4\x00\x00\x00\xd4\xfe\xff\xff\x50\x00\x00\x00\x24\xff\xff\xff\x64\x00\x00\x00\x54\xff\xff\xff\x78\x00\x00\x00\x94\xff\xff\xff\x8c\x00\x00\x00\xe4\xff\xff\xff\xb0\x00\x00\x00"), -Section(".eh_frame", 0x7A8, "\x10\x00\x00\x00\x00\x00\x00\x00\x01\x7a\x52\x00\x04\x78\x1e\x01\x1b\x0c\x1f\x00\x10\x00\x00\x00\x18\x00\x00\x00\x7c\xfe\xff\xff\x34\x00\x00\x00\x00\x41\x07\x1e\x10\x00\x00\x00\x2c\x00\x00\x00\xb8\xfe\xff\xff\x30\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x40\x00\x00\x00\xd4\xfe\xff\xff\x3c\x00\x00\x00\x00\x00\x00\x00\x20\x00\x00\x00\x54\x00\x00\x00\x00\xff\xff\xff\x48\x00\x00\x00\x00\x41\x0e\x20\x9d\x04\x9e\x03\x42\x93\x02\x4e\xde\xdd\xd3\x0e\x00\x00\x00\x00\x10\x00\x00\x00\x78\x00\x00\x00\x2c\xff\xff\xff\x04\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x8c\x00\x00\x00\xc8\xfd\xff\xff\x1c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".fini_array", 0x10DA0, "\x00\x07\x00\x00\x00\x00\x00\x00"), -Section(".dynamic", 0x10DA8, "\x01\x00\x00\x00\x00\x00\x00\x00\x28\x00\x00\x00\x00\x00\x00\x00\x0c\x00\x00\x00\x00\x00\x00\x00\x80\x05\x00\x00\x00\x00\x00\x00\x0d\x00\x00\x00\x00\x00\x00\x00\x54\x07\x00\x00\x00\x00\x00\x00\x19\x00\x00\x00\x00\x00\x00\x00\x98\x0d\x01\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x1a\x00\x00\x00\x00\x00\x00\x00\xa0\x0d\x01\x00\x00\x00\x00\x00\x1c\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\xf5\xfe\xff\x6f\x00\x00\x00\x00\x98\x02\x00\x00\x00\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x90\x03\x00\x00\x00\x00\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\xb8\x02\x00\x00\x00\x00\x00\x00\x0a\x00\x00\x00\x00\x00\x00\x00\x8d\x00\x00\x00\x00\x00\x00\x00\x0b\x00\x00\x00\x00\x00\x00\x00\x18\x00\x00\x00\x00\x00\x00\x00\x15\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x98\x0f\x01\x00\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x60\x00\x00\x00\x00\x00\x00\x00\x14\x00\x00\x00\x00\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x17\x00\x00\x00\x00\x00\x00\x00\x20\x05\x00\x00\x00\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x60\x04\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\xc0\x00\x00\x00\x00\x00\x00\x00\x09\x00\x00\x00\x00\x00\x00\x00\x18\x00\x00\x00\x00\x00\x00\x00\x1e\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\xfb\xff\xff\x6f\x00\x00\x00\x00\x01\x00\x00\x08\x00\x00\x00\x00\xfe\xff\xff\x6f\x00\x00\x00\x00\x30\x04\x00\x00\x00\x00\x00\x00\xff\xff\xff\x6f\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\xf0\xff\xff\x6f\x00\x00\x00\x00\x1e\x04\x00\x00\x00\x00\x00\x00\xf9\xff\xff\x6f\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".init_array", 0x10D98, "\x50\x07\x00\x00\x00\x00\x00\x00"), -Section(".got", 0x10F98, "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xa0\x05\x00\x00\x00\x00\x00\x00\xa0\x05\x00\x00\x00\x00\x00\x00\xa0\x05\x00\x00\x00\x00\x00\x00\xa0\x05\x00\x00\x00\x00\x00\x00\xa8\x0d\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".data", 0x11000, "\x00\x00\x00\x00\x00\x00\x00\x00\x08\x10\x01\x00\x00\x00\x00\x00"), -Section(".text", 0x600, "\x81\x00\x00\xb0\x22\x50\x00\x91\x43\x00\x80\x52\x00\x00\x80\x52\x3f\x14\x00\xb9\x43\x04\x00\xb9\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1d\x00\x80\xd2\x1e\x00\x80\xd2\xe5\x03\x00\xaa\xe1\x03\x40\xf9\xe2\x23\x00\x91\xe6\x03\x00\x91\x80\x00\x00\x90\x00\xf8\x47\xf9\x03\x00\x80\xd2\x04\x00\x80\xd2\xd5\xff\xff\x97\xe0\xff\xff\x97\x80\x00\x00\x90\x00\xf4\x47\xf9\x40\x00\x00\xb4\xd8\xff\xff\x17\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x80\x00\x00\xb0\x00\x40\x00\x91\x81\x00\x00\xb0\x21\x40\x00\x91\x3f\x00\x00\xeb\xc0\x00\x00\x54\x81\x00\x00\x90\x21\xec\x47\xf9\x61\x00\x00\xb4\xf0\x03\x01\xaa\x00\x02\x1f\xd6\xc0\x03\x5f\xd6\x80\x00\x00\xb0\x00\x40\x00\x91\x81\x00\x00\xb0\x21\x40\x00\x91\x21\x00\x00\xcb\x22\xfc\x7f\xd3\x41\x0c\x81\x8b\x21\xfc\x41\x93\xc1\x00\x00\xb4\x82\x00\x00\x90\x42\xfc\x47\xf9\x62\x00\x00\xb4\xf0\x03\x02\xaa\x00\x02\x1f\xd6\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\xfd\x7b\xbe\xa9\xfd\x03\x00\x91\xf3\x0b\x00\xf9\x93\x00\x00\xb0\x60\x42\x40\x39\x40\x01\x00\x35\x80\x00\x00\x90\x00\xf0\x47\xf9\x80\x00\x00\xb4\x80\x00\x00\xb0\x00\x04\x40\xf9\xa9\xff\xff\x97\xd8\xff\xff\x97\x20\x00\x80\x52\x60\x42\x00\x39\xf3\x0b\x40\xf9\xfd\x7b\xc2\xa8\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\xdc\xff\xff\x17")]), -Memmap([Annotation(Region(0x0,0x847), Attr("segment","02 0 2120")), -Annotation(Region(0x600,0x61B), Attr("symbol","\"main\"")), -Annotation(Region(0x0,0xF9), Attr("section","\".shstrtab\"")), -Annotation(Region(0x0,0x22F), Attr("section","\".strtab\"")), -Annotation(Region(0x0,0x2A), Attr("section","\".comment\"")), -Annotation(Region(0x238,0x252), Attr("section","\".interp\"")), -Annotation(Region(0x254,0x277), Attr("section","\".note.gnu.build-id\"")), -Annotation(Region(0x278,0x297), Attr("section","\".note.ABI-tag\"")), -Annotation(Region(0x298,0x2B3), Attr("section","\".gnu.hash\"")), -Annotation(Region(0x2B8,0x38F), Attr("section","\".dynsym\"")), -Annotation(Region(0x390,0x41C), Attr("section","\".dynstr\"")), -Annotation(Region(0x41E,0x42F), Attr("section","\".gnu.version\"")), -Annotation(Region(0x430,0x45F), Attr("section","\".gnu.version_r\"")), -Annotation(Region(0x460,0x51F), Attr("section","\".rela.dyn\"")), -Annotation(Region(0x520,0x57F), Attr("section","\".rela.plt\"")), -Annotation(Region(0x580,0x597), Attr("section","\".init\"")), -Annotation(Region(0x5A0,0x5FF), Attr("section","\".plt\"")), -Annotation(Region(0x580,0x597), Attr("code-region","()")), -Annotation(Region(0x5A0,0x5FF), Attr("code-region","()")), -Annotation(Region(0x600,0x61B), Attr("symbol-info","main 0x600 28")), -Annotation(Region(0x640,0x673), Attr("symbol","\"_start\"")), -Annotation(Region(0x640,0x673), Attr("symbol-info","_start 0x640 52")), -Annotation(Region(0x674,0x687), Attr("symbol","\"call_weak_fn\"")), -Annotation(Region(0x674,0x687), Attr("symbol-info","call_weak_fn 0x674 20")), -Annotation(Region(0x754,0x767), Attr("section","\".fini\"")), -Annotation(Region(0x768,0x76B), Attr("section","\".rodata\"")), -Annotation(Region(0x76C,0x7A7), Attr("section","\".eh_frame_hdr\"")), -Annotation(Region(0x7A8,0x847), Attr("section","\".eh_frame\"")), -Annotation(Region(0x10D98,0x1100F), Attr("segment","03 0x10D98 648")), -Annotation(Region(0x10DA0,0x10DA7), Attr("section","\".fini_array\"")), -Annotation(Region(0x10DA8,0x10F97), Attr("section","\".dynamic\"")), -Annotation(Region(0x10D98,0x10D9F), Attr("section","\".init_array\"")), -Annotation(Region(0x10F98,0x10FFF), Attr("section","\".got\"")), -Annotation(Region(0x11000,0x1100F), Attr("section","\".data\"")), -Annotation(Region(0x600,0x753), Attr("section","\".text\"")), -Annotation(Region(0x600,0x753), Attr("code-region","()")), -Annotation(Region(0x754,0x767), Attr("code-region","()"))]), -Program(Tid(1_514, "%000005ea"), Attrs([]), - Subs([Sub(Tid(1_464, "@__cxa_finalize"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x5D0"), -Attr("stub","()")]), "__cxa_finalize", Args([Arg(Tid(1_515, "%000005eb"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("__cxa_finalize_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(860, "@__cxa_finalize"), - Attrs([Attr("address","0x5D0")]), Phis([]), -Defs([Def(Tid(1_108, "%00000454"), Attrs([Attr("address","0x5D0"), -Attr("insn","adrp x16, #65536")]), Var("R16",Imm(64)), Int(65536,64)), -Def(Tid(1_115, "%0000045b"), Attrs([Attr("address","0x5D4"), -Attr("insn","ldr x17, [x16, #0xfb8]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(4024,64)),LittleEndian(),64)), -Def(Tid(1_121, "%00000461"), Attrs([Attr("address","0x5D8"), -Attr("insn","add x16, x16, #0xfb8")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(4024,64)))]), Jmps([Call(Tid(1_126, "%00000466"), - Attrs([Attr("address","0x5DC"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), -Sub(Tid(1_465, "@__do_global_dtors_aux"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x700")]), - "__do_global_dtors_aux", Args([Arg(Tid(1_516, "%000005ec"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("__do_global_dtors_aux_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(713, "@__do_global_dtors_aux"), - Attrs([Attr("address","0x700")]), Phis([]), Defs([Def(Tid(717, "%000002cd"), - Attrs([Attr("address","0x700"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("#3",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(18446744073709551584,64))), -Def(Tid(723, "%000002d3"), Attrs([Attr("address","0x700"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("#3",Imm(64)),Var("R29",Imm(64)),LittleEndian(),64)), -Def(Tid(729, "%000002d9"), Attrs([Attr("address","0x700"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("#3",Imm(64)),Int(8,64)),Var("R30",Imm(64)),LittleEndian(),64)), -Def(Tid(733, "%000002dd"), Attrs([Attr("address","0x700"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("R31",Imm(64)), -Var("#3",Imm(64))), Def(Tid(739, "%000002e3"), - Attrs([Attr("address","0x704"), Attr("insn","mov x29, sp")]), - Var("R29",Imm(64)), Var("R31",Imm(64))), Def(Tid(747, "%000002eb"), - Attrs([Attr("address","0x708"), Attr("insn","str x19, [sp, #0x10]")]), - Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(16,64)),Var("R19",Imm(64)),LittleEndian(),64)), -Def(Tid(752, "%000002f0"), Attrs([Attr("address","0x70C"), -Attr("insn","adrp x19, #69632")]), Var("R19",Imm(64)), Int(69632,64)), -Def(Tid(759, "%000002f7"), Attrs([Attr("address","0x710"), -Attr("insn","ldrb w0, [x19, #0x10]")]), Var("R0",Imm(64)), -UNSIGNED(64,Load(Var("mem",Mem(64,8)),PLUS(Var("R19",Imm(64)),Int(16,64)),LittleEndian(),8)))]), -Jmps([Goto(Tid(766, "%000002fe"), Attrs([Attr("address","0x714"), -Attr("insn","cbnz w0, #0x28")]), - NEQ(Extract(31,0,Var("R0",Imm(64))),Int(0,32)), -Direct(Tid(764, "%000002fc"))), Goto(Tid(1_504, "%000005e0"), Attrs([]), - Int(1,1), Direct(Tid(805, "%00000325")))])), Blk(Tid(805, "%00000325"), - Attrs([Attr("address","0x718")]), Phis([]), Defs([Def(Tid(808, "%00000328"), - Attrs([Attr("address","0x718"), Attr("insn","adrp x0, #65536")]), - Var("R0",Imm(64)), Int(65536,64)), Def(Tid(815, "%0000032f"), - Attrs([Attr("address","0x71C"), Attr("insn","ldr x0, [x0, #0xfe0]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(4064,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(821, "%00000335"), Attrs([Attr("address","0x720"), -Attr("insn","cbz x0, #0x10")]), EQ(Var("R0",Imm(64)),Int(0,64)), -Direct(Tid(819, "%00000333"))), Goto(Tid(1_505, "%000005e1"), Attrs([]), - Int(1,1), Direct(Tid(844, "%0000034c")))])), Blk(Tid(844, "%0000034c"), - Attrs([Attr("address","0x724")]), Phis([]), Defs([Def(Tid(847, "%0000034f"), - Attrs([Attr("address","0x724"), Attr("insn","adrp x0, #69632")]), - Var("R0",Imm(64)), Int(69632,64)), Def(Tid(854, "%00000356"), - Attrs([Attr("address","0x728"), Attr("insn","ldr x0, [x0, #0x8]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(859, "%0000035b"), Attrs([Attr("address","0x72C"), -Attr("insn","bl #-0x15c")]), Var("R30",Imm(64)), Int(1840,64))]), -Jmps([Call(Tid(862, "%0000035e"), Attrs([Attr("address","0x72C"), -Attr("insn","bl #-0x15c")]), Int(1,1), -(Direct(Tid(1_464, "@__cxa_finalize")),Direct(Tid(819, "%00000333"))))])), -Blk(Tid(819, "%00000333"), Attrs([Attr("address","0x730")]), Phis([]), -Defs([Def(Tid(827, "%0000033b"), Attrs([Attr("address","0x730"), -Attr("insn","bl #-0xa0")]), Var("R30",Imm(64)), Int(1844,64))]), -Jmps([Call(Tid(829, "%0000033d"), Attrs([Attr("address","0x730"), -Attr("insn","bl #-0xa0")]), Int(1,1), -(Direct(Tid(1_478, "@deregister_tm_clones")),Direct(Tid(831, "%0000033f"))))])), -Blk(Tid(831, "%0000033f"), Attrs([Attr("address","0x734")]), Phis([]), -Defs([Def(Tid(834, "%00000342"), Attrs([Attr("address","0x734"), -Attr("insn","mov w0, #0x1")]), Var("R0",Imm(64)), Int(1,64)), -Def(Tid(842, "%0000034a"), Attrs([Attr("address","0x738"), -Attr("insn","strb w0, [x19, #0x10]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R19",Imm(64)),Int(16,64)),Extract(7,0,Var("R0",Imm(64))),LittleEndian(),8))]), -Jmps([Goto(Tid(1_506, "%000005e2"), Attrs([]), Int(1,1), -Direct(Tid(764, "%000002fc")))])), Blk(Tid(764, "%000002fc"), - Attrs([Attr("address","0x73C")]), Phis([]), Defs([Def(Tid(774, "%00000306"), - Attrs([Attr("address","0x73C"), Attr("insn","ldr x19, [sp, #0x10]")]), - Var("R19",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(16,64)),LittleEndian(),64)), -Def(Tid(781, "%0000030d"), Attrs([Attr("address","0x740"), -Attr("insn","ldp x29, x30, [sp], #0x20")]), Var("R29",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(786, "%00000312"), Attrs([Attr("address","0x740"), -Attr("insn","ldp x29, x30, [sp], #0x20")]), Var("R30",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(790, "%00000316"), Attrs([Attr("address","0x740"), -Attr("insn","ldp x29, x30, [sp], #0x20")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(32,64)))]), Jmps([Call(Tid(795, "%0000031b"), - Attrs([Attr("address","0x744"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), Sub(Tid(1_469, "@__libc_start_main"), - Attrs([Attr("c.proto","signed (*)(signed (*)(signed , char** , char** );* main, signed , char** , \nvoid* auxv)"), -Attr("address","0x5C0"), Attr("stub","()")]), "__libc_start_main", - Args([Arg(Tid(1_517, "%000005ed"), - Attrs([Attr("c.layout","**[ : 64]"), -Attr("c.data","Top:u64 ptr ptr"), -Attr("c.type","signed (*)(signed , char** , char** );*")]), - Var("__libc_start_main_main",Imm(64)), Var("R0",Imm(64)), In()), -Arg(Tid(1_518, "%000005ee"), Attrs([Attr("c.layout","[signed : 32]"), -Attr("c.data","Top:u32"), Attr("c.type","signed")]), - Var("__libc_start_main_arg2",Imm(32)), LOW(32,Var("R1",Imm(64))), In()), -Arg(Tid(1_519, "%000005ef"), Attrs([Attr("c.layout","**[char : 8]"), -Attr("c.data","Top:u8 ptr ptr"), Attr("c.type","char**")]), - Var("__libc_start_main_arg3",Imm(64)), Var("R2",Imm(64)), Both()), -Arg(Tid(1_520, "%000005f0"), Attrs([Attr("c.layout","*[ : 8]"), -Attr("c.data","{} ptr"), Attr("c.type","void*")]), - Var("__libc_start_main_auxv",Imm(64)), Var("R3",Imm(64)), Both()), -Arg(Tid(1_521, "%000005f1"), Attrs([Attr("c.layout","[signed : 32]"), -Attr("c.data","Top:u32"), Attr("c.type","signed")]), - Var("__libc_start_main_result",Imm(32)), LOW(32,Var("R0",Imm(64))), -Out())]), Blks([Blk(Tid(546, "@__libc_start_main"), - Attrs([Attr("address","0x5C0")]), Phis([]), -Defs([Def(Tid(1_086, "%0000043e"), Attrs([Attr("address","0x5C0"), -Attr("insn","adrp x16, #65536")]), Var("R16",Imm(64)), Int(65536,64)), -Def(Tid(1_093, "%00000445"), Attrs([Attr("address","0x5C4"), -Attr("insn","ldr x17, [x16, #0xfb0]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(4016,64)),LittleEndian(),64)), -Def(Tid(1_099, "%0000044b"), Attrs([Attr("address","0x5C8"), -Attr("insn","add x16, x16, #0xfb0")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(4016,64)))]), Jmps([Call(Tid(1_104, "%00000450"), - Attrs([Attr("address","0x5CC"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), Sub(Tid(1_470, "@_fini"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x754")]), - "_fini", Args([Arg(Tid(1_522, "%000005f2"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("_fini_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(31, "@_fini"), - Attrs([Attr("address","0x754")]), Phis([]), Defs([Def(Tid(37, "%00000025"), - Attrs([Attr("address","0x758"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("#0",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(18446744073709551600,64))), -Def(Tid(43, "%0000002b"), Attrs([Attr("address","0x758"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("#0",Imm(64)),Var("R29",Imm(64)),LittleEndian(),64)), -Def(Tid(49, "%00000031"), Attrs([Attr("address","0x758"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("#0",Imm(64)),Int(8,64)),Var("R30",Imm(64)),LittleEndian(),64)), -Def(Tid(53, "%00000035"), Attrs([Attr("address","0x758"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("R31",Imm(64)), -Var("#0",Imm(64))), Def(Tid(59, "%0000003b"), Attrs([Attr("address","0x75C"), -Attr("insn","mov x29, sp")]), Var("R29",Imm(64)), Var("R31",Imm(64))), -Def(Tid(66, "%00000042"), Attrs([Attr("address","0x760"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R29",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(71, "%00000047"), Attrs([Attr("address","0x760"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R30",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(75, "%0000004b"), Attrs([Attr("address","0x760"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(16,64)))]), Jmps([Call(Tid(80, "%00000050"), - Attrs([Attr("address","0x764"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), Sub(Tid(1_471, "@_init"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x580")]), - "_init", Args([Arg(Tid(1_523, "%000005f3"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("_init_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(1_290, "@_init"), - Attrs([Attr("address","0x580")]), Phis([]), -Defs([Def(Tid(1_296, "%00000510"), Attrs([Attr("address","0x584"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("#5",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(18446744073709551600,64))), -Def(Tid(1_302, "%00000516"), Attrs([Attr("address","0x584"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("#5",Imm(64)),Var("R29",Imm(64)),LittleEndian(),64)), -Def(Tid(1_308, "%0000051c"), Attrs([Attr("address","0x584"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("#5",Imm(64)),Int(8,64)),Var("R30",Imm(64)),LittleEndian(),64)), -Def(Tid(1_312, "%00000520"), Attrs([Attr("address","0x584"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("R31",Imm(64)), -Var("#5",Imm(64))), Def(Tid(1_318, "%00000526"), - Attrs([Attr("address","0x588"), Attr("insn","mov x29, sp")]), - Var("R29",Imm(64)), Var("R31",Imm(64))), Def(Tid(1_323, "%0000052b"), - Attrs([Attr("address","0x58C"), Attr("insn","bl #0xe8")]), - Var("R30",Imm(64)), Int(1424,64))]), Jmps([Call(Tid(1_325, "%0000052d"), - Attrs([Attr("address","0x58C"), Attr("insn","bl #0xe8")]), Int(1,1), -(Direct(Tid(1_476, "@call_weak_fn")),Direct(Tid(1_327, "%0000052f"))))])), -Blk(Tid(1_327, "%0000052f"), Attrs([Attr("address","0x590")]), Phis([]), -Defs([Def(Tid(1_332, "%00000534"), Attrs([Attr("address","0x590"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R29",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(1_337, "%00000539"), Attrs([Attr("address","0x590"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R30",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(1_341, "%0000053d"), Attrs([Attr("address","0x590"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(16,64)))]), Jmps([Call(Tid(1_346, "%00000542"), - Attrs([Attr("address","0x594"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), Sub(Tid(1_472, "@_start"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x640"), -Attr("entry-point","()")]), "_start", Args([Arg(Tid(1_524, "%000005f4"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("_start_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(483, "@_start"), - Attrs([Attr("address","0x640")]), Phis([]), Defs([Def(Tid(488, "%000001e8"), - Attrs([Attr("address","0x644"), Attr("insn","mov x29, #0x0")]), - Var("R29",Imm(64)), Int(0,64)), Def(Tid(493, "%000001ed"), - Attrs([Attr("address","0x648"), Attr("insn","mov x30, #0x0")]), - Var("R30",Imm(64)), Int(0,64)), Def(Tid(499, "%000001f3"), - Attrs([Attr("address","0x64C"), Attr("insn","mov x5, x0")]), - Var("R5",Imm(64)), Var("R0",Imm(64))), Def(Tid(506, "%000001fa"), - Attrs([Attr("address","0x650"), Attr("insn","ldr x1, [sp]")]), - Var("R1",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(512, "%00000200"), Attrs([Attr("address","0x654"), -Attr("insn","add x2, sp, #0x8")]), Var("R2",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(8,64))), Def(Tid(518, "%00000206"), - Attrs([Attr("address","0x658"), Attr("insn","mov x6, sp")]), - Var("R6",Imm(64)), Var("R31",Imm(64))), Def(Tid(523, "%0000020b"), - Attrs([Attr("address","0x65C"), Attr("insn","adrp x0, #65536")]), - Var("R0",Imm(64)), Int(65536,64)), Def(Tid(530, "%00000212"), - Attrs([Attr("address","0x660"), Attr("insn","ldr x0, [x0, #0xff0]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(4080,64)),LittleEndian(),64)), -Def(Tid(535, "%00000217"), Attrs([Attr("address","0x664"), -Attr("insn","mov x3, #0x0")]), Var("R3",Imm(64)), Int(0,64)), -Def(Tid(540, "%0000021c"), Attrs([Attr("address","0x668"), -Attr("insn","mov x4, #0x0")]), Var("R4",Imm(64)), Int(0,64)), -Def(Tid(545, "%00000221"), Attrs([Attr("address","0x66C"), -Attr("insn","bl #-0xac")]), Var("R30",Imm(64)), Int(1648,64))]), -Jmps([Call(Tid(548, "%00000224"), Attrs([Attr("address","0x66C"), -Attr("insn","bl #-0xac")]), Int(1,1), -(Direct(Tid(1_469, "@__libc_start_main")),Direct(Tid(550, "%00000226"))))])), -Blk(Tid(550, "%00000226"), Attrs([Attr("address","0x670")]), Phis([]), -Defs([Def(Tid(553, "%00000229"), Attrs([Attr("address","0x670"), -Attr("insn","bl #-0x80")]), Var("R30",Imm(64)), Int(1652,64))]), -Jmps([Call(Tid(556, "%0000022c"), Attrs([Attr("address","0x670"), -Attr("insn","bl #-0x80")]), Int(1,1), -(Direct(Tid(1_475, "@abort")),Direct(Tid(1_507, "%000005e3"))))])), -Blk(Tid(1_507, "%000005e3"), Attrs([]), Phis([]), Defs([]), -Jmps([Call(Tid(1_508, "%000005e4"), Attrs([]), Int(1,1), -(Direct(Tid(1_476, "@call_weak_fn")),))]))])), Sub(Tid(1_475, "@abort"), - Attrs([Attr("noreturn","()"), Attr("c.proto","void (*)(void)"), -Attr("address","0x5F0"), Attr("stub","()")]), "abort", Args([]), -Blks([Blk(Tid(554, "@abort"), Attrs([Attr("address","0x5F0")]), Phis([]), -Defs([Def(Tid(1_152, "%00000480"), Attrs([Attr("address","0x5F0"), -Attr("insn","adrp x16, #65536")]), Var("R16",Imm(64)), Int(65536,64)), -Def(Tid(1_159, "%00000487"), Attrs([Attr("address","0x5F4"), -Attr("insn","ldr x17, [x16, #0xfc8]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(4040,64)),LittleEndian(),64)), -Def(Tid(1_165, "%0000048d"), Attrs([Attr("address","0x5F8"), -Attr("insn","add x16, x16, #0xfc8")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(4040,64)))]), Jmps([Call(Tid(1_170, "%00000492"), - Attrs([Attr("address","0x5FC"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), Sub(Tid(1_476, "@call_weak_fn"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x674")]), - "call_weak_fn", Args([Arg(Tid(1_525, "%000005f5"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("call_weak_fn_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(558, "@call_weak_fn"), - Attrs([Attr("address","0x674")]), Phis([]), Defs([Def(Tid(561, "%00000231"), - Attrs([Attr("address","0x674"), Attr("insn","adrp x0, #65536")]), - Var("R0",Imm(64)), Int(65536,64)), Def(Tid(568, "%00000238"), - Attrs([Attr("address","0x678"), Attr("insn","ldr x0, [x0, #0xfe8]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(4072,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(574, "%0000023e"), Attrs([Attr("address","0x67C"), -Attr("insn","cbz x0, #0x8")]), EQ(Var("R0",Imm(64)),Int(0,64)), -Direct(Tid(572, "%0000023c"))), Goto(Tid(1_509, "%000005e5"), Attrs([]), - Int(1,1), Direct(Tid(924, "%0000039c")))])), Blk(Tid(572, "%0000023c"), - Attrs([Attr("address","0x684")]), Phis([]), Defs([]), -Jmps([Call(Tid(580, "%00000244"), Attrs([Attr("address","0x684"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))])), -Blk(Tid(924, "%0000039c"), Attrs([Attr("address","0x680")]), Phis([]), -Defs([]), Jmps([Goto(Tid(927, "%0000039f"), Attrs([Attr("address","0x680"), -Attr("insn","b #-0xa0")]), Int(1,1), Direct(Tid(925, "@__gmon_start__")))])), -Blk(Tid(925, "@__gmon_start__"), Attrs([Attr("address","0x5E0")]), Phis([]), -Defs([Def(Tid(1_130, "%0000046a"), Attrs([Attr("address","0x5E0"), -Attr("insn","adrp x16, #65536")]), Var("R16",Imm(64)), Int(65536,64)), -Def(Tid(1_137, "%00000471"), Attrs([Attr("address","0x5E4"), -Attr("insn","ldr x17, [x16, #0xfc0]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(4032,64)),LittleEndian(),64)), -Def(Tid(1_143, "%00000477"), Attrs([Attr("address","0x5E8"), -Attr("insn","add x16, x16, #0xfc0")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(4032,64)))]), Jmps([Call(Tid(1_148, "%0000047c"), - Attrs([Attr("address","0x5EC"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), -Sub(Tid(1_478, "@deregister_tm_clones"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x690")]), - "deregister_tm_clones", Args([Arg(Tid(1_526, "%000005f6"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("deregister_tm_clones_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(586, "@deregister_tm_clones"), - Attrs([Attr("address","0x690")]), Phis([]), Defs([Def(Tid(589, "%0000024d"), - Attrs([Attr("address","0x690"), Attr("insn","adrp x0, #69632")]), - Var("R0",Imm(64)), Int(69632,64)), Def(Tid(595, "%00000253"), - Attrs([Attr("address","0x694"), Attr("insn","add x0, x0, #0x10")]), - Var("R0",Imm(64)), PLUS(Var("R0",Imm(64)),Int(16,64))), -Def(Tid(600, "%00000258"), Attrs([Attr("address","0x698"), -Attr("insn","adrp x1, #69632")]), Var("R1",Imm(64)), Int(69632,64)), -Def(Tid(606, "%0000025e"), Attrs([Attr("address","0x69C"), -Attr("insn","add x1, x1, #0x10")]), Var("R1",Imm(64)), -PLUS(Var("R1",Imm(64)),Int(16,64))), Def(Tid(612, "%00000264"), - Attrs([Attr("address","0x6A0"), Attr("insn","cmp x1, x0")]), - Var("#1",Imm(64)), NOT(Var("R0",Imm(64)))), Def(Tid(617, "%00000269"), - Attrs([Attr("address","0x6A0"), Attr("insn","cmp x1, x0")]), - Var("#2",Imm(64)), PLUS(Var("R1",Imm(64)),NOT(Var("R0",Imm(64))))), -Def(Tid(623, "%0000026f"), Attrs([Attr("address","0x6A0"), -Attr("insn","cmp x1, x0")]), Var("VF",Imm(1)), -NEQ(SIGNED(65,PLUS(Var("#2",Imm(64)),Int(1,64))),PLUS(PLUS(SIGNED(65,Var("R1",Imm(64))),SIGNED(65,Var("#1",Imm(64)))),Int(1,65)))), -Def(Tid(629, "%00000275"), Attrs([Attr("address","0x6A0"), -Attr("insn","cmp x1, x0")]), Var("CF",Imm(1)), -NEQ(UNSIGNED(65,PLUS(Var("#2",Imm(64)),Int(1,64))),PLUS(PLUS(UNSIGNED(65,Var("R1",Imm(64))),UNSIGNED(65,Var("#1",Imm(64)))),Int(1,65)))), -Def(Tid(633, "%00000279"), Attrs([Attr("address","0x6A0"), -Attr("insn","cmp x1, x0")]), Var("ZF",Imm(1)), -EQ(PLUS(Var("#2",Imm(64)),Int(1,64)),Int(0,64))), Def(Tid(637, "%0000027d"), - Attrs([Attr("address","0x6A0"), Attr("insn","cmp x1, x0")]), - Var("NF",Imm(1)), Extract(63,63,PLUS(Var("#2",Imm(64)),Int(1,64))))]), -Jmps([Goto(Tid(643, "%00000283"), Attrs([Attr("address","0x6A4"), -Attr("insn","b.eq #0x18")]), EQ(Var("ZF",Imm(1)),Int(1,1)), -Direct(Tid(641, "%00000281"))), Goto(Tid(1_510, "%000005e6"), Attrs([]), - Int(1,1), Direct(Tid(894, "%0000037e")))])), Blk(Tid(894, "%0000037e"), - Attrs([Attr("address","0x6A8")]), Phis([]), Defs([Def(Tid(897, "%00000381"), - Attrs([Attr("address","0x6A8"), Attr("insn","adrp x1, #65536")]), - Var("R1",Imm(64)), Int(65536,64)), Def(Tid(904, "%00000388"), - Attrs([Attr("address","0x6AC"), Attr("insn","ldr x1, [x1, #0xfd8]")]), - Var("R1",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R1",Imm(64)),Int(4056,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(909, "%0000038d"), Attrs([Attr("address","0x6B0"), -Attr("insn","cbz x1, #0xc")]), EQ(Var("R1",Imm(64)),Int(0,64)), -Direct(Tid(641, "%00000281"))), Goto(Tid(1_511, "%000005e7"), Attrs([]), - Int(1,1), Direct(Tid(913, "%00000391")))])), Blk(Tid(641, "%00000281"), - Attrs([Attr("address","0x6BC")]), Phis([]), Defs([]), -Jmps([Call(Tid(649, "%00000289"), Attrs([Attr("address","0x6BC"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))])), -Blk(Tid(913, "%00000391"), Attrs([Attr("address","0x6B4")]), Phis([]), -Defs([Def(Tid(917, "%00000395"), Attrs([Attr("address","0x6B4"), -Attr("insn","mov x16, x1")]), Var("R16",Imm(64)), Var("R1",Imm(64)))]), -Jmps([Call(Tid(922, "%0000039a"), Attrs([Attr("address","0x6B8"), -Attr("insn","br x16")]), Int(1,1), (Indirect(Var("R16",Imm(64))),))]))])), -Sub(Tid(1_481, "@frame_dummy"), Attrs([Attr("c.proto","signed (*)(void)"), -Attr("address","0x750")]), "frame_dummy", Args([Arg(Tid(1_527, "%000005f7"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("frame_dummy_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(801, "@frame_dummy"), - Attrs([Attr("address","0x750")]), Phis([]), Defs([]), -Jmps([Call(Tid(803, "%00000323"), Attrs([Attr("address","0x750"), -Attr("insn","b #-0x90")]), Int(1,1), -(Direct(Tid(1_483, "@register_tm_clones")),))]))])), Sub(Tid(1_482, "@main"), - Attrs([Attr("c.proto","signed (*)(signed argc, const char** argv)"), -Attr("address","0x600"), Attr("stub","()")]), "main", - Args([Arg(Tid(1_528, "%000005f8"), Attrs([Attr("c.layout","[signed : 32]"), -Attr("c.data","Top:u32"), Attr("c.type","signed")]), - Var("main_argc",Imm(32)), LOW(32,Var("R0",Imm(64))), In()), -Arg(Tid(1_529, "%000005f9"), Attrs([Attr("c.layout","**[char : 8]"), -Attr("c.data","Top:u8 ptr ptr"), Attr("c.type"," const char**")]), - Var("main_argv",Imm(64)), Var("R1",Imm(64)), Both()), -Arg(Tid(1_530, "%000005fa"), Attrs([Attr("c.layout","[signed : 32]"), -Attr("c.data","Top:u32"), Attr("c.type","signed")]), - Var("main_result",Imm(32)), LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(424, "@main"), Attrs([Attr("address","0x600")]), Phis([]), -Defs([Def(Tid(427, "%000001ab"), Attrs([Attr("address","0x600"), -Attr("insn","adrp x1, #69632")]), Var("R1",Imm(64)), Int(69632,64)), -Def(Tid(433, "%000001b1"), Attrs([Attr("address","0x604"), -Attr("insn","add x2, x1, #0x14")]), Var("R2",Imm(64)), -PLUS(Var("R1",Imm(64)),Int(20,64))), Def(Tid(438, "%000001b6"), - Attrs([Attr("address","0x608"), Attr("insn","mov w3, #0x2")]), - Var("R3",Imm(64)), Int(2,64)), Def(Tid(443, "%000001bb"), - Attrs([Attr("address","0x60C"), Attr("insn","mov w0, #0x0")]), - Var("R0",Imm(64)), Int(0,64)), Def(Tid(450, "%000001c2"), - Attrs([Attr("address","0x610"), Attr("insn","str wzr, [x1, #0x14]")]), - Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R1",Imm(64)),Int(20,64)),Int(0,32),LittleEndian(),32)), -Def(Tid(458, "%000001ca"), Attrs([Attr("address","0x614"), -Attr("insn","str w3, [x2, #0x4]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R2",Imm(64)),Int(4,64)),Extract(31,0,Var("R3",Imm(64))),LittleEndian(),32))]), -Jmps([Call(Tid(463, "%000001cf"), Attrs([Attr("address","0x618"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))]))])), -Sub(Tid(1_483, "@register_tm_clones"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x6C0")]), - "register_tm_clones", Args([Arg(Tid(1_531, "%000005fb"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("register_tm_clones_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(651, "@register_tm_clones"), Attrs([Attr("address","0x6C0")]), - Phis([]), Defs([Def(Tid(654, "%0000028e"), Attrs([Attr("address","0x6C0"), -Attr("insn","adrp x0, #69632")]), Var("R0",Imm(64)), Int(69632,64)), -Def(Tid(660, "%00000294"), Attrs([Attr("address","0x6C4"), -Attr("insn","add x0, x0, #0x10")]), Var("R0",Imm(64)), -PLUS(Var("R0",Imm(64)),Int(16,64))), Def(Tid(665, "%00000299"), - Attrs([Attr("address","0x6C8"), Attr("insn","adrp x1, #69632")]), - Var("R1",Imm(64)), Int(69632,64)), Def(Tid(671, "%0000029f"), - Attrs([Attr("address","0x6CC"), Attr("insn","add x1, x1, #0x10")]), - Var("R1",Imm(64)), PLUS(Var("R1",Imm(64)),Int(16,64))), -Def(Tid(678, "%000002a6"), Attrs([Attr("address","0x6D0"), -Attr("insn","sub x1, x1, x0")]), Var("R1",Imm(64)), -PLUS(PLUS(Var("R1",Imm(64)),NOT(Var("R0",Imm(64)))),Int(1,64))), -Def(Tid(684, "%000002ac"), Attrs([Attr("address","0x6D4"), -Attr("insn","lsr x2, x1, #63")]), Var("R2",Imm(64)), -Concat(Int(0,63),Extract(63,63,Var("R1",Imm(64))))), -Def(Tid(691, "%000002b3"), Attrs([Attr("address","0x6D8"), -Attr("insn","add x1, x2, x1, asr #3")]), Var("R1",Imm(64)), -PLUS(Var("R2",Imm(64)),ARSHIFT(Var("R1",Imm(64)),Int(3,3)))), -Def(Tid(697, "%000002b9"), Attrs([Attr("address","0x6DC"), -Attr("insn","asr x1, x1, #1")]), Var("R1",Imm(64)), -SIGNED(64,Extract(63,1,Var("R1",Imm(64)))))]), -Jmps([Goto(Tid(703, "%000002bf"), Attrs([Attr("address","0x6E0"), -Attr("insn","cbz x1, #0x18")]), EQ(Var("R1",Imm(64)),Int(0,64)), -Direct(Tid(701, "%000002bd"))), Goto(Tid(1_512, "%000005e8"), Attrs([]), - Int(1,1), Direct(Tid(864, "%00000360")))])), Blk(Tid(864, "%00000360"), - Attrs([Attr("address","0x6E4")]), Phis([]), Defs([Def(Tid(867, "%00000363"), - Attrs([Attr("address","0x6E4"), Attr("insn","adrp x2, #65536")]), - Var("R2",Imm(64)), Int(65536,64)), Def(Tid(874, "%0000036a"), - Attrs([Attr("address","0x6E8"), Attr("insn","ldr x2, [x2, #0xff8]")]), - Var("R2",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R2",Imm(64)),Int(4088,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(879, "%0000036f"), Attrs([Attr("address","0x6EC"), -Attr("insn","cbz x2, #0xc")]), EQ(Var("R2",Imm(64)),Int(0,64)), -Direct(Tid(701, "%000002bd"))), Goto(Tid(1_513, "%000005e9"), Attrs([]), - Int(1,1), Direct(Tid(883, "%00000373")))])), Blk(Tid(701, "%000002bd"), - Attrs([Attr("address","0x6F8")]), Phis([]), Defs([]), -Jmps([Call(Tid(709, "%000002c5"), Attrs([Attr("address","0x6F8"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))])), -Blk(Tid(883, "%00000373"), Attrs([Attr("address","0x6F0")]), Phis([]), -Defs([Def(Tid(887, "%00000377"), Attrs([Attr("address","0x6F0"), -Attr("insn","mov x16, x2")]), Var("R16",Imm(64)), Var("R2",Imm(64)))]), -Jmps([Call(Tid(892, "%0000037c"), Attrs([Attr("address","0x6F4"), -Attr("insn","br x16")]), Int(1,1), -(Indirect(Var("R16",Imm(64))),))]))]))]))) \ No newline at end of file diff --git a/src/test/correct/basic_sec_policy_write/gcc_O2/basic_sec_policy_write.bir b/src/test/correct/basic_sec_policy_write/gcc_O2/basic_sec_policy_write.bir deleted file mode 100644 index b9b40e586..000000000 --- a/src/test/correct/basic_sec_policy_write/gcc_O2/basic_sec_policy_write.bir +++ /dev/null @@ -1,229 +0,0 @@ -000005ea: program -000005b8: sub __cxa_finalize(__cxa_finalize_result) -000005eb: __cxa_finalize_result :: out u32 = low:32[R0] - -0000035c: -00000454: R16 := 0x10000 -0000045b: R17 := mem[R16 + 0xFB8, el]:u64 -00000461: R16 := R16 + 0xFB8 -00000466: call R17 with noreturn - -000005b9: sub __do_global_dtors_aux(__do_global_dtors_aux_result) -000005ec: __do_global_dtors_aux_result :: out u32 = low:32[R0] - -000002c9: -000002cd: #3 := R31 - 0x20 -000002d3: mem := mem with [#3, el]:u64 <- R29 -000002d9: mem := mem with [#3 + 8, el]:u64 <- R30 -000002dd: R31 := #3 -000002e3: R29 := R31 -000002eb: mem := mem with [R31 + 0x10, el]:u64 <- R19 -000002f0: R19 := 0x11000 -000002f7: R0 := pad:64[mem[R19 + 0x10]] -000002fe: when 31:0[R0] <> 0 goto %000002fc -000005e0: goto %00000325 - -00000325: -00000328: R0 := 0x10000 -0000032f: R0 := mem[R0 + 0xFE0, el]:u64 -00000335: when R0 = 0 goto %00000333 -000005e1: goto %0000034c - -0000034c: -0000034f: R0 := 0x11000 -00000356: R0 := mem[R0 + 8, el]:u64 -0000035b: R30 := 0x730 -0000035e: call @__cxa_finalize with return %00000333 - -00000333: -0000033b: R30 := 0x734 -0000033d: call @deregister_tm_clones with return %0000033f - -0000033f: -00000342: R0 := 1 -0000034a: mem := mem with [R19 + 0x10] <- 7:0[R0] -000005e2: goto %000002fc - -000002fc: -00000306: R19 := mem[R31 + 0x10, el]:u64 -0000030d: R29 := mem[R31, el]:u64 -00000312: R30 := mem[R31 + 8, el]:u64 -00000316: R31 := R31 + 0x20 -0000031b: call R30 with noreturn - -000005bd: sub __libc_start_main(__libc_start_main_main, __libc_start_main_arg2, __libc_start_main_arg3, __libc_start_main_auxv, __libc_start_main_result) -000005ed: __libc_start_main_main :: in u64 = R0 -000005ee: __libc_start_main_arg2 :: in u32 = low:32[R1] -000005ef: __libc_start_main_arg3 :: in out u64 = R2 -000005f0: __libc_start_main_auxv :: in out u64 = R3 -000005f1: __libc_start_main_result :: out u32 = low:32[R0] - -00000222: -0000043e: R16 := 0x10000 -00000445: R17 := mem[R16 + 0xFB0, el]:u64 -0000044b: R16 := R16 + 0xFB0 -00000450: call R17 with noreturn - -000005be: sub _fini(_fini_result) -000005f2: _fini_result :: out u32 = low:32[R0] - -0000001f: -00000025: #0 := R31 - 0x10 -0000002b: mem := mem with [#0, el]:u64 <- R29 -00000031: mem := mem with [#0 + 8, el]:u64 <- R30 -00000035: R31 := #0 -0000003b: R29 := R31 -00000042: R29 := mem[R31, el]:u64 -00000047: R30 := mem[R31 + 8, el]:u64 -0000004b: R31 := R31 + 0x10 -00000050: call R30 with noreturn - -000005bf: sub _init(_init_result) -000005f3: _init_result :: out u32 = low:32[R0] - -0000050a: -00000510: #5 := R31 - 0x10 -00000516: mem := mem with [#5, el]:u64 <- R29 -0000051c: mem := mem with [#5 + 8, el]:u64 <- R30 -00000520: R31 := #5 -00000526: R29 := R31 -0000052b: R30 := 0x590 -0000052d: call @call_weak_fn with return %0000052f - -0000052f: -00000534: R29 := mem[R31, el]:u64 -00000539: R30 := mem[R31 + 8, el]:u64 -0000053d: R31 := R31 + 0x10 -00000542: call R30 with noreturn - -000005c0: sub _start(_start_result) -000005f4: _start_result :: out u32 = low:32[R0] - -000001e3: -000001e8: R29 := 0 -000001ed: R30 := 0 -000001f3: R5 := R0 -000001fa: R1 := mem[R31, el]:u64 -00000200: R2 := R31 + 8 -00000206: R6 := R31 -0000020b: R0 := 0x10000 -00000212: R0 := mem[R0 + 0xFF0, el]:u64 -00000217: R3 := 0 -0000021c: R4 := 0 -00000221: R30 := 0x670 -00000224: call @__libc_start_main with return %00000226 - -00000226: -00000229: R30 := 0x674 -0000022c: call @abort with return %000005e3 - -000005e3: -000005e4: call @call_weak_fn with noreturn - -000005c3: sub abort() - - -0000022a: -00000480: R16 := 0x10000 -00000487: R17 := mem[R16 + 0xFC8, el]:u64 -0000048d: R16 := R16 + 0xFC8 -00000492: call R17 with noreturn - -000005c4: sub call_weak_fn(call_weak_fn_result) -000005f5: call_weak_fn_result :: out u32 = low:32[R0] - -0000022e: -00000231: R0 := 0x10000 -00000238: R0 := mem[R0 + 0xFE8, el]:u64 -0000023e: when R0 = 0 goto %0000023c -000005e5: goto %0000039c - -0000023c: -00000244: call R30 with noreturn - -0000039c: -0000039f: goto @__gmon_start__ - -0000039d: -0000046a: R16 := 0x10000 -00000471: R17 := mem[R16 + 0xFC0, el]:u64 -00000477: R16 := R16 + 0xFC0 -0000047c: call R17 with noreturn - -000005c6: sub deregister_tm_clones(deregister_tm_clones_result) -000005f6: deregister_tm_clones_result :: out u32 = low:32[R0] - -0000024a: -0000024d: R0 := 0x11000 -00000253: R0 := R0 + 0x10 -00000258: R1 := 0x11000 -0000025e: R1 := R1 + 0x10 -00000264: #1 := ~R0 -00000269: #2 := R1 + ~R0 -0000026f: VF := extend:65[#2 + 1] <> extend:65[R1] + extend:65[#1] + 1 -00000275: CF := pad:65[#2 + 1] <> pad:65[R1] + pad:65[#1] + 1 -00000279: ZF := #2 + 1 = 0 -0000027d: NF := 63:63[#2 + 1] -00000283: when ZF goto %00000281 -000005e6: goto %0000037e - -0000037e: -00000381: R1 := 0x10000 -00000388: R1 := mem[R1 + 0xFD8, el]:u64 -0000038d: when R1 = 0 goto %00000281 -000005e7: goto %00000391 - -00000281: -00000289: call R30 with noreturn - -00000391: -00000395: R16 := R1 -0000039a: call R16 with noreturn - -000005c9: sub frame_dummy(frame_dummy_result) -000005f7: frame_dummy_result :: out u32 = low:32[R0] - -00000321: -00000323: call @register_tm_clones with noreturn - -000005ca: sub main(main_argc, main_argv, main_result) -000005f8: main_argc :: in u32 = low:32[R0] -000005f9: main_argv :: in out u64 = R1 -000005fa: main_result :: out u32 = low:32[R0] - -000001a8: -000001ab: R1 := 0x11000 -000001b1: R2 := R1 + 0x14 -000001b6: R3 := 2 -000001bb: R0 := 0 -000001c2: mem := mem with [R1 + 0x14, el]:u32 <- 0 -000001ca: mem := mem with [R2 + 4, el]:u32 <- 31:0[R3] -000001cf: call R30 with noreturn - -000005cb: sub register_tm_clones(register_tm_clones_result) -000005fb: register_tm_clones_result :: out u32 = low:32[R0] - -0000028b: -0000028e: R0 := 0x11000 -00000294: R0 := R0 + 0x10 -00000299: R1 := 0x11000 -0000029f: R1 := R1 + 0x10 -000002a6: R1 := R1 + ~R0 + 1 -000002ac: R2 := 0.63:63[R1] -000002b3: R1 := R2 + (R1 ~>> 3) -000002b9: R1 := extend:64[63:1[R1]] -000002bf: when R1 = 0 goto %000002bd -000005e8: goto %00000360 - -00000360: -00000363: R2 := 0x10000 -0000036a: R2 := mem[R2 + 0xFF8, el]:u64 -0000036f: when R2 = 0 goto %000002bd -000005e9: goto %00000373 - -000002bd: -000002c5: call R30 with noreturn - -00000373: -00000377: R16 := R2 -0000037c: call R16 with noreturn diff --git a/src/test/correct/basic_sec_policy_write/gcc_O2/basic_sec_policy_write.expected b/src/test/correct/basic_sec_policy_write/gcc_O2/basic_sec_policy_write.expected index 47c909a49..77502d30d 100644 --- a/src/test/correct/basic_sec_policy_write/gcc_O2/basic_sec_policy_write.expected +++ b/src/test/correct/basic_sec_policy_write/gcc_O2/basic_sec_policy_write.expected @@ -72,7 +72,7 @@ implementation {:extern} guarantee_reflexive() assert ((memory_load32_le(mem, $z_addr) != 0bv32) ==> (memory_load32_le(mem, $z_addr) != 0bv32)); } -procedure main_1536(); +procedure main(); modifies Gamma_R0, Gamma_R1, Gamma_R2, Gamma_R3, Gamma_mem, R0, R1, R2, R3, mem; requires (Gamma_R0 == false); free requires (memory_load64_le(mem, 69632bv64) == 0bv64); @@ -88,7 +88,7 @@ procedure main_1536(); free ensures (memory_load64_le(mem, 69616bv64) == 1536bv64); free ensures (memory_load64_le(mem, 69640bv64) == 69640bv64); -implementation main_1536() +implementation main() { var Gamma_x_old: bool; var z_old: bv32; @@ -99,24 +99,24 @@ implementation main_1536() R3, Gamma_R3 := 2bv64, true; R0, Gamma_R0 := 0bv64, true; call rely(); + assert (L(mem, bvadd64(R1, 20bv64)) ==> true); z_old := memory_load32_le(mem, $z_addr); Gamma_x_old := (gamma_load32(Gamma_mem, $x_addr) || L(mem, $x_addr)); - assert (L(mem, bvadd64(R1, 20bv64)) ==> true); mem, Gamma_mem := memory_store32_le(mem, bvadd64(R1, 20bv64), 0bv32), gamma_store32(Gamma_mem, bvadd64(R1, 20bv64), true); assert ((bvadd64(R1, 20bv64) == $z_addr) ==> (L(mem, $x_addr) ==> Gamma_x_old)); assert ((z_old != 0bv32) ==> (memory_load32_le(mem, $z_addr) != 0bv32)); assume {:captureState "%000001c2"} true; call rely(); + assert (L(mem, bvadd64(R2, 4bv64)) ==> Gamma_R3); z_old := memory_load32_le(mem, $z_addr); Gamma_x_old := (gamma_load32(Gamma_mem, $x_addr) || L(mem, $x_addr)); - assert (L(mem, bvadd64(R2, 4bv64)) ==> Gamma_R3); mem, Gamma_mem := memory_store32_le(mem, bvadd64(R2, 4bv64), R3[32:0]), gamma_store32(Gamma_mem, bvadd64(R2, 4bv64), Gamma_R3); assert ((bvadd64(R2, 4bv64) == $z_addr) ==> (L(mem, $x_addr) ==> Gamma_x_old)); assert ((z_old != 0bv32) ==> (memory_load32_le(mem, $z_addr) != 0bv32)); assume {:captureState "%000001ca"} true; - goto main_1536_basil_return; - main_1536_basil_return: - assume {:captureState "main_1536_basil_return"} true; + goto main_basil_return; + main_basil_return: + assume {:captureState "main_basil_return"} true; return; } diff --git a/src/test/correct/basic_sec_policy_write/gcc_O2/basic_sec_policy_write.gts b/src/test/correct/basic_sec_policy_write/gcc_O2/basic_sec_policy_write.gts deleted file mode 100644 index 8b5690513..000000000 Binary files a/src/test/correct/basic_sec_policy_write/gcc_O2/basic_sec_policy_write.gts and /dev/null differ diff --git a/src/test/correct/basic_sec_policy_write/gcc_O2/basic_sec_policy_write.md5sum b/src/test/correct/basic_sec_policy_write/gcc_O2/basic_sec_policy_write.md5sum new file mode 100644 index 000000000..5015dce20 --- /dev/null +++ b/src/test/correct/basic_sec_policy_write/gcc_O2/basic_sec_policy_write.md5sum @@ -0,0 +1,5 @@ +9384b2ac36b8266d8d45e984f2c30995 correct/basic_sec_policy_write/gcc_O2/a.out +ef2fac276a52d51b9c2646b901bd435e correct/basic_sec_policy_write/gcc_O2/basic_sec_policy_write.adt +9fb4b5fd347c52a6bdbfd59904e00e95 correct/basic_sec_policy_write/gcc_O2/basic_sec_policy_write.bir +68d3cd0243531accb2a67ac93d05e443 correct/basic_sec_policy_write/gcc_O2/basic_sec_policy_write.relf +ee64c4b7226856a33941074a0f7318ce correct/basic_sec_policy_write/gcc_O2/basic_sec_policy_write.gts diff --git a/src/test/correct/basic_sec_policy_write/gcc_O2/basic_sec_policy_write.relf b/src/test/correct/basic_sec_policy_write/gcc_O2/basic_sec_policy_write.relf deleted file mode 100644 index 38e5efe32..000000000 --- a/src/test/correct/basic_sec_policy_write/gcc_O2/basic_sec_policy_write.relf +++ /dev/null @@ -1,122 +0,0 @@ - -Relocation section '.rela.dyn' at offset 0x460 contains 8 entries: - Offset Info Type Symbol's Value Symbol's Name + Addend -0000000000010d98 0000000000000403 R_AARCH64_RELATIVE 750 -0000000000010da0 0000000000000403 R_AARCH64_RELATIVE 700 -0000000000010ff0 0000000000000403 R_AARCH64_RELATIVE 600 -0000000000011008 0000000000000403 R_AARCH64_RELATIVE 11008 -0000000000010fd8 0000000400000401 R_AARCH64_GLOB_DAT 0000000000000000 _ITM_deregisterTMCloneTable + 0 -0000000000010fe0 0000000500000401 R_AARCH64_GLOB_DAT 0000000000000000 __cxa_finalize@GLIBC_2.17 + 0 -0000000000010fe8 0000000600000401 R_AARCH64_GLOB_DAT 0000000000000000 __gmon_start__ + 0 -0000000000010ff8 0000000800000401 R_AARCH64_GLOB_DAT 0000000000000000 _ITM_registerTMCloneTable + 0 - -Relocation section '.rela.plt' at offset 0x520 contains 4 entries: - Offset Info Type Symbol's Value Symbol's Name + Addend -0000000000010fb0 0000000300000402 R_AARCH64_JUMP_SLOT 0000000000000000 __libc_start_main@GLIBC_2.34 + 0 -0000000000010fb8 0000000500000402 R_AARCH64_JUMP_SLOT 0000000000000000 __cxa_finalize@GLIBC_2.17 + 0 -0000000000010fc0 0000000600000402 R_AARCH64_JUMP_SLOT 0000000000000000 __gmon_start__ + 0 -0000000000010fc8 0000000700000402 R_AARCH64_JUMP_SLOT 0000000000000000 abort@GLIBC_2.17 + 0 - -Symbol table '.dynsym' contains 9 entries: - Num: Value Size Type Bind Vis Ndx Name - 0: 0000000000000000 0 NOTYPE LOCAL DEFAULT UND - 1: 0000000000000580 0 SECTION LOCAL DEFAULT 11 .init - 2: 0000000000011000 0 SECTION LOCAL DEFAULT 22 .data - 3: 0000000000000000 0 FUNC GLOBAL DEFAULT UND __libc_start_main@GLIBC_2.34 (2) - 4: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_deregisterTMCloneTable - 5: 0000000000000000 0 FUNC WEAK DEFAULT UND __cxa_finalize@GLIBC_2.17 (3) - 6: 0000000000000000 0 NOTYPE WEAK DEFAULT UND __gmon_start__ - 7: 0000000000000000 0 FUNC GLOBAL DEFAULT UND abort@GLIBC_2.17 (3) - 8: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_registerTMCloneTable - -Symbol table '.symtab' contains 89 entries: - Num: Value Size Type Bind Vis Ndx Name - 0: 0000000000000000 0 NOTYPE LOCAL DEFAULT UND - 1: 0000000000000238 0 SECTION LOCAL DEFAULT 1 .interp - 2: 0000000000000254 0 SECTION LOCAL DEFAULT 2 .note.gnu.build-id - 3: 0000000000000278 0 SECTION LOCAL DEFAULT 3 .note.ABI-tag - 4: 0000000000000298 0 SECTION LOCAL DEFAULT 4 .gnu.hash - 5: 00000000000002b8 0 SECTION LOCAL DEFAULT 5 .dynsym - 6: 0000000000000390 0 SECTION LOCAL DEFAULT 6 .dynstr - 7: 000000000000041e 0 SECTION LOCAL DEFAULT 7 .gnu.version - 8: 0000000000000430 0 SECTION LOCAL DEFAULT 8 .gnu.version_r - 9: 0000000000000460 0 SECTION LOCAL DEFAULT 9 .rela.dyn - 10: 0000000000000520 0 SECTION LOCAL DEFAULT 10 .rela.plt - 11: 0000000000000580 0 SECTION LOCAL DEFAULT 11 .init - 12: 00000000000005a0 0 SECTION LOCAL DEFAULT 12 .plt - 13: 0000000000000600 0 SECTION LOCAL DEFAULT 13 .text - 14: 0000000000000754 0 SECTION LOCAL DEFAULT 14 .fini - 15: 0000000000000768 0 SECTION LOCAL DEFAULT 15 .rodata - 16: 000000000000076c 0 SECTION LOCAL DEFAULT 16 .eh_frame_hdr - 17: 00000000000007a8 0 SECTION LOCAL DEFAULT 17 .eh_frame - 18: 0000000000010d98 0 SECTION LOCAL DEFAULT 18 .init_array - 19: 0000000000010da0 0 SECTION LOCAL DEFAULT 19 .fini_array - 20: 0000000000010da8 0 SECTION LOCAL DEFAULT 20 .dynamic - 21: 0000000000010f98 0 SECTION LOCAL DEFAULT 21 .got - 22: 0000000000011000 0 SECTION LOCAL DEFAULT 22 .data - 23: 0000000000011010 0 SECTION LOCAL DEFAULT 23 .bss - 24: 0000000000000000 0 SECTION LOCAL DEFAULT 24 .comment - 25: 0000000000000000 0 FILE LOCAL DEFAULT ABS Scrt1.o - 26: 0000000000000278 0 NOTYPE LOCAL DEFAULT 3 $d - 27: 0000000000000278 32 OBJECT LOCAL DEFAULT 3 __abi_tag - 28: 0000000000000640 0 NOTYPE LOCAL DEFAULT 13 $x - 29: 00000000000007bc 0 NOTYPE LOCAL DEFAULT 17 $d - 30: 0000000000000768 0 NOTYPE LOCAL DEFAULT 15 $d - 31: 0000000000000000 0 FILE LOCAL DEFAULT ABS crti.o - 32: 0000000000000674 0 NOTYPE LOCAL DEFAULT 13 $x - 33: 0000000000000674 20 FUNC LOCAL DEFAULT 13 call_weak_fn - 34: 0000000000000580 0 NOTYPE LOCAL DEFAULT 11 $x - 35: 0000000000000754 0 NOTYPE LOCAL DEFAULT 14 $x - 36: 0000000000000000 0 FILE LOCAL DEFAULT ABS crtn.o - 37: 0000000000000590 0 NOTYPE LOCAL DEFAULT 11 $x - 38: 0000000000000760 0 NOTYPE LOCAL DEFAULT 14 $x - 39: 0000000000000000 0 FILE LOCAL DEFAULT ABS basic_sec_policy_write.c - 40: 0000000000000600 0 NOTYPE LOCAL DEFAULT 13 $x - 41: 0000000000011014 0 NOTYPE LOCAL DEFAULT 23 $d - 42: 0000000000000830 0 NOTYPE LOCAL DEFAULT 17 $d - 43: 0000000000000000 0 FILE LOCAL DEFAULT ABS crtstuff.c - 44: 0000000000000690 0 NOTYPE LOCAL DEFAULT 13 $x - 45: 0000000000000690 0 FUNC LOCAL DEFAULT 13 deregister_tm_clones - 46: 00000000000006c0 0 FUNC LOCAL DEFAULT 13 register_tm_clones - 47: 0000000000011008 0 NOTYPE LOCAL DEFAULT 22 $d - 48: 0000000000000700 0 FUNC LOCAL DEFAULT 13 __do_global_dtors_aux - 49: 0000000000011010 1 OBJECT LOCAL DEFAULT 23 completed.0 - 50: 0000000000010da0 0 NOTYPE LOCAL DEFAULT 19 $d - 51: 0000000000010da0 0 OBJECT LOCAL DEFAULT 19 __do_global_dtors_aux_fini_array_entry - 52: 0000000000000750 0 FUNC LOCAL DEFAULT 13 frame_dummy - 53: 0000000000010d98 0 NOTYPE LOCAL DEFAULT 18 $d - 54: 0000000000010d98 0 OBJECT LOCAL DEFAULT 18 __frame_dummy_init_array_entry - 55: 00000000000007d0 0 NOTYPE LOCAL DEFAULT 17 $d - 56: 0000000000011010 0 NOTYPE LOCAL DEFAULT 23 $d - 57: 0000000000000000 0 FILE LOCAL DEFAULT ABS crtstuff.c - 58: 0000000000000844 0 NOTYPE LOCAL DEFAULT 17 $d - 59: 0000000000000844 0 OBJECT LOCAL DEFAULT 17 __FRAME_END__ - 60: 0000000000000000 0 FILE LOCAL DEFAULT ABS - 61: 0000000000010da8 0 OBJECT LOCAL DEFAULT ABS _DYNAMIC - 62: 000000000000076c 0 NOTYPE LOCAL DEFAULT 16 __GNU_EH_FRAME_HDR - 63: 0000000000010fd0 0 OBJECT LOCAL DEFAULT ABS _GLOBAL_OFFSET_TABLE_ - 64: 00000000000005a0 0 NOTYPE LOCAL DEFAULT 12 $x - 65: 0000000000000000 0 FUNC GLOBAL DEFAULT UND __libc_start_main@GLIBC_2.34 - 66: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_deregisterTMCloneTable - 67: 0000000000011000 0 NOTYPE WEAK DEFAULT 22 data_start - 68: 0000000000011010 0 NOTYPE GLOBAL DEFAULT 23 __bss_start__ - 69: 0000000000000000 0 FUNC WEAK DEFAULT UND __cxa_finalize@GLIBC_2.17 - 70: 0000000000011020 0 NOTYPE GLOBAL DEFAULT 23 _bss_end__ - 71: 0000000000011010 0 NOTYPE GLOBAL DEFAULT 22 _edata - 72: 0000000000011018 4 OBJECT GLOBAL DEFAULT 23 z - 73: 0000000000011014 4 OBJECT GLOBAL DEFAULT 23 x - 74: 0000000000000754 0 FUNC GLOBAL HIDDEN 14 _fini - 75: 0000000000011020 0 NOTYPE GLOBAL DEFAULT 23 __bss_end__ - 76: 0000000000011000 0 NOTYPE GLOBAL DEFAULT 22 __data_start - 77: 0000000000000000 0 NOTYPE WEAK DEFAULT UND __gmon_start__ - 78: 0000000000011008 0 OBJECT GLOBAL HIDDEN 22 __dso_handle - 79: 0000000000000000 0 FUNC GLOBAL DEFAULT UND abort@GLIBC_2.17 - 80: 0000000000000768 4 OBJECT GLOBAL DEFAULT 15 _IO_stdin_used - 81: 0000000000011020 0 NOTYPE GLOBAL DEFAULT 23 _end - 82: 0000000000000640 52 FUNC GLOBAL DEFAULT 13 _start - 83: 0000000000011020 0 NOTYPE GLOBAL DEFAULT 23 __end__ - 84: 0000000000011010 0 NOTYPE GLOBAL DEFAULT 23 __bss_start - 85: 0000000000000600 28 FUNC GLOBAL DEFAULT 13 main - 86: 0000000000011010 0 OBJECT GLOBAL HIDDEN 22 __TMC_END__ - 87: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_registerTMCloneTable - 88: 0000000000000580 0 FUNC GLOBAL HIDDEN 11 _init diff --git a/src/test/correct/basic_sec_policy_write/gcc_O2/basic_sec_policy_write_gtirb.expected b/src/test/correct/basic_sec_policy_write/gcc_O2/basic_sec_policy_write_gtirb.expected index 3ad6f26dc..f1873f412 100644 --- a/src/test/correct/basic_sec_policy_write/gcc_O2/basic_sec_policy_write_gtirb.expected +++ b/src/test/correct/basic_sec_policy_write/gcc_O2/basic_sec_policy_write_gtirb.expected @@ -72,7 +72,7 @@ implementation {:extern} guarantee_reflexive() assert ((memory_load32_le(mem, $z_addr) != 0bv32) ==> (memory_load32_le(mem, $z_addr) != 0bv32)); } -procedure main_1536(); +procedure main(); modifies Gamma_R0, Gamma_R1, Gamma_R2, Gamma_R3, Gamma_mem, R0, R1, R2, R3, mem; requires (Gamma_R0 == false); free requires (memory_load64_le(mem, 69632bv64) == 0bv64); @@ -88,35 +88,35 @@ procedure main_1536(); free ensures (memory_load64_le(mem, 69616bv64) == 1536bv64); free ensures (memory_load64_le(mem, 69640bv64) == 69640bv64); -implementation main_1536() +implementation main() { var Gamma_x_old: bool; var z_old: bv32; - main_1536__0__68sOqKpXRd2RcKSFuXZcQA: - assume {:captureState "main_1536__0__68sOqKpXRd2RcKSFuXZcQA"} true; + $main$__0__$68sOqKpXRd2RcKSFuXZcQA: + assume {:captureState "$main$__0__$68sOqKpXRd2RcKSFuXZcQA"} true; R1, Gamma_R1 := 69632bv64, true; R2, Gamma_R2 := bvadd64(R1, 20bv64), Gamma_R1; R3, Gamma_R3 := 2bv64, true; R0, Gamma_R0 := 0bv64, true; call rely(); + assert (L(mem, bvadd64(R1, 20bv64)) ==> true); z_old := memory_load32_le(mem, $z_addr); Gamma_x_old := (gamma_load32(Gamma_mem, $x_addr) || L(mem, $x_addr)); - assert (L(mem, bvadd64(R1, 20bv64)) ==> true); mem, Gamma_mem := memory_store32_le(mem, bvadd64(R1, 20bv64), 0bv32), gamma_store32(Gamma_mem, bvadd64(R1, 20bv64), true); assert ((bvadd64(R1, 20bv64) == $z_addr) ==> (L(mem, $x_addr) ==> Gamma_x_old)); assert ((z_old != 0bv32) ==> (memory_load32_le(mem, $z_addr) != 0bv32)); - assume {:captureState "1552_0"} true; + assume {:captureState "1552$0"} true; call rely(); + assert (L(mem, bvadd64(R2, 4bv64)) ==> Gamma_R3); z_old := memory_load32_le(mem, $z_addr); Gamma_x_old := (gamma_load32(Gamma_mem, $x_addr) || L(mem, $x_addr)); - assert (L(mem, bvadd64(R2, 4bv64)) ==> Gamma_R3); mem, Gamma_mem := memory_store32_le(mem, bvadd64(R2, 4bv64), R3[32:0]), gamma_store32(Gamma_mem, bvadd64(R2, 4bv64), Gamma_R3); assert ((bvadd64(R2, 4bv64) == $z_addr) ==> (L(mem, $x_addr) ==> Gamma_x_old)); assert ((z_old != 0bv32) ==> (memory_load32_le(mem, $z_addr) != 0bv32)); - assume {:captureState "1556_0"} true; - goto main_1536_basil_return; - main_1536_basil_return: - assume {:captureState "main_1536_basil_return"} true; + assume {:captureState "1556$0"} true; + goto main_basil_return; + main_basil_return: + assume {:captureState "main_basil_return"} true; return; } diff --git a/src/test/correct/basic_sec_policy_write/gcc_pic/basic_sec_policy_write.adt b/src/test/correct/basic_sec_policy_write/gcc_pic/basic_sec_policy_write.adt deleted file mode 100644 index 3c8f27508..000000000 --- a/src/test/correct/basic_sec_policy_write/gcc_pic/basic_sec_policy_write.adt +++ /dev/null @@ -1,533 +0,0 @@ -Project(Attrs([Attr("filename","\"gcc_pic/basic_sec_policy_write.out\""), -Attr("image-specification","(declare abi (name str))\n(declare arch (name str))\n(declare base-address (addr int))\n(declare bias (off int))\n(declare bits (size int))\n(declare code-region (addr int) (size int) (off int))\n(declare code-start (addr int))\n(declare entry-point (addr int))\n(declare external-reference (addr int) (name str))\n(declare format (name str))\n(declare is-executable (flag bool))\n(declare is-little-endian (flag bool))\n(declare llvm:base-address (addr int))\n(declare llvm:code-entry (name str) (off int) (size int))\n(declare llvm:coff-import-library (name str))\n(declare llvm:coff-virtual-section-header (name str) (addr int) (size int))\n(declare llvm:elf-program-header (name str) (off int) (size int))\n(declare llvm:elf-program-header-flags (name str) (ld bool) (r bool) \n (w bool) (x bool))\n(declare llvm:elf-virtual-program-header (name str) (addr int) (size int))\n(declare llvm:entry-point (addr int))\n(declare llvm:macho-symbol (name str) (value int))\n(declare llvm:name-reference (at int) (name str))\n(declare llvm:relocation (at int) (addr int))\n(declare llvm:section-entry (name str) (addr int) (size int) (off int))\n(declare llvm:section-flags (name str) (r bool) (w bool) (x bool))\n(declare llvm:segment-command (name str) (off int) (size int))\n(declare llvm:segment-command-flags (name str) (r bool) (w bool) (x bool))\n(declare llvm:symbol-entry (name str) (addr int) (size int) (off int)\n (value int))\n(declare llvm:virtual-segment-command (name str) (addr int) (size int))\n(declare mapped (addr int) (size int) (off int))\n(declare named-region (addr int) (size int) (name str))\n(declare named-symbol (addr int) (name str))\n(declare require (name str))\n(declare section (addr int) (size int))\n(declare segment (addr int) (size int) (r bool) (w bool) (x bool))\n(declare subarch (name str))\n(declare symbol-chunk (addr int) (size int) (root int))\n(declare symbol-value (addr int) (value int))\n(declare system (name str))\n(declare vendor (name str))\n\n(abi unknown)\n(arch aarch64)\n(base-address 0)\n(bias 0)\n(bits 64)\n(code-region 1956 20 1956)\n(code-region 1600 356 1600)\n(code-region 1488 96 1488)\n(code-region 1456 24 1456)\n(code-start 1652)\n(code-start 1600)\n(code-start 1876)\n(entry-point 1600)\n(external-reference 69576 _ITM_deregisterTMCloneTable)\n(external-reference 69584 __cxa_finalize)\n(external-reference 69608 __gmon_start__)\n(external-reference 69624 _ITM_registerTMCloneTable)\n(external-reference 69536 __libc_start_main)\n(external-reference 69544 __cxa_finalize)\n(external-reference 69552 __gmon_start__)\n(external-reference 69560 abort)\n(format elf)\n(is-executable true)\n(is-little-endian true)\n(llvm:base-address 0)\n(llvm:code-entry abort 0 0)\n(llvm:code-entry __cxa_finalize 0 0)\n(llvm:code-entry __libc_start_main 0 0)\n(llvm:code-entry _init 1456 0)\n(llvm:code-entry main 1876 80)\n(llvm:code-entry _start 1600 52)\n(llvm:code-entry abort@GLIBC_2.17 0 0)\n(llvm:code-entry _fini 1956 0)\n(llvm:code-entry __cxa_finalize@GLIBC_2.17 0 0)\n(llvm:code-entry __libc_start_main@GLIBC_2.34 0 0)\n(llvm:code-entry frame_dummy 1872 0)\n(llvm:code-entry __do_global_dtors_aux 1792 0)\n(llvm:code-entry register_tm_clones 1728 0)\n(llvm:code-entry deregister_tm_clones 1680 0)\n(llvm:code-entry call_weak_fn 1652 20)\n(llvm:code-entry .fini 1956 20)\n(llvm:code-entry .text 1600 356)\n(llvm:code-entry .plt 1488 96)\n(llvm:code-entry .init 1456 24)\n(llvm:elf-program-header 08 3464 632)\n(llvm:elf-program-header 07 0 0)\n(llvm:elf-program-header 06 1980 60)\n(llvm:elf-program-header 05 596 68)\n(llvm:elf-program-header 04 3480 496)\n(llvm:elf-program-header 03 3464 648)\n(llvm:elf-program-header 02 0 2204)\n(llvm:elf-program-header 01 568 27)\n(llvm:elf-program-header 00 64 504)\n(llvm:elf-program-header-flags 08 false true false false)\n(llvm:elf-program-header-flags 07 false true true false)\n(llvm:elf-program-header-flags 06 false true false false)\n(llvm:elf-program-header-flags 05 false true false false)\n(llvm:elf-program-header-flags 04 false true true false)\n(llvm:elf-program-header-flags 03 true true true false)\n(llvm:elf-program-header-flags 02 true true false true)\n(llvm:elf-program-header-flags 01 false true false false)\n(llvm:elf-program-header-flags 00 false true false false)\n(llvm:elf-virtual-program-header 08 69000 632)\n(llvm:elf-virtual-program-header 07 0 0)\n(llvm:elf-virtual-program-header 06 1980 60)\n(llvm:elf-virtual-program-header 05 596 68)\n(llvm:elf-virtual-program-header 04 69016 496)\n(llvm:elf-virtual-program-header 03 69000 664)\n(llvm:elf-virtual-program-header 02 0 2204)\n(llvm:elf-virtual-program-header 01 568 27)\n(llvm:elf-virtual-program-header 00 64 504)\n(llvm:entry-point 1600)\n(llvm:name-reference 69560 abort)\n(llvm:name-reference 69552 __gmon_start__)\n(llvm:name-reference 69544 __cxa_finalize)\n(llvm:name-reference 69536 __libc_start_main)\n(llvm:name-reference 69624 _ITM_registerTMCloneTable)\n(llvm:name-reference 69608 __gmon_start__)\n(llvm:name-reference 69584 __cxa_finalize)\n(llvm:name-reference 69576 _ITM_deregisterTMCloneTable)\n(llvm:section-entry .shstrtab 0 250 6856)\n(llvm:section-entry .strtab 0 560 6296)\n(llvm:section-entry .symtab 0 2136 4160)\n(llvm:section-entry .comment 0 43 4112)\n(llvm:section-entry .bss 69648 16 4112)\n(llvm:section-entry .data 69632 16 4096)\n(llvm:section-entry .got 69512 120 3976)\n(llvm:section-entry .dynamic 69016 496 3480)\n(llvm:section-entry .fini_array 69008 8 3472)\n(llvm:section-entry .init_array 69000 8 3464)\n(llvm:section-entry .eh_frame 2040 164 2040)\n(llvm:section-entry .eh_frame_hdr 1980 60 1980)\n(llvm:section-entry .rodata 1976 4 1976)\n(llvm:section-entry .fini 1956 20 1956)\n(llvm:section-entry .text 1600 356 1600)\n(llvm:section-entry .plt 1488 96 1488)\n(llvm:section-entry .init 1456 24 1456)\n(llvm:section-entry .rela.plt 1360 96 1360)\n(llvm:section-entry .rela.dyn 1120 240 1120)\n(llvm:section-entry .gnu.version_r 1072 48 1072)\n(llvm:section-entry .gnu.version 1054 18 1054)\n(llvm:section-entry .dynstr 912 141 912)\n(llvm:section-entry .dynsym 696 216 696)\n(llvm:section-entry .gnu.hash 664 28 664)\n(llvm:section-entry .note.ABI-tag 632 32 632)\n(llvm:section-entry .note.gnu.build-id 596 36 596)\n(llvm:section-entry .interp 568 27 568)\n(llvm:section-flags .shstrtab true false false)\n(llvm:section-flags .strtab true false false)\n(llvm:section-flags .symtab true false false)\n(llvm:section-flags .comment true false false)\n(llvm:section-flags .bss true true false)\n(llvm:section-flags .data true true false)\n(llvm:section-flags .got true true false)\n(llvm:section-flags .dynamic true true false)\n(llvm:section-flags .fini_array true true false)\n(llvm:section-flags .init_array true true false)\n(llvm:section-flags .eh_frame true false false)\n(llvm:section-flags .eh_frame_hdr true false false)\n(llvm:section-flags .rodata true false false)\n(llvm:section-flags .fini true false true)\n(llvm:section-flags .text true false true)\n(llvm:section-flags .plt true false true)\n(llvm:section-flags .init true false true)\n(llvm:section-flags .rela.plt true false false)\n(llvm:section-flags .rela.dyn true false false)\n(llvm:section-flags .gnu.version_r true false false)\n(llvm:section-flags .gnu.version true false false)\n(llvm:section-flags .dynstr true false false)\n(llvm:section-flags .dynsym true false false)\n(llvm:section-flags .gnu.hash true false false)\n(llvm:section-flags .note.ABI-tag true false false)\n(llvm:section-flags .note.gnu.build-id true false false)\n(llvm:section-flags .interp true false false)\n(llvm:symbol-entry abort 0 0 0 0)\n(llvm:symbol-entry __cxa_finalize 0 0 0 0)\n(llvm:symbol-entry __libc_start_main 0 0 0 0)\n(llvm:symbol-entry _init 1456 0 1456 1456)\n(llvm:symbol-entry main 1876 80 1876 1876)\n(llvm:symbol-entry _start 1600 52 1600 1600)\n(llvm:symbol-entry abort@GLIBC_2.17 0 0 0 0)\n(llvm:symbol-entry _fini 1956 0 1956 1956)\n(llvm:symbol-entry __cxa_finalize@GLIBC_2.17 0 0 0 0)\n(llvm:symbol-entry __libc_start_main@GLIBC_2.34 0 0 0 0)\n(llvm:symbol-entry frame_dummy 1872 0 1872 1872)\n(llvm:symbol-entry __do_global_dtors_aux 1792 0 1792 1792)\n(llvm:symbol-entry register_tm_clones 1728 0 1728 1728)\n(llvm:symbol-entry deregister_tm_clones 1680 0 1680 1680)\n(llvm:symbol-entry call_weak_fn 1652 20 1652 1652)\n(mapped 0 2204 0)\n(mapped 69000 648 3464)\n(named-region 0 2204 02)\n(named-region 69000 664 03)\n(named-region 568 27 .interp)\n(named-region 596 36 .note.gnu.build-id)\n(named-region 632 32 .note.ABI-tag)\n(named-region 664 28 .gnu.hash)\n(named-region 696 216 .dynsym)\n(named-region 912 141 .dynstr)\n(named-region 1054 18 .gnu.version)\n(named-region 1072 48 .gnu.version_r)\n(named-region 1120 240 .rela.dyn)\n(named-region 1360 96 .rela.plt)\n(named-region 1456 24 .init)\n(named-region 1488 96 .plt)\n(named-region 1600 356 .text)\n(named-region 1956 20 .fini)\n(named-region 1976 4 .rodata)\n(named-region 1980 60 .eh_frame_hdr)\n(named-region 2040 164 .eh_frame)\n(named-region 69000 8 .init_array)\n(named-region 69008 8 .fini_array)\n(named-region 69016 496 .dynamic)\n(named-region 69512 120 .got)\n(named-region 69632 16 .data)\n(named-region 69648 16 .bss)\n(named-region 0 43 .comment)\n(named-region 0 2136 .symtab)\n(named-region 0 560 .strtab)\n(named-region 0 250 .shstrtab)\n(named-symbol 1652 call_weak_fn)\n(named-symbol 1680 deregister_tm_clones)\n(named-symbol 1728 register_tm_clones)\n(named-symbol 1792 __do_global_dtors_aux)\n(named-symbol 1872 frame_dummy)\n(named-symbol 0 __libc_start_main@GLIBC_2.34)\n(named-symbol 0 __cxa_finalize@GLIBC_2.17)\n(named-symbol 1956 _fini)\n(named-symbol 0 abort@GLIBC_2.17)\n(named-symbol 1600 _start)\n(named-symbol 1876 main)\n(named-symbol 1456 _init)\n(named-symbol 0 __libc_start_main)\n(named-symbol 0 __cxa_finalize)\n(named-symbol 0 abort)\n(require libc.so.6)\n(section 568 27)\n(section 596 36)\n(section 632 32)\n(section 664 28)\n(section 696 216)\n(section 912 141)\n(section 1054 18)\n(section 1072 48)\n(section 1120 240)\n(section 1360 96)\n(section 1456 24)\n(section 1488 96)\n(section 1600 356)\n(section 1956 20)\n(section 1976 4)\n(section 1980 60)\n(section 2040 164)\n(section 69000 8)\n(section 69008 8)\n(section 69016 496)\n(section 69512 120)\n(section 69632 16)\n(section 69648 16)\n(section 0 43)\n(section 0 2136)\n(section 0 560)\n(section 0 250)\n(segment 0 2204 true false true)\n(segment 69000 664 true true false)\n(subarch v8)\n(symbol-chunk 1652 20 1652)\n(symbol-chunk 1600 52 1600)\n(symbol-chunk 1876 80 1876)\n(symbol-value 1652 1652)\n(symbol-value 1680 1680)\n(symbol-value 1728 1728)\n(symbol-value 1792 1792)\n(symbol-value 1872 1872)\n(symbol-value 1956 1956)\n(symbol-value 1600 1600)\n(symbol-value 1876 1876)\n(symbol-value 1456 1456)\n(symbol-value 0 0)\n(system \"\")\n(vendor \"\")\n"), -Attr("abi-name","\"aarch64-linux-gnu-elf\"")]), -Sections([Section(".shstrtab", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x40\x06\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xc8\x1b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x38\x00\x09\x00\x40\x00\x1c\x00\x1b\x00\x06\x00\x00\x00\x04\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x04\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x9c\x08\x00\x00\x00\x00\x00\x00\x9c\x08\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x01\x00\x00\x00\x06\x00\x00\x00\x88\x0d\x00\x00\x00\x00\x00\x00\x88\x0d"), -Section(".strtab", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x40\x06\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xc8\x1b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x38\x00\x09\x00\x40\x00\x1c\x00\x1b\x00\x06\x00\x00\x00\x04\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x04\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x9c\x08\x00\x00\x00\x00\x00\x00\x9c\x08\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x01\x00\x00\x00\x06\x00\x00\x00\x88\x0d\x00\x00\x00\x00\x00\x00\x88\x0d\x01\x00\x00\x00\x00\x00\x88\x0d\x01\x00\x00\x00\x00\x00\x88\x02\x00\x00\x00\x00\x00\x00\x98\x02\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x02\x00\x00\x00\x06\x00\x00\x00\x98\x0d\x00\x00\x00\x00\x00\x00\x98\x0d\x01\x00\x00\x00\x00\x00\x98\x0d\x01\x00\x00\x00\x00\x00\xf0\x01\x00\x00\x00\x00\x00\x00\xf0\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x04\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x50\xe5\x74\x64\x04\x00\x00\x00\xbc\x07\x00\x00\x00\x00\x00\x00\xbc\x07\x00\x00\x00\x00\x00\x00\xbc\x07\x00\x00\x00\x00\x00\x00\x3c\x00\x00\x00\x00\x00\x00\x00\x3c\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x51\xe5\x74\x64\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x52\xe5\x74\x64\x04\x00\x00\x00\x88\x0d\x00\x00\x00\x00\x00\x00\x88\x0d\x01\x00\x00\x00\x00\x00\x88\x0d\x01\x00\x00\x00\x00\x00\x78\x02\x00\x00\x00\x00\x00\x00\x78\x02\x00\x00\x00\x00\x00\x00"), -Section(".symtab", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x40\x06\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xc8\x1b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x38\x00\x09\x00\x40\x00\x1c\x00\x1b\x00\x06\x00\x00\x00\x04\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x04\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x9c\x08\x00\x00\x00\x00\x00\x00\x9c\x08\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x01\x00\x00\x00\x06\x00\x00\x00\x88\x0d\x00\x00\x00\x00\x00\x00\x88\x0d\x01\x00\x00\x00\x00\x00\x88\x0d\x01\x00\x00\x00\x00\x00\x88\x02\x00\x00\x00\x00\x00\x00\x98\x02\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x02\x00\x00\x00\x06\x00\x00\x00\x98\x0d\x00\x00\x00\x00\x00\x00\x98\x0d\x01\x00\x00\x00\x00\x00\x98\x0d\x01\x00\x00\x00\x00\x00\xf0\x01\x00\x00\x00\x00\x00\x00\xf0\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x04\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x50\xe5\x74\x64\x04\x00\x00\x00\xbc\x07\x00\x00\x00\x00\x00\x00\xbc\x07\x00\x00\x00\x00\x00\x00\xbc\x07\x00\x00\x00\x00\x00\x00\x3c\x00\x00\x00\x00\x00\x00\x00\x3c\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x51\xe5\x74\x64\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x52\xe5\x74\x64\x04\x00\x00\x00\x88\x0d\x00\x00\x00\x00\x00\x00\x88\x0d\x01\x00\x00\x00\x00\x00\x88\x0d\x01\x00\x00\x00\x00\x00\x78\x02\x00\x00\x00\x00\x00\x00\x78\x02\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x2f\x6c\x69\x62\x2f\x6c\x64\x2d\x6c\x69\x6e\x75\x78\x2d\x61\x61\x72\x63\x68\x36\x34\x2e\x73\x6f\x2e\x31\x00\x00\x04\x00\x00\x00\x14\x00\x00\x00\x03\x00\x00\x00\x47\x4e\x55\x00\x5e\xcd\xd9\xb0\x8c\x99\x0d\x6a\x25\x00\x51\x00\xb3\xde\x0d\x8f\xe2\x53\xc1\x9e\x04\x00\x00\x00\x10\x00\x00\x00\x01\x00\x00\x00\x47\x4e\x55\x00\x00\x00\x00\x00\x03\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x01\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x0b\x00\xb0\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x16\x00\x00\x10\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x48\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x22\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x22\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x73\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5f\x5f\x63\x78\x61\x5f\x66\x69\x6e\x61\x6c\x69\x7a\x65\x00\x5f\x5f\x6c\x69\x62\x63\x5f\x73\x74\x61\x72\x74\x5f\x6d\x61\x69\x6e\x00\x61\x62\x6f\x72\x74\x00\x6c\x69\x62\x63\x2e\x73\x6f\x2e\x36\x00\x47\x4c\x49\x42\x43\x5f\x32\x2e\x31\x37\x00\x47\x4c\x49\x42\x43\x5f\x32\x2e\x33\x34\x00\x5f\x49\x54\x4d\x5f\x64\x65\x72\x65\x67\x69\x73\x74\x65\x72\x54\x4d\x43\x6c\x6f\x6e\x65\x54\x61\x62\x6c\x65\x00\x5f\x5f\x67\x6d\x6f\x6e\x5f\x73\x74\x61\x72\x74\x5f\x5f\x00\x5f\x49\x54\x4d\x5f\x72\x65\x67\x69\x73\x74\x65\x72\x54\x4d\x43\x6c\x6f\x6e\x65\x54\x61\x62\x6c\x65\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x01\x00\x03\x00\x01\x00\x03\x00\x01\x00\x01\x00\x02\x00\x28\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x97\x91\x96\x06\x00\x00\x03\x00\x32\x00\x00\x00\x10\x00\x00\x00\xb4\x91\x96\x06\x00\x00\x02\x00\x3d\x00\x00\x00\x00\x00\x00\x00\x88\x0d\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x50\x07\x00\x00\x00\x00\x00\x00\x90\x0d\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\xd8\x0f\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x18\x10\x01\x00\x00\x00\x00\x00\xe0\x0f\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x14\x10\x01\x00\x00\x00\x00\x00\xf0\x0f\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x54\x07\x00\x00\x00\x00\x00\x00\x08\x10\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x08\x10\x01\x00\x00\x00\x00\x00\xc8\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xd0\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe8\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xf8\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xa0\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xa8\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xb0\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xb8\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1f\x20\x03\xd5\xfd\x7b\xbf\xa9\xfd\x03\x00\x91\x2e\x00\x00\x94\xfd\x7b\xc1\xa8\xc0\x03\x5f\xd6\x00\x00\x00\x00\x00\x00\x00\x00\xf0\x7b\xbf\xa9\x90\x00\x00\x90\x11\xce\x47\xf9\x10\x62\x3e\x91\x20\x02\x1f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x90\x00\x00\x90\x11\xd2\x47\xf9\x10\x82\x3e\x91\x20\x02\x1f\xd6\x90\x00\x00\x90\x11\xd6\x47\xf9\x10\xa2\x3e\x91\x20\x02\x1f\xd6\x90\x00\x00\x90\x11\xda\x47\xf9\x10\xc2\x3e\x91\x20\x02\x1f\xd6\x90\x00\x00\x90\x11\xde\x47\xf9\x10\xe2\x3e\x91\x20\x02\x1f\xd6\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1f\x20\x03\xd5\x1d\x00\x80\xd2\x1e\x00\x80\xd2\xe5\x03\x00\xaa\xe1\x03\x40\xf9\xe2\x23\x00\x91\xe6\x03\x00\x91\x80\x00\x00\x90\x00\xf8\x47\xf9\x03\x00\x80\xd2\x04\x00\x80\xd2\xe1\xff\xff\x97\xec\xff\xff\x97\x80\x00\x00\x90\x00\xf4\x47\xf9\x40\x00\x00\xb4\xe4\xff\xff\x17\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x80\x00\x00\xb0\x00\x40\x00\x91\x81\x00\x00\xb0\x21\x40\x00\x91\x3f\x00\x00\xeb\xc0\x00\x00\x54\x81\x00\x00\x90\x21\xe4\x47\xf9\x61\x00\x00\xb4\xf0\x03\x01\xaa\x00\x02\x1f\xd6\xc0\x03\x5f\xd6\x80\x00\x00\xb0\x00\x40\x00\x91\x81\x00\x00\xb0\x21\x40\x00\x91\x21\x00\x00\xcb\x22\xfc\x7f\xd3\x41\x0c\x81\x8b\x21\xfc\x41\x93\xc1\x00\x00\xb4\x82\x00\x00\x90\x42\xfc\x47\xf9\x62\x00\x00\xb4\xf0\x03\x02\xaa\x00\x02\x1f\xd6\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\xfd\x7b\xbe\xa9\xfd\x03\x00\x91\xf3\x0b\x00\xf9\x93\x00\x00\xb0\x60\x42\x40\x39\x40\x01\x00\x35\x80\x00\x00\x90\x00\xe8\x47\xf9\x80\x00\x00\xb4\x80\x00\x00\xb0\x00\x04\x40\xf9\xb5\xff\xff\x97\xd8\xff\xff\x97\x20\x00\x80\x52\x60\x42\x00\x39\xf3\x0b\x40\xf9\xfd\x7b\xc2\xa8\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\xdc\xff\xff\x17\xff\x43\x00\xd1\xe0\x0f\x00\xb9\x80\x00\x00\x90\x00\xec\x47\xf9\x21\x00\x80\x52\x01\x00\x00\xb9\x80\x00\x00\x90\x00\xf0\x47\xf9\xe1\x0f\x40\xb9\x01\x00\x00\xb9\x80\x00\x00\x90\x00\xf0\x47\xf9\x1f\x00\x00\xb9\x80\x00\x00\x90\x00\xec\x47\xf9\x41\x00\x80\x52\x01\x00\x00\xb9\x00\x00\x80\x52\xff\x43\x00\x91\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\xfd\x7b\xbf\xa9\xfd\x03\x00\x91\xfd\x7b\xc1\xa8\xc0\x03\x5f\xd6\x01\x00\x02\x00\x01\x1b\x03\x3b\x38\x00\x00\x00\x06\x00\x00\x00\x84\xfe\xff\xff\x50\x00\x00\x00\xd4\xfe\xff\xff\x64\x00\x00\x00\x04\xff\xff\xff\x78\x00\x00\x00\x44\xff\xff\xff\x8c\x00\x00\x00\x94\xff\xff\xff\xb0\x00\x00\x00\x98\xff\xff\xff\xc4\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x01\x7a\x52\x00\x04\x78\x1e\x01\x1b\x0c\x1f\x00\x10\x00\x00\x00\x18\x00\x00\x00\x2c\xfe\xff\xff\x34\x00\x00\x00\x00\x41\x07\x1e\x10\x00\x00\x00\x2c\x00\x00\x00\x68\xfe\xff\xff\x30\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x40\x00\x00\x00\x84\xfe\xff\xff\x3c\x00\x00\x00\x00\x00\x00\x00\x20\x00\x00\x00\x54\x00\x00\x00\xb0\xfe\xff\xff\x48\x00\x00\x00"), -Section(".comment", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x40\x06\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xc8\x1b\x00"), -Section(".interp", 0x238, "\x2f\x6c\x69\x62\x2f\x6c\x64\x2d\x6c\x69\x6e\x75\x78\x2d\x61\x61\x72\x63\x68\x36\x34\x2e\x73\x6f\x2e\x31\x00"), -Section(".note.gnu.build-id", 0x254, "\x04\x00\x00\x00\x14\x00\x00\x00\x03\x00\x00\x00\x47\x4e\x55\x00\x5e\xcd\xd9\xb0\x8c\x99\x0d\x6a\x25\x00\x51\x00\xb3\xde\x0d\x8f\xe2\x53\xc1\x9e"), -Section(".note.ABI-tag", 0x278, "\x04\x00\x00\x00\x10\x00\x00\x00\x01\x00\x00\x00\x47\x4e\x55\x00\x00\x00\x00\x00\x03\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00"), -Section(".gnu.hash", 0x298, "\x01\x00\x00\x00\x01\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".dynsym", 0x2B8, "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x0b\x00\xb0\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x16\x00\x00\x10\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x48\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x22\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x22\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x73\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".dynstr", 0x390, "\x00\x5f\x5f\x63\x78\x61\x5f\x66\x69\x6e\x61\x6c\x69\x7a\x65\x00\x5f\x5f\x6c\x69\x62\x63\x5f\x73\x74\x61\x72\x74\x5f\x6d\x61\x69\x6e\x00\x61\x62\x6f\x72\x74\x00\x6c\x69\x62\x63\x2e\x73\x6f\x2e\x36\x00\x47\x4c\x49\x42\x43\x5f\x32\x2e\x31\x37\x00\x47\x4c\x49\x42\x43\x5f\x32\x2e\x33\x34\x00\x5f\x49\x54\x4d\x5f\x64\x65\x72\x65\x67\x69\x73\x74\x65\x72\x54\x4d\x43\x6c\x6f\x6e\x65\x54\x61\x62\x6c\x65\x00\x5f\x5f\x67\x6d\x6f\x6e\x5f\x73\x74\x61\x72\x74\x5f\x5f\x00\x5f\x49\x54\x4d\x5f\x72\x65\x67\x69\x73\x74\x65\x72\x54\x4d\x43\x6c\x6f\x6e\x65\x54\x61\x62\x6c\x65\x00"), -Section(".gnu.version", 0x41E, "\x00\x00\x00\x00\x00\x00\x02\x00\x01\x00\x03\x00\x01\x00\x03\x00\x01\x00"), -Section(".gnu.version_r", 0x430, "\x01\x00\x02\x00\x28\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x97\x91\x96\x06\x00\x00\x03\x00\x32\x00\x00\x00\x10\x00\x00\x00\xb4\x91\x96\x06\x00\x00\x02\x00\x3d\x00\x00\x00\x00\x00\x00\x00"), -Section(".rela.dyn", 0x460, "\x88\x0d\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x50\x07\x00\x00\x00\x00\x00\x00\x90\x0d\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\xd8\x0f\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x18\x10\x01\x00\x00\x00\x00\x00\xe0\x0f\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x14\x10\x01\x00\x00\x00\x00\x00\xf0\x0f\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x54\x07\x00\x00\x00\x00\x00\x00\x08\x10\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x08\x10\x01\x00\x00\x00\x00\x00\xc8\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xd0\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe8\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xf8\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".rela.plt", 0x550, "\xa0\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xa8\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xb0\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xb8\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".init", 0x5B0, "\x1f\x20\x03\xd5\xfd\x7b\xbf\xa9\xfd\x03\x00\x91\x2e\x00\x00\x94\xfd\x7b\xc1\xa8\xc0\x03\x5f\xd6"), -Section(".plt", 0x5D0, "\xf0\x7b\xbf\xa9\x90\x00\x00\x90\x11\xce\x47\xf9\x10\x62\x3e\x91\x20\x02\x1f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x90\x00\x00\x90\x11\xd2\x47\xf9\x10\x82\x3e\x91\x20\x02\x1f\xd6\x90\x00\x00\x90\x11\xd6\x47\xf9\x10\xa2\x3e\x91\x20\x02\x1f\xd6\x90\x00\x00\x90\x11\xda\x47\xf9\x10\xc2\x3e\x91\x20\x02\x1f\xd6\x90\x00\x00\x90\x11\xde\x47\xf9\x10\xe2\x3e\x91\x20\x02\x1f\xd6"), -Section(".fini", 0x7A4, "\x1f\x20\x03\xd5\xfd\x7b\xbf\xa9\xfd\x03\x00\x91\xfd\x7b\xc1\xa8\xc0\x03\x5f\xd6"), -Section(".rodata", 0x7B8, "\x01\x00\x02\x00"), -Section(".eh_frame_hdr", 0x7BC, "\x01\x1b\x03\x3b\x38\x00\x00\x00\x06\x00\x00\x00\x84\xfe\xff\xff\x50\x00\x00\x00\xd4\xfe\xff\xff\x64\x00\x00\x00\x04\xff\xff\xff\x78\x00\x00\x00\x44\xff\xff\xff\x8c\x00\x00\x00\x94\xff\xff\xff\xb0\x00\x00\x00\x98\xff\xff\xff\xc4\x00\x00\x00"), -Section(".eh_frame", 0x7F8, "\x10\x00\x00\x00\x00\x00\x00\x00\x01\x7a\x52\x00\x04\x78\x1e\x01\x1b\x0c\x1f\x00\x10\x00\x00\x00\x18\x00\x00\x00\x2c\xfe\xff\xff\x34\x00\x00\x00\x00\x41\x07\x1e\x10\x00\x00\x00\x2c\x00\x00\x00\x68\xfe\xff\xff\x30\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x40\x00\x00\x00\x84\xfe\xff\xff\x3c\x00\x00\x00\x00\x00\x00\x00\x20\x00\x00\x00\x54\x00\x00\x00\xb0\xfe\xff\xff\x48\x00\x00\x00\x00\x41\x0e\x20\x9d\x04\x9e\x03\x42\x93\x02\x4e\xde\xdd\xd3\x0e\x00\x00\x00\x00\x10\x00\x00\x00\x78\x00\x00\x00\xdc\xfe\xff\xff\x04\x00\x00\x00\x00\x00\x00\x00\x14\x00\x00\x00\x8c\x00\x00\x00\xcc\xfe\xff\xff\x50\x00\x00\x00\x00\x41\x0e\x10\x52\x0e\x00\x00\x00\x00\x00\x00"), -Section(".fini_array", 0x10D90, "\x00\x07\x00\x00\x00\x00\x00\x00"), -Section(".dynamic", 0x10D98, "\x01\x00\x00\x00\x00\x00\x00\x00\x28\x00\x00\x00\x00\x00\x00\x00\x0c\x00\x00\x00\x00\x00\x00\x00\xb0\x05\x00\x00\x00\x00\x00\x00\x0d\x00\x00\x00\x00\x00\x00\x00\xa4\x07\x00\x00\x00\x00\x00\x00\x19\x00\x00\x00\x00\x00\x00\x00\x88\x0d\x01\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x1a\x00\x00\x00\x00\x00\x00\x00\x90\x0d\x01\x00\x00\x00\x00\x00\x1c\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\xf5\xfe\xff\x6f\x00\x00\x00\x00\x98\x02\x00\x00\x00\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x90\x03\x00\x00\x00\x00\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\xb8\x02\x00\x00\x00\x00\x00\x00\x0a\x00\x00\x00\x00\x00\x00\x00\x8d\x00\x00\x00\x00\x00\x00\x00\x0b\x00\x00\x00\x00\x00\x00\x00\x18\x00\x00\x00\x00\x00\x00\x00\x15\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x88\x0f\x01\x00\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x60\x00\x00\x00\x00\x00\x00\x00\x14\x00\x00\x00\x00\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x17\x00\x00\x00\x00\x00\x00\x00\x50\x05\x00\x00\x00\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x60\x04\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\xf0\x00\x00\x00\x00\x00\x00\x00\x09\x00\x00\x00\x00\x00\x00\x00\x18\x00\x00\x00\x00\x00\x00\x00\x1e\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\xfb\xff\xff\x6f\x00\x00\x00\x00\x01\x00\x00\x08\x00\x00\x00\x00\xfe\xff\xff\x6f\x00\x00\x00\x00\x30\x04\x00\x00\x00\x00\x00\x00\xff\xff\xff\x6f\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\xf0\xff\xff\x6f\x00\x00\x00\x00\x1e\x04\x00\x00\x00\x00\x00\x00\xf9\xff\xff\x6f\x00\x00\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".got", 0x10F88, "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xd0\x05\x00\x00\x00\x00\x00\x00\xd0\x05\x00\x00\x00\x00\x00\x00\xd0\x05\x00\x00\x00\x00\x00\x00\xd0\x05\x00\x00\x00\x00\x00\x00\x98\x0d\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x18\x10\x01\x00\x00\x00\x00\x00\x14\x10\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x54\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".data", 0x11000, "\x00\x00\x00\x00\x00\x00\x00\x00\x08\x10\x01\x00\x00\x00\x00\x00"), -Section(".init_array", 0x10D88, "\x50\x07\x00\x00\x00\x00\x00\x00"), -Section(".text", 0x640, "\x1f\x20\x03\xd5\x1d\x00\x80\xd2\x1e\x00\x80\xd2\xe5\x03\x00\xaa\xe1\x03\x40\xf9\xe2\x23\x00\x91\xe6\x03\x00\x91\x80\x00\x00\x90\x00\xf8\x47\xf9\x03\x00\x80\xd2\x04\x00\x80\xd2\xe1\xff\xff\x97\xec\xff\xff\x97\x80\x00\x00\x90\x00\xf4\x47\xf9\x40\x00\x00\xb4\xe4\xff\xff\x17\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x80\x00\x00\xb0\x00\x40\x00\x91\x81\x00\x00\xb0\x21\x40\x00\x91\x3f\x00\x00\xeb\xc0\x00\x00\x54\x81\x00\x00\x90\x21\xe4\x47\xf9\x61\x00\x00\xb4\xf0\x03\x01\xaa\x00\x02\x1f\xd6\xc0\x03\x5f\xd6\x80\x00\x00\xb0\x00\x40\x00\x91\x81\x00\x00\xb0\x21\x40\x00\x91\x21\x00\x00\xcb\x22\xfc\x7f\xd3\x41\x0c\x81\x8b\x21\xfc\x41\x93\xc1\x00\x00\xb4\x82\x00\x00\x90\x42\xfc\x47\xf9\x62\x00\x00\xb4\xf0\x03\x02\xaa\x00\x02\x1f\xd6\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\xfd\x7b\xbe\xa9\xfd\x03\x00\x91\xf3\x0b\x00\xf9\x93\x00\x00\xb0\x60\x42\x40\x39\x40\x01\x00\x35\x80\x00\x00\x90\x00\xe8\x47\xf9\x80\x00\x00\xb4\x80\x00\x00\xb0\x00\x04\x40\xf9\xb5\xff\xff\x97\xd8\xff\xff\x97\x20\x00\x80\x52\x60\x42\x00\x39\xf3\x0b\x40\xf9\xfd\x7b\xc2\xa8\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\xdc\xff\xff\x17\xff\x43\x00\xd1\xe0\x0f\x00\xb9\x80\x00\x00\x90\x00\xec\x47\xf9\x21\x00\x80\x52\x01\x00\x00\xb9\x80\x00\x00\x90\x00\xf0\x47\xf9\xe1\x0f\x40\xb9\x01\x00\x00\xb9\x80\x00\x00\x90\x00\xf0\x47\xf9\x1f\x00\x00\xb9\x80\x00\x00\x90\x00\xec\x47\xf9\x41\x00\x80\x52\x01\x00\x00\xb9\x00\x00\x80\x52\xff\x43\x00\x91\xc0\x03\x5f\xd6")]), -Memmap([Annotation(Region(0x0,0x89B), Attr("segment","02 0 2204")), -Annotation(Region(0x640,0x673), Attr("symbol","\"_start\"")), -Annotation(Region(0x0,0xF9), Attr("section","\".shstrtab\"")), -Annotation(Region(0x0,0x22F), Attr("section","\".strtab\"")), -Annotation(Region(0x0,0x857), Attr("section","\".symtab\"")), -Annotation(Region(0x0,0x2A), Attr("section","\".comment\"")), -Annotation(Region(0x238,0x252), Attr("section","\".interp\"")), -Annotation(Region(0x254,0x277), Attr("section","\".note.gnu.build-id\"")), -Annotation(Region(0x278,0x297), Attr("section","\".note.ABI-tag\"")), -Annotation(Region(0x298,0x2B3), Attr("section","\".gnu.hash\"")), -Annotation(Region(0x2B8,0x38F), Attr("section","\".dynsym\"")), -Annotation(Region(0x390,0x41C), Attr("section","\".dynstr\"")), -Annotation(Region(0x41E,0x42F), Attr("section","\".gnu.version\"")), -Annotation(Region(0x430,0x45F), Attr("section","\".gnu.version_r\"")), -Annotation(Region(0x460,0x54F), Attr("section","\".rela.dyn\"")), -Annotation(Region(0x550,0x5AF), Attr("section","\".rela.plt\"")), -Annotation(Region(0x5B0,0x5C7), Attr("section","\".init\"")), -Annotation(Region(0x5D0,0x62F), Attr("section","\".plt\"")), -Annotation(Region(0x5B0,0x5C7), Attr("code-region","()")), -Annotation(Region(0x5D0,0x62F), Attr("code-region","()")), -Annotation(Region(0x640,0x673), Attr("symbol-info","_start 0x640 52")), -Annotation(Region(0x674,0x687), Attr("symbol","\"call_weak_fn\"")), -Annotation(Region(0x674,0x687), Attr("symbol-info","call_weak_fn 0x674 20")), -Annotation(Region(0x754,0x7A3), Attr("symbol","\"main\"")), -Annotation(Region(0x754,0x7A3), Attr("symbol-info","main 0x754 80")), -Annotation(Region(0x7A4,0x7B7), Attr("section","\".fini\"")), -Annotation(Region(0x7B8,0x7BB), Attr("section","\".rodata\"")), -Annotation(Region(0x7BC,0x7F7), Attr("section","\".eh_frame_hdr\"")), -Annotation(Region(0x7F8,0x89B), Attr("section","\".eh_frame\"")), -Annotation(Region(0x10D88,0x1100F), Attr("segment","03 0x10D88 664")), -Annotation(Region(0x10D90,0x10D97), Attr("section","\".fini_array\"")), -Annotation(Region(0x10D98,0x10F87), Attr("section","\".dynamic\"")), -Annotation(Region(0x10F88,0x10FFF), Attr("section","\".got\"")), -Annotation(Region(0x11000,0x1100F), Attr("section","\".data\"")), -Annotation(Region(0x10D88,0x10D8F), Attr("section","\".init_array\"")), -Annotation(Region(0x640,0x7A3), Attr("section","\".text\"")), -Annotation(Region(0x640,0x7A3), Attr("code-region","()")), -Annotation(Region(0x7A4,0x7B7), Attr("code-region","()"))]), -Program(Tid(1_484, "%000005cc"), Attrs([]), - Subs([Sub(Tid(1_434, "@__cxa_finalize"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x600"), -Attr("stub","()")]), "__cxa_finalize", Args([Arg(Tid(1_485, "%000005cd"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("__cxa_finalize_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(943, "@__cxa_finalize"), - Attrs([Attr("address","0x600")]), Phis([]), -Defs([Def(Tid(1_191, "%000004a7"), Attrs([Attr("address","0x600"), -Attr("insn","adrp x16, #65536")]), Var("R16",Imm(64)), Int(65536,64)), -Def(Tid(1_198, "%000004ae"), Attrs([Attr("address","0x604"), -Attr("insn","ldr x17, [x16, #0xfa8]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(4008,64)),LittleEndian(),64)), -Def(Tid(1_204, "%000004b4"), Attrs([Attr("address","0x608"), -Attr("insn","add x16, x16, #0xfa8")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(4008,64)))]), Jmps([Call(Tid(1_209, "%000004b9"), - Attrs([Attr("address","0x60C"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), -Sub(Tid(1_435, "@__do_global_dtors_aux"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x700")]), - "__do_global_dtors_aux", Args([Arg(Tid(1_486, "%000005ce"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("__do_global_dtors_aux_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(670, "@__do_global_dtors_aux"), - Attrs([Attr("address","0x700")]), Phis([]), Defs([Def(Tid(674, "%000002a2"), - Attrs([Attr("address","0x700"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("#3",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(18446744073709551584,64))), -Def(Tid(680, "%000002a8"), Attrs([Attr("address","0x700"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("#3",Imm(64)),Var("R29",Imm(64)),LittleEndian(),64)), -Def(Tid(686, "%000002ae"), Attrs([Attr("address","0x700"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("#3",Imm(64)),Int(8,64)),Var("R30",Imm(64)),LittleEndian(),64)), -Def(Tid(690, "%000002b2"), Attrs([Attr("address","0x700"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("R31",Imm(64)), -Var("#3",Imm(64))), Def(Tid(696, "%000002b8"), - Attrs([Attr("address","0x704"), Attr("insn","mov x29, sp")]), - Var("R29",Imm(64)), Var("R31",Imm(64))), Def(Tid(704, "%000002c0"), - Attrs([Attr("address","0x708"), Attr("insn","str x19, [sp, #0x10]")]), - Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(16,64)),Var("R19",Imm(64)),LittleEndian(),64)), -Def(Tid(709, "%000002c5"), Attrs([Attr("address","0x70C"), -Attr("insn","adrp x19, #69632")]), Var("R19",Imm(64)), Int(69632,64)), -Def(Tid(716, "%000002cc"), Attrs([Attr("address","0x710"), -Attr("insn","ldrb w0, [x19, #0x10]")]), Var("R0",Imm(64)), -UNSIGNED(64,Load(Var("mem",Mem(64,8)),PLUS(Var("R19",Imm(64)),Int(16,64)),LittleEndian(),8)))]), -Jmps([Goto(Tid(723, "%000002d3"), Attrs([Attr("address","0x714"), -Attr("insn","cbnz w0, #0x28")]), - NEQ(Extract(31,0,Var("R0",Imm(64))),Int(0,32)), -Direct(Tid(721, "%000002d1"))), Goto(Tid(1_474, "%000005c2"), Attrs([]), - Int(1,1), Direct(Tid(888, "%00000378")))])), Blk(Tid(888, "%00000378"), - Attrs([Attr("address","0x718")]), Phis([]), Defs([Def(Tid(891, "%0000037b"), - Attrs([Attr("address","0x718"), Attr("insn","adrp x0, #65536")]), - Var("R0",Imm(64)), Int(65536,64)), Def(Tid(898, "%00000382"), - Attrs([Attr("address","0x71C"), Attr("insn","ldr x0, [x0, #0xfd0]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(4048,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(904, "%00000388"), Attrs([Attr("address","0x720"), -Attr("insn","cbz x0, #0x10")]), EQ(Var("R0",Imm(64)),Int(0,64)), -Direct(Tid(902, "%00000386"))), Goto(Tid(1_475, "%000005c3"), Attrs([]), - Int(1,1), Direct(Tid(927, "%0000039f")))])), Blk(Tid(927, "%0000039f"), - Attrs([Attr("address","0x724")]), Phis([]), Defs([Def(Tid(930, "%000003a2"), - Attrs([Attr("address","0x724"), Attr("insn","adrp x0, #69632")]), - Var("R0",Imm(64)), Int(69632,64)), Def(Tid(937, "%000003a9"), - Attrs([Attr("address","0x728"), Attr("insn","ldr x0, [x0, #0x8]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(942, "%000003ae"), Attrs([Attr("address","0x72C"), -Attr("insn","bl #-0x12c")]), Var("R30",Imm(64)), Int(1840,64))]), -Jmps([Call(Tid(945, "%000003b1"), Attrs([Attr("address","0x72C"), -Attr("insn","bl #-0x12c")]), Int(1,1), -(Direct(Tid(1_434, "@__cxa_finalize")),Direct(Tid(902, "%00000386"))))])), -Blk(Tid(902, "%00000386"), Attrs([Attr("address","0x730")]), Phis([]), -Defs([Def(Tid(910, "%0000038e"), Attrs([Attr("address","0x730"), -Attr("insn","bl #-0xa0")]), Var("R30",Imm(64)), Int(1844,64))]), -Jmps([Call(Tid(912, "%00000390"), Attrs([Attr("address","0x730"), -Attr("insn","bl #-0xa0")]), Int(1,1), -(Direct(Tid(1_448, "@deregister_tm_clones")),Direct(Tid(914, "%00000392"))))])), -Blk(Tid(914, "%00000392"), Attrs([Attr("address","0x734")]), Phis([]), -Defs([Def(Tid(917, "%00000395"), Attrs([Attr("address","0x734"), -Attr("insn","mov w0, #0x1")]), Var("R0",Imm(64)), Int(1,64)), -Def(Tid(925, "%0000039d"), Attrs([Attr("address","0x738"), -Attr("insn","strb w0, [x19, #0x10]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R19",Imm(64)),Int(16,64)),Extract(7,0,Var("R0",Imm(64))),LittleEndian(),8))]), -Jmps([Goto(Tid(1_476, "%000005c4"), Attrs([]), Int(1,1), -Direct(Tid(721, "%000002d1")))])), Blk(Tid(721, "%000002d1"), - Attrs([Attr("address","0x73C")]), Phis([]), Defs([Def(Tid(731, "%000002db"), - Attrs([Attr("address","0x73C"), Attr("insn","ldr x19, [sp, #0x10]")]), - Var("R19",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(16,64)),LittleEndian(),64)), -Def(Tid(738, "%000002e2"), Attrs([Attr("address","0x740"), -Attr("insn","ldp x29, x30, [sp], #0x20")]), Var("R29",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(743, "%000002e7"), Attrs([Attr("address","0x740"), -Attr("insn","ldp x29, x30, [sp], #0x20")]), Var("R30",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(747, "%000002eb"), Attrs([Attr("address","0x740"), -Attr("insn","ldp x29, x30, [sp], #0x20")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(32,64)))]), Jmps([Call(Tid(752, "%000002f0"), - Attrs([Attr("address","0x744"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), Sub(Tid(1_439, "@__libc_start_main"), - Attrs([Attr("c.proto","signed (*)(signed (*)(signed , char** , char** );* main, signed , char** , \nvoid* auxv)"), -Attr("address","0x5F0"), Attr("stub","()")]), "__libc_start_main", - Args([Arg(Tid(1_487, "%000005cf"), - Attrs([Attr("c.layout","**[ : 64]"), -Attr("c.data","Top:u64 ptr ptr"), -Attr("c.type","signed (*)(signed , char** , char** );*")]), - Var("__libc_start_main_main",Imm(64)), Var("R0",Imm(64)), In()), -Arg(Tid(1_488, "%000005d0"), Attrs([Attr("c.layout","[signed : 32]"), -Attr("c.data","Top:u32"), Attr("c.type","signed")]), - Var("__libc_start_main_arg2",Imm(32)), LOW(32,Var("R1",Imm(64))), In()), -Arg(Tid(1_489, "%000005d1"), Attrs([Attr("c.layout","**[char : 8]"), -Attr("c.data","Top:u8 ptr ptr"), Attr("c.type","char**")]), - Var("__libc_start_main_arg3",Imm(64)), Var("R2",Imm(64)), Both()), -Arg(Tid(1_490, "%000005d2"), Attrs([Attr("c.layout","*[ : 8]"), -Attr("c.data","{} ptr"), Attr("c.type","void*")]), - Var("__libc_start_main_auxv",Imm(64)), Var("R3",Imm(64)), Both()), -Arg(Tid(1_491, "%000005d3"), Attrs([Attr("c.layout","[signed : 32]"), -Attr("c.data","Top:u32"), Attr("c.type","signed")]), - Var("__libc_start_main_result",Imm(32)), LOW(32,Var("R0",Imm(64))), -Out())]), Blks([Blk(Tid(503, "@__libc_start_main"), - Attrs([Attr("address","0x5F0")]), Phis([]), -Defs([Def(Tid(1_169, "%00000491"), Attrs([Attr("address","0x5F0"), -Attr("insn","adrp x16, #65536")]), Var("R16",Imm(64)), Int(65536,64)), -Def(Tid(1_176, "%00000498"), Attrs([Attr("address","0x5F4"), -Attr("insn","ldr x17, [x16, #0xfa0]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(4000,64)),LittleEndian(),64)), -Def(Tid(1_182, "%0000049e"), Attrs([Attr("address","0x5F8"), -Attr("insn","add x16, x16, #0xfa0")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(4000,64)))]), Jmps([Call(Tid(1_187, "%000004a3"), - Attrs([Attr("address","0x5FC"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), Sub(Tid(1_440, "@_fini"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x7A4")]), - "_fini", Args([Arg(Tid(1_492, "%000005d4"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("_fini_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(31, "@_fini"), - Attrs([Attr("address","0x7A4")]), Phis([]), Defs([Def(Tid(37, "%00000025"), - Attrs([Attr("address","0x7A8"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("#0",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(18446744073709551600,64))), -Def(Tid(43, "%0000002b"), Attrs([Attr("address","0x7A8"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("#0",Imm(64)),Var("R29",Imm(64)),LittleEndian(),64)), -Def(Tid(49, "%00000031"), Attrs([Attr("address","0x7A8"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("#0",Imm(64)),Int(8,64)),Var("R30",Imm(64)),LittleEndian(),64)), -Def(Tid(53, "%00000035"), Attrs([Attr("address","0x7A8"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("R31",Imm(64)), -Var("#0",Imm(64))), Def(Tid(59, "%0000003b"), Attrs([Attr("address","0x7AC"), -Attr("insn","mov x29, sp")]), Var("R29",Imm(64)), Var("R31",Imm(64))), -Def(Tid(66, "%00000042"), Attrs([Attr("address","0x7B0"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R29",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(71, "%00000047"), Attrs([Attr("address","0x7B0"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R30",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(75, "%0000004b"), Attrs([Attr("address","0x7B0"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(16,64)))]), Jmps([Call(Tid(80, "%00000050"), - Attrs([Attr("address","0x7B4"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), Sub(Tid(1_441, "@_init"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x5B0")]), - "_init", Args([Arg(Tid(1_493, "%000005d5"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("_init_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(1_281, "@_init"), - Attrs([Attr("address","0x5B0")]), Phis([]), -Defs([Def(Tid(1_287, "%00000507"), Attrs([Attr("address","0x5B4"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("#5",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(18446744073709551600,64))), -Def(Tid(1_293, "%0000050d"), Attrs([Attr("address","0x5B4"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("#5",Imm(64)),Var("R29",Imm(64)),LittleEndian(),64)), -Def(Tid(1_299, "%00000513"), Attrs([Attr("address","0x5B4"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("#5",Imm(64)),Int(8,64)),Var("R30",Imm(64)),LittleEndian(),64)), -Def(Tid(1_303, "%00000517"), Attrs([Attr("address","0x5B4"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("R31",Imm(64)), -Var("#5",Imm(64))), Def(Tid(1_309, "%0000051d"), - Attrs([Attr("address","0x5B8"), Attr("insn","mov x29, sp")]), - Var("R29",Imm(64)), Var("R31",Imm(64))), Def(Tid(1_314, "%00000522"), - Attrs([Attr("address","0x5BC"), Attr("insn","bl #0xb8")]), - Var("R30",Imm(64)), Int(1472,64))]), Jmps([Call(Tid(1_316, "%00000524"), - Attrs([Attr("address","0x5BC"), Attr("insn","bl #0xb8")]), Int(1,1), -(Direct(Tid(1_446, "@call_weak_fn")),Direct(Tid(1_318, "%00000526"))))])), -Blk(Tid(1_318, "%00000526"), Attrs([Attr("address","0x5C0")]), Phis([]), -Defs([Def(Tid(1_323, "%0000052b"), Attrs([Attr("address","0x5C0"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R29",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(1_328, "%00000530"), Attrs([Attr("address","0x5C0"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R30",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(1_332, "%00000534"), Attrs([Attr("address","0x5C0"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(16,64)))]), Jmps([Call(Tid(1_337, "%00000539"), - Attrs([Attr("address","0x5C4"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), Sub(Tid(1_442, "@_start"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x640"), -Attr("entry-point","()")]), "_start", Args([Arg(Tid(1_494, "%000005d6"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("_start_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(440, "@_start"), - Attrs([Attr("address","0x640")]), Phis([]), Defs([Def(Tid(445, "%000001bd"), - Attrs([Attr("address","0x644"), Attr("insn","mov x29, #0x0")]), - Var("R29",Imm(64)), Int(0,64)), Def(Tid(450, "%000001c2"), - Attrs([Attr("address","0x648"), Attr("insn","mov x30, #0x0")]), - Var("R30",Imm(64)), Int(0,64)), Def(Tid(456, "%000001c8"), - Attrs([Attr("address","0x64C"), Attr("insn","mov x5, x0")]), - Var("R5",Imm(64)), Var("R0",Imm(64))), Def(Tid(463, "%000001cf"), - Attrs([Attr("address","0x650"), Attr("insn","ldr x1, [sp]")]), - Var("R1",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(469, "%000001d5"), Attrs([Attr("address","0x654"), -Attr("insn","add x2, sp, #0x8")]), Var("R2",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(8,64))), Def(Tid(475, "%000001db"), - Attrs([Attr("address","0x658"), Attr("insn","mov x6, sp")]), - Var("R6",Imm(64)), Var("R31",Imm(64))), Def(Tid(480, "%000001e0"), - Attrs([Attr("address","0x65C"), Attr("insn","adrp x0, #65536")]), - Var("R0",Imm(64)), Int(65536,64)), Def(Tid(487, "%000001e7"), - Attrs([Attr("address","0x660"), Attr("insn","ldr x0, [x0, #0xff0]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(4080,64)),LittleEndian(),64)), -Def(Tid(492, "%000001ec"), Attrs([Attr("address","0x664"), -Attr("insn","mov x3, #0x0")]), Var("R3",Imm(64)), Int(0,64)), -Def(Tid(497, "%000001f1"), Attrs([Attr("address","0x668"), -Attr("insn","mov x4, #0x0")]), Var("R4",Imm(64)), Int(0,64)), -Def(Tid(502, "%000001f6"), Attrs([Attr("address","0x66C"), -Attr("insn","bl #-0x7c")]), Var("R30",Imm(64)), Int(1648,64))]), -Jmps([Call(Tid(505, "%000001f9"), Attrs([Attr("address","0x66C"), -Attr("insn","bl #-0x7c")]), Int(1,1), -(Direct(Tid(1_439, "@__libc_start_main")),Direct(Tid(507, "%000001fb"))))])), -Blk(Tid(507, "%000001fb"), Attrs([Attr("address","0x670")]), Phis([]), -Defs([Def(Tid(510, "%000001fe"), Attrs([Attr("address","0x670"), -Attr("insn","bl #-0x50")]), Var("R30",Imm(64)), Int(1652,64))]), -Jmps([Call(Tid(513, "%00000201"), Attrs([Attr("address","0x670"), -Attr("insn","bl #-0x50")]), Int(1,1), -(Direct(Tid(1_445, "@abort")),Direct(Tid(1_477, "%000005c5"))))])), -Blk(Tid(1_477, "%000005c5"), Attrs([]), Phis([]), Defs([]), -Jmps([Call(Tid(1_478, "%000005c6"), Attrs([]), Int(1,1), -(Direct(Tid(1_446, "@call_weak_fn")),))]))])), Sub(Tid(1_445, "@abort"), - Attrs([Attr("noreturn","()"), Attr("c.proto","void (*)(void)"), -Attr("address","0x620"), Attr("stub","()")]), "abort", Args([]), -Blks([Blk(Tid(511, "@abort"), Attrs([Attr("address","0x620")]), Phis([]), -Defs([Def(Tid(1_235, "%000004d3"), Attrs([Attr("address","0x620"), -Attr("insn","adrp x16, #65536")]), Var("R16",Imm(64)), Int(65536,64)), -Def(Tid(1_242, "%000004da"), Attrs([Attr("address","0x624"), -Attr("insn","ldr x17, [x16, #0xfb8]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(4024,64)),LittleEndian(),64)), -Def(Tid(1_248, "%000004e0"), Attrs([Attr("address","0x628"), -Attr("insn","add x16, x16, #0xfb8")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(4024,64)))]), Jmps([Call(Tid(1_253, "%000004e5"), - Attrs([Attr("address","0x62C"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), Sub(Tid(1_446, "@call_weak_fn"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x674")]), - "call_weak_fn", Args([Arg(Tid(1_495, "%000005d7"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("call_weak_fn_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(515, "@call_weak_fn"), - Attrs([Attr("address","0x674")]), Phis([]), Defs([Def(Tid(518, "%00000206"), - Attrs([Attr("address","0x674"), Attr("insn","adrp x0, #65536")]), - Var("R0",Imm(64)), Int(65536,64)), Def(Tid(525, "%0000020d"), - Attrs([Attr("address","0x678"), Attr("insn","ldr x0, [x0, #0xfe8]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(4072,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(531, "%00000213"), Attrs([Attr("address","0x67C"), -Attr("insn","cbz x0, #0x8")]), EQ(Var("R0",Imm(64)),Int(0,64)), -Direct(Tid(529, "%00000211"))), Goto(Tid(1_479, "%000005c7"), Attrs([]), - Int(1,1), Direct(Tid(1_007, "%000003ef")))])), Blk(Tid(529, "%00000211"), - Attrs([Attr("address","0x684")]), Phis([]), Defs([]), -Jmps([Call(Tid(537, "%00000219"), Attrs([Attr("address","0x684"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))])), -Blk(Tid(1_007, "%000003ef"), Attrs([Attr("address","0x680")]), Phis([]), -Defs([]), Jmps([Goto(Tid(1_010, "%000003f2"), Attrs([Attr("address","0x680"), -Attr("insn","b #-0x70")]), Int(1,1), -Direct(Tid(1_008, "@__gmon_start__")))])), Blk(Tid(1_008, "@__gmon_start__"), - Attrs([Attr("address","0x610")]), Phis([]), -Defs([Def(Tid(1_213, "%000004bd"), Attrs([Attr("address","0x610"), -Attr("insn","adrp x16, #65536")]), Var("R16",Imm(64)), Int(65536,64)), -Def(Tid(1_220, "%000004c4"), Attrs([Attr("address","0x614"), -Attr("insn","ldr x17, [x16, #0xfb0]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(4016,64)),LittleEndian(),64)), -Def(Tid(1_226, "%000004ca"), Attrs([Attr("address","0x618"), -Attr("insn","add x16, x16, #0xfb0")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(4016,64)))]), Jmps([Call(Tid(1_231, "%000004cf"), - Attrs([Attr("address","0x61C"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), -Sub(Tid(1_448, "@deregister_tm_clones"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x690")]), - "deregister_tm_clones", Args([Arg(Tid(1_496, "%000005d8"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("deregister_tm_clones_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(543, "@deregister_tm_clones"), - Attrs([Attr("address","0x690")]), Phis([]), Defs([Def(Tid(546, "%00000222"), - Attrs([Attr("address","0x690"), Attr("insn","adrp x0, #69632")]), - Var("R0",Imm(64)), Int(69632,64)), Def(Tid(552, "%00000228"), - Attrs([Attr("address","0x694"), Attr("insn","add x0, x0, #0x10")]), - Var("R0",Imm(64)), PLUS(Var("R0",Imm(64)),Int(16,64))), -Def(Tid(557, "%0000022d"), Attrs([Attr("address","0x698"), -Attr("insn","adrp x1, #69632")]), Var("R1",Imm(64)), Int(69632,64)), -Def(Tid(563, "%00000233"), Attrs([Attr("address","0x69C"), -Attr("insn","add x1, x1, #0x10")]), Var("R1",Imm(64)), -PLUS(Var("R1",Imm(64)),Int(16,64))), Def(Tid(569, "%00000239"), - Attrs([Attr("address","0x6A0"), Attr("insn","cmp x1, x0")]), - Var("#1",Imm(64)), NOT(Var("R0",Imm(64)))), Def(Tid(574, "%0000023e"), - Attrs([Attr("address","0x6A0"), Attr("insn","cmp x1, x0")]), - Var("#2",Imm(64)), PLUS(Var("R1",Imm(64)),NOT(Var("R0",Imm(64))))), -Def(Tid(580, "%00000244"), Attrs([Attr("address","0x6A0"), -Attr("insn","cmp x1, x0")]), Var("VF",Imm(1)), -NEQ(SIGNED(65,PLUS(Var("#2",Imm(64)),Int(1,64))),PLUS(PLUS(SIGNED(65,Var("R1",Imm(64))),SIGNED(65,Var("#1",Imm(64)))),Int(1,65)))), -Def(Tid(586, "%0000024a"), Attrs([Attr("address","0x6A0"), -Attr("insn","cmp x1, x0")]), Var("CF",Imm(1)), -NEQ(UNSIGNED(65,PLUS(Var("#2",Imm(64)),Int(1,64))),PLUS(PLUS(UNSIGNED(65,Var("R1",Imm(64))),UNSIGNED(65,Var("#1",Imm(64)))),Int(1,65)))), -Def(Tid(590, "%0000024e"), Attrs([Attr("address","0x6A0"), -Attr("insn","cmp x1, x0")]), Var("ZF",Imm(1)), -EQ(PLUS(Var("#2",Imm(64)),Int(1,64)),Int(0,64))), Def(Tid(594, "%00000252"), - Attrs([Attr("address","0x6A0"), Attr("insn","cmp x1, x0")]), - Var("NF",Imm(1)), Extract(63,63,PLUS(Var("#2",Imm(64)),Int(1,64))))]), -Jmps([Goto(Tid(600, "%00000258"), Attrs([Attr("address","0x6A4"), -Attr("insn","b.eq #0x18")]), EQ(Var("ZF",Imm(1)),Int(1,1)), -Direct(Tid(598, "%00000256"))), Goto(Tid(1_480, "%000005c8"), Attrs([]), - Int(1,1), Direct(Tid(977, "%000003d1")))])), Blk(Tid(977, "%000003d1"), - Attrs([Attr("address","0x6A8")]), Phis([]), Defs([Def(Tid(980, "%000003d4"), - Attrs([Attr("address","0x6A8"), Attr("insn","adrp x1, #65536")]), - Var("R1",Imm(64)), Int(65536,64)), Def(Tid(987, "%000003db"), - Attrs([Attr("address","0x6AC"), Attr("insn","ldr x1, [x1, #0xfc8]")]), - Var("R1",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R1",Imm(64)),Int(4040,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(992, "%000003e0"), Attrs([Attr("address","0x6B0"), -Attr("insn","cbz x1, #0xc")]), EQ(Var("R1",Imm(64)),Int(0,64)), -Direct(Tid(598, "%00000256"))), Goto(Tid(1_481, "%000005c9"), Attrs([]), - Int(1,1), Direct(Tid(996, "%000003e4")))])), Blk(Tid(598, "%00000256"), - Attrs([Attr("address","0x6BC")]), Phis([]), Defs([]), -Jmps([Call(Tid(606, "%0000025e"), Attrs([Attr("address","0x6BC"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))])), -Blk(Tid(996, "%000003e4"), Attrs([Attr("address","0x6B4")]), Phis([]), -Defs([Def(Tid(1_000, "%000003e8"), Attrs([Attr("address","0x6B4"), -Attr("insn","mov x16, x1")]), Var("R16",Imm(64)), Var("R1",Imm(64)))]), -Jmps([Call(Tid(1_005, "%000003ed"), Attrs([Attr("address","0x6B8"), -Attr("insn","br x16")]), Int(1,1), (Indirect(Var("R16",Imm(64))),))]))])), -Sub(Tid(1_451, "@frame_dummy"), Attrs([Attr("c.proto","signed (*)(void)"), -Attr("address","0x750")]), "frame_dummy", Args([Arg(Tid(1_497, "%000005d9"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("frame_dummy_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(758, "@frame_dummy"), - Attrs([Attr("address","0x750")]), Phis([]), Defs([]), -Jmps([Call(Tid(760, "%000002f8"), Attrs([Attr("address","0x750"), -Attr("insn","b #-0x90")]), Int(1,1), -(Direct(Tid(1_453, "@register_tm_clones")),))]))])), Sub(Tid(1_452, "@main"), - Attrs([Attr("c.proto","signed (*)(signed argc, const char** argv)"), -Attr("address","0x754")]), "main", Args([Arg(Tid(1_498, "%000005da"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("main_argc",Imm(32)), -LOW(32,Var("R0",Imm(64))), In()), Arg(Tid(1_499, "%000005db"), - Attrs([Attr("c.layout","**[char : 8]"), Attr("c.data","Top:u8 ptr ptr"), -Attr("c.type"," const char**")]), Var("main_argv",Imm(64)), -Var("R1",Imm(64)), Both()), Arg(Tid(1_500, "%000005dc"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("main_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(762, "@main"), - Attrs([Attr("address","0x754")]), Phis([]), Defs([Def(Tid(766, "%000002fe"), - Attrs([Attr("address","0x754"), Attr("insn","sub sp, sp, #0x10")]), - Var("R31",Imm(64)), PLUS(Var("R31",Imm(64)),Int(18446744073709551600,64))), -Def(Tid(774, "%00000306"), Attrs([Attr("address","0x758"), -Attr("insn","str w0, [sp, #0xc]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(12,64)),Extract(31,0,Var("R0",Imm(64))),LittleEndian(),32)), -Def(Tid(779, "%0000030b"), Attrs([Attr("address","0x75C"), -Attr("insn","adrp x0, #65536")]), Var("R0",Imm(64)), Int(65536,64)), -Def(Tid(786, "%00000312"), Attrs([Attr("address","0x760"), -Attr("insn","ldr x0, [x0, #0xfd8]")]), Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(4056,64)),LittleEndian(),64)), -Def(Tid(791, "%00000317"), Attrs([Attr("address","0x764"), -Attr("insn","mov w1, #0x1")]), Var("R1",Imm(64)), Int(1,64)), -Def(Tid(799, "%0000031f"), Attrs([Attr("address","0x768"), -Attr("insn","str w1, [x0]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("R0",Imm(64)),Extract(31,0,Var("R1",Imm(64))),LittleEndian(),32)), -Def(Tid(804, "%00000324"), Attrs([Attr("address","0x76C"), -Attr("insn","adrp x0, #65536")]), Var("R0",Imm(64)), Int(65536,64)), -Def(Tid(811, "%0000032b"), Attrs([Attr("address","0x770"), -Attr("insn","ldr x0, [x0, #0xfe0]")]), Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(4064,64)),LittleEndian(),64)), -Def(Tid(818, "%00000332"), Attrs([Attr("address","0x774"), -Attr("insn","ldr w1, [sp, #0xc]")]), Var("R1",Imm(64)), -UNSIGNED(64,Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(12,64)),LittleEndian(),32))), -Def(Tid(826, "%0000033a"), Attrs([Attr("address","0x778"), -Attr("insn","str w1, [x0]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("R0",Imm(64)),Extract(31,0,Var("R1",Imm(64))),LittleEndian(),32)), -Def(Tid(831, "%0000033f"), Attrs([Attr("address","0x77C"), -Attr("insn","adrp x0, #65536")]), Var("R0",Imm(64)), Int(65536,64)), -Def(Tid(838, "%00000346"), Attrs([Attr("address","0x780"), -Attr("insn","ldr x0, [x0, #0xfe0]")]), Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(4064,64)),LittleEndian(),64)), -Def(Tid(845, "%0000034d"), Attrs([Attr("address","0x784"), -Attr("insn","str wzr, [x0]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("R0",Imm(64)),Int(0,32),LittleEndian(),32)), -Def(Tid(850, "%00000352"), Attrs([Attr("address","0x788"), -Attr("insn","adrp x0, #65536")]), Var("R0",Imm(64)), Int(65536,64)), -Def(Tid(857, "%00000359"), Attrs([Attr("address","0x78C"), -Attr("insn","ldr x0, [x0, #0xfd8]")]), Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(4056,64)),LittleEndian(),64)), -Def(Tid(862, "%0000035e"), Attrs([Attr("address","0x790"), -Attr("insn","mov w1, #0x2")]), Var("R1",Imm(64)), Int(2,64)), -Def(Tid(870, "%00000366"), Attrs([Attr("address","0x794"), -Attr("insn","str w1, [x0]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("R0",Imm(64)),Extract(31,0,Var("R1",Imm(64))),LittleEndian(),32)), -Def(Tid(875, "%0000036b"), Attrs([Attr("address","0x798"), -Attr("insn","mov w0, #0x0")]), Var("R0",Imm(64)), Int(0,64)), -Def(Tid(881, "%00000371"), Attrs([Attr("address","0x79C"), -Attr("insn","add sp, sp, #0x10")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(16,64)))]), Jmps([Call(Tid(886, "%00000376"), - Attrs([Attr("address","0x7A0"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), -Sub(Tid(1_453, "@register_tm_clones"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x6C0")]), - "register_tm_clones", Args([Arg(Tid(1_501, "%000005dd"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("register_tm_clones_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(608, "@register_tm_clones"), Attrs([Attr("address","0x6C0")]), - Phis([]), Defs([Def(Tid(611, "%00000263"), Attrs([Attr("address","0x6C0"), -Attr("insn","adrp x0, #69632")]), Var("R0",Imm(64)), Int(69632,64)), -Def(Tid(617, "%00000269"), Attrs([Attr("address","0x6C4"), -Attr("insn","add x0, x0, #0x10")]), Var("R0",Imm(64)), -PLUS(Var("R0",Imm(64)),Int(16,64))), Def(Tid(622, "%0000026e"), - Attrs([Attr("address","0x6C8"), Attr("insn","adrp x1, #69632")]), - Var("R1",Imm(64)), Int(69632,64)), Def(Tid(628, "%00000274"), - Attrs([Attr("address","0x6CC"), Attr("insn","add x1, x1, #0x10")]), - Var("R1",Imm(64)), PLUS(Var("R1",Imm(64)),Int(16,64))), -Def(Tid(635, "%0000027b"), Attrs([Attr("address","0x6D0"), -Attr("insn","sub x1, x1, x0")]), Var("R1",Imm(64)), -PLUS(PLUS(Var("R1",Imm(64)),NOT(Var("R0",Imm(64)))),Int(1,64))), -Def(Tid(641, "%00000281"), Attrs([Attr("address","0x6D4"), -Attr("insn","lsr x2, x1, #63")]), Var("R2",Imm(64)), -Concat(Int(0,63),Extract(63,63,Var("R1",Imm(64))))), -Def(Tid(648, "%00000288"), Attrs([Attr("address","0x6D8"), -Attr("insn","add x1, x2, x1, asr #3")]), Var("R1",Imm(64)), -PLUS(Var("R2",Imm(64)),ARSHIFT(Var("R1",Imm(64)),Int(3,3)))), -Def(Tid(654, "%0000028e"), Attrs([Attr("address","0x6DC"), -Attr("insn","asr x1, x1, #1")]), Var("R1",Imm(64)), -SIGNED(64,Extract(63,1,Var("R1",Imm(64)))))]), -Jmps([Goto(Tid(660, "%00000294"), Attrs([Attr("address","0x6E0"), -Attr("insn","cbz x1, #0x18")]), EQ(Var("R1",Imm(64)),Int(0,64)), -Direct(Tid(658, "%00000292"))), Goto(Tid(1_482, "%000005ca"), Attrs([]), - Int(1,1), Direct(Tid(947, "%000003b3")))])), Blk(Tid(947, "%000003b3"), - Attrs([Attr("address","0x6E4")]), Phis([]), Defs([Def(Tid(950, "%000003b6"), - Attrs([Attr("address","0x6E4"), Attr("insn","adrp x2, #65536")]), - Var("R2",Imm(64)), Int(65536,64)), Def(Tid(957, "%000003bd"), - Attrs([Attr("address","0x6E8"), Attr("insn","ldr x2, [x2, #0xff8]")]), - Var("R2",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R2",Imm(64)),Int(4088,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(962, "%000003c2"), Attrs([Attr("address","0x6EC"), -Attr("insn","cbz x2, #0xc")]), EQ(Var("R2",Imm(64)),Int(0,64)), -Direct(Tid(658, "%00000292"))), Goto(Tid(1_483, "%000005cb"), Attrs([]), - Int(1,1), Direct(Tid(966, "%000003c6")))])), Blk(Tid(658, "%00000292"), - Attrs([Attr("address","0x6F8")]), Phis([]), Defs([]), -Jmps([Call(Tid(666, "%0000029a"), Attrs([Attr("address","0x6F8"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))])), -Blk(Tid(966, "%000003c6"), Attrs([Attr("address","0x6F0")]), Phis([]), -Defs([Def(Tid(970, "%000003ca"), Attrs([Attr("address","0x6F0"), -Attr("insn","mov x16, x2")]), Var("R16",Imm(64)), Var("R2",Imm(64)))]), -Jmps([Call(Tid(975, "%000003cf"), Attrs([Attr("address","0x6F4"), -Attr("insn","br x16")]), Int(1,1), -(Indirect(Var("R16",Imm(64))),))]))]))]))) \ No newline at end of file diff --git a/src/test/correct/basic_sec_policy_write/gcc_pic/basic_sec_policy_write.bir b/src/test/correct/basic_sec_policy_write/gcc_pic/basic_sec_policy_write.bir deleted file mode 100644 index 89b480fb1..000000000 --- a/src/test/correct/basic_sec_policy_write/gcc_pic/basic_sec_policy_write.bir +++ /dev/null @@ -1,242 +0,0 @@ -000005cc: program -0000059a: sub __cxa_finalize(__cxa_finalize_result) -000005cd: __cxa_finalize_result :: out u32 = low:32[R0] - -000003af: -000004a7: R16 := 0x10000 -000004ae: R17 := mem[R16 + 0xFA8, el]:u64 -000004b4: R16 := R16 + 0xFA8 -000004b9: call R17 with noreturn - -0000059b: sub __do_global_dtors_aux(__do_global_dtors_aux_result) -000005ce: __do_global_dtors_aux_result :: out u32 = low:32[R0] - -0000029e: -000002a2: #3 := R31 - 0x20 -000002a8: mem := mem with [#3, el]:u64 <- R29 -000002ae: mem := mem with [#3 + 8, el]:u64 <- R30 -000002b2: R31 := #3 -000002b8: R29 := R31 -000002c0: mem := mem with [R31 + 0x10, el]:u64 <- R19 -000002c5: R19 := 0x11000 -000002cc: R0 := pad:64[mem[R19 + 0x10]] -000002d3: when 31:0[R0] <> 0 goto %000002d1 -000005c2: goto %00000378 - -00000378: -0000037b: R0 := 0x10000 -00000382: R0 := mem[R0 + 0xFD0, el]:u64 -00000388: when R0 = 0 goto %00000386 -000005c3: goto %0000039f - -0000039f: -000003a2: R0 := 0x11000 -000003a9: R0 := mem[R0 + 8, el]:u64 -000003ae: R30 := 0x730 -000003b1: call @__cxa_finalize with return %00000386 - -00000386: -0000038e: R30 := 0x734 -00000390: call @deregister_tm_clones with return %00000392 - -00000392: -00000395: R0 := 1 -0000039d: mem := mem with [R19 + 0x10] <- 7:0[R0] -000005c4: goto %000002d1 - -000002d1: -000002db: R19 := mem[R31 + 0x10, el]:u64 -000002e2: R29 := mem[R31, el]:u64 -000002e7: R30 := mem[R31 + 8, el]:u64 -000002eb: R31 := R31 + 0x20 -000002f0: call R30 with noreturn - -0000059f: sub __libc_start_main(__libc_start_main_main, __libc_start_main_arg2, __libc_start_main_arg3, __libc_start_main_auxv, __libc_start_main_result) -000005cf: __libc_start_main_main :: in u64 = R0 -000005d0: __libc_start_main_arg2 :: in u32 = low:32[R1] -000005d1: __libc_start_main_arg3 :: in out u64 = R2 -000005d2: __libc_start_main_auxv :: in out u64 = R3 -000005d3: __libc_start_main_result :: out u32 = low:32[R0] - -000001f7: -00000491: R16 := 0x10000 -00000498: R17 := mem[R16 + 0xFA0, el]:u64 -0000049e: R16 := R16 + 0xFA0 -000004a3: call R17 with noreturn - -000005a0: sub _fini(_fini_result) -000005d4: _fini_result :: out u32 = low:32[R0] - -0000001f: -00000025: #0 := R31 - 0x10 -0000002b: mem := mem with [#0, el]:u64 <- R29 -00000031: mem := mem with [#0 + 8, el]:u64 <- R30 -00000035: R31 := #0 -0000003b: R29 := R31 -00000042: R29 := mem[R31, el]:u64 -00000047: R30 := mem[R31 + 8, el]:u64 -0000004b: R31 := R31 + 0x10 -00000050: call R30 with noreturn - -000005a1: sub _init(_init_result) -000005d5: _init_result :: out u32 = low:32[R0] - -00000501: -00000507: #5 := R31 - 0x10 -0000050d: mem := mem with [#5, el]:u64 <- R29 -00000513: mem := mem with [#5 + 8, el]:u64 <- R30 -00000517: R31 := #5 -0000051d: R29 := R31 -00000522: R30 := 0x5C0 -00000524: call @call_weak_fn with return %00000526 - -00000526: -0000052b: R29 := mem[R31, el]:u64 -00000530: R30 := mem[R31 + 8, el]:u64 -00000534: R31 := R31 + 0x10 -00000539: call R30 with noreturn - -000005a2: sub _start(_start_result) -000005d6: _start_result :: out u32 = low:32[R0] - -000001b8: -000001bd: R29 := 0 -000001c2: R30 := 0 -000001c8: R5 := R0 -000001cf: R1 := mem[R31, el]:u64 -000001d5: R2 := R31 + 8 -000001db: R6 := R31 -000001e0: R0 := 0x10000 -000001e7: R0 := mem[R0 + 0xFF0, el]:u64 -000001ec: R3 := 0 -000001f1: R4 := 0 -000001f6: R30 := 0x670 -000001f9: call @__libc_start_main with return %000001fb - -000001fb: -000001fe: R30 := 0x674 -00000201: call @abort with return %000005c5 - -000005c5: -000005c6: call @call_weak_fn with noreturn - -000005a5: sub abort() - - -000001ff: -000004d3: R16 := 0x10000 -000004da: R17 := mem[R16 + 0xFB8, el]:u64 -000004e0: R16 := R16 + 0xFB8 -000004e5: call R17 with noreturn - -000005a6: sub call_weak_fn(call_weak_fn_result) -000005d7: call_weak_fn_result :: out u32 = low:32[R0] - -00000203: -00000206: R0 := 0x10000 -0000020d: R0 := mem[R0 + 0xFE8, el]:u64 -00000213: when R0 = 0 goto %00000211 -000005c7: goto %000003ef - -00000211: -00000219: call R30 with noreturn - -000003ef: -000003f2: goto @__gmon_start__ - -000003f0: -000004bd: R16 := 0x10000 -000004c4: R17 := mem[R16 + 0xFB0, el]:u64 -000004ca: R16 := R16 + 0xFB0 -000004cf: call R17 with noreturn - -000005a8: sub deregister_tm_clones(deregister_tm_clones_result) -000005d8: deregister_tm_clones_result :: out u32 = low:32[R0] - -0000021f: -00000222: R0 := 0x11000 -00000228: R0 := R0 + 0x10 -0000022d: R1 := 0x11000 -00000233: R1 := R1 + 0x10 -00000239: #1 := ~R0 -0000023e: #2 := R1 + ~R0 -00000244: VF := extend:65[#2 + 1] <> extend:65[R1] + extend:65[#1] + 1 -0000024a: CF := pad:65[#2 + 1] <> pad:65[R1] + pad:65[#1] + 1 -0000024e: ZF := #2 + 1 = 0 -00000252: NF := 63:63[#2 + 1] -00000258: when ZF goto %00000256 -000005c8: goto %000003d1 - -000003d1: -000003d4: R1 := 0x10000 -000003db: R1 := mem[R1 + 0xFC8, el]:u64 -000003e0: when R1 = 0 goto %00000256 -000005c9: goto %000003e4 - -00000256: -0000025e: call R30 with noreturn - -000003e4: -000003e8: R16 := R1 -000003ed: call R16 with noreturn - -000005ab: sub frame_dummy(frame_dummy_result) -000005d9: frame_dummy_result :: out u32 = low:32[R0] - -000002f6: -000002f8: call @register_tm_clones with noreturn - -000005ac: sub main(main_argc, main_argv, main_result) -000005da: main_argc :: in u32 = low:32[R0] -000005db: main_argv :: in out u64 = R1 -000005dc: main_result :: out u32 = low:32[R0] - -000002fa: -000002fe: R31 := R31 - 0x10 -00000306: mem := mem with [R31 + 0xC, el]:u32 <- 31:0[R0] -0000030b: R0 := 0x10000 -00000312: R0 := mem[R0 + 0xFD8, el]:u64 -00000317: R1 := 1 -0000031f: mem := mem with [R0, el]:u32 <- 31:0[R1] -00000324: R0 := 0x10000 -0000032b: R0 := mem[R0 + 0xFE0, el]:u64 -00000332: R1 := pad:64[mem[R31 + 0xC, el]:u32] -0000033a: mem := mem with [R0, el]:u32 <- 31:0[R1] -0000033f: R0 := 0x10000 -00000346: R0 := mem[R0 + 0xFE0, el]:u64 -0000034d: mem := mem with [R0, el]:u32 <- 0 -00000352: R0 := 0x10000 -00000359: R0 := mem[R0 + 0xFD8, el]:u64 -0000035e: R1 := 2 -00000366: mem := mem with [R0, el]:u32 <- 31:0[R1] -0000036b: R0 := 0 -00000371: R31 := R31 + 0x10 -00000376: call R30 with noreturn - -000005ad: sub register_tm_clones(register_tm_clones_result) -000005dd: register_tm_clones_result :: out u32 = low:32[R0] - -00000260: -00000263: R0 := 0x11000 -00000269: R0 := R0 + 0x10 -0000026e: R1 := 0x11000 -00000274: R1 := R1 + 0x10 -0000027b: R1 := R1 + ~R0 + 1 -00000281: R2 := 0.63:63[R1] -00000288: R1 := R2 + (R1 ~>> 3) -0000028e: R1 := extend:64[63:1[R1]] -00000294: when R1 = 0 goto %00000292 -000005ca: goto %000003b3 - -000003b3: -000003b6: R2 := 0x10000 -000003bd: R2 := mem[R2 + 0xFF8, el]:u64 -000003c2: when R2 = 0 goto %00000292 -000005cb: goto %000003c6 - -00000292: -0000029a: call R30 with noreturn - -000003c6: -000003ca: R16 := R2 -000003cf: call R16 with noreturn diff --git a/src/test/correct/basic_sec_policy_write/gcc_pic/basic_sec_policy_write.expected b/src/test/correct/basic_sec_policy_write/gcc_pic/basic_sec_policy_write.expected index c59232368..3c3088538 100644 --- a/src/test/correct/basic_sec_policy_write/gcc_pic/basic_sec_policy_write.expected +++ b/src/test/correct/basic_sec_policy_write/gcc_pic/basic_sec_policy_write.expected @@ -79,7 +79,7 @@ implementation {:extern} guarantee_reflexive() assert ((memory_load32_le(mem, $z_addr) != 0bv32) ==> (memory_load32_le(mem, $z_addr) != 0bv32)); } -procedure main_1876(); +procedure main(); modifies Gamma_R0, Gamma_R1, Gamma_R31, Gamma_mem, Gamma_stack, R0, R1, R31, mem, stack; requires (Gamma_R0 == false); free requires (memory_load64_le(mem, 69632bv64) == 0bv64); @@ -101,19 +101,19 @@ procedure main_1876(); free ensures (memory_load64_le(mem, 69616bv64) == 1876bv64); free ensures (memory_load64_le(mem, 69640bv64) == 69640bv64); -implementation main_1876() +implementation main() { - var Gamma_load18: bool; - var Gamma_load19: bool; - var Gamma_load20: bool; - var Gamma_load21: bool; - var Gamma_load22: bool; + var $load$18: bv64; + var $load$19: bv64; + var $load$20: bv32; + var $load$21: bv64; + var $load$22: bv64; + var Gamma_$load$18: bool; + var Gamma_$load$19: bool; + var Gamma_$load$20: bool; + var Gamma_$load$21: bool; + var Gamma_$load$22: bool; var Gamma_x_old: bool; - var load18: bv64; - var load19: bv64; - var load20: bv32; - var load21: bv64; - var load22: bv64; var z_old: bv32; lmain: assume {:captureState "lmain"} true; @@ -122,61 +122,61 @@ implementation main_1876() assume {:captureState "%00000306"} true; R0, Gamma_R0 := 65536bv64, true; call rely(); - load18, Gamma_load18 := memory_load64_le(mem, bvadd64(R0, 4056bv64)), (gamma_load64(Gamma_mem, bvadd64(R0, 4056bv64)) || L(mem, bvadd64(R0, 4056bv64))); - R0, Gamma_R0 := load18, Gamma_load18; + $load$18, Gamma_$load$18 := memory_load64_le(mem, bvadd64(R0, 4056bv64)), (gamma_load64(Gamma_mem, bvadd64(R0, 4056bv64)) || L(mem, bvadd64(R0, 4056bv64))); + R0, Gamma_R0 := $load$18, Gamma_$load$18; R1, Gamma_R1 := 1bv64, true; call rely(); + assert (L(mem, R0) ==> Gamma_R1); z_old := memory_load32_le(mem, $z_addr); Gamma_x_old := (gamma_load32(Gamma_mem, $x_addr) || L(mem, $x_addr)); - assert (L(mem, R0) ==> Gamma_R1); mem, Gamma_mem := memory_store32_le(mem, R0, R1[32:0]), gamma_store32(Gamma_mem, R0, Gamma_R1); assert ((R0 == $z_addr) ==> (L(mem, $x_addr) ==> Gamma_x_old)); assert ((z_old != 0bv32) ==> (memory_load32_le(mem, $z_addr) != 0bv32)); assume {:captureState "%0000031f"} true; R0, Gamma_R0 := 65536bv64, true; call rely(); - load19, Gamma_load19 := memory_load64_le(mem, bvadd64(R0, 4064bv64)), (gamma_load64(Gamma_mem, bvadd64(R0, 4064bv64)) || L(mem, bvadd64(R0, 4064bv64))); - R0, Gamma_R0 := load19, Gamma_load19; - load20, Gamma_load20 := memory_load32_le(stack, bvadd64(R31, 12bv64)), gamma_load32(Gamma_stack, bvadd64(R31, 12bv64)); - R1, Gamma_R1 := zero_extend32_32(load20), Gamma_load20; + $load$19, Gamma_$load$19 := memory_load64_le(mem, bvadd64(R0, 4064bv64)), (gamma_load64(Gamma_mem, bvadd64(R0, 4064bv64)) || L(mem, bvadd64(R0, 4064bv64))); + R0, Gamma_R0 := $load$19, Gamma_$load$19; + $load$20, Gamma_$load$20 := memory_load32_le(stack, bvadd64(R31, 12bv64)), gamma_load32(Gamma_stack, bvadd64(R31, 12bv64)); + R1, Gamma_R1 := zero_extend32_32($load$20), Gamma_$load$20; call rely(); + assert (L(mem, R0) ==> Gamma_R1); z_old := memory_load32_le(mem, $z_addr); Gamma_x_old := (gamma_load32(Gamma_mem, $x_addr) || L(mem, $x_addr)); - assert (L(mem, R0) ==> Gamma_R1); mem, Gamma_mem := memory_store32_le(mem, R0, R1[32:0]), gamma_store32(Gamma_mem, R0, Gamma_R1); assert ((R0 == $z_addr) ==> (L(mem, $x_addr) ==> Gamma_x_old)); assert ((z_old != 0bv32) ==> (memory_load32_le(mem, $z_addr) != 0bv32)); assume {:captureState "%0000033a"} true; R0, Gamma_R0 := 65536bv64, true; call rely(); - load21, Gamma_load21 := memory_load64_le(mem, bvadd64(R0, 4064bv64)), (gamma_load64(Gamma_mem, bvadd64(R0, 4064bv64)) || L(mem, bvadd64(R0, 4064bv64))); - R0, Gamma_R0 := load21, Gamma_load21; + $load$21, Gamma_$load$21 := memory_load64_le(mem, bvadd64(R0, 4064bv64)), (gamma_load64(Gamma_mem, bvadd64(R0, 4064bv64)) || L(mem, bvadd64(R0, 4064bv64))); + R0, Gamma_R0 := $load$21, Gamma_$load$21; call rely(); + assert (L(mem, R0) ==> true); z_old := memory_load32_le(mem, $z_addr); Gamma_x_old := (gamma_load32(Gamma_mem, $x_addr) || L(mem, $x_addr)); - assert (L(mem, R0) ==> true); mem, Gamma_mem := memory_store32_le(mem, R0, 0bv32), gamma_store32(Gamma_mem, R0, true); assert ((R0 == $z_addr) ==> (L(mem, $x_addr) ==> Gamma_x_old)); assert ((z_old != 0bv32) ==> (memory_load32_le(mem, $z_addr) != 0bv32)); assume {:captureState "%0000034d"} true; R0, Gamma_R0 := 65536bv64, true; call rely(); - load22, Gamma_load22 := memory_load64_le(mem, bvadd64(R0, 4056bv64)), (gamma_load64(Gamma_mem, bvadd64(R0, 4056bv64)) || L(mem, bvadd64(R0, 4056bv64))); - R0, Gamma_R0 := load22, Gamma_load22; + $load$22, Gamma_$load$22 := memory_load64_le(mem, bvadd64(R0, 4056bv64)), (gamma_load64(Gamma_mem, bvadd64(R0, 4056bv64)) || L(mem, bvadd64(R0, 4056bv64))); + R0, Gamma_R0 := $load$22, Gamma_$load$22; R1, Gamma_R1 := 2bv64, true; call rely(); + assert (L(mem, R0) ==> Gamma_R1); z_old := memory_load32_le(mem, $z_addr); Gamma_x_old := (gamma_load32(Gamma_mem, $x_addr) || L(mem, $x_addr)); - assert (L(mem, R0) ==> Gamma_R1); mem, Gamma_mem := memory_store32_le(mem, R0, R1[32:0]), gamma_store32(Gamma_mem, R0, Gamma_R1); assert ((R0 == $z_addr) ==> (L(mem, $x_addr) ==> Gamma_x_old)); assert ((z_old != 0bv32) ==> (memory_load32_le(mem, $z_addr) != 0bv32)); assume {:captureState "%00000366"} true; R0, Gamma_R0 := 0bv64, true; R31, Gamma_R31 := bvadd64(R31, 16bv64), Gamma_R31; - goto main_1876_basil_return; - main_1876_basil_return: - assume {:captureState "main_1876_basil_return"} true; + goto main_basil_return; + main_basil_return: + assume {:captureState "main_basil_return"} true; return; } diff --git a/src/test/correct/basic_sec_policy_write/gcc_pic/basic_sec_policy_write.gts b/src/test/correct/basic_sec_policy_write/gcc_pic/basic_sec_policy_write.gts deleted file mode 100644 index c800dacc0..000000000 Binary files a/src/test/correct/basic_sec_policy_write/gcc_pic/basic_sec_policy_write.gts and /dev/null differ diff --git a/src/test/correct/basic_sec_policy_write/gcc_pic/basic_sec_policy_write.md5sum b/src/test/correct/basic_sec_policy_write/gcc_pic/basic_sec_policy_write.md5sum new file mode 100644 index 000000000..e1112890b --- /dev/null +++ b/src/test/correct/basic_sec_policy_write/gcc_pic/basic_sec_policy_write.md5sum @@ -0,0 +1,5 @@ +0d579d5f95d5b9ada274b8d277a5274d correct/basic_sec_policy_write/gcc_pic/a.out +bdb4e5a39334379f2a320c6e6cbbcd7c correct/basic_sec_policy_write/gcc_pic/basic_sec_policy_write.adt +e3593af37d2ad4872f495f2e14a9009d correct/basic_sec_policy_write/gcc_pic/basic_sec_policy_write.bir +13288c272806c0a724285c7a07336f2f correct/basic_sec_policy_write/gcc_pic/basic_sec_policy_write.relf +084a854a83e4d403a6182e1c435dee72 correct/basic_sec_policy_write/gcc_pic/basic_sec_policy_write.gts diff --git a/src/test/correct/basic_sec_policy_write/gcc_pic/basic_sec_policy_write.relf b/src/test/correct/basic_sec_policy_write/gcc_pic/basic_sec_policy_write.relf deleted file mode 100644 index c7b750bf8..000000000 --- a/src/test/correct/basic_sec_policy_write/gcc_pic/basic_sec_policy_write.relf +++ /dev/null @@ -1,124 +0,0 @@ - -Relocation section '.rela.dyn' at offset 0x460 contains 10 entries: - Offset Info Type Symbol's Value Symbol's Name + Addend -0000000000010d88 0000000000000403 R_AARCH64_RELATIVE 750 -0000000000010d90 0000000000000403 R_AARCH64_RELATIVE 700 -0000000000010fd8 0000000000000403 R_AARCH64_RELATIVE 11018 -0000000000010fe0 0000000000000403 R_AARCH64_RELATIVE 11014 -0000000000010ff0 0000000000000403 R_AARCH64_RELATIVE 754 -0000000000011008 0000000000000403 R_AARCH64_RELATIVE 11008 -0000000000010fc8 0000000400000401 R_AARCH64_GLOB_DAT 0000000000000000 _ITM_deregisterTMCloneTable + 0 -0000000000010fd0 0000000500000401 R_AARCH64_GLOB_DAT 0000000000000000 __cxa_finalize@GLIBC_2.17 + 0 -0000000000010fe8 0000000600000401 R_AARCH64_GLOB_DAT 0000000000000000 __gmon_start__ + 0 -0000000000010ff8 0000000800000401 R_AARCH64_GLOB_DAT 0000000000000000 _ITM_registerTMCloneTable + 0 - -Relocation section '.rela.plt' at offset 0x550 contains 4 entries: - Offset Info Type Symbol's Value Symbol's Name + Addend -0000000000010fa0 0000000300000402 R_AARCH64_JUMP_SLOT 0000000000000000 __libc_start_main@GLIBC_2.34 + 0 -0000000000010fa8 0000000500000402 R_AARCH64_JUMP_SLOT 0000000000000000 __cxa_finalize@GLIBC_2.17 + 0 -0000000000010fb0 0000000600000402 R_AARCH64_JUMP_SLOT 0000000000000000 __gmon_start__ + 0 -0000000000010fb8 0000000700000402 R_AARCH64_JUMP_SLOT 0000000000000000 abort@GLIBC_2.17 + 0 - -Symbol table '.dynsym' contains 9 entries: - Num: Value Size Type Bind Vis Ndx Name - 0: 0000000000000000 0 NOTYPE LOCAL DEFAULT UND - 1: 00000000000005b0 0 SECTION LOCAL DEFAULT 11 .init - 2: 0000000000011000 0 SECTION LOCAL DEFAULT 22 .data - 3: 0000000000000000 0 FUNC GLOBAL DEFAULT UND __libc_start_main@GLIBC_2.34 (2) - 4: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_deregisterTMCloneTable - 5: 0000000000000000 0 FUNC WEAK DEFAULT UND __cxa_finalize@GLIBC_2.17 (3) - 6: 0000000000000000 0 NOTYPE WEAK DEFAULT UND __gmon_start__ - 7: 0000000000000000 0 FUNC GLOBAL DEFAULT UND abort@GLIBC_2.17 (3) - 8: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_registerTMCloneTable - -Symbol table '.symtab' contains 89 entries: - Num: Value Size Type Bind Vis Ndx Name - 0: 0000000000000000 0 NOTYPE LOCAL DEFAULT UND - 1: 0000000000000238 0 SECTION LOCAL DEFAULT 1 .interp - 2: 0000000000000254 0 SECTION LOCAL DEFAULT 2 .note.gnu.build-id - 3: 0000000000000278 0 SECTION LOCAL DEFAULT 3 .note.ABI-tag - 4: 0000000000000298 0 SECTION LOCAL DEFAULT 4 .gnu.hash - 5: 00000000000002b8 0 SECTION LOCAL DEFAULT 5 .dynsym - 6: 0000000000000390 0 SECTION LOCAL DEFAULT 6 .dynstr - 7: 000000000000041e 0 SECTION LOCAL DEFAULT 7 .gnu.version - 8: 0000000000000430 0 SECTION LOCAL DEFAULT 8 .gnu.version_r - 9: 0000000000000460 0 SECTION LOCAL DEFAULT 9 .rela.dyn - 10: 0000000000000550 0 SECTION LOCAL DEFAULT 10 .rela.plt - 11: 00000000000005b0 0 SECTION LOCAL DEFAULT 11 .init - 12: 00000000000005d0 0 SECTION LOCAL DEFAULT 12 .plt - 13: 0000000000000640 0 SECTION LOCAL DEFAULT 13 .text - 14: 00000000000007a4 0 SECTION LOCAL DEFAULT 14 .fini - 15: 00000000000007b8 0 SECTION LOCAL DEFAULT 15 .rodata - 16: 00000000000007bc 0 SECTION LOCAL DEFAULT 16 .eh_frame_hdr - 17: 00000000000007f8 0 SECTION LOCAL DEFAULT 17 .eh_frame - 18: 0000000000010d88 0 SECTION LOCAL DEFAULT 18 .init_array - 19: 0000000000010d90 0 SECTION LOCAL DEFAULT 19 .fini_array - 20: 0000000000010d98 0 SECTION LOCAL DEFAULT 20 .dynamic - 21: 0000000000010f88 0 SECTION LOCAL DEFAULT 21 .got - 22: 0000000000011000 0 SECTION LOCAL DEFAULT 22 .data - 23: 0000000000011010 0 SECTION LOCAL DEFAULT 23 .bss - 24: 0000000000000000 0 SECTION LOCAL DEFAULT 24 .comment - 25: 0000000000000000 0 FILE LOCAL DEFAULT ABS Scrt1.o - 26: 0000000000000278 0 NOTYPE LOCAL DEFAULT 3 $d - 27: 0000000000000278 32 OBJECT LOCAL DEFAULT 3 __abi_tag - 28: 0000000000000640 0 NOTYPE LOCAL DEFAULT 13 $x - 29: 000000000000080c 0 NOTYPE LOCAL DEFAULT 17 $d - 30: 00000000000007b8 0 NOTYPE LOCAL DEFAULT 15 $d - 31: 0000000000000000 0 FILE LOCAL DEFAULT ABS crti.o - 32: 0000000000000674 0 NOTYPE LOCAL DEFAULT 13 $x - 33: 0000000000000674 20 FUNC LOCAL DEFAULT 13 call_weak_fn - 34: 00000000000005b0 0 NOTYPE LOCAL DEFAULT 11 $x - 35: 00000000000007a4 0 NOTYPE LOCAL DEFAULT 14 $x - 36: 0000000000000000 0 FILE LOCAL DEFAULT ABS crtn.o - 37: 00000000000005c0 0 NOTYPE LOCAL DEFAULT 11 $x - 38: 00000000000007b0 0 NOTYPE LOCAL DEFAULT 14 $x - 39: 0000000000000000 0 FILE LOCAL DEFAULT ABS crtstuff.c - 40: 0000000000000690 0 NOTYPE LOCAL DEFAULT 13 $x - 41: 0000000000000690 0 FUNC LOCAL DEFAULT 13 deregister_tm_clones - 42: 00000000000006c0 0 FUNC LOCAL DEFAULT 13 register_tm_clones - 43: 0000000000011008 0 NOTYPE LOCAL DEFAULT 22 $d - 44: 0000000000000700 0 FUNC LOCAL DEFAULT 13 __do_global_dtors_aux - 45: 0000000000011010 1 OBJECT LOCAL DEFAULT 23 completed.0 - 46: 0000000000010d90 0 NOTYPE LOCAL DEFAULT 19 $d - 47: 0000000000010d90 0 OBJECT LOCAL DEFAULT 19 __do_global_dtors_aux_fini_array_entry - 48: 0000000000000750 0 FUNC LOCAL DEFAULT 13 frame_dummy - 49: 0000000000010d88 0 NOTYPE LOCAL DEFAULT 18 $d - 50: 0000000000010d88 0 OBJECT LOCAL DEFAULT 18 __frame_dummy_init_array_entry - 51: 0000000000000820 0 NOTYPE LOCAL DEFAULT 17 $d - 52: 0000000000011010 0 NOTYPE LOCAL DEFAULT 23 $d - 53: 0000000000000000 0 FILE LOCAL DEFAULT ABS basic_sec_policy_write.c - 54: 0000000000011014 0 NOTYPE LOCAL DEFAULT 23 $d - 55: 0000000000000754 0 NOTYPE LOCAL DEFAULT 13 $x - 56: 0000000000000880 0 NOTYPE LOCAL DEFAULT 17 $d - 57: 0000000000000000 0 FILE LOCAL DEFAULT ABS crtstuff.c - 58: 0000000000000898 0 NOTYPE LOCAL DEFAULT 17 $d - 59: 0000000000000898 0 OBJECT LOCAL DEFAULT 17 __FRAME_END__ - 60: 0000000000000000 0 FILE LOCAL DEFAULT ABS - 61: 0000000000010d98 0 OBJECT LOCAL DEFAULT ABS _DYNAMIC - 62: 00000000000007bc 0 NOTYPE LOCAL DEFAULT 16 __GNU_EH_FRAME_HDR - 63: 0000000000010fc0 0 OBJECT LOCAL DEFAULT ABS _GLOBAL_OFFSET_TABLE_ - 64: 00000000000005d0 0 NOTYPE LOCAL DEFAULT 12 $x - 65: 0000000000000000 0 FUNC GLOBAL DEFAULT UND __libc_start_main@GLIBC_2.34 - 66: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_deregisterTMCloneTable - 67: 0000000000011000 0 NOTYPE WEAK DEFAULT 22 data_start - 68: 0000000000011010 0 NOTYPE GLOBAL DEFAULT 23 __bss_start__ - 69: 0000000000000000 0 FUNC WEAK DEFAULT UND __cxa_finalize@GLIBC_2.17 - 70: 0000000000011020 0 NOTYPE GLOBAL DEFAULT 23 _bss_end__ - 71: 0000000000011010 0 NOTYPE GLOBAL DEFAULT 22 _edata - 72: 0000000000011018 4 OBJECT GLOBAL DEFAULT 23 z - 73: 0000000000011014 4 OBJECT GLOBAL DEFAULT 23 x - 74: 00000000000007a4 0 FUNC GLOBAL HIDDEN 14 _fini - 75: 0000000000011020 0 NOTYPE GLOBAL DEFAULT 23 __bss_end__ - 76: 0000000000011000 0 NOTYPE GLOBAL DEFAULT 22 __data_start - 77: 0000000000000000 0 NOTYPE WEAK DEFAULT UND __gmon_start__ - 78: 0000000000011008 0 OBJECT GLOBAL HIDDEN 22 __dso_handle - 79: 0000000000000000 0 FUNC GLOBAL DEFAULT UND abort@GLIBC_2.17 - 80: 00000000000007b8 4 OBJECT GLOBAL DEFAULT 15 _IO_stdin_used - 81: 0000000000011020 0 NOTYPE GLOBAL DEFAULT 23 _end - 82: 0000000000000640 52 FUNC GLOBAL DEFAULT 13 _start - 83: 0000000000011020 0 NOTYPE GLOBAL DEFAULT 23 __end__ - 84: 0000000000011010 0 NOTYPE GLOBAL DEFAULT 23 __bss_start - 85: 0000000000000754 80 FUNC GLOBAL DEFAULT 13 main - 86: 0000000000011010 0 OBJECT GLOBAL HIDDEN 22 __TMC_END__ - 87: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_registerTMCloneTable - 88: 00000000000005b0 0 FUNC GLOBAL HIDDEN 11 _init diff --git a/src/test/correct/basic_sec_policy_write/gcc_pic/basic_sec_policy_write_gtirb.expected b/src/test/correct/basic_sec_policy_write/gcc_pic/basic_sec_policy_write_gtirb.expected index 02f580c3c..b63bdeae9 100644 --- a/src/test/correct/basic_sec_policy_write/gcc_pic/basic_sec_policy_write_gtirb.expected +++ b/src/test/correct/basic_sec_policy_write/gcc_pic/basic_sec_policy_write_gtirb.expected @@ -79,7 +79,7 @@ implementation {:extern} guarantee_reflexive() assert ((memory_load32_le(mem, $z_addr) != 0bv32) ==> (memory_load32_le(mem, $z_addr) != 0bv32)); } -procedure main_1876(); +procedure main(); modifies Gamma_R0, Gamma_R1, Gamma_R31, Gamma_mem, Gamma_stack, R0, R1, R31, mem, stack; requires (Gamma_R0 == false); free requires (memory_load64_le(mem, 69632bv64) == 0bv64); @@ -101,82 +101,82 @@ procedure main_1876(); free ensures (memory_load64_le(mem, 69616bv64) == 1876bv64); free ensures (memory_load64_le(mem, 69640bv64) == 69640bv64); -implementation main_1876() +implementation main() { - var Gamma_load12: bool; - var Gamma_load13: bool; - var Gamma_load14: bool; - var Gamma_load15: bool; - var Gamma_load16: bool; + var $load12: bv64; + var $load13: bv64; + var $load14: bv32; + var $load15: bv64; + var $load16: bv64; + var Gamma_$load12: bool; + var Gamma_$load13: bool; + var Gamma_$load14: bool; + var Gamma_$load15: bool; + var Gamma_$load16: bool; var Gamma_x_old: bool; - var load12: bv64; - var load13: bv64; - var load14: bv32; - var load15: bv64; - var load16: bv64; var z_old: bv32; - main_1876__0__Rd6PFSFeTgqYLa9US2ew9w: - assume {:captureState "main_1876__0__Rd6PFSFeTgqYLa9US2ew9w"} true; + $main$__0__$Rd6PFSFeTgqYLa9US2ew9w: + assume {:captureState "$main$__0__$Rd6PFSFeTgqYLa9US2ew9w"} true; R31, Gamma_R31 := bvadd64(R31, 18446744073709551600bv64), Gamma_R31; stack, Gamma_stack := memory_store32_le(stack, bvadd64(R31, 12bv64), R0[32:0]), gamma_store32(Gamma_stack, bvadd64(R31, 12bv64), Gamma_R0); - assume {:captureState "1880_0"} true; + assume {:captureState "1880$0"} true; R0, Gamma_R0 := 65536bv64, true; call rely(); - load12, Gamma_load12 := memory_load64_le(mem, bvadd64(R0, 4056bv64)), (gamma_load64(Gamma_mem, bvadd64(R0, 4056bv64)) || L(mem, bvadd64(R0, 4056bv64))); - R0, Gamma_R0 := load12, Gamma_load12; + $load12, Gamma_$load12 := memory_load64_le(mem, bvadd64(R0, 4056bv64)), (gamma_load64(Gamma_mem, bvadd64(R0, 4056bv64)) || L(mem, bvadd64(R0, 4056bv64))); + R0, Gamma_R0 := $load12, Gamma_$load12; R1, Gamma_R1 := 1bv64, true; call rely(); + assert (L(mem, R0) ==> Gamma_R1); z_old := memory_load32_le(mem, $z_addr); Gamma_x_old := (gamma_load32(Gamma_mem, $x_addr) || L(mem, $x_addr)); - assert (L(mem, R0) ==> Gamma_R1); mem, Gamma_mem := memory_store32_le(mem, R0, R1[32:0]), gamma_store32(Gamma_mem, R0, Gamma_R1); assert ((R0 == $z_addr) ==> (L(mem, $x_addr) ==> Gamma_x_old)); assert ((z_old != 0bv32) ==> (memory_load32_le(mem, $z_addr) != 0bv32)); - assume {:captureState "1896_0"} true; + assume {:captureState "1896$0"} true; R0, Gamma_R0 := 65536bv64, true; call rely(); - load13, Gamma_load13 := memory_load64_le(mem, bvadd64(R0, 4064bv64)), (gamma_load64(Gamma_mem, bvadd64(R0, 4064bv64)) || L(mem, bvadd64(R0, 4064bv64))); - R0, Gamma_R0 := load13, Gamma_load13; - load14, Gamma_load14 := memory_load32_le(stack, bvadd64(R31, 12bv64)), gamma_load32(Gamma_stack, bvadd64(R31, 12bv64)); - R1, Gamma_R1 := zero_extend32_32(load14), Gamma_load14; + $load13, Gamma_$load13 := memory_load64_le(mem, bvadd64(R0, 4064bv64)), (gamma_load64(Gamma_mem, bvadd64(R0, 4064bv64)) || L(mem, bvadd64(R0, 4064bv64))); + R0, Gamma_R0 := $load13, Gamma_$load13; + $load14, Gamma_$load14 := memory_load32_le(stack, bvadd64(R31, 12bv64)), gamma_load32(Gamma_stack, bvadd64(R31, 12bv64)); + R1, Gamma_R1 := zero_extend32_32($load14), Gamma_$load14; call rely(); + assert (L(mem, R0) ==> Gamma_R1); z_old := memory_load32_le(mem, $z_addr); Gamma_x_old := (gamma_load32(Gamma_mem, $x_addr) || L(mem, $x_addr)); - assert (L(mem, R0) ==> Gamma_R1); mem, Gamma_mem := memory_store32_le(mem, R0, R1[32:0]), gamma_store32(Gamma_mem, R0, Gamma_R1); assert ((R0 == $z_addr) ==> (L(mem, $x_addr) ==> Gamma_x_old)); assert ((z_old != 0bv32) ==> (memory_load32_le(mem, $z_addr) != 0bv32)); - assume {:captureState "1912_0"} true; + assume {:captureState "1912$0"} true; R0, Gamma_R0 := 65536bv64, true; call rely(); - load15, Gamma_load15 := memory_load64_le(mem, bvadd64(R0, 4064bv64)), (gamma_load64(Gamma_mem, bvadd64(R0, 4064bv64)) || L(mem, bvadd64(R0, 4064bv64))); - R0, Gamma_R0 := load15, Gamma_load15; + $load15, Gamma_$load15 := memory_load64_le(mem, bvadd64(R0, 4064bv64)), (gamma_load64(Gamma_mem, bvadd64(R0, 4064bv64)) || L(mem, bvadd64(R0, 4064bv64))); + R0, Gamma_R0 := $load15, Gamma_$load15; call rely(); + assert (L(mem, R0) ==> true); z_old := memory_load32_le(mem, $z_addr); Gamma_x_old := (gamma_load32(Gamma_mem, $x_addr) || L(mem, $x_addr)); - assert (L(mem, R0) ==> true); mem, Gamma_mem := memory_store32_le(mem, R0, 0bv32), gamma_store32(Gamma_mem, R0, true); assert ((R0 == $z_addr) ==> (L(mem, $x_addr) ==> Gamma_x_old)); assert ((z_old != 0bv32) ==> (memory_load32_le(mem, $z_addr) != 0bv32)); - assume {:captureState "1924_0"} true; + assume {:captureState "1924$0"} true; R0, Gamma_R0 := 65536bv64, true; call rely(); - load16, Gamma_load16 := memory_load64_le(mem, bvadd64(R0, 4056bv64)), (gamma_load64(Gamma_mem, bvadd64(R0, 4056bv64)) || L(mem, bvadd64(R0, 4056bv64))); - R0, Gamma_R0 := load16, Gamma_load16; + $load16, Gamma_$load16 := memory_load64_le(mem, bvadd64(R0, 4056bv64)), (gamma_load64(Gamma_mem, bvadd64(R0, 4056bv64)) || L(mem, bvadd64(R0, 4056bv64))); + R0, Gamma_R0 := $load16, Gamma_$load16; R1, Gamma_R1 := 2bv64, true; call rely(); + assert (L(mem, R0) ==> Gamma_R1); z_old := memory_load32_le(mem, $z_addr); Gamma_x_old := (gamma_load32(Gamma_mem, $x_addr) || L(mem, $x_addr)); - assert (L(mem, R0) ==> Gamma_R1); mem, Gamma_mem := memory_store32_le(mem, R0, R1[32:0]), gamma_store32(Gamma_mem, R0, Gamma_R1); assert ((R0 == $z_addr) ==> (L(mem, $x_addr) ==> Gamma_x_old)); assert ((z_old != 0bv32) ==> (memory_load32_le(mem, $z_addr) != 0bv32)); - assume {:captureState "1940_0"} true; + assume {:captureState "1940$0"} true; R0, Gamma_R0 := 0bv64, true; R31, Gamma_R31 := bvadd64(R31, 16bv64), Gamma_R31; - goto main_1876_basil_return; - main_1876_basil_return: - assume {:captureState "main_1876_basil_return"} true; + goto main_basil_return; + main_basil_return: + assume {:captureState "main_basil_return"} true; return; } diff --git a/src/test/correct/basicassign_gamma0/clang/basicassign_gamma0.adt b/src/test/correct/basicassign_gamma0/clang/basicassign_gamma0.adt deleted file mode 100644 index 9db112f0d..000000000 --- a/src/test/correct/basicassign_gamma0/clang/basicassign_gamma0.adt +++ /dev/null @@ -1,495 +0,0 @@ -Project(Attrs([Attr("filename","\"clang/basicassign_gamma0.out\""), -Attr("image-specification","(declare abi (name str))\n(declare arch (name str))\n(declare base-address (addr int))\n(declare bias (off int))\n(declare bits (size int))\n(declare code-region (addr int) (size int) (off int))\n(declare code-start (addr int))\n(declare entry-point (addr int))\n(declare external-reference (addr int) (name str))\n(declare format (name str))\n(declare is-executable (flag bool))\n(declare is-little-endian (flag bool))\n(declare llvm:base-address (addr int))\n(declare llvm:code-entry (name str) (off int) (size int))\n(declare llvm:coff-import-library (name str))\n(declare llvm:coff-virtual-section-header (name str) (addr int) (size int))\n(declare llvm:elf-program-header (name str) (off int) (size int))\n(declare llvm:elf-program-header-flags (name str) (ld bool) (r bool) \n (w bool) (x bool))\n(declare llvm:elf-virtual-program-header (name str) (addr int) (size int))\n(declare llvm:entry-point (addr int))\n(declare llvm:macho-symbol (name str) (value int))\n(declare llvm:name-reference (at int) (name str))\n(declare llvm:relocation (at int) (addr int))\n(declare llvm:section-entry (name str) (addr int) (size int) (off int))\n(declare llvm:section-flags (name str) (r bool) (w bool) (x bool))\n(declare llvm:segment-command (name str) (off int) (size int))\n(declare llvm:segment-command-flags (name str) (r bool) (w bool) (x bool))\n(declare llvm:symbol-entry (name str) (addr int) (size int) (off int)\n (value int))\n(declare llvm:virtual-segment-command (name str) (addr int) (size int))\n(declare mapped (addr int) (size int) (off int))\n(declare named-region (addr int) (size int) (name str))\n(declare named-symbol (addr int) (name str))\n(declare require (name str))\n(declare section (addr int) (size int))\n(declare segment (addr int) (size int) (r bool) (w bool) (x bool))\n(declare subarch (name str))\n(declare symbol-chunk (addr int) (size int) (root int))\n(declare symbol-value (addr int) (value int))\n(declare system (name str))\n(declare vendor (name str))\n\n(abi unknown)\n(arch aarch64)\n(base-address 0)\n(bias 0)\n(bits 64)\n(code-region 1836 20 1836)\n(code-region 1536 300 1536)\n(code-region 1440 96 1440)\n(code-region 1408 24 1408)\n(code-start 1588)\n(code-start 1536)\n(code-start 1812)\n(entry-point 1536)\n(external-reference 69568 _ITM_deregisterTMCloneTable)\n(external-reference 69576 __cxa_finalize)\n(external-reference 69584 __gmon_start__)\n(external-reference 69600 _ITM_registerTMCloneTable)\n(external-reference 69632 __libc_start_main)\n(external-reference 69640 __cxa_finalize)\n(external-reference 69648 __gmon_start__)\n(external-reference 69656 abort)\n(format elf)\n(is-executable true)\n(is-little-endian true)\n(llvm:base-address 0)\n(llvm:code-entry abort 0 0)\n(llvm:code-entry __cxa_finalize 0 0)\n(llvm:code-entry __libc_start_main 0 0)\n(llvm:code-entry _init 1408 0)\n(llvm:code-entry main 1812 24)\n(llvm:code-entry _start 1536 52)\n(llvm:code-entry abort@GLIBC_2.17 0 0)\n(llvm:code-entry _fini 1836 0)\n(llvm:code-entry __cxa_finalize@GLIBC_2.17 0 0)\n(llvm:code-entry __libc_start_main@GLIBC_2.34 0 0)\n(llvm:code-entry frame_dummy 1808 0)\n(llvm:code-entry __do_global_dtors_aux 1728 0)\n(llvm:code-entry register_tm_clones 1664 0)\n(llvm:code-entry deregister_tm_clones 1616 0)\n(llvm:code-entry call_weak_fn 1588 20)\n(llvm:code-entry .fini 1836 20)\n(llvm:code-entry .text 1536 300)\n(llvm:code-entry .plt 1440 96)\n(llvm:code-entry .init 1408 24)\n(llvm:elf-program-header 08 3528 568)\n(llvm:elf-program-header 07 0 0)\n(llvm:elf-program-header 06 1860 60)\n(llvm:elf-program-header 05 596 68)\n(llvm:elf-program-header 04 3544 480)\n(llvm:elf-program-header 03 3528 616)\n(llvm:elf-program-header 02 0 2100)\n(llvm:elf-program-header 01 568 27)\n(llvm:elf-program-header 00 64 504)\n(llvm:elf-program-header-flags 08 false true false false)\n(llvm:elf-program-header-flags 07 false true true false)\n(llvm:elf-program-header-flags 06 false true false false)\n(llvm:elf-program-header-flags 05 false true false false)\n(llvm:elf-program-header-flags 04 false true true false)\n(llvm:elf-program-header-flags 03 true true true false)\n(llvm:elf-program-header-flags 02 true true false true)\n(llvm:elf-program-header-flags 01 false true false false)\n(llvm:elf-program-header-flags 00 false true false false)\n(llvm:elf-virtual-program-header 08 69064 568)\n(llvm:elf-virtual-program-header 07 0 0)\n(llvm:elf-virtual-program-header 06 1860 60)\n(llvm:elf-virtual-program-header 05 596 68)\n(llvm:elf-virtual-program-header 04 69080 480)\n(llvm:elf-virtual-program-header 03 69064 632)\n(llvm:elf-virtual-program-header 02 0 2100)\n(llvm:elf-virtual-program-header 01 568 27)\n(llvm:elf-virtual-program-header 00 64 504)\n(llvm:entry-point 1536)\n(llvm:name-reference 69656 abort)\n(llvm:name-reference 69648 __gmon_start__)\n(llvm:name-reference 69640 __cxa_finalize)\n(llvm:name-reference 69632 __libc_start_main)\n(llvm:name-reference 69600 _ITM_registerTMCloneTable)\n(llvm:name-reference 69584 __gmon_start__)\n(llvm:name-reference 69576 __cxa_finalize)\n(llvm:name-reference 69568 _ITM_deregisterTMCloneTable)\n(llvm:section-entry .shstrtab 0 259 6981)\n(llvm:section-entry .strtab 0 581 6400)\n(llvm:section-entry .symtab 0 2184 4216)\n(llvm:section-entry .comment 0 71 4144)\n(llvm:section-entry .bss 69680 16 4144)\n(llvm:section-entry .data 69664 16 4128)\n(llvm:section-entry .got.plt 69608 56 4072)\n(llvm:section-entry .got 69560 48 4024)\n(llvm:section-entry .dynamic 69080 480 3544)\n(llvm:section-entry .fini_array 69072 8 3536)\n(llvm:section-entry .init_array 69064 8 3528)\n(llvm:section-entry .eh_frame 1920 180 1920)\n(llvm:section-entry .eh_frame_hdr 1860 60 1860)\n(llvm:section-entry .rodata 1856 4 1856)\n(llvm:section-entry .fini 1836 20 1836)\n(llvm:section-entry .text 1536 300 1536)\n(llvm:section-entry .plt 1440 96 1440)\n(llvm:section-entry .init 1408 24 1408)\n(llvm:section-entry .rela.plt 1312 96 1312)\n(llvm:section-entry .rela.dyn 1120 192 1120)\n(llvm:section-entry .gnu.version_r 1072 48 1072)\n(llvm:section-entry .gnu.version 1054 18 1054)\n(llvm:section-entry .dynstr 912 141 912)\n(llvm:section-entry .dynsym 696 216 696)\n(llvm:section-entry .gnu.hash 664 28 664)\n(llvm:section-entry .note.ABI-tag 632 32 632)\n(llvm:section-entry .note.gnu.build-id 596 36 596)\n(llvm:section-entry .interp 568 27 568)\n(llvm:section-flags .shstrtab true false false)\n(llvm:section-flags .strtab true false false)\n(llvm:section-flags .symtab true false false)\n(llvm:section-flags .comment true false false)\n(llvm:section-flags .bss true true false)\n(llvm:section-flags .data true true false)\n(llvm:section-flags .got.plt true true false)\n(llvm:section-flags .got true true false)\n(llvm:section-flags .dynamic true true false)\n(llvm:section-flags .fini_array true true false)\n(llvm:section-flags .init_array true true false)\n(llvm:section-flags .eh_frame true false false)\n(llvm:section-flags .eh_frame_hdr true false false)\n(llvm:section-flags .rodata true false false)\n(llvm:section-flags .fini true false true)\n(llvm:section-flags .text true false true)\n(llvm:section-flags .plt true false true)\n(llvm:section-flags .init true false true)\n(llvm:section-flags .rela.plt true false false)\n(llvm:section-flags .rela.dyn true false false)\n(llvm:section-flags .gnu.version_r true false false)\n(llvm:section-flags .gnu.version true false false)\n(llvm:section-flags .dynstr true false false)\n(llvm:section-flags .dynsym true false false)\n(llvm:section-flags .gnu.hash true false false)\n(llvm:section-flags .note.ABI-tag true false false)\n(llvm:section-flags .note.gnu.build-id true false false)\n(llvm:section-flags .interp true false false)\n(llvm:symbol-entry abort 0 0 0 0)\n(llvm:symbol-entry __cxa_finalize 0 0 0 0)\n(llvm:symbol-entry __libc_start_main 0 0 0 0)\n(llvm:symbol-entry _init 1408 0 1408 1408)\n(llvm:symbol-entry main 1812 24 1812 1812)\n(llvm:symbol-entry _start 1536 52 1536 1536)\n(llvm:symbol-entry abort@GLIBC_2.17 0 0 0 0)\n(llvm:symbol-entry _fini 1836 0 1836 1836)\n(llvm:symbol-entry __cxa_finalize@GLIBC_2.17 0 0 0 0)\n(llvm:symbol-entry __libc_start_main@GLIBC_2.34 0 0 0 0)\n(llvm:symbol-entry frame_dummy 1808 0 1808 1808)\n(llvm:symbol-entry __do_global_dtors_aux 1728 0 1728 1728)\n(llvm:symbol-entry register_tm_clones 1664 0 1664 1664)\n(llvm:symbol-entry deregister_tm_clones 1616 0 1616 1616)\n(llvm:symbol-entry call_weak_fn 1588 20 1588 1588)\n(mapped 0 2100 0)\n(mapped 69064 616 3528)\n(named-region 0 2100 02)\n(named-region 69064 632 03)\n(named-region 568 27 .interp)\n(named-region 596 36 .note.gnu.build-id)\n(named-region 632 32 .note.ABI-tag)\n(named-region 664 28 .gnu.hash)\n(named-region 696 216 .dynsym)\n(named-region 912 141 .dynstr)\n(named-region 1054 18 .gnu.version)\n(named-region 1072 48 .gnu.version_r)\n(named-region 1120 192 .rela.dyn)\n(named-region 1312 96 .rela.plt)\n(named-region 1408 24 .init)\n(named-region 1440 96 .plt)\n(named-region 1536 300 .text)\n(named-region 1836 20 .fini)\n(named-region 1856 4 .rodata)\n(named-region 1860 60 .eh_frame_hdr)\n(named-region 1920 180 .eh_frame)\n(named-region 69064 8 .init_array)\n(named-region 69072 8 .fini_array)\n(named-region 69080 480 .dynamic)\n(named-region 69560 48 .got)\n(named-region 69608 56 .got.plt)\n(named-region 69664 16 .data)\n(named-region 69680 16 .bss)\n(named-region 0 71 .comment)\n(named-region 0 2184 .symtab)\n(named-region 0 581 .strtab)\n(named-region 0 259 .shstrtab)\n(named-symbol 1588 call_weak_fn)\n(named-symbol 1616 deregister_tm_clones)\n(named-symbol 1664 register_tm_clones)\n(named-symbol 1728 __do_global_dtors_aux)\n(named-symbol 1808 frame_dummy)\n(named-symbol 0 __libc_start_main@GLIBC_2.34)\n(named-symbol 0 __cxa_finalize@GLIBC_2.17)\n(named-symbol 1836 _fini)\n(named-symbol 0 abort@GLIBC_2.17)\n(named-symbol 1536 _start)\n(named-symbol 1812 main)\n(named-symbol 1408 _init)\n(named-symbol 0 __libc_start_main)\n(named-symbol 0 __cxa_finalize)\n(named-symbol 0 abort)\n(require libc.so.6)\n(section 568 27)\n(section 596 36)\n(section 632 32)\n(section 664 28)\n(section 696 216)\n(section 912 141)\n(section 1054 18)\n(section 1072 48)\n(section 1120 192)\n(section 1312 96)\n(section 1408 24)\n(section 1440 96)\n(section 1536 300)\n(section 1836 20)\n(section 1856 4)\n(section 1860 60)\n(section 1920 180)\n(section 69064 8)\n(section 69072 8)\n(section 69080 480)\n(section 69560 48)\n(section 69608 56)\n(section 69664 16)\n(section 69680 16)\n(section 0 71)\n(section 0 2184)\n(section 0 581)\n(section 0 259)\n(segment 0 2100 true false true)\n(segment 69064 632 true true false)\n(subarch v8)\n(symbol-chunk 1588 20 1588)\n(symbol-chunk 1536 52 1536)\n(symbol-chunk 1812 24 1812)\n(symbol-value 1588 1588)\n(symbol-value 1616 1616)\n(symbol-value 1664 1664)\n(symbol-value 1728 1728)\n(symbol-value 1808 1808)\n(symbol-value 1836 1836)\n(symbol-value 1536 1536)\n(symbol-value 1812 1812)\n(symbol-value 1408 1408)\n(symbol-value 0 0)\n(system \"\")\n(vendor \"\")\n"), -Attr("abi-name","\"aarch64-linux-gnu-elf\"")]), -Sections([Section(".shstrtab", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x00\x06\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x48\x1c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x38\x00\x09\x00\x40\x00\x1d\x00\x1c\x00\x06\x00\x00\x00\x04\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x04\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x34\x08\x00\x00\x00\x00\x00\x00\x34\x08\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x01\x00\x00\x00\x06\x00\x00\x00\xc8\x0d\x00\x00\x00\x00\x00\x00\xc8\x0d\x01\x00\x00\x00\x00\x00\xc8\x0d\x01"), -Section(".strtab", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x00\x06\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x48\x1c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x38\x00\x09\x00\x40\x00\x1d\x00\x1c\x00\x06\x00\x00\x00\x04\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x04\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x34\x08\x00\x00\x00\x00\x00\x00\x34\x08\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x01\x00\x00\x00\x06\x00\x00\x00\xc8\x0d\x00\x00\x00\x00\x00\x00\xc8\x0d\x01\x00\x00\x00\x00\x00\xc8\x0d\x01\x00\x00\x00\x00\x00\x68\x02\x00\x00\x00\x00\x00\x00\x78\x02\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x02\x00\x00\x00\x06\x00\x00\x00\xd8\x0d\x00\x00\x00\x00\x00\x00\xd8\x0d\x01\x00\x00\x00\x00\x00\xd8\x0d\x01\x00\x00\x00\x00\x00\xe0\x01\x00\x00\x00\x00\x00\x00\xe0\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x04\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x50\xe5\x74\x64\x04\x00\x00\x00\x44\x07\x00\x00\x00\x00\x00\x00\x44\x07\x00\x00\x00\x00\x00\x00\x44\x07\x00\x00\x00\x00\x00\x00\x3c\x00\x00\x00\x00\x00\x00\x00\x3c\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x51\xe5\x74\x64\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x52\xe5\x74\x64\x04\x00\x00\x00\xc8\x0d\x00\x00\x00\x00\x00\x00\xc8\x0d\x01\x00\x00\x00\x00\x00\xc8\x0d\x01\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x2f\x6c\x69\x62\x2f\x6c\x64\x2d\x6c\x69\x6e\x75\x78"), -Section(".comment", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x00\x06\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x48\x1c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x38\x00\x09\x00\x40\x00\x1d\x00\x1c\x00\x06\x00\x00\x00\x04\x00\x00"), -Section(".interp", 0x238, "\x2f\x6c\x69\x62\x2f\x6c\x64\x2d\x6c\x69\x6e\x75\x78\x2d\x61\x61\x72\x63\x68\x36\x34\x2e\x73\x6f\x2e\x31\x00"), -Section(".note.gnu.build-id", 0x254, "\x04\x00\x00\x00\x14\x00\x00\x00\x03\x00\x00\x00\x47\x4e\x55\x00\xe6\x02\xc3\x35\xb5\xe0\x23\x61\x2a\x65\xeb\x40\x6b\xf5\xca\x8e\x2c\x6e\xa5\x43"), -Section(".note.ABI-tag", 0x278, "\x04\x00\x00\x00\x10\x00\x00\x00\x01\x00\x00\x00\x47\x4e\x55\x00\x00\x00\x00\x00\x03\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00"), -Section(".gnu.hash", 0x298, "\x01\x00\x00\x00\x01\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".dynsym", 0x2B8, "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x0b\x00\x80\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x17\x00\x20\x10\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x48\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x22\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x22\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x73\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".dynstr", 0x390, "\x00\x5f\x5f\x63\x78\x61\x5f\x66\x69\x6e\x61\x6c\x69\x7a\x65\x00\x5f\x5f\x6c\x69\x62\x63\x5f\x73\x74\x61\x72\x74\x5f\x6d\x61\x69\x6e\x00\x61\x62\x6f\x72\x74\x00\x6c\x69\x62\x63\x2e\x73\x6f\x2e\x36\x00\x47\x4c\x49\x42\x43\x5f\x32\x2e\x31\x37\x00\x47\x4c\x49\x42\x43\x5f\x32\x2e\x33\x34\x00\x5f\x49\x54\x4d\x5f\x64\x65\x72\x65\x67\x69\x73\x74\x65\x72\x54\x4d\x43\x6c\x6f\x6e\x65\x54\x61\x62\x6c\x65\x00\x5f\x5f\x67\x6d\x6f\x6e\x5f\x73\x74\x61\x72\x74\x5f\x5f\x00\x5f\x49\x54\x4d\x5f\x72\x65\x67\x69\x73\x74\x65\x72\x54\x4d\x43\x6c\x6f\x6e\x65\x54\x61\x62\x6c\x65\x00"), -Section(".gnu.version", 0x41E, "\x00\x00\x00\x00\x00\x00\x02\x00\x01\x00\x03\x00\x01\x00\x03\x00\x01\x00"), -Section(".gnu.version_r", 0x430, "\x01\x00\x02\x00\x28\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x97\x91\x96\x06\x00\x00\x03\x00\x32\x00\x00\x00\x10\x00\x00\x00\xb4\x91\x96\x06\x00\x00\x02\x00\x3d\x00\x00\x00\x00\x00\x00\x00"), -Section(".rela.dyn", 0x460, "\xc8\x0d\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x10\x07\x00\x00\x00\x00\x00\x00\xd0\x0d\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\xc0\x06\x00\x00\x00\x00\x00\x00\xd8\x0f\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x14\x07\x00\x00\x00\x00\x00\x00\x28\x10\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x28\x10\x01\x00\x00\x00\x00\x00\xc0\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xc8\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xd0\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe0\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".rela.plt", 0x520, "\x00\x10\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x08\x10\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x10\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x18\x10\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".init", 0x580, "\x1f\x20\x03\xd5\xfd\x7b\xbf\xa9\xfd\x03\x00\x91\x2a\x00\x00\x94\xfd\x7b\xc1\xa8\xc0\x03\x5f\xd6"), -Section(".plt", 0x5A0, "\xf0\x7b\xbf\xa9\x90\x00\x00\x90\x11\xfe\x47\xf9\x10\xe2\x3f\x91\x20\x02\x1f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x90\x00\x00\xb0\x11\x02\x40\xf9\x10\x02\x00\x91\x20\x02\x1f\xd6\x90\x00\x00\xb0\x11\x06\x40\xf9\x10\x22\x00\x91\x20\x02\x1f\xd6\x90\x00\x00\xb0\x11\x0a\x40\xf9\x10\x42\x00\x91\x20\x02\x1f\xd6\x90\x00\x00\xb0\x11\x0e\x40\xf9\x10\x62\x00\x91\x20\x02\x1f\xd6"), -Section(".text", 0x600, "\x1f\x20\x03\xd5\x1d\x00\x80\xd2\x1e\x00\x80\xd2\xe5\x03\x00\xaa\xe1\x03\x40\xf9\xe2\x23\x00\x91\xe6\x03\x00\x91\x80\x00\x00\x90\x00\xec\x47\xf9\x03\x00\x80\xd2\x04\x00\x80\xd2\xe5\xff\xff\x97\xf0\xff\xff\x97\x80\x00\x00\x90\x00\xe8\x47\xf9\x40\x00\x00\xb4\xe8\xff\xff\x17\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x80\x00\x00\xb0\x00\xc0\x00\x91\x81\x00\x00\xb0\x21\xc0\x00\x91\x3f\x00\x00\xeb\xc0\x00\x00\x54\x81\x00\x00\x90\x21\xe0\x47\xf9\x61\x00\x00\xb4\xf0\x03\x01\xaa\x00\x02\x1f\xd6\xc0\x03\x5f\xd6\x80\x00\x00\xb0\x00\xc0\x00\x91\x81\x00\x00\xb0\x21\xc0\x00\x91\x21\x00\x00\xcb\x22\xfc\x7f\xd3\x41\x0c\x81\x8b\x21\xfc\x41\x93\xc1\x00\x00\xb4\x82\x00\x00\x90\x42\xf0\x47\xf9\x62\x00\x00\xb4\xf0\x03\x02\xaa\x00\x02\x1f\xd6\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\xfd\x7b\xbe\xa9\xfd\x03\x00\x91\xf3\x0b\x00\xf9\x93\x00\x00\xb0\x60\xc2\x40\x39\x40\x01\x00\x35\x80\x00\x00\x90\x00\xe4\x47\xf9\x80\x00\x00\xb4\x80\x00\x00\xb0\x00\x14\x40\xf9\xb9\xff\xff\x97\xd8\xff\xff\x97\x20\x00\x80\x52\x60\xc2\x00\x39\xf3\x0b\x40\xf9\xfd\x7b\xc2\xa8\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\xdc\xff\xff\x17\x88\x00\x00\xb0\x08\x35\x40\xb9\x89\x00\x00\xb0\x28\x39\x00\xb9\xe0\x03\x1f\x2a\xc0\x03\x5f\xd6"), -Section(".fini", 0x72C, "\x1f\x20\x03\xd5\xfd\x7b\xbf\xa9\xfd\x03\x00\x91\xfd\x7b\xc1\xa8\xc0\x03\x5f\xd6"), -Section(".rodata", 0x740, "\x01\x00\x02\x00"), -Section(".eh_frame_hdr", 0x744, "\x01\x1b\x03\x3b\x38\x00\x00\x00\x06\x00\x00\x00\xbc\xfe\xff\xff\x50\x00\x00\x00\x0c\xff\xff\xff\x64\x00\x00\x00\x3c\xff\xff\xff\x78\x00\x00\x00\x7c\xff\xff\xff\x8c\x00\x00\x00\xcc\xff\xff\xff\xb0\x00\x00\x00\xd0\xff\xff\xff\xd8\x00\x00\x00"), -Section(".eh_frame", 0x780, "\x10\x00\x00\x00\x00\x00\x00\x00\x01\x7a\x52\x00\x04\x78\x1e\x01\x1b\x0c\x1f\x00\x10\x00\x00\x00\x18\x00\x00\x00\x64\xfe\xff\xff\x34\x00\x00\x00\x00\x41\x07\x1e\x10\x00\x00\x00\x2c\x00\x00\x00\xa0\xfe\xff\xff\x30\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x40\x00\x00\x00\xbc\xfe\xff\xff\x3c\x00\x00\x00\x00\x00\x00\x00\x20\x00\x00\x00\x54\x00\x00\x00\xe8\xfe\xff\xff\x48\x00\x00\x00\x00\x41\x0e\x20\x9d\x04\x9e\x03\x42\x93\x02\x4e\xde\xdd\xd3\x0e\x00\x00\x00\x00\x10\x00\x00\x00\x78\x00\x00\x00\x14\xff\xff\xff\x04\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x01\x7a\x52\x00\x01\x7c\x1e\x01\x1b\x0c\x1f\x00\x10\x00\x00\x00\x18\x00\x00\x00\xf0\xfe\xff\xff\x18\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".fini_array", 0x10DD0, "\xc0\x06\x00\x00\x00\x00\x00\x00"), -Section(".dynamic", 0x10DD8, "\x01\x00\x00\x00\x00\x00\x00\x00\x28\x00\x00\x00\x00\x00\x00\x00\x0c\x00\x00\x00\x00\x00\x00\x00\x80\x05\x00\x00\x00\x00\x00\x00\x0d\x00\x00\x00\x00\x00\x00\x00\x2c\x07\x00\x00\x00\x00\x00\x00\x19\x00\x00\x00\x00\x00\x00\x00\xc8\x0d\x01\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x1a\x00\x00\x00\x00\x00\x00\x00\xd0\x0d\x01\x00\x00\x00\x00\x00\x1c\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\xf5\xfe\xff\x6f\x00\x00\x00\x00\x98\x02\x00\x00\x00\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x90\x03\x00\x00\x00\x00\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\xb8\x02\x00\x00\x00\x00\x00\x00\x0a\x00\x00\x00\x00\x00\x00\x00\x8d\x00\x00\x00\x00\x00\x00\x00\x0b\x00\x00\x00\x00\x00\x00\x00\x18\x00\x00\x00\x00\x00\x00\x00\x15\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\xe8\x0f\x01\x00\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x60\x00\x00\x00\x00\x00\x00\x00\x14\x00\x00\x00\x00\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x17\x00\x00\x00\x00\x00\x00\x00\x20\x05\x00\x00\x00\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x60\x04\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\xc0\x00\x00\x00\x00\x00\x00\x00\x09\x00\x00\x00\x00\x00\x00\x00\x18\x00\x00\x00\x00\x00\x00\x00\xfb\xff\xff\x6f\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\xfe\xff\xff\x6f\x00\x00\x00\x00\x30\x04\x00\x00\x00\x00\x00\x00\xff\xff\xff\x6f\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\xf0\xff\xff\x6f\x00\x00\x00\x00\x1e\x04\x00\x00\x00\x00\x00\x00\xf9\xff\xff\x6f\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".init_array", 0x10DC8, "\x10\x07\x00\x00\x00\x00\x00\x00"), -Section(".got", 0x10FB8, "\xd8\x0d\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x14\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".got.plt", 0x10FE8, "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xa0\x05\x00\x00\x00\x00\x00\x00\xa0\x05\x00\x00\x00\x00\x00\x00\xa0\x05\x00\x00\x00\x00\x00\x00\xa0\x05\x00\x00\x00\x00\x00\x00"), -Section(".data", 0x11020, "\x00\x00\x00\x00\x00\x00\x00\x00\x28\x10\x01\x00\x00\x00\x00\x00")]), -Memmap([Annotation(Region(0x0,0x833), Attr("segment","02 0 2100")), -Annotation(Region(0x600,0x633), Attr("symbol","\"_start\"")), -Annotation(Region(0x0,0x102), Attr("section","\".shstrtab\"")), -Annotation(Region(0x0,0x244), Attr("section","\".strtab\"")), -Annotation(Region(0x0,0x46), Attr("section","\".comment\"")), -Annotation(Region(0x238,0x252), Attr("section","\".interp\"")), -Annotation(Region(0x254,0x277), Attr("section","\".note.gnu.build-id\"")), -Annotation(Region(0x278,0x297), Attr("section","\".note.ABI-tag\"")), -Annotation(Region(0x298,0x2B3), Attr("section","\".gnu.hash\"")), -Annotation(Region(0x2B8,0x38F), Attr("section","\".dynsym\"")), -Annotation(Region(0x390,0x41C), Attr("section","\".dynstr\"")), -Annotation(Region(0x41E,0x42F), Attr("section","\".gnu.version\"")), -Annotation(Region(0x430,0x45F), Attr("section","\".gnu.version_r\"")), -Annotation(Region(0x460,0x51F), Attr("section","\".rela.dyn\"")), -Annotation(Region(0x520,0x57F), Attr("section","\".rela.plt\"")), -Annotation(Region(0x580,0x597), Attr("section","\".init\"")), -Annotation(Region(0x5A0,0x5FF), Attr("section","\".plt\"")), -Annotation(Region(0x580,0x597), Attr("code-region","()")), -Annotation(Region(0x5A0,0x5FF), Attr("code-region","()")), -Annotation(Region(0x600,0x633), Attr("symbol-info","_start 0x600 52")), -Annotation(Region(0x634,0x647), Attr("symbol","\"call_weak_fn\"")), -Annotation(Region(0x634,0x647), Attr("symbol-info","call_weak_fn 0x634 20")), -Annotation(Region(0x600,0x72B), Attr("section","\".text\"")), -Annotation(Region(0x600,0x72B), Attr("code-region","()")), -Annotation(Region(0x714,0x72B), Attr("symbol","\"main\"")), -Annotation(Region(0x714,0x72B), Attr("symbol-info","main 0x714 24")), -Annotation(Region(0x72C,0x73F), Attr("section","\".fini\"")), -Annotation(Region(0x72C,0x73F), Attr("code-region","()")), -Annotation(Region(0x740,0x743), Attr("section","\".rodata\"")), -Annotation(Region(0x744,0x77F), Attr("section","\".eh_frame_hdr\"")), -Annotation(Region(0x780,0x833), Attr("section","\".eh_frame\"")), -Annotation(Region(0x10DC8,0x1102F), Attr("segment","03 0x10DC8 632")), -Annotation(Region(0x10DD0,0x10DD7), Attr("section","\".fini_array\"")), -Annotation(Region(0x10DD8,0x10FB7), Attr("section","\".dynamic\"")), -Annotation(Region(0x10DC8,0x10DCF), Attr("section","\".init_array\"")), -Annotation(Region(0x10FB8,0x10FE7), Attr("section","\".got\"")), -Annotation(Region(0x10FE8,0x1101F), Attr("section","\".got.plt\"")), -Annotation(Region(0x11020,0x1102F), Attr("section","\".data\""))]), -Program(Tid(1_430, "%00000596"), Attrs([]), - Subs([Sub(Tid(1_380, "@__cxa_finalize"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x5D0"), -Attr("stub","()")]), "__cxa_finalize", Args([Arg(Tid(1_431, "%00000597"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("__cxa_finalize_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(796, "@__cxa_finalize"), - Attrs([Attr("address","0x5D0")]), Phis([]), -Defs([Def(Tid(1_044, "%00000414"), Attrs([Attr("address","0x5D0"), -Attr("insn","adrp x16, #69632")]), Var("R16",Imm(64)), Int(69632,64)), -Def(Tid(1_051, "%0000041b"), Attrs([Attr("address","0x5D4"), -Attr("insn","ldr x17, [x16, #0x8]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(1_057, "%00000421"), Attrs([Attr("address","0x5D8"), -Attr("insn","add x16, x16, #0x8")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(8,64)))]), Jmps([Call(Tid(1_062, "%00000426"), - Attrs([Attr("address","0x5DC"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), -Sub(Tid(1_381, "@__do_global_dtors_aux"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x6C0")]), - "__do_global_dtors_aux", Args([Arg(Tid(1_432, "%00000598"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("__do_global_dtors_aux_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(614, "@__do_global_dtors_aux"), - Attrs([Attr("address","0x6C0")]), Phis([]), Defs([Def(Tid(618, "%0000026a"), - Attrs([Attr("address","0x6C0"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("#3",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(18446744073709551584,64))), -Def(Tid(624, "%00000270"), Attrs([Attr("address","0x6C0"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("#3",Imm(64)),Var("R29",Imm(64)),LittleEndian(),64)), -Def(Tid(630, "%00000276"), Attrs([Attr("address","0x6C0"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("#3",Imm(64)),Int(8,64)),Var("R30",Imm(64)),LittleEndian(),64)), -Def(Tid(634, "%0000027a"), Attrs([Attr("address","0x6C0"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("R31",Imm(64)), -Var("#3",Imm(64))), Def(Tid(640, "%00000280"), - Attrs([Attr("address","0x6C4"), Attr("insn","mov x29, sp")]), - Var("R29",Imm(64)), Var("R31",Imm(64))), Def(Tid(648, "%00000288"), - Attrs([Attr("address","0x6C8"), Attr("insn","str x19, [sp, #0x10]")]), - Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(16,64)),Var("R19",Imm(64)),LittleEndian(),64)), -Def(Tid(653, "%0000028d"), Attrs([Attr("address","0x6CC"), -Attr("insn","adrp x19, #69632")]), Var("R19",Imm(64)), Int(69632,64)), -Def(Tid(660, "%00000294"), Attrs([Attr("address","0x6D0"), -Attr("insn","ldrb w0, [x19, #0x30]")]), Var("R0",Imm(64)), -UNSIGNED(64,Load(Var("mem",Mem(64,8)),PLUS(Var("R19",Imm(64)),Int(48,64)),LittleEndian(),8)))]), -Jmps([Goto(Tid(667, "%0000029b"), Attrs([Attr("address","0x6D4"), -Attr("insn","cbnz w0, #0x28")]), - NEQ(Extract(31,0,Var("R0",Imm(64))),Int(0,32)), -Direct(Tid(665, "%00000299"))), Goto(Tid(1_420, "%0000058c"), Attrs([]), - Int(1,1), Direct(Tid(741, "%000002e5")))])), Blk(Tid(741, "%000002e5"), - Attrs([Attr("address","0x6D8")]), Phis([]), Defs([Def(Tid(744, "%000002e8"), - Attrs([Attr("address","0x6D8"), Attr("insn","adrp x0, #65536")]), - Var("R0",Imm(64)), Int(65536,64)), Def(Tid(751, "%000002ef"), - Attrs([Attr("address","0x6DC"), Attr("insn","ldr x0, [x0, #0xfc8]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(4040,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(757, "%000002f5"), Attrs([Attr("address","0x6E0"), -Attr("insn","cbz x0, #0x10")]), EQ(Var("R0",Imm(64)),Int(0,64)), -Direct(Tid(755, "%000002f3"))), Goto(Tid(1_421, "%0000058d"), Attrs([]), - Int(1,1), Direct(Tid(780, "%0000030c")))])), Blk(Tid(780, "%0000030c"), - Attrs([Attr("address","0x6E4")]), Phis([]), Defs([Def(Tid(783, "%0000030f"), - Attrs([Attr("address","0x6E4"), Attr("insn","adrp x0, #69632")]), - Var("R0",Imm(64)), Int(69632,64)), Def(Tid(790, "%00000316"), - Attrs([Attr("address","0x6E8"), Attr("insn","ldr x0, [x0, #0x28]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(40,64)),LittleEndian(),64)), -Def(Tid(795, "%0000031b"), Attrs([Attr("address","0x6EC"), -Attr("insn","bl #-0x11c")]), Var("R30",Imm(64)), Int(1776,64))]), -Jmps([Call(Tid(798, "%0000031e"), Attrs([Attr("address","0x6EC"), -Attr("insn","bl #-0x11c")]), Int(1,1), -(Direct(Tid(1_380, "@__cxa_finalize")),Direct(Tid(755, "%000002f3"))))])), -Blk(Tid(755, "%000002f3"), Attrs([Attr("address","0x6F0")]), Phis([]), -Defs([Def(Tid(763, "%000002fb"), Attrs([Attr("address","0x6F0"), -Attr("insn","bl #-0xa0")]), Var("R30",Imm(64)), Int(1780,64))]), -Jmps([Call(Tid(765, "%000002fd"), Attrs([Attr("address","0x6F0"), -Attr("insn","bl #-0xa0")]), Int(1,1), -(Direct(Tid(1_394, "@deregister_tm_clones")),Direct(Tid(767, "%000002ff"))))])), -Blk(Tid(767, "%000002ff"), Attrs([Attr("address","0x6F4")]), Phis([]), -Defs([Def(Tid(770, "%00000302"), Attrs([Attr("address","0x6F4"), -Attr("insn","mov w0, #0x1")]), Var("R0",Imm(64)), Int(1,64)), -Def(Tid(778, "%0000030a"), Attrs([Attr("address","0x6F8"), -Attr("insn","strb w0, [x19, #0x30]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R19",Imm(64)),Int(48,64)),Extract(7,0,Var("R0",Imm(64))),LittleEndian(),8))]), -Jmps([Goto(Tid(1_422, "%0000058e"), Attrs([]), Int(1,1), -Direct(Tid(665, "%00000299")))])), Blk(Tid(665, "%00000299"), - Attrs([Attr("address","0x6FC")]), Phis([]), Defs([Def(Tid(675, "%000002a3"), - Attrs([Attr("address","0x6FC"), Attr("insn","ldr x19, [sp, #0x10]")]), - Var("R19",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(16,64)),LittleEndian(),64)), -Def(Tid(682, "%000002aa"), Attrs([Attr("address","0x700"), -Attr("insn","ldp x29, x30, [sp], #0x20")]), Var("R29",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(687, "%000002af"), Attrs([Attr("address","0x700"), -Attr("insn","ldp x29, x30, [sp], #0x20")]), Var("R30",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(691, "%000002b3"), Attrs([Attr("address","0x700"), -Attr("insn","ldp x29, x30, [sp], #0x20")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(32,64)))]), Jmps([Call(Tid(696, "%000002b8"), - Attrs([Attr("address","0x704"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), Sub(Tid(1_385, "@__libc_start_main"), - Attrs([Attr("c.proto","signed (*)(signed (*)(signed , char** , char** );* main, signed , char** , \nvoid* auxv)"), -Attr("address","0x5C0"), Attr("stub","()")]), "__libc_start_main", - Args([Arg(Tid(1_433, "%00000599"), - Attrs([Attr("c.layout","**[ : 64]"), -Attr("c.data","Top:u64 ptr ptr"), -Attr("c.type","signed (*)(signed , char** , char** );*")]), - Var("__libc_start_main_main",Imm(64)), Var("R0",Imm(64)), In()), -Arg(Tid(1_434, "%0000059a"), Attrs([Attr("c.layout","[signed : 32]"), -Attr("c.data","Top:u32"), Attr("c.type","signed")]), - Var("__libc_start_main_arg2",Imm(32)), LOW(32,Var("R1",Imm(64))), In()), -Arg(Tid(1_435, "%0000059b"), Attrs([Attr("c.layout","**[char : 8]"), -Attr("c.data","Top:u8 ptr ptr"), Attr("c.type","char**")]), - Var("__libc_start_main_arg3",Imm(64)), Var("R2",Imm(64)), Both()), -Arg(Tid(1_436, "%0000059c"), Attrs([Attr("c.layout","*[ : 8]"), -Attr("c.data","{} ptr"), Attr("c.type","void*")]), - Var("__libc_start_main_auxv",Imm(64)), Var("R3",Imm(64)), Both()), -Arg(Tid(1_437, "%0000059d"), Attrs([Attr("c.layout","[signed : 32]"), -Attr("c.data","Top:u32"), Attr("c.type","signed")]), - Var("__libc_start_main_result",Imm(32)), LOW(32,Var("R0",Imm(64))), -Out())]), Blks([Blk(Tid(447, "@__libc_start_main"), - Attrs([Attr("address","0x5C0")]), Phis([]), -Defs([Def(Tid(1_022, "%000003fe"), Attrs([Attr("address","0x5C0"), -Attr("insn","adrp x16, #69632")]), Var("R16",Imm(64)), Int(69632,64)), -Def(Tid(1_029, "%00000405"), Attrs([Attr("address","0x5C4"), -Attr("insn","ldr x17, [x16]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R16",Imm(64)),LittleEndian(),64)), -Def(Tid(1_035, "%0000040b"), Attrs([Attr("address","0x5C8"), -Attr("insn","add x16, x16, #0x0")]), Var("R16",Imm(64)), -Var("R16",Imm(64)))]), Jmps([Call(Tid(1_040, "%00000410"), - Attrs([Attr("address","0x5CC"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), Sub(Tid(1_386, "@_fini"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x72C")]), - "_fini", Args([Arg(Tid(1_438, "%0000059e"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("_fini_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(31, "@_fini"), - Attrs([Attr("address","0x72C")]), Phis([]), Defs([Def(Tid(37, "%00000025"), - Attrs([Attr("address","0x730"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("#0",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(18446744073709551600,64))), -Def(Tid(43, "%0000002b"), Attrs([Attr("address","0x730"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("#0",Imm(64)),Var("R29",Imm(64)),LittleEndian(),64)), -Def(Tid(49, "%00000031"), Attrs([Attr("address","0x730"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("#0",Imm(64)),Int(8,64)),Var("R30",Imm(64)),LittleEndian(),64)), -Def(Tid(53, "%00000035"), Attrs([Attr("address","0x730"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("R31",Imm(64)), -Var("#0",Imm(64))), Def(Tid(59, "%0000003b"), Attrs([Attr("address","0x734"), -Attr("insn","mov x29, sp")]), Var("R29",Imm(64)), Var("R31",Imm(64))), -Def(Tid(66, "%00000042"), Attrs([Attr("address","0x738"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R29",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(71, "%00000047"), Attrs([Attr("address","0x738"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R30",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(75, "%0000004b"), Attrs([Attr("address","0x738"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(16,64)))]), Jmps([Call(Tid(80, "%00000050"), - Attrs([Attr("address","0x73C"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), Sub(Tid(1_387, "@_init"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x580")]), - "_init", Args([Arg(Tid(1_439, "%0000059f"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("_init_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(1_216, "@_init"), - Attrs([Attr("address","0x580")]), Phis([]), -Defs([Def(Tid(1_222, "%000004c6"), Attrs([Attr("address","0x584"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("#5",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(18446744073709551600,64))), -Def(Tid(1_228, "%000004cc"), Attrs([Attr("address","0x584"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("#5",Imm(64)),Var("R29",Imm(64)),LittleEndian(),64)), -Def(Tid(1_234, "%000004d2"), Attrs([Attr("address","0x584"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("#5",Imm(64)),Int(8,64)),Var("R30",Imm(64)),LittleEndian(),64)), -Def(Tid(1_238, "%000004d6"), Attrs([Attr("address","0x584"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("R31",Imm(64)), -Var("#5",Imm(64))), Def(Tid(1_244, "%000004dc"), - Attrs([Attr("address","0x588"), Attr("insn","mov x29, sp")]), - Var("R29",Imm(64)), Var("R31",Imm(64))), Def(Tid(1_249, "%000004e1"), - Attrs([Attr("address","0x58C"), Attr("insn","bl #0xa8")]), - Var("R30",Imm(64)), Int(1424,64))]), Jmps([Call(Tid(1_251, "%000004e3"), - Attrs([Attr("address","0x58C"), Attr("insn","bl #0xa8")]), Int(1,1), -(Direct(Tid(1_392, "@call_weak_fn")),Direct(Tid(1_253, "%000004e5"))))])), -Blk(Tid(1_253, "%000004e5"), Attrs([Attr("address","0x590")]), Phis([]), -Defs([Def(Tid(1_258, "%000004ea"), Attrs([Attr("address","0x590"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R29",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(1_263, "%000004ef"), Attrs([Attr("address","0x590"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R30",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(1_267, "%000004f3"), Attrs([Attr("address","0x590"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(16,64)))]), Jmps([Call(Tid(1_272, "%000004f8"), - Attrs([Attr("address","0x594"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), Sub(Tid(1_388, "@_start"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x600"), -Attr("stub","()"), Attr("entry-point","()")]), "_start", - Args([Arg(Tid(1_440, "%000005a0"), Attrs([Attr("c.layout","[signed : 32]"), -Attr("c.data","Top:u32"), Attr("c.type","signed")]), - Var("_start_result",Imm(32)), LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(384, "@_start"), Attrs([Attr("address","0x600")]), Phis([]), -Defs([Def(Tid(389, "%00000185"), Attrs([Attr("address","0x604"), -Attr("insn","mov x29, #0x0")]), Var("R29",Imm(64)), Int(0,64)), -Def(Tid(394, "%0000018a"), Attrs([Attr("address","0x608"), -Attr("insn","mov x30, #0x0")]), Var("R30",Imm(64)), Int(0,64)), -Def(Tid(400, "%00000190"), Attrs([Attr("address","0x60C"), -Attr("insn","mov x5, x0")]), Var("R5",Imm(64)), Var("R0",Imm(64))), -Def(Tid(407, "%00000197"), Attrs([Attr("address","0x610"), -Attr("insn","ldr x1, [sp]")]), Var("R1",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(413, "%0000019d"), Attrs([Attr("address","0x614"), -Attr("insn","add x2, sp, #0x8")]), Var("R2",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(8,64))), Def(Tid(419, "%000001a3"), - Attrs([Attr("address","0x618"), Attr("insn","mov x6, sp")]), - Var("R6",Imm(64)), Var("R31",Imm(64))), Def(Tid(424, "%000001a8"), - Attrs([Attr("address","0x61C"), Attr("insn","adrp x0, #65536")]), - Var("R0",Imm(64)), Int(65536,64)), Def(Tid(431, "%000001af"), - Attrs([Attr("address","0x620"), Attr("insn","ldr x0, [x0, #0xfd8]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(4056,64)),LittleEndian(),64)), -Def(Tid(436, "%000001b4"), Attrs([Attr("address","0x624"), -Attr("insn","mov x3, #0x0")]), Var("R3",Imm(64)), Int(0,64)), -Def(Tid(441, "%000001b9"), Attrs([Attr("address","0x628"), -Attr("insn","mov x4, #0x0")]), Var("R4",Imm(64)), Int(0,64)), -Def(Tid(446, "%000001be"), Attrs([Attr("address","0x62C"), -Attr("insn","bl #-0x6c")]), Var("R30",Imm(64)), Int(1584,64))]), -Jmps([Call(Tid(449, "%000001c1"), Attrs([Attr("address","0x62C"), -Attr("insn","bl #-0x6c")]), Int(1,1), -(Direct(Tid(1_385, "@__libc_start_main")),Direct(Tid(451, "%000001c3"))))])), -Blk(Tid(451, "%000001c3"), Attrs([Attr("address","0x630")]), Phis([]), -Defs([Def(Tid(454, "%000001c6"), Attrs([Attr("address","0x630"), -Attr("insn","bl #-0x40")]), Var("R30",Imm(64)), Int(1588,64))]), -Jmps([Call(Tid(457, "%000001c9"), Attrs([Attr("address","0x630"), -Attr("insn","bl #-0x40")]), Int(1,1), -(Direct(Tid(1_391, "@abort")),Direct(Tid(1_423, "%0000058f"))))])), -Blk(Tid(1_423, "%0000058f"), Attrs([]), Phis([]), Defs([]), -Jmps([Call(Tid(1_424, "%00000590"), Attrs([]), Int(1,1), -(Direct(Tid(1_392, "@call_weak_fn")),))]))])), Sub(Tid(1_391, "@abort"), - Attrs([Attr("noreturn","()"), Attr("c.proto","void (*)(void)"), -Attr("address","0x5F0"), Attr("stub","()")]), "abort", Args([]), -Blks([Blk(Tid(455, "@abort"), Attrs([Attr("address","0x5F0")]), Phis([]), -Defs([Def(Tid(1_088, "%00000440"), Attrs([Attr("address","0x5F0"), -Attr("insn","adrp x16, #69632")]), Var("R16",Imm(64)), Int(69632,64)), -Def(Tid(1_095, "%00000447"), Attrs([Attr("address","0x5F4"), -Attr("insn","ldr x17, [x16, #0x18]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(24,64)),LittleEndian(),64)), -Def(Tid(1_101, "%0000044d"), Attrs([Attr("address","0x5F8"), -Attr("insn","add x16, x16, #0x18")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(24,64)))]), Jmps([Call(Tid(1_106, "%00000452"), - Attrs([Attr("address","0x5FC"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), Sub(Tid(1_392, "@call_weak_fn"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x634")]), - "call_weak_fn", Args([Arg(Tid(1_441, "%000005a1"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("call_weak_fn_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(459, "@call_weak_fn"), - Attrs([Attr("address","0x634")]), Phis([]), Defs([Def(Tid(462, "%000001ce"), - Attrs([Attr("address","0x634"), Attr("insn","adrp x0, #65536")]), - Var("R0",Imm(64)), Int(65536,64)), Def(Tid(469, "%000001d5"), - Attrs([Attr("address","0x638"), Attr("insn","ldr x0, [x0, #0xfd0]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(4048,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(475, "%000001db"), Attrs([Attr("address","0x63C"), -Attr("insn","cbz x0, #0x8")]), EQ(Var("R0",Imm(64)),Int(0,64)), -Direct(Tid(473, "%000001d9"))), Goto(Tid(1_425, "%00000591"), Attrs([]), - Int(1,1), Direct(Tid(860, "%0000035c")))])), Blk(Tid(473, "%000001d9"), - Attrs([Attr("address","0x644")]), Phis([]), Defs([]), -Jmps([Call(Tid(481, "%000001e1"), Attrs([Attr("address","0x644"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))])), -Blk(Tid(860, "%0000035c"), Attrs([Attr("address","0x640")]), Phis([]), -Defs([]), Jmps([Goto(Tid(863, "%0000035f"), Attrs([Attr("address","0x640"), -Attr("insn","b #-0x60")]), Int(1,1), Direct(Tid(861, "@__gmon_start__")))])), -Blk(Tid(861, "@__gmon_start__"), Attrs([Attr("address","0x5E0")]), Phis([]), -Defs([Def(Tid(1_066, "%0000042a"), Attrs([Attr("address","0x5E0"), -Attr("insn","adrp x16, #69632")]), Var("R16",Imm(64)), Int(69632,64)), -Def(Tid(1_073, "%00000431"), Attrs([Attr("address","0x5E4"), -Attr("insn","ldr x17, [x16, #0x10]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(16,64)),LittleEndian(),64)), -Def(Tid(1_079, "%00000437"), Attrs([Attr("address","0x5E8"), -Attr("insn","add x16, x16, #0x10")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(16,64)))]), Jmps([Call(Tid(1_084, "%0000043c"), - Attrs([Attr("address","0x5EC"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), -Sub(Tid(1_394, "@deregister_tm_clones"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x650")]), - "deregister_tm_clones", Args([Arg(Tid(1_442, "%000005a2"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("deregister_tm_clones_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(487, "@deregister_tm_clones"), - Attrs([Attr("address","0x650")]), Phis([]), Defs([Def(Tid(490, "%000001ea"), - Attrs([Attr("address","0x650"), Attr("insn","adrp x0, #69632")]), - Var("R0",Imm(64)), Int(69632,64)), Def(Tid(496, "%000001f0"), - Attrs([Attr("address","0x654"), Attr("insn","add x0, x0, #0x30")]), - Var("R0",Imm(64)), PLUS(Var("R0",Imm(64)),Int(48,64))), -Def(Tid(501, "%000001f5"), Attrs([Attr("address","0x658"), -Attr("insn","adrp x1, #69632")]), Var("R1",Imm(64)), Int(69632,64)), -Def(Tid(507, "%000001fb"), Attrs([Attr("address","0x65C"), -Attr("insn","add x1, x1, #0x30")]), Var("R1",Imm(64)), -PLUS(Var("R1",Imm(64)),Int(48,64))), Def(Tid(513, "%00000201"), - Attrs([Attr("address","0x660"), Attr("insn","cmp x1, x0")]), - Var("#1",Imm(64)), NOT(Var("R0",Imm(64)))), Def(Tid(518, "%00000206"), - Attrs([Attr("address","0x660"), Attr("insn","cmp x1, x0")]), - Var("#2",Imm(64)), PLUS(Var("R1",Imm(64)),NOT(Var("R0",Imm(64))))), -Def(Tid(524, "%0000020c"), Attrs([Attr("address","0x660"), -Attr("insn","cmp x1, x0")]), Var("VF",Imm(1)), -NEQ(SIGNED(65,PLUS(Var("#2",Imm(64)),Int(1,64))),PLUS(PLUS(SIGNED(65,Var("R1",Imm(64))),SIGNED(65,Var("#1",Imm(64)))),Int(1,65)))), -Def(Tid(530, "%00000212"), Attrs([Attr("address","0x660"), -Attr("insn","cmp x1, x0")]), Var("CF",Imm(1)), -NEQ(UNSIGNED(65,PLUS(Var("#2",Imm(64)),Int(1,64))),PLUS(PLUS(UNSIGNED(65,Var("R1",Imm(64))),UNSIGNED(65,Var("#1",Imm(64)))),Int(1,65)))), -Def(Tid(534, "%00000216"), Attrs([Attr("address","0x660"), -Attr("insn","cmp x1, x0")]), Var("ZF",Imm(1)), -EQ(PLUS(Var("#2",Imm(64)),Int(1,64)),Int(0,64))), Def(Tid(538, "%0000021a"), - Attrs([Attr("address","0x660"), Attr("insn","cmp x1, x0")]), - Var("NF",Imm(1)), Extract(63,63,PLUS(Var("#2",Imm(64)),Int(1,64))))]), -Jmps([Goto(Tid(544, "%00000220"), Attrs([Attr("address","0x664"), -Attr("insn","b.eq #0x18")]), EQ(Var("ZF",Imm(1)),Int(1,1)), -Direct(Tid(542, "%0000021e"))), Goto(Tid(1_426, "%00000592"), Attrs([]), - Int(1,1), Direct(Tid(830, "%0000033e")))])), Blk(Tid(830, "%0000033e"), - Attrs([Attr("address","0x668")]), Phis([]), Defs([Def(Tid(833, "%00000341"), - Attrs([Attr("address","0x668"), Attr("insn","adrp x1, #65536")]), - Var("R1",Imm(64)), Int(65536,64)), Def(Tid(840, "%00000348"), - Attrs([Attr("address","0x66C"), Attr("insn","ldr x1, [x1, #0xfc0]")]), - Var("R1",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R1",Imm(64)),Int(4032,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(845, "%0000034d"), Attrs([Attr("address","0x670"), -Attr("insn","cbz x1, #0xc")]), EQ(Var("R1",Imm(64)),Int(0,64)), -Direct(Tid(542, "%0000021e"))), Goto(Tid(1_427, "%00000593"), Attrs([]), - Int(1,1), Direct(Tid(849, "%00000351")))])), Blk(Tid(542, "%0000021e"), - Attrs([Attr("address","0x67C")]), Phis([]), Defs([]), -Jmps([Call(Tid(550, "%00000226"), Attrs([Attr("address","0x67C"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))])), -Blk(Tid(849, "%00000351"), Attrs([Attr("address","0x674")]), Phis([]), -Defs([Def(Tid(853, "%00000355"), Attrs([Attr("address","0x674"), -Attr("insn","mov x16, x1")]), Var("R16",Imm(64)), Var("R1",Imm(64)))]), -Jmps([Call(Tid(858, "%0000035a"), Attrs([Attr("address","0x678"), -Attr("insn","br x16")]), Int(1,1), (Indirect(Var("R16",Imm(64))),))]))])), -Sub(Tid(1_397, "@frame_dummy"), Attrs([Attr("c.proto","signed (*)(void)"), -Attr("address","0x710")]), "frame_dummy", Args([Arg(Tid(1_443, "%000005a3"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("frame_dummy_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(702, "@frame_dummy"), - Attrs([Attr("address","0x710")]), Phis([]), Defs([]), -Jmps([Call(Tid(704, "%000002c0"), Attrs([Attr("address","0x710"), -Attr("insn","b #-0x90")]), Int(1,1), -(Direct(Tid(1_399, "@register_tm_clones")),))]))])), Sub(Tid(1_398, "@main"), - Attrs([Attr("c.proto","signed (*)(signed argc, const char** argv)"), -Attr("address","0x714")]), "main", Args([Arg(Tid(1_444, "%000005a4"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("main_argc",Imm(32)), -LOW(32,Var("R0",Imm(64))), In()), Arg(Tid(1_445, "%000005a5"), - Attrs([Attr("c.layout","**[char : 8]"), Attr("c.data","Top:u8 ptr ptr"), -Attr("c.type"," const char**")]), Var("main_argv",Imm(64)), -Var("R1",Imm(64)), Both()), Arg(Tid(1_446, "%000005a6"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("main_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(706, "@main"), - Attrs([Attr("address","0x714")]), Phis([]), Defs([Def(Tid(709, "%000002c5"), - Attrs([Attr("address","0x714"), Attr("insn","adrp x8, #69632")]), - Var("R8",Imm(64)), Int(69632,64)), Def(Tid(716, "%000002cc"), - Attrs([Attr("address","0x718"), Attr("insn","ldr w8, [x8, #0x34]")]), - Var("R8",Imm(64)), -UNSIGNED(64,Load(Var("mem",Mem(64,8)),PLUS(Var("R8",Imm(64)),Int(52,64)),LittleEndian(),32))), -Def(Tid(721, "%000002d1"), Attrs([Attr("address","0x71C"), -Attr("insn","adrp x9, #69632")]), Var("R9",Imm(64)), Int(69632,64)), -Def(Tid(729, "%000002d9"), Attrs([Attr("address","0x720"), -Attr("insn","str w8, [x9, #0x38]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R9",Imm(64)),Int(56,64)),Extract(31,0,Var("R8",Imm(64))),LittleEndian(),32)), -Def(Tid(734, "%000002de"), Attrs([Attr("address","0x724"), -Attr("insn","mov w0, wzr")]), Var("R0",Imm(64)), Int(0,64))]), -Jmps([Call(Tid(739, "%000002e3"), Attrs([Attr("address","0x728"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))]))])), -Sub(Tid(1_399, "@register_tm_clones"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x680")]), - "register_tm_clones", Args([Arg(Tid(1_447, "%000005a7"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("register_tm_clones_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(552, "@register_tm_clones"), Attrs([Attr("address","0x680")]), - Phis([]), Defs([Def(Tid(555, "%0000022b"), Attrs([Attr("address","0x680"), -Attr("insn","adrp x0, #69632")]), Var("R0",Imm(64)), Int(69632,64)), -Def(Tid(561, "%00000231"), Attrs([Attr("address","0x684"), -Attr("insn","add x0, x0, #0x30")]), Var("R0",Imm(64)), -PLUS(Var("R0",Imm(64)),Int(48,64))), Def(Tid(566, "%00000236"), - Attrs([Attr("address","0x688"), Attr("insn","adrp x1, #69632")]), - Var("R1",Imm(64)), Int(69632,64)), Def(Tid(572, "%0000023c"), - Attrs([Attr("address","0x68C"), Attr("insn","add x1, x1, #0x30")]), - Var("R1",Imm(64)), PLUS(Var("R1",Imm(64)),Int(48,64))), -Def(Tid(579, "%00000243"), Attrs([Attr("address","0x690"), -Attr("insn","sub x1, x1, x0")]), Var("R1",Imm(64)), -PLUS(PLUS(Var("R1",Imm(64)),NOT(Var("R0",Imm(64)))),Int(1,64))), -Def(Tid(585, "%00000249"), Attrs([Attr("address","0x694"), -Attr("insn","lsr x2, x1, #63")]), Var("R2",Imm(64)), -Concat(Int(0,63),Extract(63,63,Var("R1",Imm(64))))), -Def(Tid(592, "%00000250"), Attrs([Attr("address","0x698"), -Attr("insn","add x1, x2, x1, asr #3")]), Var("R1",Imm(64)), -PLUS(Var("R2",Imm(64)),ARSHIFT(Var("R1",Imm(64)),Int(3,3)))), -Def(Tid(598, "%00000256"), Attrs([Attr("address","0x69C"), -Attr("insn","asr x1, x1, #1")]), Var("R1",Imm(64)), -SIGNED(64,Extract(63,1,Var("R1",Imm(64)))))]), -Jmps([Goto(Tid(604, "%0000025c"), Attrs([Attr("address","0x6A0"), -Attr("insn","cbz x1, #0x18")]), EQ(Var("R1",Imm(64)),Int(0,64)), -Direct(Tid(602, "%0000025a"))), Goto(Tid(1_428, "%00000594"), Attrs([]), - Int(1,1), Direct(Tid(800, "%00000320")))])), Blk(Tid(800, "%00000320"), - Attrs([Attr("address","0x6A4")]), Phis([]), Defs([Def(Tid(803, "%00000323"), - Attrs([Attr("address","0x6A4"), Attr("insn","adrp x2, #65536")]), - Var("R2",Imm(64)), Int(65536,64)), Def(Tid(810, "%0000032a"), - Attrs([Attr("address","0x6A8"), Attr("insn","ldr x2, [x2, #0xfe0]")]), - Var("R2",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R2",Imm(64)),Int(4064,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(815, "%0000032f"), Attrs([Attr("address","0x6AC"), -Attr("insn","cbz x2, #0xc")]), EQ(Var("R2",Imm(64)),Int(0,64)), -Direct(Tid(602, "%0000025a"))), Goto(Tid(1_429, "%00000595"), Attrs([]), - Int(1,1), Direct(Tid(819, "%00000333")))])), Blk(Tid(602, "%0000025a"), - Attrs([Attr("address","0x6B8")]), Phis([]), Defs([]), -Jmps([Call(Tid(610, "%00000262"), Attrs([Attr("address","0x6B8"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))])), -Blk(Tid(819, "%00000333"), Attrs([Attr("address","0x6B0")]), Phis([]), -Defs([Def(Tid(823, "%00000337"), Attrs([Attr("address","0x6B0"), -Attr("insn","mov x16, x2")]), Var("R16",Imm(64)), Var("R2",Imm(64)))]), -Jmps([Call(Tid(828, "%0000033c"), Attrs([Attr("address","0x6B4"), -Attr("insn","br x16")]), Int(1,1), -(Indirect(Var("R16",Imm(64))),))]))]))]))) \ No newline at end of file diff --git a/src/test/correct/basicassign_gamma0/clang/basicassign_gamma0.bir b/src/test/correct/basicassign_gamma0/clang/basicassign_gamma0.bir deleted file mode 100644 index ebdb1bd57..000000000 --- a/src/test/correct/basicassign_gamma0/clang/basicassign_gamma0.bir +++ /dev/null @@ -1,228 +0,0 @@ -00000596: program -00000564: sub __cxa_finalize(__cxa_finalize_result) -00000597: __cxa_finalize_result :: out u32 = low:32[R0] - -0000031c: -00000414: R16 := 0x11000 -0000041b: R17 := mem[R16 + 8, el]:u64 -00000421: R16 := R16 + 8 -00000426: call R17 with noreturn - -00000565: sub __do_global_dtors_aux(__do_global_dtors_aux_result) -00000598: __do_global_dtors_aux_result :: out u32 = low:32[R0] - -00000266: -0000026a: #3 := R31 - 0x20 -00000270: mem := mem with [#3, el]:u64 <- R29 -00000276: mem := mem with [#3 + 8, el]:u64 <- R30 -0000027a: R31 := #3 -00000280: R29 := R31 -00000288: mem := mem with [R31 + 0x10, el]:u64 <- R19 -0000028d: R19 := 0x11000 -00000294: R0 := pad:64[mem[R19 + 0x30]] -0000029b: when 31:0[R0] <> 0 goto %00000299 -0000058c: goto %000002e5 - -000002e5: -000002e8: R0 := 0x10000 -000002ef: R0 := mem[R0 + 0xFC8, el]:u64 -000002f5: when R0 = 0 goto %000002f3 -0000058d: goto %0000030c - -0000030c: -0000030f: R0 := 0x11000 -00000316: R0 := mem[R0 + 0x28, el]:u64 -0000031b: R30 := 0x6F0 -0000031e: call @__cxa_finalize with return %000002f3 - -000002f3: -000002fb: R30 := 0x6F4 -000002fd: call @deregister_tm_clones with return %000002ff - -000002ff: -00000302: R0 := 1 -0000030a: mem := mem with [R19 + 0x30] <- 7:0[R0] -0000058e: goto %00000299 - -00000299: -000002a3: R19 := mem[R31 + 0x10, el]:u64 -000002aa: R29 := mem[R31, el]:u64 -000002af: R30 := mem[R31 + 8, el]:u64 -000002b3: R31 := R31 + 0x20 -000002b8: call R30 with noreturn - -00000569: sub __libc_start_main(__libc_start_main_main, __libc_start_main_arg2, __libc_start_main_arg3, __libc_start_main_auxv, __libc_start_main_result) -00000599: __libc_start_main_main :: in u64 = R0 -0000059a: __libc_start_main_arg2 :: in u32 = low:32[R1] -0000059b: __libc_start_main_arg3 :: in out u64 = R2 -0000059c: __libc_start_main_auxv :: in out u64 = R3 -0000059d: __libc_start_main_result :: out u32 = low:32[R0] - -000001bf: -000003fe: R16 := 0x11000 -00000405: R17 := mem[R16, el]:u64 -0000040b: R16 := R16 -00000410: call R17 with noreturn - -0000056a: sub _fini(_fini_result) -0000059e: _fini_result :: out u32 = low:32[R0] - -0000001f: -00000025: #0 := R31 - 0x10 -0000002b: mem := mem with [#0, el]:u64 <- R29 -00000031: mem := mem with [#0 + 8, el]:u64 <- R30 -00000035: R31 := #0 -0000003b: R29 := R31 -00000042: R29 := mem[R31, el]:u64 -00000047: R30 := mem[R31 + 8, el]:u64 -0000004b: R31 := R31 + 0x10 -00000050: call R30 with noreturn - -0000056b: sub _init(_init_result) -0000059f: _init_result :: out u32 = low:32[R0] - -000004c0: -000004c6: #5 := R31 - 0x10 -000004cc: mem := mem with [#5, el]:u64 <- R29 -000004d2: mem := mem with [#5 + 8, el]:u64 <- R30 -000004d6: R31 := #5 -000004dc: R29 := R31 -000004e1: R30 := 0x590 -000004e3: call @call_weak_fn with return %000004e5 - -000004e5: -000004ea: R29 := mem[R31, el]:u64 -000004ef: R30 := mem[R31 + 8, el]:u64 -000004f3: R31 := R31 + 0x10 -000004f8: call R30 with noreturn - -0000056c: sub _start(_start_result) -000005a0: _start_result :: out u32 = low:32[R0] - -00000180: -00000185: R29 := 0 -0000018a: R30 := 0 -00000190: R5 := R0 -00000197: R1 := mem[R31, el]:u64 -0000019d: R2 := R31 + 8 -000001a3: R6 := R31 -000001a8: R0 := 0x10000 -000001af: R0 := mem[R0 + 0xFD8, el]:u64 -000001b4: R3 := 0 -000001b9: R4 := 0 -000001be: R30 := 0x630 -000001c1: call @__libc_start_main with return %000001c3 - -000001c3: -000001c6: R30 := 0x634 -000001c9: call @abort with return %0000058f - -0000058f: -00000590: call @call_weak_fn with noreturn - -0000056f: sub abort() - - -000001c7: -00000440: R16 := 0x11000 -00000447: R17 := mem[R16 + 0x18, el]:u64 -0000044d: R16 := R16 + 0x18 -00000452: call R17 with noreturn - -00000570: sub call_weak_fn(call_weak_fn_result) -000005a1: call_weak_fn_result :: out u32 = low:32[R0] - -000001cb: -000001ce: R0 := 0x10000 -000001d5: R0 := mem[R0 + 0xFD0, el]:u64 -000001db: when R0 = 0 goto %000001d9 -00000591: goto %0000035c - -000001d9: -000001e1: call R30 with noreturn - -0000035c: -0000035f: goto @__gmon_start__ - -0000035d: -0000042a: R16 := 0x11000 -00000431: R17 := mem[R16 + 0x10, el]:u64 -00000437: R16 := R16 + 0x10 -0000043c: call R17 with noreturn - -00000572: sub deregister_tm_clones(deregister_tm_clones_result) -000005a2: deregister_tm_clones_result :: out u32 = low:32[R0] - -000001e7: -000001ea: R0 := 0x11000 -000001f0: R0 := R0 + 0x30 -000001f5: R1 := 0x11000 -000001fb: R1 := R1 + 0x30 -00000201: #1 := ~R0 -00000206: #2 := R1 + ~R0 -0000020c: VF := extend:65[#2 + 1] <> extend:65[R1] + extend:65[#1] + 1 -00000212: CF := pad:65[#2 + 1] <> pad:65[R1] + pad:65[#1] + 1 -00000216: ZF := #2 + 1 = 0 -0000021a: NF := 63:63[#2 + 1] -00000220: when ZF goto %0000021e -00000592: goto %0000033e - -0000033e: -00000341: R1 := 0x10000 -00000348: R1 := mem[R1 + 0xFC0, el]:u64 -0000034d: when R1 = 0 goto %0000021e -00000593: goto %00000351 - -0000021e: -00000226: call R30 with noreturn - -00000351: -00000355: R16 := R1 -0000035a: call R16 with noreturn - -00000575: sub frame_dummy(frame_dummy_result) -000005a3: frame_dummy_result :: out u32 = low:32[R0] - -000002be: -000002c0: call @register_tm_clones with noreturn - -00000576: sub main(main_argc, main_argv, main_result) -000005a4: main_argc :: in u32 = low:32[R0] -000005a5: main_argv :: in out u64 = R1 -000005a6: main_result :: out u32 = low:32[R0] - -000002c2: -000002c5: R8 := 0x11000 -000002cc: R8 := pad:64[mem[R8 + 0x34, el]:u32] -000002d1: R9 := 0x11000 -000002d9: mem := mem with [R9 + 0x38, el]:u32 <- 31:0[R8] -000002de: R0 := 0 -000002e3: call R30 with noreturn - -00000577: sub register_tm_clones(register_tm_clones_result) -000005a7: register_tm_clones_result :: out u32 = low:32[R0] - -00000228: -0000022b: R0 := 0x11000 -00000231: R0 := R0 + 0x30 -00000236: R1 := 0x11000 -0000023c: R1 := R1 + 0x30 -00000243: R1 := R1 + ~R0 + 1 -00000249: R2 := 0.63:63[R1] -00000250: R1 := R2 + (R1 ~>> 3) -00000256: R1 := extend:64[63:1[R1]] -0000025c: when R1 = 0 goto %0000025a -00000594: goto %00000320 - -00000320: -00000323: R2 := 0x10000 -0000032a: R2 := mem[R2 + 0xFE0, el]:u64 -0000032f: when R2 = 0 goto %0000025a -00000595: goto %00000333 - -0000025a: -00000262: call R30 with noreturn - -00000333: -00000337: R16 := R2 -0000033c: call R16 with noreturn diff --git a/src/test/correct/basicassign_gamma0/clang/basicassign_gamma0.expected b/src/test/correct/basicassign_gamma0/clang/basicassign_gamma0.expected index 0bbe8b48a..b4235e197 100644 --- a/src/test/correct/basicassign_gamma0/clang/basicassign_gamma0.expected +++ b/src/test/correct/basicassign_gamma0/clang/basicassign_gamma0.expected @@ -7,9 +7,9 @@ var {:extern} R8: bv64; var {:extern} R9: bv64; var {:extern} mem: [bv64]bv8; const {:extern} $secret_addr: bv64; -axiom ($secret_addr == 69684bv64); +axiom ($secret_addr == 131092bv64); const {:extern} $x_addr: bv64; -axiom ($x_addr == 69688bv64); +axiom ($x_addr == 131096bv64); function {:extern} L(mem$in: [bv64]bv8, index: bv64) returns (bool) { (if (index == $x_addr) then true else (if (index == $secret_addr) then false else false)) } @@ -19,6 +19,10 @@ function {:extern} gamma_load32(gammaMap: [bv64]bool, index: bv64) returns (bool (gammaMap[bvadd64(index, 3bv64)] && (gammaMap[bvadd64(index, 2bv64)] && (gammaMap[bvadd64(index, 1bv64)] && gammaMap[index]))) } +function {:extern} gamma_load64(gammaMap: [bv64]bool, index: bv64) returns (bool) { + (gammaMap[bvadd64(index, 7bv64)] && (gammaMap[bvadd64(index, 6bv64)] && (gammaMap[bvadd64(index, 5bv64)] && (gammaMap[bvadd64(index, 4bv64)] && (gammaMap[bvadd64(index, 3bv64)] && (gammaMap[bvadd64(index, 2bv64)] && (gammaMap[bvadd64(index, 1bv64)] && gammaMap[index]))))))) +} + function {:extern} gamma_store32(gammaMap: [bv64]bool, index: bv64, value: bool) returns ([bv64]bool) { gammaMap[index := value][bvadd64(index, 1bv64) := value][bvadd64(index, 2bv64) := value][bvadd64(index, 3bv64) := value] } @@ -40,11 +44,13 @@ procedure {:extern} rely(); modifies Gamma_mem, mem; ensures (forall i: bv64 :: (((mem[i] == old(mem[i])) ==> (Gamma_mem[i] == old(Gamma_mem[i]))))); ensures (memory_load32_le(mem, $secret_addr) == old(memory_load32_le(mem, $secret_addr))); - free ensures (memory_load32_le(mem, 1856bv64) == 131073bv32); - free ensures (memory_load64_le(mem, 69064bv64) == 1808bv64); - free ensures (memory_load64_le(mem, 69072bv64) == 1728bv64); - free ensures (memory_load64_le(mem, 69592bv64) == 1812bv64); - free ensures (memory_load64_le(mem, 69672bv64) == 69672bv64); + free ensures (memory_load32_le(mem, 2312bv64) == 131073bv32); + free ensures (memory_load64_le(mem, 130424bv64) == 2256bv64); + free ensures (memory_load64_le(mem, 130432bv64) == 2176bv64); + free ensures (memory_load64_le(mem, 131032bv64) == 131096bv64); + free ensures (memory_load64_le(mem, 131048bv64) == 131092bv64); + free ensures (memory_load64_le(mem, 131056bv64) == 2260bv64); + free ensures (memory_load64_le(mem, 131080bv64) == 131080bv64); procedure {:extern} rely_transitive(); modifies Gamma_mem, mem; @@ -66,41 +72,55 @@ implementation {:extern} rely_reflexive() procedure {:extern} guarantee_reflexive(); modifies Gamma_mem, mem; -procedure main_1812(); +procedure main(); modifies Gamma_R0, Gamma_R8, Gamma_R9, Gamma_mem, R0, R8, R9, mem; requires (gamma_load32(Gamma_mem, $secret_addr) == true); - free requires (memory_load64_le(mem, 69664bv64) == 0bv64); - free requires (memory_load64_le(mem, 69672bv64) == 69672bv64); - free requires (memory_load32_le(mem, 1856bv64) == 131073bv32); - free requires (memory_load64_le(mem, 69064bv64) == 1808bv64); - free requires (memory_load64_le(mem, 69072bv64) == 1728bv64); - free requires (memory_load64_le(mem, 69592bv64) == 1812bv64); - free requires (memory_load64_le(mem, 69672bv64) == 69672bv64); - free ensures (memory_load32_le(mem, 1856bv64) == 131073bv32); - free ensures (memory_load64_le(mem, 69064bv64) == 1808bv64); - free ensures (memory_load64_le(mem, 69072bv64) == 1728bv64); - free ensures (memory_load64_le(mem, 69592bv64) == 1812bv64); - free ensures (memory_load64_le(mem, 69672bv64) == 69672bv64); + free requires (memory_load64_le(mem, 131072bv64) == 0bv64); + free requires (memory_load64_le(mem, 131080bv64) == 131080bv64); + free requires (memory_load32_le(mem, 2312bv64) == 131073bv32); + free requires (memory_load64_le(mem, 130424bv64) == 2256bv64); + free requires (memory_load64_le(mem, 130432bv64) == 2176bv64); + free requires (memory_load64_le(mem, 131032bv64) == 131096bv64); + free requires (memory_load64_le(mem, 131048bv64) == 131092bv64); + free requires (memory_load64_le(mem, 131056bv64) == 2260bv64); + free requires (memory_load64_le(mem, 131080bv64) == 131080bv64); + free ensures (memory_load32_le(mem, 2312bv64) == 131073bv32); + free ensures (memory_load64_le(mem, 130424bv64) == 2256bv64); + free ensures (memory_load64_le(mem, 130432bv64) == 2176bv64); + free ensures (memory_load64_le(mem, 131032bv64) == 131096bv64); + free ensures (memory_load64_le(mem, 131048bv64) == 131092bv64); + free ensures (memory_load64_le(mem, 131056bv64) == 2260bv64); + free ensures (memory_load64_le(mem, 131080bv64) == 131080bv64); -implementation main_1812() +implementation main() { - var Gamma_load18: bool; - var load18: bv32; + var $load$18: bv64; + var $load$19: bv32; + var $load$20: bv64; + var Gamma_$load$18: bool; + var Gamma_$load$19: bool; + var Gamma_$load$20: bool; lmain: assume {:captureState "lmain"} true; - R8, Gamma_R8 := 69632bv64, true; + R8, Gamma_R8 := 126976bv64, true; + R9, Gamma_R9 := 126976bv64, true; + R0, Gamma_R0 := 0bv64, true; call rely(); - load18, Gamma_load18 := memory_load32_le(mem, bvadd64(R8, 52bv64)), (gamma_load32(Gamma_mem, bvadd64(R8, 52bv64)) || L(mem, bvadd64(R8, 52bv64))); - R8, Gamma_R8 := zero_extend32_32(load18), Gamma_load18; - R9, Gamma_R9 := 69632bv64, true; + $load$18, Gamma_$load$18 := memory_load64_le(mem, bvadd64(R8, 4072bv64)), (gamma_load64(Gamma_mem, bvadd64(R8, 4072bv64)) || L(mem, bvadd64(R8, 4072bv64))); + R8, Gamma_R8 := $load$18, Gamma_$load$18; call rely(); - assert (L(mem, bvadd64(R9, 56bv64)) ==> Gamma_R8); - mem, Gamma_mem := memory_store32_le(mem, bvadd64(R9, 56bv64), R8[32:0]), gamma_store32(Gamma_mem, bvadd64(R9, 56bv64), Gamma_R8); - assume {:captureState "%000002d9"} true; - R0, Gamma_R0 := 0bv64, true; - goto main_1812_basil_return; - main_1812_basil_return: - assume {:captureState "main_1812_basil_return"} true; + $load$19, Gamma_$load$19 := memory_load32_le(mem, R8), (gamma_load32(Gamma_mem, R8) || L(mem, R8)); + R8, Gamma_R8 := zero_extend32_32($load$19), Gamma_$load$19; + call rely(); + $load$20, Gamma_$load$20 := memory_load64_le(mem, bvadd64(R9, 4056bv64)), (gamma_load64(Gamma_mem, bvadd64(R9, 4056bv64)) || L(mem, bvadd64(R9, 4056bv64))); + R9, Gamma_R9 := $load$20, Gamma_$load$20; + call rely(); + assert (L(mem, R9) ==> Gamma_R8); + mem, Gamma_mem := memory_store32_le(mem, R9, R8[32:0]), gamma_store32(Gamma_mem, R9, Gamma_R8); + assume {:captureState "%00000294"} true; + goto main_basil_return; + main_basil_return: + assume {:captureState "main_basil_return"} true; return; } diff --git a/src/test/correct/basicassign_gamma0/clang/basicassign_gamma0.gts b/src/test/correct/basicassign_gamma0/clang/basicassign_gamma0.gts deleted file mode 100644 index a99d64d5b..000000000 Binary files a/src/test/correct/basicassign_gamma0/clang/basicassign_gamma0.gts and /dev/null differ diff --git a/src/test/correct/basicassign_gamma0/clang/basicassign_gamma0.md5sum b/src/test/correct/basicassign_gamma0/clang/basicassign_gamma0.md5sum new file mode 100644 index 000000000..3001370ed --- /dev/null +++ b/src/test/correct/basicassign_gamma0/clang/basicassign_gamma0.md5sum @@ -0,0 +1,5 @@ +e1ddf17ab5db9938454a708df55df786 correct/basicassign_gamma0/clang/a.out +ca1b1d4c1afb4342b483097953176141 correct/basicassign_gamma0/clang/basicassign_gamma0.adt +34cc8f7c086dafd40d44401269dfd76e correct/basicassign_gamma0/clang/basicassign_gamma0.bir +516a7299762e571d11fb2f4dd7b91bb1 correct/basicassign_gamma0/clang/basicassign_gamma0.relf +ba51e09c407dc9fb899862c97cdad0c6 correct/basicassign_gamma0/clang/basicassign_gamma0.gts diff --git a/src/test/correct/basicassign_gamma0/clang/basicassign_gamma0.relf b/src/test/correct/basicassign_gamma0/clang/basicassign_gamma0.relf deleted file mode 100644 index eef4a375f..000000000 --- a/src/test/correct/basicassign_gamma0/clang/basicassign_gamma0.relf +++ /dev/null @@ -1,124 +0,0 @@ - -Relocation section '.rela.dyn' at offset 0x460 contains 8 entries: - Offset Info Type Symbol's Value Symbol's Name + Addend -0000000000010dc8 0000000000000403 R_AARCH64_RELATIVE 710 -0000000000010dd0 0000000000000403 R_AARCH64_RELATIVE 6c0 -0000000000010fd8 0000000000000403 R_AARCH64_RELATIVE 714 -0000000000011028 0000000000000403 R_AARCH64_RELATIVE 11028 -0000000000010fc0 0000000400000401 R_AARCH64_GLOB_DAT 0000000000000000 _ITM_deregisterTMCloneTable + 0 -0000000000010fc8 0000000500000401 R_AARCH64_GLOB_DAT 0000000000000000 __cxa_finalize@GLIBC_2.17 + 0 -0000000000010fd0 0000000600000401 R_AARCH64_GLOB_DAT 0000000000000000 __gmon_start__ + 0 -0000000000010fe0 0000000800000401 R_AARCH64_GLOB_DAT 0000000000000000 _ITM_registerTMCloneTable + 0 - -Relocation section '.rela.plt' at offset 0x520 contains 4 entries: - Offset Info Type Symbol's Value Symbol's Name + Addend -0000000000011000 0000000300000402 R_AARCH64_JUMP_SLOT 0000000000000000 __libc_start_main@GLIBC_2.34 + 0 -0000000000011008 0000000500000402 R_AARCH64_JUMP_SLOT 0000000000000000 __cxa_finalize@GLIBC_2.17 + 0 -0000000000011010 0000000600000402 R_AARCH64_JUMP_SLOT 0000000000000000 __gmon_start__ + 0 -0000000000011018 0000000700000402 R_AARCH64_JUMP_SLOT 0000000000000000 abort@GLIBC_2.17 + 0 - -Symbol table '.dynsym' contains 9 entries: - Num: Value Size Type Bind Vis Ndx Name - 0: 0000000000000000 0 NOTYPE LOCAL DEFAULT UND - 1: 0000000000000580 0 SECTION LOCAL DEFAULT 11 .init - 2: 0000000000011020 0 SECTION LOCAL DEFAULT 23 .data - 3: 0000000000000000 0 FUNC GLOBAL DEFAULT UND __libc_start_main@GLIBC_2.34 (2) - 4: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_deregisterTMCloneTable - 5: 0000000000000000 0 FUNC WEAK DEFAULT UND __cxa_finalize@GLIBC_2.17 (3) - 6: 0000000000000000 0 NOTYPE WEAK DEFAULT UND __gmon_start__ - 7: 0000000000000000 0 FUNC GLOBAL DEFAULT UND abort@GLIBC_2.17 (3) - 8: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_registerTMCloneTable - -Symbol table '.symtab' contains 91 entries: - Num: Value Size Type Bind Vis Ndx Name - 0: 0000000000000000 0 NOTYPE LOCAL DEFAULT UND - 1: 0000000000000238 0 SECTION LOCAL DEFAULT 1 .interp - 2: 0000000000000254 0 SECTION LOCAL DEFAULT 2 .note.gnu.build-id - 3: 0000000000000278 0 SECTION LOCAL DEFAULT 3 .note.ABI-tag - 4: 0000000000000298 0 SECTION LOCAL DEFAULT 4 .gnu.hash - 5: 00000000000002b8 0 SECTION LOCAL DEFAULT 5 .dynsym - 6: 0000000000000390 0 SECTION LOCAL DEFAULT 6 .dynstr - 7: 000000000000041e 0 SECTION LOCAL DEFAULT 7 .gnu.version - 8: 0000000000000430 0 SECTION LOCAL DEFAULT 8 .gnu.version_r - 9: 0000000000000460 0 SECTION LOCAL DEFAULT 9 .rela.dyn - 10: 0000000000000520 0 SECTION LOCAL DEFAULT 10 .rela.plt - 11: 0000000000000580 0 SECTION LOCAL DEFAULT 11 .init - 12: 00000000000005a0 0 SECTION LOCAL DEFAULT 12 .plt - 13: 0000000000000600 0 SECTION LOCAL DEFAULT 13 .text - 14: 000000000000072c 0 SECTION LOCAL DEFAULT 14 .fini - 15: 0000000000000740 0 SECTION LOCAL DEFAULT 15 .rodata - 16: 0000000000000744 0 SECTION LOCAL DEFAULT 16 .eh_frame_hdr - 17: 0000000000000780 0 SECTION LOCAL DEFAULT 17 .eh_frame - 18: 0000000000010dc8 0 SECTION LOCAL DEFAULT 18 .init_array - 19: 0000000000010dd0 0 SECTION LOCAL DEFAULT 19 .fini_array - 20: 0000000000010dd8 0 SECTION LOCAL DEFAULT 20 .dynamic - 21: 0000000000010fb8 0 SECTION LOCAL DEFAULT 21 .got - 22: 0000000000010fe8 0 SECTION LOCAL DEFAULT 22 .got.plt - 23: 0000000000011020 0 SECTION LOCAL DEFAULT 23 .data - 24: 0000000000011030 0 SECTION LOCAL DEFAULT 24 .bss - 25: 0000000000000000 0 SECTION LOCAL DEFAULT 25 .comment - 26: 0000000000000000 0 FILE LOCAL DEFAULT ABS Scrt1.o - 27: 0000000000000278 0 NOTYPE LOCAL DEFAULT 3 $d - 28: 0000000000000278 32 OBJECT LOCAL DEFAULT 3 __abi_tag - 29: 0000000000000600 0 NOTYPE LOCAL DEFAULT 13 $x - 30: 0000000000000794 0 NOTYPE LOCAL DEFAULT 17 $d - 31: 0000000000000740 0 NOTYPE LOCAL DEFAULT 15 $d - 32: 0000000000000000 0 FILE LOCAL DEFAULT ABS crti.o - 33: 0000000000000634 0 NOTYPE LOCAL DEFAULT 13 $x - 34: 0000000000000634 20 FUNC LOCAL DEFAULT 13 call_weak_fn - 35: 0000000000000580 0 NOTYPE LOCAL DEFAULT 11 $x - 36: 000000000000072c 0 NOTYPE LOCAL DEFAULT 14 $x - 37: 0000000000000000 0 FILE LOCAL DEFAULT ABS crtn.o - 38: 0000000000000590 0 NOTYPE LOCAL DEFAULT 11 $x - 39: 0000000000000738 0 NOTYPE LOCAL DEFAULT 14 $x - 40: 0000000000000000 0 FILE LOCAL DEFAULT ABS crtstuff.c - 41: 0000000000000650 0 NOTYPE LOCAL DEFAULT 13 $x - 42: 0000000000000650 0 FUNC LOCAL DEFAULT 13 deregister_tm_clones - 43: 0000000000000680 0 FUNC LOCAL DEFAULT 13 register_tm_clones - 44: 0000000000011028 0 NOTYPE LOCAL DEFAULT 23 $d - 45: 00000000000006c0 0 FUNC LOCAL DEFAULT 13 __do_global_dtors_aux - 46: 0000000000011030 1 OBJECT LOCAL DEFAULT 24 completed.0 - 47: 0000000000010dd0 0 NOTYPE LOCAL DEFAULT 19 $d - 48: 0000000000010dd0 0 OBJECT LOCAL DEFAULT 19 __do_global_dtors_aux_fini_array_entry - 49: 0000000000000710 0 FUNC LOCAL DEFAULT 13 frame_dummy - 50: 0000000000010dc8 0 NOTYPE LOCAL DEFAULT 18 $d - 51: 0000000000010dc8 0 OBJECT LOCAL DEFAULT 18 __frame_dummy_init_array_entry - 52: 00000000000007a8 0 NOTYPE LOCAL DEFAULT 17 $d - 53: 0000000000011030 0 NOTYPE LOCAL DEFAULT 24 $d - 54: 0000000000000000 0 FILE LOCAL DEFAULT ABS basicassign_gamma0.c - 55: 0000000000000714 0 NOTYPE LOCAL DEFAULT 13 $x.0 - 56: 0000000000011034 0 NOTYPE LOCAL DEFAULT 24 $d.1 - 57: 000000000000002a 0 NOTYPE LOCAL DEFAULT 25 $d.2 - 58: 0000000000000808 0 NOTYPE LOCAL DEFAULT 17 $d.3 - 59: 0000000000000000 0 FILE LOCAL DEFAULT ABS crtstuff.c - 60: 0000000000000830 0 NOTYPE LOCAL DEFAULT 17 $d - 61: 0000000000000830 0 OBJECT LOCAL DEFAULT 17 __FRAME_END__ - 62: 0000000000000000 0 FILE LOCAL DEFAULT ABS - 63: 0000000000010dd8 0 OBJECT LOCAL DEFAULT ABS _DYNAMIC - 64: 0000000000000744 0 NOTYPE LOCAL DEFAULT 16 __GNU_EH_FRAME_HDR - 65: 0000000000010fb8 0 OBJECT LOCAL DEFAULT ABS _GLOBAL_OFFSET_TABLE_ - 66: 00000000000005a0 0 NOTYPE LOCAL DEFAULT 12 $x - 67: 0000000000000000 0 FUNC GLOBAL DEFAULT UND __libc_start_main@GLIBC_2.34 - 68: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_deregisterTMCloneTable - 69: 0000000000011020 0 NOTYPE WEAK DEFAULT 23 data_start - 70: 0000000000011030 0 NOTYPE GLOBAL DEFAULT 24 __bss_start__ - 71: 0000000000000000 0 FUNC WEAK DEFAULT UND __cxa_finalize@GLIBC_2.17 - 72: 0000000000011040 0 NOTYPE GLOBAL DEFAULT 24 _bss_end__ - 73: 0000000000011030 0 NOTYPE GLOBAL DEFAULT 23 _edata - 74: 0000000000011038 4 OBJECT GLOBAL DEFAULT 24 x - 75: 000000000000072c 0 FUNC GLOBAL HIDDEN 14 _fini - 76: 0000000000011040 0 NOTYPE GLOBAL DEFAULT 24 __bss_end__ - 77: 0000000000011020 0 NOTYPE GLOBAL DEFAULT 23 __data_start - 78: 0000000000000000 0 NOTYPE WEAK DEFAULT UND __gmon_start__ - 79: 0000000000011028 0 OBJECT GLOBAL HIDDEN 23 __dso_handle - 80: 0000000000000000 0 FUNC GLOBAL DEFAULT UND abort@GLIBC_2.17 - 81: 0000000000000740 4 OBJECT GLOBAL DEFAULT 15 _IO_stdin_used - 82: 0000000000011034 4 OBJECT GLOBAL DEFAULT 24 secret - 83: 0000000000011040 0 NOTYPE GLOBAL DEFAULT 24 _end - 84: 0000000000000600 52 FUNC GLOBAL DEFAULT 13 _start - 85: 0000000000011040 0 NOTYPE GLOBAL DEFAULT 24 __end__ - 86: 0000000000011030 0 NOTYPE GLOBAL DEFAULT 24 __bss_start - 87: 0000000000000714 24 FUNC GLOBAL DEFAULT 13 main - 88: 0000000000011030 0 OBJECT GLOBAL HIDDEN 23 __TMC_END__ - 89: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_registerTMCloneTable - 90: 0000000000000580 0 FUNC GLOBAL HIDDEN 11 _init diff --git a/src/test/correct/basicassign_gamma0/clang/basicassign_gamma0_gtirb.expected b/src/test/correct/basicassign_gamma0/clang/basicassign_gamma0_gtirb.expected index 842e731d7..71caf3f61 100644 --- a/src/test/correct/basicassign_gamma0/clang/basicassign_gamma0_gtirb.expected +++ b/src/test/correct/basicassign_gamma0/clang/basicassign_gamma0_gtirb.expected @@ -7,9 +7,9 @@ var {:extern} R8: bv64; var {:extern} R9: bv64; var {:extern} mem: [bv64]bv8; const {:extern} $secret_addr: bv64; -axiom ($secret_addr == 69684bv64); +axiom ($secret_addr == 131092bv64); const {:extern} $x_addr: bv64; -axiom ($x_addr == 69688bv64); +axiom ($x_addr == 131096bv64); function {:extern} L(mem$in: [bv64]bv8, index: bv64) returns (bool) { (if (index == $x_addr) then true else (if (index == $secret_addr) then false else false)) } @@ -19,6 +19,10 @@ function {:extern} gamma_load32(gammaMap: [bv64]bool, index: bv64) returns (bool (gammaMap[bvadd64(index, 3bv64)] && (gammaMap[bvadd64(index, 2bv64)] && (gammaMap[bvadd64(index, 1bv64)] && gammaMap[index]))) } +function {:extern} gamma_load64(gammaMap: [bv64]bool, index: bv64) returns (bool) { + (gammaMap[bvadd64(index, 7bv64)] && (gammaMap[bvadd64(index, 6bv64)] && (gammaMap[bvadd64(index, 5bv64)] && (gammaMap[bvadd64(index, 4bv64)] && (gammaMap[bvadd64(index, 3bv64)] && (gammaMap[bvadd64(index, 2bv64)] && (gammaMap[bvadd64(index, 1bv64)] && gammaMap[index]))))))) +} + function {:extern} gamma_store32(gammaMap: [bv64]bool, index: bv64, value: bool) returns ([bv64]bool) { gammaMap[index := value][bvadd64(index, 1bv64) := value][bvadd64(index, 2bv64) := value][bvadd64(index, 3bv64) := value] } @@ -40,11 +44,13 @@ procedure {:extern} rely(); modifies Gamma_mem, mem; ensures (forall i: bv64 :: (((mem[i] == old(mem[i])) ==> (Gamma_mem[i] == old(Gamma_mem[i]))))); ensures (memory_load32_le(mem, $secret_addr) == old(memory_load32_le(mem, $secret_addr))); - free ensures (memory_load32_le(mem, 1856bv64) == 131073bv32); - free ensures (memory_load64_le(mem, 69064bv64) == 1808bv64); - free ensures (memory_load64_le(mem, 69072bv64) == 1728bv64); - free ensures (memory_load64_le(mem, 69592bv64) == 1812bv64); - free ensures (memory_load64_le(mem, 69672bv64) == 69672bv64); + free ensures (memory_load32_le(mem, 2312bv64) == 131073bv32); + free ensures (memory_load64_le(mem, 130424bv64) == 2256bv64); + free ensures (memory_load64_le(mem, 130432bv64) == 2176bv64); + free ensures (memory_load64_le(mem, 131032bv64) == 131096bv64); + free ensures (memory_load64_le(mem, 131048bv64) == 131092bv64); + free ensures (memory_load64_le(mem, 131056bv64) == 2260bv64); + free ensures (memory_load64_le(mem, 131080bv64) == 131080bv64); procedure {:extern} rely_transitive(); modifies Gamma_mem, mem; @@ -66,41 +72,55 @@ implementation {:extern} rely_reflexive() procedure {:extern} guarantee_reflexive(); modifies Gamma_mem, mem; -procedure main_1812(); +procedure main(); modifies Gamma_R0, Gamma_R8, Gamma_R9, Gamma_mem, R0, R8, R9, mem; requires (gamma_load32(Gamma_mem, $secret_addr) == true); - free requires (memory_load64_le(mem, 69664bv64) == 0bv64); - free requires (memory_load64_le(mem, 69672bv64) == 69672bv64); - free requires (memory_load32_le(mem, 1856bv64) == 131073bv32); - free requires (memory_load64_le(mem, 69064bv64) == 1808bv64); - free requires (memory_load64_le(mem, 69072bv64) == 1728bv64); - free requires (memory_load64_le(mem, 69592bv64) == 1812bv64); - free requires (memory_load64_le(mem, 69672bv64) == 69672bv64); - free ensures (memory_load32_le(mem, 1856bv64) == 131073bv32); - free ensures (memory_load64_le(mem, 69064bv64) == 1808bv64); - free ensures (memory_load64_le(mem, 69072bv64) == 1728bv64); - free ensures (memory_load64_le(mem, 69592bv64) == 1812bv64); - free ensures (memory_load64_le(mem, 69672bv64) == 69672bv64); + free requires (memory_load64_le(mem, 131072bv64) == 0bv64); + free requires (memory_load64_le(mem, 131080bv64) == 131080bv64); + free requires (memory_load32_le(mem, 2312bv64) == 131073bv32); + free requires (memory_load64_le(mem, 130424bv64) == 2256bv64); + free requires (memory_load64_le(mem, 130432bv64) == 2176bv64); + free requires (memory_load64_le(mem, 131032bv64) == 131096bv64); + free requires (memory_load64_le(mem, 131048bv64) == 131092bv64); + free requires (memory_load64_le(mem, 131056bv64) == 2260bv64); + free requires (memory_load64_le(mem, 131080bv64) == 131080bv64); + free ensures (memory_load32_le(mem, 2312bv64) == 131073bv32); + free ensures (memory_load64_le(mem, 130424bv64) == 2256bv64); + free ensures (memory_load64_le(mem, 130432bv64) == 2176bv64); + free ensures (memory_load64_le(mem, 131032bv64) == 131096bv64); + free ensures (memory_load64_le(mem, 131048bv64) == 131092bv64); + free ensures (memory_load64_le(mem, 131056bv64) == 2260bv64); + free ensures (memory_load64_le(mem, 131080bv64) == 131080bv64); -implementation main_1812() +implementation main() { - var Gamma_load9: bool; - var load9: bv32; - main_1812__0__z8gjj~niR~us0mMf~~CgEA: - assume {:captureState "main_1812__0__z8gjj~niR~us0mMf~~CgEA"} true; - R8, Gamma_R8 := 69632bv64, true; + var $load5: bv64; + var $load6: bv32; + var $load7: bv64; + var Gamma_$load5: bool; + var Gamma_$load6: bool; + var Gamma_$load7: bool; + $main$__0__$D9t2gNJrSmyMH3GAVRe3IQ: + assume {:captureState "$main$__0__$D9t2gNJrSmyMH3GAVRe3IQ"} true; + R8, Gamma_R8 := 126976bv64, true; + R9, Gamma_R9 := 126976bv64, true; + R0, Gamma_R0 := 0bv64, true; call rely(); - load9, Gamma_load9 := memory_load32_le(mem, bvadd64(R8, 52bv64)), (gamma_load32(Gamma_mem, bvadd64(R8, 52bv64)) || L(mem, bvadd64(R8, 52bv64))); - R8, Gamma_R8 := zero_extend32_32(load9), Gamma_load9; - R9, Gamma_R9 := 69632bv64, true; + $load5, Gamma_$load5 := memory_load64_le(mem, bvadd64(R8, 4072bv64)), (gamma_load64(Gamma_mem, bvadd64(R8, 4072bv64)) || L(mem, bvadd64(R8, 4072bv64))); + R8, Gamma_R8 := $load5, Gamma_$load5; call rely(); - assert (L(mem, bvadd64(R9, 56bv64)) ==> Gamma_R8); - mem, Gamma_mem := memory_store32_le(mem, bvadd64(R9, 56bv64), R8[32:0]), gamma_store32(Gamma_mem, bvadd64(R9, 56bv64), Gamma_R8); - assume {:captureState "1824_0"} true; - R0, Gamma_R0 := 0bv64, true; - goto main_1812_basil_return; - main_1812_basil_return: - assume {:captureState "main_1812_basil_return"} true; + $load6, Gamma_$load6 := memory_load32_le(mem, R8), (gamma_load32(Gamma_mem, R8) || L(mem, R8)); + R8, Gamma_R8 := zero_extend32_32($load6), Gamma_$load6; + call rely(); + $load7, Gamma_$load7 := memory_load64_le(mem, bvadd64(R9, 4056bv64)), (gamma_load64(Gamma_mem, bvadd64(R9, 4056bv64)) || L(mem, bvadd64(R9, 4056bv64))); + R9, Gamma_R9 := $load7, Gamma_$load7; + call rely(); + assert (L(mem, R9) ==> Gamma_R8); + mem, Gamma_mem := memory_store32_le(mem, R9, R8[32:0]), gamma_store32(Gamma_mem, R9, Gamma_R8); + assume {:captureState "2284$0"} true; + goto main_basil_return; + main_basil_return: + assume {:captureState "main_basil_return"} true; return; } diff --git a/src/test/correct/basicassign_gamma0/clang_pic/basicassign_gamma0.adt b/src/test/correct/basicassign_gamma0/clang_pic/basicassign_gamma0.adt deleted file mode 100644 index 04c7586a3..000000000 --- a/src/test/correct/basicassign_gamma0/clang_pic/basicassign_gamma0.adt +++ /dev/null @@ -1,501 +0,0 @@ -Project(Attrs([Attr("filename","\"clang_pic/basicassign_gamma0.out\""), -Attr("image-specification","(declare abi (name str))\n(declare arch (name str))\n(declare base-address (addr int))\n(declare bias (off int))\n(declare bits (size int))\n(declare code-region (addr int) (size int) (off int))\n(declare code-start (addr int))\n(declare entry-point (addr int))\n(declare external-reference (addr int) (name str))\n(declare format (name str))\n(declare is-executable (flag bool))\n(declare is-little-endian (flag bool))\n(declare llvm:base-address (addr int))\n(declare llvm:code-entry (name str) (off int) (size int))\n(declare llvm:coff-import-library (name str))\n(declare llvm:coff-virtual-section-header (name str) (addr int) (size int))\n(declare llvm:elf-program-header (name str) (off int) (size int))\n(declare llvm:elf-program-header-flags (name str) (ld bool) (r bool) \n (w bool) (x bool))\n(declare llvm:elf-virtual-program-header (name str) (addr int) (size int))\n(declare llvm:entry-point (addr int))\n(declare llvm:macho-symbol (name str) (value int))\n(declare llvm:name-reference (at int) (name str))\n(declare llvm:relocation (at int) (addr int))\n(declare llvm:section-entry (name str) (addr int) (size int) (off int))\n(declare llvm:section-flags (name str) (r bool) (w bool) (x bool))\n(declare llvm:segment-command (name str) (off int) (size int))\n(declare llvm:segment-command-flags (name str) (r bool) (w bool) (x bool))\n(declare llvm:symbol-entry (name str) (addr int) (size int) (off int)\n (value int))\n(declare llvm:virtual-segment-command (name str) (addr int) (size int))\n(declare mapped (addr int) (size int) (off int))\n(declare named-region (addr int) (size int) (name str))\n(declare named-symbol (addr int) (name str))\n(declare require (name str))\n(declare section (addr int) (size int))\n(declare segment (addr int) (size int) (r bool) (w bool) (x bool))\n(declare subarch (name str))\n(declare symbol-chunk (addr int) (size int) (root int))\n(declare symbol-value (addr int) (value int))\n(declare system (name str))\n(declare vendor (name str))\n\n(abi unknown)\n(arch aarch64)\n(base-address 0)\n(bias 0)\n(bits 64)\n(code-region 1908 20 1908)\n(code-region 1600 308 1600)\n(code-region 1488 96 1488)\n(code-region 1456 24 1456)\n(code-start 1652)\n(code-start 1600)\n(code-start 1876)\n(entry-point 1600)\n(external-reference 69552 _ITM_deregisterTMCloneTable)\n(external-reference 69560 __cxa_finalize)\n(external-reference 69576 __gmon_start__)\n(external-reference 69600 _ITM_registerTMCloneTable)\n(external-reference 69632 __libc_start_main)\n(external-reference 69640 __cxa_finalize)\n(external-reference 69648 __gmon_start__)\n(external-reference 69656 abort)\n(format elf)\n(is-executable true)\n(is-little-endian true)\n(llvm:base-address 0)\n(llvm:code-entry abort 0 0)\n(llvm:code-entry __cxa_finalize 0 0)\n(llvm:code-entry __libc_start_main 0 0)\n(llvm:code-entry _init 1456 0)\n(llvm:code-entry main 1876 32)\n(llvm:code-entry _start 1600 52)\n(llvm:code-entry abort@GLIBC_2.17 0 0)\n(llvm:code-entry _fini 1908 0)\n(llvm:code-entry __cxa_finalize@GLIBC_2.17 0 0)\n(llvm:code-entry __libc_start_main@GLIBC_2.34 0 0)\n(llvm:code-entry frame_dummy 1872 0)\n(llvm:code-entry __do_global_dtors_aux 1792 0)\n(llvm:code-entry register_tm_clones 1728 0)\n(llvm:code-entry deregister_tm_clones 1680 0)\n(llvm:code-entry call_weak_fn 1652 20)\n(llvm:code-entry .fini 1908 20)\n(llvm:code-entry .text 1600 308)\n(llvm:code-entry .plt 1488 96)\n(llvm:code-entry .init 1456 24)\n(llvm:elf-program-header 08 3512 584)\n(llvm:elf-program-header 07 0 0)\n(llvm:elf-program-header 06 1932 60)\n(llvm:elf-program-header 05 596 68)\n(llvm:elf-program-header 04 3528 480)\n(llvm:elf-program-header 03 3512 632)\n(llvm:elf-program-header 02 0 2172)\n(llvm:elf-program-header 01 568 27)\n(llvm:elf-program-header 00 64 504)\n(llvm:elf-program-header-flags 08 false true false false)\n(llvm:elf-program-header-flags 07 false true true false)\n(llvm:elf-program-header-flags 06 false true false false)\n(llvm:elf-program-header-flags 05 false true false false)\n(llvm:elf-program-header-flags 04 false true true false)\n(llvm:elf-program-header-flags 03 true true true false)\n(llvm:elf-program-header-flags 02 true true false true)\n(llvm:elf-program-header-flags 01 false true false false)\n(llvm:elf-program-header-flags 00 false true false false)\n(llvm:elf-virtual-program-header 08 69048 584)\n(llvm:elf-virtual-program-header 07 0 0)\n(llvm:elf-virtual-program-header 06 1932 60)\n(llvm:elf-virtual-program-header 05 596 68)\n(llvm:elf-virtual-program-header 04 69064 480)\n(llvm:elf-virtual-program-header 03 69048 648)\n(llvm:elf-virtual-program-header 02 0 2172)\n(llvm:elf-virtual-program-header 01 568 27)\n(llvm:elf-virtual-program-header 00 64 504)\n(llvm:entry-point 1600)\n(llvm:name-reference 69656 abort)\n(llvm:name-reference 69648 __gmon_start__)\n(llvm:name-reference 69640 __cxa_finalize)\n(llvm:name-reference 69632 __libc_start_main)\n(llvm:name-reference 69600 _ITM_registerTMCloneTable)\n(llvm:name-reference 69576 __gmon_start__)\n(llvm:name-reference 69560 __cxa_finalize)\n(llvm:name-reference 69552 _ITM_deregisterTMCloneTable)\n(llvm:section-entry .shstrtab 0 259 6981)\n(llvm:section-entry .strtab 0 581 6400)\n(llvm:section-entry .symtab 0 2184 4216)\n(llvm:section-entry .comment 0 71 4144)\n(llvm:section-entry .bss 69680 16 4144)\n(llvm:section-entry .data 69664 16 4128)\n(llvm:section-entry .got.plt 69608 56 4072)\n(llvm:section-entry .got 69544 64 4008)\n(llvm:section-entry .dynamic 69064 480 3528)\n(llvm:section-entry .fini_array 69056 8 3520)\n(llvm:section-entry .init_array 69048 8 3512)\n(llvm:section-entry .eh_frame 1992 180 1992)\n(llvm:section-entry .eh_frame_hdr 1932 60 1932)\n(llvm:section-entry .rodata 1928 4 1928)\n(llvm:section-entry .fini 1908 20 1908)\n(llvm:section-entry .text 1600 308 1600)\n(llvm:section-entry .plt 1488 96 1488)\n(llvm:section-entry .init 1456 24 1456)\n(llvm:section-entry .rela.plt 1360 96 1360)\n(llvm:section-entry .rela.dyn 1120 240 1120)\n(llvm:section-entry .gnu.version_r 1072 48 1072)\n(llvm:section-entry .gnu.version 1054 18 1054)\n(llvm:section-entry .dynstr 912 141 912)\n(llvm:section-entry .dynsym 696 216 696)\n(llvm:section-entry .gnu.hash 664 28 664)\n(llvm:section-entry .note.ABI-tag 632 32 632)\n(llvm:section-entry .note.gnu.build-id 596 36 596)\n(llvm:section-entry .interp 568 27 568)\n(llvm:section-flags .shstrtab true false false)\n(llvm:section-flags .strtab true false false)\n(llvm:section-flags .symtab true false false)\n(llvm:section-flags .comment true false false)\n(llvm:section-flags .bss true true false)\n(llvm:section-flags .data true true false)\n(llvm:section-flags .got.plt true true false)\n(llvm:section-flags .got true true false)\n(llvm:section-flags .dynamic true true false)\n(llvm:section-flags .fini_array true true false)\n(llvm:section-flags .init_array true true false)\n(llvm:section-flags .eh_frame true false false)\n(llvm:section-flags .eh_frame_hdr true false false)\n(llvm:section-flags .rodata true false false)\n(llvm:section-flags .fini true false true)\n(llvm:section-flags .text true false true)\n(llvm:section-flags .plt true false true)\n(llvm:section-flags .init true false true)\n(llvm:section-flags .rela.plt true false false)\n(llvm:section-flags .rela.dyn true false false)\n(llvm:section-flags .gnu.version_r true false false)\n(llvm:section-flags .gnu.version true false false)\n(llvm:section-flags .dynstr true false false)\n(llvm:section-flags .dynsym true false false)\n(llvm:section-flags .gnu.hash true false false)\n(llvm:section-flags .note.ABI-tag true false false)\n(llvm:section-flags .note.gnu.build-id true false false)\n(llvm:section-flags .interp true false false)\n(llvm:symbol-entry abort 0 0 0 0)\n(llvm:symbol-entry __cxa_finalize 0 0 0 0)\n(llvm:symbol-entry __libc_start_main 0 0 0 0)\n(llvm:symbol-entry _init 1456 0 1456 1456)\n(llvm:symbol-entry main 1876 32 1876 1876)\n(llvm:symbol-entry _start 1600 52 1600 1600)\n(llvm:symbol-entry abort@GLIBC_2.17 0 0 0 0)\n(llvm:symbol-entry _fini 1908 0 1908 1908)\n(llvm:symbol-entry __cxa_finalize@GLIBC_2.17 0 0 0 0)\n(llvm:symbol-entry __libc_start_main@GLIBC_2.34 0 0 0 0)\n(llvm:symbol-entry frame_dummy 1872 0 1872 1872)\n(llvm:symbol-entry __do_global_dtors_aux 1792 0 1792 1792)\n(llvm:symbol-entry register_tm_clones 1728 0 1728 1728)\n(llvm:symbol-entry deregister_tm_clones 1680 0 1680 1680)\n(llvm:symbol-entry call_weak_fn 1652 20 1652 1652)\n(mapped 0 2172 0)\n(mapped 69048 632 3512)\n(named-region 0 2172 02)\n(named-region 69048 648 03)\n(named-region 568 27 .interp)\n(named-region 596 36 .note.gnu.build-id)\n(named-region 632 32 .note.ABI-tag)\n(named-region 664 28 .gnu.hash)\n(named-region 696 216 .dynsym)\n(named-region 912 141 .dynstr)\n(named-region 1054 18 .gnu.version)\n(named-region 1072 48 .gnu.version_r)\n(named-region 1120 240 .rela.dyn)\n(named-region 1360 96 .rela.plt)\n(named-region 1456 24 .init)\n(named-region 1488 96 .plt)\n(named-region 1600 308 .text)\n(named-region 1908 20 .fini)\n(named-region 1928 4 .rodata)\n(named-region 1932 60 .eh_frame_hdr)\n(named-region 1992 180 .eh_frame)\n(named-region 69048 8 .init_array)\n(named-region 69056 8 .fini_array)\n(named-region 69064 480 .dynamic)\n(named-region 69544 64 .got)\n(named-region 69608 56 .got.plt)\n(named-region 69664 16 .data)\n(named-region 69680 16 .bss)\n(named-region 0 71 .comment)\n(named-region 0 2184 .symtab)\n(named-region 0 581 .strtab)\n(named-region 0 259 .shstrtab)\n(named-symbol 1652 call_weak_fn)\n(named-symbol 1680 deregister_tm_clones)\n(named-symbol 1728 register_tm_clones)\n(named-symbol 1792 __do_global_dtors_aux)\n(named-symbol 1872 frame_dummy)\n(named-symbol 0 __libc_start_main@GLIBC_2.34)\n(named-symbol 0 __cxa_finalize@GLIBC_2.17)\n(named-symbol 1908 _fini)\n(named-symbol 0 abort@GLIBC_2.17)\n(named-symbol 1600 _start)\n(named-symbol 1876 main)\n(named-symbol 1456 _init)\n(named-symbol 0 __libc_start_main)\n(named-symbol 0 __cxa_finalize)\n(named-symbol 0 abort)\n(require libc.so.6)\n(section 568 27)\n(section 596 36)\n(section 632 32)\n(section 664 28)\n(section 696 216)\n(section 912 141)\n(section 1054 18)\n(section 1072 48)\n(section 1120 240)\n(section 1360 96)\n(section 1456 24)\n(section 1488 96)\n(section 1600 308)\n(section 1908 20)\n(section 1928 4)\n(section 1932 60)\n(section 1992 180)\n(section 69048 8)\n(section 69056 8)\n(section 69064 480)\n(section 69544 64)\n(section 69608 56)\n(section 69664 16)\n(section 69680 16)\n(section 0 71)\n(section 0 2184)\n(section 0 581)\n(section 0 259)\n(segment 0 2172 true false true)\n(segment 69048 648 true true false)\n(subarch v8)\n(symbol-chunk 1652 20 1652)\n(symbol-chunk 1600 52 1600)\n(symbol-chunk 1876 32 1876)\n(symbol-value 1652 1652)\n(symbol-value 1680 1680)\n(symbol-value 1728 1728)\n(symbol-value 1792 1792)\n(symbol-value 1872 1872)\n(symbol-value 1908 1908)\n(symbol-value 1600 1600)\n(symbol-value 1876 1876)\n(symbol-value 1456 1456)\n(symbol-value 0 0)\n(system \"\")\n(vendor \"\")\n"), -Attr("abi-name","\"aarch64-linux-gnu-elf\"")]), -Sections([Section(".shstrtab", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x40\x06\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x48\x1c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x38\x00\x09\x00\x40\x00\x1d\x00\x1c\x00\x06\x00\x00\x00\x04\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x04\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x08\x00\x00\x00\x00\x00\x00\x7c\x08\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x01\x00\x00\x00\x06\x00\x00\x00\xb8\x0d\x00\x00\x00\x00\x00\x00\xb8\x0d\x01\x00\x00\x00\x00\x00\xb8\x0d\x01"), -Section(".strtab", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x40\x06\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x48\x1c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x38\x00\x09\x00\x40\x00\x1d\x00\x1c\x00\x06\x00\x00\x00\x04\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x04\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x08\x00\x00\x00\x00\x00\x00\x7c\x08\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x01\x00\x00\x00\x06\x00\x00\x00\xb8\x0d\x00\x00\x00\x00\x00\x00\xb8\x0d\x01\x00\x00\x00\x00\x00\xb8\x0d\x01\x00\x00\x00\x00\x00\x78\x02\x00\x00\x00\x00\x00\x00\x88\x02\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x02\x00\x00\x00\x06\x00\x00\x00\xc8\x0d\x00\x00\x00\x00\x00\x00\xc8\x0d\x01\x00\x00\x00\x00\x00\xc8\x0d\x01\x00\x00\x00\x00\x00\xe0\x01\x00\x00\x00\x00\x00\x00\xe0\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x04\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x50\xe5\x74\x64\x04\x00\x00\x00\x8c\x07\x00\x00\x00\x00\x00\x00\x8c\x07\x00\x00\x00\x00\x00\x00\x8c\x07\x00\x00\x00\x00\x00\x00\x3c\x00\x00\x00\x00\x00\x00\x00\x3c\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x51\xe5\x74\x64\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x52\xe5\x74\x64\x04\x00\x00\x00\xb8\x0d\x00\x00\x00\x00\x00\x00\xb8\x0d\x01\x00\x00\x00\x00\x00\xb8\x0d\x01\x00\x00\x00\x00\x00\x48\x02\x00\x00\x00\x00\x00\x00\x48\x02\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x2f\x6c\x69\x62\x2f\x6c\x64\x2d\x6c\x69\x6e\x75\x78"), -Section(".comment", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x40\x06\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x48\x1c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x38\x00\x09\x00\x40\x00\x1d\x00\x1c\x00\x06\x00\x00\x00\x04\x00\x00"), -Section(".interp", 0x238, "\x2f\x6c\x69\x62\x2f\x6c\x64\x2d\x6c\x69\x6e\x75\x78\x2d\x61\x61\x72\x63\x68\x36\x34\x2e\x73\x6f\x2e\x31\x00"), -Section(".note.gnu.build-id", 0x254, "\x04\x00\x00\x00\x14\x00\x00\x00\x03\x00\x00\x00\x47\x4e\x55\x00\x17\x7a\x8b\xc7\x93\xfe\x49\xa2\x73\x0e\x44\x16\xb9\x8f\x87\xe5\x8f\x15\xd0\x60"), -Section(".note.ABI-tag", 0x278, "\x04\x00\x00\x00\x10\x00\x00\x00\x01\x00\x00\x00\x47\x4e\x55\x00\x00\x00\x00\x00\x03\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00"), -Section(".gnu.hash", 0x298, "\x01\x00\x00\x00\x01\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".dynsym", 0x2B8, "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x0b\x00\xb0\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x17\x00\x20\x10\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x48\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x22\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x22\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x73\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".dynstr", 0x390, "\x00\x5f\x5f\x63\x78\x61\x5f\x66\x69\x6e\x61\x6c\x69\x7a\x65\x00\x5f\x5f\x6c\x69\x62\x63\x5f\x73\x74\x61\x72\x74\x5f\x6d\x61\x69\x6e\x00\x61\x62\x6f\x72\x74\x00\x6c\x69\x62\x63\x2e\x73\x6f\x2e\x36\x00\x47\x4c\x49\x42\x43\x5f\x32\x2e\x31\x37\x00\x47\x4c\x49\x42\x43\x5f\x32\x2e\x33\x34\x00\x5f\x49\x54\x4d\x5f\x64\x65\x72\x65\x67\x69\x73\x74\x65\x72\x54\x4d\x43\x6c\x6f\x6e\x65\x54\x61\x62\x6c\x65\x00\x5f\x5f\x67\x6d\x6f\x6e\x5f\x73\x74\x61\x72\x74\x5f\x5f\x00\x5f\x49\x54\x4d\x5f\x72\x65\x67\x69\x73\x74\x65\x72\x54\x4d\x43\x6c\x6f\x6e\x65\x54\x61\x62\x6c\x65\x00"), -Section(".gnu.version", 0x41E, "\x00\x00\x00\x00\x00\x00\x02\x00\x01\x00\x03\x00\x01\x00\x03\x00\x01\x00"), -Section(".gnu.version_r", 0x430, "\x01\x00\x02\x00\x28\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x97\x91\x96\x06\x00\x00\x03\x00\x32\x00\x00\x00\x10\x00\x00\x00\xb4\x91\x96\x06\x00\x00\x02\x00\x3d\x00\x00\x00\x00\x00\x00\x00"), -Section(".rela.dyn", 0x460, "\xb8\x0d\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x50\x07\x00\x00\x00\x00\x00\x00\xc0\x0d\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\xc0\x0f\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x38\x10\x01\x00\x00\x00\x00\x00\xd0\x0f\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x34\x10\x01\x00\x00\x00\x00\x00\xd8\x0f\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x54\x07\x00\x00\x00\x00\x00\x00\x28\x10\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x28\x10\x01\x00\x00\x00\x00\x00\xb0\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xb8\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xc8\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe0\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".rela.plt", 0x550, "\x00\x10\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x08\x10\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x10\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x18\x10\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".init", 0x5B0, "\x1f\x20\x03\xd5\xfd\x7b\xbf\xa9\xfd\x03\x00\x91\x2e\x00\x00\x94\xfd\x7b\xc1\xa8\xc0\x03\x5f\xd6"), -Section(".plt", 0x5D0, "\xf0\x7b\xbf\xa9\x90\x00\x00\x90\x11\xfe\x47\xf9\x10\xe2\x3f\x91\x20\x02\x1f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x90\x00\x00\xb0\x11\x02\x40\xf9\x10\x02\x00\x91\x20\x02\x1f\xd6\x90\x00\x00\xb0\x11\x06\x40\xf9\x10\x22\x00\x91\x20\x02\x1f\xd6\x90\x00\x00\xb0\x11\x0a\x40\xf9\x10\x42\x00\x91\x20\x02\x1f\xd6\x90\x00\x00\xb0\x11\x0e\x40\xf9\x10\x62\x00\x91\x20\x02\x1f\xd6"), -Section(".text", 0x640, "\x1f\x20\x03\xd5\x1d\x00\x80\xd2\x1e\x00\x80\xd2\xe5\x03\x00\xaa\xe1\x03\x40\xf9\xe2\x23\x00\x91\xe6\x03\x00\x91\x80\x00\x00\x90\x00\xec\x47\xf9\x03\x00\x80\xd2\x04\x00\x80\xd2\xe1\xff\xff\x97\xec\xff\xff\x97\x80\x00\x00\x90\x00\xe4\x47\xf9\x40\x00\x00\xb4\xe4\xff\xff\x17\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x80\x00\x00\xb0\x00\xc0\x00\x91\x81\x00\x00\xb0\x21\xc0\x00\x91\x3f\x00\x00\xeb\xc0\x00\x00\x54\x81\x00\x00\x90\x21\xd8\x47\xf9\x61\x00\x00\xb4\xf0\x03\x01\xaa\x00\x02\x1f\xd6\xc0\x03\x5f\xd6\x80\x00\x00\xb0\x00\xc0\x00\x91\x81\x00\x00\xb0\x21\xc0\x00\x91\x21\x00\x00\xcb\x22\xfc\x7f\xd3\x41\x0c\x81\x8b\x21\xfc\x41\x93\xc1\x00\x00\xb4\x82\x00\x00\x90\x42\xf0\x47\xf9\x62\x00\x00\xb4\xf0\x03\x02\xaa\x00\x02\x1f\xd6\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\xfd\x7b\xbe\xa9\xfd\x03\x00\x91\xf3\x0b\x00\xf9\x93\x00\x00\xb0\x60\xc2\x40\x39\x40\x01\x00\x35\x80\x00\x00\x90\x00\xdc\x47\xf9\x80\x00\x00\xb4\x80\x00\x00\xb0\x00\x14\x40\xf9\xb5\xff\xff\x97\xd8\xff\xff\x97\x20\x00\x80\x52\x60\xc2\x00\x39\xf3\x0b\x40\xf9\xfd\x7b\xc2\xa8\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\xdc\xff\xff\x17\x88\x00\x00\x90\x08\xe9\x47\xf9\x08\x01\x40\xb9\x89\x00\x00\x90\x29\xe1\x47\xf9\x28\x01\x00\xb9\xe0\x03\x1f\x2a\xc0\x03\x5f\xd6"), -Section(".fini", 0x774, "\x1f\x20\x03\xd5\xfd\x7b\xbf\xa9\xfd\x03\x00\x91\xfd\x7b\xc1\xa8\xc0\x03\x5f\xd6"), -Section(".rodata", 0x788, "\x01\x00\x02\x00"), -Section(".eh_frame_hdr", 0x78C, "\x01\x1b\x03\x3b\x38\x00\x00\x00\x06\x00\x00\x00\xb4\xfe\xff\xff\x50\x00\x00\x00\x04\xff\xff\xff\x64\x00\x00\x00\x34\xff\xff\xff\x78\x00\x00\x00\x74\xff\xff\xff\x8c\x00\x00\x00\xc4\xff\xff\xff\xb0\x00\x00\x00\xc8\xff\xff\xff\xd8\x00\x00\x00"), -Section(".eh_frame", 0x7C8, "\x10\x00\x00\x00\x00\x00\x00\x00\x01\x7a\x52\x00\x04\x78\x1e\x01\x1b\x0c\x1f\x00\x10\x00\x00\x00\x18\x00\x00\x00\x5c\xfe\xff\xff\x34\x00\x00\x00\x00\x41\x07\x1e\x10\x00\x00\x00\x2c\x00\x00\x00\x98\xfe\xff\xff\x30\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x40\x00\x00\x00\xb4\xfe\xff\xff\x3c\x00\x00\x00\x00\x00\x00\x00\x20\x00\x00\x00\x54\x00\x00\x00\xe0\xfe\xff\xff\x48\x00\x00\x00\x00\x41\x0e\x20\x9d\x04\x9e\x03\x42\x93\x02\x4e\xde\xdd\xd3\x0e\x00\x00\x00\x00\x10\x00\x00\x00\x78\x00\x00\x00\x0c\xff\xff\xff\x04\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x01\x7a\x52\x00\x01\x7c\x1e\x01\x1b\x0c\x1f\x00\x10\x00\x00\x00\x18\x00\x00\x00\xe8\xfe\xff\xff\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".fini_array", 0x10DC0, "\x00\x07\x00\x00\x00\x00\x00\x00"), -Section(".dynamic", 0x10DC8, "\x01\x00\x00\x00\x00\x00\x00\x00\x28\x00\x00\x00\x00\x00\x00\x00\x0c\x00\x00\x00\x00\x00\x00\x00\xb0\x05\x00\x00\x00\x00\x00\x00\x0d\x00\x00\x00\x00\x00\x00\x00\x74\x07\x00\x00\x00\x00\x00\x00\x19\x00\x00\x00\x00\x00\x00\x00\xb8\x0d\x01\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x1a\x00\x00\x00\x00\x00\x00\x00\xc0\x0d\x01\x00\x00\x00\x00\x00\x1c\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\xf5\xfe\xff\x6f\x00\x00\x00\x00\x98\x02\x00\x00\x00\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x90\x03\x00\x00\x00\x00\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\xb8\x02\x00\x00\x00\x00\x00\x00\x0a\x00\x00\x00\x00\x00\x00\x00\x8d\x00\x00\x00\x00\x00\x00\x00\x0b\x00\x00\x00\x00\x00\x00\x00\x18\x00\x00\x00\x00\x00\x00\x00\x15\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\xe8\x0f\x01\x00\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x60\x00\x00\x00\x00\x00\x00\x00\x14\x00\x00\x00\x00\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x17\x00\x00\x00\x00\x00\x00\x00\x50\x05\x00\x00\x00\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x60\x04\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\xf0\x00\x00\x00\x00\x00\x00\x00\x09\x00\x00\x00\x00\x00\x00\x00\x18\x00\x00\x00\x00\x00\x00\x00\xfb\xff\xff\x6f\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\xfe\xff\xff\x6f\x00\x00\x00\x00\x30\x04\x00\x00\x00\x00\x00\x00\xff\xff\xff\x6f\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\xf0\xff\xff\x6f\x00\x00\x00\x00\x1e\x04\x00\x00\x00\x00\x00\x00\xf9\xff\xff\x6f\x00\x00\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".init_array", 0x10DB8, "\x50\x07\x00\x00\x00\x00\x00\x00"), -Section(".got", 0x10FA8, "\xc8\x0d\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x38\x10\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x34\x10\x01\x00\x00\x00\x00\x00\x54\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".got.plt", 0x10FE8, "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xd0\x05\x00\x00\x00\x00\x00\x00\xd0\x05\x00\x00\x00\x00\x00\x00\xd0\x05\x00\x00\x00\x00\x00\x00\xd0\x05\x00\x00\x00\x00\x00\x00"), -Section(".data", 0x11020, "\x00\x00\x00\x00\x00\x00\x00\x00\x28\x10\x01\x00\x00\x00\x00\x00")]), -Memmap([Annotation(Region(0x0,0x87B), Attr("segment","02 0 2172")), -Annotation(Region(0x640,0x673), Attr("symbol","\"_start\"")), -Annotation(Region(0x0,0x102), Attr("section","\".shstrtab\"")), -Annotation(Region(0x0,0x244), Attr("section","\".strtab\"")), -Annotation(Region(0x0,0x46), Attr("section","\".comment\"")), -Annotation(Region(0x238,0x252), Attr("section","\".interp\"")), -Annotation(Region(0x254,0x277), Attr("section","\".note.gnu.build-id\"")), -Annotation(Region(0x278,0x297), Attr("section","\".note.ABI-tag\"")), -Annotation(Region(0x298,0x2B3), Attr("section","\".gnu.hash\"")), -Annotation(Region(0x2B8,0x38F), Attr("section","\".dynsym\"")), -Annotation(Region(0x390,0x41C), Attr("section","\".dynstr\"")), -Annotation(Region(0x41E,0x42F), Attr("section","\".gnu.version\"")), -Annotation(Region(0x430,0x45F), Attr("section","\".gnu.version_r\"")), -Annotation(Region(0x460,0x54F), Attr("section","\".rela.dyn\"")), -Annotation(Region(0x550,0x5AF), Attr("section","\".rela.plt\"")), -Annotation(Region(0x5B0,0x5C7), Attr("section","\".init\"")), -Annotation(Region(0x5D0,0x62F), Attr("section","\".plt\"")), -Annotation(Region(0x5B0,0x5C7), Attr("code-region","()")), -Annotation(Region(0x5D0,0x62F), Attr("code-region","()")), -Annotation(Region(0x640,0x673), Attr("symbol-info","_start 0x640 52")), -Annotation(Region(0x674,0x687), Attr("symbol","\"call_weak_fn\"")), -Annotation(Region(0x674,0x687), Attr("symbol-info","call_weak_fn 0x674 20")), -Annotation(Region(0x640,0x773), Attr("section","\".text\"")), -Annotation(Region(0x640,0x773), Attr("code-region","()")), -Annotation(Region(0x754,0x773), Attr("symbol","\"main\"")), -Annotation(Region(0x754,0x773), Attr("symbol-info","main 0x754 32")), -Annotation(Region(0x774,0x787), Attr("section","\".fini\"")), -Annotation(Region(0x774,0x787), Attr("code-region","()")), -Annotation(Region(0x788,0x78B), Attr("section","\".rodata\"")), -Annotation(Region(0x78C,0x7C7), Attr("section","\".eh_frame_hdr\"")), -Annotation(Region(0x7C8,0x87B), Attr("section","\".eh_frame\"")), -Annotation(Region(0x10DB8,0x1102F), Attr("segment","03 0x10DB8 648")), -Annotation(Region(0x10DC0,0x10DC7), Attr("section","\".fini_array\"")), -Annotation(Region(0x10DC8,0x10FA7), Attr("section","\".dynamic\"")), -Annotation(Region(0x10DB8,0x10DBF), Attr("section","\".init_array\"")), -Annotation(Region(0x10FA8,0x10FE7), Attr("section","\".got\"")), -Annotation(Region(0x10FE8,0x1101F), Attr("section","\".got.plt\"")), -Annotation(Region(0x11020,0x1102F), Attr("section","\".data\""))]), -Program(Tid(1_347, "%00000543"), Attrs([]), - Subs([Sub(Tid(1_297, "@__cxa_finalize"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x600"), -Attr("stub","()")]), "__cxa_finalize", Args([Arg(Tid(1_348, "%00000544"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("__cxa_finalize_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(818, "@__cxa_finalize"), - Attrs([Attr("address","0x600")]), Phis([]), -Defs([Def(Tid(1_066, "%0000042a"), Attrs([Attr("address","0x600"), -Attr("insn","adrp x16, #69632")]), Var("R16",Imm(64)), Int(69632,64)), -Def(Tid(1_073, "%00000431"), Attrs([Attr("address","0x604"), -Attr("insn","ldr x17, [x16, #0x8]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(1_079, "%00000437"), Attrs([Attr("address","0x608"), -Attr("insn","add x16, x16, #0x8")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(8,64)))]), Jmps([Call(Tid(1_084, "%0000043c"), - Attrs([Attr("address","0x60C"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), -Sub(Tid(1_298, "@__do_global_dtors_aux"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x700")]), - "__do_global_dtors_aux", Args([Arg(Tid(1_349, "%00000545"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("__do_global_dtors_aux_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(622, "@__do_global_dtors_aux"), - Attrs([Attr("address","0x700")]), Phis([]), Defs([Def(Tid(626, "%00000272"), - Attrs([Attr("address","0x700"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("#3",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(18446744073709551584,64))), -Def(Tid(632, "%00000278"), Attrs([Attr("address","0x700"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("#3",Imm(64)),Var("R29",Imm(64)),LittleEndian(),64)), -Def(Tid(638, "%0000027e"), Attrs([Attr("address","0x700"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("#3",Imm(64)),Int(8,64)),Var("R30",Imm(64)),LittleEndian(),64)), -Def(Tid(642, "%00000282"), Attrs([Attr("address","0x700"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("R31",Imm(64)), -Var("#3",Imm(64))), Def(Tid(648, "%00000288"), - Attrs([Attr("address","0x704"), Attr("insn","mov x29, sp")]), - Var("R29",Imm(64)), Var("R31",Imm(64))), Def(Tid(656, "%00000290"), - Attrs([Attr("address","0x708"), Attr("insn","str x19, [sp, #0x10]")]), - Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(16,64)),Var("R19",Imm(64)),LittleEndian(),64)), -Def(Tid(661, "%00000295"), Attrs([Attr("address","0x70C"), -Attr("insn","adrp x19, #69632")]), Var("R19",Imm(64)), Int(69632,64)), -Def(Tid(668, "%0000029c"), Attrs([Attr("address","0x710"), -Attr("insn","ldrb w0, [x19, #0x30]")]), Var("R0",Imm(64)), -UNSIGNED(64,Load(Var("mem",Mem(64,8)),PLUS(Var("R19",Imm(64)),Int(48,64)),LittleEndian(),8)))]), -Jmps([Goto(Tid(675, "%000002a3"), Attrs([Attr("address","0x714"), -Attr("insn","cbnz w0, #0x28")]), - NEQ(Extract(31,0,Var("R0",Imm(64))),Int(0,32)), -Direct(Tid(673, "%000002a1"))), Goto(Tid(1_337, "%00000539"), Attrs([]), - Int(1,1), Direct(Tid(763, "%000002fb")))])), Blk(Tid(763, "%000002fb"), - Attrs([Attr("address","0x718")]), Phis([]), Defs([Def(Tid(766, "%000002fe"), - Attrs([Attr("address","0x718"), Attr("insn","adrp x0, #65536")]), - Var("R0",Imm(64)), Int(65536,64)), Def(Tid(773, "%00000305"), - Attrs([Attr("address","0x71C"), Attr("insn","ldr x0, [x0, #0xfb8]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(4024,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(779, "%0000030b"), Attrs([Attr("address","0x720"), -Attr("insn","cbz x0, #0x10")]), EQ(Var("R0",Imm(64)),Int(0,64)), -Direct(Tid(777, "%00000309"))), Goto(Tid(1_338, "%0000053a"), Attrs([]), - Int(1,1), Direct(Tid(802, "%00000322")))])), Blk(Tid(802, "%00000322"), - Attrs([Attr("address","0x724")]), Phis([]), Defs([Def(Tid(805, "%00000325"), - Attrs([Attr("address","0x724"), Attr("insn","adrp x0, #69632")]), - Var("R0",Imm(64)), Int(69632,64)), Def(Tid(812, "%0000032c"), - Attrs([Attr("address","0x728"), Attr("insn","ldr x0, [x0, #0x28]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(40,64)),LittleEndian(),64)), -Def(Tid(817, "%00000331"), Attrs([Attr("address","0x72C"), -Attr("insn","bl #-0x12c")]), Var("R30",Imm(64)), Int(1840,64))]), -Jmps([Call(Tid(820, "%00000334"), Attrs([Attr("address","0x72C"), -Attr("insn","bl #-0x12c")]), Int(1,1), -(Direct(Tid(1_297, "@__cxa_finalize")),Direct(Tid(777, "%00000309"))))])), -Blk(Tid(777, "%00000309"), Attrs([Attr("address","0x730")]), Phis([]), -Defs([Def(Tid(785, "%00000311"), Attrs([Attr("address","0x730"), -Attr("insn","bl #-0xa0")]), Var("R30",Imm(64)), Int(1844,64))]), -Jmps([Call(Tid(787, "%00000313"), Attrs([Attr("address","0x730"), -Attr("insn","bl #-0xa0")]), Int(1,1), -(Direct(Tid(1_311, "@deregister_tm_clones")),Direct(Tid(789, "%00000315"))))])), -Blk(Tid(789, "%00000315"), Attrs([Attr("address","0x734")]), Phis([]), -Defs([Def(Tid(792, "%00000318"), Attrs([Attr("address","0x734"), -Attr("insn","mov w0, #0x1")]), Var("R0",Imm(64)), Int(1,64)), -Def(Tid(800, "%00000320"), Attrs([Attr("address","0x738"), -Attr("insn","strb w0, [x19, #0x30]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R19",Imm(64)),Int(48,64)),Extract(7,0,Var("R0",Imm(64))),LittleEndian(),8))]), -Jmps([Goto(Tid(1_339, "%0000053b"), Attrs([]), Int(1,1), -Direct(Tid(673, "%000002a1")))])), Blk(Tid(673, "%000002a1"), - Attrs([Attr("address","0x73C")]), Phis([]), Defs([Def(Tid(683, "%000002ab"), - Attrs([Attr("address","0x73C"), Attr("insn","ldr x19, [sp, #0x10]")]), - Var("R19",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(16,64)),LittleEndian(),64)), -Def(Tid(690, "%000002b2"), Attrs([Attr("address","0x740"), -Attr("insn","ldp x29, x30, [sp], #0x20")]), Var("R29",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(695, "%000002b7"), Attrs([Attr("address","0x740"), -Attr("insn","ldp x29, x30, [sp], #0x20")]), Var("R30",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(699, "%000002bb"), Attrs([Attr("address","0x740"), -Attr("insn","ldp x29, x30, [sp], #0x20")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(32,64)))]), Jmps([Call(Tid(704, "%000002c0"), - Attrs([Attr("address","0x744"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), Sub(Tid(1_302, "@__libc_start_main"), - Attrs([Attr("c.proto","signed (*)(signed (*)(signed , char** , char** );* main, signed , char** , \nvoid* auxv)"), -Attr("address","0x5F0"), Attr("stub","()")]), "__libc_start_main", - Args([Arg(Tid(1_350, "%00000546"), - Attrs([Attr("c.layout","**[ : 64]"), -Attr("c.data","Top:u64 ptr ptr"), -Attr("c.type","signed (*)(signed , char** , char** );*")]), - Var("__libc_start_main_main",Imm(64)), Var("R0",Imm(64)), In()), -Arg(Tid(1_351, "%00000547"), Attrs([Attr("c.layout","[signed : 32]"), -Attr("c.data","Top:u32"), Attr("c.type","signed")]), - Var("__libc_start_main_arg2",Imm(32)), LOW(32,Var("R1",Imm(64))), In()), -Arg(Tid(1_352, "%00000548"), Attrs([Attr("c.layout","**[char : 8]"), -Attr("c.data","Top:u8 ptr ptr"), Attr("c.type","char**")]), - Var("__libc_start_main_arg3",Imm(64)), Var("R2",Imm(64)), Both()), -Arg(Tid(1_353, "%00000549"), Attrs([Attr("c.layout","*[ : 8]"), -Attr("c.data","{} ptr"), Attr("c.type","void*")]), - Var("__libc_start_main_auxv",Imm(64)), Var("R3",Imm(64)), Both()), -Arg(Tid(1_354, "%0000054a"), Attrs([Attr("c.layout","[signed : 32]"), -Attr("c.data","Top:u32"), Attr("c.type","signed")]), - Var("__libc_start_main_result",Imm(32)), LOW(32,Var("R0",Imm(64))), -Out())]), Blks([Blk(Tid(455, "@__libc_start_main"), - Attrs([Attr("address","0x5F0")]), Phis([]), -Defs([Def(Tid(1_044, "%00000414"), Attrs([Attr("address","0x5F0"), -Attr("insn","adrp x16, #69632")]), Var("R16",Imm(64)), Int(69632,64)), -Def(Tid(1_051, "%0000041b"), Attrs([Attr("address","0x5F4"), -Attr("insn","ldr x17, [x16]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R16",Imm(64)),LittleEndian(),64)), -Def(Tid(1_057, "%00000421"), Attrs([Attr("address","0x5F8"), -Attr("insn","add x16, x16, #0x0")]), Var("R16",Imm(64)), -Var("R16",Imm(64)))]), Jmps([Call(Tid(1_062, "%00000426"), - Attrs([Attr("address","0x5FC"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), Sub(Tid(1_303, "@_fini"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x774")]), - "_fini", Args([Arg(Tid(1_355, "%0000054b"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("_fini_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(31, "@_fini"), - Attrs([Attr("address","0x774")]), Phis([]), Defs([Def(Tid(37, "%00000025"), - Attrs([Attr("address","0x778"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("#0",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(18446744073709551600,64))), -Def(Tid(43, "%0000002b"), Attrs([Attr("address","0x778"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("#0",Imm(64)),Var("R29",Imm(64)),LittleEndian(),64)), -Def(Tid(49, "%00000031"), Attrs([Attr("address","0x778"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("#0",Imm(64)),Int(8,64)),Var("R30",Imm(64)),LittleEndian(),64)), -Def(Tid(53, "%00000035"), Attrs([Attr("address","0x778"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("R31",Imm(64)), -Var("#0",Imm(64))), Def(Tid(59, "%0000003b"), Attrs([Attr("address","0x77C"), -Attr("insn","mov x29, sp")]), Var("R29",Imm(64)), Var("R31",Imm(64))), -Def(Tid(66, "%00000042"), Attrs([Attr("address","0x780"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R29",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(71, "%00000047"), Attrs([Attr("address","0x780"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R30",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(75, "%0000004b"), Attrs([Attr("address","0x780"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(16,64)))]), Jmps([Call(Tid(80, "%00000050"), - Attrs([Attr("address","0x784"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), Sub(Tid(1_304, "@_init"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x5B0")]), - "_init", Args([Arg(Tid(1_356, "%0000054c"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("_init_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(1_156, "@_init"), - Attrs([Attr("address","0x5B0")]), Phis([]), -Defs([Def(Tid(1_162, "%0000048a"), Attrs([Attr("address","0x5B4"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("#5",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(18446744073709551600,64))), -Def(Tid(1_168, "%00000490"), Attrs([Attr("address","0x5B4"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("#5",Imm(64)),Var("R29",Imm(64)),LittleEndian(),64)), -Def(Tid(1_174, "%00000496"), Attrs([Attr("address","0x5B4"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("#5",Imm(64)),Int(8,64)),Var("R30",Imm(64)),LittleEndian(),64)), -Def(Tid(1_178, "%0000049a"), Attrs([Attr("address","0x5B4"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("R31",Imm(64)), -Var("#5",Imm(64))), Def(Tid(1_184, "%000004a0"), - Attrs([Attr("address","0x5B8"), Attr("insn","mov x29, sp")]), - Var("R29",Imm(64)), Var("R31",Imm(64))), Def(Tid(1_189, "%000004a5"), - Attrs([Attr("address","0x5BC"), Attr("insn","bl #0xb8")]), - Var("R30",Imm(64)), Int(1472,64))]), Jmps([Call(Tid(1_191, "%000004a7"), - Attrs([Attr("address","0x5BC"), Attr("insn","bl #0xb8")]), Int(1,1), -(Direct(Tid(1_309, "@call_weak_fn")),Direct(Tid(1_193, "%000004a9"))))])), -Blk(Tid(1_193, "%000004a9"), Attrs([Attr("address","0x5C0")]), Phis([]), -Defs([Def(Tid(1_198, "%000004ae"), Attrs([Attr("address","0x5C0"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R29",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(1_203, "%000004b3"), Attrs([Attr("address","0x5C0"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R30",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(1_207, "%000004b7"), Attrs([Attr("address","0x5C0"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(16,64)))]), Jmps([Call(Tid(1_212, "%000004bc"), - Attrs([Attr("address","0x5C4"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), Sub(Tid(1_305, "@_start"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x640"), -Attr("entry-point","()")]), "_start", Args([Arg(Tid(1_357, "%0000054d"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("_start_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(392, "@_start"), - Attrs([Attr("address","0x640")]), Phis([]), Defs([Def(Tid(397, "%0000018d"), - Attrs([Attr("address","0x644"), Attr("insn","mov x29, #0x0")]), - Var("R29",Imm(64)), Int(0,64)), Def(Tid(402, "%00000192"), - Attrs([Attr("address","0x648"), Attr("insn","mov x30, #0x0")]), - Var("R30",Imm(64)), Int(0,64)), Def(Tid(408, "%00000198"), - Attrs([Attr("address","0x64C"), Attr("insn","mov x5, x0")]), - Var("R5",Imm(64)), Var("R0",Imm(64))), Def(Tid(415, "%0000019f"), - Attrs([Attr("address","0x650"), Attr("insn","ldr x1, [sp]")]), - Var("R1",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(421, "%000001a5"), Attrs([Attr("address","0x654"), -Attr("insn","add x2, sp, #0x8")]), Var("R2",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(8,64))), Def(Tid(427, "%000001ab"), - Attrs([Attr("address","0x658"), Attr("insn","mov x6, sp")]), - Var("R6",Imm(64)), Var("R31",Imm(64))), Def(Tid(432, "%000001b0"), - Attrs([Attr("address","0x65C"), Attr("insn","adrp x0, #65536")]), - Var("R0",Imm(64)), Int(65536,64)), Def(Tid(439, "%000001b7"), - Attrs([Attr("address","0x660"), Attr("insn","ldr x0, [x0, #0xfd8]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(4056,64)),LittleEndian(),64)), -Def(Tid(444, "%000001bc"), Attrs([Attr("address","0x664"), -Attr("insn","mov x3, #0x0")]), Var("R3",Imm(64)), Int(0,64)), -Def(Tid(449, "%000001c1"), Attrs([Attr("address","0x668"), -Attr("insn","mov x4, #0x0")]), Var("R4",Imm(64)), Int(0,64)), -Def(Tid(454, "%000001c6"), Attrs([Attr("address","0x66C"), -Attr("insn","bl #-0x7c")]), Var("R30",Imm(64)), Int(1648,64))]), -Jmps([Call(Tid(457, "%000001c9"), Attrs([Attr("address","0x66C"), -Attr("insn","bl #-0x7c")]), Int(1,1), -(Direct(Tid(1_302, "@__libc_start_main")),Direct(Tid(459, "%000001cb"))))])), -Blk(Tid(459, "%000001cb"), Attrs([Attr("address","0x670")]), Phis([]), -Defs([Def(Tid(462, "%000001ce"), Attrs([Attr("address","0x670"), -Attr("insn","bl #-0x50")]), Var("R30",Imm(64)), Int(1652,64))]), -Jmps([Call(Tid(465, "%000001d1"), Attrs([Attr("address","0x670"), -Attr("insn","bl #-0x50")]), Int(1,1), -(Direct(Tid(1_308, "@abort")),Direct(Tid(1_340, "%0000053c"))))])), -Blk(Tid(1_340, "%0000053c"), Attrs([]), Phis([]), Defs([]), -Jmps([Call(Tid(1_341, "%0000053d"), Attrs([]), Int(1,1), -(Direct(Tid(1_309, "@call_weak_fn")),))]))])), Sub(Tid(1_308, "@abort"), - Attrs([Attr("noreturn","()"), Attr("c.proto","void (*)(void)"), -Attr("address","0x620"), Attr("stub","()")]), "abort", Args([]), -Blks([Blk(Tid(463, "@abort"), Attrs([Attr("address","0x620")]), Phis([]), -Defs([Def(Tid(1_110, "%00000456"), Attrs([Attr("address","0x620"), -Attr("insn","adrp x16, #69632")]), Var("R16",Imm(64)), Int(69632,64)), -Def(Tid(1_117, "%0000045d"), Attrs([Attr("address","0x624"), -Attr("insn","ldr x17, [x16, #0x18]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(24,64)),LittleEndian(),64)), -Def(Tid(1_123, "%00000463"), Attrs([Attr("address","0x628"), -Attr("insn","add x16, x16, #0x18")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(24,64)))]), Jmps([Call(Tid(1_128, "%00000468"), - Attrs([Attr("address","0x62C"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), Sub(Tid(1_309, "@call_weak_fn"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x674")]), - "call_weak_fn", Args([Arg(Tid(1_358, "%0000054e"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("call_weak_fn_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(467, "@call_weak_fn"), - Attrs([Attr("address","0x674")]), Phis([]), Defs([Def(Tid(470, "%000001d6"), - Attrs([Attr("address","0x674"), Attr("insn","adrp x0, #65536")]), - Var("R0",Imm(64)), Int(65536,64)), Def(Tid(477, "%000001dd"), - Attrs([Attr("address","0x678"), Attr("insn","ldr x0, [x0, #0xfc8]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(4040,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(483, "%000001e3"), Attrs([Attr("address","0x67C"), -Attr("insn","cbz x0, #0x8")]), EQ(Var("R0",Imm(64)),Int(0,64)), -Direct(Tid(481, "%000001e1"))), Goto(Tid(1_342, "%0000053e"), Attrs([]), - Int(1,1), Direct(Tid(882, "%00000372")))])), Blk(Tid(481, "%000001e1"), - Attrs([Attr("address","0x684")]), Phis([]), Defs([]), -Jmps([Call(Tid(489, "%000001e9"), Attrs([Attr("address","0x684"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))])), -Blk(Tid(882, "%00000372"), Attrs([Attr("address","0x680")]), Phis([]), -Defs([]), Jmps([Goto(Tid(885, "%00000375"), Attrs([Attr("address","0x680"), -Attr("insn","b #-0x70")]), Int(1,1), Direct(Tid(883, "@__gmon_start__")))])), -Blk(Tid(883, "@__gmon_start__"), Attrs([Attr("address","0x610")]), Phis([]), -Defs([Def(Tid(1_088, "%00000440"), Attrs([Attr("address","0x610"), -Attr("insn","adrp x16, #69632")]), Var("R16",Imm(64)), Int(69632,64)), -Def(Tid(1_095, "%00000447"), Attrs([Attr("address","0x614"), -Attr("insn","ldr x17, [x16, #0x10]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(16,64)),LittleEndian(),64)), -Def(Tid(1_101, "%0000044d"), Attrs([Attr("address","0x618"), -Attr("insn","add x16, x16, #0x10")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(16,64)))]), Jmps([Call(Tid(1_106, "%00000452"), - Attrs([Attr("address","0x61C"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), -Sub(Tid(1_311, "@deregister_tm_clones"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x690")]), - "deregister_tm_clones", Args([Arg(Tid(1_359, "%0000054f"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("deregister_tm_clones_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(495, "@deregister_tm_clones"), - Attrs([Attr("address","0x690")]), Phis([]), Defs([Def(Tid(498, "%000001f2"), - Attrs([Attr("address","0x690"), Attr("insn","adrp x0, #69632")]), - Var("R0",Imm(64)), Int(69632,64)), Def(Tid(504, "%000001f8"), - Attrs([Attr("address","0x694"), Attr("insn","add x0, x0, #0x30")]), - Var("R0",Imm(64)), PLUS(Var("R0",Imm(64)),Int(48,64))), -Def(Tid(509, "%000001fd"), Attrs([Attr("address","0x698"), -Attr("insn","adrp x1, #69632")]), Var("R1",Imm(64)), Int(69632,64)), -Def(Tid(515, "%00000203"), Attrs([Attr("address","0x69C"), -Attr("insn","add x1, x1, #0x30")]), Var("R1",Imm(64)), -PLUS(Var("R1",Imm(64)),Int(48,64))), Def(Tid(521, "%00000209"), - Attrs([Attr("address","0x6A0"), Attr("insn","cmp x1, x0")]), - Var("#1",Imm(64)), NOT(Var("R0",Imm(64)))), Def(Tid(526, "%0000020e"), - Attrs([Attr("address","0x6A0"), Attr("insn","cmp x1, x0")]), - Var("#2",Imm(64)), PLUS(Var("R1",Imm(64)),NOT(Var("R0",Imm(64))))), -Def(Tid(532, "%00000214"), Attrs([Attr("address","0x6A0"), -Attr("insn","cmp x1, x0")]), Var("VF",Imm(1)), -NEQ(SIGNED(65,PLUS(Var("#2",Imm(64)),Int(1,64))),PLUS(PLUS(SIGNED(65,Var("R1",Imm(64))),SIGNED(65,Var("#1",Imm(64)))),Int(1,65)))), -Def(Tid(538, "%0000021a"), Attrs([Attr("address","0x6A0"), -Attr("insn","cmp x1, x0")]), Var("CF",Imm(1)), -NEQ(UNSIGNED(65,PLUS(Var("#2",Imm(64)),Int(1,64))),PLUS(PLUS(UNSIGNED(65,Var("R1",Imm(64))),UNSIGNED(65,Var("#1",Imm(64)))),Int(1,65)))), -Def(Tid(542, "%0000021e"), Attrs([Attr("address","0x6A0"), -Attr("insn","cmp x1, x0")]), Var("ZF",Imm(1)), -EQ(PLUS(Var("#2",Imm(64)),Int(1,64)),Int(0,64))), Def(Tid(546, "%00000222"), - Attrs([Attr("address","0x6A0"), Attr("insn","cmp x1, x0")]), - Var("NF",Imm(1)), Extract(63,63,PLUS(Var("#2",Imm(64)),Int(1,64))))]), -Jmps([Goto(Tid(552, "%00000228"), Attrs([Attr("address","0x6A4"), -Attr("insn","b.eq #0x18")]), EQ(Var("ZF",Imm(1)),Int(1,1)), -Direct(Tid(550, "%00000226"))), Goto(Tid(1_343, "%0000053f"), Attrs([]), - Int(1,1), Direct(Tid(852, "%00000354")))])), Blk(Tid(852, "%00000354"), - Attrs([Attr("address","0x6A8")]), Phis([]), Defs([Def(Tid(855, "%00000357"), - Attrs([Attr("address","0x6A8"), Attr("insn","adrp x1, #65536")]), - Var("R1",Imm(64)), Int(65536,64)), Def(Tid(862, "%0000035e"), - Attrs([Attr("address","0x6AC"), Attr("insn","ldr x1, [x1, #0xfb0]")]), - Var("R1",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R1",Imm(64)),Int(4016,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(867, "%00000363"), Attrs([Attr("address","0x6B0"), -Attr("insn","cbz x1, #0xc")]), EQ(Var("R1",Imm(64)),Int(0,64)), -Direct(Tid(550, "%00000226"))), Goto(Tid(1_344, "%00000540"), Attrs([]), - Int(1,1), Direct(Tid(871, "%00000367")))])), Blk(Tid(550, "%00000226"), - Attrs([Attr("address","0x6BC")]), Phis([]), Defs([]), -Jmps([Call(Tid(558, "%0000022e"), Attrs([Attr("address","0x6BC"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))])), -Blk(Tid(871, "%00000367"), Attrs([Attr("address","0x6B4")]), Phis([]), -Defs([Def(Tid(875, "%0000036b"), Attrs([Attr("address","0x6B4"), -Attr("insn","mov x16, x1")]), Var("R16",Imm(64)), Var("R1",Imm(64)))]), -Jmps([Call(Tid(880, "%00000370"), Attrs([Attr("address","0x6B8"), -Attr("insn","br x16")]), Int(1,1), (Indirect(Var("R16",Imm(64))),))]))])), -Sub(Tid(1_314, "@frame_dummy"), Attrs([Attr("c.proto","signed (*)(void)"), -Attr("address","0x750")]), "frame_dummy", Args([Arg(Tid(1_360, "%00000550"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("frame_dummy_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(710, "@frame_dummy"), - Attrs([Attr("address","0x750")]), Phis([]), Defs([]), -Jmps([Call(Tid(712, "%000002c8"), Attrs([Attr("address","0x750"), -Attr("insn","b #-0x90")]), Int(1,1), -(Direct(Tid(1_316, "@register_tm_clones")),))]))])), Sub(Tid(1_315, "@main"), - Attrs([Attr("c.proto","signed (*)(signed argc, const char** argv)"), -Attr("address","0x754")]), "main", Args([Arg(Tid(1_361, "%00000551"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("main_argc",Imm(32)), -LOW(32,Var("R0",Imm(64))), In()), Arg(Tid(1_362, "%00000552"), - Attrs([Attr("c.layout","**[char : 8]"), Attr("c.data","Top:u8 ptr ptr"), -Attr("c.type"," const char**")]), Var("main_argv",Imm(64)), -Var("R1",Imm(64)), Both()), Arg(Tid(1_363, "%00000553"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("main_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(714, "@main"), - Attrs([Attr("address","0x754")]), Phis([]), Defs([Def(Tid(717, "%000002cd"), - Attrs([Attr("address","0x754"), Attr("insn","adrp x8, #65536")]), - Var("R8",Imm(64)), Int(65536,64)), Def(Tid(724, "%000002d4"), - Attrs([Attr("address","0x758"), Attr("insn","ldr x8, [x8, #0xfd0]")]), - Var("R8",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R8",Imm(64)),Int(4048,64)),LittleEndian(),64)), -Def(Tid(731, "%000002db"), Attrs([Attr("address","0x75C"), -Attr("insn","ldr w8, [x8]")]), Var("R8",Imm(64)), -UNSIGNED(64,Load(Var("mem",Mem(64,8)),Var("R8",Imm(64)),LittleEndian(),32))), -Def(Tid(736, "%000002e0"), Attrs([Attr("address","0x760"), -Attr("insn","adrp x9, #65536")]), Var("R9",Imm(64)), Int(65536,64)), -Def(Tid(743, "%000002e7"), Attrs([Attr("address","0x764"), -Attr("insn","ldr x9, [x9, #0xfc0]")]), Var("R9",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R9",Imm(64)),Int(4032,64)),LittleEndian(),64)), -Def(Tid(751, "%000002ef"), Attrs([Attr("address","0x768"), -Attr("insn","str w8, [x9]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("R9",Imm(64)),Extract(31,0,Var("R8",Imm(64))),LittleEndian(),32)), -Def(Tid(756, "%000002f4"), Attrs([Attr("address","0x76C"), -Attr("insn","mov w0, wzr")]), Var("R0",Imm(64)), Int(0,64))]), -Jmps([Call(Tid(761, "%000002f9"), Attrs([Attr("address","0x770"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))]))])), -Sub(Tid(1_316, "@register_tm_clones"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x6C0")]), - "register_tm_clones", Args([Arg(Tid(1_364, "%00000554"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("register_tm_clones_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(560, "@register_tm_clones"), Attrs([Attr("address","0x6C0")]), - Phis([]), Defs([Def(Tid(563, "%00000233"), Attrs([Attr("address","0x6C0"), -Attr("insn","adrp x0, #69632")]), Var("R0",Imm(64)), Int(69632,64)), -Def(Tid(569, "%00000239"), Attrs([Attr("address","0x6C4"), -Attr("insn","add x0, x0, #0x30")]), Var("R0",Imm(64)), -PLUS(Var("R0",Imm(64)),Int(48,64))), Def(Tid(574, "%0000023e"), - Attrs([Attr("address","0x6C8"), Attr("insn","adrp x1, #69632")]), - Var("R1",Imm(64)), Int(69632,64)), Def(Tid(580, "%00000244"), - Attrs([Attr("address","0x6CC"), Attr("insn","add x1, x1, #0x30")]), - Var("R1",Imm(64)), PLUS(Var("R1",Imm(64)),Int(48,64))), -Def(Tid(587, "%0000024b"), Attrs([Attr("address","0x6D0"), -Attr("insn","sub x1, x1, x0")]), Var("R1",Imm(64)), -PLUS(PLUS(Var("R1",Imm(64)),NOT(Var("R0",Imm(64)))),Int(1,64))), -Def(Tid(593, "%00000251"), Attrs([Attr("address","0x6D4"), -Attr("insn","lsr x2, x1, #63")]), Var("R2",Imm(64)), -Concat(Int(0,63),Extract(63,63,Var("R1",Imm(64))))), -Def(Tid(600, "%00000258"), Attrs([Attr("address","0x6D8"), -Attr("insn","add x1, x2, x1, asr #3")]), Var("R1",Imm(64)), -PLUS(Var("R2",Imm(64)),ARSHIFT(Var("R1",Imm(64)),Int(3,3)))), -Def(Tid(606, "%0000025e"), Attrs([Attr("address","0x6DC"), -Attr("insn","asr x1, x1, #1")]), Var("R1",Imm(64)), -SIGNED(64,Extract(63,1,Var("R1",Imm(64)))))]), -Jmps([Goto(Tid(612, "%00000264"), Attrs([Attr("address","0x6E0"), -Attr("insn","cbz x1, #0x18")]), EQ(Var("R1",Imm(64)),Int(0,64)), -Direct(Tid(610, "%00000262"))), Goto(Tid(1_345, "%00000541"), Attrs([]), - Int(1,1), Direct(Tid(822, "%00000336")))])), Blk(Tid(822, "%00000336"), - Attrs([Attr("address","0x6E4")]), Phis([]), Defs([Def(Tid(825, "%00000339"), - Attrs([Attr("address","0x6E4"), Attr("insn","adrp x2, #65536")]), - Var("R2",Imm(64)), Int(65536,64)), Def(Tid(832, "%00000340"), - Attrs([Attr("address","0x6E8"), Attr("insn","ldr x2, [x2, #0xfe0]")]), - Var("R2",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R2",Imm(64)),Int(4064,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(837, "%00000345"), Attrs([Attr("address","0x6EC"), -Attr("insn","cbz x2, #0xc")]), EQ(Var("R2",Imm(64)),Int(0,64)), -Direct(Tid(610, "%00000262"))), Goto(Tid(1_346, "%00000542"), Attrs([]), - Int(1,1), Direct(Tid(841, "%00000349")))])), Blk(Tid(610, "%00000262"), - Attrs([Attr("address","0x6F8")]), Phis([]), Defs([]), -Jmps([Call(Tid(618, "%0000026a"), Attrs([Attr("address","0x6F8"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))])), -Blk(Tid(841, "%00000349"), Attrs([Attr("address","0x6F0")]), Phis([]), -Defs([Def(Tid(845, "%0000034d"), Attrs([Attr("address","0x6F0"), -Attr("insn","mov x16, x2")]), Var("R16",Imm(64)), Var("R2",Imm(64)))]), -Jmps([Call(Tid(850, "%00000352"), Attrs([Attr("address","0x6F4"), -Attr("insn","br x16")]), Int(1,1), -(Indirect(Var("R16",Imm(64))),))]))]))]))) \ No newline at end of file diff --git a/src/test/correct/basicassign_gamma0/clang_pic/basicassign_gamma0.bir b/src/test/correct/basicassign_gamma0/clang_pic/basicassign_gamma0.bir deleted file mode 100644 index 5f7847d92..000000000 --- a/src/test/correct/basicassign_gamma0/clang_pic/basicassign_gamma0.bir +++ /dev/null @@ -1,230 +0,0 @@ -00000543: program -00000511: sub __cxa_finalize(__cxa_finalize_result) -00000544: __cxa_finalize_result :: out u32 = low:32[R0] - -00000332: -0000042a: R16 := 0x11000 -00000431: R17 := mem[R16 + 8, el]:u64 -00000437: R16 := R16 + 8 -0000043c: call R17 with noreturn - -00000512: sub __do_global_dtors_aux(__do_global_dtors_aux_result) -00000545: __do_global_dtors_aux_result :: out u32 = low:32[R0] - -0000026e: -00000272: #3 := R31 - 0x20 -00000278: mem := mem with [#3, el]:u64 <- R29 -0000027e: mem := mem with [#3 + 8, el]:u64 <- R30 -00000282: R31 := #3 -00000288: R29 := R31 -00000290: mem := mem with [R31 + 0x10, el]:u64 <- R19 -00000295: R19 := 0x11000 -0000029c: R0 := pad:64[mem[R19 + 0x30]] -000002a3: when 31:0[R0] <> 0 goto %000002a1 -00000539: goto %000002fb - -000002fb: -000002fe: R0 := 0x10000 -00000305: R0 := mem[R0 + 0xFB8, el]:u64 -0000030b: when R0 = 0 goto %00000309 -0000053a: goto %00000322 - -00000322: -00000325: R0 := 0x11000 -0000032c: R0 := mem[R0 + 0x28, el]:u64 -00000331: R30 := 0x730 -00000334: call @__cxa_finalize with return %00000309 - -00000309: -00000311: R30 := 0x734 -00000313: call @deregister_tm_clones with return %00000315 - -00000315: -00000318: R0 := 1 -00000320: mem := mem with [R19 + 0x30] <- 7:0[R0] -0000053b: goto %000002a1 - -000002a1: -000002ab: R19 := mem[R31 + 0x10, el]:u64 -000002b2: R29 := mem[R31, el]:u64 -000002b7: R30 := mem[R31 + 8, el]:u64 -000002bb: R31 := R31 + 0x20 -000002c0: call R30 with noreturn - -00000516: sub __libc_start_main(__libc_start_main_main, __libc_start_main_arg2, __libc_start_main_arg3, __libc_start_main_auxv, __libc_start_main_result) -00000546: __libc_start_main_main :: in u64 = R0 -00000547: __libc_start_main_arg2 :: in u32 = low:32[R1] -00000548: __libc_start_main_arg3 :: in out u64 = R2 -00000549: __libc_start_main_auxv :: in out u64 = R3 -0000054a: __libc_start_main_result :: out u32 = low:32[R0] - -000001c7: -00000414: R16 := 0x11000 -0000041b: R17 := mem[R16, el]:u64 -00000421: R16 := R16 -00000426: call R17 with noreturn - -00000517: sub _fini(_fini_result) -0000054b: _fini_result :: out u32 = low:32[R0] - -0000001f: -00000025: #0 := R31 - 0x10 -0000002b: mem := mem with [#0, el]:u64 <- R29 -00000031: mem := mem with [#0 + 8, el]:u64 <- R30 -00000035: R31 := #0 -0000003b: R29 := R31 -00000042: R29 := mem[R31, el]:u64 -00000047: R30 := mem[R31 + 8, el]:u64 -0000004b: R31 := R31 + 0x10 -00000050: call R30 with noreturn - -00000518: sub _init(_init_result) -0000054c: _init_result :: out u32 = low:32[R0] - -00000484: -0000048a: #5 := R31 - 0x10 -00000490: mem := mem with [#5, el]:u64 <- R29 -00000496: mem := mem with [#5 + 8, el]:u64 <- R30 -0000049a: R31 := #5 -000004a0: R29 := R31 -000004a5: R30 := 0x5C0 -000004a7: call @call_weak_fn with return %000004a9 - -000004a9: -000004ae: R29 := mem[R31, el]:u64 -000004b3: R30 := mem[R31 + 8, el]:u64 -000004b7: R31 := R31 + 0x10 -000004bc: call R30 with noreturn - -00000519: sub _start(_start_result) -0000054d: _start_result :: out u32 = low:32[R0] - -00000188: -0000018d: R29 := 0 -00000192: R30 := 0 -00000198: R5 := R0 -0000019f: R1 := mem[R31, el]:u64 -000001a5: R2 := R31 + 8 -000001ab: R6 := R31 -000001b0: R0 := 0x10000 -000001b7: R0 := mem[R0 + 0xFD8, el]:u64 -000001bc: R3 := 0 -000001c1: R4 := 0 -000001c6: R30 := 0x670 -000001c9: call @__libc_start_main with return %000001cb - -000001cb: -000001ce: R30 := 0x674 -000001d1: call @abort with return %0000053c - -0000053c: -0000053d: call @call_weak_fn with noreturn - -0000051c: sub abort() - - -000001cf: -00000456: R16 := 0x11000 -0000045d: R17 := mem[R16 + 0x18, el]:u64 -00000463: R16 := R16 + 0x18 -00000468: call R17 with noreturn - -0000051d: sub call_weak_fn(call_weak_fn_result) -0000054e: call_weak_fn_result :: out u32 = low:32[R0] - -000001d3: -000001d6: R0 := 0x10000 -000001dd: R0 := mem[R0 + 0xFC8, el]:u64 -000001e3: when R0 = 0 goto %000001e1 -0000053e: goto %00000372 - -000001e1: -000001e9: call R30 with noreturn - -00000372: -00000375: goto @__gmon_start__ - -00000373: -00000440: R16 := 0x11000 -00000447: R17 := mem[R16 + 0x10, el]:u64 -0000044d: R16 := R16 + 0x10 -00000452: call R17 with noreturn - -0000051f: sub deregister_tm_clones(deregister_tm_clones_result) -0000054f: deregister_tm_clones_result :: out u32 = low:32[R0] - -000001ef: -000001f2: R0 := 0x11000 -000001f8: R0 := R0 + 0x30 -000001fd: R1 := 0x11000 -00000203: R1 := R1 + 0x30 -00000209: #1 := ~R0 -0000020e: #2 := R1 + ~R0 -00000214: VF := extend:65[#2 + 1] <> extend:65[R1] + extend:65[#1] + 1 -0000021a: CF := pad:65[#2 + 1] <> pad:65[R1] + pad:65[#1] + 1 -0000021e: ZF := #2 + 1 = 0 -00000222: NF := 63:63[#2 + 1] -00000228: when ZF goto %00000226 -0000053f: goto %00000354 - -00000354: -00000357: R1 := 0x10000 -0000035e: R1 := mem[R1 + 0xFB0, el]:u64 -00000363: when R1 = 0 goto %00000226 -00000540: goto %00000367 - -00000226: -0000022e: call R30 with noreturn - -00000367: -0000036b: R16 := R1 -00000370: call R16 with noreturn - -00000522: sub frame_dummy(frame_dummy_result) -00000550: frame_dummy_result :: out u32 = low:32[R0] - -000002c6: -000002c8: call @register_tm_clones with noreturn - -00000523: sub main(main_argc, main_argv, main_result) -00000551: main_argc :: in u32 = low:32[R0] -00000552: main_argv :: in out u64 = R1 -00000553: main_result :: out u32 = low:32[R0] - -000002ca: -000002cd: R8 := 0x10000 -000002d4: R8 := mem[R8 + 0xFD0, el]:u64 -000002db: R8 := pad:64[mem[R8, el]:u32] -000002e0: R9 := 0x10000 -000002e7: R9 := mem[R9 + 0xFC0, el]:u64 -000002ef: mem := mem with [R9, el]:u32 <- 31:0[R8] -000002f4: R0 := 0 -000002f9: call R30 with noreturn - -00000524: sub register_tm_clones(register_tm_clones_result) -00000554: register_tm_clones_result :: out u32 = low:32[R0] - -00000230: -00000233: R0 := 0x11000 -00000239: R0 := R0 + 0x30 -0000023e: R1 := 0x11000 -00000244: R1 := R1 + 0x30 -0000024b: R1 := R1 + ~R0 + 1 -00000251: R2 := 0.63:63[R1] -00000258: R1 := R2 + (R1 ~>> 3) -0000025e: R1 := extend:64[63:1[R1]] -00000264: when R1 = 0 goto %00000262 -00000541: goto %00000336 - -00000336: -00000339: R2 := 0x10000 -00000340: R2 := mem[R2 + 0xFE0, el]:u64 -00000345: when R2 = 0 goto %00000262 -00000542: goto %00000349 - -00000262: -0000026a: call R30 with noreturn - -00000349: -0000034d: R16 := R2 -00000352: call R16 with noreturn diff --git a/src/test/correct/basicassign_gamma0/clang_pic/basicassign_gamma0.expected b/src/test/correct/basicassign_gamma0/clang_pic/basicassign_gamma0.expected index ffca592b4..b4235e197 100644 --- a/src/test/correct/basicassign_gamma0/clang_pic/basicassign_gamma0.expected +++ b/src/test/correct/basicassign_gamma0/clang_pic/basicassign_gamma0.expected @@ -7,9 +7,9 @@ var {:extern} R8: bv64; var {:extern} R9: bv64; var {:extern} mem: [bv64]bv8; const {:extern} $secret_addr: bv64; -axiom ($secret_addr == 69684bv64); +axiom ($secret_addr == 131092bv64); const {:extern} $x_addr: bv64; -axiom ($x_addr == 69688bv64); +axiom ($x_addr == 131096bv64); function {:extern} L(mem$in: [bv64]bv8, index: bv64) returns (bool) { (if (index == $x_addr) then true else (if (index == $secret_addr) then false else false)) } @@ -44,13 +44,13 @@ procedure {:extern} rely(); modifies Gamma_mem, mem; ensures (forall i: bv64 :: (((mem[i] == old(mem[i])) ==> (Gamma_mem[i] == old(Gamma_mem[i]))))); ensures (memory_load32_le(mem, $secret_addr) == old(memory_load32_le(mem, $secret_addr))); - free ensures (memory_load32_le(mem, 1928bv64) == 131073bv32); - free ensures (memory_load64_le(mem, 69048bv64) == 1872bv64); - free ensures (memory_load64_le(mem, 69056bv64) == 1792bv64); - free ensures (memory_load64_le(mem, 69568bv64) == 69688bv64); - free ensures (memory_load64_le(mem, 69584bv64) == 69684bv64); - free ensures (memory_load64_le(mem, 69592bv64) == 1876bv64); - free ensures (memory_load64_le(mem, 69672bv64) == 69672bv64); + free ensures (memory_load32_le(mem, 2312bv64) == 131073bv32); + free ensures (memory_load64_le(mem, 130424bv64) == 2256bv64); + free ensures (memory_load64_le(mem, 130432bv64) == 2176bv64); + free ensures (memory_load64_le(mem, 131032bv64) == 131096bv64); + free ensures (memory_load64_le(mem, 131048bv64) == 131092bv64); + free ensures (memory_load64_le(mem, 131056bv64) == 2260bv64); + free ensures (memory_load64_le(mem, 131080bv64) == 131080bv64); procedure {:extern} rely_transitive(); modifies Gamma_mem, mem; @@ -72,55 +72,55 @@ implementation {:extern} rely_reflexive() procedure {:extern} guarantee_reflexive(); modifies Gamma_mem, mem; -procedure main_1876(); +procedure main(); modifies Gamma_R0, Gamma_R8, Gamma_R9, Gamma_mem, R0, R8, R9, mem; requires (gamma_load32(Gamma_mem, $secret_addr) == true); - free requires (memory_load64_le(mem, 69664bv64) == 0bv64); - free requires (memory_load64_le(mem, 69672bv64) == 69672bv64); - free requires (memory_load32_le(mem, 1928bv64) == 131073bv32); - free requires (memory_load64_le(mem, 69048bv64) == 1872bv64); - free requires (memory_load64_le(mem, 69056bv64) == 1792bv64); - free requires (memory_load64_le(mem, 69568bv64) == 69688bv64); - free requires (memory_load64_le(mem, 69584bv64) == 69684bv64); - free requires (memory_load64_le(mem, 69592bv64) == 1876bv64); - free requires (memory_load64_le(mem, 69672bv64) == 69672bv64); - free ensures (memory_load32_le(mem, 1928bv64) == 131073bv32); - free ensures (memory_load64_le(mem, 69048bv64) == 1872bv64); - free ensures (memory_load64_le(mem, 69056bv64) == 1792bv64); - free ensures (memory_load64_le(mem, 69568bv64) == 69688bv64); - free ensures (memory_load64_le(mem, 69584bv64) == 69684bv64); - free ensures (memory_load64_le(mem, 69592bv64) == 1876bv64); - free ensures (memory_load64_le(mem, 69672bv64) == 69672bv64); + free requires (memory_load64_le(mem, 131072bv64) == 0bv64); + free requires (memory_load64_le(mem, 131080bv64) == 131080bv64); + free requires (memory_load32_le(mem, 2312bv64) == 131073bv32); + free requires (memory_load64_le(mem, 130424bv64) == 2256bv64); + free requires (memory_load64_le(mem, 130432bv64) == 2176bv64); + free requires (memory_load64_le(mem, 131032bv64) == 131096bv64); + free requires (memory_load64_le(mem, 131048bv64) == 131092bv64); + free requires (memory_load64_le(mem, 131056bv64) == 2260bv64); + free requires (memory_load64_le(mem, 131080bv64) == 131080bv64); + free ensures (memory_load32_le(mem, 2312bv64) == 131073bv32); + free ensures (memory_load64_le(mem, 130424bv64) == 2256bv64); + free ensures (memory_load64_le(mem, 130432bv64) == 2176bv64); + free ensures (memory_load64_le(mem, 131032bv64) == 131096bv64); + free ensures (memory_load64_le(mem, 131048bv64) == 131092bv64); + free ensures (memory_load64_le(mem, 131056bv64) == 2260bv64); + free ensures (memory_load64_le(mem, 131080bv64) == 131080bv64); -implementation main_1876() +implementation main() { - var Gamma_load18: bool; - var Gamma_load19: bool; - var Gamma_load20: bool; - var load18: bv64; - var load19: bv32; - var load20: bv64; + var $load$18: bv64; + var $load$19: bv32; + var $load$20: bv64; + var Gamma_$load$18: bool; + var Gamma_$load$19: bool; + var Gamma_$load$20: bool; lmain: assume {:captureState "lmain"} true; - R8, Gamma_R8 := 65536bv64, true; + R8, Gamma_R8 := 126976bv64, true; + R9, Gamma_R9 := 126976bv64, true; + R0, Gamma_R0 := 0bv64, true; call rely(); - load18, Gamma_load18 := memory_load64_le(mem, bvadd64(R8, 4048bv64)), (gamma_load64(Gamma_mem, bvadd64(R8, 4048bv64)) || L(mem, bvadd64(R8, 4048bv64))); - R8, Gamma_R8 := load18, Gamma_load18; + $load$18, Gamma_$load$18 := memory_load64_le(mem, bvadd64(R8, 4072bv64)), (gamma_load64(Gamma_mem, bvadd64(R8, 4072bv64)) || L(mem, bvadd64(R8, 4072bv64))); + R8, Gamma_R8 := $load$18, Gamma_$load$18; call rely(); - load19, Gamma_load19 := memory_load32_le(mem, R8), (gamma_load32(Gamma_mem, R8) || L(mem, R8)); - R8, Gamma_R8 := zero_extend32_32(load19), Gamma_load19; - R9, Gamma_R9 := 65536bv64, true; + $load$19, Gamma_$load$19 := memory_load32_le(mem, R8), (gamma_load32(Gamma_mem, R8) || L(mem, R8)); + R8, Gamma_R8 := zero_extend32_32($load$19), Gamma_$load$19; call rely(); - load20, Gamma_load20 := memory_load64_le(mem, bvadd64(R9, 4032bv64)), (gamma_load64(Gamma_mem, bvadd64(R9, 4032bv64)) || L(mem, bvadd64(R9, 4032bv64))); - R9, Gamma_R9 := load20, Gamma_load20; + $load$20, Gamma_$load$20 := memory_load64_le(mem, bvadd64(R9, 4056bv64)), (gamma_load64(Gamma_mem, bvadd64(R9, 4056bv64)) || L(mem, bvadd64(R9, 4056bv64))); + R9, Gamma_R9 := $load$20, Gamma_$load$20; call rely(); assert (L(mem, R9) ==> Gamma_R8); mem, Gamma_mem := memory_store32_le(mem, R9, R8[32:0]), gamma_store32(Gamma_mem, R9, Gamma_R8); - assume {:captureState "%000002ef"} true; - R0, Gamma_R0 := 0bv64, true; - goto main_1876_basil_return; - main_1876_basil_return: - assume {:captureState "main_1876_basil_return"} true; + assume {:captureState "%00000294"} true; + goto main_basil_return; + main_basil_return: + assume {:captureState "main_basil_return"} true; return; } diff --git a/src/test/correct/basicassign_gamma0/clang_pic/basicassign_gamma0.gts b/src/test/correct/basicassign_gamma0/clang_pic/basicassign_gamma0.gts deleted file mode 100644 index c4306eac2..000000000 Binary files a/src/test/correct/basicassign_gamma0/clang_pic/basicassign_gamma0.gts and /dev/null differ diff --git a/src/test/correct/basicassign_gamma0/clang_pic/basicassign_gamma0.md5sum b/src/test/correct/basicassign_gamma0/clang_pic/basicassign_gamma0.md5sum new file mode 100644 index 000000000..61151be97 --- /dev/null +++ b/src/test/correct/basicassign_gamma0/clang_pic/basicassign_gamma0.md5sum @@ -0,0 +1,5 @@ +27f7f90fda216cfc132a0aed55585e2f correct/basicassign_gamma0/clang_pic/a.out +bafc82a99dfdca987e9185a9267883e3 correct/basicassign_gamma0/clang_pic/basicassign_gamma0.adt +162532db700a646eda219bd2c4e3bf71 correct/basicassign_gamma0/clang_pic/basicassign_gamma0.bir +b82caa87f7018df715f91e0a5fcf8b9a correct/basicassign_gamma0/clang_pic/basicassign_gamma0.relf +2b7cc96e42497287cfdab7464b64a7c0 correct/basicassign_gamma0/clang_pic/basicassign_gamma0.gts diff --git a/src/test/correct/basicassign_gamma0/clang_pic/basicassign_gamma0.relf b/src/test/correct/basicassign_gamma0/clang_pic/basicassign_gamma0.relf deleted file mode 100644 index 9290c1932..000000000 --- a/src/test/correct/basicassign_gamma0/clang_pic/basicassign_gamma0.relf +++ /dev/null @@ -1,126 +0,0 @@ - -Relocation section '.rela.dyn' at offset 0x460 contains 10 entries: - Offset Info Type Symbol's Value Symbol's Name + Addend -0000000000010db8 0000000000000403 R_AARCH64_RELATIVE 750 -0000000000010dc0 0000000000000403 R_AARCH64_RELATIVE 700 -0000000000010fc0 0000000000000403 R_AARCH64_RELATIVE 11038 -0000000000010fd0 0000000000000403 R_AARCH64_RELATIVE 11034 -0000000000010fd8 0000000000000403 R_AARCH64_RELATIVE 754 -0000000000011028 0000000000000403 R_AARCH64_RELATIVE 11028 -0000000000010fb0 0000000400000401 R_AARCH64_GLOB_DAT 0000000000000000 _ITM_deregisterTMCloneTable + 0 -0000000000010fb8 0000000500000401 R_AARCH64_GLOB_DAT 0000000000000000 __cxa_finalize@GLIBC_2.17 + 0 -0000000000010fc8 0000000600000401 R_AARCH64_GLOB_DAT 0000000000000000 __gmon_start__ + 0 -0000000000010fe0 0000000800000401 R_AARCH64_GLOB_DAT 0000000000000000 _ITM_registerTMCloneTable + 0 - -Relocation section '.rela.plt' at offset 0x550 contains 4 entries: - Offset Info Type Symbol's Value Symbol's Name + Addend -0000000000011000 0000000300000402 R_AARCH64_JUMP_SLOT 0000000000000000 __libc_start_main@GLIBC_2.34 + 0 -0000000000011008 0000000500000402 R_AARCH64_JUMP_SLOT 0000000000000000 __cxa_finalize@GLIBC_2.17 + 0 -0000000000011010 0000000600000402 R_AARCH64_JUMP_SLOT 0000000000000000 __gmon_start__ + 0 -0000000000011018 0000000700000402 R_AARCH64_JUMP_SLOT 0000000000000000 abort@GLIBC_2.17 + 0 - -Symbol table '.dynsym' contains 9 entries: - Num: Value Size Type Bind Vis Ndx Name - 0: 0000000000000000 0 NOTYPE LOCAL DEFAULT UND - 1: 00000000000005b0 0 SECTION LOCAL DEFAULT 11 .init - 2: 0000000000011020 0 SECTION LOCAL DEFAULT 23 .data - 3: 0000000000000000 0 FUNC GLOBAL DEFAULT UND __libc_start_main@GLIBC_2.34 (2) - 4: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_deregisterTMCloneTable - 5: 0000000000000000 0 FUNC WEAK DEFAULT UND __cxa_finalize@GLIBC_2.17 (3) - 6: 0000000000000000 0 NOTYPE WEAK DEFAULT UND __gmon_start__ - 7: 0000000000000000 0 FUNC GLOBAL DEFAULT UND abort@GLIBC_2.17 (3) - 8: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_registerTMCloneTable - -Symbol table '.symtab' contains 91 entries: - Num: Value Size Type Bind Vis Ndx Name - 0: 0000000000000000 0 NOTYPE LOCAL DEFAULT UND - 1: 0000000000000238 0 SECTION LOCAL DEFAULT 1 .interp - 2: 0000000000000254 0 SECTION LOCAL DEFAULT 2 .note.gnu.build-id - 3: 0000000000000278 0 SECTION LOCAL DEFAULT 3 .note.ABI-tag - 4: 0000000000000298 0 SECTION LOCAL DEFAULT 4 .gnu.hash - 5: 00000000000002b8 0 SECTION LOCAL DEFAULT 5 .dynsym - 6: 0000000000000390 0 SECTION LOCAL DEFAULT 6 .dynstr - 7: 000000000000041e 0 SECTION LOCAL DEFAULT 7 .gnu.version - 8: 0000000000000430 0 SECTION LOCAL DEFAULT 8 .gnu.version_r - 9: 0000000000000460 0 SECTION LOCAL DEFAULT 9 .rela.dyn - 10: 0000000000000550 0 SECTION LOCAL DEFAULT 10 .rela.plt - 11: 00000000000005b0 0 SECTION LOCAL DEFAULT 11 .init - 12: 00000000000005d0 0 SECTION LOCAL DEFAULT 12 .plt - 13: 0000000000000640 0 SECTION LOCAL DEFAULT 13 .text - 14: 0000000000000774 0 SECTION LOCAL DEFAULT 14 .fini - 15: 0000000000000788 0 SECTION LOCAL DEFAULT 15 .rodata - 16: 000000000000078c 0 SECTION LOCAL DEFAULT 16 .eh_frame_hdr - 17: 00000000000007c8 0 SECTION LOCAL DEFAULT 17 .eh_frame - 18: 0000000000010db8 0 SECTION LOCAL DEFAULT 18 .init_array - 19: 0000000000010dc0 0 SECTION LOCAL DEFAULT 19 .fini_array - 20: 0000000000010dc8 0 SECTION LOCAL DEFAULT 20 .dynamic - 21: 0000000000010fa8 0 SECTION LOCAL DEFAULT 21 .got - 22: 0000000000010fe8 0 SECTION LOCAL DEFAULT 22 .got.plt - 23: 0000000000011020 0 SECTION LOCAL DEFAULT 23 .data - 24: 0000000000011030 0 SECTION LOCAL DEFAULT 24 .bss - 25: 0000000000000000 0 SECTION LOCAL DEFAULT 25 .comment - 26: 0000000000000000 0 FILE LOCAL DEFAULT ABS Scrt1.o - 27: 0000000000000278 0 NOTYPE LOCAL DEFAULT 3 $d - 28: 0000000000000278 32 OBJECT LOCAL DEFAULT 3 __abi_tag - 29: 0000000000000640 0 NOTYPE LOCAL DEFAULT 13 $x - 30: 00000000000007dc 0 NOTYPE LOCAL DEFAULT 17 $d - 31: 0000000000000788 0 NOTYPE LOCAL DEFAULT 15 $d - 32: 0000000000000000 0 FILE LOCAL DEFAULT ABS crti.o - 33: 0000000000000674 0 NOTYPE LOCAL DEFAULT 13 $x - 34: 0000000000000674 20 FUNC LOCAL DEFAULT 13 call_weak_fn - 35: 00000000000005b0 0 NOTYPE LOCAL DEFAULT 11 $x - 36: 0000000000000774 0 NOTYPE LOCAL DEFAULT 14 $x - 37: 0000000000000000 0 FILE LOCAL DEFAULT ABS crtn.o - 38: 00000000000005c0 0 NOTYPE LOCAL DEFAULT 11 $x - 39: 0000000000000780 0 NOTYPE LOCAL DEFAULT 14 $x - 40: 0000000000000000 0 FILE LOCAL DEFAULT ABS crtstuff.c - 41: 0000000000000690 0 NOTYPE LOCAL DEFAULT 13 $x - 42: 0000000000000690 0 FUNC LOCAL DEFAULT 13 deregister_tm_clones - 43: 00000000000006c0 0 FUNC LOCAL DEFAULT 13 register_tm_clones - 44: 0000000000011028 0 NOTYPE LOCAL DEFAULT 23 $d - 45: 0000000000000700 0 FUNC LOCAL DEFAULT 13 __do_global_dtors_aux - 46: 0000000000011030 1 OBJECT LOCAL DEFAULT 24 completed.0 - 47: 0000000000010dc0 0 NOTYPE LOCAL DEFAULT 19 $d - 48: 0000000000010dc0 0 OBJECT LOCAL DEFAULT 19 __do_global_dtors_aux_fini_array_entry - 49: 0000000000000750 0 FUNC LOCAL DEFAULT 13 frame_dummy - 50: 0000000000010db8 0 NOTYPE LOCAL DEFAULT 18 $d - 51: 0000000000010db8 0 OBJECT LOCAL DEFAULT 18 __frame_dummy_init_array_entry - 52: 00000000000007f0 0 NOTYPE LOCAL DEFAULT 17 $d - 53: 0000000000011030 0 NOTYPE LOCAL DEFAULT 24 $d - 54: 0000000000000000 0 FILE LOCAL DEFAULT ABS basicassign_gamma0.c - 55: 0000000000000754 0 NOTYPE LOCAL DEFAULT 13 $x.0 - 56: 0000000000011034 0 NOTYPE LOCAL DEFAULT 24 $d.1 - 57: 000000000000002a 0 NOTYPE LOCAL DEFAULT 25 $d.2 - 58: 0000000000000850 0 NOTYPE LOCAL DEFAULT 17 $d.3 - 59: 0000000000000000 0 FILE LOCAL DEFAULT ABS crtstuff.c - 60: 0000000000000878 0 NOTYPE LOCAL DEFAULT 17 $d - 61: 0000000000000878 0 OBJECT LOCAL DEFAULT 17 __FRAME_END__ - 62: 0000000000000000 0 FILE LOCAL DEFAULT ABS - 63: 0000000000010dc8 0 OBJECT LOCAL DEFAULT ABS _DYNAMIC - 64: 000000000000078c 0 NOTYPE LOCAL DEFAULT 16 __GNU_EH_FRAME_HDR - 65: 0000000000010fa8 0 OBJECT LOCAL DEFAULT ABS _GLOBAL_OFFSET_TABLE_ - 66: 00000000000005d0 0 NOTYPE LOCAL DEFAULT 12 $x - 67: 0000000000000000 0 FUNC GLOBAL DEFAULT UND __libc_start_main@GLIBC_2.34 - 68: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_deregisterTMCloneTable - 69: 0000000000011020 0 NOTYPE WEAK DEFAULT 23 data_start - 70: 0000000000011030 0 NOTYPE GLOBAL DEFAULT 24 __bss_start__ - 71: 0000000000000000 0 FUNC WEAK DEFAULT UND __cxa_finalize@GLIBC_2.17 - 72: 0000000000011040 0 NOTYPE GLOBAL DEFAULT 24 _bss_end__ - 73: 0000000000011030 0 NOTYPE GLOBAL DEFAULT 23 _edata - 74: 0000000000011038 4 OBJECT GLOBAL DEFAULT 24 x - 75: 0000000000000774 0 FUNC GLOBAL HIDDEN 14 _fini - 76: 0000000000011040 0 NOTYPE GLOBAL DEFAULT 24 __bss_end__ - 77: 0000000000011020 0 NOTYPE GLOBAL DEFAULT 23 __data_start - 78: 0000000000000000 0 NOTYPE WEAK DEFAULT UND __gmon_start__ - 79: 0000000000011028 0 OBJECT GLOBAL HIDDEN 23 __dso_handle - 80: 0000000000000000 0 FUNC GLOBAL DEFAULT UND abort@GLIBC_2.17 - 81: 0000000000000788 4 OBJECT GLOBAL DEFAULT 15 _IO_stdin_used - 82: 0000000000011034 4 OBJECT GLOBAL DEFAULT 24 secret - 83: 0000000000011040 0 NOTYPE GLOBAL DEFAULT 24 _end - 84: 0000000000000640 52 FUNC GLOBAL DEFAULT 13 _start - 85: 0000000000011040 0 NOTYPE GLOBAL DEFAULT 24 __end__ - 86: 0000000000011030 0 NOTYPE GLOBAL DEFAULT 24 __bss_start - 87: 0000000000000754 32 FUNC GLOBAL DEFAULT 13 main - 88: 0000000000011030 0 OBJECT GLOBAL HIDDEN 23 __TMC_END__ - 89: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_registerTMCloneTable - 90: 00000000000005b0 0 FUNC GLOBAL HIDDEN 11 _init diff --git a/src/test/correct/basicassign_gamma0/clang_pic/basicassign_gamma0_gtirb.expected b/src/test/correct/basicassign_gamma0/clang_pic/basicassign_gamma0_gtirb.expected index 921f564af..71caf3f61 100644 --- a/src/test/correct/basicassign_gamma0/clang_pic/basicassign_gamma0_gtirb.expected +++ b/src/test/correct/basicassign_gamma0/clang_pic/basicassign_gamma0_gtirb.expected @@ -7,9 +7,9 @@ var {:extern} R8: bv64; var {:extern} R9: bv64; var {:extern} mem: [bv64]bv8; const {:extern} $secret_addr: bv64; -axiom ($secret_addr == 69684bv64); +axiom ($secret_addr == 131092bv64); const {:extern} $x_addr: bv64; -axiom ($x_addr == 69688bv64); +axiom ($x_addr == 131096bv64); function {:extern} L(mem$in: [bv64]bv8, index: bv64) returns (bool) { (if (index == $x_addr) then true else (if (index == $secret_addr) then false else false)) } @@ -44,13 +44,13 @@ procedure {:extern} rely(); modifies Gamma_mem, mem; ensures (forall i: bv64 :: (((mem[i] == old(mem[i])) ==> (Gamma_mem[i] == old(Gamma_mem[i]))))); ensures (memory_load32_le(mem, $secret_addr) == old(memory_load32_le(mem, $secret_addr))); - free ensures (memory_load32_le(mem, 1928bv64) == 131073bv32); - free ensures (memory_load64_le(mem, 69048bv64) == 1872bv64); - free ensures (memory_load64_le(mem, 69056bv64) == 1792bv64); - free ensures (memory_load64_le(mem, 69568bv64) == 69688bv64); - free ensures (memory_load64_le(mem, 69584bv64) == 69684bv64); - free ensures (memory_load64_le(mem, 69592bv64) == 1876bv64); - free ensures (memory_load64_le(mem, 69672bv64) == 69672bv64); + free ensures (memory_load32_le(mem, 2312bv64) == 131073bv32); + free ensures (memory_load64_le(mem, 130424bv64) == 2256bv64); + free ensures (memory_load64_le(mem, 130432bv64) == 2176bv64); + free ensures (memory_load64_le(mem, 131032bv64) == 131096bv64); + free ensures (memory_load64_le(mem, 131048bv64) == 131092bv64); + free ensures (memory_load64_le(mem, 131056bv64) == 2260bv64); + free ensures (memory_load64_le(mem, 131080bv64) == 131080bv64); procedure {:extern} rely_transitive(); modifies Gamma_mem, mem; @@ -72,55 +72,55 @@ implementation {:extern} rely_reflexive() procedure {:extern} guarantee_reflexive(); modifies Gamma_mem, mem; -procedure main_1876(); +procedure main(); modifies Gamma_R0, Gamma_R8, Gamma_R9, Gamma_mem, R0, R8, R9, mem; requires (gamma_load32(Gamma_mem, $secret_addr) == true); - free requires (memory_load64_le(mem, 69664bv64) == 0bv64); - free requires (memory_load64_le(mem, 69672bv64) == 69672bv64); - free requires (memory_load32_le(mem, 1928bv64) == 131073bv32); - free requires (memory_load64_le(mem, 69048bv64) == 1872bv64); - free requires (memory_load64_le(mem, 69056bv64) == 1792bv64); - free requires (memory_load64_le(mem, 69568bv64) == 69688bv64); - free requires (memory_load64_le(mem, 69584bv64) == 69684bv64); - free requires (memory_load64_le(mem, 69592bv64) == 1876bv64); - free requires (memory_load64_le(mem, 69672bv64) == 69672bv64); - free ensures (memory_load32_le(mem, 1928bv64) == 131073bv32); - free ensures (memory_load64_le(mem, 69048bv64) == 1872bv64); - free ensures (memory_load64_le(mem, 69056bv64) == 1792bv64); - free ensures (memory_load64_le(mem, 69568bv64) == 69688bv64); - free ensures (memory_load64_le(mem, 69584bv64) == 69684bv64); - free ensures (memory_load64_le(mem, 69592bv64) == 1876bv64); - free ensures (memory_load64_le(mem, 69672bv64) == 69672bv64); + free requires (memory_load64_le(mem, 131072bv64) == 0bv64); + free requires (memory_load64_le(mem, 131080bv64) == 131080bv64); + free requires (memory_load32_le(mem, 2312bv64) == 131073bv32); + free requires (memory_load64_le(mem, 130424bv64) == 2256bv64); + free requires (memory_load64_le(mem, 130432bv64) == 2176bv64); + free requires (memory_load64_le(mem, 131032bv64) == 131096bv64); + free requires (memory_load64_le(mem, 131048bv64) == 131092bv64); + free requires (memory_load64_le(mem, 131056bv64) == 2260bv64); + free requires (memory_load64_le(mem, 131080bv64) == 131080bv64); + free ensures (memory_load32_le(mem, 2312bv64) == 131073bv32); + free ensures (memory_load64_le(mem, 130424bv64) == 2256bv64); + free ensures (memory_load64_le(mem, 130432bv64) == 2176bv64); + free ensures (memory_load64_le(mem, 131032bv64) == 131096bv64); + free ensures (memory_load64_le(mem, 131048bv64) == 131092bv64); + free ensures (memory_load64_le(mem, 131056bv64) == 2260bv64); + free ensures (memory_load64_le(mem, 131080bv64) == 131080bv64); -implementation main_1876() +implementation main() { - var Gamma_load16: bool; - var Gamma_load17: bool; - var Gamma_load18: bool; - var load16: bv64; - var load17: bv32; - var load18: bv64; - main_1876__0__F4R_psC2T4y6sYXDzaadXQ: - assume {:captureState "main_1876__0__F4R_psC2T4y6sYXDzaadXQ"} true; - R8, Gamma_R8 := 65536bv64, true; + var $load5: bv64; + var $load6: bv32; + var $load7: bv64; + var Gamma_$load5: bool; + var Gamma_$load6: bool; + var Gamma_$load7: bool; + $main$__0__$D9t2gNJrSmyMH3GAVRe3IQ: + assume {:captureState "$main$__0__$D9t2gNJrSmyMH3GAVRe3IQ"} true; + R8, Gamma_R8 := 126976bv64, true; + R9, Gamma_R9 := 126976bv64, true; + R0, Gamma_R0 := 0bv64, true; call rely(); - load16, Gamma_load16 := memory_load64_le(mem, bvadd64(R8, 4048bv64)), (gamma_load64(Gamma_mem, bvadd64(R8, 4048bv64)) || L(mem, bvadd64(R8, 4048bv64))); - R8, Gamma_R8 := load16, Gamma_load16; + $load5, Gamma_$load5 := memory_load64_le(mem, bvadd64(R8, 4072bv64)), (gamma_load64(Gamma_mem, bvadd64(R8, 4072bv64)) || L(mem, bvadd64(R8, 4072bv64))); + R8, Gamma_R8 := $load5, Gamma_$load5; call rely(); - load17, Gamma_load17 := memory_load32_le(mem, R8), (gamma_load32(Gamma_mem, R8) || L(mem, R8)); - R8, Gamma_R8 := zero_extend32_32(load17), Gamma_load17; - R9, Gamma_R9 := 65536bv64, true; + $load6, Gamma_$load6 := memory_load32_le(mem, R8), (gamma_load32(Gamma_mem, R8) || L(mem, R8)); + R8, Gamma_R8 := zero_extend32_32($load6), Gamma_$load6; call rely(); - load18, Gamma_load18 := memory_load64_le(mem, bvadd64(R9, 4032bv64)), (gamma_load64(Gamma_mem, bvadd64(R9, 4032bv64)) || L(mem, bvadd64(R9, 4032bv64))); - R9, Gamma_R9 := load18, Gamma_load18; + $load7, Gamma_$load7 := memory_load64_le(mem, bvadd64(R9, 4056bv64)), (gamma_load64(Gamma_mem, bvadd64(R9, 4056bv64)) || L(mem, bvadd64(R9, 4056bv64))); + R9, Gamma_R9 := $load7, Gamma_$load7; call rely(); assert (L(mem, R9) ==> Gamma_R8); mem, Gamma_mem := memory_store32_le(mem, R9, R8[32:0]), gamma_store32(Gamma_mem, R9, Gamma_R8); - assume {:captureState "1896_0"} true; - R0, Gamma_R0 := 0bv64, true; - goto main_1876_basil_return; - main_1876_basil_return: - assume {:captureState "main_1876_basil_return"} true; + assume {:captureState "2284$0"} true; + goto main_basil_return; + main_basil_return: + assume {:captureState "main_basil_return"} true; return; } diff --git a/src/test/correct/basicassign_gamma0/gcc/basicassign_gamma0.adt b/src/test/correct/basicassign_gamma0/gcc/basicassign_gamma0.adt deleted file mode 100644 index a3c057169..000000000 --- a/src/test/correct/basicassign_gamma0/gcc/basicassign_gamma0.adt +++ /dev/null @@ -1,498 +0,0 @@ -Project(Attrs([Attr("filename","\"gcc/basicassign_gamma0.out\""), -Attr("image-specification","(declare abi (name str))\n(declare arch (name str))\n(declare base-address (addr int))\n(declare bias (off int))\n(declare bits (size int))\n(declare code-region (addr int) (size int) (off int))\n(declare code-start (addr int))\n(declare entry-point (addr int))\n(declare external-reference (addr int) (name str))\n(declare format (name str))\n(declare is-executable (flag bool))\n(declare is-little-endian (flag bool))\n(declare llvm:base-address (addr int))\n(declare llvm:code-entry (name str) (off int) (size int))\n(declare llvm:coff-import-library (name str))\n(declare llvm:coff-virtual-section-header (name str) (addr int) (size int))\n(declare llvm:elf-program-header (name str) (off int) (size int))\n(declare llvm:elf-program-header-flags (name str) (ld bool) (r bool) \n (w bool) (x bool))\n(declare llvm:elf-virtual-program-header (name str) (addr int) (size int))\n(declare llvm:entry-point (addr int))\n(declare llvm:macho-symbol (name str) (value int))\n(declare llvm:name-reference (at int) (name str))\n(declare llvm:relocation (at int) (addr int))\n(declare llvm:section-entry (name str) (addr int) (size int) (off int))\n(declare llvm:section-flags (name str) (r bool) (w bool) (x bool))\n(declare llvm:segment-command (name str) (off int) (size int))\n(declare llvm:segment-command-flags (name str) (r bool) (w bool) (x bool))\n(declare llvm:symbol-entry (name str) (addr int) (size int) (off int)\n (value int))\n(declare llvm:virtual-segment-command (name str) (addr int) (size int))\n(declare mapped (addr int) (size int) (off int))\n(declare named-region (addr int) (size int) (name str))\n(declare named-symbol (addr int) (name str))\n(declare require (name str))\n(declare section (addr int) (size int))\n(declare segment (addr int) (size int) (r bool) (w bool) (x bool))\n(declare subarch (name str))\n(declare symbol-chunk (addr int) (size int) (root int))\n(declare symbol-value (addr int) (value int))\n(declare system (name str))\n(declare vendor (name str))\n\n(abi unknown)\n(arch aarch64)\n(base-address 0)\n(bias 0)\n(bits 64)\n(code-region 1844 20 1844)\n(code-region 1536 308 1536)\n(code-region 1440 96 1440)\n(code-region 1408 24 1408)\n(code-start 1588)\n(code-start 1536)\n(code-start 1812)\n(entry-point 1536)\n(external-reference 69592 _ITM_deregisterTMCloneTable)\n(external-reference 69600 __cxa_finalize)\n(external-reference 69608 __gmon_start__)\n(external-reference 69624 _ITM_registerTMCloneTable)\n(external-reference 69552 __libc_start_main)\n(external-reference 69560 __cxa_finalize)\n(external-reference 69568 __gmon_start__)\n(external-reference 69576 abort)\n(format elf)\n(is-executable true)\n(is-little-endian true)\n(llvm:base-address 0)\n(llvm:code-entry abort 0 0)\n(llvm:code-entry __cxa_finalize 0 0)\n(llvm:code-entry __libc_start_main 0 0)\n(llvm:code-entry _init 1408 0)\n(llvm:code-entry main 1812 32)\n(llvm:code-entry _start 1536 52)\n(llvm:code-entry abort@GLIBC_2.17 0 0)\n(llvm:code-entry _fini 1844 0)\n(llvm:code-entry __cxa_finalize@GLIBC_2.17 0 0)\n(llvm:code-entry __libc_start_main@GLIBC_2.34 0 0)\n(llvm:code-entry frame_dummy 1808 0)\n(llvm:code-entry __do_global_dtors_aux 1728 0)\n(llvm:code-entry register_tm_clones 1664 0)\n(llvm:code-entry deregister_tm_clones 1616 0)\n(llvm:code-entry call_weak_fn 1588 20)\n(llvm:code-entry .fini 1844 20)\n(llvm:code-entry .text 1536 308)\n(llvm:code-entry .plt 1440 96)\n(llvm:code-entry .init 1408 24)\n(llvm:elf-program-header 08 3480 616)\n(llvm:elf-program-header 07 0 0)\n(llvm:elf-program-header 06 1868 60)\n(llvm:elf-program-header 05 596 68)\n(llvm:elf-program-header 04 3496 496)\n(llvm:elf-program-header 03 3480 632)\n(llvm:elf-program-header 02 0 2088)\n(llvm:elf-program-header 01 568 27)\n(llvm:elf-program-header 00 64 504)\n(llvm:elf-program-header-flags 08 false true false false)\n(llvm:elf-program-header-flags 07 false true true false)\n(llvm:elf-program-header-flags 06 false true false false)\n(llvm:elf-program-header-flags 05 false true false false)\n(llvm:elf-program-header-flags 04 false true true false)\n(llvm:elf-program-header-flags 03 true true true false)\n(llvm:elf-program-header-flags 02 true true false true)\n(llvm:elf-program-header-flags 01 false true false false)\n(llvm:elf-program-header-flags 00 false true false false)\n(llvm:elf-virtual-program-header 08 69016 616)\n(llvm:elf-virtual-program-header 07 0 0)\n(llvm:elf-virtual-program-header 06 1868 60)\n(llvm:elf-virtual-program-header 05 596 68)\n(llvm:elf-virtual-program-header 04 69032 496)\n(llvm:elf-virtual-program-header 03 69016 648)\n(llvm:elf-virtual-program-header 02 0 2088)\n(llvm:elf-virtual-program-header 01 568 27)\n(llvm:elf-virtual-program-header 00 64 504)\n(llvm:entry-point 1536)\n(llvm:name-reference 69576 abort)\n(llvm:name-reference 69568 __gmon_start__)\n(llvm:name-reference 69560 __cxa_finalize)\n(llvm:name-reference 69552 __libc_start_main)\n(llvm:name-reference 69624 _ITM_registerTMCloneTable)\n(llvm:name-reference 69608 __gmon_start__)\n(llvm:name-reference 69600 __cxa_finalize)\n(llvm:name-reference 69592 _ITM_deregisterTMCloneTable)\n(llvm:section-entry .shstrtab 0 250 6857)\n(llvm:section-entry .strtab 0 561 6296)\n(llvm:section-entry .symtab 0 2136 4160)\n(llvm:section-entry .comment 0 43 4112)\n(llvm:section-entry .bss 69648 16 4112)\n(llvm:section-entry .data 69632 16 4096)\n(llvm:section-entry .got 69528 104 3992)\n(llvm:section-entry .dynamic 69032 496 3496)\n(llvm:section-entry .fini_array 69024 8 3488)\n(llvm:section-entry .init_array 69016 8 3480)\n(llvm:section-entry .eh_frame 1928 160 1928)\n(llvm:section-entry .eh_frame_hdr 1868 60 1868)\n(llvm:section-entry .rodata 1864 4 1864)\n(llvm:section-entry .fini 1844 20 1844)\n(llvm:section-entry .text 1536 308 1536)\n(llvm:section-entry .plt 1440 96 1440)\n(llvm:section-entry .init 1408 24 1408)\n(llvm:section-entry .rela.plt 1312 96 1312)\n(llvm:section-entry .rela.dyn 1120 192 1120)\n(llvm:section-entry .gnu.version_r 1072 48 1072)\n(llvm:section-entry .gnu.version 1054 18 1054)\n(llvm:section-entry .dynstr 912 141 912)\n(llvm:section-entry .dynsym 696 216 696)\n(llvm:section-entry .gnu.hash 664 28 664)\n(llvm:section-entry .note.ABI-tag 632 32 632)\n(llvm:section-entry .note.gnu.build-id 596 36 596)\n(llvm:section-entry .interp 568 27 568)\n(llvm:section-flags .shstrtab true false false)\n(llvm:section-flags .strtab true false false)\n(llvm:section-flags .symtab true false false)\n(llvm:section-flags .comment true false false)\n(llvm:section-flags .bss true true false)\n(llvm:section-flags .data true true false)\n(llvm:section-flags .got true true false)\n(llvm:section-flags .dynamic true true false)\n(llvm:section-flags .fini_array true true false)\n(llvm:section-flags .init_array true true false)\n(llvm:section-flags .eh_frame true false false)\n(llvm:section-flags .eh_frame_hdr true false false)\n(llvm:section-flags .rodata true false false)\n(llvm:section-flags .fini true false true)\n(llvm:section-flags .text true false true)\n(llvm:section-flags .plt true false true)\n(llvm:section-flags .init true false true)\n(llvm:section-flags .rela.plt true false false)\n(llvm:section-flags .rela.dyn true false false)\n(llvm:section-flags .gnu.version_r true false false)\n(llvm:section-flags .gnu.version true false false)\n(llvm:section-flags .dynstr true false false)\n(llvm:section-flags .dynsym true false false)\n(llvm:section-flags .gnu.hash true false false)\n(llvm:section-flags .note.ABI-tag true false false)\n(llvm:section-flags .note.gnu.build-id true false false)\n(llvm:section-flags .interp true false false)\n(llvm:symbol-entry abort 0 0 0 0)\n(llvm:symbol-entry __cxa_finalize 0 0 0 0)\n(llvm:symbol-entry __libc_start_main 0 0 0 0)\n(llvm:symbol-entry _init 1408 0 1408 1408)\n(llvm:symbol-entry main 1812 32 1812 1812)\n(llvm:symbol-entry _start 1536 52 1536 1536)\n(llvm:symbol-entry abort@GLIBC_2.17 0 0 0 0)\n(llvm:symbol-entry _fini 1844 0 1844 1844)\n(llvm:symbol-entry __cxa_finalize@GLIBC_2.17 0 0 0 0)\n(llvm:symbol-entry __libc_start_main@GLIBC_2.34 0 0 0 0)\n(llvm:symbol-entry frame_dummy 1808 0 1808 1808)\n(llvm:symbol-entry __do_global_dtors_aux 1728 0 1728 1728)\n(llvm:symbol-entry register_tm_clones 1664 0 1664 1664)\n(llvm:symbol-entry deregister_tm_clones 1616 0 1616 1616)\n(llvm:symbol-entry call_weak_fn 1588 20 1588 1588)\n(mapped 0 2088 0)\n(mapped 69016 632 3480)\n(named-region 0 2088 02)\n(named-region 69016 648 03)\n(named-region 568 27 .interp)\n(named-region 596 36 .note.gnu.build-id)\n(named-region 632 32 .note.ABI-tag)\n(named-region 664 28 .gnu.hash)\n(named-region 696 216 .dynsym)\n(named-region 912 141 .dynstr)\n(named-region 1054 18 .gnu.version)\n(named-region 1072 48 .gnu.version_r)\n(named-region 1120 192 .rela.dyn)\n(named-region 1312 96 .rela.plt)\n(named-region 1408 24 .init)\n(named-region 1440 96 .plt)\n(named-region 1536 308 .text)\n(named-region 1844 20 .fini)\n(named-region 1864 4 .rodata)\n(named-region 1868 60 .eh_frame_hdr)\n(named-region 1928 160 .eh_frame)\n(named-region 69016 8 .init_array)\n(named-region 69024 8 .fini_array)\n(named-region 69032 496 .dynamic)\n(named-region 69528 104 .got)\n(named-region 69632 16 .data)\n(named-region 69648 16 .bss)\n(named-region 0 43 .comment)\n(named-region 0 2136 .symtab)\n(named-region 0 561 .strtab)\n(named-region 0 250 .shstrtab)\n(named-symbol 1588 call_weak_fn)\n(named-symbol 1616 deregister_tm_clones)\n(named-symbol 1664 register_tm_clones)\n(named-symbol 1728 __do_global_dtors_aux)\n(named-symbol 1808 frame_dummy)\n(named-symbol 0 __libc_start_main@GLIBC_2.34)\n(named-symbol 0 __cxa_finalize@GLIBC_2.17)\n(named-symbol 1844 _fini)\n(named-symbol 0 abort@GLIBC_2.17)\n(named-symbol 1536 _start)\n(named-symbol 1812 main)\n(named-symbol 1408 _init)\n(named-symbol 0 __libc_start_main)\n(named-symbol 0 __cxa_finalize)\n(named-symbol 0 abort)\n(require libc.so.6)\n(section 568 27)\n(section 596 36)\n(section 632 32)\n(section 664 28)\n(section 696 216)\n(section 912 141)\n(section 1054 18)\n(section 1072 48)\n(section 1120 192)\n(section 1312 96)\n(section 1408 24)\n(section 1440 96)\n(section 1536 308)\n(section 1844 20)\n(section 1864 4)\n(section 1868 60)\n(section 1928 160)\n(section 69016 8)\n(section 69024 8)\n(section 69032 496)\n(section 69528 104)\n(section 69632 16)\n(section 69648 16)\n(section 0 43)\n(section 0 2136)\n(section 0 561)\n(section 0 250)\n(segment 0 2088 true false true)\n(segment 69016 648 true true false)\n(subarch v8)\n(symbol-chunk 1588 20 1588)\n(symbol-chunk 1536 52 1536)\n(symbol-chunk 1812 32 1812)\n(symbol-value 1588 1588)\n(symbol-value 1616 1616)\n(symbol-value 1664 1664)\n(symbol-value 1728 1728)\n(symbol-value 1808 1808)\n(symbol-value 1844 1844)\n(symbol-value 1536 1536)\n(symbol-value 1812 1812)\n(symbol-value 1408 1408)\n(symbol-value 0 0)\n(system \"\")\n(vendor \"\")\n"), -Attr("abi-name","\"aarch64-linux-gnu-elf\"")]), -Sections([Section(".shstrtab", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x00\x06\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xc8\x1b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x38\x00\x09\x00\x40\x00\x1c\x00\x1b\x00\x06\x00\x00\x00\x04\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x04\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x28\x08\x00\x00\x00\x00\x00\x00\x28\x08\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x01\x00\x00\x00\x06\x00\x00\x00\x98\x0d\x00\x00\x00\x00\x00\x00\x98\x0d"), -Section(".strtab", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x00\x06\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xc8\x1b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x38\x00\x09\x00\x40\x00\x1c\x00\x1b\x00\x06\x00\x00\x00\x04\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x04\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x28\x08\x00\x00\x00\x00\x00\x00\x28\x08\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x01\x00\x00\x00\x06\x00\x00\x00\x98\x0d\x00\x00\x00\x00\x00\x00\x98\x0d\x01\x00\x00\x00\x00\x00\x98\x0d\x01\x00\x00\x00\x00\x00\x78\x02\x00\x00\x00\x00\x00\x00\x88\x02\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x02\x00\x00\x00\x06\x00\x00\x00\xa8\x0d\x00\x00\x00\x00\x00\x00\xa8\x0d\x01\x00\x00\x00\x00\x00\xa8\x0d\x01\x00\x00\x00\x00\x00\xf0\x01\x00\x00\x00\x00\x00\x00\xf0\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x04\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x50\xe5\x74\x64\x04\x00\x00\x00\x4c\x07\x00\x00\x00\x00\x00\x00\x4c\x07\x00\x00\x00\x00\x00\x00\x4c\x07\x00\x00\x00\x00\x00\x00\x3c\x00\x00\x00\x00\x00\x00\x00\x3c\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x51\xe5\x74\x64\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x52\xe5\x74\x64\x04\x00\x00\x00\x98\x0d\x00\x00\x00\x00\x00\x00\x98\x0d\x01\x00\x00\x00\x00\x00\x98\x0d\x01\x00\x00\x00\x00\x00\x68\x02\x00\x00\x00\x00\x00\x00\x68\x02\x00\x00\x00\x00\x00\x00\x01"), -Section(".comment", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x00\x06\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xc8\x1b\x00"), -Section(".interp", 0x238, "\x2f\x6c\x69\x62\x2f\x6c\x64\x2d\x6c\x69\x6e\x75\x78\x2d\x61\x61\x72\x63\x68\x36\x34\x2e\x73\x6f\x2e\x31\x00"), -Section(".note.gnu.build-id", 0x254, "\x04\x00\x00\x00\x14\x00\x00\x00\x03\x00\x00\x00\x47\x4e\x55\x00\xad\x5b\x75\xe9\xe4\xde\x59\xa4\x0d\x89\x8c\x3b\xd5\x38\x90\x05\xfb\xa5\x7c\xe1"), -Section(".note.ABI-tag", 0x278, "\x04\x00\x00\x00\x10\x00\x00\x00\x01\x00\x00\x00\x47\x4e\x55\x00\x00\x00\x00\x00\x03\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00"), -Section(".gnu.hash", 0x298, "\x01\x00\x00\x00\x01\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".dynsym", 0x2B8, "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x0b\x00\x80\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x16\x00\x00\x10\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x48\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x22\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x22\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x73\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".dynstr", 0x390, "\x00\x5f\x5f\x63\x78\x61\x5f\x66\x69\x6e\x61\x6c\x69\x7a\x65\x00\x5f\x5f\x6c\x69\x62\x63\x5f\x73\x74\x61\x72\x74\x5f\x6d\x61\x69\x6e\x00\x61\x62\x6f\x72\x74\x00\x6c\x69\x62\x63\x2e\x73\x6f\x2e\x36\x00\x47\x4c\x49\x42\x43\x5f\x32\x2e\x31\x37\x00\x47\x4c\x49\x42\x43\x5f\x32\x2e\x33\x34\x00\x5f\x49\x54\x4d\x5f\x64\x65\x72\x65\x67\x69\x73\x74\x65\x72\x54\x4d\x43\x6c\x6f\x6e\x65\x54\x61\x62\x6c\x65\x00\x5f\x5f\x67\x6d\x6f\x6e\x5f\x73\x74\x61\x72\x74\x5f\x5f\x00\x5f\x49\x54\x4d\x5f\x72\x65\x67\x69\x73\x74\x65\x72\x54\x4d\x43\x6c\x6f\x6e\x65\x54\x61\x62\x6c\x65\x00"), -Section(".gnu.version", 0x41E, "\x00\x00\x00\x00\x00\x00\x02\x00\x01\x00\x03\x00\x01\x00\x03\x00\x01\x00"), -Section(".gnu.version_r", 0x430, "\x01\x00\x02\x00\x28\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x97\x91\x96\x06\x00\x00\x03\x00\x32\x00\x00\x00\x10\x00\x00\x00\xb4\x91\x96\x06\x00\x00\x02\x00\x3d\x00\x00\x00\x00\x00\x00\x00"), -Section(".rela.dyn", 0x460, "\x98\x0d\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x10\x07\x00\x00\x00\x00\x00\x00\xa0\x0d\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\xc0\x06\x00\x00\x00\x00\x00\x00\xf0\x0f\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x14\x07\x00\x00\x00\x00\x00\x00\x08\x10\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x08\x10\x01\x00\x00\x00\x00\x00\xd8\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe0\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe8\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xf8\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".rela.plt", 0x520, "\xb0\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xb8\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xc0\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xc8\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".init", 0x580, "\x1f\x20\x03\xd5\xfd\x7b\xbf\xa9\xfd\x03\x00\x91\x2a\x00\x00\x94\xfd\x7b\xc1\xa8\xc0\x03\x5f\xd6"), -Section(".plt", 0x5A0, "\xf0\x7b\xbf\xa9\x90\x00\x00\x90\x11\xd6\x47\xf9\x10\xa2\x3e\x91\x20\x02\x1f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x90\x00\x00\x90\x11\xda\x47\xf9\x10\xc2\x3e\x91\x20\x02\x1f\xd6\x90\x00\x00\x90\x11\xde\x47\xf9\x10\xe2\x3e\x91\x20\x02\x1f\xd6\x90\x00\x00\x90\x11\xe2\x47\xf9\x10\x02\x3f\x91\x20\x02\x1f\xd6\x90\x00\x00\x90\x11\xe6\x47\xf9\x10\x22\x3f\x91\x20\x02\x1f\xd6"), -Section(".text", 0x600, "\x1f\x20\x03\xd5\x1d\x00\x80\xd2\x1e\x00\x80\xd2\xe5\x03\x00\xaa\xe1\x03\x40\xf9\xe2\x23\x00\x91\xe6\x03\x00\x91\x80\x00\x00\x90\x00\xf8\x47\xf9\x03\x00\x80\xd2\x04\x00\x80\xd2\xe5\xff\xff\x97\xf0\xff\xff\x97\x80\x00\x00\x90\x00\xf4\x47\xf9\x40\x00\x00\xb4\xe8\xff\xff\x17\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x80\x00\x00\xb0\x00\x40\x00\x91\x81\x00\x00\xb0\x21\x40\x00\x91\x3f\x00\x00\xeb\xc0\x00\x00\x54\x81\x00\x00\x90\x21\xec\x47\xf9\x61\x00\x00\xb4\xf0\x03\x01\xaa\x00\x02\x1f\xd6\xc0\x03\x5f\xd6\x80\x00\x00\xb0\x00\x40\x00\x91\x81\x00\x00\xb0\x21\x40\x00\x91\x21\x00\x00\xcb\x22\xfc\x7f\xd3\x41\x0c\x81\x8b\x21\xfc\x41\x93\xc1\x00\x00\xb4\x82\x00\x00\x90\x42\xfc\x47\xf9\x62\x00\x00\xb4\xf0\x03\x02\xaa\x00\x02\x1f\xd6\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\xfd\x7b\xbe\xa9\xfd\x03\x00\x91\xf3\x0b\x00\xf9\x93\x00\x00\xb0\x60\x42\x40\x39\x40\x01\x00\x35\x80\x00\x00\x90\x00\xf0\x47\xf9\x80\x00\x00\xb4\x80\x00\x00\xb0\x00\x04\x40\xf9\xb9\xff\xff\x97\xd8\xff\xff\x97\x20\x00\x80\x52\x60\x42\x00\x39\xf3\x0b\x40\xf9\xfd\x7b\xc2\xa8\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\xdc\xff\xff\x17\x80\x00\x00\xb0\x00\x60\x00\x91\x01\x00\x40\xb9\x80\x00\x00\xb0\x00\x50\x00\x91\x01\x00\x00\xb9\x00\x00\x80\x52\xc0\x03\x5f\xd6"), -Section(".fini", 0x734, "\x1f\x20\x03\xd5\xfd\x7b\xbf\xa9\xfd\x03\x00\x91\xfd\x7b\xc1\xa8\xc0\x03\x5f\xd6"), -Section(".rodata", 0x748, "\x01\x00\x02\x00"), -Section(".eh_frame_hdr", 0x74C, "\x01\x1b\x03\x3b\x38\x00\x00\x00\x06\x00\x00\x00\xb4\xfe\xff\xff\x50\x00\x00\x00\x04\xff\xff\xff\x64\x00\x00\x00\x34\xff\xff\xff\x78\x00\x00\x00\x74\xff\xff\xff\x8c\x00\x00\x00\xc4\xff\xff\xff\xb0\x00\x00\x00\xc8\xff\xff\xff\xc4\x00\x00\x00"), -Section(".eh_frame", 0x788, "\x10\x00\x00\x00\x00\x00\x00\x00\x01\x7a\x52\x00\x04\x78\x1e\x01\x1b\x0c\x1f\x00\x10\x00\x00\x00\x18\x00\x00\x00\x5c\xfe\xff\xff\x34\x00\x00\x00\x00\x41\x07\x1e\x10\x00\x00\x00\x2c\x00\x00\x00\x98\xfe\xff\xff\x30\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x40\x00\x00\x00\xb4\xfe\xff\xff\x3c\x00\x00\x00\x00\x00\x00\x00\x20\x00\x00\x00\x54\x00\x00\x00\xe0\xfe\xff\xff\x48\x00\x00\x00\x00\x41\x0e\x20\x9d\x04\x9e\x03\x42\x93\x02\x4e\xde\xdd\xd3\x0e\x00\x00\x00\x00\x10\x00\x00\x00\x78\x00\x00\x00\x0c\xff\xff\xff\x04\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x8c\x00\x00\x00\xfc\xfe\xff\xff\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".fini_array", 0x10DA0, "\xc0\x06\x00\x00\x00\x00\x00\x00"), -Section(".dynamic", 0x10DA8, "\x01\x00\x00\x00\x00\x00\x00\x00\x28\x00\x00\x00\x00\x00\x00\x00\x0c\x00\x00\x00\x00\x00\x00\x00\x80\x05\x00\x00\x00\x00\x00\x00\x0d\x00\x00\x00\x00\x00\x00\x00\x34\x07\x00\x00\x00\x00\x00\x00\x19\x00\x00\x00\x00\x00\x00\x00\x98\x0d\x01\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x1a\x00\x00\x00\x00\x00\x00\x00\xa0\x0d\x01\x00\x00\x00\x00\x00\x1c\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\xf5\xfe\xff\x6f\x00\x00\x00\x00\x98\x02\x00\x00\x00\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x90\x03\x00\x00\x00\x00\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\xb8\x02\x00\x00\x00\x00\x00\x00\x0a\x00\x00\x00\x00\x00\x00\x00\x8d\x00\x00\x00\x00\x00\x00\x00\x0b\x00\x00\x00\x00\x00\x00\x00\x18\x00\x00\x00\x00\x00\x00\x00\x15\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x98\x0f\x01\x00\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x60\x00\x00\x00\x00\x00\x00\x00\x14\x00\x00\x00\x00\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x17\x00\x00\x00\x00\x00\x00\x00\x20\x05\x00\x00\x00\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x60\x04\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\xc0\x00\x00\x00\x00\x00\x00\x00\x09\x00\x00\x00\x00\x00\x00\x00\x18\x00\x00\x00\x00\x00\x00\x00\x1e\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\xfb\xff\xff\x6f\x00\x00\x00\x00\x01\x00\x00\x08\x00\x00\x00\x00\xfe\xff\xff\x6f\x00\x00\x00\x00\x30\x04\x00\x00\x00\x00\x00\x00\xff\xff\xff\x6f\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\xf0\xff\xff\x6f\x00\x00\x00\x00\x1e\x04\x00\x00\x00\x00\x00\x00\xf9\xff\xff\x6f\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".got", 0x10F98, "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xa0\x05\x00\x00\x00\x00\x00\x00\xa0\x05\x00\x00\x00\x00\x00\x00\xa0\x05\x00\x00\x00\x00\x00\x00\xa0\x05\x00\x00\x00\x00\x00\x00\xa8\x0d\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x14\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".data", 0x11000, "\x00\x00\x00\x00\x00\x00\x00\x00\x08\x10\x01\x00\x00\x00\x00\x00"), -Section(".init_array", 0x10D98, "\x10\x07\x00\x00\x00\x00\x00\x00")]), -Memmap([Annotation(Region(0x0,0x827), Attr("segment","02 0 2088")), -Annotation(Region(0x600,0x633), Attr("symbol","\"_start\"")), -Annotation(Region(0x0,0xF9), Attr("section","\".shstrtab\"")), -Annotation(Region(0x0,0x230), Attr("section","\".strtab\"")), -Annotation(Region(0x0,0x2A), Attr("section","\".comment\"")), -Annotation(Region(0x238,0x252), Attr("section","\".interp\"")), -Annotation(Region(0x254,0x277), Attr("section","\".note.gnu.build-id\"")), -Annotation(Region(0x278,0x297), Attr("section","\".note.ABI-tag\"")), -Annotation(Region(0x298,0x2B3), Attr("section","\".gnu.hash\"")), -Annotation(Region(0x2B8,0x38F), Attr("section","\".dynsym\"")), -Annotation(Region(0x390,0x41C), Attr("section","\".dynstr\"")), -Annotation(Region(0x41E,0x42F), Attr("section","\".gnu.version\"")), -Annotation(Region(0x430,0x45F), Attr("section","\".gnu.version_r\"")), -Annotation(Region(0x460,0x51F), Attr("section","\".rela.dyn\"")), -Annotation(Region(0x520,0x57F), Attr("section","\".rela.plt\"")), -Annotation(Region(0x580,0x597), Attr("section","\".init\"")), -Annotation(Region(0x5A0,0x5FF), Attr("section","\".plt\"")), -Annotation(Region(0x580,0x597), Attr("code-region","()")), -Annotation(Region(0x5A0,0x5FF), Attr("code-region","()")), -Annotation(Region(0x600,0x633), Attr("symbol-info","_start 0x600 52")), -Annotation(Region(0x634,0x647), Attr("symbol","\"call_weak_fn\"")), -Annotation(Region(0x634,0x647), Attr("symbol-info","call_weak_fn 0x634 20")), -Annotation(Region(0x600,0x733), Attr("section","\".text\"")), -Annotation(Region(0x600,0x733), Attr("code-region","()")), -Annotation(Region(0x714,0x733), Attr("symbol","\"main\"")), -Annotation(Region(0x714,0x733), Attr("symbol-info","main 0x714 32")), -Annotation(Region(0x734,0x747), Attr("section","\".fini\"")), -Annotation(Region(0x734,0x747), Attr("code-region","()")), -Annotation(Region(0x748,0x74B), Attr("section","\".rodata\"")), -Annotation(Region(0x74C,0x787), Attr("section","\".eh_frame_hdr\"")), -Annotation(Region(0x788,0x827), Attr("section","\".eh_frame\"")), -Annotation(Region(0x10D98,0x1100F), Attr("segment","03 0x10D98 648")), -Annotation(Region(0x10DA0,0x10DA7), Attr("section","\".fini_array\"")), -Annotation(Region(0x10DA8,0x10F97), Attr("section","\".dynamic\"")), -Annotation(Region(0x10F98,0x10FFF), Attr("section","\".got\"")), -Annotation(Region(0x11000,0x1100F), Attr("section","\".data\"")), -Annotation(Region(0x10D98,0x10D9F), Attr("section","\".init_array\""))]), -Program(Tid(1_454, "%000005ae"), Attrs([]), - Subs([Sub(Tid(1_404, "@__cxa_finalize"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x5D0"), -Attr("stub","()")]), "__cxa_finalize", Args([Arg(Tid(1_455, "%000005af"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("__cxa_finalize_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(816, "@__cxa_finalize"), - Attrs([Attr("address","0x5D0")]), Phis([]), -Defs([Def(Tid(1_064, "%00000428"), Attrs([Attr("address","0x5D0"), -Attr("insn","adrp x16, #65536")]), Var("R16",Imm(64)), Int(65536,64)), -Def(Tid(1_071, "%0000042f"), Attrs([Attr("address","0x5D4"), -Attr("insn","ldr x17, [x16, #0xfb8]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(4024,64)),LittleEndian(),64)), -Def(Tid(1_077, "%00000435"), Attrs([Attr("address","0x5D8"), -Attr("insn","add x16, x16, #0xfb8")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(4024,64)))]), Jmps([Call(Tid(1_082, "%0000043a"), - Attrs([Attr("address","0x5DC"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), -Sub(Tid(1_405, "@__do_global_dtors_aux"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x6C0")]), - "__do_global_dtors_aux", Args([Arg(Tid(1_456, "%000005b0"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("__do_global_dtors_aux_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(622, "@__do_global_dtors_aux"), - Attrs([Attr("address","0x6C0")]), Phis([]), Defs([Def(Tid(626, "%00000272"), - Attrs([Attr("address","0x6C0"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("#3",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(18446744073709551584,64))), -Def(Tid(632, "%00000278"), Attrs([Attr("address","0x6C0"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("#3",Imm(64)),Var("R29",Imm(64)),LittleEndian(),64)), -Def(Tid(638, "%0000027e"), Attrs([Attr("address","0x6C0"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("#3",Imm(64)),Int(8,64)),Var("R30",Imm(64)),LittleEndian(),64)), -Def(Tid(642, "%00000282"), Attrs([Attr("address","0x6C0"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("R31",Imm(64)), -Var("#3",Imm(64))), Def(Tid(648, "%00000288"), - Attrs([Attr("address","0x6C4"), Attr("insn","mov x29, sp")]), - Var("R29",Imm(64)), Var("R31",Imm(64))), Def(Tid(656, "%00000290"), - Attrs([Attr("address","0x6C8"), Attr("insn","str x19, [sp, #0x10]")]), - Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(16,64)),Var("R19",Imm(64)),LittleEndian(),64)), -Def(Tid(661, "%00000295"), Attrs([Attr("address","0x6CC"), -Attr("insn","adrp x19, #69632")]), Var("R19",Imm(64)), Int(69632,64)), -Def(Tid(668, "%0000029c"), Attrs([Attr("address","0x6D0"), -Attr("insn","ldrb w0, [x19, #0x10]")]), Var("R0",Imm(64)), -UNSIGNED(64,Load(Var("mem",Mem(64,8)),PLUS(Var("R19",Imm(64)),Int(16,64)),LittleEndian(),8)))]), -Jmps([Goto(Tid(675, "%000002a3"), Attrs([Attr("address","0x6D4"), -Attr("insn","cbnz w0, #0x28")]), - NEQ(Extract(31,0,Var("R0",Imm(64))),Int(0,32)), -Direct(Tid(673, "%000002a1"))), Goto(Tid(1_444, "%000005a4"), Attrs([]), - Int(1,1), Direct(Tid(761, "%000002f9")))])), Blk(Tid(761, "%000002f9"), - Attrs([Attr("address","0x6D8")]), Phis([]), Defs([Def(Tid(764, "%000002fc"), - Attrs([Attr("address","0x6D8"), Attr("insn","adrp x0, #65536")]), - Var("R0",Imm(64)), Int(65536,64)), Def(Tid(771, "%00000303"), - Attrs([Attr("address","0x6DC"), Attr("insn","ldr x0, [x0, #0xfe0]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(4064,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(777, "%00000309"), Attrs([Attr("address","0x6E0"), -Attr("insn","cbz x0, #0x10")]), EQ(Var("R0",Imm(64)),Int(0,64)), -Direct(Tid(775, "%00000307"))), Goto(Tid(1_445, "%000005a5"), Attrs([]), - Int(1,1), Direct(Tid(800, "%00000320")))])), Blk(Tid(800, "%00000320"), - Attrs([Attr("address","0x6E4")]), Phis([]), Defs([Def(Tid(803, "%00000323"), - Attrs([Attr("address","0x6E4"), Attr("insn","adrp x0, #69632")]), - Var("R0",Imm(64)), Int(69632,64)), Def(Tid(810, "%0000032a"), - Attrs([Attr("address","0x6E8"), Attr("insn","ldr x0, [x0, #0x8]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(815, "%0000032f"), Attrs([Attr("address","0x6EC"), -Attr("insn","bl #-0x11c")]), Var("R30",Imm(64)), Int(1776,64))]), -Jmps([Call(Tid(818, "%00000332"), Attrs([Attr("address","0x6EC"), -Attr("insn","bl #-0x11c")]), Int(1,1), -(Direct(Tid(1_404, "@__cxa_finalize")),Direct(Tid(775, "%00000307"))))])), -Blk(Tid(775, "%00000307"), Attrs([Attr("address","0x6F0")]), Phis([]), -Defs([Def(Tid(783, "%0000030f"), Attrs([Attr("address","0x6F0"), -Attr("insn","bl #-0xa0")]), Var("R30",Imm(64)), Int(1780,64))]), -Jmps([Call(Tid(785, "%00000311"), Attrs([Attr("address","0x6F0"), -Attr("insn","bl #-0xa0")]), Int(1,1), -(Direct(Tid(1_418, "@deregister_tm_clones")),Direct(Tid(787, "%00000313"))))])), -Blk(Tid(787, "%00000313"), Attrs([Attr("address","0x6F4")]), Phis([]), -Defs([Def(Tid(790, "%00000316"), Attrs([Attr("address","0x6F4"), -Attr("insn","mov w0, #0x1")]), Var("R0",Imm(64)), Int(1,64)), -Def(Tid(798, "%0000031e"), Attrs([Attr("address","0x6F8"), -Attr("insn","strb w0, [x19, #0x10]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R19",Imm(64)),Int(16,64)),Extract(7,0,Var("R0",Imm(64))),LittleEndian(),8))]), -Jmps([Goto(Tid(1_446, "%000005a6"), Attrs([]), Int(1,1), -Direct(Tid(673, "%000002a1")))])), Blk(Tid(673, "%000002a1"), - Attrs([Attr("address","0x6FC")]), Phis([]), Defs([Def(Tid(683, "%000002ab"), - Attrs([Attr("address","0x6FC"), Attr("insn","ldr x19, [sp, #0x10]")]), - Var("R19",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(16,64)),LittleEndian(),64)), -Def(Tid(690, "%000002b2"), Attrs([Attr("address","0x700"), -Attr("insn","ldp x29, x30, [sp], #0x20")]), Var("R29",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(695, "%000002b7"), Attrs([Attr("address","0x700"), -Attr("insn","ldp x29, x30, [sp], #0x20")]), Var("R30",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(699, "%000002bb"), Attrs([Attr("address","0x700"), -Attr("insn","ldp x29, x30, [sp], #0x20")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(32,64)))]), Jmps([Call(Tid(704, "%000002c0"), - Attrs([Attr("address","0x704"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), Sub(Tid(1_409, "@__libc_start_main"), - Attrs([Attr("c.proto","signed (*)(signed (*)(signed , char** , char** );* main, signed , char** , \nvoid* auxv)"), -Attr("address","0x5C0"), Attr("stub","()")]), "__libc_start_main", - Args([Arg(Tid(1_457, "%000005b1"), - Attrs([Attr("c.layout","**[ : 64]"), -Attr("c.data","Top:u64 ptr ptr"), -Attr("c.type","signed (*)(signed , char** , char** );*")]), - Var("__libc_start_main_main",Imm(64)), Var("R0",Imm(64)), In()), -Arg(Tid(1_458, "%000005b2"), Attrs([Attr("c.layout","[signed : 32]"), -Attr("c.data","Top:u32"), Attr("c.type","signed")]), - Var("__libc_start_main_arg2",Imm(32)), LOW(32,Var("R1",Imm(64))), In()), -Arg(Tid(1_459, "%000005b3"), Attrs([Attr("c.layout","**[char : 8]"), -Attr("c.data","Top:u8 ptr ptr"), Attr("c.type","char**")]), - Var("__libc_start_main_arg3",Imm(64)), Var("R2",Imm(64)), Both()), -Arg(Tid(1_460, "%000005b4"), Attrs([Attr("c.layout","*[ : 8]"), -Attr("c.data","{} ptr"), Attr("c.type","void*")]), - Var("__libc_start_main_auxv",Imm(64)), Var("R3",Imm(64)), Both()), -Arg(Tid(1_461, "%000005b5"), Attrs([Attr("c.layout","[signed : 32]"), -Attr("c.data","Top:u32"), Attr("c.type","signed")]), - Var("__libc_start_main_result",Imm(32)), LOW(32,Var("R0",Imm(64))), -Out())]), Blks([Blk(Tid(455, "@__libc_start_main"), - Attrs([Attr("address","0x5C0")]), Phis([]), -Defs([Def(Tid(1_042, "%00000412"), Attrs([Attr("address","0x5C0"), -Attr("insn","adrp x16, #65536")]), Var("R16",Imm(64)), Int(65536,64)), -Def(Tid(1_049, "%00000419"), Attrs([Attr("address","0x5C4"), -Attr("insn","ldr x17, [x16, #0xfb0]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(4016,64)),LittleEndian(),64)), -Def(Tid(1_055, "%0000041f"), Attrs([Attr("address","0x5C8"), -Attr("insn","add x16, x16, #0xfb0")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(4016,64)))]), Jmps([Call(Tid(1_060, "%00000424"), - Attrs([Attr("address","0x5CC"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), Sub(Tid(1_410, "@_fini"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x734")]), - "_fini", Args([Arg(Tid(1_462, "%000005b6"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("_fini_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(31, "@_fini"), - Attrs([Attr("address","0x734")]), Phis([]), Defs([Def(Tid(37, "%00000025"), - Attrs([Attr("address","0x738"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("#0",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(18446744073709551600,64))), -Def(Tid(43, "%0000002b"), Attrs([Attr("address","0x738"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("#0",Imm(64)),Var("R29",Imm(64)),LittleEndian(),64)), -Def(Tid(49, "%00000031"), Attrs([Attr("address","0x738"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("#0",Imm(64)),Int(8,64)),Var("R30",Imm(64)),LittleEndian(),64)), -Def(Tid(53, "%00000035"), Attrs([Attr("address","0x738"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("R31",Imm(64)), -Var("#0",Imm(64))), Def(Tid(59, "%0000003b"), Attrs([Attr("address","0x73C"), -Attr("insn","mov x29, sp")]), Var("R29",Imm(64)), Var("R31",Imm(64))), -Def(Tid(66, "%00000042"), Attrs([Attr("address","0x740"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R29",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(71, "%00000047"), Attrs([Attr("address","0x740"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R30",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(75, "%0000004b"), Attrs([Attr("address","0x740"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(16,64)))]), Jmps([Call(Tid(80, "%00000050"), - Attrs([Attr("address","0x744"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), Sub(Tid(1_411, "@_init"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x580")]), - "_init", Args([Arg(Tid(1_463, "%000005b7"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("_init_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(1_238, "@_init"), - Attrs([Attr("address","0x580")]), Phis([]), -Defs([Def(Tid(1_244, "%000004dc"), Attrs([Attr("address","0x584"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("#5",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(18446744073709551600,64))), -Def(Tid(1_250, "%000004e2"), Attrs([Attr("address","0x584"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("#5",Imm(64)),Var("R29",Imm(64)),LittleEndian(),64)), -Def(Tid(1_256, "%000004e8"), Attrs([Attr("address","0x584"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("#5",Imm(64)),Int(8,64)),Var("R30",Imm(64)),LittleEndian(),64)), -Def(Tid(1_260, "%000004ec"), Attrs([Attr("address","0x584"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("R31",Imm(64)), -Var("#5",Imm(64))), Def(Tid(1_266, "%000004f2"), - Attrs([Attr("address","0x588"), Attr("insn","mov x29, sp")]), - Var("R29",Imm(64)), Var("R31",Imm(64))), Def(Tid(1_271, "%000004f7"), - Attrs([Attr("address","0x58C"), Attr("insn","bl #0xa8")]), - Var("R30",Imm(64)), Int(1424,64))]), Jmps([Call(Tid(1_273, "%000004f9"), - Attrs([Attr("address","0x58C"), Attr("insn","bl #0xa8")]), Int(1,1), -(Direct(Tid(1_416, "@call_weak_fn")),Direct(Tid(1_275, "%000004fb"))))])), -Blk(Tid(1_275, "%000004fb"), Attrs([Attr("address","0x590")]), Phis([]), -Defs([Def(Tid(1_280, "%00000500"), Attrs([Attr("address","0x590"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R29",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(1_285, "%00000505"), Attrs([Attr("address","0x590"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R30",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(1_289, "%00000509"), Attrs([Attr("address","0x590"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(16,64)))]), Jmps([Call(Tid(1_294, "%0000050e"), - Attrs([Attr("address","0x594"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), Sub(Tid(1_412, "@_start"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x600"), -Attr("stub","()"), Attr("entry-point","()")]), "_start", - Args([Arg(Tid(1_464, "%000005b8"), Attrs([Attr("c.layout","[signed : 32]"), -Attr("c.data","Top:u32"), Attr("c.type","signed")]), - Var("_start_result",Imm(32)), LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(392, "@_start"), Attrs([Attr("address","0x600")]), Phis([]), -Defs([Def(Tid(397, "%0000018d"), Attrs([Attr("address","0x604"), -Attr("insn","mov x29, #0x0")]), Var("R29",Imm(64)), Int(0,64)), -Def(Tid(402, "%00000192"), Attrs([Attr("address","0x608"), -Attr("insn","mov x30, #0x0")]), Var("R30",Imm(64)), Int(0,64)), -Def(Tid(408, "%00000198"), Attrs([Attr("address","0x60C"), -Attr("insn","mov x5, x0")]), Var("R5",Imm(64)), Var("R0",Imm(64))), -Def(Tid(415, "%0000019f"), Attrs([Attr("address","0x610"), -Attr("insn","ldr x1, [sp]")]), Var("R1",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(421, "%000001a5"), Attrs([Attr("address","0x614"), -Attr("insn","add x2, sp, #0x8")]), Var("R2",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(8,64))), Def(Tid(427, "%000001ab"), - Attrs([Attr("address","0x618"), Attr("insn","mov x6, sp")]), - Var("R6",Imm(64)), Var("R31",Imm(64))), Def(Tid(432, "%000001b0"), - Attrs([Attr("address","0x61C"), Attr("insn","adrp x0, #65536")]), - Var("R0",Imm(64)), Int(65536,64)), Def(Tid(439, "%000001b7"), - Attrs([Attr("address","0x620"), Attr("insn","ldr x0, [x0, #0xff0]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(4080,64)),LittleEndian(),64)), -Def(Tid(444, "%000001bc"), Attrs([Attr("address","0x624"), -Attr("insn","mov x3, #0x0")]), Var("R3",Imm(64)), Int(0,64)), -Def(Tid(449, "%000001c1"), Attrs([Attr("address","0x628"), -Attr("insn","mov x4, #0x0")]), Var("R4",Imm(64)), Int(0,64)), -Def(Tid(454, "%000001c6"), Attrs([Attr("address","0x62C"), -Attr("insn","bl #-0x6c")]), Var("R30",Imm(64)), Int(1584,64))]), -Jmps([Call(Tid(457, "%000001c9"), Attrs([Attr("address","0x62C"), -Attr("insn","bl #-0x6c")]), Int(1,1), -(Direct(Tid(1_409, "@__libc_start_main")),Direct(Tid(459, "%000001cb"))))])), -Blk(Tid(459, "%000001cb"), Attrs([Attr("address","0x630")]), Phis([]), -Defs([Def(Tid(462, "%000001ce"), Attrs([Attr("address","0x630"), -Attr("insn","bl #-0x40")]), Var("R30",Imm(64)), Int(1588,64))]), -Jmps([Call(Tid(465, "%000001d1"), Attrs([Attr("address","0x630"), -Attr("insn","bl #-0x40")]), Int(1,1), -(Direct(Tid(1_415, "@abort")),Direct(Tid(1_447, "%000005a7"))))])), -Blk(Tid(1_447, "%000005a7"), Attrs([]), Phis([]), Defs([]), -Jmps([Call(Tid(1_448, "%000005a8"), Attrs([]), Int(1,1), -(Direct(Tid(1_416, "@call_weak_fn")),))]))])), Sub(Tid(1_415, "@abort"), - Attrs([Attr("noreturn","()"), Attr("c.proto","void (*)(void)"), -Attr("address","0x5F0"), Attr("stub","()")]), "abort", Args([]), -Blks([Blk(Tid(463, "@abort"), Attrs([Attr("address","0x5F0")]), Phis([]), -Defs([Def(Tid(1_108, "%00000454"), Attrs([Attr("address","0x5F0"), -Attr("insn","adrp x16, #65536")]), Var("R16",Imm(64)), Int(65536,64)), -Def(Tid(1_115, "%0000045b"), Attrs([Attr("address","0x5F4"), -Attr("insn","ldr x17, [x16, #0xfc8]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(4040,64)),LittleEndian(),64)), -Def(Tid(1_121, "%00000461"), Attrs([Attr("address","0x5F8"), -Attr("insn","add x16, x16, #0xfc8")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(4040,64)))]), Jmps([Call(Tid(1_126, "%00000466"), - Attrs([Attr("address","0x5FC"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), Sub(Tid(1_416, "@call_weak_fn"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x634")]), - "call_weak_fn", Args([Arg(Tid(1_465, "%000005b9"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("call_weak_fn_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(467, "@call_weak_fn"), - Attrs([Attr("address","0x634")]), Phis([]), Defs([Def(Tid(470, "%000001d6"), - Attrs([Attr("address","0x634"), Attr("insn","adrp x0, #65536")]), - Var("R0",Imm(64)), Int(65536,64)), Def(Tid(477, "%000001dd"), - Attrs([Attr("address","0x638"), Attr("insn","ldr x0, [x0, #0xfe8]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(4072,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(483, "%000001e3"), Attrs([Attr("address","0x63C"), -Attr("insn","cbz x0, #0x8")]), EQ(Var("R0",Imm(64)),Int(0,64)), -Direct(Tid(481, "%000001e1"))), Goto(Tid(1_449, "%000005a9"), Attrs([]), - Int(1,1), Direct(Tid(880, "%00000370")))])), Blk(Tid(481, "%000001e1"), - Attrs([Attr("address","0x644")]), Phis([]), Defs([]), -Jmps([Call(Tid(489, "%000001e9"), Attrs([Attr("address","0x644"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))])), -Blk(Tid(880, "%00000370"), Attrs([Attr("address","0x640")]), Phis([]), -Defs([]), Jmps([Goto(Tid(883, "%00000373"), Attrs([Attr("address","0x640"), -Attr("insn","b #-0x60")]), Int(1,1), Direct(Tid(881, "@__gmon_start__")))])), -Blk(Tid(881, "@__gmon_start__"), Attrs([Attr("address","0x5E0")]), Phis([]), -Defs([Def(Tid(1_086, "%0000043e"), Attrs([Attr("address","0x5E0"), -Attr("insn","adrp x16, #65536")]), Var("R16",Imm(64)), Int(65536,64)), -Def(Tid(1_093, "%00000445"), Attrs([Attr("address","0x5E4"), -Attr("insn","ldr x17, [x16, #0xfc0]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(4032,64)),LittleEndian(),64)), -Def(Tid(1_099, "%0000044b"), Attrs([Attr("address","0x5E8"), -Attr("insn","add x16, x16, #0xfc0")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(4032,64)))]), Jmps([Call(Tid(1_104, "%00000450"), - Attrs([Attr("address","0x5EC"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), -Sub(Tid(1_418, "@deregister_tm_clones"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x650")]), - "deregister_tm_clones", Args([Arg(Tid(1_466, "%000005ba"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("deregister_tm_clones_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(495, "@deregister_tm_clones"), - Attrs([Attr("address","0x650")]), Phis([]), Defs([Def(Tid(498, "%000001f2"), - Attrs([Attr("address","0x650"), Attr("insn","adrp x0, #69632")]), - Var("R0",Imm(64)), Int(69632,64)), Def(Tid(504, "%000001f8"), - Attrs([Attr("address","0x654"), Attr("insn","add x0, x0, #0x10")]), - Var("R0",Imm(64)), PLUS(Var("R0",Imm(64)),Int(16,64))), -Def(Tid(509, "%000001fd"), Attrs([Attr("address","0x658"), -Attr("insn","adrp x1, #69632")]), Var("R1",Imm(64)), Int(69632,64)), -Def(Tid(515, "%00000203"), Attrs([Attr("address","0x65C"), -Attr("insn","add x1, x1, #0x10")]), Var("R1",Imm(64)), -PLUS(Var("R1",Imm(64)),Int(16,64))), Def(Tid(521, "%00000209"), - Attrs([Attr("address","0x660"), Attr("insn","cmp x1, x0")]), - Var("#1",Imm(64)), NOT(Var("R0",Imm(64)))), Def(Tid(526, "%0000020e"), - Attrs([Attr("address","0x660"), Attr("insn","cmp x1, x0")]), - Var("#2",Imm(64)), PLUS(Var("R1",Imm(64)),NOT(Var("R0",Imm(64))))), -Def(Tid(532, "%00000214"), Attrs([Attr("address","0x660"), -Attr("insn","cmp x1, x0")]), Var("VF",Imm(1)), -NEQ(SIGNED(65,PLUS(Var("#2",Imm(64)),Int(1,64))),PLUS(PLUS(SIGNED(65,Var("R1",Imm(64))),SIGNED(65,Var("#1",Imm(64)))),Int(1,65)))), -Def(Tid(538, "%0000021a"), Attrs([Attr("address","0x660"), -Attr("insn","cmp x1, x0")]), Var("CF",Imm(1)), -NEQ(UNSIGNED(65,PLUS(Var("#2",Imm(64)),Int(1,64))),PLUS(PLUS(UNSIGNED(65,Var("R1",Imm(64))),UNSIGNED(65,Var("#1",Imm(64)))),Int(1,65)))), -Def(Tid(542, "%0000021e"), Attrs([Attr("address","0x660"), -Attr("insn","cmp x1, x0")]), Var("ZF",Imm(1)), -EQ(PLUS(Var("#2",Imm(64)),Int(1,64)),Int(0,64))), Def(Tid(546, "%00000222"), - Attrs([Attr("address","0x660"), Attr("insn","cmp x1, x0")]), - Var("NF",Imm(1)), Extract(63,63,PLUS(Var("#2",Imm(64)),Int(1,64))))]), -Jmps([Goto(Tid(552, "%00000228"), Attrs([Attr("address","0x664"), -Attr("insn","b.eq #0x18")]), EQ(Var("ZF",Imm(1)),Int(1,1)), -Direct(Tid(550, "%00000226"))), Goto(Tid(1_450, "%000005aa"), Attrs([]), - Int(1,1), Direct(Tid(850, "%00000352")))])), Blk(Tid(850, "%00000352"), - Attrs([Attr("address","0x668")]), Phis([]), Defs([Def(Tid(853, "%00000355"), - Attrs([Attr("address","0x668"), Attr("insn","adrp x1, #65536")]), - Var("R1",Imm(64)), Int(65536,64)), Def(Tid(860, "%0000035c"), - Attrs([Attr("address","0x66C"), Attr("insn","ldr x1, [x1, #0xfd8]")]), - Var("R1",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R1",Imm(64)),Int(4056,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(865, "%00000361"), Attrs([Attr("address","0x670"), -Attr("insn","cbz x1, #0xc")]), EQ(Var("R1",Imm(64)),Int(0,64)), -Direct(Tid(550, "%00000226"))), Goto(Tid(1_451, "%000005ab"), Attrs([]), - Int(1,1), Direct(Tid(869, "%00000365")))])), Blk(Tid(550, "%00000226"), - Attrs([Attr("address","0x67C")]), Phis([]), Defs([]), -Jmps([Call(Tid(558, "%0000022e"), Attrs([Attr("address","0x67C"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))])), -Blk(Tid(869, "%00000365"), Attrs([Attr("address","0x674")]), Phis([]), -Defs([Def(Tid(873, "%00000369"), Attrs([Attr("address","0x674"), -Attr("insn","mov x16, x1")]), Var("R16",Imm(64)), Var("R1",Imm(64)))]), -Jmps([Call(Tid(878, "%0000036e"), Attrs([Attr("address","0x678"), -Attr("insn","br x16")]), Int(1,1), (Indirect(Var("R16",Imm(64))),))]))])), -Sub(Tid(1_421, "@frame_dummy"), Attrs([Attr("c.proto","signed (*)(void)"), -Attr("address","0x710")]), "frame_dummy", Args([Arg(Tid(1_467, "%000005bb"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("frame_dummy_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(710, "@frame_dummy"), - Attrs([Attr("address","0x710")]), Phis([]), Defs([]), -Jmps([Call(Tid(712, "%000002c8"), Attrs([Attr("address","0x710"), -Attr("insn","b #-0x90")]), Int(1,1), -(Direct(Tid(1_423, "@register_tm_clones")),))]))])), Sub(Tid(1_422, "@main"), - Attrs([Attr("c.proto","signed (*)(signed argc, const char** argv)"), -Attr("address","0x714")]), "main", Args([Arg(Tid(1_468, "%000005bc"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("main_argc",Imm(32)), -LOW(32,Var("R0",Imm(64))), In()), Arg(Tid(1_469, "%000005bd"), - Attrs([Attr("c.layout","**[char : 8]"), Attr("c.data","Top:u8 ptr ptr"), -Attr("c.type"," const char**")]), Var("main_argv",Imm(64)), -Var("R1",Imm(64)), Both()), Arg(Tid(1_470, "%000005be"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("main_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(714, "@main"), - Attrs([Attr("address","0x714")]), Phis([]), Defs([Def(Tid(717, "%000002cd"), - Attrs([Attr("address","0x714"), Attr("insn","adrp x0, #69632")]), - Var("R0",Imm(64)), Int(69632,64)), Def(Tid(723, "%000002d3"), - Attrs([Attr("address","0x718"), Attr("insn","add x0, x0, #0x18")]), - Var("R0",Imm(64)), PLUS(Var("R0",Imm(64)),Int(24,64))), -Def(Tid(730, "%000002da"), Attrs([Attr("address","0x71C"), -Attr("insn","ldr w1, [x0]")]), Var("R1",Imm(64)), -UNSIGNED(64,Load(Var("mem",Mem(64,8)),Var("R0",Imm(64)),LittleEndian(),32))), -Def(Tid(735, "%000002df"), Attrs([Attr("address","0x720"), -Attr("insn","adrp x0, #69632")]), Var("R0",Imm(64)), Int(69632,64)), -Def(Tid(741, "%000002e5"), Attrs([Attr("address","0x724"), -Attr("insn","add x0, x0, #0x14")]), Var("R0",Imm(64)), -PLUS(Var("R0",Imm(64)),Int(20,64))), Def(Tid(749, "%000002ed"), - Attrs([Attr("address","0x728"), Attr("insn","str w1, [x0]")]), - Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("R0",Imm(64)),Extract(31,0,Var("R1",Imm(64))),LittleEndian(),32)), -Def(Tid(754, "%000002f2"), Attrs([Attr("address","0x72C"), -Attr("insn","mov w0, #0x0")]), Var("R0",Imm(64)), Int(0,64))]), -Jmps([Call(Tid(759, "%000002f7"), Attrs([Attr("address","0x730"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))]))])), -Sub(Tid(1_423, "@register_tm_clones"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x680")]), - "register_tm_clones", Args([Arg(Tid(1_471, "%000005bf"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("register_tm_clones_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(560, "@register_tm_clones"), Attrs([Attr("address","0x680")]), - Phis([]), Defs([Def(Tid(563, "%00000233"), Attrs([Attr("address","0x680"), -Attr("insn","adrp x0, #69632")]), Var("R0",Imm(64)), Int(69632,64)), -Def(Tid(569, "%00000239"), Attrs([Attr("address","0x684"), -Attr("insn","add x0, x0, #0x10")]), Var("R0",Imm(64)), -PLUS(Var("R0",Imm(64)),Int(16,64))), Def(Tid(574, "%0000023e"), - Attrs([Attr("address","0x688"), Attr("insn","adrp x1, #69632")]), - Var("R1",Imm(64)), Int(69632,64)), Def(Tid(580, "%00000244"), - Attrs([Attr("address","0x68C"), Attr("insn","add x1, x1, #0x10")]), - Var("R1",Imm(64)), PLUS(Var("R1",Imm(64)),Int(16,64))), -Def(Tid(587, "%0000024b"), Attrs([Attr("address","0x690"), -Attr("insn","sub x1, x1, x0")]), Var("R1",Imm(64)), -PLUS(PLUS(Var("R1",Imm(64)),NOT(Var("R0",Imm(64)))),Int(1,64))), -Def(Tid(593, "%00000251"), Attrs([Attr("address","0x694"), -Attr("insn","lsr x2, x1, #63")]), Var("R2",Imm(64)), -Concat(Int(0,63),Extract(63,63,Var("R1",Imm(64))))), -Def(Tid(600, "%00000258"), Attrs([Attr("address","0x698"), -Attr("insn","add x1, x2, x1, asr #3")]), Var("R1",Imm(64)), -PLUS(Var("R2",Imm(64)),ARSHIFT(Var("R1",Imm(64)),Int(3,3)))), -Def(Tid(606, "%0000025e"), Attrs([Attr("address","0x69C"), -Attr("insn","asr x1, x1, #1")]), Var("R1",Imm(64)), -SIGNED(64,Extract(63,1,Var("R1",Imm(64)))))]), -Jmps([Goto(Tid(612, "%00000264"), Attrs([Attr("address","0x6A0"), -Attr("insn","cbz x1, #0x18")]), EQ(Var("R1",Imm(64)),Int(0,64)), -Direct(Tid(610, "%00000262"))), Goto(Tid(1_452, "%000005ac"), Attrs([]), - Int(1,1), Direct(Tid(820, "%00000334")))])), Blk(Tid(820, "%00000334"), - Attrs([Attr("address","0x6A4")]), Phis([]), Defs([Def(Tid(823, "%00000337"), - Attrs([Attr("address","0x6A4"), Attr("insn","adrp x2, #65536")]), - Var("R2",Imm(64)), Int(65536,64)), Def(Tid(830, "%0000033e"), - Attrs([Attr("address","0x6A8"), Attr("insn","ldr x2, [x2, #0xff8]")]), - Var("R2",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R2",Imm(64)),Int(4088,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(835, "%00000343"), Attrs([Attr("address","0x6AC"), -Attr("insn","cbz x2, #0xc")]), EQ(Var("R2",Imm(64)),Int(0,64)), -Direct(Tid(610, "%00000262"))), Goto(Tid(1_453, "%000005ad"), Attrs([]), - Int(1,1), Direct(Tid(839, "%00000347")))])), Blk(Tid(610, "%00000262"), - Attrs([Attr("address","0x6B8")]), Phis([]), Defs([]), -Jmps([Call(Tid(618, "%0000026a"), Attrs([Attr("address","0x6B8"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))])), -Blk(Tid(839, "%00000347"), Attrs([Attr("address","0x6B0")]), Phis([]), -Defs([Def(Tid(843, "%0000034b"), Attrs([Attr("address","0x6B0"), -Attr("insn","mov x16, x2")]), Var("R16",Imm(64)), Var("R2",Imm(64)))]), -Jmps([Call(Tid(848, "%00000350"), Attrs([Attr("address","0x6B4"), -Attr("insn","br x16")]), Int(1,1), -(Indirect(Var("R16",Imm(64))),))]))]))]))) \ No newline at end of file diff --git a/src/test/correct/basicassign_gamma0/gcc/basicassign_gamma0.bir b/src/test/correct/basicassign_gamma0/gcc/basicassign_gamma0.bir deleted file mode 100644 index a04cd590a..000000000 --- a/src/test/correct/basicassign_gamma0/gcc/basicassign_gamma0.bir +++ /dev/null @@ -1,230 +0,0 @@ -000005ae: program -0000057c: sub __cxa_finalize(__cxa_finalize_result) -000005af: __cxa_finalize_result :: out u32 = low:32[R0] - -00000330: -00000428: R16 := 0x10000 -0000042f: R17 := mem[R16 + 0xFB8, el]:u64 -00000435: R16 := R16 + 0xFB8 -0000043a: call R17 with noreturn - -0000057d: sub __do_global_dtors_aux(__do_global_dtors_aux_result) -000005b0: __do_global_dtors_aux_result :: out u32 = low:32[R0] - -0000026e: -00000272: #3 := R31 - 0x20 -00000278: mem := mem with [#3, el]:u64 <- R29 -0000027e: mem := mem with [#3 + 8, el]:u64 <- R30 -00000282: R31 := #3 -00000288: R29 := R31 -00000290: mem := mem with [R31 + 0x10, el]:u64 <- R19 -00000295: R19 := 0x11000 -0000029c: R0 := pad:64[mem[R19 + 0x10]] -000002a3: when 31:0[R0] <> 0 goto %000002a1 -000005a4: goto %000002f9 - -000002f9: -000002fc: R0 := 0x10000 -00000303: R0 := mem[R0 + 0xFE0, el]:u64 -00000309: when R0 = 0 goto %00000307 -000005a5: goto %00000320 - -00000320: -00000323: R0 := 0x11000 -0000032a: R0 := mem[R0 + 8, el]:u64 -0000032f: R30 := 0x6F0 -00000332: call @__cxa_finalize with return %00000307 - -00000307: -0000030f: R30 := 0x6F4 -00000311: call @deregister_tm_clones with return %00000313 - -00000313: -00000316: R0 := 1 -0000031e: mem := mem with [R19 + 0x10] <- 7:0[R0] -000005a6: goto %000002a1 - -000002a1: -000002ab: R19 := mem[R31 + 0x10, el]:u64 -000002b2: R29 := mem[R31, el]:u64 -000002b7: R30 := mem[R31 + 8, el]:u64 -000002bb: R31 := R31 + 0x20 -000002c0: call R30 with noreturn - -00000581: sub __libc_start_main(__libc_start_main_main, __libc_start_main_arg2, __libc_start_main_arg3, __libc_start_main_auxv, __libc_start_main_result) -000005b1: __libc_start_main_main :: in u64 = R0 -000005b2: __libc_start_main_arg2 :: in u32 = low:32[R1] -000005b3: __libc_start_main_arg3 :: in out u64 = R2 -000005b4: __libc_start_main_auxv :: in out u64 = R3 -000005b5: __libc_start_main_result :: out u32 = low:32[R0] - -000001c7: -00000412: R16 := 0x10000 -00000419: R17 := mem[R16 + 0xFB0, el]:u64 -0000041f: R16 := R16 + 0xFB0 -00000424: call R17 with noreturn - -00000582: sub _fini(_fini_result) -000005b6: _fini_result :: out u32 = low:32[R0] - -0000001f: -00000025: #0 := R31 - 0x10 -0000002b: mem := mem with [#0, el]:u64 <- R29 -00000031: mem := mem with [#0 + 8, el]:u64 <- R30 -00000035: R31 := #0 -0000003b: R29 := R31 -00000042: R29 := mem[R31, el]:u64 -00000047: R30 := mem[R31 + 8, el]:u64 -0000004b: R31 := R31 + 0x10 -00000050: call R30 with noreturn - -00000583: sub _init(_init_result) -000005b7: _init_result :: out u32 = low:32[R0] - -000004d6: -000004dc: #5 := R31 - 0x10 -000004e2: mem := mem with [#5, el]:u64 <- R29 -000004e8: mem := mem with [#5 + 8, el]:u64 <- R30 -000004ec: R31 := #5 -000004f2: R29 := R31 -000004f7: R30 := 0x590 -000004f9: call @call_weak_fn with return %000004fb - -000004fb: -00000500: R29 := mem[R31, el]:u64 -00000505: R30 := mem[R31 + 8, el]:u64 -00000509: R31 := R31 + 0x10 -0000050e: call R30 with noreturn - -00000584: sub _start(_start_result) -000005b8: _start_result :: out u32 = low:32[R0] - -00000188: -0000018d: R29 := 0 -00000192: R30 := 0 -00000198: R5 := R0 -0000019f: R1 := mem[R31, el]:u64 -000001a5: R2 := R31 + 8 -000001ab: R6 := R31 -000001b0: R0 := 0x10000 -000001b7: R0 := mem[R0 + 0xFF0, el]:u64 -000001bc: R3 := 0 -000001c1: R4 := 0 -000001c6: R30 := 0x630 -000001c9: call @__libc_start_main with return %000001cb - -000001cb: -000001ce: R30 := 0x634 -000001d1: call @abort with return %000005a7 - -000005a7: -000005a8: call @call_weak_fn with noreturn - -00000587: sub abort() - - -000001cf: -00000454: R16 := 0x10000 -0000045b: R17 := mem[R16 + 0xFC8, el]:u64 -00000461: R16 := R16 + 0xFC8 -00000466: call R17 with noreturn - -00000588: sub call_weak_fn(call_weak_fn_result) -000005b9: call_weak_fn_result :: out u32 = low:32[R0] - -000001d3: -000001d6: R0 := 0x10000 -000001dd: R0 := mem[R0 + 0xFE8, el]:u64 -000001e3: when R0 = 0 goto %000001e1 -000005a9: goto %00000370 - -000001e1: -000001e9: call R30 with noreturn - -00000370: -00000373: goto @__gmon_start__ - -00000371: -0000043e: R16 := 0x10000 -00000445: R17 := mem[R16 + 0xFC0, el]:u64 -0000044b: R16 := R16 + 0xFC0 -00000450: call R17 with noreturn - -0000058a: sub deregister_tm_clones(deregister_tm_clones_result) -000005ba: deregister_tm_clones_result :: out u32 = low:32[R0] - -000001ef: -000001f2: R0 := 0x11000 -000001f8: R0 := R0 + 0x10 -000001fd: R1 := 0x11000 -00000203: R1 := R1 + 0x10 -00000209: #1 := ~R0 -0000020e: #2 := R1 + ~R0 -00000214: VF := extend:65[#2 + 1] <> extend:65[R1] + extend:65[#1] + 1 -0000021a: CF := pad:65[#2 + 1] <> pad:65[R1] + pad:65[#1] + 1 -0000021e: ZF := #2 + 1 = 0 -00000222: NF := 63:63[#2 + 1] -00000228: when ZF goto %00000226 -000005aa: goto %00000352 - -00000352: -00000355: R1 := 0x10000 -0000035c: R1 := mem[R1 + 0xFD8, el]:u64 -00000361: when R1 = 0 goto %00000226 -000005ab: goto %00000365 - -00000226: -0000022e: call R30 with noreturn - -00000365: -00000369: R16 := R1 -0000036e: call R16 with noreturn - -0000058d: sub frame_dummy(frame_dummy_result) -000005bb: frame_dummy_result :: out u32 = low:32[R0] - -000002c6: -000002c8: call @register_tm_clones with noreturn - -0000058e: sub main(main_argc, main_argv, main_result) -000005bc: main_argc :: in u32 = low:32[R0] -000005bd: main_argv :: in out u64 = R1 -000005be: main_result :: out u32 = low:32[R0] - -000002ca: -000002cd: R0 := 0x11000 -000002d3: R0 := R0 + 0x18 -000002da: R1 := pad:64[mem[R0, el]:u32] -000002df: R0 := 0x11000 -000002e5: R0 := R0 + 0x14 -000002ed: mem := mem with [R0, el]:u32 <- 31:0[R1] -000002f2: R0 := 0 -000002f7: call R30 with noreturn - -0000058f: sub register_tm_clones(register_tm_clones_result) -000005bf: register_tm_clones_result :: out u32 = low:32[R0] - -00000230: -00000233: R0 := 0x11000 -00000239: R0 := R0 + 0x10 -0000023e: R1 := 0x11000 -00000244: R1 := R1 + 0x10 -0000024b: R1 := R1 + ~R0 + 1 -00000251: R2 := 0.63:63[R1] -00000258: R1 := R2 + (R1 ~>> 3) -0000025e: R1 := extend:64[63:1[R1]] -00000264: when R1 = 0 goto %00000262 -000005ac: goto %00000334 - -00000334: -00000337: R2 := 0x10000 -0000033e: R2 := mem[R2 + 0xFF8, el]:u64 -00000343: when R2 = 0 goto %00000262 -000005ad: goto %00000347 - -00000262: -0000026a: call R30 with noreturn - -00000347: -0000034b: R16 := R2 -00000350: call R16 with noreturn diff --git a/src/test/correct/basicassign_gamma0/gcc/basicassign_gamma0.expected b/src/test/correct/basicassign_gamma0/gcc/basicassign_gamma0.expected index 3daae7ead..9b7b8a22c 100644 --- a/src/test/correct/basicassign_gamma0/gcc/basicassign_gamma0.expected +++ b/src/test/correct/basicassign_gamma0/gcc/basicassign_gamma0.expected @@ -64,7 +64,7 @@ implementation {:extern} rely_reflexive() procedure {:extern} guarantee_reflexive(); modifies Gamma_mem, mem; -procedure main_1812(); +procedure main(); modifies Gamma_R0, Gamma_R1, Gamma_mem, R0, R1, mem; requires (gamma_load32(Gamma_mem, $secret_addr) == true); free requires (memory_load64_le(mem, 69632bv64) == 0bv64); @@ -80,17 +80,17 @@ procedure main_1812(); free ensures (memory_load64_le(mem, 69616bv64) == 1812bv64); free ensures (memory_load64_le(mem, 69640bv64) == 69640bv64); -implementation main_1812() +implementation main() { - var Gamma_load18: bool; - var load18: bv32; + var $load$18: bv32; + var Gamma_$load$18: bool; lmain: assume {:captureState "lmain"} true; R0, Gamma_R0 := 69632bv64, true; R0, Gamma_R0 := bvadd64(R0, 24bv64), Gamma_R0; call rely(); - load18, Gamma_load18 := memory_load32_le(mem, R0), (gamma_load32(Gamma_mem, R0) || L(mem, R0)); - R1, Gamma_R1 := zero_extend32_32(load18), Gamma_load18; + $load$18, Gamma_$load$18 := memory_load32_le(mem, R0), (gamma_load32(Gamma_mem, R0) || L(mem, R0)); + R1, Gamma_R1 := zero_extend32_32($load$18), Gamma_$load$18; R0, Gamma_R0 := 69632bv64, true; R0, Gamma_R0 := bvadd64(R0, 20bv64), Gamma_R0; call rely(); @@ -98,9 +98,9 @@ implementation main_1812() mem, Gamma_mem := memory_store32_le(mem, R0, R1[32:0]), gamma_store32(Gamma_mem, R0, Gamma_R1); assume {:captureState "%000002ed"} true; R0, Gamma_R0 := 0bv64, true; - goto main_1812_basil_return; - main_1812_basil_return: - assume {:captureState "main_1812_basil_return"} true; + goto main_basil_return; + main_basil_return: + assume {:captureState "main_basil_return"} true; return; } diff --git a/src/test/correct/basicassign_gamma0/gcc/basicassign_gamma0.gts b/src/test/correct/basicassign_gamma0/gcc/basicassign_gamma0.gts deleted file mode 100644 index 9be4bdc77..000000000 Binary files a/src/test/correct/basicassign_gamma0/gcc/basicassign_gamma0.gts and /dev/null differ diff --git a/src/test/correct/basicassign_gamma0/gcc/basicassign_gamma0.md5sum b/src/test/correct/basicassign_gamma0/gcc/basicassign_gamma0.md5sum new file mode 100644 index 000000000..5af508cae --- /dev/null +++ b/src/test/correct/basicassign_gamma0/gcc/basicassign_gamma0.md5sum @@ -0,0 +1,5 @@ +8cd9e7caefb776a389162acd822791cb correct/basicassign_gamma0/gcc/a.out +8947cb6741460c92df609096d8adc3af correct/basicassign_gamma0/gcc/basicassign_gamma0.adt +eaa8193e4131db205c5495eb693623fb correct/basicassign_gamma0/gcc/basicassign_gamma0.bir +b3665480581b3a5cc330df0c85091898 correct/basicassign_gamma0/gcc/basicassign_gamma0.relf +f52c810db5ef033604988e67e1ae73aa correct/basicassign_gamma0/gcc/basicassign_gamma0.gts diff --git a/src/test/correct/basicassign_gamma0/gcc/basicassign_gamma0.relf b/src/test/correct/basicassign_gamma0/gcc/basicassign_gamma0.relf deleted file mode 100644 index 50e7adef6..000000000 --- a/src/test/correct/basicassign_gamma0/gcc/basicassign_gamma0.relf +++ /dev/null @@ -1,122 +0,0 @@ - -Relocation section '.rela.dyn' at offset 0x460 contains 8 entries: - Offset Info Type Symbol's Value Symbol's Name + Addend -0000000000010d98 0000000000000403 R_AARCH64_RELATIVE 710 -0000000000010da0 0000000000000403 R_AARCH64_RELATIVE 6c0 -0000000000010ff0 0000000000000403 R_AARCH64_RELATIVE 714 -0000000000011008 0000000000000403 R_AARCH64_RELATIVE 11008 -0000000000010fd8 0000000400000401 R_AARCH64_GLOB_DAT 0000000000000000 _ITM_deregisterTMCloneTable + 0 -0000000000010fe0 0000000500000401 R_AARCH64_GLOB_DAT 0000000000000000 __cxa_finalize@GLIBC_2.17 + 0 -0000000000010fe8 0000000600000401 R_AARCH64_GLOB_DAT 0000000000000000 __gmon_start__ + 0 -0000000000010ff8 0000000800000401 R_AARCH64_GLOB_DAT 0000000000000000 _ITM_registerTMCloneTable + 0 - -Relocation section '.rela.plt' at offset 0x520 contains 4 entries: - Offset Info Type Symbol's Value Symbol's Name + Addend -0000000000010fb0 0000000300000402 R_AARCH64_JUMP_SLOT 0000000000000000 __libc_start_main@GLIBC_2.34 + 0 -0000000000010fb8 0000000500000402 R_AARCH64_JUMP_SLOT 0000000000000000 __cxa_finalize@GLIBC_2.17 + 0 -0000000000010fc0 0000000600000402 R_AARCH64_JUMP_SLOT 0000000000000000 __gmon_start__ + 0 -0000000000010fc8 0000000700000402 R_AARCH64_JUMP_SLOT 0000000000000000 abort@GLIBC_2.17 + 0 - -Symbol table '.dynsym' contains 9 entries: - Num: Value Size Type Bind Vis Ndx Name - 0: 0000000000000000 0 NOTYPE LOCAL DEFAULT UND - 1: 0000000000000580 0 SECTION LOCAL DEFAULT 11 .init - 2: 0000000000011000 0 SECTION LOCAL DEFAULT 22 .data - 3: 0000000000000000 0 FUNC GLOBAL DEFAULT UND __libc_start_main@GLIBC_2.34 (2) - 4: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_deregisterTMCloneTable - 5: 0000000000000000 0 FUNC WEAK DEFAULT UND __cxa_finalize@GLIBC_2.17 (3) - 6: 0000000000000000 0 NOTYPE WEAK DEFAULT UND __gmon_start__ - 7: 0000000000000000 0 FUNC GLOBAL DEFAULT UND abort@GLIBC_2.17 (3) - 8: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_registerTMCloneTable - -Symbol table '.symtab' contains 89 entries: - Num: Value Size Type Bind Vis Ndx Name - 0: 0000000000000000 0 NOTYPE LOCAL DEFAULT UND - 1: 0000000000000238 0 SECTION LOCAL DEFAULT 1 .interp - 2: 0000000000000254 0 SECTION LOCAL DEFAULT 2 .note.gnu.build-id - 3: 0000000000000278 0 SECTION LOCAL DEFAULT 3 .note.ABI-tag - 4: 0000000000000298 0 SECTION LOCAL DEFAULT 4 .gnu.hash - 5: 00000000000002b8 0 SECTION LOCAL DEFAULT 5 .dynsym - 6: 0000000000000390 0 SECTION LOCAL DEFAULT 6 .dynstr - 7: 000000000000041e 0 SECTION LOCAL DEFAULT 7 .gnu.version - 8: 0000000000000430 0 SECTION LOCAL DEFAULT 8 .gnu.version_r - 9: 0000000000000460 0 SECTION LOCAL DEFAULT 9 .rela.dyn - 10: 0000000000000520 0 SECTION LOCAL DEFAULT 10 .rela.plt - 11: 0000000000000580 0 SECTION LOCAL DEFAULT 11 .init - 12: 00000000000005a0 0 SECTION LOCAL DEFAULT 12 .plt - 13: 0000000000000600 0 SECTION LOCAL DEFAULT 13 .text - 14: 0000000000000734 0 SECTION LOCAL DEFAULT 14 .fini - 15: 0000000000000748 0 SECTION LOCAL DEFAULT 15 .rodata - 16: 000000000000074c 0 SECTION LOCAL DEFAULT 16 .eh_frame_hdr - 17: 0000000000000788 0 SECTION LOCAL DEFAULT 17 .eh_frame - 18: 0000000000010d98 0 SECTION LOCAL DEFAULT 18 .init_array - 19: 0000000000010da0 0 SECTION LOCAL DEFAULT 19 .fini_array - 20: 0000000000010da8 0 SECTION LOCAL DEFAULT 20 .dynamic - 21: 0000000000010f98 0 SECTION LOCAL DEFAULT 21 .got - 22: 0000000000011000 0 SECTION LOCAL DEFAULT 22 .data - 23: 0000000000011010 0 SECTION LOCAL DEFAULT 23 .bss - 24: 0000000000000000 0 SECTION LOCAL DEFAULT 24 .comment - 25: 0000000000000000 0 FILE LOCAL DEFAULT ABS Scrt1.o - 26: 0000000000000278 0 NOTYPE LOCAL DEFAULT 3 $d - 27: 0000000000000278 32 OBJECT LOCAL DEFAULT 3 __abi_tag - 28: 0000000000000600 0 NOTYPE LOCAL DEFAULT 13 $x - 29: 000000000000079c 0 NOTYPE LOCAL DEFAULT 17 $d - 30: 0000000000000748 0 NOTYPE LOCAL DEFAULT 15 $d - 31: 0000000000000000 0 FILE LOCAL DEFAULT ABS crti.o - 32: 0000000000000634 0 NOTYPE LOCAL DEFAULT 13 $x - 33: 0000000000000634 20 FUNC LOCAL DEFAULT 13 call_weak_fn - 34: 0000000000000580 0 NOTYPE LOCAL DEFAULT 11 $x - 35: 0000000000000734 0 NOTYPE LOCAL DEFAULT 14 $x - 36: 0000000000000000 0 FILE LOCAL DEFAULT ABS crtn.o - 37: 0000000000000590 0 NOTYPE LOCAL DEFAULT 11 $x - 38: 0000000000000740 0 NOTYPE LOCAL DEFAULT 14 $x - 39: 0000000000000000 0 FILE LOCAL DEFAULT ABS crtstuff.c - 40: 0000000000000650 0 NOTYPE LOCAL DEFAULT 13 $x - 41: 0000000000000650 0 FUNC LOCAL DEFAULT 13 deregister_tm_clones - 42: 0000000000000680 0 FUNC LOCAL DEFAULT 13 register_tm_clones - 43: 0000000000011008 0 NOTYPE LOCAL DEFAULT 22 $d - 44: 00000000000006c0 0 FUNC LOCAL DEFAULT 13 __do_global_dtors_aux - 45: 0000000000011010 1 OBJECT LOCAL DEFAULT 23 completed.0 - 46: 0000000000010da0 0 NOTYPE LOCAL DEFAULT 19 $d - 47: 0000000000010da0 0 OBJECT LOCAL DEFAULT 19 __do_global_dtors_aux_fini_array_entry - 48: 0000000000000710 0 FUNC LOCAL DEFAULT 13 frame_dummy - 49: 0000000000010d98 0 NOTYPE LOCAL DEFAULT 18 $d - 50: 0000000000010d98 0 OBJECT LOCAL DEFAULT 18 __frame_dummy_init_array_entry - 51: 00000000000007b0 0 NOTYPE LOCAL DEFAULT 17 $d - 52: 0000000000011010 0 NOTYPE LOCAL DEFAULT 23 $d - 53: 0000000000000000 0 FILE LOCAL DEFAULT ABS basicassign_gamma0.c - 54: 0000000000011014 0 NOTYPE LOCAL DEFAULT 23 $d - 55: 0000000000000714 0 NOTYPE LOCAL DEFAULT 13 $x - 56: 0000000000000810 0 NOTYPE LOCAL DEFAULT 17 $d - 57: 0000000000000000 0 FILE LOCAL DEFAULT ABS crtstuff.c - 58: 0000000000000824 0 NOTYPE LOCAL DEFAULT 17 $d - 59: 0000000000000824 0 OBJECT LOCAL DEFAULT 17 __FRAME_END__ - 60: 0000000000000000 0 FILE LOCAL DEFAULT ABS - 61: 0000000000010da8 0 OBJECT LOCAL DEFAULT ABS _DYNAMIC - 62: 000000000000074c 0 NOTYPE LOCAL DEFAULT 16 __GNU_EH_FRAME_HDR - 63: 0000000000010fd0 0 OBJECT LOCAL DEFAULT ABS _GLOBAL_OFFSET_TABLE_ - 64: 00000000000005a0 0 NOTYPE LOCAL DEFAULT 12 $x - 65: 0000000000000000 0 FUNC GLOBAL DEFAULT UND __libc_start_main@GLIBC_2.34 - 66: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_deregisterTMCloneTable - 67: 0000000000011000 0 NOTYPE WEAK DEFAULT 22 data_start - 68: 0000000000011010 0 NOTYPE GLOBAL DEFAULT 23 __bss_start__ - 69: 0000000000000000 0 FUNC WEAK DEFAULT UND __cxa_finalize@GLIBC_2.17 - 70: 0000000000011020 0 NOTYPE GLOBAL DEFAULT 23 _bss_end__ - 71: 0000000000011010 0 NOTYPE GLOBAL DEFAULT 22 _edata - 72: 0000000000011014 4 OBJECT GLOBAL DEFAULT 23 x - 73: 0000000000000734 0 FUNC GLOBAL HIDDEN 14 _fini - 74: 0000000000011020 0 NOTYPE GLOBAL DEFAULT 23 __bss_end__ - 75: 0000000000011000 0 NOTYPE GLOBAL DEFAULT 22 __data_start - 76: 0000000000000000 0 NOTYPE WEAK DEFAULT UND __gmon_start__ - 77: 0000000000011008 0 OBJECT GLOBAL HIDDEN 22 __dso_handle - 78: 0000000000000000 0 FUNC GLOBAL DEFAULT UND abort@GLIBC_2.17 - 79: 0000000000000748 4 OBJECT GLOBAL DEFAULT 15 _IO_stdin_used - 80: 0000000000011018 4 OBJECT GLOBAL DEFAULT 23 secret - 81: 0000000000011020 0 NOTYPE GLOBAL DEFAULT 23 _end - 82: 0000000000000600 52 FUNC GLOBAL DEFAULT 13 _start - 83: 0000000000011020 0 NOTYPE GLOBAL DEFAULT 23 __end__ - 84: 0000000000011010 0 NOTYPE GLOBAL DEFAULT 23 __bss_start - 85: 0000000000000714 32 FUNC GLOBAL DEFAULT 13 main - 86: 0000000000011010 0 OBJECT GLOBAL HIDDEN 22 __TMC_END__ - 87: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_registerTMCloneTable - 88: 0000000000000580 0 FUNC GLOBAL HIDDEN 11 _init diff --git a/src/test/correct/basicassign_gamma0/gcc/basicassign_gamma0_gtirb.expected b/src/test/correct/basicassign_gamma0/gcc/basicassign_gamma0_gtirb.expected index b5bd3d0ab..54e7633dc 100644 --- a/src/test/correct/basicassign_gamma0/gcc/basicassign_gamma0_gtirb.expected +++ b/src/test/correct/basicassign_gamma0/gcc/basicassign_gamma0_gtirb.expected @@ -64,7 +64,7 @@ implementation {:extern} rely_reflexive() procedure {:extern} guarantee_reflexive(); modifies Gamma_mem, mem; -procedure main_1812(); +procedure main(); modifies Gamma_R0, Gamma_R1, Gamma_mem, R0, R1, mem; requires (gamma_load32(Gamma_mem, $secret_addr) == true); free requires (memory_load64_le(mem, 69632bv64) == 0bv64); @@ -80,27 +80,27 @@ procedure main_1812(); free ensures (memory_load64_le(mem, 69616bv64) == 1812bv64); free ensures (memory_load64_le(mem, 69640bv64) == 69640bv64); -implementation main_1812() +implementation main() { - var Gamma_load1: bool; - var load1: bv32; - main_1812__0__M0T7btlSRzGIu2yXb8baZw: - assume {:captureState "main_1812__0__M0T7btlSRzGIu2yXb8baZw"} true; + var $load1: bv32; + var Gamma_$load1: bool; + $main$__0__$M0T7btlSRzGIu2yXb8baZw: + assume {:captureState "$main$__0__$M0T7btlSRzGIu2yXb8baZw"} true; R0, Gamma_R0 := 69632bv64, true; R0, Gamma_R0 := bvadd64(R0, 24bv64), Gamma_R0; call rely(); - load1, Gamma_load1 := memory_load32_le(mem, R0), (gamma_load32(Gamma_mem, R0) || L(mem, R0)); - R1, Gamma_R1 := zero_extend32_32(load1), Gamma_load1; + $load1, Gamma_$load1 := memory_load32_le(mem, R0), (gamma_load32(Gamma_mem, R0) || L(mem, R0)); + R1, Gamma_R1 := zero_extend32_32($load1), Gamma_$load1; R0, Gamma_R0 := 69632bv64, true; R0, Gamma_R0 := bvadd64(R0, 20bv64), Gamma_R0; call rely(); assert (L(mem, R0) ==> Gamma_R1); mem, Gamma_mem := memory_store32_le(mem, R0, R1[32:0]), gamma_store32(Gamma_mem, R0, Gamma_R1); - assume {:captureState "1832_0"} true; + assume {:captureState "1832$0"} true; R0, Gamma_R0 := 0bv64, true; - goto main_1812_basil_return; - main_1812_basil_return: - assume {:captureState "main_1812_basil_return"} true; + goto main_basil_return; + main_basil_return: + assume {:captureState "main_basil_return"} true; return; } diff --git a/src/test/correct/basicassign_gamma0/gcc_O2/basicassign_gamma0.adt b/src/test/correct/basicassign_gamma0/gcc_O2/basicassign_gamma0.adt deleted file mode 100644 index ee9a53832..000000000 --- a/src/test/correct/basicassign_gamma0/gcc_O2/basicassign_gamma0.adt +++ /dev/null @@ -1,494 +0,0 @@ -Project(Attrs([Attr("filename","\"gcc_O2/basicassign_gamma0.out\""), -Attr("image-specification","(declare abi (name str))\n(declare arch (name str))\n(declare base-address (addr int))\n(declare bias (off int))\n(declare bits (size int))\n(declare code-region (addr int) (size int) (off int))\n(declare code-start (addr int))\n(declare entry-point (addr int))\n(declare external-reference (addr int) (name str))\n(declare format (name str))\n(declare is-executable (flag bool))\n(declare is-little-endian (flag bool))\n(declare llvm:base-address (addr int))\n(declare llvm:code-entry (name str) (off int) (size int))\n(declare llvm:coff-import-library (name str))\n(declare llvm:coff-virtual-section-header (name str) (addr int) (size int))\n(declare llvm:elf-program-header (name str) (off int) (size int))\n(declare llvm:elf-program-header-flags (name str) (ld bool) (r bool) \n (w bool) (x bool))\n(declare llvm:elf-virtual-program-header (name str) (addr int) (size int))\n(declare llvm:entry-point (addr int))\n(declare llvm:macho-symbol (name str) (value int))\n(declare llvm:name-reference (at int) (name str))\n(declare llvm:relocation (at int) (addr int))\n(declare llvm:section-entry (name str) (addr int) (size int) (off int))\n(declare llvm:section-flags (name str) (r bool) (w bool) (x bool))\n(declare llvm:segment-command (name str) (off int) (size int))\n(declare llvm:segment-command-flags (name str) (r bool) (w bool) (x bool))\n(declare llvm:symbol-entry (name str) (addr int) (size int) (off int)\n (value int))\n(declare llvm:virtual-segment-command (name str) (addr int) (size int))\n(declare mapped (addr int) (size int) (off int))\n(declare named-region (addr int) (size int) (name str))\n(declare named-symbol (addr int) (name str))\n(declare require (name str))\n(declare section (addr int) (size int))\n(declare segment (addr int) (size int) (r bool) (w bool) (x bool))\n(declare subarch (name str))\n(declare symbol-chunk (addr int) (size int) (root int))\n(declare symbol-value (addr int) (value int))\n(declare system (name str))\n(declare vendor (name str))\n\n(abi unknown)\n(arch aarch64)\n(base-address 0)\n(bias 0)\n(bits 64)\n(code-region 1876 20 1876)\n(code-region 1536 340 1536)\n(code-region 1440 96 1440)\n(code-region 1408 24 1408)\n(code-start 1652)\n(code-start 1600)\n(code-start 1536)\n(entry-point 1600)\n(external-reference 69592 _ITM_deregisterTMCloneTable)\n(external-reference 69600 __cxa_finalize)\n(external-reference 69608 __gmon_start__)\n(external-reference 69624 _ITM_registerTMCloneTable)\n(external-reference 69552 __libc_start_main)\n(external-reference 69560 __cxa_finalize)\n(external-reference 69568 __gmon_start__)\n(external-reference 69576 abort)\n(format elf)\n(is-executable true)\n(is-little-endian true)\n(llvm:base-address 0)\n(llvm:code-entry abort 0 0)\n(llvm:code-entry __cxa_finalize 0 0)\n(llvm:code-entry __libc_start_main 0 0)\n(llvm:code-entry _init 1408 0)\n(llvm:code-entry main 1536 24)\n(llvm:code-entry _start 1600 52)\n(llvm:code-entry abort@GLIBC_2.17 0 0)\n(llvm:code-entry _fini 1876 0)\n(llvm:code-entry __cxa_finalize@GLIBC_2.17 0 0)\n(llvm:code-entry __libc_start_main@GLIBC_2.34 0 0)\n(llvm:code-entry frame_dummy 1872 0)\n(llvm:code-entry __do_global_dtors_aux 1792 0)\n(llvm:code-entry register_tm_clones 1728 0)\n(llvm:code-entry deregister_tm_clones 1680 0)\n(llvm:code-entry call_weak_fn 1652 20)\n(llvm:code-entry .fini 1876 20)\n(llvm:code-entry .text 1536 340)\n(llvm:code-entry .plt 1440 96)\n(llvm:code-entry .init 1408 24)\n(llvm:elf-program-header 08 3480 616)\n(llvm:elf-program-header 07 0 0)\n(llvm:elf-program-header 06 1900 60)\n(llvm:elf-program-header 05 596 68)\n(llvm:elf-program-header 04 3496 496)\n(llvm:elf-program-header 03 3480 632)\n(llvm:elf-program-header 02 0 2120)\n(llvm:elf-program-header 01 568 27)\n(llvm:elf-program-header 00 64 504)\n(llvm:elf-program-header-flags 08 false true false false)\n(llvm:elf-program-header-flags 07 false true true false)\n(llvm:elf-program-header-flags 06 false true false false)\n(llvm:elf-program-header-flags 05 false true false false)\n(llvm:elf-program-header-flags 04 false true true false)\n(llvm:elf-program-header-flags 03 true true true false)\n(llvm:elf-program-header-flags 02 true true false true)\n(llvm:elf-program-header-flags 01 false true false false)\n(llvm:elf-program-header-flags 00 false true false false)\n(llvm:elf-virtual-program-header 08 69016 616)\n(llvm:elf-virtual-program-header 07 0 0)\n(llvm:elf-virtual-program-header 06 1900 60)\n(llvm:elf-virtual-program-header 05 596 68)\n(llvm:elf-virtual-program-header 04 69032 496)\n(llvm:elf-virtual-program-header 03 69016 648)\n(llvm:elf-virtual-program-header 02 0 2120)\n(llvm:elf-virtual-program-header 01 568 27)\n(llvm:elf-virtual-program-header 00 64 504)\n(llvm:entry-point 1600)\n(llvm:name-reference 69576 abort)\n(llvm:name-reference 69568 __gmon_start__)\n(llvm:name-reference 69560 __cxa_finalize)\n(llvm:name-reference 69552 __libc_start_main)\n(llvm:name-reference 69624 _ITM_registerTMCloneTable)\n(llvm:name-reference 69608 __gmon_start__)\n(llvm:name-reference 69600 __cxa_finalize)\n(llvm:name-reference 69592 _ITM_deregisterTMCloneTable)\n(llvm:section-entry .shstrtab 0 250 6857)\n(llvm:section-entry .strtab 0 561 6296)\n(llvm:section-entry .symtab 0 2136 4160)\n(llvm:section-entry .comment 0 43 4112)\n(llvm:section-entry .bss 69648 16 4112)\n(llvm:section-entry .data 69632 16 4096)\n(llvm:section-entry .got 69528 104 3992)\n(llvm:section-entry .dynamic 69032 496 3496)\n(llvm:section-entry .fini_array 69024 8 3488)\n(llvm:section-entry .init_array 69016 8 3480)\n(llvm:section-entry .eh_frame 1960 160 1960)\n(llvm:section-entry .eh_frame_hdr 1900 60 1900)\n(llvm:section-entry .rodata 1896 4 1896)\n(llvm:section-entry .fini 1876 20 1876)\n(llvm:section-entry .text 1536 340 1536)\n(llvm:section-entry .plt 1440 96 1440)\n(llvm:section-entry .init 1408 24 1408)\n(llvm:section-entry .rela.plt 1312 96 1312)\n(llvm:section-entry .rela.dyn 1120 192 1120)\n(llvm:section-entry .gnu.version_r 1072 48 1072)\n(llvm:section-entry .gnu.version 1054 18 1054)\n(llvm:section-entry .dynstr 912 141 912)\n(llvm:section-entry .dynsym 696 216 696)\n(llvm:section-entry .gnu.hash 664 28 664)\n(llvm:section-entry .note.ABI-tag 632 32 632)\n(llvm:section-entry .note.gnu.build-id 596 36 596)\n(llvm:section-entry .interp 568 27 568)\n(llvm:section-flags .shstrtab true false false)\n(llvm:section-flags .strtab true false false)\n(llvm:section-flags .symtab true false false)\n(llvm:section-flags .comment true false false)\n(llvm:section-flags .bss true true false)\n(llvm:section-flags .data true true false)\n(llvm:section-flags .got true true false)\n(llvm:section-flags .dynamic true true false)\n(llvm:section-flags .fini_array true true false)\n(llvm:section-flags .init_array true true false)\n(llvm:section-flags .eh_frame true false false)\n(llvm:section-flags .eh_frame_hdr true false false)\n(llvm:section-flags .rodata true false false)\n(llvm:section-flags .fini true false true)\n(llvm:section-flags .text true false true)\n(llvm:section-flags .plt true false true)\n(llvm:section-flags .init true false true)\n(llvm:section-flags .rela.plt true false false)\n(llvm:section-flags .rela.dyn true false false)\n(llvm:section-flags .gnu.version_r true false false)\n(llvm:section-flags .gnu.version true false false)\n(llvm:section-flags .dynstr true false false)\n(llvm:section-flags .dynsym true false false)\n(llvm:section-flags .gnu.hash true false false)\n(llvm:section-flags .note.ABI-tag true false false)\n(llvm:section-flags .note.gnu.build-id true false false)\n(llvm:section-flags .interp true false false)\n(llvm:symbol-entry abort 0 0 0 0)\n(llvm:symbol-entry __cxa_finalize 0 0 0 0)\n(llvm:symbol-entry __libc_start_main 0 0 0 0)\n(llvm:symbol-entry _init 1408 0 1408 1408)\n(llvm:symbol-entry main 1536 24 1536 1536)\n(llvm:symbol-entry _start 1600 52 1600 1600)\n(llvm:symbol-entry abort@GLIBC_2.17 0 0 0 0)\n(llvm:symbol-entry _fini 1876 0 1876 1876)\n(llvm:symbol-entry __cxa_finalize@GLIBC_2.17 0 0 0 0)\n(llvm:symbol-entry __libc_start_main@GLIBC_2.34 0 0 0 0)\n(llvm:symbol-entry frame_dummy 1872 0 1872 1872)\n(llvm:symbol-entry __do_global_dtors_aux 1792 0 1792 1792)\n(llvm:symbol-entry register_tm_clones 1728 0 1728 1728)\n(llvm:symbol-entry deregister_tm_clones 1680 0 1680 1680)\n(llvm:symbol-entry call_weak_fn 1652 20 1652 1652)\n(mapped 0 2120 0)\n(mapped 69016 632 3480)\n(named-region 0 2120 02)\n(named-region 69016 648 03)\n(named-region 568 27 .interp)\n(named-region 596 36 .note.gnu.build-id)\n(named-region 632 32 .note.ABI-tag)\n(named-region 664 28 .gnu.hash)\n(named-region 696 216 .dynsym)\n(named-region 912 141 .dynstr)\n(named-region 1054 18 .gnu.version)\n(named-region 1072 48 .gnu.version_r)\n(named-region 1120 192 .rela.dyn)\n(named-region 1312 96 .rela.plt)\n(named-region 1408 24 .init)\n(named-region 1440 96 .plt)\n(named-region 1536 340 .text)\n(named-region 1876 20 .fini)\n(named-region 1896 4 .rodata)\n(named-region 1900 60 .eh_frame_hdr)\n(named-region 1960 160 .eh_frame)\n(named-region 69016 8 .init_array)\n(named-region 69024 8 .fini_array)\n(named-region 69032 496 .dynamic)\n(named-region 69528 104 .got)\n(named-region 69632 16 .data)\n(named-region 69648 16 .bss)\n(named-region 0 43 .comment)\n(named-region 0 2136 .symtab)\n(named-region 0 561 .strtab)\n(named-region 0 250 .shstrtab)\n(named-symbol 1652 call_weak_fn)\n(named-symbol 1680 deregister_tm_clones)\n(named-symbol 1728 register_tm_clones)\n(named-symbol 1792 __do_global_dtors_aux)\n(named-symbol 1872 frame_dummy)\n(named-symbol 0 __libc_start_main@GLIBC_2.34)\n(named-symbol 0 __cxa_finalize@GLIBC_2.17)\n(named-symbol 1876 _fini)\n(named-symbol 0 abort@GLIBC_2.17)\n(named-symbol 1600 _start)\n(named-symbol 1536 main)\n(named-symbol 1408 _init)\n(named-symbol 0 __libc_start_main)\n(named-symbol 0 __cxa_finalize)\n(named-symbol 0 abort)\n(require libc.so.6)\n(section 568 27)\n(section 596 36)\n(section 632 32)\n(section 664 28)\n(section 696 216)\n(section 912 141)\n(section 1054 18)\n(section 1072 48)\n(section 1120 192)\n(section 1312 96)\n(section 1408 24)\n(section 1440 96)\n(section 1536 340)\n(section 1876 20)\n(section 1896 4)\n(section 1900 60)\n(section 1960 160)\n(section 69016 8)\n(section 69024 8)\n(section 69032 496)\n(section 69528 104)\n(section 69632 16)\n(section 69648 16)\n(section 0 43)\n(section 0 2136)\n(section 0 561)\n(section 0 250)\n(segment 0 2120 true false true)\n(segment 69016 648 true true false)\n(subarch v8)\n(symbol-chunk 1652 20 1652)\n(symbol-chunk 1600 52 1600)\n(symbol-chunk 1536 24 1536)\n(symbol-value 1652 1652)\n(symbol-value 1680 1680)\n(symbol-value 1728 1728)\n(symbol-value 1792 1792)\n(symbol-value 1872 1872)\n(symbol-value 1876 1876)\n(symbol-value 1600 1600)\n(symbol-value 1536 1536)\n(symbol-value 1408 1408)\n(symbol-value 0 0)\n(system \"\")\n(vendor \"\")\n"), -Attr("abi-name","\"aarch64-linux-gnu-elf\"")]), -Sections([Section(".shstrtab", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x40\x06\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xc8\x1b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x38\x00\x09\x00\x40\x00\x1c\x00\x1b\x00\x06\x00\x00\x00\x04\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x04\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x48\x08\x00\x00\x00\x00\x00\x00\x48\x08\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x01\x00\x00\x00\x06\x00\x00\x00\x98\x0d\x00\x00\x00\x00\x00\x00\x98\x0d"), -Section(".strtab", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x40\x06\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xc8\x1b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x38\x00\x09\x00\x40\x00\x1c\x00\x1b\x00\x06\x00\x00\x00\x04\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x04\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x48\x08\x00\x00\x00\x00\x00\x00\x48\x08\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x01\x00\x00\x00\x06\x00\x00\x00\x98\x0d\x00\x00\x00\x00\x00\x00\x98\x0d\x01\x00\x00\x00\x00\x00\x98\x0d\x01\x00\x00\x00\x00\x00\x78\x02\x00\x00\x00\x00\x00\x00\x88\x02\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x02\x00\x00\x00\x06\x00\x00\x00\xa8\x0d\x00\x00\x00\x00\x00\x00\xa8\x0d\x01\x00\x00\x00\x00\x00\xa8\x0d\x01\x00\x00\x00\x00\x00\xf0\x01\x00\x00\x00\x00\x00\x00\xf0\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x04\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x50\xe5\x74\x64\x04\x00\x00\x00\x6c\x07\x00\x00\x00\x00\x00\x00\x6c\x07\x00\x00\x00\x00\x00\x00\x6c\x07\x00\x00\x00\x00\x00\x00\x3c\x00\x00\x00\x00\x00\x00\x00\x3c\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x51\xe5\x74\x64\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x52\xe5\x74\x64\x04\x00\x00\x00\x98\x0d\x00\x00\x00\x00\x00\x00\x98\x0d\x01\x00\x00\x00\x00\x00\x98\x0d\x01\x00\x00\x00\x00\x00\x68\x02\x00\x00\x00\x00\x00\x00\x68\x02\x00\x00\x00\x00\x00\x00\x01"), -Section(".comment", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x40\x06\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xc8\x1b\x00"), -Section(".interp", 0x238, "\x2f\x6c\x69\x62\x2f\x6c\x64\x2d\x6c\x69\x6e\x75\x78\x2d\x61\x61\x72\x63\x68\x36\x34\x2e\x73\x6f\x2e\x31\x00"), -Section(".note.gnu.build-id", 0x254, "\x04\x00\x00\x00\x14\x00\x00\x00\x03\x00\x00\x00\x47\x4e\x55\x00\xf6\x39\x4d\xa8\x84\x5d\xb4\xe7\x4d\x45\xe8\xa1\xa4\x68\x88\x6e\x79\xee\xcf\x26"), -Section(".note.ABI-tag", 0x278, "\x04\x00\x00\x00\x10\x00\x00\x00\x01\x00\x00\x00\x47\x4e\x55\x00\x00\x00\x00\x00\x03\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00"), -Section(".gnu.hash", 0x298, "\x01\x00\x00\x00\x01\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".dynsym", 0x2B8, "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x0b\x00\x80\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x16\x00\x00\x10\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x48\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x22\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x22\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x73\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".dynstr", 0x390, "\x00\x5f\x5f\x63\x78\x61\x5f\x66\x69\x6e\x61\x6c\x69\x7a\x65\x00\x5f\x5f\x6c\x69\x62\x63\x5f\x73\x74\x61\x72\x74\x5f\x6d\x61\x69\x6e\x00\x61\x62\x6f\x72\x74\x00\x6c\x69\x62\x63\x2e\x73\x6f\x2e\x36\x00\x47\x4c\x49\x42\x43\x5f\x32\x2e\x31\x37\x00\x47\x4c\x49\x42\x43\x5f\x32\x2e\x33\x34\x00\x5f\x49\x54\x4d\x5f\x64\x65\x72\x65\x67\x69\x73\x74\x65\x72\x54\x4d\x43\x6c\x6f\x6e\x65\x54\x61\x62\x6c\x65\x00\x5f\x5f\x67\x6d\x6f\x6e\x5f\x73\x74\x61\x72\x74\x5f\x5f\x00\x5f\x49\x54\x4d\x5f\x72\x65\x67\x69\x73\x74\x65\x72\x54\x4d\x43\x6c\x6f\x6e\x65\x54\x61\x62\x6c\x65\x00"), -Section(".gnu.version", 0x41E, "\x00\x00\x00\x00\x00\x00\x02\x00\x01\x00\x03\x00\x01\x00\x03\x00\x01\x00"), -Section(".gnu.version_r", 0x430, "\x01\x00\x02\x00\x28\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x97\x91\x96\x06\x00\x00\x03\x00\x32\x00\x00\x00\x10\x00\x00\x00\xb4\x91\x96\x06\x00\x00\x02\x00\x3d\x00\x00\x00\x00\x00\x00\x00"), -Section(".rela.dyn", 0x460, "\x98\x0d\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x50\x07\x00\x00\x00\x00\x00\x00\xa0\x0d\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\xf0\x0f\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x00\x06\x00\x00\x00\x00\x00\x00\x08\x10\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x08\x10\x01\x00\x00\x00\x00\x00\xd8\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe0\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe8\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xf8\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".rela.plt", 0x520, "\xb0\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xb8\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xc0\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xc8\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".init", 0x580, "\x1f\x20\x03\xd5\xfd\x7b\xbf\xa9\xfd\x03\x00\x91\x3a\x00\x00\x94\xfd\x7b\xc1\xa8\xc0\x03\x5f\xd6"), -Section(".plt", 0x5A0, "\xf0\x7b\xbf\xa9\x90\x00\x00\x90\x11\xd6\x47\xf9\x10\xa2\x3e\x91\x20\x02\x1f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x90\x00\x00\x90\x11\xda\x47\xf9\x10\xc2\x3e\x91\x20\x02\x1f\xd6\x90\x00\x00\x90\x11\xde\x47\xf9\x10\xe2\x3e\x91\x20\x02\x1f\xd6\x90\x00\x00\x90\x11\xe2\x47\xf9\x10\x02\x3f\x91\x20\x02\x1f\xd6\x90\x00\x00\x90\x11\xe6\x47\xf9\x10\x22\x3f\x91\x20\x02\x1f\xd6"), -Section(".fini", 0x754, "\x1f\x20\x03\xd5\xfd\x7b\xbf\xa9\xfd\x03\x00\x91\xfd\x7b\xc1\xa8\xc0\x03\x5f\xd6"), -Section(".rodata", 0x768, "\x01\x00\x02\x00"), -Section(".eh_frame_hdr", 0x76C, "\x01\x1b\x03\x3b\x38\x00\x00\x00\x06\x00\x00\x00\x94\xfe\xff\xff\xc4\x00\x00\x00\xd4\xfe\xff\xff\x50\x00\x00\x00\x24\xff\xff\xff\x64\x00\x00\x00\x54\xff\xff\xff\x78\x00\x00\x00\x94\xff\xff\xff\x8c\x00\x00\x00\xe4\xff\xff\xff\xb0\x00\x00\x00"), -Section(".eh_frame", 0x7A8, "\x10\x00\x00\x00\x00\x00\x00\x00\x01\x7a\x52\x00\x04\x78\x1e\x01\x1b\x0c\x1f\x00\x10\x00\x00\x00\x18\x00\x00\x00\x7c\xfe\xff\xff\x34\x00\x00\x00\x00\x41\x07\x1e\x10\x00\x00\x00\x2c\x00\x00\x00\xb8\xfe\xff\xff\x30\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x40\x00\x00\x00\xd4\xfe\xff\xff\x3c\x00\x00\x00\x00\x00\x00\x00\x20\x00\x00\x00\x54\x00\x00\x00\x00\xff\xff\xff\x48\x00\x00\x00\x00\x41\x0e\x20\x9d\x04\x9e\x03\x42\x93\x02\x4e\xde\xdd\xd3\x0e\x00\x00\x00\x00\x10\x00\x00\x00\x78\x00\x00\x00\x2c\xff\xff\xff\x04\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x8c\x00\x00\x00\xc8\xfd\xff\xff\x18\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".fini_array", 0x10DA0, "\x00\x07\x00\x00\x00\x00\x00\x00"), -Section(".dynamic", 0x10DA8, "\x01\x00\x00\x00\x00\x00\x00\x00\x28\x00\x00\x00\x00\x00\x00\x00\x0c\x00\x00\x00\x00\x00\x00\x00\x80\x05\x00\x00\x00\x00\x00\x00\x0d\x00\x00\x00\x00\x00\x00\x00\x54\x07\x00\x00\x00\x00\x00\x00\x19\x00\x00\x00\x00\x00\x00\x00\x98\x0d\x01\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x1a\x00\x00\x00\x00\x00\x00\x00\xa0\x0d\x01\x00\x00\x00\x00\x00\x1c\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\xf5\xfe\xff\x6f\x00\x00\x00\x00\x98\x02\x00\x00\x00\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x90\x03\x00\x00\x00\x00\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\xb8\x02\x00\x00\x00\x00\x00\x00\x0a\x00\x00\x00\x00\x00\x00\x00\x8d\x00\x00\x00\x00\x00\x00\x00\x0b\x00\x00\x00\x00\x00\x00\x00\x18\x00\x00\x00\x00\x00\x00\x00\x15\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x98\x0f\x01\x00\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x60\x00\x00\x00\x00\x00\x00\x00\x14\x00\x00\x00\x00\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x17\x00\x00\x00\x00\x00\x00\x00\x20\x05\x00\x00\x00\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x60\x04\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\xc0\x00\x00\x00\x00\x00\x00\x00\x09\x00\x00\x00\x00\x00\x00\x00\x18\x00\x00\x00\x00\x00\x00\x00\x1e\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\xfb\xff\xff\x6f\x00\x00\x00\x00\x01\x00\x00\x08\x00\x00\x00\x00\xfe\xff\xff\x6f\x00\x00\x00\x00\x30\x04\x00\x00\x00\x00\x00\x00\xff\xff\xff\x6f\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\xf0\xff\xff\x6f\x00\x00\x00\x00\x1e\x04\x00\x00\x00\x00\x00\x00\xf9\xff\xff\x6f\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".init_array", 0x10D98, "\x50\x07\x00\x00\x00\x00\x00\x00"), -Section(".got", 0x10F98, "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xa0\x05\x00\x00\x00\x00\x00\x00\xa0\x05\x00\x00\x00\x00\x00\x00\xa0\x05\x00\x00\x00\x00\x00\x00\xa0\x05\x00\x00\x00\x00\x00\x00\xa8\x0d\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".data", 0x11000, "\x00\x00\x00\x00\x00\x00\x00\x00\x08\x10\x01\x00\x00\x00\x00\x00"), -Section(".text", 0x600, "\x81\x00\x00\xb0\x22\x50\x00\x91\x00\x00\x80\x52\x42\x04\x40\xb9\x22\x14\x00\xb9\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1d\x00\x80\xd2\x1e\x00\x80\xd2\xe5\x03\x00\xaa\xe1\x03\x40\xf9\xe2\x23\x00\x91\xe6\x03\x00\x91\x80\x00\x00\x90\x00\xf8\x47\xf9\x03\x00\x80\xd2\x04\x00\x80\xd2\xd5\xff\xff\x97\xe0\xff\xff\x97\x80\x00\x00\x90\x00\xf4\x47\xf9\x40\x00\x00\xb4\xd8\xff\xff\x17\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x80\x00\x00\xb0\x00\x40\x00\x91\x81\x00\x00\xb0\x21\x40\x00\x91\x3f\x00\x00\xeb\xc0\x00\x00\x54\x81\x00\x00\x90\x21\xec\x47\xf9\x61\x00\x00\xb4\xf0\x03\x01\xaa\x00\x02\x1f\xd6\xc0\x03\x5f\xd6\x80\x00\x00\xb0\x00\x40\x00\x91\x81\x00\x00\xb0\x21\x40\x00\x91\x21\x00\x00\xcb\x22\xfc\x7f\xd3\x41\x0c\x81\x8b\x21\xfc\x41\x93\xc1\x00\x00\xb4\x82\x00\x00\x90\x42\xfc\x47\xf9\x62\x00\x00\xb4\xf0\x03\x02\xaa\x00\x02\x1f\xd6\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\xfd\x7b\xbe\xa9\xfd\x03\x00\x91\xf3\x0b\x00\xf9\x93\x00\x00\xb0\x60\x42\x40\x39\x40\x01\x00\x35\x80\x00\x00\x90\x00\xf0\x47\xf9\x80\x00\x00\xb4\x80\x00\x00\xb0\x00\x04\x40\xf9\xa9\xff\xff\x97\xd8\xff\xff\x97\x20\x00\x80\x52\x60\x42\x00\x39\xf3\x0b\x40\xf9\xfd\x7b\xc2\xa8\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\xdc\xff\xff\x17")]), -Memmap([Annotation(Region(0x0,0x847), Attr("segment","02 0 2120")), -Annotation(Region(0x600,0x617), Attr("symbol","\"main\"")), -Annotation(Region(0x0,0xF9), Attr("section","\".shstrtab\"")), -Annotation(Region(0x0,0x230), Attr("section","\".strtab\"")), -Annotation(Region(0x0,0x2A), Attr("section","\".comment\"")), -Annotation(Region(0x238,0x252), Attr("section","\".interp\"")), -Annotation(Region(0x254,0x277), Attr("section","\".note.gnu.build-id\"")), -Annotation(Region(0x278,0x297), Attr("section","\".note.ABI-tag\"")), -Annotation(Region(0x298,0x2B3), Attr("section","\".gnu.hash\"")), -Annotation(Region(0x2B8,0x38F), Attr("section","\".dynsym\"")), -Annotation(Region(0x390,0x41C), Attr("section","\".dynstr\"")), -Annotation(Region(0x41E,0x42F), Attr("section","\".gnu.version\"")), -Annotation(Region(0x430,0x45F), Attr("section","\".gnu.version_r\"")), -Annotation(Region(0x460,0x51F), Attr("section","\".rela.dyn\"")), -Annotation(Region(0x520,0x57F), Attr("section","\".rela.plt\"")), -Annotation(Region(0x580,0x597), Attr("section","\".init\"")), -Annotation(Region(0x5A0,0x5FF), Attr("section","\".plt\"")), -Annotation(Region(0x580,0x597), Attr("code-region","()")), -Annotation(Region(0x5A0,0x5FF), Attr("code-region","()")), -Annotation(Region(0x600,0x617), Attr("symbol-info","main 0x600 24")), -Annotation(Region(0x640,0x673), Attr("symbol","\"_start\"")), -Annotation(Region(0x640,0x673), Attr("symbol-info","_start 0x640 52")), -Annotation(Region(0x674,0x687), Attr("symbol","\"call_weak_fn\"")), -Annotation(Region(0x674,0x687), Attr("symbol-info","call_weak_fn 0x674 20")), -Annotation(Region(0x754,0x767), Attr("section","\".fini\"")), -Annotation(Region(0x768,0x76B), Attr("section","\".rodata\"")), -Annotation(Region(0x76C,0x7A7), Attr("section","\".eh_frame_hdr\"")), -Annotation(Region(0x7A8,0x847), Attr("section","\".eh_frame\"")), -Annotation(Region(0x10D98,0x1100F), Attr("segment","03 0x10D98 648")), -Annotation(Region(0x10DA0,0x10DA7), Attr("section","\".fini_array\"")), -Annotation(Region(0x10DA8,0x10F97), Attr("section","\".dynamic\"")), -Annotation(Region(0x10D98,0x10D9F), Attr("section","\".init_array\"")), -Annotation(Region(0x10F98,0x10FFF), Attr("section","\".got\"")), -Annotation(Region(0x11000,0x1100F), Attr("section","\".data\"")), -Annotation(Region(0x600,0x753), Attr("section","\".text\"")), -Annotation(Region(0x600,0x753), Attr("code-region","()")), -Annotation(Region(0x754,0x767), Attr("code-region","()"))]), -Program(Tid(1_511, "%000005e7"), Attrs([]), - Subs([Sub(Tid(1_461, "@__cxa_finalize"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x5D0"), -Attr("stub","()")]), "__cxa_finalize", Args([Arg(Tid(1_512, "%000005e8"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("__cxa_finalize_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(857, "@__cxa_finalize"), - Attrs([Attr("address","0x5D0")]), Phis([]), -Defs([Def(Tid(1_105, "%00000451"), Attrs([Attr("address","0x5D0"), -Attr("insn","adrp x16, #65536")]), Var("R16",Imm(64)), Int(65536,64)), -Def(Tid(1_112, "%00000458"), Attrs([Attr("address","0x5D4"), -Attr("insn","ldr x17, [x16, #0xfb8]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(4024,64)),LittleEndian(),64)), -Def(Tid(1_118, "%0000045e"), Attrs([Attr("address","0x5D8"), -Attr("insn","add x16, x16, #0xfb8")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(4024,64)))]), Jmps([Call(Tid(1_123, "%00000463"), - Attrs([Attr("address","0x5DC"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), -Sub(Tid(1_462, "@__do_global_dtors_aux"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x700")]), - "__do_global_dtors_aux", Args([Arg(Tid(1_513, "%000005e9"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("__do_global_dtors_aux_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(710, "@__do_global_dtors_aux"), - Attrs([Attr("address","0x700")]), Phis([]), Defs([Def(Tid(714, "%000002ca"), - Attrs([Attr("address","0x700"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("#3",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(18446744073709551584,64))), -Def(Tid(720, "%000002d0"), Attrs([Attr("address","0x700"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("#3",Imm(64)),Var("R29",Imm(64)),LittleEndian(),64)), -Def(Tid(726, "%000002d6"), Attrs([Attr("address","0x700"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("#3",Imm(64)),Int(8,64)),Var("R30",Imm(64)),LittleEndian(),64)), -Def(Tid(730, "%000002da"), Attrs([Attr("address","0x700"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("R31",Imm(64)), -Var("#3",Imm(64))), Def(Tid(736, "%000002e0"), - Attrs([Attr("address","0x704"), Attr("insn","mov x29, sp")]), - Var("R29",Imm(64)), Var("R31",Imm(64))), Def(Tid(744, "%000002e8"), - Attrs([Attr("address","0x708"), Attr("insn","str x19, [sp, #0x10]")]), - Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(16,64)),Var("R19",Imm(64)),LittleEndian(),64)), -Def(Tid(749, "%000002ed"), Attrs([Attr("address","0x70C"), -Attr("insn","adrp x19, #69632")]), Var("R19",Imm(64)), Int(69632,64)), -Def(Tid(756, "%000002f4"), Attrs([Attr("address","0x710"), -Attr("insn","ldrb w0, [x19, #0x10]")]), Var("R0",Imm(64)), -UNSIGNED(64,Load(Var("mem",Mem(64,8)),PLUS(Var("R19",Imm(64)),Int(16,64)),LittleEndian(),8)))]), -Jmps([Goto(Tid(763, "%000002fb"), Attrs([Attr("address","0x714"), -Attr("insn","cbnz w0, #0x28")]), - NEQ(Extract(31,0,Var("R0",Imm(64))),Int(0,32)), -Direct(Tid(761, "%000002f9"))), Goto(Tid(1_501, "%000005dd"), Attrs([]), - Int(1,1), Direct(Tid(802, "%00000322")))])), Blk(Tid(802, "%00000322"), - Attrs([Attr("address","0x718")]), Phis([]), Defs([Def(Tid(805, "%00000325"), - Attrs([Attr("address","0x718"), Attr("insn","adrp x0, #65536")]), - Var("R0",Imm(64)), Int(65536,64)), Def(Tid(812, "%0000032c"), - Attrs([Attr("address","0x71C"), Attr("insn","ldr x0, [x0, #0xfe0]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(4064,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(818, "%00000332"), Attrs([Attr("address","0x720"), -Attr("insn","cbz x0, #0x10")]), EQ(Var("R0",Imm(64)),Int(0,64)), -Direct(Tid(816, "%00000330"))), Goto(Tid(1_502, "%000005de"), Attrs([]), - Int(1,1), Direct(Tid(841, "%00000349")))])), Blk(Tid(841, "%00000349"), - Attrs([Attr("address","0x724")]), Phis([]), Defs([Def(Tid(844, "%0000034c"), - Attrs([Attr("address","0x724"), Attr("insn","adrp x0, #69632")]), - Var("R0",Imm(64)), Int(69632,64)), Def(Tid(851, "%00000353"), - Attrs([Attr("address","0x728"), Attr("insn","ldr x0, [x0, #0x8]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(856, "%00000358"), Attrs([Attr("address","0x72C"), -Attr("insn","bl #-0x15c")]), Var("R30",Imm(64)), Int(1840,64))]), -Jmps([Call(Tid(859, "%0000035b"), Attrs([Attr("address","0x72C"), -Attr("insn","bl #-0x15c")]), Int(1,1), -(Direct(Tid(1_461, "@__cxa_finalize")),Direct(Tid(816, "%00000330"))))])), -Blk(Tid(816, "%00000330"), Attrs([Attr("address","0x730")]), Phis([]), -Defs([Def(Tid(824, "%00000338"), Attrs([Attr("address","0x730"), -Attr("insn","bl #-0xa0")]), Var("R30",Imm(64)), Int(1844,64))]), -Jmps([Call(Tid(826, "%0000033a"), Attrs([Attr("address","0x730"), -Attr("insn","bl #-0xa0")]), Int(1,1), -(Direct(Tid(1_475, "@deregister_tm_clones")),Direct(Tid(828, "%0000033c"))))])), -Blk(Tid(828, "%0000033c"), Attrs([Attr("address","0x734")]), Phis([]), -Defs([Def(Tid(831, "%0000033f"), Attrs([Attr("address","0x734"), -Attr("insn","mov w0, #0x1")]), Var("R0",Imm(64)), Int(1,64)), -Def(Tid(839, "%00000347"), Attrs([Attr("address","0x738"), -Attr("insn","strb w0, [x19, #0x10]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R19",Imm(64)),Int(16,64)),Extract(7,0,Var("R0",Imm(64))),LittleEndian(),8))]), -Jmps([Goto(Tid(1_503, "%000005df"), Attrs([]), Int(1,1), -Direct(Tid(761, "%000002f9")))])), Blk(Tid(761, "%000002f9"), - Attrs([Attr("address","0x73C")]), Phis([]), Defs([Def(Tid(771, "%00000303"), - Attrs([Attr("address","0x73C"), Attr("insn","ldr x19, [sp, #0x10]")]), - Var("R19",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(16,64)),LittleEndian(),64)), -Def(Tid(778, "%0000030a"), Attrs([Attr("address","0x740"), -Attr("insn","ldp x29, x30, [sp], #0x20")]), Var("R29",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(783, "%0000030f"), Attrs([Attr("address","0x740"), -Attr("insn","ldp x29, x30, [sp], #0x20")]), Var("R30",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(787, "%00000313"), Attrs([Attr("address","0x740"), -Attr("insn","ldp x29, x30, [sp], #0x20")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(32,64)))]), Jmps([Call(Tid(792, "%00000318"), - Attrs([Attr("address","0x744"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), Sub(Tid(1_466, "@__libc_start_main"), - Attrs([Attr("c.proto","signed (*)(signed (*)(signed , char** , char** );* main, signed , char** , \nvoid* auxv)"), -Attr("address","0x5C0"), Attr("stub","()")]), "__libc_start_main", - Args([Arg(Tid(1_514, "%000005ea"), - Attrs([Attr("c.layout","**[ : 64]"), -Attr("c.data","Top:u64 ptr ptr"), -Attr("c.type","signed (*)(signed , char** , char** );*")]), - Var("__libc_start_main_main",Imm(64)), Var("R0",Imm(64)), In()), -Arg(Tid(1_515, "%000005eb"), Attrs([Attr("c.layout","[signed : 32]"), -Attr("c.data","Top:u32"), Attr("c.type","signed")]), - Var("__libc_start_main_arg2",Imm(32)), LOW(32,Var("R1",Imm(64))), In()), -Arg(Tid(1_516, "%000005ec"), Attrs([Attr("c.layout","**[char : 8]"), -Attr("c.data","Top:u8 ptr ptr"), Attr("c.type","char**")]), - Var("__libc_start_main_arg3",Imm(64)), Var("R2",Imm(64)), Both()), -Arg(Tid(1_517, "%000005ed"), Attrs([Attr("c.layout","*[ : 8]"), -Attr("c.data","{} ptr"), Attr("c.type","void*")]), - Var("__libc_start_main_auxv",Imm(64)), Var("R3",Imm(64)), Both()), -Arg(Tid(1_518, "%000005ee"), Attrs([Attr("c.layout","[signed : 32]"), -Attr("c.data","Top:u32"), Attr("c.type","signed")]), - Var("__libc_start_main_result",Imm(32)), LOW(32,Var("R0",Imm(64))), -Out())]), Blks([Blk(Tid(543, "@__libc_start_main"), - Attrs([Attr("address","0x5C0")]), Phis([]), -Defs([Def(Tid(1_083, "%0000043b"), Attrs([Attr("address","0x5C0"), -Attr("insn","adrp x16, #65536")]), Var("R16",Imm(64)), Int(65536,64)), -Def(Tid(1_090, "%00000442"), Attrs([Attr("address","0x5C4"), -Attr("insn","ldr x17, [x16, #0xfb0]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(4016,64)),LittleEndian(),64)), -Def(Tid(1_096, "%00000448"), Attrs([Attr("address","0x5C8"), -Attr("insn","add x16, x16, #0xfb0")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(4016,64)))]), Jmps([Call(Tid(1_101, "%0000044d"), - Attrs([Attr("address","0x5CC"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), Sub(Tid(1_467, "@_fini"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x754")]), - "_fini", Args([Arg(Tid(1_519, "%000005ef"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("_fini_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(31, "@_fini"), - Attrs([Attr("address","0x754")]), Phis([]), Defs([Def(Tid(37, "%00000025"), - Attrs([Attr("address","0x758"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("#0",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(18446744073709551600,64))), -Def(Tid(43, "%0000002b"), Attrs([Attr("address","0x758"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("#0",Imm(64)),Var("R29",Imm(64)),LittleEndian(),64)), -Def(Tid(49, "%00000031"), Attrs([Attr("address","0x758"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("#0",Imm(64)),Int(8,64)),Var("R30",Imm(64)),LittleEndian(),64)), -Def(Tid(53, "%00000035"), Attrs([Attr("address","0x758"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("R31",Imm(64)), -Var("#0",Imm(64))), Def(Tid(59, "%0000003b"), Attrs([Attr("address","0x75C"), -Attr("insn","mov x29, sp")]), Var("R29",Imm(64)), Var("R31",Imm(64))), -Def(Tid(66, "%00000042"), Attrs([Attr("address","0x760"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R29",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(71, "%00000047"), Attrs([Attr("address","0x760"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R30",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(75, "%0000004b"), Attrs([Attr("address","0x760"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(16,64)))]), Jmps([Call(Tid(80, "%00000050"), - Attrs([Attr("address","0x764"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), Sub(Tid(1_468, "@_init"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x580")]), - "_init", Args([Arg(Tid(1_520, "%000005f0"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("_init_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(1_287, "@_init"), - Attrs([Attr("address","0x580")]), Phis([]), -Defs([Def(Tid(1_293, "%0000050d"), Attrs([Attr("address","0x584"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("#5",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(18446744073709551600,64))), -Def(Tid(1_299, "%00000513"), Attrs([Attr("address","0x584"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("#5",Imm(64)),Var("R29",Imm(64)),LittleEndian(),64)), -Def(Tid(1_305, "%00000519"), Attrs([Attr("address","0x584"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("#5",Imm(64)),Int(8,64)),Var("R30",Imm(64)),LittleEndian(),64)), -Def(Tid(1_309, "%0000051d"), Attrs([Attr("address","0x584"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("R31",Imm(64)), -Var("#5",Imm(64))), Def(Tid(1_315, "%00000523"), - Attrs([Attr("address","0x588"), Attr("insn","mov x29, sp")]), - Var("R29",Imm(64)), Var("R31",Imm(64))), Def(Tid(1_320, "%00000528"), - Attrs([Attr("address","0x58C"), Attr("insn","bl #0xe8")]), - Var("R30",Imm(64)), Int(1424,64))]), Jmps([Call(Tid(1_322, "%0000052a"), - Attrs([Attr("address","0x58C"), Attr("insn","bl #0xe8")]), Int(1,1), -(Direct(Tid(1_473, "@call_weak_fn")),Direct(Tid(1_324, "%0000052c"))))])), -Blk(Tid(1_324, "%0000052c"), Attrs([Attr("address","0x590")]), Phis([]), -Defs([Def(Tid(1_329, "%00000531"), Attrs([Attr("address","0x590"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R29",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(1_334, "%00000536"), Attrs([Attr("address","0x590"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R30",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(1_338, "%0000053a"), Attrs([Attr("address","0x590"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(16,64)))]), Jmps([Call(Tid(1_343, "%0000053f"), - Attrs([Attr("address","0x594"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), Sub(Tid(1_469, "@_start"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x640"), -Attr("entry-point","()")]), "_start", Args([Arg(Tid(1_521, "%000005f1"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("_start_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(480, "@_start"), - Attrs([Attr("address","0x640")]), Phis([]), Defs([Def(Tid(485, "%000001e5"), - Attrs([Attr("address","0x644"), Attr("insn","mov x29, #0x0")]), - Var("R29",Imm(64)), Int(0,64)), Def(Tid(490, "%000001ea"), - Attrs([Attr("address","0x648"), Attr("insn","mov x30, #0x0")]), - Var("R30",Imm(64)), Int(0,64)), Def(Tid(496, "%000001f0"), - Attrs([Attr("address","0x64C"), Attr("insn","mov x5, x0")]), - Var("R5",Imm(64)), Var("R0",Imm(64))), Def(Tid(503, "%000001f7"), - Attrs([Attr("address","0x650"), Attr("insn","ldr x1, [sp]")]), - Var("R1",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(509, "%000001fd"), Attrs([Attr("address","0x654"), -Attr("insn","add x2, sp, #0x8")]), Var("R2",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(8,64))), Def(Tid(515, "%00000203"), - Attrs([Attr("address","0x658"), Attr("insn","mov x6, sp")]), - Var("R6",Imm(64)), Var("R31",Imm(64))), Def(Tid(520, "%00000208"), - Attrs([Attr("address","0x65C"), Attr("insn","adrp x0, #65536")]), - Var("R0",Imm(64)), Int(65536,64)), Def(Tid(527, "%0000020f"), - Attrs([Attr("address","0x660"), Attr("insn","ldr x0, [x0, #0xff0]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(4080,64)),LittleEndian(),64)), -Def(Tid(532, "%00000214"), Attrs([Attr("address","0x664"), -Attr("insn","mov x3, #0x0")]), Var("R3",Imm(64)), Int(0,64)), -Def(Tid(537, "%00000219"), Attrs([Attr("address","0x668"), -Attr("insn","mov x4, #0x0")]), Var("R4",Imm(64)), Int(0,64)), -Def(Tid(542, "%0000021e"), Attrs([Attr("address","0x66C"), -Attr("insn","bl #-0xac")]), Var("R30",Imm(64)), Int(1648,64))]), -Jmps([Call(Tid(545, "%00000221"), Attrs([Attr("address","0x66C"), -Attr("insn","bl #-0xac")]), Int(1,1), -(Direct(Tid(1_466, "@__libc_start_main")),Direct(Tid(547, "%00000223"))))])), -Blk(Tid(547, "%00000223"), Attrs([Attr("address","0x670")]), Phis([]), -Defs([Def(Tid(550, "%00000226"), Attrs([Attr("address","0x670"), -Attr("insn","bl #-0x80")]), Var("R30",Imm(64)), Int(1652,64))]), -Jmps([Call(Tid(553, "%00000229"), Attrs([Attr("address","0x670"), -Attr("insn","bl #-0x80")]), Int(1,1), -(Direct(Tid(1_472, "@abort")),Direct(Tid(1_504, "%000005e0"))))])), -Blk(Tid(1_504, "%000005e0"), Attrs([]), Phis([]), Defs([]), -Jmps([Call(Tid(1_505, "%000005e1"), Attrs([]), Int(1,1), -(Direct(Tid(1_473, "@call_weak_fn")),))]))])), Sub(Tid(1_472, "@abort"), - Attrs([Attr("noreturn","()"), Attr("c.proto","void (*)(void)"), -Attr("address","0x5F0"), Attr("stub","()")]), "abort", Args([]), -Blks([Blk(Tid(551, "@abort"), Attrs([Attr("address","0x5F0")]), Phis([]), -Defs([Def(Tid(1_149, "%0000047d"), Attrs([Attr("address","0x5F0"), -Attr("insn","adrp x16, #65536")]), Var("R16",Imm(64)), Int(65536,64)), -Def(Tid(1_156, "%00000484"), Attrs([Attr("address","0x5F4"), -Attr("insn","ldr x17, [x16, #0xfc8]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(4040,64)),LittleEndian(),64)), -Def(Tid(1_162, "%0000048a"), Attrs([Attr("address","0x5F8"), -Attr("insn","add x16, x16, #0xfc8")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(4040,64)))]), Jmps([Call(Tid(1_167, "%0000048f"), - Attrs([Attr("address","0x5FC"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), Sub(Tid(1_473, "@call_weak_fn"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x674")]), - "call_weak_fn", Args([Arg(Tid(1_522, "%000005f2"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("call_weak_fn_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(555, "@call_weak_fn"), - Attrs([Attr("address","0x674")]), Phis([]), Defs([Def(Tid(558, "%0000022e"), - Attrs([Attr("address","0x674"), Attr("insn","adrp x0, #65536")]), - Var("R0",Imm(64)), Int(65536,64)), Def(Tid(565, "%00000235"), - Attrs([Attr("address","0x678"), Attr("insn","ldr x0, [x0, #0xfe8]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(4072,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(571, "%0000023b"), Attrs([Attr("address","0x67C"), -Attr("insn","cbz x0, #0x8")]), EQ(Var("R0",Imm(64)),Int(0,64)), -Direct(Tid(569, "%00000239"))), Goto(Tid(1_506, "%000005e2"), Attrs([]), - Int(1,1), Direct(Tid(921, "%00000399")))])), Blk(Tid(569, "%00000239"), - Attrs([Attr("address","0x684")]), Phis([]), Defs([]), -Jmps([Call(Tid(577, "%00000241"), Attrs([Attr("address","0x684"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))])), -Blk(Tid(921, "%00000399"), Attrs([Attr("address","0x680")]), Phis([]), -Defs([]), Jmps([Goto(Tid(924, "%0000039c"), Attrs([Attr("address","0x680"), -Attr("insn","b #-0xa0")]), Int(1,1), Direct(Tid(922, "@__gmon_start__")))])), -Blk(Tid(922, "@__gmon_start__"), Attrs([Attr("address","0x5E0")]), Phis([]), -Defs([Def(Tid(1_127, "%00000467"), Attrs([Attr("address","0x5E0"), -Attr("insn","adrp x16, #65536")]), Var("R16",Imm(64)), Int(65536,64)), -Def(Tid(1_134, "%0000046e"), Attrs([Attr("address","0x5E4"), -Attr("insn","ldr x17, [x16, #0xfc0]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(4032,64)),LittleEndian(),64)), -Def(Tid(1_140, "%00000474"), Attrs([Attr("address","0x5E8"), -Attr("insn","add x16, x16, #0xfc0")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(4032,64)))]), Jmps([Call(Tid(1_145, "%00000479"), - Attrs([Attr("address","0x5EC"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), -Sub(Tid(1_475, "@deregister_tm_clones"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x690")]), - "deregister_tm_clones", Args([Arg(Tid(1_523, "%000005f3"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("deregister_tm_clones_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(583, "@deregister_tm_clones"), - Attrs([Attr("address","0x690")]), Phis([]), Defs([Def(Tid(586, "%0000024a"), - Attrs([Attr("address","0x690"), Attr("insn","adrp x0, #69632")]), - Var("R0",Imm(64)), Int(69632,64)), Def(Tid(592, "%00000250"), - Attrs([Attr("address","0x694"), Attr("insn","add x0, x0, #0x10")]), - Var("R0",Imm(64)), PLUS(Var("R0",Imm(64)),Int(16,64))), -Def(Tid(597, "%00000255"), Attrs([Attr("address","0x698"), -Attr("insn","adrp x1, #69632")]), Var("R1",Imm(64)), Int(69632,64)), -Def(Tid(603, "%0000025b"), Attrs([Attr("address","0x69C"), -Attr("insn","add x1, x1, #0x10")]), Var("R1",Imm(64)), -PLUS(Var("R1",Imm(64)),Int(16,64))), Def(Tid(609, "%00000261"), - Attrs([Attr("address","0x6A0"), Attr("insn","cmp x1, x0")]), - Var("#1",Imm(64)), NOT(Var("R0",Imm(64)))), Def(Tid(614, "%00000266"), - Attrs([Attr("address","0x6A0"), Attr("insn","cmp x1, x0")]), - Var("#2",Imm(64)), PLUS(Var("R1",Imm(64)),NOT(Var("R0",Imm(64))))), -Def(Tid(620, "%0000026c"), Attrs([Attr("address","0x6A0"), -Attr("insn","cmp x1, x0")]), Var("VF",Imm(1)), -NEQ(SIGNED(65,PLUS(Var("#2",Imm(64)),Int(1,64))),PLUS(PLUS(SIGNED(65,Var("R1",Imm(64))),SIGNED(65,Var("#1",Imm(64)))),Int(1,65)))), -Def(Tid(626, "%00000272"), Attrs([Attr("address","0x6A0"), -Attr("insn","cmp x1, x0")]), Var("CF",Imm(1)), -NEQ(UNSIGNED(65,PLUS(Var("#2",Imm(64)),Int(1,64))),PLUS(PLUS(UNSIGNED(65,Var("R1",Imm(64))),UNSIGNED(65,Var("#1",Imm(64)))),Int(1,65)))), -Def(Tid(630, "%00000276"), Attrs([Attr("address","0x6A0"), -Attr("insn","cmp x1, x0")]), Var("ZF",Imm(1)), -EQ(PLUS(Var("#2",Imm(64)),Int(1,64)),Int(0,64))), Def(Tid(634, "%0000027a"), - Attrs([Attr("address","0x6A0"), Attr("insn","cmp x1, x0")]), - Var("NF",Imm(1)), Extract(63,63,PLUS(Var("#2",Imm(64)),Int(1,64))))]), -Jmps([Goto(Tid(640, "%00000280"), Attrs([Attr("address","0x6A4"), -Attr("insn","b.eq #0x18")]), EQ(Var("ZF",Imm(1)),Int(1,1)), -Direct(Tid(638, "%0000027e"))), Goto(Tid(1_507, "%000005e3"), Attrs([]), - Int(1,1), Direct(Tid(891, "%0000037b")))])), Blk(Tid(891, "%0000037b"), - Attrs([Attr("address","0x6A8")]), Phis([]), Defs([Def(Tid(894, "%0000037e"), - Attrs([Attr("address","0x6A8"), Attr("insn","adrp x1, #65536")]), - Var("R1",Imm(64)), Int(65536,64)), Def(Tid(901, "%00000385"), - Attrs([Attr("address","0x6AC"), Attr("insn","ldr x1, [x1, #0xfd8]")]), - Var("R1",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R1",Imm(64)),Int(4056,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(906, "%0000038a"), Attrs([Attr("address","0x6B0"), -Attr("insn","cbz x1, #0xc")]), EQ(Var("R1",Imm(64)),Int(0,64)), -Direct(Tid(638, "%0000027e"))), Goto(Tid(1_508, "%000005e4"), Attrs([]), - Int(1,1), Direct(Tid(910, "%0000038e")))])), Blk(Tid(638, "%0000027e"), - Attrs([Attr("address","0x6BC")]), Phis([]), Defs([]), -Jmps([Call(Tid(646, "%00000286"), Attrs([Attr("address","0x6BC"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))])), -Blk(Tid(910, "%0000038e"), Attrs([Attr("address","0x6B4")]), Phis([]), -Defs([Def(Tid(914, "%00000392"), Attrs([Attr("address","0x6B4"), -Attr("insn","mov x16, x1")]), Var("R16",Imm(64)), Var("R1",Imm(64)))]), -Jmps([Call(Tid(919, "%00000397"), Attrs([Attr("address","0x6B8"), -Attr("insn","br x16")]), Int(1,1), (Indirect(Var("R16",Imm(64))),))]))])), -Sub(Tid(1_478, "@frame_dummy"), Attrs([Attr("c.proto","signed (*)(void)"), -Attr("address","0x750")]), "frame_dummy", Args([Arg(Tid(1_524, "%000005f4"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("frame_dummy_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(798, "@frame_dummy"), - Attrs([Attr("address","0x750")]), Phis([]), Defs([]), -Jmps([Call(Tid(800, "%00000320"), Attrs([Attr("address","0x750"), -Attr("insn","b #-0x90")]), Int(1,1), -(Direct(Tid(1_480, "@register_tm_clones")),))]))])), Sub(Tid(1_479, "@main"), - Attrs([Attr("c.proto","signed (*)(signed argc, const char** argv)"), -Attr("address","0x600"), Attr("stub","()")]), "main", - Args([Arg(Tid(1_525, "%000005f5"), Attrs([Attr("c.layout","[signed : 32]"), -Attr("c.data","Top:u32"), Attr("c.type","signed")]), - Var("main_argc",Imm(32)), LOW(32,Var("R0",Imm(64))), In()), -Arg(Tid(1_526, "%000005f6"), Attrs([Attr("c.layout","**[char : 8]"), -Attr("c.data","Top:u8 ptr ptr"), Attr("c.type"," const char**")]), - Var("main_argv",Imm(64)), Var("R1",Imm(64)), Both()), -Arg(Tid(1_527, "%000005f7"), Attrs([Attr("c.layout","[signed : 32]"), -Attr("c.data","Top:u32"), Attr("c.type","signed")]), - Var("main_result",Imm(32)), LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(424, "@main"), Attrs([Attr("address","0x600")]), Phis([]), -Defs([Def(Tid(427, "%000001ab"), Attrs([Attr("address","0x600"), -Attr("insn","adrp x1, #69632")]), Var("R1",Imm(64)), Int(69632,64)), -Def(Tid(433, "%000001b1"), Attrs([Attr("address","0x604"), -Attr("insn","add x2, x1, #0x14")]), Var("R2",Imm(64)), -PLUS(Var("R1",Imm(64)),Int(20,64))), Def(Tid(438, "%000001b6"), - Attrs([Attr("address","0x608"), Attr("insn","mov w0, #0x0")]), - Var("R0",Imm(64)), Int(0,64)), Def(Tid(445, "%000001bd"), - Attrs([Attr("address","0x60C"), Attr("insn","ldr w2, [x2, #0x4]")]), - Var("R2",Imm(64)), -UNSIGNED(64,Load(Var("mem",Mem(64,8)),PLUS(Var("R2",Imm(64)),Int(4,64)),LittleEndian(),32))), -Def(Tid(453, "%000001c5"), Attrs([Attr("address","0x610"), -Attr("insn","str w2, [x1, #0x14]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R1",Imm(64)),Int(20,64)),Extract(31,0,Var("R2",Imm(64))),LittleEndian(),32))]), -Jmps([Call(Tid(458, "%000001ca"), Attrs([Attr("address","0x614"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))]))])), -Sub(Tid(1_480, "@register_tm_clones"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x6C0")]), - "register_tm_clones", Args([Arg(Tid(1_528, "%000005f8"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("register_tm_clones_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(648, "@register_tm_clones"), Attrs([Attr("address","0x6C0")]), - Phis([]), Defs([Def(Tid(651, "%0000028b"), Attrs([Attr("address","0x6C0"), -Attr("insn","adrp x0, #69632")]), Var("R0",Imm(64)), Int(69632,64)), -Def(Tid(657, "%00000291"), Attrs([Attr("address","0x6C4"), -Attr("insn","add x0, x0, #0x10")]), Var("R0",Imm(64)), -PLUS(Var("R0",Imm(64)),Int(16,64))), Def(Tid(662, "%00000296"), - Attrs([Attr("address","0x6C8"), Attr("insn","adrp x1, #69632")]), - Var("R1",Imm(64)), Int(69632,64)), Def(Tid(668, "%0000029c"), - Attrs([Attr("address","0x6CC"), Attr("insn","add x1, x1, #0x10")]), - Var("R1",Imm(64)), PLUS(Var("R1",Imm(64)),Int(16,64))), -Def(Tid(675, "%000002a3"), Attrs([Attr("address","0x6D0"), -Attr("insn","sub x1, x1, x0")]), Var("R1",Imm(64)), -PLUS(PLUS(Var("R1",Imm(64)),NOT(Var("R0",Imm(64)))),Int(1,64))), -Def(Tid(681, "%000002a9"), Attrs([Attr("address","0x6D4"), -Attr("insn","lsr x2, x1, #63")]), Var("R2",Imm(64)), -Concat(Int(0,63),Extract(63,63,Var("R1",Imm(64))))), -Def(Tid(688, "%000002b0"), Attrs([Attr("address","0x6D8"), -Attr("insn","add x1, x2, x1, asr #3")]), Var("R1",Imm(64)), -PLUS(Var("R2",Imm(64)),ARSHIFT(Var("R1",Imm(64)),Int(3,3)))), -Def(Tid(694, "%000002b6"), Attrs([Attr("address","0x6DC"), -Attr("insn","asr x1, x1, #1")]), Var("R1",Imm(64)), -SIGNED(64,Extract(63,1,Var("R1",Imm(64)))))]), -Jmps([Goto(Tid(700, "%000002bc"), Attrs([Attr("address","0x6E0"), -Attr("insn","cbz x1, #0x18")]), EQ(Var("R1",Imm(64)),Int(0,64)), -Direct(Tid(698, "%000002ba"))), Goto(Tid(1_509, "%000005e5"), Attrs([]), - Int(1,1), Direct(Tid(861, "%0000035d")))])), Blk(Tid(861, "%0000035d"), - Attrs([Attr("address","0x6E4")]), Phis([]), Defs([Def(Tid(864, "%00000360"), - Attrs([Attr("address","0x6E4"), Attr("insn","adrp x2, #65536")]), - Var("R2",Imm(64)), Int(65536,64)), Def(Tid(871, "%00000367"), - Attrs([Attr("address","0x6E8"), Attr("insn","ldr x2, [x2, #0xff8]")]), - Var("R2",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R2",Imm(64)),Int(4088,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(876, "%0000036c"), Attrs([Attr("address","0x6EC"), -Attr("insn","cbz x2, #0xc")]), EQ(Var("R2",Imm(64)),Int(0,64)), -Direct(Tid(698, "%000002ba"))), Goto(Tid(1_510, "%000005e6"), Attrs([]), - Int(1,1), Direct(Tid(880, "%00000370")))])), Blk(Tid(698, "%000002ba"), - Attrs([Attr("address","0x6F8")]), Phis([]), Defs([]), -Jmps([Call(Tid(706, "%000002c2"), Attrs([Attr("address","0x6F8"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))])), -Blk(Tid(880, "%00000370"), Attrs([Attr("address","0x6F0")]), Phis([]), -Defs([Def(Tid(884, "%00000374"), Attrs([Attr("address","0x6F0"), -Attr("insn","mov x16, x2")]), Var("R16",Imm(64)), Var("R2",Imm(64)))]), -Jmps([Call(Tid(889, "%00000379"), Attrs([Attr("address","0x6F4"), -Attr("insn","br x16")]), Int(1,1), -(Indirect(Var("R16",Imm(64))),))]))]))]))) \ No newline at end of file diff --git a/src/test/correct/basicassign_gamma0/gcc_O2/basicassign_gamma0.bir b/src/test/correct/basicassign_gamma0/gcc_O2/basicassign_gamma0.bir deleted file mode 100644 index bf2901ff0..000000000 --- a/src/test/correct/basicassign_gamma0/gcc_O2/basicassign_gamma0.bir +++ /dev/null @@ -1,228 +0,0 @@ -000005e7: program -000005b5: sub __cxa_finalize(__cxa_finalize_result) -000005e8: __cxa_finalize_result :: out u32 = low:32[R0] - -00000359: -00000451: R16 := 0x10000 -00000458: R17 := mem[R16 + 0xFB8, el]:u64 -0000045e: R16 := R16 + 0xFB8 -00000463: call R17 with noreturn - -000005b6: sub __do_global_dtors_aux(__do_global_dtors_aux_result) -000005e9: __do_global_dtors_aux_result :: out u32 = low:32[R0] - -000002c6: -000002ca: #3 := R31 - 0x20 -000002d0: mem := mem with [#3, el]:u64 <- R29 -000002d6: mem := mem with [#3 + 8, el]:u64 <- R30 -000002da: R31 := #3 -000002e0: R29 := R31 -000002e8: mem := mem with [R31 + 0x10, el]:u64 <- R19 -000002ed: R19 := 0x11000 -000002f4: R0 := pad:64[mem[R19 + 0x10]] -000002fb: when 31:0[R0] <> 0 goto %000002f9 -000005dd: goto %00000322 - -00000322: -00000325: R0 := 0x10000 -0000032c: R0 := mem[R0 + 0xFE0, el]:u64 -00000332: when R0 = 0 goto %00000330 -000005de: goto %00000349 - -00000349: -0000034c: R0 := 0x11000 -00000353: R0 := mem[R0 + 8, el]:u64 -00000358: R30 := 0x730 -0000035b: call @__cxa_finalize with return %00000330 - -00000330: -00000338: R30 := 0x734 -0000033a: call @deregister_tm_clones with return %0000033c - -0000033c: -0000033f: R0 := 1 -00000347: mem := mem with [R19 + 0x10] <- 7:0[R0] -000005df: goto %000002f9 - -000002f9: -00000303: R19 := mem[R31 + 0x10, el]:u64 -0000030a: R29 := mem[R31, el]:u64 -0000030f: R30 := mem[R31 + 8, el]:u64 -00000313: R31 := R31 + 0x20 -00000318: call R30 with noreturn - -000005ba: sub __libc_start_main(__libc_start_main_main, __libc_start_main_arg2, __libc_start_main_arg3, __libc_start_main_auxv, __libc_start_main_result) -000005ea: __libc_start_main_main :: in u64 = R0 -000005eb: __libc_start_main_arg2 :: in u32 = low:32[R1] -000005ec: __libc_start_main_arg3 :: in out u64 = R2 -000005ed: __libc_start_main_auxv :: in out u64 = R3 -000005ee: __libc_start_main_result :: out u32 = low:32[R0] - -0000021f: -0000043b: R16 := 0x10000 -00000442: R17 := mem[R16 + 0xFB0, el]:u64 -00000448: R16 := R16 + 0xFB0 -0000044d: call R17 with noreturn - -000005bb: sub _fini(_fini_result) -000005ef: _fini_result :: out u32 = low:32[R0] - -0000001f: -00000025: #0 := R31 - 0x10 -0000002b: mem := mem with [#0, el]:u64 <- R29 -00000031: mem := mem with [#0 + 8, el]:u64 <- R30 -00000035: R31 := #0 -0000003b: R29 := R31 -00000042: R29 := mem[R31, el]:u64 -00000047: R30 := mem[R31 + 8, el]:u64 -0000004b: R31 := R31 + 0x10 -00000050: call R30 with noreturn - -000005bc: sub _init(_init_result) -000005f0: _init_result :: out u32 = low:32[R0] - -00000507: -0000050d: #5 := R31 - 0x10 -00000513: mem := mem with [#5, el]:u64 <- R29 -00000519: mem := mem with [#5 + 8, el]:u64 <- R30 -0000051d: R31 := #5 -00000523: R29 := R31 -00000528: R30 := 0x590 -0000052a: call @call_weak_fn with return %0000052c - -0000052c: -00000531: R29 := mem[R31, el]:u64 -00000536: R30 := mem[R31 + 8, el]:u64 -0000053a: R31 := R31 + 0x10 -0000053f: call R30 with noreturn - -000005bd: sub _start(_start_result) -000005f1: _start_result :: out u32 = low:32[R0] - -000001e0: -000001e5: R29 := 0 -000001ea: R30 := 0 -000001f0: R5 := R0 -000001f7: R1 := mem[R31, el]:u64 -000001fd: R2 := R31 + 8 -00000203: R6 := R31 -00000208: R0 := 0x10000 -0000020f: R0 := mem[R0 + 0xFF0, el]:u64 -00000214: R3 := 0 -00000219: R4 := 0 -0000021e: R30 := 0x670 -00000221: call @__libc_start_main with return %00000223 - -00000223: -00000226: R30 := 0x674 -00000229: call @abort with return %000005e0 - -000005e0: -000005e1: call @call_weak_fn with noreturn - -000005c0: sub abort() - - -00000227: -0000047d: R16 := 0x10000 -00000484: R17 := mem[R16 + 0xFC8, el]:u64 -0000048a: R16 := R16 + 0xFC8 -0000048f: call R17 with noreturn - -000005c1: sub call_weak_fn(call_weak_fn_result) -000005f2: call_weak_fn_result :: out u32 = low:32[R0] - -0000022b: -0000022e: R0 := 0x10000 -00000235: R0 := mem[R0 + 0xFE8, el]:u64 -0000023b: when R0 = 0 goto %00000239 -000005e2: goto %00000399 - -00000239: -00000241: call R30 with noreturn - -00000399: -0000039c: goto @__gmon_start__ - -0000039a: -00000467: R16 := 0x10000 -0000046e: R17 := mem[R16 + 0xFC0, el]:u64 -00000474: R16 := R16 + 0xFC0 -00000479: call R17 with noreturn - -000005c3: sub deregister_tm_clones(deregister_tm_clones_result) -000005f3: deregister_tm_clones_result :: out u32 = low:32[R0] - -00000247: -0000024a: R0 := 0x11000 -00000250: R0 := R0 + 0x10 -00000255: R1 := 0x11000 -0000025b: R1 := R1 + 0x10 -00000261: #1 := ~R0 -00000266: #2 := R1 + ~R0 -0000026c: VF := extend:65[#2 + 1] <> extend:65[R1] + extend:65[#1] + 1 -00000272: CF := pad:65[#2 + 1] <> pad:65[R1] + pad:65[#1] + 1 -00000276: ZF := #2 + 1 = 0 -0000027a: NF := 63:63[#2 + 1] -00000280: when ZF goto %0000027e -000005e3: goto %0000037b - -0000037b: -0000037e: R1 := 0x10000 -00000385: R1 := mem[R1 + 0xFD8, el]:u64 -0000038a: when R1 = 0 goto %0000027e -000005e4: goto %0000038e - -0000027e: -00000286: call R30 with noreturn - -0000038e: -00000392: R16 := R1 -00000397: call R16 with noreturn - -000005c6: sub frame_dummy(frame_dummy_result) -000005f4: frame_dummy_result :: out u32 = low:32[R0] - -0000031e: -00000320: call @register_tm_clones with noreturn - -000005c7: sub main(main_argc, main_argv, main_result) -000005f5: main_argc :: in u32 = low:32[R0] -000005f6: main_argv :: in out u64 = R1 -000005f7: main_result :: out u32 = low:32[R0] - -000001a8: -000001ab: R1 := 0x11000 -000001b1: R2 := R1 + 0x14 -000001b6: R0 := 0 -000001bd: R2 := pad:64[mem[R2 + 4, el]:u32] -000001c5: mem := mem with [R1 + 0x14, el]:u32 <- 31:0[R2] -000001ca: call R30 with noreturn - -000005c8: sub register_tm_clones(register_tm_clones_result) -000005f8: register_tm_clones_result :: out u32 = low:32[R0] - -00000288: -0000028b: R0 := 0x11000 -00000291: R0 := R0 + 0x10 -00000296: R1 := 0x11000 -0000029c: R1 := R1 + 0x10 -000002a3: R1 := R1 + ~R0 + 1 -000002a9: R2 := 0.63:63[R1] -000002b0: R1 := R2 + (R1 ~>> 3) -000002b6: R1 := extend:64[63:1[R1]] -000002bc: when R1 = 0 goto %000002ba -000005e5: goto %0000035d - -0000035d: -00000360: R2 := 0x10000 -00000367: R2 := mem[R2 + 0xFF8, el]:u64 -0000036c: when R2 = 0 goto %000002ba -000005e6: goto %00000370 - -000002ba: -000002c2: call R30 with noreturn - -00000370: -00000374: R16 := R2 -00000379: call R16 with noreturn diff --git a/src/test/correct/basicassign_gamma0/gcc_O2/basicassign_gamma0.expected b/src/test/correct/basicassign_gamma0/gcc_O2/basicassign_gamma0.expected index f29bedbde..585f3ecd4 100644 --- a/src/test/correct/basicassign_gamma0/gcc_O2/basicassign_gamma0.expected +++ b/src/test/correct/basicassign_gamma0/gcc_O2/basicassign_gamma0.expected @@ -66,7 +66,7 @@ implementation {:extern} rely_reflexive() procedure {:extern} guarantee_reflexive(); modifies Gamma_mem, mem; -procedure main_1536(); +procedure main(); modifies Gamma_R0, Gamma_R1, Gamma_R2, Gamma_mem, R0, R1, R2, mem; requires (gamma_load32(Gamma_mem, $secret_addr) == true); free requires (memory_load64_le(mem, 69632bv64) == 0bv64); @@ -82,25 +82,25 @@ procedure main_1536(); free ensures (memory_load64_le(mem, 69616bv64) == 1536bv64); free ensures (memory_load64_le(mem, 69640bv64) == 69640bv64); -implementation main_1536() +implementation main() { - var Gamma_load18: bool; - var load18: bv32; + var $load$18: bv32; + var Gamma_$load$18: bool; lmain: assume {:captureState "lmain"} true; R1, Gamma_R1 := 69632bv64, true; R2, Gamma_R2 := bvadd64(R1, 20bv64), Gamma_R1; R0, Gamma_R0 := 0bv64, true; call rely(); - load18, Gamma_load18 := memory_load32_le(mem, bvadd64(R2, 4bv64)), (gamma_load32(Gamma_mem, bvadd64(R2, 4bv64)) || L(mem, bvadd64(R2, 4bv64))); - R2, Gamma_R2 := zero_extend32_32(load18), Gamma_load18; + $load$18, Gamma_$load$18 := memory_load32_le(mem, bvadd64(R2, 4bv64)), (gamma_load32(Gamma_mem, bvadd64(R2, 4bv64)) || L(mem, bvadd64(R2, 4bv64))); + R2, Gamma_R2 := zero_extend32_32($load$18), Gamma_$load$18; call rely(); assert (L(mem, bvadd64(R1, 20bv64)) ==> Gamma_R2); mem, Gamma_mem := memory_store32_le(mem, bvadd64(R1, 20bv64), R2[32:0]), gamma_store32(Gamma_mem, bvadd64(R1, 20bv64), Gamma_R2); assume {:captureState "%000001c5"} true; - goto main_1536_basil_return; - main_1536_basil_return: - assume {:captureState "main_1536_basil_return"} true; + goto main_basil_return; + main_basil_return: + assume {:captureState "main_basil_return"} true; return; } diff --git a/src/test/correct/basicassign_gamma0/gcc_O2/basicassign_gamma0.gts b/src/test/correct/basicassign_gamma0/gcc_O2/basicassign_gamma0.gts deleted file mode 100644 index 4ba6a68a2..000000000 Binary files a/src/test/correct/basicassign_gamma0/gcc_O2/basicassign_gamma0.gts and /dev/null differ diff --git a/src/test/correct/basicassign_gamma0/gcc_O2/basicassign_gamma0.md5sum b/src/test/correct/basicassign_gamma0/gcc_O2/basicassign_gamma0.md5sum new file mode 100644 index 000000000..8b298c1d0 --- /dev/null +++ b/src/test/correct/basicassign_gamma0/gcc_O2/basicassign_gamma0.md5sum @@ -0,0 +1,5 @@ +1ea15a09fbcadd12aa90e4679b8247c5 correct/basicassign_gamma0/gcc_O2/a.out +8e9db8464966d8d9147063aebe404de5 correct/basicassign_gamma0/gcc_O2/basicassign_gamma0.adt +5b738b16cfdceca374e7ec5d1dc45d5a correct/basicassign_gamma0/gcc_O2/basicassign_gamma0.bir +0d932d85183d107a26fe8d20ba18689a correct/basicassign_gamma0/gcc_O2/basicassign_gamma0.relf +d6b929272e953c8a9635893cb6fe2182 correct/basicassign_gamma0/gcc_O2/basicassign_gamma0.gts diff --git a/src/test/correct/basicassign_gamma0/gcc_O2/basicassign_gamma0.relf b/src/test/correct/basicassign_gamma0/gcc_O2/basicassign_gamma0.relf deleted file mode 100644 index 008cc027a..000000000 --- a/src/test/correct/basicassign_gamma0/gcc_O2/basicassign_gamma0.relf +++ /dev/null @@ -1,122 +0,0 @@ - -Relocation section '.rela.dyn' at offset 0x460 contains 8 entries: - Offset Info Type Symbol's Value Symbol's Name + Addend -0000000000010d98 0000000000000403 R_AARCH64_RELATIVE 750 -0000000000010da0 0000000000000403 R_AARCH64_RELATIVE 700 -0000000000010ff0 0000000000000403 R_AARCH64_RELATIVE 600 -0000000000011008 0000000000000403 R_AARCH64_RELATIVE 11008 -0000000000010fd8 0000000400000401 R_AARCH64_GLOB_DAT 0000000000000000 _ITM_deregisterTMCloneTable + 0 -0000000000010fe0 0000000500000401 R_AARCH64_GLOB_DAT 0000000000000000 __cxa_finalize@GLIBC_2.17 + 0 -0000000000010fe8 0000000600000401 R_AARCH64_GLOB_DAT 0000000000000000 __gmon_start__ + 0 -0000000000010ff8 0000000800000401 R_AARCH64_GLOB_DAT 0000000000000000 _ITM_registerTMCloneTable + 0 - -Relocation section '.rela.plt' at offset 0x520 contains 4 entries: - Offset Info Type Symbol's Value Symbol's Name + Addend -0000000000010fb0 0000000300000402 R_AARCH64_JUMP_SLOT 0000000000000000 __libc_start_main@GLIBC_2.34 + 0 -0000000000010fb8 0000000500000402 R_AARCH64_JUMP_SLOT 0000000000000000 __cxa_finalize@GLIBC_2.17 + 0 -0000000000010fc0 0000000600000402 R_AARCH64_JUMP_SLOT 0000000000000000 __gmon_start__ + 0 -0000000000010fc8 0000000700000402 R_AARCH64_JUMP_SLOT 0000000000000000 abort@GLIBC_2.17 + 0 - -Symbol table '.dynsym' contains 9 entries: - Num: Value Size Type Bind Vis Ndx Name - 0: 0000000000000000 0 NOTYPE LOCAL DEFAULT UND - 1: 0000000000000580 0 SECTION LOCAL DEFAULT 11 .init - 2: 0000000000011000 0 SECTION LOCAL DEFAULT 22 .data - 3: 0000000000000000 0 FUNC GLOBAL DEFAULT UND __libc_start_main@GLIBC_2.34 (2) - 4: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_deregisterTMCloneTable - 5: 0000000000000000 0 FUNC WEAK DEFAULT UND __cxa_finalize@GLIBC_2.17 (3) - 6: 0000000000000000 0 NOTYPE WEAK DEFAULT UND __gmon_start__ - 7: 0000000000000000 0 FUNC GLOBAL DEFAULT UND abort@GLIBC_2.17 (3) - 8: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_registerTMCloneTable - -Symbol table '.symtab' contains 89 entries: - Num: Value Size Type Bind Vis Ndx Name - 0: 0000000000000000 0 NOTYPE LOCAL DEFAULT UND - 1: 0000000000000238 0 SECTION LOCAL DEFAULT 1 .interp - 2: 0000000000000254 0 SECTION LOCAL DEFAULT 2 .note.gnu.build-id - 3: 0000000000000278 0 SECTION LOCAL DEFAULT 3 .note.ABI-tag - 4: 0000000000000298 0 SECTION LOCAL DEFAULT 4 .gnu.hash - 5: 00000000000002b8 0 SECTION LOCAL DEFAULT 5 .dynsym - 6: 0000000000000390 0 SECTION LOCAL DEFAULT 6 .dynstr - 7: 000000000000041e 0 SECTION LOCAL DEFAULT 7 .gnu.version - 8: 0000000000000430 0 SECTION LOCAL DEFAULT 8 .gnu.version_r - 9: 0000000000000460 0 SECTION LOCAL DEFAULT 9 .rela.dyn - 10: 0000000000000520 0 SECTION LOCAL DEFAULT 10 .rela.plt - 11: 0000000000000580 0 SECTION LOCAL DEFAULT 11 .init - 12: 00000000000005a0 0 SECTION LOCAL DEFAULT 12 .plt - 13: 0000000000000600 0 SECTION LOCAL DEFAULT 13 .text - 14: 0000000000000754 0 SECTION LOCAL DEFAULT 14 .fini - 15: 0000000000000768 0 SECTION LOCAL DEFAULT 15 .rodata - 16: 000000000000076c 0 SECTION LOCAL DEFAULT 16 .eh_frame_hdr - 17: 00000000000007a8 0 SECTION LOCAL DEFAULT 17 .eh_frame - 18: 0000000000010d98 0 SECTION LOCAL DEFAULT 18 .init_array - 19: 0000000000010da0 0 SECTION LOCAL DEFAULT 19 .fini_array - 20: 0000000000010da8 0 SECTION LOCAL DEFAULT 20 .dynamic - 21: 0000000000010f98 0 SECTION LOCAL DEFAULT 21 .got - 22: 0000000000011000 0 SECTION LOCAL DEFAULT 22 .data - 23: 0000000000011010 0 SECTION LOCAL DEFAULT 23 .bss - 24: 0000000000000000 0 SECTION LOCAL DEFAULT 24 .comment - 25: 0000000000000000 0 FILE LOCAL DEFAULT ABS Scrt1.o - 26: 0000000000000278 0 NOTYPE LOCAL DEFAULT 3 $d - 27: 0000000000000278 32 OBJECT LOCAL DEFAULT 3 __abi_tag - 28: 0000000000000640 0 NOTYPE LOCAL DEFAULT 13 $x - 29: 00000000000007bc 0 NOTYPE LOCAL DEFAULT 17 $d - 30: 0000000000000768 0 NOTYPE LOCAL DEFAULT 15 $d - 31: 0000000000000000 0 FILE LOCAL DEFAULT ABS crti.o - 32: 0000000000000674 0 NOTYPE LOCAL DEFAULT 13 $x - 33: 0000000000000674 20 FUNC LOCAL DEFAULT 13 call_weak_fn - 34: 0000000000000580 0 NOTYPE LOCAL DEFAULT 11 $x - 35: 0000000000000754 0 NOTYPE LOCAL DEFAULT 14 $x - 36: 0000000000000000 0 FILE LOCAL DEFAULT ABS crtn.o - 37: 0000000000000590 0 NOTYPE LOCAL DEFAULT 11 $x - 38: 0000000000000760 0 NOTYPE LOCAL DEFAULT 14 $x - 39: 0000000000000000 0 FILE LOCAL DEFAULT ABS basicassign_gamma0.c - 40: 0000000000000600 0 NOTYPE LOCAL DEFAULT 13 $x - 41: 0000000000011014 0 NOTYPE LOCAL DEFAULT 23 $d - 42: 0000000000000830 0 NOTYPE LOCAL DEFAULT 17 $d - 43: 0000000000000000 0 FILE LOCAL DEFAULT ABS crtstuff.c - 44: 0000000000000690 0 NOTYPE LOCAL DEFAULT 13 $x - 45: 0000000000000690 0 FUNC LOCAL DEFAULT 13 deregister_tm_clones - 46: 00000000000006c0 0 FUNC LOCAL DEFAULT 13 register_tm_clones - 47: 0000000000011008 0 NOTYPE LOCAL DEFAULT 22 $d - 48: 0000000000000700 0 FUNC LOCAL DEFAULT 13 __do_global_dtors_aux - 49: 0000000000011010 1 OBJECT LOCAL DEFAULT 23 completed.0 - 50: 0000000000010da0 0 NOTYPE LOCAL DEFAULT 19 $d - 51: 0000000000010da0 0 OBJECT LOCAL DEFAULT 19 __do_global_dtors_aux_fini_array_entry - 52: 0000000000000750 0 FUNC LOCAL DEFAULT 13 frame_dummy - 53: 0000000000010d98 0 NOTYPE LOCAL DEFAULT 18 $d - 54: 0000000000010d98 0 OBJECT LOCAL DEFAULT 18 __frame_dummy_init_array_entry - 55: 00000000000007d0 0 NOTYPE LOCAL DEFAULT 17 $d - 56: 0000000000011010 0 NOTYPE LOCAL DEFAULT 23 $d - 57: 0000000000000000 0 FILE LOCAL DEFAULT ABS crtstuff.c - 58: 0000000000000844 0 NOTYPE LOCAL DEFAULT 17 $d - 59: 0000000000000844 0 OBJECT LOCAL DEFAULT 17 __FRAME_END__ - 60: 0000000000000000 0 FILE LOCAL DEFAULT ABS - 61: 0000000000010da8 0 OBJECT LOCAL DEFAULT ABS _DYNAMIC - 62: 000000000000076c 0 NOTYPE LOCAL DEFAULT 16 __GNU_EH_FRAME_HDR - 63: 0000000000010fd0 0 OBJECT LOCAL DEFAULT ABS _GLOBAL_OFFSET_TABLE_ - 64: 00000000000005a0 0 NOTYPE LOCAL DEFAULT 12 $x - 65: 0000000000000000 0 FUNC GLOBAL DEFAULT UND __libc_start_main@GLIBC_2.34 - 66: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_deregisterTMCloneTable - 67: 0000000000011000 0 NOTYPE WEAK DEFAULT 22 data_start - 68: 0000000000011010 0 NOTYPE GLOBAL DEFAULT 23 __bss_start__ - 69: 0000000000000000 0 FUNC WEAK DEFAULT UND __cxa_finalize@GLIBC_2.17 - 70: 0000000000011020 0 NOTYPE GLOBAL DEFAULT 23 _bss_end__ - 71: 0000000000011010 0 NOTYPE GLOBAL DEFAULT 22 _edata - 72: 0000000000011014 4 OBJECT GLOBAL DEFAULT 23 x - 73: 0000000000000754 0 FUNC GLOBAL HIDDEN 14 _fini - 74: 0000000000011020 0 NOTYPE GLOBAL DEFAULT 23 __bss_end__ - 75: 0000000000011000 0 NOTYPE GLOBAL DEFAULT 22 __data_start - 76: 0000000000000000 0 NOTYPE WEAK DEFAULT UND __gmon_start__ - 77: 0000000000011008 0 OBJECT GLOBAL HIDDEN 22 __dso_handle - 78: 0000000000000000 0 FUNC GLOBAL DEFAULT UND abort@GLIBC_2.17 - 79: 0000000000000768 4 OBJECT GLOBAL DEFAULT 15 _IO_stdin_used - 80: 0000000000011018 4 OBJECT GLOBAL DEFAULT 23 secret - 81: 0000000000011020 0 NOTYPE GLOBAL DEFAULT 23 _end - 82: 0000000000000640 52 FUNC GLOBAL DEFAULT 13 _start - 83: 0000000000011020 0 NOTYPE GLOBAL DEFAULT 23 __end__ - 84: 0000000000011010 0 NOTYPE GLOBAL DEFAULT 23 __bss_start - 85: 0000000000000600 24 FUNC GLOBAL DEFAULT 13 main - 86: 0000000000011010 0 OBJECT GLOBAL HIDDEN 22 __TMC_END__ - 87: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_registerTMCloneTable - 88: 0000000000000580 0 FUNC GLOBAL HIDDEN 11 _init diff --git a/src/test/correct/basicassign_gamma0/gcc_O2/basicassign_gamma0_gtirb.expected b/src/test/correct/basicassign_gamma0/gcc_O2/basicassign_gamma0_gtirb.expected index 5fff95b15..5aa7c3cea 100644 --- a/src/test/correct/basicassign_gamma0/gcc_O2/basicassign_gamma0_gtirb.expected +++ b/src/test/correct/basicassign_gamma0/gcc_O2/basicassign_gamma0_gtirb.expected @@ -66,7 +66,7 @@ implementation {:extern} rely_reflexive() procedure {:extern} guarantee_reflexive(); modifies Gamma_mem, mem; -procedure main_1536(); +procedure main(); modifies Gamma_R0, Gamma_R1, Gamma_R2, Gamma_mem, R0, R1, R2, mem; requires (gamma_load32(Gamma_mem, $secret_addr) == true); free requires (memory_load64_le(mem, 69632bv64) == 0bv64); @@ -82,25 +82,25 @@ procedure main_1536(); free ensures (memory_load64_le(mem, 69616bv64) == 1536bv64); free ensures (memory_load64_le(mem, 69640bv64) == 69640bv64); -implementation main_1536() +implementation main() { - var Gamma_load18: bool; - var load18: bv32; - main_1536__0__ZeApiS~BRSG296M3kaSCnQ: - assume {:captureState "main_1536__0__ZeApiS~BRSG296M3kaSCnQ"} true; + var $load18: bv32; + var Gamma_$load18: bool; + $main$__0__$ZeApiS~BRSG296M3kaSCnQ: + assume {:captureState "$main$__0__$ZeApiS~BRSG296M3kaSCnQ"} true; R1, Gamma_R1 := 69632bv64, true; R2, Gamma_R2 := bvadd64(R1, 20bv64), Gamma_R1; R0, Gamma_R0 := 0bv64, true; call rely(); - load18, Gamma_load18 := memory_load32_le(mem, bvadd64(R2, 4bv64)), (gamma_load32(Gamma_mem, bvadd64(R2, 4bv64)) || L(mem, bvadd64(R2, 4bv64))); - R2, Gamma_R2 := zero_extend32_32(load18), Gamma_load18; + $load18, Gamma_$load18 := memory_load32_le(mem, bvadd64(R2, 4bv64)), (gamma_load32(Gamma_mem, bvadd64(R2, 4bv64)) || L(mem, bvadd64(R2, 4bv64))); + R2, Gamma_R2 := zero_extend32_32($load18), Gamma_$load18; call rely(); assert (L(mem, bvadd64(R1, 20bv64)) ==> Gamma_R2); mem, Gamma_mem := memory_store32_le(mem, bvadd64(R1, 20bv64), R2[32:0]), gamma_store32(Gamma_mem, bvadd64(R1, 20bv64), Gamma_R2); - assume {:captureState "1552_0"} true; - goto main_1536_basil_return; - main_1536_basil_return: - assume {:captureState "main_1536_basil_return"} true; + assume {:captureState "1552$0"} true; + goto main_basil_return; + main_basil_return: + assume {:captureState "main_basil_return"} true; return; } diff --git a/src/test/correct/basicassign_gamma0/gcc_pic/basicassign_gamma0.adt b/src/test/correct/basicassign_gamma0/gcc_pic/basicassign_gamma0.adt deleted file mode 100644 index 0f4b175af..000000000 --- a/src/test/correct/basicassign_gamma0/gcc_pic/basicassign_gamma0.adt +++ /dev/null @@ -1,501 +0,0 @@ -Project(Attrs([Attr("filename","\"gcc_pic/basicassign_gamma0.out\""), -Attr("image-specification","(declare abi (name str))\n(declare arch (name str))\n(declare base-address (addr int))\n(declare bias (off int))\n(declare bits (size int))\n(declare code-region (addr int) (size int) (off int))\n(declare code-start (addr int))\n(declare entry-point (addr int))\n(declare external-reference (addr int) (name str))\n(declare format (name str))\n(declare is-executable (flag bool))\n(declare is-little-endian (flag bool))\n(declare llvm:base-address (addr int))\n(declare llvm:code-entry (name str) (off int) (size int))\n(declare llvm:coff-import-library (name str))\n(declare llvm:coff-virtual-section-header (name str) (addr int) (size int))\n(declare llvm:elf-program-header (name str) (off int) (size int))\n(declare llvm:elf-program-header-flags (name str) (ld bool) (r bool) \n (w bool) (x bool))\n(declare llvm:elf-virtual-program-header (name str) (addr int) (size int))\n(declare llvm:entry-point (addr int))\n(declare llvm:macho-symbol (name str) (value int))\n(declare llvm:name-reference (at int) (name str))\n(declare llvm:relocation (at int) (addr int))\n(declare llvm:section-entry (name str) (addr int) (size int) (off int))\n(declare llvm:section-flags (name str) (r bool) (w bool) (x bool))\n(declare llvm:segment-command (name str) (off int) (size int))\n(declare llvm:segment-command-flags (name str) (r bool) (w bool) (x bool))\n(declare llvm:symbol-entry (name str) (addr int) (size int) (off int)\n (value int))\n(declare llvm:virtual-segment-command (name str) (addr int) (size int))\n(declare mapped (addr int) (size int) (off int))\n(declare named-region (addr int) (size int) (name str))\n(declare named-symbol (addr int) (name str))\n(declare require (name str))\n(declare section (addr int) (size int))\n(declare segment (addr int) (size int) (r bool) (w bool) (x bool))\n(declare subarch (name str))\n(declare symbol-chunk (addr int) (size int) (root int))\n(declare symbol-value (addr int) (value int))\n(declare system (name str))\n(declare vendor (name str))\n\n(abi unknown)\n(arch aarch64)\n(base-address 0)\n(bias 0)\n(bits 64)\n(code-region 1908 20 1908)\n(code-region 1600 308 1600)\n(code-region 1488 96 1488)\n(code-region 1456 24 1456)\n(code-start 1652)\n(code-start 1600)\n(code-start 1876)\n(entry-point 1600)\n(external-reference 69576 _ITM_deregisterTMCloneTable)\n(external-reference 69584 __cxa_finalize)\n(external-reference 69600 __gmon_start__)\n(external-reference 69624 _ITM_registerTMCloneTable)\n(external-reference 69536 __libc_start_main)\n(external-reference 69544 __cxa_finalize)\n(external-reference 69552 __gmon_start__)\n(external-reference 69560 abort)\n(format elf)\n(is-executable true)\n(is-little-endian true)\n(llvm:base-address 0)\n(llvm:code-entry abort 0 0)\n(llvm:code-entry __cxa_finalize 0 0)\n(llvm:code-entry __libc_start_main 0 0)\n(llvm:code-entry _init 1456 0)\n(llvm:code-entry main 1876 32)\n(llvm:code-entry _start 1600 52)\n(llvm:code-entry abort@GLIBC_2.17 0 0)\n(llvm:code-entry _fini 1908 0)\n(llvm:code-entry __cxa_finalize@GLIBC_2.17 0 0)\n(llvm:code-entry __libc_start_main@GLIBC_2.34 0 0)\n(llvm:code-entry frame_dummy 1872 0)\n(llvm:code-entry __do_global_dtors_aux 1792 0)\n(llvm:code-entry register_tm_clones 1728 0)\n(llvm:code-entry deregister_tm_clones 1680 0)\n(llvm:code-entry call_weak_fn 1652 20)\n(llvm:code-entry .fini 1908 20)\n(llvm:code-entry .text 1600 308)\n(llvm:code-entry .plt 1488 96)\n(llvm:code-entry .init 1456 24)\n(llvm:elf-program-header 08 3464 632)\n(llvm:elf-program-header 07 0 0)\n(llvm:elf-program-header 06 1932 60)\n(llvm:elf-program-header 05 596 68)\n(llvm:elf-program-header 04 3480 496)\n(llvm:elf-program-header 03 3464 648)\n(llvm:elf-program-header 02 0 2152)\n(llvm:elf-program-header 01 568 27)\n(llvm:elf-program-header 00 64 504)\n(llvm:elf-program-header-flags 08 false true false false)\n(llvm:elf-program-header-flags 07 false true true false)\n(llvm:elf-program-header-flags 06 false true false false)\n(llvm:elf-program-header-flags 05 false true false false)\n(llvm:elf-program-header-flags 04 false true true false)\n(llvm:elf-program-header-flags 03 true true true false)\n(llvm:elf-program-header-flags 02 true true false true)\n(llvm:elf-program-header-flags 01 false true false false)\n(llvm:elf-program-header-flags 00 false true false false)\n(llvm:elf-virtual-program-header 08 69000 632)\n(llvm:elf-virtual-program-header 07 0 0)\n(llvm:elf-virtual-program-header 06 1932 60)\n(llvm:elf-virtual-program-header 05 596 68)\n(llvm:elf-virtual-program-header 04 69016 496)\n(llvm:elf-virtual-program-header 03 69000 664)\n(llvm:elf-virtual-program-header 02 0 2152)\n(llvm:elf-virtual-program-header 01 568 27)\n(llvm:elf-virtual-program-header 00 64 504)\n(llvm:entry-point 1600)\n(llvm:name-reference 69560 abort)\n(llvm:name-reference 69552 __gmon_start__)\n(llvm:name-reference 69544 __cxa_finalize)\n(llvm:name-reference 69536 __libc_start_main)\n(llvm:name-reference 69624 _ITM_registerTMCloneTable)\n(llvm:name-reference 69600 __gmon_start__)\n(llvm:name-reference 69584 __cxa_finalize)\n(llvm:name-reference 69576 _ITM_deregisterTMCloneTable)\n(llvm:section-entry .shstrtab 0 250 6857)\n(llvm:section-entry .strtab 0 561 6296)\n(llvm:section-entry .symtab 0 2136 4160)\n(llvm:section-entry .comment 0 43 4112)\n(llvm:section-entry .bss 69648 16 4112)\n(llvm:section-entry .data 69632 16 4096)\n(llvm:section-entry .got 69512 120 3976)\n(llvm:section-entry .dynamic 69016 496 3480)\n(llvm:section-entry .fini_array 69008 8 3472)\n(llvm:section-entry .init_array 69000 8 3464)\n(llvm:section-entry .eh_frame 1992 160 1992)\n(llvm:section-entry .eh_frame_hdr 1932 60 1932)\n(llvm:section-entry .rodata 1928 4 1928)\n(llvm:section-entry .fini 1908 20 1908)\n(llvm:section-entry .text 1600 308 1600)\n(llvm:section-entry .plt 1488 96 1488)\n(llvm:section-entry .init 1456 24 1456)\n(llvm:section-entry .rela.plt 1360 96 1360)\n(llvm:section-entry .rela.dyn 1120 240 1120)\n(llvm:section-entry .gnu.version_r 1072 48 1072)\n(llvm:section-entry .gnu.version 1054 18 1054)\n(llvm:section-entry .dynstr 912 141 912)\n(llvm:section-entry .dynsym 696 216 696)\n(llvm:section-entry .gnu.hash 664 28 664)\n(llvm:section-entry .note.ABI-tag 632 32 632)\n(llvm:section-entry .note.gnu.build-id 596 36 596)\n(llvm:section-entry .interp 568 27 568)\n(llvm:section-flags .shstrtab true false false)\n(llvm:section-flags .strtab true false false)\n(llvm:section-flags .symtab true false false)\n(llvm:section-flags .comment true false false)\n(llvm:section-flags .bss true true false)\n(llvm:section-flags .data true true false)\n(llvm:section-flags .got true true false)\n(llvm:section-flags .dynamic true true false)\n(llvm:section-flags .fini_array true true false)\n(llvm:section-flags .init_array true true false)\n(llvm:section-flags .eh_frame true false false)\n(llvm:section-flags .eh_frame_hdr true false false)\n(llvm:section-flags .rodata true false false)\n(llvm:section-flags .fini true false true)\n(llvm:section-flags .text true false true)\n(llvm:section-flags .plt true false true)\n(llvm:section-flags .init true false true)\n(llvm:section-flags .rela.plt true false false)\n(llvm:section-flags .rela.dyn true false false)\n(llvm:section-flags .gnu.version_r true false false)\n(llvm:section-flags .gnu.version true false false)\n(llvm:section-flags .dynstr true false false)\n(llvm:section-flags .dynsym true false false)\n(llvm:section-flags .gnu.hash true false false)\n(llvm:section-flags .note.ABI-tag true false false)\n(llvm:section-flags .note.gnu.build-id true false false)\n(llvm:section-flags .interp true false false)\n(llvm:symbol-entry abort 0 0 0 0)\n(llvm:symbol-entry __cxa_finalize 0 0 0 0)\n(llvm:symbol-entry __libc_start_main 0 0 0 0)\n(llvm:symbol-entry _init 1456 0 1456 1456)\n(llvm:symbol-entry main 1876 32 1876 1876)\n(llvm:symbol-entry _start 1600 52 1600 1600)\n(llvm:symbol-entry abort@GLIBC_2.17 0 0 0 0)\n(llvm:symbol-entry _fini 1908 0 1908 1908)\n(llvm:symbol-entry __cxa_finalize@GLIBC_2.17 0 0 0 0)\n(llvm:symbol-entry __libc_start_main@GLIBC_2.34 0 0 0 0)\n(llvm:symbol-entry frame_dummy 1872 0 1872 1872)\n(llvm:symbol-entry __do_global_dtors_aux 1792 0 1792 1792)\n(llvm:symbol-entry register_tm_clones 1728 0 1728 1728)\n(llvm:symbol-entry deregister_tm_clones 1680 0 1680 1680)\n(llvm:symbol-entry call_weak_fn 1652 20 1652 1652)\n(mapped 0 2152 0)\n(mapped 69000 648 3464)\n(named-region 0 2152 02)\n(named-region 69000 664 03)\n(named-region 568 27 .interp)\n(named-region 596 36 .note.gnu.build-id)\n(named-region 632 32 .note.ABI-tag)\n(named-region 664 28 .gnu.hash)\n(named-region 696 216 .dynsym)\n(named-region 912 141 .dynstr)\n(named-region 1054 18 .gnu.version)\n(named-region 1072 48 .gnu.version_r)\n(named-region 1120 240 .rela.dyn)\n(named-region 1360 96 .rela.plt)\n(named-region 1456 24 .init)\n(named-region 1488 96 .plt)\n(named-region 1600 308 .text)\n(named-region 1908 20 .fini)\n(named-region 1928 4 .rodata)\n(named-region 1932 60 .eh_frame_hdr)\n(named-region 1992 160 .eh_frame)\n(named-region 69000 8 .init_array)\n(named-region 69008 8 .fini_array)\n(named-region 69016 496 .dynamic)\n(named-region 69512 120 .got)\n(named-region 69632 16 .data)\n(named-region 69648 16 .bss)\n(named-region 0 43 .comment)\n(named-region 0 2136 .symtab)\n(named-region 0 561 .strtab)\n(named-region 0 250 .shstrtab)\n(named-symbol 1652 call_weak_fn)\n(named-symbol 1680 deregister_tm_clones)\n(named-symbol 1728 register_tm_clones)\n(named-symbol 1792 __do_global_dtors_aux)\n(named-symbol 1872 frame_dummy)\n(named-symbol 0 __libc_start_main@GLIBC_2.34)\n(named-symbol 0 __cxa_finalize@GLIBC_2.17)\n(named-symbol 1908 _fini)\n(named-symbol 0 abort@GLIBC_2.17)\n(named-symbol 1600 _start)\n(named-symbol 1876 main)\n(named-symbol 1456 _init)\n(named-symbol 0 __libc_start_main)\n(named-symbol 0 __cxa_finalize)\n(named-symbol 0 abort)\n(require libc.so.6)\n(section 568 27)\n(section 596 36)\n(section 632 32)\n(section 664 28)\n(section 696 216)\n(section 912 141)\n(section 1054 18)\n(section 1072 48)\n(section 1120 240)\n(section 1360 96)\n(section 1456 24)\n(section 1488 96)\n(section 1600 308)\n(section 1908 20)\n(section 1928 4)\n(section 1932 60)\n(section 1992 160)\n(section 69000 8)\n(section 69008 8)\n(section 69016 496)\n(section 69512 120)\n(section 69632 16)\n(section 69648 16)\n(section 0 43)\n(section 0 2136)\n(section 0 561)\n(section 0 250)\n(segment 0 2152 true false true)\n(segment 69000 664 true true false)\n(subarch v8)\n(symbol-chunk 1652 20 1652)\n(symbol-chunk 1600 52 1600)\n(symbol-chunk 1876 32 1876)\n(symbol-value 1652 1652)\n(symbol-value 1680 1680)\n(symbol-value 1728 1728)\n(symbol-value 1792 1792)\n(symbol-value 1872 1872)\n(symbol-value 1908 1908)\n(symbol-value 1600 1600)\n(symbol-value 1876 1876)\n(symbol-value 1456 1456)\n(symbol-value 0 0)\n(system \"\")\n(vendor \"\")\n"), -Attr("abi-name","\"aarch64-linux-gnu-elf\"")]), -Sections([Section(".shstrtab", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x40\x06\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xc8\x1b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x38\x00\x09\x00\x40\x00\x1c\x00\x1b\x00\x06\x00\x00\x00\x04\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x04\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x68\x08\x00\x00\x00\x00\x00\x00\x68\x08\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x01\x00\x00\x00\x06\x00\x00\x00\x88\x0d\x00\x00\x00\x00\x00\x00\x88\x0d"), -Section(".strtab", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x40\x06\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xc8\x1b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x38\x00\x09\x00\x40\x00\x1c\x00\x1b\x00\x06\x00\x00\x00\x04\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x04\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x68\x08\x00\x00\x00\x00\x00\x00\x68\x08\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x01\x00\x00\x00\x06\x00\x00\x00\x88\x0d\x00\x00\x00\x00\x00\x00\x88\x0d\x01\x00\x00\x00\x00\x00\x88\x0d\x01\x00\x00\x00\x00\x00\x88\x02\x00\x00\x00\x00\x00\x00\x98\x02\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x02\x00\x00\x00\x06\x00\x00\x00\x98\x0d\x00\x00\x00\x00\x00\x00\x98\x0d\x01\x00\x00\x00\x00\x00\x98\x0d\x01\x00\x00\x00\x00\x00\xf0\x01\x00\x00\x00\x00\x00\x00\xf0\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x04\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x50\xe5\x74\x64\x04\x00\x00\x00\x8c\x07\x00\x00\x00\x00\x00\x00\x8c\x07\x00\x00\x00\x00\x00\x00\x8c\x07\x00\x00\x00\x00\x00\x00\x3c\x00\x00\x00\x00\x00\x00\x00\x3c\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x51\xe5\x74\x64\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x52\xe5\x74\x64\x04\x00\x00\x00\x88\x0d\x00\x00\x00\x00\x00\x00\x88\x0d\x01\x00\x00\x00\x00\x00\x88\x0d\x01\x00\x00\x00\x00\x00\x78\x02\x00\x00\x00\x00\x00\x00\x78\x02\x00\x00\x00\x00\x00\x00\x01"), -Section(".symtab", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x40\x06\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xc8\x1b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x38\x00\x09\x00\x40\x00\x1c\x00\x1b\x00\x06\x00\x00\x00\x04\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x04\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x68\x08\x00\x00\x00\x00\x00\x00\x68\x08\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x01\x00\x00\x00\x06\x00\x00\x00\x88\x0d\x00\x00\x00\x00\x00\x00\x88\x0d\x01\x00\x00\x00\x00\x00\x88\x0d\x01\x00\x00\x00\x00\x00\x88\x02\x00\x00\x00\x00\x00\x00\x98\x02\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x02\x00\x00\x00\x06\x00\x00\x00\x98\x0d\x00\x00\x00\x00\x00\x00\x98\x0d\x01\x00\x00\x00\x00\x00\x98\x0d\x01\x00\x00\x00\x00\x00\xf0\x01\x00\x00\x00\x00\x00\x00\xf0\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x04\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x50\xe5\x74\x64\x04\x00\x00\x00\x8c\x07\x00\x00\x00\x00\x00\x00\x8c\x07\x00\x00\x00\x00\x00\x00\x8c\x07\x00\x00\x00\x00\x00\x00\x3c\x00\x00\x00\x00\x00\x00\x00\x3c\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x51\xe5\x74\x64\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x52\xe5\x74\x64\x04\x00\x00\x00\x88\x0d\x00\x00\x00\x00\x00\x00\x88\x0d\x01\x00\x00\x00\x00\x00\x88\x0d\x01\x00\x00\x00\x00\x00\x78\x02\x00\x00\x00\x00\x00\x00\x78\x02\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x2f\x6c\x69\x62\x2f\x6c\x64\x2d\x6c\x69\x6e\x75\x78\x2d\x61\x61\x72\x63\x68\x36\x34\x2e\x73\x6f\x2e\x31\x00\x00\x04\x00\x00\x00\x14\x00\x00\x00\x03\x00\x00\x00\x47\x4e\x55\x00\x3b\xe2\xdd\x87\x1b\x6d\x56\xb6\xa5\xf0\x3c\xd4\x17\xc5\x83\x38\x8c\x87\xdd\x37\x04\x00\x00\x00\x10\x00\x00\x00\x01\x00\x00\x00\x47\x4e\x55\x00\x00\x00\x00\x00\x03\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x01\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x0b\x00\xb0\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x16\x00\x00\x10\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x48\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x22\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x22\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x73\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5f\x5f\x63\x78\x61\x5f\x66\x69\x6e\x61\x6c\x69\x7a\x65\x00\x5f\x5f\x6c\x69\x62\x63\x5f\x73\x74\x61\x72\x74\x5f\x6d\x61\x69\x6e\x00\x61\x62\x6f\x72\x74\x00\x6c\x69\x62\x63\x2e\x73\x6f\x2e\x36\x00\x47\x4c\x49\x42\x43\x5f\x32\x2e\x31\x37\x00\x47\x4c\x49\x42\x43\x5f\x32\x2e\x33\x34\x00\x5f\x49\x54\x4d\x5f\x64\x65\x72\x65\x67\x69\x73\x74\x65\x72\x54\x4d\x43\x6c\x6f\x6e\x65\x54\x61\x62\x6c\x65\x00\x5f\x5f\x67\x6d\x6f\x6e\x5f\x73\x74\x61\x72\x74\x5f\x5f\x00\x5f\x49\x54\x4d\x5f\x72\x65\x67\x69\x73\x74\x65\x72\x54\x4d\x43\x6c\x6f\x6e\x65\x54\x61\x62\x6c\x65\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x01\x00\x03\x00\x01\x00\x03\x00\x01\x00\x01\x00\x02\x00\x28\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x97\x91\x96\x06\x00\x00\x03\x00\x32\x00\x00\x00\x10\x00\x00\x00\xb4\x91\x96\x06\x00\x00\x02\x00\x3d\x00\x00\x00\x00\x00\x00\x00\x88\x0d\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x50\x07\x00\x00\x00\x00\x00\x00\x90\x0d\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\xd8\x0f\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x14\x10\x01\x00\x00\x00\x00\x00\xe8\x0f\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x18\x10\x01\x00\x00\x00\x00\x00\xf0\x0f\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x54\x07\x00\x00\x00\x00\x00\x00\x08\x10\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x08\x10\x01\x00\x00\x00\x00\x00\xc8\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xd0\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe0\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xf8\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xa0\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xa8\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xb0\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xb8\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1f\x20\x03\xd5\xfd\x7b\xbf\xa9\xfd\x03\x00\x91\x2e\x00\x00\x94\xfd\x7b\xc1\xa8\xc0\x03\x5f\xd6\x00\x00\x00\x00\x00\x00\x00\x00\xf0\x7b\xbf\xa9\x90\x00\x00\x90\x11\xce\x47\xf9\x10\x62\x3e\x91\x20\x02\x1f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x90\x00\x00\x90\x11\xd2\x47\xf9\x10\x82\x3e\x91\x20\x02\x1f\xd6\x90\x00\x00\x90\x11\xd6\x47\xf9\x10\xa2\x3e\x91\x20\x02\x1f\xd6\x90\x00\x00\x90\x11\xda\x47\xf9\x10\xc2\x3e\x91\x20\x02\x1f\xd6\x90\x00\x00\x90\x11\xde\x47\xf9\x10\xe2\x3e\x91\x20\x02\x1f\xd6\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1f\x20\x03\xd5\x1d\x00\x80\xd2\x1e\x00\x80\xd2\xe5\x03\x00\xaa\xe1\x03\x40\xf9\xe2\x23\x00\x91\xe6\x03\x00\x91\x80\x00\x00\x90\x00\xf8\x47\xf9\x03\x00\x80\xd2\x04\x00\x80\xd2\xe1\xff\xff\x97\xec\xff\xff\x97\x80\x00\x00\x90\x00\xf0\x47\xf9\x40\x00\x00\xb4\xe4\xff\xff\x17\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x80\x00\x00\xb0\x00\x40\x00\x91\x81\x00\x00\xb0\x21\x40\x00\x91\x3f\x00\x00\xeb\xc0\x00\x00\x54\x81\x00\x00\x90\x21\xe4\x47\xf9\x61\x00\x00\xb4\xf0\x03\x01\xaa\x00\x02\x1f\xd6\xc0\x03\x5f\xd6\x80\x00\x00\xb0\x00\x40\x00\x91\x81\x00\x00\xb0\x21\x40\x00\x91\x21\x00\x00\xcb\x22\xfc\x7f\xd3\x41\x0c\x81\x8b\x21\xfc\x41\x93\xc1\x00\x00\xb4\x82\x00\x00\x90\x42\xfc\x47\xf9\x62\x00\x00\xb4\xf0\x03\x02\xaa\x00\x02\x1f\xd6\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\xfd\x7b\xbe\xa9\xfd\x03\x00\x91\xf3\x0b\x00\xf9\x93\x00\x00\xb0\x60\x42\x40\x39\x40\x01\x00\x35\x80\x00\x00\x90\x00\xe8\x47\xf9\x80\x00\x00\xb4\x80\x00\x00\xb0\x00\x04\x40\xf9\xb5\xff\xff\x97\xd8\xff\xff\x97\x20\x00\x80\x52\x60\x42\x00\x39\xf3\x0b\x40\xf9\xfd\x7b\xc2\xa8\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\xdc\xff\xff\x17\x80\x00\x00\x90\x00\xf4\x47\xf9\x01\x00\x40\xb9\x80\x00\x00\x90\x00\xec\x47\xf9\x01\x00\x00\xb9\x00\x00\x80\x52\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\xfd\x7b\xbf\xa9\xfd\x03\x00\x91\xfd\x7b\xc1\xa8\xc0\x03\x5f\xd6\x01\x00\x02\x00\x01\x1b\x03\x3b\x38\x00\x00\x00\x06\x00\x00\x00\xb4\xfe\xff\xff\x50\x00\x00\x00\x04\xff\xff\xff\x64\x00\x00\x00\x34\xff\xff\xff\x78\x00\x00\x00\x74\xff\xff\xff\x8c\x00\x00\x00\xc4\xff\xff\xff\xb0\x00\x00\x00\xc8\xff\xff\xff\xc4\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x01\x7a\x52\x00\x04\x78\x1e\x01\x1b\x0c\x1f\x00\x10\x00\x00\x00\x18\x00\x00\x00\x5c\xfe\xff\xff\x34\x00\x00\x00\x00\x41\x07\x1e\x10\x00\x00\x00\x2c\x00\x00\x00\x98\xfe\xff\xff\x30\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x40\x00\x00\x00\xb4\xfe\xff\xff\x3c\x00\x00\x00\x00\x00\x00\x00\x20\x00\x00\x00\x54\x00\x00\x00\xe0\xfe\xff\xff\x48\x00\x00\x00\x00\x41\x0e\x20\x9d\x04\x9e\x03\x42\x93\x02\x4e\xde\xdd\xd3\x0e\x00\x00\x00\x00\x10\x00\x00\x00\x78\x00\x00\x00\x0c\xff\xff\xff\x04\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x8c\x00\x00\x00"), -Section(".comment", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x40\x06\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xc8\x1b\x00"), -Section(".interp", 0x238, "\x2f\x6c\x69\x62\x2f\x6c\x64\x2d\x6c\x69\x6e\x75\x78\x2d\x61\x61\x72\x63\x68\x36\x34\x2e\x73\x6f\x2e\x31\x00"), -Section(".note.gnu.build-id", 0x254, "\x04\x00\x00\x00\x14\x00\x00\x00\x03\x00\x00\x00\x47\x4e\x55\x00\x3b\xe2\xdd\x87\x1b\x6d\x56\xb6\xa5\xf0\x3c\xd4\x17\xc5\x83\x38\x8c\x87\xdd\x37"), -Section(".note.ABI-tag", 0x278, "\x04\x00\x00\x00\x10\x00\x00\x00\x01\x00\x00\x00\x47\x4e\x55\x00\x00\x00\x00\x00\x03\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00"), -Section(".gnu.hash", 0x298, "\x01\x00\x00\x00\x01\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".dynsym", 0x2B8, "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x0b\x00\xb0\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x16\x00\x00\x10\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x48\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x22\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x22\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x73\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".dynstr", 0x390, "\x00\x5f\x5f\x63\x78\x61\x5f\x66\x69\x6e\x61\x6c\x69\x7a\x65\x00\x5f\x5f\x6c\x69\x62\x63\x5f\x73\x74\x61\x72\x74\x5f\x6d\x61\x69\x6e\x00\x61\x62\x6f\x72\x74\x00\x6c\x69\x62\x63\x2e\x73\x6f\x2e\x36\x00\x47\x4c\x49\x42\x43\x5f\x32\x2e\x31\x37\x00\x47\x4c\x49\x42\x43\x5f\x32\x2e\x33\x34\x00\x5f\x49\x54\x4d\x5f\x64\x65\x72\x65\x67\x69\x73\x74\x65\x72\x54\x4d\x43\x6c\x6f\x6e\x65\x54\x61\x62\x6c\x65\x00\x5f\x5f\x67\x6d\x6f\x6e\x5f\x73\x74\x61\x72\x74\x5f\x5f\x00\x5f\x49\x54\x4d\x5f\x72\x65\x67\x69\x73\x74\x65\x72\x54\x4d\x43\x6c\x6f\x6e\x65\x54\x61\x62\x6c\x65\x00"), -Section(".gnu.version", 0x41E, "\x00\x00\x00\x00\x00\x00\x02\x00\x01\x00\x03\x00\x01\x00\x03\x00\x01\x00"), -Section(".gnu.version_r", 0x430, "\x01\x00\x02\x00\x28\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x97\x91\x96\x06\x00\x00\x03\x00\x32\x00\x00\x00\x10\x00\x00\x00\xb4\x91\x96\x06\x00\x00\x02\x00\x3d\x00\x00\x00\x00\x00\x00\x00"), -Section(".rela.dyn", 0x460, "\x88\x0d\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x50\x07\x00\x00\x00\x00\x00\x00\x90\x0d\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\xd8\x0f\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x14\x10\x01\x00\x00\x00\x00\x00\xe8\x0f\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x18\x10\x01\x00\x00\x00\x00\x00\xf0\x0f\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x54\x07\x00\x00\x00\x00\x00\x00\x08\x10\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x08\x10\x01\x00\x00\x00\x00\x00\xc8\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xd0\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe0\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xf8\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".rela.plt", 0x550, "\xa0\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xa8\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xb0\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xb8\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".init", 0x5B0, "\x1f\x20\x03\xd5\xfd\x7b\xbf\xa9\xfd\x03\x00\x91\x2e\x00\x00\x94\xfd\x7b\xc1\xa8\xc0\x03\x5f\xd6"), -Section(".plt", 0x5D0, "\xf0\x7b\xbf\xa9\x90\x00\x00\x90\x11\xce\x47\xf9\x10\x62\x3e\x91\x20\x02\x1f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x90\x00\x00\x90\x11\xd2\x47\xf9\x10\x82\x3e\x91\x20\x02\x1f\xd6\x90\x00\x00\x90\x11\xd6\x47\xf9\x10\xa2\x3e\x91\x20\x02\x1f\xd6\x90\x00\x00\x90\x11\xda\x47\xf9\x10\xc2\x3e\x91\x20\x02\x1f\xd6\x90\x00\x00\x90\x11\xde\x47\xf9\x10\xe2\x3e\x91\x20\x02\x1f\xd6"), -Section(".fini", 0x774, "\x1f\x20\x03\xd5\xfd\x7b\xbf\xa9\xfd\x03\x00\x91\xfd\x7b\xc1\xa8\xc0\x03\x5f\xd6"), -Section(".rodata", 0x788, "\x01\x00\x02\x00"), -Section(".eh_frame_hdr", 0x78C, "\x01\x1b\x03\x3b\x38\x00\x00\x00\x06\x00\x00\x00\xb4\xfe\xff\xff\x50\x00\x00\x00\x04\xff\xff\xff\x64\x00\x00\x00\x34\xff\xff\xff\x78\x00\x00\x00\x74\xff\xff\xff\x8c\x00\x00\x00\xc4\xff\xff\xff\xb0\x00\x00\x00\xc8\xff\xff\xff\xc4\x00\x00\x00"), -Section(".eh_frame", 0x7C8, "\x10\x00\x00\x00\x00\x00\x00\x00\x01\x7a\x52\x00\x04\x78\x1e\x01\x1b\x0c\x1f\x00\x10\x00\x00\x00\x18\x00\x00\x00\x5c\xfe\xff\xff\x34\x00\x00\x00\x00\x41\x07\x1e\x10\x00\x00\x00\x2c\x00\x00\x00\x98\xfe\xff\xff\x30\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x40\x00\x00\x00\xb4\xfe\xff\xff\x3c\x00\x00\x00\x00\x00\x00\x00\x20\x00\x00\x00\x54\x00\x00\x00\xe0\xfe\xff\xff\x48\x00\x00\x00\x00\x41\x0e\x20\x9d\x04\x9e\x03\x42\x93\x02\x4e\xde\xdd\xd3\x0e\x00\x00\x00\x00\x10\x00\x00\x00\x78\x00\x00\x00\x0c\xff\xff\xff\x04\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x8c\x00\x00\x00\xfc\xfe\xff\xff\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".fini_array", 0x10D90, "\x00\x07\x00\x00\x00\x00\x00\x00"), -Section(".dynamic", 0x10D98, "\x01\x00\x00\x00\x00\x00\x00\x00\x28\x00\x00\x00\x00\x00\x00\x00\x0c\x00\x00\x00\x00\x00\x00\x00\xb0\x05\x00\x00\x00\x00\x00\x00\x0d\x00\x00\x00\x00\x00\x00\x00\x74\x07\x00\x00\x00\x00\x00\x00\x19\x00\x00\x00\x00\x00\x00\x00\x88\x0d\x01\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x1a\x00\x00\x00\x00\x00\x00\x00\x90\x0d\x01\x00\x00\x00\x00\x00\x1c\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\xf5\xfe\xff\x6f\x00\x00\x00\x00\x98\x02\x00\x00\x00\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x90\x03\x00\x00\x00\x00\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\xb8\x02\x00\x00\x00\x00\x00\x00\x0a\x00\x00\x00\x00\x00\x00\x00\x8d\x00\x00\x00\x00\x00\x00\x00\x0b\x00\x00\x00\x00\x00\x00\x00\x18\x00\x00\x00\x00\x00\x00\x00\x15\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x88\x0f\x01\x00\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x60\x00\x00\x00\x00\x00\x00\x00\x14\x00\x00\x00\x00\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x17\x00\x00\x00\x00\x00\x00\x00\x50\x05\x00\x00\x00\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x60\x04\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\xf0\x00\x00\x00\x00\x00\x00\x00\x09\x00\x00\x00\x00\x00\x00\x00\x18\x00\x00\x00\x00\x00\x00\x00\x1e\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\xfb\xff\xff\x6f\x00\x00\x00\x00\x01\x00\x00\x08\x00\x00\x00\x00\xfe\xff\xff\x6f\x00\x00\x00\x00\x30\x04\x00\x00\x00\x00\x00\x00\xff\xff\xff\x6f\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\xf0\xff\xff\x6f\x00\x00\x00\x00\x1e\x04\x00\x00\x00\x00\x00\x00\xf9\xff\xff\x6f\x00\x00\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".got", 0x10F88, "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xd0\x05\x00\x00\x00\x00\x00\x00\xd0\x05\x00\x00\x00\x00\x00\x00\xd0\x05\x00\x00\x00\x00\x00\x00\xd0\x05\x00\x00\x00\x00\x00\x00\x98\x0d\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x14\x10\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x18\x10\x01\x00\x00\x00\x00\x00\x54\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".data", 0x11000, "\x00\x00\x00\x00\x00\x00\x00\x00\x08\x10\x01\x00\x00\x00\x00\x00"), -Section(".init_array", 0x10D88, "\x50\x07\x00\x00\x00\x00\x00\x00"), -Section(".text", 0x640, "\x1f\x20\x03\xd5\x1d\x00\x80\xd2\x1e\x00\x80\xd2\xe5\x03\x00\xaa\xe1\x03\x40\xf9\xe2\x23\x00\x91\xe6\x03\x00\x91\x80\x00\x00\x90\x00\xf8\x47\xf9\x03\x00\x80\xd2\x04\x00\x80\xd2\xe1\xff\xff\x97\xec\xff\xff\x97\x80\x00\x00\x90\x00\xf0\x47\xf9\x40\x00\x00\xb4\xe4\xff\xff\x17\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x80\x00\x00\xb0\x00\x40\x00\x91\x81\x00\x00\xb0\x21\x40\x00\x91\x3f\x00\x00\xeb\xc0\x00\x00\x54\x81\x00\x00\x90\x21\xe4\x47\xf9\x61\x00\x00\xb4\xf0\x03\x01\xaa\x00\x02\x1f\xd6\xc0\x03\x5f\xd6\x80\x00\x00\xb0\x00\x40\x00\x91\x81\x00\x00\xb0\x21\x40\x00\x91\x21\x00\x00\xcb\x22\xfc\x7f\xd3\x41\x0c\x81\x8b\x21\xfc\x41\x93\xc1\x00\x00\xb4\x82\x00\x00\x90\x42\xfc\x47\xf9\x62\x00\x00\xb4\xf0\x03\x02\xaa\x00\x02\x1f\xd6\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\xfd\x7b\xbe\xa9\xfd\x03\x00\x91\xf3\x0b\x00\xf9\x93\x00\x00\xb0\x60\x42\x40\x39\x40\x01\x00\x35\x80\x00\x00\x90\x00\xe8\x47\xf9\x80\x00\x00\xb4\x80\x00\x00\xb0\x00\x04\x40\xf9\xb5\xff\xff\x97\xd8\xff\xff\x97\x20\x00\x80\x52\x60\x42\x00\x39\xf3\x0b\x40\xf9\xfd\x7b\xc2\xa8\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\xdc\xff\xff\x17\x80\x00\x00\x90\x00\xf4\x47\xf9\x01\x00\x40\xb9\x80\x00\x00\x90\x00\xec\x47\xf9\x01\x00\x00\xb9\x00\x00\x80\x52\xc0\x03\x5f\xd6")]), -Memmap([Annotation(Region(0x0,0x867), Attr("segment","02 0 2152")), -Annotation(Region(0x640,0x673), Attr("symbol","\"_start\"")), -Annotation(Region(0x0,0xF9), Attr("section","\".shstrtab\"")), -Annotation(Region(0x0,0x230), Attr("section","\".strtab\"")), -Annotation(Region(0x0,0x857), Attr("section","\".symtab\"")), -Annotation(Region(0x0,0x2A), Attr("section","\".comment\"")), -Annotation(Region(0x238,0x252), Attr("section","\".interp\"")), -Annotation(Region(0x254,0x277), Attr("section","\".note.gnu.build-id\"")), -Annotation(Region(0x278,0x297), Attr("section","\".note.ABI-tag\"")), -Annotation(Region(0x298,0x2B3), Attr("section","\".gnu.hash\"")), -Annotation(Region(0x2B8,0x38F), Attr("section","\".dynsym\"")), -Annotation(Region(0x390,0x41C), Attr("section","\".dynstr\"")), -Annotation(Region(0x41E,0x42F), Attr("section","\".gnu.version\"")), -Annotation(Region(0x430,0x45F), Attr("section","\".gnu.version_r\"")), -Annotation(Region(0x460,0x54F), Attr("section","\".rela.dyn\"")), -Annotation(Region(0x550,0x5AF), Attr("section","\".rela.plt\"")), -Annotation(Region(0x5B0,0x5C7), Attr("section","\".init\"")), -Annotation(Region(0x5D0,0x62F), Attr("section","\".plt\"")), -Annotation(Region(0x5B0,0x5C7), Attr("code-region","()")), -Annotation(Region(0x5D0,0x62F), Attr("code-region","()")), -Annotation(Region(0x640,0x673), Attr("symbol-info","_start 0x640 52")), -Annotation(Region(0x674,0x687), Attr("symbol","\"call_weak_fn\"")), -Annotation(Region(0x674,0x687), Attr("symbol-info","call_weak_fn 0x674 20")), -Annotation(Region(0x754,0x773), Attr("symbol","\"main\"")), -Annotation(Region(0x754,0x773), Attr("symbol-info","main 0x754 32")), -Annotation(Region(0x774,0x787), Attr("section","\".fini\"")), -Annotation(Region(0x788,0x78B), Attr("section","\".rodata\"")), -Annotation(Region(0x78C,0x7C7), Attr("section","\".eh_frame_hdr\"")), -Annotation(Region(0x7C8,0x867), Attr("section","\".eh_frame\"")), -Annotation(Region(0x10D88,0x1100F), Attr("segment","03 0x10D88 664")), -Annotation(Region(0x10D90,0x10D97), Attr("section","\".fini_array\"")), -Annotation(Region(0x10D98,0x10F87), Attr("section","\".dynamic\"")), -Annotation(Region(0x10F88,0x10FFF), Attr("section","\".got\"")), -Annotation(Region(0x11000,0x1100F), Attr("section","\".data\"")), -Annotation(Region(0x10D88,0x10D8F), Attr("section","\".init_array\"")), -Annotation(Region(0x640,0x773), Attr("section","\".text\"")), -Annotation(Region(0x640,0x773), Attr("code-region","()")), -Annotation(Region(0x774,0x787), Attr("code-region","()"))]), -Program(Tid(1_347, "%00000543"), Attrs([]), - Subs([Sub(Tid(1_297, "@__cxa_finalize"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x600"), -Attr("stub","()")]), "__cxa_finalize", Args([Arg(Tid(1_348, "%00000544"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("__cxa_finalize_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(818, "@__cxa_finalize"), - Attrs([Attr("address","0x600")]), Phis([]), -Defs([Def(Tid(1_066, "%0000042a"), Attrs([Attr("address","0x600"), -Attr("insn","adrp x16, #65536")]), Var("R16",Imm(64)), Int(65536,64)), -Def(Tid(1_073, "%00000431"), Attrs([Attr("address","0x604"), -Attr("insn","ldr x17, [x16, #0xfa8]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(4008,64)),LittleEndian(),64)), -Def(Tid(1_079, "%00000437"), Attrs([Attr("address","0x608"), -Attr("insn","add x16, x16, #0xfa8")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(4008,64)))]), Jmps([Call(Tid(1_084, "%0000043c"), - Attrs([Attr("address","0x60C"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), -Sub(Tid(1_298, "@__do_global_dtors_aux"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x700")]), - "__do_global_dtors_aux", Args([Arg(Tid(1_349, "%00000545"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("__do_global_dtors_aux_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(622, "@__do_global_dtors_aux"), - Attrs([Attr("address","0x700")]), Phis([]), Defs([Def(Tid(626, "%00000272"), - Attrs([Attr("address","0x700"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("#3",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(18446744073709551584,64))), -Def(Tid(632, "%00000278"), Attrs([Attr("address","0x700"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("#3",Imm(64)),Var("R29",Imm(64)),LittleEndian(),64)), -Def(Tid(638, "%0000027e"), Attrs([Attr("address","0x700"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("#3",Imm(64)),Int(8,64)),Var("R30",Imm(64)),LittleEndian(),64)), -Def(Tid(642, "%00000282"), Attrs([Attr("address","0x700"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("R31",Imm(64)), -Var("#3",Imm(64))), Def(Tid(648, "%00000288"), - Attrs([Attr("address","0x704"), Attr("insn","mov x29, sp")]), - Var("R29",Imm(64)), Var("R31",Imm(64))), Def(Tid(656, "%00000290"), - Attrs([Attr("address","0x708"), Attr("insn","str x19, [sp, #0x10]")]), - Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(16,64)),Var("R19",Imm(64)),LittleEndian(),64)), -Def(Tid(661, "%00000295"), Attrs([Attr("address","0x70C"), -Attr("insn","adrp x19, #69632")]), Var("R19",Imm(64)), Int(69632,64)), -Def(Tid(668, "%0000029c"), Attrs([Attr("address","0x710"), -Attr("insn","ldrb w0, [x19, #0x10]")]), Var("R0",Imm(64)), -UNSIGNED(64,Load(Var("mem",Mem(64,8)),PLUS(Var("R19",Imm(64)),Int(16,64)),LittleEndian(),8)))]), -Jmps([Goto(Tid(675, "%000002a3"), Attrs([Attr("address","0x714"), -Attr("insn","cbnz w0, #0x28")]), - NEQ(Extract(31,0,Var("R0",Imm(64))),Int(0,32)), -Direct(Tid(673, "%000002a1"))), Goto(Tid(1_337, "%00000539"), Attrs([]), - Int(1,1), Direct(Tid(763, "%000002fb")))])), Blk(Tid(763, "%000002fb"), - Attrs([Attr("address","0x718")]), Phis([]), Defs([Def(Tid(766, "%000002fe"), - Attrs([Attr("address","0x718"), Attr("insn","adrp x0, #65536")]), - Var("R0",Imm(64)), Int(65536,64)), Def(Tid(773, "%00000305"), - Attrs([Attr("address","0x71C"), Attr("insn","ldr x0, [x0, #0xfd0]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(4048,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(779, "%0000030b"), Attrs([Attr("address","0x720"), -Attr("insn","cbz x0, #0x10")]), EQ(Var("R0",Imm(64)),Int(0,64)), -Direct(Tid(777, "%00000309"))), Goto(Tid(1_338, "%0000053a"), Attrs([]), - Int(1,1), Direct(Tid(802, "%00000322")))])), Blk(Tid(802, "%00000322"), - Attrs([Attr("address","0x724")]), Phis([]), Defs([Def(Tid(805, "%00000325"), - Attrs([Attr("address","0x724"), Attr("insn","adrp x0, #69632")]), - Var("R0",Imm(64)), Int(69632,64)), Def(Tid(812, "%0000032c"), - Attrs([Attr("address","0x728"), Attr("insn","ldr x0, [x0, #0x8]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(817, "%00000331"), Attrs([Attr("address","0x72C"), -Attr("insn","bl #-0x12c")]), Var("R30",Imm(64)), Int(1840,64))]), -Jmps([Call(Tid(820, "%00000334"), Attrs([Attr("address","0x72C"), -Attr("insn","bl #-0x12c")]), Int(1,1), -(Direct(Tid(1_297, "@__cxa_finalize")),Direct(Tid(777, "%00000309"))))])), -Blk(Tid(777, "%00000309"), Attrs([Attr("address","0x730")]), Phis([]), -Defs([Def(Tid(785, "%00000311"), Attrs([Attr("address","0x730"), -Attr("insn","bl #-0xa0")]), Var("R30",Imm(64)), Int(1844,64))]), -Jmps([Call(Tid(787, "%00000313"), Attrs([Attr("address","0x730"), -Attr("insn","bl #-0xa0")]), Int(1,1), -(Direct(Tid(1_311, "@deregister_tm_clones")),Direct(Tid(789, "%00000315"))))])), -Blk(Tid(789, "%00000315"), Attrs([Attr("address","0x734")]), Phis([]), -Defs([Def(Tid(792, "%00000318"), Attrs([Attr("address","0x734"), -Attr("insn","mov w0, #0x1")]), Var("R0",Imm(64)), Int(1,64)), -Def(Tid(800, "%00000320"), Attrs([Attr("address","0x738"), -Attr("insn","strb w0, [x19, #0x10]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R19",Imm(64)),Int(16,64)),Extract(7,0,Var("R0",Imm(64))),LittleEndian(),8))]), -Jmps([Goto(Tid(1_339, "%0000053b"), Attrs([]), Int(1,1), -Direct(Tid(673, "%000002a1")))])), Blk(Tid(673, "%000002a1"), - Attrs([Attr("address","0x73C")]), Phis([]), Defs([Def(Tid(683, "%000002ab"), - Attrs([Attr("address","0x73C"), Attr("insn","ldr x19, [sp, #0x10]")]), - Var("R19",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(16,64)),LittleEndian(),64)), -Def(Tid(690, "%000002b2"), Attrs([Attr("address","0x740"), -Attr("insn","ldp x29, x30, [sp], #0x20")]), Var("R29",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(695, "%000002b7"), Attrs([Attr("address","0x740"), -Attr("insn","ldp x29, x30, [sp], #0x20")]), Var("R30",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(699, "%000002bb"), Attrs([Attr("address","0x740"), -Attr("insn","ldp x29, x30, [sp], #0x20")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(32,64)))]), Jmps([Call(Tid(704, "%000002c0"), - Attrs([Attr("address","0x744"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), Sub(Tid(1_302, "@__libc_start_main"), - Attrs([Attr("c.proto","signed (*)(signed (*)(signed , char** , char** );* main, signed , char** , \nvoid* auxv)"), -Attr("address","0x5F0"), Attr("stub","()")]), "__libc_start_main", - Args([Arg(Tid(1_350, "%00000546"), - Attrs([Attr("c.layout","**[ : 64]"), -Attr("c.data","Top:u64 ptr ptr"), -Attr("c.type","signed (*)(signed , char** , char** );*")]), - Var("__libc_start_main_main",Imm(64)), Var("R0",Imm(64)), In()), -Arg(Tid(1_351, "%00000547"), Attrs([Attr("c.layout","[signed : 32]"), -Attr("c.data","Top:u32"), Attr("c.type","signed")]), - Var("__libc_start_main_arg2",Imm(32)), LOW(32,Var("R1",Imm(64))), In()), -Arg(Tid(1_352, "%00000548"), Attrs([Attr("c.layout","**[char : 8]"), -Attr("c.data","Top:u8 ptr ptr"), Attr("c.type","char**")]), - Var("__libc_start_main_arg3",Imm(64)), Var("R2",Imm(64)), Both()), -Arg(Tid(1_353, "%00000549"), Attrs([Attr("c.layout","*[ : 8]"), -Attr("c.data","{} ptr"), Attr("c.type","void*")]), - Var("__libc_start_main_auxv",Imm(64)), Var("R3",Imm(64)), Both()), -Arg(Tid(1_354, "%0000054a"), Attrs([Attr("c.layout","[signed : 32]"), -Attr("c.data","Top:u32"), Attr("c.type","signed")]), - Var("__libc_start_main_result",Imm(32)), LOW(32,Var("R0",Imm(64))), -Out())]), Blks([Blk(Tid(455, "@__libc_start_main"), - Attrs([Attr("address","0x5F0")]), Phis([]), -Defs([Def(Tid(1_044, "%00000414"), Attrs([Attr("address","0x5F0"), -Attr("insn","adrp x16, #65536")]), Var("R16",Imm(64)), Int(65536,64)), -Def(Tid(1_051, "%0000041b"), Attrs([Attr("address","0x5F4"), -Attr("insn","ldr x17, [x16, #0xfa0]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(4000,64)),LittleEndian(),64)), -Def(Tid(1_057, "%00000421"), Attrs([Attr("address","0x5F8"), -Attr("insn","add x16, x16, #0xfa0")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(4000,64)))]), Jmps([Call(Tid(1_062, "%00000426"), - Attrs([Attr("address","0x5FC"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), Sub(Tid(1_303, "@_fini"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x774")]), - "_fini", Args([Arg(Tid(1_355, "%0000054b"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("_fini_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(31, "@_fini"), - Attrs([Attr("address","0x774")]), Phis([]), Defs([Def(Tid(37, "%00000025"), - Attrs([Attr("address","0x778"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("#0",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(18446744073709551600,64))), -Def(Tid(43, "%0000002b"), Attrs([Attr("address","0x778"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("#0",Imm(64)),Var("R29",Imm(64)),LittleEndian(),64)), -Def(Tid(49, "%00000031"), Attrs([Attr("address","0x778"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("#0",Imm(64)),Int(8,64)),Var("R30",Imm(64)),LittleEndian(),64)), -Def(Tid(53, "%00000035"), Attrs([Attr("address","0x778"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("R31",Imm(64)), -Var("#0",Imm(64))), Def(Tid(59, "%0000003b"), Attrs([Attr("address","0x77C"), -Attr("insn","mov x29, sp")]), Var("R29",Imm(64)), Var("R31",Imm(64))), -Def(Tid(66, "%00000042"), Attrs([Attr("address","0x780"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R29",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(71, "%00000047"), Attrs([Attr("address","0x780"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R30",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(75, "%0000004b"), Attrs([Attr("address","0x780"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(16,64)))]), Jmps([Call(Tid(80, "%00000050"), - Attrs([Attr("address","0x784"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), Sub(Tid(1_304, "@_init"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x5B0")]), - "_init", Args([Arg(Tid(1_356, "%0000054c"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("_init_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(1_156, "@_init"), - Attrs([Attr("address","0x5B0")]), Phis([]), -Defs([Def(Tid(1_162, "%0000048a"), Attrs([Attr("address","0x5B4"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("#5",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(18446744073709551600,64))), -Def(Tid(1_168, "%00000490"), Attrs([Attr("address","0x5B4"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("#5",Imm(64)),Var("R29",Imm(64)),LittleEndian(),64)), -Def(Tid(1_174, "%00000496"), Attrs([Attr("address","0x5B4"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("#5",Imm(64)),Int(8,64)),Var("R30",Imm(64)),LittleEndian(),64)), -Def(Tid(1_178, "%0000049a"), Attrs([Attr("address","0x5B4"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("R31",Imm(64)), -Var("#5",Imm(64))), Def(Tid(1_184, "%000004a0"), - Attrs([Attr("address","0x5B8"), Attr("insn","mov x29, sp")]), - Var("R29",Imm(64)), Var("R31",Imm(64))), Def(Tid(1_189, "%000004a5"), - Attrs([Attr("address","0x5BC"), Attr("insn","bl #0xb8")]), - Var("R30",Imm(64)), Int(1472,64))]), Jmps([Call(Tid(1_191, "%000004a7"), - Attrs([Attr("address","0x5BC"), Attr("insn","bl #0xb8")]), Int(1,1), -(Direct(Tid(1_309, "@call_weak_fn")),Direct(Tid(1_193, "%000004a9"))))])), -Blk(Tid(1_193, "%000004a9"), Attrs([Attr("address","0x5C0")]), Phis([]), -Defs([Def(Tid(1_198, "%000004ae"), Attrs([Attr("address","0x5C0"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R29",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(1_203, "%000004b3"), Attrs([Attr("address","0x5C0"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R30",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(1_207, "%000004b7"), Attrs([Attr("address","0x5C0"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(16,64)))]), Jmps([Call(Tid(1_212, "%000004bc"), - Attrs([Attr("address","0x5C4"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), Sub(Tid(1_305, "@_start"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x640"), -Attr("entry-point","()")]), "_start", Args([Arg(Tid(1_357, "%0000054d"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("_start_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(392, "@_start"), - Attrs([Attr("address","0x640")]), Phis([]), Defs([Def(Tid(397, "%0000018d"), - Attrs([Attr("address","0x644"), Attr("insn","mov x29, #0x0")]), - Var("R29",Imm(64)), Int(0,64)), Def(Tid(402, "%00000192"), - Attrs([Attr("address","0x648"), Attr("insn","mov x30, #0x0")]), - Var("R30",Imm(64)), Int(0,64)), Def(Tid(408, "%00000198"), - Attrs([Attr("address","0x64C"), Attr("insn","mov x5, x0")]), - Var("R5",Imm(64)), Var("R0",Imm(64))), Def(Tid(415, "%0000019f"), - Attrs([Attr("address","0x650"), Attr("insn","ldr x1, [sp]")]), - Var("R1",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(421, "%000001a5"), Attrs([Attr("address","0x654"), -Attr("insn","add x2, sp, #0x8")]), Var("R2",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(8,64))), Def(Tid(427, "%000001ab"), - Attrs([Attr("address","0x658"), Attr("insn","mov x6, sp")]), - Var("R6",Imm(64)), Var("R31",Imm(64))), Def(Tid(432, "%000001b0"), - Attrs([Attr("address","0x65C"), Attr("insn","adrp x0, #65536")]), - Var("R0",Imm(64)), Int(65536,64)), Def(Tid(439, "%000001b7"), - Attrs([Attr("address","0x660"), Attr("insn","ldr x0, [x0, #0xff0]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(4080,64)),LittleEndian(),64)), -Def(Tid(444, "%000001bc"), Attrs([Attr("address","0x664"), -Attr("insn","mov x3, #0x0")]), Var("R3",Imm(64)), Int(0,64)), -Def(Tid(449, "%000001c1"), Attrs([Attr("address","0x668"), -Attr("insn","mov x4, #0x0")]), Var("R4",Imm(64)), Int(0,64)), -Def(Tid(454, "%000001c6"), Attrs([Attr("address","0x66C"), -Attr("insn","bl #-0x7c")]), Var("R30",Imm(64)), Int(1648,64))]), -Jmps([Call(Tid(457, "%000001c9"), Attrs([Attr("address","0x66C"), -Attr("insn","bl #-0x7c")]), Int(1,1), -(Direct(Tid(1_302, "@__libc_start_main")),Direct(Tid(459, "%000001cb"))))])), -Blk(Tid(459, "%000001cb"), Attrs([Attr("address","0x670")]), Phis([]), -Defs([Def(Tid(462, "%000001ce"), Attrs([Attr("address","0x670"), -Attr("insn","bl #-0x50")]), Var("R30",Imm(64)), Int(1652,64))]), -Jmps([Call(Tid(465, "%000001d1"), Attrs([Attr("address","0x670"), -Attr("insn","bl #-0x50")]), Int(1,1), -(Direct(Tid(1_308, "@abort")),Direct(Tid(1_340, "%0000053c"))))])), -Blk(Tid(1_340, "%0000053c"), Attrs([]), Phis([]), Defs([]), -Jmps([Call(Tid(1_341, "%0000053d"), Attrs([]), Int(1,1), -(Direct(Tid(1_309, "@call_weak_fn")),))]))])), Sub(Tid(1_308, "@abort"), - Attrs([Attr("noreturn","()"), Attr("c.proto","void (*)(void)"), -Attr("address","0x620"), Attr("stub","()")]), "abort", Args([]), -Blks([Blk(Tid(463, "@abort"), Attrs([Attr("address","0x620")]), Phis([]), -Defs([Def(Tid(1_110, "%00000456"), Attrs([Attr("address","0x620"), -Attr("insn","adrp x16, #65536")]), Var("R16",Imm(64)), Int(65536,64)), -Def(Tid(1_117, "%0000045d"), Attrs([Attr("address","0x624"), -Attr("insn","ldr x17, [x16, #0xfb8]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(4024,64)),LittleEndian(),64)), -Def(Tid(1_123, "%00000463"), Attrs([Attr("address","0x628"), -Attr("insn","add x16, x16, #0xfb8")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(4024,64)))]), Jmps([Call(Tid(1_128, "%00000468"), - Attrs([Attr("address","0x62C"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), Sub(Tid(1_309, "@call_weak_fn"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x674")]), - "call_weak_fn", Args([Arg(Tid(1_358, "%0000054e"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("call_weak_fn_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(467, "@call_weak_fn"), - Attrs([Attr("address","0x674")]), Phis([]), Defs([Def(Tid(470, "%000001d6"), - Attrs([Attr("address","0x674"), Attr("insn","adrp x0, #65536")]), - Var("R0",Imm(64)), Int(65536,64)), Def(Tid(477, "%000001dd"), - Attrs([Attr("address","0x678"), Attr("insn","ldr x0, [x0, #0xfe0]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(4064,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(483, "%000001e3"), Attrs([Attr("address","0x67C"), -Attr("insn","cbz x0, #0x8")]), EQ(Var("R0",Imm(64)),Int(0,64)), -Direct(Tid(481, "%000001e1"))), Goto(Tid(1_342, "%0000053e"), Attrs([]), - Int(1,1), Direct(Tid(882, "%00000372")))])), Blk(Tid(481, "%000001e1"), - Attrs([Attr("address","0x684")]), Phis([]), Defs([]), -Jmps([Call(Tid(489, "%000001e9"), Attrs([Attr("address","0x684"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))])), -Blk(Tid(882, "%00000372"), Attrs([Attr("address","0x680")]), Phis([]), -Defs([]), Jmps([Goto(Tid(885, "%00000375"), Attrs([Attr("address","0x680"), -Attr("insn","b #-0x70")]), Int(1,1), Direct(Tid(883, "@__gmon_start__")))])), -Blk(Tid(883, "@__gmon_start__"), Attrs([Attr("address","0x610")]), Phis([]), -Defs([Def(Tid(1_088, "%00000440"), Attrs([Attr("address","0x610"), -Attr("insn","adrp x16, #65536")]), Var("R16",Imm(64)), Int(65536,64)), -Def(Tid(1_095, "%00000447"), Attrs([Attr("address","0x614"), -Attr("insn","ldr x17, [x16, #0xfb0]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(4016,64)),LittleEndian(),64)), -Def(Tid(1_101, "%0000044d"), Attrs([Attr("address","0x618"), -Attr("insn","add x16, x16, #0xfb0")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(4016,64)))]), Jmps([Call(Tid(1_106, "%00000452"), - Attrs([Attr("address","0x61C"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), -Sub(Tid(1_311, "@deregister_tm_clones"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x690")]), - "deregister_tm_clones", Args([Arg(Tid(1_359, "%0000054f"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("deregister_tm_clones_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(495, "@deregister_tm_clones"), - Attrs([Attr("address","0x690")]), Phis([]), Defs([Def(Tid(498, "%000001f2"), - Attrs([Attr("address","0x690"), Attr("insn","adrp x0, #69632")]), - Var("R0",Imm(64)), Int(69632,64)), Def(Tid(504, "%000001f8"), - Attrs([Attr("address","0x694"), Attr("insn","add x0, x0, #0x10")]), - Var("R0",Imm(64)), PLUS(Var("R0",Imm(64)),Int(16,64))), -Def(Tid(509, "%000001fd"), Attrs([Attr("address","0x698"), -Attr("insn","adrp x1, #69632")]), Var("R1",Imm(64)), Int(69632,64)), -Def(Tid(515, "%00000203"), Attrs([Attr("address","0x69C"), -Attr("insn","add x1, x1, #0x10")]), Var("R1",Imm(64)), -PLUS(Var("R1",Imm(64)),Int(16,64))), Def(Tid(521, "%00000209"), - Attrs([Attr("address","0x6A0"), Attr("insn","cmp x1, x0")]), - Var("#1",Imm(64)), NOT(Var("R0",Imm(64)))), Def(Tid(526, "%0000020e"), - Attrs([Attr("address","0x6A0"), Attr("insn","cmp x1, x0")]), - Var("#2",Imm(64)), PLUS(Var("R1",Imm(64)),NOT(Var("R0",Imm(64))))), -Def(Tid(532, "%00000214"), Attrs([Attr("address","0x6A0"), -Attr("insn","cmp x1, x0")]), Var("VF",Imm(1)), -NEQ(SIGNED(65,PLUS(Var("#2",Imm(64)),Int(1,64))),PLUS(PLUS(SIGNED(65,Var("R1",Imm(64))),SIGNED(65,Var("#1",Imm(64)))),Int(1,65)))), -Def(Tid(538, "%0000021a"), Attrs([Attr("address","0x6A0"), -Attr("insn","cmp x1, x0")]), Var("CF",Imm(1)), -NEQ(UNSIGNED(65,PLUS(Var("#2",Imm(64)),Int(1,64))),PLUS(PLUS(UNSIGNED(65,Var("R1",Imm(64))),UNSIGNED(65,Var("#1",Imm(64)))),Int(1,65)))), -Def(Tid(542, "%0000021e"), Attrs([Attr("address","0x6A0"), -Attr("insn","cmp x1, x0")]), Var("ZF",Imm(1)), -EQ(PLUS(Var("#2",Imm(64)),Int(1,64)),Int(0,64))), Def(Tid(546, "%00000222"), - Attrs([Attr("address","0x6A0"), Attr("insn","cmp x1, x0")]), - Var("NF",Imm(1)), Extract(63,63,PLUS(Var("#2",Imm(64)),Int(1,64))))]), -Jmps([Goto(Tid(552, "%00000228"), Attrs([Attr("address","0x6A4"), -Attr("insn","b.eq #0x18")]), EQ(Var("ZF",Imm(1)),Int(1,1)), -Direct(Tid(550, "%00000226"))), Goto(Tid(1_343, "%0000053f"), Attrs([]), - Int(1,1), Direct(Tid(852, "%00000354")))])), Blk(Tid(852, "%00000354"), - Attrs([Attr("address","0x6A8")]), Phis([]), Defs([Def(Tid(855, "%00000357"), - Attrs([Attr("address","0x6A8"), Attr("insn","adrp x1, #65536")]), - Var("R1",Imm(64)), Int(65536,64)), Def(Tid(862, "%0000035e"), - Attrs([Attr("address","0x6AC"), Attr("insn","ldr x1, [x1, #0xfc8]")]), - Var("R1",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R1",Imm(64)),Int(4040,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(867, "%00000363"), Attrs([Attr("address","0x6B0"), -Attr("insn","cbz x1, #0xc")]), EQ(Var("R1",Imm(64)),Int(0,64)), -Direct(Tid(550, "%00000226"))), Goto(Tid(1_344, "%00000540"), Attrs([]), - Int(1,1), Direct(Tid(871, "%00000367")))])), Blk(Tid(550, "%00000226"), - Attrs([Attr("address","0x6BC")]), Phis([]), Defs([]), -Jmps([Call(Tid(558, "%0000022e"), Attrs([Attr("address","0x6BC"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))])), -Blk(Tid(871, "%00000367"), Attrs([Attr("address","0x6B4")]), Phis([]), -Defs([Def(Tid(875, "%0000036b"), Attrs([Attr("address","0x6B4"), -Attr("insn","mov x16, x1")]), Var("R16",Imm(64)), Var("R1",Imm(64)))]), -Jmps([Call(Tid(880, "%00000370"), Attrs([Attr("address","0x6B8"), -Attr("insn","br x16")]), Int(1,1), (Indirect(Var("R16",Imm(64))),))]))])), -Sub(Tid(1_314, "@frame_dummy"), Attrs([Attr("c.proto","signed (*)(void)"), -Attr("address","0x750")]), "frame_dummy", Args([Arg(Tid(1_360, "%00000550"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("frame_dummy_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(710, "@frame_dummy"), - Attrs([Attr("address","0x750")]), Phis([]), Defs([]), -Jmps([Call(Tid(712, "%000002c8"), Attrs([Attr("address","0x750"), -Attr("insn","b #-0x90")]), Int(1,1), -(Direct(Tid(1_316, "@register_tm_clones")),))]))])), Sub(Tid(1_315, "@main"), - Attrs([Attr("c.proto","signed (*)(signed argc, const char** argv)"), -Attr("address","0x754")]), "main", Args([Arg(Tid(1_361, "%00000551"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("main_argc",Imm(32)), -LOW(32,Var("R0",Imm(64))), In()), Arg(Tid(1_362, "%00000552"), - Attrs([Attr("c.layout","**[char : 8]"), Attr("c.data","Top:u8 ptr ptr"), -Attr("c.type"," const char**")]), Var("main_argv",Imm(64)), -Var("R1",Imm(64)), Both()), Arg(Tid(1_363, "%00000553"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("main_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(714, "@main"), - Attrs([Attr("address","0x754")]), Phis([]), Defs([Def(Tid(717, "%000002cd"), - Attrs([Attr("address","0x754"), Attr("insn","adrp x0, #65536")]), - Var("R0",Imm(64)), Int(65536,64)), Def(Tid(724, "%000002d4"), - Attrs([Attr("address","0x758"), Attr("insn","ldr x0, [x0, #0xfe8]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(4072,64)),LittleEndian(),64)), -Def(Tid(731, "%000002db"), Attrs([Attr("address","0x75C"), -Attr("insn","ldr w1, [x0]")]), Var("R1",Imm(64)), -UNSIGNED(64,Load(Var("mem",Mem(64,8)),Var("R0",Imm(64)),LittleEndian(),32))), -Def(Tid(736, "%000002e0"), Attrs([Attr("address","0x760"), -Attr("insn","adrp x0, #65536")]), Var("R0",Imm(64)), Int(65536,64)), -Def(Tid(743, "%000002e7"), Attrs([Attr("address","0x764"), -Attr("insn","ldr x0, [x0, #0xfd8]")]), Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(4056,64)),LittleEndian(),64)), -Def(Tid(751, "%000002ef"), Attrs([Attr("address","0x768"), -Attr("insn","str w1, [x0]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("R0",Imm(64)),Extract(31,0,Var("R1",Imm(64))),LittleEndian(),32)), -Def(Tid(756, "%000002f4"), Attrs([Attr("address","0x76C"), -Attr("insn","mov w0, #0x0")]), Var("R0",Imm(64)), Int(0,64))]), -Jmps([Call(Tid(761, "%000002f9"), Attrs([Attr("address","0x770"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))]))])), -Sub(Tid(1_316, "@register_tm_clones"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x6C0")]), - "register_tm_clones", Args([Arg(Tid(1_364, "%00000554"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("register_tm_clones_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(560, "@register_tm_clones"), Attrs([Attr("address","0x6C0")]), - Phis([]), Defs([Def(Tid(563, "%00000233"), Attrs([Attr("address","0x6C0"), -Attr("insn","adrp x0, #69632")]), Var("R0",Imm(64)), Int(69632,64)), -Def(Tid(569, "%00000239"), Attrs([Attr("address","0x6C4"), -Attr("insn","add x0, x0, #0x10")]), Var("R0",Imm(64)), -PLUS(Var("R0",Imm(64)),Int(16,64))), Def(Tid(574, "%0000023e"), - Attrs([Attr("address","0x6C8"), Attr("insn","adrp x1, #69632")]), - Var("R1",Imm(64)), Int(69632,64)), Def(Tid(580, "%00000244"), - Attrs([Attr("address","0x6CC"), Attr("insn","add x1, x1, #0x10")]), - Var("R1",Imm(64)), PLUS(Var("R1",Imm(64)),Int(16,64))), -Def(Tid(587, "%0000024b"), Attrs([Attr("address","0x6D0"), -Attr("insn","sub x1, x1, x0")]), Var("R1",Imm(64)), -PLUS(PLUS(Var("R1",Imm(64)),NOT(Var("R0",Imm(64)))),Int(1,64))), -Def(Tid(593, "%00000251"), Attrs([Attr("address","0x6D4"), -Attr("insn","lsr x2, x1, #63")]), Var("R2",Imm(64)), -Concat(Int(0,63),Extract(63,63,Var("R1",Imm(64))))), -Def(Tid(600, "%00000258"), Attrs([Attr("address","0x6D8"), -Attr("insn","add x1, x2, x1, asr #3")]), Var("R1",Imm(64)), -PLUS(Var("R2",Imm(64)),ARSHIFT(Var("R1",Imm(64)),Int(3,3)))), -Def(Tid(606, "%0000025e"), Attrs([Attr("address","0x6DC"), -Attr("insn","asr x1, x1, #1")]), Var("R1",Imm(64)), -SIGNED(64,Extract(63,1,Var("R1",Imm(64)))))]), -Jmps([Goto(Tid(612, "%00000264"), Attrs([Attr("address","0x6E0"), -Attr("insn","cbz x1, #0x18")]), EQ(Var("R1",Imm(64)),Int(0,64)), -Direct(Tid(610, "%00000262"))), Goto(Tid(1_345, "%00000541"), Attrs([]), - Int(1,1), Direct(Tid(822, "%00000336")))])), Blk(Tid(822, "%00000336"), - Attrs([Attr("address","0x6E4")]), Phis([]), Defs([Def(Tid(825, "%00000339"), - Attrs([Attr("address","0x6E4"), Attr("insn","adrp x2, #65536")]), - Var("R2",Imm(64)), Int(65536,64)), Def(Tid(832, "%00000340"), - Attrs([Attr("address","0x6E8"), Attr("insn","ldr x2, [x2, #0xff8]")]), - Var("R2",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R2",Imm(64)),Int(4088,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(837, "%00000345"), Attrs([Attr("address","0x6EC"), -Attr("insn","cbz x2, #0xc")]), EQ(Var("R2",Imm(64)),Int(0,64)), -Direct(Tid(610, "%00000262"))), Goto(Tid(1_346, "%00000542"), Attrs([]), - Int(1,1), Direct(Tid(841, "%00000349")))])), Blk(Tid(610, "%00000262"), - Attrs([Attr("address","0x6F8")]), Phis([]), Defs([]), -Jmps([Call(Tid(618, "%0000026a"), Attrs([Attr("address","0x6F8"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))])), -Blk(Tid(841, "%00000349"), Attrs([Attr("address","0x6F0")]), Phis([]), -Defs([Def(Tid(845, "%0000034d"), Attrs([Attr("address","0x6F0"), -Attr("insn","mov x16, x2")]), Var("R16",Imm(64)), Var("R2",Imm(64)))]), -Jmps([Call(Tid(850, "%00000352"), Attrs([Attr("address","0x6F4"), -Attr("insn","br x16")]), Int(1,1), -(Indirect(Var("R16",Imm(64))),))]))]))]))) \ No newline at end of file diff --git a/src/test/correct/basicassign_gamma0/gcc_pic/basicassign_gamma0.bir b/src/test/correct/basicassign_gamma0/gcc_pic/basicassign_gamma0.bir deleted file mode 100644 index b96772d45..000000000 --- a/src/test/correct/basicassign_gamma0/gcc_pic/basicassign_gamma0.bir +++ /dev/null @@ -1,230 +0,0 @@ -00000543: program -00000511: sub __cxa_finalize(__cxa_finalize_result) -00000544: __cxa_finalize_result :: out u32 = low:32[R0] - -00000332: -0000042a: R16 := 0x10000 -00000431: R17 := mem[R16 + 0xFA8, el]:u64 -00000437: R16 := R16 + 0xFA8 -0000043c: call R17 with noreturn - -00000512: sub __do_global_dtors_aux(__do_global_dtors_aux_result) -00000545: __do_global_dtors_aux_result :: out u32 = low:32[R0] - -0000026e: -00000272: #3 := R31 - 0x20 -00000278: mem := mem with [#3, el]:u64 <- R29 -0000027e: mem := mem with [#3 + 8, el]:u64 <- R30 -00000282: R31 := #3 -00000288: R29 := R31 -00000290: mem := mem with [R31 + 0x10, el]:u64 <- R19 -00000295: R19 := 0x11000 -0000029c: R0 := pad:64[mem[R19 + 0x10]] -000002a3: when 31:0[R0] <> 0 goto %000002a1 -00000539: goto %000002fb - -000002fb: -000002fe: R0 := 0x10000 -00000305: R0 := mem[R0 + 0xFD0, el]:u64 -0000030b: when R0 = 0 goto %00000309 -0000053a: goto %00000322 - -00000322: -00000325: R0 := 0x11000 -0000032c: R0 := mem[R0 + 8, el]:u64 -00000331: R30 := 0x730 -00000334: call @__cxa_finalize with return %00000309 - -00000309: -00000311: R30 := 0x734 -00000313: call @deregister_tm_clones with return %00000315 - -00000315: -00000318: R0 := 1 -00000320: mem := mem with [R19 + 0x10] <- 7:0[R0] -0000053b: goto %000002a1 - -000002a1: -000002ab: R19 := mem[R31 + 0x10, el]:u64 -000002b2: R29 := mem[R31, el]:u64 -000002b7: R30 := mem[R31 + 8, el]:u64 -000002bb: R31 := R31 + 0x20 -000002c0: call R30 with noreturn - -00000516: sub __libc_start_main(__libc_start_main_main, __libc_start_main_arg2, __libc_start_main_arg3, __libc_start_main_auxv, __libc_start_main_result) -00000546: __libc_start_main_main :: in u64 = R0 -00000547: __libc_start_main_arg2 :: in u32 = low:32[R1] -00000548: __libc_start_main_arg3 :: in out u64 = R2 -00000549: __libc_start_main_auxv :: in out u64 = R3 -0000054a: __libc_start_main_result :: out u32 = low:32[R0] - -000001c7: -00000414: R16 := 0x10000 -0000041b: R17 := mem[R16 + 0xFA0, el]:u64 -00000421: R16 := R16 + 0xFA0 -00000426: call R17 with noreturn - -00000517: sub _fini(_fini_result) -0000054b: _fini_result :: out u32 = low:32[R0] - -0000001f: -00000025: #0 := R31 - 0x10 -0000002b: mem := mem with [#0, el]:u64 <- R29 -00000031: mem := mem with [#0 + 8, el]:u64 <- R30 -00000035: R31 := #0 -0000003b: R29 := R31 -00000042: R29 := mem[R31, el]:u64 -00000047: R30 := mem[R31 + 8, el]:u64 -0000004b: R31 := R31 + 0x10 -00000050: call R30 with noreturn - -00000518: sub _init(_init_result) -0000054c: _init_result :: out u32 = low:32[R0] - -00000484: -0000048a: #5 := R31 - 0x10 -00000490: mem := mem with [#5, el]:u64 <- R29 -00000496: mem := mem with [#5 + 8, el]:u64 <- R30 -0000049a: R31 := #5 -000004a0: R29 := R31 -000004a5: R30 := 0x5C0 -000004a7: call @call_weak_fn with return %000004a9 - -000004a9: -000004ae: R29 := mem[R31, el]:u64 -000004b3: R30 := mem[R31 + 8, el]:u64 -000004b7: R31 := R31 + 0x10 -000004bc: call R30 with noreturn - -00000519: sub _start(_start_result) -0000054d: _start_result :: out u32 = low:32[R0] - -00000188: -0000018d: R29 := 0 -00000192: R30 := 0 -00000198: R5 := R0 -0000019f: R1 := mem[R31, el]:u64 -000001a5: R2 := R31 + 8 -000001ab: R6 := R31 -000001b0: R0 := 0x10000 -000001b7: R0 := mem[R0 + 0xFF0, el]:u64 -000001bc: R3 := 0 -000001c1: R4 := 0 -000001c6: R30 := 0x670 -000001c9: call @__libc_start_main with return %000001cb - -000001cb: -000001ce: R30 := 0x674 -000001d1: call @abort with return %0000053c - -0000053c: -0000053d: call @call_weak_fn with noreturn - -0000051c: sub abort() - - -000001cf: -00000456: R16 := 0x10000 -0000045d: R17 := mem[R16 + 0xFB8, el]:u64 -00000463: R16 := R16 + 0xFB8 -00000468: call R17 with noreturn - -0000051d: sub call_weak_fn(call_weak_fn_result) -0000054e: call_weak_fn_result :: out u32 = low:32[R0] - -000001d3: -000001d6: R0 := 0x10000 -000001dd: R0 := mem[R0 + 0xFE0, el]:u64 -000001e3: when R0 = 0 goto %000001e1 -0000053e: goto %00000372 - -000001e1: -000001e9: call R30 with noreturn - -00000372: -00000375: goto @__gmon_start__ - -00000373: -00000440: R16 := 0x10000 -00000447: R17 := mem[R16 + 0xFB0, el]:u64 -0000044d: R16 := R16 + 0xFB0 -00000452: call R17 with noreturn - -0000051f: sub deregister_tm_clones(deregister_tm_clones_result) -0000054f: deregister_tm_clones_result :: out u32 = low:32[R0] - -000001ef: -000001f2: R0 := 0x11000 -000001f8: R0 := R0 + 0x10 -000001fd: R1 := 0x11000 -00000203: R1 := R1 + 0x10 -00000209: #1 := ~R0 -0000020e: #2 := R1 + ~R0 -00000214: VF := extend:65[#2 + 1] <> extend:65[R1] + extend:65[#1] + 1 -0000021a: CF := pad:65[#2 + 1] <> pad:65[R1] + pad:65[#1] + 1 -0000021e: ZF := #2 + 1 = 0 -00000222: NF := 63:63[#2 + 1] -00000228: when ZF goto %00000226 -0000053f: goto %00000354 - -00000354: -00000357: R1 := 0x10000 -0000035e: R1 := mem[R1 + 0xFC8, el]:u64 -00000363: when R1 = 0 goto %00000226 -00000540: goto %00000367 - -00000226: -0000022e: call R30 with noreturn - -00000367: -0000036b: R16 := R1 -00000370: call R16 with noreturn - -00000522: sub frame_dummy(frame_dummy_result) -00000550: frame_dummy_result :: out u32 = low:32[R0] - -000002c6: -000002c8: call @register_tm_clones with noreturn - -00000523: sub main(main_argc, main_argv, main_result) -00000551: main_argc :: in u32 = low:32[R0] -00000552: main_argv :: in out u64 = R1 -00000553: main_result :: out u32 = low:32[R0] - -000002ca: -000002cd: R0 := 0x10000 -000002d4: R0 := mem[R0 + 0xFE8, el]:u64 -000002db: R1 := pad:64[mem[R0, el]:u32] -000002e0: R0 := 0x10000 -000002e7: R0 := mem[R0 + 0xFD8, el]:u64 -000002ef: mem := mem with [R0, el]:u32 <- 31:0[R1] -000002f4: R0 := 0 -000002f9: call R30 with noreturn - -00000524: sub register_tm_clones(register_tm_clones_result) -00000554: register_tm_clones_result :: out u32 = low:32[R0] - -00000230: -00000233: R0 := 0x11000 -00000239: R0 := R0 + 0x10 -0000023e: R1 := 0x11000 -00000244: R1 := R1 + 0x10 -0000024b: R1 := R1 + ~R0 + 1 -00000251: R2 := 0.63:63[R1] -00000258: R1 := R2 + (R1 ~>> 3) -0000025e: R1 := extend:64[63:1[R1]] -00000264: when R1 = 0 goto %00000262 -00000541: goto %00000336 - -00000336: -00000339: R2 := 0x10000 -00000340: R2 := mem[R2 + 0xFF8, el]:u64 -00000345: when R2 = 0 goto %00000262 -00000542: goto %00000349 - -00000262: -0000026a: call R30 with noreturn - -00000349: -0000034d: R16 := R2 -00000352: call R16 with noreturn diff --git a/src/test/correct/basicassign_gamma0/gcc_pic/basicassign_gamma0.expected b/src/test/correct/basicassign_gamma0/gcc_pic/basicassign_gamma0.expected index a92c3b4a4..17350ab1e 100644 --- a/src/test/correct/basicassign_gamma0/gcc_pic/basicassign_gamma0.expected +++ b/src/test/correct/basicassign_gamma0/gcc_pic/basicassign_gamma0.expected @@ -70,7 +70,7 @@ implementation {:extern} rely_reflexive() procedure {:extern} guarantee_reflexive(); modifies Gamma_mem, mem; -procedure main_1876(); +procedure main(); modifies Gamma_R0, Gamma_R1, Gamma_mem, R0, R1, mem; requires (gamma_load32(Gamma_mem, $secret_addr) == true); free requires (memory_load64_le(mem, 69632bv64) == 0bv64); @@ -90,35 +90,35 @@ procedure main_1876(); free ensures (memory_load64_le(mem, 69616bv64) == 1876bv64); free ensures (memory_load64_le(mem, 69640bv64) == 69640bv64); -implementation main_1876() +implementation main() { - var Gamma_load18: bool; - var Gamma_load19: bool; - var Gamma_load20: bool; - var load18: bv64; - var load19: bv32; - var load20: bv64; + var $load$18: bv64; + var $load$19: bv32; + var $load$20: bv64; + var Gamma_$load$18: bool; + var Gamma_$load$19: bool; + var Gamma_$load$20: bool; lmain: assume {:captureState "lmain"} true; R0, Gamma_R0 := 65536bv64, true; call rely(); - load18, Gamma_load18 := memory_load64_le(mem, bvadd64(R0, 4072bv64)), (gamma_load64(Gamma_mem, bvadd64(R0, 4072bv64)) || L(mem, bvadd64(R0, 4072bv64))); - R0, Gamma_R0 := load18, Gamma_load18; + $load$18, Gamma_$load$18 := memory_load64_le(mem, bvadd64(R0, 4072bv64)), (gamma_load64(Gamma_mem, bvadd64(R0, 4072bv64)) || L(mem, bvadd64(R0, 4072bv64))); + R0, Gamma_R0 := $load$18, Gamma_$load$18; call rely(); - load19, Gamma_load19 := memory_load32_le(mem, R0), (gamma_load32(Gamma_mem, R0) || L(mem, R0)); - R1, Gamma_R1 := zero_extend32_32(load19), Gamma_load19; + $load$19, Gamma_$load$19 := memory_load32_le(mem, R0), (gamma_load32(Gamma_mem, R0) || L(mem, R0)); + R1, Gamma_R1 := zero_extend32_32($load$19), Gamma_$load$19; R0, Gamma_R0 := 65536bv64, true; call rely(); - load20, Gamma_load20 := memory_load64_le(mem, bvadd64(R0, 4056bv64)), (gamma_load64(Gamma_mem, bvadd64(R0, 4056bv64)) || L(mem, bvadd64(R0, 4056bv64))); - R0, Gamma_R0 := load20, Gamma_load20; + $load$20, Gamma_$load$20 := memory_load64_le(mem, bvadd64(R0, 4056bv64)), (gamma_load64(Gamma_mem, bvadd64(R0, 4056bv64)) || L(mem, bvadd64(R0, 4056bv64))); + R0, Gamma_R0 := $load$20, Gamma_$load$20; call rely(); assert (L(mem, R0) ==> Gamma_R1); mem, Gamma_mem := memory_store32_le(mem, R0, R1[32:0]), gamma_store32(Gamma_mem, R0, Gamma_R1); assume {:captureState "%000002ef"} true; R0, Gamma_R0 := 0bv64, true; - goto main_1876_basil_return; - main_1876_basil_return: - assume {:captureState "main_1876_basil_return"} true; + goto main_basil_return; + main_basil_return: + assume {:captureState "main_basil_return"} true; return; } diff --git a/src/test/correct/basicassign_gamma0/gcc_pic/basicassign_gamma0.gts b/src/test/correct/basicassign_gamma0/gcc_pic/basicassign_gamma0.gts deleted file mode 100644 index ba93b8680..000000000 Binary files a/src/test/correct/basicassign_gamma0/gcc_pic/basicassign_gamma0.gts and /dev/null differ diff --git a/src/test/correct/basicassign_gamma0/gcc_pic/basicassign_gamma0.md5sum b/src/test/correct/basicassign_gamma0/gcc_pic/basicassign_gamma0.md5sum new file mode 100644 index 000000000..f7f9eee85 --- /dev/null +++ b/src/test/correct/basicassign_gamma0/gcc_pic/basicassign_gamma0.md5sum @@ -0,0 +1,5 @@ +1a3f6d8773791458657e6ebbfd2a4f15 correct/basicassign_gamma0/gcc_pic/a.out +fed86b032abdc4c6e35b13d97adac829 correct/basicassign_gamma0/gcc_pic/basicassign_gamma0.adt +d9cd96e6d6dff39150aa6b067727d83a correct/basicassign_gamma0/gcc_pic/basicassign_gamma0.bir +3ac7e9e99e214fa1e918454bf89623ca correct/basicassign_gamma0/gcc_pic/basicassign_gamma0.relf +4f6a7361bd26c0e37adcf7446727f111 correct/basicassign_gamma0/gcc_pic/basicassign_gamma0.gts diff --git a/src/test/correct/basicassign_gamma0/gcc_pic/basicassign_gamma0.relf b/src/test/correct/basicassign_gamma0/gcc_pic/basicassign_gamma0.relf deleted file mode 100644 index 76b0c1ae0..000000000 --- a/src/test/correct/basicassign_gamma0/gcc_pic/basicassign_gamma0.relf +++ /dev/null @@ -1,124 +0,0 @@ - -Relocation section '.rela.dyn' at offset 0x460 contains 10 entries: - Offset Info Type Symbol's Value Symbol's Name + Addend -0000000000010d88 0000000000000403 R_AARCH64_RELATIVE 750 -0000000000010d90 0000000000000403 R_AARCH64_RELATIVE 700 -0000000000010fd8 0000000000000403 R_AARCH64_RELATIVE 11014 -0000000000010fe8 0000000000000403 R_AARCH64_RELATIVE 11018 -0000000000010ff0 0000000000000403 R_AARCH64_RELATIVE 754 -0000000000011008 0000000000000403 R_AARCH64_RELATIVE 11008 -0000000000010fc8 0000000400000401 R_AARCH64_GLOB_DAT 0000000000000000 _ITM_deregisterTMCloneTable + 0 -0000000000010fd0 0000000500000401 R_AARCH64_GLOB_DAT 0000000000000000 __cxa_finalize@GLIBC_2.17 + 0 -0000000000010fe0 0000000600000401 R_AARCH64_GLOB_DAT 0000000000000000 __gmon_start__ + 0 -0000000000010ff8 0000000800000401 R_AARCH64_GLOB_DAT 0000000000000000 _ITM_registerTMCloneTable + 0 - -Relocation section '.rela.plt' at offset 0x550 contains 4 entries: - Offset Info Type Symbol's Value Symbol's Name + Addend -0000000000010fa0 0000000300000402 R_AARCH64_JUMP_SLOT 0000000000000000 __libc_start_main@GLIBC_2.34 + 0 -0000000000010fa8 0000000500000402 R_AARCH64_JUMP_SLOT 0000000000000000 __cxa_finalize@GLIBC_2.17 + 0 -0000000000010fb0 0000000600000402 R_AARCH64_JUMP_SLOT 0000000000000000 __gmon_start__ + 0 -0000000000010fb8 0000000700000402 R_AARCH64_JUMP_SLOT 0000000000000000 abort@GLIBC_2.17 + 0 - -Symbol table '.dynsym' contains 9 entries: - Num: Value Size Type Bind Vis Ndx Name - 0: 0000000000000000 0 NOTYPE LOCAL DEFAULT UND - 1: 00000000000005b0 0 SECTION LOCAL DEFAULT 11 .init - 2: 0000000000011000 0 SECTION LOCAL DEFAULT 22 .data - 3: 0000000000000000 0 FUNC GLOBAL DEFAULT UND __libc_start_main@GLIBC_2.34 (2) - 4: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_deregisterTMCloneTable - 5: 0000000000000000 0 FUNC WEAK DEFAULT UND __cxa_finalize@GLIBC_2.17 (3) - 6: 0000000000000000 0 NOTYPE WEAK DEFAULT UND __gmon_start__ - 7: 0000000000000000 0 FUNC GLOBAL DEFAULT UND abort@GLIBC_2.17 (3) - 8: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_registerTMCloneTable - -Symbol table '.symtab' contains 89 entries: - Num: Value Size Type Bind Vis Ndx Name - 0: 0000000000000000 0 NOTYPE LOCAL DEFAULT UND - 1: 0000000000000238 0 SECTION LOCAL DEFAULT 1 .interp - 2: 0000000000000254 0 SECTION LOCAL DEFAULT 2 .note.gnu.build-id - 3: 0000000000000278 0 SECTION LOCAL DEFAULT 3 .note.ABI-tag - 4: 0000000000000298 0 SECTION LOCAL DEFAULT 4 .gnu.hash - 5: 00000000000002b8 0 SECTION LOCAL DEFAULT 5 .dynsym - 6: 0000000000000390 0 SECTION LOCAL DEFAULT 6 .dynstr - 7: 000000000000041e 0 SECTION LOCAL DEFAULT 7 .gnu.version - 8: 0000000000000430 0 SECTION LOCAL DEFAULT 8 .gnu.version_r - 9: 0000000000000460 0 SECTION LOCAL DEFAULT 9 .rela.dyn - 10: 0000000000000550 0 SECTION LOCAL DEFAULT 10 .rela.plt - 11: 00000000000005b0 0 SECTION LOCAL DEFAULT 11 .init - 12: 00000000000005d0 0 SECTION LOCAL DEFAULT 12 .plt - 13: 0000000000000640 0 SECTION LOCAL DEFAULT 13 .text - 14: 0000000000000774 0 SECTION LOCAL DEFAULT 14 .fini - 15: 0000000000000788 0 SECTION LOCAL DEFAULT 15 .rodata - 16: 000000000000078c 0 SECTION LOCAL DEFAULT 16 .eh_frame_hdr - 17: 00000000000007c8 0 SECTION LOCAL DEFAULT 17 .eh_frame - 18: 0000000000010d88 0 SECTION LOCAL DEFAULT 18 .init_array - 19: 0000000000010d90 0 SECTION LOCAL DEFAULT 19 .fini_array - 20: 0000000000010d98 0 SECTION LOCAL DEFAULT 20 .dynamic - 21: 0000000000010f88 0 SECTION LOCAL DEFAULT 21 .got - 22: 0000000000011000 0 SECTION LOCAL DEFAULT 22 .data - 23: 0000000000011010 0 SECTION LOCAL DEFAULT 23 .bss - 24: 0000000000000000 0 SECTION LOCAL DEFAULT 24 .comment - 25: 0000000000000000 0 FILE LOCAL DEFAULT ABS Scrt1.o - 26: 0000000000000278 0 NOTYPE LOCAL DEFAULT 3 $d - 27: 0000000000000278 32 OBJECT LOCAL DEFAULT 3 __abi_tag - 28: 0000000000000640 0 NOTYPE LOCAL DEFAULT 13 $x - 29: 00000000000007dc 0 NOTYPE LOCAL DEFAULT 17 $d - 30: 0000000000000788 0 NOTYPE LOCAL DEFAULT 15 $d - 31: 0000000000000000 0 FILE LOCAL DEFAULT ABS crti.o - 32: 0000000000000674 0 NOTYPE LOCAL DEFAULT 13 $x - 33: 0000000000000674 20 FUNC LOCAL DEFAULT 13 call_weak_fn - 34: 00000000000005b0 0 NOTYPE LOCAL DEFAULT 11 $x - 35: 0000000000000774 0 NOTYPE LOCAL DEFAULT 14 $x - 36: 0000000000000000 0 FILE LOCAL DEFAULT ABS crtn.o - 37: 00000000000005c0 0 NOTYPE LOCAL DEFAULT 11 $x - 38: 0000000000000780 0 NOTYPE LOCAL DEFAULT 14 $x - 39: 0000000000000000 0 FILE LOCAL DEFAULT ABS crtstuff.c - 40: 0000000000000690 0 NOTYPE LOCAL DEFAULT 13 $x - 41: 0000000000000690 0 FUNC LOCAL DEFAULT 13 deregister_tm_clones - 42: 00000000000006c0 0 FUNC LOCAL DEFAULT 13 register_tm_clones - 43: 0000000000011008 0 NOTYPE LOCAL DEFAULT 22 $d - 44: 0000000000000700 0 FUNC LOCAL DEFAULT 13 __do_global_dtors_aux - 45: 0000000000011010 1 OBJECT LOCAL DEFAULT 23 completed.0 - 46: 0000000000010d90 0 NOTYPE LOCAL DEFAULT 19 $d - 47: 0000000000010d90 0 OBJECT LOCAL DEFAULT 19 __do_global_dtors_aux_fini_array_entry - 48: 0000000000000750 0 FUNC LOCAL DEFAULT 13 frame_dummy - 49: 0000000000010d88 0 NOTYPE LOCAL DEFAULT 18 $d - 50: 0000000000010d88 0 OBJECT LOCAL DEFAULT 18 __frame_dummy_init_array_entry - 51: 00000000000007f0 0 NOTYPE LOCAL DEFAULT 17 $d - 52: 0000000000011010 0 NOTYPE LOCAL DEFAULT 23 $d - 53: 0000000000000000 0 FILE LOCAL DEFAULT ABS basicassign_gamma0.c - 54: 0000000000011014 0 NOTYPE LOCAL DEFAULT 23 $d - 55: 0000000000000754 0 NOTYPE LOCAL DEFAULT 13 $x - 56: 0000000000000850 0 NOTYPE LOCAL DEFAULT 17 $d - 57: 0000000000000000 0 FILE LOCAL DEFAULT ABS crtstuff.c - 58: 0000000000000864 0 NOTYPE LOCAL DEFAULT 17 $d - 59: 0000000000000864 0 OBJECT LOCAL DEFAULT 17 __FRAME_END__ - 60: 0000000000000000 0 FILE LOCAL DEFAULT ABS - 61: 0000000000010d98 0 OBJECT LOCAL DEFAULT ABS _DYNAMIC - 62: 000000000000078c 0 NOTYPE LOCAL DEFAULT 16 __GNU_EH_FRAME_HDR - 63: 0000000000010fc0 0 OBJECT LOCAL DEFAULT ABS _GLOBAL_OFFSET_TABLE_ - 64: 00000000000005d0 0 NOTYPE LOCAL DEFAULT 12 $x - 65: 0000000000000000 0 FUNC GLOBAL DEFAULT UND __libc_start_main@GLIBC_2.34 - 66: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_deregisterTMCloneTable - 67: 0000000000011000 0 NOTYPE WEAK DEFAULT 22 data_start - 68: 0000000000011010 0 NOTYPE GLOBAL DEFAULT 23 __bss_start__ - 69: 0000000000000000 0 FUNC WEAK DEFAULT UND __cxa_finalize@GLIBC_2.17 - 70: 0000000000011020 0 NOTYPE GLOBAL DEFAULT 23 _bss_end__ - 71: 0000000000011010 0 NOTYPE GLOBAL DEFAULT 22 _edata - 72: 0000000000011014 4 OBJECT GLOBAL DEFAULT 23 x - 73: 0000000000000774 0 FUNC GLOBAL HIDDEN 14 _fini - 74: 0000000000011020 0 NOTYPE GLOBAL DEFAULT 23 __bss_end__ - 75: 0000000000011000 0 NOTYPE GLOBAL DEFAULT 22 __data_start - 76: 0000000000000000 0 NOTYPE WEAK DEFAULT UND __gmon_start__ - 77: 0000000000011008 0 OBJECT GLOBAL HIDDEN 22 __dso_handle - 78: 0000000000000000 0 FUNC GLOBAL DEFAULT UND abort@GLIBC_2.17 - 79: 0000000000000788 4 OBJECT GLOBAL DEFAULT 15 _IO_stdin_used - 80: 0000000000011018 4 OBJECT GLOBAL DEFAULT 23 secret - 81: 0000000000011020 0 NOTYPE GLOBAL DEFAULT 23 _end - 82: 0000000000000640 52 FUNC GLOBAL DEFAULT 13 _start - 83: 0000000000011020 0 NOTYPE GLOBAL DEFAULT 23 __end__ - 84: 0000000000011010 0 NOTYPE GLOBAL DEFAULT 23 __bss_start - 85: 0000000000000754 32 FUNC GLOBAL DEFAULT 13 main - 86: 0000000000011010 0 OBJECT GLOBAL HIDDEN 22 __TMC_END__ - 87: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_registerTMCloneTable - 88: 00000000000005b0 0 FUNC GLOBAL HIDDEN 11 _init diff --git a/src/test/correct/basicassign_gamma0/gcc_pic/basicassign_gamma0_gtirb.expected b/src/test/correct/basicassign_gamma0/gcc_pic/basicassign_gamma0_gtirb.expected index 82bd19083..15ea9af08 100644 --- a/src/test/correct/basicassign_gamma0/gcc_pic/basicassign_gamma0_gtirb.expected +++ b/src/test/correct/basicassign_gamma0/gcc_pic/basicassign_gamma0_gtirb.expected @@ -70,7 +70,7 @@ implementation {:extern} rely_reflexive() procedure {:extern} guarantee_reflexive(); modifies Gamma_mem, mem; -procedure main_1876(); +procedure main(); modifies Gamma_R0, Gamma_R1, Gamma_mem, R0, R1, mem; requires (gamma_load32(Gamma_mem, $secret_addr) == true); free requires (memory_load64_le(mem, 69632bv64) == 0bv64); @@ -90,35 +90,35 @@ procedure main_1876(); free ensures (memory_load64_le(mem, 69616bv64) == 1876bv64); free ensures (memory_load64_le(mem, 69640bv64) == 69640bv64); -implementation main_1876() +implementation main() { - var Gamma_load19: bool; - var Gamma_load20: bool; - var Gamma_load21: bool; - var load19: bv64; - var load20: bv32; - var load21: bv64; - main_1876__0__WRy2wCdrSBWU_mSIGGNB5Q: - assume {:captureState "main_1876__0__WRy2wCdrSBWU_mSIGGNB5Q"} true; + var $load19: bv64; + var $load20: bv32; + var $load21: bv64; + var Gamma_$load19: bool; + var Gamma_$load20: bool; + var Gamma_$load21: bool; + $main$__0__$WRy2wCdrSBWU_mSIGGNB5Q: + assume {:captureState "$main$__0__$WRy2wCdrSBWU_mSIGGNB5Q"} true; R0, Gamma_R0 := 65536bv64, true; call rely(); - load19, Gamma_load19 := memory_load64_le(mem, bvadd64(R0, 4072bv64)), (gamma_load64(Gamma_mem, bvadd64(R0, 4072bv64)) || L(mem, bvadd64(R0, 4072bv64))); - R0, Gamma_R0 := load19, Gamma_load19; + $load19, Gamma_$load19 := memory_load64_le(mem, bvadd64(R0, 4072bv64)), (gamma_load64(Gamma_mem, bvadd64(R0, 4072bv64)) || L(mem, bvadd64(R0, 4072bv64))); + R0, Gamma_R0 := $load19, Gamma_$load19; call rely(); - load20, Gamma_load20 := memory_load32_le(mem, R0), (gamma_load32(Gamma_mem, R0) || L(mem, R0)); - R1, Gamma_R1 := zero_extend32_32(load20), Gamma_load20; + $load20, Gamma_$load20 := memory_load32_le(mem, R0), (gamma_load32(Gamma_mem, R0) || L(mem, R0)); + R1, Gamma_R1 := zero_extend32_32($load20), Gamma_$load20; R0, Gamma_R0 := 65536bv64, true; call rely(); - load21, Gamma_load21 := memory_load64_le(mem, bvadd64(R0, 4056bv64)), (gamma_load64(Gamma_mem, bvadd64(R0, 4056bv64)) || L(mem, bvadd64(R0, 4056bv64))); - R0, Gamma_R0 := load21, Gamma_load21; + $load21, Gamma_$load21 := memory_load64_le(mem, bvadd64(R0, 4056bv64)), (gamma_load64(Gamma_mem, bvadd64(R0, 4056bv64)) || L(mem, bvadd64(R0, 4056bv64))); + R0, Gamma_R0 := $load21, Gamma_$load21; call rely(); assert (L(mem, R0) ==> Gamma_R1); mem, Gamma_mem := memory_store32_le(mem, R0, R1[32:0]), gamma_store32(Gamma_mem, R0, Gamma_R1); - assume {:captureState "1896_0"} true; + assume {:captureState "1896$0"} true; R0, Gamma_R0 := 0bv64, true; - goto main_1876_basil_return; - main_1876_basil_return: - assume {:captureState "main_1876_basil_return"} true; + goto main_basil_return; + main_basil_return: + assume {:captureState "main_basil_return"} true; return; } diff --git a/src/test/correct/basicfree/clang/basicfree.adt b/src/test/correct/basicfree/clang/basicfree.adt deleted file mode 100644 index aba02d9ed..000000000 --- a/src/test/correct/basicfree/clang/basicfree.adt +++ /dev/null @@ -1,573 +0,0 @@ -Project(Attrs([Attr("filename","\"clang/basicfree.out\""), -Attr("image-specification","(declare abi (name str))\n(declare arch (name str))\n(declare base-address (addr int))\n(declare bias (off int))\n(declare bits (size int))\n(declare code-region (addr int) (size int) (off int))\n(declare code-start (addr int))\n(declare entry-point (addr int))\n(declare external-reference (addr int) (name str))\n(declare format (name str))\n(declare is-executable (flag bool))\n(declare is-little-endian (flag bool))\n(declare llvm:base-address (addr int))\n(declare llvm:code-entry (name str) (off int) (size int))\n(declare llvm:coff-import-library (name str))\n(declare llvm:coff-virtual-section-header (name str) (addr int) (size int))\n(declare llvm:elf-program-header (name str) (off int) (size int))\n(declare llvm:elf-program-header-flags (name str) (ld bool) (r bool) \n (w bool) (x bool))\n(declare llvm:elf-virtual-program-header (name str) (addr int) (size int))\n(declare llvm:entry-point (addr int))\n(declare llvm:macho-symbol (name str) (value int))\n(declare llvm:name-reference (at int) (name str))\n(declare llvm:relocation (at int) (addr int))\n(declare llvm:section-entry (name str) (addr int) (size int) (off int))\n(declare llvm:section-flags (name str) (r bool) (w bool) (x bool))\n(declare llvm:segment-command (name str) (off int) (size int))\n(declare llvm:segment-command-flags (name str) (r bool) (w bool) (x bool))\n(declare llvm:symbol-entry (name str) (addr int) (size int) (off int)\n (value int))\n(declare llvm:virtual-segment-command (name str) (addr int) (size int))\n(declare mapped (addr int) (size int) (off int))\n(declare named-region (addr int) (size int) (name str))\n(declare named-symbol (addr int) (name str))\n(declare require (name str))\n(declare section (addr int) (size int))\n(declare segment (addr int) (size int) (r bool) (w bool) (x bool))\n(declare subarch (name str))\n(declare symbol-chunk (addr int) (size int) (root int))\n(declare symbol-value (addr int) (value int))\n(declare system (name str))\n(declare vendor (name str))\n\n(abi unknown)\n(arch aarch64)\n(base-address 0)\n(bias 0)\n(bits 64)\n(code-region 2060 20 2060)\n(code-region 1728 332 1728)\n(code-region 1552 128 1552)\n(code-region 1520 24 1520)\n(code-start 1780)\n(code-start 1728)\n(code-start 2004)\n(entry-point 1728)\n(external-reference 69568 _ITM_deregisterTMCloneTable)\n(external-reference 69576 __cxa_finalize)\n(external-reference 69584 __gmon_start__)\n(external-reference 69600 _ITM_registerTMCloneTable)\n(external-reference 69632 __libc_start_main)\n(external-reference 69640 __cxa_finalize)\n(external-reference 69648 malloc)\n(external-reference 69656 __gmon_start__)\n(external-reference 69664 abort)\n(external-reference 69672 free)\n(format elf)\n(is-executable true)\n(is-little-endian true)\n(llvm:base-address 0)\n(llvm:code-entry free 0 0)\n(llvm:code-entry abort 0 0)\n(llvm:code-entry malloc 0 0)\n(llvm:code-entry __cxa_finalize 0 0)\n(llvm:code-entry __libc_start_main 0 0)\n(llvm:code-entry _init 1520 0)\n(llvm:code-entry main 2004 56)\n(llvm:code-entry _start 1728 52)\n(llvm:code-entry free@GLIBC_2.17 0 0)\n(llvm:code-entry abort@GLIBC_2.17 0 0)\n(llvm:code-entry malloc@GLIBC_2.17 0 0)\n(llvm:code-entry _fini 2060 0)\n(llvm:code-entry __cxa_finalize@GLIBC_2.17 0 0)\n(llvm:code-entry __libc_start_main@GLIBC_2.34 0 0)\n(llvm:code-entry frame_dummy 2000 0)\n(llvm:code-entry __do_global_dtors_aux 1920 0)\n(llvm:code-entry register_tm_clones 1856 0)\n(llvm:code-entry deregister_tm_clones 1808 0)\n(llvm:code-entry call_weak_fn 1780 20)\n(llvm:code-entry .fini 2060 20)\n(llvm:code-entry .text 1728 332)\n(llvm:code-entry .plt 1552 128)\n(llvm:code-entry .init 1520 24)\n(llvm:elf-program-header 08 3528 568)\n(llvm:elf-program-header 07 0 0)\n(llvm:elf-program-header 06 2084 60)\n(llvm:elf-program-header 05 596 68)\n(llvm:elf-program-header 04 3544 480)\n(llvm:elf-program-header 03 3528 632)\n(llvm:elf-program-header 02 0 2344)\n(llvm:elf-program-header 01 568 27)\n(llvm:elf-program-header 00 64 504)\n(llvm:elf-program-header-flags 08 false true false false)\n(llvm:elf-program-header-flags 07 false true true false)\n(llvm:elf-program-header-flags 06 false true false false)\n(llvm:elf-program-header-flags 05 false true false false)\n(llvm:elf-program-header-flags 04 false true true false)\n(llvm:elf-program-header-flags 03 true true true false)\n(llvm:elf-program-header-flags 02 true true false true)\n(llvm:elf-program-header-flags 01 false true false false)\n(llvm:elf-program-header-flags 00 false true false false)\n(llvm:elf-virtual-program-header 08 69064 568)\n(llvm:elf-virtual-program-header 07 0 0)\n(llvm:elf-virtual-program-header 06 2084 60)\n(llvm:elf-virtual-program-header 05 596 68)\n(llvm:elf-virtual-program-header 04 69080 480)\n(llvm:elf-virtual-program-header 03 69064 640)\n(llvm:elf-virtual-program-header 02 0 2344)\n(llvm:elf-virtual-program-header 01 568 27)\n(llvm:elf-virtual-program-header 00 64 504)\n(llvm:entry-point 1728)\n(llvm:name-reference 69672 free)\n(llvm:name-reference 69664 abort)\n(llvm:name-reference 69656 __gmon_start__)\n(llvm:name-reference 69648 malloc)\n(llvm:name-reference 69640 __cxa_finalize)\n(llvm:name-reference 69632 __libc_start_main)\n(llvm:name-reference 69600 _ITM_registerTMCloneTable)\n(llvm:name-reference 69584 __gmon_start__)\n(llvm:name-reference 69576 __cxa_finalize)\n(llvm:name-reference 69568 _ITM_deregisterTMCloneTable)\n(llvm:section-entry .shstrtab 0 259 6986)\n(llvm:section-entry .strtab 0 594 6392)\n(llvm:section-entry .symtab 0 2160 4232)\n(llvm:section-entry .comment 0 71 4160)\n(llvm:section-entry .bss 69696 8 4160)\n(llvm:section-entry .data 69680 16 4144)\n(llvm:section-entry .got.plt 69608 72 4072)\n(llvm:section-entry .got 69560 48 4024)\n(llvm:section-entry .dynamic 69080 480 3544)\n(llvm:section-entry .fini_array 69072 8 3536)\n(llvm:section-entry .init_array 69064 8 3528)\n(llvm:section-entry .eh_frame 2144 200 2144)\n(llvm:section-entry .eh_frame_hdr 2084 60 2084)\n(llvm:section-entry .rodata 2080 4 2080)\n(llvm:section-entry .fini 2060 20 2060)\n(llvm:section-entry .text 1728 332 1728)\n(llvm:section-entry .plt 1552 128 1552)\n(llvm:section-entry .init 1520 24 1520)\n(llvm:section-entry .rela.plt 1376 144 1376)\n(llvm:section-entry .rela.dyn 1184 192 1184)\n(llvm:section-entry .gnu.version_r 1136 48 1136)\n(llvm:section-entry .gnu.version 1114 22 1114)\n(llvm:section-entry .dynstr 960 153 960)\n(llvm:section-entry .dynsym 696 264 696)\n(llvm:section-entry .gnu.hash 664 28 664)\n(llvm:section-entry .note.ABI-tag 632 32 632)\n(llvm:section-entry .note.gnu.build-id 596 36 596)\n(llvm:section-entry .interp 568 27 568)\n(llvm:section-flags .shstrtab true false false)\n(llvm:section-flags .strtab true false false)\n(llvm:section-flags .symtab true false false)\n(llvm:section-flags .comment true false false)\n(llvm:section-flags .bss true true false)\n(llvm:section-flags .data true true false)\n(llvm:section-flags .got.plt true true false)\n(llvm:section-flags .got true true false)\n(llvm:section-flags .dynamic true true false)\n(llvm:section-flags .fini_array true true false)\n(llvm:section-flags .init_array true true false)\n(llvm:section-flags .eh_frame true false false)\n(llvm:section-flags .eh_frame_hdr true false false)\n(llvm:section-flags .rodata true false false)\n(llvm:section-flags .fini true false true)\n(llvm:section-flags .text true false true)\n(llvm:section-flags .plt true false true)\n(llvm:section-flags .init true false true)\n(llvm:section-flags .rela.plt true false false)\n(llvm:section-flags .rela.dyn true false false)\n(llvm:section-flags .gnu.version_r true false false)\n(llvm:section-flags .gnu.version true false false)\n(llvm:section-flags .dynstr true false false)\n(llvm:section-flags .dynsym true false false)\n(llvm:section-flags .gnu.hash true false false)\n(llvm:section-flags .note.ABI-tag true false false)\n(llvm:section-flags .note.gnu.build-id true false false)\n(llvm:section-flags .interp true false false)\n(llvm:symbol-entry free 0 0 0 0)\n(llvm:symbol-entry abort 0 0 0 0)\n(llvm:symbol-entry malloc 0 0 0 0)\n(llvm:symbol-entry __cxa_finalize 0 0 0 0)\n(llvm:symbol-entry __libc_start_main 0 0 0 0)\n(llvm:symbol-entry _init 1520 0 1520 1520)\n(llvm:symbol-entry main 2004 56 2004 2004)\n(llvm:symbol-entry _start 1728 52 1728 1728)\n(llvm:symbol-entry free@GLIBC_2.17 0 0 0 0)\n(llvm:symbol-entry abort@GLIBC_2.17 0 0 0 0)\n(llvm:symbol-entry malloc@GLIBC_2.17 0 0 0 0)\n(llvm:symbol-entry _fini 2060 0 2060 2060)\n(llvm:symbol-entry __cxa_finalize@GLIBC_2.17 0 0 0 0)\n(llvm:symbol-entry __libc_start_main@GLIBC_2.34 0 0 0 0)\n(llvm:symbol-entry frame_dummy 2000 0 2000 2000)\n(llvm:symbol-entry __do_global_dtors_aux 1920 0 1920 1920)\n(llvm:symbol-entry register_tm_clones 1856 0 1856 1856)\n(llvm:symbol-entry deregister_tm_clones 1808 0 1808 1808)\n(llvm:symbol-entry call_weak_fn 1780 20 1780 1780)\n(mapped 0 2344 0)\n(mapped 69064 632 3528)\n(named-region 0 2344 02)\n(named-region 69064 640 03)\n(named-region 568 27 .interp)\n(named-region 596 36 .note.gnu.build-id)\n(named-region 632 32 .note.ABI-tag)\n(named-region 664 28 .gnu.hash)\n(named-region 696 264 .dynsym)\n(named-region 960 153 .dynstr)\n(named-region 1114 22 .gnu.version)\n(named-region 1136 48 .gnu.version_r)\n(named-region 1184 192 .rela.dyn)\n(named-region 1376 144 .rela.plt)\n(named-region 1520 24 .init)\n(named-region 1552 128 .plt)\n(named-region 1728 332 .text)\n(named-region 2060 20 .fini)\n(named-region 2080 4 .rodata)\n(named-region 2084 60 .eh_frame_hdr)\n(named-region 2144 200 .eh_frame)\n(named-region 69064 8 .init_array)\n(named-region 69072 8 .fini_array)\n(named-region 69080 480 .dynamic)\n(named-region 69560 48 .got)\n(named-region 69608 72 .got.plt)\n(named-region 69680 16 .data)\n(named-region 69696 8 .bss)\n(named-region 0 71 .comment)\n(named-region 0 2160 .symtab)\n(named-region 0 594 .strtab)\n(named-region 0 259 .shstrtab)\n(named-symbol 1780 call_weak_fn)\n(named-symbol 1808 deregister_tm_clones)\n(named-symbol 1856 register_tm_clones)\n(named-symbol 1920 __do_global_dtors_aux)\n(named-symbol 2000 frame_dummy)\n(named-symbol 0 __libc_start_main@GLIBC_2.34)\n(named-symbol 0 __cxa_finalize@GLIBC_2.17)\n(named-symbol 2060 _fini)\n(named-symbol 0 malloc@GLIBC_2.17)\n(named-symbol 0 abort@GLIBC_2.17)\n(named-symbol 0 free@GLIBC_2.17)\n(named-symbol 1728 _start)\n(named-symbol 2004 main)\n(named-symbol 1520 _init)\n(named-symbol 0 __libc_start_main)\n(named-symbol 0 __cxa_finalize)\n(named-symbol 0 malloc)\n(named-symbol 0 abort)\n(named-symbol 0 free)\n(require libc.so.6)\n(section 568 27)\n(section 596 36)\n(section 632 32)\n(section 664 28)\n(section 696 264)\n(section 960 153)\n(section 1114 22)\n(section 1136 48)\n(section 1184 192)\n(section 1376 144)\n(section 1520 24)\n(section 1552 128)\n(section 1728 332)\n(section 2060 20)\n(section 2080 4)\n(section 2084 60)\n(section 2144 200)\n(section 69064 8)\n(section 69072 8)\n(section 69080 480)\n(section 69560 48)\n(section 69608 72)\n(section 69680 16)\n(section 69696 8)\n(section 0 71)\n(section 0 2160)\n(section 0 594)\n(section 0 259)\n(segment 0 2344 true false true)\n(segment 69064 640 true true false)\n(subarch v8)\n(symbol-chunk 1780 20 1780)\n(symbol-chunk 1728 52 1728)\n(symbol-chunk 2004 56 2004)\n(symbol-value 1780 1780)\n(symbol-value 1808 1808)\n(symbol-value 1856 1856)\n(symbol-value 1920 1920)\n(symbol-value 2000 2000)\n(symbol-value 2060 2060)\n(symbol-value 1728 1728)\n(symbol-value 2004 2004)\n(symbol-value 1520 1520)\n(symbol-value 0 0)\n(system \"\")\n(vendor \"\")\n"), -Attr("abi-name","\"aarch64-linux-gnu-elf\"")]), -Sections([Section(".shstrtab", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\xc0\x06\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x50\x1c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x38\x00\x09\x00\x40\x00\x1d\x00\x1c\x00\x06\x00\x00\x00\x04\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x04\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x28\x09\x00\x00\x00\x00\x00\x00\x28\x09\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x01\x00\x00\x00\x06\x00\x00\x00\xc8\x0d\x00\x00\x00\x00\x00\x00\xc8\x0d\x01\x00\x00\x00\x00\x00\xc8\x0d\x01"), -Section(".strtab", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\xc0\x06\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x50\x1c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x38\x00\x09\x00\x40\x00\x1d\x00\x1c\x00\x06\x00\x00\x00\x04\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x04\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x28\x09\x00\x00\x00\x00\x00\x00\x28\x09\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x01\x00\x00\x00\x06\x00\x00\x00\xc8\x0d\x00\x00\x00\x00\x00\x00\xc8\x0d\x01\x00\x00\x00\x00\x00\xc8\x0d\x01\x00\x00\x00\x00\x00\x78\x02\x00\x00\x00\x00\x00\x00\x80\x02\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x02\x00\x00\x00\x06\x00\x00\x00\xd8\x0d\x00\x00\x00\x00\x00\x00\xd8\x0d\x01\x00\x00\x00\x00\x00\xd8\x0d\x01\x00\x00\x00\x00\x00\xe0\x01\x00\x00\x00\x00\x00\x00\xe0\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x04\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x50\xe5\x74\x64\x04\x00\x00\x00\x24\x08\x00\x00\x00\x00\x00\x00\x24\x08\x00\x00\x00\x00\x00\x00\x24\x08\x00\x00\x00\x00\x00\x00\x3c\x00\x00\x00\x00\x00\x00\x00\x3c\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x51\xe5\x74\x64\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x52\xe5\x74\x64\x04\x00\x00\x00\xc8\x0d\x00\x00\x00\x00\x00\x00\xc8\x0d\x01\x00\x00\x00\x00\x00\xc8\x0d\x01\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x2f\x6c\x69\x62\x2f\x6c\x64\x2d\x6c\x69\x6e\x75\x78\x2d\x61\x61\x72\x63\x68\x36\x34\x2e\x73\x6f\x2e\x31"), -Section(".symtab", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\xc0\x06\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x50\x1c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x38\x00\x09\x00\x40\x00\x1d\x00\x1c\x00\x06\x00\x00\x00\x04\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x04\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x28\x09\x00\x00\x00\x00\x00\x00\x28\x09\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x01\x00\x00\x00\x06\x00\x00\x00\xc8\x0d\x00\x00\x00\x00\x00\x00\xc8\x0d\x01\x00\x00\x00\x00\x00\xc8\x0d\x01\x00\x00\x00\x00\x00\x78\x02\x00\x00\x00\x00\x00\x00\x80\x02\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x02\x00\x00\x00\x06\x00\x00\x00\xd8\x0d\x00\x00\x00\x00\x00\x00\xd8\x0d\x01\x00\x00\x00\x00\x00\xd8\x0d\x01\x00\x00\x00\x00\x00\xe0\x01\x00\x00\x00\x00\x00\x00\xe0\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x04\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x50\xe5\x74\x64\x04\x00\x00\x00\x24\x08\x00\x00\x00\x00\x00\x00\x24\x08\x00\x00\x00\x00\x00\x00\x24\x08\x00\x00\x00\x00\x00\x00\x3c\x00\x00\x00\x00\x00\x00\x00\x3c\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x51\xe5\x74\x64\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x52\xe5\x74\x64\x04\x00\x00\x00\xc8\x0d\x00\x00\x00\x00\x00\x00\xc8\x0d\x01\x00\x00\x00\x00\x00\xc8\x0d\x01\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x2f\x6c\x69\x62\x2f\x6c\x64\x2d\x6c\x69\x6e\x75\x78\x2d\x61\x61\x72\x63\x68\x36\x34\x2e\x73\x6f\x2e\x31\x00\x00\x04\x00\x00\x00\x14\x00\x00\x00\x03\x00\x00\x00\x47\x4e\x55\x00\xeb\x79\x53\x89\x54\x02\x07\xda\x5b\xe7\xb8\x63\x7e\x70\x55\x3b\x9c\x81\xed\x77\x04\x00\x00\x00\x10\x00\x00\x00\x01\x00\x00\x00\x47\x4e\x55\x00\x00\x00\x00\x00\x03\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x01\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x0b\x00\xf0\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x17\x00\x30\x10\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x17\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x54\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x22\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x70\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2e\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x29\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7f\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5f\x5f\x63\x78\x61\x5f\x66\x69\x6e\x61\x6c\x69\x7a\x65\x00\x6d\x61\x6c\x6c\x6f\x63\x00\x5f\x5f\x6c\x69\x62\x63\x5f\x73\x74\x61\x72\x74\x5f\x6d\x61\x69\x6e\x00\x66\x72\x65\x65\x00\x61\x62\x6f\x72\x74\x00\x6c\x69\x62\x63\x2e\x73\x6f\x2e\x36\x00\x47\x4c\x49\x42\x43\x5f\x32\x2e\x31\x37\x00\x47\x4c\x49\x42\x43\x5f\x32\x2e\x33\x34\x00\x5f\x49\x54\x4d\x5f\x64\x65\x72\x65\x67\x69\x73\x74\x65\x72\x54\x4d\x43\x6c\x6f\x6e\x65\x54\x61\x62\x6c\x65\x00\x5f\x5f\x67\x6d\x6f\x6e\x5f\x73\x74\x61\x72\x74\x5f\x5f\x00\x5f\x49\x54\x4d\x5f\x72\x65\x67\x69\x73\x74\x65\x72\x54\x4d\x43\x6c\x6f\x6e\x65\x54\x61\x62\x6c\x65\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x01\x00\x03\x00\x03\x00\x01\x00\x03\x00\x03\x00\x01\x00\x01\x00\x02\x00\x34\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x97\x91\x96\x06\x00\x00\x03\x00\x3e\x00\x00\x00\x10\x00\x00\x00\xb4\x91\x96\x06\x00\x00\x02\x00\x49\x00\x00\x00\x00\x00\x00\x00\xc8\x0d\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\xd0\x07\x00\x00\x00\x00\x00\x00\xd0\x0d\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x80\x07\x00\x00\x00\x00\x00\x00\xd8\x0f\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\xd4\x07\x00\x00\x00\x00\x00\x00\x38\x10\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x38\x10\x01\x00\x00\x00\x00\x00\xc0\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xc8\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xd0\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe0\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x0a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x08\x10\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x10\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x18\x10\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x20\x10\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x28\x10\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x09\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1f\x20\x03\xd5\xfd\x7b\xbf\xa9\xfd\x03\x00\x91\x3e\x00\x00\x94\xfd\x7b\xc1\xa8\xc0\x03\x5f\xd6\x00\x00\x00\x00\x00\x00\x00\x00\xf0\x7b\xbf\xa9\x90\x00\x00\x90\x11\xfe\x47\xf9\x10\xe2\x3f\x91\x20\x02\x1f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x90\x00\x00\xb0\x11\x02\x40\xf9\x10\x02\x00\x91\x20\x02\x1f\xd6\x90\x00\x00\xb0\x11\x06\x40\xf9\x10\x22\x00\x91\x20\x02\x1f\xd6\x90\x00\x00\xb0\x11\x0a\x40\xf9\x10\x42\x00\x91\x20\x02\x1f\xd6\x90\x00\x00\xb0\x11\x0e\x40\xf9\x10\x62\x00\x91\x20\x02\x1f\xd6\x90\x00\x00\xb0\x11\x12\x40\xf9\x10\x82\x00\x91\x20\x02\x1f\xd6\x90\x00\x00\xb0\x11\x16\x40\xf9\x10\xa2\x00\x91\x20\x02\x1f\xd6\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1f\x20\x03\xd5\x1d\x00\x80\xd2\x1e\x00\x80\xd2\xe5\x03\x00\xaa\xe1\x03\x40\xf9\xe2\x23\x00\x91\xe6\x03\x00\x91\x80\x00\x00\x90\x00\xec\x47\xf9\x03\x00\x80\xd2\x04\x00\x80\xd2\xd1\xff\xff\x97\xe0\xff\xff\x97\x80\x00\x00\x90\x00\xe8\x47\xf9\x40\x00\x00\xb4\xd8\xff\xff\x17\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x80\x00\x00\xb0\x00\x00\x01\x91\x81\x00\x00\xb0\x21\x00\x01\x91\x3f\x00\x00\xeb\xc0\x00\x00\x54\x81\x00\x00\x90\x21\xe0\x47\xf9\x61\x00\x00\xb4\xf0\x03\x01\xaa\x00\x02\x1f\xd6\xc0\x03\x5f\xd6\x80\x00\x00\xb0\x00\x00\x01\x91\x81\x00\x00\xb0\x21\x00\x01\x91\x21\x00\x00\xcb\x22\xfc\x7f\xd3\x41\x0c\x81\x8b\x21\xfc\x41\x93\xc1\x00\x00\xb4\x82\x00\x00\x90\x42\xf0\x47\xf9\x62\x00\x00\xb4\xf0\x03\x02\xaa\x00\x02\x1f\xd6\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\xfd\x7b\xbe\xa9\xfd\x03\x00\x91\xf3\x0b\x00\xf9\x93\x00\x00\xb0\x60\x02\x41\x39\x40\x01\x00\x35\x80\x00\x00\x90\x00\xe4\x47\xf9\x80\x00\x00\xb4\x80\x00\x00\xb0\x00\x1c\x40\xf9\xa5\xff\xff\x97\xd8\xff\xff\x97\x20\x00\x80\x52\x60\x02\x01\x39\xf3\x0b\x40\xf9\xfd\x7b\xc2\xa8\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\xdc\xff\xff\x17\xff\x83\x00\xd1\xfd\x7b\x01\xa9\xfd\x43\x00\x91\x80\x00\x80\xd2\x9b\xff\xff\x97\xe0\x07\x00\xf9\xe9\x07\x40\xf9\x28\x00\x80\x52\x28\x01\x00\xb9\xe0\x07\x40\xf9\xa1\xff\xff\x97\xfd\x7b\x41\xa9\xff\x83\x00\x91\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\xfd\x7b\xbf\xa9\xfd\x03\x00\x91\xfd\x7b\xc1\xa8\xc0\x03\x5f\xd6\x01\x00\x02\x00\x01\x1b\x03\x3b\x38\x00\x00\x00\x06\x00\x00\x00\x9c\xfe\xff\xff\x50\x00\x00\x00\xec\xfe\xff\xff\x64\x00\x00\x00\x1c\xff\xff\xff\x78\x00\x00\x00\x5c\xff\xff\xff\x8c\x00\x00\x00\xac\xff\xff\xff\xb0\x00\x00\x00\xb0\xff\xff\xff\xd8\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x01\x7a\x52\x00\x04\x78\x1e\x01"), -Section(".comment", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\xc0\x06\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x50\x1c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x38\x00\x09\x00\x40\x00\x1d\x00\x1c\x00\x06\x00\x00\x00\x04\x00\x00"), -Section(".interp", 0x238, "\x2f\x6c\x69\x62\x2f\x6c\x64\x2d\x6c\x69\x6e\x75\x78\x2d\x61\x61\x72\x63\x68\x36\x34\x2e\x73\x6f\x2e\x31\x00"), -Section(".note.gnu.build-id", 0x254, "\x04\x00\x00\x00\x14\x00\x00\x00\x03\x00\x00\x00\x47\x4e\x55\x00\xeb\x79\x53\x89\x54\x02\x07\xda\x5b\xe7\xb8\x63\x7e\x70\x55\x3b\x9c\x81\xed\x77"), -Section(".note.ABI-tag", 0x278, "\x04\x00\x00\x00\x10\x00\x00\x00\x01\x00\x00\x00\x47\x4e\x55\x00\x00\x00\x00\x00\x03\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00"), -Section(".gnu.hash", 0x298, "\x01\x00\x00\x00\x01\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".dynsym", 0x2B8, "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x0b\x00\xf0\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x17\x00\x30\x10\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x17\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x54\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x22\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x70\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2e\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x29\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7f\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".dynstr", 0x3C0, "\x00\x5f\x5f\x63\x78\x61\x5f\x66\x69\x6e\x61\x6c\x69\x7a\x65\x00\x6d\x61\x6c\x6c\x6f\x63\x00\x5f\x5f\x6c\x69\x62\x63\x5f\x73\x74\x61\x72\x74\x5f\x6d\x61\x69\x6e\x00\x66\x72\x65\x65\x00\x61\x62\x6f\x72\x74\x00\x6c\x69\x62\x63\x2e\x73\x6f\x2e\x36\x00\x47\x4c\x49\x42\x43\x5f\x32\x2e\x31\x37\x00\x47\x4c\x49\x42\x43\x5f\x32\x2e\x33\x34\x00\x5f\x49\x54\x4d\x5f\x64\x65\x72\x65\x67\x69\x73\x74\x65\x72\x54\x4d\x43\x6c\x6f\x6e\x65\x54\x61\x62\x6c\x65\x00\x5f\x5f\x67\x6d\x6f\x6e\x5f\x73\x74\x61\x72\x74\x5f\x5f\x00\x5f\x49\x54\x4d\x5f\x72\x65\x67\x69\x73\x74\x65\x72\x54\x4d\x43\x6c\x6f\x6e\x65\x54\x61\x62\x6c\x65\x00"), -Section(".gnu.version", 0x45A, "\x00\x00\x00\x00\x00\x00\x02\x00\x01\x00\x03\x00\x03\x00\x01\x00\x03\x00\x03\x00\x01\x00"), -Section(".gnu.version_r", 0x470, "\x01\x00\x02\x00\x34\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x97\x91\x96\x06\x00\x00\x03\x00\x3e\x00\x00\x00\x10\x00\x00\x00\xb4\x91\x96\x06\x00\x00\x02\x00\x49\x00\x00\x00\x00\x00\x00\x00"), -Section(".rela.dyn", 0x4A0, "\xc8\x0d\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\xd0\x07\x00\x00\x00\x00\x00\x00\xd0\x0d\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x80\x07\x00\x00\x00\x00\x00\x00\xd8\x0f\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\xd4\x07\x00\x00\x00\x00\x00\x00\x38\x10\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x38\x10\x01\x00\x00\x00\x00\x00\xc0\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xc8\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xd0\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe0\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x0a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".rela.plt", 0x560, "\x00\x10\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x08\x10\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x10\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x18\x10\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x20\x10\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x28\x10\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x09\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".init", 0x5F0, "\x1f\x20\x03\xd5\xfd\x7b\xbf\xa9\xfd\x03\x00\x91\x3e\x00\x00\x94\xfd\x7b\xc1\xa8\xc0\x03\x5f\xd6"), -Section(".plt", 0x610, "\xf0\x7b\xbf\xa9\x90\x00\x00\x90\x11\xfe\x47\xf9\x10\xe2\x3f\x91\x20\x02\x1f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x90\x00\x00\xb0\x11\x02\x40\xf9\x10\x02\x00\x91\x20\x02\x1f\xd6\x90\x00\x00\xb0\x11\x06\x40\xf9\x10\x22\x00\x91\x20\x02\x1f\xd6\x90\x00\x00\xb0\x11\x0a\x40\xf9\x10\x42\x00\x91\x20\x02\x1f\xd6\x90\x00\x00\xb0\x11\x0e\x40\xf9\x10\x62\x00\x91\x20\x02\x1f\xd6\x90\x00\x00\xb0\x11\x12\x40\xf9\x10\x82\x00\x91\x20\x02\x1f\xd6\x90\x00\x00\xb0\x11\x16\x40\xf9\x10\xa2\x00\x91\x20\x02\x1f\xd6"), -Section(".fini", 0x80C, "\x1f\x20\x03\xd5\xfd\x7b\xbf\xa9\xfd\x03\x00\x91\xfd\x7b\xc1\xa8\xc0\x03\x5f\xd6"), -Section(".rodata", 0x820, "\x01\x00\x02\x00"), -Section(".eh_frame_hdr", 0x824, "\x01\x1b\x03\x3b\x38\x00\x00\x00\x06\x00\x00\x00\x9c\xfe\xff\xff\x50\x00\x00\x00\xec\xfe\xff\xff\x64\x00\x00\x00\x1c\xff\xff\xff\x78\x00\x00\x00\x5c\xff\xff\xff\x8c\x00\x00\x00\xac\xff\xff\xff\xb0\x00\x00\x00\xb0\xff\xff\xff\xd8\x00\x00\x00"), -Section(".eh_frame", 0x860, "\x10\x00\x00\x00\x00\x00\x00\x00\x01\x7a\x52\x00\x04\x78\x1e\x01\x1b\x0c\x1f\x00\x10\x00\x00\x00\x18\x00\x00\x00\x44\xfe\xff\xff\x34\x00\x00\x00\x00\x41\x07\x1e\x10\x00\x00\x00\x2c\x00\x00\x00\x80\xfe\xff\xff\x30\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x40\x00\x00\x00\x9c\xfe\xff\xff\x3c\x00\x00\x00\x00\x00\x00\x00\x20\x00\x00\x00\x54\x00\x00\x00\xc8\xfe\xff\xff\x48\x00\x00\x00\x00\x41\x0e\x20\x9d\x04\x9e\x03\x42\x93\x02\x4e\xde\xdd\xd3\x0e\x00\x00\x00\x00\x10\x00\x00\x00\x78\x00\x00\x00\xf4\xfe\xff\xff\x04\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x01\x7a\x52\x00\x01\x7c\x1e\x01\x1b\x0c\x1f\x00\x24\x00\x00\x00\x18\x00\x00\x00\xd0\xfe\xff\xff\x38\x00\x00\x00\x00\x44\x0e\x20\x48\x0c\x1d\x10\x9e\x02\x9d\x04\x60\x0c\x1f\x20\x48\x0e\x00\xde\xdd\x00\x00\x00\x00\x00\x00\x00"), -Section(".fini_array", 0x10DD0, "\x80\x07\x00\x00\x00\x00\x00\x00"), -Section(".dynamic", 0x10DD8, "\x01\x00\x00\x00\x00\x00\x00\x00\x34\x00\x00\x00\x00\x00\x00\x00\x0c\x00\x00\x00\x00\x00\x00\x00\xf0\x05\x00\x00\x00\x00\x00\x00\x0d\x00\x00\x00\x00\x00\x00\x00\x0c\x08\x00\x00\x00\x00\x00\x00\x19\x00\x00\x00\x00\x00\x00\x00\xc8\x0d\x01\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x1a\x00\x00\x00\x00\x00\x00\x00\xd0\x0d\x01\x00\x00\x00\x00\x00\x1c\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\xf5\xfe\xff\x6f\x00\x00\x00\x00\x98\x02\x00\x00\x00\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\xc0\x03\x00\x00\x00\x00\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\xb8\x02\x00\x00\x00\x00\x00\x00\x0a\x00\x00\x00\x00\x00\x00\x00\x99\x00\x00\x00\x00\x00\x00\x00\x0b\x00\x00\x00\x00\x00\x00\x00\x18\x00\x00\x00\x00\x00\x00\x00\x15\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\xe8\x0f\x01\x00\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x90\x00\x00\x00\x00\x00\x00\x00\x14\x00\x00\x00\x00\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x17\x00\x00\x00\x00\x00\x00\x00\x60\x05\x00\x00\x00\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\xa0\x04\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\xc0\x00\x00\x00\x00\x00\x00\x00\x09\x00\x00\x00\x00\x00\x00\x00\x18\x00\x00\x00\x00\x00\x00\x00\xfb\xff\xff\x6f\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\xfe\xff\xff\x6f\x00\x00\x00\x00\x70\x04\x00\x00\x00\x00\x00\x00\xff\xff\xff\x6f\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\xf0\xff\xff\x6f\x00\x00\x00\x00\x5a\x04\x00\x00\x00\x00\x00\x00\xf9\xff\xff\x6f\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".init_array", 0x10DC8, "\xd0\x07\x00\x00\x00\x00\x00\x00"), -Section(".got", 0x10FB8, "\xd8\x0d\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xd4\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".got.plt", 0x10FE8, "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x06\x00\x00\x00\x00\x00\x00\x10\x06\x00\x00\x00\x00\x00\x00\x10\x06\x00\x00\x00\x00\x00\x00\x10\x06\x00\x00\x00\x00\x00\x00\x10\x06\x00\x00\x00\x00\x00\x00\x10\x06\x00\x00\x00\x00\x00\x00"), -Section(".data", 0x11030, "\x00\x00\x00\x00\x00\x00\x00\x00\x38\x10\x01\x00\x00\x00\x00\x00"), -Section(".text", 0x6C0, "\x1f\x20\x03\xd5\x1d\x00\x80\xd2\x1e\x00\x80\xd2\xe5\x03\x00\xaa\xe1\x03\x40\xf9\xe2\x23\x00\x91\xe6\x03\x00\x91\x80\x00\x00\x90\x00\xec\x47\xf9\x03\x00\x80\xd2\x04\x00\x80\xd2\xd1\xff\xff\x97\xe0\xff\xff\x97\x80\x00\x00\x90\x00\xe8\x47\xf9\x40\x00\x00\xb4\xd8\xff\xff\x17\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x80\x00\x00\xb0\x00\x00\x01\x91\x81\x00\x00\xb0\x21\x00\x01\x91\x3f\x00\x00\xeb\xc0\x00\x00\x54\x81\x00\x00\x90\x21\xe0\x47\xf9\x61\x00\x00\xb4\xf0\x03\x01\xaa\x00\x02\x1f\xd6\xc0\x03\x5f\xd6\x80\x00\x00\xb0\x00\x00\x01\x91\x81\x00\x00\xb0\x21\x00\x01\x91\x21\x00\x00\xcb\x22\xfc\x7f\xd3\x41\x0c\x81\x8b\x21\xfc\x41\x93\xc1\x00\x00\xb4\x82\x00\x00\x90\x42\xf0\x47\xf9\x62\x00\x00\xb4\xf0\x03\x02\xaa\x00\x02\x1f\xd6\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\xfd\x7b\xbe\xa9\xfd\x03\x00\x91\xf3\x0b\x00\xf9\x93\x00\x00\xb0\x60\x02\x41\x39\x40\x01\x00\x35\x80\x00\x00\x90\x00\xe4\x47\xf9\x80\x00\x00\xb4\x80\x00\x00\xb0\x00\x1c\x40\xf9\xa5\xff\xff\x97\xd8\xff\xff\x97\x20\x00\x80\x52\x60\x02\x01\x39\xf3\x0b\x40\xf9\xfd\x7b\xc2\xa8\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\xdc\xff\xff\x17\xff\x83\x00\xd1\xfd\x7b\x01\xa9\xfd\x43\x00\x91\x80\x00\x80\xd2\x9b\xff\xff\x97\xe0\x07\x00\xf9\xe9\x07\x40\xf9\x28\x00\x80\x52\x28\x01\x00\xb9\xe0\x07\x40\xf9\xa1\xff\xff\x97\xfd\x7b\x41\xa9\xff\x83\x00\x91\xc0\x03\x5f\xd6")]), -Memmap([Annotation(Region(0x0,0x927), Attr("segment","02 0 2344")), -Annotation(Region(0x6C0,0x6F3), Attr("symbol","\"_start\"")), -Annotation(Region(0x0,0x102), Attr("section","\".shstrtab\"")), -Annotation(Region(0x0,0x251), Attr("section","\".strtab\"")), -Annotation(Region(0x0,0x86F), Attr("section","\".symtab\"")), -Annotation(Region(0x0,0x46), Attr("section","\".comment\"")), -Annotation(Region(0x238,0x252), Attr("section","\".interp\"")), -Annotation(Region(0x254,0x277), Attr("section","\".note.gnu.build-id\"")), -Annotation(Region(0x278,0x297), Attr("section","\".note.ABI-tag\"")), -Annotation(Region(0x298,0x2B3), Attr("section","\".gnu.hash\"")), -Annotation(Region(0x2B8,0x3BF), Attr("section","\".dynsym\"")), -Annotation(Region(0x3C0,0x458), Attr("section","\".dynstr\"")), -Annotation(Region(0x45A,0x46F), Attr("section","\".gnu.version\"")), -Annotation(Region(0x470,0x49F), Attr("section","\".gnu.version_r\"")), -Annotation(Region(0x4A0,0x55F), Attr("section","\".rela.dyn\"")), -Annotation(Region(0x560,0x5EF), Attr("section","\".rela.plt\"")), -Annotation(Region(0x5F0,0x607), Attr("section","\".init\"")), -Annotation(Region(0x610,0x68F), Attr("section","\".plt\"")), -Annotation(Region(0x5F0,0x607), Attr("code-region","()")), -Annotation(Region(0x610,0x68F), Attr("code-region","()")), -Annotation(Region(0x6C0,0x6F3), Attr("symbol-info","_start 0x6C0 52")), -Annotation(Region(0x6F4,0x707), Attr("symbol","\"call_weak_fn\"")), -Annotation(Region(0x6F4,0x707), Attr("symbol-info","call_weak_fn 0x6F4 20")), -Annotation(Region(0x7D4,0x80B), Attr("symbol","\"main\"")), -Annotation(Region(0x7D4,0x80B), Attr("symbol-info","main 0x7D4 56")), -Annotation(Region(0x80C,0x81F), Attr("section","\".fini\"")), -Annotation(Region(0x820,0x823), Attr("section","\".rodata\"")), -Annotation(Region(0x824,0x85F), Attr("section","\".eh_frame_hdr\"")), -Annotation(Region(0x860,0x927), Attr("section","\".eh_frame\"")), -Annotation(Region(0x10DC8,0x1103F), Attr("segment","03 0x10DC8 640")), -Annotation(Region(0x10DD0,0x10DD7), Attr("section","\".fini_array\"")), -Annotation(Region(0x10DD8,0x10FB7), Attr("section","\".dynamic\"")), -Annotation(Region(0x10DC8,0x10DCF), Attr("section","\".init_array\"")), -Annotation(Region(0x10FB8,0x10FE7), Attr("section","\".got\"")), -Annotation(Region(0x10FE8,0x1102F), Attr("section","\".got.plt\"")), -Annotation(Region(0x11030,0x1103F), Attr("section","\".data\"")), -Annotation(Region(0x6C0,0x80B), Attr("section","\".text\"")), -Annotation(Region(0x6C0,0x80B), Attr("code-region","()")), -Annotation(Region(0x80C,0x81F), Attr("code-region","()"))]), -Program(Tid(1_522, "%000005f2"), Attrs([]), - Subs([Sub(Tid(1_467, "@__cxa_finalize"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x640"), -Attr("stub","()")]), "__cxa_finalize", Args([Arg(Tid(1_523, "%000005f3"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("__cxa_finalize_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(906, "@__cxa_finalize"), - Attrs([Attr("address","0x640")]), Phis([]), -Defs([Def(Tid(1_186, "%000004a2"), Attrs([Attr("address","0x640"), -Attr("insn","adrp x16, #69632")]), Var("R16",Imm(64)), Int(69632,64)), -Def(Tid(1_193, "%000004a9"), Attrs([Attr("address","0x644"), -Attr("insn","ldr x17, [x16, #0x8]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(1_199, "%000004af"), Attrs([Attr("address","0x648"), -Attr("insn","add x16, x16, #0x8")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(8,64)))]), Jmps([Call(Tid(1_204, "%000004b4"), - Attrs([Attr("address","0x64C"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), -Sub(Tid(1_468, "@__do_global_dtors_aux"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x780")]), - "__do_global_dtors_aux", Args([Arg(Tid(1_524, "%000005f4"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("__do_global_dtors_aux_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(646, "@__do_global_dtors_aux"), - Attrs([Attr("address","0x780")]), Phis([]), Defs([Def(Tid(650, "%0000028a"), - Attrs([Attr("address","0x780"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("#3",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(18446744073709551584,64))), -Def(Tid(656, "%00000290"), Attrs([Attr("address","0x780"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("#3",Imm(64)),Var("R29",Imm(64)),LittleEndian(),64)), -Def(Tid(662, "%00000296"), Attrs([Attr("address","0x780"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("#3",Imm(64)),Int(8,64)),Var("R30",Imm(64)),LittleEndian(),64)), -Def(Tid(666, "%0000029a"), Attrs([Attr("address","0x780"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("R31",Imm(64)), -Var("#3",Imm(64))), Def(Tid(672, "%000002a0"), - Attrs([Attr("address","0x784"), Attr("insn","mov x29, sp")]), - Var("R29",Imm(64)), Var("R31",Imm(64))), Def(Tid(680, "%000002a8"), - Attrs([Attr("address","0x788"), Attr("insn","str x19, [sp, #0x10]")]), - Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(16,64)),Var("R19",Imm(64)),LittleEndian(),64)), -Def(Tid(685, "%000002ad"), Attrs([Attr("address","0x78C"), -Attr("insn","adrp x19, #69632")]), Var("R19",Imm(64)), Int(69632,64)), -Def(Tid(692, "%000002b4"), Attrs([Attr("address","0x790"), -Attr("insn","ldrb w0, [x19, #0x40]")]), Var("R0",Imm(64)), -UNSIGNED(64,Load(Var("mem",Mem(64,8)),PLUS(Var("R19",Imm(64)),Int(64,64)),LittleEndian(),8)))]), -Jmps([Goto(Tid(699, "%000002bb"), Attrs([Attr("address","0x794"), -Attr("insn","cbnz w0, #0x28")]), - NEQ(Extract(31,0,Var("R0",Imm(64))),Int(0,32)), -Direct(Tid(697, "%000002b9"))), Goto(Tid(1_512, "%000005e8"), Attrs([]), - Int(1,1), Direct(Tid(851, "%00000353")))])), Blk(Tid(851, "%00000353"), - Attrs([Attr("address","0x798")]), Phis([]), Defs([Def(Tid(854, "%00000356"), - Attrs([Attr("address","0x798"), Attr("insn","adrp x0, #65536")]), - Var("R0",Imm(64)), Int(65536,64)), Def(Tid(861, "%0000035d"), - Attrs([Attr("address","0x79C"), Attr("insn","ldr x0, [x0, #0xfc8]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(4040,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(867, "%00000363"), Attrs([Attr("address","0x7A0"), -Attr("insn","cbz x0, #0x10")]), EQ(Var("R0",Imm(64)),Int(0,64)), -Direct(Tid(865, "%00000361"))), Goto(Tid(1_513, "%000005e9"), Attrs([]), - Int(1,1), Direct(Tid(890, "%0000037a")))])), Blk(Tid(890, "%0000037a"), - Attrs([Attr("address","0x7A4")]), Phis([]), Defs([Def(Tid(893, "%0000037d"), - Attrs([Attr("address","0x7A4"), Attr("insn","adrp x0, #69632")]), - Var("R0",Imm(64)), Int(69632,64)), Def(Tid(900, "%00000384"), - Attrs([Attr("address","0x7A8"), Attr("insn","ldr x0, [x0, #0x38]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(56,64)),LittleEndian(),64)), -Def(Tid(905, "%00000389"), Attrs([Attr("address","0x7AC"), -Attr("insn","bl #-0x16c")]), Var("R30",Imm(64)), Int(1968,64))]), -Jmps([Call(Tid(908, "%0000038c"), Attrs([Attr("address","0x7AC"), -Attr("insn","bl #-0x16c")]), Int(1,1), -(Direct(Tid(1_467, "@__cxa_finalize")),Direct(Tid(865, "%00000361"))))])), -Blk(Tid(865, "%00000361"), Attrs([Attr("address","0x7B0")]), Phis([]), -Defs([Def(Tid(873, "%00000369"), Attrs([Attr("address","0x7B0"), -Attr("insn","bl #-0xa0")]), Var("R30",Imm(64)), Int(1972,64))]), -Jmps([Call(Tid(875, "%0000036b"), Attrs([Attr("address","0x7B0"), -Attr("insn","bl #-0xa0")]), Int(1,1), -(Direct(Tid(1_481, "@deregister_tm_clones")),Direct(Tid(877, "%0000036d"))))])), -Blk(Tid(877, "%0000036d"), Attrs([Attr("address","0x7B4")]), Phis([]), -Defs([Def(Tid(880, "%00000370"), Attrs([Attr("address","0x7B4"), -Attr("insn","mov w0, #0x1")]), Var("R0",Imm(64)), Int(1,64)), -Def(Tid(888, "%00000378"), Attrs([Attr("address","0x7B8"), -Attr("insn","strb w0, [x19, #0x40]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R19",Imm(64)),Int(64,64)),Extract(7,0,Var("R0",Imm(64))),LittleEndian(),8))]), -Jmps([Goto(Tid(1_514, "%000005ea"), Attrs([]), Int(1,1), -Direct(Tid(697, "%000002b9")))])), Blk(Tid(697, "%000002b9"), - Attrs([Attr("address","0x7BC")]), Phis([]), Defs([Def(Tid(707, "%000002c3"), - Attrs([Attr("address","0x7BC"), Attr("insn","ldr x19, [sp, #0x10]")]), - Var("R19",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(16,64)),LittleEndian(),64)), -Def(Tid(714, "%000002ca"), Attrs([Attr("address","0x7C0"), -Attr("insn","ldp x29, x30, [sp], #0x20")]), Var("R29",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(719, "%000002cf"), Attrs([Attr("address","0x7C0"), -Attr("insn","ldp x29, x30, [sp], #0x20")]), Var("R30",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(723, "%000002d3"), Attrs([Attr("address","0x7C0"), -Attr("insn","ldp x29, x30, [sp], #0x20")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(32,64)))]), Jmps([Call(Tid(728, "%000002d8"), - Attrs([Attr("address","0x7C4"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), Sub(Tid(1_472, "@__libc_start_main"), - Attrs([Attr("c.proto","signed (*)(signed (*)(signed , char** , char** );* main, signed , char** , \nvoid* auxv)"), -Attr("address","0x630"), Attr("stub","()")]), "__libc_start_main", - Args([Arg(Tid(1_525, "%000005f5"), - Attrs([Attr("c.layout","**[ : 64]"), -Attr("c.data","Top:u64 ptr ptr"), -Attr("c.type","signed (*)(signed , char** , char** );*")]), - Var("__libc_start_main_main",Imm(64)), Var("R0",Imm(64)), In()), -Arg(Tid(1_526, "%000005f6"), Attrs([Attr("c.layout","[signed : 32]"), -Attr("c.data","Top:u32"), Attr("c.type","signed")]), - Var("__libc_start_main_arg2",Imm(32)), LOW(32,Var("R1",Imm(64))), In()), -Arg(Tid(1_527, "%000005f7"), Attrs([Attr("c.layout","**[char : 8]"), -Attr("c.data","Top:u8 ptr ptr"), Attr("c.type","char**")]), - Var("__libc_start_main_arg3",Imm(64)), Var("R2",Imm(64)), Both()), -Arg(Tid(1_528, "%000005f8"), Attrs([Attr("c.layout","*[ : 8]"), -Attr("c.data","{} ptr"), Attr("c.type","void*")]), - Var("__libc_start_main_auxv",Imm(64)), Var("R3",Imm(64)), Both()), -Arg(Tid(1_529, "%000005f9"), Attrs([Attr("c.layout","[signed : 32]"), -Attr("c.data","Top:u32"), Attr("c.type","signed")]), - Var("__libc_start_main_result",Imm(32)), LOW(32,Var("R0",Imm(64))), -Out())]), Blks([Blk(Tid(479, "@__libc_start_main"), - Attrs([Attr("address","0x630")]), Phis([]), -Defs([Def(Tid(1_164, "%0000048c"), Attrs([Attr("address","0x630"), -Attr("insn","adrp x16, #69632")]), Var("R16",Imm(64)), Int(69632,64)), -Def(Tid(1_171, "%00000493"), Attrs([Attr("address","0x634"), -Attr("insn","ldr x17, [x16]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R16",Imm(64)),LittleEndian(),64)), -Def(Tid(1_177, "%00000499"), Attrs([Attr("address","0x638"), -Attr("insn","add x16, x16, #0x0")]), Var("R16",Imm(64)), -Var("R16",Imm(64)))]), Jmps([Call(Tid(1_182, "%0000049e"), - Attrs([Attr("address","0x63C"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), Sub(Tid(1_473, "@_fini"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x80C")]), - "_fini", Args([Arg(Tid(1_530, "%000005fa"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("_fini_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(31, "@_fini"), - Attrs([Attr("address","0x80C")]), Phis([]), Defs([Def(Tid(37, "%00000025"), - Attrs([Attr("address","0x810"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("#0",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(18446744073709551600,64))), -Def(Tid(43, "%0000002b"), Attrs([Attr("address","0x810"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("#0",Imm(64)),Var("R29",Imm(64)),LittleEndian(),64)), -Def(Tid(49, "%00000031"), Attrs([Attr("address","0x810"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("#0",Imm(64)),Int(8,64)),Var("R30",Imm(64)),LittleEndian(),64)), -Def(Tid(53, "%00000035"), Attrs([Attr("address","0x810"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("R31",Imm(64)), -Var("#0",Imm(64))), Def(Tid(59, "%0000003b"), Attrs([Attr("address","0x814"), -Attr("insn","mov x29, sp")]), Var("R29",Imm(64)), Var("R31",Imm(64))), -Def(Tid(66, "%00000042"), Attrs([Attr("address","0x818"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R29",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(71, "%00000047"), Attrs([Attr("address","0x818"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R30",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(75, "%0000004b"), Attrs([Attr("address","0x818"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(16,64)))]), Jmps([Call(Tid(80, "%00000050"), - Attrs([Attr("address","0x81C"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), Sub(Tid(1_474, "@_init"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x5F0")]), - "_init", Args([Arg(Tid(1_531, "%000005fb"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("_init_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(1_320, "@_init"), - Attrs([Attr("address","0x5F0")]), Phis([]), -Defs([Def(Tid(1_326, "%0000052e"), Attrs([Attr("address","0x5F4"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("#7",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(18446744073709551600,64))), -Def(Tid(1_332, "%00000534"), Attrs([Attr("address","0x5F4"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("#7",Imm(64)),Var("R29",Imm(64)),LittleEndian(),64)), -Def(Tid(1_338, "%0000053a"), Attrs([Attr("address","0x5F4"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("#7",Imm(64)),Int(8,64)),Var("R30",Imm(64)),LittleEndian(),64)), -Def(Tid(1_342, "%0000053e"), Attrs([Attr("address","0x5F4"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("R31",Imm(64)), -Var("#7",Imm(64))), Def(Tid(1_348, "%00000544"), - Attrs([Attr("address","0x5F8"), Attr("insn","mov x29, sp")]), - Var("R29",Imm(64)), Var("R31",Imm(64))), Def(Tid(1_353, "%00000549"), - Attrs([Attr("address","0x5FC"), Attr("insn","bl #0xf8")]), - Var("R30",Imm(64)), Int(1536,64))]), Jmps([Call(Tid(1_355, "%0000054b"), - Attrs([Attr("address","0x5FC"), Attr("insn","bl #0xf8")]), Int(1,1), -(Direct(Tid(1_479, "@call_weak_fn")),Direct(Tid(1_357, "%0000054d"))))])), -Blk(Tid(1_357, "%0000054d"), Attrs([Attr("address","0x600")]), Phis([]), -Defs([Def(Tid(1_362, "%00000552"), Attrs([Attr("address","0x600"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R29",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(1_367, "%00000557"), Attrs([Attr("address","0x600"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R30",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(1_371, "%0000055b"), Attrs([Attr("address","0x600"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(16,64)))]), Jmps([Call(Tid(1_376, "%00000560"), - Attrs([Attr("address","0x604"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), Sub(Tid(1_475, "@_start"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x6C0"), -Attr("entry-point","()")]), "_start", Args([Arg(Tid(1_532, "%000005fc"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("_start_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(416, "@_start"), - Attrs([Attr("address","0x6C0")]), Phis([]), Defs([Def(Tid(421, "%000001a5"), - Attrs([Attr("address","0x6C4"), Attr("insn","mov x29, #0x0")]), - Var("R29",Imm(64)), Int(0,64)), Def(Tid(426, "%000001aa"), - Attrs([Attr("address","0x6C8"), Attr("insn","mov x30, #0x0")]), - Var("R30",Imm(64)), Int(0,64)), Def(Tid(432, "%000001b0"), - Attrs([Attr("address","0x6CC"), Attr("insn","mov x5, x0")]), - Var("R5",Imm(64)), Var("R0",Imm(64))), Def(Tid(439, "%000001b7"), - Attrs([Attr("address","0x6D0"), Attr("insn","ldr x1, [sp]")]), - Var("R1",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(445, "%000001bd"), Attrs([Attr("address","0x6D4"), -Attr("insn","add x2, sp, #0x8")]), Var("R2",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(8,64))), Def(Tid(451, "%000001c3"), - Attrs([Attr("address","0x6D8"), Attr("insn","mov x6, sp")]), - Var("R6",Imm(64)), Var("R31",Imm(64))), Def(Tid(456, "%000001c8"), - Attrs([Attr("address","0x6DC"), Attr("insn","adrp x0, #65536")]), - Var("R0",Imm(64)), Int(65536,64)), Def(Tid(463, "%000001cf"), - Attrs([Attr("address","0x6E0"), Attr("insn","ldr x0, [x0, #0xfd8]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(4056,64)),LittleEndian(),64)), -Def(Tid(468, "%000001d4"), Attrs([Attr("address","0x6E4"), -Attr("insn","mov x3, #0x0")]), Var("R3",Imm(64)), Int(0,64)), -Def(Tid(473, "%000001d9"), Attrs([Attr("address","0x6E8"), -Attr("insn","mov x4, #0x0")]), Var("R4",Imm(64)), Int(0,64)), -Def(Tid(478, "%000001de"), Attrs([Attr("address","0x6EC"), -Attr("insn","bl #-0xbc")]), Var("R30",Imm(64)), Int(1776,64))]), -Jmps([Call(Tid(481, "%000001e1"), Attrs([Attr("address","0x6EC"), -Attr("insn","bl #-0xbc")]), Int(1,1), -(Direct(Tid(1_472, "@__libc_start_main")),Direct(Tid(483, "%000001e3"))))])), -Blk(Tid(483, "%000001e3"), Attrs([Attr("address","0x6F0")]), Phis([]), -Defs([Def(Tid(486, "%000001e6"), Attrs([Attr("address","0x6F0"), -Attr("insn","bl #-0x80")]), Var("R30",Imm(64)), Int(1780,64))]), -Jmps([Call(Tid(489, "%000001e9"), Attrs([Attr("address","0x6F0"), -Attr("insn","bl #-0x80")]), Int(1,1), -(Direct(Tid(1_478, "@abort")),Direct(Tid(1_515, "%000005eb"))))])), -Blk(Tid(1_515, "%000005eb"), Attrs([]), Phis([]), Defs([]), -Jmps([Call(Tid(1_516, "%000005ec"), Attrs([]), Int(1,1), -(Direct(Tid(1_479, "@call_weak_fn")),))]))])), Sub(Tid(1_478, "@abort"), - Attrs([Attr("noreturn","()"), Attr("c.proto","void (*)(void)"), -Attr("address","0x670"), Attr("stub","()")]), "abort", Args([]), -Blks([Blk(Tid(487, "@abort"), Attrs([Attr("address","0x670")]), Phis([]), -Defs([Def(Tid(1_252, "%000004e4"), Attrs([Attr("address","0x670"), -Attr("insn","adrp x16, #69632")]), Var("R16",Imm(64)), Int(69632,64)), -Def(Tid(1_259, "%000004eb"), Attrs([Attr("address","0x674"), -Attr("insn","ldr x17, [x16, #0x20]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(32,64)),LittleEndian(),64)), -Def(Tid(1_265, "%000004f1"), Attrs([Attr("address","0x678"), -Attr("insn","add x16, x16, #0x20")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(32,64)))]), Jmps([Call(Tid(1_270, "%000004f6"), - Attrs([Attr("address","0x67C"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), Sub(Tid(1_479, "@call_weak_fn"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x6F4")]), - "call_weak_fn", Args([Arg(Tid(1_533, "%000005fd"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("call_weak_fn_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(491, "@call_weak_fn"), - Attrs([Attr("address","0x6F4")]), Phis([]), Defs([Def(Tid(494, "%000001ee"), - Attrs([Attr("address","0x6F4"), Attr("insn","adrp x0, #65536")]), - Var("R0",Imm(64)), Int(65536,64)), Def(Tid(501, "%000001f5"), - Attrs([Attr("address","0x6F8"), Attr("insn","ldr x0, [x0, #0xfd0]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(4048,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(507, "%000001fb"), Attrs([Attr("address","0x6FC"), -Attr("insn","cbz x0, #0x8")]), EQ(Var("R0",Imm(64)),Int(0,64)), -Direct(Tid(505, "%000001f9"))), Goto(Tid(1_517, "%000005ed"), Attrs([]), - Int(1,1), Direct(Tid(970, "%000003ca")))])), Blk(Tid(505, "%000001f9"), - Attrs([Attr("address","0x704")]), Phis([]), Defs([]), -Jmps([Call(Tid(513, "%00000201"), Attrs([Attr("address","0x704"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))])), -Blk(Tid(970, "%000003ca"), Attrs([Attr("address","0x700")]), Phis([]), -Defs([]), Jmps([Goto(Tid(973, "%000003cd"), Attrs([Attr("address","0x700"), -Attr("insn","b #-0xa0")]), Int(1,1), Direct(Tid(971, "@__gmon_start__")))])), -Blk(Tid(971, "@__gmon_start__"), Attrs([Attr("address","0x660")]), Phis([]), -Defs([Def(Tid(1_230, "%000004ce"), Attrs([Attr("address","0x660"), -Attr("insn","adrp x16, #69632")]), Var("R16",Imm(64)), Int(69632,64)), -Def(Tid(1_237, "%000004d5"), Attrs([Attr("address","0x664"), -Attr("insn","ldr x17, [x16, #0x18]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(24,64)),LittleEndian(),64)), -Def(Tid(1_243, "%000004db"), Attrs([Attr("address","0x668"), -Attr("insn","add x16, x16, #0x18")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(24,64)))]), Jmps([Call(Tid(1_248, "%000004e0"), - Attrs([Attr("address","0x66C"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), -Sub(Tid(1_481, "@deregister_tm_clones"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x710")]), - "deregister_tm_clones", Args([Arg(Tid(1_534, "%000005fe"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("deregister_tm_clones_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(519, "@deregister_tm_clones"), - Attrs([Attr("address","0x710")]), Phis([]), Defs([Def(Tid(522, "%0000020a"), - Attrs([Attr("address","0x710"), Attr("insn","adrp x0, #69632")]), - Var("R0",Imm(64)), Int(69632,64)), Def(Tid(528, "%00000210"), - Attrs([Attr("address","0x714"), Attr("insn","add x0, x0, #0x40")]), - Var("R0",Imm(64)), PLUS(Var("R0",Imm(64)),Int(64,64))), -Def(Tid(533, "%00000215"), Attrs([Attr("address","0x718"), -Attr("insn","adrp x1, #69632")]), Var("R1",Imm(64)), Int(69632,64)), -Def(Tid(539, "%0000021b"), Attrs([Attr("address","0x71C"), -Attr("insn","add x1, x1, #0x40")]), Var("R1",Imm(64)), -PLUS(Var("R1",Imm(64)),Int(64,64))), Def(Tid(545, "%00000221"), - Attrs([Attr("address","0x720"), Attr("insn","cmp x1, x0")]), - Var("#1",Imm(64)), NOT(Var("R0",Imm(64)))), Def(Tid(550, "%00000226"), - Attrs([Attr("address","0x720"), Attr("insn","cmp x1, x0")]), - Var("#2",Imm(64)), PLUS(Var("R1",Imm(64)),NOT(Var("R0",Imm(64))))), -Def(Tid(556, "%0000022c"), Attrs([Attr("address","0x720"), -Attr("insn","cmp x1, x0")]), Var("VF",Imm(1)), -NEQ(SIGNED(65,PLUS(Var("#2",Imm(64)),Int(1,64))),PLUS(PLUS(SIGNED(65,Var("R1",Imm(64))),SIGNED(65,Var("#1",Imm(64)))),Int(1,65)))), -Def(Tid(562, "%00000232"), Attrs([Attr("address","0x720"), -Attr("insn","cmp x1, x0")]), Var("CF",Imm(1)), -NEQ(UNSIGNED(65,PLUS(Var("#2",Imm(64)),Int(1,64))),PLUS(PLUS(UNSIGNED(65,Var("R1",Imm(64))),UNSIGNED(65,Var("#1",Imm(64)))),Int(1,65)))), -Def(Tid(566, "%00000236"), Attrs([Attr("address","0x720"), -Attr("insn","cmp x1, x0")]), Var("ZF",Imm(1)), -EQ(PLUS(Var("#2",Imm(64)),Int(1,64)),Int(0,64))), Def(Tid(570, "%0000023a"), - Attrs([Attr("address","0x720"), Attr("insn","cmp x1, x0")]), - Var("NF",Imm(1)), Extract(63,63,PLUS(Var("#2",Imm(64)),Int(1,64))))]), -Jmps([Goto(Tid(576, "%00000240"), Attrs([Attr("address","0x724"), -Attr("insn","b.eq #0x18")]), EQ(Var("ZF",Imm(1)),Int(1,1)), -Direct(Tid(574, "%0000023e"))), Goto(Tid(1_518, "%000005ee"), Attrs([]), - Int(1,1), Direct(Tid(940, "%000003ac")))])), Blk(Tid(940, "%000003ac"), - Attrs([Attr("address","0x728")]), Phis([]), Defs([Def(Tid(943, "%000003af"), - Attrs([Attr("address","0x728"), Attr("insn","adrp x1, #65536")]), - Var("R1",Imm(64)), Int(65536,64)), Def(Tid(950, "%000003b6"), - Attrs([Attr("address","0x72C"), Attr("insn","ldr x1, [x1, #0xfc0]")]), - Var("R1",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R1",Imm(64)),Int(4032,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(955, "%000003bb"), Attrs([Attr("address","0x730"), -Attr("insn","cbz x1, #0xc")]), EQ(Var("R1",Imm(64)),Int(0,64)), -Direct(Tid(574, "%0000023e"))), Goto(Tid(1_519, "%000005ef"), Attrs([]), - Int(1,1), Direct(Tid(959, "%000003bf")))])), Blk(Tid(574, "%0000023e"), - Attrs([Attr("address","0x73C")]), Phis([]), Defs([]), -Jmps([Call(Tid(582, "%00000246"), Attrs([Attr("address","0x73C"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))])), -Blk(Tid(959, "%000003bf"), Attrs([Attr("address","0x734")]), Phis([]), -Defs([Def(Tid(963, "%000003c3"), Attrs([Attr("address","0x734"), -Attr("insn","mov x16, x1")]), Var("R16",Imm(64)), Var("R1",Imm(64)))]), -Jmps([Call(Tid(968, "%000003c8"), Attrs([Attr("address","0x738"), -Attr("insn","br x16")]), Int(1,1), (Indirect(Var("R16",Imm(64))),))]))])), -Sub(Tid(1_484, "@frame_dummy"), Attrs([Attr("c.proto","signed (*)(void)"), -Attr("address","0x7D0")]), "frame_dummy", Args([Arg(Tid(1_535, "%000005ff"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("frame_dummy_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(734, "@frame_dummy"), - Attrs([Attr("address","0x7D0")]), Phis([]), Defs([]), -Jmps([Call(Tid(736, "%000002e0"), Attrs([Attr("address","0x7D0"), -Attr("insn","b #-0x90")]), Int(1,1), -(Direct(Tid(1_488, "@register_tm_clones")),))]))])), Sub(Tid(1_485, "@free"), - Attrs([Attr("c.proto","void (*)(void* ptr)"), Attr("address","0x680"), -Attr("stub","()")]), "free", Args([Arg(Tid(1_536, "%00000600"), - Attrs([Attr("c.layout","*[ : 8]"), Attr("c.data","{} ptr"), -Attr("c.type","void*")]), Var("free_ptr",Imm(64)), Var("R0",Imm(64)), -Both())]), Blks([Blk(Tid(820, "@free"), Attrs([Attr("address","0x680")]), - Phis([]), Defs([Def(Tid(1_274, "%000004fa"), Attrs([Attr("address","0x680"), -Attr("insn","adrp x16, #69632")]), Var("R16",Imm(64)), Int(69632,64)), -Def(Tid(1_281, "%00000501"), Attrs([Attr("address","0x684"), -Attr("insn","ldr x17, [x16, #0x28]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(40,64)),LittleEndian(),64)), -Def(Tid(1_287, "%00000507"), Attrs([Attr("address","0x688"), -Attr("insn","add x16, x16, #0x28")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(40,64)))]), Jmps([Call(Tid(1_292, "%0000050c"), - Attrs([Attr("address","0x68C"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), Sub(Tid(1_486, "@main"), - Attrs([Attr("c.proto","signed (*)(signed argc, const char** argv)"), -Attr("address","0x7D4")]), "main", Args([Arg(Tid(1_537, "%00000601"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("main_argc",Imm(32)), -LOW(32,Var("R0",Imm(64))), In()), Arg(Tid(1_538, "%00000602"), - Attrs([Attr("c.layout","**[char : 8]"), Attr("c.data","Top:u8 ptr ptr"), -Attr("c.type"," const char**")]), Var("main_argv",Imm(64)), -Var("R1",Imm(64)), Both()), Arg(Tid(1_539, "%00000603"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("main_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(738, "@main"), - Attrs([Attr("address","0x7D4")]), Phis([]), Defs([Def(Tid(742, "%000002e6"), - Attrs([Attr("address","0x7D4"), Attr("insn","sub sp, sp, #0x20")]), - Var("R31",Imm(64)), PLUS(Var("R31",Imm(64)),Int(18446744073709551584,64))), -Def(Tid(748, "%000002ec"), Attrs([Attr("address","0x7D8"), -Attr("insn","stp x29, x30, [sp, #0x10]")]), Var("#4",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(16,64))), Def(Tid(754, "%000002f2"), - Attrs([Attr("address","0x7D8"), Attr("insn","stp x29, x30, [sp, #0x10]")]), - Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("#4",Imm(64)),Var("R29",Imm(64)),LittleEndian(),64)), -Def(Tid(760, "%000002f8"), Attrs([Attr("address","0x7D8"), -Attr("insn","stp x29, x30, [sp, #0x10]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("#4",Imm(64)),Int(8,64)),Var("R30",Imm(64)),LittleEndian(),64)), -Def(Tid(766, "%000002fe"), Attrs([Attr("address","0x7DC"), -Attr("insn","add x29, sp, #0x10")]), Var("R29",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(16,64))), Def(Tid(771, "%00000303"), - Attrs([Attr("address","0x7E0"), Attr("insn","mov x0, #0x4")]), - Var("R0",Imm(64)), Int(4,64)), Def(Tid(776, "%00000308"), - Attrs([Attr("address","0x7E4"), Attr("insn","bl #-0x194")]), - Var("R30",Imm(64)), Int(2024,64))]), Jmps([Call(Tid(779, "%0000030b"), - Attrs([Attr("address","0x7E4"), Attr("insn","bl #-0x194")]), Int(1,1), -(Direct(Tid(1_487, "@malloc")),Direct(Tid(781, "%0000030d"))))])), -Blk(Tid(781, "%0000030d"), Attrs([Attr("address","0x7E8")]), Phis([]), -Defs([Def(Tid(787, "%00000313"), Attrs([Attr("address","0x7E8"), -Attr("insn","str x0, [sp, #0x8]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),Var("R0",Imm(64)),LittleEndian(),64)), -Def(Tid(794, "%0000031a"), Attrs([Attr("address","0x7EC"), -Attr("insn","ldr x9, [sp, #0x8]")]), Var("R9",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(799, "%0000031f"), Attrs([Attr("address","0x7F0"), -Attr("insn","mov w8, #0x1")]), Var("R8",Imm(64)), Int(1,64)), -Def(Tid(807, "%00000327"), Attrs([Attr("address","0x7F4"), -Attr("insn","str w8, [x9]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("R9",Imm(64)),Extract(31,0,Var("R8",Imm(64))),LittleEndian(),32)), -Def(Tid(814, "%0000032e"), Attrs([Attr("address","0x7F8"), -Attr("insn","ldr x0, [sp, #0x8]")]), Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(819, "%00000333"), Attrs([Attr("address","0x7FC"), -Attr("insn","bl #-0x17c")]), Var("R30",Imm(64)), Int(2048,64))]), -Jmps([Call(Tid(822, "%00000336"), Attrs([Attr("address","0x7FC"), -Attr("insn","bl #-0x17c")]), Int(1,1), -(Direct(Tid(1_485, "@free")),Direct(Tid(824, "%00000338"))))])), -Blk(Tid(824, "%00000338"), Attrs([Attr("address","0x800")]), Phis([]), -Defs([Def(Tid(828, "%0000033c"), Attrs([Attr("address","0x800"), -Attr("insn","ldp x29, x30, [sp, #0x10]")]), Var("#5",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(16,64))), Def(Tid(833, "%00000341"), - Attrs([Attr("address","0x800"), Attr("insn","ldp x29, x30, [sp, #0x10]")]), - Var("R29",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("#5",Imm(64)),LittleEndian(),64)), -Def(Tid(838, "%00000346"), Attrs([Attr("address","0x800"), -Attr("insn","ldp x29, x30, [sp, #0x10]")]), Var("R30",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("#5",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(844, "%0000034c"), Attrs([Attr("address","0x804"), -Attr("insn","add sp, sp, #0x20")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(32,64)))]), Jmps([Call(Tid(849, "%00000351"), - Attrs([Attr("address","0x808"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), Sub(Tid(1_487, "@malloc"), - Attrs([Attr("c.proto","void* (*)(unsigned long size)"), -Attr("address","0x650"), Attr("malloc","()"), Attr("stub","()")]), "malloc", - Args([Arg(Tid(1_540, "%00000604"), Attrs([Attr("alloc-size","()"), -Attr("c.layout","[unsigned long : 64]"), Attr("c.data","Top:u64"), -Attr("c.type","unsigned long")]), Var("malloc_size",Imm(64)), -Var("R0",Imm(64)), In()), Arg(Tid(1_541, "%00000605"), - Attrs([Attr("warn-unused","()"), Attr("c.layout","*[ : 8]"), -Attr("c.data","{} ptr"), Attr("c.type","void*")]), - Var("malloc_result",Imm(64)), Var("R0",Imm(64)), Out())]), -Blks([Blk(Tid(777, "@malloc"), Attrs([Attr("address","0x650")]), Phis([]), -Defs([Def(Tid(1_208, "%000004b8"), Attrs([Attr("address","0x650"), -Attr("insn","adrp x16, #69632")]), Var("R16",Imm(64)), Int(69632,64)), -Def(Tid(1_215, "%000004bf"), Attrs([Attr("address","0x654"), -Attr("insn","ldr x17, [x16, #0x10]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(16,64)),LittleEndian(),64)), -Def(Tid(1_221, "%000004c5"), Attrs([Attr("address","0x658"), -Attr("insn","add x16, x16, #0x10")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(16,64)))]), Jmps([Call(Tid(1_226, "%000004ca"), - Attrs([Attr("address","0x65C"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), -Sub(Tid(1_488, "@register_tm_clones"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x740")]), - "register_tm_clones", Args([Arg(Tid(1_542, "%00000606"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("register_tm_clones_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(584, "@register_tm_clones"), Attrs([Attr("address","0x740")]), - Phis([]), Defs([Def(Tid(587, "%0000024b"), Attrs([Attr("address","0x740"), -Attr("insn","adrp x0, #69632")]), Var("R0",Imm(64)), Int(69632,64)), -Def(Tid(593, "%00000251"), Attrs([Attr("address","0x744"), -Attr("insn","add x0, x0, #0x40")]), Var("R0",Imm(64)), -PLUS(Var("R0",Imm(64)),Int(64,64))), Def(Tid(598, "%00000256"), - Attrs([Attr("address","0x748"), Attr("insn","adrp x1, #69632")]), - Var("R1",Imm(64)), Int(69632,64)), Def(Tid(604, "%0000025c"), - Attrs([Attr("address","0x74C"), Attr("insn","add x1, x1, #0x40")]), - Var("R1",Imm(64)), PLUS(Var("R1",Imm(64)),Int(64,64))), -Def(Tid(611, "%00000263"), Attrs([Attr("address","0x750"), -Attr("insn","sub x1, x1, x0")]), Var("R1",Imm(64)), -PLUS(PLUS(Var("R1",Imm(64)),NOT(Var("R0",Imm(64)))),Int(1,64))), -Def(Tid(617, "%00000269"), Attrs([Attr("address","0x754"), -Attr("insn","lsr x2, x1, #63")]), Var("R2",Imm(64)), -Concat(Int(0,63),Extract(63,63,Var("R1",Imm(64))))), -Def(Tid(624, "%00000270"), Attrs([Attr("address","0x758"), -Attr("insn","add x1, x2, x1, asr #3")]), Var("R1",Imm(64)), -PLUS(Var("R2",Imm(64)),ARSHIFT(Var("R1",Imm(64)),Int(3,3)))), -Def(Tid(630, "%00000276"), Attrs([Attr("address","0x75C"), -Attr("insn","asr x1, x1, #1")]), Var("R1",Imm(64)), -SIGNED(64,Extract(63,1,Var("R1",Imm(64)))))]), -Jmps([Goto(Tid(636, "%0000027c"), Attrs([Attr("address","0x760"), -Attr("insn","cbz x1, #0x18")]), EQ(Var("R1",Imm(64)),Int(0,64)), -Direct(Tid(634, "%0000027a"))), Goto(Tid(1_520, "%000005f0"), Attrs([]), - Int(1,1), Direct(Tid(910, "%0000038e")))])), Blk(Tid(910, "%0000038e"), - Attrs([Attr("address","0x764")]), Phis([]), Defs([Def(Tid(913, "%00000391"), - Attrs([Attr("address","0x764"), Attr("insn","adrp x2, #65536")]), - Var("R2",Imm(64)), Int(65536,64)), Def(Tid(920, "%00000398"), - Attrs([Attr("address","0x768"), Attr("insn","ldr x2, [x2, #0xfe0]")]), - Var("R2",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R2",Imm(64)),Int(4064,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(925, "%0000039d"), Attrs([Attr("address","0x76C"), -Attr("insn","cbz x2, #0xc")]), EQ(Var("R2",Imm(64)),Int(0,64)), -Direct(Tid(634, "%0000027a"))), Goto(Tid(1_521, "%000005f1"), Attrs([]), - Int(1,1), Direct(Tid(929, "%000003a1")))])), Blk(Tid(634, "%0000027a"), - Attrs([Attr("address","0x778")]), Phis([]), Defs([]), -Jmps([Call(Tid(642, "%00000282"), Attrs([Attr("address","0x778"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))])), -Blk(Tid(929, "%000003a1"), Attrs([Attr("address","0x770")]), Phis([]), -Defs([Def(Tid(933, "%000003a5"), Attrs([Attr("address","0x770"), -Attr("insn","mov x16, x2")]), Var("R16",Imm(64)), Var("R2",Imm(64)))]), -Jmps([Call(Tid(938, "%000003aa"), Attrs([Attr("address","0x774"), -Attr("insn","br x16")]), Int(1,1), -(Indirect(Var("R16",Imm(64))),))]))]))]))) \ No newline at end of file diff --git a/src/test/correct/basicfree/clang/basicfree.bir b/src/test/correct/basicfree/clang/basicfree.bir deleted file mode 100644 index cda657f7d..000000000 --- a/src/test/correct/basicfree/clang/basicfree.bir +++ /dev/null @@ -1,265 +0,0 @@ -000005f2: program -000005bb: sub __cxa_finalize(__cxa_finalize_result) -000005f3: __cxa_finalize_result :: out u32 = low:32[R0] - -0000038a: -000004a2: R16 := 0x11000 -000004a9: R17 := mem[R16 + 8, el]:u64 -000004af: R16 := R16 + 8 -000004b4: call R17 with noreturn - -000005bc: sub __do_global_dtors_aux(__do_global_dtors_aux_result) -000005f4: __do_global_dtors_aux_result :: out u32 = low:32[R0] - -00000286: -0000028a: #3 := R31 - 0x20 -00000290: mem := mem with [#3, el]:u64 <- R29 -00000296: mem := mem with [#3 + 8, el]:u64 <- R30 -0000029a: R31 := #3 -000002a0: R29 := R31 -000002a8: mem := mem with [R31 + 0x10, el]:u64 <- R19 -000002ad: R19 := 0x11000 -000002b4: R0 := pad:64[mem[R19 + 0x40]] -000002bb: when 31:0[R0] <> 0 goto %000002b9 -000005e8: goto %00000353 - -00000353: -00000356: R0 := 0x10000 -0000035d: R0 := mem[R0 + 0xFC8, el]:u64 -00000363: when R0 = 0 goto %00000361 -000005e9: goto %0000037a - -0000037a: -0000037d: R0 := 0x11000 -00000384: R0 := mem[R0 + 0x38, el]:u64 -00000389: R30 := 0x7B0 -0000038c: call @__cxa_finalize with return %00000361 - -00000361: -00000369: R30 := 0x7B4 -0000036b: call @deregister_tm_clones with return %0000036d - -0000036d: -00000370: R0 := 1 -00000378: mem := mem with [R19 + 0x40] <- 7:0[R0] -000005ea: goto %000002b9 - -000002b9: -000002c3: R19 := mem[R31 + 0x10, el]:u64 -000002ca: R29 := mem[R31, el]:u64 -000002cf: R30 := mem[R31 + 8, el]:u64 -000002d3: R31 := R31 + 0x20 -000002d8: call R30 with noreturn - -000005c0: sub __libc_start_main(__libc_start_main_main, __libc_start_main_arg2, __libc_start_main_arg3, __libc_start_main_auxv, __libc_start_main_result) -000005f5: __libc_start_main_main :: in u64 = R0 -000005f6: __libc_start_main_arg2 :: in u32 = low:32[R1] -000005f7: __libc_start_main_arg3 :: in out u64 = R2 -000005f8: __libc_start_main_auxv :: in out u64 = R3 -000005f9: __libc_start_main_result :: out u32 = low:32[R0] - -000001df: -0000048c: R16 := 0x11000 -00000493: R17 := mem[R16, el]:u64 -00000499: R16 := R16 -0000049e: call R17 with noreturn - -000005c1: sub _fini(_fini_result) -000005fa: _fini_result :: out u32 = low:32[R0] - -0000001f: -00000025: #0 := R31 - 0x10 -0000002b: mem := mem with [#0, el]:u64 <- R29 -00000031: mem := mem with [#0 + 8, el]:u64 <- R30 -00000035: R31 := #0 -0000003b: R29 := R31 -00000042: R29 := mem[R31, el]:u64 -00000047: R30 := mem[R31 + 8, el]:u64 -0000004b: R31 := R31 + 0x10 -00000050: call R30 with noreturn - -000005c2: sub _init(_init_result) -000005fb: _init_result :: out u32 = low:32[R0] - -00000528: -0000052e: #7 := R31 - 0x10 -00000534: mem := mem with [#7, el]:u64 <- R29 -0000053a: mem := mem with [#7 + 8, el]:u64 <- R30 -0000053e: R31 := #7 -00000544: R29 := R31 -00000549: R30 := 0x600 -0000054b: call @call_weak_fn with return %0000054d - -0000054d: -00000552: R29 := mem[R31, el]:u64 -00000557: R30 := mem[R31 + 8, el]:u64 -0000055b: R31 := R31 + 0x10 -00000560: call R30 with noreturn - -000005c3: sub _start(_start_result) -000005fc: _start_result :: out u32 = low:32[R0] - -000001a0: -000001a5: R29 := 0 -000001aa: R30 := 0 -000001b0: R5 := R0 -000001b7: R1 := mem[R31, el]:u64 -000001bd: R2 := R31 + 8 -000001c3: R6 := R31 -000001c8: R0 := 0x10000 -000001cf: R0 := mem[R0 + 0xFD8, el]:u64 -000001d4: R3 := 0 -000001d9: R4 := 0 -000001de: R30 := 0x6F0 -000001e1: call @__libc_start_main with return %000001e3 - -000001e3: -000001e6: R30 := 0x6F4 -000001e9: call @abort with return %000005eb - -000005eb: -000005ec: call @call_weak_fn with noreturn - -000005c6: sub abort() - - -000001e7: -000004e4: R16 := 0x11000 -000004eb: R17 := mem[R16 + 0x20, el]:u64 -000004f1: R16 := R16 + 0x20 -000004f6: call R17 with noreturn - -000005c7: sub call_weak_fn(call_weak_fn_result) -000005fd: call_weak_fn_result :: out u32 = low:32[R0] - -000001eb: -000001ee: R0 := 0x10000 -000001f5: R0 := mem[R0 + 0xFD0, el]:u64 -000001fb: when R0 = 0 goto %000001f9 -000005ed: goto %000003ca - -000001f9: -00000201: call R30 with noreturn - -000003ca: -000003cd: goto @__gmon_start__ - -000003cb: -000004ce: R16 := 0x11000 -000004d5: R17 := mem[R16 + 0x18, el]:u64 -000004db: R16 := R16 + 0x18 -000004e0: call R17 with noreturn - -000005c9: sub deregister_tm_clones(deregister_tm_clones_result) -000005fe: deregister_tm_clones_result :: out u32 = low:32[R0] - -00000207: -0000020a: R0 := 0x11000 -00000210: R0 := R0 + 0x40 -00000215: R1 := 0x11000 -0000021b: R1 := R1 + 0x40 -00000221: #1 := ~R0 -00000226: #2 := R1 + ~R0 -0000022c: VF := extend:65[#2 + 1] <> extend:65[R1] + extend:65[#1] + 1 -00000232: CF := pad:65[#2 + 1] <> pad:65[R1] + pad:65[#1] + 1 -00000236: ZF := #2 + 1 = 0 -0000023a: NF := 63:63[#2 + 1] -00000240: when ZF goto %0000023e -000005ee: goto %000003ac - -000003ac: -000003af: R1 := 0x10000 -000003b6: R1 := mem[R1 + 0xFC0, el]:u64 -000003bb: when R1 = 0 goto %0000023e -000005ef: goto %000003bf - -0000023e: -00000246: call R30 with noreturn - -000003bf: -000003c3: R16 := R1 -000003c8: call R16 with noreturn - -000005cc: sub frame_dummy(frame_dummy_result) -000005ff: frame_dummy_result :: out u32 = low:32[R0] - -000002de: -000002e0: call @register_tm_clones with noreturn - -000005cd: sub free(free_ptr) -00000600: free_ptr :: in out u64 = R0 - -00000334: -000004fa: R16 := 0x11000 -00000501: R17 := mem[R16 + 0x28, el]:u64 -00000507: R16 := R16 + 0x28 -0000050c: call R17 with noreturn - -000005ce: sub main(main_argc, main_argv, main_result) -00000601: main_argc :: in u32 = low:32[R0] -00000602: main_argv :: in out u64 = R1 -00000603: main_result :: out u32 = low:32[R0] - -000002e2: -000002e6: R31 := R31 - 0x20 -000002ec: #4 := R31 + 0x10 -000002f2: mem := mem with [#4, el]:u64 <- R29 -000002f8: mem := mem with [#4 + 8, el]:u64 <- R30 -000002fe: R29 := R31 + 0x10 -00000303: R0 := 4 -00000308: R30 := 0x7E8 -0000030b: call @malloc with return %0000030d - -0000030d: -00000313: mem := mem with [R31 + 8, el]:u64 <- R0 -0000031a: R9 := mem[R31 + 8, el]:u64 -0000031f: R8 := 1 -00000327: mem := mem with [R9, el]:u32 <- 31:0[R8] -0000032e: R0 := mem[R31 + 8, el]:u64 -00000333: R30 := 0x800 -00000336: call @free with return %00000338 - -00000338: -0000033c: #5 := R31 + 0x10 -00000341: R29 := mem[#5, el]:u64 -00000346: R30 := mem[#5 + 8, el]:u64 -0000034c: R31 := R31 + 0x20 -00000351: call R30 with noreturn - -000005cf: sub malloc(malloc_size, malloc_result) -00000604: malloc_size :: in u64 = R0 -00000605: malloc_result :: out u64 = R0 - -00000309: -000004b8: R16 := 0x11000 -000004bf: R17 := mem[R16 + 0x10, el]:u64 -000004c5: R16 := R16 + 0x10 -000004ca: call R17 with noreturn - -000005d0: sub register_tm_clones(register_tm_clones_result) -00000606: register_tm_clones_result :: out u32 = low:32[R0] - -00000248: -0000024b: R0 := 0x11000 -00000251: R0 := R0 + 0x40 -00000256: R1 := 0x11000 -0000025c: R1 := R1 + 0x40 -00000263: R1 := R1 + ~R0 + 1 -00000269: R2 := 0.63:63[R1] -00000270: R1 := R2 + (R1 ~>> 3) -00000276: R1 := extend:64[63:1[R1]] -0000027c: when R1 = 0 goto %0000027a -000005f0: goto %0000038e - -0000038e: -00000391: R2 := 0x10000 -00000398: R2 := mem[R2 + 0xFE0, el]:u64 -0000039d: when R2 = 0 goto %0000027a -000005f1: goto %000003a1 - -0000027a: -00000282: call R30 with noreturn - -000003a1: -000003a5: R16 := R2 -000003aa: call R16 with noreturn diff --git a/src/test/correct/basicfree/clang/basicfree.expected b/src/test/correct/basicfree/clang/basicfree.expected index 6589d7a50..cfbb65779 100644 --- a/src/test/correct/basicfree/clang/basicfree.expected +++ b/src/test/correct/basicfree/clang/basicfree.expected @@ -1,42 +1,8 @@ -var {:extern} Gamma_R0: bool; -var {:extern} Gamma_R16: bool; -var {:extern} Gamma_R17: bool; -var {:extern} Gamma_R29: bool; -var {:extern} Gamma_R30: bool; -var {:extern} Gamma_R31: bool; -var {:extern} Gamma_R8: bool; -var {:extern} Gamma_R9: bool; var {:extern} Gamma_mem: [bv64]bool; -var {:extern} Gamma_stack: [bv64]bool; -var {:extern} R0: bv64; -var {:extern} R16: bv64; -var {:extern} R17: bv64; -var {:extern} R29: bv64; -var {:extern} R30: bv64; -var {:extern} R31: bv64; -var {:extern} R8: bv64; -var {:extern} R9: bv64; var {:extern} mem: [bv64]bv8; -var {:extern} stack: [bv64]bv8; const {:extern} $_IO_stdin_used_addr: bv64; -axiom ($_IO_stdin_used_addr == 2080bv64); -function {:extern} L(mem$in: [bv64]bv8, index: bv64) returns (bool) { - false -} - +axiom ($_IO_stdin_used_addr == 2220bv64); function {:extern} {:bvbuiltin "bvadd"} bvadd64(bv64, bv64) returns (bv64); -function {:extern} gamma_load64(gammaMap: [bv64]bool, index: bv64) returns (bool) { - (gammaMap[bvadd64(index, 7bv64)] && (gammaMap[bvadd64(index, 6bv64)] && (gammaMap[bvadd64(index, 5bv64)] && (gammaMap[bvadd64(index, 4bv64)] && (gammaMap[bvadd64(index, 3bv64)] && (gammaMap[bvadd64(index, 2bv64)] && (gammaMap[bvadd64(index, 1bv64)] && gammaMap[index]))))))) -} - -function {:extern} gamma_store32(gammaMap: [bv64]bool, index: bv64, value: bool) returns ([bv64]bool) { - gammaMap[index := value][bvadd64(index, 1bv64) := value][bvadd64(index, 2bv64) := value][bvadd64(index, 3bv64) := value] -} - -function {:extern} gamma_store64(gammaMap: [bv64]bool, index: bv64, value: bool) returns ([bv64]bool) { - gammaMap[index := value][bvadd64(index, 1bv64) := value][bvadd64(index, 2bv64) := value][bvadd64(index, 3bv64) := value][bvadd64(index, 4bv64) := value][bvadd64(index, 5bv64) := value][bvadd64(index, 6bv64) := value][bvadd64(index, 7bv64) := value] -} - function {:extern} memory_load32_le(memory: [bv64]bv8, index: bv64) returns (bv32) { (memory[bvadd64(index, 3bv64)] ++ (memory[bvadd64(index, 2bv64)] ++ (memory[bvadd64(index, 1bv64)] ++ memory[index]))) } @@ -45,23 +11,15 @@ function {:extern} memory_load64_le(memory: [bv64]bv8, index: bv64) returns (bv6 (memory[bvadd64(index, 7bv64)] ++ (memory[bvadd64(index, 6bv64)] ++ (memory[bvadd64(index, 5bv64)] ++ (memory[bvadd64(index, 4bv64)] ++ (memory[bvadd64(index, 3bv64)] ++ (memory[bvadd64(index, 2bv64)] ++ (memory[bvadd64(index, 1bv64)] ++ memory[index]))))))) } -function {:extern} memory_store32_le(memory: [bv64]bv8, index: bv64, value: bv32) returns ([bv64]bv8) { - memory[index := value[8:0]][bvadd64(index, 1bv64) := value[16:8]][bvadd64(index, 2bv64) := value[24:16]][bvadd64(index, 3bv64) := value[32:24]] -} - -function {:extern} memory_store64_le(memory: [bv64]bv8, index: bv64, value: bv64) returns ([bv64]bv8) { - memory[index := value[8:0]][bvadd64(index, 1bv64) := value[16:8]][bvadd64(index, 2bv64) := value[24:16]][bvadd64(index, 3bv64) := value[32:24]][bvadd64(index, 4bv64) := value[40:32]][bvadd64(index, 5bv64) := value[48:40]][bvadd64(index, 6bv64) := value[56:48]][bvadd64(index, 7bv64) := value[64:56]] -} - procedure {:extern} rely(); modifies Gamma_mem, mem; ensures (Gamma_mem == old(Gamma_mem)); ensures (mem == old(mem)); - free ensures (memory_load32_le(mem, 2080bv64) == 131073bv32); - free ensures (memory_load64_le(mem, 69064bv64) == 2000bv64); - free ensures (memory_load64_le(mem, 69072bv64) == 1920bv64); - free ensures (memory_load64_le(mem, 69592bv64) == 2004bv64); - free ensures (memory_load64_le(mem, 69688bv64) == 69688bv64); + free ensures (memory_load32_le(mem, 2220bv64) == 131073bv32); + free ensures (memory_load64_le(mem, 130440bv64) == 2192bv64); + free ensures (memory_load64_le(mem, 130448bv64) == 2112bv64); + free ensures (memory_load64_le(mem, 131056bv64) == 2196bv64); + free ensures (memory_load64_le(mem, 131080bv64) == 131080bv64); procedure {:extern} rely_transitive(); modifies Gamma_mem, mem; @@ -79,105 +37,27 @@ procedure {:extern} rely_reflexive(); procedure {:extern} guarantee_reflexive(); modifies Gamma_mem, mem; -procedure #free_1664(); - modifies Gamma_R16, Gamma_R17, R16, R17; - free requires (memory_load32_le(mem, 2080bv64) == 131073bv32); - free requires (memory_load64_le(mem, 69064bv64) == 2000bv64); - free requires (memory_load64_le(mem, 69072bv64) == 1920bv64); - free requires (memory_load64_le(mem, 69592bv64) == 2004bv64); - free requires (memory_load64_le(mem, 69688bv64) == 69688bv64); - free ensures (memory_load32_le(mem, 2080bv64) == 131073bv32); - free ensures (memory_load64_le(mem, 69064bv64) == 2000bv64); - free ensures (memory_load64_le(mem, 69072bv64) == 1920bv64); - free ensures (memory_load64_le(mem, 69592bv64) == 2004bv64); - free ensures (memory_load64_le(mem, 69688bv64) == 69688bv64); - -procedure main_2004(); - modifies Gamma_R0, Gamma_R16, Gamma_R17, Gamma_R29, Gamma_R30, Gamma_R31, Gamma_R8, Gamma_R9, Gamma_mem, Gamma_stack, R0, R16, R17, R29, R30, R31, R8, R9, mem, stack; - free requires (memory_load64_le(mem, 69680bv64) == 0bv64); - free requires (memory_load64_le(mem, 69688bv64) == 69688bv64); - free requires (memory_load32_le(mem, 2080bv64) == 131073bv32); - free requires (memory_load64_le(mem, 69064bv64) == 2000bv64); - free requires (memory_load64_le(mem, 69072bv64) == 1920bv64); - free requires (memory_load64_le(mem, 69592bv64) == 2004bv64); - free requires (memory_load64_le(mem, 69688bv64) == 69688bv64); - free ensures (Gamma_R29 == old(Gamma_R29)); - free ensures (Gamma_R31 == old(Gamma_R31)); - free ensures (R29 == old(R29)); - free ensures (R31 == old(R31)); - free ensures (memory_load32_le(mem, 2080bv64) == 131073bv32); - free ensures (memory_load64_le(mem, 69064bv64) == 2000bv64); - free ensures (memory_load64_le(mem, 69072bv64) == 1920bv64); - free ensures (memory_load64_le(mem, 69592bv64) == 2004bv64); - free ensures (memory_load64_le(mem, 69688bv64) == 69688bv64); - -implementation main_2004() +procedure main(); + free requires (memory_load64_le(mem, 131072bv64) == 0bv64); + free requires (memory_load64_le(mem, 131080bv64) == 131080bv64); + free requires (memory_load32_le(mem, 2220bv64) == 131073bv32); + free requires (memory_load64_le(mem, 130440bv64) == 2192bv64); + free requires (memory_load64_le(mem, 130448bv64) == 2112bv64); + free requires (memory_load64_le(mem, 131056bv64) == 2196bv64); + free requires (memory_load64_le(mem, 131080bv64) == 131080bv64); + free ensures (memory_load32_le(mem, 2220bv64) == 131073bv32); + free ensures (memory_load64_le(mem, 130440bv64) == 2192bv64); + free ensures (memory_load64_le(mem, 130448bv64) == 2112bv64); + free ensures (memory_load64_le(mem, 131056bv64) == 2196bv64); + free ensures (memory_load64_le(mem, 131080bv64) == 131080bv64); + +implementation main() { - var #4: bv64; - var #5: bv64; - var Gamma_#4: bool; - var Gamma_#5: bool; - var Gamma_load19: bool; - var Gamma_load20: bool; - var Gamma_load21: bool; - var Gamma_load22: bool; - var load19: bv64; - var load20: bv64; - var load21: bv64; - var load22: bv64; lmain: assume {:captureState "lmain"} true; - R31, Gamma_R31 := bvadd64(R31, 18446744073709551584bv64), Gamma_R31; - #4, Gamma_#4 := bvadd64(R31, 16bv64), Gamma_R31; - stack, Gamma_stack := memory_store64_le(stack, #4, R29), gamma_store64(Gamma_stack, #4, Gamma_R29); - assume {:captureState "%000002f2"} true; - stack, Gamma_stack := memory_store64_le(stack, bvadd64(#4, 8bv64), R30), gamma_store64(Gamma_stack, bvadd64(#4, 8bv64), Gamma_R30); - assume {:captureState "%000002f8"} true; - R29, Gamma_R29 := bvadd64(R31, 16bv64), Gamma_R31; - R0, Gamma_R0 := 4bv64, true; - R30, Gamma_R30 := 2024bv64, true; - call malloc_1616(); - goto l0000030d; - l0000030d: - assume {:captureState "l0000030d"} true; - stack, Gamma_stack := memory_store64_le(stack, bvadd64(R31, 8bv64), R0), gamma_store64(Gamma_stack, bvadd64(R31, 8bv64), Gamma_R0); - assume {:captureState "%00000313"} true; - load19, Gamma_load19 := memory_load64_le(stack, bvadd64(R31, 8bv64)), gamma_load64(Gamma_stack, bvadd64(R31, 8bv64)); - R9, Gamma_R9 := load19, Gamma_load19; - R8, Gamma_R8 := 1bv64, true; - call rely(); - assert (L(mem, R9) ==> Gamma_R8); - mem, Gamma_mem := memory_store32_le(mem, R9, R8[32:0]), gamma_store32(Gamma_mem, R9, Gamma_R8); - assume {:captureState "%00000327"} true; - load20, Gamma_load20 := memory_load64_le(stack, bvadd64(R31, 8bv64)), gamma_load64(Gamma_stack, bvadd64(R31, 8bv64)); - R0, Gamma_R0 := load20, Gamma_load20; - R30, Gamma_R30 := 2048bv64, true; - call #free_1664(); - goto l00000338; - l00000338: - assume {:captureState "l00000338"} true; - #5, Gamma_#5 := bvadd64(R31, 16bv64), Gamma_R31; - load21, Gamma_load21 := memory_load64_le(stack, #5), gamma_load64(Gamma_stack, #5); - R29, Gamma_R29 := load21, Gamma_load21; - load22, Gamma_load22 := memory_load64_le(stack, bvadd64(#5, 8bv64)), gamma_load64(Gamma_stack, bvadd64(#5, 8bv64)); - R30, Gamma_R30 := load22, Gamma_load22; - R31, Gamma_R31 := bvadd64(R31, 32bv64), Gamma_R31; - goto main_2004_basil_return; - main_2004_basil_return: - assume {:captureState "main_2004_basil_return"} true; + goto main_basil_return; + main_basil_return: + assume {:captureState "main_basil_return"} true; return; } -procedure malloc_1616(); - modifies Gamma_R16, Gamma_R17, R16, R17; - free requires (memory_load32_le(mem, 2080bv64) == 131073bv32); - free requires (memory_load64_le(mem, 69064bv64) == 2000bv64); - free requires (memory_load64_le(mem, 69072bv64) == 1920bv64); - free requires (memory_load64_le(mem, 69592bv64) == 2004bv64); - free requires (memory_load64_le(mem, 69688bv64) == 69688bv64); - free ensures (memory_load32_le(mem, 2080bv64) == 131073bv32); - free ensures (memory_load64_le(mem, 69064bv64) == 2000bv64); - free ensures (memory_load64_le(mem, 69072bv64) == 1920bv64); - free ensures (memory_load64_le(mem, 69592bv64) == 2004bv64); - free ensures (memory_load64_le(mem, 69688bv64) == 69688bv64); - diff --git a/src/test/correct/basicfree/clang/basicfree.gts b/src/test/correct/basicfree/clang/basicfree.gts deleted file mode 100644 index 6438c886f..000000000 Binary files a/src/test/correct/basicfree/clang/basicfree.gts and /dev/null differ diff --git a/src/test/correct/basicfree/clang/basicfree.md5sum b/src/test/correct/basicfree/clang/basicfree.md5sum new file mode 100644 index 000000000..58b1187ab --- /dev/null +++ b/src/test/correct/basicfree/clang/basicfree.md5sum @@ -0,0 +1,5 @@ +0fc95e00d0f086efe24f66c1a3c2297d correct/basicfree/clang/a.out +87e13b3705640f7c13be45c10e333b56 correct/basicfree/clang/basicfree.adt +f6e4b1b01080caa61c93a9d4483620f9 correct/basicfree/clang/basicfree.bir +5700751e3e083f728612aa4f38950b12 correct/basicfree/clang/basicfree.relf +9edd739a48b0ffd65256f43597dcb442 correct/basicfree/clang/basicfree.gts diff --git a/src/test/correct/basicfree/clang/basicfree.relf b/src/test/correct/basicfree/clang/basicfree.relf deleted file mode 100644 index 293d02234..000000000 --- a/src/test/correct/basicfree/clang/basicfree.relf +++ /dev/null @@ -1,127 +0,0 @@ - -Relocation section '.rela.dyn' at offset 0x4a0 contains 8 entries: - Offset Info Type Symbol's Value Symbol's Name + Addend -0000000000010dc8 0000000000000403 R_AARCH64_RELATIVE 7d0 -0000000000010dd0 0000000000000403 R_AARCH64_RELATIVE 780 -0000000000010fd8 0000000000000403 R_AARCH64_RELATIVE 7d4 -0000000000011038 0000000000000403 R_AARCH64_RELATIVE 11038 -0000000000010fc0 0000000400000401 R_AARCH64_GLOB_DAT 0000000000000000 _ITM_deregisterTMCloneTable + 0 -0000000000010fc8 0000000500000401 R_AARCH64_GLOB_DAT 0000000000000000 __cxa_finalize@GLIBC_2.17 + 0 -0000000000010fd0 0000000700000401 R_AARCH64_GLOB_DAT 0000000000000000 __gmon_start__ + 0 -0000000000010fe0 0000000a00000401 R_AARCH64_GLOB_DAT 0000000000000000 _ITM_registerTMCloneTable + 0 - -Relocation section '.rela.plt' at offset 0x560 contains 6 entries: - Offset Info Type Symbol's Value Symbol's Name + Addend -0000000000011000 0000000300000402 R_AARCH64_JUMP_SLOT 0000000000000000 __libc_start_main@GLIBC_2.34 + 0 -0000000000011008 0000000500000402 R_AARCH64_JUMP_SLOT 0000000000000000 __cxa_finalize@GLIBC_2.17 + 0 -0000000000011010 0000000600000402 R_AARCH64_JUMP_SLOT 0000000000000000 malloc@GLIBC_2.17 + 0 -0000000000011018 0000000700000402 R_AARCH64_JUMP_SLOT 0000000000000000 __gmon_start__ + 0 -0000000000011020 0000000800000402 R_AARCH64_JUMP_SLOT 0000000000000000 abort@GLIBC_2.17 + 0 -0000000000011028 0000000900000402 R_AARCH64_JUMP_SLOT 0000000000000000 free@GLIBC_2.17 + 0 - -Symbol table '.dynsym' contains 11 entries: - Num: Value Size Type Bind Vis Ndx Name - 0: 0000000000000000 0 NOTYPE LOCAL DEFAULT UND - 1: 00000000000005f0 0 SECTION LOCAL DEFAULT 11 .init - 2: 0000000000011030 0 SECTION LOCAL DEFAULT 23 .data - 3: 0000000000000000 0 FUNC GLOBAL DEFAULT UND __libc_start_main@GLIBC_2.34 (2) - 4: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_deregisterTMCloneTable - 5: 0000000000000000 0 FUNC WEAK DEFAULT UND __cxa_finalize@GLIBC_2.17 (3) - 6: 0000000000000000 0 FUNC GLOBAL DEFAULT UND malloc@GLIBC_2.17 (3) - 7: 0000000000000000 0 NOTYPE WEAK DEFAULT UND __gmon_start__ - 8: 0000000000000000 0 FUNC GLOBAL DEFAULT UND abort@GLIBC_2.17 (3) - 9: 0000000000000000 0 FUNC GLOBAL DEFAULT UND free@GLIBC_2.17 (3) - 10: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_registerTMCloneTable - -Symbol table '.symtab' contains 90 entries: - Num: Value Size Type Bind Vis Ndx Name - 0: 0000000000000000 0 NOTYPE LOCAL DEFAULT UND - 1: 0000000000000238 0 SECTION LOCAL DEFAULT 1 .interp - 2: 0000000000000254 0 SECTION LOCAL DEFAULT 2 .note.gnu.build-id - 3: 0000000000000278 0 SECTION LOCAL DEFAULT 3 .note.ABI-tag - 4: 0000000000000298 0 SECTION LOCAL DEFAULT 4 .gnu.hash - 5: 00000000000002b8 0 SECTION LOCAL DEFAULT 5 .dynsym - 6: 00000000000003c0 0 SECTION LOCAL DEFAULT 6 .dynstr - 7: 000000000000045a 0 SECTION LOCAL DEFAULT 7 .gnu.version - 8: 0000000000000470 0 SECTION LOCAL DEFAULT 8 .gnu.version_r - 9: 00000000000004a0 0 SECTION LOCAL DEFAULT 9 .rela.dyn - 10: 0000000000000560 0 SECTION LOCAL DEFAULT 10 .rela.plt - 11: 00000000000005f0 0 SECTION LOCAL DEFAULT 11 .init - 12: 0000000000000610 0 SECTION LOCAL DEFAULT 12 .plt - 13: 00000000000006c0 0 SECTION LOCAL DEFAULT 13 .text - 14: 000000000000080c 0 SECTION LOCAL DEFAULT 14 .fini - 15: 0000000000000820 0 SECTION LOCAL DEFAULT 15 .rodata - 16: 0000000000000824 0 SECTION LOCAL DEFAULT 16 .eh_frame_hdr - 17: 0000000000000860 0 SECTION LOCAL DEFAULT 17 .eh_frame - 18: 0000000000010dc8 0 SECTION LOCAL DEFAULT 18 .init_array - 19: 0000000000010dd0 0 SECTION LOCAL DEFAULT 19 .fini_array - 20: 0000000000010dd8 0 SECTION LOCAL DEFAULT 20 .dynamic - 21: 0000000000010fb8 0 SECTION LOCAL DEFAULT 21 .got - 22: 0000000000010fe8 0 SECTION LOCAL DEFAULT 22 .got.plt - 23: 0000000000011030 0 SECTION LOCAL DEFAULT 23 .data - 24: 0000000000011040 0 SECTION LOCAL DEFAULT 24 .bss - 25: 0000000000000000 0 SECTION LOCAL DEFAULT 25 .comment - 26: 0000000000000000 0 FILE LOCAL DEFAULT ABS Scrt1.o - 27: 0000000000000278 0 NOTYPE LOCAL DEFAULT 3 $d - 28: 0000000000000278 32 OBJECT LOCAL DEFAULT 3 __abi_tag - 29: 00000000000006c0 0 NOTYPE LOCAL DEFAULT 13 $x - 30: 0000000000000874 0 NOTYPE LOCAL DEFAULT 17 $d - 31: 0000000000000820 0 NOTYPE LOCAL DEFAULT 15 $d - 32: 0000000000000000 0 FILE LOCAL DEFAULT ABS crti.o - 33: 00000000000006f4 0 NOTYPE LOCAL DEFAULT 13 $x - 34: 00000000000006f4 20 FUNC LOCAL DEFAULT 13 call_weak_fn - 35: 00000000000005f0 0 NOTYPE LOCAL DEFAULT 11 $x - 36: 000000000000080c 0 NOTYPE LOCAL DEFAULT 14 $x - 37: 0000000000000000 0 FILE LOCAL DEFAULT ABS crtn.o - 38: 0000000000000600 0 NOTYPE LOCAL DEFAULT 11 $x - 39: 0000000000000818 0 NOTYPE LOCAL DEFAULT 14 $x - 40: 0000000000000000 0 FILE LOCAL DEFAULT ABS crtstuff.c - 41: 0000000000000710 0 NOTYPE LOCAL DEFAULT 13 $x - 42: 0000000000000710 0 FUNC LOCAL DEFAULT 13 deregister_tm_clones - 43: 0000000000000740 0 FUNC LOCAL DEFAULT 13 register_tm_clones - 44: 0000000000011038 0 NOTYPE LOCAL DEFAULT 23 $d - 45: 0000000000000780 0 FUNC LOCAL DEFAULT 13 __do_global_dtors_aux - 46: 0000000000011040 1 OBJECT LOCAL DEFAULT 24 completed.0 - 47: 0000000000010dd0 0 NOTYPE LOCAL DEFAULT 19 $d - 48: 0000000000010dd0 0 OBJECT LOCAL DEFAULT 19 __do_global_dtors_aux_fini_array_entry - 49: 00000000000007d0 0 FUNC LOCAL DEFAULT 13 frame_dummy - 50: 0000000000010dc8 0 NOTYPE LOCAL DEFAULT 18 $d - 51: 0000000000010dc8 0 OBJECT LOCAL DEFAULT 18 __frame_dummy_init_array_entry - 52: 0000000000000888 0 NOTYPE LOCAL DEFAULT 17 $d - 53: 0000000000011040 0 NOTYPE LOCAL DEFAULT 24 $d - 54: 0000000000000000 0 FILE LOCAL DEFAULT ABS basicfree.c - 55: 00000000000007d4 0 NOTYPE LOCAL DEFAULT 13 $x.0 - 56: 000000000000002a 0 NOTYPE LOCAL DEFAULT 25 $d.1 - 57: 00000000000008e8 0 NOTYPE LOCAL DEFAULT 17 $d.2 - 58: 0000000000000000 0 FILE LOCAL DEFAULT ABS crtstuff.c - 59: 0000000000000924 0 NOTYPE LOCAL DEFAULT 17 $d - 60: 0000000000000924 0 OBJECT LOCAL DEFAULT 17 __FRAME_END__ - 61: 0000000000000000 0 FILE LOCAL DEFAULT ABS - 62: 0000000000010dd8 0 OBJECT LOCAL DEFAULT ABS _DYNAMIC - 63: 0000000000000824 0 NOTYPE LOCAL DEFAULT 16 __GNU_EH_FRAME_HDR - 64: 0000000000010fb8 0 OBJECT LOCAL DEFAULT ABS _GLOBAL_OFFSET_TABLE_ - 65: 0000000000000610 0 NOTYPE LOCAL DEFAULT 12 $x - 66: 0000000000000000 0 FUNC GLOBAL DEFAULT UND __libc_start_main@GLIBC_2.34 - 67: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_deregisterTMCloneTable - 68: 0000000000011030 0 NOTYPE WEAK DEFAULT 23 data_start - 69: 0000000000011040 0 NOTYPE GLOBAL DEFAULT 24 __bss_start__ - 70: 0000000000000000 0 FUNC WEAK DEFAULT UND __cxa_finalize@GLIBC_2.17 - 71: 0000000000011048 0 NOTYPE GLOBAL DEFAULT 24 _bss_end__ - 72: 0000000000011040 0 NOTYPE GLOBAL DEFAULT 23 _edata - 73: 000000000000080c 0 FUNC GLOBAL HIDDEN 14 _fini - 74: 0000000000011048 0 NOTYPE GLOBAL DEFAULT 24 __bss_end__ - 75: 0000000000000000 0 FUNC GLOBAL DEFAULT UND malloc@GLIBC_2.17 - 76: 0000000000011030 0 NOTYPE GLOBAL DEFAULT 23 __data_start - 77: 0000000000000000 0 NOTYPE WEAK DEFAULT UND __gmon_start__ - 78: 0000000000011038 0 OBJECT GLOBAL HIDDEN 23 __dso_handle - 79: 0000000000000000 0 FUNC GLOBAL DEFAULT UND abort@GLIBC_2.17 - 80: 0000000000000820 4 OBJECT GLOBAL DEFAULT 15 _IO_stdin_used - 81: 0000000000011048 0 NOTYPE GLOBAL DEFAULT 24 _end - 82: 0000000000000000 0 FUNC GLOBAL DEFAULT UND free@GLIBC_2.17 - 83: 00000000000006c0 52 FUNC GLOBAL DEFAULT 13 _start - 84: 0000000000011048 0 NOTYPE GLOBAL DEFAULT 24 __end__ - 85: 0000000000011040 0 NOTYPE GLOBAL DEFAULT 24 __bss_start - 86: 00000000000007d4 56 FUNC GLOBAL DEFAULT 13 main - 87: 0000000000011040 0 OBJECT GLOBAL HIDDEN 23 __TMC_END__ - 88: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_registerTMCloneTable - 89: 00000000000005f0 0 FUNC GLOBAL HIDDEN 11 _init diff --git a/src/test/correct/basicfree/clang/basicfree_gtirb.expected b/src/test/correct/basicfree/clang/basicfree_gtirb.expected index 00035a797..a315dff87 100644 --- a/src/test/correct/basicfree/clang/basicfree_gtirb.expected +++ b/src/test/correct/basicfree/clang/basicfree_gtirb.expected @@ -1,42 +1,8 @@ -var {:extern} Gamma_R0: bool; -var {:extern} Gamma_R16: bool; -var {:extern} Gamma_R17: bool; -var {:extern} Gamma_R29: bool; -var {:extern} Gamma_R30: bool; -var {:extern} Gamma_R31: bool; -var {:extern} Gamma_R8: bool; -var {:extern} Gamma_R9: bool; var {:extern} Gamma_mem: [bv64]bool; -var {:extern} Gamma_stack: [bv64]bool; -var {:extern} R0: bv64; -var {:extern} R16: bv64; -var {:extern} R17: bv64; -var {:extern} R29: bv64; -var {:extern} R30: bv64; -var {:extern} R31: bv64; -var {:extern} R8: bv64; -var {:extern} R9: bv64; var {:extern} mem: [bv64]bv8; -var {:extern} stack: [bv64]bv8; const {:extern} $_IO_stdin_used_addr: bv64; -axiom ($_IO_stdin_used_addr == 2080bv64); -function {:extern} L(mem$in: [bv64]bv8, index: bv64) returns (bool) { - false -} - +axiom ($_IO_stdin_used_addr == 2220bv64); function {:extern} {:bvbuiltin "bvadd"} bvadd64(bv64, bv64) returns (bv64); -function {:extern} gamma_load64(gammaMap: [bv64]bool, index: bv64) returns (bool) { - (gammaMap[bvadd64(index, 7bv64)] && (gammaMap[bvadd64(index, 6bv64)] && (gammaMap[bvadd64(index, 5bv64)] && (gammaMap[bvadd64(index, 4bv64)] && (gammaMap[bvadd64(index, 3bv64)] && (gammaMap[bvadd64(index, 2bv64)] && (gammaMap[bvadd64(index, 1bv64)] && gammaMap[index]))))))) -} - -function {:extern} gamma_store32(gammaMap: [bv64]bool, index: bv64, value: bool) returns ([bv64]bool) { - gammaMap[index := value][bvadd64(index, 1bv64) := value][bvadd64(index, 2bv64) := value][bvadd64(index, 3bv64) := value] -} - -function {:extern} gamma_store64(gammaMap: [bv64]bool, index: bv64, value: bool) returns ([bv64]bool) { - gammaMap[index := value][bvadd64(index, 1bv64) := value][bvadd64(index, 2bv64) := value][bvadd64(index, 3bv64) := value][bvadd64(index, 4bv64) := value][bvadd64(index, 5bv64) := value][bvadd64(index, 6bv64) := value][bvadd64(index, 7bv64) := value] -} - function {:extern} memory_load32_le(memory: [bv64]bv8, index: bv64) returns (bv32) { (memory[bvadd64(index, 3bv64)] ++ (memory[bvadd64(index, 2bv64)] ++ (memory[bvadd64(index, 1bv64)] ++ memory[index]))) } @@ -45,23 +11,15 @@ function {:extern} memory_load64_le(memory: [bv64]bv8, index: bv64) returns (bv6 (memory[bvadd64(index, 7bv64)] ++ (memory[bvadd64(index, 6bv64)] ++ (memory[bvadd64(index, 5bv64)] ++ (memory[bvadd64(index, 4bv64)] ++ (memory[bvadd64(index, 3bv64)] ++ (memory[bvadd64(index, 2bv64)] ++ (memory[bvadd64(index, 1bv64)] ++ memory[index]))))))) } -function {:extern} memory_store32_le(memory: [bv64]bv8, index: bv64, value: bv32) returns ([bv64]bv8) { - memory[index := value[8:0]][bvadd64(index, 1bv64) := value[16:8]][bvadd64(index, 2bv64) := value[24:16]][bvadd64(index, 3bv64) := value[32:24]] -} - -function {:extern} memory_store64_le(memory: [bv64]bv8, index: bv64, value: bv64) returns ([bv64]bv8) { - memory[index := value[8:0]][bvadd64(index, 1bv64) := value[16:8]][bvadd64(index, 2bv64) := value[24:16]][bvadd64(index, 3bv64) := value[32:24]][bvadd64(index, 4bv64) := value[40:32]][bvadd64(index, 5bv64) := value[48:40]][bvadd64(index, 6bv64) := value[56:48]][bvadd64(index, 7bv64) := value[64:56]] -} - procedure {:extern} rely(); modifies Gamma_mem, mem; ensures (Gamma_mem == old(Gamma_mem)); ensures (mem == old(mem)); - free ensures (memory_load32_le(mem, 2080bv64) == 131073bv32); - free ensures (memory_load64_le(mem, 69064bv64) == 2000bv64); - free ensures (memory_load64_le(mem, 69072bv64) == 1920bv64); - free ensures (memory_load64_le(mem, 69592bv64) == 2004bv64); - free ensures (memory_load64_le(mem, 69688bv64) == 69688bv64); + free ensures (memory_load32_le(mem, 2220bv64) == 131073bv32); + free ensures (memory_load64_le(mem, 130440bv64) == 2192bv64); + free ensures (memory_load64_le(mem, 130448bv64) == 2112bv64); + free ensures (memory_load64_le(mem, 131056bv64) == 2196bv64); + free ensures (memory_load64_le(mem, 131080bv64) == 131080bv64); procedure {:extern} rely_transitive(); modifies Gamma_mem, mem; @@ -79,165 +37,27 @@ procedure {:extern} rely_reflexive(); procedure {:extern} guarantee_reflexive(); modifies Gamma_mem, mem; -procedure FUN_650_1616(); - modifies Gamma_R16, Gamma_R17, Gamma_mem, R16, R17, mem; - free requires (memory_load32_le(mem, 2080bv64) == 131073bv32); - free requires (memory_load64_le(mem, 69064bv64) == 2000bv64); - free requires (memory_load64_le(mem, 69072bv64) == 1920bv64); - free requires (memory_load64_le(mem, 69592bv64) == 2004bv64); - free requires (memory_load64_le(mem, 69688bv64) == 69688bv64); - free ensures (memory_load32_le(mem, 2080bv64) == 131073bv32); - free ensures (memory_load64_le(mem, 69064bv64) == 2000bv64); - free ensures (memory_load64_le(mem, 69072bv64) == 1920bv64); - free ensures (memory_load64_le(mem, 69592bv64) == 2004bv64); - free ensures (memory_load64_le(mem, 69688bv64) == 69688bv64); - -implementation FUN_650_1616() +procedure main(); + free requires (memory_load64_le(mem, 131072bv64) == 0bv64); + free requires (memory_load64_le(mem, 131080bv64) == 131080bv64); + free requires (memory_load32_le(mem, 2220bv64) == 131073bv32); + free requires (memory_load64_le(mem, 130440bv64) == 2192bv64); + free requires (memory_load64_le(mem, 130448bv64) == 2112bv64); + free requires (memory_load64_le(mem, 131056bv64) == 2196bv64); + free requires (memory_load64_le(mem, 131080bv64) == 131080bv64); + free ensures (memory_load32_le(mem, 2220bv64) == 131073bv32); + free ensures (memory_load64_le(mem, 130440bv64) == 2192bv64); + free ensures (memory_load64_le(mem, 130448bv64) == 2112bv64); + free ensures (memory_load64_le(mem, 131056bv64) == 2196bv64); + free ensures (memory_load64_le(mem, 131080bv64) == 131080bv64); + +implementation main() { - var Gamma_load4: bool; - var load4: bv64; - FUN_650_1616__0__sjc2rj6TThubVCNZDv8wdw: - assume {:captureState "FUN_650_1616__0__sjc2rj6TThubVCNZDv8wdw"} true; - R16, Gamma_R16 := 69632bv64, true; - call rely(); - load4, Gamma_load4 := memory_load64_le(mem, bvadd64(R16, 16bv64)), (gamma_load64(Gamma_mem, bvadd64(R16, 16bv64)) || L(mem, bvadd64(R16, 16bv64))); - R17, Gamma_R17 := load4, Gamma_load4; - R16, Gamma_R16 := bvadd64(R16, 16bv64), Gamma_R16; - call malloc(); - goto FUN_650_1616_basil_return; - FUN_650_1616_basil_return: - assume {:captureState "FUN_650_1616_basil_return"} true; + $main$__0__$cdQ2GS2~QhaOa7OUvPWMRQ: + assume {:captureState "$main$__0__$cdQ2GS2~QhaOa7OUvPWMRQ"} true; + goto main_basil_return; + main_basil_return: + assume {:captureState "main_basil_return"} true; return; } -procedure FUN_680_1664(); - modifies Gamma_R16, Gamma_R17, Gamma_mem, R16, R17, mem; - free requires (memory_load32_le(mem, 2080bv64) == 131073bv32); - free requires (memory_load64_le(mem, 69064bv64) == 2000bv64); - free requires (memory_load64_le(mem, 69072bv64) == 1920bv64); - free requires (memory_load64_le(mem, 69592bv64) == 2004bv64); - free requires (memory_load64_le(mem, 69688bv64) == 69688bv64); - free ensures (memory_load32_le(mem, 2080bv64) == 131073bv32); - free ensures (memory_load64_le(mem, 69064bv64) == 2000bv64); - free ensures (memory_load64_le(mem, 69072bv64) == 1920bv64); - free ensures (memory_load64_le(mem, 69592bv64) == 2004bv64); - free ensures (memory_load64_le(mem, 69688bv64) == 69688bv64); - -implementation FUN_680_1664() -{ - var Gamma_load9: bool; - var load9: bv64; - FUN_680_1664__0__cp70h48_Qy2QShRHYpYqzw: - assume {:captureState "FUN_680_1664__0__cp70h48_Qy2QShRHYpYqzw"} true; - R16, Gamma_R16 := 69632bv64, true; - call rely(); - load9, Gamma_load9 := memory_load64_le(mem, bvadd64(R16, 40bv64)), (gamma_load64(Gamma_mem, bvadd64(R16, 40bv64)) || L(mem, bvadd64(R16, 40bv64))); - R17, Gamma_R17 := load9, Gamma_load9; - R16, Gamma_R16 := bvadd64(R16, 40bv64), Gamma_R16; - call #free(); - goto FUN_680_1664_basil_return; - FUN_680_1664_basil_return: - assume {:captureState "FUN_680_1664_basil_return"} true; - return; -} - -procedure main_2004(); - modifies Gamma_R0, Gamma_R16, Gamma_R17, Gamma_R29, Gamma_R30, Gamma_R31, Gamma_R8, Gamma_R9, Gamma_mem, Gamma_stack, R0, R16, R17, R29, R30, R31, R8, R9, mem, stack; - free requires (memory_load64_le(mem, 69680bv64) == 0bv64); - free requires (memory_load64_le(mem, 69688bv64) == 69688bv64); - free requires (memory_load32_le(mem, 2080bv64) == 131073bv32); - free requires (memory_load64_le(mem, 69064bv64) == 2000bv64); - free requires (memory_load64_le(mem, 69072bv64) == 1920bv64); - free requires (memory_load64_le(mem, 69592bv64) == 2004bv64); - free requires (memory_load64_le(mem, 69688bv64) == 69688bv64); - free ensures (Gamma_R29 == old(Gamma_R29)); - free ensures (Gamma_R31 == old(Gamma_R31)); - free ensures (R29 == old(R29)); - free ensures (R31 == old(R31)); - free ensures (memory_load32_le(mem, 2080bv64) == 131073bv32); - free ensures (memory_load64_le(mem, 69064bv64) == 2000bv64); - free ensures (memory_load64_le(mem, 69072bv64) == 1920bv64); - free ensures (memory_load64_le(mem, 69592bv64) == 2004bv64); - free ensures (memory_load64_le(mem, 69688bv64) == 69688bv64); - -implementation main_2004() -{ - var Cse0__5_0_1: bv64; - var Cse0__5_1_0: bv64; - var Gamma_Cse0__5_0_1: bool; - var Gamma_Cse0__5_1_0: bool; - var Gamma_load21: bool; - var Gamma_load22: bool; - var Gamma_load23: bool; - var Gamma_load24: bool; - var load21: bv64; - var load22: bv64; - var load23: bv64; - var load24: bv64; - main_2004__0__AaLXFLvRTeKg3QkcY_Eoyw: - assume {:captureState "main_2004__0__AaLXFLvRTeKg3QkcY_Eoyw"} true; - R31, Gamma_R31 := bvadd64(R31, 18446744073709551584bv64), Gamma_R31; - Cse0__5_0_1, Gamma_Cse0__5_0_1 := bvadd64(R31, 16bv64), Gamma_R31; - stack, Gamma_stack := memory_store64_le(stack, Cse0__5_0_1, R29), gamma_store64(Gamma_stack, Cse0__5_0_1, Gamma_R29); - assume {:captureState "2008_1"} true; - stack, Gamma_stack := memory_store64_le(stack, bvadd64(Cse0__5_0_1, 8bv64), R30), gamma_store64(Gamma_stack, bvadd64(Cse0__5_0_1, 8bv64), Gamma_R30); - assume {:captureState "2008_2"} true; - R29, Gamma_R29 := bvadd64(R31, 16bv64), Gamma_R31; - R0, Gamma_R0 := 4bv64, true; - R30, Gamma_R30 := 2024bv64, true; - call FUN_650_1616(); - goto main_2004__1__sf~3otWHTPClXjl5_L1xPQ; - main_2004__1__sf~3otWHTPClXjl5_L1xPQ: - assume {:captureState "main_2004__1__sf~3otWHTPClXjl5_L1xPQ"} true; - stack, Gamma_stack := memory_store64_le(stack, bvadd64(R31, 8bv64), R0), gamma_store64(Gamma_stack, bvadd64(R31, 8bv64), Gamma_R0); - assume {:captureState "2024_0"} true; - load23, Gamma_load23 := memory_load64_le(stack, bvadd64(R31, 8bv64)), gamma_load64(Gamma_stack, bvadd64(R31, 8bv64)); - R9, Gamma_R9 := load23, Gamma_load23; - R8, Gamma_R8 := 1bv64, true; - call rely(); - assert (L(mem, R9) ==> Gamma_R8); - mem, Gamma_mem := memory_store32_le(mem, R9, R8[32:0]), gamma_store32(Gamma_mem, R9, Gamma_R8); - assume {:captureState "2036_0"} true; - load24, Gamma_load24 := memory_load64_le(stack, bvadd64(R31, 8bv64)), gamma_load64(Gamma_stack, bvadd64(R31, 8bv64)); - R0, Gamma_R0 := load24, Gamma_load24; - R30, Gamma_R30 := 2048bv64, true; - call FUN_680_1664(); - goto main_2004__2__GmXGrcwFTMKJEOfTLmGTjg; - main_2004__2__GmXGrcwFTMKJEOfTLmGTjg: - assume {:captureState "main_2004__2__GmXGrcwFTMKJEOfTLmGTjg"} true; - Cse0__5_1_0, Gamma_Cse0__5_1_0 := bvadd64(R31, 16bv64), Gamma_R31; - load21, Gamma_load21 := memory_load64_le(stack, Cse0__5_1_0), gamma_load64(Gamma_stack, Cse0__5_1_0); - R29, Gamma_R29 := load21, Gamma_load21; - load22, Gamma_load22 := memory_load64_le(stack, bvadd64(Cse0__5_1_0, 8bv64)), gamma_load64(Gamma_stack, bvadd64(Cse0__5_1_0, 8bv64)); - R30, Gamma_R30 := load22, Gamma_load22; - R31, Gamma_R31 := bvadd64(R31, 32bv64), Gamma_R31; - goto main_2004_basil_return; - main_2004_basil_return: - assume {:captureState "main_2004_basil_return"} true; - return; -} - -procedure malloc(); - free requires (memory_load32_le(mem, 2080bv64) == 131073bv32); - free requires (memory_load64_le(mem, 69064bv64) == 2000bv64); - free requires (memory_load64_le(mem, 69072bv64) == 1920bv64); - free requires (memory_load64_le(mem, 69592bv64) == 2004bv64); - free requires (memory_load64_le(mem, 69688bv64) == 69688bv64); - free ensures (memory_load32_le(mem, 2080bv64) == 131073bv32); - free ensures (memory_load64_le(mem, 69064bv64) == 2000bv64); - free ensures (memory_load64_le(mem, 69072bv64) == 1920bv64); - free ensures (memory_load64_le(mem, 69592bv64) == 2004bv64); - free ensures (memory_load64_le(mem, 69688bv64) == 69688bv64); - -procedure #free(); - free requires (memory_load32_le(mem, 2080bv64) == 131073bv32); - free requires (memory_load64_le(mem, 69064bv64) == 2000bv64); - free requires (memory_load64_le(mem, 69072bv64) == 1920bv64); - free requires (memory_load64_le(mem, 69592bv64) == 2004bv64); - free requires (memory_load64_le(mem, 69688bv64) == 69688bv64); - free ensures (memory_load32_le(mem, 2080bv64) == 131073bv32); - free ensures (memory_load64_le(mem, 69064bv64) == 2000bv64); - free ensures (memory_load64_le(mem, 69072bv64) == 1920bv64); - free ensures (memory_load64_le(mem, 69592bv64) == 2004bv64); - free ensures (memory_load64_le(mem, 69688bv64) == 69688bv64); - diff --git a/src/test/correct/basicfree/gcc/basicfree.adt b/src/test/correct/basicfree/gcc/basicfree.adt deleted file mode 100644 index 1b4e0ad77..000000000 --- a/src/test/correct/basicfree/gcc/basicfree.adt +++ /dev/null @@ -1,568 +0,0 @@ -Project(Attrs([Attr("filename","\"gcc/basicfree.out\""), -Attr("image-specification","(declare abi (name str))\n(declare arch (name str))\n(declare base-address (addr int))\n(declare bias (off int))\n(declare bits (size int))\n(declare code-region (addr int) (size int) (off int))\n(declare code-start (addr int))\n(declare entry-point (addr int))\n(declare external-reference (addr int) (name str))\n(declare format (name str))\n(declare is-executable (flag bool))\n(declare is-little-endian (flag bool))\n(declare llvm:base-address (addr int))\n(declare llvm:code-entry (name str) (off int) (size int))\n(declare llvm:coff-import-library (name str))\n(declare llvm:coff-virtual-section-header (name str) (addr int) (size int))\n(declare llvm:elf-program-header (name str) (off int) (size int))\n(declare llvm:elf-program-header-flags (name str) (ld bool) (r bool) \n (w bool) (x bool))\n(declare llvm:elf-virtual-program-header (name str) (addr int) (size int))\n(declare llvm:entry-point (addr int))\n(declare llvm:macho-symbol (name str) (value int))\n(declare llvm:name-reference (at int) (name str))\n(declare llvm:relocation (at int) (addr int))\n(declare llvm:section-entry (name str) (addr int) (size int) (off int))\n(declare llvm:section-flags (name str) (r bool) (w bool) (x bool))\n(declare llvm:segment-command (name str) (off int) (size int))\n(declare llvm:segment-command-flags (name str) (r bool) (w bool) (x bool))\n(declare llvm:symbol-entry (name str) (addr int) (size int) (off int)\n (value int))\n(declare llvm:virtual-segment-command (name str) (addr int) (size int))\n(declare mapped (addr int) (size int) (off int))\n(declare named-region (addr int) (size int) (name str))\n(declare named-symbol (addr int) (name str))\n(declare require (name str))\n(declare section (addr int) (size int))\n(declare segment (addr int) (size int) (r bool) (w bool) (x bool))\n(declare subarch (name str))\n(declare symbol-chunk (addr int) (size int) (root int))\n(declare symbol-value (addr int) (value int))\n(declare system (name str))\n(declare vendor (name str))\n\n(abi unknown)\n(arch aarch64)\n(base-address 0)\n(bias 0)\n(bits 64)\n(code-region 2056 20 2056)\n(code-region 1728 328 1728)\n(code-region 1552 128 1552)\n(code-region 1520 24 1520)\n(code-start 1780)\n(code-start 1728)\n(code-start 2004)\n(entry-point 1728)\n(external-reference 69592 _ITM_deregisterTMCloneTable)\n(external-reference 69600 __cxa_finalize)\n(external-reference 69608 __gmon_start__)\n(external-reference 69624 _ITM_registerTMCloneTable)\n(external-reference 69536 __libc_start_main)\n(external-reference 69544 __cxa_finalize)\n(external-reference 69552 malloc)\n(external-reference 69560 __gmon_start__)\n(external-reference 69568 abort)\n(external-reference 69576 free)\n(format elf)\n(is-executable true)\n(is-little-endian true)\n(llvm:base-address 0)\n(llvm:code-entry free 0 0)\n(llvm:code-entry abort 0 0)\n(llvm:code-entry malloc 0 0)\n(llvm:code-entry __cxa_finalize 0 0)\n(llvm:code-entry __libc_start_main 0 0)\n(llvm:code-entry _init 1520 0)\n(llvm:code-entry main 2004 52)\n(llvm:code-entry _start 1728 52)\n(llvm:code-entry free@GLIBC_2.17 0 0)\n(llvm:code-entry abort@GLIBC_2.17 0 0)\n(llvm:code-entry malloc@GLIBC_2.17 0 0)\n(llvm:code-entry _fini 2056 0)\n(llvm:code-entry __cxa_finalize@GLIBC_2.17 0 0)\n(llvm:code-entry __libc_start_main@GLIBC_2.34 0 0)\n(llvm:code-entry frame_dummy 2000 0)\n(llvm:code-entry __do_global_dtors_aux 1920 0)\n(llvm:code-entry register_tm_clones 1856 0)\n(llvm:code-entry deregister_tm_clones 1808 0)\n(llvm:code-entry call_weak_fn 1780 20)\n(llvm:code-entry .fini 2056 20)\n(llvm:code-entry .text 1728 328)\n(llvm:code-entry .plt 1552 128)\n(llvm:code-entry .init 1520 24)\n(llvm:elf-program-header 08 3464 632)\n(llvm:elf-program-header 07 0 0)\n(llvm:elf-program-header 06 2080 60)\n(llvm:elf-program-header 05 596 68)\n(llvm:elf-program-header 04 3480 496)\n(llvm:elf-program-header 03 3464 648)\n(llvm:elf-program-header 02 0 2316)\n(llvm:elf-program-header 01 568 27)\n(llvm:elf-program-header 00 64 504)\n(llvm:elf-program-header-flags 08 false true false false)\n(llvm:elf-program-header-flags 07 false true true false)\n(llvm:elf-program-header-flags 06 false true false false)\n(llvm:elf-program-header-flags 05 false true false false)\n(llvm:elf-program-header-flags 04 false true true false)\n(llvm:elf-program-header-flags 03 true true true false)\n(llvm:elf-program-header-flags 02 true true false true)\n(llvm:elf-program-header-flags 01 false true false false)\n(llvm:elf-program-header-flags 00 false true false false)\n(llvm:elf-virtual-program-header 08 69000 632)\n(llvm:elf-virtual-program-header 07 0 0)\n(llvm:elf-virtual-program-header 06 2080 60)\n(llvm:elf-virtual-program-header 05 596 68)\n(llvm:elf-virtual-program-header 04 69016 496)\n(llvm:elf-virtual-program-header 03 69000 656)\n(llvm:elf-virtual-program-header 02 0 2316)\n(llvm:elf-virtual-program-header 01 568 27)\n(llvm:elf-virtual-program-header 00 64 504)\n(llvm:entry-point 1728)\n(llvm:name-reference 69576 free)\n(llvm:name-reference 69568 abort)\n(llvm:name-reference 69560 __gmon_start__)\n(llvm:name-reference 69552 malloc)\n(llvm:name-reference 69544 __cxa_finalize)\n(llvm:name-reference 69536 __libc_start_main)\n(llvm:name-reference 69624 _ITM_registerTMCloneTable)\n(llvm:name-reference 69608 __gmon_start__)\n(llvm:name-reference 69600 __cxa_finalize)\n(llvm:name-reference 69592 _ITM_deregisterTMCloneTable)\n(llvm:section-entry .shstrtab 0 250 6851)\n(llvm:section-entry .strtab 0 579 6272)\n(llvm:section-entry .symtab 0 2112 4160)\n(llvm:section-entry .comment 0 43 4112)\n(llvm:section-entry .bss 69648 8 4112)\n(llvm:section-entry .data 69632 16 4096)\n(llvm:section-entry .got 69512 120 3976)\n(llvm:section-entry .dynamic 69016 496 3480)\n(llvm:section-entry .fini_array 69008 8 3472)\n(llvm:section-entry .init_array 69000 8 3464)\n(llvm:section-entry .eh_frame 2144 172 2144)\n(llvm:section-entry .eh_frame_hdr 2080 60 2080)\n(llvm:section-entry .rodata 2076 4 2076)\n(llvm:section-entry .fini 2056 20 2056)\n(llvm:section-entry .text 1728 328 1728)\n(llvm:section-entry .plt 1552 128 1552)\n(llvm:section-entry .init 1520 24 1520)\n(llvm:section-entry .rela.plt 1376 144 1376)\n(llvm:section-entry .rela.dyn 1184 192 1184)\n(llvm:section-entry .gnu.version_r 1136 48 1136)\n(llvm:section-entry .gnu.version 1114 22 1114)\n(llvm:section-entry .dynstr 960 153 960)\n(llvm:section-entry .dynsym 696 264 696)\n(llvm:section-entry .gnu.hash 664 28 664)\n(llvm:section-entry .note.ABI-tag 632 32 632)\n(llvm:section-entry .note.gnu.build-id 596 36 596)\n(llvm:section-entry .interp 568 27 568)\n(llvm:section-flags .shstrtab true false false)\n(llvm:section-flags .strtab true false false)\n(llvm:section-flags .symtab true false false)\n(llvm:section-flags .comment true false false)\n(llvm:section-flags .bss true true false)\n(llvm:section-flags .data true true false)\n(llvm:section-flags .got true true false)\n(llvm:section-flags .dynamic true true false)\n(llvm:section-flags .fini_array true true false)\n(llvm:section-flags .init_array true true false)\n(llvm:section-flags .eh_frame true false false)\n(llvm:section-flags .eh_frame_hdr true false false)\n(llvm:section-flags .rodata true false false)\n(llvm:section-flags .fini true false true)\n(llvm:section-flags .text true false true)\n(llvm:section-flags .plt true false true)\n(llvm:section-flags .init true false true)\n(llvm:section-flags .rela.plt true false false)\n(llvm:section-flags .rela.dyn true false false)\n(llvm:section-flags .gnu.version_r true false false)\n(llvm:section-flags .gnu.version true false false)\n(llvm:section-flags .dynstr true false false)\n(llvm:section-flags .dynsym true false false)\n(llvm:section-flags .gnu.hash true false false)\n(llvm:section-flags .note.ABI-tag true false false)\n(llvm:section-flags .note.gnu.build-id true false false)\n(llvm:section-flags .interp true false false)\n(llvm:symbol-entry free 0 0 0 0)\n(llvm:symbol-entry abort 0 0 0 0)\n(llvm:symbol-entry malloc 0 0 0 0)\n(llvm:symbol-entry __cxa_finalize 0 0 0 0)\n(llvm:symbol-entry __libc_start_main 0 0 0 0)\n(llvm:symbol-entry _init 1520 0 1520 1520)\n(llvm:symbol-entry main 2004 52 2004 2004)\n(llvm:symbol-entry _start 1728 52 1728 1728)\n(llvm:symbol-entry free@GLIBC_2.17 0 0 0 0)\n(llvm:symbol-entry abort@GLIBC_2.17 0 0 0 0)\n(llvm:symbol-entry malloc@GLIBC_2.17 0 0 0 0)\n(llvm:symbol-entry _fini 2056 0 2056 2056)\n(llvm:symbol-entry __cxa_finalize@GLIBC_2.17 0 0 0 0)\n(llvm:symbol-entry __libc_start_main@GLIBC_2.34 0 0 0 0)\n(llvm:symbol-entry frame_dummy 2000 0 2000 2000)\n(llvm:symbol-entry __do_global_dtors_aux 1920 0 1920 1920)\n(llvm:symbol-entry register_tm_clones 1856 0 1856 1856)\n(llvm:symbol-entry deregister_tm_clones 1808 0 1808 1808)\n(llvm:symbol-entry call_weak_fn 1780 20 1780 1780)\n(mapped 0 2316 0)\n(mapped 69000 648 3464)\n(named-region 0 2316 02)\n(named-region 69000 656 03)\n(named-region 568 27 .interp)\n(named-region 596 36 .note.gnu.build-id)\n(named-region 632 32 .note.ABI-tag)\n(named-region 664 28 .gnu.hash)\n(named-region 696 264 .dynsym)\n(named-region 960 153 .dynstr)\n(named-region 1114 22 .gnu.version)\n(named-region 1136 48 .gnu.version_r)\n(named-region 1184 192 .rela.dyn)\n(named-region 1376 144 .rela.plt)\n(named-region 1520 24 .init)\n(named-region 1552 128 .plt)\n(named-region 1728 328 .text)\n(named-region 2056 20 .fini)\n(named-region 2076 4 .rodata)\n(named-region 2080 60 .eh_frame_hdr)\n(named-region 2144 172 .eh_frame)\n(named-region 69000 8 .init_array)\n(named-region 69008 8 .fini_array)\n(named-region 69016 496 .dynamic)\n(named-region 69512 120 .got)\n(named-region 69632 16 .data)\n(named-region 69648 8 .bss)\n(named-region 0 43 .comment)\n(named-region 0 2112 .symtab)\n(named-region 0 579 .strtab)\n(named-region 0 250 .shstrtab)\n(named-symbol 1780 call_weak_fn)\n(named-symbol 1808 deregister_tm_clones)\n(named-symbol 1856 register_tm_clones)\n(named-symbol 1920 __do_global_dtors_aux)\n(named-symbol 2000 frame_dummy)\n(named-symbol 0 __libc_start_main@GLIBC_2.34)\n(named-symbol 0 __cxa_finalize@GLIBC_2.17)\n(named-symbol 2056 _fini)\n(named-symbol 0 malloc@GLIBC_2.17)\n(named-symbol 0 abort@GLIBC_2.17)\n(named-symbol 0 free@GLIBC_2.17)\n(named-symbol 1728 _start)\n(named-symbol 2004 main)\n(named-symbol 1520 _init)\n(named-symbol 0 __libc_start_main)\n(named-symbol 0 __cxa_finalize)\n(named-symbol 0 malloc)\n(named-symbol 0 abort)\n(named-symbol 0 free)\n(require libc.so.6)\n(section 568 27)\n(section 596 36)\n(section 632 32)\n(section 664 28)\n(section 696 264)\n(section 960 153)\n(section 1114 22)\n(section 1136 48)\n(section 1184 192)\n(section 1376 144)\n(section 1520 24)\n(section 1552 128)\n(section 1728 328)\n(section 2056 20)\n(section 2076 4)\n(section 2080 60)\n(section 2144 172)\n(section 69000 8)\n(section 69008 8)\n(section 69016 496)\n(section 69512 120)\n(section 69632 16)\n(section 69648 8)\n(section 0 43)\n(section 0 2112)\n(section 0 579)\n(section 0 250)\n(segment 0 2316 true false true)\n(segment 69000 656 true true false)\n(subarch v8)\n(symbol-chunk 1780 20 1780)\n(symbol-chunk 1728 52 1728)\n(symbol-chunk 2004 52 2004)\n(symbol-value 1780 1780)\n(symbol-value 1808 1808)\n(symbol-value 1856 1856)\n(symbol-value 1920 1920)\n(symbol-value 2000 2000)\n(symbol-value 2056 2056)\n(symbol-value 1728 1728)\n(symbol-value 2004 2004)\n(symbol-value 1520 1520)\n(symbol-value 0 0)\n(system \"\")\n(vendor \"\")\n"), -Attr("abi-name","\"aarch64-linux-gnu-elf\"")]), -Sections([Section(".shstrtab", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\xc0\x06\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xc0\x1b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x38\x00\x09\x00\x40\x00\x1c\x00\x1b\x00\x06\x00\x00\x00\x04\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x04\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x0c\x09\x00\x00\x00\x00\x00\x00\x0c\x09\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x01\x00\x00\x00\x06\x00\x00\x00\x88\x0d\x00\x00\x00\x00\x00\x00\x88\x0d"), -Section(".strtab", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\xc0\x06\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xc0\x1b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x38\x00\x09\x00\x40\x00\x1c\x00\x1b\x00\x06\x00\x00\x00\x04\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x04\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x0c\x09\x00\x00\x00\x00\x00\x00\x0c\x09\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x01\x00\x00\x00\x06\x00\x00\x00\x88\x0d\x00\x00\x00\x00\x00\x00\x88\x0d\x01\x00\x00\x00\x00\x00\x88\x0d\x01\x00\x00\x00\x00\x00\x88\x02\x00\x00\x00\x00\x00\x00\x90\x02\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x02\x00\x00\x00\x06\x00\x00\x00\x98\x0d\x00\x00\x00\x00\x00\x00\x98\x0d\x01\x00\x00\x00\x00\x00\x98\x0d\x01\x00\x00\x00\x00\x00\xf0\x01\x00\x00\x00\x00\x00\x00\xf0\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x04\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x50\xe5\x74\x64\x04\x00\x00\x00\x20\x08\x00\x00\x00\x00\x00\x00\x20\x08\x00\x00\x00\x00\x00\x00\x20\x08\x00\x00\x00\x00\x00\x00\x3c\x00\x00\x00\x00\x00\x00\x00\x3c\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x51\xe5\x74\x64\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x52\xe5\x74\x64\x04\x00\x00\x00\x88\x0d\x00\x00\x00\x00\x00\x00\x88\x0d\x01\x00\x00\x00\x00\x00\x88\x0d\x01\x00\x00\x00\x00\x00\x78\x02\x00\x00\x00\x00\x00\x00\x78\x02\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x2f\x6c\x69\x62\x2f\x6c\x64\x2d\x6c\x69\x6e"), -Section(".symtab", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\xc0\x06\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xc0\x1b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x38\x00\x09\x00\x40\x00\x1c\x00\x1b\x00\x06\x00\x00\x00\x04\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x04\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x0c\x09\x00\x00\x00\x00\x00\x00\x0c\x09\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x01\x00\x00\x00\x06\x00\x00\x00\x88\x0d\x00\x00\x00\x00\x00\x00\x88\x0d\x01\x00\x00\x00\x00\x00\x88\x0d\x01\x00\x00\x00\x00\x00\x88\x02\x00\x00\x00\x00\x00\x00\x90\x02\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x02\x00\x00\x00\x06\x00\x00\x00\x98\x0d\x00\x00\x00\x00\x00\x00\x98\x0d\x01\x00\x00\x00\x00\x00\x98\x0d\x01\x00\x00\x00\x00\x00\xf0\x01\x00\x00\x00\x00\x00\x00\xf0\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x04\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x50\xe5\x74\x64\x04\x00\x00\x00\x20\x08\x00\x00\x00\x00\x00\x00\x20\x08\x00\x00\x00\x00\x00\x00\x20\x08\x00\x00\x00\x00\x00\x00\x3c\x00\x00\x00\x00\x00\x00\x00\x3c\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x51\xe5\x74\x64\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x52\xe5\x74\x64\x04\x00\x00\x00\x88\x0d\x00\x00\x00\x00\x00\x00\x88\x0d\x01\x00\x00\x00\x00\x00\x88\x0d\x01\x00\x00\x00\x00\x00\x78\x02\x00\x00\x00\x00\x00\x00\x78\x02\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x2f\x6c\x69\x62\x2f\x6c\x64\x2d\x6c\x69\x6e\x75\x78\x2d\x61\x61\x72\x63\x68\x36\x34\x2e\x73\x6f\x2e\x31\x00\x00\x04\x00\x00\x00\x14\x00\x00\x00\x03\x00\x00\x00\x47\x4e\x55\x00\xcb\x48\x39\x12\xdb\x2e\x6a\xe7\xbd\x4d\x12\x28\x14\xa7\x1d\x94\x67\x5a\x9d\x2c\x04\x00\x00\x00\x10\x00\x00\x00\x01\x00\x00\x00\x47\x4e\x55\x00\x00\x00\x00\x00\x03\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x01\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x0b\x00\xf0\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x16\x00\x00\x10\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x17\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x54\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x22\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x70\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2e\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x29\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7f\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5f\x5f\x63\x78\x61\x5f\x66\x69\x6e\x61\x6c\x69\x7a\x65\x00\x6d\x61\x6c\x6c\x6f\x63\x00\x5f\x5f\x6c\x69\x62\x63\x5f\x73\x74\x61\x72\x74\x5f\x6d\x61\x69\x6e\x00\x66\x72\x65\x65\x00\x61\x62\x6f\x72\x74\x00\x6c\x69\x62\x63\x2e\x73\x6f\x2e\x36\x00\x47\x4c\x49\x42\x43\x5f\x32\x2e\x31\x37\x00\x47\x4c\x49\x42\x43\x5f\x32\x2e\x33\x34\x00\x5f\x49\x54\x4d\x5f\x64\x65\x72\x65\x67\x69\x73\x74\x65\x72\x54\x4d\x43\x6c\x6f\x6e\x65\x54\x61\x62\x6c\x65\x00\x5f\x5f\x67\x6d\x6f\x6e\x5f\x73\x74\x61\x72\x74\x5f\x5f\x00\x5f\x49\x54\x4d\x5f\x72\x65\x67\x69\x73\x74\x65\x72\x54\x4d\x43\x6c\x6f\x6e\x65\x54\x61\x62\x6c\x65\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x01\x00\x03\x00\x03\x00\x01\x00\x03\x00\x03\x00\x01\x00\x01\x00\x02\x00\x34\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x97\x91\x96\x06\x00\x00\x03\x00\x3e\x00\x00\x00\x10\x00\x00\x00\xb4\x91\x96\x06\x00\x00\x02\x00\x49\x00\x00\x00\x00\x00\x00\x00\x88\x0d\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\xd0\x07\x00\x00\x00\x00\x00\x00\x90\x0d\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x80\x07\x00\x00\x00\x00\x00\x00\xf0\x0f\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\xd4\x07\x00\x00\x00\x00\x00\x00\x08\x10\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x08\x10\x01\x00\x00\x00\x00\x00\xd8\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe0\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe8\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xf8\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x0a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xa0\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xa8\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xb0\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xb8\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xc0\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xc8\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x09\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1f\x20\x03\xd5\xfd\x7b\xbf\xa9\xfd\x03\x00\x91\x3e\x00\x00\x94\xfd\x7b\xc1\xa8\xc0\x03\x5f\xd6\x00\x00\x00\x00\x00\x00\x00\x00\xf0\x7b\xbf\xa9\x90\x00\x00\x90\x11\xce\x47\xf9\x10\x62\x3e\x91\x20\x02\x1f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x90\x00\x00\x90\x11\xd2\x47\xf9\x10\x82\x3e\x91\x20\x02\x1f\xd6\x90\x00\x00\x90\x11\xd6\x47\xf9\x10\xa2\x3e\x91\x20\x02\x1f\xd6\x90\x00\x00\x90\x11\xda\x47\xf9\x10\xc2\x3e\x91\x20\x02\x1f\xd6\x90\x00\x00\x90\x11\xde\x47\xf9\x10\xe2\x3e\x91\x20\x02\x1f\xd6\x90\x00\x00\x90\x11\xe2\x47\xf9\x10\x02\x3f\x91\x20\x02\x1f\xd6\x90\x00\x00\x90\x11\xe6\x47\xf9\x10\x22\x3f\x91\x20\x02\x1f\xd6\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1f\x20\x03\xd5\x1d\x00\x80\xd2\x1e\x00\x80\xd2\xe5\x03\x00\xaa\xe1\x03\x40\xf9\xe2\x23\x00\x91\xe6\x03\x00\x91\x80\x00\x00\x90\x00\xf8\x47\xf9\x03\x00\x80\xd2\x04\x00\x80\xd2\xd1\xff\xff\x97\xe0\xff\xff\x97\x80\x00\x00\x90\x00\xf4\x47\xf9\x40\x00\x00\xb4\xd8\xff\xff\x17\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x80\x00\x00\xb0\x00\x40\x00\x91\x81\x00\x00\xb0\x21\x40\x00\x91\x3f\x00\x00\xeb\xc0\x00\x00\x54\x81\x00\x00\x90\x21\xec\x47\xf9\x61\x00\x00\xb4\xf0\x03\x01\xaa\x00\x02\x1f\xd6\xc0\x03\x5f\xd6\x80\x00\x00\xb0\x00\x40\x00\x91\x81\x00\x00\xb0\x21\x40\x00\x91\x21\x00\x00\xcb\x22\xfc\x7f\xd3\x41\x0c\x81\x8b\x21\xfc\x41\x93\xc1\x00\x00\xb4\x82\x00\x00\x90\x42\xfc\x47\xf9\x62\x00\x00\xb4\xf0\x03\x02\xaa\x00\x02\x1f\xd6\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\xfd\x7b\xbe\xa9\xfd\x03\x00\x91\xf3\x0b\x00\xf9\x93\x00\x00\xb0\x60\x42\x40\x39\x40\x01\x00\x35\x80\x00\x00\x90\x00\xf0\x47\xf9\x80\x00\x00\xb4\x80\x00\x00\xb0\x00\x04\x40\xf9\xa5\xff\xff\x97\xd8\xff\xff\x97\x20\x00\x80\x52\x60\x42\x00\x39\xf3\x0b\x40\xf9\xfd\x7b\xc2\xa8\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\xdc\xff\xff\x17\xfd\x7b\xbe\xa9\xfd\x03\x00\x91\x80\x00\x80\xd2\x9c\xff\xff\x97\xe0\x0f\x00\xf9\xe0\x0f\x40\xf9\x21\x00\x80\x52\x01\x00\x00\xb9\xe0\x0f\x40\xf9\xa2\xff\xff\x97\x1f\x20\x03\xd5\xfd\x7b\xc2\xa8\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\xfd\x7b\xbf\xa9\xfd\x03\x00\x91\xfd\x7b\xc1\xa8\xc0\x03\x5f\xd6\x01\x00\x02\x00\x01\x1b\x03\x3b\x3c\x00\x00\x00\x06\x00\x00\x00\xa0\xfe\xff\xff\x54\x00\x00\x00\xf0\xfe\xff\xff\x68\x00\x00\x00\x20\xff\xff\xff"), -Section(".comment", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\xc0\x06\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xc0\x1b\x00"), -Section(".interp", 0x238, "\x2f\x6c\x69\x62\x2f\x6c\x64\x2d\x6c\x69\x6e\x75\x78\x2d\x61\x61\x72\x63\x68\x36\x34\x2e\x73\x6f\x2e\x31\x00"), -Section(".note.gnu.build-id", 0x254, "\x04\x00\x00\x00\x14\x00\x00\x00\x03\x00\x00\x00\x47\x4e\x55\x00\xcb\x48\x39\x12\xdb\x2e\x6a\xe7\xbd\x4d\x12\x28\x14\xa7\x1d\x94\x67\x5a\x9d\x2c"), -Section(".note.ABI-tag", 0x278, "\x04\x00\x00\x00\x10\x00\x00\x00\x01\x00\x00\x00\x47\x4e\x55\x00\x00\x00\x00\x00\x03\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00"), -Section(".gnu.hash", 0x298, "\x01\x00\x00\x00\x01\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".dynsym", 0x2B8, "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x0b\x00\xf0\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x16\x00\x00\x10\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x17\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x54\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x22\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x70\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2e\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x29\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7f\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".dynstr", 0x3C0, "\x00\x5f\x5f\x63\x78\x61\x5f\x66\x69\x6e\x61\x6c\x69\x7a\x65\x00\x6d\x61\x6c\x6c\x6f\x63\x00\x5f\x5f\x6c\x69\x62\x63\x5f\x73\x74\x61\x72\x74\x5f\x6d\x61\x69\x6e\x00\x66\x72\x65\x65\x00\x61\x62\x6f\x72\x74\x00\x6c\x69\x62\x63\x2e\x73\x6f\x2e\x36\x00\x47\x4c\x49\x42\x43\x5f\x32\x2e\x31\x37\x00\x47\x4c\x49\x42\x43\x5f\x32\x2e\x33\x34\x00\x5f\x49\x54\x4d\x5f\x64\x65\x72\x65\x67\x69\x73\x74\x65\x72\x54\x4d\x43\x6c\x6f\x6e\x65\x54\x61\x62\x6c\x65\x00\x5f\x5f\x67\x6d\x6f\x6e\x5f\x73\x74\x61\x72\x74\x5f\x5f\x00\x5f\x49\x54\x4d\x5f\x72\x65\x67\x69\x73\x74\x65\x72\x54\x4d\x43\x6c\x6f\x6e\x65\x54\x61\x62\x6c\x65\x00"), -Section(".gnu.version", 0x45A, "\x00\x00\x00\x00\x00\x00\x02\x00\x01\x00\x03\x00\x03\x00\x01\x00\x03\x00\x03\x00\x01\x00"), -Section(".gnu.version_r", 0x470, "\x01\x00\x02\x00\x34\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x97\x91\x96\x06\x00\x00\x03\x00\x3e\x00\x00\x00\x10\x00\x00\x00\xb4\x91\x96\x06\x00\x00\x02\x00\x49\x00\x00\x00\x00\x00\x00\x00"), -Section(".rela.dyn", 0x4A0, "\x88\x0d\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\xd0\x07\x00\x00\x00\x00\x00\x00\x90\x0d\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x80\x07\x00\x00\x00\x00\x00\x00\xf0\x0f\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\xd4\x07\x00\x00\x00\x00\x00\x00\x08\x10\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x08\x10\x01\x00\x00\x00\x00\x00\xd8\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe0\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe8\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xf8\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x0a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".rela.plt", 0x560, "\xa0\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xa8\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xb0\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xb8\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xc0\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xc8\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x09\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".init", 0x5F0, "\x1f\x20\x03\xd5\xfd\x7b\xbf\xa9\xfd\x03\x00\x91\x3e\x00\x00\x94\xfd\x7b\xc1\xa8\xc0\x03\x5f\xd6"), -Section(".plt", 0x610, "\xf0\x7b\xbf\xa9\x90\x00\x00\x90\x11\xce\x47\xf9\x10\x62\x3e\x91\x20\x02\x1f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x90\x00\x00\x90\x11\xd2\x47\xf9\x10\x82\x3e\x91\x20\x02\x1f\xd6\x90\x00\x00\x90\x11\xd6\x47\xf9\x10\xa2\x3e\x91\x20\x02\x1f\xd6\x90\x00\x00\x90\x11\xda\x47\xf9\x10\xc2\x3e\x91\x20\x02\x1f\xd6\x90\x00\x00\x90\x11\xde\x47\xf9\x10\xe2\x3e\x91\x20\x02\x1f\xd6\x90\x00\x00\x90\x11\xe2\x47\xf9\x10\x02\x3f\x91\x20\x02\x1f\xd6\x90\x00\x00\x90\x11\xe6\x47\xf9\x10\x22\x3f\x91\x20\x02\x1f\xd6"), -Section(".fini", 0x808, "\x1f\x20\x03\xd5\xfd\x7b\xbf\xa9\xfd\x03\x00\x91\xfd\x7b\xc1\xa8\xc0\x03\x5f\xd6"), -Section(".rodata", 0x81C, "\x01\x00\x02\x00"), -Section(".eh_frame_hdr", 0x820, "\x01\x1b\x03\x3b\x3c\x00\x00\x00\x06\x00\x00\x00\xa0\xfe\xff\xff\x54\x00\x00\x00\xf0\xfe\xff\xff\x68\x00\x00\x00\x20\xff\xff\xff\x7c\x00\x00\x00\x60\xff\xff\xff\x90\x00\x00\x00\xb0\xff\xff\xff\xb4\x00\x00\x00\xb4\xff\xff\xff\xc8\x00\x00\x00"), -Section(".eh_frame", 0x860, "\x10\x00\x00\x00\x00\x00\x00\x00\x01\x7a\x52\x00\x04\x78\x1e\x01\x1b\x0c\x1f\x00\x10\x00\x00\x00\x18\x00\x00\x00\x44\xfe\xff\xff\x34\x00\x00\x00\x00\x41\x07\x1e\x10\x00\x00\x00\x2c\x00\x00\x00\x80\xfe\xff\xff\x30\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x40\x00\x00\x00\x9c\xfe\xff\xff\x3c\x00\x00\x00\x00\x00\x00\x00\x20\x00\x00\x00\x54\x00\x00\x00\xc8\xfe\xff\xff\x48\x00\x00\x00\x00\x41\x0e\x20\x9d\x04\x9e\x03\x42\x93\x02\x4e\xde\xdd\xd3\x0e\x00\x00\x00\x00\x10\x00\x00\x00\x78\x00\x00\x00\xf4\xfe\xff\xff\x04\x00\x00\x00\x00\x00\x00\x00\x1c\x00\x00\x00\x8c\x00\x00\x00\xe4\xfe\xff\xff\x34\x00\x00\x00\x00\x41\x0e\x20\x9d\x04\x9e\x03\x4b\xde\xdd\x0e\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".fini_array", 0x10D90, "\x80\x07\x00\x00\x00\x00\x00\x00"), -Section(".dynamic", 0x10D98, "\x01\x00\x00\x00\x00\x00\x00\x00\x34\x00\x00\x00\x00\x00\x00\x00\x0c\x00\x00\x00\x00\x00\x00\x00\xf0\x05\x00\x00\x00\x00\x00\x00\x0d\x00\x00\x00\x00\x00\x00\x00\x08\x08\x00\x00\x00\x00\x00\x00\x19\x00\x00\x00\x00\x00\x00\x00\x88\x0d\x01\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x1a\x00\x00\x00\x00\x00\x00\x00\x90\x0d\x01\x00\x00\x00\x00\x00\x1c\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\xf5\xfe\xff\x6f\x00\x00\x00\x00\x98\x02\x00\x00\x00\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\xc0\x03\x00\x00\x00\x00\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\xb8\x02\x00\x00\x00\x00\x00\x00\x0a\x00\x00\x00\x00\x00\x00\x00\x99\x00\x00\x00\x00\x00\x00\x00\x0b\x00\x00\x00\x00\x00\x00\x00\x18\x00\x00\x00\x00\x00\x00\x00\x15\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x88\x0f\x01\x00\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x90\x00\x00\x00\x00\x00\x00\x00\x14\x00\x00\x00\x00\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x17\x00\x00\x00\x00\x00\x00\x00\x60\x05\x00\x00\x00\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\xa0\x04\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\xc0\x00\x00\x00\x00\x00\x00\x00\x09\x00\x00\x00\x00\x00\x00\x00\x18\x00\x00\x00\x00\x00\x00\x00\x1e\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\xfb\xff\xff\x6f\x00\x00\x00\x00\x01\x00\x00\x08\x00\x00\x00\x00\xfe\xff\xff\x6f\x00\x00\x00\x00\x70\x04\x00\x00\x00\x00\x00\x00\xff\xff\xff\x6f\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\xf0\xff\xff\x6f\x00\x00\x00\x00\x5a\x04\x00\x00\x00\x00\x00\x00\xf9\xff\xff\x6f\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".got", 0x10F88, "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x06\x00\x00\x00\x00\x00\x00\x10\x06\x00\x00\x00\x00\x00\x00\x10\x06\x00\x00\x00\x00\x00\x00\x10\x06\x00\x00\x00\x00\x00\x00\x10\x06\x00\x00\x00\x00\x00\x00\x10\x06\x00\x00\x00\x00\x00\x00\x98\x0d\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xd4\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".data", 0x11000, "\x00\x00\x00\x00\x00\x00\x00\x00\x08\x10\x01\x00\x00\x00\x00\x00"), -Section(".init_array", 0x10D88, "\xd0\x07\x00\x00\x00\x00\x00\x00"), -Section(".text", 0x6C0, "\x1f\x20\x03\xd5\x1d\x00\x80\xd2\x1e\x00\x80\xd2\xe5\x03\x00\xaa\xe1\x03\x40\xf9\xe2\x23\x00\x91\xe6\x03\x00\x91\x80\x00\x00\x90\x00\xf8\x47\xf9\x03\x00\x80\xd2\x04\x00\x80\xd2\xd1\xff\xff\x97\xe0\xff\xff\x97\x80\x00\x00\x90\x00\xf4\x47\xf9\x40\x00\x00\xb4\xd8\xff\xff\x17\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x80\x00\x00\xb0\x00\x40\x00\x91\x81\x00\x00\xb0\x21\x40\x00\x91\x3f\x00\x00\xeb\xc0\x00\x00\x54\x81\x00\x00\x90\x21\xec\x47\xf9\x61\x00\x00\xb4\xf0\x03\x01\xaa\x00\x02\x1f\xd6\xc0\x03\x5f\xd6\x80\x00\x00\xb0\x00\x40\x00\x91\x81\x00\x00\xb0\x21\x40\x00\x91\x21\x00\x00\xcb\x22\xfc\x7f\xd3\x41\x0c\x81\x8b\x21\xfc\x41\x93\xc1\x00\x00\xb4\x82\x00\x00\x90\x42\xfc\x47\xf9\x62\x00\x00\xb4\xf0\x03\x02\xaa\x00\x02\x1f\xd6\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\xfd\x7b\xbe\xa9\xfd\x03\x00\x91\xf3\x0b\x00\xf9\x93\x00\x00\xb0\x60\x42\x40\x39\x40\x01\x00\x35\x80\x00\x00\x90\x00\xf0\x47\xf9\x80\x00\x00\xb4\x80\x00\x00\xb0\x00\x04\x40\xf9\xa5\xff\xff\x97\xd8\xff\xff\x97\x20\x00\x80\x52\x60\x42\x00\x39\xf3\x0b\x40\xf9\xfd\x7b\xc2\xa8\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\xdc\xff\xff\x17\xfd\x7b\xbe\xa9\xfd\x03\x00\x91\x80\x00\x80\xd2\x9c\xff\xff\x97\xe0\x0f\x00\xf9\xe0\x0f\x40\xf9\x21\x00\x80\x52\x01\x00\x00\xb9\xe0\x0f\x40\xf9\xa2\xff\xff\x97\x1f\x20\x03\xd5\xfd\x7b\xc2\xa8\xc0\x03\x5f\xd6")]), -Memmap([Annotation(Region(0x0,0x90B), Attr("segment","02 0 2316")), -Annotation(Region(0x6C0,0x6F3), Attr("symbol","\"_start\"")), -Annotation(Region(0x0,0xF9), Attr("section","\".shstrtab\"")), -Annotation(Region(0x0,0x242), Attr("section","\".strtab\"")), -Annotation(Region(0x0,0x83F), Attr("section","\".symtab\"")), -Annotation(Region(0x0,0x2A), Attr("section","\".comment\"")), -Annotation(Region(0x238,0x252), Attr("section","\".interp\"")), -Annotation(Region(0x254,0x277), Attr("section","\".note.gnu.build-id\"")), -Annotation(Region(0x278,0x297), Attr("section","\".note.ABI-tag\"")), -Annotation(Region(0x298,0x2B3), Attr("section","\".gnu.hash\"")), -Annotation(Region(0x2B8,0x3BF), Attr("section","\".dynsym\"")), -Annotation(Region(0x3C0,0x458), Attr("section","\".dynstr\"")), -Annotation(Region(0x45A,0x46F), Attr("section","\".gnu.version\"")), -Annotation(Region(0x470,0x49F), Attr("section","\".gnu.version_r\"")), -Annotation(Region(0x4A0,0x55F), Attr("section","\".rela.dyn\"")), -Annotation(Region(0x560,0x5EF), Attr("section","\".rela.plt\"")), -Annotation(Region(0x5F0,0x607), Attr("section","\".init\"")), -Annotation(Region(0x610,0x68F), Attr("section","\".plt\"")), -Annotation(Region(0x5F0,0x607), Attr("code-region","()")), -Annotation(Region(0x610,0x68F), Attr("code-region","()")), -Annotation(Region(0x6C0,0x6F3), Attr("symbol-info","_start 0x6C0 52")), -Annotation(Region(0x6F4,0x707), Attr("symbol","\"call_weak_fn\"")), -Annotation(Region(0x6F4,0x707), Attr("symbol-info","call_weak_fn 0x6F4 20")), -Annotation(Region(0x7D4,0x807), Attr("symbol","\"main\"")), -Annotation(Region(0x7D4,0x807), Attr("symbol-info","main 0x7D4 52")), -Annotation(Region(0x808,0x81B), Attr("section","\".fini\"")), -Annotation(Region(0x81C,0x81F), Attr("section","\".rodata\"")), -Annotation(Region(0x820,0x85B), Attr("section","\".eh_frame_hdr\"")), -Annotation(Region(0x860,0x90B), Attr("section","\".eh_frame\"")), -Annotation(Region(0x10D88,0x1100F), Attr("segment","03 0x10D88 656")), -Annotation(Region(0x10D90,0x10D97), Attr("section","\".fini_array\"")), -Annotation(Region(0x10D98,0x10F87), Attr("section","\".dynamic\"")), -Annotation(Region(0x10F88,0x10FFF), Attr("section","\".got\"")), -Annotation(Region(0x11000,0x1100F), Attr("section","\".data\"")), -Annotation(Region(0x10D88,0x10D8F), Attr("section","\".init_array\"")), -Annotation(Region(0x6C0,0x807), Attr("section","\".text\"")), -Annotation(Region(0x6C0,0x807), Attr("code-region","()")), -Annotation(Region(0x808,0x81B), Attr("code-region","()"))]), -Program(Tid(1_511, "%000005e7"), Attrs([]), - Subs([Sub(Tid(1_456, "@__cxa_finalize"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x640"), -Attr("stub","()")]), "__cxa_finalize", Args([Arg(Tid(1_512, "%000005e8"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("__cxa_finalize_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(896, "@__cxa_finalize"), - Attrs([Attr("address","0x640")]), Phis([]), -Defs([Def(Tid(1_176, "%00000498"), Attrs([Attr("address","0x640"), -Attr("insn","adrp x16, #65536")]), Var("R16",Imm(64)), Int(65536,64)), -Def(Tid(1_183, "%0000049f"), Attrs([Attr("address","0x644"), -Attr("insn","ldr x17, [x16, #0xfa8]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(4008,64)),LittleEndian(),64)), -Def(Tid(1_189, "%000004a5"), Attrs([Attr("address","0x648"), -Attr("insn","add x16, x16, #0xfa8")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(4008,64)))]), Jmps([Call(Tid(1_194, "%000004aa"), - Attrs([Attr("address","0x64C"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), -Sub(Tid(1_457, "@__do_global_dtors_aux"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x780")]), - "__do_global_dtors_aux", Args([Arg(Tid(1_513, "%000005e9"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("__do_global_dtors_aux_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(642, "@__do_global_dtors_aux"), - Attrs([Attr("address","0x780")]), Phis([]), Defs([Def(Tid(646, "%00000286"), - Attrs([Attr("address","0x780"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("#3",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(18446744073709551584,64))), -Def(Tid(652, "%0000028c"), Attrs([Attr("address","0x780"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("#3",Imm(64)),Var("R29",Imm(64)),LittleEndian(),64)), -Def(Tid(658, "%00000292"), Attrs([Attr("address","0x780"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("#3",Imm(64)),Int(8,64)),Var("R30",Imm(64)),LittleEndian(),64)), -Def(Tid(662, "%00000296"), Attrs([Attr("address","0x780"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("R31",Imm(64)), -Var("#3",Imm(64))), Def(Tid(668, "%0000029c"), - Attrs([Attr("address","0x784"), Attr("insn","mov x29, sp")]), - Var("R29",Imm(64)), Var("R31",Imm(64))), Def(Tid(676, "%000002a4"), - Attrs([Attr("address","0x788"), Attr("insn","str x19, [sp, #0x10]")]), - Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(16,64)),Var("R19",Imm(64)),LittleEndian(),64)), -Def(Tid(681, "%000002a9"), Attrs([Attr("address","0x78C"), -Attr("insn","adrp x19, #69632")]), Var("R19",Imm(64)), Int(69632,64)), -Def(Tid(688, "%000002b0"), Attrs([Attr("address","0x790"), -Attr("insn","ldrb w0, [x19, #0x10]")]), Var("R0",Imm(64)), -UNSIGNED(64,Load(Var("mem",Mem(64,8)),PLUS(Var("R19",Imm(64)),Int(16,64)),LittleEndian(),8)))]), -Jmps([Goto(Tid(695, "%000002b7"), Attrs([Attr("address","0x794"), -Attr("insn","cbnz w0, #0x28")]), - NEQ(Extract(31,0,Var("R0",Imm(64))),Int(0,32)), -Direct(Tid(693, "%000002b5"))), Goto(Tid(1_501, "%000005dd"), Attrs([]), - Int(1,1), Direct(Tid(841, "%00000349")))])), Blk(Tid(841, "%00000349"), - Attrs([Attr("address","0x798")]), Phis([]), Defs([Def(Tid(844, "%0000034c"), - Attrs([Attr("address","0x798"), Attr("insn","adrp x0, #65536")]), - Var("R0",Imm(64)), Int(65536,64)), Def(Tid(851, "%00000353"), - Attrs([Attr("address","0x79C"), Attr("insn","ldr x0, [x0, #0xfe0]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(4064,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(857, "%00000359"), Attrs([Attr("address","0x7A0"), -Attr("insn","cbz x0, #0x10")]), EQ(Var("R0",Imm(64)),Int(0,64)), -Direct(Tid(855, "%00000357"))), Goto(Tid(1_502, "%000005de"), Attrs([]), - Int(1,1), Direct(Tid(880, "%00000370")))])), Blk(Tid(880, "%00000370"), - Attrs([Attr("address","0x7A4")]), Phis([]), Defs([Def(Tid(883, "%00000373"), - Attrs([Attr("address","0x7A4"), Attr("insn","adrp x0, #69632")]), - Var("R0",Imm(64)), Int(69632,64)), Def(Tid(890, "%0000037a"), - Attrs([Attr("address","0x7A8"), Attr("insn","ldr x0, [x0, #0x8]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(895, "%0000037f"), Attrs([Attr("address","0x7AC"), -Attr("insn","bl #-0x16c")]), Var("R30",Imm(64)), Int(1968,64))]), -Jmps([Call(Tid(898, "%00000382"), Attrs([Attr("address","0x7AC"), -Attr("insn","bl #-0x16c")]), Int(1,1), -(Direct(Tid(1_456, "@__cxa_finalize")),Direct(Tid(855, "%00000357"))))])), -Blk(Tid(855, "%00000357"), Attrs([Attr("address","0x7B0")]), Phis([]), -Defs([Def(Tid(863, "%0000035f"), Attrs([Attr("address","0x7B0"), -Attr("insn","bl #-0xa0")]), Var("R30",Imm(64)), Int(1972,64))]), -Jmps([Call(Tid(865, "%00000361"), Attrs([Attr("address","0x7B0"), -Attr("insn","bl #-0xa0")]), Int(1,1), -(Direct(Tid(1_470, "@deregister_tm_clones")),Direct(Tid(867, "%00000363"))))])), -Blk(Tid(867, "%00000363"), Attrs([Attr("address","0x7B4")]), Phis([]), -Defs([Def(Tid(870, "%00000366"), Attrs([Attr("address","0x7B4"), -Attr("insn","mov w0, #0x1")]), Var("R0",Imm(64)), Int(1,64)), -Def(Tid(878, "%0000036e"), Attrs([Attr("address","0x7B8"), -Attr("insn","strb w0, [x19, #0x10]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R19",Imm(64)),Int(16,64)),Extract(7,0,Var("R0",Imm(64))),LittleEndian(),8))]), -Jmps([Goto(Tid(1_503, "%000005df"), Attrs([]), Int(1,1), -Direct(Tid(693, "%000002b5")))])), Blk(Tid(693, "%000002b5"), - Attrs([Attr("address","0x7BC")]), Phis([]), Defs([Def(Tid(703, "%000002bf"), - Attrs([Attr("address","0x7BC"), Attr("insn","ldr x19, [sp, #0x10]")]), - Var("R19",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(16,64)),LittleEndian(),64)), -Def(Tid(710, "%000002c6"), Attrs([Attr("address","0x7C0"), -Attr("insn","ldp x29, x30, [sp], #0x20")]), Var("R29",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(715, "%000002cb"), Attrs([Attr("address","0x7C0"), -Attr("insn","ldp x29, x30, [sp], #0x20")]), Var("R30",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(719, "%000002cf"), Attrs([Attr("address","0x7C0"), -Attr("insn","ldp x29, x30, [sp], #0x20")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(32,64)))]), Jmps([Call(Tid(724, "%000002d4"), - Attrs([Attr("address","0x7C4"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), Sub(Tid(1_461, "@__libc_start_main"), - Attrs([Attr("c.proto","signed (*)(signed (*)(signed , char** , char** );* main, signed , char** , \nvoid* auxv)"), -Attr("address","0x630"), Attr("stub","()")]), "__libc_start_main", - Args([Arg(Tid(1_514, "%000005ea"), - Attrs([Attr("c.layout","**[ : 64]"), -Attr("c.data","Top:u64 ptr ptr"), -Attr("c.type","signed (*)(signed , char** , char** );*")]), - Var("__libc_start_main_main",Imm(64)), Var("R0",Imm(64)), In()), -Arg(Tid(1_515, "%000005eb"), Attrs([Attr("c.layout","[signed : 32]"), -Attr("c.data","Top:u32"), Attr("c.type","signed")]), - Var("__libc_start_main_arg2",Imm(32)), LOW(32,Var("R1",Imm(64))), In()), -Arg(Tid(1_516, "%000005ec"), Attrs([Attr("c.layout","**[char : 8]"), -Attr("c.data","Top:u8 ptr ptr"), Attr("c.type","char**")]), - Var("__libc_start_main_arg3",Imm(64)), Var("R2",Imm(64)), Both()), -Arg(Tid(1_517, "%000005ed"), Attrs([Attr("c.layout","*[ : 8]"), -Attr("c.data","{} ptr"), Attr("c.type","void*")]), - Var("__libc_start_main_auxv",Imm(64)), Var("R3",Imm(64)), Both()), -Arg(Tid(1_518, "%000005ee"), Attrs([Attr("c.layout","[signed : 32]"), -Attr("c.data","Top:u32"), Attr("c.type","signed")]), - Var("__libc_start_main_result",Imm(32)), LOW(32,Var("R0",Imm(64))), -Out())]), Blks([Blk(Tid(475, "@__libc_start_main"), - Attrs([Attr("address","0x630")]), Phis([]), -Defs([Def(Tid(1_154, "%00000482"), Attrs([Attr("address","0x630"), -Attr("insn","adrp x16, #65536")]), Var("R16",Imm(64)), Int(65536,64)), -Def(Tid(1_161, "%00000489"), Attrs([Attr("address","0x634"), -Attr("insn","ldr x17, [x16, #0xfa0]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(4000,64)),LittleEndian(),64)), -Def(Tid(1_167, "%0000048f"), Attrs([Attr("address","0x638"), -Attr("insn","add x16, x16, #0xfa0")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(4000,64)))]), Jmps([Call(Tid(1_172, "%00000494"), - Attrs([Attr("address","0x63C"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), Sub(Tid(1_462, "@_fini"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x808")]), - "_fini", Args([Arg(Tid(1_519, "%000005ef"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("_fini_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(31, "@_fini"), - Attrs([Attr("address","0x808")]), Phis([]), Defs([Def(Tid(37, "%00000025"), - Attrs([Attr("address","0x80C"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("#0",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(18446744073709551600,64))), -Def(Tid(43, "%0000002b"), Attrs([Attr("address","0x80C"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("#0",Imm(64)),Var("R29",Imm(64)),LittleEndian(),64)), -Def(Tid(49, "%00000031"), Attrs([Attr("address","0x80C"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("#0",Imm(64)),Int(8,64)),Var("R30",Imm(64)),LittleEndian(),64)), -Def(Tid(53, "%00000035"), Attrs([Attr("address","0x80C"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("R31",Imm(64)), -Var("#0",Imm(64))), Def(Tid(59, "%0000003b"), Attrs([Attr("address","0x810"), -Attr("insn","mov x29, sp")]), Var("R29",Imm(64)), Var("R31",Imm(64))), -Def(Tid(66, "%00000042"), Attrs([Attr("address","0x814"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R29",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(71, "%00000047"), Attrs([Attr("address","0x814"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R30",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(75, "%0000004b"), Attrs([Attr("address","0x814"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(16,64)))]), Jmps([Call(Tid(80, "%00000050"), - Attrs([Attr("address","0x818"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), Sub(Tid(1_463, "@_init"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x5F0")]), - "_init", Args([Arg(Tid(1_520, "%000005f0"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("_init_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(1_310, "@_init"), - Attrs([Attr("address","0x5F0")]), Phis([]), -Defs([Def(Tid(1_316, "%00000524"), Attrs([Attr("address","0x5F4"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("#6",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(18446744073709551600,64))), -Def(Tid(1_322, "%0000052a"), Attrs([Attr("address","0x5F4"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("#6",Imm(64)),Var("R29",Imm(64)),LittleEndian(),64)), -Def(Tid(1_328, "%00000530"), Attrs([Attr("address","0x5F4"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("#6",Imm(64)),Int(8,64)),Var("R30",Imm(64)),LittleEndian(),64)), -Def(Tid(1_332, "%00000534"), Attrs([Attr("address","0x5F4"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("R31",Imm(64)), -Var("#6",Imm(64))), Def(Tid(1_338, "%0000053a"), - Attrs([Attr("address","0x5F8"), Attr("insn","mov x29, sp")]), - Var("R29",Imm(64)), Var("R31",Imm(64))), Def(Tid(1_343, "%0000053f"), - Attrs([Attr("address","0x5FC"), Attr("insn","bl #0xf8")]), - Var("R30",Imm(64)), Int(1536,64))]), Jmps([Call(Tid(1_345, "%00000541"), - Attrs([Attr("address","0x5FC"), Attr("insn","bl #0xf8")]), Int(1,1), -(Direct(Tid(1_468, "@call_weak_fn")),Direct(Tid(1_347, "%00000543"))))])), -Blk(Tid(1_347, "%00000543"), Attrs([Attr("address","0x600")]), Phis([]), -Defs([Def(Tid(1_352, "%00000548"), Attrs([Attr("address","0x600"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R29",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(1_357, "%0000054d"), Attrs([Attr("address","0x600"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R30",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(1_361, "%00000551"), Attrs([Attr("address","0x600"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(16,64)))]), Jmps([Call(Tid(1_366, "%00000556"), - Attrs([Attr("address","0x604"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), Sub(Tid(1_464, "@_start"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x6C0"), -Attr("entry-point","()")]), "_start", Args([Arg(Tid(1_521, "%000005f1"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("_start_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(412, "@_start"), - Attrs([Attr("address","0x6C0")]), Phis([]), Defs([Def(Tid(417, "%000001a1"), - Attrs([Attr("address","0x6C4"), Attr("insn","mov x29, #0x0")]), - Var("R29",Imm(64)), Int(0,64)), Def(Tid(422, "%000001a6"), - Attrs([Attr("address","0x6C8"), Attr("insn","mov x30, #0x0")]), - Var("R30",Imm(64)), Int(0,64)), Def(Tid(428, "%000001ac"), - Attrs([Attr("address","0x6CC"), Attr("insn","mov x5, x0")]), - Var("R5",Imm(64)), Var("R0",Imm(64))), Def(Tid(435, "%000001b3"), - Attrs([Attr("address","0x6D0"), Attr("insn","ldr x1, [sp]")]), - Var("R1",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(441, "%000001b9"), Attrs([Attr("address","0x6D4"), -Attr("insn","add x2, sp, #0x8")]), Var("R2",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(8,64))), Def(Tid(447, "%000001bf"), - Attrs([Attr("address","0x6D8"), Attr("insn","mov x6, sp")]), - Var("R6",Imm(64)), Var("R31",Imm(64))), Def(Tid(452, "%000001c4"), - Attrs([Attr("address","0x6DC"), Attr("insn","adrp x0, #65536")]), - Var("R0",Imm(64)), Int(65536,64)), Def(Tid(459, "%000001cb"), - Attrs([Attr("address","0x6E0"), Attr("insn","ldr x0, [x0, #0xff0]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(4080,64)),LittleEndian(),64)), -Def(Tid(464, "%000001d0"), Attrs([Attr("address","0x6E4"), -Attr("insn","mov x3, #0x0")]), Var("R3",Imm(64)), Int(0,64)), -Def(Tid(469, "%000001d5"), Attrs([Attr("address","0x6E8"), -Attr("insn","mov x4, #0x0")]), Var("R4",Imm(64)), Int(0,64)), -Def(Tid(474, "%000001da"), Attrs([Attr("address","0x6EC"), -Attr("insn","bl #-0xbc")]), Var("R30",Imm(64)), Int(1776,64))]), -Jmps([Call(Tid(477, "%000001dd"), Attrs([Attr("address","0x6EC"), -Attr("insn","bl #-0xbc")]), Int(1,1), -(Direct(Tid(1_461, "@__libc_start_main")),Direct(Tid(479, "%000001df"))))])), -Blk(Tid(479, "%000001df"), Attrs([Attr("address","0x6F0")]), Phis([]), -Defs([Def(Tid(482, "%000001e2"), Attrs([Attr("address","0x6F0"), -Attr("insn","bl #-0x80")]), Var("R30",Imm(64)), Int(1780,64))]), -Jmps([Call(Tid(485, "%000001e5"), Attrs([Attr("address","0x6F0"), -Attr("insn","bl #-0x80")]), Int(1,1), -(Direct(Tid(1_467, "@abort")),Direct(Tid(1_504, "%000005e0"))))])), -Blk(Tid(1_504, "%000005e0"), Attrs([]), Phis([]), Defs([]), -Jmps([Call(Tid(1_505, "%000005e1"), Attrs([]), Int(1,1), -(Direct(Tid(1_468, "@call_weak_fn")),))]))])), Sub(Tid(1_467, "@abort"), - Attrs([Attr("noreturn","()"), Attr("c.proto","void (*)(void)"), -Attr("address","0x670"), Attr("stub","()")]), "abort", Args([]), -Blks([Blk(Tid(483, "@abort"), Attrs([Attr("address","0x670")]), Phis([]), -Defs([Def(Tid(1_242, "%000004da"), Attrs([Attr("address","0x670"), -Attr("insn","adrp x16, #65536")]), Var("R16",Imm(64)), Int(65536,64)), -Def(Tid(1_249, "%000004e1"), Attrs([Attr("address","0x674"), -Attr("insn","ldr x17, [x16, #0xfc0]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(4032,64)),LittleEndian(),64)), -Def(Tid(1_255, "%000004e7"), Attrs([Attr("address","0x678"), -Attr("insn","add x16, x16, #0xfc0")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(4032,64)))]), Jmps([Call(Tid(1_260, "%000004ec"), - Attrs([Attr("address","0x67C"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), Sub(Tid(1_468, "@call_weak_fn"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x6F4")]), - "call_weak_fn", Args([Arg(Tid(1_522, "%000005f2"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("call_weak_fn_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(487, "@call_weak_fn"), - Attrs([Attr("address","0x6F4")]), Phis([]), Defs([Def(Tid(490, "%000001ea"), - Attrs([Attr("address","0x6F4"), Attr("insn","adrp x0, #65536")]), - Var("R0",Imm(64)), Int(65536,64)), Def(Tid(497, "%000001f1"), - Attrs([Attr("address","0x6F8"), Attr("insn","ldr x0, [x0, #0xfe8]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(4072,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(503, "%000001f7"), Attrs([Attr("address","0x6FC"), -Attr("insn","cbz x0, #0x8")]), EQ(Var("R0",Imm(64)),Int(0,64)), -Direct(Tid(501, "%000001f5"))), Goto(Tid(1_506, "%000005e2"), Attrs([]), - Int(1,1), Direct(Tid(960, "%000003c0")))])), Blk(Tid(501, "%000001f5"), - Attrs([Attr("address","0x704")]), Phis([]), Defs([]), -Jmps([Call(Tid(509, "%000001fd"), Attrs([Attr("address","0x704"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))])), -Blk(Tid(960, "%000003c0"), Attrs([Attr("address","0x700")]), Phis([]), -Defs([]), Jmps([Goto(Tid(963, "%000003c3"), Attrs([Attr("address","0x700"), -Attr("insn","b #-0xa0")]), Int(1,1), Direct(Tid(961, "@__gmon_start__")))])), -Blk(Tid(961, "@__gmon_start__"), Attrs([Attr("address","0x660")]), Phis([]), -Defs([Def(Tid(1_220, "%000004c4"), Attrs([Attr("address","0x660"), -Attr("insn","adrp x16, #65536")]), Var("R16",Imm(64)), Int(65536,64)), -Def(Tid(1_227, "%000004cb"), Attrs([Attr("address","0x664"), -Attr("insn","ldr x17, [x16, #0xfb8]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(4024,64)),LittleEndian(),64)), -Def(Tid(1_233, "%000004d1"), Attrs([Attr("address","0x668"), -Attr("insn","add x16, x16, #0xfb8")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(4024,64)))]), Jmps([Call(Tid(1_238, "%000004d6"), - Attrs([Attr("address","0x66C"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), -Sub(Tid(1_470, "@deregister_tm_clones"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x710")]), - "deregister_tm_clones", Args([Arg(Tid(1_523, "%000005f3"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("deregister_tm_clones_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(515, "@deregister_tm_clones"), - Attrs([Attr("address","0x710")]), Phis([]), Defs([Def(Tid(518, "%00000206"), - Attrs([Attr("address","0x710"), Attr("insn","adrp x0, #69632")]), - Var("R0",Imm(64)), Int(69632,64)), Def(Tid(524, "%0000020c"), - Attrs([Attr("address","0x714"), Attr("insn","add x0, x0, #0x10")]), - Var("R0",Imm(64)), PLUS(Var("R0",Imm(64)),Int(16,64))), -Def(Tid(529, "%00000211"), Attrs([Attr("address","0x718"), -Attr("insn","adrp x1, #69632")]), Var("R1",Imm(64)), Int(69632,64)), -Def(Tid(535, "%00000217"), Attrs([Attr("address","0x71C"), -Attr("insn","add x1, x1, #0x10")]), Var("R1",Imm(64)), -PLUS(Var("R1",Imm(64)),Int(16,64))), Def(Tid(541, "%0000021d"), - Attrs([Attr("address","0x720"), Attr("insn","cmp x1, x0")]), - Var("#1",Imm(64)), NOT(Var("R0",Imm(64)))), Def(Tid(546, "%00000222"), - Attrs([Attr("address","0x720"), Attr("insn","cmp x1, x0")]), - Var("#2",Imm(64)), PLUS(Var("R1",Imm(64)),NOT(Var("R0",Imm(64))))), -Def(Tid(552, "%00000228"), Attrs([Attr("address","0x720"), -Attr("insn","cmp x1, x0")]), Var("VF",Imm(1)), -NEQ(SIGNED(65,PLUS(Var("#2",Imm(64)),Int(1,64))),PLUS(PLUS(SIGNED(65,Var("R1",Imm(64))),SIGNED(65,Var("#1",Imm(64)))),Int(1,65)))), -Def(Tid(558, "%0000022e"), Attrs([Attr("address","0x720"), -Attr("insn","cmp x1, x0")]), Var("CF",Imm(1)), -NEQ(UNSIGNED(65,PLUS(Var("#2",Imm(64)),Int(1,64))),PLUS(PLUS(UNSIGNED(65,Var("R1",Imm(64))),UNSIGNED(65,Var("#1",Imm(64)))),Int(1,65)))), -Def(Tid(562, "%00000232"), Attrs([Attr("address","0x720"), -Attr("insn","cmp x1, x0")]), Var("ZF",Imm(1)), -EQ(PLUS(Var("#2",Imm(64)),Int(1,64)),Int(0,64))), Def(Tid(566, "%00000236"), - Attrs([Attr("address","0x720"), Attr("insn","cmp x1, x0")]), - Var("NF",Imm(1)), Extract(63,63,PLUS(Var("#2",Imm(64)),Int(1,64))))]), -Jmps([Goto(Tid(572, "%0000023c"), Attrs([Attr("address","0x724"), -Attr("insn","b.eq #0x18")]), EQ(Var("ZF",Imm(1)),Int(1,1)), -Direct(Tid(570, "%0000023a"))), Goto(Tid(1_507, "%000005e3"), Attrs([]), - Int(1,1), Direct(Tid(930, "%000003a2")))])), Blk(Tid(930, "%000003a2"), - Attrs([Attr("address","0x728")]), Phis([]), Defs([Def(Tid(933, "%000003a5"), - Attrs([Attr("address","0x728"), Attr("insn","adrp x1, #65536")]), - Var("R1",Imm(64)), Int(65536,64)), Def(Tid(940, "%000003ac"), - Attrs([Attr("address","0x72C"), Attr("insn","ldr x1, [x1, #0xfd8]")]), - Var("R1",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R1",Imm(64)),Int(4056,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(945, "%000003b1"), Attrs([Attr("address","0x730"), -Attr("insn","cbz x1, #0xc")]), EQ(Var("R1",Imm(64)),Int(0,64)), -Direct(Tid(570, "%0000023a"))), Goto(Tid(1_508, "%000005e4"), Attrs([]), - Int(1,1), Direct(Tid(949, "%000003b5")))])), Blk(Tid(570, "%0000023a"), - Attrs([Attr("address","0x73C")]), Phis([]), Defs([]), -Jmps([Call(Tid(578, "%00000242"), Attrs([Attr("address","0x73C"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))])), -Blk(Tid(949, "%000003b5"), Attrs([Attr("address","0x734")]), Phis([]), -Defs([Def(Tid(953, "%000003b9"), Attrs([Attr("address","0x734"), -Attr("insn","mov x16, x1")]), Var("R16",Imm(64)), Var("R1",Imm(64)))]), -Jmps([Call(Tid(958, "%000003be"), Attrs([Attr("address","0x738"), -Attr("insn","br x16")]), Int(1,1), (Indirect(Var("R16",Imm(64))),))]))])), -Sub(Tid(1_473, "@frame_dummy"), Attrs([Attr("c.proto","signed (*)(void)"), -Attr("address","0x7D0")]), "frame_dummy", Args([Arg(Tid(1_524, "%000005f4"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("frame_dummy_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(730, "@frame_dummy"), - Attrs([Attr("address","0x7D0")]), Phis([]), Defs([]), -Jmps([Call(Tid(732, "%000002dc"), Attrs([Attr("address","0x7D0"), -Attr("insn","b #-0x90")]), Int(1,1), -(Direct(Tid(1_477, "@register_tm_clones")),))]))])), Sub(Tid(1_474, "@free"), - Attrs([Attr("c.proto","void (*)(void* ptr)"), Attr("address","0x680"), -Attr("stub","()")]), "free", Args([Arg(Tid(1_525, "%000005f5"), - Attrs([Attr("c.layout","*[ : 8]"), Attr("c.data","{} ptr"), -Attr("c.type","void*")]), Var("free_ptr",Imm(64)), Var("R0",Imm(64)), -Both())]), Blks([Blk(Tid(814, "@free"), Attrs([Attr("address","0x680")]), - Phis([]), Defs([Def(Tid(1_264, "%000004f0"), Attrs([Attr("address","0x680"), -Attr("insn","adrp x16, #65536")]), Var("R16",Imm(64)), Int(65536,64)), -Def(Tid(1_271, "%000004f7"), Attrs([Attr("address","0x684"), -Attr("insn","ldr x17, [x16, #0xfc8]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(4040,64)),LittleEndian(),64)), -Def(Tid(1_277, "%000004fd"), Attrs([Attr("address","0x688"), -Attr("insn","add x16, x16, #0xfc8")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(4040,64)))]), Jmps([Call(Tid(1_282, "%00000502"), - Attrs([Attr("address","0x68C"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), Sub(Tid(1_475, "@main"), - Attrs([Attr("c.proto","signed (*)(signed argc, const char** argv)"), -Attr("address","0x7D4")]), "main", Args([Arg(Tid(1_526, "%000005f6"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("main_argc",Imm(32)), -LOW(32,Var("R0",Imm(64))), In()), Arg(Tid(1_527, "%000005f7"), - Attrs([Attr("c.layout","**[char : 8]"), Attr("c.data","Top:u8 ptr ptr"), -Attr("c.type"," const char**")]), Var("main_argv",Imm(64)), -Var("R1",Imm(64)), Both()), Arg(Tid(1_528, "%000005f8"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("main_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(734, "@main"), - Attrs([Attr("address","0x7D4")]), Phis([]), Defs([Def(Tid(738, "%000002e2"), - Attrs([Attr("address","0x7D4"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("#4",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(18446744073709551584,64))), -Def(Tid(744, "%000002e8"), Attrs([Attr("address","0x7D4"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("#4",Imm(64)),Var("R29",Imm(64)),LittleEndian(),64)), -Def(Tid(750, "%000002ee"), Attrs([Attr("address","0x7D4"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("#4",Imm(64)),Int(8,64)),Var("R30",Imm(64)),LittleEndian(),64)), -Def(Tid(754, "%000002f2"), Attrs([Attr("address","0x7D4"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("R31",Imm(64)), -Var("#4",Imm(64))), Def(Tid(760, "%000002f8"), - Attrs([Attr("address","0x7D8"), Attr("insn","mov x29, sp")]), - Var("R29",Imm(64)), Var("R31",Imm(64))), Def(Tid(765, "%000002fd"), - Attrs([Attr("address","0x7DC"), Attr("insn","mov x0, #0x4")]), - Var("R0",Imm(64)), Int(4,64)), Def(Tid(770, "%00000302"), - Attrs([Attr("address","0x7E0"), Attr("insn","bl #-0x190")]), - Var("R30",Imm(64)), Int(2020,64))]), Jmps([Call(Tid(773, "%00000305"), - Attrs([Attr("address","0x7E0"), Attr("insn","bl #-0x190")]), Int(1,1), -(Direct(Tid(1_476, "@malloc")),Direct(Tid(775, "%00000307"))))])), -Blk(Tid(775, "%00000307"), Attrs([Attr("address","0x7E4")]), Phis([]), -Defs([Def(Tid(781, "%0000030d"), Attrs([Attr("address","0x7E4"), -Attr("insn","str x0, [sp, #0x18]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(24,64)),Var("R0",Imm(64)),LittleEndian(),64)), -Def(Tid(788, "%00000314"), Attrs([Attr("address","0x7E8"), -Attr("insn","ldr x0, [sp, #0x18]")]), Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(24,64)),LittleEndian(),64)), -Def(Tid(793, "%00000319"), Attrs([Attr("address","0x7EC"), -Attr("insn","mov w1, #0x1")]), Var("R1",Imm(64)), Int(1,64)), -Def(Tid(801, "%00000321"), Attrs([Attr("address","0x7F0"), -Attr("insn","str w1, [x0]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("R0",Imm(64)),Extract(31,0,Var("R1",Imm(64))),LittleEndian(),32)), -Def(Tid(808, "%00000328"), Attrs([Attr("address","0x7F4"), -Attr("insn","ldr x0, [sp, #0x18]")]), Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(24,64)),LittleEndian(),64)), -Def(Tid(813, "%0000032d"), Attrs([Attr("address","0x7F8"), -Attr("insn","bl #-0x178")]), Var("R30",Imm(64)), Int(2044,64))]), -Jmps([Call(Tid(816, "%00000330"), Attrs([Attr("address","0x7F8"), -Attr("insn","bl #-0x178")]), Int(1,1), -(Direct(Tid(1_474, "@free")),Direct(Tid(818, "%00000332"))))])), -Blk(Tid(818, "%00000332"), Attrs([Attr("address","0x7FC")]), Phis([]), -Defs([Def(Tid(825, "%00000339"), Attrs([Attr("address","0x800"), -Attr("insn","ldp x29, x30, [sp], #0x20")]), Var("R29",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(830, "%0000033e"), Attrs([Attr("address","0x800"), -Attr("insn","ldp x29, x30, [sp], #0x20")]), Var("R30",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(834, "%00000342"), Attrs([Attr("address","0x800"), -Attr("insn","ldp x29, x30, [sp], #0x20")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(32,64)))]), Jmps([Call(Tid(839, "%00000347"), - Attrs([Attr("address","0x804"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), Sub(Tid(1_476, "@malloc"), - Attrs([Attr("c.proto","void* (*)(unsigned long size)"), -Attr("address","0x650"), Attr("malloc","()"), Attr("stub","()")]), "malloc", - Args([Arg(Tid(1_529, "%000005f9"), Attrs([Attr("alloc-size","()"), -Attr("c.layout","[unsigned long : 64]"), Attr("c.data","Top:u64"), -Attr("c.type","unsigned long")]), Var("malloc_size",Imm(64)), -Var("R0",Imm(64)), In()), Arg(Tid(1_530, "%000005fa"), - Attrs([Attr("warn-unused","()"), Attr("c.layout","*[ : 8]"), -Attr("c.data","{} ptr"), Attr("c.type","void*")]), - Var("malloc_result",Imm(64)), Var("R0",Imm(64)), Out())]), -Blks([Blk(Tid(771, "@malloc"), Attrs([Attr("address","0x650")]), Phis([]), -Defs([Def(Tid(1_198, "%000004ae"), Attrs([Attr("address","0x650"), -Attr("insn","adrp x16, #65536")]), Var("R16",Imm(64)), Int(65536,64)), -Def(Tid(1_205, "%000004b5"), Attrs([Attr("address","0x654"), -Attr("insn","ldr x17, [x16, #0xfb0]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(4016,64)),LittleEndian(),64)), -Def(Tid(1_211, "%000004bb"), Attrs([Attr("address","0x658"), -Attr("insn","add x16, x16, #0xfb0")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(4016,64)))]), Jmps([Call(Tid(1_216, "%000004c0"), - Attrs([Attr("address","0x65C"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), -Sub(Tid(1_477, "@register_tm_clones"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x740")]), - "register_tm_clones", Args([Arg(Tid(1_531, "%000005fb"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("register_tm_clones_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(580, "@register_tm_clones"), Attrs([Attr("address","0x740")]), - Phis([]), Defs([Def(Tid(583, "%00000247"), Attrs([Attr("address","0x740"), -Attr("insn","adrp x0, #69632")]), Var("R0",Imm(64)), Int(69632,64)), -Def(Tid(589, "%0000024d"), Attrs([Attr("address","0x744"), -Attr("insn","add x0, x0, #0x10")]), Var("R0",Imm(64)), -PLUS(Var("R0",Imm(64)),Int(16,64))), Def(Tid(594, "%00000252"), - Attrs([Attr("address","0x748"), Attr("insn","adrp x1, #69632")]), - Var("R1",Imm(64)), Int(69632,64)), Def(Tid(600, "%00000258"), - Attrs([Attr("address","0x74C"), Attr("insn","add x1, x1, #0x10")]), - Var("R1",Imm(64)), PLUS(Var("R1",Imm(64)),Int(16,64))), -Def(Tid(607, "%0000025f"), Attrs([Attr("address","0x750"), -Attr("insn","sub x1, x1, x0")]), Var("R1",Imm(64)), -PLUS(PLUS(Var("R1",Imm(64)),NOT(Var("R0",Imm(64)))),Int(1,64))), -Def(Tid(613, "%00000265"), Attrs([Attr("address","0x754"), -Attr("insn","lsr x2, x1, #63")]), Var("R2",Imm(64)), -Concat(Int(0,63),Extract(63,63,Var("R1",Imm(64))))), -Def(Tid(620, "%0000026c"), Attrs([Attr("address","0x758"), -Attr("insn","add x1, x2, x1, asr #3")]), Var("R1",Imm(64)), -PLUS(Var("R2",Imm(64)),ARSHIFT(Var("R1",Imm(64)),Int(3,3)))), -Def(Tid(626, "%00000272"), Attrs([Attr("address","0x75C"), -Attr("insn","asr x1, x1, #1")]), Var("R1",Imm(64)), -SIGNED(64,Extract(63,1,Var("R1",Imm(64)))))]), -Jmps([Goto(Tid(632, "%00000278"), Attrs([Attr("address","0x760"), -Attr("insn","cbz x1, #0x18")]), EQ(Var("R1",Imm(64)),Int(0,64)), -Direct(Tid(630, "%00000276"))), Goto(Tid(1_509, "%000005e5"), Attrs([]), - Int(1,1), Direct(Tid(900, "%00000384")))])), Blk(Tid(900, "%00000384"), - Attrs([Attr("address","0x764")]), Phis([]), Defs([Def(Tid(903, "%00000387"), - Attrs([Attr("address","0x764"), Attr("insn","adrp x2, #65536")]), - Var("R2",Imm(64)), Int(65536,64)), Def(Tid(910, "%0000038e"), - Attrs([Attr("address","0x768"), Attr("insn","ldr x2, [x2, #0xff8]")]), - Var("R2",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R2",Imm(64)),Int(4088,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(915, "%00000393"), Attrs([Attr("address","0x76C"), -Attr("insn","cbz x2, #0xc")]), EQ(Var("R2",Imm(64)),Int(0,64)), -Direct(Tid(630, "%00000276"))), Goto(Tid(1_510, "%000005e6"), Attrs([]), - Int(1,1), Direct(Tid(919, "%00000397")))])), Blk(Tid(630, "%00000276"), - Attrs([Attr("address","0x778")]), Phis([]), Defs([]), -Jmps([Call(Tid(638, "%0000027e"), Attrs([Attr("address","0x778"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))])), -Blk(Tid(919, "%00000397"), Attrs([Attr("address","0x770")]), Phis([]), -Defs([Def(Tid(923, "%0000039b"), Attrs([Attr("address","0x770"), -Attr("insn","mov x16, x2")]), Var("R16",Imm(64)), Var("R2",Imm(64)))]), -Jmps([Call(Tid(928, "%000003a0"), Attrs([Attr("address","0x774"), -Attr("insn","br x16")]), Int(1,1), -(Indirect(Var("R16",Imm(64))),))]))]))]))) \ No newline at end of file diff --git a/src/test/correct/basicfree/gcc/basicfree.bir b/src/test/correct/basicfree/gcc/basicfree.bir deleted file mode 100644 index 7405abbb9..000000000 --- a/src/test/correct/basicfree/gcc/basicfree.bir +++ /dev/null @@ -1,264 +0,0 @@ -000005e7: program -000005b0: sub __cxa_finalize(__cxa_finalize_result) -000005e8: __cxa_finalize_result :: out u32 = low:32[R0] - -00000380: -00000498: R16 := 0x10000 -0000049f: R17 := mem[R16 + 0xFA8, el]:u64 -000004a5: R16 := R16 + 0xFA8 -000004aa: call R17 with noreturn - -000005b1: sub __do_global_dtors_aux(__do_global_dtors_aux_result) -000005e9: __do_global_dtors_aux_result :: out u32 = low:32[R0] - -00000282: -00000286: #3 := R31 - 0x20 -0000028c: mem := mem with [#3, el]:u64 <- R29 -00000292: mem := mem with [#3 + 8, el]:u64 <- R30 -00000296: R31 := #3 -0000029c: R29 := R31 -000002a4: mem := mem with [R31 + 0x10, el]:u64 <- R19 -000002a9: R19 := 0x11000 -000002b0: R0 := pad:64[mem[R19 + 0x10]] -000002b7: when 31:0[R0] <> 0 goto %000002b5 -000005dd: goto %00000349 - -00000349: -0000034c: R0 := 0x10000 -00000353: R0 := mem[R0 + 0xFE0, el]:u64 -00000359: when R0 = 0 goto %00000357 -000005de: goto %00000370 - -00000370: -00000373: R0 := 0x11000 -0000037a: R0 := mem[R0 + 8, el]:u64 -0000037f: R30 := 0x7B0 -00000382: call @__cxa_finalize with return %00000357 - -00000357: -0000035f: R30 := 0x7B4 -00000361: call @deregister_tm_clones with return %00000363 - -00000363: -00000366: R0 := 1 -0000036e: mem := mem with [R19 + 0x10] <- 7:0[R0] -000005df: goto %000002b5 - -000002b5: -000002bf: R19 := mem[R31 + 0x10, el]:u64 -000002c6: R29 := mem[R31, el]:u64 -000002cb: R30 := mem[R31 + 8, el]:u64 -000002cf: R31 := R31 + 0x20 -000002d4: call R30 with noreturn - -000005b5: sub __libc_start_main(__libc_start_main_main, __libc_start_main_arg2, __libc_start_main_arg3, __libc_start_main_auxv, __libc_start_main_result) -000005ea: __libc_start_main_main :: in u64 = R0 -000005eb: __libc_start_main_arg2 :: in u32 = low:32[R1] -000005ec: __libc_start_main_arg3 :: in out u64 = R2 -000005ed: __libc_start_main_auxv :: in out u64 = R3 -000005ee: __libc_start_main_result :: out u32 = low:32[R0] - -000001db: -00000482: R16 := 0x10000 -00000489: R17 := mem[R16 + 0xFA0, el]:u64 -0000048f: R16 := R16 + 0xFA0 -00000494: call R17 with noreturn - -000005b6: sub _fini(_fini_result) -000005ef: _fini_result :: out u32 = low:32[R0] - -0000001f: -00000025: #0 := R31 - 0x10 -0000002b: mem := mem with [#0, el]:u64 <- R29 -00000031: mem := mem with [#0 + 8, el]:u64 <- R30 -00000035: R31 := #0 -0000003b: R29 := R31 -00000042: R29 := mem[R31, el]:u64 -00000047: R30 := mem[R31 + 8, el]:u64 -0000004b: R31 := R31 + 0x10 -00000050: call R30 with noreturn - -000005b7: sub _init(_init_result) -000005f0: _init_result :: out u32 = low:32[R0] - -0000051e: -00000524: #6 := R31 - 0x10 -0000052a: mem := mem with [#6, el]:u64 <- R29 -00000530: mem := mem with [#6 + 8, el]:u64 <- R30 -00000534: R31 := #6 -0000053a: R29 := R31 -0000053f: R30 := 0x600 -00000541: call @call_weak_fn with return %00000543 - -00000543: -00000548: R29 := mem[R31, el]:u64 -0000054d: R30 := mem[R31 + 8, el]:u64 -00000551: R31 := R31 + 0x10 -00000556: call R30 with noreturn - -000005b8: sub _start(_start_result) -000005f1: _start_result :: out u32 = low:32[R0] - -0000019c: -000001a1: R29 := 0 -000001a6: R30 := 0 -000001ac: R5 := R0 -000001b3: R1 := mem[R31, el]:u64 -000001b9: R2 := R31 + 8 -000001bf: R6 := R31 -000001c4: R0 := 0x10000 -000001cb: R0 := mem[R0 + 0xFF0, el]:u64 -000001d0: R3 := 0 -000001d5: R4 := 0 -000001da: R30 := 0x6F0 -000001dd: call @__libc_start_main with return %000001df - -000001df: -000001e2: R30 := 0x6F4 -000001e5: call @abort with return %000005e0 - -000005e0: -000005e1: call @call_weak_fn with noreturn - -000005bb: sub abort() - - -000001e3: -000004da: R16 := 0x10000 -000004e1: R17 := mem[R16 + 0xFC0, el]:u64 -000004e7: R16 := R16 + 0xFC0 -000004ec: call R17 with noreturn - -000005bc: sub call_weak_fn(call_weak_fn_result) -000005f2: call_weak_fn_result :: out u32 = low:32[R0] - -000001e7: -000001ea: R0 := 0x10000 -000001f1: R0 := mem[R0 + 0xFE8, el]:u64 -000001f7: when R0 = 0 goto %000001f5 -000005e2: goto %000003c0 - -000001f5: -000001fd: call R30 with noreturn - -000003c0: -000003c3: goto @__gmon_start__ - -000003c1: -000004c4: R16 := 0x10000 -000004cb: R17 := mem[R16 + 0xFB8, el]:u64 -000004d1: R16 := R16 + 0xFB8 -000004d6: call R17 with noreturn - -000005be: sub deregister_tm_clones(deregister_tm_clones_result) -000005f3: deregister_tm_clones_result :: out u32 = low:32[R0] - -00000203: -00000206: R0 := 0x11000 -0000020c: R0 := R0 + 0x10 -00000211: R1 := 0x11000 -00000217: R1 := R1 + 0x10 -0000021d: #1 := ~R0 -00000222: #2 := R1 + ~R0 -00000228: VF := extend:65[#2 + 1] <> extend:65[R1] + extend:65[#1] + 1 -0000022e: CF := pad:65[#2 + 1] <> pad:65[R1] + pad:65[#1] + 1 -00000232: ZF := #2 + 1 = 0 -00000236: NF := 63:63[#2 + 1] -0000023c: when ZF goto %0000023a -000005e3: goto %000003a2 - -000003a2: -000003a5: R1 := 0x10000 -000003ac: R1 := mem[R1 + 0xFD8, el]:u64 -000003b1: when R1 = 0 goto %0000023a -000005e4: goto %000003b5 - -0000023a: -00000242: call R30 with noreturn - -000003b5: -000003b9: R16 := R1 -000003be: call R16 with noreturn - -000005c1: sub frame_dummy(frame_dummy_result) -000005f4: frame_dummy_result :: out u32 = low:32[R0] - -000002da: -000002dc: call @register_tm_clones with noreturn - -000005c2: sub free(free_ptr) -000005f5: free_ptr :: in out u64 = R0 - -0000032e: -000004f0: R16 := 0x10000 -000004f7: R17 := mem[R16 + 0xFC8, el]:u64 -000004fd: R16 := R16 + 0xFC8 -00000502: call R17 with noreturn - -000005c3: sub main(main_argc, main_argv, main_result) -000005f6: main_argc :: in u32 = low:32[R0] -000005f7: main_argv :: in out u64 = R1 -000005f8: main_result :: out u32 = low:32[R0] - -000002de: -000002e2: #4 := R31 - 0x20 -000002e8: mem := mem with [#4, el]:u64 <- R29 -000002ee: mem := mem with [#4 + 8, el]:u64 <- R30 -000002f2: R31 := #4 -000002f8: R29 := R31 -000002fd: R0 := 4 -00000302: R30 := 0x7E4 -00000305: call @malloc with return %00000307 - -00000307: -0000030d: mem := mem with [R31 + 0x18, el]:u64 <- R0 -00000314: R0 := mem[R31 + 0x18, el]:u64 -00000319: R1 := 1 -00000321: mem := mem with [R0, el]:u32 <- 31:0[R1] -00000328: R0 := mem[R31 + 0x18, el]:u64 -0000032d: R30 := 0x7FC -00000330: call @free with return %00000332 - -00000332: -00000339: R29 := mem[R31, el]:u64 -0000033e: R30 := mem[R31 + 8, el]:u64 -00000342: R31 := R31 + 0x20 -00000347: call R30 with noreturn - -000005c4: sub malloc(malloc_size, malloc_result) -000005f9: malloc_size :: in u64 = R0 -000005fa: malloc_result :: out u64 = R0 - -00000303: -000004ae: R16 := 0x10000 -000004b5: R17 := mem[R16 + 0xFB0, el]:u64 -000004bb: R16 := R16 + 0xFB0 -000004c0: call R17 with noreturn - -000005c5: sub register_tm_clones(register_tm_clones_result) -000005fb: register_tm_clones_result :: out u32 = low:32[R0] - -00000244: -00000247: R0 := 0x11000 -0000024d: R0 := R0 + 0x10 -00000252: R1 := 0x11000 -00000258: R1 := R1 + 0x10 -0000025f: R1 := R1 + ~R0 + 1 -00000265: R2 := 0.63:63[R1] -0000026c: R1 := R2 + (R1 ~>> 3) -00000272: R1 := extend:64[63:1[R1]] -00000278: when R1 = 0 goto %00000276 -000005e5: goto %00000384 - -00000384: -00000387: R2 := 0x10000 -0000038e: R2 := mem[R2 + 0xFF8, el]:u64 -00000393: when R2 = 0 goto %00000276 -000005e6: goto %00000397 - -00000276: -0000027e: call R30 with noreturn - -00000397: -0000039b: R16 := R2 -000003a0: call R16 with noreturn diff --git a/src/test/correct/basicfree/gcc/basicfree.expected b/src/test/correct/basicfree/gcc/basicfree.expected index e32a45aae..b2560d6a7 100644 --- a/src/test/correct/basicfree/gcc/basicfree.expected +++ b/src/test/correct/basicfree/gcc/basicfree.expected @@ -1,40 +1,8 @@ -var {:extern} Gamma_R0: bool; -var {:extern} Gamma_R1: bool; -var {:extern} Gamma_R16: bool; -var {:extern} Gamma_R17: bool; -var {:extern} Gamma_R29: bool; -var {:extern} Gamma_R30: bool; -var {:extern} Gamma_R31: bool; var {:extern} Gamma_mem: [bv64]bool; -var {:extern} Gamma_stack: [bv64]bool; -var {:extern} R0: bv64; -var {:extern} R1: bv64; -var {:extern} R16: bv64; -var {:extern} R17: bv64; -var {:extern} R29: bv64; -var {:extern} R30: bv64; -var {:extern} R31: bv64; var {:extern} mem: [bv64]bv8; -var {:extern} stack: [bv64]bv8; const {:extern} $_IO_stdin_used_addr: bv64; -axiom ($_IO_stdin_used_addr == 2076bv64); -function {:extern} L(mem$in: [bv64]bv8, index: bv64) returns (bool) { - false -} - +axiom ($_IO_stdin_used_addr == 4196312bv64); function {:extern} {:bvbuiltin "bvadd"} bvadd64(bv64, bv64) returns (bv64); -function {:extern} gamma_load64(gammaMap: [bv64]bool, index: bv64) returns (bool) { - (gammaMap[bvadd64(index, 7bv64)] && (gammaMap[bvadd64(index, 6bv64)] && (gammaMap[bvadd64(index, 5bv64)] && (gammaMap[bvadd64(index, 4bv64)] && (gammaMap[bvadd64(index, 3bv64)] && (gammaMap[bvadd64(index, 2bv64)] && (gammaMap[bvadd64(index, 1bv64)] && gammaMap[index]))))))) -} - -function {:extern} gamma_store32(gammaMap: [bv64]bool, index: bv64, value: bool) returns ([bv64]bool) { - gammaMap[index := value][bvadd64(index, 1bv64) := value][bvadd64(index, 2bv64) := value][bvadd64(index, 3bv64) := value] -} - -function {:extern} gamma_store64(gammaMap: [bv64]bool, index: bv64, value: bool) returns ([bv64]bool) { - gammaMap[index := value][bvadd64(index, 1bv64) := value][bvadd64(index, 2bv64) := value][bvadd64(index, 3bv64) := value][bvadd64(index, 4bv64) := value][bvadd64(index, 5bv64) := value][bvadd64(index, 6bv64) := value][bvadd64(index, 7bv64) := value] -} - function {:extern} memory_load32_le(memory: [bv64]bv8, index: bv64) returns (bv32) { (memory[bvadd64(index, 3bv64)] ++ (memory[bvadd64(index, 2bv64)] ++ (memory[bvadd64(index, 1bv64)] ++ memory[index]))) } @@ -43,23 +11,11 @@ function {:extern} memory_load64_le(memory: [bv64]bv8, index: bv64) returns (bv6 (memory[bvadd64(index, 7bv64)] ++ (memory[bvadd64(index, 6bv64)] ++ (memory[bvadd64(index, 5bv64)] ++ (memory[bvadd64(index, 4bv64)] ++ (memory[bvadd64(index, 3bv64)] ++ (memory[bvadd64(index, 2bv64)] ++ (memory[bvadd64(index, 1bv64)] ++ memory[index]))))))) } -function {:extern} memory_store32_le(memory: [bv64]bv8, index: bv64, value: bv32) returns ([bv64]bv8) { - memory[index := value[8:0]][bvadd64(index, 1bv64) := value[16:8]][bvadd64(index, 2bv64) := value[24:16]][bvadd64(index, 3bv64) := value[32:24]] -} - -function {:extern} memory_store64_le(memory: [bv64]bv8, index: bv64, value: bv64) returns ([bv64]bv8) { - memory[index := value[8:0]][bvadd64(index, 1bv64) := value[16:8]][bvadd64(index, 2bv64) := value[24:16]][bvadd64(index, 3bv64) := value[32:24]][bvadd64(index, 4bv64) := value[40:32]][bvadd64(index, 5bv64) := value[48:40]][bvadd64(index, 6bv64) := value[56:48]][bvadd64(index, 7bv64) := value[64:56]] -} - procedure {:extern} rely(); modifies Gamma_mem, mem; ensures (Gamma_mem == old(Gamma_mem)); ensures (mem == old(mem)); - free ensures (memory_load32_le(mem, 2076bv64) == 131073bv32); - free ensures (memory_load64_le(mem, 69000bv64) == 2000bv64); - free ensures (memory_load64_le(mem, 69008bv64) == 1920bv64); - free ensures (memory_load64_le(mem, 69616bv64) == 2004bv64); - free ensures (memory_load64_le(mem, 69640bv64) == 69640bv64); + free ensures (memory_load32_le(mem, 4196312bv64) == 131073bv32); procedure {:extern} rely_transitive(); modifies Gamma_mem, mem; @@ -77,102 +33,19 @@ procedure {:extern} rely_reflexive(); procedure {:extern} guarantee_reflexive(); modifies Gamma_mem, mem; -procedure #free_1664(); - modifies Gamma_R16, Gamma_R17, R16, R17; - free requires (memory_load32_le(mem, 2076bv64) == 131073bv32); - free requires (memory_load64_le(mem, 69000bv64) == 2000bv64); - free requires (memory_load64_le(mem, 69008bv64) == 1920bv64); - free requires (memory_load64_le(mem, 69616bv64) == 2004bv64); - free requires (memory_load64_le(mem, 69640bv64) == 69640bv64); - free ensures (memory_load32_le(mem, 2076bv64) == 131073bv32); - free ensures (memory_load64_le(mem, 69000bv64) == 2000bv64); - free ensures (memory_load64_le(mem, 69008bv64) == 1920bv64); - free ensures (memory_load64_le(mem, 69616bv64) == 2004bv64); - free ensures (memory_load64_le(mem, 69640bv64) == 69640bv64); - -procedure main_2004(); - modifies Gamma_R0, Gamma_R1, Gamma_R16, Gamma_R17, Gamma_R29, Gamma_R30, Gamma_R31, Gamma_mem, Gamma_stack, R0, R1, R16, R17, R29, R30, R31, mem, stack; - free requires (memory_load64_le(mem, 69632bv64) == 0bv64); - free requires (memory_load64_le(mem, 69640bv64) == 69640bv64); - free requires (memory_load32_le(mem, 2076bv64) == 131073bv32); - free requires (memory_load64_le(mem, 69000bv64) == 2000bv64); - free requires (memory_load64_le(mem, 69008bv64) == 1920bv64); - free requires (memory_load64_le(mem, 69616bv64) == 2004bv64); - free requires (memory_load64_le(mem, 69640bv64) == 69640bv64); - free ensures (Gamma_R29 == old(Gamma_R29)); - free ensures (Gamma_R31 == old(Gamma_R31)); - free ensures (R29 == old(R29)); - free ensures (R31 == old(R31)); - free ensures (memory_load32_le(mem, 2076bv64) == 131073bv32); - free ensures (memory_load64_le(mem, 69000bv64) == 2000bv64); - free ensures (memory_load64_le(mem, 69008bv64) == 1920bv64); - free ensures (memory_load64_le(mem, 69616bv64) == 2004bv64); - free ensures (memory_load64_le(mem, 69640bv64) == 69640bv64); +procedure main(); + free requires (memory_load64_le(mem, 4325376bv64) == 0bv64); + free requires (memory_load64_le(mem, 4325384bv64) == 0bv64); + free requires (memory_load32_le(mem, 4196312bv64) == 131073bv32); + free ensures (memory_load32_le(mem, 4196312bv64) == 131073bv32); -implementation main_2004() +implementation main() { - var #4: bv64; - var Gamma_#4: bool; - var Gamma_load19: bool; - var Gamma_load20: bool; - var Gamma_load21: bool; - var Gamma_load22: bool; - var load19: bv64; - var load20: bv64; - var load21: bv64; - var load22: bv64; lmain: assume {:captureState "lmain"} true; - #4, Gamma_#4 := bvadd64(R31, 18446744073709551584bv64), Gamma_R31; - stack, Gamma_stack := memory_store64_le(stack, #4, R29), gamma_store64(Gamma_stack, #4, Gamma_R29); - assume {:captureState "%000002e8"} true; - stack, Gamma_stack := memory_store64_le(stack, bvadd64(#4, 8bv64), R30), gamma_store64(Gamma_stack, bvadd64(#4, 8bv64), Gamma_R30); - assume {:captureState "%000002ee"} true; - R31, Gamma_R31 := #4, Gamma_#4; - R29, Gamma_R29 := R31, Gamma_R31; - R0, Gamma_R0 := 4bv64, true; - R30, Gamma_R30 := 2020bv64, true; - call malloc_1616(); - goto l00000307; - l00000307: - assume {:captureState "l00000307"} true; - stack, Gamma_stack := memory_store64_le(stack, bvadd64(R31, 24bv64), R0), gamma_store64(Gamma_stack, bvadd64(R31, 24bv64), Gamma_R0); - assume {:captureState "%0000030d"} true; - load19, Gamma_load19 := memory_load64_le(stack, bvadd64(R31, 24bv64)), gamma_load64(Gamma_stack, bvadd64(R31, 24bv64)); - R0, Gamma_R0 := load19, Gamma_load19; - R1, Gamma_R1 := 1bv64, true; - call rely(); - assert (L(mem, R0) ==> Gamma_R1); - mem, Gamma_mem := memory_store32_le(mem, R0, R1[32:0]), gamma_store32(Gamma_mem, R0, Gamma_R1); - assume {:captureState "%00000321"} true; - load20, Gamma_load20 := memory_load64_le(stack, bvadd64(R31, 24bv64)), gamma_load64(Gamma_stack, bvadd64(R31, 24bv64)); - R0, Gamma_R0 := load20, Gamma_load20; - R30, Gamma_R30 := 2044bv64, true; - call #free_1664(); - goto l00000332; - l00000332: - assume {:captureState "l00000332"} true; - load21, Gamma_load21 := memory_load64_le(stack, R31), gamma_load64(Gamma_stack, R31); - R29, Gamma_R29 := load21, Gamma_load21; - load22, Gamma_load22 := memory_load64_le(stack, bvadd64(R31, 8bv64)), gamma_load64(Gamma_stack, bvadd64(R31, 8bv64)); - R30, Gamma_R30 := load22, Gamma_load22; - R31, Gamma_R31 := bvadd64(R31, 32bv64), Gamma_R31; - goto main_2004_basil_return; - main_2004_basil_return: - assume {:captureState "main_2004_basil_return"} true; + goto main_basil_return; + main_basil_return: + assume {:captureState "main_basil_return"} true; return; } -procedure malloc_1616(); - modifies Gamma_R16, Gamma_R17, R16, R17; - free requires (memory_load32_le(mem, 2076bv64) == 131073bv32); - free requires (memory_load64_le(mem, 69000bv64) == 2000bv64); - free requires (memory_load64_le(mem, 69008bv64) == 1920bv64); - free requires (memory_load64_le(mem, 69616bv64) == 2004bv64); - free requires (memory_load64_le(mem, 69640bv64) == 69640bv64); - free ensures (memory_load32_le(mem, 2076bv64) == 131073bv32); - free ensures (memory_load64_le(mem, 69000bv64) == 2000bv64); - free ensures (memory_load64_le(mem, 69008bv64) == 1920bv64); - free ensures (memory_load64_le(mem, 69616bv64) == 2004bv64); - free ensures (memory_load64_le(mem, 69640bv64) == 69640bv64); - diff --git a/src/test/correct/basicfree/gcc/basicfree.gts b/src/test/correct/basicfree/gcc/basicfree.gts deleted file mode 100644 index fee27b0f7..000000000 Binary files a/src/test/correct/basicfree/gcc/basicfree.gts and /dev/null differ diff --git a/src/test/correct/basicfree/gcc/basicfree.md5sum b/src/test/correct/basicfree/gcc/basicfree.md5sum new file mode 100644 index 000000000..e1cf21ac8 --- /dev/null +++ b/src/test/correct/basicfree/gcc/basicfree.md5sum @@ -0,0 +1,5 @@ +0c95803ee06bb1d4d3061efe6351ab24 correct/basicfree/gcc/a.out +741c805dd5ccc08e166ae0e8da49b362 correct/basicfree/gcc/basicfree.adt +25498064533ea90730257f0a3318e902 correct/basicfree/gcc/basicfree.bir +dbb97795cacdd061f820cfd000975427 correct/basicfree/gcc/basicfree.relf +5abf95cb2343fcc9f9c682d43fa3c279 correct/basicfree/gcc/basicfree.gts diff --git a/src/test/correct/basicfree/gcc/basicfree.relf b/src/test/correct/basicfree/gcc/basicfree.relf deleted file mode 100644 index 7867887ca..000000000 --- a/src/test/correct/basicfree/gcc/basicfree.relf +++ /dev/null @@ -1,125 +0,0 @@ - -Relocation section '.rela.dyn' at offset 0x4a0 contains 8 entries: - Offset Info Type Symbol's Value Symbol's Name + Addend -0000000000010d88 0000000000000403 R_AARCH64_RELATIVE 7d0 -0000000000010d90 0000000000000403 R_AARCH64_RELATIVE 780 -0000000000010ff0 0000000000000403 R_AARCH64_RELATIVE 7d4 -0000000000011008 0000000000000403 R_AARCH64_RELATIVE 11008 -0000000000010fd8 0000000400000401 R_AARCH64_GLOB_DAT 0000000000000000 _ITM_deregisterTMCloneTable + 0 -0000000000010fe0 0000000500000401 R_AARCH64_GLOB_DAT 0000000000000000 __cxa_finalize@GLIBC_2.17 + 0 -0000000000010fe8 0000000700000401 R_AARCH64_GLOB_DAT 0000000000000000 __gmon_start__ + 0 -0000000000010ff8 0000000a00000401 R_AARCH64_GLOB_DAT 0000000000000000 _ITM_registerTMCloneTable + 0 - -Relocation section '.rela.plt' at offset 0x560 contains 6 entries: - Offset Info Type Symbol's Value Symbol's Name + Addend -0000000000010fa0 0000000300000402 R_AARCH64_JUMP_SLOT 0000000000000000 __libc_start_main@GLIBC_2.34 + 0 -0000000000010fa8 0000000500000402 R_AARCH64_JUMP_SLOT 0000000000000000 __cxa_finalize@GLIBC_2.17 + 0 -0000000000010fb0 0000000600000402 R_AARCH64_JUMP_SLOT 0000000000000000 malloc@GLIBC_2.17 + 0 -0000000000010fb8 0000000700000402 R_AARCH64_JUMP_SLOT 0000000000000000 __gmon_start__ + 0 -0000000000010fc0 0000000800000402 R_AARCH64_JUMP_SLOT 0000000000000000 abort@GLIBC_2.17 + 0 -0000000000010fc8 0000000900000402 R_AARCH64_JUMP_SLOT 0000000000000000 free@GLIBC_2.17 + 0 - -Symbol table '.dynsym' contains 11 entries: - Num: Value Size Type Bind Vis Ndx Name - 0: 0000000000000000 0 NOTYPE LOCAL DEFAULT UND - 1: 00000000000005f0 0 SECTION LOCAL DEFAULT 11 .init - 2: 0000000000011000 0 SECTION LOCAL DEFAULT 22 .data - 3: 0000000000000000 0 FUNC GLOBAL DEFAULT UND __libc_start_main@GLIBC_2.34 (2) - 4: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_deregisterTMCloneTable - 5: 0000000000000000 0 FUNC WEAK DEFAULT UND __cxa_finalize@GLIBC_2.17 (3) - 6: 0000000000000000 0 FUNC GLOBAL DEFAULT UND malloc@GLIBC_2.17 (3) - 7: 0000000000000000 0 NOTYPE WEAK DEFAULT UND __gmon_start__ - 8: 0000000000000000 0 FUNC GLOBAL DEFAULT UND abort@GLIBC_2.17 (3) - 9: 0000000000000000 0 FUNC GLOBAL DEFAULT UND free@GLIBC_2.17 (3) - 10: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_registerTMCloneTable - -Symbol table '.symtab' contains 88 entries: - Num: Value Size Type Bind Vis Ndx Name - 0: 0000000000000000 0 NOTYPE LOCAL DEFAULT UND - 1: 0000000000000238 0 SECTION LOCAL DEFAULT 1 .interp - 2: 0000000000000254 0 SECTION LOCAL DEFAULT 2 .note.gnu.build-id - 3: 0000000000000278 0 SECTION LOCAL DEFAULT 3 .note.ABI-tag - 4: 0000000000000298 0 SECTION LOCAL DEFAULT 4 .gnu.hash - 5: 00000000000002b8 0 SECTION LOCAL DEFAULT 5 .dynsym - 6: 00000000000003c0 0 SECTION LOCAL DEFAULT 6 .dynstr - 7: 000000000000045a 0 SECTION LOCAL DEFAULT 7 .gnu.version - 8: 0000000000000470 0 SECTION LOCAL DEFAULT 8 .gnu.version_r - 9: 00000000000004a0 0 SECTION LOCAL DEFAULT 9 .rela.dyn - 10: 0000000000000560 0 SECTION LOCAL DEFAULT 10 .rela.plt - 11: 00000000000005f0 0 SECTION LOCAL DEFAULT 11 .init - 12: 0000000000000610 0 SECTION LOCAL DEFAULT 12 .plt - 13: 00000000000006c0 0 SECTION LOCAL DEFAULT 13 .text - 14: 0000000000000808 0 SECTION LOCAL DEFAULT 14 .fini - 15: 000000000000081c 0 SECTION LOCAL DEFAULT 15 .rodata - 16: 0000000000000820 0 SECTION LOCAL DEFAULT 16 .eh_frame_hdr - 17: 0000000000000860 0 SECTION LOCAL DEFAULT 17 .eh_frame - 18: 0000000000010d88 0 SECTION LOCAL DEFAULT 18 .init_array - 19: 0000000000010d90 0 SECTION LOCAL DEFAULT 19 .fini_array - 20: 0000000000010d98 0 SECTION LOCAL DEFAULT 20 .dynamic - 21: 0000000000010f88 0 SECTION LOCAL DEFAULT 21 .got - 22: 0000000000011000 0 SECTION LOCAL DEFAULT 22 .data - 23: 0000000000011010 0 SECTION LOCAL DEFAULT 23 .bss - 24: 0000000000000000 0 SECTION LOCAL DEFAULT 24 .comment - 25: 0000000000000000 0 FILE LOCAL DEFAULT ABS Scrt1.o - 26: 0000000000000278 0 NOTYPE LOCAL DEFAULT 3 $d - 27: 0000000000000278 32 OBJECT LOCAL DEFAULT 3 __abi_tag - 28: 00000000000006c0 0 NOTYPE LOCAL DEFAULT 13 $x - 29: 0000000000000874 0 NOTYPE LOCAL DEFAULT 17 $d - 30: 000000000000081c 0 NOTYPE LOCAL DEFAULT 15 $d - 31: 0000000000000000 0 FILE LOCAL DEFAULT ABS crti.o - 32: 00000000000006f4 0 NOTYPE LOCAL DEFAULT 13 $x - 33: 00000000000006f4 20 FUNC LOCAL DEFAULT 13 call_weak_fn - 34: 00000000000005f0 0 NOTYPE LOCAL DEFAULT 11 $x - 35: 0000000000000808 0 NOTYPE LOCAL DEFAULT 14 $x - 36: 0000000000000000 0 FILE LOCAL DEFAULT ABS crtn.o - 37: 0000000000000600 0 NOTYPE LOCAL DEFAULT 11 $x - 38: 0000000000000814 0 NOTYPE LOCAL DEFAULT 14 $x - 39: 0000000000000000 0 FILE LOCAL DEFAULT ABS crtstuff.c - 40: 0000000000000710 0 NOTYPE LOCAL DEFAULT 13 $x - 41: 0000000000000710 0 FUNC LOCAL DEFAULT 13 deregister_tm_clones - 42: 0000000000000740 0 FUNC LOCAL DEFAULT 13 register_tm_clones - 43: 0000000000011008 0 NOTYPE LOCAL DEFAULT 22 $d - 44: 0000000000000780 0 FUNC LOCAL DEFAULT 13 __do_global_dtors_aux - 45: 0000000000011010 1 OBJECT LOCAL DEFAULT 23 completed.0 - 46: 0000000000010d90 0 NOTYPE LOCAL DEFAULT 19 $d - 47: 0000000000010d90 0 OBJECT LOCAL DEFAULT 19 __do_global_dtors_aux_fini_array_entry - 48: 00000000000007d0 0 FUNC LOCAL DEFAULT 13 frame_dummy - 49: 0000000000010d88 0 NOTYPE LOCAL DEFAULT 18 $d - 50: 0000000000010d88 0 OBJECT LOCAL DEFAULT 18 __frame_dummy_init_array_entry - 51: 0000000000000888 0 NOTYPE LOCAL DEFAULT 17 $d - 52: 0000000000011010 0 NOTYPE LOCAL DEFAULT 23 $d - 53: 0000000000000000 0 FILE LOCAL DEFAULT ABS basicfree.c - 54: 00000000000007d4 0 NOTYPE LOCAL DEFAULT 13 $x - 55: 00000000000008e8 0 NOTYPE LOCAL DEFAULT 17 $d - 56: 0000000000000000 0 FILE LOCAL DEFAULT ABS crtstuff.c - 57: 0000000000000908 0 NOTYPE LOCAL DEFAULT 17 $d - 58: 0000000000000908 0 OBJECT LOCAL DEFAULT 17 __FRAME_END__ - 59: 0000000000000000 0 FILE LOCAL DEFAULT ABS - 60: 0000000000010d98 0 OBJECT LOCAL DEFAULT ABS _DYNAMIC - 61: 0000000000000820 0 NOTYPE LOCAL DEFAULT 16 __GNU_EH_FRAME_HDR - 62: 0000000000010fd0 0 OBJECT LOCAL DEFAULT ABS _GLOBAL_OFFSET_TABLE_ - 63: 0000000000000610 0 NOTYPE LOCAL DEFAULT 12 $x - 64: 0000000000000000 0 FUNC GLOBAL DEFAULT UND __libc_start_main@GLIBC_2.34 - 65: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_deregisterTMCloneTable - 66: 0000000000011000 0 NOTYPE WEAK DEFAULT 22 data_start - 67: 0000000000011010 0 NOTYPE GLOBAL DEFAULT 23 __bss_start__ - 68: 0000000000000000 0 FUNC WEAK DEFAULT UND __cxa_finalize@GLIBC_2.17 - 69: 0000000000011018 0 NOTYPE GLOBAL DEFAULT 23 _bss_end__ - 70: 0000000000011010 0 NOTYPE GLOBAL DEFAULT 22 _edata - 71: 0000000000000808 0 FUNC GLOBAL HIDDEN 14 _fini - 72: 0000000000011018 0 NOTYPE GLOBAL DEFAULT 23 __bss_end__ - 73: 0000000000000000 0 FUNC GLOBAL DEFAULT UND malloc@GLIBC_2.17 - 74: 0000000000011000 0 NOTYPE GLOBAL DEFAULT 22 __data_start - 75: 0000000000000000 0 NOTYPE WEAK DEFAULT UND __gmon_start__ - 76: 0000000000011008 0 OBJECT GLOBAL HIDDEN 22 __dso_handle - 77: 0000000000000000 0 FUNC GLOBAL DEFAULT UND abort@GLIBC_2.17 - 78: 000000000000081c 4 OBJECT GLOBAL DEFAULT 15 _IO_stdin_used - 79: 0000000000011018 0 NOTYPE GLOBAL DEFAULT 23 _end - 80: 0000000000000000 0 FUNC GLOBAL DEFAULT UND free@GLIBC_2.17 - 81: 00000000000006c0 52 FUNC GLOBAL DEFAULT 13 _start - 82: 0000000000011018 0 NOTYPE GLOBAL DEFAULT 23 __end__ - 83: 0000000000011010 0 NOTYPE GLOBAL DEFAULT 23 __bss_start - 84: 00000000000007d4 52 FUNC GLOBAL DEFAULT 13 main - 85: 0000000000011010 0 OBJECT GLOBAL HIDDEN 22 __TMC_END__ - 86: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_registerTMCloneTable - 87: 00000000000005f0 0 FUNC GLOBAL HIDDEN 11 _init diff --git a/src/test/correct/basicfree/gcc/basicfree_gtirb.expected b/src/test/correct/basicfree/gcc/basicfree_gtirb.expected index f077d92bc..5a00184c3 100644 --- a/src/test/correct/basicfree/gcc/basicfree_gtirb.expected +++ b/src/test/correct/basicfree/gcc/basicfree_gtirb.expected @@ -1,40 +1,8 @@ -var {:extern} Gamma_R0: bool; -var {:extern} Gamma_R1: bool; -var {:extern} Gamma_R16: bool; -var {:extern} Gamma_R17: bool; -var {:extern} Gamma_R29: bool; -var {:extern} Gamma_R30: bool; -var {:extern} Gamma_R31: bool; var {:extern} Gamma_mem: [bv64]bool; -var {:extern} Gamma_stack: [bv64]bool; -var {:extern} R0: bv64; -var {:extern} R1: bv64; -var {:extern} R16: bv64; -var {:extern} R17: bv64; -var {:extern} R29: bv64; -var {:extern} R30: bv64; -var {:extern} R31: bv64; var {:extern} mem: [bv64]bv8; -var {:extern} stack: [bv64]bv8; const {:extern} $_IO_stdin_used_addr: bv64; -axiom ($_IO_stdin_used_addr == 2076bv64); -function {:extern} L(mem$in: [bv64]bv8, index: bv64) returns (bool) { - false -} - +axiom ($_IO_stdin_used_addr == 4196312bv64); function {:extern} {:bvbuiltin "bvadd"} bvadd64(bv64, bv64) returns (bv64); -function {:extern} gamma_load64(gammaMap: [bv64]bool, index: bv64) returns (bool) { - (gammaMap[bvadd64(index, 7bv64)] && (gammaMap[bvadd64(index, 6bv64)] && (gammaMap[bvadd64(index, 5bv64)] && (gammaMap[bvadd64(index, 4bv64)] && (gammaMap[bvadd64(index, 3bv64)] && (gammaMap[bvadd64(index, 2bv64)] && (gammaMap[bvadd64(index, 1bv64)] && gammaMap[index]))))))) -} - -function {:extern} gamma_store32(gammaMap: [bv64]bool, index: bv64, value: bool) returns ([bv64]bool) { - gammaMap[index := value][bvadd64(index, 1bv64) := value][bvadd64(index, 2bv64) := value][bvadd64(index, 3bv64) := value] -} - -function {:extern} gamma_store64(gammaMap: [bv64]bool, index: bv64, value: bool) returns ([bv64]bool) { - gammaMap[index := value][bvadd64(index, 1bv64) := value][bvadd64(index, 2bv64) := value][bvadd64(index, 3bv64) := value][bvadd64(index, 4bv64) := value][bvadd64(index, 5bv64) := value][bvadd64(index, 6bv64) := value][bvadd64(index, 7bv64) := value] -} - function {:extern} memory_load32_le(memory: [bv64]bv8, index: bv64) returns (bv32) { (memory[bvadd64(index, 3bv64)] ++ (memory[bvadd64(index, 2bv64)] ++ (memory[bvadd64(index, 1bv64)] ++ memory[index]))) } @@ -43,23 +11,11 @@ function {:extern} memory_load64_le(memory: [bv64]bv8, index: bv64) returns (bv6 (memory[bvadd64(index, 7bv64)] ++ (memory[bvadd64(index, 6bv64)] ++ (memory[bvadd64(index, 5bv64)] ++ (memory[bvadd64(index, 4bv64)] ++ (memory[bvadd64(index, 3bv64)] ++ (memory[bvadd64(index, 2bv64)] ++ (memory[bvadd64(index, 1bv64)] ++ memory[index]))))))) } -function {:extern} memory_store32_le(memory: [bv64]bv8, index: bv64, value: bv32) returns ([bv64]bv8) { - memory[index := value[8:0]][bvadd64(index, 1bv64) := value[16:8]][bvadd64(index, 2bv64) := value[24:16]][bvadd64(index, 3bv64) := value[32:24]] -} - -function {:extern} memory_store64_le(memory: [bv64]bv8, index: bv64, value: bv64) returns ([bv64]bv8) { - memory[index := value[8:0]][bvadd64(index, 1bv64) := value[16:8]][bvadd64(index, 2bv64) := value[24:16]][bvadd64(index, 3bv64) := value[32:24]][bvadd64(index, 4bv64) := value[40:32]][bvadd64(index, 5bv64) := value[48:40]][bvadd64(index, 6bv64) := value[56:48]][bvadd64(index, 7bv64) := value[64:56]] -} - procedure {:extern} rely(); modifies Gamma_mem, mem; ensures (Gamma_mem == old(Gamma_mem)); ensures (mem == old(mem)); - free ensures (memory_load32_le(mem, 2076bv64) == 131073bv32); - free ensures (memory_load64_le(mem, 69000bv64) == 2000bv64); - free ensures (memory_load64_le(mem, 69008bv64) == 1920bv64); - free ensures (memory_load64_le(mem, 69616bv64) == 2004bv64); - free ensures (memory_load64_le(mem, 69640bv64) == 69640bv64); + free ensures (memory_load32_le(mem, 4196312bv64) == 131073bv32); procedure {:extern} rely_transitive(); modifies Gamma_mem, mem; @@ -77,162 +33,19 @@ procedure {:extern} rely_reflexive(); procedure {:extern} guarantee_reflexive(); modifies Gamma_mem, mem; -procedure FUN_680_1664(); - modifies Gamma_R16, Gamma_R17, Gamma_mem, R16, R17, mem; - free requires (memory_load32_le(mem, 2076bv64) == 131073bv32); - free requires (memory_load64_le(mem, 69000bv64) == 2000bv64); - free requires (memory_load64_le(mem, 69008bv64) == 1920bv64); - free requires (memory_load64_le(mem, 69616bv64) == 2004bv64); - free requires (memory_load64_le(mem, 69640bv64) == 69640bv64); - free ensures (memory_load32_le(mem, 2076bv64) == 131073bv32); - free ensures (memory_load64_le(mem, 69000bv64) == 2000bv64); - free ensures (memory_load64_le(mem, 69008bv64) == 1920bv64); - free ensures (memory_load64_le(mem, 69616bv64) == 2004bv64); - free ensures (memory_load64_le(mem, 69640bv64) == 69640bv64); +procedure main(); + free requires (memory_load64_le(mem, 4325376bv64) == 0bv64); + free requires (memory_load64_le(mem, 4325384bv64) == 0bv64); + free requires (memory_load32_le(mem, 4196312bv64) == 131073bv32); + free ensures (memory_load32_le(mem, 4196312bv64) == 131073bv32); -implementation FUN_680_1664() +implementation main() { - var Gamma_load2: bool; - var load2: bv64; - FUN_680_1664__0__Munhgh3nShysDJa~x_gpnQ: - assume {:captureState "FUN_680_1664__0__Munhgh3nShysDJa~x_gpnQ"} true; - R16, Gamma_R16 := 65536bv64, true; - call rely(); - load2, Gamma_load2 := memory_load64_le(mem, bvadd64(R16, 4040bv64)), (gamma_load64(Gamma_mem, bvadd64(R16, 4040bv64)) || L(mem, bvadd64(R16, 4040bv64))); - R17, Gamma_R17 := load2, Gamma_load2; - R16, Gamma_R16 := bvadd64(R16, 4040bv64), Gamma_R16; - call #free(); - goto FUN_680_1664_basil_return; - FUN_680_1664_basil_return: - assume {:captureState "FUN_680_1664_basil_return"} true; + $main$__0__$cegbDVc9S6m8Z0kHHU8BZQ: + assume {:captureState "$main$__0__$cegbDVc9S6m8Z0kHHU8BZQ"} true; + goto main_basil_return; + main_basil_return: + assume {:captureState "main_basil_return"} true; return; } -procedure main_2004(); - modifies Gamma_R0, Gamma_R1, Gamma_R16, Gamma_R17, Gamma_R29, Gamma_R30, Gamma_R31, Gamma_mem, Gamma_stack, R0, R1, R16, R17, R29, R30, R31, mem, stack; - free requires (memory_load64_le(mem, 69632bv64) == 0bv64); - free requires (memory_load64_le(mem, 69640bv64) == 69640bv64); - free requires (memory_load32_le(mem, 2076bv64) == 131073bv32); - free requires (memory_load64_le(mem, 69000bv64) == 2000bv64); - free requires (memory_load64_le(mem, 69008bv64) == 1920bv64); - free requires (memory_load64_le(mem, 69616bv64) == 2004bv64); - free requires (memory_load64_le(mem, 69640bv64) == 69640bv64); - free ensures (Gamma_R29 == old(Gamma_R29)); - free ensures (Gamma_R31 == old(Gamma_R31)); - free ensures (R29 == old(R29)); - free ensures (R31 == old(R31)); - free ensures (memory_load32_le(mem, 2076bv64) == 131073bv32); - free ensures (memory_load64_le(mem, 69000bv64) == 2000bv64); - free ensures (memory_load64_le(mem, 69008bv64) == 1920bv64); - free ensures (memory_load64_le(mem, 69616bv64) == 2004bv64); - free ensures (memory_load64_le(mem, 69640bv64) == 69640bv64); - -implementation main_2004() -{ - var Cse0__5_1_0: bv64; - var Gamma_Cse0__5_1_0: bool; - var Gamma_load15: bool; - var Gamma_load16: bool; - var Gamma_load17: bool; - var Gamma_load18: bool; - var load15: bv64; - var load16: bv64; - var load17: bv64; - var load18: bv64; - main_2004__0__SVwwAKxIQmqlA4JVB4NRNA: - assume {:captureState "main_2004__0__SVwwAKxIQmqlA4JVB4NRNA"} true; - Cse0__5_1_0, Gamma_Cse0__5_1_0 := bvadd64(R31, 18446744073709551584bv64), Gamma_R31; - stack, Gamma_stack := memory_store64_le(stack, Cse0__5_1_0, R29), gamma_store64(Gamma_stack, Cse0__5_1_0, Gamma_R29); - assume {:captureState "2004_1"} true; - stack, Gamma_stack := memory_store64_le(stack, bvadd64(Cse0__5_1_0, 8bv64), R30), gamma_store64(Gamma_stack, bvadd64(Cse0__5_1_0, 8bv64), Gamma_R30); - assume {:captureState "2004_2"} true; - R31, Gamma_R31 := Cse0__5_1_0, Gamma_Cse0__5_1_0; - R29, Gamma_R29 := R31, Gamma_R31; - R0, Gamma_R0 := 4bv64, true; - R30, Gamma_R30 := 2020bv64, true; - call FUN_650_1616(); - goto main_2004__1__9qt6Bm68Rve4QS0F_cEB3w; - main_2004__1__9qt6Bm68Rve4QS0F_cEB3w: - assume {:captureState "main_2004__1__9qt6Bm68Rve4QS0F_cEB3w"} true; - stack, Gamma_stack := memory_store64_le(stack, bvadd64(R31, 24bv64), R0), gamma_store64(Gamma_stack, bvadd64(R31, 24bv64), Gamma_R0); - assume {:captureState "2020_0"} true; - load17, Gamma_load17 := memory_load64_le(stack, bvadd64(R31, 24bv64)), gamma_load64(Gamma_stack, bvadd64(R31, 24bv64)); - R0, Gamma_R0 := load17, Gamma_load17; - R1, Gamma_R1 := 1bv64, true; - call rely(); - assert (L(mem, R0) ==> Gamma_R1); - mem, Gamma_mem := memory_store32_le(mem, R0, R1[32:0]), gamma_store32(Gamma_mem, R0, Gamma_R1); - assume {:captureState "2032_0"} true; - load18, Gamma_load18 := memory_load64_le(stack, bvadd64(R31, 24bv64)), gamma_load64(Gamma_stack, bvadd64(R31, 24bv64)); - R0, Gamma_R0 := load18, Gamma_load18; - R30, Gamma_R30 := 2044bv64, true; - call FUN_680_1664(); - goto main_2004__2__JmJ8ydmEQ0KG2aqp3uFiQw; - main_2004__2__JmJ8ydmEQ0KG2aqp3uFiQw: - assume {:captureState "main_2004__2__JmJ8ydmEQ0KG2aqp3uFiQw"} true; - load15, Gamma_load15 := memory_load64_le(stack, R31), gamma_load64(Gamma_stack, R31); - R29, Gamma_R29 := load15, Gamma_load15; - load16, Gamma_load16 := memory_load64_le(stack, bvadd64(R31, 8bv64)), gamma_load64(Gamma_stack, bvadd64(R31, 8bv64)); - R30, Gamma_R30 := load16, Gamma_load16; - R31, Gamma_R31 := bvadd64(R31, 32bv64), Gamma_R31; - goto main_2004_basil_return; - main_2004_basil_return: - assume {:captureState "main_2004_basil_return"} true; - return; -} - -procedure FUN_650_1616(); - modifies Gamma_R16, Gamma_R17, Gamma_mem, R16, R17, mem; - free requires (memory_load32_le(mem, 2076bv64) == 131073bv32); - free requires (memory_load64_le(mem, 69000bv64) == 2000bv64); - free requires (memory_load64_le(mem, 69008bv64) == 1920bv64); - free requires (memory_load64_le(mem, 69616bv64) == 2004bv64); - free requires (memory_load64_le(mem, 69640bv64) == 69640bv64); - free ensures (memory_load32_le(mem, 2076bv64) == 131073bv32); - free ensures (memory_load64_le(mem, 69000bv64) == 2000bv64); - free ensures (memory_load64_le(mem, 69008bv64) == 1920bv64); - free ensures (memory_load64_le(mem, 69616bv64) == 2004bv64); - free ensures (memory_load64_le(mem, 69640bv64) == 69640bv64); - -implementation FUN_650_1616() -{ - var Gamma_load25: bool; - var load25: bv64; - FUN_650_1616__0__6QXyVlMjT_e0YItUboXIPw: - assume {:captureState "FUN_650_1616__0__6QXyVlMjT_e0YItUboXIPw"} true; - R16, Gamma_R16 := 65536bv64, true; - call rely(); - load25, Gamma_load25 := memory_load64_le(mem, bvadd64(R16, 4016bv64)), (gamma_load64(Gamma_mem, bvadd64(R16, 4016bv64)) || L(mem, bvadd64(R16, 4016bv64))); - R17, Gamma_R17 := load25, Gamma_load25; - R16, Gamma_R16 := bvadd64(R16, 4016bv64), Gamma_R16; - call malloc(); - goto FUN_650_1616_basil_return; - FUN_650_1616_basil_return: - assume {:captureState "FUN_650_1616_basil_return"} true; - return; -} - -procedure #free(); - free requires (memory_load32_le(mem, 2076bv64) == 131073bv32); - free requires (memory_load64_le(mem, 69000bv64) == 2000bv64); - free requires (memory_load64_le(mem, 69008bv64) == 1920bv64); - free requires (memory_load64_le(mem, 69616bv64) == 2004bv64); - free requires (memory_load64_le(mem, 69640bv64) == 69640bv64); - free ensures (memory_load32_le(mem, 2076bv64) == 131073bv32); - free ensures (memory_load64_le(mem, 69000bv64) == 2000bv64); - free ensures (memory_load64_le(mem, 69008bv64) == 1920bv64); - free ensures (memory_load64_le(mem, 69616bv64) == 2004bv64); - free ensures (memory_load64_le(mem, 69640bv64) == 69640bv64); - -procedure malloc(); - free requires (memory_load32_le(mem, 2076bv64) == 131073bv32); - free requires (memory_load64_le(mem, 69000bv64) == 2000bv64); - free requires (memory_load64_le(mem, 69008bv64) == 1920bv64); - free requires (memory_load64_le(mem, 69616bv64) == 2004bv64); - free requires (memory_load64_le(mem, 69640bv64) == 69640bv64); - free ensures (memory_load32_le(mem, 2076bv64) == 131073bv32); - free ensures (memory_load64_le(mem, 69000bv64) == 2000bv64); - free ensures (memory_load64_le(mem, 69008bv64) == 1920bv64); - free ensures (memory_load64_le(mem, 69616bv64) == 2004bv64); - free ensures (memory_load64_le(mem, 69640bv64) == 69640bv64); - diff --git a/src/test/correct/cjump/clang/cjump.adt b/src/test/correct/cjump/clang/cjump.adt deleted file mode 100644 index c95c07d64..000000000 --- a/src/test/correct/cjump/clang/cjump.adt +++ /dev/null @@ -1,566 +0,0 @@ -Project(Attrs([Attr("filename","\"clang/cjump.out\""), -Attr("image-specification","(declare abi (name str))\n(declare arch (name str))\n(declare base-address (addr int))\n(declare bias (off int))\n(declare bits (size int))\n(declare code-region (addr int) (size int) (off int))\n(declare code-start (addr int))\n(declare entry-point (addr int))\n(declare external-reference (addr int) (name str))\n(declare format (name str))\n(declare is-executable (flag bool))\n(declare is-little-endian (flag bool))\n(declare llvm:base-address (addr int))\n(declare llvm:code-entry (name str) (off int) (size int))\n(declare llvm:coff-import-library (name str))\n(declare llvm:coff-virtual-section-header (name str) (addr int) (size int))\n(declare llvm:elf-program-header (name str) (off int) (size int))\n(declare llvm:elf-program-header-flags (name str) (ld bool) (r bool) \n (w bool) (x bool))\n(declare llvm:elf-virtual-program-header (name str) (addr int) (size int))\n(declare llvm:entry-point (addr int))\n(declare llvm:macho-symbol (name str) (value int))\n(declare llvm:name-reference (at int) (name str))\n(declare llvm:relocation (at int) (addr int))\n(declare llvm:section-entry (name str) (addr int) (size int) (off int))\n(declare llvm:section-flags (name str) (r bool) (w bool) (x bool))\n(declare llvm:segment-command (name str) (off int) (size int))\n(declare llvm:segment-command-flags (name str) (r bool) (w bool) (x bool))\n(declare llvm:symbol-entry (name str) (addr int) (size int) (off int)\n (value int))\n(declare llvm:virtual-segment-command (name str) (addr int) (size int))\n(declare mapped (addr int) (size int) (off int))\n(declare named-region (addr int) (size int) (name str))\n(declare named-symbol (addr int) (name str))\n(declare require (name str))\n(declare section (addr int) (size int))\n(declare segment (addr int) (size int) (r bool) (w bool) (x bool))\n(declare subarch (name str))\n(declare symbol-chunk (addr int) (size int) (root int))\n(declare symbol-value (addr int) (value int))\n(declare system (name str))\n(declare vendor (name str))\n\n(abi unknown)\n(arch aarch64)\n(base-address 0)\n(bias 0)\n(bits 64)\n(code-region 1896 20 1896)\n(code-region 1536 360 1536)\n(code-region 1440 96 1440)\n(code-region 1408 24 1408)\n(code-start 1588)\n(code-start 1536)\n(code-start 1812)\n(entry-point 1536)\n(external-reference 69568 _ITM_deregisterTMCloneTable)\n(external-reference 69576 __cxa_finalize)\n(external-reference 69584 __gmon_start__)\n(external-reference 69600 _ITM_registerTMCloneTable)\n(external-reference 69632 __libc_start_main)\n(external-reference 69640 __cxa_finalize)\n(external-reference 69648 __gmon_start__)\n(external-reference 69656 abort)\n(format elf)\n(is-executable true)\n(is-little-endian true)\n(llvm:base-address 0)\n(llvm:code-entry abort 0 0)\n(llvm:code-entry __cxa_finalize 0 0)\n(llvm:code-entry __libc_start_main 0 0)\n(llvm:code-entry _init 1408 0)\n(llvm:code-entry main 1812 84)\n(llvm:code-entry _start 1536 52)\n(llvm:code-entry abort@GLIBC_2.17 0 0)\n(llvm:code-entry _fini 1896 0)\n(llvm:code-entry __cxa_finalize@GLIBC_2.17 0 0)\n(llvm:code-entry __libc_start_main@GLIBC_2.34 0 0)\n(llvm:code-entry frame_dummy 1808 0)\n(llvm:code-entry __do_global_dtors_aux 1728 0)\n(llvm:code-entry register_tm_clones 1664 0)\n(llvm:code-entry deregister_tm_clones 1616 0)\n(llvm:code-entry call_weak_fn 1588 20)\n(llvm:code-entry .fini 1896 20)\n(llvm:code-entry .text 1536 360)\n(llvm:code-entry .plt 1440 96)\n(llvm:code-entry .init 1408 24)\n(llvm:elf-program-header 08 3528 568)\n(llvm:elf-program-header 07 0 0)\n(llvm:elf-program-header 06 1920 60)\n(llvm:elf-program-header 05 596 68)\n(llvm:elf-program-header 04 3544 480)\n(llvm:elf-program-header 03 3528 616)\n(llvm:elf-program-header 02 0 2168)\n(llvm:elf-program-header 01 568 27)\n(llvm:elf-program-header 00 64 504)\n(llvm:elf-program-header-flags 08 false true false false)\n(llvm:elf-program-header-flags 07 false true true false)\n(llvm:elf-program-header-flags 06 false true false false)\n(llvm:elf-program-header-flags 05 false true false false)\n(llvm:elf-program-header-flags 04 false true true false)\n(llvm:elf-program-header-flags 03 true true true false)\n(llvm:elf-program-header-flags 02 true true false true)\n(llvm:elf-program-header-flags 01 false true false false)\n(llvm:elf-program-header-flags 00 false true false false)\n(llvm:elf-virtual-program-header 08 69064 568)\n(llvm:elf-virtual-program-header 07 0 0)\n(llvm:elf-virtual-program-header 06 1920 60)\n(llvm:elf-virtual-program-header 05 596 68)\n(llvm:elf-virtual-program-header 04 69080 480)\n(llvm:elf-virtual-program-header 03 69064 632)\n(llvm:elf-virtual-program-header 02 0 2168)\n(llvm:elf-virtual-program-header 01 568 27)\n(llvm:elf-virtual-program-header 00 64 504)\n(llvm:entry-point 1536)\n(llvm:name-reference 69656 abort)\n(llvm:name-reference 69648 __gmon_start__)\n(llvm:name-reference 69640 __cxa_finalize)\n(llvm:name-reference 69632 __libc_start_main)\n(llvm:name-reference 69600 _ITM_registerTMCloneTable)\n(llvm:name-reference 69584 __gmon_start__)\n(llvm:name-reference 69576 __cxa_finalize)\n(llvm:name-reference 69568 _ITM_deregisterTMCloneTable)\n(llvm:section-entry .shstrtab 0 259 6961)\n(llvm:section-entry .strtab 0 561 6400)\n(llvm:section-entry .symtab 0 2184 4216)\n(llvm:section-entry .comment 0 71 4144)\n(llvm:section-entry .bss 69680 16 4144)\n(llvm:section-entry .data 69664 16 4128)\n(llvm:section-entry .got.plt 69608 56 4072)\n(llvm:section-entry .got 69560 48 4024)\n(llvm:section-entry .dynamic 69080 480 3544)\n(llvm:section-entry .fini_array 69072 8 3536)\n(llvm:section-entry .init_array 69064 8 3528)\n(llvm:section-entry .eh_frame 1984 184 1984)\n(llvm:section-entry .eh_frame_hdr 1920 60 1920)\n(llvm:section-entry .rodata 1916 4 1916)\n(llvm:section-entry .fini 1896 20 1896)\n(llvm:section-entry .text 1536 360 1536)\n(llvm:section-entry .plt 1440 96 1440)\n(llvm:section-entry .init 1408 24 1408)\n(llvm:section-entry .rela.plt 1312 96 1312)\n(llvm:section-entry .rela.dyn 1120 192 1120)\n(llvm:section-entry .gnu.version_r 1072 48 1072)\n(llvm:section-entry .gnu.version 1054 18 1054)\n(llvm:section-entry .dynstr 912 141 912)\n(llvm:section-entry .dynsym 696 216 696)\n(llvm:section-entry .gnu.hash 664 28 664)\n(llvm:section-entry .note.ABI-tag 632 32 632)\n(llvm:section-entry .note.gnu.build-id 596 36 596)\n(llvm:section-entry .interp 568 27 568)\n(llvm:section-flags .shstrtab true false false)\n(llvm:section-flags .strtab true false false)\n(llvm:section-flags .symtab true false false)\n(llvm:section-flags .comment true false false)\n(llvm:section-flags .bss true true false)\n(llvm:section-flags .data true true false)\n(llvm:section-flags .got.plt true true false)\n(llvm:section-flags .got true true false)\n(llvm:section-flags .dynamic true true false)\n(llvm:section-flags .fini_array true true false)\n(llvm:section-flags .init_array true true false)\n(llvm:section-flags .eh_frame true false false)\n(llvm:section-flags .eh_frame_hdr true false false)\n(llvm:section-flags .rodata true false false)\n(llvm:section-flags .fini true false true)\n(llvm:section-flags .text true false true)\n(llvm:section-flags .plt true false true)\n(llvm:section-flags .init true false true)\n(llvm:section-flags .rela.plt true false false)\n(llvm:section-flags .rela.dyn true false false)\n(llvm:section-flags .gnu.version_r true false false)\n(llvm:section-flags .gnu.version true false false)\n(llvm:section-flags .dynstr true false false)\n(llvm:section-flags .dynsym true false false)\n(llvm:section-flags .gnu.hash true false false)\n(llvm:section-flags .note.ABI-tag true false false)\n(llvm:section-flags .note.gnu.build-id true false false)\n(llvm:section-flags .interp true false false)\n(llvm:symbol-entry abort 0 0 0 0)\n(llvm:symbol-entry __cxa_finalize 0 0 0 0)\n(llvm:symbol-entry __libc_start_main 0 0 0 0)\n(llvm:symbol-entry _init 1408 0 1408 1408)\n(llvm:symbol-entry main 1812 84 1812 1812)\n(llvm:symbol-entry _start 1536 52 1536 1536)\n(llvm:symbol-entry abort@GLIBC_2.17 0 0 0 0)\n(llvm:symbol-entry _fini 1896 0 1896 1896)\n(llvm:symbol-entry __cxa_finalize@GLIBC_2.17 0 0 0 0)\n(llvm:symbol-entry __libc_start_main@GLIBC_2.34 0 0 0 0)\n(llvm:symbol-entry frame_dummy 1808 0 1808 1808)\n(llvm:symbol-entry __do_global_dtors_aux 1728 0 1728 1728)\n(llvm:symbol-entry register_tm_clones 1664 0 1664 1664)\n(llvm:symbol-entry deregister_tm_clones 1616 0 1616 1616)\n(llvm:symbol-entry call_weak_fn 1588 20 1588 1588)\n(mapped 0 2168 0)\n(mapped 69064 616 3528)\n(named-region 0 2168 02)\n(named-region 69064 632 03)\n(named-region 568 27 .interp)\n(named-region 596 36 .note.gnu.build-id)\n(named-region 632 32 .note.ABI-tag)\n(named-region 664 28 .gnu.hash)\n(named-region 696 216 .dynsym)\n(named-region 912 141 .dynstr)\n(named-region 1054 18 .gnu.version)\n(named-region 1072 48 .gnu.version_r)\n(named-region 1120 192 .rela.dyn)\n(named-region 1312 96 .rela.plt)\n(named-region 1408 24 .init)\n(named-region 1440 96 .plt)\n(named-region 1536 360 .text)\n(named-region 1896 20 .fini)\n(named-region 1916 4 .rodata)\n(named-region 1920 60 .eh_frame_hdr)\n(named-region 1984 184 .eh_frame)\n(named-region 69064 8 .init_array)\n(named-region 69072 8 .fini_array)\n(named-region 69080 480 .dynamic)\n(named-region 69560 48 .got)\n(named-region 69608 56 .got.plt)\n(named-region 69664 16 .data)\n(named-region 69680 16 .bss)\n(named-region 0 71 .comment)\n(named-region 0 2184 .symtab)\n(named-region 0 561 .strtab)\n(named-region 0 259 .shstrtab)\n(named-symbol 1588 call_weak_fn)\n(named-symbol 1616 deregister_tm_clones)\n(named-symbol 1664 register_tm_clones)\n(named-symbol 1728 __do_global_dtors_aux)\n(named-symbol 1808 frame_dummy)\n(named-symbol 0 __libc_start_main@GLIBC_2.34)\n(named-symbol 0 __cxa_finalize@GLIBC_2.17)\n(named-symbol 1896 _fini)\n(named-symbol 0 abort@GLIBC_2.17)\n(named-symbol 1536 _start)\n(named-symbol 1812 main)\n(named-symbol 1408 _init)\n(named-symbol 0 __libc_start_main)\n(named-symbol 0 __cxa_finalize)\n(named-symbol 0 abort)\n(require libc.so.6)\n(section 568 27)\n(section 596 36)\n(section 632 32)\n(section 664 28)\n(section 696 216)\n(section 912 141)\n(section 1054 18)\n(section 1072 48)\n(section 1120 192)\n(section 1312 96)\n(section 1408 24)\n(section 1440 96)\n(section 1536 360)\n(section 1896 20)\n(section 1916 4)\n(section 1920 60)\n(section 1984 184)\n(section 69064 8)\n(section 69072 8)\n(section 69080 480)\n(section 69560 48)\n(section 69608 56)\n(section 69664 16)\n(section 69680 16)\n(section 0 71)\n(section 0 2184)\n(section 0 561)\n(section 0 259)\n(segment 0 2168 true false true)\n(segment 69064 632 true true false)\n(subarch v8)\n(symbol-chunk 1588 20 1588)\n(symbol-chunk 1536 52 1536)\n(symbol-chunk 1812 84 1812)\n(symbol-value 1588 1588)\n(symbol-value 1616 1616)\n(symbol-value 1664 1664)\n(symbol-value 1728 1728)\n(symbol-value 1808 1808)\n(symbol-value 1896 1896)\n(symbol-value 1536 1536)\n(symbol-value 1812 1812)\n(symbol-value 1408 1408)\n(symbol-value 0 0)\n(system \"\")\n(vendor \"\")\n"), -Attr("abi-name","\"aarch64-linux-gnu-elf\"")]), -Sections([Section(".shstrtab", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x00\x06\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x38\x1c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x38\x00\x09\x00\x40\x00\x1d\x00\x1c\x00\x06\x00\x00\x00\x04\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x04\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x78\x08\x00\x00\x00\x00\x00\x00\x78\x08\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x01\x00\x00\x00\x06\x00\x00\x00\xc8\x0d\x00\x00\x00\x00\x00\x00\xc8\x0d\x01\x00\x00\x00\x00\x00\xc8\x0d\x01"), -Section(".strtab", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x00\x06\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x38\x1c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x38\x00\x09\x00\x40\x00\x1d\x00\x1c\x00\x06\x00\x00\x00\x04\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x04\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x78\x08\x00\x00\x00\x00\x00\x00\x78\x08\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x01\x00\x00\x00\x06\x00\x00\x00\xc8\x0d\x00\x00\x00\x00\x00\x00\xc8\x0d\x01\x00\x00\x00\x00\x00\xc8\x0d\x01\x00\x00\x00\x00\x00\x68\x02\x00\x00\x00\x00\x00\x00\x78\x02\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x02\x00\x00\x00\x06\x00\x00\x00\xd8\x0d\x00\x00\x00\x00\x00\x00\xd8\x0d\x01\x00\x00\x00\x00\x00\xd8\x0d\x01\x00\x00\x00\x00\x00\xe0\x01\x00\x00\x00\x00\x00\x00\xe0\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x04\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x50\xe5\x74\x64\x04\x00\x00\x00\x80\x07\x00\x00\x00\x00\x00\x00\x80\x07\x00\x00\x00\x00\x00\x00\x80\x07\x00\x00\x00\x00\x00\x00\x3c\x00\x00\x00\x00\x00\x00\x00\x3c\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x51\xe5\x74\x64\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x52\xe5\x74\x64\x04\x00\x00\x00\xc8\x0d\x00\x00\x00\x00\x00\x00\xc8\x0d\x01\x00\x00\x00\x00\x00\xc8\x0d\x01\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x01"), -Section(".comment", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x00\x06\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x38\x1c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x38\x00\x09\x00\x40\x00\x1d\x00\x1c\x00\x06\x00\x00\x00\x04\x00\x00"), -Section(".interp", 0x238, "\x2f\x6c\x69\x62\x2f\x6c\x64\x2d\x6c\x69\x6e\x75\x78\x2d\x61\x61\x72\x63\x68\x36\x34\x2e\x73\x6f\x2e\x31\x00"), -Section(".note.gnu.build-id", 0x254, "\x04\x00\x00\x00\x14\x00\x00\x00\x03\x00\x00\x00\x47\x4e\x55\x00\x70\xf8\xd2\x33\x11\x29\xbc\x71\x11\x75\x85\x4b\x74\xd0\x7f\xfd\xe4\xa3\x6a\x0f"), -Section(".note.ABI-tag", 0x278, "\x04\x00\x00\x00\x10\x00\x00\x00\x01\x00\x00\x00\x47\x4e\x55\x00\x00\x00\x00\x00\x03\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00"), -Section(".gnu.hash", 0x298, "\x01\x00\x00\x00\x01\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".dynsym", 0x2B8, "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x0b\x00\x80\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x17\x00\x20\x10\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x48\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x22\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x22\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x73\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".dynstr", 0x390, "\x00\x5f\x5f\x63\x78\x61\x5f\x66\x69\x6e\x61\x6c\x69\x7a\x65\x00\x5f\x5f\x6c\x69\x62\x63\x5f\x73\x74\x61\x72\x74\x5f\x6d\x61\x69\x6e\x00\x61\x62\x6f\x72\x74\x00\x6c\x69\x62\x63\x2e\x73\x6f\x2e\x36\x00\x47\x4c\x49\x42\x43\x5f\x32\x2e\x31\x37\x00\x47\x4c\x49\x42\x43\x5f\x32\x2e\x33\x34\x00\x5f\x49\x54\x4d\x5f\x64\x65\x72\x65\x67\x69\x73\x74\x65\x72\x54\x4d\x43\x6c\x6f\x6e\x65\x54\x61\x62\x6c\x65\x00\x5f\x5f\x67\x6d\x6f\x6e\x5f\x73\x74\x61\x72\x74\x5f\x5f\x00\x5f\x49\x54\x4d\x5f\x72\x65\x67\x69\x73\x74\x65\x72\x54\x4d\x43\x6c\x6f\x6e\x65\x54\x61\x62\x6c\x65\x00"), -Section(".gnu.version", 0x41E, "\x00\x00\x00\x00\x00\x00\x02\x00\x01\x00\x03\x00\x01\x00\x03\x00\x01\x00"), -Section(".gnu.version_r", 0x430, "\x01\x00\x02\x00\x28\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x97\x91\x96\x06\x00\x00\x03\x00\x32\x00\x00\x00\x10\x00\x00\x00\xb4\x91\x96\x06\x00\x00\x02\x00\x3d\x00\x00\x00\x00\x00\x00\x00"), -Section(".rela.dyn", 0x460, "\xc8\x0d\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x10\x07\x00\x00\x00\x00\x00\x00\xd0\x0d\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\xc0\x06\x00\x00\x00\x00\x00\x00\xd8\x0f\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x14\x07\x00\x00\x00\x00\x00\x00\x28\x10\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x28\x10\x01\x00\x00\x00\x00\x00\xc0\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xc8\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xd0\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe0\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".rela.plt", 0x520, "\x00\x10\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x08\x10\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x10\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x18\x10\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".init", 0x580, "\x1f\x20\x03\xd5\xfd\x7b\xbf\xa9\xfd\x03\x00\x91\x2a\x00\x00\x94\xfd\x7b\xc1\xa8\xc0\x03\x5f\xd6"), -Section(".plt", 0x5A0, "\xf0\x7b\xbf\xa9\x90\x00\x00\x90\x11\xfe\x47\xf9\x10\xe2\x3f\x91\x20\x02\x1f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x90\x00\x00\xb0\x11\x02\x40\xf9\x10\x02\x00\x91\x20\x02\x1f\xd6\x90\x00\x00\xb0\x11\x06\x40\xf9\x10\x22\x00\x91\x20\x02\x1f\xd6\x90\x00\x00\xb0\x11\x0a\x40\xf9\x10\x42\x00\x91\x20\x02\x1f\xd6\x90\x00\x00\xb0\x11\x0e\x40\xf9\x10\x62\x00\x91\x20\x02\x1f\xd6"), -Section(".text", 0x600, "\x1f\x20\x03\xd5\x1d\x00\x80\xd2\x1e\x00\x80\xd2\xe5\x03\x00\xaa\xe1\x03\x40\xf9\xe2\x23\x00\x91\xe6\x03\x00\x91\x80\x00\x00\x90\x00\xec\x47\xf9\x03\x00\x80\xd2\x04\x00\x80\xd2\xe5\xff\xff\x97\xf0\xff\xff\x97\x80\x00\x00\x90\x00\xe8\x47\xf9\x40\x00\x00\xb4\xe8\xff\xff\x17\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x80\x00\x00\xb0\x00\xc0\x00\x91\x81\x00\x00\xb0\x21\xc0\x00\x91\x3f\x00\x00\xeb\xc0\x00\x00\x54\x81\x00\x00\x90\x21\xe0\x47\xf9\x61\x00\x00\xb4\xf0\x03\x01\xaa\x00\x02\x1f\xd6\xc0\x03\x5f\xd6\x80\x00\x00\xb0\x00\xc0\x00\x91\x81\x00\x00\xb0\x21\xc0\x00\x91\x21\x00\x00\xcb\x22\xfc\x7f\xd3\x41\x0c\x81\x8b\x21\xfc\x41\x93\xc1\x00\x00\xb4\x82\x00\x00\x90\x42\xf0\x47\xf9\x62\x00\x00\xb4\xf0\x03\x02\xaa\x00\x02\x1f\xd6\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\xfd\x7b\xbe\xa9\xfd\x03\x00\x91\xf3\x0b\x00\xf9\x93\x00\x00\xb0\x60\xc2\x40\x39\x40\x01\x00\x35\x80\x00\x00\x90\x00\xe4\x47\xf9\x80\x00\x00\xb4\x80\x00\x00\xb0\x00\x14\x40\xf9\xb9\xff\xff\x97\xd8\xff\xff\x97\x20\x00\x80\x52\x60\xc2\x00\x39\xf3\x0b\x40\xf9\xfd\x7b\xc2\xa8\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\xdc\xff\xff\x17\xff\x43\x00\xd1\xff\x0f\x00\xb9\x88\x00\x00\xb0\x29\x00\x80\x52\x09\x35\x00\xb9\x08\x35\x40\xb9\x08\x01\x00\x71\xe8\x17\x9f\x1a\xc8\x00\x00\x37\x01\x00\x00\x14\x68\x00\x80\x52\x89\x00\x00\xb0\x28\x39\x00\xb9\x05\x00\x00\x14\x89\x00\x00\xb0\x48\x00\x80\x52\x28\x39\x00\xb9\x01\x00\x00\x14\xe0\x0f\x40\xb9\xff\x43\x00\x91\xc0\x03\x5f\xd6"), -Section(".fini", 0x768, "\x1f\x20\x03\xd5\xfd\x7b\xbf\xa9\xfd\x03\x00\x91\xfd\x7b\xc1\xa8\xc0\x03\x5f\xd6"), -Section(".rodata", 0x77C, "\x01\x00\x02\x00"), -Section(".eh_frame_hdr", 0x780, "\x01\x1b\x03\x3b\x3c\x00\x00\x00\x06\x00\x00\x00\x80\xfe\xff\xff\x54\x00\x00\x00\xd0\xfe\xff\xff\x68\x00\x00\x00\x00\xff\xff\xff\x7c\x00\x00\x00\x40\xff\xff\xff\x90\x00\x00\x00\x90\xff\xff\xff\xb4\x00\x00\x00\x94\xff\xff\xff\xdc\x00\x00\x00"), -Section(".eh_frame", 0x7C0, "\x10\x00\x00\x00\x00\x00\x00\x00\x01\x7a\x52\x00\x04\x78\x1e\x01\x1b\x0c\x1f\x00\x10\x00\x00\x00\x18\x00\x00\x00\x24\xfe\xff\xff\x34\x00\x00\x00\x00\x41\x07\x1e\x10\x00\x00\x00\x2c\x00\x00\x00\x60\xfe\xff\xff\x30\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x40\x00\x00\x00\x7c\xfe\xff\xff\x3c\x00\x00\x00\x00\x00\x00\x00\x20\x00\x00\x00\x54\x00\x00\x00\xa8\xfe\xff\xff\x48\x00\x00\x00\x00\x41\x0e\x20\x9d\x04\x9e\x03\x42\x93\x02\x4e\xde\xdd\xd3\x0e\x00\x00\x00\x00\x10\x00\x00\x00\x78\x00\x00\x00\xd4\xfe\xff\xff\x04\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x01\x7a\x52\x00\x01\x7c\x1e\x01\x1b\x0c\x1f\x00\x14\x00\x00\x00\x18\x00\x00\x00\xb0\xfe\xff\xff\x54\x00\x00\x00\x00\x44\x0e\x10\x02\x4c\x0e\x00\x00\x00\x00\x00"), -Section(".fini_array", 0x10DD0, "\xc0\x06\x00\x00\x00\x00\x00\x00"), -Section(".dynamic", 0x10DD8, "\x01\x00\x00\x00\x00\x00\x00\x00\x28\x00\x00\x00\x00\x00\x00\x00\x0c\x00\x00\x00\x00\x00\x00\x00\x80\x05\x00\x00\x00\x00\x00\x00\x0d\x00\x00\x00\x00\x00\x00\x00\x68\x07\x00\x00\x00\x00\x00\x00\x19\x00\x00\x00\x00\x00\x00\x00\xc8\x0d\x01\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x1a\x00\x00\x00\x00\x00\x00\x00\xd0\x0d\x01\x00\x00\x00\x00\x00\x1c\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\xf5\xfe\xff\x6f\x00\x00\x00\x00\x98\x02\x00\x00\x00\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x90\x03\x00\x00\x00\x00\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\xb8\x02\x00\x00\x00\x00\x00\x00\x0a\x00\x00\x00\x00\x00\x00\x00\x8d\x00\x00\x00\x00\x00\x00\x00\x0b\x00\x00\x00\x00\x00\x00\x00\x18\x00\x00\x00\x00\x00\x00\x00\x15\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\xe8\x0f\x01\x00\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x60\x00\x00\x00\x00\x00\x00\x00\x14\x00\x00\x00\x00\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x17\x00\x00\x00\x00\x00\x00\x00\x20\x05\x00\x00\x00\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x60\x04\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\xc0\x00\x00\x00\x00\x00\x00\x00\x09\x00\x00\x00\x00\x00\x00\x00\x18\x00\x00\x00\x00\x00\x00\x00\xfb\xff\xff\x6f\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\xfe\xff\xff\x6f\x00\x00\x00\x00\x30\x04\x00\x00\x00\x00\x00\x00\xff\xff\xff\x6f\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\xf0\xff\xff\x6f\x00\x00\x00\x00\x1e\x04\x00\x00\x00\x00\x00\x00\xf9\xff\xff\x6f\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".init_array", 0x10DC8, "\x10\x07\x00\x00\x00\x00\x00\x00"), -Section(".got", 0x10FB8, "\xd8\x0d\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x14\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".got.plt", 0x10FE8, "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xa0\x05\x00\x00\x00\x00\x00\x00\xa0\x05\x00\x00\x00\x00\x00\x00\xa0\x05\x00\x00\x00\x00\x00\x00\xa0\x05\x00\x00\x00\x00\x00\x00"), -Section(".data", 0x11020, "\x00\x00\x00\x00\x00\x00\x00\x00\x28\x10\x01\x00\x00\x00\x00\x00")]), -Memmap([Annotation(Region(0x0,0x877), Attr("segment","02 0 2168")), -Annotation(Region(0x600,0x633), Attr("symbol","\"_start\"")), -Annotation(Region(0x0,0x102), Attr("section","\".shstrtab\"")), -Annotation(Region(0x0,0x230), Attr("section","\".strtab\"")), -Annotation(Region(0x0,0x46), Attr("section","\".comment\"")), -Annotation(Region(0x238,0x252), Attr("section","\".interp\"")), -Annotation(Region(0x254,0x277), Attr("section","\".note.gnu.build-id\"")), -Annotation(Region(0x278,0x297), Attr("section","\".note.ABI-tag\"")), -Annotation(Region(0x298,0x2B3), Attr("section","\".gnu.hash\"")), -Annotation(Region(0x2B8,0x38F), Attr("section","\".dynsym\"")), -Annotation(Region(0x390,0x41C), Attr("section","\".dynstr\"")), -Annotation(Region(0x41E,0x42F), Attr("section","\".gnu.version\"")), -Annotation(Region(0x430,0x45F), Attr("section","\".gnu.version_r\"")), -Annotation(Region(0x460,0x51F), Attr("section","\".rela.dyn\"")), -Annotation(Region(0x520,0x57F), Attr("section","\".rela.plt\"")), -Annotation(Region(0x580,0x597), Attr("section","\".init\"")), -Annotation(Region(0x5A0,0x5FF), Attr("section","\".plt\"")), -Annotation(Region(0x580,0x597), Attr("code-region","()")), -Annotation(Region(0x5A0,0x5FF), Attr("code-region","()")), -Annotation(Region(0x600,0x633), Attr("symbol-info","_start 0x600 52")), -Annotation(Region(0x634,0x647), Attr("symbol","\"call_weak_fn\"")), -Annotation(Region(0x634,0x647), Attr("symbol-info","call_weak_fn 0x634 20")), -Annotation(Region(0x600,0x767), Attr("section","\".text\"")), -Annotation(Region(0x600,0x767), Attr("code-region","()")), -Annotation(Region(0x714,0x767), Attr("symbol","\"main\"")), -Annotation(Region(0x714,0x767), Attr("symbol-info","main 0x714 84")), -Annotation(Region(0x768,0x77B), Attr("section","\".fini\"")), -Annotation(Region(0x768,0x77B), Attr("code-region","()")), -Annotation(Region(0x77C,0x77F), Attr("section","\".rodata\"")), -Annotation(Region(0x780,0x7BB), Attr("section","\".eh_frame_hdr\"")), -Annotation(Region(0x7C0,0x877), Attr("section","\".eh_frame\"")), -Annotation(Region(0x10DC8,0x1102F), Attr("segment","03 0x10DC8 632")), -Annotation(Region(0x10DD0,0x10DD7), Attr("section","\".fini_array\"")), -Annotation(Region(0x10DD8,0x10FB7), Attr("section","\".dynamic\"")), -Annotation(Region(0x10DC8,0x10DCF), Attr("section","\".init_array\"")), -Annotation(Region(0x10FB8,0x10FE7), Attr("section","\".got\"")), -Annotation(Region(0x10FE8,0x1101F), Attr("section","\".got.plt\"")), -Annotation(Region(0x11020,0x1102F), Attr("section","\".data\""))]), -Program(Tid(1_641, "%00000669"), Attrs([]), - Subs([Sub(Tid(1_589, "@__cxa_finalize"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x5D0"), -Attr("stub","()")]), "__cxa_finalize", Args([Arg(Tid(1_642, "%0000066a"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("__cxa_finalize_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(975, "@__cxa_finalize"), - Attrs([Attr("address","0x5D0")]), Phis([]), -Defs([Def(Tid(1_223, "%000004c7"), Attrs([Attr("address","0x5D0"), -Attr("insn","adrp x16, #69632")]), Var("R16",Imm(64)), Int(69632,64)), -Def(Tid(1_230, "%000004ce"), Attrs([Attr("address","0x5D4"), -Attr("insn","ldr x17, [x16, #0x8]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(1_236, "%000004d4"), Attrs([Attr("address","0x5D8"), -Attr("insn","add x16, x16, #0x8")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(8,64)))]), Jmps([Call(Tid(1_241, "%000004d9"), - Attrs([Attr("address","0x5DC"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), -Sub(Tid(1_590, "@__do_global_dtors_aux"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x6C0")]), - "__do_global_dtors_aux", Args([Arg(Tid(1_643, "%0000066b"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("__do_global_dtors_aux_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(674, "@__do_global_dtors_aux"), - Attrs([Attr("address","0x6C0")]), Phis([]), Defs([Def(Tid(678, "%000002a6"), - Attrs([Attr("address","0x6C0"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("#3",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(18446744073709551584,64))), -Def(Tid(684, "%000002ac"), Attrs([Attr("address","0x6C0"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("#3",Imm(64)),Var("R29",Imm(64)),LittleEndian(),64)), -Def(Tid(690, "%000002b2"), Attrs([Attr("address","0x6C0"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("#3",Imm(64)),Int(8,64)),Var("R30",Imm(64)),LittleEndian(),64)), -Def(Tid(694, "%000002b6"), Attrs([Attr("address","0x6C0"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("R31",Imm(64)), -Var("#3",Imm(64))), Def(Tid(700, "%000002bc"), - Attrs([Attr("address","0x6C4"), Attr("insn","mov x29, sp")]), - Var("R29",Imm(64)), Var("R31",Imm(64))), Def(Tid(708, "%000002c4"), - Attrs([Attr("address","0x6C8"), Attr("insn","str x19, [sp, #0x10]")]), - Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(16,64)),Var("R19",Imm(64)),LittleEndian(),64)), -Def(Tid(713, "%000002c9"), Attrs([Attr("address","0x6CC"), -Attr("insn","adrp x19, #69632")]), Var("R19",Imm(64)), Int(69632,64)), -Def(Tid(720, "%000002d0"), Attrs([Attr("address","0x6D0"), -Attr("insn","ldrb w0, [x19, #0x30]")]), Var("R0",Imm(64)), -UNSIGNED(64,Load(Var("mem",Mem(64,8)),PLUS(Var("R19",Imm(64)),Int(48,64)),LittleEndian(),8)))]), -Jmps([Goto(Tid(727, "%000002d7"), Attrs([Attr("address","0x6D4"), -Attr("insn","cbnz w0, #0x28")]), - NEQ(Extract(31,0,Var("R0",Imm(64))),Int(0,32)), -Direct(Tid(725, "%000002d5"))), Goto(Tid(1_630, "%0000065e"), Attrs([]), - Int(1,1), Direct(Tid(920, "%00000398")))])), Blk(Tid(920, "%00000398"), - Attrs([Attr("address","0x6D8")]), Phis([]), Defs([Def(Tid(923, "%0000039b"), - Attrs([Attr("address","0x6D8"), Attr("insn","adrp x0, #65536")]), - Var("R0",Imm(64)), Int(65536,64)), Def(Tid(930, "%000003a2"), - Attrs([Attr("address","0x6DC"), Attr("insn","ldr x0, [x0, #0xfc8]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(4040,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(936, "%000003a8"), Attrs([Attr("address","0x6E0"), -Attr("insn","cbz x0, #0x10")]), EQ(Var("R0",Imm(64)),Int(0,64)), -Direct(Tid(934, "%000003a6"))), Goto(Tid(1_631, "%0000065f"), Attrs([]), - Int(1,1), Direct(Tid(959, "%000003bf")))])), Blk(Tid(959, "%000003bf"), - Attrs([Attr("address","0x6E4")]), Phis([]), Defs([Def(Tid(962, "%000003c2"), - Attrs([Attr("address","0x6E4"), Attr("insn","adrp x0, #69632")]), - Var("R0",Imm(64)), Int(69632,64)), Def(Tid(969, "%000003c9"), - Attrs([Attr("address","0x6E8"), Attr("insn","ldr x0, [x0, #0x28]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(40,64)),LittleEndian(),64)), -Def(Tid(974, "%000003ce"), Attrs([Attr("address","0x6EC"), -Attr("insn","bl #-0x11c")]), Var("R30",Imm(64)), Int(1776,64))]), -Jmps([Call(Tid(977, "%000003d1"), Attrs([Attr("address","0x6EC"), -Attr("insn","bl #-0x11c")]), Int(1,1), -(Direct(Tid(1_589, "@__cxa_finalize")),Direct(Tid(934, "%000003a6"))))])), -Blk(Tid(934, "%000003a6"), Attrs([Attr("address","0x6F0")]), Phis([]), -Defs([Def(Tid(942, "%000003ae"), Attrs([Attr("address","0x6F0"), -Attr("insn","bl #-0xa0")]), Var("R30",Imm(64)), Int(1780,64))]), -Jmps([Call(Tid(944, "%000003b0"), Attrs([Attr("address","0x6F0"), -Attr("insn","bl #-0xa0")]), Int(1,1), -(Direct(Tid(1_603, "@deregister_tm_clones")),Direct(Tid(946, "%000003b2"))))])), -Blk(Tid(946, "%000003b2"), Attrs([Attr("address","0x6F4")]), Phis([]), -Defs([Def(Tid(949, "%000003b5"), Attrs([Attr("address","0x6F4"), -Attr("insn","mov w0, #0x1")]), Var("R0",Imm(64)), Int(1,64)), -Def(Tid(957, "%000003bd"), Attrs([Attr("address","0x6F8"), -Attr("insn","strb w0, [x19, #0x30]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R19",Imm(64)),Int(48,64)),Extract(7,0,Var("R0",Imm(64))),LittleEndian(),8))]), -Jmps([Goto(Tid(1_632, "%00000660"), Attrs([]), Int(1,1), -Direct(Tid(725, "%000002d5")))])), Blk(Tid(725, "%000002d5"), - Attrs([Attr("address","0x6FC")]), Phis([]), Defs([Def(Tid(735, "%000002df"), - Attrs([Attr("address","0x6FC"), Attr("insn","ldr x19, [sp, #0x10]")]), - Var("R19",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(16,64)),LittleEndian(),64)), -Def(Tid(742, "%000002e6"), Attrs([Attr("address","0x700"), -Attr("insn","ldp x29, x30, [sp], #0x20")]), Var("R29",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(747, "%000002eb"), Attrs([Attr("address","0x700"), -Attr("insn","ldp x29, x30, [sp], #0x20")]), Var("R30",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(751, "%000002ef"), Attrs([Attr("address","0x700"), -Attr("insn","ldp x29, x30, [sp], #0x20")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(32,64)))]), Jmps([Call(Tid(756, "%000002f4"), - Attrs([Attr("address","0x704"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), Sub(Tid(1_594, "@__libc_start_main"), - Attrs([Attr("c.proto","signed (*)(signed (*)(signed , char** , char** );* main, signed , char** , \nvoid* auxv)"), -Attr("address","0x5C0"), Attr("stub","()")]), "__libc_start_main", - Args([Arg(Tid(1_644, "%0000066c"), - Attrs([Attr("c.layout","**[ : 64]"), -Attr("c.data","Top:u64 ptr ptr"), -Attr("c.type","signed (*)(signed , char** , char** );*")]), - Var("__libc_start_main_main",Imm(64)), Var("R0",Imm(64)), In()), -Arg(Tid(1_645, "%0000066d"), Attrs([Attr("c.layout","[signed : 32]"), -Attr("c.data","Top:u32"), Attr("c.type","signed")]), - Var("__libc_start_main_arg2",Imm(32)), LOW(32,Var("R1",Imm(64))), In()), -Arg(Tid(1_646, "%0000066e"), Attrs([Attr("c.layout","**[char : 8]"), -Attr("c.data","Top:u8 ptr ptr"), Attr("c.type","char**")]), - Var("__libc_start_main_arg3",Imm(64)), Var("R2",Imm(64)), Both()), -Arg(Tid(1_647, "%0000066f"), Attrs([Attr("c.layout","*[ : 8]"), -Attr("c.data","{} ptr"), Attr("c.type","void*")]), - Var("__libc_start_main_auxv",Imm(64)), Var("R3",Imm(64)), Both()), -Arg(Tid(1_648, "%00000670"), Attrs([Attr("c.layout","[signed : 32]"), -Attr("c.data","Top:u32"), Attr("c.type","signed")]), - Var("__libc_start_main_result",Imm(32)), LOW(32,Var("R0",Imm(64))), -Out())]), Blks([Blk(Tid(507, "@__libc_start_main"), - Attrs([Attr("address","0x5C0")]), Phis([]), -Defs([Def(Tid(1_201, "%000004b1"), Attrs([Attr("address","0x5C0"), -Attr("insn","adrp x16, #69632")]), Var("R16",Imm(64)), Int(69632,64)), -Def(Tid(1_208, "%000004b8"), Attrs([Attr("address","0x5C4"), -Attr("insn","ldr x17, [x16]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R16",Imm(64)),LittleEndian(),64)), -Def(Tid(1_214, "%000004be"), Attrs([Attr("address","0x5C8"), -Attr("insn","add x16, x16, #0x0")]), Var("R16",Imm(64)), -Var("R16",Imm(64)))]), Jmps([Call(Tid(1_219, "%000004c3"), - Attrs([Attr("address","0x5CC"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), Sub(Tid(1_595, "@_fini"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x768")]), - "_fini", Args([Arg(Tid(1_649, "%00000671"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("_fini_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(31, "@_fini"), - Attrs([Attr("address","0x768")]), Phis([]), Defs([Def(Tid(37, "%00000025"), - Attrs([Attr("address","0x76C"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("#0",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(18446744073709551600,64))), -Def(Tid(43, "%0000002b"), Attrs([Attr("address","0x76C"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("#0",Imm(64)),Var("R29",Imm(64)),LittleEndian(),64)), -Def(Tid(49, "%00000031"), Attrs([Attr("address","0x76C"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("#0",Imm(64)),Int(8,64)),Var("R30",Imm(64)),LittleEndian(),64)), -Def(Tid(53, "%00000035"), Attrs([Attr("address","0x76C"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("R31",Imm(64)), -Var("#0",Imm(64))), Def(Tid(59, "%0000003b"), Attrs([Attr("address","0x770"), -Attr("insn","mov x29, sp")]), Var("R29",Imm(64)), Var("R31",Imm(64))), -Def(Tid(66, "%00000042"), Attrs([Attr("address","0x774"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R29",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(71, "%00000047"), Attrs([Attr("address","0x774"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R30",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(75, "%0000004b"), Attrs([Attr("address","0x774"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(16,64)))]), Jmps([Call(Tid(80, "%00000050"), - Attrs([Attr("address","0x778"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), Sub(Tid(1_596, "@_init"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x580")]), - "_init", Args([Arg(Tid(1_650, "%00000672"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("_init_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(1_410, "@_init"), - Attrs([Attr("address","0x580")]), Phis([]), -Defs([Def(Tid(1_416, "%00000588"), Attrs([Attr("address","0x584"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("#6",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(18446744073709551600,64))), -Def(Tid(1_422, "%0000058e"), Attrs([Attr("address","0x584"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("#6",Imm(64)),Var("R29",Imm(64)),LittleEndian(),64)), -Def(Tid(1_428, "%00000594"), Attrs([Attr("address","0x584"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("#6",Imm(64)),Int(8,64)),Var("R30",Imm(64)),LittleEndian(),64)), -Def(Tid(1_432, "%00000598"), Attrs([Attr("address","0x584"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("R31",Imm(64)), -Var("#6",Imm(64))), Def(Tid(1_438, "%0000059e"), - Attrs([Attr("address","0x588"), Attr("insn","mov x29, sp")]), - Var("R29",Imm(64)), Var("R31",Imm(64))), Def(Tid(1_443, "%000005a3"), - Attrs([Attr("address","0x58C"), Attr("insn","bl #0xa8")]), - Var("R30",Imm(64)), Int(1424,64))]), Jmps([Call(Tid(1_445, "%000005a5"), - Attrs([Attr("address","0x58C"), Attr("insn","bl #0xa8")]), Int(1,1), -(Direct(Tid(1_601, "@call_weak_fn")),Direct(Tid(1_447, "%000005a7"))))])), -Blk(Tid(1_447, "%000005a7"), Attrs([Attr("address","0x590")]), Phis([]), -Defs([Def(Tid(1_452, "%000005ac"), Attrs([Attr("address","0x590"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R29",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(1_457, "%000005b1"), Attrs([Attr("address","0x590"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R30",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(1_461, "%000005b5"), Attrs([Attr("address","0x590"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(16,64)))]), Jmps([Call(Tid(1_466, "%000005ba"), - Attrs([Attr("address","0x594"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), Sub(Tid(1_597, "@_start"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x600"), -Attr("stub","()"), Attr("entry-point","()")]), "_start", - Args([Arg(Tid(1_651, "%00000673"), Attrs([Attr("c.layout","[signed : 32]"), -Attr("c.data","Top:u32"), Attr("c.type","signed")]), - Var("_start_result",Imm(32)), LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(444, "@_start"), Attrs([Attr("address","0x600")]), Phis([]), -Defs([Def(Tid(449, "%000001c1"), Attrs([Attr("address","0x604"), -Attr("insn","mov x29, #0x0")]), Var("R29",Imm(64)), Int(0,64)), -Def(Tid(454, "%000001c6"), Attrs([Attr("address","0x608"), -Attr("insn","mov x30, #0x0")]), Var("R30",Imm(64)), Int(0,64)), -Def(Tid(460, "%000001cc"), Attrs([Attr("address","0x60C"), -Attr("insn","mov x5, x0")]), Var("R5",Imm(64)), Var("R0",Imm(64))), -Def(Tid(467, "%000001d3"), Attrs([Attr("address","0x610"), -Attr("insn","ldr x1, [sp]")]), Var("R1",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(473, "%000001d9"), Attrs([Attr("address","0x614"), -Attr("insn","add x2, sp, #0x8")]), Var("R2",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(8,64))), Def(Tid(479, "%000001df"), - Attrs([Attr("address","0x618"), Attr("insn","mov x6, sp")]), - Var("R6",Imm(64)), Var("R31",Imm(64))), Def(Tid(484, "%000001e4"), - Attrs([Attr("address","0x61C"), Attr("insn","adrp x0, #65536")]), - Var("R0",Imm(64)), Int(65536,64)), Def(Tid(491, "%000001eb"), - Attrs([Attr("address","0x620"), Attr("insn","ldr x0, [x0, #0xfd8]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(4056,64)),LittleEndian(),64)), -Def(Tid(496, "%000001f0"), Attrs([Attr("address","0x624"), -Attr("insn","mov x3, #0x0")]), Var("R3",Imm(64)), Int(0,64)), -Def(Tid(501, "%000001f5"), Attrs([Attr("address","0x628"), -Attr("insn","mov x4, #0x0")]), Var("R4",Imm(64)), Int(0,64)), -Def(Tid(506, "%000001fa"), Attrs([Attr("address","0x62C"), -Attr("insn","bl #-0x6c")]), Var("R30",Imm(64)), Int(1584,64))]), -Jmps([Call(Tid(509, "%000001fd"), Attrs([Attr("address","0x62C"), -Attr("insn","bl #-0x6c")]), Int(1,1), -(Direct(Tid(1_594, "@__libc_start_main")),Direct(Tid(511, "%000001ff"))))])), -Blk(Tid(511, "%000001ff"), Attrs([Attr("address","0x630")]), Phis([]), -Defs([Def(Tid(514, "%00000202"), Attrs([Attr("address","0x630"), -Attr("insn","bl #-0x40")]), Var("R30",Imm(64)), Int(1588,64))]), -Jmps([Call(Tid(517, "%00000205"), Attrs([Attr("address","0x630"), -Attr("insn","bl #-0x40")]), Int(1,1), -(Direct(Tid(1_600, "@abort")),Direct(Tid(1_633, "%00000661"))))])), -Blk(Tid(1_633, "%00000661"), Attrs([]), Phis([]), Defs([]), -Jmps([Call(Tid(1_634, "%00000662"), Attrs([]), Int(1,1), -(Direct(Tid(1_601, "@call_weak_fn")),))]))])), Sub(Tid(1_600, "@abort"), - Attrs([Attr("noreturn","()"), Attr("c.proto","void (*)(void)"), -Attr("address","0x5F0"), Attr("stub","()")]), "abort", Args([]), -Blks([Blk(Tid(515, "@abort"), Attrs([Attr("address","0x5F0")]), Phis([]), -Defs([Def(Tid(1_267, "%000004f3"), Attrs([Attr("address","0x5F0"), -Attr("insn","adrp x16, #69632")]), Var("R16",Imm(64)), Int(69632,64)), -Def(Tid(1_274, "%000004fa"), Attrs([Attr("address","0x5F4"), -Attr("insn","ldr x17, [x16, #0x18]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(24,64)),LittleEndian(),64)), -Def(Tid(1_280, "%00000500"), Attrs([Attr("address","0x5F8"), -Attr("insn","add x16, x16, #0x18")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(24,64)))]), Jmps([Call(Tid(1_285, "%00000505"), - Attrs([Attr("address","0x5FC"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), Sub(Tid(1_601, "@call_weak_fn"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x634")]), - "call_weak_fn", Args([Arg(Tid(1_652, "%00000674"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("call_weak_fn_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(519, "@call_weak_fn"), - Attrs([Attr("address","0x634")]), Phis([]), Defs([Def(Tid(522, "%0000020a"), - Attrs([Attr("address","0x634"), Attr("insn","adrp x0, #65536")]), - Var("R0",Imm(64)), Int(65536,64)), Def(Tid(529, "%00000211"), - Attrs([Attr("address","0x638"), Attr("insn","ldr x0, [x0, #0xfd0]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(4048,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(535, "%00000217"), Attrs([Attr("address","0x63C"), -Attr("insn","cbz x0, #0x8")]), EQ(Var("R0",Imm(64)),Int(0,64)), -Direct(Tid(533, "%00000215"))), Goto(Tid(1_635, "%00000663"), Attrs([]), - Int(1,1), Direct(Tid(1_039, "%0000040f")))])), Blk(Tid(533, "%00000215"), - Attrs([Attr("address","0x644")]), Phis([]), Defs([]), -Jmps([Call(Tid(541, "%0000021d"), Attrs([Attr("address","0x644"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))])), -Blk(Tid(1_039, "%0000040f"), Attrs([Attr("address","0x640")]), Phis([]), -Defs([]), Jmps([Goto(Tid(1_042, "%00000412"), Attrs([Attr("address","0x640"), -Attr("insn","b #-0x60")]), Int(1,1), -Direct(Tid(1_040, "@__gmon_start__")))])), Blk(Tid(1_040, "@__gmon_start__"), - Attrs([Attr("address","0x5E0")]), Phis([]), -Defs([Def(Tid(1_245, "%000004dd"), Attrs([Attr("address","0x5E0"), -Attr("insn","adrp x16, #69632")]), Var("R16",Imm(64)), Int(69632,64)), -Def(Tid(1_252, "%000004e4"), Attrs([Attr("address","0x5E4"), -Attr("insn","ldr x17, [x16, #0x10]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(16,64)),LittleEndian(),64)), -Def(Tid(1_258, "%000004ea"), Attrs([Attr("address","0x5E8"), -Attr("insn","add x16, x16, #0x10")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(16,64)))]), Jmps([Call(Tid(1_263, "%000004ef"), - Attrs([Attr("address","0x5EC"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), -Sub(Tid(1_603, "@deregister_tm_clones"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x650")]), - "deregister_tm_clones", Args([Arg(Tid(1_653, "%00000675"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("deregister_tm_clones_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(547, "@deregister_tm_clones"), - Attrs([Attr("address","0x650")]), Phis([]), Defs([Def(Tid(550, "%00000226"), - Attrs([Attr("address","0x650"), Attr("insn","adrp x0, #69632")]), - Var("R0",Imm(64)), Int(69632,64)), Def(Tid(556, "%0000022c"), - Attrs([Attr("address","0x654"), Attr("insn","add x0, x0, #0x30")]), - Var("R0",Imm(64)), PLUS(Var("R0",Imm(64)),Int(48,64))), -Def(Tid(561, "%00000231"), Attrs([Attr("address","0x658"), -Attr("insn","adrp x1, #69632")]), Var("R1",Imm(64)), Int(69632,64)), -Def(Tid(567, "%00000237"), Attrs([Attr("address","0x65C"), -Attr("insn","add x1, x1, #0x30")]), Var("R1",Imm(64)), -PLUS(Var("R1",Imm(64)),Int(48,64))), Def(Tid(573, "%0000023d"), - Attrs([Attr("address","0x660"), Attr("insn","cmp x1, x0")]), - Var("#1",Imm(64)), NOT(Var("R0",Imm(64)))), Def(Tid(578, "%00000242"), - Attrs([Attr("address","0x660"), Attr("insn","cmp x1, x0")]), - Var("#2",Imm(64)), PLUS(Var("R1",Imm(64)),NOT(Var("R0",Imm(64))))), -Def(Tid(584, "%00000248"), Attrs([Attr("address","0x660"), -Attr("insn","cmp x1, x0")]), Var("VF",Imm(1)), -NEQ(SIGNED(65,PLUS(Var("#2",Imm(64)),Int(1,64))),PLUS(PLUS(SIGNED(65,Var("R1",Imm(64))),SIGNED(65,Var("#1",Imm(64)))),Int(1,65)))), -Def(Tid(590, "%0000024e"), Attrs([Attr("address","0x660"), -Attr("insn","cmp x1, x0")]), Var("CF",Imm(1)), -NEQ(UNSIGNED(65,PLUS(Var("#2",Imm(64)),Int(1,64))),PLUS(PLUS(UNSIGNED(65,Var("R1",Imm(64))),UNSIGNED(65,Var("#1",Imm(64)))),Int(1,65)))), -Def(Tid(594, "%00000252"), Attrs([Attr("address","0x660"), -Attr("insn","cmp x1, x0")]), Var("ZF",Imm(1)), -EQ(PLUS(Var("#2",Imm(64)),Int(1,64)),Int(0,64))), Def(Tid(598, "%00000256"), - Attrs([Attr("address","0x660"), Attr("insn","cmp x1, x0")]), - Var("NF",Imm(1)), Extract(63,63,PLUS(Var("#2",Imm(64)),Int(1,64))))]), -Jmps([Goto(Tid(604, "%0000025c"), Attrs([Attr("address","0x664"), -Attr("insn","b.eq #0x18")]), EQ(Var("ZF",Imm(1)),Int(1,1)), -Direct(Tid(602, "%0000025a"))), Goto(Tid(1_636, "%00000664"), Attrs([]), - Int(1,1), Direct(Tid(1_009, "%000003f1")))])), Blk(Tid(1_009, "%000003f1"), - Attrs([Attr("address","0x668")]), Phis([]), -Defs([Def(Tid(1_012, "%000003f4"), Attrs([Attr("address","0x668"), -Attr("insn","adrp x1, #65536")]), Var("R1",Imm(64)), Int(65536,64)), -Def(Tid(1_019, "%000003fb"), Attrs([Attr("address","0x66C"), -Attr("insn","ldr x1, [x1, #0xfc0]")]), Var("R1",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R1",Imm(64)),Int(4032,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(1_024, "%00000400"), Attrs([Attr("address","0x670"), -Attr("insn","cbz x1, #0xc")]), EQ(Var("R1",Imm(64)),Int(0,64)), -Direct(Tid(602, "%0000025a"))), Goto(Tid(1_637, "%00000665"), Attrs([]), - Int(1,1), Direct(Tid(1_028, "%00000404")))])), Blk(Tid(602, "%0000025a"), - Attrs([Attr("address","0x67C")]), Phis([]), Defs([]), -Jmps([Call(Tid(610, "%00000262"), Attrs([Attr("address","0x67C"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))])), -Blk(Tid(1_028, "%00000404"), Attrs([Attr("address","0x674")]), Phis([]), -Defs([Def(Tid(1_032, "%00000408"), Attrs([Attr("address","0x674"), -Attr("insn","mov x16, x1")]), Var("R16",Imm(64)), Var("R1",Imm(64)))]), -Jmps([Call(Tid(1_037, "%0000040d"), Attrs([Attr("address","0x678"), -Attr("insn","br x16")]), Int(1,1), (Indirect(Var("R16",Imm(64))),))]))])), -Sub(Tid(1_606, "@frame_dummy"), Attrs([Attr("c.proto","signed (*)(void)"), -Attr("address","0x710")]), "frame_dummy", Args([Arg(Tid(1_654, "%00000676"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("frame_dummy_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(762, "@frame_dummy"), - Attrs([Attr("address","0x710")]), Phis([]), Defs([]), -Jmps([Call(Tid(764, "%000002fc"), Attrs([Attr("address","0x710"), -Attr("insn","b #-0x90")]), Int(1,1), -(Direct(Tid(1_609, "@register_tm_clones")),))]))])), Sub(Tid(1_607, "@main"), - Attrs([Attr("c.proto","signed (*)(signed argc, const char** argv)"), -Attr("address","0x714")]), "main", Args([Arg(Tid(1_655, "%00000677"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("main_argc",Imm(32)), -LOW(32,Var("R0",Imm(64))), In()), Arg(Tid(1_656, "%00000678"), - Attrs([Attr("c.layout","**[char : 8]"), Attr("c.data","Top:u8 ptr ptr"), -Attr("c.type"," const char**")]), Var("main_argv",Imm(64)), -Var("R1",Imm(64)), Both()), Arg(Tid(1_657, "%00000679"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("main_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(766, "@main"), - Attrs([Attr("address","0x714")]), Phis([]), Defs([Def(Tid(770, "%00000302"), - Attrs([Attr("address","0x714"), Attr("insn","sub sp, sp, #0x10")]), - Var("R31",Imm(64)), PLUS(Var("R31",Imm(64)),Int(18446744073709551600,64))), -Def(Tid(777, "%00000309"), Attrs([Attr("address","0x718"), -Attr("insn","str wzr, [sp, #0xc]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(12,64)),Int(0,32),LittleEndian(),32)), -Def(Tid(782, "%0000030e"), Attrs([Attr("address","0x71C"), -Attr("insn","adrp x8, #69632")]), Var("R8",Imm(64)), Int(69632,64)), -Def(Tid(787, "%00000313"), Attrs([Attr("address","0x720"), -Attr("insn","mov w9, #0x1")]), Var("R9",Imm(64)), Int(1,64)), -Def(Tid(795, "%0000031b"), Attrs([Attr("address","0x724"), -Attr("insn","str w9, [x8, #0x34]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R8",Imm(64)),Int(52,64)),Extract(31,0,Var("R9",Imm(64))),LittleEndian(),32)), -Def(Tid(802, "%00000322"), Attrs([Attr("address","0x728"), -Attr("insn","ldr w8, [x8, #0x34]")]), Var("R8",Imm(64)), -UNSIGNED(64,Load(Var("mem",Mem(64,8)),PLUS(Var("R8",Imm(64)),Int(52,64)),LittleEndian(),32))), -Def(Tid(808, "%00000328"), Attrs([Attr("address","0x72C"), -Attr("insn","subs w8, w8, #0x0")]), Var("#4",Imm(32)), -PLUS(Extract(31,0,Var("R8",Imm(64))),Int(4294967295,32))), -Def(Tid(813, "%0000032d"), Attrs([Attr("address","0x72C"), -Attr("insn","subs w8, w8, #0x0")]), Var("VF",Imm(1)), -NEQ(SIGNED(33,PLUS(Var("#4",Imm(32)),Int(1,32))),PLUS(SIGNED(33,Extract(31,0,Var("R8",Imm(64)))),Int(0,33)))), -Def(Tid(818, "%00000332"), Attrs([Attr("address","0x72C"), -Attr("insn","subs w8, w8, #0x0")]), Var("CF",Imm(1)), -NEQ(UNSIGNED(33,PLUS(Var("#4",Imm(32)),Int(1,32))),PLUS(UNSIGNED(33,Extract(31,0,Var("R8",Imm(64)))),Int(4294967296,33)))), -Def(Tid(822, "%00000336"), Attrs([Attr("address","0x72C"), -Attr("insn","subs w8, w8, #0x0")]), Var("ZF",Imm(1)), -EQ(PLUS(Var("#4",Imm(32)),Int(1,32)),Int(0,32))), Def(Tid(826, "%0000033a"), - Attrs([Attr("address","0x72C"), Attr("insn","subs w8, w8, #0x0")]), - Var("NF",Imm(1)), Extract(31,31,PLUS(Var("#4",Imm(32)),Int(1,32)))), -Def(Tid(830, "%0000033e"), Attrs([Attr("address","0x72C"), -Attr("insn","subs w8, w8, #0x0")]), Var("R8",Imm(64)), -UNSIGNED(64,PLUS(Var("#4",Imm(32)),Int(1,32))))]), -Jmps([Goto(Tid(842, "%0000034a"), Attrs([Attr("address","0x730"), -Attr("insn","cset w8, eq")]), NEQ(Var("ZF",Imm(1)),Int(1,1)), -Direct(Tid(835, "%00000343"))), Goto(Tid(843, "%0000034b"), - Attrs([Attr("address","0x730"), Attr("insn","cset w8, eq")]), Int(1,1), -Direct(Tid(838, "%00000346")))])), Blk(Tid(838, "%00000346"), Attrs([]), - Phis([]), Defs([Def(Tid(839, "%00000347"), Attrs([Attr("address","0x730"), -Attr("insn","cset w8, eq")]), Var("R8",Imm(64)), Int(1,64))]), -Jmps([Goto(Tid(845, "%0000034d"), Attrs([Attr("address","0x730"), -Attr("insn","cset w8, eq")]), Int(1,1), Direct(Tid(841, "%00000349")))])), -Blk(Tid(835, "%00000343"), Attrs([]), Phis([]), -Defs([Def(Tid(836, "%00000344"), Attrs([Attr("address","0x730"), -Attr("insn","cset w8, eq")]), Var("R8",Imm(64)), Int(0,64))]), -Jmps([Goto(Tid(844, "%0000034c"), Attrs([Attr("address","0x730"), -Attr("insn","cset w8, eq")]), Int(1,1), Direct(Tid(841, "%00000349")))])), -Blk(Tid(841, "%00000349"), Attrs([]), Phis([]), Defs([]), -Jmps([Goto(Tid(851, "%00000353"), Attrs([Attr("address","0x734"), -Attr("insn","tbnz w8, #0x0, #0x18")]), - EQ(Extract(0,0,Var("R8",Imm(64))),Int(1,1)), Direct(Tid(849, "%00000351"))), -Goto(Tid(1_638, "%00000666"), Attrs([]), Int(1,1), -Direct(Tid(894, "%0000037e")))])), Blk(Tid(849, "%00000351"), - Attrs([Attr("address","0x74C")]), Phis([]), Defs([Def(Tid(857, "%00000359"), - Attrs([Attr("address","0x74C"), Attr("insn","adrp x9, #69632")]), - Var("R9",Imm(64)), Int(69632,64)), Def(Tid(862, "%0000035e"), - Attrs([Attr("address","0x750"), Attr("insn","mov w8, #0x2")]), - Var("R8",Imm(64)), Int(2,64)), Def(Tid(870, "%00000366"), - Attrs([Attr("address","0x754"), Attr("insn","str w8, [x9, #0x38]")]), - Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R9",Imm(64)),Int(56,64)),Extract(31,0,Var("R8",Imm(64))),LittleEndian(),32))]), -Jmps([Goto(Tid(875, "%0000036b"), Attrs([Attr("address","0x758"), -Attr("insn","b #0x4")]), Int(1,1), Direct(Tid(873, "%00000369")))])), -Blk(Tid(894, "%0000037e"), Attrs([Attr("address","0x738")]), Phis([]), -Defs([]), Jmps([Goto(Tid(897, "%00000381"), Attrs([Attr("address","0x738"), -Attr("insn","b #0x4")]), Int(1,1), Direct(Tid(895, "%0000037f")))])), -Blk(Tid(895, "%0000037f"), Attrs([Attr("address","0x73C")]), Phis([]), -Defs([Def(Tid(901, "%00000385"), Attrs([Attr("address","0x73C"), -Attr("insn","mov w8, #0x3")]), Var("R8",Imm(64)), Int(3,64)), -Def(Tid(906, "%0000038a"), Attrs([Attr("address","0x740"), -Attr("insn","adrp x9, #69632")]), Var("R9",Imm(64)), Int(69632,64)), -Def(Tid(914, "%00000392"), Attrs([Attr("address","0x744"), -Attr("insn","str w8, [x9, #0x38]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R9",Imm(64)),Int(56,64)),Extract(31,0,Var("R8",Imm(64))),LittleEndian(),32))]), -Jmps([Goto(Tid(918, "%00000396"), Attrs([Attr("address","0x748"), -Attr("insn","b #0x14")]), Int(1,1), Direct(Tid(873, "%00000369")))])), -Blk(Tid(873, "%00000369"), Attrs([Attr("address","0x75C")]), Phis([]), -Defs([Def(Tid(881, "%00000371"), Attrs([Attr("address","0x75C"), -Attr("insn","ldr w0, [sp, #0xc]")]), Var("R0",Imm(64)), -UNSIGNED(64,Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(12,64)),LittleEndian(),32))), -Def(Tid(887, "%00000377"), Attrs([Attr("address","0x760"), -Attr("insn","add sp, sp, #0x10")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(16,64)))]), Jmps([Call(Tid(892, "%0000037c"), - Attrs([Attr("address","0x764"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), -Sub(Tid(1_609, "@register_tm_clones"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x680")]), - "register_tm_clones", Args([Arg(Tid(1_658, "%0000067a"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("register_tm_clones_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(612, "@register_tm_clones"), Attrs([Attr("address","0x680")]), - Phis([]), Defs([Def(Tid(615, "%00000267"), Attrs([Attr("address","0x680"), -Attr("insn","adrp x0, #69632")]), Var("R0",Imm(64)), Int(69632,64)), -Def(Tid(621, "%0000026d"), Attrs([Attr("address","0x684"), -Attr("insn","add x0, x0, #0x30")]), Var("R0",Imm(64)), -PLUS(Var("R0",Imm(64)),Int(48,64))), Def(Tid(626, "%00000272"), - Attrs([Attr("address","0x688"), Attr("insn","adrp x1, #69632")]), - Var("R1",Imm(64)), Int(69632,64)), Def(Tid(632, "%00000278"), - Attrs([Attr("address","0x68C"), Attr("insn","add x1, x1, #0x30")]), - Var("R1",Imm(64)), PLUS(Var("R1",Imm(64)),Int(48,64))), -Def(Tid(639, "%0000027f"), Attrs([Attr("address","0x690"), -Attr("insn","sub x1, x1, x0")]), Var("R1",Imm(64)), -PLUS(PLUS(Var("R1",Imm(64)),NOT(Var("R0",Imm(64)))),Int(1,64))), -Def(Tid(645, "%00000285"), Attrs([Attr("address","0x694"), -Attr("insn","lsr x2, x1, #63")]), Var("R2",Imm(64)), -Concat(Int(0,63),Extract(63,63,Var("R1",Imm(64))))), -Def(Tid(652, "%0000028c"), Attrs([Attr("address","0x698"), -Attr("insn","add x1, x2, x1, asr #3")]), Var("R1",Imm(64)), -PLUS(Var("R2",Imm(64)),ARSHIFT(Var("R1",Imm(64)),Int(3,3)))), -Def(Tid(658, "%00000292"), Attrs([Attr("address","0x69C"), -Attr("insn","asr x1, x1, #1")]), Var("R1",Imm(64)), -SIGNED(64,Extract(63,1,Var("R1",Imm(64)))))]), -Jmps([Goto(Tid(664, "%00000298"), Attrs([Attr("address","0x6A0"), -Attr("insn","cbz x1, #0x18")]), EQ(Var("R1",Imm(64)),Int(0,64)), -Direct(Tid(662, "%00000296"))), Goto(Tid(1_639, "%00000667"), Attrs([]), - Int(1,1), Direct(Tid(979, "%000003d3")))])), Blk(Tid(979, "%000003d3"), - Attrs([Attr("address","0x6A4")]), Phis([]), Defs([Def(Tid(982, "%000003d6"), - Attrs([Attr("address","0x6A4"), Attr("insn","adrp x2, #65536")]), - Var("R2",Imm(64)), Int(65536,64)), Def(Tid(989, "%000003dd"), - Attrs([Attr("address","0x6A8"), Attr("insn","ldr x2, [x2, #0xfe0]")]), - Var("R2",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R2",Imm(64)),Int(4064,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(994, "%000003e2"), Attrs([Attr("address","0x6AC"), -Attr("insn","cbz x2, #0xc")]), EQ(Var("R2",Imm(64)),Int(0,64)), -Direct(Tid(662, "%00000296"))), Goto(Tid(1_640, "%00000668"), Attrs([]), - Int(1,1), Direct(Tid(998, "%000003e6")))])), Blk(Tid(662, "%00000296"), - Attrs([Attr("address","0x6B8")]), Phis([]), Defs([]), -Jmps([Call(Tid(670, "%0000029e"), Attrs([Attr("address","0x6B8"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))])), -Blk(Tid(998, "%000003e6"), Attrs([Attr("address","0x6B0")]), Phis([]), -Defs([Def(Tid(1_002, "%000003ea"), Attrs([Attr("address","0x6B0"), -Attr("insn","mov x16, x2")]), Var("R16",Imm(64)), Var("R2",Imm(64)))]), -Jmps([Call(Tid(1_007, "%000003ef"), Attrs([Attr("address","0x6B4"), -Attr("insn","br x16")]), Int(1,1), -(Indirect(Var("R16",Imm(64))),))]))]))]))) \ No newline at end of file diff --git a/src/test/correct/cjump/clang/cjump.bir b/src/test/correct/cjump/clang/cjump.bir deleted file mode 100644 index 9cceabd43..000000000 --- a/src/test/correct/cjump/clang/cjump.bir +++ /dev/null @@ -1,268 +0,0 @@ -00000669: program -00000635: sub __cxa_finalize(__cxa_finalize_result) -0000066a: __cxa_finalize_result :: out u32 = low:32[R0] - -000003cf: -000004c7: R16 := 0x11000 -000004ce: R17 := mem[R16 + 8, el]:u64 -000004d4: R16 := R16 + 8 -000004d9: call R17 with noreturn - -00000636: sub __do_global_dtors_aux(__do_global_dtors_aux_result) -0000066b: __do_global_dtors_aux_result :: out u32 = low:32[R0] - -000002a2: -000002a6: #3 := R31 - 0x20 -000002ac: mem := mem with [#3, el]:u64 <- R29 -000002b2: mem := mem with [#3 + 8, el]:u64 <- R30 -000002b6: R31 := #3 -000002bc: R29 := R31 -000002c4: mem := mem with [R31 + 0x10, el]:u64 <- R19 -000002c9: R19 := 0x11000 -000002d0: R0 := pad:64[mem[R19 + 0x30]] -000002d7: when 31:0[R0] <> 0 goto %000002d5 -0000065e: goto %00000398 - -00000398: -0000039b: R0 := 0x10000 -000003a2: R0 := mem[R0 + 0xFC8, el]:u64 -000003a8: when R0 = 0 goto %000003a6 -0000065f: goto %000003bf - -000003bf: -000003c2: R0 := 0x11000 -000003c9: R0 := mem[R0 + 0x28, el]:u64 -000003ce: R30 := 0x6F0 -000003d1: call @__cxa_finalize with return %000003a6 - -000003a6: -000003ae: R30 := 0x6F4 -000003b0: call @deregister_tm_clones with return %000003b2 - -000003b2: -000003b5: R0 := 1 -000003bd: mem := mem with [R19 + 0x30] <- 7:0[R0] -00000660: goto %000002d5 - -000002d5: -000002df: R19 := mem[R31 + 0x10, el]:u64 -000002e6: R29 := mem[R31, el]:u64 -000002eb: R30 := mem[R31 + 8, el]:u64 -000002ef: R31 := R31 + 0x20 -000002f4: call R30 with noreturn - -0000063a: sub __libc_start_main(__libc_start_main_main, __libc_start_main_arg2, __libc_start_main_arg3, __libc_start_main_auxv, __libc_start_main_result) -0000066c: __libc_start_main_main :: in u64 = R0 -0000066d: __libc_start_main_arg2 :: in u32 = low:32[R1] -0000066e: __libc_start_main_arg3 :: in out u64 = R2 -0000066f: __libc_start_main_auxv :: in out u64 = R3 -00000670: __libc_start_main_result :: out u32 = low:32[R0] - -000001fb: -000004b1: R16 := 0x11000 -000004b8: R17 := mem[R16, el]:u64 -000004be: R16 := R16 -000004c3: call R17 with noreturn - -0000063b: sub _fini(_fini_result) -00000671: _fini_result :: out u32 = low:32[R0] - -0000001f: -00000025: #0 := R31 - 0x10 -0000002b: mem := mem with [#0, el]:u64 <- R29 -00000031: mem := mem with [#0 + 8, el]:u64 <- R30 -00000035: R31 := #0 -0000003b: R29 := R31 -00000042: R29 := mem[R31, el]:u64 -00000047: R30 := mem[R31 + 8, el]:u64 -0000004b: R31 := R31 + 0x10 -00000050: call R30 with noreturn - -0000063c: sub _init(_init_result) -00000672: _init_result :: out u32 = low:32[R0] - -00000582: -00000588: #6 := R31 - 0x10 -0000058e: mem := mem with [#6, el]:u64 <- R29 -00000594: mem := mem with [#6 + 8, el]:u64 <- R30 -00000598: R31 := #6 -0000059e: R29 := R31 -000005a3: R30 := 0x590 -000005a5: call @call_weak_fn with return %000005a7 - -000005a7: -000005ac: R29 := mem[R31, el]:u64 -000005b1: R30 := mem[R31 + 8, el]:u64 -000005b5: R31 := R31 + 0x10 -000005ba: call R30 with noreturn - -0000063d: sub _start(_start_result) -00000673: _start_result :: out u32 = low:32[R0] - -000001bc: -000001c1: R29 := 0 -000001c6: R30 := 0 -000001cc: R5 := R0 -000001d3: R1 := mem[R31, el]:u64 -000001d9: R2 := R31 + 8 -000001df: R6 := R31 -000001e4: R0 := 0x10000 -000001eb: R0 := mem[R0 + 0xFD8, el]:u64 -000001f0: R3 := 0 -000001f5: R4 := 0 -000001fa: R30 := 0x630 -000001fd: call @__libc_start_main with return %000001ff - -000001ff: -00000202: R30 := 0x634 -00000205: call @abort with return %00000661 - -00000661: -00000662: call @call_weak_fn with noreturn - -00000640: sub abort() - - -00000203: -000004f3: R16 := 0x11000 -000004fa: R17 := mem[R16 + 0x18, el]:u64 -00000500: R16 := R16 + 0x18 -00000505: call R17 with noreturn - -00000641: sub call_weak_fn(call_weak_fn_result) -00000674: call_weak_fn_result :: out u32 = low:32[R0] - -00000207: -0000020a: R0 := 0x10000 -00000211: R0 := mem[R0 + 0xFD0, el]:u64 -00000217: when R0 = 0 goto %00000215 -00000663: goto %0000040f - -00000215: -0000021d: call R30 with noreturn - -0000040f: -00000412: goto @__gmon_start__ - -00000410: -000004dd: R16 := 0x11000 -000004e4: R17 := mem[R16 + 0x10, el]:u64 -000004ea: R16 := R16 + 0x10 -000004ef: call R17 with noreturn - -00000643: sub deregister_tm_clones(deregister_tm_clones_result) -00000675: deregister_tm_clones_result :: out u32 = low:32[R0] - -00000223: -00000226: R0 := 0x11000 -0000022c: R0 := R0 + 0x30 -00000231: R1 := 0x11000 -00000237: R1 := R1 + 0x30 -0000023d: #1 := ~R0 -00000242: #2 := R1 + ~R0 -00000248: VF := extend:65[#2 + 1] <> extend:65[R1] + extend:65[#1] + 1 -0000024e: CF := pad:65[#2 + 1] <> pad:65[R1] + pad:65[#1] + 1 -00000252: ZF := #2 + 1 = 0 -00000256: NF := 63:63[#2 + 1] -0000025c: when ZF goto %0000025a -00000664: goto %000003f1 - -000003f1: -000003f4: R1 := 0x10000 -000003fb: R1 := mem[R1 + 0xFC0, el]:u64 -00000400: when R1 = 0 goto %0000025a -00000665: goto %00000404 - -0000025a: -00000262: call R30 with noreturn - -00000404: -00000408: R16 := R1 -0000040d: call R16 with noreturn - -00000646: sub frame_dummy(frame_dummy_result) -00000676: frame_dummy_result :: out u32 = low:32[R0] - -000002fa: -000002fc: call @register_tm_clones with noreturn - -00000647: sub main(main_argc, main_argv, main_result) -00000677: main_argc :: in u32 = low:32[R0] -00000678: main_argv :: in out u64 = R1 -00000679: main_result :: out u32 = low:32[R0] - -000002fe: -00000302: R31 := R31 - 0x10 -00000309: mem := mem with [R31 + 0xC, el]:u32 <- 0 -0000030e: R8 := 0x11000 -00000313: R9 := 1 -0000031b: mem := mem with [R8 + 0x34, el]:u32 <- 31:0[R9] -00000322: R8 := pad:64[mem[R8 + 0x34, el]:u32] -00000328: #4 := 31:0[R8] - 1 -0000032d: VF := extend:33[#4 + 1] <> extend:33[31:0[R8]] + 0 -00000332: CF := pad:33[#4 + 1] <> pad:33[31:0[R8]] - 0x100000000 -00000336: ZF := #4 + 1 = 0 -0000033a: NF := 31:31[#4 + 1] -0000033e: R8 := pad:64[#4 + 1] -0000034a: when ZF <> 1 goto %00000343 -0000034b: goto %00000346 - -00000346: -00000347: R8 := 1 -0000034d: goto %00000349 - -00000343: -00000344: R8 := 0 -0000034c: goto %00000349 - -00000349: -00000353: when 0:0[R8] goto %00000351 -00000666: goto %0000037e - -00000351: -00000359: R9 := 0x11000 -0000035e: R8 := 2 -00000366: mem := mem with [R9 + 0x38, el]:u32 <- 31:0[R8] -0000036b: goto %00000369 - -0000037e: -00000381: goto %0000037f - -0000037f: -00000385: R8 := 3 -0000038a: R9 := 0x11000 -00000392: mem := mem with [R9 + 0x38, el]:u32 <- 31:0[R8] -00000396: goto %00000369 - -00000369: -00000371: R0 := pad:64[mem[R31 + 0xC, el]:u32] -00000377: R31 := R31 + 0x10 -0000037c: call R30 with noreturn - -00000649: sub register_tm_clones(register_tm_clones_result) -0000067a: register_tm_clones_result :: out u32 = low:32[R0] - -00000264: -00000267: R0 := 0x11000 -0000026d: R0 := R0 + 0x30 -00000272: R1 := 0x11000 -00000278: R1 := R1 + 0x30 -0000027f: R1 := R1 + ~R0 + 1 -00000285: R2 := 0.63:63[R1] -0000028c: R1 := R2 + (R1 ~>> 3) -00000292: R1 := extend:64[63:1[R1]] -00000298: when R1 = 0 goto %00000296 -00000667: goto %000003d3 - -000003d3: -000003d6: R2 := 0x10000 -000003dd: R2 := mem[R2 + 0xFE0, el]:u64 -000003e2: when R2 = 0 goto %00000296 -00000668: goto %000003e6 - -00000296: -0000029e: call R30 with noreturn - -000003e6: -000003ea: R16 := R2 -000003ef: call R16 with noreturn diff --git a/src/test/correct/cjump/clang/cjump.expected b/src/test/correct/cjump/clang/cjump.expected index 6056965ef..4a1087081 100644 --- a/src/test/correct/cjump/clang/cjump.expected +++ b/src/test/correct/cjump/clang/cjump.expected @@ -1,42 +1,32 @@ -var {:extern} CF: bv1; -var {:extern} Gamma_CF: bool; -var {:extern} Gamma_NF: bool; var {:extern} Gamma_R0: bool; -var {:extern} Gamma_R31: bool; +var {:extern} Gamma_R10: bool; +var {:extern} Gamma_R11: bool; var {:extern} Gamma_R8: bool; var {:extern} Gamma_R9: bool; -var {:extern} Gamma_VF: bool; -var {:extern} Gamma_ZF: bool; var {:extern} Gamma_mem: [bv64]bool; -var {:extern} Gamma_stack: [bv64]bool; -var {:extern} NF: bv1; var {:extern} R0: bv64; -var {:extern} R31: bv64; +var {:extern} R10: bv64; +var {:extern} R11: bv64; var {:extern} R8: bv64; var {:extern} R9: bv64; -var {:extern} VF: bv1; -var {:extern} ZF: bv1; var {:extern} mem: [bv64]bv8; -var {:extern} stack: [bv64]bv8; const {:extern} $x_addr: bv64; -axiom ($x_addr == 69684bv64); +axiom ($x_addr == 131092bv64); const {:extern} $y_addr: bv64; -axiom ($y_addr == 69688bv64); +axiom ($y_addr == 131096bv64); function {:extern} L(mem$in: [bv64]bv8, index: bv64) returns (bool) { false } -function {:extern} {:bvbuiltin "bvadd"} bvadd32(bv32, bv32) returns (bv32); -function {:extern} {:bvbuiltin "bvadd"} bvadd33(bv33, bv33) returns (bv33); function {:extern} {:bvbuiltin "bvadd"} bvadd64(bv64, bv64) returns (bv64); -function {:extern} {:bvbuiltin "bvcomp"} bvcomp1(bv1, bv1) returns (bv1); -function {:extern} {:bvbuiltin "bvcomp"} bvcomp32(bv32, bv32) returns (bv1); -function {:extern} {:bvbuiltin "bvcomp"} bvcomp33(bv33, bv33) returns (bv1); -function {:extern} {:bvbuiltin "bvnot"} bvnot1(bv1) returns (bv1); function {:extern} gamma_load32(gammaMap: [bv64]bool, index: bv64) returns (bool) { (gammaMap[bvadd64(index, 3bv64)] && (gammaMap[bvadd64(index, 2bv64)] && (gammaMap[bvadd64(index, 1bv64)] && gammaMap[index]))) } +function {:extern} gamma_load64(gammaMap: [bv64]bool, index: bv64) returns (bool) { + (gammaMap[bvadd64(index, 7bv64)] && (gammaMap[bvadd64(index, 6bv64)] && (gammaMap[bvadd64(index, 5bv64)] && (gammaMap[bvadd64(index, 4bv64)] && (gammaMap[bvadd64(index, 3bv64)] && (gammaMap[bvadd64(index, 2bv64)] && (gammaMap[bvadd64(index, 1bv64)] && gammaMap[index]))))))) +} + function {:extern} gamma_store32(gammaMap: [bv64]bool, index: bv64, value: bool) returns ([bv64]bool) { gammaMap[index := value][bvadd64(index, 1bv64) := value][bvadd64(index, 2bv64) := value][bvadd64(index, 3bv64) := value] } @@ -53,18 +43,17 @@ function {:extern} memory_store32_le(memory: [bv64]bv8, index: bv64, value: bv32 memory[index := value[8:0]][bvadd64(index, 1bv64) := value[16:8]][bvadd64(index, 2bv64) := value[24:16]][bvadd64(index, 3bv64) := value[32:24]] } -function {:extern} {:bvbuiltin "sign_extend 1"} sign_extend1_32(bv32) returns (bv33); -function {:extern} {:bvbuiltin "zero_extend 1"} zero_extend1_32(bv32) returns (bv33); -function {:extern} {:bvbuiltin "zero_extend 32"} zero_extend32_32(bv32) returns (bv64); procedure {:extern} rely(); modifies Gamma_mem, mem; ensures (Gamma_mem == old(Gamma_mem)); ensures (mem == old(mem)); - free ensures (memory_load32_le(mem, 1916bv64) == 131073bv32); - free ensures (memory_load64_le(mem, 69064bv64) == 1808bv64); - free ensures (memory_load64_le(mem, 69072bv64) == 1728bv64); - free ensures (memory_load64_le(mem, 69592bv64) == 1812bv64); - free ensures (memory_load64_le(mem, 69672bv64) == 69672bv64); + free ensures (memory_load32_le(mem, 2320bv64) == 131073bv32); + free ensures (memory_load64_le(mem, 130424bv64) == 2256bv64); + free ensures (memory_load64_le(mem, 130432bv64) == 2176bv64); + free ensures (memory_load64_le(mem, 131032bv64) == 131092bv64); + free ensures (memory_load64_le(mem, 131048bv64) == 131096bv64); + free ensures (memory_load64_le(mem, 131056bv64) == 2260bv64); + free ensures (memory_load64_le(mem, 131080bv64) == 131080bv64); procedure {:extern} rely_transitive(); modifies Gamma_mem, mem; @@ -82,112 +71,57 @@ procedure {:extern} rely_reflexive(); procedure {:extern} guarantee_reflexive(); modifies Gamma_mem, mem; -procedure main_1812(); - modifies CF, Gamma_CF, Gamma_NF, Gamma_R0, Gamma_R31, Gamma_R8, Gamma_R9, Gamma_VF, Gamma_ZF, Gamma_mem, Gamma_stack, NF, R0, R31, R8, R9, VF, ZF, mem, stack; +procedure main(); + modifies Gamma_R0, Gamma_R10, Gamma_R11, Gamma_R8, Gamma_R9, Gamma_mem, R0, R10, R11, R8, R9, mem; requires (gamma_load32(Gamma_mem, $x_addr) == true); requires (gamma_load32(Gamma_mem, $y_addr) == false); - free requires (memory_load64_le(mem, 69664bv64) == 0bv64); - free requires (memory_load64_le(mem, 69672bv64) == 69672bv64); - free requires (memory_load32_le(mem, 1916bv64) == 131073bv32); - free requires (memory_load64_le(mem, 69064bv64) == 1808bv64); - free requires (memory_load64_le(mem, 69072bv64) == 1728bv64); - free requires (memory_load64_le(mem, 69592bv64) == 1812bv64); - free requires (memory_load64_le(mem, 69672bv64) == 69672bv64); - free ensures (Gamma_R31 == old(Gamma_R31)); - free ensures (R31 == old(R31)); - free ensures (memory_load32_le(mem, 1916bv64) == 131073bv32); - free ensures (memory_load64_le(mem, 69064bv64) == 1808bv64); - free ensures (memory_load64_le(mem, 69072bv64) == 1728bv64); - free ensures (memory_load64_le(mem, 69592bv64) == 1812bv64); - free ensures (memory_load64_le(mem, 69672bv64) == 69672bv64); + free requires (memory_load64_le(mem, 131072bv64) == 0bv64); + free requires (memory_load64_le(mem, 131080bv64) == 131080bv64); + free requires (memory_load32_le(mem, 2320bv64) == 131073bv32); + free requires (memory_load64_le(mem, 130424bv64) == 2256bv64); + free requires (memory_load64_le(mem, 130432bv64) == 2176bv64); + free requires (memory_load64_le(mem, 131032bv64) == 131092bv64); + free requires (memory_load64_le(mem, 131048bv64) == 131096bv64); + free requires (memory_load64_le(mem, 131056bv64) == 2260bv64); + free requires (memory_load64_le(mem, 131080bv64) == 131080bv64); + free ensures (memory_load32_le(mem, 2320bv64) == 131073bv32); + free ensures (memory_load64_le(mem, 130424bv64) == 2256bv64); + free ensures (memory_load64_le(mem, 130432bv64) == 2176bv64); + free ensures (memory_load64_le(mem, 131032bv64) == 131092bv64); + free ensures (memory_load64_le(mem, 131048bv64) == 131096bv64); + free ensures (memory_load64_le(mem, 131056bv64) == 2260bv64); + free ensures (memory_load64_le(mem, 131080bv64) == 131080bv64); -implementation main_1812() +implementation main() { - var #4: bv32; - var Gamma_#4: bool; - var Gamma_load18: bool; - var Gamma_load19: bool; - var load18: bv32; - var load19: bv32; + var $load$18: bv64; + var $load$19: bv64; + var Gamma_$load$18: bool; + var Gamma_$load$19: bool; lmain: assume {:captureState "lmain"} true; - R31, Gamma_R31 := bvadd64(R31, 18446744073709551600bv64), Gamma_R31; - stack, Gamma_stack := memory_store32_le(stack, bvadd64(R31, 12bv64), 0bv32), gamma_store32(Gamma_stack, bvadd64(R31, 12bv64), true); - assume {:captureState "%00000309"} true; - R8, Gamma_R8 := 69632bv64, true; - R9, Gamma_R9 := 1bv64, true; + R8, Gamma_R8 := 126976bv64, true; + R10, Gamma_R10 := 126976bv64, true; + R0, Gamma_R0 := 0bv64, true; call rely(); - assert (L(mem, bvadd64(R8, 52bv64)) ==> Gamma_R9); - mem, Gamma_mem := memory_store32_le(mem, bvadd64(R8, 52bv64), R9[32:0]), gamma_store32(Gamma_mem, bvadd64(R8, 52bv64), Gamma_R9); - assume {:captureState "%0000031b"} true; + $load$18, Gamma_$load$18 := memory_load64_le(mem, bvadd64(R8, 4056bv64)), (gamma_load64(Gamma_mem, bvadd64(R8, 4056bv64)) || L(mem, bvadd64(R8, 4056bv64))); + R8, Gamma_R8 := $load$18, Gamma_$load$18; call rely(); - load18, Gamma_load18 := memory_load32_le(mem, bvadd64(R8, 52bv64)), (gamma_load32(Gamma_mem, bvadd64(R8, 52bv64)) || L(mem, bvadd64(R8, 52bv64))); - R8, Gamma_R8 := zero_extend32_32(load18), Gamma_load18; - #4, Gamma_#4 := bvadd32(R8[32:0], 4294967295bv32), Gamma_R8; - VF, Gamma_VF := bvnot1(bvcomp33(sign_extend1_32(bvadd32(#4, 1bv32)), bvadd33(sign_extend1_32(R8[32:0]), 0bv33))), (Gamma_R8 && Gamma_#4); - CF, Gamma_CF := bvnot1(bvcomp33(zero_extend1_32(bvadd32(#4, 1bv32)), bvadd33(zero_extend1_32(R8[32:0]), 4294967296bv33))), (Gamma_R8 && Gamma_#4); - ZF, Gamma_ZF := bvcomp32(bvadd32(#4, 1bv32), 0bv32), Gamma_#4; - NF, Gamma_NF := bvadd32(#4, 1bv32)[32:31], Gamma_#4; - R8, Gamma_R8 := zero_extend32_32(bvadd32(#4, 1bv32)), Gamma_#4; - assert Gamma_ZF; - goto lmain_goto_l00000343, lmain_goto_l00000346; - lmain_goto_l00000346: - assume {:captureState "lmain_goto_l00000346"} true; - assume (bvnot1(bvcomp1(ZF, 1bv1)) == 0bv1); - R8, Gamma_R8 := 1bv64, true; - goto l00000346; - l00000346: - assume {:captureState "l00000346"} true; - goto l00000349; - lmain_goto_l00000343: - assume {:captureState "lmain_goto_l00000343"} true; - assume (bvnot1(bvcomp1(ZF, 1bv1)) != 0bv1); - R8, Gamma_R8 := 0bv64, true; - goto l00000343; - l00000343: - assume {:captureState "l00000343"} true; - goto l00000349; - l00000349: - assume {:captureState "l00000349"} true; - assert Gamma_R8; - goto l00000349_goto_l00000351, l00000349_goto_l0000037e; - l00000349_goto_l0000037e: - assume {:captureState "l00000349_goto_l0000037e"} true; - assume (bvcomp1(R8[1:0], 1bv1) == 0bv1); - goto l0000037e; - l0000037e: - assume {:captureState "l0000037e"} true; - goto l0000037f; - l0000037f: - assume {:captureState "l0000037f"} true; - R8, Gamma_R8 := 3bv64, true; - R9, Gamma_R9 := 69632bv64, true; + $load$19, Gamma_$load$19 := memory_load64_le(mem, bvadd64(R10, 4072bv64)), (gamma_load64(Gamma_mem, bvadd64(R10, 4072bv64)) || L(mem, bvadd64(R10, 4072bv64))); + R10, Gamma_R10 := $load$19, Gamma_$load$19; + R9, Gamma_R9 := 1bv64, true; + R11, Gamma_R11 := 3bv64, true; call rely(); - assert (L(mem, bvadd64(R9, 56bv64)) ==> Gamma_R8); - mem, Gamma_mem := memory_store32_le(mem, bvadd64(R9, 56bv64), R8[32:0]), gamma_store32(Gamma_mem, bvadd64(R9, 56bv64), Gamma_R8); - assume {:captureState "%00000392"} true; - goto l00000369; - l00000349_goto_l00000351: - assume {:captureState "l00000349_goto_l00000351"} true; - assume (bvcomp1(R8[1:0], 1bv1) != 0bv1); - R9, Gamma_R9 := 69632bv64, true; - R8, Gamma_R8 := 2bv64, true; + assert (L(mem, R8) ==> Gamma_R9); + mem, Gamma_mem := memory_store32_le(mem, R8, R9[32:0]), gamma_store32(Gamma_mem, R8, Gamma_R9); + assume {:captureState "%00000298"} true; call rely(); - assert (L(mem, bvadd64(R9, 56bv64)) ==> Gamma_R8); - mem, Gamma_mem := memory_store32_le(mem, bvadd64(R9, 56bv64), R8[32:0]), gamma_store32(Gamma_mem, bvadd64(R9, 56bv64), Gamma_R8); - assume {:captureState "%00000366"} true; - goto l00000351; - l00000351: - assume {:captureState "l00000351"} true; - goto l00000369; - l00000369: - assume {:captureState "l00000369"} true; - load19, Gamma_load19 := memory_load32_le(stack, bvadd64(R31, 12bv64)), gamma_load32(Gamma_stack, bvadd64(R31, 12bv64)); - R0, Gamma_R0 := zero_extend32_32(load19), Gamma_load19; - R31, Gamma_R31 := bvadd64(R31, 16bv64), Gamma_R31; - goto main_1812_basil_return; - main_1812_basil_return: - assume {:captureState "main_1812_basil_return"} true; + assert (L(mem, R10) ==> Gamma_R11); + mem, Gamma_mem := memory_store32_le(mem, R10, R11[32:0]), gamma_store32(Gamma_mem, R10, Gamma_R11); + assume {:captureState "%0000029c"} true; + goto main_basil_return; + main_basil_return: + assume {:captureState "main_basil_return"} true; return; } diff --git a/src/test/correct/cjump/clang/cjump.gts b/src/test/correct/cjump/clang/cjump.gts deleted file mode 100644 index c0279dbe7..000000000 Binary files a/src/test/correct/cjump/clang/cjump.gts and /dev/null differ diff --git a/src/test/correct/cjump/clang/cjump.md5sum b/src/test/correct/cjump/clang/cjump.md5sum new file mode 100644 index 000000000..23681cede --- /dev/null +++ b/src/test/correct/cjump/clang/cjump.md5sum @@ -0,0 +1,5 @@ +747dfb9a313b67df25d1d0435cfcbb5d correct/cjump/clang/a.out +2781eee80fa40dc784183e776135ddf9 correct/cjump/clang/cjump.adt +17f72f5eac2f6352cbd8c097b76c308d correct/cjump/clang/cjump.bir +f4b0e5204410a9c4285267804e558b16 correct/cjump/clang/cjump.relf +6a580e9f2eb2eb334b9bc6b66c67a35d correct/cjump/clang/cjump.gts diff --git a/src/test/correct/cjump/clang/cjump.relf b/src/test/correct/cjump/clang/cjump.relf deleted file mode 100644 index 35cbd1a63..000000000 --- a/src/test/correct/cjump/clang/cjump.relf +++ /dev/null @@ -1,124 +0,0 @@ - -Relocation section '.rela.dyn' at offset 0x460 contains 8 entries: - Offset Info Type Symbol's Value Symbol's Name + Addend -0000000000010dc8 0000000000000403 R_AARCH64_RELATIVE 710 -0000000000010dd0 0000000000000403 R_AARCH64_RELATIVE 6c0 -0000000000010fd8 0000000000000403 R_AARCH64_RELATIVE 714 -0000000000011028 0000000000000403 R_AARCH64_RELATIVE 11028 -0000000000010fc0 0000000400000401 R_AARCH64_GLOB_DAT 0000000000000000 _ITM_deregisterTMCloneTable + 0 -0000000000010fc8 0000000500000401 R_AARCH64_GLOB_DAT 0000000000000000 __cxa_finalize@GLIBC_2.17 + 0 -0000000000010fd0 0000000600000401 R_AARCH64_GLOB_DAT 0000000000000000 __gmon_start__ + 0 -0000000000010fe0 0000000800000401 R_AARCH64_GLOB_DAT 0000000000000000 _ITM_registerTMCloneTable + 0 - -Relocation section '.rela.plt' at offset 0x520 contains 4 entries: - Offset Info Type Symbol's Value Symbol's Name + Addend -0000000000011000 0000000300000402 R_AARCH64_JUMP_SLOT 0000000000000000 __libc_start_main@GLIBC_2.34 + 0 -0000000000011008 0000000500000402 R_AARCH64_JUMP_SLOT 0000000000000000 __cxa_finalize@GLIBC_2.17 + 0 -0000000000011010 0000000600000402 R_AARCH64_JUMP_SLOT 0000000000000000 __gmon_start__ + 0 -0000000000011018 0000000700000402 R_AARCH64_JUMP_SLOT 0000000000000000 abort@GLIBC_2.17 + 0 - -Symbol table '.dynsym' contains 9 entries: - Num: Value Size Type Bind Vis Ndx Name - 0: 0000000000000000 0 NOTYPE LOCAL DEFAULT UND - 1: 0000000000000580 0 SECTION LOCAL DEFAULT 11 .init - 2: 0000000000011020 0 SECTION LOCAL DEFAULT 23 .data - 3: 0000000000000000 0 FUNC GLOBAL DEFAULT UND __libc_start_main@GLIBC_2.34 (2) - 4: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_deregisterTMCloneTable - 5: 0000000000000000 0 FUNC WEAK DEFAULT UND __cxa_finalize@GLIBC_2.17 (3) - 6: 0000000000000000 0 NOTYPE WEAK DEFAULT UND __gmon_start__ - 7: 0000000000000000 0 FUNC GLOBAL DEFAULT UND abort@GLIBC_2.17 (3) - 8: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_registerTMCloneTable - -Symbol table '.symtab' contains 91 entries: - Num: Value Size Type Bind Vis Ndx Name - 0: 0000000000000000 0 NOTYPE LOCAL DEFAULT UND - 1: 0000000000000238 0 SECTION LOCAL DEFAULT 1 .interp - 2: 0000000000000254 0 SECTION LOCAL DEFAULT 2 .note.gnu.build-id - 3: 0000000000000278 0 SECTION LOCAL DEFAULT 3 .note.ABI-tag - 4: 0000000000000298 0 SECTION LOCAL DEFAULT 4 .gnu.hash - 5: 00000000000002b8 0 SECTION LOCAL DEFAULT 5 .dynsym - 6: 0000000000000390 0 SECTION LOCAL DEFAULT 6 .dynstr - 7: 000000000000041e 0 SECTION LOCAL DEFAULT 7 .gnu.version - 8: 0000000000000430 0 SECTION LOCAL DEFAULT 8 .gnu.version_r - 9: 0000000000000460 0 SECTION LOCAL DEFAULT 9 .rela.dyn - 10: 0000000000000520 0 SECTION LOCAL DEFAULT 10 .rela.plt - 11: 0000000000000580 0 SECTION LOCAL DEFAULT 11 .init - 12: 00000000000005a0 0 SECTION LOCAL DEFAULT 12 .plt - 13: 0000000000000600 0 SECTION LOCAL DEFAULT 13 .text - 14: 0000000000000768 0 SECTION LOCAL DEFAULT 14 .fini - 15: 000000000000077c 0 SECTION LOCAL DEFAULT 15 .rodata - 16: 0000000000000780 0 SECTION LOCAL DEFAULT 16 .eh_frame_hdr - 17: 00000000000007c0 0 SECTION LOCAL DEFAULT 17 .eh_frame - 18: 0000000000010dc8 0 SECTION LOCAL DEFAULT 18 .init_array - 19: 0000000000010dd0 0 SECTION LOCAL DEFAULT 19 .fini_array - 20: 0000000000010dd8 0 SECTION LOCAL DEFAULT 20 .dynamic - 21: 0000000000010fb8 0 SECTION LOCAL DEFAULT 21 .got - 22: 0000000000010fe8 0 SECTION LOCAL DEFAULT 22 .got.plt - 23: 0000000000011020 0 SECTION LOCAL DEFAULT 23 .data - 24: 0000000000011030 0 SECTION LOCAL DEFAULT 24 .bss - 25: 0000000000000000 0 SECTION LOCAL DEFAULT 25 .comment - 26: 0000000000000000 0 FILE LOCAL DEFAULT ABS Scrt1.o - 27: 0000000000000278 0 NOTYPE LOCAL DEFAULT 3 $d - 28: 0000000000000278 32 OBJECT LOCAL DEFAULT 3 __abi_tag - 29: 0000000000000600 0 NOTYPE LOCAL DEFAULT 13 $x - 30: 00000000000007d4 0 NOTYPE LOCAL DEFAULT 17 $d - 31: 000000000000077c 0 NOTYPE LOCAL DEFAULT 15 $d - 32: 0000000000000000 0 FILE LOCAL DEFAULT ABS crti.o - 33: 0000000000000634 0 NOTYPE LOCAL DEFAULT 13 $x - 34: 0000000000000634 20 FUNC LOCAL DEFAULT 13 call_weak_fn - 35: 0000000000000580 0 NOTYPE LOCAL DEFAULT 11 $x - 36: 0000000000000768 0 NOTYPE LOCAL DEFAULT 14 $x - 37: 0000000000000000 0 FILE LOCAL DEFAULT ABS crtn.o - 38: 0000000000000590 0 NOTYPE LOCAL DEFAULT 11 $x - 39: 0000000000000774 0 NOTYPE LOCAL DEFAULT 14 $x - 40: 0000000000000000 0 FILE LOCAL DEFAULT ABS crtstuff.c - 41: 0000000000000650 0 NOTYPE LOCAL DEFAULT 13 $x - 42: 0000000000000650 0 FUNC LOCAL DEFAULT 13 deregister_tm_clones - 43: 0000000000000680 0 FUNC LOCAL DEFAULT 13 register_tm_clones - 44: 0000000000011028 0 NOTYPE LOCAL DEFAULT 23 $d - 45: 00000000000006c0 0 FUNC LOCAL DEFAULT 13 __do_global_dtors_aux - 46: 0000000000011030 1 OBJECT LOCAL DEFAULT 24 completed.0 - 47: 0000000000010dd0 0 NOTYPE LOCAL DEFAULT 19 $d - 48: 0000000000010dd0 0 OBJECT LOCAL DEFAULT 19 __do_global_dtors_aux_fini_array_entry - 49: 0000000000000710 0 FUNC LOCAL DEFAULT 13 frame_dummy - 50: 0000000000010dc8 0 NOTYPE LOCAL DEFAULT 18 $d - 51: 0000000000010dc8 0 OBJECT LOCAL DEFAULT 18 __frame_dummy_init_array_entry - 52: 00000000000007e8 0 NOTYPE LOCAL DEFAULT 17 $d - 53: 0000000000011030 0 NOTYPE LOCAL DEFAULT 24 $d - 54: 0000000000000000 0 FILE LOCAL DEFAULT ABS cjump.c - 55: 0000000000000714 0 NOTYPE LOCAL DEFAULT 13 $x.0 - 56: 0000000000011034 0 NOTYPE LOCAL DEFAULT 24 $d.1 - 57: 000000000000002a 0 NOTYPE LOCAL DEFAULT 25 $d.2 - 58: 0000000000000848 0 NOTYPE LOCAL DEFAULT 17 $d.3 - 59: 0000000000000000 0 FILE LOCAL DEFAULT ABS crtstuff.c - 60: 0000000000000874 0 NOTYPE LOCAL DEFAULT 17 $d - 61: 0000000000000874 0 OBJECT LOCAL DEFAULT 17 __FRAME_END__ - 62: 0000000000000000 0 FILE LOCAL DEFAULT ABS - 63: 0000000000010dd8 0 OBJECT LOCAL DEFAULT ABS _DYNAMIC - 64: 0000000000000780 0 NOTYPE LOCAL DEFAULT 16 __GNU_EH_FRAME_HDR - 65: 0000000000010fb8 0 OBJECT LOCAL DEFAULT ABS _GLOBAL_OFFSET_TABLE_ - 66: 00000000000005a0 0 NOTYPE LOCAL DEFAULT 12 $x - 67: 0000000000000000 0 FUNC GLOBAL DEFAULT UND __libc_start_main@GLIBC_2.34 - 68: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_deregisterTMCloneTable - 69: 0000000000011020 0 NOTYPE WEAK DEFAULT 23 data_start - 70: 0000000000011030 0 NOTYPE GLOBAL DEFAULT 24 __bss_start__ - 71: 0000000000000000 0 FUNC WEAK DEFAULT UND __cxa_finalize@GLIBC_2.17 - 72: 0000000000011040 0 NOTYPE GLOBAL DEFAULT 24 _bss_end__ - 73: 0000000000011030 0 NOTYPE GLOBAL DEFAULT 23 _edata - 74: 0000000000011034 4 OBJECT GLOBAL DEFAULT 24 x - 75: 0000000000000768 0 FUNC GLOBAL HIDDEN 14 _fini - 76: 0000000000011040 0 NOTYPE GLOBAL DEFAULT 24 __bss_end__ - 77: 0000000000011020 0 NOTYPE GLOBAL DEFAULT 23 __data_start - 78: 0000000000000000 0 NOTYPE WEAK DEFAULT UND __gmon_start__ - 79: 0000000000011028 0 OBJECT GLOBAL HIDDEN 23 __dso_handle - 80: 0000000000000000 0 FUNC GLOBAL DEFAULT UND abort@GLIBC_2.17 - 81: 000000000000077c 4 OBJECT GLOBAL DEFAULT 15 _IO_stdin_used - 82: 0000000000011040 0 NOTYPE GLOBAL DEFAULT 24 _end - 83: 0000000000000600 52 FUNC GLOBAL DEFAULT 13 _start - 84: 0000000000011040 0 NOTYPE GLOBAL DEFAULT 24 __end__ - 85: 0000000000011038 4 OBJECT GLOBAL DEFAULT 24 y - 86: 0000000000011030 0 NOTYPE GLOBAL DEFAULT 24 __bss_start - 87: 0000000000000714 84 FUNC GLOBAL DEFAULT 13 main - 88: 0000000000011030 0 OBJECT GLOBAL HIDDEN 23 __TMC_END__ - 89: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_registerTMCloneTable - 90: 0000000000000580 0 FUNC GLOBAL HIDDEN 11 _init diff --git a/src/test/correct/cjump/clang/cjump_gtirb.expected b/src/test/correct/cjump/clang/cjump_gtirb.expected index 6d902d9d7..330085e2e 100644 --- a/src/test/correct/cjump/clang/cjump_gtirb.expected +++ b/src/test/correct/cjump/clang/cjump_gtirb.expected @@ -1,41 +1,32 @@ -var {:extern} CF: bv1; -var {:extern} Gamma_CF: bool; -var {:extern} Gamma_NF: bool; var {:extern} Gamma_R0: bool; -var {:extern} Gamma_R31: bool; +var {:extern} Gamma_R10: bool; +var {:extern} Gamma_R11: bool; var {:extern} Gamma_R8: bool; var {:extern} Gamma_R9: bool; -var {:extern} Gamma_VF: bool; -var {:extern} Gamma_ZF: bool; var {:extern} Gamma_mem: [bv64]bool; -var {:extern} Gamma_stack: [bv64]bool; -var {:extern} NF: bv1; var {:extern} R0: bv64; -var {:extern} R31: bv64; +var {:extern} R10: bv64; +var {:extern} R11: bv64; var {:extern} R8: bv64; var {:extern} R9: bv64; -var {:extern} VF: bv1; -var {:extern} ZF: bv1; var {:extern} mem: [bv64]bv8; -var {:extern} stack: [bv64]bv8; const {:extern} $x_addr: bv64; -axiom ($x_addr == 69684bv64); +axiom ($x_addr == 131092bv64); const {:extern} $y_addr: bv64; -axiom ($y_addr == 69688bv64); +axiom ($y_addr == 131096bv64); function {:extern} L(mem$in: [bv64]bv8, index: bv64) returns (bool) { false } -function {:extern} {:bvbuiltin "bvadd"} bvadd32(bv32, bv32) returns (bv32); -function {:extern} {:bvbuiltin "bvadd"} bvadd33(bv33, bv33) returns (bv33); function {:extern} {:bvbuiltin "bvadd"} bvadd64(bv64, bv64) returns (bv64); -function {:extern} {:bvbuiltin "bvcomp"} bvcomp32(bv32, bv32) returns (bv1); -function {:extern} {:bvbuiltin "bvcomp"} bvcomp33(bv33, bv33) returns (bv1); -function {:extern} {:bvbuiltin "bvnot"} bvnot1(bv1) returns (bv1); function {:extern} gamma_load32(gammaMap: [bv64]bool, index: bv64) returns (bool) { (gammaMap[bvadd64(index, 3bv64)] && (gammaMap[bvadd64(index, 2bv64)] && (gammaMap[bvadd64(index, 1bv64)] && gammaMap[index]))) } +function {:extern} gamma_load64(gammaMap: [bv64]bool, index: bv64) returns (bool) { + (gammaMap[bvadd64(index, 7bv64)] && (gammaMap[bvadd64(index, 6bv64)] && (gammaMap[bvadd64(index, 5bv64)] && (gammaMap[bvadd64(index, 4bv64)] && (gammaMap[bvadd64(index, 3bv64)] && (gammaMap[bvadd64(index, 2bv64)] && (gammaMap[bvadd64(index, 1bv64)] && gammaMap[index]))))))) +} + function {:extern} gamma_store32(gammaMap: [bv64]bool, index: bv64, value: bool) returns ([bv64]bool) { gammaMap[index := value][bvadd64(index, 1bv64) := value][bvadd64(index, 2bv64) := value][bvadd64(index, 3bv64) := value] } @@ -52,17 +43,17 @@ function {:extern} memory_store32_le(memory: [bv64]bv8, index: bv64, value: bv32 memory[index := value[8:0]][bvadd64(index, 1bv64) := value[16:8]][bvadd64(index, 2bv64) := value[24:16]][bvadd64(index, 3bv64) := value[32:24]] } -function {:extern} {:bvbuiltin "zero_extend 1"} zero_extend1_32(bv32) returns (bv33); -function {:extern} {:bvbuiltin "zero_extend 32"} zero_extend32_32(bv32) returns (bv64); procedure {:extern} rely(); modifies Gamma_mem, mem; ensures (Gamma_mem == old(Gamma_mem)); ensures (mem == old(mem)); - free ensures (memory_load32_le(mem, 1916bv64) == 131073bv32); - free ensures (memory_load64_le(mem, 69064bv64) == 1808bv64); - free ensures (memory_load64_le(mem, 69072bv64) == 1728bv64); - free ensures (memory_load64_le(mem, 69592bv64) == 1812bv64); - free ensures (memory_load64_le(mem, 69672bv64) == 69672bv64); + free ensures (memory_load32_le(mem, 2320bv64) == 131073bv32); + free ensures (memory_load64_le(mem, 130424bv64) == 2256bv64); + free ensures (memory_load64_le(mem, 130432bv64) == 2176bv64); + free ensures (memory_load64_le(mem, 131032bv64) == 131092bv64); + free ensures (memory_load64_le(mem, 131048bv64) == 131096bv64); + free ensures (memory_load64_le(mem, 131056bv64) == 2260bv64); + free ensures (memory_load64_le(mem, 131080bv64) == 131080bv64); procedure {:extern} rely_transitive(); modifies Gamma_mem, mem; @@ -80,104 +71,57 @@ procedure {:extern} rely_reflexive(); procedure {:extern} guarantee_reflexive(); modifies Gamma_mem, mem; -procedure main_1812(); - modifies CF, Gamma_CF, Gamma_NF, Gamma_R0, Gamma_R31, Gamma_R8, Gamma_R9, Gamma_VF, Gamma_ZF, Gamma_mem, Gamma_stack, NF, R0, R31, R8, R9, VF, ZF, mem, stack; +procedure main(); + modifies Gamma_R0, Gamma_R10, Gamma_R11, Gamma_R8, Gamma_R9, Gamma_mem, R0, R10, R11, R8, R9, mem; requires (gamma_load32(Gamma_mem, $x_addr) == true); requires (gamma_load32(Gamma_mem, $y_addr) == false); - free requires (memory_load64_le(mem, 69664bv64) == 0bv64); - free requires (memory_load64_le(mem, 69672bv64) == 69672bv64); - free requires (memory_load32_le(mem, 1916bv64) == 131073bv32); - free requires (memory_load64_le(mem, 69064bv64) == 1808bv64); - free requires (memory_load64_le(mem, 69072bv64) == 1728bv64); - free requires (memory_load64_le(mem, 69592bv64) == 1812bv64); - free requires (memory_load64_le(mem, 69672bv64) == 69672bv64); - free ensures (Gamma_R31 == old(Gamma_R31)); - free ensures (R31 == old(R31)); - free ensures (memory_load32_le(mem, 1916bv64) == 131073bv32); - free ensures (memory_load64_le(mem, 69064bv64) == 1808bv64); - free ensures (memory_load64_le(mem, 69072bv64) == 1728bv64); - free ensures (memory_load64_le(mem, 69592bv64) == 1812bv64); - free ensures (memory_load64_le(mem, 69672bv64) == 69672bv64); + free requires (memory_load64_le(mem, 131072bv64) == 0bv64); + free requires (memory_load64_le(mem, 131080bv64) == 131080bv64); + free requires (memory_load32_le(mem, 2320bv64) == 131073bv32); + free requires (memory_load64_le(mem, 130424bv64) == 2256bv64); + free requires (memory_load64_le(mem, 130432bv64) == 2176bv64); + free requires (memory_load64_le(mem, 131032bv64) == 131092bv64); + free requires (memory_load64_le(mem, 131048bv64) == 131096bv64); + free requires (memory_load64_le(mem, 131056bv64) == 2260bv64); + free requires (memory_load64_le(mem, 131080bv64) == 131080bv64); + free ensures (memory_load32_le(mem, 2320bv64) == 131073bv32); + free ensures (memory_load64_le(mem, 130424bv64) == 2256bv64); + free ensures (memory_load64_le(mem, 130432bv64) == 2176bv64); + free ensures (memory_load64_le(mem, 131032bv64) == 131092bv64); + free ensures (memory_load64_le(mem, 131048bv64) == 131096bv64); + free ensures (memory_load64_le(mem, 131056bv64) == 2260bv64); + free ensures (memory_load64_le(mem, 131080bv64) == 131080bv64); -implementation main_1812() +implementation main() { - var Cse0__5_0_6: bv32; - var Gamma_Cse0__5_0_6: bool; - var Gamma_load5: bool; - var Gamma_load6: bool; - var load5: bv32; - var load6: bv32; - main_1812__0__PnDIl5cyR4GGh5gDIaWl6w: - assume {:captureState "main_1812__0__PnDIl5cyR4GGh5gDIaWl6w"} true; - R31, Gamma_R31 := bvadd64(R31, 18446744073709551600bv64), Gamma_R31; - stack, Gamma_stack := memory_store32_le(stack, bvadd64(R31, 12bv64), 0bv32), gamma_store32(Gamma_stack, bvadd64(R31, 12bv64), true); - assume {:captureState "1816_0"} true; - R8, Gamma_R8 := 69632bv64, true; - R9, Gamma_R9 := 1bv64, true; + var $load5: bv64; + var $load6: bv64; + var Gamma_$load5: bool; + var Gamma_$load6: bool; + $main$__0__$D9t2gNJrSmyMH3GAVRe3IQ: + assume {:captureState "$main$__0__$D9t2gNJrSmyMH3GAVRe3IQ"} true; + R8, Gamma_R8 := 126976bv64, true; + R10, Gamma_R10 := 126976bv64, true; + R0, Gamma_R0 := 0bv64, true; call rely(); - assert (L(mem, bvadd64(R8, 52bv64)) ==> Gamma_R9); - mem, Gamma_mem := memory_store32_le(mem, bvadd64(R8, 52bv64), R9[32:0]), gamma_store32(Gamma_mem, bvadd64(R8, 52bv64), Gamma_R9); - assume {:captureState "1828_0"} true; + $load5, Gamma_$load5 := memory_load64_le(mem, bvadd64(R8, 4056bv64)), (gamma_load64(Gamma_mem, bvadd64(R8, 4056bv64)) || L(mem, bvadd64(R8, 4056bv64))); + R8, Gamma_R8 := $load5, Gamma_$load5; call rely(); - load5, Gamma_load5 := memory_load32_le(mem, bvadd64(R8, 52bv64)), (gamma_load32(Gamma_mem, bvadd64(R8, 52bv64)) || L(mem, bvadd64(R8, 52bv64))); - R8, Gamma_R8 := zero_extend32_32(load5), Gamma_load5; - Cse0__5_0_6, Gamma_Cse0__5_0_6 := bvadd32(R8[32:0], 0bv32), Gamma_R8; - VF, Gamma_VF := bvnot1(bvcomp32(Cse0__5_0_6, Cse0__5_0_6)), Gamma_Cse0__5_0_6; - CF, Gamma_CF := bvnot1(bvcomp33(zero_extend1_32(Cse0__5_0_6), bvadd33(zero_extend1_32(R8[32:0]), 4294967296bv33))), (Gamma_R8 && Gamma_Cse0__5_0_6); - ZF, Gamma_ZF := bvcomp32(Cse0__5_0_6, 0bv32), Gamma_Cse0__5_0_6; - NF, Gamma_NF := Cse0__5_0_6[32:31], Gamma_Cse0__5_0_6; - R8, Gamma_R8 := zero_extend32_32(Cse0__5_0_6), Gamma_Cse0__5_0_6; - assert Gamma_ZF; - goto main_1812__0__PnDIl5cyR4GGh5gDIaWl6w$__0, main_1812__0__PnDIl5cyR4GGh5gDIaWl6w$__1; - main_1812__0__PnDIl5cyR4GGh5gDIaWl6w$__1: - assume {:captureState "main_1812__0__PnDIl5cyR4GGh5gDIaWl6w$__1"} true; - assume (!(!(ZF == 1bv1))); - R8, Gamma_R8 := 1bv64, true; - assert Gamma_R8; - goto main_1812__0__PnDIl5cyR4GGh5gDIaWl6w_goto_main_1812__3__I4nigOnuRzaYmG2czUcPqQ, main_1812__0__PnDIl5cyR4GGh5gDIaWl6w_goto_main_1812__1__QUCiZ1czSk63UIuy~Dy6Bg; - main_1812__0__PnDIl5cyR4GGh5gDIaWl6w$__0: - assume {:captureState "main_1812__0__PnDIl5cyR4GGh5gDIaWl6w$__0"} true; - assume (!(ZF == 1bv1)); - R8, Gamma_R8 := 0bv64, true; - assert Gamma_R8; - goto main_1812__0__PnDIl5cyR4GGh5gDIaWl6w_goto_main_1812__3__I4nigOnuRzaYmG2czUcPqQ, main_1812__0__PnDIl5cyR4GGh5gDIaWl6w_goto_main_1812__1__QUCiZ1czSk63UIuy~Dy6Bg; - main_1812__0__PnDIl5cyR4GGh5gDIaWl6w_goto_main_1812__1__QUCiZ1czSk63UIuy~Dy6Bg: - assume {:captureState "main_1812__0__PnDIl5cyR4GGh5gDIaWl6w_goto_main_1812__1__QUCiZ1czSk63UIuy~Dy6Bg"} true; - assume (!(R8[1:0] == 1bv1)); - goto main_1812__1__QUCiZ1czSk63UIuy~Dy6Bg; - main_1812__1__QUCiZ1czSk63UIuy~Dy6Bg: - assume {:captureState "main_1812__1__QUCiZ1czSk63UIuy~Dy6Bg"} true; - goto main_1812__2__5gUE9BicSVSdDO98Zitx1A; - main_1812__2__5gUE9BicSVSdDO98Zitx1A: - assume {:captureState "main_1812__2__5gUE9BicSVSdDO98Zitx1A"} true; - R8, Gamma_R8 := 3bv64, true; - R9, Gamma_R9 := 69632bv64, true; + $load6, Gamma_$load6 := memory_load64_le(mem, bvadd64(R10, 4072bv64)), (gamma_load64(Gamma_mem, bvadd64(R10, 4072bv64)) || L(mem, bvadd64(R10, 4072bv64))); + R10, Gamma_R10 := $load6, Gamma_$load6; + R9, Gamma_R9 := 1bv64, true; + R11, Gamma_R11 := 3bv64, true; call rely(); - assert (L(mem, bvadd64(R9, 56bv64)) ==> Gamma_R8); - mem, Gamma_mem := memory_store32_le(mem, bvadd64(R9, 56bv64), R8[32:0]), gamma_store32(Gamma_mem, bvadd64(R9, 56bv64), Gamma_R8); - assume {:captureState "1860_0"} true; - goto main_1812__4__yxwH2dUnQdipf4xbcLk77w; - main_1812__0__PnDIl5cyR4GGh5gDIaWl6w_goto_main_1812__3__I4nigOnuRzaYmG2czUcPqQ: - assume {:captureState "main_1812__0__PnDIl5cyR4GGh5gDIaWl6w_goto_main_1812__3__I4nigOnuRzaYmG2czUcPqQ"} true; - assume (R8[1:0] == 1bv1); - R9, Gamma_R9 := 69632bv64, true; - R8, Gamma_R8 := 2bv64, true; + assert (L(mem, R8) ==> Gamma_R9); + mem, Gamma_mem := memory_store32_le(mem, R8, R9[32:0]), gamma_store32(Gamma_mem, R8, Gamma_R9); + assume {:captureState "2288$0"} true; call rely(); - assert (L(mem, bvadd64(R9, 56bv64)) ==> Gamma_R8); - mem, Gamma_mem := memory_store32_le(mem, bvadd64(R9, 56bv64), R8[32:0]), gamma_store32(Gamma_mem, bvadd64(R9, 56bv64), Gamma_R8); - assume {:captureState "1876_0"} true; - goto main_1812__3__I4nigOnuRzaYmG2czUcPqQ; - main_1812__3__I4nigOnuRzaYmG2czUcPqQ: - assume {:captureState "main_1812__3__I4nigOnuRzaYmG2czUcPqQ"} true; - goto main_1812__4__yxwH2dUnQdipf4xbcLk77w; - main_1812__4__yxwH2dUnQdipf4xbcLk77w: - assume {:captureState "main_1812__4__yxwH2dUnQdipf4xbcLk77w"} true; - load6, Gamma_load6 := memory_load32_le(stack, bvadd64(R31, 12bv64)), gamma_load32(Gamma_stack, bvadd64(R31, 12bv64)); - R0, Gamma_R0 := zero_extend32_32(load6), Gamma_load6; - R31, Gamma_R31 := bvadd64(R31, 16bv64), Gamma_R31; - goto main_1812_basil_return; - main_1812_basil_return: - assume {:captureState "main_1812_basil_return"} true; + assert (L(mem, R10) ==> Gamma_R11); + mem, Gamma_mem := memory_store32_le(mem, R10, R11[32:0]), gamma_store32(Gamma_mem, R10, Gamma_R11); + assume {:captureState "2292$0"} true; + goto main_basil_return; + main_basil_return: + assume {:captureState "main_basil_return"} true; return; } diff --git a/src/test/correct/cjump/clang_pic/cjump.adt b/src/test/correct/cjump/clang_pic/cjump.adt deleted file mode 100644 index 88d60d141..000000000 --- a/src/test/correct/cjump/clang_pic/cjump.adt +++ /dev/null @@ -1,577 +0,0 @@ -Project(Attrs([Attr("filename","\"clang_pic/cjump.out\""), -Attr("image-specification","(declare abi (name str))\n(declare arch (name str))\n(declare base-address (addr int))\n(declare bias (off int))\n(declare bits (size int))\n(declare code-region (addr int) (size int) (off int))\n(declare code-start (addr int))\n(declare entry-point (addr int))\n(declare external-reference (addr int) (name str))\n(declare format (name str))\n(declare is-executable (flag bool))\n(declare is-little-endian (flag bool))\n(declare llvm:base-address (addr int))\n(declare llvm:code-entry (name str) (off int) (size int))\n(declare llvm:coff-import-library (name str))\n(declare llvm:coff-virtual-section-header (name str) (addr int) (size int))\n(declare llvm:elf-program-header (name str) (off int) (size int))\n(declare llvm:elf-program-header-flags (name str) (ld bool) (r bool) \n (w bool) (x bool))\n(declare llvm:elf-virtual-program-header (name str) (addr int) (size int))\n(declare llvm:entry-point (addr int))\n(declare llvm:macho-symbol (name str) (value int))\n(declare llvm:name-reference (at int) (name str))\n(declare llvm:relocation (at int) (addr int))\n(declare llvm:section-entry (name str) (addr int) (size int) (off int))\n(declare llvm:section-flags (name str) (r bool) (w bool) (x bool))\n(declare llvm:segment-command (name str) (off int) (size int))\n(declare llvm:segment-command-flags (name str) (r bool) (w bool) (x bool))\n(declare llvm:symbol-entry (name str) (addr int) (size int) (off int)\n (value int))\n(declare llvm:virtual-segment-command (name str) (addr int) (size int))\n(declare mapped (addr int) (size int) (off int))\n(declare named-region (addr int) (size int) (name str))\n(declare named-symbol (addr int) (name str))\n(declare require (name str))\n(declare section (addr int) (size int))\n(declare segment (addr int) (size int) (r bool) (w bool) (x bool))\n(declare subarch (name str))\n(declare symbol-chunk (addr int) (size int) (root int))\n(declare symbol-value (addr int) (value int))\n(declare system (name str))\n(declare vendor (name str))\n\n(abi unknown)\n(arch aarch64)\n(base-address 0)\n(bias 0)\n(bits 64)\n(code-region 1972 20 1972)\n(code-region 1600 372 1600)\n(code-region 1488 96 1488)\n(code-region 1456 24 1456)\n(code-start 1652)\n(code-start 1600)\n(code-start 1876)\n(entry-point 1600)\n(external-reference 69552 _ITM_deregisterTMCloneTable)\n(external-reference 69560 __cxa_finalize)\n(external-reference 69576 __gmon_start__)\n(external-reference 69600 _ITM_registerTMCloneTable)\n(external-reference 69632 __libc_start_main)\n(external-reference 69640 __cxa_finalize)\n(external-reference 69648 __gmon_start__)\n(external-reference 69656 abort)\n(format elf)\n(is-executable true)\n(is-little-endian true)\n(llvm:base-address 0)\n(llvm:code-entry abort 0 0)\n(llvm:code-entry __cxa_finalize 0 0)\n(llvm:code-entry __libc_start_main 0 0)\n(llvm:code-entry _init 1456 0)\n(llvm:code-entry main 1876 96)\n(llvm:code-entry _start 1600 52)\n(llvm:code-entry abort@GLIBC_2.17 0 0)\n(llvm:code-entry _fini 1972 0)\n(llvm:code-entry __cxa_finalize@GLIBC_2.17 0 0)\n(llvm:code-entry __libc_start_main@GLIBC_2.34 0 0)\n(llvm:code-entry frame_dummy 1872 0)\n(llvm:code-entry __do_global_dtors_aux 1792 0)\n(llvm:code-entry register_tm_clones 1728 0)\n(llvm:code-entry deregister_tm_clones 1680 0)\n(llvm:code-entry call_weak_fn 1652 20)\n(llvm:code-entry .fini 1972 20)\n(llvm:code-entry .text 1600 372)\n(llvm:code-entry .plt 1488 96)\n(llvm:code-entry .init 1456 24)\n(llvm:elf-program-header 08 3512 584)\n(llvm:elf-program-header 07 0 0)\n(llvm:elf-program-header 06 1996 60)\n(llvm:elf-program-header 05 596 68)\n(llvm:elf-program-header 04 3528 480)\n(llvm:elf-program-header 03 3512 632)\n(llvm:elf-program-header 02 0 2240)\n(llvm:elf-program-header 01 568 27)\n(llvm:elf-program-header 00 64 504)\n(llvm:elf-program-header-flags 08 false true false false)\n(llvm:elf-program-header-flags 07 false true true false)\n(llvm:elf-program-header-flags 06 false true false false)\n(llvm:elf-program-header-flags 05 false true false false)\n(llvm:elf-program-header-flags 04 false true true false)\n(llvm:elf-program-header-flags 03 true true true false)\n(llvm:elf-program-header-flags 02 true true false true)\n(llvm:elf-program-header-flags 01 false true false false)\n(llvm:elf-program-header-flags 00 false true false false)\n(llvm:elf-virtual-program-header 08 69048 584)\n(llvm:elf-virtual-program-header 07 0 0)\n(llvm:elf-virtual-program-header 06 1996 60)\n(llvm:elf-virtual-program-header 05 596 68)\n(llvm:elf-virtual-program-header 04 69064 480)\n(llvm:elf-virtual-program-header 03 69048 648)\n(llvm:elf-virtual-program-header 02 0 2240)\n(llvm:elf-virtual-program-header 01 568 27)\n(llvm:elf-virtual-program-header 00 64 504)\n(llvm:entry-point 1600)\n(llvm:name-reference 69656 abort)\n(llvm:name-reference 69648 __gmon_start__)\n(llvm:name-reference 69640 __cxa_finalize)\n(llvm:name-reference 69632 __libc_start_main)\n(llvm:name-reference 69600 _ITM_registerTMCloneTable)\n(llvm:name-reference 69576 __gmon_start__)\n(llvm:name-reference 69560 __cxa_finalize)\n(llvm:name-reference 69552 _ITM_deregisterTMCloneTable)\n(llvm:section-entry .shstrtab 0 259 6961)\n(llvm:section-entry .strtab 0 561 6400)\n(llvm:section-entry .symtab 0 2184 4216)\n(llvm:section-entry .comment 0 71 4144)\n(llvm:section-entry .bss 69680 16 4144)\n(llvm:section-entry .data 69664 16 4128)\n(llvm:section-entry .got.plt 69608 56 4072)\n(llvm:section-entry .got 69544 64 4008)\n(llvm:section-entry .dynamic 69064 480 3528)\n(llvm:section-entry .fini_array 69056 8 3520)\n(llvm:section-entry .init_array 69048 8 3512)\n(llvm:section-entry .eh_frame 2056 184 2056)\n(llvm:section-entry .eh_frame_hdr 1996 60 1996)\n(llvm:section-entry .rodata 1992 4 1992)\n(llvm:section-entry .fini 1972 20 1972)\n(llvm:section-entry .text 1600 372 1600)\n(llvm:section-entry .plt 1488 96 1488)\n(llvm:section-entry .init 1456 24 1456)\n(llvm:section-entry .rela.plt 1360 96 1360)\n(llvm:section-entry .rela.dyn 1120 240 1120)\n(llvm:section-entry .gnu.version_r 1072 48 1072)\n(llvm:section-entry .gnu.version 1054 18 1054)\n(llvm:section-entry .dynstr 912 141 912)\n(llvm:section-entry .dynsym 696 216 696)\n(llvm:section-entry .gnu.hash 664 28 664)\n(llvm:section-entry .note.ABI-tag 632 32 632)\n(llvm:section-entry .note.gnu.build-id 596 36 596)\n(llvm:section-entry .interp 568 27 568)\n(llvm:section-flags .shstrtab true false false)\n(llvm:section-flags .strtab true false false)\n(llvm:section-flags .symtab true false false)\n(llvm:section-flags .comment true false false)\n(llvm:section-flags .bss true true false)\n(llvm:section-flags .data true true false)\n(llvm:section-flags .got.plt true true false)\n(llvm:section-flags .got true true false)\n(llvm:section-flags .dynamic true true false)\n(llvm:section-flags .fini_array true true false)\n(llvm:section-flags .init_array true true false)\n(llvm:section-flags .eh_frame true false false)\n(llvm:section-flags .eh_frame_hdr true false false)\n(llvm:section-flags .rodata true false false)\n(llvm:section-flags .fini true false true)\n(llvm:section-flags .text true false true)\n(llvm:section-flags .plt true false true)\n(llvm:section-flags .init true false true)\n(llvm:section-flags .rela.plt true false false)\n(llvm:section-flags .rela.dyn true false false)\n(llvm:section-flags .gnu.version_r true false false)\n(llvm:section-flags .gnu.version true false false)\n(llvm:section-flags .dynstr true false false)\n(llvm:section-flags .dynsym true false false)\n(llvm:section-flags .gnu.hash true false false)\n(llvm:section-flags .note.ABI-tag true false false)\n(llvm:section-flags .note.gnu.build-id true false false)\n(llvm:section-flags .interp true false false)\n(llvm:symbol-entry abort 0 0 0 0)\n(llvm:symbol-entry __cxa_finalize 0 0 0 0)\n(llvm:symbol-entry __libc_start_main 0 0 0 0)\n(llvm:symbol-entry _init 1456 0 1456 1456)\n(llvm:symbol-entry main 1876 96 1876 1876)\n(llvm:symbol-entry _start 1600 52 1600 1600)\n(llvm:symbol-entry abort@GLIBC_2.17 0 0 0 0)\n(llvm:symbol-entry _fini 1972 0 1972 1972)\n(llvm:symbol-entry __cxa_finalize@GLIBC_2.17 0 0 0 0)\n(llvm:symbol-entry __libc_start_main@GLIBC_2.34 0 0 0 0)\n(llvm:symbol-entry frame_dummy 1872 0 1872 1872)\n(llvm:symbol-entry __do_global_dtors_aux 1792 0 1792 1792)\n(llvm:symbol-entry register_tm_clones 1728 0 1728 1728)\n(llvm:symbol-entry deregister_tm_clones 1680 0 1680 1680)\n(llvm:symbol-entry call_weak_fn 1652 20 1652 1652)\n(mapped 0 2240 0)\n(mapped 69048 632 3512)\n(named-region 0 2240 02)\n(named-region 69048 648 03)\n(named-region 568 27 .interp)\n(named-region 596 36 .note.gnu.build-id)\n(named-region 632 32 .note.ABI-tag)\n(named-region 664 28 .gnu.hash)\n(named-region 696 216 .dynsym)\n(named-region 912 141 .dynstr)\n(named-region 1054 18 .gnu.version)\n(named-region 1072 48 .gnu.version_r)\n(named-region 1120 240 .rela.dyn)\n(named-region 1360 96 .rela.plt)\n(named-region 1456 24 .init)\n(named-region 1488 96 .plt)\n(named-region 1600 372 .text)\n(named-region 1972 20 .fini)\n(named-region 1992 4 .rodata)\n(named-region 1996 60 .eh_frame_hdr)\n(named-region 2056 184 .eh_frame)\n(named-region 69048 8 .init_array)\n(named-region 69056 8 .fini_array)\n(named-region 69064 480 .dynamic)\n(named-region 69544 64 .got)\n(named-region 69608 56 .got.plt)\n(named-region 69664 16 .data)\n(named-region 69680 16 .bss)\n(named-region 0 71 .comment)\n(named-region 0 2184 .symtab)\n(named-region 0 561 .strtab)\n(named-region 0 259 .shstrtab)\n(named-symbol 1652 call_weak_fn)\n(named-symbol 1680 deregister_tm_clones)\n(named-symbol 1728 register_tm_clones)\n(named-symbol 1792 __do_global_dtors_aux)\n(named-symbol 1872 frame_dummy)\n(named-symbol 0 __libc_start_main@GLIBC_2.34)\n(named-symbol 0 __cxa_finalize@GLIBC_2.17)\n(named-symbol 1972 _fini)\n(named-symbol 0 abort@GLIBC_2.17)\n(named-symbol 1600 _start)\n(named-symbol 1876 main)\n(named-symbol 1456 _init)\n(named-symbol 0 __libc_start_main)\n(named-symbol 0 __cxa_finalize)\n(named-symbol 0 abort)\n(require libc.so.6)\n(section 568 27)\n(section 596 36)\n(section 632 32)\n(section 664 28)\n(section 696 216)\n(section 912 141)\n(section 1054 18)\n(section 1072 48)\n(section 1120 240)\n(section 1360 96)\n(section 1456 24)\n(section 1488 96)\n(section 1600 372)\n(section 1972 20)\n(section 1992 4)\n(section 1996 60)\n(section 2056 184)\n(section 69048 8)\n(section 69056 8)\n(section 69064 480)\n(section 69544 64)\n(section 69608 56)\n(section 69664 16)\n(section 69680 16)\n(section 0 71)\n(section 0 2184)\n(section 0 561)\n(section 0 259)\n(segment 0 2240 true false true)\n(segment 69048 648 true true false)\n(subarch v8)\n(symbol-chunk 1652 20 1652)\n(symbol-chunk 1600 52 1600)\n(symbol-chunk 1876 96 1876)\n(symbol-value 1652 1652)\n(symbol-value 1680 1680)\n(symbol-value 1728 1728)\n(symbol-value 1792 1792)\n(symbol-value 1872 1872)\n(symbol-value 1972 1972)\n(symbol-value 1600 1600)\n(symbol-value 1876 1876)\n(symbol-value 1456 1456)\n(symbol-value 0 0)\n(system \"\")\n(vendor \"\")\n"), -Attr("abi-name","\"aarch64-linux-gnu-elf\"")]), -Sections([Section(".shstrtab", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x40\x06\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x38\x1c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x38\x00\x09\x00\x40\x00\x1d\x00\x1c\x00\x06\x00\x00\x00\x04\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x04\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xc0\x08\x00\x00\x00\x00\x00\x00\xc0\x08\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x01\x00\x00\x00\x06\x00\x00\x00\xb8\x0d\x00\x00\x00\x00\x00\x00\xb8\x0d\x01\x00\x00\x00\x00\x00\xb8\x0d\x01"), -Section(".strtab", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x40\x06\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x38\x1c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x38\x00\x09\x00\x40\x00\x1d\x00\x1c\x00\x06\x00\x00\x00\x04\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x04\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xc0\x08\x00\x00\x00\x00\x00\x00\xc0\x08\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x01\x00\x00\x00\x06\x00\x00\x00\xb8\x0d\x00\x00\x00\x00\x00\x00\xb8\x0d\x01\x00\x00\x00\x00\x00\xb8\x0d\x01\x00\x00\x00\x00\x00\x78\x02\x00\x00\x00\x00\x00\x00\x88\x02\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x02\x00\x00\x00\x06\x00\x00\x00\xc8\x0d\x00\x00\x00\x00\x00\x00\xc8\x0d\x01\x00\x00\x00\x00\x00\xc8\x0d\x01\x00\x00\x00\x00\x00\xe0\x01\x00\x00\x00\x00\x00\x00\xe0\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x04\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x50\xe5\x74\x64\x04\x00\x00\x00\xcc\x07\x00\x00\x00\x00\x00\x00\xcc\x07\x00\x00\x00\x00\x00\x00\xcc\x07\x00\x00\x00\x00\x00\x00\x3c\x00\x00\x00\x00\x00\x00\x00\x3c\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x51\xe5\x74\x64\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x52\xe5\x74\x64\x04\x00\x00\x00\xb8\x0d\x00\x00\x00\x00\x00\x00\xb8\x0d\x01\x00\x00\x00\x00\x00\xb8\x0d\x01\x00\x00\x00\x00\x00\x48\x02\x00\x00\x00\x00\x00\x00\x48\x02\x00\x00\x00\x00\x00\x00\x01"), -Section(".symtab", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x40\x06\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x38\x1c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x38\x00\x09\x00\x40\x00\x1d\x00\x1c\x00\x06\x00\x00\x00\x04\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x04\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xc0\x08\x00\x00\x00\x00\x00\x00\xc0\x08\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x01\x00\x00\x00\x06\x00\x00\x00\xb8\x0d\x00\x00\x00\x00\x00\x00\xb8\x0d\x01\x00\x00\x00\x00\x00\xb8\x0d\x01\x00\x00\x00\x00\x00\x78\x02\x00\x00\x00\x00\x00\x00\x88\x02\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x02\x00\x00\x00\x06\x00\x00\x00\xc8\x0d\x00\x00\x00\x00\x00\x00\xc8\x0d\x01\x00\x00\x00\x00\x00\xc8\x0d\x01\x00\x00\x00\x00\x00\xe0\x01\x00\x00\x00\x00\x00\x00\xe0\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x04\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x50\xe5\x74\x64\x04\x00\x00\x00\xcc\x07\x00\x00\x00\x00\x00\x00\xcc\x07\x00\x00\x00\x00\x00\x00\xcc\x07\x00\x00\x00\x00\x00\x00\x3c\x00\x00\x00\x00\x00\x00\x00\x3c\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x51\xe5\x74\x64\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x52\xe5\x74\x64\x04\x00\x00\x00\xb8\x0d\x00\x00\x00\x00\x00\x00\xb8\x0d\x01\x00\x00\x00\x00\x00\xb8\x0d\x01\x00\x00\x00\x00\x00\x48\x02\x00\x00\x00\x00\x00\x00\x48\x02\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x2f\x6c\x69\x62\x2f\x6c\x64\x2d\x6c\x69\x6e\x75\x78\x2d\x61\x61\x72\x63\x68\x36\x34\x2e\x73\x6f\x2e\x31\x00\x00\x04\x00\x00\x00\x14\x00\x00\x00\x03\x00\x00\x00\x47\x4e\x55\x00\xff\xfe\x42\xba\xb7\x55\x4f\x40\xa0\xaa\x37\x5c\x57\xbc\x17\xa3\x1d\xb6\xa3\x6c\x04\x00\x00\x00\x10\x00\x00\x00\x01\x00\x00\x00\x47\x4e\x55\x00\x00\x00\x00\x00\x03\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x01\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x0b\x00\xb0\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x17\x00\x20\x10\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x48\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x22\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x22\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x73\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5f\x5f\x63\x78\x61\x5f\x66\x69\x6e\x61\x6c\x69\x7a\x65\x00\x5f\x5f\x6c\x69\x62\x63\x5f\x73\x74\x61\x72\x74\x5f\x6d\x61\x69\x6e\x00\x61\x62\x6f\x72\x74\x00\x6c\x69\x62\x63\x2e\x73\x6f\x2e\x36\x00\x47\x4c\x49\x42\x43\x5f\x32\x2e\x31\x37\x00\x47\x4c\x49\x42\x43\x5f\x32\x2e\x33\x34\x00\x5f\x49\x54\x4d\x5f\x64\x65\x72\x65\x67\x69\x73\x74\x65\x72\x54\x4d\x43\x6c\x6f\x6e\x65\x54\x61\x62\x6c\x65\x00\x5f\x5f\x67\x6d\x6f\x6e\x5f\x73\x74\x61\x72\x74\x5f\x5f\x00\x5f\x49\x54\x4d\x5f\x72\x65\x67\x69\x73\x74\x65\x72\x54\x4d\x43\x6c\x6f\x6e\x65\x54\x61\x62\x6c\x65\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x01\x00\x03\x00\x01\x00\x03\x00\x01\x00\x01\x00\x02\x00\x28\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x97\x91\x96\x06\x00\x00\x03\x00\x32\x00\x00\x00\x10\x00\x00\x00\xb4\x91\x96\x06\x00\x00\x02\x00\x3d\x00\x00\x00\x00\x00\x00\x00\xb8\x0d\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x50\x07\x00\x00\x00\x00\x00\x00\xc0\x0d\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\xc0\x0f\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x34\x10\x01\x00\x00\x00\x00\x00\xd0\x0f\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x38\x10\x01\x00\x00\x00\x00\x00\xd8\x0f\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x54\x07\x00\x00\x00\x00\x00\x00\x28\x10\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x28\x10\x01\x00\x00\x00\x00\x00\xb0\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xb8\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xc8\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe0\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x08\x10\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x10\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x18\x10\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1f\x20\x03\xd5\xfd\x7b\xbf\xa9\xfd\x03\x00\x91\x2e\x00\x00\x94\xfd\x7b\xc1\xa8\xc0\x03\x5f\xd6\x00\x00\x00\x00\x00\x00\x00\x00\xf0\x7b\xbf\xa9\x90\x00\x00\x90\x11\xfe\x47\xf9\x10\xe2\x3f\x91\x20\x02\x1f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x90\x00\x00\xb0\x11\x02\x40\xf9\x10\x02\x00\x91\x20\x02\x1f\xd6\x90\x00\x00\xb0\x11\x06\x40\xf9\x10\x22\x00\x91\x20\x02\x1f\xd6\x90\x00\x00\xb0\x11\x0a\x40\xf9\x10\x42\x00\x91\x20\x02\x1f\xd6\x90\x00\x00\xb0\x11\x0e\x40\xf9\x10\x62\x00\x91\x20\x02\x1f\xd6\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1f\x20\x03\xd5\x1d\x00\x80\xd2\x1e\x00\x80\xd2\xe5\x03\x00\xaa\xe1\x03\x40\xf9\xe2\x23\x00\x91\xe6\x03\x00\x91\x80\x00\x00\x90\x00\xec\x47\xf9\x03\x00\x80\xd2\x04\x00\x80\xd2\xe1\xff\xff\x97\xec\xff\xff\x97\x80\x00\x00\x90\x00\xe4\x47\xf9\x40\x00\x00\xb4\xe4\xff\xff\x17\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x80\x00\x00\xb0\x00\xc0\x00\x91\x81\x00\x00\xb0\x21\xc0\x00\x91\x3f\x00\x00\xeb\xc0\x00\x00\x54\x81\x00\x00\x90\x21\xd8\x47\xf9\x61\x00\x00\xb4\xf0\x03\x01\xaa\x00\x02\x1f\xd6\xc0\x03\x5f\xd6\x80\x00\x00\xb0\x00\xc0\x00\x91\x81\x00\x00\xb0\x21\xc0\x00\x91\x21\x00\x00\xcb\x22\xfc\x7f\xd3\x41\x0c\x81\x8b\x21\xfc\x41\x93\xc1\x00\x00\xb4\x82\x00\x00\x90\x42\xf0\x47\xf9\x62\x00\x00\xb4\xf0\x03\x02\xaa\x00\x02\x1f\xd6\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\xfd\x7b\xbe\xa9\xfd\x03\x00\x91\xf3\x0b\x00\xf9\x93\x00\x00\xb0\x60\xc2\x40\x39\x40\x01\x00\x35\x80\x00\x00\x90\x00\xdc\x47\xf9\x80\x00\x00\xb4\x80\x00\x00\xb0\x00\x14\x40\xf9\xb5\xff\xff\x97\xd8\xff\xff\x97\x20\x00\x80\x52\x60\xc2\x00\x39\xf3\x0b\x40\xf9\xfd\x7b\xc2\xa8\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\xdc\xff\xff\x17\xff\x43\x00\xd1\xff\x0f\x00\xb9\x88\x00\x00\x90\x08\xe1\x47\xf9\x29\x00\x80\x52\x09\x01\x00\xb9\x08\x01\x40\xb9\x08\x01\x00\x71\xe8\x17\x9f\x1a\xe8\x00\x00\x37\x01\x00\x00\x14\x68\x00\x80\x52\x89\x00\x00\x90\x29\xe9\x47\xf9\x28\x01\x00\xb9\x06\x00\x00\x14\x89\x00\x00\x90\x29\xe9\x47\xf9\x48\x00\x80\x52\x28\x01\x00\xb9\x01\x00\x00\x14\xe0\x0f\x40\xb9\xff\x43\x00\x91\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\xfd\x7b\xbf\xa9\xfd\x03\x00\x91\xfd\x7b\xc1\xa8\xc0\x03\x5f\xd6\x01\x00\x02\x00\x01\x1b\x03\x3b\x38\x00\x00\x00\x06\x00\x00\x00\x74\xfe\xff\xff\x50\x00\x00\x00\xc4\xfe\xff\xff\x64\x00\x00\x00\xf4\xfe\xff\xff\x78\x00\x00\x00\x34\xff\xff\xff\x8c\x00\x00\x00\x84\xff\xff\xff\xb0\x00\x00\x00\x88\xff\xff\xff\xd8\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x01\x7a\x52\x00\x04\x78\x1e\x01\x1b\x0c\x1f\x00\x10\x00\x00\x00\x18\x00\x00\x00\x1c\xfe\xff\xff\x34\x00\x00\x00\x00\x41\x07\x1e\x10\x00\x00\x00\x2c\x00\x00\x00\x58\xfe\xff\xff\x30\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x40\x00\x00\x00\x74\xfe\xff\xff\x3c\x00\x00\x00\x00\x00\x00\x00\x20\x00\x00\x00\x54\x00\x00\x00\xa0\xfe\xff\xff\x48\x00\x00\x00\x00\x41\x0e\x20\x9d\x04\x9e\x03\x42\x93\x02\x4e\xde\xdd\xd3\x0e\x00\x00\x00\x00\x10\x00\x00\x00\x78\x00\x00\x00\xcc\xfe\xff\xff"), -Section(".comment", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x40\x06\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x38\x1c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x38\x00\x09\x00\x40\x00\x1d\x00\x1c\x00\x06\x00\x00\x00\x04\x00\x00"), -Section(".interp", 0x238, "\x2f\x6c\x69\x62\x2f\x6c\x64\x2d\x6c\x69\x6e\x75\x78\x2d\x61\x61\x72\x63\x68\x36\x34\x2e\x73\x6f\x2e\x31\x00"), -Section(".note.gnu.build-id", 0x254, "\x04\x00\x00\x00\x14\x00\x00\x00\x03\x00\x00\x00\x47\x4e\x55\x00\xff\xfe\x42\xba\xb7\x55\x4f\x40\xa0\xaa\x37\x5c\x57\xbc\x17\xa3\x1d\xb6\xa3\x6c"), -Section(".note.ABI-tag", 0x278, "\x04\x00\x00\x00\x10\x00\x00\x00\x01\x00\x00\x00\x47\x4e\x55\x00\x00\x00\x00\x00\x03\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00"), -Section(".gnu.hash", 0x298, "\x01\x00\x00\x00\x01\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".dynsym", 0x2B8, "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x0b\x00\xb0\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x17\x00\x20\x10\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x48\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x22\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x22\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x73\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".dynstr", 0x390, "\x00\x5f\x5f\x63\x78\x61\x5f\x66\x69\x6e\x61\x6c\x69\x7a\x65\x00\x5f\x5f\x6c\x69\x62\x63\x5f\x73\x74\x61\x72\x74\x5f\x6d\x61\x69\x6e\x00\x61\x62\x6f\x72\x74\x00\x6c\x69\x62\x63\x2e\x73\x6f\x2e\x36\x00\x47\x4c\x49\x42\x43\x5f\x32\x2e\x31\x37\x00\x47\x4c\x49\x42\x43\x5f\x32\x2e\x33\x34\x00\x5f\x49\x54\x4d\x5f\x64\x65\x72\x65\x67\x69\x73\x74\x65\x72\x54\x4d\x43\x6c\x6f\x6e\x65\x54\x61\x62\x6c\x65\x00\x5f\x5f\x67\x6d\x6f\x6e\x5f\x73\x74\x61\x72\x74\x5f\x5f\x00\x5f\x49\x54\x4d\x5f\x72\x65\x67\x69\x73\x74\x65\x72\x54\x4d\x43\x6c\x6f\x6e\x65\x54\x61\x62\x6c\x65\x00"), -Section(".gnu.version", 0x41E, "\x00\x00\x00\x00\x00\x00\x02\x00\x01\x00\x03\x00\x01\x00\x03\x00\x01\x00"), -Section(".gnu.version_r", 0x430, "\x01\x00\x02\x00\x28\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x97\x91\x96\x06\x00\x00\x03\x00\x32\x00\x00\x00\x10\x00\x00\x00\xb4\x91\x96\x06\x00\x00\x02\x00\x3d\x00\x00\x00\x00\x00\x00\x00"), -Section(".rela.dyn", 0x460, "\xb8\x0d\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x50\x07\x00\x00\x00\x00\x00\x00\xc0\x0d\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\xc0\x0f\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x34\x10\x01\x00\x00\x00\x00\x00\xd0\x0f\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x38\x10\x01\x00\x00\x00\x00\x00\xd8\x0f\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x54\x07\x00\x00\x00\x00\x00\x00\x28\x10\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x28\x10\x01\x00\x00\x00\x00\x00\xb0\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xb8\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xc8\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe0\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".rela.plt", 0x550, "\x00\x10\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x08\x10\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x10\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x18\x10\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".init", 0x5B0, "\x1f\x20\x03\xd5\xfd\x7b\xbf\xa9\xfd\x03\x00\x91\x2e\x00\x00\x94\xfd\x7b\xc1\xa8\xc0\x03\x5f\xd6"), -Section(".plt", 0x5D0, "\xf0\x7b\xbf\xa9\x90\x00\x00\x90\x11\xfe\x47\xf9\x10\xe2\x3f\x91\x20\x02\x1f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x90\x00\x00\xb0\x11\x02\x40\xf9\x10\x02\x00\x91\x20\x02\x1f\xd6\x90\x00\x00\xb0\x11\x06\x40\xf9\x10\x22\x00\x91\x20\x02\x1f\xd6\x90\x00\x00\xb0\x11\x0a\x40\xf9\x10\x42\x00\x91\x20\x02\x1f\xd6\x90\x00\x00\xb0\x11\x0e\x40\xf9\x10\x62\x00\x91\x20\x02\x1f\xd6"), -Section(".fini", 0x7B4, "\x1f\x20\x03\xd5\xfd\x7b\xbf\xa9\xfd\x03\x00\x91\xfd\x7b\xc1\xa8\xc0\x03\x5f\xd6"), -Section(".rodata", 0x7C8, "\x01\x00\x02\x00"), -Section(".eh_frame_hdr", 0x7CC, "\x01\x1b\x03\x3b\x38\x00\x00\x00\x06\x00\x00\x00\x74\xfe\xff\xff\x50\x00\x00\x00\xc4\xfe\xff\xff\x64\x00\x00\x00\xf4\xfe\xff\xff\x78\x00\x00\x00\x34\xff\xff\xff\x8c\x00\x00\x00\x84\xff\xff\xff\xb0\x00\x00\x00\x88\xff\xff\xff\xd8\x00\x00\x00"), -Section(".eh_frame", 0x808, "\x10\x00\x00\x00\x00\x00\x00\x00\x01\x7a\x52\x00\x04\x78\x1e\x01\x1b\x0c\x1f\x00\x10\x00\x00\x00\x18\x00\x00\x00\x1c\xfe\xff\xff\x34\x00\x00\x00\x00\x41\x07\x1e\x10\x00\x00\x00\x2c\x00\x00\x00\x58\xfe\xff\xff\x30\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x40\x00\x00\x00\x74\xfe\xff\xff\x3c\x00\x00\x00\x00\x00\x00\x00\x20\x00\x00\x00\x54\x00\x00\x00\xa0\xfe\xff\xff\x48\x00\x00\x00\x00\x41\x0e\x20\x9d\x04\x9e\x03\x42\x93\x02\x4e\xde\xdd\xd3\x0e\x00\x00\x00\x00\x10\x00\x00\x00\x78\x00\x00\x00\xcc\xfe\xff\xff\x04\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x01\x7a\x52\x00\x01\x7c\x1e\x01\x1b\x0c\x1f\x00\x14\x00\x00\x00\x18\x00\x00\x00\xa8\xfe\xff\xff\x60\x00\x00\x00\x00\x44\x0e\x10\x02\x58\x0e\x00\x00\x00\x00\x00"), -Section(".fini_array", 0x10DC0, "\x00\x07\x00\x00\x00\x00\x00\x00"), -Section(".dynamic", 0x10DC8, "\x01\x00\x00\x00\x00\x00\x00\x00\x28\x00\x00\x00\x00\x00\x00\x00\x0c\x00\x00\x00\x00\x00\x00\x00\xb0\x05\x00\x00\x00\x00\x00\x00\x0d\x00\x00\x00\x00\x00\x00\x00\xb4\x07\x00\x00\x00\x00\x00\x00\x19\x00\x00\x00\x00\x00\x00\x00\xb8\x0d\x01\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x1a\x00\x00\x00\x00\x00\x00\x00\xc0\x0d\x01\x00\x00\x00\x00\x00\x1c\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\xf5\xfe\xff\x6f\x00\x00\x00\x00\x98\x02\x00\x00\x00\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x90\x03\x00\x00\x00\x00\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\xb8\x02\x00\x00\x00\x00\x00\x00\x0a\x00\x00\x00\x00\x00\x00\x00\x8d\x00\x00\x00\x00\x00\x00\x00\x0b\x00\x00\x00\x00\x00\x00\x00\x18\x00\x00\x00\x00\x00\x00\x00\x15\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\xe8\x0f\x01\x00\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x60\x00\x00\x00\x00\x00\x00\x00\x14\x00\x00\x00\x00\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x17\x00\x00\x00\x00\x00\x00\x00\x50\x05\x00\x00\x00\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x60\x04\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\xf0\x00\x00\x00\x00\x00\x00\x00\x09\x00\x00\x00\x00\x00\x00\x00\x18\x00\x00\x00\x00\x00\x00\x00\xfb\xff\xff\x6f\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\xfe\xff\xff\x6f\x00\x00\x00\x00\x30\x04\x00\x00\x00\x00\x00\x00\xff\xff\xff\x6f\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\xf0\xff\xff\x6f\x00\x00\x00\x00\x1e\x04\x00\x00\x00\x00\x00\x00\xf9\xff\xff\x6f\x00\x00\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".init_array", 0x10DB8, "\x50\x07\x00\x00\x00\x00\x00\x00"), -Section(".got", 0x10FA8, "\xc8\x0d\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x34\x10\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x38\x10\x01\x00\x00\x00\x00\x00\x54\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".got.plt", 0x10FE8, "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xd0\x05\x00\x00\x00\x00\x00\x00\xd0\x05\x00\x00\x00\x00\x00\x00\xd0\x05\x00\x00\x00\x00\x00\x00\xd0\x05\x00\x00\x00\x00\x00\x00"), -Section(".data", 0x11020, "\x00\x00\x00\x00\x00\x00\x00\x00\x28\x10\x01\x00\x00\x00\x00\x00"), -Section(".text", 0x640, "\x1f\x20\x03\xd5\x1d\x00\x80\xd2\x1e\x00\x80\xd2\xe5\x03\x00\xaa\xe1\x03\x40\xf9\xe2\x23\x00\x91\xe6\x03\x00\x91\x80\x00\x00\x90\x00\xec\x47\xf9\x03\x00\x80\xd2\x04\x00\x80\xd2\xe1\xff\xff\x97\xec\xff\xff\x97\x80\x00\x00\x90\x00\xe4\x47\xf9\x40\x00\x00\xb4\xe4\xff\xff\x17\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x80\x00\x00\xb0\x00\xc0\x00\x91\x81\x00\x00\xb0\x21\xc0\x00\x91\x3f\x00\x00\xeb\xc0\x00\x00\x54\x81\x00\x00\x90\x21\xd8\x47\xf9\x61\x00\x00\xb4\xf0\x03\x01\xaa\x00\x02\x1f\xd6\xc0\x03\x5f\xd6\x80\x00\x00\xb0\x00\xc0\x00\x91\x81\x00\x00\xb0\x21\xc0\x00\x91\x21\x00\x00\xcb\x22\xfc\x7f\xd3\x41\x0c\x81\x8b\x21\xfc\x41\x93\xc1\x00\x00\xb4\x82\x00\x00\x90\x42\xf0\x47\xf9\x62\x00\x00\xb4\xf0\x03\x02\xaa\x00\x02\x1f\xd6\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\xfd\x7b\xbe\xa9\xfd\x03\x00\x91\xf3\x0b\x00\xf9\x93\x00\x00\xb0\x60\xc2\x40\x39\x40\x01\x00\x35\x80\x00\x00\x90\x00\xdc\x47\xf9\x80\x00\x00\xb4\x80\x00\x00\xb0\x00\x14\x40\xf9\xb5\xff\xff\x97\xd8\xff\xff\x97\x20\x00\x80\x52\x60\xc2\x00\x39\xf3\x0b\x40\xf9\xfd\x7b\xc2\xa8\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\xdc\xff\xff\x17\xff\x43\x00\xd1\xff\x0f\x00\xb9\x88\x00\x00\x90\x08\xe1\x47\xf9\x29\x00\x80\x52\x09\x01\x00\xb9\x08\x01\x40\xb9\x08\x01\x00\x71\xe8\x17\x9f\x1a\xe8\x00\x00\x37\x01\x00\x00\x14\x68\x00\x80\x52\x89\x00\x00\x90\x29\xe9\x47\xf9\x28\x01\x00\xb9\x06\x00\x00\x14\x89\x00\x00\x90\x29\xe9\x47\xf9\x48\x00\x80\x52\x28\x01\x00\xb9\x01\x00\x00\x14\xe0\x0f\x40\xb9\xff\x43\x00\x91\xc0\x03\x5f\xd6")]), -Memmap([Annotation(Region(0x0,0x8BF), Attr("segment","02 0 2240")), -Annotation(Region(0x640,0x673), Attr("symbol","\"_start\"")), -Annotation(Region(0x0,0x102), Attr("section","\".shstrtab\"")), -Annotation(Region(0x0,0x230), Attr("section","\".strtab\"")), -Annotation(Region(0x0,0x887), Attr("section","\".symtab\"")), -Annotation(Region(0x0,0x46), Attr("section","\".comment\"")), -Annotation(Region(0x238,0x252), Attr("section","\".interp\"")), -Annotation(Region(0x254,0x277), Attr("section","\".note.gnu.build-id\"")), -Annotation(Region(0x278,0x297), Attr("section","\".note.ABI-tag\"")), -Annotation(Region(0x298,0x2B3), Attr("section","\".gnu.hash\"")), -Annotation(Region(0x2B8,0x38F), Attr("section","\".dynsym\"")), -Annotation(Region(0x390,0x41C), Attr("section","\".dynstr\"")), -Annotation(Region(0x41E,0x42F), Attr("section","\".gnu.version\"")), -Annotation(Region(0x430,0x45F), Attr("section","\".gnu.version_r\"")), -Annotation(Region(0x460,0x54F), Attr("section","\".rela.dyn\"")), -Annotation(Region(0x550,0x5AF), Attr("section","\".rela.plt\"")), -Annotation(Region(0x5B0,0x5C7), Attr("section","\".init\"")), -Annotation(Region(0x5D0,0x62F), Attr("section","\".plt\"")), -Annotation(Region(0x5B0,0x5C7), Attr("code-region","()")), -Annotation(Region(0x5D0,0x62F), Attr("code-region","()")), -Annotation(Region(0x640,0x673), Attr("symbol-info","_start 0x640 52")), -Annotation(Region(0x674,0x687), Attr("symbol","\"call_weak_fn\"")), -Annotation(Region(0x674,0x687), Attr("symbol-info","call_weak_fn 0x674 20")), -Annotation(Region(0x754,0x7B3), Attr("symbol","\"main\"")), -Annotation(Region(0x754,0x7B3), Attr("symbol-info","main 0x754 96")), -Annotation(Region(0x7B4,0x7C7), Attr("section","\".fini\"")), -Annotation(Region(0x7C8,0x7CB), Attr("section","\".rodata\"")), -Annotation(Region(0x7CC,0x807), Attr("section","\".eh_frame_hdr\"")), -Annotation(Region(0x808,0x8BF), Attr("section","\".eh_frame\"")), -Annotation(Region(0x10DB8,0x1102F), Attr("segment","03 0x10DB8 648")), -Annotation(Region(0x10DC0,0x10DC7), Attr("section","\".fini_array\"")), -Annotation(Region(0x10DC8,0x10FA7), Attr("section","\".dynamic\"")), -Annotation(Region(0x10DB8,0x10DBF), Attr("section","\".init_array\"")), -Annotation(Region(0x10FA8,0x10FE7), Attr("section","\".got\"")), -Annotation(Region(0x10FE8,0x1101F), Attr("section","\".got.plt\"")), -Annotation(Region(0x11020,0x1102F), Attr("section","\".data\"")), -Annotation(Region(0x640,0x7B3), Attr("section","\".text\"")), -Annotation(Region(0x640,0x7B3), Attr("code-region","()")), -Annotation(Region(0x7B4,0x7C7), Attr("code-region","()"))]), -Program(Tid(1_555, "%00000613"), Attrs([]), - Subs([Sub(Tid(1_503, "@__cxa_finalize"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x600"), -Attr("stub","()")]), "__cxa_finalize", Args([Arg(Tid(1_556, "%00000614"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("__cxa_finalize_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(1_008, "@__cxa_finalize"), - Attrs([Attr("address","0x600")]), Phis([]), -Defs([Def(Tid(1_256, "%000004e8"), Attrs([Attr("address","0x600"), -Attr("insn","adrp x16, #69632")]), Var("R16",Imm(64)), Int(69632,64)), -Def(Tid(1_263, "%000004ef"), Attrs([Attr("address","0x604"), -Attr("insn","ldr x17, [x16, #0x8]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(1_269, "%000004f5"), Attrs([Attr("address","0x608"), -Attr("insn","add x16, x16, #0x8")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(8,64)))]), Jmps([Call(Tid(1_274, "%000004fa"), - Attrs([Attr("address","0x60C"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), -Sub(Tid(1_504, "@__do_global_dtors_aux"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x700")]), - "__do_global_dtors_aux", Args([Arg(Tid(1_557, "%00000615"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("__do_global_dtors_aux_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(686, "@__do_global_dtors_aux"), - Attrs([Attr("address","0x700")]), Phis([]), Defs([Def(Tid(690, "%000002b2"), - Attrs([Attr("address","0x700"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("#3",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(18446744073709551584,64))), -Def(Tid(696, "%000002b8"), Attrs([Attr("address","0x700"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("#3",Imm(64)),Var("R29",Imm(64)),LittleEndian(),64)), -Def(Tid(702, "%000002be"), Attrs([Attr("address","0x700"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("#3",Imm(64)),Int(8,64)),Var("R30",Imm(64)),LittleEndian(),64)), -Def(Tid(706, "%000002c2"), Attrs([Attr("address","0x700"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("R31",Imm(64)), -Var("#3",Imm(64))), Def(Tid(712, "%000002c8"), - Attrs([Attr("address","0x704"), Attr("insn","mov x29, sp")]), - Var("R29",Imm(64)), Var("R31",Imm(64))), Def(Tid(720, "%000002d0"), - Attrs([Attr("address","0x708"), Attr("insn","str x19, [sp, #0x10]")]), - Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(16,64)),Var("R19",Imm(64)),LittleEndian(),64)), -Def(Tid(725, "%000002d5"), Attrs([Attr("address","0x70C"), -Attr("insn","adrp x19, #69632")]), Var("R19",Imm(64)), Int(69632,64)), -Def(Tid(732, "%000002dc"), Attrs([Attr("address","0x710"), -Attr("insn","ldrb w0, [x19, #0x30]")]), Var("R0",Imm(64)), -UNSIGNED(64,Load(Var("mem",Mem(64,8)),PLUS(Var("R19",Imm(64)),Int(48,64)),LittleEndian(),8)))]), -Jmps([Goto(Tid(739, "%000002e3"), Attrs([Attr("address","0x714"), -Attr("insn","cbnz w0, #0x28")]), - NEQ(Extract(31,0,Var("R0",Imm(64))),Int(0,32)), -Direct(Tid(737, "%000002e1"))), Goto(Tid(1_544, "%00000608"), Attrs([]), - Int(1,1), Direct(Tid(953, "%000003b9")))])), Blk(Tid(953, "%000003b9"), - Attrs([Attr("address","0x718")]), Phis([]), Defs([Def(Tid(956, "%000003bc"), - Attrs([Attr("address","0x718"), Attr("insn","adrp x0, #65536")]), - Var("R0",Imm(64)), Int(65536,64)), Def(Tid(963, "%000003c3"), - Attrs([Attr("address","0x71C"), Attr("insn","ldr x0, [x0, #0xfb8]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(4024,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(969, "%000003c9"), Attrs([Attr("address","0x720"), -Attr("insn","cbz x0, #0x10")]), EQ(Var("R0",Imm(64)),Int(0,64)), -Direct(Tid(967, "%000003c7"))), Goto(Tid(1_545, "%00000609"), Attrs([]), - Int(1,1), Direct(Tid(992, "%000003e0")))])), Blk(Tid(992, "%000003e0"), - Attrs([Attr("address","0x724")]), Phis([]), Defs([Def(Tid(995, "%000003e3"), - Attrs([Attr("address","0x724"), Attr("insn","adrp x0, #69632")]), - Var("R0",Imm(64)), Int(69632,64)), Def(Tid(1_002, "%000003ea"), - Attrs([Attr("address","0x728"), Attr("insn","ldr x0, [x0, #0x28]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(40,64)),LittleEndian(),64)), -Def(Tid(1_007, "%000003ef"), Attrs([Attr("address","0x72C"), -Attr("insn","bl #-0x12c")]), Var("R30",Imm(64)), Int(1840,64))]), -Jmps([Call(Tid(1_010, "%000003f2"), Attrs([Attr("address","0x72C"), -Attr("insn","bl #-0x12c")]), Int(1,1), -(Direct(Tid(1_503, "@__cxa_finalize")),Direct(Tid(967, "%000003c7"))))])), -Blk(Tid(967, "%000003c7"), Attrs([Attr("address","0x730")]), Phis([]), -Defs([Def(Tid(975, "%000003cf"), Attrs([Attr("address","0x730"), -Attr("insn","bl #-0xa0")]), Var("R30",Imm(64)), Int(1844,64))]), -Jmps([Call(Tid(977, "%000003d1"), Attrs([Attr("address","0x730"), -Attr("insn","bl #-0xa0")]), Int(1,1), -(Direct(Tid(1_517, "@deregister_tm_clones")),Direct(Tid(979, "%000003d3"))))])), -Blk(Tid(979, "%000003d3"), Attrs([Attr("address","0x734")]), Phis([]), -Defs([Def(Tid(982, "%000003d6"), Attrs([Attr("address","0x734"), -Attr("insn","mov w0, #0x1")]), Var("R0",Imm(64)), Int(1,64)), -Def(Tid(990, "%000003de"), Attrs([Attr("address","0x738"), -Attr("insn","strb w0, [x19, #0x30]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R19",Imm(64)),Int(48,64)),Extract(7,0,Var("R0",Imm(64))),LittleEndian(),8))]), -Jmps([Goto(Tid(1_546, "%0000060a"), Attrs([]), Int(1,1), -Direct(Tid(737, "%000002e1")))])), Blk(Tid(737, "%000002e1"), - Attrs([Attr("address","0x73C")]), Phis([]), Defs([Def(Tid(747, "%000002eb"), - Attrs([Attr("address","0x73C"), Attr("insn","ldr x19, [sp, #0x10]")]), - Var("R19",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(16,64)),LittleEndian(),64)), -Def(Tid(754, "%000002f2"), Attrs([Attr("address","0x740"), -Attr("insn","ldp x29, x30, [sp], #0x20")]), Var("R29",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(759, "%000002f7"), Attrs([Attr("address","0x740"), -Attr("insn","ldp x29, x30, [sp], #0x20")]), Var("R30",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(763, "%000002fb"), Attrs([Attr("address","0x740"), -Attr("insn","ldp x29, x30, [sp], #0x20")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(32,64)))]), Jmps([Call(Tid(768, "%00000300"), - Attrs([Attr("address","0x744"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), Sub(Tid(1_508, "@__libc_start_main"), - Attrs([Attr("c.proto","signed (*)(signed (*)(signed , char** , char** );* main, signed , char** , \nvoid* auxv)"), -Attr("address","0x5F0"), Attr("stub","()")]), "__libc_start_main", - Args([Arg(Tid(1_558, "%00000616"), - Attrs([Attr("c.layout","**[ : 64]"), -Attr("c.data","Top:u64 ptr ptr"), -Attr("c.type","signed (*)(signed , char** , char** );*")]), - Var("__libc_start_main_main",Imm(64)), Var("R0",Imm(64)), In()), -Arg(Tid(1_559, "%00000617"), Attrs([Attr("c.layout","[signed : 32]"), -Attr("c.data","Top:u32"), Attr("c.type","signed")]), - Var("__libc_start_main_arg2",Imm(32)), LOW(32,Var("R1",Imm(64))), In()), -Arg(Tid(1_560, "%00000618"), Attrs([Attr("c.layout","**[char : 8]"), -Attr("c.data","Top:u8 ptr ptr"), Attr("c.type","char**")]), - Var("__libc_start_main_arg3",Imm(64)), Var("R2",Imm(64)), Both()), -Arg(Tid(1_561, "%00000619"), Attrs([Attr("c.layout","*[ : 8]"), -Attr("c.data","{} ptr"), Attr("c.type","void*")]), - Var("__libc_start_main_auxv",Imm(64)), Var("R3",Imm(64)), Both()), -Arg(Tid(1_562, "%0000061a"), Attrs([Attr("c.layout","[signed : 32]"), -Attr("c.data","Top:u32"), Attr("c.type","signed")]), - Var("__libc_start_main_result",Imm(32)), LOW(32,Var("R0",Imm(64))), -Out())]), Blks([Blk(Tid(519, "@__libc_start_main"), - Attrs([Attr("address","0x5F0")]), Phis([]), -Defs([Def(Tid(1_234, "%000004d2"), Attrs([Attr("address","0x5F0"), -Attr("insn","adrp x16, #69632")]), Var("R16",Imm(64)), Int(69632,64)), -Def(Tid(1_241, "%000004d9"), Attrs([Attr("address","0x5F4"), -Attr("insn","ldr x17, [x16]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R16",Imm(64)),LittleEndian(),64)), -Def(Tid(1_247, "%000004df"), Attrs([Attr("address","0x5F8"), -Attr("insn","add x16, x16, #0x0")]), Var("R16",Imm(64)), -Var("R16",Imm(64)))]), Jmps([Call(Tid(1_252, "%000004e4"), - Attrs([Attr("address","0x5FC"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), Sub(Tid(1_509, "@_fini"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x7B4")]), - "_fini", Args([Arg(Tid(1_563, "%0000061b"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("_fini_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(31, "@_fini"), - Attrs([Attr("address","0x7B4")]), Phis([]), Defs([Def(Tid(37, "%00000025"), - Attrs([Attr("address","0x7B8"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("#0",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(18446744073709551600,64))), -Def(Tid(43, "%0000002b"), Attrs([Attr("address","0x7B8"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("#0",Imm(64)),Var("R29",Imm(64)),LittleEndian(),64)), -Def(Tid(49, "%00000031"), Attrs([Attr("address","0x7B8"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("#0",Imm(64)),Int(8,64)),Var("R30",Imm(64)),LittleEndian(),64)), -Def(Tid(53, "%00000035"), Attrs([Attr("address","0x7B8"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("R31",Imm(64)), -Var("#0",Imm(64))), Def(Tid(59, "%0000003b"), Attrs([Attr("address","0x7BC"), -Attr("insn","mov x29, sp")]), Var("R29",Imm(64)), Var("R31",Imm(64))), -Def(Tid(66, "%00000042"), Attrs([Attr("address","0x7C0"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R29",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(71, "%00000047"), Attrs([Attr("address","0x7C0"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R30",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(75, "%0000004b"), Attrs([Attr("address","0x7C0"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(16,64)))]), Jmps([Call(Tid(80, "%00000050"), - Attrs([Attr("address","0x7C4"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), Sub(Tid(1_510, "@_init"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x5B0")]), - "_init", Args([Arg(Tid(1_564, "%0000061c"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("_init_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(1_346, "@_init"), - Attrs([Attr("address","0x5B0")]), Phis([]), -Defs([Def(Tid(1_352, "%00000548"), Attrs([Attr("address","0x5B4"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("#6",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(18446744073709551600,64))), -Def(Tid(1_358, "%0000054e"), Attrs([Attr("address","0x5B4"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("#6",Imm(64)),Var("R29",Imm(64)),LittleEndian(),64)), -Def(Tid(1_364, "%00000554"), Attrs([Attr("address","0x5B4"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("#6",Imm(64)),Int(8,64)),Var("R30",Imm(64)),LittleEndian(),64)), -Def(Tid(1_368, "%00000558"), Attrs([Attr("address","0x5B4"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("R31",Imm(64)), -Var("#6",Imm(64))), Def(Tid(1_374, "%0000055e"), - Attrs([Attr("address","0x5B8"), Attr("insn","mov x29, sp")]), - Var("R29",Imm(64)), Var("R31",Imm(64))), Def(Tid(1_379, "%00000563"), - Attrs([Attr("address","0x5BC"), Attr("insn","bl #0xb8")]), - Var("R30",Imm(64)), Int(1472,64))]), Jmps([Call(Tid(1_381, "%00000565"), - Attrs([Attr("address","0x5BC"), Attr("insn","bl #0xb8")]), Int(1,1), -(Direct(Tid(1_515, "@call_weak_fn")),Direct(Tid(1_383, "%00000567"))))])), -Blk(Tid(1_383, "%00000567"), Attrs([Attr("address","0x5C0")]), Phis([]), -Defs([Def(Tid(1_388, "%0000056c"), Attrs([Attr("address","0x5C0"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R29",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(1_393, "%00000571"), Attrs([Attr("address","0x5C0"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R30",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(1_397, "%00000575"), Attrs([Attr("address","0x5C0"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(16,64)))]), Jmps([Call(Tid(1_402, "%0000057a"), - Attrs([Attr("address","0x5C4"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), Sub(Tid(1_511, "@_start"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x640"), -Attr("entry-point","()")]), "_start", Args([Arg(Tid(1_565, "%0000061d"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("_start_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(456, "@_start"), - Attrs([Attr("address","0x640")]), Phis([]), Defs([Def(Tid(461, "%000001cd"), - Attrs([Attr("address","0x644"), Attr("insn","mov x29, #0x0")]), - Var("R29",Imm(64)), Int(0,64)), Def(Tid(466, "%000001d2"), - Attrs([Attr("address","0x648"), Attr("insn","mov x30, #0x0")]), - Var("R30",Imm(64)), Int(0,64)), Def(Tid(472, "%000001d8"), - Attrs([Attr("address","0x64C"), Attr("insn","mov x5, x0")]), - Var("R5",Imm(64)), Var("R0",Imm(64))), Def(Tid(479, "%000001df"), - Attrs([Attr("address","0x650"), Attr("insn","ldr x1, [sp]")]), - Var("R1",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(485, "%000001e5"), Attrs([Attr("address","0x654"), -Attr("insn","add x2, sp, #0x8")]), Var("R2",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(8,64))), Def(Tid(491, "%000001eb"), - Attrs([Attr("address","0x658"), Attr("insn","mov x6, sp")]), - Var("R6",Imm(64)), Var("R31",Imm(64))), Def(Tid(496, "%000001f0"), - Attrs([Attr("address","0x65C"), Attr("insn","adrp x0, #65536")]), - Var("R0",Imm(64)), Int(65536,64)), Def(Tid(503, "%000001f7"), - Attrs([Attr("address","0x660"), Attr("insn","ldr x0, [x0, #0xfd8]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(4056,64)),LittleEndian(),64)), -Def(Tid(508, "%000001fc"), Attrs([Attr("address","0x664"), -Attr("insn","mov x3, #0x0")]), Var("R3",Imm(64)), Int(0,64)), -Def(Tid(513, "%00000201"), Attrs([Attr("address","0x668"), -Attr("insn","mov x4, #0x0")]), Var("R4",Imm(64)), Int(0,64)), -Def(Tid(518, "%00000206"), Attrs([Attr("address","0x66C"), -Attr("insn","bl #-0x7c")]), Var("R30",Imm(64)), Int(1648,64))]), -Jmps([Call(Tid(521, "%00000209"), Attrs([Attr("address","0x66C"), -Attr("insn","bl #-0x7c")]), Int(1,1), -(Direct(Tid(1_508, "@__libc_start_main")),Direct(Tid(523, "%0000020b"))))])), -Blk(Tid(523, "%0000020b"), Attrs([Attr("address","0x670")]), Phis([]), -Defs([Def(Tid(526, "%0000020e"), Attrs([Attr("address","0x670"), -Attr("insn","bl #-0x50")]), Var("R30",Imm(64)), Int(1652,64))]), -Jmps([Call(Tid(529, "%00000211"), Attrs([Attr("address","0x670"), -Attr("insn","bl #-0x50")]), Int(1,1), -(Direct(Tid(1_514, "@abort")),Direct(Tid(1_547, "%0000060b"))))])), -Blk(Tid(1_547, "%0000060b"), Attrs([]), Phis([]), Defs([]), -Jmps([Call(Tid(1_548, "%0000060c"), Attrs([]), Int(1,1), -(Direct(Tid(1_515, "@call_weak_fn")),))]))])), Sub(Tid(1_514, "@abort"), - Attrs([Attr("noreturn","()"), Attr("c.proto","void (*)(void)"), -Attr("address","0x620"), Attr("stub","()")]), "abort", Args([]), -Blks([Blk(Tid(527, "@abort"), Attrs([Attr("address","0x620")]), Phis([]), -Defs([Def(Tid(1_300, "%00000514"), Attrs([Attr("address","0x620"), -Attr("insn","adrp x16, #69632")]), Var("R16",Imm(64)), Int(69632,64)), -Def(Tid(1_307, "%0000051b"), Attrs([Attr("address","0x624"), -Attr("insn","ldr x17, [x16, #0x18]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(24,64)),LittleEndian(),64)), -Def(Tid(1_313, "%00000521"), Attrs([Attr("address","0x628"), -Attr("insn","add x16, x16, #0x18")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(24,64)))]), Jmps([Call(Tid(1_318, "%00000526"), - Attrs([Attr("address","0x62C"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), Sub(Tid(1_515, "@call_weak_fn"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x674")]), - "call_weak_fn", Args([Arg(Tid(1_566, "%0000061e"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("call_weak_fn_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(531, "@call_weak_fn"), - Attrs([Attr("address","0x674")]), Phis([]), Defs([Def(Tid(534, "%00000216"), - Attrs([Attr("address","0x674"), Attr("insn","adrp x0, #65536")]), - Var("R0",Imm(64)), Int(65536,64)), Def(Tid(541, "%0000021d"), - Attrs([Attr("address","0x678"), Attr("insn","ldr x0, [x0, #0xfc8]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(4040,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(547, "%00000223"), Attrs([Attr("address","0x67C"), -Attr("insn","cbz x0, #0x8")]), EQ(Var("R0",Imm(64)),Int(0,64)), -Direct(Tid(545, "%00000221"))), Goto(Tid(1_549, "%0000060d"), Attrs([]), - Int(1,1), Direct(Tid(1_072, "%00000430")))])), Blk(Tid(545, "%00000221"), - Attrs([Attr("address","0x684")]), Phis([]), Defs([]), -Jmps([Call(Tid(553, "%00000229"), Attrs([Attr("address","0x684"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))])), -Blk(Tid(1_072, "%00000430"), Attrs([Attr("address","0x680")]), Phis([]), -Defs([]), Jmps([Goto(Tid(1_075, "%00000433"), Attrs([Attr("address","0x680"), -Attr("insn","b #-0x70")]), Int(1,1), -Direct(Tid(1_073, "@__gmon_start__")))])), Blk(Tid(1_073, "@__gmon_start__"), - Attrs([Attr("address","0x610")]), Phis([]), -Defs([Def(Tid(1_278, "%000004fe"), Attrs([Attr("address","0x610"), -Attr("insn","adrp x16, #69632")]), Var("R16",Imm(64)), Int(69632,64)), -Def(Tid(1_285, "%00000505"), Attrs([Attr("address","0x614"), -Attr("insn","ldr x17, [x16, #0x10]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(16,64)),LittleEndian(),64)), -Def(Tid(1_291, "%0000050b"), Attrs([Attr("address","0x618"), -Attr("insn","add x16, x16, #0x10")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(16,64)))]), Jmps([Call(Tid(1_296, "%00000510"), - Attrs([Attr("address","0x61C"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), -Sub(Tid(1_517, "@deregister_tm_clones"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x690")]), - "deregister_tm_clones", Args([Arg(Tid(1_567, "%0000061f"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("deregister_tm_clones_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(559, "@deregister_tm_clones"), - Attrs([Attr("address","0x690")]), Phis([]), Defs([Def(Tid(562, "%00000232"), - Attrs([Attr("address","0x690"), Attr("insn","adrp x0, #69632")]), - Var("R0",Imm(64)), Int(69632,64)), Def(Tid(568, "%00000238"), - Attrs([Attr("address","0x694"), Attr("insn","add x0, x0, #0x30")]), - Var("R0",Imm(64)), PLUS(Var("R0",Imm(64)),Int(48,64))), -Def(Tid(573, "%0000023d"), Attrs([Attr("address","0x698"), -Attr("insn","adrp x1, #69632")]), Var("R1",Imm(64)), Int(69632,64)), -Def(Tid(579, "%00000243"), Attrs([Attr("address","0x69C"), -Attr("insn","add x1, x1, #0x30")]), Var("R1",Imm(64)), -PLUS(Var("R1",Imm(64)),Int(48,64))), Def(Tid(585, "%00000249"), - Attrs([Attr("address","0x6A0"), Attr("insn","cmp x1, x0")]), - Var("#1",Imm(64)), NOT(Var("R0",Imm(64)))), Def(Tid(590, "%0000024e"), - Attrs([Attr("address","0x6A0"), Attr("insn","cmp x1, x0")]), - Var("#2",Imm(64)), PLUS(Var("R1",Imm(64)),NOT(Var("R0",Imm(64))))), -Def(Tid(596, "%00000254"), Attrs([Attr("address","0x6A0"), -Attr("insn","cmp x1, x0")]), Var("VF",Imm(1)), -NEQ(SIGNED(65,PLUS(Var("#2",Imm(64)),Int(1,64))),PLUS(PLUS(SIGNED(65,Var("R1",Imm(64))),SIGNED(65,Var("#1",Imm(64)))),Int(1,65)))), -Def(Tid(602, "%0000025a"), Attrs([Attr("address","0x6A0"), -Attr("insn","cmp x1, x0")]), Var("CF",Imm(1)), -NEQ(UNSIGNED(65,PLUS(Var("#2",Imm(64)),Int(1,64))),PLUS(PLUS(UNSIGNED(65,Var("R1",Imm(64))),UNSIGNED(65,Var("#1",Imm(64)))),Int(1,65)))), -Def(Tid(606, "%0000025e"), Attrs([Attr("address","0x6A0"), -Attr("insn","cmp x1, x0")]), Var("ZF",Imm(1)), -EQ(PLUS(Var("#2",Imm(64)),Int(1,64)),Int(0,64))), Def(Tid(610, "%00000262"), - Attrs([Attr("address","0x6A0"), Attr("insn","cmp x1, x0")]), - Var("NF",Imm(1)), Extract(63,63,PLUS(Var("#2",Imm(64)),Int(1,64))))]), -Jmps([Goto(Tid(616, "%00000268"), Attrs([Attr("address","0x6A4"), -Attr("insn","b.eq #0x18")]), EQ(Var("ZF",Imm(1)),Int(1,1)), -Direct(Tid(614, "%00000266"))), Goto(Tid(1_550, "%0000060e"), Attrs([]), - Int(1,1), Direct(Tid(1_042, "%00000412")))])), Blk(Tid(1_042, "%00000412"), - Attrs([Attr("address","0x6A8")]), Phis([]), -Defs([Def(Tid(1_045, "%00000415"), Attrs([Attr("address","0x6A8"), -Attr("insn","adrp x1, #65536")]), Var("R1",Imm(64)), Int(65536,64)), -Def(Tid(1_052, "%0000041c"), Attrs([Attr("address","0x6AC"), -Attr("insn","ldr x1, [x1, #0xfb0]")]), Var("R1",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R1",Imm(64)),Int(4016,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(1_057, "%00000421"), Attrs([Attr("address","0x6B0"), -Attr("insn","cbz x1, #0xc")]), EQ(Var("R1",Imm(64)),Int(0,64)), -Direct(Tid(614, "%00000266"))), Goto(Tid(1_551, "%0000060f"), Attrs([]), - Int(1,1), Direct(Tid(1_061, "%00000425")))])), Blk(Tid(614, "%00000266"), - Attrs([Attr("address","0x6BC")]), Phis([]), Defs([]), -Jmps([Call(Tid(622, "%0000026e"), Attrs([Attr("address","0x6BC"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))])), -Blk(Tid(1_061, "%00000425"), Attrs([Attr("address","0x6B4")]), Phis([]), -Defs([Def(Tid(1_065, "%00000429"), Attrs([Attr("address","0x6B4"), -Attr("insn","mov x16, x1")]), Var("R16",Imm(64)), Var("R1",Imm(64)))]), -Jmps([Call(Tid(1_070, "%0000042e"), Attrs([Attr("address","0x6B8"), -Attr("insn","br x16")]), Int(1,1), (Indirect(Var("R16",Imm(64))),))]))])), -Sub(Tid(1_520, "@frame_dummy"), Attrs([Attr("c.proto","signed (*)(void)"), -Attr("address","0x750")]), "frame_dummy", Args([Arg(Tid(1_568, "%00000620"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("frame_dummy_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(774, "@frame_dummy"), - Attrs([Attr("address","0x750")]), Phis([]), Defs([]), -Jmps([Call(Tid(776, "%00000308"), Attrs([Attr("address","0x750"), -Attr("insn","b #-0x90")]), Int(1,1), -(Direct(Tid(1_523, "@register_tm_clones")),))]))])), Sub(Tid(1_521, "@main"), - Attrs([Attr("c.proto","signed (*)(signed argc, const char** argv)"), -Attr("address","0x754")]), "main", Args([Arg(Tid(1_569, "%00000621"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("main_argc",Imm(32)), -LOW(32,Var("R0",Imm(64))), In()), Arg(Tid(1_570, "%00000622"), - Attrs([Attr("c.layout","**[char : 8]"), Attr("c.data","Top:u8 ptr ptr"), -Attr("c.type"," const char**")]), Var("main_argv",Imm(64)), -Var("R1",Imm(64)), Both()), Arg(Tid(1_571, "%00000623"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("main_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(778, "@main"), - Attrs([Attr("address","0x754")]), Phis([]), Defs([Def(Tid(782, "%0000030e"), - Attrs([Attr("address","0x754"), Attr("insn","sub sp, sp, #0x10")]), - Var("R31",Imm(64)), PLUS(Var("R31",Imm(64)),Int(18446744073709551600,64))), -Def(Tid(789, "%00000315"), Attrs([Attr("address","0x758"), -Attr("insn","str wzr, [sp, #0xc]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(12,64)),Int(0,32),LittleEndian(),32)), -Def(Tid(794, "%0000031a"), Attrs([Attr("address","0x75C"), -Attr("insn","adrp x8, #65536")]), Var("R8",Imm(64)), Int(65536,64)), -Def(Tid(801, "%00000321"), Attrs([Attr("address","0x760"), -Attr("insn","ldr x8, [x8, #0xfc0]")]), Var("R8",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R8",Imm(64)),Int(4032,64)),LittleEndian(),64)), -Def(Tid(806, "%00000326"), Attrs([Attr("address","0x764"), -Attr("insn","mov w9, #0x1")]), Var("R9",Imm(64)), Int(1,64)), -Def(Tid(814, "%0000032e"), Attrs([Attr("address","0x768"), -Attr("insn","str w9, [x8]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("R8",Imm(64)),Extract(31,0,Var("R9",Imm(64))),LittleEndian(),32)), -Def(Tid(821, "%00000335"), Attrs([Attr("address","0x76C"), -Attr("insn","ldr w8, [x8]")]), Var("R8",Imm(64)), -UNSIGNED(64,Load(Var("mem",Mem(64,8)),Var("R8",Imm(64)),LittleEndian(),32))), -Def(Tid(827, "%0000033b"), Attrs([Attr("address","0x770"), -Attr("insn","subs w8, w8, #0x0")]), Var("#4",Imm(32)), -PLUS(Extract(31,0,Var("R8",Imm(64))),Int(4294967295,32))), -Def(Tid(832, "%00000340"), Attrs([Attr("address","0x770"), -Attr("insn","subs w8, w8, #0x0")]), Var("VF",Imm(1)), -NEQ(SIGNED(33,PLUS(Var("#4",Imm(32)),Int(1,32))),PLUS(SIGNED(33,Extract(31,0,Var("R8",Imm(64)))),Int(0,33)))), -Def(Tid(837, "%00000345"), Attrs([Attr("address","0x770"), -Attr("insn","subs w8, w8, #0x0")]), Var("CF",Imm(1)), -NEQ(UNSIGNED(33,PLUS(Var("#4",Imm(32)),Int(1,32))),PLUS(UNSIGNED(33,Extract(31,0,Var("R8",Imm(64)))),Int(4294967296,33)))), -Def(Tid(841, "%00000349"), Attrs([Attr("address","0x770"), -Attr("insn","subs w8, w8, #0x0")]), Var("ZF",Imm(1)), -EQ(PLUS(Var("#4",Imm(32)),Int(1,32)),Int(0,32))), Def(Tid(845, "%0000034d"), - Attrs([Attr("address","0x770"), Attr("insn","subs w8, w8, #0x0")]), - Var("NF",Imm(1)), Extract(31,31,PLUS(Var("#4",Imm(32)),Int(1,32)))), -Def(Tid(849, "%00000351"), Attrs([Attr("address","0x770"), -Attr("insn","subs w8, w8, #0x0")]), Var("R8",Imm(64)), -UNSIGNED(64,PLUS(Var("#4",Imm(32)),Int(1,32))))]), -Jmps([Goto(Tid(861, "%0000035d"), Attrs([Attr("address","0x774"), -Attr("insn","cset w8, eq")]), NEQ(Var("ZF",Imm(1)),Int(1,1)), -Direct(Tid(854, "%00000356"))), Goto(Tid(862, "%0000035e"), - Attrs([Attr("address","0x774"), Attr("insn","cset w8, eq")]), Int(1,1), -Direct(Tid(857, "%00000359")))])), Blk(Tid(857, "%00000359"), Attrs([]), - Phis([]), Defs([Def(Tid(858, "%0000035a"), Attrs([Attr("address","0x774"), -Attr("insn","cset w8, eq")]), Var("R8",Imm(64)), Int(1,64))]), -Jmps([Goto(Tid(864, "%00000360"), Attrs([Attr("address","0x774"), -Attr("insn","cset w8, eq")]), Int(1,1), Direct(Tid(860, "%0000035c")))])), -Blk(Tid(854, "%00000356"), Attrs([]), Phis([]), -Defs([Def(Tid(855, "%00000357"), Attrs([Attr("address","0x774"), -Attr("insn","cset w8, eq")]), Var("R8",Imm(64)), Int(0,64))]), -Jmps([Goto(Tid(863, "%0000035f"), Attrs([Attr("address","0x774"), -Attr("insn","cset w8, eq")]), Int(1,1), Direct(Tid(860, "%0000035c")))])), -Blk(Tid(860, "%0000035c"), Attrs([]), Phis([]), Defs([]), -Jmps([Goto(Tid(870, "%00000366"), Attrs([Attr("address","0x778"), -Attr("insn","tbnz w8, #0x0, #0x1c")]), - EQ(Extract(0,0,Var("R8",Imm(64))),Int(1,1)), Direct(Tid(868, "%00000364"))), -Goto(Tid(1_552, "%00000610"), Attrs([]), Int(1,1), -Direct(Tid(920, "%00000398")))])), Blk(Tid(868, "%00000364"), - Attrs([Attr("address","0x794")]), Phis([]), Defs([Def(Tid(876, "%0000036c"), - Attrs([Attr("address","0x794"), Attr("insn","adrp x9, #65536")]), - Var("R9",Imm(64)), Int(65536,64)), Def(Tid(883, "%00000373"), - Attrs([Attr("address","0x798"), Attr("insn","ldr x9, [x9, #0xfd0]")]), - Var("R9",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R9",Imm(64)),Int(4048,64)),LittleEndian(),64)), -Def(Tid(888, "%00000378"), Attrs([Attr("address","0x79C"), -Attr("insn","mov w8, #0x2")]), Var("R8",Imm(64)), Int(2,64)), -Def(Tid(896, "%00000380"), Attrs([Attr("address","0x7A0"), -Attr("insn","str w8, [x9]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("R9",Imm(64)),Extract(31,0,Var("R8",Imm(64))),LittleEndian(),32))]), -Jmps([Goto(Tid(901, "%00000385"), Attrs([Attr("address","0x7A4"), -Attr("insn","b #0x4")]), Int(1,1), Direct(Tid(899, "%00000383")))])), -Blk(Tid(920, "%00000398"), Attrs([Attr("address","0x77C")]), Phis([]), -Defs([]), Jmps([Goto(Tid(923, "%0000039b"), Attrs([Attr("address","0x77C"), -Attr("insn","b #0x4")]), Int(1,1), Direct(Tid(921, "%00000399")))])), -Blk(Tid(921, "%00000399"), Attrs([Attr("address","0x780")]), Phis([]), -Defs([Def(Tid(927, "%0000039f"), Attrs([Attr("address","0x780"), -Attr("insn","mov w8, #0x3")]), Var("R8",Imm(64)), Int(3,64)), -Def(Tid(932, "%000003a4"), Attrs([Attr("address","0x784"), -Attr("insn","adrp x9, #65536")]), Var("R9",Imm(64)), Int(65536,64)), -Def(Tid(939, "%000003ab"), Attrs([Attr("address","0x788"), -Attr("insn","ldr x9, [x9, #0xfd0]")]), Var("R9",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R9",Imm(64)),Int(4048,64)),LittleEndian(),64)), -Def(Tid(947, "%000003b3"), Attrs([Attr("address","0x78C"), -Attr("insn","str w8, [x9]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("R9",Imm(64)),Extract(31,0,Var("R8",Imm(64))),LittleEndian(),32))]), -Jmps([Goto(Tid(951, "%000003b7"), Attrs([Attr("address","0x790"), -Attr("insn","b #0x18")]), Int(1,1), Direct(Tid(899, "%00000383")))])), -Blk(Tid(899, "%00000383"), Attrs([Attr("address","0x7A8")]), Phis([]), -Defs([Def(Tid(907, "%0000038b"), Attrs([Attr("address","0x7A8"), -Attr("insn","ldr w0, [sp, #0xc]")]), Var("R0",Imm(64)), -UNSIGNED(64,Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(12,64)),LittleEndian(),32))), -Def(Tid(913, "%00000391"), Attrs([Attr("address","0x7AC"), -Attr("insn","add sp, sp, #0x10")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(16,64)))]), Jmps([Call(Tid(918, "%00000396"), - Attrs([Attr("address","0x7B0"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), -Sub(Tid(1_523, "@register_tm_clones"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x6C0")]), - "register_tm_clones", Args([Arg(Tid(1_572, "%00000624"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("register_tm_clones_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(624, "@register_tm_clones"), Attrs([Attr("address","0x6C0")]), - Phis([]), Defs([Def(Tid(627, "%00000273"), Attrs([Attr("address","0x6C0"), -Attr("insn","adrp x0, #69632")]), Var("R0",Imm(64)), Int(69632,64)), -Def(Tid(633, "%00000279"), Attrs([Attr("address","0x6C4"), -Attr("insn","add x0, x0, #0x30")]), Var("R0",Imm(64)), -PLUS(Var("R0",Imm(64)),Int(48,64))), Def(Tid(638, "%0000027e"), - Attrs([Attr("address","0x6C8"), Attr("insn","adrp x1, #69632")]), - Var("R1",Imm(64)), Int(69632,64)), Def(Tid(644, "%00000284"), - Attrs([Attr("address","0x6CC"), Attr("insn","add x1, x1, #0x30")]), - Var("R1",Imm(64)), PLUS(Var("R1",Imm(64)),Int(48,64))), -Def(Tid(651, "%0000028b"), Attrs([Attr("address","0x6D0"), -Attr("insn","sub x1, x1, x0")]), Var("R1",Imm(64)), -PLUS(PLUS(Var("R1",Imm(64)),NOT(Var("R0",Imm(64)))),Int(1,64))), -Def(Tid(657, "%00000291"), Attrs([Attr("address","0x6D4"), -Attr("insn","lsr x2, x1, #63")]), Var("R2",Imm(64)), -Concat(Int(0,63),Extract(63,63,Var("R1",Imm(64))))), -Def(Tid(664, "%00000298"), Attrs([Attr("address","0x6D8"), -Attr("insn","add x1, x2, x1, asr #3")]), Var("R1",Imm(64)), -PLUS(Var("R2",Imm(64)),ARSHIFT(Var("R1",Imm(64)),Int(3,3)))), -Def(Tid(670, "%0000029e"), Attrs([Attr("address","0x6DC"), -Attr("insn","asr x1, x1, #1")]), Var("R1",Imm(64)), -SIGNED(64,Extract(63,1,Var("R1",Imm(64)))))]), -Jmps([Goto(Tid(676, "%000002a4"), Attrs([Attr("address","0x6E0"), -Attr("insn","cbz x1, #0x18")]), EQ(Var("R1",Imm(64)),Int(0,64)), -Direct(Tid(674, "%000002a2"))), Goto(Tid(1_553, "%00000611"), Attrs([]), - Int(1,1), Direct(Tid(1_012, "%000003f4")))])), Blk(Tid(1_012, "%000003f4"), - Attrs([Attr("address","0x6E4")]), Phis([]), -Defs([Def(Tid(1_015, "%000003f7"), Attrs([Attr("address","0x6E4"), -Attr("insn","adrp x2, #65536")]), Var("R2",Imm(64)), Int(65536,64)), -Def(Tid(1_022, "%000003fe"), Attrs([Attr("address","0x6E8"), -Attr("insn","ldr x2, [x2, #0xfe0]")]), Var("R2",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R2",Imm(64)),Int(4064,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(1_027, "%00000403"), Attrs([Attr("address","0x6EC"), -Attr("insn","cbz x2, #0xc")]), EQ(Var("R2",Imm(64)),Int(0,64)), -Direct(Tid(674, "%000002a2"))), Goto(Tid(1_554, "%00000612"), Attrs([]), - Int(1,1), Direct(Tid(1_031, "%00000407")))])), Blk(Tid(674, "%000002a2"), - Attrs([Attr("address","0x6F8")]), Phis([]), Defs([]), -Jmps([Call(Tid(682, "%000002aa"), Attrs([Attr("address","0x6F8"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))])), -Blk(Tid(1_031, "%00000407"), Attrs([Attr("address","0x6F0")]), Phis([]), -Defs([Def(Tid(1_035, "%0000040b"), Attrs([Attr("address","0x6F0"), -Attr("insn","mov x16, x2")]), Var("R16",Imm(64)), Var("R2",Imm(64)))]), -Jmps([Call(Tid(1_040, "%00000410"), Attrs([Attr("address","0x6F4"), -Attr("insn","br x16")]), Int(1,1), -(Indirect(Var("R16",Imm(64))),))]))]))]))) \ No newline at end of file diff --git a/src/test/correct/cjump/clang_pic/cjump.bir b/src/test/correct/cjump/clang_pic/cjump.bir deleted file mode 100644 index 95348e6c8..000000000 --- a/src/test/correct/cjump/clang_pic/cjump.bir +++ /dev/null @@ -1,271 +0,0 @@ -00000613: program -000005df: sub __cxa_finalize(__cxa_finalize_result) -00000614: __cxa_finalize_result :: out u32 = low:32[R0] - -000003f0: -000004e8: R16 := 0x11000 -000004ef: R17 := mem[R16 + 8, el]:u64 -000004f5: R16 := R16 + 8 -000004fa: call R17 with noreturn - -000005e0: sub __do_global_dtors_aux(__do_global_dtors_aux_result) -00000615: __do_global_dtors_aux_result :: out u32 = low:32[R0] - -000002ae: -000002b2: #3 := R31 - 0x20 -000002b8: mem := mem with [#3, el]:u64 <- R29 -000002be: mem := mem with [#3 + 8, el]:u64 <- R30 -000002c2: R31 := #3 -000002c8: R29 := R31 -000002d0: mem := mem with [R31 + 0x10, el]:u64 <- R19 -000002d5: R19 := 0x11000 -000002dc: R0 := pad:64[mem[R19 + 0x30]] -000002e3: when 31:0[R0] <> 0 goto %000002e1 -00000608: goto %000003b9 - -000003b9: -000003bc: R0 := 0x10000 -000003c3: R0 := mem[R0 + 0xFB8, el]:u64 -000003c9: when R0 = 0 goto %000003c7 -00000609: goto %000003e0 - -000003e0: -000003e3: R0 := 0x11000 -000003ea: R0 := mem[R0 + 0x28, el]:u64 -000003ef: R30 := 0x730 -000003f2: call @__cxa_finalize with return %000003c7 - -000003c7: -000003cf: R30 := 0x734 -000003d1: call @deregister_tm_clones with return %000003d3 - -000003d3: -000003d6: R0 := 1 -000003de: mem := mem with [R19 + 0x30] <- 7:0[R0] -0000060a: goto %000002e1 - -000002e1: -000002eb: R19 := mem[R31 + 0x10, el]:u64 -000002f2: R29 := mem[R31, el]:u64 -000002f7: R30 := mem[R31 + 8, el]:u64 -000002fb: R31 := R31 + 0x20 -00000300: call R30 with noreturn - -000005e4: sub __libc_start_main(__libc_start_main_main, __libc_start_main_arg2, __libc_start_main_arg3, __libc_start_main_auxv, __libc_start_main_result) -00000616: __libc_start_main_main :: in u64 = R0 -00000617: __libc_start_main_arg2 :: in u32 = low:32[R1] -00000618: __libc_start_main_arg3 :: in out u64 = R2 -00000619: __libc_start_main_auxv :: in out u64 = R3 -0000061a: __libc_start_main_result :: out u32 = low:32[R0] - -00000207: -000004d2: R16 := 0x11000 -000004d9: R17 := mem[R16, el]:u64 -000004df: R16 := R16 -000004e4: call R17 with noreturn - -000005e5: sub _fini(_fini_result) -0000061b: _fini_result :: out u32 = low:32[R0] - -0000001f: -00000025: #0 := R31 - 0x10 -0000002b: mem := mem with [#0, el]:u64 <- R29 -00000031: mem := mem with [#0 + 8, el]:u64 <- R30 -00000035: R31 := #0 -0000003b: R29 := R31 -00000042: R29 := mem[R31, el]:u64 -00000047: R30 := mem[R31 + 8, el]:u64 -0000004b: R31 := R31 + 0x10 -00000050: call R30 with noreturn - -000005e6: sub _init(_init_result) -0000061c: _init_result :: out u32 = low:32[R0] - -00000542: -00000548: #6 := R31 - 0x10 -0000054e: mem := mem with [#6, el]:u64 <- R29 -00000554: mem := mem with [#6 + 8, el]:u64 <- R30 -00000558: R31 := #6 -0000055e: R29 := R31 -00000563: R30 := 0x5C0 -00000565: call @call_weak_fn with return %00000567 - -00000567: -0000056c: R29 := mem[R31, el]:u64 -00000571: R30 := mem[R31 + 8, el]:u64 -00000575: R31 := R31 + 0x10 -0000057a: call R30 with noreturn - -000005e7: sub _start(_start_result) -0000061d: _start_result :: out u32 = low:32[R0] - -000001c8: -000001cd: R29 := 0 -000001d2: R30 := 0 -000001d8: R5 := R0 -000001df: R1 := mem[R31, el]:u64 -000001e5: R2 := R31 + 8 -000001eb: R6 := R31 -000001f0: R0 := 0x10000 -000001f7: R0 := mem[R0 + 0xFD8, el]:u64 -000001fc: R3 := 0 -00000201: R4 := 0 -00000206: R30 := 0x670 -00000209: call @__libc_start_main with return %0000020b - -0000020b: -0000020e: R30 := 0x674 -00000211: call @abort with return %0000060b - -0000060b: -0000060c: call @call_weak_fn with noreturn - -000005ea: sub abort() - - -0000020f: -00000514: R16 := 0x11000 -0000051b: R17 := mem[R16 + 0x18, el]:u64 -00000521: R16 := R16 + 0x18 -00000526: call R17 with noreturn - -000005eb: sub call_weak_fn(call_weak_fn_result) -0000061e: call_weak_fn_result :: out u32 = low:32[R0] - -00000213: -00000216: R0 := 0x10000 -0000021d: R0 := mem[R0 + 0xFC8, el]:u64 -00000223: when R0 = 0 goto %00000221 -0000060d: goto %00000430 - -00000221: -00000229: call R30 with noreturn - -00000430: -00000433: goto @__gmon_start__ - -00000431: -000004fe: R16 := 0x11000 -00000505: R17 := mem[R16 + 0x10, el]:u64 -0000050b: R16 := R16 + 0x10 -00000510: call R17 with noreturn - -000005ed: sub deregister_tm_clones(deregister_tm_clones_result) -0000061f: deregister_tm_clones_result :: out u32 = low:32[R0] - -0000022f: -00000232: R0 := 0x11000 -00000238: R0 := R0 + 0x30 -0000023d: R1 := 0x11000 -00000243: R1 := R1 + 0x30 -00000249: #1 := ~R0 -0000024e: #2 := R1 + ~R0 -00000254: VF := extend:65[#2 + 1] <> extend:65[R1] + extend:65[#1] + 1 -0000025a: CF := pad:65[#2 + 1] <> pad:65[R1] + pad:65[#1] + 1 -0000025e: ZF := #2 + 1 = 0 -00000262: NF := 63:63[#2 + 1] -00000268: when ZF goto %00000266 -0000060e: goto %00000412 - -00000412: -00000415: R1 := 0x10000 -0000041c: R1 := mem[R1 + 0xFB0, el]:u64 -00000421: when R1 = 0 goto %00000266 -0000060f: goto %00000425 - -00000266: -0000026e: call R30 with noreturn - -00000425: -00000429: R16 := R1 -0000042e: call R16 with noreturn - -000005f0: sub frame_dummy(frame_dummy_result) -00000620: frame_dummy_result :: out u32 = low:32[R0] - -00000306: -00000308: call @register_tm_clones with noreturn - -000005f1: sub main(main_argc, main_argv, main_result) -00000621: main_argc :: in u32 = low:32[R0] -00000622: main_argv :: in out u64 = R1 -00000623: main_result :: out u32 = low:32[R0] - -0000030a: -0000030e: R31 := R31 - 0x10 -00000315: mem := mem with [R31 + 0xC, el]:u32 <- 0 -0000031a: R8 := 0x10000 -00000321: R8 := mem[R8 + 0xFC0, el]:u64 -00000326: R9 := 1 -0000032e: mem := mem with [R8, el]:u32 <- 31:0[R9] -00000335: R8 := pad:64[mem[R8, el]:u32] -0000033b: #4 := 31:0[R8] - 1 -00000340: VF := extend:33[#4 + 1] <> extend:33[31:0[R8]] + 0 -00000345: CF := pad:33[#4 + 1] <> pad:33[31:0[R8]] - 0x100000000 -00000349: ZF := #4 + 1 = 0 -0000034d: NF := 31:31[#4 + 1] -00000351: R8 := pad:64[#4 + 1] -0000035d: when ZF <> 1 goto %00000356 -0000035e: goto %00000359 - -00000359: -0000035a: R8 := 1 -00000360: goto %0000035c - -00000356: -00000357: R8 := 0 -0000035f: goto %0000035c - -0000035c: -00000366: when 0:0[R8] goto %00000364 -00000610: goto %00000398 - -00000364: -0000036c: R9 := 0x10000 -00000373: R9 := mem[R9 + 0xFD0, el]:u64 -00000378: R8 := 2 -00000380: mem := mem with [R9, el]:u32 <- 31:0[R8] -00000385: goto %00000383 - -00000398: -0000039b: goto %00000399 - -00000399: -0000039f: R8 := 3 -000003a4: R9 := 0x10000 -000003ab: R9 := mem[R9 + 0xFD0, el]:u64 -000003b3: mem := mem with [R9, el]:u32 <- 31:0[R8] -000003b7: goto %00000383 - -00000383: -0000038b: R0 := pad:64[mem[R31 + 0xC, el]:u32] -00000391: R31 := R31 + 0x10 -00000396: call R30 with noreturn - -000005f3: sub register_tm_clones(register_tm_clones_result) -00000624: register_tm_clones_result :: out u32 = low:32[R0] - -00000270: -00000273: R0 := 0x11000 -00000279: R0 := R0 + 0x30 -0000027e: R1 := 0x11000 -00000284: R1 := R1 + 0x30 -0000028b: R1 := R1 + ~R0 + 1 -00000291: R2 := 0.63:63[R1] -00000298: R1 := R2 + (R1 ~>> 3) -0000029e: R1 := extend:64[63:1[R1]] -000002a4: when R1 = 0 goto %000002a2 -00000611: goto %000003f4 - -000003f4: -000003f7: R2 := 0x10000 -000003fe: R2 := mem[R2 + 0xFE0, el]:u64 -00000403: when R2 = 0 goto %000002a2 -00000612: goto %00000407 - -000002a2: -000002aa: call R30 with noreturn - -00000407: -0000040b: R16 := R2 -00000410: call R16 with noreturn diff --git a/src/test/correct/cjump/clang_pic/cjump.expected b/src/test/correct/cjump/clang_pic/cjump.expected index 2b0f158f6..4a1087081 100644 --- a/src/test/correct/cjump/clang_pic/cjump.expected +++ b/src/test/correct/cjump/clang_pic/cjump.expected @@ -1,38 +1,24 @@ -var {:extern} CF: bv1; -var {:extern} Gamma_CF: bool; -var {:extern} Gamma_NF: bool; var {:extern} Gamma_R0: bool; -var {:extern} Gamma_R31: bool; +var {:extern} Gamma_R10: bool; +var {:extern} Gamma_R11: bool; var {:extern} Gamma_R8: bool; var {:extern} Gamma_R9: bool; -var {:extern} Gamma_VF: bool; -var {:extern} Gamma_ZF: bool; var {:extern} Gamma_mem: [bv64]bool; -var {:extern} Gamma_stack: [bv64]bool; -var {:extern} NF: bv1; var {:extern} R0: bv64; -var {:extern} R31: bv64; +var {:extern} R10: bv64; +var {:extern} R11: bv64; var {:extern} R8: bv64; var {:extern} R9: bv64; -var {:extern} VF: bv1; -var {:extern} ZF: bv1; var {:extern} mem: [bv64]bv8; -var {:extern} stack: [bv64]bv8; const {:extern} $x_addr: bv64; -axiom ($x_addr == 69684bv64); +axiom ($x_addr == 131092bv64); const {:extern} $y_addr: bv64; -axiom ($y_addr == 69688bv64); +axiom ($y_addr == 131096bv64); function {:extern} L(mem$in: [bv64]bv8, index: bv64) returns (bool) { false } -function {:extern} {:bvbuiltin "bvadd"} bvadd32(bv32, bv32) returns (bv32); -function {:extern} {:bvbuiltin "bvadd"} bvadd33(bv33, bv33) returns (bv33); function {:extern} {:bvbuiltin "bvadd"} bvadd64(bv64, bv64) returns (bv64); -function {:extern} {:bvbuiltin "bvcomp"} bvcomp1(bv1, bv1) returns (bv1); -function {:extern} {:bvbuiltin "bvcomp"} bvcomp32(bv32, bv32) returns (bv1); -function {:extern} {:bvbuiltin "bvcomp"} bvcomp33(bv33, bv33) returns (bv1); -function {:extern} {:bvbuiltin "bvnot"} bvnot1(bv1) returns (bv1); function {:extern} gamma_load32(gammaMap: [bv64]bool, index: bv64) returns (bool) { (gammaMap[bvadd64(index, 3bv64)] && (gammaMap[bvadd64(index, 2bv64)] && (gammaMap[bvadd64(index, 1bv64)] && gammaMap[index]))) } @@ -57,20 +43,17 @@ function {:extern} memory_store32_le(memory: [bv64]bv8, index: bv64, value: bv32 memory[index := value[8:0]][bvadd64(index, 1bv64) := value[16:8]][bvadd64(index, 2bv64) := value[24:16]][bvadd64(index, 3bv64) := value[32:24]] } -function {:extern} {:bvbuiltin "sign_extend 1"} sign_extend1_32(bv32) returns (bv33); -function {:extern} {:bvbuiltin "zero_extend 1"} zero_extend1_32(bv32) returns (bv33); -function {:extern} {:bvbuiltin "zero_extend 32"} zero_extend32_32(bv32) returns (bv64); procedure {:extern} rely(); modifies Gamma_mem, mem; ensures (Gamma_mem == old(Gamma_mem)); ensures (mem == old(mem)); - free ensures (memory_load32_le(mem, 1992bv64) == 131073bv32); - free ensures (memory_load64_le(mem, 69048bv64) == 1872bv64); - free ensures (memory_load64_le(mem, 69056bv64) == 1792bv64); - free ensures (memory_load64_le(mem, 69568bv64) == 69684bv64); - free ensures (memory_load64_le(mem, 69584bv64) == 69688bv64); - free ensures (memory_load64_le(mem, 69592bv64) == 1876bv64); - free ensures (memory_load64_le(mem, 69672bv64) == 69672bv64); + free ensures (memory_load32_le(mem, 2320bv64) == 131073bv32); + free ensures (memory_load64_le(mem, 130424bv64) == 2256bv64); + free ensures (memory_load64_le(mem, 130432bv64) == 2176bv64); + free ensures (memory_load64_le(mem, 131032bv64) == 131092bv64); + free ensures (memory_load64_le(mem, 131048bv64) == 131096bv64); + free ensures (memory_load64_le(mem, 131056bv64) == 2260bv64); + free ensures (memory_load64_le(mem, 131080bv64) == 131080bv64); procedure {:extern} rely_transitive(); modifies Gamma_mem, mem; @@ -88,131 +71,57 @@ procedure {:extern} rely_reflexive(); procedure {:extern} guarantee_reflexive(); modifies Gamma_mem, mem; -procedure main_1876(); - modifies CF, Gamma_CF, Gamma_NF, Gamma_R0, Gamma_R31, Gamma_R8, Gamma_R9, Gamma_VF, Gamma_ZF, Gamma_mem, Gamma_stack, NF, R0, R31, R8, R9, VF, ZF, mem, stack; +procedure main(); + modifies Gamma_R0, Gamma_R10, Gamma_R11, Gamma_R8, Gamma_R9, Gamma_mem, R0, R10, R11, R8, R9, mem; requires (gamma_load32(Gamma_mem, $x_addr) == true); requires (gamma_load32(Gamma_mem, $y_addr) == false); - free requires (memory_load64_le(mem, 69664bv64) == 0bv64); - free requires (memory_load64_le(mem, 69672bv64) == 69672bv64); - free requires (memory_load32_le(mem, 1992bv64) == 131073bv32); - free requires (memory_load64_le(mem, 69048bv64) == 1872bv64); - free requires (memory_load64_le(mem, 69056bv64) == 1792bv64); - free requires (memory_load64_le(mem, 69568bv64) == 69684bv64); - free requires (memory_load64_le(mem, 69584bv64) == 69688bv64); - free requires (memory_load64_le(mem, 69592bv64) == 1876bv64); - free requires (memory_load64_le(mem, 69672bv64) == 69672bv64); - free ensures (Gamma_R31 == old(Gamma_R31)); - free ensures (R31 == old(R31)); - free ensures (memory_load32_le(mem, 1992bv64) == 131073bv32); - free ensures (memory_load64_le(mem, 69048bv64) == 1872bv64); - free ensures (memory_load64_le(mem, 69056bv64) == 1792bv64); - free ensures (memory_load64_le(mem, 69568bv64) == 69684bv64); - free ensures (memory_load64_le(mem, 69584bv64) == 69688bv64); - free ensures (memory_load64_le(mem, 69592bv64) == 1876bv64); - free ensures (memory_load64_le(mem, 69672bv64) == 69672bv64); + free requires (memory_load64_le(mem, 131072bv64) == 0bv64); + free requires (memory_load64_le(mem, 131080bv64) == 131080bv64); + free requires (memory_load32_le(mem, 2320bv64) == 131073bv32); + free requires (memory_load64_le(mem, 130424bv64) == 2256bv64); + free requires (memory_load64_le(mem, 130432bv64) == 2176bv64); + free requires (memory_load64_le(mem, 131032bv64) == 131092bv64); + free requires (memory_load64_le(mem, 131048bv64) == 131096bv64); + free requires (memory_load64_le(mem, 131056bv64) == 2260bv64); + free requires (memory_load64_le(mem, 131080bv64) == 131080bv64); + free ensures (memory_load32_le(mem, 2320bv64) == 131073bv32); + free ensures (memory_load64_le(mem, 130424bv64) == 2256bv64); + free ensures (memory_load64_le(mem, 130432bv64) == 2176bv64); + free ensures (memory_load64_le(mem, 131032bv64) == 131092bv64); + free ensures (memory_load64_le(mem, 131048bv64) == 131096bv64); + free ensures (memory_load64_le(mem, 131056bv64) == 2260bv64); + free ensures (memory_load64_le(mem, 131080bv64) == 131080bv64); -implementation main_1876() +implementation main() { - var #4: bv32; - var Gamma_#4: bool; - var Gamma_load18: bool; - var Gamma_load19: bool; - var Gamma_load20: bool; - var Gamma_load21: bool; - var Gamma_load22: bool; - var load18: bv64; - var load19: bv32; - var load20: bv64; - var load21: bv64; - var load22: bv32; + var $load$18: bv64; + var $load$19: bv64; + var Gamma_$load$18: bool; + var Gamma_$load$19: bool; lmain: assume {:captureState "lmain"} true; - R31, Gamma_R31 := bvadd64(R31, 18446744073709551600bv64), Gamma_R31; - stack, Gamma_stack := memory_store32_le(stack, bvadd64(R31, 12bv64), 0bv32), gamma_store32(Gamma_stack, bvadd64(R31, 12bv64), true); - assume {:captureState "%00000315"} true; - R8, Gamma_R8 := 65536bv64, true; + R8, Gamma_R8 := 126976bv64, true; + R10, Gamma_R10 := 126976bv64, true; + R0, Gamma_R0 := 0bv64, true; call rely(); - load18, Gamma_load18 := memory_load64_le(mem, bvadd64(R8, 4032bv64)), (gamma_load64(Gamma_mem, bvadd64(R8, 4032bv64)) || L(mem, bvadd64(R8, 4032bv64))); - R8, Gamma_R8 := load18, Gamma_load18; + $load$18, Gamma_$load$18 := memory_load64_le(mem, bvadd64(R8, 4056bv64)), (gamma_load64(Gamma_mem, bvadd64(R8, 4056bv64)) || L(mem, bvadd64(R8, 4056bv64))); + R8, Gamma_R8 := $load$18, Gamma_$load$18; + call rely(); + $load$19, Gamma_$load$19 := memory_load64_le(mem, bvadd64(R10, 4072bv64)), (gamma_load64(Gamma_mem, bvadd64(R10, 4072bv64)) || L(mem, bvadd64(R10, 4072bv64))); + R10, Gamma_R10 := $load$19, Gamma_$load$19; R9, Gamma_R9 := 1bv64, true; + R11, Gamma_R11 := 3bv64, true; call rely(); assert (L(mem, R8) ==> Gamma_R9); mem, Gamma_mem := memory_store32_le(mem, R8, R9[32:0]), gamma_store32(Gamma_mem, R8, Gamma_R9); - assume {:captureState "%0000032e"} true; - call rely(); - load19, Gamma_load19 := memory_load32_le(mem, R8), (gamma_load32(Gamma_mem, R8) || L(mem, R8)); - R8, Gamma_R8 := zero_extend32_32(load19), Gamma_load19; - #4, Gamma_#4 := bvadd32(R8[32:0], 4294967295bv32), Gamma_R8; - VF, Gamma_VF := bvnot1(bvcomp33(sign_extend1_32(bvadd32(#4, 1bv32)), bvadd33(sign_extend1_32(R8[32:0]), 0bv33))), (Gamma_R8 && Gamma_#4); - CF, Gamma_CF := bvnot1(bvcomp33(zero_extend1_32(bvadd32(#4, 1bv32)), bvadd33(zero_extend1_32(R8[32:0]), 4294967296bv33))), (Gamma_R8 && Gamma_#4); - ZF, Gamma_ZF := bvcomp32(bvadd32(#4, 1bv32), 0bv32), Gamma_#4; - NF, Gamma_NF := bvadd32(#4, 1bv32)[32:31], Gamma_#4; - R8, Gamma_R8 := zero_extend32_32(bvadd32(#4, 1bv32)), Gamma_#4; - assert Gamma_ZF; - goto lmain_goto_l00000356, lmain_goto_l00000359; - lmain_goto_l00000359: - assume {:captureState "lmain_goto_l00000359"} true; - assume (bvnot1(bvcomp1(ZF, 1bv1)) == 0bv1); - R8, Gamma_R8 := 1bv64, true; - goto l00000359; - l00000359: - assume {:captureState "l00000359"} true; - goto l0000035c; - lmain_goto_l00000356: - assume {:captureState "lmain_goto_l00000356"} true; - assume (bvnot1(bvcomp1(ZF, 1bv1)) != 0bv1); - R8, Gamma_R8 := 0bv64, true; - goto l00000356; - l00000356: - assume {:captureState "l00000356"} true; - goto l0000035c; - l0000035c: - assume {:captureState "l0000035c"} true; - assert Gamma_R8; - goto l0000035c_goto_l00000364, l0000035c_goto_l00000398; - l0000035c_goto_l00000398: - assume {:captureState "l0000035c_goto_l00000398"} true; - assume (bvcomp1(R8[1:0], 1bv1) == 0bv1); - goto l00000398; - l00000398: - assume {:captureState "l00000398"} true; - goto l00000399; - l00000399: - assume {:captureState "l00000399"} true; - R8, Gamma_R8 := 3bv64, true; - R9, Gamma_R9 := 65536bv64, true; - call rely(); - load21, Gamma_load21 := memory_load64_le(mem, bvadd64(R9, 4048bv64)), (gamma_load64(Gamma_mem, bvadd64(R9, 4048bv64)) || L(mem, bvadd64(R9, 4048bv64))); - R9, Gamma_R9 := load21, Gamma_load21; - call rely(); - assert (L(mem, R9) ==> Gamma_R8); - mem, Gamma_mem := memory_store32_le(mem, R9, R8[32:0]), gamma_store32(Gamma_mem, R9, Gamma_R8); - assume {:captureState "%000003b3"} true; - goto l00000383; - l0000035c_goto_l00000364: - assume {:captureState "l0000035c_goto_l00000364"} true; - assume (bvcomp1(R8[1:0], 1bv1) != 0bv1); - R9, Gamma_R9 := 65536bv64, true; - call rely(); - load20, Gamma_load20 := memory_load64_le(mem, bvadd64(R9, 4048bv64)), (gamma_load64(Gamma_mem, bvadd64(R9, 4048bv64)) || L(mem, bvadd64(R9, 4048bv64))); - R9, Gamma_R9 := load20, Gamma_load20; - R8, Gamma_R8 := 2bv64, true; + assume {:captureState "%00000298"} true; call rely(); - assert (L(mem, R9) ==> Gamma_R8); - mem, Gamma_mem := memory_store32_le(mem, R9, R8[32:0]), gamma_store32(Gamma_mem, R9, Gamma_R8); - assume {:captureState "%00000380"} true; - goto l00000364; - l00000364: - assume {:captureState "l00000364"} true; - goto l00000383; - l00000383: - assume {:captureState "l00000383"} true; - load22, Gamma_load22 := memory_load32_le(stack, bvadd64(R31, 12bv64)), gamma_load32(Gamma_stack, bvadd64(R31, 12bv64)); - R0, Gamma_R0 := zero_extend32_32(load22), Gamma_load22; - R31, Gamma_R31 := bvadd64(R31, 16bv64), Gamma_R31; - goto main_1876_basil_return; - main_1876_basil_return: - assume {:captureState "main_1876_basil_return"} true; + assert (L(mem, R10) ==> Gamma_R11); + mem, Gamma_mem := memory_store32_le(mem, R10, R11[32:0]), gamma_store32(Gamma_mem, R10, Gamma_R11); + assume {:captureState "%0000029c"} true; + goto main_basil_return; + main_basil_return: + assume {:captureState "main_basil_return"} true; return; } diff --git a/src/test/correct/cjump/clang_pic/cjump.gts b/src/test/correct/cjump/clang_pic/cjump.gts deleted file mode 100644 index a57d484d2..000000000 Binary files a/src/test/correct/cjump/clang_pic/cjump.gts and /dev/null differ diff --git a/src/test/correct/cjump/clang_pic/cjump.md5sum b/src/test/correct/cjump/clang_pic/cjump.md5sum new file mode 100644 index 000000000..d11e7910f --- /dev/null +++ b/src/test/correct/cjump/clang_pic/cjump.md5sum @@ -0,0 +1,5 @@ +42e3bc713a163981ee4d9413ba7b0d0a correct/cjump/clang_pic/a.out +028eaf4911f3810d8ff96050501644bf correct/cjump/clang_pic/cjump.adt +69d90ad5e41c357b98a731490477344a correct/cjump/clang_pic/cjump.bir +0d9c8107a80a1dddd40e31a5faf90e87 correct/cjump/clang_pic/cjump.relf +0bfcef1ecafb7e1128353a65b00847c5 correct/cjump/clang_pic/cjump.gts diff --git a/src/test/correct/cjump/clang_pic/cjump.relf b/src/test/correct/cjump/clang_pic/cjump.relf deleted file mode 100644 index 8c7fda185..000000000 --- a/src/test/correct/cjump/clang_pic/cjump.relf +++ /dev/null @@ -1,126 +0,0 @@ - -Relocation section '.rela.dyn' at offset 0x460 contains 10 entries: - Offset Info Type Symbol's Value Symbol's Name + Addend -0000000000010db8 0000000000000403 R_AARCH64_RELATIVE 750 -0000000000010dc0 0000000000000403 R_AARCH64_RELATIVE 700 -0000000000010fc0 0000000000000403 R_AARCH64_RELATIVE 11034 -0000000000010fd0 0000000000000403 R_AARCH64_RELATIVE 11038 -0000000000010fd8 0000000000000403 R_AARCH64_RELATIVE 754 -0000000000011028 0000000000000403 R_AARCH64_RELATIVE 11028 -0000000000010fb0 0000000400000401 R_AARCH64_GLOB_DAT 0000000000000000 _ITM_deregisterTMCloneTable + 0 -0000000000010fb8 0000000500000401 R_AARCH64_GLOB_DAT 0000000000000000 __cxa_finalize@GLIBC_2.17 + 0 -0000000000010fc8 0000000600000401 R_AARCH64_GLOB_DAT 0000000000000000 __gmon_start__ + 0 -0000000000010fe0 0000000800000401 R_AARCH64_GLOB_DAT 0000000000000000 _ITM_registerTMCloneTable + 0 - -Relocation section '.rela.plt' at offset 0x550 contains 4 entries: - Offset Info Type Symbol's Value Symbol's Name + Addend -0000000000011000 0000000300000402 R_AARCH64_JUMP_SLOT 0000000000000000 __libc_start_main@GLIBC_2.34 + 0 -0000000000011008 0000000500000402 R_AARCH64_JUMP_SLOT 0000000000000000 __cxa_finalize@GLIBC_2.17 + 0 -0000000000011010 0000000600000402 R_AARCH64_JUMP_SLOT 0000000000000000 __gmon_start__ + 0 -0000000000011018 0000000700000402 R_AARCH64_JUMP_SLOT 0000000000000000 abort@GLIBC_2.17 + 0 - -Symbol table '.dynsym' contains 9 entries: - Num: Value Size Type Bind Vis Ndx Name - 0: 0000000000000000 0 NOTYPE LOCAL DEFAULT UND - 1: 00000000000005b0 0 SECTION LOCAL DEFAULT 11 .init - 2: 0000000000011020 0 SECTION LOCAL DEFAULT 23 .data - 3: 0000000000000000 0 FUNC GLOBAL DEFAULT UND __libc_start_main@GLIBC_2.34 (2) - 4: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_deregisterTMCloneTable - 5: 0000000000000000 0 FUNC WEAK DEFAULT UND __cxa_finalize@GLIBC_2.17 (3) - 6: 0000000000000000 0 NOTYPE WEAK DEFAULT UND __gmon_start__ - 7: 0000000000000000 0 FUNC GLOBAL DEFAULT UND abort@GLIBC_2.17 (3) - 8: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_registerTMCloneTable - -Symbol table '.symtab' contains 91 entries: - Num: Value Size Type Bind Vis Ndx Name - 0: 0000000000000000 0 NOTYPE LOCAL DEFAULT UND - 1: 0000000000000238 0 SECTION LOCAL DEFAULT 1 .interp - 2: 0000000000000254 0 SECTION LOCAL DEFAULT 2 .note.gnu.build-id - 3: 0000000000000278 0 SECTION LOCAL DEFAULT 3 .note.ABI-tag - 4: 0000000000000298 0 SECTION LOCAL DEFAULT 4 .gnu.hash - 5: 00000000000002b8 0 SECTION LOCAL DEFAULT 5 .dynsym - 6: 0000000000000390 0 SECTION LOCAL DEFAULT 6 .dynstr - 7: 000000000000041e 0 SECTION LOCAL DEFAULT 7 .gnu.version - 8: 0000000000000430 0 SECTION LOCAL DEFAULT 8 .gnu.version_r - 9: 0000000000000460 0 SECTION LOCAL DEFAULT 9 .rela.dyn - 10: 0000000000000550 0 SECTION LOCAL DEFAULT 10 .rela.plt - 11: 00000000000005b0 0 SECTION LOCAL DEFAULT 11 .init - 12: 00000000000005d0 0 SECTION LOCAL DEFAULT 12 .plt - 13: 0000000000000640 0 SECTION LOCAL DEFAULT 13 .text - 14: 00000000000007b4 0 SECTION LOCAL DEFAULT 14 .fini - 15: 00000000000007c8 0 SECTION LOCAL DEFAULT 15 .rodata - 16: 00000000000007cc 0 SECTION LOCAL DEFAULT 16 .eh_frame_hdr - 17: 0000000000000808 0 SECTION LOCAL DEFAULT 17 .eh_frame - 18: 0000000000010db8 0 SECTION LOCAL DEFAULT 18 .init_array - 19: 0000000000010dc0 0 SECTION LOCAL DEFAULT 19 .fini_array - 20: 0000000000010dc8 0 SECTION LOCAL DEFAULT 20 .dynamic - 21: 0000000000010fa8 0 SECTION LOCAL DEFAULT 21 .got - 22: 0000000000010fe8 0 SECTION LOCAL DEFAULT 22 .got.plt - 23: 0000000000011020 0 SECTION LOCAL DEFAULT 23 .data - 24: 0000000000011030 0 SECTION LOCAL DEFAULT 24 .bss - 25: 0000000000000000 0 SECTION LOCAL DEFAULT 25 .comment - 26: 0000000000000000 0 FILE LOCAL DEFAULT ABS Scrt1.o - 27: 0000000000000278 0 NOTYPE LOCAL DEFAULT 3 $d - 28: 0000000000000278 32 OBJECT LOCAL DEFAULT 3 __abi_tag - 29: 0000000000000640 0 NOTYPE LOCAL DEFAULT 13 $x - 30: 000000000000081c 0 NOTYPE LOCAL DEFAULT 17 $d - 31: 00000000000007c8 0 NOTYPE LOCAL DEFAULT 15 $d - 32: 0000000000000000 0 FILE LOCAL DEFAULT ABS crti.o - 33: 0000000000000674 0 NOTYPE LOCAL DEFAULT 13 $x - 34: 0000000000000674 20 FUNC LOCAL DEFAULT 13 call_weak_fn - 35: 00000000000005b0 0 NOTYPE LOCAL DEFAULT 11 $x - 36: 00000000000007b4 0 NOTYPE LOCAL DEFAULT 14 $x - 37: 0000000000000000 0 FILE LOCAL DEFAULT ABS crtn.o - 38: 00000000000005c0 0 NOTYPE LOCAL DEFAULT 11 $x - 39: 00000000000007c0 0 NOTYPE LOCAL DEFAULT 14 $x - 40: 0000000000000000 0 FILE LOCAL DEFAULT ABS crtstuff.c - 41: 0000000000000690 0 NOTYPE LOCAL DEFAULT 13 $x - 42: 0000000000000690 0 FUNC LOCAL DEFAULT 13 deregister_tm_clones - 43: 00000000000006c0 0 FUNC LOCAL DEFAULT 13 register_tm_clones - 44: 0000000000011028 0 NOTYPE LOCAL DEFAULT 23 $d - 45: 0000000000000700 0 FUNC LOCAL DEFAULT 13 __do_global_dtors_aux - 46: 0000000000011030 1 OBJECT LOCAL DEFAULT 24 completed.0 - 47: 0000000000010dc0 0 NOTYPE LOCAL DEFAULT 19 $d - 48: 0000000000010dc0 0 OBJECT LOCAL DEFAULT 19 __do_global_dtors_aux_fini_array_entry - 49: 0000000000000750 0 FUNC LOCAL DEFAULT 13 frame_dummy - 50: 0000000000010db8 0 NOTYPE LOCAL DEFAULT 18 $d - 51: 0000000000010db8 0 OBJECT LOCAL DEFAULT 18 __frame_dummy_init_array_entry - 52: 0000000000000830 0 NOTYPE LOCAL DEFAULT 17 $d - 53: 0000000000011030 0 NOTYPE LOCAL DEFAULT 24 $d - 54: 0000000000000000 0 FILE LOCAL DEFAULT ABS cjump.c - 55: 0000000000000754 0 NOTYPE LOCAL DEFAULT 13 $x.0 - 56: 0000000000011034 0 NOTYPE LOCAL DEFAULT 24 $d.1 - 57: 000000000000002a 0 NOTYPE LOCAL DEFAULT 25 $d.2 - 58: 0000000000000890 0 NOTYPE LOCAL DEFAULT 17 $d.3 - 59: 0000000000000000 0 FILE LOCAL DEFAULT ABS crtstuff.c - 60: 00000000000008bc 0 NOTYPE LOCAL DEFAULT 17 $d - 61: 00000000000008bc 0 OBJECT LOCAL DEFAULT 17 __FRAME_END__ - 62: 0000000000000000 0 FILE LOCAL DEFAULT ABS - 63: 0000000000010dc8 0 OBJECT LOCAL DEFAULT ABS _DYNAMIC - 64: 00000000000007cc 0 NOTYPE LOCAL DEFAULT 16 __GNU_EH_FRAME_HDR - 65: 0000000000010fa8 0 OBJECT LOCAL DEFAULT ABS _GLOBAL_OFFSET_TABLE_ - 66: 00000000000005d0 0 NOTYPE LOCAL DEFAULT 12 $x - 67: 0000000000000000 0 FUNC GLOBAL DEFAULT UND __libc_start_main@GLIBC_2.34 - 68: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_deregisterTMCloneTable - 69: 0000000000011020 0 NOTYPE WEAK DEFAULT 23 data_start - 70: 0000000000011030 0 NOTYPE GLOBAL DEFAULT 24 __bss_start__ - 71: 0000000000000000 0 FUNC WEAK DEFAULT UND __cxa_finalize@GLIBC_2.17 - 72: 0000000000011040 0 NOTYPE GLOBAL DEFAULT 24 _bss_end__ - 73: 0000000000011030 0 NOTYPE GLOBAL DEFAULT 23 _edata - 74: 0000000000011034 4 OBJECT GLOBAL DEFAULT 24 x - 75: 00000000000007b4 0 FUNC GLOBAL HIDDEN 14 _fini - 76: 0000000000011040 0 NOTYPE GLOBAL DEFAULT 24 __bss_end__ - 77: 0000000000011020 0 NOTYPE GLOBAL DEFAULT 23 __data_start - 78: 0000000000000000 0 NOTYPE WEAK DEFAULT UND __gmon_start__ - 79: 0000000000011028 0 OBJECT GLOBAL HIDDEN 23 __dso_handle - 80: 0000000000000000 0 FUNC GLOBAL DEFAULT UND abort@GLIBC_2.17 - 81: 00000000000007c8 4 OBJECT GLOBAL DEFAULT 15 _IO_stdin_used - 82: 0000000000011040 0 NOTYPE GLOBAL DEFAULT 24 _end - 83: 0000000000000640 52 FUNC GLOBAL DEFAULT 13 _start - 84: 0000000000011040 0 NOTYPE GLOBAL DEFAULT 24 __end__ - 85: 0000000000011038 4 OBJECT GLOBAL DEFAULT 24 y - 86: 0000000000011030 0 NOTYPE GLOBAL DEFAULT 24 __bss_start - 87: 0000000000000754 96 FUNC GLOBAL DEFAULT 13 main - 88: 0000000000011030 0 OBJECT GLOBAL HIDDEN 23 __TMC_END__ - 89: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_registerTMCloneTable - 90: 00000000000005b0 0 FUNC GLOBAL HIDDEN 11 _init diff --git a/src/test/correct/cjump/clang_pic/cjump_gtirb.expected b/src/test/correct/cjump/clang_pic/cjump_gtirb.expected index 0c6fcab6a..330085e2e 100644 --- a/src/test/correct/cjump/clang_pic/cjump_gtirb.expected +++ b/src/test/correct/cjump/clang_pic/cjump_gtirb.expected @@ -1,37 +1,24 @@ -var {:extern} CF: bv1; -var {:extern} Gamma_CF: bool; -var {:extern} Gamma_NF: bool; var {:extern} Gamma_R0: bool; -var {:extern} Gamma_R31: bool; +var {:extern} Gamma_R10: bool; +var {:extern} Gamma_R11: bool; var {:extern} Gamma_R8: bool; var {:extern} Gamma_R9: bool; -var {:extern} Gamma_VF: bool; -var {:extern} Gamma_ZF: bool; var {:extern} Gamma_mem: [bv64]bool; -var {:extern} Gamma_stack: [bv64]bool; -var {:extern} NF: bv1; var {:extern} R0: bv64; -var {:extern} R31: bv64; +var {:extern} R10: bv64; +var {:extern} R11: bv64; var {:extern} R8: bv64; var {:extern} R9: bv64; -var {:extern} VF: bv1; -var {:extern} ZF: bv1; var {:extern} mem: [bv64]bv8; -var {:extern} stack: [bv64]bv8; const {:extern} $x_addr: bv64; -axiom ($x_addr == 69684bv64); +axiom ($x_addr == 131092bv64); const {:extern} $y_addr: bv64; -axiom ($y_addr == 69688bv64); +axiom ($y_addr == 131096bv64); function {:extern} L(mem$in: [bv64]bv8, index: bv64) returns (bool) { false } -function {:extern} {:bvbuiltin "bvadd"} bvadd32(bv32, bv32) returns (bv32); -function {:extern} {:bvbuiltin "bvadd"} bvadd33(bv33, bv33) returns (bv33); function {:extern} {:bvbuiltin "bvadd"} bvadd64(bv64, bv64) returns (bv64); -function {:extern} {:bvbuiltin "bvcomp"} bvcomp32(bv32, bv32) returns (bv1); -function {:extern} {:bvbuiltin "bvcomp"} bvcomp33(bv33, bv33) returns (bv1); -function {:extern} {:bvbuiltin "bvnot"} bvnot1(bv1) returns (bv1); function {:extern} gamma_load32(gammaMap: [bv64]bool, index: bv64) returns (bool) { (gammaMap[bvadd64(index, 3bv64)] && (gammaMap[bvadd64(index, 2bv64)] && (gammaMap[bvadd64(index, 1bv64)] && gammaMap[index]))) } @@ -56,19 +43,17 @@ function {:extern} memory_store32_le(memory: [bv64]bv8, index: bv64, value: bv32 memory[index := value[8:0]][bvadd64(index, 1bv64) := value[16:8]][bvadd64(index, 2bv64) := value[24:16]][bvadd64(index, 3bv64) := value[32:24]] } -function {:extern} {:bvbuiltin "zero_extend 1"} zero_extend1_32(bv32) returns (bv33); -function {:extern} {:bvbuiltin "zero_extend 32"} zero_extend32_32(bv32) returns (bv64); procedure {:extern} rely(); modifies Gamma_mem, mem; ensures (Gamma_mem == old(Gamma_mem)); ensures (mem == old(mem)); - free ensures (memory_load32_le(mem, 1992bv64) == 131073bv32); - free ensures (memory_load64_le(mem, 69048bv64) == 1872bv64); - free ensures (memory_load64_le(mem, 69056bv64) == 1792bv64); - free ensures (memory_load64_le(mem, 69568bv64) == 69684bv64); - free ensures (memory_load64_le(mem, 69584bv64) == 69688bv64); - free ensures (memory_load64_le(mem, 69592bv64) == 1876bv64); - free ensures (memory_load64_le(mem, 69672bv64) == 69672bv64); + free ensures (memory_load32_le(mem, 2320bv64) == 131073bv32); + free ensures (memory_load64_le(mem, 130424bv64) == 2256bv64); + free ensures (memory_load64_le(mem, 130432bv64) == 2176bv64); + free ensures (memory_load64_le(mem, 131032bv64) == 131092bv64); + free ensures (memory_load64_le(mem, 131048bv64) == 131096bv64); + free ensures (memory_load64_le(mem, 131056bv64) == 2260bv64); + free ensures (memory_load64_le(mem, 131080bv64) == 131080bv64); procedure {:extern} rely_transitive(); modifies Gamma_mem, mem; @@ -86,123 +71,57 @@ procedure {:extern} rely_reflexive(); procedure {:extern} guarantee_reflexive(); modifies Gamma_mem, mem; -procedure main_1876(); - modifies CF, Gamma_CF, Gamma_NF, Gamma_R0, Gamma_R31, Gamma_R8, Gamma_R9, Gamma_VF, Gamma_ZF, Gamma_mem, Gamma_stack, NF, R0, R31, R8, R9, VF, ZF, mem, stack; +procedure main(); + modifies Gamma_R0, Gamma_R10, Gamma_R11, Gamma_R8, Gamma_R9, Gamma_mem, R0, R10, R11, R8, R9, mem; requires (gamma_load32(Gamma_mem, $x_addr) == true); requires (gamma_load32(Gamma_mem, $y_addr) == false); - free requires (memory_load64_le(mem, 69664bv64) == 0bv64); - free requires (memory_load64_le(mem, 69672bv64) == 69672bv64); - free requires (memory_load32_le(mem, 1992bv64) == 131073bv32); - free requires (memory_load64_le(mem, 69048bv64) == 1872bv64); - free requires (memory_load64_le(mem, 69056bv64) == 1792bv64); - free requires (memory_load64_le(mem, 69568bv64) == 69684bv64); - free requires (memory_load64_le(mem, 69584bv64) == 69688bv64); - free requires (memory_load64_le(mem, 69592bv64) == 1876bv64); - free requires (memory_load64_le(mem, 69672bv64) == 69672bv64); - free ensures (Gamma_R31 == old(Gamma_R31)); - free ensures (R31 == old(R31)); - free ensures (memory_load32_le(mem, 1992bv64) == 131073bv32); - free ensures (memory_load64_le(mem, 69048bv64) == 1872bv64); - free ensures (memory_load64_le(mem, 69056bv64) == 1792bv64); - free ensures (memory_load64_le(mem, 69568bv64) == 69684bv64); - free ensures (memory_load64_le(mem, 69584bv64) == 69688bv64); - free ensures (memory_load64_le(mem, 69592bv64) == 1876bv64); - free ensures (memory_load64_le(mem, 69672bv64) == 69672bv64); + free requires (memory_load64_le(mem, 131072bv64) == 0bv64); + free requires (memory_load64_le(mem, 131080bv64) == 131080bv64); + free requires (memory_load32_le(mem, 2320bv64) == 131073bv32); + free requires (memory_load64_le(mem, 130424bv64) == 2256bv64); + free requires (memory_load64_le(mem, 130432bv64) == 2176bv64); + free requires (memory_load64_le(mem, 131032bv64) == 131092bv64); + free requires (memory_load64_le(mem, 131048bv64) == 131096bv64); + free requires (memory_load64_le(mem, 131056bv64) == 2260bv64); + free requires (memory_load64_le(mem, 131080bv64) == 131080bv64); + free ensures (memory_load32_le(mem, 2320bv64) == 131073bv32); + free ensures (memory_load64_le(mem, 130424bv64) == 2256bv64); + free ensures (memory_load64_le(mem, 130432bv64) == 2176bv64); + free ensures (memory_load64_le(mem, 131032bv64) == 131092bv64); + free ensures (memory_load64_le(mem, 131048bv64) == 131096bv64); + free ensures (memory_load64_le(mem, 131056bv64) == 2260bv64); + free ensures (memory_load64_le(mem, 131080bv64) == 131080bv64); -implementation main_1876() +implementation main() { - var Cse0__5_4_7: bv32; - var Gamma_Cse0__5_4_7: bool; - var Gamma_load10: bool; - var Gamma_load6: bool; - var Gamma_load7: bool; - var Gamma_load8: bool; - var Gamma_load9: bool; - var load10: bv32; - var load6: bv64; - var load7: bv64; - var load8: bv32; - var load9: bv64; - main_1876__0__ryTsqXUlQyOWNh8Q~a~WOg: - assume {:captureState "main_1876__0__ryTsqXUlQyOWNh8Q~a~WOg"} true; - R31, Gamma_R31 := bvadd64(R31, 18446744073709551600bv64), Gamma_R31; - stack, Gamma_stack := memory_store32_le(stack, bvadd64(R31, 12bv64), 0bv32), gamma_store32(Gamma_stack, bvadd64(R31, 12bv64), true); - assume {:captureState "1880_0"} true; - R8, Gamma_R8 := 65536bv64, true; + var $load5: bv64; + var $load6: bv64; + var Gamma_$load5: bool; + var Gamma_$load6: bool; + $main$__0__$D9t2gNJrSmyMH3GAVRe3IQ: + assume {:captureState "$main$__0__$D9t2gNJrSmyMH3GAVRe3IQ"} true; + R8, Gamma_R8 := 126976bv64, true; + R10, Gamma_R10 := 126976bv64, true; + R0, Gamma_R0 := 0bv64, true; call rely(); - load9, Gamma_load9 := memory_load64_le(mem, bvadd64(R8, 4032bv64)), (gamma_load64(Gamma_mem, bvadd64(R8, 4032bv64)) || L(mem, bvadd64(R8, 4032bv64))); - R8, Gamma_R8 := load9, Gamma_load9; + $load5, Gamma_$load5 := memory_load64_le(mem, bvadd64(R8, 4056bv64)), (gamma_load64(Gamma_mem, bvadd64(R8, 4056bv64)) || L(mem, bvadd64(R8, 4056bv64))); + R8, Gamma_R8 := $load5, Gamma_$load5; + call rely(); + $load6, Gamma_$load6 := memory_load64_le(mem, bvadd64(R10, 4072bv64)), (gamma_load64(Gamma_mem, bvadd64(R10, 4072bv64)) || L(mem, bvadd64(R10, 4072bv64))); + R10, Gamma_R10 := $load6, Gamma_$load6; R9, Gamma_R9 := 1bv64, true; + R11, Gamma_R11 := 3bv64, true; call rely(); assert (L(mem, R8) ==> Gamma_R9); mem, Gamma_mem := memory_store32_le(mem, R8, R9[32:0]), gamma_store32(Gamma_mem, R8, Gamma_R9); - assume {:captureState "1896_0"} true; - call rely(); - load10, Gamma_load10 := memory_load32_le(mem, R8), (gamma_load32(Gamma_mem, R8) || L(mem, R8)); - R8, Gamma_R8 := zero_extend32_32(load10), Gamma_load10; - Cse0__5_4_7, Gamma_Cse0__5_4_7 := bvadd32(R8[32:0], 0bv32), Gamma_R8; - VF, Gamma_VF := bvnot1(bvcomp32(Cse0__5_4_7, Cse0__5_4_7)), Gamma_Cse0__5_4_7; - CF, Gamma_CF := bvnot1(bvcomp33(zero_extend1_32(Cse0__5_4_7), bvadd33(zero_extend1_32(R8[32:0]), 4294967296bv33))), (Gamma_R8 && Gamma_Cse0__5_4_7); - ZF, Gamma_ZF := bvcomp32(Cse0__5_4_7, 0bv32), Gamma_Cse0__5_4_7; - NF, Gamma_NF := Cse0__5_4_7[32:31], Gamma_Cse0__5_4_7; - R8, Gamma_R8 := zero_extend32_32(Cse0__5_4_7), Gamma_Cse0__5_4_7; - assert Gamma_ZF; - goto main_1876__0__ryTsqXUlQyOWNh8Q~a~WOg$__0, main_1876__0__ryTsqXUlQyOWNh8Q~a~WOg$__1; - main_1876__0__ryTsqXUlQyOWNh8Q~a~WOg$__1: - assume {:captureState "main_1876__0__ryTsqXUlQyOWNh8Q~a~WOg$__1"} true; - assume (!(!(ZF == 1bv1))); - R8, Gamma_R8 := 1bv64, true; - assert Gamma_R8; - goto main_1876__0__ryTsqXUlQyOWNh8Q~a~WOg_goto_main_1876__3__lxnj6lMASh2SOnwbX1sHQw, main_1876__0__ryTsqXUlQyOWNh8Q~a~WOg_goto_main_1876__1__5SdYH~vURDuHuVGzlLv_ow; - main_1876__0__ryTsqXUlQyOWNh8Q~a~WOg$__0: - assume {:captureState "main_1876__0__ryTsqXUlQyOWNh8Q~a~WOg$__0"} true; - assume (!(ZF == 1bv1)); - R8, Gamma_R8 := 0bv64, true; - assert Gamma_R8; - goto main_1876__0__ryTsqXUlQyOWNh8Q~a~WOg_goto_main_1876__3__lxnj6lMASh2SOnwbX1sHQw, main_1876__0__ryTsqXUlQyOWNh8Q~a~WOg_goto_main_1876__1__5SdYH~vURDuHuVGzlLv_ow; - main_1876__0__ryTsqXUlQyOWNh8Q~a~WOg_goto_main_1876__1__5SdYH~vURDuHuVGzlLv_ow: - assume {:captureState "main_1876__0__ryTsqXUlQyOWNh8Q~a~WOg_goto_main_1876__1__5SdYH~vURDuHuVGzlLv_ow"} true; - assume (!(R8[1:0] == 1bv1)); - goto main_1876__1__5SdYH~vURDuHuVGzlLv_ow; - main_1876__1__5SdYH~vURDuHuVGzlLv_ow: - assume {:captureState "main_1876__1__5SdYH~vURDuHuVGzlLv_ow"} true; - goto main_1876__2__mQXc6EwUQvuLoeh2D_PNVA; - main_1876__2__mQXc6EwUQvuLoeh2D_PNVA: - assume {:captureState "main_1876__2__mQXc6EwUQvuLoeh2D_PNVA"} true; - R8, Gamma_R8 := 3bv64, true; - R9, Gamma_R9 := 65536bv64, true; - call rely(); - load6, Gamma_load6 := memory_load64_le(mem, bvadd64(R9, 4048bv64)), (gamma_load64(Gamma_mem, bvadd64(R9, 4048bv64)) || L(mem, bvadd64(R9, 4048bv64))); - R9, Gamma_R9 := load6, Gamma_load6; - call rely(); - assert (L(mem, R9) ==> Gamma_R8); - mem, Gamma_mem := memory_store32_le(mem, R9, R8[32:0]), gamma_store32(Gamma_mem, R9, Gamma_R8); - assume {:captureState "1932_0"} true; - goto main_1876__4__7LOsLwE1R4Kli011Bz8Pqw; - main_1876__0__ryTsqXUlQyOWNh8Q~a~WOg_goto_main_1876__3__lxnj6lMASh2SOnwbX1sHQw: - assume {:captureState "main_1876__0__ryTsqXUlQyOWNh8Q~a~WOg_goto_main_1876__3__lxnj6lMASh2SOnwbX1sHQw"} true; - assume (R8[1:0] == 1bv1); - R9, Gamma_R9 := 65536bv64, true; - call rely(); - load7, Gamma_load7 := memory_load64_le(mem, bvadd64(R9, 4048bv64)), (gamma_load64(Gamma_mem, bvadd64(R9, 4048bv64)) || L(mem, bvadd64(R9, 4048bv64))); - R9, Gamma_R9 := load7, Gamma_load7; - R8, Gamma_R8 := 2bv64, true; + assume {:captureState "2288$0"} true; call rely(); - assert (L(mem, R9) ==> Gamma_R8); - mem, Gamma_mem := memory_store32_le(mem, R9, R8[32:0]), gamma_store32(Gamma_mem, R9, Gamma_R8); - assume {:captureState "1952_0"} true; - goto main_1876__3__lxnj6lMASh2SOnwbX1sHQw; - main_1876__3__lxnj6lMASh2SOnwbX1sHQw: - assume {:captureState "main_1876__3__lxnj6lMASh2SOnwbX1sHQw"} true; - goto main_1876__4__7LOsLwE1R4Kli011Bz8Pqw; - main_1876__4__7LOsLwE1R4Kli011Bz8Pqw: - assume {:captureState "main_1876__4__7LOsLwE1R4Kli011Bz8Pqw"} true; - load8, Gamma_load8 := memory_load32_le(stack, bvadd64(R31, 12bv64)), gamma_load32(Gamma_stack, bvadd64(R31, 12bv64)); - R0, Gamma_R0 := zero_extend32_32(load8), Gamma_load8; - R31, Gamma_R31 := bvadd64(R31, 16bv64), Gamma_R31; - goto main_1876_basil_return; - main_1876_basil_return: - assume {:captureState "main_1876_basil_return"} true; + assert (L(mem, R10) ==> Gamma_R11); + mem, Gamma_mem := memory_store32_le(mem, R10, R11[32:0]), gamma_store32(Gamma_mem, R10, Gamma_R11); + assume {:captureState "2292$0"} true; + goto main_basil_return; + main_basil_return: + assume {:captureState "main_basil_return"} true; return; } diff --git a/src/test/correct/cjump/gcc/cjump.adt b/src/test/correct/cjump/gcc/cjump.adt deleted file mode 100644 index 15b6503ae..000000000 --- a/src/test/correct/cjump/gcc/cjump.adt +++ /dev/null @@ -1,548 +0,0 @@ -Project(Attrs([Attr("filename","\"gcc/cjump.out\""), -Attr("image-specification","(declare abi (name str))\n(declare arch (name str))\n(declare base-address (addr int))\n(declare bias (off int))\n(declare bits (size int))\n(declare code-region (addr int) (size int) (off int))\n(declare code-start (addr int))\n(declare entry-point (addr int))\n(declare external-reference (addr int) (name str))\n(declare format (name str))\n(declare is-executable (flag bool))\n(declare is-little-endian (flag bool))\n(declare llvm:base-address (addr int))\n(declare llvm:code-entry (name str) (off int) (size int))\n(declare llvm:coff-import-library (name str))\n(declare llvm:coff-virtual-section-header (name str) (addr int) (size int))\n(declare llvm:elf-program-header (name str) (off int) (size int))\n(declare llvm:elf-program-header-flags (name str) (ld bool) (r bool) \n (w bool) (x bool))\n(declare llvm:elf-virtual-program-header (name str) (addr int) (size int))\n(declare llvm:entry-point (addr int))\n(declare llvm:macho-symbol (name str) (value int))\n(declare llvm:name-reference (at int) (name str))\n(declare llvm:relocation (at int) (addr int))\n(declare llvm:section-entry (name str) (addr int) (size int) (off int))\n(declare llvm:section-flags (name str) (r bool) (w bool) (x bool))\n(declare llvm:segment-command (name str) (off int) (size int))\n(declare llvm:segment-command-flags (name str) (r bool) (w bool) (x bool))\n(declare llvm:symbol-entry (name str) (addr int) (size int) (off int)\n (value int))\n(declare llvm:virtual-segment-command (name str) (addr int) (size int))\n(declare mapped (addr int) (size int) (off int))\n(declare named-region (addr int) (size int) (name str))\n(declare named-symbol (addr int) (name str))\n(declare require (name str))\n(declare section (addr int) (size int))\n(declare segment (addr int) (size int) (r bool) (w bool) (x bool))\n(declare subarch (name str))\n(declare symbol-chunk (addr int) (size int) (root int))\n(declare symbol-value (addr int) (value int))\n(declare system (name str))\n(declare vendor (name str))\n\n(abi unknown)\n(arch aarch64)\n(base-address 0)\n(bias 0)\n(bits 64)\n(code-region 1892 20 1892)\n(code-region 1536 356 1536)\n(code-region 1440 96 1440)\n(code-region 1408 24 1408)\n(code-start 1588)\n(code-start 1536)\n(code-start 1812)\n(entry-point 1536)\n(external-reference 69592 _ITM_deregisterTMCloneTable)\n(external-reference 69600 __cxa_finalize)\n(external-reference 69608 __gmon_start__)\n(external-reference 69624 _ITM_registerTMCloneTable)\n(external-reference 69552 __libc_start_main)\n(external-reference 69560 __cxa_finalize)\n(external-reference 69568 __gmon_start__)\n(external-reference 69576 abort)\n(format elf)\n(is-executable true)\n(is-little-endian true)\n(llvm:base-address 0)\n(llvm:code-entry abort 0 0)\n(llvm:code-entry __cxa_finalize 0 0)\n(llvm:code-entry __libc_start_main 0 0)\n(llvm:code-entry _init 1408 0)\n(llvm:code-entry main 1812 80)\n(llvm:code-entry _start 1536 52)\n(llvm:code-entry abort@GLIBC_2.17 0 0)\n(llvm:code-entry _fini 1892 0)\n(llvm:code-entry __cxa_finalize@GLIBC_2.17 0 0)\n(llvm:code-entry __libc_start_main@GLIBC_2.34 0 0)\n(llvm:code-entry frame_dummy 1808 0)\n(llvm:code-entry __do_global_dtors_aux 1728 0)\n(llvm:code-entry register_tm_clones 1664 0)\n(llvm:code-entry deregister_tm_clones 1616 0)\n(llvm:code-entry call_weak_fn 1588 20)\n(llvm:code-entry .fini 1892 20)\n(llvm:code-entry .text 1536 356)\n(llvm:code-entry .plt 1440 96)\n(llvm:code-entry .init 1408 24)\n(llvm:elf-program-header 08 3480 616)\n(llvm:elf-program-header 07 0 0)\n(llvm:elf-program-header 06 1916 60)\n(llvm:elf-program-header 05 596 68)\n(llvm:elf-program-header 04 3496 496)\n(llvm:elf-program-header 03 3480 632)\n(llvm:elf-program-header 02 0 2136)\n(llvm:elf-program-header 01 568 27)\n(llvm:elf-program-header 00 64 504)\n(llvm:elf-program-header-flags 08 false true false false)\n(llvm:elf-program-header-flags 07 false true true false)\n(llvm:elf-program-header-flags 06 false true false false)\n(llvm:elf-program-header-flags 05 false true false false)\n(llvm:elf-program-header-flags 04 false true true false)\n(llvm:elf-program-header-flags 03 true true true false)\n(llvm:elf-program-header-flags 02 true true false true)\n(llvm:elf-program-header-flags 01 false true false false)\n(llvm:elf-program-header-flags 00 false true false false)\n(llvm:elf-virtual-program-header 08 69016 616)\n(llvm:elf-virtual-program-header 07 0 0)\n(llvm:elf-virtual-program-header 06 1916 60)\n(llvm:elf-virtual-program-header 05 596 68)\n(llvm:elf-virtual-program-header 04 69032 496)\n(llvm:elf-virtual-program-header 03 69016 648)\n(llvm:elf-virtual-program-header 02 0 2136)\n(llvm:elf-virtual-program-header 01 568 27)\n(llvm:elf-virtual-program-header 00 64 504)\n(llvm:entry-point 1536)\n(llvm:name-reference 69576 abort)\n(llvm:name-reference 69568 __gmon_start__)\n(llvm:name-reference 69560 __cxa_finalize)\n(llvm:name-reference 69552 __libc_start_main)\n(llvm:name-reference 69624 _ITM_registerTMCloneTable)\n(llvm:name-reference 69608 __gmon_start__)\n(llvm:name-reference 69600 __cxa_finalize)\n(llvm:name-reference 69592 _ITM_deregisterTMCloneTable)\n(llvm:section-entry .shstrtab 0 250 6837)\n(llvm:section-entry .strtab 0 541 6296)\n(llvm:section-entry .symtab 0 2136 4160)\n(llvm:section-entry .comment 0 43 4112)\n(llvm:section-entry .bss 69648 16 4112)\n(llvm:section-entry .data 69632 16 4096)\n(llvm:section-entry .got 69528 104 3992)\n(llvm:section-entry .dynamic 69032 496 3496)\n(llvm:section-entry .fini_array 69024 8 3488)\n(llvm:section-entry .init_array 69016 8 3480)\n(llvm:section-entry .eh_frame 1976 160 1976)\n(llvm:section-entry .eh_frame_hdr 1916 60 1916)\n(llvm:section-entry .rodata 1912 4 1912)\n(llvm:section-entry .fini 1892 20 1892)\n(llvm:section-entry .text 1536 356 1536)\n(llvm:section-entry .plt 1440 96 1440)\n(llvm:section-entry .init 1408 24 1408)\n(llvm:section-entry .rela.plt 1312 96 1312)\n(llvm:section-entry .rela.dyn 1120 192 1120)\n(llvm:section-entry .gnu.version_r 1072 48 1072)\n(llvm:section-entry .gnu.version 1054 18 1054)\n(llvm:section-entry .dynstr 912 141 912)\n(llvm:section-entry .dynsym 696 216 696)\n(llvm:section-entry .gnu.hash 664 28 664)\n(llvm:section-entry .note.ABI-tag 632 32 632)\n(llvm:section-entry .note.gnu.build-id 596 36 596)\n(llvm:section-entry .interp 568 27 568)\n(llvm:section-flags .shstrtab true false false)\n(llvm:section-flags .strtab true false false)\n(llvm:section-flags .symtab true false false)\n(llvm:section-flags .comment true false false)\n(llvm:section-flags .bss true true false)\n(llvm:section-flags .data true true false)\n(llvm:section-flags .got true true false)\n(llvm:section-flags .dynamic true true false)\n(llvm:section-flags .fini_array true true false)\n(llvm:section-flags .init_array true true false)\n(llvm:section-flags .eh_frame true false false)\n(llvm:section-flags .eh_frame_hdr true false false)\n(llvm:section-flags .rodata true false false)\n(llvm:section-flags .fini true false true)\n(llvm:section-flags .text true false true)\n(llvm:section-flags .plt true false true)\n(llvm:section-flags .init true false true)\n(llvm:section-flags .rela.plt true false false)\n(llvm:section-flags .rela.dyn true false false)\n(llvm:section-flags .gnu.version_r true false false)\n(llvm:section-flags .gnu.version true false false)\n(llvm:section-flags .dynstr true false false)\n(llvm:section-flags .dynsym true false false)\n(llvm:section-flags .gnu.hash true false false)\n(llvm:section-flags .note.ABI-tag true false false)\n(llvm:section-flags .note.gnu.build-id true false false)\n(llvm:section-flags .interp true false false)\n(llvm:symbol-entry abort 0 0 0 0)\n(llvm:symbol-entry __cxa_finalize 0 0 0 0)\n(llvm:symbol-entry __libc_start_main 0 0 0 0)\n(llvm:symbol-entry _init 1408 0 1408 1408)\n(llvm:symbol-entry main 1812 80 1812 1812)\n(llvm:symbol-entry _start 1536 52 1536 1536)\n(llvm:symbol-entry abort@GLIBC_2.17 0 0 0 0)\n(llvm:symbol-entry _fini 1892 0 1892 1892)\n(llvm:symbol-entry __cxa_finalize@GLIBC_2.17 0 0 0 0)\n(llvm:symbol-entry __libc_start_main@GLIBC_2.34 0 0 0 0)\n(llvm:symbol-entry frame_dummy 1808 0 1808 1808)\n(llvm:symbol-entry __do_global_dtors_aux 1728 0 1728 1728)\n(llvm:symbol-entry register_tm_clones 1664 0 1664 1664)\n(llvm:symbol-entry deregister_tm_clones 1616 0 1616 1616)\n(llvm:symbol-entry call_weak_fn 1588 20 1588 1588)\n(mapped 0 2136 0)\n(mapped 69016 632 3480)\n(named-region 0 2136 02)\n(named-region 69016 648 03)\n(named-region 568 27 .interp)\n(named-region 596 36 .note.gnu.build-id)\n(named-region 632 32 .note.ABI-tag)\n(named-region 664 28 .gnu.hash)\n(named-region 696 216 .dynsym)\n(named-region 912 141 .dynstr)\n(named-region 1054 18 .gnu.version)\n(named-region 1072 48 .gnu.version_r)\n(named-region 1120 192 .rela.dyn)\n(named-region 1312 96 .rela.plt)\n(named-region 1408 24 .init)\n(named-region 1440 96 .plt)\n(named-region 1536 356 .text)\n(named-region 1892 20 .fini)\n(named-region 1912 4 .rodata)\n(named-region 1916 60 .eh_frame_hdr)\n(named-region 1976 160 .eh_frame)\n(named-region 69016 8 .init_array)\n(named-region 69024 8 .fini_array)\n(named-region 69032 496 .dynamic)\n(named-region 69528 104 .got)\n(named-region 69632 16 .data)\n(named-region 69648 16 .bss)\n(named-region 0 43 .comment)\n(named-region 0 2136 .symtab)\n(named-region 0 541 .strtab)\n(named-region 0 250 .shstrtab)\n(named-symbol 1588 call_weak_fn)\n(named-symbol 1616 deregister_tm_clones)\n(named-symbol 1664 register_tm_clones)\n(named-symbol 1728 __do_global_dtors_aux)\n(named-symbol 1808 frame_dummy)\n(named-symbol 0 __libc_start_main@GLIBC_2.34)\n(named-symbol 0 __cxa_finalize@GLIBC_2.17)\n(named-symbol 1892 _fini)\n(named-symbol 0 abort@GLIBC_2.17)\n(named-symbol 1536 _start)\n(named-symbol 1812 main)\n(named-symbol 1408 _init)\n(named-symbol 0 __libc_start_main)\n(named-symbol 0 __cxa_finalize)\n(named-symbol 0 abort)\n(require libc.so.6)\n(section 568 27)\n(section 596 36)\n(section 632 32)\n(section 664 28)\n(section 696 216)\n(section 912 141)\n(section 1054 18)\n(section 1072 48)\n(section 1120 192)\n(section 1312 96)\n(section 1408 24)\n(section 1440 96)\n(section 1536 356)\n(section 1892 20)\n(section 1912 4)\n(section 1916 60)\n(section 1976 160)\n(section 69016 8)\n(section 69024 8)\n(section 69032 496)\n(section 69528 104)\n(section 69632 16)\n(section 69648 16)\n(section 0 43)\n(section 0 2136)\n(section 0 541)\n(section 0 250)\n(segment 0 2136 true false true)\n(segment 69016 648 true true false)\n(subarch v8)\n(symbol-chunk 1588 20 1588)\n(symbol-chunk 1536 52 1536)\n(symbol-chunk 1812 80 1812)\n(symbol-value 1588 1588)\n(symbol-value 1616 1616)\n(symbol-value 1664 1664)\n(symbol-value 1728 1728)\n(symbol-value 1808 1808)\n(symbol-value 1892 1892)\n(symbol-value 1536 1536)\n(symbol-value 1812 1812)\n(symbol-value 1408 1408)\n(symbol-value 0 0)\n(system \"\")\n(vendor \"\")\n"), -Attr("abi-name","\"aarch64-linux-gnu-elf\"")]), -Sections([Section(".shstrtab", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x00\x06\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xb0\x1b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x38\x00\x09\x00\x40\x00\x1c\x00\x1b\x00\x06\x00\x00\x00\x04\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x04\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x58\x08\x00\x00\x00\x00\x00\x00\x58\x08\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x01\x00\x00\x00\x06\x00\x00\x00\x98\x0d\x00\x00\x00\x00\x00\x00\x98\x0d"), -Section(".strtab", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x00\x06\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xb0\x1b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x38\x00\x09\x00\x40\x00\x1c\x00\x1b\x00\x06\x00\x00\x00\x04\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x04\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x58\x08\x00\x00\x00\x00\x00\x00\x58\x08\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x01\x00\x00\x00\x06\x00\x00\x00\x98\x0d\x00\x00\x00\x00\x00\x00\x98\x0d\x01\x00\x00\x00\x00\x00\x98\x0d\x01\x00\x00\x00\x00\x00\x78\x02\x00\x00\x00\x00\x00\x00\x88\x02\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x02\x00\x00\x00\x06\x00\x00\x00\xa8\x0d\x00\x00\x00\x00\x00\x00\xa8\x0d\x01\x00\x00\x00\x00\x00\xa8\x0d\x01\x00\x00\x00\x00\x00\xf0\x01\x00\x00\x00\x00\x00\x00\xf0\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x04\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x50\xe5\x74\x64\x04\x00\x00\x00\x7c\x07\x00\x00\x00\x00\x00\x00\x7c\x07\x00\x00\x00\x00\x00\x00\x7c\x07\x00\x00\x00\x00\x00\x00\x3c\x00\x00\x00\x00\x00\x00\x00\x3c\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x51\xe5\x74\x64\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x52\xe5\x74\x64\x04\x00\x00\x00\x98\x0d\x00\x00\x00\x00\x00\x00\x98\x0d\x01\x00\x00\x00\x00\x00\x98\x0d\x01\x00\x00"), -Section(".symtab", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x00\x06\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xb0\x1b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x38\x00\x09\x00\x40\x00\x1c\x00\x1b\x00\x06\x00\x00\x00\x04\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x04\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x58\x08\x00\x00\x00\x00\x00\x00\x58\x08\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x01\x00\x00\x00\x06\x00\x00\x00\x98\x0d\x00\x00\x00\x00\x00\x00\x98\x0d\x01\x00\x00\x00\x00\x00\x98\x0d\x01\x00\x00\x00\x00\x00\x78\x02\x00\x00\x00\x00\x00\x00\x88\x02\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x02\x00\x00\x00\x06\x00\x00\x00\xa8\x0d\x00\x00\x00\x00\x00\x00\xa8\x0d\x01\x00\x00\x00\x00\x00\xa8\x0d\x01\x00\x00\x00\x00\x00\xf0\x01\x00\x00\x00\x00\x00\x00\xf0\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x04\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x50\xe5\x74\x64\x04\x00\x00\x00\x7c\x07\x00\x00\x00\x00\x00\x00\x7c\x07\x00\x00\x00\x00\x00\x00\x7c\x07\x00\x00\x00\x00\x00\x00\x3c\x00\x00\x00\x00\x00\x00\x00\x3c\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x51\xe5\x74\x64\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x52\xe5\x74\x64\x04\x00\x00\x00\x98\x0d\x00\x00\x00\x00\x00\x00\x98\x0d\x01\x00\x00\x00\x00\x00\x98\x0d\x01\x00\x00\x00\x00\x00\x68\x02\x00\x00\x00\x00\x00\x00\x68\x02\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x2f\x6c\x69\x62\x2f\x6c\x64\x2d\x6c\x69\x6e\x75\x78\x2d\x61\x61\x72\x63\x68\x36\x34\x2e\x73\x6f\x2e\x31\x00\x00\x04\x00\x00\x00\x14\x00\x00\x00\x03\x00\x00\x00\x47\x4e\x55\x00\x74\xfa\x0c\x1a\xcf\x41\x4f\x98\xdc\x27\x44\x2f\x9d\x01\x6f\x2f\x54\xaf\xb4\xdc\x04\x00\x00\x00\x10\x00\x00\x00\x01\x00\x00\x00\x47\x4e\x55\x00\x00\x00\x00\x00\x03\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x01\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x0b\x00\x80\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x16\x00\x00\x10\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x48\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x22\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x22\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x73\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5f\x5f\x63\x78\x61\x5f\x66\x69\x6e\x61\x6c\x69\x7a\x65\x00\x5f\x5f\x6c\x69\x62\x63\x5f\x73\x74\x61\x72\x74\x5f\x6d\x61\x69\x6e\x00\x61\x62\x6f\x72\x74\x00\x6c\x69\x62\x63\x2e\x73\x6f\x2e\x36\x00\x47\x4c\x49\x42\x43\x5f\x32\x2e\x31\x37\x00\x47\x4c\x49\x42\x43\x5f\x32\x2e\x33\x34\x00\x5f\x49\x54\x4d\x5f\x64\x65\x72\x65\x67\x69\x73\x74\x65\x72\x54\x4d\x43\x6c\x6f\x6e\x65\x54\x61\x62\x6c\x65\x00\x5f\x5f\x67\x6d\x6f\x6e\x5f\x73\x74\x61\x72\x74\x5f\x5f\x00\x5f\x49\x54\x4d\x5f\x72\x65\x67\x69\x73\x74\x65\x72\x54\x4d\x43\x6c\x6f\x6e\x65\x54\x61\x62\x6c\x65\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x01\x00\x03\x00\x01\x00\x03\x00\x01\x00\x01\x00\x02\x00\x28\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x97\x91\x96\x06\x00\x00\x03\x00\x32\x00\x00\x00\x10\x00\x00\x00\xb4\x91\x96\x06\x00\x00\x02\x00\x3d\x00\x00\x00\x00\x00\x00\x00\x98\x0d\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x10\x07\x00\x00\x00\x00\x00\x00\xa0\x0d\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\xc0\x06\x00\x00\x00\x00\x00\x00\xf0\x0f\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x14\x07\x00\x00\x00\x00\x00\x00\x08\x10\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x08\x10\x01\x00\x00\x00\x00\x00\xd8\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe0\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe8\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xf8\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xb0\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xb8\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xc0\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xc8\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1f\x20\x03\xd5\xfd\x7b\xbf\xa9\xfd\x03\x00\x91\x2a\x00\x00\x94\xfd\x7b\xc1\xa8\xc0\x03\x5f\xd6\x00\x00\x00\x00\x00\x00\x00\x00\xf0\x7b\xbf\xa9\x90\x00\x00\x90\x11\xd6\x47\xf9\x10\xa2\x3e\x91\x20\x02\x1f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x90\x00\x00\x90\x11\xda\x47\xf9\x10\xc2\x3e\x91\x20\x02\x1f\xd6\x90\x00\x00\x90\x11\xde\x47\xf9\x10\xe2\x3e\x91\x20\x02\x1f\xd6\x90\x00\x00\x90\x11\xe2\x47\xf9\x10\x02\x3f\x91\x20\x02\x1f\xd6\x90\x00\x00\x90\x11\xe6\x47\xf9\x10\x22\x3f\x91\x20\x02\x1f\xd6\x1f\x20\x03\xd5\x1d\x00\x80\xd2\x1e\x00\x80\xd2\xe5\x03\x00\xaa\xe1\x03\x40\xf9\xe2\x23\x00\x91\xe6\x03\x00\x91\x80\x00\x00\x90\x00\xf8\x47\xf9\x03\x00\x80\xd2\x04\x00\x80\xd2\xe5\xff\xff\x97\xf0\xff\xff\x97\x80\x00\x00\x90\x00\xf4\x47\xf9\x40\x00\x00\xb4\xe8\xff\xff\x17\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x80\x00\x00\xb0\x00\x40\x00\x91\x81\x00\x00\xb0\x21\x40\x00\x91\x3f\x00\x00\xeb\xc0\x00\x00\x54\x81\x00\x00\x90\x21\xec\x47\xf9\x61\x00\x00\xb4\xf0\x03\x01\xaa\x00\x02\x1f\xd6\xc0\x03\x5f\xd6\x80\x00\x00\xb0\x00\x40\x00\x91\x81\x00\x00\xb0\x21\x40\x00\x91\x21\x00\x00\xcb\x22\xfc\x7f\xd3\x41\x0c\x81\x8b\x21\xfc\x41\x93\xc1\x00\x00\xb4\x82\x00\x00\x90\x42\xfc\x47\xf9\x62\x00\x00\xb4\xf0\x03\x02\xaa\x00\x02\x1f\xd6\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\xfd\x7b\xbe\xa9\xfd\x03\x00\x91\xf3\x0b\x00\xf9\x93\x00\x00\xb0\x60\x42\x40\x39\x40\x01\x00\x35\x80\x00\x00\x90\x00\xf0\x47\xf9\x80\x00\x00\xb4\x80\x00\x00\xb0\x00\x04\x40\xf9\xb9\xff\xff\x97\xd8\xff\xff\x97\x20\x00\x80\x52\x60\x42\x00\x39\xf3\x0b\x40\xf9\xfd\x7b\xc2\xa8\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\xdc\xff\xff\x17\x80\x00\x00\xb0\x00\x50\x00\x91\x21\x00\x80\x52\x01\x00\x00\xb9\x80\x00\x00\xb0\x00\x50\x00\x91\x00\x00\x40\xb9\x1f\x00\x00\x71\xc0\x00\x00\x54\x80\x00\x00\xb0\x00\x60\x00\x91\x61\x00\x80\x52\x01\x00\x00\xb9\x05\x00\x00\x14\x80\x00\x00\xb0\x00\x60\x00\x91\x41\x00\x80\x52\x01\x00\x00\xb9\x00\x00\x80\x52\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\xfd\x7b\xbf\xa9\xfd\x03\x00\x91\xfd\x7b\xc1\xa8\xc0\x03\x5f\xd6\x01\x00\x02\x00\x01\x1b\x03\x3b\x38\x00\x00\x00\x06\x00\x00\x00\x84\xfe\xff\xff\x50\x00\x00\x00\xd4\xfe\xff\xff\x64\x00\x00\x00\x04\xff\xff\xff\x78\x00\x00\x00\x44\xff\xff\xff\x8c\x00\x00\x00\x94\xff\xff\xff\xb0\x00\x00\x00\x98\xff\xff\xff\xc4\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x01\x7a\x52\x00\x04\x78\x1e\x01\x1b\x0c\x1f\x00\x10\x00\x00\x00\x18\x00\x00\x00\x2c\xfe\xff\xff\x34\x00\x00\x00\x00\x41\x07\x1e\x10\x00\x00\x00\x2c\x00\x00\x00\x68\xfe\xff\xff\x30\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x40\x00\x00\x00\x84\xfe\xff\xff\x3c\x00\x00\x00\x00\x00\x00\x00\x20\x00\x00\x00\x54\x00\x00\x00\xb0\xfe\xff\xff\x48\x00\x00\x00\x00\x41\x0e\x20\x9d\x04\x9e\x03\x42\x93\x02\x4e\xde\xdd\xd3\x0e\x00\x00\x00\x00\x10\x00\x00\x00\x78\x00\x00\x00\xdc\xfe\xff\xff\x04\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x8c\x00\x00\x00\xcc\xfe\xff\xff\x50\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section("02", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x00\x06\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xb0\x1b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x38\x00\x09\x00\x40\x00\x1c\x00\x1b\x00\x06\x00\x00\x00\x04\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x04\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x58\x08\x00\x00\x00\x00\x00\x00\x58\x08\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x01\x00\x00\x00\x06\x00\x00\x00\x98\x0d\x00\x00\x00\x00\x00\x00\x98\x0d\x01\x00\x00\x00\x00\x00\x98\x0d\x01\x00\x00\x00\x00\x00\x78\x02\x00\x00\x00\x00\x00\x00\x88\x02\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x02\x00\x00\x00\x06\x00\x00\x00\xa8\x0d\x00\x00\x00\x00\x00\x00\xa8\x0d\x01\x00\x00\x00\x00\x00\xa8\x0d\x01\x00\x00\x00\x00\x00\xf0\x01\x00\x00\x00\x00\x00\x00\xf0\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x04\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x50\xe5\x74\x64\x04\x00\x00\x00\x7c\x07\x00\x00\x00\x00\x00\x00\x7c\x07\x00\x00\x00\x00\x00\x00\x7c\x07\x00\x00\x00\x00\x00\x00\x3c\x00\x00\x00\x00\x00\x00\x00\x3c\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x51\xe5\x74\x64\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x52\xe5\x74\x64\x04\x00\x00\x00\x98\x0d\x00\x00\x00\x00\x00\x00\x98\x0d\x01\x00\x00\x00\x00\x00\x98\x0d\x01\x00\x00\x00\x00\x00\x68\x02\x00\x00\x00\x00\x00\x00\x68\x02\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x2f\x6c\x69\x62\x2f\x6c\x64\x2d\x6c\x69\x6e\x75\x78\x2d\x61\x61\x72\x63\x68\x36\x34\x2e\x73\x6f\x2e\x31\x00\x00\x04\x00\x00\x00\x14\x00\x00\x00\x03\x00\x00\x00\x47\x4e\x55\x00\x74\xfa\x0c\x1a\xcf\x41\x4f\x98\xdc\x27\x44\x2f\x9d\x01\x6f\x2f\x54\xaf\xb4\xdc\x04\x00\x00\x00\x10\x00\x00\x00\x01\x00\x00\x00\x47\x4e\x55\x00\x00\x00\x00\x00\x03\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x01\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x0b\x00\x80\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x16\x00\x00\x10\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x48\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x22\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x22\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x73\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5f\x5f\x63\x78\x61\x5f\x66\x69\x6e\x61\x6c\x69\x7a\x65\x00\x5f\x5f\x6c\x69\x62\x63\x5f\x73\x74\x61\x72\x74\x5f\x6d\x61\x69\x6e\x00\x61\x62\x6f\x72\x74\x00\x6c\x69\x62\x63\x2e\x73\x6f\x2e\x36\x00\x47\x4c\x49\x42\x43\x5f\x32\x2e\x31\x37\x00\x47\x4c\x49\x42\x43\x5f\x32\x2e\x33\x34\x00\x5f\x49\x54\x4d\x5f\x64\x65\x72\x65\x67\x69\x73\x74\x65\x72\x54\x4d\x43\x6c\x6f\x6e\x65\x54\x61\x62\x6c\x65\x00\x5f\x5f\x67\x6d\x6f\x6e\x5f\x73\x74\x61\x72\x74\x5f\x5f\x00\x5f\x49\x54\x4d\x5f\x72\x65\x67\x69\x73\x74\x65\x72\x54\x4d\x43\x6c\x6f\x6e\x65\x54\x61\x62\x6c\x65\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x01\x00\x03\x00\x01\x00\x03\x00\x01\x00\x01\x00\x02\x00\x28\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x97\x91\x96\x06\x00\x00\x03\x00\x32\x00\x00\x00\x10\x00\x00\x00\xb4\x91\x96\x06\x00\x00\x02\x00\x3d\x00\x00\x00\x00\x00\x00\x00\x98\x0d\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x10\x07\x00\x00\x00\x00\x00\x00\xa0\x0d\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\xc0\x06\x00\x00\x00\x00\x00\x00\xf0\x0f\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x14\x07\x00\x00\x00\x00\x00\x00\x08\x10\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x08\x10\x01\x00\x00\x00\x00\x00\xd8\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe0\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe8\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xf8\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xb0\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xb8\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xc0\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xc8\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1f\x20\x03\xd5\xfd\x7b\xbf\xa9\xfd\x03\x00\x91\x2a\x00\x00\x94\xfd\x7b\xc1\xa8\xc0\x03\x5f\xd6\x00\x00\x00\x00\x00\x00\x00\x00\xf0\x7b\xbf\xa9\x90\x00\x00\x90\x11\xd6\x47\xf9\x10\xa2\x3e\x91\x20\x02\x1f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x90\x00\x00\x90\x11\xda\x47\xf9\x10\xc2\x3e\x91\x20\x02\x1f\xd6\x90\x00\x00\x90\x11\xde\x47\xf9\x10\xe2\x3e\x91\x20\x02\x1f\xd6\x90\x00\x00\x90\x11\xe2\x47\xf9\x10\x02\x3f\x91\x20\x02\x1f\xd6\x90\x00\x00\x90\x11\xe6\x47\xf9\x10\x22\x3f\x91\x20\x02\x1f\xd6\x1f\x20\x03\xd5\x1d\x00\x80\xd2\x1e\x00\x80\xd2\xe5\x03\x00\xaa\xe1\x03\x40\xf9\xe2\x23\x00\x91\xe6\x03\x00\x91\x80\x00\x00\x90\x00\xf8\x47\xf9\x03\x00\x80\xd2\x04\x00\x80\xd2\xe5\xff\xff\x97\xf0\xff\xff\x97\x80\x00\x00\x90\x00\xf4\x47\xf9\x40\x00\x00\xb4\xe8\xff\xff\x17\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x80\x00\x00\xb0\x00\x40\x00\x91\x81\x00\x00\xb0\x21\x40\x00\x91\x3f\x00\x00\xeb\xc0\x00\x00\x54\x81\x00\x00\x90\x21\xec\x47\xf9\x61\x00\x00\xb4\xf0\x03\x01\xaa\x00\x02\x1f\xd6\xc0\x03\x5f\xd6\x80\x00\x00\xb0\x00\x40\x00\x91\x81\x00\x00\xb0\x21\x40\x00\x91\x21\x00\x00\xcb\x22\xfc\x7f\xd3\x41\x0c\x81\x8b\x21\xfc\x41\x93\xc1\x00\x00\xb4\x82\x00\x00\x90\x42\xfc\x47\xf9\x62\x00\x00\xb4\xf0\x03\x02\xaa\x00\x02\x1f\xd6\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\xfd\x7b\xbe\xa9\xfd\x03\x00\x91\xf3\x0b\x00\xf9\x93\x00\x00\xb0\x60\x42\x40\x39\x40\x01\x00\x35\x80\x00\x00\x90\x00\xf0\x47\xf9\x80\x00\x00\xb4\x80\x00\x00\xb0\x00\x04\x40\xf9\xb9\xff\xff\x97\xd8\xff\xff\x97\x20\x00\x80\x52\x60\x42\x00\x39\xf3\x0b\x40\xf9\xfd\x7b\xc2\xa8\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\xdc\xff\xff\x17\x80\x00\x00\xb0\x00\x50\x00\x91\x21\x00\x80\x52\x01\x00\x00\xb9\x80\x00\x00\xb0\x00\x50\x00\x91\x00\x00\x40\xb9\x1f\x00\x00\x71\xc0\x00\x00\x54\x80\x00\x00\xb0\x00\x60\x00\x91\x61\x00\x80\x52\x01\x00\x00\xb9\x05\x00\x00\x14\x80\x00\x00\xb0\x00\x60\x00\x91\x41\x00\x80\x52\x01\x00\x00\xb9\x00\x00\x80\x52\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\xfd\x7b\xbf\xa9\xfd\x03\x00\x91\xfd\x7b\xc1\xa8\xc0\x03\x5f\xd6\x01\x00\x02\x00\x01\x1b\x03\x3b\x38\x00\x00\x00\x06\x00\x00\x00\x84\xfe\xff\xff\x50\x00\x00\x00\xd4\xfe\xff\xff\x64\x00\x00\x00\x04\xff\xff\xff\x78\x00\x00\x00\x44\xff\xff\xff\x8c\x00\x00\x00\x94\xff\xff\xff\xb0\x00\x00\x00\x98\xff\xff\xff\xc4\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x01\x7a\x52\x00\x04\x78\x1e\x01\x1b\x0c\x1f\x00\x10\x00\x00\x00\x18\x00\x00\x00\x2c\xfe\xff\xff\x34\x00\x00\x00\x00\x41\x07\x1e\x10\x00\x00\x00\x2c\x00\x00\x00\x68\xfe\xff\xff\x30\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x40\x00\x00\x00\x84\xfe\xff\xff\x3c\x00\x00\x00\x00\x00\x00\x00\x20\x00\x00\x00\x54\x00\x00\x00\xb0\xfe\xff\xff\x48\x00\x00\x00\x00\x41\x0e\x20\x9d\x04\x9e\x03\x42\x93\x02\x4e\xde\xdd\xd3\x0e\x00\x00\x00\x00\x10\x00\x00\x00\x78\x00\x00\x00\xdc\xfe\xff\xff\x04\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x8c\x00\x00\x00\xcc\xfe\xff\xff\x50\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".comment", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x00\x06\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xb0\x1b\x00"), -Section(".interp", 0x238, "\x2f\x6c\x69\x62\x2f\x6c\x64\x2d\x6c\x69\x6e\x75\x78\x2d\x61\x61\x72\x63\x68\x36\x34\x2e\x73\x6f\x2e\x31\x00"), -Section(".note.gnu.build-id", 0x254, "\x04\x00\x00\x00\x14\x00\x00\x00\x03\x00\x00\x00\x47\x4e\x55\x00\x74\xfa\x0c\x1a\xcf\x41\x4f\x98\xdc\x27\x44\x2f\x9d\x01\x6f\x2f\x54\xaf\xb4\xdc"), -Section(".note.ABI-tag", 0x278, "\x04\x00\x00\x00\x10\x00\x00\x00\x01\x00\x00\x00\x47\x4e\x55\x00\x00\x00\x00\x00\x03\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00"), -Section(".gnu.hash", 0x298, "\x01\x00\x00\x00\x01\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".dynsym", 0x2B8, "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x0b\x00\x80\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x16\x00\x00\x10\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x48\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x22\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x22\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x73\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".dynstr", 0x390, "\x00\x5f\x5f\x63\x78\x61\x5f\x66\x69\x6e\x61\x6c\x69\x7a\x65\x00\x5f\x5f\x6c\x69\x62\x63\x5f\x73\x74\x61\x72\x74\x5f\x6d\x61\x69\x6e\x00\x61\x62\x6f\x72\x74\x00\x6c\x69\x62\x63\x2e\x73\x6f\x2e\x36\x00\x47\x4c\x49\x42\x43\x5f\x32\x2e\x31\x37\x00\x47\x4c\x49\x42\x43\x5f\x32\x2e\x33\x34\x00\x5f\x49\x54\x4d\x5f\x64\x65\x72\x65\x67\x69\x73\x74\x65\x72\x54\x4d\x43\x6c\x6f\x6e\x65\x54\x61\x62\x6c\x65\x00\x5f\x5f\x67\x6d\x6f\x6e\x5f\x73\x74\x61\x72\x74\x5f\x5f\x00\x5f\x49\x54\x4d\x5f\x72\x65\x67\x69\x73\x74\x65\x72\x54\x4d\x43\x6c\x6f\x6e\x65\x54\x61\x62\x6c\x65\x00"), -Section(".gnu.version", 0x41E, "\x00\x00\x00\x00\x00\x00\x02\x00\x01\x00\x03\x00\x01\x00\x03\x00\x01\x00"), -Section(".gnu.version_r", 0x430, "\x01\x00\x02\x00\x28\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x97\x91\x96\x06\x00\x00\x03\x00\x32\x00\x00\x00\x10\x00\x00\x00\xb4\x91\x96\x06\x00\x00\x02\x00\x3d\x00\x00\x00\x00\x00\x00\x00"), -Section(".rela.dyn", 0x460, "\x98\x0d\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x10\x07\x00\x00\x00\x00\x00\x00\xa0\x0d\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\xc0\x06\x00\x00\x00\x00\x00\x00\xf0\x0f\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x14\x07\x00\x00\x00\x00\x00\x00\x08\x10\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x08\x10\x01\x00\x00\x00\x00\x00\xd8\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe0\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe8\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xf8\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".rela.plt", 0x520, "\xb0\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xb8\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xc0\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xc8\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".init", 0x580, "\x1f\x20\x03\xd5\xfd\x7b\xbf\xa9\xfd\x03\x00\x91\x2a\x00\x00\x94\xfd\x7b\xc1\xa8\xc0\x03\x5f\xd6"), -Section(".plt", 0x5A0, "\xf0\x7b\xbf\xa9\x90\x00\x00\x90\x11\xd6\x47\xf9\x10\xa2\x3e\x91\x20\x02\x1f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x90\x00\x00\x90\x11\xda\x47\xf9\x10\xc2\x3e\x91\x20\x02\x1f\xd6\x90\x00\x00\x90\x11\xde\x47\xf9\x10\xe2\x3e\x91\x20\x02\x1f\xd6\x90\x00\x00\x90\x11\xe2\x47\xf9\x10\x02\x3f\x91\x20\x02\x1f\xd6\x90\x00\x00\x90\x11\xe6\x47\xf9\x10\x22\x3f\x91\x20\x02\x1f\xd6"), -Section(".fini", 0x764, "\x1f\x20\x03\xd5\xfd\x7b\xbf\xa9\xfd\x03\x00\x91\xfd\x7b\xc1\xa8\xc0\x03\x5f\xd6"), -Section(".rodata", 0x778, "\x01\x00\x02\x00"), -Section(".eh_frame_hdr", 0x77C, "\x01\x1b\x03\x3b\x38\x00\x00\x00\x06\x00\x00\x00\x84\xfe\xff\xff\x50\x00\x00\x00\xd4\xfe\xff\xff\x64\x00\x00\x00\x04\xff\xff\xff\x78\x00\x00\x00\x44\xff\xff\xff\x8c\x00\x00\x00\x94\xff\xff\xff\xb0\x00\x00\x00\x98\xff\xff\xff\xc4\x00\x00\x00"), -Section(".eh_frame", 0x7B8, "\x10\x00\x00\x00\x00\x00\x00\x00\x01\x7a\x52\x00\x04\x78\x1e\x01\x1b\x0c\x1f\x00\x10\x00\x00\x00\x18\x00\x00\x00\x2c\xfe\xff\xff\x34\x00\x00\x00\x00\x41\x07\x1e\x10\x00\x00\x00\x2c\x00\x00\x00\x68\xfe\xff\xff\x30\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x40\x00\x00\x00\x84\xfe\xff\xff\x3c\x00\x00\x00\x00\x00\x00\x00\x20\x00\x00\x00\x54\x00\x00\x00\xb0\xfe\xff\xff\x48\x00\x00\x00\x00\x41\x0e\x20\x9d\x04\x9e\x03\x42\x93\x02\x4e\xde\xdd\xd3\x0e\x00\x00\x00\x00\x10\x00\x00\x00\x78\x00\x00\x00\xdc\xfe\xff\xff\x04\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x8c\x00\x00\x00\xcc\xfe\xff\xff\x50\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".fini_array", 0x10DA0, "\xc0\x06\x00\x00\x00\x00\x00\x00"), -Section(".dynamic", 0x10DA8, "\x01\x00\x00\x00\x00\x00\x00\x00\x28\x00\x00\x00\x00\x00\x00\x00\x0c\x00\x00\x00\x00\x00\x00\x00\x80\x05\x00\x00\x00\x00\x00\x00\x0d\x00\x00\x00\x00\x00\x00\x00\x64\x07\x00\x00\x00\x00\x00\x00\x19\x00\x00\x00\x00\x00\x00\x00\x98\x0d\x01\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x1a\x00\x00\x00\x00\x00\x00\x00\xa0\x0d\x01\x00\x00\x00\x00\x00\x1c\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\xf5\xfe\xff\x6f\x00\x00\x00\x00\x98\x02\x00\x00\x00\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x90\x03\x00\x00\x00\x00\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\xb8\x02\x00\x00\x00\x00\x00\x00\x0a\x00\x00\x00\x00\x00\x00\x00\x8d\x00\x00\x00\x00\x00\x00\x00\x0b\x00\x00\x00\x00\x00\x00\x00\x18\x00\x00\x00\x00\x00\x00\x00\x15\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x98\x0f\x01\x00\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x60\x00\x00\x00\x00\x00\x00\x00\x14\x00\x00\x00\x00\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x17\x00\x00\x00\x00\x00\x00\x00\x20\x05\x00\x00\x00\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x60\x04\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\xc0\x00\x00\x00\x00\x00\x00\x00\x09\x00\x00\x00\x00\x00\x00\x00\x18\x00\x00\x00\x00\x00\x00\x00\x1e\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\xfb\xff\xff\x6f\x00\x00\x00\x00\x01\x00\x00\x08\x00\x00\x00\x00\xfe\xff\xff\x6f\x00\x00\x00\x00\x30\x04\x00\x00\x00\x00\x00\x00\xff\xff\xff\x6f\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\xf0\xff\xff\x6f\x00\x00\x00\x00\x1e\x04\x00\x00\x00\x00\x00\x00\xf9\xff\xff\x6f\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".got", 0x10F98, "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xa0\x05\x00\x00\x00\x00\x00\x00\xa0\x05\x00\x00\x00\x00\x00\x00\xa0\x05\x00\x00\x00\x00\x00\x00\xa0\x05\x00\x00\x00\x00\x00\x00\xa8\x0d\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x14\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".data", 0x11000, "\x00\x00\x00\x00\x00\x00\x00\x00\x08\x10\x01\x00\x00\x00\x00\x00"), -Section(".init_array", 0x10D98, "\x10\x07\x00\x00\x00\x00\x00\x00"), -Section(".text", 0x600, "\x1f\x20\x03\xd5\x1d\x00\x80\xd2\x1e\x00\x80\xd2\xe5\x03\x00\xaa\xe1\x03\x40\xf9\xe2\x23\x00\x91\xe6\x03\x00\x91\x80\x00\x00\x90\x00\xf8\x47\xf9\x03\x00\x80\xd2\x04\x00\x80\xd2\xe5\xff\xff\x97\xf0\xff\xff\x97\x80\x00\x00\x90\x00\xf4\x47\xf9\x40\x00\x00\xb4\xe8\xff\xff\x17\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x80\x00\x00\xb0\x00\x40\x00\x91\x81\x00\x00\xb0\x21\x40\x00\x91\x3f\x00\x00\xeb\xc0\x00\x00\x54\x81\x00\x00\x90\x21\xec\x47\xf9\x61\x00\x00\xb4\xf0\x03\x01\xaa\x00\x02\x1f\xd6\xc0\x03\x5f\xd6\x80\x00\x00\xb0\x00\x40\x00\x91\x81\x00\x00\xb0\x21\x40\x00\x91\x21\x00\x00\xcb\x22\xfc\x7f\xd3\x41\x0c\x81\x8b\x21\xfc\x41\x93\xc1\x00\x00\xb4\x82\x00\x00\x90\x42\xfc\x47\xf9\x62\x00\x00\xb4\xf0\x03\x02\xaa\x00\x02\x1f\xd6\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\xfd\x7b\xbe\xa9\xfd\x03\x00\x91\xf3\x0b\x00\xf9\x93\x00\x00\xb0\x60\x42\x40\x39\x40\x01\x00\x35\x80\x00\x00\x90\x00\xf0\x47\xf9\x80\x00\x00\xb4\x80\x00\x00\xb0\x00\x04\x40\xf9\xb9\xff\xff\x97\xd8\xff\xff\x97\x20\x00\x80\x52\x60\x42\x00\x39\xf3\x0b\x40\xf9\xfd\x7b\xc2\xa8\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\xdc\xff\xff\x17\x80\x00\x00\xb0\x00\x50\x00\x91\x21\x00\x80\x52\x01\x00\x00\xb9\x80\x00\x00\xb0\x00\x50\x00\x91\x00\x00\x40\xb9\x1f\x00\x00\x71\xc0\x00\x00\x54\x80\x00\x00\xb0\x00\x60\x00\x91\x61\x00\x80\x52\x01\x00\x00\xb9\x05\x00\x00\x14\x80\x00\x00\xb0\x00\x60\x00\x91\x41\x00\x80\x52\x01\x00\x00\xb9\x00\x00\x80\x52\xc0\x03\x5f\xd6")]), -Memmap([Annotation(Region(0x0,0x857), Attr("segment",".symtab 0 2136")), -Annotation(Region(0x600,0x633), Attr("symbol","\"_start\"")), -Annotation(Region(0x0,0xF9), Attr("section","\".shstrtab\"")), -Annotation(Region(0x0,0x21C), Attr("section","\".strtab\"")), -Annotation(Region(0x0,0x857), Attr("section","\".symtab\"")), -Annotation(Region(0x0,0x857), Attr("section","\"02\"")), -Annotation(Region(0x0,0x2A), Attr("section","\".comment\"")), -Annotation(Region(0x238,0x252), Attr("section","\".interp\"")), -Annotation(Region(0x254,0x277), Attr("section","\".note.gnu.build-id\"")), -Annotation(Region(0x278,0x297), Attr("section","\".note.ABI-tag\"")), -Annotation(Region(0x298,0x2B3), Attr("section","\".gnu.hash\"")), -Annotation(Region(0x2B8,0x38F), Attr("section","\".dynsym\"")), -Annotation(Region(0x390,0x41C), Attr("section","\".dynstr\"")), -Annotation(Region(0x41E,0x42F), Attr("section","\".gnu.version\"")), -Annotation(Region(0x430,0x45F), Attr("section","\".gnu.version_r\"")), -Annotation(Region(0x460,0x51F), Attr("section","\".rela.dyn\"")), -Annotation(Region(0x520,0x57F), Attr("section","\".rela.plt\"")), -Annotation(Region(0x580,0x597), Attr("section","\".init\"")), -Annotation(Region(0x5A0,0x5FF), Attr("section","\".plt\"")), -Annotation(Region(0x580,0x597), Attr("code-region","()")), -Annotation(Region(0x5A0,0x5FF), Attr("code-region","()")), -Annotation(Region(0x600,0x633), Attr("symbol-info","_start 0x600 52")), -Annotation(Region(0x634,0x647), Attr("symbol","\"call_weak_fn\"")), -Annotation(Region(0x634,0x647), Attr("symbol-info","call_weak_fn 0x634 20")), -Annotation(Region(0x714,0x763), Attr("symbol","\"main\"")), -Annotation(Region(0x714,0x763), Attr("symbol-info","main 0x714 80")), -Annotation(Region(0x764,0x777), Attr("section","\".fini\"")), -Annotation(Region(0x778,0x77B), Attr("section","\".rodata\"")), -Annotation(Region(0x77C,0x7B7), Attr("section","\".eh_frame_hdr\"")), -Annotation(Region(0x7B8,0x857), Attr("section","\".eh_frame\"")), -Annotation(Region(0x10D98,0x1100F), Attr("segment","03 0x10D98 648")), -Annotation(Region(0x10DA0,0x10DA7), Attr("section","\".fini_array\"")), -Annotation(Region(0x10DA8,0x10F97), Attr("section","\".dynamic\"")), -Annotation(Region(0x10F98,0x10FFF), Attr("section","\".got\"")), -Annotation(Region(0x11000,0x1100F), Attr("section","\".data\"")), -Annotation(Region(0x10D98,0x10D9F), Attr("section","\".init_array\"")), -Annotation(Region(0x600,0x763), Attr("section","\".text\"")), -Annotation(Region(0x600,0x763), Attr("code-region","()")), -Annotation(Region(0x764,0x777), Attr("code-region","()"))]), -Program(Tid(1_618, "%00000652"), Attrs([]), - Subs([Sub(Tid(1_564, "@__cxa_finalize"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x5D0"), -Attr("stub","()")]), "__cxa_finalize", Args([Arg(Tid(1_619, "%00000653"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("__cxa_finalize_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(952, "@__cxa_finalize"), - Attrs([Attr("address","0x5D0")]), Phis([]), -Defs([Def(Tid(1_200, "%000004b0"), Attrs([Attr("address","0x5D0"), -Attr("insn","adrp x16, #65536")]), Var("R16",Imm(64)), Int(65536,64)), -Def(Tid(1_207, "%000004b7"), Attrs([Attr("address","0x5D4"), -Attr("insn","ldr x17, [x16, #0xfb8]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(4024,64)),LittleEndian(),64)), -Def(Tid(1_213, "%000004bd"), Attrs([Attr("address","0x5D8"), -Attr("insn","add x16, x16, #0xfb8")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(4024,64)))]), Jmps([Call(Tid(1_218, "%000004c2"), - Attrs([Attr("address","0x5DC"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), -Sub(Tid(1_565, "@__do_global_dtors_aux"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x6C0")]), - "__do_global_dtors_aux", Args([Arg(Tid(1_620, "%00000654"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("__do_global_dtors_aux_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(670, "@__do_global_dtors_aux"), - Attrs([Attr("address","0x6C0")]), Phis([]), Defs([Def(Tid(674, "%000002a2"), - Attrs([Attr("address","0x6C0"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("#3",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(18446744073709551584,64))), -Def(Tid(680, "%000002a8"), Attrs([Attr("address","0x6C0"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("#3",Imm(64)),Var("R29",Imm(64)),LittleEndian(),64)), -Def(Tid(686, "%000002ae"), Attrs([Attr("address","0x6C0"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("#3",Imm(64)),Int(8,64)),Var("R30",Imm(64)),LittleEndian(),64)), -Def(Tid(690, "%000002b2"), Attrs([Attr("address","0x6C0"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("R31",Imm(64)), -Var("#3",Imm(64))), Def(Tid(696, "%000002b8"), - Attrs([Attr("address","0x6C4"), Attr("insn","mov x29, sp")]), - Var("R29",Imm(64)), Var("R31",Imm(64))), Def(Tid(704, "%000002c0"), - Attrs([Attr("address","0x6C8"), Attr("insn","str x19, [sp, #0x10]")]), - Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(16,64)),Var("R19",Imm(64)),LittleEndian(),64)), -Def(Tid(709, "%000002c5"), Attrs([Attr("address","0x6CC"), -Attr("insn","adrp x19, #69632")]), Var("R19",Imm(64)), Int(69632,64)), -Def(Tid(716, "%000002cc"), Attrs([Attr("address","0x6D0"), -Attr("insn","ldrb w0, [x19, #0x10]")]), Var("R0",Imm(64)), -UNSIGNED(64,Load(Var("mem",Mem(64,8)),PLUS(Var("R19",Imm(64)),Int(16,64)),LittleEndian(),8)))]), -Jmps([Goto(Tid(723, "%000002d3"), Attrs([Attr("address","0x6D4"), -Attr("insn","cbnz w0, #0x28")]), - NEQ(Extract(31,0,Var("R0",Imm(64))),Int(0,32)), -Direct(Tid(721, "%000002d1"))), Goto(Tid(1_606, "%00000646"), Attrs([]), - Int(1,1), Direct(Tid(897, "%00000381")))])), Blk(Tid(897, "%00000381"), - Attrs([Attr("address","0x6D8")]), Phis([]), Defs([Def(Tid(900, "%00000384"), - Attrs([Attr("address","0x6D8"), Attr("insn","adrp x0, #65536")]), - Var("R0",Imm(64)), Int(65536,64)), Def(Tid(907, "%0000038b"), - Attrs([Attr("address","0x6DC"), Attr("insn","ldr x0, [x0, #0xfe0]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(4064,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(913, "%00000391"), Attrs([Attr("address","0x6E0"), -Attr("insn","cbz x0, #0x10")]), EQ(Var("R0",Imm(64)),Int(0,64)), -Direct(Tid(911, "%0000038f"))), Goto(Tid(1_607, "%00000647"), Attrs([]), - Int(1,1), Direct(Tid(936, "%000003a8")))])), Blk(Tid(936, "%000003a8"), - Attrs([Attr("address","0x6E4")]), Phis([]), Defs([Def(Tid(939, "%000003ab"), - Attrs([Attr("address","0x6E4"), Attr("insn","adrp x0, #69632")]), - Var("R0",Imm(64)), Int(69632,64)), Def(Tid(946, "%000003b2"), - Attrs([Attr("address","0x6E8"), Attr("insn","ldr x0, [x0, #0x8]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(951, "%000003b7"), Attrs([Attr("address","0x6EC"), -Attr("insn","bl #-0x11c")]), Var("R30",Imm(64)), Int(1776,64))]), -Jmps([Call(Tid(954, "%000003ba"), Attrs([Attr("address","0x6EC"), -Attr("insn","bl #-0x11c")]), Int(1,1), -(Direct(Tid(1_564, "@__cxa_finalize")),Direct(Tid(911, "%0000038f"))))])), -Blk(Tid(911, "%0000038f"), Attrs([Attr("address","0x6F0")]), Phis([]), -Defs([Def(Tid(919, "%00000397"), Attrs([Attr("address","0x6F0"), -Attr("insn","bl #-0xa0")]), Var("R30",Imm(64)), Int(1780,64))]), -Jmps([Call(Tid(921, "%00000399"), Attrs([Attr("address","0x6F0"), -Attr("insn","bl #-0xa0")]), Int(1,1), -(Direct(Tid(1_578, "@deregister_tm_clones")),Direct(Tid(923, "%0000039b"))))])), -Blk(Tid(923, "%0000039b"), Attrs([Attr("address","0x6F4")]), Phis([]), -Defs([Def(Tid(926, "%0000039e"), Attrs([Attr("address","0x6F4"), -Attr("insn","mov w0, #0x1")]), Var("R0",Imm(64)), Int(1,64)), -Def(Tid(934, "%000003a6"), Attrs([Attr("address","0x6F8"), -Attr("insn","strb w0, [x19, #0x10]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R19",Imm(64)),Int(16,64)),Extract(7,0,Var("R0",Imm(64))),LittleEndian(),8))]), -Jmps([Goto(Tid(1_608, "%00000648"), Attrs([]), Int(1,1), -Direct(Tid(721, "%000002d1")))])), Blk(Tid(721, "%000002d1"), - Attrs([Attr("address","0x6FC")]), Phis([]), Defs([Def(Tid(731, "%000002db"), - Attrs([Attr("address","0x6FC"), Attr("insn","ldr x19, [sp, #0x10]")]), - Var("R19",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(16,64)),LittleEndian(),64)), -Def(Tid(738, "%000002e2"), Attrs([Attr("address","0x700"), -Attr("insn","ldp x29, x30, [sp], #0x20")]), Var("R29",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(743, "%000002e7"), Attrs([Attr("address","0x700"), -Attr("insn","ldp x29, x30, [sp], #0x20")]), Var("R30",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(747, "%000002eb"), Attrs([Attr("address","0x700"), -Attr("insn","ldp x29, x30, [sp], #0x20")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(32,64)))]), Jmps([Call(Tid(752, "%000002f0"), - Attrs([Attr("address","0x704"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), Sub(Tid(1_569, "@__libc_start_main"), - Attrs([Attr("c.proto","signed (*)(signed (*)(signed , char** , char** );* main, signed , char** , \nvoid* auxv)"), -Attr("address","0x5C0"), Attr("stub","()")]), "__libc_start_main", - Args([Arg(Tid(1_621, "%00000655"), - Attrs([Attr("c.layout","**[ : 64]"), -Attr("c.data","Top:u64 ptr ptr"), -Attr("c.type","signed (*)(signed , char** , char** );*")]), - Var("__libc_start_main_main",Imm(64)), Var("R0",Imm(64)), In()), -Arg(Tid(1_622, "%00000656"), Attrs([Attr("c.layout","[signed : 32]"), -Attr("c.data","Top:u32"), Attr("c.type","signed")]), - Var("__libc_start_main_arg2",Imm(32)), LOW(32,Var("R1",Imm(64))), In()), -Arg(Tid(1_623, "%00000657"), Attrs([Attr("c.layout","**[char : 8]"), -Attr("c.data","Top:u8 ptr ptr"), Attr("c.type","char**")]), - Var("__libc_start_main_arg3",Imm(64)), Var("R2",Imm(64)), Both()), -Arg(Tid(1_624, "%00000658"), Attrs([Attr("c.layout","*[ : 8]"), -Attr("c.data","{} ptr"), Attr("c.type","void*")]), - Var("__libc_start_main_auxv",Imm(64)), Var("R3",Imm(64)), Both()), -Arg(Tid(1_625, "%00000659"), Attrs([Attr("c.layout","[signed : 32]"), -Attr("c.data","Top:u32"), Attr("c.type","signed")]), - Var("__libc_start_main_result",Imm(32)), LOW(32,Var("R0",Imm(64))), -Out())]), Blks([Blk(Tid(503, "@__libc_start_main"), - Attrs([Attr("address","0x5C0")]), Phis([]), -Defs([Def(Tid(1_178, "%0000049a"), Attrs([Attr("address","0x5C0"), -Attr("insn","adrp x16, #65536")]), Var("R16",Imm(64)), Int(65536,64)), -Def(Tid(1_185, "%000004a1"), Attrs([Attr("address","0x5C4"), -Attr("insn","ldr x17, [x16, #0xfb0]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(4016,64)),LittleEndian(),64)), -Def(Tid(1_191, "%000004a7"), Attrs([Attr("address","0x5C8"), -Attr("insn","add x16, x16, #0xfb0")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(4016,64)))]), Jmps([Call(Tid(1_196, "%000004ac"), - Attrs([Attr("address","0x5CC"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), Sub(Tid(1_570, "@_fini"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x764")]), - "_fini", Args([Arg(Tid(1_626, "%0000065a"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("_fini_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(31, "@_fini"), - Attrs([Attr("address","0x764")]), Phis([]), Defs([Def(Tid(37, "%00000025"), - Attrs([Attr("address","0x768"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("#0",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(18446744073709551600,64))), -Def(Tid(43, "%0000002b"), Attrs([Attr("address","0x768"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("#0",Imm(64)),Var("R29",Imm(64)),LittleEndian(),64)), -Def(Tid(49, "%00000031"), Attrs([Attr("address","0x768"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("#0",Imm(64)),Int(8,64)),Var("R30",Imm(64)),LittleEndian(),64)), -Def(Tid(53, "%00000035"), Attrs([Attr("address","0x768"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("R31",Imm(64)), -Var("#0",Imm(64))), Def(Tid(59, "%0000003b"), Attrs([Attr("address","0x76C"), -Attr("insn","mov x29, sp")]), Var("R29",Imm(64)), Var("R31",Imm(64))), -Def(Tid(66, "%00000042"), Attrs([Attr("address","0x770"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R29",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(71, "%00000047"), Attrs([Attr("address","0x770"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R30",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(75, "%0000004b"), Attrs([Attr("address","0x770"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(16,64)))]), Jmps([Call(Tid(80, "%00000050"), - Attrs([Attr("address","0x774"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), Sub(Tid(1_571, "@_init"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x580")]), - "_init", Args([Arg(Tid(1_627, "%0000065b"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("_init_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(1_386, "@_init"), - Attrs([Attr("address","0x580")]), Phis([]), -Defs([Def(Tid(1_392, "%00000570"), Attrs([Attr("address","0x584"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("#6",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(18446744073709551600,64))), -Def(Tid(1_398, "%00000576"), Attrs([Attr("address","0x584"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("#6",Imm(64)),Var("R29",Imm(64)),LittleEndian(),64)), -Def(Tid(1_404, "%0000057c"), Attrs([Attr("address","0x584"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("#6",Imm(64)),Int(8,64)),Var("R30",Imm(64)),LittleEndian(),64)), -Def(Tid(1_408, "%00000580"), Attrs([Attr("address","0x584"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("R31",Imm(64)), -Var("#6",Imm(64))), Def(Tid(1_414, "%00000586"), - Attrs([Attr("address","0x588"), Attr("insn","mov x29, sp")]), - Var("R29",Imm(64)), Var("R31",Imm(64))), Def(Tid(1_419, "%0000058b"), - Attrs([Attr("address","0x58C"), Attr("insn","bl #0xa8")]), - Var("R30",Imm(64)), Int(1424,64))]), Jmps([Call(Tid(1_421, "%0000058d"), - Attrs([Attr("address","0x58C"), Attr("insn","bl #0xa8")]), Int(1,1), -(Direct(Tid(1_576, "@call_weak_fn")),Direct(Tid(1_423, "%0000058f"))))])), -Blk(Tid(1_423, "%0000058f"), Attrs([Attr("address","0x590")]), Phis([]), -Defs([Def(Tid(1_428, "%00000594"), Attrs([Attr("address","0x590"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R29",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(1_433, "%00000599"), Attrs([Attr("address","0x590"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R30",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(1_437, "%0000059d"), Attrs([Attr("address","0x590"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(16,64)))]), Jmps([Call(Tid(1_442, "%000005a2"), - Attrs([Attr("address","0x594"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), Sub(Tid(1_572, "@_start"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x600"), -Attr("stub","()"), Attr("entry-point","()")]), "_start", - Args([Arg(Tid(1_628, "%0000065c"), Attrs([Attr("c.layout","[signed : 32]"), -Attr("c.data","Top:u32"), Attr("c.type","signed")]), - Var("_start_result",Imm(32)), LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(440, "@_start"), Attrs([Attr("address","0x600")]), Phis([]), -Defs([Def(Tid(445, "%000001bd"), Attrs([Attr("address","0x604"), -Attr("insn","mov x29, #0x0")]), Var("R29",Imm(64)), Int(0,64)), -Def(Tid(450, "%000001c2"), Attrs([Attr("address","0x608"), -Attr("insn","mov x30, #0x0")]), Var("R30",Imm(64)), Int(0,64)), -Def(Tid(456, "%000001c8"), Attrs([Attr("address","0x60C"), -Attr("insn","mov x5, x0")]), Var("R5",Imm(64)), Var("R0",Imm(64))), -Def(Tid(463, "%000001cf"), Attrs([Attr("address","0x610"), -Attr("insn","ldr x1, [sp]")]), Var("R1",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(469, "%000001d5"), Attrs([Attr("address","0x614"), -Attr("insn","add x2, sp, #0x8")]), Var("R2",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(8,64))), Def(Tid(475, "%000001db"), - Attrs([Attr("address","0x618"), Attr("insn","mov x6, sp")]), - Var("R6",Imm(64)), Var("R31",Imm(64))), Def(Tid(480, "%000001e0"), - Attrs([Attr("address","0x61C"), Attr("insn","adrp x0, #65536")]), - Var("R0",Imm(64)), Int(65536,64)), Def(Tid(487, "%000001e7"), - Attrs([Attr("address","0x620"), Attr("insn","ldr x0, [x0, #0xff0]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(4080,64)),LittleEndian(),64)), -Def(Tid(492, "%000001ec"), Attrs([Attr("address","0x624"), -Attr("insn","mov x3, #0x0")]), Var("R3",Imm(64)), Int(0,64)), -Def(Tid(497, "%000001f1"), Attrs([Attr("address","0x628"), -Attr("insn","mov x4, #0x0")]), Var("R4",Imm(64)), Int(0,64)), -Def(Tid(502, "%000001f6"), Attrs([Attr("address","0x62C"), -Attr("insn","bl #-0x6c")]), Var("R30",Imm(64)), Int(1584,64))]), -Jmps([Call(Tid(505, "%000001f9"), Attrs([Attr("address","0x62C"), -Attr("insn","bl #-0x6c")]), Int(1,1), -(Direct(Tid(1_569, "@__libc_start_main")),Direct(Tid(507, "%000001fb"))))])), -Blk(Tid(507, "%000001fb"), Attrs([Attr("address","0x630")]), Phis([]), -Defs([Def(Tid(510, "%000001fe"), Attrs([Attr("address","0x630"), -Attr("insn","bl #-0x40")]), Var("R30",Imm(64)), Int(1588,64))]), -Jmps([Call(Tid(513, "%00000201"), Attrs([Attr("address","0x630"), -Attr("insn","bl #-0x40")]), Int(1,1), -(Direct(Tid(1_575, "@abort")),Direct(Tid(1_609, "%00000649"))))])), -Blk(Tid(1_609, "%00000649"), Attrs([]), Phis([]), Defs([]), -Jmps([Call(Tid(1_610, "%0000064a"), Attrs([]), Int(1,1), -(Direct(Tid(1_576, "@call_weak_fn")),))]))])), Sub(Tid(1_575, "@abort"), - Attrs([Attr("noreturn","()"), Attr("c.proto","void (*)(void)"), -Attr("address","0x5F0"), Attr("stub","()")]), "abort", Args([]), -Blks([Blk(Tid(511, "@abort"), Attrs([Attr("address","0x5F0")]), Phis([]), -Defs([Def(Tid(1_244, "%000004dc"), Attrs([Attr("address","0x5F0"), -Attr("insn","adrp x16, #65536")]), Var("R16",Imm(64)), Int(65536,64)), -Def(Tid(1_251, "%000004e3"), Attrs([Attr("address","0x5F4"), -Attr("insn","ldr x17, [x16, #0xfc8]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(4040,64)),LittleEndian(),64)), -Def(Tid(1_257, "%000004e9"), Attrs([Attr("address","0x5F8"), -Attr("insn","add x16, x16, #0xfc8")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(4040,64)))]), Jmps([Call(Tid(1_262, "%000004ee"), - Attrs([Attr("address","0x5FC"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), Sub(Tid(1_576, "@call_weak_fn"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x634")]), - "call_weak_fn", Args([Arg(Tid(1_629, "%0000065d"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("call_weak_fn_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(515, "@call_weak_fn"), - Attrs([Attr("address","0x634")]), Phis([]), Defs([Def(Tid(518, "%00000206"), - Attrs([Attr("address","0x634"), Attr("insn","adrp x0, #65536")]), - Var("R0",Imm(64)), Int(65536,64)), Def(Tid(525, "%0000020d"), - Attrs([Attr("address","0x638"), Attr("insn","ldr x0, [x0, #0xfe8]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(4072,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(531, "%00000213"), Attrs([Attr("address","0x63C"), -Attr("insn","cbz x0, #0x8")]), EQ(Var("R0",Imm(64)),Int(0,64)), -Direct(Tid(529, "%00000211"))), Goto(Tid(1_611, "%0000064b"), Attrs([]), - Int(1,1), Direct(Tid(1_016, "%000003f8")))])), Blk(Tid(529, "%00000211"), - Attrs([Attr("address","0x644")]), Phis([]), Defs([]), -Jmps([Call(Tid(537, "%00000219"), Attrs([Attr("address","0x644"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))])), -Blk(Tid(1_016, "%000003f8"), Attrs([Attr("address","0x640")]), Phis([]), -Defs([]), Jmps([Goto(Tid(1_019, "%000003fb"), Attrs([Attr("address","0x640"), -Attr("insn","b #-0x60")]), Int(1,1), -Direct(Tid(1_017, "@__gmon_start__")))])), Blk(Tid(1_017, "@__gmon_start__"), - Attrs([Attr("address","0x5E0")]), Phis([]), -Defs([Def(Tid(1_222, "%000004c6"), Attrs([Attr("address","0x5E0"), -Attr("insn","adrp x16, #65536")]), Var("R16",Imm(64)), Int(65536,64)), -Def(Tid(1_229, "%000004cd"), Attrs([Attr("address","0x5E4"), -Attr("insn","ldr x17, [x16, #0xfc0]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(4032,64)),LittleEndian(),64)), -Def(Tid(1_235, "%000004d3"), Attrs([Attr("address","0x5E8"), -Attr("insn","add x16, x16, #0xfc0")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(4032,64)))]), Jmps([Call(Tid(1_240, "%000004d8"), - Attrs([Attr("address","0x5EC"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), -Sub(Tid(1_578, "@deregister_tm_clones"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x650")]), - "deregister_tm_clones", Args([Arg(Tid(1_630, "%0000065e"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("deregister_tm_clones_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(543, "@deregister_tm_clones"), - Attrs([Attr("address","0x650")]), Phis([]), Defs([Def(Tid(546, "%00000222"), - Attrs([Attr("address","0x650"), Attr("insn","adrp x0, #69632")]), - Var("R0",Imm(64)), Int(69632,64)), Def(Tid(552, "%00000228"), - Attrs([Attr("address","0x654"), Attr("insn","add x0, x0, #0x10")]), - Var("R0",Imm(64)), PLUS(Var("R0",Imm(64)),Int(16,64))), -Def(Tid(557, "%0000022d"), Attrs([Attr("address","0x658"), -Attr("insn","adrp x1, #69632")]), Var("R1",Imm(64)), Int(69632,64)), -Def(Tid(563, "%00000233"), Attrs([Attr("address","0x65C"), -Attr("insn","add x1, x1, #0x10")]), Var("R1",Imm(64)), -PLUS(Var("R1",Imm(64)),Int(16,64))), Def(Tid(569, "%00000239"), - Attrs([Attr("address","0x660"), Attr("insn","cmp x1, x0")]), - Var("#1",Imm(64)), NOT(Var("R0",Imm(64)))), Def(Tid(574, "%0000023e"), - Attrs([Attr("address","0x660"), Attr("insn","cmp x1, x0")]), - Var("#2",Imm(64)), PLUS(Var("R1",Imm(64)),NOT(Var("R0",Imm(64))))), -Def(Tid(580, "%00000244"), Attrs([Attr("address","0x660"), -Attr("insn","cmp x1, x0")]), Var("VF",Imm(1)), -NEQ(SIGNED(65,PLUS(Var("#2",Imm(64)),Int(1,64))),PLUS(PLUS(SIGNED(65,Var("R1",Imm(64))),SIGNED(65,Var("#1",Imm(64)))),Int(1,65)))), -Def(Tid(586, "%0000024a"), Attrs([Attr("address","0x660"), -Attr("insn","cmp x1, x0")]), Var("CF",Imm(1)), -NEQ(UNSIGNED(65,PLUS(Var("#2",Imm(64)),Int(1,64))),PLUS(PLUS(UNSIGNED(65,Var("R1",Imm(64))),UNSIGNED(65,Var("#1",Imm(64)))),Int(1,65)))), -Def(Tid(590, "%0000024e"), Attrs([Attr("address","0x660"), -Attr("insn","cmp x1, x0")]), Var("ZF",Imm(1)), -EQ(PLUS(Var("#2",Imm(64)),Int(1,64)),Int(0,64))), Def(Tid(594, "%00000252"), - Attrs([Attr("address","0x660"), Attr("insn","cmp x1, x0")]), - Var("NF",Imm(1)), Extract(63,63,PLUS(Var("#2",Imm(64)),Int(1,64))))]), -Jmps([Goto(Tid(600, "%00000258"), Attrs([Attr("address","0x664"), -Attr("insn","b.eq #0x18")]), EQ(Var("ZF",Imm(1)),Int(1,1)), -Direct(Tid(598, "%00000256"))), Goto(Tid(1_612, "%0000064c"), Attrs([]), - Int(1,1), Direct(Tid(986, "%000003da")))])), Blk(Tid(986, "%000003da"), - Attrs([Attr("address","0x668")]), Phis([]), Defs([Def(Tid(989, "%000003dd"), - Attrs([Attr("address","0x668"), Attr("insn","adrp x1, #65536")]), - Var("R1",Imm(64)), Int(65536,64)), Def(Tid(996, "%000003e4"), - Attrs([Attr("address","0x66C"), Attr("insn","ldr x1, [x1, #0xfd8]")]), - Var("R1",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R1",Imm(64)),Int(4056,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(1_001, "%000003e9"), Attrs([Attr("address","0x670"), -Attr("insn","cbz x1, #0xc")]), EQ(Var("R1",Imm(64)),Int(0,64)), -Direct(Tid(598, "%00000256"))), Goto(Tid(1_613, "%0000064d"), Attrs([]), - Int(1,1), Direct(Tid(1_005, "%000003ed")))])), Blk(Tid(598, "%00000256"), - Attrs([Attr("address","0x67C")]), Phis([]), Defs([]), -Jmps([Call(Tid(606, "%0000025e"), Attrs([Attr("address","0x67C"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))])), -Blk(Tid(1_005, "%000003ed"), Attrs([Attr("address","0x674")]), Phis([]), -Defs([Def(Tid(1_009, "%000003f1"), Attrs([Attr("address","0x674"), -Attr("insn","mov x16, x1")]), Var("R16",Imm(64)), Var("R1",Imm(64)))]), -Jmps([Call(Tid(1_014, "%000003f6"), Attrs([Attr("address","0x678"), -Attr("insn","br x16")]), Int(1,1), (Indirect(Var("R16",Imm(64))),))]))])), -Sub(Tid(1_581, "@frame_dummy"), Attrs([Attr("c.proto","signed (*)(void)"), -Attr("address","0x710")]), "frame_dummy", Args([Arg(Tid(1_631, "%0000065f"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("frame_dummy_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(758, "@frame_dummy"), - Attrs([Attr("address","0x710")]), Phis([]), Defs([]), -Jmps([Call(Tid(760, "%000002f8"), Attrs([Attr("address","0x710"), -Attr("insn","b #-0x90")]), Int(1,1), -(Direct(Tid(1_585, "@register_tm_clones")),))]))])), Sub(Tid(1_582, "@main"), - Attrs([Attr("c.proto","signed (*)(signed argc, const char** argv)"), -Attr("address","0x714")]), "main", Args([Arg(Tid(1_632, "%00000660"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("main_argc",Imm(32)), -LOW(32,Var("R0",Imm(64))), In()), Arg(Tid(1_633, "%00000661"), - Attrs([Attr("c.layout","**[char : 8]"), Attr("c.data","Top:u8 ptr ptr"), -Attr("c.type"," const char**")]), Var("main_argv",Imm(64)), -Var("R1",Imm(64)), Both()), Arg(Tid(1_634, "%00000662"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("main_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(762, "@main"), - Attrs([Attr("address","0x714")]), Phis([]), Defs([Def(Tid(765, "%000002fd"), - Attrs([Attr("address","0x714"), Attr("insn","adrp x0, #69632")]), - Var("R0",Imm(64)), Int(69632,64)), Def(Tid(771, "%00000303"), - Attrs([Attr("address","0x718"), Attr("insn","add x0, x0, #0x14")]), - Var("R0",Imm(64)), PLUS(Var("R0",Imm(64)),Int(20,64))), -Def(Tid(776, "%00000308"), Attrs([Attr("address","0x71C"), -Attr("insn","mov w1, #0x1")]), Var("R1",Imm(64)), Int(1,64)), -Def(Tid(784, "%00000310"), Attrs([Attr("address","0x720"), -Attr("insn","str w1, [x0]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("R0",Imm(64)),Extract(31,0,Var("R1",Imm(64))),LittleEndian(),32)), -Def(Tid(789, "%00000315"), Attrs([Attr("address","0x724"), -Attr("insn","adrp x0, #69632")]), Var("R0",Imm(64)), Int(69632,64)), -Def(Tid(795, "%0000031b"), Attrs([Attr("address","0x728"), -Attr("insn","add x0, x0, #0x14")]), Var("R0",Imm(64)), -PLUS(Var("R0",Imm(64)),Int(20,64))), Def(Tid(802, "%00000322"), - Attrs([Attr("address","0x72C"), Attr("insn","ldr w0, [x0]")]), - Var("R0",Imm(64)), -UNSIGNED(64,Load(Var("mem",Mem(64,8)),Var("R0",Imm(64)),LittleEndian(),32))), -Def(Tid(808, "%00000328"), Attrs([Attr("address","0x730"), -Attr("insn","cmp w0, #0x0")]), Var("#4",Imm(32)), -PLUS(Extract(31,0,Var("R0",Imm(64))),Int(4294967295,32))), -Def(Tid(813, "%0000032d"), Attrs([Attr("address","0x730"), -Attr("insn","cmp w0, #0x0")]), Var("VF",Imm(1)), -NEQ(SIGNED(33,PLUS(Var("#4",Imm(32)),Int(1,32))),PLUS(SIGNED(33,Extract(31,0,Var("R0",Imm(64)))),Int(0,33)))), -Def(Tid(818, "%00000332"), Attrs([Attr("address","0x730"), -Attr("insn","cmp w0, #0x0")]), Var("CF",Imm(1)), -NEQ(UNSIGNED(33,PLUS(Var("#4",Imm(32)),Int(1,32))),PLUS(UNSIGNED(33,Extract(31,0,Var("R0",Imm(64)))),Int(4294967296,33)))), -Def(Tid(822, "%00000336"), Attrs([Attr("address","0x730"), -Attr("insn","cmp w0, #0x0")]), Var("ZF",Imm(1)), -EQ(PLUS(Var("#4",Imm(32)),Int(1,32)),Int(0,32))), Def(Tid(826, "%0000033a"), - Attrs([Attr("address","0x730"), Attr("insn","cmp w0, #0x0")]), - Var("NF",Imm(1)), Extract(31,31,PLUS(Var("#4",Imm(32)),Int(1,32))))]), -Jmps([Goto(Tid(832, "%00000340"), Attrs([Attr("address","0x734"), -Attr("insn","b.eq #0x18")]), EQ(Var("ZF",Imm(1)),Int(1,1)), -Direct(Tid(830, "%0000033e"))), Goto(Tid(1_614, "%0000064e"), Attrs([]), - Int(1,1), Direct(Tid(869, "%00000365")))])), Blk(Tid(830, "%0000033e"), - Attrs([Attr("address","0x74C")]), Phis([]), Defs([Def(Tid(838, "%00000346"), - Attrs([Attr("address","0x74C"), Attr("insn","adrp x0, #69632")]), - Var("R0",Imm(64)), Int(69632,64)), Def(Tid(844, "%0000034c"), - Attrs([Attr("address","0x750"), Attr("insn","add x0, x0, #0x18")]), - Var("R0",Imm(64)), PLUS(Var("R0",Imm(64)),Int(24,64))), -Def(Tid(849, "%00000351"), Attrs([Attr("address","0x754"), -Attr("insn","mov w1, #0x2")]), Var("R1",Imm(64)), Int(2,64)), -Def(Tid(857, "%00000359"), Attrs([Attr("address","0x758"), -Attr("insn","str w1, [x0]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("R0",Imm(64)),Extract(31,0,Var("R1",Imm(64))),LittleEndian(),32))]), -Jmps([Goto(Tid(1_615, "%0000064f"), Attrs([]), Int(1,1), -Direct(Tid(859, "%0000035b")))])), Blk(Tid(869, "%00000365"), - Attrs([Attr("address","0x738")]), Phis([]), Defs([Def(Tid(872, "%00000368"), - Attrs([Attr("address","0x738"), Attr("insn","adrp x0, #69632")]), - Var("R0",Imm(64)), Int(69632,64)), Def(Tid(878, "%0000036e"), - Attrs([Attr("address","0x73C"), Attr("insn","add x0, x0, #0x18")]), - Var("R0",Imm(64)), PLUS(Var("R0",Imm(64)),Int(24,64))), -Def(Tid(883, "%00000373"), Attrs([Attr("address","0x740"), -Attr("insn","mov w1, #0x3")]), Var("R1",Imm(64)), Int(3,64)), -Def(Tid(891, "%0000037b"), Attrs([Attr("address","0x744"), -Attr("insn","str w1, [x0]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("R0",Imm(64)),Extract(31,0,Var("R1",Imm(64))),LittleEndian(),32))]), -Jmps([Goto(Tid(895, "%0000037f"), Attrs([Attr("address","0x748"), -Attr("insn","b #0x14")]), Int(1,1), Direct(Tid(859, "%0000035b")))])), -Blk(Tid(859, "%0000035b"), Attrs([Attr("address","0x75C")]), Phis([]), -Defs([Def(Tid(862, "%0000035e"), Attrs([Attr("address","0x75C"), -Attr("insn","mov w0, #0x0")]), Var("R0",Imm(64)), Int(0,64))]), -Jmps([Call(Tid(867, "%00000363"), Attrs([Attr("address","0x760"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))]))])), -Sub(Tid(1_585, "@register_tm_clones"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x680")]), - "register_tm_clones", Args([Arg(Tid(1_635, "%00000663"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("register_tm_clones_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(608, "@register_tm_clones"), Attrs([Attr("address","0x680")]), - Phis([]), Defs([Def(Tid(611, "%00000263"), Attrs([Attr("address","0x680"), -Attr("insn","adrp x0, #69632")]), Var("R0",Imm(64)), Int(69632,64)), -Def(Tid(617, "%00000269"), Attrs([Attr("address","0x684"), -Attr("insn","add x0, x0, #0x10")]), Var("R0",Imm(64)), -PLUS(Var("R0",Imm(64)),Int(16,64))), Def(Tid(622, "%0000026e"), - Attrs([Attr("address","0x688"), Attr("insn","adrp x1, #69632")]), - Var("R1",Imm(64)), Int(69632,64)), Def(Tid(628, "%00000274"), - Attrs([Attr("address","0x68C"), Attr("insn","add x1, x1, #0x10")]), - Var("R1",Imm(64)), PLUS(Var("R1",Imm(64)),Int(16,64))), -Def(Tid(635, "%0000027b"), Attrs([Attr("address","0x690"), -Attr("insn","sub x1, x1, x0")]), Var("R1",Imm(64)), -PLUS(PLUS(Var("R1",Imm(64)),NOT(Var("R0",Imm(64)))),Int(1,64))), -Def(Tid(641, "%00000281"), Attrs([Attr("address","0x694"), -Attr("insn","lsr x2, x1, #63")]), Var("R2",Imm(64)), -Concat(Int(0,63),Extract(63,63,Var("R1",Imm(64))))), -Def(Tid(648, "%00000288"), Attrs([Attr("address","0x698"), -Attr("insn","add x1, x2, x1, asr #3")]), Var("R1",Imm(64)), -PLUS(Var("R2",Imm(64)),ARSHIFT(Var("R1",Imm(64)),Int(3,3)))), -Def(Tid(654, "%0000028e"), Attrs([Attr("address","0x69C"), -Attr("insn","asr x1, x1, #1")]), Var("R1",Imm(64)), -SIGNED(64,Extract(63,1,Var("R1",Imm(64)))))]), -Jmps([Goto(Tid(660, "%00000294"), Attrs([Attr("address","0x6A0"), -Attr("insn","cbz x1, #0x18")]), EQ(Var("R1",Imm(64)),Int(0,64)), -Direct(Tid(658, "%00000292"))), Goto(Tid(1_616, "%00000650"), Attrs([]), - Int(1,1), Direct(Tid(956, "%000003bc")))])), Blk(Tid(956, "%000003bc"), - Attrs([Attr("address","0x6A4")]), Phis([]), Defs([Def(Tid(959, "%000003bf"), - Attrs([Attr("address","0x6A4"), Attr("insn","adrp x2, #65536")]), - Var("R2",Imm(64)), Int(65536,64)), Def(Tid(966, "%000003c6"), - Attrs([Attr("address","0x6A8"), Attr("insn","ldr x2, [x2, #0xff8]")]), - Var("R2",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R2",Imm(64)),Int(4088,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(971, "%000003cb"), Attrs([Attr("address","0x6AC"), -Attr("insn","cbz x2, #0xc")]), EQ(Var("R2",Imm(64)),Int(0,64)), -Direct(Tid(658, "%00000292"))), Goto(Tid(1_617, "%00000651"), Attrs([]), - Int(1,1), Direct(Tid(975, "%000003cf")))])), Blk(Tid(658, "%00000292"), - Attrs([Attr("address","0x6B8")]), Phis([]), Defs([]), -Jmps([Call(Tid(666, "%0000029a"), Attrs([Attr("address","0x6B8"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))])), -Blk(Tid(975, "%000003cf"), Attrs([Attr("address","0x6B0")]), Phis([]), -Defs([Def(Tid(979, "%000003d3"), Attrs([Attr("address","0x6B0"), -Attr("insn","mov x16, x2")]), Var("R16",Imm(64)), Var("R2",Imm(64)))]), -Jmps([Call(Tid(984, "%000003d8"), Attrs([Attr("address","0x6B4"), -Attr("insn","br x16")]), Int(1,1), -(Indirect(Var("R16",Imm(64))),))]))]))]))) \ No newline at end of file diff --git a/src/test/correct/cjump/gcc/cjump.bir b/src/test/correct/cjump/gcc/cjump.bir deleted file mode 100644 index 24f34f17d..000000000 --- a/src/test/correct/cjump/gcc/cjump.bir +++ /dev/null @@ -1,254 +0,0 @@ -00000652: program -0000061c: sub __cxa_finalize(__cxa_finalize_result) -00000653: __cxa_finalize_result :: out u32 = low:32[R0] - -000003b8: -000004b0: R16 := 0x10000 -000004b7: R17 := mem[R16 + 0xFB8, el]:u64 -000004bd: R16 := R16 + 0xFB8 -000004c2: call R17 with noreturn - -0000061d: sub __do_global_dtors_aux(__do_global_dtors_aux_result) -00000654: __do_global_dtors_aux_result :: out u32 = low:32[R0] - -0000029e: -000002a2: #3 := R31 - 0x20 -000002a8: mem := mem with [#3, el]:u64 <- R29 -000002ae: mem := mem with [#3 + 8, el]:u64 <- R30 -000002b2: R31 := #3 -000002b8: R29 := R31 -000002c0: mem := mem with [R31 + 0x10, el]:u64 <- R19 -000002c5: R19 := 0x11000 -000002cc: R0 := pad:64[mem[R19 + 0x10]] -000002d3: when 31:0[R0] <> 0 goto %000002d1 -00000646: goto %00000381 - -00000381: -00000384: R0 := 0x10000 -0000038b: R0 := mem[R0 + 0xFE0, el]:u64 -00000391: when R0 = 0 goto %0000038f -00000647: goto %000003a8 - -000003a8: -000003ab: R0 := 0x11000 -000003b2: R0 := mem[R0 + 8, el]:u64 -000003b7: R30 := 0x6F0 -000003ba: call @__cxa_finalize with return %0000038f - -0000038f: -00000397: R30 := 0x6F4 -00000399: call @deregister_tm_clones with return %0000039b - -0000039b: -0000039e: R0 := 1 -000003a6: mem := mem with [R19 + 0x10] <- 7:0[R0] -00000648: goto %000002d1 - -000002d1: -000002db: R19 := mem[R31 + 0x10, el]:u64 -000002e2: R29 := mem[R31, el]:u64 -000002e7: R30 := mem[R31 + 8, el]:u64 -000002eb: R31 := R31 + 0x20 -000002f0: call R30 with noreturn - -00000621: sub __libc_start_main(__libc_start_main_main, __libc_start_main_arg2, __libc_start_main_arg3, __libc_start_main_auxv, __libc_start_main_result) -00000655: __libc_start_main_main :: in u64 = R0 -00000656: __libc_start_main_arg2 :: in u32 = low:32[R1] -00000657: __libc_start_main_arg3 :: in out u64 = R2 -00000658: __libc_start_main_auxv :: in out u64 = R3 -00000659: __libc_start_main_result :: out u32 = low:32[R0] - -000001f7: -0000049a: R16 := 0x10000 -000004a1: R17 := mem[R16 + 0xFB0, el]:u64 -000004a7: R16 := R16 + 0xFB0 -000004ac: call R17 with noreturn - -00000622: sub _fini(_fini_result) -0000065a: _fini_result :: out u32 = low:32[R0] - -0000001f: -00000025: #0 := R31 - 0x10 -0000002b: mem := mem with [#0, el]:u64 <- R29 -00000031: mem := mem with [#0 + 8, el]:u64 <- R30 -00000035: R31 := #0 -0000003b: R29 := R31 -00000042: R29 := mem[R31, el]:u64 -00000047: R30 := mem[R31 + 8, el]:u64 -0000004b: R31 := R31 + 0x10 -00000050: call R30 with noreturn - -00000623: sub _init(_init_result) -0000065b: _init_result :: out u32 = low:32[R0] - -0000056a: -00000570: #6 := R31 - 0x10 -00000576: mem := mem with [#6, el]:u64 <- R29 -0000057c: mem := mem with [#6 + 8, el]:u64 <- R30 -00000580: R31 := #6 -00000586: R29 := R31 -0000058b: R30 := 0x590 -0000058d: call @call_weak_fn with return %0000058f - -0000058f: -00000594: R29 := mem[R31, el]:u64 -00000599: R30 := mem[R31 + 8, el]:u64 -0000059d: R31 := R31 + 0x10 -000005a2: call R30 with noreturn - -00000624: sub _start(_start_result) -0000065c: _start_result :: out u32 = low:32[R0] - -000001b8: -000001bd: R29 := 0 -000001c2: R30 := 0 -000001c8: R5 := R0 -000001cf: R1 := mem[R31, el]:u64 -000001d5: R2 := R31 + 8 -000001db: R6 := R31 -000001e0: R0 := 0x10000 -000001e7: R0 := mem[R0 + 0xFF0, el]:u64 -000001ec: R3 := 0 -000001f1: R4 := 0 -000001f6: R30 := 0x630 -000001f9: call @__libc_start_main with return %000001fb - -000001fb: -000001fe: R30 := 0x634 -00000201: call @abort with return %00000649 - -00000649: -0000064a: call @call_weak_fn with noreturn - -00000627: sub abort() - - -000001ff: -000004dc: R16 := 0x10000 -000004e3: R17 := mem[R16 + 0xFC8, el]:u64 -000004e9: R16 := R16 + 0xFC8 -000004ee: call R17 with noreturn - -00000628: sub call_weak_fn(call_weak_fn_result) -0000065d: call_weak_fn_result :: out u32 = low:32[R0] - -00000203: -00000206: R0 := 0x10000 -0000020d: R0 := mem[R0 + 0xFE8, el]:u64 -00000213: when R0 = 0 goto %00000211 -0000064b: goto %000003f8 - -00000211: -00000219: call R30 with noreturn - -000003f8: -000003fb: goto @__gmon_start__ - -000003f9: -000004c6: R16 := 0x10000 -000004cd: R17 := mem[R16 + 0xFC0, el]:u64 -000004d3: R16 := R16 + 0xFC0 -000004d8: call R17 with noreturn - -0000062a: sub deregister_tm_clones(deregister_tm_clones_result) -0000065e: deregister_tm_clones_result :: out u32 = low:32[R0] - -0000021f: -00000222: R0 := 0x11000 -00000228: R0 := R0 + 0x10 -0000022d: R1 := 0x11000 -00000233: R1 := R1 + 0x10 -00000239: #1 := ~R0 -0000023e: #2 := R1 + ~R0 -00000244: VF := extend:65[#2 + 1] <> extend:65[R1] + extend:65[#1] + 1 -0000024a: CF := pad:65[#2 + 1] <> pad:65[R1] + pad:65[#1] + 1 -0000024e: ZF := #2 + 1 = 0 -00000252: NF := 63:63[#2 + 1] -00000258: when ZF goto %00000256 -0000064c: goto %000003da - -000003da: -000003dd: R1 := 0x10000 -000003e4: R1 := mem[R1 + 0xFD8, el]:u64 -000003e9: when R1 = 0 goto %00000256 -0000064d: goto %000003ed - -00000256: -0000025e: call R30 with noreturn - -000003ed: -000003f1: R16 := R1 -000003f6: call R16 with noreturn - -0000062d: sub frame_dummy(frame_dummy_result) -0000065f: frame_dummy_result :: out u32 = low:32[R0] - -000002f6: -000002f8: call @register_tm_clones with noreturn - -0000062e: sub main(main_argc, main_argv, main_result) -00000660: main_argc :: in u32 = low:32[R0] -00000661: main_argv :: in out u64 = R1 -00000662: main_result :: out u32 = low:32[R0] - -000002fa: -000002fd: R0 := 0x11000 -00000303: R0 := R0 + 0x14 -00000308: R1 := 1 -00000310: mem := mem with [R0, el]:u32 <- 31:0[R1] -00000315: R0 := 0x11000 -0000031b: R0 := R0 + 0x14 -00000322: R0 := pad:64[mem[R0, el]:u32] -00000328: #4 := 31:0[R0] - 1 -0000032d: VF := extend:33[#4 + 1] <> extend:33[31:0[R0]] + 0 -00000332: CF := pad:33[#4 + 1] <> pad:33[31:0[R0]] - 0x100000000 -00000336: ZF := #4 + 1 = 0 -0000033a: NF := 31:31[#4 + 1] -00000340: when ZF goto %0000033e -0000064e: goto %00000365 - -0000033e: -00000346: R0 := 0x11000 -0000034c: R0 := R0 + 0x18 -00000351: R1 := 2 -00000359: mem := mem with [R0, el]:u32 <- 31:0[R1] -0000064f: goto %0000035b - -00000365: -00000368: R0 := 0x11000 -0000036e: R0 := R0 + 0x18 -00000373: R1 := 3 -0000037b: mem := mem with [R0, el]:u32 <- 31:0[R1] -0000037f: goto %0000035b - -0000035b: -0000035e: R0 := 0 -00000363: call R30 with noreturn - -00000631: sub register_tm_clones(register_tm_clones_result) -00000663: register_tm_clones_result :: out u32 = low:32[R0] - -00000260: -00000263: R0 := 0x11000 -00000269: R0 := R0 + 0x10 -0000026e: R1 := 0x11000 -00000274: R1 := R1 + 0x10 -0000027b: R1 := R1 + ~R0 + 1 -00000281: R2 := 0.63:63[R1] -00000288: R1 := R2 + (R1 ~>> 3) -0000028e: R1 := extend:64[63:1[R1]] -00000294: when R1 = 0 goto %00000292 -00000650: goto %000003bc - -000003bc: -000003bf: R2 := 0x10000 -000003c6: R2 := mem[R2 + 0xFF8, el]:u64 -000003cb: when R2 = 0 goto %00000292 -00000651: goto %000003cf - -00000292: -0000029a: call R30 with noreturn - -000003cf: -000003d3: R16 := R2 -000003d8: call R16 with noreturn diff --git a/src/test/correct/cjump/gcc/cjump.expected b/src/test/correct/cjump/gcc/cjump.expected index 1778ca125..f547d01b7 100644 --- a/src/test/correct/cjump/gcc/cjump.expected +++ b/src/test/correct/cjump/gcc/cjump.expected @@ -1,36 +1,32 @@ -var {:extern} CF: bv1; -var {:extern} Gamma_CF: bool; -var {:extern} Gamma_NF: bool; var {:extern} Gamma_R0: bool; var {:extern} Gamma_R1: bool; -var {:extern} Gamma_VF: bool; -var {:extern} Gamma_ZF: bool; +var {:extern} Gamma_R2: bool; +var {:extern} Gamma_R3: bool; +var {:extern} Gamma_R4: bool; var {:extern} Gamma_mem: [bv64]bool; -var {:extern} NF: bv1; var {:extern} R0: bv64; var {:extern} R1: bv64; -var {:extern} VF: bv1; -var {:extern} ZF: bv1; +var {:extern} R2: bv64; +var {:extern} R3: bv64; +var {:extern} R4: bv64; var {:extern} mem: [bv64]bv8; const {:extern} $x_addr: bv64; -axiom ($x_addr == 69652bv64); +axiom ($x_addr == 4325400bv64); const {:extern} $y_addr: bv64; -axiom ($y_addr == 69656bv64); +axiom ($y_addr == 4325396bv64); function {:extern} L(mem$in: [bv64]bv8, index: bv64) returns (bool) { false } -function {:extern} {:bvbuiltin "bvadd"} bvadd32(bv32, bv32) returns (bv32); -function {:extern} {:bvbuiltin "bvadd"} bvadd33(bv33, bv33) returns (bv33); function {:extern} {:bvbuiltin "bvadd"} bvadd64(bv64, bv64) returns (bv64); -function {:extern} {:bvbuiltin "bvcomp"} bvcomp1(bv1, bv1) returns (bv1); -function {:extern} {:bvbuiltin "bvcomp"} bvcomp32(bv32, bv32) returns (bv1); -function {:extern} {:bvbuiltin "bvcomp"} bvcomp33(bv33, bv33) returns (bv1); -function {:extern} {:bvbuiltin "bvnot"} bvnot1(bv1) returns (bv1); function {:extern} gamma_load32(gammaMap: [bv64]bool, index: bv64) returns (bool) { (gammaMap[bvadd64(index, 3bv64)] && (gammaMap[bvadd64(index, 2bv64)] && (gammaMap[bvadd64(index, 1bv64)] && gammaMap[index]))) } +function {:extern} gamma_load64(gammaMap: [bv64]bool, index: bv64) returns (bool) { + (gammaMap[bvadd64(index, 7bv64)] && (gammaMap[bvadd64(index, 6bv64)] && (gammaMap[bvadd64(index, 5bv64)] && (gammaMap[bvadd64(index, 4bv64)] && (gammaMap[bvadd64(index, 3bv64)] && (gammaMap[bvadd64(index, 2bv64)] && (gammaMap[bvadd64(index, 1bv64)] && gammaMap[index]))))))) +} + function {:extern} gamma_store32(gammaMap: [bv64]bool, index: bv64, value: bool) returns ([bv64]bool) { gammaMap[index := value][bvadd64(index, 1bv64) := value][bvadd64(index, 2bv64) := value][bvadd64(index, 3bv64) := value] } @@ -47,18 +43,11 @@ function {:extern} memory_store32_le(memory: [bv64]bv8, index: bv64, value: bv32 memory[index := value[8:0]][bvadd64(index, 1bv64) := value[16:8]][bvadd64(index, 2bv64) := value[24:16]][bvadd64(index, 3bv64) := value[32:24]] } -function {:extern} {:bvbuiltin "sign_extend 1"} sign_extend1_32(bv32) returns (bv33); -function {:extern} {:bvbuiltin "zero_extend 1"} zero_extend1_32(bv32) returns (bv33); -function {:extern} {:bvbuiltin "zero_extend 32"} zero_extend32_32(bv32) returns (bv64); procedure {:extern} rely(); modifies Gamma_mem, mem; ensures (Gamma_mem == old(Gamma_mem)); ensures (mem == old(mem)); - free ensures (memory_load32_le(mem, 1912bv64) == 131073bv32); - free ensures (memory_load64_le(mem, 69016bv64) == 1808bv64); - free ensures (memory_load64_le(mem, 69024bv64) == 1728bv64); - free ensures (memory_load64_le(mem, 69616bv64) == 1812bv64); - free ensures (memory_load64_le(mem, 69640bv64) == 69640bv64); + free ensures (memory_load32_le(mem, 4196312bv64) == 131073bv32); procedure {:extern} rely_transitive(); modifies Gamma_mem, mem; @@ -76,84 +65,45 @@ procedure {:extern} rely_reflexive(); procedure {:extern} guarantee_reflexive(); modifies Gamma_mem, mem; -procedure main_1812(); - modifies CF, Gamma_CF, Gamma_NF, Gamma_R0, Gamma_R1, Gamma_VF, Gamma_ZF, Gamma_mem, NF, R0, R1, VF, ZF, mem; +procedure main(); + modifies Gamma_R0, Gamma_R1, Gamma_R2, Gamma_R3, Gamma_R4, Gamma_mem, R0, R1, R2, R3, R4, mem; requires (gamma_load32(Gamma_mem, $x_addr) == true); requires (gamma_load32(Gamma_mem, $y_addr) == false); - free requires (memory_load64_le(mem, 69632bv64) == 0bv64); - free requires (memory_load64_le(mem, 69640bv64) == 69640bv64); - free requires (memory_load32_le(mem, 1912bv64) == 131073bv32); - free requires (memory_load64_le(mem, 69016bv64) == 1808bv64); - free requires (memory_load64_le(mem, 69024bv64) == 1728bv64); - free requires (memory_load64_le(mem, 69616bv64) == 1812bv64); - free requires (memory_load64_le(mem, 69640bv64) == 69640bv64); - free ensures (memory_load32_le(mem, 1912bv64) == 131073bv32); - free ensures (memory_load64_le(mem, 69016bv64) == 1808bv64); - free ensures (memory_load64_le(mem, 69024bv64) == 1728bv64); - free ensures (memory_load64_le(mem, 69616bv64) == 1812bv64); - free ensures (memory_load64_le(mem, 69640bv64) == 69640bv64); + free requires (memory_load64_le(mem, 4325376bv64) == 0bv64); + free requires (memory_load64_le(mem, 4325384bv64) == 0bv64); + free requires (memory_load32_le(mem, 4196312bv64) == 131073bv32); + free ensures (memory_load32_le(mem, 4196312bv64) == 131073bv32); -implementation main_1812() +implementation main() { - var #4: bv32; - var Gamma_#4: bool; - var Gamma_load18: bool; - var load18: bv32; + var $load$14: bv64; + var $load$15: bv64; + var Gamma_$load$14: bool; + var Gamma_$load$15: bool; lmain: assume {:captureState "lmain"} true; - R0, Gamma_R0 := 69632bv64, true; - R0, Gamma_R0 := bvadd64(R0, 20bv64), Gamma_R0; - R1, Gamma_R1 := 1bv64, true; + R2, Gamma_R2 := 4321280bv64, true; call rely(); - assert (L(mem, R0) ==> Gamma_R1); - mem, Gamma_mem := memory_store32_le(mem, R0, R1[32:0]), gamma_store32(Gamma_mem, R0, Gamma_R1); - assume {:captureState "%00000310"} true; - R0, Gamma_R0 := 69632bv64, true; - R0, Gamma_R0 := bvadd64(R0, 20bv64), Gamma_R0; + $load$14, Gamma_$load$14 := memory_load64_le(mem, bvadd64(R2, 4064bv64)), (gamma_load64(Gamma_mem, bvadd64(R2, 4064bv64)) || L(mem, bvadd64(R2, 4064bv64))); + R2, Gamma_R2 := $load$14, Gamma_$load$14; + R4, Gamma_R4 := 1bv64, true; + R1, Gamma_R1 := 4321280bv64, true; call rely(); - load18, Gamma_load18 := memory_load32_le(mem, R0), (gamma_load32(Gamma_mem, R0) || L(mem, R0)); - R0, Gamma_R0 := zero_extend32_32(load18), Gamma_load18; - #4, Gamma_#4 := bvadd32(R0[32:0], 4294967295bv32), Gamma_R0; - VF, Gamma_VF := bvnot1(bvcomp33(sign_extend1_32(bvadd32(#4, 1bv32)), bvadd33(sign_extend1_32(R0[32:0]), 0bv33))), (Gamma_R0 && Gamma_#4); - CF, Gamma_CF := bvnot1(bvcomp33(zero_extend1_32(bvadd32(#4, 1bv32)), bvadd33(zero_extend1_32(R0[32:0]), 4294967296bv33))), (Gamma_R0 && Gamma_#4); - ZF, Gamma_ZF := bvcomp32(bvadd32(#4, 1bv32), 0bv32), Gamma_#4; - NF, Gamma_NF := bvadd32(#4, 1bv32)[32:31], Gamma_#4; - assert Gamma_ZF; - goto lmain_goto_l0000033e, lmain_goto_l00000365; - lmain_goto_l00000365: - assume {:captureState "lmain_goto_l00000365"} true; - assume (bvcomp1(ZF, 1bv1) == 0bv1); - R0, Gamma_R0 := 69632bv64, true; - R0, Gamma_R0 := bvadd64(R0, 24bv64), Gamma_R0; - R1, Gamma_R1 := 3bv64, true; + $load$15, Gamma_$load$15 := memory_load64_le(mem, bvadd64(R1, 4080bv64)), (gamma_load64(Gamma_mem, bvadd64(R1, 4080bv64)) || L(mem, bvadd64(R1, 4080bv64))); + R1, Gamma_R1 := $load$15, Gamma_$load$15; + R3, Gamma_R3 := 3bv64, true; + R0, Gamma_R0 := 0bv64, true; call rely(); - assert (L(mem, R0) ==> Gamma_R1); - mem, Gamma_mem := memory_store32_le(mem, R0, R1[32:0]), gamma_store32(Gamma_mem, R0, Gamma_R1); - assume {:captureState "%0000037b"} true; - goto l00000365; - l00000365: - assume {:captureState "l00000365"} true; - goto l0000035b; - lmain_goto_l0000033e: - assume {:captureState "lmain_goto_l0000033e"} true; - assume (bvcomp1(ZF, 1bv1) != 0bv1); - R0, Gamma_R0 := 69632bv64, true; - R0, Gamma_R0 := bvadd64(R0, 24bv64), Gamma_R0; - R1, Gamma_R1 := 2bv64, true; + assert (L(mem, R2) ==> Gamma_R4); + mem, Gamma_mem := memory_store32_le(mem, R2, R4[32:0]), gamma_store32(Gamma_mem, R2, Gamma_R4); + assume {:captureState "%00000264"} true; call rely(); - assert (L(mem, R0) ==> Gamma_R1); - mem, Gamma_mem := memory_store32_le(mem, R0, R1[32:0]), gamma_store32(Gamma_mem, R0, Gamma_R1); - assume {:captureState "%00000359"} true; - goto l0000033e; - l0000033e: - assume {:captureState "l0000033e"} true; - goto l0000035b; - l0000035b: - assume {:captureState "l0000035b"} true; - R0, Gamma_R0 := 0bv64, true; - goto main_1812_basil_return; - main_1812_basil_return: - assume {:captureState "main_1812_basil_return"} true; + assert (L(mem, R1) ==> Gamma_R3); + mem, Gamma_mem := memory_store32_le(mem, R1, R3[32:0]), gamma_store32(Gamma_mem, R1, Gamma_R3); + assume {:captureState "%00000268"} true; + goto main_basil_return; + main_basil_return: + assume {:captureState "main_basil_return"} true; return; } diff --git a/src/test/correct/cjump/gcc/cjump.gts b/src/test/correct/cjump/gcc/cjump.gts deleted file mode 100644 index 285a2759d..000000000 Binary files a/src/test/correct/cjump/gcc/cjump.gts and /dev/null differ diff --git a/src/test/correct/cjump/gcc/cjump.md5sum b/src/test/correct/cjump/gcc/cjump.md5sum new file mode 100644 index 000000000..16fd782c8 --- /dev/null +++ b/src/test/correct/cjump/gcc/cjump.md5sum @@ -0,0 +1,5 @@ +92850aaf37864c242e3ca47e6cacecfc correct/cjump/gcc/a.out +4f7e35b85f37487e5e988108006ab87d correct/cjump/gcc/cjump.adt +020290e3e17149cd9f8c4565766ba1bb correct/cjump/gcc/cjump.bir +46f5575a12bec4c01449b493338e9bbb correct/cjump/gcc/cjump.relf +d95f3560950edec6deef61f2c3bb6495 correct/cjump/gcc/cjump.gts diff --git a/src/test/correct/cjump/gcc/cjump.relf b/src/test/correct/cjump/gcc/cjump.relf deleted file mode 100644 index 3b209fd48..000000000 --- a/src/test/correct/cjump/gcc/cjump.relf +++ /dev/null @@ -1,122 +0,0 @@ - -Relocation section '.rela.dyn' at offset 0x460 contains 8 entries: - Offset Info Type Symbol's Value Symbol's Name + Addend -0000000000010d98 0000000000000403 R_AARCH64_RELATIVE 710 -0000000000010da0 0000000000000403 R_AARCH64_RELATIVE 6c0 -0000000000010ff0 0000000000000403 R_AARCH64_RELATIVE 714 -0000000000011008 0000000000000403 R_AARCH64_RELATIVE 11008 -0000000000010fd8 0000000400000401 R_AARCH64_GLOB_DAT 0000000000000000 _ITM_deregisterTMCloneTable + 0 -0000000000010fe0 0000000500000401 R_AARCH64_GLOB_DAT 0000000000000000 __cxa_finalize@GLIBC_2.17 + 0 -0000000000010fe8 0000000600000401 R_AARCH64_GLOB_DAT 0000000000000000 __gmon_start__ + 0 -0000000000010ff8 0000000800000401 R_AARCH64_GLOB_DAT 0000000000000000 _ITM_registerTMCloneTable + 0 - -Relocation section '.rela.plt' at offset 0x520 contains 4 entries: - Offset Info Type Symbol's Value Symbol's Name + Addend -0000000000010fb0 0000000300000402 R_AARCH64_JUMP_SLOT 0000000000000000 __libc_start_main@GLIBC_2.34 + 0 -0000000000010fb8 0000000500000402 R_AARCH64_JUMP_SLOT 0000000000000000 __cxa_finalize@GLIBC_2.17 + 0 -0000000000010fc0 0000000600000402 R_AARCH64_JUMP_SLOT 0000000000000000 __gmon_start__ + 0 -0000000000010fc8 0000000700000402 R_AARCH64_JUMP_SLOT 0000000000000000 abort@GLIBC_2.17 + 0 - -Symbol table '.dynsym' contains 9 entries: - Num: Value Size Type Bind Vis Ndx Name - 0: 0000000000000000 0 NOTYPE LOCAL DEFAULT UND - 1: 0000000000000580 0 SECTION LOCAL DEFAULT 11 .init - 2: 0000000000011000 0 SECTION LOCAL DEFAULT 22 .data - 3: 0000000000000000 0 FUNC GLOBAL DEFAULT UND __libc_start_main@GLIBC_2.34 (2) - 4: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_deregisterTMCloneTable - 5: 0000000000000000 0 FUNC WEAK DEFAULT UND __cxa_finalize@GLIBC_2.17 (3) - 6: 0000000000000000 0 NOTYPE WEAK DEFAULT UND __gmon_start__ - 7: 0000000000000000 0 FUNC GLOBAL DEFAULT UND abort@GLIBC_2.17 (3) - 8: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_registerTMCloneTable - -Symbol table '.symtab' contains 89 entries: - Num: Value Size Type Bind Vis Ndx Name - 0: 0000000000000000 0 NOTYPE LOCAL DEFAULT UND - 1: 0000000000000238 0 SECTION LOCAL DEFAULT 1 .interp - 2: 0000000000000254 0 SECTION LOCAL DEFAULT 2 .note.gnu.build-id - 3: 0000000000000278 0 SECTION LOCAL DEFAULT 3 .note.ABI-tag - 4: 0000000000000298 0 SECTION LOCAL DEFAULT 4 .gnu.hash - 5: 00000000000002b8 0 SECTION LOCAL DEFAULT 5 .dynsym - 6: 0000000000000390 0 SECTION LOCAL DEFAULT 6 .dynstr - 7: 000000000000041e 0 SECTION LOCAL DEFAULT 7 .gnu.version - 8: 0000000000000430 0 SECTION LOCAL DEFAULT 8 .gnu.version_r - 9: 0000000000000460 0 SECTION LOCAL DEFAULT 9 .rela.dyn - 10: 0000000000000520 0 SECTION LOCAL DEFAULT 10 .rela.plt - 11: 0000000000000580 0 SECTION LOCAL DEFAULT 11 .init - 12: 00000000000005a0 0 SECTION LOCAL DEFAULT 12 .plt - 13: 0000000000000600 0 SECTION LOCAL DEFAULT 13 .text - 14: 0000000000000764 0 SECTION LOCAL DEFAULT 14 .fini - 15: 0000000000000778 0 SECTION LOCAL DEFAULT 15 .rodata - 16: 000000000000077c 0 SECTION LOCAL DEFAULT 16 .eh_frame_hdr - 17: 00000000000007b8 0 SECTION LOCAL DEFAULT 17 .eh_frame - 18: 0000000000010d98 0 SECTION LOCAL DEFAULT 18 .init_array - 19: 0000000000010da0 0 SECTION LOCAL DEFAULT 19 .fini_array - 20: 0000000000010da8 0 SECTION LOCAL DEFAULT 20 .dynamic - 21: 0000000000010f98 0 SECTION LOCAL DEFAULT 21 .got - 22: 0000000000011000 0 SECTION LOCAL DEFAULT 22 .data - 23: 0000000000011010 0 SECTION LOCAL DEFAULT 23 .bss - 24: 0000000000000000 0 SECTION LOCAL DEFAULT 24 .comment - 25: 0000000000000000 0 FILE LOCAL DEFAULT ABS Scrt1.o - 26: 0000000000000278 0 NOTYPE LOCAL DEFAULT 3 $d - 27: 0000000000000278 32 OBJECT LOCAL DEFAULT 3 __abi_tag - 28: 0000000000000600 0 NOTYPE LOCAL DEFAULT 13 $x - 29: 00000000000007cc 0 NOTYPE LOCAL DEFAULT 17 $d - 30: 0000000000000778 0 NOTYPE LOCAL DEFAULT 15 $d - 31: 0000000000000000 0 FILE LOCAL DEFAULT ABS crti.o - 32: 0000000000000634 0 NOTYPE LOCAL DEFAULT 13 $x - 33: 0000000000000634 20 FUNC LOCAL DEFAULT 13 call_weak_fn - 34: 0000000000000580 0 NOTYPE LOCAL DEFAULT 11 $x - 35: 0000000000000764 0 NOTYPE LOCAL DEFAULT 14 $x - 36: 0000000000000000 0 FILE LOCAL DEFAULT ABS crtn.o - 37: 0000000000000590 0 NOTYPE LOCAL DEFAULT 11 $x - 38: 0000000000000770 0 NOTYPE LOCAL DEFAULT 14 $x - 39: 0000000000000000 0 FILE LOCAL DEFAULT ABS crtstuff.c - 40: 0000000000000650 0 NOTYPE LOCAL DEFAULT 13 $x - 41: 0000000000000650 0 FUNC LOCAL DEFAULT 13 deregister_tm_clones - 42: 0000000000000680 0 FUNC LOCAL DEFAULT 13 register_tm_clones - 43: 0000000000011008 0 NOTYPE LOCAL DEFAULT 22 $d - 44: 00000000000006c0 0 FUNC LOCAL DEFAULT 13 __do_global_dtors_aux - 45: 0000000000011010 1 OBJECT LOCAL DEFAULT 23 completed.0 - 46: 0000000000010da0 0 NOTYPE LOCAL DEFAULT 19 $d - 47: 0000000000010da0 0 OBJECT LOCAL DEFAULT 19 __do_global_dtors_aux_fini_array_entry - 48: 0000000000000710 0 FUNC LOCAL DEFAULT 13 frame_dummy - 49: 0000000000010d98 0 NOTYPE LOCAL DEFAULT 18 $d - 50: 0000000000010d98 0 OBJECT LOCAL DEFAULT 18 __frame_dummy_init_array_entry - 51: 00000000000007e0 0 NOTYPE LOCAL DEFAULT 17 $d - 52: 0000000000011010 0 NOTYPE LOCAL DEFAULT 23 $d - 53: 0000000000000000 0 FILE LOCAL DEFAULT ABS cjump.c - 54: 0000000000011014 0 NOTYPE LOCAL DEFAULT 23 $d - 55: 0000000000000714 0 NOTYPE LOCAL DEFAULT 13 $x - 56: 0000000000000840 0 NOTYPE LOCAL DEFAULT 17 $d - 57: 0000000000000000 0 FILE LOCAL DEFAULT ABS crtstuff.c - 58: 0000000000000854 0 NOTYPE LOCAL DEFAULT 17 $d - 59: 0000000000000854 0 OBJECT LOCAL DEFAULT 17 __FRAME_END__ - 60: 0000000000000000 0 FILE LOCAL DEFAULT ABS - 61: 0000000000010da8 0 OBJECT LOCAL DEFAULT ABS _DYNAMIC - 62: 000000000000077c 0 NOTYPE LOCAL DEFAULT 16 __GNU_EH_FRAME_HDR - 63: 0000000000010fd0 0 OBJECT LOCAL DEFAULT ABS _GLOBAL_OFFSET_TABLE_ - 64: 00000000000005a0 0 NOTYPE LOCAL DEFAULT 12 $x - 65: 0000000000000000 0 FUNC GLOBAL DEFAULT UND __libc_start_main@GLIBC_2.34 - 66: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_deregisterTMCloneTable - 67: 0000000000011000 0 NOTYPE WEAK DEFAULT 22 data_start - 68: 0000000000011010 0 NOTYPE GLOBAL DEFAULT 23 __bss_start__ - 69: 0000000000000000 0 FUNC WEAK DEFAULT UND __cxa_finalize@GLIBC_2.17 - 70: 0000000000011020 0 NOTYPE GLOBAL DEFAULT 23 _bss_end__ - 71: 0000000000011010 0 NOTYPE GLOBAL DEFAULT 22 _edata - 72: 0000000000011014 4 OBJECT GLOBAL DEFAULT 23 x - 73: 0000000000000764 0 FUNC GLOBAL HIDDEN 14 _fini - 74: 0000000000011020 0 NOTYPE GLOBAL DEFAULT 23 __bss_end__ - 75: 0000000000011000 0 NOTYPE GLOBAL DEFAULT 22 __data_start - 76: 0000000000000000 0 NOTYPE WEAK DEFAULT UND __gmon_start__ - 77: 0000000000011008 0 OBJECT GLOBAL HIDDEN 22 __dso_handle - 78: 0000000000000000 0 FUNC GLOBAL DEFAULT UND abort@GLIBC_2.17 - 79: 0000000000000778 4 OBJECT GLOBAL DEFAULT 15 _IO_stdin_used - 80: 0000000000011020 0 NOTYPE GLOBAL DEFAULT 23 _end - 81: 0000000000000600 52 FUNC GLOBAL DEFAULT 13 _start - 82: 0000000000011020 0 NOTYPE GLOBAL DEFAULT 23 __end__ - 83: 0000000000011018 4 OBJECT GLOBAL DEFAULT 23 y - 84: 0000000000011010 0 NOTYPE GLOBAL DEFAULT 23 __bss_start - 85: 0000000000000714 80 FUNC GLOBAL DEFAULT 13 main - 86: 0000000000011010 0 OBJECT GLOBAL HIDDEN 22 __TMC_END__ - 87: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_registerTMCloneTable - 88: 0000000000000580 0 FUNC GLOBAL HIDDEN 11 _init diff --git a/src/test/correct/cjump/gcc/cjump_gtirb.expected b/src/test/correct/cjump/gcc/cjump_gtirb.expected index f8a1ccddd..67cbada97 100644 --- a/src/test/correct/cjump/gcc/cjump_gtirb.expected +++ b/src/test/correct/cjump/gcc/cjump_gtirb.expected @@ -1,35 +1,32 @@ -var {:extern} CF: bv1; -var {:extern} Gamma_CF: bool; -var {:extern} Gamma_NF: bool; var {:extern} Gamma_R0: bool; var {:extern} Gamma_R1: bool; -var {:extern} Gamma_VF: bool; -var {:extern} Gamma_ZF: bool; +var {:extern} Gamma_R2: bool; +var {:extern} Gamma_R3: bool; +var {:extern} Gamma_R4: bool; var {:extern} Gamma_mem: [bv64]bool; -var {:extern} NF: bv1; var {:extern} R0: bv64; var {:extern} R1: bv64; -var {:extern} VF: bv1; -var {:extern} ZF: bv1; +var {:extern} R2: bv64; +var {:extern} R3: bv64; +var {:extern} R4: bv64; var {:extern} mem: [bv64]bv8; const {:extern} $x_addr: bv64; -axiom ($x_addr == 69652bv64); +axiom ($x_addr == 4325400bv64); const {:extern} $y_addr: bv64; -axiom ($y_addr == 69656bv64); +axiom ($y_addr == 4325396bv64); function {:extern} L(mem$in: [bv64]bv8, index: bv64) returns (bool) { false } -function {:extern} {:bvbuiltin "bvadd"} bvadd32(bv32, bv32) returns (bv32); -function {:extern} {:bvbuiltin "bvadd"} bvadd33(bv33, bv33) returns (bv33); function {:extern} {:bvbuiltin "bvadd"} bvadd64(bv64, bv64) returns (bv64); -function {:extern} {:bvbuiltin "bvcomp"} bvcomp32(bv32, bv32) returns (bv1); -function {:extern} {:bvbuiltin "bvcomp"} bvcomp33(bv33, bv33) returns (bv1); -function {:extern} {:bvbuiltin "bvnot"} bvnot1(bv1) returns (bv1); function {:extern} gamma_load32(gammaMap: [bv64]bool, index: bv64) returns (bool) { (gammaMap[bvadd64(index, 3bv64)] && (gammaMap[bvadd64(index, 2bv64)] && (gammaMap[bvadd64(index, 1bv64)] && gammaMap[index]))) } +function {:extern} gamma_load64(gammaMap: [bv64]bool, index: bv64) returns (bool) { + (gammaMap[bvadd64(index, 7bv64)] && (gammaMap[bvadd64(index, 6bv64)] && (gammaMap[bvadd64(index, 5bv64)] && (gammaMap[bvadd64(index, 4bv64)] && (gammaMap[bvadd64(index, 3bv64)] && (gammaMap[bvadd64(index, 2bv64)] && (gammaMap[bvadd64(index, 1bv64)] && gammaMap[index]))))))) +} + function {:extern} gamma_store32(gammaMap: [bv64]bool, index: bv64, value: bool) returns ([bv64]bool) { gammaMap[index := value][bvadd64(index, 1bv64) := value][bvadd64(index, 2bv64) := value][bvadd64(index, 3bv64) := value] } @@ -46,17 +43,11 @@ function {:extern} memory_store32_le(memory: [bv64]bv8, index: bv64, value: bv32 memory[index := value[8:0]][bvadd64(index, 1bv64) := value[16:8]][bvadd64(index, 2bv64) := value[24:16]][bvadd64(index, 3bv64) := value[32:24]] } -function {:extern} {:bvbuiltin "zero_extend 1"} zero_extend1_32(bv32) returns (bv33); -function {:extern} {:bvbuiltin "zero_extend 32"} zero_extend32_32(bv32) returns (bv64); procedure {:extern} rely(); modifies Gamma_mem, mem; ensures (Gamma_mem == old(Gamma_mem)); ensures (mem == old(mem)); - free ensures (memory_load32_le(mem, 1912bv64) == 131073bv32); - free ensures (memory_load64_le(mem, 69016bv64) == 1808bv64); - free ensures (memory_load64_le(mem, 69024bv64) == 1728bv64); - free ensures (memory_load64_le(mem, 69616bv64) == 1812bv64); - free ensures (memory_load64_le(mem, 69640bv64) == 69640bv64); + free ensures (memory_load32_le(mem, 4196312bv64) == 131073bv32); procedure {:extern} rely_transitive(); modifies Gamma_mem, mem; @@ -74,84 +65,45 @@ procedure {:extern} rely_reflexive(); procedure {:extern} guarantee_reflexive(); modifies Gamma_mem, mem; -procedure main_1812(); - modifies CF, Gamma_CF, Gamma_NF, Gamma_R0, Gamma_R1, Gamma_VF, Gamma_ZF, Gamma_mem, NF, R0, R1, VF, ZF, mem; +procedure main(); + modifies Gamma_R0, Gamma_R1, Gamma_R2, Gamma_R3, Gamma_R4, Gamma_mem, R0, R1, R2, R3, R4, mem; requires (gamma_load32(Gamma_mem, $x_addr) == true); requires (gamma_load32(Gamma_mem, $y_addr) == false); - free requires (memory_load64_le(mem, 69632bv64) == 0bv64); - free requires (memory_load64_le(mem, 69640bv64) == 69640bv64); - free requires (memory_load32_le(mem, 1912bv64) == 131073bv32); - free requires (memory_load64_le(mem, 69016bv64) == 1808bv64); - free requires (memory_load64_le(mem, 69024bv64) == 1728bv64); - free requires (memory_load64_le(mem, 69616bv64) == 1812bv64); - free requires (memory_load64_le(mem, 69640bv64) == 69640bv64); - free ensures (memory_load32_le(mem, 1912bv64) == 131073bv32); - free ensures (memory_load64_le(mem, 69016bv64) == 1808bv64); - free ensures (memory_load64_le(mem, 69024bv64) == 1728bv64); - free ensures (memory_load64_le(mem, 69616bv64) == 1812bv64); - free ensures (memory_load64_le(mem, 69640bv64) == 69640bv64); + free requires (memory_load64_le(mem, 4325376bv64) == 0bv64); + free requires (memory_load64_le(mem, 4325384bv64) == 0bv64); + free requires (memory_load32_le(mem, 4196312bv64) == 131073bv32); + free ensures (memory_load32_le(mem, 4196312bv64) == 131073bv32); -implementation main_1812() +implementation main() { - var Cse0__5_3_7: bv32; - var Gamma_Cse0__5_3_7: bool; - var Gamma_load3: bool; - var load3: bv32; - main_1812__0__YwDxm6NpRSaYnJwZf~bgAg: - assume {:captureState "main_1812__0__YwDxm6NpRSaYnJwZf~bgAg"} true; - R0, Gamma_R0 := 69632bv64, true; - R0, Gamma_R0 := bvadd64(R0, 20bv64), Gamma_R0; - R1, Gamma_R1 := 1bv64, true; + var $load16: bv64; + var $load17: bv64; + var Gamma_$load16: bool; + var Gamma_$load17: bool; + $main$__0__$i2bc6yURTw~Pq2nxe63pQA: + assume {:captureState "$main$__0__$i2bc6yURTw~Pq2nxe63pQA"} true; + R2, Gamma_R2 := 4321280bv64, true; call rely(); - assert (L(mem, R0) ==> Gamma_R1); - mem, Gamma_mem := memory_store32_le(mem, R0, R1[32:0]), gamma_store32(Gamma_mem, R0, Gamma_R1); - assume {:captureState "1824_0"} true; - R0, Gamma_R0 := 69632bv64, true; - R0, Gamma_R0 := bvadd64(R0, 20bv64), Gamma_R0; + $load16, Gamma_$load16 := memory_load64_le(mem, bvadd64(R2, 4064bv64)), (gamma_load64(Gamma_mem, bvadd64(R2, 4064bv64)) || L(mem, bvadd64(R2, 4064bv64))); + R2, Gamma_R2 := $load16, Gamma_$load16; + R4, Gamma_R4 := 1bv64, true; + R1, Gamma_R1 := 4321280bv64, true; call rely(); - load3, Gamma_load3 := memory_load32_le(mem, R0), (gamma_load32(Gamma_mem, R0) || L(mem, R0)); - R0, Gamma_R0 := zero_extend32_32(load3), Gamma_load3; - Cse0__5_3_7, Gamma_Cse0__5_3_7 := bvadd32(R0[32:0], 0bv32), Gamma_R0; - VF, Gamma_VF := bvnot1(bvcomp32(Cse0__5_3_7, Cse0__5_3_7)), Gamma_Cse0__5_3_7; - CF, Gamma_CF := bvnot1(bvcomp33(zero_extend1_32(Cse0__5_3_7), bvadd33(zero_extend1_32(R0[32:0]), 4294967296bv33))), (Gamma_R0 && Gamma_Cse0__5_3_7); - ZF, Gamma_ZF := bvcomp32(Cse0__5_3_7, 0bv32), Gamma_Cse0__5_3_7; - NF, Gamma_NF := Cse0__5_3_7[32:31], Gamma_Cse0__5_3_7; - assert Gamma_ZF; - goto main_1812__0__YwDxm6NpRSaYnJwZf~bgAg_goto_main_1812__2__WXfzVKBzTQ2pcN9SDnwGAQ, main_1812__0__YwDxm6NpRSaYnJwZf~bgAg_goto_main_1812__1__YoxtYzmmTLarbLScWy3SCQ; - main_1812__0__YwDxm6NpRSaYnJwZf~bgAg_goto_main_1812__1__YoxtYzmmTLarbLScWy3SCQ: - assume {:captureState "main_1812__0__YwDxm6NpRSaYnJwZf~bgAg_goto_main_1812__1__YoxtYzmmTLarbLScWy3SCQ"} true; - assume (!(ZF == 1bv1)); - R0, Gamma_R0 := 69632bv64, true; - R0, Gamma_R0 := bvadd64(R0, 24bv64), Gamma_R0; - R1, Gamma_R1 := 3bv64, true; + $load17, Gamma_$load17 := memory_load64_le(mem, bvadd64(R1, 4080bv64)), (gamma_load64(Gamma_mem, bvadd64(R1, 4080bv64)) || L(mem, bvadd64(R1, 4080bv64))); + R1, Gamma_R1 := $load17, Gamma_$load17; + R3, Gamma_R3 := 3bv64, true; + R0, Gamma_R0 := 0bv64, true; call rely(); - assert (L(mem, R0) ==> Gamma_R1); - mem, Gamma_mem := memory_store32_le(mem, R0, R1[32:0]), gamma_store32(Gamma_mem, R0, Gamma_R1); - assume {:captureState "1860_0"} true; - goto main_1812__1__YoxtYzmmTLarbLScWy3SCQ; - main_1812__1__YoxtYzmmTLarbLScWy3SCQ: - assume {:captureState "main_1812__1__YoxtYzmmTLarbLScWy3SCQ"} true; - goto main_1812__3__RpUJmfB5RPyIGv0DK5At_g; - main_1812__0__YwDxm6NpRSaYnJwZf~bgAg_goto_main_1812__2__WXfzVKBzTQ2pcN9SDnwGAQ: - assume {:captureState "main_1812__0__YwDxm6NpRSaYnJwZf~bgAg_goto_main_1812__2__WXfzVKBzTQ2pcN9SDnwGAQ"} true; - assume (ZF == 1bv1); - R0, Gamma_R0 := 69632bv64, true; - R0, Gamma_R0 := bvadd64(R0, 24bv64), Gamma_R0; - R1, Gamma_R1 := 2bv64, true; + assert (L(mem, R2) ==> Gamma_R4); + mem, Gamma_mem := memory_store32_le(mem, R2, R4[32:0]), gamma_store32(Gamma_mem, R2, Gamma_R4); + assume {:captureState "4195996$0"} true; call rely(); - assert (L(mem, R0) ==> Gamma_R1); - mem, Gamma_mem := memory_store32_le(mem, R0, R1[32:0]), gamma_store32(Gamma_mem, R0, Gamma_R1); - assume {:captureState "1880_0"} true; - goto main_1812__2__WXfzVKBzTQ2pcN9SDnwGAQ; - main_1812__2__WXfzVKBzTQ2pcN9SDnwGAQ: - assume {:captureState "main_1812__2__WXfzVKBzTQ2pcN9SDnwGAQ"} true; - goto main_1812__3__RpUJmfB5RPyIGv0DK5At_g; - main_1812__3__RpUJmfB5RPyIGv0DK5At_g: - assume {:captureState "main_1812__3__RpUJmfB5RPyIGv0DK5At_g"} true; - R0, Gamma_R0 := 0bv64, true; - goto main_1812_basil_return; - main_1812_basil_return: - assume {:captureState "main_1812_basil_return"} true; + assert (L(mem, R1) ==> Gamma_R3); + mem, Gamma_mem := memory_store32_le(mem, R1, R3[32:0]), gamma_store32(Gamma_mem, R1, Gamma_R3); + assume {:captureState "4196000$0"} true; + goto main_basil_return; + main_basil_return: + assume {:captureState "main_basil_return"} true; return; } diff --git a/src/test/correct/cjump/gcc_pic/cjump.adt b/src/test/correct/cjump/gcc_pic/cjump.adt deleted file mode 100644 index 67314ed73..000000000 --- a/src/test/correct/cjump/gcc_pic/cjump.adt +++ /dev/null @@ -1,549 +0,0 @@ -Project(Attrs([Attr("filename","\"gcc_pic/cjump.out\""), -Attr("image-specification","(declare abi (name str))\n(declare arch (name str))\n(declare base-address (addr int))\n(declare bias (off int))\n(declare bits (size int))\n(declare code-region (addr int) (size int) (off int))\n(declare code-start (addr int))\n(declare entry-point (addr int))\n(declare external-reference (addr int) (name str))\n(declare format (name str))\n(declare is-executable (flag bool))\n(declare is-little-endian (flag bool))\n(declare llvm:base-address (addr int))\n(declare llvm:code-entry (name str) (off int) (size int))\n(declare llvm:coff-import-library (name str))\n(declare llvm:coff-virtual-section-header (name str) (addr int) (size int))\n(declare llvm:elf-program-header (name str) (off int) (size int))\n(declare llvm:elf-program-header-flags (name str) (ld bool) (r bool) \n (w bool) (x bool))\n(declare llvm:elf-virtual-program-header (name str) (addr int) (size int))\n(declare llvm:entry-point (addr int))\n(declare llvm:macho-symbol (name str) (value int))\n(declare llvm:name-reference (at int) (name str))\n(declare llvm:relocation (at int) (addr int))\n(declare llvm:section-entry (name str) (addr int) (size int) (off int))\n(declare llvm:section-flags (name str) (r bool) (w bool) (x bool))\n(declare llvm:segment-command (name str) (off int) (size int))\n(declare llvm:segment-command-flags (name str) (r bool) (w bool) (x bool))\n(declare llvm:symbol-entry (name str) (addr int) (size int) (off int)\n (value int))\n(declare llvm:virtual-segment-command (name str) (addr int) (size int))\n(declare mapped (addr int) (size int) (off int))\n(declare named-region (addr int) (size int) (name str))\n(declare named-symbol (addr int) (name str))\n(declare require (name str))\n(declare section (addr int) (size int))\n(declare segment (addr int) (size int) (r bool) (w bool) (x bool))\n(declare subarch (name str))\n(declare symbol-chunk (addr int) (size int) (root int))\n(declare symbol-value (addr int) (value int))\n(declare system (name str))\n(declare vendor (name str))\n\n(abi unknown)\n(arch aarch64)\n(base-address 0)\n(bias 0)\n(bits 64)\n(code-region 1956 20 1956)\n(code-region 1600 356 1600)\n(code-region 1488 96 1488)\n(code-region 1456 24 1456)\n(code-start 1652)\n(code-start 1600)\n(code-start 1876)\n(entry-point 1600)\n(external-reference 69576 _ITM_deregisterTMCloneTable)\n(external-reference 69584 __cxa_finalize)\n(external-reference 69600 __gmon_start__)\n(external-reference 69624 _ITM_registerTMCloneTable)\n(external-reference 69536 __libc_start_main)\n(external-reference 69544 __cxa_finalize)\n(external-reference 69552 __gmon_start__)\n(external-reference 69560 abort)\n(format elf)\n(is-executable true)\n(is-little-endian true)\n(llvm:base-address 0)\n(llvm:code-entry abort 0 0)\n(llvm:code-entry __cxa_finalize 0 0)\n(llvm:code-entry __libc_start_main 0 0)\n(llvm:code-entry _init 1456 0)\n(llvm:code-entry main 1876 80)\n(llvm:code-entry _start 1600 52)\n(llvm:code-entry abort@GLIBC_2.17 0 0)\n(llvm:code-entry _fini 1956 0)\n(llvm:code-entry __cxa_finalize@GLIBC_2.17 0 0)\n(llvm:code-entry __libc_start_main@GLIBC_2.34 0 0)\n(llvm:code-entry frame_dummy 1872 0)\n(llvm:code-entry __do_global_dtors_aux 1792 0)\n(llvm:code-entry register_tm_clones 1728 0)\n(llvm:code-entry deregister_tm_clones 1680 0)\n(llvm:code-entry call_weak_fn 1652 20)\n(llvm:code-entry .fini 1956 20)\n(llvm:code-entry .text 1600 356)\n(llvm:code-entry .plt 1488 96)\n(llvm:code-entry .init 1456 24)\n(llvm:elf-program-header 08 3464 632)\n(llvm:elf-program-header 07 0 0)\n(llvm:elf-program-header 06 1980 60)\n(llvm:elf-program-header 05 596 68)\n(llvm:elf-program-header 04 3480 496)\n(llvm:elf-program-header 03 3464 648)\n(llvm:elf-program-header 02 0 2200)\n(llvm:elf-program-header 01 568 27)\n(llvm:elf-program-header 00 64 504)\n(llvm:elf-program-header-flags 08 false true false false)\n(llvm:elf-program-header-flags 07 false true true false)\n(llvm:elf-program-header-flags 06 false true false false)\n(llvm:elf-program-header-flags 05 false true false false)\n(llvm:elf-program-header-flags 04 false true true false)\n(llvm:elf-program-header-flags 03 true true true false)\n(llvm:elf-program-header-flags 02 true true false true)\n(llvm:elf-program-header-flags 01 false true false false)\n(llvm:elf-program-header-flags 00 false true false false)\n(llvm:elf-virtual-program-header 08 69000 632)\n(llvm:elf-virtual-program-header 07 0 0)\n(llvm:elf-virtual-program-header 06 1980 60)\n(llvm:elf-virtual-program-header 05 596 68)\n(llvm:elf-virtual-program-header 04 69016 496)\n(llvm:elf-virtual-program-header 03 69000 664)\n(llvm:elf-virtual-program-header 02 0 2200)\n(llvm:elf-virtual-program-header 01 568 27)\n(llvm:elf-virtual-program-header 00 64 504)\n(llvm:entry-point 1600)\n(llvm:name-reference 69560 abort)\n(llvm:name-reference 69552 __gmon_start__)\n(llvm:name-reference 69544 __cxa_finalize)\n(llvm:name-reference 69536 __libc_start_main)\n(llvm:name-reference 69624 _ITM_registerTMCloneTable)\n(llvm:name-reference 69600 __gmon_start__)\n(llvm:name-reference 69584 __cxa_finalize)\n(llvm:name-reference 69576 _ITM_deregisterTMCloneTable)\n(llvm:section-entry .shstrtab 0 250 6837)\n(llvm:section-entry .strtab 0 541 6296)\n(llvm:section-entry .symtab 0 2136 4160)\n(llvm:section-entry .comment 0 43 4112)\n(llvm:section-entry .bss 69648 16 4112)\n(llvm:section-entry .data 69632 16 4096)\n(llvm:section-entry .got 69512 120 3976)\n(llvm:section-entry .dynamic 69016 496 3480)\n(llvm:section-entry .fini_array 69008 8 3472)\n(llvm:section-entry .init_array 69000 8 3464)\n(llvm:section-entry .eh_frame 2040 160 2040)\n(llvm:section-entry .eh_frame_hdr 1980 60 1980)\n(llvm:section-entry .rodata 1976 4 1976)\n(llvm:section-entry .fini 1956 20 1956)\n(llvm:section-entry .text 1600 356 1600)\n(llvm:section-entry .plt 1488 96 1488)\n(llvm:section-entry .init 1456 24 1456)\n(llvm:section-entry .rela.plt 1360 96 1360)\n(llvm:section-entry .rela.dyn 1120 240 1120)\n(llvm:section-entry .gnu.version_r 1072 48 1072)\n(llvm:section-entry .gnu.version 1054 18 1054)\n(llvm:section-entry .dynstr 912 141 912)\n(llvm:section-entry .dynsym 696 216 696)\n(llvm:section-entry .gnu.hash 664 28 664)\n(llvm:section-entry .note.ABI-tag 632 32 632)\n(llvm:section-entry .note.gnu.build-id 596 36 596)\n(llvm:section-entry .interp 568 27 568)\n(llvm:section-flags .shstrtab true false false)\n(llvm:section-flags .strtab true false false)\n(llvm:section-flags .symtab true false false)\n(llvm:section-flags .comment true false false)\n(llvm:section-flags .bss true true false)\n(llvm:section-flags .data true true false)\n(llvm:section-flags .got true true false)\n(llvm:section-flags .dynamic true true false)\n(llvm:section-flags .fini_array true true false)\n(llvm:section-flags .init_array true true false)\n(llvm:section-flags .eh_frame true false false)\n(llvm:section-flags .eh_frame_hdr true false false)\n(llvm:section-flags .rodata true false false)\n(llvm:section-flags .fini true false true)\n(llvm:section-flags .text true false true)\n(llvm:section-flags .plt true false true)\n(llvm:section-flags .init true false true)\n(llvm:section-flags .rela.plt true false false)\n(llvm:section-flags .rela.dyn true false false)\n(llvm:section-flags .gnu.version_r true false false)\n(llvm:section-flags .gnu.version true false false)\n(llvm:section-flags .dynstr true false false)\n(llvm:section-flags .dynsym true false false)\n(llvm:section-flags .gnu.hash true false false)\n(llvm:section-flags .note.ABI-tag true false false)\n(llvm:section-flags .note.gnu.build-id true false false)\n(llvm:section-flags .interp true false false)\n(llvm:symbol-entry abort 0 0 0 0)\n(llvm:symbol-entry __cxa_finalize 0 0 0 0)\n(llvm:symbol-entry __libc_start_main 0 0 0 0)\n(llvm:symbol-entry _init 1456 0 1456 1456)\n(llvm:symbol-entry main 1876 80 1876 1876)\n(llvm:symbol-entry _start 1600 52 1600 1600)\n(llvm:symbol-entry abort@GLIBC_2.17 0 0 0 0)\n(llvm:symbol-entry _fini 1956 0 1956 1956)\n(llvm:symbol-entry __cxa_finalize@GLIBC_2.17 0 0 0 0)\n(llvm:symbol-entry __libc_start_main@GLIBC_2.34 0 0 0 0)\n(llvm:symbol-entry frame_dummy 1872 0 1872 1872)\n(llvm:symbol-entry __do_global_dtors_aux 1792 0 1792 1792)\n(llvm:symbol-entry register_tm_clones 1728 0 1728 1728)\n(llvm:symbol-entry deregister_tm_clones 1680 0 1680 1680)\n(llvm:symbol-entry call_weak_fn 1652 20 1652 1652)\n(mapped 0 2200 0)\n(mapped 69000 648 3464)\n(named-region 0 2200 02)\n(named-region 69000 664 03)\n(named-region 568 27 .interp)\n(named-region 596 36 .note.gnu.build-id)\n(named-region 632 32 .note.ABI-tag)\n(named-region 664 28 .gnu.hash)\n(named-region 696 216 .dynsym)\n(named-region 912 141 .dynstr)\n(named-region 1054 18 .gnu.version)\n(named-region 1072 48 .gnu.version_r)\n(named-region 1120 240 .rela.dyn)\n(named-region 1360 96 .rela.plt)\n(named-region 1456 24 .init)\n(named-region 1488 96 .plt)\n(named-region 1600 356 .text)\n(named-region 1956 20 .fini)\n(named-region 1976 4 .rodata)\n(named-region 1980 60 .eh_frame_hdr)\n(named-region 2040 160 .eh_frame)\n(named-region 69000 8 .init_array)\n(named-region 69008 8 .fini_array)\n(named-region 69016 496 .dynamic)\n(named-region 69512 120 .got)\n(named-region 69632 16 .data)\n(named-region 69648 16 .bss)\n(named-region 0 43 .comment)\n(named-region 0 2136 .symtab)\n(named-region 0 541 .strtab)\n(named-region 0 250 .shstrtab)\n(named-symbol 1652 call_weak_fn)\n(named-symbol 1680 deregister_tm_clones)\n(named-symbol 1728 register_tm_clones)\n(named-symbol 1792 __do_global_dtors_aux)\n(named-symbol 1872 frame_dummy)\n(named-symbol 0 __libc_start_main@GLIBC_2.34)\n(named-symbol 0 __cxa_finalize@GLIBC_2.17)\n(named-symbol 1956 _fini)\n(named-symbol 0 abort@GLIBC_2.17)\n(named-symbol 1600 _start)\n(named-symbol 1876 main)\n(named-symbol 1456 _init)\n(named-symbol 0 __libc_start_main)\n(named-symbol 0 __cxa_finalize)\n(named-symbol 0 abort)\n(require libc.so.6)\n(section 568 27)\n(section 596 36)\n(section 632 32)\n(section 664 28)\n(section 696 216)\n(section 912 141)\n(section 1054 18)\n(section 1072 48)\n(section 1120 240)\n(section 1360 96)\n(section 1456 24)\n(section 1488 96)\n(section 1600 356)\n(section 1956 20)\n(section 1976 4)\n(section 1980 60)\n(section 2040 160)\n(section 69000 8)\n(section 69008 8)\n(section 69016 496)\n(section 69512 120)\n(section 69632 16)\n(section 69648 16)\n(section 0 43)\n(section 0 2136)\n(section 0 541)\n(section 0 250)\n(segment 0 2200 true false true)\n(segment 69000 664 true true false)\n(subarch v8)\n(symbol-chunk 1652 20 1652)\n(symbol-chunk 1600 52 1600)\n(symbol-chunk 1876 80 1876)\n(symbol-value 1652 1652)\n(symbol-value 1680 1680)\n(symbol-value 1728 1728)\n(symbol-value 1792 1792)\n(symbol-value 1872 1872)\n(symbol-value 1956 1956)\n(symbol-value 1600 1600)\n(symbol-value 1876 1876)\n(symbol-value 1456 1456)\n(symbol-value 0 0)\n(system \"\")\n(vendor \"\")\n"), -Attr("abi-name","\"aarch64-linux-gnu-elf\"")]), -Sections([Section(".shstrtab", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x40\x06\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xb0\x1b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x38\x00\x09\x00\x40\x00\x1c\x00\x1b\x00\x06\x00\x00\x00\x04\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x04\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x98\x08\x00\x00\x00\x00\x00\x00\x98\x08\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x01\x00\x00\x00\x06\x00\x00\x00\x88\x0d\x00\x00\x00\x00\x00\x00\x88\x0d"), -Section(".strtab", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x40\x06\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xb0\x1b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x38\x00\x09\x00\x40\x00\x1c\x00\x1b\x00\x06\x00\x00\x00\x04\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x04\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x98\x08\x00\x00\x00\x00\x00\x00\x98\x08\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x01\x00\x00\x00\x06\x00\x00\x00\x88\x0d\x00\x00\x00\x00\x00\x00\x88\x0d\x01\x00\x00\x00\x00\x00\x88\x0d\x01\x00\x00\x00\x00\x00\x88\x02\x00\x00\x00\x00\x00\x00\x98\x02\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x02\x00\x00\x00\x06\x00\x00\x00\x98\x0d\x00\x00\x00\x00\x00\x00\x98\x0d\x01\x00\x00\x00\x00\x00\x98\x0d\x01\x00\x00\x00\x00\x00\xf0\x01\x00\x00\x00\x00\x00\x00\xf0\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x04\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x50\xe5\x74\x64\x04\x00\x00\x00\xbc\x07\x00\x00\x00\x00\x00\x00\xbc\x07\x00\x00\x00\x00\x00\x00\xbc\x07\x00\x00\x00\x00\x00\x00\x3c\x00\x00\x00\x00\x00\x00\x00\x3c\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x51\xe5\x74\x64\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x52\xe5\x74\x64\x04\x00\x00\x00\x88\x0d\x00\x00\x00\x00\x00\x00\x88\x0d\x01\x00\x00\x00\x00\x00\x88\x0d\x01\x00\x00"), -Section(".symtab", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x40\x06\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xb0\x1b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x38\x00\x09\x00\x40\x00\x1c\x00\x1b\x00\x06\x00\x00\x00\x04\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x04\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x98\x08\x00\x00\x00\x00\x00\x00\x98\x08\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x01\x00\x00\x00\x06\x00\x00\x00\x88\x0d\x00\x00\x00\x00\x00\x00\x88\x0d\x01\x00\x00\x00\x00\x00\x88\x0d\x01\x00\x00\x00\x00\x00\x88\x02\x00\x00\x00\x00\x00\x00\x98\x02\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x02\x00\x00\x00\x06\x00\x00\x00\x98\x0d\x00\x00\x00\x00\x00\x00\x98\x0d\x01\x00\x00\x00\x00\x00\x98\x0d\x01\x00\x00\x00\x00\x00\xf0\x01\x00\x00\x00\x00\x00\x00\xf0\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x04\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x50\xe5\x74\x64\x04\x00\x00\x00\xbc\x07\x00\x00\x00\x00\x00\x00\xbc\x07\x00\x00\x00\x00\x00\x00\xbc\x07\x00\x00\x00\x00\x00\x00\x3c\x00\x00\x00\x00\x00\x00\x00\x3c\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x51\xe5\x74\x64\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x52\xe5\x74\x64\x04\x00\x00\x00\x88\x0d\x00\x00\x00\x00\x00\x00\x88\x0d\x01\x00\x00\x00\x00\x00\x88\x0d\x01\x00\x00\x00\x00\x00\x78\x02\x00\x00\x00\x00\x00\x00\x78\x02\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x2f\x6c\x69\x62\x2f\x6c\x64\x2d\x6c\x69\x6e\x75\x78\x2d\x61\x61\x72\x63\x68\x36\x34\x2e\x73\x6f\x2e\x31\x00\x00\x04\x00\x00\x00\x14\x00\x00\x00\x03\x00\x00\x00\x47\x4e\x55\x00\x7a\x2a\xea\x5d\x1f\x44\x71\x8e\x9e\xc2\xc0\xe2\x9d\xce\x8f\x55\x49\x0e\x9a\x03\x04\x00\x00\x00\x10\x00\x00\x00\x01\x00\x00\x00\x47\x4e\x55\x00\x00\x00\x00\x00\x03\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x01\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x0b\x00\xb0\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x16\x00\x00\x10\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x48\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x22\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x22\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x73\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5f\x5f\x63\x78\x61\x5f\x66\x69\x6e\x61\x6c\x69\x7a\x65\x00\x5f\x5f\x6c\x69\x62\x63\x5f\x73\x74\x61\x72\x74\x5f\x6d\x61\x69\x6e\x00\x61\x62\x6f\x72\x74\x00\x6c\x69\x62\x63\x2e\x73\x6f\x2e\x36\x00\x47\x4c\x49\x42\x43\x5f\x32\x2e\x31\x37\x00\x47\x4c\x49\x42\x43\x5f\x32\x2e\x33\x34\x00\x5f\x49\x54\x4d\x5f\x64\x65\x72\x65\x67\x69\x73\x74\x65\x72\x54\x4d\x43\x6c\x6f\x6e\x65\x54\x61\x62\x6c\x65\x00\x5f\x5f\x67\x6d\x6f\x6e\x5f\x73\x74\x61\x72\x74\x5f\x5f\x00\x5f\x49\x54\x4d\x5f\x72\x65\x67\x69\x73\x74\x65\x72\x54\x4d\x43\x6c\x6f\x6e\x65\x54\x61\x62\x6c\x65\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x01\x00\x03\x00\x01\x00\x03\x00\x01\x00\x01\x00\x02\x00\x28\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x97\x91\x96\x06\x00\x00\x03\x00\x32\x00\x00\x00\x10\x00\x00\x00\xb4\x91\x96\x06\x00\x00\x02\x00\x3d\x00\x00\x00\x00\x00\x00\x00\x88\x0d\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x50\x07\x00\x00\x00\x00\x00\x00\x90\x0d\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\xd8\x0f\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x14\x10\x01\x00\x00\x00\x00\x00\xe8\x0f\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x18\x10\x01\x00\x00\x00\x00\x00\xf0\x0f\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x54\x07\x00\x00\x00\x00\x00\x00\x08\x10\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x08\x10\x01\x00\x00\x00\x00\x00\xc8\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xd0\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe0\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xf8\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xa0\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xa8\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xb0\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xb8\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1f\x20\x03\xd5\xfd\x7b\xbf\xa9\xfd\x03\x00\x91\x2e\x00\x00\x94\xfd\x7b\xc1\xa8\xc0\x03\x5f\xd6\x00\x00\x00\x00\x00\x00\x00\x00\xf0\x7b\xbf\xa9\x90\x00\x00\x90\x11\xce\x47\xf9\x10\x62\x3e\x91\x20\x02\x1f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x90\x00\x00\x90\x11\xd2\x47\xf9\x10\x82\x3e\x91\x20\x02\x1f\xd6\x90\x00\x00\x90\x11\xd6\x47\xf9\x10\xa2\x3e\x91\x20\x02\x1f\xd6\x90\x00\x00\x90\x11\xda\x47\xf9\x10\xc2\x3e\x91\x20\x02\x1f\xd6\x90\x00\x00\x90\x11\xde\x47\xf9\x10\xe2\x3e\x91\x20\x02\x1f\xd6\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1f\x20\x03\xd5\x1d\x00\x80\xd2\x1e\x00\x80\xd2\xe5\x03\x00\xaa\xe1\x03\x40\xf9\xe2\x23\x00\x91\xe6\x03\x00\x91\x80\x00\x00\x90\x00\xf8\x47\xf9\x03\x00\x80\xd2\x04\x00\x80\xd2\xe1\xff\xff\x97\xec\xff\xff\x97\x80\x00\x00\x90\x00\xf0\x47\xf9\x40\x00\x00\xb4\xe4\xff\xff\x17\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x80\x00\x00\xb0\x00\x40\x00\x91\x81\x00\x00\xb0\x21\x40\x00\x91\x3f\x00\x00\xeb\xc0\x00\x00\x54\x81\x00\x00\x90\x21\xe4\x47\xf9\x61\x00\x00\xb4\xf0\x03\x01\xaa\x00\x02\x1f\xd6\xc0\x03\x5f\xd6\x80\x00\x00\xb0\x00\x40\x00\x91\x81\x00\x00\xb0\x21\x40\x00\x91\x21\x00\x00\xcb\x22\xfc\x7f\xd3\x41\x0c\x81\x8b\x21\xfc\x41\x93\xc1\x00\x00\xb4\x82\x00\x00\x90\x42\xfc\x47\xf9\x62\x00\x00\xb4\xf0\x03\x02\xaa\x00\x02\x1f\xd6\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\xfd\x7b\xbe\xa9\xfd\x03\x00\x91\xf3\x0b\x00\xf9\x93\x00\x00\xb0\x60\x42\x40\x39\x40\x01\x00\x35\x80\x00\x00\x90\x00\xe8\x47\xf9\x80\x00\x00\xb4\x80\x00\x00\xb0\x00\x04\x40\xf9\xb5\xff\xff\x97\xd8\xff\xff\x97\x20\x00\x80\x52\x60\x42\x00\x39\xf3\x0b\x40\xf9\xfd\x7b\xc2\xa8\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\xdc\xff\xff\x17\x80\x00\x00\x90\x00\xec\x47\xf9\x21\x00\x80\x52\x01\x00\x00\xb9\x80\x00\x00\x90\x00\xec\x47\xf9\x00\x00\x40\xb9\x1f\x00\x00\x71\xc0\x00\x00\x54\x80\x00\x00\x90\x00\xf4\x47\xf9\x61\x00\x80\x52\x01\x00\x00\xb9\x05\x00\x00\x14\x80\x00\x00\x90\x00\xf4\x47\xf9\x41\x00\x80\x52\x01\x00\x00\xb9\x00\x00\x80\x52\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\xfd\x7b\xbf\xa9\xfd\x03\x00\x91\xfd\x7b\xc1\xa8\xc0\x03\x5f\xd6\x01\x00\x02\x00\x01\x1b\x03\x3b\x38\x00\x00\x00\x06\x00\x00\x00\x84\xfe\xff\xff\x50\x00\x00\x00\xd4\xfe\xff\xff\x64\x00\x00\x00\x04\xff\xff\xff\x78\x00\x00\x00\x44\xff\xff\xff\x8c\x00\x00\x00\x94\xff\xff\xff\xb0\x00\x00\x00\x98\xff\xff\xff\xc4\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x01\x7a\x52\x00\x04\x78\x1e\x01\x1b\x0c\x1f\x00\x10\x00\x00\x00\x18\x00\x00\x00\x2c\xfe\xff\xff\x34\x00\x00\x00\x00\x41\x07\x1e\x10\x00\x00\x00\x2c\x00\x00\x00\x68\xfe\xff\xff\x30\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x40\x00\x00\x00\x84\xfe\xff\xff\x3c\x00\x00\x00\x00\x00\x00\x00\x20\x00\x00\x00\x54\x00\x00\x00\xb0\xfe\xff\xff\x48\x00\x00\x00"), -Section(".comment", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x40\x06\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xb0\x1b\x00"), -Section(".interp", 0x238, "\x2f\x6c\x69\x62\x2f\x6c\x64\x2d\x6c\x69\x6e\x75\x78\x2d\x61\x61\x72\x63\x68\x36\x34\x2e\x73\x6f\x2e\x31\x00"), -Section(".note.gnu.build-id", 0x254, "\x04\x00\x00\x00\x14\x00\x00\x00\x03\x00\x00\x00\x47\x4e\x55\x00\x7a\x2a\xea\x5d\x1f\x44\x71\x8e\x9e\xc2\xc0\xe2\x9d\xce\x8f\x55\x49\x0e\x9a\x03"), -Section(".note.ABI-tag", 0x278, "\x04\x00\x00\x00\x10\x00\x00\x00\x01\x00\x00\x00\x47\x4e\x55\x00\x00\x00\x00\x00\x03\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00"), -Section(".gnu.hash", 0x298, "\x01\x00\x00\x00\x01\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".dynsym", 0x2B8, "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x0b\x00\xb0\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x16\x00\x00\x10\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x48\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x22\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x22\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x73\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".dynstr", 0x390, "\x00\x5f\x5f\x63\x78\x61\x5f\x66\x69\x6e\x61\x6c\x69\x7a\x65\x00\x5f\x5f\x6c\x69\x62\x63\x5f\x73\x74\x61\x72\x74\x5f\x6d\x61\x69\x6e\x00\x61\x62\x6f\x72\x74\x00\x6c\x69\x62\x63\x2e\x73\x6f\x2e\x36\x00\x47\x4c\x49\x42\x43\x5f\x32\x2e\x31\x37\x00\x47\x4c\x49\x42\x43\x5f\x32\x2e\x33\x34\x00\x5f\x49\x54\x4d\x5f\x64\x65\x72\x65\x67\x69\x73\x74\x65\x72\x54\x4d\x43\x6c\x6f\x6e\x65\x54\x61\x62\x6c\x65\x00\x5f\x5f\x67\x6d\x6f\x6e\x5f\x73\x74\x61\x72\x74\x5f\x5f\x00\x5f\x49\x54\x4d\x5f\x72\x65\x67\x69\x73\x74\x65\x72\x54\x4d\x43\x6c\x6f\x6e\x65\x54\x61\x62\x6c\x65\x00"), -Section(".gnu.version", 0x41E, "\x00\x00\x00\x00\x00\x00\x02\x00\x01\x00\x03\x00\x01\x00\x03\x00\x01\x00"), -Section(".gnu.version_r", 0x430, "\x01\x00\x02\x00\x28\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x97\x91\x96\x06\x00\x00\x03\x00\x32\x00\x00\x00\x10\x00\x00\x00\xb4\x91\x96\x06\x00\x00\x02\x00\x3d\x00\x00\x00\x00\x00\x00\x00"), -Section(".rela.dyn", 0x460, "\x88\x0d\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x50\x07\x00\x00\x00\x00\x00\x00\x90\x0d\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\xd8\x0f\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x14\x10\x01\x00\x00\x00\x00\x00\xe8\x0f\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x18\x10\x01\x00\x00\x00\x00\x00\xf0\x0f\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x54\x07\x00\x00\x00\x00\x00\x00\x08\x10\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x08\x10\x01\x00\x00\x00\x00\x00\xc8\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xd0\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe0\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xf8\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".rela.plt", 0x550, "\xa0\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xa8\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xb0\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xb8\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".init", 0x5B0, "\x1f\x20\x03\xd5\xfd\x7b\xbf\xa9\xfd\x03\x00\x91\x2e\x00\x00\x94\xfd\x7b\xc1\xa8\xc0\x03\x5f\xd6"), -Section(".plt", 0x5D0, "\xf0\x7b\xbf\xa9\x90\x00\x00\x90\x11\xce\x47\xf9\x10\x62\x3e\x91\x20\x02\x1f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x90\x00\x00\x90\x11\xd2\x47\xf9\x10\x82\x3e\x91\x20\x02\x1f\xd6\x90\x00\x00\x90\x11\xd6\x47\xf9\x10\xa2\x3e\x91\x20\x02\x1f\xd6\x90\x00\x00\x90\x11\xda\x47\xf9\x10\xc2\x3e\x91\x20\x02\x1f\xd6\x90\x00\x00\x90\x11\xde\x47\xf9\x10\xe2\x3e\x91\x20\x02\x1f\xd6"), -Section(".fini", 0x7A4, "\x1f\x20\x03\xd5\xfd\x7b\xbf\xa9\xfd\x03\x00\x91\xfd\x7b\xc1\xa8\xc0\x03\x5f\xd6"), -Section(".rodata", 0x7B8, "\x01\x00\x02\x00"), -Section(".eh_frame_hdr", 0x7BC, "\x01\x1b\x03\x3b\x38\x00\x00\x00\x06\x00\x00\x00\x84\xfe\xff\xff\x50\x00\x00\x00\xd4\xfe\xff\xff\x64\x00\x00\x00\x04\xff\xff\xff\x78\x00\x00\x00\x44\xff\xff\xff\x8c\x00\x00\x00\x94\xff\xff\xff\xb0\x00\x00\x00\x98\xff\xff\xff\xc4\x00\x00\x00"), -Section(".eh_frame", 0x7F8, "\x10\x00\x00\x00\x00\x00\x00\x00\x01\x7a\x52\x00\x04\x78\x1e\x01\x1b\x0c\x1f\x00\x10\x00\x00\x00\x18\x00\x00\x00\x2c\xfe\xff\xff\x34\x00\x00\x00\x00\x41\x07\x1e\x10\x00\x00\x00\x2c\x00\x00\x00\x68\xfe\xff\xff\x30\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x40\x00\x00\x00\x84\xfe\xff\xff\x3c\x00\x00\x00\x00\x00\x00\x00\x20\x00\x00\x00\x54\x00\x00\x00\xb0\xfe\xff\xff\x48\x00\x00\x00\x00\x41\x0e\x20\x9d\x04\x9e\x03\x42\x93\x02\x4e\xde\xdd\xd3\x0e\x00\x00\x00\x00\x10\x00\x00\x00\x78\x00\x00\x00\xdc\xfe\xff\xff\x04\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x8c\x00\x00\x00\xcc\xfe\xff\xff\x50\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".fini_array", 0x10D90, "\x00\x07\x00\x00\x00\x00\x00\x00"), -Section(".dynamic", 0x10D98, "\x01\x00\x00\x00\x00\x00\x00\x00\x28\x00\x00\x00\x00\x00\x00\x00\x0c\x00\x00\x00\x00\x00\x00\x00\xb0\x05\x00\x00\x00\x00\x00\x00\x0d\x00\x00\x00\x00\x00\x00\x00\xa4\x07\x00\x00\x00\x00\x00\x00\x19\x00\x00\x00\x00\x00\x00\x00\x88\x0d\x01\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x1a\x00\x00\x00\x00\x00\x00\x00\x90\x0d\x01\x00\x00\x00\x00\x00\x1c\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\xf5\xfe\xff\x6f\x00\x00\x00\x00\x98\x02\x00\x00\x00\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x90\x03\x00\x00\x00\x00\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\xb8\x02\x00\x00\x00\x00\x00\x00\x0a\x00\x00\x00\x00\x00\x00\x00\x8d\x00\x00\x00\x00\x00\x00\x00\x0b\x00\x00\x00\x00\x00\x00\x00\x18\x00\x00\x00\x00\x00\x00\x00\x15\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x88\x0f\x01\x00\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x60\x00\x00\x00\x00\x00\x00\x00\x14\x00\x00\x00\x00\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x17\x00\x00\x00\x00\x00\x00\x00\x50\x05\x00\x00\x00\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x60\x04\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\xf0\x00\x00\x00\x00\x00\x00\x00\x09\x00\x00\x00\x00\x00\x00\x00\x18\x00\x00\x00\x00\x00\x00\x00\x1e\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\xfb\xff\xff\x6f\x00\x00\x00\x00\x01\x00\x00\x08\x00\x00\x00\x00\xfe\xff\xff\x6f\x00\x00\x00\x00\x30\x04\x00\x00\x00\x00\x00\x00\xff\xff\xff\x6f\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\xf0\xff\xff\x6f\x00\x00\x00\x00\x1e\x04\x00\x00\x00\x00\x00\x00\xf9\xff\xff\x6f\x00\x00\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".got", 0x10F88, "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xd0\x05\x00\x00\x00\x00\x00\x00\xd0\x05\x00\x00\x00\x00\x00\x00\xd0\x05\x00\x00\x00\x00\x00\x00\xd0\x05\x00\x00\x00\x00\x00\x00\x98\x0d\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x14\x10\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x18\x10\x01\x00\x00\x00\x00\x00\x54\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".data", 0x11000, "\x00\x00\x00\x00\x00\x00\x00\x00\x08\x10\x01\x00\x00\x00\x00\x00"), -Section(".init_array", 0x10D88, "\x50\x07\x00\x00\x00\x00\x00\x00"), -Section(".text", 0x640, "\x1f\x20\x03\xd5\x1d\x00\x80\xd2\x1e\x00\x80\xd2\xe5\x03\x00\xaa\xe1\x03\x40\xf9\xe2\x23\x00\x91\xe6\x03\x00\x91\x80\x00\x00\x90\x00\xf8\x47\xf9\x03\x00\x80\xd2\x04\x00\x80\xd2\xe1\xff\xff\x97\xec\xff\xff\x97\x80\x00\x00\x90\x00\xf0\x47\xf9\x40\x00\x00\xb4\xe4\xff\xff\x17\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x80\x00\x00\xb0\x00\x40\x00\x91\x81\x00\x00\xb0\x21\x40\x00\x91\x3f\x00\x00\xeb\xc0\x00\x00\x54\x81\x00\x00\x90\x21\xe4\x47\xf9\x61\x00\x00\xb4\xf0\x03\x01\xaa\x00\x02\x1f\xd6\xc0\x03\x5f\xd6\x80\x00\x00\xb0\x00\x40\x00\x91\x81\x00\x00\xb0\x21\x40\x00\x91\x21\x00\x00\xcb\x22\xfc\x7f\xd3\x41\x0c\x81\x8b\x21\xfc\x41\x93\xc1\x00\x00\xb4\x82\x00\x00\x90\x42\xfc\x47\xf9\x62\x00\x00\xb4\xf0\x03\x02\xaa\x00\x02\x1f\xd6\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\xfd\x7b\xbe\xa9\xfd\x03\x00\x91\xf3\x0b\x00\xf9\x93\x00\x00\xb0\x60\x42\x40\x39\x40\x01\x00\x35\x80\x00\x00\x90\x00\xe8\x47\xf9\x80\x00\x00\xb4\x80\x00\x00\xb0\x00\x04\x40\xf9\xb5\xff\xff\x97\xd8\xff\xff\x97\x20\x00\x80\x52\x60\x42\x00\x39\xf3\x0b\x40\xf9\xfd\x7b\xc2\xa8\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\xdc\xff\xff\x17\x80\x00\x00\x90\x00\xec\x47\xf9\x21\x00\x80\x52\x01\x00\x00\xb9\x80\x00\x00\x90\x00\xec\x47\xf9\x00\x00\x40\xb9\x1f\x00\x00\x71\xc0\x00\x00\x54\x80\x00\x00\x90\x00\xf4\x47\xf9\x61\x00\x80\x52\x01\x00\x00\xb9\x05\x00\x00\x14\x80\x00\x00\x90\x00\xf4\x47\xf9\x41\x00\x80\x52\x01\x00\x00\xb9\x00\x00\x80\x52\xc0\x03\x5f\xd6")]), -Memmap([Annotation(Region(0x0,0x897), Attr("segment","02 0 2200")), -Annotation(Region(0x640,0x673), Attr("symbol","\"_start\"")), -Annotation(Region(0x0,0xF9), Attr("section","\".shstrtab\"")), -Annotation(Region(0x0,0x21C), Attr("section","\".strtab\"")), -Annotation(Region(0x0,0x857), Attr("section","\".symtab\"")), -Annotation(Region(0x0,0x2A), Attr("section","\".comment\"")), -Annotation(Region(0x238,0x252), Attr("section","\".interp\"")), -Annotation(Region(0x254,0x277), Attr("section","\".note.gnu.build-id\"")), -Annotation(Region(0x278,0x297), Attr("section","\".note.ABI-tag\"")), -Annotation(Region(0x298,0x2B3), Attr("section","\".gnu.hash\"")), -Annotation(Region(0x2B8,0x38F), Attr("section","\".dynsym\"")), -Annotation(Region(0x390,0x41C), Attr("section","\".dynstr\"")), -Annotation(Region(0x41E,0x42F), Attr("section","\".gnu.version\"")), -Annotation(Region(0x430,0x45F), Attr("section","\".gnu.version_r\"")), -Annotation(Region(0x460,0x54F), Attr("section","\".rela.dyn\"")), -Annotation(Region(0x550,0x5AF), Attr("section","\".rela.plt\"")), -Annotation(Region(0x5B0,0x5C7), Attr("section","\".init\"")), -Annotation(Region(0x5D0,0x62F), Attr("section","\".plt\"")), -Annotation(Region(0x5B0,0x5C7), Attr("code-region","()")), -Annotation(Region(0x5D0,0x62F), Attr("code-region","()")), -Annotation(Region(0x640,0x673), Attr("symbol-info","_start 0x640 52")), -Annotation(Region(0x674,0x687), Attr("symbol","\"call_weak_fn\"")), -Annotation(Region(0x674,0x687), Attr("symbol-info","call_weak_fn 0x674 20")), -Annotation(Region(0x754,0x7A3), Attr("symbol","\"main\"")), -Annotation(Region(0x754,0x7A3), Attr("symbol-info","main 0x754 80")), -Annotation(Region(0x7A4,0x7B7), Attr("section","\".fini\"")), -Annotation(Region(0x7B8,0x7BB), Attr("section","\".rodata\"")), -Annotation(Region(0x7BC,0x7F7), Attr("section","\".eh_frame_hdr\"")), -Annotation(Region(0x7F8,0x897), Attr("section","\".eh_frame\"")), -Annotation(Region(0x10D88,0x1100F), Attr("segment","03 0x10D88 664")), -Annotation(Region(0x10D90,0x10D97), Attr("section","\".fini_array\"")), -Annotation(Region(0x10D98,0x10F87), Attr("section","\".dynamic\"")), -Annotation(Region(0x10F88,0x10FFF), Attr("section","\".got\"")), -Annotation(Region(0x11000,0x1100F), Attr("section","\".data\"")), -Annotation(Region(0x10D88,0x10D8F), Attr("section","\".init_array\"")), -Annotation(Region(0x640,0x7A3), Attr("section","\".text\"")), -Annotation(Region(0x640,0x7A3), Attr("code-region","()")), -Annotation(Region(0x7A4,0x7B7), Attr("code-region","()"))]), -Program(Tid(1_501, "%000005dd"), Attrs([]), - Subs([Sub(Tid(1_447, "@__cxa_finalize"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x600"), -Attr("stub","()")]), "__cxa_finalize", Args([Arg(Tid(1_502, "%000005de"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("__cxa_finalize_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(956, "@__cxa_finalize"), - Attrs([Attr("address","0x600")]), Phis([]), -Defs([Def(Tid(1_204, "%000004b4"), Attrs([Attr("address","0x600"), -Attr("insn","adrp x16, #65536")]), Var("R16",Imm(64)), Int(65536,64)), -Def(Tid(1_211, "%000004bb"), Attrs([Attr("address","0x604"), -Attr("insn","ldr x17, [x16, #0xfa8]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(4008,64)),LittleEndian(),64)), -Def(Tid(1_217, "%000004c1"), Attrs([Attr("address","0x608"), -Attr("insn","add x16, x16, #0xfa8")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(4008,64)))]), Jmps([Call(Tid(1_222, "%000004c6"), - Attrs([Attr("address","0x60C"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), -Sub(Tid(1_448, "@__do_global_dtors_aux"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x700")]), - "__do_global_dtors_aux", Args([Arg(Tid(1_503, "%000005df"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("__do_global_dtors_aux_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(670, "@__do_global_dtors_aux"), - Attrs([Attr("address","0x700")]), Phis([]), Defs([Def(Tid(674, "%000002a2"), - Attrs([Attr("address","0x700"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("#3",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(18446744073709551584,64))), -Def(Tid(680, "%000002a8"), Attrs([Attr("address","0x700"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("#3",Imm(64)),Var("R29",Imm(64)),LittleEndian(),64)), -Def(Tid(686, "%000002ae"), Attrs([Attr("address","0x700"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("#3",Imm(64)),Int(8,64)),Var("R30",Imm(64)),LittleEndian(),64)), -Def(Tid(690, "%000002b2"), Attrs([Attr("address","0x700"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("R31",Imm(64)), -Var("#3",Imm(64))), Def(Tid(696, "%000002b8"), - Attrs([Attr("address","0x704"), Attr("insn","mov x29, sp")]), - Var("R29",Imm(64)), Var("R31",Imm(64))), Def(Tid(704, "%000002c0"), - Attrs([Attr("address","0x708"), Attr("insn","str x19, [sp, #0x10]")]), - Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(16,64)),Var("R19",Imm(64)),LittleEndian(),64)), -Def(Tid(709, "%000002c5"), Attrs([Attr("address","0x70C"), -Attr("insn","adrp x19, #69632")]), Var("R19",Imm(64)), Int(69632,64)), -Def(Tid(716, "%000002cc"), Attrs([Attr("address","0x710"), -Attr("insn","ldrb w0, [x19, #0x10]")]), Var("R0",Imm(64)), -UNSIGNED(64,Load(Var("mem",Mem(64,8)),PLUS(Var("R19",Imm(64)),Int(16,64)),LittleEndian(),8)))]), -Jmps([Goto(Tid(723, "%000002d3"), Attrs([Attr("address","0x714"), -Attr("insn","cbnz w0, #0x28")]), - NEQ(Extract(31,0,Var("R0",Imm(64))),Int(0,32)), -Direct(Tid(721, "%000002d1"))), Goto(Tid(1_489, "%000005d1"), Attrs([]), - Int(1,1), Direct(Tid(901, "%00000385")))])), Blk(Tid(901, "%00000385"), - Attrs([Attr("address","0x718")]), Phis([]), Defs([Def(Tid(904, "%00000388"), - Attrs([Attr("address","0x718"), Attr("insn","adrp x0, #65536")]), - Var("R0",Imm(64)), Int(65536,64)), Def(Tid(911, "%0000038f"), - Attrs([Attr("address","0x71C"), Attr("insn","ldr x0, [x0, #0xfd0]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(4048,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(917, "%00000395"), Attrs([Attr("address","0x720"), -Attr("insn","cbz x0, #0x10")]), EQ(Var("R0",Imm(64)),Int(0,64)), -Direct(Tid(915, "%00000393"))), Goto(Tid(1_490, "%000005d2"), Attrs([]), - Int(1,1), Direct(Tid(940, "%000003ac")))])), Blk(Tid(940, "%000003ac"), - Attrs([Attr("address","0x724")]), Phis([]), Defs([Def(Tid(943, "%000003af"), - Attrs([Attr("address","0x724"), Attr("insn","adrp x0, #69632")]), - Var("R0",Imm(64)), Int(69632,64)), Def(Tid(950, "%000003b6"), - Attrs([Attr("address","0x728"), Attr("insn","ldr x0, [x0, #0x8]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(955, "%000003bb"), Attrs([Attr("address","0x72C"), -Attr("insn","bl #-0x12c")]), Var("R30",Imm(64)), Int(1840,64))]), -Jmps([Call(Tid(958, "%000003be"), Attrs([Attr("address","0x72C"), -Attr("insn","bl #-0x12c")]), Int(1,1), -(Direct(Tid(1_447, "@__cxa_finalize")),Direct(Tid(915, "%00000393"))))])), -Blk(Tid(915, "%00000393"), Attrs([Attr("address","0x730")]), Phis([]), -Defs([Def(Tid(923, "%0000039b"), Attrs([Attr("address","0x730"), -Attr("insn","bl #-0xa0")]), Var("R30",Imm(64)), Int(1844,64))]), -Jmps([Call(Tid(925, "%0000039d"), Attrs([Attr("address","0x730"), -Attr("insn","bl #-0xa0")]), Int(1,1), -(Direct(Tid(1_461, "@deregister_tm_clones")),Direct(Tid(927, "%0000039f"))))])), -Blk(Tid(927, "%0000039f"), Attrs([Attr("address","0x734")]), Phis([]), -Defs([Def(Tid(930, "%000003a2"), Attrs([Attr("address","0x734"), -Attr("insn","mov w0, #0x1")]), Var("R0",Imm(64)), Int(1,64)), -Def(Tid(938, "%000003aa"), Attrs([Attr("address","0x738"), -Attr("insn","strb w0, [x19, #0x10]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R19",Imm(64)),Int(16,64)),Extract(7,0,Var("R0",Imm(64))),LittleEndian(),8))]), -Jmps([Goto(Tid(1_491, "%000005d3"), Attrs([]), Int(1,1), -Direct(Tid(721, "%000002d1")))])), Blk(Tid(721, "%000002d1"), - Attrs([Attr("address","0x73C")]), Phis([]), Defs([Def(Tid(731, "%000002db"), - Attrs([Attr("address","0x73C"), Attr("insn","ldr x19, [sp, #0x10]")]), - Var("R19",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(16,64)),LittleEndian(),64)), -Def(Tid(738, "%000002e2"), Attrs([Attr("address","0x740"), -Attr("insn","ldp x29, x30, [sp], #0x20")]), Var("R29",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(743, "%000002e7"), Attrs([Attr("address","0x740"), -Attr("insn","ldp x29, x30, [sp], #0x20")]), Var("R30",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(747, "%000002eb"), Attrs([Attr("address","0x740"), -Attr("insn","ldp x29, x30, [sp], #0x20")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(32,64)))]), Jmps([Call(Tid(752, "%000002f0"), - Attrs([Attr("address","0x744"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), Sub(Tid(1_452, "@__libc_start_main"), - Attrs([Attr("c.proto","signed (*)(signed (*)(signed , char** , char** );* main, signed , char** , \nvoid* auxv)"), -Attr("address","0x5F0"), Attr("stub","()")]), "__libc_start_main", - Args([Arg(Tid(1_504, "%000005e0"), - Attrs([Attr("c.layout","**[ : 64]"), -Attr("c.data","Top:u64 ptr ptr"), -Attr("c.type","signed (*)(signed , char** , char** );*")]), - Var("__libc_start_main_main",Imm(64)), Var("R0",Imm(64)), In()), -Arg(Tid(1_505, "%000005e1"), Attrs([Attr("c.layout","[signed : 32]"), -Attr("c.data","Top:u32"), Attr("c.type","signed")]), - Var("__libc_start_main_arg2",Imm(32)), LOW(32,Var("R1",Imm(64))), In()), -Arg(Tid(1_506, "%000005e2"), Attrs([Attr("c.layout","**[char : 8]"), -Attr("c.data","Top:u8 ptr ptr"), Attr("c.type","char**")]), - Var("__libc_start_main_arg3",Imm(64)), Var("R2",Imm(64)), Both()), -Arg(Tid(1_507, "%000005e3"), Attrs([Attr("c.layout","*[ : 8]"), -Attr("c.data","{} ptr"), Attr("c.type","void*")]), - Var("__libc_start_main_auxv",Imm(64)), Var("R3",Imm(64)), Both()), -Arg(Tid(1_508, "%000005e4"), Attrs([Attr("c.layout","[signed : 32]"), -Attr("c.data","Top:u32"), Attr("c.type","signed")]), - Var("__libc_start_main_result",Imm(32)), LOW(32,Var("R0",Imm(64))), -Out())]), Blks([Blk(Tid(503, "@__libc_start_main"), - Attrs([Attr("address","0x5F0")]), Phis([]), -Defs([Def(Tid(1_182, "%0000049e"), Attrs([Attr("address","0x5F0"), -Attr("insn","adrp x16, #65536")]), Var("R16",Imm(64)), Int(65536,64)), -Def(Tid(1_189, "%000004a5"), Attrs([Attr("address","0x5F4"), -Attr("insn","ldr x17, [x16, #0xfa0]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(4000,64)),LittleEndian(),64)), -Def(Tid(1_195, "%000004ab"), Attrs([Attr("address","0x5F8"), -Attr("insn","add x16, x16, #0xfa0")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(4000,64)))]), Jmps([Call(Tid(1_200, "%000004b0"), - Attrs([Attr("address","0x5FC"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), Sub(Tid(1_453, "@_fini"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x7A4")]), - "_fini", Args([Arg(Tid(1_509, "%000005e5"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("_fini_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(31, "@_fini"), - Attrs([Attr("address","0x7A4")]), Phis([]), Defs([Def(Tid(37, "%00000025"), - Attrs([Attr("address","0x7A8"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("#0",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(18446744073709551600,64))), -Def(Tid(43, "%0000002b"), Attrs([Attr("address","0x7A8"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("#0",Imm(64)),Var("R29",Imm(64)),LittleEndian(),64)), -Def(Tid(49, "%00000031"), Attrs([Attr("address","0x7A8"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("#0",Imm(64)),Int(8,64)),Var("R30",Imm(64)),LittleEndian(),64)), -Def(Tid(53, "%00000035"), Attrs([Attr("address","0x7A8"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("R31",Imm(64)), -Var("#0",Imm(64))), Def(Tid(59, "%0000003b"), Attrs([Attr("address","0x7AC"), -Attr("insn","mov x29, sp")]), Var("R29",Imm(64)), Var("R31",Imm(64))), -Def(Tid(66, "%00000042"), Attrs([Attr("address","0x7B0"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R29",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(71, "%00000047"), Attrs([Attr("address","0x7B0"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R30",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(75, "%0000004b"), Attrs([Attr("address","0x7B0"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(16,64)))]), Jmps([Call(Tid(80, "%00000050"), - Attrs([Attr("address","0x7B4"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), Sub(Tid(1_454, "@_init"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x5B0")]), - "_init", Args([Arg(Tid(1_510, "%000005e6"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("_init_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(1_294, "@_init"), - Attrs([Attr("address","0x5B0")]), Phis([]), -Defs([Def(Tid(1_300, "%00000514"), Attrs([Attr("address","0x5B4"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("#6",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(18446744073709551600,64))), -Def(Tid(1_306, "%0000051a"), Attrs([Attr("address","0x5B4"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("#6",Imm(64)),Var("R29",Imm(64)),LittleEndian(),64)), -Def(Tid(1_312, "%00000520"), Attrs([Attr("address","0x5B4"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("#6",Imm(64)),Int(8,64)),Var("R30",Imm(64)),LittleEndian(),64)), -Def(Tid(1_316, "%00000524"), Attrs([Attr("address","0x5B4"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("R31",Imm(64)), -Var("#6",Imm(64))), Def(Tid(1_322, "%0000052a"), - Attrs([Attr("address","0x5B8"), Attr("insn","mov x29, sp")]), - Var("R29",Imm(64)), Var("R31",Imm(64))), Def(Tid(1_327, "%0000052f"), - Attrs([Attr("address","0x5BC"), Attr("insn","bl #0xb8")]), - Var("R30",Imm(64)), Int(1472,64))]), Jmps([Call(Tid(1_329, "%00000531"), - Attrs([Attr("address","0x5BC"), Attr("insn","bl #0xb8")]), Int(1,1), -(Direct(Tid(1_459, "@call_weak_fn")),Direct(Tid(1_331, "%00000533"))))])), -Blk(Tid(1_331, "%00000533"), Attrs([Attr("address","0x5C0")]), Phis([]), -Defs([Def(Tid(1_336, "%00000538"), Attrs([Attr("address","0x5C0"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R29",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(1_341, "%0000053d"), Attrs([Attr("address","0x5C0"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R30",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(1_345, "%00000541"), Attrs([Attr("address","0x5C0"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(16,64)))]), Jmps([Call(Tid(1_350, "%00000546"), - Attrs([Attr("address","0x5C4"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), Sub(Tid(1_455, "@_start"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x640"), -Attr("entry-point","()")]), "_start", Args([Arg(Tid(1_511, "%000005e7"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("_start_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(440, "@_start"), - Attrs([Attr("address","0x640")]), Phis([]), Defs([Def(Tid(445, "%000001bd"), - Attrs([Attr("address","0x644"), Attr("insn","mov x29, #0x0")]), - Var("R29",Imm(64)), Int(0,64)), Def(Tid(450, "%000001c2"), - Attrs([Attr("address","0x648"), Attr("insn","mov x30, #0x0")]), - Var("R30",Imm(64)), Int(0,64)), Def(Tid(456, "%000001c8"), - Attrs([Attr("address","0x64C"), Attr("insn","mov x5, x0")]), - Var("R5",Imm(64)), Var("R0",Imm(64))), Def(Tid(463, "%000001cf"), - Attrs([Attr("address","0x650"), Attr("insn","ldr x1, [sp]")]), - Var("R1",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(469, "%000001d5"), Attrs([Attr("address","0x654"), -Attr("insn","add x2, sp, #0x8")]), Var("R2",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(8,64))), Def(Tid(475, "%000001db"), - Attrs([Attr("address","0x658"), Attr("insn","mov x6, sp")]), - Var("R6",Imm(64)), Var("R31",Imm(64))), Def(Tid(480, "%000001e0"), - Attrs([Attr("address","0x65C"), Attr("insn","adrp x0, #65536")]), - Var("R0",Imm(64)), Int(65536,64)), Def(Tid(487, "%000001e7"), - Attrs([Attr("address","0x660"), Attr("insn","ldr x0, [x0, #0xff0]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(4080,64)),LittleEndian(),64)), -Def(Tid(492, "%000001ec"), Attrs([Attr("address","0x664"), -Attr("insn","mov x3, #0x0")]), Var("R3",Imm(64)), Int(0,64)), -Def(Tid(497, "%000001f1"), Attrs([Attr("address","0x668"), -Attr("insn","mov x4, #0x0")]), Var("R4",Imm(64)), Int(0,64)), -Def(Tid(502, "%000001f6"), Attrs([Attr("address","0x66C"), -Attr("insn","bl #-0x7c")]), Var("R30",Imm(64)), Int(1648,64))]), -Jmps([Call(Tid(505, "%000001f9"), Attrs([Attr("address","0x66C"), -Attr("insn","bl #-0x7c")]), Int(1,1), -(Direct(Tid(1_452, "@__libc_start_main")),Direct(Tid(507, "%000001fb"))))])), -Blk(Tid(507, "%000001fb"), Attrs([Attr("address","0x670")]), Phis([]), -Defs([Def(Tid(510, "%000001fe"), Attrs([Attr("address","0x670"), -Attr("insn","bl #-0x50")]), Var("R30",Imm(64)), Int(1652,64))]), -Jmps([Call(Tid(513, "%00000201"), Attrs([Attr("address","0x670"), -Attr("insn","bl #-0x50")]), Int(1,1), -(Direct(Tid(1_458, "@abort")),Direct(Tid(1_492, "%000005d4"))))])), -Blk(Tid(1_492, "%000005d4"), Attrs([]), Phis([]), Defs([]), -Jmps([Call(Tid(1_493, "%000005d5"), Attrs([]), Int(1,1), -(Direct(Tid(1_459, "@call_weak_fn")),))]))])), Sub(Tid(1_458, "@abort"), - Attrs([Attr("noreturn","()"), Attr("c.proto","void (*)(void)"), -Attr("address","0x620"), Attr("stub","()")]), "abort", Args([]), -Blks([Blk(Tid(511, "@abort"), Attrs([Attr("address","0x620")]), Phis([]), -Defs([Def(Tid(1_248, "%000004e0"), Attrs([Attr("address","0x620"), -Attr("insn","adrp x16, #65536")]), Var("R16",Imm(64)), Int(65536,64)), -Def(Tid(1_255, "%000004e7"), Attrs([Attr("address","0x624"), -Attr("insn","ldr x17, [x16, #0xfb8]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(4024,64)),LittleEndian(),64)), -Def(Tid(1_261, "%000004ed"), Attrs([Attr("address","0x628"), -Attr("insn","add x16, x16, #0xfb8")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(4024,64)))]), Jmps([Call(Tid(1_266, "%000004f2"), - Attrs([Attr("address","0x62C"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), Sub(Tid(1_459, "@call_weak_fn"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x674")]), - "call_weak_fn", Args([Arg(Tid(1_512, "%000005e8"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("call_weak_fn_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(515, "@call_weak_fn"), - Attrs([Attr("address","0x674")]), Phis([]), Defs([Def(Tid(518, "%00000206"), - Attrs([Attr("address","0x674"), Attr("insn","adrp x0, #65536")]), - Var("R0",Imm(64)), Int(65536,64)), Def(Tid(525, "%0000020d"), - Attrs([Attr("address","0x678"), Attr("insn","ldr x0, [x0, #0xfe0]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(4064,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(531, "%00000213"), Attrs([Attr("address","0x67C"), -Attr("insn","cbz x0, #0x8")]), EQ(Var("R0",Imm(64)),Int(0,64)), -Direct(Tid(529, "%00000211"))), Goto(Tid(1_494, "%000005d6"), Attrs([]), - Int(1,1), Direct(Tid(1_020, "%000003fc")))])), Blk(Tid(529, "%00000211"), - Attrs([Attr("address","0x684")]), Phis([]), Defs([]), -Jmps([Call(Tid(537, "%00000219"), Attrs([Attr("address","0x684"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))])), -Blk(Tid(1_020, "%000003fc"), Attrs([Attr("address","0x680")]), Phis([]), -Defs([]), Jmps([Goto(Tid(1_023, "%000003ff"), Attrs([Attr("address","0x680"), -Attr("insn","b #-0x70")]), Int(1,1), -Direct(Tid(1_021, "@__gmon_start__")))])), Blk(Tid(1_021, "@__gmon_start__"), - Attrs([Attr("address","0x610")]), Phis([]), -Defs([Def(Tid(1_226, "%000004ca"), Attrs([Attr("address","0x610"), -Attr("insn","adrp x16, #65536")]), Var("R16",Imm(64)), Int(65536,64)), -Def(Tid(1_233, "%000004d1"), Attrs([Attr("address","0x614"), -Attr("insn","ldr x17, [x16, #0xfb0]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(4016,64)),LittleEndian(),64)), -Def(Tid(1_239, "%000004d7"), Attrs([Attr("address","0x618"), -Attr("insn","add x16, x16, #0xfb0")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(4016,64)))]), Jmps([Call(Tid(1_244, "%000004dc"), - Attrs([Attr("address","0x61C"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), -Sub(Tid(1_461, "@deregister_tm_clones"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x690")]), - "deregister_tm_clones", Args([Arg(Tid(1_513, "%000005e9"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("deregister_tm_clones_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(543, "@deregister_tm_clones"), - Attrs([Attr("address","0x690")]), Phis([]), Defs([Def(Tid(546, "%00000222"), - Attrs([Attr("address","0x690"), Attr("insn","adrp x0, #69632")]), - Var("R0",Imm(64)), Int(69632,64)), Def(Tid(552, "%00000228"), - Attrs([Attr("address","0x694"), Attr("insn","add x0, x0, #0x10")]), - Var("R0",Imm(64)), PLUS(Var("R0",Imm(64)),Int(16,64))), -Def(Tid(557, "%0000022d"), Attrs([Attr("address","0x698"), -Attr("insn","adrp x1, #69632")]), Var("R1",Imm(64)), Int(69632,64)), -Def(Tid(563, "%00000233"), Attrs([Attr("address","0x69C"), -Attr("insn","add x1, x1, #0x10")]), Var("R1",Imm(64)), -PLUS(Var("R1",Imm(64)),Int(16,64))), Def(Tid(569, "%00000239"), - Attrs([Attr("address","0x6A0"), Attr("insn","cmp x1, x0")]), - Var("#1",Imm(64)), NOT(Var("R0",Imm(64)))), Def(Tid(574, "%0000023e"), - Attrs([Attr("address","0x6A0"), Attr("insn","cmp x1, x0")]), - Var("#2",Imm(64)), PLUS(Var("R1",Imm(64)),NOT(Var("R0",Imm(64))))), -Def(Tid(580, "%00000244"), Attrs([Attr("address","0x6A0"), -Attr("insn","cmp x1, x0")]), Var("VF",Imm(1)), -NEQ(SIGNED(65,PLUS(Var("#2",Imm(64)),Int(1,64))),PLUS(PLUS(SIGNED(65,Var("R1",Imm(64))),SIGNED(65,Var("#1",Imm(64)))),Int(1,65)))), -Def(Tid(586, "%0000024a"), Attrs([Attr("address","0x6A0"), -Attr("insn","cmp x1, x0")]), Var("CF",Imm(1)), -NEQ(UNSIGNED(65,PLUS(Var("#2",Imm(64)),Int(1,64))),PLUS(PLUS(UNSIGNED(65,Var("R1",Imm(64))),UNSIGNED(65,Var("#1",Imm(64)))),Int(1,65)))), -Def(Tid(590, "%0000024e"), Attrs([Attr("address","0x6A0"), -Attr("insn","cmp x1, x0")]), Var("ZF",Imm(1)), -EQ(PLUS(Var("#2",Imm(64)),Int(1,64)),Int(0,64))), Def(Tid(594, "%00000252"), - Attrs([Attr("address","0x6A0"), Attr("insn","cmp x1, x0")]), - Var("NF",Imm(1)), Extract(63,63,PLUS(Var("#2",Imm(64)),Int(1,64))))]), -Jmps([Goto(Tid(600, "%00000258"), Attrs([Attr("address","0x6A4"), -Attr("insn","b.eq #0x18")]), EQ(Var("ZF",Imm(1)),Int(1,1)), -Direct(Tid(598, "%00000256"))), Goto(Tid(1_495, "%000005d7"), Attrs([]), - Int(1,1), Direct(Tid(990, "%000003de")))])), Blk(Tid(990, "%000003de"), - Attrs([Attr("address","0x6A8")]), Phis([]), Defs([Def(Tid(993, "%000003e1"), - Attrs([Attr("address","0x6A8"), Attr("insn","adrp x1, #65536")]), - Var("R1",Imm(64)), Int(65536,64)), Def(Tid(1_000, "%000003e8"), - Attrs([Attr("address","0x6AC"), Attr("insn","ldr x1, [x1, #0xfc8]")]), - Var("R1",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R1",Imm(64)),Int(4040,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(1_005, "%000003ed"), Attrs([Attr("address","0x6B0"), -Attr("insn","cbz x1, #0xc")]), EQ(Var("R1",Imm(64)),Int(0,64)), -Direct(Tid(598, "%00000256"))), Goto(Tid(1_496, "%000005d8"), Attrs([]), - Int(1,1), Direct(Tid(1_009, "%000003f1")))])), Blk(Tid(598, "%00000256"), - Attrs([Attr("address","0x6BC")]), Phis([]), Defs([]), -Jmps([Call(Tid(606, "%0000025e"), Attrs([Attr("address","0x6BC"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))])), -Blk(Tid(1_009, "%000003f1"), Attrs([Attr("address","0x6B4")]), Phis([]), -Defs([Def(Tid(1_013, "%000003f5"), Attrs([Attr("address","0x6B4"), -Attr("insn","mov x16, x1")]), Var("R16",Imm(64)), Var("R1",Imm(64)))]), -Jmps([Call(Tid(1_018, "%000003fa"), Attrs([Attr("address","0x6B8"), -Attr("insn","br x16")]), Int(1,1), (Indirect(Var("R16",Imm(64))),))]))])), -Sub(Tid(1_464, "@frame_dummy"), Attrs([Attr("c.proto","signed (*)(void)"), -Attr("address","0x750")]), "frame_dummy", Args([Arg(Tid(1_514, "%000005ea"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("frame_dummy_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(758, "@frame_dummy"), - Attrs([Attr("address","0x750")]), Phis([]), Defs([]), -Jmps([Call(Tid(760, "%000002f8"), Attrs([Attr("address","0x750"), -Attr("insn","b #-0x90")]), Int(1,1), -(Direct(Tid(1_468, "@register_tm_clones")),))]))])), Sub(Tid(1_465, "@main"), - Attrs([Attr("c.proto","signed (*)(signed argc, const char** argv)"), -Attr("address","0x754")]), "main", Args([Arg(Tid(1_515, "%000005eb"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("main_argc",Imm(32)), -LOW(32,Var("R0",Imm(64))), In()), Arg(Tid(1_516, "%000005ec"), - Attrs([Attr("c.layout","**[char : 8]"), Attr("c.data","Top:u8 ptr ptr"), -Attr("c.type"," const char**")]), Var("main_argv",Imm(64)), -Var("R1",Imm(64)), Both()), Arg(Tid(1_517, "%000005ed"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("main_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(762, "@main"), - Attrs([Attr("address","0x754")]), Phis([]), Defs([Def(Tid(765, "%000002fd"), - Attrs([Attr("address","0x754"), Attr("insn","adrp x0, #65536")]), - Var("R0",Imm(64)), Int(65536,64)), Def(Tid(772, "%00000304"), - Attrs([Attr("address","0x758"), Attr("insn","ldr x0, [x0, #0xfd8]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(4056,64)),LittleEndian(),64)), -Def(Tid(777, "%00000309"), Attrs([Attr("address","0x75C"), -Attr("insn","mov w1, #0x1")]), Var("R1",Imm(64)), Int(1,64)), -Def(Tid(785, "%00000311"), Attrs([Attr("address","0x760"), -Attr("insn","str w1, [x0]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("R0",Imm(64)),Extract(31,0,Var("R1",Imm(64))),LittleEndian(),32)), -Def(Tid(790, "%00000316"), Attrs([Attr("address","0x764"), -Attr("insn","adrp x0, #65536")]), Var("R0",Imm(64)), Int(65536,64)), -Def(Tid(797, "%0000031d"), Attrs([Attr("address","0x768"), -Attr("insn","ldr x0, [x0, #0xfd8]")]), Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(4056,64)),LittleEndian(),64)), -Def(Tid(804, "%00000324"), Attrs([Attr("address","0x76C"), -Attr("insn","ldr w0, [x0]")]), Var("R0",Imm(64)), -UNSIGNED(64,Load(Var("mem",Mem(64,8)),Var("R0",Imm(64)),LittleEndian(),32))), -Def(Tid(810, "%0000032a"), Attrs([Attr("address","0x770"), -Attr("insn","cmp w0, #0x0")]), Var("#4",Imm(32)), -PLUS(Extract(31,0,Var("R0",Imm(64))),Int(4294967295,32))), -Def(Tid(815, "%0000032f"), Attrs([Attr("address","0x770"), -Attr("insn","cmp w0, #0x0")]), Var("VF",Imm(1)), -NEQ(SIGNED(33,PLUS(Var("#4",Imm(32)),Int(1,32))),PLUS(SIGNED(33,Extract(31,0,Var("R0",Imm(64)))),Int(0,33)))), -Def(Tid(820, "%00000334"), Attrs([Attr("address","0x770"), -Attr("insn","cmp w0, #0x0")]), Var("CF",Imm(1)), -NEQ(UNSIGNED(33,PLUS(Var("#4",Imm(32)),Int(1,32))),PLUS(UNSIGNED(33,Extract(31,0,Var("R0",Imm(64)))),Int(4294967296,33)))), -Def(Tid(824, "%00000338"), Attrs([Attr("address","0x770"), -Attr("insn","cmp w0, #0x0")]), Var("ZF",Imm(1)), -EQ(PLUS(Var("#4",Imm(32)),Int(1,32)),Int(0,32))), Def(Tid(828, "%0000033c"), - Attrs([Attr("address","0x770"), Attr("insn","cmp w0, #0x0")]), - Var("NF",Imm(1)), Extract(31,31,PLUS(Var("#4",Imm(32)),Int(1,32))))]), -Jmps([Goto(Tid(834, "%00000342"), Attrs([Attr("address","0x774"), -Attr("insn","b.eq #0x18")]), EQ(Var("ZF",Imm(1)),Int(1,1)), -Direct(Tid(832, "%00000340"))), Goto(Tid(1_497, "%000005d9"), Attrs([]), - Int(1,1), Direct(Tid(872, "%00000368")))])), Blk(Tid(832, "%00000340"), - Attrs([Attr("address","0x78C")]), Phis([]), Defs([Def(Tid(840, "%00000348"), - Attrs([Attr("address","0x78C"), Attr("insn","adrp x0, #65536")]), - Var("R0",Imm(64)), Int(65536,64)), Def(Tid(847, "%0000034f"), - Attrs([Attr("address","0x790"), Attr("insn","ldr x0, [x0, #0xfe8]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(4072,64)),LittleEndian(),64)), -Def(Tid(852, "%00000354"), Attrs([Attr("address","0x794"), -Attr("insn","mov w1, #0x2")]), Var("R1",Imm(64)), Int(2,64)), -Def(Tid(860, "%0000035c"), Attrs([Attr("address","0x798"), -Attr("insn","str w1, [x0]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("R0",Imm(64)),Extract(31,0,Var("R1",Imm(64))),LittleEndian(),32))]), -Jmps([Goto(Tid(1_498, "%000005da"), Attrs([]), Int(1,1), -Direct(Tid(862, "%0000035e")))])), Blk(Tid(872, "%00000368"), - Attrs([Attr("address","0x778")]), Phis([]), Defs([Def(Tid(875, "%0000036b"), - Attrs([Attr("address","0x778"), Attr("insn","adrp x0, #65536")]), - Var("R0",Imm(64)), Int(65536,64)), Def(Tid(882, "%00000372"), - Attrs([Attr("address","0x77C"), Attr("insn","ldr x0, [x0, #0xfe8]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(4072,64)),LittleEndian(),64)), -Def(Tid(887, "%00000377"), Attrs([Attr("address","0x780"), -Attr("insn","mov w1, #0x3")]), Var("R1",Imm(64)), Int(3,64)), -Def(Tid(895, "%0000037f"), Attrs([Attr("address","0x784"), -Attr("insn","str w1, [x0]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("R0",Imm(64)),Extract(31,0,Var("R1",Imm(64))),LittleEndian(),32))]), -Jmps([Goto(Tid(899, "%00000383"), Attrs([Attr("address","0x788"), -Attr("insn","b #0x14")]), Int(1,1), Direct(Tid(862, "%0000035e")))])), -Blk(Tid(862, "%0000035e"), Attrs([Attr("address","0x79C")]), Phis([]), -Defs([Def(Tid(865, "%00000361"), Attrs([Attr("address","0x79C"), -Attr("insn","mov w0, #0x0")]), Var("R0",Imm(64)), Int(0,64))]), -Jmps([Call(Tid(870, "%00000366"), Attrs([Attr("address","0x7A0"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))]))])), -Sub(Tid(1_468, "@register_tm_clones"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x6C0")]), - "register_tm_clones", Args([Arg(Tid(1_518, "%000005ee"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("register_tm_clones_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(608, "@register_tm_clones"), Attrs([Attr("address","0x6C0")]), - Phis([]), Defs([Def(Tid(611, "%00000263"), Attrs([Attr("address","0x6C0"), -Attr("insn","adrp x0, #69632")]), Var("R0",Imm(64)), Int(69632,64)), -Def(Tid(617, "%00000269"), Attrs([Attr("address","0x6C4"), -Attr("insn","add x0, x0, #0x10")]), Var("R0",Imm(64)), -PLUS(Var("R0",Imm(64)),Int(16,64))), Def(Tid(622, "%0000026e"), - Attrs([Attr("address","0x6C8"), Attr("insn","adrp x1, #69632")]), - Var("R1",Imm(64)), Int(69632,64)), Def(Tid(628, "%00000274"), - Attrs([Attr("address","0x6CC"), Attr("insn","add x1, x1, #0x10")]), - Var("R1",Imm(64)), PLUS(Var("R1",Imm(64)),Int(16,64))), -Def(Tid(635, "%0000027b"), Attrs([Attr("address","0x6D0"), -Attr("insn","sub x1, x1, x0")]), Var("R1",Imm(64)), -PLUS(PLUS(Var("R1",Imm(64)),NOT(Var("R0",Imm(64)))),Int(1,64))), -Def(Tid(641, "%00000281"), Attrs([Attr("address","0x6D4"), -Attr("insn","lsr x2, x1, #63")]), Var("R2",Imm(64)), -Concat(Int(0,63),Extract(63,63,Var("R1",Imm(64))))), -Def(Tid(648, "%00000288"), Attrs([Attr("address","0x6D8"), -Attr("insn","add x1, x2, x1, asr #3")]), Var("R1",Imm(64)), -PLUS(Var("R2",Imm(64)),ARSHIFT(Var("R1",Imm(64)),Int(3,3)))), -Def(Tid(654, "%0000028e"), Attrs([Attr("address","0x6DC"), -Attr("insn","asr x1, x1, #1")]), Var("R1",Imm(64)), -SIGNED(64,Extract(63,1,Var("R1",Imm(64)))))]), -Jmps([Goto(Tid(660, "%00000294"), Attrs([Attr("address","0x6E0"), -Attr("insn","cbz x1, #0x18")]), EQ(Var("R1",Imm(64)),Int(0,64)), -Direct(Tid(658, "%00000292"))), Goto(Tid(1_499, "%000005db"), Attrs([]), - Int(1,1), Direct(Tid(960, "%000003c0")))])), Blk(Tid(960, "%000003c0"), - Attrs([Attr("address","0x6E4")]), Phis([]), Defs([Def(Tid(963, "%000003c3"), - Attrs([Attr("address","0x6E4"), Attr("insn","adrp x2, #65536")]), - Var("R2",Imm(64)), Int(65536,64)), Def(Tid(970, "%000003ca"), - Attrs([Attr("address","0x6E8"), Attr("insn","ldr x2, [x2, #0xff8]")]), - Var("R2",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R2",Imm(64)),Int(4088,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(975, "%000003cf"), Attrs([Attr("address","0x6EC"), -Attr("insn","cbz x2, #0xc")]), EQ(Var("R2",Imm(64)),Int(0,64)), -Direct(Tid(658, "%00000292"))), Goto(Tid(1_500, "%000005dc"), Attrs([]), - Int(1,1), Direct(Tid(979, "%000003d3")))])), Blk(Tid(658, "%00000292"), - Attrs([Attr("address","0x6F8")]), Phis([]), Defs([]), -Jmps([Call(Tid(666, "%0000029a"), Attrs([Attr("address","0x6F8"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))])), -Blk(Tid(979, "%000003d3"), Attrs([Attr("address","0x6F0")]), Phis([]), -Defs([Def(Tid(983, "%000003d7"), Attrs([Attr("address","0x6F0"), -Attr("insn","mov x16, x2")]), Var("R16",Imm(64)), Var("R2",Imm(64)))]), -Jmps([Call(Tid(988, "%000003dc"), Attrs([Attr("address","0x6F4"), -Attr("insn","br x16")]), Int(1,1), -(Indirect(Var("R16",Imm(64))),))]))]))]))) \ No newline at end of file diff --git a/src/test/correct/cjump/gcc_pic/cjump.bir b/src/test/correct/cjump/gcc_pic/cjump.bir deleted file mode 100644 index 68b662d72..000000000 --- a/src/test/correct/cjump/gcc_pic/cjump.bir +++ /dev/null @@ -1,254 +0,0 @@ -000005dd: program -000005a7: sub __cxa_finalize(__cxa_finalize_result) -000005de: __cxa_finalize_result :: out u32 = low:32[R0] - -000003bc: -000004b4: R16 := 0x10000 -000004bb: R17 := mem[R16 + 0xFA8, el]:u64 -000004c1: R16 := R16 + 0xFA8 -000004c6: call R17 with noreturn - -000005a8: sub __do_global_dtors_aux(__do_global_dtors_aux_result) -000005df: __do_global_dtors_aux_result :: out u32 = low:32[R0] - -0000029e: -000002a2: #3 := R31 - 0x20 -000002a8: mem := mem with [#3, el]:u64 <- R29 -000002ae: mem := mem with [#3 + 8, el]:u64 <- R30 -000002b2: R31 := #3 -000002b8: R29 := R31 -000002c0: mem := mem with [R31 + 0x10, el]:u64 <- R19 -000002c5: R19 := 0x11000 -000002cc: R0 := pad:64[mem[R19 + 0x10]] -000002d3: when 31:0[R0] <> 0 goto %000002d1 -000005d1: goto %00000385 - -00000385: -00000388: R0 := 0x10000 -0000038f: R0 := mem[R0 + 0xFD0, el]:u64 -00000395: when R0 = 0 goto %00000393 -000005d2: goto %000003ac - -000003ac: -000003af: R0 := 0x11000 -000003b6: R0 := mem[R0 + 8, el]:u64 -000003bb: R30 := 0x730 -000003be: call @__cxa_finalize with return %00000393 - -00000393: -0000039b: R30 := 0x734 -0000039d: call @deregister_tm_clones with return %0000039f - -0000039f: -000003a2: R0 := 1 -000003aa: mem := mem with [R19 + 0x10] <- 7:0[R0] -000005d3: goto %000002d1 - -000002d1: -000002db: R19 := mem[R31 + 0x10, el]:u64 -000002e2: R29 := mem[R31, el]:u64 -000002e7: R30 := mem[R31 + 8, el]:u64 -000002eb: R31 := R31 + 0x20 -000002f0: call R30 with noreturn - -000005ac: sub __libc_start_main(__libc_start_main_main, __libc_start_main_arg2, __libc_start_main_arg3, __libc_start_main_auxv, __libc_start_main_result) -000005e0: __libc_start_main_main :: in u64 = R0 -000005e1: __libc_start_main_arg2 :: in u32 = low:32[R1] -000005e2: __libc_start_main_arg3 :: in out u64 = R2 -000005e3: __libc_start_main_auxv :: in out u64 = R3 -000005e4: __libc_start_main_result :: out u32 = low:32[R0] - -000001f7: -0000049e: R16 := 0x10000 -000004a5: R17 := mem[R16 + 0xFA0, el]:u64 -000004ab: R16 := R16 + 0xFA0 -000004b0: call R17 with noreturn - -000005ad: sub _fini(_fini_result) -000005e5: _fini_result :: out u32 = low:32[R0] - -0000001f: -00000025: #0 := R31 - 0x10 -0000002b: mem := mem with [#0, el]:u64 <- R29 -00000031: mem := mem with [#0 + 8, el]:u64 <- R30 -00000035: R31 := #0 -0000003b: R29 := R31 -00000042: R29 := mem[R31, el]:u64 -00000047: R30 := mem[R31 + 8, el]:u64 -0000004b: R31 := R31 + 0x10 -00000050: call R30 with noreturn - -000005ae: sub _init(_init_result) -000005e6: _init_result :: out u32 = low:32[R0] - -0000050e: -00000514: #6 := R31 - 0x10 -0000051a: mem := mem with [#6, el]:u64 <- R29 -00000520: mem := mem with [#6 + 8, el]:u64 <- R30 -00000524: R31 := #6 -0000052a: R29 := R31 -0000052f: R30 := 0x5C0 -00000531: call @call_weak_fn with return %00000533 - -00000533: -00000538: R29 := mem[R31, el]:u64 -0000053d: R30 := mem[R31 + 8, el]:u64 -00000541: R31 := R31 + 0x10 -00000546: call R30 with noreturn - -000005af: sub _start(_start_result) -000005e7: _start_result :: out u32 = low:32[R0] - -000001b8: -000001bd: R29 := 0 -000001c2: R30 := 0 -000001c8: R5 := R0 -000001cf: R1 := mem[R31, el]:u64 -000001d5: R2 := R31 + 8 -000001db: R6 := R31 -000001e0: R0 := 0x10000 -000001e7: R0 := mem[R0 + 0xFF0, el]:u64 -000001ec: R3 := 0 -000001f1: R4 := 0 -000001f6: R30 := 0x670 -000001f9: call @__libc_start_main with return %000001fb - -000001fb: -000001fe: R30 := 0x674 -00000201: call @abort with return %000005d4 - -000005d4: -000005d5: call @call_weak_fn with noreturn - -000005b2: sub abort() - - -000001ff: -000004e0: R16 := 0x10000 -000004e7: R17 := mem[R16 + 0xFB8, el]:u64 -000004ed: R16 := R16 + 0xFB8 -000004f2: call R17 with noreturn - -000005b3: sub call_weak_fn(call_weak_fn_result) -000005e8: call_weak_fn_result :: out u32 = low:32[R0] - -00000203: -00000206: R0 := 0x10000 -0000020d: R0 := mem[R0 + 0xFE0, el]:u64 -00000213: when R0 = 0 goto %00000211 -000005d6: goto %000003fc - -00000211: -00000219: call R30 with noreturn - -000003fc: -000003ff: goto @__gmon_start__ - -000003fd: -000004ca: R16 := 0x10000 -000004d1: R17 := mem[R16 + 0xFB0, el]:u64 -000004d7: R16 := R16 + 0xFB0 -000004dc: call R17 with noreturn - -000005b5: sub deregister_tm_clones(deregister_tm_clones_result) -000005e9: deregister_tm_clones_result :: out u32 = low:32[R0] - -0000021f: -00000222: R0 := 0x11000 -00000228: R0 := R0 + 0x10 -0000022d: R1 := 0x11000 -00000233: R1 := R1 + 0x10 -00000239: #1 := ~R0 -0000023e: #2 := R1 + ~R0 -00000244: VF := extend:65[#2 + 1] <> extend:65[R1] + extend:65[#1] + 1 -0000024a: CF := pad:65[#2 + 1] <> pad:65[R1] + pad:65[#1] + 1 -0000024e: ZF := #2 + 1 = 0 -00000252: NF := 63:63[#2 + 1] -00000258: when ZF goto %00000256 -000005d7: goto %000003de - -000003de: -000003e1: R1 := 0x10000 -000003e8: R1 := mem[R1 + 0xFC8, el]:u64 -000003ed: when R1 = 0 goto %00000256 -000005d8: goto %000003f1 - -00000256: -0000025e: call R30 with noreturn - -000003f1: -000003f5: R16 := R1 -000003fa: call R16 with noreturn - -000005b8: sub frame_dummy(frame_dummy_result) -000005ea: frame_dummy_result :: out u32 = low:32[R0] - -000002f6: -000002f8: call @register_tm_clones with noreturn - -000005b9: sub main(main_argc, main_argv, main_result) -000005eb: main_argc :: in u32 = low:32[R0] -000005ec: main_argv :: in out u64 = R1 -000005ed: main_result :: out u32 = low:32[R0] - -000002fa: -000002fd: R0 := 0x10000 -00000304: R0 := mem[R0 + 0xFD8, el]:u64 -00000309: R1 := 1 -00000311: mem := mem with [R0, el]:u32 <- 31:0[R1] -00000316: R0 := 0x10000 -0000031d: R0 := mem[R0 + 0xFD8, el]:u64 -00000324: R0 := pad:64[mem[R0, el]:u32] -0000032a: #4 := 31:0[R0] - 1 -0000032f: VF := extend:33[#4 + 1] <> extend:33[31:0[R0]] + 0 -00000334: CF := pad:33[#4 + 1] <> pad:33[31:0[R0]] - 0x100000000 -00000338: ZF := #4 + 1 = 0 -0000033c: NF := 31:31[#4 + 1] -00000342: when ZF goto %00000340 -000005d9: goto %00000368 - -00000340: -00000348: R0 := 0x10000 -0000034f: R0 := mem[R0 + 0xFE8, el]:u64 -00000354: R1 := 2 -0000035c: mem := mem with [R0, el]:u32 <- 31:0[R1] -000005da: goto %0000035e - -00000368: -0000036b: R0 := 0x10000 -00000372: R0 := mem[R0 + 0xFE8, el]:u64 -00000377: R1 := 3 -0000037f: mem := mem with [R0, el]:u32 <- 31:0[R1] -00000383: goto %0000035e - -0000035e: -00000361: R0 := 0 -00000366: call R30 with noreturn - -000005bc: sub register_tm_clones(register_tm_clones_result) -000005ee: register_tm_clones_result :: out u32 = low:32[R0] - -00000260: -00000263: R0 := 0x11000 -00000269: R0 := R0 + 0x10 -0000026e: R1 := 0x11000 -00000274: R1 := R1 + 0x10 -0000027b: R1 := R1 + ~R0 + 1 -00000281: R2 := 0.63:63[R1] -00000288: R1 := R2 + (R1 ~>> 3) -0000028e: R1 := extend:64[63:1[R1]] -00000294: when R1 = 0 goto %00000292 -000005db: goto %000003c0 - -000003c0: -000003c3: R2 := 0x10000 -000003ca: R2 := mem[R2 + 0xFF8, el]:u64 -000003cf: when R2 = 0 goto %00000292 -000005dc: goto %000003d3 - -00000292: -0000029a: call R30 with noreturn - -000003d3: -000003d7: R16 := R2 -000003dc: call R16 with noreturn diff --git a/src/test/correct/cjump/gcc_pic/cjump.expected b/src/test/correct/cjump/gcc_pic/cjump.expected index b93bc902d..67208df21 100644 --- a/src/test/correct/cjump/gcc_pic/cjump.expected +++ b/src/test/correct/cjump/gcc_pic/cjump.expected @@ -1,32 +1,24 @@ -var {:extern} CF: bv1; -var {:extern} Gamma_CF: bool; -var {:extern} Gamma_NF: bool; var {:extern} Gamma_R0: bool; var {:extern} Gamma_R1: bool; -var {:extern} Gamma_VF: bool; -var {:extern} Gamma_ZF: bool; +var {:extern} Gamma_R2: bool; +var {:extern} Gamma_R3: bool; +var {:extern} Gamma_R4: bool; var {:extern} Gamma_mem: [bv64]bool; -var {:extern} NF: bv1; var {:extern} R0: bv64; var {:extern} R1: bv64; -var {:extern} VF: bv1; -var {:extern} ZF: bv1; +var {:extern} R2: bv64; +var {:extern} R3: bv64; +var {:extern} R4: bv64; var {:extern} mem: [bv64]bv8; const {:extern} $x_addr: bv64; -axiom ($x_addr == 69652bv64); +axiom ($x_addr == 4325400bv64); const {:extern} $y_addr: bv64; -axiom ($y_addr == 69656bv64); +axiom ($y_addr == 4325396bv64); function {:extern} L(mem$in: [bv64]bv8, index: bv64) returns (bool) { false } -function {:extern} {:bvbuiltin "bvadd"} bvadd32(bv32, bv32) returns (bv32); -function {:extern} {:bvbuiltin "bvadd"} bvadd33(bv33, bv33) returns (bv33); function {:extern} {:bvbuiltin "bvadd"} bvadd64(bv64, bv64) returns (bv64); -function {:extern} {:bvbuiltin "bvcomp"} bvcomp1(bv1, bv1) returns (bv1); -function {:extern} {:bvbuiltin "bvcomp"} bvcomp32(bv32, bv32) returns (bv1); -function {:extern} {:bvbuiltin "bvcomp"} bvcomp33(bv33, bv33) returns (bv1); -function {:extern} {:bvbuiltin "bvnot"} bvnot1(bv1) returns (bv1); function {:extern} gamma_load32(gammaMap: [bv64]bool, index: bv64) returns (bool) { (gammaMap[bvadd64(index, 3bv64)] && (gammaMap[bvadd64(index, 2bv64)] && (gammaMap[bvadd64(index, 1bv64)] && gammaMap[index]))) } @@ -51,20 +43,11 @@ function {:extern} memory_store32_le(memory: [bv64]bv8, index: bv64, value: bv32 memory[index := value[8:0]][bvadd64(index, 1bv64) := value[16:8]][bvadd64(index, 2bv64) := value[24:16]][bvadd64(index, 3bv64) := value[32:24]] } -function {:extern} {:bvbuiltin "sign_extend 1"} sign_extend1_32(bv32) returns (bv33); -function {:extern} {:bvbuiltin "zero_extend 1"} zero_extend1_32(bv32) returns (bv33); -function {:extern} {:bvbuiltin "zero_extend 32"} zero_extend32_32(bv32) returns (bv64); procedure {:extern} rely(); modifies Gamma_mem, mem; ensures (Gamma_mem == old(Gamma_mem)); ensures (mem == old(mem)); - free ensures (memory_load32_le(mem, 1976bv64) == 131073bv32); - free ensures (memory_load64_le(mem, 69000bv64) == 1872bv64); - free ensures (memory_load64_le(mem, 69008bv64) == 1792bv64); - free ensures (memory_load64_le(mem, 69592bv64) == 69652bv64); - free ensures (memory_load64_le(mem, 69608bv64) == 69656bv64); - free ensures (memory_load64_le(mem, 69616bv64) == 1876bv64); - free ensures (memory_load64_le(mem, 69640bv64) == 69640bv64); + free ensures (memory_load32_le(mem, 4196312bv64) == 131073bv32); procedure {:extern} rely_transitive(); modifies Gamma_mem, mem; @@ -82,104 +65,44 @@ procedure {:extern} rely_reflexive(); procedure {:extern} guarantee_reflexive(); modifies Gamma_mem, mem; -procedure main_1876(); - modifies CF, Gamma_CF, Gamma_NF, Gamma_R0, Gamma_R1, Gamma_VF, Gamma_ZF, Gamma_mem, NF, R0, R1, VF, ZF, mem; +procedure main(); + modifies Gamma_R0, Gamma_R1, Gamma_R2, Gamma_R3, Gamma_R4, Gamma_mem, R0, R1, R2, R3, R4, mem; requires (gamma_load32(Gamma_mem, $x_addr) == true); requires (gamma_load32(Gamma_mem, $y_addr) == false); - free requires (memory_load64_le(mem, 69632bv64) == 0bv64); - free requires (memory_load64_le(mem, 69640bv64) == 69640bv64); - free requires (memory_load32_le(mem, 1976bv64) == 131073bv32); - free requires (memory_load64_le(mem, 69000bv64) == 1872bv64); - free requires (memory_load64_le(mem, 69008bv64) == 1792bv64); - free requires (memory_load64_le(mem, 69592bv64) == 69652bv64); - free requires (memory_load64_le(mem, 69608bv64) == 69656bv64); - free requires (memory_load64_le(mem, 69616bv64) == 1876bv64); - free requires (memory_load64_le(mem, 69640bv64) == 69640bv64); - free ensures (memory_load32_le(mem, 1976bv64) == 131073bv32); - free ensures (memory_load64_le(mem, 69000bv64) == 1872bv64); - free ensures (memory_load64_le(mem, 69008bv64) == 1792bv64); - free ensures (memory_load64_le(mem, 69592bv64) == 69652bv64); - free ensures (memory_load64_le(mem, 69608bv64) == 69656bv64); - free ensures (memory_load64_le(mem, 69616bv64) == 1876bv64); - free ensures (memory_load64_le(mem, 69640bv64) == 69640bv64); + free requires (memory_load64_le(mem, 4325376bv64) == 0bv64); + free requires (memory_load64_le(mem, 4325384bv64) == 0bv64); + free requires (memory_load32_le(mem, 4196312bv64) == 131073bv32); + free ensures (memory_load32_le(mem, 4196312bv64) == 131073bv32); -implementation main_1876() +implementation main() { - var #4: bv32; - var Gamma_#4: bool; - var Gamma_load18: bool; - var Gamma_load19: bool; - var Gamma_load20: bool; - var Gamma_load21: bool; - var Gamma_load22: bool; - var load18: bv64; - var load19: bv64; - var load20: bv32; - var load21: bv64; - var load22: bv64; + var $load$14: bv64; + var $load$15: bv64; + var Gamma_$load$14: bool; + var Gamma_$load$15: bool; lmain: assume {:captureState "lmain"} true; - R0, Gamma_R0 := 65536bv64, true; - call rely(); - load18, Gamma_load18 := memory_load64_le(mem, bvadd64(R0, 4056bv64)), (gamma_load64(Gamma_mem, bvadd64(R0, 4056bv64)) || L(mem, bvadd64(R0, 4056bv64))); - R0, Gamma_R0 := load18, Gamma_load18; - R1, Gamma_R1 := 1bv64, true; - call rely(); - assert (L(mem, R0) ==> Gamma_R1); - mem, Gamma_mem := memory_store32_le(mem, R0, R1[32:0]), gamma_store32(Gamma_mem, R0, Gamma_R1); - assume {:captureState "%00000311"} true; - R0, Gamma_R0 := 65536bv64, true; - call rely(); - load19, Gamma_load19 := memory_load64_le(mem, bvadd64(R0, 4056bv64)), (gamma_load64(Gamma_mem, bvadd64(R0, 4056bv64)) || L(mem, bvadd64(R0, 4056bv64))); - R0, Gamma_R0 := load19, Gamma_load19; - call rely(); - load20, Gamma_load20 := memory_load32_le(mem, R0), (gamma_load32(Gamma_mem, R0) || L(mem, R0)); - R0, Gamma_R0 := zero_extend32_32(load20), Gamma_load20; - #4, Gamma_#4 := bvadd32(R0[32:0], 4294967295bv32), Gamma_R0; - VF, Gamma_VF := bvnot1(bvcomp33(sign_extend1_32(bvadd32(#4, 1bv32)), bvadd33(sign_extend1_32(R0[32:0]), 0bv33))), (Gamma_R0 && Gamma_#4); - CF, Gamma_CF := bvnot1(bvcomp33(zero_extend1_32(bvadd32(#4, 1bv32)), bvadd33(zero_extend1_32(R0[32:0]), 4294967296bv33))), (Gamma_R0 && Gamma_#4); - ZF, Gamma_ZF := bvcomp32(bvadd32(#4, 1bv32), 0bv32), Gamma_#4; - NF, Gamma_NF := bvadd32(#4, 1bv32)[32:31], Gamma_#4; - assert Gamma_ZF; - goto lmain_goto_l00000340, lmain_goto_l00000368; - lmain_goto_l00000368: - assume {:captureState "lmain_goto_l00000368"} true; - assume (bvcomp1(ZF, 1bv1) == 0bv1); - R0, Gamma_R0 := 65536bv64, true; + R1, Gamma_R1 := 4321280bv64, true; + R4, Gamma_R4 := 1bv64, true; + R2, Gamma_R2 := 3bv64, true; + R0, Gamma_R0 := 0bv64, true; call rely(); - load22, Gamma_load22 := memory_load64_le(mem, bvadd64(R0, 4072bv64)), (gamma_load64(Gamma_mem, bvadd64(R0, 4072bv64)) || L(mem, bvadd64(R0, 4072bv64))); - R0, Gamma_R0 := load22, Gamma_load22; - R1, Gamma_R1 := 3bv64, true; + $load$14, Gamma_$load$14 := memory_load64_le(mem, bvadd64(R1, 4064bv64)), (gamma_load64(Gamma_mem, bvadd64(R1, 4064bv64)) || L(mem, bvadd64(R1, 4064bv64))); + R3, Gamma_R3 := $load$14, Gamma_$load$14; call rely(); - assert (L(mem, R0) ==> Gamma_R1); - mem, Gamma_mem := memory_store32_le(mem, R0, R1[32:0]), gamma_store32(Gamma_mem, R0, Gamma_R1); - assume {:captureState "%0000037f"} true; - goto l00000368; - l00000368: - assume {:captureState "l00000368"} true; - goto l0000035e; - lmain_goto_l00000340: - assume {:captureState "lmain_goto_l00000340"} true; - assume (bvcomp1(ZF, 1bv1) != 0bv1); - R0, Gamma_R0 := 65536bv64, true; + $load$15, Gamma_$load$15 := memory_load64_le(mem, bvadd64(R1, 4080bv64)), (gamma_load64(Gamma_mem, bvadd64(R1, 4080bv64)) || L(mem, bvadd64(R1, 4080bv64))); + R1, Gamma_R1 := $load$15, Gamma_$load$15; call rely(); - load21, Gamma_load21 := memory_load64_le(mem, bvadd64(R0, 4072bv64)), (gamma_load64(Gamma_mem, bvadd64(R0, 4072bv64)) || L(mem, bvadd64(R0, 4072bv64))); - R0, Gamma_R0 := load21, Gamma_load21; - R1, Gamma_R1 := 2bv64, true; + assert (L(mem, R3) ==> Gamma_R4); + mem, Gamma_mem := memory_store32_le(mem, R3, R4[32:0]), gamma_store32(Gamma_mem, R3, Gamma_R4); + assume {:captureState "%00000260"} true; call rely(); - assert (L(mem, R0) ==> Gamma_R1); - mem, Gamma_mem := memory_store32_le(mem, R0, R1[32:0]), gamma_store32(Gamma_mem, R0, Gamma_R1); - assume {:captureState "%0000035c"} true; - goto l00000340; - l00000340: - assume {:captureState "l00000340"} true; - goto l0000035e; - l0000035e: - assume {:captureState "l0000035e"} true; - R0, Gamma_R0 := 0bv64, true; - goto main_1876_basil_return; - main_1876_basil_return: - assume {:captureState "main_1876_basil_return"} true; + assert (L(mem, R1) ==> Gamma_R2); + mem, Gamma_mem := memory_store32_le(mem, R1, R2[32:0]), gamma_store32(Gamma_mem, R1, Gamma_R2); + assume {:captureState "%00000264"} true; + goto main_basil_return; + main_basil_return: + assume {:captureState "main_basil_return"} true; return; } diff --git a/src/test/correct/cjump/gcc_pic/cjump.gts b/src/test/correct/cjump/gcc_pic/cjump.gts deleted file mode 100644 index 448d77ea6..000000000 Binary files a/src/test/correct/cjump/gcc_pic/cjump.gts and /dev/null differ diff --git a/src/test/correct/cjump/gcc_pic/cjump.md5sum b/src/test/correct/cjump/gcc_pic/cjump.md5sum new file mode 100644 index 000000000..d7e87eb6e --- /dev/null +++ b/src/test/correct/cjump/gcc_pic/cjump.md5sum @@ -0,0 +1,5 @@ +f426faf51b6581040238c9c1e06f12d6 correct/cjump/gcc_pic/a.out +2f251182e524286f175187a0cac8aeb1 correct/cjump/gcc_pic/cjump.adt +2be548c611489a9c1f8e09809c66ab02 correct/cjump/gcc_pic/cjump.bir +b91e120b0fce2608c5f7e858adc97d6f correct/cjump/gcc_pic/cjump.relf +476ff7e97cee009b72329f73f647fecb correct/cjump/gcc_pic/cjump.gts diff --git a/src/test/correct/cjump/gcc_pic/cjump.relf b/src/test/correct/cjump/gcc_pic/cjump.relf deleted file mode 100644 index 38c554a12..000000000 --- a/src/test/correct/cjump/gcc_pic/cjump.relf +++ /dev/null @@ -1,124 +0,0 @@ - -Relocation section '.rela.dyn' at offset 0x460 contains 10 entries: - Offset Info Type Symbol's Value Symbol's Name + Addend -0000000000010d88 0000000000000403 R_AARCH64_RELATIVE 750 -0000000000010d90 0000000000000403 R_AARCH64_RELATIVE 700 -0000000000010fd8 0000000000000403 R_AARCH64_RELATIVE 11014 -0000000000010fe8 0000000000000403 R_AARCH64_RELATIVE 11018 -0000000000010ff0 0000000000000403 R_AARCH64_RELATIVE 754 -0000000000011008 0000000000000403 R_AARCH64_RELATIVE 11008 -0000000000010fc8 0000000400000401 R_AARCH64_GLOB_DAT 0000000000000000 _ITM_deregisterTMCloneTable + 0 -0000000000010fd0 0000000500000401 R_AARCH64_GLOB_DAT 0000000000000000 __cxa_finalize@GLIBC_2.17 + 0 -0000000000010fe0 0000000600000401 R_AARCH64_GLOB_DAT 0000000000000000 __gmon_start__ + 0 -0000000000010ff8 0000000800000401 R_AARCH64_GLOB_DAT 0000000000000000 _ITM_registerTMCloneTable + 0 - -Relocation section '.rela.plt' at offset 0x550 contains 4 entries: - Offset Info Type Symbol's Value Symbol's Name + Addend -0000000000010fa0 0000000300000402 R_AARCH64_JUMP_SLOT 0000000000000000 __libc_start_main@GLIBC_2.34 + 0 -0000000000010fa8 0000000500000402 R_AARCH64_JUMP_SLOT 0000000000000000 __cxa_finalize@GLIBC_2.17 + 0 -0000000000010fb0 0000000600000402 R_AARCH64_JUMP_SLOT 0000000000000000 __gmon_start__ + 0 -0000000000010fb8 0000000700000402 R_AARCH64_JUMP_SLOT 0000000000000000 abort@GLIBC_2.17 + 0 - -Symbol table '.dynsym' contains 9 entries: - Num: Value Size Type Bind Vis Ndx Name - 0: 0000000000000000 0 NOTYPE LOCAL DEFAULT UND - 1: 00000000000005b0 0 SECTION LOCAL DEFAULT 11 .init - 2: 0000000000011000 0 SECTION LOCAL DEFAULT 22 .data - 3: 0000000000000000 0 FUNC GLOBAL DEFAULT UND __libc_start_main@GLIBC_2.34 (2) - 4: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_deregisterTMCloneTable - 5: 0000000000000000 0 FUNC WEAK DEFAULT UND __cxa_finalize@GLIBC_2.17 (3) - 6: 0000000000000000 0 NOTYPE WEAK DEFAULT UND __gmon_start__ - 7: 0000000000000000 0 FUNC GLOBAL DEFAULT UND abort@GLIBC_2.17 (3) - 8: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_registerTMCloneTable - -Symbol table '.symtab' contains 89 entries: - Num: Value Size Type Bind Vis Ndx Name - 0: 0000000000000000 0 NOTYPE LOCAL DEFAULT UND - 1: 0000000000000238 0 SECTION LOCAL DEFAULT 1 .interp - 2: 0000000000000254 0 SECTION LOCAL DEFAULT 2 .note.gnu.build-id - 3: 0000000000000278 0 SECTION LOCAL DEFAULT 3 .note.ABI-tag - 4: 0000000000000298 0 SECTION LOCAL DEFAULT 4 .gnu.hash - 5: 00000000000002b8 0 SECTION LOCAL DEFAULT 5 .dynsym - 6: 0000000000000390 0 SECTION LOCAL DEFAULT 6 .dynstr - 7: 000000000000041e 0 SECTION LOCAL DEFAULT 7 .gnu.version - 8: 0000000000000430 0 SECTION LOCAL DEFAULT 8 .gnu.version_r - 9: 0000000000000460 0 SECTION LOCAL DEFAULT 9 .rela.dyn - 10: 0000000000000550 0 SECTION LOCAL DEFAULT 10 .rela.plt - 11: 00000000000005b0 0 SECTION LOCAL DEFAULT 11 .init - 12: 00000000000005d0 0 SECTION LOCAL DEFAULT 12 .plt - 13: 0000000000000640 0 SECTION LOCAL DEFAULT 13 .text - 14: 00000000000007a4 0 SECTION LOCAL DEFAULT 14 .fini - 15: 00000000000007b8 0 SECTION LOCAL DEFAULT 15 .rodata - 16: 00000000000007bc 0 SECTION LOCAL DEFAULT 16 .eh_frame_hdr - 17: 00000000000007f8 0 SECTION LOCAL DEFAULT 17 .eh_frame - 18: 0000000000010d88 0 SECTION LOCAL DEFAULT 18 .init_array - 19: 0000000000010d90 0 SECTION LOCAL DEFAULT 19 .fini_array - 20: 0000000000010d98 0 SECTION LOCAL DEFAULT 20 .dynamic - 21: 0000000000010f88 0 SECTION LOCAL DEFAULT 21 .got - 22: 0000000000011000 0 SECTION LOCAL DEFAULT 22 .data - 23: 0000000000011010 0 SECTION LOCAL DEFAULT 23 .bss - 24: 0000000000000000 0 SECTION LOCAL DEFAULT 24 .comment - 25: 0000000000000000 0 FILE LOCAL DEFAULT ABS Scrt1.o - 26: 0000000000000278 0 NOTYPE LOCAL DEFAULT 3 $d - 27: 0000000000000278 32 OBJECT LOCAL DEFAULT 3 __abi_tag - 28: 0000000000000640 0 NOTYPE LOCAL DEFAULT 13 $x - 29: 000000000000080c 0 NOTYPE LOCAL DEFAULT 17 $d - 30: 00000000000007b8 0 NOTYPE LOCAL DEFAULT 15 $d - 31: 0000000000000000 0 FILE LOCAL DEFAULT ABS crti.o - 32: 0000000000000674 0 NOTYPE LOCAL DEFAULT 13 $x - 33: 0000000000000674 20 FUNC LOCAL DEFAULT 13 call_weak_fn - 34: 00000000000005b0 0 NOTYPE LOCAL DEFAULT 11 $x - 35: 00000000000007a4 0 NOTYPE LOCAL DEFAULT 14 $x - 36: 0000000000000000 0 FILE LOCAL DEFAULT ABS crtn.o - 37: 00000000000005c0 0 NOTYPE LOCAL DEFAULT 11 $x - 38: 00000000000007b0 0 NOTYPE LOCAL DEFAULT 14 $x - 39: 0000000000000000 0 FILE LOCAL DEFAULT ABS crtstuff.c - 40: 0000000000000690 0 NOTYPE LOCAL DEFAULT 13 $x - 41: 0000000000000690 0 FUNC LOCAL DEFAULT 13 deregister_tm_clones - 42: 00000000000006c0 0 FUNC LOCAL DEFAULT 13 register_tm_clones - 43: 0000000000011008 0 NOTYPE LOCAL DEFAULT 22 $d - 44: 0000000000000700 0 FUNC LOCAL DEFAULT 13 __do_global_dtors_aux - 45: 0000000000011010 1 OBJECT LOCAL DEFAULT 23 completed.0 - 46: 0000000000010d90 0 NOTYPE LOCAL DEFAULT 19 $d - 47: 0000000000010d90 0 OBJECT LOCAL DEFAULT 19 __do_global_dtors_aux_fini_array_entry - 48: 0000000000000750 0 FUNC LOCAL DEFAULT 13 frame_dummy - 49: 0000000000010d88 0 NOTYPE LOCAL DEFAULT 18 $d - 50: 0000000000010d88 0 OBJECT LOCAL DEFAULT 18 __frame_dummy_init_array_entry - 51: 0000000000000820 0 NOTYPE LOCAL DEFAULT 17 $d - 52: 0000000000011010 0 NOTYPE LOCAL DEFAULT 23 $d - 53: 0000000000000000 0 FILE LOCAL DEFAULT ABS cjump.c - 54: 0000000000011014 0 NOTYPE LOCAL DEFAULT 23 $d - 55: 0000000000000754 0 NOTYPE LOCAL DEFAULT 13 $x - 56: 0000000000000880 0 NOTYPE LOCAL DEFAULT 17 $d - 57: 0000000000000000 0 FILE LOCAL DEFAULT ABS crtstuff.c - 58: 0000000000000894 0 NOTYPE LOCAL DEFAULT 17 $d - 59: 0000000000000894 0 OBJECT LOCAL DEFAULT 17 __FRAME_END__ - 60: 0000000000000000 0 FILE LOCAL DEFAULT ABS - 61: 0000000000010d98 0 OBJECT LOCAL DEFAULT ABS _DYNAMIC - 62: 00000000000007bc 0 NOTYPE LOCAL DEFAULT 16 __GNU_EH_FRAME_HDR - 63: 0000000000010fc0 0 OBJECT LOCAL DEFAULT ABS _GLOBAL_OFFSET_TABLE_ - 64: 00000000000005d0 0 NOTYPE LOCAL DEFAULT 12 $x - 65: 0000000000000000 0 FUNC GLOBAL DEFAULT UND __libc_start_main@GLIBC_2.34 - 66: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_deregisterTMCloneTable - 67: 0000000000011000 0 NOTYPE WEAK DEFAULT 22 data_start - 68: 0000000000011010 0 NOTYPE GLOBAL DEFAULT 23 __bss_start__ - 69: 0000000000000000 0 FUNC WEAK DEFAULT UND __cxa_finalize@GLIBC_2.17 - 70: 0000000000011020 0 NOTYPE GLOBAL DEFAULT 23 _bss_end__ - 71: 0000000000011010 0 NOTYPE GLOBAL DEFAULT 22 _edata - 72: 0000000000011014 4 OBJECT GLOBAL DEFAULT 23 x - 73: 00000000000007a4 0 FUNC GLOBAL HIDDEN 14 _fini - 74: 0000000000011020 0 NOTYPE GLOBAL DEFAULT 23 __bss_end__ - 75: 0000000000011000 0 NOTYPE GLOBAL DEFAULT 22 __data_start - 76: 0000000000000000 0 NOTYPE WEAK DEFAULT UND __gmon_start__ - 77: 0000000000011008 0 OBJECT GLOBAL HIDDEN 22 __dso_handle - 78: 0000000000000000 0 FUNC GLOBAL DEFAULT UND abort@GLIBC_2.17 - 79: 00000000000007b8 4 OBJECT GLOBAL DEFAULT 15 _IO_stdin_used - 80: 0000000000011020 0 NOTYPE GLOBAL DEFAULT 23 _end - 81: 0000000000000640 52 FUNC GLOBAL DEFAULT 13 _start - 82: 0000000000011020 0 NOTYPE GLOBAL DEFAULT 23 __end__ - 83: 0000000000011018 4 OBJECT GLOBAL DEFAULT 23 y - 84: 0000000000011010 0 NOTYPE GLOBAL DEFAULT 23 __bss_start - 85: 0000000000000754 80 FUNC GLOBAL DEFAULT 13 main - 86: 0000000000011010 0 OBJECT GLOBAL HIDDEN 22 __TMC_END__ - 87: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_registerTMCloneTable - 88: 00000000000005b0 0 FUNC GLOBAL HIDDEN 11 _init diff --git a/src/test/correct/cjump/gcc_pic/cjump_gtirb.expected b/src/test/correct/cjump/gcc_pic/cjump_gtirb.expected index f93e3750f..aab5d5870 100644 --- a/src/test/correct/cjump/gcc_pic/cjump_gtirb.expected +++ b/src/test/correct/cjump/gcc_pic/cjump_gtirb.expected @@ -1,31 +1,24 @@ -var {:extern} CF: bv1; -var {:extern} Gamma_CF: bool; -var {:extern} Gamma_NF: bool; var {:extern} Gamma_R0: bool; var {:extern} Gamma_R1: bool; -var {:extern} Gamma_VF: bool; -var {:extern} Gamma_ZF: bool; +var {:extern} Gamma_R2: bool; +var {:extern} Gamma_R3: bool; +var {:extern} Gamma_R4: bool; var {:extern} Gamma_mem: [bv64]bool; -var {:extern} NF: bv1; var {:extern} R0: bv64; var {:extern} R1: bv64; -var {:extern} VF: bv1; -var {:extern} ZF: bv1; +var {:extern} R2: bv64; +var {:extern} R3: bv64; +var {:extern} R4: bv64; var {:extern} mem: [bv64]bv8; const {:extern} $x_addr: bv64; -axiom ($x_addr == 69652bv64); +axiom ($x_addr == 4325400bv64); const {:extern} $y_addr: bv64; -axiom ($y_addr == 69656bv64); +axiom ($y_addr == 4325396bv64); function {:extern} L(mem$in: [bv64]bv8, index: bv64) returns (bool) { false } -function {:extern} {:bvbuiltin "bvadd"} bvadd32(bv32, bv32) returns (bv32); -function {:extern} {:bvbuiltin "bvadd"} bvadd33(bv33, bv33) returns (bv33); function {:extern} {:bvbuiltin "bvadd"} bvadd64(bv64, bv64) returns (bv64); -function {:extern} {:bvbuiltin "bvcomp"} bvcomp32(bv32, bv32) returns (bv1); -function {:extern} {:bvbuiltin "bvcomp"} bvcomp33(bv33, bv33) returns (bv1); -function {:extern} {:bvbuiltin "bvnot"} bvnot1(bv1) returns (bv1); function {:extern} gamma_load32(gammaMap: [bv64]bool, index: bv64) returns (bool) { (gammaMap[bvadd64(index, 3bv64)] && (gammaMap[bvadd64(index, 2bv64)] && (gammaMap[bvadd64(index, 1bv64)] && gammaMap[index]))) } @@ -50,19 +43,11 @@ function {:extern} memory_store32_le(memory: [bv64]bv8, index: bv64, value: bv32 memory[index := value[8:0]][bvadd64(index, 1bv64) := value[16:8]][bvadd64(index, 2bv64) := value[24:16]][bvadd64(index, 3bv64) := value[32:24]] } -function {:extern} {:bvbuiltin "zero_extend 1"} zero_extend1_32(bv32) returns (bv33); -function {:extern} {:bvbuiltin "zero_extend 32"} zero_extend32_32(bv32) returns (bv64); procedure {:extern} rely(); modifies Gamma_mem, mem; ensures (Gamma_mem == old(Gamma_mem)); ensures (mem == old(mem)); - free ensures (memory_load32_le(mem, 1976bv64) == 131073bv32); - free ensures (memory_load64_le(mem, 69000bv64) == 1872bv64); - free ensures (memory_load64_le(mem, 69008bv64) == 1792bv64); - free ensures (memory_load64_le(mem, 69592bv64) == 69652bv64); - free ensures (memory_load64_le(mem, 69608bv64) == 69656bv64); - free ensures (memory_load64_le(mem, 69616bv64) == 1876bv64); - free ensures (memory_load64_le(mem, 69640bv64) == 69640bv64); + free ensures (memory_load32_le(mem, 4196312bv64) == 131073bv32); procedure {:extern} rely_transitive(); modifies Gamma_mem, mem; @@ -80,104 +65,44 @@ procedure {:extern} rely_reflexive(); procedure {:extern} guarantee_reflexive(); modifies Gamma_mem, mem; -procedure main_1876(); - modifies CF, Gamma_CF, Gamma_NF, Gamma_R0, Gamma_R1, Gamma_VF, Gamma_ZF, Gamma_mem, NF, R0, R1, VF, ZF, mem; +procedure main(); + modifies Gamma_R0, Gamma_R1, Gamma_R2, Gamma_R3, Gamma_R4, Gamma_mem, R0, R1, R2, R3, R4, mem; requires (gamma_load32(Gamma_mem, $x_addr) == true); requires (gamma_load32(Gamma_mem, $y_addr) == false); - free requires (memory_load64_le(mem, 69632bv64) == 0bv64); - free requires (memory_load64_le(mem, 69640bv64) == 69640bv64); - free requires (memory_load32_le(mem, 1976bv64) == 131073bv32); - free requires (memory_load64_le(mem, 69000bv64) == 1872bv64); - free requires (memory_load64_le(mem, 69008bv64) == 1792bv64); - free requires (memory_load64_le(mem, 69592bv64) == 69652bv64); - free requires (memory_load64_le(mem, 69608bv64) == 69656bv64); - free requires (memory_load64_le(mem, 69616bv64) == 1876bv64); - free requires (memory_load64_le(mem, 69640bv64) == 69640bv64); - free ensures (memory_load32_le(mem, 1976bv64) == 131073bv32); - free ensures (memory_load64_le(mem, 69000bv64) == 1872bv64); - free ensures (memory_load64_le(mem, 69008bv64) == 1792bv64); - free ensures (memory_load64_le(mem, 69592bv64) == 69652bv64); - free ensures (memory_load64_le(mem, 69608bv64) == 69656bv64); - free ensures (memory_load64_le(mem, 69616bv64) == 1876bv64); - free ensures (memory_load64_le(mem, 69640bv64) == 69640bv64); + free requires (memory_load64_le(mem, 4325376bv64) == 0bv64); + free requires (memory_load64_le(mem, 4325384bv64) == 0bv64); + free requires (memory_load32_le(mem, 4196312bv64) == 131073bv32); + free ensures (memory_load32_le(mem, 4196312bv64) == 131073bv32); -implementation main_1876() +implementation main() { - var Cse0__5_2_7: bv32; - var Gamma_Cse0__5_2_7: bool; - var Gamma_load2: bool; - var Gamma_load3: bool; - var Gamma_load4: bool; - var Gamma_load5: bool; - var Gamma_load6: bool; - var load2: bv64; - var load3: bv64; - var load4: bv64; - var load5: bv32; - var load6: bv64; - main_1876__0__odan6iejSaiIvyv2xbxX2Q: - assume {:captureState "main_1876__0__odan6iejSaiIvyv2xbxX2Q"} true; - R0, Gamma_R0 := 65536bv64, true; - call rely(); - load3, Gamma_load3 := memory_load64_le(mem, bvadd64(R0, 4056bv64)), (gamma_load64(Gamma_mem, bvadd64(R0, 4056bv64)) || L(mem, bvadd64(R0, 4056bv64))); - R0, Gamma_R0 := load3, Gamma_load3; - R1, Gamma_R1 := 1bv64, true; - call rely(); - assert (L(mem, R0) ==> Gamma_R1); - mem, Gamma_mem := memory_store32_le(mem, R0, R1[32:0]), gamma_store32(Gamma_mem, R0, Gamma_R1); - assume {:captureState "1888_0"} true; - R0, Gamma_R0 := 65536bv64, true; - call rely(); - load4, Gamma_load4 := memory_load64_le(mem, bvadd64(R0, 4056bv64)), (gamma_load64(Gamma_mem, bvadd64(R0, 4056bv64)) || L(mem, bvadd64(R0, 4056bv64))); - R0, Gamma_R0 := load4, Gamma_load4; - call rely(); - load5, Gamma_load5 := memory_load32_le(mem, R0), (gamma_load32(Gamma_mem, R0) || L(mem, R0)); - R0, Gamma_R0 := zero_extend32_32(load5), Gamma_load5; - Cse0__5_2_7, Gamma_Cse0__5_2_7 := bvadd32(R0[32:0], 0bv32), Gamma_R0; - VF, Gamma_VF := bvnot1(bvcomp32(Cse0__5_2_7, Cse0__5_2_7)), Gamma_Cse0__5_2_7; - CF, Gamma_CF := bvnot1(bvcomp33(zero_extend1_32(Cse0__5_2_7), bvadd33(zero_extend1_32(R0[32:0]), 4294967296bv33))), (Gamma_R0 && Gamma_Cse0__5_2_7); - ZF, Gamma_ZF := bvcomp32(Cse0__5_2_7, 0bv32), Gamma_Cse0__5_2_7; - NF, Gamma_NF := Cse0__5_2_7[32:31], Gamma_Cse0__5_2_7; - assert Gamma_ZF; - goto main_1876__0__odan6iejSaiIvyv2xbxX2Q_goto_main_1876__2__7OQ5GMtLT3i738Ax4kb9lg, main_1876__0__odan6iejSaiIvyv2xbxX2Q_goto_main_1876__1__MCUkhZcpTE24flHPahs6NA; - main_1876__0__odan6iejSaiIvyv2xbxX2Q_goto_main_1876__1__MCUkhZcpTE24flHPahs6NA: - assume {:captureState "main_1876__0__odan6iejSaiIvyv2xbxX2Q_goto_main_1876__1__MCUkhZcpTE24flHPahs6NA"} true; - assume (!(ZF == 1bv1)); - R0, Gamma_R0 := 65536bv64, true; + var $load16: bv64; + var $load17: bv64; + var Gamma_$load16: bool; + var Gamma_$load17: bool; + $main$__0__$i2bc6yURTw~Pq2nxe63pQA: + assume {:captureState "$main$__0__$i2bc6yURTw~Pq2nxe63pQA"} true; + R1, Gamma_R1 := 4321280bv64, true; + R4, Gamma_R4 := 1bv64, true; + R2, Gamma_R2 := 3bv64, true; + R0, Gamma_R0 := 0bv64, true; call rely(); - load2, Gamma_load2 := memory_load64_le(mem, bvadd64(R0, 4072bv64)), (gamma_load64(Gamma_mem, bvadd64(R0, 4072bv64)) || L(mem, bvadd64(R0, 4072bv64))); - R0, Gamma_R0 := load2, Gamma_load2; - R1, Gamma_R1 := 3bv64, true; + $load16, Gamma_$load16 := memory_load64_le(mem, bvadd64(R1, 4064bv64)), (gamma_load64(Gamma_mem, bvadd64(R1, 4064bv64)) || L(mem, bvadd64(R1, 4064bv64))); + R3, Gamma_R3 := $load16, Gamma_$load16; call rely(); - assert (L(mem, R0) ==> Gamma_R1); - mem, Gamma_mem := memory_store32_le(mem, R0, R1[32:0]), gamma_store32(Gamma_mem, R0, Gamma_R1); - assume {:captureState "1924_0"} true; - goto main_1876__1__MCUkhZcpTE24flHPahs6NA; - main_1876__1__MCUkhZcpTE24flHPahs6NA: - assume {:captureState "main_1876__1__MCUkhZcpTE24flHPahs6NA"} true; - goto main_1876__3__bH6WR9krRFGfL0jcN6MCWA; - main_1876__0__odan6iejSaiIvyv2xbxX2Q_goto_main_1876__2__7OQ5GMtLT3i738Ax4kb9lg: - assume {:captureState "main_1876__0__odan6iejSaiIvyv2xbxX2Q_goto_main_1876__2__7OQ5GMtLT3i738Ax4kb9lg"} true; - assume (ZF == 1bv1); - R0, Gamma_R0 := 65536bv64, true; + $load17, Gamma_$load17 := memory_load64_le(mem, bvadd64(R1, 4080bv64)), (gamma_load64(Gamma_mem, bvadd64(R1, 4080bv64)) || L(mem, bvadd64(R1, 4080bv64))); + R1, Gamma_R1 := $load17, Gamma_$load17; call rely(); - load6, Gamma_load6 := memory_load64_le(mem, bvadd64(R0, 4072bv64)), (gamma_load64(Gamma_mem, bvadd64(R0, 4072bv64)) || L(mem, bvadd64(R0, 4072bv64))); - R0, Gamma_R0 := load6, Gamma_load6; - R1, Gamma_R1 := 2bv64, true; + assert (L(mem, R3) ==> Gamma_R4); + mem, Gamma_mem := memory_store32_le(mem, R3, R4[32:0]), gamma_store32(Gamma_mem, R3, Gamma_R4); + assume {:captureState "4195992$0"} true; call rely(); - assert (L(mem, R0) ==> Gamma_R1); - mem, Gamma_mem := memory_store32_le(mem, R0, R1[32:0]), gamma_store32(Gamma_mem, R0, Gamma_R1); - assume {:captureState "1944_0"} true; - goto main_1876__2__7OQ5GMtLT3i738Ax4kb9lg; - main_1876__2__7OQ5GMtLT3i738Ax4kb9lg: - assume {:captureState "main_1876__2__7OQ5GMtLT3i738Ax4kb9lg"} true; - goto main_1876__3__bH6WR9krRFGfL0jcN6MCWA; - main_1876__3__bH6WR9krRFGfL0jcN6MCWA: - assume {:captureState "main_1876__3__bH6WR9krRFGfL0jcN6MCWA"} true; - R0, Gamma_R0 := 0bv64, true; - goto main_1876_basil_return; - main_1876_basil_return: - assume {:captureState "main_1876_basil_return"} true; + assert (L(mem, R1) ==> Gamma_R2); + mem, Gamma_mem := memory_store32_le(mem, R1, R2[32:0]), gamma_store32(Gamma_mem, R1, Gamma_R2); + assume {:captureState "4195996$0"} true; + goto main_basil_return; + main_basil_return: + assume {:captureState "main_basil_return"} true; return; } diff --git a/src/test/correct/floatingpoint/clang/floatingpoint.expected b/src/test/correct/floatingpoint/clang/floatingpoint.expected new file mode 100644 index 000000000..cfbb65779 --- /dev/null +++ b/src/test/correct/floatingpoint/clang/floatingpoint.expected @@ -0,0 +1,63 @@ +var {:extern} Gamma_mem: [bv64]bool; +var {:extern} mem: [bv64]bv8; +const {:extern} $_IO_stdin_used_addr: bv64; +axiom ($_IO_stdin_used_addr == 2220bv64); +function {:extern} {:bvbuiltin "bvadd"} bvadd64(bv64, bv64) returns (bv64); +function {:extern} memory_load32_le(memory: [bv64]bv8, index: bv64) returns (bv32) { + (memory[bvadd64(index, 3bv64)] ++ (memory[bvadd64(index, 2bv64)] ++ (memory[bvadd64(index, 1bv64)] ++ memory[index]))) +} + +function {:extern} memory_load64_le(memory: [bv64]bv8, index: bv64) returns (bv64) { + (memory[bvadd64(index, 7bv64)] ++ (memory[bvadd64(index, 6bv64)] ++ (memory[bvadd64(index, 5bv64)] ++ (memory[bvadd64(index, 4bv64)] ++ (memory[bvadd64(index, 3bv64)] ++ (memory[bvadd64(index, 2bv64)] ++ (memory[bvadd64(index, 1bv64)] ++ memory[index]))))))) +} + +procedure {:extern} rely(); + modifies Gamma_mem, mem; + ensures (Gamma_mem == old(Gamma_mem)); + ensures (mem == old(mem)); + free ensures (memory_load32_le(mem, 2220bv64) == 131073bv32); + free ensures (memory_load64_le(mem, 130440bv64) == 2192bv64); + free ensures (memory_load64_le(mem, 130448bv64) == 2112bv64); + free ensures (memory_load64_le(mem, 131056bv64) == 2196bv64); + free ensures (memory_load64_le(mem, 131080bv64) == 131080bv64); + +procedure {:extern} rely_transitive(); + modifies Gamma_mem, mem; + ensures (Gamma_mem == old(Gamma_mem)); + ensures (mem == old(mem)); + +implementation {:extern} rely_transitive() +{ + call rely(); + call rely(); +} + +procedure {:extern} rely_reflexive(); + +procedure {:extern} guarantee_reflexive(); + modifies Gamma_mem, mem; + +procedure main(); + free requires (memory_load64_le(mem, 131072bv64) == 0bv64); + free requires (memory_load64_le(mem, 131080bv64) == 131080bv64); + free requires (memory_load32_le(mem, 2220bv64) == 131073bv32); + free requires (memory_load64_le(mem, 130440bv64) == 2192bv64); + free requires (memory_load64_le(mem, 130448bv64) == 2112bv64); + free requires (memory_load64_le(mem, 131056bv64) == 2196bv64); + free requires (memory_load64_le(mem, 131080bv64) == 131080bv64); + free ensures (memory_load32_le(mem, 2220bv64) == 131073bv32); + free ensures (memory_load64_le(mem, 130440bv64) == 2192bv64); + free ensures (memory_load64_le(mem, 130448bv64) == 2112bv64); + free ensures (memory_load64_le(mem, 131056bv64) == 2196bv64); + free ensures (memory_load64_le(mem, 131080bv64) == 131080bv64); + +implementation main() +{ + lmain: + assume {:captureState "lmain"} true; + goto main_basil_return; + main_basil_return: + assume {:captureState "main_basil_return"} true; + return; +} + diff --git a/src/test/correct/floatingpoint/clang/floatingpoint.gts b/src/test/correct/floatingpoint/clang/floatingpoint.gts deleted file mode 100644 index 54f3fcf03..000000000 Binary files a/src/test/correct/floatingpoint/clang/floatingpoint.gts and /dev/null differ diff --git a/src/test/correct/floatingpoint/clang/floatingpoint.md5sum b/src/test/correct/floatingpoint/clang/floatingpoint.md5sum new file mode 100644 index 000000000..249d2483b --- /dev/null +++ b/src/test/correct/floatingpoint/clang/floatingpoint.md5sum @@ -0,0 +1,3 @@ +b8ea04ebdfa109ed3d3def56ae04cfff correct/floatingpoint/clang/a.out +7c08b402c4fc9f21f0beee5fc2d69069 correct/floatingpoint/clang/floatingpoint.relf +b083a80126ef4186636f7976f8929949 correct/floatingpoint/clang/floatingpoint.gts diff --git a/src/test/correct/floatingpoint/clang/floatingpoint.relf b/src/test/correct/floatingpoint/clang/floatingpoint.relf deleted file mode 100644 index 15053dfe5..000000000 --- a/src/test/correct/floatingpoint/clang/floatingpoint.relf +++ /dev/null @@ -1,122 +0,0 @@ - -Relocation section '.rela.dyn' at offset 0x460 contains 8 entries: - Offset Info Type Symbol's Value Symbol's Name + Addend -0000000000010dc8 0000000000000403 R_AARCH64_RELATIVE 710 -0000000000010dd0 0000000000000403 R_AARCH64_RELATIVE 6c0 -0000000000010fd8 0000000000000403 R_AARCH64_RELATIVE 714 -0000000000011028 0000000000000403 R_AARCH64_RELATIVE 11028 -0000000000010fc0 0000000400000401 R_AARCH64_GLOB_DAT 0000000000000000 _ITM_deregisterTMCloneTable + 0 -0000000000010fc8 0000000500000401 R_AARCH64_GLOB_DAT 0000000000000000 __cxa_finalize@GLIBC_2.17 + 0 -0000000000010fd0 0000000600000401 R_AARCH64_GLOB_DAT 0000000000000000 __gmon_start__ + 0 -0000000000010fe0 0000000800000401 R_AARCH64_GLOB_DAT 0000000000000000 _ITM_registerTMCloneTable + 0 - -Relocation section '.rela.plt' at offset 0x520 contains 4 entries: - Offset Info Type Symbol's Value Symbol's Name + Addend -0000000000011000 0000000300000402 R_AARCH64_JUMP_SLOT 0000000000000000 __libc_start_main@GLIBC_2.34 + 0 -0000000000011008 0000000500000402 R_AARCH64_JUMP_SLOT 0000000000000000 __cxa_finalize@GLIBC_2.17 + 0 -0000000000011010 0000000600000402 R_AARCH64_JUMP_SLOT 0000000000000000 __gmon_start__ + 0 -0000000000011018 0000000700000402 R_AARCH64_JUMP_SLOT 0000000000000000 abort@GLIBC_2.17 + 0 - -Symbol table '.dynsym' contains 9 entries: - Num: Value Size Type Bind Vis Ndx Name - 0: 0000000000000000 0 NOTYPE LOCAL DEFAULT UND - 1: 0000000000000580 0 SECTION LOCAL DEFAULT 11 .init - 2: 0000000000011020 0 SECTION LOCAL DEFAULT 23 .data - 3: 0000000000000000 0 FUNC GLOBAL DEFAULT UND __libc_start_main@GLIBC_2.34 (2) - 4: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_deregisterTMCloneTable - 5: 0000000000000000 0 FUNC WEAK DEFAULT UND __cxa_finalize@GLIBC_2.17 (3) - 6: 0000000000000000 0 NOTYPE WEAK DEFAULT UND __gmon_start__ - 7: 0000000000000000 0 FUNC GLOBAL DEFAULT UND abort@GLIBC_2.17 (3) - 8: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_registerTMCloneTable - -Symbol table '.symtab' contains 89 entries: - Num: Value Size Type Bind Vis Ndx Name - 0: 0000000000000000 0 NOTYPE LOCAL DEFAULT UND - 1: 0000000000000238 0 SECTION LOCAL DEFAULT 1 .interp - 2: 0000000000000254 0 SECTION LOCAL DEFAULT 2 .note.gnu.build-id - 3: 0000000000000278 0 SECTION LOCAL DEFAULT 3 .note.ABI-tag - 4: 0000000000000298 0 SECTION LOCAL DEFAULT 4 .gnu.hash - 5: 00000000000002b8 0 SECTION LOCAL DEFAULT 5 .dynsym - 6: 0000000000000390 0 SECTION LOCAL DEFAULT 6 .dynstr - 7: 000000000000041e 0 SECTION LOCAL DEFAULT 7 .gnu.version - 8: 0000000000000430 0 SECTION LOCAL DEFAULT 8 .gnu.version_r - 9: 0000000000000460 0 SECTION LOCAL DEFAULT 9 .rela.dyn - 10: 0000000000000520 0 SECTION LOCAL DEFAULT 10 .rela.plt - 11: 0000000000000580 0 SECTION LOCAL DEFAULT 11 .init - 12: 00000000000005a0 0 SECTION LOCAL DEFAULT 12 .plt - 13: 0000000000000600 0 SECTION LOCAL DEFAULT 13 .text - 14: 0000000000000810 0 SECTION LOCAL DEFAULT 14 .fini - 15: 0000000000000828 0 SECTION LOCAL DEFAULT 15 .rodata - 16: 0000000000000838 0 SECTION LOCAL DEFAULT 16 .eh_frame_hdr - 17: 0000000000000878 0 SECTION LOCAL DEFAULT 17 .eh_frame - 18: 0000000000010dc8 0 SECTION LOCAL DEFAULT 18 .init_array - 19: 0000000000010dd0 0 SECTION LOCAL DEFAULT 19 .fini_array - 20: 0000000000010dd8 0 SECTION LOCAL DEFAULT 20 .dynamic - 21: 0000000000010fb8 0 SECTION LOCAL DEFAULT 21 .got - 22: 0000000000010fe8 0 SECTION LOCAL DEFAULT 22 .got.plt - 23: 0000000000011020 0 SECTION LOCAL DEFAULT 23 .data - 24: 0000000000011030 0 SECTION LOCAL DEFAULT 24 .bss - 25: 0000000000000000 0 SECTION LOCAL DEFAULT 25 .comment - 26: 0000000000000000 0 FILE LOCAL DEFAULT ABS Scrt1.o - 27: 0000000000000278 0 NOTYPE LOCAL DEFAULT 3 $d - 28: 0000000000000278 32 OBJECT LOCAL DEFAULT 3 __abi_tag - 29: 0000000000000600 0 NOTYPE LOCAL DEFAULT 13 $x - 30: 000000000000088c 0 NOTYPE LOCAL DEFAULT 17 $d - 31: 0000000000000828 0 NOTYPE LOCAL DEFAULT 15 $d - 32: 0000000000000000 0 FILE LOCAL DEFAULT ABS crti.o - 33: 0000000000000634 0 NOTYPE LOCAL DEFAULT 13 $x - 34: 0000000000000634 20 FUNC LOCAL DEFAULT 13 call_weak_fn - 35: 0000000000000580 0 NOTYPE LOCAL DEFAULT 11 $x - 36: 0000000000000810 0 NOTYPE LOCAL DEFAULT 14 $x - 37: 0000000000000000 0 FILE LOCAL DEFAULT ABS crtn.o - 38: 0000000000000590 0 NOTYPE LOCAL DEFAULT 11 $x - 39: 000000000000081c 0 NOTYPE LOCAL DEFAULT 14 $x - 40: 0000000000000000 0 FILE LOCAL DEFAULT ABS crtstuff.c - 41: 0000000000000650 0 NOTYPE LOCAL DEFAULT 13 $x - 42: 0000000000000650 0 FUNC LOCAL DEFAULT 13 deregister_tm_clones - 43: 0000000000000680 0 FUNC LOCAL DEFAULT 13 register_tm_clones - 44: 0000000000011028 0 NOTYPE LOCAL DEFAULT 23 $d - 45: 00000000000006c0 0 FUNC LOCAL DEFAULT 13 __do_global_dtors_aux - 46: 0000000000011030 1 OBJECT LOCAL DEFAULT 24 completed.0 - 47: 0000000000010dd0 0 NOTYPE LOCAL DEFAULT 19 $d - 48: 0000000000010dd0 0 OBJECT LOCAL DEFAULT 19 __do_global_dtors_aux_fini_array_entry - 49: 0000000000000710 0 FUNC LOCAL DEFAULT 13 frame_dummy - 50: 0000000000010dc8 0 NOTYPE LOCAL DEFAULT 18 $d - 51: 0000000000010dc8 0 OBJECT LOCAL DEFAULT 18 __frame_dummy_init_array_entry - 52: 00000000000008a0 0 NOTYPE LOCAL DEFAULT 17 $d - 53: 0000000000011030 0 NOTYPE LOCAL DEFAULT 24 $d - 54: 0000000000000000 0 FILE LOCAL DEFAULT ABS floatingpoint.c - 55: 0000000000000830 0 NOTYPE LOCAL DEFAULT 15 $d.0 - 56: 0000000000000714 0 NOTYPE LOCAL DEFAULT 13 $x.1 - 57: 000000000000002a 0 NOTYPE LOCAL DEFAULT 25 $d.2 - 58: 0000000000000900 0 NOTYPE LOCAL DEFAULT 17 $d.3 - 59: 0000000000000000 0 FILE LOCAL DEFAULT ABS crtstuff.c - 60: 000000000000092c 0 NOTYPE LOCAL DEFAULT 17 $d - 61: 000000000000092c 0 OBJECT LOCAL DEFAULT 17 __FRAME_END__ - 62: 0000000000000000 0 FILE LOCAL DEFAULT ABS - 63: 0000000000010dd8 0 OBJECT LOCAL DEFAULT ABS _DYNAMIC - 64: 0000000000000838 0 NOTYPE LOCAL DEFAULT 16 __GNU_EH_FRAME_HDR - 65: 0000000000010fb8 0 OBJECT LOCAL DEFAULT ABS _GLOBAL_OFFSET_TABLE_ - 66: 00000000000005a0 0 NOTYPE LOCAL DEFAULT 12 $x - 67: 0000000000000000 0 FUNC GLOBAL DEFAULT UND __libc_start_main@GLIBC_2.34 - 68: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_deregisterTMCloneTable - 69: 0000000000011020 0 NOTYPE WEAK DEFAULT 23 data_start - 70: 0000000000011030 0 NOTYPE GLOBAL DEFAULT 24 __bss_start__ - 71: 0000000000000000 0 FUNC WEAK DEFAULT UND __cxa_finalize@GLIBC_2.17 - 72: 0000000000011038 0 NOTYPE GLOBAL DEFAULT 24 _bss_end__ - 73: 0000000000011030 0 NOTYPE GLOBAL DEFAULT 23 _edata - 74: 0000000000000810 0 FUNC GLOBAL HIDDEN 14 _fini - 75: 0000000000011038 0 NOTYPE GLOBAL DEFAULT 24 __bss_end__ - 76: 0000000000011020 0 NOTYPE GLOBAL DEFAULT 23 __data_start - 77: 0000000000000000 0 NOTYPE WEAK DEFAULT UND __gmon_start__ - 78: 0000000000011028 0 OBJECT GLOBAL HIDDEN 23 __dso_handle - 79: 0000000000000000 0 FUNC GLOBAL DEFAULT UND abort@GLIBC_2.17 - 80: 0000000000000828 4 OBJECT GLOBAL DEFAULT 15 _IO_stdin_used - 81: 0000000000011038 0 NOTYPE GLOBAL DEFAULT 24 _end - 82: 0000000000000600 52 FUNC GLOBAL DEFAULT 13 _start - 83: 0000000000011038 0 NOTYPE GLOBAL DEFAULT 24 __end__ - 84: 0000000000011030 0 NOTYPE GLOBAL DEFAULT 24 __bss_start - 85: 0000000000000714 252 FUNC GLOBAL DEFAULT 13 main - 86: 0000000000011030 0 OBJECT GLOBAL HIDDEN 23 __TMC_END__ - 87: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_registerTMCloneTable - 88: 0000000000000580 0 FUNC GLOBAL HIDDEN 11 _init diff --git a/src/test/correct/floatingpoint/clang/floatingpoint_gtirb.expected b/src/test/correct/floatingpoint/clang/floatingpoint_gtirb.expected index cb2d9897e..a315dff87 100644 --- a/src/test/correct/floatingpoint/clang/floatingpoint_gtirb.expected +++ b/src/test/correct/floatingpoint/clang/floatingpoint_gtirb.expected @@ -1,55 +1,8 @@ -var {:extern} FPCR: bv32; -var {:extern} Gamma_FPCR: bool; -var {:extern} Gamma_R0: bool; -var {:extern} Gamma_R1: bool; -var {:extern} Gamma_R31: bool; -var {:extern} Gamma_R8: bool; -var {:extern} Gamma_V0: bool; -var {:extern} Gamma_V1: bool; var {:extern} Gamma_mem: [bv64]bool; -var {:extern} Gamma_stack: [bv64]bool; -var {:extern} R0: bv64; -var {:extern} R1: bv64; -var {:extern} R31: bv64; -var {:extern} R8: bv64; -var {:extern} V0: bv128; -var {:extern} V1: bv128; var {:extern} mem: [bv64]bv8; -var {:extern} stack: [bv64]bv8; const {:extern} $_IO_stdin_used_addr: bv64; -axiom ($_IO_stdin_used_addr == 2088bv64); -function FPAdd_32(bv32, bv32, bv32) returns (bv32); -function FPAdd_64(bv64, bv64, bv32) returns (bv64); -function FPConvert_32_64(bv64, bv32, bv3) returns (bv32); -function FPConvert_64_32(bv32, bv32, bv3) returns (bv64); -function FPDiv_32(bv32, bv32, bv32) returns (bv32); -function FPDiv_64(bv64, bv64, bv32) returns (bv64); -function FPMul_32(bv32, bv32, bv32) returns (bv32); -function FPMul_64(bv64, bv64, bv32) returns (bv64); -function FPSub_32(bv32, bv32, bv32) returns (bv32); -function FPSub_64(bv64, bv64, bv32) returns (bv64); -function FPToFixed_32_64(bv64, int, bool, bv32, int) returns (bv32); -function {:extern} L(mem$in: [bv64]bv8, index: bv64) returns (bool) { - false -} - +axiom ($_IO_stdin_used_addr == 2220bv64); function {:extern} {:bvbuiltin "bvadd"} bvadd64(bv64, bv64) returns (bv64); -function {:extern} gamma_load32(gammaMap: [bv64]bool, index: bv64) returns (bool) { - (gammaMap[bvadd64(index, 3bv64)] && (gammaMap[bvadd64(index, 2bv64)] && (gammaMap[bvadd64(index, 1bv64)] && gammaMap[index]))) -} - -function {:extern} gamma_load64(gammaMap: [bv64]bool, index: bv64) returns (bool) { - (gammaMap[bvadd64(index, 7bv64)] && (gammaMap[bvadd64(index, 6bv64)] && (gammaMap[bvadd64(index, 5bv64)] && (gammaMap[bvadd64(index, 4bv64)] && (gammaMap[bvadd64(index, 3bv64)] && (gammaMap[bvadd64(index, 2bv64)] && (gammaMap[bvadd64(index, 1bv64)] && gammaMap[index]))))))) -} - -function {:extern} gamma_store32(gammaMap: [bv64]bool, index: bv64, value: bool) returns ([bv64]bool) { - gammaMap[index := value][bvadd64(index, 1bv64) := value][bvadd64(index, 2bv64) := value][bvadd64(index, 3bv64) := value] -} - -function {:extern} gamma_store64(gammaMap: [bv64]bool, index: bv64, value: bool) returns ([bv64]bool) { - gammaMap[index := value][bvadd64(index, 1bv64) := value][bvadd64(index, 2bv64) := value][bvadd64(index, 3bv64) := value][bvadd64(index, 4bv64) := value][bvadd64(index, 5bv64) := value][bvadd64(index, 6bv64) := value][bvadd64(index, 7bv64) := value] -} - function {:extern} memory_load32_le(memory: [bv64]bv8, index: bv64) returns (bv32) { (memory[bvadd64(index, 3bv64)] ++ (memory[bvadd64(index, 2bv64)] ++ (memory[bvadd64(index, 1bv64)] ++ memory[index]))) } @@ -58,28 +11,15 @@ function {:extern} memory_load64_le(memory: [bv64]bv8, index: bv64) returns (bv6 (memory[bvadd64(index, 7bv64)] ++ (memory[bvadd64(index, 6bv64)] ++ (memory[bvadd64(index, 5bv64)] ++ (memory[bvadd64(index, 4bv64)] ++ (memory[bvadd64(index, 3bv64)] ++ (memory[bvadd64(index, 2bv64)] ++ (memory[bvadd64(index, 1bv64)] ++ memory[index]))))))) } -function {:extern} memory_store32_le(memory: [bv64]bv8, index: bv64, value: bv32) returns ([bv64]bv8) { - memory[index := value[8:0]][bvadd64(index, 1bv64) := value[16:8]][bvadd64(index, 2bv64) := value[24:16]][bvadd64(index, 3bv64) := value[32:24]] -} - -function {:extern} memory_store64_le(memory: [bv64]bv8, index: bv64, value: bv64) returns ([bv64]bv8) { - memory[index := value[8:0]][bvadd64(index, 1bv64) := value[16:8]][bvadd64(index, 2bv64) := value[24:16]][bvadd64(index, 3bv64) := value[32:24]][bvadd64(index, 4bv64) := value[40:32]][bvadd64(index, 5bv64) := value[48:40]][bvadd64(index, 6bv64) := value[56:48]][bvadd64(index, 7bv64) := value[64:56]] -} - -function {:extern} {:bvbuiltin "zero_extend 1"} zero_extend1_2(bv2) returns (bv3); -function {:extern} {:bvbuiltin "zero_extend 32"} zero_extend32_32(bv32) returns (bv64); -function {:extern} {:bvbuiltin "zero_extend 64"} zero_extend64_64(bv64) returns (bv128); -function {:extern} {:bvbuiltin "zero_extend 96"} zero_extend96_32(bv32) returns (bv128); procedure {:extern} rely(); modifies Gamma_mem, mem; ensures (Gamma_mem == old(Gamma_mem)); ensures (mem == old(mem)); - free ensures (memory_load64_le(mem, 2088bv64) == 131073bv64); - free ensures (memory_load64_le(mem, 2096bv64) == 4767034467667331754bv64); - free ensures (memory_load64_le(mem, 69064bv64) == 1808bv64); - free ensures (memory_load64_le(mem, 69072bv64) == 1728bv64); - free ensures (memory_load64_le(mem, 69592bv64) == 1812bv64); - free ensures (memory_load64_le(mem, 69672bv64) == 69672bv64); + free ensures (memory_load32_le(mem, 2220bv64) == 131073bv32); + free ensures (memory_load64_le(mem, 130440bv64) == 2192bv64); + free ensures (memory_load64_le(mem, 130448bv64) == 2112bv64); + free ensures (memory_load64_le(mem, 131056bv64) == 2196bv64); + free ensures (memory_load64_le(mem, 131080bv64) == 131080bv64); procedure {:extern} rely_transitive(); modifies Gamma_mem, mem; @@ -97,228 +37,27 @@ procedure {:extern} rely_reflexive(); procedure {:extern} guarantee_reflexive(); modifies Gamma_mem, mem; -procedure main_1812(); - modifies Gamma_R0, Gamma_R31, Gamma_R8, Gamma_V0, Gamma_V1, Gamma_mem, Gamma_stack, R0, R31, R8, V0, V1, mem, stack; - free requires (memory_load64_le(mem, 69664bv64) == 0bv64); - free requires (memory_load64_le(mem, 69672bv64) == 69672bv64); - free requires (memory_load64_le(mem, 2088bv64) == 131073bv64); - free requires (memory_load64_le(mem, 2096bv64) == 4767034467667331754bv64); - free requires (memory_load64_le(mem, 69064bv64) == 1808bv64); - free requires (memory_load64_le(mem, 69072bv64) == 1728bv64); - free requires (memory_load64_le(mem, 69592bv64) == 1812bv64); - free requires (memory_load64_le(mem, 69672bv64) == 69672bv64); - free ensures (Gamma_R31 == old(Gamma_R31)); - free ensures (R31 == old(R31)); - free ensures (memory_load64_le(mem, 2088bv64) == 131073bv64); - free ensures (memory_load64_le(mem, 2096bv64) == 4767034467667331754bv64); - free ensures (memory_load64_le(mem, 69064bv64) == 1808bv64); - free ensures (memory_load64_le(mem, 69072bv64) == 1728bv64); - free ensures (memory_load64_le(mem, 69592bv64) == 1812bv64); - free ensures (memory_load64_le(mem, 69672bv64) == 69672bv64); - -implementation main_1812() +procedure main(); + free requires (memory_load64_le(mem, 131072bv64) == 0bv64); + free requires (memory_load64_le(mem, 131080bv64) == 131080bv64); + free requires (memory_load32_le(mem, 2220bv64) == 131073bv32); + free requires (memory_load64_le(mem, 130440bv64) == 2192bv64); + free requires (memory_load64_le(mem, 130448bv64) == 2112bv64); + free requires (memory_load64_le(mem, 131056bv64) == 2196bv64); + free requires (memory_load64_le(mem, 131080bv64) == 131080bv64); + free ensures (memory_load32_le(mem, 2220bv64) == 131073bv32); + free ensures (memory_load64_le(mem, 130440bv64) == 2192bv64); + free ensures (memory_load64_le(mem, 130448bv64) == 2112bv64); + free ensures (memory_load64_le(mem, 131056bv64) == 2196bv64); + free ensures (memory_load64_le(mem, 131080bv64) == 131080bv64); + +implementation main() { - var Exp10__6_0_33: bv64; - var Exp10__6_0_38: bv64; - var Exp10__6_0_43: bv64; - var Exp10__6_0_48: bv64; - var Exp10__6_0_52: bv32; - var Exp10__6_0_55: bv64; - var Exp7__5_0_58: bv32; - var Exp9__5_0_14: bv32; - var Exp9__5_0_18: bv32; - var Exp9__5_0_22: bv32; - var Exp9__5_0_26: bv32; - var Exp9__5_0_34: bv64; - var Exp9__5_0_39: bv64; - var Exp9__5_0_44: bv64; - var Exp9__5_0_49: bv64; - var FPDecodeRounding8__7: bv3; - var Gamma_Exp10__6_0_33: bool; - var Gamma_Exp10__6_0_38: bool; - var Gamma_Exp10__6_0_43: bool; - var Gamma_Exp10__6_0_48: bool; - var Gamma_Exp10__6_0_52: bool; - var Gamma_Exp10__6_0_55: bool; - var Gamma_Exp7__5_0_58: bool; - var Gamma_Exp9__5_0_14: bool; - var Gamma_Exp9__5_0_18: bool; - var Gamma_Exp9__5_0_22: bool; - var Gamma_Exp9__5_0_26: bool; - var Gamma_Exp9__5_0_34: bool; - var Gamma_Exp9__5_0_39: bool; - var Gamma_Exp9__5_0_44: bool; - var Gamma_Exp9__5_0_49: bool; - var Gamma_FPDecodeRounding8__7: bool; - var Gamma_load10: bool; - var Gamma_load11: bool; - var Gamma_load12: bool; - var Gamma_load13: bool; - var Gamma_load14: bool; - var Gamma_load15: bool; - var Gamma_load16: bool; - var Gamma_load17: bool; - var Gamma_load18: bool; - var Gamma_load19: bool; - var Gamma_load20: bool; - var Gamma_load21: bool; - var Gamma_load22: bool; - var Gamma_load23: bool; - var Gamma_load24: bool; - var Gamma_load25: bool; - var Gamma_load26: bool; - var Gamma_load27: bool; - var Gamma_load7: bool; - var Gamma_load8: bool; - var Gamma_load9: bool; - var load10: bv32; - var load11: bv32; - var load12: bv32; - var load13: bv32; - var load14: bv32; - var load15: bv64; - var load16: bv64; - var load17: bv32; - var load18: bv64; - var load19: bv32; - var load20: bv64; - var load21: bv32; - var load22: bv64; - var load23: bv32; - var load24: bv64; - var load25: bv32; - var load26: bv64; - var load27: bv32; - var load7: bv32; - var load8: bv32; - var load9: bv32; - main_1812__0__b3UZxKKWTIWwuKGd8CuBtA: - assume {:captureState "main_1812__0__b3UZxKKWTIWwuKGd8CuBtA"} true; - R31, Gamma_R31 := bvadd64(R31, 18446744073709551552bv64), Gamma_R31; - stack, Gamma_stack := memory_store32_le(stack, bvadd64(R31, 60bv64), 0bv32), gamma_store32(Gamma_stack, bvadd64(R31, 60bv64), true); - assume {:captureState "1816_0"} true; - stack, Gamma_stack := memory_store32_le(stack, bvadd64(R31, 56bv64), R0[32:0]), gamma_store32(Gamma_stack, bvadd64(R31, 56bv64), Gamma_R0); - assume {:captureState "1820_0"} true; - stack, Gamma_stack := memory_store64_le(stack, bvadd64(R31, 48bv64), R1), gamma_store64(Gamma_stack, bvadd64(R31, 48bv64), Gamma_R1); - assume {:captureState "1824_0"} true; - R8, Gamma_R8 := 45941bv64, true; - R8, Gamma_R8 := zero_extend32_32((16680bv16 ++ R8[16:0])), Gamma_R8; - V0, Gamma_V0 := zero_extend96_32(R8[32:0]), Gamma_R8; - stack, Gamma_stack := memory_store32_le(stack, bvadd64(R31, 44bv64), V0[32:0]), gamma_store32(Gamma_stack, bvadd64(R31, 44bv64), Gamma_V0); - assume {:captureState "1840_0"} true; - R8, Gamma_R8 := 23254bv64, true; - R8, Gamma_R8 := zero_extend32_32((16470bv16 ++ R8[16:0])), Gamma_R8; - V0, Gamma_V0 := zero_extend96_32(R8[32:0]), Gamma_R8; - stack, Gamma_stack := memory_store32_le(stack, bvadd64(R31, 40bv64), V0[32:0]), gamma_store32(Gamma_stack, bvadd64(R31, 40bv64), Gamma_V0); - assume {:captureState "1856_0"} true; - load7, Gamma_load7 := memory_load32_le(stack, bvadd64(R31, 44bv64)), gamma_load32(Gamma_stack, bvadd64(R31, 44bv64)); - V0, Gamma_V0 := zero_extend96_32(load7), Gamma_load7; - load8, Gamma_load8 := memory_load32_le(stack, bvadd64(R31, 40bv64)), gamma_load32(Gamma_stack, bvadd64(R31, 40bv64)); - V1, Gamma_V1 := zero_extend96_32(load8), Gamma_load8; - Exp9__5_0_14, Gamma_Exp9__5_0_14 := FPMul_32(V0[32:0], V1[32:0], FPCR), true; - V0, Gamma_V0 := zero_extend96_32(Exp9__5_0_14), Gamma_Exp9__5_0_14; - stack, Gamma_stack := memory_store32_le(stack, bvadd64(R31, 36bv64), V0[32:0]), gamma_store32(Gamma_stack, bvadd64(R31, 36bv64), Gamma_V0); - assume {:captureState "1872_0"} true; - load9, Gamma_load9 := memory_load32_le(stack, bvadd64(R31, 44bv64)), gamma_load32(Gamma_stack, bvadd64(R31, 44bv64)); - V0, Gamma_V0 := zero_extend96_32(load9), Gamma_load9; - load10, Gamma_load10 := memory_load32_le(stack, bvadd64(R31, 40bv64)), gamma_load32(Gamma_stack, bvadd64(R31, 40bv64)); - V1, Gamma_V1 := zero_extend96_32(load10), Gamma_load10; - Exp9__5_0_18, Gamma_Exp9__5_0_18 := FPDiv_32(V0[32:0], V1[32:0], FPCR), true; - V0, Gamma_V0 := zero_extend96_32(Exp9__5_0_18), Gamma_Exp9__5_0_18; - stack, Gamma_stack := memory_store32_le(stack, bvadd64(R31, 36bv64), V0[32:0]), gamma_store32(Gamma_stack, bvadd64(R31, 36bv64), Gamma_V0); - assume {:captureState "1888_0"} true; - load11, Gamma_load11 := memory_load32_le(stack, bvadd64(R31, 44bv64)), gamma_load32(Gamma_stack, bvadd64(R31, 44bv64)); - V0, Gamma_V0 := zero_extend96_32(load11), Gamma_load11; - load12, Gamma_load12 := memory_load32_le(stack, bvadd64(R31, 40bv64)), gamma_load32(Gamma_stack, bvadd64(R31, 40bv64)); - V1, Gamma_V1 := zero_extend96_32(load12), Gamma_load12; - Exp9__5_0_22, Gamma_Exp9__5_0_22 := FPSub_32(V0[32:0], V1[32:0], FPCR), true; - V0, Gamma_V0 := zero_extend96_32(Exp9__5_0_22), Gamma_Exp9__5_0_22; - stack, Gamma_stack := memory_store32_le(stack, bvadd64(R31, 36bv64), V0[32:0]), gamma_store32(Gamma_stack, bvadd64(R31, 36bv64), Gamma_V0); - assume {:captureState "1904_0"} true; - load13, Gamma_load13 := memory_load32_le(stack, bvadd64(R31, 44bv64)), gamma_load32(Gamma_stack, bvadd64(R31, 44bv64)); - V0, Gamma_V0 := zero_extend96_32(load13), Gamma_load13; - load14, Gamma_load14 := memory_load32_le(stack, bvadd64(R31, 40bv64)), gamma_load32(Gamma_stack, bvadd64(R31, 40bv64)); - V1, Gamma_V1 := zero_extend96_32(load14), Gamma_load14; - Exp9__5_0_26, Gamma_Exp9__5_0_26 := FPAdd_32(V0[32:0], V1[32:0], FPCR), true; - V0, Gamma_V0 := zero_extend96_32(Exp9__5_0_26), Gamma_Exp9__5_0_26; - stack, Gamma_stack := memory_store32_le(stack, bvadd64(R31, 36bv64), V0[32:0]), gamma_store32(Gamma_stack, bvadd64(R31, 36bv64), Gamma_V0); - assume {:captureState "1920_0"} true; - R8, Gamma_R8 := 0bv64, true; - call rely(); - load15, Gamma_load15 := memory_load64_le(mem, bvadd64(R8, 2096bv64)), (gamma_load64(Gamma_mem, bvadd64(R8, 2096bv64)) || L(mem, bvadd64(R8, 2096bv64))); - V0, Gamma_V0 := zero_extend64_64(load15), Gamma_load15; - stack, Gamma_stack := memory_store64_le(stack, bvadd64(R31, 24bv64), V0[64:0]), gamma_store64(Gamma_stack, bvadd64(R31, 24bv64), Gamma_V0); - assume {:captureState "1932_0"} true; - load16, Gamma_load16 := memory_load64_le(stack, bvadd64(R31, 24bv64)), gamma_load64(Gamma_stack, bvadd64(R31, 24bv64)); - V0, Gamma_V0 := zero_extend64_64(load16), Gamma_load16; - load17, Gamma_load17 := memory_load32_le(stack, bvadd64(R31, 40bv64)), gamma_load32(Gamma_stack, bvadd64(R31, 40bv64)); - V1, Gamma_V1 := zero_extend96_32(load17), Gamma_load17; - FPDecodeRounding8__7, Gamma_FPDecodeRounding8__7 := zero_extend1_2(FPCR[24:22]), Gamma_FPCR; - Exp10__6_0_33, Gamma_Exp10__6_0_33 := FPConvert_64_32(V1[32:0], FPCR, FPDecodeRounding8__7), true; - V1, Gamma_V1 := zero_extend64_64(Exp10__6_0_33), Gamma_Exp10__6_0_33; - Exp9__5_0_34, Gamma_Exp9__5_0_34 := FPMul_64(V0[64:0], V1[64:0], FPCR), true; - V0, Gamma_V0 := zero_extend64_64(Exp9__5_0_34), Gamma_Exp9__5_0_34; - stack, Gamma_stack := memory_store64_le(stack, bvadd64(R31, 16bv64), V0[64:0]), gamma_store64(Gamma_stack, bvadd64(R31, 16bv64), Gamma_V0); - assume {:captureState "1952_0"} true; - load18, Gamma_load18 := memory_load64_le(stack, bvadd64(R31, 24bv64)), gamma_load64(Gamma_stack, bvadd64(R31, 24bv64)); - V0, Gamma_V0 := zero_extend64_64(load18), Gamma_load18; - load19, Gamma_load19 := memory_load32_le(stack, bvadd64(R31, 40bv64)), gamma_load32(Gamma_stack, bvadd64(R31, 40bv64)); - V1, Gamma_V1 := zero_extend96_32(load19), Gamma_load19; - FPDecodeRounding8__7, Gamma_FPDecodeRounding8__7 := zero_extend1_2(FPCR[24:22]), Gamma_FPCR; - Exp10__6_0_38, Gamma_Exp10__6_0_38 := FPConvert_64_32(V1[32:0], FPCR, FPDecodeRounding8__7), true; - V1, Gamma_V1 := zero_extend64_64(Exp10__6_0_38), Gamma_Exp10__6_0_38; - Exp9__5_0_39, Gamma_Exp9__5_0_39 := FPSub_64(V0[64:0], V1[64:0], FPCR), true; - V0, Gamma_V0 := zero_extend64_64(Exp9__5_0_39), Gamma_Exp9__5_0_39; - stack, Gamma_stack := memory_store64_le(stack, bvadd64(R31, 16bv64), V0[64:0]), gamma_store64(Gamma_stack, bvadd64(R31, 16bv64), Gamma_V0); - assume {:captureState "1972_0"} true; - load20, Gamma_load20 := memory_load64_le(stack, bvadd64(R31, 24bv64)), gamma_load64(Gamma_stack, bvadd64(R31, 24bv64)); - V0, Gamma_V0 := zero_extend64_64(load20), Gamma_load20; - load21, Gamma_load21 := memory_load32_le(stack, bvadd64(R31, 40bv64)), gamma_load32(Gamma_stack, bvadd64(R31, 40bv64)); - V1, Gamma_V1 := zero_extend96_32(load21), Gamma_load21; - FPDecodeRounding8__7, Gamma_FPDecodeRounding8__7 := zero_extend1_2(FPCR[24:22]), Gamma_FPCR; - Exp10__6_0_43, Gamma_Exp10__6_0_43 := FPConvert_64_32(V1[32:0], FPCR, FPDecodeRounding8__7), true; - V1, Gamma_V1 := zero_extend64_64(Exp10__6_0_43), Gamma_Exp10__6_0_43; - Exp9__5_0_44, Gamma_Exp9__5_0_44 := FPAdd_64(V0[64:0], V1[64:0], FPCR), true; - V0, Gamma_V0 := zero_extend64_64(Exp9__5_0_44), Gamma_Exp9__5_0_44; - stack, Gamma_stack := memory_store64_le(stack, bvadd64(R31, 16bv64), V0[64:0]), gamma_store64(Gamma_stack, bvadd64(R31, 16bv64), Gamma_V0); - assume {:captureState "1992_0"} true; - load22, Gamma_load22 := memory_load64_le(stack, bvadd64(R31, 24bv64)), gamma_load64(Gamma_stack, bvadd64(R31, 24bv64)); - V0, Gamma_V0 := zero_extend64_64(load22), Gamma_load22; - load23, Gamma_load23 := memory_load32_le(stack, bvadd64(R31, 40bv64)), gamma_load32(Gamma_stack, bvadd64(R31, 40bv64)); - V1, Gamma_V1 := zero_extend96_32(load23), Gamma_load23; - FPDecodeRounding8__7, Gamma_FPDecodeRounding8__7 := zero_extend1_2(FPCR[24:22]), Gamma_FPCR; - Exp10__6_0_48, Gamma_Exp10__6_0_48 := FPConvert_64_32(V1[32:0], FPCR, FPDecodeRounding8__7), true; - V1, Gamma_V1 := zero_extend64_64(Exp10__6_0_48), Gamma_Exp10__6_0_48; - Exp9__5_0_49, Gamma_Exp9__5_0_49 := FPDiv_64(V0[64:0], V1[64:0], FPCR), true; - V0, Gamma_V0 := zero_extend64_64(Exp9__5_0_49), Gamma_Exp9__5_0_49; - stack, Gamma_stack := memory_store64_le(stack, bvadd64(R31, 16bv64), V0[64:0]), gamma_store64(Gamma_stack, bvadd64(R31, 16bv64), Gamma_V0); - assume {:captureState "2012_0"} true; - load24, Gamma_load24 := memory_load64_le(stack, bvadd64(R31, 16bv64)), gamma_load64(Gamma_stack, bvadd64(R31, 16bv64)); - V0, Gamma_V0 := zero_extend64_64(load24), Gamma_load24; - FPDecodeRounding8__7, Gamma_FPDecodeRounding8__7 := zero_extend1_2(FPCR[24:22]), Gamma_FPCR; - Exp10__6_0_52, Gamma_Exp10__6_0_52 := FPConvert_32_64(V0[64:0], FPCR, FPDecodeRounding8__7), true; - V0, Gamma_V0 := zero_extend96_32(Exp10__6_0_52), Gamma_Exp10__6_0_52; - stack, Gamma_stack := memory_store32_le(stack, bvadd64(R31, 44bv64), V0[32:0]), gamma_store32(Gamma_stack, bvadd64(R31, 44bv64), Gamma_V0); - assume {:captureState "2024_0"} true; - load25, Gamma_load25 := memory_load32_le(stack, bvadd64(R31, 40bv64)), gamma_load32(Gamma_stack, bvadd64(R31, 40bv64)); - V0, Gamma_V0 := zero_extend96_32(load25), Gamma_load25; - FPDecodeRounding8__7, Gamma_FPDecodeRounding8__7 := zero_extend1_2(FPCR[24:22]), Gamma_FPCR; - Exp10__6_0_55, Gamma_Exp10__6_0_55 := FPConvert_64_32(V0[32:0], FPCR, FPDecodeRounding8__7), true; - V0, Gamma_V0 := zero_extend64_64(Exp10__6_0_55), Gamma_Exp10__6_0_55; - stack, Gamma_stack := memory_store64_le(stack, bvadd64(R31, 24bv64), V0[64:0]), gamma_store64(Gamma_stack, bvadd64(R31, 24bv64), Gamma_V0); - assume {:captureState "2036_0"} true; - load26, Gamma_load26 := memory_load64_le(stack, bvadd64(R31, 16bv64)), gamma_load64(Gamma_stack, bvadd64(R31, 16bv64)); - V0, Gamma_V0 := zero_extend64_64(load26), Gamma_load26; - Exp7__5_0_58, Gamma_Exp7__5_0_58 := FPToFixed_32_64(V0[64:0], 0, false, FPCR, 3), true; - R8, Gamma_R8 := zero_extend32_32(Exp7__5_0_58), Gamma_Exp7__5_0_58; - stack, Gamma_stack := memory_store32_le(stack, bvadd64(R31, 12bv64), R8[32:0]), gamma_store32(Gamma_stack, bvadd64(R31, 12bv64), Gamma_R8); - assume {:captureState "2048_0"} true; - load27, Gamma_load27 := memory_load32_le(stack, bvadd64(R31, 12bv64)), gamma_load32(Gamma_stack, bvadd64(R31, 12bv64)); - R0, Gamma_R0 := zero_extend32_32(load27), Gamma_load27; - R31, Gamma_R31 := bvadd64(R31, 64bv64), Gamma_R31; - goto main_1812_basil_return; - main_1812_basil_return: - assume {:captureState "main_1812_basil_return"} true; + $main$__0__$cdQ2GS2~QhaOa7OUvPWMRQ: + assume {:captureState "$main$__0__$cdQ2GS2~QhaOa7OUvPWMRQ"} true; + goto main_basil_return; + main_basil_return: + assume {:captureState "main_basil_return"} true; return; } diff --git a/src/test/correct/floatingpoint/config.mk b/src/test/correct/floatingpoint/config.mk index be34bd511..d93e26732 100644 --- a/src/test/correct/floatingpoint/config.mk +++ b/src/test/correct/floatingpoint/config.mk @@ -1 +1,2 @@ -ENABLED_COMPILERS = clang gcc \ No newline at end of file +ENABLED_COMPILERS = clang gcc +LIFT_ARTEFACTS := $(COMMON_ARTEFACTS) $(GTIRB_ARTEFACTS) diff --git a/src/test/correct/floatingpoint/gcc/floatingpoint.expected b/src/test/correct/floatingpoint/gcc/floatingpoint.expected new file mode 100644 index 000000000..6c9ccabea --- /dev/null +++ b/src/test/correct/floatingpoint/gcc/floatingpoint.expected @@ -0,0 +1,55 @@ +var {:extern} Gamma_R0: bool; +var {:extern} Gamma_mem: [bv64]bool; +var {:extern} R0: bv64; +var {:extern} mem: [bv64]bv8; +const {:extern} $_IO_stdin_used_addr: bv64; +axiom ($_IO_stdin_used_addr == 4196312bv64); +function {:extern} {:bvbuiltin "bvadd"} bvadd64(bv64, bv64) returns (bv64); +function {:extern} memory_load32_le(memory: [bv64]bv8, index: bv64) returns (bv32) { + (memory[bvadd64(index, 3bv64)] ++ (memory[bvadd64(index, 2bv64)] ++ (memory[bvadd64(index, 1bv64)] ++ memory[index]))) +} + +function {:extern} memory_load64_le(memory: [bv64]bv8, index: bv64) returns (bv64) { + (memory[bvadd64(index, 7bv64)] ++ (memory[bvadd64(index, 6bv64)] ++ (memory[bvadd64(index, 5bv64)] ++ (memory[bvadd64(index, 4bv64)] ++ (memory[bvadd64(index, 3bv64)] ++ (memory[bvadd64(index, 2bv64)] ++ (memory[bvadd64(index, 1bv64)] ++ memory[index]))))))) +} + +procedure {:extern} rely(); + modifies Gamma_mem, mem; + ensures (Gamma_mem == old(Gamma_mem)); + ensures (mem == old(mem)); + free ensures (memory_load32_le(mem, 4196312bv64) == 131073bv32); + +procedure {:extern} rely_transitive(); + modifies Gamma_mem, mem; + ensures (Gamma_mem == old(Gamma_mem)); + ensures (mem == old(mem)); + +implementation {:extern} rely_transitive() +{ + call rely(); + call rely(); +} + +procedure {:extern} rely_reflexive(); + +procedure {:extern} guarantee_reflexive(); + modifies Gamma_mem, mem; + +procedure main(); + modifies Gamma_R0, R0; + free requires (memory_load64_le(mem, 4325376bv64) == 0bv64); + free requires (memory_load64_le(mem, 4325384bv64) == 0bv64); + free requires (memory_load32_le(mem, 4196312bv64) == 131073bv32); + free ensures (memory_load32_le(mem, 4196312bv64) == 131073bv32); + +implementation main() +{ + lmain: + assume {:captureState "lmain"} true; + R0, Gamma_R0 := 2147483647bv64, true; + goto main_basil_return; + main_basil_return: + assume {:captureState "main_basil_return"} true; + return; +} + diff --git a/src/test/correct/floatingpoint/gcc/floatingpoint.gts b/src/test/correct/floatingpoint/gcc/floatingpoint.gts deleted file mode 100644 index 96fd28268..000000000 Binary files a/src/test/correct/floatingpoint/gcc/floatingpoint.gts and /dev/null differ diff --git a/src/test/correct/floatingpoint/gcc/floatingpoint.md5sum b/src/test/correct/floatingpoint/gcc/floatingpoint.md5sum new file mode 100644 index 000000000..71c6d6918 --- /dev/null +++ b/src/test/correct/floatingpoint/gcc/floatingpoint.md5sum @@ -0,0 +1,3 @@ +25235794da45014b05687cd945b2180a correct/floatingpoint/gcc/a.out +9483b45e7d351785a6538a2bc0124c9f correct/floatingpoint/gcc/floatingpoint.relf +5e828c5660083ea4103be5e51159c5f7 correct/floatingpoint/gcc/floatingpoint.gts diff --git a/src/test/correct/floatingpoint/gcc/floatingpoint.relf b/src/test/correct/floatingpoint/gcc/floatingpoint.relf deleted file mode 100644 index 655085f93..000000000 --- a/src/test/correct/floatingpoint/gcc/floatingpoint.relf +++ /dev/null @@ -1,120 +0,0 @@ - -Relocation section '.rela.dyn' at offset 0x460 contains 8 entries: - Offset Info Type Symbol's Value Symbol's Name + Addend -0000000000010d98 0000000000000403 R_AARCH64_RELATIVE 710 -0000000000010da0 0000000000000403 R_AARCH64_RELATIVE 6c0 -0000000000010ff0 0000000000000403 R_AARCH64_RELATIVE 714 -0000000000011008 0000000000000403 R_AARCH64_RELATIVE 11008 -0000000000010fd8 0000000400000401 R_AARCH64_GLOB_DAT 0000000000000000 _ITM_deregisterTMCloneTable + 0 -0000000000010fe0 0000000500000401 R_AARCH64_GLOB_DAT 0000000000000000 __cxa_finalize@GLIBC_2.17 + 0 -0000000000010fe8 0000000600000401 R_AARCH64_GLOB_DAT 0000000000000000 __gmon_start__ + 0 -0000000000010ff8 0000000800000401 R_AARCH64_GLOB_DAT 0000000000000000 _ITM_registerTMCloneTable + 0 - -Relocation section '.rela.plt' at offset 0x520 contains 4 entries: - Offset Info Type Symbol's Value Symbol's Name + Addend -0000000000010fb0 0000000300000402 R_AARCH64_JUMP_SLOT 0000000000000000 __libc_start_main@GLIBC_2.34 + 0 -0000000000010fb8 0000000500000402 R_AARCH64_JUMP_SLOT 0000000000000000 __cxa_finalize@GLIBC_2.17 + 0 -0000000000010fc0 0000000600000402 R_AARCH64_JUMP_SLOT 0000000000000000 __gmon_start__ + 0 -0000000000010fc8 0000000700000402 R_AARCH64_JUMP_SLOT 0000000000000000 abort@GLIBC_2.17 + 0 - -Symbol table '.dynsym' contains 9 entries: - Num: Value Size Type Bind Vis Ndx Name - 0: 0000000000000000 0 NOTYPE LOCAL DEFAULT UND - 1: 0000000000000580 0 SECTION LOCAL DEFAULT 11 .init - 2: 0000000000011000 0 SECTION LOCAL DEFAULT 22 .data - 3: 0000000000000000 0 FUNC GLOBAL DEFAULT UND __libc_start_main@GLIBC_2.34 (2) - 4: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_deregisterTMCloneTable - 5: 0000000000000000 0 FUNC WEAK DEFAULT UND __cxa_finalize@GLIBC_2.17 (3) - 6: 0000000000000000 0 NOTYPE WEAK DEFAULT UND __gmon_start__ - 7: 0000000000000000 0 FUNC GLOBAL DEFAULT UND abort@GLIBC_2.17 (3) - 8: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_registerTMCloneTable - -Symbol table '.symtab' contains 87 entries: - Num: Value Size Type Bind Vis Ndx Name - 0: 0000000000000000 0 NOTYPE LOCAL DEFAULT UND - 1: 0000000000000238 0 SECTION LOCAL DEFAULT 1 .interp - 2: 0000000000000254 0 SECTION LOCAL DEFAULT 2 .note.gnu.build-id - 3: 0000000000000278 0 SECTION LOCAL DEFAULT 3 .note.ABI-tag - 4: 0000000000000298 0 SECTION LOCAL DEFAULT 4 .gnu.hash - 5: 00000000000002b8 0 SECTION LOCAL DEFAULT 5 .dynsym - 6: 0000000000000390 0 SECTION LOCAL DEFAULT 6 .dynstr - 7: 000000000000041e 0 SECTION LOCAL DEFAULT 7 .gnu.version - 8: 0000000000000430 0 SECTION LOCAL DEFAULT 8 .gnu.version_r - 9: 0000000000000460 0 SECTION LOCAL DEFAULT 9 .rela.dyn - 10: 0000000000000520 0 SECTION LOCAL DEFAULT 10 .rela.plt - 11: 0000000000000580 0 SECTION LOCAL DEFAULT 11 .init - 12: 00000000000005a0 0 SECTION LOCAL DEFAULT 12 .plt - 13: 0000000000000600 0 SECTION LOCAL DEFAULT 13 .text - 14: 000000000000080c 0 SECTION LOCAL DEFAULT 14 .fini - 15: 0000000000000820 0 SECTION LOCAL DEFAULT 15 .rodata - 16: 0000000000000830 0 SECTION LOCAL DEFAULT 16 .eh_frame_hdr - 17: 0000000000000870 0 SECTION LOCAL DEFAULT 17 .eh_frame - 18: 0000000000010d98 0 SECTION LOCAL DEFAULT 18 .init_array - 19: 0000000000010da0 0 SECTION LOCAL DEFAULT 19 .fini_array - 20: 0000000000010da8 0 SECTION LOCAL DEFAULT 20 .dynamic - 21: 0000000000010f98 0 SECTION LOCAL DEFAULT 21 .got - 22: 0000000000011000 0 SECTION LOCAL DEFAULT 22 .data - 23: 0000000000011010 0 SECTION LOCAL DEFAULT 23 .bss - 24: 0000000000000000 0 SECTION LOCAL DEFAULT 24 .comment - 25: 0000000000000000 0 FILE LOCAL DEFAULT ABS Scrt1.o - 26: 0000000000000278 0 NOTYPE LOCAL DEFAULT 3 $d - 27: 0000000000000278 32 OBJECT LOCAL DEFAULT 3 __abi_tag - 28: 0000000000000600 0 NOTYPE LOCAL DEFAULT 13 $x - 29: 0000000000000884 0 NOTYPE LOCAL DEFAULT 17 $d - 30: 0000000000000820 0 NOTYPE LOCAL DEFAULT 15 $d - 31: 0000000000000000 0 FILE LOCAL DEFAULT ABS crti.o - 32: 0000000000000634 0 NOTYPE LOCAL DEFAULT 13 $x - 33: 0000000000000634 20 FUNC LOCAL DEFAULT 13 call_weak_fn - 34: 0000000000000580 0 NOTYPE LOCAL DEFAULT 11 $x - 35: 000000000000080c 0 NOTYPE LOCAL DEFAULT 14 $x - 36: 0000000000000000 0 FILE LOCAL DEFAULT ABS crtn.o - 37: 0000000000000590 0 NOTYPE LOCAL DEFAULT 11 $x - 38: 0000000000000818 0 NOTYPE LOCAL DEFAULT 14 $x - 39: 0000000000000000 0 FILE LOCAL DEFAULT ABS crtstuff.c - 40: 0000000000000650 0 NOTYPE LOCAL DEFAULT 13 $x - 41: 0000000000000650 0 FUNC LOCAL DEFAULT 13 deregister_tm_clones - 42: 0000000000000680 0 FUNC LOCAL DEFAULT 13 register_tm_clones - 43: 0000000000011008 0 NOTYPE LOCAL DEFAULT 22 $d - 44: 00000000000006c0 0 FUNC LOCAL DEFAULT 13 __do_global_dtors_aux - 45: 0000000000011010 1 OBJECT LOCAL DEFAULT 23 completed.0 - 46: 0000000000010da0 0 NOTYPE LOCAL DEFAULT 19 $d - 47: 0000000000010da0 0 OBJECT LOCAL DEFAULT 19 __do_global_dtors_aux_fini_array_entry - 48: 0000000000000710 0 FUNC LOCAL DEFAULT 13 frame_dummy - 49: 0000000000010d98 0 NOTYPE LOCAL DEFAULT 18 $d - 50: 0000000000010d98 0 OBJECT LOCAL DEFAULT 18 __frame_dummy_init_array_entry - 51: 0000000000000898 0 NOTYPE LOCAL DEFAULT 17 $d - 52: 0000000000011010 0 NOTYPE LOCAL DEFAULT 23 $d - 53: 0000000000000000 0 FILE LOCAL DEFAULT ABS floatingpoint.c - 54: 0000000000000714 0 NOTYPE LOCAL DEFAULT 13 $x - 55: 0000000000000828 0 NOTYPE LOCAL DEFAULT 15 $d - 56: 00000000000008f8 0 NOTYPE LOCAL DEFAULT 17 $d - 57: 0000000000000000 0 FILE LOCAL DEFAULT ABS crtstuff.c - 58: 0000000000000910 0 NOTYPE LOCAL DEFAULT 17 $d - 59: 0000000000000910 0 OBJECT LOCAL DEFAULT 17 __FRAME_END__ - 60: 0000000000000000 0 FILE LOCAL DEFAULT ABS - 61: 0000000000010da8 0 OBJECT LOCAL DEFAULT ABS _DYNAMIC - 62: 0000000000000830 0 NOTYPE LOCAL DEFAULT 16 __GNU_EH_FRAME_HDR - 63: 0000000000010fd0 0 OBJECT LOCAL DEFAULT ABS _GLOBAL_OFFSET_TABLE_ - 64: 00000000000005a0 0 NOTYPE LOCAL DEFAULT 12 $x - 65: 0000000000000000 0 FUNC GLOBAL DEFAULT UND __libc_start_main@GLIBC_2.34 - 66: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_deregisterTMCloneTable - 67: 0000000000011000 0 NOTYPE WEAK DEFAULT 22 data_start - 68: 0000000000011010 0 NOTYPE GLOBAL DEFAULT 23 __bss_start__ - 69: 0000000000000000 0 FUNC WEAK DEFAULT UND __cxa_finalize@GLIBC_2.17 - 70: 0000000000011018 0 NOTYPE GLOBAL DEFAULT 23 _bss_end__ - 71: 0000000000011010 0 NOTYPE GLOBAL DEFAULT 22 _edata - 72: 000000000000080c 0 FUNC GLOBAL HIDDEN 14 _fini - 73: 0000000000011018 0 NOTYPE GLOBAL DEFAULT 23 __bss_end__ - 74: 0000000000011000 0 NOTYPE GLOBAL DEFAULT 22 __data_start - 75: 0000000000000000 0 NOTYPE WEAK DEFAULT UND __gmon_start__ - 76: 0000000000011008 0 OBJECT GLOBAL HIDDEN 22 __dso_handle - 77: 0000000000000000 0 FUNC GLOBAL DEFAULT UND abort@GLIBC_2.17 - 78: 0000000000000820 4 OBJECT GLOBAL DEFAULT 15 _IO_stdin_used - 79: 0000000000011018 0 NOTYPE GLOBAL DEFAULT 23 _end - 80: 0000000000000600 52 FUNC GLOBAL DEFAULT 13 _start - 81: 0000000000011018 0 NOTYPE GLOBAL DEFAULT 23 __end__ - 82: 0000000000011010 0 NOTYPE GLOBAL DEFAULT 23 __bss_start - 83: 0000000000000714 248 FUNC GLOBAL DEFAULT 13 main - 84: 0000000000011010 0 OBJECT GLOBAL HIDDEN 22 __TMC_END__ - 85: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_registerTMCloneTable - 86: 0000000000000580 0 FUNC GLOBAL HIDDEN 11 _init diff --git a/src/test/correct/floatingpoint/gcc/floatingpoint_gtirb.expected b/src/test/correct/floatingpoint/gcc/floatingpoint_gtirb.expected index d3c5f57e7..956172a76 100644 --- a/src/test/correct/floatingpoint/gcc/floatingpoint_gtirb.expected +++ b/src/test/correct/floatingpoint/gcc/floatingpoint_gtirb.expected @@ -1,53 +1,10 @@ -var {:extern} FPCR: bv32; -var {:extern} Gamma_FPCR: bool; var {:extern} Gamma_R0: bool; -var {:extern} Gamma_R1: bool; -var {:extern} Gamma_R31: bool; -var {:extern} Gamma_V0: bool; -var {:extern} Gamma_V1: bool; var {:extern} Gamma_mem: [bv64]bool; -var {:extern} Gamma_stack: [bv64]bool; var {:extern} R0: bv64; -var {:extern} R1: bv64; -var {:extern} R31: bv64; -var {:extern} V0: bv128; -var {:extern} V1: bv128; var {:extern} mem: [bv64]bv8; -var {:extern} stack: [bv64]bv8; const {:extern} $_IO_stdin_used_addr: bv64; -axiom ($_IO_stdin_used_addr == 2080bv64); -function FPAdd_32(bv32, bv32, bv32) returns (bv32); -function FPAdd_64(bv64, bv64, bv32) returns (bv64); -function FPConvert_32_64(bv64, bv32, bv3) returns (bv32); -function FPConvert_64_32(bv32, bv32, bv3) returns (bv64); -function FPDiv_32(bv32, bv32, bv32) returns (bv32); -function FPDiv_64(bv64, bv64, bv32) returns (bv64); -function FPMul_32(bv32, bv32, bv32) returns (bv32); -function FPMul_64(bv64, bv64, bv32) returns (bv64); -function FPSub_32(bv32, bv32, bv32) returns (bv32); -function FPSub_64(bv64, bv64, bv32) returns (bv64); -function FPToFixed_32_64(bv64, int, bool, bv32, int) returns (bv32); -function {:extern} L(mem$in: [bv64]bv8, index: bv64) returns (bool) { - false -} - +axiom ($_IO_stdin_used_addr == 4196312bv64); function {:extern} {:bvbuiltin "bvadd"} bvadd64(bv64, bv64) returns (bv64); -function {:extern} gamma_load32(gammaMap: [bv64]bool, index: bv64) returns (bool) { - (gammaMap[bvadd64(index, 3bv64)] && (gammaMap[bvadd64(index, 2bv64)] && (gammaMap[bvadd64(index, 1bv64)] && gammaMap[index]))) -} - -function {:extern} gamma_load64(gammaMap: [bv64]bool, index: bv64) returns (bool) { - (gammaMap[bvadd64(index, 7bv64)] && (gammaMap[bvadd64(index, 6bv64)] && (gammaMap[bvadd64(index, 5bv64)] && (gammaMap[bvadd64(index, 4bv64)] && (gammaMap[bvadd64(index, 3bv64)] && (gammaMap[bvadd64(index, 2bv64)] && (gammaMap[bvadd64(index, 1bv64)] && gammaMap[index]))))))) -} - -function {:extern} gamma_store32(gammaMap: [bv64]bool, index: bv64, value: bool) returns ([bv64]bool) { - gammaMap[index := value][bvadd64(index, 1bv64) := value][bvadd64(index, 2bv64) := value][bvadd64(index, 3bv64) := value] -} - -function {:extern} gamma_store64(gammaMap: [bv64]bool, index: bv64, value: bool) returns ([bv64]bool) { - gammaMap[index := value][bvadd64(index, 1bv64) := value][bvadd64(index, 2bv64) := value][bvadd64(index, 3bv64) := value][bvadd64(index, 4bv64) := value][bvadd64(index, 5bv64) := value][bvadd64(index, 6bv64) := value][bvadd64(index, 7bv64) := value] -} - function {:extern} memory_load32_le(memory: [bv64]bv8, index: bv64) returns (bv32) { (memory[bvadd64(index, 3bv64)] ++ (memory[bvadd64(index, 2bv64)] ++ (memory[bvadd64(index, 1bv64)] ++ memory[index]))) } @@ -56,28 +13,11 @@ function {:extern} memory_load64_le(memory: [bv64]bv8, index: bv64) returns (bv6 (memory[bvadd64(index, 7bv64)] ++ (memory[bvadd64(index, 6bv64)] ++ (memory[bvadd64(index, 5bv64)] ++ (memory[bvadd64(index, 4bv64)] ++ (memory[bvadd64(index, 3bv64)] ++ (memory[bvadd64(index, 2bv64)] ++ (memory[bvadd64(index, 1bv64)] ++ memory[index]))))))) } -function {:extern} memory_store32_le(memory: [bv64]bv8, index: bv64, value: bv32) returns ([bv64]bv8) { - memory[index := value[8:0]][bvadd64(index, 1bv64) := value[16:8]][bvadd64(index, 2bv64) := value[24:16]][bvadd64(index, 3bv64) := value[32:24]] -} - -function {:extern} memory_store64_le(memory: [bv64]bv8, index: bv64, value: bv64) returns ([bv64]bv8) { - memory[index := value[8:0]][bvadd64(index, 1bv64) := value[16:8]][bvadd64(index, 2bv64) := value[24:16]][bvadd64(index, 3bv64) := value[32:24]][bvadd64(index, 4bv64) := value[40:32]][bvadd64(index, 5bv64) := value[48:40]][bvadd64(index, 6bv64) := value[56:48]][bvadd64(index, 7bv64) := value[64:56]] -} - -function {:extern} {:bvbuiltin "zero_extend 1"} zero_extend1_2(bv2) returns (bv3); -function {:extern} {:bvbuiltin "zero_extend 32"} zero_extend32_32(bv32) returns (bv64); -function {:extern} {:bvbuiltin "zero_extend 64"} zero_extend64_64(bv64) returns (bv128); -function {:extern} {:bvbuiltin "zero_extend 96"} zero_extend96_32(bv32) returns (bv128); procedure {:extern} rely(); modifies Gamma_mem, mem; ensures (Gamma_mem == old(Gamma_mem)); ensures (mem == old(mem)); - free ensures (memory_load64_le(mem, 2080bv64) == 131073bv64); - free ensures (memory_load64_le(mem, 2088bv64) == 4767034467667331754bv64); - free ensures (memory_load64_le(mem, 69016bv64) == 1808bv64); - free ensures (memory_load64_le(mem, 69024bv64) == 1728bv64); - free ensures (memory_load64_le(mem, 69616bv64) == 1812bv64); - free ensures (memory_load64_le(mem, 69640bv64) == 69640bv64); + free ensures (memory_load32_le(mem, 4196312bv64) == 131073bv32); procedure {:extern} rely_transitive(); modifies Gamma_mem, mem; @@ -95,226 +35,21 @@ procedure {:extern} rely_reflexive(); procedure {:extern} guarantee_reflexive(); modifies Gamma_mem, mem; -procedure main_1812(); - modifies Gamma_R0, Gamma_R31, Gamma_V0, Gamma_V1, Gamma_mem, Gamma_stack, R0, R31, V0, V1, mem, stack; - free requires (memory_load64_le(mem, 69632bv64) == 0bv64); - free requires (memory_load64_le(mem, 69640bv64) == 69640bv64); - free requires (memory_load64_le(mem, 2080bv64) == 131073bv64); - free requires (memory_load64_le(mem, 2088bv64) == 4767034467667331754bv64); - free requires (memory_load64_le(mem, 69016bv64) == 1808bv64); - free requires (memory_load64_le(mem, 69024bv64) == 1728bv64); - free requires (memory_load64_le(mem, 69616bv64) == 1812bv64); - free requires (memory_load64_le(mem, 69640bv64) == 69640bv64); - free ensures (Gamma_R31 == old(Gamma_R31)); - free ensures (R31 == old(R31)); - free ensures (memory_load64_le(mem, 2080bv64) == 131073bv64); - free ensures (memory_load64_le(mem, 2088bv64) == 4767034467667331754bv64); - free ensures (memory_load64_le(mem, 69016bv64) == 1808bv64); - free ensures (memory_load64_le(mem, 69024bv64) == 1728bv64); - free ensures (memory_load64_le(mem, 69616bv64) == 1812bv64); - free ensures (memory_load64_le(mem, 69640bv64) == 69640bv64); +procedure main(); + modifies Gamma_R0, R0; + free requires (memory_load64_le(mem, 4325376bv64) == 0bv64); + free requires (memory_load64_le(mem, 4325384bv64) == 0bv64); + free requires (memory_load32_le(mem, 4196312bv64) == 131073bv32); + free ensures (memory_load32_le(mem, 4196312bv64) == 131073bv32); -implementation main_1812() +implementation main() { - var Exp10__6_0_31: bv64; - var Exp10__6_0_36: bv64; - var Exp10__6_0_41: bv64; - var Exp10__6_0_46: bv64; - var Exp10__6_0_51: bv32; - var Exp10__6_0_54: bv64; - var Exp7__5_0_57: bv32; - var Exp9__5_0_13: bv32; - var Exp9__5_0_17: bv32; - var Exp9__5_0_21: bv32; - var Exp9__5_0_25: bv32; - var Exp9__5_0_33: bv64; - var Exp9__5_0_38: bv64; - var Exp9__5_0_43: bv64; - var Exp9__5_0_48: bv64; - var FPDecodeRounding8__7: bv3; - var Gamma_Exp10__6_0_31: bool; - var Gamma_Exp10__6_0_36: bool; - var Gamma_Exp10__6_0_41: bool; - var Gamma_Exp10__6_0_46: bool; - var Gamma_Exp10__6_0_51: bool; - var Gamma_Exp10__6_0_54: bool; - var Gamma_Exp7__5_0_57: bool; - var Gamma_Exp9__5_0_13: bool; - var Gamma_Exp9__5_0_17: bool; - var Gamma_Exp9__5_0_21: bool; - var Gamma_Exp9__5_0_25: bool; - var Gamma_Exp9__5_0_33: bool; - var Gamma_Exp9__5_0_38: bool; - var Gamma_Exp9__5_0_43: bool; - var Gamma_Exp9__5_0_48: bool; - var Gamma_FPDecodeRounding8__7: bool; - var Gamma_load20: bool; - var Gamma_load21: bool; - var Gamma_load22: bool; - var Gamma_load23: bool; - var Gamma_load24: bool; - var Gamma_load25: bool; - var Gamma_load26: bool; - var Gamma_load27: bool; - var Gamma_load28: bool; - var Gamma_load29: bool; - var Gamma_load30: bool; - var Gamma_load31: bool; - var Gamma_load32: bool; - var Gamma_load33: bool; - var Gamma_load34: bool; - var Gamma_load35: bool; - var Gamma_load36: bool; - var Gamma_load37: bool; - var Gamma_load38: bool; - var Gamma_load39: bool; - var Gamma_load40: bool; - var load20: bv32; - var load21: bv32; - var load22: bv32; - var load23: bv32; - var load24: bv32; - var load25: bv32; - var load26: bv32; - var load27: bv32; - var load28: bv64; - var load29: bv32; - var load30: bv64; - var load31: bv32; - var load32: bv64; - var load33: bv32; - var load34: bv64; - var load35: bv32; - var load36: bv64; - var load37: bv64; - var load38: bv32; - var load39: bv64; - var load40: bv32; - main_1812__0__ApY~zz48QdCDKl~J0XWxTA: - assume {:captureState "main_1812__0__ApY~zz48QdCDKl~J0XWxTA"} true; - R31, Gamma_R31 := bvadd64(R31, 18446744073709551568bv64), Gamma_R31; - stack, Gamma_stack := memory_store32_le(stack, bvadd64(R31, 12bv64), R0[32:0]), gamma_store32(Gamma_stack, bvadd64(R31, 12bv64), Gamma_R0); - assume {:captureState "1816_0"} true; - stack, Gamma_stack := memory_store64_le(stack, R31, R1), gamma_store64(Gamma_stack, R31, Gamma_R1); - assume {:captureState "1820_0"} true; - R0, Gamma_R0 := 45941bv64, true; - R0, Gamma_R0 := zero_extend32_32((16680bv16 ++ R0[16:0])), Gamma_R0; - V0, Gamma_V0 := zero_extend96_32(R0[32:0]), Gamma_R0; - stack, Gamma_stack := memory_store32_le(stack, bvadd64(R31, 16bv64), V0[32:0]), gamma_store32(Gamma_stack, bvadd64(R31, 16bv64), Gamma_V0); - assume {:captureState "1836_0"} true; - R0, Gamma_R0 := 23254bv64, true; - R0, Gamma_R0 := zero_extend32_32((16470bv16 ++ R0[16:0])), Gamma_R0; - V0, Gamma_V0 := zero_extend96_32(R0[32:0]), Gamma_R0; - stack, Gamma_stack := memory_store32_le(stack, bvadd64(R31, 20bv64), V0[32:0]), gamma_store32(Gamma_stack, bvadd64(R31, 20bv64), Gamma_V0); - assume {:captureState "1852_0"} true; - load20, Gamma_load20 := memory_load32_le(stack, bvadd64(R31, 16bv64)), gamma_load32(Gamma_stack, bvadd64(R31, 16bv64)); - V1, Gamma_V1 := zero_extend96_32(load20), Gamma_load20; - load21, Gamma_load21 := memory_load32_le(stack, bvadd64(R31, 20bv64)), gamma_load32(Gamma_stack, bvadd64(R31, 20bv64)); - V0, Gamma_V0 := zero_extend96_32(load21), Gamma_load21; - Exp9__5_0_13, Gamma_Exp9__5_0_13 := FPMul_32(V1[32:0], V0[32:0], FPCR), true; - V0, Gamma_V0 := zero_extend96_32(Exp9__5_0_13), Gamma_Exp9__5_0_13; - stack, Gamma_stack := memory_store32_le(stack, bvadd64(R31, 24bv64), V0[32:0]), gamma_store32(Gamma_stack, bvadd64(R31, 24bv64), Gamma_V0); - assume {:captureState "1868_0"} true; - load22, Gamma_load22 := memory_load32_le(stack, bvadd64(R31, 20bv64)), gamma_load32(Gamma_stack, bvadd64(R31, 20bv64)); - V0, Gamma_V0 := zero_extend96_32(load22), Gamma_load22; - load23, Gamma_load23 := memory_load32_le(stack, bvadd64(R31, 16bv64)), gamma_load32(Gamma_stack, bvadd64(R31, 16bv64)); - V1, Gamma_V1 := zero_extend96_32(load23), Gamma_load23; - Exp9__5_0_17, Gamma_Exp9__5_0_17 := FPDiv_32(V1[32:0], V0[32:0], FPCR), true; - V0, Gamma_V0 := zero_extend96_32(Exp9__5_0_17), Gamma_Exp9__5_0_17; - stack, Gamma_stack := memory_store32_le(stack, bvadd64(R31, 24bv64), V0[32:0]), gamma_store32(Gamma_stack, bvadd64(R31, 24bv64), Gamma_V0); - assume {:captureState "1884_0"} true; - load24, Gamma_load24 := memory_load32_le(stack, bvadd64(R31, 16bv64)), gamma_load32(Gamma_stack, bvadd64(R31, 16bv64)); - V1, Gamma_V1 := zero_extend96_32(load24), Gamma_load24; - load25, Gamma_load25 := memory_load32_le(stack, bvadd64(R31, 20bv64)), gamma_load32(Gamma_stack, bvadd64(R31, 20bv64)); - V0, Gamma_V0 := zero_extend96_32(load25), Gamma_load25; - Exp9__5_0_21, Gamma_Exp9__5_0_21 := FPSub_32(V1[32:0], V0[32:0], FPCR), true; - V0, Gamma_V0 := zero_extend96_32(Exp9__5_0_21), Gamma_Exp9__5_0_21; - stack, Gamma_stack := memory_store32_le(stack, bvadd64(R31, 24bv64), V0[32:0]), gamma_store32(Gamma_stack, bvadd64(R31, 24bv64), Gamma_V0); - assume {:captureState "1900_0"} true; - load26, Gamma_load26 := memory_load32_le(stack, bvadd64(R31, 16bv64)), gamma_load32(Gamma_stack, bvadd64(R31, 16bv64)); - V1, Gamma_V1 := zero_extend96_32(load26), Gamma_load26; - load27, Gamma_load27 := memory_load32_le(stack, bvadd64(R31, 20bv64)), gamma_load32(Gamma_stack, bvadd64(R31, 20bv64)); - V0, Gamma_V0 := zero_extend96_32(load27), Gamma_load27; - Exp9__5_0_25, Gamma_Exp9__5_0_25 := FPAdd_32(V1[32:0], V0[32:0], FPCR), true; - V0, Gamma_V0 := zero_extend96_32(Exp9__5_0_25), Gamma_Exp9__5_0_25; - stack, Gamma_stack := memory_store32_le(stack, bvadd64(R31, 24bv64), V0[32:0]), gamma_store32(Gamma_stack, bvadd64(R31, 24bv64), Gamma_V0); - assume {:captureState "1916_0"} true; - R0, Gamma_R0 := 0bv64, true; - call rely(); - load28, Gamma_load28 := memory_load64_le(mem, bvadd64(R0, 2088bv64)), (gamma_load64(Gamma_mem, bvadd64(R0, 2088bv64)) || L(mem, bvadd64(R0, 2088bv64))); - V0, Gamma_V0 := zero_extend64_64(load28), Gamma_load28; - stack, Gamma_stack := memory_store64_le(stack, bvadd64(R31, 32bv64), V0[64:0]), gamma_store64(Gamma_stack, bvadd64(R31, 32bv64), Gamma_V0); - assume {:captureState "1928_0"} true; - load29, Gamma_load29 := memory_load32_le(stack, bvadd64(R31, 20bv64)), gamma_load32(Gamma_stack, bvadd64(R31, 20bv64)); - V0, Gamma_V0 := zero_extend96_32(load29), Gamma_load29; - FPDecodeRounding8__7, Gamma_FPDecodeRounding8__7 := zero_extend1_2(FPCR[24:22]), Gamma_FPCR; - Exp10__6_0_31, Gamma_Exp10__6_0_31 := FPConvert_64_32(V0[32:0], FPCR, FPDecodeRounding8__7), true; - V0, Gamma_V0 := zero_extend64_64(Exp10__6_0_31), Gamma_Exp10__6_0_31; - load30, Gamma_load30 := memory_load64_le(stack, bvadd64(R31, 32bv64)), gamma_load64(Gamma_stack, bvadd64(R31, 32bv64)); - V1, Gamma_V1 := zero_extend64_64(load30), Gamma_load30; - Exp9__5_0_33, Gamma_Exp9__5_0_33 := FPMul_64(V1[64:0], V0[64:0], FPCR), true; - V0, Gamma_V0 := zero_extend64_64(Exp9__5_0_33), Gamma_Exp9__5_0_33; - stack, Gamma_stack := memory_store64_le(stack, bvadd64(R31, 40bv64), V0[64:0]), gamma_store64(Gamma_stack, bvadd64(R31, 40bv64), Gamma_V0); - assume {:captureState "1948_0"} true; - load31, Gamma_load31 := memory_load32_le(stack, bvadd64(R31, 20bv64)), gamma_load32(Gamma_stack, bvadd64(R31, 20bv64)); - V0, Gamma_V0 := zero_extend96_32(load31), Gamma_load31; - FPDecodeRounding8__7, Gamma_FPDecodeRounding8__7 := zero_extend1_2(FPCR[24:22]), Gamma_FPCR; - Exp10__6_0_36, Gamma_Exp10__6_0_36 := FPConvert_64_32(V0[32:0], FPCR, FPDecodeRounding8__7), true; - V0, Gamma_V0 := zero_extend64_64(Exp10__6_0_36), Gamma_Exp10__6_0_36; - load32, Gamma_load32 := memory_load64_le(stack, bvadd64(R31, 32bv64)), gamma_load64(Gamma_stack, bvadd64(R31, 32bv64)); - V1, Gamma_V1 := zero_extend64_64(load32), Gamma_load32; - Exp9__5_0_38, Gamma_Exp9__5_0_38 := FPSub_64(V1[64:0], V0[64:0], FPCR), true; - V0, Gamma_V0 := zero_extend64_64(Exp9__5_0_38), Gamma_Exp9__5_0_38; - stack, Gamma_stack := memory_store64_le(stack, bvadd64(R31, 40bv64), V0[64:0]), gamma_store64(Gamma_stack, bvadd64(R31, 40bv64), Gamma_V0); - assume {:captureState "1968_0"} true; - load33, Gamma_load33 := memory_load32_le(stack, bvadd64(R31, 20bv64)), gamma_load32(Gamma_stack, bvadd64(R31, 20bv64)); - V0, Gamma_V0 := zero_extend96_32(load33), Gamma_load33; - FPDecodeRounding8__7, Gamma_FPDecodeRounding8__7 := zero_extend1_2(FPCR[24:22]), Gamma_FPCR; - Exp10__6_0_41, Gamma_Exp10__6_0_41 := FPConvert_64_32(V0[32:0], FPCR, FPDecodeRounding8__7), true; - V0, Gamma_V0 := zero_extend64_64(Exp10__6_0_41), Gamma_Exp10__6_0_41; - load34, Gamma_load34 := memory_load64_le(stack, bvadd64(R31, 32bv64)), gamma_load64(Gamma_stack, bvadd64(R31, 32bv64)); - V1, Gamma_V1 := zero_extend64_64(load34), Gamma_load34; - Exp9__5_0_43, Gamma_Exp9__5_0_43 := FPAdd_64(V1[64:0], V0[64:0], FPCR), true; - V0, Gamma_V0 := zero_extend64_64(Exp9__5_0_43), Gamma_Exp9__5_0_43; - stack, Gamma_stack := memory_store64_le(stack, bvadd64(R31, 40bv64), V0[64:0]), gamma_store64(Gamma_stack, bvadd64(R31, 40bv64), Gamma_V0); - assume {:captureState "1988_0"} true; - load35, Gamma_load35 := memory_load32_le(stack, bvadd64(R31, 20bv64)), gamma_load32(Gamma_stack, bvadd64(R31, 20bv64)); - V0, Gamma_V0 := zero_extend96_32(load35), Gamma_load35; - FPDecodeRounding8__7, Gamma_FPDecodeRounding8__7 := zero_extend1_2(FPCR[24:22]), Gamma_FPCR; - Exp10__6_0_46, Gamma_Exp10__6_0_46 := FPConvert_64_32(V0[32:0], FPCR, FPDecodeRounding8__7), true; - V0, Gamma_V0 := zero_extend64_64(Exp10__6_0_46), Gamma_Exp10__6_0_46; - load36, Gamma_load36 := memory_load64_le(stack, bvadd64(R31, 32bv64)), gamma_load64(Gamma_stack, bvadd64(R31, 32bv64)); - V1, Gamma_V1 := zero_extend64_64(load36), Gamma_load36; - Exp9__5_0_48, Gamma_Exp9__5_0_48 := FPDiv_64(V1[64:0], V0[64:0], FPCR), true; - V0, Gamma_V0 := zero_extend64_64(Exp9__5_0_48), Gamma_Exp9__5_0_48; - stack, Gamma_stack := memory_store64_le(stack, bvadd64(R31, 40bv64), V0[64:0]), gamma_store64(Gamma_stack, bvadd64(R31, 40bv64), Gamma_V0); - assume {:captureState "2008_0"} true; - load37, Gamma_load37 := memory_load64_le(stack, bvadd64(R31, 40bv64)), gamma_load64(Gamma_stack, bvadd64(R31, 40bv64)); - V0, Gamma_V0 := zero_extend64_64(load37), Gamma_load37; - FPDecodeRounding8__7, Gamma_FPDecodeRounding8__7 := zero_extend1_2(FPCR[24:22]), Gamma_FPCR; - Exp10__6_0_51, Gamma_Exp10__6_0_51 := FPConvert_32_64(V0[64:0], FPCR, FPDecodeRounding8__7), true; - V0, Gamma_V0 := zero_extend96_32(Exp10__6_0_51), Gamma_Exp10__6_0_51; - stack, Gamma_stack := memory_store32_le(stack, bvadd64(R31, 16bv64), V0[32:0]), gamma_store32(Gamma_stack, bvadd64(R31, 16bv64), Gamma_V0); - assume {:captureState "2020_0"} true; - load38, Gamma_load38 := memory_load32_le(stack, bvadd64(R31, 20bv64)), gamma_load32(Gamma_stack, bvadd64(R31, 20bv64)); - V0, Gamma_V0 := zero_extend96_32(load38), Gamma_load38; - FPDecodeRounding8__7, Gamma_FPDecodeRounding8__7 := zero_extend1_2(FPCR[24:22]), Gamma_FPCR; - Exp10__6_0_54, Gamma_Exp10__6_0_54 := FPConvert_64_32(V0[32:0], FPCR, FPDecodeRounding8__7), true; - V0, Gamma_V0 := zero_extend64_64(Exp10__6_0_54), Gamma_Exp10__6_0_54; - stack, Gamma_stack := memory_store64_le(stack, bvadd64(R31, 32bv64), V0[64:0]), gamma_store64(Gamma_stack, bvadd64(R31, 32bv64), Gamma_V0); - assume {:captureState "2032_0"} true; - load39, Gamma_load39 := memory_load64_le(stack, bvadd64(R31, 40bv64)), gamma_load64(Gamma_stack, bvadd64(R31, 40bv64)); - V0, Gamma_V0 := zero_extend64_64(load39), Gamma_load39; - Exp7__5_0_57, Gamma_Exp7__5_0_57 := FPToFixed_32_64(V0[64:0], 0, false, FPCR, 3), true; - R0, Gamma_R0 := zero_extend32_32(Exp7__5_0_57), Gamma_Exp7__5_0_57; - stack, Gamma_stack := memory_store32_le(stack, bvadd64(R31, 28bv64), R0[32:0]), gamma_store32(Gamma_stack, bvadd64(R31, 28bv64), Gamma_R0); - assume {:captureState "2044_0"} true; - load40, Gamma_load40 := memory_load32_le(stack, bvadd64(R31, 28bv64)), gamma_load32(Gamma_stack, bvadd64(R31, 28bv64)); - R0, Gamma_R0 := zero_extend32_32(load40), Gamma_load40; - R31, Gamma_R31 := bvadd64(R31, 48bv64), Gamma_R31; - goto main_1812_basil_return; - main_1812_basil_return: - assume {:captureState "main_1812_basil_return"} true; + $main$__0__$cegbDVc9S6m8Z0kHHU8BZQ: + assume {:captureState "$main$__0__$cegbDVc9S6m8Z0kHHU8BZQ"} true; + R0, Gamma_R0 := 2147483647bv64, true; + goto main_basil_return; + main_basil_return: + assume {:captureState "main_basil_return"} true; return; } diff --git a/src/test/correct/function/clang/function.adt b/src/test/correct/function/clang/function.adt deleted file mode 100644 index 4f74c0f44..000000000 --- a/src/test/correct/function/clang/function.adt +++ /dev/null @@ -1,544 +0,0 @@ -Project(Attrs([Attr("filename","\"clang/function.out\""), -Attr("image-specification","(declare abi (name str))\n(declare arch (name str))\n(declare base-address (addr int))\n(declare bias (off int))\n(declare bits (size int))\n(declare code-region (addr int) (size int) (off int))\n(declare code-start (addr int))\n(declare entry-point (addr int))\n(declare external-reference (addr int) (name str))\n(declare format (name str))\n(declare is-executable (flag bool))\n(declare is-little-endian (flag bool))\n(declare llvm:base-address (addr int))\n(declare llvm:code-entry (name str) (off int) (size int))\n(declare llvm:coff-import-library (name str))\n(declare llvm:coff-virtual-section-header (name str) (addr int) (size int))\n(declare llvm:elf-program-header (name str) (off int) (size int))\n(declare llvm:elf-program-header-flags (name str) (ld bool) (r bool) \n (w bool) (x bool))\n(declare llvm:elf-virtual-program-header (name str) (addr int) (size int))\n(declare llvm:entry-point (addr int))\n(declare llvm:macho-symbol (name str) (value int))\n(declare llvm:name-reference (at int) (name str))\n(declare llvm:relocation (at int) (addr int))\n(declare llvm:section-entry (name str) (addr int) (size int) (off int))\n(declare llvm:section-flags (name str) (r bool) (w bool) (x bool))\n(declare llvm:segment-command (name str) (off int) (size int))\n(declare llvm:segment-command-flags (name str) (r bool) (w bool) (x bool))\n(declare llvm:symbol-entry (name str) (addr int) (size int) (off int)\n (value int))\n(declare llvm:virtual-segment-command (name str) (addr int) (size int))\n(declare mapped (addr int) (size int) (off int))\n(declare named-region (addr int) (size int) (name str))\n(declare named-symbol (addr int) (name str))\n(declare require (name str))\n(declare section (addr int) (size int))\n(declare segment (addr int) (size int) (r bool) (w bool) (x bool))\n(declare subarch (name str))\n(declare symbol-chunk (addr int) (size int) (root int))\n(declare symbol-value (addr int) (value int))\n(declare system (name str))\n(declare vendor (name str))\n\n(abi unknown)\n(arch aarch64)\n(base-address 0)\n(bias 0)\n(bits 64)\n(code-region 1864 20 1864)\n(code-region 1536 328 1536)\n(code-region 1440 96 1440)\n(code-region 1408 24 1408)\n(code-start 1588)\n(code-start 1856)\n(code-start 1536)\n(code-start 1812)\n(entry-point 1536)\n(external-reference 69568 _ITM_deregisterTMCloneTable)\n(external-reference 69576 __cxa_finalize)\n(external-reference 69584 __gmon_start__)\n(external-reference 69600 _ITM_registerTMCloneTable)\n(external-reference 69632 __libc_start_main)\n(external-reference 69640 __cxa_finalize)\n(external-reference 69648 __gmon_start__)\n(external-reference 69656 abort)\n(format elf)\n(is-executable true)\n(is-little-endian true)\n(llvm:base-address 0)\n(llvm:code-entry abort 0 0)\n(llvm:code-entry __cxa_finalize 0 0)\n(llvm:code-entry __libc_start_main 0 0)\n(llvm:code-entry _init 1408 0)\n(llvm:code-entry main 1812 44)\n(llvm:code-entry _start 1536 52)\n(llvm:code-entry abort@GLIBC_2.17 0 0)\n(llvm:code-entry get_two 1856 8)\n(llvm:code-entry _fini 1864 0)\n(llvm:code-entry __cxa_finalize@GLIBC_2.17 0 0)\n(llvm:code-entry __libc_start_main@GLIBC_2.34 0 0)\n(llvm:code-entry frame_dummy 1808 0)\n(llvm:code-entry __do_global_dtors_aux 1728 0)\n(llvm:code-entry register_tm_clones 1664 0)\n(llvm:code-entry deregister_tm_clones 1616 0)\n(llvm:code-entry call_weak_fn 1588 20)\n(llvm:code-entry .fini 1864 20)\n(llvm:code-entry .text 1536 328)\n(llvm:code-entry .plt 1440 96)\n(llvm:code-entry .init 1408 24)\n(llvm:elf-program-header 08 3528 568)\n(llvm:elf-program-header 07 0 0)\n(llvm:elf-program-header 06 1888 68)\n(llvm:elf-program-header 05 596 68)\n(llvm:elf-program-header 04 3544 480)\n(llvm:elf-program-header 03 3528 616)\n(llvm:elf-program-header 02 0 2180)\n(llvm:elf-program-header 01 568 27)\n(llvm:elf-program-header 00 64 504)\n(llvm:elf-program-header-flags 08 false true false false)\n(llvm:elf-program-header-flags 07 false true true false)\n(llvm:elf-program-header-flags 06 false true false false)\n(llvm:elf-program-header-flags 05 false true false false)\n(llvm:elf-program-header-flags 04 false true true false)\n(llvm:elf-program-header-flags 03 true true true false)\n(llvm:elf-program-header-flags 02 true true false true)\n(llvm:elf-program-header-flags 01 false true false false)\n(llvm:elf-program-header-flags 00 false true false false)\n(llvm:elf-virtual-program-header 08 69064 568)\n(llvm:elf-virtual-program-header 07 0 0)\n(llvm:elf-virtual-program-header 06 1888 68)\n(llvm:elf-virtual-program-header 05 596 68)\n(llvm:elf-virtual-program-header 04 69080 480)\n(llvm:elf-virtual-program-header 03 69064 632)\n(llvm:elf-virtual-program-header 02 0 2180)\n(llvm:elf-virtual-program-header 01 568 27)\n(llvm:elf-virtual-program-header 00 64 504)\n(llvm:entry-point 1536)\n(llvm:name-reference 69656 abort)\n(llvm:name-reference 69648 __gmon_start__)\n(llvm:name-reference 69640 __cxa_finalize)\n(llvm:name-reference 69632 __libc_start_main)\n(llvm:name-reference 69600 _ITM_registerTMCloneTable)\n(llvm:name-reference 69584 __gmon_start__)\n(llvm:name-reference 69576 __cxa_finalize)\n(llvm:name-reference 69568 _ITM_deregisterTMCloneTable)\n(llvm:section-entry .shstrtab 0 259 6996)\n(llvm:section-entry .strtab 0 572 6424)\n(llvm:section-entry .symtab 0 2208 4216)\n(llvm:section-entry .comment 0 71 4144)\n(llvm:section-entry .bss 69680 16 4144)\n(llvm:section-entry .data 69664 16 4128)\n(llvm:section-entry .got.plt 69608 56 4072)\n(llvm:section-entry .got 69560 48 4024)\n(llvm:section-entry .dynamic 69080 480 3544)\n(llvm:section-entry .fini_array 69072 8 3536)\n(llvm:section-entry .init_array 69064 8 3528)\n(llvm:section-entry .eh_frame 1960 220 1960)\n(llvm:section-entry .eh_frame_hdr 1888 68 1888)\n(llvm:section-entry .rodata 1884 4 1884)\n(llvm:section-entry .fini 1864 20 1864)\n(llvm:section-entry .text 1536 328 1536)\n(llvm:section-entry .plt 1440 96 1440)\n(llvm:section-entry .init 1408 24 1408)\n(llvm:section-entry .rela.plt 1312 96 1312)\n(llvm:section-entry .rela.dyn 1120 192 1120)\n(llvm:section-entry .gnu.version_r 1072 48 1072)\n(llvm:section-entry .gnu.version 1054 18 1054)\n(llvm:section-entry .dynstr 912 141 912)\n(llvm:section-entry .dynsym 696 216 696)\n(llvm:section-entry .gnu.hash 664 28 664)\n(llvm:section-entry .note.ABI-tag 632 32 632)\n(llvm:section-entry .note.gnu.build-id 596 36 596)\n(llvm:section-entry .interp 568 27 568)\n(llvm:section-flags .shstrtab true false false)\n(llvm:section-flags .strtab true false false)\n(llvm:section-flags .symtab true false false)\n(llvm:section-flags .comment true false false)\n(llvm:section-flags .bss true true false)\n(llvm:section-flags .data true true false)\n(llvm:section-flags .got.plt true true false)\n(llvm:section-flags .got true true false)\n(llvm:section-flags .dynamic true true false)\n(llvm:section-flags .fini_array true true false)\n(llvm:section-flags .init_array true true false)\n(llvm:section-flags .eh_frame true false false)\n(llvm:section-flags .eh_frame_hdr true false false)\n(llvm:section-flags .rodata true false false)\n(llvm:section-flags .fini true false true)\n(llvm:section-flags .text true false true)\n(llvm:section-flags .plt true false true)\n(llvm:section-flags .init true false true)\n(llvm:section-flags .rela.plt true false false)\n(llvm:section-flags .rela.dyn true false false)\n(llvm:section-flags .gnu.version_r true false false)\n(llvm:section-flags .gnu.version true false false)\n(llvm:section-flags .dynstr true false false)\n(llvm:section-flags .dynsym true false false)\n(llvm:section-flags .gnu.hash true false false)\n(llvm:section-flags .note.ABI-tag true false false)\n(llvm:section-flags .note.gnu.build-id true false false)\n(llvm:section-flags .interp true false false)\n(llvm:symbol-entry abort 0 0 0 0)\n(llvm:symbol-entry __cxa_finalize 0 0 0 0)\n(llvm:symbol-entry __libc_start_main 0 0 0 0)\n(llvm:symbol-entry _init 1408 0 1408 1408)\n(llvm:symbol-entry main 1812 44 1812 1812)\n(llvm:symbol-entry _start 1536 52 1536 1536)\n(llvm:symbol-entry abort@GLIBC_2.17 0 0 0 0)\n(llvm:symbol-entry get_two 1856 8 1856 1856)\n(llvm:symbol-entry _fini 1864 0 1864 1864)\n(llvm:symbol-entry __cxa_finalize@GLIBC_2.17 0 0 0 0)\n(llvm:symbol-entry __libc_start_main@GLIBC_2.34 0 0 0 0)\n(llvm:symbol-entry frame_dummy 1808 0 1808 1808)\n(llvm:symbol-entry __do_global_dtors_aux 1728 0 1728 1728)\n(llvm:symbol-entry register_tm_clones 1664 0 1664 1664)\n(llvm:symbol-entry deregister_tm_clones 1616 0 1616 1616)\n(llvm:symbol-entry call_weak_fn 1588 20 1588 1588)\n(mapped 0 2180 0)\n(mapped 69064 616 3528)\n(named-region 0 2180 02)\n(named-region 69064 632 03)\n(named-region 568 27 .interp)\n(named-region 596 36 .note.gnu.build-id)\n(named-region 632 32 .note.ABI-tag)\n(named-region 664 28 .gnu.hash)\n(named-region 696 216 .dynsym)\n(named-region 912 141 .dynstr)\n(named-region 1054 18 .gnu.version)\n(named-region 1072 48 .gnu.version_r)\n(named-region 1120 192 .rela.dyn)\n(named-region 1312 96 .rela.plt)\n(named-region 1408 24 .init)\n(named-region 1440 96 .plt)\n(named-region 1536 328 .text)\n(named-region 1864 20 .fini)\n(named-region 1884 4 .rodata)\n(named-region 1888 68 .eh_frame_hdr)\n(named-region 1960 220 .eh_frame)\n(named-region 69064 8 .init_array)\n(named-region 69072 8 .fini_array)\n(named-region 69080 480 .dynamic)\n(named-region 69560 48 .got)\n(named-region 69608 56 .got.plt)\n(named-region 69664 16 .data)\n(named-region 69680 16 .bss)\n(named-region 0 71 .comment)\n(named-region 0 2208 .symtab)\n(named-region 0 572 .strtab)\n(named-region 0 259 .shstrtab)\n(named-symbol 1588 call_weak_fn)\n(named-symbol 1616 deregister_tm_clones)\n(named-symbol 1664 register_tm_clones)\n(named-symbol 1728 __do_global_dtors_aux)\n(named-symbol 1808 frame_dummy)\n(named-symbol 0 __libc_start_main@GLIBC_2.34)\n(named-symbol 0 __cxa_finalize@GLIBC_2.17)\n(named-symbol 1864 _fini)\n(named-symbol 1856 get_two)\n(named-symbol 0 abort@GLIBC_2.17)\n(named-symbol 1536 _start)\n(named-symbol 1812 main)\n(named-symbol 1408 _init)\n(named-symbol 0 __libc_start_main)\n(named-symbol 0 __cxa_finalize)\n(named-symbol 0 abort)\n(require libc.so.6)\n(section 568 27)\n(section 596 36)\n(section 632 32)\n(section 664 28)\n(section 696 216)\n(section 912 141)\n(section 1054 18)\n(section 1072 48)\n(section 1120 192)\n(section 1312 96)\n(section 1408 24)\n(section 1440 96)\n(section 1536 328)\n(section 1864 20)\n(section 1884 4)\n(section 1888 68)\n(section 1960 220)\n(section 69064 8)\n(section 69072 8)\n(section 69080 480)\n(section 69560 48)\n(section 69608 56)\n(section 69664 16)\n(section 69680 16)\n(section 0 71)\n(section 0 2208)\n(section 0 572)\n(section 0 259)\n(segment 0 2180 true false true)\n(segment 69064 632 true true false)\n(subarch v8)\n(symbol-chunk 1588 20 1588)\n(symbol-chunk 1856 8 1856)\n(symbol-chunk 1536 52 1536)\n(symbol-chunk 1812 44 1812)\n(symbol-value 1588 1588)\n(symbol-value 1616 1616)\n(symbol-value 1664 1664)\n(symbol-value 1728 1728)\n(symbol-value 1808 1808)\n(symbol-value 1864 1864)\n(symbol-value 1856 1856)\n(symbol-value 1536 1536)\n(symbol-value 1812 1812)\n(symbol-value 1408 1408)\n(symbol-value 0 0)\n(system \"\")\n(vendor \"\")\n"), -Attr("abi-name","\"aarch64-linux-gnu-elf\"")]), -Sections([Section(".shstrtab", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x00\x06\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x58\x1c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x38\x00\x09\x00\x40\x00\x1d\x00\x1c\x00\x06\x00\x00\x00\x04\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x04\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x84\x08\x00\x00\x00\x00\x00\x00\x84\x08\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x01\x00\x00\x00\x06\x00\x00\x00\xc8\x0d\x00\x00\x00\x00\x00\x00\xc8\x0d\x01\x00\x00\x00\x00\x00\xc8\x0d\x01"), -Section(".strtab", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x00\x06\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x58\x1c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x38\x00\x09\x00\x40\x00\x1d\x00\x1c\x00\x06\x00\x00\x00\x04\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x04\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x84\x08\x00\x00\x00\x00\x00\x00\x84\x08\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x01\x00\x00\x00\x06\x00\x00\x00\xc8\x0d\x00\x00\x00\x00\x00\x00\xc8\x0d\x01\x00\x00\x00\x00\x00\xc8\x0d\x01\x00\x00\x00\x00\x00\x68\x02\x00\x00\x00\x00\x00\x00\x78\x02\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x02\x00\x00\x00\x06\x00\x00\x00\xd8\x0d\x00\x00\x00\x00\x00\x00\xd8\x0d\x01\x00\x00\x00\x00\x00\xd8\x0d\x01\x00\x00\x00\x00\x00\xe0\x01\x00\x00\x00\x00\x00\x00\xe0\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x04\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x50\xe5\x74\x64\x04\x00\x00\x00\x60\x07\x00\x00\x00\x00\x00\x00\x60\x07\x00\x00\x00\x00\x00\x00\x60\x07\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x51\xe5\x74\x64\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x52\xe5\x74\x64\x04\x00\x00\x00\xc8\x0d\x00\x00\x00\x00\x00\x00\xc8\x0d\x01\x00\x00\x00\x00\x00\xc8\x0d\x01\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x2f\x6c\x69\x62"), -Section(".comment", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x00\x06\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x58\x1c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x38\x00\x09\x00\x40\x00\x1d\x00\x1c\x00\x06\x00\x00\x00\x04\x00\x00"), -Section(".interp", 0x238, "\x2f\x6c\x69\x62\x2f\x6c\x64\x2d\x6c\x69\x6e\x75\x78\x2d\x61\x61\x72\x63\x68\x36\x34\x2e\x73\x6f\x2e\x31\x00"), -Section(".note.gnu.build-id", 0x254, "\x04\x00\x00\x00\x14\x00\x00\x00\x03\x00\x00\x00\x47\x4e\x55\x00\x2f\xc5\xa7\x11\x9d\xd4\x50\xed\x52\xe5\x38\xc6\x48\xea\x5a\xa2\x87\xf7\x1d\x92"), -Section(".note.ABI-tag", 0x278, "\x04\x00\x00\x00\x10\x00\x00\x00\x01\x00\x00\x00\x47\x4e\x55\x00\x00\x00\x00\x00\x03\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00"), -Section(".gnu.hash", 0x298, "\x01\x00\x00\x00\x01\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".dynsym", 0x2B8, "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x0b\x00\x80\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x17\x00\x20\x10\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x48\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x22\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x22\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x73\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".dynstr", 0x390, "\x00\x5f\x5f\x63\x78\x61\x5f\x66\x69\x6e\x61\x6c\x69\x7a\x65\x00\x5f\x5f\x6c\x69\x62\x63\x5f\x73\x74\x61\x72\x74\x5f\x6d\x61\x69\x6e\x00\x61\x62\x6f\x72\x74\x00\x6c\x69\x62\x63\x2e\x73\x6f\x2e\x36\x00\x47\x4c\x49\x42\x43\x5f\x32\x2e\x31\x37\x00\x47\x4c\x49\x42\x43\x5f\x32\x2e\x33\x34\x00\x5f\x49\x54\x4d\x5f\x64\x65\x72\x65\x67\x69\x73\x74\x65\x72\x54\x4d\x43\x6c\x6f\x6e\x65\x54\x61\x62\x6c\x65\x00\x5f\x5f\x67\x6d\x6f\x6e\x5f\x73\x74\x61\x72\x74\x5f\x5f\x00\x5f\x49\x54\x4d\x5f\x72\x65\x67\x69\x73\x74\x65\x72\x54\x4d\x43\x6c\x6f\x6e\x65\x54\x61\x62\x6c\x65\x00"), -Section(".gnu.version", 0x41E, "\x00\x00\x00\x00\x00\x00\x02\x00\x01\x00\x03\x00\x01\x00\x03\x00\x01\x00"), -Section(".gnu.version_r", 0x430, "\x01\x00\x02\x00\x28\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x97\x91\x96\x06\x00\x00\x03\x00\x32\x00\x00\x00\x10\x00\x00\x00\xb4\x91\x96\x06\x00\x00\x02\x00\x3d\x00\x00\x00\x00\x00\x00\x00"), -Section(".rela.dyn", 0x460, "\xc8\x0d\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x10\x07\x00\x00\x00\x00\x00\x00\xd0\x0d\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\xc0\x06\x00\x00\x00\x00\x00\x00\xd8\x0f\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x14\x07\x00\x00\x00\x00\x00\x00\x28\x10\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x28\x10\x01\x00\x00\x00\x00\x00\xc0\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xc8\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xd0\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe0\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".rela.plt", 0x520, "\x00\x10\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x08\x10\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x10\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x18\x10\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".init", 0x580, "\x1f\x20\x03\xd5\xfd\x7b\xbf\xa9\xfd\x03\x00\x91\x2a\x00\x00\x94\xfd\x7b\xc1\xa8\xc0\x03\x5f\xd6"), -Section(".plt", 0x5A0, "\xf0\x7b\xbf\xa9\x90\x00\x00\x90\x11\xfe\x47\xf9\x10\xe2\x3f\x91\x20\x02\x1f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x90\x00\x00\xb0\x11\x02\x40\xf9\x10\x02\x00\x91\x20\x02\x1f\xd6\x90\x00\x00\xb0\x11\x06\x40\xf9\x10\x22\x00\x91\x20\x02\x1f\xd6\x90\x00\x00\xb0\x11\x0a\x40\xf9\x10\x42\x00\x91\x20\x02\x1f\xd6\x90\x00\x00\xb0\x11\x0e\x40\xf9\x10\x62\x00\x91\x20\x02\x1f\xd6"), -Section(".text", 0x600, "\x1f\x20\x03\xd5\x1d\x00\x80\xd2\x1e\x00\x80\xd2\xe5\x03\x00\xaa\xe1\x03\x40\xf9\xe2\x23\x00\x91\xe6\x03\x00\x91\x80\x00\x00\x90\x00\xec\x47\xf9\x03\x00\x80\xd2\x04\x00\x80\xd2\xe5\xff\xff\x97\xf0\xff\xff\x97\x80\x00\x00\x90\x00\xe8\x47\xf9\x40\x00\x00\xb4\xe8\xff\xff\x17\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x80\x00\x00\xb0\x00\xc0\x00\x91\x81\x00\x00\xb0\x21\xc0\x00\x91\x3f\x00\x00\xeb\xc0\x00\x00\x54\x81\x00\x00\x90\x21\xe0\x47\xf9\x61\x00\x00\xb4\xf0\x03\x01\xaa\x00\x02\x1f\xd6\xc0\x03\x5f\xd6\x80\x00\x00\xb0\x00\xc0\x00\x91\x81\x00\x00\xb0\x21\xc0\x00\x91\x21\x00\x00\xcb\x22\xfc\x7f\xd3\x41\x0c\x81\x8b\x21\xfc\x41\x93\xc1\x00\x00\xb4\x82\x00\x00\x90\x42\xf0\x47\xf9\x62\x00\x00\xb4\xf0\x03\x02\xaa\x00\x02\x1f\xd6\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\xfd\x7b\xbe\xa9\xfd\x03\x00\x91\xf3\x0b\x00\xf9\x93\x00\x00\xb0\x60\xc2\x40\x39\x40\x01\x00\x35\x80\x00\x00\x90\x00\xe4\x47\xf9\x80\x00\x00\xb4\x80\x00\x00\xb0\x00\x14\x40\xf9\xb9\xff\xff\x97\xd8\xff\xff\x97\x20\x00\x80\x52\x60\xc2\x00\x39\xf3\x0b\x40\xf9\xfd\x7b\xc2\xa8\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\xdc\xff\xff\x17\xfd\x7b\xbf\xa9\xfd\x03\x00\x91\x89\x00\x00\xb0\x28\x00\x80\x52\x28\x35\x00\xb9\x06\x00\x00\x94\x88\x00\x00\xb0\x00\x39\x00\xb9\xe0\x03\x1f\x2a\xfd\x7b\xc1\xa8\xc0\x03\x5f\xd6\x40\x00\x80\x52\xc0\x03\x5f\xd6"), -Section(".fini", 0x748, "\x1f\x20\x03\xd5\xfd\x7b\xbf\xa9\xfd\x03\x00\x91\xfd\x7b\xc1\xa8\xc0\x03\x5f\xd6"), -Section(".rodata", 0x75C, "\x01\x00\x02\x00"), -Section(".eh_frame_hdr", 0x760, "\x01\x1b\x03\x3b\x44\x00\x00\x00\x07\x00\x00\x00\xa0\xfe\xff\xff\x5c\x00\x00\x00\xf0\xfe\xff\xff\x70\x00\x00\x00\x20\xff\xff\xff\x84\x00\x00\x00\x60\xff\xff\xff\x98\x00\x00\x00\xb0\xff\xff\xff\xbc\x00\x00\x00\xb4\xff\xff\xff\xe4\x00\x00\x00\xe0\xff\xff\xff\x0c\x01\x00\x00"), -Section(".eh_frame", 0x7A8, "\x10\x00\x00\x00\x00\x00\x00\x00\x01\x7a\x52\x00\x04\x78\x1e\x01\x1b\x0c\x1f\x00\x10\x00\x00\x00\x18\x00\x00\x00\x3c\xfe\xff\xff\x34\x00\x00\x00\x00\x41\x07\x1e\x10\x00\x00\x00\x2c\x00\x00\x00\x78\xfe\xff\xff\x30\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x40\x00\x00\x00\x94\xfe\xff\xff\x3c\x00\x00\x00\x00\x00\x00\x00\x20\x00\x00\x00\x54\x00\x00\x00\xc0\xfe\xff\xff\x48\x00\x00\x00\x00\x41\x0e\x20\x9d\x04\x9e\x03\x42\x93\x02\x4e\xde\xdd\xd3\x0e\x00\x00\x00\x00\x10\x00\x00\x00\x78\x00\x00\x00\xec\xfe\xff\xff\x04\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x01\x7a\x52\x00\x01\x7c\x1e\x01\x1b\x0c\x1f\x00\x24\x00\x00\x00\x18\x00\x00\x00\xc8\xfe\xff\xff\x2c\x00\x00\x00\x00\x44\x0e\x10\x44\x0c\x1d\x10\x9e\x02\x9d\x04\x5c\x0c\x1f\x10\x44\x0e\x00\xde\xdd\x00\x00\x00\x10\x00\x00\x00\x40\x00\x00\x00\xcc\xfe\xff\xff\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".fini_array", 0x10DD0, "\xc0\x06\x00\x00\x00\x00\x00\x00"), -Section(".dynamic", 0x10DD8, "\x01\x00\x00\x00\x00\x00\x00\x00\x28\x00\x00\x00\x00\x00\x00\x00\x0c\x00\x00\x00\x00\x00\x00\x00\x80\x05\x00\x00\x00\x00\x00\x00\x0d\x00\x00\x00\x00\x00\x00\x00\x48\x07\x00\x00\x00\x00\x00\x00\x19\x00\x00\x00\x00\x00\x00\x00\xc8\x0d\x01\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x1a\x00\x00\x00\x00\x00\x00\x00\xd0\x0d\x01\x00\x00\x00\x00\x00\x1c\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\xf5\xfe\xff\x6f\x00\x00\x00\x00\x98\x02\x00\x00\x00\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x90\x03\x00\x00\x00\x00\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\xb8\x02\x00\x00\x00\x00\x00\x00\x0a\x00\x00\x00\x00\x00\x00\x00\x8d\x00\x00\x00\x00\x00\x00\x00\x0b\x00\x00\x00\x00\x00\x00\x00\x18\x00\x00\x00\x00\x00\x00\x00\x15\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\xe8\x0f\x01\x00\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x60\x00\x00\x00\x00\x00\x00\x00\x14\x00\x00\x00\x00\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x17\x00\x00\x00\x00\x00\x00\x00\x20\x05\x00\x00\x00\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x60\x04\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\xc0\x00\x00\x00\x00\x00\x00\x00\x09\x00\x00\x00\x00\x00\x00\x00\x18\x00\x00\x00\x00\x00\x00\x00\xfb\xff\xff\x6f\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\xfe\xff\xff\x6f\x00\x00\x00\x00\x30\x04\x00\x00\x00\x00\x00\x00\xff\xff\xff\x6f\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\xf0\xff\xff\x6f\x00\x00\x00\x00\x1e\x04\x00\x00\x00\x00\x00\x00\xf9\xff\xff\x6f\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".got", 0x10FB8, "\xd8\x0d\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x14\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".got.plt", 0x10FE8, "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xa0\x05\x00\x00\x00\x00\x00\x00\xa0\x05\x00\x00\x00\x00\x00\x00\xa0\x05\x00\x00\x00\x00\x00\x00\xa0\x05\x00\x00\x00\x00\x00\x00"), -Section(".data", 0x11020, "\x00\x00\x00\x00\x00\x00\x00\x00\x28\x10\x01\x00\x00\x00\x00\x00"), -Section(".init_array", 0x10DC8, "\x10\x07\x00\x00\x00\x00\x00\x00")]), -Memmap([Annotation(Region(0x0,0x883), Attr("segment","02 0 2180")), -Annotation(Region(0x600,0x633), Attr("symbol","\"_start\"")), -Annotation(Region(0x0,0x102), Attr("section","\".shstrtab\"")), -Annotation(Region(0x0,0x23B), Attr("section","\".strtab\"")), -Annotation(Region(0x0,0x46), Attr("section","\".comment\"")), -Annotation(Region(0x238,0x252), Attr("section","\".interp\"")), -Annotation(Region(0x254,0x277), Attr("section","\".note.gnu.build-id\"")), -Annotation(Region(0x278,0x297), Attr("section","\".note.ABI-tag\"")), -Annotation(Region(0x298,0x2B3), Attr("section","\".gnu.hash\"")), -Annotation(Region(0x2B8,0x38F), Attr("section","\".dynsym\"")), -Annotation(Region(0x390,0x41C), Attr("section","\".dynstr\"")), -Annotation(Region(0x41E,0x42F), Attr("section","\".gnu.version\"")), -Annotation(Region(0x430,0x45F), Attr("section","\".gnu.version_r\"")), -Annotation(Region(0x460,0x51F), Attr("section","\".rela.dyn\"")), -Annotation(Region(0x520,0x57F), Attr("section","\".rela.plt\"")), -Annotation(Region(0x580,0x597), Attr("section","\".init\"")), -Annotation(Region(0x5A0,0x5FF), Attr("section","\".plt\"")), -Annotation(Region(0x580,0x597), Attr("code-region","()")), -Annotation(Region(0x5A0,0x5FF), Attr("code-region","()")), -Annotation(Region(0x600,0x633), Attr("symbol-info","_start 0x600 52")), -Annotation(Region(0x634,0x647), Attr("symbol","\"call_weak_fn\"")), -Annotation(Region(0x634,0x647), Attr("symbol-info","call_weak_fn 0x634 20")), -Annotation(Region(0x714,0x73F), Attr("symbol","\"main\"")), -Annotation(Region(0x600,0x747), Attr("section","\".text\"")), -Annotation(Region(0x600,0x747), Attr("code-region","()")), -Annotation(Region(0x714,0x73F), Attr("symbol-info","main 0x714 44")), -Annotation(Region(0x740,0x747), Attr("symbol","\"get_two\"")), -Annotation(Region(0x740,0x747), Attr("symbol-info","get_two 0x740 8")), -Annotation(Region(0x748,0x75B), Attr("section","\".fini\"")), -Annotation(Region(0x748,0x75B), Attr("code-region","()")), -Annotation(Region(0x75C,0x75F), Attr("section","\".rodata\"")), -Annotation(Region(0x760,0x7A3), Attr("section","\".eh_frame_hdr\"")), -Annotation(Region(0x7A8,0x883), Attr("section","\".eh_frame\"")), -Annotation(Region(0x10DC8,0x1102F), Attr("segment","03 0x10DC8 632")), -Annotation(Region(0x10DD0,0x10DD7), Attr("section","\".fini_array\"")), -Annotation(Region(0x10DD8,0x10FB7), Attr("section","\".dynamic\"")), -Annotation(Region(0x10FB8,0x10FE7), Attr("section","\".got\"")), -Annotation(Region(0x10FE8,0x1101F), Attr("section","\".got.plt\"")), -Annotation(Region(0x11020,0x1102F), Attr("section","\".data\"")), -Annotation(Region(0x10DC8,0x10DCF), Attr("section","\".init_array\""))]), -Program(Tid(3_035, "%00000bdb"), Attrs([]), - Subs([Sub(Tid(3_012, "@__cxa_finalize"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x5D0"), -Attr("stub","()")]), "__cxa_finalize", Args([Arg(Tid(3_036, "%00000bdc"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("__cxa_finalize_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(2_414, "@__cxa_finalize"), - Attrs([Attr("address","0x5D0")]), Phis([]), -Defs([Def(Tid(2_662, "%00000a66"), Attrs([Attr("address","0x5D0"), -Attr("insn","adrp x16, #69632")]), Var("R16",Imm(64)), Int(69632,64)), -Def(Tid(2_669, "%00000a6d"), Attrs([Attr("address","0x5D4"), -Attr("insn","ldr x17, [x16, #0x8]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(2_675, "%00000a73"), Attrs([Attr("address","0x5D8"), -Attr("insn","add x16, x16, #0x8")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(8,64)))]), Jmps([Call(Tid(2_680, "%00000a78"), - Attrs([Attr("address","0x5DC"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), -Sub(Tid(3_013, "@__do_global_dtors_aux"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x6C0")]), - "__do_global_dtors_aux", Args([Arg(Tid(3_037, "%00000bdd"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("__do_global_dtors_aux_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(2_165, "@__do_global_dtors_aux"), - Attrs([Attr("address","0x6C0")]), Phis([]), -Defs([Def(Tid(2_169, "%00000879"), Attrs([Attr("address","0x6C0"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("#3",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(18446744073709551584,64))), -Def(Tid(2_175, "%0000087f"), Attrs([Attr("address","0x6C0"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("#3",Imm(64)),Var("R29",Imm(64)),LittleEndian(),64)), -Def(Tid(2_181, "%00000885"), Attrs([Attr("address","0x6C0"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("#3",Imm(64)),Int(8,64)),Var("R30",Imm(64)),LittleEndian(),64)), -Def(Tid(2_185, "%00000889"), Attrs([Attr("address","0x6C0"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("R31",Imm(64)), -Var("#3",Imm(64))), Def(Tid(2_191, "%0000088f"), - Attrs([Attr("address","0x6C4"), Attr("insn","mov x29, sp")]), - Var("R29",Imm(64)), Var("R31",Imm(64))), Def(Tid(2_199, "%00000897"), - Attrs([Attr("address","0x6C8"), Attr("insn","str x19, [sp, #0x10]")]), - Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(16,64)),Var("R19",Imm(64)),LittleEndian(),64)), -Def(Tid(2_204, "%0000089c"), Attrs([Attr("address","0x6CC"), -Attr("insn","adrp x19, #69632")]), Var("R19",Imm(64)), Int(69632,64)), -Def(Tid(2_211, "%000008a3"), Attrs([Attr("address","0x6D0"), -Attr("insn","ldrb w0, [x19, #0x30]")]), Var("R0",Imm(64)), -UNSIGNED(64,Load(Var("mem",Mem(64,8)),PLUS(Var("R19",Imm(64)),Int(48,64)),LittleEndian(),8)))]), -Jmps([Goto(Tid(2_218, "%000008aa"), Attrs([Attr("address","0x6D4"), -Attr("insn","cbnz w0, #0x28")]), - NEQ(Extract(31,0,Var("R0",Imm(64))),Int(0,32)), -Direct(Tid(2_216, "%000008a8"))), Goto(Tid(3_014, "%00000bc6"), Attrs([]), - Int(1,1), Direct(Tid(2_359, "%00000937")))])), Blk(Tid(2_359, "%00000937"), - Attrs([Attr("address","0x6D8")]), Phis([]), -Defs([Def(Tid(2_362, "%0000093a"), Attrs([Attr("address","0x6D8"), -Attr("insn","adrp x0, #65536")]), Var("R0",Imm(64)), Int(65536,64)), -Def(Tid(2_369, "%00000941"), Attrs([Attr("address","0x6DC"), -Attr("insn","ldr x0, [x0, #0xfc8]")]), Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(4040,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(2_375, "%00000947"), Attrs([Attr("address","0x6E0"), -Attr("insn","cbz x0, #0x10")]), EQ(Var("R0",Imm(64)),Int(0,64)), -Direct(Tid(2_373, "%00000945"))), Goto(Tid(3_015, "%00000bc7"), Attrs([]), - Int(1,1), Direct(Tid(2_398, "%0000095e")))])), Blk(Tid(2_398, "%0000095e"), - Attrs([Attr("address","0x6E4")]), Phis([]), -Defs([Def(Tid(2_401, "%00000961"), Attrs([Attr("address","0x6E4"), -Attr("insn","adrp x0, #69632")]), Var("R0",Imm(64)), Int(69632,64)), -Def(Tid(2_408, "%00000968"), Attrs([Attr("address","0x6E8"), -Attr("insn","ldr x0, [x0, #0x28]")]), Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(40,64)),LittleEndian(),64)), -Def(Tid(2_413, "%0000096d"), Attrs([Attr("address","0x6EC"), -Attr("insn","bl #-0x11c")]), Var("R30",Imm(64)), Int(1776,64))]), -Jmps([Call(Tid(2_416, "%00000970"), Attrs([Attr("address","0x6EC"), -Attr("insn","bl #-0x11c")]), Int(1,1), -(Direct(Tid(3_012, "@__cxa_finalize")),Direct(Tid(2_373, "%00000945"))))])), -Blk(Tid(2_373, "%00000945"), Attrs([Attr("address","0x6F0")]), Phis([]), -Defs([Def(Tid(2_381, "%0000094d"), Attrs([Attr("address","0x6F0"), -Attr("insn","bl #-0xa0")]), Var("R30",Imm(64)), Int(1780,64))]), -Jmps([Call(Tid(2_383, "%0000094f"), Attrs([Attr("address","0x6F0"), -Attr("insn","bl #-0xa0")]), Int(1,1), -(Direct(Tid(3_026, "@deregister_tm_clones")),Direct(Tid(2_385, "%00000951"))))])), -Blk(Tid(2_385, "%00000951"), Attrs([Attr("address","0x6F4")]), Phis([]), -Defs([Def(Tid(2_388, "%00000954"), Attrs([Attr("address","0x6F4"), -Attr("insn","mov w0, #0x1")]), Var("R0",Imm(64)), Int(1,64)), -Def(Tid(2_396, "%0000095c"), Attrs([Attr("address","0x6F8"), -Attr("insn","strb w0, [x19, #0x30]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R19",Imm(64)),Int(48,64)),Extract(7,0,Var("R0",Imm(64))),LittleEndian(),8))]), -Jmps([Goto(Tid(3_016, "%00000bc8"), Attrs([]), Int(1,1), -Direct(Tid(2_216, "%000008a8")))])), Blk(Tid(2_216, "%000008a8"), - Attrs([Attr("address","0x6FC")]), Phis([]), -Defs([Def(Tid(2_226, "%000008b2"), Attrs([Attr("address","0x6FC"), -Attr("insn","ldr x19, [sp, #0x10]")]), Var("R19",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(16,64)),LittleEndian(),64)), -Def(Tid(2_233, "%000008b9"), Attrs([Attr("address","0x700"), -Attr("insn","ldp x29, x30, [sp], #0x20")]), Var("R29",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(2_238, "%000008be"), Attrs([Attr("address","0x700"), -Attr("insn","ldp x29, x30, [sp], #0x20")]), Var("R30",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(2_242, "%000008c2"), Attrs([Attr("address","0x700"), -Attr("insn","ldp x29, x30, [sp], #0x20")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(32,64)))]), Jmps([Call(Tid(2_247, "%000008c7"), - Attrs([Attr("address","0x704"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), Sub(Tid(3_017, "@__libc_start_main"), - Attrs([Attr("c.proto","signed (*)(signed (*)(signed , char** , char** );* main, signed , char** , \nvoid* auxv)"), -Attr("address","0x5C0"), Attr("stub","()")]), "__libc_start_main", - Args([Arg(Tid(3_038, "%00000bde"), - Attrs([Attr("c.layout","**[ : 64]"), -Attr("c.data","Top:u64 ptr ptr"), -Attr("c.type","signed (*)(signed , char** , char** );*")]), - Var("__libc_start_main_main",Imm(64)), Var("R0",Imm(64)), In()), -Arg(Tid(3_039, "%00000bdf"), Attrs([Attr("c.layout","[signed : 32]"), -Attr("c.data","Top:u32"), Attr("c.type","signed")]), - Var("__libc_start_main_arg2",Imm(32)), LOW(32,Var("R1",Imm(64))), In()), -Arg(Tid(3_040, "%00000be0"), Attrs([Attr("c.layout","**[char : 8]"), -Attr("c.data","Top:u8 ptr ptr"), Attr("c.type","char**")]), - Var("__libc_start_main_arg3",Imm(64)), Var("R2",Imm(64)), Both()), -Arg(Tid(3_041, "%00000be1"), Attrs([Attr("c.layout","*[ : 8]"), -Attr("c.data","{} ptr"), Attr("c.type","void*")]), - Var("__libc_start_main_auxv",Imm(64)), Var("R3",Imm(64)), Both()), -Arg(Tid(3_042, "%00000be2"), Attrs([Attr("c.layout","[signed : 32]"), -Attr("c.data","Top:u32"), Attr("c.type","signed")]), - Var("__libc_start_main_result",Imm(32)), LOW(32,Var("R0",Imm(64))), -Out())]), Blks([Blk(Tid(1_998, "@__libc_start_main"), - Attrs([Attr("address","0x5C0")]), Phis([]), -Defs([Def(Tid(2_640, "%00000a50"), Attrs([Attr("address","0x5C0"), -Attr("insn","adrp x16, #69632")]), Var("R16",Imm(64)), Int(69632,64)), -Def(Tid(2_647, "%00000a57"), Attrs([Attr("address","0x5C4"), -Attr("insn","ldr x17, [x16]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R16",Imm(64)),LittleEndian(),64)), -Def(Tid(2_653, "%00000a5d"), Attrs([Attr("address","0x5C8"), -Attr("insn","add x16, x16, #0x0")]), Var("R16",Imm(64)), -Var("R16",Imm(64)))]), Jmps([Call(Tid(2_658, "%00000a62"), - Attrs([Attr("address","0x5CC"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), Sub(Tid(3_018, "@_fini"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x748")]), - "_fini", Args([Arg(Tid(3_043, "%00000be3"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("_fini_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(1_554, "@_fini"), - Attrs([Attr("address","0x748")]), Phis([]), -Defs([Def(Tid(1_560, "%00000618"), Attrs([Attr("address","0x74C"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("#0",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(18446744073709551600,64))), -Def(Tid(1_566, "%0000061e"), Attrs([Attr("address","0x74C"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("#0",Imm(64)),Var("R29",Imm(64)),LittleEndian(),64)), -Def(Tid(1_572, "%00000624"), Attrs([Attr("address","0x74C"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("#0",Imm(64)),Int(8,64)),Var("R30",Imm(64)),LittleEndian(),64)), -Def(Tid(1_576, "%00000628"), Attrs([Attr("address","0x74C"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("R31",Imm(64)), -Var("#0",Imm(64))), Def(Tid(1_582, "%0000062e"), - Attrs([Attr("address","0x750"), Attr("insn","mov x29, sp")]), - Var("R29",Imm(64)), Var("R31",Imm(64))), Def(Tid(1_589, "%00000635"), - Attrs([Attr("address","0x754"), Attr("insn","ldp x29, x30, [sp], #0x10")]), - Var("R29",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(1_594, "%0000063a"), Attrs([Attr("address","0x754"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R30",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(1_598, "%0000063e"), Attrs([Attr("address","0x754"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(16,64)))]), Jmps([Call(Tid(1_603, "%00000643"), - Attrs([Attr("address","0x758"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), Sub(Tid(3_019, "@_init"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x580")]), - "_init", Args([Arg(Tid(3_044, "%00000be4"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("_init_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(2_841, "@_init"), - Attrs([Attr("address","0x580")]), Phis([]), -Defs([Def(Tid(2_847, "%00000b1f"), Attrs([Attr("address","0x584"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("#6",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(18446744073709551600,64))), -Def(Tid(2_853, "%00000b25"), Attrs([Attr("address","0x584"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("#6",Imm(64)),Var("R29",Imm(64)),LittleEndian(),64)), -Def(Tid(2_859, "%00000b2b"), Attrs([Attr("address","0x584"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("#6",Imm(64)),Int(8,64)),Var("R30",Imm(64)),LittleEndian(),64)), -Def(Tid(2_863, "%00000b2f"), Attrs([Attr("address","0x584"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("R31",Imm(64)), -Var("#6",Imm(64))), Def(Tid(2_869, "%00000b35"), - Attrs([Attr("address","0x588"), Attr("insn","mov x29, sp")]), - Var("R29",Imm(64)), Var("R31",Imm(64))), Def(Tid(2_874, "%00000b3a"), - Attrs([Attr("address","0x58C"), Attr("insn","bl #0xa8")]), - Var("R30",Imm(64)), Int(1424,64))]), Jmps([Call(Tid(2_876, "%00000b3c"), - Attrs([Attr("address","0x58C"), Attr("insn","bl #0xa8")]), Int(1,1), -(Direct(Tid(3_024, "@call_weak_fn")),Direct(Tid(2_878, "%00000b3e"))))])), -Blk(Tid(2_878, "%00000b3e"), Attrs([Attr("address","0x590")]), Phis([]), -Defs([Def(Tid(2_883, "%00000b43"), Attrs([Attr("address","0x590"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R29",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(2_888, "%00000b48"), Attrs([Attr("address","0x590"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R30",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(2_892, "%00000b4c"), Attrs([Attr("address","0x590"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(16,64)))]), Jmps([Call(Tid(2_897, "%00000b51"), - Attrs([Attr("address","0x594"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), Sub(Tid(3_020, "@_start"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x600"), -Attr("stub","()"), Attr("entry-point","()")]), "_start", - Args([Arg(Tid(3_045, "%00000be5"), Attrs([Attr("c.layout","[signed : 32]"), -Attr("c.data","Top:u32"), Attr("c.type","signed")]), - Var("_start_result",Imm(32)), LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(1_935, "@_start"), Attrs([Attr("address","0x600")]), Phis([]), -Defs([Def(Tid(1_940, "%00000794"), Attrs([Attr("address","0x604"), -Attr("insn","mov x29, #0x0")]), Var("R29",Imm(64)), Int(0,64)), -Def(Tid(1_945, "%00000799"), Attrs([Attr("address","0x608"), -Attr("insn","mov x30, #0x0")]), Var("R30",Imm(64)), Int(0,64)), -Def(Tid(1_951, "%0000079f"), Attrs([Attr("address","0x60C"), -Attr("insn","mov x5, x0")]), Var("R5",Imm(64)), Var("R0",Imm(64))), -Def(Tid(1_958, "%000007a6"), Attrs([Attr("address","0x610"), -Attr("insn","ldr x1, [sp]")]), Var("R1",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(1_964, "%000007ac"), Attrs([Attr("address","0x614"), -Attr("insn","add x2, sp, #0x8")]), Var("R2",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(8,64))), Def(Tid(1_970, "%000007b2"), - Attrs([Attr("address","0x618"), Attr("insn","mov x6, sp")]), - Var("R6",Imm(64)), Var("R31",Imm(64))), Def(Tid(1_975, "%000007b7"), - Attrs([Attr("address","0x61C"), Attr("insn","adrp x0, #65536")]), - Var("R0",Imm(64)), Int(65536,64)), Def(Tid(1_982, "%000007be"), - Attrs([Attr("address","0x620"), Attr("insn","ldr x0, [x0, #0xfd8]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(4056,64)),LittleEndian(),64)), -Def(Tid(1_987, "%000007c3"), Attrs([Attr("address","0x624"), -Attr("insn","mov x3, #0x0")]), Var("R3",Imm(64)), Int(0,64)), -Def(Tid(1_992, "%000007c8"), Attrs([Attr("address","0x628"), -Attr("insn","mov x4, #0x0")]), Var("R4",Imm(64)), Int(0,64)), -Def(Tid(1_997, "%000007cd"), Attrs([Attr("address","0x62C"), -Attr("insn","bl #-0x6c")]), Var("R30",Imm(64)), Int(1584,64))]), -Jmps([Call(Tid(2_000, "%000007d0"), Attrs([Attr("address","0x62C"), -Attr("insn","bl #-0x6c")]), Int(1,1), -(Direct(Tid(3_017, "@__libc_start_main")),Direct(Tid(2_002, "%000007d2"))))])), -Blk(Tid(2_002, "%000007d2"), Attrs([Attr("address","0x630")]), Phis([]), -Defs([Def(Tid(2_005, "%000007d5"), Attrs([Attr("address","0x630"), -Attr("insn","bl #-0x40")]), Var("R30",Imm(64)), Int(1588,64))]), -Jmps([Call(Tid(2_008, "%000007d8"), Attrs([Attr("address","0x630"), -Attr("insn","bl #-0x40")]), Int(1,1), -(Direct(Tid(3_023, "@abort")),Direct(Tid(3_021, "%00000bcd"))))])), -Blk(Tid(3_021, "%00000bcd"), Attrs([]), Phis([]), Defs([]), -Jmps([Call(Tid(3_022, "%00000bce"), Attrs([]), Int(1,1), -(Direct(Tid(3_024, "@call_weak_fn")),))]))])), Sub(Tid(3_023, "@abort"), - Attrs([Attr("noreturn","()"), Attr("c.proto","void (*)(void)"), -Attr("address","0x5F0"), Attr("stub","()")]), "abort", Args([]), -Blks([Blk(Tid(2_006, "@abort"), Attrs([Attr("address","0x5F0")]), Phis([]), -Defs([Def(Tid(2_706, "%00000a92"), Attrs([Attr("address","0x5F0"), -Attr("insn","adrp x16, #69632")]), Var("R16",Imm(64)), Int(69632,64)), -Def(Tid(2_713, "%00000a99"), Attrs([Attr("address","0x5F4"), -Attr("insn","ldr x17, [x16, #0x18]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(24,64)),LittleEndian(),64)), -Def(Tid(2_719, "%00000a9f"), Attrs([Attr("address","0x5F8"), -Attr("insn","add x16, x16, #0x18")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(24,64)))]), Jmps([Call(Tid(2_724, "%00000aa4"), - Attrs([Attr("address","0x5FC"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), Sub(Tid(3_024, "@call_weak_fn"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x634")]), - "call_weak_fn", Args([Arg(Tid(3_046, "%00000be6"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("call_weak_fn_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(2_010, "@call_weak_fn"), - Attrs([Attr("address","0x634")]), Phis([]), -Defs([Def(Tid(2_013, "%000007dd"), Attrs([Attr("address","0x634"), -Attr("insn","adrp x0, #65536")]), Var("R0",Imm(64)), Int(65536,64)), -Def(Tid(2_020, "%000007e4"), Attrs([Attr("address","0x638"), -Attr("insn","ldr x0, [x0, #0xfd0]")]), Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(4048,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(2_026, "%000007ea"), Attrs([Attr("address","0x63C"), -Attr("insn","cbz x0, #0x8")]), EQ(Var("R0",Imm(64)),Int(0,64)), -Direct(Tid(2_024, "%000007e8"))), Goto(Tid(3_025, "%00000bd1"), Attrs([]), - Int(1,1), Direct(Tid(2_478, "%000009ae")))])), Blk(Tid(2_024, "%000007e8"), - Attrs([Attr("address","0x644")]), Phis([]), Defs([]), -Jmps([Call(Tid(2_032, "%000007f0"), Attrs([Attr("address","0x644"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))])), -Blk(Tid(2_478, "%000009ae"), Attrs([Attr("address","0x640")]), Phis([]), -Defs([]), Jmps([Goto(Tid(2_481, "%000009b1"), Attrs([Attr("address","0x640"), -Attr("insn","b #-0x60")]), Int(1,1), -Direct(Tid(2_479, "@__gmon_start__")))])), Blk(Tid(2_479, "@__gmon_start__"), - Attrs([Attr("address","0x5E0")]), Phis([]), -Defs([Def(Tid(2_684, "%00000a7c"), Attrs([Attr("address","0x5E0"), -Attr("insn","adrp x16, #69632")]), Var("R16",Imm(64)), Int(69632,64)), -Def(Tid(2_691, "%00000a83"), Attrs([Attr("address","0x5E4"), -Attr("insn","ldr x17, [x16, #0x10]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(16,64)),LittleEndian(),64)), -Def(Tid(2_697, "%00000a89"), Attrs([Attr("address","0x5E8"), -Attr("insn","add x16, x16, #0x10")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(16,64)))]), Jmps([Call(Tid(2_702, "%00000a8e"), - Attrs([Attr("address","0x5EC"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), -Sub(Tid(3_026, "@deregister_tm_clones"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x650")]), - "deregister_tm_clones", Args([Arg(Tid(3_047, "%00000be7"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("deregister_tm_clones_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(2_038, "@deregister_tm_clones"), - Attrs([Attr("address","0x650")]), Phis([]), -Defs([Def(Tid(2_041, "%000007f9"), Attrs([Attr("address","0x650"), -Attr("insn","adrp x0, #69632")]), Var("R0",Imm(64)), Int(69632,64)), -Def(Tid(2_047, "%000007ff"), Attrs([Attr("address","0x654"), -Attr("insn","add x0, x0, #0x30")]), Var("R0",Imm(64)), -PLUS(Var("R0",Imm(64)),Int(48,64))), Def(Tid(2_052, "%00000804"), - Attrs([Attr("address","0x658"), Attr("insn","adrp x1, #69632")]), - Var("R1",Imm(64)), Int(69632,64)), Def(Tid(2_058, "%0000080a"), - Attrs([Attr("address","0x65C"), Attr("insn","add x1, x1, #0x30")]), - Var("R1",Imm(64)), PLUS(Var("R1",Imm(64)),Int(48,64))), -Def(Tid(2_064, "%00000810"), Attrs([Attr("address","0x660"), -Attr("insn","cmp x1, x0")]), Var("#1",Imm(64)), NOT(Var("R0",Imm(64)))), -Def(Tid(2_069, "%00000815"), Attrs([Attr("address","0x660"), -Attr("insn","cmp x1, x0")]), Var("#2",Imm(64)), -PLUS(Var("R1",Imm(64)),NOT(Var("R0",Imm(64))))), Def(Tid(2_075, "%0000081b"), - Attrs([Attr("address","0x660"), Attr("insn","cmp x1, x0")]), - Var("VF",Imm(1)), -NEQ(SIGNED(65,PLUS(Var("#2",Imm(64)),Int(1,64))),PLUS(PLUS(SIGNED(65,Var("R1",Imm(64))),SIGNED(65,Var("#1",Imm(64)))),Int(1,65)))), -Def(Tid(2_081, "%00000821"), Attrs([Attr("address","0x660"), -Attr("insn","cmp x1, x0")]), Var("CF",Imm(1)), -NEQ(UNSIGNED(65,PLUS(Var("#2",Imm(64)),Int(1,64))),PLUS(PLUS(UNSIGNED(65,Var("R1",Imm(64))),UNSIGNED(65,Var("#1",Imm(64)))),Int(1,65)))), -Def(Tid(2_085, "%00000825"), Attrs([Attr("address","0x660"), -Attr("insn","cmp x1, x0")]), Var("ZF",Imm(1)), -EQ(PLUS(Var("#2",Imm(64)),Int(1,64)),Int(0,64))), -Def(Tid(2_089, "%00000829"), Attrs([Attr("address","0x660"), -Attr("insn","cmp x1, x0")]), Var("NF",Imm(1)), -Extract(63,63,PLUS(Var("#2",Imm(64)),Int(1,64))))]), -Jmps([Goto(Tid(2_095, "%0000082f"), Attrs([Attr("address","0x664"), -Attr("insn","b.eq #0x18")]), EQ(Var("ZF",Imm(1)),Int(1,1)), -Direct(Tid(2_093, "%0000082d"))), Goto(Tid(3_027, "%00000bd3"), Attrs([]), - Int(1,1), Direct(Tid(2_448, "%00000990")))])), Blk(Tid(2_448, "%00000990"), - Attrs([Attr("address","0x668")]), Phis([]), -Defs([Def(Tid(2_451, "%00000993"), Attrs([Attr("address","0x668"), -Attr("insn","adrp x1, #65536")]), Var("R1",Imm(64)), Int(65536,64)), -Def(Tid(2_458, "%0000099a"), Attrs([Attr("address","0x66C"), -Attr("insn","ldr x1, [x1, #0xfc0]")]), Var("R1",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R1",Imm(64)),Int(4032,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(2_463, "%0000099f"), Attrs([Attr("address","0x670"), -Attr("insn","cbz x1, #0xc")]), EQ(Var("R1",Imm(64)),Int(0,64)), -Direct(Tid(2_093, "%0000082d"))), Goto(Tid(3_028, "%00000bd4"), Attrs([]), - Int(1,1), Direct(Tid(2_467, "%000009a3")))])), Blk(Tid(2_093, "%0000082d"), - Attrs([Attr("address","0x67C")]), Phis([]), Defs([]), -Jmps([Call(Tid(2_101, "%00000835"), Attrs([Attr("address","0x67C"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))])), -Blk(Tid(2_467, "%000009a3"), Attrs([Attr("address","0x674")]), Phis([]), -Defs([Def(Tid(2_471, "%000009a7"), Attrs([Attr("address","0x674"), -Attr("insn","mov x16, x1")]), Var("R16",Imm(64)), Var("R1",Imm(64)))]), -Jmps([Call(Tid(2_476, "%000009ac"), Attrs([Attr("address","0x678"), -Attr("insn","br x16")]), Int(1,1), (Indirect(Var("R16",Imm(64))),))]))])), -Sub(Tid(3_029, "@frame_dummy"), Attrs([Attr("c.proto","signed (*)(void)"), -Attr("address","0x710")]), "frame_dummy", Args([Arg(Tid(3_048, "%00000be8"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("frame_dummy_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(2_253, "@frame_dummy"), - Attrs([Attr("address","0x710")]), Phis([]), Defs([]), -Jmps([Call(Tid(2_255, "%000008cf"), Attrs([Attr("address","0x710"), -Attr("insn","b #-0x90")]), Int(1,1), -(Direct(Tid(3_032, "@register_tm_clones")),))]))])), -Sub(Tid(3_030, "@get_two"), Attrs([Attr("c.proto","signed (*)(void)"), -Attr("address","0x740")]), "get_two", Args([Arg(Tid(3_049, "%00000be9"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("get_two_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(2_307, "@get_two"), - Attrs([Attr("address","0x740")]), Phis([]), -Defs([Def(Tid(2_313, "%00000909"), Attrs([Attr("address","0x740"), -Attr("insn","mov w0, #0x2")]), Var("R0",Imm(64)), Int(2,64))]), -Jmps([Call(Tid(2_318, "%0000090e"), Attrs([Attr("address","0x744"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))]))])), -Sub(Tid(3_031, "@main"), - Attrs([Attr("c.proto","signed (*)(signed argc, const char** argv)"), -Attr("address","0x714")]), "main", Args([Arg(Tid(3_050, "%00000bea"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("main_argc",Imm(32)), -LOW(32,Var("R0",Imm(64))), In()), Arg(Tid(3_051, "%00000beb"), - Attrs([Attr("c.layout","**[char : 8]"), Attr("c.data","Top:u8 ptr ptr"), -Attr("c.type"," const char**")]), Var("main_argv",Imm(64)), -Var("R1",Imm(64)), Both()), Arg(Tid(3_052, "%00000bec"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("main_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(2_257, "@main"), - Attrs([Attr("address","0x714")]), Phis([]), -Defs([Def(Tid(2_261, "%000008d5"), Attrs([Attr("address","0x714"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("#4",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(18446744073709551600,64))), -Def(Tid(2_267, "%000008db"), Attrs([Attr("address","0x714"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("#4",Imm(64)),Var("R29",Imm(64)),LittleEndian(),64)), -Def(Tid(2_273, "%000008e1"), Attrs([Attr("address","0x714"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("#4",Imm(64)),Int(8,64)),Var("R30",Imm(64)),LittleEndian(),64)), -Def(Tid(2_277, "%000008e5"), Attrs([Attr("address","0x714"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("R31",Imm(64)), -Var("#4",Imm(64))), Def(Tid(2_283, "%000008eb"), - Attrs([Attr("address","0x718"), Attr("insn","mov x29, sp")]), - Var("R29",Imm(64)), Var("R31",Imm(64))), Def(Tid(2_288, "%000008f0"), - Attrs([Attr("address","0x71C"), Attr("insn","adrp x9, #69632")]), - Var("R9",Imm(64)), Int(69632,64)), Def(Tid(2_293, "%000008f5"), - Attrs([Attr("address","0x720"), Attr("insn","mov w8, #0x1")]), - Var("R8",Imm(64)), Int(1,64)), Def(Tid(2_301, "%000008fd"), - Attrs([Attr("address","0x724"), Attr("insn","str w8, [x9, #0x34]")]), - Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R9",Imm(64)),Int(52,64)),Extract(31,0,Var("R8",Imm(64))),LittleEndian(),32)), -Def(Tid(2_306, "%00000902"), Attrs([Attr("address","0x728"), -Attr("insn","bl #0x18")]), Var("R30",Imm(64)), Int(1836,64))]), -Jmps([Call(Tid(2_309, "%00000905"), Attrs([Attr("address","0x728"), -Attr("insn","bl #0x18")]), Int(1,1), -(Direct(Tid(3_030, "@get_two")),Direct(Tid(2_320, "%00000910"))))])), -Blk(Tid(2_320, "%00000910"), Attrs([Attr("address","0x72C")]), Phis([]), -Defs([Def(Tid(2_323, "%00000913"), Attrs([Attr("address","0x72C"), -Attr("insn","adrp x8, #69632")]), Var("R8",Imm(64)), Int(69632,64)), -Def(Tid(2_331, "%0000091b"), Attrs([Attr("address","0x730"), -Attr("insn","str w0, [x8, #0x38]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R8",Imm(64)),Int(56,64)),Extract(31,0,Var("R0",Imm(64))),LittleEndian(),32)), -Def(Tid(2_336, "%00000920"), Attrs([Attr("address","0x734"), -Attr("insn","mov w0, wzr")]), Var("R0",Imm(64)), Int(0,64)), -Def(Tid(2_343, "%00000927"), Attrs([Attr("address","0x738"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R29",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(2_348, "%0000092c"), Attrs([Attr("address","0x738"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R30",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(2_352, "%00000930"), Attrs([Attr("address","0x738"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(16,64)))]), Jmps([Call(Tid(2_357, "%00000935"), - Attrs([Attr("address","0x73C"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), -Sub(Tid(3_032, "@register_tm_clones"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x680")]), - "register_tm_clones", Args([Arg(Tid(3_053, "%00000bed"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("register_tm_clones_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(2_103, "@register_tm_clones"), - Attrs([Attr("address","0x680")]), Phis([]), -Defs([Def(Tid(2_106, "%0000083a"), Attrs([Attr("address","0x680"), -Attr("insn","adrp x0, #69632")]), Var("R0",Imm(64)), Int(69632,64)), -Def(Tid(2_112, "%00000840"), Attrs([Attr("address","0x684"), -Attr("insn","add x0, x0, #0x30")]), Var("R0",Imm(64)), -PLUS(Var("R0",Imm(64)),Int(48,64))), Def(Tid(2_117, "%00000845"), - Attrs([Attr("address","0x688"), Attr("insn","adrp x1, #69632")]), - Var("R1",Imm(64)), Int(69632,64)), Def(Tid(2_123, "%0000084b"), - Attrs([Attr("address","0x68C"), Attr("insn","add x1, x1, #0x30")]), - Var("R1",Imm(64)), PLUS(Var("R1",Imm(64)),Int(48,64))), -Def(Tid(2_130, "%00000852"), Attrs([Attr("address","0x690"), -Attr("insn","sub x1, x1, x0")]), Var("R1",Imm(64)), -PLUS(PLUS(Var("R1",Imm(64)),NOT(Var("R0",Imm(64)))),Int(1,64))), -Def(Tid(2_136, "%00000858"), Attrs([Attr("address","0x694"), -Attr("insn","lsr x2, x1, #63")]), Var("R2",Imm(64)), -Concat(Int(0,63),Extract(63,63,Var("R1",Imm(64))))), -Def(Tid(2_143, "%0000085f"), Attrs([Attr("address","0x698"), -Attr("insn","add x1, x2, x1, asr #3")]), Var("R1",Imm(64)), -PLUS(Var("R2",Imm(64)),ARSHIFT(Var("R1",Imm(64)),Int(3,3)))), -Def(Tid(2_149, "%00000865"), Attrs([Attr("address","0x69C"), -Attr("insn","asr x1, x1, #1")]), Var("R1",Imm(64)), -SIGNED(64,Extract(63,1,Var("R1",Imm(64)))))]), -Jmps([Goto(Tid(2_155, "%0000086b"), Attrs([Attr("address","0x6A0"), -Attr("insn","cbz x1, #0x18")]), EQ(Var("R1",Imm(64)),Int(0,64)), -Direct(Tid(2_153, "%00000869"))), Goto(Tid(3_033, "%00000bd9"), Attrs([]), - Int(1,1), Direct(Tid(2_418, "%00000972")))])), Blk(Tid(2_418, "%00000972"), - Attrs([Attr("address","0x6A4")]), Phis([]), -Defs([Def(Tid(2_421, "%00000975"), Attrs([Attr("address","0x6A4"), -Attr("insn","adrp x2, #65536")]), Var("R2",Imm(64)), Int(65536,64)), -Def(Tid(2_428, "%0000097c"), Attrs([Attr("address","0x6A8"), -Attr("insn","ldr x2, [x2, #0xfe0]")]), Var("R2",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R2",Imm(64)),Int(4064,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(2_433, "%00000981"), Attrs([Attr("address","0x6AC"), -Attr("insn","cbz x2, #0xc")]), EQ(Var("R2",Imm(64)),Int(0,64)), -Direct(Tid(2_153, "%00000869"))), Goto(Tid(3_034, "%00000bda"), Attrs([]), - Int(1,1), Direct(Tid(2_437, "%00000985")))])), Blk(Tid(2_153, "%00000869"), - Attrs([Attr("address","0x6B8")]), Phis([]), Defs([]), -Jmps([Call(Tid(2_161, "%00000871"), Attrs([Attr("address","0x6B8"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))])), -Blk(Tid(2_437, "%00000985"), Attrs([Attr("address","0x6B0")]), Phis([]), -Defs([Def(Tid(2_441, "%00000989"), Attrs([Attr("address","0x6B0"), -Attr("insn","mov x16, x2")]), Var("R16",Imm(64)), Var("R2",Imm(64)))]), -Jmps([Call(Tid(2_446, "%0000098e"), Attrs([Attr("address","0x6B4"), -Attr("insn","br x16")]), Int(1,1), -(Indirect(Var("R16",Imm(64))),))]))]))]))) \ No newline at end of file diff --git a/src/test/correct/function/clang/function.bir b/src/test/correct/function/clang/function.bir deleted file mode 100644 index a0183f361..000000000 --- a/src/test/correct/function/clang/function.bir +++ /dev/null @@ -1,248 +0,0 @@ -00000bdb: program -00000bc4: sub __cxa_finalize(__cxa_finalize_result) -00000bdc: __cxa_finalize_result :: out u32 = low:32[R0] - -0000096e: -00000a66: R16 := 0x11000 -00000a6d: R17 := mem[R16 + 8, el]:u64 -00000a73: R16 := R16 + 8 -00000a78: call R17 with noreturn - -00000bc5: sub __do_global_dtors_aux(__do_global_dtors_aux_result) -00000bdd: __do_global_dtors_aux_result :: out u32 = low:32[R0] - -00000875: -00000879: #3 := R31 - 0x20 -0000087f: mem := mem with [#3, el]:u64 <- R29 -00000885: mem := mem with [#3 + 8, el]:u64 <- R30 -00000889: R31 := #3 -0000088f: R29 := R31 -00000897: mem := mem with [R31 + 0x10, el]:u64 <- R19 -0000089c: R19 := 0x11000 -000008a3: R0 := pad:64[mem[R19 + 0x30]] -000008aa: when 31:0[R0] <> 0 goto %000008a8 -00000bc6: goto %00000937 - -00000937: -0000093a: R0 := 0x10000 -00000941: R0 := mem[R0 + 0xFC8, el]:u64 -00000947: when R0 = 0 goto %00000945 -00000bc7: goto %0000095e - -0000095e: -00000961: R0 := 0x11000 -00000968: R0 := mem[R0 + 0x28, el]:u64 -0000096d: R30 := 0x6F0 -00000970: call @__cxa_finalize with return %00000945 - -00000945: -0000094d: R30 := 0x6F4 -0000094f: call @deregister_tm_clones with return %00000951 - -00000951: -00000954: R0 := 1 -0000095c: mem := mem with [R19 + 0x30] <- 7:0[R0] -00000bc8: goto %000008a8 - -000008a8: -000008b2: R19 := mem[R31 + 0x10, el]:u64 -000008b9: R29 := mem[R31, el]:u64 -000008be: R30 := mem[R31 + 8, el]:u64 -000008c2: R31 := R31 + 0x20 -000008c7: call R30 with noreturn - -00000bc9: sub __libc_start_main(__libc_start_main_main, __libc_start_main_arg2, __libc_start_main_arg3, __libc_start_main_auxv, __libc_start_main_result) -00000bde: __libc_start_main_main :: in u64 = R0 -00000bdf: __libc_start_main_arg2 :: in u32 = low:32[R1] -00000be0: __libc_start_main_arg3 :: in out u64 = R2 -00000be1: __libc_start_main_auxv :: in out u64 = R3 -00000be2: __libc_start_main_result :: out u32 = low:32[R0] - -000007ce: -00000a50: R16 := 0x11000 -00000a57: R17 := mem[R16, el]:u64 -00000a5d: R16 := R16 -00000a62: call R17 with noreturn - -00000bca: sub _fini(_fini_result) -00000be3: _fini_result :: out u32 = low:32[R0] - -00000612: -00000618: #0 := R31 - 0x10 -0000061e: mem := mem with [#0, el]:u64 <- R29 -00000624: mem := mem with [#0 + 8, el]:u64 <- R30 -00000628: R31 := #0 -0000062e: R29 := R31 -00000635: R29 := mem[R31, el]:u64 -0000063a: R30 := mem[R31 + 8, el]:u64 -0000063e: R31 := R31 + 0x10 -00000643: call R30 with noreturn - -00000bcb: sub _init(_init_result) -00000be4: _init_result :: out u32 = low:32[R0] - -00000b19: -00000b1f: #6 := R31 - 0x10 -00000b25: mem := mem with [#6, el]:u64 <- R29 -00000b2b: mem := mem with [#6 + 8, el]:u64 <- R30 -00000b2f: R31 := #6 -00000b35: R29 := R31 -00000b3a: R30 := 0x590 -00000b3c: call @call_weak_fn with return %00000b3e - -00000b3e: -00000b43: R29 := mem[R31, el]:u64 -00000b48: R30 := mem[R31 + 8, el]:u64 -00000b4c: R31 := R31 + 0x10 -00000b51: call R30 with noreturn - -00000bcc: sub _start(_start_result) -00000be5: _start_result :: out u32 = low:32[R0] - -0000078f: -00000794: R29 := 0 -00000799: R30 := 0 -0000079f: R5 := R0 -000007a6: R1 := mem[R31, el]:u64 -000007ac: R2 := R31 + 8 -000007b2: R6 := R31 -000007b7: R0 := 0x10000 -000007be: R0 := mem[R0 + 0xFD8, el]:u64 -000007c3: R3 := 0 -000007c8: R4 := 0 -000007cd: R30 := 0x630 -000007d0: call @__libc_start_main with return %000007d2 - -000007d2: -000007d5: R30 := 0x634 -000007d8: call @abort with return %00000bcd - -00000bcd: -00000bce: call @call_weak_fn with noreturn - -00000bcf: sub abort() - - -000007d6: -00000a92: R16 := 0x11000 -00000a99: R17 := mem[R16 + 0x18, el]:u64 -00000a9f: R16 := R16 + 0x18 -00000aa4: call R17 with noreturn - -00000bd0: sub call_weak_fn(call_weak_fn_result) -00000be6: call_weak_fn_result :: out u32 = low:32[R0] - -000007da: -000007dd: R0 := 0x10000 -000007e4: R0 := mem[R0 + 0xFD0, el]:u64 -000007ea: when R0 = 0 goto %000007e8 -00000bd1: goto %000009ae - -000007e8: -000007f0: call R30 with noreturn - -000009ae: -000009b1: goto @__gmon_start__ - -000009af: -00000a7c: R16 := 0x11000 -00000a83: R17 := mem[R16 + 0x10, el]:u64 -00000a89: R16 := R16 + 0x10 -00000a8e: call R17 with noreturn - -00000bd2: sub deregister_tm_clones(deregister_tm_clones_result) -00000be7: deregister_tm_clones_result :: out u32 = low:32[R0] - -000007f6: -000007f9: R0 := 0x11000 -000007ff: R0 := R0 + 0x30 -00000804: R1 := 0x11000 -0000080a: R1 := R1 + 0x30 -00000810: #1 := ~R0 -00000815: #2 := R1 + ~R0 -0000081b: VF := extend:65[#2 + 1] <> extend:65[R1] + extend:65[#1] + 1 -00000821: CF := pad:65[#2 + 1] <> pad:65[R1] + pad:65[#1] + 1 -00000825: ZF := #2 + 1 = 0 -00000829: NF := 63:63[#2 + 1] -0000082f: when ZF goto %0000082d -00000bd3: goto %00000990 - -00000990: -00000993: R1 := 0x10000 -0000099a: R1 := mem[R1 + 0xFC0, el]:u64 -0000099f: when R1 = 0 goto %0000082d -00000bd4: goto %000009a3 - -0000082d: -00000835: call R30 with noreturn - -000009a3: -000009a7: R16 := R1 -000009ac: call R16 with noreturn - -00000bd5: sub frame_dummy(frame_dummy_result) -00000be8: frame_dummy_result :: out u32 = low:32[R0] - -000008cd: -000008cf: call @register_tm_clones with noreturn - -00000bd6: sub get_two(get_two_result) -00000be9: get_two_result :: out u32 = low:32[R0] - -00000903: -00000909: R0 := 2 -0000090e: call R30 with noreturn - -00000bd7: sub main(main_argc, main_argv, main_result) -00000bea: main_argc :: in u32 = low:32[R0] -00000beb: main_argv :: in out u64 = R1 -00000bec: main_result :: out u32 = low:32[R0] - -000008d1: -000008d5: #4 := R31 - 0x10 -000008db: mem := mem with [#4, el]:u64 <- R29 -000008e1: mem := mem with [#4 + 8, el]:u64 <- R30 -000008e5: R31 := #4 -000008eb: R29 := R31 -000008f0: R9 := 0x11000 -000008f5: R8 := 1 -000008fd: mem := mem with [R9 + 0x34, el]:u32 <- 31:0[R8] -00000902: R30 := 0x72C -00000905: call @get_two with return %00000910 - -00000910: -00000913: R8 := 0x11000 -0000091b: mem := mem with [R8 + 0x38, el]:u32 <- 31:0[R0] -00000920: R0 := 0 -00000927: R29 := mem[R31, el]:u64 -0000092c: R30 := mem[R31 + 8, el]:u64 -00000930: R31 := R31 + 0x10 -00000935: call R30 with noreturn - -00000bd8: sub register_tm_clones(register_tm_clones_result) -00000bed: register_tm_clones_result :: out u32 = low:32[R0] - -00000837: -0000083a: R0 := 0x11000 -00000840: R0 := R0 + 0x30 -00000845: R1 := 0x11000 -0000084b: R1 := R1 + 0x30 -00000852: R1 := R1 + ~R0 + 1 -00000858: R2 := 0.63:63[R1] -0000085f: R1 := R2 + (R1 ~>> 3) -00000865: R1 := extend:64[63:1[R1]] -0000086b: when R1 = 0 goto %00000869 -00000bd9: goto %00000972 - -00000972: -00000975: R2 := 0x10000 -0000097c: R2 := mem[R2 + 0xFE0, el]:u64 -00000981: when R2 = 0 goto %00000869 -00000bda: goto %00000985 - -00000869: -00000871: call R30 with noreturn - -00000985: -00000989: R16 := R2 -0000098e: call R16 with noreturn diff --git a/src/test/correct/function/clang/function.expected b/src/test/correct/function/clang/function.expected index 0e5ed908c..979be9978 100644 --- a/src/test/correct/function/clang/function.expected +++ b/src/test/correct/function/clang/function.expected @@ -1,23 +1,19 @@ var {:extern} Gamma_R0: bool; -var {:extern} Gamma_R29: bool; -var {:extern} Gamma_R30: bool; -var {:extern} Gamma_R31: bool; +var {:extern} Gamma_R10: bool; +var {:extern} Gamma_R11: bool; var {:extern} Gamma_R8: bool; var {:extern} Gamma_R9: bool; var {:extern} Gamma_mem: [bv64]bool; -var {:extern} Gamma_stack: [bv64]bool; var {:extern} R0: bv64; -var {:extern} R29: bv64; -var {:extern} R30: bv64; -var {:extern} R31: bv64; +var {:extern} R10: bv64; +var {:extern} R11: bv64; var {:extern} R8: bv64; var {:extern} R9: bv64; var {:extern} mem: [bv64]bv8; -var {:extern} stack: [bv64]bv8; const {:extern} $x_addr: bv64; -axiom ($x_addr == 69684bv64); +axiom ($x_addr == 131092bv64); const {:extern} $y_addr: bv64; -axiom ($y_addr == 69688bv64); +axiom ($y_addr == 131096bv64); function {:extern} L(mem$in: [bv64]bv8, index: bv64) returns (bool) { false } @@ -35,10 +31,6 @@ function {:extern} gamma_store32(gammaMap: [bv64]bool, index: bv64, value: bool) gammaMap[index := value][bvadd64(index, 1bv64) := value][bvadd64(index, 2bv64) := value][bvadd64(index, 3bv64) := value] } -function {:extern} gamma_store64(gammaMap: [bv64]bool, index: bv64, value: bool) returns ([bv64]bool) { - gammaMap[index := value][bvadd64(index, 1bv64) := value][bvadd64(index, 2bv64) := value][bvadd64(index, 3bv64) := value][bvadd64(index, 4bv64) := value][bvadd64(index, 5bv64) := value][bvadd64(index, 6bv64) := value][bvadd64(index, 7bv64) := value] -} - function {:extern} memory_load32_le(memory: [bv64]bv8, index: bv64) returns (bv32) { (memory[bvadd64(index, 3bv64)] ++ (memory[bvadd64(index, 2bv64)] ++ (memory[bvadd64(index, 1bv64)] ++ memory[index]))) } @@ -51,19 +43,17 @@ function {:extern} memory_store32_le(memory: [bv64]bv8, index: bv64, value: bv32 memory[index := value[8:0]][bvadd64(index, 1bv64) := value[16:8]][bvadd64(index, 2bv64) := value[24:16]][bvadd64(index, 3bv64) := value[32:24]] } -function {:extern} memory_store64_le(memory: [bv64]bv8, index: bv64, value: bv64) returns ([bv64]bv8) { - memory[index := value[8:0]][bvadd64(index, 1bv64) := value[16:8]][bvadd64(index, 2bv64) := value[24:16]][bvadd64(index, 3bv64) := value[32:24]][bvadd64(index, 4bv64) := value[40:32]][bvadd64(index, 5bv64) := value[48:40]][bvadd64(index, 6bv64) := value[56:48]][bvadd64(index, 7bv64) := value[64:56]] -} - procedure {:extern} rely(); modifies Gamma_mem, mem; ensures (Gamma_mem == old(Gamma_mem)); ensures (mem == old(mem)); - free ensures (memory_load32_le(mem, 1884bv64) == 131073bv32); - free ensures (memory_load64_le(mem, 69064bv64) == 1808bv64); - free ensures (memory_load64_le(mem, 69072bv64) == 1728bv64); - free ensures (memory_load64_le(mem, 69592bv64) == 1812bv64); - free ensures (memory_load64_le(mem, 69672bv64) == 69672bv64); + free ensures (memory_load32_le(mem, 2328bv64) == 131073bv32); + free ensures (memory_load64_le(mem, 130424bv64) == 2256bv64); + free ensures (memory_load64_le(mem, 130432bv64) == 2176bv64); + free ensures (memory_load64_le(mem, 131032bv64) == 131092bv64); + free ensures (memory_load64_le(mem, 131048bv64) == 131096bv64); + free ensures (memory_load64_le(mem, 131056bv64) == 2260bv64); + free ensures (memory_load64_le(mem, 131080bv64) == 131080bv64); procedure {:extern} rely_transitive(); modifies Gamma_mem, mem; @@ -81,94 +71,57 @@ procedure {:extern} rely_reflexive(); procedure {:extern} guarantee_reflexive(); modifies Gamma_mem, mem; -procedure get_two_1856(); - modifies Gamma_R0, R0; - free requires (memory_load32_le(mem, 1884bv64) == 131073bv32); - free requires (memory_load64_le(mem, 69064bv64) == 1808bv64); - free requires (memory_load64_le(mem, 69072bv64) == 1728bv64); - free requires (memory_load64_le(mem, 69592bv64) == 1812bv64); - free requires (memory_load64_le(mem, 69672bv64) == 69672bv64); - ensures (Gamma_R0 == true); - free ensures (memory_load32_le(mem, 1884bv64) == 131073bv32); - free ensures (memory_load64_le(mem, 69064bv64) == 1808bv64); - free ensures (memory_load64_le(mem, 69072bv64) == 1728bv64); - free ensures (memory_load64_le(mem, 69592bv64) == 1812bv64); - free ensures (memory_load64_le(mem, 69672bv64) == 69672bv64); - -implementation get_two_1856() -{ - lget_two: - assume {:captureState "lget_two"} true; - R0, Gamma_R0 := 2bv64, true; - goto get_two_1856_basil_return; - get_two_1856_basil_return: - assume {:captureState "get_two_1856_basil_return"} true; - return; -} - -procedure main_1812(); - modifies Gamma_R0, Gamma_R29, Gamma_R30, Gamma_R31, Gamma_R8, Gamma_R9, Gamma_mem, Gamma_stack, R0, R29, R30, R31, R8, R9, mem, stack; +procedure main(); + modifies Gamma_R0, Gamma_R10, Gamma_R11, Gamma_R8, Gamma_R9, Gamma_mem, R0, R10, R11, R8, R9, mem; requires (gamma_load32(Gamma_mem, $x_addr) == true); requires (gamma_load32(Gamma_mem, $y_addr) == true); - free requires (memory_load64_le(mem, 69664bv64) == 0bv64); - free requires (memory_load64_le(mem, 69672bv64) == 69672bv64); - free requires (memory_load32_le(mem, 1884bv64) == 131073bv32); - free requires (memory_load64_le(mem, 69064bv64) == 1808bv64); - free requires (memory_load64_le(mem, 69072bv64) == 1728bv64); - free requires (memory_load64_le(mem, 69592bv64) == 1812bv64); - free requires (memory_load64_le(mem, 69672bv64) == 69672bv64); - free ensures (Gamma_R29 == old(Gamma_R29)); - free ensures (Gamma_R31 == old(Gamma_R31)); - free ensures (R29 == old(R29)); - free ensures (R31 == old(R31)); - free ensures (memory_load32_le(mem, 1884bv64) == 131073bv32); - free ensures (memory_load64_le(mem, 69064bv64) == 1808bv64); - free ensures (memory_load64_le(mem, 69072bv64) == 1728bv64); - free ensures (memory_load64_le(mem, 69592bv64) == 1812bv64); - free ensures (memory_load64_le(mem, 69672bv64) == 69672bv64); - -implementation main_1812() + free requires (memory_load64_le(mem, 131072bv64) == 0bv64); + free requires (memory_load64_le(mem, 131080bv64) == 131080bv64); + free requires (memory_load32_le(mem, 2328bv64) == 131073bv32); + free requires (memory_load64_le(mem, 130424bv64) == 2256bv64); + free requires (memory_load64_le(mem, 130432bv64) == 2176bv64); + free requires (memory_load64_le(mem, 131032bv64) == 131092bv64); + free requires (memory_load64_le(mem, 131048bv64) == 131096bv64); + free requires (memory_load64_le(mem, 131056bv64) == 2260bv64); + free requires (memory_load64_le(mem, 131080bv64) == 131080bv64); + free ensures (memory_load32_le(mem, 2328bv64) == 131073bv32); + free ensures (memory_load64_le(mem, 130424bv64) == 2256bv64); + free ensures (memory_load64_le(mem, 130432bv64) == 2176bv64); + free ensures (memory_load64_le(mem, 131032bv64) == 131092bv64); + free ensures (memory_load64_le(mem, 131048bv64) == 131096bv64); + free ensures (memory_load64_le(mem, 131056bv64) == 2260bv64); + free ensures (memory_load64_le(mem, 131080bv64) == 131080bv64); + +implementation main() { - var #4: bv64; - var Gamma_#4: bool; - var Gamma_load18: bool; - var Gamma_load19: bool; - var load18: bv64; - var load19: bv64; + var $load$18: bv64; + var $load$19: bv64; + var Gamma_$load$18: bool; + var Gamma_$load$19: bool; lmain: assume {:captureState "lmain"} true; - #4, Gamma_#4 := bvadd64(R31, 18446744073709551600bv64), Gamma_R31; - stack, Gamma_stack := memory_store64_le(stack, #4, R29), gamma_store64(Gamma_stack, #4, Gamma_R29); - assume {:captureState "%000008db"} true; - stack, Gamma_stack := memory_store64_le(stack, bvadd64(#4, 8bv64), R30), gamma_store64(Gamma_stack, bvadd64(#4, 8bv64), Gamma_R30); - assume {:captureState "%000008e1"} true; - R31, Gamma_R31 := #4, Gamma_#4; - R29, Gamma_R29 := R31, Gamma_R31; - R9, Gamma_R9 := 69632bv64, true; - R8, Gamma_R8 := 1bv64, true; + R8, Gamma_R8 := 126976bv64, true; + R10, Gamma_R10 := 126976bv64, true; + R0, Gamma_R0 := 0bv64, true; call rely(); - assert (L(mem, bvadd64(R9, 52bv64)) ==> Gamma_R8); - mem, Gamma_mem := memory_store32_le(mem, bvadd64(R9, 52bv64), R8[32:0]), gamma_store32(Gamma_mem, bvadd64(R9, 52bv64), Gamma_R8); - assume {:captureState "%000008fd"} true; - R30, Gamma_R30 := 1836bv64, true; - call get_two_1856(); - goto l00000910; - l00000910: - assume {:captureState "l00000910"} true; - R8, Gamma_R8 := 69632bv64, true; + $load$18, Gamma_$load$18 := memory_load64_le(mem, bvadd64(R8, 4056bv64)), (gamma_load64(Gamma_mem, bvadd64(R8, 4056bv64)) || L(mem, bvadd64(R8, 4056bv64))); + R8, Gamma_R8 := $load$18, Gamma_$load$18; call rely(); - assert (L(mem, bvadd64(R8, 56bv64)) ==> Gamma_R0); - mem, Gamma_mem := memory_store32_le(mem, bvadd64(R8, 56bv64), R0[32:0]), gamma_store32(Gamma_mem, bvadd64(R8, 56bv64), Gamma_R0); - assume {:captureState "%0000091b"} true; - R0, Gamma_R0 := 0bv64, true; - load18, Gamma_load18 := memory_load64_le(stack, R31), gamma_load64(Gamma_stack, R31); - R29, Gamma_R29 := load18, Gamma_load18; - load19, Gamma_load19 := memory_load64_le(stack, bvadd64(R31, 8bv64)), gamma_load64(Gamma_stack, bvadd64(R31, 8bv64)); - R30, Gamma_R30 := load19, Gamma_load19; - R31, Gamma_R31 := bvadd64(R31, 16bv64), Gamma_R31; - goto main_1812_basil_return; - main_1812_basil_return: - assume {:captureState "main_1812_basil_return"} true; + $load$19, Gamma_$load$19 := memory_load64_le(mem, bvadd64(R10, 4072bv64)), (gamma_load64(Gamma_mem, bvadd64(R10, 4072bv64)) || L(mem, bvadd64(R10, 4072bv64))); + R10, Gamma_R10 := $load$19, Gamma_$load$19; + R9, Gamma_R9 := 1bv64, true; + R11, Gamma_R11 := 2bv64, true; + call rely(); + assert (L(mem, R8) ==> Gamma_R9); + mem, Gamma_mem := memory_store32_le(mem, R8, R9[32:0]), gamma_store32(Gamma_mem, R8, Gamma_R9); + assume {:captureState "%000002ac"} true; + call rely(); + assert (L(mem, R10) ==> Gamma_R11); + mem, Gamma_mem := memory_store32_le(mem, R10, R11[32:0]), gamma_store32(Gamma_mem, R10, Gamma_R11); + assume {:captureState "%000002b0"} true; + goto main_basil_return; + main_basil_return: + assume {:captureState "main_basil_return"} true; return; } diff --git a/src/test/correct/function/clang/function.gts b/src/test/correct/function/clang/function.gts deleted file mode 100644 index d0fec3f1f..000000000 Binary files a/src/test/correct/function/clang/function.gts and /dev/null differ diff --git a/src/test/correct/function/clang/function.md5sum b/src/test/correct/function/clang/function.md5sum new file mode 100644 index 000000000..bbf614b77 --- /dev/null +++ b/src/test/correct/function/clang/function.md5sum @@ -0,0 +1,5 @@ +bd9e7a6ac635dc38ad711a8df8e500cf correct/function/clang/a.out +381730625a02fd8d723e4c10c464df60 correct/function/clang/function.adt +967ac3f0d09268f15a7390c815ee6328 correct/function/clang/function.bir +11b246b02ca544f0ce219ed2a6ad35b0 correct/function/clang/function.relf +5187459e3d787f8a52bb1515f3c6cc52 correct/function/clang/function.gts diff --git a/src/test/correct/function/clang/function.relf b/src/test/correct/function/clang/function.relf deleted file mode 100644 index c386cd346..000000000 --- a/src/test/correct/function/clang/function.relf +++ /dev/null @@ -1,125 +0,0 @@ - -Relocation section '.rela.dyn' at offset 0x460 contains 8 entries: - Offset Info Type Symbol's Value Symbol's Name + Addend -0000000000010dc8 0000000000000403 R_AARCH64_RELATIVE 710 -0000000000010dd0 0000000000000403 R_AARCH64_RELATIVE 6c0 -0000000000010fd8 0000000000000403 R_AARCH64_RELATIVE 714 -0000000000011028 0000000000000403 R_AARCH64_RELATIVE 11028 -0000000000010fc0 0000000400000401 R_AARCH64_GLOB_DAT 0000000000000000 _ITM_deregisterTMCloneTable + 0 -0000000000010fc8 0000000500000401 R_AARCH64_GLOB_DAT 0000000000000000 __cxa_finalize@GLIBC_2.17 + 0 -0000000000010fd0 0000000600000401 R_AARCH64_GLOB_DAT 0000000000000000 __gmon_start__ + 0 -0000000000010fe0 0000000800000401 R_AARCH64_GLOB_DAT 0000000000000000 _ITM_registerTMCloneTable + 0 - -Relocation section '.rela.plt' at offset 0x520 contains 4 entries: - Offset Info Type Symbol's Value Symbol's Name + Addend -0000000000011000 0000000300000402 R_AARCH64_JUMP_SLOT 0000000000000000 __libc_start_main@GLIBC_2.34 + 0 -0000000000011008 0000000500000402 R_AARCH64_JUMP_SLOT 0000000000000000 __cxa_finalize@GLIBC_2.17 + 0 -0000000000011010 0000000600000402 R_AARCH64_JUMP_SLOT 0000000000000000 __gmon_start__ + 0 -0000000000011018 0000000700000402 R_AARCH64_JUMP_SLOT 0000000000000000 abort@GLIBC_2.17 + 0 - -Symbol table '.dynsym' contains 9 entries: - Num: Value Size Type Bind Vis Ndx Name - 0: 0000000000000000 0 NOTYPE LOCAL DEFAULT UND - 1: 0000000000000580 0 SECTION LOCAL DEFAULT 11 .init - 2: 0000000000011020 0 SECTION LOCAL DEFAULT 23 .data - 3: 0000000000000000 0 FUNC GLOBAL DEFAULT UND __libc_start_main@GLIBC_2.34 (2) - 4: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_deregisterTMCloneTable - 5: 0000000000000000 0 FUNC WEAK DEFAULT UND __cxa_finalize@GLIBC_2.17 (3) - 6: 0000000000000000 0 NOTYPE WEAK DEFAULT UND __gmon_start__ - 7: 0000000000000000 0 FUNC GLOBAL DEFAULT UND abort@GLIBC_2.17 (3) - 8: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_registerTMCloneTable - -Symbol table '.symtab' contains 92 entries: - Num: Value Size Type Bind Vis Ndx Name - 0: 0000000000000000 0 NOTYPE LOCAL DEFAULT UND - 1: 0000000000000238 0 SECTION LOCAL DEFAULT 1 .interp - 2: 0000000000000254 0 SECTION LOCAL DEFAULT 2 .note.gnu.build-id - 3: 0000000000000278 0 SECTION LOCAL DEFAULT 3 .note.ABI-tag - 4: 0000000000000298 0 SECTION LOCAL DEFAULT 4 .gnu.hash - 5: 00000000000002b8 0 SECTION LOCAL DEFAULT 5 .dynsym - 6: 0000000000000390 0 SECTION LOCAL DEFAULT 6 .dynstr - 7: 000000000000041e 0 SECTION LOCAL DEFAULT 7 .gnu.version - 8: 0000000000000430 0 SECTION LOCAL DEFAULT 8 .gnu.version_r - 9: 0000000000000460 0 SECTION LOCAL DEFAULT 9 .rela.dyn - 10: 0000000000000520 0 SECTION LOCAL DEFAULT 10 .rela.plt - 11: 0000000000000580 0 SECTION LOCAL DEFAULT 11 .init - 12: 00000000000005a0 0 SECTION LOCAL DEFAULT 12 .plt - 13: 0000000000000600 0 SECTION LOCAL DEFAULT 13 .text - 14: 0000000000000748 0 SECTION LOCAL DEFAULT 14 .fini - 15: 000000000000075c 0 SECTION LOCAL DEFAULT 15 .rodata - 16: 0000000000000760 0 SECTION LOCAL DEFAULT 16 .eh_frame_hdr - 17: 00000000000007a8 0 SECTION LOCAL DEFAULT 17 .eh_frame - 18: 0000000000010dc8 0 SECTION LOCAL DEFAULT 18 .init_array - 19: 0000000000010dd0 0 SECTION LOCAL DEFAULT 19 .fini_array - 20: 0000000000010dd8 0 SECTION LOCAL DEFAULT 20 .dynamic - 21: 0000000000010fb8 0 SECTION LOCAL DEFAULT 21 .got - 22: 0000000000010fe8 0 SECTION LOCAL DEFAULT 22 .got.plt - 23: 0000000000011020 0 SECTION LOCAL DEFAULT 23 .data - 24: 0000000000011030 0 SECTION LOCAL DEFAULT 24 .bss - 25: 0000000000000000 0 SECTION LOCAL DEFAULT 25 .comment - 26: 0000000000000000 0 FILE LOCAL DEFAULT ABS Scrt1.o - 27: 0000000000000278 0 NOTYPE LOCAL DEFAULT 3 $d - 28: 0000000000000278 32 OBJECT LOCAL DEFAULT 3 __abi_tag - 29: 0000000000000600 0 NOTYPE LOCAL DEFAULT 13 $x - 30: 00000000000007bc 0 NOTYPE LOCAL DEFAULT 17 $d - 31: 000000000000075c 0 NOTYPE LOCAL DEFAULT 15 $d - 32: 0000000000000000 0 FILE LOCAL DEFAULT ABS crti.o - 33: 0000000000000634 0 NOTYPE LOCAL DEFAULT 13 $x - 34: 0000000000000634 20 FUNC LOCAL DEFAULT 13 call_weak_fn - 35: 0000000000000580 0 NOTYPE LOCAL DEFAULT 11 $x - 36: 0000000000000748 0 NOTYPE LOCAL DEFAULT 14 $x - 37: 0000000000000000 0 FILE LOCAL DEFAULT ABS crtn.o - 38: 0000000000000590 0 NOTYPE LOCAL DEFAULT 11 $x - 39: 0000000000000754 0 NOTYPE LOCAL DEFAULT 14 $x - 40: 0000000000000000 0 FILE LOCAL DEFAULT ABS crtstuff.c - 41: 0000000000000650 0 NOTYPE LOCAL DEFAULT 13 $x - 42: 0000000000000650 0 FUNC LOCAL DEFAULT 13 deregister_tm_clones - 43: 0000000000000680 0 FUNC LOCAL DEFAULT 13 register_tm_clones - 44: 0000000000011028 0 NOTYPE LOCAL DEFAULT 23 $d - 45: 00000000000006c0 0 FUNC LOCAL DEFAULT 13 __do_global_dtors_aux - 46: 0000000000011030 1 OBJECT LOCAL DEFAULT 24 completed.0 - 47: 0000000000010dd0 0 NOTYPE LOCAL DEFAULT 19 $d - 48: 0000000000010dd0 0 OBJECT LOCAL DEFAULT 19 __do_global_dtors_aux_fini_array_entry - 49: 0000000000000710 0 FUNC LOCAL DEFAULT 13 frame_dummy - 50: 0000000000010dc8 0 NOTYPE LOCAL DEFAULT 18 $d - 51: 0000000000010dc8 0 OBJECT LOCAL DEFAULT 18 __frame_dummy_init_array_entry - 52: 00000000000007d0 0 NOTYPE LOCAL DEFAULT 17 $d - 53: 0000000000011030 0 NOTYPE LOCAL DEFAULT 24 $d - 54: 0000000000000000 0 FILE LOCAL DEFAULT ABS function.c - 55: 0000000000000714 0 NOTYPE LOCAL DEFAULT 13 $x.0 - 56: 0000000000011034 0 NOTYPE LOCAL DEFAULT 24 $d.1 - 57: 000000000000002a 0 NOTYPE LOCAL DEFAULT 25 $d.2 - 58: 0000000000000830 0 NOTYPE LOCAL DEFAULT 17 $d.3 - 59: 0000000000000000 0 FILE LOCAL DEFAULT ABS crtstuff.c - 60: 0000000000000880 0 NOTYPE LOCAL DEFAULT 17 $d - 61: 0000000000000880 0 OBJECT LOCAL DEFAULT 17 __FRAME_END__ - 62: 0000000000000000 0 FILE LOCAL DEFAULT ABS - 63: 0000000000010dd8 0 OBJECT LOCAL DEFAULT ABS _DYNAMIC - 64: 0000000000000760 0 NOTYPE LOCAL DEFAULT 16 __GNU_EH_FRAME_HDR - 65: 0000000000010fb8 0 OBJECT LOCAL DEFAULT ABS _GLOBAL_OFFSET_TABLE_ - 66: 00000000000005a0 0 NOTYPE LOCAL DEFAULT 12 $x - 67: 0000000000000000 0 FUNC GLOBAL DEFAULT UND __libc_start_main@GLIBC_2.34 - 68: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_deregisterTMCloneTable - 69: 0000000000011020 0 NOTYPE WEAK DEFAULT 23 data_start - 70: 0000000000011030 0 NOTYPE GLOBAL DEFAULT 24 __bss_start__ - 71: 0000000000000000 0 FUNC WEAK DEFAULT UND __cxa_finalize@GLIBC_2.17 - 72: 0000000000011040 0 NOTYPE GLOBAL DEFAULT 24 _bss_end__ - 73: 0000000000011030 0 NOTYPE GLOBAL DEFAULT 23 _edata - 74: 0000000000011034 4 OBJECT GLOBAL DEFAULT 24 x - 75: 0000000000000748 0 FUNC GLOBAL HIDDEN 14 _fini - 76: 0000000000011040 0 NOTYPE GLOBAL DEFAULT 24 __bss_end__ - 77: 0000000000000740 8 FUNC GLOBAL DEFAULT 13 get_two - 78: 0000000000011020 0 NOTYPE GLOBAL DEFAULT 23 __data_start - 79: 0000000000000000 0 NOTYPE WEAK DEFAULT UND __gmon_start__ - 80: 0000000000011028 0 OBJECT GLOBAL HIDDEN 23 __dso_handle - 81: 0000000000000000 0 FUNC GLOBAL DEFAULT UND abort@GLIBC_2.17 - 82: 000000000000075c 4 OBJECT GLOBAL DEFAULT 15 _IO_stdin_used - 83: 0000000000011040 0 NOTYPE GLOBAL DEFAULT 24 _end - 84: 0000000000000600 52 FUNC GLOBAL DEFAULT 13 _start - 85: 0000000000011040 0 NOTYPE GLOBAL DEFAULT 24 __end__ - 86: 0000000000011038 4 OBJECT GLOBAL DEFAULT 24 y - 87: 0000000000011030 0 NOTYPE GLOBAL DEFAULT 24 __bss_start - 88: 0000000000000714 44 FUNC GLOBAL DEFAULT 13 main - 89: 0000000000011030 0 OBJECT GLOBAL HIDDEN 23 __TMC_END__ - 90: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_registerTMCloneTable - 91: 0000000000000580 0 FUNC GLOBAL HIDDEN 11 _init diff --git a/src/test/correct/function/clang/function_gtirb.expected b/src/test/correct/function/clang/function_gtirb.expected index 017568da0..63b7b27a1 100644 --- a/src/test/correct/function/clang/function_gtirb.expected +++ b/src/test/correct/function/clang/function_gtirb.expected @@ -1,23 +1,19 @@ var {:extern} Gamma_R0: bool; -var {:extern} Gamma_R29: bool; -var {:extern} Gamma_R30: bool; -var {:extern} Gamma_R31: bool; +var {:extern} Gamma_R10: bool; +var {:extern} Gamma_R11: bool; var {:extern} Gamma_R8: bool; var {:extern} Gamma_R9: bool; var {:extern} Gamma_mem: [bv64]bool; -var {:extern} Gamma_stack: [bv64]bool; var {:extern} R0: bv64; -var {:extern} R29: bv64; -var {:extern} R30: bv64; -var {:extern} R31: bv64; +var {:extern} R10: bv64; +var {:extern} R11: bv64; var {:extern} R8: bv64; var {:extern} R9: bv64; var {:extern} mem: [bv64]bv8; -var {:extern} stack: [bv64]bv8; const {:extern} $x_addr: bv64; -axiom ($x_addr == 69684bv64); +axiom ($x_addr == 131092bv64); const {:extern} $y_addr: bv64; -axiom ($y_addr == 69688bv64); +axiom ($y_addr == 131096bv64); function {:extern} L(mem$in: [bv64]bv8, index: bv64) returns (bool) { false } @@ -35,10 +31,6 @@ function {:extern} gamma_store32(gammaMap: [bv64]bool, index: bv64, value: bool) gammaMap[index := value][bvadd64(index, 1bv64) := value][bvadd64(index, 2bv64) := value][bvadd64(index, 3bv64) := value] } -function {:extern} gamma_store64(gammaMap: [bv64]bool, index: bv64, value: bool) returns ([bv64]bool) { - gammaMap[index := value][bvadd64(index, 1bv64) := value][bvadd64(index, 2bv64) := value][bvadd64(index, 3bv64) := value][bvadd64(index, 4bv64) := value][bvadd64(index, 5bv64) := value][bvadd64(index, 6bv64) := value][bvadd64(index, 7bv64) := value] -} - function {:extern} memory_load32_le(memory: [bv64]bv8, index: bv64) returns (bv32) { (memory[bvadd64(index, 3bv64)] ++ (memory[bvadd64(index, 2bv64)] ++ (memory[bvadd64(index, 1bv64)] ++ memory[index]))) } @@ -51,19 +43,17 @@ function {:extern} memory_store32_le(memory: [bv64]bv8, index: bv64, value: bv32 memory[index := value[8:0]][bvadd64(index, 1bv64) := value[16:8]][bvadd64(index, 2bv64) := value[24:16]][bvadd64(index, 3bv64) := value[32:24]] } -function {:extern} memory_store64_le(memory: [bv64]bv8, index: bv64, value: bv64) returns ([bv64]bv8) { - memory[index := value[8:0]][bvadd64(index, 1bv64) := value[16:8]][bvadd64(index, 2bv64) := value[24:16]][bvadd64(index, 3bv64) := value[32:24]][bvadd64(index, 4bv64) := value[40:32]][bvadd64(index, 5bv64) := value[48:40]][bvadd64(index, 6bv64) := value[56:48]][bvadd64(index, 7bv64) := value[64:56]] -} - procedure {:extern} rely(); modifies Gamma_mem, mem; ensures (Gamma_mem == old(Gamma_mem)); ensures (mem == old(mem)); - free ensures (memory_load32_le(mem, 1884bv64) == 131073bv32); - free ensures (memory_load64_le(mem, 69064bv64) == 1808bv64); - free ensures (memory_load64_le(mem, 69072bv64) == 1728bv64); - free ensures (memory_load64_le(mem, 69592bv64) == 1812bv64); - free ensures (memory_load64_le(mem, 69672bv64) == 69672bv64); + free ensures (memory_load32_le(mem, 2328bv64) == 131073bv32); + free ensures (memory_load64_le(mem, 130424bv64) == 2256bv64); + free ensures (memory_load64_le(mem, 130432bv64) == 2176bv64); + free ensures (memory_load64_le(mem, 131032bv64) == 131092bv64); + free ensures (memory_load64_le(mem, 131048bv64) == 131096bv64); + free ensures (memory_load64_le(mem, 131056bv64) == 2260bv64); + free ensures (memory_load64_le(mem, 131080bv64) == 131080bv64); procedure {:extern} rely_transitive(); modifies Gamma_mem, mem; @@ -81,94 +71,57 @@ procedure {:extern} rely_reflexive(); procedure {:extern} guarantee_reflexive(); modifies Gamma_mem, mem; -procedure main_1812(); - modifies Gamma_R0, Gamma_R29, Gamma_R30, Gamma_R31, Gamma_R8, Gamma_R9, Gamma_mem, Gamma_stack, R0, R29, R30, R31, R8, R9, mem, stack; +procedure main(); + modifies Gamma_R0, Gamma_R10, Gamma_R11, Gamma_R8, Gamma_R9, Gamma_mem, R0, R10, R11, R8, R9, mem; requires (gamma_load32(Gamma_mem, $x_addr) == true); requires (gamma_load32(Gamma_mem, $y_addr) == true); - free requires (memory_load64_le(mem, 69664bv64) == 0bv64); - free requires (memory_load64_le(mem, 69672bv64) == 69672bv64); - free requires (memory_load32_le(mem, 1884bv64) == 131073bv32); - free requires (memory_load64_le(mem, 69064bv64) == 1808bv64); - free requires (memory_load64_le(mem, 69072bv64) == 1728bv64); - free requires (memory_load64_le(mem, 69592bv64) == 1812bv64); - free requires (memory_load64_le(mem, 69672bv64) == 69672bv64); - free ensures (Gamma_R29 == old(Gamma_R29)); - free ensures (Gamma_R31 == old(Gamma_R31)); - free ensures (R29 == old(R29)); - free ensures (R31 == old(R31)); - free ensures (memory_load32_le(mem, 1884bv64) == 131073bv32); - free ensures (memory_load64_le(mem, 69064bv64) == 1808bv64); - free ensures (memory_load64_le(mem, 69072bv64) == 1728bv64); - free ensures (memory_load64_le(mem, 69592bv64) == 1812bv64); - free ensures (memory_load64_le(mem, 69672bv64) == 69672bv64); - -implementation main_1812() + free requires (memory_load64_le(mem, 131072bv64) == 0bv64); + free requires (memory_load64_le(mem, 131080bv64) == 131080bv64); + free requires (memory_load32_le(mem, 2328bv64) == 131073bv32); + free requires (memory_load64_le(mem, 130424bv64) == 2256bv64); + free requires (memory_load64_le(mem, 130432bv64) == 2176bv64); + free requires (memory_load64_le(mem, 131032bv64) == 131092bv64); + free requires (memory_load64_le(mem, 131048bv64) == 131096bv64); + free requires (memory_load64_le(mem, 131056bv64) == 2260bv64); + free requires (memory_load64_le(mem, 131080bv64) == 131080bv64); + free ensures (memory_load32_le(mem, 2328bv64) == 131073bv32); + free ensures (memory_load64_le(mem, 130424bv64) == 2256bv64); + free ensures (memory_load64_le(mem, 130432bv64) == 2176bv64); + free ensures (memory_load64_le(mem, 131032bv64) == 131092bv64); + free ensures (memory_load64_le(mem, 131048bv64) == 131096bv64); + free ensures (memory_load64_le(mem, 131056bv64) == 2260bv64); + free ensures (memory_load64_le(mem, 131080bv64) == 131080bv64); + +implementation main() { - var Cse0__5_0_0: bv64; - var Gamma_Cse0__5_0_0: bool; - var Gamma_load13: bool; - var Gamma_load14: bool; - var load13: bv64; - var load14: bv64; - main_1812__0__EOZN5uSLQQqIXnLhnZHeWA: - assume {:captureState "main_1812__0__EOZN5uSLQQqIXnLhnZHeWA"} true; - Cse0__5_0_0, Gamma_Cse0__5_0_0 := bvadd64(R31, 18446744073709551600bv64), Gamma_R31; - stack, Gamma_stack := memory_store64_le(stack, Cse0__5_0_0, R29), gamma_store64(Gamma_stack, Cse0__5_0_0, Gamma_R29); - assume {:captureState "1812_1"} true; - stack, Gamma_stack := memory_store64_le(stack, bvadd64(Cse0__5_0_0, 8bv64), R30), gamma_store64(Gamma_stack, bvadd64(Cse0__5_0_0, 8bv64), Gamma_R30); - assume {:captureState "1812_2"} true; - R31, Gamma_R31 := Cse0__5_0_0, Gamma_Cse0__5_0_0; - R29, Gamma_R29 := R31, Gamma_R31; - R9, Gamma_R9 := 69632bv64, true; - R8, Gamma_R8 := 1bv64, true; + var $load16: bv64; + var $load17: bv64; + var Gamma_$load16: bool; + var Gamma_$load17: bool; + $main$__0__$lwyID0MJQb6vgyjzPFtz8Q: + assume {:captureState "$main$__0__$lwyID0MJQb6vgyjzPFtz8Q"} true; + R8, Gamma_R8 := 126976bv64, true; + R10, Gamma_R10 := 126976bv64, true; + R0, Gamma_R0 := 0bv64, true; call rely(); - assert (L(mem, bvadd64(R9, 52bv64)) ==> Gamma_R8); - mem, Gamma_mem := memory_store32_le(mem, bvadd64(R9, 52bv64), R8[32:0]), gamma_store32(Gamma_mem, bvadd64(R9, 52bv64), Gamma_R8); - assume {:captureState "1828_0"} true; - R30, Gamma_R30 := 1836bv64, true; - call get_two_1856(); - goto main_1812__1__Q55zdQssRl~zLCCVlSDCuw; - main_1812__1__Q55zdQssRl~zLCCVlSDCuw: - assume {:captureState "main_1812__1__Q55zdQssRl~zLCCVlSDCuw"} true; - R8, Gamma_R8 := 69632bv64, true; + $load16, Gamma_$load16 := memory_load64_le(mem, bvadd64(R8, 4056bv64)), (gamma_load64(Gamma_mem, bvadd64(R8, 4056bv64)) || L(mem, bvadd64(R8, 4056bv64))); + R8, Gamma_R8 := $load16, Gamma_$load16; call rely(); - assert (L(mem, bvadd64(R8, 56bv64)) ==> Gamma_R0); - mem, Gamma_mem := memory_store32_le(mem, bvadd64(R8, 56bv64), R0[32:0]), gamma_store32(Gamma_mem, bvadd64(R8, 56bv64), Gamma_R0); - assume {:captureState "1840_0"} true; - R0, Gamma_R0 := 0bv64, true; - load13, Gamma_load13 := memory_load64_le(stack, R31), gamma_load64(Gamma_stack, R31); - R29, Gamma_R29 := load13, Gamma_load13; - load14, Gamma_load14 := memory_load64_le(stack, bvadd64(R31, 8bv64)), gamma_load64(Gamma_stack, bvadd64(R31, 8bv64)); - R30, Gamma_R30 := load14, Gamma_load14; - R31, Gamma_R31 := bvadd64(R31, 16bv64), Gamma_R31; - goto main_1812_basil_return; - main_1812_basil_return: - assume {:captureState "main_1812_basil_return"} true; - return; -} - -procedure get_two_1856(); - modifies Gamma_R0, R0; - free requires (memory_load32_le(mem, 1884bv64) == 131073bv32); - free requires (memory_load64_le(mem, 69064bv64) == 1808bv64); - free requires (memory_load64_le(mem, 69072bv64) == 1728bv64); - free requires (memory_load64_le(mem, 69592bv64) == 1812bv64); - free requires (memory_load64_le(mem, 69672bv64) == 69672bv64); - ensures (Gamma_R0 == true); - free ensures (memory_load32_le(mem, 1884bv64) == 131073bv32); - free ensures (memory_load64_le(mem, 69064bv64) == 1808bv64); - free ensures (memory_load64_le(mem, 69072bv64) == 1728bv64); - free ensures (memory_load64_le(mem, 69592bv64) == 1812bv64); - free ensures (memory_load64_le(mem, 69672bv64) == 69672bv64); - -implementation get_two_1856() -{ - get_two_1856__0__1qmWzVjSR9iAETCu0c0vYw: - assume {:captureState "get_two_1856__0__1qmWzVjSR9iAETCu0c0vYw"} true; - R0, Gamma_R0 := 2bv64, true; - goto get_two_1856_basil_return; - get_two_1856_basil_return: - assume {:captureState "get_two_1856_basil_return"} true; + $load17, Gamma_$load17 := memory_load64_le(mem, bvadd64(R10, 4072bv64)), (gamma_load64(Gamma_mem, bvadd64(R10, 4072bv64)) || L(mem, bvadd64(R10, 4072bv64))); + R10, Gamma_R10 := $load17, Gamma_$load17; + R9, Gamma_R9 := 1bv64, true; + R11, Gamma_R11 := 2bv64, true; + call rely(); + assert (L(mem, R8) ==> Gamma_R9); + mem, Gamma_mem := memory_store32_le(mem, R8, R9[32:0]), gamma_store32(Gamma_mem, R8, Gamma_R9); + assume {:captureState "2288$0"} true; + call rely(); + assert (L(mem, R10) ==> Gamma_R11); + mem, Gamma_mem := memory_store32_le(mem, R10, R11[32:0]), gamma_store32(Gamma_mem, R10, Gamma_R11); + assume {:captureState "2292$0"} true; + goto main_basil_return; + main_basil_return: + assume {:captureState "main_basil_return"} true; return; } diff --git a/src/test/correct/function/clang_pic/function.adt b/src/test/correct/function/clang_pic/function.adt deleted file mode 100644 index ed4bba1cb..000000000 --- a/src/test/correct/function/clang_pic/function.adt +++ /dev/null @@ -1,546 +0,0 @@ -Project(Attrs([Attr("filename","\"clang_pic/function.out\""), -Attr("image-specification","(declare abi (name str))\n(declare arch (name str))\n(declare base-address (addr int))\n(declare bias (off int))\n(declare bits (size int))\n(declare code-region (addr int) (size int) (off int))\n(declare code-start (addr int))\n(declare entry-point (addr int))\n(declare external-reference (addr int) (name str))\n(declare format (name str))\n(declare is-executable (flag bool))\n(declare is-little-endian (flag bool))\n(declare llvm:base-address (addr int))\n(declare llvm:code-entry (name str) (off int) (size int))\n(declare llvm:coff-import-library (name str))\n(declare llvm:coff-virtual-section-header (name str) (addr int) (size int))\n(declare llvm:elf-program-header (name str) (off int) (size int))\n(declare llvm:elf-program-header-flags (name str) (ld bool) (r bool) \n (w bool) (x bool))\n(declare llvm:elf-virtual-program-header (name str) (addr int) (size int))\n(declare llvm:entry-point (addr int))\n(declare llvm:macho-symbol (name str) (value int))\n(declare llvm:name-reference (at int) (name str))\n(declare llvm:relocation (at int) (addr int))\n(declare llvm:section-entry (name str) (addr int) (size int) (off int))\n(declare llvm:section-flags (name str) (r bool) (w bool) (x bool))\n(declare llvm:segment-command (name str) (off int) (size int))\n(declare llvm:segment-command-flags (name str) (r bool) (w bool) (x bool))\n(declare llvm:symbol-entry (name str) (addr int) (size int) (off int)\n (value int))\n(declare llvm:virtual-segment-command (name str) (addr int) (size int))\n(declare mapped (addr int) (size int) (off int))\n(declare named-region (addr int) (size int) (name str))\n(declare named-symbol (addr int) (name str))\n(declare require (name str))\n(declare section (addr int) (size int))\n(declare segment (addr int) (size int) (r bool) (w bool) (x bool))\n(declare subarch (name str))\n(declare symbol-chunk (addr int) (size int) (root int))\n(declare symbol-value (addr int) (value int))\n(declare system (name str))\n(declare vendor (name str))\n\n(abi unknown)\n(arch aarch64)\n(base-address 0)\n(bias 0)\n(bits 64)\n(code-region 1936 20 1936)\n(code-region 1600 336 1600)\n(code-region 1488 96 1488)\n(code-region 1456 24 1456)\n(code-start 1652)\n(code-start 1928)\n(code-start 1600)\n(code-start 1876)\n(entry-point 1600)\n(external-reference 69552 _ITM_deregisterTMCloneTable)\n(external-reference 69560 __cxa_finalize)\n(external-reference 69576 __gmon_start__)\n(external-reference 69600 _ITM_registerTMCloneTable)\n(external-reference 69632 __libc_start_main)\n(external-reference 69640 __cxa_finalize)\n(external-reference 69648 __gmon_start__)\n(external-reference 69656 abort)\n(format elf)\n(is-executable true)\n(is-little-endian true)\n(llvm:base-address 0)\n(llvm:code-entry abort 0 0)\n(llvm:code-entry __cxa_finalize 0 0)\n(llvm:code-entry __libc_start_main 0 0)\n(llvm:code-entry _init 1456 0)\n(llvm:code-entry main 1876 52)\n(llvm:code-entry _start 1600 52)\n(llvm:code-entry abort@GLIBC_2.17 0 0)\n(llvm:code-entry get_two 1928 8)\n(llvm:code-entry _fini 1936 0)\n(llvm:code-entry __cxa_finalize@GLIBC_2.17 0 0)\n(llvm:code-entry __libc_start_main@GLIBC_2.34 0 0)\n(llvm:code-entry frame_dummy 1872 0)\n(llvm:code-entry __do_global_dtors_aux 1792 0)\n(llvm:code-entry register_tm_clones 1728 0)\n(llvm:code-entry deregister_tm_clones 1680 0)\n(llvm:code-entry call_weak_fn 1652 20)\n(llvm:code-entry .fini 1936 20)\n(llvm:code-entry .text 1600 336)\n(llvm:code-entry .plt 1488 96)\n(llvm:code-entry .init 1456 24)\n(llvm:elf-program-header 08 3512 584)\n(llvm:elf-program-header 07 0 0)\n(llvm:elf-program-header 06 1960 68)\n(llvm:elf-program-header 05 596 68)\n(llvm:elf-program-header 04 3528 480)\n(llvm:elf-program-header 03 3512 632)\n(llvm:elf-program-header 02 0 2252)\n(llvm:elf-program-header 01 568 27)\n(llvm:elf-program-header 00 64 504)\n(llvm:elf-program-header-flags 08 false true false false)\n(llvm:elf-program-header-flags 07 false true true false)\n(llvm:elf-program-header-flags 06 false true false false)\n(llvm:elf-program-header-flags 05 false true false false)\n(llvm:elf-program-header-flags 04 false true true false)\n(llvm:elf-program-header-flags 03 true true true false)\n(llvm:elf-program-header-flags 02 true true false true)\n(llvm:elf-program-header-flags 01 false true false false)\n(llvm:elf-program-header-flags 00 false true false false)\n(llvm:elf-virtual-program-header 08 69048 584)\n(llvm:elf-virtual-program-header 07 0 0)\n(llvm:elf-virtual-program-header 06 1960 68)\n(llvm:elf-virtual-program-header 05 596 68)\n(llvm:elf-virtual-program-header 04 69064 480)\n(llvm:elf-virtual-program-header 03 69048 648)\n(llvm:elf-virtual-program-header 02 0 2252)\n(llvm:elf-virtual-program-header 01 568 27)\n(llvm:elf-virtual-program-header 00 64 504)\n(llvm:entry-point 1600)\n(llvm:name-reference 69656 abort)\n(llvm:name-reference 69648 __gmon_start__)\n(llvm:name-reference 69640 __cxa_finalize)\n(llvm:name-reference 69632 __libc_start_main)\n(llvm:name-reference 69600 _ITM_registerTMCloneTable)\n(llvm:name-reference 69576 __gmon_start__)\n(llvm:name-reference 69560 __cxa_finalize)\n(llvm:name-reference 69552 _ITM_deregisterTMCloneTable)\n(llvm:section-entry .shstrtab 0 259 6996)\n(llvm:section-entry .strtab 0 572 6424)\n(llvm:section-entry .symtab 0 2208 4216)\n(llvm:section-entry .comment 0 71 4144)\n(llvm:section-entry .bss 69680 16 4144)\n(llvm:section-entry .data 69664 16 4128)\n(llvm:section-entry .got.plt 69608 56 4072)\n(llvm:section-entry .got 69544 64 4008)\n(llvm:section-entry .dynamic 69064 480 3528)\n(llvm:section-entry .fini_array 69056 8 3520)\n(llvm:section-entry .init_array 69048 8 3512)\n(llvm:section-entry .eh_frame 2032 220 2032)\n(llvm:section-entry .eh_frame_hdr 1960 68 1960)\n(llvm:section-entry .rodata 1956 4 1956)\n(llvm:section-entry .fini 1936 20 1936)\n(llvm:section-entry .text 1600 336 1600)\n(llvm:section-entry .plt 1488 96 1488)\n(llvm:section-entry .init 1456 24 1456)\n(llvm:section-entry .rela.plt 1360 96 1360)\n(llvm:section-entry .rela.dyn 1120 240 1120)\n(llvm:section-entry .gnu.version_r 1072 48 1072)\n(llvm:section-entry .gnu.version 1054 18 1054)\n(llvm:section-entry .dynstr 912 141 912)\n(llvm:section-entry .dynsym 696 216 696)\n(llvm:section-entry .gnu.hash 664 28 664)\n(llvm:section-entry .note.ABI-tag 632 32 632)\n(llvm:section-entry .note.gnu.build-id 596 36 596)\n(llvm:section-entry .interp 568 27 568)\n(llvm:section-flags .shstrtab true false false)\n(llvm:section-flags .strtab true false false)\n(llvm:section-flags .symtab true false false)\n(llvm:section-flags .comment true false false)\n(llvm:section-flags .bss true true false)\n(llvm:section-flags .data true true false)\n(llvm:section-flags .got.plt true true false)\n(llvm:section-flags .got true true false)\n(llvm:section-flags .dynamic true true false)\n(llvm:section-flags .fini_array true true false)\n(llvm:section-flags .init_array true true false)\n(llvm:section-flags .eh_frame true false false)\n(llvm:section-flags .eh_frame_hdr true false false)\n(llvm:section-flags .rodata true false false)\n(llvm:section-flags .fini true false true)\n(llvm:section-flags .text true false true)\n(llvm:section-flags .plt true false true)\n(llvm:section-flags .init true false true)\n(llvm:section-flags .rela.plt true false false)\n(llvm:section-flags .rela.dyn true false false)\n(llvm:section-flags .gnu.version_r true false false)\n(llvm:section-flags .gnu.version true false false)\n(llvm:section-flags .dynstr true false false)\n(llvm:section-flags .dynsym true false false)\n(llvm:section-flags .gnu.hash true false false)\n(llvm:section-flags .note.ABI-tag true false false)\n(llvm:section-flags .note.gnu.build-id true false false)\n(llvm:section-flags .interp true false false)\n(llvm:symbol-entry abort 0 0 0 0)\n(llvm:symbol-entry __cxa_finalize 0 0 0 0)\n(llvm:symbol-entry __libc_start_main 0 0 0 0)\n(llvm:symbol-entry _init 1456 0 1456 1456)\n(llvm:symbol-entry main 1876 52 1876 1876)\n(llvm:symbol-entry _start 1600 52 1600 1600)\n(llvm:symbol-entry abort@GLIBC_2.17 0 0 0 0)\n(llvm:symbol-entry get_two 1928 8 1928 1928)\n(llvm:symbol-entry _fini 1936 0 1936 1936)\n(llvm:symbol-entry __cxa_finalize@GLIBC_2.17 0 0 0 0)\n(llvm:symbol-entry __libc_start_main@GLIBC_2.34 0 0 0 0)\n(llvm:symbol-entry frame_dummy 1872 0 1872 1872)\n(llvm:symbol-entry __do_global_dtors_aux 1792 0 1792 1792)\n(llvm:symbol-entry register_tm_clones 1728 0 1728 1728)\n(llvm:symbol-entry deregister_tm_clones 1680 0 1680 1680)\n(llvm:symbol-entry call_weak_fn 1652 20 1652 1652)\n(mapped 0 2252 0)\n(mapped 69048 632 3512)\n(named-region 0 2252 02)\n(named-region 69048 648 03)\n(named-region 568 27 .interp)\n(named-region 596 36 .note.gnu.build-id)\n(named-region 632 32 .note.ABI-tag)\n(named-region 664 28 .gnu.hash)\n(named-region 696 216 .dynsym)\n(named-region 912 141 .dynstr)\n(named-region 1054 18 .gnu.version)\n(named-region 1072 48 .gnu.version_r)\n(named-region 1120 240 .rela.dyn)\n(named-region 1360 96 .rela.plt)\n(named-region 1456 24 .init)\n(named-region 1488 96 .plt)\n(named-region 1600 336 .text)\n(named-region 1936 20 .fini)\n(named-region 1956 4 .rodata)\n(named-region 1960 68 .eh_frame_hdr)\n(named-region 2032 220 .eh_frame)\n(named-region 69048 8 .init_array)\n(named-region 69056 8 .fini_array)\n(named-region 69064 480 .dynamic)\n(named-region 69544 64 .got)\n(named-region 69608 56 .got.plt)\n(named-region 69664 16 .data)\n(named-region 69680 16 .bss)\n(named-region 0 71 .comment)\n(named-region 0 2208 .symtab)\n(named-region 0 572 .strtab)\n(named-region 0 259 .shstrtab)\n(named-symbol 1652 call_weak_fn)\n(named-symbol 1680 deregister_tm_clones)\n(named-symbol 1728 register_tm_clones)\n(named-symbol 1792 __do_global_dtors_aux)\n(named-symbol 1872 frame_dummy)\n(named-symbol 0 __libc_start_main@GLIBC_2.34)\n(named-symbol 0 __cxa_finalize@GLIBC_2.17)\n(named-symbol 1936 _fini)\n(named-symbol 1928 get_two)\n(named-symbol 0 abort@GLIBC_2.17)\n(named-symbol 1600 _start)\n(named-symbol 1876 main)\n(named-symbol 1456 _init)\n(named-symbol 0 __libc_start_main)\n(named-symbol 0 __cxa_finalize)\n(named-symbol 0 abort)\n(require libc.so.6)\n(section 568 27)\n(section 596 36)\n(section 632 32)\n(section 664 28)\n(section 696 216)\n(section 912 141)\n(section 1054 18)\n(section 1072 48)\n(section 1120 240)\n(section 1360 96)\n(section 1456 24)\n(section 1488 96)\n(section 1600 336)\n(section 1936 20)\n(section 1956 4)\n(section 1960 68)\n(section 2032 220)\n(section 69048 8)\n(section 69056 8)\n(section 69064 480)\n(section 69544 64)\n(section 69608 56)\n(section 69664 16)\n(section 69680 16)\n(section 0 71)\n(section 0 2208)\n(section 0 572)\n(section 0 259)\n(segment 0 2252 true false true)\n(segment 69048 648 true true false)\n(subarch v8)\n(symbol-chunk 1652 20 1652)\n(symbol-chunk 1928 8 1928)\n(symbol-chunk 1600 52 1600)\n(symbol-chunk 1876 52 1876)\n(symbol-value 1652 1652)\n(symbol-value 1680 1680)\n(symbol-value 1728 1728)\n(symbol-value 1792 1792)\n(symbol-value 1872 1872)\n(symbol-value 1936 1936)\n(symbol-value 1928 1928)\n(symbol-value 1600 1600)\n(symbol-value 1876 1876)\n(symbol-value 1456 1456)\n(symbol-value 0 0)\n(system \"\")\n(vendor \"\")\n"), -Attr("abi-name","\"aarch64-linux-gnu-elf\"")]), -Sections([Section(".shstrtab", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x40\x06\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x58\x1c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x38\x00\x09\x00\x40\x00\x1d\x00\x1c\x00\x06\x00\x00\x00\x04\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x04\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xcc\x08\x00\x00\x00\x00\x00\x00\xcc\x08\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x01\x00\x00\x00\x06\x00\x00\x00\xb8\x0d\x00\x00\x00\x00\x00\x00\xb8\x0d\x01\x00\x00\x00\x00\x00\xb8\x0d\x01"), -Section(".strtab", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x40\x06\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x58\x1c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x38\x00\x09\x00\x40\x00\x1d\x00\x1c\x00\x06\x00\x00\x00\x04\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x04\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xcc\x08\x00\x00\x00\x00\x00\x00\xcc\x08\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x01\x00\x00\x00\x06\x00\x00\x00\xb8\x0d\x00\x00\x00\x00\x00\x00\xb8\x0d\x01\x00\x00\x00\x00\x00\xb8\x0d\x01\x00\x00\x00\x00\x00\x78\x02\x00\x00\x00\x00\x00\x00\x88\x02\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x02\x00\x00\x00\x06\x00\x00\x00\xc8\x0d\x00\x00\x00\x00\x00\x00\xc8\x0d\x01\x00\x00\x00\x00\x00\xc8\x0d\x01\x00\x00\x00\x00\x00\xe0\x01\x00\x00\x00\x00\x00\x00\xe0\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x04\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x50\xe5\x74\x64\x04\x00\x00\x00\xa8\x07\x00\x00\x00\x00\x00\x00\xa8\x07\x00\x00\x00\x00\x00\x00\xa8\x07\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x51\xe5\x74\x64\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x52\xe5\x74\x64\x04\x00\x00\x00\xb8\x0d\x00\x00\x00\x00\x00\x00\xb8\x0d\x01\x00\x00\x00\x00\x00\xb8\x0d\x01\x00\x00\x00\x00\x00\x48\x02\x00\x00\x00\x00\x00\x00\x48\x02\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x2f\x6c\x69\x62"), -Section(".symtab", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x40\x06\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x58\x1c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x38\x00\x09\x00\x40\x00\x1d\x00\x1c\x00\x06\x00\x00\x00\x04\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x04\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xcc\x08\x00\x00\x00\x00\x00\x00\xcc\x08\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x01\x00\x00\x00\x06\x00\x00\x00\xb8\x0d\x00\x00\x00\x00\x00\x00\xb8\x0d\x01\x00\x00\x00\x00\x00\xb8\x0d\x01\x00\x00\x00\x00\x00\x78\x02\x00\x00\x00\x00\x00\x00\x88\x02\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x02\x00\x00\x00\x06\x00\x00\x00\xc8\x0d\x00\x00\x00\x00\x00\x00\xc8\x0d\x01\x00\x00\x00\x00\x00\xc8\x0d\x01\x00\x00\x00\x00\x00\xe0\x01\x00\x00\x00\x00\x00\x00\xe0\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x04\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x50\xe5\x74\x64\x04\x00\x00\x00\xa8\x07\x00\x00\x00\x00\x00\x00\xa8\x07\x00\x00\x00\x00\x00\x00\xa8\x07\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x51\xe5\x74\x64\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x52\xe5\x74\x64\x04\x00\x00\x00\xb8\x0d\x00\x00\x00\x00\x00\x00\xb8\x0d\x01\x00\x00\x00\x00\x00\xb8\x0d\x01\x00\x00\x00\x00\x00\x48\x02\x00\x00\x00\x00\x00\x00\x48\x02\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x2f\x6c\x69\x62\x2f\x6c\x64\x2d\x6c\x69\x6e\x75\x78\x2d\x61\x61\x72\x63\x68\x36\x34\x2e\x73\x6f\x2e\x31\x00\x00\x04\x00\x00\x00\x14\x00\x00\x00\x03\x00\x00\x00\x47\x4e\x55\x00\x0c\x02\x2d\x3d\xd5\x3a\x90\x7a\x0f\x6f\x12\x14\x16\x4b\x89\x38\xc5\x27\x4f\x42\x04\x00\x00\x00\x10\x00\x00\x00\x01\x00\x00\x00\x47\x4e\x55\x00\x00\x00\x00\x00\x03\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x01\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x0b\x00\xb0\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x17\x00\x20\x10\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x48\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x22\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x22\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x73\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5f\x5f\x63\x78\x61\x5f\x66\x69\x6e\x61\x6c\x69\x7a\x65\x00\x5f\x5f\x6c\x69\x62\x63\x5f\x73\x74\x61\x72\x74\x5f\x6d\x61\x69\x6e\x00\x61\x62\x6f\x72\x74\x00\x6c\x69\x62\x63\x2e\x73\x6f\x2e\x36\x00\x47\x4c\x49\x42\x43\x5f\x32\x2e\x31\x37\x00\x47\x4c\x49\x42\x43\x5f\x32\x2e\x33\x34\x00\x5f\x49\x54\x4d\x5f\x64\x65\x72\x65\x67\x69\x73\x74\x65\x72\x54\x4d\x43\x6c\x6f\x6e\x65\x54\x61\x62\x6c\x65\x00\x5f\x5f\x67\x6d\x6f\x6e\x5f\x73\x74\x61\x72\x74\x5f\x5f\x00\x5f\x49\x54\x4d\x5f\x72\x65\x67\x69\x73\x74\x65\x72\x54\x4d\x43\x6c\x6f\x6e\x65\x54\x61\x62\x6c\x65\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x01\x00\x03\x00\x01\x00\x03\x00\x01\x00\x01\x00\x02\x00\x28\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x97\x91\x96\x06\x00\x00\x03\x00\x32\x00\x00\x00\x10\x00\x00\x00\xb4\x91\x96\x06\x00\x00\x02\x00\x3d\x00\x00\x00\x00\x00\x00\x00\xb8\x0d\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x50\x07\x00\x00\x00\x00\x00\x00\xc0\x0d\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\xc0\x0f\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x34\x10\x01\x00\x00\x00\x00\x00\xd0\x0f\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x38\x10\x01\x00\x00\x00\x00\x00\xd8\x0f\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x54\x07\x00\x00\x00\x00\x00\x00\x28\x10\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x28\x10\x01\x00\x00\x00\x00\x00\xb0\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xb8\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xc8\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe0\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x08\x10\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x10\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x18\x10\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1f\x20\x03\xd5\xfd\x7b\xbf\xa9\xfd\x03\x00\x91\x2e\x00\x00\x94\xfd\x7b\xc1\xa8\xc0\x03\x5f\xd6\x00\x00\x00\x00\x00\x00\x00\x00\xf0\x7b\xbf\xa9\x90\x00\x00\x90\x11\xfe\x47\xf9\x10\xe2\x3f\x91\x20\x02\x1f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x90\x00\x00\xb0\x11\x02\x40\xf9\x10\x02\x00\x91\x20\x02\x1f\xd6\x90\x00\x00\xb0\x11\x06\x40\xf9\x10\x22\x00\x91\x20\x02\x1f\xd6\x90\x00\x00\xb0\x11\x0a\x40\xf9\x10\x42\x00\x91\x20\x02\x1f\xd6\x90\x00\x00\xb0\x11\x0e\x40\xf9\x10\x62\x00\x91\x20\x02\x1f\xd6\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1f\x20\x03\xd5\x1d\x00\x80\xd2\x1e\x00\x80\xd2\xe5\x03\x00\xaa\xe1\x03\x40\xf9\xe2\x23\x00\x91\xe6\x03\x00\x91\x80\x00\x00\x90\x00\xec\x47\xf9\x03\x00\x80\xd2\x04\x00\x80\xd2\xe1\xff\xff\x97\xec\xff\xff\x97\x80\x00\x00\x90\x00\xe4\x47\xf9\x40\x00\x00\xb4\xe4\xff\xff\x17\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x80\x00\x00\xb0\x00\xc0\x00\x91\x81\x00\x00\xb0\x21\xc0\x00\x91\x3f\x00\x00\xeb\xc0\x00\x00\x54\x81\x00\x00\x90\x21\xd8\x47\xf9\x61\x00\x00\xb4\xf0\x03\x01\xaa\x00\x02\x1f\xd6\xc0\x03\x5f\xd6\x80\x00\x00\xb0\x00\xc0\x00\x91\x81\x00\x00\xb0\x21\xc0\x00\x91\x21\x00\x00\xcb\x22\xfc\x7f\xd3\x41\x0c\x81\x8b\x21\xfc\x41\x93\xc1\x00\x00\xb4\x82\x00\x00\x90\x42\xf0\x47\xf9\x62\x00\x00\xb4\xf0\x03\x02\xaa\x00\x02\x1f\xd6\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\xfd\x7b\xbe\xa9\xfd\x03\x00\x91\xf3\x0b\x00\xf9\x93\x00\x00\xb0\x60\xc2\x40\x39\x40\x01\x00\x35\x80\x00\x00\x90\x00\xdc\x47\xf9\x80\x00\x00\xb4\x80\x00\x00\xb0\x00\x14\x40\xf9\xb5\xff\xff\x97\xd8\xff\xff\x97\x20\x00\x80\x52\x60\xc2\x00\x39\xf3\x0b\x40\xf9\xfd\x7b\xc2\xa8\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\xdc\xff\xff\x17\xfd\x7b\xbf\xa9\xfd\x03\x00\x91\x89\x00\x00\x90\x29\xe1\x47\xf9\x28\x00\x80\x52\x28\x01\x00\xb9\x07\x00\x00\x94\x88\x00\x00\x90\x08\xe9\x47\xf9\x00\x01\x00\xb9\xe0\x03\x1f\x2a\xfd\x7b\xc1\xa8\xc0\x03\x5f\xd6\x40\x00\x80\x52\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\xfd\x7b\xbf\xa9\xfd\x03\x00\x91\xfd\x7b\xc1\xa8\xc0\x03\x5f\xd6\x01\x00\x02\x00\x01\x1b\x03\x3b\x44\x00\x00\x00\x07\x00\x00\x00\x98\xfe\xff\xff\x5c\x00\x00\x00\xe8\xfe\xff\xff\x70\x00\x00\x00\x18\xff\xff\xff\x84\x00\x00\x00\x58\xff\xff\xff\x98\x00\x00\x00\xa8\xff\xff\xff\xbc\x00\x00\x00\xac\xff\xff\xff\xe4\x00\x00\x00\xe0\xff\xff\xff\x0c\x01\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x01\x7a\x52\x00\x04\x78\x1e\x01\x1b\x0c\x1f\x00\x10\x00\x00\x00\x18\x00\x00\x00\x34\xfe\xff\xff\x34\x00\x00\x00\x00\x41\x07\x1e\x10\x00\x00\x00\x2c\x00\x00\x00\x70\xfe\xff\xff\x30\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x40\x00\x00\x00\x8c\xfe\xff\xff\x3c\x00\x00\x00\x00\x00\x00\x00\x20\x00\x00\x00\x54\x00\x00\x00\xb8\xfe\xff\xff\x48\x00\x00\x00\x00\x41\x0e\x20\x9d\x04\x9e\x03\x42\x93\x02\x4e\xde\xdd\xd3\x0e\x00\x00\x00\x00\x10\x00\x00\x00\x78\x00\x00\x00\xe4\xfe\xff\xff\x04\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x01\x7a\x52\x00\x01\x7c\x1e\x01\x1b\x0c\x1f\x00\x24\x00\x00\x00\x18\x00\x00\x00\xc0\xfe\xff\xff\x34\x00\x00\x00\x00\x44\x0e\x10"), -Section(".comment", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x40\x06\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x58\x1c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x38\x00\x09\x00\x40\x00\x1d\x00\x1c\x00\x06\x00\x00\x00\x04\x00\x00"), -Section(".interp", 0x238, "\x2f\x6c\x69\x62\x2f\x6c\x64\x2d\x6c\x69\x6e\x75\x78\x2d\x61\x61\x72\x63\x68\x36\x34\x2e\x73\x6f\x2e\x31\x00"), -Section(".note.gnu.build-id", 0x254, "\x04\x00\x00\x00\x14\x00\x00\x00\x03\x00\x00\x00\x47\x4e\x55\x00\x0c\x02\x2d\x3d\xd5\x3a\x90\x7a\x0f\x6f\x12\x14\x16\x4b\x89\x38\xc5\x27\x4f\x42"), -Section(".note.ABI-tag", 0x278, "\x04\x00\x00\x00\x10\x00\x00\x00\x01\x00\x00\x00\x47\x4e\x55\x00\x00\x00\x00\x00\x03\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00"), -Section(".gnu.hash", 0x298, "\x01\x00\x00\x00\x01\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".dynsym", 0x2B8, "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x0b\x00\xb0\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x17\x00\x20\x10\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x48\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x22\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x22\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x73\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".dynstr", 0x390, "\x00\x5f\x5f\x63\x78\x61\x5f\x66\x69\x6e\x61\x6c\x69\x7a\x65\x00\x5f\x5f\x6c\x69\x62\x63\x5f\x73\x74\x61\x72\x74\x5f\x6d\x61\x69\x6e\x00\x61\x62\x6f\x72\x74\x00\x6c\x69\x62\x63\x2e\x73\x6f\x2e\x36\x00\x47\x4c\x49\x42\x43\x5f\x32\x2e\x31\x37\x00\x47\x4c\x49\x42\x43\x5f\x32\x2e\x33\x34\x00\x5f\x49\x54\x4d\x5f\x64\x65\x72\x65\x67\x69\x73\x74\x65\x72\x54\x4d\x43\x6c\x6f\x6e\x65\x54\x61\x62\x6c\x65\x00\x5f\x5f\x67\x6d\x6f\x6e\x5f\x73\x74\x61\x72\x74\x5f\x5f\x00\x5f\x49\x54\x4d\x5f\x72\x65\x67\x69\x73\x74\x65\x72\x54\x4d\x43\x6c\x6f\x6e\x65\x54\x61\x62\x6c\x65\x00"), -Section(".gnu.version", 0x41E, "\x00\x00\x00\x00\x00\x00\x02\x00\x01\x00\x03\x00\x01\x00\x03\x00\x01\x00"), -Section(".gnu.version_r", 0x430, "\x01\x00\x02\x00\x28\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x97\x91\x96\x06\x00\x00\x03\x00\x32\x00\x00\x00\x10\x00\x00\x00\xb4\x91\x96\x06\x00\x00\x02\x00\x3d\x00\x00\x00\x00\x00\x00\x00"), -Section(".rela.dyn", 0x460, "\xb8\x0d\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x50\x07\x00\x00\x00\x00\x00\x00\xc0\x0d\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\xc0\x0f\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x34\x10\x01\x00\x00\x00\x00\x00\xd0\x0f\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x38\x10\x01\x00\x00\x00\x00\x00\xd8\x0f\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x54\x07\x00\x00\x00\x00\x00\x00\x28\x10\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x28\x10\x01\x00\x00\x00\x00\x00\xb0\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xb8\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xc8\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe0\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".rela.plt", 0x550, "\x00\x10\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x08\x10\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x10\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x18\x10\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".init", 0x5B0, "\x1f\x20\x03\xd5\xfd\x7b\xbf\xa9\xfd\x03\x00\x91\x2e\x00\x00\x94\xfd\x7b\xc1\xa8\xc0\x03\x5f\xd6"), -Section(".plt", 0x5D0, "\xf0\x7b\xbf\xa9\x90\x00\x00\x90\x11\xfe\x47\xf9\x10\xe2\x3f\x91\x20\x02\x1f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x90\x00\x00\xb0\x11\x02\x40\xf9\x10\x02\x00\x91\x20\x02\x1f\xd6\x90\x00\x00\xb0\x11\x06\x40\xf9\x10\x22\x00\x91\x20\x02\x1f\xd6\x90\x00\x00\xb0\x11\x0a\x40\xf9\x10\x42\x00\x91\x20\x02\x1f\xd6\x90\x00\x00\xb0\x11\x0e\x40\xf9\x10\x62\x00\x91\x20\x02\x1f\xd6"), -Section(".text", 0x640, "\x1f\x20\x03\xd5\x1d\x00\x80\xd2\x1e\x00\x80\xd2\xe5\x03\x00\xaa\xe1\x03\x40\xf9\xe2\x23\x00\x91\xe6\x03\x00\x91\x80\x00\x00\x90\x00\xec\x47\xf9\x03\x00\x80\xd2\x04\x00\x80\xd2\xe1\xff\xff\x97\xec\xff\xff\x97\x80\x00\x00\x90\x00\xe4\x47\xf9\x40\x00\x00\xb4\xe4\xff\xff\x17\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x80\x00\x00\xb0\x00\xc0\x00\x91\x81\x00\x00\xb0\x21\xc0\x00\x91\x3f\x00\x00\xeb\xc0\x00\x00\x54\x81\x00\x00\x90\x21\xd8\x47\xf9\x61\x00\x00\xb4\xf0\x03\x01\xaa\x00\x02\x1f\xd6\xc0\x03\x5f\xd6\x80\x00\x00\xb0\x00\xc0\x00\x91\x81\x00\x00\xb0\x21\xc0\x00\x91\x21\x00\x00\xcb\x22\xfc\x7f\xd3\x41\x0c\x81\x8b\x21\xfc\x41\x93\xc1\x00\x00\xb4\x82\x00\x00\x90\x42\xf0\x47\xf9\x62\x00\x00\xb4\xf0\x03\x02\xaa\x00\x02\x1f\xd6\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\xfd\x7b\xbe\xa9\xfd\x03\x00\x91\xf3\x0b\x00\xf9\x93\x00\x00\xb0\x60\xc2\x40\x39\x40\x01\x00\x35\x80\x00\x00\x90\x00\xdc\x47\xf9\x80\x00\x00\xb4\x80\x00\x00\xb0\x00\x14\x40\xf9\xb5\xff\xff\x97\xd8\xff\xff\x97\x20\x00\x80\x52\x60\xc2\x00\x39\xf3\x0b\x40\xf9\xfd\x7b\xc2\xa8\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\xdc\xff\xff\x17\xfd\x7b\xbf\xa9\xfd\x03\x00\x91\x89\x00\x00\x90\x29\xe1\x47\xf9\x28\x00\x80\x52\x28\x01\x00\xb9\x07\x00\x00\x94\x88\x00\x00\x90\x08\xe9\x47\xf9\x00\x01\x00\xb9\xe0\x03\x1f\x2a\xfd\x7b\xc1\xa8\xc0\x03\x5f\xd6\x40\x00\x80\x52\xc0\x03\x5f\xd6"), -Section(".fini", 0x790, "\x1f\x20\x03\xd5\xfd\x7b\xbf\xa9\xfd\x03\x00\x91\xfd\x7b\xc1\xa8\xc0\x03\x5f\xd6"), -Section(".rodata", 0x7A4, "\x01\x00\x02\x00"), -Section(".eh_frame_hdr", 0x7A8, "\x01\x1b\x03\x3b\x44\x00\x00\x00\x07\x00\x00\x00\x98\xfe\xff\xff\x5c\x00\x00\x00\xe8\xfe\xff\xff\x70\x00\x00\x00\x18\xff\xff\xff\x84\x00\x00\x00\x58\xff\xff\xff\x98\x00\x00\x00\xa8\xff\xff\xff\xbc\x00\x00\x00\xac\xff\xff\xff\xe4\x00\x00\x00\xe0\xff\xff\xff\x0c\x01\x00\x00"), -Section(".eh_frame", 0x7F0, "\x10\x00\x00\x00\x00\x00\x00\x00\x01\x7a\x52\x00\x04\x78\x1e\x01\x1b\x0c\x1f\x00\x10\x00\x00\x00\x18\x00\x00\x00\x34\xfe\xff\xff\x34\x00\x00\x00\x00\x41\x07\x1e\x10\x00\x00\x00\x2c\x00\x00\x00\x70\xfe\xff\xff\x30\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x40\x00\x00\x00\x8c\xfe\xff\xff\x3c\x00\x00\x00\x00\x00\x00\x00\x20\x00\x00\x00\x54\x00\x00\x00\xb8\xfe\xff\xff\x48\x00\x00\x00\x00\x41\x0e\x20\x9d\x04\x9e\x03\x42\x93\x02\x4e\xde\xdd\xd3\x0e\x00\x00\x00\x00\x10\x00\x00\x00\x78\x00\x00\x00\xe4\xfe\xff\xff\x04\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x01\x7a\x52\x00\x01\x7c\x1e\x01\x1b\x0c\x1f\x00\x24\x00\x00\x00\x18\x00\x00\x00\xc0\xfe\xff\xff\x34\x00\x00\x00\x00\x44\x0e\x10\x44\x0c\x1d\x10\x9e\x02\x9d\x04\x64\x0c\x1f\x10\x44\x0e\x00\xde\xdd\x00\x00\x00\x10\x00\x00\x00\x40\x00\x00\x00\xcc\xfe\xff\xff\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".fini_array", 0x10DC0, "\x00\x07\x00\x00\x00\x00\x00\x00"), -Section(".dynamic", 0x10DC8, "\x01\x00\x00\x00\x00\x00\x00\x00\x28\x00\x00\x00\x00\x00\x00\x00\x0c\x00\x00\x00\x00\x00\x00\x00\xb0\x05\x00\x00\x00\x00\x00\x00\x0d\x00\x00\x00\x00\x00\x00\x00\x90\x07\x00\x00\x00\x00\x00\x00\x19\x00\x00\x00\x00\x00\x00\x00\xb8\x0d\x01\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x1a\x00\x00\x00\x00\x00\x00\x00\xc0\x0d\x01\x00\x00\x00\x00\x00\x1c\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\xf5\xfe\xff\x6f\x00\x00\x00\x00\x98\x02\x00\x00\x00\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x90\x03\x00\x00\x00\x00\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\xb8\x02\x00\x00\x00\x00\x00\x00\x0a\x00\x00\x00\x00\x00\x00\x00\x8d\x00\x00\x00\x00\x00\x00\x00\x0b\x00\x00\x00\x00\x00\x00\x00\x18\x00\x00\x00\x00\x00\x00\x00\x15\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\xe8\x0f\x01\x00\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x60\x00\x00\x00\x00\x00\x00\x00\x14\x00\x00\x00\x00\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x17\x00\x00\x00\x00\x00\x00\x00\x50\x05\x00\x00\x00\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x60\x04\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\xf0\x00\x00\x00\x00\x00\x00\x00\x09\x00\x00\x00\x00\x00\x00\x00\x18\x00\x00\x00\x00\x00\x00\x00\xfb\xff\xff\x6f\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\xfe\xff\xff\x6f\x00\x00\x00\x00\x30\x04\x00\x00\x00\x00\x00\x00\xff\xff\xff\x6f\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\xf0\xff\xff\x6f\x00\x00\x00\x00\x1e\x04\x00\x00\x00\x00\x00\x00\xf9\xff\xff\x6f\x00\x00\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".got", 0x10FA8, "\xc8\x0d\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x34\x10\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x38\x10\x01\x00\x00\x00\x00\x00\x54\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".got.plt", 0x10FE8, "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xd0\x05\x00\x00\x00\x00\x00\x00\xd0\x05\x00\x00\x00\x00\x00\x00\xd0\x05\x00\x00\x00\x00\x00\x00\xd0\x05\x00\x00\x00\x00\x00\x00"), -Section(".data", 0x11020, "\x00\x00\x00\x00\x00\x00\x00\x00\x28\x10\x01\x00\x00\x00\x00\x00"), -Section(".init_array", 0x10DB8, "\x50\x07\x00\x00\x00\x00\x00\x00")]), -Memmap([Annotation(Region(0x0,0x8CB), Attr("segment","02 0 2252")), -Annotation(Region(0x640,0x673), Attr("symbol","\"_start\"")), -Annotation(Region(0x0,0x102), Attr("section","\".shstrtab\"")), -Annotation(Region(0x0,0x23B), Attr("section","\".strtab\"")), -Annotation(Region(0x0,0x89F), Attr("section","\".symtab\"")), -Annotation(Region(0x0,0x46), Attr("section","\".comment\"")), -Annotation(Region(0x238,0x252), Attr("section","\".interp\"")), -Annotation(Region(0x254,0x277), Attr("section","\".note.gnu.build-id\"")), -Annotation(Region(0x278,0x297), Attr("section","\".note.ABI-tag\"")), -Annotation(Region(0x298,0x2B3), Attr("section","\".gnu.hash\"")), -Annotation(Region(0x2B8,0x38F), Attr("section","\".dynsym\"")), -Annotation(Region(0x390,0x41C), Attr("section","\".dynstr\"")), -Annotation(Region(0x41E,0x42F), Attr("section","\".gnu.version\"")), -Annotation(Region(0x430,0x45F), Attr("section","\".gnu.version_r\"")), -Annotation(Region(0x460,0x54F), Attr("section","\".rela.dyn\"")), -Annotation(Region(0x550,0x5AF), Attr("section","\".rela.plt\"")), -Annotation(Region(0x5B0,0x5C7), Attr("section","\".init\"")), -Annotation(Region(0x5D0,0x62F), Attr("section","\".plt\"")), -Annotation(Region(0x5B0,0x5C7), Attr("code-region","()")), -Annotation(Region(0x5D0,0x62F), Attr("code-region","()")), -Annotation(Region(0x640,0x673), Attr("symbol-info","_start 0x640 52")), -Annotation(Region(0x674,0x687), Attr("symbol","\"call_weak_fn\"")), -Annotation(Region(0x674,0x687), Attr("symbol-info","call_weak_fn 0x674 20")), -Annotation(Region(0x754,0x787), Attr("symbol","\"main\"")), -Annotation(Region(0x640,0x78F), Attr("section","\".text\"")), -Annotation(Region(0x640,0x78F), Attr("code-region","()")), -Annotation(Region(0x754,0x787), Attr("symbol-info","main 0x754 52")), -Annotation(Region(0x788,0x78F), Attr("symbol","\"get_two\"")), -Annotation(Region(0x788,0x78F), Attr("symbol-info","get_two 0x788 8")), -Annotation(Region(0x790,0x7A3), Attr("section","\".fini\"")), -Annotation(Region(0x790,0x7A3), Attr("code-region","()")), -Annotation(Region(0x7A4,0x7A7), Attr("section","\".rodata\"")), -Annotation(Region(0x7A8,0x7EB), Attr("section","\".eh_frame_hdr\"")), -Annotation(Region(0x7F0,0x8CB), Attr("section","\".eh_frame\"")), -Annotation(Region(0x10DB8,0x1102F), Attr("segment","03 0x10DB8 648")), -Annotation(Region(0x10DC0,0x10DC7), Attr("section","\".fini_array\"")), -Annotation(Region(0x10DC8,0x10FA7), Attr("section","\".dynamic\"")), -Annotation(Region(0x10FA8,0x10FE7), Attr("section","\".got\"")), -Annotation(Region(0x10FE8,0x1101F), Attr("section","\".got.plt\"")), -Annotation(Region(0x11020,0x1102F), Attr("section","\".data\"")), -Annotation(Region(0x10DB8,0x10DBF), Attr("section","\".init_array\""))]), -Program(Tid(1_451, "%000005ab"), Attrs([]), - Subs([Sub(Tid(1_399, "@__cxa_finalize"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x600"), -Attr("stub","()")]), "__cxa_finalize", Args([Arg(Tid(1_452, "%000005ac"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("__cxa_finalize_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(913, "@__cxa_finalize"), - Attrs([Attr("address","0x600")]), Phis([]), -Defs([Def(Tid(1_161, "%00000489"), Attrs([Attr("address","0x600"), -Attr("insn","adrp x16, #69632")]), Var("R16",Imm(64)), Int(69632,64)), -Def(Tid(1_168, "%00000490"), Attrs([Attr("address","0x604"), -Attr("insn","ldr x17, [x16, #0x8]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(1_174, "%00000496"), Attrs([Attr("address","0x608"), -Attr("insn","add x16, x16, #0x8")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(8,64)))]), Jmps([Call(Tid(1_179, "%0000049b"), - Attrs([Attr("address","0x60C"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), -Sub(Tid(1_400, "@__do_global_dtors_aux"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x700")]), - "__do_global_dtors_aux", Args([Arg(Tid(1_453, "%000005ad"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("__do_global_dtors_aux_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(650, "@__do_global_dtors_aux"), - Attrs([Attr("address","0x700")]), Phis([]), Defs([Def(Tid(654, "%0000028e"), - Attrs([Attr("address","0x700"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("#3",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(18446744073709551584,64))), -Def(Tid(660, "%00000294"), Attrs([Attr("address","0x700"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("#3",Imm(64)),Var("R29",Imm(64)),LittleEndian(),64)), -Def(Tid(666, "%0000029a"), Attrs([Attr("address","0x700"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("#3",Imm(64)),Int(8,64)),Var("R30",Imm(64)),LittleEndian(),64)), -Def(Tid(670, "%0000029e"), Attrs([Attr("address","0x700"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("R31",Imm(64)), -Var("#3",Imm(64))), Def(Tid(676, "%000002a4"), - Attrs([Attr("address","0x704"), Attr("insn","mov x29, sp")]), - Var("R29",Imm(64)), Var("R31",Imm(64))), Def(Tid(684, "%000002ac"), - Attrs([Attr("address","0x708"), Attr("insn","str x19, [sp, #0x10]")]), - Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(16,64)),Var("R19",Imm(64)),LittleEndian(),64)), -Def(Tid(689, "%000002b1"), Attrs([Attr("address","0x70C"), -Attr("insn","adrp x19, #69632")]), Var("R19",Imm(64)), Int(69632,64)), -Def(Tid(696, "%000002b8"), Attrs([Attr("address","0x710"), -Attr("insn","ldrb w0, [x19, #0x30]")]), Var("R0",Imm(64)), -UNSIGNED(64,Load(Var("mem",Mem(64,8)),PLUS(Var("R19",Imm(64)),Int(48,64)),LittleEndian(),8)))]), -Jmps([Goto(Tid(703, "%000002bf"), Attrs([Attr("address","0x714"), -Attr("insn","cbnz w0, #0x28")]), - NEQ(Extract(31,0,Var("R0",Imm(64))),Int(0,32)), -Direct(Tid(701, "%000002bd"))), Goto(Tid(1_441, "%000005a1"), Attrs([]), - Int(1,1), Direct(Tid(858, "%0000035a")))])), Blk(Tid(858, "%0000035a"), - Attrs([Attr("address","0x718")]), Phis([]), Defs([Def(Tid(861, "%0000035d"), - Attrs([Attr("address","0x718"), Attr("insn","adrp x0, #65536")]), - Var("R0",Imm(64)), Int(65536,64)), Def(Tid(868, "%00000364"), - Attrs([Attr("address","0x71C"), Attr("insn","ldr x0, [x0, #0xfb8]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(4024,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(874, "%0000036a"), Attrs([Attr("address","0x720"), -Attr("insn","cbz x0, #0x10")]), EQ(Var("R0",Imm(64)),Int(0,64)), -Direct(Tid(872, "%00000368"))), Goto(Tid(1_442, "%000005a2"), Attrs([]), - Int(1,1), Direct(Tid(897, "%00000381")))])), Blk(Tid(897, "%00000381"), - Attrs([Attr("address","0x724")]), Phis([]), Defs([Def(Tid(900, "%00000384"), - Attrs([Attr("address","0x724"), Attr("insn","adrp x0, #69632")]), - Var("R0",Imm(64)), Int(69632,64)), Def(Tid(907, "%0000038b"), - Attrs([Attr("address","0x728"), Attr("insn","ldr x0, [x0, #0x28]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(40,64)),LittleEndian(),64)), -Def(Tid(912, "%00000390"), Attrs([Attr("address","0x72C"), -Attr("insn","bl #-0x12c")]), Var("R30",Imm(64)), Int(1840,64))]), -Jmps([Call(Tid(915, "%00000393"), Attrs([Attr("address","0x72C"), -Attr("insn","bl #-0x12c")]), Int(1,1), -(Direct(Tid(1_399, "@__cxa_finalize")),Direct(Tid(872, "%00000368"))))])), -Blk(Tid(872, "%00000368"), Attrs([Attr("address","0x730")]), Phis([]), -Defs([Def(Tid(880, "%00000370"), Attrs([Attr("address","0x730"), -Attr("insn","bl #-0xa0")]), Var("R30",Imm(64)), Int(1844,64))]), -Jmps([Call(Tid(882, "%00000372"), Attrs([Attr("address","0x730"), -Attr("insn","bl #-0xa0")]), Int(1,1), -(Direct(Tid(1_413, "@deregister_tm_clones")),Direct(Tid(884, "%00000374"))))])), -Blk(Tid(884, "%00000374"), Attrs([Attr("address","0x734")]), Phis([]), -Defs([Def(Tid(887, "%00000377"), Attrs([Attr("address","0x734"), -Attr("insn","mov w0, #0x1")]), Var("R0",Imm(64)), Int(1,64)), -Def(Tid(895, "%0000037f"), Attrs([Attr("address","0x738"), -Attr("insn","strb w0, [x19, #0x30]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R19",Imm(64)),Int(48,64)),Extract(7,0,Var("R0",Imm(64))),LittleEndian(),8))]), -Jmps([Goto(Tid(1_443, "%000005a3"), Attrs([]), Int(1,1), -Direct(Tid(701, "%000002bd")))])), Blk(Tid(701, "%000002bd"), - Attrs([Attr("address","0x73C")]), Phis([]), Defs([Def(Tid(711, "%000002c7"), - Attrs([Attr("address","0x73C"), Attr("insn","ldr x19, [sp, #0x10]")]), - Var("R19",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(16,64)),LittleEndian(),64)), -Def(Tid(718, "%000002ce"), Attrs([Attr("address","0x740"), -Attr("insn","ldp x29, x30, [sp], #0x20")]), Var("R29",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(723, "%000002d3"), Attrs([Attr("address","0x740"), -Attr("insn","ldp x29, x30, [sp], #0x20")]), Var("R30",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(727, "%000002d7"), Attrs([Attr("address","0x740"), -Attr("insn","ldp x29, x30, [sp], #0x20")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(32,64)))]), Jmps([Call(Tid(732, "%000002dc"), - Attrs([Attr("address","0x744"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), Sub(Tid(1_404, "@__libc_start_main"), - Attrs([Attr("c.proto","signed (*)(signed (*)(signed , char** , char** );* main, signed , char** , \nvoid* auxv)"), -Attr("address","0x5F0"), Attr("stub","()")]), "__libc_start_main", - Args([Arg(Tid(1_454, "%000005ae"), - Attrs([Attr("c.layout","**[ : 64]"), -Attr("c.data","Top:u64 ptr ptr"), -Attr("c.type","signed (*)(signed , char** , char** );*")]), - Var("__libc_start_main_main",Imm(64)), Var("R0",Imm(64)), In()), -Arg(Tid(1_455, "%000005af"), Attrs([Attr("c.layout","[signed : 32]"), -Attr("c.data","Top:u32"), Attr("c.type","signed")]), - Var("__libc_start_main_arg2",Imm(32)), LOW(32,Var("R1",Imm(64))), In()), -Arg(Tid(1_456, "%000005b0"), Attrs([Attr("c.layout","**[char : 8]"), -Attr("c.data","Top:u8 ptr ptr"), Attr("c.type","char**")]), - Var("__libc_start_main_arg3",Imm(64)), Var("R2",Imm(64)), Both()), -Arg(Tid(1_457, "%000005b1"), Attrs([Attr("c.layout","*[ : 8]"), -Attr("c.data","{} ptr"), Attr("c.type","void*")]), - Var("__libc_start_main_auxv",Imm(64)), Var("R3",Imm(64)), Both()), -Arg(Tid(1_458, "%000005b2"), Attrs([Attr("c.layout","[signed : 32]"), -Attr("c.data","Top:u32"), Attr("c.type","signed")]), - Var("__libc_start_main_result",Imm(32)), LOW(32,Var("R0",Imm(64))), -Out())]), Blks([Blk(Tid(483, "@__libc_start_main"), - Attrs([Attr("address","0x5F0")]), Phis([]), -Defs([Def(Tid(1_139, "%00000473"), Attrs([Attr("address","0x5F0"), -Attr("insn","adrp x16, #69632")]), Var("R16",Imm(64)), Int(69632,64)), -Def(Tid(1_146, "%0000047a"), Attrs([Attr("address","0x5F4"), -Attr("insn","ldr x17, [x16]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R16",Imm(64)),LittleEndian(),64)), -Def(Tid(1_152, "%00000480"), Attrs([Attr("address","0x5F8"), -Attr("insn","add x16, x16, #0x0")]), Var("R16",Imm(64)), -Var("R16",Imm(64)))]), Jmps([Call(Tid(1_157, "%00000485"), - Attrs([Attr("address","0x5FC"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), Sub(Tid(1_405, "@_fini"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x790")]), - "_fini", Args([Arg(Tid(1_459, "%000005b3"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("_fini_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(31, "@_fini"), - Attrs([Attr("address","0x790")]), Phis([]), Defs([Def(Tid(37, "%00000025"), - Attrs([Attr("address","0x794"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("#0",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(18446744073709551600,64))), -Def(Tid(43, "%0000002b"), Attrs([Attr("address","0x794"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("#0",Imm(64)),Var("R29",Imm(64)),LittleEndian(),64)), -Def(Tid(49, "%00000031"), Attrs([Attr("address","0x794"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("#0",Imm(64)),Int(8,64)),Var("R30",Imm(64)),LittleEndian(),64)), -Def(Tid(53, "%00000035"), Attrs([Attr("address","0x794"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("R31",Imm(64)), -Var("#0",Imm(64))), Def(Tid(59, "%0000003b"), Attrs([Attr("address","0x798"), -Attr("insn","mov x29, sp")]), Var("R29",Imm(64)), Var("R31",Imm(64))), -Def(Tid(66, "%00000042"), Attrs([Attr("address","0x79C"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R29",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(71, "%00000047"), Attrs([Attr("address","0x79C"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R30",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(75, "%0000004b"), Attrs([Attr("address","0x79C"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(16,64)))]), Jmps([Call(Tid(80, "%00000050"), - Attrs([Attr("address","0x7A0"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), Sub(Tid(1_406, "@_init"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x5B0")]), - "_init", Args([Arg(Tid(1_460, "%000005b4"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("_init_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(1_251, "@_init"), - Attrs([Attr("address","0x5B0")]), Phis([]), -Defs([Def(Tid(1_257, "%000004e9"), Attrs([Attr("address","0x5B4"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("#6",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(18446744073709551600,64))), -Def(Tid(1_263, "%000004ef"), Attrs([Attr("address","0x5B4"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("#6",Imm(64)),Var("R29",Imm(64)),LittleEndian(),64)), -Def(Tid(1_269, "%000004f5"), Attrs([Attr("address","0x5B4"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("#6",Imm(64)),Int(8,64)),Var("R30",Imm(64)),LittleEndian(),64)), -Def(Tid(1_273, "%000004f9"), Attrs([Attr("address","0x5B4"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("R31",Imm(64)), -Var("#6",Imm(64))), Def(Tid(1_279, "%000004ff"), - Attrs([Attr("address","0x5B8"), Attr("insn","mov x29, sp")]), - Var("R29",Imm(64)), Var("R31",Imm(64))), Def(Tid(1_284, "%00000504"), - Attrs([Attr("address","0x5BC"), Attr("insn","bl #0xb8")]), - Var("R30",Imm(64)), Int(1472,64))]), Jmps([Call(Tid(1_286, "%00000506"), - Attrs([Attr("address","0x5BC"), Attr("insn","bl #0xb8")]), Int(1,1), -(Direct(Tid(1_411, "@call_weak_fn")),Direct(Tid(1_288, "%00000508"))))])), -Blk(Tid(1_288, "%00000508"), Attrs([Attr("address","0x5C0")]), Phis([]), -Defs([Def(Tid(1_293, "%0000050d"), Attrs([Attr("address","0x5C0"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R29",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(1_298, "%00000512"), Attrs([Attr("address","0x5C0"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R30",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(1_302, "%00000516"), Attrs([Attr("address","0x5C0"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(16,64)))]), Jmps([Call(Tid(1_307, "%0000051b"), - Attrs([Attr("address","0x5C4"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), Sub(Tid(1_407, "@_start"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x640"), -Attr("entry-point","()")]), "_start", Args([Arg(Tid(1_461, "%000005b5"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("_start_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(420, "@_start"), - Attrs([Attr("address","0x640")]), Phis([]), Defs([Def(Tid(425, "%000001a9"), - Attrs([Attr("address","0x644"), Attr("insn","mov x29, #0x0")]), - Var("R29",Imm(64)), Int(0,64)), Def(Tid(430, "%000001ae"), - Attrs([Attr("address","0x648"), Attr("insn","mov x30, #0x0")]), - Var("R30",Imm(64)), Int(0,64)), Def(Tid(436, "%000001b4"), - Attrs([Attr("address","0x64C"), Attr("insn","mov x5, x0")]), - Var("R5",Imm(64)), Var("R0",Imm(64))), Def(Tid(443, "%000001bb"), - Attrs([Attr("address","0x650"), Attr("insn","ldr x1, [sp]")]), - Var("R1",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(449, "%000001c1"), Attrs([Attr("address","0x654"), -Attr("insn","add x2, sp, #0x8")]), Var("R2",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(8,64))), Def(Tid(455, "%000001c7"), - Attrs([Attr("address","0x658"), Attr("insn","mov x6, sp")]), - Var("R6",Imm(64)), Var("R31",Imm(64))), Def(Tid(460, "%000001cc"), - Attrs([Attr("address","0x65C"), Attr("insn","adrp x0, #65536")]), - Var("R0",Imm(64)), Int(65536,64)), Def(Tid(467, "%000001d3"), - Attrs([Attr("address","0x660"), Attr("insn","ldr x0, [x0, #0xfd8]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(4056,64)),LittleEndian(),64)), -Def(Tid(472, "%000001d8"), Attrs([Attr("address","0x664"), -Attr("insn","mov x3, #0x0")]), Var("R3",Imm(64)), Int(0,64)), -Def(Tid(477, "%000001dd"), Attrs([Attr("address","0x668"), -Attr("insn","mov x4, #0x0")]), Var("R4",Imm(64)), Int(0,64)), -Def(Tid(482, "%000001e2"), Attrs([Attr("address","0x66C"), -Attr("insn","bl #-0x7c")]), Var("R30",Imm(64)), Int(1648,64))]), -Jmps([Call(Tid(485, "%000001e5"), Attrs([Attr("address","0x66C"), -Attr("insn","bl #-0x7c")]), Int(1,1), -(Direct(Tid(1_404, "@__libc_start_main")),Direct(Tid(487, "%000001e7"))))])), -Blk(Tid(487, "%000001e7"), Attrs([Attr("address","0x670")]), Phis([]), -Defs([Def(Tid(490, "%000001ea"), Attrs([Attr("address","0x670"), -Attr("insn","bl #-0x50")]), Var("R30",Imm(64)), Int(1652,64))]), -Jmps([Call(Tid(493, "%000001ed"), Attrs([Attr("address","0x670"), -Attr("insn","bl #-0x50")]), Int(1,1), -(Direct(Tid(1_410, "@abort")),Direct(Tid(1_444, "%000005a4"))))])), -Blk(Tid(1_444, "%000005a4"), Attrs([]), Phis([]), Defs([]), -Jmps([Call(Tid(1_445, "%000005a5"), Attrs([]), Int(1,1), -(Direct(Tid(1_411, "@call_weak_fn")),))]))])), Sub(Tid(1_410, "@abort"), - Attrs([Attr("noreturn","()"), Attr("c.proto","void (*)(void)"), -Attr("address","0x620"), Attr("stub","()")]), "abort", Args([]), -Blks([Blk(Tid(491, "@abort"), Attrs([Attr("address","0x620")]), Phis([]), -Defs([Def(Tid(1_205, "%000004b5"), Attrs([Attr("address","0x620"), -Attr("insn","adrp x16, #69632")]), Var("R16",Imm(64)), Int(69632,64)), -Def(Tid(1_212, "%000004bc"), Attrs([Attr("address","0x624"), -Attr("insn","ldr x17, [x16, #0x18]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(24,64)),LittleEndian(),64)), -Def(Tid(1_218, "%000004c2"), Attrs([Attr("address","0x628"), -Attr("insn","add x16, x16, #0x18")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(24,64)))]), Jmps([Call(Tid(1_223, "%000004c7"), - Attrs([Attr("address","0x62C"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), Sub(Tid(1_411, "@call_weak_fn"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x674")]), - "call_weak_fn", Args([Arg(Tid(1_462, "%000005b6"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("call_weak_fn_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(495, "@call_weak_fn"), - Attrs([Attr("address","0x674")]), Phis([]), Defs([Def(Tid(498, "%000001f2"), - Attrs([Attr("address","0x674"), Attr("insn","adrp x0, #65536")]), - Var("R0",Imm(64)), Int(65536,64)), Def(Tid(505, "%000001f9"), - Attrs([Attr("address","0x678"), Attr("insn","ldr x0, [x0, #0xfc8]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(4040,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(511, "%000001ff"), Attrs([Attr("address","0x67C"), -Attr("insn","cbz x0, #0x8")]), EQ(Var("R0",Imm(64)),Int(0,64)), -Direct(Tid(509, "%000001fd"))), Goto(Tid(1_446, "%000005a6"), Attrs([]), - Int(1,1), Direct(Tid(977, "%000003d1")))])), Blk(Tid(509, "%000001fd"), - Attrs([Attr("address","0x684")]), Phis([]), Defs([]), -Jmps([Call(Tid(517, "%00000205"), Attrs([Attr("address","0x684"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))])), -Blk(Tid(977, "%000003d1"), Attrs([Attr("address","0x680")]), Phis([]), -Defs([]), Jmps([Goto(Tid(980, "%000003d4"), Attrs([Attr("address","0x680"), -Attr("insn","b #-0x70")]), Int(1,1), Direct(Tid(978, "@__gmon_start__")))])), -Blk(Tid(978, "@__gmon_start__"), Attrs([Attr("address","0x610")]), Phis([]), -Defs([Def(Tid(1_183, "%0000049f"), Attrs([Attr("address","0x610"), -Attr("insn","adrp x16, #69632")]), Var("R16",Imm(64)), Int(69632,64)), -Def(Tid(1_190, "%000004a6"), Attrs([Attr("address","0x614"), -Attr("insn","ldr x17, [x16, #0x10]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(16,64)),LittleEndian(),64)), -Def(Tid(1_196, "%000004ac"), Attrs([Attr("address","0x618"), -Attr("insn","add x16, x16, #0x10")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(16,64)))]), Jmps([Call(Tid(1_201, "%000004b1"), - Attrs([Attr("address","0x61C"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), -Sub(Tid(1_413, "@deregister_tm_clones"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x690")]), - "deregister_tm_clones", Args([Arg(Tid(1_463, "%000005b7"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("deregister_tm_clones_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(523, "@deregister_tm_clones"), - Attrs([Attr("address","0x690")]), Phis([]), Defs([Def(Tid(526, "%0000020e"), - Attrs([Attr("address","0x690"), Attr("insn","adrp x0, #69632")]), - Var("R0",Imm(64)), Int(69632,64)), Def(Tid(532, "%00000214"), - Attrs([Attr("address","0x694"), Attr("insn","add x0, x0, #0x30")]), - Var("R0",Imm(64)), PLUS(Var("R0",Imm(64)),Int(48,64))), -Def(Tid(537, "%00000219"), Attrs([Attr("address","0x698"), -Attr("insn","adrp x1, #69632")]), Var("R1",Imm(64)), Int(69632,64)), -Def(Tid(543, "%0000021f"), Attrs([Attr("address","0x69C"), -Attr("insn","add x1, x1, #0x30")]), Var("R1",Imm(64)), -PLUS(Var("R1",Imm(64)),Int(48,64))), Def(Tid(549, "%00000225"), - Attrs([Attr("address","0x6A0"), Attr("insn","cmp x1, x0")]), - Var("#1",Imm(64)), NOT(Var("R0",Imm(64)))), Def(Tid(554, "%0000022a"), - Attrs([Attr("address","0x6A0"), Attr("insn","cmp x1, x0")]), - Var("#2",Imm(64)), PLUS(Var("R1",Imm(64)),NOT(Var("R0",Imm(64))))), -Def(Tid(560, "%00000230"), Attrs([Attr("address","0x6A0"), -Attr("insn","cmp x1, x0")]), Var("VF",Imm(1)), -NEQ(SIGNED(65,PLUS(Var("#2",Imm(64)),Int(1,64))),PLUS(PLUS(SIGNED(65,Var("R1",Imm(64))),SIGNED(65,Var("#1",Imm(64)))),Int(1,65)))), -Def(Tid(566, "%00000236"), Attrs([Attr("address","0x6A0"), -Attr("insn","cmp x1, x0")]), Var("CF",Imm(1)), -NEQ(UNSIGNED(65,PLUS(Var("#2",Imm(64)),Int(1,64))),PLUS(PLUS(UNSIGNED(65,Var("R1",Imm(64))),UNSIGNED(65,Var("#1",Imm(64)))),Int(1,65)))), -Def(Tid(570, "%0000023a"), Attrs([Attr("address","0x6A0"), -Attr("insn","cmp x1, x0")]), Var("ZF",Imm(1)), -EQ(PLUS(Var("#2",Imm(64)),Int(1,64)),Int(0,64))), Def(Tid(574, "%0000023e"), - Attrs([Attr("address","0x6A0"), Attr("insn","cmp x1, x0")]), - Var("NF",Imm(1)), Extract(63,63,PLUS(Var("#2",Imm(64)),Int(1,64))))]), -Jmps([Goto(Tid(580, "%00000244"), Attrs([Attr("address","0x6A4"), -Attr("insn","b.eq #0x18")]), EQ(Var("ZF",Imm(1)),Int(1,1)), -Direct(Tid(578, "%00000242"))), Goto(Tid(1_447, "%000005a7"), Attrs([]), - Int(1,1), Direct(Tid(947, "%000003b3")))])), Blk(Tid(947, "%000003b3"), - Attrs([Attr("address","0x6A8")]), Phis([]), Defs([Def(Tid(950, "%000003b6"), - Attrs([Attr("address","0x6A8"), Attr("insn","adrp x1, #65536")]), - Var("R1",Imm(64)), Int(65536,64)), Def(Tid(957, "%000003bd"), - Attrs([Attr("address","0x6AC"), Attr("insn","ldr x1, [x1, #0xfb0]")]), - Var("R1",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R1",Imm(64)),Int(4016,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(962, "%000003c2"), Attrs([Attr("address","0x6B0"), -Attr("insn","cbz x1, #0xc")]), EQ(Var("R1",Imm(64)),Int(0,64)), -Direct(Tid(578, "%00000242"))), Goto(Tid(1_448, "%000005a8"), Attrs([]), - Int(1,1), Direct(Tid(966, "%000003c6")))])), Blk(Tid(578, "%00000242"), - Attrs([Attr("address","0x6BC")]), Phis([]), Defs([]), -Jmps([Call(Tid(586, "%0000024a"), Attrs([Attr("address","0x6BC"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))])), -Blk(Tid(966, "%000003c6"), Attrs([Attr("address","0x6B4")]), Phis([]), -Defs([Def(Tid(970, "%000003ca"), Attrs([Attr("address","0x6B4"), -Attr("insn","mov x16, x1")]), Var("R16",Imm(64)), Var("R1",Imm(64)))]), -Jmps([Call(Tid(975, "%000003cf"), Attrs([Attr("address","0x6B8"), -Attr("insn","br x16")]), Int(1,1), (Indirect(Var("R16",Imm(64))),))]))])), -Sub(Tid(1_416, "@frame_dummy"), Attrs([Attr("c.proto","signed (*)(void)"), -Attr("address","0x750")]), "frame_dummy", Args([Arg(Tid(1_464, "%000005b8"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("frame_dummy_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(738, "@frame_dummy"), - Attrs([Attr("address","0x750")]), Phis([]), Defs([]), -Jmps([Call(Tid(740, "%000002e4"), Attrs([Attr("address","0x750"), -Attr("insn","b #-0x90")]), Int(1,1), -(Direct(Tid(1_419, "@register_tm_clones")),))]))])), -Sub(Tid(1_417, "@get_two"), Attrs([Attr("c.proto","signed (*)(void)"), -Attr("address","0x788")]), "get_two", Args([Arg(Tid(1_465, "%000005b9"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("get_two_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(799, "@get_two"), - Attrs([Attr("address","0x788")]), Phis([]), Defs([Def(Tid(805, "%00000325"), - Attrs([Attr("address","0x788"), Attr("insn","mov w0, #0x2")]), - Var("R0",Imm(64)), Int(2,64))]), Jmps([Call(Tid(810, "%0000032a"), - Attrs([Attr("address","0x78C"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), Sub(Tid(1_418, "@main"), - Attrs([Attr("c.proto","signed (*)(signed argc, const char** argv)"), -Attr("address","0x754")]), "main", Args([Arg(Tid(1_466, "%000005ba"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("main_argc",Imm(32)), -LOW(32,Var("R0",Imm(64))), In()), Arg(Tid(1_467, "%000005bb"), - Attrs([Attr("c.layout","**[char : 8]"), Attr("c.data","Top:u8 ptr ptr"), -Attr("c.type"," const char**")]), Var("main_argv",Imm(64)), -Var("R1",Imm(64)), Both()), Arg(Tid(1_468, "%000005bc"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("main_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(742, "@main"), - Attrs([Attr("address","0x754")]), Phis([]), Defs([Def(Tid(746, "%000002ea"), - Attrs([Attr("address","0x754"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("#4",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(18446744073709551600,64))), -Def(Tid(752, "%000002f0"), Attrs([Attr("address","0x754"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("#4",Imm(64)),Var("R29",Imm(64)),LittleEndian(),64)), -Def(Tid(758, "%000002f6"), Attrs([Attr("address","0x754"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("#4",Imm(64)),Int(8,64)),Var("R30",Imm(64)),LittleEndian(),64)), -Def(Tid(762, "%000002fa"), Attrs([Attr("address","0x754"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("R31",Imm(64)), -Var("#4",Imm(64))), Def(Tid(768, "%00000300"), - Attrs([Attr("address","0x758"), Attr("insn","mov x29, sp")]), - Var("R29",Imm(64)), Var("R31",Imm(64))), Def(Tid(773, "%00000305"), - Attrs([Attr("address","0x75C"), Attr("insn","adrp x9, #65536")]), - Var("R9",Imm(64)), Int(65536,64)), Def(Tid(780, "%0000030c"), - Attrs([Attr("address","0x760"), Attr("insn","ldr x9, [x9, #0xfc0]")]), - Var("R9",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R9",Imm(64)),Int(4032,64)),LittleEndian(),64)), -Def(Tid(785, "%00000311"), Attrs([Attr("address","0x764"), -Attr("insn","mov w8, #0x1")]), Var("R8",Imm(64)), Int(1,64)), -Def(Tid(793, "%00000319"), Attrs([Attr("address","0x768"), -Attr("insn","str w8, [x9]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("R9",Imm(64)),Extract(31,0,Var("R8",Imm(64))),LittleEndian(),32)), -Def(Tid(798, "%0000031e"), Attrs([Attr("address","0x76C"), -Attr("insn","bl #0x1c")]), Var("R30",Imm(64)), Int(1904,64))]), -Jmps([Call(Tid(801, "%00000321"), Attrs([Attr("address","0x76C"), -Attr("insn","bl #0x1c")]), Int(1,1), -(Direct(Tid(1_417, "@get_two")),Direct(Tid(812, "%0000032c"))))])), -Blk(Tid(812, "%0000032c"), Attrs([Attr("address","0x770")]), Phis([]), -Defs([Def(Tid(815, "%0000032f"), Attrs([Attr("address","0x770"), -Attr("insn","adrp x8, #65536")]), Var("R8",Imm(64)), Int(65536,64)), -Def(Tid(822, "%00000336"), Attrs([Attr("address","0x774"), -Attr("insn","ldr x8, [x8, #0xfd0]")]), Var("R8",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R8",Imm(64)),Int(4048,64)),LittleEndian(),64)), -Def(Tid(830, "%0000033e"), Attrs([Attr("address","0x778"), -Attr("insn","str w0, [x8]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("R8",Imm(64)),Extract(31,0,Var("R0",Imm(64))),LittleEndian(),32)), -Def(Tid(835, "%00000343"), Attrs([Attr("address","0x77C"), -Attr("insn","mov w0, wzr")]), Var("R0",Imm(64)), Int(0,64)), -Def(Tid(842, "%0000034a"), Attrs([Attr("address","0x780"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R29",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(847, "%0000034f"), Attrs([Attr("address","0x780"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R30",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(851, "%00000353"), Attrs([Attr("address","0x780"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(16,64)))]), Jmps([Call(Tid(856, "%00000358"), - Attrs([Attr("address","0x784"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), -Sub(Tid(1_419, "@register_tm_clones"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x6C0")]), - "register_tm_clones", Args([Arg(Tid(1_469, "%000005bd"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("register_tm_clones_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(588, "@register_tm_clones"), Attrs([Attr("address","0x6C0")]), - Phis([]), Defs([Def(Tid(591, "%0000024f"), Attrs([Attr("address","0x6C0"), -Attr("insn","adrp x0, #69632")]), Var("R0",Imm(64)), Int(69632,64)), -Def(Tid(597, "%00000255"), Attrs([Attr("address","0x6C4"), -Attr("insn","add x0, x0, #0x30")]), Var("R0",Imm(64)), -PLUS(Var("R0",Imm(64)),Int(48,64))), Def(Tid(602, "%0000025a"), - Attrs([Attr("address","0x6C8"), Attr("insn","adrp x1, #69632")]), - Var("R1",Imm(64)), Int(69632,64)), Def(Tid(608, "%00000260"), - Attrs([Attr("address","0x6CC"), Attr("insn","add x1, x1, #0x30")]), - Var("R1",Imm(64)), PLUS(Var("R1",Imm(64)),Int(48,64))), -Def(Tid(615, "%00000267"), Attrs([Attr("address","0x6D0"), -Attr("insn","sub x1, x1, x0")]), Var("R1",Imm(64)), -PLUS(PLUS(Var("R1",Imm(64)),NOT(Var("R0",Imm(64)))),Int(1,64))), -Def(Tid(621, "%0000026d"), Attrs([Attr("address","0x6D4"), -Attr("insn","lsr x2, x1, #63")]), Var("R2",Imm(64)), -Concat(Int(0,63),Extract(63,63,Var("R1",Imm(64))))), -Def(Tid(628, "%00000274"), Attrs([Attr("address","0x6D8"), -Attr("insn","add x1, x2, x1, asr #3")]), Var("R1",Imm(64)), -PLUS(Var("R2",Imm(64)),ARSHIFT(Var("R1",Imm(64)),Int(3,3)))), -Def(Tid(634, "%0000027a"), Attrs([Attr("address","0x6DC"), -Attr("insn","asr x1, x1, #1")]), Var("R1",Imm(64)), -SIGNED(64,Extract(63,1,Var("R1",Imm(64)))))]), -Jmps([Goto(Tid(640, "%00000280"), Attrs([Attr("address","0x6E0"), -Attr("insn","cbz x1, #0x18")]), EQ(Var("R1",Imm(64)),Int(0,64)), -Direct(Tid(638, "%0000027e"))), Goto(Tid(1_449, "%000005a9"), Attrs([]), - Int(1,1), Direct(Tid(917, "%00000395")))])), Blk(Tid(917, "%00000395"), - Attrs([Attr("address","0x6E4")]), Phis([]), Defs([Def(Tid(920, "%00000398"), - Attrs([Attr("address","0x6E4"), Attr("insn","adrp x2, #65536")]), - Var("R2",Imm(64)), Int(65536,64)), Def(Tid(927, "%0000039f"), - Attrs([Attr("address","0x6E8"), Attr("insn","ldr x2, [x2, #0xfe0]")]), - Var("R2",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R2",Imm(64)),Int(4064,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(932, "%000003a4"), Attrs([Attr("address","0x6EC"), -Attr("insn","cbz x2, #0xc")]), EQ(Var("R2",Imm(64)),Int(0,64)), -Direct(Tid(638, "%0000027e"))), Goto(Tid(1_450, "%000005aa"), Attrs([]), - Int(1,1), Direct(Tid(936, "%000003a8")))])), Blk(Tid(638, "%0000027e"), - Attrs([Attr("address","0x6F8")]), Phis([]), Defs([]), -Jmps([Call(Tid(646, "%00000286"), Attrs([Attr("address","0x6F8"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))])), -Blk(Tid(936, "%000003a8"), Attrs([Attr("address","0x6F0")]), Phis([]), -Defs([Def(Tid(940, "%000003ac"), Attrs([Attr("address","0x6F0"), -Attr("insn","mov x16, x2")]), Var("R16",Imm(64)), Var("R2",Imm(64)))]), -Jmps([Call(Tid(945, "%000003b1"), Attrs([Attr("address","0x6F4"), -Attr("insn","br x16")]), Int(1,1), -(Indirect(Var("R16",Imm(64))),))]))]))]))) \ No newline at end of file diff --git a/src/test/correct/function/clang_pic/function.bir b/src/test/correct/function/clang_pic/function.bir deleted file mode 100644 index b96989d25..000000000 --- a/src/test/correct/function/clang_pic/function.bir +++ /dev/null @@ -1,250 +0,0 @@ -000005ab: program -00000577: sub __cxa_finalize(__cxa_finalize_result) -000005ac: __cxa_finalize_result :: out u32 = low:32[R0] - -00000391: -00000489: R16 := 0x11000 -00000490: R17 := mem[R16 + 8, el]:u64 -00000496: R16 := R16 + 8 -0000049b: call R17 with noreturn - -00000578: sub __do_global_dtors_aux(__do_global_dtors_aux_result) -000005ad: __do_global_dtors_aux_result :: out u32 = low:32[R0] - -0000028a: -0000028e: #3 := R31 - 0x20 -00000294: mem := mem with [#3, el]:u64 <- R29 -0000029a: mem := mem with [#3 + 8, el]:u64 <- R30 -0000029e: R31 := #3 -000002a4: R29 := R31 -000002ac: mem := mem with [R31 + 0x10, el]:u64 <- R19 -000002b1: R19 := 0x11000 -000002b8: R0 := pad:64[mem[R19 + 0x30]] -000002bf: when 31:0[R0] <> 0 goto %000002bd -000005a1: goto %0000035a - -0000035a: -0000035d: R0 := 0x10000 -00000364: R0 := mem[R0 + 0xFB8, el]:u64 -0000036a: when R0 = 0 goto %00000368 -000005a2: goto %00000381 - -00000381: -00000384: R0 := 0x11000 -0000038b: R0 := mem[R0 + 0x28, el]:u64 -00000390: R30 := 0x730 -00000393: call @__cxa_finalize with return %00000368 - -00000368: -00000370: R30 := 0x734 -00000372: call @deregister_tm_clones with return %00000374 - -00000374: -00000377: R0 := 1 -0000037f: mem := mem with [R19 + 0x30] <- 7:0[R0] -000005a3: goto %000002bd - -000002bd: -000002c7: R19 := mem[R31 + 0x10, el]:u64 -000002ce: R29 := mem[R31, el]:u64 -000002d3: R30 := mem[R31 + 8, el]:u64 -000002d7: R31 := R31 + 0x20 -000002dc: call R30 with noreturn - -0000057c: sub __libc_start_main(__libc_start_main_main, __libc_start_main_arg2, __libc_start_main_arg3, __libc_start_main_auxv, __libc_start_main_result) -000005ae: __libc_start_main_main :: in u64 = R0 -000005af: __libc_start_main_arg2 :: in u32 = low:32[R1] -000005b0: __libc_start_main_arg3 :: in out u64 = R2 -000005b1: __libc_start_main_auxv :: in out u64 = R3 -000005b2: __libc_start_main_result :: out u32 = low:32[R0] - -000001e3: -00000473: R16 := 0x11000 -0000047a: R17 := mem[R16, el]:u64 -00000480: R16 := R16 -00000485: call R17 with noreturn - -0000057d: sub _fini(_fini_result) -000005b3: _fini_result :: out u32 = low:32[R0] - -0000001f: -00000025: #0 := R31 - 0x10 -0000002b: mem := mem with [#0, el]:u64 <- R29 -00000031: mem := mem with [#0 + 8, el]:u64 <- R30 -00000035: R31 := #0 -0000003b: R29 := R31 -00000042: R29 := mem[R31, el]:u64 -00000047: R30 := mem[R31 + 8, el]:u64 -0000004b: R31 := R31 + 0x10 -00000050: call R30 with noreturn - -0000057e: sub _init(_init_result) -000005b4: _init_result :: out u32 = low:32[R0] - -000004e3: -000004e9: #6 := R31 - 0x10 -000004ef: mem := mem with [#6, el]:u64 <- R29 -000004f5: mem := mem with [#6 + 8, el]:u64 <- R30 -000004f9: R31 := #6 -000004ff: R29 := R31 -00000504: R30 := 0x5C0 -00000506: call @call_weak_fn with return %00000508 - -00000508: -0000050d: R29 := mem[R31, el]:u64 -00000512: R30 := mem[R31 + 8, el]:u64 -00000516: R31 := R31 + 0x10 -0000051b: call R30 with noreturn - -0000057f: sub _start(_start_result) -000005b5: _start_result :: out u32 = low:32[R0] - -000001a4: -000001a9: R29 := 0 -000001ae: R30 := 0 -000001b4: R5 := R0 -000001bb: R1 := mem[R31, el]:u64 -000001c1: R2 := R31 + 8 -000001c7: R6 := R31 -000001cc: R0 := 0x10000 -000001d3: R0 := mem[R0 + 0xFD8, el]:u64 -000001d8: R3 := 0 -000001dd: R4 := 0 -000001e2: R30 := 0x670 -000001e5: call @__libc_start_main with return %000001e7 - -000001e7: -000001ea: R30 := 0x674 -000001ed: call @abort with return %000005a4 - -000005a4: -000005a5: call @call_weak_fn with noreturn - -00000582: sub abort() - - -000001eb: -000004b5: R16 := 0x11000 -000004bc: R17 := mem[R16 + 0x18, el]:u64 -000004c2: R16 := R16 + 0x18 -000004c7: call R17 with noreturn - -00000583: sub call_weak_fn(call_weak_fn_result) -000005b6: call_weak_fn_result :: out u32 = low:32[R0] - -000001ef: -000001f2: R0 := 0x10000 -000001f9: R0 := mem[R0 + 0xFC8, el]:u64 -000001ff: when R0 = 0 goto %000001fd -000005a6: goto %000003d1 - -000001fd: -00000205: call R30 with noreturn - -000003d1: -000003d4: goto @__gmon_start__ - -000003d2: -0000049f: R16 := 0x11000 -000004a6: R17 := mem[R16 + 0x10, el]:u64 -000004ac: R16 := R16 + 0x10 -000004b1: call R17 with noreturn - -00000585: sub deregister_tm_clones(deregister_tm_clones_result) -000005b7: deregister_tm_clones_result :: out u32 = low:32[R0] - -0000020b: -0000020e: R0 := 0x11000 -00000214: R0 := R0 + 0x30 -00000219: R1 := 0x11000 -0000021f: R1 := R1 + 0x30 -00000225: #1 := ~R0 -0000022a: #2 := R1 + ~R0 -00000230: VF := extend:65[#2 + 1] <> extend:65[R1] + extend:65[#1] + 1 -00000236: CF := pad:65[#2 + 1] <> pad:65[R1] + pad:65[#1] + 1 -0000023a: ZF := #2 + 1 = 0 -0000023e: NF := 63:63[#2 + 1] -00000244: when ZF goto %00000242 -000005a7: goto %000003b3 - -000003b3: -000003b6: R1 := 0x10000 -000003bd: R1 := mem[R1 + 0xFB0, el]:u64 -000003c2: when R1 = 0 goto %00000242 -000005a8: goto %000003c6 - -00000242: -0000024a: call R30 with noreturn - -000003c6: -000003ca: R16 := R1 -000003cf: call R16 with noreturn - -00000588: sub frame_dummy(frame_dummy_result) -000005b8: frame_dummy_result :: out u32 = low:32[R0] - -000002e2: -000002e4: call @register_tm_clones with noreturn - -00000589: sub get_two(get_two_result) -000005b9: get_two_result :: out u32 = low:32[R0] - -0000031f: -00000325: R0 := 2 -0000032a: call R30 with noreturn - -0000058a: sub main(main_argc, main_argv, main_result) -000005ba: main_argc :: in u32 = low:32[R0] -000005bb: main_argv :: in out u64 = R1 -000005bc: main_result :: out u32 = low:32[R0] - -000002e6: -000002ea: #4 := R31 - 0x10 -000002f0: mem := mem with [#4, el]:u64 <- R29 -000002f6: mem := mem with [#4 + 8, el]:u64 <- R30 -000002fa: R31 := #4 -00000300: R29 := R31 -00000305: R9 := 0x10000 -0000030c: R9 := mem[R9 + 0xFC0, el]:u64 -00000311: R8 := 1 -00000319: mem := mem with [R9, el]:u32 <- 31:0[R8] -0000031e: R30 := 0x770 -00000321: call @get_two with return %0000032c - -0000032c: -0000032f: R8 := 0x10000 -00000336: R8 := mem[R8 + 0xFD0, el]:u64 -0000033e: mem := mem with [R8, el]:u32 <- 31:0[R0] -00000343: R0 := 0 -0000034a: R29 := mem[R31, el]:u64 -0000034f: R30 := mem[R31 + 8, el]:u64 -00000353: R31 := R31 + 0x10 -00000358: call R30 with noreturn - -0000058b: sub register_tm_clones(register_tm_clones_result) -000005bd: register_tm_clones_result :: out u32 = low:32[R0] - -0000024c: -0000024f: R0 := 0x11000 -00000255: R0 := R0 + 0x30 -0000025a: R1 := 0x11000 -00000260: R1 := R1 + 0x30 -00000267: R1 := R1 + ~R0 + 1 -0000026d: R2 := 0.63:63[R1] -00000274: R1 := R2 + (R1 ~>> 3) -0000027a: R1 := extend:64[63:1[R1]] -00000280: when R1 = 0 goto %0000027e -000005a9: goto %00000395 - -00000395: -00000398: R2 := 0x10000 -0000039f: R2 := mem[R2 + 0xFE0, el]:u64 -000003a4: when R2 = 0 goto %0000027e -000005aa: goto %000003a8 - -0000027e: -00000286: call R30 with noreturn - -000003a8: -000003ac: R16 := R2 -000003b1: call R16 with noreturn diff --git a/src/test/correct/function/clang_pic/function.expected b/src/test/correct/function/clang_pic/function.expected index e6ca4923c..979be9978 100644 --- a/src/test/correct/function/clang_pic/function.expected +++ b/src/test/correct/function/clang_pic/function.expected @@ -1,23 +1,19 @@ var {:extern} Gamma_R0: bool; -var {:extern} Gamma_R29: bool; -var {:extern} Gamma_R30: bool; -var {:extern} Gamma_R31: bool; +var {:extern} Gamma_R10: bool; +var {:extern} Gamma_R11: bool; var {:extern} Gamma_R8: bool; var {:extern} Gamma_R9: bool; var {:extern} Gamma_mem: [bv64]bool; -var {:extern} Gamma_stack: [bv64]bool; var {:extern} R0: bv64; -var {:extern} R29: bv64; -var {:extern} R30: bv64; -var {:extern} R31: bv64; +var {:extern} R10: bv64; +var {:extern} R11: bv64; var {:extern} R8: bv64; var {:extern} R9: bv64; var {:extern} mem: [bv64]bv8; -var {:extern} stack: [bv64]bv8; const {:extern} $x_addr: bv64; -axiom ($x_addr == 69684bv64); +axiom ($x_addr == 131092bv64); const {:extern} $y_addr: bv64; -axiom ($y_addr == 69688bv64); +axiom ($y_addr == 131096bv64); function {:extern} L(mem$in: [bv64]bv8, index: bv64) returns (bool) { false } @@ -35,10 +31,6 @@ function {:extern} gamma_store32(gammaMap: [bv64]bool, index: bv64, value: bool) gammaMap[index := value][bvadd64(index, 1bv64) := value][bvadd64(index, 2bv64) := value][bvadd64(index, 3bv64) := value] } -function {:extern} gamma_store64(gammaMap: [bv64]bool, index: bv64, value: bool) returns ([bv64]bool) { - gammaMap[index := value][bvadd64(index, 1bv64) := value][bvadd64(index, 2bv64) := value][bvadd64(index, 3bv64) := value][bvadd64(index, 4bv64) := value][bvadd64(index, 5bv64) := value][bvadd64(index, 6bv64) := value][bvadd64(index, 7bv64) := value] -} - function {:extern} memory_load32_le(memory: [bv64]bv8, index: bv64) returns (bv32) { (memory[bvadd64(index, 3bv64)] ++ (memory[bvadd64(index, 2bv64)] ++ (memory[bvadd64(index, 1bv64)] ++ memory[index]))) } @@ -51,21 +43,17 @@ function {:extern} memory_store32_le(memory: [bv64]bv8, index: bv64, value: bv32 memory[index := value[8:0]][bvadd64(index, 1bv64) := value[16:8]][bvadd64(index, 2bv64) := value[24:16]][bvadd64(index, 3bv64) := value[32:24]] } -function {:extern} memory_store64_le(memory: [bv64]bv8, index: bv64, value: bv64) returns ([bv64]bv8) { - memory[index := value[8:0]][bvadd64(index, 1bv64) := value[16:8]][bvadd64(index, 2bv64) := value[24:16]][bvadd64(index, 3bv64) := value[32:24]][bvadd64(index, 4bv64) := value[40:32]][bvadd64(index, 5bv64) := value[48:40]][bvadd64(index, 6bv64) := value[56:48]][bvadd64(index, 7bv64) := value[64:56]] -} - procedure {:extern} rely(); modifies Gamma_mem, mem; ensures (Gamma_mem == old(Gamma_mem)); ensures (mem == old(mem)); - free ensures (memory_load32_le(mem, 1956bv64) == 131073bv32); - free ensures (memory_load64_le(mem, 69048bv64) == 1872bv64); - free ensures (memory_load64_le(mem, 69056bv64) == 1792bv64); - free ensures (memory_load64_le(mem, 69568bv64) == 69684bv64); - free ensures (memory_load64_le(mem, 69584bv64) == 69688bv64); - free ensures (memory_load64_le(mem, 69592bv64) == 1876bv64); - free ensures (memory_load64_le(mem, 69672bv64) == 69672bv64); + free ensures (memory_load32_le(mem, 2328bv64) == 131073bv32); + free ensures (memory_load64_le(mem, 130424bv64) == 2256bv64); + free ensures (memory_load64_le(mem, 130432bv64) == 2176bv64); + free ensures (memory_load64_le(mem, 131032bv64) == 131092bv64); + free ensures (memory_load64_le(mem, 131048bv64) == 131096bv64); + free ensures (memory_load64_le(mem, 131056bv64) == 2260bv64); + free ensures (memory_load64_le(mem, 131080bv64) == 131080bv64); procedure {:extern} rely_transitive(); modifies Gamma_mem, mem; @@ -83,112 +71,57 @@ procedure {:extern} rely_reflexive(); procedure {:extern} guarantee_reflexive(); modifies Gamma_mem, mem; -procedure get_two_1928(); - modifies Gamma_R0, R0; - free requires (memory_load32_le(mem, 1956bv64) == 131073bv32); - free requires (memory_load64_le(mem, 69048bv64) == 1872bv64); - free requires (memory_load64_le(mem, 69056bv64) == 1792bv64); - free requires (memory_load64_le(mem, 69568bv64) == 69684bv64); - free requires (memory_load64_le(mem, 69584bv64) == 69688bv64); - free requires (memory_load64_le(mem, 69592bv64) == 1876bv64); - free requires (memory_load64_le(mem, 69672bv64) == 69672bv64); - ensures (Gamma_R0 == true); - free ensures (memory_load32_le(mem, 1956bv64) == 131073bv32); - free ensures (memory_load64_le(mem, 69048bv64) == 1872bv64); - free ensures (memory_load64_le(mem, 69056bv64) == 1792bv64); - free ensures (memory_load64_le(mem, 69568bv64) == 69684bv64); - free ensures (memory_load64_le(mem, 69584bv64) == 69688bv64); - free ensures (memory_load64_le(mem, 69592bv64) == 1876bv64); - free ensures (memory_load64_le(mem, 69672bv64) == 69672bv64); - -implementation get_two_1928() -{ - lget_two: - assume {:captureState "lget_two"} true; - R0, Gamma_R0 := 2bv64, true; - goto get_two_1928_basil_return; - get_two_1928_basil_return: - assume {:captureState "get_two_1928_basil_return"} true; - return; -} - -procedure main_1876(); - modifies Gamma_R0, Gamma_R29, Gamma_R30, Gamma_R31, Gamma_R8, Gamma_R9, Gamma_mem, Gamma_stack, R0, R29, R30, R31, R8, R9, mem, stack; +procedure main(); + modifies Gamma_R0, Gamma_R10, Gamma_R11, Gamma_R8, Gamma_R9, Gamma_mem, R0, R10, R11, R8, R9, mem; requires (gamma_load32(Gamma_mem, $x_addr) == true); requires (gamma_load32(Gamma_mem, $y_addr) == true); - free requires (memory_load64_le(mem, 69664bv64) == 0bv64); - free requires (memory_load64_le(mem, 69672bv64) == 69672bv64); - free requires (memory_load32_le(mem, 1956bv64) == 131073bv32); - free requires (memory_load64_le(mem, 69048bv64) == 1872bv64); - free requires (memory_load64_le(mem, 69056bv64) == 1792bv64); - free requires (memory_load64_le(mem, 69568bv64) == 69684bv64); - free requires (memory_load64_le(mem, 69584bv64) == 69688bv64); - free requires (memory_load64_le(mem, 69592bv64) == 1876bv64); - free requires (memory_load64_le(mem, 69672bv64) == 69672bv64); - free ensures (Gamma_R29 == old(Gamma_R29)); - free ensures (Gamma_R31 == old(Gamma_R31)); - free ensures (R29 == old(R29)); - free ensures (R31 == old(R31)); - free ensures (memory_load32_le(mem, 1956bv64) == 131073bv32); - free ensures (memory_load64_le(mem, 69048bv64) == 1872bv64); - free ensures (memory_load64_le(mem, 69056bv64) == 1792bv64); - free ensures (memory_load64_le(mem, 69568bv64) == 69684bv64); - free ensures (memory_load64_le(mem, 69584bv64) == 69688bv64); - free ensures (memory_load64_le(mem, 69592bv64) == 1876bv64); - free ensures (memory_load64_le(mem, 69672bv64) == 69672bv64); - -implementation main_1876() + free requires (memory_load64_le(mem, 131072bv64) == 0bv64); + free requires (memory_load64_le(mem, 131080bv64) == 131080bv64); + free requires (memory_load32_le(mem, 2328bv64) == 131073bv32); + free requires (memory_load64_le(mem, 130424bv64) == 2256bv64); + free requires (memory_load64_le(mem, 130432bv64) == 2176bv64); + free requires (memory_load64_le(mem, 131032bv64) == 131092bv64); + free requires (memory_load64_le(mem, 131048bv64) == 131096bv64); + free requires (memory_load64_le(mem, 131056bv64) == 2260bv64); + free requires (memory_load64_le(mem, 131080bv64) == 131080bv64); + free ensures (memory_load32_le(mem, 2328bv64) == 131073bv32); + free ensures (memory_load64_le(mem, 130424bv64) == 2256bv64); + free ensures (memory_load64_le(mem, 130432bv64) == 2176bv64); + free ensures (memory_load64_le(mem, 131032bv64) == 131092bv64); + free ensures (memory_load64_le(mem, 131048bv64) == 131096bv64); + free ensures (memory_load64_le(mem, 131056bv64) == 2260bv64); + free ensures (memory_load64_le(mem, 131080bv64) == 131080bv64); + +implementation main() { - var #4: bv64; - var Gamma_#4: bool; - var Gamma_load18: bool; - var Gamma_load19: bool; - var Gamma_load20: bool; - var Gamma_load21: bool; - var load18: bv64; - var load19: bv64; - var load20: bv64; - var load21: bv64; + var $load$18: bv64; + var $load$19: bv64; + var Gamma_$load$18: bool; + var Gamma_$load$19: bool; lmain: assume {:captureState "lmain"} true; - #4, Gamma_#4 := bvadd64(R31, 18446744073709551600bv64), Gamma_R31; - stack, Gamma_stack := memory_store64_le(stack, #4, R29), gamma_store64(Gamma_stack, #4, Gamma_R29); - assume {:captureState "%000002f0"} true; - stack, Gamma_stack := memory_store64_le(stack, bvadd64(#4, 8bv64), R30), gamma_store64(Gamma_stack, bvadd64(#4, 8bv64), Gamma_R30); - assume {:captureState "%000002f6"} true; - R31, Gamma_R31 := #4, Gamma_#4; - R29, Gamma_R29 := R31, Gamma_R31; - R9, Gamma_R9 := 65536bv64, true; + R8, Gamma_R8 := 126976bv64, true; + R10, Gamma_R10 := 126976bv64, true; + R0, Gamma_R0 := 0bv64, true; call rely(); - load18, Gamma_load18 := memory_load64_le(mem, bvadd64(R9, 4032bv64)), (gamma_load64(Gamma_mem, bvadd64(R9, 4032bv64)) || L(mem, bvadd64(R9, 4032bv64))); - R9, Gamma_R9 := load18, Gamma_load18; - R8, Gamma_R8 := 1bv64, true; + $load$18, Gamma_$load$18 := memory_load64_le(mem, bvadd64(R8, 4056bv64)), (gamma_load64(Gamma_mem, bvadd64(R8, 4056bv64)) || L(mem, bvadd64(R8, 4056bv64))); + R8, Gamma_R8 := $load$18, Gamma_$load$18; call rely(); - assert (L(mem, R9) ==> Gamma_R8); - mem, Gamma_mem := memory_store32_le(mem, R9, R8[32:0]), gamma_store32(Gamma_mem, R9, Gamma_R8); - assume {:captureState "%00000319"} true; - R30, Gamma_R30 := 1904bv64, true; - call get_two_1928(); - goto l0000032c; - l0000032c: - assume {:captureState "l0000032c"} true; - R8, Gamma_R8 := 65536bv64, true; + $load$19, Gamma_$load$19 := memory_load64_le(mem, bvadd64(R10, 4072bv64)), (gamma_load64(Gamma_mem, bvadd64(R10, 4072bv64)) || L(mem, bvadd64(R10, 4072bv64))); + R10, Gamma_R10 := $load$19, Gamma_$load$19; + R9, Gamma_R9 := 1bv64, true; + R11, Gamma_R11 := 2bv64, true; call rely(); - load19, Gamma_load19 := memory_load64_le(mem, bvadd64(R8, 4048bv64)), (gamma_load64(Gamma_mem, bvadd64(R8, 4048bv64)) || L(mem, bvadd64(R8, 4048bv64))); - R8, Gamma_R8 := load19, Gamma_load19; + assert (L(mem, R8) ==> Gamma_R9); + mem, Gamma_mem := memory_store32_le(mem, R8, R9[32:0]), gamma_store32(Gamma_mem, R8, Gamma_R9); + assume {:captureState "%000002ac"} true; call rely(); - assert (L(mem, R8) ==> Gamma_R0); - mem, Gamma_mem := memory_store32_le(mem, R8, R0[32:0]), gamma_store32(Gamma_mem, R8, Gamma_R0); - assume {:captureState "%0000033e"} true; - R0, Gamma_R0 := 0bv64, true; - load20, Gamma_load20 := memory_load64_le(stack, R31), gamma_load64(Gamma_stack, R31); - R29, Gamma_R29 := load20, Gamma_load20; - load21, Gamma_load21 := memory_load64_le(stack, bvadd64(R31, 8bv64)), gamma_load64(Gamma_stack, bvadd64(R31, 8bv64)); - R30, Gamma_R30 := load21, Gamma_load21; - R31, Gamma_R31 := bvadd64(R31, 16bv64), Gamma_R31; - goto main_1876_basil_return; - main_1876_basil_return: - assume {:captureState "main_1876_basil_return"} true; + assert (L(mem, R10) ==> Gamma_R11); + mem, Gamma_mem := memory_store32_le(mem, R10, R11[32:0]), gamma_store32(Gamma_mem, R10, Gamma_R11); + assume {:captureState "%000002b0"} true; + goto main_basil_return; + main_basil_return: + assume {:captureState "main_basil_return"} true; return; } diff --git a/src/test/correct/function/clang_pic/function.gts b/src/test/correct/function/clang_pic/function.gts deleted file mode 100644 index f731025b5..000000000 Binary files a/src/test/correct/function/clang_pic/function.gts and /dev/null differ diff --git a/src/test/correct/function/clang_pic/function.md5sum b/src/test/correct/function/clang_pic/function.md5sum new file mode 100644 index 000000000..5c731bad1 --- /dev/null +++ b/src/test/correct/function/clang_pic/function.md5sum @@ -0,0 +1,5 @@ +bc6524f58fb252a46213628383a94a9a correct/function/clang_pic/a.out +e8135455f834c4eab23466aac7b411a1 correct/function/clang_pic/function.adt +ada200848b03a4baf5efd9f0c09ec32d correct/function/clang_pic/function.bir +006a981f0fed846e16939fd60144fc16 correct/function/clang_pic/function.relf +715c946d909d2fd92a4f49f29e31547e correct/function/clang_pic/function.gts diff --git a/src/test/correct/function/clang_pic/function.relf b/src/test/correct/function/clang_pic/function.relf deleted file mode 100644 index b4df74a8b..000000000 --- a/src/test/correct/function/clang_pic/function.relf +++ /dev/null @@ -1,127 +0,0 @@ - -Relocation section '.rela.dyn' at offset 0x460 contains 10 entries: - Offset Info Type Symbol's Value Symbol's Name + Addend -0000000000010db8 0000000000000403 R_AARCH64_RELATIVE 750 -0000000000010dc0 0000000000000403 R_AARCH64_RELATIVE 700 -0000000000010fc0 0000000000000403 R_AARCH64_RELATIVE 11034 -0000000000010fd0 0000000000000403 R_AARCH64_RELATIVE 11038 -0000000000010fd8 0000000000000403 R_AARCH64_RELATIVE 754 -0000000000011028 0000000000000403 R_AARCH64_RELATIVE 11028 -0000000000010fb0 0000000400000401 R_AARCH64_GLOB_DAT 0000000000000000 _ITM_deregisterTMCloneTable + 0 -0000000000010fb8 0000000500000401 R_AARCH64_GLOB_DAT 0000000000000000 __cxa_finalize@GLIBC_2.17 + 0 -0000000000010fc8 0000000600000401 R_AARCH64_GLOB_DAT 0000000000000000 __gmon_start__ + 0 -0000000000010fe0 0000000800000401 R_AARCH64_GLOB_DAT 0000000000000000 _ITM_registerTMCloneTable + 0 - -Relocation section '.rela.plt' at offset 0x550 contains 4 entries: - Offset Info Type Symbol's Value Symbol's Name + Addend -0000000000011000 0000000300000402 R_AARCH64_JUMP_SLOT 0000000000000000 __libc_start_main@GLIBC_2.34 + 0 -0000000000011008 0000000500000402 R_AARCH64_JUMP_SLOT 0000000000000000 __cxa_finalize@GLIBC_2.17 + 0 -0000000000011010 0000000600000402 R_AARCH64_JUMP_SLOT 0000000000000000 __gmon_start__ + 0 -0000000000011018 0000000700000402 R_AARCH64_JUMP_SLOT 0000000000000000 abort@GLIBC_2.17 + 0 - -Symbol table '.dynsym' contains 9 entries: - Num: Value Size Type Bind Vis Ndx Name - 0: 0000000000000000 0 NOTYPE LOCAL DEFAULT UND - 1: 00000000000005b0 0 SECTION LOCAL DEFAULT 11 .init - 2: 0000000000011020 0 SECTION LOCAL DEFAULT 23 .data - 3: 0000000000000000 0 FUNC GLOBAL DEFAULT UND __libc_start_main@GLIBC_2.34 (2) - 4: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_deregisterTMCloneTable - 5: 0000000000000000 0 FUNC WEAK DEFAULT UND __cxa_finalize@GLIBC_2.17 (3) - 6: 0000000000000000 0 NOTYPE WEAK DEFAULT UND __gmon_start__ - 7: 0000000000000000 0 FUNC GLOBAL DEFAULT UND abort@GLIBC_2.17 (3) - 8: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_registerTMCloneTable - -Symbol table '.symtab' contains 92 entries: - Num: Value Size Type Bind Vis Ndx Name - 0: 0000000000000000 0 NOTYPE LOCAL DEFAULT UND - 1: 0000000000000238 0 SECTION LOCAL DEFAULT 1 .interp - 2: 0000000000000254 0 SECTION LOCAL DEFAULT 2 .note.gnu.build-id - 3: 0000000000000278 0 SECTION LOCAL DEFAULT 3 .note.ABI-tag - 4: 0000000000000298 0 SECTION LOCAL DEFAULT 4 .gnu.hash - 5: 00000000000002b8 0 SECTION LOCAL DEFAULT 5 .dynsym - 6: 0000000000000390 0 SECTION LOCAL DEFAULT 6 .dynstr - 7: 000000000000041e 0 SECTION LOCAL DEFAULT 7 .gnu.version - 8: 0000000000000430 0 SECTION LOCAL DEFAULT 8 .gnu.version_r - 9: 0000000000000460 0 SECTION LOCAL DEFAULT 9 .rela.dyn - 10: 0000000000000550 0 SECTION LOCAL DEFAULT 10 .rela.plt - 11: 00000000000005b0 0 SECTION LOCAL DEFAULT 11 .init - 12: 00000000000005d0 0 SECTION LOCAL DEFAULT 12 .plt - 13: 0000000000000640 0 SECTION LOCAL DEFAULT 13 .text - 14: 0000000000000790 0 SECTION LOCAL DEFAULT 14 .fini - 15: 00000000000007a4 0 SECTION LOCAL DEFAULT 15 .rodata - 16: 00000000000007a8 0 SECTION LOCAL DEFAULT 16 .eh_frame_hdr - 17: 00000000000007f0 0 SECTION LOCAL DEFAULT 17 .eh_frame - 18: 0000000000010db8 0 SECTION LOCAL DEFAULT 18 .init_array - 19: 0000000000010dc0 0 SECTION LOCAL DEFAULT 19 .fini_array - 20: 0000000000010dc8 0 SECTION LOCAL DEFAULT 20 .dynamic - 21: 0000000000010fa8 0 SECTION LOCAL DEFAULT 21 .got - 22: 0000000000010fe8 0 SECTION LOCAL DEFAULT 22 .got.plt - 23: 0000000000011020 0 SECTION LOCAL DEFAULT 23 .data - 24: 0000000000011030 0 SECTION LOCAL DEFAULT 24 .bss - 25: 0000000000000000 0 SECTION LOCAL DEFAULT 25 .comment - 26: 0000000000000000 0 FILE LOCAL DEFAULT ABS Scrt1.o - 27: 0000000000000278 0 NOTYPE LOCAL DEFAULT 3 $d - 28: 0000000000000278 32 OBJECT LOCAL DEFAULT 3 __abi_tag - 29: 0000000000000640 0 NOTYPE LOCAL DEFAULT 13 $x - 30: 0000000000000804 0 NOTYPE LOCAL DEFAULT 17 $d - 31: 00000000000007a4 0 NOTYPE LOCAL DEFAULT 15 $d - 32: 0000000000000000 0 FILE LOCAL DEFAULT ABS crti.o - 33: 0000000000000674 0 NOTYPE LOCAL DEFAULT 13 $x - 34: 0000000000000674 20 FUNC LOCAL DEFAULT 13 call_weak_fn - 35: 00000000000005b0 0 NOTYPE LOCAL DEFAULT 11 $x - 36: 0000000000000790 0 NOTYPE LOCAL DEFAULT 14 $x - 37: 0000000000000000 0 FILE LOCAL DEFAULT ABS crtn.o - 38: 00000000000005c0 0 NOTYPE LOCAL DEFAULT 11 $x - 39: 000000000000079c 0 NOTYPE LOCAL DEFAULT 14 $x - 40: 0000000000000000 0 FILE LOCAL DEFAULT ABS crtstuff.c - 41: 0000000000000690 0 NOTYPE LOCAL DEFAULT 13 $x - 42: 0000000000000690 0 FUNC LOCAL DEFAULT 13 deregister_tm_clones - 43: 00000000000006c0 0 FUNC LOCAL DEFAULT 13 register_tm_clones - 44: 0000000000011028 0 NOTYPE LOCAL DEFAULT 23 $d - 45: 0000000000000700 0 FUNC LOCAL DEFAULT 13 __do_global_dtors_aux - 46: 0000000000011030 1 OBJECT LOCAL DEFAULT 24 completed.0 - 47: 0000000000010dc0 0 NOTYPE LOCAL DEFAULT 19 $d - 48: 0000000000010dc0 0 OBJECT LOCAL DEFAULT 19 __do_global_dtors_aux_fini_array_entry - 49: 0000000000000750 0 FUNC LOCAL DEFAULT 13 frame_dummy - 50: 0000000000010db8 0 NOTYPE LOCAL DEFAULT 18 $d - 51: 0000000000010db8 0 OBJECT LOCAL DEFAULT 18 __frame_dummy_init_array_entry - 52: 0000000000000818 0 NOTYPE LOCAL DEFAULT 17 $d - 53: 0000000000011030 0 NOTYPE LOCAL DEFAULT 24 $d - 54: 0000000000000000 0 FILE LOCAL DEFAULT ABS function.c - 55: 0000000000000754 0 NOTYPE LOCAL DEFAULT 13 $x.0 - 56: 0000000000011034 0 NOTYPE LOCAL DEFAULT 24 $d.1 - 57: 000000000000002a 0 NOTYPE LOCAL DEFAULT 25 $d.2 - 58: 0000000000000878 0 NOTYPE LOCAL DEFAULT 17 $d.3 - 59: 0000000000000000 0 FILE LOCAL DEFAULT ABS crtstuff.c - 60: 00000000000008c8 0 NOTYPE LOCAL DEFAULT 17 $d - 61: 00000000000008c8 0 OBJECT LOCAL DEFAULT 17 __FRAME_END__ - 62: 0000000000000000 0 FILE LOCAL DEFAULT ABS - 63: 0000000000010dc8 0 OBJECT LOCAL DEFAULT ABS _DYNAMIC - 64: 00000000000007a8 0 NOTYPE LOCAL DEFAULT 16 __GNU_EH_FRAME_HDR - 65: 0000000000010fa8 0 OBJECT LOCAL DEFAULT ABS _GLOBAL_OFFSET_TABLE_ - 66: 00000000000005d0 0 NOTYPE LOCAL DEFAULT 12 $x - 67: 0000000000000000 0 FUNC GLOBAL DEFAULT UND __libc_start_main@GLIBC_2.34 - 68: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_deregisterTMCloneTable - 69: 0000000000011020 0 NOTYPE WEAK DEFAULT 23 data_start - 70: 0000000000011030 0 NOTYPE GLOBAL DEFAULT 24 __bss_start__ - 71: 0000000000000000 0 FUNC WEAK DEFAULT UND __cxa_finalize@GLIBC_2.17 - 72: 0000000000011040 0 NOTYPE GLOBAL DEFAULT 24 _bss_end__ - 73: 0000000000011030 0 NOTYPE GLOBAL DEFAULT 23 _edata - 74: 0000000000011034 4 OBJECT GLOBAL DEFAULT 24 x - 75: 0000000000000790 0 FUNC GLOBAL HIDDEN 14 _fini - 76: 0000000000011040 0 NOTYPE GLOBAL DEFAULT 24 __bss_end__ - 77: 0000000000000788 8 FUNC GLOBAL DEFAULT 13 get_two - 78: 0000000000011020 0 NOTYPE GLOBAL DEFAULT 23 __data_start - 79: 0000000000000000 0 NOTYPE WEAK DEFAULT UND __gmon_start__ - 80: 0000000000011028 0 OBJECT GLOBAL HIDDEN 23 __dso_handle - 81: 0000000000000000 0 FUNC GLOBAL DEFAULT UND abort@GLIBC_2.17 - 82: 00000000000007a4 4 OBJECT GLOBAL DEFAULT 15 _IO_stdin_used - 83: 0000000000011040 0 NOTYPE GLOBAL DEFAULT 24 _end - 84: 0000000000000640 52 FUNC GLOBAL DEFAULT 13 _start - 85: 0000000000011040 0 NOTYPE GLOBAL DEFAULT 24 __end__ - 86: 0000000000011038 4 OBJECT GLOBAL DEFAULT 24 y - 87: 0000000000011030 0 NOTYPE GLOBAL DEFAULT 24 __bss_start - 88: 0000000000000754 52 FUNC GLOBAL DEFAULT 13 main - 89: 0000000000011030 0 OBJECT GLOBAL HIDDEN 23 __TMC_END__ - 90: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_registerTMCloneTable - 91: 00000000000005b0 0 FUNC GLOBAL HIDDEN 11 _init diff --git a/src/test/correct/function/clang_pic/function_gtirb.expected b/src/test/correct/function/clang_pic/function_gtirb.expected index 34dec36dd..63b7b27a1 100644 --- a/src/test/correct/function/clang_pic/function_gtirb.expected +++ b/src/test/correct/function/clang_pic/function_gtirb.expected @@ -1,23 +1,19 @@ var {:extern} Gamma_R0: bool; -var {:extern} Gamma_R29: bool; -var {:extern} Gamma_R30: bool; -var {:extern} Gamma_R31: bool; +var {:extern} Gamma_R10: bool; +var {:extern} Gamma_R11: bool; var {:extern} Gamma_R8: bool; var {:extern} Gamma_R9: bool; var {:extern} Gamma_mem: [bv64]bool; -var {:extern} Gamma_stack: [bv64]bool; var {:extern} R0: bv64; -var {:extern} R29: bv64; -var {:extern} R30: bv64; -var {:extern} R31: bv64; +var {:extern} R10: bv64; +var {:extern} R11: bv64; var {:extern} R8: bv64; var {:extern} R9: bv64; var {:extern} mem: [bv64]bv8; -var {:extern} stack: [bv64]bv8; const {:extern} $x_addr: bv64; -axiom ($x_addr == 69684bv64); +axiom ($x_addr == 131092bv64); const {:extern} $y_addr: bv64; -axiom ($y_addr == 69688bv64); +axiom ($y_addr == 131096bv64); function {:extern} L(mem$in: [bv64]bv8, index: bv64) returns (bool) { false } @@ -35,10 +31,6 @@ function {:extern} gamma_store32(gammaMap: [bv64]bool, index: bv64, value: bool) gammaMap[index := value][bvadd64(index, 1bv64) := value][bvadd64(index, 2bv64) := value][bvadd64(index, 3bv64) := value] } -function {:extern} gamma_store64(gammaMap: [bv64]bool, index: bv64, value: bool) returns ([bv64]bool) { - gammaMap[index := value][bvadd64(index, 1bv64) := value][bvadd64(index, 2bv64) := value][bvadd64(index, 3bv64) := value][bvadd64(index, 4bv64) := value][bvadd64(index, 5bv64) := value][bvadd64(index, 6bv64) := value][bvadd64(index, 7bv64) := value] -} - function {:extern} memory_load32_le(memory: [bv64]bv8, index: bv64) returns (bv32) { (memory[bvadd64(index, 3bv64)] ++ (memory[bvadd64(index, 2bv64)] ++ (memory[bvadd64(index, 1bv64)] ++ memory[index]))) } @@ -51,21 +43,17 @@ function {:extern} memory_store32_le(memory: [bv64]bv8, index: bv64, value: bv32 memory[index := value[8:0]][bvadd64(index, 1bv64) := value[16:8]][bvadd64(index, 2bv64) := value[24:16]][bvadd64(index, 3bv64) := value[32:24]] } -function {:extern} memory_store64_le(memory: [bv64]bv8, index: bv64, value: bv64) returns ([bv64]bv8) { - memory[index := value[8:0]][bvadd64(index, 1bv64) := value[16:8]][bvadd64(index, 2bv64) := value[24:16]][bvadd64(index, 3bv64) := value[32:24]][bvadd64(index, 4bv64) := value[40:32]][bvadd64(index, 5bv64) := value[48:40]][bvadd64(index, 6bv64) := value[56:48]][bvadd64(index, 7bv64) := value[64:56]] -} - procedure {:extern} rely(); modifies Gamma_mem, mem; ensures (Gamma_mem == old(Gamma_mem)); ensures (mem == old(mem)); - free ensures (memory_load32_le(mem, 1956bv64) == 131073bv32); - free ensures (memory_load64_le(mem, 69048bv64) == 1872bv64); - free ensures (memory_load64_le(mem, 69056bv64) == 1792bv64); - free ensures (memory_load64_le(mem, 69568bv64) == 69684bv64); - free ensures (memory_load64_le(mem, 69584bv64) == 69688bv64); - free ensures (memory_load64_le(mem, 69592bv64) == 1876bv64); - free ensures (memory_load64_le(mem, 69672bv64) == 69672bv64); + free ensures (memory_load32_le(mem, 2328bv64) == 131073bv32); + free ensures (memory_load64_le(mem, 130424bv64) == 2256bv64); + free ensures (memory_load64_le(mem, 130432bv64) == 2176bv64); + free ensures (memory_load64_le(mem, 131032bv64) == 131092bv64); + free ensures (memory_load64_le(mem, 131048bv64) == 131096bv64); + free ensures (memory_load64_le(mem, 131056bv64) == 2260bv64); + free ensures (memory_load64_le(mem, 131080bv64) == 131080bv64); procedure {:extern} rely_transitive(); modifies Gamma_mem, mem; @@ -83,112 +71,57 @@ procedure {:extern} rely_reflexive(); procedure {:extern} guarantee_reflexive(); modifies Gamma_mem, mem; -procedure main_1876(); - modifies Gamma_R0, Gamma_R29, Gamma_R30, Gamma_R31, Gamma_R8, Gamma_R9, Gamma_mem, Gamma_stack, R0, R29, R30, R31, R8, R9, mem, stack; +procedure main(); + modifies Gamma_R0, Gamma_R10, Gamma_R11, Gamma_R8, Gamma_R9, Gamma_mem, R0, R10, R11, R8, R9, mem; requires (gamma_load32(Gamma_mem, $x_addr) == true); requires (gamma_load32(Gamma_mem, $y_addr) == true); - free requires (memory_load64_le(mem, 69664bv64) == 0bv64); - free requires (memory_load64_le(mem, 69672bv64) == 69672bv64); - free requires (memory_load32_le(mem, 1956bv64) == 131073bv32); - free requires (memory_load64_le(mem, 69048bv64) == 1872bv64); - free requires (memory_load64_le(mem, 69056bv64) == 1792bv64); - free requires (memory_load64_le(mem, 69568bv64) == 69684bv64); - free requires (memory_load64_le(mem, 69584bv64) == 69688bv64); - free requires (memory_load64_le(mem, 69592bv64) == 1876bv64); - free requires (memory_load64_le(mem, 69672bv64) == 69672bv64); - free ensures (Gamma_R29 == old(Gamma_R29)); - free ensures (Gamma_R31 == old(Gamma_R31)); - free ensures (R29 == old(R29)); - free ensures (R31 == old(R31)); - free ensures (memory_load32_le(mem, 1956bv64) == 131073bv32); - free ensures (memory_load64_le(mem, 69048bv64) == 1872bv64); - free ensures (memory_load64_le(mem, 69056bv64) == 1792bv64); - free ensures (memory_load64_le(mem, 69568bv64) == 69684bv64); - free ensures (memory_load64_le(mem, 69584bv64) == 69688bv64); - free ensures (memory_load64_le(mem, 69592bv64) == 1876bv64); - free ensures (memory_load64_le(mem, 69672bv64) == 69672bv64); - -implementation main_1876() + free requires (memory_load64_le(mem, 131072bv64) == 0bv64); + free requires (memory_load64_le(mem, 131080bv64) == 131080bv64); + free requires (memory_load32_le(mem, 2328bv64) == 131073bv32); + free requires (memory_load64_le(mem, 130424bv64) == 2256bv64); + free requires (memory_load64_le(mem, 130432bv64) == 2176bv64); + free requires (memory_load64_le(mem, 131032bv64) == 131092bv64); + free requires (memory_load64_le(mem, 131048bv64) == 131096bv64); + free requires (memory_load64_le(mem, 131056bv64) == 2260bv64); + free requires (memory_load64_le(mem, 131080bv64) == 131080bv64); + free ensures (memory_load32_le(mem, 2328bv64) == 131073bv32); + free ensures (memory_load64_le(mem, 130424bv64) == 2256bv64); + free ensures (memory_load64_le(mem, 130432bv64) == 2176bv64); + free ensures (memory_load64_le(mem, 131032bv64) == 131092bv64); + free ensures (memory_load64_le(mem, 131048bv64) == 131096bv64); + free ensures (memory_load64_le(mem, 131056bv64) == 2260bv64); + free ensures (memory_load64_le(mem, 131080bv64) == 131080bv64); + +implementation main() { - var Cse0__5_0_0: bv64; - var Gamma_Cse0__5_0_0: bool; - var Gamma_load1: bool; - var Gamma_load2: bool; - var Gamma_load3: bool; - var Gamma_load4: bool; - var load1: bv64; - var load2: bv64; - var load3: bv64; - var load4: bv64; - main_1876__0__NmMrnPbhSNuHmxHjD8po9A: - assume {:captureState "main_1876__0__NmMrnPbhSNuHmxHjD8po9A"} true; - Cse0__5_0_0, Gamma_Cse0__5_0_0 := bvadd64(R31, 18446744073709551600bv64), Gamma_R31; - stack, Gamma_stack := memory_store64_le(stack, Cse0__5_0_0, R29), gamma_store64(Gamma_stack, Cse0__5_0_0, Gamma_R29); - assume {:captureState "1876_1"} true; - stack, Gamma_stack := memory_store64_le(stack, bvadd64(Cse0__5_0_0, 8bv64), R30), gamma_store64(Gamma_stack, bvadd64(Cse0__5_0_0, 8bv64), Gamma_R30); - assume {:captureState "1876_2"} true; - R31, Gamma_R31 := Cse0__5_0_0, Gamma_Cse0__5_0_0; - R29, Gamma_R29 := R31, Gamma_R31; - R9, Gamma_R9 := 65536bv64, true; + var $load16: bv64; + var $load17: bv64; + var Gamma_$load16: bool; + var Gamma_$load17: bool; + $main$__0__$lwyID0MJQb6vgyjzPFtz8Q: + assume {:captureState "$main$__0__$lwyID0MJQb6vgyjzPFtz8Q"} true; + R8, Gamma_R8 := 126976bv64, true; + R10, Gamma_R10 := 126976bv64, true; + R0, Gamma_R0 := 0bv64, true; call rely(); - load1, Gamma_load1 := memory_load64_le(mem, bvadd64(R9, 4032bv64)), (gamma_load64(Gamma_mem, bvadd64(R9, 4032bv64)) || L(mem, bvadd64(R9, 4032bv64))); - R9, Gamma_R9 := load1, Gamma_load1; - R8, Gamma_R8 := 1bv64, true; + $load16, Gamma_$load16 := memory_load64_le(mem, bvadd64(R8, 4056bv64)), (gamma_load64(Gamma_mem, bvadd64(R8, 4056bv64)) || L(mem, bvadd64(R8, 4056bv64))); + R8, Gamma_R8 := $load16, Gamma_$load16; call rely(); - assert (L(mem, R9) ==> Gamma_R8); - mem, Gamma_mem := memory_store32_le(mem, R9, R8[32:0]), gamma_store32(Gamma_mem, R9, Gamma_R8); - assume {:captureState "1896_0"} true; - R30, Gamma_R30 := 1904bv64, true; - call get_two_1928(); - goto main_1876__1__tJ_OTc5AS_~oGm8pJbb5Ew; - main_1876__1__tJ_OTc5AS_~oGm8pJbb5Ew: - assume {:captureState "main_1876__1__tJ_OTc5AS_~oGm8pJbb5Ew"} true; - R8, Gamma_R8 := 65536bv64, true; + $load17, Gamma_$load17 := memory_load64_le(mem, bvadd64(R10, 4072bv64)), (gamma_load64(Gamma_mem, bvadd64(R10, 4072bv64)) || L(mem, bvadd64(R10, 4072bv64))); + R10, Gamma_R10 := $load17, Gamma_$load17; + R9, Gamma_R9 := 1bv64, true; + R11, Gamma_R11 := 2bv64, true; call rely(); - load2, Gamma_load2 := memory_load64_le(mem, bvadd64(R8, 4048bv64)), (gamma_load64(Gamma_mem, bvadd64(R8, 4048bv64)) || L(mem, bvadd64(R8, 4048bv64))); - R8, Gamma_R8 := load2, Gamma_load2; + assert (L(mem, R8) ==> Gamma_R9); + mem, Gamma_mem := memory_store32_le(mem, R8, R9[32:0]), gamma_store32(Gamma_mem, R8, Gamma_R9); + assume {:captureState "2288$0"} true; call rely(); - assert (L(mem, R8) ==> Gamma_R0); - mem, Gamma_mem := memory_store32_le(mem, R8, R0[32:0]), gamma_store32(Gamma_mem, R8, Gamma_R0); - assume {:captureState "1912_0"} true; - R0, Gamma_R0 := 0bv64, true; - load3, Gamma_load3 := memory_load64_le(stack, R31), gamma_load64(Gamma_stack, R31); - R29, Gamma_R29 := load3, Gamma_load3; - load4, Gamma_load4 := memory_load64_le(stack, bvadd64(R31, 8bv64)), gamma_load64(Gamma_stack, bvadd64(R31, 8bv64)); - R30, Gamma_R30 := load4, Gamma_load4; - R31, Gamma_R31 := bvadd64(R31, 16bv64), Gamma_R31; - goto main_1876_basil_return; - main_1876_basil_return: - assume {:captureState "main_1876_basil_return"} true; - return; -} - -procedure get_two_1928(); - modifies Gamma_R0, R0; - free requires (memory_load32_le(mem, 1956bv64) == 131073bv32); - free requires (memory_load64_le(mem, 69048bv64) == 1872bv64); - free requires (memory_load64_le(mem, 69056bv64) == 1792bv64); - free requires (memory_load64_le(mem, 69568bv64) == 69684bv64); - free requires (memory_load64_le(mem, 69584bv64) == 69688bv64); - free requires (memory_load64_le(mem, 69592bv64) == 1876bv64); - free requires (memory_load64_le(mem, 69672bv64) == 69672bv64); - ensures (Gamma_R0 == true); - free ensures (memory_load32_le(mem, 1956bv64) == 131073bv32); - free ensures (memory_load64_le(mem, 69048bv64) == 1872bv64); - free ensures (memory_load64_le(mem, 69056bv64) == 1792bv64); - free ensures (memory_load64_le(mem, 69568bv64) == 69684bv64); - free ensures (memory_load64_le(mem, 69584bv64) == 69688bv64); - free ensures (memory_load64_le(mem, 69592bv64) == 1876bv64); - free ensures (memory_load64_le(mem, 69672bv64) == 69672bv64); - -implementation get_two_1928() -{ - get_two_1928__0__FEI1g2gcQAqE4UEurbd17A: - assume {:captureState "get_two_1928__0__FEI1g2gcQAqE4UEurbd17A"} true; - R0, Gamma_R0 := 2bv64, true; - goto get_two_1928_basil_return; - get_two_1928_basil_return: - assume {:captureState "get_two_1928_basil_return"} true; + assert (L(mem, R10) ==> Gamma_R11); + mem, Gamma_mem := memory_store32_le(mem, R10, R11[32:0]), gamma_store32(Gamma_mem, R10, Gamma_R11); + assume {:captureState "2292$0"} true; + goto main_basil_return; + main_basil_return: + assume {:captureState "main_basil_return"} true; return; } diff --git a/src/test/correct/function/gcc/function.adt b/src/test/correct/function/gcc/function.adt deleted file mode 100644 index 823449996..000000000 --- a/src/test/correct/function/gcc/function.adt +++ /dev/null @@ -1,553 +0,0 @@ -Project(Attrs([Attr("filename","\"gcc/function.out\""), -Attr("image-specification","(declare abi (name str))\n(declare arch (name str))\n(declare base-address (addr int))\n(declare bias (off int))\n(declare bits (size int))\n(declare code-region (addr int) (size int) (off int))\n(declare code-start (addr int))\n(declare entry-point (addr int))\n(declare external-reference (addr int) (name str))\n(declare format (name str))\n(declare is-executable (flag bool))\n(declare is-little-endian (flag bool))\n(declare llvm:base-address (addr int))\n(declare llvm:code-entry (name str) (off int) (size int))\n(declare llvm:coff-import-library (name str))\n(declare llvm:coff-virtual-section-header (name str) (addr int) (size int))\n(declare llvm:elf-program-header (name str) (off int) (size int))\n(declare llvm:elf-program-header-flags (name str) (ld bool) (r bool) \n (w bool) (x bool))\n(declare llvm:elf-virtual-program-header (name str) (addr int) (size int))\n(declare llvm:entry-point (addr int))\n(declare llvm:macho-symbol (name str) (value int))\n(declare llvm:name-reference (at int) (name str))\n(declare llvm:relocation (at int) (addr int))\n(declare llvm:section-entry (name str) (addr int) (size int) (off int))\n(declare llvm:section-flags (name str) (r bool) (w bool) (x bool))\n(declare llvm:segment-command (name str) (off int) (size int))\n(declare llvm:segment-command-flags (name str) (r bool) (w bool) (x bool))\n(declare llvm:symbol-entry (name str) (addr int) (size int) (off int)\n (value int))\n(declare llvm:virtual-segment-command (name str) (addr int) (size int))\n(declare mapped (addr int) (size int) (off int))\n(declare named-region (addr int) (size int) (name str))\n(declare named-symbol (addr int) (name str))\n(declare require (name str))\n(declare section (addr int) (size int))\n(declare segment (addr int) (size int) (r bool) (w bool) (x bool))\n(declare subarch (name str))\n(declare symbol-chunk (addr int) (size int) (root int))\n(declare symbol-value (addr int) (value int))\n(declare system (name str))\n(declare vendor (name str))\n\n(abi unknown)\n(arch aarch64)\n(base-address 0)\n(bias 0)\n(bits 64)\n(code-region 1876 20 1876)\n(code-region 1536 340 1536)\n(code-region 1440 96 1440)\n(code-region 1408 24 1408)\n(code-start 1588)\n(code-start 1868)\n(code-start 1536)\n(code-start 1812)\n(entry-point 1536)\n(external-reference 69592 _ITM_deregisterTMCloneTable)\n(external-reference 69600 __cxa_finalize)\n(external-reference 69608 __gmon_start__)\n(external-reference 69624 _ITM_registerTMCloneTable)\n(external-reference 69552 __libc_start_main)\n(external-reference 69560 __cxa_finalize)\n(external-reference 69568 __gmon_start__)\n(external-reference 69576 abort)\n(format elf)\n(is-executable true)\n(is-little-endian true)\n(llvm:base-address 0)\n(llvm:code-entry abort 0 0)\n(llvm:code-entry __cxa_finalize 0 0)\n(llvm:code-entry __libc_start_main 0 0)\n(llvm:code-entry _init 1408 0)\n(llvm:code-entry main 1812 56)\n(llvm:code-entry _start 1536 52)\n(llvm:code-entry abort@GLIBC_2.17 0 0)\n(llvm:code-entry get_two 1868 8)\n(llvm:code-entry _fini 1876 0)\n(llvm:code-entry __cxa_finalize@GLIBC_2.17 0 0)\n(llvm:code-entry __libc_start_main@GLIBC_2.34 0 0)\n(llvm:code-entry frame_dummy 1808 0)\n(llvm:code-entry __do_global_dtors_aux 1728 0)\n(llvm:code-entry register_tm_clones 1664 0)\n(llvm:code-entry deregister_tm_clones 1616 0)\n(llvm:code-entry call_weak_fn 1588 20)\n(llvm:code-entry .fini 1876 20)\n(llvm:code-entry .text 1536 340)\n(llvm:code-entry .plt 1440 96)\n(llvm:code-entry .init 1408 24)\n(llvm:elf-program-header 08 3480 616)\n(llvm:elf-program-header 07 0 0)\n(llvm:elf-program-header 06 1900 68)\n(llvm:elf-program-header 05 596 68)\n(llvm:elf-program-header 04 3496 496)\n(llvm:elf-program-header 03 3480 632)\n(llvm:elf-program-header 02 0 2160)\n(llvm:elf-program-header 01 568 27)\n(llvm:elf-program-header 00 64 504)\n(llvm:elf-program-header-flags 08 false true false false)\n(llvm:elf-program-header-flags 07 false true true false)\n(llvm:elf-program-header-flags 06 false true false false)\n(llvm:elf-program-header-flags 05 false true false false)\n(llvm:elf-program-header-flags 04 false true true false)\n(llvm:elf-program-header-flags 03 true true true false)\n(llvm:elf-program-header-flags 02 true true false true)\n(llvm:elf-program-header-flags 01 false true false false)\n(llvm:elf-program-header-flags 00 false true false false)\n(llvm:elf-virtual-program-header 08 69016 616)\n(llvm:elf-virtual-program-header 07 0 0)\n(llvm:elf-virtual-program-header 06 1900 68)\n(llvm:elf-virtual-program-header 05 596 68)\n(llvm:elf-virtual-program-header 04 69032 496)\n(llvm:elf-virtual-program-header 03 69016 648)\n(llvm:elf-virtual-program-header 02 0 2160)\n(llvm:elf-virtual-program-header 01 568 27)\n(llvm:elf-virtual-program-header 00 64 504)\n(llvm:entry-point 1536)\n(llvm:name-reference 69576 abort)\n(llvm:name-reference 69568 __gmon_start__)\n(llvm:name-reference 69560 __cxa_finalize)\n(llvm:name-reference 69552 __libc_start_main)\n(llvm:name-reference 69624 _ITM_registerTMCloneTable)\n(llvm:name-reference 69608 __gmon_start__)\n(llvm:name-reference 69600 __cxa_finalize)\n(llvm:name-reference 69592 _ITM_deregisterTMCloneTable)\n(llvm:section-entry .shstrtab 0 250 6872)\n(llvm:section-entry .strtab 0 552 6320)\n(llvm:section-entry .symtab 0 2160 4160)\n(llvm:section-entry .comment 0 43 4112)\n(llvm:section-entry .bss 69648 16 4112)\n(llvm:section-entry .data 69632 16 4096)\n(llvm:section-entry .got 69528 104 3992)\n(llvm:section-entry .dynamic 69032 496 3496)\n(llvm:section-entry .fini_array 69024 8 3488)\n(llvm:section-entry .init_array 69016 8 3480)\n(llvm:section-entry .eh_frame 1968 192 1968)\n(llvm:section-entry .eh_frame_hdr 1900 68 1900)\n(llvm:section-entry .rodata 1896 4 1896)\n(llvm:section-entry .fini 1876 20 1876)\n(llvm:section-entry .text 1536 340 1536)\n(llvm:section-entry .plt 1440 96 1440)\n(llvm:section-entry .init 1408 24 1408)\n(llvm:section-entry .rela.plt 1312 96 1312)\n(llvm:section-entry .rela.dyn 1120 192 1120)\n(llvm:section-entry .gnu.version_r 1072 48 1072)\n(llvm:section-entry .gnu.version 1054 18 1054)\n(llvm:section-entry .dynstr 912 141 912)\n(llvm:section-entry .dynsym 696 216 696)\n(llvm:section-entry .gnu.hash 664 28 664)\n(llvm:section-entry .note.ABI-tag 632 32 632)\n(llvm:section-entry .note.gnu.build-id 596 36 596)\n(llvm:section-entry .interp 568 27 568)\n(llvm:section-flags .shstrtab true false false)\n(llvm:section-flags .strtab true false false)\n(llvm:section-flags .symtab true false false)\n(llvm:section-flags .comment true false false)\n(llvm:section-flags .bss true true false)\n(llvm:section-flags .data true true false)\n(llvm:section-flags .got true true false)\n(llvm:section-flags .dynamic true true false)\n(llvm:section-flags .fini_array true true false)\n(llvm:section-flags .init_array true true false)\n(llvm:section-flags .eh_frame true false false)\n(llvm:section-flags .eh_frame_hdr true false false)\n(llvm:section-flags .rodata true false false)\n(llvm:section-flags .fini true false true)\n(llvm:section-flags .text true false true)\n(llvm:section-flags .plt true false true)\n(llvm:section-flags .init true false true)\n(llvm:section-flags .rela.plt true false false)\n(llvm:section-flags .rela.dyn true false false)\n(llvm:section-flags .gnu.version_r true false false)\n(llvm:section-flags .gnu.version true false false)\n(llvm:section-flags .dynstr true false false)\n(llvm:section-flags .dynsym true false false)\n(llvm:section-flags .gnu.hash true false false)\n(llvm:section-flags .note.ABI-tag true false false)\n(llvm:section-flags .note.gnu.build-id true false false)\n(llvm:section-flags .interp true false false)\n(llvm:symbol-entry abort 0 0 0 0)\n(llvm:symbol-entry __cxa_finalize 0 0 0 0)\n(llvm:symbol-entry __libc_start_main 0 0 0 0)\n(llvm:symbol-entry _init 1408 0 1408 1408)\n(llvm:symbol-entry main 1812 56 1812 1812)\n(llvm:symbol-entry _start 1536 52 1536 1536)\n(llvm:symbol-entry abort@GLIBC_2.17 0 0 0 0)\n(llvm:symbol-entry get_two 1868 8 1868 1868)\n(llvm:symbol-entry _fini 1876 0 1876 1876)\n(llvm:symbol-entry __cxa_finalize@GLIBC_2.17 0 0 0 0)\n(llvm:symbol-entry __libc_start_main@GLIBC_2.34 0 0 0 0)\n(llvm:symbol-entry frame_dummy 1808 0 1808 1808)\n(llvm:symbol-entry __do_global_dtors_aux 1728 0 1728 1728)\n(llvm:symbol-entry register_tm_clones 1664 0 1664 1664)\n(llvm:symbol-entry deregister_tm_clones 1616 0 1616 1616)\n(llvm:symbol-entry call_weak_fn 1588 20 1588 1588)\n(mapped 0 2160 0)\n(mapped 69016 632 3480)\n(named-region 0 2160 02)\n(named-region 69016 648 03)\n(named-region 568 27 .interp)\n(named-region 596 36 .note.gnu.build-id)\n(named-region 632 32 .note.ABI-tag)\n(named-region 664 28 .gnu.hash)\n(named-region 696 216 .dynsym)\n(named-region 912 141 .dynstr)\n(named-region 1054 18 .gnu.version)\n(named-region 1072 48 .gnu.version_r)\n(named-region 1120 192 .rela.dyn)\n(named-region 1312 96 .rela.plt)\n(named-region 1408 24 .init)\n(named-region 1440 96 .plt)\n(named-region 1536 340 .text)\n(named-region 1876 20 .fini)\n(named-region 1896 4 .rodata)\n(named-region 1900 68 .eh_frame_hdr)\n(named-region 1968 192 .eh_frame)\n(named-region 69016 8 .init_array)\n(named-region 69024 8 .fini_array)\n(named-region 69032 496 .dynamic)\n(named-region 69528 104 .got)\n(named-region 69632 16 .data)\n(named-region 69648 16 .bss)\n(named-region 0 43 .comment)\n(named-region 0 2160 .symtab)\n(named-region 0 552 .strtab)\n(named-region 0 250 .shstrtab)\n(named-symbol 1588 call_weak_fn)\n(named-symbol 1616 deregister_tm_clones)\n(named-symbol 1664 register_tm_clones)\n(named-symbol 1728 __do_global_dtors_aux)\n(named-symbol 1808 frame_dummy)\n(named-symbol 0 __libc_start_main@GLIBC_2.34)\n(named-symbol 0 __cxa_finalize@GLIBC_2.17)\n(named-symbol 1876 _fini)\n(named-symbol 1868 get_two)\n(named-symbol 0 abort@GLIBC_2.17)\n(named-symbol 1536 _start)\n(named-symbol 1812 main)\n(named-symbol 1408 _init)\n(named-symbol 0 __libc_start_main)\n(named-symbol 0 __cxa_finalize)\n(named-symbol 0 abort)\n(require libc.so.6)\n(section 568 27)\n(section 596 36)\n(section 632 32)\n(section 664 28)\n(section 696 216)\n(section 912 141)\n(section 1054 18)\n(section 1072 48)\n(section 1120 192)\n(section 1312 96)\n(section 1408 24)\n(section 1440 96)\n(section 1536 340)\n(section 1876 20)\n(section 1896 4)\n(section 1900 68)\n(section 1968 192)\n(section 69016 8)\n(section 69024 8)\n(section 69032 496)\n(section 69528 104)\n(section 69632 16)\n(section 69648 16)\n(section 0 43)\n(section 0 2160)\n(section 0 552)\n(section 0 250)\n(segment 0 2160 true false true)\n(segment 69016 648 true true false)\n(subarch v8)\n(symbol-chunk 1588 20 1588)\n(symbol-chunk 1868 8 1868)\n(symbol-chunk 1536 52 1536)\n(symbol-chunk 1812 56 1812)\n(symbol-value 1588 1588)\n(symbol-value 1616 1616)\n(symbol-value 1664 1664)\n(symbol-value 1728 1728)\n(symbol-value 1808 1808)\n(symbol-value 1876 1876)\n(symbol-value 1868 1868)\n(symbol-value 1536 1536)\n(symbol-value 1812 1812)\n(symbol-value 1408 1408)\n(symbol-value 0 0)\n(system \"\")\n(vendor \"\")\n"), -Attr("abi-name","\"aarch64-linux-gnu-elf\"")]), -Sections([Section(".shstrtab", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x00\x06\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xd8\x1b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x38\x00\x09\x00\x40\x00\x1c\x00\x1b\x00\x06\x00\x00\x00\x04\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x04\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x70\x08\x00\x00\x00\x00\x00\x00\x70\x08\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x01\x00\x00\x00\x06\x00\x00\x00\x98\x0d\x00\x00\x00\x00\x00\x00\x98\x0d"), -Section(".strtab", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x00\x06\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xd8\x1b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x38\x00\x09\x00\x40\x00\x1c\x00\x1b\x00\x06\x00\x00\x00\x04\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x04\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x70\x08\x00\x00\x00\x00\x00\x00\x70\x08\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x01\x00\x00\x00\x06\x00\x00\x00\x98\x0d\x00\x00\x00\x00\x00\x00\x98\x0d\x01\x00\x00\x00\x00\x00\x98\x0d\x01\x00\x00\x00\x00\x00\x78\x02\x00\x00\x00\x00\x00\x00\x88\x02\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x02\x00\x00\x00\x06\x00\x00\x00\xa8\x0d\x00\x00\x00\x00\x00\x00\xa8\x0d\x01\x00\x00\x00\x00\x00\xa8\x0d\x01\x00\x00\x00\x00\x00\xf0\x01\x00\x00\x00\x00\x00\x00\xf0\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x04\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x50\xe5\x74\x64\x04\x00\x00\x00\x6c\x07\x00\x00\x00\x00\x00\x00\x6c\x07\x00\x00\x00\x00\x00\x00\x6c\x07\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x51\xe5\x74\x64\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x52\xe5\x74\x64\x04\x00\x00\x00\x98\x0d\x00\x00\x00\x00\x00\x00\x98\x0d\x01\x00\x00\x00\x00\x00\x98\x0d\x01\x00\x00\x00\x00\x00\x68\x02\x00\x00\x00\x00\x00\x00"), -Section(".symtab", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x00\x06\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xd8\x1b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x38\x00\x09\x00\x40\x00\x1c\x00\x1b\x00\x06\x00\x00\x00\x04\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x04\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x70\x08\x00\x00\x00\x00\x00\x00\x70\x08\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x01\x00\x00\x00\x06\x00\x00\x00\x98\x0d\x00\x00\x00\x00\x00\x00\x98\x0d\x01\x00\x00\x00\x00\x00\x98\x0d\x01\x00\x00\x00\x00\x00\x78\x02\x00\x00\x00\x00\x00\x00\x88\x02\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x02\x00\x00\x00\x06\x00\x00\x00\xa8\x0d\x00\x00\x00\x00\x00\x00\xa8\x0d\x01\x00\x00\x00\x00\x00\xa8\x0d\x01\x00\x00\x00\x00\x00\xf0\x01\x00\x00\x00\x00\x00\x00\xf0\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x04\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x50\xe5\x74\x64\x04\x00\x00\x00\x6c\x07\x00\x00\x00\x00\x00\x00\x6c\x07\x00\x00\x00\x00\x00\x00\x6c\x07\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x51\xe5\x74\x64\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x52\xe5\x74\x64\x04\x00\x00\x00\x98\x0d\x00\x00\x00\x00\x00\x00\x98\x0d\x01\x00\x00\x00\x00\x00\x98\x0d\x01\x00\x00\x00\x00\x00\x68\x02\x00\x00\x00\x00\x00\x00\x68\x02\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x2f\x6c\x69\x62\x2f\x6c\x64\x2d\x6c\x69\x6e\x75\x78\x2d\x61\x61\x72\x63\x68\x36\x34\x2e\x73\x6f\x2e\x31\x00\x00\x04\x00\x00\x00\x14\x00\x00\x00\x03\x00\x00\x00\x47\x4e\x55\x00\x5b\x9a\x77\xe6\x2a\x84\xf5\x4c\x20\xf9\x2b\x7d\xa7\x14\xf4\x4c\x7f\x26\xb2\xa7\x04\x00\x00\x00\x10\x00\x00\x00\x01\x00\x00\x00\x47\x4e\x55\x00\x00\x00\x00\x00\x03\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x01\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x0b\x00\x80\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x16\x00\x00\x10\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x48\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x22\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x22\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x73\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5f\x5f\x63\x78\x61\x5f\x66\x69\x6e\x61\x6c\x69\x7a\x65\x00\x5f\x5f\x6c\x69\x62\x63\x5f\x73\x74\x61\x72\x74\x5f\x6d\x61\x69\x6e\x00\x61\x62\x6f\x72\x74\x00\x6c\x69\x62\x63\x2e\x73\x6f\x2e\x36\x00\x47\x4c\x49\x42\x43\x5f\x32\x2e\x31\x37\x00\x47\x4c\x49\x42\x43\x5f\x32\x2e\x33\x34\x00\x5f\x49\x54\x4d\x5f\x64\x65\x72\x65\x67\x69\x73\x74\x65\x72\x54\x4d\x43\x6c\x6f\x6e\x65\x54\x61\x62\x6c\x65\x00\x5f\x5f\x67\x6d\x6f\x6e\x5f\x73\x74\x61\x72\x74\x5f\x5f\x00\x5f\x49\x54\x4d\x5f\x72\x65\x67\x69\x73\x74\x65\x72\x54\x4d\x43\x6c\x6f\x6e\x65\x54\x61\x62\x6c\x65\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x01\x00\x03\x00\x01\x00\x03\x00\x01\x00\x01\x00\x02\x00\x28\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x97\x91\x96\x06\x00\x00\x03\x00\x32\x00\x00\x00\x10\x00\x00\x00\xb4\x91\x96\x06\x00\x00\x02\x00\x3d\x00\x00\x00\x00\x00\x00\x00\x98\x0d\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x10\x07\x00\x00\x00\x00\x00\x00\xa0\x0d\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\xc0\x06\x00\x00\x00\x00\x00\x00\xf0\x0f\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x14\x07\x00\x00\x00\x00\x00\x00\x08\x10\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x08\x10\x01\x00\x00\x00\x00\x00\xd8\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe0\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe8\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xf8\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xb0\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xb8\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xc0\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xc8\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1f\x20\x03\xd5\xfd\x7b\xbf\xa9\xfd\x03\x00\x91\x2a\x00\x00\x94\xfd\x7b\xc1\xa8\xc0\x03\x5f\xd6\x00\x00\x00\x00\x00\x00\x00\x00\xf0\x7b\xbf\xa9\x90\x00\x00\x90\x11\xd6\x47\xf9\x10\xa2\x3e\x91\x20\x02\x1f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x90\x00\x00\x90\x11\xda\x47\xf9\x10\xc2\x3e\x91\x20\x02\x1f\xd6\x90\x00\x00\x90\x11\xde\x47\xf9\x10\xe2\x3e\x91\x20\x02\x1f\xd6\x90\x00\x00\x90\x11\xe2\x47\xf9\x10\x02\x3f\x91\x20\x02\x1f\xd6\x90\x00\x00\x90\x11\xe6\x47\xf9\x10\x22\x3f\x91\x20\x02\x1f\xd6\x1f\x20\x03\xd5\x1d\x00\x80\xd2\x1e\x00\x80\xd2\xe5\x03\x00\xaa\xe1\x03\x40\xf9\xe2\x23\x00\x91\xe6\x03\x00\x91\x80\x00\x00\x90\x00\xf8\x47\xf9\x03\x00\x80\xd2\x04\x00\x80\xd2\xe5\xff\xff\x97\xf0\xff\xff\x97\x80\x00\x00\x90\x00\xf4\x47\xf9\x40\x00\x00\xb4\xe8\xff\xff\x17\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x80\x00\x00\xb0\x00\x40\x00\x91\x81\x00\x00\xb0\x21\x40\x00\x91\x3f\x00\x00\xeb\xc0\x00\x00\x54\x81\x00\x00\x90\x21\xec\x47\xf9\x61\x00\x00\xb4\xf0\x03\x01\xaa\x00\x02\x1f\xd6\xc0\x03\x5f\xd6\x80\x00\x00\xb0\x00\x40\x00\x91\x81\x00\x00\xb0\x21\x40\x00\x91\x21\x00\x00\xcb\x22\xfc\x7f\xd3\x41\x0c\x81\x8b\x21\xfc\x41\x93\xc1\x00\x00\xb4\x82\x00\x00\x90\x42\xfc\x47\xf9\x62\x00\x00\xb4\xf0\x03\x02\xaa\x00\x02\x1f\xd6\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\xfd\x7b\xbe\xa9\xfd\x03\x00\x91\xf3\x0b\x00\xf9\x93\x00\x00\xb0\x60\x42\x40\x39\x40\x01\x00\x35\x80\x00\x00\x90\x00\xf0\x47\xf9\x80\x00\x00\xb4\x80\x00\x00\xb0\x00\x04\x40\xf9\xb9\xff\xff\x97\xd8\xff\xff\x97\x20\x00\x80\x52\x60\x42\x00\x39\xf3\x0b\x40\xf9\xfd\x7b\xc2\xa8\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\xdc\xff\xff\x17\xfd\x7b\xbf\xa9\xfd\x03\x00\x91\x80\x00\x00\xb0\x00\x50\x00\x91\x21\x00\x80\x52\x01\x00\x00\xb9\x08\x00\x00\x94\xe1\x03\x00\x2a\x80\x00\x00\xb0\x00\x60\x00\x91\x01\x00\x00\xb9\x00\x00\x80\x52\xfd\x7b\xc1\xa8\xc0\x03\x5f\xd6\x40\x00\x80\x52\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\xfd\x7b\xbf\xa9\xfd\x03\x00\x91\xfd\x7b\xc1\xa8\xc0\x03\x5f\xd6\x01\x00\x02\x00\x01\x1b\x03\x3b\x40\x00\x00\x00\x07\x00\x00\x00\x94\xfe\xff\xff\x58\x00\x00\x00\xe4\xfe\xff\xff\x6c\x00\x00\x00\x14\xff\xff\xff\x80\x00\x00\x00\x54\xff\xff\xff\x94\x00\x00\x00\xa4\xff\xff\xff\xb8\x00\x00\x00\xa8\xff\xff\xff\xcc\x00\x00\x00\xe0\xff\xff\xff\xec\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x01\x7a\x52\x00\x04\x78\x1e\x01\x1b\x0c\x1f\x00\x10\x00\x00\x00\x18\x00\x00\x00\x34\xfe\xff\xff\x34\x00\x00\x00\x00\x41\x07\x1e\x10\x00\x00\x00\x2c\x00\x00\x00\x70\xfe\xff\xff\x30\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x40\x00\x00\x00\x8c\xfe\xff\xff\x3c\x00\x00\x00\x00\x00\x00\x00\x20\x00\x00\x00\x54\x00\x00\x00\xb8\xfe\xff\xff\x48\x00\x00\x00\x00\x41\x0e\x20\x9d\x04\x9e\x03\x42\x93\x02\x4e\xde\xdd\xd3\x0e\x00\x00\x00\x00\x10\x00\x00\x00\x78\x00\x00\x00\xe4\xfe\xff\xff\x04\x00\x00\x00\x00\x00\x00\x00\x1c\x00\x00\x00\x8c\x00\x00\x00\xd4\xfe\xff\xff\x38\x00\x00\x00\x00\x41\x0e\x10\x9d\x02\x9e\x01\x4c\xde\xdd\x0e\x00\x00\x00\x00\x10\x00\x00\x00\xac\x00\x00\x00\xec\xfe\xff\xff\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section("02", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x00\x06\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xd8\x1b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x38\x00\x09\x00\x40\x00\x1c\x00\x1b\x00\x06\x00\x00\x00\x04\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x04\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x70\x08\x00\x00\x00\x00\x00\x00\x70\x08\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x01\x00\x00\x00\x06\x00\x00\x00\x98\x0d\x00\x00\x00\x00\x00\x00\x98\x0d\x01\x00\x00\x00\x00\x00\x98\x0d\x01\x00\x00\x00\x00\x00\x78\x02\x00\x00\x00\x00\x00\x00\x88\x02\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x02\x00\x00\x00\x06\x00\x00\x00\xa8\x0d\x00\x00\x00\x00\x00\x00\xa8\x0d\x01\x00\x00\x00\x00\x00\xa8\x0d\x01\x00\x00\x00\x00\x00\xf0\x01\x00\x00\x00\x00\x00\x00\xf0\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x04\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x50\xe5\x74\x64\x04\x00\x00\x00\x6c\x07\x00\x00\x00\x00\x00\x00\x6c\x07\x00\x00\x00\x00\x00\x00\x6c\x07\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x51\xe5\x74\x64\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x52\xe5\x74\x64\x04\x00\x00\x00\x98\x0d\x00\x00\x00\x00\x00\x00\x98\x0d\x01\x00\x00\x00\x00\x00\x98\x0d\x01\x00\x00\x00\x00\x00\x68\x02\x00\x00\x00\x00\x00\x00\x68\x02\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x2f\x6c\x69\x62\x2f\x6c\x64\x2d\x6c\x69\x6e\x75\x78\x2d\x61\x61\x72\x63\x68\x36\x34\x2e\x73\x6f\x2e\x31\x00\x00\x04\x00\x00\x00\x14\x00\x00\x00\x03\x00\x00\x00\x47\x4e\x55\x00\x5b\x9a\x77\xe6\x2a\x84\xf5\x4c\x20\xf9\x2b\x7d\xa7\x14\xf4\x4c\x7f\x26\xb2\xa7\x04\x00\x00\x00\x10\x00\x00\x00\x01\x00\x00\x00\x47\x4e\x55\x00\x00\x00\x00\x00\x03\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x01\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x0b\x00\x80\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x16\x00\x00\x10\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x48\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x22\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x22\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x73\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5f\x5f\x63\x78\x61\x5f\x66\x69\x6e\x61\x6c\x69\x7a\x65\x00\x5f\x5f\x6c\x69\x62\x63\x5f\x73\x74\x61\x72\x74\x5f\x6d\x61\x69\x6e\x00\x61\x62\x6f\x72\x74\x00\x6c\x69\x62\x63\x2e\x73\x6f\x2e\x36\x00\x47\x4c\x49\x42\x43\x5f\x32\x2e\x31\x37\x00\x47\x4c\x49\x42\x43\x5f\x32\x2e\x33\x34\x00\x5f\x49\x54\x4d\x5f\x64\x65\x72\x65\x67\x69\x73\x74\x65\x72\x54\x4d\x43\x6c\x6f\x6e\x65\x54\x61\x62\x6c\x65\x00\x5f\x5f\x67\x6d\x6f\x6e\x5f\x73\x74\x61\x72\x74\x5f\x5f\x00\x5f\x49\x54\x4d\x5f\x72\x65\x67\x69\x73\x74\x65\x72\x54\x4d\x43\x6c\x6f\x6e\x65\x54\x61\x62\x6c\x65\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x01\x00\x03\x00\x01\x00\x03\x00\x01\x00\x01\x00\x02\x00\x28\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x97\x91\x96\x06\x00\x00\x03\x00\x32\x00\x00\x00\x10\x00\x00\x00\xb4\x91\x96\x06\x00\x00\x02\x00\x3d\x00\x00\x00\x00\x00\x00\x00\x98\x0d\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x10\x07\x00\x00\x00\x00\x00\x00\xa0\x0d\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\xc0\x06\x00\x00\x00\x00\x00\x00\xf0\x0f\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x14\x07\x00\x00\x00\x00\x00\x00\x08\x10\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x08\x10\x01\x00\x00\x00\x00\x00\xd8\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe0\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe8\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xf8\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xb0\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xb8\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xc0\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xc8\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1f\x20\x03\xd5\xfd\x7b\xbf\xa9\xfd\x03\x00\x91\x2a\x00\x00\x94\xfd\x7b\xc1\xa8\xc0\x03\x5f\xd6\x00\x00\x00\x00\x00\x00\x00\x00\xf0\x7b\xbf\xa9\x90\x00\x00\x90\x11\xd6\x47\xf9\x10\xa2\x3e\x91\x20\x02\x1f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x90\x00\x00\x90\x11\xda\x47\xf9\x10\xc2\x3e\x91\x20\x02\x1f\xd6\x90\x00\x00\x90\x11\xde\x47\xf9\x10\xe2\x3e\x91\x20\x02\x1f\xd6\x90\x00\x00\x90\x11\xe2\x47\xf9\x10\x02\x3f\x91\x20\x02\x1f\xd6\x90\x00\x00\x90\x11\xe6\x47\xf9\x10\x22\x3f\x91\x20\x02\x1f\xd6\x1f\x20\x03\xd5\x1d\x00\x80\xd2\x1e\x00\x80\xd2\xe5\x03\x00\xaa\xe1\x03\x40\xf9\xe2\x23\x00\x91\xe6\x03\x00\x91\x80\x00\x00\x90\x00\xf8\x47\xf9\x03\x00\x80\xd2\x04\x00\x80\xd2\xe5\xff\xff\x97\xf0\xff\xff\x97\x80\x00\x00\x90\x00\xf4\x47\xf9\x40\x00\x00\xb4\xe8\xff\xff\x17\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x80\x00\x00\xb0\x00\x40\x00\x91\x81\x00\x00\xb0\x21\x40\x00\x91\x3f\x00\x00\xeb\xc0\x00\x00\x54\x81\x00\x00\x90\x21\xec\x47\xf9\x61\x00\x00\xb4\xf0\x03\x01\xaa\x00\x02\x1f\xd6\xc0\x03\x5f\xd6\x80\x00\x00\xb0\x00\x40\x00\x91\x81\x00\x00\xb0\x21\x40\x00\x91\x21\x00\x00\xcb\x22\xfc\x7f\xd3\x41\x0c\x81\x8b\x21\xfc\x41\x93\xc1\x00\x00\xb4\x82\x00\x00\x90\x42\xfc\x47\xf9\x62\x00\x00\xb4\xf0\x03\x02\xaa\x00\x02\x1f\xd6\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\xfd\x7b\xbe\xa9\xfd\x03\x00\x91\xf3\x0b\x00\xf9\x93\x00\x00\xb0\x60\x42\x40\x39\x40\x01\x00\x35\x80\x00\x00\x90\x00\xf0\x47\xf9\x80\x00\x00\xb4\x80\x00\x00\xb0\x00\x04\x40\xf9\xb9\xff\xff\x97\xd8\xff\xff\x97\x20\x00\x80\x52\x60\x42\x00\x39\xf3\x0b\x40\xf9\xfd\x7b\xc2\xa8\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\xdc\xff\xff\x17\xfd\x7b\xbf\xa9\xfd\x03\x00\x91\x80\x00\x00\xb0\x00\x50\x00\x91\x21\x00\x80\x52\x01\x00\x00\xb9\x08\x00\x00\x94\xe1\x03\x00\x2a\x80\x00\x00\xb0\x00\x60\x00\x91\x01\x00\x00\xb9\x00\x00\x80\x52\xfd\x7b\xc1\xa8\xc0\x03\x5f\xd6\x40\x00\x80\x52\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\xfd\x7b\xbf\xa9\xfd\x03\x00\x91\xfd\x7b\xc1\xa8\xc0\x03\x5f\xd6\x01\x00\x02\x00\x01\x1b\x03\x3b\x40\x00\x00\x00\x07\x00\x00\x00\x94\xfe\xff\xff\x58\x00\x00\x00\xe4\xfe\xff\xff\x6c\x00\x00\x00\x14\xff\xff\xff\x80\x00\x00\x00\x54\xff\xff\xff\x94\x00\x00\x00\xa4\xff\xff\xff\xb8\x00\x00\x00\xa8\xff\xff\xff\xcc\x00\x00\x00\xe0\xff\xff\xff\xec\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x01\x7a\x52\x00\x04\x78\x1e\x01\x1b\x0c\x1f\x00\x10\x00\x00\x00\x18\x00\x00\x00\x34\xfe\xff\xff\x34\x00\x00\x00\x00\x41\x07\x1e\x10\x00\x00\x00\x2c\x00\x00\x00\x70\xfe\xff\xff\x30\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x40\x00\x00\x00\x8c\xfe\xff\xff\x3c\x00\x00\x00\x00\x00\x00\x00\x20\x00\x00\x00\x54\x00\x00\x00\xb8\xfe\xff\xff\x48\x00\x00\x00\x00\x41\x0e\x20\x9d\x04\x9e\x03\x42\x93\x02\x4e\xde\xdd\xd3\x0e\x00\x00\x00\x00\x10\x00\x00\x00\x78\x00\x00\x00\xe4\xfe\xff\xff\x04\x00\x00\x00\x00\x00\x00\x00\x1c\x00\x00\x00\x8c\x00\x00\x00\xd4\xfe\xff\xff\x38\x00\x00\x00\x00\x41\x0e\x10\x9d\x02\x9e\x01\x4c\xde\xdd\x0e\x00\x00\x00\x00\x10\x00\x00\x00\xac\x00\x00\x00\xec\xfe\xff\xff\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".comment", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x00\x06\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xd8\x1b\x00"), -Section(".interp", 0x238, "\x2f\x6c\x69\x62\x2f\x6c\x64\x2d\x6c\x69\x6e\x75\x78\x2d\x61\x61\x72\x63\x68\x36\x34\x2e\x73\x6f\x2e\x31\x00"), -Section(".note.gnu.build-id", 0x254, "\x04\x00\x00\x00\x14\x00\x00\x00\x03\x00\x00\x00\x47\x4e\x55\x00\x5b\x9a\x77\xe6\x2a\x84\xf5\x4c\x20\xf9\x2b\x7d\xa7\x14\xf4\x4c\x7f\x26\xb2\xa7"), -Section(".note.ABI-tag", 0x278, "\x04\x00\x00\x00\x10\x00\x00\x00\x01\x00\x00\x00\x47\x4e\x55\x00\x00\x00\x00\x00\x03\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00"), -Section(".gnu.hash", 0x298, "\x01\x00\x00\x00\x01\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".dynsym", 0x2B8, "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x0b\x00\x80\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x16\x00\x00\x10\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x48\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x22\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x22\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x73\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".dynstr", 0x390, "\x00\x5f\x5f\x63\x78\x61\x5f\x66\x69\x6e\x61\x6c\x69\x7a\x65\x00\x5f\x5f\x6c\x69\x62\x63\x5f\x73\x74\x61\x72\x74\x5f\x6d\x61\x69\x6e\x00\x61\x62\x6f\x72\x74\x00\x6c\x69\x62\x63\x2e\x73\x6f\x2e\x36\x00\x47\x4c\x49\x42\x43\x5f\x32\x2e\x31\x37\x00\x47\x4c\x49\x42\x43\x5f\x32\x2e\x33\x34\x00\x5f\x49\x54\x4d\x5f\x64\x65\x72\x65\x67\x69\x73\x74\x65\x72\x54\x4d\x43\x6c\x6f\x6e\x65\x54\x61\x62\x6c\x65\x00\x5f\x5f\x67\x6d\x6f\x6e\x5f\x73\x74\x61\x72\x74\x5f\x5f\x00\x5f\x49\x54\x4d\x5f\x72\x65\x67\x69\x73\x74\x65\x72\x54\x4d\x43\x6c\x6f\x6e\x65\x54\x61\x62\x6c\x65\x00"), -Section(".gnu.version", 0x41E, "\x00\x00\x00\x00\x00\x00\x02\x00\x01\x00\x03\x00\x01\x00\x03\x00\x01\x00"), -Section(".gnu.version_r", 0x430, "\x01\x00\x02\x00\x28\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x97\x91\x96\x06\x00\x00\x03\x00\x32\x00\x00\x00\x10\x00\x00\x00\xb4\x91\x96\x06\x00\x00\x02\x00\x3d\x00\x00\x00\x00\x00\x00\x00"), -Section(".rela.dyn", 0x460, "\x98\x0d\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x10\x07\x00\x00\x00\x00\x00\x00\xa0\x0d\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\xc0\x06\x00\x00\x00\x00\x00\x00\xf0\x0f\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x14\x07\x00\x00\x00\x00\x00\x00\x08\x10\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x08\x10\x01\x00\x00\x00\x00\x00\xd8\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe0\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe8\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xf8\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".rela.plt", 0x520, "\xb0\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xb8\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xc0\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xc8\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".init", 0x580, "\x1f\x20\x03\xd5\xfd\x7b\xbf\xa9\xfd\x03\x00\x91\x2a\x00\x00\x94\xfd\x7b\xc1\xa8\xc0\x03\x5f\xd6"), -Section(".plt", 0x5A0, "\xf0\x7b\xbf\xa9\x90\x00\x00\x90\x11\xd6\x47\xf9\x10\xa2\x3e\x91\x20\x02\x1f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x90\x00\x00\x90\x11\xda\x47\xf9\x10\xc2\x3e\x91\x20\x02\x1f\xd6\x90\x00\x00\x90\x11\xde\x47\xf9\x10\xe2\x3e\x91\x20\x02\x1f\xd6\x90\x00\x00\x90\x11\xe2\x47\xf9\x10\x02\x3f\x91\x20\x02\x1f\xd6\x90\x00\x00\x90\x11\xe6\x47\xf9\x10\x22\x3f\x91\x20\x02\x1f\xd6"), -Section(".text", 0x600, "\x1f\x20\x03\xd5\x1d\x00\x80\xd2\x1e\x00\x80\xd2\xe5\x03\x00\xaa\xe1\x03\x40\xf9\xe2\x23\x00\x91\xe6\x03\x00\x91\x80\x00\x00\x90\x00\xf8\x47\xf9\x03\x00\x80\xd2\x04\x00\x80\xd2\xe5\xff\xff\x97\xf0\xff\xff\x97\x80\x00\x00\x90\x00\xf4\x47\xf9\x40\x00\x00\xb4\xe8\xff\xff\x17\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x80\x00\x00\xb0\x00\x40\x00\x91\x81\x00\x00\xb0\x21\x40\x00\x91\x3f\x00\x00\xeb\xc0\x00\x00\x54\x81\x00\x00\x90\x21\xec\x47\xf9\x61\x00\x00\xb4\xf0\x03\x01\xaa\x00\x02\x1f\xd6\xc0\x03\x5f\xd6\x80\x00\x00\xb0\x00\x40\x00\x91\x81\x00\x00\xb0\x21\x40\x00\x91\x21\x00\x00\xcb\x22\xfc\x7f\xd3\x41\x0c\x81\x8b\x21\xfc\x41\x93\xc1\x00\x00\xb4\x82\x00\x00\x90\x42\xfc\x47\xf9\x62\x00\x00\xb4\xf0\x03\x02\xaa\x00\x02\x1f\xd6\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\xfd\x7b\xbe\xa9\xfd\x03\x00\x91\xf3\x0b\x00\xf9\x93\x00\x00\xb0\x60\x42\x40\x39\x40\x01\x00\x35\x80\x00\x00\x90\x00\xf0\x47\xf9\x80\x00\x00\xb4\x80\x00\x00\xb0\x00\x04\x40\xf9\xb9\xff\xff\x97\xd8\xff\xff\x97\x20\x00\x80\x52\x60\x42\x00\x39\xf3\x0b\x40\xf9\xfd\x7b\xc2\xa8\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\xdc\xff\xff\x17\xfd\x7b\xbf\xa9\xfd\x03\x00\x91\x80\x00\x00\xb0\x00\x50\x00\x91\x21\x00\x80\x52\x01\x00\x00\xb9\x08\x00\x00\x94\xe1\x03\x00\x2a\x80\x00\x00\xb0\x00\x60\x00\x91\x01\x00\x00\xb9\x00\x00\x80\x52\xfd\x7b\xc1\xa8\xc0\x03\x5f\xd6\x40\x00\x80\x52\xc0\x03\x5f\xd6"), -Section(".fini", 0x754, "\x1f\x20\x03\xd5\xfd\x7b\xbf\xa9\xfd\x03\x00\x91\xfd\x7b\xc1\xa8\xc0\x03\x5f\xd6"), -Section(".rodata", 0x768, "\x01\x00\x02\x00"), -Section(".eh_frame_hdr", 0x76C, "\x01\x1b\x03\x3b\x40\x00\x00\x00\x07\x00\x00\x00\x94\xfe\xff\xff\x58\x00\x00\x00\xe4\xfe\xff\xff\x6c\x00\x00\x00\x14\xff\xff\xff\x80\x00\x00\x00\x54\xff\xff\xff\x94\x00\x00\x00\xa4\xff\xff\xff\xb8\x00\x00\x00\xa8\xff\xff\xff\xcc\x00\x00\x00\xe0\xff\xff\xff\xec\x00\x00\x00"), -Section(".eh_frame", 0x7B0, "\x10\x00\x00\x00\x00\x00\x00\x00\x01\x7a\x52\x00\x04\x78\x1e\x01\x1b\x0c\x1f\x00\x10\x00\x00\x00\x18\x00\x00\x00\x34\xfe\xff\xff\x34\x00\x00\x00\x00\x41\x07\x1e\x10\x00\x00\x00\x2c\x00\x00\x00\x70\xfe\xff\xff\x30\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x40\x00\x00\x00\x8c\xfe\xff\xff\x3c\x00\x00\x00\x00\x00\x00\x00\x20\x00\x00\x00\x54\x00\x00\x00\xb8\xfe\xff\xff\x48\x00\x00\x00\x00\x41\x0e\x20\x9d\x04\x9e\x03\x42\x93\x02\x4e\xde\xdd\xd3\x0e\x00\x00\x00\x00\x10\x00\x00\x00\x78\x00\x00\x00\xe4\xfe\xff\xff\x04\x00\x00\x00\x00\x00\x00\x00\x1c\x00\x00\x00\x8c\x00\x00\x00\xd4\xfe\xff\xff\x38\x00\x00\x00\x00\x41\x0e\x10\x9d\x02\x9e\x01\x4c\xde\xdd\x0e\x00\x00\x00\x00\x10\x00\x00\x00\xac\x00\x00\x00\xec\xfe\xff\xff\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".fini_array", 0x10DA0, "\xc0\x06\x00\x00\x00\x00\x00\x00"), -Section(".dynamic", 0x10DA8, "\x01\x00\x00\x00\x00\x00\x00\x00\x28\x00\x00\x00\x00\x00\x00\x00\x0c\x00\x00\x00\x00\x00\x00\x00\x80\x05\x00\x00\x00\x00\x00\x00\x0d\x00\x00\x00\x00\x00\x00\x00\x54\x07\x00\x00\x00\x00\x00\x00\x19\x00\x00\x00\x00\x00\x00\x00\x98\x0d\x01\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x1a\x00\x00\x00\x00\x00\x00\x00\xa0\x0d\x01\x00\x00\x00\x00\x00\x1c\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\xf5\xfe\xff\x6f\x00\x00\x00\x00\x98\x02\x00\x00\x00\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x90\x03\x00\x00\x00\x00\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\xb8\x02\x00\x00\x00\x00\x00\x00\x0a\x00\x00\x00\x00\x00\x00\x00\x8d\x00\x00\x00\x00\x00\x00\x00\x0b\x00\x00\x00\x00\x00\x00\x00\x18\x00\x00\x00\x00\x00\x00\x00\x15\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x98\x0f\x01\x00\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x60\x00\x00\x00\x00\x00\x00\x00\x14\x00\x00\x00\x00\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x17\x00\x00\x00\x00\x00\x00\x00\x20\x05\x00\x00\x00\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x60\x04\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\xc0\x00\x00\x00\x00\x00\x00\x00\x09\x00\x00\x00\x00\x00\x00\x00\x18\x00\x00\x00\x00\x00\x00\x00\x1e\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\xfb\xff\xff\x6f\x00\x00\x00\x00\x01\x00\x00\x08\x00\x00\x00\x00\xfe\xff\xff\x6f\x00\x00\x00\x00\x30\x04\x00\x00\x00\x00\x00\x00\xff\xff\xff\x6f\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\xf0\xff\xff\x6f\x00\x00\x00\x00\x1e\x04\x00\x00\x00\x00\x00\x00\xf9\xff\xff\x6f\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".got", 0x10F98, "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xa0\x05\x00\x00\x00\x00\x00\x00\xa0\x05\x00\x00\x00\x00\x00\x00\xa0\x05\x00\x00\x00\x00\x00\x00\xa0\x05\x00\x00\x00\x00\x00\x00\xa8\x0d\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x14\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".data", 0x11000, "\x00\x00\x00\x00\x00\x00\x00\x00\x08\x10\x01\x00\x00\x00\x00\x00"), -Section(".init_array", 0x10D98, "\x10\x07\x00\x00\x00\x00\x00\x00")]), -Memmap([Annotation(Region(0x0,0x86F), Attr("segment",".symtab 0 2160")), -Annotation(Region(0x600,0x633), Attr("symbol","\"_start\"")), -Annotation(Region(0x0,0xF9), Attr("section","\".shstrtab\"")), -Annotation(Region(0x0,0x227), Attr("section","\".strtab\"")), -Annotation(Region(0x0,0x86F), Attr("section","\".symtab\"")), -Annotation(Region(0x0,0x86F), Attr("section","\"02\"")), -Annotation(Region(0x0,0x2A), Attr("section","\".comment\"")), -Annotation(Region(0x238,0x252), Attr("section","\".interp\"")), -Annotation(Region(0x254,0x277), Attr("section","\".note.gnu.build-id\"")), -Annotation(Region(0x278,0x297), Attr("section","\".note.ABI-tag\"")), -Annotation(Region(0x298,0x2B3), Attr("section","\".gnu.hash\"")), -Annotation(Region(0x2B8,0x38F), Attr("section","\".dynsym\"")), -Annotation(Region(0x390,0x41C), Attr("section","\".dynstr\"")), -Annotation(Region(0x41E,0x42F), Attr("section","\".gnu.version\"")), -Annotation(Region(0x430,0x45F), Attr("section","\".gnu.version_r\"")), -Annotation(Region(0x460,0x51F), Attr("section","\".rela.dyn\"")), -Annotation(Region(0x520,0x57F), Attr("section","\".rela.plt\"")), -Annotation(Region(0x580,0x597), Attr("section","\".init\"")), -Annotation(Region(0x5A0,0x5FF), Attr("section","\".plt\"")), -Annotation(Region(0x580,0x597), Attr("code-region","()")), -Annotation(Region(0x5A0,0x5FF), Attr("code-region","()")), -Annotation(Region(0x600,0x633), Attr("symbol-info","_start 0x600 52")), -Annotation(Region(0x634,0x647), Attr("symbol","\"call_weak_fn\"")), -Annotation(Region(0x634,0x647), Attr("symbol-info","call_weak_fn 0x634 20")), -Annotation(Region(0x714,0x74B), Attr("symbol","\"main\"")), -Annotation(Region(0x600,0x753), Attr("section","\".text\"")), -Annotation(Region(0x600,0x753), Attr("code-region","()")), -Annotation(Region(0x714,0x74B), Attr("symbol-info","main 0x714 56")), -Annotation(Region(0x74C,0x753), Attr("symbol","\"get_two\"")), -Annotation(Region(0x74C,0x753), Attr("symbol-info","get_two 0x74C 8")), -Annotation(Region(0x754,0x767), Attr("section","\".fini\"")), -Annotation(Region(0x754,0x767), Attr("code-region","()")), -Annotation(Region(0x768,0x76B), Attr("section","\".rodata\"")), -Annotation(Region(0x76C,0x7AF), Attr("section","\".eh_frame_hdr\"")), -Annotation(Region(0x7B0,0x86F), Attr("section","\".eh_frame\"")), -Annotation(Region(0x10D98,0x1100F), Attr("segment","03 0x10D98 648")), -Annotation(Region(0x10DA0,0x10DA7), Attr("section","\".fini_array\"")), -Annotation(Region(0x10DA8,0x10F97), Attr("section","\".dynamic\"")), -Annotation(Region(0x10F98,0x10FFF), Attr("section","\".got\"")), -Annotation(Region(0x11000,0x1100F), Attr("section","\".data\"")), -Annotation(Region(0x10D98,0x10D9F), Attr("section","\".init_array\""))]), -Program(Tid(3_107, "%00000c23"), Attrs([]), - Subs([Sub(Tid(3_084, "@__cxa_finalize"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x5D0"), -Attr("stub","()")]), "__cxa_finalize", Args([Arg(Tid(3_108, "%00000c24"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("__cxa_finalize_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(2_480, "@__cxa_finalize"), - Attrs([Attr("address","0x5D0")]), Phis([]), -Defs([Def(Tid(2_728, "%00000aa8"), Attrs([Attr("address","0x5D0"), -Attr("insn","adrp x16, #65536")]), Var("R16",Imm(64)), Int(65536,64)), -Def(Tid(2_735, "%00000aaf"), Attrs([Attr("address","0x5D4"), -Attr("insn","ldr x17, [x16, #0xfb8]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(4024,64)),LittleEndian(),64)), -Def(Tid(2_741, "%00000ab5"), Attrs([Attr("address","0x5D8"), -Attr("insn","add x16, x16, #0xfb8")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(4024,64)))]), Jmps([Call(Tid(2_746, "%00000aba"), - Attrs([Attr("address","0x5DC"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), -Sub(Tid(3_085, "@__do_global_dtors_aux"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x6C0")]), - "__do_global_dtors_aux", Args([Arg(Tid(3_109, "%00000c25"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("__do_global_dtors_aux_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(2_213, "@__do_global_dtors_aux"), - Attrs([Attr("address","0x6C0")]), Phis([]), -Defs([Def(Tid(2_217, "%000008a9"), Attrs([Attr("address","0x6C0"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("#3",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(18446744073709551584,64))), -Def(Tid(2_223, "%000008af"), Attrs([Attr("address","0x6C0"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("#3",Imm(64)),Var("R29",Imm(64)),LittleEndian(),64)), -Def(Tid(2_229, "%000008b5"), Attrs([Attr("address","0x6C0"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("#3",Imm(64)),Int(8,64)),Var("R30",Imm(64)),LittleEndian(),64)), -Def(Tid(2_233, "%000008b9"), Attrs([Attr("address","0x6C0"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("R31",Imm(64)), -Var("#3",Imm(64))), Def(Tid(2_239, "%000008bf"), - Attrs([Attr("address","0x6C4"), Attr("insn","mov x29, sp")]), - Var("R29",Imm(64)), Var("R31",Imm(64))), Def(Tid(2_247, "%000008c7"), - Attrs([Attr("address","0x6C8"), Attr("insn","str x19, [sp, #0x10]")]), - Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(16,64)),Var("R19",Imm(64)),LittleEndian(),64)), -Def(Tid(2_252, "%000008cc"), Attrs([Attr("address","0x6CC"), -Attr("insn","adrp x19, #69632")]), Var("R19",Imm(64)), Int(69632,64)), -Def(Tid(2_259, "%000008d3"), Attrs([Attr("address","0x6D0"), -Attr("insn","ldrb w0, [x19, #0x10]")]), Var("R0",Imm(64)), -UNSIGNED(64,Load(Var("mem",Mem(64,8)),PLUS(Var("R19",Imm(64)),Int(16,64)),LittleEndian(),8)))]), -Jmps([Goto(Tid(2_266, "%000008da"), Attrs([Attr("address","0x6D4"), -Attr("insn","cbnz w0, #0x28")]), - NEQ(Extract(31,0,Var("R0",Imm(64))),Int(0,32)), -Direct(Tid(2_264, "%000008d8"))), Goto(Tid(3_086, "%00000c0e"), Attrs([]), - Int(1,1), Direct(Tid(2_425, "%00000979")))])), Blk(Tid(2_425, "%00000979"), - Attrs([Attr("address","0x6D8")]), Phis([]), -Defs([Def(Tid(2_428, "%0000097c"), Attrs([Attr("address","0x6D8"), -Attr("insn","adrp x0, #65536")]), Var("R0",Imm(64)), Int(65536,64)), -Def(Tid(2_435, "%00000983"), Attrs([Attr("address","0x6DC"), -Attr("insn","ldr x0, [x0, #0xfe0]")]), Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(4064,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(2_441, "%00000989"), Attrs([Attr("address","0x6E0"), -Attr("insn","cbz x0, #0x10")]), EQ(Var("R0",Imm(64)),Int(0,64)), -Direct(Tid(2_439, "%00000987"))), Goto(Tid(3_087, "%00000c0f"), Attrs([]), - Int(1,1), Direct(Tid(2_464, "%000009a0")))])), Blk(Tid(2_464, "%000009a0"), - Attrs([Attr("address","0x6E4")]), Phis([]), -Defs([Def(Tid(2_467, "%000009a3"), Attrs([Attr("address","0x6E4"), -Attr("insn","adrp x0, #69632")]), Var("R0",Imm(64)), Int(69632,64)), -Def(Tid(2_474, "%000009aa"), Attrs([Attr("address","0x6E8"), -Attr("insn","ldr x0, [x0, #0x8]")]), Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(2_479, "%000009af"), Attrs([Attr("address","0x6EC"), -Attr("insn","bl #-0x11c")]), Var("R30",Imm(64)), Int(1776,64))]), -Jmps([Call(Tid(2_482, "%000009b2"), Attrs([Attr("address","0x6EC"), -Attr("insn","bl #-0x11c")]), Int(1,1), -(Direct(Tid(3_084, "@__cxa_finalize")),Direct(Tid(2_439, "%00000987"))))])), -Blk(Tid(2_439, "%00000987"), Attrs([Attr("address","0x6F0")]), Phis([]), -Defs([Def(Tid(2_447, "%0000098f"), Attrs([Attr("address","0x6F0"), -Attr("insn","bl #-0xa0")]), Var("R30",Imm(64)), Int(1780,64))]), -Jmps([Call(Tid(2_449, "%00000991"), Attrs([Attr("address","0x6F0"), -Attr("insn","bl #-0xa0")]), Int(1,1), -(Direct(Tid(3_098, "@deregister_tm_clones")),Direct(Tid(2_451, "%00000993"))))])), -Blk(Tid(2_451, "%00000993"), Attrs([Attr("address","0x6F4")]), Phis([]), -Defs([Def(Tid(2_454, "%00000996"), Attrs([Attr("address","0x6F4"), -Attr("insn","mov w0, #0x1")]), Var("R0",Imm(64)), Int(1,64)), -Def(Tid(2_462, "%0000099e"), Attrs([Attr("address","0x6F8"), -Attr("insn","strb w0, [x19, #0x10]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R19",Imm(64)),Int(16,64)),Extract(7,0,Var("R0",Imm(64))),LittleEndian(),8))]), -Jmps([Goto(Tid(3_088, "%00000c10"), Attrs([]), Int(1,1), -Direct(Tid(2_264, "%000008d8")))])), Blk(Tid(2_264, "%000008d8"), - Attrs([Attr("address","0x6FC")]), Phis([]), -Defs([Def(Tid(2_274, "%000008e2"), Attrs([Attr("address","0x6FC"), -Attr("insn","ldr x19, [sp, #0x10]")]), Var("R19",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(16,64)),LittleEndian(),64)), -Def(Tid(2_281, "%000008e9"), Attrs([Attr("address","0x700"), -Attr("insn","ldp x29, x30, [sp], #0x20")]), Var("R29",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(2_286, "%000008ee"), Attrs([Attr("address","0x700"), -Attr("insn","ldp x29, x30, [sp], #0x20")]), Var("R30",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(2_290, "%000008f2"), Attrs([Attr("address","0x700"), -Attr("insn","ldp x29, x30, [sp], #0x20")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(32,64)))]), Jmps([Call(Tid(2_295, "%000008f7"), - Attrs([Attr("address","0x704"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), Sub(Tid(3_089, "@__libc_start_main"), - Attrs([Attr("c.proto","signed (*)(signed (*)(signed , char** , char** );* main, signed , char** , \nvoid* auxv)"), -Attr("address","0x5C0"), Attr("stub","()")]), "__libc_start_main", - Args([Arg(Tid(3_110, "%00000c26"), - Attrs([Attr("c.layout","**[ : 64]"), -Attr("c.data","Top:u64 ptr ptr"), -Attr("c.type","signed (*)(signed , char** , char** );*")]), - Var("__libc_start_main_main",Imm(64)), Var("R0",Imm(64)), In()), -Arg(Tid(3_111, "%00000c27"), Attrs([Attr("c.layout","[signed : 32]"), -Attr("c.data","Top:u32"), Attr("c.type","signed")]), - Var("__libc_start_main_arg2",Imm(32)), LOW(32,Var("R1",Imm(64))), In()), -Arg(Tid(3_112, "%00000c28"), Attrs([Attr("c.layout","**[char : 8]"), -Attr("c.data","Top:u8 ptr ptr"), Attr("c.type","char**")]), - Var("__libc_start_main_arg3",Imm(64)), Var("R2",Imm(64)), Both()), -Arg(Tid(3_113, "%00000c29"), Attrs([Attr("c.layout","*[ : 8]"), -Attr("c.data","{} ptr"), Attr("c.type","void*")]), - Var("__libc_start_main_auxv",Imm(64)), Var("R3",Imm(64)), Both()), -Arg(Tid(3_114, "%00000c2a"), Attrs([Attr("c.layout","[signed : 32]"), -Attr("c.data","Top:u32"), Attr("c.type","signed")]), - Var("__libc_start_main_result",Imm(32)), LOW(32,Var("R0",Imm(64))), -Out())]), Blks([Blk(Tid(2_046, "@__libc_start_main"), - Attrs([Attr("address","0x5C0")]), Phis([]), -Defs([Def(Tid(2_706, "%00000a92"), Attrs([Attr("address","0x5C0"), -Attr("insn","adrp x16, #65536")]), Var("R16",Imm(64)), Int(65536,64)), -Def(Tid(2_713, "%00000a99"), Attrs([Attr("address","0x5C4"), -Attr("insn","ldr x17, [x16, #0xfb0]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(4016,64)),LittleEndian(),64)), -Def(Tid(2_719, "%00000a9f"), Attrs([Attr("address","0x5C8"), -Attr("insn","add x16, x16, #0xfb0")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(4016,64)))]), Jmps([Call(Tid(2_724, "%00000aa4"), - Attrs([Attr("address","0x5CC"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), Sub(Tid(3_090, "@_fini"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x754")]), - "_fini", Args([Arg(Tid(3_115, "%00000c2b"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("_fini_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(1_590, "@_fini"), - Attrs([Attr("address","0x754")]), Phis([]), -Defs([Def(Tid(1_596, "%0000063c"), Attrs([Attr("address","0x758"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("#0",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(18446744073709551600,64))), -Def(Tid(1_602, "%00000642"), Attrs([Attr("address","0x758"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("#0",Imm(64)),Var("R29",Imm(64)),LittleEndian(),64)), -Def(Tid(1_608, "%00000648"), Attrs([Attr("address","0x758"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("#0",Imm(64)),Int(8,64)),Var("R30",Imm(64)),LittleEndian(),64)), -Def(Tid(1_612, "%0000064c"), Attrs([Attr("address","0x758"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("R31",Imm(64)), -Var("#0",Imm(64))), Def(Tid(1_618, "%00000652"), - Attrs([Attr("address","0x75C"), Attr("insn","mov x29, sp")]), - Var("R29",Imm(64)), Var("R31",Imm(64))), Def(Tid(1_625, "%00000659"), - Attrs([Attr("address","0x760"), Attr("insn","ldp x29, x30, [sp], #0x10")]), - Var("R29",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(1_630, "%0000065e"), Attrs([Attr("address","0x760"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R30",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(1_634, "%00000662"), Attrs([Attr("address","0x760"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(16,64)))]), Jmps([Call(Tid(1_639, "%00000667"), - Attrs([Attr("address","0x764"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), Sub(Tid(3_091, "@_init"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x580")]), - "_init", Args([Arg(Tid(3_116, "%00000c2c"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("_init_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(2_910, "@_init"), - Attrs([Attr("address","0x580")]), Phis([]), -Defs([Def(Tid(2_916, "%00000b64"), Attrs([Attr("address","0x584"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("#6",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(18446744073709551600,64))), -Def(Tid(2_922, "%00000b6a"), Attrs([Attr("address","0x584"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("#6",Imm(64)),Var("R29",Imm(64)),LittleEndian(),64)), -Def(Tid(2_928, "%00000b70"), Attrs([Attr("address","0x584"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("#6",Imm(64)),Int(8,64)),Var("R30",Imm(64)),LittleEndian(),64)), -Def(Tid(2_932, "%00000b74"), Attrs([Attr("address","0x584"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("R31",Imm(64)), -Var("#6",Imm(64))), Def(Tid(2_938, "%00000b7a"), - Attrs([Attr("address","0x588"), Attr("insn","mov x29, sp")]), - Var("R29",Imm(64)), Var("R31",Imm(64))), Def(Tid(2_943, "%00000b7f"), - Attrs([Attr("address","0x58C"), Attr("insn","bl #0xa8")]), - Var("R30",Imm(64)), Int(1424,64))]), Jmps([Call(Tid(2_945, "%00000b81"), - Attrs([Attr("address","0x58C"), Attr("insn","bl #0xa8")]), Int(1,1), -(Direct(Tid(3_096, "@call_weak_fn")),Direct(Tid(2_947, "%00000b83"))))])), -Blk(Tid(2_947, "%00000b83"), Attrs([Attr("address","0x590")]), Phis([]), -Defs([Def(Tid(2_952, "%00000b88"), Attrs([Attr("address","0x590"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R29",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(2_957, "%00000b8d"), Attrs([Attr("address","0x590"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R30",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(2_961, "%00000b91"), Attrs([Attr("address","0x590"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(16,64)))]), Jmps([Call(Tid(2_966, "%00000b96"), - Attrs([Attr("address","0x594"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), Sub(Tid(3_092, "@_start"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x600"), -Attr("stub","()"), Attr("entry-point","()")]), "_start", - Args([Arg(Tid(3_117, "%00000c2d"), Attrs([Attr("c.layout","[signed : 32]"), -Attr("c.data","Top:u32"), Attr("c.type","signed")]), - Var("_start_result",Imm(32)), LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(1_983, "@_start"), Attrs([Attr("address","0x600")]), Phis([]), -Defs([Def(Tid(1_988, "%000007c4"), Attrs([Attr("address","0x604"), -Attr("insn","mov x29, #0x0")]), Var("R29",Imm(64)), Int(0,64)), -Def(Tid(1_993, "%000007c9"), Attrs([Attr("address","0x608"), -Attr("insn","mov x30, #0x0")]), Var("R30",Imm(64)), Int(0,64)), -Def(Tid(1_999, "%000007cf"), Attrs([Attr("address","0x60C"), -Attr("insn","mov x5, x0")]), Var("R5",Imm(64)), Var("R0",Imm(64))), -Def(Tid(2_006, "%000007d6"), Attrs([Attr("address","0x610"), -Attr("insn","ldr x1, [sp]")]), Var("R1",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(2_012, "%000007dc"), Attrs([Attr("address","0x614"), -Attr("insn","add x2, sp, #0x8")]), Var("R2",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(8,64))), Def(Tid(2_018, "%000007e2"), - Attrs([Attr("address","0x618"), Attr("insn","mov x6, sp")]), - Var("R6",Imm(64)), Var("R31",Imm(64))), Def(Tid(2_023, "%000007e7"), - Attrs([Attr("address","0x61C"), Attr("insn","adrp x0, #65536")]), - Var("R0",Imm(64)), Int(65536,64)), Def(Tid(2_030, "%000007ee"), - Attrs([Attr("address","0x620"), Attr("insn","ldr x0, [x0, #0xff0]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(4080,64)),LittleEndian(),64)), -Def(Tid(2_035, "%000007f3"), Attrs([Attr("address","0x624"), -Attr("insn","mov x3, #0x0")]), Var("R3",Imm(64)), Int(0,64)), -Def(Tid(2_040, "%000007f8"), Attrs([Attr("address","0x628"), -Attr("insn","mov x4, #0x0")]), Var("R4",Imm(64)), Int(0,64)), -Def(Tid(2_045, "%000007fd"), Attrs([Attr("address","0x62C"), -Attr("insn","bl #-0x6c")]), Var("R30",Imm(64)), Int(1584,64))]), -Jmps([Call(Tid(2_048, "%00000800"), Attrs([Attr("address","0x62C"), -Attr("insn","bl #-0x6c")]), Int(1,1), -(Direct(Tid(3_089, "@__libc_start_main")),Direct(Tid(2_050, "%00000802"))))])), -Blk(Tid(2_050, "%00000802"), Attrs([Attr("address","0x630")]), Phis([]), -Defs([Def(Tid(2_053, "%00000805"), Attrs([Attr("address","0x630"), -Attr("insn","bl #-0x40")]), Var("R30",Imm(64)), Int(1588,64))]), -Jmps([Call(Tid(2_056, "%00000808"), Attrs([Attr("address","0x630"), -Attr("insn","bl #-0x40")]), Int(1,1), -(Direct(Tid(3_095, "@abort")),Direct(Tid(3_093, "%00000c15"))))])), -Blk(Tid(3_093, "%00000c15"), Attrs([]), Phis([]), Defs([]), -Jmps([Call(Tid(3_094, "%00000c16"), Attrs([]), Int(1,1), -(Direct(Tid(3_096, "@call_weak_fn")),))]))])), Sub(Tid(3_095, "@abort"), - Attrs([Attr("noreturn","()"), Attr("c.proto","void (*)(void)"), -Attr("address","0x5F0"), Attr("stub","()")]), "abort", Args([]), -Blks([Blk(Tid(2_054, "@abort"), Attrs([Attr("address","0x5F0")]), Phis([]), -Defs([Def(Tid(2_772, "%00000ad4"), Attrs([Attr("address","0x5F0"), -Attr("insn","adrp x16, #65536")]), Var("R16",Imm(64)), Int(65536,64)), -Def(Tid(2_779, "%00000adb"), Attrs([Attr("address","0x5F4"), -Attr("insn","ldr x17, [x16, #0xfc8]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(4040,64)),LittleEndian(),64)), -Def(Tid(2_785, "%00000ae1"), Attrs([Attr("address","0x5F8"), -Attr("insn","add x16, x16, #0xfc8")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(4040,64)))]), Jmps([Call(Tid(2_790, "%00000ae6"), - Attrs([Attr("address","0x5FC"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), Sub(Tid(3_096, "@call_weak_fn"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x634")]), - "call_weak_fn", Args([Arg(Tid(3_118, "%00000c2e"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("call_weak_fn_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(2_058, "@call_weak_fn"), - Attrs([Attr("address","0x634")]), Phis([]), -Defs([Def(Tid(2_061, "%0000080d"), Attrs([Attr("address","0x634"), -Attr("insn","adrp x0, #65536")]), Var("R0",Imm(64)), Int(65536,64)), -Def(Tid(2_068, "%00000814"), Attrs([Attr("address","0x638"), -Attr("insn","ldr x0, [x0, #0xfe8]")]), Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(4072,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(2_074, "%0000081a"), Attrs([Attr("address","0x63C"), -Attr("insn","cbz x0, #0x8")]), EQ(Var("R0",Imm(64)),Int(0,64)), -Direct(Tid(2_072, "%00000818"))), Goto(Tid(3_097, "%00000c19"), Attrs([]), - Int(1,1), Direct(Tid(2_544, "%000009f0")))])), Blk(Tid(2_072, "%00000818"), - Attrs([Attr("address","0x644")]), Phis([]), Defs([]), -Jmps([Call(Tid(2_080, "%00000820"), Attrs([Attr("address","0x644"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))])), -Blk(Tid(2_544, "%000009f0"), Attrs([Attr("address","0x640")]), Phis([]), -Defs([]), Jmps([Goto(Tid(2_547, "%000009f3"), Attrs([Attr("address","0x640"), -Attr("insn","b #-0x60")]), Int(1,1), -Direct(Tid(2_545, "@__gmon_start__")))])), Blk(Tid(2_545, "@__gmon_start__"), - Attrs([Attr("address","0x5E0")]), Phis([]), -Defs([Def(Tid(2_750, "%00000abe"), Attrs([Attr("address","0x5E0"), -Attr("insn","adrp x16, #65536")]), Var("R16",Imm(64)), Int(65536,64)), -Def(Tid(2_757, "%00000ac5"), Attrs([Attr("address","0x5E4"), -Attr("insn","ldr x17, [x16, #0xfc0]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(4032,64)),LittleEndian(),64)), -Def(Tid(2_763, "%00000acb"), Attrs([Attr("address","0x5E8"), -Attr("insn","add x16, x16, #0xfc0")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(4032,64)))]), Jmps([Call(Tid(2_768, "%00000ad0"), - Attrs([Attr("address","0x5EC"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), -Sub(Tid(3_098, "@deregister_tm_clones"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x650")]), - "deregister_tm_clones", Args([Arg(Tid(3_119, "%00000c2f"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("deregister_tm_clones_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(2_086, "@deregister_tm_clones"), - Attrs([Attr("address","0x650")]), Phis([]), -Defs([Def(Tid(2_089, "%00000829"), Attrs([Attr("address","0x650"), -Attr("insn","adrp x0, #69632")]), Var("R0",Imm(64)), Int(69632,64)), -Def(Tid(2_095, "%0000082f"), Attrs([Attr("address","0x654"), -Attr("insn","add x0, x0, #0x10")]), Var("R0",Imm(64)), -PLUS(Var("R0",Imm(64)),Int(16,64))), Def(Tid(2_100, "%00000834"), - Attrs([Attr("address","0x658"), Attr("insn","adrp x1, #69632")]), - Var("R1",Imm(64)), Int(69632,64)), Def(Tid(2_106, "%0000083a"), - Attrs([Attr("address","0x65C"), Attr("insn","add x1, x1, #0x10")]), - Var("R1",Imm(64)), PLUS(Var("R1",Imm(64)),Int(16,64))), -Def(Tid(2_112, "%00000840"), Attrs([Attr("address","0x660"), -Attr("insn","cmp x1, x0")]), Var("#1",Imm(64)), NOT(Var("R0",Imm(64)))), -Def(Tid(2_117, "%00000845"), Attrs([Attr("address","0x660"), -Attr("insn","cmp x1, x0")]), Var("#2",Imm(64)), -PLUS(Var("R1",Imm(64)),NOT(Var("R0",Imm(64))))), Def(Tid(2_123, "%0000084b"), - Attrs([Attr("address","0x660"), Attr("insn","cmp x1, x0")]), - Var("VF",Imm(1)), -NEQ(SIGNED(65,PLUS(Var("#2",Imm(64)),Int(1,64))),PLUS(PLUS(SIGNED(65,Var("R1",Imm(64))),SIGNED(65,Var("#1",Imm(64)))),Int(1,65)))), -Def(Tid(2_129, "%00000851"), Attrs([Attr("address","0x660"), -Attr("insn","cmp x1, x0")]), Var("CF",Imm(1)), -NEQ(UNSIGNED(65,PLUS(Var("#2",Imm(64)),Int(1,64))),PLUS(PLUS(UNSIGNED(65,Var("R1",Imm(64))),UNSIGNED(65,Var("#1",Imm(64)))),Int(1,65)))), -Def(Tid(2_133, "%00000855"), Attrs([Attr("address","0x660"), -Attr("insn","cmp x1, x0")]), Var("ZF",Imm(1)), -EQ(PLUS(Var("#2",Imm(64)),Int(1,64)),Int(0,64))), -Def(Tid(2_137, "%00000859"), Attrs([Attr("address","0x660"), -Attr("insn","cmp x1, x0")]), Var("NF",Imm(1)), -Extract(63,63,PLUS(Var("#2",Imm(64)),Int(1,64))))]), -Jmps([Goto(Tid(2_143, "%0000085f"), Attrs([Attr("address","0x664"), -Attr("insn","b.eq #0x18")]), EQ(Var("ZF",Imm(1)),Int(1,1)), -Direct(Tid(2_141, "%0000085d"))), Goto(Tid(3_099, "%00000c1b"), Attrs([]), - Int(1,1), Direct(Tid(2_514, "%000009d2")))])), Blk(Tid(2_514, "%000009d2"), - Attrs([Attr("address","0x668")]), Phis([]), -Defs([Def(Tid(2_517, "%000009d5"), Attrs([Attr("address","0x668"), -Attr("insn","adrp x1, #65536")]), Var("R1",Imm(64)), Int(65536,64)), -Def(Tid(2_524, "%000009dc"), Attrs([Attr("address","0x66C"), -Attr("insn","ldr x1, [x1, #0xfd8]")]), Var("R1",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R1",Imm(64)),Int(4056,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(2_529, "%000009e1"), Attrs([Attr("address","0x670"), -Attr("insn","cbz x1, #0xc")]), EQ(Var("R1",Imm(64)),Int(0,64)), -Direct(Tid(2_141, "%0000085d"))), Goto(Tid(3_100, "%00000c1c"), Attrs([]), - Int(1,1), Direct(Tid(2_533, "%000009e5")))])), Blk(Tid(2_141, "%0000085d"), - Attrs([Attr("address","0x67C")]), Phis([]), Defs([]), -Jmps([Call(Tid(2_149, "%00000865"), Attrs([Attr("address","0x67C"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))])), -Blk(Tid(2_533, "%000009e5"), Attrs([Attr("address","0x674")]), Phis([]), -Defs([Def(Tid(2_537, "%000009e9"), Attrs([Attr("address","0x674"), -Attr("insn","mov x16, x1")]), Var("R16",Imm(64)), Var("R1",Imm(64)))]), -Jmps([Call(Tid(2_542, "%000009ee"), Attrs([Attr("address","0x678"), -Attr("insn","br x16")]), Int(1,1), (Indirect(Var("R16",Imm(64))),))]))])), -Sub(Tid(3_101, "@frame_dummy"), Attrs([Attr("c.proto","signed (*)(void)"), -Attr("address","0x710")]), "frame_dummy", Args([Arg(Tid(3_120, "%00000c30"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("frame_dummy_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(2_301, "@frame_dummy"), - Attrs([Attr("address","0x710")]), Phis([]), Defs([]), -Jmps([Call(Tid(2_303, "%000008ff"), Attrs([Attr("address","0x710"), -Attr("insn","b #-0x90")]), Int(1,1), -(Direct(Tid(3_104, "@register_tm_clones")),))]))])), -Sub(Tid(3_102, "@get_two"), Attrs([Attr("c.proto","signed (*)(void)"), -Attr("address","0x74C")]), "get_two", Args([Arg(Tid(3_121, "%00000c31"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("get_two_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(2_361, "@get_two"), - Attrs([Attr("address","0x74C")]), Phis([]), -Defs([Def(Tid(2_367, "%0000093f"), Attrs([Attr("address","0x74C"), -Attr("insn","mov w0, #0x2")]), Var("R0",Imm(64)), Int(2,64))]), -Jmps([Call(Tid(2_372, "%00000944"), Attrs([Attr("address","0x750"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))]))])), -Sub(Tid(3_103, "@main"), - Attrs([Attr("c.proto","signed (*)(signed argc, const char** argv)"), -Attr("address","0x714")]), "main", Args([Arg(Tid(3_122, "%00000c32"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("main_argc",Imm(32)), -LOW(32,Var("R0",Imm(64))), In()), Arg(Tid(3_123, "%00000c33"), - Attrs([Attr("c.layout","**[char : 8]"), Attr("c.data","Top:u8 ptr ptr"), -Attr("c.type"," const char**")]), Var("main_argv",Imm(64)), -Var("R1",Imm(64)), Both()), Arg(Tid(3_124, "%00000c34"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("main_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(2_305, "@main"), - Attrs([Attr("address","0x714")]), Phis([]), -Defs([Def(Tid(2_309, "%00000905"), Attrs([Attr("address","0x714"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("#4",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(18446744073709551600,64))), -Def(Tid(2_315, "%0000090b"), Attrs([Attr("address","0x714"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("#4",Imm(64)),Var("R29",Imm(64)),LittleEndian(),64)), -Def(Tid(2_321, "%00000911"), Attrs([Attr("address","0x714"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("#4",Imm(64)),Int(8,64)),Var("R30",Imm(64)),LittleEndian(),64)), -Def(Tid(2_325, "%00000915"), Attrs([Attr("address","0x714"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("R31",Imm(64)), -Var("#4",Imm(64))), Def(Tid(2_331, "%0000091b"), - Attrs([Attr("address","0x718"), Attr("insn","mov x29, sp")]), - Var("R29",Imm(64)), Var("R31",Imm(64))), Def(Tid(2_336, "%00000920"), - Attrs([Attr("address","0x71C"), Attr("insn","adrp x0, #69632")]), - Var("R0",Imm(64)), Int(69632,64)), Def(Tid(2_342, "%00000926"), - Attrs([Attr("address","0x720"), Attr("insn","add x0, x0, #0x14")]), - Var("R0",Imm(64)), PLUS(Var("R0",Imm(64)),Int(20,64))), -Def(Tid(2_347, "%0000092b"), Attrs([Attr("address","0x724"), -Attr("insn","mov w1, #0x1")]), Var("R1",Imm(64)), Int(1,64)), -Def(Tid(2_355, "%00000933"), Attrs([Attr("address","0x728"), -Attr("insn","str w1, [x0]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("R0",Imm(64)),Extract(31,0,Var("R1",Imm(64))),LittleEndian(),32)), -Def(Tid(2_360, "%00000938"), Attrs([Attr("address","0x72C"), -Attr("insn","bl #0x20")]), Var("R30",Imm(64)), Int(1840,64))]), -Jmps([Call(Tid(2_363, "%0000093b"), Attrs([Attr("address","0x72C"), -Attr("insn","bl #0x20")]), Int(1,1), -(Direct(Tid(3_102, "@get_two")),Direct(Tid(2_374, "%00000946"))))])), -Blk(Tid(2_374, "%00000946"), Attrs([Attr("address","0x730")]), Phis([]), -Defs([Def(Tid(2_378, "%0000094a"), Attrs([Attr("address","0x730"), -Attr("insn","mov w1, w0")]), Var("R1",Imm(64)), -UNSIGNED(64,Extract(31,0,Var("R0",Imm(64))))), Def(Tid(2_383, "%0000094f"), - Attrs([Attr("address","0x734"), Attr("insn","adrp x0, #69632")]), - Var("R0",Imm(64)), Int(69632,64)), Def(Tid(2_389, "%00000955"), - Attrs([Attr("address","0x738"), Attr("insn","add x0, x0, #0x18")]), - Var("R0",Imm(64)), PLUS(Var("R0",Imm(64)),Int(24,64))), -Def(Tid(2_397, "%0000095d"), Attrs([Attr("address","0x73C"), -Attr("insn","str w1, [x0]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("R0",Imm(64)),Extract(31,0,Var("R1",Imm(64))),LittleEndian(),32)), -Def(Tid(2_402, "%00000962"), Attrs([Attr("address","0x740"), -Attr("insn","mov w0, #0x0")]), Var("R0",Imm(64)), Int(0,64)), -Def(Tid(2_409, "%00000969"), Attrs([Attr("address","0x744"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R29",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(2_414, "%0000096e"), Attrs([Attr("address","0x744"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R30",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(2_418, "%00000972"), Attrs([Attr("address","0x744"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(16,64)))]), Jmps([Call(Tid(2_423, "%00000977"), - Attrs([Attr("address","0x748"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), -Sub(Tid(3_104, "@register_tm_clones"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x680")]), - "register_tm_clones", Args([Arg(Tid(3_125, "%00000c35"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("register_tm_clones_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(2_151, "@register_tm_clones"), - Attrs([Attr("address","0x680")]), Phis([]), -Defs([Def(Tid(2_154, "%0000086a"), Attrs([Attr("address","0x680"), -Attr("insn","adrp x0, #69632")]), Var("R0",Imm(64)), Int(69632,64)), -Def(Tid(2_160, "%00000870"), Attrs([Attr("address","0x684"), -Attr("insn","add x0, x0, #0x10")]), Var("R0",Imm(64)), -PLUS(Var("R0",Imm(64)),Int(16,64))), Def(Tid(2_165, "%00000875"), - Attrs([Attr("address","0x688"), Attr("insn","adrp x1, #69632")]), - Var("R1",Imm(64)), Int(69632,64)), Def(Tid(2_171, "%0000087b"), - Attrs([Attr("address","0x68C"), Attr("insn","add x1, x1, #0x10")]), - Var("R1",Imm(64)), PLUS(Var("R1",Imm(64)),Int(16,64))), -Def(Tid(2_178, "%00000882"), Attrs([Attr("address","0x690"), -Attr("insn","sub x1, x1, x0")]), Var("R1",Imm(64)), -PLUS(PLUS(Var("R1",Imm(64)),NOT(Var("R0",Imm(64)))),Int(1,64))), -Def(Tid(2_184, "%00000888"), Attrs([Attr("address","0x694"), -Attr("insn","lsr x2, x1, #63")]), Var("R2",Imm(64)), -Concat(Int(0,63),Extract(63,63,Var("R1",Imm(64))))), -Def(Tid(2_191, "%0000088f"), Attrs([Attr("address","0x698"), -Attr("insn","add x1, x2, x1, asr #3")]), Var("R1",Imm(64)), -PLUS(Var("R2",Imm(64)),ARSHIFT(Var("R1",Imm(64)),Int(3,3)))), -Def(Tid(2_197, "%00000895"), Attrs([Attr("address","0x69C"), -Attr("insn","asr x1, x1, #1")]), Var("R1",Imm(64)), -SIGNED(64,Extract(63,1,Var("R1",Imm(64)))))]), -Jmps([Goto(Tid(2_203, "%0000089b"), Attrs([Attr("address","0x6A0"), -Attr("insn","cbz x1, #0x18")]), EQ(Var("R1",Imm(64)),Int(0,64)), -Direct(Tid(2_201, "%00000899"))), Goto(Tid(3_105, "%00000c21"), Attrs([]), - Int(1,1), Direct(Tid(2_484, "%000009b4")))])), Blk(Tid(2_484, "%000009b4"), - Attrs([Attr("address","0x6A4")]), Phis([]), -Defs([Def(Tid(2_487, "%000009b7"), Attrs([Attr("address","0x6A4"), -Attr("insn","adrp x2, #65536")]), Var("R2",Imm(64)), Int(65536,64)), -Def(Tid(2_494, "%000009be"), Attrs([Attr("address","0x6A8"), -Attr("insn","ldr x2, [x2, #0xff8]")]), Var("R2",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R2",Imm(64)),Int(4088,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(2_499, "%000009c3"), Attrs([Attr("address","0x6AC"), -Attr("insn","cbz x2, #0xc")]), EQ(Var("R2",Imm(64)),Int(0,64)), -Direct(Tid(2_201, "%00000899"))), Goto(Tid(3_106, "%00000c22"), Attrs([]), - Int(1,1), Direct(Tid(2_503, "%000009c7")))])), Blk(Tid(2_201, "%00000899"), - Attrs([Attr("address","0x6B8")]), Phis([]), Defs([]), -Jmps([Call(Tid(2_209, "%000008a1"), Attrs([Attr("address","0x6B8"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))])), -Blk(Tid(2_503, "%000009c7"), Attrs([Attr("address","0x6B0")]), Phis([]), -Defs([Def(Tid(2_507, "%000009cb"), Attrs([Attr("address","0x6B0"), -Attr("insn","mov x16, x2")]), Var("R16",Imm(64)), Var("R2",Imm(64)))]), -Jmps([Call(Tid(2_512, "%000009d0"), Attrs([Attr("address","0x6B4"), -Attr("insn","br x16")]), Int(1,1), -(Indirect(Var("R16",Imm(64))),))]))]))]))) \ No newline at end of file diff --git a/src/test/correct/function/gcc/function.bir b/src/test/correct/function/gcc/function.bir deleted file mode 100644 index 4565acf7d..000000000 --- a/src/test/correct/function/gcc/function.bir +++ /dev/null @@ -1,251 +0,0 @@ -00000c23: program -00000c0c: sub __cxa_finalize(__cxa_finalize_result) -00000c24: __cxa_finalize_result :: out u32 = low:32[R0] - -000009b0: -00000aa8: R16 := 0x10000 -00000aaf: R17 := mem[R16 + 0xFB8, el]:u64 -00000ab5: R16 := R16 + 0xFB8 -00000aba: call R17 with noreturn - -00000c0d: sub __do_global_dtors_aux(__do_global_dtors_aux_result) -00000c25: __do_global_dtors_aux_result :: out u32 = low:32[R0] - -000008a5: -000008a9: #3 := R31 - 0x20 -000008af: mem := mem with [#3, el]:u64 <- R29 -000008b5: mem := mem with [#3 + 8, el]:u64 <- R30 -000008b9: R31 := #3 -000008bf: R29 := R31 -000008c7: mem := mem with [R31 + 0x10, el]:u64 <- R19 -000008cc: R19 := 0x11000 -000008d3: R0 := pad:64[mem[R19 + 0x10]] -000008da: when 31:0[R0] <> 0 goto %000008d8 -00000c0e: goto %00000979 - -00000979: -0000097c: R0 := 0x10000 -00000983: R0 := mem[R0 + 0xFE0, el]:u64 -00000989: when R0 = 0 goto %00000987 -00000c0f: goto %000009a0 - -000009a0: -000009a3: R0 := 0x11000 -000009aa: R0 := mem[R0 + 8, el]:u64 -000009af: R30 := 0x6F0 -000009b2: call @__cxa_finalize with return %00000987 - -00000987: -0000098f: R30 := 0x6F4 -00000991: call @deregister_tm_clones with return %00000993 - -00000993: -00000996: R0 := 1 -0000099e: mem := mem with [R19 + 0x10] <- 7:0[R0] -00000c10: goto %000008d8 - -000008d8: -000008e2: R19 := mem[R31 + 0x10, el]:u64 -000008e9: R29 := mem[R31, el]:u64 -000008ee: R30 := mem[R31 + 8, el]:u64 -000008f2: R31 := R31 + 0x20 -000008f7: call R30 with noreturn - -00000c11: sub __libc_start_main(__libc_start_main_main, __libc_start_main_arg2, __libc_start_main_arg3, __libc_start_main_auxv, __libc_start_main_result) -00000c26: __libc_start_main_main :: in u64 = R0 -00000c27: __libc_start_main_arg2 :: in u32 = low:32[R1] -00000c28: __libc_start_main_arg3 :: in out u64 = R2 -00000c29: __libc_start_main_auxv :: in out u64 = R3 -00000c2a: __libc_start_main_result :: out u32 = low:32[R0] - -000007fe: -00000a92: R16 := 0x10000 -00000a99: R17 := mem[R16 + 0xFB0, el]:u64 -00000a9f: R16 := R16 + 0xFB0 -00000aa4: call R17 with noreturn - -00000c12: sub _fini(_fini_result) -00000c2b: _fini_result :: out u32 = low:32[R0] - -00000636: -0000063c: #0 := R31 - 0x10 -00000642: mem := mem with [#0, el]:u64 <- R29 -00000648: mem := mem with [#0 + 8, el]:u64 <- R30 -0000064c: R31 := #0 -00000652: R29 := R31 -00000659: R29 := mem[R31, el]:u64 -0000065e: R30 := mem[R31 + 8, el]:u64 -00000662: R31 := R31 + 0x10 -00000667: call R30 with noreturn - -00000c13: sub _init(_init_result) -00000c2c: _init_result :: out u32 = low:32[R0] - -00000b5e: -00000b64: #6 := R31 - 0x10 -00000b6a: mem := mem with [#6, el]:u64 <- R29 -00000b70: mem := mem with [#6 + 8, el]:u64 <- R30 -00000b74: R31 := #6 -00000b7a: R29 := R31 -00000b7f: R30 := 0x590 -00000b81: call @call_weak_fn with return %00000b83 - -00000b83: -00000b88: R29 := mem[R31, el]:u64 -00000b8d: R30 := mem[R31 + 8, el]:u64 -00000b91: R31 := R31 + 0x10 -00000b96: call R30 with noreturn - -00000c14: sub _start(_start_result) -00000c2d: _start_result :: out u32 = low:32[R0] - -000007bf: -000007c4: R29 := 0 -000007c9: R30 := 0 -000007cf: R5 := R0 -000007d6: R1 := mem[R31, el]:u64 -000007dc: R2 := R31 + 8 -000007e2: R6 := R31 -000007e7: R0 := 0x10000 -000007ee: R0 := mem[R0 + 0xFF0, el]:u64 -000007f3: R3 := 0 -000007f8: R4 := 0 -000007fd: R30 := 0x630 -00000800: call @__libc_start_main with return %00000802 - -00000802: -00000805: R30 := 0x634 -00000808: call @abort with return %00000c15 - -00000c15: -00000c16: call @call_weak_fn with noreturn - -00000c17: sub abort() - - -00000806: -00000ad4: R16 := 0x10000 -00000adb: R17 := mem[R16 + 0xFC8, el]:u64 -00000ae1: R16 := R16 + 0xFC8 -00000ae6: call R17 with noreturn - -00000c18: sub call_weak_fn(call_weak_fn_result) -00000c2e: call_weak_fn_result :: out u32 = low:32[R0] - -0000080a: -0000080d: R0 := 0x10000 -00000814: R0 := mem[R0 + 0xFE8, el]:u64 -0000081a: when R0 = 0 goto %00000818 -00000c19: goto %000009f0 - -00000818: -00000820: call R30 with noreturn - -000009f0: -000009f3: goto @__gmon_start__ - -000009f1: -00000abe: R16 := 0x10000 -00000ac5: R17 := mem[R16 + 0xFC0, el]:u64 -00000acb: R16 := R16 + 0xFC0 -00000ad0: call R17 with noreturn - -00000c1a: sub deregister_tm_clones(deregister_tm_clones_result) -00000c2f: deregister_tm_clones_result :: out u32 = low:32[R0] - -00000826: -00000829: R0 := 0x11000 -0000082f: R0 := R0 + 0x10 -00000834: R1 := 0x11000 -0000083a: R1 := R1 + 0x10 -00000840: #1 := ~R0 -00000845: #2 := R1 + ~R0 -0000084b: VF := extend:65[#2 + 1] <> extend:65[R1] + extend:65[#1] + 1 -00000851: CF := pad:65[#2 + 1] <> pad:65[R1] + pad:65[#1] + 1 -00000855: ZF := #2 + 1 = 0 -00000859: NF := 63:63[#2 + 1] -0000085f: when ZF goto %0000085d -00000c1b: goto %000009d2 - -000009d2: -000009d5: R1 := 0x10000 -000009dc: R1 := mem[R1 + 0xFD8, el]:u64 -000009e1: when R1 = 0 goto %0000085d -00000c1c: goto %000009e5 - -0000085d: -00000865: call R30 with noreturn - -000009e5: -000009e9: R16 := R1 -000009ee: call R16 with noreturn - -00000c1d: sub frame_dummy(frame_dummy_result) -00000c30: frame_dummy_result :: out u32 = low:32[R0] - -000008fd: -000008ff: call @register_tm_clones with noreturn - -00000c1e: sub get_two(get_two_result) -00000c31: get_two_result :: out u32 = low:32[R0] - -00000939: -0000093f: R0 := 2 -00000944: call R30 with noreturn - -00000c1f: sub main(main_argc, main_argv, main_result) -00000c32: main_argc :: in u32 = low:32[R0] -00000c33: main_argv :: in out u64 = R1 -00000c34: main_result :: out u32 = low:32[R0] - -00000901: -00000905: #4 := R31 - 0x10 -0000090b: mem := mem with [#4, el]:u64 <- R29 -00000911: mem := mem with [#4 + 8, el]:u64 <- R30 -00000915: R31 := #4 -0000091b: R29 := R31 -00000920: R0 := 0x11000 -00000926: R0 := R0 + 0x14 -0000092b: R1 := 1 -00000933: mem := mem with [R0, el]:u32 <- 31:0[R1] -00000938: R30 := 0x730 -0000093b: call @get_two with return %00000946 - -00000946: -0000094a: R1 := pad:64[31:0[R0]] -0000094f: R0 := 0x11000 -00000955: R0 := R0 + 0x18 -0000095d: mem := mem with [R0, el]:u32 <- 31:0[R1] -00000962: R0 := 0 -00000969: R29 := mem[R31, el]:u64 -0000096e: R30 := mem[R31 + 8, el]:u64 -00000972: R31 := R31 + 0x10 -00000977: call R30 with noreturn - -00000c20: sub register_tm_clones(register_tm_clones_result) -00000c35: register_tm_clones_result :: out u32 = low:32[R0] - -00000867: -0000086a: R0 := 0x11000 -00000870: R0 := R0 + 0x10 -00000875: R1 := 0x11000 -0000087b: R1 := R1 + 0x10 -00000882: R1 := R1 + ~R0 + 1 -00000888: R2 := 0.63:63[R1] -0000088f: R1 := R2 + (R1 ~>> 3) -00000895: R1 := extend:64[63:1[R1]] -0000089b: when R1 = 0 goto %00000899 -00000c21: goto %000009b4 - -000009b4: -000009b7: R2 := 0x10000 -000009be: R2 := mem[R2 + 0xFF8, el]:u64 -000009c3: when R2 = 0 goto %00000899 -00000c22: goto %000009c7 - -00000899: -000008a1: call R30 with noreturn - -000009c7: -000009cb: R16 := R2 -000009d0: call R16 with noreturn diff --git a/src/test/correct/function/gcc/function.expected b/src/test/correct/function/gcc/function.expected index 3210a42d2..6a6972f7f 100644 --- a/src/test/correct/function/gcc/function.expected +++ b/src/test/correct/function/gcc/function.expected @@ -1,5 +1,6 @@ var {:extern} Gamma_R0: bool; var {:extern} Gamma_R1: bool; +var {:extern} Gamma_R2: bool; var {:extern} Gamma_R29: bool; var {:extern} Gamma_R30: bool; var {:extern} Gamma_R31: bool; @@ -7,15 +8,16 @@ var {:extern} Gamma_mem: [bv64]bool; var {:extern} Gamma_stack: [bv64]bool; var {:extern} R0: bv64; var {:extern} R1: bv64; +var {:extern} R2: bv64; var {:extern} R29: bv64; var {:extern} R30: bv64; var {:extern} R31: bv64; var {:extern} mem: [bv64]bv8; var {:extern} stack: [bv64]bv8; const {:extern} $x_addr: bv64; -axiom ($x_addr == 69652bv64); +axiom ($x_addr == 4325400bv64); const {:extern} $y_addr: bv64; -axiom ($y_addr == 69656bv64); +axiom ($y_addr == 4325396bv64); function {:extern} L(mem$in: [bv64]bv8, index: bv64) returns (bool) { false } @@ -58,11 +60,7 @@ procedure {:extern} rely(); modifies Gamma_mem, mem; ensures (Gamma_mem == old(Gamma_mem)); ensures (mem == old(mem)); - free ensures (memory_load32_le(mem, 1896bv64) == 131073bv32); - free ensures (memory_load64_le(mem, 69016bv64) == 1808bv64); - free ensures (memory_load64_le(mem, 69024bv64) == 1728bv64); - free ensures (memory_load64_le(mem, 69616bv64) == 1812bv64); - free ensures (memory_load64_le(mem, 69640bv64) == 69640bv64); + free ensures (memory_load32_le(mem, 4196332bv64) == 131073bv32); procedure {:extern} rely_transitive(); modifies Gamma_mem, mem; @@ -80,97 +78,89 @@ procedure {:extern} rely_reflexive(); procedure {:extern} guarantee_reflexive(); modifies Gamma_mem, mem; -procedure get_two_1868(); +procedure get_two(); modifies Gamma_R0, R0; - free requires (memory_load32_le(mem, 1896bv64) == 131073bv32); - free requires (memory_load64_le(mem, 69016bv64) == 1808bv64); - free requires (memory_load64_le(mem, 69024bv64) == 1728bv64); - free requires (memory_load64_le(mem, 69616bv64) == 1812bv64); - free requires (memory_load64_le(mem, 69640bv64) == 69640bv64); + free requires (memory_load32_le(mem, 4196332bv64) == 131073bv32); ensures (Gamma_R0 == true); - free ensures (memory_load32_le(mem, 1896bv64) == 131073bv32); - free ensures (memory_load64_le(mem, 69016bv64) == 1808bv64); - free ensures (memory_load64_le(mem, 69024bv64) == 1728bv64); - free ensures (memory_load64_le(mem, 69616bv64) == 1812bv64); - free ensures (memory_load64_le(mem, 69640bv64) == 69640bv64); + free ensures (memory_load32_le(mem, 4196332bv64) == 131073bv32); -implementation get_two_1868() +implementation get_two() { lget_two: assume {:captureState "lget_two"} true; R0, Gamma_R0 := 2bv64, true; - goto get_two_1868_basil_return; - get_two_1868_basil_return: - assume {:captureState "get_two_1868_basil_return"} true; + goto get_two_basil_return; + get_two_basil_return: + assume {:captureState "get_two_basil_return"} true; return; } -procedure main_1812(); - modifies Gamma_R0, Gamma_R1, Gamma_R29, Gamma_R30, Gamma_R31, Gamma_mem, Gamma_stack, R0, R1, R29, R30, R31, mem, stack; +procedure main(); + modifies Gamma_R0, Gamma_R1, Gamma_R2, Gamma_R29, Gamma_R30, Gamma_R31, Gamma_mem, Gamma_stack, R0, R1, R2, R29, R30, R31, mem, stack; requires (gamma_load32(Gamma_mem, $x_addr) == true); requires (gamma_load32(Gamma_mem, $y_addr) == true); - free requires (memory_load64_le(mem, 69632bv64) == 0bv64); - free requires (memory_load64_le(mem, 69640bv64) == 69640bv64); - free requires (memory_load32_le(mem, 1896bv64) == 131073bv32); - free requires (memory_load64_le(mem, 69016bv64) == 1808bv64); - free requires (memory_load64_le(mem, 69024bv64) == 1728bv64); - free requires (memory_load64_le(mem, 69616bv64) == 1812bv64); - free requires (memory_load64_le(mem, 69640bv64) == 69640bv64); + free requires (memory_load64_le(mem, 4325376bv64) == 0bv64); + free requires (memory_load64_le(mem, 4325384bv64) == 0bv64); + free requires (memory_load32_le(mem, 4196332bv64) == 131073bv32); free ensures (Gamma_R29 == old(Gamma_R29)); free ensures (Gamma_R31 == old(Gamma_R31)); free ensures (R29 == old(R29)); free ensures (R31 == old(R31)); - free ensures (memory_load32_le(mem, 1896bv64) == 131073bv32); - free ensures (memory_load64_le(mem, 69016bv64) == 1808bv64); - free ensures (memory_load64_le(mem, 69024bv64) == 1728bv64); - free ensures (memory_load64_le(mem, 69616bv64) == 1812bv64); - free ensures (memory_load64_le(mem, 69640bv64) == 69640bv64); + free ensures (memory_load32_le(mem, 4196332bv64) == 131073bv32); -implementation main_1812() +implementation main() { - var #4: bv64; - var Gamma_#4: bool; - var Gamma_load18: bool; - var Gamma_load19: bool; - var load18: bv64; - var load19: bv64; + var #1: bv64; + var $load$14: bv64; + var $load$15: bv64; + var $load$16: bv64; + var $load$17: bv64; + var Gamma_#1: bool; + var Gamma_$load$14: bool; + var Gamma_$load$15: bool; + var Gamma_$load$16: bool; + var Gamma_$load$17: bool; lmain: assume {:captureState "lmain"} true; - #4, Gamma_#4 := bvadd64(R31, 18446744073709551600bv64), Gamma_R31; - stack, Gamma_stack := memory_store64_le(stack, #4, R29), gamma_store64(Gamma_stack, #4, Gamma_R29); - assume {:captureState "%0000090b"} true; - stack, Gamma_stack := memory_store64_le(stack, bvadd64(#4, 8bv64), R30), gamma_store64(Gamma_stack, bvadd64(#4, 8bv64), Gamma_R30); - assume {:captureState "%00000911"} true; - R31, Gamma_R31 := #4, Gamma_#4; - R29, Gamma_R29 := R31, Gamma_R31; - R0, Gamma_R0 := 69632bv64, true; - R0, Gamma_R0 := bvadd64(R0, 20bv64), Gamma_R0; + R0, Gamma_R0 := 4321280bv64, true; + call rely(); + $load$14, Gamma_$load$14 := memory_load64_le(mem, bvadd64(R0, 4064bv64)), (gamma_load64(Gamma_mem, bvadd64(R0, 4064bv64)) || L(mem, bvadd64(R0, 4064bv64))); + R0, Gamma_R0 := $load$14, Gamma_$load$14; + #1, Gamma_#1 := bvadd64(R31, 18446744073709551600bv64), Gamma_R31; + stack, Gamma_stack := memory_store64_le(stack, #1, R29), gamma_store64(Gamma_stack, #1, Gamma_R29); + assume {:captureState "%00000268"} true; + stack, Gamma_stack := memory_store64_le(stack, bvadd64(#1, 8bv64), R30), gamma_store64(Gamma_stack, bvadd64(#1, 8bv64), Gamma_R30); + assume {:captureState "%0000026c"} true; + R31, Gamma_R31 := #1, Gamma_#1; R1, Gamma_R1 := 1bv64, true; + R29, Gamma_R29 := R31, Gamma_R31; call rely(); assert (L(mem, R0) ==> Gamma_R1); mem, Gamma_mem := memory_store32_le(mem, R0, R1[32:0]), gamma_store32(Gamma_mem, R0, Gamma_R1); - assume {:captureState "%00000933"} true; - R30, Gamma_R30 := 1840bv64, true; - call get_two_1868(); - goto l00000946; - l00000946: - assume {:captureState "l00000946"} true; - R1, Gamma_R1 := zero_extend32_32(R0[32:0]), Gamma_R0; - R0, Gamma_R0 := 69632bv64, true; - R0, Gamma_R0 := bvadd64(R0, 24bv64), Gamma_R0; + assume {:captureState "%0000027c"} true; + R30, Gamma_R30 := 4195996bv64, true; + call get_two(); + goto l00000288; + l00000288: + assume {:captureState "l00000288"} true; + R1, Gamma_R1 := 4321280bv64, true; call rely(); - assert (L(mem, R0) ==> Gamma_R1); - mem, Gamma_mem := memory_store32_le(mem, R0, R1[32:0]), gamma_store32(Gamma_mem, R0, Gamma_R1); - assume {:captureState "%0000095d"} true; + $load$15, Gamma_$load$15 := memory_load64_le(mem, bvadd64(R1, 4080bv64)), (gamma_load64(Gamma_mem, bvadd64(R1, 4080bv64)) || L(mem, bvadd64(R1, 4080bv64))); + R1, Gamma_R1 := $load$15, Gamma_$load$15; + R2, Gamma_R2 := zero_extend32_32(R0[32:0]), Gamma_R0; R0, Gamma_R0 := 0bv64, true; - load18, Gamma_load18 := memory_load64_le(stack, R31), gamma_load64(Gamma_stack, R31); - R29, Gamma_R29 := load18, Gamma_load18; - load19, Gamma_load19 := memory_load64_le(stack, bvadd64(R31, 8bv64)), gamma_load64(Gamma_stack, bvadd64(R31, 8bv64)); - R30, Gamma_R30 := load19, Gamma_load19; + call rely(); + assert (L(mem, R1) ==> Gamma_R2); + mem, Gamma_mem := memory_store32_le(mem, R1, R2[32:0]), gamma_store32(Gamma_mem, R1, Gamma_R2); + assume {:captureState "%0000029c"} true; + $load$16, Gamma_$load$16 := memory_load64_le(stack, R31), gamma_load64(Gamma_stack, R31); + R29, Gamma_R29 := $load$16, Gamma_$load$16; + $load$17, Gamma_$load$17 := memory_load64_le(stack, bvadd64(R31, 8bv64)), gamma_load64(Gamma_stack, bvadd64(R31, 8bv64)); + R30, Gamma_R30 := $load$17, Gamma_$load$17; R31, Gamma_R31 := bvadd64(R31, 16bv64), Gamma_R31; - goto main_1812_basil_return; - main_1812_basil_return: - assume {:captureState "main_1812_basil_return"} true; + goto main_basil_return; + main_basil_return: + assume {:captureState "main_basil_return"} true; return; } diff --git a/src/test/correct/function/gcc/function.gts b/src/test/correct/function/gcc/function.gts deleted file mode 100644 index 674b3f7a7..000000000 Binary files a/src/test/correct/function/gcc/function.gts and /dev/null differ diff --git a/src/test/correct/function/gcc/function.md5sum b/src/test/correct/function/gcc/function.md5sum new file mode 100644 index 000000000..653fd1130 --- /dev/null +++ b/src/test/correct/function/gcc/function.md5sum @@ -0,0 +1,5 @@ +bdbb5306373a441f9f0a2e9ba83d44a2 correct/function/gcc/a.out +c585005cb66c839a4bd2c5659e8f56de correct/function/gcc/function.adt +952c695258b4c1a9a4c5e07546d721a1 correct/function/gcc/function.bir +500e66d733d1d326136a65b28bc39965 correct/function/gcc/function.relf +ec5eb3d030d9d0f982188bd5564760f7 correct/function/gcc/function.gts diff --git a/src/test/correct/function/gcc/function.relf b/src/test/correct/function/gcc/function.relf deleted file mode 100644 index 980288797..000000000 --- a/src/test/correct/function/gcc/function.relf +++ /dev/null @@ -1,123 +0,0 @@ - -Relocation section '.rela.dyn' at offset 0x460 contains 8 entries: - Offset Info Type Symbol's Value Symbol's Name + Addend -0000000000010d98 0000000000000403 R_AARCH64_RELATIVE 710 -0000000000010da0 0000000000000403 R_AARCH64_RELATIVE 6c0 -0000000000010ff0 0000000000000403 R_AARCH64_RELATIVE 714 -0000000000011008 0000000000000403 R_AARCH64_RELATIVE 11008 -0000000000010fd8 0000000400000401 R_AARCH64_GLOB_DAT 0000000000000000 _ITM_deregisterTMCloneTable + 0 -0000000000010fe0 0000000500000401 R_AARCH64_GLOB_DAT 0000000000000000 __cxa_finalize@GLIBC_2.17 + 0 -0000000000010fe8 0000000600000401 R_AARCH64_GLOB_DAT 0000000000000000 __gmon_start__ + 0 -0000000000010ff8 0000000800000401 R_AARCH64_GLOB_DAT 0000000000000000 _ITM_registerTMCloneTable + 0 - -Relocation section '.rela.plt' at offset 0x520 contains 4 entries: - Offset Info Type Symbol's Value Symbol's Name + Addend -0000000000010fb0 0000000300000402 R_AARCH64_JUMP_SLOT 0000000000000000 __libc_start_main@GLIBC_2.34 + 0 -0000000000010fb8 0000000500000402 R_AARCH64_JUMP_SLOT 0000000000000000 __cxa_finalize@GLIBC_2.17 + 0 -0000000000010fc0 0000000600000402 R_AARCH64_JUMP_SLOT 0000000000000000 __gmon_start__ + 0 -0000000000010fc8 0000000700000402 R_AARCH64_JUMP_SLOT 0000000000000000 abort@GLIBC_2.17 + 0 - -Symbol table '.dynsym' contains 9 entries: - Num: Value Size Type Bind Vis Ndx Name - 0: 0000000000000000 0 NOTYPE LOCAL DEFAULT UND - 1: 0000000000000580 0 SECTION LOCAL DEFAULT 11 .init - 2: 0000000000011000 0 SECTION LOCAL DEFAULT 22 .data - 3: 0000000000000000 0 FUNC GLOBAL DEFAULT UND __libc_start_main@GLIBC_2.34 (2) - 4: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_deregisterTMCloneTable - 5: 0000000000000000 0 FUNC WEAK DEFAULT UND __cxa_finalize@GLIBC_2.17 (3) - 6: 0000000000000000 0 NOTYPE WEAK DEFAULT UND __gmon_start__ - 7: 0000000000000000 0 FUNC GLOBAL DEFAULT UND abort@GLIBC_2.17 (3) - 8: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_registerTMCloneTable - -Symbol table '.symtab' contains 90 entries: - Num: Value Size Type Bind Vis Ndx Name - 0: 0000000000000000 0 NOTYPE LOCAL DEFAULT UND - 1: 0000000000000238 0 SECTION LOCAL DEFAULT 1 .interp - 2: 0000000000000254 0 SECTION LOCAL DEFAULT 2 .note.gnu.build-id - 3: 0000000000000278 0 SECTION LOCAL DEFAULT 3 .note.ABI-tag - 4: 0000000000000298 0 SECTION LOCAL DEFAULT 4 .gnu.hash - 5: 00000000000002b8 0 SECTION LOCAL DEFAULT 5 .dynsym - 6: 0000000000000390 0 SECTION LOCAL DEFAULT 6 .dynstr - 7: 000000000000041e 0 SECTION LOCAL DEFAULT 7 .gnu.version - 8: 0000000000000430 0 SECTION LOCAL DEFAULT 8 .gnu.version_r - 9: 0000000000000460 0 SECTION LOCAL DEFAULT 9 .rela.dyn - 10: 0000000000000520 0 SECTION LOCAL DEFAULT 10 .rela.plt - 11: 0000000000000580 0 SECTION LOCAL DEFAULT 11 .init - 12: 00000000000005a0 0 SECTION LOCAL DEFAULT 12 .plt - 13: 0000000000000600 0 SECTION LOCAL DEFAULT 13 .text - 14: 0000000000000754 0 SECTION LOCAL DEFAULT 14 .fini - 15: 0000000000000768 0 SECTION LOCAL DEFAULT 15 .rodata - 16: 000000000000076c 0 SECTION LOCAL DEFAULT 16 .eh_frame_hdr - 17: 00000000000007b0 0 SECTION LOCAL DEFAULT 17 .eh_frame - 18: 0000000000010d98 0 SECTION LOCAL DEFAULT 18 .init_array - 19: 0000000000010da0 0 SECTION LOCAL DEFAULT 19 .fini_array - 20: 0000000000010da8 0 SECTION LOCAL DEFAULT 20 .dynamic - 21: 0000000000010f98 0 SECTION LOCAL DEFAULT 21 .got - 22: 0000000000011000 0 SECTION LOCAL DEFAULT 22 .data - 23: 0000000000011010 0 SECTION LOCAL DEFAULT 23 .bss - 24: 0000000000000000 0 SECTION LOCAL DEFAULT 24 .comment - 25: 0000000000000000 0 FILE LOCAL DEFAULT ABS Scrt1.o - 26: 0000000000000278 0 NOTYPE LOCAL DEFAULT 3 $d - 27: 0000000000000278 32 OBJECT LOCAL DEFAULT 3 __abi_tag - 28: 0000000000000600 0 NOTYPE LOCAL DEFAULT 13 $x - 29: 00000000000007c4 0 NOTYPE LOCAL DEFAULT 17 $d - 30: 0000000000000768 0 NOTYPE LOCAL DEFAULT 15 $d - 31: 0000000000000000 0 FILE LOCAL DEFAULT ABS crti.o - 32: 0000000000000634 0 NOTYPE LOCAL DEFAULT 13 $x - 33: 0000000000000634 20 FUNC LOCAL DEFAULT 13 call_weak_fn - 34: 0000000000000580 0 NOTYPE LOCAL DEFAULT 11 $x - 35: 0000000000000754 0 NOTYPE LOCAL DEFAULT 14 $x - 36: 0000000000000000 0 FILE LOCAL DEFAULT ABS crtn.o - 37: 0000000000000590 0 NOTYPE LOCAL DEFAULT 11 $x - 38: 0000000000000760 0 NOTYPE LOCAL DEFAULT 14 $x - 39: 0000000000000000 0 FILE LOCAL DEFAULT ABS crtstuff.c - 40: 0000000000000650 0 NOTYPE LOCAL DEFAULT 13 $x - 41: 0000000000000650 0 FUNC LOCAL DEFAULT 13 deregister_tm_clones - 42: 0000000000000680 0 FUNC LOCAL DEFAULT 13 register_tm_clones - 43: 0000000000011008 0 NOTYPE LOCAL DEFAULT 22 $d - 44: 00000000000006c0 0 FUNC LOCAL DEFAULT 13 __do_global_dtors_aux - 45: 0000000000011010 1 OBJECT LOCAL DEFAULT 23 completed.0 - 46: 0000000000010da0 0 NOTYPE LOCAL DEFAULT 19 $d - 47: 0000000000010da0 0 OBJECT LOCAL DEFAULT 19 __do_global_dtors_aux_fini_array_entry - 48: 0000000000000710 0 FUNC LOCAL DEFAULT 13 frame_dummy - 49: 0000000000010d98 0 NOTYPE LOCAL DEFAULT 18 $d - 50: 0000000000010d98 0 OBJECT LOCAL DEFAULT 18 __frame_dummy_init_array_entry - 51: 00000000000007d8 0 NOTYPE LOCAL DEFAULT 17 $d - 52: 0000000000011010 0 NOTYPE LOCAL DEFAULT 23 $d - 53: 0000000000000000 0 FILE LOCAL DEFAULT ABS function.c - 54: 0000000000011014 0 NOTYPE LOCAL DEFAULT 23 $d - 55: 0000000000000714 0 NOTYPE LOCAL DEFAULT 13 $x - 56: 0000000000000838 0 NOTYPE LOCAL DEFAULT 17 $d - 57: 0000000000000000 0 FILE LOCAL DEFAULT ABS crtstuff.c - 58: 000000000000086c 0 NOTYPE LOCAL DEFAULT 17 $d - 59: 000000000000086c 0 OBJECT LOCAL DEFAULT 17 __FRAME_END__ - 60: 0000000000000000 0 FILE LOCAL DEFAULT ABS - 61: 0000000000010da8 0 OBJECT LOCAL DEFAULT ABS _DYNAMIC - 62: 000000000000076c 0 NOTYPE LOCAL DEFAULT 16 __GNU_EH_FRAME_HDR - 63: 0000000000010fd0 0 OBJECT LOCAL DEFAULT ABS _GLOBAL_OFFSET_TABLE_ - 64: 00000000000005a0 0 NOTYPE LOCAL DEFAULT 12 $x - 65: 0000000000000000 0 FUNC GLOBAL DEFAULT UND __libc_start_main@GLIBC_2.34 - 66: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_deregisterTMCloneTable - 67: 0000000000011000 0 NOTYPE WEAK DEFAULT 22 data_start - 68: 0000000000011010 0 NOTYPE GLOBAL DEFAULT 23 __bss_start__ - 69: 0000000000000000 0 FUNC WEAK DEFAULT UND __cxa_finalize@GLIBC_2.17 - 70: 0000000000011020 0 NOTYPE GLOBAL DEFAULT 23 _bss_end__ - 71: 0000000000011010 0 NOTYPE GLOBAL DEFAULT 22 _edata - 72: 0000000000011014 4 OBJECT GLOBAL DEFAULT 23 x - 73: 0000000000000754 0 FUNC GLOBAL HIDDEN 14 _fini - 74: 0000000000011020 0 NOTYPE GLOBAL DEFAULT 23 __bss_end__ - 75: 000000000000074c 8 FUNC GLOBAL DEFAULT 13 get_two - 76: 0000000000011000 0 NOTYPE GLOBAL DEFAULT 22 __data_start - 77: 0000000000000000 0 NOTYPE WEAK DEFAULT UND __gmon_start__ - 78: 0000000000011008 0 OBJECT GLOBAL HIDDEN 22 __dso_handle - 79: 0000000000000000 0 FUNC GLOBAL DEFAULT UND abort@GLIBC_2.17 - 80: 0000000000000768 4 OBJECT GLOBAL DEFAULT 15 _IO_stdin_used - 81: 0000000000011020 0 NOTYPE GLOBAL DEFAULT 23 _end - 82: 0000000000000600 52 FUNC GLOBAL DEFAULT 13 _start - 83: 0000000000011020 0 NOTYPE GLOBAL DEFAULT 23 __end__ - 84: 0000000000011018 4 OBJECT GLOBAL DEFAULT 23 y - 85: 0000000000011010 0 NOTYPE GLOBAL DEFAULT 23 __bss_start - 86: 0000000000000714 56 FUNC GLOBAL DEFAULT 13 main - 87: 0000000000011010 0 OBJECT GLOBAL HIDDEN 22 __TMC_END__ - 88: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_registerTMCloneTable - 89: 0000000000000580 0 FUNC GLOBAL HIDDEN 11 _init diff --git a/src/test/correct/function/gcc/function_gtirb.expected b/src/test/correct/function/gcc/function_gtirb.expected index cea44a8fc..2d187fa6e 100644 --- a/src/test/correct/function/gcc/function_gtirb.expected +++ b/src/test/correct/function/gcc/function_gtirb.expected @@ -1,5 +1,6 @@ var {:extern} Gamma_R0: bool; var {:extern} Gamma_R1: bool; +var {:extern} Gamma_R2: bool; var {:extern} Gamma_R29: bool; var {:extern} Gamma_R30: bool; var {:extern} Gamma_R31: bool; @@ -7,15 +8,16 @@ var {:extern} Gamma_mem: [bv64]bool; var {:extern} Gamma_stack: [bv64]bool; var {:extern} R0: bv64; var {:extern} R1: bv64; +var {:extern} R2: bv64; var {:extern} R29: bv64; var {:extern} R30: bv64; var {:extern} R31: bv64; var {:extern} mem: [bv64]bv8; var {:extern} stack: [bv64]bv8; const {:extern} $x_addr: bv64; -axiom ($x_addr == 69652bv64); +axiom ($x_addr == 4325400bv64); const {:extern} $y_addr: bv64; -axiom ($y_addr == 69656bv64); +axiom ($y_addr == 4325396bv64); function {:extern} L(mem$in: [bv64]bv8, index: bv64) returns (bool) { false } @@ -58,11 +60,7 @@ procedure {:extern} rely(); modifies Gamma_mem, mem; ensures (Gamma_mem == old(Gamma_mem)); ensures (mem == old(mem)); - free ensures (memory_load32_le(mem, 1896bv64) == 131073bv32); - free ensures (memory_load64_le(mem, 69016bv64) == 1808bv64); - free ensures (memory_load64_le(mem, 69024bv64) == 1728bv64); - free ensures (memory_load64_le(mem, 69616bv64) == 1812bv64); - free ensures (memory_load64_le(mem, 69640bv64) == 69640bv64); + free ensures (memory_load32_le(mem, 4196332bv64) == 131073bv32); procedure {:extern} rely_transitive(); modifies Gamma_mem, mem; @@ -80,97 +78,89 @@ procedure {:extern} rely_reflexive(); procedure {:extern} guarantee_reflexive(); modifies Gamma_mem, mem; -procedure get_two_1868(); - modifies Gamma_R0, R0; - free requires (memory_load32_le(mem, 1896bv64) == 131073bv32); - free requires (memory_load64_le(mem, 69016bv64) == 1808bv64); - free requires (memory_load64_le(mem, 69024bv64) == 1728bv64); - free requires (memory_load64_le(mem, 69616bv64) == 1812bv64); - free requires (memory_load64_le(mem, 69640bv64) == 69640bv64); - ensures (Gamma_R0 == true); - free ensures (memory_load32_le(mem, 1896bv64) == 131073bv32); - free ensures (memory_load64_le(mem, 69016bv64) == 1808bv64); - free ensures (memory_load64_le(mem, 69024bv64) == 1728bv64); - free ensures (memory_load64_le(mem, 69616bv64) == 1812bv64); - free ensures (memory_load64_le(mem, 69640bv64) == 69640bv64); - -implementation get_two_1868() -{ - get_two_1868__0__lT8LeRkcS4eNr99yLhlABA: - assume {:captureState "get_two_1868__0__lT8LeRkcS4eNr99yLhlABA"} true; - R0, Gamma_R0 := 2bv64, true; - goto get_two_1868_basil_return; - get_two_1868_basil_return: - assume {:captureState "get_two_1868_basil_return"} true; - return; -} - -procedure main_1812(); - modifies Gamma_R0, Gamma_R1, Gamma_R29, Gamma_R30, Gamma_R31, Gamma_mem, Gamma_stack, R0, R1, R29, R30, R31, mem, stack; +procedure main(); + modifies Gamma_R0, Gamma_R1, Gamma_R2, Gamma_R29, Gamma_R30, Gamma_R31, Gamma_mem, Gamma_stack, R0, R1, R2, R29, R30, R31, mem, stack; requires (gamma_load32(Gamma_mem, $x_addr) == true); requires (gamma_load32(Gamma_mem, $y_addr) == true); - free requires (memory_load64_le(mem, 69632bv64) == 0bv64); - free requires (memory_load64_le(mem, 69640bv64) == 69640bv64); - free requires (memory_load32_le(mem, 1896bv64) == 131073bv32); - free requires (memory_load64_le(mem, 69016bv64) == 1808bv64); - free requires (memory_load64_le(mem, 69024bv64) == 1728bv64); - free requires (memory_load64_le(mem, 69616bv64) == 1812bv64); - free requires (memory_load64_le(mem, 69640bv64) == 69640bv64); + free requires (memory_load64_le(mem, 4325376bv64) == 0bv64); + free requires (memory_load64_le(mem, 4325384bv64) == 0bv64); + free requires (memory_load32_le(mem, 4196332bv64) == 131073bv32); free ensures (Gamma_R29 == old(Gamma_R29)); free ensures (Gamma_R31 == old(Gamma_R31)); free ensures (R29 == old(R29)); free ensures (R31 == old(R31)); - free ensures (memory_load32_le(mem, 1896bv64) == 131073bv32); - free ensures (memory_load64_le(mem, 69016bv64) == 1808bv64); - free ensures (memory_load64_le(mem, 69024bv64) == 1728bv64); - free ensures (memory_load64_le(mem, 69616bv64) == 1812bv64); - free ensures (memory_load64_le(mem, 69640bv64) == 69640bv64); + free ensures (memory_load32_le(mem, 4196332bv64) == 131073bv32); -implementation main_1812() +implementation main() { - var Cse0__5_0_0: bv64; - var Gamma_Cse0__5_0_0: bool; - var Gamma_load19: bool; - var Gamma_load20: bool; - var load19: bv64; - var load20: bv64; - main_1812__0__Hr_crFnzTBCWNR~lsvKo~A: - assume {:captureState "main_1812__0__Hr_crFnzTBCWNR~lsvKo~A"} true; - Cse0__5_0_0, Gamma_Cse0__5_0_0 := bvadd64(R31, 18446744073709551600bv64), Gamma_R31; - stack, Gamma_stack := memory_store64_le(stack, Cse0__5_0_0, R29), gamma_store64(Gamma_stack, Cse0__5_0_0, Gamma_R29); - assume {:captureState "1812_1"} true; - stack, Gamma_stack := memory_store64_le(stack, bvadd64(Cse0__5_0_0, 8bv64), R30), gamma_store64(Gamma_stack, bvadd64(Cse0__5_0_0, 8bv64), Gamma_R30); - assume {:captureState "1812_2"} true; - R31, Gamma_R31 := Cse0__5_0_0, Gamma_Cse0__5_0_0; - R29, Gamma_R29 := R31, Gamma_R31; - R0, Gamma_R0 := 69632bv64, true; - R0, Gamma_R0 := bvadd64(R0, 20bv64), Gamma_R0; + var $load2: bv64; + var $load3: bv64; + var $load4: bv64; + var $load5: bv64; + var Cse0__5$1$2: bv64; + var Gamma_$load2: bool; + var Gamma_$load3: bool; + var Gamma_$load4: bool; + var Gamma_$load5: bool; + var Gamma_Cse0__5$1$2: bool; + $main$__0__$xdHqi8HzTJ~zBYVemlzAtg: + assume {:captureState "$main$__0__$xdHqi8HzTJ~zBYVemlzAtg"} true; + R0, Gamma_R0 := 4321280bv64, true; + call rely(); + $load5, Gamma_$load5 := memory_load64_le(mem, bvadd64(R0, 4064bv64)), (gamma_load64(Gamma_mem, bvadd64(R0, 4064bv64)) || L(mem, bvadd64(R0, 4064bv64))); + R0, Gamma_R0 := $load5, Gamma_$load5; + Cse0__5$1$2, Gamma_Cse0__5$1$2 := bvadd64(R31, 18446744073709551600bv64), Gamma_R31; + stack, Gamma_stack := memory_store64_le(stack, Cse0__5$1$2, R29), gamma_store64(Gamma_stack, Cse0__5$1$2, Gamma_R29); + assume {:captureState "4195976$1"} true; + stack, Gamma_stack := memory_store64_le(stack, bvadd64(Cse0__5$1$2, 8bv64), R30), gamma_store64(Gamma_stack, bvadd64(Cse0__5$1$2, 8bv64), Gamma_R30); + assume {:captureState "4195976$2"} true; + R31, Gamma_R31 := Cse0__5$1$2, Gamma_Cse0__5$1$2; R1, Gamma_R1 := 1bv64, true; + R29, Gamma_R29 := R31, Gamma_R31; call rely(); assert (L(mem, R0) ==> Gamma_R1); mem, Gamma_mem := memory_store32_le(mem, R0, R1[32:0]), gamma_store32(Gamma_mem, R0, Gamma_R1); - assume {:captureState "1832_0"} true; - R30, Gamma_R30 := 1840bv64, true; - call get_two_1868(); - goto main_1812__1__Js1exVANQd~fHOhEeBDuvw; - main_1812__1__Js1exVANQd~fHOhEeBDuvw: - assume {:captureState "main_1812__1__Js1exVANQd~fHOhEeBDuvw"} true; - R1, Gamma_R1 := zero_extend32_32(R0[32:0]), Gamma_R0; - R0, Gamma_R0 := 69632bv64, true; - R0, Gamma_R0 := bvadd64(R0, 24bv64), Gamma_R0; + assume {:captureState "4195988$0"} true; + R30, Gamma_R30 := 4195996bv64, true; + call get_two(); + goto $main$__1__$t_6C~3O4SbalxMsQ9Vg3LA; + $main$__1__$t_6C~3O4SbalxMsQ9Vg3LA: + assume {:captureState "$main$__1__$t_6C~3O4SbalxMsQ9Vg3LA"} true; + R1, Gamma_R1 := 4321280bv64, true; call rely(); - assert (L(mem, R0) ==> Gamma_R1); - mem, Gamma_mem := memory_store32_le(mem, R0, R1[32:0]), gamma_store32(Gamma_mem, R0, Gamma_R1); - assume {:captureState "1852_0"} true; + $load2, Gamma_$load2 := memory_load64_le(mem, bvadd64(R1, 4080bv64)), (gamma_load64(Gamma_mem, bvadd64(R1, 4080bv64)) || L(mem, bvadd64(R1, 4080bv64))); + R1, Gamma_R1 := $load2, Gamma_$load2; + R2, Gamma_R2 := zero_extend32_32(R0[32:0]), Gamma_R0; R0, Gamma_R0 := 0bv64, true; - load19, Gamma_load19 := memory_load64_le(stack, R31), gamma_load64(Gamma_stack, R31); - R29, Gamma_R29 := load19, Gamma_load19; - load20, Gamma_load20 := memory_load64_le(stack, bvadd64(R31, 8bv64)), gamma_load64(Gamma_stack, bvadd64(R31, 8bv64)); - R30, Gamma_R30 := load20, Gamma_load20; + call rely(); + assert (L(mem, R1) ==> Gamma_R2); + mem, Gamma_mem := memory_store32_le(mem, R1, R2[32:0]), gamma_store32(Gamma_mem, R1, Gamma_R2); + assume {:captureState "4196012$0"} true; + $load3, Gamma_$load3 := memory_load64_le(stack, R31), gamma_load64(Gamma_stack, R31); + R29, Gamma_R29 := $load3, Gamma_$load3; + $load4, Gamma_$load4 := memory_load64_le(stack, bvadd64(R31, 8bv64)), gamma_load64(Gamma_stack, bvadd64(R31, 8bv64)); + R30, Gamma_R30 := $load4, Gamma_$load4; R31, Gamma_R31 := bvadd64(R31, 16bv64), Gamma_R31; - goto main_1812_basil_return; - main_1812_basil_return: - assume {:captureState "main_1812_basil_return"} true; + goto main_basil_return; + main_basil_return: + assume {:captureState "main_basil_return"} true; + return; +} + +procedure get_two(); + modifies Gamma_R0, R0; + free requires (memory_load32_le(mem, 4196332bv64) == 131073bv32); + ensures (Gamma_R0 == true); + free ensures (memory_load32_le(mem, 4196332bv64) == 131073bv32); + +implementation get_two() +{ + $get_two$__0__$32fWxY7~R~~JNJOFTmT~Sg: + assume {:captureState "$get_two$__0__$32fWxY7~R~~JNJOFTmT~Sg"} true; + R0, Gamma_R0 := 2bv64, true; + goto get_two_basil_return; + get_two_basil_return: + assume {:captureState "get_two_basil_return"} true; return; } diff --git a/src/test/correct/function/gcc_pic/function.adt b/src/test/correct/function/gcc_pic/function.adt deleted file mode 100644 index b07d7128b..000000000 --- a/src/test/correct/function/gcc_pic/function.adt +++ /dev/null @@ -1,547 +0,0 @@ -Project(Attrs([Attr("filename","\"gcc_pic/function.out\""), -Attr("image-specification","(declare abi (name str))\n(declare arch (name str))\n(declare base-address (addr int))\n(declare bias (off int))\n(declare bits (size int))\n(declare code-region (addr int) (size int) (off int))\n(declare code-start (addr int))\n(declare entry-point (addr int))\n(declare external-reference (addr int) (name str))\n(declare format (name str))\n(declare is-executable (flag bool))\n(declare is-little-endian (flag bool))\n(declare llvm:base-address (addr int))\n(declare llvm:code-entry (name str) (off int) (size int))\n(declare llvm:coff-import-library (name str))\n(declare llvm:coff-virtual-section-header (name str) (addr int) (size int))\n(declare llvm:elf-program-header (name str) (off int) (size int))\n(declare llvm:elf-program-header-flags (name str) (ld bool) (r bool) \n (w bool) (x bool))\n(declare llvm:elf-virtual-program-header (name str) (addr int) (size int))\n(declare llvm:entry-point (addr int))\n(declare llvm:macho-symbol (name str) (value int))\n(declare llvm:name-reference (at int) (name str))\n(declare llvm:relocation (at int) (addr int))\n(declare llvm:section-entry (name str) (addr int) (size int) (off int))\n(declare llvm:section-flags (name str) (r bool) (w bool) (x bool))\n(declare llvm:segment-command (name str) (off int) (size int))\n(declare llvm:segment-command-flags (name str) (r bool) (w bool) (x bool))\n(declare llvm:symbol-entry (name str) (addr int) (size int) (off int)\n (value int))\n(declare llvm:virtual-segment-command (name str) (addr int) (size int))\n(declare mapped (addr int) (size int) (off int))\n(declare named-region (addr int) (size int) (name str))\n(declare named-symbol (addr int) (name str))\n(declare require (name str))\n(declare section (addr int) (size int))\n(declare segment (addr int) (size int) (r bool) (w bool) (x bool))\n(declare subarch (name str))\n(declare symbol-chunk (addr int) (size int) (root int))\n(declare symbol-value (addr int) (value int))\n(declare system (name str))\n(declare vendor (name str))\n\n(abi unknown)\n(arch aarch64)\n(base-address 0)\n(bias 0)\n(bits 64)\n(code-region 1940 20 1940)\n(code-region 1600 340 1600)\n(code-region 1488 96 1488)\n(code-region 1456 24 1456)\n(code-start 1652)\n(code-start 1932)\n(code-start 1600)\n(code-start 1876)\n(entry-point 1600)\n(external-reference 69576 _ITM_deregisterTMCloneTable)\n(external-reference 69584 __cxa_finalize)\n(external-reference 69600 __gmon_start__)\n(external-reference 69624 _ITM_registerTMCloneTable)\n(external-reference 69536 __libc_start_main)\n(external-reference 69544 __cxa_finalize)\n(external-reference 69552 __gmon_start__)\n(external-reference 69560 abort)\n(format elf)\n(is-executable true)\n(is-little-endian true)\n(llvm:base-address 0)\n(llvm:code-entry abort 0 0)\n(llvm:code-entry __cxa_finalize 0 0)\n(llvm:code-entry __libc_start_main 0 0)\n(llvm:code-entry _init 1456 0)\n(llvm:code-entry main 1876 56)\n(llvm:code-entry _start 1600 52)\n(llvm:code-entry abort@GLIBC_2.17 0 0)\n(llvm:code-entry get_two 1932 8)\n(llvm:code-entry _fini 1940 0)\n(llvm:code-entry __cxa_finalize@GLIBC_2.17 0 0)\n(llvm:code-entry __libc_start_main@GLIBC_2.34 0 0)\n(llvm:code-entry frame_dummy 1872 0)\n(llvm:code-entry __do_global_dtors_aux 1792 0)\n(llvm:code-entry register_tm_clones 1728 0)\n(llvm:code-entry deregister_tm_clones 1680 0)\n(llvm:code-entry call_weak_fn 1652 20)\n(llvm:code-entry .fini 1940 20)\n(llvm:code-entry .text 1600 340)\n(llvm:code-entry .plt 1488 96)\n(llvm:code-entry .init 1456 24)\n(llvm:elf-program-header 08 3464 632)\n(llvm:elf-program-header 07 0 0)\n(llvm:elf-program-header 06 1964 68)\n(llvm:elf-program-header 05 596 68)\n(llvm:elf-program-header 04 3480 496)\n(llvm:elf-program-header 03 3464 648)\n(llvm:elf-program-header 02 0 2224)\n(llvm:elf-program-header 01 568 27)\n(llvm:elf-program-header 00 64 504)\n(llvm:elf-program-header-flags 08 false true false false)\n(llvm:elf-program-header-flags 07 false true true false)\n(llvm:elf-program-header-flags 06 false true false false)\n(llvm:elf-program-header-flags 05 false true false false)\n(llvm:elf-program-header-flags 04 false true true false)\n(llvm:elf-program-header-flags 03 true true true false)\n(llvm:elf-program-header-flags 02 true true false true)\n(llvm:elf-program-header-flags 01 false true false false)\n(llvm:elf-program-header-flags 00 false true false false)\n(llvm:elf-virtual-program-header 08 69000 632)\n(llvm:elf-virtual-program-header 07 0 0)\n(llvm:elf-virtual-program-header 06 1964 68)\n(llvm:elf-virtual-program-header 05 596 68)\n(llvm:elf-virtual-program-header 04 69016 496)\n(llvm:elf-virtual-program-header 03 69000 664)\n(llvm:elf-virtual-program-header 02 0 2224)\n(llvm:elf-virtual-program-header 01 568 27)\n(llvm:elf-virtual-program-header 00 64 504)\n(llvm:entry-point 1600)\n(llvm:name-reference 69560 abort)\n(llvm:name-reference 69552 __gmon_start__)\n(llvm:name-reference 69544 __cxa_finalize)\n(llvm:name-reference 69536 __libc_start_main)\n(llvm:name-reference 69624 _ITM_registerTMCloneTable)\n(llvm:name-reference 69600 __gmon_start__)\n(llvm:name-reference 69584 __cxa_finalize)\n(llvm:name-reference 69576 _ITM_deregisterTMCloneTable)\n(llvm:section-entry .shstrtab 0 250 6872)\n(llvm:section-entry .strtab 0 552 6320)\n(llvm:section-entry .symtab 0 2160 4160)\n(llvm:section-entry .comment 0 43 4112)\n(llvm:section-entry .bss 69648 16 4112)\n(llvm:section-entry .data 69632 16 4096)\n(llvm:section-entry .got 69512 120 3976)\n(llvm:section-entry .dynamic 69016 496 3480)\n(llvm:section-entry .fini_array 69008 8 3472)\n(llvm:section-entry .init_array 69000 8 3464)\n(llvm:section-entry .eh_frame 2032 192 2032)\n(llvm:section-entry .eh_frame_hdr 1964 68 1964)\n(llvm:section-entry .rodata 1960 4 1960)\n(llvm:section-entry .fini 1940 20 1940)\n(llvm:section-entry .text 1600 340 1600)\n(llvm:section-entry .plt 1488 96 1488)\n(llvm:section-entry .init 1456 24 1456)\n(llvm:section-entry .rela.plt 1360 96 1360)\n(llvm:section-entry .rela.dyn 1120 240 1120)\n(llvm:section-entry .gnu.version_r 1072 48 1072)\n(llvm:section-entry .gnu.version 1054 18 1054)\n(llvm:section-entry .dynstr 912 141 912)\n(llvm:section-entry .dynsym 696 216 696)\n(llvm:section-entry .gnu.hash 664 28 664)\n(llvm:section-entry .note.ABI-tag 632 32 632)\n(llvm:section-entry .note.gnu.build-id 596 36 596)\n(llvm:section-entry .interp 568 27 568)\n(llvm:section-flags .shstrtab true false false)\n(llvm:section-flags .strtab true false false)\n(llvm:section-flags .symtab true false false)\n(llvm:section-flags .comment true false false)\n(llvm:section-flags .bss true true false)\n(llvm:section-flags .data true true false)\n(llvm:section-flags .got true true false)\n(llvm:section-flags .dynamic true true false)\n(llvm:section-flags .fini_array true true false)\n(llvm:section-flags .init_array true true false)\n(llvm:section-flags .eh_frame true false false)\n(llvm:section-flags .eh_frame_hdr true false false)\n(llvm:section-flags .rodata true false false)\n(llvm:section-flags .fini true false true)\n(llvm:section-flags .text true false true)\n(llvm:section-flags .plt true false true)\n(llvm:section-flags .init true false true)\n(llvm:section-flags .rela.plt true false false)\n(llvm:section-flags .rela.dyn true false false)\n(llvm:section-flags .gnu.version_r true false false)\n(llvm:section-flags .gnu.version true false false)\n(llvm:section-flags .dynstr true false false)\n(llvm:section-flags .dynsym true false false)\n(llvm:section-flags .gnu.hash true false false)\n(llvm:section-flags .note.ABI-tag true false false)\n(llvm:section-flags .note.gnu.build-id true false false)\n(llvm:section-flags .interp true false false)\n(llvm:symbol-entry abort 0 0 0 0)\n(llvm:symbol-entry __cxa_finalize 0 0 0 0)\n(llvm:symbol-entry __libc_start_main 0 0 0 0)\n(llvm:symbol-entry _init 1456 0 1456 1456)\n(llvm:symbol-entry main 1876 56 1876 1876)\n(llvm:symbol-entry _start 1600 52 1600 1600)\n(llvm:symbol-entry abort@GLIBC_2.17 0 0 0 0)\n(llvm:symbol-entry get_two 1932 8 1932 1932)\n(llvm:symbol-entry _fini 1940 0 1940 1940)\n(llvm:symbol-entry __cxa_finalize@GLIBC_2.17 0 0 0 0)\n(llvm:symbol-entry __libc_start_main@GLIBC_2.34 0 0 0 0)\n(llvm:symbol-entry frame_dummy 1872 0 1872 1872)\n(llvm:symbol-entry __do_global_dtors_aux 1792 0 1792 1792)\n(llvm:symbol-entry register_tm_clones 1728 0 1728 1728)\n(llvm:symbol-entry deregister_tm_clones 1680 0 1680 1680)\n(llvm:symbol-entry call_weak_fn 1652 20 1652 1652)\n(mapped 0 2224 0)\n(mapped 69000 648 3464)\n(named-region 0 2224 02)\n(named-region 69000 664 03)\n(named-region 568 27 .interp)\n(named-region 596 36 .note.gnu.build-id)\n(named-region 632 32 .note.ABI-tag)\n(named-region 664 28 .gnu.hash)\n(named-region 696 216 .dynsym)\n(named-region 912 141 .dynstr)\n(named-region 1054 18 .gnu.version)\n(named-region 1072 48 .gnu.version_r)\n(named-region 1120 240 .rela.dyn)\n(named-region 1360 96 .rela.plt)\n(named-region 1456 24 .init)\n(named-region 1488 96 .plt)\n(named-region 1600 340 .text)\n(named-region 1940 20 .fini)\n(named-region 1960 4 .rodata)\n(named-region 1964 68 .eh_frame_hdr)\n(named-region 2032 192 .eh_frame)\n(named-region 69000 8 .init_array)\n(named-region 69008 8 .fini_array)\n(named-region 69016 496 .dynamic)\n(named-region 69512 120 .got)\n(named-region 69632 16 .data)\n(named-region 69648 16 .bss)\n(named-region 0 43 .comment)\n(named-region 0 2160 .symtab)\n(named-region 0 552 .strtab)\n(named-region 0 250 .shstrtab)\n(named-symbol 1652 call_weak_fn)\n(named-symbol 1680 deregister_tm_clones)\n(named-symbol 1728 register_tm_clones)\n(named-symbol 1792 __do_global_dtors_aux)\n(named-symbol 1872 frame_dummy)\n(named-symbol 0 __libc_start_main@GLIBC_2.34)\n(named-symbol 0 __cxa_finalize@GLIBC_2.17)\n(named-symbol 1940 _fini)\n(named-symbol 1932 get_two)\n(named-symbol 0 abort@GLIBC_2.17)\n(named-symbol 1600 _start)\n(named-symbol 1876 main)\n(named-symbol 1456 _init)\n(named-symbol 0 __libc_start_main)\n(named-symbol 0 __cxa_finalize)\n(named-symbol 0 abort)\n(require libc.so.6)\n(section 568 27)\n(section 596 36)\n(section 632 32)\n(section 664 28)\n(section 696 216)\n(section 912 141)\n(section 1054 18)\n(section 1072 48)\n(section 1120 240)\n(section 1360 96)\n(section 1456 24)\n(section 1488 96)\n(section 1600 340)\n(section 1940 20)\n(section 1960 4)\n(section 1964 68)\n(section 2032 192)\n(section 69000 8)\n(section 69008 8)\n(section 69016 496)\n(section 69512 120)\n(section 69632 16)\n(section 69648 16)\n(section 0 43)\n(section 0 2160)\n(section 0 552)\n(section 0 250)\n(segment 0 2224 true false true)\n(segment 69000 664 true true false)\n(subarch v8)\n(symbol-chunk 1652 20 1652)\n(symbol-chunk 1932 8 1932)\n(symbol-chunk 1600 52 1600)\n(symbol-chunk 1876 56 1876)\n(symbol-value 1652 1652)\n(symbol-value 1680 1680)\n(symbol-value 1728 1728)\n(symbol-value 1792 1792)\n(symbol-value 1872 1872)\n(symbol-value 1940 1940)\n(symbol-value 1932 1932)\n(symbol-value 1600 1600)\n(symbol-value 1876 1876)\n(symbol-value 1456 1456)\n(symbol-value 0 0)\n(system \"\")\n(vendor \"\")\n"), -Attr("abi-name","\"aarch64-linux-gnu-elf\"")]), -Sections([Section(".shstrtab", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x40\x06\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xd8\x1b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x38\x00\x09\x00\x40\x00\x1c\x00\x1b\x00\x06\x00\x00\x00\x04\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x04\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xb0\x08\x00\x00\x00\x00\x00\x00\xb0\x08\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x01\x00\x00\x00\x06\x00\x00\x00\x88\x0d\x00\x00\x00\x00\x00\x00\x88\x0d"), -Section(".strtab", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x40\x06\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xd8\x1b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x38\x00\x09\x00\x40\x00\x1c\x00\x1b\x00\x06\x00\x00\x00\x04\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x04\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xb0\x08\x00\x00\x00\x00\x00\x00\xb0\x08\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x01\x00\x00\x00\x06\x00\x00\x00\x88\x0d\x00\x00\x00\x00\x00\x00\x88\x0d\x01\x00\x00\x00\x00\x00\x88\x0d\x01\x00\x00\x00\x00\x00\x88\x02\x00\x00\x00\x00\x00\x00\x98\x02\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x02\x00\x00\x00\x06\x00\x00\x00\x98\x0d\x00\x00\x00\x00\x00\x00\x98\x0d\x01\x00\x00\x00\x00\x00\x98\x0d\x01\x00\x00\x00\x00\x00\xf0\x01\x00\x00\x00\x00\x00\x00\xf0\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x04\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x50\xe5\x74\x64\x04\x00\x00\x00\xac\x07\x00\x00\x00\x00\x00\x00\xac\x07\x00\x00\x00\x00\x00\x00\xac\x07\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x51\xe5\x74\x64\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x52\xe5\x74\x64\x04\x00\x00\x00\x88\x0d\x00\x00\x00\x00\x00\x00\x88\x0d\x01\x00\x00\x00\x00\x00\x88\x0d\x01\x00\x00\x00\x00\x00\x78\x02\x00\x00\x00\x00\x00\x00"), -Section(".symtab", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x40\x06\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xd8\x1b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x38\x00\x09\x00\x40\x00\x1c\x00\x1b\x00\x06\x00\x00\x00\x04\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x04\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xb0\x08\x00\x00\x00\x00\x00\x00\xb0\x08\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x01\x00\x00\x00\x06\x00\x00\x00\x88\x0d\x00\x00\x00\x00\x00\x00\x88\x0d\x01\x00\x00\x00\x00\x00\x88\x0d\x01\x00\x00\x00\x00\x00\x88\x02\x00\x00\x00\x00\x00\x00\x98\x02\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x02\x00\x00\x00\x06\x00\x00\x00\x98\x0d\x00\x00\x00\x00\x00\x00\x98\x0d\x01\x00\x00\x00\x00\x00\x98\x0d\x01\x00\x00\x00\x00\x00\xf0\x01\x00\x00\x00\x00\x00\x00\xf0\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x04\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x50\xe5\x74\x64\x04\x00\x00\x00\xac\x07\x00\x00\x00\x00\x00\x00\xac\x07\x00\x00\x00\x00\x00\x00\xac\x07\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x51\xe5\x74\x64\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x52\xe5\x74\x64\x04\x00\x00\x00\x88\x0d\x00\x00\x00\x00\x00\x00\x88\x0d\x01\x00\x00\x00\x00\x00\x88\x0d\x01\x00\x00\x00\x00\x00\x78\x02\x00\x00\x00\x00\x00\x00\x78\x02\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x2f\x6c\x69\x62\x2f\x6c\x64\x2d\x6c\x69\x6e\x75\x78\x2d\x61\x61\x72\x63\x68\x36\x34\x2e\x73\x6f\x2e\x31\x00\x00\x04\x00\x00\x00\x14\x00\x00\x00\x03\x00\x00\x00\x47\x4e\x55\x00\xf7\x98\x27\x5e\xf8\x61\xe1\x3b\xc7\xbd\xab\x4f\xda\xea\x42\x36\xb4\x08\x11\xcd\x04\x00\x00\x00\x10\x00\x00\x00\x01\x00\x00\x00\x47\x4e\x55\x00\x00\x00\x00\x00\x03\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x01\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x0b\x00\xb0\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x16\x00\x00\x10\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x48\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x22\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x22\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x73\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5f\x5f\x63\x78\x61\x5f\x66\x69\x6e\x61\x6c\x69\x7a\x65\x00\x5f\x5f\x6c\x69\x62\x63\x5f\x73\x74\x61\x72\x74\x5f\x6d\x61\x69\x6e\x00\x61\x62\x6f\x72\x74\x00\x6c\x69\x62\x63\x2e\x73\x6f\x2e\x36\x00\x47\x4c\x49\x42\x43\x5f\x32\x2e\x31\x37\x00\x47\x4c\x49\x42\x43\x5f\x32\x2e\x33\x34\x00\x5f\x49\x54\x4d\x5f\x64\x65\x72\x65\x67\x69\x73\x74\x65\x72\x54\x4d\x43\x6c\x6f\x6e\x65\x54\x61\x62\x6c\x65\x00\x5f\x5f\x67\x6d\x6f\x6e\x5f\x73\x74\x61\x72\x74\x5f\x5f\x00\x5f\x49\x54\x4d\x5f\x72\x65\x67\x69\x73\x74\x65\x72\x54\x4d\x43\x6c\x6f\x6e\x65\x54\x61\x62\x6c\x65\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x01\x00\x03\x00\x01\x00\x03\x00\x01\x00\x01\x00\x02\x00\x28\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x97\x91\x96\x06\x00\x00\x03\x00\x32\x00\x00\x00\x10\x00\x00\x00\xb4\x91\x96\x06\x00\x00\x02\x00\x3d\x00\x00\x00\x00\x00\x00\x00\x88\x0d\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x50\x07\x00\x00\x00\x00\x00\x00\x90\x0d\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\xd8\x0f\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x14\x10\x01\x00\x00\x00\x00\x00\xe8\x0f\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x18\x10\x01\x00\x00\x00\x00\x00\xf0\x0f\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x54\x07\x00\x00\x00\x00\x00\x00\x08\x10\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x08\x10\x01\x00\x00\x00\x00\x00\xc8\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xd0\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe0\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xf8\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xa0\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xa8\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xb0\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xb8\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1f\x20\x03\xd5\xfd\x7b\xbf\xa9\xfd\x03\x00\x91\x2e\x00\x00\x94\xfd\x7b\xc1\xa8\xc0\x03\x5f\xd6\x00\x00\x00\x00\x00\x00\x00\x00\xf0\x7b\xbf\xa9\x90\x00\x00\x90\x11\xce\x47\xf9\x10\x62\x3e\x91\x20\x02\x1f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x90\x00\x00\x90\x11\xd2\x47\xf9\x10\x82\x3e\x91\x20\x02\x1f\xd6\x90\x00\x00\x90\x11\xd6\x47\xf9\x10\xa2\x3e\x91\x20\x02\x1f\xd6\x90\x00\x00\x90\x11\xda\x47\xf9\x10\xc2\x3e\x91\x20\x02\x1f\xd6\x90\x00\x00\x90\x11\xde\x47\xf9\x10\xe2\x3e\x91\x20\x02\x1f\xd6\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1f\x20\x03\xd5\x1d\x00\x80\xd2\x1e\x00\x80\xd2\xe5\x03\x00\xaa\xe1\x03\x40\xf9\xe2\x23\x00\x91\xe6\x03\x00\x91\x80\x00\x00\x90\x00\xf8\x47\xf9\x03\x00\x80\xd2\x04\x00\x80\xd2\xe1\xff\xff\x97\xec\xff\xff\x97\x80\x00\x00\x90\x00\xf0\x47\xf9\x40\x00\x00\xb4\xe4\xff\xff\x17\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x80\x00\x00\xb0\x00\x40\x00\x91\x81\x00\x00\xb0\x21\x40\x00\x91\x3f\x00\x00\xeb\xc0\x00\x00\x54\x81\x00\x00\x90\x21\xe4\x47\xf9\x61\x00\x00\xb4\xf0\x03\x01\xaa\x00\x02\x1f\xd6\xc0\x03\x5f\xd6\x80\x00\x00\xb0\x00\x40\x00\x91\x81\x00\x00\xb0\x21\x40\x00\x91\x21\x00\x00\xcb\x22\xfc\x7f\xd3\x41\x0c\x81\x8b\x21\xfc\x41\x93\xc1\x00\x00\xb4\x82\x00\x00\x90\x42\xfc\x47\xf9\x62\x00\x00\xb4\xf0\x03\x02\xaa\x00\x02\x1f\xd6\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\xfd\x7b\xbe\xa9\xfd\x03\x00\x91\xf3\x0b\x00\xf9\x93\x00\x00\xb0\x60\x42\x40\x39\x40\x01\x00\x35\x80\x00\x00\x90\x00\xe8\x47\xf9\x80\x00\x00\xb4\x80\x00\x00\xb0\x00\x04\x40\xf9\xb5\xff\xff\x97\xd8\xff\xff\x97\x20\x00\x80\x52\x60\x42\x00\x39\xf3\x0b\x40\xf9\xfd\x7b\xc2\xa8\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\xdc\xff\xff\x17\xfd\x7b\xbf\xa9\xfd\x03\x00\x91\x80\x00\x00\x90\x00\xec\x47\xf9\x21\x00\x80\x52\x01\x00\x00\xb9\x08\x00\x00\x94\xe1\x03\x00\x2a\x80\x00\x00\x90\x00\xf4\x47\xf9\x01\x00\x00\xb9\x00\x00\x80\x52\xfd\x7b\xc1\xa8\xc0\x03\x5f\xd6\x40\x00\x80\x52\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\xfd\x7b\xbf\xa9\xfd\x03\x00\x91\xfd\x7b\xc1\xa8\xc0\x03\x5f\xd6\x01\x00\x02\x00\x01\x1b\x03\x3b\x40\x00\x00\x00\x07\x00\x00\x00\x94\xfe\xff\xff\x58\x00\x00\x00\xe4\xfe\xff\xff\x6c\x00\x00\x00\x14\xff\xff\xff\x80\x00\x00\x00\x54\xff\xff\xff\x94\x00\x00\x00\xa4\xff\xff\xff\xb8\x00\x00\x00\xa8\xff\xff\xff\xcc\x00\x00\x00\xe0\xff\xff\xff\xec\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x01\x7a\x52\x00\x04\x78\x1e\x01\x1b\x0c\x1f\x00\x10\x00\x00\x00\x18\x00\x00\x00\x34\xfe\xff\xff\x34\x00\x00\x00\x00\x41\x07\x1e\x10\x00\x00\x00\x2c\x00\x00\x00\x70\xfe\xff\xff\x30\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x40\x00\x00\x00\x8c\xfe\xff\xff\x3c\x00\x00\x00\x00\x00\x00\x00\x20\x00\x00\x00\x54\x00\x00\x00\xb8\xfe\xff\xff\x48\x00\x00\x00\x00\x41\x0e\x20\x9d\x04\x9e\x03\x42\x93\x02\x4e\xde\xdd\xd3\x0e\x00\x00\x00\x00\x10\x00\x00\x00\x78\x00\x00\x00\xe4\xfe\xff\xff"), -Section(".comment", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x40\x06\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xd8\x1b\x00"), -Section(".interp", 0x238, "\x2f\x6c\x69\x62\x2f\x6c\x64\x2d\x6c\x69\x6e\x75\x78\x2d\x61\x61\x72\x63\x68\x36\x34\x2e\x73\x6f\x2e\x31\x00"), -Section(".note.gnu.build-id", 0x254, "\x04\x00\x00\x00\x14\x00\x00\x00\x03\x00\x00\x00\x47\x4e\x55\x00\xf7\x98\x27\x5e\xf8\x61\xe1\x3b\xc7\xbd\xab\x4f\xda\xea\x42\x36\xb4\x08\x11\xcd"), -Section(".note.ABI-tag", 0x278, "\x04\x00\x00\x00\x10\x00\x00\x00\x01\x00\x00\x00\x47\x4e\x55\x00\x00\x00\x00\x00\x03\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00"), -Section(".gnu.hash", 0x298, "\x01\x00\x00\x00\x01\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".dynsym", 0x2B8, "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x0b\x00\xb0\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x16\x00\x00\x10\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x48\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x22\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x22\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x73\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".dynstr", 0x390, "\x00\x5f\x5f\x63\x78\x61\x5f\x66\x69\x6e\x61\x6c\x69\x7a\x65\x00\x5f\x5f\x6c\x69\x62\x63\x5f\x73\x74\x61\x72\x74\x5f\x6d\x61\x69\x6e\x00\x61\x62\x6f\x72\x74\x00\x6c\x69\x62\x63\x2e\x73\x6f\x2e\x36\x00\x47\x4c\x49\x42\x43\x5f\x32\x2e\x31\x37\x00\x47\x4c\x49\x42\x43\x5f\x32\x2e\x33\x34\x00\x5f\x49\x54\x4d\x5f\x64\x65\x72\x65\x67\x69\x73\x74\x65\x72\x54\x4d\x43\x6c\x6f\x6e\x65\x54\x61\x62\x6c\x65\x00\x5f\x5f\x67\x6d\x6f\x6e\x5f\x73\x74\x61\x72\x74\x5f\x5f\x00\x5f\x49\x54\x4d\x5f\x72\x65\x67\x69\x73\x74\x65\x72\x54\x4d\x43\x6c\x6f\x6e\x65\x54\x61\x62\x6c\x65\x00"), -Section(".gnu.version", 0x41E, "\x00\x00\x00\x00\x00\x00\x02\x00\x01\x00\x03\x00\x01\x00\x03\x00\x01\x00"), -Section(".gnu.version_r", 0x430, "\x01\x00\x02\x00\x28\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x97\x91\x96\x06\x00\x00\x03\x00\x32\x00\x00\x00\x10\x00\x00\x00\xb4\x91\x96\x06\x00\x00\x02\x00\x3d\x00\x00\x00\x00\x00\x00\x00"), -Section(".rela.dyn", 0x460, "\x88\x0d\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x50\x07\x00\x00\x00\x00\x00\x00\x90\x0d\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\xd8\x0f\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x14\x10\x01\x00\x00\x00\x00\x00\xe8\x0f\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x18\x10\x01\x00\x00\x00\x00\x00\xf0\x0f\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x54\x07\x00\x00\x00\x00\x00\x00\x08\x10\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x08\x10\x01\x00\x00\x00\x00\x00\xc8\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xd0\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe0\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xf8\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".rela.plt", 0x550, "\xa0\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xa8\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xb0\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xb8\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".init", 0x5B0, "\x1f\x20\x03\xd5\xfd\x7b\xbf\xa9\xfd\x03\x00\x91\x2e\x00\x00\x94\xfd\x7b\xc1\xa8\xc0\x03\x5f\xd6"), -Section(".plt", 0x5D0, "\xf0\x7b\xbf\xa9\x90\x00\x00\x90\x11\xce\x47\xf9\x10\x62\x3e\x91\x20\x02\x1f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x90\x00\x00\x90\x11\xd2\x47\xf9\x10\x82\x3e\x91\x20\x02\x1f\xd6\x90\x00\x00\x90\x11\xd6\x47\xf9\x10\xa2\x3e\x91\x20\x02\x1f\xd6\x90\x00\x00\x90\x11\xda\x47\xf9\x10\xc2\x3e\x91\x20\x02\x1f\xd6\x90\x00\x00\x90\x11\xde\x47\xf9\x10\xe2\x3e\x91\x20\x02\x1f\xd6"), -Section(".text", 0x640, "\x1f\x20\x03\xd5\x1d\x00\x80\xd2\x1e\x00\x80\xd2\xe5\x03\x00\xaa\xe1\x03\x40\xf9\xe2\x23\x00\x91\xe6\x03\x00\x91\x80\x00\x00\x90\x00\xf8\x47\xf9\x03\x00\x80\xd2\x04\x00\x80\xd2\xe1\xff\xff\x97\xec\xff\xff\x97\x80\x00\x00\x90\x00\xf0\x47\xf9\x40\x00\x00\xb4\xe4\xff\xff\x17\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x80\x00\x00\xb0\x00\x40\x00\x91\x81\x00\x00\xb0\x21\x40\x00\x91\x3f\x00\x00\xeb\xc0\x00\x00\x54\x81\x00\x00\x90\x21\xe4\x47\xf9\x61\x00\x00\xb4\xf0\x03\x01\xaa\x00\x02\x1f\xd6\xc0\x03\x5f\xd6\x80\x00\x00\xb0\x00\x40\x00\x91\x81\x00\x00\xb0\x21\x40\x00\x91\x21\x00\x00\xcb\x22\xfc\x7f\xd3\x41\x0c\x81\x8b\x21\xfc\x41\x93\xc1\x00\x00\xb4\x82\x00\x00\x90\x42\xfc\x47\xf9\x62\x00\x00\xb4\xf0\x03\x02\xaa\x00\x02\x1f\xd6\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\xfd\x7b\xbe\xa9\xfd\x03\x00\x91\xf3\x0b\x00\xf9\x93\x00\x00\xb0\x60\x42\x40\x39\x40\x01\x00\x35\x80\x00\x00\x90\x00\xe8\x47\xf9\x80\x00\x00\xb4\x80\x00\x00\xb0\x00\x04\x40\xf9\xb5\xff\xff\x97\xd8\xff\xff\x97\x20\x00\x80\x52\x60\x42\x00\x39\xf3\x0b\x40\xf9\xfd\x7b\xc2\xa8\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\xdc\xff\xff\x17\xfd\x7b\xbf\xa9\xfd\x03\x00\x91\x80\x00\x00\x90\x00\xec\x47\xf9\x21\x00\x80\x52\x01\x00\x00\xb9\x08\x00\x00\x94\xe1\x03\x00\x2a\x80\x00\x00\x90\x00\xf4\x47\xf9\x01\x00\x00\xb9\x00\x00\x80\x52\xfd\x7b\xc1\xa8\xc0\x03\x5f\xd6\x40\x00\x80\x52\xc0\x03\x5f\xd6"), -Section(".fini", 0x794, "\x1f\x20\x03\xd5\xfd\x7b\xbf\xa9\xfd\x03\x00\x91\xfd\x7b\xc1\xa8\xc0\x03\x5f\xd6"), -Section(".rodata", 0x7A8, "\x01\x00\x02\x00"), -Section(".eh_frame_hdr", 0x7AC, "\x01\x1b\x03\x3b\x40\x00\x00\x00\x07\x00\x00\x00\x94\xfe\xff\xff\x58\x00\x00\x00\xe4\xfe\xff\xff\x6c\x00\x00\x00\x14\xff\xff\xff\x80\x00\x00\x00\x54\xff\xff\xff\x94\x00\x00\x00\xa4\xff\xff\xff\xb8\x00\x00\x00\xa8\xff\xff\xff\xcc\x00\x00\x00\xe0\xff\xff\xff\xec\x00\x00\x00"), -Section(".eh_frame", 0x7F0, "\x10\x00\x00\x00\x00\x00\x00\x00\x01\x7a\x52\x00\x04\x78\x1e\x01\x1b\x0c\x1f\x00\x10\x00\x00\x00\x18\x00\x00\x00\x34\xfe\xff\xff\x34\x00\x00\x00\x00\x41\x07\x1e\x10\x00\x00\x00\x2c\x00\x00\x00\x70\xfe\xff\xff\x30\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x40\x00\x00\x00\x8c\xfe\xff\xff\x3c\x00\x00\x00\x00\x00\x00\x00\x20\x00\x00\x00\x54\x00\x00\x00\xb8\xfe\xff\xff\x48\x00\x00\x00\x00\x41\x0e\x20\x9d\x04\x9e\x03\x42\x93\x02\x4e\xde\xdd\xd3\x0e\x00\x00\x00\x00\x10\x00\x00\x00\x78\x00\x00\x00\xe4\xfe\xff\xff\x04\x00\x00\x00\x00\x00\x00\x00\x1c\x00\x00\x00\x8c\x00\x00\x00\xd4\xfe\xff\xff\x38\x00\x00\x00\x00\x41\x0e\x10\x9d\x02\x9e\x01\x4c\xde\xdd\x0e\x00\x00\x00\x00\x10\x00\x00\x00\xac\x00\x00\x00\xec\xfe\xff\xff\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".fini_array", 0x10D90, "\x00\x07\x00\x00\x00\x00\x00\x00"), -Section(".dynamic", 0x10D98, "\x01\x00\x00\x00\x00\x00\x00\x00\x28\x00\x00\x00\x00\x00\x00\x00\x0c\x00\x00\x00\x00\x00\x00\x00\xb0\x05\x00\x00\x00\x00\x00\x00\x0d\x00\x00\x00\x00\x00\x00\x00\x94\x07\x00\x00\x00\x00\x00\x00\x19\x00\x00\x00\x00\x00\x00\x00\x88\x0d\x01\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x1a\x00\x00\x00\x00\x00\x00\x00\x90\x0d\x01\x00\x00\x00\x00\x00\x1c\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\xf5\xfe\xff\x6f\x00\x00\x00\x00\x98\x02\x00\x00\x00\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x90\x03\x00\x00\x00\x00\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\xb8\x02\x00\x00\x00\x00\x00\x00\x0a\x00\x00\x00\x00\x00\x00\x00\x8d\x00\x00\x00\x00\x00\x00\x00\x0b\x00\x00\x00\x00\x00\x00\x00\x18\x00\x00\x00\x00\x00\x00\x00\x15\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x88\x0f\x01\x00\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x60\x00\x00\x00\x00\x00\x00\x00\x14\x00\x00\x00\x00\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x17\x00\x00\x00\x00\x00\x00\x00\x50\x05\x00\x00\x00\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x60\x04\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\xf0\x00\x00\x00\x00\x00\x00\x00\x09\x00\x00\x00\x00\x00\x00\x00\x18\x00\x00\x00\x00\x00\x00\x00\x1e\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\xfb\xff\xff\x6f\x00\x00\x00\x00\x01\x00\x00\x08\x00\x00\x00\x00\xfe\xff\xff\x6f\x00\x00\x00\x00\x30\x04\x00\x00\x00\x00\x00\x00\xff\xff\xff\x6f\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\xf0\xff\xff\x6f\x00\x00\x00\x00\x1e\x04\x00\x00\x00\x00\x00\x00\xf9\xff\xff\x6f\x00\x00\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".got", 0x10F88, "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xd0\x05\x00\x00\x00\x00\x00\x00\xd0\x05\x00\x00\x00\x00\x00\x00\xd0\x05\x00\x00\x00\x00\x00\x00\xd0\x05\x00\x00\x00\x00\x00\x00\x98\x0d\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x14\x10\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x18\x10\x01\x00\x00\x00\x00\x00\x54\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".data", 0x11000, "\x00\x00\x00\x00\x00\x00\x00\x00\x08\x10\x01\x00\x00\x00\x00\x00"), -Section(".init_array", 0x10D88, "\x50\x07\x00\x00\x00\x00\x00\x00")]), -Memmap([Annotation(Region(0x0,0x8AF), Attr("segment","02 0 2224")), -Annotation(Region(0x640,0x673), Attr("symbol","\"_start\"")), -Annotation(Region(0x0,0xF9), Attr("section","\".shstrtab\"")), -Annotation(Region(0x0,0x227), Attr("section","\".strtab\"")), -Annotation(Region(0x0,0x86F), Attr("section","\".symtab\"")), -Annotation(Region(0x0,0x2A), Attr("section","\".comment\"")), -Annotation(Region(0x238,0x252), Attr("section","\".interp\"")), -Annotation(Region(0x254,0x277), Attr("section","\".note.gnu.build-id\"")), -Annotation(Region(0x278,0x297), Attr("section","\".note.ABI-tag\"")), -Annotation(Region(0x298,0x2B3), Attr("section","\".gnu.hash\"")), -Annotation(Region(0x2B8,0x38F), Attr("section","\".dynsym\"")), -Annotation(Region(0x390,0x41C), Attr("section","\".dynstr\"")), -Annotation(Region(0x41E,0x42F), Attr("section","\".gnu.version\"")), -Annotation(Region(0x430,0x45F), Attr("section","\".gnu.version_r\"")), -Annotation(Region(0x460,0x54F), Attr("section","\".rela.dyn\"")), -Annotation(Region(0x550,0x5AF), Attr("section","\".rela.plt\"")), -Annotation(Region(0x5B0,0x5C7), Attr("section","\".init\"")), -Annotation(Region(0x5D0,0x62F), Attr("section","\".plt\"")), -Annotation(Region(0x5B0,0x5C7), Attr("code-region","()")), -Annotation(Region(0x5D0,0x62F), Attr("code-region","()")), -Annotation(Region(0x640,0x673), Attr("symbol-info","_start 0x640 52")), -Annotation(Region(0x674,0x687), Attr("symbol","\"call_weak_fn\"")), -Annotation(Region(0x674,0x687), Attr("symbol-info","call_weak_fn 0x674 20")), -Annotation(Region(0x754,0x78B), Attr("symbol","\"main\"")), -Annotation(Region(0x640,0x793), Attr("section","\".text\"")), -Annotation(Region(0x640,0x793), Attr("code-region","()")), -Annotation(Region(0x754,0x78B), Attr("symbol-info","main 0x754 56")), -Annotation(Region(0x78C,0x793), Attr("symbol","\"get_two\"")), -Annotation(Region(0x78C,0x793), Attr("symbol-info","get_two 0x78C 8")), -Annotation(Region(0x794,0x7A7), Attr("section","\".fini\"")), -Annotation(Region(0x794,0x7A7), Attr("code-region","()")), -Annotation(Region(0x7A8,0x7AB), Attr("section","\".rodata\"")), -Annotation(Region(0x7AC,0x7EF), Attr("section","\".eh_frame_hdr\"")), -Annotation(Region(0x7F0,0x8AF), Attr("section","\".eh_frame\"")), -Annotation(Region(0x10D88,0x1100F), Attr("segment","03 0x10D88 664")), -Annotation(Region(0x10D90,0x10D97), Attr("section","\".fini_array\"")), -Annotation(Region(0x10D98,0x10F87), Attr("section","\".dynamic\"")), -Annotation(Region(0x10F88,0x10FFF), Attr("section","\".got\"")), -Annotation(Region(0x11000,0x1100F), Attr("section","\".data\"")), -Annotation(Region(0x10D88,0x10D8F), Attr("section","\".init_array\""))]), -Program(Tid(1_462, "%000005b6"), Attrs([]), - Subs([Sub(Tid(1_410, "@__cxa_finalize"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x600"), -Attr("stub","()")]), "__cxa_finalize", Args([Arg(Tid(1_463, "%000005b7"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("__cxa_finalize_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(923, "@__cxa_finalize"), - Attrs([Attr("address","0x600")]), Phis([]), -Defs([Def(Tid(1_171, "%00000493"), Attrs([Attr("address","0x600"), -Attr("insn","adrp x16, #65536")]), Var("R16",Imm(64)), Int(65536,64)), -Def(Tid(1_178, "%0000049a"), Attrs([Attr("address","0x604"), -Attr("insn","ldr x17, [x16, #0xfa8]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(4008,64)),LittleEndian(),64)), -Def(Tid(1_184, "%000004a0"), Attrs([Attr("address","0x608"), -Attr("insn","add x16, x16, #0xfa8")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(4008,64)))]), Jmps([Call(Tid(1_189, "%000004a5"), - Attrs([Attr("address","0x60C"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), -Sub(Tid(1_411, "@__do_global_dtors_aux"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x700")]), - "__do_global_dtors_aux", Args([Arg(Tid(1_464, "%000005b8"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("__do_global_dtors_aux_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(654, "@__do_global_dtors_aux"), - Attrs([Attr("address","0x700")]), Phis([]), Defs([Def(Tid(658, "%00000292"), - Attrs([Attr("address","0x700"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("#3",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(18446744073709551584,64))), -Def(Tid(664, "%00000298"), Attrs([Attr("address","0x700"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("#3",Imm(64)),Var("R29",Imm(64)),LittleEndian(),64)), -Def(Tid(670, "%0000029e"), Attrs([Attr("address","0x700"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("#3",Imm(64)),Int(8,64)),Var("R30",Imm(64)),LittleEndian(),64)), -Def(Tid(674, "%000002a2"), Attrs([Attr("address","0x700"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("R31",Imm(64)), -Var("#3",Imm(64))), Def(Tid(680, "%000002a8"), - Attrs([Attr("address","0x704"), Attr("insn","mov x29, sp")]), - Var("R29",Imm(64)), Var("R31",Imm(64))), Def(Tid(688, "%000002b0"), - Attrs([Attr("address","0x708"), Attr("insn","str x19, [sp, #0x10]")]), - Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(16,64)),Var("R19",Imm(64)),LittleEndian(),64)), -Def(Tid(693, "%000002b5"), Attrs([Attr("address","0x70C"), -Attr("insn","adrp x19, #69632")]), Var("R19",Imm(64)), Int(69632,64)), -Def(Tid(700, "%000002bc"), Attrs([Attr("address","0x710"), -Attr("insn","ldrb w0, [x19, #0x10]")]), Var("R0",Imm(64)), -UNSIGNED(64,Load(Var("mem",Mem(64,8)),PLUS(Var("R19",Imm(64)),Int(16,64)),LittleEndian(),8)))]), -Jmps([Goto(Tid(707, "%000002c3"), Attrs([Attr("address","0x714"), -Attr("insn","cbnz w0, #0x28")]), - NEQ(Extract(31,0,Var("R0",Imm(64))),Int(0,32)), -Direct(Tid(705, "%000002c1"))), Goto(Tid(1_452, "%000005ac"), Attrs([]), - Int(1,1), Direct(Tid(868, "%00000364")))])), Blk(Tid(868, "%00000364"), - Attrs([Attr("address","0x718")]), Phis([]), Defs([Def(Tid(871, "%00000367"), - Attrs([Attr("address","0x718"), Attr("insn","adrp x0, #65536")]), - Var("R0",Imm(64)), Int(65536,64)), Def(Tid(878, "%0000036e"), - Attrs([Attr("address","0x71C"), Attr("insn","ldr x0, [x0, #0xfd0]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(4048,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(884, "%00000374"), Attrs([Attr("address","0x720"), -Attr("insn","cbz x0, #0x10")]), EQ(Var("R0",Imm(64)),Int(0,64)), -Direct(Tid(882, "%00000372"))), Goto(Tid(1_453, "%000005ad"), Attrs([]), - Int(1,1), Direct(Tid(907, "%0000038b")))])), Blk(Tid(907, "%0000038b"), - Attrs([Attr("address","0x724")]), Phis([]), Defs([Def(Tid(910, "%0000038e"), - Attrs([Attr("address","0x724"), Attr("insn","adrp x0, #69632")]), - Var("R0",Imm(64)), Int(69632,64)), Def(Tid(917, "%00000395"), - Attrs([Attr("address","0x728"), Attr("insn","ldr x0, [x0, #0x8]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(922, "%0000039a"), Attrs([Attr("address","0x72C"), -Attr("insn","bl #-0x12c")]), Var("R30",Imm(64)), Int(1840,64))]), -Jmps([Call(Tid(925, "%0000039d"), Attrs([Attr("address","0x72C"), -Attr("insn","bl #-0x12c")]), Int(1,1), -(Direct(Tid(1_410, "@__cxa_finalize")),Direct(Tid(882, "%00000372"))))])), -Blk(Tid(882, "%00000372"), Attrs([Attr("address","0x730")]), Phis([]), -Defs([Def(Tid(890, "%0000037a"), Attrs([Attr("address","0x730"), -Attr("insn","bl #-0xa0")]), Var("R30",Imm(64)), Int(1844,64))]), -Jmps([Call(Tid(892, "%0000037c"), Attrs([Attr("address","0x730"), -Attr("insn","bl #-0xa0")]), Int(1,1), -(Direct(Tid(1_424, "@deregister_tm_clones")),Direct(Tid(894, "%0000037e"))))])), -Blk(Tid(894, "%0000037e"), Attrs([Attr("address","0x734")]), Phis([]), -Defs([Def(Tid(897, "%00000381"), Attrs([Attr("address","0x734"), -Attr("insn","mov w0, #0x1")]), Var("R0",Imm(64)), Int(1,64)), -Def(Tid(905, "%00000389"), Attrs([Attr("address","0x738"), -Attr("insn","strb w0, [x19, #0x10]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R19",Imm(64)),Int(16,64)),Extract(7,0,Var("R0",Imm(64))),LittleEndian(),8))]), -Jmps([Goto(Tid(1_454, "%000005ae"), Attrs([]), Int(1,1), -Direct(Tid(705, "%000002c1")))])), Blk(Tid(705, "%000002c1"), - Attrs([Attr("address","0x73C")]), Phis([]), Defs([Def(Tid(715, "%000002cb"), - Attrs([Attr("address","0x73C"), Attr("insn","ldr x19, [sp, #0x10]")]), - Var("R19",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(16,64)),LittleEndian(),64)), -Def(Tid(722, "%000002d2"), Attrs([Attr("address","0x740"), -Attr("insn","ldp x29, x30, [sp], #0x20")]), Var("R29",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(727, "%000002d7"), Attrs([Attr("address","0x740"), -Attr("insn","ldp x29, x30, [sp], #0x20")]), Var("R30",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(731, "%000002db"), Attrs([Attr("address","0x740"), -Attr("insn","ldp x29, x30, [sp], #0x20")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(32,64)))]), Jmps([Call(Tid(736, "%000002e0"), - Attrs([Attr("address","0x744"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), Sub(Tid(1_415, "@__libc_start_main"), - Attrs([Attr("c.proto","signed (*)(signed (*)(signed , char** , char** );* main, signed , char** , \nvoid* auxv)"), -Attr("address","0x5F0"), Attr("stub","()")]), "__libc_start_main", - Args([Arg(Tid(1_465, "%000005b9"), - Attrs([Attr("c.layout","**[ : 64]"), -Attr("c.data","Top:u64 ptr ptr"), -Attr("c.type","signed (*)(signed , char** , char** );*")]), - Var("__libc_start_main_main",Imm(64)), Var("R0",Imm(64)), In()), -Arg(Tid(1_466, "%000005ba"), Attrs([Attr("c.layout","[signed : 32]"), -Attr("c.data","Top:u32"), Attr("c.type","signed")]), - Var("__libc_start_main_arg2",Imm(32)), LOW(32,Var("R1",Imm(64))), In()), -Arg(Tid(1_467, "%000005bb"), Attrs([Attr("c.layout","**[char : 8]"), -Attr("c.data","Top:u8 ptr ptr"), Attr("c.type","char**")]), - Var("__libc_start_main_arg3",Imm(64)), Var("R2",Imm(64)), Both()), -Arg(Tid(1_468, "%000005bc"), Attrs([Attr("c.layout","*[ : 8]"), -Attr("c.data","{} ptr"), Attr("c.type","void*")]), - Var("__libc_start_main_auxv",Imm(64)), Var("R3",Imm(64)), Both()), -Arg(Tid(1_469, "%000005bd"), Attrs([Attr("c.layout","[signed : 32]"), -Attr("c.data","Top:u32"), Attr("c.type","signed")]), - Var("__libc_start_main_result",Imm(32)), LOW(32,Var("R0",Imm(64))), -Out())]), Blks([Blk(Tid(487, "@__libc_start_main"), - Attrs([Attr("address","0x5F0")]), Phis([]), -Defs([Def(Tid(1_149, "%0000047d"), Attrs([Attr("address","0x5F0"), -Attr("insn","adrp x16, #65536")]), Var("R16",Imm(64)), Int(65536,64)), -Def(Tid(1_156, "%00000484"), Attrs([Attr("address","0x5F4"), -Attr("insn","ldr x17, [x16, #0xfa0]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(4000,64)),LittleEndian(),64)), -Def(Tid(1_162, "%0000048a"), Attrs([Attr("address","0x5F8"), -Attr("insn","add x16, x16, #0xfa0")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(4000,64)))]), Jmps([Call(Tid(1_167, "%0000048f"), - Attrs([Attr("address","0x5FC"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), Sub(Tid(1_416, "@_fini"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x794")]), - "_fini", Args([Arg(Tid(1_470, "%000005be"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("_fini_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(31, "@_fini"), - Attrs([Attr("address","0x794")]), Phis([]), Defs([Def(Tid(37, "%00000025"), - Attrs([Attr("address","0x798"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("#0",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(18446744073709551600,64))), -Def(Tid(43, "%0000002b"), Attrs([Attr("address","0x798"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("#0",Imm(64)),Var("R29",Imm(64)),LittleEndian(),64)), -Def(Tid(49, "%00000031"), Attrs([Attr("address","0x798"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("#0",Imm(64)),Int(8,64)),Var("R30",Imm(64)),LittleEndian(),64)), -Def(Tid(53, "%00000035"), Attrs([Attr("address","0x798"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("R31",Imm(64)), -Var("#0",Imm(64))), Def(Tid(59, "%0000003b"), Attrs([Attr("address","0x79C"), -Attr("insn","mov x29, sp")]), Var("R29",Imm(64)), Var("R31",Imm(64))), -Def(Tid(66, "%00000042"), Attrs([Attr("address","0x7A0"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R29",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(71, "%00000047"), Attrs([Attr("address","0x7A0"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R30",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(75, "%0000004b"), Attrs([Attr("address","0x7A0"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(16,64)))]), Jmps([Call(Tid(80, "%00000050"), - Attrs([Attr("address","0x7A4"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), Sub(Tid(1_417, "@_init"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x5B0")]), - "_init", Args([Arg(Tid(1_471, "%000005bf"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("_init_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(1_261, "@_init"), - Attrs([Attr("address","0x5B0")]), Phis([]), -Defs([Def(Tid(1_267, "%000004f3"), Attrs([Attr("address","0x5B4"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("#6",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(18446744073709551600,64))), -Def(Tid(1_273, "%000004f9"), Attrs([Attr("address","0x5B4"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("#6",Imm(64)),Var("R29",Imm(64)),LittleEndian(),64)), -Def(Tid(1_279, "%000004ff"), Attrs([Attr("address","0x5B4"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("#6",Imm(64)),Int(8,64)),Var("R30",Imm(64)),LittleEndian(),64)), -Def(Tid(1_283, "%00000503"), Attrs([Attr("address","0x5B4"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("R31",Imm(64)), -Var("#6",Imm(64))), Def(Tid(1_289, "%00000509"), - Attrs([Attr("address","0x5B8"), Attr("insn","mov x29, sp")]), - Var("R29",Imm(64)), Var("R31",Imm(64))), Def(Tid(1_294, "%0000050e"), - Attrs([Attr("address","0x5BC"), Attr("insn","bl #0xb8")]), - Var("R30",Imm(64)), Int(1472,64))]), Jmps([Call(Tid(1_296, "%00000510"), - Attrs([Attr("address","0x5BC"), Attr("insn","bl #0xb8")]), Int(1,1), -(Direct(Tid(1_422, "@call_weak_fn")),Direct(Tid(1_298, "%00000512"))))])), -Blk(Tid(1_298, "%00000512"), Attrs([Attr("address","0x5C0")]), Phis([]), -Defs([Def(Tid(1_303, "%00000517"), Attrs([Attr("address","0x5C0"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R29",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(1_308, "%0000051c"), Attrs([Attr("address","0x5C0"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R30",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(1_312, "%00000520"), Attrs([Attr("address","0x5C0"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(16,64)))]), Jmps([Call(Tid(1_317, "%00000525"), - Attrs([Attr("address","0x5C4"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), Sub(Tid(1_418, "@_start"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x640"), -Attr("entry-point","()")]), "_start", Args([Arg(Tid(1_472, "%000005c0"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("_start_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(424, "@_start"), - Attrs([Attr("address","0x640")]), Phis([]), Defs([Def(Tid(429, "%000001ad"), - Attrs([Attr("address","0x644"), Attr("insn","mov x29, #0x0")]), - Var("R29",Imm(64)), Int(0,64)), Def(Tid(434, "%000001b2"), - Attrs([Attr("address","0x648"), Attr("insn","mov x30, #0x0")]), - Var("R30",Imm(64)), Int(0,64)), Def(Tid(440, "%000001b8"), - Attrs([Attr("address","0x64C"), Attr("insn","mov x5, x0")]), - Var("R5",Imm(64)), Var("R0",Imm(64))), Def(Tid(447, "%000001bf"), - Attrs([Attr("address","0x650"), Attr("insn","ldr x1, [sp]")]), - Var("R1",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(453, "%000001c5"), Attrs([Attr("address","0x654"), -Attr("insn","add x2, sp, #0x8")]), Var("R2",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(8,64))), Def(Tid(459, "%000001cb"), - Attrs([Attr("address","0x658"), Attr("insn","mov x6, sp")]), - Var("R6",Imm(64)), Var("R31",Imm(64))), Def(Tid(464, "%000001d0"), - Attrs([Attr("address","0x65C"), Attr("insn","adrp x0, #65536")]), - Var("R0",Imm(64)), Int(65536,64)), Def(Tid(471, "%000001d7"), - Attrs([Attr("address","0x660"), Attr("insn","ldr x0, [x0, #0xff0]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(4080,64)),LittleEndian(),64)), -Def(Tid(476, "%000001dc"), Attrs([Attr("address","0x664"), -Attr("insn","mov x3, #0x0")]), Var("R3",Imm(64)), Int(0,64)), -Def(Tid(481, "%000001e1"), Attrs([Attr("address","0x668"), -Attr("insn","mov x4, #0x0")]), Var("R4",Imm(64)), Int(0,64)), -Def(Tid(486, "%000001e6"), Attrs([Attr("address","0x66C"), -Attr("insn","bl #-0x7c")]), Var("R30",Imm(64)), Int(1648,64))]), -Jmps([Call(Tid(489, "%000001e9"), Attrs([Attr("address","0x66C"), -Attr("insn","bl #-0x7c")]), Int(1,1), -(Direct(Tid(1_415, "@__libc_start_main")),Direct(Tid(491, "%000001eb"))))])), -Blk(Tid(491, "%000001eb"), Attrs([Attr("address","0x670")]), Phis([]), -Defs([Def(Tid(494, "%000001ee"), Attrs([Attr("address","0x670"), -Attr("insn","bl #-0x50")]), Var("R30",Imm(64)), Int(1652,64))]), -Jmps([Call(Tid(497, "%000001f1"), Attrs([Attr("address","0x670"), -Attr("insn","bl #-0x50")]), Int(1,1), -(Direct(Tid(1_421, "@abort")),Direct(Tid(1_455, "%000005af"))))])), -Blk(Tid(1_455, "%000005af"), Attrs([]), Phis([]), Defs([]), -Jmps([Call(Tid(1_456, "%000005b0"), Attrs([]), Int(1,1), -(Direct(Tid(1_422, "@call_weak_fn")),))]))])), Sub(Tid(1_421, "@abort"), - Attrs([Attr("noreturn","()"), Attr("c.proto","void (*)(void)"), -Attr("address","0x620"), Attr("stub","()")]), "abort", Args([]), -Blks([Blk(Tid(495, "@abort"), Attrs([Attr("address","0x620")]), Phis([]), -Defs([Def(Tid(1_215, "%000004bf"), Attrs([Attr("address","0x620"), -Attr("insn","adrp x16, #65536")]), Var("R16",Imm(64)), Int(65536,64)), -Def(Tid(1_222, "%000004c6"), Attrs([Attr("address","0x624"), -Attr("insn","ldr x17, [x16, #0xfb8]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(4024,64)),LittleEndian(),64)), -Def(Tid(1_228, "%000004cc"), Attrs([Attr("address","0x628"), -Attr("insn","add x16, x16, #0xfb8")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(4024,64)))]), Jmps([Call(Tid(1_233, "%000004d1"), - Attrs([Attr("address","0x62C"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), Sub(Tid(1_422, "@call_weak_fn"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x674")]), - "call_weak_fn", Args([Arg(Tid(1_473, "%000005c1"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("call_weak_fn_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(499, "@call_weak_fn"), - Attrs([Attr("address","0x674")]), Phis([]), Defs([Def(Tid(502, "%000001f6"), - Attrs([Attr("address","0x674"), Attr("insn","adrp x0, #65536")]), - Var("R0",Imm(64)), Int(65536,64)), Def(Tid(509, "%000001fd"), - Attrs([Attr("address","0x678"), Attr("insn","ldr x0, [x0, #0xfe0]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(4064,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(515, "%00000203"), Attrs([Attr("address","0x67C"), -Attr("insn","cbz x0, #0x8")]), EQ(Var("R0",Imm(64)),Int(0,64)), -Direct(Tid(513, "%00000201"))), Goto(Tid(1_457, "%000005b1"), Attrs([]), - Int(1,1), Direct(Tid(987, "%000003db")))])), Blk(Tid(513, "%00000201"), - Attrs([Attr("address","0x684")]), Phis([]), Defs([]), -Jmps([Call(Tid(521, "%00000209"), Attrs([Attr("address","0x684"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))])), -Blk(Tid(987, "%000003db"), Attrs([Attr("address","0x680")]), Phis([]), -Defs([]), Jmps([Goto(Tid(990, "%000003de"), Attrs([Attr("address","0x680"), -Attr("insn","b #-0x70")]), Int(1,1), Direct(Tid(988, "@__gmon_start__")))])), -Blk(Tid(988, "@__gmon_start__"), Attrs([Attr("address","0x610")]), Phis([]), -Defs([Def(Tid(1_193, "%000004a9"), Attrs([Attr("address","0x610"), -Attr("insn","adrp x16, #65536")]), Var("R16",Imm(64)), Int(65536,64)), -Def(Tid(1_200, "%000004b0"), Attrs([Attr("address","0x614"), -Attr("insn","ldr x17, [x16, #0xfb0]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(4016,64)),LittleEndian(),64)), -Def(Tid(1_206, "%000004b6"), Attrs([Attr("address","0x618"), -Attr("insn","add x16, x16, #0xfb0")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(4016,64)))]), Jmps([Call(Tid(1_211, "%000004bb"), - Attrs([Attr("address","0x61C"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), -Sub(Tid(1_424, "@deregister_tm_clones"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x690")]), - "deregister_tm_clones", Args([Arg(Tid(1_474, "%000005c2"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("deregister_tm_clones_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(527, "@deregister_tm_clones"), - Attrs([Attr("address","0x690")]), Phis([]), Defs([Def(Tid(530, "%00000212"), - Attrs([Attr("address","0x690"), Attr("insn","adrp x0, #69632")]), - Var("R0",Imm(64)), Int(69632,64)), Def(Tid(536, "%00000218"), - Attrs([Attr("address","0x694"), Attr("insn","add x0, x0, #0x10")]), - Var("R0",Imm(64)), PLUS(Var("R0",Imm(64)),Int(16,64))), -Def(Tid(541, "%0000021d"), Attrs([Attr("address","0x698"), -Attr("insn","adrp x1, #69632")]), Var("R1",Imm(64)), Int(69632,64)), -Def(Tid(547, "%00000223"), Attrs([Attr("address","0x69C"), -Attr("insn","add x1, x1, #0x10")]), Var("R1",Imm(64)), -PLUS(Var("R1",Imm(64)),Int(16,64))), Def(Tid(553, "%00000229"), - Attrs([Attr("address","0x6A0"), Attr("insn","cmp x1, x0")]), - Var("#1",Imm(64)), NOT(Var("R0",Imm(64)))), Def(Tid(558, "%0000022e"), - Attrs([Attr("address","0x6A0"), Attr("insn","cmp x1, x0")]), - Var("#2",Imm(64)), PLUS(Var("R1",Imm(64)),NOT(Var("R0",Imm(64))))), -Def(Tid(564, "%00000234"), Attrs([Attr("address","0x6A0"), -Attr("insn","cmp x1, x0")]), Var("VF",Imm(1)), -NEQ(SIGNED(65,PLUS(Var("#2",Imm(64)),Int(1,64))),PLUS(PLUS(SIGNED(65,Var("R1",Imm(64))),SIGNED(65,Var("#1",Imm(64)))),Int(1,65)))), -Def(Tid(570, "%0000023a"), Attrs([Attr("address","0x6A0"), -Attr("insn","cmp x1, x0")]), Var("CF",Imm(1)), -NEQ(UNSIGNED(65,PLUS(Var("#2",Imm(64)),Int(1,64))),PLUS(PLUS(UNSIGNED(65,Var("R1",Imm(64))),UNSIGNED(65,Var("#1",Imm(64)))),Int(1,65)))), -Def(Tid(574, "%0000023e"), Attrs([Attr("address","0x6A0"), -Attr("insn","cmp x1, x0")]), Var("ZF",Imm(1)), -EQ(PLUS(Var("#2",Imm(64)),Int(1,64)),Int(0,64))), Def(Tid(578, "%00000242"), - Attrs([Attr("address","0x6A0"), Attr("insn","cmp x1, x0")]), - Var("NF",Imm(1)), Extract(63,63,PLUS(Var("#2",Imm(64)),Int(1,64))))]), -Jmps([Goto(Tid(584, "%00000248"), Attrs([Attr("address","0x6A4"), -Attr("insn","b.eq #0x18")]), EQ(Var("ZF",Imm(1)),Int(1,1)), -Direct(Tid(582, "%00000246"))), Goto(Tid(1_458, "%000005b2"), Attrs([]), - Int(1,1), Direct(Tid(957, "%000003bd")))])), Blk(Tid(957, "%000003bd"), - Attrs([Attr("address","0x6A8")]), Phis([]), Defs([Def(Tid(960, "%000003c0"), - Attrs([Attr("address","0x6A8"), Attr("insn","adrp x1, #65536")]), - Var("R1",Imm(64)), Int(65536,64)), Def(Tid(967, "%000003c7"), - Attrs([Attr("address","0x6AC"), Attr("insn","ldr x1, [x1, #0xfc8]")]), - Var("R1",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R1",Imm(64)),Int(4040,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(972, "%000003cc"), Attrs([Attr("address","0x6B0"), -Attr("insn","cbz x1, #0xc")]), EQ(Var("R1",Imm(64)),Int(0,64)), -Direct(Tid(582, "%00000246"))), Goto(Tid(1_459, "%000005b3"), Attrs([]), - Int(1,1), Direct(Tid(976, "%000003d0")))])), Blk(Tid(582, "%00000246"), - Attrs([Attr("address","0x6BC")]), Phis([]), Defs([]), -Jmps([Call(Tid(590, "%0000024e"), Attrs([Attr("address","0x6BC"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))])), -Blk(Tid(976, "%000003d0"), Attrs([Attr("address","0x6B4")]), Phis([]), -Defs([Def(Tid(980, "%000003d4"), Attrs([Attr("address","0x6B4"), -Attr("insn","mov x16, x1")]), Var("R16",Imm(64)), Var("R1",Imm(64)))]), -Jmps([Call(Tid(985, "%000003d9"), Attrs([Attr("address","0x6B8"), -Attr("insn","br x16")]), Int(1,1), (Indirect(Var("R16",Imm(64))),))]))])), -Sub(Tid(1_427, "@frame_dummy"), Attrs([Attr("c.proto","signed (*)(void)"), -Attr("address","0x750")]), "frame_dummy", Args([Arg(Tid(1_475, "%000005c3"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("frame_dummy_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(742, "@frame_dummy"), - Attrs([Attr("address","0x750")]), Phis([]), Defs([]), -Jmps([Call(Tid(744, "%000002e8"), Attrs([Attr("address","0x750"), -Attr("insn","b #-0x90")]), Int(1,1), -(Direct(Tid(1_430, "@register_tm_clones")),))]))])), -Sub(Tid(1_428, "@get_two"), Attrs([Attr("c.proto","signed (*)(void)"), -Attr("address","0x78C")]), "get_two", Args([Arg(Tid(1_476, "%000005c4"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("get_two_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(803, "@get_two"), - Attrs([Attr("address","0x78C")]), Phis([]), Defs([Def(Tid(809, "%00000329"), - Attrs([Attr("address","0x78C"), Attr("insn","mov w0, #0x2")]), - Var("R0",Imm(64)), Int(2,64))]), Jmps([Call(Tid(814, "%0000032e"), - Attrs([Attr("address","0x790"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), Sub(Tid(1_429, "@main"), - Attrs([Attr("c.proto","signed (*)(signed argc, const char** argv)"), -Attr("address","0x754")]), "main", Args([Arg(Tid(1_477, "%000005c5"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("main_argc",Imm(32)), -LOW(32,Var("R0",Imm(64))), In()), Arg(Tid(1_478, "%000005c6"), - Attrs([Attr("c.layout","**[char : 8]"), Attr("c.data","Top:u8 ptr ptr"), -Attr("c.type"," const char**")]), Var("main_argv",Imm(64)), -Var("R1",Imm(64)), Both()), Arg(Tid(1_479, "%000005c7"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("main_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(746, "@main"), - Attrs([Attr("address","0x754")]), Phis([]), Defs([Def(Tid(750, "%000002ee"), - Attrs([Attr("address","0x754"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("#4",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(18446744073709551600,64))), -Def(Tid(756, "%000002f4"), Attrs([Attr("address","0x754"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("#4",Imm(64)),Var("R29",Imm(64)),LittleEndian(),64)), -Def(Tid(762, "%000002fa"), Attrs([Attr("address","0x754"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("#4",Imm(64)),Int(8,64)),Var("R30",Imm(64)),LittleEndian(),64)), -Def(Tid(766, "%000002fe"), Attrs([Attr("address","0x754"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("R31",Imm(64)), -Var("#4",Imm(64))), Def(Tid(772, "%00000304"), - Attrs([Attr("address","0x758"), Attr("insn","mov x29, sp")]), - Var("R29",Imm(64)), Var("R31",Imm(64))), Def(Tid(777, "%00000309"), - Attrs([Attr("address","0x75C"), Attr("insn","adrp x0, #65536")]), - Var("R0",Imm(64)), Int(65536,64)), Def(Tid(784, "%00000310"), - Attrs([Attr("address","0x760"), Attr("insn","ldr x0, [x0, #0xfd8]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(4056,64)),LittleEndian(),64)), -Def(Tid(789, "%00000315"), Attrs([Attr("address","0x764"), -Attr("insn","mov w1, #0x1")]), Var("R1",Imm(64)), Int(1,64)), -Def(Tid(797, "%0000031d"), Attrs([Attr("address","0x768"), -Attr("insn","str w1, [x0]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("R0",Imm(64)),Extract(31,0,Var("R1",Imm(64))),LittleEndian(),32)), -Def(Tid(802, "%00000322"), Attrs([Attr("address","0x76C"), -Attr("insn","bl #0x20")]), Var("R30",Imm(64)), Int(1904,64))]), -Jmps([Call(Tid(805, "%00000325"), Attrs([Attr("address","0x76C"), -Attr("insn","bl #0x20")]), Int(1,1), -(Direct(Tid(1_428, "@get_two")),Direct(Tid(816, "%00000330"))))])), -Blk(Tid(816, "%00000330"), Attrs([Attr("address","0x770")]), Phis([]), -Defs([Def(Tid(820, "%00000334"), Attrs([Attr("address","0x770"), -Attr("insn","mov w1, w0")]), Var("R1",Imm(64)), -UNSIGNED(64,Extract(31,0,Var("R0",Imm(64))))), Def(Tid(825, "%00000339"), - Attrs([Attr("address","0x774"), Attr("insn","adrp x0, #65536")]), - Var("R0",Imm(64)), Int(65536,64)), Def(Tid(832, "%00000340"), - Attrs([Attr("address","0x778"), Attr("insn","ldr x0, [x0, #0xfe8]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(4072,64)),LittleEndian(),64)), -Def(Tid(840, "%00000348"), Attrs([Attr("address","0x77C"), -Attr("insn","str w1, [x0]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("R0",Imm(64)),Extract(31,0,Var("R1",Imm(64))),LittleEndian(),32)), -Def(Tid(845, "%0000034d"), Attrs([Attr("address","0x780"), -Attr("insn","mov w0, #0x0")]), Var("R0",Imm(64)), Int(0,64)), -Def(Tid(852, "%00000354"), Attrs([Attr("address","0x784"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R29",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(857, "%00000359"), Attrs([Attr("address","0x784"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R30",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(861, "%0000035d"), Attrs([Attr("address","0x784"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(16,64)))]), Jmps([Call(Tid(866, "%00000362"), - Attrs([Attr("address","0x788"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), -Sub(Tid(1_430, "@register_tm_clones"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x6C0")]), - "register_tm_clones", Args([Arg(Tid(1_480, "%000005c8"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("register_tm_clones_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(592, "@register_tm_clones"), Attrs([Attr("address","0x6C0")]), - Phis([]), Defs([Def(Tid(595, "%00000253"), Attrs([Attr("address","0x6C0"), -Attr("insn","adrp x0, #69632")]), Var("R0",Imm(64)), Int(69632,64)), -Def(Tid(601, "%00000259"), Attrs([Attr("address","0x6C4"), -Attr("insn","add x0, x0, #0x10")]), Var("R0",Imm(64)), -PLUS(Var("R0",Imm(64)),Int(16,64))), Def(Tid(606, "%0000025e"), - Attrs([Attr("address","0x6C8"), Attr("insn","adrp x1, #69632")]), - Var("R1",Imm(64)), Int(69632,64)), Def(Tid(612, "%00000264"), - Attrs([Attr("address","0x6CC"), Attr("insn","add x1, x1, #0x10")]), - Var("R1",Imm(64)), PLUS(Var("R1",Imm(64)),Int(16,64))), -Def(Tid(619, "%0000026b"), Attrs([Attr("address","0x6D0"), -Attr("insn","sub x1, x1, x0")]), Var("R1",Imm(64)), -PLUS(PLUS(Var("R1",Imm(64)),NOT(Var("R0",Imm(64)))),Int(1,64))), -Def(Tid(625, "%00000271"), Attrs([Attr("address","0x6D4"), -Attr("insn","lsr x2, x1, #63")]), Var("R2",Imm(64)), -Concat(Int(0,63),Extract(63,63,Var("R1",Imm(64))))), -Def(Tid(632, "%00000278"), Attrs([Attr("address","0x6D8"), -Attr("insn","add x1, x2, x1, asr #3")]), Var("R1",Imm(64)), -PLUS(Var("R2",Imm(64)),ARSHIFT(Var("R1",Imm(64)),Int(3,3)))), -Def(Tid(638, "%0000027e"), Attrs([Attr("address","0x6DC"), -Attr("insn","asr x1, x1, #1")]), Var("R1",Imm(64)), -SIGNED(64,Extract(63,1,Var("R1",Imm(64)))))]), -Jmps([Goto(Tid(644, "%00000284"), Attrs([Attr("address","0x6E0"), -Attr("insn","cbz x1, #0x18")]), EQ(Var("R1",Imm(64)),Int(0,64)), -Direct(Tid(642, "%00000282"))), Goto(Tid(1_460, "%000005b4"), Attrs([]), - Int(1,1), Direct(Tid(927, "%0000039f")))])), Blk(Tid(927, "%0000039f"), - Attrs([Attr("address","0x6E4")]), Phis([]), Defs([Def(Tid(930, "%000003a2"), - Attrs([Attr("address","0x6E4"), Attr("insn","adrp x2, #65536")]), - Var("R2",Imm(64)), Int(65536,64)), Def(Tid(937, "%000003a9"), - Attrs([Attr("address","0x6E8"), Attr("insn","ldr x2, [x2, #0xff8]")]), - Var("R2",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R2",Imm(64)),Int(4088,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(942, "%000003ae"), Attrs([Attr("address","0x6EC"), -Attr("insn","cbz x2, #0xc")]), EQ(Var("R2",Imm(64)),Int(0,64)), -Direct(Tid(642, "%00000282"))), Goto(Tid(1_461, "%000005b5"), Attrs([]), - Int(1,1), Direct(Tid(946, "%000003b2")))])), Blk(Tid(642, "%00000282"), - Attrs([Attr("address","0x6F8")]), Phis([]), Defs([]), -Jmps([Call(Tid(650, "%0000028a"), Attrs([Attr("address","0x6F8"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))])), -Blk(Tid(946, "%000003b2"), Attrs([Attr("address","0x6F0")]), Phis([]), -Defs([Def(Tid(950, "%000003b6"), Attrs([Attr("address","0x6F0"), -Attr("insn","mov x16, x2")]), Var("R16",Imm(64)), Var("R2",Imm(64)))]), -Jmps([Call(Tid(955, "%000003bb"), Attrs([Attr("address","0x6F4"), -Attr("insn","br x16")]), Int(1,1), -(Indirect(Var("R16",Imm(64))),))]))]))]))) \ No newline at end of file diff --git a/src/test/correct/function/gcc_pic/function.bir b/src/test/correct/function/gcc_pic/function.bir deleted file mode 100644 index e221ad170..000000000 --- a/src/test/correct/function/gcc_pic/function.bir +++ /dev/null @@ -1,251 +0,0 @@ -000005b6: program -00000582: sub __cxa_finalize(__cxa_finalize_result) -000005b7: __cxa_finalize_result :: out u32 = low:32[R0] - -0000039b: -00000493: R16 := 0x10000 -0000049a: R17 := mem[R16 + 0xFA8, el]:u64 -000004a0: R16 := R16 + 0xFA8 -000004a5: call R17 with noreturn - -00000583: sub __do_global_dtors_aux(__do_global_dtors_aux_result) -000005b8: __do_global_dtors_aux_result :: out u32 = low:32[R0] - -0000028e: -00000292: #3 := R31 - 0x20 -00000298: mem := mem with [#3, el]:u64 <- R29 -0000029e: mem := mem with [#3 + 8, el]:u64 <- R30 -000002a2: R31 := #3 -000002a8: R29 := R31 -000002b0: mem := mem with [R31 + 0x10, el]:u64 <- R19 -000002b5: R19 := 0x11000 -000002bc: R0 := pad:64[mem[R19 + 0x10]] -000002c3: when 31:0[R0] <> 0 goto %000002c1 -000005ac: goto %00000364 - -00000364: -00000367: R0 := 0x10000 -0000036e: R0 := mem[R0 + 0xFD0, el]:u64 -00000374: when R0 = 0 goto %00000372 -000005ad: goto %0000038b - -0000038b: -0000038e: R0 := 0x11000 -00000395: R0 := mem[R0 + 8, el]:u64 -0000039a: R30 := 0x730 -0000039d: call @__cxa_finalize with return %00000372 - -00000372: -0000037a: R30 := 0x734 -0000037c: call @deregister_tm_clones with return %0000037e - -0000037e: -00000381: R0 := 1 -00000389: mem := mem with [R19 + 0x10] <- 7:0[R0] -000005ae: goto %000002c1 - -000002c1: -000002cb: R19 := mem[R31 + 0x10, el]:u64 -000002d2: R29 := mem[R31, el]:u64 -000002d7: R30 := mem[R31 + 8, el]:u64 -000002db: R31 := R31 + 0x20 -000002e0: call R30 with noreturn - -00000587: sub __libc_start_main(__libc_start_main_main, __libc_start_main_arg2, __libc_start_main_arg3, __libc_start_main_auxv, __libc_start_main_result) -000005b9: __libc_start_main_main :: in u64 = R0 -000005ba: __libc_start_main_arg2 :: in u32 = low:32[R1] -000005bb: __libc_start_main_arg3 :: in out u64 = R2 -000005bc: __libc_start_main_auxv :: in out u64 = R3 -000005bd: __libc_start_main_result :: out u32 = low:32[R0] - -000001e7: -0000047d: R16 := 0x10000 -00000484: R17 := mem[R16 + 0xFA0, el]:u64 -0000048a: R16 := R16 + 0xFA0 -0000048f: call R17 with noreturn - -00000588: sub _fini(_fini_result) -000005be: _fini_result :: out u32 = low:32[R0] - -0000001f: -00000025: #0 := R31 - 0x10 -0000002b: mem := mem with [#0, el]:u64 <- R29 -00000031: mem := mem with [#0 + 8, el]:u64 <- R30 -00000035: R31 := #0 -0000003b: R29 := R31 -00000042: R29 := mem[R31, el]:u64 -00000047: R30 := mem[R31 + 8, el]:u64 -0000004b: R31 := R31 + 0x10 -00000050: call R30 with noreturn - -00000589: sub _init(_init_result) -000005bf: _init_result :: out u32 = low:32[R0] - -000004ed: -000004f3: #6 := R31 - 0x10 -000004f9: mem := mem with [#6, el]:u64 <- R29 -000004ff: mem := mem with [#6 + 8, el]:u64 <- R30 -00000503: R31 := #6 -00000509: R29 := R31 -0000050e: R30 := 0x5C0 -00000510: call @call_weak_fn with return %00000512 - -00000512: -00000517: R29 := mem[R31, el]:u64 -0000051c: R30 := mem[R31 + 8, el]:u64 -00000520: R31 := R31 + 0x10 -00000525: call R30 with noreturn - -0000058a: sub _start(_start_result) -000005c0: _start_result :: out u32 = low:32[R0] - -000001a8: -000001ad: R29 := 0 -000001b2: R30 := 0 -000001b8: R5 := R0 -000001bf: R1 := mem[R31, el]:u64 -000001c5: R2 := R31 + 8 -000001cb: R6 := R31 -000001d0: R0 := 0x10000 -000001d7: R0 := mem[R0 + 0xFF0, el]:u64 -000001dc: R3 := 0 -000001e1: R4 := 0 -000001e6: R30 := 0x670 -000001e9: call @__libc_start_main with return %000001eb - -000001eb: -000001ee: R30 := 0x674 -000001f1: call @abort with return %000005af - -000005af: -000005b0: call @call_weak_fn with noreturn - -0000058d: sub abort() - - -000001ef: -000004bf: R16 := 0x10000 -000004c6: R17 := mem[R16 + 0xFB8, el]:u64 -000004cc: R16 := R16 + 0xFB8 -000004d1: call R17 with noreturn - -0000058e: sub call_weak_fn(call_weak_fn_result) -000005c1: call_weak_fn_result :: out u32 = low:32[R0] - -000001f3: -000001f6: R0 := 0x10000 -000001fd: R0 := mem[R0 + 0xFE0, el]:u64 -00000203: when R0 = 0 goto %00000201 -000005b1: goto %000003db - -00000201: -00000209: call R30 with noreturn - -000003db: -000003de: goto @__gmon_start__ - -000003dc: -000004a9: R16 := 0x10000 -000004b0: R17 := mem[R16 + 0xFB0, el]:u64 -000004b6: R16 := R16 + 0xFB0 -000004bb: call R17 with noreturn - -00000590: sub deregister_tm_clones(deregister_tm_clones_result) -000005c2: deregister_tm_clones_result :: out u32 = low:32[R0] - -0000020f: -00000212: R0 := 0x11000 -00000218: R0 := R0 + 0x10 -0000021d: R1 := 0x11000 -00000223: R1 := R1 + 0x10 -00000229: #1 := ~R0 -0000022e: #2 := R1 + ~R0 -00000234: VF := extend:65[#2 + 1] <> extend:65[R1] + extend:65[#1] + 1 -0000023a: CF := pad:65[#2 + 1] <> pad:65[R1] + pad:65[#1] + 1 -0000023e: ZF := #2 + 1 = 0 -00000242: NF := 63:63[#2 + 1] -00000248: when ZF goto %00000246 -000005b2: goto %000003bd - -000003bd: -000003c0: R1 := 0x10000 -000003c7: R1 := mem[R1 + 0xFC8, el]:u64 -000003cc: when R1 = 0 goto %00000246 -000005b3: goto %000003d0 - -00000246: -0000024e: call R30 with noreturn - -000003d0: -000003d4: R16 := R1 -000003d9: call R16 with noreturn - -00000593: sub frame_dummy(frame_dummy_result) -000005c3: frame_dummy_result :: out u32 = low:32[R0] - -000002e6: -000002e8: call @register_tm_clones with noreturn - -00000594: sub get_two(get_two_result) -000005c4: get_two_result :: out u32 = low:32[R0] - -00000323: -00000329: R0 := 2 -0000032e: call R30 with noreturn - -00000595: sub main(main_argc, main_argv, main_result) -000005c5: main_argc :: in u32 = low:32[R0] -000005c6: main_argv :: in out u64 = R1 -000005c7: main_result :: out u32 = low:32[R0] - -000002ea: -000002ee: #4 := R31 - 0x10 -000002f4: mem := mem with [#4, el]:u64 <- R29 -000002fa: mem := mem with [#4 + 8, el]:u64 <- R30 -000002fe: R31 := #4 -00000304: R29 := R31 -00000309: R0 := 0x10000 -00000310: R0 := mem[R0 + 0xFD8, el]:u64 -00000315: R1 := 1 -0000031d: mem := mem with [R0, el]:u32 <- 31:0[R1] -00000322: R30 := 0x770 -00000325: call @get_two with return %00000330 - -00000330: -00000334: R1 := pad:64[31:0[R0]] -00000339: R0 := 0x10000 -00000340: R0 := mem[R0 + 0xFE8, el]:u64 -00000348: mem := mem with [R0, el]:u32 <- 31:0[R1] -0000034d: R0 := 0 -00000354: R29 := mem[R31, el]:u64 -00000359: R30 := mem[R31 + 8, el]:u64 -0000035d: R31 := R31 + 0x10 -00000362: call R30 with noreturn - -00000596: sub register_tm_clones(register_tm_clones_result) -000005c8: register_tm_clones_result :: out u32 = low:32[R0] - -00000250: -00000253: R0 := 0x11000 -00000259: R0 := R0 + 0x10 -0000025e: R1 := 0x11000 -00000264: R1 := R1 + 0x10 -0000026b: R1 := R1 + ~R0 + 1 -00000271: R2 := 0.63:63[R1] -00000278: R1 := R2 + (R1 ~>> 3) -0000027e: R1 := extend:64[63:1[R1]] -00000284: when R1 = 0 goto %00000282 -000005b4: goto %0000039f - -0000039f: -000003a2: R2 := 0x10000 -000003a9: R2 := mem[R2 + 0xFF8, el]:u64 -000003ae: when R2 = 0 goto %00000282 -000005b5: goto %000003b2 - -00000282: -0000028a: call R30 with noreturn - -000003b2: -000003b6: R16 := R2 -000003bb: call R16 with noreturn diff --git a/src/test/correct/function/gcc_pic/function.expected b/src/test/correct/function/gcc_pic/function.expected index 4fe154d2b..1ada9592b 100644 --- a/src/test/correct/function/gcc_pic/function.expected +++ b/src/test/correct/function/gcc_pic/function.expected @@ -1,5 +1,6 @@ var {:extern} Gamma_R0: bool; var {:extern} Gamma_R1: bool; +var {:extern} Gamma_R19: bool; var {:extern} Gamma_R29: bool; var {:extern} Gamma_R30: bool; var {:extern} Gamma_R31: bool; @@ -7,15 +8,16 @@ var {:extern} Gamma_mem: [bv64]bool; var {:extern} Gamma_stack: [bv64]bool; var {:extern} R0: bv64; var {:extern} R1: bv64; +var {:extern} R19: bv64; var {:extern} R29: bv64; var {:extern} R30: bv64; var {:extern} R31: bv64; var {:extern} mem: [bv64]bv8; var {:extern} stack: [bv64]bv8; const {:extern} $x_addr: bv64; -axiom ($x_addr == 69652bv64); +axiom ($x_addr == 4325400bv64); const {:extern} $y_addr: bv64; -axiom ($y_addr == 69656bv64); +axiom ($y_addr == 4325396bv64); function {:extern} L(mem$in: [bv64]bv8, index: bv64) returns (bool) { false } @@ -58,13 +60,7 @@ procedure {:extern} rely(); modifies Gamma_mem, mem; ensures (Gamma_mem == old(Gamma_mem)); ensures (mem == old(mem)); - free ensures (memory_load32_le(mem, 1960bv64) == 131073bv32); - free ensures (memory_load64_le(mem, 69000bv64) == 1872bv64); - free ensures (memory_load64_le(mem, 69008bv64) == 1792bv64); - free ensures (memory_load64_le(mem, 69592bv64) == 69652bv64); - free ensures (memory_load64_le(mem, 69608bv64) == 69656bv64); - free ensures (memory_load64_le(mem, 69616bv64) == 1876bv64); - free ensures (memory_load64_le(mem, 69640bv64) == 69640bv64); + free ensures (memory_load32_le(mem, 4196332bv64) == 131073bv32); procedure {:extern} rely_transitive(); modifies Gamma_mem, mem; @@ -82,113 +78,96 @@ procedure {:extern} rely_reflexive(); procedure {:extern} guarantee_reflexive(); modifies Gamma_mem, mem; -procedure get_two_1932(); +procedure get_two(); modifies Gamma_R0, R0; - free requires (memory_load32_le(mem, 1960bv64) == 131073bv32); - free requires (memory_load64_le(mem, 69000bv64) == 1872bv64); - free requires (memory_load64_le(mem, 69008bv64) == 1792bv64); - free requires (memory_load64_le(mem, 69592bv64) == 69652bv64); - free requires (memory_load64_le(mem, 69608bv64) == 69656bv64); - free requires (memory_load64_le(mem, 69616bv64) == 1876bv64); - free requires (memory_load64_le(mem, 69640bv64) == 69640bv64); + free requires (memory_load32_le(mem, 4196332bv64) == 131073bv32); ensures (Gamma_R0 == true); - free ensures (memory_load32_le(mem, 1960bv64) == 131073bv32); - free ensures (memory_load64_le(mem, 69000bv64) == 1872bv64); - free ensures (memory_load64_le(mem, 69008bv64) == 1792bv64); - free ensures (memory_load64_le(mem, 69592bv64) == 69652bv64); - free ensures (memory_load64_le(mem, 69608bv64) == 69656bv64); - free ensures (memory_load64_le(mem, 69616bv64) == 1876bv64); - free ensures (memory_load64_le(mem, 69640bv64) == 69640bv64); - -implementation get_two_1932() + free ensures (memory_load32_le(mem, 4196332bv64) == 131073bv32); + +implementation get_two() { lget_two: assume {:captureState "lget_two"} true; R0, Gamma_R0 := 2bv64, true; - goto get_two_1932_basil_return; - get_two_1932_basil_return: - assume {:captureState "get_two_1932_basil_return"} true; + goto get_two_basil_return; + get_two_basil_return: + assume {:captureState "get_two_basil_return"} true; return; } -procedure main_1876(); - modifies Gamma_R0, Gamma_R1, Gamma_R29, Gamma_R30, Gamma_R31, Gamma_mem, Gamma_stack, R0, R1, R29, R30, R31, mem, stack; +procedure main(); + modifies Gamma_R0, Gamma_R1, Gamma_R19, Gamma_R29, Gamma_R30, Gamma_R31, Gamma_mem, Gamma_stack, R0, R1, R19, R29, R30, R31, mem, stack; requires (gamma_load32(Gamma_mem, $x_addr) == true); requires (gamma_load32(Gamma_mem, $y_addr) == true); - free requires (memory_load64_le(mem, 69632bv64) == 0bv64); - free requires (memory_load64_le(mem, 69640bv64) == 69640bv64); - free requires (memory_load32_le(mem, 1960bv64) == 131073bv32); - free requires (memory_load64_le(mem, 69000bv64) == 1872bv64); - free requires (memory_load64_le(mem, 69008bv64) == 1792bv64); - free requires (memory_load64_le(mem, 69592bv64) == 69652bv64); - free requires (memory_load64_le(mem, 69608bv64) == 69656bv64); - free requires (memory_load64_le(mem, 69616bv64) == 1876bv64); - free requires (memory_load64_le(mem, 69640bv64) == 69640bv64); + free requires (memory_load64_le(mem, 4325376bv64) == 0bv64); + free requires (memory_load64_le(mem, 4325384bv64) == 0bv64); + free requires (memory_load32_le(mem, 4196332bv64) == 131073bv32); + free ensures (Gamma_R19 == old(Gamma_R19)); free ensures (Gamma_R29 == old(Gamma_R29)); free ensures (Gamma_R31 == old(Gamma_R31)); + free ensures (R19 == old(R19)); free ensures (R29 == old(R29)); free ensures (R31 == old(R31)); - free ensures (memory_load32_le(mem, 1960bv64) == 131073bv32); - free ensures (memory_load64_le(mem, 69000bv64) == 1872bv64); - free ensures (memory_load64_le(mem, 69008bv64) == 1792bv64); - free ensures (memory_load64_le(mem, 69592bv64) == 69652bv64); - free ensures (memory_load64_le(mem, 69608bv64) == 69656bv64); - free ensures (memory_load64_le(mem, 69616bv64) == 1876bv64); - free ensures (memory_load64_le(mem, 69640bv64) == 69640bv64); - -implementation main_1876() + free ensures (memory_load32_le(mem, 4196332bv64) == 131073bv32); + +implementation main() { - var #4: bv64; - var Gamma_#4: bool; - var Gamma_load18: bool; - var Gamma_load19: bool; - var Gamma_load20: bool; - var Gamma_load21: bool; - var load18: bv64; - var load19: bv64; - var load20: bv64; - var load21: bv64; + var #1: bv64; + var $load$14: bv64; + var $load$15: bv64; + var $load$16: bv64; + var $load$17: bv64; + var $load$18: bv64; + var Gamma_#1: bool; + var Gamma_$load$14: bool; + var Gamma_$load$15: bool; + var Gamma_$load$16: bool; + var Gamma_$load$17: bool; + var Gamma_$load$18: bool; lmain: assume {:captureState "lmain"} true; - #4, Gamma_#4 := bvadd64(R31, 18446744073709551600bv64), Gamma_R31; - stack, Gamma_stack := memory_store64_le(stack, #4, R29), gamma_store64(Gamma_stack, #4, Gamma_R29); - assume {:captureState "%000002f4"} true; - stack, Gamma_stack := memory_store64_le(stack, bvadd64(#4, 8bv64), R30), gamma_store64(Gamma_stack, bvadd64(#4, 8bv64), Gamma_R30); - assume {:captureState "%000002fa"} true; - R31, Gamma_R31 := #4, Gamma_#4; + #1, Gamma_#1 := bvadd64(R31, 18446744073709551584bv64), Gamma_R31; + stack, Gamma_stack := memory_store64_le(stack, #1, R29), gamma_store64(Gamma_stack, #1, Gamma_R29); + assume {:captureState "%00000260"} true; + stack, Gamma_stack := memory_store64_le(stack, bvadd64(#1, 8bv64), R30), gamma_store64(Gamma_stack, bvadd64(#1, 8bv64), Gamma_R30); + assume {:captureState "%00000264"} true; + R31, Gamma_R31 := #1, Gamma_#1; + R1, Gamma_R1 := 1bv64, true; R29, Gamma_R29 := R31, Gamma_R31; - R0, Gamma_R0 := 65536bv64, true; + stack, Gamma_stack := memory_store64_le(stack, bvadd64(R31, 16bv64), R19), gamma_store64(Gamma_stack, bvadd64(R31, 16bv64), Gamma_R19); + assume {:captureState "%00000274"} true; + R19, Gamma_R19 := 4321280bv64, true; call rely(); - load18, Gamma_load18 := memory_load64_le(mem, bvadd64(R0, 4056bv64)), (gamma_load64(Gamma_mem, bvadd64(R0, 4056bv64)) || L(mem, bvadd64(R0, 4056bv64))); - R0, Gamma_R0 := load18, Gamma_load18; - R1, Gamma_R1 := 1bv64, true; + $load$14, Gamma_$load$14 := memory_load64_le(mem, bvadd64(R19, 4064bv64)), (gamma_load64(Gamma_mem, bvadd64(R19, 4064bv64)) || L(mem, bvadd64(R19, 4064bv64))); + R0, Gamma_R0 := $load$14, Gamma_$load$14; call rely(); assert (L(mem, R0) ==> Gamma_R1); mem, Gamma_mem := memory_store32_le(mem, R0, R1[32:0]), gamma_store32(Gamma_mem, R0, Gamma_R1); - assume {:captureState "%0000031d"} true; - R30, Gamma_R30 := 1904bv64, true; - call get_two_1932(); - goto l00000330; - l00000330: - assume {:captureState "l00000330"} true; - R1, Gamma_R1 := zero_extend32_32(R0[32:0]), Gamma_R0; - R0, Gamma_R0 := 65536bv64, true; + assume {:captureState "%00000280"} true; + R30, Gamma_R30 := 4196000bv64, true; + call get_two(); + goto l0000028c; + l0000028c: + assume {:captureState "l0000028c"} true; call rely(); - load19, Gamma_load19 := memory_load64_le(mem, bvadd64(R0, 4072bv64)), (gamma_load64(Gamma_mem, bvadd64(R0, 4072bv64)) || L(mem, bvadd64(R0, 4072bv64))); - R0, Gamma_R0 := load19, Gamma_load19; - call rely(); - assert (L(mem, R0) ==> Gamma_R1); - mem, Gamma_mem := memory_store32_le(mem, R0, R1[32:0]), gamma_store32(Gamma_mem, R0, Gamma_R1); - assume {:captureState "%00000348"} true; + $load$15, Gamma_$load$15 := memory_load64_le(mem, bvadd64(R19, 4080bv64)), (gamma_load64(Gamma_mem, bvadd64(R19, 4080bv64)) || L(mem, bvadd64(R19, 4080bv64))); + R19, Gamma_R19 := $load$15, Gamma_$load$15; + R1, Gamma_R1 := zero_extend32_32(R0[32:0]), Gamma_R0; R0, Gamma_R0 := 0bv64, true; - load20, Gamma_load20 := memory_load64_le(stack, R31), gamma_load64(Gamma_stack, R31); - R29, Gamma_R29 := load20, Gamma_load20; - load21, Gamma_load21 := memory_load64_le(stack, bvadd64(R31, 8bv64)), gamma_load64(Gamma_stack, bvadd64(R31, 8bv64)); - R30, Gamma_R30 := load21, Gamma_load21; - R31, Gamma_R31 := bvadd64(R31, 16bv64), Gamma_R31; - goto main_1876_basil_return; - main_1876_basil_return: - assume {:captureState "main_1876_basil_return"} true; + call rely(); + assert (L(mem, R19) ==> Gamma_R1); + mem, Gamma_mem := memory_store32_le(mem, R19, R1[32:0]), gamma_store32(Gamma_mem, R19, Gamma_R1); + assume {:captureState "%0000029c"} true; + $load$16, Gamma_$load$16 := memory_load64_le(stack, bvadd64(R31, 16bv64)), gamma_load64(Gamma_stack, bvadd64(R31, 16bv64)); + R19, Gamma_R19 := $load$16, Gamma_$load$16; + $load$17, Gamma_$load$17 := memory_load64_le(stack, R31), gamma_load64(Gamma_stack, R31); + R29, Gamma_R29 := $load$17, Gamma_$load$17; + $load$18, Gamma_$load$18 := memory_load64_le(stack, bvadd64(R31, 8bv64)), gamma_load64(Gamma_stack, bvadd64(R31, 8bv64)); + R30, Gamma_R30 := $load$18, Gamma_$load$18; + R31, Gamma_R31 := bvadd64(R31, 32bv64), Gamma_R31; + goto main_basil_return; + main_basil_return: + assume {:captureState "main_basil_return"} true; return; } diff --git a/src/test/correct/function/gcc_pic/function.gts b/src/test/correct/function/gcc_pic/function.gts deleted file mode 100644 index a2fdd0459..000000000 Binary files a/src/test/correct/function/gcc_pic/function.gts and /dev/null differ diff --git a/src/test/correct/function/gcc_pic/function.md5sum b/src/test/correct/function/gcc_pic/function.md5sum new file mode 100644 index 000000000..4087f7787 --- /dev/null +++ b/src/test/correct/function/gcc_pic/function.md5sum @@ -0,0 +1,5 @@ +9d37b44b8f65f056fddbc891fdd23a4f correct/function/gcc_pic/a.out +4b8c7984c4dd18217b551d1b2cbd5c3a correct/function/gcc_pic/function.adt +78674a74a22a071b6c9c83e3aa36d6d1 correct/function/gcc_pic/function.bir +5f44bee22c467d5592adbd7801f29ae0 correct/function/gcc_pic/function.relf +939909df6dd93accb98ad7f3bd9614cf correct/function/gcc_pic/function.gts diff --git a/src/test/correct/function/gcc_pic/function.relf b/src/test/correct/function/gcc_pic/function.relf deleted file mode 100644 index d539d67d7..000000000 --- a/src/test/correct/function/gcc_pic/function.relf +++ /dev/null @@ -1,125 +0,0 @@ - -Relocation section '.rela.dyn' at offset 0x460 contains 10 entries: - Offset Info Type Symbol's Value Symbol's Name + Addend -0000000000010d88 0000000000000403 R_AARCH64_RELATIVE 750 -0000000000010d90 0000000000000403 R_AARCH64_RELATIVE 700 -0000000000010fd8 0000000000000403 R_AARCH64_RELATIVE 11014 -0000000000010fe8 0000000000000403 R_AARCH64_RELATIVE 11018 -0000000000010ff0 0000000000000403 R_AARCH64_RELATIVE 754 -0000000000011008 0000000000000403 R_AARCH64_RELATIVE 11008 -0000000000010fc8 0000000400000401 R_AARCH64_GLOB_DAT 0000000000000000 _ITM_deregisterTMCloneTable + 0 -0000000000010fd0 0000000500000401 R_AARCH64_GLOB_DAT 0000000000000000 __cxa_finalize@GLIBC_2.17 + 0 -0000000000010fe0 0000000600000401 R_AARCH64_GLOB_DAT 0000000000000000 __gmon_start__ + 0 -0000000000010ff8 0000000800000401 R_AARCH64_GLOB_DAT 0000000000000000 _ITM_registerTMCloneTable + 0 - -Relocation section '.rela.plt' at offset 0x550 contains 4 entries: - Offset Info Type Symbol's Value Symbol's Name + Addend -0000000000010fa0 0000000300000402 R_AARCH64_JUMP_SLOT 0000000000000000 __libc_start_main@GLIBC_2.34 + 0 -0000000000010fa8 0000000500000402 R_AARCH64_JUMP_SLOT 0000000000000000 __cxa_finalize@GLIBC_2.17 + 0 -0000000000010fb0 0000000600000402 R_AARCH64_JUMP_SLOT 0000000000000000 __gmon_start__ + 0 -0000000000010fb8 0000000700000402 R_AARCH64_JUMP_SLOT 0000000000000000 abort@GLIBC_2.17 + 0 - -Symbol table '.dynsym' contains 9 entries: - Num: Value Size Type Bind Vis Ndx Name - 0: 0000000000000000 0 NOTYPE LOCAL DEFAULT UND - 1: 00000000000005b0 0 SECTION LOCAL DEFAULT 11 .init - 2: 0000000000011000 0 SECTION LOCAL DEFAULT 22 .data - 3: 0000000000000000 0 FUNC GLOBAL DEFAULT UND __libc_start_main@GLIBC_2.34 (2) - 4: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_deregisterTMCloneTable - 5: 0000000000000000 0 FUNC WEAK DEFAULT UND __cxa_finalize@GLIBC_2.17 (3) - 6: 0000000000000000 0 NOTYPE WEAK DEFAULT UND __gmon_start__ - 7: 0000000000000000 0 FUNC GLOBAL DEFAULT UND abort@GLIBC_2.17 (3) - 8: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_registerTMCloneTable - -Symbol table '.symtab' contains 90 entries: - Num: Value Size Type Bind Vis Ndx Name - 0: 0000000000000000 0 NOTYPE LOCAL DEFAULT UND - 1: 0000000000000238 0 SECTION LOCAL DEFAULT 1 .interp - 2: 0000000000000254 0 SECTION LOCAL DEFAULT 2 .note.gnu.build-id - 3: 0000000000000278 0 SECTION LOCAL DEFAULT 3 .note.ABI-tag - 4: 0000000000000298 0 SECTION LOCAL DEFAULT 4 .gnu.hash - 5: 00000000000002b8 0 SECTION LOCAL DEFAULT 5 .dynsym - 6: 0000000000000390 0 SECTION LOCAL DEFAULT 6 .dynstr - 7: 000000000000041e 0 SECTION LOCAL DEFAULT 7 .gnu.version - 8: 0000000000000430 0 SECTION LOCAL DEFAULT 8 .gnu.version_r - 9: 0000000000000460 0 SECTION LOCAL DEFAULT 9 .rela.dyn - 10: 0000000000000550 0 SECTION LOCAL DEFAULT 10 .rela.plt - 11: 00000000000005b0 0 SECTION LOCAL DEFAULT 11 .init - 12: 00000000000005d0 0 SECTION LOCAL DEFAULT 12 .plt - 13: 0000000000000640 0 SECTION LOCAL DEFAULT 13 .text - 14: 0000000000000794 0 SECTION LOCAL DEFAULT 14 .fini - 15: 00000000000007a8 0 SECTION LOCAL DEFAULT 15 .rodata - 16: 00000000000007ac 0 SECTION LOCAL DEFAULT 16 .eh_frame_hdr - 17: 00000000000007f0 0 SECTION LOCAL DEFAULT 17 .eh_frame - 18: 0000000000010d88 0 SECTION LOCAL DEFAULT 18 .init_array - 19: 0000000000010d90 0 SECTION LOCAL DEFAULT 19 .fini_array - 20: 0000000000010d98 0 SECTION LOCAL DEFAULT 20 .dynamic - 21: 0000000000010f88 0 SECTION LOCAL DEFAULT 21 .got - 22: 0000000000011000 0 SECTION LOCAL DEFAULT 22 .data - 23: 0000000000011010 0 SECTION LOCAL DEFAULT 23 .bss - 24: 0000000000000000 0 SECTION LOCAL DEFAULT 24 .comment - 25: 0000000000000000 0 FILE LOCAL DEFAULT ABS Scrt1.o - 26: 0000000000000278 0 NOTYPE LOCAL DEFAULT 3 $d - 27: 0000000000000278 32 OBJECT LOCAL DEFAULT 3 __abi_tag - 28: 0000000000000640 0 NOTYPE LOCAL DEFAULT 13 $x - 29: 0000000000000804 0 NOTYPE LOCAL DEFAULT 17 $d - 30: 00000000000007a8 0 NOTYPE LOCAL DEFAULT 15 $d - 31: 0000000000000000 0 FILE LOCAL DEFAULT ABS crti.o - 32: 0000000000000674 0 NOTYPE LOCAL DEFAULT 13 $x - 33: 0000000000000674 20 FUNC LOCAL DEFAULT 13 call_weak_fn - 34: 00000000000005b0 0 NOTYPE LOCAL DEFAULT 11 $x - 35: 0000000000000794 0 NOTYPE LOCAL DEFAULT 14 $x - 36: 0000000000000000 0 FILE LOCAL DEFAULT ABS crtn.o - 37: 00000000000005c0 0 NOTYPE LOCAL DEFAULT 11 $x - 38: 00000000000007a0 0 NOTYPE LOCAL DEFAULT 14 $x - 39: 0000000000000000 0 FILE LOCAL DEFAULT ABS crtstuff.c - 40: 0000000000000690 0 NOTYPE LOCAL DEFAULT 13 $x - 41: 0000000000000690 0 FUNC LOCAL DEFAULT 13 deregister_tm_clones - 42: 00000000000006c0 0 FUNC LOCAL DEFAULT 13 register_tm_clones - 43: 0000000000011008 0 NOTYPE LOCAL DEFAULT 22 $d - 44: 0000000000000700 0 FUNC LOCAL DEFAULT 13 __do_global_dtors_aux - 45: 0000000000011010 1 OBJECT LOCAL DEFAULT 23 completed.0 - 46: 0000000000010d90 0 NOTYPE LOCAL DEFAULT 19 $d - 47: 0000000000010d90 0 OBJECT LOCAL DEFAULT 19 __do_global_dtors_aux_fini_array_entry - 48: 0000000000000750 0 FUNC LOCAL DEFAULT 13 frame_dummy - 49: 0000000000010d88 0 NOTYPE LOCAL DEFAULT 18 $d - 50: 0000000000010d88 0 OBJECT LOCAL DEFAULT 18 __frame_dummy_init_array_entry - 51: 0000000000000818 0 NOTYPE LOCAL DEFAULT 17 $d - 52: 0000000000011010 0 NOTYPE LOCAL DEFAULT 23 $d - 53: 0000000000000000 0 FILE LOCAL DEFAULT ABS function.c - 54: 0000000000011014 0 NOTYPE LOCAL DEFAULT 23 $d - 55: 0000000000000754 0 NOTYPE LOCAL DEFAULT 13 $x - 56: 0000000000000878 0 NOTYPE LOCAL DEFAULT 17 $d - 57: 0000000000000000 0 FILE LOCAL DEFAULT ABS crtstuff.c - 58: 00000000000008ac 0 NOTYPE LOCAL DEFAULT 17 $d - 59: 00000000000008ac 0 OBJECT LOCAL DEFAULT 17 __FRAME_END__ - 60: 0000000000000000 0 FILE LOCAL DEFAULT ABS - 61: 0000000000010d98 0 OBJECT LOCAL DEFAULT ABS _DYNAMIC - 62: 00000000000007ac 0 NOTYPE LOCAL DEFAULT 16 __GNU_EH_FRAME_HDR - 63: 0000000000010fc0 0 OBJECT LOCAL DEFAULT ABS _GLOBAL_OFFSET_TABLE_ - 64: 00000000000005d0 0 NOTYPE LOCAL DEFAULT 12 $x - 65: 0000000000000000 0 FUNC GLOBAL DEFAULT UND __libc_start_main@GLIBC_2.34 - 66: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_deregisterTMCloneTable - 67: 0000000000011000 0 NOTYPE WEAK DEFAULT 22 data_start - 68: 0000000000011010 0 NOTYPE GLOBAL DEFAULT 23 __bss_start__ - 69: 0000000000000000 0 FUNC WEAK DEFAULT UND __cxa_finalize@GLIBC_2.17 - 70: 0000000000011020 0 NOTYPE GLOBAL DEFAULT 23 _bss_end__ - 71: 0000000000011010 0 NOTYPE GLOBAL DEFAULT 22 _edata - 72: 0000000000011014 4 OBJECT GLOBAL DEFAULT 23 x - 73: 0000000000000794 0 FUNC GLOBAL HIDDEN 14 _fini - 74: 0000000000011020 0 NOTYPE GLOBAL DEFAULT 23 __bss_end__ - 75: 000000000000078c 8 FUNC GLOBAL DEFAULT 13 get_two - 76: 0000000000011000 0 NOTYPE GLOBAL DEFAULT 22 __data_start - 77: 0000000000000000 0 NOTYPE WEAK DEFAULT UND __gmon_start__ - 78: 0000000000011008 0 OBJECT GLOBAL HIDDEN 22 __dso_handle - 79: 0000000000000000 0 FUNC GLOBAL DEFAULT UND abort@GLIBC_2.17 - 80: 00000000000007a8 4 OBJECT GLOBAL DEFAULT 15 _IO_stdin_used - 81: 0000000000011020 0 NOTYPE GLOBAL DEFAULT 23 _end - 82: 0000000000000640 52 FUNC GLOBAL DEFAULT 13 _start - 83: 0000000000011020 0 NOTYPE GLOBAL DEFAULT 23 __end__ - 84: 0000000000011018 4 OBJECT GLOBAL DEFAULT 23 y - 85: 0000000000011010 0 NOTYPE GLOBAL DEFAULT 23 __bss_start - 86: 0000000000000754 56 FUNC GLOBAL DEFAULT 13 main - 87: 0000000000011010 0 OBJECT GLOBAL HIDDEN 22 __TMC_END__ - 88: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_registerTMCloneTable - 89: 00000000000005b0 0 FUNC GLOBAL HIDDEN 11 _init diff --git a/src/test/correct/function/gcc_pic/function_gtirb.expected b/src/test/correct/function/gcc_pic/function_gtirb.expected index fcc782b53..e39134d4b 100644 --- a/src/test/correct/function/gcc_pic/function_gtirb.expected +++ b/src/test/correct/function/gcc_pic/function_gtirb.expected @@ -1,5 +1,6 @@ var {:extern} Gamma_R0: bool; var {:extern} Gamma_R1: bool; +var {:extern} Gamma_R19: bool; var {:extern} Gamma_R29: bool; var {:extern} Gamma_R30: bool; var {:extern} Gamma_R31: bool; @@ -7,15 +8,16 @@ var {:extern} Gamma_mem: [bv64]bool; var {:extern} Gamma_stack: [bv64]bool; var {:extern} R0: bv64; var {:extern} R1: bv64; +var {:extern} R19: bv64; var {:extern} R29: bv64; var {:extern} R30: bv64; var {:extern} R31: bv64; var {:extern} mem: [bv64]bv8; var {:extern} stack: [bv64]bv8; const {:extern} $x_addr: bv64; -axiom ($x_addr == 69652bv64); +axiom ($x_addr == 4325400bv64); const {:extern} $y_addr: bv64; -axiom ($y_addr == 69656bv64); +axiom ($y_addr == 4325396bv64); function {:extern} L(mem$in: [bv64]bv8, index: bv64) returns (bool) { false } @@ -58,13 +60,7 @@ procedure {:extern} rely(); modifies Gamma_mem, mem; ensures (Gamma_mem == old(Gamma_mem)); ensures (mem == old(mem)); - free ensures (memory_load32_le(mem, 1960bv64) == 131073bv32); - free ensures (memory_load64_le(mem, 69000bv64) == 1872bv64); - free ensures (memory_load64_le(mem, 69008bv64) == 1792bv64); - free ensures (memory_load64_le(mem, 69592bv64) == 69652bv64); - free ensures (memory_load64_le(mem, 69608bv64) == 69656bv64); - free ensures (memory_load64_le(mem, 69616bv64) == 1876bv64); - free ensures (memory_load64_le(mem, 69640bv64) == 69640bv64); + free ensures (memory_load32_le(mem, 4196332bv64) == 131073bv32); procedure {:extern} rely_transitive(); modifies Gamma_mem, mem; @@ -82,113 +78,96 @@ procedure {:extern} rely_reflexive(); procedure {:extern} guarantee_reflexive(); modifies Gamma_mem, mem; -procedure main_1876(); - modifies Gamma_R0, Gamma_R1, Gamma_R29, Gamma_R30, Gamma_R31, Gamma_mem, Gamma_stack, R0, R1, R29, R30, R31, mem, stack; +procedure main(); + modifies Gamma_R0, Gamma_R1, Gamma_R19, Gamma_R29, Gamma_R30, Gamma_R31, Gamma_mem, Gamma_stack, R0, R1, R19, R29, R30, R31, mem, stack; requires (gamma_load32(Gamma_mem, $x_addr) == true); requires (gamma_load32(Gamma_mem, $y_addr) == true); - free requires (memory_load64_le(mem, 69632bv64) == 0bv64); - free requires (memory_load64_le(mem, 69640bv64) == 69640bv64); - free requires (memory_load32_le(mem, 1960bv64) == 131073bv32); - free requires (memory_load64_le(mem, 69000bv64) == 1872bv64); - free requires (memory_load64_le(mem, 69008bv64) == 1792bv64); - free requires (memory_load64_le(mem, 69592bv64) == 69652bv64); - free requires (memory_load64_le(mem, 69608bv64) == 69656bv64); - free requires (memory_load64_le(mem, 69616bv64) == 1876bv64); - free requires (memory_load64_le(mem, 69640bv64) == 69640bv64); + free requires (memory_load64_le(mem, 4325376bv64) == 0bv64); + free requires (memory_load64_le(mem, 4325384bv64) == 0bv64); + free requires (memory_load32_le(mem, 4196332bv64) == 131073bv32); + free ensures (Gamma_R19 == old(Gamma_R19)); free ensures (Gamma_R29 == old(Gamma_R29)); free ensures (Gamma_R31 == old(Gamma_R31)); + free ensures (R19 == old(R19)); free ensures (R29 == old(R29)); free ensures (R31 == old(R31)); - free ensures (memory_load32_le(mem, 1960bv64) == 131073bv32); - free ensures (memory_load64_le(mem, 69000bv64) == 1872bv64); - free ensures (memory_load64_le(mem, 69008bv64) == 1792bv64); - free ensures (memory_load64_le(mem, 69592bv64) == 69652bv64); - free ensures (memory_load64_le(mem, 69608bv64) == 69656bv64); - free ensures (memory_load64_le(mem, 69616bv64) == 1876bv64); - free ensures (memory_load64_le(mem, 69640bv64) == 69640bv64); - -implementation main_1876() + free ensures (memory_load32_le(mem, 4196332bv64) == 131073bv32); + +implementation main() { - var Cse0__5_0_0: bv64; - var Gamma_Cse0__5_0_0: bool; - var Gamma_load5: bool; - var Gamma_load6: bool; - var Gamma_load7: bool; - var Gamma_load8: bool; - var load5: bv64; - var load6: bv64; - var load7: bv64; - var load8: bv64; - main_1876__0__CDIUh9GHRvaZeUA_w4~N8g: - assume {:captureState "main_1876__0__CDIUh9GHRvaZeUA_w4~N8g"} true; - Cse0__5_0_0, Gamma_Cse0__5_0_0 := bvadd64(R31, 18446744073709551600bv64), Gamma_R31; - stack, Gamma_stack := memory_store64_le(stack, Cse0__5_0_0, R29), gamma_store64(Gamma_stack, Cse0__5_0_0, Gamma_R29); - assume {:captureState "1876_1"} true; - stack, Gamma_stack := memory_store64_le(stack, bvadd64(Cse0__5_0_0, 8bv64), R30), gamma_store64(Gamma_stack, bvadd64(Cse0__5_0_0, 8bv64), Gamma_R30); - assume {:captureState "1876_2"} true; - R31, Gamma_R31 := Cse0__5_0_0, Gamma_Cse0__5_0_0; + var $load1: bv64; + var $load2: bv64; + var $load3: bv64; + var $load4: bv64; + var $load5: bv64; + var Cse0__5$1$0: bv64; + var Gamma_$load1: bool; + var Gamma_$load2: bool; + var Gamma_$load3: bool; + var Gamma_$load4: bool; + var Gamma_$load5: bool; + var Gamma_Cse0__5$1$0: bool; + $main$__0__$xdHqi8HzTJ~zBYVemlzAtg: + assume {:captureState "$main$__0__$xdHqi8HzTJ~zBYVemlzAtg"} true; + Cse0__5$1$0, Gamma_Cse0__5$1$0 := bvadd64(R31, 18446744073709551584bv64), Gamma_R31; + stack, Gamma_stack := memory_store64_le(stack, Cse0__5$1$0, R29), gamma_store64(Gamma_stack, Cse0__5$1$0, Gamma_R29); + assume {:captureState "4195968$1"} true; + stack, Gamma_stack := memory_store64_le(stack, bvadd64(Cse0__5$1$0, 8bv64), R30), gamma_store64(Gamma_stack, bvadd64(Cse0__5$1$0, 8bv64), Gamma_R30); + assume {:captureState "4195968$2"} true; + R31, Gamma_R31 := Cse0__5$1$0, Gamma_Cse0__5$1$0; + R1, Gamma_R1 := 1bv64, true; R29, Gamma_R29 := R31, Gamma_R31; - R0, Gamma_R0 := 65536bv64, true; + stack, Gamma_stack := memory_store64_le(stack, bvadd64(R31, 16bv64), R19), gamma_store64(Gamma_stack, bvadd64(R31, 16bv64), Gamma_R19); + assume {:captureState "4195980$0"} true; + R19, Gamma_R19 := 4321280bv64, true; call rely(); - load5, Gamma_load5 := memory_load64_le(mem, bvadd64(R0, 4056bv64)), (gamma_load64(Gamma_mem, bvadd64(R0, 4056bv64)) || L(mem, bvadd64(R0, 4056bv64))); - R0, Gamma_R0 := load5, Gamma_load5; - R1, Gamma_R1 := 1bv64, true; + $load5, Gamma_$load5 := memory_load64_le(mem, bvadd64(R19, 4064bv64)), (gamma_load64(Gamma_mem, bvadd64(R19, 4064bv64)) || L(mem, bvadd64(R19, 4064bv64))); + R0, Gamma_R0 := $load5, Gamma_$load5; call rely(); assert (L(mem, R0) ==> Gamma_R1); mem, Gamma_mem := memory_store32_le(mem, R0, R1[32:0]), gamma_store32(Gamma_mem, R0, Gamma_R1); - assume {:captureState "1896_0"} true; - R30, Gamma_R30 := 1904bv64, true; - call get_two_1932(); - goto main_1876__1__ILFoiTaWSQyMZ9c2qMX3nA; - main_1876__1__ILFoiTaWSQyMZ9c2qMX3nA: - assume {:captureState "main_1876__1__ILFoiTaWSQyMZ9c2qMX3nA"} true; - R1, Gamma_R1 := zero_extend32_32(R0[32:0]), Gamma_R0; - R0, Gamma_R0 := 65536bv64, true; - call rely(); - load6, Gamma_load6 := memory_load64_le(mem, bvadd64(R0, 4072bv64)), (gamma_load64(Gamma_mem, bvadd64(R0, 4072bv64)) || L(mem, bvadd64(R0, 4072bv64))); - R0, Gamma_R0 := load6, Gamma_load6; + assume {:captureState "4195992$0"} true; + R30, Gamma_R30 := 4196000bv64, true; + call get_two(); + goto $main$__1__$t_6C~3O4SbalxMsQ9Vg3LA; + $main$__1__$t_6C~3O4SbalxMsQ9Vg3LA: + assume {:captureState "$main$__1__$t_6C~3O4SbalxMsQ9Vg3LA"} true; call rely(); - assert (L(mem, R0) ==> Gamma_R1); - mem, Gamma_mem := memory_store32_le(mem, R0, R1[32:0]), gamma_store32(Gamma_mem, R0, Gamma_R1); - assume {:captureState "1916_0"} true; + $load1, Gamma_$load1 := memory_load64_le(mem, bvadd64(R19, 4080bv64)), (gamma_load64(Gamma_mem, bvadd64(R19, 4080bv64)) || L(mem, bvadd64(R19, 4080bv64))); + R19, Gamma_R19 := $load1, Gamma_$load1; + R1, Gamma_R1 := zero_extend32_32(R0[32:0]), Gamma_R0; R0, Gamma_R0 := 0bv64, true; - load7, Gamma_load7 := memory_load64_le(stack, R31), gamma_load64(Gamma_stack, R31); - R29, Gamma_R29 := load7, Gamma_load7; - load8, Gamma_load8 := memory_load64_le(stack, bvadd64(R31, 8bv64)), gamma_load64(Gamma_stack, bvadd64(R31, 8bv64)); - R30, Gamma_R30 := load8, Gamma_load8; - R31, Gamma_R31 := bvadd64(R31, 16bv64), Gamma_R31; - goto main_1876_basil_return; - main_1876_basil_return: - assume {:captureState "main_1876_basil_return"} true; + call rely(); + assert (L(mem, R19) ==> Gamma_R1); + mem, Gamma_mem := memory_store32_le(mem, R19, R1[32:0]), gamma_store32(Gamma_mem, R19, Gamma_R1); + assume {:captureState "4196012$0"} true; + $load2, Gamma_$load2 := memory_load64_le(stack, bvadd64(R31, 16bv64)), gamma_load64(Gamma_stack, bvadd64(R31, 16bv64)); + R19, Gamma_R19 := $load2, Gamma_$load2; + $load3, Gamma_$load3 := memory_load64_le(stack, R31), gamma_load64(Gamma_stack, R31); + R29, Gamma_R29 := $load3, Gamma_$load3; + $load4, Gamma_$load4 := memory_load64_le(stack, bvadd64(R31, 8bv64)), gamma_load64(Gamma_stack, bvadd64(R31, 8bv64)); + R30, Gamma_R30 := $load4, Gamma_$load4; + R31, Gamma_R31 := bvadd64(R31, 32bv64), Gamma_R31; + goto main_basil_return; + main_basil_return: + assume {:captureState "main_basil_return"} true; return; } -procedure get_two_1932(); +procedure get_two(); modifies Gamma_R0, R0; - free requires (memory_load32_le(mem, 1960bv64) == 131073bv32); - free requires (memory_load64_le(mem, 69000bv64) == 1872bv64); - free requires (memory_load64_le(mem, 69008bv64) == 1792bv64); - free requires (memory_load64_le(mem, 69592bv64) == 69652bv64); - free requires (memory_load64_le(mem, 69608bv64) == 69656bv64); - free requires (memory_load64_le(mem, 69616bv64) == 1876bv64); - free requires (memory_load64_le(mem, 69640bv64) == 69640bv64); + free requires (memory_load32_le(mem, 4196332bv64) == 131073bv32); ensures (Gamma_R0 == true); - free ensures (memory_load32_le(mem, 1960bv64) == 131073bv32); - free ensures (memory_load64_le(mem, 69000bv64) == 1872bv64); - free ensures (memory_load64_le(mem, 69008bv64) == 1792bv64); - free ensures (memory_load64_le(mem, 69592bv64) == 69652bv64); - free ensures (memory_load64_le(mem, 69608bv64) == 69656bv64); - free ensures (memory_load64_le(mem, 69616bv64) == 1876bv64); - free ensures (memory_load64_le(mem, 69640bv64) == 69640bv64); - -implementation get_two_1932() + free ensures (memory_load32_le(mem, 4196332bv64) == 131073bv32); + +implementation get_two() { - get_two_1932__0__3vTRMgrHQjWHoxnq48nf0w: - assume {:captureState "get_two_1932__0__3vTRMgrHQjWHoxnq48nf0w"} true; + $get_two$__0__$32fWxY7~R~~JNJOFTmT~Sg: + assume {:captureState "$get_two$__0__$32fWxY7~R~~JNJOFTmT~Sg"} true; R0, Gamma_R0 := 2bv64, true; - goto get_two_1932_basil_return; - get_two_1932_basil_return: - assume {:captureState "get_two_1932_basil_return"} true; + goto get_two_basil_return; + get_two_basil_return: + assume {:captureState "get_two_basil_return"} true; return; } diff --git a/src/test/correct/function1/clang/function1.adt b/src/test/correct/function1/clang/function1.adt deleted file mode 100644 index d0d18ae2f..000000000 --- a/src/test/correct/function1/clang/function1.adt +++ /dev/null @@ -1,616 +0,0 @@ -Project(Attrs([Attr("filename","\"clang/function1.out\""), -Attr("image-specification","(declare abi (name str))\n(declare arch (name str))\n(declare base-address (addr int))\n(declare bias (off int))\n(declare bits (size int))\n(declare code-region (addr int) (size int) (off int))\n(declare code-start (addr int))\n(declare entry-point (addr int))\n(declare external-reference (addr int) (name str))\n(declare format (name str))\n(declare is-executable (flag bool))\n(declare is-little-endian (flag bool))\n(declare llvm:base-address (addr int))\n(declare llvm:code-entry (name str) (off int) (size int))\n(declare llvm:coff-import-library (name str))\n(declare llvm:coff-virtual-section-header (name str) (addr int) (size int))\n(declare llvm:elf-program-header (name str) (off int) (size int))\n(declare llvm:elf-program-header-flags (name str) (ld bool) (r bool) \n (w bool) (x bool))\n(declare llvm:elf-virtual-program-header (name str) (addr int) (size int))\n(declare llvm:entry-point (addr int))\n(declare llvm:macho-symbol (name str) (value int))\n(declare llvm:name-reference (at int) (name str))\n(declare llvm:relocation (at int) (addr int))\n(declare llvm:section-entry (name str) (addr int) (size int) (off int))\n(declare llvm:section-flags (name str) (r bool) (w bool) (x bool))\n(declare llvm:segment-command (name str) (off int) (size int))\n(declare llvm:segment-command-flags (name str) (r bool) (w bool) (x bool))\n(declare llvm:symbol-entry (name str) (addr int) (size int) (off int)\n (value int))\n(declare llvm:virtual-segment-command (name str) (addr int) (size int))\n(declare mapped (addr int) (size int) (off int))\n(declare named-region (addr int) (size int) (name str))\n(declare named-symbol (addr int) (name str))\n(declare require (name str))\n(declare section (addr int) (size int))\n(declare segment (addr int) (size int) (r bool) (w bool) (x bool))\n(declare subarch (name str))\n(declare symbol-chunk (addr int) (size int) (root int))\n(declare symbol-value (addr int) (value int))\n(declare system (name str))\n(declare vendor (name str))\n\n(abi unknown)\n(arch aarch64)\n(base-address 0)\n(bias 0)\n(bits 64)\n(code-region 2004 20 2004)\n(code-region 1600 404 1600)\n(code-region 1488 112 1488)\n(code-region 1464 24 1464)\n(code-start 1652)\n(code-start 1876)\n(code-start 1600)\n(code-start 1924)\n(entry-point 1600)\n(external-reference 69568 _ITM_deregisterTMCloneTable)\n(external-reference 69576 __cxa_finalize)\n(external-reference 69584 __gmon_start__)\n(external-reference 69600 _ITM_registerTMCloneTable)\n(external-reference 69632 __libc_start_main)\n(external-reference 69640 __cxa_finalize)\n(external-reference 69648 __gmon_start__)\n(external-reference 69656 abort)\n(external-reference 69664 printf)\n(format elf)\n(is-executable true)\n(is-little-endian true)\n(llvm:base-address 0)\n(llvm:code-entry printf 0 0)\n(llvm:code-entry abort 0 0)\n(llvm:code-entry __cxa_finalize 0 0)\n(llvm:code-entry __libc_start_main 0 0)\n(llvm:code-entry _init 1464 0)\n(llvm:code-entry printf@GLIBC_2.17 0 0)\n(llvm:code-entry main 1924 80)\n(llvm:code-entry _start 1600 52)\n(llvm:code-entry abort@GLIBC_2.17 0 0)\n(llvm:code-entry get_two 1876 48)\n(llvm:code-entry _fini 2004 0)\n(llvm:code-entry __cxa_finalize@GLIBC_2.17 0 0)\n(llvm:code-entry __libc_start_main@GLIBC_2.34 0 0)\n(llvm:code-entry frame_dummy 1872 0)\n(llvm:code-entry __do_global_dtors_aux 1792 0)\n(llvm:code-entry register_tm_clones 1728 0)\n(llvm:code-entry deregister_tm_clones 1680 0)\n(llvm:code-entry call_weak_fn 1652 20)\n(llvm:code-entry .fini 2004 20)\n(llvm:code-entry .text 1600 404)\n(llvm:code-entry .plt 1488 112)\n(llvm:code-entry .init 1464 24)\n(llvm:elf-program-header 08 3528 568)\n(llvm:elf-program-header 07 0 0)\n(llvm:elf-program-header 06 2032 68)\n(llvm:elf-program-header 05 596 68)\n(llvm:elf-program-header 04 3544 480)\n(llvm:elf-program-header 03 3528 624)\n(llvm:elf-program-header 02 0 2328)\n(llvm:elf-program-header 01 568 27)\n(llvm:elf-program-header 00 64 504)\n(llvm:elf-program-header-flags 08 false true false false)\n(llvm:elf-program-header-flags 07 false true true false)\n(llvm:elf-program-header-flags 06 false true false false)\n(llvm:elf-program-header-flags 05 false true false false)\n(llvm:elf-program-header-flags 04 false true true false)\n(llvm:elf-program-header-flags 03 true true true false)\n(llvm:elf-program-header-flags 02 true true false true)\n(llvm:elf-program-header-flags 01 false true false false)\n(llvm:elf-program-header-flags 00 false true false false)\n(llvm:elf-virtual-program-header 08 69064 568)\n(llvm:elf-virtual-program-header 07 0 0)\n(llvm:elf-virtual-program-header 06 2032 68)\n(llvm:elf-virtual-program-header 05 596 68)\n(llvm:elf-virtual-program-header 04 69080 480)\n(llvm:elf-virtual-program-header 03 69064 640)\n(llvm:elf-virtual-program-header 02 0 2328)\n(llvm:elf-virtual-program-header 01 568 27)\n(llvm:elf-virtual-program-header 00 64 504)\n(llvm:entry-point 1600)\n(llvm:name-reference 69664 printf)\n(llvm:name-reference 69656 abort)\n(llvm:name-reference 69648 __gmon_start__)\n(llvm:name-reference 69640 __cxa_finalize)\n(llvm:name-reference 69632 __libc_start_main)\n(llvm:name-reference 69600 _ITM_registerTMCloneTable)\n(llvm:name-reference 69584 __gmon_start__)\n(llvm:name-reference 69576 __cxa_finalize)\n(llvm:name-reference 69568 _ITM_deregisterTMCloneTable)\n(llvm:section-entry .shstrtab 0 259 7076)\n(llvm:section-entry .strtab 0 596 6480)\n(llvm:section-entry .symtab 0 2256 4224)\n(llvm:section-entry .comment 0 71 4152)\n(llvm:section-entry .bss 69688 16 4152)\n(llvm:section-entry .data 69672 16 4136)\n(llvm:section-entry .got.plt 69608 64 4072)\n(llvm:section-entry .got 69560 48 4024)\n(llvm:section-entry .dynamic 69080 480 3544)\n(llvm:section-entry .fini_array 69072 8 3536)\n(llvm:section-entry .init_array 69064 8 3528)\n(llvm:section-entry .eh_frame 2104 224 2104)\n(llvm:section-entry .eh_frame_hdr 2032 68 2032)\n(llvm:section-entry .rodata 2024 8 2024)\n(llvm:section-entry .fini 2004 20 2004)\n(llvm:section-entry .text 1600 404 1600)\n(llvm:section-entry .plt 1488 112 1488)\n(llvm:section-entry .init 1464 24 1464)\n(llvm:section-entry .rela.plt 1344 120 1344)\n(llvm:section-entry .rela.dyn 1152 192 1152)\n(llvm:section-entry .gnu.version_r 1104 48 1104)\n(llvm:section-entry .gnu.version 1084 20 1084)\n(llvm:section-entry .dynstr 936 148 936)\n(llvm:section-entry .dynsym 696 240 696)\n(llvm:section-entry .gnu.hash 664 28 664)\n(llvm:section-entry .note.ABI-tag 632 32 632)\n(llvm:section-entry .note.gnu.build-id 596 36 596)\n(llvm:section-entry .interp 568 27 568)\n(llvm:section-flags .shstrtab true false false)\n(llvm:section-flags .strtab true false false)\n(llvm:section-flags .symtab true false false)\n(llvm:section-flags .comment true false false)\n(llvm:section-flags .bss true true false)\n(llvm:section-flags .data true true false)\n(llvm:section-flags .got.plt true true false)\n(llvm:section-flags .got true true false)\n(llvm:section-flags .dynamic true true false)\n(llvm:section-flags .fini_array true true false)\n(llvm:section-flags .init_array true true false)\n(llvm:section-flags .eh_frame true false false)\n(llvm:section-flags .eh_frame_hdr true false false)\n(llvm:section-flags .rodata true false false)\n(llvm:section-flags .fini true false true)\n(llvm:section-flags .text true false true)\n(llvm:section-flags .plt true false true)\n(llvm:section-flags .init true false true)\n(llvm:section-flags .rela.plt true false false)\n(llvm:section-flags .rela.dyn true false false)\n(llvm:section-flags .gnu.version_r true false false)\n(llvm:section-flags .gnu.version true false false)\n(llvm:section-flags .dynstr true false false)\n(llvm:section-flags .dynsym true false false)\n(llvm:section-flags .gnu.hash true false false)\n(llvm:section-flags .note.ABI-tag true false false)\n(llvm:section-flags .note.gnu.build-id true false false)\n(llvm:section-flags .interp true false false)\n(llvm:symbol-entry printf 0 0 0 0)\n(llvm:symbol-entry abort 0 0 0 0)\n(llvm:symbol-entry __cxa_finalize 0 0 0 0)\n(llvm:symbol-entry __libc_start_main 0 0 0 0)\n(llvm:symbol-entry _init 1464 0 1464 1464)\n(llvm:symbol-entry printf@GLIBC_2.17 0 0 0 0)\n(llvm:symbol-entry main 1924 80 1924 1924)\n(llvm:symbol-entry _start 1600 52 1600 1600)\n(llvm:symbol-entry abort@GLIBC_2.17 0 0 0 0)\n(llvm:symbol-entry get_two 1876 48 1876 1876)\n(llvm:symbol-entry _fini 2004 0 2004 2004)\n(llvm:symbol-entry __cxa_finalize@GLIBC_2.17 0 0 0 0)\n(llvm:symbol-entry __libc_start_main@GLIBC_2.34 0 0 0 0)\n(llvm:symbol-entry frame_dummy 1872 0 1872 1872)\n(llvm:symbol-entry __do_global_dtors_aux 1792 0 1792 1792)\n(llvm:symbol-entry register_tm_clones 1728 0 1728 1728)\n(llvm:symbol-entry deregister_tm_clones 1680 0 1680 1680)\n(llvm:symbol-entry call_weak_fn 1652 20 1652 1652)\n(mapped 0 2328 0)\n(mapped 69064 624 3528)\n(named-region 0 2328 02)\n(named-region 69064 640 03)\n(named-region 568 27 .interp)\n(named-region 596 36 .note.gnu.build-id)\n(named-region 632 32 .note.ABI-tag)\n(named-region 664 28 .gnu.hash)\n(named-region 696 240 .dynsym)\n(named-region 936 148 .dynstr)\n(named-region 1084 20 .gnu.version)\n(named-region 1104 48 .gnu.version_r)\n(named-region 1152 192 .rela.dyn)\n(named-region 1344 120 .rela.plt)\n(named-region 1464 24 .init)\n(named-region 1488 112 .plt)\n(named-region 1600 404 .text)\n(named-region 2004 20 .fini)\n(named-region 2024 8 .rodata)\n(named-region 2032 68 .eh_frame_hdr)\n(named-region 2104 224 .eh_frame)\n(named-region 69064 8 .init_array)\n(named-region 69072 8 .fini_array)\n(named-region 69080 480 .dynamic)\n(named-region 69560 48 .got)\n(named-region 69608 64 .got.plt)\n(named-region 69672 16 .data)\n(named-region 69688 16 .bss)\n(named-region 0 71 .comment)\n(named-region 0 2256 .symtab)\n(named-region 0 596 .strtab)\n(named-region 0 259 .shstrtab)\n(named-symbol 1652 call_weak_fn)\n(named-symbol 1680 deregister_tm_clones)\n(named-symbol 1728 register_tm_clones)\n(named-symbol 1792 __do_global_dtors_aux)\n(named-symbol 1872 frame_dummy)\n(named-symbol 0 __libc_start_main@GLIBC_2.34)\n(named-symbol 0 __cxa_finalize@GLIBC_2.17)\n(named-symbol 2004 _fini)\n(named-symbol 1876 get_two)\n(named-symbol 0 abort@GLIBC_2.17)\n(named-symbol 1600 _start)\n(named-symbol 1924 main)\n(named-symbol 0 printf@GLIBC_2.17)\n(named-symbol 1464 _init)\n(named-symbol 0 __libc_start_main)\n(named-symbol 0 __cxa_finalize)\n(named-symbol 0 abort)\n(named-symbol 0 printf)\n(require libc.so.6)\n(section 568 27)\n(section 596 36)\n(section 632 32)\n(section 664 28)\n(section 696 240)\n(section 936 148)\n(section 1084 20)\n(section 1104 48)\n(section 1152 192)\n(section 1344 120)\n(section 1464 24)\n(section 1488 112)\n(section 1600 404)\n(section 2004 20)\n(section 2024 8)\n(section 2032 68)\n(section 2104 224)\n(section 69064 8)\n(section 69072 8)\n(section 69080 480)\n(section 69560 48)\n(section 69608 64)\n(section 69672 16)\n(section 69688 16)\n(section 0 71)\n(section 0 2256)\n(section 0 596)\n(section 0 259)\n(segment 0 2328 true false true)\n(segment 69064 640 true true false)\n(subarch v8)\n(symbol-chunk 1652 20 1652)\n(symbol-chunk 1876 48 1876)\n(symbol-chunk 1600 52 1600)\n(symbol-chunk 1924 80 1924)\n(symbol-value 1652 1652)\n(symbol-value 1680 1680)\n(symbol-value 1728 1728)\n(symbol-value 1792 1792)\n(symbol-value 1872 1872)\n(symbol-value 2004 2004)\n(symbol-value 1876 1876)\n(symbol-value 1600 1600)\n(symbol-value 1924 1924)\n(symbol-value 1464 1464)\n(symbol-value 0 0)\n(system \"\")\n(vendor \"\")\n"), -Attr("abi-name","\"aarch64-linux-gnu-elf\"")]), -Sections([Section(".shstrtab", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x40\x06\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xa8\x1c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x38\x00\x09\x00\x40\x00\x1d\x00\x1c\x00\x06\x00\x00\x00\x04\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x04\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x18\x09\x00\x00\x00\x00\x00\x00\x18\x09\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x01\x00\x00\x00\x06\x00\x00\x00\xc8\x0d\x00\x00\x00\x00\x00\x00\xc8\x0d\x01\x00\x00\x00\x00\x00\xc8\x0d\x01"), -Section(".strtab", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x40\x06\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xa8\x1c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x38\x00\x09\x00\x40\x00\x1d\x00\x1c\x00\x06\x00\x00\x00\x04\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x04\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x18\x09\x00\x00\x00\x00\x00\x00\x18\x09\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x01\x00\x00\x00\x06\x00\x00\x00\xc8\x0d\x00\x00\x00\x00\x00\x00\xc8\x0d\x01\x00\x00\x00\x00\x00\xc8\x0d\x01\x00\x00\x00\x00\x00\x70\x02\x00\x00\x00\x00\x00\x00\x80\x02\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x02\x00\x00\x00\x06\x00\x00\x00\xd8\x0d\x00\x00\x00\x00\x00\x00\xd8\x0d\x01\x00\x00\x00\x00\x00\xd8\x0d\x01\x00\x00\x00\x00\x00\xe0\x01\x00\x00\x00\x00\x00\x00\xe0\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x04\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x50\xe5\x74\x64\x04\x00\x00\x00\xf0\x07\x00\x00\x00\x00\x00\x00\xf0\x07\x00\x00\x00\x00\x00\x00\xf0\x07\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x51\xe5\x74\x64\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x52\xe5\x74\x64\x04\x00\x00\x00\xc8\x0d\x00\x00\x00\x00\x00\x00\xc8\x0d\x01\x00\x00\x00\x00\x00\xc8\x0d\x01\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x2f\x6c\x69\x62\x2f\x6c\x64\x2d\x6c\x69\x6e\x75\x78\x2d\x61\x61\x72\x63\x68\x36\x34\x2e\x73\x6f\x2e\x31\x00\x00"), -Section(".symtab", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x40\x06\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xa8\x1c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x38\x00\x09\x00\x40\x00\x1d\x00\x1c\x00\x06\x00\x00\x00\x04\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x04\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x18\x09\x00\x00\x00\x00\x00\x00\x18\x09\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x01\x00\x00\x00\x06\x00\x00\x00\xc8\x0d\x00\x00\x00\x00\x00\x00\xc8\x0d\x01\x00\x00\x00\x00\x00\xc8\x0d\x01\x00\x00\x00\x00\x00\x70\x02\x00\x00\x00\x00\x00\x00\x80\x02\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x02\x00\x00\x00\x06\x00\x00\x00\xd8\x0d\x00\x00\x00\x00\x00\x00\xd8\x0d\x01\x00\x00\x00\x00\x00\xd8\x0d\x01\x00\x00\x00\x00\x00\xe0\x01\x00\x00\x00\x00\x00\x00\xe0\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x04\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x50\xe5\x74\x64\x04\x00\x00\x00\xf0\x07\x00\x00\x00\x00\x00\x00\xf0\x07\x00\x00\x00\x00\x00\x00\xf0\x07\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x51\xe5\x74\x64\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x52\xe5\x74\x64\x04\x00\x00\x00\xc8\x0d\x00\x00\x00\x00\x00\x00\xc8\x0d\x01\x00\x00\x00\x00\x00\xc8\x0d\x01\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x2f\x6c\x69\x62\x2f\x6c\x64\x2d\x6c\x69\x6e\x75\x78\x2d\x61\x61\x72\x63\x68\x36\x34\x2e\x73\x6f\x2e\x31\x00\x00\x04\x00\x00\x00\x14\x00\x00\x00\x03\x00\x00\x00\x47\x4e\x55\x00\xb0\xd0\x74\x97\x2e\x95\x77\xe4\x44\xae\x81\xc3\xdb\xf4\x51\xb0\xb6\x48\x79\x85\x04\x00\x00\x00\x10\x00\x00\x00\x01\x00\x00\x00\x47\x4e\x55\x00\x00\x00\x00\x00\x03\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x01\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x0b\x00\xb8\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x17\x00\x28\x10\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4f\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x22\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6b\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x22\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x28\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5f\x5f\x63\x78\x61\x5f\x66\x69\x6e\x61\x6c\x69\x7a\x65\x00\x5f\x5f\x6c\x69\x62\x63\x5f\x73\x74\x61\x72\x74\x5f\x6d\x61\x69\x6e\x00\x61\x62\x6f\x72\x74\x00\x70\x72\x69\x6e\x74\x66\x00\x6c\x69\x62\x63\x2e\x73\x6f\x2e\x36\x00\x47\x4c\x49\x42\x43\x5f\x32\x2e\x31\x37\x00\x47\x4c\x49\x42\x43\x5f\x32\x2e\x33\x34\x00\x5f\x49\x54\x4d\x5f\x64\x65\x72\x65\x67\x69\x73\x74\x65\x72\x54\x4d\x43\x6c\x6f\x6e\x65\x54\x61\x62\x6c\x65\x00\x5f\x5f\x67\x6d\x6f\x6e\x5f\x73\x74\x61\x72\x74\x5f\x5f\x00\x5f\x49\x54\x4d\x5f\x72\x65\x67\x69\x73\x74\x65\x72\x54\x4d\x43\x6c\x6f\x6e\x65\x54\x61\x62\x6c\x65\x00\x00\x00\x00\x00\x00\x00\x02\x00\x01\x00\x03\x00\x01\x00\x03\x00\x01\x00\x03\x00\x01\x00\x02\x00\x2f\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x97\x91\x96\x06\x00\x00\x03\x00\x39\x00\x00\x00\x10\x00\x00\x00\xb4\x91\x96\x06\x00\x00\x02\x00\x44\x00\x00\x00\x00\x00\x00\x00\xc8\x0d\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x50\x07\x00\x00\x00\x00\x00\x00\xd0\x0d\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\xd8\x0f\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x84\x07\x00\x00\x00\x00\x00\x00\x30\x10\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x30\x10\x01\x00\x00\x00\x00\x00\xc0\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xc8\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xd0\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe0\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x08\x10\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x10\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x18\x10\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x20\x10\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x09\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1f\x20\x03\xd5\xfd\x7b\xbf\xa9\xfd\x03\x00\x91\x2c\x00\x00\x94\xfd\x7b\xc1\xa8\xc0\x03\x5f\xd6\xf0\x7b\xbf\xa9\x90\x00\x00\x90\x11\xfe\x47\xf9\x10\xe2\x3f\x91\x20\x02\x1f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x90\x00\x00\xb0\x11\x02\x40\xf9\x10\x02\x00\x91\x20\x02\x1f\xd6\x90\x00\x00\xb0\x11\x06\x40\xf9\x10\x22\x00\x91\x20\x02\x1f\xd6\x90\x00\x00\xb0\x11\x0a\x40\xf9\x10\x42\x00\x91\x20\x02\x1f\xd6\x90\x00\x00\xb0\x11\x0e\x40\xf9\x10\x62\x00\x91\x20\x02\x1f\xd6\x90\x00\x00\xb0\x11\x12\x40\xf9\x10\x82\x00\x91\x20\x02\x1f\xd6\x1f\x20\x03\xd5\x1d\x00\x80\xd2\x1e\x00\x80\xd2\xe5\x03\x00\xaa\xe1\x03\x40\xf9\xe2\x23\x00\x91\xe6\x03\x00\x91\x80\x00\x00\x90\x00\xec\x47\xf9\x03\x00\x80\xd2\x04\x00\x80\xd2\xe1\xff\xff\x97\xec\xff\xff\x97\x80\x00\x00\x90\x00\xe8\x47\xf9\x40\x00\x00\xb4\xe4\xff\xff\x17\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x80\x00\x00\xb0\x00\xe0\x00\x91\x81\x00\x00\xb0\x21\xe0\x00\x91\x3f\x00\x00\xeb\xc0\x00\x00\x54\x81\x00\x00\x90\x21\xe0\x47\xf9\x61\x00\x00\xb4\xf0\x03\x01\xaa\x00\x02\x1f\xd6\xc0\x03\x5f\xd6\x80\x00\x00\xb0\x00\xe0\x00\x91\x81\x00\x00\xb0\x21\xe0\x00\x91\x21\x00\x00\xcb\x22\xfc\x7f\xd3\x41\x0c\x81\x8b\x21\xfc\x41\x93\xc1\x00\x00\xb4\x82\x00\x00\x90\x42\xf0\x47\xf9\x62\x00\x00\xb4\xf0\x03\x02\xaa\x00\x02\x1f\xd6\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\xfd\x7b\xbe\xa9\xfd\x03\x00\x91\xf3\x0b\x00\xf9\x93\x00\x00\xb0\x60\xe2\x40\x39\x40\x01\x00\x35\x80\x00\x00\x90\x00\xe4\x47\xf9\x80\x00\x00\xb4\x80\x00\x00\xb0\x00\x18\x40\xf9\xb5\xff\xff\x97\xd8\xff\xff\x97\x20\x00\x80\x52\x60\xe2\x00\x39\xf3\x0b\x40\xf9\xfd\x7b\xc2\xa8\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\xdc\xff\xff\x17\xff\x43\x00\xd1\xe0\x3f\x00\x39\xe1\x0b\x00\xb9\xe2\x03\x00\xf9\xe8\x3f\x40\x39\xe9\x0b\x40\xb9\x09\x01\x09\x0b\xe8\x03\x40\xf9\x08\xc1\x29\x8b\xe0\x03\x08\x2a\xff\x43\x00\x91\xc0\x03\x5f\xd6\xfd\x7b\xbf\xa9\xfd\x03\x00\x91\x89\x00\x00\xb0\x28\x00\x80\x52\x28\x3d\x00\xb9\x20\x0c\x80\x52\x41\x01\x80\x52\x02\x80\x9c\xd2\x62\x81\xaa\xf2\x42\x00\xc0\xf2\xea\xff\xff\x97\x88\x00\x00\xb0\x00\x41\x00\xb9\x01\x41\x40\xb9\x00\x00\x00\x90\x00\xb0\x1f\x91\x9b\xff\xff\x97\xe0\x03\x1f\x2a\xfd\x7b\xc1\xa8\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\xfd\x7b\xbf\xa9\xfd\x03\x00\x91\xfd\x7b\xc1\xa8\xc0\x03\x5f\xd6\x01\x00\x02\x00\x25\x64\x0a\x00\x01\x1b\x03\x3b\x44\x00\x00\x00\x07\x00\x00\x00\x50\xfe\xff\xff\x5c\x00\x00\x00\xa0\xfe\xff\xff\x70\x00\x00\x00\xd0\xfe\xff\xff\x84\x00\x00\x00\x10\xff\xff\xff\x98\x00\x00\x00\x60\xff\xff\xff\xbc\x00\x00\x00\x64\xff\xff\xff\xe4\x00\x00\x00\x94\xff\xff\xff\xfc\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x01\x7a\x52\x00\x04\x78\x1e\x01\x1b\x0c\x1f\x00\x10\x00\x00\x00\x18\x00\x00\x00\xec\xfd\xff\xff\x34\x00\x00\x00\x00\x41\x07\x1e\x10\x00\x00\x00\x2c\x00\x00\x00\x28\xfe\xff\xff\x30\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x40\x00\x00\x00\x44\xfe\xff\xff\x3c\x00\x00\x00\x00\x00\x00\x00\x20\x00\x00\x00\x54\x00\x00\x00\x70\xfe\xff\xff\x48\x00\x00\x00\x00\x41\x0e\x20\x9d\x04\x9e\x03\x42\x93\x02\x4e\xde\xdd\xd3\x0e\x00\x00\x00\x00\x10\x00\x00\x00\x78\x00\x00\x00\x9c\xfe\xff\xff\x04\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x01\x7a\x52\x00\x01\x7c\x1e\x01"), -Section(".comment", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x40\x06\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xa8\x1c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x38\x00\x09\x00\x40\x00\x1d\x00\x1c\x00\x06\x00\x00\x00\x04\x00\x00"), -Section(".interp", 0x238, "\x2f\x6c\x69\x62\x2f\x6c\x64\x2d\x6c\x69\x6e\x75\x78\x2d\x61\x61\x72\x63\x68\x36\x34\x2e\x73\x6f\x2e\x31\x00"), -Section(".note.gnu.build-id", 0x254, "\x04\x00\x00\x00\x14\x00\x00\x00\x03\x00\x00\x00\x47\x4e\x55\x00\xb0\xd0\x74\x97\x2e\x95\x77\xe4\x44\xae\x81\xc3\xdb\xf4\x51\xb0\xb6\x48\x79\x85"), -Section(".note.ABI-tag", 0x278, "\x04\x00\x00\x00\x10\x00\x00\x00\x01\x00\x00\x00\x47\x4e\x55\x00\x00\x00\x00\x00\x03\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00"), -Section(".gnu.hash", 0x298, "\x01\x00\x00\x00\x01\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".dynsym", 0x2B8, "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x0b\x00\xb8\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x17\x00\x28\x10\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4f\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x22\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6b\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x22\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x28\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".dynstr", 0x3A8, "\x00\x5f\x5f\x63\x78\x61\x5f\x66\x69\x6e\x61\x6c\x69\x7a\x65\x00\x5f\x5f\x6c\x69\x62\x63\x5f\x73\x74\x61\x72\x74\x5f\x6d\x61\x69\x6e\x00\x61\x62\x6f\x72\x74\x00\x70\x72\x69\x6e\x74\x66\x00\x6c\x69\x62\x63\x2e\x73\x6f\x2e\x36\x00\x47\x4c\x49\x42\x43\x5f\x32\x2e\x31\x37\x00\x47\x4c\x49\x42\x43\x5f\x32\x2e\x33\x34\x00\x5f\x49\x54\x4d\x5f\x64\x65\x72\x65\x67\x69\x73\x74\x65\x72\x54\x4d\x43\x6c\x6f\x6e\x65\x54\x61\x62\x6c\x65\x00\x5f\x5f\x67\x6d\x6f\x6e\x5f\x73\x74\x61\x72\x74\x5f\x5f\x00\x5f\x49\x54\x4d\x5f\x72\x65\x67\x69\x73\x74\x65\x72\x54\x4d\x43\x6c\x6f\x6e\x65\x54\x61\x62\x6c\x65\x00"), -Section(".gnu.version", 0x43C, "\x00\x00\x00\x00\x00\x00\x02\x00\x01\x00\x03\x00\x01\x00\x03\x00\x01\x00\x03\x00"), -Section(".gnu.version_r", 0x450, "\x01\x00\x02\x00\x2f\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x97\x91\x96\x06\x00\x00\x03\x00\x39\x00\x00\x00\x10\x00\x00\x00\xb4\x91\x96\x06\x00\x00\x02\x00\x44\x00\x00\x00\x00\x00\x00\x00"), -Section(".rela.dyn", 0x480, "\xc8\x0d\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x50\x07\x00\x00\x00\x00\x00\x00\xd0\x0d\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\xd8\x0f\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x84\x07\x00\x00\x00\x00\x00\x00\x30\x10\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x30\x10\x01\x00\x00\x00\x00\x00\xc0\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xc8\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xd0\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe0\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".rela.plt", 0x540, "\x00\x10\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x08\x10\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x10\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x18\x10\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x20\x10\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x09\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".init", 0x5B8, "\x1f\x20\x03\xd5\xfd\x7b\xbf\xa9\xfd\x03\x00\x91\x2c\x00\x00\x94\xfd\x7b\xc1\xa8\xc0\x03\x5f\xd6"), -Section(".plt", 0x5D0, "\xf0\x7b\xbf\xa9\x90\x00\x00\x90\x11\xfe\x47\xf9\x10\xe2\x3f\x91\x20\x02\x1f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x90\x00\x00\xb0\x11\x02\x40\xf9\x10\x02\x00\x91\x20\x02\x1f\xd6\x90\x00\x00\xb0\x11\x06\x40\xf9\x10\x22\x00\x91\x20\x02\x1f\xd6\x90\x00\x00\xb0\x11\x0a\x40\xf9\x10\x42\x00\x91\x20\x02\x1f\xd6\x90\x00\x00\xb0\x11\x0e\x40\xf9\x10\x62\x00\x91\x20\x02\x1f\xd6\x90\x00\x00\xb0\x11\x12\x40\xf9\x10\x82\x00\x91\x20\x02\x1f\xd6"), -Section(".fini", 0x7D4, "\x1f\x20\x03\xd5\xfd\x7b\xbf\xa9\xfd\x03\x00\x91\xfd\x7b\xc1\xa8\xc0\x03\x5f\xd6"), -Section(".rodata", 0x7E8, "\x01\x00\x02\x00\x25\x64\x0a\x00"), -Section(".eh_frame_hdr", 0x7F0, "\x01\x1b\x03\x3b\x44\x00\x00\x00\x07\x00\x00\x00\x50\xfe\xff\xff\x5c\x00\x00\x00\xa0\xfe\xff\xff\x70\x00\x00\x00\xd0\xfe\xff\xff\x84\x00\x00\x00\x10\xff\xff\xff\x98\x00\x00\x00\x60\xff\xff\xff\xbc\x00\x00\x00\x64\xff\xff\xff\xe4\x00\x00\x00\x94\xff\xff\xff\xfc\x00\x00\x00"), -Section(".eh_frame", 0x838, "\x10\x00\x00\x00\x00\x00\x00\x00\x01\x7a\x52\x00\x04\x78\x1e\x01\x1b\x0c\x1f\x00\x10\x00\x00\x00\x18\x00\x00\x00\xec\xfd\xff\xff\x34\x00\x00\x00\x00\x41\x07\x1e\x10\x00\x00\x00\x2c\x00\x00\x00\x28\xfe\xff\xff\x30\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x40\x00\x00\x00\x44\xfe\xff\xff\x3c\x00\x00\x00\x00\x00\x00\x00\x20\x00\x00\x00\x54\x00\x00\x00\x70\xfe\xff\xff\x48\x00\x00\x00\x00\x41\x0e\x20\x9d\x04\x9e\x03\x42\x93\x02\x4e\xde\xdd\xd3\x0e\x00\x00\x00\x00\x10\x00\x00\x00\x78\x00\x00\x00\x9c\xfe\xff\xff\x04\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x01\x7a\x52\x00\x01\x7c\x1e\x01\x1b\x0c\x1f\x00\x14\x00\x00\x00\x18\x00\x00\x00\x78\xfe\xff\xff\x30\x00\x00\x00\x00\x44\x0e\x10\x68\x0e\x00\x00\x24\x00\x00\x00\x30\x00\x00\x00\x90\xfe\xff\xff\x50\x00\x00\x00\x00\x44\x0e\x10\x44\x0c\x1d\x10\x9e\x02\x9d\x04\x02\x40\x0c\x1f\x10\x44\x0e\x00\xde\xdd\x00\x00\x00\x00\x00\x00"), -Section(".fini_array", 0x10DD0, "\x00\x07\x00\x00\x00\x00\x00\x00"), -Section(".dynamic", 0x10DD8, "\x01\x00\x00\x00\x00\x00\x00\x00\x2f\x00\x00\x00\x00\x00\x00\x00\x0c\x00\x00\x00\x00\x00\x00\x00\xb8\x05\x00\x00\x00\x00\x00\x00\x0d\x00\x00\x00\x00\x00\x00\x00\xd4\x07\x00\x00\x00\x00\x00\x00\x19\x00\x00\x00\x00\x00\x00\x00\xc8\x0d\x01\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x1a\x00\x00\x00\x00\x00\x00\x00\xd0\x0d\x01\x00\x00\x00\x00\x00\x1c\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\xf5\xfe\xff\x6f\x00\x00\x00\x00\x98\x02\x00\x00\x00\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\xa8\x03\x00\x00\x00\x00\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\xb8\x02\x00\x00\x00\x00\x00\x00\x0a\x00\x00\x00\x00\x00\x00\x00\x94\x00\x00\x00\x00\x00\x00\x00\x0b\x00\x00\x00\x00\x00\x00\x00\x18\x00\x00\x00\x00\x00\x00\x00\x15\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\xe8\x0f\x01\x00\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x78\x00\x00\x00\x00\x00\x00\x00\x14\x00\x00\x00\x00\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x17\x00\x00\x00\x00\x00\x00\x00\x40\x05\x00\x00\x00\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x80\x04\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\xc0\x00\x00\x00\x00\x00\x00\x00\x09\x00\x00\x00\x00\x00\x00\x00\x18\x00\x00\x00\x00\x00\x00\x00\xfb\xff\xff\x6f\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\xfe\xff\xff\x6f\x00\x00\x00\x00\x50\x04\x00\x00\x00\x00\x00\x00\xff\xff\xff\x6f\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\xf0\xff\xff\x6f\x00\x00\x00\x00\x3c\x04\x00\x00\x00\x00\x00\x00\xf9\xff\xff\x6f\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".init_array", 0x10DC8, "\x50\x07\x00\x00\x00\x00\x00\x00"), -Section(".got", 0x10FB8, "\xd8\x0d\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x84\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".got.plt", 0x10FE8, "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xd0\x05\x00\x00\x00\x00\x00\x00\xd0\x05\x00\x00\x00\x00\x00\x00\xd0\x05\x00\x00\x00\x00\x00\x00\xd0\x05\x00\x00\x00\x00\x00\x00\xd0\x05\x00\x00\x00\x00\x00\x00"), -Section(".data", 0x11028, "\x00\x00\x00\x00\x00\x00\x00\x00\x30\x10\x01\x00\x00\x00\x00\x00"), -Section(".text", 0x640, "\x1f\x20\x03\xd5\x1d\x00\x80\xd2\x1e\x00\x80\xd2\xe5\x03\x00\xaa\xe1\x03\x40\xf9\xe2\x23\x00\x91\xe6\x03\x00\x91\x80\x00\x00\x90\x00\xec\x47\xf9\x03\x00\x80\xd2\x04\x00\x80\xd2\xe1\xff\xff\x97\xec\xff\xff\x97\x80\x00\x00\x90\x00\xe8\x47\xf9\x40\x00\x00\xb4\xe4\xff\xff\x17\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x80\x00\x00\xb0\x00\xe0\x00\x91\x81\x00\x00\xb0\x21\xe0\x00\x91\x3f\x00\x00\xeb\xc0\x00\x00\x54\x81\x00\x00\x90\x21\xe0\x47\xf9\x61\x00\x00\xb4\xf0\x03\x01\xaa\x00\x02\x1f\xd6\xc0\x03\x5f\xd6\x80\x00\x00\xb0\x00\xe0\x00\x91\x81\x00\x00\xb0\x21\xe0\x00\x91\x21\x00\x00\xcb\x22\xfc\x7f\xd3\x41\x0c\x81\x8b\x21\xfc\x41\x93\xc1\x00\x00\xb4\x82\x00\x00\x90\x42\xf0\x47\xf9\x62\x00\x00\xb4\xf0\x03\x02\xaa\x00\x02\x1f\xd6\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\xfd\x7b\xbe\xa9\xfd\x03\x00\x91\xf3\x0b\x00\xf9\x93\x00\x00\xb0\x60\xe2\x40\x39\x40\x01\x00\x35\x80\x00\x00\x90\x00\xe4\x47\xf9\x80\x00\x00\xb4\x80\x00\x00\xb0\x00\x18\x40\xf9\xb5\xff\xff\x97\xd8\xff\xff\x97\x20\x00\x80\x52\x60\xe2\x00\x39\xf3\x0b\x40\xf9\xfd\x7b\xc2\xa8\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\xdc\xff\xff\x17\xff\x43\x00\xd1\xe0\x3f\x00\x39\xe1\x0b\x00\xb9\xe2\x03\x00\xf9\xe8\x3f\x40\x39\xe9\x0b\x40\xb9\x09\x01\x09\x0b\xe8\x03\x40\xf9\x08\xc1\x29\x8b\xe0\x03\x08\x2a\xff\x43\x00\x91\xc0\x03\x5f\xd6\xfd\x7b\xbf\xa9\xfd\x03\x00\x91\x89\x00\x00\xb0\x28\x00\x80\x52\x28\x3d\x00\xb9\x20\x0c\x80\x52\x41\x01\x80\x52\x02\x80\x9c\xd2\x62\x81\xaa\xf2\x42\x00\xc0\xf2\xea\xff\xff\x97\x88\x00\x00\xb0\x00\x41\x00\xb9\x01\x41\x40\xb9\x00\x00\x00\x90\x00\xb0\x1f\x91\x9b\xff\xff\x97\xe0\x03\x1f\x2a\xfd\x7b\xc1\xa8\xc0\x03\x5f\xd6")]), -Memmap([Annotation(Region(0x0,0x917), Attr("segment","02 0 2328")), -Annotation(Region(0x640,0x673), Attr("symbol","\"_start\"")), -Annotation(Region(0x0,0x102), Attr("section","\".shstrtab\"")), -Annotation(Region(0x0,0x253), Attr("section","\".strtab\"")), -Annotation(Region(0x0,0x8CF), Attr("section","\".symtab\"")), -Annotation(Region(0x0,0x46), Attr("section","\".comment\"")), -Annotation(Region(0x238,0x252), Attr("section","\".interp\"")), -Annotation(Region(0x254,0x277), Attr("section","\".note.gnu.build-id\"")), -Annotation(Region(0x278,0x297), Attr("section","\".note.ABI-tag\"")), -Annotation(Region(0x298,0x2B3), Attr("section","\".gnu.hash\"")), -Annotation(Region(0x2B8,0x3A7), Attr("section","\".dynsym\"")), -Annotation(Region(0x3A8,0x43B), Attr("section","\".dynstr\"")), -Annotation(Region(0x43C,0x44F), Attr("section","\".gnu.version\"")), -Annotation(Region(0x450,0x47F), Attr("section","\".gnu.version_r\"")), -Annotation(Region(0x480,0x53F), Attr("section","\".rela.dyn\"")), -Annotation(Region(0x540,0x5B7), Attr("section","\".rela.plt\"")), -Annotation(Region(0x5B8,0x5CF), Attr("section","\".init\"")), -Annotation(Region(0x5D0,0x63F), Attr("section","\".plt\"")), -Annotation(Region(0x5B8,0x5CF), Attr("code-region","()")), -Annotation(Region(0x5D0,0x63F), Attr("code-region","()")), -Annotation(Region(0x640,0x673), Attr("symbol-info","_start 0x640 52")), -Annotation(Region(0x674,0x687), Attr("symbol","\"call_weak_fn\"")), -Annotation(Region(0x674,0x687), Attr("symbol-info","call_weak_fn 0x674 20")), -Annotation(Region(0x754,0x783), Attr("symbol","\"get_two\"")), -Annotation(Region(0x754,0x783), Attr("symbol-info","get_two 0x754 48")), -Annotation(Region(0x640,0x7D3), Attr("code-region","()")), -Annotation(Region(0x784,0x7D3), Attr("symbol","\"main\"")), -Annotation(Region(0x784,0x7D3), Attr("symbol-info","main 0x784 80")), -Annotation(Region(0x7D4,0x7E7), Attr("section","\".fini\"")), -Annotation(Region(0x7E8,0x7EF), Attr("section","\".rodata\"")), -Annotation(Region(0x7F0,0x833), Attr("section","\".eh_frame_hdr\"")), -Annotation(Region(0x838,0x917), Attr("section","\".eh_frame\"")), -Annotation(Region(0x10DC8,0x11037), Attr("segment","03 0x10DC8 640")), -Annotation(Region(0x10DD0,0x10DD7), Attr("section","\".fini_array\"")), -Annotation(Region(0x10DD8,0x10FB7), Attr("section","\".dynamic\"")), -Annotation(Region(0x10DC8,0x10DCF), Attr("section","\".init_array\"")), -Annotation(Region(0x10FB8,0x10FE7), Attr("section","\".got\"")), -Annotation(Region(0x10FE8,0x11027), Attr("section","\".got.plt\"")), -Annotation(Region(0x11028,0x11037), Attr("section","\".data\"")), -Annotation(Region(0x640,0x7D3), Attr("section","\".text\"")), -Annotation(Region(0x7D4,0x7E7), Attr("code-region","()"))]), -Program(Tid(1_827, "%00000723"), Attrs([]), - Subs([Sub(Tid(1_772, "@__cxa_finalize"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x600"), -Attr("stub","()")]), "__cxa_finalize", Args([Arg(Tid(1_828, "%00000724"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("__cxa_finalize_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(1_094, "@__cxa_finalize"), - Attrs([Attr("address","0x600")]), Phis([]), -Defs([Def(Tid(1_358, "%0000054e"), Attrs([Attr("address","0x600"), -Attr("insn","adrp x16, #69632")]), Var("R16",Imm(64)), Int(69632,64)), -Def(Tid(1_365, "%00000555"), Attrs([Attr("address","0x604"), -Attr("insn","ldr x17, [x16, #0x8]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(1_371, "%0000055b"), Attrs([Attr("address","0x608"), -Attr("insn","add x16, x16, #0x8")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(8,64)))]), Jmps([Call(Tid(1_376, "%00000560"), - Attrs([Attr("address","0x60C"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), -Sub(Tid(1_773, "@__do_global_dtors_aux"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x700")]), - "__do_global_dtors_aux", Args([Arg(Tid(1_829, "%00000725"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("__do_global_dtors_aux_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(718, "@__do_global_dtors_aux"), - Attrs([Attr("address","0x700")]), Phis([]), Defs([Def(Tid(722, "%000002d2"), - Attrs([Attr("address","0x700"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("#3",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(18446744073709551584,64))), -Def(Tid(728, "%000002d8"), Attrs([Attr("address","0x700"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("#3",Imm(64)),Var("R29",Imm(64)),LittleEndian(),64)), -Def(Tid(734, "%000002de"), Attrs([Attr("address","0x700"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("#3",Imm(64)),Int(8,64)),Var("R30",Imm(64)),LittleEndian(),64)), -Def(Tid(738, "%000002e2"), Attrs([Attr("address","0x700"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("R31",Imm(64)), -Var("#3",Imm(64))), Def(Tid(744, "%000002e8"), - Attrs([Attr("address","0x704"), Attr("insn","mov x29, sp")]), - Var("R29",Imm(64)), Var("R31",Imm(64))), Def(Tid(752, "%000002f0"), - Attrs([Attr("address","0x708"), Attr("insn","str x19, [sp, #0x10]")]), - Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(16,64)),Var("R19",Imm(64)),LittleEndian(),64)), -Def(Tid(757, "%000002f5"), Attrs([Attr("address","0x70C"), -Attr("insn","adrp x19, #69632")]), Var("R19",Imm(64)), Int(69632,64)), -Def(Tid(764, "%000002fc"), Attrs([Attr("address","0x710"), -Attr("insn","ldrb w0, [x19, #0x38]")]), Var("R0",Imm(64)), -UNSIGNED(64,Load(Var("mem",Mem(64,8)),PLUS(Var("R19",Imm(64)),Int(56,64)),LittleEndian(),8)))]), -Jmps([Goto(Tid(771, "%00000303"), Attrs([Attr("address","0x714"), -Attr("insn","cbnz w0, #0x28")]), - NEQ(Extract(31,0,Var("R0",Imm(64))),Int(0,32)), -Direct(Tid(769, "%00000301"))), Goto(Tid(1_817, "%00000719"), Attrs([]), - Int(1,1), Direct(Tid(1_039, "%0000040f")))])), Blk(Tid(1_039, "%0000040f"), - Attrs([Attr("address","0x718")]), Phis([]), -Defs([Def(Tid(1_042, "%00000412"), Attrs([Attr("address","0x718"), -Attr("insn","adrp x0, #65536")]), Var("R0",Imm(64)), Int(65536,64)), -Def(Tid(1_049, "%00000419"), Attrs([Attr("address","0x71C"), -Attr("insn","ldr x0, [x0, #0xfc8]")]), Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(4040,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(1_055, "%0000041f"), Attrs([Attr("address","0x720"), -Attr("insn","cbz x0, #0x10")]), EQ(Var("R0",Imm(64)),Int(0,64)), -Direct(Tid(1_053, "%0000041d"))), Goto(Tid(1_818, "%0000071a"), Attrs([]), - Int(1,1), Direct(Tid(1_078, "%00000436")))])), Blk(Tid(1_078, "%00000436"), - Attrs([Attr("address","0x724")]), Phis([]), -Defs([Def(Tid(1_081, "%00000439"), Attrs([Attr("address","0x724"), -Attr("insn","adrp x0, #69632")]), Var("R0",Imm(64)), Int(69632,64)), -Def(Tid(1_088, "%00000440"), Attrs([Attr("address","0x728"), -Attr("insn","ldr x0, [x0, #0x30]")]), Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(48,64)),LittleEndian(),64)), -Def(Tid(1_093, "%00000445"), Attrs([Attr("address","0x72C"), -Attr("insn","bl #-0x12c")]), Var("R30",Imm(64)), Int(1840,64))]), -Jmps([Call(Tid(1_096, "%00000448"), Attrs([Attr("address","0x72C"), -Attr("insn","bl #-0x12c")]), Int(1,1), -(Direct(Tid(1_772, "@__cxa_finalize")),Direct(Tid(1_053, "%0000041d"))))])), -Blk(Tid(1_053, "%0000041d"), Attrs([Attr("address","0x730")]), Phis([]), -Defs([Def(Tid(1_061, "%00000425"), Attrs([Attr("address","0x730"), -Attr("insn","bl #-0xa0")]), Var("R30",Imm(64)), Int(1844,64))]), -Jmps([Call(Tid(1_063, "%00000427"), Attrs([Attr("address","0x730"), -Attr("insn","bl #-0xa0")]), Int(1,1), -(Direct(Tid(1_786, "@deregister_tm_clones")),Direct(Tid(1_065, "%00000429"))))])), -Blk(Tid(1_065, "%00000429"), Attrs([Attr("address","0x734")]), Phis([]), -Defs([Def(Tid(1_068, "%0000042c"), Attrs([Attr("address","0x734"), -Attr("insn","mov w0, #0x1")]), Var("R0",Imm(64)), Int(1,64)), -Def(Tid(1_076, "%00000434"), Attrs([Attr("address","0x738"), -Attr("insn","strb w0, [x19, #0x38]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R19",Imm(64)),Int(56,64)),Extract(7,0,Var("R0",Imm(64))),LittleEndian(),8))]), -Jmps([Goto(Tid(1_819, "%0000071b"), Attrs([]), Int(1,1), -Direct(Tid(769, "%00000301")))])), Blk(Tid(769, "%00000301"), - Attrs([Attr("address","0x73C")]), Phis([]), Defs([Def(Tid(779, "%0000030b"), - Attrs([Attr("address","0x73C"), Attr("insn","ldr x19, [sp, #0x10]")]), - Var("R19",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(16,64)),LittleEndian(),64)), -Def(Tid(786, "%00000312"), Attrs([Attr("address","0x740"), -Attr("insn","ldp x29, x30, [sp], #0x20")]), Var("R29",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(791, "%00000317"), Attrs([Attr("address","0x740"), -Attr("insn","ldp x29, x30, [sp], #0x20")]), Var("R30",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(795, "%0000031b"), Attrs([Attr("address","0x740"), -Attr("insn","ldp x29, x30, [sp], #0x20")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(32,64)))]), Jmps([Call(Tid(800, "%00000320"), - Attrs([Attr("address","0x744"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), Sub(Tid(1_777, "@__libc_start_main"), - Attrs([Attr("c.proto","signed (*)(signed (*)(signed , char** , char** );* main, signed , char** , \nvoid* auxv)"), -Attr("address","0x5F0"), Attr("stub","()")]), "__libc_start_main", - Args([Arg(Tid(1_830, "%00000726"), - Attrs([Attr("c.layout","**[ : 64]"), -Attr("c.data","Top:u64 ptr ptr"), -Attr("c.type","signed (*)(signed , char** , char** );*")]), - Var("__libc_start_main_main",Imm(64)), Var("R0",Imm(64)), In()), -Arg(Tid(1_831, "%00000727"), Attrs([Attr("c.layout","[signed : 32]"), -Attr("c.data","Top:u32"), Attr("c.type","signed")]), - Var("__libc_start_main_arg2",Imm(32)), LOW(32,Var("R1",Imm(64))), In()), -Arg(Tid(1_832, "%00000728"), Attrs([Attr("c.layout","**[char : 8]"), -Attr("c.data","Top:u8 ptr ptr"), Attr("c.type","char**")]), - Var("__libc_start_main_arg3",Imm(64)), Var("R2",Imm(64)), Both()), -Arg(Tid(1_833, "%00000729"), Attrs([Attr("c.layout","*[ : 8]"), -Attr("c.data","{} ptr"), Attr("c.type","void*")]), - Var("__libc_start_main_auxv",Imm(64)), Var("R3",Imm(64)), Both()), -Arg(Tid(1_834, "%0000072a"), Attrs([Attr("c.layout","[signed : 32]"), -Attr("c.data","Top:u32"), Attr("c.type","signed")]), - Var("__libc_start_main_result",Imm(32)), LOW(32,Var("R0",Imm(64))), -Out())]), Blks([Blk(Tid(551, "@__libc_start_main"), - Attrs([Attr("address","0x5F0")]), Phis([]), -Defs([Def(Tid(1_336, "%00000538"), Attrs([Attr("address","0x5F0"), -Attr("insn","adrp x16, #69632")]), Var("R16",Imm(64)), Int(69632,64)), -Def(Tid(1_343, "%0000053f"), Attrs([Attr("address","0x5F4"), -Attr("insn","ldr x17, [x16]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R16",Imm(64)),LittleEndian(),64)), -Def(Tid(1_349, "%00000545"), Attrs([Attr("address","0x5F8"), -Attr("insn","add x16, x16, #0x0")]), Var("R16",Imm(64)), -Var("R16",Imm(64)))]), Jmps([Call(Tid(1_354, "%0000054a"), - Attrs([Attr("address","0x5FC"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), Sub(Tid(1_778, "@_fini"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x7D4")]), - "_fini", Args([Arg(Tid(1_835, "%0000072b"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("_fini_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(31, "@_fini"), - Attrs([Attr("address","0x7D4")]), Phis([]), Defs([Def(Tid(37, "%00000025"), - Attrs([Attr("address","0x7D8"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("#0",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(18446744073709551600,64))), -Def(Tid(43, "%0000002b"), Attrs([Attr("address","0x7D8"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("#0",Imm(64)),Var("R29",Imm(64)),LittleEndian(),64)), -Def(Tid(49, "%00000031"), Attrs([Attr("address","0x7D8"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("#0",Imm(64)),Int(8,64)),Var("R30",Imm(64)),LittleEndian(),64)), -Def(Tid(53, "%00000035"), Attrs([Attr("address","0x7D8"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("R31",Imm(64)), -Var("#0",Imm(64))), Def(Tid(59, "%0000003b"), Attrs([Attr("address","0x7DC"), -Attr("insn","mov x29, sp")]), Var("R29",Imm(64)), Var("R31",Imm(64))), -Def(Tid(66, "%00000042"), Attrs([Attr("address","0x7E0"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R29",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(71, "%00000047"), Attrs([Attr("address","0x7E0"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R30",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(75, "%0000004b"), Attrs([Attr("address","0x7E0"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(16,64)))]), Jmps([Call(Tid(80, "%00000050"), - Attrs([Attr("address","0x7E4"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), Sub(Tid(1_779, "@_init"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x5B8")]), - "_init", Args([Arg(Tid(1_836, "%0000072c"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("_init_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(1_578, "@_init"), - Attrs([Attr("address","0x5B8")]), Phis([]), -Defs([Def(Tid(1_584, "%00000630"), Attrs([Attr("address","0x5BC"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("#6",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(18446744073709551600,64))), -Def(Tid(1_590, "%00000636"), Attrs([Attr("address","0x5BC"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("#6",Imm(64)),Var("R29",Imm(64)),LittleEndian(),64)), -Def(Tid(1_596, "%0000063c"), Attrs([Attr("address","0x5BC"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("#6",Imm(64)),Int(8,64)),Var("R30",Imm(64)),LittleEndian(),64)), -Def(Tid(1_600, "%00000640"), Attrs([Attr("address","0x5BC"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("R31",Imm(64)), -Var("#6",Imm(64))), Def(Tid(1_606, "%00000646"), - Attrs([Attr("address","0x5C0"), Attr("insn","mov x29, sp")]), - Var("R29",Imm(64)), Var("R31",Imm(64))), Def(Tid(1_611, "%0000064b"), - Attrs([Attr("address","0x5C4"), Attr("insn","bl #0xb0")]), - Var("R30",Imm(64)), Int(1480,64))]), Jmps([Call(Tid(1_613, "%0000064d"), - Attrs([Attr("address","0x5C4"), Attr("insn","bl #0xb0")]), Int(1,1), -(Direct(Tid(1_784, "@call_weak_fn")),Direct(Tid(1_615, "%0000064f"))))])), -Blk(Tid(1_615, "%0000064f"), Attrs([Attr("address","0x5C8")]), Phis([]), -Defs([Def(Tid(1_620, "%00000654"), Attrs([Attr("address","0x5C8"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R29",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(1_625, "%00000659"), Attrs([Attr("address","0x5C8"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R30",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(1_629, "%0000065d"), Attrs([Attr("address","0x5C8"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(16,64)))]), Jmps([Call(Tid(1_634, "%00000662"), - Attrs([Attr("address","0x5CC"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), Sub(Tid(1_780, "@_start"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x640"), -Attr("stub","()"), Attr("entry-point","()")]), "_start", - Args([Arg(Tid(1_837, "%0000072d"), Attrs([Attr("c.layout","[signed : 32]"), -Attr("c.data","Top:u32"), Attr("c.type","signed")]), - Var("_start_result",Imm(32)), LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(488, "@_start"), Attrs([Attr("address","0x640")]), Phis([]), -Defs([Def(Tid(493, "%000001ed"), Attrs([Attr("address","0x644"), -Attr("insn","mov x29, #0x0")]), Var("R29",Imm(64)), Int(0,64)), -Def(Tid(498, "%000001f2"), Attrs([Attr("address","0x648"), -Attr("insn","mov x30, #0x0")]), Var("R30",Imm(64)), Int(0,64)), -Def(Tid(504, "%000001f8"), Attrs([Attr("address","0x64C"), -Attr("insn","mov x5, x0")]), Var("R5",Imm(64)), Var("R0",Imm(64))), -Def(Tid(511, "%000001ff"), Attrs([Attr("address","0x650"), -Attr("insn","ldr x1, [sp]")]), Var("R1",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(517, "%00000205"), Attrs([Attr("address","0x654"), -Attr("insn","add x2, sp, #0x8")]), Var("R2",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(8,64))), Def(Tid(523, "%0000020b"), - Attrs([Attr("address","0x658"), Attr("insn","mov x6, sp")]), - Var("R6",Imm(64)), Var("R31",Imm(64))), Def(Tid(528, "%00000210"), - Attrs([Attr("address","0x65C"), Attr("insn","adrp x0, #65536")]), - Var("R0",Imm(64)), Int(65536,64)), Def(Tid(535, "%00000217"), - Attrs([Attr("address","0x660"), Attr("insn","ldr x0, [x0, #0xfd8]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(4056,64)),LittleEndian(),64)), -Def(Tid(540, "%0000021c"), Attrs([Attr("address","0x664"), -Attr("insn","mov x3, #0x0")]), Var("R3",Imm(64)), Int(0,64)), -Def(Tid(545, "%00000221"), Attrs([Attr("address","0x668"), -Attr("insn","mov x4, #0x0")]), Var("R4",Imm(64)), Int(0,64)), -Def(Tid(550, "%00000226"), Attrs([Attr("address","0x66C"), -Attr("insn","bl #-0x7c")]), Var("R30",Imm(64)), Int(1648,64))]), -Jmps([Call(Tid(553, "%00000229"), Attrs([Attr("address","0x66C"), -Attr("insn","bl #-0x7c")]), Int(1,1), -(Direct(Tid(1_777, "@__libc_start_main")),Direct(Tid(555, "%0000022b"))))])), -Blk(Tid(555, "%0000022b"), Attrs([Attr("address","0x670")]), Phis([]), -Defs([Def(Tid(558, "%0000022e"), Attrs([Attr("address","0x670"), -Attr("insn","bl #-0x50")]), Var("R30",Imm(64)), Int(1652,64))]), -Jmps([Call(Tid(561, "%00000231"), Attrs([Attr("address","0x670"), -Attr("insn","bl #-0x50")]), Int(1,1), -(Direct(Tid(1_783, "@abort")),Direct(Tid(1_820, "%0000071c"))))])), -Blk(Tid(1_820, "%0000071c"), Attrs([]), Phis([]), Defs([]), -Jmps([Call(Tid(1_821, "%0000071d"), Attrs([]), Int(1,1), -(Direct(Tid(1_784, "@call_weak_fn")),))]))])), Sub(Tid(1_783, "@abort"), - Attrs([Attr("noreturn","()"), Attr("c.proto","void (*)(void)"), -Attr("address","0x620"), Attr("stub","()")]), "abort", Args([]), -Blks([Blk(Tid(559, "@abort"), Attrs([Attr("address","0x620")]), Phis([]), -Defs([Def(Tid(1_402, "%0000057a"), Attrs([Attr("address","0x620"), -Attr("insn","adrp x16, #69632")]), Var("R16",Imm(64)), Int(69632,64)), -Def(Tid(1_409, "%00000581"), Attrs([Attr("address","0x624"), -Attr("insn","ldr x17, [x16, #0x18]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(24,64)),LittleEndian(),64)), -Def(Tid(1_415, "%00000587"), Attrs([Attr("address","0x628"), -Attr("insn","add x16, x16, #0x18")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(24,64)))]), Jmps([Call(Tid(1_420, "%0000058c"), - Attrs([Attr("address","0x62C"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), Sub(Tid(1_784, "@call_weak_fn"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x674")]), - "call_weak_fn", Args([Arg(Tid(1_838, "%0000072e"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("call_weak_fn_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(563, "@call_weak_fn"), - Attrs([Attr("address","0x674")]), Phis([]), Defs([Def(Tid(566, "%00000236"), - Attrs([Attr("address","0x674"), Attr("insn","adrp x0, #65536")]), - Var("R0",Imm(64)), Int(65536,64)), Def(Tid(573, "%0000023d"), - Attrs([Attr("address","0x678"), Attr("insn","ldr x0, [x0, #0xfd0]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(4048,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(579, "%00000243"), Attrs([Attr("address","0x67C"), -Attr("insn","cbz x0, #0x8")]), EQ(Var("R0",Imm(64)),Int(0,64)), -Direct(Tid(577, "%00000241"))), Goto(Tid(1_822, "%0000071e"), Attrs([]), - Int(1,1), Direct(Tid(1_158, "%00000486")))])), Blk(Tid(577, "%00000241"), - Attrs([Attr("address","0x684")]), Phis([]), Defs([]), -Jmps([Call(Tid(585, "%00000249"), Attrs([Attr("address","0x684"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))])), -Blk(Tid(1_158, "%00000486"), Attrs([Attr("address","0x680")]), Phis([]), -Defs([]), Jmps([Goto(Tid(1_161, "%00000489"), Attrs([Attr("address","0x680"), -Attr("insn","b #-0x70")]), Int(1,1), -Direct(Tid(1_159, "@__gmon_start__")))])), Blk(Tid(1_159, "@__gmon_start__"), - Attrs([Attr("address","0x610")]), Phis([]), -Defs([Def(Tid(1_380, "%00000564"), Attrs([Attr("address","0x610"), -Attr("insn","adrp x16, #69632")]), Var("R16",Imm(64)), Int(69632,64)), -Def(Tid(1_387, "%0000056b"), Attrs([Attr("address","0x614"), -Attr("insn","ldr x17, [x16, #0x10]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(16,64)),LittleEndian(),64)), -Def(Tid(1_393, "%00000571"), Attrs([Attr("address","0x618"), -Attr("insn","add x16, x16, #0x10")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(16,64)))]), Jmps([Call(Tid(1_398, "%00000576"), - Attrs([Attr("address","0x61C"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), -Sub(Tid(1_786, "@deregister_tm_clones"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x690")]), - "deregister_tm_clones", Args([Arg(Tid(1_839, "%0000072f"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("deregister_tm_clones_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(591, "@deregister_tm_clones"), - Attrs([Attr("address","0x690")]), Phis([]), Defs([Def(Tid(594, "%00000252"), - Attrs([Attr("address","0x690"), Attr("insn","adrp x0, #69632")]), - Var("R0",Imm(64)), Int(69632,64)), Def(Tid(600, "%00000258"), - Attrs([Attr("address","0x694"), Attr("insn","add x0, x0, #0x38")]), - Var("R0",Imm(64)), PLUS(Var("R0",Imm(64)),Int(56,64))), -Def(Tid(605, "%0000025d"), Attrs([Attr("address","0x698"), -Attr("insn","adrp x1, #69632")]), Var("R1",Imm(64)), Int(69632,64)), -Def(Tid(611, "%00000263"), Attrs([Attr("address","0x69C"), -Attr("insn","add x1, x1, #0x38")]), Var("R1",Imm(64)), -PLUS(Var("R1",Imm(64)),Int(56,64))), Def(Tid(617, "%00000269"), - Attrs([Attr("address","0x6A0"), Attr("insn","cmp x1, x0")]), - Var("#1",Imm(64)), NOT(Var("R0",Imm(64)))), Def(Tid(622, "%0000026e"), - Attrs([Attr("address","0x6A0"), Attr("insn","cmp x1, x0")]), - Var("#2",Imm(64)), PLUS(Var("R1",Imm(64)),NOT(Var("R0",Imm(64))))), -Def(Tid(628, "%00000274"), Attrs([Attr("address","0x6A0"), -Attr("insn","cmp x1, x0")]), Var("VF",Imm(1)), -NEQ(SIGNED(65,PLUS(Var("#2",Imm(64)),Int(1,64))),PLUS(PLUS(SIGNED(65,Var("R1",Imm(64))),SIGNED(65,Var("#1",Imm(64)))),Int(1,65)))), -Def(Tid(634, "%0000027a"), Attrs([Attr("address","0x6A0"), -Attr("insn","cmp x1, x0")]), Var("CF",Imm(1)), -NEQ(UNSIGNED(65,PLUS(Var("#2",Imm(64)),Int(1,64))),PLUS(PLUS(UNSIGNED(65,Var("R1",Imm(64))),UNSIGNED(65,Var("#1",Imm(64)))),Int(1,65)))), -Def(Tid(638, "%0000027e"), Attrs([Attr("address","0x6A0"), -Attr("insn","cmp x1, x0")]), Var("ZF",Imm(1)), -EQ(PLUS(Var("#2",Imm(64)),Int(1,64)),Int(0,64))), Def(Tid(642, "%00000282"), - Attrs([Attr("address","0x6A0"), Attr("insn","cmp x1, x0")]), - Var("NF",Imm(1)), Extract(63,63,PLUS(Var("#2",Imm(64)),Int(1,64))))]), -Jmps([Goto(Tid(648, "%00000288"), Attrs([Attr("address","0x6A4"), -Attr("insn","b.eq #0x18")]), EQ(Var("ZF",Imm(1)),Int(1,1)), -Direct(Tid(646, "%00000286"))), Goto(Tid(1_823, "%0000071f"), Attrs([]), - Int(1,1), Direct(Tid(1_128, "%00000468")))])), Blk(Tid(1_128, "%00000468"), - Attrs([Attr("address","0x6A8")]), Phis([]), -Defs([Def(Tid(1_131, "%0000046b"), Attrs([Attr("address","0x6A8"), -Attr("insn","adrp x1, #65536")]), Var("R1",Imm(64)), Int(65536,64)), -Def(Tid(1_138, "%00000472"), Attrs([Attr("address","0x6AC"), -Attr("insn","ldr x1, [x1, #0xfc0]")]), Var("R1",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R1",Imm(64)),Int(4032,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(1_143, "%00000477"), Attrs([Attr("address","0x6B0"), -Attr("insn","cbz x1, #0xc")]), EQ(Var("R1",Imm(64)),Int(0,64)), -Direct(Tid(646, "%00000286"))), Goto(Tid(1_824, "%00000720"), Attrs([]), - Int(1,1), Direct(Tid(1_147, "%0000047b")))])), Blk(Tid(646, "%00000286"), - Attrs([Attr("address","0x6BC")]), Phis([]), Defs([]), -Jmps([Call(Tid(654, "%0000028e"), Attrs([Attr("address","0x6BC"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))])), -Blk(Tid(1_147, "%0000047b"), Attrs([Attr("address","0x6B4")]), Phis([]), -Defs([Def(Tid(1_151, "%0000047f"), Attrs([Attr("address","0x6B4"), -Attr("insn","mov x16, x1")]), Var("R16",Imm(64)), Var("R1",Imm(64)))]), -Jmps([Call(Tid(1_156, "%00000484"), Attrs([Attr("address","0x6B8"), -Attr("insn","br x16")]), Int(1,1), (Indirect(Var("R16",Imm(64))),))]))])), -Sub(Tid(1_789, "@frame_dummy"), Attrs([Attr("c.proto","signed (*)(void)"), -Attr("address","0x750")]), "frame_dummy", Args([Arg(Tid(1_840, "%00000730"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("frame_dummy_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(806, "@frame_dummy"), - Attrs([Attr("address","0x750")]), Phis([]), Defs([]), -Jmps([Call(Tid(808, "%00000328"), Attrs([Attr("address","0x750"), -Attr("insn","b #-0x90")]), Int(1,1), -(Direct(Tid(1_793, "@register_tm_clones")),))]))])), -Sub(Tid(1_790, "@get_two"), Attrs([Attr("c.proto","signed (*)(void)"), -Attr("address","0x754")]), "get_two", Args([Arg(Tid(1_841, "%00000731"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("get_two_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(810, "@get_two"), - Attrs([Attr("address","0x754")]), Phis([]), Defs([Def(Tid(814, "%0000032e"), - Attrs([Attr("address","0x754"), Attr("insn","sub sp, sp, #0x10")]), - Var("R31",Imm(64)), PLUS(Var("R31",Imm(64)),Int(18446744073709551600,64))), -Def(Tid(822, "%00000336"), Attrs([Attr("address","0x758"), -Attr("insn","strb w0, [sp, #0xf]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(15,64)),Extract(7,0,Var("R0",Imm(64))),LittleEndian(),8)), -Def(Tid(830, "%0000033e"), Attrs([Attr("address","0x75C"), -Attr("insn","str w1, [sp, #0x8]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),Extract(31,0,Var("R1",Imm(64))),LittleEndian(),32)), -Def(Tid(838, "%00000346"), Attrs([Attr("address","0x760"), -Attr("insn","str x2, [sp]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("R31",Imm(64)),Var("R2",Imm(64)),LittleEndian(),64)), -Def(Tid(845, "%0000034d"), Attrs([Attr("address","0x764"), -Attr("insn","ldrb w8, [sp, #0xf]")]), Var("R8",Imm(64)), -UNSIGNED(64,Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(15,64)),LittleEndian(),8))), -Def(Tid(852, "%00000354"), Attrs([Attr("address","0x768"), -Attr("insn","ldr w9, [sp, #0x8]")]), Var("R9",Imm(64)), -UNSIGNED(64,Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),LittleEndian(),32))), -Def(Tid(859, "%0000035b"), Attrs([Attr("address","0x76C"), -Attr("insn","add w9, w8, w9")]), Var("R9",Imm(64)), -UNSIGNED(64,PLUS(Extract(31,0,Var("R8",Imm(64))),Extract(31,0,Var("R9",Imm(64)))))), -Def(Tid(866, "%00000362"), Attrs([Attr("address","0x770"), -Attr("insn","ldr x8, [sp]")]), Var("R8",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(873, "%00000369"), Attrs([Attr("address","0x774"), -Attr("insn","add x8, x8, w9, sxtw")]), Var("R8",Imm(64)), -PLUS(Var("R8",Imm(64)),SIGNED(64,Extract(31,0,Var("R9",Imm(64)))))), -Def(Tid(879, "%0000036f"), Attrs([Attr("address","0x778"), -Attr("insn","mov w0, w8")]), Var("R0",Imm(64)), -UNSIGNED(64,Extract(31,0,Var("R8",Imm(64))))), Def(Tid(885, "%00000375"), - Attrs([Attr("address","0x77C"), Attr("insn","add sp, sp, #0x10")]), - Var("R31",Imm(64)), PLUS(Var("R31",Imm(64)),Int(16,64)))]), -Jmps([Call(Tid(890, "%0000037a"), Attrs([Attr("address","0x780"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))]))])), -Sub(Tid(1_791, "@main"), - Attrs([Attr("c.proto","signed (*)(signed argc, const char** argv)"), -Attr("address","0x784")]), "main", Args([Arg(Tid(1_842, "%00000732"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("main_argc",Imm(32)), -LOW(32,Var("R0",Imm(64))), In()), Arg(Tid(1_843, "%00000733"), - Attrs([Attr("c.layout","**[char : 8]"), Attr("c.data","Top:u8 ptr ptr"), -Attr("c.type"," const char**")]), Var("main_argv",Imm(64)), -Var("R1",Imm(64)), Both()), Arg(Tid(1_844, "%00000734"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("main_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(892, "@main"), - Attrs([Attr("address","0x784")]), Phis([]), Defs([Def(Tid(896, "%00000380"), - Attrs([Attr("address","0x784"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("#4",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(18446744073709551600,64))), -Def(Tid(902, "%00000386"), Attrs([Attr("address","0x784"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("#4",Imm(64)),Var("R29",Imm(64)),LittleEndian(),64)), -Def(Tid(908, "%0000038c"), Attrs([Attr("address","0x784"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("#4",Imm(64)),Int(8,64)),Var("R30",Imm(64)),LittleEndian(),64)), -Def(Tid(912, "%00000390"), Attrs([Attr("address","0x784"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("R31",Imm(64)), -Var("#4",Imm(64))), Def(Tid(918, "%00000396"), - Attrs([Attr("address","0x788"), Attr("insn","mov x29, sp")]), - Var("R29",Imm(64)), Var("R31",Imm(64))), Def(Tid(923, "%0000039b"), - Attrs([Attr("address","0x78C"), Attr("insn","adrp x9, #69632")]), - Var("R9",Imm(64)), Int(69632,64)), Def(Tid(928, "%000003a0"), - Attrs([Attr("address","0x790"), Attr("insn","mov w8, #0x1")]), - Var("R8",Imm(64)), Int(1,64)), Def(Tid(936, "%000003a8"), - Attrs([Attr("address","0x794"), Attr("insn","str w8, [x9, #0x3c]")]), - Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R9",Imm(64)),Int(60,64)),Extract(31,0,Var("R8",Imm(64))),LittleEndian(),32)), -Def(Tid(941, "%000003ad"), Attrs([Attr("address","0x798"), -Attr("insn","mov w0, #0x61")]), Var("R0",Imm(64)), Int(97,64)), -Def(Tid(946, "%000003b2"), Attrs([Attr("address","0x79C"), -Attr("insn","mov w1, #0xa")]), Var("R1",Imm(64)), Int(10,64)), -Def(Tid(951, "%000003b7"), Attrs([Attr("address","0x7A0"), -Attr("insn","mov x2, #0xe400")]), Var("R2",Imm(64)), Int(58368,64)), -Def(Tid(958, "%000003be"), Attrs([Attr("address","0x7A4"), -Attr("insn","movk x2, #0x540b, lsl #16")]), Var("R2",Imm(64)), -Concat(Extract(63,32,Var("R2",Imm(64))),Concat(Int(21515,16),Extract(15,0,Var("R2",Imm(64)))))), -Def(Tid(965, "%000003c5"), Attrs([Attr("address","0x7A8"), -Attr("insn","movk x2, #0x2, lsl #32")]), Var("R2",Imm(64)), -Concat(Extract(63,48,Var("R2",Imm(64))),Concat(Int(2,16),Extract(31,0,Var("R2",Imm(64)))))), -Def(Tid(970, "%000003ca"), Attrs([Attr("address","0x7AC"), -Attr("insn","bl #-0x58")]), Var("R30",Imm(64)), Int(1968,64))]), -Jmps([Call(Tid(972, "%000003cc"), Attrs([Attr("address","0x7AC"), -Attr("insn","bl #-0x58")]), Int(1,1), -(Direct(Tid(1_790, "@get_two")),Direct(Tid(974, "%000003ce"))))])), -Blk(Tid(974, "%000003ce"), Attrs([Attr("address","0x7B0")]), Phis([]), -Defs([Def(Tid(977, "%000003d1"), Attrs([Attr("address","0x7B0"), -Attr("insn","adrp x8, #69632")]), Var("R8",Imm(64)), Int(69632,64)), -Def(Tid(985, "%000003d9"), Attrs([Attr("address","0x7B4"), -Attr("insn","str w0, [x8, #0x40]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R8",Imm(64)),Int(64,64)),Extract(31,0,Var("R0",Imm(64))),LittleEndian(),32)), -Def(Tid(992, "%000003e0"), Attrs([Attr("address","0x7B8"), -Attr("insn","ldr w1, [x8, #0x40]")]), Var("R1",Imm(64)), -UNSIGNED(64,Load(Var("mem",Mem(64,8)),PLUS(Var("R8",Imm(64)),Int(64,64)),LittleEndian(),32))), -Def(Tid(997, "%000003e5"), Attrs([Attr("address","0x7BC"), -Attr("insn","adrp x0, #0")]), Var("R0",Imm(64)), Int(0,64)), -Def(Tid(1_003, "%000003eb"), Attrs([Attr("address","0x7C0"), -Attr("insn","add x0, x0, #0x7ec")]), Var("R0",Imm(64)), -PLUS(Var("R0",Imm(64)),Int(2028,64))), Def(Tid(1_008, "%000003f0"), - Attrs([Attr("address","0x7C4"), Attr("insn","bl #-0x194")]), - Var("R30",Imm(64)), Int(1992,64))]), Jmps([Call(Tid(1_011, "%000003f3"), - Attrs([Attr("address","0x7C4"), Attr("insn","bl #-0x194")]), Int(1,1), -(Direct(Tid(1_792, "@printf")),Direct(Tid(1_013, "%000003f5"))))])), -Blk(Tid(1_013, "%000003f5"), Attrs([Attr("address","0x7C8")]), Phis([]), -Defs([Def(Tid(1_016, "%000003f8"), Attrs([Attr("address","0x7C8"), -Attr("insn","mov w0, wzr")]), Var("R0",Imm(64)), Int(0,64)), -Def(Tid(1_023, "%000003ff"), Attrs([Attr("address","0x7CC"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R29",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(1_028, "%00000404"), Attrs([Attr("address","0x7CC"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R30",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(1_032, "%00000408"), Attrs([Attr("address","0x7CC"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(16,64)))]), Jmps([Call(Tid(1_037, "%0000040d"), - Attrs([Attr("address","0x7D0"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), Sub(Tid(1_792, "@printf"), - Attrs([Attr("c.proto","signed (*)( const char restrict * format, ...)"), -Attr("address","0x630"), Attr("stub","()")]), "printf", - Args([Arg(Tid(1_845, "%00000735"), Attrs([Attr("format","\"printf\""), -Attr("c.layout","*[char : 8]"), Attr("c.data","Top:u8 ptr"), -Attr("c.type"," const char restrict *")]), Var("printf_format",Imm(64)), -Var("R0",Imm(64)), In()), Arg(Tid(1_846, "%00000736"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("printf_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(1_009, "@printf"), - Attrs([Attr("address","0x630")]), Phis([]), -Defs([Def(Tid(1_424, "%00000590"), Attrs([Attr("address","0x630"), -Attr("insn","adrp x16, #69632")]), Var("R16",Imm(64)), Int(69632,64)), -Def(Tid(1_431, "%00000597"), Attrs([Attr("address","0x634"), -Attr("insn","ldr x17, [x16, #0x20]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(32,64)),LittleEndian(),64)), -Def(Tid(1_437, "%0000059d"), Attrs([Attr("address","0x638"), -Attr("insn","add x16, x16, #0x20")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(32,64)))]), Jmps([Call(Tid(1_442, "%000005a2"), - Attrs([Attr("address","0x63C"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), -Sub(Tid(1_793, "@register_tm_clones"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x6C0")]), - "register_tm_clones", Args([Arg(Tid(1_847, "%00000737"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("register_tm_clones_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(656, "@register_tm_clones"), Attrs([Attr("address","0x6C0")]), - Phis([]), Defs([Def(Tid(659, "%00000293"), Attrs([Attr("address","0x6C0"), -Attr("insn","adrp x0, #69632")]), Var("R0",Imm(64)), Int(69632,64)), -Def(Tid(665, "%00000299"), Attrs([Attr("address","0x6C4"), -Attr("insn","add x0, x0, #0x38")]), Var("R0",Imm(64)), -PLUS(Var("R0",Imm(64)),Int(56,64))), Def(Tid(670, "%0000029e"), - Attrs([Attr("address","0x6C8"), Attr("insn","adrp x1, #69632")]), - Var("R1",Imm(64)), Int(69632,64)), Def(Tid(676, "%000002a4"), - Attrs([Attr("address","0x6CC"), Attr("insn","add x1, x1, #0x38")]), - Var("R1",Imm(64)), PLUS(Var("R1",Imm(64)),Int(56,64))), -Def(Tid(683, "%000002ab"), Attrs([Attr("address","0x6D0"), -Attr("insn","sub x1, x1, x0")]), Var("R1",Imm(64)), -PLUS(PLUS(Var("R1",Imm(64)),NOT(Var("R0",Imm(64)))),Int(1,64))), -Def(Tid(689, "%000002b1"), Attrs([Attr("address","0x6D4"), -Attr("insn","lsr x2, x1, #63")]), Var("R2",Imm(64)), -Concat(Int(0,63),Extract(63,63,Var("R1",Imm(64))))), -Def(Tid(696, "%000002b8"), Attrs([Attr("address","0x6D8"), -Attr("insn","add x1, x2, x1, asr #3")]), Var("R1",Imm(64)), -PLUS(Var("R2",Imm(64)),ARSHIFT(Var("R1",Imm(64)),Int(3,3)))), -Def(Tid(702, "%000002be"), Attrs([Attr("address","0x6DC"), -Attr("insn","asr x1, x1, #1")]), Var("R1",Imm(64)), -SIGNED(64,Extract(63,1,Var("R1",Imm(64)))))]), -Jmps([Goto(Tid(708, "%000002c4"), Attrs([Attr("address","0x6E0"), -Attr("insn","cbz x1, #0x18")]), EQ(Var("R1",Imm(64)),Int(0,64)), -Direct(Tid(706, "%000002c2"))), Goto(Tid(1_825, "%00000721"), Attrs([]), - Int(1,1), Direct(Tid(1_098, "%0000044a")))])), Blk(Tid(1_098, "%0000044a"), - Attrs([Attr("address","0x6E4")]), Phis([]), -Defs([Def(Tid(1_101, "%0000044d"), Attrs([Attr("address","0x6E4"), -Attr("insn","adrp x2, #65536")]), Var("R2",Imm(64)), Int(65536,64)), -Def(Tid(1_108, "%00000454"), Attrs([Attr("address","0x6E8"), -Attr("insn","ldr x2, [x2, #0xfe0]")]), Var("R2",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R2",Imm(64)),Int(4064,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(1_113, "%00000459"), Attrs([Attr("address","0x6EC"), -Attr("insn","cbz x2, #0xc")]), EQ(Var("R2",Imm(64)),Int(0,64)), -Direct(Tid(706, "%000002c2"))), Goto(Tid(1_826, "%00000722"), Attrs([]), - Int(1,1), Direct(Tid(1_117, "%0000045d")))])), Blk(Tid(706, "%000002c2"), - Attrs([Attr("address","0x6F8")]), Phis([]), Defs([]), -Jmps([Call(Tid(714, "%000002ca"), Attrs([Attr("address","0x6F8"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))])), -Blk(Tid(1_117, "%0000045d"), Attrs([Attr("address","0x6F0")]), Phis([]), -Defs([Def(Tid(1_121, "%00000461"), Attrs([Attr("address","0x6F0"), -Attr("insn","mov x16, x2")]), Var("R16",Imm(64)), Var("R2",Imm(64)))]), -Jmps([Call(Tid(1_126, "%00000466"), Attrs([Attr("address","0x6F4"), -Attr("insn","br x16")]), Int(1,1), -(Indirect(Var("R16",Imm(64))),))]))]))]))) \ No newline at end of file diff --git a/src/test/correct/function1/clang/function1.bir b/src/test/correct/function1/clang/function1.bir deleted file mode 100644 index 490f37c4b..000000000 --- a/src/test/correct/function1/clang/function1.bir +++ /dev/null @@ -1,280 +0,0 @@ -00000723: program -000006ec: sub __cxa_finalize(__cxa_finalize_result) -00000724: __cxa_finalize_result :: out u32 = low:32[R0] - -00000446: -0000054e: R16 := 0x11000 -00000555: R17 := mem[R16 + 8, el]:u64 -0000055b: R16 := R16 + 8 -00000560: call R17 with noreturn - -000006ed: sub __do_global_dtors_aux(__do_global_dtors_aux_result) -00000725: __do_global_dtors_aux_result :: out u32 = low:32[R0] - -000002ce: -000002d2: #3 := R31 - 0x20 -000002d8: mem := mem with [#3, el]:u64 <- R29 -000002de: mem := mem with [#3 + 8, el]:u64 <- R30 -000002e2: R31 := #3 -000002e8: R29 := R31 -000002f0: mem := mem with [R31 + 0x10, el]:u64 <- R19 -000002f5: R19 := 0x11000 -000002fc: R0 := pad:64[mem[R19 + 0x38]] -00000303: when 31:0[R0] <> 0 goto %00000301 -00000719: goto %0000040f - -0000040f: -00000412: R0 := 0x10000 -00000419: R0 := mem[R0 + 0xFC8, el]:u64 -0000041f: when R0 = 0 goto %0000041d -0000071a: goto %00000436 - -00000436: -00000439: R0 := 0x11000 -00000440: R0 := mem[R0 + 0x30, el]:u64 -00000445: R30 := 0x730 -00000448: call @__cxa_finalize with return %0000041d - -0000041d: -00000425: R30 := 0x734 -00000427: call @deregister_tm_clones with return %00000429 - -00000429: -0000042c: R0 := 1 -00000434: mem := mem with [R19 + 0x38] <- 7:0[R0] -0000071b: goto %00000301 - -00000301: -0000030b: R19 := mem[R31 + 0x10, el]:u64 -00000312: R29 := mem[R31, el]:u64 -00000317: R30 := mem[R31 + 8, el]:u64 -0000031b: R31 := R31 + 0x20 -00000320: call R30 with noreturn - -000006f1: sub __libc_start_main(__libc_start_main_main, __libc_start_main_arg2, __libc_start_main_arg3, __libc_start_main_auxv, __libc_start_main_result) -00000726: __libc_start_main_main :: in u64 = R0 -00000727: __libc_start_main_arg2 :: in u32 = low:32[R1] -00000728: __libc_start_main_arg3 :: in out u64 = R2 -00000729: __libc_start_main_auxv :: in out u64 = R3 -0000072a: __libc_start_main_result :: out u32 = low:32[R0] - -00000227: -00000538: R16 := 0x11000 -0000053f: R17 := mem[R16, el]:u64 -00000545: R16 := R16 -0000054a: call R17 with noreturn - -000006f2: sub _fini(_fini_result) -0000072b: _fini_result :: out u32 = low:32[R0] - -0000001f: -00000025: #0 := R31 - 0x10 -0000002b: mem := mem with [#0, el]:u64 <- R29 -00000031: mem := mem with [#0 + 8, el]:u64 <- R30 -00000035: R31 := #0 -0000003b: R29 := R31 -00000042: R29 := mem[R31, el]:u64 -00000047: R30 := mem[R31 + 8, el]:u64 -0000004b: R31 := R31 + 0x10 -00000050: call R30 with noreturn - -000006f3: sub _init(_init_result) -0000072c: _init_result :: out u32 = low:32[R0] - -0000062a: -00000630: #6 := R31 - 0x10 -00000636: mem := mem with [#6, el]:u64 <- R29 -0000063c: mem := mem with [#6 + 8, el]:u64 <- R30 -00000640: R31 := #6 -00000646: R29 := R31 -0000064b: R30 := 0x5C8 -0000064d: call @call_weak_fn with return %0000064f - -0000064f: -00000654: R29 := mem[R31, el]:u64 -00000659: R30 := mem[R31 + 8, el]:u64 -0000065d: R31 := R31 + 0x10 -00000662: call R30 with noreturn - -000006f4: sub _start(_start_result) -0000072d: _start_result :: out u32 = low:32[R0] - -000001e8: -000001ed: R29 := 0 -000001f2: R30 := 0 -000001f8: R5 := R0 -000001ff: R1 := mem[R31, el]:u64 -00000205: R2 := R31 + 8 -0000020b: R6 := R31 -00000210: R0 := 0x10000 -00000217: R0 := mem[R0 + 0xFD8, el]:u64 -0000021c: R3 := 0 -00000221: R4 := 0 -00000226: R30 := 0x670 -00000229: call @__libc_start_main with return %0000022b - -0000022b: -0000022e: R30 := 0x674 -00000231: call @abort with return %0000071c - -0000071c: -0000071d: call @call_weak_fn with noreturn - -000006f7: sub abort() - - -0000022f: -0000057a: R16 := 0x11000 -00000581: R17 := mem[R16 + 0x18, el]:u64 -00000587: R16 := R16 + 0x18 -0000058c: call R17 with noreturn - -000006f8: sub call_weak_fn(call_weak_fn_result) -0000072e: call_weak_fn_result :: out u32 = low:32[R0] - -00000233: -00000236: R0 := 0x10000 -0000023d: R0 := mem[R0 + 0xFD0, el]:u64 -00000243: when R0 = 0 goto %00000241 -0000071e: goto %00000486 - -00000241: -00000249: call R30 with noreturn - -00000486: -00000489: goto @__gmon_start__ - -00000487: -00000564: R16 := 0x11000 -0000056b: R17 := mem[R16 + 0x10, el]:u64 -00000571: R16 := R16 + 0x10 -00000576: call R17 with noreturn - -000006fa: sub deregister_tm_clones(deregister_tm_clones_result) -0000072f: deregister_tm_clones_result :: out u32 = low:32[R0] - -0000024f: -00000252: R0 := 0x11000 -00000258: R0 := R0 + 0x38 -0000025d: R1 := 0x11000 -00000263: R1 := R1 + 0x38 -00000269: #1 := ~R0 -0000026e: #2 := R1 + ~R0 -00000274: VF := extend:65[#2 + 1] <> extend:65[R1] + extend:65[#1] + 1 -0000027a: CF := pad:65[#2 + 1] <> pad:65[R1] + pad:65[#1] + 1 -0000027e: ZF := #2 + 1 = 0 -00000282: NF := 63:63[#2 + 1] -00000288: when ZF goto %00000286 -0000071f: goto %00000468 - -00000468: -0000046b: R1 := 0x10000 -00000472: R1 := mem[R1 + 0xFC0, el]:u64 -00000477: when R1 = 0 goto %00000286 -00000720: goto %0000047b - -00000286: -0000028e: call R30 with noreturn - -0000047b: -0000047f: R16 := R1 -00000484: call R16 with noreturn - -000006fd: sub frame_dummy(frame_dummy_result) -00000730: frame_dummy_result :: out u32 = low:32[R0] - -00000326: -00000328: call @register_tm_clones with noreturn - -000006fe: sub get_two(get_two_result) -00000731: get_two_result :: out u32 = low:32[R0] - -0000032a: -0000032e: R31 := R31 - 0x10 -00000336: mem := mem with [R31 + 0xF] <- 7:0[R0] -0000033e: mem := mem with [R31 + 8, el]:u32 <- 31:0[R1] -00000346: mem := mem with [R31, el]:u64 <- R2 -0000034d: R8 := pad:64[mem[R31 + 0xF]] -00000354: R9 := pad:64[mem[R31 + 8, el]:u32] -0000035b: R9 := pad:64[31:0[R8] + 31:0[R9]] -00000362: R8 := mem[R31, el]:u64 -00000369: R8 := R8 + extend:64[31:0[R9]] -0000036f: R0 := pad:64[31:0[R8]] -00000375: R31 := R31 + 0x10 -0000037a: call R30 with noreturn - -000006ff: sub main(main_argc, main_argv, main_result) -00000732: main_argc :: in u32 = low:32[R0] -00000733: main_argv :: in out u64 = R1 -00000734: main_result :: out u32 = low:32[R0] - -0000037c: -00000380: #4 := R31 - 0x10 -00000386: mem := mem with [#4, el]:u64 <- R29 -0000038c: mem := mem with [#4 + 8, el]:u64 <- R30 -00000390: R31 := #4 -00000396: R29 := R31 -0000039b: R9 := 0x11000 -000003a0: R8 := 1 -000003a8: mem := mem with [R9 + 0x3C, el]:u32 <- 31:0[R8] -000003ad: R0 := 0x61 -000003b2: R1 := 0xA -000003b7: R2 := 0xE400 -000003be: R2 := 63:32[R2].0x540B.15:0[R2] -000003c5: R2 := 63:48[R2].2.31:0[R2] -000003ca: R30 := 0x7B0 -000003cc: call @get_two with return %000003ce - -000003ce: -000003d1: R8 := 0x11000 -000003d9: mem := mem with [R8 + 0x40, el]:u32 <- 31:0[R0] -000003e0: R1 := pad:64[mem[R8 + 0x40, el]:u32] -000003e5: R0 := 0 -000003eb: R0 := R0 + 0x7EC -000003f0: R30 := 0x7C8 -000003f3: call @printf with return %000003f5 - -000003f5: -000003f8: R0 := 0 -000003ff: R29 := mem[R31, el]:u64 -00000404: R30 := mem[R31 + 8, el]:u64 -00000408: R31 := R31 + 0x10 -0000040d: call R30 with noreturn - -00000700: sub printf(printf_format, printf_result) -00000735: printf_format :: in u64 = R0 -00000736: printf_result :: out u32 = low:32[R0] - -000003f1: -00000590: R16 := 0x11000 -00000597: R17 := mem[R16 + 0x20, el]:u64 -0000059d: R16 := R16 + 0x20 -000005a2: call R17 with noreturn - -00000701: sub register_tm_clones(register_tm_clones_result) -00000737: register_tm_clones_result :: out u32 = low:32[R0] - -00000290: -00000293: R0 := 0x11000 -00000299: R0 := R0 + 0x38 -0000029e: R1 := 0x11000 -000002a4: R1 := R1 + 0x38 -000002ab: R1 := R1 + ~R0 + 1 -000002b1: R2 := 0.63:63[R1] -000002b8: R1 := R2 + (R1 ~>> 3) -000002be: R1 := extend:64[63:1[R1]] -000002c4: when R1 = 0 goto %000002c2 -00000721: goto %0000044a - -0000044a: -0000044d: R2 := 0x10000 -00000454: R2 := mem[R2 + 0xFE0, el]:u64 -00000459: when R2 = 0 goto %000002c2 -00000722: goto %0000045d - -000002c2: -000002ca: call R30 with noreturn - -0000045d: -00000461: R16 := R2 -00000466: call R16 with noreturn diff --git a/src/test/correct/function1/clang/function1.expected b/src/test/correct/function1/clang/function1.expected index ded6c27e9..0172614db 100644 --- a/src/test/correct/function1/clang/function1.expected +++ b/src/test/correct/function1/clang/function1.expected @@ -111,7 +111,7 @@ procedure {:extern} rely_reflexive(); procedure {:extern} guarantee_reflexive(); modifies Gamma_mem, mem; -procedure get_two_1876(); +procedure get_two(); modifies Gamma_R0, Gamma_R31, Gamma_R8, Gamma_R9, Gamma_stack, R0, R31, R8, R9, stack; free requires (memory_load64_le(mem, 2024bv64) == 2924859843805185bv64); free requires (memory_load64_le(mem, 69064bv64) == 1872bv64); @@ -126,14 +126,14 @@ procedure get_two_1876(); free ensures (memory_load64_le(mem, 69592bv64) == 1924bv64); free ensures (memory_load64_le(mem, 69680bv64) == 69680bv64); -implementation get_two_1876() +implementation get_two() { - var Gamma_load18: bool; - var Gamma_load19: bool; - var Gamma_load20: bool; - var load18: bv8; - var load19: bv32; - var load20: bv64; + var $load$18: bv8; + var $load$19: bv32; + var $load$20: bv64; + var Gamma_$load$18: bool; + var Gamma_$load$19: bool; + var Gamma_$load$20: bool; lget_two: assume {:captureState "lget_two"} true; R31, Gamma_R31 := bvadd64(R31, 18446744073709551600bv64), Gamma_R31; @@ -143,23 +143,23 @@ implementation get_two_1876() assume {:captureState "%0000033e"} true; stack, Gamma_stack := memory_store64_le(stack, R31, R2), gamma_store64(Gamma_stack, R31, Gamma_R2); assume {:captureState "%00000346"} true; - load18, Gamma_load18 := memory_load8_le(stack, bvadd64(R31, 15bv64)), gamma_load8(Gamma_stack, bvadd64(R31, 15bv64)); - R8, Gamma_R8 := zero_extend56_8(load18), Gamma_load18; - load19, Gamma_load19 := memory_load32_le(stack, bvadd64(R31, 8bv64)), gamma_load32(Gamma_stack, bvadd64(R31, 8bv64)); - R9, Gamma_R9 := zero_extend32_32(load19), Gamma_load19; + $load$18, Gamma_$load$18 := memory_load8_le(stack, bvadd64(R31, 15bv64)), gamma_load8(Gamma_stack, bvadd64(R31, 15bv64)); + R8, Gamma_R8 := zero_extend56_8($load$18), Gamma_$load$18; + $load$19, Gamma_$load$19 := memory_load32_le(stack, bvadd64(R31, 8bv64)), gamma_load32(Gamma_stack, bvadd64(R31, 8bv64)); + R9, Gamma_R9 := zero_extend32_32($load$19), Gamma_$load$19; R9, Gamma_R9 := zero_extend32_32(bvadd32(R8[32:0], R9[32:0])), (Gamma_R9 && Gamma_R8); - load20, Gamma_load20 := memory_load64_le(stack, R31), gamma_load64(Gamma_stack, R31); - R8, Gamma_R8 := load20, Gamma_load20; + $load$20, Gamma_$load$20 := memory_load64_le(stack, R31), gamma_load64(Gamma_stack, R31); + R8, Gamma_R8 := $load$20, Gamma_$load$20; R8, Gamma_R8 := bvadd64(R8, sign_extend32_32(R9[32:0])), (Gamma_R9 && Gamma_R8); R0, Gamma_R0 := zero_extend32_32(R8[32:0]), Gamma_R8; R31, Gamma_R31 := bvadd64(R31, 16bv64), Gamma_R31; - goto get_two_1876_basil_return; - get_two_1876_basil_return: - assume {:captureState "get_two_1876_basil_return"} true; + goto get_two_basil_return; + get_two_basil_return: + assume {:captureState "get_two_basil_return"} true; return; } -procedure main_1924(); +procedure main(); modifies Gamma_R0, Gamma_R1, Gamma_R16, Gamma_R17, Gamma_R2, Gamma_R29, Gamma_R30, Gamma_R31, Gamma_R8, Gamma_R9, Gamma_mem, Gamma_stack, R0, R1, R16, R17, R2, R29, R30, R31, R8, R9, mem, stack; free requires (memory_load64_le(mem, 69672bv64) == 0bv64); free requires (memory_load64_le(mem, 69680bv64) == 69680bv64); @@ -178,16 +178,16 @@ procedure main_1924(); free ensures (memory_load64_le(mem, 69592bv64) == 1924bv64); free ensures (memory_load64_le(mem, 69680bv64) == 69680bv64); -implementation main_1924() +implementation main() { var #4: bv64; + var $load$21: bv32; + var $load$22: bv64; + var $load$23: bv64; var Gamma_#4: bool; - var Gamma_load21: bool; - var Gamma_load22: bool; - var Gamma_load23: bool; - var load21: bv32; - var load22: bv64; - var load23: bv64; + var Gamma_$load$21: bool; + var Gamma_$load$22: bool; + var Gamma_$load$23: bool; lmain: assume {:captureState "lmain"} true; #4, Gamma_#4 := bvadd64(R31, 18446744073709551600bv64), Gamma_R31; @@ -209,7 +209,7 @@ implementation main_1924() R2, Gamma_R2 := (R2[64:32] ++ (21515bv16 ++ R2[16:0])), Gamma_R2; R2, Gamma_R2 := (R2[64:48] ++ (2bv16 ++ R2[32:0])), Gamma_R2; R30, Gamma_R30 := 1968bv64, true; - call get_two_1876(); + call get_two(); goto l000003ce; l000003ce: assume {:captureState "l000003ce"} true; @@ -219,28 +219,28 @@ implementation main_1924() mem, Gamma_mem := memory_store32_le(mem, bvadd64(R8, 64bv64), R0[32:0]), gamma_store32(Gamma_mem, bvadd64(R8, 64bv64), Gamma_R0); assume {:captureState "%000003d9"} true; call rely(); - load21, Gamma_load21 := memory_load32_le(mem, bvadd64(R8, 64bv64)), (gamma_load32(Gamma_mem, bvadd64(R8, 64bv64)) || L(mem, bvadd64(R8, 64bv64))); - R1, Gamma_R1 := zero_extend32_32(load21), Gamma_load21; + $load$21, Gamma_$load$21 := memory_load32_le(mem, bvadd64(R8, 64bv64)), (gamma_load32(Gamma_mem, bvadd64(R8, 64bv64)) || L(mem, bvadd64(R8, 64bv64))); + R1, Gamma_R1 := zero_extend32_32($load$21), Gamma_$load$21; R0, Gamma_R0 := 0bv64, true; R0, Gamma_R0 := bvadd64(R0, 2028bv64), Gamma_R0; R30, Gamma_R30 := 1992bv64, true; - call printf_1584(); + call printf(); goto l000003f5; l000003f5: assume {:captureState "l000003f5"} true; R0, Gamma_R0 := 0bv64, true; - load22, Gamma_load22 := memory_load64_le(stack, R31), gamma_load64(Gamma_stack, R31); - R29, Gamma_R29 := load22, Gamma_load22; - load23, Gamma_load23 := memory_load64_le(stack, bvadd64(R31, 8bv64)), gamma_load64(Gamma_stack, bvadd64(R31, 8bv64)); - R30, Gamma_R30 := load23, Gamma_load23; + $load$22, Gamma_$load$22 := memory_load64_le(stack, R31), gamma_load64(Gamma_stack, R31); + R29, Gamma_R29 := $load$22, Gamma_$load$22; + $load$23, Gamma_$load$23 := memory_load64_le(stack, bvadd64(R31, 8bv64)), gamma_load64(Gamma_stack, bvadd64(R31, 8bv64)); + R30, Gamma_R30 := $load$23, Gamma_$load$23; R31, Gamma_R31 := bvadd64(R31, 16bv64), Gamma_R31; - goto main_1924_basil_return; - main_1924_basil_return: - assume {:captureState "main_1924_basil_return"} true; + goto main_basil_return; + main_basil_return: + assume {:captureState "main_basil_return"} true; return; } -procedure printf_1584(); +procedure printf(); modifies Gamma_R16, Gamma_R17, R16, R17; free requires (memory_load64_le(mem, 2024bv64) == 2924859843805185bv64); free requires (memory_load64_le(mem, 69064bv64) == 1872bv64); diff --git a/src/test/correct/function1/clang/function1.gts b/src/test/correct/function1/clang/function1.gts deleted file mode 100644 index 28058b441..000000000 Binary files a/src/test/correct/function1/clang/function1.gts and /dev/null differ diff --git a/src/test/correct/function1/clang/function1.md5sum b/src/test/correct/function1/clang/function1.md5sum new file mode 100644 index 000000000..924ced77f --- /dev/null +++ b/src/test/correct/function1/clang/function1.md5sum @@ -0,0 +1,5 @@ +7035264ce5d16b3f7443c633e4df6f09 correct/function1/clang/a.out +02a17aa55f50a088b38cd371d707d5b0 correct/function1/clang/function1.adt +1b5548a4796e65d428e503d70080de40 correct/function1/clang/function1.bir +12ffeca77e012034ed59db5e45287585 correct/function1/clang/function1.relf +62449ea25f8d1bd74340457831d13bdd correct/function1/clang/function1.gts diff --git a/src/test/correct/function1/clang/function1.relf b/src/test/correct/function1/clang/function1.relf deleted file mode 100644 index 3a03641a6..000000000 --- a/src/test/correct/function1/clang/function1.relf +++ /dev/null @@ -1,129 +0,0 @@ - -Relocation section '.rela.dyn' at offset 0x480 contains 8 entries: - Offset Info Type Symbol's Value Symbol's Name + Addend -0000000000010dc8 0000000000000403 R_AARCH64_RELATIVE 750 -0000000000010dd0 0000000000000403 R_AARCH64_RELATIVE 700 -0000000000010fd8 0000000000000403 R_AARCH64_RELATIVE 784 -0000000000011030 0000000000000403 R_AARCH64_RELATIVE 11030 -0000000000010fc0 0000000400000401 R_AARCH64_GLOB_DAT 0000000000000000 _ITM_deregisterTMCloneTable + 0 -0000000000010fc8 0000000500000401 R_AARCH64_GLOB_DAT 0000000000000000 __cxa_finalize@GLIBC_2.17 + 0 -0000000000010fd0 0000000600000401 R_AARCH64_GLOB_DAT 0000000000000000 __gmon_start__ + 0 -0000000000010fe0 0000000800000401 R_AARCH64_GLOB_DAT 0000000000000000 _ITM_registerTMCloneTable + 0 - -Relocation section '.rela.plt' at offset 0x540 contains 5 entries: - Offset Info Type Symbol's Value Symbol's Name + Addend -0000000000011000 0000000300000402 R_AARCH64_JUMP_SLOT 0000000000000000 __libc_start_main@GLIBC_2.34 + 0 -0000000000011008 0000000500000402 R_AARCH64_JUMP_SLOT 0000000000000000 __cxa_finalize@GLIBC_2.17 + 0 -0000000000011010 0000000600000402 R_AARCH64_JUMP_SLOT 0000000000000000 __gmon_start__ + 0 -0000000000011018 0000000700000402 R_AARCH64_JUMP_SLOT 0000000000000000 abort@GLIBC_2.17 + 0 -0000000000011020 0000000900000402 R_AARCH64_JUMP_SLOT 0000000000000000 printf@GLIBC_2.17 + 0 - -Symbol table '.dynsym' contains 10 entries: - Num: Value Size Type Bind Vis Ndx Name - 0: 0000000000000000 0 NOTYPE LOCAL DEFAULT UND - 1: 00000000000005b8 0 SECTION LOCAL DEFAULT 11 .init - 2: 0000000000011028 0 SECTION LOCAL DEFAULT 23 .data - 3: 0000000000000000 0 FUNC GLOBAL DEFAULT UND __libc_start_main@GLIBC_2.34 (2) - 4: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_deregisterTMCloneTable - 5: 0000000000000000 0 FUNC WEAK DEFAULT UND __cxa_finalize@GLIBC_2.17 (3) - 6: 0000000000000000 0 NOTYPE WEAK DEFAULT UND __gmon_start__ - 7: 0000000000000000 0 FUNC GLOBAL DEFAULT UND abort@GLIBC_2.17 (3) - 8: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_registerTMCloneTable - 9: 0000000000000000 0 FUNC GLOBAL DEFAULT UND printf@GLIBC_2.17 (3) - -Symbol table '.symtab' contains 94 entries: - Num: Value Size Type Bind Vis Ndx Name - 0: 0000000000000000 0 NOTYPE LOCAL DEFAULT UND - 1: 0000000000000238 0 SECTION LOCAL DEFAULT 1 .interp - 2: 0000000000000254 0 SECTION LOCAL DEFAULT 2 .note.gnu.build-id - 3: 0000000000000278 0 SECTION LOCAL DEFAULT 3 .note.ABI-tag - 4: 0000000000000298 0 SECTION LOCAL DEFAULT 4 .gnu.hash - 5: 00000000000002b8 0 SECTION LOCAL DEFAULT 5 .dynsym - 6: 00000000000003a8 0 SECTION LOCAL DEFAULT 6 .dynstr - 7: 000000000000043c 0 SECTION LOCAL DEFAULT 7 .gnu.version - 8: 0000000000000450 0 SECTION LOCAL DEFAULT 8 .gnu.version_r - 9: 0000000000000480 0 SECTION LOCAL DEFAULT 9 .rela.dyn - 10: 0000000000000540 0 SECTION LOCAL DEFAULT 10 .rela.plt - 11: 00000000000005b8 0 SECTION LOCAL DEFAULT 11 .init - 12: 00000000000005d0 0 SECTION LOCAL DEFAULT 12 .plt - 13: 0000000000000640 0 SECTION LOCAL DEFAULT 13 .text - 14: 00000000000007d4 0 SECTION LOCAL DEFAULT 14 .fini - 15: 00000000000007e8 0 SECTION LOCAL DEFAULT 15 .rodata - 16: 00000000000007f0 0 SECTION LOCAL DEFAULT 16 .eh_frame_hdr - 17: 0000000000000838 0 SECTION LOCAL DEFAULT 17 .eh_frame - 18: 0000000000010dc8 0 SECTION LOCAL DEFAULT 18 .init_array - 19: 0000000000010dd0 0 SECTION LOCAL DEFAULT 19 .fini_array - 20: 0000000000010dd8 0 SECTION LOCAL DEFAULT 20 .dynamic - 21: 0000000000010fb8 0 SECTION LOCAL DEFAULT 21 .got - 22: 0000000000010fe8 0 SECTION LOCAL DEFAULT 22 .got.plt - 23: 0000000000011028 0 SECTION LOCAL DEFAULT 23 .data - 24: 0000000000011038 0 SECTION LOCAL DEFAULT 24 .bss - 25: 0000000000000000 0 SECTION LOCAL DEFAULT 25 .comment - 26: 0000000000000000 0 FILE LOCAL DEFAULT ABS Scrt1.o - 27: 0000000000000278 0 NOTYPE LOCAL DEFAULT 3 $d - 28: 0000000000000278 32 OBJECT LOCAL DEFAULT 3 __abi_tag - 29: 0000000000000640 0 NOTYPE LOCAL DEFAULT 13 $x - 30: 000000000000084c 0 NOTYPE LOCAL DEFAULT 17 $d - 31: 00000000000007e8 0 NOTYPE LOCAL DEFAULT 15 $d - 32: 0000000000000000 0 FILE LOCAL DEFAULT ABS crti.o - 33: 0000000000000674 0 NOTYPE LOCAL DEFAULT 13 $x - 34: 0000000000000674 20 FUNC LOCAL DEFAULT 13 call_weak_fn - 35: 00000000000005b8 0 NOTYPE LOCAL DEFAULT 11 $x - 36: 00000000000007d4 0 NOTYPE LOCAL DEFAULT 14 $x - 37: 0000000000000000 0 FILE LOCAL DEFAULT ABS crtn.o - 38: 00000000000005c8 0 NOTYPE LOCAL DEFAULT 11 $x - 39: 00000000000007e0 0 NOTYPE LOCAL DEFAULT 14 $x - 40: 0000000000000000 0 FILE LOCAL DEFAULT ABS crtstuff.c - 41: 0000000000000690 0 NOTYPE LOCAL DEFAULT 13 $x - 42: 0000000000000690 0 FUNC LOCAL DEFAULT 13 deregister_tm_clones - 43: 00000000000006c0 0 FUNC LOCAL DEFAULT 13 register_tm_clones - 44: 0000000000011030 0 NOTYPE LOCAL DEFAULT 23 $d - 45: 0000000000000700 0 FUNC LOCAL DEFAULT 13 __do_global_dtors_aux - 46: 0000000000011038 1 OBJECT LOCAL DEFAULT 24 completed.0 - 47: 0000000000010dd0 0 NOTYPE LOCAL DEFAULT 19 $d - 48: 0000000000010dd0 0 OBJECT LOCAL DEFAULT 19 __do_global_dtors_aux_fini_array_entry - 49: 0000000000000750 0 FUNC LOCAL DEFAULT 13 frame_dummy - 50: 0000000000010dc8 0 NOTYPE LOCAL DEFAULT 18 $d - 51: 0000000000010dc8 0 OBJECT LOCAL DEFAULT 18 __frame_dummy_init_array_entry - 52: 0000000000000860 0 NOTYPE LOCAL DEFAULT 17 $d - 53: 0000000000011038 0 NOTYPE LOCAL DEFAULT 24 $d - 54: 0000000000000000 0 FILE LOCAL DEFAULT ABS function1.c - 55: 0000000000000754 0 NOTYPE LOCAL DEFAULT 13 $x.0 - 56: 000000000001103c 0 NOTYPE LOCAL DEFAULT 24 $d.1 - 57: 00000000000007ec 0 NOTYPE LOCAL DEFAULT 15 $d.2 - 58: 000000000000002a 0 NOTYPE LOCAL DEFAULT 25 $d.3 - 59: 00000000000008c0 0 NOTYPE LOCAL DEFAULT 17 $d.4 - 60: 0000000000000000 0 FILE LOCAL DEFAULT ABS crtstuff.c - 61: 0000000000000914 0 NOTYPE LOCAL DEFAULT 17 $d - 62: 0000000000000914 0 OBJECT LOCAL DEFAULT 17 __FRAME_END__ - 63: 0000000000000000 0 FILE LOCAL DEFAULT ABS - 64: 0000000000010dd8 0 OBJECT LOCAL DEFAULT ABS _DYNAMIC - 65: 00000000000007f0 0 NOTYPE LOCAL DEFAULT 16 __GNU_EH_FRAME_HDR - 66: 0000000000010fb8 0 OBJECT LOCAL DEFAULT ABS _GLOBAL_OFFSET_TABLE_ - 67: 00000000000005d0 0 NOTYPE LOCAL DEFAULT 12 $x - 68: 0000000000000000 0 FUNC GLOBAL DEFAULT UND __libc_start_main@GLIBC_2.34 - 69: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_deregisterTMCloneTable - 70: 0000000000011028 0 NOTYPE WEAK DEFAULT 23 data_start - 71: 0000000000011038 0 NOTYPE GLOBAL DEFAULT 24 __bss_start__ - 72: 0000000000000000 0 FUNC WEAK DEFAULT UND __cxa_finalize@GLIBC_2.17 - 73: 0000000000011048 0 NOTYPE GLOBAL DEFAULT 24 _bss_end__ - 74: 0000000000011038 0 NOTYPE GLOBAL DEFAULT 23 _edata - 75: 000000000001103c 4 OBJECT GLOBAL DEFAULT 24 x - 76: 00000000000007d4 0 FUNC GLOBAL HIDDEN 14 _fini - 77: 0000000000011048 0 NOTYPE GLOBAL DEFAULT 24 __bss_end__ - 78: 0000000000000754 48 FUNC GLOBAL DEFAULT 13 get_two - 79: 0000000000011028 0 NOTYPE GLOBAL DEFAULT 23 __data_start - 80: 0000000000000000 0 NOTYPE WEAK DEFAULT UND __gmon_start__ - 81: 0000000000011030 0 OBJECT GLOBAL HIDDEN 23 __dso_handle - 82: 0000000000000000 0 FUNC GLOBAL DEFAULT UND abort@GLIBC_2.17 - 83: 00000000000007e8 4 OBJECT GLOBAL DEFAULT 15 _IO_stdin_used - 84: 0000000000011048 0 NOTYPE GLOBAL DEFAULT 24 _end - 85: 0000000000000640 52 FUNC GLOBAL DEFAULT 13 _start - 86: 0000000000011048 0 NOTYPE GLOBAL DEFAULT 24 __end__ - 87: 0000000000011040 4 OBJECT GLOBAL DEFAULT 24 y - 88: 0000000000011038 0 NOTYPE GLOBAL DEFAULT 24 __bss_start - 89: 0000000000000784 80 FUNC GLOBAL DEFAULT 13 main - 90: 0000000000011038 0 OBJECT GLOBAL HIDDEN 23 __TMC_END__ - 91: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_registerTMCloneTable - 92: 0000000000000000 0 FUNC GLOBAL DEFAULT UND printf@GLIBC_2.17 - 93: 00000000000005b8 0 FUNC GLOBAL HIDDEN 11 _init diff --git a/src/test/correct/function1/clang/function1_gtirb.expected b/src/test/correct/function1/clang/function1_gtirb.expected index 7382ab333..dddbdf421 100644 --- a/src/test/correct/function1/clang/function1_gtirb.expected +++ b/src/test/correct/function1/clang/function1_gtirb.expected @@ -111,7 +111,7 @@ procedure {:extern} rely_reflexive(); procedure {:extern} guarantee_reflexive(); modifies Gamma_mem, mem; -procedure main_1924(); +procedure main(); modifies Gamma_R0, Gamma_R1, Gamma_R16, Gamma_R17, Gamma_R2, Gamma_R29, Gamma_R30, Gamma_R31, Gamma_R8, Gamma_R9, Gamma_mem, Gamma_stack, R0, R1, R16, R17, R2, R29, R30, R31, R8, R9, mem, stack; free requires (memory_load64_le(mem, 69672bv64) == 0bv64); free requires (memory_load64_le(mem, 69680bv64) == 69680bv64); @@ -130,69 +130,69 @@ procedure main_1924(); free ensures (memory_load64_le(mem, 69592bv64) == 1924bv64); free ensures (memory_load64_le(mem, 69680bv64) == 69680bv64); -implementation main_1924() +implementation main() { - var Cse0__5_1_0: bv64; - var Gamma_Cse0__5_1_0: bool; - var Gamma_load2: bool; - var Gamma_load3: bool; - var Gamma_load4: bool; - var load2: bv64; - var load3: bv64; - var load4: bv32; - main_1924__0__KJRMRffwQj~dxGE4yyDNOg: - assume {:captureState "main_1924__0__KJRMRffwQj~dxGE4yyDNOg"} true; - Cse0__5_1_0, Gamma_Cse0__5_1_0 := bvadd64(R31, 18446744073709551600bv64), Gamma_R31; - stack, Gamma_stack := memory_store64_le(stack, Cse0__5_1_0, R29), gamma_store64(Gamma_stack, Cse0__5_1_0, Gamma_R29); - assume {:captureState "1924_1"} true; - stack, Gamma_stack := memory_store64_le(stack, bvadd64(Cse0__5_1_0, 8bv64), R30), gamma_store64(Gamma_stack, bvadd64(Cse0__5_1_0, 8bv64), Gamma_R30); - assume {:captureState "1924_2"} true; - R31, Gamma_R31 := Cse0__5_1_0, Gamma_Cse0__5_1_0; + var $load2: bv64; + var $load3: bv64; + var $load4: bv32; + var Cse0__5$1$0: bv64; + var Gamma_$load2: bool; + var Gamma_$load3: bool; + var Gamma_$load4: bool; + var Gamma_Cse0__5$1$0: bool; + $main$__0__$KJRMRffwQj~dxGE4yyDNOg: + assume {:captureState "$main$__0__$KJRMRffwQj~dxGE4yyDNOg"} true; + Cse0__5$1$0, Gamma_Cse0__5$1$0 := bvadd64(R31, 18446744073709551600bv64), Gamma_R31; + stack, Gamma_stack := memory_store64_le(stack, Cse0__5$1$0, R29), gamma_store64(Gamma_stack, Cse0__5$1$0, Gamma_R29); + assume {:captureState "1924$1"} true; + stack, Gamma_stack := memory_store64_le(stack, bvadd64(Cse0__5$1$0, 8bv64), R30), gamma_store64(Gamma_stack, bvadd64(Cse0__5$1$0, 8bv64), Gamma_R30); + assume {:captureState "1924$2"} true; + R31, Gamma_R31 := Cse0__5$1$0, Gamma_Cse0__5$1$0; R29, Gamma_R29 := R31, Gamma_R31; R9, Gamma_R9 := 69632bv64, true; R8, Gamma_R8 := 1bv64, true; call rely(); assert (L(mem, bvadd64(R9, 60bv64)) ==> Gamma_R8); mem, Gamma_mem := memory_store32_le(mem, bvadd64(R9, 60bv64), R8[32:0]), gamma_store32(Gamma_mem, bvadd64(R9, 60bv64), Gamma_R8); - assume {:captureState "1940_0"} true; + assume {:captureState "1940$0"} true; R0, Gamma_R0 := 97bv64, true; R1, Gamma_R1 := 10bv64, true; R2, Gamma_R2 := 58368bv64, true; R2, Gamma_R2 := (R2[64:32] ++ (21515bv16 ++ R2[16:0])), Gamma_R2; R2, Gamma_R2 := (R2[64:48] ++ (2bv16 ++ R2[32:0])), Gamma_R2; R30, Gamma_R30 := 1968bv64, true; - call get_two_1876(); - goto main_1924__1__YtzF~ruPSxeKxDQFuoMNCA; - main_1924__1__YtzF~ruPSxeKxDQFuoMNCA: - assume {:captureState "main_1924__1__YtzF~ruPSxeKxDQFuoMNCA"} true; + call get_two(); + goto $main$__1__$YtzF~ruPSxeKxDQFuoMNCA; + $main$__1__$YtzF~ruPSxeKxDQFuoMNCA: + assume {:captureState "$main$__1__$YtzF~ruPSxeKxDQFuoMNCA"} true; R8, Gamma_R8 := 69632bv64, true; call rely(); assert (L(mem, bvadd64(R8, 64bv64)) ==> Gamma_R0); mem, Gamma_mem := memory_store32_le(mem, bvadd64(R8, 64bv64), R0[32:0]), gamma_store32(Gamma_mem, bvadd64(R8, 64bv64), Gamma_R0); - assume {:captureState "1972_0"} true; + assume {:captureState "1972$0"} true; call rely(); - load4, Gamma_load4 := memory_load32_le(mem, bvadd64(R8, 64bv64)), (gamma_load32(Gamma_mem, bvadd64(R8, 64bv64)) || L(mem, bvadd64(R8, 64bv64))); - R1, Gamma_R1 := zero_extend32_32(load4), Gamma_load4; + $load4, Gamma_$load4 := memory_load32_le(mem, bvadd64(R8, 64bv64)), (gamma_load32(Gamma_mem, bvadd64(R8, 64bv64)) || L(mem, bvadd64(R8, 64bv64))); + R1, Gamma_R1 := zero_extend32_32($load4), Gamma_$load4; R0, Gamma_R0 := 0bv64, true; R0, Gamma_R0 := bvadd64(R0, 2028bv64), Gamma_R0; R30, Gamma_R30 := 1992bv64, true; - call FUN_630_1584(); - goto main_1924__2__CEYnN9k9SmuiVVhWQDVk8Q; - main_1924__2__CEYnN9k9SmuiVVhWQDVk8Q: - assume {:captureState "main_1924__2__CEYnN9k9SmuiVVhWQDVk8Q"} true; + call FUN_630(); + goto $main$__2__$CEYnN9k9SmuiVVhWQDVk8Q; + $main$__2__$CEYnN9k9SmuiVVhWQDVk8Q: + assume {:captureState "$main$__2__$CEYnN9k9SmuiVVhWQDVk8Q"} true; R0, Gamma_R0 := 0bv64, true; - load2, Gamma_load2 := memory_load64_le(stack, R31), gamma_load64(Gamma_stack, R31); - R29, Gamma_R29 := load2, Gamma_load2; - load3, Gamma_load3 := memory_load64_le(stack, bvadd64(R31, 8bv64)), gamma_load64(Gamma_stack, bvadd64(R31, 8bv64)); - R30, Gamma_R30 := load3, Gamma_load3; + $load2, Gamma_$load2 := memory_load64_le(stack, R31), gamma_load64(Gamma_stack, R31); + R29, Gamma_R29 := $load2, Gamma_$load2; + $load3, Gamma_$load3 := memory_load64_le(stack, bvadd64(R31, 8bv64)), gamma_load64(Gamma_stack, bvadd64(R31, 8bv64)); + R30, Gamma_R30 := $load3, Gamma_$load3; R31, Gamma_R31 := bvadd64(R31, 16bv64), Gamma_R31; - goto main_1924_basil_return; - main_1924_basil_return: - assume {:captureState "main_1924_basil_return"} true; + goto main_basil_return; + main_basil_return: + assume {:captureState "main_basil_return"} true; return; } -procedure FUN_630_1584(); +procedure FUN_630(); modifies Gamma_R16, Gamma_R17, Gamma_mem, R16, R17, mem; free requires (memory_load64_le(mem, 2024bv64) == 2924859843805185bv64); free requires (memory_load64_le(mem, 69064bv64) == 1872bv64); @@ -205,25 +205,22 @@ procedure FUN_630_1584(); free ensures (memory_load64_le(mem, 69592bv64) == 1924bv64); free ensures (memory_load64_le(mem, 69680bv64) == 69680bv64); -implementation FUN_630_1584() +implementation FUN_630() { - var Gamma_load15: bool; - var load15: bv64; - FUN_630_1584__0__NZBDTAx8S7uixhiUTM36gA: - assume {:captureState "FUN_630_1584__0__NZBDTAx8S7uixhiUTM36gA"} true; + var $load15: bv64; + var Gamma_$load15: bool; + $FUN_630$__0__$NZBDTAx8S7uixhiUTM36gA: + assume {:captureState "$FUN_630$__0__$NZBDTAx8S7uixhiUTM36gA"} true; R16, Gamma_R16 := 69632bv64, true; call rely(); - load15, Gamma_load15 := memory_load64_le(mem, bvadd64(R16, 32bv64)), (gamma_load64(Gamma_mem, bvadd64(R16, 32bv64)) || L(mem, bvadd64(R16, 32bv64))); - R17, Gamma_R17 := load15, Gamma_load15; + $load15, Gamma_$load15 := memory_load64_le(mem, bvadd64(R16, 32bv64)), (gamma_load64(Gamma_mem, bvadd64(R16, 32bv64)) || L(mem, bvadd64(R16, 32bv64))); + R17, Gamma_R17 := $load15, Gamma_$load15; R16, Gamma_R16 := bvadd64(R16, 32bv64), Gamma_R16; call printf(); - goto FUN_630_1584_basil_return; - FUN_630_1584_basil_return: - assume {:captureState "FUN_630_1584_basil_return"} true; - return; + assume false; } -procedure get_two_1876(); +procedure get_two(); modifies Gamma_R0, Gamma_R31, Gamma_R8, Gamma_R9, Gamma_stack, R0, R31, R8, R9, stack; free requires (memory_load64_le(mem, 2024bv64) == 2924859843805185bv64); free requires (memory_load64_le(mem, 69064bv64) == 1872bv64); @@ -238,36 +235,36 @@ procedure get_two_1876(); free ensures (memory_load64_le(mem, 69592bv64) == 1924bv64); free ensures (memory_load64_le(mem, 69680bv64) == 69680bv64); -implementation get_two_1876() +implementation get_two() { - var Gamma_load17: bool; - var Gamma_load18: bool; - var Gamma_load19: bool; - var load17: bv8; - var load18: bv32; - var load19: bv64; - get_two_1876__0__p4Q_YT4qRRGcIyXB48MM3g: - assume {:captureState "get_two_1876__0__p4Q_YT4qRRGcIyXB48MM3g"} true; + var $load17: bv8; + var $load18: bv32; + var $load19: bv64; + var Gamma_$load17: bool; + var Gamma_$load18: bool; + var Gamma_$load19: bool; + $get_two$__0__$p4Q_YT4qRRGcIyXB48MM3g: + assume {:captureState "$get_two$__0__$p4Q_YT4qRRGcIyXB48MM3g"} true; R31, Gamma_R31 := bvadd64(R31, 18446744073709551600bv64), Gamma_R31; stack, Gamma_stack := memory_store8_le(stack, bvadd64(R31, 15bv64), R0[8:0]), gamma_store8(Gamma_stack, bvadd64(R31, 15bv64), Gamma_R0); - assume {:captureState "1880_0"} true; + assume {:captureState "1880$0"} true; stack, Gamma_stack := memory_store32_le(stack, bvadd64(R31, 8bv64), R1[32:0]), gamma_store32(Gamma_stack, bvadd64(R31, 8bv64), Gamma_R1); - assume {:captureState "1884_0"} true; + assume {:captureState "1884$0"} true; stack, Gamma_stack := memory_store64_le(stack, R31, R2), gamma_store64(Gamma_stack, R31, Gamma_R2); - assume {:captureState "1888_0"} true; - load17, Gamma_load17 := memory_load8_le(stack, bvadd64(R31, 15bv64)), gamma_load8(Gamma_stack, bvadd64(R31, 15bv64)); - R8, Gamma_R8 := zero_extend32_32(zero_extend24_8(load17)), Gamma_load17; - load18, Gamma_load18 := memory_load32_le(stack, bvadd64(R31, 8bv64)), gamma_load32(Gamma_stack, bvadd64(R31, 8bv64)); - R9, Gamma_R9 := zero_extend32_32(load18), Gamma_load18; + assume {:captureState "1888$0"} true; + $load17, Gamma_$load17 := memory_load8_le(stack, bvadd64(R31, 15bv64)), gamma_load8(Gamma_stack, bvadd64(R31, 15bv64)); + R8, Gamma_R8 := zero_extend32_32(zero_extend24_8($load17)), Gamma_$load17; + $load18, Gamma_$load18 := memory_load32_le(stack, bvadd64(R31, 8bv64)), gamma_load32(Gamma_stack, bvadd64(R31, 8bv64)); + R9, Gamma_R9 := zero_extend32_32($load18), Gamma_$load18; R9, Gamma_R9 := zero_extend32_32(bvadd32(R8[32:0], R9[32:0])), (Gamma_R9 && Gamma_R8); - load19, Gamma_load19 := memory_load64_le(stack, R31), gamma_load64(Gamma_stack, R31); - R8, Gamma_R8 := load19, Gamma_load19; + $load19, Gamma_$load19 := memory_load64_le(stack, R31), gamma_load64(Gamma_stack, R31); + R8, Gamma_R8 := $load19, Gamma_$load19; R8, Gamma_R8 := bvadd64(R8, sign_extend32_32(R9[32:0])), (Gamma_R9 && Gamma_R8); R0, Gamma_R0 := zero_extend32_32(R8[32:0]), Gamma_R8; R31, Gamma_R31 := bvadd64(R31, 16bv64), Gamma_R31; - goto get_two_1876_basil_return; - get_two_1876_basil_return: - assume {:captureState "get_two_1876_basil_return"} true; + goto get_two_basil_return; + get_two_basil_return: + assume {:captureState "get_two_basil_return"} true; return; } diff --git a/src/test/correct/function1/clang_O2/function1.adt b/src/test/correct/function1/clang_O2/function1.adt deleted file mode 100644 index 598ffa589..000000000 --- a/src/test/correct/function1/clang_O2/function1.adt +++ /dev/null @@ -1,581 +0,0 @@ -Project(Attrs([Attr("filename","\"clang_O2/function1.out\""), -Attr("image-specification","(declare abi (name str))\n(declare arch (name str))\n(declare base-address (addr int))\n(declare bias (off int))\n(declare bits (size int))\n(declare code-region (addr int) (size int) (off int))\n(declare code-start (addr int))\n(declare entry-point (addr int))\n(declare external-reference (addr int) (name str))\n(declare format (name str))\n(declare is-executable (flag bool))\n(declare is-little-endian (flag bool))\n(declare llvm:base-address (addr int))\n(declare llvm:code-entry (name str) (off int) (size int))\n(declare llvm:coff-import-library (name str))\n(declare llvm:coff-virtual-section-header (name str) (addr int) (size int))\n(declare llvm:elf-program-header (name str) (off int) (size int))\n(declare llvm:elf-program-header-flags (name str) (ld bool) (r bool) \n (w bool) (x bool))\n(declare llvm:elf-virtual-program-header (name str) (addr int) (size int))\n(declare llvm:entry-point (addr int))\n(declare llvm:macho-symbol (name str) (value int))\n(declare llvm:name-reference (at int) (name str))\n(declare llvm:relocation (at int) (addr int))\n(declare llvm:section-entry (name str) (addr int) (size int) (off int))\n(declare llvm:section-flags (name str) (r bool) (w bool) (x bool))\n(declare llvm:segment-command (name str) (off int) (size int))\n(declare llvm:segment-command-flags (name str) (r bool) (w bool) (x bool))\n(declare llvm:symbol-entry (name str) (addr int) (size int) (off int)\n (value int))\n(declare llvm:virtual-segment-command (name str) (addr int) (size int))\n(declare mapped (addr int) (size int) (off int))\n(declare named-region (addr int) (size int) (name str))\n(declare named-symbol (addr int) (name str))\n(declare require (name str))\n(declare section (addr int) (size int))\n(declare segment (addr int) (size int) (r bool) (w bool) (x bool))\n(declare subarch (name str))\n(declare symbol-chunk (addr int) (size int) (root int))\n(declare symbol-value (addr int) (value int))\n(declare system (name str))\n(declare vendor (name str))\n\n(abi unknown)\n(arch aarch64)\n(base-address 0)\n(bias 0)\n(bits 64)\n(code-region 1956 20 1956)\n(code-region 1600 356 1600)\n(code-region 1488 112 1488)\n(code-region 1464 24 1464)\n(code-start 1652)\n(code-start 1876)\n(code-start 1600)\n(code-start 1888)\n(entry-point 1600)\n(external-reference 69568 _ITM_deregisterTMCloneTable)\n(external-reference 69576 __cxa_finalize)\n(external-reference 69584 __gmon_start__)\n(external-reference 69600 _ITM_registerTMCloneTable)\n(external-reference 69632 __libc_start_main)\n(external-reference 69640 __cxa_finalize)\n(external-reference 69648 __gmon_start__)\n(external-reference 69656 abort)\n(external-reference 69664 printf)\n(format elf)\n(is-executable true)\n(is-little-endian true)\n(llvm:base-address 0)\n(llvm:code-entry printf 0 0)\n(llvm:code-entry abort 0 0)\n(llvm:code-entry __cxa_finalize 0 0)\n(llvm:code-entry __libc_start_main 0 0)\n(llvm:code-entry _init 1464 0)\n(llvm:code-entry printf@GLIBC_2.17 0 0)\n(llvm:code-entry main 1888 68)\n(llvm:code-entry _start 1600 52)\n(llvm:code-entry abort@GLIBC_2.17 0 0)\n(llvm:code-entry get_two 1876 12)\n(llvm:code-entry _fini 1956 0)\n(llvm:code-entry __cxa_finalize@GLIBC_2.17 0 0)\n(llvm:code-entry __libc_start_main@GLIBC_2.34 0 0)\n(llvm:code-entry frame_dummy 1872 0)\n(llvm:code-entry __do_global_dtors_aux 1792 0)\n(llvm:code-entry register_tm_clones 1728 0)\n(llvm:code-entry deregister_tm_clones 1680 0)\n(llvm:code-entry call_weak_fn 1652 20)\n(llvm:code-entry .fini 1956 20)\n(llvm:code-entry .text 1600 356)\n(llvm:code-entry .plt 1488 112)\n(llvm:code-entry .init 1464 24)\n(llvm:elf-program-header 08 3528 568)\n(llvm:elf-program-header 07 0 0)\n(llvm:elf-program-header 06 1984 68)\n(llvm:elf-program-header 05 596 68)\n(llvm:elf-program-header 04 3544 480)\n(llvm:elf-program-header 03 3528 624)\n(llvm:elf-program-header 02 0 2276)\n(llvm:elf-program-header 01 568 27)\n(llvm:elf-program-header 00 64 504)\n(llvm:elf-program-header-flags 08 false true false false)\n(llvm:elf-program-header-flags 07 false true true false)\n(llvm:elf-program-header-flags 06 false true false false)\n(llvm:elf-program-header-flags 05 false true false false)\n(llvm:elf-program-header-flags 04 false true true false)\n(llvm:elf-program-header-flags 03 true true true false)\n(llvm:elf-program-header-flags 02 true true false true)\n(llvm:elf-program-header-flags 01 false true false false)\n(llvm:elf-program-header-flags 00 false true false false)\n(llvm:elf-virtual-program-header 08 69064 568)\n(llvm:elf-virtual-program-header 07 0 0)\n(llvm:elf-virtual-program-header 06 1984 68)\n(llvm:elf-virtual-program-header 05 596 68)\n(llvm:elf-virtual-program-header 04 69080 480)\n(llvm:elf-virtual-program-header 03 69064 640)\n(llvm:elf-virtual-program-header 02 0 2276)\n(llvm:elf-virtual-program-header 01 568 27)\n(llvm:elf-virtual-program-header 00 64 504)\n(llvm:entry-point 1600)\n(llvm:name-reference 69664 printf)\n(llvm:name-reference 69656 abort)\n(llvm:name-reference 69648 __gmon_start__)\n(llvm:name-reference 69640 __cxa_finalize)\n(llvm:name-reference 69632 __libc_start_main)\n(llvm:name-reference 69600 _ITM_registerTMCloneTable)\n(llvm:name-reference 69584 __gmon_start__)\n(llvm:name-reference 69576 __cxa_finalize)\n(llvm:name-reference 69568 _ITM_deregisterTMCloneTable)\n(llvm:section-entry .shstrtab 0 259 7076)\n(llvm:section-entry .strtab 0 596 6480)\n(llvm:section-entry .symtab 0 2256 4224)\n(llvm:section-entry .comment 0 71 4152)\n(llvm:section-entry .bss 69688 16 4152)\n(llvm:section-entry .data 69672 16 4136)\n(llvm:section-entry .got.plt 69608 64 4072)\n(llvm:section-entry .got 69560 48 4024)\n(llvm:section-entry .dynamic 69080 480 3544)\n(llvm:section-entry .fini_array 69072 8 3536)\n(llvm:section-entry .init_array 69064 8 3528)\n(llvm:section-entry .eh_frame 2056 220 2056)\n(llvm:section-entry .eh_frame_hdr 1984 68 1984)\n(llvm:section-entry .rodata 1976 8 1976)\n(llvm:section-entry .fini 1956 20 1956)\n(llvm:section-entry .text 1600 356 1600)\n(llvm:section-entry .plt 1488 112 1488)\n(llvm:section-entry .init 1464 24 1464)\n(llvm:section-entry .rela.plt 1344 120 1344)\n(llvm:section-entry .rela.dyn 1152 192 1152)\n(llvm:section-entry .gnu.version_r 1104 48 1104)\n(llvm:section-entry .gnu.version 1084 20 1084)\n(llvm:section-entry .dynstr 936 148 936)\n(llvm:section-entry .dynsym 696 240 696)\n(llvm:section-entry .gnu.hash 664 28 664)\n(llvm:section-entry .note.ABI-tag 632 32 632)\n(llvm:section-entry .note.gnu.build-id 596 36 596)\n(llvm:section-entry .interp 568 27 568)\n(llvm:section-flags .shstrtab true false false)\n(llvm:section-flags .strtab true false false)\n(llvm:section-flags .symtab true false false)\n(llvm:section-flags .comment true false false)\n(llvm:section-flags .bss true true false)\n(llvm:section-flags .data true true false)\n(llvm:section-flags .got.plt true true false)\n(llvm:section-flags .got true true false)\n(llvm:section-flags .dynamic true true false)\n(llvm:section-flags .fini_array true true false)\n(llvm:section-flags .init_array true true false)\n(llvm:section-flags .eh_frame true false false)\n(llvm:section-flags .eh_frame_hdr true false false)\n(llvm:section-flags .rodata true false false)\n(llvm:section-flags .fini true false true)\n(llvm:section-flags .text true false true)\n(llvm:section-flags .plt true false true)\n(llvm:section-flags .init true false true)\n(llvm:section-flags .rela.plt true false false)\n(llvm:section-flags .rela.dyn true false false)\n(llvm:section-flags .gnu.version_r true false false)\n(llvm:section-flags .gnu.version true false false)\n(llvm:section-flags .dynstr true false false)\n(llvm:section-flags .dynsym true false false)\n(llvm:section-flags .gnu.hash true false false)\n(llvm:section-flags .note.ABI-tag true false false)\n(llvm:section-flags .note.gnu.build-id true false false)\n(llvm:section-flags .interp true false false)\n(llvm:symbol-entry printf 0 0 0 0)\n(llvm:symbol-entry abort 0 0 0 0)\n(llvm:symbol-entry __cxa_finalize 0 0 0 0)\n(llvm:symbol-entry __libc_start_main 0 0 0 0)\n(llvm:symbol-entry _init 1464 0 1464 1464)\n(llvm:symbol-entry printf@GLIBC_2.17 0 0 0 0)\n(llvm:symbol-entry main 1888 68 1888 1888)\n(llvm:symbol-entry _start 1600 52 1600 1600)\n(llvm:symbol-entry abort@GLIBC_2.17 0 0 0 0)\n(llvm:symbol-entry get_two 1876 12 1876 1876)\n(llvm:symbol-entry _fini 1956 0 1956 1956)\n(llvm:symbol-entry __cxa_finalize@GLIBC_2.17 0 0 0 0)\n(llvm:symbol-entry __libc_start_main@GLIBC_2.34 0 0 0 0)\n(llvm:symbol-entry frame_dummy 1872 0 1872 1872)\n(llvm:symbol-entry __do_global_dtors_aux 1792 0 1792 1792)\n(llvm:symbol-entry register_tm_clones 1728 0 1728 1728)\n(llvm:symbol-entry deregister_tm_clones 1680 0 1680 1680)\n(llvm:symbol-entry call_weak_fn 1652 20 1652 1652)\n(mapped 0 2276 0)\n(mapped 69064 624 3528)\n(named-region 0 2276 02)\n(named-region 69064 640 03)\n(named-region 568 27 .interp)\n(named-region 596 36 .note.gnu.build-id)\n(named-region 632 32 .note.ABI-tag)\n(named-region 664 28 .gnu.hash)\n(named-region 696 240 .dynsym)\n(named-region 936 148 .dynstr)\n(named-region 1084 20 .gnu.version)\n(named-region 1104 48 .gnu.version_r)\n(named-region 1152 192 .rela.dyn)\n(named-region 1344 120 .rela.plt)\n(named-region 1464 24 .init)\n(named-region 1488 112 .plt)\n(named-region 1600 356 .text)\n(named-region 1956 20 .fini)\n(named-region 1976 8 .rodata)\n(named-region 1984 68 .eh_frame_hdr)\n(named-region 2056 220 .eh_frame)\n(named-region 69064 8 .init_array)\n(named-region 69072 8 .fini_array)\n(named-region 69080 480 .dynamic)\n(named-region 69560 48 .got)\n(named-region 69608 64 .got.plt)\n(named-region 69672 16 .data)\n(named-region 69688 16 .bss)\n(named-region 0 71 .comment)\n(named-region 0 2256 .symtab)\n(named-region 0 596 .strtab)\n(named-region 0 259 .shstrtab)\n(named-symbol 1652 call_weak_fn)\n(named-symbol 1680 deregister_tm_clones)\n(named-symbol 1728 register_tm_clones)\n(named-symbol 1792 __do_global_dtors_aux)\n(named-symbol 1872 frame_dummy)\n(named-symbol 0 __libc_start_main@GLIBC_2.34)\n(named-symbol 0 __cxa_finalize@GLIBC_2.17)\n(named-symbol 1956 _fini)\n(named-symbol 1876 get_two)\n(named-symbol 0 abort@GLIBC_2.17)\n(named-symbol 1600 _start)\n(named-symbol 1888 main)\n(named-symbol 0 printf@GLIBC_2.17)\n(named-symbol 1464 _init)\n(named-symbol 0 __libc_start_main)\n(named-symbol 0 __cxa_finalize)\n(named-symbol 0 abort)\n(named-symbol 0 printf)\n(require libc.so.6)\n(section 568 27)\n(section 596 36)\n(section 632 32)\n(section 664 28)\n(section 696 240)\n(section 936 148)\n(section 1084 20)\n(section 1104 48)\n(section 1152 192)\n(section 1344 120)\n(section 1464 24)\n(section 1488 112)\n(section 1600 356)\n(section 1956 20)\n(section 1976 8)\n(section 1984 68)\n(section 2056 220)\n(section 69064 8)\n(section 69072 8)\n(section 69080 480)\n(section 69560 48)\n(section 69608 64)\n(section 69672 16)\n(section 69688 16)\n(section 0 71)\n(section 0 2256)\n(section 0 596)\n(section 0 259)\n(segment 0 2276 true false true)\n(segment 69064 640 true true false)\n(subarch v8)\n(symbol-chunk 1652 20 1652)\n(symbol-chunk 1876 12 1876)\n(symbol-chunk 1600 52 1600)\n(symbol-chunk 1888 68 1888)\n(symbol-value 1652 1652)\n(symbol-value 1680 1680)\n(symbol-value 1728 1728)\n(symbol-value 1792 1792)\n(symbol-value 1872 1872)\n(symbol-value 1956 1956)\n(symbol-value 1876 1876)\n(symbol-value 1600 1600)\n(symbol-value 1888 1888)\n(symbol-value 1464 1464)\n(symbol-value 0 0)\n(system \"\")\n(vendor \"\")\n"), -Attr("abi-name","\"aarch64-linux-gnu-elf\"")]), -Sections([Section(".shstrtab", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x40\x06\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xa8\x1c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x38\x00\x09\x00\x40\x00\x1d\x00\x1c\x00\x06\x00\x00\x00\x04\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x04\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe4\x08\x00\x00\x00\x00\x00\x00\xe4\x08\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x01\x00\x00\x00\x06\x00\x00\x00\xc8\x0d\x00\x00\x00\x00\x00\x00\xc8\x0d\x01\x00\x00\x00\x00\x00\xc8\x0d\x01"), -Section(".strtab", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x40\x06\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xa8\x1c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x38\x00\x09\x00\x40\x00\x1d\x00\x1c\x00\x06\x00\x00\x00\x04\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x04\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe4\x08\x00\x00\x00\x00\x00\x00\xe4\x08\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x01\x00\x00\x00\x06\x00\x00\x00\xc8\x0d\x00\x00\x00\x00\x00\x00\xc8\x0d\x01\x00\x00\x00\x00\x00\xc8\x0d\x01\x00\x00\x00\x00\x00\x70\x02\x00\x00\x00\x00\x00\x00\x80\x02\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x02\x00\x00\x00\x06\x00\x00\x00\xd8\x0d\x00\x00\x00\x00\x00\x00\xd8\x0d\x01\x00\x00\x00\x00\x00\xd8\x0d\x01\x00\x00\x00\x00\x00\xe0\x01\x00\x00\x00\x00\x00\x00\xe0\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x04\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x50\xe5\x74\x64\x04\x00\x00\x00\xc0\x07\x00\x00\x00\x00\x00\x00\xc0\x07\x00\x00\x00\x00\x00\x00\xc0\x07\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x51\xe5\x74\x64\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x52\xe5\x74\x64\x04\x00\x00\x00\xc8\x0d\x00\x00\x00\x00\x00\x00\xc8\x0d\x01\x00\x00\x00\x00\x00\xc8\x0d\x01\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x2f\x6c\x69\x62\x2f\x6c\x64\x2d\x6c\x69\x6e\x75\x78\x2d\x61\x61\x72\x63\x68\x36\x34\x2e\x73\x6f\x2e\x31\x00\x00"), -Section(".symtab", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x40\x06\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xa8\x1c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x38\x00\x09\x00\x40\x00\x1d\x00\x1c\x00\x06\x00\x00\x00\x04\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x04\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe4\x08\x00\x00\x00\x00\x00\x00\xe4\x08\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x01\x00\x00\x00\x06\x00\x00\x00\xc8\x0d\x00\x00\x00\x00\x00\x00\xc8\x0d\x01\x00\x00\x00\x00\x00\xc8\x0d\x01\x00\x00\x00\x00\x00\x70\x02\x00\x00\x00\x00\x00\x00\x80\x02\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x02\x00\x00\x00\x06\x00\x00\x00\xd8\x0d\x00\x00\x00\x00\x00\x00\xd8\x0d\x01\x00\x00\x00\x00\x00\xd8\x0d\x01\x00\x00\x00\x00\x00\xe0\x01\x00\x00\x00\x00\x00\x00\xe0\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x04\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x50\xe5\x74\x64\x04\x00\x00\x00\xc0\x07\x00\x00\x00\x00\x00\x00\xc0\x07\x00\x00\x00\x00\x00\x00\xc0\x07\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x51\xe5\x74\x64\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x52\xe5\x74\x64\x04\x00\x00\x00\xc8\x0d\x00\x00\x00\x00\x00\x00\xc8\x0d\x01\x00\x00\x00\x00\x00\xc8\x0d\x01\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x2f\x6c\x69\x62\x2f\x6c\x64\x2d\x6c\x69\x6e\x75\x78\x2d\x61\x61\x72\x63\x68\x36\x34\x2e\x73\x6f\x2e\x31\x00\x00\x04\x00\x00\x00\x14\x00\x00\x00\x03\x00\x00\x00\x47\x4e\x55\x00\x76\x68\xa7\x87\xf9\x7d\x53\x60\xf3\x5b\x1b\xb3\xf6\x6a\x8f\x83\x67\x27\xf0\x48\x04\x00\x00\x00\x10\x00\x00\x00\x01\x00\x00\x00\x47\x4e\x55\x00\x00\x00\x00\x00\x03\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x01\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x0b\x00\xb8\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x17\x00\x28\x10\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4f\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x22\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6b\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x22\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x28\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5f\x5f\x63\x78\x61\x5f\x66\x69\x6e\x61\x6c\x69\x7a\x65\x00\x5f\x5f\x6c\x69\x62\x63\x5f\x73\x74\x61\x72\x74\x5f\x6d\x61\x69\x6e\x00\x61\x62\x6f\x72\x74\x00\x70\x72\x69\x6e\x74\x66\x00\x6c\x69\x62\x63\x2e\x73\x6f\x2e\x36\x00\x47\x4c\x49\x42\x43\x5f\x32\x2e\x31\x37\x00\x47\x4c\x49\x42\x43\x5f\x32\x2e\x33\x34\x00\x5f\x49\x54\x4d\x5f\x64\x65\x72\x65\x67\x69\x73\x74\x65\x72\x54\x4d\x43\x6c\x6f\x6e\x65\x54\x61\x62\x6c\x65\x00\x5f\x5f\x67\x6d\x6f\x6e\x5f\x73\x74\x61\x72\x74\x5f\x5f\x00\x5f\x49\x54\x4d\x5f\x72\x65\x67\x69\x73\x74\x65\x72\x54\x4d\x43\x6c\x6f\x6e\x65\x54\x61\x62\x6c\x65\x00\x00\x00\x00\x00\x00\x00\x02\x00\x01\x00\x03\x00\x01\x00\x03\x00\x01\x00\x03\x00\x01\x00\x02\x00\x2f\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x97\x91\x96\x06\x00\x00\x03\x00\x39\x00\x00\x00\x10\x00\x00\x00\xb4\x91\x96\x06\x00\x00\x02\x00\x44\x00\x00\x00\x00\x00\x00\x00\xc8\x0d\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x50\x07\x00\x00\x00\x00\x00\x00\xd0\x0d\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\xd8\x0f\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x60\x07\x00\x00\x00\x00\x00\x00\x30\x10\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x30\x10\x01\x00\x00\x00\x00\x00\xc0\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xc8\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xd0\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe0\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x08\x10\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x10\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x18\x10\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x20\x10\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x09\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1f\x20\x03\xd5\xfd\x7b\xbf\xa9\xfd\x03\x00\x91\x2c\x00\x00\x94\xfd\x7b\xc1\xa8\xc0\x03\x5f\xd6\xf0\x7b\xbf\xa9\x90\x00\x00\x90\x11\xfe\x47\xf9\x10\xe2\x3f\x91\x20\x02\x1f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x90\x00\x00\xb0\x11\x02\x40\xf9\x10\x02\x00\x91\x20\x02\x1f\xd6\x90\x00\x00\xb0\x11\x06\x40\xf9\x10\x22\x00\x91\x20\x02\x1f\xd6\x90\x00\x00\xb0\x11\x0a\x40\xf9\x10\x42\x00\x91\x20\x02\x1f\xd6\x90\x00\x00\xb0\x11\x0e\x40\xf9\x10\x62\x00\x91\x20\x02\x1f\xd6\x90\x00\x00\xb0\x11\x12\x40\xf9\x10\x82\x00\x91\x20\x02\x1f\xd6\x1f\x20\x03\xd5\x1d\x00\x80\xd2\x1e\x00\x80\xd2\xe5\x03\x00\xaa\xe1\x03\x40\xf9\xe2\x23\x00\x91\xe6\x03\x00\x91\x80\x00\x00\x90\x00\xec\x47\xf9\x03\x00\x80\xd2\x04\x00\x80\xd2\xe1\xff\xff\x97\xec\xff\xff\x97\x80\x00\x00\x90\x00\xe8\x47\xf9\x40\x00\x00\xb4\xe4\xff\xff\x17\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x80\x00\x00\xb0\x00\xe0\x00\x91\x81\x00\x00\xb0\x21\xe0\x00\x91\x3f\x00\x00\xeb\xc0\x00\x00\x54\x81\x00\x00\x90\x21\xe0\x47\xf9\x61\x00\x00\xb4\xf0\x03\x01\xaa\x00\x02\x1f\xd6\xc0\x03\x5f\xd6\x80\x00\x00\xb0\x00\xe0\x00\x91\x81\x00\x00\xb0\x21\xe0\x00\x91\x21\x00\x00\xcb\x22\xfc\x7f\xd3\x41\x0c\x81\x8b\x21\xfc\x41\x93\xc1\x00\x00\xb4\x82\x00\x00\x90\x42\xf0\x47\xf9\x62\x00\x00\xb4\xf0\x03\x02\xaa\x00\x02\x1f\xd6\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\xfd\x7b\xbe\xa9\xfd\x03\x00\x91\xf3\x0b\x00\xf9\x93\x00\x00\xb0\x60\xe2\x40\x39\x40\x01\x00\x35\x80\x00\x00\x90\x00\xe4\x47\xf9\x80\x00\x00\xb4\x80\x00\x00\xb0\x00\x18\x40\xf9\xb5\xff\xff\x97\xd8\xff\xff\x97\x20\x00\x80\x52\x60\xe2\x00\x39\xf3\x0b\x40\xf9\xfd\x7b\xc2\xa8\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\xdc\xff\xff\x17\x28\x00\x20\x0b\x00\x01\x02\x0b\xc0\x03\x5f\xd6\xfd\x7b\xbf\xa9\xfd\x03\x00\x91\x6b\x8d\x9c\x52\x61\x8d\x9c\x52\x88\x00\x00\xb0\x29\x00\x80\x52\x8a\x00\x00\xb0\x6b\x81\xaa\x72\x00\x00\x00\x90\x00\xf0\x1e\x91\x61\x81\xaa\x72\x09\x3d\x00\xb9\x4b\x41\x00\xb9\xa7\xff\xff\x97\xe0\x03\x1f\x2a\xfd\x7b\xc1\xa8\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\xfd\x7b\xbf\xa9\xfd\x03\x00\x91\xfd\x7b\xc1\xa8\xc0\x03\x5f\xd6\x01\x00\x02\x00\x25\x64\x0a\x00\x01\x1b\x03\x3b\x44\x00\x00\x00\x07\x00\x00\x00\x80\xfe\xff\xff\x5c\x00\x00\x00\xd0\xfe\xff\xff\x70\x00\x00\x00\x00\xff\xff\xff\x84\x00\x00\x00\x40\xff\xff\xff\x98\x00\x00\x00\x90\xff\xff\xff\xbc\x00\x00\x00\x94\xff\xff\xff\xe4\x00\x00\x00\xa0\xff\xff\xff\xf8\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x01\x7a\x52\x00\x04\x78\x1e\x01\x1b\x0c\x1f\x00\x10\x00\x00\x00\x18\x00\x00\x00\x1c\xfe\xff\xff\x34\x00\x00\x00\x00\x41\x07\x1e\x10\x00\x00\x00\x2c\x00\x00\x00\x58\xfe\xff\xff\x30\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x40\x00\x00\x00\x74\xfe\xff\xff\x3c\x00\x00\x00\x00\x00\x00\x00\x20\x00\x00\x00\x54\x00\x00\x00\xa0\xfe\xff\xff\x48\x00\x00\x00\x00\x41\x0e\x20\x9d\x04\x9e\x03\x42\x93\x02\x4e\xde\xdd\xd3\x0e\x00\x00\x00\x00\x10\x00\x00\x00\x78\x00\x00\x00\xcc\xfe\xff\xff\x04\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x01\x7a\x52\x00\x01\x7c\x1e\x01\x1b\x0c\x1f\x00\x10\x00\x00\x00\x18\x00\x00\x00\xa8\xfe\xff\xff\x0c\x00\x00\x00\x00\x00\x00\x00\x24\x00\x00\x00\x2c\x00\x00\x00\xa0\xfe\xff\xff\x44\x00\x00\x00\x00\x44\x0e\x10\x44\x0c\x1d\x10"), -Section(".comment", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x40\x06\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xa8\x1c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x38\x00\x09\x00\x40\x00\x1d\x00\x1c\x00\x06\x00\x00\x00\x04\x00\x00"), -Section(".interp", 0x238, "\x2f\x6c\x69\x62\x2f\x6c\x64\x2d\x6c\x69\x6e\x75\x78\x2d\x61\x61\x72\x63\x68\x36\x34\x2e\x73\x6f\x2e\x31\x00"), -Section(".note.gnu.build-id", 0x254, "\x04\x00\x00\x00\x14\x00\x00\x00\x03\x00\x00\x00\x47\x4e\x55\x00\x76\x68\xa7\x87\xf9\x7d\x53\x60\xf3\x5b\x1b\xb3\xf6\x6a\x8f\x83\x67\x27\xf0\x48"), -Section(".note.ABI-tag", 0x278, "\x04\x00\x00\x00\x10\x00\x00\x00\x01\x00\x00\x00\x47\x4e\x55\x00\x00\x00\x00\x00\x03\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00"), -Section(".gnu.hash", 0x298, "\x01\x00\x00\x00\x01\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".dynsym", 0x2B8, "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x0b\x00\xb8\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x17\x00\x28\x10\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4f\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x22\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6b\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x22\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x28\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".dynstr", 0x3A8, "\x00\x5f\x5f\x63\x78\x61\x5f\x66\x69\x6e\x61\x6c\x69\x7a\x65\x00\x5f\x5f\x6c\x69\x62\x63\x5f\x73\x74\x61\x72\x74\x5f\x6d\x61\x69\x6e\x00\x61\x62\x6f\x72\x74\x00\x70\x72\x69\x6e\x74\x66\x00\x6c\x69\x62\x63\x2e\x73\x6f\x2e\x36\x00\x47\x4c\x49\x42\x43\x5f\x32\x2e\x31\x37\x00\x47\x4c\x49\x42\x43\x5f\x32\x2e\x33\x34\x00\x5f\x49\x54\x4d\x5f\x64\x65\x72\x65\x67\x69\x73\x74\x65\x72\x54\x4d\x43\x6c\x6f\x6e\x65\x54\x61\x62\x6c\x65\x00\x5f\x5f\x67\x6d\x6f\x6e\x5f\x73\x74\x61\x72\x74\x5f\x5f\x00\x5f\x49\x54\x4d\x5f\x72\x65\x67\x69\x73\x74\x65\x72\x54\x4d\x43\x6c\x6f\x6e\x65\x54\x61\x62\x6c\x65\x00"), -Section(".gnu.version", 0x43C, "\x00\x00\x00\x00\x00\x00\x02\x00\x01\x00\x03\x00\x01\x00\x03\x00\x01\x00\x03\x00"), -Section(".gnu.version_r", 0x450, "\x01\x00\x02\x00\x2f\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x97\x91\x96\x06\x00\x00\x03\x00\x39\x00\x00\x00\x10\x00\x00\x00\xb4\x91\x96\x06\x00\x00\x02\x00\x44\x00\x00\x00\x00\x00\x00\x00"), -Section(".rela.dyn", 0x480, "\xc8\x0d\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x50\x07\x00\x00\x00\x00\x00\x00\xd0\x0d\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\xd8\x0f\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x60\x07\x00\x00\x00\x00\x00\x00\x30\x10\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x30\x10\x01\x00\x00\x00\x00\x00\xc0\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xc8\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xd0\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe0\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".rela.plt", 0x540, "\x00\x10\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x08\x10\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x10\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x18\x10\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x20\x10\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x09\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".init", 0x5B8, "\x1f\x20\x03\xd5\xfd\x7b\xbf\xa9\xfd\x03\x00\x91\x2c\x00\x00\x94\xfd\x7b\xc1\xa8\xc0\x03\x5f\xd6"), -Section(".plt", 0x5D0, "\xf0\x7b\xbf\xa9\x90\x00\x00\x90\x11\xfe\x47\xf9\x10\xe2\x3f\x91\x20\x02\x1f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x90\x00\x00\xb0\x11\x02\x40\xf9\x10\x02\x00\x91\x20\x02\x1f\xd6\x90\x00\x00\xb0\x11\x06\x40\xf9\x10\x22\x00\x91\x20\x02\x1f\xd6\x90\x00\x00\xb0\x11\x0a\x40\xf9\x10\x42\x00\x91\x20\x02\x1f\xd6\x90\x00\x00\xb0\x11\x0e\x40\xf9\x10\x62\x00\x91\x20\x02\x1f\xd6\x90\x00\x00\xb0\x11\x12\x40\xf9\x10\x82\x00\x91\x20\x02\x1f\xd6"), -Section(".fini", 0x7A4, "\x1f\x20\x03\xd5\xfd\x7b\xbf\xa9\xfd\x03\x00\x91\xfd\x7b\xc1\xa8\xc0\x03\x5f\xd6"), -Section(".rodata", 0x7B8, "\x01\x00\x02\x00\x25\x64\x0a\x00"), -Section(".eh_frame_hdr", 0x7C0, "\x01\x1b\x03\x3b\x44\x00\x00\x00\x07\x00\x00\x00\x80\xfe\xff\xff\x5c\x00\x00\x00\xd0\xfe\xff\xff\x70\x00\x00\x00\x00\xff\xff\xff\x84\x00\x00\x00\x40\xff\xff\xff\x98\x00\x00\x00\x90\xff\xff\xff\xbc\x00\x00\x00\x94\xff\xff\xff\xe4\x00\x00\x00\xa0\xff\xff\xff\xf8\x00\x00\x00"), -Section(".eh_frame", 0x808, "\x10\x00\x00\x00\x00\x00\x00\x00\x01\x7a\x52\x00\x04\x78\x1e\x01\x1b\x0c\x1f\x00\x10\x00\x00\x00\x18\x00\x00\x00\x1c\xfe\xff\xff\x34\x00\x00\x00\x00\x41\x07\x1e\x10\x00\x00\x00\x2c\x00\x00\x00\x58\xfe\xff\xff\x30\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x40\x00\x00\x00\x74\xfe\xff\xff\x3c\x00\x00\x00\x00\x00\x00\x00\x20\x00\x00\x00\x54\x00\x00\x00\xa0\xfe\xff\xff\x48\x00\x00\x00\x00\x41\x0e\x20\x9d\x04\x9e\x03\x42\x93\x02\x4e\xde\xdd\xd3\x0e\x00\x00\x00\x00\x10\x00\x00\x00\x78\x00\x00\x00\xcc\xfe\xff\xff\x04\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x01\x7a\x52\x00\x01\x7c\x1e\x01\x1b\x0c\x1f\x00\x10\x00\x00\x00\x18\x00\x00\x00\xa8\xfe\xff\xff\x0c\x00\x00\x00\x00\x00\x00\x00\x24\x00\x00\x00\x2c\x00\x00\x00\xa0\xfe\xff\xff\x44\x00\x00\x00\x00\x44\x0e\x10\x44\x0c\x1d\x10\x9e\x02\x9d\x04\x74\x0c\x1f\x10\x44\x0e\x00\xde\xdd\x00\x00\x00\x00\x00\x00\x00"), -Section(".fini_array", 0x10DD0, "\x00\x07\x00\x00\x00\x00\x00\x00"), -Section(".dynamic", 0x10DD8, "\x01\x00\x00\x00\x00\x00\x00\x00\x2f\x00\x00\x00\x00\x00\x00\x00\x0c\x00\x00\x00\x00\x00\x00\x00\xb8\x05\x00\x00\x00\x00\x00\x00\x0d\x00\x00\x00\x00\x00\x00\x00\xa4\x07\x00\x00\x00\x00\x00\x00\x19\x00\x00\x00\x00\x00\x00\x00\xc8\x0d\x01\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x1a\x00\x00\x00\x00\x00\x00\x00\xd0\x0d\x01\x00\x00\x00\x00\x00\x1c\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\xf5\xfe\xff\x6f\x00\x00\x00\x00\x98\x02\x00\x00\x00\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\xa8\x03\x00\x00\x00\x00\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\xb8\x02\x00\x00\x00\x00\x00\x00\x0a\x00\x00\x00\x00\x00\x00\x00\x94\x00\x00\x00\x00\x00\x00\x00\x0b\x00\x00\x00\x00\x00\x00\x00\x18\x00\x00\x00\x00\x00\x00\x00\x15\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\xe8\x0f\x01\x00\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x78\x00\x00\x00\x00\x00\x00\x00\x14\x00\x00\x00\x00\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x17\x00\x00\x00\x00\x00\x00\x00\x40\x05\x00\x00\x00\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x80\x04\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\xc0\x00\x00\x00\x00\x00\x00\x00\x09\x00\x00\x00\x00\x00\x00\x00\x18\x00\x00\x00\x00\x00\x00\x00\xfb\xff\xff\x6f\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\xfe\xff\xff\x6f\x00\x00\x00\x00\x50\x04\x00\x00\x00\x00\x00\x00\xff\xff\xff\x6f\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\xf0\xff\xff\x6f\x00\x00\x00\x00\x3c\x04\x00\x00\x00\x00\x00\x00\xf9\xff\xff\x6f\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".init_array", 0x10DC8, "\x50\x07\x00\x00\x00\x00\x00\x00"), -Section(".got", 0x10FB8, "\xd8\x0d\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x60\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".got.plt", 0x10FE8, "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xd0\x05\x00\x00\x00\x00\x00\x00\xd0\x05\x00\x00\x00\x00\x00\x00\xd0\x05\x00\x00\x00\x00\x00\x00\xd0\x05\x00\x00\x00\x00\x00\x00\xd0\x05\x00\x00\x00\x00\x00\x00"), -Section(".data", 0x11028, "\x00\x00\x00\x00\x00\x00\x00\x00\x30\x10\x01\x00\x00\x00\x00\x00"), -Section(".text", 0x640, "\x1f\x20\x03\xd5\x1d\x00\x80\xd2\x1e\x00\x80\xd2\xe5\x03\x00\xaa\xe1\x03\x40\xf9\xe2\x23\x00\x91\xe6\x03\x00\x91\x80\x00\x00\x90\x00\xec\x47\xf9\x03\x00\x80\xd2\x04\x00\x80\xd2\xe1\xff\xff\x97\xec\xff\xff\x97\x80\x00\x00\x90\x00\xe8\x47\xf9\x40\x00\x00\xb4\xe4\xff\xff\x17\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x80\x00\x00\xb0\x00\xe0\x00\x91\x81\x00\x00\xb0\x21\xe0\x00\x91\x3f\x00\x00\xeb\xc0\x00\x00\x54\x81\x00\x00\x90\x21\xe0\x47\xf9\x61\x00\x00\xb4\xf0\x03\x01\xaa\x00\x02\x1f\xd6\xc0\x03\x5f\xd6\x80\x00\x00\xb0\x00\xe0\x00\x91\x81\x00\x00\xb0\x21\xe0\x00\x91\x21\x00\x00\xcb\x22\xfc\x7f\xd3\x41\x0c\x81\x8b\x21\xfc\x41\x93\xc1\x00\x00\xb4\x82\x00\x00\x90\x42\xf0\x47\xf9\x62\x00\x00\xb4\xf0\x03\x02\xaa\x00\x02\x1f\xd6\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\xfd\x7b\xbe\xa9\xfd\x03\x00\x91\xf3\x0b\x00\xf9\x93\x00\x00\xb0\x60\xe2\x40\x39\x40\x01\x00\x35\x80\x00\x00\x90\x00\xe4\x47\xf9\x80\x00\x00\xb4\x80\x00\x00\xb0\x00\x18\x40\xf9\xb5\xff\xff\x97\xd8\xff\xff\x97\x20\x00\x80\x52\x60\xe2\x00\x39\xf3\x0b\x40\xf9\xfd\x7b\xc2\xa8\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\xdc\xff\xff\x17\x28\x00\x20\x0b\x00\x01\x02\x0b\xc0\x03\x5f\xd6\xfd\x7b\xbf\xa9\xfd\x03\x00\x91\x6b\x8d\x9c\x52\x61\x8d\x9c\x52\x88\x00\x00\xb0\x29\x00\x80\x52\x8a\x00\x00\xb0\x6b\x81\xaa\x72\x00\x00\x00\x90\x00\xf0\x1e\x91\x61\x81\xaa\x72\x09\x3d\x00\xb9\x4b\x41\x00\xb9\xa7\xff\xff\x97\xe0\x03\x1f\x2a\xfd\x7b\xc1\xa8\xc0\x03\x5f\xd6")]), -Memmap([Annotation(Region(0x0,0x8E3), Attr("segment","02 0 2276")), -Annotation(Region(0x640,0x673), Attr("symbol","\"_start\"")), -Annotation(Region(0x0,0x102), Attr("section","\".shstrtab\"")), -Annotation(Region(0x0,0x253), Attr("section","\".strtab\"")), -Annotation(Region(0x0,0x8CF), Attr("section","\".symtab\"")), -Annotation(Region(0x0,0x46), Attr("section","\".comment\"")), -Annotation(Region(0x238,0x252), Attr("section","\".interp\"")), -Annotation(Region(0x254,0x277), Attr("section","\".note.gnu.build-id\"")), -Annotation(Region(0x278,0x297), Attr("section","\".note.ABI-tag\"")), -Annotation(Region(0x298,0x2B3), Attr("section","\".gnu.hash\"")), -Annotation(Region(0x2B8,0x3A7), Attr("section","\".dynsym\"")), -Annotation(Region(0x3A8,0x43B), Attr("section","\".dynstr\"")), -Annotation(Region(0x43C,0x44F), Attr("section","\".gnu.version\"")), -Annotation(Region(0x450,0x47F), Attr("section","\".gnu.version_r\"")), -Annotation(Region(0x480,0x53F), Attr("section","\".rela.dyn\"")), -Annotation(Region(0x540,0x5B7), Attr("section","\".rela.plt\"")), -Annotation(Region(0x5B8,0x5CF), Attr("section","\".init\"")), -Annotation(Region(0x5D0,0x63F), Attr("section","\".plt\"")), -Annotation(Region(0x5B8,0x5CF), Attr("code-region","()")), -Annotation(Region(0x5D0,0x63F), Attr("code-region","()")), -Annotation(Region(0x640,0x673), Attr("symbol-info","_start 0x640 52")), -Annotation(Region(0x674,0x687), Attr("symbol","\"call_weak_fn\"")), -Annotation(Region(0x674,0x687), Attr("symbol-info","call_weak_fn 0x674 20")), -Annotation(Region(0x754,0x75F), Attr("symbol","\"get_two\"")), -Annotation(Region(0x754,0x75F), Attr("symbol-info","get_two 0x754 12")), -Annotation(Region(0x640,0x7A3), Attr("code-region","()")), -Annotation(Region(0x760,0x7A3), Attr("symbol","\"main\"")), -Annotation(Region(0x760,0x7A3), Attr("symbol-info","main 0x760 68")), -Annotation(Region(0x7A4,0x7B7), Attr("section","\".fini\"")), -Annotation(Region(0x7B8,0x7BF), Attr("section","\".rodata\"")), -Annotation(Region(0x7C0,0x803), Attr("section","\".eh_frame_hdr\"")), -Annotation(Region(0x808,0x8E3), Attr("section","\".eh_frame\"")), -Annotation(Region(0x10DC8,0x11037), Attr("segment","03 0x10DC8 640")), -Annotation(Region(0x10DD0,0x10DD7), Attr("section","\".fini_array\"")), -Annotation(Region(0x10DD8,0x10FB7), Attr("section","\".dynamic\"")), -Annotation(Region(0x10DC8,0x10DCF), Attr("section","\".init_array\"")), -Annotation(Region(0x10FB8,0x10FE7), Attr("section","\".got\"")), -Annotation(Region(0x10FE8,0x11027), Attr("section","\".got.plt\"")), -Annotation(Region(0x11028,0x11037), Attr("section","\".data\"")), -Annotation(Region(0x640,0x7A3), Attr("section","\".text\"")), -Annotation(Region(0x7A4,0x7B7), Attr("code-region","()"))]), -Program(Tid(1_671, "%00000687"), Attrs([]), - Subs([Sub(Tid(1_616, "@__cxa_finalize"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x600"), -Attr("stub","()")]), "__cxa_finalize", Args([Arg(Tid(1_672, "%00000688"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("__cxa_finalize_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(962, "@__cxa_finalize"), - Attrs([Attr("address","0x600")]), Phis([]), -Defs([Def(Tid(1_226, "%000004ca"), Attrs([Attr("address","0x600"), -Attr("insn","adrp x16, #69632")]), Var("R16",Imm(64)), Int(69632,64)), -Def(Tid(1_233, "%000004d1"), Attrs([Attr("address","0x604"), -Attr("insn","ldr x17, [x16, #0x8]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(1_239, "%000004d7"), Attrs([Attr("address","0x608"), -Attr("insn","add x16, x16, #0x8")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(8,64)))]), Jmps([Call(Tid(1_244, "%000004dc"), - Attrs([Attr("address","0x60C"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), -Sub(Tid(1_617, "@__do_global_dtors_aux"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x700")]), - "__do_global_dtors_aux", Args([Arg(Tid(1_673, "%00000689"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("__do_global_dtors_aux_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(670, "@__do_global_dtors_aux"), - Attrs([Attr("address","0x700")]), Phis([]), Defs([Def(Tid(674, "%000002a2"), - Attrs([Attr("address","0x700"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("#3",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(18446744073709551584,64))), -Def(Tid(680, "%000002a8"), Attrs([Attr("address","0x700"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("#3",Imm(64)),Var("R29",Imm(64)),LittleEndian(),64)), -Def(Tid(686, "%000002ae"), Attrs([Attr("address","0x700"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("#3",Imm(64)),Int(8,64)),Var("R30",Imm(64)),LittleEndian(),64)), -Def(Tid(690, "%000002b2"), Attrs([Attr("address","0x700"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("R31",Imm(64)), -Var("#3",Imm(64))), Def(Tid(696, "%000002b8"), - Attrs([Attr("address","0x704"), Attr("insn","mov x29, sp")]), - Var("R29",Imm(64)), Var("R31",Imm(64))), Def(Tid(704, "%000002c0"), - Attrs([Attr("address","0x708"), Attr("insn","str x19, [sp, #0x10]")]), - Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(16,64)),Var("R19",Imm(64)),LittleEndian(),64)), -Def(Tid(709, "%000002c5"), Attrs([Attr("address","0x70C"), -Attr("insn","adrp x19, #69632")]), Var("R19",Imm(64)), Int(69632,64)), -Def(Tid(716, "%000002cc"), Attrs([Attr("address","0x710"), -Attr("insn","ldrb w0, [x19, #0x38]")]), Var("R0",Imm(64)), -UNSIGNED(64,Load(Var("mem",Mem(64,8)),PLUS(Var("R19",Imm(64)),Int(56,64)),LittleEndian(),8)))]), -Jmps([Goto(Tid(723, "%000002d3"), Attrs([Attr("address","0x714"), -Attr("insn","cbnz w0, #0x28")]), - NEQ(Extract(31,0,Var("R0",Imm(64))),Int(0,32)), -Direct(Tid(721, "%000002d1"))), Goto(Tid(1_661, "%0000067d"), Attrs([]), - Int(1,1), Direct(Tid(907, "%0000038b")))])), Blk(Tid(907, "%0000038b"), - Attrs([Attr("address","0x718")]), Phis([]), Defs([Def(Tid(910, "%0000038e"), - Attrs([Attr("address","0x718"), Attr("insn","adrp x0, #65536")]), - Var("R0",Imm(64)), Int(65536,64)), Def(Tid(917, "%00000395"), - Attrs([Attr("address","0x71C"), Attr("insn","ldr x0, [x0, #0xfc8]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(4040,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(923, "%0000039b"), Attrs([Attr("address","0x720"), -Attr("insn","cbz x0, #0x10")]), EQ(Var("R0",Imm(64)),Int(0,64)), -Direct(Tid(921, "%00000399"))), Goto(Tid(1_662, "%0000067e"), Attrs([]), - Int(1,1), Direct(Tid(946, "%000003b2")))])), Blk(Tid(946, "%000003b2"), - Attrs([Attr("address","0x724")]), Phis([]), Defs([Def(Tid(949, "%000003b5"), - Attrs([Attr("address","0x724"), Attr("insn","adrp x0, #69632")]), - Var("R0",Imm(64)), Int(69632,64)), Def(Tid(956, "%000003bc"), - Attrs([Attr("address","0x728"), Attr("insn","ldr x0, [x0, #0x30]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(48,64)),LittleEndian(),64)), -Def(Tid(961, "%000003c1"), Attrs([Attr("address","0x72C"), -Attr("insn","bl #-0x12c")]), Var("R30",Imm(64)), Int(1840,64))]), -Jmps([Call(Tid(964, "%000003c4"), Attrs([Attr("address","0x72C"), -Attr("insn","bl #-0x12c")]), Int(1,1), -(Direct(Tid(1_616, "@__cxa_finalize")),Direct(Tid(921, "%00000399"))))])), -Blk(Tid(921, "%00000399"), Attrs([Attr("address","0x730")]), Phis([]), -Defs([Def(Tid(929, "%000003a1"), Attrs([Attr("address","0x730"), -Attr("insn","bl #-0xa0")]), Var("R30",Imm(64)), Int(1844,64))]), -Jmps([Call(Tid(931, "%000003a3"), Attrs([Attr("address","0x730"), -Attr("insn","bl #-0xa0")]), Int(1,1), -(Direct(Tid(1_630, "@deregister_tm_clones")),Direct(Tid(933, "%000003a5"))))])), -Blk(Tid(933, "%000003a5"), Attrs([Attr("address","0x734")]), Phis([]), -Defs([Def(Tid(936, "%000003a8"), Attrs([Attr("address","0x734"), -Attr("insn","mov w0, #0x1")]), Var("R0",Imm(64)), Int(1,64)), -Def(Tid(944, "%000003b0"), Attrs([Attr("address","0x738"), -Attr("insn","strb w0, [x19, #0x38]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R19",Imm(64)),Int(56,64)),Extract(7,0,Var("R0",Imm(64))),LittleEndian(),8))]), -Jmps([Goto(Tid(1_663, "%0000067f"), Attrs([]), Int(1,1), -Direct(Tid(721, "%000002d1")))])), Blk(Tid(721, "%000002d1"), - Attrs([Attr("address","0x73C")]), Phis([]), Defs([Def(Tid(731, "%000002db"), - Attrs([Attr("address","0x73C"), Attr("insn","ldr x19, [sp, #0x10]")]), - Var("R19",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(16,64)),LittleEndian(),64)), -Def(Tid(738, "%000002e2"), Attrs([Attr("address","0x740"), -Attr("insn","ldp x29, x30, [sp], #0x20")]), Var("R29",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(743, "%000002e7"), Attrs([Attr("address","0x740"), -Attr("insn","ldp x29, x30, [sp], #0x20")]), Var("R30",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(747, "%000002eb"), Attrs([Attr("address","0x740"), -Attr("insn","ldp x29, x30, [sp], #0x20")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(32,64)))]), Jmps([Call(Tid(752, "%000002f0"), - Attrs([Attr("address","0x744"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), Sub(Tid(1_621, "@__libc_start_main"), - Attrs([Attr("c.proto","signed (*)(signed (*)(signed , char** , char** );* main, signed , char** , \nvoid* auxv)"), -Attr("address","0x5F0"), Attr("stub","()")]), "__libc_start_main", - Args([Arg(Tid(1_674, "%0000068a"), - Attrs([Attr("c.layout","**[ : 64]"), -Attr("c.data","Top:u64 ptr ptr"), -Attr("c.type","signed (*)(signed , char** , char** );*")]), - Var("__libc_start_main_main",Imm(64)), Var("R0",Imm(64)), In()), -Arg(Tid(1_675, "%0000068b"), Attrs([Attr("c.layout","[signed : 32]"), -Attr("c.data","Top:u32"), Attr("c.type","signed")]), - Var("__libc_start_main_arg2",Imm(32)), LOW(32,Var("R1",Imm(64))), In()), -Arg(Tid(1_676, "%0000068c"), Attrs([Attr("c.layout","**[char : 8]"), -Attr("c.data","Top:u8 ptr ptr"), Attr("c.type","char**")]), - Var("__libc_start_main_arg3",Imm(64)), Var("R2",Imm(64)), Both()), -Arg(Tid(1_677, "%0000068d"), Attrs([Attr("c.layout","*[ : 8]"), -Attr("c.data","{} ptr"), Attr("c.type","void*")]), - Var("__libc_start_main_auxv",Imm(64)), Var("R3",Imm(64)), Both()), -Arg(Tid(1_678, "%0000068e"), Attrs([Attr("c.layout","[signed : 32]"), -Attr("c.data","Top:u32"), Attr("c.type","signed")]), - Var("__libc_start_main_result",Imm(32)), LOW(32,Var("R0",Imm(64))), -Out())]), Blks([Blk(Tid(503, "@__libc_start_main"), - Attrs([Attr("address","0x5F0")]), Phis([]), -Defs([Def(Tid(1_204, "%000004b4"), Attrs([Attr("address","0x5F0"), -Attr("insn","adrp x16, #69632")]), Var("R16",Imm(64)), Int(69632,64)), -Def(Tid(1_211, "%000004bb"), Attrs([Attr("address","0x5F4"), -Attr("insn","ldr x17, [x16]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R16",Imm(64)),LittleEndian(),64)), -Def(Tid(1_217, "%000004c1"), Attrs([Attr("address","0x5F8"), -Attr("insn","add x16, x16, #0x0")]), Var("R16",Imm(64)), -Var("R16",Imm(64)))]), Jmps([Call(Tid(1_222, "%000004c6"), - Attrs([Attr("address","0x5FC"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), Sub(Tid(1_622, "@_fini"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x7A4")]), - "_fini", Args([Arg(Tid(1_679, "%0000068f"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("_fini_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(31, "@_fini"), - Attrs([Attr("address","0x7A4")]), Phis([]), Defs([Def(Tid(37, "%00000025"), - Attrs([Attr("address","0x7A8"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("#0",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(18446744073709551600,64))), -Def(Tid(43, "%0000002b"), Attrs([Attr("address","0x7A8"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("#0",Imm(64)),Var("R29",Imm(64)),LittleEndian(),64)), -Def(Tid(49, "%00000031"), Attrs([Attr("address","0x7A8"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("#0",Imm(64)),Int(8,64)),Var("R30",Imm(64)),LittleEndian(),64)), -Def(Tid(53, "%00000035"), Attrs([Attr("address","0x7A8"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("R31",Imm(64)), -Var("#0",Imm(64))), Def(Tid(59, "%0000003b"), Attrs([Attr("address","0x7AC"), -Attr("insn","mov x29, sp")]), Var("R29",Imm(64)), Var("R31",Imm(64))), -Def(Tid(66, "%00000042"), Attrs([Attr("address","0x7B0"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R29",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(71, "%00000047"), Attrs([Attr("address","0x7B0"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R30",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(75, "%0000004b"), Attrs([Attr("address","0x7B0"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(16,64)))]), Jmps([Call(Tid(80, "%00000050"), - Attrs([Attr("address","0x7B4"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), Sub(Tid(1_623, "@_init"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x5B8")]), - "_init", Args([Arg(Tid(1_680, "%00000690"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("_init_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(1_434, "@_init"), - Attrs([Attr("address","0x5B8")]), Phis([]), -Defs([Def(Tid(1_440, "%000005a0"), Attrs([Attr("address","0x5BC"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("#6",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(18446744073709551600,64))), -Def(Tid(1_446, "%000005a6"), Attrs([Attr("address","0x5BC"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("#6",Imm(64)),Var("R29",Imm(64)),LittleEndian(),64)), -Def(Tid(1_452, "%000005ac"), Attrs([Attr("address","0x5BC"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("#6",Imm(64)),Int(8,64)),Var("R30",Imm(64)),LittleEndian(),64)), -Def(Tid(1_456, "%000005b0"), Attrs([Attr("address","0x5BC"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("R31",Imm(64)), -Var("#6",Imm(64))), Def(Tid(1_462, "%000005b6"), - Attrs([Attr("address","0x5C0"), Attr("insn","mov x29, sp")]), - Var("R29",Imm(64)), Var("R31",Imm(64))), Def(Tid(1_467, "%000005bb"), - Attrs([Attr("address","0x5C4"), Attr("insn","bl #0xb0")]), - Var("R30",Imm(64)), Int(1480,64))]), Jmps([Call(Tid(1_469, "%000005bd"), - Attrs([Attr("address","0x5C4"), Attr("insn","bl #0xb0")]), Int(1,1), -(Direct(Tid(1_628, "@call_weak_fn")),Direct(Tid(1_471, "%000005bf"))))])), -Blk(Tid(1_471, "%000005bf"), Attrs([Attr("address","0x5C8")]), Phis([]), -Defs([Def(Tid(1_476, "%000005c4"), Attrs([Attr("address","0x5C8"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R29",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(1_481, "%000005c9"), Attrs([Attr("address","0x5C8"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R30",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(1_485, "%000005cd"), Attrs([Attr("address","0x5C8"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(16,64)))]), Jmps([Call(Tid(1_490, "%000005d2"), - Attrs([Attr("address","0x5CC"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), Sub(Tid(1_624, "@_start"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x640"), -Attr("stub","()"), Attr("entry-point","()")]), "_start", - Args([Arg(Tid(1_681, "%00000691"), Attrs([Attr("c.layout","[signed : 32]"), -Attr("c.data","Top:u32"), Attr("c.type","signed")]), - Var("_start_result",Imm(32)), LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(440, "@_start"), Attrs([Attr("address","0x640")]), Phis([]), -Defs([Def(Tid(445, "%000001bd"), Attrs([Attr("address","0x644"), -Attr("insn","mov x29, #0x0")]), Var("R29",Imm(64)), Int(0,64)), -Def(Tid(450, "%000001c2"), Attrs([Attr("address","0x648"), -Attr("insn","mov x30, #0x0")]), Var("R30",Imm(64)), Int(0,64)), -Def(Tid(456, "%000001c8"), Attrs([Attr("address","0x64C"), -Attr("insn","mov x5, x0")]), Var("R5",Imm(64)), Var("R0",Imm(64))), -Def(Tid(463, "%000001cf"), Attrs([Attr("address","0x650"), -Attr("insn","ldr x1, [sp]")]), Var("R1",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(469, "%000001d5"), Attrs([Attr("address","0x654"), -Attr("insn","add x2, sp, #0x8")]), Var("R2",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(8,64))), Def(Tid(475, "%000001db"), - Attrs([Attr("address","0x658"), Attr("insn","mov x6, sp")]), - Var("R6",Imm(64)), Var("R31",Imm(64))), Def(Tid(480, "%000001e0"), - Attrs([Attr("address","0x65C"), Attr("insn","adrp x0, #65536")]), - Var("R0",Imm(64)), Int(65536,64)), Def(Tid(487, "%000001e7"), - Attrs([Attr("address","0x660"), Attr("insn","ldr x0, [x0, #0xfd8]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(4056,64)),LittleEndian(),64)), -Def(Tid(492, "%000001ec"), Attrs([Attr("address","0x664"), -Attr("insn","mov x3, #0x0")]), Var("R3",Imm(64)), Int(0,64)), -Def(Tid(497, "%000001f1"), Attrs([Attr("address","0x668"), -Attr("insn","mov x4, #0x0")]), Var("R4",Imm(64)), Int(0,64)), -Def(Tid(502, "%000001f6"), Attrs([Attr("address","0x66C"), -Attr("insn","bl #-0x7c")]), Var("R30",Imm(64)), Int(1648,64))]), -Jmps([Call(Tid(505, "%000001f9"), Attrs([Attr("address","0x66C"), -Attr("insn","bl #-0x7c")]), Int(1,1), -(Direct(Tid(1_621, "@__libc_start_main")),Direct(Tid(507, "%000001fb"))))])), -Blk(Tid(507, "%000001fb"), Attrs([Attr("address","0x670")]), Phis([]), -Defs([Def(Tid(510, "%000001fe"), Attrs([Attr("address","0x670"), -Attr("insn","bl #-0x50")]), Var("R30",Imm(64)), Int(1652,64))]), -Jmps([Call(Tid(513, "%00000201"), Attrs([Attr("address","0x670"), -Attr("insn","bl #-0x50")]), Int(1,1), -(Direct(Tid(1_627, "@abort")),Direct(Tid(1_664, "%00000680"))))])), -Blk(Tid(1_664, "%00000680"), Attrs([]), Phis([]), Defs([]), -Jmps([Call(Tid(1_665, "%00000681"), Attrs([]), Int(1,1), -(Direct(Tid(1_628, "@call_weak_fn")),))]))])), Sub(Tid(1_627, "@abort"), - Attrs([Attr("noreturn","()"), Attr("c.proto","void (*)(void)"), -Attr("address","0x620"), Attr("stub","()")]), "abort", Args([]), -Blks([Blk(Tid(511, "@abort"), Attrs([Attr("address","0x620")]), Phis([]), -Defs([Def(Tid(1_270, "%000004f6"), Attrs([Attr("address","0x620"), -Attr("insn","adrp x16, #69632")]), Var("R16",Imm(64)), Int(69632,64)), -Def(Tid(1_277, "%000004fd"), Attrs([Attr("address","0x624"), -Attr("insn","ldr x17, [x16, #0x18]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(24,64)),LittleEndian(),64)), -Def(Tid(1_283, "%00000503"), Attrs([Attr("address","0x628"), -Attr("insn","add x16, x16, #0x18")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(24,64)))]), Jmps([Call(Tid(1_288, "%00000508"), - Attrs([Attr("address","0x62C"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), Sub(Tid(1_628, "@call_weak_fn"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x674")]), - "call_weak_fn", Args([Arg(Tid(1_682, "%00000692"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("call_weak_fn_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(515, "@call_weak_fn"), - Attrs([Attr("address","0x674")]), Phis([]), Defs([Def(Tid(518, "%00000206"), - Attrs([Attr("address","0x674"), Attr("insn","adrp x0, #65536")]), - Var("R0",Imm(64)), Int(65536,64)), Def(Tid(525, "%0000020d"), - Attrs([Attr("address","0x678"), Attr("insn","ldr x0, [x0, #0xfd0]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(4048,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(531, "%00000213"), Attrs([Attr("address","0x67C"), -Attr("insn","cbz x0, #0x8")]), EQ(Var("R0",Imm(64)),Int(0,64)), -Direct(Tid(529, "%00000211"))), Goto(Tid(1_666, "%00000682"), Attrs([]), - Int(1,1), Direct(Tid(1_026, "%00000402")))])), Blk(Tid(529, "%00000211"), - Attrs([Attr("address","0x684")]), Phis([]), Defs([]), -Jmps([Call(Tid(537, "%00000219"), Attrs([Attr("address","0x684"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))])), -Blk(Tid(1_026, "%00000402"), Attrs([Attr("address","0x680")]), Phis([]), -Defs([]), Jmps([Goto(Tid(1_029, "%00000405"), Attrs([Attr("address","0x680"), -Attr("insn","b #-0x70")]), Int(1,1), -Direct(Tid(1_027, "@__gmon_start__")))])), Blk(Tid(1_027, "@__gmon_start__"), - Attrs([Attr("address","0x610")]), Phis([]), -Defs([Def(Tid(1_248, "%000004e0"), Attrs([Attr("address","0x610"), -Attr("insn","adrp x16, #69632")]), Var("R16",Imm(64)), Int(69632,64)), -Def(Tid(1_255, "%000004e7"), Attrs([Attr("address","0x614"), -Attr("insn","ldr x17, [x16, #0x10]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(16,64)),LittleEndian(),64)), -Def(Tid(1_261, "%000004ed"), Attrs([Attr("address","0x618"), -Attr("insn","add x16, x16, #0x10")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(16,64)))]), Jmps([Call(Tid(1_266, "%000004f2"), - Attrs([Attr("address","0x61C"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), -Sub(Tid(1_630, "@deregister_tm_clones"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x690")]), - "deregister_tm_clones", Args([Arg(Tid(1_683, "%00000693"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("deregister_tm_clones_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(543, "@deregister_tm_clones"), - Attrs([Attr("address","0x690")]), Phis([]), Defs([Def(Tid(546, "%00000222"), - Attrs([Attr("address","0x690"), Attr("insn","adrp x0, #69632")]), - Var("R0",Imm(64)), Int(69632,64)), Def(Tid(552, "%00000228"), - Attrs([Attr("address","0x694"), Attr("insn","add x0, x0, #0x38")]), - Var("R0",Imm(64)), PLUS(Var("R0",Imm(64)),Int(56,64))), -Def(Tid(557, "%0000022d"), Attrs([Attr("address","0x698"), -Attr("insn","adrp x1, #69632")]), Var("R1",Imm(64)), Int(69632,64)), -Def(Tid(563, "%00000233"), Attrs([Attr("address","0x69C"), -Attr("insn","add x1, x1, #0x38")]), Var("R1",Imm(64)), -PLUS(Var("R1",Imm(64)),Int(56,64))), Def(Tid(569, "%00000239"), - Attrs([Attr("address","0x6A0"), Attr("insn","cmp x1, x0")]), - Var("#1",Imm(64)), NOT(Var("R0",Imm(64)))), Def(Tid(574, "%0000023e"), - Attrs([Attr("address","0x6A0"), Attr("insn","cmp x1, x0")]), - Var("#2",Imm(64)), PLUS(Var("R1",Imm(64)),NOT(Var("R0",Imm(64))))), -Def(Tid(580, "%00000244"), Attrs([Attr("address","0x6A0"), -Attr("insn","cmp x1, x0")]), Var("VF",Imm(1)), -NEQ(SIGNED(65,PLUS(Var("#2",Imm(64)),Int(1,64))),PLUS(PLUS(SIGNED(65,Var("R1",Imm(64))),SIGNED(65,Var("#1",Imm(64)))),Int(1,65)))), -Def(Tid(586, "%0000024a"), Attrs([Attr("address","0x6A0"), -Attr("insn","cmp x1, x0")]), Var("CF",Imm(1)), -NEQ(UNSIGNED(65,PLUS(Var("#2",Imm(64)),Int(1,64))),PLUS(PLUS(UNSIGNED(65,Var("R1",Imm(64))),UNSIGNED(65,Var("#1",Imm(64)))),Int(1,65)))), -Def(Tid(590, "%0000024e"), Attrs([Attr("address","0x6A0"), -Attr("insn","cmp x1, x0")]), Var("ZF",Imm(1)), -EQ(PLUS(Var("#2",Imm(64)),Int(1,64)),Int(0,64))), Def(Tid(594, "%00000252"), - Attrs([Attr("address","0x6A0"), Attr("insn","cmp x1, x0")]), - Var("NF",Imm(1)), Extract(63,63,PLUS(Var("#2",Imm(64)),Int(1,64))))]), -Jmps([Goto(Tid(600, "%00000258"), Attrs([Attr("address","0x6A4"), -Attr("insn","b.eq #0x18")]), EQ(Var("ZF",Imm(1)),Int(1,1)), -Direct(Tid(598, "%00000256"))), Goto(Tid(1_667, "%00000683"), Attrs([]), - Int(1,1), Direct(Tid(996, "%000003e4")))])), Blk(Tid(996, "%000003e4"), - Attrs([Attr("address","0x6A8")]), Phis([]), Defs([Def(Tid(999, "%000003e7"), - Attrs([Attr("address","0x6A8"), Attr("insn","adrp x1, #65536")]), - Var("R1",Imm(64)), Int(65536,64)), Def(Tid(1_006, "%000003ee"), - Attrs([Attr("address","0x6AC"), Attr("insn","ldr x1, [x1, #0xfc0]")]), - Var("R1",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R1",Imm(64)),Int(4032,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(1_011, "%000003f3"), Attrs([Attr("address","0x6B0"), -Attr("insn","cbz x1, #0xc")]), EQ(Var("R1",Imm(64)),Int(0,64)), -Direct(Tid(598, "%00000256"))), Goto(Tid(1_668, "%00000684"), Attrs([]), - Int(1,1), Direct(Tid(1_015, "%000003f7")))])), Blk(Tid(598, "%00000256"), - Attrs([Attr("address","0x6BC")]), Phis([]), Defs([]), -Jmps([Call(Tid(606, "%0000025e"), Attrs([Attr("address","0x6BC"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))])), -Blk(Tid(1_015, "%000003f7"), Attrs([Attr("address","0x6B4")]), Phis([]), -Defs([Def(Tid(1_019, "%000003fb"), Attrs([Attr("address","0x6B4"), -Attr("insn","mov x16, x1")]), Var("R16",Imm(64)), Var("R1",Imm(64)))]), -Jmps([Call(Tid(1_024, "%00000400"), Attrs([Attr("address","0x6B8"), -Attr("insn","br x16")]), Int(1,1), (Indirect(Var("R16",Imm(64))),))]))])), -Sub(Tid(1_633, "@frame_dummy"), Attrs([Attr("c.proto","signed (*)(void)"), -Attr("address","0x750")]), "frame_dummy", Args([Arg(Tid(1_684, "%00000694"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("frame_dummy_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(758, "@frame_dummy"), - Attrs([Attr("address","0x750")]), Phis([]), Defs([]), -Jmps([Call(Tid(760, "%000002f8"), Attrs([Attr("address","0x750"), -Attr("insn","b #-0x90")]), Int(1,1), -(Direct(Tid(1_637, "@register_tm_clones")),))]))])), -Sub(Tid(1_634, "@get_two"), Attrs([Attr("c.proto","signed (*)(void)"), -Attr("address","0x754")]), "get_two", Args([Arg(Tid(1_685, "%00000695"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("get_two_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(762, "@get_two"), - Attrs([Attr("address","0x754")]), Phis([]), Defs([Def(Tid(767, "%000002ff"), - Attrs([Attr("address","0x754"), Attr("insn","add w8, w1, w0, uxtb")]), - Var("R8",Imm(64)), -UNSIGNED(64,PLUS(Extract(31,0,Var("R1",Imm(64))),Concat(Int(0,24),Extract(7,0,Var("R0",Imm(64))))))), -Def(Tid(774, "%00000306"), Attrs([Attr("address","0x758"), -Attr("insn","add w0, w8, w2")]), Var("R0",Imm(64)), -UNSIGNED(64,PLUS(Extract(31,0,Var("R8",Imm(64))),Extract(31,0,Var("R2",Imm(64))))))]), -Jmps([Call(Tid(779, "%0000030b"), Attrs([Attr("address","0x75C"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))]))])), -Sub(Tid(1_635, "@main"), - Attrs([Attr("c.proto","signed (*)(signed argc, const char** argv)"), -Attr("address","0x760")]), "main", Args([Arg(Tid(1_686, "%00000696"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("main_argc",Imm(32)), -LOW(32,Var("R0",Imm(64))), In()), Arg(Tid(1_687, "%00000697"), - Attrs([Attr("c.layout","**[char : 8]"), Attr("c.data","Top:u8 ptr ptr"), -Attr("c.type"," const char**")]), Var("main_argv",Imm(64)), -Var("R1",Imm(64)), Both()), Arg(Tid(1_688, "%00000698"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("main_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(781, "@main"), - Attrs([Attr("address","0x760")]), Phis([]), Defs([Def(Tid(785, "%00000311"), - Attrs([Attr("address","0x760"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("#4",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(18446744073709551600,64))), -Def(Tid(791, "%00000317"), Attrs([Attr("address","0x760"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("#4",Imm(64)),Var("R29",Imm(64)),LittleEndian(),64)), -Def(Tid(797, "%0000031d"), Attrs([Attr("address","0x760"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("#4",Imm(64)),Int(8,64)),Var("R30",Imm(64)),LittleEndian(),64)), -Def(Tid(801, "%00000321"), Attrs([Attr("address","0x760"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("R31",Imm(64)), -Var("#4",Imm(64))), Def(Tid(807, "%00000327"), - Attrs([Attr("address","0x764"), Attr("insn","mov x29, sp")]), - Var("R29",Imm(64)), Var("R31",Imm(64))), Def(Tid(812, "%0000032c"), - Attrs([Attr("address","0x768"), Attr("insn","mov w11, #0xe46b")]), - Var("R11",Imm(64)), Int(58475,64)), Def(Tid(817, "%00000331"), - Attrs([Attr("address","0x76C"), Attr("insn","mov w1, #0xe46b")]), - Var("R1",Imm(64)), Int(58475,64)), Def(Tid(822, "%00000336"), - Attrs([Attr("address","0x770"), Attr("insn","adrp x8, #69632")]), - Var("R8",Imm(64)), Int(69632,64)), Def(Tid(827, "%0000033b"), - Attrs([Attr("address","0x774"), Attr("insn","mov w9, #0x1")]), - Var("R9",Imm(64)), Int(1,64)), Def(Tid(832, "%00000340"), - Attrs([Attr("address","0x778"), Attr("insn","adrp x10, #69632")]), - Var("R10",Imm(64)), Int(69632,64)), Def(Tid(838, "%00000346"), - Attrs([Attr("address","0x77C"), Attr("insn","movk w11, #0x540b, lsl #16")]), - Var("R11",Imm(64)), -UNSIGNED(64,Concat(Int(21515,16),Extract(15,0,Var("R11",Imm(64)))))), -Def(Tid(843, "%0000034b"), Attrs([Attr("address","0x780"), -Attr("insn","adrp x0, #0")]), Var("R0",Imm(64)), Int(0,64)), -Def(Tid(849, "%00000351"), Attrs([Attr("address","0x784"), -Attr("insn","add x0, x0, #0x7bc")]), Var("R0",Imm(64)), -PLUS(Var("R0",Imm(64)),Int(1980,64))), Def(Tid(855, "%00000357"), - Attrs([Attr("address","0x788"), Attr("insn","movk w1, #0x540b, lsl #16")]), - Var("R1",Imm(64)), -UNSIGNED(64,Concat(Int(21515,16),Extract(15,0,Var("R1",Imm(64)))))), -Def(Tid(863, "%0000035f"), Attrs([Attr("address","0x78C"), -Attr("insn","str w9, [x8, #0x3c]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R8",Imm(64)),Int(60,64)),Extract(31,0,Var("R9",Imm(64))),LittleEndian(),32)), -Def(Tid(871, "%00000367"), Attrs([Attr("address","0x790"), -Attr("insn","str w11, [x10, #0x40]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R10",Imm(64)),Int(64,64)),Extract(31,0,Var("R11",Imm(64))),LittleEndian(),32)), -Def(Tid(876, "%0000036c"), Attrs([Attr("address","0x794"), -Attr("insn","bl #-0x164")]), Var("R30",Imm(64)), Int(1944,64))]), -Jmps([Call(Tid(879, "%0000036f"), Attrs([Attr("address","0x794"), -Attr("insn","bl #-0x164")]), Int(1,1), -(Direct(Tid(1_636, "@printf")),Direct(Tid(881, "%00000371"))))])), -Blk(Tid(881, "%00000371"), Attrs([Attr("address","0x798")]), Phis([]), -Defs([Def(Tid(884, "%00000374"), Attrs([Attr("address","0x798"), -Attr("insn","mov w0, wzr")]), Var("R0",Imm(64)), Int(0,64)), -Def(Tid(891, "%0000037b"), Attrs([Attr("address","0x79C"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R29",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(896, "%00000380"), Attrs([Attr("address","0x79C"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R30",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(900, "%00000384"), Attrs([Attr("address","0x79C"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(16,64)))]), Jmps([Call(Tid(905, "%00000389"), - Attrs([Attr("address","0x7A0"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), Sub(Tid(1_636, "@printf"), - Attrs([Attr("c.proto","signed (*)( const char restrict * format, ...)"), -Attr("address","0x630"), Attr("stub","()")]), "printf", - Args([Arg(Tid(1_689, "%00000699"), Attrs([Attr("format","\"printf\""), -Attr("c.layout","*[char : 8]"), Attr("c.data","Top:u8 ptr"), -Attr("c.type"," const char restrict *")]), Var("printf_format",Imm(64)), -Var("R0",Imm(64)), In()), Arg(Tid(1_690, "%0000069a"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("printf_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(877, "@printf"), - Attrs([Attr("address","0x630")]), Phis([]), -Defs([Def(Tid(1_292, "%0000050c"), Attrs([Attr("address","0x630"), -Attr("insn","adrp x16, #69632")]), Var("R16",Imm(64)), Int(69632,64)), -Def(Tid(1_299, "%00000513"), Attrs([Attr("address","0x634"), -Attr("insn","ldr x17, [x16, #0x20]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(32,64)),LittleEndian(),64)), -Def(Tid(1_305, "%00000519"), Attrs([Attr("address","0x638"), -Attr("insn","add x16, x16, #0x20")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(32,64)))]), Jmps([Call(Tid(1_310, "%0000051e"), - Attrs([Attr("address","0x63C"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), -Sub(Tid(1_637, "@register_tm_clones"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x6C0")]), - "register_tm_clones", Args([Arg(Tid(1_691, "%0000069b"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("register_tm_clones_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(608, "@register_tm_clones"), Attrs([Attr("address","0x6C0")]), - Phis([]), Defs([Def(Tid(611, "%00000263"), Attrs([Attr("address","0x6C0"), -Attr("insn","adrp x0, #69632")]), Var("R0",Imm(64)), Int(69632,64)), -Def(Tid(617, "%00000269"), Attrs([Attr("address","0x6C4"), -Attr("insn","add x0, x0, #0x38")]), Var("R0",Imm(64)), -PLUS(Var("R0",Imm(64)),Int(56,64))), Def(Tid(622, "%0000026e"), - Attrs([Attr("address","0x6C8"), Attr("insn","adrp x1, #69632")]), - Var("R1",Imm(64)), Int(69632,64)), Def(Tid(628, "%00000274"), - Attrs([Attr("address","0x6CC"), Attr("insn","add x1, x1, #0x38")]), - Var("R1",Imm(64)), PLUS(Var("R1",Imm(64)),Int(56,64))), -Def(Tid(635, "%0000027b"), Attrs([Attr("address","0x6D0"), -Attr("insn","sub x1, x1, x0")]), Var("R1",Imm(64)), -PLUS(PLUS(Var("R1",Imm(64)),NOT(Var("R0",Imm(64)))),Int(1,64))), -Def(Tid(641, "%00000281"), Attrs([Attr("address","0x6D4"), -Attr("insn","lsr x2, x1, #63")]), Var("R2",Imm(64)), -Concat(Int(0,63),Extract(63,63,Var("R1",Imm(64))))), -Def(Tid(648, "%00000288"), Attrs([Attr("address","0x6D8"), -Attr("insn","add x1, x2, x1, asr #3")]), Var("R1",Imm(64)), -PLUS(Var("R2",Imm(64)),ARSHIFT(Var("R1",Imm(64)),Int(3,3)))), -Def(Tid(654, "%0000028e"), Attrs([Attr("address","0x6DC"), -Attr("insn","asr x1, x1, #1")]), Var("R1",Imm(64)), -SIGNED(64,Extract(63,1,Var("R1",Imm(64)))))]), -Jmps([Goto(Tid(660, "%00000294"), Attrs([Attr("address","0x6E0"), -Attr("insn","cbz x1, #0x18")]), EQ(Var("R1",Imm(64)),Int(0,64)), -Direct(Tid(658, "%00000292"))), Goto(Tid(1_669, "%00000685"), Attrs([]), - Int(1,1), Direct(Tid(966, "%000003c6")))])), Blk(Tid(966, "%000003c6"), - Attrs([Attr("address","0x6E4")]), Phis([]), Defs([Def(Tid(969, "%000003c9"), - Attrs([Attr("address","0x6E4"), Attr("insn","adrp x2, #65536")]), - Var("R2",Imm(64)), Int(65536,64)), Def(Tid(976, "%000003d0"), - Attrs([Attr("address","0x6E8"), Attr("insn","ldr x2, [x2, #0xfe0]")]), - Var("R2",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R2",Imm(64)),Int(4064,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(981, "%000003d5"), Attrs([Attr("address","0x6EC"), -Attr("insn","cbz x2, #0xc")]), EQ(Var("R2",Imm(64)),Int(0,64)), -Direct(Tid(658, "%00000292"))), Goto(Tid(1_670, "%00000686"), Attrs([]), - Int(1,1), Direct(Tid(985, "%000003d9")))])), Blk(Tid(658, "%00000292"), - Attrs([Attr("address","0x6F8")]), Phis([]), Defs([]), -Jmps([Call(Tid(666, "%0000029a"), Attrs([Attr("address","0x6F8"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))])), -Blk(Tid(985, "%000003d9"), Attrs([Attr("address","0x6F0")]), Phis([]), -Defs([Def(Tid(989, "%000003dd"), Attrs([Attr("address","0x6F0"), -Attr("insn","mov x16, x2")]), Var("R16",Imm(64)), Var("R2",Imm(64)))]), -Jmps([Call(Tid(994, "%000003e2"), Attrs([Attr("address","0x6F4"), -Attr("insn","br x16")]), Int(1,1), -(Indirect(Var("R16",Imm(64))),))]))]))]))) \ No newline at end of file diff --git a/src/test/correct/function1/clang_O2/function1.bir b/src/test/correct/function1/clang_O2/function1.bir deleted file mode 100644 index 1fe7b2c48..000000000 --- a/src/test/correct/function1/clang_O2/function1.bir +++ /dev/null @@ -1,265 +0,0 @@ -00000687: program -00000650: sub __cxa_finalize(__cxa_finalize_result) -00000688: __cxa_finalize_result :: out u32 = low:32[R0] - -000003c2: -000004ca: R16 := 0x11000 -000004d1: R17 := mem[R16 + 8, el]:u64 -000004d7: R16 := R16 + 8 -000004dc: call R17 with noreturn - -00000651: sub __do_global_dtors_aux(__do_global_dtors_aux_result) -00000689: __do_global_dtors_aux_result :: out u32 = low:32[R0] - -0000029e: -000002a2: #3 := R31 - 0x20 -000002a8: mem := mem with [#3, el]:u64 <- R29 -000002ae: mem := mem with [#3 + 8, el]:u64 <- R30 -000002b2: R31 := #3 -000002b8: R29 := R31 -000002c0: mem := mem with [R31 + 0x10, el]:u64 <- R19 -000002c5: R19 := 0x11000 -000002cc: R0 := pad:64[mem[R19 + 0x38]] -000002d3: when 31:0[R0] <> 0 goto %000002d1 -0000067d: goto %0000038b - -0000038b: -0000038e: R0 := 0x10000 -00000395: R0 := mem[R0 + 0xFC8, el]:u64 -0000039b: when R0 = 0 goto %00000399 -0000067e: goto %000003b2 - -000003b2: -000003b5: R0 := 0x11000 -000003bc: R0 := mem[R0 + 0x30, el]:u64 -000003c1: R30 := 0x730 -000003c4: call @__cxa_finalize with return %00000399 - -00000399: -000003a1: R30 := 0x734 -000003a3: call @deregister_tm_clones with return %000003a5 - -000003a5: -000003a8: R0 := 1 -000003b0: mem := mem with [R19 + 0x38] <- 7:0[R0] -0000067f: goto %000002d1 - -000002d1: -000002db: R19 := mem[R31 + 0x10, el]:u64 -000002e2: R29 := mem[R31, el]:u64 -000002e7: R30 := mem[R31 + 8, el]:u64 -000002eb: R31 := R31 + 0x20 -000002f0: call R30 with noreturn - -00000655: sub __libc_start_main(__libc_start_main_main, __libc_start_main_arg2, __libc_start_main_arg3, __libc_start_main_auxv, __libc_start_main_result) -0000068a: __libc_start_main_main :: in u64 = R0 -0000068b: __libc_start_main_arg2 :: in u32 = low:32[R1] -0000068c: __libc_start_main_arg3 :: in out u64 = R2 -0000068d: __libc_start_main_auxv :: in out u64 = R3 -0000068e: __libc_start_main_result :: out u32 = low:32[R0] - -000001f7: -000004b4: R16 := 0x11000 -000004bb: R17 := mem[R16, el]:u64 -000004c1: R16 := R16 -000004c6: call R17 with noreturn - -00000656: sub _fini(_fini_result) -0000068f: _fini_result :: out u32 = low:32[R0] - -0000001f: -00000025: #0 := R31 - 0x10 -0000002b: mem := mem with [#0, el]:u64 <- R29 -00000031: mem := mem with [#0 + 8, el]:u64 <- R30 -00000035: R31 := #0 -0000003b: R29 := R31 -00000042: R29 := mem[R31, el]:u64 -00000047: R30 := mem[R31 + 8, el]:u64 -0000004b: R31 := R31 + 0x10 -00000050: call R30 with noreturn - -00000657: sub _init(_init_result) -00000690: _init_result :: out u32 = low:32[R0] - -0000059a: -000005a0: #6 := R31 - 0x10 -000005a6: mem := mem with [#6, el]:u64 <- R29 -000005ac: mem := mem with [#6 + 8, el]:u64 <- R30 -000005b0: R31 := #6 -000005b6: R29 := R31 -000005bb: R30 := 0x5C8 -000005bd: call @call_weak_fn with return %000005bf - -000005bf: -000005c4: R29 := mem[R31, el]:u64 -000005c9: R30 := mem[R31 + 8, el]:u64 -000005cd: R31 := R31 + 0x10 -000005d2: call R30 with noreturn - -00000658: sub _start(_start_result) -00000691: _start_result :: out u32 = low:32[R0] - -000001b8: -000001bd: R29 := 0 -000001c2: R30 := 0 -000001c8: R5 := R0 -000001cf: R1 := mem[R31, el]:u64 -000001d5: R2 := R31 + 8 -000001db: R6 := R31 -000001e0: R0 := 0x10000 -000001e7: R0 := mem[R0 + 0xFD8, el]:u64 -000001ec: R3 := 0 -000001f1: R4 := 0 -000001f6: R30 := 0x670 -000001f9: call @__libc_start_main with return %000001fb - -000001fb: -000001fe: R30 := 0x674 -00000201: call @abort with return %00000680 - -00000680: -00000681: call @call_weak_fn with noreturn - -0000065b: sub abort() - - -000001ff: -000004f6: R16 := 0x11000 -000004fd: R17 := mem[R16 + 0x18, el]:u64 -00000503: R16 := R16 + 0x18 -00000508: call R17 with noreturn - -0000065c: sub call_weak_fn(call_weak_fn_result) -00000692: call_weak_fn_result :: out u32 = low:32[R0] - -00000203: -00000206: R0 := 0x10000 -0000020d: R0 := mem[R0 + 0xFD0, el]:u64 -00000213: when R0 = 0 goto %00000211 -00000682: goto %00000402 - -00000211: -00000219: call R30 with noreturn - -00000402: -00000405: goto @__gmon_start__ - -00000403: -000004e0: R16 := 0x11000 -000004e7: R17 := mem[R16 + 0x10, el]:u64 -000004ed: R16 := R16 + 0x10 -000004f2: call R17 with noreturn - -0000065e: sub deregister_tm_clones(deregister_tm_clones_result) -00000693: deregister_tm_clones_result :: out u32 = low:32[R0] - -0000021f: -00000222: R0 := 0x11000 -00000228: R0 := R0 + 0x38 -0000022d: R1 := 0x11000 -00000233: R1 := R1 + 0x38 -00000239: #1 := ~R0 -0000023e: #2 := R1 + ~R0 -00000244: VF := extend:65[#2 + 1] <> extend:65[R1] + extend:65[#1] + 1 -0000024a: CF := pad:65[#2 + 1] <> pad:65[R1] + pad:65[#1] + 1 -0000024e: ZF := #2 + 1 = 0 -00000252: NF := 63:63[#2 + 1] -00000258: when ZF goto %00000256 -00000683: goto %000003e4 - -000003e4: -000003e7: R1 := 0x10000 -000003ee: R1 := mem[R1 + 0xFC0, el]:u64 -000003f3: when R1 = 0 goto %00000256 -00000684: goto %000003f7 - -00000256: -0000025e: call R30 with noreturn - -000003f7: -000003fb: R16 := R1 -00000400: call R16 with noreturn - -00000661: sub frame_dummy(frame_dummy_result) -00000694: frame_dummy_result :: out u32 = low:32[R0] - -000002f6: -000002f8: call @register_tm_clones with noreturn - -00000662: sub get_two(get_two_result) -00000695: get_two_result :: out u32 = low:32[R0] - -000002fa: -000002ff: R8 := pad:64[31:0[R1] + (0.7:0[R0])] -00000306: R0 := pad:64[31:0[R8] + 31:0[R2]] -0000030b: call R30 with noreturn - -00000663: sub main(main_argc, main_argv, main_result) -00000696: main_argc :: in u32 = low:32[R0] -00000697: main_argv :: in out u64 = R1 -00000698: main_result :: out u32 = low:32[R0] - -0000030d: -00000311: #4 := R31 - 0x10 -00000317: mem := mem with [#4, el]:u64 <- R29 -0000031d: mem := mem with [#4 + 8, el]:u64 <- R30 -00000321: R31 := #4 -00000327: R29 := R31 -0000032c: R11 := 0xE46B -00000331: R1 := 0xE46B -00000336: R8 := 0x11000 -0000033b: R9 := 1 -00000340: R10 := 0x11000 -00000346: R11 := pad:64[0x540B.15:0[R11]] -0000034b: R0 := 0 -00000351: R0 := R0 + 0x7BC -00000357: R1 := pad:64[0x540B.15:0[R1]] -0000035f: mem := mem with [R8 + 0x3C, el]:u32 <- 31:0[R9] -00000367: mem := mem with [R10 + 0x40, el]:u32 <- 31:0[R11] -0000036c: R30 := 0x798 -0000036f: call @printf with return %00000371 - -00000371: -00000374: R0 := 0 -0000037b: R29 := mem[R31, el]:u64 -00000380: R30 := mem[R31 + 8, el]:u64 -00000384: R31 := R31 + 0x10 -00000389: call R30 with noreturn - -00000664: sub printf(printf_format, printf_result) -00000699: printf_format :: in u64 = R0 -0000069a: printf_result :: out u32 = low:32[R0] - -0000036d: -0000050c: R16 := 0x11000 -00000513: R17 := mem[R16 + 0x20, el]:u64 -00000519: R16 := R16 + 0x20 -0000051e: call R17 with noreturn - -00000665: sub register_tm_clones(register_tm_clones_result) -0000069b: register_tm_clones_result :: out u32 = low:32[R0] - -00000260: -00000263: R0 := 0x11000 -00000269: R0 := R0 + 0x38 -0000026e: R1 := 0x11000 -00000274: R1 := R1 + 0x38 -0000027b: R1 := R1 + ~R0 + 1 -00000281: R2 := 0.63:63[R1] -00000288: R1 := R2 + (R1 ~>> 3) -0000028e: R1 := extend:64[63:1[R1]] -00000294: when R1 = 0 goto %00000292 -00000685: goto %000003c6 - -000003c6: -000003c9: R2 := 0x10000 -000003d0: R2 := mem[R2 + 0xFE0, el]:u64 -000003d5: when R2 = 0 goto %00000292 -00000686: goto %000003d9 - -00000292: -0000029a: call R30 with noreturn - -000003d9: -000003dd: R16 := R2 -000003e2: call R16 with noreturn diff --git a/src/test/correct/function1/clang_O2/function1.expected b/src/test/correct/function1/clang_O2/function1.expected index 79fc2ff30..afa10ed27 100644 --- a/src/test/correct/function1/clang_O2/function1.expected +++ b/src/test/correct/function1/clang_O2/function1.expected @@ -86,7 +86,7 @@ procedure {:extern} rely_reflexive(); procedure {:extern} guarantee_reflexive(); modifies Gamma_mem, mem; -procedure main_1888(); +procedure main(); modifies Gamma_R0, Gamma_R1, Gamma_R10, Gamma_R11, Gamma_R16, Gamma_R17, Gamma_R29, Gamma_R30, Gamma_R31, Gamma_R8, Gamma_R9, Gamma_mem, Gamma_stack, R0, R1, R10, R11, R16, R17, R29, R30, R31, R8, R9, mem, stack; free requires (memory_load64_le(mem, 69672bv64) == 0bv64); free requires (memory_load64_le(mem, 69680bv64) == 69680bv64); @@ -105,14 +105,14 @@ procedure main_1888(); free ensures (memory_load64_le(mem, 69592bv64) == 1888bv64); free ensures (memory_load64_le(mem, 69680bv64) == 69680bv64); -implementation main_1888() +implementation main() { var #4: bv64; + var $load$18: bv64; + var $load$19: bv64; var Gamma_#4: bool; - var Gamma_load18: bool; - var Gamma_load19: bool; - var load18: bv64; - var load19: bv64; + var Gamma_$load$18: bool; + var Gamma_$load$19: bool; lmain: assume {:captureState "lmain"} true; #4, Gamma_#4 := bvadd64(R31, 18446744073709551600bv64), Gamma_R31; @@ -140,23 +140,23 @@ implementation main_1888() mem, Gamma_mem := memory_store32_le(mem, bvadd64(R10, 64bv64), R11[32:0]), gamma_store32(Gamma_mem, bvadd64(R10, 64bv64), Gamma_R11); assume {:captureState "%00000367"} true; R30, Gamma_R30 := 1944bv64, true; - call printf_1584(); + call printf(); goto l00000371; l00000371: assume {:captureState "l00000371"} true; R0, Gamma_R0 := 0bv64, true; - load18, Gamma_load18 := memory_load64_le(stack, R31), gamma_load64(Gamma_stack, R31); - R29, Gamma_R29 := load18, Gamma_load18; - load19, Gamma_load19 := memory_load64_le(stack, bvadd64(R31, 8bv64)), gamma_load64(Gamma_stack, bvadd64(R31, 8bv64)); - R30, Gamma_R30 := load19, Gamma_load19; + $load$18, Gamma_$load$18 := memory_load64_le(stack, R31), gamma_load64(Gamma_stack, R31); + R29, Gamma_R29 := $load$18, Gamma_$load$18; + $load$19, Gamma_$load$19 := memory_load64_le(stack, bvadd64(R31, 8bv64)), gamma_load64(Gamma_stack, bvadd64(R31, 8bv64)); + R30, Gamma_R30 := $load$19, Gamma_$load$19; R31, Gamma_R31 := bvadd64(R31, 16bv64), Gamma_R31; - goto main_1888_basil_return; - main_1888_basil_return: - assume {:captureState "main_1888_basil_return"} true; + goto main_basil_return; + main_basil_return: + assume {:captureState "main_basil_return"} true; return; } -procedure printf_1584(); +procedure printf(); modifies Gamma_R16, Gamma_R17, R16, R17; free requires (memory_load64_le(mem, 1976bv64) == 2924859843805185bv64); free requires (memory_load64_le(mem, 69064bv64) == 1872bv64); diff --git a/src/test/correct/function1/clang_O2/function1.gts b/src/test/correct/function1/clang_O2/function1.gts deleted file mode 100644 index eb9bd2395..000000000 Binary files a/src/test/correct/function1/clang_O2/function1.gts and /dev/null differ diff --git a/src/test/correct/function1/clang_O2/function1.md5sum b/src/test/correct/function1/clang_O2/function1.md5sum new file mode 100644 index 000000000..01fb2cd4a --- /dev/null +++ b/src/test/correct/function1/clang_O2/function1.md5sum @@ -0,0 +1,5 @@ +c3bf412288ace647e3a3cdbe299241dc correct/function1/clang_O2/a.out +8ce85cd771acecb5171a64415002bbf0 correct/function1/clang_O2/function1.adt +48fbe6bfc57e0c2f8f6b8b68e7257e59 correct/function1/clang_O2/function1.bir +7fbed898368783e9e852e68bc999f504 correct/function1/clang_O2/function1.relf +d4c7e2b9f91d25f5fa910816b309a752 correct/function1/clang_O2/function1.gts diff --git a/src/test/correct/function1/clang_O2/function1.relf b/src/test/correct/function1/clang_O2/function1.relf deleted file mode 100644 index d34088ac4..000000000 --- a/src/test/correct/function1/clang_O2/function1.relf +++ /dev/null @@ -1,129 +0,0 @@ - -Relocation section '.rela.dyn' at offset 0x480 contains 8 entries: - Offset Info Type Symbol's Value Symbol's Name + Addend -0000000000010dc8 0000000000000403 R_AARCH64_RELATIVE 750 -0000000000010dd0 0000000000000403 R_AARCH64_RELATIVE 700 -0000000000010fd8 0000000000000403 R_AARCH64_RELATIVE 760 -0000000000011030 0000000000000403 R_AARCH64_RELATIVE 11030 -0000000000010fc0 0000000400000401 R_AARCH64_GLOB_DAT 0000000000000000 _ITM_deregisterTMCloneTable + 0 -0000000000010fc8 0000000500000401 R_AARCH64_GLOB_DAT 0000000000000000 __cxa_finalize@GLIBC_2.17 + 0 -0000000000010fd0 0000000600000401 R_AARCH64_GLOB_DAT 0000000000000000 __gmon_start__ + 0 -0000000000010fe0 0000000800000401 R_AARCH64_GLOB_DAT 0000000000000000 _ITM_registerTMCloneTable + 0 - -Relocation section '.rela.plt' at offset 0x540 contains 5 entries: - Offset Info Type Symbol's Value Symbol's Name + Addend -0000000000011000 0000000300000402 R_AARCH64_JUMP_SLOT 0000000000000000 __libc_start_main@GLIBC_2.34 + 0 -0000000000011008 0000000500000402 R_AARCH64_JUMP_SLOT 0000000000000000 __cxa_finalize@GLIBC_2.17 + 0 -0000000000011010 0000000600000402 R_AARCH64_JUMP_SLOT 0000000000000000 __gmon_start__ + 0 -0000000000011018 0000000700000402 R_AARCH64_JUMP_SLOT 0000000000000000 abort@GLIBC_2.17 + 0 -0000000000011020 0000000900000402 R_AARCH64_JUMP_SLOT 0000000000000000 printf@GLIBC_2.17 + 0 - -Symbol table '.dynsym' contains 10 entries: - Num: Value Size Type Bind Vis Ndx Name - 0: 0000000000000000 0 NOTYPE LOCAL DEFAULT UND - 1: 00000000000005b8 0 SECTION LOCAL DEFAULT 11 .init - 2: 0000000000011028 0 SECTION LOCAL DEFAULT 23 .data - 3: 0000000000000000 0 FUNC GLOBAL DEFAULT UND __libc_start_main@GLIBC_2.34 (2) - 4: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_deregisterTMCloneTable - 5: 0000000000000000 0 FUNC WEAK DEFAULT UND __cxa_finalize@GLIBC_2.17 (3) - 6: 0000000000000000 0 NOTYPE WEAK DEFAULT UND __gmon_start__ - 7: 0000000000000000 0 FUNC GLOBAL DEFAULT UND abort@GLIBC_2.17 (3) - 8: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_registerTMCloneTable - 9: 0000000000000000 0 FUNC GLOBAL DEFAULT UND printf@GLIBC_2.17 (3) - -Symbol table '.symtab' contains 94 entries: - Num: Value Size Type Bind Vis Ndx Name - 0: 0000000000000000 0 NOTYPE LOCAL DEFAULT UND - 1: 0000000000000238 0 SECTION LOCAL DEFAULT 1 .interp - 2: 0000000000000254 0 SECTION LOCAL DEFAULT 2 .note.gnu.build-id - 3: 0000000000000278 0 SECTION LOCAL DEFAULT 3 .note.ABI-tag - 4: 0000000000000298 0 SECTION LOCAL DEFAULT 4 .gnu.hash - 5: 00000000000002b8 0 SECTION LOCAL DEFAULT 5 .dynsym - 6: 00000000000003a8 0 SECTION LOCAL DEFAULT 6 .dynstr - 7: 000000000000043c 0 SECTION LOCAL DEFAULT 7 .gnu.version - 8: 0000000000000450 0 SECTION LOCAL DEFAULT 8 .gnu.version_r - 9: 0000000000000480 0 SECTION LOCAL DEFAULT 9 .rela.dyn - 10: 0000000000000540 0 SECTION LOCAL DEFAULT 10 .rela.plt - 11: 00000000000005b8 0 SECTION LOCAL DEFAULT 11 .init - 12: 00000000000005d0 0 SECTION LOCAL DEFAULT 12 .plt - 13: 0000000000000640 0 SECTION LOCAL DEFAULT 13 .text - 14: 00000000000007a4 0 SECTION LOCAL DEFAULT 14 .fini - 15: 00000000000007b8 0 SECTION LOCAL DEFAULT 15 .rodata - 16: 00000000000007c0 0 SECTION LOCAL DEFAULT 16 .eh_frame_hdr - 17: 0000000000000808 0 SECTION LOCAL DEFAULT 17 .eh_frame - 18: 0000000000010dc8 0 SECTION LOCAL DEFAULT 18 .init_array - 19: 0000000000010dd0 0 SECTION LOCAL DEFAULT 19 .fini_array - 20: 0000000000010dd8 0 SECTION LOCAL DEFAULT 20 .dynamic - 21: 0000000000010fb8 0 SECTION LOCAL DEFAULT 21 .got - 22: 0000000000010fe8 0 SECTION LOCAL DEFAULT 22 .got.plt - 23: 0000000000011028 0 SECTION LOCAL DEFAULT 23 .data - 24: 0000000000011038 0 SECTION LOCAL DEFAULT 24 .bss - 25: 0000000000000000 0 SECTION LOCAL DEFAULT 25 .comment - 26: 0000000000000000 0 FILE LOCAL DEFAULT ABS Scrt1.o - 27: 0000000000000278 0 NOTYPE LOCAL DEFAULT 3 $d - 28: 0000000000000278 32 OBJECT LOCAL DEFAULT 3 __abi_tag - 29: 0000000000000640 0 NOTYPE LOCAL DEFAULT 13 $x - 30: 000000000000081c 0 NOTYPE LOCAL DEFAULT 17 $d - 31: 00000000000007b8 0 NOTYPE LOCAL DEFAULT 15 $d - 32: 0000000000000000 0 FILE LOCAL DEFAULT ABS crti.o - 33: 0000000000000674 0 NOTYPE LOCAL DEFAULT 13 $x - 34: 0000000000000674 20 FUNC LOCAL DEFAULT 13 call_weak_fn - 35: 00000000000005b8 0 NOTYPE LOCAL DEFAULT 11 $x - 36: 00000000000007a4 0 NOTYPE LOCAL DEFAULT 14 $x - 37: 0000000000000000 0 FILE LOCAL DEFAULT ABS crtn.o - 38: 00000000000005c8 0 NOTYPE LOCAL DEFAULT 11 $x - 39: 00000000000007b0 0 NOTYPE LOCAL DEFAULT 14 $x - 40: 0000000000000000 0 FILE LOCAL DEFAULT ABS crtstuff.c - 41: 0000000000000690 0 NOTYPE LOCAL DEFAULT 13 $x - 42: 0000000000000690 0 FUNC LOCAL DEFAULT 13 deregister_tm_clones - 43: 00000000000006c0 0 FUNC LOCAL DEFAULT 13 register_tm_clones - 44: 0000000000011030 0 NOTYPE LOCAL DEFAULT 23 $d - 45: 0000000000000700 0 FUNC LOCAL DEFAULT 13 __do_global_dtors_aux - 46: 0000000000011038 1 OBJECT LOCAL DEFAULT 24 completed.0 - 47: 0000000000010dd0 0 NOTYPE LOCAL DEFAULT 19 $d - 48: 0000000000010dd0 0 OBJECT LOCAL DEFAULT 19 __do_global_dtors_aux_fini_array_entry - 49: 0000000000000750 0 FUNC LOCAL DEFAULT 13 frame_dummy - 50: 0000000000010dc8 0 NOTYPE LOCAL DEFAULT 18 $d - 51: 0000000000010dc8 0 OBJECT LOCAL DEFAULT 18 __frame_dummy_init_array_entry - 52: 0000000000000830 0 NOTYPE LOCAL DEFAULT 17 $d - 53: 0000000000011038 0 NOTYPE LOCAL DEFAULT 24 $d - 54: 0000000000000000 0 FILE LOCAL DEFAULT ABS function1.c - 55: 0000000000000754 0 NOTYPE LOCAL DEFAULT 13 $x.0 - 56: 000000000001103c 0 NOTYPE LOCAL DEFAULT 24 $d.1 - 57: 00000000000007bc 0 NOTYPE LOCAL DEFAULT 15 $d.2 - 58: 000000000000002a 0 NOTYPE LOCAL DEFAULT 25 $d.3 - 59: 0000000000000890 0 NOTYPE LOCAL DEFAULT 17 $d.4 - 60: 0000000000000000 0 FILE LOCAL DEFAULT ABS crtstuff.c - 61: 00000000000008e0 0 NOTYPE LOCAL DEFAULT 17 $d - 62: 00000000000008e0 0 OBJECT LOCAL DEFAULT 17 __FRAME_END__ - 63: 0000000000000000 0 FILE LOCAL DEFAULT ABS - 64: 0000000000010dd8 0 OBJECT LOCAL DEFAULT ABS _DYNAMIC - 65: 00000000000007c0 0 NOTYPE LOCAL DEFAULT 16 __GNU_EH_FRAME_HDR - 66: 0000000000010fb8 0 OBJECT LOCAL DEFAULT ABS _GLOBAL_OFFSET_TABLE_ - 67: 00000000000005d0 0 NOTYPE LOCAL DEFAULT 12 $x - 68: 0000000000000000 0 FUNC GLOBAL DEFAULT UND __libc_start_main@GLIBC_2.34 - 69: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_deregisterTMCloneTable - 70: 0000000000011028 0 NOTYPE WEAK DEFAULT 23 data_start - 71: 0000000000011038 0 NOTYPE GLOBAL DEFAULT 24 __bss_start__ - 72: 0000000000000000 0 FUNC WEAK DEFAULT UND __cxa_finalize@GLIBC_2.17 - 73: 0000000000011048 0 NOTYPE GLOBAL DEFAULT 24 _bss_end__ - 74: 0000000000011038 0 NOTYPE GLOBAL DEFAULT 23 _edata - 75: 000000000001103c 4 OBJECT GLOBAL DEFAULT 24 x - 76: 00000000000007a4 0 FUNC GLOBAL HIDDEN 14 _fini - 77: 0000000000011048 0 NOTYPE GLOBAL DEFAULT 24 __bss_end__ - 78: 0000000000000754 12 FUNC GLOBAL DEFAULT 13 get_two - 79: 0000000000011028 0 NOTYPE GLOBAL DEFAULT 23 __data_start - 80: 0000000000000000 0 NOTYPE WEAK DEFAULT UND __gmon_start__ - 81: 0000000000011030 0 OBJECT GLOBAL HIDDEN 23 __dso_handle - 82: 0000000000000000 0 FUNC GLOBAL DEFAULT UND abort@GLIBC_2.17 - 83: 00000000000007b8 4 OBJECT GLOBAL DEFAULT 15 _IO_stdin_used - 84: 0000000000011048 0 NOTYPE GLOBAL DEFAULT 24 _end - 85: 0000000000000640 52 FUNC GLOBAL DEFAULT 13 _start - 86: 0000000000011048 0 NOTYPE GLOBAL DEFAULT 24 __end__ - 87: 0000000000011040 4 OBJECT GLOBAL DEFAULT 24 y - 88: 0000000000011038 0 NOTYPE GLOBAL DEFAULT 24 __bss_start - 89: 0000000000000760 68 FUNC GLOBAL DEFAULT 13 main - 90: 0000000000011038 0 OBJECT GLOBAL HIDDEN 23 __TMC_END__ - 91: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_registerTMCloneTable - 92: 0000000000000000 0 FUNC GLOBAL DEFAULT UND printf@GLIBC_2.17 - 93: 00000000000005b8 0 FUNC GLOBAL HIDDEN 11 _init diff --git a/src/test/correct/function1/clang_O2/function1_gtirb.expected b/src/test/correct/function1/clang_O2/function1_gtirb.expected index 0a041242d..e49ccc5b1 100644 --- a/src/test/correct/function1/clang_O2/function1_gtirb.expected +++ b/src/test/correct/function1/clang_O2/function1_gtirb.expected @@ -86,7 +86,7 @@ procedure {:extern} rely_reflexive(); procedure {:extern} guarantee_reflexive(); modifies Gamma_mem, mem; -procedure FUN_630_1584(); +procedure FUN_630(); modifies Gamma_R16, Gamma_R17, Gamma_mem, R16, R17, mem; free requires (memory_load64_le(mem, 1976bv64) == 2924859843805185bv64); free requires (memory_load64_le(mem, 69064bv64) == 1872bv64); @@ -99,25 +99,22 @@ procedure FUN_630_1584(); free ensures (memory_load64_le(mem, 69592bv64) == 1888bv64); free ensures (memory_load64_le(mem, 69680bv64) == 69680bv64); -implementation FUN_630_1584() +implementation FUN_630() { - var Gamma_load1: bool; - var load1: bv64; - FUN_630_1584__0__9vg7iWSEQm2cjmXfKr4x1g: - assume {:captureState "FUN_630_1584__0__9vg7iWSEQm2cjmXfKr4x1g"} true; + var $load1: bv64; + var Gamma_$load1: bool; + $FUN_630$__0__$9vg7iWSEQm2cjmXfKr4x1g: + assume {:captureState "$FUN_630$__0__$9vg7iWSEQm2cjmXfKr4x1g"} true; R16, Gamma_R16 := 69632bv64, true; call rely(); - load1, Gamma_load1 := memory_load64_le(mem, bvadd64(R16, 32bv64)), (gamma_load64(Gamma_mem, bvadd64(R16, 32bv64)) || L(mem, bvadd64(R16, 32bv64))); - R17, Gamma_R17 := load1, Gamma_load1; + $load1, Gamma_$load1 := memory_load64_le(mem, bvadd64(R16, 32bv64)), (gamma_load64(Gamma_mem, bvadd64(R16, 32bv64)) || L(mem, bvadd64(R16, 32bv64))); + R17, Gamma_R17 := $load1, Gamma_$load1; R16, Gamma_R16 := bvadd64(R16, 32bv64), Gamma_R16; call printf(); - goto FUN_630_1584_basil_return; - FUN_630_1584_basil_return: - assume {:captureState "FUN_630_1584_basil_return"} true; - return; + assume false; } -procedure main_1888(); +procedure main(); modifies Gamma_R0, Gamma_R1, Gamma_R10, Gamma_R11, Gamma_R16, Gamma_R17, Gamma_R29, Gamma_R30, Gamma_R31, Gamma_R8, Gamma_R9, Gamma_mem, Gamma_stack, R0, R1, R10, R11, R16, R17, R29, R30, R31, R8, R9, mem, stack; free requires (memory_load64_le(mem, 69672bv64) == 0bv64); free requires (memory_load64_le(mem, 69680bv64) == 69680bv64); @@ -136,22 +133,22 @@ procedure main_1888(); free ensures (memory_load64_le(mem, 69592bv64) == 1888bv64); free ensures (memory_load64_le(mem, 69680bv64) == 69680bv64); -implementation main_1888() +implementation main() { - var Cse0__5_1_0: bv64; - var Gamma_Cse0__5_1_0: bool; - var Gamma_load6: bool; - var Gamma_load7: bool; - var load6: bv64; - var load7: bv64; - main_1888__0__~V6GfTEGRo6iegWvB8u~Ng: - assume {:captureState "main_1888__0__~V6GfTEGRo6iegWvB8u~Ng"} true; - Cse0__5_1_0, Gamma_Cse0__5_1_0 := bvadd64(R31, 18446744073709551600bv64), Gamma_R31; - stack, Gamma_stack := memory_store64_le(stack, Cse0__5_1_0, R29), gamma_store64(Gamma_stack, Cse0__5_1_0, Gamma_R29); - assume {:captureState "1888_1"} true; - stack, Gamma_stack := memory_store64_le(stack, bvadd64(Cse0__5_1_0, 8bv64), R30), gamma_store64(Gamma_stack, bvadd64(Cse0__5_1_0, 8bv64), Gamma_R30); - assume {:captureState "1888_2"} true; - R31, Gamma_R31 := Cse0__5_1_0, Gamma_Cse0__5_1_0; + var $load6: bv64; + var $load7: bv64; + var Cse0__5$1$0: bv64; + var Gamma_$load6: bool; + var Gamma_$load7: bool; + var Gamma_Cse0__5$1$0: bool; + $main$__0__$~V6GfTEGRo6iegWvB8u~Ng: + assume {:captureState "$main$__0__$~V6GfTEGRo6iegWvB8u~Ng"} true; + Cse0__5$1$0, Gamma_Cse0__5$1$0 := bvadd64(R31, 18446744073709551600bv64), Gamma_R31; + stack, Gamma_stack := memory_store64_le(stack, Cse0__5$1$0, R29), gamma_store64(Gamma_stack, Cse0__5$1$0, Gamma_R29); + assume {:captureState "1888$1"} true; + stack, Gamma_stack := memory_store64_le(stack, bvadd64(Cse0__5$1$0, 8bv64), R30), gamma_store64(Gamma_stack, bvadd64(Cse0__5$1$0, 8bv64), Gamma_R30); + assume {:captureState "1888$2"} true; + R31, Gamma_R31 := Cse0__5$1$0, Gamma_Cse0__5$1$0; R29, Gamma_R29 := R31, Gamma_R31; R11, Gamma_R11 := 58475bv64, true; R1, Gamma_R1 := 58475bv64, true; @@ -165,25 +162,25 @@ implementation main_1888() call rely(); assert (L(mem, bvadd64(R8, 60bv64)) ==> Gamma_R9); mem, Gamma_mem := memory_store32_le(mem, bvadd64(R8, 60bv64), R9[32:0]), gamma_store32(Gamma_mem, bvadd64(R8, 60bv64), Gamma_R9); - assume {:captureState "1932_0"} true; + assume {:captureState "1932$0"} true; call rely(); assert (L(mem, bvadd64(R10, 64bv64)) ==> Gamma_R11); mem, Gamma_mem := memory_store32_le(mem, bvadd64(R10, 64bv64), R11[32:0]), gamma_store32(Gamma_mem, bvadd64(R10, 64bv64), Gamma_R11); - assume {:captureState "1936_0"} true; + assume {:captureState "1936$0"} true; R30, Gamma_R30 := 1944bv64, true; - call FUN_630_1584(); - goto main_1888__1__FJjmKBZVSk~WIQ57oU6MUA; - main_1888__1__FJjmKBZVSk~WIQ57oU6MUA: - assume {:captureState "main_1888__1__FJjmKBZVSk~WIQ57oU6MUA"} true; + call FUN_630(); + goto $main$__1__$FJjmKBZVSk~WIQ57oU6MUA; + $main$__1__$FJjmKBZVSk~WIQ57oU6MUA: + assume {:captureState "$main$__1__$FJjmKBZVSk~WIQ57oU6MUA"} true; R0, Gamma_R0 := 0bv64, true; - load6, Gamma_load6 := memory_load64_le(stack, R31), gamma_load64(Gamma_stack, R31); - R29, Gamma_R29 := load6, Gamma_load6; - load7, Gamma_load7 := memory_load64_le(stack, bvadd64(R31, 8bv64)), gamma_load64(Gamma_stack, bvadd64(R31, 8bv64)); - R30, Gamma_R30 := load7, Gamma_load7; + $load6, Gamma_$load6 := memory_load64_le(stack, R31), gamma_load64(Gamma_stack, R31); + R29, Gamma_R29 := $load6, Gamma_$load6; + $load7, Gamma_$load7 := memory_load64_le(stack, bvadd64(R31, 8bv64)), gamma_load64(Gamma_stack, bvadd64(R31, 8bv64)); + R30, Gamma_R30 := $load7, Gamma_$load7; R31, Gamma_R31 := bvadd64(R31, 16bv64), Gamma_R31; - goto main_1888_basil_return; - main_1888_basil_return: - assume {:captureState "main_1888_basil_return"} true; + goto main_basil_return; + main_basil_return: + assume {:captureState "main_basil_return"} true; return; } diff --git a/src/test/correct/function1/gcc/function1.adt b/src/test/correct/function1/gcc/function1.adt deleted file mode 100644 index 2979af539..000000000 --- a/src/test/correct/function1/gcc/function1.adt +++ /dev/null @@ -1,629 +0,0 @@ -Project(Attrs([Attr("filename","\"gcc/function1.out\""), -Attr("image-specification","(declare abi (name str))\n(declare arch (name str))\n(declare base-address (addr int))\n(declare bias (off int))\n(declare bits (size int))\n(declare code-region (addr int) (size int) (off int))\n(declare code-start (addr int))\n(declare entry-point (addr int))\n(declare external-reference (addr int) (name str))\n(declare format (name str))\n(declare is-executable (flag bool))\n(declare is-little-endian (flag bool))\n(declare llvm:base-address (addr int))\n(declare llvm:code-entry (name str) (off int) (size int))\n(declare llvm:coff-import-library (name str))\n(declare llvm:coff-virtual-section-header (name str) (addr int) (size int))\n(declare llvm:elf-program-header (name str) (off int) (size int))\n(declare llvm:elf-program-header-flags (name str) (ld bool) (r bool) \n (w bool) (x bool))\n(declare llvm:elf-virtual-program-header (name str) (addr int) (size int))\n(declare llvm:entry-point (addr int))\n(declare llvm:macho-symbol (name str) (value int))\n(declare llvm:name-reference (at int) (name str))\n(declare llvm:relocation (at int) (addr int))\n(declare llvm:section-entry (name str) (addr int) (size int) (off int))\n(declare llvm:section-flags (name str) (r bool) (w bool) (x bool))\n(declare llvm:segment-command (name str) (off int) (size int))\n(declare llvm:segment-command-flags (name str) (r bool) (w bool) (x bool))\n(declare llvm:symbol-entry (name str) (addr int) (size int) (off int)\n (value int))\n(declare llvm:virtual-segment-command (name str) (addr int) (size int))\n(declare mapped (addr int) (size int) (off int))\n(declare named-region (addr int) (size int) (name str))\n(declare named-symbol (addr int) (name str))\n(declare require (name str))\n(declare section (addr int) (size int))\n(declare segment (addr int) (size int) (r bool) (w bool) (x bool))\n(declare subarch (name str))\n(declare symbol-chunk (addr int) (size int) (root int))\n(declare symbol-value (addr int) (value int))\n(declare system (name str))\n(declare vendor (name str))\n\n(abi unknown)\n(arch aarch64)\n(base-address 0)\n(bias 0)\n(bits 64)\n(code-region 2028 20 2028)\n(code-region 1600 428 1600)\n(code-region 1488 112 1488)\n(code-region 1464 24 1464)\n(code-start 1652)\n(code-start 1876)\n(code-start 1600)\n(code-start 1924)\n(entry-point 1600)\n(external-reference 69592 _ITM_deregisterTMCloneTable)\n(external-reference 69600 __cxa_finalize)\n(external-reference 69608 __gmon_start__)\n(external-reference 69624 _ITM_registerTMCloneTable)\n(external-reference 69544 __libc_start_main)\n(external-reference 69552 __cxa_finalize)\n(external-reference 69560 __gmon_start__)\n(external-reference 69568 abort)\n(external-reference 69576 printf)\n(format elf)\n(is-executable true)\n(is-little-endian true)\n(llvm:base-address 0)\n(llvm:code-entry printf 0 0)\n(llvm:code-entry abort 0 0)\n(llvm:code-entry __cxa_finalize 0 0)\n(llvm:code-entry __libc_start_main 0 0)\n(llvm:code-entry _init 1464 0)\n(llvm:code-entry printf@GLIBC_2.17 0 0)\n(llvm:code-entry main 1924 104)\n(llvm:code-entry _start 1600 52)\n(llvm:code-entry abort@GLIBC_2.17 0 0)\n(llvm:code-entry get_two 1876 48)\n(llvm:code-entry _fini 2028 0)\n(llvm:code-entry __cxa_finalize@GLIBC_2.17 0 0)\n(llvm:code-entry __libc_start_main@GLIBC_2.34 0 0)\n(llvm:code-entry frame_dummy 1872 0)\n(llvm:code-entry __do_global_dtors_aux 1792 0)\n(llvm:code-entry register_tm_clones 1728 0)\n(llvm:code-entry deregister_tm_clones 1680 0)\n(llvm:code-entry call_weak_fn 1652 20)\n(llvm:code-entry .fini 2028 20)\n(llvm:code-entry .text 1600 428)\n(llvm:code-entry .plt 1488 112)\n(llvm:code-entry .init 1464 24)\n(llvm:elf-program-header 08 3472 624)\n(llvm:elf-program-header 07 0 0)\n(llvm:elf-program-header 06 2060 68)\n(llvm:elf-program-header 05 596 68)\n(llvm:elf-program-header 04 3488 496)\n(llvm:elf-program-header 03 3472 640)\n(llvm:elf-program-header 02 0 2324)\n(llvm:elf-program-header 01 568 27)\n(llvm:elf-program-header 00 64 504)\n(llvm:elf-program-header-flags 08 false true false false)\n(llvm:elf-program-header-flags 07 false true true false)\n(llvm:elf-program-header-flags 06 false true false false)\n(llvm:elf-program-header-flags 05 false true false false)\n(llvm:elf-program-header-flags 04 false true true false)\n(llvm:elf-program-header-flags 03 true true true false)\n(llvm:elf-program-header-flags 02 true true false true)\n(llvm:elf-program-header-flags 01 false true false false)\n(llvm:elf-program-header-flags 00 false true false false)\n(llvm:elf-virtual-program-header 08 69008 624)\n(llvm:elf-virtual-program-header 07 0 0)\n(llvm:elf-virtual-program-header 06 2060 68)\n(llvm:elf-virtual-program-header 05 596 68)\n(llvm:elf-virtual-program-header 04 69024 496)\n(llvm:elf-virtual-program-header 03 69008 656)\n(llvm:elf-virtual-program-header 02 0 2324)\n(llvm:elf-virtual-program-header 01 568 27)\n(llvm:elf-virtual-program-header 00 64 504)\n(llvm:entry-point 1600)\n(llvm:name-reference 69576 printf)\n(llvm:name-reference 69568 abort)\n(llvm:name-reference 69560 __gmon_start__)\n(llvm:name-reference 69552 __cxa_finalize)\n(llvm:name-reference 69544 __libc_start_main)\n(llvm:name-reference 69624 _ITM_registerTMCloneTable)\n(llvm:name-reference 69608 __gmon_start__)\n(llvm:name-reference 69600 __cxa_finalize)\n(llvm:name-reference 69592 _ITM_deregisterTMCloneTable)\n(llvm:section-entry .shstrtab 0 250 6939)\n(llvm:section-entry .strtab 0 571 6368)\n(llvm:section-entry .symtab 0 2208 4160)\n(llvm:section-entry .comment 0 43 4112)\n(llvm:section-entry .bss 69648 16 4112)\n(llvm:section-entry .data 69632 16 4096)\n(llvm:section-entry .got 69520 112 3984)\n(llvm:section-entry .dynamic 69024 496 3488)\n(llvm:section-entry .fini_array 69016 8 3480)\n(llvm:section-entry .init_array 69008 8 3472)\n(llvm:section-entry .eh_frame 2128 196 2128)\n(llvm:section-entry .eh_frame_hdr 2060 68 2060)\n(llvm:section-entry .rodata 2048 12 2048)\n(llvm:section-entry .fini 2028 20 2028)\n(llvm:section-entry .text 1600 428 1600)\n(llvm:section-entry .plt 1488 112 1488)\n(llvm:section-entry .init 1464 24 1464)\n(llvm:section-entry .rela.plt 1344 120 1344)\n(llvm:section-entry .rela.dyn 1152 192 1152)\n(llvm:section-entry .gnu.version_r 1104 48 1104)\n(llvm:section-entry .gnu.version 1084 20 1084)\n(llvm:section-entry .dynstr 936 148 936)\n(llvm:section-entry .dynsym 696 240 696)\n(llvm:section-entry .gnu.hash 664 28 664)\n(llvm:section-entry .note.ABI-tag 632 32 632)\n(llvm:section-entry .note.gnu.build-id 596 36 596)\n(llvm:section-entry .interp 568 27 568)\n(llvm:section-flags .shstrtab true false false)\n(llvm:section-flags .strtab true false false)\n(llvm:section-flags .symtab true false false)\n(llvm:section-flags .comment true false false)\n(llvm:section-flags .bss true true false)\n(llvm:section-flags .data true true false)\n(llvm:section-flags .got true true false)\n(llvm:section-flags .dynamic true true false)\n(llvm:section-flags .fini_array true true false)\n(llvm:section-flags .init_array true true false)\n(llvm:section-flags .eh_frame true false false)\n(llvm:section-flags .eh_frame_hdr true false false)\n(llvm:section-flags .rodata true false false)\n(llvm:section-flags .fini true false true)\n(llvm:section-flags .text true false true)\n(llvm:section-flags .plt true false true)\n(llvm:section-flags .init true false true)\n(llvm:section-flags .rela.plt true false false)\n(llvm:section-flags .rela.dyn true false false)\n(llvm:section-flags .gnu.version_r true false false)\n(llvm:section-flags .gnu.version true false false)\n(llvm:section-flags .dynstr true false false)\n(llvm:section-flags .dynsym true false false)\n(llvm:section-flags .gnu.hash true false false)\n(llvm:section-flags .note.ABI-tag true false false)\n(llvm:section-flags .note.gnu.build-id true false false)\n(llvm:section-flags .interp true false false)\n(llvm:symbol-entry printf 0 0 0 0)\n(llvm:symbol-entry abort 0 0 0 0)\n(llvm:symbol-entry __cxa_finalize 0 0 0 0)\n(llvm:symbol-entry __libc_start_main 0 0 0 0)\n(llvm:symbol-entry _init 1464 0 1464 1464)\n(llvm:symbol-entry printf@GLIBC_2.17 0 0 0 0)\n(llvm:symbol-entry main 1924 104 1924 1924)\n(llvm:symbol-entry _start 1600 52 1600 1600)\n(llvm:symbol-entry abort@GLIBC_2.17 0 0 0 0)\n(llvm:symbol-entry get_two 1876 48 1876 1876)\n(llvm:symbol-entry _fini 2028 0 2028 2028)\n(llvm:symbol-entry __cxa_finalize@GLIBC_2.17 0 0 0 0)\n(llvm:symbol-entry __libc_start_main@GLIBC_2.34 0 0 0 0)\n(llvm:symbol-entry frame_dummy 1872 0 1872 1872)\n(llvm:symbol-entry __do_global_dtors_aux 1792 0 1792 1792)\n(llvm:symbol-entry register_tm_clones 1728 0 1728 1728)\n(llvm:symbol-entry deregister_tm_clones 1680 0 1680 1680)\n(llvm:symbol-entry call_weak_fn 1652 20 1652 1652)\n(mapped 0 2324 0)\n(mapped 69008 640 3472)\n(named-region 0 2324 02)\n(named-region 69008 656 03)\n(named-region 568 27 .interp)\n(named-region 596 36 .note.gnu.build-id)\n(named-region 632 32 .note.ABI-tag)\n(named-region 664 28 .gnu.hash)\n(named-region 696 240 .dynsym)\n(named-region 936 148 .dynstr)\n(named-region 1084 20 .gnu.version)\n(named-region 1104 48 .gnu.version_r)\n(named-region 1152 192 .rela.dyn)\n(named-region 1344 120 .rela.plt)\n(named-region 1464 24 .init)\n(named-region 1488 112 .plt)\n(named-region 1600 428 .text)\n(named-region 2028 20 .fini)\n(named-region 2048 12 .rodata)\n(named-region 2060 68 .eh_frame_hdr)\n(named-region 2128 196 .eh_frame)\n(named-region 69008 8 .init_array)\n(named-region 69016 8 .fini_array)\n(named-region 69024 496 .dynamic)\n(named-region 69520 112 .got)\n(named-region 69632 16 .data)\n(named-region 69648 16 .bss)\n(named-region 0 43 .comment)\n(named-region 0 2208 .symtab)\n(named-region 0 571 .strtab)\n(named-region 0 250 .shstrtab)\n(named-symbol 1652 call_weak_fn)\n(named-symbol 1680 deregister_tm_clones)\n(named-symbol 1728 register_tm_clones)\n(named-symbol 1792 __do_global_dtors_aux)\n(named-symbol 1872 frame_dummy)\n(named-symbol 0 __libc_start_main@GLIBC_2.34)\n(named-symbol 0 __cxa_finalize@GLIBC_2.17)\n(named-symbol 2028 _fini)\n(named-symbol 1876 get_two)\n(named-symbol 0 abort@GLIBC_2.17)\n(named-symbol 1600 _start)\n(named-symbol 1924 main)\n(named-symbol 0 printf@GLIBC_2.17)\n(named-symbol 1464 _init)\n(named-symbol 0 __libc_start_main)\n(named-symbol 0 __cxa_finalize)\n(named-symbol 0 abort)\n(named-symbol 0 printf)\n(require libc.so.6)\n(section 568 27)\n(section 596 36)\n(section 632 32)\n(section 664 28)\n(section 696 240)\n(section 936 148)\n(section 1084 20)\n(section 1104 48)\n(section 1152 192)\n(section 1344 120)\n(section 1464 24)\n(section 1488 112)\n(section 1600 428)\n(section 2028 20)\n(section 2048 12)\n(section 2060 68)\n(section 2128 196)\n(section 69008 8)\n(section 69016 8)\n(section 69024 496)\n(section 69520 112)\n(section 69632 16)\n(section 69648 16)\n(section 0 43)\n(section 0 2208)\n(section 0 571)\n(section 0 250)\n(segment 0 2324 true false true)\n(segment 69008 656 true true false)\n(subarch v8)\n(symbol-chunk 1652 20 1652)\n(symbol-chunk 1876 48 1876)\n(symbol-chunk 1600 52 1600)\n(symbol-chunk 1924 104 1924)\n(symbol-value 1652 1652)\n(symbol-value 1680 1680)\n(symbol-value 1728 1728)\n(symbol-value 1792 1792)\n(symbol-value 1872 1872)\n(symbol-value 2028 2028)\n(symbol-value 1876 1876)\n(symbol-value 1600 1600)\n(symbol-value 1924 1924)\n(symbol-value 1464 1464)\n(symbol-value 0 0)\n(system \"\")\n(vendor \"\")\n"), -Attr("abi-name","\"aarch64-linux-gnu-elf\"")]), -Sections([Section(".shstrtab", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x40\x06\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x18\x1c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x38\x00\x09\x00\x40\x00\x1c\x00\x1b\x00\x06\x00\x00\x00\x04\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x04\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x14\x09\x00\x00\x00\x00\x00\x00\x14\x09\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x01\x00\x00\x00\x06\x00\x00\x00\x90\x0d\x00\x00\x00\x00\x00\x00\x90\x0d"), -Section(".strtab", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x40\x06\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x18\x1c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x38\x00\x09\x00\x40\x00\x1c\x00\x1b\x00\x06\x00\x00\x00\x04\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x04\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x14\x09\x00\x00\x00\x00\x00\x00\x14\x09\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x01\x00\x00\x00\x06\x00\x00\x00\x90\x0d\x00\x00\x00\x00\x00\x00\x90\x0d\x01\x00\x00\x00\x00\x00\x90\x0d\x01\x00\x00\x00\x00\x00\x80\x02\x00\x00\x00\x00\x00\x00\x90\x02\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x02\x00\x00\x00\x06\x00\x00\x00\xa0\x0d\x00\x00\x00\x00\x00\x00\xa0\x0d\x01\x00\x00\x00\x00\x00\xa0\x0d\x01\x00\x00\x00\x00\x00\xf0\x01\x00\x00\x00\x00\x00\x00\xf0\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x04\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x50\xe5\x74\x64\x04\x00\x00\x00\x0c\x08\x00\x00\x00\x00\x00\x00\x0c\x08\x00\x00\x00\x00\x00\x00\x0c\x08\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x51\xe5\x74\x64\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x52\xe5\x74\x64\x04\x00\x00\x00\x90\x0d\x00\x00\x00\x00\x00\x00\x90\x0d\x01\x00\x00\x00\x00\x00\x90\x0d\x01\x00\x00\x00\x00\x00\x70\x02\x00\x00\x00\x00\x00\x00\x70\x02\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x2f\x6c\x69"), -Section(".symtab", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x40\x06\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x18\x1c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x38\x00\x09\x00\x40\x00\x1c\x00\x1b\x00\x06\x00\x00\x00\x04\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x04\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x14\x09\x00\x00\x00\x00\x00\x00\x14\x09\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x01\x00\x00\x00\x06\x00\x00\x00\x90\x0d\x00\x00\x00\x00\x00\x00\x90\x0d\x01\x00\x00\x00\x00\x00\x90\x0d\x01\x00\x00\x00\x00\x00\x80\x02\x00\x00\x00\x00\x00\x00\x90\x02\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x02\x00\x00\x00\x06\x00\x00\x00\xa0\x0d\x00\x00\x00\x00\x00\x00\xa0\x0d\x01\x00\x00\x00\x00\x00\xa0\x0d\x01\x00\x00\x00\x00\x00\xf0\x01\x00\x00\x00\x00\x00\x00\xf0\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x04\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x50\xe5\x74\x64\x04\x00\x00\x00\x0c\x08\x00\x00\x00\x00\x00\x00\x0c\x08\x00\x00\x00\x00\x00\x00\x0c\x08\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x51\xe5\x74\x64\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x52\xe5\x74\x64\x04\x00\x00\x00\x90\x0d\x00\x00\x00\x00\x00\x00\x90\x0d\x01\x00\x00\x00\x00\x00\x90\x0d\x01\x00\x00\x00\x00\x00\x70\x02\x00\x00\x00\x00\x00\x00\x70\x02\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x2f\x6c\x69\x62\x2f\x6c\x64\x2d\x6c\x69\x6e\x75\x78\x2d\x61\x61\x72\x63\x68\x36\x34\x2e\x73\x6f\x2e\x31\x00\x00\x04\x00\x00\x00\x14\x00\x00\x00\x03\x00\x00\x00\x47\x4e\x55\x00\xa3\xda\x96\xd6\xa8\x66\x43\x33\x89\xa4\xd9\x9c\xfa\xe7\xde\x6c\xf5\x44\x04\x94\x04\x00\x00\x00\x10\x00\x00\x00\x01\x00\x00\x00\x47\x4e\x55\x00\x00\x00\x00\x00\x03\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x01\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x0b\x00\xb8\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x16\x00\x00\x10\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4f\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x22\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6b\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x22\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x28\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5f\x5f\x63\x78\x61\x5f\x66\x69\x6e\x61\x6c\x69\x7a\x65\x00\x5f\x5f\x6c\x69\x62\x63\x5f\x73\x74\x61\x72\x74\x5f\x6d\x61\x69\x6e\x00\x61\x62\x6f\x72\x74\x00\x70\x72\x69\x6e\x74\x66\x00\x6c\x69\x62\x63\x2e\x73\x6f\x2e\x36\x00\x47\x4c\x49\x42\x43\x5f\x32\x2e\x31\x37\x00\x47\x4c\x49\x42\x43\x5f\x32\x2e\x33\x34\x00\x5f\x49\x54\x4d\x5f\x64\x65\x72\x65\x67\x69\x73\x74\x65\x72\x54\x4d\x43\x6c\x6f\x6e\x65\x54\x61\x62\x6c\x65\x00\x5f\x5f\x67\x6d\x6f\x6e\x5f\x73\x74\x61\x72\x74\x5f\x5f\x00\x5f\x49\x54\x4d\x5f\x72\x65\x67\x69\x73\x74\x65\x72\x54\x4d\x43\x6c\x6f\x6e\x65\x54\x61\x62\x6c\x65\x00\x00\x00\x00\x00\x00\x00\x02\x00\x01\x00\x03\x00\x01\x00\x03\x00\x01\x00\x03\x00\x01\x00\x02\x00\x2f\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x97\x91\x96\x06\x00\x00\x03\x00\x39\x00\x00\x00\x10\x00\x00\x00\xb4\x91\x96\x06\x00\x00\x02\x00\x44\x00\x00\x00\x00\x00\x00\x00\x90\x0d\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x50\x07\x00\x00\x00\x00\x00\x00\x98\x0d\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\xf0\x0f\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x84\x07\x00\x00\x00\x00\x00\x00\x08\x10\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x08\x10\x01\x00\x00\x00\x00\x00\xd8\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe0\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe8\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xf8\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xa8\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xb0\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xb8\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xc0\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xc8\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x09\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1f\x20\x03\xd5\xfd\x7b\xbf\xa9\xfd\x03\x00\x91\x2c\x00\x00\x94\xfd\x7b\xc1\xa8\xc0\x03\x5f\xd6\xf0\x7b\xbf\xa9\x90\x00\x00\x90\x11\xd2\x47\xf9\x10\x82\x3e\x91\x20\x02\x1f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x90\x00\x00\x90\x11\xd6\x47\xf9\x10\xa2\x3e\x91\x20\x02\x1f\xd6\x90\x00\x00\x90\x11\xda\x47\xf9\x10\xc2\x3e\x91\x20\x02\x1f\xd6\x90\x00\x00\x90\x11\xde\x47\xf9\x10\xe2\x3e\x91\x20\x02\x1f\xd6\x90\x00\x00\x90\x11\xe2\x47\xf9\x10\x02\x3f\x91\x20\x02\x1f\xd6\x90\x00\x00\x90\x11\xe6\x47\xf9\x10\x22\x3f\x91\x20\x02\x1f\xd6\x1f\x20\x03\xd5\x1d\x00\x80\xd2\x1e\x00\x80\xd2\xe5\x03\x00\xaa\xe1\x03\x40\xf9\xe2\x23\x00\x91\xe6\x03\x00\x91\x80\x00\x00\x90\x00\xf8\x47\xf9\x03\x00\x80\xd2\x04\x00\x80\xd2\xe1\xff\xff\x97\xec\xff\xff\x97\x80\x00\x00\x90\x00\xf4\x47\xf9\x40\x00\x00\xb4\xe4\xff\xff\x17\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x80\x00\x00\xb0\x00\x40\x00\x91\x81\x00\x00\xb0\x21\x40\x00\x91\x3f\x00\x00\xeb\xc0\x00\x00\x54\x81\x00\x00\x90\x21\xec\x47\xf9\x61\x00\x00\xb4\xf0\x03\x01\xaa\x00\x02\x1f\xd6\xc0\x03\x5f\xd6\x80\x00\x00\xb0\x00\x40\x00\x91\x81\x00\x00\xb0\x21\x40\x00\x91\x21\x00\x00\xcb\x22\xfc\x7f\xd3\x41\x0c\x81\x8b\x21\xfc\x41\x93\xc1\x00\x00\xb4\x82\x00\x00\x90\x42\xfc\x47\xf9\x62\x00\x00\xb4\xf0\x03\x02\xaa\x00\x02\x1f\xd6\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\xfd\x7b\xbe\xa9\xfd\x03\x00\x91\xf3\x0b\x00\xf9\x93\x00\x00\xb0\x60\x42\x40\x39\x40\x01\x00\x35\x80\x00\x00\x90\x00\xf0\x47\xf9\x80\x00\x00\xb4\x80\x00\x00\xb0\x00\x04\x40\xf9\xb5\xff\xff\x97\xd8\xff\xff\x97\x20\x00\x80\x52\x60\x42\x00\x39\xf3\x0b\x40\xf9\xfd\x7b\xc2\xa8\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\xdc\xff\xff\x17\xff\x43\x00\xd1\xe0\x3f\x00\x39\xe1\x0b\x00\xb9\xe2\x03\x00\xf9\xe1\x3f\x40\x39\xe0\x0b\x40\xb9\x20\x00\x00\x0b\xe1\x03\x00\x2a\xe0\x03\x40\xf9\x20\x00\x00\x0b\xff\x43\x00\x91\xc0\x03\x5f\xd6\xfd\x7b\xbf\xa9\xfd\x03\x00\x91\x80\x00\x00\xb0\x00\x50\x00\x91\x21\x00\x80\x52\x01\x00\x00\xb9\x02\x80\x9c\xd2\x62\x81\xaa\xf2\x42\x00\xc0\xf2\x41\x01\x80\x52\x20\x0c\x80\x52\xe9\xff\xff\x97\xe1\x03\x00\x2a\x80\x00\x00\xb0\x00\x60\x00\x91\x01\x00\x00\xb9\x80\x00\x00\xb0\x00\x60\x00\x91\x00\x00\x40\xb9\xe1\x03\x00\x2a\x00\x00\x00\x90\x00\x20\x20\x91\x95\xff\xff\x97\x00\x00\x80\x52\xfd\x7b\xc1\xa8\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\xfd\x7b\xbf\xa9\xfd\x03\x00\x91\xfd\x7b\xc1\xa8\xc0\x03\x5f\xd6\x01\x00\x02\x00\x00\x00\x00\x00\x25\x64\x0a\x00\x01\x1b\x03\x3b\x40\x00\x00\x00\x07\x00\x00\x00\x34\xfe\xff\xff\x58\x00\x00\x00\x84\xfe\xff\xff\x6c\x00\x00\x00\xb4\xfe\xff\xff\x80\x00\x00\x00\xf4\xfe\xff\xff\x94\x00\x00\x00\x44\xff\xff\xff\xb8\x00\x00\x00\x48\xff\xff\xff\xcc\x00\x00\x00\x78\xff\xff\xff\xe4\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x01\x7a\x52\x00\x04\x78\x1e\x01\x1b\x0c\x1f\x00\x10\x00\x00\x00\x18\x00\x00\x00\xd4\xfd\xff\xff\x34\x00\x00\x00\x00\x41\x07\x1e\x10\x00\x00\x00\x2c\x00\x00\x00\x10\xfe\xff\xff\x30\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x40\x00\x00\x00\x2c\xfe\xff\xff\x3c\x00\x00\x00\x00\x00\x00\x00"), -Section(".comment", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x40\x06\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x18\x1c\x00"), -Section(".interp", 0x238, "\x2f\x6c\x69\x62\x2f\x6c\x64\x2d\x6c\x69\x6e\x75\x78\x2d\x61\x61\x72\x63\x68\x36\x34\x2e\x73\x6f\x2e\x31\x00"), -Section(".note.gnu.build-id", 0x254, "\x04\x00\x00\x00\x14\x00\x00\x00\x03\x00\x00\x00\x47\x4e\x55\x00\xa3\xda\x96\xd6\xa8\x66\x43\x33\x89\xa4\xd9\x9c\xfa\xe7\xde\x6c\xf5\x44\x04\x94"), -Section(".note.ABI-tag", 0x278, "\x04\x00\x00\x00\x10\x00\x00\x00\x01\x00\x00\x00\x47\x4e\x55\x00\x00\x00\x00\x00\x03\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00"), -Section(".gnu.hash", 0x298, "\x01\x00\x00\x00\x01\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".dynsym", 0x2B8, "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x0b\x00\xb8\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x16\x00\x00\x10\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4f\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x22\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6b\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x22\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x28\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".dynstr", 0x3A8, "\x00\x5f\x5f\x63\x78\x61\x5f\x66\x69\x6e\x61\x6c\x69\x7a\x65\x00\x5f\x5f\x6c\x69\x62\x63\x5f\x73\x74\x61\x72\x74\x5f\x6d\x61\x69\x6e\x00\x61\x62\x6f\x72\x74\x00\x70\x72\x69\x6e\x74\x66\x00\x6c\x69\x62\x63\x2e\x73\x6f\x2e\x36\x00\x47\x4c\x49\x42\x43\x5f\x32\x2e\x31\x37\x00\x47\x4c\x49\x42\x43\x5f\x32\x2e\x33\x34\x00\x5f\x49\x54\x4d\x5f\x64\x65\x72\x65\x67\x69\x73\x74\x65\x72\x54\x4d\x43\x6c\x6f\x6e\x65\x54\x61\x62\x6c\x65\x00\x5f\x5f\x67\x6d\x6f\x6e\x5f\x73\x74\x61\x72\x74\x5f\x5f\x00\x5f\x49\x54\x4d\x5f\x72\x65\x67\x69\x73\x74\x65\x72\x54\x4d\x43\x6c\x6f\x6e\x65\x54\x61\x62\x6c\x65\x00"), -Section(".gnu.version", 0x43C, "\x00\x00\x00\x00\x00\x00\x02\x00\x01\x00\x03\x00\x01\x00\x03\x00\x01\x00\x03\x00"), -Section(".gnu.version_r", 0x450, "\x01\x00\x02\x00\x2f\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x97\x91\x96\x06\x00\x00\x03\x00\x39\x00\x00\x00\x10\x00\x00\x00\xb4\x91\x96\x06\x00\x00\x02\x00\x44\x00\x00\x00\x00\x00\x00\x00"), -Section(".rela.dyn", 0x480, "\x90\x0d\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x50\x07\x00\x00\x00\x00\x00\x00\x98\x0d\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\xf0\x0f\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x84\x07\x00\x00\x00\x00\x00\x00\x08\x10\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x08\x10\x01\x00\x00\x00\x00\x00\xd8\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe0\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe8\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xf8\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".rela.plt", 0x540, "\xa8\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xb0\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xb8\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xc0\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xc8\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x09\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".init", 0x5B8, "\x1f\x20\x03\xd5\xfd\x7b\xbf\xa9\xfd\x03\x00\x91\x2c\x00\x00\x94\xfd\x7b\xc1\xa8\xc0\x03\x5f\xd6"), -Section(".plt", 0x5D0, "\xf0\x7b\xbf\xa9\x90\x00\x00\x90\x11\xd2\x47\xf9\x10\x82\x3e\x91\x20\x02\x1f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x90\x00\x00\x90\x11\xd6\x47\xf9\x10\xa2\x3e\x91\x20\x02\x1f\xd6\x90\x00\x00\x90\x11\xda\x47\xf9\x10\xc2\x3e\x91\x20\x02\x1f\xd6\x90\x00\x00\x90\x11\xde\x47\xf9\x10\xe2\x3e\x91\x20\x02\x1f\xd6\x90\x00\x00\x90\x11\xe2\x47\xf9\x10\x02\x3f\x91\x20\x02\x1f\xd6\x90\x00\x00\x90\x11\xe6\x47\xf9\x10\x22\x3f\x91\x20\x02\x1f\xd6"), -Section(".fini", 0x7EC, "\x1f\x20\x03\xd5\xfd\x7b\xbf\xa9\xfd\x03\x00\x91\xfd\x7b\xc1\xa8\xc0\x03\x5f\xd6"), -Section(".rodata", 0x800, "\x01\x00\x02\x00\x00\x00\x00\x00\x25\x64\x0a\x00"), -Section(".eh_frame_hdr", 0x80C, "\x01\x1b\x03\x3b\x40\x00\x00\x00\x07\x00\x00\x00\x34\xfe\xff\xff\x58\x00\x00\x00\x84\xfe\xff\xff\x6c\x00\x00\x00\xb4\xfe\xff\xff\x80\x00\x00\x00\xf4\xfe\xff\xff\x94\x00\x00\x00\x44\xff\xff\xff\xb8\x00\x00\x00\x48\xff\xff\xff\xcc\x00\x00\x00\x78\xff\xff\xff\xe4\x00\x00\x00"), -Section(".eh_frame", 0x850, "\x10\x00\x00\x00\x00\x00\x00\x00\x01\x7a\x52\x00\x04\x78\x1e\x01\x1b\x0c\x1f\x00\x10\x00\x00\x00\x18\x00\x00\x00\xd4\xfd\xff\xff\x34\x00\x00\x00\x00\x41\x07\x1e\x10\x00\x00\x00\x2c\x00\x00\x00\x10\xfe\xff\xff\x30\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x40\x00\x00\x00\x2c\xfe\xff\xff\x3c\x00\x00\x00\x00\x00\x00\x00\x20\x00\x00\x00\x54\x00\x00\x00\x58\xfe\xff\xff\x48\x00\x00\x00\x00\x41\x0e\x20\x9d\x04\x9e\x03\x42\x93\x02\x4e\xde\xdd\xd3\x0e\x00\x00\x00\x00\x10\x00\x00\x00\x78\x00\x00\x00\x84\xfe\xff\xff\x04\x00\x00\x00\x00\x00\x00\x00\x14\x00\x00\x00\x8c\x00\x00\x00\x74\xfe\xff\xff\x30\x00\x00\x00\x00\x41\x0e\x10\x4a\x0e\x00\x00\x1c\x00\x00\x00\xa4\x00\x00\x00\x8c\xfe\xff\xff\x68\x00\x00\x00\x00\x41\x0e\x10\x9d\x02\x9e\x01\x58\xde\xdd\x0e\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".fini_array", 0x10D98, "\x00\x07\x00\x00\x00\x00\x00\x00"), -Section(".dynamic", 0x10DA0, "\x01\x00\x00\x00\x00\x00\x00\x00\x2f\x00\x00\x00\x00\x00\x00\x00\x0c\x00\x00\x00\x00\x00\x00\x00\xb8\x05\x00\x00\x00\x00\x00\x00\x0d\x00\x00\x00\x00\x00\x00\x00\xec\x07\x00\x00\x00\x00\x00\x00\x19\x00\x00\x00\x00\x00\x00\x00\x90\x0d\x01\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x1a\x00\x00\x00\x00\x00\x00\x00\x98\x0d\x01\x00\x00\x00\x00\x00\x1c\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\xf5\xfe\xff\x6f\x00\x00\x00\x00\x98\x02\x00\x00\x00\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\xa8\x03\x00\x00\x00\x00\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\xb8\x02\x00\x00\x00\x00\x00\x00\x0a\x00\x00\x00\x00\x00\x00\x00\x94\x00\x00\x00\x00\x00\x00\x00\x0b\x00\x00\x00\x00\x00\x00\x00\x18\x00\x00\x00\x00\x00\x00\x00\x15\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x90\x0f\x01\x00\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x78\x00\x00\x00\x00\x00\x00\x00\x14\x00\x00\x00\x00\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x17\x00\x00\x00\x00\x00\x00\x00\x40\x05\x00\x00\x00\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x80\x04\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\xc0\x00\x00\x00\x00\x00\x00\x00\x09\x00\x00\x00\x00\x00\x00\x00\x18\x00\x00\x00\x00\x00\x00\x00\x1e\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\xfb\xff\xff\x6f\x00\x00\x00\x00\x01\x00\x00\x08\x00\x00\x00\x00\xfe\xff\xff\x6f\x00\x00\x00\x00\x50\x04\x00\x00\x00\x00\x00\x00\xff\xff\xff\x6f\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\xf0\xff\xff\x6f\x00\x00\x00\x00\x3c\x04\x00\x00\x00\x00\x00\x00\xf9\xff\xff\x6f\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".got", 0x10F90, "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xd0\x05\x00\x00\x00\x00\x00\x00\xd0\x05\x00\x00\x00\x00\x00\x00\xd0\x05\x00\x00\x00\x00\x00\x00\xd0\x05\x00\x00\x00\x00\x00\x00\xd0\x05\x00\x00\x00\x00\x00\x00\xa0\x0d\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x84\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".data", 0x11000, "\x00\x00\x00\x00\x00\x00\x00\x00\x08\x10\x01\x00\x00\x00\x00\x00"), -Section(".init_array", 0x10D90, "\x50\x07\x00\x00\x00\x00\x00\x00"), -Section(".text", 0x640, "\x1f\x20\x03\xd5\x1d\x00\x80\xd2\x1e\x00\x80\xd2\xe5\x03\x00\xaa\xe1\x03\x40\xf9\xe2\x23\x00\x91\xe6\x03\x00\x91\x80\x00\x00\x90\x00\xf8\x47\xf9\x03\x00\x80\xd2\x04\x00\x80\xd2\xe1\xff\xff\x97\xec\xff\xff\x97\x80\x00\x00\x90\x00\xf4\x47\xf9\x40\x00\x00\xb4\xe4\xff\xff\x17\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x80\x00\x00\xb0\x00\x40\x00\x91\x81\x00\x00\xb0\x21\x40\x00\x91\x3f\x00\x00\xeb\xc0\x00\x00\x54\x81\x00\x00\x90\x21\xec\x47\xf9\x61\x00\x00\xb4\xf0\x03\x01\xaa\x00\x02\x1f\xd6\xc0\x03\x5f\xd6\x80\x00\x00\xb0\x00\x40\x00\x91\x81\x00\x00\xb0\x21\x40\x00\x91\x21\x00\x00\xcb\x22\xfc\x7f\xd3\x41\x0c\x81\x8b\x21\xfc\x41\x93\xc1\x00\x00\xb4\x82\x00\x00\x90\x42\xfc\x47\xf9\x62\x00\x00\xb4\xf0\x03\x02\xaa\x00\x02\x1f\xd6\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\xfd\x7b\xbe\xa9\xfd\x03\x00\x91\xf3\x0b\x00\xf9\x93\x00\x00\xb0\x60\x42\x40\x39\x40\x01\x00\x35\x80\x00\x00\x90\x00\xf0\x47\xf9\x80\x00\x00\xb4\x80\x00\x00\xb0\x00\x04\x40\xf9\xb5\xff\xff\x97\xd8\xff\xff\x97\x20\x00\x80\x52\x60\x42\x00\x39\xf3\x0b\x40\xf9\xfd\x7b\xc2\xa8\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\xdc\xff\xff\x17\xff\x43\x00\xd1\xe0\x3f\x00\x39\xe1\x0b\x00\xb9\xe2\x03\x00\xf9\xe1\x3f\x40\x39\xe0\x0b\x40\xb9\x20\x00\x00\x0b\xe1\x03\x00\x2a\xe0\x03\x40\xf9\x20\x00\x00\x0b\xff\x43\x00\x91\xc0\x03\x5f\xd6\xfd\x7b\xbf\xa9\xfd\x03\x00\x91\x80\x00\x00\xb0\x00\x50\x00\x91\x21\x00\x80\x52\x01\x00\x00\xb9\x02\x80\x9c\xd2\x62\x81\xaa\xf2\x42\x00\xc0\xf2\x41\x01\x80\x52\x20\x0c\x80\x52\xe9\xff\xff\x97\xe1\x03\x00\x2a\x80\x00\x00\xb0\x00\x60\x00\x91\x01\x00\x00\xb9\x80\x00\x00\xb0\x00\x60\x00\x91\x00\x00\x40\xb9\xe1\x03\x00\x2a\x00\x00\x00\x90\x00\x20\x20\x91\x95\xff\xff\x97\x00\x00\x80\x52\xfd\x7b\xc1\xa8\xc0\x03\x5f\xd6")]), -Memmap([Annotation(Region(0x0,0x913), Attr("segment","02 0 2324")), -Annotation(Region(0x640,0x673), Attr("symbol","\"_start\"")), -Annotation(Region(0x0,0xF9), Attr("section","\".shstrtab\"")), -Annotation(Region(0x0,0x23A), Attr("section","\".strtab\"")), -Annotation(Region(0x0,0x89F), Attr("section","\".symtab\"")), -Annotation(Region(0x0,0x2A), Attr("section","\".comment\"")), -Annotation(Region(0x238,0x252), Attr("section","\".interp\"")), -Annotation(Region(0x254,0x277), Attr("section","\".note.gnu.build-id\"")), -Annotation(Region(0x278,0x297), Attr("section","\".note.ABI-tag\"")), -Annotation(Region(0x298,0x2B3), Attr("section","\".gnu.hash\"")), -Annotation(Region(0x2B8,0x3A7), Attr("section","\".dynsym\"")), -Annotation(Region(0x3A8,0x43B), Attr("section","\".dynstr\"")), -Annotation(Region(0x43C,0x44F), Attr("section","\".gnu.version\"")), -Annotation(Region(0x450,0x47F), Attr("section","\".gnu.version_r\"")), -Annotation(Region(0x480,0x53F), Attr("section","\".rela.dyn\"")), -Annotation(Region(0x540,0x5B7), Attr("section","\".rela.plt\"")), -Annotation(Region(0x5B8,0x5CF), Attr("section","\".init\"")), -Annotation(Region(0x5D0,0x63F), Attr("section","\".plt\"")), -Annotation(Region(0x5B8,0x5CF), Attr("code-region","()")), -Annotation(Region(0x5D0,0x63F), Attr("code-region","()")), -Annotation(Region(0x640,0x673), Attr("symbol-info","_start 0x640 52")), -Annotation(Region(0x674,0x687), Attr("symbol","\"call_weak_fn\"")), -Annotation(Region(0x674,0x687), Attr("symbol-info","call_weak_fn 0x674 20")), -Annotation(Region(0x754,0x783), Attr("symbol","\"get_two\"")), -Annotation(Region(0x754,0x783), Attr("symbol-info","get_two 0x754 48")), -Annotation(Region(0x640,0x7EB), Attr("code-region","()")), -Annotation(Region(0x784,0x7EB), Attr("symbol","\"main\"")), -Annotation(Region(0x784,0x7EB), Attr("symbol-info","main 0x784 104")), -Annotation(Region(0x7EC,0x7FF), Attr("section","\".fini\"")), -Annotation(Region(0x800,0x80B), Attr("section","\".rodata\"")), -Annotation(Region(0x80C,0x84F), Attr("section","\".eh_frame_hdr\"")), -Annotation(Region(0x850,0x913), Attr("section","\".eh_frame\"")), -Annotation(Region(0x10D90,0x1100F), Attr("segment","03 0x10D90 656")), -Annotation(Region(0x10D98,0x10D9F), Attr("section","\".fini_array\"")), -Annotation(Region(0x10DA0,0x10F8F), Attr("section","\".dynamic\"")), -Annotation(Region(0x10F90,0x10FFF), Attr("section","\".got\"")), -Annotation(Region(0x11000,0x1100F), Attr("section","\".data\"")), -Annotation(Region(0x10D90,0x10D97), Attr("section","\".init_array\"")), -Annotation(Region(0x640,0x7EB), Attr("section","\".text\"")), -Annotation(Region(0x7EC,0x7FF), Attr("code-region","()"))]), -Program(Tid(1_898, "%0000076a"), Attrs([]), - Subs([Sub(Tid(1_843, "@__cxa_finalize"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x600"), -Attr("stub","()")]), "__cxa_finalize", Args([Arg(Tid(1_899, "%0000076b"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("__cxa_finalize_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(1_153, "@__cxa_finalize"), - Attrs([Attr("address","0x600")]), Phis([]), -Defs([Def(Tid(1_417, "%00000589"), Attrs([Attr("address","0x600"), -Attr("insn","adrp x16, #65536")]), Var("R16",Imm(64)), Int(65536,64)), -Def(Tid(1_424, "%00000590"), Attrs([Attr("address","0x604"), -Attr("insn","ldr x17, [x16, #0xfb0]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(4016,64)),LittleEndian(),64)), -Def(Tid(1_430, "%00000596"), Attrs([Attr("address","0x608"), -Attr("insn","add x16, x16, #0xfb0")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(4016,64)))]), Jmps([Call(Tid(1_435, "%0000059b"), - Attrs([Attr("address","0x60C"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), -Sub(Tid(1_844, "@__do_global_dtors_aux"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x700")]), - "__do_global_dtors_aux", Args([Arg(Tid(1_900, "%0000076c"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("__do_global_dtors_aux_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(742, "@__do_global_dtors_aux"), - Attrs([Attr("address","0x700")]), Phis([]), Defs([Def(Tid(746, "%000002ea"), - Attrs([Attr("address","0x700"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("#3",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(18446744073709551584,64))), -Def(Tid(752, "%000002f0"), Attrs([Attr("address","0x700"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("#3",Imm(64)),Var("R29",Imm(64)),LittleEndian(),64)), -Def(Tid(758, "%000002f6"), Attrs([Attr("address","0x700"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("#3",Imm(64)),Int(8,64)),Var("R30",Imm(64)),LittleEndian(),64)), -Def(Tid(762, "%000002fa"), Attrs([Attr("address","0x700"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("R31",Imm(64)), -Var("#3",Imm(64))), Def(Tid(768, "%00000300"), - Attrs([Attr("address","0x704"), Attr("insn","mov x29, sp")]), - Var("R29",Imm(64)), Var("R31",Imm(64))), Def(Tid(776, "%00000308"), - Attrs([Attr("address","0x708"), Attr("insn","str x19, [sp, #0x10]")]), - Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(16,64)),Var("R19",Imm(64)),LittleEndian(),64)), -Def(Tid(781, "%0000030d"), Attrs([Attr("address","0x70C"), -Attr("insn","adrp x19, #69632")]), Var("R19",Imm(64)), Int(69632,64)), -Def(Tid(788, "%00000314"), Attrs([Attr("address","0x710"), -Attr("insn","ldrb w0, [x19, #0x10]")]), Var("R0",Imm(64)), -UNSIGNED(64,Load(Var("mem",Mem(64,8)),PLUS(Var("R19",Imm(64)),Int(16,64)),LittleEndian(),8)))]), -Jmps([Goto(Tid(795, "%0000031b"), Attrs([Attr("address","0x714"), -Attr("insn","cbnz w0, #0x28")]), - NEQ(Extract(31,0,Var("R0",Imm(64))),Int(0,32)), -Direct(Tid(793, "%00000319"))), Goto(Tid(1_888, "%00000760"), Attrs([]), - Int(1,1), Direct(Tid(1_098, "%0000044a")))])), Blk(Tid(1_098, "%0000044a"), - Attrs([Attr("address","0x718")]), Phis([]), -Defs([Def(Tid(1_101, "%0000044d"), Attrs([Attr("address","0x718"), -Attr("insn","adrp x0, #65536")]), Var("R0",Imm(64)), Int(65536,64)), -Def(Tid(1_108, "%00000454"), Attrs([Attr("address","0x71C"), -Attr("insn","ldr x0, [x0, #0xfe0]")]), Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(4064,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(1_114, "%0000045a"), Attrs([Attr("address","0x720"), -Attr("insn","cbz x0, #0x10")]), EQ(Var("R0",Imm(64)),Int(0,64)), -Direct(Tid(1_112, "%00000458"))), Goto(Tid(1_889, "%00000761"), Attrs([]), - Int(1,1), Direct(Tid(1_137, "%00000471")))])), Blk(Tid(1_137, "%00000471"), - Attrs([Attr("address","0x724")]), Phis([]), -Defs([Def(Tid(1_140, "%00000474"), Attrs([Attr("address","0x724"), -Attr("insn","adrp x0, #69632")]), Var("R0",Imm(64)), Int(69632,64)), -Def(Tid(1_147, "%0000047b"), Attrs([Attr("address","0x728"), -Attr("insn","ldr x0, [x0, #0x8]")]), Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(1_152, "%00000480"), Attrs([Attr("address","0x72C"), -Attr("insn","bl #-0x12c")]), Var("R30",Imm(64)), Int(1840,64))]), -Jmps([Call(Tid(1_155, "%00000483"), Attrs([Attr("address","0x72C"), -Attr("insn","bl #-0x12c")]), Int(1,1), -(Direct(Tid(1_843, "@__cxa_finalize")),Direct(Tid(1_112, "%00000458"))))])), -Blk(Tid(1_112, "%00000458"), Attrs([Attr("address","0x730")]), Phis([]), -Defs([Def(Tid(1_120, "%00000460"), Attrs([Attr("address","0x730"), -Attr("insn","bl #-0xa0")]), Var("R30",Imm(64)), Int(1844,64))]), -Jmps([Call(Tid(1_122, "%00000462"), Attrs([Attr("address","0x730"), -Attr("insn","bl #-0xa0")]), Int(1,1), -(Direct(Tid(1_857, "@deregister_tm_clones")),Direct(Tid(1_124, "%00000464"))))])), -Blk(Tid(1_124, "%00000464"), Attrs([Attr("address","0x734")]), Phis([]), -Defs([Def(Tid(1_127, "%00000467"), Attrs([Attr("address","0x734"), -Attr("insn","mov w0, #0x1")]), Var("R0",Imm(64)), Int(1,64)), -Def(Tid(1_135, "%0000046f"), Attrs([Attr("address","0x738"), -Attr("insn","strb w0, [x19, #0x10]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R19",Imm(64)),Int(16,64)),Extract(7,0,Var("R0",Imm(64))),LittleEndian(),8))]), -Jmps([Goto(Tid(1_890, "%00000762"), Attrs([]), Int(1,1), -Direct(Tid(793, "%00000319")))])), Blk(Tid(793, "%00000319"), - Attrs([Attr("address","0x73C")]), Phis([]), Defs([Def(Tid(803, "%00000323"), - Attrs([Attr("address","0x73C"), Attr("insn","ldr x19, [sp, #0x10]")]), - Var("R19",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(16,64)),LittleEndian(),64)), -Def(Tid(810, "%0000032a"), Attrs([Attr("address","0x740"), -Attr("insn","ldp x29, x30, [sp], #0x20")]), Var("R29",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(815, "%0000032f"), Attrs([Attr("address","0x740"), -Attr("insn","ldp x29, x30, [sp], #0x20")]), Var("R30",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(819, "%00000333"), Attrs([Attr("address","0x740"), -Attr("insn","ldp x29, x30, [sp], #0x20")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(32,64)))]), Jmps([Call(Tid(824, "%00000338"), - Attrs([Attr("address","0x744"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), Sub(Tid(1_848, "@__libc_start_main"), - Attrs([Attr("c.proto","signed (*)(signed (*)(signed , char** , char** );* main, signed , char** , \nvoid* auxv)"), -Attr("address","0x5F0"), Attr("stub","()")]), "__libc_start_main", - Args([Arg(Tid(1_901, "%0000076d"), - Attrs([Attr("c.layout","**[ : 64]"), -Attr("c.data","Top:u64 ptr ptr"), -Attr("c.type","signed (*)(signed , char** , char** );*")]), - Var("__libc_start_main_main",Imm(64)), Var("R0",Imm(64)), In()), -Arg(Tid(1_902, "%0000076e"), Attrs([Attr("c.layout","[signed : 32]"), -Attr("c.data","Top:u32"), Attr("c.type","signed")]), - Var("__libc_start_main_arg2",Imm(32)), LOW(32,Var("R1",Imm(64))), In()), -Arg(Tid(1_903, "%0000076f"), Attrs([Attr("c.layout","**[char : 8]"), -Attr("c.data","Top:u8 ptr ptr"), Attr("c.type","char**")]), - Var("__libc_start_main_arg3",Imm(64)), Var("R2",Imm(64)), Both()), -Arg(Tid(1_904, "%00000770"), Attrs([Attr("c.layout","*[ : 8]"), -Attr("c.data","{} ptr"), Attr("c.type","void*")]), - Var("__libc_start_main_auxv",Imm(64)), Var("R3",Imm(64)), Both()), -Arg(Tid(1_905, "%00000771"), Attrs([Attr("c.layout","[signed : 32]"), -Attr("c.data","Top:u32"), Attr("c.type","signed")]), - Var("__libc_start_main_result",Imm(32)), LOW(32,Var("R0",Imm(64))), -Out())]), Blks([Blk(Tid(575, "@__libc_start_main"), - Attrs([Attr("address","0x5F0")]), Phis([]), -Defs([Def(Tid(1_395, "%00000573"), Attrs([Attr("address","0x5F0"), -Attr("insn","adrp x16, #65536")]), Var("R16",Imm(64)), Int(65536,64)), -Def(Tid(1_402, "%0000057a"), Attrs([Attr("address","0x5F4"), -Attr("insn","ldr x17, [x16, #0xfa8]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(4008,64)),LittleEndian(),64)), -Def(Tid(1_408, "%00000580"), Attrs([Attr("address","0x5F8"), -Attr("insn","add x16, x16, #0xfa8")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(4008,64)))]), Jmps([Call(Tid(1_413, "%00000585"), - Attrs([Attr("address","0x5FC"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), Sub(Tid(1_849, "@_fini"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x7EC")]), - "_fini", Args([Arg(Tid(1_906, "%00000772"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("_fini_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(31, "@_fini"), - Attrs([Attr("address","0x7EC")]), Phis([]), Defs([Def(Tid(37, "%00000025"), - Attrs([Attr("address","0x7F0"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("#0",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(18446744073709551600,64))), -Def(Tid(43, "%0000002b"), Attrs([Attr("address","0x7F0"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("#0",Imm(64)),Var("R29",Imm(64)),LittleEndian(),64)), -Def(Tid(49, "%00000031"), Attrs([Attr("address","0x7F0"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("#0",Imm(64)),Int(8,64)),Var("R30",Imm(64)),LittleEndian(),64)), -Def(Tid(53, "%00000035"), Attrs([Attr("address","0x7F0"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("R31",Imm(64)), -Var("#0",Imm(64))), Def(Tid(59, "%0000003b"), Attrs([Attr("address","0x7F4"), -Attr("insn","mov x29, sp")]), Var("R29",Imm(64)), Var("R31",Imm(64))), -Def(Tid(66, "%00000042"), Attrs([Attr("address","0x7F8"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R29",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(71, "%00000047"), Attrs([Attr("address","0x7F8"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R30",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(75, "%0000004b"), Attrs([Attr("address","0x7F8"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(16,64)))]), Jmps([Call(Tid(80, "%00000050"), - Attrs([Attr("address","0x7FC"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), Sub(Tid(1_850, "@_init"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x5B8")]), - "_init", Args([Arg(Tid(1_907, "%00000773"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("_init_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(1_643, "@_init"), - Attrs([Attr("address","0x5B8")]), Phis([]), -Defs([Def(Tid(1_649, "%00000671"), Attrs([Attr("address","0x5BC"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("#6",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(18446744073709551600,64))), -Def(Tid(1_655, "%00000677"), Attrs([Attr("address","0x5BC"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("#6",Imm(64)),Var("R29",Imm(64)),LittleEndian(),64)), -Def(Tid(1_661, "%0000067d"), Attrs([Attr("address","0x5BC"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("#6",Imm(64)),Int(8,64)),Var("R30",Imm(64)),LittleEndian(),64)), -Def(Tid(1_665, "%00000681"), Attrs([Attr("address","0x5BC"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("R31",Imm(64)), -Var("#6",Imm(64))), Def(Tid(1_671, "%00000687"), - Attrs([Attr("address","0x5C0"), Attr("insn","mov x29, sp")]), - Var("R29",Imm(64)), Var("R31",Imm(64))), Def(Tid(1_676, "%0000068c"), - Attrs([Attr("address","0x5C4"), Attr("insn","bl #0xb0")]), - Var("R30",Imm(64)), Int(1480,64))]), Jmps([Call(Tid(1_678, "%0000068e"), - Attrs([Attr("address","0x5C4"), Attr("insn","bl #0xb0")]), Int(1,1), -(Direct(Tid(1_855, "@call_weak_fn")),Direct(Tid(1_680, "%00000690"))))])), -Blk(Tid(1_680, "%00000690"), Attrs([Attr("address","0x5C8")]), Phis([]), -Defs([Def(Tid(1_685, "%00000695"), Attrs([Attr("address","0x5C8"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R29",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(1_690, "%0000069a"), Attrs([Attr("address","0x5C8"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R30",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(1_694, "%0000069e"), Attrs([Attr("address","0x5C8"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(16,64)))]), Jmps([Call(Tid(1_699, "%000006a3"), - Attrs([Attr("address","0x5CC"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), Sub(Tid(1_851, "@_start"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x640"), -Attr("stub","()"), Attr("entry-point","()")]), "_start", - Args([Arg(Tid(1_908, "%00000774"), Attrs([Attr("c.layout","[signed : 32]"), -Attr("c.data","Top:u32"), Attr("c.type","signed")]), - Var("_start_result",Imm(32)), LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(512, "@_start"), Attrs([Attr("address","0x640")]), Phis([]), -Defs([Def(Tid(517, "%00000205"), Attrs([Attr("address","0x644"), -Attr("insn","mov x29, #0x0")]), Var("R29",Imm(64)), Int(0,64)), -Def(Tid(522, "%0000020a"), Attrs([Attr("address","0x648"), -Attr("insn","mov x30, #0x0")]), Var("R30",Imm(64)), Int(0,64)), -Def(Tid(528, "%00000210"), Attrs([Attr("address","0x64C"), -Attr("insn","mov x5, x0")]), Var("R5",Imm(64)), Var("R0",Imm(64))), -Def(Tid(535, "%00000217"), Attrs([Attr("address","0x650"), -Attr("insn","ldr x1, [sp]")]), Var("R1",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(541, "%0000021d"), Attrs([Attr("address","0x654"), -Attr("insn","add x2, sp, #0x8")]), Var("R2",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(8,64))), Def(Tid(547, "%00000223"), - Attrs([Attr("address","0x658"), Attr("insn","mov x6, sp")]), - Var("R6",Imm(64)), Var("R31",Imm(64))), Def(Tid(552, "%00000228"), - Attrs([Attr("address","0x65C"), Attr("insn","adrp x0, #65536")]), - Var("R0",Imm(64)), Int(65536,64)), Def(Tid(559, "%0000022f"), - Attrs([Attr("address","0x660"), Attr("insn","ldr x0, [x0, #0xff0]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(4080,64)),LittleEndian(),64)), -Def(Tid(564, "%00000234"), Attrs([Attr("address","0x664"), -Attr("insn","mov x3, #0x0")]), Var("R3",Imm(64)), Int(0,64)), -Def(Tid(569, "%00000239"), Attrs([Attr("address","0x668"), -Attr("insn","mov x4, #0x0")]), Var("R4",Imm(64)), Int(0,64)), -Def(Tid(574, "%0000023e"), Attrs([Attr("address","0x66C"), -Attr("insn","bl #-0x7c")]), Var("R30",Imm(64)), Int(1648,64))]), -Jmps([Call(Tid(577, "%00000241"), Attrs([Attr("address","0x66C"), -Attr("insn","bl #-0x7c")]), Int(1,1), -(Direct(Tid(1_848, "@__libc_start_main")),Direct(Tid(579, "%00000243"))))])), -Blk(Tid(579, "%00000243"), Attrs([Attr("address","0x670")]), Phis([]), -Defs([Def(Tid(582, "%00000246"), Attrs([Attr("address","0x670"), -Attr("insn","bl #-0x50")]), Var("R30",Imm(64)), Int(1652,64))]), -Jmps([Call(Tid(585, "%00000249"), Attrs([Attr("address","0x670"), -Attr("insn","bl #-0x50")]), Int(1,1), -(Direct(Tid(1_854, "@abort")),Direct(Tid(1_891, "%00000763"))))])), -Blk(Tid(1_891, "%00000763"), Attrs([]), Phis([]), Defs([]), -Jmps([Call(Tid(1_892, "%00000764"), Attrs([]), Int(1,1), -(Direct(Tid(1_855, "@call_weak_fn")),))]))])), Sub(Tid(1_854, "@abort"), - Attrs([Attr("noreturn","()"), Attr("c.proto","void (*)(void)"), -Attr("address","0x620"), Attr("stub","()")]), "abort", Args([]), -Blks([Blk(Tid(583, "@abort"), Attrs([Attr("address","0x620")]), Phis([]), -Defs([Def(Tid(1_461, "%000005b5"), Attrs([Attr("address","0x620"), -Attr("insn","adrp x16, #65536")]), Var("R16",Imm(64)), Int(65536,64)), -Def(Tid(1_468, "%000005bc"), Attrs([Attr("address","0x624"), -Attr("insn","ldr x17, [x16, #0xfc0]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(4032,64)),LittleEndian(),64)), -Def(Tid(1_474, "%000005c2"), Attrs([Attr("address","0x628"), -Attr("insn","add x16, x16, #0xfc0")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(4032,64)))]), Jmps([Call(Tid(1_479, "%000005c7"), - Attrs([Attr("address","0x62C"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), Sub(Tid(1_855, "@call_weak_fn"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x674")]), - "call_weak_fn", Args([Arg(Tid(1_909, "%00000775"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("call_weak_fn_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(587, "@call_weak_fn"), - Attrs([Attr("address","0x674")]), Phis([]), Defs([Def(Tid(590, "%0000024e"), - Attrs([Attr("address","0x674"), Attr("insn","adrp x0, #65536")]), - Var("R0",Imm(64)), Int(65536,64)), Def(Tid(597, "%00000255"), - Attrs([Attr("address","0x678"), Attr("insn","ldr x0, [x0, #0xfe8]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(4072,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(603, "%0000025b"), Attrs([Attr("address","0x67C"), -Attr("insn","cbz x0, #0x8")]), EQ(Var("R0",Imm(64)),Int(0,64)), -Direct(Tid(601, "%00000259"))), Goto(Tid(1_893, "%00000765"), Attrs([]), - Int(1,1), Direct(Tid(1_217, "%000004c1")))])), Blk(Tid(601, "%00000259"), - Attrs([Attr("address","0x684")]), Phis([]), Defs([]), -Jmps([Call(Tid(609, "%00000261"), Attrs([Attr("address","0x684"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))])), -Blk(Tid(1_217, "%000004c1"), Attrs([Attr("address","0x680")]), Phis([]), -Defs([]), Jmps([Goto(Tid(1_220, "%000004c4"), Attrs([Attr("address","0x680"), -Attr("insn","b #-0x70")]), Int(1,1), -Direct(Tid(1_218, "@__gmon_start__")))])), Blk(Tid(1_218, "@__gmon_start__"), - Attrs([Attr("address","0x610")]), Phis([]), -Defs([Def(Tid(1_439, "%0000059f"), Attrs([Attr("address","0x610"), -Attr("insn","adrp x16, #65536")]), Var("R16",Imm(64)), Int(65536,64)), -Def(Tid(1_446, "%000005a6"), Attrs([Attr("address","0x614"), -Attr("insn","ldr x17, [x16, #0xfb8]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(4024,64)),LittleEndian(),64)), -Def(Tid(1_452, "%000005ac"), Attrs([Attr("address","0x618"), -Attr("insn","add x16, x16, #0xfb8")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(4024,64)))]), Jmps([Call(Tid(1_457, "%000005b1"), - Attrs([Attr("address","0x61C"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), -Sub(Tid(1_857, "@deregister_tm_clones"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x690")]), - "deregister_tm_clones", Args([Arg(Tid(1_910, "%00000776"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("deregister_tm_clones_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(615, "@deregister_tm_clones"), - Attrs([Attr("address","0x690")]), Phis([]), Defs([Def(Tid(618, "%0000026a"), - Attrs([Attr("address","0x690"), Attr("insn","adrp x0, #69632")]), - Var("R0",Imm(64)), Int(69632,64)), Def(Tid(624, "%00000270"), - Attrs([Attr("address","0x694"), Attr("insn","add x0, x0, #0x10")]), - Var("R0",Imm(64)), PLUS(Var("R0",Imm(64)),Int(16,64))), -Def(Tid(629, "%00000275"), Attrs([Attr("address","0x698"), -Attr("insn","adrp x1, #69632")]), Var("R1",Imm(64)), Int(69632,64)), -Def(Tid(635, "%0000027b"), Attrs([Attr("address","0x69C"), -Attr("insn","add x1, x1, #0x10")]), Var("R1",Imm(64)), -PLUS(Var("R1",Imm(64)),Int(16,64))), Def(Tid(641, "%00000281"), - Attrs([Attr("address","0x6A0"), Attr("insn","cmp x1, x0")]), - Var("#1",Imm(64)), NOT(Var("R0",Imm(64)))), Def(Tid(646, "%00000286"), - Attrs([Attr("address","0x6A0"), Attr("insn","cmp x1, x0")]), - Var("#2",Imm(64)), PLUS(Var("R1",Imm(64)),NOT(Var("R0",Imm(64))))), -Def(Tid(652, "%0000028c"), Attrs([Attr("address","0x6A0"), -Attr("insn","cmp x1, x0")]), Var("VF",Imm(1)), -NEQ(SIGNED(65,PLUS(Var("#2",Imm(64)),Int(1,64))),PLUS(PLUS(SIGNED(65,Var("R1",Imm(64))),SIGNED(65,Var("#1",Imm(64)))),Int(1,65)))), -Def(Tid(658, "%00000292"), Attrs([Attr("address","0x6A0"), -Attr("insn","cmp x1, x0")]), Var("CF",Imm(1)), -NEQ(UNSIGNED(65,PLUS(Var("#2",Imm(64)),Int(1,64))),PLUS(PLUS(UNSIGNED(65,Var("R1",Imm(64))),UNSIGNED(65,Var("#1",Imm(64)))),Int(1,65)))), -Def(Tid(662, "%00000296"), Attrs([Attr("address","0x6A0"), -Attr("insn","cmp x1, x0")]), Var("ZF",Imm(1)), -EQ(PLUS(Var("#2",Imm(64)),Int(1,64)),Int(0,64))), Def(Tid(666, "%0000029a"), - Attrs([Attr("address","0x6A0"), Attr("insn","cmp x1, x0")]), - Var("NF",Imm(1)), Extract(63,63,PLUS(Var("#2",Imm(64)),Int(1,64))))]), -Jmps([Goto(Tid(672, "%000002a0"), Attrs([Attr("address","0x6A4"), -Attr("insn","b.eq #0x18")]), EQ(Var("ZF",Imm(1)),Int(1,1)), -Direct(Tid(670, "%0000029e"))), Goto(Tid(1_894, "%00000766"), Attrs([]), - Int(1,1), Direct(Tid(1_187, "%000004a3")))])), Blk(Tid(1_187, "%000004a3"), - Attrs([Attr("address","0x6A8")]), Phis([]), -Defs([Def(Tid(1_190, "%000004a6"), Attrs([Attr("address","0x6A8"), -Attr("insn","adrp x1, #65536")]), Var("R1",Imm(64)), Int(65536,64)), -Def(Tid(1_197, "%000004ad"), Attrs([Attr("address","0x6AC"), -Attr("insn","ldr x1, [x1, #0xfd8]")]), Var("R1",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R1",Imm(64)),Int(4056,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(1_202, "%000004b2"), Attrs([Attr("address","0x6B0"), -Attr("insn","cbz x1, #0xc")]), EQ(Var("R1",Imm(64)),Int(0,64)), -Direct(Tid(670, "%0000029e"))), Goto(Tid(1_895, "%00000767"), Attrs([]), - Int(1,1), Direct(Tid(1_206, "%000004b6")))])), Blk(Tid(670, "%0000029e"), - Attrs([Attr("address","0x6BC")]), Phis([]), Defs([]), -Jmps([Call(Tid(678, "%000002a6"), Attrs([Attr("address","0x6BC"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))])), -Blk(Tid(1_206, "%000004b6"), Attrs([Attr("address","0x6B4")]), Phis([]), -Defs([Def(Tid(1_210, "%000004ba"), Attrs([Attr("address","0x6B4"), -Attr("insn","mov x16, x1")]), Var("R16",Imm(64)), Var("R1",Imm(64)))]), -Jmps([Call(Tid(1_215, "%000004bf"), Attrs([Attr("address","0x6B8"), -Attr("insn","br x16")]), Int(1,1), (Indirect(Var("R16",Imm(64))),))]))])), -Sub(Tid(1_860, "@frame_dummy"), Attrs([Attr("c.proto","signed (*)(void)"), -Attr("address","0x750")]), "frame_dummy", Args([Arg(Tid(1_911, "%00000777"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("frame_dummy_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(830, "@frame_dummy"), - Attrs([Attr("address","0x750")]), Phis([]), Defs([]), -Jmps([Call(Tid(832, "%00000340"), Attrs([Attr("address","0x750"), -Attr("insn","b #-0x90")]), Int(1,1), -(Direct(Tid(1_864, "@register_tm_clones")),))]))])), -Sub(Tid(1_861, "@get_two"), Attrs([Attr("c.proto","signed (*)(void)"), -Attr("address","0x754")]), "get_two", Args([Arg(Tid(1_912, "%00000778"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("get_two_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(834, "@get_two"), - Attrs([Attr("address","0x754")]), Phis([]), Defs([Def(Tid(838, "%00000346"), - Attrs([Attr("address","0x754"), Attr("insn","sub sp, sp, #0x10")]), - Var("R31",Imm(64)), PLUS(Var("R31",Imm(64)),Int(18446744073709551600,64))), -Def(Tid(846, "%0000034e"), Attrs([Attr("address","0x758"), -Attr("insn","strb w0, [sp, #0xf]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(15,64)),Extract(7,0,Var("R0",Imm(64))),LittleEndian(),8)), -Def(Tid(854, "%00000356"), Attrs([Attr("address","0x75C"), -Attr("insn","str w1, [sp, #0x8]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),Extract(31,0,Var("R1",Imm(64))),LittleEndian(),32)), -Def(Tid(862, "%0000035e"), Attrs([Attr("address","0x760"), -Attr("insn","str x2, [sp]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("R31",Imm(64)),Var("R2",Imm(64)),LittleEndian(),64)), -Def(Tid(869, "%00000365"), Attrs([Attr("address","0x764"), -Attr("insn","ldrb w1, [sp, #0xf]")]), Var("R1",Imm(64)), -UNSIGNED(64,Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(15,64)),LittleEndian(),8))), -Def(Tid(876, "%0000036c"), Attrs([Attr("address","0x768"), -Attr("insn","ldr w0, [sp, #0x8]")]), Var("R0",Imm(64)), -UNSIGNED(64,Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),LittleEndian(),32))), -Def(Tid(883, "%00000373"), Attrs([Attr("address","0x76C"), -Attr("insn","add w0, w1, w0")]), Var("R0",Imm(64)), -UNSIGNED(64,PLUS(Extract(31,0,Var("R1",Imm(64))),Extract(31,0,Var("R0",Imm(64)))))), -Def(Tid(889, "%00000379"), Attrs([Attr("address","0x770"), -Attr("insn","mov w1, w0")]), Var("R1",Imm(64)), -UNSIGNED(64,Extract(31,0,Var("R0",Imm(64))))), Def(Tid(896, "%00000380"), - Attrs([Attr("address","0x774"), Attr("insn","ldr x0, [sp]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(903, "%00000387"), Attrs([Attr("address","0x778"), -Attr("insn","add w0, w1, w0")]), Var("R0",Imm(64)), -UNSIGNED(64,PLUS(Extract(31,0,Var("R1",Imm(64))),Extract(31,0,Var("R0",Imm(64)))))), -Def(Tid(909, "%0000038d"), Attrs([Attr("address","0x77C"), -Attr("insn","add sp, sp, #0x10")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(16,64)))]), Jmps([Call(Tid(914, "%00000392"), - Attrs([Attr("address","0x780"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), Sub(Tid(1_862, "@main"), - Attrs([Attr("c.proto","signed (*)(signed argc, const char** argv)"), -Attr("address","0x784")]), "main", Args([Arg(Tid(1_913, "%00000779"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("main_argc",Imm(32)), -LOW(32,Var("R0",Imm(64))), In()), Arg(Tid(1_914, "%0000077a"), - Attrs([Attr("c.layout","**[char : 8]"), Attr("c.data","Top:u8 ptr ptr"), -Attr("c.type"," const char**")]), Var("main_argv",Imm(64)), -Var("R1",Imm(64)), Both()), Arg(Tid(1_915, "%0000077b"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("main_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(916, "@main"), - Attrs([Attr("address","0x784")]), Phis([]), Defs([Def(Tid(920, "%00000398"), - Attrs([Attr("address","0x784"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("#4",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(18446744073709551600,64))), -Def(Tid(926, "%0000039e"), Attrs([Attr("address","0x784"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("#4",Imm(64)),Var("R29",Imm(64)),LittleEndian(),64)), -Def(Tid(932, "%000003a4"), Attrs([Attr("address","0x784"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("#4",Imm(64)),Int(8,64)),Var("R30",Imm(64)),LittleEndian(),64)), -Def(Tid(936, "%000003a8"), Attrs([Attr("address","0x784"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("R31",Imm(64)), -Var("#4",Imm(64))), Def(Tid(942, "%000003ae"), - Attrs([Attr("address","0x788"), Attr("insn","mov x29, sp")]), - Var("R29",Imm(64)), Var("R31",Imm(64))), Def(Tid(947, "%000003b3"), - Attrs([Attr("address","0x78C"), Attr("insn","adrp x0, #69632")]), - Var("R0",Imm(64)), Int(69632,64)), Def(Tid(953, "%000003b9"), - Attrs([Attr("address","0x790"), Attr("insn","add x0, x0, #0x14")]), - Var("R0",Imm(64)), PLUS(Var("R0",Imm(64)),Int(20,64))), -Def(Tid(958, "%000003be"), Attrs([Attr("address","0x794"), -Attr("insn","mov w1, #0x1")]), Var("R1",Imm(64)), Int(1,64)), -Def(Tid(966, "%000003c6"), Attrs([Attr("address","0x798"), -Attr("insn","str w1, [x0]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("R0",Imm(64)),Extract(31,0,Var("R1",Imm(64))),LittleEndian(),32)), -Def(Tid(971, "%000003cb"), Attrs([Attr("address","0x79C"), -Attr("insn","mov x2, #0xe400")]), Var("R2",Imm(64)), Int(58368,64)), -Def(Tid(978, "%000003d2"), Attrs([Attr("address","0x7A0"), -Attr("insn","movk x2, #0x540b, lsl #16")]), Var("R2",Imm(64)), -Concat(Extract(63,32,Var("R2",Imm(64))),Concat(Int(21515,16),Extract(15,0,Var("R2",Imm(64)))))), -Def(Tid(985, "%000003d9"), Attrs([Attr("address","0x7A4"), -Attr("insn","movk x2, #0x2, lsl #32")]), Var("R2",Imm(64)), -Concat(Extract(63,48,Var("R2",Imm(64))),Concat(Int(2,16),Extract(31,0,Var("R2",Imm(64)))))), -Def(Tid(990, "%000003de"), Attrs([Attr("address","0x7A8"), -Attr("insn","mov w1, #0xa")]), Var("R1",Imm(64)), Int(10,64)), -Def(Tid(995, "%000003e3"), Attrs([Attr("address","0x7AC"), -Attr("insn","mov w0, #0x61")]), Var("R0",Imm(64)), Int(97,64)), -Def(Tid(1_000, "%000003e8"), Attrs([Attr("address","0x7B0"), -Attr("insn","bl #-0x5c")]), Var("R30",Imm(64)), Int(1972,64))]), -Jmps([Call(Tid(1_002, "%000003ea"), Attrs([Attr("address","0x7B0"), -Attr("insn","bl #-0x5c")]), Int(1,1), -(Direct(Tid(1_861, "@get_two")),Direct(Tid(1_004, "%000003ec"))))])), -Blk(Tid(1_004, "%000003ec"), Attrs([Attr("address","0x7B4")]), Phis([]), -Defs([Def(Tid(1_008, "%000003f0"), Attrs([Attr("address","0x7B4"), -Attr("insn","mov w1, w0")]), Var("R1",Imm(64)), -UNSIGNED(64,Extract(31,0,Var("R0",Imm(64))))), Def(Tid(1_013, "%000003f5"), - Attrs([Attr("address","0x7B8"), Attr("insn","adrp x0, #69632")]), - Var("R0",Imm(64)), Int(69632,64)), Def(Tid(1_019, "%000003fb"), - Attrs([Attr("address","0x7BC"), Attr("insn","add x0, x0, #0x18")]), - Var("R0",Imm(64)), PLUS(Var("R0",Imm(64)),Int(24,64))), -Def(Tid(1_027, "%00000403"), Attrs([Attr("address","0x7C0"), -Attr("insn","str w1, [x0]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("R0",Imm(64)),Extract(31,0,Var("R1",Imm(64))),LittleEndian(),32)), -Def(Tid(1_032, "%00000408"), Attrs([Attr("address","0x7C4"), -Attr("insn","adrp x0, #69632")]), Var("R0",Imm(64)), Int(69632,64)), -Def(Tid(1_038, "%0000040e"), Attrs([Attr("address","0x7C8"), -Attr("insn","add x0, x0, #0x18")]), Var("R0",Imm(64)), -PLUS(Var("R0",Imm(64)),Int(24,64))), Def(Tid(1_045, "%00000415"), - Attrs([Attr("address","0x7CC"), Attr("insn","ldr w0, [x0]")]), - Var("R0",Imm(64)), -UNSIGNED(64,Load(Var("mem",Mem(64,8)),Var("R0",Imm(64)),LittleEndian(),32))), -Def(Tid(1_051, "%0000041b"), Attrs([Attr("address","0x7D0"), -Attr("insn","mov w1, w0")]), Var("R1",Imm(64)), -UNSIGNED(64,Extract(31,0,Var("R0",Imm(64))))), Def(Tid(1_056, "%00000420"), - Attrs([Attr("address","0x7D4"), Attr("insn","adrp x0, #0")]), - Var("R0",Imm(64)), Int(0,64)), Def(Tid(1_062, "%00000426"), - Attrs([Attr("address","0x7D8"), Attr("insn","add x0, x0, #0x808")]), - Var("R0",Imm(64)), PLUS(Var("R0",Imm(64)),Int(2056,64))), -Def(Tid(1_067, "%0000042b"), Attrs([Attr("address","0x7DC"), -Attr("insn","bl #-0x1ac")]), Var("R30",Imm(64)), Int(2016,64))]), -Jmps([Call(Tid(1_070, "%0000042e"), Attrs([Attr("address","0x7DC"), -Attr("insn","bl #-0x1ac")]), Int(1,1), -(Direct(Tid(1_863, "@printf")),Direct(Tid(1_072, "%00000430"))))])), -Blk(Tid(1_072, "%00000430"), Attrs([Attr("address","0x7E0")]), Phis([]), -Defs([Def(Tid(1_075, "%00000433"), Attrs([Attr("address","0x7E0"), -Attr("insn","mov w0, #0x0")]), Var("R0",Imm(64)), Int(0,64)), -Def(Tid(1_082, "%0000043a"), Attrs([Attr("address","0x7E4"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R29",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(1_087, "%0000043f"), Attrs([Attr("address","0x7E4"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R30",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(1_091, "%00000443"), Attrs([Attr("address","0x7E4"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(16,64)))]), Jmps([Call(Tid(1_096, "%00000448"), - Attrs([Attr("address","0x7E8"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), Sub(Tid(1_863, "@printf"), - Attrs([Attr("c.proto","signed (*)( const char restrict * format, ...)"), -Attr("address","0x630"), Attr("stub","()")]), "printf", - Args([Arg(Tid(1_916, "%0000077c"), Attrs([Attr("format","\"printf\""), -Attr("c.layout","*[char : 8]"), Attr("c.data","Top:u8 ptr"), -Attr("c.type"," const char restrict *")]), Var("printf_format",Imm(64)), -Var("R0",Imm(64)), In()), Arg(Tid(1_917, "%0000077d"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("printf_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(1_068, "@printf"), - Attrs([Attr("address","0x630")]), Phis([]), -Defs([Def(Tid(1_483, "%000005cb"), Attrs([Attr("address","0x630"), -Attr("insn","adrp x16, #65536")]), Var("R16",Imm(64)), Int(65536,64)), -Def(Tid(1_490, "%000005d2"), Attrs([Attr("address","0x634"), -Attr("insn","ldr x17, [x16, #0xfc8]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(4040,64)),LittleEndian(),64)), -Def(Tid(1_496, "%000005d8"), Attrs([Attr("address","0x638"), -Attr("insn","add x16, x16, #0xfc8")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(4040,64)))]), Jmps([Call(Tid(1_501, "%000005dd"), - Attrs([Attr("address","0x63C"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), -Sub(Tid(1_864, "@register_tm_clones"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x6C0")]), - "register_tm_clones", Args([Arg(Tid(1_918, "%0000077e"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("register_tm_clones_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(680, "@register_tm_clones"), Attrs([Attr("address","0x6C0")]), - Phis([]), Defs([Def(Tid(683, "%000002ab"), Attrs([Attr("address","0x6C0"), -Attr("insn","adrp x0, #69632")]), Var("R0",Imm(64)), Int(69632,64)), -Def(Tid(689, "%000002b1"), Attrs([Attr("address","0x6C4"), -Attr("insn","add x0, x0, #0x10")]), Var("R0",Imm(64)), -PLUS(Var("R0",Imm(64)),Int(16,64))), Def(Tid(694, "%000002b6"), - Attrs([Attr("address","0x6C8"), Attr("insn","adrp x1, #69632")]), - Var("R1",Imm(64)), Int(69632,64)), Def(Tid(700, "%000002bc"), - Attrs([Attr("address","0x6CC"), Attr("insn","add x1, x1, #0x10")]), - Var("R1",Imm(64)), PLUS(Var("R1",Imm(64)),Int(16,64))), -Def(Tid(707, "%000002c3"), Attrs([Attr("address","0x6D0"), -Attr("insn","sub x1, x1, x0")]), Var("R1",Imm(64)), -PLUS(PLUS(Var("R1",Imm(64)),NOT(Var("R0",Imm(64)))),Int(1,64))), -Def(Tid(713, "%000002c9"), Attrs([Attr("address","0x6D4"), -Attr("insn","lsr x2, x1, #63")]), Var("R2",Imm(64)), -Concat(Int(0,63),Extract(63,63,Var("R1",Imm(64))))), -Def(Tid(720, "%000002d0"), Attrs([Attr("address","0x6D8"), -Attr("insn","add x1, x2, x1, asr #3")]), Var("R1",Imm(64)), -PLUS(Var("R2",Imm(64)),ARSHIFT(Var("R1",Imm(64)),Int(3,3)))), -Def(Tid(726, "%000002d6"), Attrs([Attr("address","0x6DC"), -Attr("insn","asr x1, x1, #1")]), Var("R1",Imm(64)), -SIGNED(64,Extract(63,1,Var("R1",Imm(64)))))]), -Jmps([Goto(Tid(732, "%000002dc"), Attrs([Attr("address","0x6E0"), -Attr("insn","cbz x1, #0x18")]), EQ(Var("R1",Imm(64)),Int(0,64)), -Direct(Tid(730, "%000002da"))), Goto(Tid(1_896, "%00000768"), Attrs([]), - Int(1,1), Direct(Tid(1_157, "%00000485")))])), Blk(Tid(1_157, "%00000485"), - Attrs([Attr("address","0x6E4")]), Phis([]), -Defs([Def(Tid(1_160, "%00000488"), Attrs([Attr("address","0x6E4"), -Attr("insn","adrp x2, #65536")]), Var("R2",Imm(64)), Int(65536,64)), -Def(Tid(1_167, "%0000048f"), Attrs([Attr("address","0x6E8"), -Attr("insn","ldr x2, [x2, #0xff8]")]), Var("R2",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R2",Imm(64)),Int(4088,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(1_172, "%00000494"), Attrs([Attr("address","0x6EC"), -Attr("insn","cbz x2, #0xc")]), EQ(Var("R2",Imm(64)),Int(0,64)), -Direct(Tid(730, "%000002da"))), Goto(Tid(1_897, "%00000769"), Attrs([]), - Int(1,1), Direct(Tid(1_176, "%00000498")))])), Blk(Tid(730, "%000002da"), - Attrs([Attr("address","0x6F8")]), Phis([]), Defs([]), -Jmps([Call(Tid(738, "%000002e2"), Attrs([Attr("address","0x6F8"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))])), -Blk(Tid(1_176, "%00000498"), Attrs([Attr("address","0x6F0")]), Phis([]), -Defs([Def(Tid(1_180, "%0000049c"), Attrs([Attr("address","0x6F0"), -Attr("insn","mov x16, x2")]), Var("R16",Imm(64)), Var("R2",Imm(64)))]), -Jmps([Call(Tid(1_185, "%000004a1"), Attrs([Attr("address","0x6F4"), -Attr("insn","br x16")]), Int(1,1), -(Indirect(Var("R16",Imm(64))),))]))]))]))) \ No newline at end of file diff --git a/src/test/correct/function1/gcc/function1.bir b/src/test/correct/function1/gcc/function1.bir deleted file mode 100644 index 85fa1c1f3..000000000 --- a/src/test/correct/function1/gcc/function1.bir +++ /dev/null @@ -1,286 +0,0 @@ -0000076a: program -00000733: sub __cxa_finalize(__cxa_finalize_result) -0000076b: __cxa_finalize_result :: out u32 = low:32[R0] - -00000481: -00000589: R16 := 0x10000 -00000590: R17 := mem[R16 + 0xFB0, el]:u64 -00000596: R16 := R16 + 0xFB0 -0000059b: call R17 with noreturn - -00000734: sub __do_global_dtors_aux(__do_global_dtors_aux_result) -0000076c: __do_global_dtors_aux_result :: out u32 = low:32[R0] - -000002e6: -000002ea: #3 := R31 - 0x20 -000002f0: mem := mem with [#3, el]:u64 <- R29 -000002f6: mem := mem with [#3 + 8, el]:u64 <- R30 -000002fa: R31 := #3 -00000300: R29 := R31 -00000308: mem := mem with [R31 + 0x10, el]:u64 <- R19 -0000030d: R19 := 0x11000 -00000314: R0 := pad:64[mem[R19 + 0x10]] -0000031b: when 31:0[R0] <> 0 goto %00000319 -00000760: goto %0000044a - -0000044a: -0000044d: R0 := 0x10000 -00000454: R0 := mem[R0 + 0xFE0, el]:u64 -0000045a: when R0 = 0 goto %00000458 -00000761: goto %00000471 - -00000471: -00000474: R0 := 0x11000 -0000047b: R0 := mem[R0 + 8, el]:u64 -00000480: R30 := 0x730 -00000483: call @__cxa_finalize with return %00000458 - -00000458: -00000460: R30 := 0x734 -00000462: call @deregister_tm_clones with return %00000464 - -00000464: -00000467: R0 := 1 -0000046f: mem := mem with [R19 + 0x10] <- 7:0[R0] -00000762: goto %00000319 - -00000319: -00000323: R19 := mem[R31 + 0x10, el]:u64 -0000032a: R29 := mem[R31, el]:u64 -0000032f: R30 := mem[R31 + 8, el]:u64 -00000333: R31 := R31 + 0x20 -00000338: call R30 with noreturn - -00000738: sub __libc_start_main(__libc_start_main_main, __libc_start_main_arg2, __libc_start_main_arg3, __libc_start_main_auxv, __libc_start_main_result) -0000076d: __libc_start_main_main :: in u64 = R0 -0000076e: __libc_start_main_arg2 :: in u32 = low:32[R1] -0000076f: __libc_start_main_arg3 :: in out u64 = R2 -00000770: __libc_start_main_auxv :: in out u64 = R3 -00000771: __libc_start_main_result :: out u32 = low:32[R0] - -0000023f: -00000573: R16 := 0x10000 -0000057a: R17 := mem[R16 + 0xFA8, el]:u64 -00000580: R16 := R16 + 0xFA8 -00000585: call R17 with noreturn - -00000739: sub _fini(_fini_result) -00000772: _fini_result :: out u32 = low:32[R0] - -0000001f: -00000025: #0 := R31 - 0x10 -0000002b: mem := mem with [#0, el]:u64 <- R29 -00000031: mem := mem with [#0 + 8, el]:u64 <- R30 -00000035: R31 := #0 -0000003b: R29 := R31 -00000042: R29 := mem[R31, el]:u64 -00000047: R30 := mem[R31 + 8, el]:u64 -0000004b: R31 := R31 + 0x10 -00000050: call R30 with noreturn - -0000073a: sub _init(_init_result) -00000773: _init_result :: out u32 = low:32[R0] - -0000066b: -00000671: #6 := R31 - 0x10 -00000677: mem := mem with [#6, el]:u64 <- R29 -0000067d: mem := mem with [#6 + 8, el]:u64 <- R30 -00000681: R31 := #6 -00000687: R29 := R31 -0000068c: R30 := 0x5C8 -0000068e: call @call_weak_fn with return %00000690 - -00000690: -00000695: R29 := mem[R31, el]:u64 -0000069a: R30 := mem[R31 + 8, el]:u64 -0000069e: R31 := R31 + 0x10 -000006a3: call R30 with noreturn - -0000073b: sub _start(_start_result) -00000774: _start_result :: out u32 = low:32[R0] - -00000200: -00000205: R29 := 0 -0000020a: R30 := 0 -00000210: R5 := R0 -00000217: R1 := mem[R31, el]:u64 -0000021d: R2 := R31 + 8 -00000223: R6 := R31 -00000228: R0 := 0x10000 -0000022f: R0 := mem[R0 + 0xFF0, el]:u64 -00000234: R3 := 0 -00000239: R4 := 0 -0000023e: R30 := 0x670 -00000241: call @__libc_start_main with return %00000243 - -00000243: -00000246: R30 := 0x674 -00000249: call @abort with return %00000763 - -00000763: -00000764: call @call_weak_fn with noreturn - -0000073e: sub abort() - - -00000247: -000005b5: R16 := 0x10000 -000005bc: R17 := mem[R16 + 0xFC0, el]:u64 -000005c2: R16 := R16 + 0xFC0 -000005c7: call R17 with noreturn - -0000073f: sub call_weak_fn(call_weak_fn_result) -00000775: call_weak_fn_result :: out u32 = low:32[R0] - -0000024b: -0000024e: R0 := 0x10000 -00000255: R0 := mem[R0 + 0xFE8, el]:u64 -0000025b: when R0 = 0 goto %00000259 -00000765: goto %000004c1 - -00000259: -00000261: call R30 with noreturn - -000004c1: -000004c4: goto @__gmon_start__ - -000004c2: -0000059f: R16 := 0x10000 -000005a6: R17 := mem[R16 + 0xFB8, el]:u64 -000005ac: R16 := R16 + 0xFB8 -000005b1: call R17 with noreturn - -00000741: sub deregister_tm_clones(deregister_tm_clones_result) -00000776: deregister_tm_clones_result :: out u32 = low:32[R0] - -00000267: -0000026a: R0 := 0x11000 -00000270: R0 := R0 + 0x10 -00000275: R1 := 0x11000 -0000027b: R1 := R1 + 0x10 -00000281: #1 := ~R0 -00000286: #2 := R1 + ~R0 -0000028c: VF := extend:65[#2 + 1] <> extend:65[R1] + extend:65[#1] + 1 -00000292: CF := pad:65[#2 + 1] <> pad:65[R1] + pad:65[#1] + 1 -00000296: ZF := #2 + 1 = 0 -0000029a: NF := 63:63[#2 + 1] -000002a0: when ZF goto %0000029e -00000766: goto %000004a3 - -000004a3: -000004a6: R1 := 0x10000 -000004ad: R1 := mem[R1 + 0xFD8, el]:u64 -000004b2: when R1 = 0 goto %0000029e -00000767: goto %000004b6 - -0000029e: -000002a6: call R30 with noreturn - -000004b6: -000004ba: R16 := R1 -000004bf: call R16 with noreturn - -00000744: sub frame_dummy(frame_dummy_result) -00000777: frame_dummy_result :: out u32 = low:32[R0] - -0000033e: -00000340: call @register_tm_clones with noreturn - -00000745: sub get_two(get_two_result) -00000778: get_two_result :: out u32 = low:32[R0] - -00000342: -00000346: R31 := R31 - 0x10 -0000034e: mem := mem with [R31 + 0xF] <- 7:0[R0] -00000356: mem := mem with [R31 + 8, el]:u32 <- 31:0[R1] -0000035e: mem := mem with [R31, el]:u64 <- R2 -00000365: R1 := pad:64[mem[R31 + 0xF]] -0000036c: R0 := pad:64[mem[R31 + 8, el]:u32] -00000373: R0 := pad:64[31:0[R1] + 31:0[R0]] -00000379: R1 := pad:64[31:0[R0]] -00000380: R0 := mem[R31, el]:u64 -00000387: R0 := pad:64[31:0[R1] + 31:0[R0]] -0000038d: R31 := R31 + 0x10 -00000392: call R30 with noreturn - -00000746: sub main(main_argc, main_argv, main_result) -00000779: main_argc :: in u32 = low:32[R0] -0000077a: main_argv :: in out u64 = R1 -0000077b: main_result :: out u32 = low:32[R0] - -00000394: -00000398: #4 := R31 - 0x10 -0000039e: mem := mem with [#4, el]:u64 <- R29 -000003a4: mem := mem with [#4 + 8, el]:u64 <- R30 -000003a8: R31 := #4 -000003ae: R29 := R31 -000003b3: R0 := 0x11000 -000003b9: R0 := R0 + 0x14 -000003be: R1 := 1 -000003c6: mem := mem with [R0, el]:u32 <- 31:0[R1] -000003cb: R2 := 0xE400 -000003d2: R2 := 63:32[R2].0x540B.15:0[R2] -000003d9: R2 := 63:48[R2].2.31:0[R2] -000003de: R1 := 0xA -000003e3: R0 := 0x61 -000003e8: R30 := 0x7B4 -000003ea: call @get_two with return %000003ec - -000003ec: -000003f0: R1 := pad:64[31:0[R0]] -000003f5: R0 := 0x11000 -000003fb: R0 := R0 + 0x18 -00000403: mem := mem with [R0, el]:u32 <- 31:0[R1] -00000408: R0 := 0x11000 -0000040e: R0 := R0 + 0x18 -00000415: R0 := pad:64[mem[R0, el]:u32] -0000041b: R1 := pad:64[31:0[R0]] -00000420: R0 := 0 -00000426: R0 := R0 + 0x808 -0000042b: R30 := 0x7E0 -0000042e: call @printf with return %00000430 - -00000430: -00000433: R0 := 0 -0000043a: R29 := mem[R31, el]:u64 -0000043f: R30 := mem[R31 + 8, el]:u64 -00000443: R31 := R31 + 0x10 -00000448: call R30 with noreturn - -00000747: sub printf(printf_format, printf_result) -0000077c: printf_format :: in u64 = R0 -0000077d: printf_result :: out u32 = low:32[R0] - -0000042c: -000005cb: R16 := 0x10000 -000005d2: R17 := mem[R16 + 0xFC8, el]:u64 -000005d8: R16 := R16 + 0xFC8 -000005dd: call R17 with noreturn - -00000748: sub register_tm_clones(register_tm_clones_result) -0000077e: register_tm_clones_result :: out u32 = low:32[R0] - -000002a8: -000002ab: R0 := 0x11000 -000002b1: R0 := R0 + 0x10 -000002b6: R1 := 0x11000 -000002bc: R1 := R1 + 0x10 -000002c3: R1 := R1 + ~R0 + 1 -000002c9: R2 := 0.63:63[R1] -000002d0: R1 := R2 + (R1 ~>> 3) -000002d6: R1 := extend:64[63:1[R1]] -000002dc: when R1 = 0 goto %000002da -00000768: goto %00000485 - -00000485: -00000488: R2 := 0x10000 -0000048f: R2 := mem[R2 + 0xFF8, el]:u64 -00000494: when R2 = 0 goto %000002da -00000769: goto %00000498 - -000002da: -000002e2: call R30 with noreturn - -00000498: -0000049c: R16 := R2 -000004a1: call R16 with noreturn diff --git a/src/test/correct/function1/gcc/function1.expected b/src/test/correct/function1/gcc/function1.expected index 109760b6b..4a62fb71a 100644 --- a/src/test/correct/function1/gcc/function1.expected +++ b/src/test/correct/function1/gcc/function1.expected @@ -4,8 +4,10 @@ var {:extern} Gamma_R16: bool; var {:extern} Gamma_R17: bool; var {:extern} Gamma_R2: bool; var {:extern} Gamma_R29: bool; +var {:extern} Gamma_R3: bool; var {:extern} Gamma_R30: bool; var {:extern} Gamma_R31: bool; +var {:extern} Gamma_R4: bool; var {:extern} Gamma_mem: [bv64]bool; var {:extern} Gamma_stack: [bv64]bool; var {:extern} R0: bv64; @@ -14,34 +16,28 @@ var {:extern} R16: bv64; var {:extern} R17: bv64; var {:extern} R2: bv64; var {:extern} R29: bv64; +var {:extern} R3: bv64; var {:extern} R30: bv64; var {:extern} R31: bv64; +var {:extern} R4: bv64; var {:extern} mem: [bv64]bv8; var {:extern} stack: [bv64]bv8; const {:extern} $_IO_stdin_used_addr: bv64; -axiom ($_IO_stdin_used_addr == 2048bv64); +axiom ($_IO_stdin_used_addr == 4196472bv64); const {:extern} $x_addr: bv64; -axiom ($x_addr == 69652bv64); +axiom ($x_addr == 4325400bv64); const {:extern} $y_addr: bv64; -axiom ($y_addr == 69656bv64); +axiom ($y_addr == 4325396bv64); function {:extern} L(mem$in: [bv64]bv8, index: bv64) returns (bool) { false } function {:extern} {:bvbuiltin "bvadd"} bvadd32(bv32, bv32) returns (bv32); function {:extern} {:bvbuiltin "bvadd"} bvadd64(bv64, bv64) returns (bv64); -function {:extern} gamma_load32(gammaMap: [bv64]bool, index: bv64) returns (bool) { - (gammaMap[bvadd64(index, 3bv64)] && (gammaMap[bvadd64(index, 2bv64)] && (gammaMap[bvadd64(index, 1bv64)] && gammaMap[index]))) -} - function {:extern} gamma_load64(gammaMap: [bv64]bool, index: bv64) returns (bool) { (gammaMap[bvadd64(index, 7bv64)] && (gammaMap[bvadd64(index, 6bv64)] && (gammaMap[bvadd64(index, 5bv64)] && (gammaMap[bvadd64(index, 4bv64)] && (gammaMap[bvadd64(index, 3bv64)] && (gammaMap[bvadd64(index, 2bv64)] && (gammaMap[bvadd64(index, 1bv64)] && gammaMap[index]))))))) } -function {:extern} gamma_load8(gammaMap: [bv64]bool, index: bv64) returns (bool) { - gammaMap[index] -} - function {:extern} gamma_store32(gammaMap: [bv64]bool, index: bv64, value: bool) returns ([bv64]bool) { gammaMap[index := value][bvadd64(index, 1bv64) := value][bvadd64(index, 2bv64) := value][bvadd64(index, 3bv64) := value] } @@ -50,14 +46,6 @@ function {:extern} gamma_store64(gammaMap: [bv64]bool, index: bv64, value: bool) gammaMap[index := value][bvadd64(index, 1bv64) := value][bvadd64(index, 2bv64) := value][bvadd64(index, 3bv64) := value][bvadd64(index, 4bv64) := value][bvadd64(index, 5bv64) := value][bvadd64(index, 6bv64) := value][bvadd64(index, 7bv64) := value] } -function {:extern} gamma_store8(gammaMap: [bv64]bool, index: bv64, value: bool) returns ([bv64]bool) { - gammaMap[index := value] -} - -function {:extern} memory_load32_le(memory: [bv64]bv8, index: bv64) returns (bv32) { - (memory[bvadd64(index, 3bv64)] ++ (memory[bvadd64(index, 2bv64)] ++ (memory[bvadd64(index, 1bv64)] ++ memory[index]))) -} - function {:extern} memory_load64_le(memory: [bv64]bv8, index: bv64) returns (bv64) { (memory[bvadd64(index, 7bv64)] ++ (memory[bvadd64(index, 6bv64)] ++ (memory[bvadd64(index, 5bv64)] ++ (memory[bvadd64(index, 4bv64)] ++ (memory[bvadd64(index, 3bv64)] ++ (memory[bvadd64(index, 2bv64)] ++ (memory[bvadd64(index, 1bv64)] ++ memory[index]))))))) } @@ -74,25 +62,17 @@ function {:extern} memory_store64_le(memory: [bv64]bv8, index: bv64, value: bv64 memory[index := value[8:0]][bvadd64(index, 1bv64) := value[16:8]][bvadd64(index, 2bv64) := value[24:16]][bvadd64(index, 3bv64) := value[32:24]][bvadd64(index, 4bv64) := value[40:32]][bvadd64(index, 5bv64) := value[48:40]][bvadd64(index, 6bv64) := value[56:48]][bvadd64(index, 7bv64) := value[64:56]] } -function {:extern} memory_store8_le(memory: [bv64]bv8, index: bv64, value: bv8) returns ([bv64]bv8) { - memory[index := value[8:0]] -} - +function {:extern} {:bvbuiltin "zero_extend 24"} zero_extend24_8(bv8) returns (bv32); function {:extern} {:bvbuiltin "zero_extend 32"} zero_extend32_32(bv32) returns (bv64); -function {:extern} {:bvbuiltin "zero_extend 56"} zero_extend56_8(bv8) returns (bv64); procedure {:extern} rely(); modifies Gamma_mem, mem; ensures (Gamma_mem == old(Gamma_mem)); ensures (mem == old(mem)); - free ensures (memory_load64_le(mem, 2048bv64) == 131073bv64); - free ensures (memory_load8_le(mem, 2056bv64) == 37bv8); - free ensures (memory_load8_le(mem, 2057bv64) == 100bv8); - free ensures (memory_load8_le(mem, 2058bv64) == 10bv8); - free ensures (memory_load8_le(mem, 2059bv64) == 0bv8); - free ensures (memory_load64_le(mem, 69008bv64) == 1872bv64); - free ensures (memory_load64_le(mem, 69016bv64) == 1792bv64); - free ensures (memory_load64_le(mem, 69616bv64) == 1924bv64); - free ensures (memory_load64_le(mem, 69640bv64) == 69640bv64); + free ensures (memory_load64_le(mem, 4196472bv64) == 131073bv64); + free ensures (memory_load8_le(mem, 4196480bv64) == 37bv8); + free ensures (memory_load8_le(mem, 4196481bv64) == 100bv8); + free ensures (memory_load8_le(mem, 4196482bv64) == 10bv8); + free ensures (memory_load8_le(mem, 4196483bv64) == 0bv8); procedure {:extern} rely_transitive(); modifies Gamma_mem, mem; @@ -110,175 +90,131 @@ procedure {:extern} rely_reflexive(); procedure {:extern} guarantee_reflexive(); modifies Gamma_mem, mem; -procedure get_two_1876(); - modifies Gamma_R0, Gamma_R1, Gamma_R31, Gamma_stack, R0, R1, R31, stack; - free requires (memory_load64_le(mem, 2048bv64) == 131073bv64); - free requires (memory_load8_le(mem, 2056bv64) == 37bv8); - free requires (memory_load8_le(mem, 2057bv64) == 100bv8); - free requires (memory_load8_le(mem, 2058bv64) == 10bv8); - free requires (memory_load8_le(mem, 2059bv64) == 0bv8); - free requires (memory_load64_le(mem, 69008bv64) == 1872bv64); - free requires (memory_load64_le(mem, 69016bv64) == 1792bv64); - free requires (memory_load64_le(mem, 69616bv64) == 1924bv64); - free requires (memory_load64_le(mem, 69640bv64) == 69640bv64); - free ensures (Gamma_R31 == old(Gamma_R31)); - free ensures (R31 == old(R31)); - free ensures (memory_load64_le(mem, 2048bv64) == 131073bv64); - free ensures (memory_load8_le(mem, 2056bv64) == 37bv8); - free ensures (memory_load8_le(mem, 2057bv64) == 100bv8); - free ensures (memory_load8_le(mem, 2058bv64) == 10bv8); - free ensures (memory_load8_le(mem, 2059bv64) == 0bv8); - free ensures (memory_load64_le(mem, 69008bv64) == 1872bv64); - free ensures (memory_load64_le(mem, 69016bv64) == 1792bv64); - free ensures (memory_load64_le(mem, 69616bv64) == 1924bv64); - free ensures (memory_load64_le(mem, 69640bv64) == 69640bv64); - -implementation get_two_1876() +procedure __printf_chk(); + modifies Gamma_R16, Gamma_R17, R16, R17; + free requires (memory_load64_le(mem, 4196472bv64) == 131073bv64); + free requires (memory_load8_le(mem, 4196480bv64) == 37bv8); + free requires (memory_load8_le(mem, 4196481bv64) == 100bv8); + free requires (memory_load8_le(mem, 4196482bv64) == 10bv8); + free requires (memory_load8_le(mem, 4196483bv64) == 0bv8); + free ensures (memory_load64_le(mem, 4196472bv64) == 131073bv64); + free ensures (memory_load8_le(mem, 4196480bv64) == 37bv8); + free ensures (memory_load8_le(mem, 4196481bv64) == 100bv8); + free ensures (memory_load8_le(mem, 4196482bv64) == 10bv8); + free ensures (memory_load8_le(mem, 4196483bv64) == 0bv8); + +procedure get_two(); + modifies Gamma_R0, Gamma_R1, Gamma_R2, R0, R1, R2; + free requires (memory_load64_le(mem, 4196472bv64) == 131073bv64); + free requires (memory_load8_le(mem, 4196480bv64) == 37bv8); + free requires (memory_load8_le(mem, 4196481bv64) == 100bv8); + free requires (memory_load8_le(mem, 4196482bv64) == 10bv8); + free requires (memory_load8_le(mem, 4196483bv64) == 0bv8); + free ensures (memory_load64_le(mem, 4196472bv64) == 131073bv64); + free ensures (memory_load8_le(mem, 4196480bv64) == 37bv8); + free ensures (memory_load8_le(mem, 4196481bv64) == 100bv8); + free ensures (memory_load8_le(mem, 4196482bv64) == 10bv8); + free ensures (memory_load8_le(mem, 4196483bv64) == 0bv8); + +implementation get_two() { - var Gamma_load18: bool; - var Gamma_load19: bool; - var Gamma_load20: bool; - var load18: bv8; - var load19: bv32; - var load20: bv64; lget_two: assume {:captureState "lget_two"} true; - R31, Gamma_R31 := bvadd64(R31, 18446744073709551600bv64), Gamma_R31; - stack, Gamma_stack := memory_store8_le(stack, bvadd64(R31, 15bv64), R0[8:0]), gamma_store8(Gamma_stack, bvadd64(R31, 15bv64), Gamma_R0); - assume {:captureState "%0000034e"} true; - stack, Gamma_stack := memory_store32_le(stack, bvadd64(R31, 8bv64), R1[32:0]), gamma_store32(Gamma_stack, bvadd64(R31, 8bv64), Gamma_R1); - assume {:captureState "%00000356"} true; - stack, Gamma_stack := memory_store64_le(stack, R31, R2), gamma_store64(Gamma_stack, R31, Gamma_R2); - assume {:captureState "%0000035e"} true; - load18, Gamma_load18 := memory_load8_le(stack, bvadd64(R31, 15bv64)), gamma_load8(Gamma_stack, bvadd64(R31, 15bv64)); - R1, Gamma_R1 := zero_extend56_8(load18), Gamma_load18; - load19, Gamma_load19 := memory_load32_le(stack, bvadd64(R31, 8bv64)), gamma_load32(Gamma_stack, bvadd64(R31, 8bv64)); - R0, Gamma_R0 := zero_extend32_32(load19), Gamma_load19; - R0, Gamma_R0 := zero_extend32_32(bvadd32(R1[32:0], R0[32:0])), (Gamma_R0 && Gamma_R1); - R1, Gamma_R1 := zero_extend32_32(R0[32:0]), Gamma_R0; - load20, Gamma_load20 := memory_load64_le(stack, R31), gamma_load64(Gamma_stack, R31); - R0, Gamma_R0 := load20, Gamma_load20; - R0, Gamma_R0 := zero_extend32_32(bvadd32(R1[32:0], R0[32:0])), (Gamma_R0 && Gamma_R1); - R31, Gamma_R31 := bvadd64(R31, 16bv64), Gamma_R31; - goto get_two_1876_basil_return; - get_two_1876_basil_return: - assume {:captureState "get_two_1876_basil_return"} true; + R1, Gamma_R1 := zero_extend32_32(bvadd32(R1[32:0], R2[32:0])), (Gamma_R2 && Gamma_R1); + R0, Gamma_R0 := zero_extend32_32(bvadd32(R1[32:0], zero_extend24_8(R0[8:0]))), (Gamma_R0 && Gamma_R1); + R1, Gamma_R1 := 0bv64, true; + R2, Gamma_R2 := 0bv64, true; + goto get_two_basil_return; + get_two_basil_return: + assume {:captureState "get_two_basil_return"} true; return; } -procedure main_1924(); - modifies Gamma_R0, Gamma_R1, Gamma_R16, Gamma_R17, Gamma_R2, Gamma_R29, Gamma_R30, Gamma_R31, Gamma_mem, Gamma_stack, R0, R1, R16, R17, R2, R29, R30, R31, mem, stack; - free requires (memory_load64_le(mem, 69632bv64) == 0bv64); - free requires (memory_load64_le(mem, 69640bv64) == 69640bv64); - free requires (memory_load64_le(mem, 2048bv64) == 131073bv64); - free requires (memory_load8_le(mem, 2056bv64) == 37bv8); - free requires (memory_load8_le(mem, 2057bv64) == 100bv8); - free requires (memory_load8_le(mem, 2058bv64) == 10bv8); - free requires (memory_load8_le(mem, 2059bv64) == 0bv8); - free requires (memory_load64_le(mem, 69008bv64) == 1872bv64); - free requires (memory_load64_le(mem, 69016bv64) == 1792bv64); - free requires (memory_load64_le(mem, 69616bv64) == 1924bv64); - free requires (memory_load64_le(mem, 69640bv64) == 69640bv64); +procedure main(); + modifies Gamma_R0, Gamma_R1, Gamma_R16, Gamma_R17, Gamma_R2, Gamma_R29, Gamma_R3, Gamma_R30, Gamma_R31, Gamma_R4, Gamma_mem, Gamma_stack, R0, R1, R16, R17, R2, R29, R3, R30, R31, R4, mem, stack; + free requires (memory_load64_le(mem, 4325376bv64) == 0bv64); + free requires (memory_load64_le(mem, 4325384bv64) == 0bv64); + free requires (memory_load64_le(mem, 4196472bv64) == 131073bv64); + free requires (memory_load8_le(mem, 4196480bv64) == 37bv8); + free requires (memory_load8_le(mem, 4196481bv64) == 100bv8); + free requires (memory_load8_le(mem, 4196482bv64) == 10bv8); + free requires (memory_load8_le(mem, 4196483bv64) == 0bv8); free ensures (Gamma_R29 == old(Gamma_R29)); free ensures (Gamma_R31 == old(Gamma_R31)); free ensures (R29 == old(R29)); free ensures (R31 == old(R31)); - free ensures (memory_load64_le(mem, 2048bv64) == 131073bv64); - free ensures (memory_load8_le(mem, 2056bv64) == 37bv8); - free ensures (memory_load8_le(mem, 2057bv64) == 100bv8); - free ensures (memory_load8_le(mem, 2058bv64) == 10bv8); - free ensures (memory_load8_le(mem, 2059bv64) == 0bv8); - free ensures (memory_load64_le(mem, 69008bv64) == 1872bv64); - free ensures (memory_load64_le(mem, 69016bv64) == 1792bv64); - free ensures (memory_load64_le(mem, 69616bv64) == 1924bv64); - free ensures (memory_load64_le(mem, 69640bv64) == 69640bv64); + free ensures (memory_load64_le(mem, 4196472bv64) == 131073bv64); + free ensures (memory_load8_le(mem, 4196480bv64) == 37bv8); + free ensures (memory_load8_le(mem, 4196481bv64) == 100bv8); + free ensures (memory_load8_le(mem, 4196482bv64) == 10bv8); + free ensures (memory_load8_le(mem, 4196483bv64) == 0bv8); -implementation main_1924() +implementation main() { - var #4: bv64; - var Gamma_#4: bool; - var Gamma_load21: bool; - var Gamma_load22: bool; - var Gamma_load23: bool; - var load21: bv32; - var load22: bv64; - var load23: bv64; + var #1: bv64; + var $load$15: bv64; + var $load$16: bv64; + var $load$17: bv64; + var $load$18: bv64; + var Gamma_#1: bool; + var Gamma_$load$15: bool; + var Gamma_$load$16: bool; + var Gamma_$load$17: bool; + var Gamma_$load$18: bool; lmain: assume {:captureState "lmain"} true; - #4, Gamma_#4 := bvadd64(R31, 18446744073709551600bv64), Gamma_R31; - stack, Gamma_stack := memory_store64_le(stack, #4, R29), gamma_store64(Gamma_stack, #4, Gamma_R29); - assume {:captureState "%0000039e"} true; - stack, Gamma_stack := memory_store64_le(stack, bvadd64(#4, 8bv64), R30), gamma_store64(Gamma_stack, bvadd64(#4, 8bv64), Gamma_R30); - assume {:captureState "%000003a4"} true; - R31, Gamma_R31 := #4, Gamma_#4; - R29, Gamma_R29 := R31, Gamma_R31; - R0, Gamma_R0 := 69632bv64, true; - R0, Gamma_R0 := bvadd64(R0, 20bv64), Gamma_R0; - R1, Gamma_R1 := 1bv64, true; + R3, Gamma_R3 := 4321280bv64, true; call rely(); - assert (L(mem, R0) ==> Gamma_R1); - mem, Gamma_mem := memory_store32_le(mem, R0, R1[32:0]), gamma_store32(Gamma_mem, R0, Gamma_R1); - assume {:captureState "%000003c6"} true; + $load$15, Gamma_$load$15 := memory_load64_le(mem, bvadd64(R3, 4064bv64)), (gamma_load64(Gamma_mem, bvadd64(R3, 4064bv64)) || L(mem, bvadd64(R3, 4064bv64))); + R3, Gamma_R3 := $load$15, Gamma_$load$15; + #1, Gamma_#1 := bvadd64(R31, 18446744073709551600bv64), Gamma_R31; + stack, Gamma_stack := memory_store64_le(stack, #1, R29), gamma_store64(Gamma_stack, #1, Gamma_R29); + assume {:captureState "%00000290"} true; + stack, Gamma_stack := memory_store64_le(stack, bvadd64(#1, 8bv64), R30), gamma_store64(Gamma_stack, bvadd64(#1, 8bv64), Gamma_R30); + assume {:captureState "%00000294"} true; + R31, Gamma_R31 := #1, Gamma_#1; + R4, Gamma_R4 := 1bv64, true; R2, Gamma_R2 := 58368bv64, true; + R29, Gamma_R29 := R31, Gamma_R31; R2, Gamma_R2 := (R2[64:32] ++ (21515bv16 ++ R2[16:0])), Gamma_R2; R2, Gamma_R2 := (R2[64:48] ++ (2bv16 ++ R2[32:0])), Gamma_R2; R1, Gamma_R1 := 10bv64, true; R0, Gamma_R0 := 97bv64, true; - R30, Gamma_R30 := 1972bv64, true; - call get_two_1876(); - goto l000003ec; - l000003ec: - assume {:captureState "l000003ec"} true; - R1, Gamma_R1 := zero_extend32_32(R0[32:0]), Gamma_R0; - R0, Gamma_R0 := 69632bv64, true; - R0, Gamma_R0 := bvadd64(R0, 24bv64), Gamma_R0; call rely(); - assert (L(mem, R0) ==> Gamma_R1); - mem, Gamma_mem := memory_store32_le(mem, R0, R1[32:0]), gamma_store32(Gamma_mem, R0, Gamma_R1); - assume {:captureState "%00000403"} true; - R0, Gamma_R0 := 69632bv64, true; - R0, Gamma_R0 := bvadd64(R0, 24bv64), Gamma_R0; + assert (L(mem, R3) ==> Gamma_R4); + mem, Gamma_mem := memory_store32_le(mem, R3, R4[32:0]), gamma_store32(Gamma_mem, R3, Gamma_R4); + assume {:captureState "%000002b8"} true; + R30, Gamma_R30 := 4196080bv64, true; + call get_two(); + goto l000002c4; + l000002c4: + assume {:captureState "l000002c4"} true; + R2, Gamma_R2 := zero_extend32_32(R0[32:0]), Gamma_R0; + R3, Gamma_R3 := 4321280bv64, true; call rely(); - load21, Gamma_load21 := memory_load32_le(mem, R0), (gamma_load32(Gamma_mem, R0) || L(mem, R0)); - R0, Gamma_R0 := zero_extend32_32(load21), Gamma_load21; - R1, Gamma_R1 := zero_extend32_32(R0[32:0]), Gamma_R0; - R0, Gamma_R0 := 0bv64, true; - R0, Gamma_R0 := bvadd64(R0, 2056bv64), Gamma_R0; - R30, Gamma_R30 := 2016bv64, true; - call printf_1584(); - goto l00000430; - l00000430: - assume {:captureState "l00000430"} true; + $load$16, Gamma_$load$16 := memory_load64_le(mem, bvadd64(R3, 4080bv64)), (gamma_load64(Gamma_mem, bvadd64(R3, 4080bv64)) || L(mem, bvadd64(R3, 4080bv64))); + R3, Gamma_R3 := $load$16, Gamma_$load$16; + R1, Gamma_R1 := 4194304bv64, true; + R0, Gamma_R0 := 2bv64, true; + R1, Gamma_R1 := bvadd64(R1, 2176bv64), Gamma_R1; + call rely(); + assert (L(mem, R3) ==> Gamma_R2); + mem, Gamma_mem := memory_store32_le(mem, R3, R2[32:0]), gamma_store32(Gamma_mem, R3, Gamma_R2); + assume {:captureState "%000002e0"} true; + R30, Gamma_R30 := 4196112bv64, true; + call __printf_chk(); + goto l000002ec; + l000002ec: + assume {:captureState "l000002ec"} true; R0, Gamma_R0 := 0bv64, true; - load22, Gamma_load22 := memory_load64_le(stack, R31), gamma_load64(Gamma_stack, R31); - R29, Gamma_R29 := load22, Gamma_load22; - load23, Gamma_load23 := memory_load64_le(stack, bvadd64(R31, 8bv64)), gamma_load64(Gamma_stack, bvadd64(R31, 8bv64)); - R30, Gamma_R30 := load23, Gamma_load23; + $load$17, Gamma_$load$17 := memory_load64_le(stack, R31), gamma_load64(Gamma_stack, R31); + R29, Gamma_R29 := $load$17, Gamma_$load$17; + $load$18, Gamma_$load$18 := memory_load64_le(stack, bvadd64(R31, 8bv64)), gamma_load64(Gamma_stack, bvadd64(R31, 8bv64)); + R30, Gamma_R30 := $load$18, Gamma_$load$18; R31, Gamma_R31 := bvadd64(R31, 16bv64), Gamma_R31; - goto main_1924_basil_return; - main_1924_basil_return: - assume {:captureState "main_1924_basil_return"} true; + goto main_basil_return; + main_basil_return: + assume {:captureState "main_basil_return"} true; return; } -procedure printf_1584(); - modifies Gamma_R16, Gamma_R17, R16, R17; - free requires (memory_load64_le(mem, 2048bv64) == 131073bv64); - free requires (memory_load8_le(mem, 2056bv64) == 37bv8); - free requires (memory_load8_le(mem, 2057bv64) == 100bv8); - free requires (memory_load8_le(mem, 2058bv64) == 10bv8); - free requires (memory_load8_le(mem, 2059bv64) == 0bv8); - free requires (memory_load64_le(mem, 69008bv64) == 1872bv64); - free requires (memory_load64_le(mem, 69016bv64) == 1792bv64); - free requires (memory_load64_le(mem, 69616bv64) == 1924bv64); - free requires (memory_load64_le(mem, 69640bv64) == 69640bv64); - free ensures (memory_load64_le(mem, 2048bv64) == 131073bv64); - free ensures (memory_load8_le(mem, 2056bv64) == 37bv8); - free ensures (memory_load8_le(mem, 2057bv64) == 100bv8); - free ensures (memory_load8_le(mem, 2058bv64) == 10bv8); - free ensures (memory_load8_le(mem, 2059bv64) == 0bv8); - free ensures (memory_load64_le(mem, 69008bv64) == 1872bv64); - free ensures (memory_load64_le(mem, 69016bv64) == 1792bv64); - free ensures (memory_load64_le(mem, 69616bv64) == 1924bv64); - free ensures (memory_load64_le(mem, 69640bv64) == 69640bv64); - diff --git a/src/test/correct/function1/gcc/function1.gts b/src/test/correct/function1/gcc/function1.gts deleted file mode 100644 index cc2796982..000000000 Binary files a/src/test/correct/function1/gcc/function1.gts and /dev/null differ diff --git a/src/test/correct/function1/gcc/function1.md5sum b/src/test/correct/function1/gcc/function1.md5sum new file mode 100644 index 000000000..7dc7f9a4c --- /dev/null +++ b/src/test/correct/function1/gcc/function1.md5sum @@ -0,0 +1,5 @@ +abad3d2e94562d4bf926f164e203bcd0 correct/function1/gcc/a.out +3bee42daac4a516aa5e4144ebad8b594 correct/function1/gcc/function1.adt +a9868d259f61f3a9f8ed7fdc29811b3b correct/function1/gcc/function1.bir +f3caeb84a97d418bbaa1ef548a4d3ddf correct/function1/gcc/function1.relf +9977227c08cac07820f2b7de53159a69 correct/function1/gcc/function1.gts diff --git a/src/test/correct/function1/gcc/function1.relf b/src/test/correct/function1/gcc/function1.relf deleted file mode 100644 index 4df8fc9b4..000000000 --- a/src/test/correct/function1/gcc/function1.relf +++ /dev/null @@ -1,127 +0,0 @@ - -Relocation section '.rela.dyn' at offset 0x480 contains 8 entries: - Offset Info Type Symbol's Value Symbol's Name + Addend -0000000000010d90 0000000000000403 R_AARCH64_RELATIVE 750 -0000000000010d98 0000000000000403 R_AARCH64_RELATIVE 700 -0000000000010ff0 0000000000000403 R_AARCH64_RELATIVE 784 -0000000000011008 0000000000000403 R_AARCH64_RELATIVE 11008 -0000000000010fd8 0000000400000401 R_AARCH64_GLOB_DAT 0000000000000000 _ITM_deregisterTMCloneTable + 0 -0000000000010fe0 0000000500000401 R_AARCH64_GLOB_DAT 0000000000000000 __cxa_finalize@GLIBC_2.17 + 0 -0000000000010fe8 0000000600000401 R_AARCH64_GLOB_DAT 0000000000000000 __gmon_start__ + 0 -0000000000010ff8 0000000800000401 R_AARCH64_GLOB_DAT 0000000000000000 _ITM_registerTMCloneTable + 0 - -Relocation section '.rela.plt' at offset 0x540 contains 5 entries: - Offset Info Type Symbol's Value Symbol's Name + Addend -0000000000010fa8 0000000300000402 R_AARCH64_JUMP_SLOT 0000000000000000 __libc_start_main@GLIBC_2.34 + 0 -0000000000010fb0 0000000500000402 R_AARCH64_JUMP_SLOT 0000000000000000 __cxa_finalize@GLIBC_2.17 + 0 -0000000000010fb8 0000000600000402 R_AARCH64_JUMP_SLOT 0000000000000000 __gmon_start__ + 0 -0000000000010fc0 0000000700000402 R_AARCH64_JUMP_SLOT 0000000000000000 abort@GLIBC_2.17 + 0 -0000000000010fc8 0000000900000402 R_AARCH64_JUMP_SLOT 0000000000000000 printf@GLIBC_2.17 + 0 - -Symbol table '.dynsym' contains 10 entries: - Num: Value Size Type Bind Vis Ndx Name - 0: 0000000000000000 0 NOTYPE LOCAL DEFAULT UND - 1: 00000000000005b8 0 SECTION LOCAL DEFAULT 11 .init - 2: 0000000000011000 0 SECTION LOCAL DEFAULT 22 .data - 3: 0000000000000000 0 FUNC GLOBAL DEFAULT UND __libc_start_main@GLIBC_2.34 (2) - 4: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_deregisterTMCloneTable - 5: 0000000000000000 0 FUNC WEAK DEFAULT UND __cxa_finalize@GLIBC_2.17 (3) - 6: 0000000000000000 0 NOTYPE WEAK DEFAULT UND __gmon_start__ - 7: 0000000000000000 0 FUNC GLOBAL DEFAULT UND abort@GLIBC_2.17 (3) - 8: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_registerTMCloneTable - 9: 0000000000000000 0 FUNC GLOBAL DEFAULT UND printf@GLIBC_2.17 (3) - -Symbol table '.symtab' contains 92 entries: - Num: Value Size Type Bind Vis Ndx Name - 0: 0000000000000000 0 NOTYPE LOCAL DEFAULT UND - 1: 0000000000000238 0 SECTION LOCAL DEFAULT 1 .interp - 2: 0000000000000254 0 SECTION LOCAL DEFAULT 2 .note.gnu.build-id - 3: 0000000000000278 0 SECTION LOCAL DEFAULT 3 .note.ABI-tag - 4: 0000000000000298 0 SECTION LOCAL DEFAULT 4 .gnu.hash - 5: 00000000000002b8 0 SECTION LOCAL DEFAULT 5 .dynsym - 6: 00000000000003a8 0 SECTION LOCAL DEFAULT 6 .dynstr - 7: 000000000000043c 0 SECTION LOCAL DEFAULT 7 .gnu.version - 8: 0000000000000450 0 SECTION LOCAL DEFAULT 8 .gnu.version_r - 9: 0000000000000480 0 SECTION LOCAL DEFAULT 9 .rela.dyn - 10: 0000000000000540 0 SECTION LOCAL DEFAULT 10 .rela.plt - 11: 00000000000005b8 0 SECTION LOCAL DEFAULT 11 .init - 12: 00000000000005d0 0 SECTION LOCAL DEFAULT 12 .plt - 13: 0000000000000640 0 SECTION LOCAL DEFAULT 13 .text - 14: 00000000000007ec 0 SECTION LOCAL DEFAULT 14 .fini - 15: 0000000000000800 0 SECTION LOCAL DEFAULT 15 .rodata - 16: 000000000000080c 0 SECTION LOCAL DEFAULT 16 .eh_frame_hdr - 17: 0000000000000850 0 SECTION LOCAL DEFAULT 17 .eh_frame - 18: 0000000000010d90 0 SECTION LOCAL DEFAULT 18 .init_array - 19: 0000000000010d98 0 SECTION LOCAL DEFAULT 19 .fini_array - 20: 0000000000010da0 0 SECTION LOCAL DEFAULT 20 .dynamic - 21: 0000000000010f90 0 SECTION LOCAL DEFAULT 21 .got - 22: 0000000000011000 0 SECTION LOCAL DEFAULT 22 .data - 23: 0000000000011010 0 SECTION LOCAL DEFAULT 23 .bss - 24: 0000000000000000 0 SECTION LOCAL DEFAULT 24 .comment - 25: 0000000000000000 0 FILE LOCAL DEFAULT ABS Scrt1.o - 26: 0000000000000278 0 NOTYPE LOCAL DEFAULT 3 $d - 27: 0000000000000278 32 OBJECT LOCAL DEFAULT 3 __abi_tag - 28: 0000000000000640 0 NOTYPE LOCAL DEFAULT 13 $x - 29: 0000000000000864 0 NOTYPE LOCAL DEFAULT 17 $d - 30: 0000000000000800 0 NOTYPE LOCAL DEFAULT 15 $d - 31: 0000000000000000 0 FILE LOCAL DEFAULT ABS crti.o - 32: 0000000000000674 0 NOTYPE LOCAL DEFAULT 13 $x - 33: 0000000000000674 20 FUNC LOCAL DEFAULT 13 call_weak_fn - 34: 00000000000005b8 0 NOTYPE LOCAL DEFAULT 11 $x - 35: 00000000000007ec 0 NOTYPE LOCAL DEFAULT 14 $x - 36: 0000000000000000 0 FILE LOCAL DEFAULT ABS crtn.o - 37: 00000000000005c8 0 NOTYPE LOCAL DEFAULT 11 $x - 38: 00000000000007f8 0 NOTYPE LOCAL DEFAULT 14 $x - 39: 0000000000000000 0 FILE LOCAL DEFAULT ABS crtstuff.c - 40: 0000000000000690 0 NOTYPE LOCAL DEFAULT 13 $x - 41: 0000000000000690 0 FUNC LOCAL DEFAULT 13 deregister_tm_clones - 42: 00000000000006c0 0 FUNC LOCAL DEFAULT 13 register_tm_clones - 43: 0000000000011008 0 NOTYPE LOCAL DEFAULT 22 $d - 44: 0000000000000700 0 FUNC LOCAL DEFAULT 13 __do_global_dtors_aux - 45: 0000000000011010 1 OBJECT LOCAL DEFAULT 23 completed.0 - 46: 0000000000010d98 0 NOTYPE LOCAL DEFAULT 19 $d - 47: 0000000000010d98 0 OBJECT LOCAL DEFAULT 19 __do_global_dtors_aux_fini_array_entry - 48: 0000000000000750 0 FUNC LOCAL DEFAULT 13 frame_dummy - 49: 0000000000010d90 0 NOTYPE LOCAL DEFAULT 18 $d - 50: 0000000000010d90 0 OBJECT LOCAL DEFAULT 18 __frame_dummy_init_array_entry - 51: 0000000000000878 0 NOTYPE LOCAL DEFAULT 17 $d - 52: 0000000000011010 0 NOTYPE LOCAL DEFAULT 23 $d - 53: 0000000000000000 0 FILE LOCAL DEFAULT ABS function1.c - 54: 0000000000011014 0 NOTYPE LOCAL DEFAULT 23 $d - 55: 0000000000000754 0 NOTYPE LOCAL DEFAULT 13 $x - 56: 0000000000000808 0 NOTYPE LOCAL DEFAULT 15 $d - 57: 00000000000008d8 0 NOTYPE LOCAL DEFAULT 17 $d - 58: 0000000000000000 0 FILE LOCAL DEFAULT ABS crtstuff.c - 59: 0000000000000910 0 NOTYPE LOCAL DEFAULT 17 $d - 60: 0000000000000910 0 OBJECT LOCAL DEFAULT 17 __FRAME_END__ - 61: 0000000000000000 0 FILE LOCAL DEFAULT ABS - 62: 0000000000010da0 0 OBJECT LOCAL DEFAULT ABS _DYNAMIC - 63: 000000000000080c 0 NOTYPE LOCAL DEFAULT 16 __GNU_EH_FRAME_HDR - 64: 0000000000010fd0 0 OBJECT LOCAL DEFAULT ABS _GLOBAL_OFFSET_TABLE_ - 65: 00000000000005d0 0 NOTYPE LOCAL DEFAULT 12 $x - 66: 0000000000000000 0 FUNC GLOBAL DEFAULT UND __libc_start_main@GLIBC_2.34 - 67: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_deregisterTMCloneTable - 68: 0000000000011000 0 NOTYPE WEAK DEFAULT 22 data_start - 69: 0000000000011010 0 NOTYPE GLOBAL DEFAULT 23 __bss_start__ - 70: 0000000000000000 0 FUNC WEAK DEFAULT UND __cxa_finalize@GLIBC_2.17 - 71: 0000000000011020 0 NOTYPE GLOBAL DEFAULT 23 _bss_end__ - 72: 0000000000011010 0 NOTYPE GLOBAL DEFAULT 22 _edata - 73: 0000000000011014 4 OBJECT GLOBAL DEFAULT 23 x - 74: 00000000000007ec 0 FUNC GLOBAL HIDDEN 14 _fini - 75: 0000000000011020 0 NOTYPE GLOBAL DEFAULT 23 __bss_end__ - 76: 0000000000000754 48 FUNC GLOBAL DEFAULT 13 get_two - 77: 0000000000011000 0 NOTYPE GLOBAL DEFAULT 22 __data_start - 78: 0000000000000000 0 NOTYPE WEAK DEFAULT UND __gmon_start__ - 79: 0000000000011008 0 OBJECT GLOBAL HIDDEN 22 __dso_handle - 80: 0000000000000000 0 FUNC GLOBAL DEFAULT UND abort@GLIBC_2.17 - 81: 0000000000000800 4 OBJECT GLOBAL DEFAULT 15 _IO_stdin_used - 82: 0000000000011020 0 NOTYPE GLOBAL DEFAULT 23 _end - 83: 0000000000000640 52 FUNC GLOBAL DEFAULT 13 _start - 84: 0000000000011020 0 NOTYPE GLOBAL DEFAULT 23 __end__ - 85: 0000000000011018 4 OBJECT GLOBAL DEFAULT 23 y - 86: 0000000000011010 0 NOTYPE GLOBAL DEFAULT 23 __bss_start - 87: 0000000000000784 104 FUNC GLOBAL DEFAULT 13 main - 88: 0000000000011010 0 OBJECT GLOBAL HIDDEN 22 __TMC_END__ - 89: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_registerTMCloneTable - 90: 0000000000000000 0 FUNC GLOBAL DEFAULT UND printf@GLIBC_2.17 - 91: 00000000000005b8 0 FUNC GLOBAL HIDDEN 11 _init diff --git a/src/test/correct/function1/gcc/function1_gtirb.expected b/src/test/correct/function1/gcc/function1_gtirb.expected index 7a52d0be8..b2b4c2a15 100644 --- a/src/test/correct/function1/gcc/function1_gtirb.expected +++ b/src/test/correct/function1/gcc/function1_gtirb.expected @@ -4,8 +4,10 @@ var {:extern} Gamma_R16: bool; var {:extern} Gamma_R17: bool; var {:extern} Gamma_R2: bool; var {:extern} Gamma_R29: bool; +var {:extern} Gamma_R3: bool; var {:extern} Gamma_R30: bool; var {:extern} Gamma_R31: bool; +var {:extern} Gamma_R4: bool; var {:extern} Gamma_mem: [bv64]bool; var {:extern} Gamma_stack: [bv64]bool; var {:extern} R0: bv64; @@ -14,34 +16,28 @@ var {:extern} R16: bv64; var {:extern} R17: bv64; var {:extern} R2: bv64; var {:extern} R29: bv64; +var {:extern} R3: bv64; var {:extern} R30: bv64; var {:extern} R31: bv64; +var {:extern} R4: bv64; var {:extern} mem: [bv64]bv8; var {:extern} stack: [bv64]bv8; const {:extern} $_IO_stdin_used_addr: bv64; -axiom ($_IO_stdin_used_addr == 2048bv64); +axiom ($_IO_stdin_used_addr == 4196472bv64); const {:extern} $x_addr: bv64; -axiom ($x_addr == 69652bv64); +axiom ($x_addr == 4325400bv64); const {:extern} $y_addr: bv64; -axiom ($y_addr == 69656bv64); +axiom ($y_addr == 4325396bv64); function {:extern} L(mem$in: [bv64]bv8, index: bv64) returns (bool) { false } function {:extern} {:bvbuiltin "bvadd"} bvadd32(bv32, bv32) returns (bv32); function {:extern} {:bvbuiltin "bvadd"} bvadd64(bv64, bv64) returns (bv64); -function {:extern} gamma_load32(gammaMap: [bv64]bool, index: bv64) returns (bool) { - (gammaMap[bvadd64(index, 3bv64)] && (gammaMap[bvadd64(index, 2bv64)] && (gammaMap[bvadd64(index, 1bv64)] && gammaMap[index]))) -} - function {:extern} gamma_load64(gammaMap: [bv64]bool, index: bv64) returns (bool) { (gammaMap[bvadd64(index, 7bv64)] && (gammaMap[bvadd64(index, 6bv64)] && (gammaMap[bvadd64(index, 5bv64)] && (gammaMap[bvadd64(index, 4bv64)] && (gammaMap[bvadd64(index, 3bv64)] && (gammaMap[bvadd64(index, 2bv64)] && (gammaMap[bvadd64(index, 1bv64)] && gammaMap[index]))))))) } -function {:extern} gamma_load8(gammaMap: [bv64]bool, index: bv64) returns (bool) { - gammaMap[index] -} - function {:extern} gamma_store32(gammaMap: [bv64]bool, index: bv64, value: bool) returns ([bv64]bool) { gammaMap[index := value][bvadd64(index, 1bv64) := value][bvadd64(index, 2bv64) := value][bvadd64(index, 3bv64) := value] } @@ -50,14 +46,6 @@ function {:extern} gamma_store64(gammaMap: [bv64]bool, index: bv64, value: bool) gammaMap[index := value][bvadd64(index, 1bv64) := value][bvadd64(index, 2bv64) := value][bvadd64(index, 3bv64) := value][bvadd64(index, 4bv64) := value][bvadd64(index, 5bv64) := value][bvadd64(index, 6bv64) := value][bvadd64(index, 7bv64) := value] } -function {:extern} gamma_store8(gammaMap: [bv64]bool, index: bv64, value: bool) returns ([bv64]bool) { - gammaMap[index := value] -} - -function {:extern} memory_load32_le(memory: [bv64]bv8, index: bv64) returns (bv32) { - (memory[bvadd64(index, 3bv64)] ++ (memory[bvadd64(index, 2bv64)] ++ (memory[bvadd64(index, 1bv64)] ++ memory[index]))) -} - function {:extern} memory_load64_le(memory: [bv64]bv8, index: bv64) returns (bv64) { (memory[bvadd64(index, 7bv64)] ++ (memory[bvadd64(index, 6bv64)] ++ (memory[bvadd64(index, 5bv64)] ++ (memory[bvadd64(index, 4bv64)] ++ (memory[bvadd64(index, 3bv64)] ++ (memory[bvadd64(index, 2bv64)] ++ (memory[bvadd64(index, 1bv64)] ++ memory[index]))))))) } @@ -74,25 +62,17 @@ function {:extern} memory_store64_le(memory: [bv64]bv8, index: bv64, value: bv64 memory[index := value[8:0]][bvadd64(index, 1bv64) := value[16:8]][bvadd64(index, 2bv64) := value[24:16]][bvadd64(index, 3bv64) := value[32:24]][bvadd64(index, 4bv64) := value[40:32]][bvadd64(index, 5bv64) := value[48:40]][bvadd64(index, 6bv64) := value[56:48]][bvadd64(index, 7bv64) := value[64:56]] } -function {:extern} memory_store8_le(memory: [bv64]bv8, index: bv64, value: bv8) returns ([bv64]bv8) { - memory[index := value[8:0]] -} - function {:extern} {:bvbuiltin "zero_extend 24"} zero_extend24_8(bv8) returns (bv32); function {:extern} {:bvbuiltin "zero_extend 32"} zero_extend32_32(bv32) returns (bv64); procedure {:extern} rely(); modifies Gamma_mem, mem; ensures (Gamma_mem == old(Gamma_mem)); ensures (mem == old(mem)); - free ensures (memory_load64_le(mem, 2048bv64) == 131073bv64); - free ensures (memory_load8_le(mem, 2056bv64) == 37bv8); - free ensures (memory_load8_le(mem, 2057bv64) == 100bv8); - free ensures (memory_load8_le(mem, 2058bv64) == 10bv8); - free ensures (memory_load8_le(mem, 2059bv64) == 0bv8); - free ensures (memory_load64_le(mem, 69008bv64) == 1872bv64); - free ensures (memory_load64_le(mem, 69016bv64) == 1792bv64); - free ensures (memory_load64_le(mem, 69616bv64) == 1924bv64); - free ensures (memory_load64_le(mem, 69640bv64) == 69640bv64); + free ensures (memory_load64_le(mem, 4196472bv64) == 131073bv64); + free ensures (memory_load8_le(mem, 4196480bv64) == 37bv8); + free ensures (memory_load8_le(mem, 4196481bv64) == 100bv8); + free ensures (memory_load8_le(mem, 4196482bv64) == 10bv8); + free ensures (memory_load8_le(mem, 4196483bv64) == 0bv8); procedure {:extern} rely_transitive(); modifies Gamma_mem, mem; @@ -110,213 +90,158 @@ procedure {:extern} rely_reflexive(); procedure {:extern} guarantee_reflexive(); modifies Gamma_mem, mem; -procedure FUN_630_1584(); +procedure FUN_400680(); modifies Gamma_R16, Gamma_R17, Gamma_mem, R16, R17, mem; - free requires (memory_load64_le(mem, 2048bv64) == 131073bv64); - free requires (memory_load8_le(mem, 2056bv64) == 37bv8); - free requires (memory_load8_le(mem, 2057bv64) == 100bv8); - free requires (memory_load8_le(mem, 2058bv64) == 10bv8); - free requires (memory_load8_le(mem, 2059bv64) == 0bv8); - free requires (memory_load64_le(mem, 69008bv64) == 1872bv64); - free requires (memory_load64_le(mem, 69016bv64) == 1792bv64); - free requires (memory_load64_le(mem, 69616bv64) == 1924bv64); - free requires (memory_load64_le(mem, 69640bv64) == 69640bv64); - free ensures (memory_load64_le(mem, 2048bv64) == 131073bv64); - free ensures (memory_load8_le(mem, 2056bv64) == 37bv8); - free ensures (memory_load8_le(mem, 2057bv64) == 100bv8); - free ensures (memory_load8_le(mem, 2058bv64) == 10bv8); - free ensures (memory_load8_le(mem, 2059bv64) == 0bv8); - free ensures (memory_load64_le(mem, 69008bv64) == 1872bv64); - free ensures (memory_load64_le(mem, 69016bv64) == 1792bv64); - free ensures (memory_load64_le(mem, 69616bv64) == 1924bv64); - free ensures (memory_load64_le(mem, 69640bv64) == 69640bv64); - -implementation FUN_630_1584() + free requires (memory_load64_le(mem, 4196472bv64) == 131073bv64); + free requires (memory_load8_le(mem, 4196480bv64) == 37bv8); + free requires (memory_load8_le(mem, 4196481bv64) == 100bv8); + free requires (memory_load8_le(mem, 4196482bv64) == 10bv8); + free requires (memory_load8_le(mem, 4196483bv64) == 0bv8); + free ensures (memory_load64_le(mem, 4196472bv64) == 131073bv64); + free ensures (memory_load8_le(mem, 4196480bv64) == 37bv8); + free ensures (memory_load8_le(mem, 4196481bv64) == 100bv8); + free ensures (memory_load8_le(mem, 4196482bv64) == 10bv8); + free ensures (memory_load8_le(mem, 4196483bv64) == 0bv8); + +implementation FUN_400680() { - var Gamma_load10: bool; - var load10: bv64; - FUN_630_1584__0__NUvwqOE3TwyanEIZ0P7t5g: - assume {:captureState "FUN_630_1584__0__NUvwqOE3TwyanEIZ0P7t5g"} true; - R16, Gamma_R16 := 65536bv64, true; + var $load10: bv64; + var Gamma_$load10: bool; + $FUN_400680$__0__$UtkQk4ONSE6hNEuDpZ95RQ: + assume {:captureState "$FUN_400680$__0__$UtkQk4ONSE6hNEuDpZ95RQ"} true; + R16, Gamma_R16 := 4321280bv64, true; call rely(); - load10, Gamma_load10 := memory_load64_le(mem, bvadd64(R16, 4040bv64)), (gamma_load64(Gamma_mem, bvadd64(R16, 4040bv64)) || L(mem, bvadd64(R16, 4040bv64))); - R17, Gamma_R17 := load10, Gamma_load10; - R16, Gamma_R16 := bvadd64(R16, 4040bv64), Gamma_R16; - call printf(); - goto FUN_630_1584_basil_return; - FUN_630_1584_basil_return: - assume {:captureState "FUN_630_1584_basil_return"} true; - return; -} - -procedure get_two_1876(); - modifies Gamma_R0, Gamma_R1, Gamma_R31, Gamma_stack, R0, R1, R31, stack; - free requires (memory_load64_le(mem, 2048bv64) == 131073bv64); - free requires (memory_load8_le(mem, 2056bv64) == 37bv8); - free requires (memory_load8_le(mem, 2057bv64) == 100bv8); - free requires (memory_load8_le(mem, 2058bv64) == 10bv8); - free requires (memory_load8_le(mem, 2059bv64) == 0bv8); - free requires (memory_load64_le(mem, 69008bv64) == 1872bv64); - free requires (memory_load64_le(mem, 69016bv64) == 1792bv64); - free requires (memory_load64_le(mem, 69616bv64) == 1924bv64); - free requires (memory_load64_le(mem, 69640bv64) == 69640bv64); - free ensures (Gamma_R31 == old(Gamma_R31)); - free ensures (R31 == old(R31)); - free ensures (memory_load64_le(mem, 2048bv64) == 131073bv64); - free ensures (memory_load8_le(mem, 2056bv64) == 37bv8); - free ensures (memory_load8_le(mem, 2057bv64) == 100bv8); - free ensures (memory_load8_le(mem, 2058bv64) == 10bv8); - free ensures (memory_load8_le(mem, 2059bv64) == 0bv8); - free ensures (memory_load64_le(mem, 69008bv64) == 1872bv64); - free ensures (memory_load64_le(mem, 69016bv64) == 1792bv64); - free ensures (memory_load64_le(mem, 69616bv64) == 1924bv64); - free ensures (memory_load64_le(mem, 69640bv64) == 69640bv64); - -implementation get_two_1876() + $load10, Gamma_$load10 := memory_load64_le(mem, bvadd64(R16, 4024bv64)), (gamma_load64(Gamma_mem, bvadd64(R16, 4024bv64)) || L(mem, bvadd64(R16, 4024bv64))); + R17, Gamma_R17 := $load10, Gamma_$load10; + R16, Gamma_R16 := bvadd64(R16, 4024bv64), Gamma_R16; + call __printf_chk(); + assume false; +} + +procedure get_two(); + modifies Gamma_R0, Gamma_R1, Gamma_R2, R0, R1, R2; + free requires (memory_load64_le(mem, 4196472bv64) == 131073bv64); + free requires (memory_load8_le(mem, 4196480bv64) == 37bv8); + free requires (memory_load8_le(mem, 4196481bv64) == 100bv8); + free requires (memory_load8_le(mem, 4196482bv64) == 10bv8); + free requires (memory_load8_le(mem, 4196483bv64) == 0bv8); + free ensures (memory_load64_le(mem, 4196472bv64) == 131073bv64); + free ensures (memory_load8_le(mem, 4196480bv64) == 37bv8); + free ensures (memory_load8_le(mem, 4196481bv64) == 100bv8); + free ensures (memory_load8_le(mem, 4196482bv64) == 10bv8); + free ensures (memory_load8_le(mem, 4196483bv64) == 0bv8); + +implementation get_two() { - var Gamma_load12: bool; - var Gamma_load13: bool; - var Gamma_load14: bool; - var load12: bv8; - var load13: bv32; - var load14: bv64; - get_two_1876__0__lkvQp5JbQXmQ~jsXqPsRSw: - assume {:captureState "get_two_1876__0__lkvQp5JbQXmQ~jsXqPsRSw"} true; - R31, Gamma_R31 := bvadd64(R31, 18446744073709551600bv64), Gamma_R31; - stack, Gamma_stack := memory_store8_le(stack, bvadd64(R31, 15bv64), R0[8:0]), gamma_store8(Gamma_stack, bvadd64(R31, 15bv64), Gamma_R0); - assume {:captureState "1880_0"} true; - stack, Gamma_stack := memory_store32_le(stack, bvadd64(R31, 8bv64), R1[32:0]), gamma_store32(Gamma_stack, bvadd64(R31, 8bv64), Gamma_R1); - assume {:captureState "1884_0"} true; - stack, Gamma_stack := memory_store64_le(stack, R31, R2), gamma_store64(Gamma_stack, R31, Gamma_R2); - assume {:captureState "1888_0"} true; - load12, Gamma_load12 := memory_load8_le(stack, bvadd64(R31, 15bv64)), gamma_load8(Gamma_stack, bvadd64(R31, 15bv64)); - R1, Gamma_R1 := zero_extend32_32(zero_extend24_8(load12)), Gamma_load12; - load13, Gamma_load13 := memory_load32_le(stack, bvadd64(R31, 8bv64)), gamma_load32(Gamma_stack, bvadd64(R31, 8bv64)); - R0, Gamma_R0 := zero_extend32_32(load13), Gamma_load13; - R0, Gamma_R0 := zero_extend32_32(bvadd32(R1[32:0], R0[32:0])), (Gamma_R0 && Gamma_R1); - R1, Gamma_R1 := zero_extend32_32(R0[32:0]), Gamma_R0; - load14, Gamma_load14 := memory_load64_le(stack, R31), gamma_load64(Gamma_stack, R31); - R0, Gamma_R0 := load14, Gamma_load14; - R0, Gamma_R0 := zero_extend32_32(bvadd32(R1[32:0], R0[32:0])), (Gamma_R0 && Gamma_R1); - R31, Gamma_R31 := bvadd64(R31, 16bv64), Gamma_R31; - goto get_two_1876_basil_return; - get_two_1876_basil_return: - assume {:captureState "get_two_1876_basil_return"} true; + $get_two$__0__$lFxxVCVARIKoZ6fzUj5YPw: + assume {:captureState "$get_two$__0__$lFxxVCVARIKoZ6fzUj5YPw"} true; + R1, Gamma_R1 := zero_extend32_32(bvadd32(R1[32:0], R2[32:0])), (Gamma_R2 && Gamma_R1); + R0, Gamma_R0 := zero_extend32_32(bvadd32(R1[32:0], zero_extend24_8(R0[8:0]))), (Gamma_R0 && Gamma_R1); + R1, Gamma_R1 := 0bv64, true; + R2, Gamma_R2 := 0bv64, true; + goto get_two_basil_return; + get_two_basil_return: + assume {:captureState "get_two_basil_return"} true; return; } -procedure main_1924(); - modifies Gamma_R0, Gamma_R1, Gamma_R16, Gamma_R17, Gamma_R2, Gamma_R29, Gamma_R30, Gamma_R31, Gamma_mem, Gamma_stack, R0, R1, R16, R17, R2, R29, R30, R31, mem, stack; - free requires (memory_load64_le(mem, 69632bv64) == 0bv64); - free requires (memory_load64_le(mem, 69640bv64) == 69640bv64); - free requires (memory_load64_le(mem, 2048bv64) == 131073bv64); - free requires (memory_load8_le(mem, 2056bv64) == 37bv8); - free requires (memory_load8_le(mem, 2057bv64) == 100bv8); - free requires (memory_load8_le(mem, 2058bv64) == 10bv8); - free requires (memory_load8_le(mem, 2059bv64) == 0bv8); - free requires (memory_load64_le(mem, 69008bv64) == 1872bv64); - free requires (memory_load64_le(mem, 69016bv64) == 1792bv64); - free requires (memory_load64_le(mem, 69616bv64) == 1924bv64); - free requires (memory_load64_le(mem, 69640bv64) == 69640bv64); +procedure main(); + modifies Gamma_R0, Gamma_R1, Gamma_R16, Gamma_R17, Gamma_R2, Gamma_R29, Gamma_R3, Gamma_R30, Gamma_R31, Gamma_R4, Gamma_mem, Gamma_stack, R0, R1, R16, R17, R2, R29, R3, R30, R31, R4, mem, stack; + free requires (memory_load64_le(mem, 4325376bv64) == 0bv64); + free requires (memory_load64_le(mem, 4325384bv64) == 0bv64); + free requires (memory_load64_le(mem, 4196472bv64) == 131073bv64); + free requires (memory_load8_le(mem, 4196480bv64) == 37bv8); + free requires (memory_load8_le(mem, 4196481bv64) == 100bv8); + free requires (memory_load8_le(mem, 4196482bv64) == 10bv8); + free requires (memory_load8_le(mem, 4196483bv64) == 0bv8); free ensures (Gamma_R29 == old(Gamma_R29)); free ensures (Gamma_R31 == old(Gamma_R31)); free ensures (R29 == old(R29)); free ensures (R31 == old(R31)); - free ensures (memory_load64_le(mem, 2048bv64) == 131073bv64); - free ensures (memory_load8_le(mem, 2056bv64) == 37bv8); - free ensures (memory_load8_le(mem, 2057bv64) == 100bv8); - free ensures (memory_load8_le(mem, 2058bv64) == 10bv8); - free ensures (memory_load8_le(mem, 2059bv64) == 0bv8); - free ensures (memory_load64_le(mem, 69008bv64) == 1872bv64); - free ensures (memory_load64_le(mem, 69016bv64) == 1792bv64); - free ensures (memory_load64_le(mem, 69616bv64) == 1924bv64); - free ensures (memory_load64_le(mem, 69640bv64) == 69640bv64); + free ensures (memory_load64_le(mem, 4196472bv64) == 131073bv64); + free ensures (memory_load8_le(mem, 4196480bv64) == 37bv8); + free ensures (memory_load8_le(mem, 4196481bv64) == 100bv8); + free ensures (memory_load8_le(mem, 4196482bv64) == 10bv8); + free ensures (memory_load8_le(mem, 4196483bv64) == 0bv8); -implementation main_1924() +implementation main() { - var Cse0__5_0_0: bv64; - var Gamma_Cse0__5_0_0: bool; - var Gamma_load24: bool; - var Gamma_load25: bool; - var Gamma_load26: bool; - var load24: bv64; - var load25: bv64; - var load26: bv32; - main_1924__0__esMR8CLvRH6F_3cHhuaI0Q: - assume {:captureState "main_1924__0__esMR8CLvRH6F_3cHhuaI0Q"} true; - Cse0__5_0_0, Gamma_Cse0__5_0_0 := bvadd64(R31, 18446744073709551600bv64), Gamma_R31; - stack, Gamma_stack := memory_store64_le(stack, Cse0__5_0_0, R29), gamma_store64(Gamma_stack, Cse0__5_0_0, Gamma_R29); - assume {:captureState "1924_1"} true; - stack, Gamma_stack := memory_store64_le(stack, bvadd64(Cse0__5_0_0, 8bv64), R30), gamma_store64(Gamma_stack, bvadd64(Cse0__5_0_0, 8bv64), Gamma_R30); - assume {:captureState "1924_2"} true; - R31, Gamma_R31 := Cse0__5_0_0, Gamma_Cse0__5_0_0; - R29, Gamma_R29 := R31, Gamma_R31; - R0, Gamma_R0 := 69632bv64, true; - R0, Gamma_R0 := bvadd64(R0, 20bv64), Gamma_R0; - R1, Gamma_R1 := 1bv64, true; + var $load16: bv64; + var $load17: bv64; + var $load18: bv64; + var $load19: bv64; + var Cse0__5$2$2: bv64; + var Gamma_$load16: bool; + var Gamma_$load17: bool; + var Gamma_$load18: bool; + var Gamma_$load19: bool; + var Gamma_Cse0__5$2$2: bool; + $main$__0__$fxMAJl44TWOTA8IHVD8V7Q: + assume {:captureState "$main$__0__$fxMAJl44TWOTA8IHVD8V7Q"} true; + R3, Gamma_R3 := 4321280bv64, true; call rely(); - assert (L(mem, R0) ==> Gamma_R1); - mem, Gamma_mem := memory_store32_le(mem, R0, R1[32:0]), gamma_store32(Gamma_mem, R0, Gamma_R1); - assume {:captureState "1944_0"} true; + $load18, Gamma_$load18 := memory_load64_le(mem, bvadd64(R3, 4064bv64)), (gamma_load64(Gamma_mem, bvadd64(R3, 4064bv64)) || L(mem, bvadd64(R3, 4064bv64))); + R3, Gamma_R3 := $load18, Gamma_$load18; + Cse0__5$2$2, Gamma_Cse0__5$2$2 := bvadd64(R31, 18446744073709551600bv64), Gamma_R31; + stack, Gamma_stack := memory_store64_le(stack, Cse0__5$2$2, R29), gamma_store64(Gamma_stack, Cse0__5$2$2, Gamma_R29); + assume {:captureState "4196040$1"} true; + stack, Gamma_stack := memory_store64_le(stack, bvadd64(Cse0__5$2$2, 8bv64), R30), gamma_store64(Gamma_stack, bvadd64(Cse0__5$2$2, 8bv64), Gamma_R30); + assume {:captureState "4196040$2"} true; + R31, Gamma_R31 := Cse0__5$2$2, Gamma_Cse0__5$2$2; + R4, Gamma_R4 := 1bv64, true; R2, Gamma_R2 := 58368bv64, true; + R29, Gamma_R29 := R31, Gamma_R31; R2, Gamma_R2 := (R2[64:32] ++ (21515bv16 ++ R2[16:0])), Gamma_R2; R2, Gamma_R2 := (R2[64:48] ++ (2bv16 ++ R2[32:0])), Gamma_R2; R1, Gamma_R1 := 10bv64, true; R0, Gamma_R0 := 97bv64, true; - R30, Gamma_R30 := 1972bv64, true; - call get_two_1876(); - goto main_1924__1__zo98bL2YRTak5~76VWgMlQ; - main_1924__1__zo98bL2YRTak5~76VWgMlQ: - assume {:captureState "main_1924__1__zo98bL2YRTak5~76VWgMlQ"} true; - R1, Gamma_R1 := zero_extend32_32(R0[32:0]), Gamma_R0; - R0, Gamma_R0 := 69632bv64, true; - R0, Gamma_R0 := bvadd64(R0, 24bv64), Gamma_R0; call rely(); - assert (L(mem, R0) ==> Gamma_R1); - mem, Gamma_mem := memory_store32_le(mem, R0, R1[32:0]), gamma_store32(Gamma_mem, R0, Gamma_R1); - assume {:captureState "1984_0"} true; - R0, Gamma_R0 := 69632bv64, true; - R0, Gamma_R0 := bvadd64(R0, 24bv64), Gamma_R0; + assert (L(mem, R3) ==> Gamma_R4); + mem, Gamma_mem := memory_store32_le(mem, R3, R4[32:0]), gamma_store32(Gamma_mem, R3, Gamma_R4); + assume {:captureState "4196072$0"} true; + R30, Gamma_R30 := 4196080bv64, true; + call get_two(); + goto $main$__1__$yQ1z8A~IRoSs4MRYTbbghg; + $main$__1__$yQ1z8A~IRoSs4MRYTbbghg: + assume {:captureState "$main$__1__$yQ1z8A~IRoSs4MRYTbbghg"} true; + R2, Gamma_R2 := zero_extend32_32(R0[32:0]), Gamma_R0; + R3, Gamma_R3 := 4321280bv64, true; call rely(); - load26, Gamma_load26 := memory_load32_le(mem, R0), (gamma_load32(Gamma_mem, R0) || L(mem, R0)); - R0, Gamma_R0 := zero_extend32_32(load26), Gamma_load26; - R1, Gamma_R1 := zero_extend32_32(R0[32:0]), Gamma_R0; - R0, Gamma_R0 := 0bv64, true; - R0, Gamma_R0 := bvadd64(R0, 2056bv64), Gamma_R0; - R30, Gamma_R30 := 2016bv64, true; - call FUN_630_1584(); - goto main_1924__2__gcXQRbmQRZq8EOqfqswOIw; - main_1924__2__gcXQRbmQRZq8EOqfqswOIw: - assume {:captureState "main_1924__2__gcXQRbmQRZq8EOqfqswOIw"} true; + $load19, Gamma_$load19 := memory_load64_le(mem, bvadd64(R3, 4080bv64)), (gamma_load64(Gamma_mem, bvadd64(R3, 4080bv64)) || L(mem, bvadd64(R3, 4080bv64))); + R3, Gamma_R3 := $load19, Gamma_$load19; + R1, Gamma_R1 := 4194304bv64, true; + R0, Gamma_R0 := 2bv64, true; + R1, Gamma_R1 := bvadd64(R1, 2176bv64), Gamma_R1; + call rely(); + assert (L(mem, R3) ==> Gamma_R2); + mem, Gamma_mem := memory_store32_le(mem, R3, R2[32:0]), gamma_store32(Gamma_mem, R3, Gamma_R2); + assume {:captureState "4196104$0"} true; + R30, Gamma_R30 := 4196064bv64, true; + call FUN_400680(); + goto $main$__2__$GW0MHC~ORUKlCdpgOcZ6zA; + $main$__2__$GW0MHC~ORUKlCdpgOcZ6zA: + assume {:captureState "$main$__2__$GW0MHC~ORUKlCdpgOcZ6zA"} true; R0, Gamma_R0 := 0bv64, true; - load24, Gamma_load24 := memory_load64_le(stack, R31), gamma_load64(Gamma_stack, R31); - R29, Gamma_R29 := load24, Gamma_load24; - load25, Gamma_load25 := memory_load64_le(stack, bvadd64(R31, 8bv64)), gamma_load64(Gamma_stack, bvadd64(R31, 8bv64)); - R30, Gamma_R30 := load25, Gamma_load25; + $load16, Gamma_$load16 := memory_load64_le(stack, R31), gamma_load64(Gamma_stack, R31); + R29, Gamma_R29 := $load16, Gamma_$load16; + $load17, Gamma_$load17 := memory_load64_le(stack, bvadd64(R31, 8bv64)), gamma_load64(Gamma_stack, bvadd64(R31, 8bv64)); + R30, Gamma_R30 := $load17, Gamma_$load17; R31, Gamma_R31 := bvadd64(R31, 16bv64), Gamma_R31; - goto main_1924_basil_return; - main_1924_basil_return: - assume {:captureState "main_1924_basil_return"} true; + goto main_basil_return; + main_basil_return: + assume {:captureState "main_basil_return"} true; return; } -procedure printf(); - free requires (memory_load64_le(mem, 2048bv64) == 131073bv64); - free requires (memory_load8_le(mem, 2056bv64) == 37bv8); - free requires (memory_load8_le(mem, 2057bv64) == 100bv8); - free requires (memory_load8_le(mem, 2058bv64) == 10bv8); - free requires (memory_load8_le(mem, 2059bv64) == 0bv8); - free requires (memory_load64_le(mem, 69008bv64) == 1872bv64); - free requires (memory_load64_le(mem, 69016bv64) == 1792bv64); - free requires (memory_load64_le(mem, 69616bv64) == 1924bv64); - free requires (memory_load64_le(mem, 69640bv64) == 69640bv64); - free ensures (memory_load64_le(mem, 2048bv64) == 131073bv64); - free ensures (memory_load8_le(mem, 2056bv64) == 37bv8); - free ensures (memory_load8_le(mem, 2057bv64) == 100bv8); - free ensures (memory_load8_le(mem, 2058bv64) == 10bv8); - free ensures (memory_load8_le(mem, 2059bv64) == 0bv8); - free ensures (memory_load64_le(mem, 69008bv64) == 1872bv64); - free ensures (memory_load64_le(mem, 69016bv64) == 1792bv64); - free ensures (memory_load64_le(mem, 69616bv64) == 1924bv64); - free ensures (memory_load64_le(mem, 69640bv64) == 69640bv64); +procedure __printf_chk(); + free requires (memory_load64_le(mem, 4196472bv64) == 131073bv64); + free requires (memory_load8_le(mem, 4196480bv64) == 37bv8); + free requires (memory_load8_le(mem, 4196481bv64) == 100bv8); + free requires (memory_load8_le(mem, 4196482bv64) == 10bv8); + free requires (memory_load8_le(mem, 4196483bv64) == 0bv8); + free ensures (memory_load64_le(mem, 4196472bv64) == 131073bv64); + free ensures (memory_load8_le(mem, 4196480bv64) == 37bv8); + free ensures (memory_load8_le(mem, 4196481bv64) == 100bv8); + free ensures (memory_load8_le(mem, 4196482bv64) == 10bv8); + free ensures (memory_load8_le(mem, 4196483bv64) == 0bv8); diff --git a/src/test/correct/function1/gcc_O2/function1.adt b/src/test/correct/function1/gcc_O2/function1.adt deleted file mode 100644 index 3dfa37490..000000000 --- a/src/test/correct/function1/gcc_O2/function1.adt +++ /dev/null @@ -1,570 +0,0 @@ -Project(Attrs([Attr("filename","\"gcc_O2/function1.out\""), -Attr("image-specification","(declare abi (name str))\n(declare arch (name str))\n(declare base-address (addr int))\n(declare bias (off int))\n(declare bits (size int))\n(declare code-region (addr int) (size int) (off int))\n(declare code-start (addr int))\n(declare entry-point (addr int))\n(declare external-reference (addr int) (name str))\n(declare format (name str))\n(declare is-executable (flag bool))\n(declare is-little-endian (flag bool))\n(declare llvm:base-address (addr int))\n(declare llvm:code-entry (name str) (off int) (size int))\n(declare llvm:coff-import-library (name str))\n(declare llvm:coff-virtual-section-header (name str) (addr int) (size int))\n(declare llvm:elf-program-header (name str) (off int) (size int))\n(declare llvm:elf-program-header-flags (name str) (ld bool) (r bool) \n (w bool) (x bool))\n(declare llvm:elf-virtual-program-header (name str) (addr int) (size int))\n(declare llvm:entry-point (addr int))\n(declare llvm:macho-symbol (name str) (value int))\n(declare llvm:name-reference (at int) (name str))\n(declare llvm:relocation (at int) (addr int))\n(declare llvm:section-entry (name str) (addr int) (size int) (off int))\n(declare llvm:section-flags (name str) (r bool) (w bool) (x bool))\n(declare llvm:segment-command (name str) (off int) (size int))\n(declare llvm:segment-command-flags (name str) (r bool) (w bool) (x bool))\n(declare llvm:symbol-entry (name str) (addr int) (size int) (off int)\n (value int))\n(declare llvm:virtual-segment-command (name str) (addr int) (size int))\n(declare mapped (addr int) (size int) (off int))\n(declare named-region (addr int) (size int) (name str))\n(declare named-symbol (addr int) (name str))\n(declare require (name str))\n(declare section (addr int) (size int))\n(declare segment (addr int) (size int) (r bool) (w bool) (x bool))\n(declare subarch (name str))\n(declare symbol-chunk (addr int) (size int) (root int))\n(declare symbol-value (addr int) (value int))\n(declare system (name str))\n(declare vendor (name str))\n\n(abi unknown)\n(arch aarch64)\n(base-address 0)\n(bias 0)\n(bits 64)\n(code-region 2028 20 2028)\n(code-region 1664 364 1664)\n(code-region 1504 112 1504)\n(code-region 1472 24 1472)\n(code-start 1780)\n(code-start 2016)\n(code-start 1728)\n(code-start 1664)\n(entry-point 1728)\n(external-reference 69592 _ITM_deregisterTMCloneTable)\n(external-reference 69600 __cxa_finalize)\n(external-reference 69608 __gmon_start__)\n(external-reference 69624 _ITM_registerTMCloneTable)\n(external-reference 69544 __libc_start_main)\n(external-reference 69552 __cxa_finalize)\n(external-reference 69560 __printf_chk)\n(external-reference 69568 __gmon_start__)\n(external-reference 69576 abort)\n(format elf)\n(is-executable true)\n(is-little-endian true)\n(llvm:base-address 0)\n(llvm:code-entry abort 0 0)\n(llvm:code-entry __printf_chk 0 0)\n(llvm:code-entry __cxa_finalize 0 0)\n(llvm:code-entry __libc_start_main 0 0)\n(llvm:code-entry _init 1472 0)\n(llvm:code-entry main 1664 60)\n(llvm:code-entry _start 1728 52)\n(llvm:code-entry abort@GLIBC_2.17 0 0)\n(llvm:code-entry __printf_chk@GLIBC_2.17 0 0)\n(llvm:code-entry get_two 2016 12)\n(llvm:code-entry _fini 2028 0)\n(llvm:code-entry __cxa_finalize@GLIBC_2.17 0 0)\n(llvm:code-entry __libc_start_main@GLIBC_2.34 0 0)\n(llvm:code-entry frame_dummy 2000 0)\n(llvm:code-entry __do_global_dtors_aux 1920 0)\n(llvm:code-entry register_tm_clones 1856 0)\n(llvm:code-entry deregister_tm_clones 1808 0)\n(llvm:code-entry call_weak_fn 1780 20)\n(llvm:code-entry .fini 2028 20)\n(llvm:code-entry .text 1664 364)\n(llvm:code-entry .plt 1504 112)\n(llvm:code-entry .init 1472 24)\n(llvm:elf-program-header 08 3472 624)\n(llvm:elf-program-header 07 0 0)\n(llvm:elf-program-header 06 2060 68)\n(llvm:elf-program-header 05 596 68)\n(llvm:elf-program-header 04 3488 496)\n(llvm:elf-program-header 03 3472 640)\n(llvm:elf-program-header 02 0 2320)\n(llvm:elf-program-header 01 568 27)\n(llvm:elf-program-header 00 64 504)\n(llvm:elf-program-header-flags 08 false true false false)\n(llvm:elf-program-header-flags 07 false true true false)\n(llvm:elf-program-header-flags 06 false true false false)\n(llvm:elf-program-header-flags 05 false true false false)\n(llvm:elf-program-header-flags 04 false true true false)\n(llvm:elf-program-header-flags 03 true true true false)\n(llvm:elf-program-header-flags 02 true true false true)\n(llvm:elf-program-header-flags 01 false true false false)\n(llvm:elf-program-header-flags 00 false true false false)\n(llvm:elf-virtual-program-header 08 69008 624)\n(llvm:elf-virtual-program-header 07 0 0)\n(llvm:elf-virtual-program-header 06 2060 68)\n(llvm:elf-virtual-program-header 05 596 68)\n(llvm:elf-virtual-program-header 04 69024 496)\n(llvm:elf-virtual-program-header 03 69008 656)\n(llvm:elf-virtual-program-header 02 0 2320)\n(llvm:elf-virtual-program-header 01 568 27)\n(llvm:elf-virtual-program-header 00 64 504)\n(llvm:entry-point 1728)\n(llvm:name-reference 69576 abort)\n(llvm:name-reference 69568 __gmon_start__)\n(llvm:name-reference 69560 __printf_chk)\n(llvm:name-reference 69552 __cxa_finalize)\n(llvm:name-reference 69544 __libc_start_main)\n(llvm:name-reference 69624 _ITM_registerTMCloneTable)\n(llvm:name-reference 69608 __gmon_start__)\n(llvm:name-reference 69600 __cxa_finalize)\n(llvm:name-reference 69592 _ITM_deregisterTMCloneTable)\n(llvm:section-entry .shstrtab 0 250 6969)\n(llvm:section-entry .strtab 0 577 6392)\n(llvm:section-entry .symtab 0 2232 4160)\n(llvm:section-entry .comment 0 43 4112)\n(llvm:section-entry .bss 69648 16 4112)\n(llvm:section-entry .data 69632 16 4096)\n(llvm:section-entry .got 69520 112 3984)\n(llvm:section-entry .dynamic 69024 496 3488)\n(llvm:section-entry .fini_array 69016 8 3480)\n(llvm:section-entry .init_array 69008 8 3472)\n(llvm:section-entry .eh_frame 2128 192 2128)\n(llvm:section-entry .eh_frame_hdr 2060 68 2060)\n(llvm:section-entry .rodata 2048 12 2048)\n(llvm:section-entry .fini 2028 20 2028)\n(llvm:section-entry .text 1664 364 1664)\n(llvm:section-entry .plt 1504 112 1504)\n(llvm:section-entry .init 1472 24 1472)\n(llvm:section-entry .rela.plt 1352 120 1352)\n(llvm:section-entry .rela.dyn 1160 192 1160)\n(llvm:section-entry .gnu.version_r 1112 48 1112)\n(llvm:section-entry .gnu.version 1090 20 1090)\n(llvm:section-entry .dynstr 936 154 936)\n(llvm:section-entry .dynsym 696 240 696)\n(llvm:section-entry .gnu.hash 664 28 664)\n(llvm:section-entry .note.ABI-tag 632 32 632)\n(llvm:section-entry .note.gnu.build-id 596 36 596)\n(llvm:section-entry .interp 568 27 568)\n(llvm:section-flags .shstrtab true false false)\n(llvm:section-flags .strtab true false false)\n(llvm:section-flags .symtab true false false)\n(llvm:section-flags .comment true false false)\n(llvm:section-flags .bss true true false)\n(llvm:section-flags .data true true false)\n(llvm:section-flags .got true true false)\n(llvm:section-flags .dynamic true true false)\n(llvm:section-flags .fini_array true true false)\n(llvm:section-flags .init_array true true false)\n(llvm:section-flags .eh_frame true false false)\n(llvm:section-flags .eh_frame_hdr true false false)\n(llvm:section-flags .rodata true false false)\n(llvm:section-flags .fini true false true)\n(llvm:section-flags .text true false true)\n(llvm:section-flags .plt true false true)\n(llvm:section-flags .init true false true)\n(llvm:section-flags .rela.plt true false false)\n(llvm:section-flags .rela.dyn true false false)\n(llvm:section-flags .gnu.version_r true false false)\n(llvm:section-flags .gnu.version true false false)\n(llvm:section-flags .dynstr true false false)\n(llvm:section-flags .dynsym true false false)\n(llvm:section-flags .gnu.hash true false false)\n(llvm:section-flags .note.ABI-tag true false false)\n(llvm:section-flags .note.gnu.build-id true false false)\n(llvm:section-flags .interp true false false)\n(llvm:symbol-entry abort 0 0 0 0)\n(llvm:symbol-entry __printf_chk 0 0 0 0)\n(llvm:symbol-entry __cxa_finalize 0 0 0 0)\n(llvm:symbol-entry __libc_start_main 0 0 0 0)\n(llvm:symbol-entry _init 1472 0 1472 1472)\n(llvm:symbol-entry main 1664 60 1664 1664)\n(llvm:symbol-entry _start 1728 52 1728 1728)\n(llvm:symbol-entry abort@GLIBC_2.17 0 0 0 0)\n(llvm:symbol-entry __printf_chk@GLIBC_2.17 0 0 0 0)\n(llvm:symbol-entry get_two 2016 12 2016 2016)\n(llvm:symbol-entry _fini 2028 0 2028 2028)\n(llvm:symbol-entry __cxa_finalize@GLIBC_2.17 0 0 0 0)\n(llvm:symbol-entry __libc_start_main@GLIBC_2.34 0 0 0 0)\n(llvm:symbol-entry frame_dummy 2000 0 2000 2000)\n(llvm:symbol-entry __do_global_dtors_aux 1920 0 1920 1920)\n(llvm:symbol-entry register_tm_clones 1856 0 1856 1856)\n(llvm:symbol-entry deregister_tm_clones 1808 0 1808 1808)\n(llvm:symbol-entry call_weak_fn 1780 20 1780 1780)\n(mapped 0 2320 0)\n(mapped 69008 640 3472)\n(named-region 0 2320 02)\n(named-region 69008 656 03)\n(named-region 568 27 .interp)\n(named-region 596 36 .note.gnu.build-id)\n(named-region 632 32 .note.ABI-tag)\n(named-region 664 28 .gnu.hash)\n(named-region 696 240 .dynsym)\n(named-region 936 154 .dynstr)\n(named-region 1090 20 .gnu.version)\n(named-region 1112 48 .gnu.version_r)\n(named-region 1160 192 .rela.dyn)\n(named-region 1352 120 .rela.plt)\n(named-region 1472 24 .init)\n(named-region 1504 112 .plt)\n(named-region 1664 364 .text)\n(named-region 2028 20 .fini)\n(named-region 2048 12 .rodata)\n(named-region 2060 68 .eh_frame_hdr)\n(named-region 2128 192 .eh_frame)\n(named-region 69008 8 .init_array)\n(named-region 69016 8 .fini_array)\n(named-region 69024 496 .dynamic)\n(named-region 69520 112 .got)\n(named-region 69632 16 .data)\n(named-region 69648 16 .bss)\n(named-region 0 43 .comment)\n(named-region 0 2232 .symtab)\n(named-region 0 577 .strtab)\n(named-region 0 250 .shstrtab)\n(named-symbol 1780 call_weak_fn)\n(named-symbol 1808 deregister_tm_clones)\n(named-symbol 1856 register_tm_clones)\n(named-symbol 1920 __do_global_dtors_aux)\n(named-symbol 2000 frame_dummy)\n(named-symbol 0 __libc_start_main@GLIBC_2.34)\n(named-symbol 0 __cxa_finalize@GLIBC_2.17)\n(named-symbol 2028 _fini)\n(named-symbol 2016 get_two)\n(named-symbol 0 __printf_chk@GLIBC_2.17)\n(named-symbol 0 abort@GLIBC_2.17)\n(named-symbol 1728 _start)\n(named-symbol 1664 main)\n(named-symbol 1472 _init)\n(named-symbol 0 __libc_start_main)\n(named-symbol 0 __cxa_finalize)\n(named-symbol 0 __printf_chk)\n(named-symbol 0 abort)\n(require libc.so.6)\n(section 568 27)\n(section 596 36)\n(section 632 32)\n(section 664 28)\n(section 696 240)\n(section 936 154)\n(section 1090 20)\n(section 1112 48)\n(section 1160 192)\n(section 1352 120)\n(section 1472 24)\n(section 1504 112)\n(section 1664 364)\n(section 2028 20)\n(section 2048 12)\n(section 2060 68)\n(section 2128 192)\n(section 69008 8)\n(section 69016 8)\n(section 69024 496)\n(section 69520 112)\n(section 69632 16)\n(section 69648 16)\n(section 0 43)\n(section 0 2232)\n(section 0 577)\n(section 0 250)\n(segment 0 2320 true false true)\n(segment 69008 656 true true false)\n(subarch v8)\n(symbol-chunk 1780 20 1780)\n(symbol-chunk 2016 12 2016)\n(symbol-chunk 1728 52 1728)\n(symbol-chunk 1664 60 1664)\n(symbol-value 1780 1780)\n(symbol-value 1808 1808)\n(symbol-value 1856 1856)\n(symbol-value 1920 1920)\n(symbol-value 2000 2000)\n(symbol-value 2028 2028)\n(symbol-value 2016 2016)\n(symbol-value 1728 1728)\n(symbol-value 1664 1664)\n(symbol-value 1472 1472)\n(symbol-value 0 0)\n(system \"\")\n(vendor \"\")\n"), -Attr("abi-name","\"aarch64-linux-gnu-elf\"")]), -Sections([Section(".shstrtab", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\xc0\x06\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x38\x1c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x38\x00\x09\x00\x40\x00\x1c\x00\x1b\x00\x06\x00\x00\x00\x04\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x04\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x09\x00\x00\x00\x00\x00\x00\x10\x09\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x01\x00\x00\x00\x06\x00\x00\x00\x90\x0d\x00\x00\x00\x00\x00\x00\x90\x0d"), -Section(".strtab", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\xc0\x06\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x38\x1c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x38\x00\x09\x00\x40\x00\x1c\x00\x1b\x00\x06\x00\x00\x00\x04\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x04\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x09\x00\x00\x00\x00\x00\x00\x10\x09\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x01\x00\x00\x00\x06\x00\x00\x00\x90\x0d\x00\x00\x00\x00\x00\x00\x90\x0d\x01\x00\x00\x00\x00\x00\x90\x0d\x01\x00\x00\x00\x00\x00\x80\x02\x00\x00\x00\x00\x00\x00\x90\x02\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x02\x00\x00\x00\x06\x00\x00\x00\xa0\x0d\x00\x00\x00\x00\x00\x00\xa0\x0d\x01\x00\x00\x00\x00\x00\xa0\x0d\x01\x00\x00\x00\x00\x00\xf0\x01\x00\x00\x00\x00\x00\x00\xf0\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x04\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x50\xe5\x74\x64\x04\x00\x00\x00\x0c\x08\x00\x00\x00\x00\x00\x00\x0c\x08\x00\x00\x00\x00\x00\x00\x0c\x08\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x51\xe5\x74\x64\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x52\xe5\x74\x64\x04\x00\x00\x00\x90\x0d\x00\x00\x00\x00\x00\x00\x90\x0d\x01\x00\x00\x00\x00\x00\x90\x0d\x01\x00\x00\x00\x00\x00\x70\x02\x00\x00\x00\x00\x00\x00\x70\x02\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x2f\x6c\x69\x62\x2f\x6c\x64\x2d\x6c"), -Section(".symtab", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\xc0\x06\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x38\x1c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x38\x00\x09\x00\x40\x00\x1c\x00\x1b\x00\x06\x00\x00\x00\x04\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x04\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x09\x00\x00\x00\x00\x00\x00\x10\x09\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x01\x00\x00\x00\x06\x00\x00\x00\x90\x0d\x00\x00\x00\x00\x00\x00\x90\x0d\x01\x00\x00\x00\x00\x00\x90\x0d\x01\x00\x00\x00\x00\x00\x80\x02\x00\x00\x00\x00\x00\x00\x90\x02\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x02\x00\x00\x00\x06\x00\x00\x00\xa0\x0d\x00\x00\x00\x00\x00\x00\xa0\x0d\x01\x00\x00\x00\x00\x00\xa0\x0d\x01\x00\x00\x00\x00\x00\xf0\x01\x00\x00\x00\x00\x00\x00\xf0\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x04\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x50\xe5\x74\x64\x04\x00\x00\x00\x0c\x08\x00\x00\x00\x00\x00\x00\x0c\x08\x00\x00\x00\x00\x00\x00\x0c\x08\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x51\xe5\x74\x64\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x52\xe5\x74\x64\x04\x00\x00\x00\x90\x0d\x00\x00\x00\x00\x00\x00\x90\x0d\x01\x00\x00\x00\x00\x00\x90\x0d\x01\x00\x00\x00\x00\x00\x70\x02\x00\x00\x00\x00\x00\x00\x70\x02\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x2f\x6c\x69\x62\x2f\x6c\x64\x2d\x6c\x69\x6e\x75\x78\x2d\x61\x61\x72\x63\x68\x36\x34\x2e\x73\x6f\x2e\x31\x00\x00\x04\x00\x00\x00\x14\x00\x00\x00\x03\x00\x00\x00\x47\x4e\x55\x00\xdc\x57\x4a\xc2\x8c\x0c\x4b\x46\xc1\xf6\xef\xba\x09\x0e\x47\xba\x84\xb9\x65\x67\x04\x00\x00\x00\x10\x00\x00\x00\x01\x00\x00\x00\x47\x4e\x55\x00\x00\x00\x00\x00\x03\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x01\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x0b\x00\xc0\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x16\x00\x00\x10\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1d\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x55\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x22\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x71\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2f\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x80\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5f\x5f\x63\x78\x61\x5f\x66\x69\x6e\x61\x6c\x69\x7a\x65\x00\x5f\x5f\x70\x72\x69\x6e\x74\x66\x5f\x63\x68\x6b\x00\x5f\x5f\x6c\x69\x62\x63\x5f\x73\x74\x61\x72\x74\x5f\x6d\x61\x69\x6e\x00\x61\x62\x6f\x72\x74\x00\x6c\x69\x62\x63\x2e\x73\x6f\x2e\x36\x00\x47\x4c\x49\x42\x43\x5f\x32\x2e\x31\x37\x00\x47\x4c\x49\x42\x43\x5f\x32\x2e\x33\x34\x00\x5f\x49\x54\x4d\x5f\x64\x65\x72\x65\x67\x69\x73\x74\x65\x72\x54\x4d\x43\x6c\x6f\x6e\x65\x54\x61\x62\x6c\x65\x00\x5f\x5f\x67\x6d\x6f\x6e\x5f\x73\x74\x61\x72\x74\x5f\x5f\x00\x5f\x49\x54\x4d\x5f\x72\x65\x67\x69\x73\x74\x65\x72\x54\x4d\x43\x6c\x6f\x6e\x65\x54\x61\x62\x6c\x65\x00\x00\x00\x00\x00\x00\x00\x02\x00\x01\x00\x03\x00\x03\x00\x01\x00\x03\x00\x01\x00\x00\x00\x01\x00\x02\x00\x35\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x97\x91\x96\x06\x00\x00\x03\x00\x3f\x00\x00\x00\x10\x00\x00\x00\xb4\x91\x96\x06\x00\x00\x02\x00\x4a\x00\x00\x00\x00\x00\x00\x00\x90\x0d\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\xd0\x07\x00\x00\x00\x00\x00\x00\x98\x0d\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x80\x07\x00\x00\x00\x00\x00\x00\xf0\x0f\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x80\x06\x00\x00\x00\x00\x00\x00\x08\x10\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x08\x10\x01\x00\x00\x00\x00\x00\xd8\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe0\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe8\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xf8\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x09\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xa8\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xb0\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xb8\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xc0\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xc8\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1f\x20\x03\xd5\xfd\x7b\xbf\xa9\xfd\x03\x00\x91\x4a\x00\x00\x94\xfd\x7b\xc1\xa8\xc0\x03\x5f\xd6\x00\x00\x00\x00\x00\x00\x00\x00\xf0\x7b\xbf\xa9\x90\x00\x00\x90\x11\xd2\x47\xf9\x10\x82\x3e\x91\x20\x02\x1f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x90\x00\x00\x90\x11\xd6\x47\xf9\x10\xa2\x3e\x91\x20\x02\x1f\xd6\x90\x00\x00\x90\x11\xda\x47\xf9\x10\xc2\x3e\x91\x20\x02\x1f\xd6\x90\x00\x00\x90\x11\xde\x47\xf9\x10\xe2\x3e\x91\x20\x02\x1f\xd6\x90\x00\x00\x90\x11\xe2\x47\xf9\x10\x02\x3f\x91\x20\x02\x1f\xd6\x90\x00\x00\x90\x11\xe6\x47\xf9\x10\x22\x3f\x91\x20\x02\x1f\xd6\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xfd\x7b\xbf\xa9\x81\x00\x00\xb0\x23\x50\x00\x91\xfd\x03\x00\x91\x62\x8d\x9c\x52\x62\x81\xaa\x72\x20\x00\x80\x52\x20\x14\x00\xb9\x01\x00\x00\x90\x21\x20\x20\x91\x62\x04\x00\xb9\xdd\xff\xff\x97\x00\x00\x80\x52\xfd\x7b\xc1\xa8\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1d\x00\x80\xd2\x1e\x00\x80\xd2\xe5\x03\x00\xaa\xe1\x03\x40\xf9\xe2\x23\x00\x91\xe6\x03\x00\x91\x80\x00\x00\x90\x00\xf8\x47\xf9\x03\x00\x80\xd2\x04\x00\x80\xd2\xc5\xff\xff\x97\xd4\xff\xff\x97\x80\x00\x00\x90\x00\xf4\x47\xf9\x40\x00\x00\xb4\xcc\xff\xff\x17\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x80\x00\x00\xb0\x00\x40\x00\x91\x81\x00\x00\xb0\x21\x40\x00\x91\x3f\x00\x00\xeb\xc0\x00\x00\x54\x81\x00\x00\x90\x21\xec\x47\xf9\x61\x00\x00\xb4\xf0\x03\x01\xaa\x00\x02\x1f\xd6\xc0\x03\x5f\xd6\x80\x00\x00\xb0\x00\x40\x00\x91\x81\x00\x00\xb0\x21\x40\x00\x91\x21\x00\x00\xcb\x22\xfc\x7f\xd3\x41\x0c\x81\x8b\x21\xfc\x41\x93\xc1\x00\x00\xb4\x82\x00\x00\x90\x42\xfc\x47\xf9\x62\x00\x00\xb4\xf0\x03\x02\xaa\x00\x02\x1f\xd6\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\xfd\x7b\xbe\xa9\xfd\x03\x00\x91\xf3\x0b\x00\xf9\x93\x00\x00\xb0\x60\x42\x40\x39\x40\x01\x00\x35\x80\x00\x00\x90\x00\xf0\x47\xf9\x80\x00\x00\xb4\x80\x00\x00\xb0\x00\x04\x40\xf9\x99\xff\xff\x97\xd8\xff\xff\x97\x20\x00\x80\x52\x60\x42\x00\x39\xf3\x0b\x40\xf9\xfd\x7b\xc2\xa8\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\xdc\xff\xff\x17\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x20\x00\x20\x0b\x00\x00\x02\x0b\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\xfd\x7b\xbf\xa9\xfd\x03\x00\x91\xfd\x7b\xc1\xa8\xc0\x03\x5f\xd6\x01\x00\x02\x00\x00\x00\x00\x00\x25\x64\x0a\x00\x01\x1b\x03\x3b\x40\x00\x00\x00\x07\x00\x00\x00\x74\xfe\xff\xff\xe0\x00\x00\x00\xb4\xfe\xff\xff\x58\x00\x00\x00\x04\xff\xff\xff\x6c\x00\x00\x00\x34\xff\xff\xff\x80\x00\x00\x00\x74\xff\xff\xff\x94\x00\x00\x00\xc4\xff\xff\xff\xb8\x00\x00\x00\xd4\xff\xff\xff\xcc\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x01\x7a\x52\x00\x04\x78\x1e\x01\x1b\x0c\x1f\x00\x10\x00\x00\x00\x18\x00\x00\x00\x54\xfe\xff\xff\x34\x00\x00\x00\x00\x41\x07\x1e\x10\x00\x00\x00\x2c\x00\x00\x00\x90\xfe\xff\xff\x30\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x40\x00\x00\x00\xac\xfe\xff\xff\x3c\x00\x00\x00\x00\x00\x00\x00\x20\x00\x00\x00\x54\x00\x00\x00\xd8\xfe\xff\xff\x48\x00\x00\x00\x00\x41\x0e\x20\x9d\x04\x9e\x03"), -Section(".comment", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\xc0\x06\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x38\x1c\x00"), -Section(".interp", 0x238, "\x2f\x6c\x69\x62\x2f\x6c\x64\x2d\x6c\x69\x6e\x75\x78\x2d\x61\x61\x72\x63\x68\x36\x34\x2e\x73\x6f\x2e\x31\x00"), -Section(".note.gnu.build-id", 0x254, "\x04\x00\x00\x00\x14\x00\x00\x00\x03\x00\x00\x00\x47\x4e\x55\x00\xdc\x57\x4a\xc2\x8c\x0c\x4b\x46\xc1\xf6\xef\xba\x09\x0e\x47\xba\x84\xb9\x65\x67"), -Section(".note.ABI-tag", 0x278, "\x04\x00\x00\x00\x10\x00\x00\x00\x01\x00\x00\x00\x47\x4e\x55\x00\x00\x00\x00\x00\x03\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00"), -Section(".gnu.hash", 0x298, "\x01\x00\x00\x00\x01\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".dynsym", 0x2B8, "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x0b\x00\xc0\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x16\x00\x00\x10\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1d\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x55\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x22\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x71\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2f\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x80\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".dynstr", 0x3A8, "\x00\x5f\x5f\x63\x78\x61\x5f\x66\x69\x6e\x61\x6c\x69\x7a\x65\x00\x5f\x5f\x70\x72\x69\x6e\x74\x66\x5f\x63\x68\x6b\x00\x5f\x5f\x6c\x69\x62\x63\x5f\x73\x74\x61\x72\x74\x5f\x6d\x61\x69\x6e\x00\x61\x62\x6f\x72\x74\x00\x6c\x69\x62\x63\x2e\x73\x6f\x2e\x36\x00\x47\x4c\x49\x42\x43\x5f\x32\x2e\x31\x37\x00\x47\x4c\x49\x42\x43\x5f\x32\x2e\x33\x34\x00\x5f\x49\x54\x4d\x5f\x64\x65\x72\x65\x67\x69\x73\x74\x65\x72\x54\x4d\x43\x6c\x6f\x6e\x65\x54\x61\x62\x6c\x65\x00\x5f\x5f\x67\x6d\x6f\x6e\x5f\x73\x74\x61\x72\x74\x5f\x5f\x00\x5f\x49\x54\x4d\x5f\x72\x65\x67\x69\x73\x74\x65\x72\x54\x4d\x43\x6c\x6f\x6e\x65\x54\x61\x62\x6c\x65\x00"), -Section(".gnu.version", 0x442, "\x00\x00\x00\x00\x00\x00\x02\x00\x01\x00\x03\x00\x03\x00\x01\x00\x03\x00\x01\x00"), -Section(".gnu.version_r", 0x458, "\x01\x00\x02\x00\x35\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x97\x91\x96\x06\x00\x00\x03\x00\x3f\x00\x00\x00\x10\x00\x00\x00\xb4\x91\x96\x06\x00\x00\x02\x00\x4a\x00\x00\x00\x00\x00\x00\x00"), -Section(".rela.dyn", 0x488, "\x90\x0d\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\xd0\x07\x00\x00\x00\x00\x00\x00\x98\x0d\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x80\x07\x00\x00\x00\x00\x00\x00\xf0\x0f\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x80\x06\x00\x00\x00\x00\x00\x00\x08\x10\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x08\x10\x01\x00\x00\x00\x00\x00\xd8\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe0\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe8\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xf8\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x09\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".rela.plt", 0x548, "\xa8\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xb0\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xb8\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xc0\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xc8\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".init", 0x5C0, "\x1f\x20\x03\xd5\xfd\x7b\xbf\xa9\xfd\x03\x00\x91\x4a\x00\x00\x94\xfd\x7b\xc1\xa8\xc0\x03\x5f\xd6"), -Section(".plt", 0x5E0, "\xf0\x7b\xbf\xa9\x90\x00\x00\x90\x11\xd2\x47\xf9\x10\x82\x3e\x91\x20\x02\x1f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x90\x00\x00\x90\x11\xd6\x47\xf9\x10\xa2\x3e\x91\x20\x02\x1f\xd6\x90\x00\x00\x90\x11\xda\x47\xf9\x10\xc2\x3e\x91\x20\x02\x1f\xd6\x90\x00\x00\x90\x11\xde\x47\xf9\x10\xe2\x3e\x91\x20\x02\x1f\xd6\x90\x00\x00\x90\x11\xe2\x47\xf9\x10\x02\x3f\x91\x20\x02\x1f\xd6\x90\x00\x00\x90\x11\xe6\x47\xf9\x10\x22\x3f\x91\x20\x02\x1f\xd6"), -Section(".fini", 0x7EC, "\x1f\x20\x03\xd5\xfd\x7b\xbf\xa9\xfd\x03\x00\x91\xfd\x7b\xc1\xa8\xc0\x03\x5f\xd6"), -Section(".rodata", 0x800, "\x01\x00\x02\x00\x00\x00\x00\x00\x25\x64\x0a\x00"), -Section(".eh_frame_hdr", 0x80C, "\x01\x1b\x03\x3b\x40\x00\x00\x00\x07\x00\x00\x00\x74\xfe\xff\xff\xe0\x00\x00\x00\xb4\xfe\xff\xff\x58\x00\x00\x00\x04\xff\xff\xff\x6c\x00\x00\x00\x34\xff\xff\xff\x80\x00\x00\x00\x74\xff\xff\xff\x94\x00\x00\x00\xc4\xff\xff\xff\xb8\x00\x00\x00\xd4\xff\xff\xff\xcc\x00\x00\x00"), -Section(".eh_frame", 0x850, "\x10\x00\x00\x00\x00\x00\x00\x00\x01\x7a\x52\x00\x04\x78\x1e\x01\x1b\x0c\x1f\x00\x10\x00\x00\x00\x18\x00\x00\x00\x54\xfe\xff\xff\x34\x00\x00\x00\x00\x41\x07\x1e\x10\x00\x00\x00\x2c\x00\x00\x00\x90\xfe\xff\xff\x30\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x40\x00\x00\x00\xac\xfe\xff\xff\x3c\x00\x00\x00\x00\x00\x00\x00\x20\x00\x00\x00\x54\x00\x00\x00\xd8\xfe\xff\xff\x48\x00\x00\x00\x00\x41\x0e\x20\x9d\x04\x9e\x03\x42\x93\x02\x4e\xde\xdd\xd3\x0e\x00\x00\x00\x00\x10\x00\x00\x00\x78\x00\x00\x00\x04\xff\xff\xff\x04\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x8c\x00\x00\x00\x00\xff\xff\xff\x0c\x00\x00\x00\x00\x00\x00\x00\x1c\x00\x00\x00\xa0\x00\x00\x00\x8c\xfd\xff\xff\x3c\x00\x00\x00\x00\x41\x0e\x10\x9d\x02\x9e\x01\x4d\xde\xdd\x0e\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".fini_array", 0x10D98, "\x80\x07\x00\x00\x00\x00\x00\x00"), -Section(".dynamic", 0x10DA0, "\x01\x00\x00\x00\x00\x00\x00\x00\x35\x00\x00\x00\x00\x00\x00\x00\x0c\x00\x00\x00\x00\x00\x00\x00\xc0\x05\x00\x00\x00\x00\x00\x00\x0d\x00\x00\x00\x00\x00\x00\x00\xec\x07\x00\x00\x00\x00\x00\x00\x19\x00\x00\x00\x00\x00\x00\x00\x90\x0d\x01\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x1a\x00\x00\x00\x00\x00\x00\x00\x98\x0d\x01\x00\x00\x00\x00\x00\x1c\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\xf5\xfe\xff\x6f\x00\x00\x00\x00\x98\x02\x00\x00\x00\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\xa8\x03\x00\x00\x00\x00\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\xb8\x02\x00\x00\x00\x00\x00\x00\x0a\x00\x00\x00\x00\x00\x00\x00\x9a\x00\x00\x00\x00\x00\x00\x00\x0b\x00\x00\x00\x00\x00\x00\x00\x18\x00\x00\x00\x00\x00\x00\x00\x15\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x90\x0f\x01\x00\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x78\x00\x00\x00\x00\x00\x00\x00\x14\x00\x00\x00\x00\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x17\x00\x00\x00\x00\x00\x00\x00\x48\x05\x00\x00\x00\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x88\x04\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\xc0\x00\x00\x00\x00\x00\x00\x00\x09\x00\x00\x00\x00\x00\x00\x00\x18\x00\x00\x00\x00\x00\x00\x00\x1e\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\xfb\xff\xff\x6f\x00\x00\x00\x00\x01\x00\x00\x08\x00\x00\x00\x00\xfe\xff\xff\x6f\x00\x00\x00\x00\x58\x04\x00\x00\x00\x00\x00\x00\xff\xff\xff\x6f\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\xf0\xff\xff\x6f\x00\x00\x00\x00\x42\x04\x00\x00\x00\x00\x00\x00\xf9\xff\xff\x6f\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".got", 0x10F90, "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe0\x05\x00\x00\x00\x00\x00\x00\xe0\x05\x00\x00\x00\x00\x00\x00\xe0\x05\x00\x00\x00\x00\x00\x00\xe0\x05\x00\x00\x00\x00\x00\x00\xe0\x05\x00\x00\x00\x00\x00\x00\xa0\x0d\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x80\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".data", 0x11000, "\x00\x00\x00\x00\x00\x00\x00\x00\x08\x10\x01\x00\x00\x00\x00\x00"), -Section(".init_array", 0x10D90, "\xd0\x07\x00\x00\x00\x00\x00\x00"), -Section(".text", 0x680, "\xfd\x7b\xbf\xa9\x81\x00\x00\xb0\x23\x50\x00\x91\xfd\x03\x00\x91\x62\x8d\x9c\x52\x62\x81\xaa\x72\x20\x00\x80\x52\x20\x14\x00\xb9\x01\x00\x00\x90\x21\x20\x20\x91\x62\x04\x00\xb9\xdd\xff\xff\x97\x00\x00\x80\x52\xfd\x7b\xc1\xa8\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1d\x00\x80\xd2\x1e\x00\x80\xd2\xe5\x03\x00\xaa\xe1\x03\x40\xf9\xe2\x23\x00\x91\xe6\x03\x00\x91\x80\x00\x00\x90\x00\xf8\x47\xf9\x03\x00\x80\xd2\x04\x00\x80\xd2\xc5\xff\xff\x97\xd4\xff\xff\x97\x80\x00\x00\x90\x00\xf4\x47\xf9\x40\x00\x00\xb4\xcc\xff\xff\x17\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x80\x00\x00\xb0\x00\x40\x00\x91\x81\x00\x00\xb0\x21\x40\x00\x91\x3f\x00\x00\xeb\xc0\x00\x00\x54\x81\x00\x00\x90\x21\xec\x47\xf9\x61\x00\x00\xb4\xf0\x03\x01\xaa\x00\x02\x1f\xd6\xc0\x03\x5f\xd6\x80\x00\x00\xb0\x00\x40\x00\x91\x81\x00\x00\xb0\x21\x40\x00\x91\x21\x00\x00\xcb\x22\xfc\x7f\xd3\x41\x0c\x81\x8b\x21\xfc\x41\x93\xc1\x00\x00\xb4\x82\x00\x00\x90\x42\xfc\x47\xf9\x62\x00\x00\xb4\xf0\x03\x02\xaa\x00\x02\x1f\xd6\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\xfd\x7b\xbe\xa9\xfd\x03\x00\x91\xf3\x0b\x00\xf9\x93\x00\x00\xb0\x60\x42\x40\x39\x40\x01\x00\x35\x80\x00\x00\x90\x00\xf0\x47\xf9\x80\x00\x00\xb4\x80\x00\x00\xb0\x00\x04\x40\xf9\x99\xff\xff\x97\xd8\xff\xff\x97\x20\x00\x80\x52\x60\x42\x00\x39\xf3\x0b\x40\xf9\xfd\x7b\xc2\xa8\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\xdc\xff\xff\x17\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x20\x00\x20\x0b\x00\x00\x02\x0b\xc0\x03\x5f\xd6")]), -Memmap([Annotation(Region(0x0,0x90F), Attr("segment","02 0 2320")), -Annotation(Region(0x680,0x6BB), Attr("symbol","\"main\"")), -Annotation(Region(0x0,0xF9), Attr("section","\".shstrtab\"")), -Annotation(Region(0x0,0x240), Attr("section","\".strtab\"")), -Annotation(Region(0x0,0x8B7), Attr("section","\".symtab\"")), -Annotation(Region(0x0,0x2A), Attr("section","\".comment\"")), -Annotation(Region(0x238,0x252), Attr("section","\".interp\"")), -Annotation(Region(0x254,0x277), Attr("section","\".note.gnu.build-id\"")), -Annotation(Region(0x278,0x297), Attr("section","\".note.ABI-tag\"")), -Annotation(Region(0x298,0x2B3), Attr("section","\".gnu.hash\"")), -Annotation(Region(0x2B8,0x3A7), Attr("section","\".dynsym\"")), -Annotation(Region(0x3A8,0x441), Attr("section","\".dynstr\"")), -Annotation(Region(0x442,0x455), Attr("section","\".gnu.version\"")), -Annotation(Region(0x458,0x487), Attr("section","\".gnu.version_r\"")), -Annotation(Region(0x488,0x547), Attr("section","\".rela.dyn\"")), -Annotation(Region(0x548,0x5BF), Attr("section","\".rela.plt\"")), -Annotation(Region(0x5C0,0x5D7), Attr("section","\".init\"")), -Annotation(Region(0x5E0,0x64F), Attr("section","\".plt\"")), -Annotation(Region(0x5C0,0x5D7), Attr("code-region","()")), -Annotation(Region(0x5E0,0x64F), Attr("code-region","()")), -Annotation(Region(0x680,0x6BB), Attr("symbol-info","main 0x680 60")), -Annotation(Region(0x6C0,0x6F3), Attr("symbol","\"_start\"")), -Annotation(Region(0x6C0,0x6F3), Attr("symbol-info","_start 0x6C0 52")), -Annotation(Region(0x6F4,0x707), Attr("symbol","\"call_weak_fn\"")), -Annotation(Region(0x6F4,0x707), Attr("symbol-info","call_weak_fn 0x6F4 20")), -Annotation(Region(0x680,0x7EB), Attr("code-region","()")), -Annotation(Region(0x7E0,0x7EB), Attr("symbol","\"get_two\"")), -Annotation(Region(0x7E0,0x7EB), Attr("symbol-info","get_two 0x7E0 12")), -Annotation(Region(0x7EC,0x7FF), Attr("section","\".fini\"")), -Annotation(Region(0x800,0x80B), Attr("section","\".rodata\"")), -Annotation(Region(0x80C,0x84F), Attr("section","\".eh_frame_hdr\"")), -Annotation(Region(0x850,0x90F), Attr("section","\".eh_frame\"")), -Annotation(Region(0x10D90,0x1100F), Attr("segment","03 0x10D90 656")), -Annotation(Region(0x10D98,0x10D9F), Attr("section","\".fini_array\"")), -Annotation(Region(0x10DA0,0x10F8F), Attr("section","\".dynamic\"")), -Annotation(Region(0x10F90,0x10FFF), Attr("section","\".got\"")), -Annotation(Region(0x11000,0x1100F), Attr("section","\".data\"")), -Annotation(Region(0x10D90,0x10D97), Attr("section","\".init_array\"")), -Annotation(Region(0x680,0x7EB), Attr("section","\".text\"")), -Annotation(Region(0x7EC,0x7FF), Attr("code-region","()"))]), -Program(Tid(1_553, "%00000611"), Attrs([]), - Subs([Sub(Tid(1_499, "@__cxa_finalize"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x610"), -Attr("stub","()")]), "__cxa_finalize", Args([Arg(Tid(1_554, "%00000612"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("__cxa_finalize_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(968, "@__cxa_finalize"), - Attrs([Attr("address","0x610")]), Phis([]), -Defs([Def(Tid(1_232, "%000004d0"), Attrs([Attr("address","0x610"), -Attr("insn","adrp x16, #65536")]), Var("R16",Imm(64)), Int(65536,64)), -Def(Tid(1_239, "%000004d7"), Attrs([Attr("address","0x614"), -Attr("insn","ldr x17, [x16, #0xfb0]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(4016,64)),LittleEndian(),64)), -Def(Tid(1_245, "%000004dd"), Attrs([Attr("address","0x618"), -Attr("insn","add x16, x16, #0xfb0")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(4016,64)))]), Jmps([Call(Tid(1_250, "%000004e2"), - Attrs([Attr("address","0x61C"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), -Sub(Tid(1_500, "@__do_global_dtors_aux"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x780")]), - "__do_global_dtors_aux", Args([Arg(Tid(1_555, "%00000613"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("__do_global_dtors_aux_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(796, "@__do_global_dtors_aux"), - Attrs([Attr("address","0x780")]), Phis([]), Defs([Def(Tid(800, "%00000320"), - Attrs([Attr("address","0x780"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("#4",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(18446744073709551584,64))), -Def(Tid(806, "%00000326"), Attrs([Attr("address","0x780"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("#4",Imm(64)),Var("R29",Imm(64)),LittleEndian(),64)), -Def(Tid(812, "%0000032c"), Attrs([Attr("address","0x780"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("#4",Imm(64)),Int(8,64)),Var("R30",Imm(64)),LittleEndian(),64)), -Def(Tid(816, "%00000330"), Attrs([Attr("address","0x780"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("R31",Imm(64)), -Var("#4",Imm(64))), Def(Tid(822, "%00000336"), - Attrs([Attr("address","0x784"), Attr("insn","mov x29, sp")]), - Var("R29",Imm(64)), Var("R31",Imm(64))), Def(Tid(830, "%0000033e"), - Attrs([Attr("address","0x788"), Attr("insn","str x19, [sp, #0x10]")]), - Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(16,64)),Var("R19",Imm(64)),LittleEndian(),64)), -Def(Tid(835, "%00000343"), Attrs([Attr("address","0x78C"), -Attr("insn","adrp x19, #69632")]), Var("R19",Imm(64)), Int(69632,64)), -Def(Tid(842, "%0000034a"), Attrs([Attr("address","0x790"), -Attr("insn","ldrb w0, [x19, #0x10]")]), Var("R0",Imm(64)), -UNSIGNED(64,Load(Var("mem",Mem(64,8)),PLUS(Var("R19",Imm(64)),Int(16,64)),LittleEndian(),8)))]), -Jmps([Goto(Tid(849, "%00000351"), Attrs([Attr("address","0x794"), -Attr("insn","cbnz w0, #0x28")]), - NEQ(Extract(31,0,Var("R0",Imm(64))),Int(0,32)), -Direct(Tid(847, "%0000034f"))), Goto(Tid(1_543, "%00000607"), Attrs([]), - Int(1,1), Direct(Tid(913, "%00000391")))])), Blk(Tid(913, "%00000391"), - Attrs([Attr("address","0x798")]), Phis([]), Defs([Def(Tid(916, "%00000394"), - Attrs([Attr("address","0x798"), Attr("insn","adrp x0, #65536")]), - Var("R0",Imm(64)), Int(65536,64)), Def(Tid(923, "%0000039b"), - Attrs([Attr("address","0x79C"), Attr("insn","ldr x0, [x0, #0xfe0]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(4064,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(929, "%000003a1"), Attrs([Attr("address","0x7A0"), -Attr("insn","cbz x0, #0x10")]), EQ(Var("R0",Imm(64)),Int(0,64)), -Direct(Tid(927, "%0000039f"))), Goto(Tid(1_544, "%00000608"), Attrs([]), - Int(1,1), Direct(Tid(952, "%000003b8")))])), Blk(Tid(952, "%000003b8"), - Attrs([Attr("address","0x7A4")]), Phis([]), Defs([Def(Tid(955, "%000003bb"), - Attrs([Attr("address","0x7A4"), Attr("insn","adrp x0, #69632")]), - Var("R0",Imm(64)), Int(69632,64)), Def(Tid(962, "%000003c2"), - Attrs([Attr("address","0x7A8"), Attr("insn","ldr x0, [x0, #0x8]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(967, "%000003c7"), Attrs([Attr("address","0x7AC"), -Attr("insn","bl #-0x19c")]), Var("R30",Imm(64)), Int(1968,64))]), -Jmps([Call(Tid(970, "%000003ca"), Attrs([Attr("address","0x7AC"), -Attr("insn","bl #-0x19c")]), Int(1,1), -(Direct(Tid(1_499, "@__cxa_finalize")),Direct(Tid(927, "%0000039f"))))])), -Blk(Tid(927, "%0000039f"), Attrs([Attr("address","0x7B0")]), Phis([]), -Defs([Def(Tid(935, "%000003a7"), Attrs([Attr("address","0x7B0"), -Attr("insn","bl #-0xa0")]), Var("R30",Imm(64)), Int(1972,64))]), -Jmps([Call(Tid(937, "%000003a9"), Attrs([Attr("address","0x7B0"), -Attr("insn","bl #-0xa0")]), Int(1,1), -(Direct(Tid(1_514, "@deregister_tm_clones")),Direct(Tid(939, "%000003ab"))))])), -Blk(Tid(939, "%000003ab"), Attrs([Attr("address","0x7B4")]), Phis([]), -Defs([Def(Tid(942, "%000003ae"), Attrs([Attr("address","0x7B4"), -Attr("insn","mov w0, #0x1")]), Var("R0",Imm(64)), Int(1,64)), -Def(Tid(950, "%000003b6"), Attrs([Attr("address","0x7B8"), -Attr("insn","strb w0, [x19, #0x10]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R19",Imm(64)),Int(16,64)),Extract(7,0,Var("R0",Imm(64))),LittleEndian(),8))]), -Jmps([Goto(Tid(1_545, "%00000609"), Attrs([]), Int(1,1), -Direct(Tid(847, "%0000034f")))])), Blk(Tid(847, "%0000034f"), - Attrs([Attr("address","0x7BC")]), Phis([]), Defs([Def(Tid(857, "%00000359"), - Attrs([Attr("address","0x7BC"), Attr("insn","ldr x19, [sp, #0x10]")]), - Var("R19",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(16,64)),LittleEndian(),64)), -Def(Tid(864, "%00000360"), Attrs([Attr("address","0x7C0"), -Attr("insn","ldp x29, x30, [sp], #0x20")]), Var("R29",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(869, "%00000365"), Attrs([Attr("address","0x7C0"), -Attr("insn","ldp x29, x30, [sp], #0x20")]), Var("R30",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(873, "%00000369"), Attrs([Attr("address","0x7C0"), -Attr("insn","ldp x29, x30, [sp], #0x20")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(32,64)))]), Jmps([Call(Tid(878, "%0000036e"), - Attrs([Attr("address","0x7C4"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), Sub(Tid(1_504, "@__libc_start_main"), - Attrs([Attr("c.proto","signed (*)(signed (*)(signed , char** , char** );* main, signed , char** , \nvoid* auxv)"), -Attr("address","0x600"), Attr("stub","()")]), "__libc_start_main", - Args([Arg(Tid(1_556, "%00000614"), - Attrs([Attr("c.layout","**[ : 64]"), -Attr("c.data","Top:u64 ptr ptr"), -Attr("c.type","signed (*)(signed , char** , char** );*")]), - Var("__libc_start_main_main",Imm(64)), Var("R0",Imm(64)), In()), -Arg(Tid(1_557, "%00000615"), Attrs([Attr("c.layout","[signed : 32]"), -Attr("c.data","Top:u32"), Attr("c.type","signed")]), - Var("__libc_start_main_arg2",Imm(32)), LOW(32,Var("R1",Imm(64))), In()), -Arg(Tid(1_558, "%00000616"), Attrs([Attr("c.layout","**[char : 8]"), -Attr("c.data","Top:u8 ptr ptr"), Attr("c.type","char**")]), - Var("__libc_start_main_arg3",Imm(64)), Var("R2",Imm(64)), Both()), -Arg(Tid(1_559, "%00000617"), Attrs([Attr("c.layout","*[ : 8]"), -Attr("c.data","{} ptr"), Attr("c.type","void*")]), - Var("__libc_start_main_auxv",Imm(64)), Var("R3",Imm(64)), Both()), -Arg(Tid(1_560, "%00000618"), Attrs([Attr("c.layout","[signed : 32]"), -Attr("c.data","Top:u32"), Attr("c.type","signed")]), - Var("__libc_start_main_result",Imm(32)), LOW(32,Var("R0",Imm(64))), -Out())]), Blks([Blk(Tid(629, "@__libc_start_main"), - Attrs([Attr("address","0x600")]), Phis([]), -Defs([Def(Tid(1_210, "%000004ba"), Attrs([Attr("address","0x600"), -Attr("insn","adrp x16, #65536")]), Var("R16",Imm(64)), Int(65536,64)), -Def(Tid(1_217, "%000004c1"), Attrs([Attr("address","0x604"), -Attr("insn","ldr x17, [x16, #0xfa8]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(4008,64)),LittleEndian(),64)), -Def(Tid(1_223, "%000004c7"), Attrs([Attr("address","0x608"), -Attr("insn","add x16, x16, #0xfa8")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(4008,64)))]), Jmps([Call(Tid(1_228, "%000004cc"), - Attrs([Attr("address","0x60C"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), Sub(Tid(1_505, "@__printf_chk"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x620"), -Attr("stub","()")]), "__printf_chk", Args([Arg(Tid(1_561, "%00000619"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("__printf_chk_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(534, "@__printf_chk"), - Attrs([Attr("address","0x620")]), Phis([]), -Defs([Def(Tid(1_254, "%000004e6"), Attrs([Attr("address","0x620"), -Attr("insn","adrp x16, #65536")]), Var("R16",Imm(64)), Int(65536,64)), -Def(Tid(1_261, "%000004ed"), Attrs([Attr("address","0x624"), -Attr("insn","ldr x17, [x16, #0xfb8]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(4024,64)),LittleEndian(),64)), -Def(Tid(1_267, "%000004f3"), Attrs([Attr("address","0x628"), -Attr("insn","add x16, x16, #0xfb8")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(4024,64)))]), Jmps([Call(Tid(1_272, "%000004f8"), - Attrs([Attr("address","0x62C"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), Sub(Tid(1_506, "@_fini"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x7EC")]), - "_fini", Args([Arg(Tid(1_562, "%0000061a"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("_fini_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(31, "@_fini"), - Attrs([Attr("address","0x7EC")]), Phis([]), Defs([Def(Tid(37, "%00000025"), - Attrs([Attr("address","0x7F0"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("#0",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(18446744073709551600,64))), -Def(Tid(43, "%0000002b"), Attrs([Attr("address","0x7F0"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("#0",Imm(64)),Var("R29",Imm(64)),LittleEndian(),64)), -Def(Tid(49, "%00000031"), Attrs([Attr("address","0x7F0"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("#0",Imm(64)),Int(8,64)),Var("R30",Imm(64)),LittleEndian(),64)), -Def(Tid(53, "%00000035"), Attrs([Attr("address","0x7F0"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("R31",Imm(64)), -Var("#0",Imm(64))), Def(Tid(59, "%0000003b"), Attrs([Attr("address","0x7F4"), -Attr("insn","mov x29, sp")]), Var("R29",Imm(64)), Var("R31",Imm(64))), -Def(Tid(66, "%00000042"), Attrs([Attr("address","0x7F8"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R29",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(71, "%00000047"), Attrs([Attr("address","0x7F8"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R30",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(75, "%0000004b"), Attrs([Attr("address","0x7F8"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(16,64)))]), Jmps([Call(Tid(80, "%00000050"), - Attrs([Attr("address","0x7FC"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), Sub(Tid(1_507, "@_init"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x5C0")]), - "_init", Args([Arg(Tid(1_563, "%0000061b"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("_init_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(1_344, "@_init"), - Attrs([Attr("address","0x5C0")]), Phis([]), -Defs([Def(Tid(1_350, "%00000546"), Attrs([Attr("address","0x5C4"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("#6",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(18446744073709551600,64))), -Def(Tid(1_356, "%0000054c"), Attrs([Attr("address","0x5C4"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("#6",Imm(64)),Var("R29",Imm(64)),LittleEndian(),64)), -Def(Tid(1_362, "%00000552"), Attrs([Attr("address","0x5C4"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("#6",Imm(64)),Int(8,64)),Var("R30",Imm(64)),LittleEndian(),64)), -Def(Tid(1_366, "%00000556"), Attrs([Attr("address","0x5C4"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("R31",Imm(64)), -Var("#6",Imm(64))), Def(Tid(1_372, "%0000055c"), - Attrs([Attr("address","0x5C8"), Attr("insn","mov x29, sp")]), - Var("R29",Imm(64)), Var("R31",Imm(64))), Def(Tid(1_377, "%00000561"), - Attrs([Attr("address","0x5CC"), Attr("insn","bl #0x128")]), - Var("R30",Imm(64)), Int(1488,64))]), Jmps([Call(Tid(1_379, "%00000563"), - Attrs([Attr("address","0x5CC"), Attr("insn","bl #0x128")]), Int(1,1), -(Direct(Tid(1_512, "@call_weak_fn")),Direct(Tid(1_381, "%00000565"))))])), -Blk(Tid(1_381, "%00000565"), Attrs([Attr("address","0x5D0")]), Phis([]), -Defs([Def(Tid(1_386, "%0000056a"), Attrs([Attr("address","0x5D0"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R29",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(1_391, "%0000056f"), Attrs([Attr("address","0x5D0"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R30",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(1_395, "%00000573"), Attrs([Attr("address","0x5D0"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(16,64)))]), Jmps([Call(Tid(1_400, "%00000578"), - Attrs([Attr("address","0x5D4"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), Sub(Tid(1_508, "@_start"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x6C0"), -Attr("entry-point","()")]), "_start", Args([Arg(Tid(1_564, "%0000061c"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("_start_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(566, "@_start"), - Attrs([Attr("address","0x6C0")]), Phis([]), Defs([Def(Tid(571, "%0000023b"), - Attrs([Attr("address","0x6C4"), Attr("insn","mov x29, #0x0")]), - Var("R29",Imm(64)), Int(0,64)), Def(Tid(576, "%00000240"), - Attrs([Attr("address","0x6C8"), Attr("insn","mov x30, #0x0")]), - Var("R30",Imm(64)), Int(0,64)), Def(Tid(582, "%00000246"), - Attrs([Attr("address","0x6CC"), Attr("insn","mov x5, x0")]), - Var("R5",Imm(64)), Var("R0",Imm(64))), Def(Tid(589, "%0000024d"), - Attrs([Attr("address","0x6D0"), Attr("insn","ldr x1, [sp]")]), - Var("R1",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(595, "%00000253"), Attrs([Attr("address","0x6D4"), -Attr("insn","add x2, sp, #0x8")]), Var("R2",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(8,64))), Def(Tid(601, "%00000259"), - Attrs([Attr("address","0x6D8"), Attr("insn","mov x6, sp")]), - Var("R6",Imm(64)), Var("R31",Imm(64))), Def(Tid(606, "%0000025e"), - Attrs([Attr("address","0x6DC"), Attr("insn","adrp x0, #65536")]), - Var("R0",Imm(64)), Int(65536,64)), Def(Tid(613, "%00000265"), - Attrs([Attr("address","0x6E0"), Attr("insn","ldr x0, [x0, #0xff0]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(4080,64)),LittleEndian(),64)), -Def(Tid(618, "%0000026a"), Attrs([Attr("address","0x6E4"), -Attr("insn","mov x3, #0x0")]), Var("R3",Imm(64)), Int(0,64)), -Def(Tid(623, "%0000026f"), Attrs([Attr("address","0x6E8"), -Attr("insn","mov x4, #0x0")]), Var("R4",Imm(64)), Int(0,64)), -Def(Tid(628, "%00000274"), Attrs([Attr("address","0x6EC"), -Attr("insn","bl #-0xec")]), Var("R30",Imm(64)), Int(1776,64))]), -Jmps([Call(Tid(631, "%00000277"), Attrs([Attr("address","0x6EC"), -Attr("insn","bl #-0xec")]), Int(1,1), -(Direct(Tid(1_504, "@__libc_start_main")),Direct(Tid(633, "%00000279"))))])), -Blk(Tid(633, "%00000279"), Attrs([Attr("address","0x6F0")]), Phis([]), -Defs([Def(Tid(636, "%0000027c"), Attrs([Attr("address","0x6F0"), -Attr("insn","bl #-0xb0")]), Var("R30",Imm(64)), Int(1780,64))]), -Jmps([Call(Tid(639, "%0000027f"), Attrs([Attr("address","0x6F0"), -Attr("insn","bl #-0xb0")]), Int(1,1), -(Direct(Tid(1_511, "@abort")),Direct(Tid(1_546, "%0000060a"))))])), -Blk(Tid(1_546, "%0000060a"), Attrs([]), Phis([]), Defs([]), -Jmps([Call(Tid(1_547, "%0000060b"), Attrs([]), Int(1,1), -(Direct(Tid(1_512, "@call_weak_fn")),))]))])), Sub(Tid(1_511, "@abort"), - Attrs([Attr("noreturn","()"), Attr("c.proto","void (*)(void)"), -Attr("address","0x640"), Attr("stub","()")]), "abort", Args([]), -Blks([Blk(Tid(637, "@abort"), Attrs([Attr("address","0x640")]), Phis([]), -Defs([Def(Tid(1_298, "%00000512"), Attrs([Attr("address","0x640"), -Attr("insn","adrp x16, #65536")]), Var("R16",Imm(64)), Int(65536,64)), -Def(Tid(1_305, "%00000519"), Attrs([Attr("address","0x644"), -Attr("insn","ldr x17, [x16, #0xfc8]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(4040,64)),LittleEndian(),64)), -Def(Tid(1_311, "%0000051f"), Attrs([Attr("address","0x648"), -Attr("insn","add x16, x16, #0xfc8")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(4040,64)))]), Jmps([Call(Tid(1_316, "%00000524"), - Attrs([Attr("address","0x64C"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), Sub(Tid(1_512, "@call_weak_fn"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x6F4")]), - "call_weak_fn", Args([Arg(Tid(1_565, "%0000061d"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("call_weak_fn_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(641, "@call_weak_fn"), - Attrs([Attr("address","0x6F4")]), Phis([]), Defs([Def(Tid(644, "%00000284"), - Attrs([Attr("address","0x6F4"), Attr("insn","adrp x0, #65536")]), - Var("R0",Imm(64)), Int(65536,64)), Def(Tid(651, "%0000028b"), - Attrs([Attr("address","0x6F8"), Attr("insn","ldr x0, [x0, #0xfe8]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(4072,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(657, "%00000291"), Attrs([Attr("address","0x6FC"), -Attr("insn","cbz x0, #0x8")]), EQ(Var("R0",Imm(64)),Int(0,64)), -Direct(Tid(655, "%0000028f"))), Goto(Tid(1_548, "%0000060c"), Attrs([]), - Int(1,1), Direct(Tid(1_032, "%00000408")))])), Blk(Tid(655, "%0000028f"), - Attrs([Attr("address","0x704")]), Phis([]), Defs([]), -Jmps([Call(Tid(663, "%00000297"), Attrs([Attr("address","0x704"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))])), -Blk(Tid(1_032, "%00000408"), Attrs([Attr("address","0x700")]), Phis([]), -Defs([]), Jmps([Goto(Tid(1_035, "%0000040b"), Attrs([Attr("address","0x700"), -Attr("insn","b #-0xd0")]), Int(1,1), -Direct(Tid(1_033, "@__gmon_start__")))])), Blk(Tid(1_033, "@__gmon_start__"), - Attrs([Attr("address","0x630")]), Phis([]), -Defs([Def(Tid(1_276, "%000004fc"), Attrs([Attr("address","0x630"), -Attr("insn","adrp x16, #65536")]), Var("R16",Imm(64)), Int(65536,64)), -Def(Tid(1_283, "%00000503"), Attrs([Attr("address","0x634"), -Attr("insn","ldr x17, [x16, #0xfc0]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(4032,64)),LittleEndian(),64)), -Def(Tid(1_289, "%00000509"), Attrs([Attr("address","0x638"), -Attr("insn","add x16, x16, #0xfc0")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(4032,64)))]), Jmps([Call(Tid(1_294, "%0000050e"), - Attrs([Attr("address","0x63C"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), -Sub(Tid(1_514, "@deregister_tm_clones"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x710")]), - "deregister_tm_clones", Args([Arg(Tid(1_566, "%0000061e"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("deregister_tm_clones_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(669, "@deregister_tm_clones"), - Attrs([Attr("address","0x710")]), Phis([]), Defs([Def(Tid(672, "%000002a0"), - Attrs([Attr("address","0x710"), Attr("insn","adrp x0, #69632")]), - Var("R0",Imm(64)), Int(69632,64)), Def(Tid(678, "%000002a6"), - Attrs([Attr("address","0x714"), Attr("insn","add x0, x0, #0x10")]), - Var("R0",Imm(64)), PLUS(Var("R0",Imm(64)),Int(16,64))), -Def(Tid(683, "%000002ab"), Attrs([Attr("address","0x718"), -Attr("insn","adrp x1, #69632")]), Var("R1",Imm(64)), Int(69632,64)), -Def(Tid(689, "%000002b1"), Attrs([Attr("address","0x71C"), -Attr("insn","add x1, x1, #0x10")]), Var("R1",Imm(64)), -PLUS(Var("R1",Imm(64)),Int(16,64))), Def(Tid(695, "%000002b7"), - Attrs([Attr("address","0x720"), Attr("insn","cmp x1, x0")]), - Var("#2",Imm(64)), NOT(Var("R0",Imm(64)))), Def(Tid(700, "%000002bc"), - Attrs([Attr("address","0x720"), Attr("insn","cmp x1, x0")]), - Var("#3",Imm(64)), PLUS(Var("R1",Imm(64)),NOT(Var("R0",Imm(64))))), -Def(Tid(706, "%000002c2"), Attrs([Attr("address","0x720"), -Attr("insn","cmp x1, x0")]), Var("VF",Imm(1)), -NEQ(SIGNED(65,PLUS(Var("#3",Imm(64)),Int(1,64))),PLUS(PLUS(SIGNED(65,Var("R1",Imm(64))),SIGNED(65,Var("#2",Imm(64)))),Int(1,65)))), -Def(Tid(712, "%000002c8"), Attrs([Attr("address","0x720"), -Attr("insn","cmp x1, x0")]), Var("CF",Imm(1)), -NEQ(UNSIGNED(65,PLUS(Var("#3",Imm(64)),Int(1,64))),PLUS(PLUS(UNSIGNED(65,Var("R1",Imm(64))),UNSIGNED(65,Var("#2",Imm(64)))),Int(1,65)))), -Def(Tid(716, "%000002cc"), Attrs([Attr("address","0x720"), -Attr("insn","cmp x1, x0")]), Var("ZF",Imm(1)), -EQ(PLUS(Var("#3",Imm(64)),Int(1,64)),Int(0,64))), Def(Tid(720, "%000002d0"), - Attrs([Attr("address","0x720"), Attr("insn","cmp x1, x0")]), - Var("NF",Imm(1)), Extract(63,63,PLUS(Var("#3",Imm(64)),Int(1,64))))]), -Jmps([Goto(Tid(726, "%000002d6"), Attrs([Attr("address","0x724"), -Attr("insn","b.eq #0x18")]), EQ(Var("ZF",Imm(1)),Int(1,1)), -Direct(Tid(724, "%000002d4"))), Goto(Tid(1_549, "%0000060d"), Attrs([]), - Int(1,1), Direct(Tid(1_002, "%000003ea")))])), Blk(Tid(1_002, "%000003ea"), - Attrs([Attr("address","0x728")]), Phis([]), -Defs([Def(Tid(1_005, "%000003ed"), Attrs([Attr("address","0x728"), -Attr("insn","adrp x1, #65536")]), Var("R1",Imm(64)), Int(65536,64)), -Def(Tid(1_012, "%000003f4"), Attrs([Attr("address","0x72C"), -Attr("insn","ldr x1, [x1, #0xfd8]")]), Var("R1",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R1",Imm(64)),Int(4056,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(1_017, "%000003f9"), Attrs([Attr("address","0x730"), -Attr("insn","cbz x1, #0xc")]), EQ(Var("R1",Imm(64)),Int(0,64)), -Direct(Tid(724, "%000002d4"))), Goto(Tid(1_550, "%0000060e"), Attrs([]), - Int(1,1), Direct(Tid(1_021, "%000003fd")))])), Blk(Tid(724, "%000002d4"), - Attrs([Attr("address","0x73C")]), Phis([]), Defs([]), -Jmps([Call(Tid(732, "%000002dc"), Attrs([Attr("address","0x73C"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))])), -Blk(Tid(1_021, "%000003fd"), Attrs([Attr("address","0x734")]), Phis([]), -Defs([Def(Tid(1_025, "%00000401"), Attrs([Attr("address","0x734"), -Attr("insn","mov x16, x1")]), Var("R16",Imm(64)), Var("R1",Imm(64)))]), -Jmps([Call(Tid(1_030, "%00000406"), Attrs([Attr("address","0x738"), -Attr("insn","br x16")]), Int(1,1), (Indirect(Var("R16",Imm(64))),))]))])), -Sub(Tid(1_517, "@frame_dummy"), Attrs([Attr("c.proto","signed (*)(void)"), -Attr("address","0x7D0")]), "frame_dummy", Args([Arg(Tid(1_567, "%0000061f"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("frame_dummy_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(884, "@frame_dummy"), - Attrs([Attr("address","0x7D0")]), Phis([]), Defs([]), -Jmps([Call(Tid(886, "%00000376"), Attrs([Attr("address","0x7D0"), -Attr("insn","b #-0x90")]), Int(1,1), -(Direct(Tid(1_520, "@register_tm_clones")),))]))])), -Sub(Tid(1_518, "@get_two"), Attrs([Attr("c.proto","signed (*)(void)"), -Attr("address","0x7E0")]), "get_two", Args([Arg(Tid(1_568, "%00000620"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("get_two_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(894, "@get_two"), - Attrs([Attr("address","0x7E0")]), Phis([]), Defs([Def(Tid(899, "%00000383"), - Attrs([Attr("address","0x7E0"), Attr("insn","add w0, w1, w0, uxtb")]), - Var("R0",Imm(64)), -UNSIGNED(64,PLUS(Extract(31,0,Var("R1",Imm(64))),Concat(Int(0,24),Extract(7,0,Var("R0",Imm(64))))))), -Def(Tid(906, "%0000038a"), Attrs([Attr("address","0x7E4"), -Attr("insn","add w0, w0, w2")]), Var("R0",Imm(64)), -UNSIGNED(64,PLUS(Extract(31,0,Var("R0",Imm(64))),Extract(31,0,Var("R2",Imm(64))))))]), -Jmps([Call(Tid(911, "%0000038f"), Attrs([Attr("address","0x7E8"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))]))])), -Sub(Tid(1_519, "@main"), - Attrs([Attr("c.proto","signed (*)(signed argc, const char** argv)"), -Attr("address","0x680")]), "main", Args([Arg(Tid(1_569, "%00000621"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("main_argc",Imm(32)), -LOW(32,Var("R0",Imm(64))), In()), Arg(Tid(1_570, "%00000622"), - Attrs([Attr("c.layout","**[char : 8]"), Attr("c.data","Top:u8 ptr ptr"), -Attr("c.type"," const char**")]), Var("main_argv",Imm(64)), -Var("R1",Imm(64)), Both()), Arg(Tid(1_571, "%00000623"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("main_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(448, "@main"), - Attrs([Attr("address","0x680")]), Phis([]), Defs([Def(Tid(452, "%000001c4"), - Attrs([Attr("address","0x680"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("#1",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(18446744073709551600,64))), -Def(Tid(458, "%000001ca"), Attrs([Attr("address","0x680"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("#1",Imm(64)),Var("R29",Imm(64)),LittleEndian(),64)), -Def(Tid(464, "%000001d0"), Attrs([Attr("address","0x680"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("#1",Imm(64)),Int(8,64)),Var("R30",Imm(64)),LittleEndian(),64)), -Def(Tid(468, "%000001d4"), Attrs([Attr("address","0x680"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("R31",Imm(64)), -Var("#1",Imm(64))), Def(Tid(473, "%000001d9"), - Attrs([Attr("address","0x684"), Attr("insn","adrp x1, #69632")]), - Var("R1",Imm(64)), Int(69632,64)), Def(Tid(479, "%000001df"), - Attrs([Attr("address","0x688"), Attr("insn","add x3, x1, #0x14")]), - Var("R3",Imm(64)), PLUS(Var("R1",Imm(64)),Int(20,64))), -Def(Tid(485, "%000001e5"), Attrs([Attr("address","0x68C"), -Attr("insn","mov x29, sp")]), Var("R29",Imm(64)), Var("R31",Imm(64))), -Def(Tid(490, "%000001ea"), Attrs([Attr("address","0x690"), -Attr("insn","mov w2, #0xe46b")]), Var("R2",Imm(64)), Int(58475,64)), -Def(Tid(496, "%000001f0"), Attrs([Attr("address","0x694"), -Attr("insn","movk w2, #0x540b, lsl #16")]), Var("R2",Imm(64)), -UNSIGNED(64,Concat(Int(21515,16),Extract(15,0,Var("R2",Imm(64)))))), -Def(Tid(501, "%000001f5"), Attrs([Attr("address","0x698"), -Attr("insn","mov w0, #0x1")]), Var("R0",Imm(64)), Int(1,64)), -Def(Tid(509, "%000001fd"), Attrs([Attr("address","0x69C"), -Attr("insn","str w0, [x1, #0x14]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R1",Imm(64)),Int(20,64)),Extract(31,0,Var("R0",Imm(64))),LittleEndian(),32)), -Def(Tid(514, "%00000202"), Attrs([Attr("address","0x6A0"), -Attr("insn","adrp x1, #0")]), Var("R1",Imm(64)), Int(0,64)), -Def(Tid(520, "%00000208"), Attrs([Attr("address","0x6A4"), -Attr("insn","add x1, x1, #0x808")]), Var("R1",Imm(64)), -PLUS(Var("R1",Imm(64)),Int(2056,64))), Def(Tid(528, "%00000210"), - Attrs([Attr("address","0x6A8"), Attr("insn","str w2, [x3, #0x4]")]), - Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R3",Imm(64)),Int(4,64)),Extract(31,0,Var("R2",Imm(64))),LittleEndian(),32)), -Def(Tid(533, "%00000215"), Attrs([Attr("address","0x6AC"), -Attr("insn","bl #-0x8c")]), Var("R30",Imm(64)), Int(1712,64))]), -Jmps([Call(Tid(536, "%00000218"), Attrs([Attr("address","0x6AC"), -Attr("insn","bl #-0x8c")]), Int(1,1), -(Direct(Tid(1_505, "@__printf_chk")),Direct(Tid(538, "%0000021a"))))])), -Blk(Tid(538, "%0000021a"), Attrs([Attr("address","0x6B0")]), Phis([]), -Defs([Def(Tid(541, "%0000021d"), Attrs([Attr("address","0x6B0"), -Attr("insn","mov w0, #0x0")]), Var("R0",Imm(64)), Int(0,64)), -Def(Tid(548, "%00000224"), Attrs([Attr("address","0x6B4"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R29",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(553, "%00000229"), Attrs([Attr("address","0x6B4"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R30",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(557, "%0000022d"), Attrs([Attr("address","0x6B4"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(16,64)))]), Jmps([Call(Tid(562, "%00000232"), - Attrs([Attr("address","0x6B8"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), -Sub(Tid(1_520, "@register_tm_clones"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x740")]), - "register_tm_clones", Args([Arg(Tid(1_572, "%00000624"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("register_tm_clones_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(734, "@register_tm_clones"), Attrs([Attr("address","0x740")]), - Phis([]), Defs([Def(Tid(737, "%000002e1"), Attrs([Attr("address","0x740"), -Attr("insn","adrp x0, #69632")]), Var("R0",Imm(64)), Int(69632,64)), -Def(Tid(743, "%000002e7"), Attrs([Attr("address","0x744"), -Attr("insn","add x0, x0, #0x10")]), Var("R0",Imm(64)), -PLUS(Var("R0",Imm(64)),Int(16,64))), Def(Tid(748, "%000002ec"), - Attrs([Attr("address","0x748"), Attr("insn","adrp x1, #69632")]), - Var("R1",Imm(64)), Int(69632,64)), Def(Tid(754, "%000002f2"), - Attrs([Attr("address","0x74C"), Attr("insn","add x1, x1, #0x10")]), - Var("R1",Imm(64)), PLUS(Var("R1",Imm(64)),Int(16,64))), -Def(Tid(761, "%000002f9"), Attrs([Attr("address","0x750"), -Attr("insn","sub x1, x1, x0")]), Var("R1",Imm(64)), -PLUS(PLUS(Var("R1",Imm(64)),NOT(Var("R0",Imm(64)))),Int(1,64))), -Def(Tid(767, "%000002ff"), Attrs([Attr("address","0x754"), -Attr("insn","lsr x2, x1, #63")]), Var("R2",Imm(64)), -Concat(Int(0,63),Extract(63,63,Var("R1",Imm(64))))), -Def(Tid(774, "%00000306"), Attrs([Attr("address","0x758"), -Attr("insn","add x1, x2, x1, asr #3")]), Var("R1",Imm(64)), -PLUS(Var("R2",Imm(64)),ARSHIFT(Var("R1",Imm(64)),Int(3,3)))), -Def(Tid(780, "%0000030c"), Attrs([Attr("address","0x75C"), -Attr("insn","asr x1, x1, #1")]), Var("R1",Imm(64)), -SIGNED(64,Extract(63,1,Var("R1",Imm(64)))))]), -Jmps([Goto(Tid(786, "%00000312"), Attrs([Attr("address","0x760"), -Attr("insn","cbz x1, #0x18")]), EQ(Var("R1",Imm(64)),Int(0,64)), -Direct(Tid(784, "%00000310"))), Goto(Tid(1_551, "%0000060f"), Attrs([]), - Int(1,1), Direct(Tid(972, "%000003cc")))])), Blk(Tid(972, "%000003cc"), - Attrs([Attr("address","0x764")]), Phis([]), Defs([Def(Tid(975, "%000003cf"), - Attrs([Attr("address","0x764"), Attr("insn","adrp x2, #65536")]), - Var("R2",Imm(64)), Int(65536,64)), Def(Tid(982, "%000003d6"), - Attrs([Attr("address","0x768"), Attr("insn","ldr x2, [x2, #0xff8]")]), - Var("R2",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R2",Imm(64)),Int(4088,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(987, "%000003db"), Attrs([Attr("address","0x76C"), -Attr("insn","cbz x2, #0xc")]), EQ(Var("R2",Imm(64)),Int(0,64)), -Direct(Tid(784, "%00000310"))), Goto(Tid(1_552, "%00000610"), Attrs([]), - Int(1,1), Direct(Tid(991, "%000003df")))])), Blk(Tid(784, "%00000310"), - Attrs([Attr("address","0x778")]), Phis([]), Defs([]), -Jmps([Call(Tid(792, "%00000318"), Attrs([Attr("address","0x778"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))])), -Blk(Tid(991, "%000003df"), Attrs([Attr("address","0x770")]), Phis([]), -Defs([Def(Tid(995, "%000003e3"), Attrs([Attr("address","0x770"), -Attr("insn","mov x16, x2")]), Var("R16",Imm(64)), Var("R2",Imm(64)))]), -Jmps([Call(Tid(1_000, "%000003e8"), Attrs([Attr("address","0x774"), -Attr("insn","br x16")]), Int(1,1), -(Indirect(Var("R16",Imm(64))),))]))]))]))) \ No newline at end of file diff --git a/src/test/correct/function1/gcc_O2/function1.bir b/src/test/correct/function1/gcc_O2/function1.bir deleted file mode 100644 index 24884499f..000000000 --- a/src/test/correct/function1/gcc_O2/function1.bir +++ /dev/null @@ -1,262 +0,0 @@ -00000611: program -000005db: sub __cxa_finalize(__cxa_finalize_result) -00000612: __cxa_finalize_result :: out u32 = low:32[R0] - -000003c8: -000004d0: R16 := 0x10000 -000004d7: R17 := mem[R16 + 0xFB0, el]:u64 -000004dd: R16 := R16 + 0xFB0 -000004e2: call R17 with noreturn - -000005dc: sub __do_global_dtors_aux(__do_global_dtors_aux_result) -00000613: __do_global_dtors_aux_result :: out u32 = low:32[R0] - -0000031c: -00000320: #4 := R31 - 0x20 -00000326: mem := mem with [#4, el]:u64 <- R29 -0000032c: mem := mem with [#4 + 8, el]:u64 <- R30 -00000330: R31 := #4 -00000336: R29 := R31 -0000033e: mem := mem with [R31 + 0x10, el]:u64 <- R19 -00000343: R19 := 0x11000 -0000034a: R0 := pad:64[mem[R19 + 0x10]] -00000351: when 31:0[R0] <> 0 goto %0000034f -00000607: goto %00000391 - -00000391: -00000394: R0 := 0x10000 -0000039b: R0 := mem[R0 + 0xFE0, el]:u64 -000003a1: when R0 = 0 goto %0000039f -00000608: goto %000003b8 - -000003b8: -000003bb: R0 := 0x11000 -000003c2: R0 := mem[R0 + 8, el]:u64 -000003c7: R30 := 0x7B0 -000003ca: call @__cxa_finalize with return %0000039f - -0000039f: -000003a7: R30 := 0x7B4 -000003a9: call @deregister_tm_clones with return %000003ab - -000003ab: -000003ae: R0 := 1 -000003b6: mem := mem with [R19 + 0x10] <- 7:0[R0] -00000609: goto %0000034f - -0000034f: -00000359: R19 := mem[R31 + 0x10, el]:u64 -00000360: R29 := mem[R31, el]:u64 -00000365: R30 := mem[R31 + 8, el]:u64 -00000369: R31 := R31 + 0x20 -0000036e: call R30 with noreturn - -000005e0: sub __libc_start_main(__libc_start_main_main, __libc_start_main_arg2, __libc_start_main_arg3, __libc_start_main_auxv, __libc_start_main_result) -00000614: __libc_start_main_main :: in u64 = R0 -00000615: __libc_start_main_arg2 :: in u32 = low:32[R1] -00000616: __libc_start_main_arg3 :: in out u64 = R2 -00000617: __libc_start_main_auxv :: in out u64 = R3 -00000618: __libc_start_main_result :: out u32 = low:32[R0] - -00000275: -000004ba: R16 := 0x10000 -000004c1: R17 := mem[R16 + 0xFA8, el]:u64 -000004c7: R16 := R16 + 0xFA8 -000004cc: call R17 with noreturn - -000005e1: sub __printf_chk(__printf_chk_result) -00000619: __printf_chk_result :: out u32 = low:32[R0] - -00000216: -000004e6: R16 := 0x10000 -000004ed: R17 := mem[R16 + 0xFB8, el]:u64 -000004f3: R16 := R16 + 0xFB8 -000004f8: call R17 with noreturn - -000005e2: sub _fini(_fini_result) -0000061a: _fini_result :: out u32 = low:32[R0] - -0000001f: -00000025: #0 := R31 - 0x10 -0000002b: mem := mem with [#0, el]:u64 <- R29 -00000031: mem := mem with [#0 + 8, el]:u64 <- R30 -00000035: R31 := #0 -0000003b: R29 := R31 -00000042: R29 := mem[R31, el]:u64 -00000047: R30 := mem[R31 + 8, el]:u64 -0000004b: R31 := R31 + 0x10 -00000050: call R30 with noreturn - -000005e3: sub _init(_init_result) -0000061b: _init_result :: out u32 = low:32[R0] - -00000540: -00000546: #6 := R31 - 0x10 -0000054c: mem := mem with [#6, el]:u64 <- R29 -00000552: mem := mem with [#6 + 8, el]:u64 <- R30 -00000556: R31 := #6 -0000055c: R29 := R31 -00000561: R30 := 0x5D0 -00000563: call @call_weak_fn with return %00000565 - -00000565: -0000056a: R29 := mem[R31, el]:u64 -0000056f: R30 := mem[R31 + 8, el]:u64 -00000573: R31 := R31 + 0x10 -00000578: call R30 with noreturn - -000005e4: sub _start(_start_result) -0000061c: _start_result :: out u32 = low:32[R0] - -00000236: -0000023b: R29 := 0 -00000240: R30 := 0 -00000246: R5 := R0 -0000024d: R1 := mem[R31, el]:u64 -00000253: R2 := R31 + 8 -00000259: R6 := R31 -0000025e: R0 := 0x10000 -00000265: R0 := mem[R0 + 0xFF0, el]:u64 -0000026a: R3 := 0 -0000026f: R4 := 0 -00000274: R30 := 0x6F0 -00000277: call @__libc_start_main with return %00000279 - -00000279: -0000027c: R30 := 0x6F4 -0000027f: call @abort with return %0000060a - -0000060a: -0000060b: call @call_weak_fn with noreturn - -000005e7: sub abort() - - -0000027d: -00000512: R16 := 0x10000 -00000519: R17 := mem[R16 + 0xFC8, el]:u64 -0000051f: R16 := R16 + 0xFC8 -00000524: call R17 with noreturn - -000005e8: sub call_weak_fn(call_weak_fn_result) -0000061d: call_weak_fn_result :: out u32 = low:32[R0] - -00000281: -00000284: R0 := 0x10000 -0000028b: R0 := mem[R0 + 0xFE8, el]:u64 -00000291: when R0 = 0 goto %0000028f -0000060c: goto %00000408 - -0000028f: -00000297: call R30 with noreturn - -00000408: -0000040b: goto @__gmon_start__ - -00000409: -000004fc: R16 := 0x10000 -00000503: R17 := mem[R16 + 0xFC0, el]:u64 -00000509: R16 := R16 + 0xFC0 -0000050e: call R17 with noreturn - -000005ea: sub deregister_tm_clones(deregister_tm_clones_result) -0000061e: deregister_tm_clones_result :: out u32 = low:32[R0] - -0000029d: -000002a0: R0 := 0x11000 -000002a6: R0 := R0 + 0x10 -000002ab: R1 := 0x11000 -000002b1: R1 := R1 + 0x10 -000002b7: #2 := ~R0 -000002bc: #3 := R1 + ~R0 -000002c2: VF := extend:65[#3 + 1] <> extend:65[R1] + extend:65[#2] + 1 -000002c8: CF := pad:65[#3 + 1] <> pad:65[R1] + pad:65[#2] + 1 -000002cc: ZF := #3 + 1 = 0 -000002d0: NF := 63:63[#3 + 1] -000002d6: when ZF goto %000002d4 -0000060d: goto %000003ea - -000003ea: -000003ed: R1 := 0x10000 -000003f4: R1 := mem[R1 + 0xFD8, el]:u64 -000003f9: when R1 = 0 goto %000002d4 -0000060e: goto %000003fd - -000002d4: -000002dc: call R30 with noreturn - -000003fd: -00000401: R16 := R1 -00000406: call R16 with noreturn - -000005ed: sub frame_dummy(frame_dummy_result) -0000061f: frame_dummy_result :: out u32 = low:32[R0] - -00000374: -00000376: call @register_tm_clones with noreturn - -000005ee: sub get_two(get_two_result) -00000620: get_two_result :: out u32 = low:32[R0] - -0000037e: -00000383: R0 := pad:64[31:0[R1] + (0.7:0[R0])] -0000038a: R0 := pad:64[31:0[R0] + 31:0[R2]] -0000038f: call R30 with noreturn - -000005ef: sub main(main_argc, main_argv, main_result) -00000621: main_argc :: in u32 = low:32[R0] -00000622: main_argv :: in out u64 = R1 -00000623: main_result :: out u32 = low:32[R0] - -000001c0: -000001c4: #1 := R31 - 0x10 -000001ca: mem := mem with [#1, el]:u64 <- R29 -000001d0: mem := mem with [#1 + 8, el]:u64 <- R30 -000001d4: R31 := #1 -000001d9: R1 := 0x11000 -000001df: R3 := R1 + 0x14 -000001e5: R29 := R31 -000001ea: R2 := 0xE46B -000001f0: R2 := pad:64[0x540B.15:0[R2]] -000001f5: R0 := 1 -000001fd: mem := mem with [R1 + 0x14, el]:u32 <- 31:0[R0] -00000202: R1 := 0 -00000208: R1 := R1 + 0x808 -00000210: mem := mem with [R3 + 4, el]:u32 <- 31:0[R2] -00000215: R30 := 0x6B0 -00000218: call @__printf_chk with return %0000021a - -0000021a: -0000021d: R0 := 0 -00000224: R29 := mem[R31, el]:u64 -00000229: R30 := mem[R31 + 8, el]:u64 -0000022d: R31 := R31 + 0x10 -00000232: call R30 with noreturn - -000005f0: sub register_tm_clones(register_tm_clones_result) -00000624: register_tm_clones_result :: out u32 = low:32[R0] - -000002de: -000002e1: R0 := 0x11000 -000002e7: R0 := R0 + 0x10 -000002ec: R1 := 0x11000 -000002f2: R1 := R1 + 0x10 -000002f9: R1 := R1 + ~R0 + 1 -000002ff: R2 := 0.63:63[R1] -00000306: R1 := R2 + (R1 ~>> 3) -0000030c: R1 := extend:64[63:1[R1]] -00000312: when R1 = 0 goto %00000310 -0000060f: goto %000003cc - -000003cc: -000003cf: R2 := 0x10000 -000003d6: R2 := mem[R2 + 0xFF8, el]:u64 -000003db: when R2 = 0 goto %00000310 -00000610: goto %000003df - -00000310: -00000318: call R30 with noreturn - -000003df: -000003e3: R16 := R2 -000003e8: call R16 with noreturn diff --git a/src/test/correct/function1/gcc_O2/function1.expected b/src/test/correct/function1/gcc_O2/function1.expected index 9820f9b8c..4a62fb71a 100644 --- a/src/test/correct/function1/gcc_O2/function1.expected +++ b/src/test/correct/function1/gcc_O2/function1.expected @@ -7,6 +7,7 @@ var {:extern} Gamma_R29: bool; var {:extern} Gamma_R3: bool; var {:extern} Gamma_R30: bool; var {:extern} Gamma_R31: bool; +var {:extern} Gamma_R4: bool; var {:extern} Gamma_mem: [bv64]bool; var {:extern} Gamma_stack: [bv64]bool; var {:extern} R0: bv64; @@ -18,18 +19,20 @@ var {:extern} R29: bv64; var {:extern} R3: bv64; var {:extern} R30: bv64; var {:extern} R31: bv64; +var {:extern} R4: bv64; var {:extern} mem: [bv64]bv8; var {:extern} stack: [bv64]bv8; const {:extern} $_IO_stdin_used_addr: bv64; -axiom ($_IO_stdin_used_addr == 2048bv64); +axiom ($_IO_stdin_used_addr == 4196472bv64); const {:extern} $x_addr: bv64; -axiom ($x_addr == 69652bv64); +axiom ($x_addr == 4325400bv64); const {:extern} $y_addr: bv64; -axiom ($y_addr == 69656bv64); +axiom ($y_addr == 4325396bv64); function {:extern} L(mem$in: [bv64]bv8, index: bv64) returns (bool) { false } +function {:extern} {:bvbuiltin "bvadd"} bvadd32(bv32, bv32) returns (bv32); function {:extern} {:bvbuiltin "bvadd"} bvadd64(bv64, bv64) returns (bv64); function {:extern} gamma_load64(gammaMap: [bv64]bool, index: bv64) returns (bool) { (gammaMap[bvadd64(index, 7bv64)] && (gammaMap[bvadd64(index, 6bv64)] && (gammaMap[bvadd64(index, 5bv64)] && (gammaMap[bvadd64(index, 4bv64)] && (gammaMap[bvadd64(index, 3bv64)] && (gammaMap[bvadd64(index, 2bv64)] && (gammaMap[bvadd64(index, 1bv64)] && gammaMap[index]))))))) @@ -59,20 +62,17 @@ function {:extern} memory_store64_le(memory: [bv64]bv8, index: bv64, value: bv64 memory[index := value[8:0]][bvadd64(index, 1bv64) := value[16:8]][bvadd64(index, 2bv64) := value[24:16]][bvadd64(index, 3bv64) := value[32:24]][bvadd64(index, 4bv64) := value[40:32]][bvadd64(index, 5bv64) := value[48:40]][bvadd64(index, 6bv64) := value[56:48]][bvadd64(index, 7bv64) := value[64:56]] } +function {:extern} {:bvbuiltin "zero_extend 24"} zero_extend24_8(bv8) returns (bv32); function {:extern} {:bvbuiltin "zero_extend 32"} zero_extend32_32(bv32) returns (bv64); procedure {:extern} rely(); modifies Gamma_mem, mem; ensures (Gamma_mem == old(Gamma_mem)); ensures (mem == old(mem)); - free ensures (memory_load64_le(mem, 2048bv64) == 131073bv64); - free ensures (memory_load8_le(mem, 2056bv64) == 37bv8); - free ensures (memory_load8_le(mem, 2057bv64) == 100bv8); - free ensures (memory_load8_le(mem, 2058bv64) == 10bv8); - free ensures (memory_load8_le(mem, 2059bv64) == 0bv8); - free ensures (memory_load64_le(mem, 69008bv64) == 2000bv64); - free ensures (memory_load64_le(mem, 69016bv64) == 1920bv64); - free ensures (memory_load64_le(mem, 69616bv64) == 1664bv64); - free ensures (memory_load64_le(mem, 69640bv64) == 69640bv64); + free ensures (memory_load64_le(mem, 4196472bv64) == 131073bv64); + free ensures (memory_load8_le(mem, 4196480bv64) == 37bv8); + free ensures (memory_load8_le(mem, 4196481bv64) == 100bv8); + free ensures (memory_load8_le(mem, 4196482bv64) == 10bv8); + free ensures (memory_load8_le(mem, 4196483bv64) == 0bv8); procedure {:extern} rely_transitive(); modifies Gamma_mem, mem; @@ -90,100 +90,131 @@ procedure {:extern} rely_reflexive(); procedure {:extern} guarantee_reflexive(); modifies Gamma_mem, mem; -procedure __printf_chk_1568(); +procedure __printf_chk(); modifies Gamma_R16, Gamma_R17, R16, R17; - free requires (memory_load64_le(mem, 2048bv64) == 131073bv64); - free requires (memory_load8_le(mem, 2056bv64) == 37bv8); - free requires (memory_load8_le(mem, 2057bv64) == 100bv8); - free requires (memory_load8_le(mem, 2058bv64) == 10bv8); - free requires (memory_load8_le(mem, 2059bv64) == 0bv8); - free requires (memory_load64_le(mem, 69008bv64) == 2000bv64); - free requires (memory_load64_le(mem, 69016bv64) == 1920bv64); - free requires (memory_load64_le(mem, 69616bv64) == 1664bv64); - free requires (memory_load64_le(mem, 69640bv64) == 69640bv64); - free ensures (memory_load64_le(mem, 2048bv64) == 131073bv64); - free ensures (memory_load8_le(mem, 2056bv64) == 37bv8); - free ensures (memory_load8_le(mem, 2057bv64) == 100bv8); - free ensures (memory_load8_le(mem, 2058bv64) == 10bv8); - free ensures (memory_load8_le(mem, 2059bv64) == 0bv8); - free ensures (memory_load64_le(mem, 69008bv64) == 2000bv64); - free ensures (memory_load64_le(mem, 69016bv64) == 1920bv64); - free ensures (memory_load64_le(mem, 69616bv64) == 1664bv64); - free ensures (memory_load64_le(mem, 69640bv64) == 69640bv64); - -procedure main_1664(); - modifies Gamma_R0, Gamma_R1, Gamma_R16, Gamma_R17, Gamma_R2, Gamma_R29, Gamma_R3, Gamma_R30, Gamma_R31, Gamma_mem, Gamma_stack, R0, R1, R16, R17, R2, R29, R3, R30, R31, mem, stack; - free requires (memory_load64_le(mem, 69632bv64) == 0bv64); - free requires (memory_load64_le(mem, 69640bv64) == 69640bv64); - free requires (memory_load64_le(mem, 2048bv64) == 131073bv64); - free requires (memory_load8_le(mem, 2056bv64) == 37bv8); - free requires (memory_load8_le(mem, 2057bv64) == 100bv8); - free requires (memory_load8_le(mem, 2058bv64) == 10bv8); - free requires (memory_load8_le(mem, 2059bv64) == 0bv8); - free requires (memory_load64_le(mem, 69008bv64) == 2000bv64); - free requires (memory_load64_le(mem, 69016bv64) == 1920bv64); - free requires (memory_load64_le(mem, 69616bv64) == 1664bv64); - free requires (memory_load64_le(mem, 69640bv64) == 69640bv64); + free requires (memory_load64_le(mem, 4196472bv64) == 131073bv64); + free requires (memory_load8_le(mem, 4196480bv64) == 37bv8); + free requires (memory_load8_le(mem, 4196481bv64) == 100bv8); + free requires (memory_load8_le(mem, 4196482bv64) == 10bv8); + free requires (memory_load8_le(mem, 4196483bv64) == 0bv8); + free ensures (memory_load64_le(mem, 4196472bv64) == 131073bv64); + free ensures (memory_load8_le(mem, 4196480bv64) == 37bv8); + free ensures (memory_load8_le(mem, 4196481bv64) == 100bv8); + free ensures (memory_load8_le(mem, 4196482bv64) == 10bv8); + free ensures (memory_load8_le(mem, 4196483bv64) == 0bv8); + +procedure get_two(); + modifies Gamma_R0, Gamma_R1, Gamma_R2, R0, R1, R2; + free requires (memory_load64_le(mem, 4196472bv64) == 131073bv64); + free requires (memory_load8_le(mem, 4196480bv64) == 37bv8); + free requires (memory_load8_le(mem, 4196481bv64) == 100bv8); + free requires (memory_load8_le(mem, 4196482bv64) == 10bv8); + free requires (memory_load8_le(mem, 4196483bv64) == 0bv8); + free ensures (memory_load64_le(mem, 4196472bv64) == 131073bv64); + free ensures (memory_load8_le(mem, 4196480bv64) == 37bv8); + free ensures (memory_load8_le(mem, 4196481bv64) == 100bv8); + free ensures (memory_load8_le(mem, 4196482bv64) == 10bv8); + free ensures (memory_load8_le(mem, 4196483bv64) == 0bv8); + +implementation get_two() +{ + lget_two: + assume {:captureState "lget_two"} true; + R1, Gamma_R1 := zero_extend32_32(bvadd32(R1[32:0], R2[32:0])), (Gamma_R2 && Gamma_R1); + R0, Gamma_R0 := zero_extend32_32(bvadd32(R1[32:0], zero_extend24_8(R0[8:0]))), (Gamma_R0 && Gamma_R1); + R1, Gamma_R1 := 0bv64, true; + R2, Gamma_R2 := 0bv64, true; + goto get_two_basil_return; + get_two_basil_return: + assume {:captureState "get_two_basil_return"} true; + return; +} + +procedure main(); + modifies Gamma_R0, Gamma_R1, Gamma_R16, Gamma_R17, Gamma_R2, Gamma_R29, Gamma_R3, Gamma_R30, Gamma_R31, Gamma_R4, Gamma_mem, Gamma_stack, R0, R1, R16, R17, R2, R29, R3, R30, R31, R4, mem, stack; + free requires (memory_load64_le(mem, 4325376bv64) == 0bv64); + free requires (memory_load64_le(mem, 4325384bv64) == 0bv64); + free requires (memory_load64_le(mem, 4196472bv64) == 131073bv64); + free requires (memory_load8_le(mem, 4196480bv64) == 37bv8); + free requires (memory_load8_le(mem, 4196481bv64) == 100bv8); + free requires (memory_load8_le(mem, 4196482bv64) == 10bv8); + free requires (memory_load8_le(mem, 4196483bv64) == 0bv8); free ensures (Gamma_R29 == old(Gamma_R29)); free ensures (Gamma_R31 == old(Gamma_R31)); free ensures (R29 == old(R29)); free ensures (R31 == old(R31)); - free ensures (memory_load64_le(mem, 2048bv64) == 131073bv64); - free ensures (memory_load8_le(mem, 2056bv64) == 37bv8); - free ensures (memory_load8_le(mem, 2057bv64) == 100bv8); - free ensures (memory_load8_le(mem, 2058bv64) == 10bv8); - free ensures (memory_load8_le(mem, 2059bv64) == 0bv8); - free ensures (memory_load64_le(mem, 69008bv64) == 2000bv64); - free ensures (memory_load64_le(mem, 69016bv64) == 1920bv64); - free ensures (memory_load64_le(mem, 69616bv64) == 1664bv64); - free ensures (memory_load64_le(mem, 69640bv64) == 69640bv64); - -implementation main_1664() + free ensures (memory_load64_le(mem, 4196472bv64) == 131073bv64); + free ensures (memory_load8_le(mem, 4196480bv64) == 37bv8); + free ensures (memory_load8_le(mem, 4196481bv64) == 100bv8); + free ensures (memory_load8_le(mem, 4196482bv64) == 10bv8); + free ensures (memory_load8_le(mem, 4196483bv64) == 0bv8); + +implementation main() { var #1: bv64; + var $load$15: bv64; + var $load$16: bv64; + var $load$17: bv64; + var $load$18: bv64; var Gamma_#1: bool; - var Gamma_load19: bool; - var Gamma_load20: bool; - var load19: bv64; - var load20: bv64; + var Gamma_$load$15: bool; + var Gamma_$load$16: bool; + var Gamma_$load$17: bool; + var Gamma_$load$18: bool; lmain: assume {:captureState "lmain"} true; + R3, Gamma_R3 := 4321280bv64, true; + call rely(); + $load$15, Gamma_$load$15 := memory_load64_le(mem, bvadd64(R3, 4064bv64)), (gamma_load64(Gamma_mem, bvadd64(R3, 4064bv64)) || L(mem, bvadd64(R3, 4064bv64))); + R3, Gamma_R3 := $load$15, Gamma_$load$15; #1, Gamma_#1 := bvadd64(R31, 18446744073709551600bv64), Gamma_R31; stack, Gamma_stack := memory_store64_le(stack, #1, R29), gamma_store64(Gamma_stack, #1, Gamma_R29); - assume {:captureState "%000001ca"} true; + assume {:captureState "%00000290"} true; stack, Gamma_stack := memory_store64_le(stack, bvadd64(#1, 8bv64), R30), gamma_store64(Gamma_stack, bvadd64(#1, 8bv64), Gamma_R30); - assume {:captureState "%000001d0"} true; + assume {:captureState "%00000294"} true; R31, Gamma_R31 := #1, Gamma_#1; - R1, Gamma_R1 := 69632bv64, true; - R3, Gamma_R3 := bvadd64(R1, 20bv64), Gamma_R1; + R4, Gamma_R4 := 1bv64, true; + R2, Gamma_R2 := 58368bv64, true; R29, Gamma_R29 := R31, Gamma_R31; - R2, Gamma_R2 := 58475bv64, true; - R2, Gamma_R2 := zero_extend32_32((21515bv16 ++ R2[16:0])), Gamma_R2; - R0, Gamma_R0 := 1bv64, true; + R2, Gamma_R2 := (R2[64:32] ++ (21515bv16 ++ R2[16:0])), Gamma_R2; + R2, Gamma_R2 := (R2[64:48] ++ (2bv16 ++ R2[32:0])), Gamma_R2; + R1, Gamma_R1 := 10bv64, true; + R0, Gamma_R0 := 97bv64, true; call rely(); - assert (L(mem, bvadd64(R1, 20bv64)) ==> Gamma_R0); - mem, Gamma_mem := memory_store32_le(mem, bvadd64(R1, 20bv64), R0[32:0]), gamma_store32(Gamma_mem, bvadd64(R1, 20bv64), Gamma_R0); - assume {:captureState "%000001fd"} true; - R1, Gamma_R1 := 0bv64, true; - R1, Gamma_R1 := bvadd64(R1, 2056bv64), Gamma_R1; + assert (L(mem, R3) ==> Gamma_R4); + mem, Gamma_mem := memory_store32_le(mem, R3, R4[32:0]), gamma_store32(Gamma_mem, R3, Gamma_R4); + assume {:captureState "%000002b8"} true; + R30, Gamma_R30 := 4196080bv64, true; + call get_two(); + goto l000002c4; + l000002c4: + assume {:captureState "l000002c4"} true; + R2, Gamma_R2 := zero_extend32_32(R0[32:0]), Gamma_R0; + R3, Gamma_R3 := 4321280bv64, true; + call rely(); + $load$16, Gamma_$load$16 := memory_load64_le(mem, bvadd64(R3, 4080bv64)), (gamma_load64(Gamma_mem, bvadd64(R3, 4080bv64)) || L(mem, bvadd64(R3, 4080bv64))); + R3, Gamma_R3 := $load$16, Gamma_$load$16; + R1, Gamma_R1 := 4194304bv64, true; + R0, Gamma_R0 := 2bv64, true; + R1, Gamma_R1 := bvadd64(R1, 2176bv64), Gamma_R1; call rely(); - assert (L(mem, bvadd64(R3, 4bv64)) ==> Gamma_R2); - mem, Gamma_mem := memory_store32_le(mem, bvadd64(R3, 4bv64), R2[32:0]), gamma_store32(Gamma_mem, bvadd64(R3, 4bv64), Gamma_R2); - assume {:captureState "%00000210"} true; - R30, Gamma_R30 := 1712bv64, true; - call __printf_chk_1568(); - goto l0000021a; - l0000021a: - assume {:captureState "l0000021a"} true; + assert (L(mem, R3) ==> Gamma_R2); + mem, Gamma_mem := memory_store32_le(mem, R3, R2[32:0]), gamma_store32(Gamma_mem, R3, Gamma_R2); + assume {:captureState "%000002e0"} true; + R30, Gamma_R30 := 4196112bv64, true; + call __printf_chk(); + goto l000002ec; + l000002ec: + assume {:captureState "l000002ec"} true; R0, Gamma_R0 := 0bv64, true; - load19, Gamma_load19 := memory_load64_le(stack, R31), gamma_load64(Gamma_stack, R31); - R29, Gamma_R29 := load19, Gamma_load19; - load20, Gamma_load20 := memory_load64_le(stack, bvadd64(R31, 8bv64)), gamma_load64(Gamma_stack, bvadd64(R31, 8bv64)); - R30, Gamma_R30 := load20, Gamma_load20; + $load$17, Gamma_$load$17 := memory_load64_le(stack, R31), gamma_load64(Gamma_stack, R31); + R29, Gamma_R29 := $load$17, Gamma_$load$17; + $load$18, Gamma_$load$18 := memory_load64_le(stack, bvadd64(R31, 8bv64)), gamma_load64(Gamma_stack, bvadd64(R31, 8bv64)); + R30, Gamma_R30 := $load$18, Gamma_$load$18; R31, Gamma_R31 := bvadd64(R31, 16bv64), Gamma_R31; - goto main_1664_basil_return; - main_1664_basil_return: - assume {:captureState "main_1664_basil_return"} true; + goto main_basil_return; + main_basil_return: + assume {:captureState "main_basil_return"} true; return; } diff --git a/src/test/correct/function1/gcc_O2/function1.gts b/src/test/correct/function1/gcc_O2/function1.gts deleted file mode 100644 index 60d0bf288..000000000 Binary files a/src/test/correct/function1/gcc_O2/function1.gts and /dev/null differ diff --git a/src/test/correct/function1/gcc_O2/function1.md5sum b/src/test/correct/function1/gcc_O2/function1.md5sum new file mode 100644 index 000000000..30d4e092d --- /dev/null +++ b/src/test/correct/function1/gcc_O2/function1.md5sum @@ -0,0 +1,5 @@ +21fbad434cd9ad729fb53c4140b5fe29 correct/function1/gcc_O2/a.out +1449db9034138e0936b7d86a28cca9f0 correct/function1/gcc_O2/function1.adt +8504316c14c3288bf195c0fae5f2b2d2 correct/function1/gcc_O2/function1.bir +2a25b67fa2fc826d34877e34858828ba correct/function1/gcc_O2/function1.relf +c0fd926aa7f5a77b0f0c97cdb61d9eb7 correct/function1/gcc_O2/function1.gts diff --git a/src/test/correct/function1/gcc_O2/function1.relf b/src/test/correct/function1/gcc_O2/function1.relf deleted file mode 100644 index 7b923e8a4..000000000 --- a/src/test/correct/function1/gcc_O2/function1.relf +++ /dev/null @@ -1,128 +0,0 @@ - -Relocation section '.rela.dyn' at offset 0x488 contains 8 entries: - Offset Info Type Symbol's Value Symbol's Name + Addend -0000000000010d90 0000000000000403 R_AARCH64_RELATIVE 7d0 -0000000000010d98 0000000000000403 R_AARCH64_RELATIVE 780 -0000000000010ff0 0000000000000403 R_AARCH64_RELATIVE 680 -0000000000011008 0000000000000403 R_AARCH64_RELATIVE 11008 -0000000000010fd8 0000000400000401 R_AARCH64_GLOB_DAT 0000000000000000 _ITM_deregisterTMCloneTable + 0 -0000000000010fe0 0000000500000401 R_AARCH64_GLOB_DAT 0000000000000000 __cxa_finalize@GLIBC_2.17 + 0 -0000000000010fe8 0000000700000401 R_AARCH64_GLOB_DAT 0000000000000000 __gmon_start__ + 0 -0000000000010ff8 0000000900000401 R_AARCH64_GLOB_DAT 0000000000000000 _ITM_registerTMCloneTable + 0 - -Relocation section '.rela.plt' at offset 0x548 contains 5 entries: - Offset Info Type Symbol's Value Symbol's Name + Addend -0000000000010fa8 0000000300000402 R_AARCH64_JUMP_SLOT 0000000000000000 __libc_start_main@GLIBC_2.34 + 0 -0000000000010fb0 0000000500000402 R_AARCH64_JUMP_SLOT 0000000000000000 __cxa_finalize@GLIBC_2.17 + 0 -0000000000010fb8 0000000600000402 R_AARCH64_JUMP_SLOT 0000000000000000 __printf_chk@GLIBC_2.17 + 0 -0000000000010fc0 0000000700000402 R_AARCH64_JUMP_SLOT 0000000000000000 __gmon_start__ + 0 -0000000000010fc8 0000000800000402 R_AARCH64_JUMP_SLOT 0000000000000000 abort@GLIBC_2.17 + 0 - -Symbol table '.dynsym' contains 10 entries: - Num: Value Size Type Bind Vis Ndx Name - 0: 0000000000000000 0 NOTYPE LOCAL DEFAULT UND - 1: 00000000000005c0 0 SECTION LOCAL DEFAULT 11 .init - 2: 0000000000011000 0 SECTION LOCAL DEFAULT 22 .data - 3: 0000000000000000 0 FUNC GLOBAL DEFAULT UND __libc_start_main@GLIBC_2.34 (2) - 4: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_deregisterTMCloneTable - 5: 0000000000000000 0 FUNC WEAK DEFAULT UND __cxa_finalize@GLIBC_2.17 (3) - 6: 0000000000000000 0 FUNC GLOBAL DEFAULT UND __printf_chk@GLIBC_2.17 (3) - 7: 0000000000000000 0 NOTYPE WEAK DEFAULT UND __gmon_start__ - 8: 0000000000000000 0 FUNC GLOBAL DEFAULT UND abort@GLIBC_2.17 (3) - 9: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_registerTMCloneTable - -Symbol table '.symtab' contains 93 entries: - Num: Value Size Type Bind Vis Ndx Name - 0: 0000000000000000 0 NOTYPE LOCAL DEFAULT UND - 1: 0000000000000238 0 SECTION LOCAL DEFAULT 1 .interp - 2: 0000000000000254 0 SECTION LOCAL DEFAULT 2 .note.gnu.build-id - 3: 0000000000000278 0 SECTION LOCAL DEFAULT 3 .note.ABI-tag - 4: 0000000000000298 0 SECTION LOCAL DEFAULT 4 .gnu.hash - 5: 00000000000002b8 0 SECTION LOCAL DEFAULT 5 .dynsym - 6: 00000000000003a8 0 SECTION LOCAL DEFAULT 6 .dynstr - 7: 0000000000000442 0 SECTION LOCAL DEFAULT 7 .gnu.version - 8: 0000000000000458 0 SECTION LOCAL DEFAULT 8 .gnu.version_r - 9: 0000000000000488 0 SECTION LOCAL DEFAULT 9 .rela.dyn - 10: 0000000000000548 0 SECTION LOCAL DEFAULT 10 .rela.plt - 11: 00000000000005c0 0 SECTION LOCAL DEFAULT 11 .init - 12: 00000000000005e0 0 SECTION LOCAL DEFAULT 12 .plt - 13: 0000000000000680 0 SECTION LOCAL DEFAULT 13 .text - 14: 00000000000007ec 0 SECTION LOCAL DEFAULT 14 .fini - 15: 0000000000000800 0 SECTION LOCAL DEFAULT 15 .rodata - 16: 000000000000080c 0 SECTION LOCAL DEFAULT 16 .eh_frame_hdr - 17: 0000000000000850 0 SECTION LOCAL DEFAULT 17 .eh_frame - 18: 0000000000010d90 0 SECTION LOCAL DEFAULT 18 .init_array - 19: 0000000000010d98 0 SECTION LOCAL DEFAULT 19 .fini_array - 20: 0000000000010da0 0 SECTION LOCAL DEFAULT 20 .dynamic - 21: 0000000000010f90 0 SECTION LOCAL DEFAULT 21 .got - 22: 0000000000011000 0 SECTION LOCAL DEFAULT 22 .data - 23: 0000000000011010 0 SECTION LOCAL DEFAULT 23 .bss - 24: 0000000000000000 0 SECTION LOCAL DEFAULT 24 .comment - 25: 0000000000000000 0 FILE LOCAL DEFAULT ABS Scrt1.o - 26: 0000000000000278 0 NOTYPE LOCAL DEFAULT 3 $d - 27: 0000000000000278 32 OBJECT LOCAL DEFAULT 3 __abi_tag - 28: 00000000000006c0 0 NOTYPE LOCAL DEFAULT 13 $x - 29: 0000000000000864 0 NOTYPE LOCAL DEFAULT 17 $d - 30: 0000000000000800 0 NOTYPE LOCAL DEFAULT 15 $d - 31: 0000000000000000 0 FILE LOCAL DEFAULT ABS crti.o - 32: 00000000000006f4 0 NOTYPE LOCAL DEFAULT 13 $x - 33: 00000000000006f4 20 FUNC LOCAL DEFAULT 13 call_weak_fn - 34: 00000000000005c0 0 NOTYPE LOCAL DEFAULT 11 $x - 35: 00000000000007ec 0 NOTYPE LOCAL DEFAULT 14 $x - 36: 0000000000000000 0 FILE LOCAL DEFAULT ABS crtn.o - 37: 00000000000005d0 0 NOTYPE LOCAL DEFAULT 11 $x - 38: 00000000000007f8 0 NOTYPE LOCAL DEFAULT 14 $x - 39: 0000000000000000 0 FILE LOCAL DEFAULT ABS function1.c - 40: 00000000000007e0 0 NOTYPE LOCAL DEFAULT 13 $x - 41: 0000000000000808 0 NOTYPE LOCAL DEFAULT 15 $d - 42: 0000000000000680 0 NOTYPE LOCAL DEFAULT 13 $x - 43: 0000000000011014 0 NOTYPE LOCAL DEFAULT 23 $d - 44: 00000000000008d8 0 NOTYPE LOCAL DEFAULT 17 $d - 45: 0000000000000000 0 FILE LOCAL DEFAULT ABS crtstuff.c - 46: 0000000000000710 0 NOTYPE LOCAL DEFAULT 13 $x - 47: 0000000000000710 0 FUNC LOCAL DEFAULT 13 deregister_tm_clones - 48: 0000000000000740 0 FUNC LOCAL DEFAULT 13 register_tm_clones - 49: 0000000000011008 0 NOTYPE LOCAL DEFAULT 22 $d - 50: 0000000000000780 0 FUNC LOCAL DEFAULT 13 __do_global_dtors_aux - 51: 0000000000011010 1 OBJECT LOCAL DEFAULT 23 completed.0 - 52: 0000000000010d98 0 NOTYPE LOCAL DEFAULT 19 $d - 53: 0000000000010d98 0 OBJECT LOCAL DEFAULT 19 __do_global_dtors_aux_fini_array_entry - 54: 00000000000007d0 0 FUNC LOCAL DEFAULT 13 frame_dummy - 55: 0000000000010d90 0 NOTYPE LOCAL DEFAULT 18 $d - 56: 0000000000010d90 0 OBJECT LOCAL DEFAULT 18 __frame_dummy_init_array_entry - 57: 0000000000000878 0 NOTYPE LOCAL DEFAULT 17 $d - 58: 0000000000011010 0 NOTYPE LOCAL DEFAULT 23 $d - 59: 0000000000000000 0 FILE LOCAL DEFAULT ABS crtstuff.c - 60: 000000000000090c 0 NOTYPE LOCAL DEFAULT 17 $d - 61: 000000000000090c 0 OBJECT LOCAL DEFAULT 17 __FRAME_END__ - 62: 0000000000000000 0 FILE LOCAL DEFAULT ABS - 63: 0000000000010da0 0 OBJECT LOCAL DEFAULT ABS _DYNAMIC - 64: 000000000000080c 0 NOTYPE LOCAL DEFAULT 16 __GNU_EH_FRAME_HDR - 65: 0000000000010fd0 0 OBJECT LOCAL DEFAULT ABS _GLOBAL_OFFSET_TABLE_ - 66: 00000000000005e0 0 NOTYPE LOCAL DEFAULT 12 $x - 67: 0000000000000000 0 FUNC GLOBAL DEFAULT UND __libc_start_main@GLIBC_2.34 - 68: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_deregisterTMCloneTable - 69: 0000000000011000 0 NOTYPE WEAK DEFAULT 22 data_start - 70: 0000000000011010 0 NOTYPE GLOBAL DEFAULT 23 __bss_start__ - 71: 0000000000000000 0 FUNC WEAK DEFAULT UND __cxa_finalize@GLIBC_2.17 - 72: 0000000000011020 0 NOTYPE GLOBAL DEFAULT 23 _bss_end__ - 73: 0000000000011010 0 NOTYPE GLOBAL DEFAULT 22 _edata - 74: 0000000000011014 4 OBJECT GLOBAL DEFAULT 23 x - 75: 00000000000007ec 0 FUNC GLOBAL HIDDEN 14 _fini - 76: 0000000000011020 0 NOTYPE GLOBAL DEFAULT 23 __bss_end__ - 77: 00000000000007e0 12 FUNC GLOBAL DEFAULT 13 get_two - 78: 0000000000000000 0 FUNC GLOBAL DEFAULT UND __printf_chk@GLIBC_2.17 - 79: 0000000000011000 0 NOTYPE GLOBAL DEFAULT 22 __data_start - 80: 0000000000000000 0 NOTYPE WEAK DEFAULT UND __gmon_start__ - 81: 0000000000011008 0 OBJECT GLOBAL HIDDEN 22 __dso_handle - 82: 0000000000000000 0 FUNC GLOBAL DEFAULT UND abort@GLIBC_2.17 - 83: 0000000000000800 4 OBJECT GLOBAL DEFAULT 15 _IO_stdin_used - 84: 0000000000011020 0 NOTYPE GLOBAL DEFAULT 23 _end - 85: 00000000000006c0 52 FUNC GLOBAL DEFAULT 13 _start - 86: 0000000000011020 0 NOTYPE GLOBAL DEFAULT 23 __end__ - 87: 0000000000011018 4 OBJECT GLOBAL DEFAULT 23 y - 88: 0000000000011010 0 NOTYPE GLOBAL DEFAULT 23 __bss_start - 89: 0000000000000680 60 FUNC GLOBAL DEFAULT 13 main - 90: 0000000000011010 0 OBJECT GLOBAL HIDDEN 22 __TMC_END__ - 91: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_registerTMCloneTable - 92: 00000000000005c0 0 FUNC GLOBAL HIDDEN 11 _init diff --git a/src/test/correct/function1/gcc_O2/function1_gtirb.expected b/src/test/correct/function1/gcc_O2/function1_gtirb.expected index 5c972639a..b2b4c2a15 100644 --- a/src/test/correct/function1/gcc_O2/function1_gtirb.expected +++ b/src/test/correct/function1/gcc_O2/function1_gtirb.expected @@ -7,6 +7,7 @@ var {:extern} Gamma_R29: bool; var {:extern} Gamma_R3: bool; var {:extern} Gamma_R30: bool; var {:extern} Gamma_R31: bool; +var {:extern} Gamma_R4: bool; var {:extern} Gamma_mem: [bv64]bool; var {:extern} Gamma_stack: [bv64]bool; var {:extern} R0: bv64; @@ -18,18 +19,20 @@ var {:extern} R29: bv64; var {:extern} R3: bv64; var {:extern} R30: bv64; var {:extern} R31: bv64; +var {:extern} R4: bv64; var {:extern} mem: [bv64]bv8; var {:extern} stack: [bv64]bv8; const {:extern} $_IO_stdin_used_addr: bv64; -axiom ($_IO_stdin_used_addr == 2048bv64); +axiom ($_IO_stdin_used_addr == 4196472bv64); const {:extern} $x_addr: bv64; -axiom ($x_addr == 69652bv64); +axiom ($x_addr == 4325400bv64); const {:extern} $y_addr: bv64; -axiom ($y_addr == 69656bv64); +axiom ($y_addr == 4325396bv64); function {:extern} L(mem$in: [bv64]bv8, index: bv64) returns (bool) { false } +function {:extern} {:bvbuiltin "bvadd"} bvadd32(bv32, bv32) returns (bv32); function {:extern} {:bvbuiltin "bvadd"} bvadd64(bv64, bv64) returns (bv64); function {:extern} gamma_load64(gammaMap: [bv64]bool, index: bv64) returns (bool) { (gammaMap[bvadd64(index, 7bv64)] && (gammaMap[bvadd64(index, 6bv64)] && (gammaMap[bvadd64(index, 5bv64)] && (gammaMap[bvadd64(index, 4bv64)] && (gammaMap[bvadd64(index, 3bv64)] && (gammaMap[bvadd64(index, 2bv64)] && (gammaMap[bvadd64(index, 1bv64)] && gammaMap[index]))))))) @@ -59,20 +62,17 @@ function {:extern} memory_store64_le(memory: [bv64]bv8, index: bv64, value: bv64 memory[index := value[8:0]][bvadd64(index, 1bv64) := value[16:8]][bvadd64(index, 2bv64) := value[24:16]][bvadd64(index, 3bv64) := value[32:24]][bvadd64(index, 4bv64) := value[40:32]][bvadd64(index, 5bv64) := value[48:40]][bvadd64(index, 6bv64) := value[56:48]][bvadd64(index, 7bv64) := value[64:56]] } +function {:extern} {:bvbuiltin "zero_extend 24"} zero_extend24_8(bv8) returns (bv32); function {:extern} {:bvbuiltin "zero_extend 32"} zero_extend32_32(bv32) returns (bv64); procedure {:extern} rely(); modifies Gamma_mem, mem; ensures (Gamma_mem == old(Gamma_mem)); ensures (mem == old(mem)); - free ensures (memory_load64_le(mem, 2048bv64) == 131073bv64); - free ensures (memory_load8_le(mem, 2056bv64) == 37bv8); - free ensures (memory_load8_le(mem, 2057bv64) == 100bv8); - free ensures (memory_load8_le(mem, 2058bv64) == 10bv8); - free ensures (memory_load8_le(mem, 2059bv64) == 0bv8); - free ensures (memory_load64_le(mem, 69008bv64) == 2000bv64); - free ensures (memory_load64_le(mem, 69016bv64) == 1920bv64); - free ensures (memory_load64_le(mem, 69616bv64) == 1664bv64); - free ensures (memory_load64_le(mem, 69640bv64) == 69640bv64); + free ensures (memory_load64_le(mem, 4196472bv64) == 131073bv64); + free ensures (memory_load8_le(mem, 4196480bv64) == 37bv8); + free ensures (memory_load8_le(mem, 4196481bv64) == 100bv8); + free ensures (memory_load8_le(mem, 4196482bv64) == 10bv8); + free ensures (memory_load8_le(mem, 4196483bv64) == 0bv8); procedure {:extern} rely_transitive(); modifies Gamma_mem, mem; @@ -90,138 +90,158 @@ procedure {:extern} rely_reflexive(); procedure {:extern} guarantee_reflexive(); modifies Gamma_mem, mem; -procedure main_1664(); - modifies Gamma_R0, Gamma_R1, Gamma_R16, Gamma_R17, Gamma_R2, Gamma_R29, Gamma_R3, Gamma_R30, Gamma_R31, Gamma_mem, Gamma_stack, R0, R1, R16, R17, R2, R29, R3, R30, R31, mem, stack; - free requires (memory_load64_le(mem, 69632bv64) == 0bv64); - free requires (memory_load64_le(mem, 69640bv64) == 69640bv64); - free requires (memory_load64_le(mem, 2048bv64) == 131073bv64); - free requires (memory_load8_le(mem, 2056bv64) == 37bv8); - free requires (memory_load8_le(mem, 2057bv64) == 100bv8); - free requires (memory_load8_le(mem, 2058bv64) == 10bv8); - free requires (memory_load8_le(mem, 2059bv64) == 0bv8); - free requires (memory_load64_le(mem, 69008bv64) == 2000bv64); - free requires (memory_load64_le(mem, 69016bv64) == 1920bv64); - free requires (memory_load64_le(mem, 69616bv64) == 1664bv64); - free requires (memory_load64_le(mem, 69640bv64) == 69640bv64); +procedure FUN_400680(); + modifies Gamma_R16, Gamma_R17, Gamma_mem, R16, R17, mem; + free requires (memory_load64_le(mem, 4196472bv64) == 131073bv64); + free requires (memory_load8_le(mem, 4196480bv64) == 37bv8); + free requires (memory_load8_le(mem, 4196481bv64) == 100bv8); + free requires (memory_load8_le(mem, 4196482bv64) == 10bv8); + free requires (memory_load8_le(mem, 4196483bv64) == 0bv8); + free ensures (memory_load64_le(mem, 4196472bv64) == 131073bv64); + free ensures (memory_load8_le(mem, 4196480bv64) == 37bv8); + free ensures (memory_load8_le(mem, 4196481bv64) == 100bv8); + free ensures (memory_load8_le(mem, 4196482bv64) == 10bv8); + free ensures (memory_load8_le(mem, 4196483bv64) == 0bv8); + +implementation FUN_400680() +{ + var $load10: bv64; + var Gamma_$load10: bool; + $FUN_400680$__0__$UtkQk4ONSE6hNEuDpZ95RQ: + assume {:captureState "$FUN_400680$__0__$UtkQk4ONSE6hNEuDpZ95RQ"} true; + R16, Gamma_R16 := 4321280bv64, true; + call rely(); + $load10, Gamma_$load10 := memory_load64_le(mem, bvadd64(R16, 4024bv64)), (gamma_load64(Gamma_mem, bvadd64(R16, 4024bv64)) || L(mem, bvadd64(R16, 4024bv64))); + R17, Gamma_R17 := $load10, Gamma_$load10; + R16, Gamma_R16 := bvadd64(R16, 4024bv64), Gamma_R16; + call __printf_chk(); + assume false; +} + +procedure get_two(); + modifies Gamma_R0, Gamma_R1, Gamma_R2, R0, R1, R2; + free requires (memory_load64_le(mem, 4196472bv64) == 131073bv64); + free requires (memory_load8_le(mem, 4196480bv64) == 37bv8); + free requires (memory_load8_le(mem, 4196481bv64) == 100bv8); + free requires (memory_load8_le(mem, 4196482bv64) == 10bv8); + free requires (memory_load8_le(mem, 4196483bv64) == 0bv8); + free ensures (memory_load64_le(mem, 4196472bv64) == 131073bv64); + free ensures (memory_load8_le(mem, 4196480bv64) == 37bv8); + free ensures (memory_load8_le(mem, 4196481bv64) == 100bv8); + free ensures (memory_load8_le(mem, 4196482bv64) == 10bv8); + free ensures (memory_load8_le(mem, 4196483bv64) == 0bv8); + +implementation get_two() +{ + $get_two$__0__$lFxxVCVARIKoZ6fzUj5YPw: + assume {:captureState "$get_two$__0__$lFxxVCVARIKoZ6fzUj5YPw"} true; + R1, Gamma_R1 := zero_extend32_32(bvadd32(R1[32:0], R2[32:0])), (Gamma_R2 && Gamma_R1); + R0, Gamma_R0 := zero_extend32_32(bvadd32(R1[32:0], zero_extend24_8(R0[8:0]))), (Gamma_R0 && Gamma_R1); + R1, Gamma_R1 := 0bv64, true; + R2, Gamma_R2 := 0bv64, true; + goto get_two_basil_return; + get_two_basil_return: + assume {:captureState "get_two_basil_return"} true; + return; +} + +procedure main(); + modifies Gamma_R0, Gamma_R1, Gamma_R16, Gamma_R17, Gamma_R2, Gamma_R29, Gamma_R3, Gamma_R30, Gamma_R31, Gamma_R4, Gamma_mem, Gamma_stack, R0, R1, R16, R17, R2, R29, R3, R30, R31, R4, mem, stack; + free requires (memory_load64_le(mem, 4325376bv64) == 0bv64); + free requires (memory_load64_le(mem, 4325384bv64) == 0bv64); + free requires (memory_load64_le(mem, 4196472bv64) == 131073bv64); + free requires (memory_load8_le(mem, 4196480bv64) == 37bv8); + free requires (memory_load8_le(mem, 4196481bv64) == 100bv8); + free requires (memory_load8_le(mem, 4196482bv64) == 10bv8); + free requires (memory_load8_le(mem, 4196483bv64) == 0bv8); free ensures (Gamma_R29 == old(Gamma_R29)); free ensures (Gamma_R31 == old(Gamma_R31)); free ensures (R29 == old(R29)); free ensures (R31 == old(R31)); - free ensures (memory_load64_le(mem, 2048bv64) == 131073bv64); - free ensures (memory_load8_le(mem, 2056bv64) == 37bv8); - free ensures (memory_load8_le(mem, 2057bv64) == 100bv8); - free ensures (memory_load8_le(mem, 2058bv64) == 10bv8); - free ensures (memory_load8_le(mem, 2059bv64) == 0bv8); - free ensures (memory_load64_le(mem, 69008bv64) == 2000bv64); - free ensures (memory_load64_le(mem, 69016bv64) == 1920bv64); - free ensures (memory_load64_le(mem, 69616bv64) == 1664bv64); - free ensures (memory_load64_le(mem, 69640bv64) == 69640bv64); - -implementation main_1664() + free ensures (memory_load64_le(mem, 4196472bv64) == 131073bv64); + free ensures (memory_load8_le(mem, 4196480bv64) == 37bv8); + free ensures (memory_load8_le(mem, 4196481bv64) == 100bv8); + free ensures (memory_load8_le(mem, 4196482bv64) == 10bv8); + free ensures (memory_load8_le(mem, 4196483bv64) == 0bv8); + +implementation main() { - var Cse0__5_0_0: bv64; - var Gamma_Cse0__5_0_0: bool; - var Gamma_load15: bool; - var Gamma_load16: bool; - var load15: bv64; - var load16: bv64; - main_1664__0__SdgQNRc1S~eXoTDCYKgVbQ: - assume {:captureState "main_1664__0__SdgQNRc1S~eXoTDCYKgVbQ"} true; - Cse0__5_0_0, Gamma_Cse0__5_0_0 := bvadd64(R31, 18446744073709551600bv64), Gamma_R31; - stack, Gamma_stack := memory_store64_le(stack, Cse0__5_0_0, R29), gamma_store64(Gamma_stack, Cse0__5_0_0, Gamma_R29); - assume {:captureState "1664_1"} true; - stack, Gamma_stack := memory_store64_le(stack, bvadd64(Cse0__5_0_0, 8bv64), R30), gamma_store64(Gamma_stack, bvadd64(Cse0__5_0_0, 8bv64), Gamma_R30); - assume {:captureState "1664_2"} true; - R31, Gamma_R31 := Cse0__5_0_0, Gamma_Cse0__5_0_0; - R1, Gamma_R1 := 69632bv64, true; - R3, Gamma_R3 := bvadd64(R1, 20bv64), Gamma_R1; + var $load16: bv64; + var $load17: bv64; + var $load18: bv64; + var $load19: bv64; + var Cse0__5$2$2: bv64; + var Gamma_$load16: bool; + var Gamma_$load17: bool; + var Gamma_$load18: bool; + var Gamma_$load19: bool; + var Gamma_Cse0__5$2$2: bool; + $main$__0__$fxMAJl44TWOTA8IHVD8V7Q: + assume {:captureState "$main$__0__$fxMAJl44TWOTA8IHVD8V7Q"} true; + R3, Gamma_R3 := 4321280bv64, true; + call rely(); + $load18, Gamma_$load18 := memory_load64_le(mem, bvadd64(R3, 4064bv64)), (gamma_load64(Gamma_mem, bvadd64(R3, 4064bv64)) || L(mem, bvadd64(R3, 4064bv64))); + R3, Gamma_R3 := $load18, Gamma_$load18; + Cse0__5$2$2, Gamma_Cse0__5$2$2 := bvadd64(R31, 18446744073709551600bv64), Gamma_R31; + stack, Gamma_stack := memory_store64_le(stack, Cse0__5$2$2, R29), gamma_store64(Gamma_stack, Cse0__5$2$2, Gamma_R29); + assume {:captureState "4196040$1"} true; + stack, Gamma_stack := memory_store64_le(stack, bvadd64(Cse0__5$2$2, 8bv64), R30), gamma_store64(Gamma_stack, bvadd64(Cse0__5$2$2, 8bv64), Gamma_R30); + assume {:captureState "4196040$2"} true; + R31, Gamma_R31 := Cse0__5$2$2, Gamma_Cse0__5$2$2; + R4, Gamma_R4 := 1bv64, true; + R2, Gamma_R2 := 58368bv64, true; R29, Gamma_R29 := R31, Gamma_R31; - R2, Gamma_R2 := 58475bv64, true; - R2, Gamma_R2 := zero_extend32_32((21515bv16 ++ R2[16:0])), Gamma_R2; - R0, Gamma_R0 := 1bv64, true; + R2, Gamma_R2 := (R2[64:32] ++ (21515bv16 ++ R2[16:0])), Gamma_R2; + R2, Gamma_R2 := (R2[64:48] ++ (2bv16 ++ R2[32:0])), Gamma_R2; + R1, Gamma_R1 := 10bv64, true; + R0, Gamma_R0 := 97bv64, true; call rely(); - assert (L(mem, bvadd64(R1, 20bv64)) ==> Gamma_R0); - mem, Gamma_mem := memory_store32_le(mem, bvadd64(R1, 20bv64), R0[32:0]), gamma_store32(Gamma_mem, bvadd64(R1, 20bv64), Gamma_R0); - assume {:captureState "1692_0"} true; - R1, Gamma_R1 := 0bv64, true; - R1, Gamma_R1 := bvadd64(R1, 2056bv64), Gamma_R1; + assert (L(mem, R3) ==> Gamma_R4); + mem, Gamma_mem := memory_store32_le(mem, R3, R4[32:0]), gamma_store32(Gamma_mem, R3, Gamma_R4); + assume {:captureState "4196072$0"} true; + R30, Gamma_R30 := 4196080bv64, true; + call get_two(); + goto $main$__1__$yQ1z8A~IRoSs4MRYTbbghg; + $main$__1__$yQ1z8A~IRoSs4MRYTbbghg: + assume {:captureState "$main$__1__$yQ1z8A~IRoSs4MRYTbbghg"} true; + R2, Gamma_R2 := zero_extend32_32(R0[32:0]), Gamma_R0; + R3, Gamma_R3 := 4321280bv64, true; call rely(); - assert (L(mem, bvadd64(R3, 4bv64)) ==> Gamma_R2); - mem, Gamma_mem := memory_store32_le(mem, bvadd64(R3, 4bv64), R2[32:0]), gamma_store32(Gamma_mem, bvadd64(R3, 4bv64), Gamma_R2); - assume {:captureState "1704_0"} true; - R30, Gamma_R30 := 1712bv64, true; - call FUN_620_1568(); - goto main_1664__1__jvvJx~HNQlaw7eS3PvnGyQ; - main_1664__1__jvvJx~HNQlaw7eS3PvnGyQ: - assume {:captureState "main_1664__1__jvvJx~HNQlaw7eS3PvnGyQ"} true; + $load19, Gamma_$load19 := memory_load64_le(mem, bvadd64(R3, 4080bv64)), (gamma_load64(Gamma_mem, bvadd64(R3, 4080bv64)) || L(mem, bvadd64(R3, 4080bv64))); + R3, Gamma_R3 := $load19, Gamma_$load19; + R1, Gamma_R1 := 4194304bv64, true; + R0, Gamma_R0 := 2bv64, true; + R1, Gamma_R1 := bvadd64(R1, 2176bv64), Gamma_R1; + call rely(); + assert (L(mem, R3) ==> Gamma_R2); + mem, Gamma_mem := memory_store32_le(mem, R3, R2[32:0]), gamma_store32(Gamma_mem, R3, Gamma_R2); + assume {:captureState "4196104$0"} true; + R30, Gamma_R30 := 4196064bv64, true; + call FUN_400680(); + goto $main$__2__$GW0MHC~ORUKlCdpgOcZ6zA; + $main$__2__$GW0MHC~ORUKlCdpgOcZ6zA: + assume {:captureState "$main$__2__$GW0MHC~ORUKlCdpgOcZ6zA"} true; R0, Gamma_R0 := 0bv64, true; - load15, Gamma_load15 := memory_load64_le(stack, R31), gamma_load64(Gamma_stack, R31); - R29, Gamma_R29 := load15, Gamma_load15; - load16, Gamma_load16 := memory_load64_le(stack, bvadd64(R31, 8bv64)), gamma_load64(Gamma_stack, bvadd64(R31, 8bv64)); - R30, Gamma_R30 := load16, Gamma_load16; + $load16, Gamma_$load16 := memory_load64_le(stack, R31), gamma_load64(Gamma_stack, R31); + R29, Gamma_R29 := $load16, Gamma_$load16; + $load17, Gamma_$load17 := memory_load64_le(stack, bvadd64(R31, 8bv64)), gamma_load64(Gamma_stack, bvadd64(R31, 8bv64)); + R30, Gamma_R30 := $load17, Gamma_$load17; R31, Gamma_R31 := bvadd64(R31, 16bv64), Gamma_R31; - goto main_1664_basil_return; - main_1664_basil_return: - assume {:captureState "main_1664_basil_return"} true; - return; -} - -procedure FUN_620_1568(); - modifies Gamma_R16, Gamma_R17, Gamma_mem, R16, R17, mem; - free requires (memory_load64_le(mem, 2048bv64) == 131073bv64); - free requires (memory_load8_le(mem, 2056bv64) == 37bv8); - free requires (memory_load8_le(mem, 2057bv64) == 100bv8); - free requires (memory_load8_le(mem, 2058bv64) == 10bv8); - free requires (memory_load8_le(mem, 2059bv64) == 0bv8); - free requires (memory_load64_le(mem, 69008bv64) == 2000bv64); - free requires (memory_load64_le(mem, 69016bv64) == 1920bv64); - free requires (memory_load64_le(mem, 69616bv64) == 1664bv64); - free requires (memory_load64_le(mem, 69640bv64) == 69640bv64); - free ensures (memory_load64_le(mem, 2048bv64) == 131073bv64); - free ensures (memory_load8_le(mem, 2056bv64) == 37bv8); - free ensures (memory_load8_le(mem, 2057bv64) == 100bv8); - free ensures (memory_load8_le(mem, 2058bv64) == 10bv8); - free ensures (memory_load8_le(mem, 2059bv64) == 0bv8); - free ensures (memory_load64_le(mem, 69008bv64) == 2000bv64); - free ensures (memory_load64_le(mem, 69016bv64) == 1920bv64); - free ensures (memory_load64_le(mem, 69616bv64) == 1664bv64); - free ensures (memory_load64_le(mem, 69640bv64) == 69640bv64); - -implementation FUN_620_1568() -{ - var Gamma_load18: bool; - var load18: bv64; - FUN_620_1568__0__FzaZGObNRFyyU87ZY5JbcQ: - assume {:captureState "FUN_620_1568__0__FzaZGObNRFyyU87ZY5JbcQ"} true; - R16, Gamma_R16 := 65536bv64, true; - call rely(); - load18, Gamma_load18 := memory_load64_le(mem, bvadd64(R16, 4024bv64)), (gamma_load64(Gamma_mem, bvadd64(R16, 4024bv64)) || L(mem, bvadd64(R16, 4024bv64))); - R17, Gamma_R17 := load18, Gamma_load18; - R16, Gamma_R16 := bvadd64(R16, 4024bv64), Gamma_R16; - call __printf_chk(); - goto FUN_620_1568_basil_return; - FUN_620_1568_basil_return: - assume {:captureState "FUN_620_1568_basil_return"} true; + goto main_basil_return; + main_basil_return: + assume {:captureState "main_basil_return"} true; return; } procedure __printf_chk(); - free requires (memory_load64_le(mem, 2048bv64) == 131073bv64); - free requires (memory_load8_le(mem, 2056bv64) == 37bv8); - free requires (memory_load8_le(mem, 2057bv64) == 100bv8); - free requires (memory_load8_le(mem, 2058bv64) == 10bv8); - free requires (memory_load8_le(mem, 2059bv64) == 0bv8); - free requires (memory_load64_le(mem, 69008bv64) == 2000bv64); - free requires (memory_load64_le(mem, 69016bv64) == 1920bv64); - free requires (memory_load64_le(mem, 69616bv64) == 1664bv64); - free requires (memory_load64_le(mem, 69640bv64) == 69640bv64); - free ensures (memory_load64_le(mem, 2048bv64) == 131073bv64); - free ensures (memory_load8_le(mem, 2056bv64) == 37bv8); - free ensures (memory_load8_le(mem, 2057bv64) == 100bv8); - free ensures (memory_load8_le(mem, 2058bv64) == 10bv8); - free ensures (memory_load8_le(mem, 2059bv64) == 0bv8); - free ensures (memory_load64_le(mem, 69008bv64) == 2000bv64); - free ensures (memory_load64_le(mem, 69016bv64) == 1920bv64); - free ensures (memory_load64_le(mem, 69616bv64) == 1664bv64); - free ensures (memory_load64_le(mem, 69640bv64) == 69640bv64); + free requires (memory_load64_le(mem, 4196472bv64) == 131073bv64); + free requires (memory_load8_le(mem, 4196480bv64) == 37bv8); + free requires (memory_load8_le(mem, 4196481bv64) == 100bv8); + free requires (memory_load8_le(mem, 4196482bv64) == 10bv8); + free requires (memory_load8_le(mem, 4196483bv64) == 0bv8); + free ensures (memory_load64_le(mem, 4196472bv64) == 131073bv64); + free ensures (memory_load8_le(mem, 4196480bv64) == 37bv8); + free ensures (memory_load8_le(mem, 4196481bv64) == 100bv8); + free ensures (memory_load8_le(mem, 4196482bv64) == 10bv8); + free ensures (memory_load8_le(mem, 4196483bv64) == 0bv8); diff --git a/src/test/correct/functionpointer/clang/functionpointer.gts b/src/test/correct/functionpointer/clang/functionpointer.gts deleted file mode 100644 index 91ff24d40..000000000 Binary files a/src/test/correct/functionpointer/clang/functionpointer.gts and /dev/null differ diff --git a/src/test/correct/functionpointer/clang/functionpointer.md5sum b/src/test/correct/functionpointer/clang/functionpointer.md5sum new file mode 100644 index 000000000..5e2b81aee --- /dev/null +++ b/src/test/correct/functionpointer/clang/functionpointer.md5sum @@ -0,0 +1,3 @@ +98bcf9cdba35dc418cc5f520d1adb6c1 correct/functionpointer/clang/a.out +13f271148dae5ce19016350741e7004e correct/functionpointer/clang/functionpointer.relf +b51b46ce2f94d34f1175e04eb509c9df correct/functionpointer/clang/functionpointer.gts diff --git a/src/test/correct/functionpointer/clang/functionpointer.relf b/src/test/correct/functionpointer/clang/functionpointer.relf deleted file mode 100644 index 833953442..000000000 --- a/src/test/correct/functionpointer/clang/functionpointer.relf +++ /dev/null @@ -1,126 +0,0 @@ - -Relocation section '.rela.dyn' at offset 0x460 contains 8 entries: - Offset Info Type Symbol's Value Symbol's Name + Addend -0000000000010dc8 0000000000000403 R_AARCH64_RELATIVE 710 -0000000000010dd0 0000000000000403 R_AARCH64_RELATIVE 6c0 -0000000000010fd8 0000000000000403 R_AARCH64_RELATIVE 744 -0000000000011028 0000000000000403 R_AARCH64_RELATIVE 11028 -0000000000010fc0 0000000400000401 R_AARCH64_GLOB_DAT 0000000000000000 _ITM_deregisterTMCloneTable + 0 -0000000000010fc8 0000000500000401 R_AARCH64_GLOB_DAT 0000000000000000 __cxa_finalize@GLIBC_2.17 + 0 -0000000000010fd0 0000000600000401 R_AARCH64_GLOB_DAT 0000000000000000 __gmon_start__ + 0 -0000000000010fe0 0000000800000401 R_AARCH64_GLOB_DAT 0000000000000000 _ITM_registerTMCloneTable + 0 - -Relocation section '.rela.plt' at offset 0x520 contains 4 entries: - Offset Info Type Symbol's Value Symbol's Name + Addend -0000000000011000 0000000300000402 R_AARCH64_JUMP_SLOT 0000000000000000 __libc_start_main@GLIBC_2.34 + 0 -0000000000011008 0000000500000402 R_AARCH64_JUMP_SLOT 0000000000000000 __cxa_finalize@GLIBC_2.17 + 0 -0000000000011010 0000000600000402 R_AARCH64_JUMP_SLOT 0000000000000000 __gmon_start__ + 0 -0000000000011018 0000000700000402 R_AARCH64_JUMP_SLOT 0000000000000000 abort@GLIBC_2.17 + 0 - -Symbol table '.dynsym' contains 9 entries: - Num: Value Size Type Bind Vis Ndx Name - 0: 0000000000000000 0 NOTYPE LOCAL DEFAULT UND - 1: 0000000000000580 0 SECTION LOCAL DEFAULT 11 .init - 2: 0000000000011020 0 SECTION LOCAL DEFAULT 23 .data - 3: 0000000000000000 0 FUNC GLOBAL DEFAULT UND __libc_start_main@GLIBC_2.34 (2) - 4: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_deregisterTMCloneTable - 5: 0000000000000000 0 FUNC WEAK DEFAULT UND __cxa_finalize@GLIBC_2.17 (3) - 6: 0000000000000000 0 NOTYPE WEAK DEFAULT UND __gmon_start__ - 7: 0000000000000000 0 FUNC GLOBAL DEFAULT UND abort@GLIBC_2.17 (3) - 8: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_registerTMCloneTable - -Symbol table '.symtab' contains 93 entries: - Num: Value Size Type Bind Vis Ndx Name - 0: 0000000000000000 0 NOTYPE LOCAL DEFAULT UND - 1: 0000000000000238 0 SECTION LOCAL DEFAULT 1 .interp - 2: 0000000000000254 0 SECTION LOCAL DEFAULT 2 .note.gnu.build-id - 3: 0000000000000278 0 SECTION LOCAL DEFAULT 3 .note.ABI-tag - 4: 0000000000000298 0 SECTION LOCAL DEFAULT 4 .gnu.hash - 5: 00000000000002b8 0 SECTION LOCAL DEFAULT 5 .dynsym - 6: 0000000000000390 0 SECTION LOCAL DEFAULT 6 .dynstr - 7: 000000000000041e 0 SECTION LOCAL DEFAULT 7 .gnu.version - 8: 0000000000000430 0 SECTION LOCAL DEFAULT 8 .gnu.version_r - 9: 0000000000000460 0 SECTION LOCAL DEFAULT 9 .rela.dyn - 10: 0000000000000520 0 SECTION LOCAL DEFAULT 10 .rela.plt - 11: 0000000000000580 0 SECTION LOCAL DEFAULT 11 .init - 12: 00000000000005a0 0 SECTION LOCAL DEFAULT 12 .plt - 13: 0000000000000600 0 SECTION LOCAL DEFAULT 13 .text - 14: 00000000000007f0 0 SECTION LOCAL DEFAULT 14 .fini - 15: 0000000000000804 0 SECTION LOCAL DEFAULT 15 .rodata - 16: 0000000000000808 0 SECTION LOCAL DEFAULT 16 .eh_frame_hdr - 17: 0000000000000860 0 SECTION LOCAL DEFAULT 17 .eh_frame - 18: 0000000000010dc8 0 SECTION LOCAL DEFAULT 18 .init_array - 19: 0000000000010dd0 0 SECTION LOCAL DEFAULT 19 .fini_array - 20: 0000000000010dd8 0 SECTION LOCAL DEFAULT 20 .dynamic - 21: 0000000000010fb8 0 SECTION LOCAL DEFAULT 21 .got - 22: 0000000000010fe8 0 SECTION LOCAL DEFAULT 22 .got.plt - 23: 0000000000011020 0 SECTION LOCAL DEFAULT 23 .data - 24: 0000000000011030 0 SECTION LOCAL DEFAULT 24 .bss - 25: 0000000000000000 0 SECTION LOCAL DEFAULT 25 .comment - 26: 0000000000000000 0 FILE LOCAL DEFAULT ABS Scrt1.o - 27: 0000000000000278 0 NOTYPE LOCAL DEFAULT 3 $d - 28: 0000000000000278 32 OBJECT LOCAL DEFAULT 3 __abi_tag - 29: 0000000000000600 0 NOTYPE LOCAL DEFAULT 13 $x - 30: 0000000000000874 0 NOTYPE LOCAL DEFAULT 17 $d - 31: 0000000000000804 0 NOTYPE LOCAL DEFAULT 15 $d - 32: 0000000000000000 0 FILE LOCAL DEFAULT ABS crti.o - 33: 0000000000000634 0 NOTYPE LOCAL DEFAULT 13 $x - 34: 0000000000000634 20 FUNC LOCAL DEFAULT 13 call_weak_fn - 35: 0000000000000580 0 NOTYPE LOCAL DEFAULT 11 $x - 36: 00000000000007f0 0 NOTYPE LOCAL DEFAULT 14 $x - 37: 0000000000000000 0 FILE LOCAL DEFAULT ABS crtn.o - 38: 0000000000000590 0 NOTYPE LOCAL DEFAULT 11 $x - 39: 00000000000007fc 0 NOTYPE LOCAL DEFAULT 14 $x - 40: 0000000000000000 0 FILE LOCAL DEFAULT ABS crtstuff.c - 41: 0000000000000650 0 NOTYPE LOCAL DEFAULT 13 $x - 42: 0000000000000650 0 FUNC LOCAL DEFAULT 13 deregister_tm_clones - 43: 0000000000000680 0 FUNC LOCAL DEFAULT 13 register_tm_clones - 44: 0000000000011028 0 NOTYPE LOCAL DEFAULT 23 $d - 45: 00000000000006c0 0 FUNC LOCAL DEFAULT 13 __do_global_dtors_aux - 46: 0000000000011030 1 OBJECT LOCAL DEFAULT 24 completed.0 - 47: 0000000000010dd0 0 NOTYPE LOCAL DEFAULT 19 $d - 48: 0000000000010dd0 0 OBJECT LOCAL DEFAULT 19 __do_global_dtors_aux_fini_array_entry - 49: 0000000000000710 0 FUNC LOCAL DEFAULT 13 frame_dummy - 50: 0000000000010dc8 0 NOTYPE LOCAL DEFAULT 18 $d - 51: 0000000000010dc8 0 OBJECT LOCAL DEFAULT 18 __frame_dummy_init_array_entry - 52: 0000000000000888 0 NOTYPE LOCAL DEFAULT 17 $d - 53: 0000000000011030 0 NOTYPE LOCAL DEFAULT 24 $d - 54: 0000000000000000 0 FILE LOCAL DEFAULT ABS functionpointer.c - 55: 0000000000000714 0 NOTYPE LOCAL DEFAULT 13 $x.0 - 56: 0000000000011034 0 NOTYPE LOCAL DEFAULT 24 $d.1 - 57: 000000000000002a 0 NOTYPE LOCAL DEFAULT 25 $d.2 - 58: 00000000000008e8 0 NOTYPE LOCAL DEFAULT 17 $d.3 - 59: 0000000000000000 0 FILE LOCAL DEFAULT ABS crtstuff.c - 60: 0000000000000960 0 NOTYPE LOCAL DEFAULT 17 $d - 61: 0000000000000960 0 OBJECT LOCAL DEFAULT 17 __FRAME_END__ - 62: 0000000000000000 0 FILE LOCAL DEFAULT ABS - 63: 0000000000010dd8 0 OBJECT LOCAL DEFAULT ABS _DYNAMIC - 64: 0000000000000808 0 NOTYPE LOCAL DEFAULT 16 __GNU_EH_FRAME_HDR - 65: 0000000000010fb8 0 OBJECT LOCAL DEFAULT ABS _GLOBAL_OFFSET_TABLE_ - 66: 00000000000005a0 0 NOTYPE LOCAL DEFAULT 12 $x - 67: 0000000000000000 0 FUNC GLOBAL DEFAULT UND __libc_start_main@GLIBC_2.34 - 68: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_deregisterTMCloneTable - 69: 0000000000011020 0 NOTYPE WEAK DEFAULT 23 data_start - 70: 0000000000011030 0 NOTYPE GLOBAL DEFAULT 24 __bss_start__ - 71: 0000000000000000 0 FUNC WEAK DEFAULT UND __cxa_finalize@GLIBC_2.17 - 72: 0000000000011038 0 NOTYPE GLOBAL DEFAULT 24 _bss_end__ - 73: 0000000000011030 0 NOTYPE GLOBAL DEFAULT 23 _edata - 74: 0000000000011034 4 OBJECT GLOBAL DEFAULT 24 x - 75: 00000000000007f0 0 FUNC GLOBAL HIDDEN 14 _fini - 76: 0000000000011038 0 NOTYPE GLOBAL DEFAULT 24 __bss_end__ - 77: 0000000000011020 0 NOTYPE GLOBAL DEFAULT 23 __data_start - 78: 0000000000000000 0 NOTYPE WEAK DEFAULT UND __gmon_start__ - 79: 0000000000011028 0 OBJECT GLOBAL HIDDEN 23 __dso_handle - 80: 0000000000000000 0 FUNC GLOBAL DEFAULT UND abort@GLIBC_2.17 - 81: 0000000000000804 4 OBJECT GLOBAL DEFAULT 15 _IO_stdin_used - 82: 0000000000000714 16 FUNC GLOBAL DEFAULT 13 set_two - 83: 0000000000011038 0 NOTYPE GLOBAL DEFAULT 24 _end - 84: 0000000000000600 52 FUNC GLOBAL DEFAULT 13 _start - 85: 0000000000011038 0 NOTYPE GLOBAL DEFAULT 24 __end__ - 86: 0000000000000724 16 FUNC GLOBAL DEFAULT 13 set_six - 87: 0000000000011030 0 NOTYPE GLOBAL DEFAULT 24 __bss_start - 88: 0000000000000744 172 FUNC GLOBAL DEFAULT 13 main - 89: 0000000000000734 16 FUNC GLOBAL DEFAULT 13 set_seven - 90: 0000000000011030 0 OBJECT GLOBAL HIDDEN 23 __TMC_END__ - 91: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_registerTMCloneTable - 92: 0000000000000580 0 FUNC GLOBAL HIDDEN 11 _init diff --git a/src/test/correct/functionpointer/clang/functionpointer_gtirb.expected b/src/test/correct/functionpointer/clang/functionpointer_gtirb.expected index bac2420fd..84038725c 100644 --- a/src/test/correct/functionpointer/clang/functionpointer_gtirb.expected +++ b/src/test/correct/functionpointer/clang/functionpointer_gtirb.expected @@ -93,7 +93,7 @@ procedure {:extern} rely_reflexive(); procedure {:extern} guarantee_reflexive(); modifies Gamma_mem, mem; -procedure set_seven_1844(); +procedure set_seven(); modifies Gamma_R8, Gamma_R9, Gamma_mem, R8, R9, mem; free requires (memory_load32_le(mem, 2052bv64) == 131073bv32); free requires (memory_load64_le(mem, 69064bv64) == 1808bv64); @@ -106,23 +106,23 @@ procedure set_seven_1844(); free ensures (memory_load64_le(mem, 69592bv64) == 1860bv64); free ensures (memory_load64_le(mem, 69672bv64) == 69672bv64); -implementation set_seven_1844() +implementation set_seven() { - set_seven_1844__0__GYdDLawJSPSwhQJx8RNe6g: - assume {:captureState "set_seven_1844__0__GYdDLawJSPSwhQJx8RNe6g"} true; + $set_seven$__0__$GYdDLawJSPSwhQJx8RNe6g: + assume {:captureState "$set_seven$__0__$GYdDLawJSPSwhQJx8RNe6g"} true; R9, Gamma_R9 := 69632bv64, true; R8, Gamma_R8 := 7bv64, true; call rely(); assert (L(mem, bvadd64(R9, 52bv64)) ==> Gamma_R8); mem, Gamma_mem := memory_store32_le(mem, bvadd64(R9, 52bv64), R8[32:0]), gamma_store32(Gamma_mem, bvadd64(R9, 52bv64), Gamma_R8); - assume {:captureState "1852_0"} true; - goto set_seven_1844_basil_return; - set_seven_1844_basil_return: - assume {:captureState "set_seven_1844_basil_return"} true; + assume {:captureState "1852$0"} true; + goto set_seven_basil_return; + set_seven_basil_return: + assume {:captureState "set_seven_basil_return"} true; return; } -procedure set_six_1828(); +procedure set_six(); modifies Gamma_R8, Gamma_R9, Gamma_mem, R8, R9, mem; free requires (memory_load32_le(mem, 2052bv64) == 131073bv32); free requires (memory_load64_le(mem, 69064bv64) == 1808bv64); @@ -135,23 +135,23 @@ procedure set_six_1828(); free ensures (memory_load64_le(mem, 69592bv64) == 1860bv64); free ensures (memory_load64_le(mem, 69672bv64) == 69672bv64); -implementation set_six_1828() +implementation set_six() { - set_six_1828__0__TW~TmrKcRPK8KwdrX6QBgg: - assume {:captureState "set_six_1828__0__TW~TmrKcRPK8KwdrX6QBgg"} true; + $set_six$__0__$TW~TmrKcRPK8KwdrX6QBgg: + assume {:captureState "$set_six$__0__$TW~TmrKcRPK8KwdrX6QBgg"} true; R9, Gamma_R9 := 69632bv64, true; R8, Gamma_R8 := 6bv64, true; call rely(); assert (L(mem, bvadd64(R9, 52bv64)) ==> Gamma_R8); mem, Gamma_mem := memory_store32_le(mem, bvadd64(R9, 52bv64), R8[32:0]), gamma_store32(Gamma_mem, bvadd64(R9, 52bv64), Gamma_R8); - assume {:captureState "1836_0"} true; - goto set_six_1828_basil_return; - set_six_1828_basil_return: - assume {:captureState "set_six_1828_basil_return"} true; + assume {:captureState "1836$0"} true; + goto set_six_basil_return; + set_six_basil_return: + assume {:captureState "set_six_basil_return"} true; return; } -procedure set_two_1812(); +procedure set_two(); modifies Gamma_R8, Gamma_R9, Gamma_mem, R8, R9, mem; free requires (memory_load32_le(mem, 2052bv64) == 131073bv32); free requires (memory_load64_le(mem, 69064bv64) == 1808bv64); @@ -164,23 +164,23 @@ procedure set_two_1812(); free ensures (memory_load64_le(mem, 69592bv64) == 1860bv64); free ensures (memory_load64_le(mem, 69672bv64) == 69672bv64); -implementation set_two_1812() +implementation set_two() { - set_two_1812__0__ZGCFxZYOSZCYCnRYI0pW4w: - assume {:captureState "set_two_1812__0__ZGCFxZYOSZCYCnRYI0pW4w"} true; + $set_two$__0__$ZGCFxZYOSZCYCnRYI0pW4w: + assume {:captureState "$set_two$__0__$ZGCFxZYOSZCYCnRYI0pW4w"} true; R9, Gamma_R9 := 69632bv64, true; R8, Gamma_R8 := 2bv64, true; call rely(); assert (L(mem, bvadd64(R9, 52bv64)) ==> Gamma_R8); mem, Gamma_mem := memory_store32_le(mem, bvadd64(R9, 52bv64), R8[32:0]), gamma_store32(Gamma_mem, bvadd64(R9, 52bv64), Gamma_R8); - assume {:captureState "1820_0"} true; - goto set_two_1812_basil_return; - set_two_1812_basil_return: - assume {:captureState "set_two_1812_basil_return"} true; + assume {:captureState "1820$0"} true; + goto set_two_basil_return; + set_two_basil_return: + assume {:captureState "set_two_basil_return"} true; return; } -procedure main_1860(); +procedure main(); modifies CF, Gamma_CF, Gamma_NF, Gamma_R0, Gamma_R29, Gamma_R30, Gamma_R31, Gamma_R8, Gamma_R9, Gamma_VF, Gamma_ZF, Gamma_mem, Gamma_stack, NF, R0, R29, R30, R31, R8, R9, VF, ZF, mem, stack; requires (Gamma_R0 == true); free requires (memory_load64_le(mem, 69664bv64) == 0bv64); @@ -200,209 +200,209 @@ procedure main_1860(); free ensures (memory_load64_le(mem, 69592bv64) == 1860bv64); free ensures (memory_load64_le(mem, 69672bv64) == 69672bv64); -implementation main_1860() +implementation main() { - var Cse0__5_0_1: bv32; - var Cse0__5_5_1: bv64; - var Cse0__5_7_1: bv32; - var Cse0__5_9_1: bv64; - var Cse0__5_9_7: bv32; - var Gamma_Cse0__5_0_1: bool; - var Gamma_Cse0__5_5_1: bool; - var Gamma_Cse0__5_7_1: bool; - var Gamma_Cse0__5_9_1: bool; - var Gamma_Cse0__5_9_7: bool; - var Gamma_load10: bool; - var Gamma_load11: bool; - var Gamma_load12: bool; - var Gamma_load13: bool; - var Gamma_load14: bool; - var Gamma_load15: bool; - var load10: bv32; - var load11: bv64; - var load12: bv64; - var load13: bv64; - var load14: bv32; - var load15: bv32; - main_1860__0__rboiQVDCQyC6FKdIfNmCPw: - assume {:captureState "main_1860__0__rboiQVDCQyC6FKdIfNmCPw"} true; + var $load10: bv32; + var $load11: bv64; + var $load12: bv64; + var $load13: bv64; + var $load14: bv32; + var $load15: bv32; + var Cse0__5$0$1: bv32; + var Cse0__5$5$1: bv64; + var Cse0__5$7$1: bv32; + var Cse0__5$9$1: bv64; + var Cse0__5$9$7: bv32; + var Gamma_$load10: bool; + var Gamma_$load11: bool; + var Gamma_$load12: bool; + var Gamma_$load13: bool; + var Gamma_$load14: bool; + var Gamma_$load15: bool; + var Gamma_Cse0__5$0$1: bool; + var Gamma_Cse0__5$5$1: bool; + var Gamma_Cse0__5$7$1: bool; + var Gamma_Cse0__5$9$1: bool; + var Gamma_Cse0__5$9$7: bool; + $main$__0__$rboiQVDCQyC6FKdIfNmCPw: + assume {:captureState "$main$__0__$rboiQVDCQyC6FKdIfNmCPw"} true; R31, Gamma_R31 := bvadd64(R31, 18446744073709551568bv64), Gamma_R31; - Cse0__5_9_1, Gamma_Cse0__5_9_1 := bvadd64(R31, 32bv64), Gamma_R31; - stack, Gamma_stack := memory_store64_le(stack, Cse0__5_9_1, R29), gamma_store64(Gamma_stack, Cse0__5_9_1, Gamma_R29); - assume {:captureState "1864_1"} true; - stack, Gamma_stack := memory_store64_le(stack, bvadd64(Cse0__5_9_1, 8bv64), R30), gamma_store64(Gamma_stack, bvadd64(Cse0__5_9_1, 8bv64), Gamma_R30); - assume {:captureState "1864_2"} true; + Cse0__5$9$1, Gamma_Cse0__5$9$1 := bvadd64(R31, 32bv64), Gamma_R31; + stack, Gamma_stack := memory_store64_le(stack, Cse0__5$9$1, R29), gamma_store64(Gamma_stack, Cse0__5$9$1, Gamma_R29); + assume {:captureState "1864$1"} true; + stack, Gamma_stack := memory_store64_le(stack, bvadd64(Cse0__5$9$1, 8bv64), R30), gamma_store64(Gamma_stack, bvadd64(Cse0__5$9$1, 8bv64), Gamma_R30); + assume {:captureState "1864$2"} true; R29, Gamma_R29 := bvadd64(R31, 32bv64), Gamma_R31; stack, Gamma_stack := memory_store32_le(stack, bvadd64(R29, 18446744073709551612bv64), 0bv32), gamma_store32(Gamma_stack, bvadd64(R29, 18446744073709551612bv64), true); - assume {:captureState "1872_0"} true; + assume {:captureState "1872$0"} true; stack, Gamma_stack := memory_store32_le(stack, bvadd64(R29, 18446744073709551608bv64), R0[32:0]), gamma_store32(Gamma_stack, bvadd64(R29, 18446744073709551608bv64), Gamma_R0); - assume {:captureState "1876_0"} true; - load15, Gamma_load15 := memory_load32_le(stack, bvadd64(R29, 18446744073709551608bv64)), gamma_load32(Gamma_stack, bvadd64(R29, 18446744073709551608bv64)); - R8, Gamma_R8 := zero_extend32_32(load15), Gamma_load15; + assume {:captureState "1876$0"} true; + $load15, Gamma_$load15 := memory_load32_le(stack, bvadd64(R29, 18446744073709551608bv64)), gamma_load32(Gamma_stack, bvadd64(R29, 18446744073709551608bv64)); + R8, Gamma_R8 := zero_extend32_32($load15), Gamma_$load15; stack, Gamma_stack := memory_store32_le(stack, bvadd64(R31, 12bv64), R8[32:0]), gamma_store32(Gamma_stack, bvadd64(R31, 12bv64), Gamma_R8); - assume {:captureState "1884_0"} true; - Cse0__5_9_7, Gamma_Cse0__5_9_7 := bvadd32(R8[32:0], 0bv32), Gamma_R8; - VF, Gamma_VF := bvnot1(bvcomp32(Cse0__5_9_7, Cse0__5_9_7)), Gamma_Cse0__5_9_7; - CF, Gamma_CF := bvnot1(bvcomp33(zero_extend1_32(Cse0__5_9_7), bvadd33(zero_extend1_32(R8[32:0]), 4294967296bv33))), (Gamma_R8 && Gamma_Cse0__5_9_7); - ZF, Gamma_ZF := bvcomp32(Cse0__5_9_7, 0bv32), Gamma_Cse0__5_9_7; - NF, Gamma_NF := Cse0__5_9_7[32:31], Gamma_Cse0__5_9_7; - R8, Gamma_R8 := zero_extend32_32(Cse0__5_9_7), Gamma_Cse0__5_9_7; + assume {:captureState "1884$0"} true; + Cse0__5$9$7, Gamma_Cse0__5$9$7 := bvadd32(R8[32:0], 0bv32), Gamma_R8; + VF, Gamma_VF := bvnot1(bvcomp32(Cse0__5$9$7, Cse0__5$9$7)), Gamma_Cse0__5$9$7; + CF, Gamma_CF := bvnot1(bvcomp33(zero_extend1_32(Cse0__5$9$7), bvadd33(zero_extend1_32(R8[32:0]), 4294967296bv33))), (Gamma_R8 && Gamma_Cse0__5$9$7); + ZF, Gamma_ZF := bvcomp32(Cse0__5$9$7, 0bv32), Gamma_Cse0__5$9$7; + NF, Gamma_NF := Cse0__5$9$7[32:31], Gamma_Cse0__5$9$7; + R8, Gamma_R8 := zero_extend32_32(Cse0__5$9$7), Gamma_Cse0__5$9$7; assert Gamma_ZF; - goto main_1860__0__rboiQVDCQyC6FKdIfNmCPw$__0, main_1860__0__rboiQVDCQyC6FKdIfNmCPw$__1; - main_1860__0__rboiQVDCQyC6FKdIfNmCPw$__1: - assume {:captureState "main_1860__0__rboiQVDCQyC6FKdIfNmCPw$__1"} true; - assume (!(!(ZF == 1bv1))); - R8, Gamma_R8 := 1bv64, true; - assert Gamma_R8; - goto main_1860__0__rboiQVDCQyC6FKdIfNmCPw_goto_main_1860__6__JHDryML5TjOA3hQf2kM0Cg, main_1860__0__rboiQVDCQyC6FKdIfNmCPw_goto_main_1860__1__RQAiG6zTRPieGXtg8phNzg; - main_1860__0__rboiQVDCQyC6FKdIfNmCPw$__0: - assume {:captureState "main_1860__0__rboiQVDCQyC6FKdIfNmCPw$__0"} true; - assume (!(ZF == 1bv1)); - R8, Gamma_R8 := 0bv64, true; - assert Gamma_R8; - goto main_1860__0__rboiQVDCQyC6FKdIfNmCPw_goto_main_1860__6__JHDryML5TjOA3hQf2kM0Cg, main_1860__0__rboiQVDCQyC6FKdIfNmCPw_goto_main_1860__1__RQAiG6zTRPieGXtg8phNzg; - main_1860__0__rboiQVDCQyC6FKdIfNmCPw_goto_main_1860__1__RQAiG6zTRPieGXtg8phNzg: - assume {:captureState "main_1860__0__rboiQVDCQyC6FKdIfNmCPw_goto_main_1860__1__RQAiG6zTRPieGXtg8phNzg"} true; - assume (!(R8[1:0] == 1bv1)); - goto main_1860__1__RQAiG6zTRPieGXtg8phNzg; - main_1860__1__RQAiG6zTRPieGXtg8phNzg: - assume {:captureState "main_1860__1__RQAiG6zTRPieGXtg8phNzg"} true; - goto main_1860__2__AkRBc3htTB6hp_enLsE9xA; - main_1860__2__AkRBc3htTB6hp_enLsE9xA: - assume {:captureState "main_1860__2__AkRBc3htTB6hp_enLsE9xA"} true; - load14, Gamma_load14 := memory_load32_le(stack, bvadd64(R31, 12bv64)), gamma_load32(Gamma_stack, bvadd64(R31, 12bv64)); - R8, Gamma_R8 := zero_extend32_32(load14), Gamma_load14; - Cse0__5_7_1, Gamma_Cse0__5_7_1 := bvadd32(R8[32:0], 4294967295bv32), Gamma_R8; - VF, Gamma_VF := bvnot1(bvcomp33(sign_extend1_32(Cse0__5_7_1), bvadd33(sign_extend1_32(R8[32:0]), 8589934591bv33))), (Gamma_R8 && Gamma_Cse0__5_7_1); - CF, Gamma_CF := bvnot1(bvcomp33(zero_extend1_32(Cse0__5_7_1), bvadd33(zero_extend1_32(R8[32:0]), 4294967295bv33))), (Gamma_R8 && Gamma_Cse0__5_7_1); - ZF, Gamma_ZF := bvcomp32(Cse0__5_7_1, 0bv32), Gamma_Cse0__5_7_1; - NF, Gamma_NF := Cse0__5_7_1[32:31], Gamma_Cse0__5_7_1; - R8, Gamma_R8 := zero_extend32_32(Cse0__5_7_1), Gamma_Cse0__5_7_1; + goto $main$__0__$rboiQVDCQyC6FKdIfNmCPw$__0, $main$__0__$rboiQVDCQyC6FKdIfNmCPw$__1; + $main$__1__$RQAiG6zTRPieGXtg8phNzg: + assume {:captureState "$main$__1__$RQAiG6zTRPieGXtg8phNzg"} true; + goto $main$__2__$AkRBc3htTB6hp_enLsE9xA; + $main$__2__$AkRBc3htTB6hp_enLsE9xA: + assume {:captureState "$main$__2__$AkRBc3htTB6hp_enLsE9xA"} true; + $load14, Gamma_$load14 := memory_load32_le(stack, bvadd64(R31, 12bv64)), gamma_load32(Gamma_stack, bvadd64(R31, 12bv64)); + R8, Gamma_R8 := zero_extend32_32($load14), Gamma_$load14; + Cse0__5$7$1, Gamma_Cse0__5$7$1 := bvadd32(R8[32:0], 4294967295bv32), Gamma_R8; + VF, Gamma_VF := bvnot1(bvcomp33(sign_extend1_32(Cse0__5$7$1), bvadd33(sign_extend1_32(R8[32:0]), 8589934591bv33))), (Gamma_R8 && Gamma_Cse0__5$7$1); + CF, Gamma_CF := bvnot1(bvcomp33(zero_extend1_32(Cse0__5$7$1), bvadd33(zero_extend1_32(R8[32:0]), 4294967295bv33))), (Gamma_R8 && Gamma_Cse0__5$7$1); + ZF, Gamma_ZF := bvcomp32(Cse0__5$7$1, 0bv32), Gamma_Cse0__5$7$1; + NF, Gamma_NF := Cse0__5$7$1[32:31], Gamma_Cse0__5$7$1; + R8, Gamma_R8 := zero_extend32_32(Cse0__5$7$1), Gamma_Cse0__5$7$1; assert Gamma_ZF; - goto main_1860__2__AkRBc3htTB6hp_enLsE9xA$__0, main_1860__2__AkRBc3htTB6hp_enLsE9xA$__1; - main_1860__2__AkRBc3htTB6hp_enLsE9xA$__1: - assume {:captureState "main_1860__2__AkRBc3htTB6hp_enLsE9xA$__1"} true; - assume (!(!(ZF == 1bv1))); - R8, Gamma_R8 := 1bv64, true; - assert Gamma_R8; - goto main_1860__2__AkRBc3htTB6hp_enLsE9xA_goto_main_1860__7__esd5Zx0TR0e4D_8HsKRPlw, main_1860__2__AkRBc3htTB6hp_enLsE9xA_goto_main_1860__3__I8FZ352ZRO~IEf~R_0OuJQ; - main_1860__2__AkRBc3htTB6hp_enLsE9xA$__0: - assume {:captureState "main_1860__2__AkRBc3htTB6hp_enLsE9xA$__0"} true; - assume (!(ZF == 1bv1)); - R8, Gamma_R8 := 0bv64, true; - assert Gamma_R8; - goto main_1860__2__AkRBc3htTB6hp_enLsE9xA_goto_main_1860__7__esd5Zx0TR0e4D_8HsKRPlw, main_1860__2__AkRBc3htTB6hp_enLsE9xA_goto_main_1860__3__I8FZ352ZRO~IEf~R_0OuJQ; - main_1860__2__AkRBc3htTB6hp_enLsE9xA_goto_main_1860__3__I8FZ352ZRO~IEf~R_0OuJQ: - assume {:captureState "main_1860__2__AkRBc3htTB6hp_enLsE9xA_goto_main_1860__3__I8FZ352ZRO~IEf~R_0OuJQ"} true; - assume (!(R8[1:0] == 1bv1)); - goto main_1860__3__I8FZ352ZRO~IEf~R_0OuJQ; - main_1860__3__I8FZ352ZRO~IEf~R_0OuJQ: - assume {:captureState "main_1860__3__I8FZ352ZRO~IEf~R_0OuJQ"} true; - goto main_1860__4__70RWhLkDTe~EhsDioLw8WQ; - main_1860__4__70RWhLkDTe~EhsDioLw8WQ: - assume {:captureState "main_1860__4__70RWhLkDTe~EhsDioLw8WQ"} true; - load10, Gamma_load10 := memory_load32_le(stack, bvadd64(R31, 12bv64)), gamma_load32(Gamma_stack, bvadd64(R31, 12bv64)); - R8, Gamma_R8 := zero_extend32_32(load10), Gamma_load10; - Cse0__5_0_1, Gamma_Cse0__5_0_1 := bvadd32(R8[32:0], 4294967294bv32), Gamma_R8; - VF, Gamma_VF := bvnot1(bvcomp33(sign_extend1_32(Cse0__5_0_1), bvadd33(sign_extend1_32(R8[32:0]), 8589934590bv33))), (Gamma_R8 && Gamma_Cse0__5_0_1); - CF, Gamma_CF := bvnot1(bvcomp33(zero_extend1_32(Cse0__5_0_1), bvadd33(zero_extend1_32(R8[32:0]), 4294967294bv33))), (Gamma_R8 && Gamma_Cse0__5_0_1); - ZF, Gamma_ZF := bvcomp32(Cse0__5_0_1, 0bv32), Gamma_Cse0__5_0_1; - NF, Gamma_NF := Cse0__5_0_1[32:31], Gamma_Cse0__5_0_1; - R8, Gamma_R8 := zero_extend32_32(Cse0__5_0_1), Gamma_Cse0__5_0_1; + goto $main$__2__$AkRBc3htTB6hp_enLsE9xA$__0, $main$__2__$AkRBc3htTB6hp_enLsE9xA$__1; + $main$__3__$I8FZ352ZRO~IEf~R_0OuJQ: + assume {:captureState "$main$__3__$I8FZ352ZRO~IEf~R_0OuJQ"} true; + goto $main$__4__$70RWhLkDTe~EhsDioLw8WQ; + $main$__4__$70RWhLkDTe~EhsDioLw8WQ: + assume {:captureState "$main$__4__$70RWhLkDTe~EhsDioLw8WQ"} true; + $load10, Gamma_$load10 := memory_load32_le(stack, bvadd64(R31, 12bv64)), gamma_load32(Gamma_stack, bvadd64(R31, 12bv64)); + R8, Gamma_R8 := zero_extend32_32($load10), Gamma_$load10; + Cse0__5$0$1, Gamma_Cse0__5$0$1 := bvadd32(R8[32:0], 4294967294bv32), Gamma_R8; + VF, Gamma_VF := bvnot1(bvcomp33(sign_extend1_32(Cse0__5$0$1), bvadd33(sign_extend1_32(R8[32:0]), 8589934590bv33))), (Gamma_R8 && Gamma_Cse0__5$0$1); + CF, Gamma_CF := bvnot1(bvcomp33(zero_extend1_32(Cse0__5$0$1), bvadd33(zero_extend1_32(R8[32:0]), 4294967294bv33))), (Gamma_R8 && Gamma_Cse0__5$0$1); + ZF, Gamma_ZF := bvcomp32(Cse0__5$0$1, 0bv32), Gamma_Cse0__5$0$1; + NF, Gamma_NF := Cse0__5$0$1[32:31], Gamma_Cse0__5$0$1; + R8, Gamma_R8 := zero_extend32_32(Cse0__5$0$1), Gamma_Cse0__5$0$1; assert Gamma_ZF; - goto main_1860__4__70RWhLkDTe~EhsDioLw8WQ$__0, main_1860__4__70RWhLkDTe~EhsDioLw8WQ$__1; - main_1860__4__70RWhLkDTe~EhsDioLw8WQ$__1: - assume {:captureState "main_1860__4__70RWhLkDTe~EhsDioLw8WQ$__1"} true; - assume (!(!(ZF == 1bv1))); - R8, Gamma_R8 := 1bv64, true; - assert Gamma_R8; - goto main_1860__4__70RWhLkDTe~EhsDioLw8WQ_goto_main_1860__8__5eLcB2fBTiuduOLFrI7HMQ, main_1860__4__70RWhLkDTe~EhsDioLw8WQ_goto_main_1860__5__y41iXcMRRS60gPiNTMEqUA; - main_1860__4__70RWhLkDTe~EhsDioLw8WQ$__0: - assume {:captureState "main_1860__4__70RWhLkDTe~EhsDioLw8WQ$__0"} true; - assume (!(ZF == 1bv1)); - R8, Gamma_R8 := 0bv64, true; - assert Gamma_R8; - goto main_1860__4__70RWhLkDTe~EhsDioLw8WQ_goto_main_1860__8__5eLcB2fBTiuduOLFrI7HMQ, main_1860__4__70RWhLkDTe~EhsDioLw8WQ_goto_main_1860__5__y41iXcMRRS60gPiNTMEqUA; - main_1860__4__70RWhLkDTe~EhsDioLw8WQ_goto_main_1860__5__y41iXcMRRS60gPiNTMEqUA: - assume {:captureState "main_1860__4__70RWhLkDTe~EhsDioLw8WQ_goto_main_1860__5__y41iXcMRRS60gPiNTMEqUA"} true; - assume (!(R8[1:0] == 1bv1)); - goto main_1860__5__y41iXcMRRS60gPiNTMEqUA; - main_1860__5__y41iXcMRRS60gPiNTMEqUA: - assume {:captureState "main_1860__5__y41iXcMRRS60gPiNTMEqUA"} true; - goto main_1860__9__AsLE5WYARJCWvKLiwF4hRQ; - main_1860__9__AsLE5WYARJCWvKLiwF4hRQ: - assume {:captureState "main_1860__9__AsLE5WYARJCWvKLiwF4hRQ"} true; + goto $main$__4__$70RWhLkDTe~EhsDioLw8WQ$__0, $main$__4__$70RWhLkDTe~EhsDioLw8WQ$__1; + $main$__5__$y41iXcMRRS60gPiNTMEqUA: + assume {:captureState "$main$__5__$y41iXcMRRS60gPiNTMEqUA"} true; + goto $main$__9__$AsLE5WYARJCWvKLiwF4hRQ; + $main$__6__$JHDryML5TjOA3hQf2kM0Cg: + assume {:captureState "$main$__6__$JHDryML5TjOA3hQf2kM0Cg"} true; R8, Gamma_R8 := 0bv64, true; R8, Gamma_R8 := bvadd64(R8, 1812bv64), Gamma_R8; stack, Gamma_stack := memory_store64_le(stack, bvadd64(R31, 16bv64), R8), gamma_store64(Gamma_stack, bvadd64(R31, 16bv64), Gamma_R8); - assume {:captureState "2000_0"} true; - goto main_1860__10__97Y0dwDdTcSoq5o31slpCQ; - main_1860__4__70RWhLkDTe~EhsDioLw8WQ_goto_main_1860__8__5eLcB2fBTiuduOLFrI7HMQ: - assume {:captureState "main_1860__4__70RWhLkDTe~EhsDioLw8WQ_goto_main_1860__8__5eLcB2fBTiuduOLFrI7HMQ"} true; - assume (R8[1:0] == 1bv1); + assume {:captureState "1952$0"} true; + goto $main$__10__$97Y0dwDdTcSoq5o31slpCQ; + $main$__7__$esd5Zx0TR0e4D_8HsKRPlw: + assume {:captureState "$main$__7__$esd5Zx0TR0e4D_8HsKRPlw"} true; R8, Gamma_R8 := 0bv64, true; - R8, Gamma_R8 := bvadd64(R8, 1844bv64), Gamma_R8; + R8, Gamma_R8 := bvadd64(R8, 1828bv64), Gamma_R8; stack, Gamma_stack := memory_store64_le(stack, bvadd64(R31, 16bv64), R8), gamma_store64(Gamma_stack, bvadd64(R31, 16bv64), Gamma_R8); - assume {:captureState "1984_0"} true; - goto main_1860__8__5eLcB2fBTiuduOLFrI7HMQ; - main_1860__8__5eLcB2fBTiuduOLFrI7HMQ: - assume {:captureState "main_1860__8__5eLcB2fBTiuduOLFrI7HMQ"} true; - goto main_1860__10__97Y0dwDdTcSoq5o31slpCQ; - main_1860__2__AkRBc3htTB6hp_enLsE9xA_goto_main_1860__7__esd5Zx0TR0e4D_8HsKRPlw: - assume {:captureState "main_1860__2__AkRBc3htTB6hp_enLsE9xA_goto_main_1860__7__esd5Zx0TR0e4D_8HsKRPlw"} true; - assume (R8[1:0] == 1bv1); + assume {:captureState "1968$0"} true; + goto $main$__10__$97Y0dwDdTcSoq5o31slpCQ; + $main$__8__$5eLcB2fBTiuduOLFrI7HMQ: + assume {:captureState "$main$__8__$5eLcB2fBTiuduOLFrI7HMQ"} true; R8, Gamma_R8 := 0bv64, true; - R8, Gamma_R8 := bvadd64(R8, 1828bv64), Gamma_R8; + R8, Gamma_R8 := bvadd64(R8, 1844bv64), Gamma_R8; stack, Gamma_stack := memory_store64_le(stack, bvadd64(R31, 16bv64), R8), gamma_store64(Gamma_stack, bvadd64(R31, 16bv64), Gamma_R8); - assume {:captureState "1968_0"} true; - goto main_1860__7__esd5Zx0TR0e4D_8HsKRPlw; - main_1860__7__esd5Zx0TR0e4D_8HsKRPlw: - assume {:captureState "main_1860__7__esd5Zx0TR0e4D_8HsKRPlw"} true; - goto main_1860__10__97Y0dwDdTcSoq5o31slpCQ; - main_1860__0__rboiQVDCQyC6FKdIfNmCPw_goto_main_1860__6__JHDryML5TjOA3hQf2kM0Cg: - assume {:captureState "main_1860__0__rboiQVDCQyC6FKdIfNmCPw_goto_main_1860__6__JHDryML5TjOA3hQf2kM0Cg"} true; - assume (R8[1:0] == 1bv1); + assume {:captureState "1984$0"} true; + goto $main$__10__$97Y0dwDdTcSoq5o31slpCQ; + $main$__9__$AsLE5WYARJCWvKLiwF4hRQ: + assume {:captureState "$main$__9__$AsLE5WYARJCWvKLiwF4hRQ"} true; R8, Gamma_R8 := 0bv64, true; R8, Gamma_R8 := bvadd64(R8, 1812bv64), Gamma_R8; stack, Gamma_stack := memory_store64_le(stack, bvadd64(R31, 16bv64), R8), gamma_store64(Gamma_stack, bvadd64(R31, 16bv64), Gamma_R8); - assume {:captureState "1952_0"} true; - goto main_1860__6__JHDryML5TjOA3hQf2kM0Cg; - main_1860__6__JHDryML5TjOA3hQf2kM0Cg: - assume {:captureState "main_1860__6__JHDryML5TjOA3hQf2kM0Cg"} true; - goto main_1860__10__97Y0dwDdTcSoq5o31slpCQ; - main_1860__10__97Y0dwDdTcSoq5o31slpCQ: - assume {:captureState "main_1860__10__97Y0dwDdTcSoq5o31slpCQ"} true; - load11, Gamma_load11 := memory_load64_le(stack, bvadd64(R31, 16bv64)), gamma_load64(Gamma_stack, bvadd64(R31, 16bv64)); - R8, Gamma_R8 := load11, Gamma_load11; + assume {:captureState "2000$0"} true; + goto $main$__10__$97Y0dwDdTcSoq5o31slpCQ; + $main$__10__$97Y0dwDdTcSoq5o31slpCQ: + assume {:captureState "$main$__10__$97Y0dwDdTcSoq5o31slpCQ"} true; + $load11, Gamma_$load11 := memory_load64_le(stack, bvadd64(R31, 16bv64)), gamma_load64(Gamma_stack, bvadd64(R31, 16bv64)); + R8, Gamma_R8 := $load11, Gamma_$load11; R30, Gamma_R30 := 2016bv64, true; - goto main_1860__10__97Y0dwDdTcSoq5o31slpCQ_set_two_1812, main_1860__10__97Y0dwDdTcSoq5o31slpCQ_set_six_1828, main_1860__10__97Y0dwDdTcSoq5o31slpCQ_set_seven_1844; - main_1860__10__97Y0dwDdTcSoq5o31slpCQ_set_seven_1844: - assume {:captureState "main_1860__10__97Y0dwDdTcSoq5o31slpCQ_set_seven_1844"} true; - assume (R8 == 1844bv64); - call set_seven_1844(); - goto main_1860__11__jAHnJBxNS3WjIRJVHu5UsQ; - main_1860__10__97Y0dwDdTcSoq5o31slpCQ_set_six_1828: - assume {:captureState "main_1860__10__97Y0dwDdTcSoq5o31slpCQ_set_six_1828"} true; - assume (R8 == 1828bv64); - call set_six_1828(); - goto main_1860__11__jAHnJBxNS3WjIRJVHu5UsQ; - main_1860__10__97Y0dwDdTcSoq5o31slpCQ_set_two_1812: - assume {:captureState "main_1860__10__97Y0dwDdTcSoq5o31slpCQ_set_two_1812"} true; - assume (R8 == 1812bv64); - call set_two_1812(); - goto main_1860__11__jAHnJBxNS3WjIRJVHu5UsQ; - main_1860__11__jAHnJBxNS3WjIRJVHu5UsQ: - assume {:captureState "main_1860__11__jAHnJBxNS3WjIRJVHu5UsQ"} true; + goto $main$__10__$97Y0dwDdTcSoq5o31slpCQ$set_two, $main$__10__$97Y0dwDdTcSoq5o31slpCQ$set_six, $main$__10__$97Y0dwDdTcSoq5o31slpCQ$set_seven; + $main$__11__$jAHnJBxNS3WjIRJVHu5UsQ: + assume {:captureState "$main$__11__$jAHnJBxNS3WjIRJVHu5UsQ"} true; R0, Gamma_R0 := 0bv64, true; - Cse0__5_5_1, Gamma_Cse0__5_5_1 := bvadd64(R31, 32bv64), Gamma_R31; - load12, Gamma_load12 := memory_load64_le(stack, Cse0__5_5_1), gamma_load64(Gamma_stack, Cse0__5_5_1); - R29, Gamma_R29 := load12, Gamma_load12; - load13, Gamma_load13 := memory_load64_le(stack, bvadd64(Cse0__5_5_1, 8bv64)), gamma_load64(Gamma_stack, bvadd64(Cse0__5_5_1, 8bv64)); - R30, Gamma_R30 := load13, Gamma_load13; + Cse0__5$5$1, Gamma_Cse0__5$5$1 := bvadd64(R31, 32bv64), Gamma_R31; + $load12, Gamma_$load12 := memory_load64_le(stack, Cse0__5$5$1), gamma_load64(Gamma_stack, Cse0__5$5$1); + R29, Gamma_R29 := $load12, Gamma_$load12; + $load13, Gamma_$load13 := memory_load64_le(stack, bvadd64(Cse0__5$5$1, 8bv64)), gamma_load64(Gamma_stack, bvadd64(Cse0__5$5$1, 8bv64)); + R30, Gamma_R30 := $load13, Gamma_$load13; R31, Gamma_R31 := bvadd64(R31, 48bv64), Gamma_R31; - goto main_1860_basil_return; - main_1860_basil_return: - assume {:captureState "main_1860_basil_return"} true; + goto main_basil_return; + $main$__4__$70RWhLkDTe~EhsDioLw8WQ_goto_$main$__8__$5eLcB2fBTiuduOLFrI7HMQ: + assume {:captureState "$main$__4__$70RWhLkDTe~EhsDioLw8WQ_goto_$main$__8__$5eLcB2fBTiuduOLFrI7HMQ"} true; + assume (R8[1:0] == 1bv1); + goto $main$__8__$5eLcB2fBTiuduOLFrI7HMQ; + $main$__4__$70RWhLkDTe~EhsDioLw8WQ_goto_$main$__5__$y41iXcMRRS60gPiNTMEqUA: + assume {:captureState "$main$__4__$70RWhLkDTe~EhsDioLw8WQ_goto_$main$__5__$y41iXcMRRS60gPiNTMEqUA"} true; + assume (!(R8[1:0] == 1bv1)); + goto $main$__5__$y41iXcMRRS60gPiNTMEqUA; + $main$__4__$70RWhLkDTe~EhsDioLw8WQ$__0: + assume {:captureState "$main$__4__$70RWhLkDTe~EhsDioLw8WQ$__0"} true; + assume (!(ZF == 1bv1)); + R8, Gamma_R8 := 0bv64, true; + assert Gamma_R8; + goto $main$__4__$70RWhLkDTe~EhsDioLw8WQ_goto_$main$__8__$5eLcB2fBTiuduOLFrI7HMQ, $main$__4__$70RWhLkDTe~EhsDioLw8WQ_goto_$main$__5__$y41iXcMRRS60gPiNTMEqUA; + $main$__4__$70RWhLkDTe~EhsDioLw8WQ$__1: + assume {:captureState "$main$__4__$70RWhLkDTe~EhsDioLw8WQ$__1"} true; + assume (!(!(ZF == 1bv1))); + R8, Gamma_R8 := 1bv64, true; + assert Gamma_R8; + goto $main$__4__$70RWhLkDTe~EhsDioLw8WQ_goto_$main$__8__$5eLcB2fBTiuduOLFrI7HMQ, $main$__4__$70RWhLkDTe~EhsDioLw8WQ_goto_$main$__5__$y41iXcMRRS60gPiNTMEqUA; + $main$__10__$97Y0dwDdTcSoq5o31slpCQ$set_two: + assume {:captureState "$main$__10__$97Y0dwDdTcSoq5o31slpCQ$set_two"} true; + assume (R8 == 1812bv64); + call set_two(); + goto $main$__11__$jAHnJBxNS3WjIRJVHu5UsQ; + $main$__10__$97Y0dwDdTcSoq5o31slpCQ$set_six: + assume {:captureState "$main$__10__$97Y0dwDdTcSoq5o31slpCQ$set_six"} true; + assume (R8 == 1828bv64); + call set_six(); + goto $main$__11__$jAHnJBxNS3WjIRJVHu5UsQ; + $main$__10__$97Y0dwDdTcSoq5o31slpCQ$set_seven: + assume {:captureState "$main$__10__$97Y0dwDdTcSoq5o31slpCQ$set_seven"} true; + assume (R8 == 1844bv64); + call set_seven(); + goto $main$__11__$jAHnJBxNS3WjIRJVHu5UsQ; + $main$__2__$AkRBc3htTB6hp_enLsE9xA_goto_$main$__7__$esd5Zx0TR0e4D_8HsKRPlw: + assume {:captureState "$main$__2__$AkRBc3htTB6hp_enLsE9xA_goto_$main$__7__$esd5Zx0TR0e4D_8HsKRPlw"} true; + assume (R8[1:0] == 1bv1); + goto $main$__7__$esd5Zx0TR0e4D_8HsKRPlw; + $main$__2__$AkRBc3htTB6hp_enLsE9xA_goto_$main$__3__$I8FZ352ZRO~IEf~R_0OuJQ: + assume {:captureState "$main$__2__$AkRBc3htTB6hp_enLsE9xA_goto_$main$__3__$I8FZ352ZRO~IEf~R_0OuJQ"} true; + assume (!(R8[1:0] == 1bv1)); + goto $main$__3__$I8FZ352ZRO~IEf~R_0OuJQ; + $main$__2__$AkRBc3htTB6hp_enLsE9xA$__0: + assume {:captureState "$main$__2__$AkRBc3htTB6hp_enLsE9xA$__0"} true; + assume (!(ZF == 1bv1)); + R8, Gamma_R8 := 0bv64, true; + assert Gamma_R8; + goto $main$__2__$AkRBc3htTB6hp_enLsE9xA_goto_$main$__7__$esd5Zx0TR0e4D_8HsKRPlw, $main$__2__$AkRBc3htTB6hp_enLsE9xA_goto_$main$__3__$I8FZ352ZRO~IEf~R_0OuJQ; + $main$__2__$AkRBc3htTB6hp_enLsE9xA$__1: + assume {:captureState "$main$__2__$AkRBc3htTB6hp_enLsE9xA$__1"} true; + assume (!(!(ZF == 1bv1))); + R8, Gamma_R8 := 1bv64, true; + assert Gamma_R8; + goto $main$__2__$AkRBc3htTB6hp_enLsE9xA_goto_$main$__7__$esd5Zx0TR0e4D_8HsKRPlw, $main$__2__$AkRBc3htTB6hp_enLsE9xA_goto_$main$__3__$I8FZ352ZRO~IEf~R_0OuJQ; + $main$__0__$rboiQVDCQyC6FKdIfNmCPw_goto_$main$__6__$JHDryML5TjOA3hQf2kM0Cg: + assume {:captureState "$main$__0__$rboiQVDCQyC6FKdIfNmCPw_goto_$main$__6__$JHDryML5TjOA3hQf2kM0Cg"} true; + assume (R8[1:0] == 1bv1); + goto $main$__6__$JHDryML5TjOA3hQf2kM0Cg; + $main$__0__$rboiQVDCQyC6FKdIfNmCPw_goto_$main$__1__$RQAiG6zTRPieGXtg8phNzg: + assume {:captureState "$main$__0__$rboiQVDCQyC6FKdIfNmCPw_goto_$main$__1__$RQAiG6zTRPieGXtg8phNzg"} true; + assume (!(R8[1:0] == 1bv1)); + goto $main$__1__$RQAiG6zTRPieGXtg8phNzg; + $main$__0__$rboiQVDCQyC6FKdIfNmCPw$__0: + assume {:captureState "$main$__0__$rboiQVDCQyC6FKdIfNmCPw$__0"} true; + assume (!(ZF == 1bv1)); + R8, Gamma_R8 := 0bv64, true; + assert Gamma_R8; + goto $main$__0__$rboiQVDCQyC6FKdIfNmCPw_goto_$main$__6__$JHDryML5TjOA3hQf2kM0Cg, $main$__0__$rboiQVDCQyC6FKdIfNmCPw_goto_$main$__1__$RQAiG6zTRPieGXtg8phNzg; + $main$__0__$rboiQVDCQyC6FKdIfNmCPw$__1: + assume {:captureState "$main$__0__$rboiQVDCQyC6FKdIfNmCPw$__1"} true; + assume (!(!(ZF == 1bv1))); + R8, Gamma_R8 := 1bv64, true; + assert Gamma_R8; + goto $main$__0__$rboiQVDCQyC6FKdIfNmCPw_goto_$main$__6__$JHDryML5TjOA3hQf2kM0Cg, $main$__0__$rboiQVDCQyC6FKdIfNmCPw_goto_$main$__1__$RQAiG6zTRPieGXtg8phNzg; + main_basil_return: + assume {:captureState "main_basil_return"} true; return; } diff --git a/src/test/correct/functionpointer/clang_pic/functionpointer.gts b/src/test/correct/functionpointer/clang_pic/functionpointer.gts deleted file mode 100644 index 5211b796a..000000000 Binary files a/src/test/correct/functionpointer/clang_pic/functionpointer.gts and /dev/null differ diff --git a/src/test/correct/functionpointer/clang_pic/functionpointer.md5sum b/src/test/correct/functionpointer/clang_pic/functionpointer.md5sum new file mode 100644 index 000000000..a773b9386 --- /dev/null +++ b/src/test/correct/functionpointer/clang_pic/functionpointer.md5sum @@ -0,0 +1,3 @@ +cde0dd1493e74f760c4d3b85fbc38486 correct/functionpointer/clang_pic/a.out +14df3f414fecb064a4079ce090044615 correct/functionpointer/clang_pic/functionpointer.relf +208358ca761df986a37111cc855d5543 correct/functionpointer/clang_pic/functionpointer.gts diff --git a/src/test/correct/functionpointer/clang_pic/functionpointer.relf b/src/test/correct/functionpointer/clang_pic/functionpointer.relf deleted file mode 100644 index b0b8fec7c..000000000 --- a/src/test/correct/functionpointer/clang_pic/functionpointer.relf +++ /dev/null @@ -1,130 +0,0 @@ - -Relocation section '.rela.dyn' at offset 0x460 contains 12 entries: - Offset Info Type Symbol's Value Symbol's Name + Addend -0000000000010da8 0000000000000403 R_AARCH64_RELATIVE 790 -0000000000010db0 0000000000000403 R_AARCH64_RELATIVE 740 -0000000000010fb0 0000000000000403 R_AARCH64_RELATIVE 11034 -0000000000010fc0 0000000000000403 R_AARCH64_RELATIVE 794 -0000000000010fc8 0000000000000403 R_AARCH64_RELATIVE 7a8 -0000000000010fd0 0000000000000403 R_AARCH64_RELATIVE 7d0 -0000000000010fd8 0000000000000403 R_AARCH64_RELATIVE 7bc -0000000000011028 0000000000000403 R_AARCH64_RELATIVE 11028 -0000000000010fa0 0000000400000401 R_AARCH64_GLOB_DAT 0000000000000000 _ITM_deregisterTMCloneTable + 0 -0000000000010fa8 0000000500000401 R_AARCH64_GLOB_DAT 0000000000000000 __cxa_finalize@GLIBC_2.17 + 0 -0000000000010fb8 0000000600000401 R_AARCH64_GLOB_DAT 0000000000000000 __gmon_start__ + 0 -0000000000010fe0 0000000800000401 R_AARCH64_GLOB_DAT 0000000000000000 _ITM_registerTMCloneTable + 0 - -Relocation section '.rela.plt' at offset 0x580 contains 4 entries: - Offset Info Type Symbol's Value Symbol's Name + Addend -0000000000011000 0000000300000402 R_AARCH64_JUMP_SLOT 0000000000000000 __libc_start_main@GLIBC_2.34 + 0 -0000000000011008 0000000500000402 R_AARCH64_JUMP_SLOT 0000000000000000 __cxa_finalize@GLIBC_2.17 + 0 -0000000000011010 0000000600000402 R_AARCH64_JUMP_SLOT 0000000000000000 __gmon_start__ + 0 -0000000000011018 0000000700000402 R_AARCH64_JUMP_SLOT 0000000000000000 abort@GLIBC_2.17 + 0 - -Symbol table '.dynsym' contains 9 entries: - Num: Value Size Type Bind Vis Ndx Name - 0: 0000000000000000 0 NOTYPE LOCAL DEFAULT UND - 1: 00000000000005e0 0 SECTION LOCAL DEFAULT 11 .init - 2: 0000000000011020 0 SECTION LOCAL DEFAULT 23 .data - 3: 0000000000000000 0 FUNC GLOBAL DEFAULT UND __libc_start_main@GLIBC_2.34 (2) - 4: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_deregisterTMCloneTable - 5: 0000000000000000 0 FUNC WEAK DEFAULT UND __cxa_finalize@GLIBC_2.17 (3) - 6: 0000000000000000 0 NOTYPE WEAK DEFAULT UND __gmon_start__ - 7: 0000000000000000 0 FUNC GLOBAL DEFAULT UND abort@GLIBC_2.17 (3) - 8: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_registerTMCloneTable - -Symbol table '.symtab' contains 93 entries: - Num: Value Size Type Bind Vis Ndx Name - 0: 0000000000000000 0 NOTYPE LOCAL DEFAULT UND - 1: 0000000000000238 0 SECTION LOCAL DEFAULT 1 .interp - 2: 0000000000000254 0 SECTION LOCAL DEFAULT 2 .note.gnu.build-id - 3: 0000000000000278 0 SECTION LOCAL DEFAULT 3 .note.ABI-tag - 4: 0000000000000298 0 SECTION LOCAL DEFAULT 4 .gnu.hash - 5: 00000000000002b8 0 SECTION LOCAL DEFAULT 5 .dynsym - 6: 0000000000000390 0 SECTION LOCAL DEFAULT 6 .dynstr - 7: 000000000000041e 0 SECTION LOCAL DEFAULT 7 .gnu.version - 8: 0000000000000430 0 SECTION LOCAL DEFAULT 8 .gnu.version_r - 9: 0000000000000460 0 SECTION LOCAL DEFAULT 9 .rela.dyn - 10: 0000000000000580 0 SECTION LOCAL DEFAULT 10 .rela.plt - 11: 00000000000005e0 0 SECTION LOCAL DEFAULT 11 .init - 12: 0000000000000600 0 SECTION LOCAL DEFAULT 12 .plt - 13: 0000000000000680 0 SECTION LOCAL DEFAULT 13 .text - 14: 000000000000087c 0 SECTION LOCAL DEFAULT 14 .fini - 15: 0000000000000890 0 SECTION LOCAL DEFAULT 15 .rodata - 16: 0000000000000894 0 SECTION LOCAL DEFAULT 16 .eh_frame_hdr - 17: 00000000000008e8 0 SECTION LOCAL DEFAULT 17 .eh_frame - 18: 0000000000010da8 0 SECTION LOCAL DEFAULT 18 .init_array - 19: 0000000000010db0 0 SECTION LOCAL DEFAULT 19 .fini_array - 20: 0000000000010db8 0 SECTION LOCAL DEFAULT 20 .dynamic - 21: 0000000000010f98 0 SECTION LOCAL DEFAULT 21 .got - 22: 0000000000010fe8 0 SECTION LOCAL DEFAULT 22 .got.plt - 23: 0000000000011020 0 SECTION LOCAL DEFAULT 23 .data - 24: 0000000000011030 0 SECTION LOCAL DEFAULT 24 .bss - 25: 0000000000000000 0 SECTION LOCAL DEFAULT 25 .comment - 26: 0000000000000000 0 FILE LOCAL DEFAULT ABS Scrt1.o - 27: 0000000000000278 0 NOTYPE LOCAL DEFAULT 3 $d - 28: 0000000000000278 32 OBJECT LOCAL DEFAULT 3 __abi_tag - 29: 0000000000000680 0 NOTYPE LOCAL DEFAULT 13 $x - 30: 00000000000008fc 0 NOTYPE LOCAL DEFAULT 17 $d - 31: 0000000000000890 0 NOTYPE LOCAL DEFAULT 15 $d - 32: 0000000000000000 0 FILE LOCAL DEFAULT ABS crti.o - 33: 00000000000006b4 0 NOTYPE LOCAL DEFAULT 13 $x - 34: 00000000000006b4 20 FUNC LOCAL DEFAULT 13 call_weak_fn - 35: 00000000000005e0 0 NOTYPE LOCAL DEFAULT 11 $x - 36: 000000000000087c 0 NOTYPE LOCAL DEFAULT 14 $x - 37: 0000000000000000 0 FILE LOCAL DEFAULT ABS crtn.o - 38: 00000000000005f0 0 NOTYPE LOCAL DEFAULT 11 $x - 39: 0000000000000888 0 NOTYPE LOCAL DEFAULT 14 $x - 40: 0000000000000000 0 FILE LOCAL DEFAULT ABS crtstuff.c - 41: 00000000000006d0 0 NOTYPE LOCAL DEFAULT 13 $x - 42: 00000000000006d0 0 FUNC LOCAL DEFAULT 13 deregister_tm_clones - 43: 0000000000000700 0 FUNC LOCAL DEFAULT 13 register_tm_clones - 44: 0000000000011028 0 NOTYPE LOCAL DEFAULT 23 $d - 45: 0000000000000740 0 FUNC LOCAL DEFAULT 13 __do_global_dtors_aux - 46: 0000000000011030 1 OBJECT LOCAL DEFAULT 24 completed.0 - 47: 0000000000010db0 0 NOTYPE LOCAL DEFAULT 19 $d - 48: 0000000000010db0 0 OBJECT LOCAL DEFAULT 19 __do_global_dtors_aux_fini_array_entry - 49: 0000000000000790 0 FUNC LOCAL DEFAULT 13 frame_dummy - 50: 0000000000010da8 0 NOTYPE LOCAL DEFAULT 18 $d - 51: 0000000000010da8 0 OBJECT LOCAL DEFAULT 18 __frame_dummy_init_array_entry - 52: 0000000000000910 0 NOTYPE LOCAL DEFAULT 17 $d - 53: 0000000000011030 0 NOTYPE LOCAL DEFAULT 24 $d - 54: 0000000000000000 0 FILE LOCAL DEFAULT ABS functionpointer.c - 55: 0000000000000794 0 NOTYPE LOCAL DEFAULT 13 $x.0 - 56: 0000000000011034 0 NOTYPE LOCAL DEFAULT 24 $d.1 - 57: 000000000000002a 0 NOTYPE LOCAL DEFAULT 25 $d.2 - 58: 0000000000000970 0 NOTYPE LOCAL DEFAULT 17 $d.3 - 59: 0000000000000000 0 FILE LOCAL DEFAULT ABS crtstuff.c - 60: 00000000000009e8 0 NOTYPE LOCAL DEFAULT 17 $d - 61: 00000000000009e8 0 OBJECT LOCAL DEFAULT 17 __FRAME_END__ - 62: 0000000000000000 0 FILE LOCAL DEFAULT ABS - 63: 0000000000010db8 0 OBJECT LOCAL DEFAULT ABS _DYNAMIC - 64: 0000000000000894 0 NOTYPE LOCAL DEFAULT 16 __GNU_EH_FRAME_HDR - 65: 0000000000010f98 0 OBJECT LOCAL DEFAULT ABS _GLOBAL_OFFSET_TABLE_ - 66: 0000000000000600 0 NOTYPE LOCAL DEFAULT 12 $x - 67: 0000000000000000 0 FUNC GLOBAL DEFAULT UND __libc_start_main@GLIBC_2.34 - 68: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_deregisterTMCloneTable - 69: 0000000000011020 0 NOTYPE WEAK DEFAULT 23 data_start - 70: 0000000000011030 0 NOTYPE GLOBAL DEFAULT 24 __bss_start__ - 71: 0000000000000000 0 FUNC WEAK DEFAULT UND __cxa_finalize@GLIBC_2.17 - 72: 0000000000011038 0 NOTYPE GLOBAL DEFAULT 24 _bss_end__ - 73: 0000000000011030 0 NOTYPE GLOBAL DEFAULT 23 _edata - 74: 0000000000011034 4 OBJECT GLOBAL DEFAULT 24 x - 75: 000000000000087c 0 FUNC GLOBAL HIDDEN 14 _fini - 76: 0000000000011038 0 NOTYPE GLOBAL DEFAULT 24 __bss_end__ - 77: 0000000000011020 0 NOTYPE GLOBAL DEFAULT 23 __data_start - 78: 0000000000000000 0 NOTYPE WEAK DEFAULT UND __gmon_start__ - 79: 0000000000011028 0 OBJECT GLOBAL HIDDEN 23 __dso_handle - 80: 0000000000000000 0 FUNC GLOBAL DEFAULT UND abort@GLIBC_2.17 - 81: 0000000000000890 4 OBJECT GLOBAL DEFAULT 15 _IO_stdin_used - 82: 0000000000000794 20 FUNC GLOBAL DEFAULT 13 set_two - 83: 0000000000011038 0 NOTYPE GLOBAL DEFAULT 24 _end - 84: 0000000000000680 52 FUNC GLOBAL DEFAULT 13 _start - 85: 0000000000011038 0 NOTYPE GLOBAL DEFAULT 24 __end__ - 86: 00000000000007a8 20 FUNC GLOBAL DEFAULT 13 set_six - 87: 0000000000011030 0 NOTYPE GLOBAL DEFAULT 24 __bss_start - 88: 00000000000007d0 172 FUNC GLOBAL DEFAULT 13 main - 89: 00000000000007bc 20 FUNC GLOBAL DEFAULT 13 set_seven - 90: 0000000000011030 0 OBJECT GLOBAL HIDDEN 23 __TMC_END__ - 91: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_registerTMCloneTable - 92: 00000000000005e0 0 FUNC GLOBAL HIDDEN 11 _init diff --git a/src/test/correct/functionpointer/clang_pic/functionpointer_gtirb.expected b/src/test/correct/functionpointer/clang_pic/functionpointer_gtirb.expected index e38fc2f51..3e90c44a1 100644 --- a/src/test/correct/functionpointer/clang_pic/functionpointer_gtirb.expected +++ b/src/test/correct/functionpointer/clang_pic/functionpointer_gtirb.expected @@ -97,7 +97,7 @@ procedure {:extern} rely_reflexive(); procedure {:extern} guarantee_reflexive(); modifies Gamma_mem, mem; -procedure set_seven_1980(); +procedure set_seven(); modifies Gamma_R8, Gamma_R9, Gamma_mem, R8, R9, mem; free requires (memory_load32_le(mem, 2192bv64) == 131073bv32); free requires (memory_load64_le(mem, 69032bv64) == 1936bv64); @@ -118,28 +118,28 @@ procedure set_seven_1980(); free ensures (memory_load64_le(mem, 69592bv64) == 1980bv64); free ensures (memory_load64_le(mem, 69672bv64) == 69672bv64); -implementation set_seven_1980() +implementation set_seven() { - var Gamma_load6: bool; - var load6: bv64; - set_seven_1980__0__kTg_e3tbRpqCznoQ8obi7A: - assume {:captureState "set_seven_1980__0__kTg_e3tbRpqCznoQ8obi7A"} true; + var $load6: bv64; + var Gamma_$load6: bool; + $set_seven$__0__$kTg_e3tbRpqCznoQ8obi7A: + assume {:captureState "$set_seven$__0__$kTg_e3tbRpqCznoQ8obi7A"} true; R9, Gamma_R9 := 65536bv64, true; call rely(); - load6, Gamma_load6 := memory_load64_le(mem, bvadd64(R9, 4016bv64)), (gamma_load64(Gamma_mem, bvadd64(R9, 4016bv64)) || L(mem, bvadd64(R9, 4016bv64))); - R9, Gamma_R9 := load6, Gamma_load6; + $load6, Gamma_$load6 := memory_load64_le(mem, bvadd64(R9, 4016bv64)), (gamma_load64(Gamma_mem, bvadd64(R9, 4016bv64)) || L(mem, bvadd64(R9, 4016bv64))); + R9, Gamma_R9 := $load6, Gamma_$load6; R8, Gamma_R8 := 7bv64, true; call rely(); assert (L(mem, R9) ==> Gamma_R8); mem, Gamma_mem := memory_store32_le(mem, R9, R8[32:0]), gamma_store32(Gamma_mem, R9, Gamma_R8); - assume {:captureState "1992_0"} true; - goto set_seven_1980_basil_return; - set_seven_1980_basil_return: - assume {:captureState "set_seven_1980_basil_return"} true; + assume {:captureState "1992$0"} true; + goto set_seven_basil_return; + set_seven_basil_return: + assume {:captureState "set_seven_basil_return"} true; return; } -procedure set_six_1960(); +procedure set_six(); modifies Gamma_R8, Gamma_R9, Gamma_mem, R8, R9, mem; free requires (memory_load32_le(mem, 2192bv64) == 131073bv32); free requires (memory_load64_le(mem, 69032bv64) == 1936bv64); @@ -160,28 +160,28 @@ procedure set_six_1960(); free ensures (memory_load64_le(mem, 69592bv64) == 1980bv64); free ensures (memory_load64_le(mem, 69672bv64) == 69672bv64); -implementation set_six_1960() +implementation set_six() { - var Gamma_load7: bool; - var load7: bv64; - set_six_1960__0__ciqx_PCBQwevaWTzDpNJDQ: - assume {:captureState "set_six_1960__0__ciqx_PCBQwevaWTzDpNJDQ"} true; + var $load7: bv64; + var Gamma_$load7: bool; + $set_six$__0__$ciqx_PCBQwevaWTzDpNJDQ: + assume {:captureState "$set_six$__0__$ciqx_PCBQwevaWTzDpNJDQ"} true; R9, Gamma_R9 := 65536bv64, true; call rely(); - load7, Gamma_load7 := memory_load64_le(mem, bvadd64(R9, 4016bv64)), (gamma_load64(Gamma_mem, bvadd64(R9, 4016bv64)) || L(mem, bvadd64(R9, 4016bv64))); - R9, Gamma_R9 := load7, Gamma_load7; + $load7, Gamma_$load7 := memory_load64_le(mem, bvadd64(R9, 4016bv64)), (gamma_load64(Gamma_mem, bvadd64(R9, 4016bv64)) || L(mem, bvadd64(R9, 4016bv64))); + R9, Gamma_R9 := $load7, Gamma_$load7; R8, Gamma_R8 := 6bv64, true; call rely(); assert (L(mem, R9) ==> Gamma_R8); mem, Gamma_mem := memory_store32_le(mem, R9, R8[32:0]), gamma_store32(Gamma_mem, R9, Gamma_R8); - assume {:captureState "1972_0"} true; - goto set_six_1960_basil_return; - set_six_1960_basil_return: - assume {:captureState "set_six_1960_basil_return"} true; + assume {:captureState "1972$0"} true; + goto set_six_basil_return; + set_six_basil_return: + assume {:captureState "set_six_basil_return"} true; return; } -procedure main_2000(); +procedure main(); modifies CF, Gamma_CF, Gamma_NF, Gamma_R0, Gamma_R29, Gamma_R30, Gamma_R31, Gamma_R8, Gamma_R9, Gamma_VF, Gamma_ZF, Gamma_mem, Gamma_stack, NF, R0, R29, R30, R31, R8, R9, VF, ZF, mem, stack; requires (Gamma_R0 == true); free requires (memory_load64_le(mem, 69664bv64) == 0bv64); @@ -209,229 +209,229 @@ procedure main_2000(); free ensures (memory_load64_le(mem, 69592bv64) == 1980bv64); free ensures (memory_load64_le(mem, 69672bv64) == 69672bv64); -implementation main_2000() +implementation main() { - var Cse0__5_10_1: bv64; - var Cse0__5_5_1: bv32; - var Cse0__5_6_1: bv64; - var Cse0__5_6_7: bv32; - var Cse0__5_7_1: bv32; - var Gamma_Cse0__5_10_1: bool; - var Gamma_Cse0__5_5_1: bool; - var Gamma_Cse0__5_6_1: bool; - var Gamma_Cse0__5_6_7: bool; - var Gamma_Cse0__5_7_1: bool; - var Gamma_load10: bool; - var Gamma_load11: bool; - var Gamma_load12: bool; - var Gamma_load13: bool; - var Gamma_load14: bool; - var Gamma_load15: bool; - var Gamma_load16: bool; - var Gamma_load17: bool; - var Gamma_load8: bool; - var Gamma_load9: bool; - var load10: bv64; - var load11: bv64; - var load12: bv32; - var load13: bv32; - var load14: bv32; - var load15: bv64; - var load16: bv64; - var load17: bv64; - var load8: bv64; - var load9: bv64; - main_2000__0__G_1Y6jALRC~8UvxN~Oh74A: - assume {:captureState "main_2000__0__G_1Y6jALRC~8UvxN~Oh74A"} true; + var $load10: bv64; + var $load11: bv64; + var $load12: bv32; + var $load13: bv32; + var $load14: bv32; + var $load15: bv64; + var $load16: bv64; + var $load17: bv64; + var $load8: bv64; + var $load9: bv64; + var Cse0__5$10$1: bv64; + var Cse0__5$5$1: bv32; + var Cse0__5$6$1: bv64; + var Cse0__5$6$7: bv32; + var Cse0__5$7$1: bv32; + var Gamma_$load10: bool; + var Gamma_$load11: bool; + var Gamma_$load12: bool; + var Gamma_$load13: bool; + var Gamma_$load14: bool; + var Gamma_$load15: bool; + var Gamma_$load16: bool; + var Gamma_$load17: bool; + var Gamma_$load8: bool; + var Gamma_$load9: bool; + var Gamma_Cse0__5$10$1: bool; + var Gamma_Cse0__5$5$1: bool; + var Gamma_Cse0__5$6$1: bool; + var Gamma_Cse0__5$6$7: bool; + var Gamma_Cse0__5$7$1: bool; + $main$__0__$G_1Y6jALRC~8UvxN~Oh74A: + assume {:captureState "$main$__0__$G_1Y6jALRC~8UvxN~Oh74A"} true; R31, Gamma_R31 := bvadd64(R31, 18446744073709551568bv64), Gamma_R31; - Cse0__5_6_1, Gamma_Cse0__5_6_1 := bvadd64(R31, 32bv64), Gamma_R31; - stack, Gamma_stack := memory_store64_le(stack, Cse0__5_6_1, R29), gamma_store64(Gamma_stack, Cse0__5_6_1, Gamma_R29); - assume {:captureState "2004_1"} true; - stack, Gamma_stack := memory_store64_le(stack, bvadd64(Cse0__5_6_1, 8bv64), R30), gamma_store64(Gamma_stack, bvadd64(Cse0__5_6_1, 8bv64), Gamma_R30); - assume {:captureState "2004_2"} true; + Cse0__5$6$1, Gamma_Cse0__5$6$1 := bvadd64(R31, 32bv64), Gamma_R31; + stack, Gamma_stack := memory_store64_le(stack, Cse0__5$6$1, R29), gamma_store64(Gamma_stack, Cse0__5$6$1, Gamma_R29); + assume {:captureState "2004$1"} true; + stack, Gamma_stack := memory_store64_le(stack, bvadd64(Cse0__5$6$1, 8bv64), R30), gamma_store64(Gamma_stack, bvadd64(Cse0__5$6$1, 8bv64), Gamma_R30); + assume {:captureState "2004$2"} true; R29, Gamma_R29 := bvadd64(R31, 32bv64), Gamma_R31; stack, Gamma_stack := memory_store32_le(stack, bvadd64(R29, 18446744073709551612bv64), 0bv32), gamma_store32(Gamma_stack, bvadd64(R29, 18446744073709551612bv64), true); - assume {:captureState "2012_0"} true; + assume {:captureState "2012$0"} true; stack, Gamma_stack := memory_store32_le(stack, bvadd64(R29, 18446744073709551608bv64), R0[32:0]), gamma_store32(Gamma_stack, bvadd64(R29, 18446744073709551608bv64), Gamma_R0); - assume {:captureState "2016_0"} true; - load13, Gamma_load13 := memory_load32_le(stack, bvadd64(R29, 18446744073709551608bv64)), gamma_load32(Gamma_stack, bvadd64(R29, 18446744073709551608bv64)); - R8, Gamma_R8 := zero_extend32_32(load13), Gamma_load13; + assume {:captureState "2016$0"} true; + $load13, Gamma_$load13 := memory_load32_le(stack, bvadd64(R29, 18446744073709551608bv64)), gamma_load32(Gamma_stack, bvadd64(R29, 18446744073709551608bv64)); + R8, Gamma_R8 := zero_extend32_32($load13), Gamma_$load13; stack, Gamma_stack := memory_store32_le(stack, bvadd64(R31, 12bv64), R8[32:0]), gamma_store32(Gamma_stack, bvadd64(R31, 12bv64), Gamma_R8); - assume {:captureState "2024_0"} true; - Cse0__5_6_7, Gamma_Cse0__5_6_7 := bvadd32(R8[32:0], 0bv32), Gamma_R8; - VF, Gamma_VF := bvnot1(bvcomp32(Cse0__5_6_7, Cse0__5_6_7)), Gamma_Cse0__5_6_7; - CF, Gamma_CF := bvnot1(bvcomp33(zero_extend1_32(Cse0__5_6_7), bvadd33(zero_extend1_32(R8[32:0]), 4294967296bv33))), (Gamma_R8 && Gamma_Cse0__5_6_7); - ZF, Gamma_ZF := bvcomp32(Cse0__5_6_7, 0bv32), Gamma_Cse0__5_6_7; - NF, Gamma_NF := Cse0__5_6_7[32:31], Gamma_Cse0__5_6_7; - R8, Gamma_R8 := zero_extend32_32(Cse0__5_6_7), Gamma_Cse0__5_6_7; + assume {:captureState "2024$0"} true; + Cse0__5$6$7, Gamma_Cse0__5$6$7 := bvadd32(R8[32:0], 0bv32), Gamma_R8; + VF, Gamma_VF := bvnot1(bvcomp32(Cse0__5$6$7, Cse0__5$6$7)), Gamma_Cse0__5$6$7; + CF, Gamma_CF := bvnot1(bvcomp33(zero_extend1_32(Cse0__5$6$7), bvadd33(zero_extend1_32(R8[32:0]), 4294967296bv33))), (Gamma_R8 && Gamma_Cse0__5$6$7); + ZF, Gamma_ZF := bvcomp32(Cse0__5$6$7, 0bv32), Gamma_Cse0__5$6$7; + NF, Gamma_NF := Cse0__5$6$7[32:31], Gamma_Cse0__5$6$7; + R8, Gamma_R8 := zero_extend32_32(Cse0__5$6$7), Gamma_Cse0__5$6$7; assert Gamma_ZF; - goto main_2000__0__G_1Y6jALRC~8UvxN~Oh74A$__0, main_2000__0__G_1Y6jALRC~8UvxN~Oh74A$__1; - main_2000__0__G_1Y6jALRC~8UvxN~Oh74A$__1: - assume {:captureState "main_2000__0__G_1Y6jALRC~8UvxN~Oh74A$__1"} true; - assume (!(!(ZF == 1bv1))); - R8, Gamma_R8 := 1bv64, true; - assert Gamma_R8; - goto main_2000__0__G_1Y6jALRC~8UvxN~Oh74A_goto_main_2000__6__f4nhHXxoReqZDuDK6zxsSQ, main_2000__0__G_1Y6jALRC~8UvxN~Oh74A_goto_main_2000__1__9glsOoBtTsagmZpc7KXoEQ; - main_2000__0__G_1Y6jALRC~8UvxN~Oh74A$__0: - assume {:captureState "main_2000__0__G_1Y6jALRC~8UvxN~Oh74A$__0"} true; - assume (!(ZF == 1bv1)); - R8, Gamma_R8 := 0bv64, true; - assert Gamma_R8; - goto main_2000__0__G_1Y6jALRC~8UvxN~Oh74A_goto_main_2000__6__f4nhHXxoReqZDuDK6zxsSQ, main_2000__0__G_1Y6jALRC~8UvxN~Oh74A_goto_main_2000__1__9glsOoBtTsagmZpc7KXoEQ; - main_2000__0__G_1Y6jALRC~8UvxN~Oh74A_goto_main_2000__1__9glsOoBtTsagmZpc7KXoEQ: - assume {:captureState "main_2000__0__G_1Y6jALRC~8UvxN~Oh74A_goto_main_2000__1__9glsOoBtTsagmZpc7KXoEQ"} true; - assume (!(R8[1:0] == 1bv1)); - goto main_2000__1__9glsOoBtTsagmZpc7KXoEQ; - main_2000__1__9glsOoBtTsagmZpc7KXoEQ: - assume {:captureState "main_2000__1__9glsOoBtTsagmZpc7KXoEQ"} true; - goto main_2000__2__A0okiAJhRZaNrB4lOPZtTw; - main_2000__2__A0okiAJhRZaNrB4lOPZtTw: - assume {:captureState "main_2000__2__A0okiAJhRZaNrB4lOPZtTw"} true; - load12, Gamma_load12 := memory_load32_le(stack, bvadd64(R31, 12bv64)), gamma_load32(Gamma_stack, bvadd64(R31, 12bv64)); - R8, Gamma_R8 := zero_extend32_32(load12), Gamma_load12; - Cse0__5_5_1, Gamma_Cse0__5_5_1 := bvadd32(R8[32:0], 4294967295bv32), Gamma_R8; - VF, Gamma_VF := bvnot1(bvcomp33(sign_extend1_32(Cse0__5_5_1), bvadd33(sign_extend1_32(R8[32:0]), 8589934591bv33))), (Gamma_R8 && Gamma_Cse0__5_5_1); - CF, Gamma_CF := bvnot1(bvcomp33(zero_extend1_32(Cse0__5_5_1), bvadd33(zero_extend1_32(R8[32:0]), 4294967295bv33))), (Gamma_R8 && Gamma_Cse0__5_5_1); - ZF, Gamma_ZF := bvcomp32(Cse0__5_5_1, 0bv32), Gamma_Cse0__5_5_1; - NF, Gamma_NF := Cse0__5_5_1[32:31], Gamma_Cse0__5_5_1; - R8, Gamma_R8 := zero_extend32_32(Cse0__5_5_1), Gamma_Cse0__5_5_1; + goto $main$__0__$G_1Y6jALRC~8UvxN~Oh74A$__0, $main$__0__$G_1Y6jALRC~8UvxN~Oh74A$__1; + $main$__1__$9glsOoBtTsagmZpc7KXoEQ: + assume {:captureState "$main$__1__$9glsOoBtTsagmZpc7KXoEQ"} true; + goto $main$__2__$A0okiAJhRZaNrB4lOPZtTw; + $main$__2__$A0okiAJhRZaNrB4lOPZtTw: + assume {:captureState "$main$__2__$A0okiAJhRZaNrB4lOPZtTw"} true; + $load12, Gamma_$load12 := memory_load32_le(stack, bvadd64(R31, 12bv64)), gamma_load32(Gamma_stack, bvadd64(R31, 12bv64)); + R8, Gamma_R8 := zero_extend32_32($load12), Gamma_$load12; + Cse0__5$5$1, Gamma_Cse0__5$5$1 := bvadd32(R8[32:0], 4294967295bv32), Gamma_R8; + VF, Gamma_VF := bvnot1(bvcomp33(sign_extend1_32(Cse0__5$5$1), bvadd33(sign_extend1_32(R8[32:0]), 8589934591bv33))), (Gamma_R8 && Gamma_Cse0__5$5$1); + CF, Gamma_CF := bvnot1(bvcomp33(zero_extend1_32(Cse0__5$5$1), bvadd33(zero_extend1_32(R8[32:0]), 4294967295bv33))), (Gamma_R8 && Gamma_Cse0__5$5$1); + ZF, Gamma_ZF := bvcomp32(Cse0__5$5$1, 0bv32), Gamma_Cse0__5$5$1; + NF, Gamma_NF := Cse0__5$5$1[32:31], Gamma_Cse0__5$5$1; + R8, Gamma_R8 := zero_extend32_32(Cse0__5$5$1), Gamma_Cse0__5$5$1; assert Gamma_ZF; - goto main_2000__2__A0okiAJhRZaNrB4lOPZtTw$__0, main_2000__2__A0okiAJhRZaNrB4lOPZtTw$__1; - main_2000__2__A0okiAJhRZaNrB4lOPZtTw$__1: - assume {:captureState "main_2000__2__A0okiAJhRZaNrB4lOPZtTw$__1"} true; - assume (!(!(ZF == 1bv1))); - R8, Gamma_R8 := 1bv64, true; - assert Gamma_R8; - goto main_2000__2__A0okiAJhRZaNrB4lOPZtTw_goto_main_2000__7__WBIrr~FJQGaywM0EFL_~lQ, main_2000__2__A0okiAJhRZaNrB4lOPZtTw_goto_main_2000__3__BN0TEK1EQNeAY2qOwIEG5g; - main_2000__2__A0okiAJhRZaNrB4lOPZtTw$__0: - assume {:captureState "main_2000__2__A0okiAJhRZaNrB4lOPZtTw$__0"} true; - assume (!(ZF == 1bv1)); - R8, Gamma_R8 := 0bv64, true; - assert Gamma_R8; - goto main_2000__2__A0okiAJhRZaNrB4lOPZtTw_goto_main_2000__7__WBIrr~FJQGaywM0EFL_~lQ, main_2000__2__A0okiAJhRZaNrB4lOPZtTw_goto_main_2000__3__BN0TEK1EQNeAY2qOwIEG5g; - main_2000__2__A0okiAJhRZaNrB4lOPZtTw_goto_main_2000__3__BN0TEK1EQNeAY2qOwIEG5g: - assume {:captureState "main_2000__2__A0okiAJhRZaNrB4lOPZtTw_goto_main_2000__3__BN0TEK1EQNeAY2qOwIEG5g"} true; - assume (!(R8[1:0] == 1bv1)); - goto main_2000__3__BN0TEK1EQNeAY2qOwIEG5g; - main_2000__3__BN0TEK1EQNeAY2qOwIEG5g: - assume {:captureState "main_2000__3__BN0TEK1EQNeAY2qOwIEG5g"} true; - goto main_2000__4__ZMwLE9GySQC4wAmL8es_Tw; - main_2000__4__ZMwLE9GySQC4wAmL8es_Tw: - assume {:captureState "main_2000__4__ZMwLE9GySQC4wAmL8es_Tw"} true; - load14, Gamma_load14 := memory_load32_le(stack, bvadd64(R31, 12bv64)), gamma_load32(Gamma_stack, bvadd64(R31, 12bv64)); - R8, Gamma_R8 := zero_extend32_32(load14), Gamma_load14; - Cse0__5_7_1, Gamma_Cse0__5_7_1 := bvadd32(R8[32:0], 4294967294bv32), Gamma_R8; - VF, Gamma_VF := bvnot1(bvcomp33(sign_extend1_32(Cse0__5_7_1), bvadd33(sign_extend1_32(R8[32:0]), 8589934590bv33))), (Gamma_R8 && Gamma_Cse0__5_7_1); - CF, Gamma_CF := bvnot1(bvcomp33(zero_extend1_32(Cse0__5_7_1), bvadd33(zero_extend1_32(R8[32:0]), 4294967294bv33))), (Gamma_R8 && Gamma_Cse0__5_7_1); - ZF, Gamma_ZF := bvcomp32(Cse0__5_7_1, 0bv32), Gamma_Cse0__5_7_1; - NF, Gamma_NF := Cse0__5_7_1[32:31], Gamma_Cse0__5_7_1; - R8, Gamma_R8 := zero_extend32_32(Cse0__5_7_1), Gamma_Cse0__5_7_1; + goto $main$__2__$A0okiAJhRZaNrB4lOPZtTw$__0, $main$__2__$A0okiAJhRZaNrB4lOPZtTw$__1; + $main$__3__$BN0TEK1EQNeAY2qOwIEG5g: + assume {:captureState "$main$__3__$BN0TEK1EQNeAY2qOwIEG5g"} true; + goto $main$__4__$ZMwLE9GySQC4wAmL8es_Tw; + $main$__4__$ZMwLE9GySQC4wAmL8es_Tw: + assume {:captureState "$main$__4__$ZMwLE9GySQC4wAmL8es_Tw"} true; + $load14, Gamma_$load14 := memory_load32_le(stack, bvadd64(R31, 12bv64)), gamma_load32(Gamma_stack, bvadd64(R31, 12bv64)); + R8, Gamma_R8 := zero_extend32_32($load14), Gamma_$load14; + Cse0__5$7$1, Gamma_Cse0__5$7$1 := bvadd32(R8[32:0], 4294967294bv32), Gamma_R8; + VF, Gamma_VF := bvnot1(bvcomp33(sign_extend1_32(Cse0__5$7$1), bvadd33(sign_extend1_32(R8[32:0]), 8589934590bv33))), (Gamma_R8 && Gamma_Cse0__5$7$1); + CF, Gamma_CF := bvnot1(bvcomp33(zero_extend1_32(Cse0__5$7$1), bvadd33(zero_extend1_32(R8[32:0]), 4294967294bv33))), (Gamma_R8 && Gamma_Cse0__5$7$1); + ZF, Gamma_ZF := bvcomp32(Cse0__5$7$1, 0bv32), Gamma_Cse0__5$7$1; + NF, Gamma_NF := Cse0__5$7$1[32:31], Gamma_Cse0__5$7$1; + R8, Gamma_R8 := zero_extend32_32(Cse0__5$7$1), Gamma_Cse0__5$7$1; assert Gamma_ZF; - goto main_2000__4__ZMwLE9GySQC4wAmL8es_Tw$__0, main_2000__4__ZMwLE9GySQC4wAmL8es_Tw$__1; - main_2000__4__ZMwLE9GySQC4wAmL8es_Tw$__1: - assume {:captureState "main_2000__4__ZMwLE9GySQC4wAmL8es_Tw$__1"} true; - assume (!(!(ZF == 1bv1))); - R8, Gamma_R8 := 1bv64, true; - assert Gamma_R8; - goto main_2000__4__ZMwLE9GySQC4wAmL8es_Tw_goto_main_2000__8__MFGHilZOSS~y6mrYfWAhnQ, main_2000__4__ZMwLE9GySQC4wAmL8es_Tw_goto_main_2000__5__tQCpvwKrSeCFPREd7E8FUA; - main_2000__4__ZMwLE9GySQC4wAmL8es_Tw$__0: - assume {:captureState "main_2000__4__ZMwLE9GySQC4wAmL8es_Tw$__0"} true; - assume (!(ZF == 1bv1)); - R8, Gamma_R8 := 0bv64, true; - assert Gamma_R8; - goto main_2000__4__ZMwLE9GySQC4wAmL8es_Tw_goto_main_2000__8__MFGHilZOSS~y6mrYfWAhnQ, main_2000__4__ZMwLE9GySQC4wAmL8es_Tw_goto_main_2000__5__tQCpvwKrSeCFPREd7E8FUA; - main_2000__4__ZMwLE9GySQC4wAmL8es_Tw_goto_main_2000__5__tQCpvwKrSeCFPREd7E8FUA: - assume {:captureState "main_2000__4__ZMwLE9GySQC4wAmL8es_Tw_goto_main_2000__5__tQCpvwKrSeCFPREd7E8FUA"} true; - assume (!(R8[1:0] == 1bv1)); - goto main_2000__5__tQCpvwKrSeCFPREd7E8FUA; - main_2000__5__tQCpvwKrSeCFPREd7E8FUA: - assume {:captureState "main_2000__5__tQCpvwKrSeCFPREd7E8FUA"} true; - goto main_2000__9__zMmLxlHWR8mJqTkM1yPBaQ; - main_2000__9__zMmLxlHWR8mJqTkM1yPBaQ: - assume {:captureState "main_2000__9__zMmLxlHWR8mJqTkM1yPBaQ"} true; + goto $main$__4__$ZMwLE9GySQC4wAmL8es_Tw$__0, $main$__4__$ZMwLE9GySQC4wAmL8es_Tw$__1; + $main$__5__$tQCpvwKrSeCFPREd7E8FUA: + assume {:captureState "$main$__5__$tQCpvwKrSeCFPREd7E8FUA"} true; + goto $main$__9__$zMmLxlHWR8mJqTkM1yPBaQ; + $main$__6__$f4nhHXxoReqZDuDK6zxsSQ: + assume {:captureState "$main$__6__$f4nhHXxoReqZDuDK6zxsSQ"} true; R8, Gamma_R8 := 65536bv64, true; call rely(); - load11, Gamma_load11 := memory_load64_le(mem, bvadd64(R8, 4032bv64)), (gamma_load64(Gamma_mem, bvadd64(R8, 4032bv64)) || L(mem, bvadd64(R8, 4032bv64))); - R8, Gamma_R8 := load11, Gamma_load11; + $load10, Gamma_$load10 := memory_load64_le(mem, bvadd64(R8, 4032bv64)), (gamma_load64(Gamma_mem, bvadd64(R8, 4032bv64)) || L(mem, bvadd64(R8, 4032bv64))); + R8, Gamma_R8 := $load10, Gamma_$load10; stack, Gamma_stack := memory_store64_le(stack, bvadd64(R31, 16bv64), R8), gamma_store64(Gamma_stack, bvadd64(R31, 16bv64), Gamma_R8); - assume {:captureState "2140_0"} true; - goto main_2000__10__0TNylRK6RmS5UECtsNwwsA; - main_2000__4__ZMwLE9GySQC4wAmL8es_Tw_goto_main_2000__8__MFGHilZOSS~y6mrYfWAhnQ: - assume {:captureState "main_2000__4__ZMwLE9GySQC4wAmL8es_Tw_goto_main_2000__8__MFGHilZOSS~y6mrYfWAhnQ"} true; - assume (R8[1:0] == 1bv1); + assume {:captureState "2092$0"} true; + goto $main$__10__$0TNylRK6RmS5UECtsNwwsA; + $main$__7__$WBIrr~FJQGaywM0EFL_~lQ: + assume {:captureState "$main$__7__$WBIrr~FJQGaywM0EFL_~lQ"} true; R8, Gamma_R8 := 65536bv64, true; call rely(); - load8, Gamma_load8 := memory_load64_le(mem, bvadd64(R8, 4056bv64)), (gamma_load64(Gamma_mem, bvadd64(R8, 4056bv64)) || L(mem, bvadd64(R8, 4056bv64))); - R8, Gamma_R8 := load8, Gamma_load8; + $load17, Gamma_$load17 := memory_load64_le(mem, bvadd64(R8, 4040bv64)), (gamma_load64(Gamma_mem, bvadd64(R8, 4040bv64)) || L(mem, bvadd64(R8, 4040bv64))); + R8, Gamma_R8 := $load17, Gamma_$load17; stack, Gamma_stack := memory_store64_le(stack, bvadd64(R31, 16bv64), R8), gamma_store64(Gamma_stack, bvadd64(R31, 16bv64), Gamma_R8); - assume {:captureState "2124_0"} true; - goto main_2000__8__MFGHilZOSS~y6mrYfWAhnQ; - main_2000__8__MFGHilZOSS~y6mrYfWAhnQ: - assume {:captureState "main_2000__8__MFGHilZOSS~y6mrYfWAhnQ"} true; - goto main_2000__10__0TNylRK6RmS5UECtsNwwsA; - main_2000__2__A0okiAJhRZaNrB4lOPZtTw_goto_main_2000__7__WBIrr~FJQGaywM0EFL_~lQ: - assume {:captureState "main_2000__2__A0okiAJhRZaNrB4lOPZtTw_goto_main_2000__7__WBIrr~FJQGaywM0EFL_~lQ"} true; - assume (R8[1:0] == 1bv1); + assume {:captureState "2108$0"} true; + goto $main$__10__$0TNylRK6RmS5UECtsNwwsA; + $main$__8__$MFGHilZOSS~y6mrYfWAhnQ: + assume {:captureState "$main$__8__$MFGHilZOSS~y6mrYfWAhnQ"} true; R8, Gamma_R8 := 65536bv64, true; call rely(); - load17, Gamma_load17 := memory_load64_le(mem, bvadd64(R8, 4040bv64)), (gamma_load64(Gamma_mem, bvadd64(R8, 4040bv64)) || L(mem, bvadd64(R8, 4040bv64))); - R8, Gamma_R8 := load17, Gamma_load17; + $load8, Gamma_$load8 := memory_load64_le(mem, bvadd64(R8, 4056bv64)), (gamma_load64(Gamma_mem, bvadd64(R8, 4056bv64)) || L(mem, bvadd64(R8, 4056bv64))); + R8, Gamma_R8 := $load8, Gamma_$load8; stack, Gamma_stack := memory_store64_le(stack, bvadd64(R31, 16bv64), R8), gamma_store64(Gamma_stack, bvadd64(R31, 16bv64), Gamma_R8); - assume {:captureState "2108_0"} true; - goto main_2000__7__WBIrr~FJQGaywM0EFL_~lQ; - main_2000__7__WBIrr~FJQGaywM0EFL_~lQ: - assume {:captureState "main_2000__7__WBIrr~FJQGaywM0EFL_~lQ"} true; - goto main_2000__10__0TNylRK6RmS5UECtsNwwsA; - main_2000__0__G_1Y6jALRC~8UvxN~Oh74A_goto_main_2000__6__f4nhHXxoReqZDuDK6zxsSQ: - assume {:captureState "main_2000__0__G_1Y6jALRC~8UvxN~Oh74A_goto_main_2000__6__f4nhHXxoReqZDuDK6zxsSQ"} true; - assume (R8[1:0] == 1bv1); + assume {:captureState "2124$0"} true; + goto $main$__10__$0TNylRK6RmS5UECtsNwwsA; + $main$__9__$zMmLxlHWR8mJqTkM1yPBaQ: + assume {:captureState "$main$__9__$zMmLxlHWR8mJqTkM1yPBaQ"} true; R8, Gamma_R8 := 65536bv64, true; call rely(); - load10, Gamma_load10 := memory_load64_le(mem, bvadd64(R8, 4032bv64)), (gamma_load64(Gamma_mem, bvadd64(R8, 4032bv64)) || L(mem, bvadd64(R8, 4032bv64))); - R8, Gamma_R8 := load10, Gamma_load10; + $load11, Gamma_$load11 := memory_load64_le(mem, bvadd64(R8, 4032bv64)), (gamma_load64(Gamma_mem, bvadd64(R8, 4032bv64)) || L(mem, bvadd64(R8, 4032bv64))); + R8, Gamma_R8 := $load11, Gamma_$load11; stack, Gamma_stack := memory_store64_le(stack, bvadd64(R31, 16bv64), R8), gamma_store64(Gamma_stack, bvadd64(R31, 16bv64), Gamma_R8); - assume {:captureState "2092_0"} true; - goto main_2000__6__f4nhHXxoReqZDuDK6zxsSQ; - main_2000__6__f4nhHXxoReqZDuDK6zxsSQ: - assume {:captureState "main_2000__6__f4nhHXxoReqZDuDK6zxsSQ"} true; - goto main_2000__10__0TNylRK6RmS5UECtsNwwsA; - main_2000__10__0TNylRK6RmS5UECtsNwwsA: - assume {:captureState "main_2000__10__0TNylRK6RmS5UECtsNwwsA"} true; - load9, Gamma_load9 := memory_load64_le(stack, bvadd64(R31, 16bv64)), gamma_load64(Gamma_stack, bvadd64(R31, 16bv64)); - R8, Gamma_R8 := load9, Gamma_load9; + assume {:captureState "2140$0"} true; + goto $main$__10__$0TNylRK6RmS5UECtsNwwsA; + $main$__10__$0TNylRK6RmS5UECtsNwwsA: + assume {:captureState "$main$__10__$0TNylRK6RmS5UECtsNwwsA"} true; + $load9, Gamma_$load9 := memory_load64_le(stack, bvadd64(R31, 16bv64)), gamma_load64(Gamma_stack, bvadd64(R31, 16bv64)); + R8, Gamma_R8 := $load9, Gamma_$load9; R30, Gamma_R30 := 2156bv64, true; - goto main_2000__10__0TNylRK6RmS5UECtsNwwsA_set_six_1960, main_2000__10__0TNylRK6RmS5UECtsNwwsA_set_two_1940, main_2000__10__0TNylRK6RmS5UECtsNwwsA_set_seven_1980; - main_2000__10__0TNylRK6RmS5UECtsNwwsA_set_seven_1980: - assume {:captureState "main_2000__10__0TNylRK6RmS5UECtsNwwsA_set_seven_1980"} true; - assume (R8 == 1980bv64); - call set_seven_1980(); - goto main_2000__11__5RCauC7lSbWG2IsnALJTGg; - main_2000__10__0TNylRK6RmS5UECtsNwwsA_set_two_1940: - assume {:captureState "main_2000__10__0TNylRK6RmS5UECtsNwwsA_set_two_1940"} true; - assume (R8 == 1940bv64); - call set_two_1940(); - goto main_2000__11__5RCauC7lSbWG2IsnALJTGg; - main_2000__10__0TNylRK6RmS5UECtsNwwsA_set_six_1960: - assume {:captureState "main_2000__10__0TNylRK6RmS5UECtsNwwsA_set_six_1960"} true; - assume (R8 == 1960bv64); - call set_six_1960(); - goto main_2000__11__5RCauC7lSbWG2IsnALJTGg; - main_2000__11__5RCauC7lSbWG2IsnALJTGg: - assume {:captureState "main_2000__11__5RCauC7lSbWG2IsnALJTGg"} true; + goto $main$__10__$0TNylRK6RmS5UECtsNwwsA$set_six, $main$__10__$0TNylRK6RmS5UECtsNwwsA$set_two, $main$__10__$0TNylRK6RmS5UECtsNwwsA$set_seven; + $main$__11__$5RCauC7lSbWG2IsnALJTGg: + assume {:captureState "$main$__11__$5RCauC7lSbWG2IsnALJTGg"} true; R0, Gamma_R0 := 0bv64, true; - Cse0__5_10_1, Gamma_Cse0__5_10_1 := bvadd64(R31, 32bv64), Gamma_R31; - load15, Gamma_load15 := memory_load64_le(stack, Cse0__5_10_1), gamma_load64(Gamma_stack, Cse0__5_10_1); - R29, Gamma_R29 := load15, Gamma_load15; - load16, Gamma_load16 := memory_load64_le(stack, bvadd64(Cse0__5_10_1, 8bv64)), gamma_load64(Gamma_stack, bvadd64(Cse0__5_10_1, 8bv64)); - R30, Gamma_R30 := load16, Gamma_load16; + Cse0__5$10$1, Gamma_Cse0__5$10$1 := bvadd64(R31, 32bv64), Gamma_R31; + $load15, Gamma_$load15 := memory_load64_le(stack, Cse0__5$10$1), gamma_load64(Gamma_stack, Cse0__5$10$1); + R29, Gamma_R29 := $load15, Gamma_$load15; + $load16, Gamma_$load16 := memory_load64_le(stack, bvadd64(Cse0__5$10$1, 8bv64)), gamma_load64(Gamma_stack, bvadd64(Cse0__5$10$1, 8bv64)); + R30, Gamma_R30 := $load16, Gamma_$load16; R31, Gamma_R31 := bvadd64(R31, 48bv64), Gamma_R31; - goto main_2000_basil_return; - main_2000_basil_return: - assume {:captureState "main_2000_basil_return"} true; + goto main_basil_return; + $main$__10__$0TNylRK6RmS5UECtsNwwsA$set_six: + assume {:captureState "$main$__10__$0TNylRK6RmS5UECtsNwwsA$set_six"} true; + assume (R8 == 1960bv64); + call set_six(); + goto $main$__11__$5RCauC7lSbWG2IsnALJTGg; + $main$__10__$0TNylRK6RmS5UECtsNwwsA$set_two: + assume {:captureState "$main$__10__$0TNylRK6RmS5UECtsNwwsA$set_two"} true; + assume (R8 == 1940bv64); + call set_two(); + goto $main$__11__$5RCauC7lSbWG2IsnALJTGg; + $main$__10__$0TNylRK6RmS5UECtsNwwsA$set_seven: + assume {:captureState "$main$__10__$0TNylRK6RmS5UECtsNwwsA$set_seven"} true; + assume (R8 == 1980bv64); + call set_seven(); + goto $main$__11__$5RCauC7lSbWG2IsnALJTGg; + $main$__2__$A0okiAJhRZaNrB4lOPZtTw_goto_$main$__7__$WBIrr~FJQGaywM0EFL_~lQ: + assume {:captureState "$main$__2__$A0okiAJhRZaNrB4lOPZtTw_goto_$main$__7__$WBIrr~FJQGaywM0EFL_~lQ"} true; + assume (R8[1:0] == 1bv1); + goto $main$__7__$WBIrr~FJQGaywM0EFL_~lQ; + $main$__2__$A0okiAJhRZaNrB4lOPZtTw_goto_$main$__3__$BN0TEK1EQNeAY2qOwIEG5g: + assume {:captureState "$main$__2__$A0okiAJhRZaNrB4lOPZtTw_goto_$main$__3__$BN0TEK1EQNeAY2qOwIEG5g"} true; + assume (!(R8[1:0] == 1bv1)); + goto $main$__3__$BN0TEK1EQNeAY2qOwIEG5g; + $main$__2__$A0okiAJhRZaNrB4lOPZtTw$__0: + assume {:captureState "$main$__2__$A0okiAJhRZaNrB4lOPZtTw$__0"} true; + assume (!(ZF == 1bv1)); + R8, Gamma_R8 := 0bv64, true; + assert Gamma_R8; + goto $main$__2__$A0okiAJhRZaNrB4lOPZtTw_goto_$main$__7__$WBIrr~FJQGaywM0EFL_~lQ, $main$__2__$A0okiAJhRZaNrB4lOPZtTw_goto_$main$__3__$BN0TEK1EQNeAY2qOwIEG5g; + $main$__2__$A0okiAJhRZaNrB4lOPZtTw$__1: + assume {:captureState "$main$__2__$A0okiAJhRZaNrB4lOPZtTw$__1"} true; + assume (!(!(ZF == 1bv1))); + R8, Gamma_R8 := 1bv64, true; + assert Gamma_R8; + goto $main$__2__$A0okiAJhRZaNrB4lOPZtTw_goto_$main$__7__$WBIrr~FJQGaywM0EFL_~lQ, $main$__2__$A0okiAJhRZaNrB4lOPZtTw_goto_$main$__3__$BN0TEK1EQNeAY2qOwIEG5g; + $main$__0__$G_1Y6jALRC~8UvxN~Oh74A_goto_$main$__6__$f4nhHXxoReqZDuDK6zxsSQ: + assume {:captureState "$main$__0__$G_1Y6jALRC~8UvxN~Oh74A_goto_$main$__6__$f4nhHXxoReqZDuDK6zxsSQ"} true; + assume (R8[1:0] == 1bv1); + goto $main$__6__$f4nhHXxoReqZDuDK6zxsSQ; + $main$__0__$G_1Y6jALRC~8UvxN~Oh74A_goto_$main$__1__$9glsOoBtTsagmZpc7KXoEQ: + assume {:captureState "$main$__0__$G_1Y6jALRC~8UvxN~Oh74A_goto_$main$__1__$9glsOoBtTsagmZpc7KXoEQ"} true; + assume (!(R8[1:0] == 1bv1)); + goto $main$__1__$9glsOoBtTsagmZpc7KXoEQ; + $main$__0__$G_1Y6jALRC~8UvxN~Oh74A$__0: + assume {:captureState "$main$__0__$G_1Y6jALRC~8UvxN~Oh74A$__0"} true; + assume (!(ZF == 1bv1)); + R8, Gamma_R8 := 0bv64, true; + assert Gamma_R8; + goto $main$__0__$G_1Y6jALRC~8UvxN~Oh74A_goto_$main$__6__$f4nhHXxoReqZDuDK6zxsSQ, $main$__0__$G_1Y6jALRC~8UvxN~Oh74A_goto_$main$__1__$9glsOoBtTsagmZpc7KXoEQ; + $main$__0__$G_1Y6jALRC~8UvxN~Oh74A$__1: + assume {:captureState "$main$__0__$G_1Y6jALRC~8UvxN~Oh74A$__1"} true; + assume (!(!(ZF == 1bv1))); + R8, Gamma_R8 := 1bv64, true; + assert Gamma_R8; + goto $main$__0__$G_1Y6jALRC~8UvxN~Oh74A_goto_$main$__6__$f4nhHXxoReqZDuDK6zxsSQ, $main$__0__$G_1Y6jALRC~8UvxN~Oh74A_goto_$main$__1__$9glsOoBtTsagmZpc7KXoEQ; + $main$__4__$ZMwLE9GySQC4wAmL8es_Tw_goto_$main$__8__$MFGHilZOSS~y6mrYfWAhnQ: + assume {:captureState "$main$__4__$ZMwLE9GySQC4wAmL8es_Tw_goto_$main$__8__$MFGHilZOSS~y6mrYfWAhnQ"} true; + assume (R8[1:0] == 1bv1); + goto $main$__8__$MFGHilZOSS~y6mrYfWAhnQ; + $main$__4__$ZMwLE9GySQC4wAmL8es_Tw_goto_$main$__5__$tQCpvwKrSeCFPREd7E8FUA: + assume {:captureState "$main$__4__$ZMwLE9GySQC4wAmL8es_Tw_goto_$main$__5__$tQCpvwKrSeCFPREd7E8FUA"} true; + assume (!(R8[1:0] == 1bv1)); + goto $main$__5__$tQCpvwKrSeCFPREd7E8FUA; + $main$__4__$ZMwLE9GySQC4wAmL8es_Tw$__0: + assume {:captureState "$main$__4__$ZMwLE9GySQC4wAmL8es_Tw$__0"} true; + assume (!(ZF == 1bv1)); + R8, Gamma_R8 := 0bv64, true; + assert Gamma_R8; + goto $main$__4__$ZMwLE9GySQC4wAmL8es_Tw_goto_$main$__8__$MFGHilZOSS~y6mrYfWAhnQ, $main$__4__$ZMwLE9GySQC4wAmL8es_Tw_goto_$main$__5__$tQCpvwKrSeCFPREd7E8FUA; + $main$__4__$ZMwLE9GySQC4wAmL8es_Tw$__1: + assume {:captureState "$main$__4__$ZMwLE9GySQC4wAmL8es_Tw$__1"} true; + assume (!(!(ZF == 1bv1))); + R8, Gamma_R8 := 1bv64, true; + assert Gamma_R8; + goto $main$__4__$ZMwLE9GySQC4wAmL8es_Tw_goto_$main$__8__$MFGHilZOSS~y6mrYfWAhnQ, $main$__4__$ZMwLE9GySQC4wAmL8es_Tw_goto_$main$__5__$tQCpvwKrSeCFPREd7E8FUA; + main_basil_return: + assume {:captureState "main_basil_return"} true; return; } -procedure set_two_1940(); +procedure set_two(); modifies Gamma_R8, Gamma_R9, Gamma_mem, R8, R9, mem; free requires (memory_load32_le(mem, 2192bv64) == 131073bv32); free requires (memory_load64_le(mem, 69032bv64) == 1936bv64); @@ -452,24 +452,24 @@ procedure set_two_1940(); free ensures (memory_load64_le(mem, 69592bv64) == 1980bv64); free ensures (memory_load64_le(mem, 69672bv64) == 69672bv64); -implementation set_two_1940() +implementation set_two() { - var Gamma_load26: bool; - var load26: bv64; - set_two_1940__0__AzAVXZGMSrCSi1E8o7VxfQ: - assume {:captureState "set_two_1940__0__AzAVXZGMSrCSi1E8o7VxfQ"} true; + var $load26: bv64; + var Gamma_$load26: bool; + $set_two$__0__$AzAVXZGMSrCSi1E8o7VxfQ: + assume {:captureState "$set_two$__0__$AzAVXZGMSrCSi1E8o7VxfQ"} true; R9, Gamma_R9 := 65536bv64, true; call rely(); - load26, Gamma_load26 := memory_load64_le(mem, bvadd64(R9, 4016bv64)), (gamma_load64(Gamma_mem, bvadd64(R9, 4016bv64)) || L(mem, bvadd64(R9, 4016bv64))); - R9, Gamma_R9 := load26, Gamma_load26; + $load26, Gamma_$load26 := memory_load64_le(mem, bvadd64(R9, 4016bv64)), (gamma_load64(Gamma_mem, bvadd64(R9, 4016bv64)) || L(mem, bvadd64(R9, 4016bv64))); + R9, Gamma_R9 := $load26, Gamma_$load26; R8, Gamma_R8 := 2bv64, true; call rely(); assert (L(mem, R9) ==> Gamma_R8); mem, Gamma_mem := memory_store32_le(mem, R9, R8[32:0]), gamma_store32(Gamma_mem, R9, Gamma_R8); - assume {:captureState "1952_0"} true; - goto set_two_1940_basil_return; - set_two_1940_basil_return: - assume {:captureState "set_two_1940_basil_return"} true; + assume {:captureState "1952$0"} true; + goto set_two_basil_return; + set_two_basil_return: + assume {:captureState "set_two_basil_return"} true; return; } diff --git a/src/test/correct/functionpointer/config.mk b/src/test/correct/functionpointer/config.mk index 2d9f2c599..686911ce0 100644 --- a/src/test/correct/functionpointer/config.mk +++ b/src/test/correct/functionpointer/config.mk @@ -1 +1,2 @@ -ENABLED_COMPILERS = clang clang_pic gcc gcc_O2 gcc_pic \ No newline at end of file +ENABLED_COMPILERS = clang clang_pic gcc gcc_O2 gcc_pic +LIFT_ARTEFACTS := $(COMMON_ARTEFACTS) $(GTIRB_ARTEFACTS) diff --git a/src/test/correct/functionpointer/gcc/functionpointer.gts b/src/test/correct/functionpointer/gcc/functionpointer.gts deleted file mode 100644 index 4e24b6c40..000000000 Binary files a/src/test/correct/functionpointer/gcc/functionpointer.gts and /dev/null differ diff --git a/src/test/correct/functionpointer/gcc/functionpointer.md5sum b/src/test/correct/functionpointer/gcc/functionpointer.md5sum new file mode 100644 index 000000000..720b557ab --- /dev/null +++ b/src/test/correct/functionpointer/gcc/functionpointer.md5sum @@ -0,0 +1,3 @@ +5db6785e37ec85bd8fff015a68f93bbc correct/functionpointer/gcc/a.out +0ab1a3412aaf5cecdcc948af1d119740 correct/functionpointer/gcc/functionpointer.relf +ed5c3632934507f4cfb45242c944912c correct/functionpointer/gcc/functionpointer.gts diff --git a/src/test/correct/functionpointer/gcc/functionpointer.relf b/src/test/correct/functionpointer/gcc/functionpointer.relf deleted file mode 100644 index 513103ce8..000000000 --- a/src/test/correct/functionpointer/gcc/functionpointer.relf +++ /dev/null @@ -1,124 +0,0 @@ - -Relocation section '.rela.dyn' at offset 0x460 contains 8 entries: - Offset Info Type Symbol's Value Symbol's Name + Addend -0000000000010d98 0000000000000403 R_AARCH64_RELATIVE 710 -0000000000010da0 0000000000000403 R_AARCH64_RELATIVE 6c0 -0000000000010ff0 0000000000000403 R_AARCH64_RELATIVE 75c -0000000000011008 0000000000000403 R_AARCH64_RELATIVE 11008 -0000000000010fd8 0000000400000401 R_AARCH64_GLOB_DAT 0000000000000000 _ITM_deregisterTMCloneTable + 0 -0000000000010fe0 0000000500000401 R_AARCH64_GLOB_DAT 0000000000000000 __cxa_finalize@GLIBC_2.17 + 0 -0000000000010fe8 0000000600000401 R_AARCH64_GLOB_DAT 0000000000000000 __gmon_start__ + 0 -0000000000010ff8 0000000800000401 R_AARCH64_GLOB_DAT 0000000000000000 _ITM_registerTMCloneTable + 0 - -Relocation section '.rela.plt' at offset 0x520 contains 4 entries: - Offset Info Type Symbol's Value Symbol's Name + Addend -0000000000010fb0 0000000300000402 R_AARCH64_JUMP_SLOT 0000000000000000 __libc_start_main@GLIBC_2.34 + 0 -0000000000010fb8 0000000500000402 R_AARCH64_JUMP_SLOT 0000000000000000 __cxa_finalize@GLIBC_2.17 + 0 -0000000000010fc0 0000000600000402 R_AARCH64_JUMP_SLOT 0000000000000000 __gmon_start__ + 0 -0000000000010fc8 0000000700000402 R_AARCH64_JUMP_SLOT 0000000000000000 abort@GLIBC_2.17 + 0 - -Symbol table '.dynsym' contains 9 entries: - Num: Value Size Type Bind Vis Ndx Name - 0: 0000000000000000 0 NOTYPE LOCAL DEFAULT UND - 1: 0000000000000580 0 SECTION LOCAL DEFAULT 11 .init - 2: 0000000000011000 0 SECTION LOCAL DEFAULT 22 .data - 3: 0000000000000000 0 FUNC GLOBAL DEFAULT UND __libc_start_main@GLIBC_2.34 (2) - 4: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_deregisterTMCloneTable - 5: 0000000000000000 0 FUNC WEAK DEFAULT UND __cxa_finalize@GLIBC_2.17 (3) - 6: 0000000000000000 0 NOTYPE WEAK DEFAULT UND __gmon_start__ - 7: 0000000000000000 0 FUNC GLOBAL DEFAULT UND abort@GLIBC_2.17 (3) - 8: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_registerTMCloneTable - -Symbol table '.symtab' contains 91 entries: - Num: Value Size Type Bind Vis Ndx Name - 0: 0000000000000000 0 NOTYPE LOCAL DEFAULT UND - 1: 0000000000000238 0 SECTION LOCAL DEFAULT 1 .interp - 2: 0000000000000254 0 SECTION LOCAL DEFAULT 2 .note.gnu.build-id - 3: 0000000000000278 0 SECTION LOCAL DEFAULT 3 .note.ABI-tag - 4: 0000000000000298 0 SECTION LOCAL DEFAULT 4 .gnu.hash - 5: 00000000000002b8 0 SECTION LOCAL DEFAULT 5 .dynsym - 6: 0000000000000390 0 SECTION LOCAL DEFAULT 6 .dynstr - 7: 000000000000041e 0 SECTION LOCAL DEFAULT 7 .gnu.version - 8: 0000000000000430 0 SECTION LOCAL DEFAULT 8 .gnu.version_r - 9: 0000000000000460 0 SECTION LOCAL DEFAULT 9 .rela.dyn - 10: 0000000000000520 0 SECTION LOCAL DEFAULT 10 .rela.plt - 11: 0000000000000580 0 SECTION LOCAL DEFAULT 11 .init - 12: 00000000000005a0 0 SECTION LOCAL DEFAULT 12 .plt - 13: 0000000000000600 0 SECTION LOCAL DEFAULT 13 .text - 14: 00000000000007f0 0 SECTION LOCAL DEFAULT 14 .fini - 15: 0000000000000804 0 SECTION LOCAL DEFAULT 15 .rodata - 16: 0000000000000808 0 SECTION LOCAL DEFAULT 16 .eh_frame_hdr - 17: 0000000000000860 0 SECTION LOCAL DEFAULT 17 .eh_frame - 18: 0000000000010d98 0 SECTION LOCAL DEFAULT 18 .init_array - 19: 0000000000010da0 0 SECTION LOCAL DEFAULT 19 .fini_array - 20: 0000000000010da8 0 SECTION LOCAL DEFAULT 20 .dynamic - 21: 0000000000010f98 0 SECTION LOCAL DEFAULT 21 .got - 22: 0000000000011000 0 SECTION LOCAL DEFAULT 22 .data - 23: 0000000000011010 0 SECTION LOCAL DEFAULT 23 .bss - 24: 0000000000000000 0 SECTION LOCAL DEFAULT 24 .comment - 25: 0000000000000000 0 FILE LOCAL DEFAULT ABS Scrt1.o - 26: 0000000000000278 0 NOTYPE LOCAL DEFAULT 3 $d - 27: 0000000000000278 32 OBJECT LOCAL DEFAULT 3 __abi_tag - 28: 0000000000000600 0 NOTYPE LOCAL DEFAULT 13 $x - 29: 0000000000000874 0 NOTYPE LOCAL DEFAULT 17 $d - 30: 0000000000000804 0 NOTYPE LOCAL DEFAULT 15 $d - 31: 0000000000000000 0 FILE LOCAL DEFAULT ABS crti.o - 32: 0000000000000634 0 NOTYPE LOCAL DEFAULT 13 $x - 33: 0000000000000634 20 FUNC LOCAL DEFAULT 13 call_weak_fn - 34: 0000000000000580 0 NOTYPE LOCAL DEFAULT 11 $x - 35: 00000000000007f0 0 NOTYPE LOCAL DEFAULT 14 $x - 36: 0000000000000000 0 FILE LOCAL DEFAULT ABS crtn.o - 37: 0000000000000590 0 NOTYPE LOCAL DEFAULT 11 $x - 38: 00000000000007fc 0 NOTYPE LOCAL DEFAULT 14 $x - 39: 0000000000000000 0 FILE LOCAL DEFAULT ABS crtstuff.c - 40: 0000000000000650 0 NOTYPE LOCAL DEFAULT 13 $x - 41: 0000000000000650 0 FUNC LOCAL DEFAULT 13 deregister_tm_clones - 42: 0000000000000680 0 FUNC LOCAL DEFAULT 13 register_tm_clones - 43: 0000000000011008 0 NOTYPE LOCAL DEFAULT 22 $d - 44: 00000000000006c0 0 FUNC LOCAL DEFAULT 13 __do_global_dtors_aux - 45: 0000000000011010 1 OBJECT LOCAL DEFAULT 23 completed.0 - 46: 0000000000010da0 0 NOTYPE LOCAL DEFAULT 19 $d - 47: 0000000000010da0 0 OBJECT LOCAL DEFAULT 19 __do_global_dtors_aux_fini_array_entry - 48: 0000000000000710 0 FUNC LOCAL DEFAULT 13 frame_dummy - 49: 0000000000010d98 0 NOTYPE LOCAL DEFAULT 18 $d - 50: 0000000000010d98 0 OBJECT LOCAL DEFAULT 18 __frame_dummy_init_array_entry - 51: 0000000000000888 0 NOTYPE LOCAL DEFAULT 17 $d - 52: 0000000000011010 0 NOTYPE LOCAL DEFAULT 23 $d - 53: 0000000000000000 0 FILE LOCAL DEFAULT ABS functionpointer.c - 54: 0000000000011014 0 NOTYPE LOCAL DEFAULT 23 $d - 55: 0000000000000714 0 NOTYPE LOCAL DEFAULT 13 $x - 56: 00000000000008e8 0 NOTYPE LOCAL DEFAULT 17 $d - 57: 0000000000000000 0 FILE LOCAL DEFAULT ABS crtstuff.c - 58: 0000000000000944 0 NOTYPE LOCAL DEFAULT 17 $d - 59: 0000000000000944 0 OBJECT LOCAL DEFAULT 17 __FRAME_END__ - 60: 0000000000000000 0 FILE LOCAL DEFAULT ABS - 61: 0000000000010da8 0 OBJECT LOCAL DEFAULT ABS _DYNAMIC - 62: 0000000000000808 0 NOTYPE LOCAL DEFAULT 16 __GNU_EH_FRAME_HDR - 63: 0000000000010fd0 0 OBJECT LOCAL DEFAULT ABS _GLOBAL_OFFSET_TABLE_ - 64: 00000000000005a0 0 NOTYPE LOCAL DEFAULT 12 $x - 65: 0000000000000000 0 FUNC GLOBAL DEFAULT UND __libc_start_main@GLIBC_2.34 - 66: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_deregisterTMCloneTable - 67: 0000000000011000 0 NOTYPE WEAK DEFAULT 22 data_start - 68: 0000000000011010 0 NOTYPE GLOBAL DEFAULT 23 __bss_start__ - 69: 0000000000000000 0 FUNC WEAK DEFAULT UND __cxa_finalize@GLIBC_2.17 - 70: 0000000000011018 0 NOTYPE GLOBAL DEFAULT 23 _bss_end__ - 71: 0000000000011010 0 NOTYPE GLOBAL DEFAULT 22 _edata - 72: 0000000000011014 4 OBJECT GLOBAL DEFAULT 23 x - 73: 00000000000007f0 0 FUNC GLOBAL HIDDEN 14 _fini - 74: 0000000000011018 0 NOTYPE GLOBAL DEFAULT 23 __bss_end__ - 75: 0000000000011000 0 NOTYPE GLOBAL DEFAULT 22 __data_start - 76: 0000000000000000 0 NOTYPE WEAK DEFAULT UND __gmon_start__ - 77: 0000000000011008 0 OBJECT GLOBAL HIDDEN 22 __dso_handle - 78: 0000000000000000 0 FUNC GLOBAL DEFAULT UND abort@GLIBC_2.17 - 79: 0000000000000804 4 OBJECT GLOBAL DEFAULT 15 _IO_stdin_used - 80: 0000000000000714 24 FUNC GLOBAL DEFAULT 13 set_two - 81: 0000000000011018 0 NOTYPE GLOBAL DEFAULT 23 _end - 82: 0000000000000600 52 FUNC GLOBAL DEFAULT 13 _start - 83: 0000000000011018 0 NOTYPE GLOBAL DEFAULT 23 __end__ - 84: 000000000000072c 24 FUNC GLOBAL DEFAULT 13 set_six - 85: 0000000000011010 0 NOTYPE GLOBAL DEFAULT 23 __bss_start - 86: 000000000000075c 148 FUNC GLOBAL DEFAULT 13 main - 87: 0000000000000744 24 FUNC GLOBAL DEFAULT 13 set_seven - 88: 0000000000011010 0 OBJECT GLOBAL HIDDEN 22 __TMC_END__ - 89: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_registerTMCloneTable - 90: 0000000000000580 0 FUNC GLOBAL HIDDEN 11 _init diff --git a/src/test/correct/functionpointer/gcc/functionpointer_gtirb.expected b/src/test/correct/functionpointer/gcc/functionpointer_gtirb.expected index 4ad470ca0..ae0203f0d 100644 --- a/src/test/correct/functionpointer/gcc/functionpointer_gtirb.expected +++ b/src/test/correct/functionpointer/gcc/functionpointer_gtirb.expected @@ -3,6 +3,7 @@ var {:extern} Gamma_CF: bool; var {:extern} Gamma_NF: bool; var {:extern} Gamma_R0: bool; var {:extern} Gamma_R1: bool; +var {:extern} Gamma_R2: bool; var {:extern} Gamma_R29: bool; var {:extern} Gamma_R30: bool; var {:extern} Gamma_R31: bool; @@ -13,6 +14,7 @@ var {:extern} Gamma_stack: [bv64]bool; var {:extern} NF: bv1; var {:extern} R0: bv64; var {:extern} R1: bv64; +var {:extern} R2: bv64; var {:extern} R29: bv64; var {:extern} R30: bv64; var {:extern} R31: bv64; @@ -25,15 +27,10 @@ function {:extern} L(mem$in: [bv64]bv8, index: bv64) returns (bool) { } function {:extern} {:bvbuiltin "bvadd"} bvadd32(bv32, bv32) returns (bv32); -function {:extern} {:bvbuiltin "bvadd"} bvadd33(bv33, bv33) returns (bv33); function {:extern} {:bvbuiltin "bvadd"} bvadd64(bv64, bv64) returns (bv64); function {:extern} {:bvbuiltin "bvcomp"} bvcomp32(bv32, bv32) returns (bv1); -function {:extern} {:bvbuiltin "bvcomp"} bvcomp33(bv33, bv33) returns (bv1); +function {:extern} {:bvbuiltin "bvcomp"} bvcomp64(bv64, bv64) returns (bv1); function {:extern} {:bvbuiltin "bvnot"} bvnot1(bv1) returns (bv1); -function {:extern} gamma_load32(gammaMap: [bv64]bool, index: bv64) returns (bool) { - (gammaMap[bvadd64(index, 3bv64)] && (gammaMap[bvadd64(index, 2bv64)] && (gammaMap[bvadd64(index, 1bv64)] && gammaMap[index]))) -} - function {:extern} gamma_load64(gammaMap: [bv64]bool, index: bv64) returns (bool) { (gammaMap[bvadd64(index, 7bv64)] && (gammaMap[bvadd64(index, 6bv64)] && (gammaMap[bvadd64(index, 5bv64)] && (gammaMap[bvadd64(index, 4bv64)] && (gammaMap[bvadd64(index, 3bv64)] && (gammaMap[bvadd64(index, 2bv64)] && (gammaMap[bvadd64(index, 1bv64)] && gammaMap[index]))))))) } @@ -62,18 +59,13 @@ function {:extern} memory_store64_le(memory: [bv64]bv8, index: bv64, value: bv64 memory[index := value[8:0]][bvadd64(index, 1bv64) := value[16:8]][bvadd64(index, 2bv64) := value[24:16]][bvadd64(index, 3bv64) := value[32:24]][bvadd64(index, 4bv64) := value[40:32]][bvadd64(index, 5bv64) := value[48:40]][bvadd64(index, 6bv64) := value[56:48]][bvadd64(index, 7bv64) := value[64:56]] } -function {:extern} {:bvbuiltin "sign_extend 1"} sign_extend1_32(bv32) returns (bv33); -function {:extern} {:bvbuiltin "zero_extend 1"} zero_extend1_32(bv32) returns (bv33); +function {:extern} {:bvbuiltin "sign_extend 32"} sign_extend32_32(bv32) returns (bv64); function {:extern} {:bvbuiltin "zero_extend 32"} zero_extend32_32(bv32) returns (bv64); procedure {:extern} rely(); modifies Gamma_mem, mem; ensures (Gamma_mem == old(Gamma_mem)); ensures (mem == old(mem)); - free ensures (memory_load32_le(mem, 2052bv64) == 131073bv32); - free ensures (memory_load64_le(mem, 69016bv64) == 1808bv64); - free ensures (memory_load64_le(mem, 69024bv64) == 1728bv64); - free ensures (memory_load64_le(mem, 69616bv64) == 1884bv64); - free ensures (memory_load64_le(mem, 69640bv64) == 69640bv64); + free ensures (memory_load32_le(mem, 4196480bv64) == 131073bv32); procedure {:extern} rely_transitive(); modifies Gamma_mem, mem; @@ -91,290 +83,138 @@ procedure {:extern} rely_reflexive(); procedure {:extern} guarantee_reflexive(); modifies Gamma_mem, mem; -procedure set_six_1836(); - modifies Gamma_R0, Gamma_R1, Gamma_mem, R0, R1, mem; - free requires (memory_load32_le(mem, 2052bv64) == 131073bv32); - free requires (memory_load64_le(mem, 69016bv64) == 1808bv64); - free requires (memory_load64_le(mem, 69024bv64) == 1728bv64); - free requires (memory_load64_le(mem, 69616bv64) == 1884bv64); - free requires (memory_load64_le(mem, 69640bv64) == 69640bv64); - free ensures (memory_load32_le(mem, 2052bv64) == 131073bv32); - free ensures (memory_load64_le(mem, 69016bv64) == 1808bv64); - free ensures (memory_load64_le(mem, 69024bv64) == 1728bv64); - free ensures (memory_load64_le(mem, 69616bv64) == 1884bv64); - free ensures (memory_load64_le(mem, 69640bv64) == 69640bv64); - -implementation set_six_1836() -{ - set_six_1836__0__fFBUlQZnQASntc8S7REItw: - assume {:captureState "set_six_1836__0__fFBUlQZnQASntc8S7REItw"} true; - R0, Gamma_R0 := 69632bv64, true; - R0, Gamma_R0 := bvadd64(R0, 20bv64), Gamma_R0; - R1, Gamma_R1 := 6bv64, true; - call rely(); - assert (L(mem, R0) ==> Gamma_R1); - mem, Gamma_mem := memory_store32_le(mem, R0, R1[32:0]), gamma_store32(Gamma_mem, R0, Gamma_R1); - assume {:captureState "1848_0"} true; - goto set_six_1836_basil_return; - set_six_1836_basil_return: - assume {:captureState "set_six_1836_basil_return"} true; - return; -} - -procedure main_1884(); - modifies CF, Gamma_CF, Gamma_NF, Gamma_R0, Gamma_R1, Gamma_R29, Gamma_R30, Gamma_R31, Gamma_VF, Gamma_ZF, Gamma_mem, Gamma_stack, NF, R0, R1, R29, R30, R31, VF, ZF, mem, stack; +procedure main(); + modifies CF, Gamma_CF, Gamma_NF, Gamma_R0, Gamma_R1, Gamma_R2, Gamma_R29, Gamma_R30, Gamma_R31, Gamma_VF, Gamma_ZF, Gamma_mem, Gamma_stack, NF, R0, R1, R2, R29, R30, R31, VF, ZF, mem, stack; requires (Gamma_R0 == true); - free requires (memory_load64_le(mem, 69632bv64) == 0bv64); - free requires (memory_load64_le(mem, 69640bv64) == 69640bv64); - free requires (memory_load32_le(mem, 2052bv64) == 131073bv32); - free requires (memory_load64_le(mem, 69016bv64) == 1808bv64); - free requires (memory_load64_le(mem, 69024bv64) == 1728bv64); - free requires (memory_load64_le(mem, 69616bv64) == 1884bv64); - free requires (memory_load64_le(mem, 69640bv64) == 69640bv64); + free requires (memory_load64_le(mem, 4325376bv64) == 0bv64); + free requires (memory_load64_le(mem, 4325384bv64) == 0bv64); + free requires (memory_load32_le(mem, 4196480bv64) == 131073bv32); free ensures (Gamma_R29 == old(Gamma_R29)); free ensures (Gamma_R31 == old(Gamma_R31)); free ensures (R29 == old(R29)); free ensures (R31 == old(R31)); - free ensures (memory_load32_le(mem, 2052bv64) == 131073bv32); - free ensures (memory_load64_le(mem, 69016bv64) == 1808bv64); - free ensures (memory_load64_le(mem, 69024bv64) == 1728bv64); - free ensures (memory_load64_le(mem, 69616bv64) == 1884bv64); - free ensures (memory_load64_le(mem, 69640bv64) == 69640bv64); + free ensures (memory_load32_le(mem, 4196480bv64) == 131073bv32); -implementation main_1884() +implementation main() { - var Cse0__5_0_1: bv32; - var Cse0__5_10_1: bv32; - var Cse0__5_1_1: bv32; - var Cse0__5_3_0: bv64; - var Cse0__5_3_4: bv32; - var Gamma_Cse0__5_0_1: bool; - var Gamma_Cse0__5_10_1: bool; - var Gamma_Cse0__5_1_1: bool; - var Gamma_Cse0__5_3_0: bool; - var Gamma_Cse0__5_3_4: bool; - var Gamma_load14: bool; - var Gamma_load15: bool; - var Gamma_load16: bool; - var Gamma_load17: bool; - var Gamma_load18: bool; - var Gamma_load19: bool; - var Gamma_load20: bool; - var load14: bv32; - var load15: bv32; - var load16: bv32; - var load17: bv64; - var load18: bv64; - var load19: bv64; - var load20: bv32; - main_1884__0___D9FajgJRbSw2iGYcpsBIw: - assume {:captureState "main_1884__0___D9FajgJRbSw2iGYcpsBIw"} true; - Cse0__5_3_0, Gamma_Cse0__5_3_0 := bvadd64(R31, 18446744073709551568bv64), Gamma_R31; - stack, Gamma_stack := memory_store64_le(stack, Cse0__5_3_0, R29), gamma_store64(Gamma_stack, Cse0__5_3_0, Gamma_R29); - assume {:captureState "1884_1"} true; - stack, Gamma_stack := memory_store64_le(stack, bvadd64(Cse0__5_3_0, 8bv64), R30), gamma_store64(Gamma_stack, bvadd64(Cse0__5_3_0, 8bv64), Gamma_R30); - assume {:captureState "1884_2"} true; - R31, Gamma_R31 := Cse0__5_3_0, Gamma_Cse0__5_3_0; + var $load3: bv64; + var $load4: bv64; + var $load5: bv64; + var $load6: bv64; + var $load7: bv64; + var Cse0__5$4$0: bv64; + var Cse0__5$4$2: bv32; + var Cse0__5$5$2: bv32; + var Gamma_$load3: bool; + var Gamma_$load4: bool; + var Gamma_$load5: bool; + var Gamma_$load6: bool; + var Gamma_$load7: bool; + var Gamma_Cse0__5$4$0: bool; + var Gamma_Cse0__5$4$2: bool; + var Gamma_Cse0__5$5$2: bool; + $main$__0__$Djx7L34DQzuSXaBFEj_bpQ: + assume {:captureState "$main$__0__$Djx7L34DQzuSXaBFEj_bpQ"} true; + Cse0__5$4$0, Gamma_Cse0__5$4$0 := bvadd64(R31, 18446744073709551600bv64), Gamma_R31; + stack, Gamma_stack := memory_store64_le(stack, Cse0__5$4$0, R29), gamma_store64(Gamma_stack, Cse0__5$4$0, Gamma_R29); + assume {:captureState "4195968$1"} true; + stack, Gamma_stack := memory_store64_le(stack, bvadd64(Cse0__5$4$0, 8bv64), R30), gamma_store64(Gamma_stack, bvadd64(Cse0__5$4$0, 8bv64), Gamma_R30); + assume {:captureState "4195968$2"} true; + R31, Gamma_R31 := Cse0__5$4$0, Gamma_Cse0__5$4$0; R29, Gamma_R29 := R31, Gamma_R31; - stack, Gamma_stack := memory_store32_le(stack, bvadd64(R31, 28bv64), R0[32:0]), gamma_store32(Gamma_stack, bvadd64(R31, 28bv64), Gamma_R0); - assume {:captureState "1892_0"} true; - load16, Gamma_load16 := memory_load32_le(stack, bvadd64(R31, 28bv64)), gamma_load32(Gamma_stack, bvadd64(R31, 28bv64)); - R0, Gamma_R0 := zero_extend32_32(load16), Gamma_load16; - Cse0__5_3_4, Gamma_Cse0__5_3_4 := bvadd32(R0[32:0], 4294967294bv32), Gamma_R0; - VF, Gamma_VF := bvnot1(bvcomp33(sign_extend1_32(Cse0__5_3_4), bvadd33(sign_extend1_32(R0[32:0]), 8589934590bv33))), (Gamma_R0 && Gamma_Cse0__5_3_4); - CF, Gamma_CF := bvnot1(bvcomp33(zero_extend1_32(Cse0__5_3_4), bvadd33(zero_extend1_32(R0[32:0]), 4294967294bv33))), (Gamma_R0 && Gamma_Cse0__5_3_4); - ZF, Gamma_ZF := bvcomp32(Cse0__5_3_4, 0bv32), Gamma_Cse0__5_3_4; - NF, Gamma_NF := Cse0__5_3_4[32:31], Gamma_Cse0__5_3_4; - assert Gamma_ZF; - goto main_1884__0___D9FajgJRbSw2iGYcpsBIw_goto_main_1884__7__0vBHGw4KTwa~IJS_dHoKWg, main_1884__0___D9FajgJRbSw2iGYcpsBIw_goto_main_1884__1__f9ntZhvlQY6oxTWcOq0JTg; - main_1884__0___D9FajgJRbSw2iGYcpsBIw_goto_main_1884__1__f9ntZhvlQY6oxTWcOq0JTg: - assume {:captureState "main_1884__0___D9FajgJRbSw2iGYcpsBIw_goto_main_1884__1__f9ntZhvlQY6oxTWcOq0JTg"} true; - assume (!(ZF == 1bv1)); - load14, Gamma_load14 := memory_load32_le(stack, bvadd64(R31, 28bv64)), gamma_load32(Gamma_stack, bvadd64(R31, 28bv64)); - R0, Gamma_R0 := zero_extend32_32(load14), Gamma_load14; - Cse0__5_0_1, Gamma_Cse0__5_0_1 := bvadd32(R0[32:0], 4294967294bv32), Gamma_R0; - VF, Gamma_VF := bvnot1(bvcomp33(sign_extend1_32(Cse0__5_0_1), bvadd33(sign_extend1_32(R0[32:0]), 8589934590bv33))), (Gamma_R0 && Gamma_Cse0__5_0_1); - CF, Gamma_CF := bvnot1(bvcomp33(zero_extend1_32(Cse0__5_0_1), bvadd33(zero_extend1_32(R0[32:0]), 4294967294bv33))), (Gamma_R0 && Gamma_Cse0__5_0_1); - ZF, Gamma_ZF := bvcomp32(Cse0__5_0_1, 0bv32), Gamma_Cse0__5_0_1; - NF, Gamma_NF := Cse0__5_0_1[32:31], Gamma_Cse0__5_0_1; - goto main_1884__1__f9ntZhvlQY6oxTWcOq0JTg; - main_1884__1__f9ntZhvlQY6oxTWcOq0JTg: - assume {:captureState "main_1884__1__f9ntZhvlQY6oxTWcOq0JTg"} true; - assert ((Gamma_NF && Gamma_VF) && Gamma_ZF); - goto main_1884__1__f9ntZhvlQY6oxTWcOq0JTg_goto_main_1884__8___yFfkL_NQBGG_4FltkEZPA, main_1884__1__f9ntZhvlQY6oxTWcOq0JTg_goto_main_1884__2__DHZJ7cSQSna~nrpNXjA6pQ; - main_1884__1__f9ntZhvlQY6oxTWcOq0JTg_goto_main_1884__2__DHZJ7cSQSna~nrpNXjA6pQ: - assume {:captureState "main_1884__1__f9ntZhvlQY6oxTWcOq0JTg_goto_main_1884__2__DHZJ7cSQSna~nrpNXjA6pQ"} true; - assume (!((NF == VF) && (ZF == 0bv1))); - load20, Gamma_load20 := memory_load32_le(stack, bvadd64(R31, 28bv64)), gamma_load32(Gamma_stack, bvadd64(R31, 28bv64)); - R0, Gamma_R0 := zero_extend32_32(load20), Gamma_load20; - Cse0__5_10_1, Gamma_Cse0__5_10_1 := bvadd32(R0[32:0], 0bv32), Gamma_R0; - VF, Gamma_VF := bvnot1(bvcomp32(Cse0__5_10_1, Cse0__5_10_1)), Gamma_Cse0__5_10_1; - CF, Gamma_CF := bvnot1(bvcomp33(zero_extend1_32(Cse0__5_10_1), bvadd33(zero_extend1_32(R0[32:0]), 4294967296bv33))), (Gamma_R0 && Gamma_Cse0__5_10_1); - ZF, Gamma_ZF := bvcomp32(Cse0__5_10_1, 0bv32), Gamma_Cse0__5_10_1; - NF, Gamma_NF := Cse0__5_10_1[32:31], Gamma_Cse0__5_10_1; - goto main_1884__2__DHZJ7cSQSna~nrpNXjA6pQ; - main_1884__2__DHZJ7cSQSna~nrpNXjA6pQ: - assume {:captureState "main_1884__2__DHZJ7cSQSna~nrpNXjA6pQ"} true; + Cse0__5$4$2, Gamma_Cse0__5$4$2 := bvadd32(R0[32:0], 4294967295bv32), Gamma_R0; + VF, Gamma_VF := bvnot1(bvcomp64(sign_extend32_32(Cse0__5$4$2), bvadd64(sign_extend32_32(R0[32:0]), 18446744073709551615bv64))), (Gamma_R0 && Gamma_Cse0__5$4$2); + CF, Gamma_CF := bvnot1(bvcomp64(zero_extend32_32(Cse0__5$4$2), bvadd64(zero_extend32_32(R0[32:0]), 4294967295bv64))), (Gamma_R0 && Gamma_Cse0__5$4$2); + ZF, Gamma_ZF := bvcomp32(Cse0__5$4$2, 0bv32), Gamma_Cse0__5$4$2; + NF, Gamma_NF := Cse0__5$4$2[32:31], Gamma_Cse0__5$4$2; assert Gamma_ZF; - goto main_1884__2__DHZJ7cSQSna~nrpNXjA6pQ_goto_main_1884__5__3a21fgw4S6uXIwvw1rvH7A, main_1884__2__DHZJ7cSQSna~nrpNXjA6pQ_goto_main_1884__3__Y~lfjyGjQ_WvS7i15Hyi6w; - main_1884__2__DHZJ7cSQSna~nrpNXjA6pQ_goto_main_1884__3__Y~lfjyGjQ_WvS7i15Hyi6w: - assume {:captureState "main_1884__2__DHZJ7cSQSna~nrpNXjA6pQ_goto_main_1884__3__Y~lfjyGjQ_WvS7i15Hyi6w"} true; - assume (!(ZF == 1bv1)); - load15, Gamma_load15 := memory_load32_le(stack, bvadd64(R31, 28bv64)), gamma_load32(Gamma_stack, bvadd64(R31, 28bv64)); - R0, Gamma_R0 := zero_extend32_32(load15), Gamma_load15; - Cse0__5_1_1, Gamma_Cse0__5_1_1 := bvadd32(R0[32:0], 4294967295bv32), Gamma_R0; - VF, Gamma_VF := bvnot1(bvcomp33(sign_extend1_32(Cse0__5_1_1), bvadd33(sign_extend1_32(R0[32:0]), 8589934591bv33))), (Gamma_R0 && Gamma_Cse0__5_1_1); - CF, Gamma_CF := bvnot1(bvcomp33(zero_extend1_32(Cse0__5_1_1), bvadd33(zero_extend1_32(R0[32:0]), 4294967295bv33))), (Gamma_R0 && Gamma_Cse0__5_1_1); - ZF, Gamma_ZF := bvcomp32(Cse0__5_1_1, 0bv32), Gamma_Cse0__5_1_1; - NF, Gamma_NF := Cse0__5_1_1[32:31], Gamma_Cse0__5_1_1; - goto main_1884__3__Y~lfjyGjQ_WvS7i15Hyi6w; - main_1884__3__Y~lfjyGjQ_WvS7i15Hyi6w: - assume {:captureState "main_1884__3__Y~lfjyGjQ_WvS7i15Hyi6w"} true; + goto $main$__0__$Djx7L34DQzuSXaBFEj_bpQ_goto_$main$__4__$GghTYm6bT12tNFmqu0nIjA, $main$__0__$Djx7L34DQzuSXaBFEj_bpQ_goto_$main$__1__$fxMAJl44TWOTA8IHVD8V7Q; + $main$__1__$fxMAJl44TWOTA8IHVD8V7Q: + assume {:captureState "$main$__1__$fxMAJl44TWOTA8IHVD8V7Q"} true; + R1, Gamma_R1 := 4321280bv64, true; + call rely(); + $load6, Gamma_$load6 := memory_load64_le(mem, bvadd64(R1, 4080bv64)), (gamma_load64(Gamma_mem, bvadd64(R1, 4080bv64)) || L(mem, bvadd64(R1, 4080bv64))); + R1, Gamma_R1 := $load6, Gamma_$load6; + Cse0__5$5$2, Gamma_Cse0__5$5$2 := bvadd32(R0[32:0], 4294967294bv32), Gamma_R0; + VF, Gamma_VF := bvnot1(bvcomp64(sign_extend32_32(Cse0__5$5$2), bvadd64(sign_extend32_32(R0[32:0]), 18446744073709551614bv64))), (Gamma_R0 && Gamma_Cse0__5$5$2); + CF, Gamma_CF := bvnot1(bvcomp64(zero_extend32_32(Cse0__5$5$2), bvadd64(zero_extend32_32(R0[32:0]), 4294967294bv64))), (Gamma_R0 && Gamma_Cse0__5$5$2); + ZF, Gamma_ZF := bvcomp32(Cse0__5$5$2, 0bv32), Gamma_Cse0__5$5$2; + NF, Gamma_NF := Cse0__5$5$2[32:31], Gamma_Cse0__5$5$2; + R2, Gamma_R2 := 4321280bv64, true; + call rely(); + $load7, Gamma_$load7 := memory_load64_le(mem, bvadd64(R2, 4064bv64)), (gamma_load64(Gamma_mem, bvadd64(R2, 4064bv64)) || L(mem, bvadd64(R2, 4064bv64))); + R2, Gamma_R2 := $load7, Gamma_$load7; assert Gamma_ZF; - goto main_1884__3__Y~lfjyGjQ_WvS7i15Hyi6w_goto_main_1884__6__c0TNLKEPT3GkfwAOFWCdMw, main_1884__3__Y~lfjyGjQ_WvS7i15Hyi6w_goto_main_1884__4__3NbhKlSfRPah6thY7nGsGQ; - main_1884__3__Y~lfjyGjQ_WvS7i15Hyi6w_goto_main_1884__4__3NbhKlSfRPah6thY7nGsGQ: - assume {:captureState "main_1884__3__Y~lfjyGjQ_WvS7i15Hyi6w_goto_main_1884__4__3NbhKlSfRPah6thY7nGsGQ"} true; - assume (!(ZF == 1bv1)); - goto main_1884__4__3NbhKlSfRPah6thY7nGsGQ; - main_1884__4__3NbhKlSfRPah6thY7nGsGQ: - assume {:captureState "main_1884__4__3NbhKlSfRPah6thY7nGsGQ"} true; - goto main_1884__8___yFfkL_NQBGG_4FltkEZPA; - main_1884__3__Y~lfjyGjQ_WvS7i15Hyi6w_goto_main_1884__6__c0TNLKEPT3GkfwAOFWCdMw: - assume {:captureState "main_1884__3__Y~lfjyGjQ_WvS7i15Hyi6w_goto_main_1884__6__c0TNLKEPT3GkfwAOFWCdMw"} true; - assume (ZF == 1bv1); + goto $main$__1__$fxMAJl44TWOTA8IHVD8V7Q$__0, $main$__1__$fxMAJl44TWOTA8IHVD8V7Q$__1; + $main$__2__$yQ1z8A~IRoSs4MRYTbbghg: + assume {:captureState "$main$__2__$yQ1z8A~IRoSs4MRYTbbghg"} true; + R30, Gamma_R30 := 4195972bv64, true; + call set_six(); + goto $main$__3__$GW0MHC~ORUKlCdpgOcZ6zA; + $main$__3__$GW0MHC~ORUKlCdpgOcZ6zA: + assume {:captureState "$main$__3__$GW0MHC~ORUKlCdpgOcZ6zA"} true; R0, Gamma_R0 := 0bv64, true; - R0, Gamma_R0 := bvadd64(R0, 1836bv64), Gamma_R0; - stack, Gamma_stack := memory_store64_le(stack, bvadd64(R31, 40bv64), R0), gamma_store64(Gamma_stack, bvadd64(R31, 40bv64), Gamma_R0); - assume {:captureState "1972_0"} true; - goto main_1884__6__c0TNLKEPT3GkfwAOFWCdMw; - main_1884__6__c0TNLKEPT3GkfwAOFWCdMw: - assume {:captureState "main_1884__6__c0TNLKEPT3GkfwAOFWCdMw"} true; - goto main_1884__9__N87MnmJ9SDqTYx5EXy~u6g; - main_1884__2__DHZJ7cSQSna~nrpNXjA6pQ_goto_main_1884__5__3a21fgw4S6uXIwvw1rvH7A: - assume {:captureState "main_1884__2__DHZJ7cSQSna~nrpNXjA6pQ_goto_main_1884__5__3a21fgw4S6uXIwvw1rvH7A"} true; + $load3, Gamma_$load3 := memory_load64_le(stack, R31), gamma_load64(Gamma_stack, R31); + R29, Gamma_R29 := $load3, Gamma_$load3; + $load4, Gamma_$load4 := memory_load64_le(stack, bvadd64(R31, 8bv64)), gamma_load64(Gamma_stack, bvadd64(R31, 8bv64)); + R30, Gamma_R30 := $load4, Gamma_$load4; + R31, Gamma_R31 := bvadd64(R31, 16bv64), Gamma_R31; + goto main_basil_return; + $main$__4__$GghTYm6bT12tNFmqu0nIjA: + assume {:captureState "$main$__4__$GghTYm6bT12tNFmqu0nIjA"} true; + R0, Gamma_R0 := 4321280bv64, true; + call rely(); + $load5, Gamma_$load5 := memory_load64_le(mem, bvadd64(R0, 4072bv64)), (gamma_load64(Gamma_mem, bvadd64(R0, 4072bv64)) || L(mem, bvadd64(R0, 4072bv64))); + R0, Gamma_R0 := $load5, Gamma_$load5; + goto $main$__2__$yQ1z8A~IRoSs4MRYTbbghg; + $main$__0__$Djx7L34DQzuSXaBFEj_bpQ_goto_$main$__4__$GghTYm6bT12tNFmqu0nIjA: + assume {:captureState "$main$__0__$Djx7L34DQzuSXaBFEj_bpQ_goto_$main$__4__$GghTYm6bT12tNFmqu0nIjA"} true; assume (ZF == 1bv1); - R0, Gamma_R0 := 0bv64, true; - R0, Gamma_R0 := bvadd64(R0, 1812bv64), Gamma_R0; - stack, Gamma_stack := memory_store64_le(stack, bvadd64(R31, 40bv64), R0), gamma_store64(Gamma_stack, bvadd64(R31, 40bv64), Gamma_R0); - assume {:captureState "1956_0"} true; - goto main_1884__5__3a21fgw4S6uXIwvw1rvH7A; - main_1884__5__3a21fgw4S6uXIwvw1rvH7A: - assume {:captureState "main_1884__5__3a21fgw4S6uXIwvw1rvH7A"} true; - goto main_1884__9__N87MnmJ9SDqTYx5EXy~u6g; - main_1884__1__f9ntZhvlQY6oxTWcOq0JTg_goto_main_1884__8___yFfkL_NQBGG_4FltkEZPA: - assume {:captureState "main_1884__1__f9ntZhvlQY6oxTWcOq0JTg_goto_main_1884__8___yFfkL_NQBGG_4FltkEZPA"} true; - assume ((NF == VF) && (ZF == 0bv1)); - goto main_1884__8___yFfkL_NQBGG_4FltkEZPA; - main_1884__8___yFfkL_NQBGG_4FltkEZPA: - assume {:captureState "main_1884__8___yFfkL_NQBGG_4FltkEZPA"} true; - R0, Gamma_R0 := 0bv64, true; - R0, Gamma_R0 := bvadd64(R0, 1812bv64), Gamma_R0; - stack, Gamma_stack := memory_store64_le(stack, bvadd64(R31, 40bv64), R0), gamma_store64(Gamma_stack, bvadd64(R31, 40bv64), Gamma_R0); - assume {:captureState "2004_0"} true; - goto main_1884__9__N87MnmJ9SDqTYx5EXy~u6g; - main_1884__0___D9FajgJRbSw2iGYcpsBIw_goto_main_1884__7__0vBHGw4KTwa~IJS_dHoKWg: - assume {:captureState "main_1884__0___D9FajgJRbSw2iGYcpsBIw_goto_main_1884__7__0vBHGw4KTwa~IJS_dHoKWg"} true; + goto $main$__4__$GghTYm6bT12tNFmqu0nIjA; + $main$__0__$Djx7L34DQzuSXaBFEj_bpQ_goto_$main$__1__$fxMAJl44TWOTA8IHVD8V7Q: + assume {:captureState "$main$__0__$Djx7L34DQzuSXaBFEj_bpQ_goto_$main$__1__$fxMAJl44TWOTA8IHVD8V7Q"} true; + assume (!(ZF == 1bv1)); + goto $main$__1__$fxMAJl44TWOTA8IHVD8V7Q; + $main$__1__$fxMAJl44TWOTA8IHVD8V7Q$__0: + assume {:captureState "$main$__1__$fxMAJl44TWOTA8IHVD8V7Q$__0"} true; assume (ZF == 1bv1); - R0, Gamma_R0 := 0bv64, true; - R0, Gamma_R0 := bvadd64(R0, 1860bv64), Gamma_R0; - stack, Gamma_stack := memory_store64_le(stack, bvadd64(R31, 40bv64), R0), gamma_store64(Gamma_stack, bvadd64(R31, 40bv64), Gamma_R0); - assume {:captureState "1988_0"} true; - goto main_1884__7__0vBHGw4KTwa~IJS_dHoKWg; - main_1884__7__0vBHGw4KTwa~IJS_dHoKWg: - assume {:captureState "main_1884__7__0vBHGw4KTwa~IJS_dHoKWg"} true; - goto main_1884__9__N87MnmJ9SDqTYx5EXy~u6g; - main_1884__9__N87MnmJ9SDqTYx5EXy~u6g: - assume {:captureState "main_1884__9__N87MnmJ9SDqTYx5EXy~u6g"} true; - load19, Gamma_load19 := memory_load64_le(stack, bvadd64(R31, 40bv64)), gamma_load64(Gamma_stack, bvadd64(R31, 40bv64)); - R0, Gamma_R0 := load19, Gamma_load19; - R30, Gamma_R30 := 2020bv64, true; - goto main_1884__9__N87MnmJ9SDqTYx5EXy~u6g_set_seven_1860, main_1884__9__N87MnmJ9SDqTYx5EXy~u6g_set_two_1812, main_1884__9__N87MnmJ9SDqTYx5EXy~u6g_set_six_1836; - main_1884__9__N87MnmJ9SDqTYx5EXy~u6g_set_six_1836: - assume {:captureState "main_1884__9__N87MnmJ9SDqTYx5EXy~u6g_set_six_1836"} true; - assume (R0 == 1836bv64); - call set_six_1836(); - goto main_1884__10__Y1PxorE9TmC2XsQ0OMAzBg; - main_1884__9__N87MnmJ9SDqTYx5EXy~u6g_set_two_1812: - assume {:captureState "main_1884__9__N87MnmJ9SDqTYx5EXy~u6g_set_two_1812"} true; - assume (R0 == 1812bv64); - call set_two_1812(); - goto main_1884__10__Y1PxorE9TmC2XsQ0OMAzBg; - main_1884__9__N87MnmJ9SDqTYx5EXy~u6g_set_seven_1860: - assume {:captureState "main_1884__9__N87MnmJ9SDqTYx5EXy~u6g_set_seven_1860"} true; - assume (R0 == 1860bv64); - call set_seven_1860(); - goto main_1884__10__Y1PxorE9TmC2XsQ0OMAzBg; - main_1884__10__Y1PxorE9TmC2XsQ0OMAzBg: - assume {:captureState "main_1884__10__Y1PxorE9TmC2XsQ0OMAzBg"} true; - R0, Gamma_R0 := 0bv64, true; - load17, Gamma_load17 := memory_load64_le(stack, R31), gamma_load64(Gamma_stack, R31); - R29, Gamma_R29 := load17, Gamma_load17; - load18, Gamma_load18 := memory_load64_le(stack, bvadd64(R31, 8bv64)), gamma_load64(Gamma_stack, bvadd64(R31, 8bv64)); - R30, Gamma_R30 := load18, Gamma_load18; - R31, Gamma_R31 := bvadd64(R31, 48bv64), Gamma_R31; - goto main_1884_basil_return; - main_1884_basil_return: - assume {:captureState "main_1884_basil_return"} true; + R0, Gamma_R0 := R1, Gamma_R1; + goto $main$__2__$yQ1z8A~IRoSs4MRYTbbghg; + $main$__1__$fxMAJl44TWOTA8IHVD8V7Q$__1: + assume {:captureState "$main$__1__$fxMAJl44TWOTA8IHVD8V7Q$__1"} true; + assume (!(ZF == 1bv1)); + R0, Gamma_R0 := R2, Gamma_R2; + goto $main$__2__$yQ1z8A~IRoSs4MRYTbbghg; + main_basil_return: + assume {:captureState "main_basil_return"} true; return; } -procedure set_seven_1860(); +procedure set_six(); modifies Gamma_R0, Gamma_R1, Gamma_mem, R0, R1, mem; - free requires (memory_load32_le(mem, 2052bv64) == 131073bv32); - free requires (memory_load64_le(mem, 69016bv64) == 1808bv64); - free requires (memory_load64_le(mem, 69024bv64) == 1728bv64); - free requires (memory_load64_le(mem, 69616bv64) == 1884bv64); - free requires (memory_load64_le(mem, 69640bv64) == 69640bv64); - free ensures (memory_load32_le(mem, 2052bv64) == 131073bv32); - free ensures (memory_load64_le(mem, 69016bv64) == 1808bv64); - free ensures (memory_load64_le(mem, 69024bv64) == 1728bv64); - free ensures (memory_load64_le(mem, 69616bv64) == 1884bv64); - free ensures (memory_load64_le(mem, 69640bv64) == 69640bv64); + free requires (memory_load32_le(mem, 4196480bv64) == 131073bv32); + free ensures (memory_load32_le(mem, 4196480bv64) == 131073bv32); -implementation set_seven_1860() +implementation set_six() { - set_seven_1860__0__N5CM0prJRzCc8vJXtN888g: - assume {:captureState "set_seven_1860__0__N5CM0prJRzCc8vJXtN888g"} true; - R0, Gamma_R0 := 69632bv64, true; - R0, Gamma_R0 := bvadd64(R0, 20bv64), Gamma_R0; - R1, Gamma_R1 := 7bv64, true; + var $load17: bv64; + var Gamma_$load17: bool; + $set_six$__0__$24sQpyZMTFejNeMkgQiWnw: + assume {:captureState "$set_six$__0__$24sQpyZMTFejNeMkgQiWnw"} true; + R0, Gamma_R0 := 4321280bv64, true; call rely(); - assert (L(mem, R0) ==> Gamma_R1); - mem, Gamma_mem := memory_store32_le(mem, R0, R1[32:0]), gamma_store32(Gamma_mem, R0, Gamma_R1); - assume {:captureState "1872_0"} true; - goto set_seven_1860_basil_return; - set_seven_1860_basil_return: - assume {:captureState "set_seven_1860_basil_return"} true; - return; -} - -procedure set_two_1812(); - modifies Gamma_R0, Gamma_R1, Gamma_mem, R0, R1, mem; - free requires (memory_load32_le(mem, 2052bv64) == 131073bv32); - free requires (memory_load64_le(mem, 69016bv64) == 1808bv64); - free requires (memory_load64_le(mem, 69024bv64) == 1728bv64); - free requires (memory_load64_le(mem, 69616bv64) == 1884bv64); - free requires (memory_load64_le(mem, 69640bv64) == 69640bv64); - free ensures (memory_load32_le(mem, 2052bv64) == 131073bv32); - free ensures (memory_load64_le(mem, 69016bv64) == 1808bv64); - free ensures (memory_load64_le(mem, 69024bv64) == 1728bv64); - free ensures (memory_load64_le(mem, 69616bv64) == 1884bv64); - free ensures (memory_load64_le(mem, 69640bv64) == 69640bv64); - -implementation set_two_1812() -{ - set_two_1812__0__pAd9qDTFTLWR4Wy64dKK0A: - assume {:captureState "set_two_1812__0__pAd9qDTFTLWR4Wy64dKK0A"} true; - R0, Gamma_R0 := 69632bv64, true; - R0, Gamma_R0 := bvadd64(R0, 20bv64), Gamma_R0; - R1, Gamma_R1 := 2bv64, true; + $load17, Gamma_$load17 := memory_load64_le(mem, bvadd64(R0, 4048bv64)), (gamma_load64(Gamma_mem, bvadd64(R0, 4048bv64)) || L(mem, bvadd64(R0, 4048bv64))); + R0, Gamma_R0 := $load17, Gamma_$load17; + R1, Gamma_R1 := 6bv64, true; call rely(); assert (L(mem, R0) ==> Gamma_R1); mem, Gamma_mem := memory_store32_le(mem, R0, R1[32:0]), gamma_store32(Gamma_mem, R0, Gamma_R1); - assume {:captureState "1824_0"} true; - goto set_two_1812_basil_return; - set_two_1812_basil_return: - assume {:captureState "set_two_1812_basil_return"} true; + assume {:captureState "4196412$0"} true; + R0, Gamma_R0 := 0bv64, true; + R1, Gamma_R1 := 0bv64, true; + goto set_six_basil_return; + set_six_basil_return: + assume {:captureState "set_six_basil_return"} true; return; } diff --git a/src/test/correct/functionpointer/gcc_O2/functionpointer.gts b/src/test/correct/functionpointer/gcc_O2/functionpointer.gts deleted file mode 100644 index e28adadc4..000000000 Binary files a/src/test/correct/functionpointer/gcc_O2/functionpointer.gts and /dev/null differ diff --git a/src/test/correct/functionpointer/gcc_O2/functionpointer.md5sum b/src/test/correct/functionpointer/gcc_O2/functionpointer.md5sum new file mode 100644 index 000000000..617372173 --- /dev/null +++ b/src/test/correct/functionpointer/gcc_O2/functionpointer.md5sum @@ -0,0 +1,3 @@ +01a7ca8e98d1b618bb1a341e0352be95 correct/functionpointer/gcc_O2/a.out +2e341ee800405ab5d8a8f3dbcb521e0b correct/functionpointer/gcc_O2/functionpointer.relf +50b98b94bd62778988eaf62058ff4a90 correct/functionpointer/gcc_O2/functionpointer.gts diff --git a/src/test/correct/functionpointer/gcc_O2/functionpointer.relf b/src/test/correct/functionpointer/gcc_O2/functionpointer.relf deleted file mode 100644 index 4bd5e7171..000000000 --- a/src/test/correct/functionpointer/gcc_O2/functionpointer.relf +++ /dev/null @@ -1,125 +0,0 @@ - -Relocation section '.rela.dyn' at offset 0x460 contains 8 entries: - Offset Info Type Symbol's Value Symbol's Name + Addend -0000000000010d98 0000000000000403 R_AARCH64_RELATIVE 790 -0000000000010da0 0000000000000403 R_AARCH64_RELATIVE 740 -0000000000010ff0 0000000000000403 R_AARCH64_RELATIVE 600 -0000000000011008 0000000000000403 R_AARCH64_RELATIVE 11008 -0000000000010fd8 0000000400000401 R_AARCH64_GLOB_DAT 0000000000000000 _ITM_deregisterTMCloneTable + 0 -0000000000010fe0 0000000500000401 R_AARCH64_GLOB_DAT 0000000000000000 __cxa_finalize@GLIBC_2.17 + 0 -0000000000010fe8 0000000600000401 R_AARCH64_GLOB_DAT 0000000000000000 __gmon_start__ + 0 -0000000000010ff8 0000000800000401 R_AARCH64_GLOB_DAT 0000000000000000 _ITM_registerTMCloneTable + 0 - -Relocation section '.rela.plt' at offset 0x520 contains 4 entries: - Offset Info Type Symbol's Value Symbol's Name + Addend -0000000000010fb0 0000000300000402 R_AARCH64_JUMP_SLOT 0000000000000000 __libc_start_main@GLIBC_2.34 + 0 -0000000000010fb8 0000000500000402 R_AARCH64_JUMP_SLOT 0000000000000000 __cxa_finalize@GLIBC_2.17 + 0 -0000000000010fc0 0000000600000402 R_AARCH64_JUMP_SLOT 0000000000000000 __gmon_start__ + 0 -0000000000010fc8 0000000700000402 R_AARCH64_JUMP_SLOT 0000000000000000 abort@GLIBC_2.17 + 0 - -Symbol table '.dynsym' contains 9 entries: - Num: Value Size Type Bind Vis Ndx Name - 0: 0000000000000000 0 NOTYPE LOCAL DEFAULT UND - 1: 0000000000000580 0 SECTION LOCAL DEFAULT 11 .init - 2: 0000000000011000 0 SECTION LOCAL DEFAULT 22 .data - 3: 0000000000000000 0 FUNC GLOBAL DEFAULT UND __libc_start_main@GLIBC_2.34 (2) - 4: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_deregisterTMCloneTable - 5: 0000000000000000 0 FUNC WEAK DEFAULT UND __cxa_finalize@GLIBC_2.17 (3) - 6: 0000000000000000 0 NOTYPE WEAK DEFAULT UND __gmon_start__ - 7: 0000000000000000 0 FUNC GLOBAL DEFAULT UND abort@GLIBC_2.17 (3) - 8: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_registerTMCloneTable - -Symbol table '.symtab' contains 92 entries: - Num: Value Size Type Bind Vis Ndx Name - 0: 0000000000000000 0 NOTYPE LOCAL DEFAULT UND - 1: 0000000000000238 0 SECTION LOCAL DEFAULT 1 .interp - 2: 0000000000000254 0 SECTION LOCAL DEFAULT 2 .note.gnu.build-id - 3: 0000000000000278 0 SECTION LOCAL DEFAULT 3 .note.ABI-tag - 4: 0000000000000298 0 SECTION LOCAL DEFAULT 4 .gnu.hash - 5: 00000000000002b8 0 SECTION LOCAL DEFAULT 5 .dynsym - 6: 0000000000000390 0 SECTION LOCAL DEFAULT 6 .dynstr - 7: 000000000000041e 0 SECTION LOCAL DEFAULT 7 .gnu.version - 8: 0000000000000430 0 SECTION LOCAL DEFAULT 8 .gnu.version_r - 9: 0000000000000460 0 SECTION LOCAL DEFAULT 9 .rela.dyn - 10: 0000000000000520 0 SECTION LOCAL DEFAULT 10 .rela.plt - 11: 0000000000000580 0 SECTION LOCAL DEFAULT 11 .init - 12: 00000000000005a0 0 SECTION LOCAL DEFAULT 12 .plt - 13: 0000000000000600 0 SECTION LOCAL DEFAULT 13 .text - 14: 00000000000007d0 0 SECTION LOCAL DEFAULT 14 .fini - 15: 00000000000007e4 0 SECTION LOCAL DEFAULT 15 .rodata - 16: 00000000000007e8 0 SECTION LOCAL DEFAULT 16 .eh_frame_hdr - 17: 0000000000000840 0 SECTION LOCAL DEFAULT 17 .eh_frame - 18: 0000000000010d98 0 SECTION LOCAL DEFAULT 18 .init_array - 19: 0000000000010da0 0 SECTION LOCAL DEFAULT 19 .fini_array - 20: 0000000000010da8 0 SECTION LOCAL DEFAULT 20 .dynamic - 21: 0000000000010f98 0 SECTION LOCAL DEFAULT 21 .got - 22: 0000000000011000 0 SECTION LOCAL DEFAULT 22 .data - 23: 0000000000011010 0 SECTION LOCAL DEFAULT 23 .bss - 24: 0000000000000000 0 SECTION LOCAL DEFAULT 24 .comment - 25: 0000000000000000 0 FILE LOCAL DEFAULT ABS Scrt1.o - 26: 0000000000000278 0 NOTYPE LOCAL DEFAULT 3 $d - 27: 0000000000000278 32 OBJECT LOCAL DEFAULT 3 __abi_tag - 28: 0000000000000680 0 NOTYPE LOCAL DEFAULT 13 $x - 29: 0000000000000854 0 NOTYPE LOCAL DEFAULT 17 $d - 30: 00000000000007e4 0 NOTYPE LOCAL DEFAULT 15 $d - 31: 0000000000000000 0 FILE LOCAL DEFAULT ABS crti.o - 32: 00000000000006b4 0 NOTYPE LOCAL DEFAULT 13 $x - 33: 00000000000006b4 20 FUNC LOCAL DEFAULT 13 call_weak_fn - 34: 0000000000000580 0 NOTYPE LOCAL DEFAULT 11 $x - 35: 00000000000007d0 0 NOTYPE LOCAL DEFAULT 14 $x - 36: 0000000000000000 0 FILE LOCAL DEFAULT ABS crtn.o - 37: 0000000000000590 0 NOTYPE LOCAL DEFAULT 11 $x - 38: 00000000000007dc 0 NOTYPE LOCAL DEFAULT 14 $x - 39: 0000000000000000 0 FILE LOCAL DEFAULT ABS functionpointer.c - 40: 00000000000007a0 0 NOTYPE LOCAL DEFAULT 13 $x - 41: 0000000000000600 0 NOTYPE LOCAL DEFAULT 13 $x - 42: 0000000000011014 0 NOTYPE LOCAL DEFAULT 23 $d - 43: 00000000000008c8 0 NOTYPE LOCAL DEFAULT 17 $d - 44: 0000000000000000 0 FILE LOCAL DEFAULT ABS crtstuff.c - 45: 00000000000006d0 0 NOTYPE LOCAL DEFAULT 13 $x - 46: 00000000000006d0 0 FUNC LOCAL DEFAULT 13 deregister_tm_clones - 47: 0000000000000700 0 FUNC LOCAL DEFAULT 13 register_tm_clones - 48: 0000000000011008 0 NOTYPE LOCAL DEFAULT 22 $d - 49: 0000000000000740 0 FUNC LOCAL DEFAULT 13 __do_global_dtors_aux - 50: 0000000000011010 1 OBJECT LOCAL DEFAULT 23 completed.0 - 51: 0000000000010da0 0 NOTYPE LOCAL DEFAULT 19 $d - 52: 0000000000010da0 0 OBJECT LOCAL DEFAULT 19 __do_global_dtors_aux_fini_array_entry - 53: 0000000000000790 0 FUNC LOCAL DEFAULT 13 frame_dummy - 54: 0000000000010d98 0 NOTYPE LOCAL DEFAULT 18 $d - 55: 0000000000010d98 0 OBJECT LOCAL DEFAULT 18 __frame_dummy_init_array_entry - 56: 0000000000000868 0 NOTYPE LOCAL DEFAULT 17 $d - 57: 0000000000011010 0 NOTYPE LOCAL DEFAULT 23 $d - 58: 0000000000000000 0 FILE LOCAL DEFAULT ABS crtstuff.c - 59: 0000000000000924 0 NOTYPE LOCAL DEFAULT 17 $d - 60: 0000000000000924 0 OBJECT LOCAL DEFAULT 17 __FRAME_END__ - 61: 0000000000000000 0 FILE LOCAL DEFAULT ABS - 62: 0000000000010da8 0 OBJECT LOCAL DEFAULT ABS _DYNAMIC - 63: 00000000000007e8 0 NOTYPE LOCAL DEFAULT 16 __GNU_EH_FRAME_HDR - 64: 0000000000010fd0 0 OBJECT LOCAL DEFAULT ABS _GLOBAL_OFFSET_TABLE_ - 65: 00000000000005a0 0 NOTYPE LOCAL DEFAULT 12 $x - 66: 0000000000000000 0 FUNC GLOBAL DEFAULT UND __libc_start_main@GLIBC_2.34 - 67: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_deregisterTMCloneTable - 68: 0000000000011000 0 NOTYPE WEAK DEFAULT 22 data_start - 69: 0000000000011010 0 NOTYPE GLOBAL DEFAULT 23 __bss_start__ - 70: 0000000000000000 0 FUNC WEAK DEFAULT UND __cxa_finalize@GLIBC_2.17 - 71: 0000000000011018 0 NOTYPE GLOBAL DEFAULT 23 _bss_end__ - 72: 0000000000011010 0 NOTYPE GLOBAL DEFAULT 22 _edata - 73: 0000000000011014 4 OBJECT GLOBAL DEFAULT 23 x - 74: 00000000000007d0 0 FUNC GLOBAL HIDDEN 14 _fini - 75: 0000000000011018 0 NOTYPE GLOBAL DEFAULT 23 __bss_end__ - 76: 0000000000011000 0 NOTYPE GLOBAL DEFAULT 22 __data_start - 77: 0000000000000000 0 NOTYPE WEAK DEFAULT UND __gmon_start__ - 78: 0000000000011008 0 OBJECT GLOBAL HIDDEN 22 __dso_handle - 79: 0000000000000000 0 FUNC GLOBAL DEFAULT UND abort@GLIBC_2.17 - 80: 00000000000007e4 4 OBJECT GLOBAL DEFAULT 15 _IO_stdin_used - 81: 00000000000007a0 16 FUNC GLOBAL DEFAULT 13 set_two - 82: 0000000000011018 0 NOTYPE GLOBAL DEFAULT 23 _end - 83: 0000000000000680 52 FUNC GLOBAL DEFAULT 13 _start - 84: 0000000000011018 0 NOTYPE GLOBAL DEFAULT 23 __end__ - 85: 00000000000007b0 16 FUNC GLOBAL DEFAULT 13 set_six - 86: 0000000000011010 0 NOTYPE GLOBAL DEFAULT 23 __bss_start - 87: 0000000000000600 68 FUNC GLOBAL DEFAULT 13 main - 88: 00000000000007c0 16 FUNC GLOBAL DEFAULT 13 set_seven - 89: 0000000000011010 0 OBJECT GLOBAL HIDDEN 22 __TMC_END__ - 90: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_registerTMCloneTable - 91: 0000000000000580 0 FUNC GLOBAL HIDDEN 11 _init diff --git a/src/test/correct/functionpointer/gcc_O2/functionpointer_gtirb.expected b/src/test/correct/functionpointer/gcc_O2/functionpointer_gtirb.expected index c88e6273d..ae0203f0d 100644 --- a/src/test/correct/functionpointer/gcc_O2/functionpointer_gtirb.expected +++ b/src/test/correct/functionpointer/gcc_O2/functionpointer_gtirb.expected @@ -3,6 +3,7 @@ var {:extern} Gamma_CF: bool; var {:extern} Gamma_NF: bool; var {:extern} Gamma_R0: bool; var {:extern} Gamma_R1: bool; +var {:extern} Gamma_R2: bool; var {:extern} Gamma_R29: bool; var {:extern} Gamma_R30: bool; var {:extern} Gamma_R31: bool; @@ -13,6 +14,7 @@ var {:extern} Gamma_stack: [bv64]bool; var {:extern} NF: bv1; var {:extern} R0: bv64; var {:extern} R1: bv64; +var {:extern} R2: bv64; var {:extern} R29: bv64; var {:extern} R30: bv64; var {:extern} R31: bv64; @@ -25,10 +27,9 @@ function {:extern} L(mem$in: [bv64]bv8, index: bv64) returns (bool) { } function {:extern} {:bvbuiltin "bvadd"} bvadd32(bv32, bv32) returns (bv32); -function {:extern} {:bvbuiltin "bvadd"} bvadd33(bv33, bv33) returns (bv33); function {:extern} {:bvbuiltin "bvadd"} bvadd64(bv64, bv64) returns (bv64); function {:extern} {:bvbuiltin "bvcomp"} bvcomp32(bv32, bv32) returns (bv1); -function {:extern} {:bvbuiltin "bvcomp"} bvcomp33(bv33, bv33) returns (bv1); +function {:extern} {:bvbuiltin "bvcomp"} bvcomp64(bv64, bv64) returns (bv1); function {:extern} {:bvbuiltin "bvnot"} bvnot1(bv1) returns (bv1); function {:extern} gamma_load64(gammaMap: [bv64]bool, index: bv64) returns (bool) { (gammaMap[bvadd64(index, 7bv64)] && (gammaMap[bvadd64(index, 6bv64)] && (gammaMap[bvadd64(index, 5bv64)] && (gammaMap[bvadd64(index, 4bv64)] && (gammaMap[bvadd64(index, 3bv64)] && (gammaMap[bvadd64(index, 2bv64)] && (gammaMap[bvadd64(index, 1bv64)] && gammaMap[index]))))))) @@ -58,17 +59,13 @@ function {:extern} memory_store64_le(memory: [bv64]bv8, index: bv64, value: bv64 memory[index := value[8:0]][bvadd64(index, 1bv64) := value[16:8]][bvadd64(index, 2bv64) := value[24:16]][bvadd64(index, 3bv64) := value[32:24]][bvadd64(index, 4bv64) := value[40:32]][bvadd64(index, 5bv64) := value[48:40]][bvadd64(index, 6bv64) := value[56:48]][bvadd64(index, 7bv64) := value[64:56]] } -function {:extern} {:bvbuiltin "sign_extend 1"} sign_extend1_32(bv32) returns (bv33); -function {:extern} {:bvbuiltin "zero_extend 1"} zero_extend1_32(bv32) returns (bv33); +function {:extern} {:bvbuiltin "sign_extend 32"} sign_extend32_32(bv32) returns (bv64); +function {:extern} {:bvbuiltin "zero_extend 32"} zero_extend32_32(bv32) returns (bv64); procedure {:extern} rely(); modifies Gamma_mem, mem; ensures (Gamma_mem == old(Gamma_mem)); ensures (mem == old(mem)); - free ensures (memory_load32_le(mem, 2020bv64) == 131073bv32); - free ensures (memory_load64_le(mem, 69016bv64) == 1936bv64); - free ensures (memory_load64_le(mem, 69024bv64) == 1856bv64); - free ensures (memory_load64_le(mem, 69616bv64) == 1536bv64); - free ensures (memory_load64_le(mem, 69640bv64) == 69640bv64); + free ensures (memory_load32_le(mem, 4196480bv64) == 131073bv32); procedure {:extern} rely_transitive(); modifies Gamma_mem, mem; @@ -86,135 +83,138 @@ procedure {:extern} rely_reflexive(); procedure {:extern} guarantee_reflexive(); modifies Gamma_mem, mem; -procedure set_six_1968(); - modifies Gamma_R0, Gamma_R1, Gamma_mem, R0, R1, mem; - free requires (memory_load32_le(mem, 2020bv64) == 131073bv32); - free requires (memory_load64_le(mem, 69016bv64) == 1936bv64); - free requires (memory_load64_le(mem, 69024bv64) == 1856bv64); - free requires (memory_load64_le(mem, 69616bv64) == 1536bv64); - free requires (memory_load64_le(mem, 69640bv64) == 69640bv64); - free ensures (memory_load32_le(mem, 2020bv64) == 131073bv32); - free ensures (memory_load64_le(mem, 69016bv64) == 1936bv64); - free ensures (memory_load64_le(mem, 69024bv64) == 1856bv64); - free ensures (memory_load64_le(mem, 69616bv64) == 1536bv64); - free ensures (memory_load64_le(mem, 69640bv64) == 69640bv64); - -implementation set_six_1968() -{ - set_six_1968__0__dX4gaI1OSUabhEuG9un0cA: - assume {:captureState "set_six_1968__0__dX4gaI1OSUabhEuG9un0cA"} true; - R0, Gamma_R0 := 69632bv64, true; - R1, Gamma_R1 := 6bv64, true; - call rely(); - assert (L(mem, bvadd64(R0, 20bv64)) ==> Gamma_R1); - mem, Gamma_mem := memory_store32_le(mem, bvadd64(R0, 20bv64), R1[32:0]), gamma_store32(Gamma_mem, bvadd64(R0, 20bv64), Gamma_R1); - assume {:captureState "1976_0"} true; - goto set_six_1968_basil_return; - set_six_1968_basil_return: - assume {:captureState "set_six_1968_basil_return"} true; - return; -} - -procedure main_1536(); - modifies CF, Gamma_CF, Gamma_NF, Gamma_R0, Gamma_R1, Gamma_R29, Gamma_R30, Gamma_R31, Gamma_VF, Gamma_ZF, Gamma_mem, Gamma_stack, NF, R0, R1, R29, R30, R31, VF, ZF, mem, stack; +procedure main(); + modifies CF, Gamma_CF, Gamma_NF, Gamma_R0, Gamma_R1, Gamma_R2, Gamma_R29, Gamma_R30, Gamma_R31, Gamma_VF, Gamma_ZF, Gamma_mem, Gamma_stack, NF, R0, R1, R2, R29, R30, R31, VF, ZF, mem, stack; requires (Gamma_R0 == true); - free requires (memory_load64_le(mem, 69632bv64) == 0bv64); - free requires (memory_load64_le(mem, 69640bv64) == 69640bv64); - free requires (memory_load32_le(mem, 2020bv64) == 131073bv32); - free requires (memory_load64_le(mem, 69016bv64) == 1936bv64); - free requires (memory_load64_le(mem, 69024bv64) == 1856bv64); - free requires (memory_load64_le(mem, 69616bv64) == 1536bv64); - free requires (memory_load64_le(mem, 69640bv64) == 69640bv64); + free requires (memory_load64_le(mem, 4325376bv64) == 0bv64); + free requires (memory_load64_le(mem, 4325384bv64) == 0bv64); + free requires (memory_load32_le(mem, 4196480bv64) == 131073bv32); free ensures (Gamma_R29 == old(Gamma_R29)); free ensures (Gamma_R31 == old(Gamma_R31)); free ensures (R29 == old(R29)); free ensures (R31 == old(R31)); - free ensures (memory_load32_le(mem, 2020bv64) == 131073bv32); - free ensures (memory_load64_le(mem, 69016bv64) == 1936bv64); - free ensures (memory_load64_le(mem, 69024bv64) == 1856bv64); - free ensures (memory_load64_le(mem, 69616bv64) == 1536bv64); - free ensures (memory_load64_le(mem, 69640bv64) == 69640bv64); + free ensures (memory_load32_le(mem, 4196480bv64) == 131073bv32); -implementation main_1536() +implementation main() { - var Cse0__5_0_0: bv64; - var Cse0__5_0_2: bv32; - var Cse0__5_1_0: bv32; - var Gamma_Cse0__5_0_0: bool; - var Gamma_Cse0__5_0_2: bool; - var Gamma_Cse0__5_1_0: bool; - var Gamma_load20: bool; - var Gamma_load21: bool; - var load20: bv64; - var load21: bv64; - main_1536__0__eOh8YVTlQnKonp~fpb5jKw: - assume {:captureState "main_1536__0__eOh8YVTlQnKonp~fpb5jKw"} true; - Cse0__5_0_0, Gamma_Cse0__5_0_0 := bvadd64(R31, 18446744073709551600bv64), Gamma_R31; - stack, Gamma_stack := memory_store64_le(stack, Cse0__5_0_0, R29), gamma_store64(Gamma_stack, Cse0__5_0_0, Gamma_R29); - assume {:captureState "1536_1"} true; - stack, Gamma_stack := memory_store64_le(stack, bvadd64(Cse0__5_0_0, 8bv64), R30), gamma_store64(Gamma_stack, bvadd64(Cse0__5_0_0, 8bv64), Gamma_R30); - assume {:captureState "1536_2"} true; - R31, Gamma_R31 := Cse0__5_0_0, Gamma_Cse0__5_0_0; + var $load3: bv64; + var $load4: bv64; + var $load5: bv64; + var $load6: bv64; + var $load7: bv64; + var Cse0__5$4$0: bv64; + var Cse0__5$4$2: bv32; + var Cse0__5$5$2: bv32; + var Gamma_$load3: bool; + var Gamma_$load4: bool; + var Gamma_$load5: bool; + var Gamma_$load6: bool; + var Gamma_$load7: bool; + var Gamma_Cse0__5$4$0: bool; + var Gamma_Cse0__5$4$2: bool; + var Gamma_Cse0__5$5$2: bool; + $main$__0__$Djx7L34DQzuSXaBFEj_bpQ: + assume {:captureState "$main$__0__$Djx7L34DQzuSXaBFEj_bpQ"} true; + Cse0__5$4$0, Gamma_Cse0__5$4$0 := bvadd64(R31, 18446744073709551600bv64), Gamma_R31; + stack, Gamma_stack := memory_store64_le(stack, Cse0__5$4$0, R29), gamma_store64(Gamma_stack, Cse0__5$4$0, Gamma_R29); + assume {:captureState "4195968$1"} true; + stack, Gamma_stack := memory_store64_le(stack, bvadd64(Cse0__5$4$0, 8bv64), R30), gamma_store64(Gamma_stack, bvadd64(Cse0__5$4$0, 8bv64), Gamma_R30); + assume {:captureState "4195968$2"} true; + R31, Gamma_R31 := Cse0__5$4$0, Gamma_Cse0__5$4$0; R29, Gamma_R29 := R31, Gamma_R31; - Cse0__5_0_2, Gamma_Cse0__5_0_2 := bvadd32(R0[32:0], 4294967295bv32), Gamma_R0; - VF, Gamma_VF := bvnot1(bvcomp33(sign_extend1_32(Cse0__5_0_2), bvadd33(sign_extend1_32(R0[32:0]), 8589934591bv33))), (Gamma_R0 && Gamma_Cse0__5_0_2); - CF, Gamma_CF := bvnot1(bvcomp33(zero_extend1_32(Cse0__5_0_2), bvadd33(zero_extend1_32(R0[32:0]), 4294967295bv33))), (Gamma_R0 && Gamma_Cse0__5_0_2); - ZF, Gamma_ZF := bvcomp32(Cse0__5_0_2, 0bv32), Gamma_Cse0__5_0_2; - NF, Gamma_NF := Cse0__5_0_2[32:31], Gamma_Cse0__5_0_2; + Cse0__5$4$2, Gamma_Cse0__5$4$2 := bvadd32(R0[32:0], 4294967295bv32), Gamma_R0; + VF, Gamma_VF := bvnot1(bvcomp64(sign_extend32_32(Cse0__5$4$2), bvadd64(sign_extend32_32(R0[32:0]), 18446744073709551615bv64))), (Gamma_R0 && Gamma_Cse0__5$4$2); + CF, Gamma_CF := bvnot1(bvcomp64(zero_extend32_32(Cse0__5$4$2), bvadd64(zero_extend32_32(R0[32:0]), 4294967295bv64))), (Gamma_R0 && Gamma_Cse0__5$4$2); + ZF, Gamma_ZF := bvcomp32(Cse0__5$4$2, 0bv32), Gamma_Cse0__5$4$2; + NF, Gamma_NF := Cse0__5$4$2[32:31], Gamma_Cse0__5$4$2; assert Gamma_ZF; - goto main_1536__0__eOh8YVTlQnKonp~fpb5jKw_goto_main_1536__4__S8383WrHT8i~O1Ieq4qHoA, main_1536__0__eOh8YVTlQnKonp~fpb5jKw_goto_main_1536__1__ca5W8ecrTdSh_xILQFKWFg; - main_1536__0__eOh8YVTlQnKonp~fpb5jKw_goto_main_1536__1__ca5W8ecrTdSh_xILQFKWFg: - assume {:captureState "main_1536__0__eOh8YVTlQnKonp~fpb5jKw_goto_main_1536__1__ca5W8ecrTdSh_xILQFKWFg"} true; - assume (!(ZF == 1bv1)); - Cse0__5_1_0, Gamma_Cse0__5_1_0 := bvadd32(R0[32:0], 4294967294bv32), Gamma_R0; - VF, Gamma_VF := bvnot1(bvcomp33(sign_extend1_32(Cse0__5_1_0), bvadd33(sign_extend1_32(R0[32:0]), 8589934590bv33))), (Gamma_R0 && Gamma_Cse0__5_1_0); - CF, Gamma_CF := bvnot1(bvcomp33(zero_extend1_32(Cse0__5_1_0), bvadd33(zero_extend1_32(R0[32:0]), 4294967294bv33))), (Gamma_R0 && Gamma_Cse0__5_1_0); - ZF, Gamma_ZF := bvcomp32(Cse0__5_1_0, 0bv32), Gamma_Cse0__5_1_0; - NF, Gamma_NF := Cse0__5_1_0[32:31], Gamma_Cse0__5_1_0; - R1, Gamma_R1 := 0bv64, true; - R0, Gamma_R0 := 0bv64, true; - R1, Gamma_R1 := bvadd64(R1, 1984bv64), Gamma_R1; - R0, Gamma_R0 := bvadd64(R0, 1952bv64), Gamma_R0; - goto main_1536__1__ca5W8ecrTdSh_xILQFKWFg; - main_1536__1__ca5W8ecrTdSh_xILQFKWFg: - assume {:captureState "main_1536__1__ca5W8ecrTdSh_xILQFKWFg"} true; + goto $main$__0__$Djx7L34DQzuSXaBFEj_bpQ_goto_$main$__4__$GghTYm6bT12tNFmqu0nIjA, $main$__0__$Djx7L34DQzuSXaBFEj_bpQ_goto_$main$__1__$fxMAJl44TWOTA8IHVD8V7Q; + $main$__1__$fxMAJl44TWOTA8IHVD8V7Q: + assume {:captureState "$main$__1__$fxMAJl44TWOTA8IHVD8V7Q"} true; + R1, Gamma_R1 := 4321280bv64, true; + call rely(); + $load6, Gamma_$load6 := memory_load64_le(mem, bvadd64(R1, 4080bv64)), (gamma_load64(Gamma_mem, bvadd64(R1, 4080bv64)) || L(mem, bvadd64(R1, 4080bv64))); + R1, Gamma_R1 := $load6, Gamma_$load6; + Cse0__5$5$2, Gamma_Cse0__5$5$2 := bvadd32(R0[32:0], 4294967294bv32), Gamma_R0; + VF, Gamma_VF := bvnot1(bvcomp64(sign_extend32_32(Cse0__5$5$2), bvadd64(sign_extend32_32(R0[32:0]), 18446744073709551614bv64))), (Gamma_R0 && Gamma_Cse0__5$5$2); + CF, Gamma_CF := bvnot1(bvcomp64(zero_extend32_32(Cse0__5$5$2), bvadd64(zero_extend32_32(R0[32:0]), 4294967294bv64))), (Gamma_R0 && Gamma_Cse0__5$5$2); + ZF, Gamma_ZF := bvcomp32(Cse0__5$5$2, 0bv32), Gamma_Cse0__5$5$2; + NF, Gamma_NF := Cse0__5$5$2[32:31], Gamma_Cse0__5$5$2; + R2, Gamma_R2 := 4321280bv64, true; + call rely(); + $load7, Gamma_$load7 := memory_load64_le(mem, bvadd64(R2, 4064bv64)), (gamma_load64(Gamma_mem, bvadd64(R2, 4064bv64)) || L(mem, bvadd64(R2, 4064bv64))); + R2, Gamma_R2 := $load7, Gamma_$load7; assert Gamma_ZF; - goto main_1536__1__ca5W8ecrTdSh_xILQFKWFg$__0, main_1536__1__ca5W8ecrTdSh_xILQFKWFg$__1; - main_1536__1__ca5W8ecrTdSh_xILQFKWFg$__1: - assume {:captureState "main_1536__1__ca5W8ecrTdSh_xILQFKWFg$__1"} true; - assume (!(!(ZF == 1bv1))); - R0, Gamma_R0 := R1, Gamma_R1; - goto main_1536__2__fEZ8GKsISKaOAJptXmofmg; - main_1536__1__ca5W8ecrTdSh_xILQFKWFg$__0: - assume {:captureState "main_1536__1__ca5W8ecrTdSh_xILQFKWFg$__0"} true; + goto $main$__1__$fxMAJl44TWOTA8IHVD8V7Q$__0, $main$__1__$fxMAJl44TWOTA8IHVD8V7Q$__1; + $main$__2__$yQ1z8A~IRoSs4MRYTbbghg: + assume {:captureState "$main$__2__$yQ1z8A~IRoSs4MRYTbbghg"} true; + R30, Gamma_R30 := 4195972bv64, true; + call set_six(); + goto $main$__3__$GW0MHC~ORUKlCdpgOcZ6zA; + $main$__3__$GW0MHC~ORUKlCdpgOcZ6zA: + assume {:captureState "$main$__3__$GW0MHC~ORUKlCdpgOcZ6zA"} true; + R0, Gamma_R0 := 0bv64, true; + $load3, Gamma_$load3 := memory_load64_le(stack, R31), gamma_load64(Gamma_stack, R31); + R29, Gamma_R29 := $load3, Gamma_$load3; + $load4, Gamma_$load4 := memory_load64_le(stack, bvadd64(R31, 8bv64)), gamma_load64(Gamma_stack, bvadd64(R31, 8bv64)); + R30, Gamma_R30 := $load4, Gamma_$load4; + R31, Gamma_R31 := bvadd64(R31, 16bv64), Gamma_R31; + goto main_basil_return; + $main$__4__$GghTYm6bT12tNFmqu0nIjA: + assume {:captureState "$main$__4__$GghTYm6bT12tNFmqu0nIjA"} true; + R0, Gamma_R0 := 4321280bv64, true; + call rely(); + $load5, Gamma_$load5 := memory_load64_le(mem, bvadd64(R0, 4072bv64)), (gamma_load64(Gamma_mem, bvadd64(R0, 4072bv64)) || L(mem, bvadd64(R0, 4072bv64))); + R0, Gamma_R0 := $load5, Gamma_$load5; + goto $main$__2__$yQ1z8A~IRoSs4MRYTbbghg; + $main$__0__$Djx7L34DQzuSXaBFEj_bpQ_goto_$main$__4__$GghTYm6bT12tNFmqu0nIjA: + assume {:captureState "$main$__0__$Djx7L34DQzuSXaBFEj_bpQ_goto_$main$__4__$GghTYm6bT12tNFmqu0nIjA"} true; + assume (ZF == 1bv1); + goto $main$__4__$GghTYm6bT12tNFmqu0nIjA; + $main$__0__$Djx7L34DQzuSXaBFEj_bpQ_goto_$main$__1__$fxMAJl44TWOTA8IHVD8V7Q: + assume {:captureState "$main$__0__$Djx7L34DQzuSXaBFEj_bpQ_goto_$main$__1__$fxMAJl44TWOTA8IHVD8V7Q"} true; assume (!(ZF == 1bv1)); - R0, Gamma_R0 := R0, Gamma_R0; - goto main_1536__2__fEZ8GKsISKaOAJptXmofmg; - main_1536__0__eOh8YVTlQnKonp~fpb5jKw_goto_main_1536__4__S8383WrHT8i~O1Ieq4qHoA: - assume {:captureState "main_1536__0__eOh8YVTlQnKonp~fpb5jKw_goto_main_1536__4__S8383WrHT8i~O1Ieq4qHoA"} true; + goto $main$__1__$fxMAJl44TWOTA8IHVD8V7Q; + $main$__1__$fxMAJl44TWOTA8IHVD8V7Q$__0: + assume {:captureState "$main$__1__$fxMAJl44TWOTA8IHVD8V7Q$__0"} true; assume (ZF == 1bv1); + R0, Gamma_R0 := R1, Gamma_R1; + goto $main$__2__$yQ1z8A~IRoSs4MRYTbbghg; + $main$__1__$fxMAJl44TWOTA8IHVD8V7Q$__1: + assume {:captureState "$main$__1__$fxMAJl44TWOTA8IHVD8V7Q$__1"} true; + assume (!(ZF == 1bv1)); + R0, Gamma_R0 := R2, Gamma_R2; + goto $main$__2__$yQ1z8A~IRoSs4MRYTbbghg; + main_basil_return: + assume {:captureState "main_basil_return"} true; + return; +} + +procedure set_six(); + modifies Gamma_R0, Gamma_R1, Gamma_mem, R0, R1, mem; + free requires (memory_load32_le(mem, 4196480bv64) == 131073bv32); + free ensures (memory_load32_le(mem, 4196480bv64) == 131073bv32); + +implementation set_six() +{ + var $load17: bv64; + var Gamma_$load17: bool; + $set_six$__0__$24sQpyZMTFejNeMkgQiWnw: + assume {:captureState "$set_six$__0__$24sQpyZMTFejNeMkgQiWnw"} true; + R0, Gamma_R0 := 4321280bv64, true; + call rely(); + $load17, Gamma_$load17 := memory_load64_le(mem, bvadd64(R0, 4048bv64)), (gamma_load64(Gamma_mem, bvadd64(R0, 4048bv64)) || L(mem, bvadd64(R0, 4048bv64))); + R0, Gamma_R0 := $load17, Gamma_$load17; + R1, Gamma_R1 := 6bv64, true; + call rely(); + assert (L(mem, R0) ==> Gamma_R1); + mem, Gamma_mem := memory_store32_le(mem, R0, R1[32:0]), gamma_store32(Gamma_mem, R0, Gamma_R1); + assume {:captureState "4196412$0"} true; R0, Gamma_R0 := 0bv64, true; - R0, Gamma_R0 := bvadd64(R0, 1968bv64), Gamma_R0; - goto main_1536__4__S8383WrHT8i~O1Ieq4qHoA; - main_1536__4__S8383WrHT8i~O1Ieq4qHoA: - assume {:captureState "main_1536__4__S8383WrHT8i~O1Ieq4qHoA"} true; - goto main_1536__2__fEZ8GKsISKaOAJptXmofmg; - main_1536__2__fEZ8GKsISKaOAJptXmofmg: - assume {:captureState "main_1536__2__fEZ8GKsISKaOAJptXmofmg"} true; - R30, Gamma_R30 := 1580bv64, true; - call set_six_1968(); - goto main_1536__3__F~EXshFNSrygGBX5dfkWLg; - main_1536__3__F~EXshFNSrygGBX5dfkWLg: - assume {:captureState "main_1536__3__F~EXshFNSrygGBX5dfkWLg"} true; - R0, Gamma_R0 := 0bv64, true; - load20, Gamma_load20 := memory_load64_le(stack, R31), gamma_load64(Gamma_stack, R31); - R29, Gamma_R29 := load20, Gamma_load20; - load21, Gamma_load21 := memory_load64_le(stack, bvadd64(R31, 8bv64)), gamma_load64(Gamma_stack, bvadd64(R31, 8bv64)); - R30, Gamma_R30 := load21, Gamma_load21; - R31, Gamma_R31 := bvadd64(R31, 16bv64), Gamma_R31; - goto main_1536_basil_return; - main_1536_basil_return: - assume {:captureState "main_1536_basil_return"} true; + R1, Gamma_R1 := 0bv64, true; + goto set_six_basil_return; + set_six_basil_return: + assume {:captureState "set_six_basil_return"} true; return; } diff --git a/src/test/correct/functionpointer/gcc_pic/functionpointer.gts b/src/test/correct/functionpointer/gcc_pic/functionpointer.gts deleted file mode 100644 index 1389c62e0..000000000 Binary files a/src/test/correct/functionpointer/gcc_pic/functionpointer.gts and /dev/null differ diff --git a/src/test/correct/functionpointer/gcc_pic/functionpointer.md5sum b/src/test/correct/functionpointer/gcc_pic/functionpointer.md5sum new file mode 100644 index 000000000..7f1bec408 --- /dev/null +++ b/src/test/correct/functionpointer/gcc_pic/functionpointer.md5sum @@ -0,0 +1,3 @@ +fa4e1eeb3e808a9ef6dc2cd1f5e76714 correct/functionpointer/gcc_pic/a.out +b763d244a0125710048300c0332de1dd correct/functionpointer/gcc_pic/functionpointer.relf +4757c171d42be524f39c3cba727aedbf correct/functionpointer/gcc_pic/functionpointer.gts diff --git a/src/test/correct/functionpointer/gcc_pic/functionpointer.relf b/src/test/correct/functionpointer/gcc_pic/functionpointer.relf deleted file mode 100644 index b9ea2435a..000000000 --- a/src/test/correct/functionpointer/gcc_pic/functionpointer.relf +++ /dev/null @@ -1,128 +0,0 @@ - -Relocation section '.rela.dyn' at offset 0x460 contains 12 entries: - Offset Info Type Symbol's Value Symbol's Name + Addend -0000000000010d78 0000000000000403 R_AARCH64_RELATIVE 790 -0000000000010d80 0000000000000403 R_AARCH64_RELATIVE 740 -0000000000010fc8 0000000000000403 R_AARCH64_RELATIVE 11014 -0000000000010fd8 0000000000000403 R_AARCH64_RELATIVE 794 -0000000000010fe0 0000000000000403 R_AARCH64_RELATIVE 7ac -0000000000010fe8 0000000000000403 R_AARCH64_RELATIVE 7dc -0000000000010ff0 0000000000000403 R_AARCH64_RELATIVE 7c4 -0000000000011008 0000000000000403 R_AARCH64_RELATIVE 11008 -0000000000010fb8 0000000400000401 R_AARCH64_GLOB_DAT 0000000000000000 _ITM_deregisterTMCloneTable + 0 -0000000000010fc0 0000000500000401 R_AARCH64_GLOB_DAT 0000000000000000 __cxa_finalize@GLIBC_2.17 + 0 -0000000000010fd0 0000000600000401 R_AARCH64_GLOB_DAT 0000000000000000 __gmon_start__ + 0 -0000000000010ff8 0000000800000401 R_AARCH64_GLOB_DAT 0000000000000000 _ITM_registerTMCloneTable + 0 - -Relocation section '.rela.plt' at offset 0x580 contains 4 entries: - Offset Info Type Symbol's Value Symbol's Name + Addend -0000000000010f90 0000000300000402 R_AARCH64_JUMP_SLOT 0000000000000000 __libc_start_main@GLIBC_2.34 + 0 -0000000000010f98 0000000500000402 R_AARCH64_JUMP_SLOT 0000000000000000 __cxa_finalize@GLIBC_2.17 + 0 -0000000000010fa0 0000000600000402 R_AARCH64_JUMP_SLOT 0000000000000000 __gmon_start__ + 0 -0000000000010fa8 0000000700000402 R_AARCH64_JUMP_SLOT 0000000000000000 abort@GLIBC_2.17 + 0 - -Symbol table '.dynsym' contains 9 entries: - Num: Value Size Type Bind Vis Ndx Name - 0: 0000000000000000 0 NOTYPE LOCAL DEFAULT UND - 1: 00000000000005e0 0 SECTION LOCAL DEFAULT 11 .init - 2: 0000000000011000 0 SECTION LOCAL DEFAULT 22 .data - 3: 0000000000000000 0 FUNC GLOBAL DEFAULT UND __libc_start_main@GLIBC_2.34 (2) - 4: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_deregisterTMCloneTable - 5: 0000000000000000 0 FUNC WEAK DEFAULT UND __cxa_finalize@GLIBC_2.17 (3) - 6: 0000000000000000 0 NOTYPE WEAK DEFAULT UND __gmon_start__ - 7: 0000000000000000 0 FUNC GLOBAL DEFAULT UND abort@GLIBC_2.17 (3) - 8: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_registerTMCloneTable - -Symbol table '.symtab' contains 91 entries: - Num: Value Size Type Bind Vis Ndx Name - 0: 0000000000000000 0 NOTYPE LOCAL DEFAULT UND - 1: 0000000000000238 0 SECTION LOCAL DEFAULT 1 .interp - 2: 0000000000000254 0 SECTION LOCAL DEFAULT 2 .note.gnu.build-id - 3: 0000000000000278 0 SECTION LOCAL DEFAULT 3 .note.ABI-tag - 4: 0000000000000298 0 SECTION LOCAL DEFAULT 4 .gnu.hash - 5: 00000000000002b8 0 SECTION LOCAL DEFAULT 5 .dynsym - 6: 0000000000000390 0 SECTION LOCAL DEFAULT 6 .dynstr - 7: 000000000000041e 0 SECTION LOCAL DEFAULT 7 .gnu.version - 8: 0000000000000430 0 SECTION LOCAL DEFAULT 8 .gnu.version_r - 9: 0000000000000460 0 SECTION LOCAL DEFAULT 9 .rela.dyn - 10: 0000000000000580 0 SECTION LOCAL DEFAULT 10 .rela.plt - 11: 00000000000005e0 0 SECTION LOCAL DEFAULT 11 .init - 12: 0000000000000600 0 SECTION LOCAL DEFAULT 12 .plt - 13: 0000000000000680 0 SECTION LOCAL DEFAULT 13 .text - 14: 0000000000000870 0 SECTION LOCAL DEFAULT 14 .fini - 15: 0000000000000884 0 SECTION LOCAL DEFAULT 15 .rodata - 16: 0000000000000888 0 SECTION LOCAL DEFAULT 16 .eh_frame_hdr - 17: 00000000000008e0 0 SECTION LOCAL DEFAULT 17 .eh_frame - 18: 0000000000010d78 0 SECTION LOCAL DEFAULT 18 .init_array - 19: 0000000000010d80 0 SECTION LOCAL DEFAULT 19 .fini_array - 20: 0000000000010d88 0 SECTION LOCAL DEFAULT 20 .dynamic - 21: 0000000000010f78 0 SECTION LOCAL DEFAULT 21 .got - 22: 0000000000011000 0 SECTION LOCAL DEFAULT 22 .data - 23: 0000000000011010 0 SECTION LOCAL DEFAULT 23 .bss - 24: 0000000000000000 0 SECTION LOCAL DEFAULT 24 .comment - 25: 0000000000000000 0 FILE LOCAL DEFAULT ABS Scrt1.o - 26: 0000000000000278 0 NOTYPE LOCAL DEFAULT 3 $d - 27: 0000000000000278 32 OBJECT LOCAL DEFAULT 3 __abi_tag - 28: 0000000000000680 0 NOTYPE LOCAL DEFAULT 13 $x - 29: 00000000000008f4 0 NOTYPE LOCAL DEFAULT 17 $d - 30: 0000000000000884 0 NOTYPE LOCAL DEFAULT 15 $d - 31: 0000000000000000 0 FILE LOCAL DEFAULT ABS crti.o - 32: 00000000000006b4 0 NOTYPE LOCAL DEFAULT 13 $x - 33: 00000000000006b4 20 FUNC LOCAL DEFAULT 13 call_weak_fn - 34: 00000000000005e0 0 NOTYPE LOCAL DEFAULT 11 $x - 35: 0000000000000870 0 NOTYPE LOCAL DEFAULT 14 $x - 36: 0000000000000000 0 FILE LOCAL DEFAULT ABS crtn.o - 37: 00000000000005f0 0 NOTYPE LOCAL DEFAULT 11 $x - 38: 000000000000087c 0 NOTYPE LOCAL DEFAULT 14 $x - 39: 0000000000000000 0 FILE LOCAL DEFAULT ABS crtstuff.c - 40: 00000000000006d0 0 NOTYPE LOCAL DEFAULT 13 $x - 41: 00000000000006d0 0 FUNC LOCAL DEFAULT 13 deregister_tm_clones - 42: 0000000000000700 0 FUNC LOCAL DEFAULT 13 register_tm_clones - 43: 0000000000011008 0 NOTYPE LOCAL DEFAULT 22 $d - 44: 0000000000000740 0 FUNC LOCAL DEFAULT 13 __do_global_dtors_aux - 45: 0000000000011010 1 OBJECT LOCAL DEFAULT 23 completed.0 - 46: 0000000000010d80 0 NOTYPE LOCAL DEFAULT 19 $d - 47: 0000000000010d80 0 OBJECT LOCAL DEFAULT 19 __do_global_dtors_aux_fini_array_entry - 48: 0000000000000790 0 FUNC LOCAL DEFAULT 13 frame_dummy - 49: 0000000000010d78 0 NOTYPE LOCAL DEFAULT 18 $d - 50: 0000000000010d78 0 OBJECT LOCAL DEFAULT 18 __frame_dummy_init_array_entry - 51: 0000000000000908 0 NOTYPE LOCAL DEFAULT 17 $d - 52: 0000000000011010 0 NOTYPE LOCAL DEFAULT 23 $d - 53: 0000000000000000 0 FILE LOCAL DEFAULT ABS functionpointer.c - 54: 0000000000011014 0 NOTYPE LOCAL DEFAULT 23 $d - 55: 0000000000000794 0 NOTYPE LOCAL DEFAULT 13 $x - 56: 0000000000000968 0 NOTYPE LOCAL DEFAULT 17 $d - 57: 0000000000000000 0 FILE LOCAL DEFAULT ABS crtstuff.c - 58: 00000000000009c4 0 NOTYPE LOCAL DEFAULT 17 $d - 59: 00000000000009c4 0 OBJECT LOCAL DEFAULT 17 __FRAME_END__ - 60: 0000000000000000 0 FILE LOCAL DEFAULT ABS - 61: 0000000000010d88 0 OBJECT LOCAL DEFAULT ABS _DYNAMIC - 62: 0000000000000888 0 NOTYPE LOCAL DEFAULT 16 __GNU_EH_FRAME_HDR - 63: 0000000000010fb0 0 OBJECT LOCAL DEFAULT ABS _GLOBAL_OFFSET_TABLE_ - 64: 0000000000000600 0 NOTYPE LOCAL DEFAULT 12 $x - 65: 0000000000000000 0 FUNC GLOBAL DEFAULT UND __libc_start_main@GLIBC_2.34 - 66: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_deregisterTMCloneTable - 67: 0000000000011000 0 NOTYPE WEAK DEFAULT 22 data_start - 68: 0000000000011010 0 NOTYPE GLOBAL DEFAULT 23 __bss_start__ - 69: 0000000000000000 0 FUNC WEAK DEFAULT UND __cxa_finalize@GLIBC_2.17 - 70: 0000000000011018 0 NOTYPE GLOBAL DEFAULT 23 _bss_end__ - 71: 0000000000011010 0 NOTYPE GLOBAL DEFAULT 22 _edata - 72: 0000000000011014 4 OBJECT GLOBAL DEFAULT 23 x - 73: 0000000000000870 0 FUNC GLOBAL HIDDEN 14 _fini - 74: 0000000000011018 0 NOTYPE GLOBAL DEFAULT 23 __bss_end__ - 75: 0000000000011000 0 NOTYPE GLOBAL DEFAULT 22 __data_start - 76: 0000000000000000 0 NOTYPE WEAK DEFAULT UND __gmon_start__ - 77: 0000000000011008 0 OBJECT GLOBAL HIDDEN 22 __dso_handle - 78: 0000000000000000 0 FUNC GLOBAL DEFAULT UND abort@GLIBC_2.17 - 79: 0000000000000884 4 OBJECT GLOBAL DEFAULT 15 _IO_stdin_used - 80: 0000000000000794 24 FUNC GLOBAL DEFAULT 13 set_two - 81: 0000000000011018 0 NOTYPE GLOBAL DEFAULT 23 _end - 82: 0000000000000680 52 FUNC GLOBAL DEFAULT 13 _start - 83: 0000000000011018 0 NOTYPE GLOBAL DEFAULT 23 __end__ - 84: 00000000000007ac 24 FUNC GLOBAL DEFAULT 13 set_six - 85: 0000000000011010 0 NOTYPE GLOBAL DEFAULT 23 __bss_start - 86: 00000000000007dc 148 FUNC GLOBAL DEFAULT 13 main - 87: 00000000000007c4 24 FUNC GLOBAL DEFAULT 13 set_seven - 88: 0000000000011010 0 OBJECT GLOBAL HIDDEN 22 __TMC_END__ - 89: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_registerTMCloneTable - 90: 00000000000005e0 0 FUNC GLOBAL HIDDEN 11 _init diff --git a/src/test/correct/functionpointer/gcc_pic/functionpointer_gtirb.expected b/src/test/correct/functionpointer/gcc_pic/functionpointer_gtirb.expected index 268ceefaf..f49930806 100644 --- a/src/test/correct/functionpointer/gcc_pic/functionpointer_gtirb.expected +++ b/src/test/correct/functionpointer/gcc_pic/functionpointer_gtirb.expected @@ -25,15 +25,10 @@ function {:extern} L(mem$in: [bv64]bv8, index: bv64) returns (bool) { } function {:extern} {:bvbuiltin "bvadd"} bvadd32(bv32, bv32) returns (bv32); -function {:extern} {:bvbuiltin "bvadd"} bvadd33(bv33, bv33) returns (bv33); function {:extern} {:bvbuiltin "bvadd"} bvadd64(bv64, bv64) returns (bv64); function {:extern} {:bvbuiltin "bvcomp"} bvcomp32(bv32, bv32) returns (bv1); -function {:extern} {:bvbuiltin "bvcomp"} bvcomp33(bv33, bv33) returns (bv1); +function {:extern} {:bvbuiltin "bvcomp"} bvcomp64(bv64, bv64) returns (bv1); function {:extern} {:bvbuiltin "bvnot"} bvnot1(bv1) returns (bv1); -function {:extern} gamma_load32(gammaMap: [bv64]bool, index: bv64) returns (bool) { - (gammaMap[bvadd64(index, 3bv64)] && (gammaMap[bvadd64(index, 2bv64)] && (gammaMap[bvadd64(index, 1bv64)] && gammaMap[index]))) -} - function {:extern} gamma_load64(gammaMap: [bv64]bool, index: bv64) returns (bool) { (gammaMap[bvadd64(index, 7bv64)] && (gammaMap[bvadd64(index, 6bv64)] && (gammaMap[bvadd64(index, 5bv64)] && (gammaMap[bvadd64(index, 4bv64)] && (gammaMap[bvadd64(index, 3bv64)] && (gammaMap[bvadd64(index, 2bv64)] && (gammaMap[bvadd64(index, 1bv64)] && gammaMap[index]))))))) } @@ -62,22 +57,13 @@ function {:extern} memory_store64_le(memory: [bv64]bv8, index: bv64, value: bv64 memory[index := value[8:0]][bvadd64(index, 1bv64) := value[16:8]][bvadd64(index, 2bv64) := value[24:16]][bvadd64(index, 3bv64) := value[32:24]][bvadd64(index, 4bv64) := value[40:32]][bvadd64(index, 5bv64) := value[48:40]][bvadd64(index, 6bv64) := value[56:48]][bvadd64(index, 7bv64) := value[64:56]] } -function {:extern} {:bvbuiltin "sign_extend 1"} sign_extend1_32(bv32) returns (bv33); -function {:extern} {:bvbuiltin "zero_extend 1"} zero_extend1_32(bv32) returns (bv33); +function {:extern} {:bvbuiltin "sign_extend 32"} sign_extend32_32(bv32) returns (bv64); function {:extern} {:bvbuiltin "zero_extend 32"} zero_extend32_32(bv32) returns (bv64); procedure {:extern} rely(); modifies Gamma_mem, mem; ensures (Gamma_mem == old(Gamma_mem)); ensures (mem == old(mem)); - free ensures (memory_load32_le(mem, 2180bv64) == 131073bv32); - free ensures (memory_load64_le(mem, 68984bv64) == 1936bv64); - free ensures (memory_load64_le(mem, 68992bv64) == 1856bv64); - free ensures (memory_load64_le(mem, 69576bv64) == 69652bv64); - free ensures (memory_load64_le(mem, 69592bv64) == 1940bv64); - free ensures (memory_load64_le(mem, 69600bv64) == 1964bv64); - free ensures (memory_load64_le(mem, 69608bv64) == 2012bv64); - free ensures (memory_load64_le(mem, 69616bv64) == 1988bv64); - free ensures (memory_load64_le(mem, 69640bv64) == 69640bv64); + free ensures (memory_load32_le(mem, 4196480bv64) == 131073bv32); procedure {:extern} rely_transitive(); modifies Gamma_mem, mem; @@ -95,350 +81,211 @@ procedure {:extern} rely_reflexive(); procedure {:extern} guarantee_reflexive(); modifies Gamma_mem, mem; -procedure set_seven_1988(); - modifies Gamma_R0, Gamma_R1, Gamma_mem, R0, R1, mem; - free requires (memory_load32_le(mem, 2180bv64) == 131073bv32); - free requires (memory_load64_le(mem, 68984bv64) == 1936bv64); - free requires (memory_load64_le(mem, 68992bv64) == 1856bv64); - free requires (memory_load64_le(mem, 69576bv64) == 69652bv64); - free requires (memory_load64_le(mem, 69592bv64) == 1940bv64); - free requires (memory_load64_le(mem, 69600bv64) == 1964bv64); - free requires (memory_load64_le(mem, 69608bv64) == 2012bv64); - free requires (memory_load64_le(mem, 69616bv64) == 1988bv64); - free requires (memory_load64_le(mem, 69640bv64) == 69640bv64); - free ensures (memory_load32_le(mem, 2180bv64) == 131073bv32); - free ensures (memory_load64_le(mem, 68984bv64) == 1936bv64); - free ensures (memory_load64_le(mem, 68992bv64) == 1856bv64); - free ensures (memory_load64_le(mem, 69576bv64) == 69652bv64); - free ensures (memory_load64_le(mem, 69592bv64) == 1940bv64); - free ensures (memory_load64_le(mem, 69600bv64) == 1964bv64); - free ensures (memory_load64_le(mem, 69608bv64) == 2012bv64); - free ensures (memory_load64_le(mem, 69616bv64) == 1988bv64); - free ensures (memory_load64_le(mem, 69640bv64) == 69640bv64); - -implementation set_seven_1988() -{ - var Gamma_load13: bool; - var load13: bv64; - set_seven_1988__0__L4yUagLBRvmbr9rJ4OG7AA: - assume {:captureState "set_seven_1988__0__L4yUagLBRvmbr9rJ4OG7AA"} true; - R0, Gamma_R0 := 65536bv64, true; - call rely(); - load13, Gamma_load13 := memory_load64_le(mem, bvadd64(R0, 4040bv64)), (gamma_load64(Gamma_mem, bvadd64(R0, 4040bv64)) || L(mem, bvadd64(R0, 4040bv64))); - R0, Gamma_R0 := load13, Gamma_load13; - R1, Gamma_R1 := 7bv64, true; - call rely(); - assert (L(mem, R0) ==> Gamma_R1); - mem, Gamma_mem := memory_store32_le(mem, R0, R1[32:0]), gamma_store32(Gamma_mem, R0, Gamma_R1); - assume {:captureState "2000_0"} true; - goto set_seven_1988_basil_return; - set_seven_1988_basil_return: - assume {:captureState "set_seven_1988_basil_return"} true; - return; -} - -procedure main_2012(); +procedure main(); modifies CF, Gamma_CF, Gamma_NF, Gamma_R0, Gamma_R1, Gamma_R29, Gamma_R30, Gamma_R31, Gamma_VF, Gamma_ZF, Gamma_mem, Gamma_stack, NF, R0, R1, R29, R30, R31, VF, ZF, mem, stack; requires (Gamma_R0 == true); - free requires (memory_load64_le(mem, 69632bv64) == 0bv64); - free requires (memory_load64_le(mem, 69640bv64) == 69640bv64); - free requires (memory_load32_le(mem, 2180bv64) == 131073bv32); - free requires (memory_load64_le(mem, 68984bv64) == 1936bv64); - free requires (memory_load64_le(mem, 68992bv64) == 1856bv64); - free requires (memory_load64_le(mem, 69576bv64) == 69652bv64); - free requires (memory_load64_le(mem, 69592bv64) == 1940bv64); - free requires (memory_load64_le(mem, 69600bv64) == 1964bv64); - free requires (memory_load64_le(mem, 69608bv64) == 2012bv64); - free requires (memory_load64_le(mem, 69616bv64) == 1988bv64); - free requires (memory_load64_le(mem, 69640bv64) == 69640bv64); + free requires (memory_load64_le(mem, 4325376bv64) == 0bv64); + free requires (memory_load64_le(mem, 4325384bv64) == 0bv64); + free requires (memory_load32_le(mem, 4196480bv64) == 131073bv32); free ensures (Gamma_R29 == old(Gamma_R29)); free ensures (Gamma_R31 == old(Gamma_R31)); free ensures (R29 == old(R29)); free ensures (R31 == old(R31)); - free ensures (memory_load32_le(mem, 2180bv64) == 131073bv32); - free ensures (memory_load64_le(mem, 68984bv64) == 1936bv64); - free ensures (memory_load64_le(mem, 68992bv64) == 1856bv64); - free ensures (memory_load64_le(mem, 69576bv64) == 69652bv64); - free ensures (memory_load64_le(mem, 69592bv64) == 1940bv64); - free ensures (memory_load64_le(mem, 69600bv64) == 1964bv64); - free ensures (memory_load64_le(mem, 69608bv64) == 2012bv64); - free ensures (memory_load64_le(mem, 69616bv64) == 1988bv64); - free ensures (memory_load64_le(mem, 69640bv64) == 69640bv64); + free ensures (memory_load32_le(mem, 4196480bv64) == 131073bv32); -implementation main_2012() +implementation main() { - var Cse0__5_10_0: bv64; - var Cse0__5_10_4: bv32; - var Cse0__5_2_1: bv32; - var Cse0__5_7_1: bv32; - var Cse0__5_8_1: bv32; - var Gamma_Cse0__5_10_0: bool; - var Gamma_Cse0__5_10_4: bool; - var Gamma_Cse0__5_2_1: bool; - var Gamma_Cse0__5_7_1: bool; - var Gamma_Cse0__5_8_1: bool; - var Gamma_load15: bool; - var Gamma_load16: bool; - var Gamma_load17: bool; - var Gamma_load18: bool; - var Gamma_load19: bool; - var Gamma_load20: bool; - var Gamma_load21: bool; - var Gamma_load22: bool; - var Gamma_load23: bool; - var Gamma_load24: bool; - var Gamma_load25: bool; - var load15: bv64; - var load16: bv64; - var load17: bv32; - var load18: bv64; - var load19: bv64; - var load20: bv64; - var load21: bv32; - var load22: bv32; - var load23: bv64; - var load24: bv64; - var load25: bv32; - main_2012__0__mSqeYLPTTSeWCfH6eJwJtA: - assume {:captureState "main_2012__0__mSqeYLPTTSeWCfH6eJwJtA"} true; - Cse0__5_10_0, Gamma_Cse0__5_10_0 := bvadd64(R31, 18446744073709551568bv64), Gamma_R31; - stack, Gamma_stack := memory_store64_le(stack, Cse0__5_10_0, R29), gamma_store64(Gamma_stack, Cse0__5_10_0, Gamma_R29); - assume {:captureState "2012_1"} true; - stack, Gamma_stack := memory_store64_le(stack, bvadd64(Cse0__5_10_0, 8bv64), R30), gamma_store64(Gamma_stack, bvadd64(Cse0__5_10_0, 8bv64), Gamma_R30); - assume {:captureState "2012_2"} true; - R31, Gamma_R31 := Cse0__5_10_0, Gamma_Cse0__5_10_0; + var $load5: bv64; + var $load6: bv64; + var $load7: bv64; + var $load8: bv64; + var $load9: bv64; + var Cse0__5$1$0: bv32; + var Cse0__5$5$0: bv64; + var Cse0__5$5$2: bv32; + var Gamma_$load5: bool; + var Gamma_$load6: bool; + var Gamma_$load7: bool; + var Gamma_$load8: bool; + var Gamma_$load9: bool; + var Gamma_Cse0__5$1$0: bool; + var Gamma_Cse0__5$5$0: bool; + var Gamma_Cse0__5$5$2: bool; + $main$__0__$fxMAJl44TWOTA8IHVD8V7Q: + assume {:captureState "$main$__0__$fxMAJl44TWOTA8IHVD8V7Q"} true; + Cse0__5$5$0, Gamma_Cse0__5$5$0 := bvadd64(R31, 18446744073709551600bv64), Gamma_R31; + stack, Gamma_stack := memory_store64_le(stack, Cse0__5$5$0, R29), gamma_store64(Gamma_stack, Cse0__5$5$0, Gamma_R29); + assume {:captureState "4195968$1"} true; + stack, Gamma_stack := memory_store64_le(stack, bvadd64(Cse0__5$5$0, 8bv64), R30), gamma_store64(Gamma_stack, bvadd64(Cse0__5$5$0, 8bv64), Gamma_R30); + assume {:captureState "4195968$2"} true; + R31, Gamma_R31 := Cse0__5$5$0, Gamma_Cse0__5$5$0; R29, Gamma_R29 := R31, Gamma_R31; - stack, Gamma_stack := memory_store32_le(stack, bvadd64(R31, 28bv64), R0[32:0]), gamma_store32(Gamma_stack, bvadd64(R31, 28bv64), Gamma_R0); - assume {:captureState "2020_0"} true; - load25, Gamma_load25 := memory_load32_le(stack, bvadd64(R31, 28bv64)), gamma_load32(Gamma_stack, bvadd64(R31, 28bv64)); - R0, Gamma_R0 := zero_extend32_32(load25), Gamma_load25; - Cse0__5_10_4, Gamma_Cse0__5_10_4 := bvadd32(R0[32:0], 4294967294bv32), Gamma_R0; - VF, Gamma_VF := bvnot1(bvcomp33(sign_extend1_32(Cse0__5_10_4), bvadd33(sign_extend1_32(R0[32:0]), 8589934590bv33))), (Gamma_R0 && Gamma_Cse0__5_10_4); - CF, Gamma_CF := bvnot1(bvcomp33(zero_extend1_32(Cse0__5_10_4), bvadd33(zero_extend1_32(R0[32:0]), 4294967294bv33))), (Gamma_R0 && Gamma_Cse0__5_10_4); - ZF, Gamma_ZF := bvcomp32(Cse0__5_10_4, 0bv32), Gamma_Cse0__5_10_4; - NF, Gamma_NF := Cse0__5_10_4[32:31], Gamma_Cse0__5_10_4; + Cse0__5$5$2, Gamma_Cse0__5$5$2 := bvadd32(R0[32:0], 4294967295bv32), Gamma_R0; + VF, Gamma_VF := bvnot1(bvcomp64(sign_extend32_32(Cse0__5$5$2), bvadd64(sign_extend32_32(R0[32:0]), 18446744073709551615bv64))), (Gamma_R0 && Gamma_Cse0__5$5$2); + CF, Gamma_CF := bvnot1(bvcomp64(zero_extend32_32(Cse0__5$5$2), bvadd64(zero_extend32_32(R0[32:0]), 4294967295bv64))), (Gamma_R0 && Gamma_Cse0__5$5$2); + ZF, Gamma_ZF := bvcomp32(Cse0__5$5$2, 0bv32), Gamma_Cse0__5$5$2; + NF, Gamma_NF := Cse0__5$5$2[32:31], Gamma_Cse0__5$5$2; assert Gamma_ZF; - goto main_2012__0__mSqeYLPTTSeWCfH6eJwJtA_goto_main_2012__7__CM1tpRQfSBKhPNKoMwfCqQ, main_2012__0__mSqeYLPTTSeWCfH6eJwJtA_goto_main_2012__1__Itcc9ikmRriat4P2PfBY9Q; - main_2012__0__mSqeYLPTTSeWCfH6eJwJtA_goto_main_2012__1__Itcc9ikmRriat4P2PfBY9Q: - assume {:captureState "main_2012__0__mSqeYLPTTSeWCfH6eJwJtA_goto_main_2012__1__Itcc9ikmRriat4P2PfBY9Q"} true; - assume (!(ZF == 1bv1)); - load22, Gamma_load22 := memory_load32_le(stack, bvadd64(R31, 28bv64)), gamma_load32(Gamma_stack, bvadd64(R31, 28bv64)); - R0, Gamma_R0 := zero_extend32_32(load22), Gamma_load22; - Cse0__5_8_1, Gamma_Cse0__5_8_1 := bvadd32(R0[32:0], 4294967294bv32), Gamma_R0; - VF, Gamma_VF := bvnot1(bvcomp33(sign_extend1_32(Cse0__5_8_1), bvadd33(sign_extend1_32(R0[32:0]), 8589934590bv33))), (Gamma_R0 && Gamma_Cse0__5_8_1); - CF, Gamma_CF := bvnot1(bvcomp33(zero_extend1_32(Cse0__5_8_1), bvadd33(zero_extend1_32(R0[32:0]), 4294967294bv33))), (Gamma_R0 && Gamma_Cse0__5_8_1); - ZF, Gamma_ZF := bvcomp32(Cse0__5_8_1, 0bv32), Gamma_Cse0__5_8_1; - NF, Gamma_NF := Cse0__5_8_1[32:31], Gamma_Cse0__5_8_1; - goto main_2012__1__Itcc9ikmRriat4P2PfBY9Q; - main_2012__1__Itcc9ikmRriat4P2PfBY9Q: - assume {:captureState "main_2012__1__Itcc9ikmRriat4P2PfBY9Q"} true; - assert ((Gamma_NF && Gamma_VF) && Gamma_ZF); - goto main_2012__1__Itcc9ikmRriat4P2PfBY9Q_goto_main_2012__8__sD4BTrlRTieCvvugZUYF7A, main_2012__1__Itcc9ikmRriat4P2PfBY9Q_goto_main_2012__2__1AJ~HowZR3iJDHcHLtAuzQ; - main_2012__1__Itcc9ikmRriat4P2PfBY9Q_goto_main_2012__2__1AJ~HowZR3iJDHcHLtAuzQ: - assume {:captureState "main_2012__1__Itcc9ikmRriat4P2PfBY9Q_goto_main_2012__2__1AJ~HowZR3iJDHcHLtAuzQ"} true; - assume (!((NF == VF) && (ZF == 0bv1))); - load17, Gamma_load17 := memory_load32_le(stack, bvadd64(R31, 28bv64)), gamma_load32(Gamma_stack, bvadd64(R31, 28bv64)); - R0, Gamma_R0 := zero_extend32_32(load17), Gamma_load17; - Cse0__5_2_1, Gamma_Cse0__5_2_1 := bvadd32(R0[32:0], 0bv32), Gamma_R0; - VF, Gamma_VF := bvnot1(bvcomp32(Cse0__5_2_1, Cse0__5_2_1)), Gamma_Cse0__5_2_1; - CF, Gamma_CF := bvnot1(bvcomp33(zero_extend1_32(Cse0__5_2_1), bvadd33(zero_extend1_32(R0[32:0]), 4294967296bv33))), (Gamma_R0 && Gamma_Cse0__5_2_1); - ZF, Gamma_ZF := bvcomp32(Cse0__5_2_1, 0bv32), Gamma_Cse0__5_2_1; - NF, Gamma_NF := Cse0__5_2_1[32:31], Gamma_Cse0__5_2_1; - goto main_2012__2__1AJ~HowZR3iJDHcHLtAuzQ; - main_2012__2__1AJ~HowZR3iJDHcHLtAuzQ: - assume {:captureState "main_2012__2__1AJ~HowZR3iJDHcHLtAuzQ"} true; + goto $main$__0__$fxMAJl44TWOTA8IHVD8V7Q_goto_$main$__6__$rIlbG4jGSTydaFqMhxCKWw, $main$__0__$fxMAJl44TWOTA8IHVD8V7Q_goto_$main$__1__$yQ1z8A~IRoSs4MRYTbbghg; + $main$__1__$yQ1z8A~IRoSs4MRYTbbghg: + assume {:captureState "$main$__1__$yQ1z8A~IRoSs4MRYTbbghg"} true; + Cse0__5$1$0, Gamma_Cse0__5$1$0 := bvadd32(R0[32:0], 4294967294bv32), Gamma_R0; + VF, Gamma_VF := bvnot1(bvcomp64(sign_extend32_32(Cse0__5$1$0), bvadd64(sign_extend32_32(R0[32:0]), 18446744073709551614bv64))), (Gamma_R0 && Gamma_Cse0__5$1$0); + CF, Gamma_CF := bvnot1(bvcomp64(zero_extend32_32(Cse0__5$1$0), bvadd64(zero_extend32_32(R0[32:0]), 4294967294bv64))), (Gamma_R0 && Gamma_Cse0__5$1$0); + ZF, Gamma_ZF := bvcomp32(Cse0__5$1$0, 0bv32), Gamma_Cse0__5$1$0; + NF, Gamma_NF := Cse0__5$1$0[32:31], Gamma_Cse0__5$1$0; + R0, Gamma_R0 := 4321280bv64, true; assert Gamma_ZF; - goto main_2012__2__1AJ~HowZR3iJDHcHLtAuzQ_goto_main_2012__5__cPLOwypmRFeVmHCrCFAc_g, main_2012__2__1AJ~HowZR3iJDHcHLtAuzQ_goto_main_2012__3__09_lQb5MT_SJaYe07Vmc_g; - main_2012__2__1AJ~HowZR3iJDHcHLtAuzQ_goto_main_2012__3__09_lQb5MT_SJaYe07Vmc_g: - assume {:captureState "main_2012__2__1AJ~HowZR3iJDHcHLtAuzQ_goto_main_2012__3__09_lQb5MT_SJaYe07Vmc_g"} true; - assume (!(ZF == 1bv1)); - load21, Gamma_load21 := memory_load32_le(stack, bvadd64(R31, 28bv64)), gamma_load32(Gamma_stack, bvadd64(R31, 28bv64)); - R0, Gamma_R0 := zero_extend32_32(load21), Gamma_load21; - Cse0__5_7_1, Gamma_Cse0__5_7_1 := bvadd32(R0[32:0], 4294967295bv32), Gamma_R0; - VF, Gamma_VF := bvnot1(bvcomp33(sign_extend1_32(Cse0__5_7_1), bvadd33(sign_extend1_32(R0[32:0]), 8589934591bv33))), (Gamma_R0 && Gamma_Cse0__5_7_1); - CF, Gamma_CF := bvnot1(bvcomp33(zero_extend1_32(Cse0__5_7_1), bvadd33(zero_extend1_32(R0[32:0]), 4294967295bv33))), (Gamma_R0 && Gamma_Cse0__5_7_1); - ZF, Gamma_ZF := bvcomp32(Cse0__5_7_1, 0bv32), Gamma_Cse0__5_7_1; - NF, Gamma_NF := Cse0__5_7_1[32:31], Gamma_Cse0__5_7_1; - goto main_2012__3__09_lQb5MT_SJaYe07Vmc_g; - main_2012__3__09_lQb5MT_SJaYe07Vmc_g: - assume {:captureState "main_2012__3__09_lQb5MT_SJaYe07Vmc_g"} true; - assert Gamma_ZF; - goto main_2012__3__09_lQb5MT_SJaYe07Vmc_g_goto_main_2012__6__SujlhOerQhygmgKHSc1XZw, main_2012__3__09_lQb5MT_SJaYe07Vmc_g_goto_main_2012__4__Bt04V5oVRaOM5Ip3wRkfUw; - main_2012__3__09_lQb5MT_SJaYe07Vmc_g_goto_main_2012__4__Bt04V5oVRaOM5Ip3wRkfUw: - assume {:captureState "main_2012__3__09_lQb5MT_SJaYe07Vmc_g_goto_main_2012__4__Bt04V5oVRaOM5Ip3wRkfUw"} true; - assume (!(ZF == 1bv1)); - goto main_2012__4__Bt04V5oVRaOM5Ip3wRkfUw; - main_2012__4__Bt04V5oVRaOM5Ip3wRkfUw: - assume {:captureState "main_2012__4__Bt04V5oVRaOM5Ip3wRkfUw"} true; - goto main_2012__8__sD4BTrlRTieCvvugZUYF7A; - main_2012__3__09_lQb5MT_SJaYe07Vmc_g_goto_main_2012__6__SujlhOerQhygmgKHSc1XZw: - assume {:captureState "main_2012__3__09_lQb5MT_SJaYe07Vmc_g_goto_main_2012__6__SujlhOerQhygmgKHSc1XZw"} true; - assume (ZF == 1bv1); - R0, Gamma_R0 := 65536bv64, true; + goto $main$__1__$yQ1z8A~IRoSs4MRYTbbghg_goto_$main$__5__$cdQ2GS2~QhaOa7OUvPWMRQ, $main$__1__$yQ1z8A~IRoSs4MRYTbbghg_goto_$main$__2__$GW0MHC~ORUKlCdpgOcZ6zA; + $main$__2__$GW0MHC~ORUKlCdpgOcZ6zA: + assume {:captureState "$main$__2__$GW0MHC~ORUKlCdpgOcZ6zA"} true; call rely(); - load19, Gamma_load19 := memory_load64_le(mem, bvadd64(R0, 4064bv64)), (gamma_load64(Gamma_mem, bvadd64(R0, 4064bv64)) || L(mem, bvadd64(R0, 4064bv64))); - R0, Gamma_R0 := load19, Gamma_load19; - stack, Gamma_stack := memory_store64_le(stack, bvadd64(R31, 40bv64), R0), gamma_store64(Gamma_stack, bvadd64(R31, 40bv64), Gamma_R0); - assume {:captureState "2100_0"} true; - goto main_2012__6__SujlhOerQhygmgKHSc1XZw; - main_2012__6__SujlhOerQhygmgKHSc1XZw: - assume {:captureState "main_2012__6__SujlhOerQhygmgKHSc1XZw"} true; - goto main_2012__9__7RwlIZnASouKYJ2frkUUKw; - main_2012__2__1AJ~HowZR3iJDHcHLtAuzQ_goto_main_2012__5__cPLOwypmRFeVmHCrCFAc_g: - assume {:captureState "main_2012__2__1AJ~HowZR3iJDHcHLtAuzQ_goto_main_2012__5__cPLOwypmRFeVmHCrCFAc_g"} true; - assume (ZF == 1bv1); - R0, Gamma_R0 := 65536bv64, true; + $load9, Gamma_$load9 := memory_load64_le(mem, bvadd64(R0, 4080bv64)), (gamma_load64(Gamma_mem, bvadd64(R0, 4080bv64)) || L(mem, bvadd64(R0, 4080bv64))); + R0, Gamma_R0 := $load9, Gamma_$load9; + goto $main$__3__$GghTYm6bT12tNFmqu0nIjA; + $main$__3__$GghTYm6bT12tNFmqu0nIjA: + assume {:captureState "$main$__3__$GghTYm6bT12tNFmqu0nIjA"} true; + R30, Gamma_R30 := 4195972bv64, true; + goto $main$__3__$GghTYm6bT12tNFmqu0nIjA$set_six, $main$__3__$GghTYm6bT12tNFmqu0nIjA$set_seven, $main$__3__$GghTYm6bT12tNFmqu0nIjA$set_two; + $main$__4__$NfWWPq4PTwyv0VapVhBGag: + assume {:captureState "$main$__4__$NfWWPq4PTwyv0VapVhBGag"} true; + R0, Gamma_R0 := 0bv64, true; + $load6, Gamma_$load6 := memory_load64_le(stack, R31), gamma_load64(Gamma_stack, R31); + R29, Gamma_R29 := $load6, Gamma_$load6; + $load7, Gamma_$load7 := memory_load64_le(stack, bvadd64(R31, 8bv64)), gamma_load64(Gamma_stack, bvadd64(R31, 8bv64)); + R30, Gamma_R30 := $load7, Gamma_$load7; + R31, Gamma_R31 := bvadd64(R31, 16bv64), Gamma_R31; + goto main_basil_return; + $main$__5__$cdQ2GS2~QhaOa7OUvPWMRQ: + assume {:captureState "$main$__5__$cdQ2GS2~QhaOa7OUvPWMRQ"} true; call rely(); - load20, Gamma_load20 := memory_load64_le(mem, bvadd64(R0, 4056bv64)), (gamma_load64(Gamma_mem, bvadd64(R0, 4056bv64)) || L(mem, bvadd64(R0, 4056bv64))); - R0, Gamma_R0 := load20, Gamma_load20; - stack, Gamma_stack := memory_store64_le(stack, bvadd64(R31, 40bv64), R0), gamma_store64(Gamma_stack, bvadd64(R31, 40bv64), Gamma_R0); - assume {:captureState "2084_0"} true; - goto main_2012__5__cPLOwypmRFeVmHCrCFAc_g; - main_2012__5__cPLOwypmRFeVmHCrCFAc_g: - assume {:captureState "main_2012__5__cPLOwypmRFeVmHCrCFAc_g"} true; - goto main_2012__9__7RwlIZnASouKYJ2frkUUKw; - main_2012__1__Itcc9ikmRriat4P2PfBY9Q_goto_main_2012__8__sD4BTrlRTieCvvugZUYF7A: - assume {:captureState "main_2012__1__Itcc9ikmRriat4P2PfBY9Q_goto_main_2012__8__sD4BTrlRTieCvvugZUYF7A"} true; - assume ((NF == VF) && (ZF == 0bv1)); - goto main_2012__8__sD4BTrlRTieCvvugZUYF7A; - main_2012__8__sD4BTrlRTieCvvugZUYF7A: - assume {:captureState "main_2012__8__sD4BTrlRTieCvvugZUYF7A"} true; - R0, Gamma_R0 := 65536bv64, true; + $load8, Gamma_$load8 := memory_load64_le(mem, bvadd64(R0, 4064bv64)), (gamma_load64(Gamma_mem, bvadd64(R0, 4064bv64)) || L(mem, bvadd64(R0, 4064bv64))); + R0, Gamma_R0 := $load8, Gamma_$load8; + goto $main$__3__$GghTYm6bT12tNFmqu0nIjA; + $main$__6__$rIlbG4jGSTydaFqMhxCKWw: + assume {:captureState "$main$__6__$rIlbG4jGSTydaFqMhxCKWw"} true; + R0, Gamma_R0 := 4321280bv64, true; call rely(); - load15, Gamma_load15 := memory_load64_le(mem, bvadd64(R0, 4056bv64)), (gamma_load64(Gamma_mem, bvadd64(R0, 4056bv64)) || L(mem, bvadd64(R0, 4056bv64))); - R0, Gamma_R0 := load15, Gamma_load15; - stack, Gamma_stack := memory_store64_le(stack, bvadd64(R31, 40bv64), R0), gamma_store64(Gamma_stack, bvadd64(R31, 40bv64), Gamma_R0); - assume {:captureState "2132_0"} true; - goto main_2012__9__7RwlIZnASouKYJ2frkUUKw; - main_2012__0__mSqeYLPTTSeWCfH6eJwJtA_goto_main_2012__7__CM1tpRQfSBKhPNKoMwfCqQ: - assume {:captureState "main_2012__0__mSqeYLPTTSeWCfH6eJwJtA_goto_main_2012__7__CM1tpRQfSBKhPNKoMwfCqQ"} true; + $load5, Gamma_$load5 := memory_load64_le(mem, bvadd64(R0, 4072bv64)), (gamma_load64(Gamma_mem, bvadd64(R0, 4072bv64)) || L(mem, bvadd64(R0, 4072bv64))); + R0, Gamma_R0 := $load5, Gamma_$load5; + goto $main$__3__$GghTYm6bT12tNFmqu0nIjA; + $main$__1__$yQ1z8A~IRoSs4MRYTbbghg_goto_$main$__5__$cdQ2GS2~QhaOa7OUvPWMRQ: + assume {:captureState "$main$__1__$yQ1z8A~IRoSs4MRYTbbghg_goto_$main$__5__$cdQ2GS2~QhaOa7OUvPWMRQ"} true; + assume (!(ZF == 1bv1)); + goto $main$__5__$cdQ2GS2~QhaOa7OUvPWMRQ; + $main$__1__$yQ1z8A~IRoSs4MRYTbbghg_goto_$main$__2__$GW0MHC~ORUKlCdpgOcZ6zA: + assume {:captureState "$main$__1__$yQ1z8A~IRoSs4MRYTbbghg_goto_$main$__2__$GW0MHC~ORUKlCdpgOcZ6zA"} true; + assume (!(!(ZF == 1bv1))); + goto $main$__2__$GW0MHC~ORUKlCdpgOcZ6zA; + $main$__0__$fxMAJl44TWOTA8IHVD8V7Q_goto_$main$__6__$rIlbG4jGSTydaFqMhxCKWw: + assume {:captureState "$main$__0__$fxMAJl44TWOTA8IHVD8V7Q_goto_$main$__6__$rIlbG4jGSTydaFqMhxCKWw"} true; assume (ZF == 1bv1); - R0, Gamma_R0 := 65536bv64, true; + goto $main$__6__$rIlbG4jGSTydaFqMhxCKWw; + $main$__0__$fxMAJl44TWOTA8IHVD8V7Q_goto_$main$__1__$yQ1z8A~IRoSs4MRYTbbghg: + assume {:captureState "$main$__0__$fxMAJl44TWOTA8IHVD8V7Q_goto_$main$__1__$yQ1z8A~IRoSs4MRYTbbghg"} true; + assume (!(ZF == 1bv1)); + goto $main$__1__$yQ1z8A~IRoSs4MRYTbbghg; + $main$__3__$GghTYm6bT12tNFmqu0nIjA$set_six: + assume {:captureState "$main$__3__$GghTYm6bT12tNFmqu0nIjA$set_six"} true; + assume (R0 == 4196400bv64); + call set_six(); + goto $main$__4__$NfWWPq4PTwyv0VapVhBGag; + $main$__3__$GghTYm6bT12tNFmqu0nIjA$set_seven: + assume {:captureState "$main$__3__$GghTYm6bT12tNFmqu0nIjA$set_seven"} true; + assume (R0 == 4196432bv64); + call set_seven(); + goto $main$__4__$NfWWPq4PTwyv0VapVhBGag; + $main$__3__$GghTYm6bT12tNFmqu0nIjA$set_two: + assume {:captureState "$main$__3__$GghTYm6bT12tNFmqu0nIjA$set_two"} true; + assume (R0 == 4196368bv64); + call set_two(); + goto $main$__4__$NfWWPq4PTwyv0VapVhBGag; + main_basil_return: + assume {:captureState "main_basil_return"} true; + return; +} + +procedure set_two(); + modifies Gamma_R0, Gamma_R1, Gamma_mem, R0, R1, mem; + free requires (memory_load32_le(mem, 4196480bv64) == 131073bv32); + free ensures (memory_load32_le(mem, 4196480bv64) == 131073bv32); + +implementation set_two() +{ + var $load10: bv64; + var Gamma_$load10: bool; + $set_two$__0__$X7GJYS43TTaiN95nNBoPIg: + assume {:captureState "$set_two$__0__$X7GJYS43TTaiN95nNBoPIg"} true; + R0, Gamma_R0 := 4321280bv64, true; + R1, Gamma_R1 := 2bv64, true; call rely(); - load16, Gamma_load16 := memory_load64_le(mem, bvadd64(R0, 4080bv64)), (gamma_load64(Gamma_mem, bvadd64(R0, 4080bv64)) || L(mem, bvadd64(R0, 4080bv64))); - R0, Gamma_R0 := load16, Gamma_load16; - stack, Gamma_stack := memory_store64_le(stack, bvadd64(R31, 40bv64), R0), gamma_store64(Gamma_stack, bvadd64(R31, 40bv64), Gamma_R0); - assume {:captureState "2116_0"} true; - goto main_2012__7__CM1tpRQfSBKhPNKoMwfCqQ; - main_2012__7__CM1tpRQfSBKhPNKoMwfCqQ: - assume {:captureState "main_2012__7__CM1tpRQfSBKhPNKoMwfCqQ"} true; - goto main_2012__9__7RwlIZnASouKYJ2frkUUKw; - main_2012__9__7RwlIZnASouKYJ2frkUUKw: - assume {:captureState "main_2012__9__7RwlIZnASouKYJ2frkUUKw"} true; - load18, Gamma_load18 := memory_load64_le(stack, bvadd64(R31, 40bv64)), gamma_load64(Gamma_stack, bvadd64(R31, 40bv64)); - R0, Gamma_R0 := load18, Gamma_load18; - R30, Gamma_R30 := 2148bv64, true; - goto main_2012__9__7RwlIZnASouKYJ2frkUUKw_set_six_1964, main_2012__9__7RwlIZnASouKYJ2frkUUKw_set_two_1940, main_2012__9__7RwlIZnASouKYJ2frkUUKw_set_seven_1988; - main_2012__9__7RwlIZnASouKYJ2frkUUKw_set_seven_1988: - assume {:captureState "main_2012__9__7RwlIZnASouKYJ2frkUUKw_set_seven_1988"} true; - assume (R0 == 1988bv64); - call set_seven_1988(); - goto main_2012__10__~6BcLPrzR_qqeDcEFjH5oA; - main_2012__9__7RwlIZnASouKYJ2frkUUKw_set_two_1940: - assume {:captureState "main_2012__9__7RwlIZnASouKYJ2frkUUKw_set_two_1940"} true; - assume (R0 == 1940bv64); - call set_two_1940(); - goto main_2012__10__~6BcLPrzR_qqeDcEFjH5oA; - main_2012__9__7RwlIZnASouKYJ2frkUUKw_set_six_1964: - assume {:captureState "main_2012__9__7RwlIZnASouKYJ2frkUUKw_set_six_1964"} true; - assume (R0 == 1964bv64); - call set_six_1964(); - goto main_2012__10__~6BcLPrzR_qqeDcEFjH5oA; - main_2012__10__~6BcLPrzR_qqeDcEFjH5oA: - assume {:captureState "main_2012__10__~6BcLPrzR_qqeDcEFjH5oA"} true; + $load10, Gamma_$load10 := memory_load64_le(mem, bvadd64(R0, 4048bv64)), (gamma_load64(Gamma_mem, bvadd64(R0, 4048bv64)) || L(mem, bvadd64(R0, 4048bv64))); + R0, Gamma_R0 := $load10, Gamma_$load10; + call rely(); + assert (L(mem, R0) ==> Gamma_R1); + mem, Gamma_mem := memory_store32_le(mem, R0, R1[32:0]), gamma_store32(Gamma_mem, R0, Gamma_R1); + assume {:captureState "4196380$0"} true; R0, Gamma_R0 := 0bv64, true; - load23, Gamma_load23 := memory_load64_le(stack, R31), gamma_load64(Gamma_stack, R31); - R29, Gamma_R29 := load23, Gamma_load23; - load24, Gamma_load24 := memory_load64_le(stack, bvadd64(R31, 8bv64)), gamma_load64(Gamma_stack, bvadd64(R31, 8bv64)); - R30, Gamma_R30 := load24, Gamma_load24; - R31, Gamma_R31 := bvadd64(R31, 48bv64), Gamma_R31; - goto main_2012_basil_return; - main_2012_basil_return: - assume {:captureState "main_2012_basil_return"} true; + R1, Gamma_R1 := 0bv64, true; + goto set_two_basil_return; + set_two_basil_return: + assume {:captureState "set_two_basil_return"} true; return; } -procedure set_two_1940(); +procedure set_seven(); modifies Gamma_R0, Gamma_R1, Gamma_mem, R0, R1, mem; - free requires (memory_load32_le(mem, 2180bv64) == 131073bv32); - free requires (memory_load64_le(mem, 68984bv64) == 1936bv64); - free requires (memory_load64_le(mem, 68992bv64) == 1856bv64); - free requires (memory_load64_le(mem, 69576bv64) == 69652bv64); - free requires (memory_load64_le(mem, 69592bv64) == 1940bv64); - free requires (memory_load64_le(mem, 69600bv64) == 1964bv64); - free requires (memory_load64_le(mem, 69608bv64) == 2012bv64); - free requires (memory_load64_le(mem, 69616bv64) == 1988bv64); - free requires (memory_load64_le(mem, 69640bv64) == 69640bv64); - free ensures (memory_load32_le(mem, 2180bv64) == 131073bv32); - free ensures (memory_load64_le(mem, 68984bv64) == 1936bv64); - free ensures (memory_load64_le(mem, 68992bv64) == 1856bv64); - free ensures (memory_load64_le(mem, 69576bv64) == 69652bv64); - free ensures (memory_load64_le(mem, 69592bv64) == 1940bv64); - free ensures (memory_load64_le(mem, 69600bv64) == 1964bv64); - free ensures (memory_load64_le(mem, 69608bv64) == 2012bv64); - free ensures (memory_load64_le(mem, 69616bv64) == 1988bv64); - free ensures (memory_load64_le(mem, 69640bv64) == 69640bv64); + free requires (memory_load32_le(mem, 4196480bv64) == 131073bv32); + free ensures (memory_load32_le(mem, 4196480bv64) == 131073bv32); -implementation set_two_1940() +implementation set_seven() { - var Gamma_load29: bool; - var load29: bv64; - set_two_1940__0__pc4EEuLAT5~NeDl373acBA: - assume {:captureState "set_two_1940__0__pc4EEuLAT5~NeDl373acBA"} true; - R0, Gamma_R0 := 65536bv64, true; + var $load19: bv64; + var Gamma_$load19: bool; + $set_seven$__0__$H7LPJaZbQvWx~VL~kBk__Q: + assume {:captureState "$set_seven$__0__$H7LPJaZbQvWx~VL~kBk__Q"} true; + R0, Gamma_R0 := 4321280bv64, true; + R1, Gamma_R1 := 7bv64, true; call rely(); - load29, Gamma_load29 := memory_load64_le(mem, bvadd64(R0, 4040bv64)), (gamma_load64(Gamma_mem, bvadd64(R0, 4040bv64)) || L(mem, bvadd64(R0, 4040bv64))); - R0, Gamma_R0 := load29, Gamma_load29; - R1, Gamma_R1 := 2bv64, true; + $load19, Gamma_$load19 := memory_load64_le(mem, bvadd64(R0, 4048bv64)), (gamma_load64(Gamma_mem, bvadd64(R0, 4048bv64)) || L(mem, bvadd64(R0, 4048bv64))); + R0, Gamma_R0 := $load19, Gamma_$load19; call rely(); assert (L(mem, R0) ==> Gamma_R1); mem, Gamma_mem := memory_store32_le(mem, R0, R1[32:0]), gamma_store32(Gamma_mem, R0, Gamma_R1); - assume {:captureState "1952_0"} true; - goto set_two_1940_basil_return; - set_two_1940_basil_return: - assume {:captureState "set_two_1940_basil_return"} true; + assume {:captureState "4196444$0"} true; + R0, Gamma_R0 := 0bv64, true; + R1, Gamma_R1 := 0bv64, true; + goto set_seven_basil_return; + set_seven_basil_return: + assume {:captureState "set_seven_basil_return"} true; return; } -procedure set_six_1964(); +procedure set_six(); modifies Gamma_R0, Gamma_R1, Gamma_mem, R0, R1, mem; - free requires (memory_load32_le(mem, 2180bv64) == 131073bv32); - free requires (memory_load64_le(mem, 68984bv64) == 1936bv64); - free requires (memory_load64_le(mem, 68992bv64) == 1856bv64); - free requires (memory_load64_le(mem, 69576bv64) == 69652bv64); - free requires (memory_load64_le(mem, 69592bv64) == 1940bv64); - free requires (memory_load64_le(mem, 69600bv64) == 1964bv64); - free requires (memory_load64_le(mem, 69608bv64) == 2012bv64); - free requires (memory_load64_le(mem, 69616bv64) == 1988bv64); - free requires (memory_load64_le(mem, 69640bv64) == 69640bv64); - free ensures (memory_load32_le(mem, 2180bv64) == 131073bv32); - free ensures (memory_load64_le(mem, 68984bv64) == 1936bv64); - free ensures (memory_load64_le(mem, 68992bv64) == 1856bv64); - free ensures (memory_load64_le(mem, 69576bv64) == 69652bv64); - free ensures (memory_load64_le(mem, 69592bv64) == 1940bv64); - free ensures (memory_load64_le(mem, 69600bv64) == 1964bv64); - free ensures (memory_load64_le(mem, 69608bv64) == 2012bv64); - free ensures (memory_load64_le(mem, 69616bv64) == 1988bv64); - free ensures (memory_load64_le(mem, 69640bv64) == 69640bv64); + free requires (memory_load32_le(mem, 4196480bv64) == 131073bv32); + free ensures (memory_load32_le(mem, 4196480bv64) == 131073bv32); -implementation set_six_1964() +implementation set_six() { - var Gamma_load30: bool; - var load30: bv64; - set_six_1964__0__MeJQ5u2GT2qTPkmi76_Clg: - assume {:captureState "set_six_1964__0__MeJQ5u2GT2qTPkmi76_Clg"} true; - R0, Gamma_R0 := 65536bv64, true; - call rely(); - load30, Gamma_load30 := memory_load64_le(mem, bvadd64(R0, 4040bv64)), (gamma_load64(Gamma_mem, bvadd64(R0, 4040bv64)) || L(mem, bvadd64(R0, 4040bv64))); - R0, Gamma_R0 := load30, Gamma_load30; + var $load23: bv64; + var Gamma_$load23: bool; + $set_six$__0__$lrKKe~miRjSnSiaG164qMA: + assume {:captureState "$set_six$__0__$lrKKe~miRjSnSiaG164qMA"} true; + R0, Gamma_R0 := 4321280bv64, true; R1, Gamma_R1 := 6bv64, true; call rely(); + $load23, Gamma_$load23 := memory_load64_le(mem, bvadd64(R0, 4048bv64)), (gamma_load64(Gamma_mem, bvadd64(R0, 4048bv64)) || L(mem, bvadd64(R0, 4048bv64))); + R0, Gamma_R0 := $load23, Gamma_$load23; + call rely(); assert (L(mem, R0) ==> Gamma_R1); mem, Gamma_mem := memory_store32_le(mem, R0, R1[32:0]), gamma_store32(Gamma_mem, R0, Gamma_R1); - assume {:captureState "1976_0"} true; - goto set_six_1964_basil_return; - set_six_1964_basil_return: - assume {:captureState "set_six_1964_basil_return"} true; + assume {:captureState "4196412$0"} true; + R0, Gamma_R0 := 0bv64, true; + R1, Gamma_R1 := 0bv64, true; + goto set_six_basil_return; + set_six_basil_return: + assume {:captureState "set_six_basil_return"} true; return; } diff --git a/src/test/correct/functions_with_params/clang/functions_with_params.adt b/src/test/correct/functions_with_params/clang/functions_with_params.adt deleted file mode 100644 index ee1fec623..000000000 --- a/src/test/correct/functions_with_params/clang/functions_with_params.adt +++ /dev/null @@ -1,560 +0,0 @@ -Project(Attrs([Attr("filename","\"clang/functions_with_params.out\""), -Attr("image-specification","(declare abi (name str))\n(declare arch (name str))\n(declare base-address (addr int))\n(declare bias (off int))\n(declare bits (size int))\n(declare code-region (addr int) (size int) (off int))\n(declare code-start (addr int))\n(declare entry-point (addr int))\n(declare external-reference (addr int) (name str))\n(declare format (name str))\n(declare is-executable (flag bool))\n(declare is-little-endian (flag bool))\n(declare llvm:base-address (addr int))\n(declare llvm:code-entry (name str) (off int) (size int))\n(declare llvm:coff-import-library (name str))\n(declare llvm:coff-virtual-section-header (name str) (addr int) (size int))\n(declare llvm:elf-program-header (name str) (off int) (size int))\n(declare llvm:elf-program-header-flags (name str) (ld bool) (r bool) \n (w bool) (x bool))\n(declare llvm:elf-virtual-program-header (name str) (addr int) (size int))\n(declare llvm:entry-point (addr int))\n(declare llvm:macho-symbol (name str) (value int))\n(declare llvm:name-reference (at int) (name str))\n(declare llvm:relocation (at int) (addr int))\n(declare llvm:section-entry (name str) (addr int) (size int) (off int))\n(declare llvm:section-flags (name str) (r bool) (w bool) (x bool))\n(declare llvm:segment-command (name str) (off int) (size int))\n(declare llvm:segment-command-flags (name str) (r bool) (w bool) (x bool))\n(declare llvm:symbol-entry (name str) (addr int) (size int) (off int)\n (value int))\n(declare llvm:virtual-segment-command (name str) (addr int) (size int))\n(declare mapped (addr int) (size int) (off int))\n(declare named-region (addr int) (size int) (name str))\n(declare named-symbol (addr int) (name str))\n(declare require (name str))\n(declare section (addr int) (size int))\n(declare segment (addr int) (size int) (r bool) (w bool) (x bool))\n(declare subarch (name str))\n(declare symbol-chunk (addr int) (size int) (root int))\n(declare symbol-value (addr int) (value int))\n(declare system (name str))\n(declare vendor (name str))\n\n(abi unknown)\n(arch aarch64)\n(base-address 0)\n(bias 0)\n(bits 64)\n(code-region 1892 20 1892)\n(code-region 1536 356 1536)\n(code-region 1440 96 1440)\n(code-region 1408 24 1408)\n(code-start 1588)\n(code-start 1868)\n(code-start 1536)\n(code-start 1812)\n(entry-point 1536)\n(external-reference 69568 _ITM_deregisterTMCloneTable)\n(external-reference 69576 __cxa_finalize)\n(external-reference 69584 __gmon_start__)\n(external-reference 69600 _ITM_registerTMCloneTable)\n(external-reference 69632 __libc_start_main)\n(external-reference 69640 __cxa_finalize)\n(external-reference 69648 __gmon_start__)\n(external-reference 69656 abort)\n(format elf)\n(is-executable true)\n(is-little-endian true)\n(llvm:base-address 0)\n(llvm:code-entry abort 0 0)\n(llvm:code-entry __cxa_finalize 0 0)\n(llvm:code-entry __libc_start_main 0 0)\n(llvm:code-entry _init 1408 0)\n(llvm:code-entry main 1812 56)\n(llvm:code-entry _start 1536 52)\n(llvm:code-entry abort@GLIBC_2.17 0 0)\n(llvm:code-entry plus_one 1868 24)\n(llvm:code-entry _fini 1892 0)\n(llvm:code-entry __cxa_finalize@GLIBC_2.17 0 0)\n(llvm:code-entry __libc_start_main@GLIBC_2.34 0 0)\n(llvm:code-entry frame_dummy 1808 0)\n(llvm:code-entry __do_global_dtors_aux 1728 0)\n(llvm:code-entry register_tm_clones 1664 0)\n(llvm:code-entry deregister_tm_clones 1616 0)\n(llvm:code-entry call_weak_fn 1588 20)\n(llvm:code-entry .fini 1892 20)\n(llvm:code-entry .text 1536 356)\n(llvm:code-entry .plt 1440 96)\n(llvm:code-entry .init 1408 24)\n(llvm:elf-program-header 08 3528 568)\n(llvm:elf-program-header 07 0 0)\n(llvm:elf-program-header 06 1916 68)\n(llvm:elf-program-header 05 596 68)\n(llvm:elf-program-header 04 3544 480)\n(llvm:elf-program-header 03 3528 616)\n(llvm:elf-program-header 02 0 2208)\n(llvm:elf-program-header 01 568 27)\n(llvm:elf-program-header 00 64 504)\n(llvm:elf-program-header-flags 08 false true false false)\n(llvm:elf-program-header-flags 07 false true true false)\n(llvm:elf-program-header-flags 06 false true false false)\n(llvm:elf-program-header-flags 05 false true false false)\n(llvm:elf-program-header-flags 04 false true true false)\n(llvm:elf-program-header-flags 03 true true true false)\n(llvm:elf-program-header-flags 02 true true false true)\n(llvm:elf-program-header-flags 01 false true false false)\n(llvm:elf-program-header-flags 00 false true false false)\n(llvm:elf-virtual-program-header 08 69064 568)\n(llvm:elf-virtual-program-header 07 0 0)\n(llvm:elf-virtual-program-header 06 1916 68)\n(llvm:elf-virtual-program-header 05 596 68)\n(llvm:elf-virtual-program-header 04 69080 480)\n(llvm:elf-virtual-program-header 03 69064 624)\n(llvm:elf-virtual-program-header 02 0 2208)\n(llvm:elf-virtual-program-header 01 568 27)\n(llvm:elf-virtual-program-header 00 64 504)\n(llvm:entry-point 1536)\n(llvm:name-reference 69656 abort)\n(llvm:name-reference 69648 __gmon_start__)\n(llvm:name-reference 69640 __cxa_finalize)\n(llvm:name-reference 69632 __libc_start_main)\n(llvm:name-reference 69600 _ITM_registerTMCloneTable)\n(llvm:name-reference 69584 __gmon_start__)\n(llvm:name-reference 69576 __cxa_finalize)\n(llvm:name-reference 69568 _ITM_deregisterTMCloneTable)\n(llvm:section-entry .shstrtab 0 259 6933)\n(llvm:section-entry .strtab 0 581 6352)\n(llvm:section-entry .symtab 0 2136 4216)\n(llvm:section-entry .comment 0 71 4144)\n(llvm:section-entry .bss 69680 8 4144)\n(llvm:section-entry .data 69664 16 4128)\n(llvm:section-entry .got.plt 69608 56 4072)\n(llvm:section-entry .got 69560 48 4024)\n(llvm:section-entry .dynamic 69080 480 3544)\n(llvm:section-entry .fini_array 69072 8 3536)\n(llvm:section-entry .init_array 69064 8 3528)\n(llvm:section-entry .eh_frame 1984 224 1984)\n(llvm:section-entry .eh_frame_hdr 1916 68 1916)\n(llvm:section-entry .rodata 1912 4 1912)\n(llvm:section-entry .fini 1892 20 1892)\n(llvm:section-entry .text 1536 356 1536)\n(llvm:section-entry .plt 1440 96 1440)\n(llvm:section-entry .init 1408 24 1408)\n(llvm:section-entry .rela.plt 1312 96 1312)\n(llvm:section-entry .rela.dyn 1120 192 1120)\n(llvm:section-entry .gnu.version_r 1072 48 1072)\n(llvm:section-entry .gnu.version 1054 18 1054)\n(llvm:section-entry .dynstr 912 141 912)\n(llvm:section-entry .dynsym 696 216 696)\n(llvm:section-entry .gnu.hash 664 28 664)\n(llvm:section-entry .note.ABI-tag 632 32 632)\n(llvm:section-entry .note.gnu.build-id 596 36 596)\n(llvm:section-entry .interp 568 27 568)\n(llvm:section-flags .shstrtab true false false)\n(llvm:section-flags .strtab true false false)\n(llvm:section-flags .symtab true false false)\n(llvm:section-flags .comment true false false)\n(llvm:section-flags .bss true true false)\n(llvm:section-flags .data true true false)\n(llvm:section-flags .got.plt true true false)\n(llvm:section-flags .got true true false)\n(llvm:section-flags .dynamic true true false)\n(llvm:section-flags .fini_array true true false)\n(llvm:section-flags .init_array true true false)\n(llvm:section-flags .eh_frame true false false)\n(llvm:section-flags .eh_frame_hdr true false false)\n(llvm:section-flags .rodata true false false)\n(llvm:section-flags .fini true false true)\n(llvm:section-flags .text true false true)\n(llvm:section-flags .plt true false true)\n(llvm:section-flags .init true false true)\n(llvm:section-flags .rela.plt true false false)\n(llvm:section-flags .rela.dyn true false false)\n(llvm:section-flags .gnu.version_r true false false)\n(llvm:section-flags .gnu.version true false false)\n(llvm:section-flags .dynstr true false false)\n(llvm:section-flags .dynsym true false false)\n(llvm:section-flags .gnu.hash true false false)\n(llvm:section-flags .note.ABI-tag true false false)\n(llvm:section-flags .note.gnu.build-id true false false)\n(llvm:section-flags .interp true false false)\n(llvm:symbol-entry abort 0 0 0 0)\n(llvm:symbol-entry __cxa_finalize 0 0 0 0)\n(llvm:symbol-entry __libc_start_main 0 0 0 0)\n(llvm:symbol-entry _init 1408 0 1408 1408)\n(llvm:symbol-entry main 1812 56 1812 1812)\n(llvm:symbol-entry _start 1536 52 1536 1536)\n(llvm:symbol-entry abort@GLIBC_2.17 0 0 0 0)\n(llvm:symbol-entry plus_one 1868 24 1868 1868)\n(llvm:symbol-entry _fini 1892 0 1892 1892)\n(llvm:symbol-entry __cxa_finalize@GLIBC_2.17 0 0 0 0)\n(llvm:symbol-entry __libc_start_main@GLIBC_2.34 0 0 0 0)\n(llvm:symbol-entry frame_dummy 1808 0 1808 1808)\n(llvm:symbol-entry __do_global_dtors_aux 1728 0 1728 1728)\n(llvm:symbol-entry register_tm_clones 1664 0 1664 1664)\n(llvm:symbol-entry deregister_tm_clones 1616 0 1616 1616)\n(llvm:symbol-entry call_weak_fn 1588 20 1588 1588)\n(mapped 0 2208 0)\n(mapped 69064 616 3528)\n(named-region 0 2208 02)\n(named-region 69064 624 03)\n(named-region 568 27 .interp)\n(named-region 596 36 .note.gnu.build-id)\n(named-region 632 32 .note.ABI-tag)\n(named-region 664 28 .gnu.hash)\n(named-region 696 216 .dynsym)\n(named-region 912 141 .dynstr)\n(named-region 1054 18 .gnu.version)\n(named-region 1072 48 .gnu.version_r)\n(named-region 1120 192 .rela.dyn)\n(named-region 1312 96 .rela.plt)\n(named-region 1408 24 .init)\n(named-region 1440 96 .plt)\n(named-region 1536 356 .text)\n(named-region 1892 20 .fini)\n(named-region 1912 4 .rodata)\n(named-region 1916 68 .eh_frame_hdr)\n(named-region 1984 224 .eh_frame)\n(named-region 69064 8 .init_array)\n(named-region 69072 8 .fini_array)\n(named-region 69080 480 .dynamic)\n(named-region 69560 48 .got)\n(named-region 69608 56 .got.plt)\n(named-region 69664 16 .data)\n(named-region 69680 8 .bss)\n(named-region 0 71 .comment)\n(named-region 0 2136 .symtab)\n(named-region 0 581 .strtab)\n(named-region 0 259 .shstrtab)\n(named-symbol 1588 call_weak_fn)\n(named-symbol 1616 deregister_tm_clones)\n(named-symbol 1664 register_tm_clones)\n(named-symbol 1728 __do_global_dtors_aux)\n(named-symbol 1808 frame_dummy)\n(named-symbol 0 __libc_start_main@GLIBC_2.34)\n(named-symbol 0 __cxa_finalize@GLIBC_2.17)\n(named-symbol 1892 _fini)\n(named-symbol 1868 plus_one)\n(named-symbol 0 abort@GLIBC_2.17)\n(named-symbol 1536 _start)\n(named-symbol 1812 main)\n(named-symbol 1408 _init)\n(named-symbol 0 __libc_start_main)\n(named-symbol 0 __cxa_finalize)\n(named-symbol 0 abort)\n(require libc.so.6)\n(section 568 27)\n(section 596 36)\n(section 632 32)\n(section 664 28)\n(section 696 216)\n(section 912 141)\n(section 1054 18)\n(section 1072 48)\n(section 1120 192)\n(section 1312 96)\n(section 1408 24)\n(section 1440 96)\n(section 1536 356)\n(section 1892 20)\n(section 1912 4)\n(section 1916 68)\n(section 1984 224)\n(section 69064 8)\n(section 69072 8)\n(section 69080 480)\n(section 69560 48)\n(section 69608 56)\n(section 69664 16)\n(section 69680 8)\n(section 0 71)\n(section 0 2136)\n(section 0 581)\n(section 0 259)\n(segment 0 2208 true false true)\n(segment 69064 624 true true false)\n(subarch v8)\n(symbol-chunk 1588 20 1588)\n(symbol-chunk 1868 24 1868)\n(symbol-chunk 1536 52 1536)\n(symbol-chunk 1812 56 1812)\n(symbol-value 1588 1588)\n(symbol-value 1616 1616)\n(symbol-value 1664 1664)\n(symbol-value 1728 1728)\n(symbol-value 1808 1808)\n(symbol-value 1892 1892)\n(symbol-value 1868 1868)\n(symbol-value 1536 1536)\n(symbol-value 1812 1812)\n(symbol-value 1408 1408)\n(symbol-value 0 0)\n(system \"\")\n(vendor \"\")\n"), -Attr("abi-name","\"aarch64-linux-gnu-elf\"")]), -Sections([Section(".shstrtab", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x00\x06\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x18\x1c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x38\x00\x09\x00\x40\x00\x1d\x00\x1c\x00\x06\x00\x00\x00\x04\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x04\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xa0\x08\x00\x00\x00\x00\x00\x00\xa0\x08\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x01\x00\x00\x00\x06\x00\x00\x00\xc8\x0d\x00\x00\x00\x00\x00\x00\xc8\x0d\x01\x00\x00\x00\x00\x00\xc8\x0d\x01"), -Section(".strtab", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x00\x06\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x18\x1c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x38\x00\x09\x00\x40\x00\x1d\x00\x1c\x00\x06\x00\x00\x00\x04\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x04\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xa0\x08\x00\x00\x00\x00\x00\x00\xa0\x08\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x01\x00\x00\x00\x06\x00\x00\x00\xc8\x0d\x00\x00\x00\x00\x00\x00\xc8\x0d\x01\x00\x00\x00\x00\x00\xc8\x0d\x01\x00\x00\x00\x00\x00\x68\x02\x00\x00\x00\x00\x00\x00\x70\x02\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x02\x00\x00\x00\x06\x00\x00\x00\xd8\x0d\x00\x00\x00\x00\x00\x00\xd8\x0d\x01\x00\x00\x00\x00\x00\xd8\x0d\x01\x00\x00\x00\x00\x00\xe0\x01\x00\x00\x00\x00\x00\x00\xe0\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x04\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x50\xe5\x74\x64\x04\x00\x00\x00\x7c\x07\x00\x00\x00\x00\x00\x00\x7c\x07\x00\x00\x00\x00\x00\x00\x7c\x07\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x51\xe5\x74\x64\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x52\xe5\x74\x64\x04\x00\x00\x00\xc8\x0d\x00\x00\x00\x00\x00\x00\xc8\x0d\x01\x00\x00\x00\x00\x00\xc8\x0d\x01\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x2f\x6c\x69\x62\x2f\x6c\x64\x2d\x6c\x69\x6e\x75\x78"), -Section(".symtab", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x00\x06\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x18\x1c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x38\x00\x09\x00\x40\x00\x1d\x00\x1c\x00\x06\x00\x00\x00\x04\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x04\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xa0\x08\x00\x00\x00\x00\x00\x00\xa0\x08\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x01\x00\x00\x00\x06\x00\x00\x00\xc8\x0d\x00\x00\x00\x00\x00\x00\xc8\x0d\x01\x00\x00\x00\x00\x00\xc8\x0d\x01\x00\x00\x00\x00\x00\x68\x02\x00\x00\x00\x00\x00\x00\x70\x02\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x02\x00\x00\x00\x06\x00\x00\x00\xd8\x0d\x00\x00\x00\x00\x00\x00\xd8\x0d\x01\x00\x00\x00\x00\x00\xd8\x0d\x01\x00\x00\x00\x00\x00\xe0\x01\x00\x00\x00\x00\x00\x00\xe0\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x04\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x50\xe5\x74\x64\x04\x00\x00\x00\x7c\x07\x00\x00\x00\x00\x00\x00\x7c\x07\x00\x00\x00\x00\x00\x00\x7c\x07\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x51\xe5\x74\x64\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x52\xe5\x74\x64\x04\x00\x00\x00\xc8\x0d\x00\x00\x00\x00\x00\x00\xc8\x0d\x01\x00\x00\x00\x00\x00\xc8\x0d\x01\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x2f\x6c\x69\x62\x2f\x6c\x64\x2d\x6c\x69\x6e\x75\x78\x2d\x61\x61\x72\x63\x68\x36\x34\x2e\x73\x6f\x2e\x31\x00\x00\x04\x00\x00\x00\x14\x00\x00\x00\x03\x00\x00\x00\x47\x4e\x55\x00\xfa\x5e\x12\xb0\x4c\x51\x7a\x2f\x0d\x31\x3d\x15\x92\x0e\xe5\x31\xc6\x67\x9d\xbb\x04\x00\x00\x00\x10\x00\x00\x00\x01\x00\x00\x00\x47\x4e\x55\x00\x00\x00\x00\x00\x03\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x01\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x0b\x00\x80\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x17\x00\x20\x10\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x48\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x22\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x22\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x73\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5f\x5f\x63\x78\x61\x5f\x66\x69\x6e\x61\x6c\x69\x7a\x65\x00\x5f\x5f\x6c\x69\x62\x63\x5f\x73\x74\x61\x72\x74\x5f\x6d\x61\x69\x6e\x00\x61\x62\x6f\x72\x74\x00\x6c\x69\x62\x63\x2e\x73\x6f\x2e\x36\x00\x47\x4c\x49\x42\x43\x5f\x32\x2e\x31\x37\x00\x47\x4c\x49\x42\x43\x5f\x32\x2e\x33\x34\x00\x5f\x49\x54\x4d\x5f\x64\x65\x72\x65\x67\x69\x73\x74\x65\x72\x54\x4d\x43\x6c\x6f\x6e\x65\x54\x61\x62\x6c\x65\x00\x5f\x5f\x67\x6d\x6f\x6e\x5f\x73\x74\x61\x72\x74\x5f\x5f\x00\x5f\x49\x54\x4d\x5f\x72\x65\x67\x69\x73\x74\x65\x72\x54\x4d\x43\x6c\x6f\x6e\x65\x54\x61\x62\x6c\x65\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x01\x00\x03\x00\x01\x00\x03\x00\x01\x00\x01\x00\x02\x00\x28\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x97\x91\x96\x06\x00\x00\x03\x00\x32\x00\x00\x00\x10\x00\x00\x00\xb4\x91\x96\x06\x00\x00\x02\x00\x3d\x00\x00\x00\x00\x00\x00\x00\xc8\x0d\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x10\x07\x00\x00\x00\x00\x00\x00\xd0\x0d\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\xc0\x06\x00\x00\x00\x00\x00\x00\xd8\x0f\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x14\x07\x00\x00\x00\x00\x00\x00\x28\x10\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x28\x10\x01\x00\x00\x00\x00\x00\xc0\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xc8\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xd0\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe0\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x08\x10\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x10\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x18\x10\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1f\x20\x03\xd5\xfd\x7b\xbf\xa9\xfd\x03\x00\x91\x2a\x00\x00\x94\xfd\x7b\xc1\xa8\xc0\x03\x5f\xd6\x00\x00\x00\x00\x00\x00\x00\x00\xf0\x7b\xbf\xa9\x90\x00\x00\x90\x11\xfe\x47\xf9\x10\xe2\x3f\x91\x20\x02\x1f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x90\x00\x00\xb0\x11\x02\x40\xf9\x10\x02\x00\x91\x20\x02\x1f\xd6\x90\x00\x00\xb0\x11\x06\x40\xf9\x10\x22\x00\x91\x20\x02\x1f\xd6\x90\x00\x00\xb0\x11\x0a\x40\xf9\x10\x42\x00\x91\x20\x02\x1f\xd6\x90\x00\x00\xb0\x11\x0e\x40\xf9\x10\x62\x00\x91\x20\x02\x1f\xd6\x1f\x20\x03\xd5\x1d\x00\x80\xd2\x1e\x00\x80\xd2\xe5\x03\x00\xaa\xe1\x03\x40\xf9\xe2\x23\x00\x91\xe6\x03\x00\x91\x80\x00\x00\x90\x00\xec\x47\xf9\x03\x00\x80\xd2\x04\x00\x80\xd2\xe5\xff\xff\x97\xf0\xff\xff\x97\x80\x00\x00\x90\x00\xe8\x47\xf9\x40\x00\x00\xb4\xe8\xff\xff\x17\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x80\x00\x00\xb0\x00\xc0\x00\x91\x81\x00\x00\xb0\x21\xc0\x00\x91\x3f\x00\x00\xeb\xc0\x00\x00\x54\x81\x00\x00\x90\x21\xe0\x47\xf9\x61\x00\x00\xb4\xf0\x03\x01\xaa\x00\x02\x1f\xd6\xc0\x03\x5f\xd6\x80\x00\x00\xb0\x00\xc0\x00\x91\x81\x00\x00\xb0\x21\xc0\x00\x91\x21\x00\x00\xcb\x22\xfc\x7f\xd3\x41\x0c\x81\x8b\x21\xfc\x41\x93\xc1\x00\x00\xb4\x82\x00\x00\x90\x42\xf0\x47\xf9\x62\x00\x00\xb4\xf0\x03\x02\xaa\x00\x02\x1f\xd6\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\xfd\x7b\xbe\xa9\xfd\x03\x00\x91\xf3\x0b\x00\xf9\x93\x00\x00\xb0\x60\xc2\x40\x39\x40\x01\x00\x35\x80\x00\x00\x90\x00\xe4\x47\xf9\x80\x00\x00\xb4\x80\x00\x00\xb0\x00\x14\x40\xf9\xb9\xff\xff\x97\xd8\xff\xff\x97\x20\x00\x80\x52\x60\xc2\x00\x39\xf3\x0b\x40\xf9\xfd\x7b\xc2\xa8\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\xdc\xff\xff\x17\xff\x83\x00\xd1\xfd\x7b\x01\xa9\xfd\x43\x00\x91\x28\x00\x80\x52\xa8\xc3\x1f\xb8\x48\x00\x80\x52\xe8\x0b\x00\xb9\xa0\xc3\x5f\xb8\x06\x00\x00\x94\xa0\xc3\x1f\xb8\xe0\x03\x1f\x2a\xfd\x7b\x41\xa9\xff\x83\x00\x91\xc0\x03\x5f\xd6\xff\x43\x00\xd1\xe0\x0f\x00\xb9\xe8\x0f\x40\xb9\x00\x05\x00\x11\xff\x43\x00\x91\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\xfd\x7b\xbf\xa9\xfd\x03\x00\x91\xfd\x7b\xc1\xa8\xc0\x03\x5f\xd6\x01\x00\x02\x00\x01\x1b\x03\x3b\x40\x00\x00\x00\x07\x00\x00\x00\x84\xfe\xff\xff\x58\x00\x00\x00\xd4\xfe\xff\xff\x6c\x00\x00\x00\x04\xff\xff\xff\x80\x00\x00\x00\x44\xff\xff\xff\x94\x00\x00\x00\x94\xff\xff\xff\xb8\x00\x00\x00\x98\xff\xff\xff\xe0\x00\x00\x00\xd0\xff\xff\xff\x08\x01\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x01\x7a\x52\x00\x04\x78\x1e\x01\x1b\x0c\x1f\x00\x10\x00\x00\x00\x18\x00\x00\x00\x24\xfe\xff\xff\x34\x00\x00\x00\x00\x41\x07\x1e\x10\x00\x00\x00\x2c\x00\x00\x00\x60\xfe\xff\xff\x30\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x40\x00\x00\x00\x7c\xfe\xff\xff\x3c\x00\x00\x00\x00\x00\x00\x00\x20\x00\x00\x00\x54\x00\x00\x00\xa8\xfe\xff\xff\x48\x00\x00\x00\x00\x41\x0e\x20\x9d\x04\x9e\x03\x42\x93\x02\x4e\xde\xdd\xd3\x0e\x00\x00\x00\x00\x10\x00\x00\x00\x78\x00\x00\x00\xd4\xfe\xff\xff\x04\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x01\x7a\x52\x00\x01\x7c\x1e\x01"), -Section(".comment", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x00\x06\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x18\x1c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x38\x00\x09\x00\x40\x00\x1d\x00\x1c\x00\x06\x00\x00\x00\x04\x00\x00"), -Section(".interp", 0x238, "\x2f\x6c\x69\x62\x2f\x6c\x64\x2d\x6c\x69\x6e\x75\x78\x2d\x61\x61\x72\x63\x68\x36\x34\x2e\x73\x6f\x2e\x31\x00"), -Section(".note.gnu.build-id", 0x254, "\x04\x00\x00\x00\x14\x00\x00\x00\x03\x00\x00\x00\x47\x4e\x55\x00\xfa\x5e\x12\xb0\x4c\x51\x7a\x2f\x0d\x31\x3d\x15\x92\x0e\xe5\x31\xc6\x67\x9d\xbb"), -Section(".note.ABI-tag", 0x278, "\x04\x00\x00\x00\x10\x00\x00\x00\x01\x00\x00\x00\x47\x4e\x55\x00\x00\x00\x00\x00\x03\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00"), -Section(".gnu.hash", 0x298, "\x01\x00\x00\x00\x01\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".dynsym", 0x2B8, "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x0b\x00\x80\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x17\x00\x20\x10\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x48\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x22\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x22\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x73\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".dynstr", 0x390, "\x00\x5f\x5f\x63\x78\x61\x5f\x66\x69\x6e\x61\x6c\x69\x7a\x65\x00\x5f\x5f\x6c\x69\x62\x63\x5f\x73\x74\x61\x72\x74\x5f\x6d\x61\x69\x6e\x00\x61\x62\x6f\x72\x74\x00\x6c\x69\x62\x63\x2e\x73\x6f\x2e\x36\x00\x47\x4c\x49\x42\x43\x5f\x32\x2e\x31\x37\x00\x47\x4c\x49\x42\x43\x5f\x32\x2e\x33\x34\x00\x5f\x49\x54\x4d\x5f\x64\x65\x72\x65\x67\x69\x73\x74\x65\x72\x54\x4d\x43\x6c\x6f\x6e\x65\x54\x61\x62\x6c\x65\x00\x5f\x5f\x67\x6d\x6f\x6e\x5f\x73\x74\x61\x72\x74\x5f\x5f\x00\x5f\x49\x54\x4d\x5f\x72\x65\x67\x69\x73\x74\x65\x72\x54\x4d\x43\x6c\x6f\x6e\x65\x54\x61\x62\x6c\x65\x00"), -Section(".gnu.version", 0x41E, "\x00\x00\x00\x00\x00\x00\x02\x00\x01\x00\x03\x00\x01\x00\x03\x00\x01\x00"), -Section(".gnu.version_r", 0x430, "\x01\x00\x02\x00\x28\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x97\x91\x96\x06\x00\x00\x03\x00\x32\x00\x00\x00\x10\x00\x00\x00\xb4\x91\x96\x06\x00\x00\x02\x00\x3d\x00\x00\x00\x00\x00\x00\x00"), -Section(".rela.dyn", 0x460, "\xc8\x0d\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x10\x07\x00\x00\x00\x00\x00\x00\xd0\x0d\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\xc0\x06\x00\x00\x00\x00\x00\x00\xd8\x0f\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x14\x07\x00\x00\x00\x00\x00\x00\x28\x10\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x28\x10\x01\x00\x00\x00\x00\x00\xc0\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xc8\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xd0\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe0\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".rela.plt", 0x520, "\x00\x10\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x08\x10\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x10\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x18\x10\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".init", 0x580, "\x1f\x20\x03\xd5\xfd\x7b\xbf\xa9\xfd\x03\x00\x91\x2a\x00\x00\x94\xfd\x7b\xc1\xa8\xc0\x03\x5f\xd6"), -Section(".plt", 0x5A0, "\xf0\x7b\xbf\xa9\x90\x00\x00\x90\x11\xfe\x47\xf9\x10\xe2\x3f\x91\x20\x02\x1f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x90\x00\x00\xb0\x11\x02\x40\xf9\x10\x02\x00\x91\x20\x02\x1f\xd6\x90\x00\x00\xb0\x11\x06\x40\xf9\x10\x22\x00\x91\x20\x02\x1f\xd6\x90\x00\x00\xb0\x11\x0a\x40\xf9\x10\x42\x00\x91\x20\x02\x1f\xd6\x90\x00\x00\xb0\x11\x0e\x40\xf9\x10\x62\x00\x91\x20\x02\x1f\xd6"), -Section(".text", 0x600, "\x1f\x20\x03\xd5\x1d\x00\x80\xd2\x1e\x00\x80\xd2\xe5\x03\x00\xaa\xe1\x03\x40\xf9\xe2\x23\x00\x91\xe6\x03\x00\x91\x80\x00\x00\x90\x00\xec\x47\xf9\x03\x00\x80\xd2\x04\x00\x80\xd2\xe5\xff\xff\x97\xf0\xff\xff\x97\x80\x00\x00\x90\x00\xe8\x47\xf9\x40\x00\x00\xb4\xe8\xff\xff\x17\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x80\x00\x00\xb0\x00\xc0\x00\x91\x81\x00\x00\xb0\x21\xc0\x00\x91\x3f\x00\x00\xeb\xc0\x00\x00\x54\x81\x00\x00\x90\x21\xe0\x47\xf9\x61\x00\x00\xb4\xf0\x03\x01\xaa\x00\x02\x1f\xd6\xc0\x03\x5f\xd6\x80\x00\x00\xb0\x00\xc0\x00\x91\x81\x00\x00\xb0\x21\xc0\x00\x91\x21\x00\x00\xcb\x22\xfc\x7f\xd3\x41\x0c\x81\x8b\x21\xfc\x41\x93\xc1\x00\x00\xb4\x82\x00\x00\x90\x42\xf0\x47\xf9\x62\x00\x00\xb4\xf0\x03\x02\xaa\x00\x02\x1f\xd6\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\xfd\x7b\xbe\xa9\xfd\x03\x00\x91\xf3\x0b\x00\xf9\x93\x00\x00\xb0\x60\xc2\x40\x39\x40\x01\x00\x35\x80\x00\x00\x90\x00\xe4\x47\xf9\x80\x00\x00\xb4\x80\x00\x00\xb0\x00\x14\x40\xf9\xb9\xff\xff\x97\xd8\xff\xff\x97\x20\x00\x80\x52\x60\xc2\x00\x39\xf3\x0b\x40\xf9\xfd\x7b\xc2\xa8\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\xdc\xff\xff\x17\xff\x83\x00\xd1\xfd\x7b\x01\xa9\xfd\x43\x00\x91\x28\x00\x80\x52\xa8\xc3\x1f\xb8\x48\x00\x80\x52\xe8\x0b\x00\xb9\xa0\xc3\x5f\xb8\x06\x00\x00\x94\xa0\xc3\x1f\xb8\xe0\x03\x1f\x2a\xfd\x7b\x41\xa9\xff\x83\x00\x91\xc0\x03\x5f\xd6\xff\x43\x00\xd1\xe0\x0f\x00\xb9\xe8\x0f\x40\xb9\x00\x05\x00\x11\xff\x43\x00\x91\xc0\x03\x5f\xd6"), -Section(".fini", 0x764, "\x1f\x20\x03\xd5\xfd\x7b\xbf\xa9\xfd\x03\x00\x91\xfd\x7b\xc1\xa8\xc0\x03\x5f\xd6"), -Section(".rodata", 0x778, "\x01\x00\x02\x00"), -Section(".eh_frame_hdr", 0x77C, "\x01\x1b\x03\x3b\x40\x00\x00\x00\x07\x00\x00\x00\x84\xfe\xff\xff\x58\x00\x00\x00\xd4\xfe\xff\xff\x6c\x00\x00\x00\x04\xff\xff\xff\x80\x00\x00\x00\x44\xff\xff\xff\x94\x00\x00\x00\x94\xff\xff\xff\xb8\x00\x00\x00\x98\xff\xff\xff\xe0\x00\x00\x00\xd0\xff\xff\xff\x08\x01\x00\x00"), -Section(".eh_frame", 0x7C0, "\x10\x00\x00\x00\x00\x00\x00\x00\x01\x7a\x52\x00\x04\x78\x1e\x01\x1b\x0c\x1f\x00\x10\x00\x00\x00\x18\x00\x00\x00\x24\xfe\xff\xff\x34\x00\x00\x00\x00\x41\x07\x1e\x10\x00\x00\x00\x2c\x00\x00\x00\x60\xfe\xff\xff\x30\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x40\x00\x00\x00\x7c\xfe\xff\xff\x3c\x00\x00\x00\x00\x00\x00\x00\x20\x00\x00\x00\x54\x00\x00\x00\xa8\xfe\xff\xff\x48\x00\x00\x00\x00\x41\x0e\x20\x9d\x04\x9e\x03\x42\x93\x02\x4e\xde\xdd\xd3\x0e\x00\x00\x00\x00\x10\x00\x00\x00\x78\x00\x00\x00\xd4\xfe\xff\xff\x04\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x01\x7a\x52\x00\x01\x7c\x1e\x01\x1b\x0c\x1f\x00\x24\x00\x00\x00\x18\x00\x00\x00\xb0\xfe\xff\xff\x38\x00\x00\x00\x00\x44\x0e\x20\x48\x0c\x1d\x10\x9e\x02\x9d\x04\x60\x0c\x1f\x20\x48\x0e\x00\xde\xdd\x00\x00\x00\x14\x00\x00\x00\x40\x00\x00\x00\xc0\xfe\xff\xff\x18\x00\x00\x00\x00\x44\x0e\x10\x50\x0e\x00\x00\x00\x00\x00\x00"), -Section(".fini_array", 0x10DD0, "\xc0\x06\x00\x00\x00\x00\x00\x00"), -Section(".dynamic", 0x10DD8, "\x01\x00\x00\x00\x00\x00\x00\x00\x28\x00\x00\x00\x00\x00\x00\x00\x0c\x00\x00\x00\x00\x00\x00\x00\x80\x05\x00\x00\x00\x00\x00\x00\x0d\x00\x00\x00\x00\x00\x00\x00\x64\x07\x00\x00\x00\x00\x00\x00\x19\x00\x00\x00\x00\x00\x00\x00\xc8\x0d\x01\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x1a\x00\x00\x00\x00\x00\x00\x00\xd0\x0d\x01\x00\x00\x00\x00\x00\x1c\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\xf5\xfe\xff\x6f\x00\x00\x00\x00\x98\x02\x00\x00\x00\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x90\x03\x00\x00\x00\x00\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\xb8\x02\x00\x00\x00\x00\x00\x00\x0a\x00\x00\x00\x00\x00\x00\x00\x8d\x00\x00\x00\x00\x00\x00\x00\x0b\x00\x00\x00\x00\x00\x00\x00\x18\x00\x00\x00\x00\x00\x00\x00\x15\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\xe8\x0f\x01\x00\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x60\x00\x00\x00\x00\x00\x00\x00\x14\x00\x00\x00\x00\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x17\x00\x00\x00\x00\x00\x00\x00\x20\x05\x00\x00\x00\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x60\x04\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\xc0\x00\x00\x00\x00\x00\x00\x00\x09\x00\x00\x00\x00\x00\x00\x00\x18\x00\x00\x00\x00\x00\x00\x00\xfb\xff\xff\x6f\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\xfe\xff\xff\x6f\x00\x00\x00\x00\x30\x04\x00\x00\x00\x00\x00\x00\xff\xff\xff\x6f\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\xf0\xff\xff\x6f\x00\x00\x00\x00\x1e\x04\x00\x00\x00\x00\x00\x00\xf9\xff\xff\x6f\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".got", 0x10FB8, "\xd8\x0d\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x14\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".got.plt", 0x10FE8, "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xa0\x05\x00\x00\x00\x00\x00\x00\xa0\x05\x00\x00\x00\x00\x00\x00\xa0\x05\x00\x00\x00\x00\x00\x00\xa0\x05\x00\x00\x00\x00\x00\x00"), -Section(".data", 0x11020, "\x00\x00\x00\x00\x00\x00\x00\x00\x28\x10\x01\x00\x00\x00\x00\x00"), -Section(".init_array", 0x10DC8, "\x10\x07\x00\x00\x00\x00\x00\x00")]), -Memmap([Annotation(Region(0x0,0x89F), Attr("segment","02 0 2208")), -Annotation(Region(0x600,0x633), Attr("symbol","\"_start\"")), -Annotation(Region(0x0,0x102), Attr("section","\".shstrtab\"")), -Annotation(Region(0x0,0x244), Attr("section","\".strtab\"")), -Annotation(Region(0x0,0x857), Attr("section","\".symtab\"")), -Annotation(Region(0x0,0x46), Attr("section","\".comment\"")), -Annotation(Region(0x238,0x252), Attr("section","\".interp\"")), -Annotation(Region(0x254,0x277), Attr("section","\".note.gnu.build-id\"")), -Annotation(Region(0x278,0x297), Attr("section","\".note.ABI-tag\"")), -Annotation(Region(0x298,0x2B3), Attr("section","\".gnu.hash\"")), -Annotation(Region(0x2B8,0x38F), Attr("section","\".dynsym\"")), -Annotation(Region(0x390,0x41C), Attr("section","\".dynstr\"")), -Annotation(Region(0x41E,0x42F), Attr("section","\".gnu.version\"")), -Annotation(Region(0x430,0x45F), Attr("section","\".gnu.version_r\"")), -Annotation(Region(0x460,0x51F), Attr("section","\".rela.dyn\"")), -Annotation(Region(0x520,0x57F), Attr("section","\".rela.plt\"")), -Annotation(Region(0x580,0x597), Attr("section","\".init\"")), -Annotation(Region(0x5A0,0x5FF), Attr("section","\".plt\"")), -Annotation(Region(0x580,0x597), Attr("code-region","()")), -Annotation(Region(0x5A0,0x5FF), Attr("code-region","()")), -Annotation(Region(0x600,0x633), Attr("symbol-info","_start 0x600 52")), -Annotation(Region(0x634,0x647), Attr("symbol","\"call_weak_fn\"")), -Annotation(Region(0x634,0x647), Attr("symbol-info","call_weak_fn 0x634 20")), -Annotation(Region(0x714,0x74B), Attr("symbol","\"main\"")), -Annotation(Region(0x600,0x763), Attr("section","\".text\"")), -Annotation(Region(0x600,0x763), Attr("code-region","()")), -Annotation(Region(0x714,0x74B), Attr("symbol-info","main 0x714 56")), -Annotation(Region(0x74C,0x763), Attr("symbol","\"plus_one\"")), -Annotation(Region(0x74C,0x763), Attr("symbol-info","plus_one 0x74C 24")), -Annotation(Region(0x764,0x777), Attr("section","\".fini\"")), -Annotation(Region(0x764,0x777), Attr("code-region","()")), -Annotation(Region(0x778,0x77B), Attr("section","\".rodata\"")), -Annotation(Region(0x77C,0x7BF), Attr("section","\".eh_frame_hdr\"")), -Annotation(Region(0x7C0,0x89F), Attr("section","\".eh_frame\"")), -Annotation(Region(0x10DC8,0x1102F), Attr("segment","03 0x10DC8 624")), -Annotation(Region(0x10DD0,0x10DD7), Attr("section","\".fini_array\"")), -Annotation(Region(0x10DD8,0x10FB7), Attr("section","\".dynamic\"")), -Annotation(Region(0x10FB8,0x10FE7), Attr("section","\".got\"")), -Annotation(Region(0x10FE8,0x1101F), Attr("section","\".got.plt\"")), -Annotation(Region(0x11020,0x1102F), Attr("section","\".data\"")), -Annotation(Region(0x10DC8,0x10DCF), Attr("section","\".init_array\""))]), -Program(Tid(1_629, "%0000065d"), Attrs([]), - Subs([Sub(Tid(1_577, "@__cxa_finalize"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x5D0"), -Attr("stub","()")]), "__cxa_finalize", Args([Arg(Tid(1_630, "%0000065e"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("__cxa_finalize_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(965, "@__cxa_finalize"), - Attrs([Attr("address","0x5D0")]), Phis([]), -Defs([Def(Tid(1_213, "%000004bd"), Attrs([Attr("address","0x5D0"), -Attr("insn","adrp x16, #69632")]), Var("R16",Imm(64)), Int(69632,64)), -Def(Tid(1_220, "%000004c4"), Attrs([Attr("address","0x5D4"), -Attr("insn","ldr x17, [x16, #0x8]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(1_226, "%000004ca"), Attrs([Attr("address","0x5D8"), -Attr("insn","add x16, x16, #0x8")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(8,64)))]), Jmps([Call(Tid(1_231, "%000004cf"), - Attrs([Attr("address","0x5DC"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), -Sub(Tid(1_578, "@__do_global_dtors_aux"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x6C0")]), - "__do_global_dtors_aux", Args([Arg(Tid(1_631, "%0000065f"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("__do_global_dtors_aux_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(670, "@__do_global_dtors_aux"), - Attrs([Attr("address","0x6C0")]), Phis([]), Defs([Def(Tid(674, "%000002a2"), - Attrs([Attr("address","0x6C0"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("#3",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(18446744073709551584,64))), -Def(Tid(680, "%000002a8"), Attrs([Attr("address","0x6C0"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("#3",Imm(64)),Var("R29",Imm(64)),LittleEndian(),64)), -Def(Tid(686, "%000002ae"), Attrs([Attr("address","0x6C0"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("#3",Imm(64)),Int(8,64)),Var("R30",Imm(64)),LittleEndian(),64)), -Def(Tid(690, "%000002b2"), Attrs([Attr("address","0x6C0"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("R31",Imm(64)), -Var("#3",Imm(64))), Def(Tid(696, "%000002b8"), - Attrs([Attr("address","0x6C4"), Attr("insn","mov x29, sp")]), - Var("R29",Imm(64)), Var("R31",Imm(64))), Def(Tid(704, "%000002c0"), - Attrs([Attr("address","0x6C8"), Attr("insn","str x19, [sp, #0x10]")]), - Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(16,64)),Var("R19",Imm(64)),LittleEndian(),64)), -Def(Tid(709, "%000002c5"), Attrs([Attr("address","0x6CC"), -Attr("insn","adrp x19, #69632")]), Var("R19",Imm(64)), Int(69632,64)), -Def(Tid(716, "%000002cc"), Attrs([Attr("address","0x6D0"), -Attr("insn","ldrb w0, [x19, #0x30]")]), Var("R0",Imm(64)), -UNSIGNED(64,Load(Var("mem",Mem(64,8)),PLUS(Var("R19",Imm(64)),Int(48,64)),LittleEndian(),8)))]), -Jmps([Goto(Tid(723, "%000002d3"), Attrs([Attr("address","0x6D4"), -Attr("insn","cbnz w0, #0x28")]), - NEQ(Extract(31,0,Var("R0",Imm(64))),Int(0,32)), -Direct(Tid(721, "%000002d1"))), Goto(Tid(1_619, "%00000653"), Attrs([]), - Int(1,1), Direct(Tid(910, "%0000038e")))])), Blk(Tid(910, "%0000038e"), - Attrs([Attr("address","0x6D8")]), Phis([]), Defs([Def(Tid(913, "%00000391"), - Attrs([Attr("address","0x6D8"), Attr("insn","adrp x0, #65536")]), - Var("R0",Imm(64)), Int(65536,64)), Def(Tid(920, "%00000398"), - Attrs([Attr("address","0x6DC"), Attr("insn","ldr x0, [x0, #0xfc8]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(4040,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(926, "%0000039e"), Attrs([Attr("address","0x6E0"), -Attr("insn","cbz x0, #0x10")]), EQ(Var("R0",Imm(64)),Int(0,64)), -Direct(Tid(924, "%0000039c"))), Goto(Tid(1_620, "%00000654"), Attrs([]), - Int(1,1), Direct(Tid(949, "%000003b5")))])), Blk(Tid(949, "%000003b5"), - Attrs([Attr("address","0x6E4")]), Phis([]), Defs([Def(Tid(952, "%000003b8"), - Attrs([Attr("address","0x6E4"), Attr("insn","adrp x0, #69632")]), - Var("R0",Imm(64)), Int(69632,64)), Def(Tid(959, "%000003bf"), - Attrs([Attr("address","0x6E8"), Attr("insn","ldr x0, [x0, #0x28]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(40,64)),LittleEndian(),64)), -Def(Tid(964, "%000003c4"), Attrs([Attr("address","0x6EC"), -Attr("insn","bl #-0x11c")]), Var("R30",Imm(64)), Int(1776,64))]), -Jmps([Call(Tid(967, "%000003c7"), Attrs([Attr("address","0x6EC"), -Attr("insn","bl #-0x11c")]), Int(1,1), -(Direct(Tid(1_577, "@__cxa_finalize")),Direct(Tid(924, "%0000039c"))))])), -Blk(Tid(924, "%0000039c"), Attrs([Attr("address","0x6F0")]), Phis([]), -Defs([Def(Tid(932, "%000003a4"), Attrs([Attr("address","0x6F0"), -Attr("insn","bl #-0xa0")]), Var("R30",Imm(64)), Int(1780,64))]), -Jmps([Call(Tid(934, "%000003a6"), Attrs([Attr("address","0x6F0"), -Attr("insn","bl #-0xa0")]), Int(1,1), -(Direct(Tid(1_591, "@deregister_tm_clones")),Direct(Tid(936, "%000003a8"))))])), -Blk(Tid(936, "%000003a8"), Attrs([Attr("address","0x6F4")]), Phis([]), -Defs([Def(Tid(939, "%000003ab"), Attrs([Attr("address","0x6F4"), -Attr("insn","mov w0, #0x1")]), Var("R0",Imm(64)), Int(1,64)), -Def(Tid(947, "%000003b3"), Attrs([Attr("address","0x6F8"), -Attr("insn","strb w0, [x19, #0x30]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R19",Imm(64)),Int(48,64)),Extract(7,0,Var("R0",Imm(64))),LittleEndian(),8))]), -Jmps([Goto(Tid(1_621, "%00000655"), Attrs([]), Int(1,1), -Direct(Tid(721, "%000002d1")))])), Blk(Tid(721, "%000002d1"), - Attrs([Attr("address","0x6FC")]), Phis([]), Defs([Def(Tid(731, "%000002db"), - Attrs([Attr("address","0x6FC"), Attr("insn","ldr x19, [sp, #0x10]")]), - Var("R19",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(16,64)),LittleEndian(),64)), -Def(Tid(738, "%000002e2"), Attrs([Attr("address","0x700"), -Attr("insn","ldp x29, x30, [sp], #0x20")]), Var("R29",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(743, "%000002e7"), Attrs([Attr("address","0x700"), -Attr("insn","ldp x29, x30, [sp], #0x20")]), Var("R30",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(747, "%000002eb"), Attrs([Attr("address","0x700"), -Attr("insn","ldp x29, x30, [sp], #0x20")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(32,64)))]), Jmps([Call(Tid(752, "%000002f0"), - Attrs([Attr("address","0x704"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), Sub(Tid(1_582, "@__libc_start_main"), - Attrs([Attr("c.proto","signed (*)(signed (*)(signed , char** , char** );* main, signed , char** , \nvoid* auxv)"), -Attr("address","0x5C0"), Attr("stub","()")]), "__libc_start_main", - Args([Arg(Tid(1_632, "%00000660"), - Attrs([Attr("c.layout","**[ : 64]"), -Attr("c.data","Top:u64 ptr ptr"), -Attr("c.type","signed (*)(signed , char** , char** );*")]), - Var("__libc_start_main_main",Imm(64)), Var("R0",Imm(64)), In()), -Arg(Tid(1_633, "%00000661"), Attrs([Attr("c.layout","[signed : 32]"), -Attr("c.data","Top:u32"), Attr("c.type","signed")]), - Var("__libc_start_main_arg2",Imm(32)), LOW(32,Var("R1",Imm(64))), In()), -Arg(Tid(1_634, "%00000662"), Attrs([Attr("c.layout","**[char : 8]"), -Attr("c.data","Top:u8 ptr ptr"), Attr("c.type","char**")]), - Var("__libc_start_main_arg3",Imm(64)), Var("R2",Imm(64)), Both()), -Arg(Tid(1_635, "%00000663"), Attrs([Attr("c.layout","*[ : 8]"), -Attr("c.data","{} ptr"), Attr("c.type","void*")]), - Var("__libc_start_main_auxv",Imm(64)), Var("R3",Imm(64)), Both()), -Arg(Tid(1_636, "%00000664"), Attrs([Attr("c.layout","[signed : 32]"), -Attr("c.data","Top:u32"), Attr("c.type","signed")]), - Var("__libc_start_main_result",Imm(32)), LOW(32,Var("R0",Imm(64))), -Out())]), Blks([Blk(Tid(503, "@__libc_start_main"), - Attrs([Attr("address","0x5C0")]), Phis([]), -Defs([Def(Tid(1_191, "%000004a7"), Attrs([Attr("address","0x5C0"), -Attr("insn","adrp x16, #69632")]), Var("R16",Imm(64)), Int(69632,64)), -Def(Tid(1_198, "%000004ae"), Attrs([Attr("address","0x5C4"), -Attr("insn","ldr x17, [x16]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R16",Imm(64)),LittleEndian(),64)), -Def(Tid(1_204, "%000004b4"), Attrs([Attr("address","0x5C8"), -Attr("insn","add x16, x16, #0x0")]), Var("R16",Imm(64)), -Var("R16",Imm(64)))]), Jmps([Call(Tid(1_209, "%000004b9"), - Attrs([Attr("address","0x5CC"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), Sub(Tid(1_583, "@_fini"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x764")]), - "_fini", Args([Arg(Tid(1_637, "%00000665"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("_fini_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(31, "@_fini"), - Attrs([Attr("address","0x764")]), Phis([]), Defs([Def(Tid(37, "%00000025"), - Attrs([Attr("address","0x768"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("#0",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(18446744073709551600,64))), -Def(Tid(43, "%0000002b"), Attrs([Attr("address","0x768"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("#0",Imm(64)),Var("R29",Imm(64)),LittleEndian(),64)), -Def(Tid(49, "%00000031"), Attrs([Attr("address","0x768"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("#0",Imm(64)),Int(8,64)),Var("R30",Imm(64)),LittleEndian(),64)), -Def(Tid(53, "%00000035"), Attrs([Attr("address","0x768"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("R31",Imm(64)), -Var("#0",Imm(64))), Def(Tid(59, "%0000003b"), Attrs([Attr("address","0x76C"), -Attr("insn","mov x29, sp")]), Var("R29",Imm(64)), Var("R31",Imm(64))), -Def(Tid(66, "%00000042"), Attrs([Attr("address","0x770"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R29",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(71, "%00000047"), Attrs([Attr("address","0x770"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R30",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(75, "%0000004b"), Attrs([Attr("address","0x770"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(16,64)))]), Jmps([Call(Tid(80, "%00000050"), - Attrs([Attr("address","0x774"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), Sub(Tid(1_584, "@_init"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x580")]), - "_init", Args([Arg(Tid(1_638, "%00000666"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("_init_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(1_399, "@_init"), - Attrs([Attr("address","0x580")]), Phis([]), -Defs([Def(Tid(1_405, "%0000057d"), Attrs([Attr("address","0x584"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("#7",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(18446744073709551600,64))), -Def(Tid(1_411, "%00000583"), Attrs([Attr("address","0x584"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("#7",Imm(64)),Var("R29",Imm(64)),LittleEndian(),64)), -Def(Tid(1_417, "%00000589"), Attrs([Attr("address","0x584"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("#7",Imm(64)),Int(8,64)),Var("R30",Imm(64)),LittleEndian(),64)), -Def(Tid(1_421, "%0000058d"), Attrs([Attr("address","0x584"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("R31",Imm(64)), -Var("#7",Imm(64))), Def(Tid(1_427, "%00000593"), - Attrs([Attr("address","0x588"), Attr("insn","mov x29, sp")]), - Var("R29",Imm(64)), Var("R31",Imm(64))), Def(Tid(1_432, "%00000598"), - Attrs([Attr("address","0x58C"), Attr("insn","bl #0xa8")]), - Var("R30",Imm(64)), Int(1424,64))]), Jmps([Call(Tid(1_434, "%0000059a"), - Attrs([Attr("address","0x58C"), Attr("insn","bl #0xa8")]), Int(1,1), -(Direct(Tid(1_589, "@call_weak_fn")),Direct(Tid(1_436, "%0000059c"))))])), -Blk(Tid(1_436, "%0000059c"), Attrs([Attr("address","0x590")]), Phis([]), -Defs([Def(Tid(1_441, "%000005a1"), Attrs([Attr("address","0x590"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R29",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(1_446, "%000005a6"), Attrs([Attr("address","0x590"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R30",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(1_450, "%000005aa"), Attrs([Attr("address","0x590"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(16,64)))]), Jmps([Call(Tid(1_455, "%000005af"), - Attrs([Attr("address","0x594"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), Sub(Tid(1_585, "@_start"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x600"), -Attr("stub","()"), Attr("entry-point","()")]), "_start", - Args([Arg(Tid(1_639, "%00000667"), Attrs([Attr("c.layout","[signed : 32]"), -Attr("c.data","Top:u32"), Attr("c.type","signed")]), - Var("_start_result",Imm(32)), LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(440, "@_start"), Attrs([Attr("address","0x600")]), Phis([]), -Defs([Def(Tid(445, "%000001bd"), Attrs([Attr("address","0x604"), -Attr("insn","mov x29, #0x0")]), Var("R29",Imm(64)), Int(0,64)), -Def(Tid(450, "%000001c2"), Attrs([Attr("address","0x608"), -Attr("insn","mov x30, #0x0")]), Var("R30",Imm(64)), Int(0,64)), -Def(Tid(456, "%000001c8"), Attrs([Attr("address","0x60C"), -Attr("insn","mov x5, x0")]), Var("R5",Imm(64)), Var("R0",Imm(64))), -Def(Tid(463, "%000001cf"), Attrs([Attr("address","0x610"), -Attr("insn","ldr x1, [sp]")]), Var("R1",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(469, "%000001d5"), Attrs([Attr("address","0x614"), -Attr("insn","add x2, sp, #0x8")]), Var("R2",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(8,64))), Def(Tid(475, "%000001db"), - Attrs([Attr("address","0x618"), Attr("insn","mov x6, sp")]), - Var("R6",Imm(64)), Var("R31",Imm(64))), Def(Tid(480, "%000001e0"), - Attrs([Attr("address","0x61C"), Attr("insn","adrp x0, #65536")]), - Var("R0",Imm(64)), Int(65536,64)), Def(Tid(487, "%000001e7"), - Attrs([Attr("address","0x620"), Attr("insn","ldr x0, [x0, #0xfd8]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(4056,64)),LittleEndian(),64)), -Def(Tid(492, "%000001ec"), Attrs([Attr("address","0x624"), -Attr("insn","mov x3, #0x0")]), Var("R3",Imm(64)), Int(0,64)), -Def(Tid(497, "%000001f1"), Attrs([Attr("address","0x628"), -Attr("insn","mov x4, #0x0")]), Var("R4",Imm(64)), Int(0,64)), -Def(Tid(502, "%000001f6"), Attrs([Attr("address","0x62C"), -Attr("insn","bl #-0x6c")]), Var("R30",Imm(64)), Int(1584,64))]), -Jmps([Call(Tid(505, "%000001f9"), Attrs([Attr("address","0x62C"), -Attr("insn","bl #-0x6c")]), Int(1,1), -(Direct(Tid(1_582, "@__libc_start_main")),Direct(Tid(507, "%000001fb"))))])), -Blk(Tid(507, "%000001fb"), Attrs([Attr("address","0x630")]), Phis([]), -Defs([Def(Tid(510, "%000001fe"), Attrs([Attr("address","0x630"), -Attr("insn","bl #-0x40")]), Var("R30",Imm(64)), Int(1588,64))]), -Jmps([Call(Tid(513, "%00000201"), Attrs([Attr("address","0x630"), -Attr("insn","bl #-0x40")]), Int(1,1), -(Direct(Tid(1_588, "@abort")),Direct(Tid(1_622, "%00000656"))))])), -Blk(Tid(1_622, "%00000656"), Attrs([]), Phis([]), Defs([]), -Jmps([Call(Tid(1_623, "%00000657"), Attrs([]), Int(1,1), -(Direct(Tid(1_589, "@call_weak_fn")),))]))])), Sub(Tid(1_588, "@abort"), - Attrs([Attr("noreturn","()"), Attr("c.proto","void (*)(void)"), -Attr("address","0x5F0"), Attr("stub","()")]), "abort", Args([]), -Blks([Blk(Tid(511, "@abort"), Attrs([Attr("address","0x5F0")]), Phis([]), -Defs([Def(Tid(1_257, "%000004e9"), Attrs([Attr("address","0x5F0"), -Attr("insn","adrp x16, #69632")]), Var("R16",Imm(64)), Int(69632,64)), -Def(Tid(1_264, "%000004f0"), Attrs([Attr("address","0x5F4"), -Attr("insn","ldr x17, [x16, #0x18]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(24,64)),LittleEndian(),64)), -Def(Tid(1_270, "%000004f6"), Attrs([Attr("address","0x5F8"), -Attr("insn","add x16, x16, #0x18")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(24,64)))]), Jmps([Call(Tid(1_275, "%000004fb"), - Attrs([Attr("address","0x5FC"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), Sub(Tid(1_589, "@call_weak_fn"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x634")]), - "call_weak_fn", Args([Arg(Tid(1_640, "%00000668"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("call_weak_fn_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(515, "@call_weak_fn"), - Attrs([Attr("address","0x634")]), Phis([]), Defs([Def(Tid(518, "%00000206"), - Attrs([Attr("address","0x634"), Attr("insn","adrp x0, #65536")]), - Var("R0",Imm(64)), Int(65536,64)), Def(Tid(525, "%0000020d"), - Attrs([Attr("address","0x638"), Attr("insn","ldr x0, [x0, #0xfd0]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(4048,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(531, "%00000213"), Attrs([Attr("address","0x63C"), -Attr("insn","cbz x0, #0x8")]), EQ(Var("R0",Imm(64)),Int(0,64)), -Direct(Tid(529, "%00000211"))), Goto(Tid(1_624, "%00000658"), Attrs([]), - Int(1,1), Direct(Tid(1_029, "%00000405")))])), Blk(Tid(529, "%00000211"), - Attrs([Attr("address","0x644")]), Phis([]), Defs([]), -Jmps([Call(Tid(537, "%00000219"), Attrs([Attr("address","0x644"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))])), -Blk(Tid(1_029, "%00000405"), Attrs([Attr("address","0x640")]), Phis([]), -Defs([]), Jmps([Goto(Tid(1_032, "%00000408"), Attrs([Attr("address","0x640"), -Attr("insn","b #-0x60")]), Int(1,1), -Direct(Tid(1_030, "@__gmon_start__")))])), Blk(Tid(1_030, "@__gmon_start__"), - Attrs([Attr("address","0x5E0")]), Phis([]), -Defs([Def(Tid(1_235, "%000004d3"), Attrs([Attr("address","0x5E0"), -Attr("insn","adrp x16, #69632")]), Var("R16",Imm(64)), Int(69632,64)), -Def(Tid(1_242, "%000004da"), Attrs([Attr("address","0x5E4"), -Attr("insn","ldr x17, [x16, #0x10]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(16,64)),LittleEndian(),64)), -Def(Tid(1_248, "%000004e0"), Attrs([Attr("address","0x5E8"), -Attr("insn","add x16, x16, #0x10")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(16,64)))]), Jmps([Call(Tid(1_253, "%000004e5"), - Attrs([Attr("address","0x5EC"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), -Sub(Tid(1_591, "@deregister_tm_clones"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x650")]), - "deregister_tm_clones", Args([Arg(Tid(1_641, "%00000669"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("deregister_tm_clones_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(543, "@deregister_tm_clones"), - Attrs([Attr("address","0x650")]), Phis([]), Defs([Def(Tid(546, "%00000222"), - Attrs([Attr("address","0x650"), Attr("insn","adrp x0, #69632")]), - Var("R0",Imm(64)), Int(69632,64)), Def(Tid(552, "%00000228"), - Attrs([Attr("address","0x654"), Attr("insn","add x0, x0, #0x30")]), - Var("R0",Imm(64)), PLUS(Var("R0",Imm(64)),Int(48,64))), -Def(Tid(557, "%0000022d"), Attrs([Attr("address","0x658"), -Attr("insn","adrp x1, #69632")]), Var("R1",Imm(64)), Int(69632,64)), -Def(Tid(563, "%00000233"), Attrs([Attr("address","0x65C"), -Attr("insn","add x1, x1, #0x30")]), Var("R1",Imm(64)), -PLUS(Var("R1",Imm(64)),Int(48,64))), Def(Tid(569, "%00000239"), - Attrs([Attr("address","0x660"), Attr("insn","cmp x1, x0")]), - Var("#1",Imm(64)), NOT(Var("R0",Imm(64)))), Def(Tid(574, "%0000023e"), - Attrs([Attr("address","0x660"), Attr("insn","cmp x1, x0")]), - Var("#2",Imm(64)), PLUS(Var("R1",Imm(64)),NOT(Var("R0",Imm(64))))), -Def(Tid(580, "%00000244"), Attrs([Attr("address","0x660"), -Attr("insn","cmp x1, x0")]), Var("VF",Imm(1)), -NEQ(SIGNED(65,PLUS(Var("#2",Imm(64)),Int(1,64))),PLUS(PLUS(SIGNED(65,Var("R1",Imm(64))),SIGNED(65,Var("#1",Imm(64)))),Int(1,65)))), -Def(Tid(586, "%0000024a"), Attrs([Attr("address","0x660"), -Attr("insn","cmp x1, x0")]), Var("CF",Imm(1)), -NEQ(UNSIGNED(65,PLUS(Var("#2",Imm(64)),Int(1,64))),PLUS(PLUS(UNSIGNED(65,Var("R1",Imm(64))),UNSIGNED(65,Var("#1",Imm(64)))),Int(1,65)))), -Def(Tid(590, "%0000024e"), Attrs([Attr("address","0x660"), -Attr("insn","cmp x1, x0")]), Var("ZF",Imm(1)), -EQ(PLUS(Var("#2",Imm(64)),Int(1,64)),Int(0,64))), Def(Tid(594, "%00000252"), - Attrs([Attr("address","0x660"), Attr("insn","cmp x1, x0")]), - Var("NF",Imm(1)), Extract(63,63,PLUS(Var("#2",Imm(64)),Int(1,64))))]), -Jmps([Goto(Tid(600, "%00000258"), Attrs([Attr("address","0x664"), -Attr("insn","b.eq #0x18")]), EQ(Var("ZF",Imm(1)),Int(1,1)), -Direct(Tid(598, "%00000256"))), Goto(Tid(1_625, "%00000659"), Attrs([]), - Int(1,1), Direct(Tid(999, "%000003e7")))])), Blk(Tid(999, "%000003e7"), - Attrs([Attr("address","0x668")]), Phis([]), -Defs([Def(Tid(1_002, "%000003ea"), Attrs([Attr("address","0x668"), -Attr("insn","adrp x1, #65536")]), Var("R1",Imm(64)), Int(65536,64)), -Def(Tid(1_009, "%000003f1"), Attrs([Attr("address","0x66C"), -Attr("insn","ldr x1, [x1, #0xfc0]")]), Var("R1",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R1",Imm(64)),Int(4032,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(1_014, "%000003f6"), Attrs([Attr("address","0x670"), -Attr("insn","cbz x1, #0xc")]), EQ(Var("R1",Imm(64)),Int(0,64)), -Direct(Tid(598, "%00000256"))), Goto(Tid(1_626, "%0000065a"), Attrs([]), - Int(1,1), Direct(Tid(1_018, "%000003fa")))])), Blk(Tid(598, "%00000256"), - Attrs([Attr("address","0x67C")]), Phis([]), Defs([]), -Jmps([Call(Tid(606, "%0000025e"), Attrs([Attr("address","0x67C"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))])), -Blk(Tid(1_018, "%000003fa"), Attrs([Attr("address","0x674")]), Phis([]), -Defs([Def(Tid(1_022, "%000003fe"), Attrs([Attr("address","0x674"), -Attr("insn","mov x16, x1")]), Var("R16",Imm(64)), Var("R1",Imm(64)))]), -Jmps([Call(Tid(1_027, "%00000403"), Attrs([Attr("address","0x678"), -Attr("insn","br x16")]), Int(1,1), (Indirect(Var("R16",Imm(64))),))]))])), -Sub(Tid(1_594, "@frame_dummy"), Attrs([Attr("c.proto","signed (*)(void)"), -Attr("address","0x710")]), "frame_dummy", Args([Arg(Tid(1_642, "%0000066a"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("frame_dummy_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(758, "@frame_dummy"), - Attrs([Attr("address","0x710")]), Phis([]), Defs([]), -Jmps([Call(Tid(760, "%000002f8"), Attrs([Attr("address","0x710"), -Attr("insn","b #-0x90")]), Int(1,1), -(Direct(Tid(1_597, "@register_tm_clones")),))]))])), Sub(Tid(1_595, "@main"), - Attrs([Attr("c.proto","signed (*)(signed argc, const char** argv)"), -Attr("address","0x714")]), "main", Args([Arg(Tid(1_643, "%0000066b"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("main_argc",Imm(32)), -LOW(32,Var("R0",Imm(64))), In()), Arg(Tid(1_644, "%0000066c"), - Attrs([Attr("c.layout","**[char : 8]"), Attr("c.data","Top:u8 ptr ptr"), -Attr("c.type"," const char**")]), Var("main_argv",Imm(64)), -Var("R1",Imm(64)), Both()), Arg(Tid(1_645, "%0000066d"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("main_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(762, "@main"), - Attrs([Attr("address","0x714")]), Phis([]), Defs([Def(Tid(766, "%000002fe"), - Attrs([Attr("address","0x714"), Attr("insn","sub sp, sp, #0x20")]), - Var("R31",Imm(64)), PLUS(Var("R31",Imm(64)),Int(18446744073709551584,64))), -Def(Tid(772, "%00000304"), Attrs([Attr("address","0x718"), -Attr("insn","stp x29, x30, [sp, #0x10]")]), Var("#4",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(16,64))), Def(Tid(778, "%0000030a"), - Attrs([Attr("address","0x718"), Attr("insn","stp x29, x30, [sp, #0x10]")]), - Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("#4",Imm(64)),Var("R29",Imm(64)),LittleEndian(),64)), -Def(Tid(784, "%00000310"), Attrs([Attr("address","0x718"), -Attr("insn","stp x29, x30, [sp, #0x10]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("#4",Imm(64)),Int(8,64)),Var("R30",Imm(64)),LittleEndian(),64)), -Def(Tid(790, "%00000316"), Attrs([Attr("address","0x71C"), -Attr("insn","add x29, sp, #0x10")]), Var("R29",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(16,64))), Def(Tid(795, "%0000031b"), - Attrs([Attr("address","0x720"), Attr("insn","mov w8, #0x1")]), - Var("R8",Imm(64)), Int(1,64)), Def(Tid(803, "%00000323"), - Attrs([Attr("address","0x724"), Attr("insn","stur w8, [x29, #-0x4]")]), - Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R29",Imm(64)),Int(18446744073709551612,64)),Extract(31,0,Var("R8",Imm(64))),LittleEndian(),32)), -Def(Tid(808, "%00000328"), Attrs([Attr("address","0x728"), -Attr("insn","mov w8, #0x2")]), Var("R8",Imm(64)), Int(2,64)), -Def(Tid(816, "%00000330"), Attrs([Attr("address","0x72C"), -Attr("insn","str w8, [sp, #0x8]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),Extract(31,0,Var("R8",Imm(64))),LittleEndian(),32)), -Def(Tid(823, "%00000337"), Attrs([Attr("address","0x730"), -Attr("insn","ldur w0, [x29, #-0x4]")]), Var("R0",Imm(64)), -UNSIGNED(64,Load(Var("mem",Mem(64,8)),PLUS(Var("R29",Imm(64)),Int(18446744073709551612,64)),LittleEndian(),32))), -Def(Tid(828, "%0000033c"), Attrs([Attr("address","0x734"), -Attr("insn","bl #0x18")]), Var("R30",Imm(64)), Int(1848,64))]), -Jmps([Call(Tid(831, "%0000033f"), Attrs([Attr("address","0x734"), -Attr("insn","bl #0x18")]), Int(1,1), -(Direct(Tid(1_596, "@plus_one")),Direct(Tid(870, "%00000366"))))])), -Blk(Tid(870, "%00000366"), Attrs([Attr("address","0x738")]), Phis([]), -Defs([Def(Tid(876, "%0000036c"), Attrs([Attr("address","0x738"), -Attr("insn","stur w0, [x29, #-0x4]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R29",Imm(64)),Int(18446744073709551612,64)),Extract(31,0,Var("R0",Imm(64))),LittleEndian(),32)), -Def(Tid(881, "%00000371"), Attrs([Attr("address","0x73C"), -Attr("insn","mov w0, wzr")]), Var("R0",Imm(64)), Int(0,64)), -Def(Tid(887, "%00000377"), Attrs([Attr("address","0x740"), -Attr("insn","ldp x29, x30, [sp, #0x10]")]), Var("#5",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(16,64))), Def(Tid(892, "%0000037c"), - Attrs([Attr("address","0x740"), Attr("insn","ldp x29, x30, [sp, #0x10]")]), - Var("R29",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("#5",Imm(64)),LittleEndian(),64)), -Def(Tid(897, "%00000381"), Attrs([Attr("address","0x740"), -Attr("insn","ldp x29, x30, [sp, #0x10]")]), Var("R30",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("#5",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(903, "%00000387"), Attrs([Attr("address","0x744"), -Attr("insn","add sp, sp, #0x20")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(32,64)))]), Jmps([Call(Tid(908, "%0000038c"), - Attrs([Attr("address","0x748"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), Sub(Tid(1_596, "@plus_one"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x74C")]), - "plus_one", Args([Arg(Tid(1_646, "%0000066e"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("plus_one_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(829, "@plus_one"), - Attrs([Attr("address","0x74C")]), Phis([]), Defs([Def(Tid(836, "%00000344"), - Attrs([Attr("address","0x74C"), Attr("insn","sub sp, sp, #0x10")]), - Var("R31",Imm(64)), PLUS(Var("R31",Imm(64)),Int(18446744073709551600,64))), -Def(Tid(844, "%0000034c"), Attrs([Attr("address","0x750"), -Attr("insn","str w0, [sp, #0xc]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(12,64)),Extract(31,0,Var("R0",Imm(64))),LittleEndian(),32)), -Def(Tid(851, "%00000353"), Attrs([Attr("address","0x754"), -Attr("insn","ldr w8, [sp, #0xc]")]), Var("R8",Imm(64)), -UNSIGNED(64,Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(12,64)),LittleEndian(),32))), -Def(Tid(857, "%00000359"), Attrs([Attr("address","0x758"), -Attr("insn","add w0, w8, #0x1")]), Var("R0",Imm(64)), -UNSIGNED(64,PLUS(Extract(31,0,Var("R8",Imm(64))),Int(1,32)))), -Def(Tid(863, "%0000035f"), Attrs([Attr("address","0x75C"), -Attr("insn","add sp, sp, #0x10")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(16,64)))]), Jmps([Call(Tid(868, "%00000364"), - Attrs([Attr("address","0x760"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), -Sub(Tid(1_597, "@register_tm_clones"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x680")]), - "register_tm_clones", Args([Arg(Tid(1_647, "%0000066f"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("register_tm_clones_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(608, "@register_tm_clones"), Attrs([Attr("address","0x680")]), - Phis([]), Defs([Def(Tid(611, "%00000263"), Attrs([Attr("address","0x680"), -Attr("insn","adrp x0, #69632")]), Var("R0",Imm(64)), Int(69632,64)), -Def(Tid(617, "%00000269"), Attrs([Attr("address","0x684"), -Attr("insn","add x0, x0, #0x30")]), Var("R0",Imm(64)), -PLUS(Var("R0",Imm(64)),Int(48,64))), Def(Tid(622, "%0000026e"), - Attrs([Attr("address","0x688"), Attr("insn","adrp x1, #69632")]), - Var("R1",Imm(64)), Int(69632,64)), Def(Tid(628, "%00000274"), - Attrs([Attr("address","0x68C"), Attr("insn","add x1, x1, #0x30")]), - Var("R1",Imm(64)), PLUS(Var("R1",Imm(64)),Int(48,64))), -Def(Tid(635, "%0000027b"), Attrs([Attr("address","0x690"), -Attr("insn","sub x1, x1, x0")]), Var("R1",Imm(64)), -PLUS(PLUS(Var("R1",Imm(64)),NOT(Var("R0",Imm(64)))),Int(1,64))), -Def(Tid(641, "%00000281"), Attrs([Attr("address","0x694"), -Attr("insn","lsr x2, x1, #63")]), Var("R2",Imm(64)), -Concat(Int(0,63),Extract(63,63,Var("R1",Imm(64))))), -Def(Tid(648, "%00000288"), Attrs([Attr("address","0x698"), -Attr("insn","add x1, x2, x1, asr #3")]), Var("R1",Imm(64)), -PLUS(Var("R2",Imm(64)),ARSHIFT(Var("R1",Imm(64)),Int(3,3)))), -Def(Tid(654, "%0000028e"), Attrs([Attr("address","0x69C"), -Attr("insn","asr x1, x1, #1")]), Var("R1",Imm(64)), -SIGNED(64,Extract(63,1,Var("R1",Imm(64)))))]), -Jmps([Goto(Tid(660, "%00000294"), Attrs([Attr("address","0x6A0"), -Attr("insn","cbz x1, #0x18")]), EQ(Var("R1",Imm(64)),Int(0,64)), -Direct(Tid(658, "%00000292"))), Goto(Tid(1_627, "%0000065b"), Attrs([]), - Int(1,1), Direct(Tid(969, "%000003c9")))])), Blk(Tid(969, "%000003c9"), - Attrs([Attr("address","0x6A4")]), Phis([]), Defs([Def(Tid(972, "%000003cc"), - Attrs([Attr("address","0x6A4"), Attr("insn","adrp x2, #65536")]), - Var("R2",Imm(64)), Int(65536,64)), Def(Tid(979, "%000003d3"), - Attrs([Attr("address","0x6A8"), Attr("insn","ldr x2, [x2, #0xfe0]")]), - Var("R2",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R2",Imm(64)),Int(4064,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(984, "%000003d8"), Attrs([Attr("address","0x6AC"), -Attr("insn","cbz x2, #0xc")]), EQ(Var("R2",Imm(64)),Int(0,64)), -Direct(Tid(658, "%00000292"))), Goto(Tid(1_628, "%0000065c"), Attrs([]), - Int(1,1), Direct(Tid(988, "%000003dc")))])), Blk(Tid(658, "%00000292"), - Attrs([Attr("address","0x6B8")]), Phis([]), Defs([]), -Jmps([Call(Tid(666, "%0000029a"), Attrs([Attr("address","0x6B8"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))])), -Blk(Tid(988, "%000003dc"), Attrs([Attr("address","0x6B0")]), Phis([]), -Defs([Def(Tid(992, "%000003e0"), Attrs([Attr("address","0x6B0"), -Attr("insn","mov x16, x2")]), Var("R16",Imm(64)), Var("R2",Imm(64)))]), -Jmps([Call(Tid(997, "%000003e5"), Attrs([Attr("address","0x6B4"), -Attr("insn","br x16")]), Int(1,1), -(Indirect(Var("R16",Imm(64))),))]))]))]))) \ No newline at end of file diff --git a/src/test/correct/functions_with_params/clang/functions_with_params.bir b/src/test/correct/functions_with_params/clang/functions_with_params.bir deleted file mode 100644 index ce520371a..000000000 --- a/src/test/correct/functions_with_params/clang/functions_with_params.bir +++ /dev/null @@ -1,254 +0,0 @@ -0000065d: program -00000629: sub __cxa_finalize(__cxa_finalize_result) -0000065e: __cxa_finalize_result :: out u32 = low:32[R0] - -000003c5: -000004bd: R16 := 0x11000 -000004c4: R17 := mem[R16 + 8, el]:u64 -000004ca: R16 := R16 + 8 -000004cf: call R17 with noreturn - -0000062a: sub __do_global_dtors_aux(__do_global_dtors_aux_result) -0000065f: __do_global_dtors_aux_result :: out u32 = low:32[R0] - -0000029e: -000002a2: #3 := R31 - 0x20 -000002a8: mem := mem with [#3, el]:u64 <- R29 -000002ae: mem := mem with [#3 + 8, el]:u64 <- R30 -000002b2: R31 := #3 -000002b8: R29 := R31 -000002c0: mem := mem with [R31 + 0x10, el]:u64 <- R19 -000002c5: R19 := 0x11000 -000002cc: R0 := pad:64[mem[R19 + 0x30]] -000002d3: when 31:0[R0] <> 0 goto %000002d1 -00000653: goto %0000038e - -0000038e: -00000391: R0 := 0x10000 -00000398: R0 := mem[R0 + 0xFC8, el]:u64 -0000039e: when R0 = 0 goto %0000039c -00000654: goto %000003b5 - -000003b5: -000003b8: R0 := 0x11000 -000003bf: R0 := mem[R0 + 0x28, el]:u64 -000003c4: R30 := 0x6F0 -000003c7: call @__cxa_finalize with return %0000039c - -0000039c: -000003a4: R30 := 0x6F4 -000003a6: call @deregister_tm_clones with return %000003a8 - -000003a8: -000003ab: R0 := 1 -000003b3: mem := mem with [R19 + 0x30] <- 7:0[R0] -00000655: goto %000002d1 - -000002d1: -000002db: R19 := mem[R31 + 0x10, el]:u64 -000002e2: R29 := mem[R31, el]:u64 -000002e7: R30 := mem[R31 + 8, el]:u64 -000002eb: R31 := R31 + 0x20 -000002f0: call R30 with noreturn - -0000062e: sub __libc_start_main(__libc_start_main_main, __libc_start_main_arg2, __libc_start_main_arg3, __libc_start_main_auxv, __libc_start_main_result) -00000660: __libc_start_main_main :: in u64 = R0 -00000661: __libc_start_main_arg2 :: in u32 = low:32[R1] -00000662: __libc_start_main_arg3 :: in out u64 = R2 -00000663: __libc_start_main_auxv :: in out u64 = R3 -00000664: __libc_start_main_result :: out u32 = low:32[R0] - -000001f7: -000004a7: R16 := 0x11000 -000004ae: R17 := mem[R16, el]:u64 -000004b4: R16 := R16 -000004b9: call R17 with noreturn - -0000062f: sub _fini(_fini_result) -00000665: _fini_result :: out u32 = low:32[R0] - -0000001f: -00000025: #0 := R31 - 0x10 -0000002b: mem := mem with [#0, el]:u64 <- R29 -00000031: mem := mem with [#0 + 8, el]:u64 <- R30 -00000035: R31 := #0 -0000003b: R29 := R31 -00000042: R29 := mem[R31, el]:u64 -00000047: R30 := mem[R31 + 8, el]:u64 -0000004b: R31 := R31 + 0x10 -00000050: call R30 with noreturn - -00000630: sub _init(_init_result) -00000666: _init_result :: out u32 = low:32[R0] - -00000577: -0000057d: #7 := R31 - 0x10 -00000583: mem := mem with [#7, el]:u64 <- R29 -00000589: mem := mem with [#7 + 8, el]:u64 <- R30 -0000058d: R31 := #7 -00000593: R29 := R31 -00000598: R30 := 0x590 -0000059a: call @call_weak_fn with return %0000059c - -0000059c: -000005a1: R29 := mem[R31, el]:u64 -000005a6: R30 := mem[R31 + 8, el]:u64 -000005aa: R31 := R31 + 0x10 -000005af: call R30 with noreturn - -00000631: sub _start(_start_result) -00000667: _start_result :: out u32 = low:32[R0] - -000001b8: -000001bd: R29 := 0 -000001c2: R30 := 0 -000001c8: R5 := R0 -000001cf: R1 := mem[R31, el]:u64 -000001d5: R2 := R31 + 8 -000001db: R6 := R31 -000001e0: R0 := 0x10000 -000001e7: R0 := mem[R0 + 0xFD8, el]:u64 -000001ec: R3 := 0 -000001f1: R4 := 0 -000001f6: R30 := 0x630 -000001f9: call @__libc_start_main with return %000001fb - -000001fb: -000001fe: R30 := 0x634 -00000201: call @abort with return %00000656 - -00000656: -00000657: call @call_weak_fn with noreturn - -00000634: sub abort() - - -000001ff: -000004e9: R16 := 0x11000 -000004f0: R17 := mem[R16 + 0x18, el]:u64 -000004f6: R16 := R16 + 0x18 -000004fb: call R17 with noreturn - -00000635: sub call_weak_fn(call_weak_fn_result) -00000668: call_weak_fn_result :: out u32 = low:32[R0] - -00000203: -00000206: R0 := 0x10000 -0000020d: R0 := mem[R0 + 0xFD0, el]:u64 -00000213: when R0 = 0 goto %00000211 -00000658: goto %00000405 - -00000211: -00000219: call R30 with noreturn - -00000405: -00000408: goto @__gmon_start__ - -00000406: -000004d3: R16 := 0x11000 -000004da: R17 := mem[R16 + 0x10, el]:u64 -000004e0: R16 := R16 + 0x10 -000004e5: call R17 with noreturn - -00000637: sub deregister_tm_clones(deregister_tm_clones_result) -00000669: deregister_tm_clones_result :: out u32 = low:32[R0] - -0000021f: -00000222: R0 := 0x11000 -00000228: R0 := R0 + 0x30 -0000022d: R1 := 0x11000 -00000233: R1 := R1 + 0x30 -00000239: #1 := ~R0 -0000023e: #2 := R1 + ~R0 -00000244: VF := extend:65[#2 + 1] <> extend:65[R1] + extend:65[#1] + 1 -0000024a: CF := pad:65[#2 + 1] <> pad:65[R1] + pad:65[#1] + 1 -0000024e: ZF := #2 + 1 = 0 -00000252: NF := 63:63[#2 + 1] -00000258: when ZF goto %00000256 -00000659: goto %000003e7 - -000003e7: -000003ea: R1 := 0x10000 -000003f1: R1 := mem[R1 + 0xFC0, el]:u64 -000003f6: when R1 = 0 goto %00000256 -0000065a: goto %000003fa - -00000256: -0000025e: call R30 with noreturn - -000003fa: -000003fe: R16 := R1 -00000403: call R16 with noreturn - -0000063a: sub frame_dummy(frame_dummy_result) -0000066a: frame_dummy_result :: out u32 = low:32[R0] - -000002f6: -000002f8: call @register_tm_clones with noreturn - -0000063b: sub main(main_argc, main_argv, main_result) -0000066b: main_argc :: in u32 = low:32[R0] -0000066c: main_argv :: in out u64 = R1 -0000066d: main_result :: out u32 = low:32[R0] - -000002fa: -000002fe: R31 := R31 - 0x20 -00000304: #4 := R31 + 0x10 -0000030a: mem := mem with [#4, el]:u64 <- R29 -00000310: mem := mem with [#4 + 8, el]:u64 <- R30 -00000316: R29 := R31 + 0x10 -0000031b: R8 := 1 -00000323: mem := mem with [R29 - 4, el]:u32 <- 31:0[R8] -00000328: R8 := 2 -00000330: mem := mem with [R31 + 8, el]:u32 <- 31:0[R8] -00000337: R0 := pad:64[mem[R29 - 4, el]:u32] -0000033c: R30 := 0x738 -0000033f: call @plus_one with return %00000366 - -00000366: -0000036c: mem := mem with [R29 - 4, el]:u32 <- 31:0[R0] -00000371: R0 := 0 -00000377: #5 := R31 + 0x10 -0000037c: R29 := mem[#5, el]:u64 -00000381: R30 := mem[#5 + 8, el]:u64 -00000387: R31 := R31 + 0x20 -0000038c: call R30 with noreturn - -0000063c: sub plus_one(plus_one_result) -0000066e: plus_one_result :: out u32 = low:32[R0] - -0000033d: -00000344: R31 := R31 - 0x10 -0000034c: mem := mem with [R31 + 0xC, el]:u32 <- 31:0[R0] -00000353: R8 := pad:64[mem[R31 + 0xC, el]:u32] -00000359: R0 := pad:64[31:0[R8] + 1] -0000035f: R31 := R31 + 0x10 -00000364: call R30 with noreturn - -0000063d: sub register_tm_clones(register_tm_clones_result) -0000066f: register_tm_clones_result :: out u32 = low:32[R0] - -00000260: -00000263: R0 := 0x11000 -00000269: R0 := R0 + 0x30 -0000026e: R1 := 0x11000 -00000274: R1 := R1 + 0x30 -0000027b: R1 := R1 + ~R0 + 1 -00000281: R2 := 0.63:63[R1] -00000288: R1 := R2 + (R1 ~>> 3) -0000028e: R1 := extend:64[63:1[R1]] -00000294: when R1 = 0 goto %00000292 -0000065b: goto %000003c9 - -000003c9: -000003cc: R2 := 0x10000 -000003d3: R2 := mem[R2 + 0xFE0, el]:u64 -000003d8: when R2 = 0 goto %00000292 -0000065c: goto %000003dc - -00000292: -0000029a: call R30 with noreturn - -000003dc: -000003e0: R16 := R2 -000003e5: call R16 with noreturn diff --git a/src/test/correct/functions_with_params/clang/functions_with_params.expected b/src/test/correct/functions_with_params/clang/functions_with_params.expected index 87db71c5a..bef2bb0db 100644 --- a/src/test/correct/functions_with_params/clang/functions_with_params.expected +++ b/src/test/correct/functions_with_params/clang/functions_with_params.expected @@ -1,37 +1,10 @@ var {:extern} Gamma_R0: bool; -var {:extern} Gamma_R29: bool; -var {:extern} Gamma_R30: bool; -var {:extern} Gamma_R31: bool; -var {:extern} Gamma_R8: bool; var {:extern} Gamma_mem: [bv64]bool; -var {:extern} Gamma_stack: [bv64]bool; var {:extern} R0: bv64; -var {:extern} R29: bv64; -var {:extern} R30: bv64; -var {:extern} R31: bv64; -var {:extern} R8: bv64; var {:extern} mem: [bv64]bv8; -var {:extern} stack: [bv64]bv8; const {:extern} $_IO_stdin_used_addr: bv64; -axiom ($_IO_stdin_used_addr == 1912bv64); -function {:extern} {:bvbuiltin "bvadd"} bvadd32(bv32, bv32) returns (bv32); +axiom ($_IO_stdin_used_addr == 2232bv64); function {:extern} {:bvbuiltin "bvadd"} bvadd64(bv64, bv64) returns (bv64); -function {:extern} gamma_load32(gammaMap: [bv64]bool, index: bv64) returns (bool) { - (gammaMap[bvadd64(index, 3bv64)] && (gammaMap[bvadd64(index, 2bv64)] && (gammaMap[bvadd64(index, 1bv64)] && gammaMap[index]))) -} - -function {:extern} gamma_load64(gammaMap: [bv64]bool, index: bv64) returns (bool) { - (gammaMap[bvadd64(index, 7bv64)] && (gammaMap[bvadd64(index, 6bv64)] && (gammaMap[bvadd64(index, 5bv64)] && (gammaMap[bvadd64(index, 4bv64)] && (gammaMap[bvadd64(index, 3bv64)] && (gammaMap[bvadd64(index, 2bv64)] && (gammaMap[bvadd64(index, 1bv64)] && gammaMap[index]))))))) -} - -function {:extern} gamma_store32(gammaMap: [bv64]bool, index: bv64, value: bool) returns ([bv64]bool) { - gammaMap[index := value][bvadd64(index, 1bv64) := value][bvadd64(index, 2bv64) := value][bvadd64(index, 3bv64) := value] -} - -function {:extern} gamma_store64(gammaMap: [bv64]bool, index: bv64, value: bool) returns ([bv64]bool) { - gammaMap[index := value][bvadd64(index, 1bv64) := value][bvadd64(index, 2bv64) := value][bvadd64(index, 3bv64) := value][bvadd64(index, 4bv64) := value][bvadd64(index, 5bv64) := value][bvadd64(index, 6bv64) := value][bvadd64(index, 7bv64) := value] -} - function {:extern} memory_load32_le(memory: [bv64]bv8, index: bv64) returns (bv32) { (memory[bvadd64(index, 3bv64)] ++ (memory[bvadd64(index, 2bv64)] ++ (memory[bvadd64(index, 1bv64)] ++ memory[index]))) } @@ -40,24 +13,15 @@ function {:extern} memory_load64_le(memory: [bv64]bv8, index: bv64) returns (bv6 (memory[bvadd64(index, 7bv64)] ++ (memory[bvadd64(index, 6bv64)] ++ (memory[bvadd64(index, 5bv64)] ++ (memory[bvadd64(index, 4bv64)] ++ (memory[bvadd64(index, 3bv64)] ++ (memory[bvadd64(index, 2bv64)] ++ (memory[bvadd64(index, 1bv64)] ++ memory[index]))))))) } -function {:extern} memory_store32_le(memory: [bv64]bv8, index: bv64, value: bv32) returns ([bv64]bv8) { - memory[index := value[8:0]][bvadd64(index, 1bv64) := value[16:8]][bvadd64(index, 2bv64) := value[24:16]][bvadd64(index, 3bv64) := value[32:24]] -} - -function {:extern} memory_store64_le(memory: [bv64]bv8, index: bv64, value: bv64) returns ([bv64]bv8) { - memory[index := value[8:0]][bvadd64(index, 1bv64) := value[16:8]][bvadd64(index, 2bv64) := value[24:16]][bvadd64(index, 3bv64) := value[32:24]][bvadd64(index, 4bv64) := value[40:32]][bvadd64(index, 5bv64) := value[48:40]][bvadd64(index, 6bv64) := value[56:48]][bvadd64(index, 7bv64) := value[64:56]] -} - -function {:extern} {:bvbuiltin "zero_extend 32"} zero_extend32_32(bv32) returns (bv64); procedure {:extern} rely(); modifies Gamma_mem, mem; ensures (Gamma_mem == old(Gamma_mem)); ensures (mem == old(mem)); - free ensures (memory_load32_le(mem, 1912bv64) == 131073bv32); - free ensures (memory_load64_le(mem, 69064bv64) == 1808bv64); - free ensures (memory_load64_le(mem, 69072bv64) == 1728bv64); - free ensures (memory_load64_le(mem, 69592bv64) == 1812bv64); - free ensures (memory_load64_le(mem, 69672bv64) == 69672bv64); + free ensures (memory_load32_le(mem, 2232bv64) == 131073bv32); + free ensures (memory_load64_le(mem, 130440bv64) == 2192bv64); + free ensures (memory_load64_le(mem, 130448bv64) == 2112bv64); + free ensures (memory_load64_le(mem, 131056bv64) == 2196bv64); + free ensures (memory_load64_le(mem, 131080bv64) == 131080bv64); procedure {:extern} rely_transitive(); modifies Gamma_mem, mem; @@ -75,105 +39,29 @@ procedure {:extern} rely_reflexive(); procedure {:extern} guarantee_reflexive(); modifies Gamma_mem, mem; -procedure main_1812(); - modifies Gamma_R0, Gamma_R29, Gamma_R30, Gamma_R31, Gamma_R8, Gamma_stack, R0, R29, R30, R31, R8, stack; - free requires (memory_load64_le(mem, 69664bv64) == 0bv64); - free requires (memory_load64_le(mem, 69672bv64) == 69672bv64); - free requires (memory_load32_le(mem, 1912bv64) == 131073bv32); - free requires (memory_load64_le(mem, 69064bv64) == 1808bv64); - free requires (memory_load64_le(mem, 69072bv64) == 1728bv64); - free requires (memory_load64_le(mem, 69592bv64) == 1812bv64); - free requires (memory_load64_le(mem, 69672bv64) == 69672bv64); - free ensures (Gamma_R29 == old(Gamma_R29)); - free ensures (Gamma_R31 == old(Gamma_R31)); - free ensures (R29 == old(R29)); - free ensures (R31 == old(R31)); - free ensures (memory_load32_le(mem, 1912bv64) == 131073bv32); - free ensures (memory_load64_le(mem, 69064bv64) == 1808bv64); - free ensures (memory_load64_le(mem, 69072bv64) == 1728bv64); - free ensures (memory_load64_le(mem, 69592bv64) == 1812bv64); - free ensures (memory_load64_le(mem, 69672bv64) == 69672bv64); - -implementation main_1812() +procedure main(); + modifies Gamma_R0, R0; + free requires (memory_load64_le(mem, 131072bv64) == 0bv64); + free requires (memory_load64_le(mem, 131080bv64) == 131080bv64); + free requires (memory_load32_le(mem, 2232bv64) == 131073bv32); + free requires (memory_load64_le(mem, 130440bv64) == 2192bv64); + free requires (memory_load64_le(mem, 130448bv64) == 2112bv64); + free requires (memory_load64_le(mem, 131056bv64) == 2196bv64); + free requires (memory_load64_le(mem, 131080bv64) == 131080bv64); + free ensures (memory_load32_le(mem, 2232bv64) == 131073bv32); + free ensures (memory_load64_le(mem, 130440bv64) == 2192bv64); + free ensures (memory_load64_le(mem, 130448bv64) == 2112bv64); + free ensures (memory_load64_le(mem, 131056bv64) == 2196bv64); + free ensures (memory_load64_le(mem, 131080bv64) == 131080bv64); + +implementation main() { - var #4: bv64; - var #5: bv64; - var Gamma_#4: bool; - var Gamma_#5: bool; - var Gamma_load18: bool; - var Gamma_load19: bool; - var Gamma_load20: bool; - var load18: bv32; - var load19: bv64; - var load20: bv64; lmain: assume {:captureState "lmain"} true; - R31, Gamma_R31 := bvadd64(R31, 18446744073709551584bv64), Gamma_R31; - #4, Gamma_#4 := bvadd64(R31, 16bv64), Gamma_R31; - stack, Gamma_stack := memory_store64_le(stack, #4, R29), gamma_store64(Gamma_stack, #4, Gamma_R29); - assume {:captureState "%0000030a"} true; - stack, Gamma_stack := memory_store64_le(stack, bvadd64(#4, 8bv64), R30), gamma_store64(Gamma_stack, bvadd64(#4, 8bv64), Gamma_R30); - assume {:captureState "%00000310"} true; - R29, Gamma_R29 := bvadd64(R31, 16bv64), Gamma_R31; - R8, Gamma_R8 := 1bv64, true; - stack, Gamma_stack := memory_store32_le(stack, bvadd64(R29, 18446744073709551612bv64), R8[32:0]), gamma_store32(Gamma_stack, bvadd64(R29, 18446744073709551612bv64), Gamma_R8); - assume {:captureState "%00000323"} true; - R8, Gamma_R8 := 2bv64, true; - stack, Gamma_stack := memory_store32_le(stack, bvadd64(R31, 8bv64), R8[32:0]), gamma_store32(Gamma_stack, bvadd64(R31, 8bv64), Gamma_R8); - assume {:captureState "%00000330"} true; - load18, Gamma_load18 := memory_load32_le(stack, bvadd64(R29, 18446744073709551612bv64)), gamma_load32(Gamma_stack, bvadd64(R29, 18446744073709551612bv64)); - R0, Gamma_R0 := zero_extend32_32(load18), Gamma_load18; - R30, Gamma_R30 := 1848bv64, true; - call plus_one_1868(); - goto l00000366; - l00000366: - assume {:captureState "l00000366"} true; - stack, Gamma_stack := memory_store32_le(stack, bvadd64(R29, 18446744073709551612bv64), R0[32:0]), gamma_store32(Gamma_stack, bvadd64(R29, 18446744073709551612bv64), Gamma_R0); - assume {:captureState "%0000036c"} true; R0, Gamma_R0 := 0bv64, true; - #5, Gamma_#5 := bvadd64(R31, 16bv64), Gamma_R31; - load19, Gamma_load19 := memory_load64_le(stack, #5), gamma_load64(Gamma_stack, #5); - R29, Gamma_R29 := load19, Gamma_load19; - load20, Gamma_load20 := memory_load64_le(stack, bvadd64(#5, 8bv64)), gamma_load64(Gamma_stack, bvadd64(#5, 8bv64)); - R30, Gamma_R30 := load20, Gamma_load20; - R31, Gamma_R31 := bvadd64(R31, 32bv64), Gamma_R31; - goto main_1812_basil_return; - main_1812_basil_return: - assume {:captureState "main_1812_basil_return"} true; - return; -} - -procedure plus_one_1868(); - modifies Gamma_R0, Gamma_R31, Gamma_R8, Gamma_stack, R0, R31, R8, stack; - free requires (memory_load32_le(mem, 1912bv64) == 131073bv32); - free requires (memory_load64_le(mem, 69064bv64) == 1808bv64); - free requires (memory_load64_le(mem, 69072bv64) == 1728bv64); - free requires (memory_load64_le(mem, 69592bv64) == 1812bv64); - free requires (memory_load64_le(mem, 69672bv64) == 69672bv64); - free ensures (Gamma_R31 == old(Gamma_R31)); - free ensures (R31 == old(R31)); - free ensures (memory_load32_le(mem, 1912bv64) == 131073bv32); - free ensures (memory_load64_le(mem, 69064bv64) == 1808bv64); - free ensures (memory_load64_le(mem, 69072bv64) == 1728bv64); - free ensures (memory_load64_le(mem, 69592bv64) == 1812bv64); - free ensures (memory_load64_le(mem, 69672bv64) == 69672bv64); - -implementation plus_one_1868() -{ - var Gamma_load21: bool; - var load21: bv32; - lplus_one: - assume {:captureState "lplus_one"} true; - R31, Gamma_R31 := bvadd64(R31, 18446744073709551600bv64), Gamma_R31; - stack, Gamma_stack := memory_store32_le(stack, bvadd64(R31, 12bv64), R0[32:0]), gamma_store32(Gamma_stack, bvadd64(R31, 12bv64), Gamma_R0); - assume {:captureState "%0000034c"} true; - load21, Gamma_load21 := memory_load32_le(stack, bvadd64(R31, 12bv64)), gamma_load32(Gamma_stack, bvadd64(R31, 12bv64)); - R8, Gamma_R8 := zero_extend32_32(load21), Gamma_load21; - R0, Gamma_R0 := zero_extend32_32(bvadd32(R8[32:0], 1bv32)), Gamma_R8; - R31, Gamma_R31 := bvadd64(R31, 16bv64), Gamma_R31; - goto plus_one_1868_basil_return; - plus_one_1868_basil_return: - assume {:captureState "plus_one_1868_basil_return"} true; + goto main_basil_return; + main_basil_return: + assume {:captureState "main_basil_return"} true; return; } diff --git a/src/test/correct/functions_with_params/clang/functions_with_params.gts b/src/test/correct/functions_with_params/clang/functions_with_params.gts deleted file mode 100644 index 1dff8419e..000000000 Binary files a/src/test/correct/functions_with_params/clang/functions_with_params.gts and /dev/null differ diff --git a/src/test/correct/functions_with_params/clang/functions_with_params.md5sum b/src/test/correct/functions_with_params/clang/functions_with_params.md5sum new file mode 100644 index 000000000..caef1abe9 --- /dev/null +++ b/src/test/correct/functions_with_params/clang/functions_with_params.md5sum @@ -0,0 +1,5 @@ +519ecc5dd72bc6501e1e82747c2df1a2 correct/functions_with_params/clang/a.out +9597df8996e9076033d91320515716ee correct/functions_with_params/clang/functions_with_params.adt +c098e54c4786cd04f8cdcd4a18f03eb6 correct/functions_with_params/clang/functions_with_params.bir +637eb30d3e2a4a1570781e34a2130fcb correct/functions_with_params/clang/functions_with_params.relf +df45891edbf2bf35eb17eadc2bdc2234 correct/functions_with_params/clang/functions_with_params.gts diff --git a/src/test/correct/functions_with_params/clang/functions_with_params.relf b/src/test/correct/functions_with_params/clang/functions_with_params.relf deleted file mode 100644 index 9e85270d5..000000000 --- a/src/test/correct/functions_with_params/clang/functions_with_params.relf +++ /dev/null @@ -1,122 +0,0 @@ - -Relocation section '.rela.dyn' at offset 0x460 contains 8 entries: - Offset Info Type Symbol's Value Symbol's Name + Addend -0000000000010dc8 0000000000000403 R_AARCH64_RELATIVE 710 -0000000000010dd0 0000000000000403 R_AARCH64_RELATIVE 6c0 -0000000000010fd8 0000000000000403 R_AARCH64_RELATIVE 714 -0000000000011028 0000000000000403 R_AARCH64_RELATIVE 11028 -0000000000010fc0 0000000400000401 R_AARCH64_GLOB_DAT 0000000000000000 _ITM_deregisterTMCloneTable + 0 -0000000000010fc8 0000000500000401 R_AARCH64_GLOB_DAT 0000000000000000 __cxa_finalize@GLIBC_2.17 + 0 -0000000000010fd0 0000000600000401 R_AARCH64_GLOB_DAT 0000000000000000 __gmon_start__ + 0 -0000000000010fe0 0000000800000401 R_AARCH64_GLOB_DAT 0000000000000000 _ITM_registerTMCloneTable + 0 - -Relocation section '.rela.plt' at offset 0x520 contains 4 entries: - Offset Info Type Symbol's Value Symbol's Name + Addend -0000000000011000 0000000300000402 R_AARCH64_JUMP_SLOT 0000000000000000 __libc_start_main@GLIBC_2.34 + 0 -0000000000011008 0000000500000402 R_AARCH64_JUMP_SLOT 0000000000000000 __cxa_finalize@GLIBC_2.17 + 0 -0000000000011010 0000000600000402 R_AARCH64_JUMP_SLOT 0000000000000000 __gmon_start__ + 0 -0000000000011018 0000000700000402 R_AARCH64_JUMP_SLOT 0000000000000000 abort@GLIBC_2.17 + 0 - -Symbol table '.dynsym' contains 9 entries: - Num: Value Size Type Bind Vis Ndx Name - 0: 0000000000000000 0 NOTYPE LOCAL DEFAULT UND - 1: 0000000000000580 0 SECTION LOCAL DEFAULT 11 .init - 2: 0000000000011020 0 SECTION LOCAL DEFAULT 23 .data - 3: 0000000000000000 0 FUNC GLOBAL DEFAULT UND __libc_start_main@GLIBC_2.34 (2) - 4: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_deregisterTMCloneTable - 5: 0000000000000000 0 FUNC WEAK DEFAULT UND __cxa_finalize@GLIBC_2.17 (3) - 6: 0000000000000000 0 NOTYPE WEAK DEFAULT UND __gmon_start__ - 7: 0000000000000000 0 FUNC GLOBAL DEFAULT UND abort@GLIBC_2.17 (3) - 8: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_registerTMCloneTable - -Symbol table '.symtab' contains 89 entries: - Num: Value Size Type Bind Vis Ndx Name - 0: 0000000000000000 0 NOTYPE LOCAL DEFAULT UND - 1: 0000000000000238 0 SECTION LOCAL DEFAULT 1 .interp - 2: 0000000000000254 0 SECTION LOCAL DEFAULT 2 .note.gnu.build-id - 3: 0000000000000278 0 SECTION LOCAL DEFAULT 3 .note.ABI-tag - 4: 0000000000000298 0 SECTION LOCAL DEFAULT 4 .gnu.hash - 5: 00000000000002b8 0 SECTION LOCAL DEFAULT 5 .dynsym - 6: 0000000000000390 0 SECTION LOCAL DEFAULT 6 .dynstr - 7: 000000000000041e 0 SECTION LOCAL DEFAULT 7 .gnu.version - 8: 0000000000000430 0 SECTION LOCAL DEFAULT 8 .gnu.version_r - 9: 0000000000000460 0 SECTION LOCAL DEFAULT 9 .rela.dyn - 10: 0000000000000520 0 SECTION LOCAL DEFAULT 10 .rela.plt - 11: 0000000000000580 0 SECTION LOCAL DEFAULT 11 .init - 12: 00000000000005a0 0 SECTION LOCAL DEFAULT 12 .plt - 13: 0000000000000600 0 SECTION LOCAL DEFAULT 13 .text - 14: 0000000000000764 0 SECTION LOCAL DEFAULT 14 .fini - 15: 0000000000000778 0 SECTION LOCAL DEFAULT 15 .rodata - 16: 000000000000077c 0 SECTION LOCAL DEFAULT 16 .eh_frame_hdr - 17: 00000000000007c0 0 SECTION LOCAL DEFAULT 17 .eh_frame - 18: 0000000000010dc8 0 SECTION LOCAL DEFAULT 18 .init_array - 19: 0000000000010dd0 0 SECTION LOCAL DEFAULT 19 .fini_array - 20: 0000000000010dd8 0 SECTION LOCAL DEFAULT 20 .dynamic - 21: 0000000000010fb8 0 SECTION LOCAL DEFAULT 21 .got - 22: 0000000000010fe8 0 SECTION LOCAL DEFAULT 22 .got.plt - 23: 0000000000011020 0 SECTION LOCAL DEFAULT 23 .data - 24: 0000000000011030 0 SECTION LOCAL DEFAULT 24 .bss - 25: 0000000000000000 0 SECTION LOCAL DEFAULT 25 .comment - 26: 0000000000000000 0 FILE LOCAL DEFAULT ABS Scrt1.o - 27: 0000000000000278 0 NOTYPE LOCAL DEFAULT 3 $d - 28: 0000000000000278 32 OBJECT LOCAL DEFAULT 3 __abi_tag - 29: 0000000000000600 0 NOTYPE LOCAL DEFAULT 13 $x - 30: 00000000000007d4 0 NOTYPE LOCAL DEFAULT 17 $d - 31: 0000000000000778 0 NOTYPE LOCAL DEFAULT 15 $d - 32: 0000000000000000 0 FILE LOCAL DEFAULT ABS crti.o - 33: 0000000000000634 0 NOTYPE LOCAL DEFAULT 13 $x - 34: 0000000000000634 20 FUNC LOCAL DEFAULT 13 call_weak_fn - 35: 0000000000000580 0 NOTYPE LOCAL DEFAULT 11 $x - 36: 0000000000000764 0 NOTYPE LOCAL DEFAULT 14 $x - 37: 0000000000000000 0 FILE LOCAL DEFAULT ABS crtn.o - 38: 0000000000000590 0 NOTYPE LOCAL DEFAULT 11 $x - 39: 0000000000000770 0 NOTYPE LOCAL DEFAULT 14 $x - 40: 0000000000000000 0 FILE LOCAL DEFAULT ABS crtstuff.c - 41: 0000000000000650 0 NOTYPE LOCAL DEFAULT 13 $x - 42: 0000000000000650 0 FUNC LOCAL DEFAULT 13 deregister_tm_clones - 43: 0000000000000680 0 FUNC LOCAL DEFAULT 13 register_tm_clones - 44: 0000000000011028 0 NOTYPE LOCAL DEFAULT 23 $d - 45: 00000000000006c0 0 FUNC LOCAL DEFAULT 13 __do_global_dtors_aux - 46: 0000000000011030 1 OBJECT LOCAL DEFAULT 24 completed.0 - 47: 0000000000010dd0 0 NOTYPE LOCAL DEFAULT 19 $d - 48: 0000000000010dd0 0 OBJECT LOCAL DEFAULT 19 __do_global_dtors_aux_fini_array_entry - 49: 0000000000000710 0 FUNC LOCAL DEFAULT 13 frame_dummy - 50: 0000000000010dc8 0 NOTYPE LOCAL DEFAULT 18 $d - 51: 0000000000010dc8 0 OBJECT LOCAL DEFAULT 18 __frame_dummy_init_array_entry - 52: 00000000000007e8 0 NOTYPE LOCAL DEFAULT 17 $d - 53: 0000000000011030 0 NOTYPE LOCAL DEFAULT 24 $d - 54: 0000000000000000 0 FILE LOCAL DEFAULT ABS functions_with_params.c - 55: 0000000000000714 0 NOTYPE LOCAL DEFAULT 13 $x.0 - 56: 000000000000002a 0 NOTYPE LOCAL DEFAULT 25 $d.1 - 57: 0000000000000848 0 NOTYPE LOCAL DEFAULT 17 $d.2 - 58: 0000000000000000 0 FILE LOCAL DEFAULT ABS crtstuff.c - 59: 000000000000089c 0 NOTYPE LOCAL DEFAULT 17 $d - 60: 000000000000089c 0 OBJECT LOCAL DEFAULT 17 __FRAME_END__ - 61: 0000000000000000 0 FILE LOCAL DEFAULT ABS - 62: 0000000000010dd8 0 OBJECT LOCAL DEFAULT ABS _DYNAMIC - 63: 000000000000077c 0 NOTYPE LOCAL DEFAULT 16 __GNU_EH_FRAME_HDR - 64: 0000000000010fb8 0 OBJECT LOCAL DEFAULT ABS _GLOBAL_OFFSET_TABLE_ - 65: 00000000000005a0 0 NOTYPE LOCAL DEFAULT 12 $x - 66: 0000000000000000 0 FUNC GLOBAL DEFAULT UND __libc_start_main@GLIBC_2.34 - 67: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_deregisterTMCloneTable - 68: 0000000000011020 0 NOTYPE WEAK DEFAULT 23 data_start - 69: 0000000000011030 0 NOTYPE GLOBAL DEFAULT 24 __bss_start__ - 70: 0000000000000000 0 FUNC WEAK DEFAULT UND __cxa_finalize@GLIBC_2.17 - 71: 0000000000011038 0 NOTYPE GLOBAL DEFAULT 24 _bss_end__ - 72: 0000000000011030 0 NOTYPE GLOBAL DEFAULT 23 _edata - 73: 0000000000000764 0 FUNC GLOBAL HIDDEN 14 _fini - 74: 0000000000011038 0 NOTYPE GLOBAL DEFAULT 24 __bss_end__ - 75: 000000000000074c 24 FUNC GLOBAL DEFAULT 13 plus_one - 76: 0000000000011020 0 NOTYPE GLOBAL DEFAULT 23 __data_start - 77: 0000000000000000 0 NOTYPE WEAK DEFAULT UND __gmon_start__ - 78: 0000000000011028 0 OBJECT GLOBAL HIDDEN 23 __dso_handle - 79: 0000000000000000 0 FUNC GLOBAL DEFAULT UND abort@GLIBC_2.17 - 80: 0000000000000778 4 OBJECT GLOBAL DEFAULT 15 _IO_stdin_used - 81: 0000000000011038 0 NOTYPE GLOBAL DEFAULT 24 _end - 82: 0000000000000600 52 FUNC GLOBAL DEFAULT 13 _start - 83: 0000000000011038 0 NOTYPE GLOBAL DEFAULT 24 __end__ - 84: 0000000000011030 0 NOTYPE GLOBAL DEFAULT 24 __bss_start - 85: 0000000000000714 56 FUNC GLOBAL DEFAULT 13 main - 86: 0000000000011030 0 OBJECT GLOBAL HIDDEN 23 __TMC_END__ - 87: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_registerTMCloneTable - 88: 0000000000000580 0 FUNC GLOBAL HIDDEN 11 _init diff --git a/src/test/correct/functions_with_params/clang/functions_with_params_gtirb.expected b/src/test/correct/functions_with_params/clang/functions_with_params_gtirb.expected index 3afe8e4a0..d57308200 100644 --- a/src/test/correct/functions_with_params/clang/functions_with_params_gtirb.expected +++ b/src/test/correct/functions_with_params/clang/functions_with_params_gtirb.expected @@ -1,37 +1,10 @@ var {:extern} Gamma_R0: bool; -var {:extern} Gamma_R29: bool; -var {:extern} Gamma_R30: bool; -var {:extern} Gamma_R31: bool; -var {:extern} Gamma_R8: bool; var {:extern} Gamma_mem: [bv64]bool; -var {:extern} Gamma_stack: [bv64]bool; var {:extern} R0: bv64; -var {:extern} R29: bv64; -var {:extern} R30: bv64; -var {:extern} R31: bv64; -var {:extern} R8: bv64; var {:extern} mem: [bv64]bv8; -var {:extern} stack: [bv64]bv8; const {:extern} $_IO_stdin_used_addr: bv64; -axiom ($_IO_stdin_used_addr == 1912bv64); -function {:extern} {:bvbuiltin "bvadd"} bvadd32(bv32, bv32) returns (bv32); +axiom ($_IO_stdin_used_addr == 2232bv64); function {:extern} {:bvbuiltin "bvadd"} bvadd64(bv64, bv64) returns (bv64); -function {:extern} gamma_load32(gammaMap: [bv64]bool, index: bv64) returns (bool) { - (gammaMap[bvadd64(index, 3bv64)] && (gammaMap[bvadd64(index, 2bv64)] && (gammaMap[bvadd64(index, 1bv64)] && gammaMap[index]))) -} - -function {:extern} gamma_load64(gammaMap: [bv64]bool, index: bv64) returns (bool) { - (gammaMap[bvadd64(index, 7bv64)] && (gammaMap[bvadd64(index, 6bv64)] && (gammaMap[bvadd64(index, 5bv64)] && (gammaMap[bvadd64(index, 4bv64)] && (gammaMap[bvadd64(index, 3bv64)] && (gammaMap[bvadd64(index, 2bv64)] && (gammaMap[bvadd64(index, 1bv64)] && gammaMap[index]))))))) -} - -function {:extern} gamma_store32(gammaMap: [bv64]bool, index: bv64, value: bool) returns ([bv64]bool) { - gammaMap[index := value][bvadd64(index, 1bv64) := value][bvadd64(index, 2bv64) := value][bvadd64(index, 3bv64) := value] -} - -function {:extern} gamma_store64(gammaMap: [bv64]bool, index: bv64, value: bool) returns ([bv64]bool) { - gammaMap[index := value][bvadd64(index, 1bv64) := value][bvadd64(index, 2bv64) := value][bvadd64(index, 3bv64) := value][bvadd64(index, 4bv64) := value][bvadd64(index, 5bv64) := value][bvadd64(index, 6bv64) := value][bvadd64(index, 7bv64) := value] -} - function {:extern} memory_load32_le(memory: [bv64]bv8, index: bv64) returns (bv32) { (memory[bvadd64(index, 3bv64)] ++ (memory[bvadd64(index, 2bv64)] ++ (memory[bvadd64(index, 1bv64)] ++ memory[index]))) } @@ -40,24 +13,15 @@ function {:extern} memory_load64_le(memory: [bv64]bv8, index: bv64) returns (bv6 (memory[bvadd64(index, 7bv64)] ++ (memory[bvadd64(index, 6bv64)] ++ (memory[bvadd64(index, 5bv64)] ++ (memory[bvadd64(index, 4bv64)] ++ (memory[bvadd64(index, 3bv64)] ++ (memory[bvadd64(index, 2bv64)] ++ (memory[bvadd64(index, 1bv64)] ++ memory[index]))))))) } -function {:extern} memory_store32_le(memory: [bv64]bv8, index: bv64, value: bv32) returns ([bv64]bv8) { - memory[index := value[8:0]][bvadd64(index, 1bv64) := value[16:8]][bvadd64(index, 2bv64) := value[24:16]][bvadd64(index, 3bv64) := value[32:24]] -} - -function {:extern} memory_store64_le(memory: [bv64]bv8, index: bv64, value: bv64) returns ([bv64]bv8) { - memory[index := value[8:0]][bvadd64(index, 1bv64) := value[16:8]][bvadd64(index, 2bv64) := value[24:16]][bvadd64(index, 3bv64) := value[32:24]][bvadd64(index, 4bv64) := value[40:32]][bvadd64(index, 5bv64) := value[48:40]][bvadd64(index, 6bv64) := value[56:48]][bvadd64(index, 7bv64) := value[64:56]] -} - -function {:extern} {:bvbuiltin "zero_extend 32"} zero_extend32_32(bv32) returns (bv64); procedure {:extern} rely(); modifies Gamma_mem, mem; ensures (Gamma_mem == old(Gamma_mem)); ensures (mem == old(mem)); - free ensures (memory_load32_le(mem, 1912bv64) == 131073bv32); - free ensures (memory_load64_le(mem, 69064bv64) == 1808bv64); - free ensures (memory_load64_le(mem, 69072bv64) == 1728bv64); - free ensures (memory_load64_le(mem, 69592bv64) == 1812bv64); - free ensures (memory_load64_le(mem, 69672bv64) == 69672bv64); + free ensures (memory_load32_le(mem, 2232bv64) == 131073bv32); + free ensures (memory_load64_le(mem, 130440bv64) == 2192bv64); + free ensures (memory_load64_le(mem, 130448bv64) == 2112bv64); + free ensures (memory_load64_le(mem, 131056bv64) == 2196bv64); + free ensures (memory_load64_le(mem, 131080bv64) == 131080bv64); procedure {:extern} rely_transitive(); modifies Gamma_mem, mem; @@ -75,105 +39,29 @@ procedure {:extern} rely_reflexive(); procedure {:extern} guarantee_reflexive(); modifies Gamma_mem, mem; -procedure main_1812(); - modifies Gamma_R0, Gamma_R29, Gamma_R30, Gamma_R31, Gamma_R8, Gamma_stack, R0, R29, R30, R31, R8, stack; - free requires (memory_load64_le(mem, 69664bv64) == 0bv64); - free requires (memory_load64_le(mem, 69672bv64) == 69672bv64); - free requires (memory_load32_le(mem, 1912bv64) == 131073bv32); - free requires (memory_load64_le(mem, 69064bv64) == 1808bv64); - free requires (memory_load64_le(mem, 69072bv64) == 1728bv64); - free requires (memory_load64_le(mem, 69592bv64) == 1812bv64); - free requires (memory_load64_le(mem, 69672bv64) == 69672bv64); - free ensures (Gamma_R29 == old(Gamma_R29)); - free ensures (Gamma_R31 == old(Gamma_R31)); - free ensures (R29 == old(R29)); - free ensures (R31 == old(R31)); - free ensures (memory_load32_le(mem, 1912bv64) == 131073bv32); - free ensures (memory_load64_le(mem, 69064bv64) == 1808bv64); - free ensures (memory_load64_le(mem, 69072bv64) == 1728bv64); - free ensures (memory_load64_le(mem, 69592bv64) == 1812bv64); - free ensures (memory_load64_le(mem, 69672bv64) == 69672bv64); - -implementation main_1812() +procedure main(); + modifies Gamma_R0, R0; + free requires (memory_load64_le(mem, 131072bv64) == 0bv64); + free requires (memory_load64_le(mem, 131080bv64) == 131080bv64); + free requires (memory_load32_le(mem, 2232bv64) == 131073bv32); + free requires (memory_load64_le(mem, 130440bv64) == 2192bv64); + free requires (memory_load64_le(mem, 130448bv64) == 2112bv64); + free requires (memory_load64_le(mem, 131056bv64) == 2196bv64); + free requires (memory_load64_le(mem, 131080bv64) == 131080bv64); + free ensures (memory_load32_le(mem, 2232bv64) == 131073bv32); + free ensures (memory_load64_le(mem, 130440bv64) == 2192bv64); + free ensures (memory_load64_le(mem, 130448bv64) == 2112bv64); + free ensures (memory_load64_le(mem, 131056bv64) == 2196bv64); + free ensures (memory_load64_le(mem, 131080bv64) == 131080bv64); + +implementation main() { - var Cse0__5_0_2: bv64; - var Cse0__5_1_1: bv64; - var Gamma_Cse0__5_0_2: bool; - var Gamma_Cse0__5_1_1: bool; - var Gamma_load1: bool; - var Gamma_load2: bool; - var Gamma_load3: bool; - var load1: bv64; - var load2: bv64; - var load3: bv32; - main_1812__0___kmZuIukTa2pHUJW~uCGfQ: - assume {:captureState "main_1812__0___kmZuIukTa2pHUJW~uCGfQ"} true; - R31, Gamma_R31 := bvadd64(R31, 18446744073709551584bv64), Gamma_R31; - Cse0__5_1_1, Gamma_Cse0__5_1_1 := bvadd64(R31, 16bv64), Gamma_R31; - stack, Gamma_stack := memory_store64_le(stack, Cse0__5_1_1, R29), gamma_store64(Gamma_stack, Cse0__5_1_1, Gamma_R29); - assume {:captureState "1816_1"} true; - stack, Gamma_stack := memory_store64_le(stack, bvadd64(Cse0__5_1_1, 8bv64), R30), gamma_store64(Gamma_stack, bvadd64(Cse0__5_1_1, 8bv64), Gamma_R30); - assume {:captureState "1816_2"} true; - R29, Gamma_R29 := bvadd64(R31, 16bv64), Gamma_R31; - R8, Gamma_R8 := 1bv64, true; - stack, Gamma_stack := memory_store32_le(stack, bvadd64(R29, 18446744073709551612bv64), R8[32:0]), gamma_store32(Gamma_stack, bvadd64(R29, 18446744073709551612bv64), Gamma_R8); - assume {:captureState "1828_0"} true; - R8, Gamma_R8 := 2bv64, true; - stack, Gamma_stack := memory_store32_le(stack, bvadd64(R31, 8bv64), R8[32:0]), gamma_store32(Gamma_stack, bvadd64(R31, 8bv64), Gamma_R8); - assume {:captureState "1836_0"} true; - load3, Gamma_load3 := memory_load32_le(stack, bvadd64(R29, 18446744073709551612bv64)), gamma_load32(Gamma_stack, bvadd64(R29, 18446744073709551612bv64)); - R0, Gamma_R0 := zero_extend32_32(load3), Gamma_load3; - R30, Gamma_R30 := 1848bv64, true; - call plus_one_1868(); - goto main_1812__1__HspZq7YwQ4y0NoLabaih0w; - main_1812__1__HspZq7YwQ4y0NoLabaih0w: - assume {:captureState "main_1812__1__HspZq7YwQ4y0NoLabaih0w"} true; - stack, Gamma_stack := memory_store32_le(stack, bvadd64(R29, 18446744073709551612bv64), R0[32:0]), gamma_store32(Gamma_stack, bvadd64(R29, 18446744073709551612bv64), Gamma_R0); - assume {:captureState "1848_0"} true; + $main$__0__$rIlbG4jGSTydaFqMhxCKWw: + assume {:captureState "$main$__0__$rIlbG4jGSTydaFqMhxCKWw"} true; R0, Gamma_R0 := 0bv64, true; - Cse0__5_0_2, Gamma_Cse0__5_0_2 := bvadd64(R31, 16bv64), Gamma_R31; - load1, Gamma_load1 := memory_load64_le(stack, Cse0__5_0_2), gamma_load64(Gamma_stack, Cse0__5_0_2); - R29, Gamma_R29 := load1, Gamma_load1; - load2, Gamma_load2 := memory_load64_le(stack, bvadd64(Cse0__5_0_2, 8bv64)), gamma_load64(Gamma_stack, bvadd64(Cse0__5_0_2, 8bv64)); - R30, Gamma_R30 := load2, Gamma_load2; - R31, Gamma_R31 := bvadd64(R31, 32bv64), Gamma_R31; - goto main_1812_basil_return; - main_1812_basil_return: - assume {:captureState "main_1812_basil_return"} true; - return; -} - -procedure plus_one_1868(); - modifies Gamma_R0, Gamma_R31, Gamma_R8, Gamma_stack, R0, R31, R8, stack; - free requires (memory_load32_le(mem, 1912bv64) == 131073bv32); - free requires (memory_load64_le(mem, 69064bv64) == 1808bv64); - free requires (memory_load64_le(mem, 69072bv64) == 1728bv64); - free requires (memory_load64_le(mem, 69592bv64) == 1812bv64); - free requires (memory_load64_le(mem, 69672bv64) == 69672bv64); - free ensures (Gamma_R31 == old(Gamma_R31)); - free ensures (R31 == old(R31)); - free ensures (memory_load32_le(mem, 1912bv64) == 131073bv32); - free ensures (memory_load64_le(mem, 69064bv64) == 1808bv64); - free ensures (memory_load64_le(mem, 69072bv64) == 1728bv64); - free ensures (memory_load64_le(mem, 69592bv64) == 1812bv64); - free ensures (memory_load64_le(mem, 69672bv64) == 69672bv64); - -implementation plus_one_1868() -{ - var Gamma_load17: bool; - var load17: bv32; - plus_one_1868__0__Pl39SFHHQI2EffBjodiSvA: - assume {:captureState "plus_one_1868__0__Pl39SFHHQI2EffBjodiSvA"} true; - R31, Gamma_R31 := bvadd64(R31, 18446744073709551600bv64), Gamma_R31; - stack, Gamma_stack := memory_store32_le(stack, bvadd64(R31, 12bv64), R0[32:0]), gamma_store32(Gamma_stack, bvadd64(R31, 12bv64), Gamma_R0); - assume {:captureState "1872_0"} true; - load17, Gamma_load17 := memory_load32_le(stack, bvadd64(R31, 12bv64)), gamma_load32(Gamma_stack, bvadd64(R31, 12bv64)); - R8, Gamma_R8 := zero_extend32_32(load17), Gamma_load17; - R0, Gamma_R0 := zero_extend32_32(bvadd32(R8[32:0], 1bv32)), Gamma_R8; - R31, Gamma_R31 := bvadd64(R31, 16bv64), Gamma_R31; - goto plus_one_1868_basil_return; - plus_one_1868_basil_return: - assume {:captureState "plus_one_1868_basil_return"} true; + goto main_basil_return; + main_basil_return: + assume {:captureState "main_basil_return"} true; return; } diff --git a/src/test/correct/functions_with_params/gcc/functions_with_params.adt b/src/test/correct/functions_with_params/gcc/functions_with_params.adt deleted file mode 100644 index 730ed8c63..000000000 --- a/src/test/correct/functions_with_params/gcc/functions_with_params.adt +++ /dev/null @@ -1,555 +0,0 @@ -Project(Attrs([Attr("filename","\"gcc/functions_with_params.out\""), -Attr("image-specification","(declare abi (name str))\n(declare arch (name str))\n(declare base-address (addr int))\n(declare bias (off int))\n(declare bits (size int))\n(declare code-region (addr int) (size int) (off int))\n(declare code-start (addr int))\n(declare entry-point (addr int))\n(declare external-reference (addr int) (name str))\n(declare format (name str))\n(declare is-executable (flag bool))\n(declare is-little-endian (flag bool))\n(declare llvm:base-address (addr int))\n(declare llvm:code-entry (name str) (off int) (size int))\n(declare llvm:coff-import-library (name str))\n(declare llvm:coff-virtual-section-header (name str) (addr int) (size int))\n(declare llvm:elf-program-header (name str) (off int) (size int))\n(declare llvm:elf-program-header-flags (name str) (ld bool) (r bool) \n (w bool) (x bool))\n(declare llvm:elf-virtual-program-header (name str) (addr int) (size int))\n(declare llvm:entry-point (addr int))\n(declare llvm:macho-symbol (name str) (value int))\n(declare llvm:name-reference (at int) (name str))\n(declare llvm:relocation (at int) (addr int))\n(declare llvm:section-entry (name str) (addr int) (size int) (off int))\n(declare llvm:section-flags (name str) (r bool) (w bool) (x bool))\n(declare llvm:segment-command (name str) (off int) (size int))\n(declare llvm:segment-command-flags (name str) (r bool) (w bool) (x bool))\n(declare llvm:symbol-entry (name str) (addr int) (size int) (off int)\n (value int))\n(declare llvm:virtual-segment-command (name str) (addr int) (size int))\n(declare mapped (addr int) (size int) (off int))\n(declare named-region (addr int) (size int) (name str))\n(declare named-symbol (addr int) (name str))\n(declare require (name str))\n(declare section (addr int) (size int))\n(declare segment (addr int) (size int) (r bool) (w bool) (x bool))\n(declare subarch (name str))\n(declare symbol-chunk (addr int) (size int) (root int))\n(declare symbol-value (addr int) (value int))\n(declare system (name str))\n(declare vendor (name str))\n\n(abi unknown)\n(arch aarch64)\n(base-address 0)\n(bias 0)\n(bits 64)\n(code-region 1884 20 1884)\n(code-region 1536 348 1536)\n(code-region 1440 96 1440)\n(code-region 1408 24 1408)\n(code-start 1588)\n(code-start 1860)\n(code-start 1536)\n(code-start 1812)\n(entry-point 1536)\n(external-reference 69592 _ITM_deregisterTMCloneTable)\n(external-reference 69600 __cxa_finalize)\n(external-reference 69608 __gmon_start__)\n(external-reference 69624 _ITM_registerTMCloneTable)\n(external-reference 69552 __libc_start_main)\n(external-reference 69560 __cxa_finalize)\n(external-reference 69568 __gmon_start__)\n(external-reference 69576 abort)\n(format elf)\n(is-executable true)\n(is-little-endian true)\n(llvm:base-address 0)\n(llvm:code-entry abort 0 0)\n(llvm:code-entry __cxa_finalize 0 0)\n(llvm:code-entry __libc_start_main 0 0)\n(llvm:code-entry _init 1408 0)\n(llvm:code-entry main 1812 48)\n(llvm:code-entry _start 1536 52)\n(llvm:code-entry abort@GLIBC_2.17 0 0)\n(llvm:code-entry plus_one 1860 24)\n(llvm:code-entry _fini 1884 0)\n(llvm:code-entry __cxa_finalize@GLIBC_2.17 0 0)\n(llvm:code-entry __libc_start_main@GLIBC_2.34 0 0)\n(llvm:code-entry frame_dummy 1808 0)\n(llvm:code-entry __do_global_dtors_aux 1728 0)\n(llvm:code-entry register_tm_clones 1664 0)\n(llvm:code-entry deregister_tm_clones 1616 0)\n(llvm:code-entry call_weak_fn 1588 20)\n(llvm:code-entry .fini 1884 20)\n(llvm:code-entry .text 1536 348)\n(llvm:code-entry .plt 1440 96)\n(llvm:code-entry .init 1408 24)\n(llvm:elf-program-header 08 3480 616)\n(llvm:elf-program-header 07 0 0)\n(llvm:elf-program-header 06 1908 68)\n(llvm:elf-program-header 05 596 68)\n(llvm:elf-program-header 04 3496 496)\n(llvm:elf-program-header 03 3480 632)\n(llvm:elf-program-header 02 0 2172)\n(llvm:elf-program-header 01 568 27)\n(llvm:elf-program-header 00 64 504)\n(llvm:elf-program-header-flags 08 false true false false)\n(llvm:elf-program-header-flags 07 false true true false)\n(llvm:elf-program-header-flags 06 false true false false)\n(llvm:elf-program-header-flags 05 false true false false)\n(llvm:elf-program-header-flags 04 false true true false)\n(llvm:elf-program-header-flags 03 true true true false)\n(llvm:elf-program-header-flags 02 true true false true)\n(llvm:elf-program-header-flags 01 false true false false)\n(llvm:elf-program-header-flags 00 false true false false)\n(llvm:elf-virtual-program-header 08 69016 616)\n(llvm:elf-virtual-program-header 07 0 0)\n(llvm:elf-virtual-program-header 06 1908 68)\n(llvm:elf-virtual-program-header 05 596 68)\n(llvm:elf-virtual-program-header 04 69032 496)\n(llvm:elf-virtual-program-header 03 69016 640)\n(llvm:elf-virtual-program-header 02 0 2172)\n(llvm:elf-virtual-program-header 01 568 27)\n(llvm:elf-virtual-program-header 00 64 504)\n(llvm:entry-point 1536)\n(llvm:name-reference 69576 abort)\n(llvm:name-reference 69568 __gmon_start__)\n(llvm:name-reference 69560 __cxa_finalize)\n(llvm:name-reference 69552 __libc_start_main)\n(llvm:name-reference 69624 _ITM_registerTMCloneTable)\n(llvm:name-reference 69608 __gmon_start__)\n(llvm:name-reference 69600 __cxa_finalize)\n(llvm:name-reference 69592 _ITM_deregisterTMCloneTable)\n(llvm:section-entry .shstrtab 0 250 6814)\n(llvm:section-entry .strtab 0 566 6248)\n(llvm:section-entry .symtab 0 2088 4160)\n(llvm:section-entry .comment 0 43 4112)\n(llvm:section-entry .bss 69648 8 4112)\n(llvm:section-entry .data 69632 16 4096)\n(llvm:section-entry .got 69528 104 3992)\n(llvm:section-entry .dynamic 69032 496 3496)\n(llvm:section-entry .fini_array 69024 8 3488)\n(llvm:section-entry .init_array 69016 8 3480)\n(llvm:section-entry .eh_frame 1976 196 1976)\n(llvm:section-entry .eh_frame_hdr 1908 68 1908)\n(llvm:section-entry .rodata 1904 4 1904)\n(llvm:section-entry .fini 1884 20 1884)\n(llvm:section-entry .text 1536 348 1536)\n(llvm:section-entry .plt 1440 96 1440)\n(llvm:section-entry .init 1408 24 1408)\n(llvm:section-entry .rela.plt 1312 96 1312)\n(llvm:section-entry .rela.dyn 1120 192 1120)\n(llvm:section-entry .gnu.version_r 1072 48 1072)\n(llvm:section-entry .gnu.version 1054 18 1054)\n(llvm:section-entry .dynstr 912 141 912)\n(llvm:section-entry .dynsym 696 216 696)\n(llvm:section-entry .gnu.hash 664 28 664)\n(llvm:section-entry .note.ABI-tag 632 32 632)\n(llvm:section-entry .note.gnu.build-id 596 36 596)\n(llvm:section-entry .interp 568 27 568)\n(llvm:section-flags .shstrtab true false false)\n(llvm:section-flags .strtab true false false)\n(llvm:section-flags .symtab true false false)\n(llvm:section-flags .comment true false false)\n(llvm:section-flags .bss true true false)\n(llvm:section-flags .data true true false)\n(llvm:section-flags .got true true false)\n(llvm:section-flags .dynamic true true false)\n(llvm:section-flags .fini_array true true false)\n(llvm:section-flags .init_array true true false)\n(llvm:section-flags .eh_frame true false false)\n(llvm:section-flags .eh_frame_hdr true false false)\n(llvm:section-flags .rodata true false false)\n(llvm:section-flags .fini true false true)\n(llvm:section-flags .text true false true)\n(llvm:section-flags .plt true false true)\n(llvm:section-flags .init true false true)\n(llvm:section-flags .rela.plt true false false)\n(llvm:section-flags .rela.dyn true false false)\n(llvm:section-flags .gnu.version_r true false false)\n(llvm:section-flags .gnu.version true false false)\n(llvm:section-flags .dynstr true false false)\n(llvm:section-flags .dynsym true false false)\n(llvm:section-flags .gnu.hash true false false)\n(llvm:section-flags .note.ABI-tag true false false)\n(llvm:section-flags .note.gnu.build-id true false false)\n(llvm:section-flags .interp true false false)\n(llvm:symbol-entry abort 0 0 0 0)\n(llvm:symbol-entry __cxa_finalize 0 0 0 0)\n(llvm:symbol-entry __libc_start_main 0 0 0 0)\n(llvm:symbol-entry _init 1408 0 1408 1408)\n(llvm:symbol-entry main 1812 48 1812 1812)\n(llvm:symbol-entry _start 1536 52 1536 1536)\n(llvm:symbol-entry abort@GLIBC_2.17 0 0 0 0)\n(llvm:symbol-entry plus_one 1860 24 1860 1860)\n(llvm:symbol-entry _fini 1884 0 1884 1884)\n(llvm:symbol-entry __cxa_finalize@GLIBC_2.17 0 0 0 0)\n(llvm:symbol-entry __libc_start_main@GLIBC_2.34 0 0 0 0)\n(llvm:symbol-entry frame_dummy 1808 0 1808 1808)\n(llvm:symbol-entry __do_global_dtors_aux 1728 0 1728 1728)\n(llvm:symbol-entry register_tm_clones 1664 0 1664 1664)\n(llvm:symbol-entry deregister_tm_clones 1616 0 1616 1616)\n(llvm:symbol-entry call_weak_fn 1588 20 1588 1588)\n(mapped 0 2172 0)\n(mapped 69016 632 3480)\n(named-region 0 2172 02)\n(named-region 69016 640 03)\n(named-region 568 27 .interp)\n(named-region 596 36 .note.gnu.build-id)\n(named-region 632 32 .note.ABI-tag)\n(named-region 664 28 .gnu.hash)\n(named-region 696 216 .dynsym)\n(named-region 912 141 .dynstr)\n(named-region 1054 18 .gnu.version)\n(named-region 1072 48 .gnu.version_r)\n(named-region 1120 192 .rela.dyn)\n(named-region 1312 96 .rela.plt)\n(named-region 1408 24 .init)\n(named-region 1440 96 .plt)\n(named-region 1536 348 .text)\n(named-region 1884 20 .fini)\n(named-region 1904 4 .rodata)\n(named-region 1908 68 .eh_frame_hdr)\n(named-region 1976 196 .eh_frame)\n(named-region 69016 8 .init_array)\n(named-region 69024 8 .fini_array)\n(named-region 69032 496 .dynamic)\n(named-region 69528 104 .got)\n(named-region 69632 16 .data)\n(named-region 69648 8 .bss)\n(named-region 0 43 .comment)\n(named-region 0 2088 .symtab)\n(named-region 0 566 .strtab)\n(named-region 0 250 .shstrtab)\n(named-symbol 1588 call_weak_fn)\n(named-symbol 1616 deregister_tm_clones)\n(named-symbol 1664 register_tm_clones)\n(named-symbol 1728 __do_global_dtors_aux)\n(named-symbol 1808 frame_dummy)\n(named-symbol 0 __libc_start_main@GLIBC_2.34)\n(named-symbol 0 __cxa_finalize@GLIBC_2.17)\n(named-symbol 1884 _fini)\n(named-symbol 1860 plus_one)\n(named-symbol 0 abort@GLIBC_2.17)\n(named-symbol 1536 _start)\n(named-symbol 1812 main)\n(named-symbol 1408 _init)\n(named-symbol 0 __libc_start_main)\n(named-symbol 0 __cxa_finalize)\n(named-symbol 0 abort)\n(require libc.so.6)\n(section 568 27)\n(section 596 36)\n(section 632 32)\n(section 664 28)\n(section 696 216)\n(section 912 141)\n(section 1054 18)\n(section 1072 48)\n(section 1120 192)\n(section 1312 96)\n(section 1408 24)\n(section 1440 96)\n(section 1536 348)\n(section 1884 20)\n(section 1904 4)\n(section 1908 68)\n(section 1976 196)\n(section 69016 8)\n(section 69024 8)\n(section 69032 496)\n(section 69528 104)\n(section 69632 16)\n(section 69648 8)\n(section 0 43)\n(section 0 2088)\n(section 0 566)\n(section 0 250)\n(segment 0 2172 true false true)\n(segment 69016 640 true true false)\n(subarch v8)\n(symbol-chunk 1588 20 1588)\n(symbol-chunk 1860 24 1860)\n(symbol-chunk 1536 52 1536)\n(symbol-chunk 1812 48 1812)\n(symbol-value 1588 1588)\n(symbol-value 1616 1616)\n(symbol-value 1664 1664)\n(symbol-value 1728 1728)\n(symbol-value 1808 1808)\n(symbol-value 1884 1884)\n(symbol-value 1860 1860)\n(symbol-value 1536 1536)\n(symbol-value 1812 1812)\n(symbol-value 1408 1408)\n(symbol-value 0 0)\n(system \"\")\n(vendor \"\")\n"), -Attr("abi-name","\"aarch64-linux-gnu-elf\"")]), -Sections([Section(".shstrtab", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x00\x06\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x98\x1b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x38\x00\x09\x00\x40\x00\x1c\x00\x1b\x00\x06\x00\x00\x00\x04\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x04\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x08\x00\x00\x00\x00\x00\x00\x7c\x08\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x01\x00\x00\x00\x06\x00\x00\x00\x98\x0d\x00\x00\x00\x00\x00\x00\x98\x0d"), -Section(".strtab", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x00\x06\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x98\x1b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x38\x00\x09\x00\x40\x00\x1c\x00\x1b\x00\x06\x00\x00\x00\x04\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x04\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x08\x00\x00\x00\x00\x00\x00\x7c\x08\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x01\x00\x00\x00\x06\x00\x00\x00\x98\x0d\x00\x00\x00\x00\x00\x00\x98\x0d\x01\x00\x00\x00\x00\x00\x98\x0d\x01\x00\x00\x00\x00\x00\x78\x02\x00\x00\x00\x00\x00\x00\x80\x02\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x02\x00\x00\x00\x06\x00\x00\x00\xa8\x0d\x00\x00\x00\x00\x00\x00\xa8\x0d\x01\x00\x00\x00\x00\x00\xa8\x0d\x01\x00\x00\x00\x00\x00\xf0\x01\x00\x00\x00\x00\x00\x00\xf0\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x04\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x50\xe5\x74\x64\x04\x00\x00\x00\x74\x07\x00\x00\x00\x00\x00\x00\x74\x07\x00\x00\x00\x00\x00\x00\x74\x07\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x51\xe5\x74\x64\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x52\xe5\x74\x64\x04\x00\x00\x00\x98\x0d\x00\x00\x00\x00\x00\x00\x98\x0d\x01\x00\x00\x00\x00\x00\x98\x0d\x01\x00\x00\x00\x00\x00\x68\x02\x00\x00\x00\x00\x00\x00\x68\x02\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00"), -Section(".symtab", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x00\x06\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x98\x1b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x38\x00\x09\x00\x40\x00\x1c\x00\x1b\x00\x06\x00\x00\x00\x04\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x04\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x08\x00\x00\x00\x00\x00\x00\x7c\x08\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x01\x00\x00\x00\x06\x00\x00\x00\x98\x0d\x00\x00\x00\x00\x00\x00\x98\x0d\x01\x00\x00\x00\x00\x00\x98\x0d\x01\x00\x00\x00\x00\x00\x78\x02\x00\x00\x00\x00\x00\x00\x80\x02\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x02\x00\x00\x00\x06\x00\x00\x00\xa8\x0d\x00\x00\x00\x00\x00\x00\xa8\x0d\x01\x00\x00\x00\x00\x00\xa8\x0d\x01\x00\x00\x00\x00\x00\xf0\x01\x00\x00\x00\x00\x00\x00\xf0\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x04\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x50\xe5\x74\x64\x04\x00\x00\x00\x74\x07\x00\x00\x00\x00\x00\x00\x74\x07\x00\x00\x00\x00\x00\x00\x74\x07\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x51\xe5\x74\x64\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x52\xe5\x74\x64\x04\x00\x00\x00\x98\x0d\x00\x00\x00\x00\x00\x00\x98\x0d\x01\x00\x00\x00\x00\x00\x98\x0d\x01\x00\x00\x00\x00\x00\x68\x02\x00\x00\x00\x00\x00\x00\x68\x02\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x2f\x6c\x69\x62\x2f\x6c\x64\x2d\x6c\x69\x6e\x75\x78\x2d\x61\x61\x72\x63\x68\x36\x34\x2e\x73\x6f\x2e\x31\x00\x00\x04\x00\x00\x00\x14\x00\x00\x00\x03\x00\x00\x00\x47\x4e\x55\x00\x41\x68\x0a\x3d\xba\x63\x02\x26\xe4\x0e\x2f\x8c\xf3\x00\xfc\x7a\x0a\x11\x0c\xfa\x04\x00\x00\x00\x10\x00\x00\x00\x01\x00\x00\x00\x47\x4e\x55\x00\x00\x00\x00\x00\x03\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x01\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x0b\x00\x80\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x16\x00\x00\x10\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x48\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x22\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x22\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x73\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5f\x5f\x63\x78\x61\x5f\x66\x69\x6e\x61\x6c\x69\x7a\x65\x00\x5f\x5f\x6c\x69\x62\x63\x5f\x73\x74\x61\x72\x74\x5f\x6d\x61\x69\x6e\x00\x61\x62\x6f\x72\x74\x00\x6c\x69\x62\x63\x2e\x73\x6f\x2e\x36\x00\x47\x4c\x49\x42\x43\x5f\x32\x2e\x31\x37\x00\x47\x4c\x49\x42\x43\x5f\x32\x2e\x33\x34\x00\x5f\x49\x54\x4d\x5f\x64\x65\x72\x65\x67\x69\x73\x74\x65\x72\x54\x4d\x43\x6c\x6f\x6e\x65\x54\x61\x62\x6c\x65\x00\x5f\x5f\x67\x6d\x6f\x6e\x5f\x73\x74\x61\x72\x74\x5f\x5f\x00\x5f\x49\x54\x4d\x5f\x72\x65\x67\x69\x73\x74\x65\x72\x54\x4d\x43\x6c\x6f\x6e\x65\x54\x61\x62\x6c\x65\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x01\x00\x03\x00\x01\x00\x03\x00\x01\x00\x01\x00\x02\x00\x28\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x97\x91\x96\x06\x00\x00\x03\x00\x32\x00\x00\x00\x10\x00\x00\x00\xb4\x91\x96\x06\x00\x00\x02\x00\x3d\x00\x00\x00\x00\x00\x00\x00\x98\x0d\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x10\x07\x00\x00\x00\x00\x00\x00\xa0\x0d\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\xc0\x06\x00\x00\x00\x00\x00\x00\xf0\x0f\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x14\x07\x00\x00\x00\x00\x00\x00\x08\x10\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x08\x10\x01\x00\x00\x00\x00\x00\xd8\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe0\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe8\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xf8\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xb0\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xb8\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xc0\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xc8\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1f\x20\x03\xd5\xfd\x7b\xbf\xa9\xfd\x03\x00\x91\x2a\x00\x00\x94\xfd\x7b\xc1\xa8\xc0\x03\x5f\xd6\x00\x00\x00\x00\x00\x00\x00\x00\xf0\x7b\xbf\xa9\x90\x00\x00\x90\x11\xd6\x47\xf9\x10\xa2\x3e\x91\x20\x02\x1f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x90\x00\x00\x90\x11\xda\x47\xf9\x10\xc2\x3e\x91\x20\x02\x1f\xd6\x90\x00\x00\x90\x11\xde\x47\xf9\x10\xe2\x3e\x91\x20\x02\x1f\xd6\x90\x00\x00\x90\x11\xe2\x47\xf9\x10\x02\x3f\x91\x20\x02\x1f\xd6\x90\x00\x00\x90\x11\xe6\x47\xf9\x10\x22\x3f\x91\x20\x02\x1f\xd6\x1f\x20\x03\xd5\x1d\x00\x80\xd2\x1e\x00\x80\xd2\xe5\x03\x00\xaa\xe1\x03\x40\xf9\xe2\x23\x00\x91\xe6\x03\x00\x91\x80\x00\x00\x90\x00\xf8\x47\xf9\x03\x00\x80\xd2\x04\x00\x80\xd2\xe5\xff\xff\x97\xf0\xff\xff\x97\x80\x00\x00\x90\x00\xf4\x47\xf9\x40\x00\x00\xb4\xe8\xff\xff\x17\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x80\x00\x00\xb0\x00\x40\x00\x91\x81\x00\x00\xb0\x21\x40\x00\x91\x3f\x00\x00\xeb\xc0\x00\x00\x54\x81\x00\x00\x90\x21\xec\x47\xf9\x61\x00\x00\xb4\xf0\x03\x01\xaa\x00\x02\x1f\xd6\xc0\x03\x5f\xd6\x80\x00\x00\xb0\x00\x40\x00\x91\x81\x00\x00\xb0\x21\x40\x00\x91\x21\x00\x00\xcb\x22\xfc\x7f\xd3\x41\x0c\x81\x8b\x21\xfc\x41\x93\xc1\x00\x00\xb4\x82\x00\x00\x90\x42\xfc\x47\xf9\x62\x00\x00\xb4\xf0\x03\x02\xaa\x00\x02\x1f\xd6\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\xfd\x7b\xbe\xa9\xfd\x03\x00\x91\xf3\x0b\x00\xf9\x93\x00\x00\xb0\x60\x42\x40\x39\x40\x01\x00\x35\x80\x00\x00\x90\x00\xf0\x47\xf9\x80\x00\x00\xb4\x80\x00\x00\xb0\x00\x04\x40\xf9\xb9\xff\xff\x97\xd8\xff\xff\x97\x20\x00\x80\x52\x60\x42\x00\x39\xf3\x0b\x40\xf9\xfd\x7b\xc2\xa8\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\xdc\xff\xff\x17\xfd\x7b\xbe\xa9\xfd\x03\x00\x91\x20\x00\x80\x52\xe0\x1b\x00\xb9\x40\x00\x80\x52\xe0\x1f\x00\xb9\xe0\x1b\x40\xb9\x05\x00\x00\x94\xe0\x1b\x00\xb9\x00\x00\x80\x52\xfd\x7b\xc2\xa8\xc0\x03\x5f\xd6\xff\x43\x00\xd1\xe0\x0f\x00\xb9\xe0\x0f\x40\xb9\x00\x04\x00\x11\xff\x43\x00\x91\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\xfd\x7b\xbf\xa9\xfd\x03\x00\x91\xfd\x7b\xc1\xa8\xc0\x03\x5f\xd6\x01\x00\x02\x00\x01\x1b\x03\x3b\x40\x00\x00\x00\x07\x00\x00\x00\x8c\xfe\xff\xff\x58\x00\x00\x00\xdc\xfe\xff\xff\x6c\x00\x00\x00\x0c\xff\xff\xff\x80\x00\x00\x00\x4c\xff\xff\xff\x94\x00\x00\x00\x9c\xff\xff\xff\xb8\x00\x00\x00\xa0\xff\xff\xff\xcc\x00\x00\x00\xd0\xff\xff\xff\xec\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x01\x7a\x52\x00\x04\x78\x1e\x01\x1b\x0c\x1f\x00\x10\x00\x00\x00\x18\x00\x00\x00\x2c\xfe\xff\xff\x34\x00\x00\x00\x00\x41\x07\x1e\x10\x00\x00\x00\x2c\x00\x00\x00\x68\xfe\xff\xff\x30\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x40\x00\x00\x00\x84\xfe\xff\xff\x3c\x00\x00\x00\x00\x00\x00\x00\x20\x00\x00\x00\x54\x00\x00\x00\xb0\xfe\xff\xff\x48\x00\x00\x00\x00\x41\x0e\x20\x9d\x04\x9e\x03\x42\x93\x02\x4e\xde\xdd\xd3\x0e"), -Section(".comment", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x00\x06\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x98\x1b\x00"), -Section(".interp", 0x238, "\x2f\x6c\x69\x62\x2f\x6c\x64\x2d\x6c\x69\x6e\x75\x78\x2d\x61\x61\x72\x63\x68\x36\x34\x2e\x73\x6f\x2e\x31\x00"), -Section(".note.gnu.build-id", 0x254, "\x04\x00\x00\x00\x14\x00\x00\x00\x03\x00\x00\x00\x47\x4e\x55\x00\x41\x68\x0a\x3d\xba\x63\x02\x26\xe4\x0e\x2f\x8c\xf3\x00\xfc\x7a\x0a\x11\x0c\xfa"), -Section(".note.ABI-tag", 0x278, "\x04\x00\x00\x00\x10\x00\x00\x00\x01\x00\x00\x00\x47\x4e\x55\x00\x00\x00\x00\x00\x03\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00"), -Section(".gnu.hash", 0x298, "\x01\x00\x00\x00\x01\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".dynsym", 0x2B8, "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x0b\x00\x80\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x16\x00\x00\x10\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x48\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x22\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x22\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x73\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".dynstr", 0x390, "\x00\x5f\x5f\x63\x78\x61\x5f\x66\x69\x6e\x61\x6c\x69\x7a\x65\x00\x5f\x5f\x6c\x69\x62\x63\x5f\x73\x74\x61\x72\x74\x5f\x6d\x61\x69\x6e\x00\x61\x62\x6f\x72\x74\x00\x6c\x69\x62\x63\x2e\x73\x6f\x2e\x36\x00\x47\x4c\x49\x42\x43\x5f\x32\x2e\x31\x37\x00\x47\x4c\x49\x42\x43\x5f\x32\x2e\x33\x34\x00\x5f\x49\x54\x4d\x5f\x64\x65\x72\x65\x67\x69\x73\x74\x65\x72\x54\x4d\x43\x6c\x6f\x6e\x65\x54\x61\x62\x6c\x65\x00\x5f\x5f\x67\x6d\x6f\x6e\x5f\x73\x74\x61\x72\x74\x5f\x5f\x00\x5f\x49\x54\x4d\x5f\x72\x65\x67\x69\x73\x74\x65\x72\x54\x4d\x43\x6c\x6f\x6e\x65\x54\x61\x62\x6c\x65\x00"), -Section(".gnu.version", 0x41E, "\x00\x00\x00\x00\x00\x00\x02\x00\x01\x00\x03\x00\x01\x00\x03\x00\x01\x00"), -Section(".gnu.version_r", 0x430, "\x01\x00\x02\x00\x28\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x97\x91\x96\x06\x00\x00\x03\x00\x32\x00\x00\x00\x10\x00\x00\x00\xb4\x91\x96\x06\x00\x00\x02\x00\x3d\x00\x00\x00\x00\x00\x00\x00"), -Section(".rela.dyn", 0x460, "\x98\x0d\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x10\x07\x00\x00\x00\x00\x00\x00\xa0\x0d\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\xc0\x06\x00\x00\x00\x00\x00\x00\xf0\x0f\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x14\x07\x00\x00\x00\x00\x00\x00\x08\x10\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x08\x10\x01\x00\x00\x00\x00\x00\xd8\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe0\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe8\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xf8\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".rela.plt", 0x520, "\xb0\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xb8\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xc0\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xc8\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".init", 0x580, "\x1f\x20\x03\xd5\xfd\x7b\xbf\xa9\xfd\x03\x00\x91\x2a\x00\x00\x94\xfd\x7b\xc1\xa8\xc0\x03\x5f\xd6"), -Section(".plt", 0x5A0, "\xf0\x7b\xbf\xa9\x90\x00\x00\x90\x11\xd6\x47\xf9\x10\xa2\x3e\x91\x20\x02\x1f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x90\x00\x00\x90\x11\xda\x47\xf9\x10\xc2\x3e\x91\x20\x02\x1f\xd6\x90\x00\x00\x90\x11\xde\x47\xf9\x10\xe2\x3e\x91\x20\x02\x1f\xd6\x90\x00\x00\x90\x11\xe2\x47\xf9\x10\x02\x3f\x91\x20\x02\x1f\xd6\x90\x00\x00\x90\x11\xe6\x47\xf9\x10\x22\x3f\x91\x20\x02\x1f\xd6"), -Section(".text", 0x600, "\x1f\x20\x03\xd5\x1d\x00\x80\xd2\x1e\x00\x80\xd2\xe5\x03\x00\xaa\xe1\x03\x40\xf9\xe2\x23\x00\x91\xe6\x03\x00\x91\x80\x00\x00\x90\x00\xf8\x47\xf9\x03\x00\x80\xd2\x04\x00\x80\xd2\xe5\xff\xff\x97\xf0\xff\xff\x97\x80\x00\x00\x90\x00\xf4\x47\xf9\x40\x00\x00\xb4\xe8\xff\xff\x17\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x80\x00\x00\xb0\x00\x40\x00\x91\x81\x00\x00\xb0\x21\x40\x00\x91\x3f\x00\x00\xeb\xc0\x00\x00\x54\x81\x00\x00\x90\x21\xec\x47\xf9\x61\x00\x00\xb4\xf0\x03\x01\xaa\x00\x02\x1f\xd6\xc0\x03\x5f\xd6\x80\x00\x00\xb0\x00\x40\x00\x91\x81\x00\x00\xb0\x21\x40\x00\x91\x21\x00\x00\xcb\x22\xfc\x7f\xd3\x41\x0c\x81\x8b\x21\xfc\x41\x93\xc1\x00\x00\xb4\x82\x00\x00\x90\x42\xfc\x47\xf9\x62\x00\x00\xb4\xf0\x03\x02\xaa\x00\x02\x1f\xd6\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\xfd\x7b\xbe\xa9\xfd\x03\x00\x91\xf3\x0b\x00\xf9\x93\x00\x00\xb0\x60\x42\x40\x39\x40\x01\x00\x35\x80\x00\x00\x90\x00\xf0\x47\xf9\x80\x00\x00\xb4\x80\x00\x00\xb0\x00\x04\x40\xf9\xb9\xff\xff\x97\xd8\xff\xff\x97\x20\x00\x80\x52\x60\x42\x00\x39\xf3\x0b\x40\xf9\xfd\x7b\xc2\xa8\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\xdc\xff\xff\x17\xfd\x7b\xbe\xa9\xfd\x03\x00\x91\x20\x00\x80\x52\xe0\x1b\x00\xb9\x40\x00\x80\x52\xe0\x1f\x00\xb9\xe0\x1b\x40\xb9\x05\x00\x00\x94\xe0\x1b\x00\xb9\x00\x00\x80\x52\xfd\x7b\xc2\xa8\xc0\x03\x5f\xd6\xff\x43\x00\xd1\xe0\x0f\x00\xb9\xe0\x0f\x40\xb9\x00\x04\x00\x11\xff\x43\x00\x91\xc0\x03\x5f\xd6"), -Section(".fini", 0x75C, "\x1f\x20\x03\xd5\xfd\x7b\xbf\xa9\xfd\x03\x00\x91\xfd\x7b\xc1\xa8\xc0\x03\x5f\xd6"), -Section(".rodata", 0x770, "\x01\x00\x02\x00"), -Section(".eh_frame_hdr", 0x774, "\x01\x1b\x03\x3b\x40\x00\x00\x00\x07\x00\x00\x00\x8c\xfe\xff\xff\x58\x00\x00\x00\xdc\xfe\xff\xff\x6c\x00\x00\x00\x0c\xff\xff\xff\x80\x00\x00\x00\x4c\xff\xff\xff\x94\x00\x00\x00\x9c\xff\xff\xff\xb8\x00\x00\x00\xa0\xff\xff\xff\xcc\x00\x00\x00\xd0\xff\xff\xff\xec\x00\x00\x00"), -Section(".eh_frame", 0x7B8, "\x10\x00\x00\x00\x00\x00\x00\x00\x01\x7a\x52\x00\x04\x78\x1e\x01\x1b\x0c\x1f\x00\x10\x00\x00\x00\x18\x00\x00\x00\x2c\xfe\xff\xff\x34\x00\x00\x00\x00\x41\x07\x1e\x10\x00\x00\x00\x2c\x00\x00\x00\x68\xfe\xff\xff\x30\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x40\x00\x00\x00\x84\xfe\xff\xff\x3c\x00\x00\x00\x00\x00\x00\x00\x20\x00\x00\x00\x54\x00\x00\x00\xb0\xfe\xff\xff\x48\x00\x00\x00\x00\x41\x0e\x20\x9d\x04\x9e\x03\x42\x93\x02\x4e\xde\xdd\xd3\x0e\x00\x00\x00\x00\x10\x00\x00\x00\x78\x00\x00\x00\xdc\xfe\xff\xff\x04\x00\x00\x00\x00\x00\x00\x00\x1c\x00\x00\x00\x8c\x00\x00\x00\xcc\xfe\xff\xff\x30\x00\x00\x00\x00\x41\x0e\x20\x9d\x04\x9e\x03\x4a\xde\xdd\x0e\x00\x00\x00\x00\x14\x00\x00\x00\xac\x00\x00\x00\xdc\xfe\xff\xff\x18\x00\x00\x00\x00\x41\x0e\x10\x44\x0e\x00\x00\x00\x00\x00\x00"), -Section(".fini_array", 0x10DA0, "\xc0\x06\x00\x00\x00\x00\x00\x00"), -Section(".dynamic", 0x10DA8, "\x01\x00\x00\x00\x00\x00\x00\x00\x28\x00\x00\x00\x00\x00\x00\x00\x0c\x00\x00\x00\x00\x00\x00\x00\x80\x05\x00\x00\x00\x00\x00\x00\x0d\x00\x00\x00\x00\x00\x00\x00\x5c\x07\x00\x00\x00\x00\x00\x00\x19\x00\x00\x00\x00\x00\x00\x00\x98\x0d\x01\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x1a\x00\x00\x00\x00\x00\x00\x00\xa0\x0d\x01\x00\x00\x00\x00\x00\x1c\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\xf5\xfe\xff\x6f\x00\x00\x00\x00\x98\x02\x00\x00\x00\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x90\x03\x00\x00\x00\x00\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\xb8\x02\x00\x00\x00\x00\x00\x00\x0a\x00\x00\x00\x00\x00\x00\x00\x8d\x00\x00\x00\x00\x00\x00\x00\x0b\x00\x00\x00\x00\x00\x00\x00\x18\x00\x00\x00\x00\x00\x00\x00\x15\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x98\x0f\x01\x00\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x60\x00\x00\x00\x00\x00\x00\x00\x14\x00\x00\x00\x00\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x17\x00\x00\x00\x00\x00\x00\x00\x20\x05\x00\x00\x00\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x60\x04\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\xc0\x00\x00\x00\x00\x00\x00\x00\x09\x00\x00\x00\x00\x00\x00\x00\x18\x00\x00\x00\x00\x00\x00\x00\x1e\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\xfb\xff\xff\x6f\x00\x00\x00\x00\x01\x00\x00\x08\x00\x00\x00\x00\xfe\xff\xff\x6f\x00\x00\x00\x00\x30\x04\x00\x00\x00\x00\x00\x00\xff\xff\xff\x6f\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\xf0\xff\xff\x6f\x00\x00\x00\x00\x1e\x04\x00\x00\x00\x00\x00\x00\xf9\xff\xff\x6f\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".got", 0x10F98, "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xa0\x05\x00\x00\x00\x00\x00\x00\xa0\x05\x00\x00\x00\x00\x00\x00\xa0\x05\x00\x00\x00\x00\x00\x00\xa0\x05\x00\x00\x00\x00\x00\x00\xa8\x0d\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x14\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".data", 0x11000, "\x00\x00\x00\x00\x00\x00\x00\x00\x08\x10\x01\x00\x00\x00\x00\x00"), -Section(".init_array", 0x10D98, "\x10\x07\x00\x00\x00\x00\x00\x00")]), -Memmap([Annotation(Region(0x0,0x87B), Attr("segment","02 0 2172")), -Annotation(Region(0x600,0x633), Attr("symbol","\"_start\"")), -Annotation(Region(0x0,0xF9), Attr("section","\".shstrtab\"")), -Annotation(Region(0x0,0x235), Attr("section","\".strtab\"")), -Annotation(Region(0x0,0x827), Attr("section","\".symtab\"")), -Annotation(Region(0x0,0x2A), Attr("section","\".comment\"")), -Annotation(Region(0x238,0x252), Attr("section","\".interp\"")), -Annotation(Region(0x254,0x277), Attr("section","\".note.gnu.build-id\"")), -Annotation(Region(0x278,0x297), Attr("section","\".note.ABI-tag\"")), -Annotation(Region(0x298,0x2B3), Attr("section","\".gnu.hash\"")), -Annotation(Region(0x2B8,0x38F), Attr("section","\".dynsym\"")), -Annotation(Region(0x390,0x41C), Attr("section","\".dynstr\"")), -Annotation(Region(0x41E,0x42F), Attr("section","\".gnu.version\"")), -Annotation(Region(0x430,0x45F), Attr("section","\".gnu.version_r\"")), -Annotation(Region(0x460,0x51F), Attr("section","\".rela.dyn\"")), -Annotation(Region(0x520,0x57F), Attr("section","\".rela.plt\"")), -Annotation(Region(0x580,0x597), Attr("section","\".init\"")), -Annotation(Region(0x5A0,0x5FF), Attr("section","\".plt\"")), -Annotation(Region(0x580,0x597), Attr("code-region","()")), -Annotation(Region(0x5A0,0x5FF), Attr("code-region","()")), -Annotation(Region(0x600,0x633), Attr("symbol-info","_start 0x600 52")), -Annotation(Region(0x634,0x647), Attr("symbol","\"call_weak_fn\"")), -Annotation(Region(0x634,0x647), Attr("symbol-info","call_weak_fn 0x634 20")), -Annotation(Region(0x714,0x743), Attr("symbol","\"main\"")), -Annotation(Region(0x600,0x75B), Attr("section","\".text\"")), -Annotation(Region(0x600,0x75B), Attr("code-region","()")), -Annotation(Region(0x714,0x743), Attr("symbol-info","main 0x714 48")), -Annotation(Region(0x744,0x75B), Attr("symbol","\"plus_one\"")), -Annotation(Region(0x744,0x75B), Attr("symbol-info","plus_one 0x744 24")), -Annotation(Region(0x75C,0x76F), Attr("section","\".fini\"")), -Annotation(Region(0x75C,0x76F), Attr("code-region","()")), -Annotation(Region(0x770,0x773), Attr("section","\".rodata\"")), -Annotation(Region(0x774,0x7B7), Attr("section","\".eh_frame_hdr\"")), -Annotation(Region(0x7B8,0x87B), Attr("section","\".eh_frame\"")), -Annotation(Region(0x10D98,0x1100F), Attr("segment","03 0x10D98 640")), -Annotation(Region(0x10DA0,0x10DA7), Attr("section","\".fini_array\"")), -Annotation(Region(0x10DA8,0x10F97), Attr("section","\".dynamic\"")), -Annotation(Region(0x10F98,0x10FFF), Attr("section","\".got\"")), -Annotation(Region(0x11000,0x1100F), Attr("section","\".data\"")), -Annotation(Region(0x10D98,0x10D9F), Attr("section","\".init_array\""))]), -Program(Tid(1_609, "%00000649"), Attrs([]), - Subs([Sub(Tid(1_557, "@__cxa_finalize"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x5D0"), -Attr("stub","()")]), "__cxa_finalize", Args([Arg(Tid(1_610, "%0000064a"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("__cxa_finalize_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(949, "@__cxa_finalize"), - Attrs([Attr("address","0x5D0")]), Phis([]), -Defs([Def(Tid(1_197, "%000004ad"), Attrs([Attr("address","0x5D0"), -Attr("insn","adrp x16, #65536")]), Var("R16",Imm(64)), Int(65536,64)), -Def(Tid(1_204, "%000004b4"), Attrs([Attr("address","0x5D4"), -Attr("insn","ldr x17, [x16, #0xfb8]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(4024,64)),LittleEndian(),64)), -Def(Tid(1_210, "%000004ba"), Attrs([Attr("address","0x5D8"), -Attr("insn","add x16, x16, #0xfb8")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(4024,64)))]), Jmps([Call(Tid(1_215, "%000004bf"), - Attrs([Attr("address","0x5DC"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), -Sub(Tid(1_558, "@__do_global_dtors_aux"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x6C0")]), - "__do_global_dtors_aux", Args([Arg(Tid(1_611, "%0000064b"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("__do_global_dtors_aux_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(662, "@__do_global_dtors_aux"), - Attrs([Attr("address","0x6C0")]), Phis([]), Defs([Def(Tid(666, "%0000029a"), - Attrs([Attr("address","0x6C0"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("#3",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(18446744073709551584,64))), -Def(Tid(672, "%000002a0"), Attrs([Attr("address","0x6C0"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("#3",Imm(64)),Var("R29",Imm(64)),LittleEndian(),64)), -Def(Tid(678, "%000002a6"), Attrs([Attr("address","0x6C0"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("#3",Imm(64)),Int(8,64)),Var("R30",Imm(64)),LittleEndian(),64)), -Def(Tid(682, "%000002aa"), Attrs([Attr("address","0x6C0"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("R31",Imm(64)), -Var("#3",Imm(64))), Def(Tid(688, "%000002b0"), - Attrs([Attr("address","0x6C4"), Attr("insn","mov x29, sp")]), - Var("R29",Imm(64)), Var("R31",Imm(64))), Def(Tid(696, "%000002b8"), - Attrs([Attr("address","0x6C8"), Attr("insn","str x19, [sp, #0x10]")]), - Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(16,64)),Var("R19",Imm(64)),LittleEndian(),64)), -Def(Tid(701, "%000002bd"), Attrs([Attr("address","0x6CC"), -Attr("insn","adrp x19, #69632")]), Var("R19",Imm(64)), Int(69632,64)), -Def(Tid(708, "%000002c4"), Attrs([Attr("address","0x6D0"), -Attr("insn","ldrb w0, [x19, #0x10]")]), Var("R0",Imm(64)), -UNSIGNED(64,Load(Var("mem",Mem(64,8)),PLUS(Var("R19",Imm(64)),Int(16,64)),LittleEndian(),8)))]), -Jmps([Goto(Tid(715, "%000002cb"), Attrs([Attr("address","0x6D4"), -Attr("insn","cbnz w0, #0x28")]), - NEQ(Extract(31,0,Var("R0",Imm(64))),Int(0,32)), -Direct(Tid(713, "%000002c9"))), Goto(Tid(1_599, "%0000063f"), Attrs([]), - Int(1,1), Direct(Tid(894, "%0000037e")))])), Blk(Tid(894, "%0000037e"), - Attrs([Attr("address","0x6D8")]), Phis([]), Defs([Def(Tid(897, "%00000381"), - Attrs([Attr("address","0x6D8"), Attr("insn","adrp x0, #65536")]), - Var("R0",Imm(64)), Int(65536,64)), Def(Tid(904, "%00000388"), - Attrs([Attr("address","0x6DC"), Attr("insn","ldr x0, [x0, #0xfe0]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(4064,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(910, "%0000038e"), Attrs([Attr("address","0x6E0"), -Attr("insn","cbz x0, #0x10")]), EQ(Var("R0",Imm(64)),Int(0,64)), -Direct(Tid(908, "%0000038c"))), Goto(Tid(1_600, "%00000640"), Attrs([]), - Int(1,1), Direct(Tid(933, "%000003a5")))])), Blk(Tid(933, "%000003a5"), - Attrs([Attr("address","0x6E4")]), Phis([]), Defs([Def(Tid(936, "%000003a8"), - Attrs([Attr("address","0x6E4"), Attr("insn","adrp x0, #69632")]), - Var("R0",Imm(64)), Int(69632,64)), Def(Tid(943, "%000003af"), - Attrs([Attr("address","0x6E8"), Attr("insn","ldr x0, [x0, #0x8]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(948, "%000003b4"), Attrs([Attr("address","0x6EC"), -Attr("insn","bl #-0x11c")]), Var("R30",Imm(64)), Int(1776,64))]), -Jmps([Call(Tid(951, "%000003b7"), Attrs([Attr("address","0x6EC"), -Attr("insn","bl #-0x11c")]), Int(1,1), -(Direct(Tid(1_557, "@__cxa_finalize")),Direct(Tid(908, "%0000038c"))))])), -Blk(Tid(908, "%0000038c"), Attrs([Attr("address","0x6F0")]), Phis([]), -Defs([Def(Tid(916, "%00000394"), Attrs([Attr("address","0x6F0"), -Attr("insn","bl #-0xa0")]), Var("R30",Imm(64)), Int(1780,64))]), -Jmps([Call(Tid(918, "%00000396"), Attrs([Attr("address","0x6F0"), -Attr("insn","bl #-0xa0")]), Int(1,1), -(Direct(Tid(1_571, "@deregister_tm_clones")),Direct(Tid(920, "%00000398"))))])), -Blk(Tid(920, "%00000398"), Attrs([Attr("address","0x6F4")]), Phis([]), -Defs([Def(Tid(923, "%0000039b"), Attrs([Attr("address","0x6F4"), -Attr("insn","mov w0, #0x1")]), Var("R0",Imm(64)), Int(1,64)), -Def(Tid(931, "%000003a3"), Attrs([Attr("address","0x6F8"), -Attr("insn","strb w0, [x19, #0x10]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R19",Imm(64)),Int(16,64)),Extract(7,0,Var("R0",Imm(64))),LittleEndian(),8))]), -Jmps([Goto(Tid(1_601, "%00000641"), Attrs([]), Int(1,1), -Direct(Tid(713, "%000002c9")))])), Blk(Tid(713, "%000002c9"), - Attrs([Attr("address","0x6FC")]), Phis([]), Defs([Def(Tid(723, "%000002d3"), - Attrs([Attr("address","0x6FC"), Attr("insn","ldr x19, [sp, #0x10]")]), - Var("R19",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(16,64)),LittleEndian(),64)), -Def(Tid(730, "%000002da"), Attrs([Attr("address","0x700"), -Attr("insn","ldp x29, x30, [sp], #0x20")]), Var("R29",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(735, "%000002df"), Attrs([Attr("address","0x700"), -Attr("insn","ldp x29, x30, [sp], #0x20")]), Var("R30",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(739, "%000002e3"), Attrs([Attr("address","0x700"), -Attr("insn","ldp x29, x30, [sp], #0x20")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(32,64)))]), Jmps([Call(Tid(744, "%000002e8"), - Attrs([Attr("address","0x704"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), Sub(Tid(1_562, "@__libc_start_main"), - Attrs([Attr("c.proto","signed (*)(signed (*)(signed , char** , char** );* main, signed , char** , \nvoid* auxv)"), -Attr("address","0x5C0"), Attr("stub","()")]), "__libc_start_main", - Args([Arg(Tid(1_612, "%0000064c"), - Attrs([Attr("c.layout","**[ : 64]"), -Attr("c.data","Top:u64 ptr ptr"), -Attr("c.type","signed (*)(signed , char** , char** );*")]), - Var("__libc_start_main_main",Imm(64)), Var("R0",Imm(64)), In()), -Arg(Tid(1_613, "%0000064d"), Attrs([Attr("c.layout","[signed : 32]"), -Attr("c.data","Top:u32"), Attr("c.type","signed")]), - Var("__libc_start_main_arg2",Imm(32)), LOW(32,Var("R1",Imm(64))), In()), -Arg(Tid(1_614, "%0000064e"), Attrs([Attr("c.layout","**[char : 8]"), -Attr("c.data","Top:u8 ptr ptr"), Attr("c.type","char**")]), - Var("__libc_start_main_arg3",Imm(64)), Var("R2",Imm(64)), Both()), -Arg(Tid(1_615, "%0000064f"), Attrs([Attr("c.layout","*[ : 8]"), -Attr("c.data","{} ptr"), Attr("c.type","void*")]), - Var("__libc_start_main_auxv",Imm(64)), Var("R3",Imm(64)), Both()), -Arg(Tid(1_616, "%00000650"), Attrs([Attr("c.layout","[signed : 32]"), -Attr("c.data","Top:u32"), Attr("c.type","signed")]), - Var("__libc_start_main_result",Imm(32)), LOW(32,Var("R0",Imm(64))), -Out())]), Blks([Blk(Tid(495, "@__libc_start_main"), - Attrs([Attr("address","0x5C0")]), Phis([]), -Defs([Def(Tid(1_175, "%00000497"), Attrs([Attr("address","0x5C0"), -Attr("insn","adrp x16, #65536")]), Var("R16",Imm(64)), Int(65536,64)), -Def(Tid(1_182, "%0000049e"), Attrs([Attr("address","0x5C4"), -Attr("insn","ldr x17, [x16, #0xfb0]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(4016,64)),LittleEndian(),64)), -Def(Tid(1_188, "%000004a4"), Attrs([Attr("address","0x5C8"), -Attr("insn","add x16, x16, #0xfb0")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(4016,64)))]), Jmps([Call(Tid(1_193, "%000004a9"), - Attrs([Attr("address","0x5CC"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), Sub(Tid(1_563, "@_fini"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x75C")]), - "_fini", Args([Arg(Tid(1_617, "%00000651"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("_fini_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(31, "@_fini"), - Attrs([Attr("address","0x75C")]), Phis([]), Defs([Def(Tid(37, "%00000025"), - Attrs([Attr("address","0x760"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("#0",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(18446744073709551600,64))), -Def(Tid(43, "%0000002b"), Attrs([Attr("address","0x760"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("#0",Imm(64)),Var("R29",Imm(64)),LittleEndian(),64)), -Def(Tid(49, "%00000031"), Attrs([Attr("address","0x760"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("#0",Imm(64)),Int(8,64)),Var("R30",Imm(64)),LittleEndian(),64)), -Def(Tid(53, "%00000035"), Attrs([Attr("address","0x760"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("R31",Imm(64)), -Var("#0",Imm(64))), Def(Tid(59, "%0000003b"), Attrs([Attr("address","0x764"), -Attr("insn","mov x29, sp")]), Var("R29",Imm(64)), Var("R31",Imm(64))), -Def(Tid(66, "%00000042"), Attrs([Attr("address","0x768"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R29",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(71, "%00000047"), Attrs([Attr("address","0x768"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R30",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(75, "%0000004b"), Attrs([Attr("address","0x768"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(16,64)))]), Jmps([Call(Tid(80, "%00000050"), - Attrs([Attr("address","0x76C"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), Sub(Tid(1_564, "@_init"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x580")]), - "_init", Args([Arg(Tid(1_618, "%00000652"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("_init_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(1_381, "@_init"), - Attrs([Attr("address","0x580")]), Phis([]), -Defs([Def(Tid(1_387, "%0000056b"), Attrs([Attr("address","0x584"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("#6",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(18446744073709551600,64))), -Def(Tid(1_393, "%00000571"), Attrs([Attr("address","0x584"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("#6",Imm(64)),Var("R29",Imm(64)),LittleEndian(),64)), -Def(Tid(1_399, "%00000577"), Attrs([Attr("address","0x584"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("#6",Imm(64)),Int(8,64)),Var("R30",Imm(64)),LittleEndian(),64)), -Def(Tid(1_403, "%0000057b"), Attrs([Attr("address","0x584"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("R31",Imm(64)), -Var("#6",Imm(64))), Def(Tid(1_409, "%00000581"), - Attrs([Attr("address","0x588"), Attr("insn","mov x29, sp")]), - Var("R29",Imm(64)), Var("R31",Imm(64))), Def(Tid(1_414, "%00000586"), - Attrs([Attr("address","0x58C"), Attr("insn","bl #0xa8")]), - Var("R30",Imm(64)), Int(1424,64))]), Jmps([Call(Tid(1_416, "%00000588"), - Attrs([Attr("address","0x58C"), Attr("insn","bl #0xa8")]), Int(1,1), -(Direct(Tid(1_569, "@call_weak_fn")),Direct(Tid(1_418, "%0000058a"))))])), -Blk(Tid(1_418, "%0000058a"), Attrs([Attr("address","0x590")]), Phis([]), -Defs([Def(Tid(1_423, "%0000058f"), Attrs([Attr("address","0x590"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R29",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(1_428, "%00000594"), Attrs([Attr("address","0x590"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R30",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(1_432, "%00000598"), Attrs([Attr("address","0x590"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(16,64)))]), Jmps([Call(Tid(1_437, "%0000059d"), - Attrs([Attr("address","0x594"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), Sub(Tid(1_565, "@_start"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x600"), -Attr("stub","()"), Attr("entry-point","()")]), "_start", - Args([Arg(Tid(1_619, "%00000653"), Attrs([Attr("c.layout","[signed : 32]"), -Attr("c.data","Top:u32"), Attr("c.type","signed")]), - Var("_start_result",Imm(32)), LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(432, "@_start"), Attrs([Attr("address","0x600")]), Phis([]), -Defs([Def(Tid(437, "%000001b5"), Attrs([Attr("address","0x604"), -Attr("insn","mov x29, #0x0")]), Var("R29",Imm(64)), Int(0,64)), -Def(Tid(442, "%000001ba"), Attrs([Attr("address","0x608"), -Attr("insn","mov x30, #0x0")]), Var("R30",Imm(64)), Int(0,64)), -Def(Tid(448, "%000001c0"), Attrs([Attr("address","0x60C"), -Attr("insn","mov x5, x0")]), Var("R5",Imm(64)), Var("R0",Imm(64))), -Def(Tid(455, "%000001c7"), Attrs([Attr("address","0x610"), -Attr("insn","ldr x1, [sp]")]), Var("R1",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(461, "%000001cd"), Attrs([Attr("address","0x614"), -Attr("insn","add x2, sp, #0x8")]), Var("R2",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(8,64))), Def(Tid(467, "%000001d3"), - Attrs([Attr("address","0x618"), Attr("insn","mov x6, sp")]), - Var("R6",Imm(64)), Var("R31",Imm(64))), Def(Tid(472, "%000001d8"), - Attrs([Attr("address","0x61C"), Attr("insn","adrp x0, #65536")]), - Var("R0",Imm(64)), Int(65536,64)), Def(Tid(479, "%000001df"), - Attrs([Attr("address","0x620"), Attr("insn","ldr x0, [x0, #0xff0]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(4080,64)),LittleEndian(),64)), -Def(Tid(484, "%000001e4"), Attrs([Attr("address","0x624"), -Attr("insn","mov x3, #0x0")]), Var("R3",Imm(64)), Int(0,64)), -Def(Tid(489, "%000001e9"), Attrs([Attr("address","0x628"), -Attr("insn","mov x4, #0x0")]), Var("R4",Imm(64)), Int(0,64)), -Def(Tid(494, "%000001ee"), Attrs([Attr("address","0x62C"), -Attr("insn","bl #-0x6c")]), Var("R30",Imm(64)), Int(1584,64))]), -Jmps([Call(Tid(497, "%000001f1"), Attrs([Attr("address","0x62C"), -Attr("insn","bl #-0x6c")]), Int(1,1), -(Direct(Tid(1_562, "@__libc_start_main")),Direct(Tid(499, "%000001f3"))))])), -Blk(Tid(499, "%000001f3"), Attrs([Attr("address","0x630")]), Phis([]), -Defs([Def(Tid(502, "%000001f6"), Attrs([Attr("address","0x630"), -Attr("insn","bl #-0x40")]), Var("R30",Imm(64)), Int(1588,64))]), -Jmps([Call(Tid(505, "%000001f9"), Attrs([Attr("address","0x630"), -Attr("insn","bl #-0x40")]), Int(1,1), -(Direct(Tid(1_568, "@abort")),Direct(Tid(1_602, "%00000642"))))])), -Blk(Tid(1_602, "%00000642"), Attrs([]), Phis([]), Defs([]), -Jmps([Call(Tid(1_603, "%00000643"), Attrs([]), Int(1,1), -(Direct(Tid(1_569, "@call_weak_fn")),))]))])), Sub(Tid(1_568, "@abort"), - Attrs([Attr("noreturn","()"), Attr("c.proto","void (*)(void)"), -Attr("address","0x5F0"), Attr("stub","()")]), "abort", Args([]), -Blks([Blk(Tid(503, "@abort"), Attrs([Attr("address","0x5F0")]), Phis([]), -Defs([Def(Tid(1_241, "%000004d9"), Attrs([Attr("address","0x5F0"), -Attr("insn","adrp x16, #65536")]), Var("R16",Imm(64)), Int(65536,64)), -Def(Tid(1_248, "%000004e0"), Attrs([Attr("address","0x5F4"), -Attr("insn","ldr x17, [x16, #0xfc8]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(4040,64)),LittleEndian(),64)), -Def(Tid(1_254, "%000004e6"), Attrs([Attr("address","0x5F8"), -Attr("insn","add x16, x16, #0xfc8")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(4040,64)))]), Jmps([Call(Tid(1_259, "%000004eb"), - Attrs([Attr("address","0x5FC"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), Sub(Tid(1_569, "@call_weak_fn"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x634")]), - "call_weak_fn", Args([Arg(Tid(1_620, "%00000654"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("call_weak_fn_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(507, "@call_weak_fn"), - Attrs([Attr("address","0x634")]), Phis([]), Defs([Def(Tid(510, "%000001fe"), - Attrs([Attr("address","0x634"), Attr("insn","adrp x0, #65536")]), - Var("R0",Imm(64)), Int(65536,64)), Def(Tid(517, "%00000205"), - Attrs([Attr("address","0x638"), Attr("insn","ldr x0, [x0, #0xfe8]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(4072,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(523, "%0000020b"), Attrs([Attr("address","0x63C"), -Attr("insn","cbz x0, #0x8")]), EQ(Var("R0",Imm(64)),Int(0,64)), -Direct(Tid(521, "%00000209"))), Goto(Tid(1_604, "%00000644"), Attrs([]), - Int(1,1), Direct(Tid(1_013, "%000003f5")))])), Blk(Tid(521, "%00000209"), - Attrs([Attr("address","0x644")]), Phis([]), Defs([]), -Jmps([Call(Tid(529, "%00000211"), Attrs([Attr("address","0x644"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))])), -Blk(Tid(1_013, "%000003f5"), Attrs([Attr("address","0x640")]), Phis([]), -Defs([]), Jmps([Goto(Tid(1_016, "%000003f8"), Attrs([Attr("address","0x640"), -Attr("insn","b #-0x60")]), Int(1,1), -Direct(Tid(1_014, "@__gmon_start__")))])), Blk(Tid(1_014, "@__gmon_start__"), - Attrs([Attr("address","0x5E0")]), Phis([]), -Defs([Def(Tid(1_219, "%000004c3"), Attrs([Attr("address","0x5E0"), -Attr("insn","adrp x16, #65536")]), Var("R16",Imm(64)), Int(65536,64)), -Def(Tid(1_226, "%000004ca"), Attrs([Attr("address","0x5E4"), -Attr("insn","ldr x17, [x16, #0xfc0]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(4032,64)),LittleEndian(),64)), -Def(Tid(1_232, "%000004d0"), Attrs([Attr("address","0x5E8"), -Attr("insn","add x16, x16, #0xfc0")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(4032,64)))]), Jmps([Call(Tid(1_237, "%000004d5"), - Attrs([Attr("address","0x5EC"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), -Sub(Tid(1_571, "@deregister_tm_clones"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x650")]), - "deregister_tm_clones", Args([Arg(Tid(1_621, "%00000655"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("deregister_tm_clones_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(535, "@deregister_tm_clones"), - Attrs([Attr("address","0x650")]), Phis([]), Defs([Def(Tid(538, "%0000021a"), - Attrs([Attr("address","0x650"), Attr("insn","adrp x0, #69632")]), - Var("R0",Imm(64)), Int(69632,64)), Def(Tid(544, "%00000220"), - Attrs([Attr("address","0x654"), Attr("insn","add x0, x0, #0x10")]), - Var("R0",Imm(64)), PLUS(Var("R0",Imm(64)),Int(16,64))), -Def(Tid(549, "%00000225"), Attrs([Attr("address","0x658"), -Attr("insn","adrp x1, #69632")]), Var("R1",Imm(64)), Int(69632,64)), -Def(Tid(555, "%0000022b"), Attrs([Attr("address","0x65C"), -Attr("insn","add x1, x1, #0x10")]), Var("R1",Imm(64)), -PLUS(Var("R1",Imm(64)),Int(16,64))), Def(Tid(561, "%00000231"), - Attrs([Attr("address","0x660"), Attr("insn","cmp x1, x0")]), - Var("#1",Imm(64)), NOT(Var("R0",Imm(64)))), Def(Tid(566, "%00000236"), - Attrs([Attr("address","0x660"), Attr("insn","cmp x1, x0")]), - Var("#2",Imm(64)), PLUS(Var("R1",Imm(64)),NOT(Var("R0",Imm(64))))), -Def(Tid(572, "%0000023c"), Attrs([Attr("address","0x660"), -Attr("insn","cmp x1, x0")]), Var("VF",Imm(1)), -NEQ(SIGNED(65,PLUS(Var("#2",Imm(64)),Int(1,64))),PLUS(PLUS(SIGNED(65,Var("R1",Imm(64))),SIGNED(65,Var("#1",Imm(64)))),Int(1,65)))), -Def(Tid(578, "%00000242"), Attrs([Attr("address","0x660"), -Attr("insn","cmp x1, x0")]), Var("CF",Imm(1)), -NEQ(UNSIGNED(65,PLUS(Var("#2",Imm(64)),Int(1,64))),PLUS(PLUS(UNSIGNED(65,Var("R1",Imm(64))),UNSIGNED(65,Var("#1",Imm(64)))),Int(1,65)))), -Def(Tid(582, "%00000246"), Attrs([Attr("address","0x660"), -Attr("insn","cmp x1, x0")]), Var("ZF",Imm(1)), -EQ(PLUS(Var("#2",Imm(64)),Int(1,64)),Int(0,64))), Def(Tid(586, "%0000024a"), - Attrs([Attr("address","0x660"), Attr("insn","cmp x1, x0")]), - Var("NF",Imm(1)), Extract(63,63,PLUS(Var("#2",Imm(64)),Int(1,64))))]), -Jmps([Goto(Tid(592, "%00000250"), Attrs([Attr("address","0x664"), -Attr("insn","b.eq #0x18")]), EQ(Var("ZF",Imm(1)),Int(1,1)), -Direct(Tid(590, "%0000024e"))), Goto(Tid(1_605, "%00000645"), Attrs([]), - Int(1,1), Direct(Tid(983, "%000003d7")))])), Blk(Tid(983, "%000003d7"), - Attrs([Attr("address","0x668")]), Phis([]), Defs([Def(Tid(986, "%000003da"), - Attrs([Attr("address","0x668"), Attr("insn","adrp x1, #65536")]), - Var("R1",Imm(64)), Int(65536,64)), Def(Tid(993, "%000003e1"), - Attrs([Attr("address","0x66C"), Attr("insn","ldr x1, [x1, #0xfd8]")]), - Var("R1",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R1",Imm(64)),Int(4056,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(998, "%000003e6"), Attrs([Attr("address","0x670"), -Attr("insn","cbz x1, #0xc")]), EQ(Var("R1",Imm(64)),Int(0,64)), -Direct(Tid(590, "%0000024e"))), Goto(Tid(1_606, "%00000646"), Attrs([]), - Int(1,1), Direct(Tid(1_002, "%000003ea")))])), Blk(Tid(590, "%0000024e"), - Attrs([Attr("address","0x67C")]), Phis([]), Defs([]), -Jmps([Call(Tid(598, "%00000256"), Attrs([Attr("address","0x67C"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))])), -Blk(Tid(1_002, "%000003ea"), Attrs([Attr("address","0x674")]), Phis([]), -Defs([Def(Tid(1_006, "%000003ee"), Attrs([Attr("address","0x674"), -Attr("insn","mov x16, x1")]), Var("R16",Imm(64)), Var("R1",Imm(64)))]), -Jmps([Call(Tid(1_011, "%000003f3"), Attrs([Attr("address","0x678"), -Attr("insn","br x16")]), Int(1,1), (Indirect(Var("R16",Imm(64))),))]))])), -Sub(Tid(1_574, "@frame_dummy"), Attrs([Attr("c.proto","signed (*)(void)"), -Attr("address","0x710")]), "frame_dummy", Args([Arg(Tid(1_622, "%00000656"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("frame_dummy_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(750, "@frame_dummy"), - Attrs([Attr("address","0x710")]), Phis([]), Defs([]), -Jmps([Call(Tid(752, "%000002f0"), Attrs([Attr("address","0x710"), -Attr("insn","b #-0x90")]), Int(1,1), -(Direct(Tid(1_577, "@register_tm_clones")),))]))])), Sub(Tid(1_575, "@main"), - Attrs([Attr("c.proto","signed (*)(signed argc, const char** argv)"), -Attr("address","0x714")]), "main", Args([Arg(Tid(1_623, "%00000657"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("main_argc",Imm(32)), -LOW(32,Var("R0",Imm(64))), In()), Arg(Tid(1_624, "%00000658"), - Attrs([Attr("c.layout","**[char : 8]"), Attr("c.data","Top:u8 ptr ptr"), -Attr("c.type"," const char**")]), Var("main_argv",Imm(64)), -Var("R1",Imm(64)), Both()), Arg(Tid(1_625, "%00000659"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("main_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(754, "@main"), - Attrs([Attr("address","0x714")]), Phis([]), Defs([Def(Tid(758, "%000002f6"), - Attrs([Attr("address","0x714"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("#4",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(18446744073709551584,64))), -Def(Tid(764, "%000002fc"), Attrs([Attr("address","0x714"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("#4",Imm(64)),Var("R29",Imm(64)),LittleEndian(),64)), -Def(Tid(770, "%00000302"), Attrs([Attr("address","0x714"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("#4",Imm(64)),Int(8,64)),Var("R30",Imm(64)),LittleEndian(),64)), -Def(Tid(774, "%00000306"), Attrs([Attr("address","0x714"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("R31",Imm(64)), -Var("#4",Imm(64))), Def(Tid(780, "%0000030c"), - Attrs([Attr("address","0x718"), Attr("insn","mov x29, sp")]), - Var("R29",Imm(64)), Var("R31",Imm(64))), Def(Tid(785, "%00000311"), - Attrs([Attr("address","0x71C"), Attr("insn","mov w0, #0x1")]), - Var("R0",Imm(64)), Int(1,64)), Def(Tid(793, "%00000319"), - Attrs([Attr("address","0x720"), Attr("insn","str w0, [sp, #0x18]")]), - Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(24,64)),Extract(31,0,Var("R0",Imm(64))),LittleEndian(),32)), -Def(Tid(798, "%0000031e"), Attrs([Attr("address","0x724"), -Attr("insn","mov w0, #0x2")]), Var("R0",Imm(64)), Int(2,64)), -Def(Tid(806, "%00000326"), Attrs([Attr("address","0x728"), -Attr("insn","str w0, [sp, #0x1c]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(28,64)),Extract(31,0,Var("R0",Imm(64))),LittleEndian(),32)), -Def(Tid(813, "%0000032d"), Attrs([Attr("address","0x72C"), -Attr("insn","ldr w0, [sp, #0x18]")]), Var("R0",Imm(64)), -UNSIGNED(64,Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(24,64)),LittleEndian(),32))), -Def(Tid(818, "%00000332"), Attrs([Attr("address","0x730"), -Attr("insn","bl #0x14")]), Var("R30",Imm(64)), Int(1844,64))]), -Jmps([Call(Tid(821, "%00000335"), Attrs([Attr("address","0x730"), -Attr("insn","bl #0x14")]), Int(1,1), -(Direct(Tid(1_576, "@plus_one")),Direct(Tid(860, "%0000035c"))))])), -Blk(Tid(860, "%0000035c"), Attrs([Attr("address","0x734")]), Phis([]), -Defs([Def(Tid(866, "%00000362"), Attrs([Attr("address","0x734"), -Attr("insn","str w0, [sp, #0x18]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(24,64)),Extract(31,0,Var("R0",Imm(64))),LittleEndian(),32)), -Def(Tid(871, "%00000367"), Attrs([Attr("address","0x738"), -Attr("insn","mov w0, #0x0")]), Var("R0",Imm(64)), Int(0,64)), -Def(Tid(878, "%0000036e"), Attrs([Attr("address","0x73C"), -Attr("insn","ldp x29, x30, [sp], #0x20")]), Var("R29",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(883, "%00000373"), Attrs([Attr("address","0x73C"), -Attr("insn","ldp x29, x30, [sp], #0x20")]), Var("R30",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(887, "%00000377"), Attrs([Attr("address","0x73C"), -Attr("insn","ldp x29, x30, [sp], #0x20")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(32,64)))]), Jmps([Call(Tid(892, "%0000037c"), - Attrs([Attr("address","0x740"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), Sub(Tid(1_576, "@plus_one"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x744")]), - "plus_one", Args([Arg(Tid(1_626, "%0000065a"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("plus_one_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(819, "@plus_one"), - Attrs([Attr("address","0x744")]), Phis([]), Defs([Def(Tid(826, "%0000033a"), - Attrs([Attr("address","0x744"), Attr("insn","sub sp, sp, #0x10")]), - Var("R31",Imm(64)), PLUS(Var("R31",Imm(64)),Int(18446744073709551600,64))), -Def(Tid(834, "%00000342"), Attrs([Attr("address","0x748"), -Attr("insn","str w0, [sp, #0xc]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(12,64)),Extract(31,0,Var("R0",Imm(64))),LittleEndian(),32)), -Def(Tid(841, "%00000349"), Attrs([Attr("address","0x74C"), -Attr("insn","ldr w0, [sp, #0xc]")]), Var("R0",Imm(64)), -UNSIGNED(64,Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(12,64)),LittleEndian(),32))), -Def(Tid(847, "%0000034f"), Attrs([Attr("address","0x750"), -Attr("insn","add w0, w0, #0x1")]), Var("R0",Imm(64)), -UNSIGNED(64,PLUS(Extract(31,0,Var("R0",Imm(64))),Int(1,32)))), -Def(Tid(853, "%00000355"), Attrs([Attr("address","0x754"), -Attr("insn","add sp, sp, #0x10")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(16,64)))]), Jmps([Call(Tid(858, "%0000035a"), - Attrs([Attr("address","0x758"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), -Sub(Tid(1_577, "@register_tm_clones"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x680")]), - "register_tm_clones", Args([Arg(Tid(1_627, "%0000065b"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("register_tm_clones_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(600, "@register_tm_clones"), Attrs([Attr("address","0x680")]), - Phis([]), Defs([Def(Tid(603, "%0000025b"), Attrs([Attr("address","0x680"), -Attr("insn","adrp x0, #69632")]), Var("R0",Imm(64)), Int(69632,64)), -Def(Tid(609, "%00000261"), Attrs([Attr("address","0x684"), -Attr("insn","add x0, x0, #0x10")]), Var("R0",Imm(64)), -PLUS(Var("R0",Imm(64)),Int(16,64))), Def(Tid(614, "%00000266"), - Attrs([Attr("address","0x688"), Attr("insn","adrp x1, #69632")]), - Var("R1",Imm(64)), Int(69632,64)), Def(Tid(620, "%0000026c"), - Attrs([Attr("address","0x68C"), Attr("insn","add x1, x1, #0x10")]), - Var("R1",Imm(64)), PLUS(Var("R1",Imm(64)),Int(16,64))), -Def(Tid(627, "%00000273"), Attrs([Attr("address","0x690"), -Attr("insn","sub x1, x1, x0")]), Var("R1",Imm(64)), -PLUS(PLUS(Var("R1",Imm(64)),NOT(Var("R0",Imm(64)))),Int(1,64))), -Def(Tid(633, "%00000279"), Attrs([Attr("address","0x694"), -Attr("insn","lsr x2, x1, #63")]), Var("R2",Imm(64)), -Concat(Int(0,63),Extract(63,63,Var("R1",Imm(64))))), -Def(Tid(640, "%00000280"), Attrs([Attr("address","0x698"), -Attr("insn","add x1, x2, x1, asr #3")]), Var("R1",Imm(64)), -PLUS(Var("R2",Imm(64)),ARSHIFT(Var("R1",Imm(64)),Int(3,3)))), -Def(Tid(646, "%00000286"), Attrs([Attr("address","0x69C"), -Attr("insn","asr x1, x1, #1")]), Var("R1",Imm(64)), -SIGNED(64,Extract(63,1,Var("R1",Imm(64)))))]), -Jmps([Goto(Tid(652, "%0000028c"), Attrs([Attr("address","0x6A0"), -Attr("insn","cbz x1, #0x18")]), EQ(Var("R1",Imm(64)),Int(0,64)), -Direct(Tid(650, "%0000028a"))), Goto(Tid(1_607, "%00000647"), Attrs([]), - Int(1,1), Direct(Tid(953, "%000003b9")))])), Blk(Tid(953, "%000003b9"), - Attrs([Attr("address","0x6A4")]), Phis([]), Defs([Def(Tid(956, "%000003bc"), - Attrs([Attr("address","0x6A4"), Attr("insn","adrp x2, #65536")]), - Var("R2",Imm(64)), Int(65536,64)), Def(Tid(963, "%000003c3"), - Attrs([Attr("address","0x6A8"), Attr("insn","ldr x2, [x2, #0xff8]")]), - Var("R2",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R2",Imm(64)),Int(4088,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(968, "%000003c8"), Attrs([Attr("address","0x6AC"), -Attr("insn","cbz x2, #0xc")]), EQ(Var("R2",Imm(64)),Int(0,64)), -Direct(Tid(650, "%0000028a"))), Goto(Tid(1_608, "%00000648"), Attrs([]), - Int(1,1), Direct(Tid(972, "%000003cc")))])), Blk(Tid(650, "%0000028a"), - Attrs([Attr("address","0x6B8")]), Phis([]), Defs([]), -Jmps([Call(Tid(658, "%00000292"), Attrs([Attr("address","0x6B8"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))])), -Blk(Tid(972, "%000003cc"), Attrs([Attr("address","0x6B0")]), Phis([]), -Defs([Def(Tid(976, "%000003d0"), Attrs([Attr("address","0x6B0"), -Attr("insn","mov x16, x2")]), Var("R16",Imm(64)), Var("R2",Imm(64)))]), -Jmps([Call(Tid(981, "%000003d5"), Attrs([Attr("address","0x6B4"), -Attr("insn","br x16")]), Int(1,1), -(Indirect(Var("R16",Imm(64))),))]))]))]))) \ No newline at end of file diff --git a/src/test/correct/functions_with_params/gcc/functions_with_params.bir b/src/test/correct/functions_with_params/gcc/functions_with_params.bir deleted file mode 100644 index a2a13959d..000000000 --- a/src/test/correct/functions_with_params/gcc/functions_with_params.bir +++ /dev/null @@ -1,253 +0,0 @@ -00000649: program -00000615: sub __cxa_finalize(__cxa_finalize_result) -0000064a: __cxa_finalize_result :: out u32 = low:32[R0] - -000003b5: -000004ad: R16 := 0x10000 -000004b4: R17 := mem[R16 + 0xFB8, el]:u64 -000004ba: R16 := R16 + 0xFB8 -000004bf: call R17 with noreturn - -00000616: sub __do_global_dtors_aux(__do_global_dtors_aux_result) -0000064b: __do_global_dtors_aux_result :: out u32 = low:32[R0] - -00000296: -0000029a: #3 := R31 - 0x20 -000002a0: mem := mem with [#3, el]:u64 <- R29 -000002a6: mem := mem with [#3 + 8, el]:u64 <- R30 -000002aa: R31 := #3 -000002b0: R29 := R31 -000002b8: mem := mem with [R31 + 0x10, el]:u64 <- R19 -000002bd: R19 := 0x11000 -000002c4: R0 := pad:64[mem[R19 + 0x10]] -000002cb: when 31:0[R0] <> 0 goto %000002c9 -0000063f: goto %0000037e - -0000037e: -00000381: R0 := 0x10000 -00000388: R0 := mem[R0 + 0xFE0, el]:u64 -0000038e: when R0 = 0 goto %0000038c -00000640: goto %000003a5 - -000003a5: -000003a8: R0 := 0x11000 -000003af: R0 := mem[R0 + 8, el]:u64 -000003b4: R30 := 0x6F0 -000003b7: call @__cxa_finalize with return %0000038c - -0000038c: -00000394: R30 := 0x6F4 -00000396: call @deregister_tm_clones with return %00000398 - -00000398: -0000039b: R0 := 1 -000003a3: mem := mem with [R19 + 0x10] <- 7:0[R0] -00000641: goto %000002c9 - -000002c9: -000002d3: R19 := mem[R31 + 0x10, el]:u64 -000002da: R29 := mem[R31, el]:u64 -000002df: R30 := mem[R31 + 8, el]:u64 -000002e3: R31 := R31 + 0x20 -000002e8: call R30 with noreturn - -0000061a: sub __libc_start_main(__libc_start_main_main, __libc_start_main_arg2, __libc_start_main_arg3, __libc_start_main_auxv, __libc_start_main_result) -0000064c: __libc_start_main_main :: in u64 = R0 -0000064d: __libc_start_main_arg2 :: in u32 = low:32[R1] -0000064e: __libc_start_main_arg3 :: in out u64 = R2 -0000064f: __libc_start_main_auxv :: in out u64 = R3 -00000650: __libc_start_main_result :: out u32 = low:32[R0] - -000001ef: -00000497: R16 := 0x10000 -0000049e: R17 := mem[R16 + 0xFB0, el]:u64 -000004a4: R16 := R16 + 0xFB0 -000004a9: call R17 with noreturn - -0000061b: sub _fini(_fini_result) -00000651: _fini_result :: out u32 = low:32[R0] - -0000001f: -00000025: #0 := R31 - 0x10 -0000002b: mem := mem with [#0, el]:u64 <- R29 -00000031: mem := mem with [#0 + 8, el]:u64 <- R30 -00000035: R31 := #0 -0000003b: R29 := R31 -00000042: R29 := mem[R31, el]:u64 -00000047: R30 := mem[R31 + 8, el]:u64 -0000004b: R31 := R31 + 0x10 -00000050: call R30 with noreturn - -0000061c: sub _init(_init_result) -00000652: _init_result :: out u32 = low:32[R0] - -00000565: -0000056b: #6 := R31 - 0x10 -00000571: mem := mem with [#6, el]:u64 <- R29 -00000577: mem := mem with [#6 + 8, el]:u64 <- R30 -0000057b: R31 := #6 -00000581: R29 := R31 -00000586: R30 := 0x590 -00000588: call @call_weak_fn with return %0000058a - -0000058a: -0000058f: R29 := mem[R31, el]:u64 -00000594: R30 := mem[R31 + 8, el]:u64 -00000598: R31 := R31 + 0x10 -0000059d: call R30 with noreturn - -0000061d: sub _start(_start_result) -00000653: _start_result :: out u32 = low:32[R0] - -000001b0: -000001b5: R29 := 0 -000001ba: R30 := 0 -000001c0: R5 := R0 -000001c7: R1 := mem[R31, el]:u64 -000001cd: R2 := R31 + 8 -000001d3: R6 := R31 -000001d8: R0 := 0x10000 -000001df: R0 := mem[R0 + 0xFF0, el]:u64 -000001e4: R3 := 0 -000001e9: R4 := 0 -000001ee: R30 := 0x630 -000001f1: call @__libc_start_main with return %000001f3 - -000001f3: -000001f6: R30 := 0x634 -000001f9: call @abort with return %00000642 - -00000642: -00000643: call @call_weak_fn with noreturn - -00000620: sub abort() - - -000001f7: -000004d9: R16 := 0x10000 -000004e0: R17 := mem[R16 + 0xFC8, el]:u64 -000004e6: R16 := R16 + 0xFC8 -000004eb: call R17 with noreturn - -00000621: sub call_weak_fn(call_weak_fn_result) -00000654: call_weak_fn_result :: out u32 = low:32[R0] - -000001fb: -000001fe: R0 := 0x10000 -00000205: R0 := mem[R0 + 0xFE8, el]:u64 -0000020b: when R0 = 0 goto %00000209 -00000644: goto %000003f5 - -00000209: -00000211: call R30 with noreturn - -000003f5: -000003f8: goto @__gmon_start__ - -000003f6: -000004c3: R16 := 0x10000 -000004ca: R17 := mem[R16 + 0xFC0, el]:u64 -000004d0: R16 := R16 + 0xFC0 -000004d5: call R17 with noreturn - -00000623: sub deregister_tm_clones(deregister_tm_clones_result) -00000655: deregister_tm_clones_result :: out u32 = low:32[R0] - -00000217: -0000021a: R0 := 0x11000 -00000220: R0 := R0 + 0x10 -00000225: R1 := 0x11000 -0000022b: R1 := R1 + 0x10 -00000231: #1 := ~R0 -00000236: #2 := R1 + ~R0 -0000023c: VF := extend:65[#2 + 1] <> extend:65[R1] + extend:65[#1] + 1 -00000242: CF := pad:65[#2 + 1] <> pad:65[R1] + pad:65[#1] + 1 -00000246: ZF := #2 + 1 = 0 -0000024a: NF := 63:63[#2 + 1] -00000250: when ZF goto %0000024e -00000645: goto %000003d7 - -000003d7: -000003da: R1 := 0x10000 -000003e1: R1 := mem[R1 + 0xFD8, el]:u64 -000003e6: when R1 = 0 goto %0000024e -00000646: goto %000003ea - -0000024e: -00000256: call R30 with noreturn - -000003ea: -000003ee: R16 := R1 -000003f3: call R16 with noreturn - -00000626: sub frame_dummy(frame_dummy_result) -00000656: frame_dummy_result :: out u32 = low:32[R0] - -000002ee: -000002f0: call @register_tm_clones with noreturn - -00000627: sub main(main_argc, main_argv, main_result) -00000657: main_argc :: in u32 = low:32[R0] -00000658: main_argv :: in out u64 = R1 -00000659: main_result :: out u32 = low:32[R0] - -000002f2: -000002f6: #4 := R31 - 0x20 -000002fc: mem := mem with [#4, el]:u64 <- R29 -00000302: mem := mem with [#4 + 8, el]:u64 <- R30 -00000306: R31 := #4 -0000030c: R29 := R31 -00000311: R0 := 1 -00000319: mem := mem with [R31 + 0x18, el]:u32 <- 31:0[R0] -0000031e: R0 := 2 -00000326: mem := mem with [R31 + 0x1C, el]:u32 <- 31:0[R0] -0000032d: R0 := pad:64[mem[R31 + 0x18, el]:u32] -00000332: R30 := 0x734 -00000335: call @plus_one with return %0000035c - -0000035c: -00000362: mem := mem with [R31 + 0x18, el]:u32 <- 31:0[R0] -00000367: R0 := 0 -0000036e: R29 := mem[R31, el]:u64 -00000373: R30 := mem[R31 + 8, el]:u64 -00000377: R31 := R31 + 0x20 -0000037c: call R30 with noreturn - -00000628: sub plus_one(plus_one_result) -0000065a: plus_one_result :: out u32 = low:32[R0] - -00000333: -0000033a: R31 := R31 - 0x10 -00000342: mem := mem with [R31 + 0xC, el]:u32 <- 31:0[R0] -00000349: R0 := pad:64[mem[R31 + 0xC, el]:u32] -0000034f: R0 := pad:64[31:0[R0] + 1] -00000355: R31 := R31 + 0x10 -0000035a: call R30 with noreturn - -00000629: sub register_tm_clones(register_tm_clones_result) -0000065b: register_tm_clones_result :: out u32 = low:32[R0] - -00000258: -0000025b: R0 := 0x11000 -00000261: R0 := R0 + 0x10 -00000266: R1 := 0x11000 -0000026c: R1 := R1 + 0x10 -00000273: R1 := R1 + ~R0 + 1 -00000279: R2 := 0.63:63[R1] -00000280: R1 := R2 + (R1 ~>> 3) -00000286: R1 := extend:64[63:1[R1]] -0000028c: when R1 = 0 goto %0000028a -00000647: goto %000003b9 - -000003b9: -000003bc: R2 := 0x10000 -000003c3: R2 := mem[R2 + 0xFF8, el]:u64 -000003c8: when R2 = 0 goto %0000028a -00000648: goto %000003cc - -0000028a: -00000292: call R30 with noreturn - -000003cc: -000003d0: R16 := R2 -000003d5: call R16 with noreturn diff --git a/src/test/correct/functions_with_params/gcc/functions_with_params.expected b/src/test/correct/functions_with_params/gcc/functions_with_params.expected index f8f9ad3e9..20473cff2 100644 --- a/src/test/correct/functions_with_params/gcc/functions_with_params.expected +++ b/src/test/correct/functions_with_params/gcc/functions_with_params.expected @@ -11,21 +11,13 @@ var {:extern} R31: bv64; var {:extern} mem: [bv64]bv8; var {:extern} stack: [bv64]bv8; const {:extern} $_IO_stdin_used_addr: bv64; -axiom ($_IO_stdin_used_addr == 1904bv64); +axiom ($_IO_stdin_used_addr == 4196332bv64); function {:extern} {:bvbuiltin "bvadd"} bvadd32(bv32, bv32) returns (bv32); function {:extern} {:bvbuiltin "bvadd"} bvadd64(bv64, bv64) returns (bv64); -function {:extern} gamma_load32(gammaMap: [bv64]bool, index: bv64) returns (bool) { - (gammaMap[bvadd64(index, 3bv64)] && (gammaMap[bvadd64(index, 2bv64)] && (gammaMap[bvadd64(index, 1bv64)] && gammaMap[index]))) -} - function {:extern} gamma_load64(gammaMap: [bv64]bool, index: bv64) returns (bool) { (gammaMap[bvadd64(index, 7bv64)] && (gammaMap[bvadd64(index, 6bv64)] && (gammaMap[bvadd64(index, 5bv64)] && (gammaMap[bvadd64(index, 4bv64)] && (gammaMap[bvadd64(index, 3bv64)] && (gammaMap[bvadd64(index, 2bv64)] && (gammaMap[bvadd64(index, 1bv64)] && gammaMap[index]))))))) } -function {:extern} gamma_store32(gammaMap: [bv64]bool, index: bv64, value: bool) returns ([bv64]bool) { - gammaMap[index := value][bvadd64(index, 1bv64) := value][bvadd64(index, 2bv64) := value][bvadd64(index, 3bv64) := value] -} - function {:extern} gamma_store64(gammaMap: [bv64]bool, index: bv64, value: bool) returns ([bv64]bool) { gammaMap[index := value][bvadd64(index, 1bv64) := value][bvadd64(index, 2bv64) := value][bvadd64(index, 3bv64) := value][bvadd64(index, 4bv64) := value][bvadd64(index, 5bv64) := value][bvadd64(index, 6bv64) := value][bvadd64(index, 7bv64) := value] } @@ -38,10 +30,6 @@ function {:extern} memory_load64_le(memory: [bv64]bv8, index: bv64) returns (bv6 (memory[bvadd64(index, 7bv64)] ++ (memory[bvadd64(index, 6bv64)] ++ (memory[bvadd64(index, 5bv64)] ++ (memory[bvadd64(index, 4bv64)] ++ (memory[bvadd64(index, 3bv64)] ++ (memory[bvadd64(index, 2bv64)] ++ (memory[bvadd64(index, 1bv64)] ++ memory[index]))))))) } -function {:extern} memory_store32_le(memory: [bv64]bv8, index: bv64, value: bv32) returns ([bv64]bv8) { - memory[index := value[8:0]][bvadd64(index, 1bv64) := value[16:8]][bvadd64(index, 2bv64) := value[24:16]][bvadd64(index, 3bv64) := value[32:24]] -} - function {:extern} memory_store64_le(memory: [bv64]bv8, index: bv64, value: bv64) returns ([bv64]bv8) { memory[index := value[8:0]][bvadd64(index, 1bv64) := value[16:8]][bvadd64(index, 2bv64) := value[24:16]][bvadd64(index, 3bv64) := value[32:24]][bvadd64(index, 4bv64) := value[40:32]][bvadd64(index, 5bv64) := value[48:40]][bvadd64(index, 6bv64) := value[56:48]][bvadd64(index, 7bv64) := value[64:56]] } @@ -51,11 +39,7 @@ procedure {:extern} rely(); modifies Gamma_mem, mem; ensures (Gamma_mem == old(Gamma_mem)); ensures (mem == old(mem)); - free ensures (memory_load32_le(mem, 1904bv64) == 131073bv32); - free ensures (memory_load64_le(mem, 69016bv64) == 1808bv64); - free ensures (memory_load64_le(mem, 69024bv64) == 1728bv64); - free ensures (memory_load64_le(mem, 69616bv64) == 1812bv64); - free ensures (memory_load64_le(mem, 69640bv64) == 69640bv64); + free ensures (memory_load32_le(mem, 4196332bv64) == 131073bv32); procedure {:extern} rely_transitive(); modifies Gamma_mem, mem; @@ -73,102 +57,65 @@ procedure {:extern} rely_reflexive(); procedure {:extern} guarantee_reflexive(); modifies Gamma_mem, mem; -procedure main_1812(); +procedure main(); modifies Gamma_R0, Gamma_R29, Gamma_R30, Gamma_R31, Gamma_stack, R0, R29, R30, R31, stack; - free requires (memory_load64_le(mem, 69632bv64) == 0bv64); - free requires (memory_load64_le(mem, 69640bv64) == 69640bv64); - free requires (memory_load32_le(mem, 1904bv64) == 131073bv32); - free requires (memory_load64_le(mem, 69016bv64) == 1808bv64); - free requires (memory_load64_le(mem, 69024bv64) == 1728bv64); - free requires (memory_load64_le(mem, 69616bv64) == 1812bv64); - free requires (memory_load64_le(mem, 69640bv64) == 69640bv64); + free requires (memory_load64_le(mem, 4325376bv64) == 0bv64); + free requires (memory_load64_le(mem, 4325384bv64) == 0bv64); + free requires (memory_load32_le(mem, 4196332bv64) == 131073bv32); free ensures (Gamma_R29 == old(Gamma_R29)); free ensures (Gamma_R31 == old(Gamma_R31)); free ensures (R29 == old(R29)); free ensures (R31 == old(R31)); - free ensures (memory_load32_le(mem, 1904bv64) == 131073bv32); - free ensures (memory_load64_le(mem, 69016bv64) == 1808bv64); - free ensures (memory_load64_le(mem, 69024bv64) == 1728bv64); - free ensures (memory_load64_le(mem, 69616bv64) == 1812bv64); - free ensures (memory_load64_le(mem, 69640bv64) == 69640bv64); + free ensures (memory_load32_le(mem, 4196332bv64) == 131073bv32); -implementation main_1812() +implementation main() { - var #4: bv64; - var Gamma_#4: bool; - var Gamma_load18: bool; - var Gamma_load19: bool; - var Gamma_load20: bool; - var load18: bv32; - var load19: bv64; - var load20: bv64; + var #1: bv64; + var $load$14: bv64; + var $load$15: bv64; + var Gamma_#1: bool; + var Gamma_$load$14: bool; + var Gamma_$load$15: bool; lmain: assume {:captureState "lmain"} true; - #4, Gamma_#4 := bvadd64(R31, 18446744073709551584bv64), Gamma_R31; - stack, Gamma_stack := memory_store64_le(stack, #4, R29), gamma_store64(Gamma_stack, #4, Gamma_R29); - assume {:captureState "%000002fc"} true; - stack, Gamma_stack := memory_store64_le(stack, bvadd64(#4, 8bv64), R30), gamma_store64(Gamma_stack, bvadd64(#4, 8bv64), Gamma_R30); - assume {:captureState "%00000302"} true; - R31, Gamma_R31 := #4, Gamma_#4; - R29, Gamma_R29 := R31, Gamma_R31; + #1, Gamma_#1 := bvadd64(R31, 18446744073709551600bv64), Gamma_R31; + stack, Gamma_stack := memory_store64_le(stack, #1, R29), gamma_store64(Gamma_stack, #1, Gamma_R29); + assume {:captureState "%0000024c"} true; + stack, Gamma_stack := memory_store64_le(stack, bvadd64(#1, 8bv64), R30), gamma_store64(Gamma_stack, bvadd64(#1, 8bv64), Gamma_R30); + assume {:captureState "%00000250"} true; + R31, Gamma_R31 := #1, Gamma_#1; R0, Gamma_R0 := 1bv64, true; - stack, Gamma_stack := memory_store32_le(stack, bvadd64(R31, 24bv64), R0[32:0]), gamma_store32(Gamma_stack, bvadd64(R31, 24bv64), Gamma_R0); - assume {:captureState "%00000319"} true; - R0, Gamma_R0 := 2bv64, true; - stack, Gamma_stack := memory_store32_le(stack, bvadd64(R31, 28bv64), R0[32:0]), gamma_store32(Gamma_stack, bvadd64(R31, 28bv64), Gamma_R0); - assume {:captureState "%00000326"} true; - load18, Gamma_load18 := memory_load32_le(stack, bvadd64(R31, 24bv64)), gamma_load32(Gamma_stack, bvadd64(R31, 24bv64)); - R0, Gamma_R0 := zero_extend32_32(load18), Gamma_load18; - R30, Gamma_R30 := 1844bv64, true; - call plus_one_1860(); - goto l0000035c; - l0000035c: - assume {:captureState "l0000035c"} true; - stack, Gamma_stack := memory_store32_le(stack, bvadd64(R31, 24bv64), R0[32:0]), gamma_store32(Gamma_stack, bvadd64(R31, 24bv64), Gamma_R0); - assume {:captureState "%00000362"} true; + R29, Gamma_R29 := R31, Gamma_R31; + R30, Gamma_R30 := 4195984bv64, true; + call plus_one(); + goto l0000026c; + l0000026c: + assume {:captureState "l0000026c"} true; R0, Gamma_R0 := 0bv64, true; - load19, Gamma_load19 := memory_load64_le(stack, R31), gamma_load64(Gamma_stack, R31); - R29, Gamma_R29 := load19, Gamma_load19; - load20, Gamma_load20 := memory_load64_le(stack, bvadd64(R31, 8bv64)), gamma_load64(Gamma_stack, bvadd64(R31, 8bv64)); - R30, Gamma_R30 := load20, Gamma_load20; - R31, Gamma_R31 := bvadd64(R31, 32bv64), Gamma_R31; - goto main_1812_basil_return; - main_1812_basil_return: - assume {:captureState "main_1812_basil_return"} true; + $load$14, Gamma_$load$14 := memory_load64_le(stack, R31), gamma_load64(Gamma_stack, R31); + R29, Gamma_R29 := $load$14, Gamma_$load$14; + $load$15, Gamma_$load$15 := memory_load64_le(stack, bvadd64(R31, 8bv64)), gamma_load64(Gamma_stack, bvadd64(R31, 8bv64)); + R30, Gamma_R30 := $load$15, Gamma_$load$15; + R31, Gamma_R31 := bvadd64(R31, 16bv64), Gamma_R31; + goto main_basil_return; + main_basil_return: + assume {:captureState "main_basil_return"} true; return; } -procedure plus_one_1860(); - modifies Gamma_R0, Gamma_R31, Gamma_stack, R0, R31, stack; - free requires (memory_load32_le(mem, 1904bv64) == 131073bv32); - free requires (memory_load64_le(mem, 69016bv64) == 1808bv64); - free requires (memory_load64_le(mem, 69024bv64) == 1728bv64); - free requires (memory_load64_le(mem, 69616bv64) == 1812bv64); - free requires (memory_load64_le(mem, 69640bv64) == 69640bv64); - free ensures (Gamma_R31 == old(Gamma_R31)); - free ensures (R31 == old(R31)); - free ensures (memory_load32_le(mem, 1904bv64) == 131073bv32); - free ensures (memory_load64_le(mem, 69016bv64) == 1808bv64); - free ensures (memory_load64_le(mem, 69024bv64) == 1728bv64); - free ensures (memory_load64_le(mem, 69616bv64) == 1812bv64); - free ensures (memory_load64_le(mem, 69640bv64) == 69640bv64); +procedure plus_one(); + modifies Gamma_R0, R0; + free requires (memory_load32_le(mem, 4196332bv64) == 131073bv32); + free ensures (memory_load32_le(mem, 4196332bv64) == 131073bv32); -implementation plus_one_1860() +implementation plus_one() { - var Gamma_load21: bool; - var load21: bv32; lplus_one: assume {:captureState "lplus_one"} true; - R31, Gamma_R31 := bvadd64(R31, 18446744073709551600bv64), Gamma_R31; - stack, Gamma_stack := memory_store32_le(stack, bvadd64(R31, 12bv64), R0[32:0]), gamma_store32(Gamma_stack, bvadd64(R31, 12bv64), Gamma_R0); - assume {:captureState "%00000342"} true; - load21, Gamma_load21 := memory_load32_le(stack, bvadd64(R31, 12bv64)), gamma_load32(Gamma_stack, bvadd64(R31, 12bv64)); - R0, Gamma_R0 := zero_extend32_32(load21), Gamma_load21; R0, Gamma_R0 := zero_extend32_32(bvadd32(R0[32:0], 1bv32)), Gamma_R0; - R31, Gamma_R31 := bvadd64(R31, 16bv64), Gamma_R31; - goto plus_one_1860_basil_return; - plus_one_1860_basil_return: - assume {:captureState "plus_one_1860_basil_return"} true; + goto plus_one_basil_return; + plus_one_basil_return: + assume {:captureState "plus_one_basil_return"} true; return; } diff --git a/src/test/correct/functions_with_params/gcc/functions_with_params.gts b/src/test/correct/functions_with_params/gcc/functions_with_params.gts deleted file mode 100644 index c1b3c926f..000000000 Binary files a/src/test/correct/functions_with_params/gcc/functions_with_params.gts and /dev/null differ diff --git a/src/test/correct/functions_with_params/gcc/functions_with_params.md5sum b/src/test/correct/functions_with_params/gcc/functions_with_params.md5sum new file mode 100644 index 000000000..a9c992eb9 --- /dev/null +++ b/src/test/correct/functions_with_params/gcc/functions_with_params.md5sum @@ -0,0 +1,5 @@ +b0838cae2556b4f52b8330e469b59c47 correct/functions_with_params/gcc/a.out +a6c8b544ef1ea696e9084c89a6a9e107 correct/functions_with_params/gcc/functions_with_params.adt +cb97288bba1bc577545a4652bcdb095a correct/functions_with_params/gcc/functions_with_params.bir +8f21dabab411213c842c5be78b352c78 correct/functions_with_params/gcc/functions_with_params.relf +5f08b8b745349196b2562d4651e81d00 correct/functions_with_params/gcc/functions_with_params.gts diff --git a/src/test/correct/functions_with_params/gcc/functions_with_params.relf b/src/test/correct/functions_with_params/gcc/functions_with_params.relf deleted file mode 100644 index 4e43bd60c..000000000 --- a/src/test/correct/functions_with_params/gcc/functions_with_params.relf +++ /dev/null @@ -1,120 +0,0 @@ - -Relocation section '.rela.dyn' at offset 0x460 contains 8 entries: - Offset Info Type Symbol's Value Symbol's Name + Addend -0000000000010d98 0000000000000403 R_AARCH64_RELATIVE 710 -0000000000010da0 0000000000000403 R_AARCH64_RELATIVE 6c0 -0000000000010ff0 0000000000000403 R_AARCH64_RELATIVE 714 -0000000000011008 0000000000000403 R_AARCH64_RELATIVE 11008 -0000000000010fd8 0000000400000401 R_AARCH64_GLOB_DAT 0000000000000000 _ITM_deregisterTMCloneTable + 0 -0000000000010fe0 0000000500000401 R_AARCH64_GLOB_DAT 0000000000000000 __cxa_finalize@GLIBC_2.17 + 0 -0000000000010fe8 0000000600000401 R_AARCH64_GLOB_DAT 0000000000000000 __gmon_start__ + 0 -0000000000010ff8 0000000800000401 R_AARCH64_GLOB_DAT 0000000000000000 _ITM_registerTMCloneTable + 0 - -Relocation section '.rela.plt' at offset 0x520 contains 4 entries: - Offset Info Type Symbol's Value Symbol's Name + Addend -0000000000010fb0 0000000300000402 R_AARCH64_JUMP_SLOT 0000000000000000 __libc_start_main@GLIBC_2.34 + 0 -0000000000010fb8 0000000500000402 R_AARCH64_JUMP_SLOT 0000000000000000 __cxa_finalize@GLIBC_2.17 + 0 -0000000000010fc0 0000000600000402 R_AARCH64_JUMP_SLOT 0000000000000000 __gmon_start__ + 0 -0000000000010fc8 0000000700000402 R_AARCH64_JUMP_SLOT 0000000000000000 abort@GLIBC_2.17 + 0 - -Symbol table '.dynsym' contains 9 entries: - Num: Value Size Type Bind Vis Ndx Name - 0: 0000000000000000 0 NOTYPE LOCAL DEFAULT UND - 1: 0000000000000580 0 SECTION LOCAL DEFAULT 11 .init - 2: 0000000000011000 0 SECTION LOCAL DEFAULT 22 .data - 3: 0000000000000000 0 FUNC GLOBAL DEFAULT UND __libc_start_main@GLIBC_2.34 (2) - 4: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_deregisterTMCloneTable - 5: 0000000000000000 0 FUNC WEAK DEFAULT UND __cxa_finalize@GLIBC_2.17 (3) - 6: 0000000000000000 0 NOTYPE WEAK DEFAULT UND __gmon_start__ - 7: 0000000000000000 0 FUNC GLOBAL DEFAULT UND abort@GLIBC_2.17 (3) - 8: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_registerTMCloneTable - -Symbol table '.symtab' contains 87 entries: - Num: Value Size Type Bind Vis Ndx Name - 0: 0000000000000000 0 NOTYPE LOCAL DEFAULT UND - 1: 0000000000000238 0 SECTION LOCAL DEFAULT 1 .interp - 2: 0000000000000254 0 SECTION LOCAL DEFAULT 2 .note.gnu.build-id - 3: 0000000000000278 0 SECTION LOCAL DEFAULT 3 .note.ABI-tag - 4: 0000000000000298 0 SECTION LOCAL DEFAULT 4 .gnu.hash - 5: 00000000000002b8 0 SECTION LOCAL DEFAULT 5 .dynsym - 6: 0000000000000390 0 SECTION LOCAL DEFAULT 6 .dynstr - 7: 000000000000041e 0 SECTION LOCAL DEFAULT 7 .gnu.version - 8: 0000000000000430 0 SECTION LOCAL DEFAULT 8 .gnu.version_r - 9: 0000000000000460 0 SECTION LOCAL DEFAULT 9 .rela.dyn - 10: 0000000000000520 0 SECTION LOCAL DEFAULT 10 .rela.plt - 11: 0000000000000580 0 SECTION LOCAL DEFAULT 11 .init - 12: 00000000000005a0 0 SECTION LOCAL DEFAULT 12 .plt - 13: 0000000000000600 0 SECTION LOCAL DEFAULT 13 .text - 14: 000000000000075c 0 SECTION LOCAL DEFAULT 14 .fini - 15: 0000000000000770 0 SECTION LOCAL DEFAULT 15 .rodata - 16: 0000000000000774 0 SECTION LOCAL DEFAULT 16 .eh_frame_hdr - 17: 00000000000007b8 0 SECTION LOCAL DEFAULT 17 .eh_frame - 18: 0000000000010d98 0 SECTION LOCAL DEFAULT 18 .init_array - 19: 0000000000010da0 0 SECTION LOCAL DEFAULT 19 .fini_array - 20: 0000000000010da8 0 SECTION LOCAL DEFAULT 20 .dynamic - 21: 0000000000010f98 0 SECTION LOCAL DEFAULT 21 .got - 22: 0000000000011000 0 SECTION LOCAL DEFAULT 22 .data - 23: 0000000000011010 0 SECTION LOCAL DEFAULT 23 .bss - 24: 0000000000000000 0 SECTION LOCAL DEFAULT 24 .comment - 25: 0000000000000000 0 FILE LOCAL DEFAULT ABS Scrt1.o - 26: 0000000000000278 0 NOTYPE LOCAL DEFAULT 3 $d - 27: 0000000000000278 32 OBJECT LOCAL DEFAULT 3 __abi_tag - 28: 0000000000000600 0 NOTYPE LOCAL DEFAULT 13 $x - 29: 00000000000007cc 0 NOTYPE LOCAL DEFAULT 17 $d - 30: 0000000000000770 0 NOTYPE LOCAL DEFAULT 15 $d - 31: 0000000000000000 0 FILE LOCAL DEFAULT ABS crti.o - 32: 0000000000000634 0 NOTYPE LOCAL DEFAULT 13 $x - 33: 0000000000000634 20 FUNC LOCAL DEFAULT 13 call_weak_fn - 34: 0000000000000580 0 NOTYPE LOCAL DEFAULT 11 $x - 35: 000000000000075c 0 NOTYPE LOCAL DEFAULT 14 $x - 36: 0000000000000000 0 FILE LOCAL DEFAULT ABS crtn.o - 37: 0000000000000590 0 NOTYPE LOCAL DEFAULT 11 $x - 38: 0000000000000768 0 NOTYPE LOCAL DEFAULT 14 $x - 39: 0000000000000000 0 FILE LOCAL DEFAULT ABS crtstuff.c - 40: 0000000000000650 0 NOTYPE LOCAL DEFAULT 13 $x - 41: 0000000000000650 0 FUNC LOCAL DEFAULT 13 deregister_tm_clones - 42: 0000000000000680 0 FUNC LOCAL DEFAULT 13 register_tm_clones - 43: 0000000000011008 0 NOTYPE LOCAL DEFAULT 22 $d - 44: 00000000000006c0 0 FUNC LOCAL DEFAULT 13 __do_global_dtors_aux - 45: 0000000000011010 1 OBJECT LOCAL DEFAULT 23 completed.0 - 46: 0000000000010da0 0 NOTYPE LOCAL DEFAULT 19 $d - 47: 0000000000010da0 0 OBJECT LOCAL DEFAULT 19 __do_global_dtors_aux_fini_array_entry - 48: 0000000000000710 0 FUNC LOCAL DEFAULT 13 frame_dummy - 49: 0000000000010d98 0 NOTYPE LOCAL DEFAULT 18 $d - 50: 0000000000010d98 0 OBJECT LOCAL DEFAULT 18 __frame_dummy_init_array_entry - 51: 00000000000007e0 0 NOTYPE LOCAL DEFAULT 17 $d - 52: 0000000000011010 0 NOTYPE LOCAL DEFAULT 23 $d - 53: 0000000000000000 0 FILE LOCAL DEFAULT ABS functions_with_params.c - 54: 0000000000000714 0 NOTYPE LOCAL DEFAULT 13 $x - 55: 0000000000000840 0 NOTYPE LOCAL DEFAULT 17 $d - 56: 0000000000000000 0 FILE LOCAL DEFAULT ABS crtstuff.c - 57: 0000000000000878 0 NOTYPE LOCAL DEFAULT 17 $d - 58: 0000000000000878 0 OBJECT LOCAL DEFAULT 17 __FRAME_END__ - 59: 0000000000000000 0 FILE LOCAL DEFAULT ABS - 60: 0000000000010da8 0 OBJECT LOCAL DEFAULT ABS _DYNAMIC - 61: 0000000000000774 0 NOTYPE LOCAL DEFAULT 16 __GNU_EH_FRAME_HDR - 62: 0000000000010fd0 0 OBJECT LOCAL DEFAULT ABS _GLOBAL_OFFSET_TABLE_ - 63: 00000000000005a0 0 NOTYPE LOCAL DEFAULT 12 $x - 64: 0000000000000000 0 FUNC GLOBAL DEFAULT UND __libc_start_main@GLIBC_2.34 - 65: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_deregisterTMCloneTable - 66: 0000000000011000 0 NOTYPE WEAK DEFAULT 22 data_start - 67: 0000000000011010 0 NOTYPE GLOBAL DEFAULT 23 __bss_start__ - 68: 0000000000000000 0 FUNC WEAK DEFAULT UND __cxa_finalize@GLIBC_2.17 - 69: 0000000000011018 0 NOTYPE GLOBAL DEFAULT 23 _bss_end__ - 70: 0000000000011010 0 NOTYPE GLOBAL DEFAULT 22 _edata - 71: 000000000000075c 0 FUNC GLOBAL HIDDEN 14 _fini - 72: 0000000000011018 0 NOTYPE GLOBAL DEFAULT 23 __bss_end__ - 73: 0000000000000744 24 FUNC GLOBAL DEFAULT 13 plus_one - 74: 0000000000011000 0 NOTYPE GLOBAL DEFAULT 22 __data_start - 75: 0000000000000000 0 NOTYPE WEAK DEFAULT UND __gmon_start__ - 76: 0000000000011008 0 OBJECT GLOBAL HIDDEN 22 __dso_handle - 77: 0000000000000000 0 FUNC GLOBAL DEFAULT UND abort@GLIBC_2.17 - 78: 0000000000000770 4 OBJECT GLOBAL DEFAULT 15 _IO_stdin_used - 79: 0000000000011018 0 NOTYPE GLOBAL DEFAULT 23 _end - 80: 0000000000000600 52 FUNC GLOBAL DEFAULT 13 _start - 81: 0000000000011018 0 NOTYPE GLOBAL DEFAULT 23 __end__ - 82: 0000000000011010 0 NOTYPE GLOBAL DEFAULT 23 __bss_start - 83: 0000000000000714 48 FUNC GLOBAL DEFAULT 13 main - 84: 0000000000011010 0 OBJECT GLOBAL HIDDEN 22 __TMC_END__ - 85: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_registerTMCloneTable - 86: 0000000000000580 0 FUNC GLOBAL HIDDEN 11 _init diff --git a/src/test/correct/functions_with_params/gcc/functions_with_params_gtirb.expected b/src/test/correct/functions_with_params/gcc/functions_with_params_gtirb.expected index 79accb881..e7cbf68fe 100644 --- a/src/test/correct/functions_with_params/gcc/functions_with_params_gtirb.expected +++ b/src/test/correct/functions_with_params/gcc/functions_with_params_gtirb.expected @@ -11,21 +11,13 @@ var {:extern} R31: bv64; var {:extern} mem: [bv64]bv8; var {:extern} stack: [bv64]bv8; const {:extern} $_IO_stdin_used_addr: bv64; -axiom ($_IO_stdin_used_addr == 1904bv64); +axiom ($_IO_stdin_used_addr == 4196332bv64); function {:extern} {:bvbuiltin "bvadd"} bvadd32(bv32, bv32) returns (bv32); function {:extern} {:bvbuiltin "bvadd"} bvadd64(bv64, bv64) returns (bv64); -function {:extern} gamma_load32(gammaMap: [bv64]bool, index: bv64) returns (bool) { - (gammaMap[bvadd64(index, 3bv64)] && (gammaMap[bvadd64(index, 2bv64)] && (gammaMap[bvadd64(index, 1bv64)] && gammaMap[index]))) -} - function {:extern} gamma_load64(gammaMap: [bv64]bool, index: bv64) returns (bool) { (gammaMap[bvadd64(index, 7bv64)] && (gammaMap[bvadd64(index, 6bv64)] && (gammaMap[bvadd64(index, 5bv64)] && (gammaMap[bvadd64(index, 4bv64)] && (gammaMap[bvadd64(index, 3bv64)] && (gammaMap[bvadd64(index, 2bv64)] && (gammaMap[bvadd64(index, 1bv64)] && gammaMap[index]))))))) } -function {:extern} gamma_store32(gammaMap: [bv64]bool, index: bv64, value: bool) returns ([bv64]bool) { - gammaMap[index := value][bvadd64(index, 1bv64) := value][bvadd64(index, 2bv64) := value][bvadd64(index, 3bv64) := value] -} - function {:extern} gamma_store64(gammaMap: [bv64]bool, index: bv64, value: bool) returns ([bv64]bool) { gammaMap[index := value][bvadd64(index, 1bv64) := value][bvadd64(index, 2bv64) := value][bvadd64(index, 3bv64) := value][bvadd64(index, 4bv64) := value][bvadd64(index, 5bv64) := value][bvadd64(index, 6bv64) := value][bvadd64(index, 7bv64) := value] } @@ -38,10 +30,6 @@ function {:extern} memory_load64_le(memory: [bv64]bv8, index: bv64) returns (bv6 (memory[bvadd64(index, 7bv64)] ++ (memory[bvadd64(index, 6bv64)] ++ (memory[bvadd64(index, 5bv64)] ++ (memory[bvadd64(index, 4bv64)] ++ (memory[bvadd64(index, 3bv64)] ++ (memory[bvadd64(index, 2bv64)] ++ (memory[bvadd64(index, 1bv64)] ++ memory[index]))))))) } -function {:extern} memory_store32_le(memory: [bv64]bv8, index: bv64, value: bv32) returns ([bv64]bv8) { - memory[index := value[8:0]][bvadd64(index, 1bv64) := value[16:8]][bvadd64(index, 2bv64) := value[24:16]][bvadd64(index, 3bv64) := value[32:24]] -} - function {:extern} memory_store64_le(memory: [bv64]bv8, index: bv64, value: bv64) returns ([bv64]bv8) { memory[index := value[8:0]][bvadd64(index, 1bv64) := value[16:8]][bvadd64(index, 2bv64) := value[24:16]][bvadd64(index, 3bv64) := value[32:24]][bvadd64(index, 4bv64) := value[40:32]][bvadd64(index, 5bv64) := value[48:40]][bvadd64(index, 6bv64) := value[56:48]][bvadd64(index, 7bv64) := value[64:56]] } @@ -51,11 +39,7 @@ procedure {:extern} rely(); modifies Gamma_mem, mem; ensures (Gamma_mem == old(Gamma_mem)); ensures (mem == old(mem)); - free ensures (memory_load32_le(mem, 1904bv64) == 131073bv32); - free ensures (memory_load64_le(mem, 69016bv64) == 1808bv64); - free ensures (memory_load64_le(mem, 69024bv64) == 1728bv64); - free ensures (memory_load64_le(mem, 69616bv64) == 1812bv64); - free ensures (memory_load64_le(mem, 69640bv64) == 69640bv64); + free ensures (memory_load32_le(mem, 4196332bv64) == 131073bv32); procedure {:extern} rely_transitive(); modifies Gamma_mem, mem; @@ -73,102 +57,65 @@ procedure {:extern} rely_reflexive(); procedure {:extern} guarantee_reflexive(); modifies Gamma_mem, mem; -procedure plus_one_1860(); - modifies Gamma_R0, Gamma_R31, Gamma_stack, R0, R31, stack; - free requires (memory_load32_le(mem, 1904bv64) == 131073bv32); - free requires (memory_load64_le(mem, 69016bv64) == 1808bv64); - free requires (memory_load64_le(mem, 69024bv64) == 1728bv64); - free requires (memory_load64_le(mem, 69616bv64) == 1812bv64); - free requires (memory_load64_le(mem, 69640bv64) == 69640bv64); +procedure main(); + modifies Gamma_R0, Gamma_R29, Gamma_R30, Gamma_R31, Gamma_stack, R0, R29, R30, R31, stack; + free requires (memory_load64_le(mem, 4325376bv64) == 0bv64); + free requires (memory_load64_le(mem, 4325384bv64) == 0bv64); + free requires (memory_load32_le(mem, 4196332bv64) == 131073bv32); + free ensures (Gamma_R29 == old(Gamma_R29)); free ensures (Gamma_R31 == old(Gamma_R31)); + free ensures (R29 == old(R29)); free ensures (R31 == old(R31)); - free ensures (memory_load32_le(mem, 1904bv64) == 131073bv32); - free ensures (memory_load64_le(mem, 69016bv64) == 1808bv64); - free ensures (memory_load64_le(mem, 69024bv64) == 1728bv64); - free ensures (memory_load64_le(mem, 69616bv64) == 1812bv64); - free ensures (memory_load64_le(mem, 69640bv64) == 69640bv64); + free ensures (memory_load32_le(mem, 4196332bv64) == 131073bv32); -implementation plus_one_1860() +implementation main() { - var Gamma_load0: bool; - var load0: bv32; - plus_one_1860__0__aniLEBpwTwWecL~mJKhdww: - assume {:captureState "plus_one_1860__0__aniLEBpwTwWecL~mJKhdww"} true; - R31, Gamma_R31 := bvadd64(R31, 18446744073709551600bv64), Gamma_R31; - stack, Gamma_stack := memory_store32_le(stack, bvadd64(R31, 12bv64), R0[32:0]), gamma_store32(Gamma_stack, bvadd64(R31, 12bv64), Gamma_R0); - assume {:captureState "1864_0"} true; - load0, Gamma_load0 := memory_load32_le(stack, bvadd64(R31, 12bv64)), gamma_load32(Gamma_stack, bvadd64(R31, 12bv64)); - R0, Gamma_R0 := zero_extend32_32(load0), Gamma_load0; - R0, Gamma_R0 := zero_extend32_32(bvadd32(R0[32:0], 1bv32)), Gamma_R0; + var $load3: bv64; + var $load4: bv64; + var Cse0__5$2$0: bv64; + var Gamma_$load3: bool; + var Gamma_$load4: bool; + var Gamma_Cse0__5$2$0: bool; + $main$__0__$xdU61Ad4R3aE_hVJ17n5eQ: + assume {:captureState "$main$__0__$xdU61Ad4R3aE_hVJ17n5eQ"} true; + Cse0__5$2$0, Gamma_Cse0__5$2$0 := bvadd64(R31, 18446744073709551600bv64), Gamma_R31; + stack, Gamma_stack := memory_store64_le(stack, Cse0__5$2$0, R29), gamma_store64(Gamma_stack, Cse0__5$2$0, Gamma_R29); + assume {:captureState "4195968$1"} true; + stack, Gamma_stack := memory_store64_le(stack, bvadd64(Cse0__5$2$0, 8bv64), R30), gamma_store64(Gamma_stack, bvadd64(Cse0__5$2$0, 8bv64), Gamma_R30); + assume {:captureState "4195968$2"} true; + R31, Gamma_R31 := Cse0__5$2$0, Gamma_Cse0__5$2$0; + R0, Gamma_R0 := 1bv64, true; + R29, Gamma_R29 := R31, Gamma_R31; + R30, Gamma_R30 := 4195984bv64, true; + call plus_one(); + goto $main$__1__$wtDzxxOjSJeWxzGBUpQYxA; + $main$__1__$wtDzxxOjSJeWxzGBUpQYxA: + assume {:captureState "$main$__1__$wtDzxxOjSJeWxzGBUpQYxA"} true; + R0, Gamma_R0 := 0bv64, true; + $load3, Gamma_$load3 := memory_load64_le(stack, R31), gamma_load64(Gamma_stack, R31); + R29, Gamma_R29 := $load3, Gamma_$load3; + $load4, Gamma_$load4 := memory_load64_le(stack, bvadd64(R31, 8bv64)), gamma_load64(Gamma_stack, bvadd64(R31, 8bv64)); + R30, Gamma_R30 := $load4, Gamma_$load4; R31, Gamma_R31 := bvadd64(R31, 16bv64), Gamma_R31; - goto plus_one_1860_basil_return; - plus_one_1860_basil_return: - assume {:captureState "plus_one_1860_basil_return"} true; + goto main_basil_return; + main_basil_return: + assume {:captureState "main_basil_return"} true; return; } -procedure main_1812(); - modifies Gamma_R0, Gamma_R29, Gamma_R30, Gamma_R31, Gamma_stack, R0, R29, R30, R31, stack; - free requires (memory_load64_le(mem, 69632bv64) == 0bv64); - free requires (memory_load64_le(mem, 69640bv64) == 69640bv64); - free requires (memory_load32_le(mem, 1904bv64) == 131073bv32); - free requires (memory_load64_le(mem, 69016bv64) == 1808bv64); - free requires (memory_load64_le(mem, 69024bv64) == 1728bv64); - free requires (memory_load64_le(mem, 69616bv64) == 1812bv64); - free requires (memory_load64_le(mem, 69640bv64) == 69640bv64); - free ensures (Gamma_R29 == old(Gamma_R29)); - free ensures (Gamma_R31 == old(Gamma_R31)); - free ensures (R29 == old(R29)); - free ensures (R31 == old(R31)); - free ensures (memory_load32_le(mem, 1904bv64) == 131073bv32); - free ensures (memory_load64_le(mem, 69016bv64) == 1808bv64); - free ensures (memory_load64_le(mem, 69024bv64) == 1728bv64); - free ensures (memory_load64_le(mem, 69616bv64) == 1812bv64); - free ensures (memory_load64_le(mem, 69640bv64) == 69640bv64); +procedure plus_one(); + modifies Gamma_R0, R0; + free requires (memory_load32_le(mem, 4196332bv64) == 131073bv32); + free ensures (memory_load32_le(mem, 4196332bv64) == 131073bv32); -implementation main_1812() +implementation plus_one() { - var Cse0__5_0_0: bv64; - var Gamma_Cse0__5_0_0: bool; - var Gamma_load20: bool; - var Gamma_load21: bool; - var Gamma_load22: bool; - var load20: bv32; - var load21: bv64; - var load22: bv64; - main_1812__0__yXI5g~EeQ_GieNYkY~buoQ: - assume {:captureState "main_1812__0__yXI5g~EeQ_GieNYkY~buoQ"} true; - Cse0__5_0_0, Gamma_Cse0__5_0_0 := bvadd64(R31, 18446744073709551584bv64), Gamma_R31; - stack, Gamma_stack := memory_store64_le(stack, Cse0__5_0_0, R29), gamma_store64(Gamma_stack, Cse0__5_0_0, Gamma_R29); - assume {:captureState "1812_1"} true; - stack, Gamma_stack := memory_store64_le(stack, bvadd64(Cse0__5_0_0, 8bv64), R30), gamma_store64(Gamma_stack, bvadd64(Cse0__5_0_0, 8bv64), Gamma_R30); - assume {:captureState "1812_2"} true; - R31, Gamma_R31 := Cse0__5_0_0, Gamma_Cse0__5_0_0; - R29, Gamma_R29 := R31, Gamma_R31; - R0, Gamma_R0 := 1bv64, true; - stack, Gamma_stack := memory_store32_le(stack, bvadd64(R31, 24bv64), R0[32:0]), gamma_store32(Gamma_stack, bvadd64(R31, 24bv64), Gamma_R0); - assume {:captureState "1824_0"} true; - R0, Gamma_R0 := 2bv64, true; - stack, Gamma_stack := memory_store32_le(stack, bvadd64(R31, 28bv64), R0[32:0]), gamma_store32(Gamma_stack, bvadd64(R31, 28bv64), Gamma_R0); - assume {:captureState "1832_0"} true; - load20, Gamma_load20 := memory_load32_le(stack, bvadd64(R31, 24bv64)), gamma_load32(Gamma_stack, bvadd64(R31, 24bv64)); - R0, Gamma_R0 := zero_extend32_32(load20), Gamma_load20; - R30, Gamma_R30 := 1844bv64, true; - call plus_one_1860(); - goto main_1812__1__4Vr1A4uzTlqLZDSUKeLWQA; - main_1812__1__4Vr1A4uzTlqLZDSUKeLWQA: - assume {:captureState "main_1812__1__4Vr1A4uzTlqLZDSUKeLWQA"} true; - stack, Gamma_stack := memory_store32_le(stack, bvadd64(R31, 24bv64), R0[32:0]), gamma_store32(Gamma_stack, bvadd64(R31, 24bv64), Gamma_R0); - assume {:captureState "1844_0"} true; - R0, Gamma_R0 := 0bv64, true; - load21, Gamma_load21 := memory_load64_le(stack, R31), gamma_load64(Gamma_stack, R31); - R29, Gamma_R29 := load21, Gamma_load21; - load22, Gamma_load22 := memory_load64_le(stack, bvadd64(R31, 8bv64)), gamma_load64(Gamma_stack, bvadd64(R31, 8bv64)); - R30, Gamma_R30 := load22, Gamma_load22; - R31, Gamma_R31 := bvadd64(R31, 32bv64), Gamma_R31; - goto main_1812_basil_return; - main_1812_basil_return: - assume {:captureState "main_1812_basil_return"} true; + $plus_one$__0__$6JJvkaLhTaWXaEL0~yxKxg: + assume {:captureState "$plus_one$__0__$6JJvkaLhTaWXaEL0~yxKxg"} true; + R0, Gamma_R0 := zero_extend32_32(bvadd32(R0[32:0], 1bv32)), Gamma_R0; + goto plus_one_basil_return; + plus_one_basil_return: + assume {:captureState "plus_one_basil_return"} true; return; } diff --git a/src/test/correct/ifbranches/clang/ifbranches.adt b/src/test/correct/ifbranches/clang/ifbranches.adt deleted file mode 100644 index 1a488ae90..000000000 --- a/src/test/correct/ifbranches/clang/ifbranches.adt +++ /dev/null @@ -1,575 +0,0 @@ -Project(Attrs([Attr("filename","\"clang/ifbranches.out\""), -Attr("image-specification","(declare abi (name str))\n(declare arch (name str))\n(declare base-address (addr int))\n(declare bias (off int))\n(declare bits (size int))\n(declare code-region (addr int) (size int) (off int))\n(declare code-start (addr int))\n(declare entry-point (addr int))\n(declare external-reference (addr int) (name str))\n(declare format (name str))\n(declare is-executable (flag bool))\n(declare is-little-endian (flag bool))\n(declare llvm:base-address (addr int))\n(declare llvm:code-entry (name str) (off int) (size int))\n(declare llvm:coff-import-library (name str))\n(declare llvm:coff-virtual-section-header (name str) (addr int) (size int))\n(declare llvm:elf-program-header (name str) (off int) (size int))\n(declare llvm:elf-program-header-flags (name str) (ld bool) (r bool) \n (w bool) (x bool))\n(declare llvm:elf-virtual-program-header (name str) (addr int) (size int))\n(declare llvm:entry-point (addr int))\n(declare llvm:macho-symbol (name str) (value int))\n(declare llvm:name-reference (at int) (name str))\n(declare llvm:relocation (at int) (addr int))\n(declare llvm:section-entry (name str) (addr int) (size int) (off int))\n(declare llvm:section-flags (name str) (r bool) (w bool) (x bool))\n(declare llvm:segment-command (name str) (off int) (size int))\n(declare llvm:segment-command-flags (name str) (r bool) (w bool) (x bool))\n(declare llvm:symbol-entry (name str) (addr int) (size int) (off int)\n (value int))\n(declare llvm:virtual-segment-command (name str) (addr int) (size int))\n(declare mapped (addr int) (size int) (off int))\n(declare named-region (addr int) (size int) (name str))\n(declare named-symbol (addr int) (name str))\n(declare require (name str))\n(declare section (addr int) (size int))\n(declare segment (addr int) (size int) (r bool) (w bool) (x bool))\n(declare subarch (name str))\n(declare symbol-chunk (addr int) (size int) (root int))\n(declare symbol-value (addr int) (value int))\n(declare system (name str))\n(declare vendor (name str))\n\n(abi unknown)\n(arch aarch64)\n(base-address 0)\n(bias 0)\n(bits 64)\n(code-region 1900 20 1900)\n(code-region 1536 364 1536)\n(code-region 1440 96 1440)\n(code-region 1408 24 1408)\n(code-start 1588)\n(code-start 1536)\n(code-start 1812)\n(entry-point 1536)\n(external-reference 69568 _ITM_deregisterTMCloneTable)\n(external-reference 69576 __cxa_finalize)\n(external-reference 69584 __gmon_start__)\n(external-reference 69600 _ITM_registerTMCloneTable)\n(external-reference 69632 __libc_start_main)\n(external-reference 69640 __cxa_finalize)\n(external-reference 69648 __gmon_start__)\n(external-reference 69656 abort)\n(format elf)\n(is-executable true)\n(is-little-endian true)\n(llvm:base-address 0)\n(llvm:code-entry abort 0 0)\n(llvm:code-entry __cxa_finalize 0 0)\n(llvm:code-entry __libc_start_main 0 0)\n(llvm:code-entry _init 1408 0)\n(llvm:code-entry main 1812 88)\n(llvm:code-entry _start 1536 52)\n(llvm:code-entry abort@GLIBC_2.17 0 0)\n(llvm:code-entry _fini 1900 0)\n(llvm:code-entry __cxa_finalize@GLIBC_2.17 0 0)\n(llvm:code-entry __libc_start_main@GLIBC_2.34 0 0)\n(llvm:code-entry frame_dummy 1808 0)\n(llvm:code-entry __do_global_dtors_aux 1728 0)\n(llvm:code-entry register_tm_clones 1664 0)\n(llvm:code-entry deregister_tm_clones 1616 0)\n(llvm:code-entry call_weak_fn 1588 20)\n(llvm:code-entry .fini 1900 20)\n(llvm:code-entry .text 1536 364)\n(llvm:code-entry .plt 1440 96)\n(llvm:code-entry .init 1408 24)\n(llvm:elf-program-header 08 3528 568)\n(llvm:elf-program-header 07 0 0)\n(llvm:elf-program-header 06 1924 60)\n(llvm:elf-program-header 05 596 68)\n(llvm:elf-program-header 04 3544 480)\n(llvm:elf-program-header 03 3528 616)\n(llvm:elf-program-header 02 0 2168)\n(llvm:elf-program-header 01 568 27)\n(llvm:elf-program-header 00 64 504)\n(llvm:elf-program-header-flags 08 false true false false)\n(llvm:elf-program-header-flags 07 false true true false)\n(llvm:elf-program-header-flags 06 false true false false)\n(llvm:elf-program-header-flags 05 false true false false)\n(llvm:elf-program-header-flags 04 false true true false)\n(llvm:elf-program-header-flags 03 true true true false)\n(llvm:elf-program-header-flags 02 true true false true)\n(llvm:elf-program-header-flags 01 false true false false)\n(llvm:elf-program-header-flags 00 false true false false)\n(llvm:elf-virtual-program-header 08 69064 568)\n(llvm:elf-virtual-program-header 07 0 0)\n(llvm:elf-virtual-program-header 06 1924 60)\n(llvm:elf-virtual-program-header 05 596 68)\n(llvm:elf-virtual-program-header 04 69080 480)\n(llvm:elf-virtual-program-header 03 69064 624)\n(llvm:elf-virtual-program-header 02 0 2168)\n(llvm:elf-virtual-program-header 01 568 27)\n(llvm:elf-virtual-program-header 00 64 504)\n(llvm:entry-point 1536)\n(llvm:name-reference 69656 abort)\n(llvm:name-reference 69648 __gmon_start__)\n(llvm:name-reference 69640 __cxa_finalize)\n(llvm:name-reference 69632 __libc_start_main)\n(llvm:name-reference 69600 _ITM_registerTMCloneTable)\n(llvm:name-reference 69584 __gmon_start__)\n(llvm:name-reference 69576 __cxa_finalize)\n(llvm:name-reference 69568 _ITM_deregisterTMCloneTable)\n(llvm:section-entry .shstrtab 0 259 6889)\n(llvm:section-entry .strtab 0 561 6328)\n(llvm:section-entry .symtab 0 2112 4216)\n(llvm:section-entry .comment 0 71 4144)\n(llvm:section-entry .bss 69680 8 4144)\n(llvm:section-entry .data 69664 16 4128)\n(llvm:section-entry .got.plt 69608 56 4072)\n(llvm:section-entry .got 69560 48 4024)\n(llvm:section-entry .dynamic 69080 480 3544)\n(llvm:section-entry .fini_array 69072 8 3536)\n(llvm:section-entry .init_array 69064 8 3528)\n(llvm:section-entry .eh_frame 1984 184 1984)\n(llvm:section-entry .eh_frame_hdr 1924 60 1924)\n(llvm:section-entry .rodata 1920 4 1920)\n(llvm:section-entry .fini 1900 20 1900)\n(llvm:section-entry .text 1536 364 1536)\n(llvm:section-entry .plt 1440 96 1440)\n(llvm:section-entry .init 1408 24 1408)\n(llvm:section-entry .rela.plt 1312 96 1312)\n(llvm:section-entry .rela.dyn 1120 192 1120)\n(llvm:section-entry .gnu.version_r 1072 48 1072)\n(llvm:section-entry .gnu.version 1054 18 1054)\n(llvm:section-entry .dynstr 912 141 912)\n(llvm:section-entry .dynsym 696 216 696)\n(llvm:section-entry .gnu.hash 664 28 664)\n(llvm:section-entry .note.ABI-tag 632 32 632)\n(llvm:section-entry .note.gnu.build-id 596 36 596)\n(llvm:section-entry .interp 568 27 568)\n(llvm:section-flags .shstrtab true false false)\n(llvm:section-flags .strtab true false false)\n(llvm:section-flags .symtab true false false)\n(llvm:section-flags .comment true false false)\n(llvm:section-flags .bss true true false)\n(llvm:section-flags .data true true false)\n(llvm:section-flags .got.plt true true false)\n(llvm:section-flags .got true true false)\n(llvm:section-flags .dynamic true true false)\n(llvm:section-flags .fini_array true true false)\n(llvm:section-flags .init_array true true false)\n(llvm:section-flags .eh_frame true false false)\n(llvm:section-flags .eh_frame_hdr true false false)\n(llvm:section-flags .rodata true false false)\n(llvm:section-flags .fini true false true)\n(llvm:section-flags .text true false true)\n(llvm:section-flags .plt true false true)\n(llvm:section-flags .init true false true)\n(llvm:section-flags .rela.plt true false false)\n(llvm:section-flags .rela.dyn true false false)\n(llvm:section-flags .gnu.version_r true false false)\n(llvm:section-flags .gnu.version true false false)\n(llvm:section-flags .dynstr true false false)\n(llvm:section-flags .dynsym true false false)\n(llvm:section-flags .gnu.hash true false false)\n(llvm:section-flags .note.ABI-tag true false false)\n(llvm:section-flags .note.gnu.build-id true false false)\n(llvm:section-flags .interp true false false)\n(llvm:symbol-entry abort 0 0 0 0)\n(llvm:symbol-entry __cxa_finalize 0 0 0 0)\n(llvm:symbol-entry __libc_start_main 0 0 0 0)\n(llvm:symbol-entry _init 1408 0 1408 1408)\n(llvm:symbol-entry main 1812 88 1812 1812)\n(llvm:symbol-entry _start 1536 52 1536 1536)\n(llvm:symbol-entry abort@GLIBC_2.17 0 0 0 0)\n(llvm:symbol-entry _fini 1900 0 1900 1900)\n(llvm:symbol-entry __cxa_finalize@GLIBC_2.17 0 0 0 0)\n(llvm:symbol-entry __libc_start_main@GLIBC_2.34 0 0 0 0)\n(llvm:symbol-entry frame_dummy 1808 0 1808 1808)\n(llvm:symbol-entry __do_global_dtors_aux 1728 0 1728 1728)\n(llvm:symbol-entry register_tm_clones 1664 0 1664 1664)\n(llvm:symbol-entry deregister_tm_clones 1616 0 1616 1616)\n(llvm:symbol-entry call_weak_fn 1588 20 1588 1588)\n(mapped 0 2168 0)\n(mapped 69064 616 3528)\n(named-region 0 2168 02)\n(named-region 69064 624 03)\n(named-region 568 27 .interp)\n(named-region 596 36 .note.gnu.build-id)\n(named-region 632 32 .note.ABI-tag)\n(named-region 664 28 .gnu.hash)\n(named-region 696 216 .dynsym)\n(named-region 912 141 .dynstr)\n(named-region 1054 18 .gnu.version)\n(named-region 1072 48 .gnu.version_r)\n(named-region 1120 192 .rela.dyn)\n(named-region 1312 96 .rela.plt)\n(named-region 1408 24 .init)\n(named-region 1440 96 .plt)\n(named-region 1536 364 .text)\n(named-region 1900 20 .fini)\n(named-region 1920 4 .rodata)\n(named-region 1924 60 .eh_frame_hdr)\n(named-region 1984 184 .eh_frame)\n(named-region 69064 8 .init_array)\n(named-region 69072 8 .fini_array)\n(named-region 69080 480 .dynamic)\n(named-region 69560 48 .got)\n(named-region 69608 56 .got.plt)\n(named-region 69664 16 .data)\n(named-region 69680 8 .bss)\n(named-region 0 71 .comment)\n(named-region 0 2112 .symtab)\n(named-region 0 561 .strtab)\n(named-region 0 259 .shstrtab)\n(named-symbol 1588 call_weak_fn)\n(named-symbol 1616 deregister_tm_clones)\n(named-symbol 1664 register_tm_clones)\n(named-symbol 1728 __do_global_dtors_aux)\n(named-symbol 1808 frame_dummy)\n(named-symbol 0 __libc_start_main@GLIBC_2.34)\n(named-symbol 0 __cxa_finalize@GLIBC_2.17)\n(named-symbol 1900 _fini)\n(named-symbol 0 abort@GLIBC_2.17)\n(named-symbol 1536 _start)\n(named-symbol 1812 main)\n(named-symbol 1408 _init)\n(named-symbol 0 __libc_start_main)\n(named-symbol 0 __cxa_finalize)\n(named-symbol 0 abort)\n(require libc.so.6)\n(section 568 27)\n(section 596 36)\n(section 632 32)\n(section 664 28)\n(section 696 216)\n(section 912 141)\n(section 1054 18)\n(section 1072 48)\n(section 1120 192)\n(section 1312 96)\n(section 1408 24)\n(section 1440 96)\n(section 1536 364)\n(section 1900 20)\n(section 1920 4)\n(section 1924 60)\n(section 1984 184)\n(section 69064 8)\n(section 69072 8)\n(section 69080 480)\n(section 69560 48)\n(section 69608 56)\n(section 69664 16)\n(section 69680 8)\n(section 0 71)\n(section 0 2112)\n(section 0 561)\n(section 0 259)\n(segment 0 2168 true false true)\n(segment 69064 624 true true false)\n(subarch v8)\n(symbol-chunk 1588 20 1588)\n(symbol-chunk 1536 52 1536)\n(symbol-chunk 1812 88 1812)\n(symbol-value 1588 1588)\n(symbol-value 1616 1616)\n(symbol-value 1664 1664)\n(symbol-value 1728 1728)\n(symbol-value 1808 1808)\n(symbol-value 1900 1900)\n(symbol-value 1536 1536)\n(symbol-value 1812 1812)\n(symbol-value 1408 1408)\n(symbol-value 0 0)\n(system \"\")\n(vendor \"\")\n"), -Attr("abi-name","\"aarch64-linux-gnu-elf\"")]), -Sections([Section(".shstrtab", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x00\x06\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xf0\x1b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x38\x00\x09\x00\x40\x00\x1d\x00\x1c\x00\x06\x00\x00\x00\x04\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x04\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x78\x08\x00\x00\x00\x00\x00\x00\x78\x08\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x01\x00\x00\x00\x06\x00\x00\x00\xc8\x0d\x00\x00\x00\x00\x00\x00\xc8\x0d\x01\x00\x00\x00\x00\x00\xc8\x0d\x01"), -Section(".strtab", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x00\x06\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xf0\x1b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x38\x00\x09\x00\x40\x00\x1d\x00\x1c\x00\x06\x00\x00\x00\x04\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x04\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x78\x08\x00\x00\x00\x00\x00\x00\x78\x08\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x01\x00\x00\x00\x06\x00\x00\x00\xc8\x0d\x00\x00\x00\x00\x00\x00\xc8\x0d\x01\x00\x00\x00\x00\x00\xc8\x0d\x01\x00\x00\x00\x00\x00\x68\x02\x00\x00\x00\x00\x00\x00\x70\x02\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x02\x00\x00\x00\x06\x00\x00\x00\xd8\x0d\x00\x00\x00\x00\x00\x00\xd8\x0d\x01\x00\x00\x00\x00\x00\xd8\x0d\x01\x00\x00\x00\x00\x00\xe0\x01\x00\x00\x00\x00\x00\x00\xe0\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x04\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x50\xe5\x74\x64\x04\x00\x00\x00\x84\x07\x00\x00\x00\x00\x00\x00\x84\x07\x00\x00\x00\x00\x00\x00\x84\x07\x00\x00\x00\x00\x00\x00\x3c\x00\x00\x00\x00\x00\x00\x00\x3c\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x51\xe5\x74\x64\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x52\xe5\x74\x64\x04\x00\x00\x00\xc8\x0d\x00\x00\x00\x00\x00\x00\xc8\x0d\x01\x00\x00\x00\x00\x00\xc8\x0d\x01\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x01"), -Section(".symtab", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x00\x06\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xf0\x1b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x38\x00\x09\x00\x40\x00\x1d\x00\x1c\x00\x06\x00\x00\x00\x04\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x04\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x78\x08\x00\x00\x00\x00\x00\x00\x78\x08\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x01\x00\x00\x00\x06\x00\x00\x00\xc8\x0d\x00\x00\x00\x00\x00\x00\xc8\x0d\x01\x00\x00\x00\x00\x00\xc8\x0d\x01\x00\x00\x00\x00\x00\x68\x02\x00\x00\x00\x00\x00\x00\x70\x02\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x02\x00\x00\x00\x06\x00\x00\x00\xd8\x0d\x00\x00\x00\x00\x00\x00\xd8\x0d\x01\x00\x00\x00\x00\x00\xd8\x0d\x01\x00\x00\x00\x00\x00\xe0\x01\x00\x00\x00\x00\x00\x00\xe0\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x04\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x50\xe5\x74\x64\x04\x00\x00\x00\x84\x07\x00\x00\x00\x00\x00\x00\x84\x07\x00\x00\x00\x00\x00\x00\x84\x07\x00\x00\x00\x00\x00\x00\x3c\x00\x00\x00\x00\x00\x00\x00\x3c\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x51\xe5\x74\x64\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x52\xe5\x74\x64\x04\x00\x00\x00\xc8\x0d\x00\x00\x00\x00\x00\x00\xc8\x0d\x01\x00\x00\x00\x00\x00\xc8\x0d\x01\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x2f\x6c\x69\x62\x2f\x6c\x64\x2d\x6c\x69\x6e\x75\x78\x2d\x61\x61\x72\x63\x68\x36\x34\x2e\x73\x6f\x2e\x31\x00\x00\x04\x00\x00\x00\x14\x00\x00\x00\x03\x00\x00\x00\x47\x4e\x55\x00\xe1\x5a\xc7\xc3\x80\x80\x89\xdf\x8b\x5d\x7a\x01\x77\xea\x0c\x0f\x00\x22\x57\x23\x04\x00\x00\x00\x10\x00\x00\x00\x01\x00\x00\x00\x47\x4e\x55\x00\x00\x00\x00\x00\x03\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x01\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x0b\x00\x80\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x17\x00\x20\x10\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x48\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x22\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x22\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x73\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5f\x5f\x63\x78\x61\x5f\x66\x69\x6e\x61\x6c\x69\x7a\x65\x00\x5f\x5f\x6c\x69\x62\x63\x5f\x73\x74\x61\x72\x74\x5f\x6d\x61\x69\x6e\x00\x61\x62\x6f\x72\x74\x00\x6c\x69\x62\x63\x2e\x73\x6f\x2e\x36\x00\x47\x4c\x49\x42\x43\x5f\x32\x2e\x31\x37\x00\x47\x4c\x49\x42\x43\x5f\x32\x2e\x33\x34\x00\x5f\x49\x54\x4d\x5f\x64\x65\x72\x65\x67\x69\x73\x74\x65\x72\x54\x4d\x43\x6c\x6f\x6e\x65\x54\x61\x62\x6c\x65\x00\x5f\x5f\x67\x6d\x6f\x6e\x5f\x73\x74\x61\x72\x74\x5f\x5f\x00\x5f\x49\x54\x4d\x5f\x72\x65\x67\x69\x73\x74\x65\x72\x54\x4d\x43\x6c\x6f\x6e\x65\x54\x61\x62\x6c\x65\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x01\x00\x03\x00\x01\x00\x03\x00\x01\x00\x01\x00\x02\x00\x28\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x97\x91\x96\x06\x00\x00\x03\x00\x32\x00\x00\x00\x10\x00\x00\x00\xb4\x91\x96\x06\x00\x00\x02\x00\x3d\x00\x00\x00\x00\x00\x00\x00\xc8\x0d\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x10\x07\x00\x00\x00\x00\x00\x00\xd0\x0d\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\xc0\x06\x00\x00\x00\x00\x00\x00\xd8\x0f\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x14\x07\x00\x00\x00\x00\x00\x00\x28\x10\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x28\x10\x01\x00\x00\x00\x00\x00\xc0\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xc8\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xd0\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe0\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x08\x10\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x10\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x18\x10\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1f\x20\x03\xd5\xfd\x7b\xbf\xa9\xfd\x03\x00\x91\x2a\x00\x00\x94\xfd\x7b\xc1\xa8\xc0\x03\x5f\xd6\x00\x00\x00\x00\x00\x00\x00\x00\xf0\x7b\xbf\xa9\x90\x00\x00\x90\x11\xfe\x47\xf9\x10\xe2\x3f\x91\x20\x02\x1f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x90\x00\x00\xb0\x11\x02\x40\xf9\x10\x02\x00\x91\x20\x02\x1f\xd6\x90\x00\x00\xb0\x11\x06\x40\xf9\x10\x22\x00\x91\x20\x02\x1f\xd6\x90\x00\x00\xb0\x11\x0a\x40\xf9\x10\x42\x00\x91\x20\x02\x1f\xd6\x90\x00\x00\xb0\x11\x0e\x40\xf9\x10\x62\x00\x91\x20\x02\x1f\xd6\x1f\x20\x03\xd5\x1d\x00\x80\xd2\x1e\x00\x80\xd2\xe5\x03\x00\xaa\xe1\x03\x40\xf9\xe2\x23\x00\x91\xe6\x03\x00\x91\x80\x00\x00\x90\x00\xec\x47\xf9\x03\x00\x80\xd2\x04\x00\x80\xd2\xe5\xff\xff\x97\xf0\xff\xff\x97\x80\x00\x00\x90\x00\xe8\x47\xf9\x40\x00\x00\xb4\xe8\xff\xff\x17\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x80\x00\x00\xb0\x00\xc0\x00\x91\x81\x00\x00\xb0\x21\xc0\x00\x91\x3f\x00\x00\xeb\xc0\x00\x00\x54\x81\x00\x00\x90\x21\xe0\x47\xf9\x61\x00\x00\xb4\xf0\x03\x01\xaa\x00\x02\x1f\xd6\xc0\x03\x5f\xd6\x80\x00\x00\xb0\x00\xc0\x00\x91\x81\x00\x00\xb0\x21\xc0\x00\x91\x21\x00\x00\xcb\x22\xfc\x7f\xd3\x41\x0c\x81\x8b\x21\xfc\x41\x93\xc1\x00\x00\xb4\x82\x00\x00\x90\x42\xf0\x47\xf9\x62\x00\x00\xb4\xf0\x03\x02\xaa\x00\x02\x1f\xd6\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\xfd\x7b\xbe\xa9\xfd\x03\x00\x91\xf3\x0b\x00\xf9\x93\x00\x00\xb0\x60\xc2\x40\x39\x40\x01\x00\x35\x80\x00\x00\x90\x00\xe4\x47\xf9\x80\x00\x00\xb4\x80\x00\x00\xb0\x00\x14\x40\xf9\xb9\xff\xff\x97\xd8\xff\xff\x97\x20\x00\x80\x52\x60\xc2\x00\x39\xf3\x0b\x40\xf9\xfd\x7b\xc2\xa8\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\xdc\xff\xff\x17\xff\x83\x00\xd1\xff\x1f\x00\xb9\xe0\x1b\x00\xb9\xe1\x0b\x00\xf9\xff\x0f\x00\xb9\xe8\x1b\x40\xb9\x08\x01\x00\x71\xe8\x07\x9f\x1a\xa8\x00\x00\x37\x01\x00\x00\x14\x28\x00\x80\x52\xe8\x0f\x00\xb9\x04\x00\x00\x14\x48\x00\x80\x52\xe8\x0f\x00\xb9\x01\x00\x00\x14\xe8\x0f\x40\xb9\x08\x05\x00\x11\xe8\x0b\x00\xb9\xe0\x0b\x40\xb9\xff\x83\x00\x91\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\xfd\x7b\xbf\xa9\xfd\x03\x00\x91\xfd\x7b\xc1\xa8\xc0\x03\x5f\xd6\x01\x00\x02\x00\x01\x1b\x03\x3b\x38\x00\x00\x00\x06\x00\x00\x00\x7c\xfe\xff\xff\x50\x00\x00\x00\xcc\xfe\xff\xff\x64\x00\x00\x00\xfc\xfe\xff\xff\x78\x00\x00\x00\x3c\xff\xff\xff\x8c\x00\x00\x00\x8c\xff\xff\xff\xb0\x00\x00\x00\x90\xff\xff\xff\xd8\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x01\x7a\x52\x00\x04\x78\x1e\x01\x1b\x0c\x1f\x00\x10\x00\x00\x00\x18\x00\x00\x00\x24\xfe\xff\xff\x34\x00\x00\x00\x00\x41\x07\x1e\x10\x00\x00\x00\x2c\x00\x00\x00\x60\xfe\xff\xff\x30\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x40\x00\x00\x00\x7c\xfe\xff\xff\x3c\x00\x00\x00\x00\x00\x00\x00\x20\x00\x00\x00\x54\x00\x00\x00\xa8\xfe\xff\xff\x48\x00\x00\x00\x00\x41\x0e\x20\x9d\x04\x9e\x03\x42\x93\x02\x4e\xde\xdd\xd3\x0e\x00\x00\x00\x00\x10\x00\x00\x00\x78\x00\x00\x00\xd4\xfe\xff\xff"), -Section(".comment", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x00\x06\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xf0\x1b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x38\x00\x09\x00\x40\x00\x1d\x00\x1c\x00\x06\x00\x00\x00\x04\x00\x00"), -Section(".interp", 0x238, "\x2f\x6c\x69\x62\x2f\x6c\x64\x2d\x6c\x69\x6e\x75\x78\x2d\x61\x61\x72\x63\x68\x36\x34\x2e\x73\x6f\x2e\x31\x00"), -Section(".note.gnu.build-id", 0x254, "\x04\x00\x00\x00\x14\x00\x00\x00\x03\x00\x00\x00\x47\x4e\x55\x00\xe1\x5a\xc7\xc3\x80\x80\x89\xdf\x8b\x5d\x7a\x01\x77\xea\x0c\x0f\x00\x22\x57\x23"), -Section(".note.ABI-tag", 0x278, "\x04\x00\x00\x00\x10\x00\x00\x00\x01\x00\x00\x00\x47\x4e\x55\x00\x00\x00\x00\x00\x03\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00"), -Section(".gnu.hash", 0x298, "\x01\x00\x00\x00\x01\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".dynsym", 0x2B8, "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x0b\x00\x80\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x17\x00\x20\x10\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x48\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x22\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x22\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x73\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".dynstr", 0x390, "\x00\x5f\x5f\x63\x78\x61\x5f\x66\x69\x6e\x61\x6c\x69\x7a\x65\x00\x5f\x5f\x6c\x69\x62\x63\x5f\x73\x74\x61\x72\x74\x5f\x6d\x61\x69\x6e\x00\x61\x62\x6f\x72\x74\x00\x6c\x69\x62\x63\x2e\x73\x6f\x2e\x36\x00\x47\x4c\x49\x42\x43\x5f\x32\x2e\x31\x37\x00\x47\x4c\x49\x42\x43\x5f\x32\x2e\x33\x34\x00\x5f\x49\x54\x4d\x5f\x64\x65\x72\x65\x67\x69\x73\x74\x65\x72\x54\x4d\x43\x6c\x6f\x6e\x65\x54\x61\x62\x6c\x65\x00\x5f\x5f\x67\x6d\x6f\x6e\x5f\x73\x74\x61\x72\x74\x5f\x5f\x00\x5f\x49\x54\x4d\x5f\x72\x65\x67\x69\x73\x74\x65\x72\x54\x4d\x43\x6c\x6f\x6e\x65\x54\x61\x62\x6c\x65\x00"), -Section(".gnu.version", 0x41E, "\x00\x00\x00\x00\x00\x00\x02\x00\x01\x00\x03\x00\x01\x00\x03\x00\x01\x00"), -Section(".gnu.version_r", 0x430, "\x01\x00\x02\x00\x28\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x97\x91\x96\x06\x00\x00\x03\x00\x32\x00\x00\x00\x10\x00\x00\x00\xb4\x91\x96\x06\x00\x00\x02\x00\x3d\x00\x00\x00\x00\x00\x00\x00"), -Section(".rela.dyn", 0x460, "\xc8\x0d\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x10\x07\x00\x00\x00\x00\x00\x00\xd0\x0d\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\xc0\x06\x00\x00\x00\x00\x00\x00\xd8\x0f\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x14\x07\x00\x00\x00\x00\x00\x00\x28\x10\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x28\x10\x01\x00\x00\x00\x00\x00\xc0\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xc8\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xd0\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe0\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".rela.plt", 0x520, "\x00\x10\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x08\x10\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x10\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x18\x10\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".init", 0x580, "\x1f\x20\x03\xd5\xfd\x7b\xbf\xa9\xfd\x03\x00\x91\x2a\x00\x00\x94\xfd\x7b\xc1\xa8\xc0\x03\x5f\xd6"), -Section(".plt", 0x5A0, "\xf0\x7b\xbf\xa9\x90\x00\x00\x90\x11\xfe\x47\xf9\x10\xe2\x3f\x91\x20\x02\x1f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x90\x00\x00\xb0\x11\x02\x40\xf9\x10\x02\x00\x91\x20\x02\x1f\xd6\x90\x00\x00\xb0\x11\x06\x40\xf9\x10\x22\x00\x91\x20\x02\x1f\xd6\x90\x00\x00\xb0\x11\x0a\x40\xf9\x10\x42\x00\x91\x20\x02\x1f\xd6\x90\x00\x00\xb0\x11\x0e\x40\xf9\x10\x62\x00\x91\x20\x02\x1f\xd6"), -Section(".fini", 0x76C, "\x1f\x20\x03\xd5\xfd\x7b\xbf\xa9\xfd\x03\x00\x91\xfd\x7b\xc1\xa8\xc0\x03\x5f\xd6"), -Section(".rodata", 0x780, "\x01\x00\x02\x00"), -Section(".eh_frame_hdr", 0x784, "\x01\x1b\x03\x3b\x38\x00\x00\x00\x06\x00\x00\x00\x7c\xfe\xff\xff\x50\x00\x00\x00\xcc\xfe\xff\xff\x64\x00\x00\x00\xfc\xfe\xff\xff\x78\x00\x00\x00\x3c\xff\xff\xff\x8c\x00\x00\x00\x8c\xff\xff\xff\xb0\x00\x00\x00\x90\xff\xff\xff\xd8\x00\x00\x00"), -Section(".eh_frame", 0x7C0, "\x10\x00\x00\x00\x00\x00\x00\x00\x01\x7a\x52\x00\x04\x78\x1e\x01\x1b\x0c\x1f\x00\x10\x00\x00\x00\x18\x00\x00\x00\x24\xfe\xff\xff\x34\x00\x00\x00\x00\x41\x07\x1e\x10\x00\x00\x00\x2c\x00\x00\x00\x60\xfe\xff\xff\x30\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x40\x00\x00\x00\x7c\xfe\xff\xff\x3c\x00\x00\x00\x00\x00\x00\x00\x20\x00\x00\x00\x54\x00\x00\x00\xa8\xfe\xff\xff\x48\x00\x00\x00\x00\x41\x0e\x20\x9d\x04\x9e\x03\x42\x93\x02\x4e\xde\xdd\xd3\x0e\x00\x00\x00\x00\x10\x00\x00\x00\x78\x00\x00\x00\xd4\xfe\xff\xff\x04\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x01\x7a\x52\x00\x01\x7c\x1e\x01\x1b\x0c\x1f\x00\x14\x00\x00\x00\x18\x00\x00\x00\xb0\xfe\xff\xff\x58\x00\x00\x00\x00\x44\x0e\x20\x02\x50\x0e\x00\x00\x00\x00\x00"), -Section(".fini_array", 0x10DD0, "\xc0\x06\x00\x00\x00\x00\x00\x00"), -Section(".dynamic", 0x10DD8, "\x01\x00\x00\x00\x00\x00\x00\x00\x28\x00\x00\x00\x00\x00\x00\x00\x0c\x00\x00\x00\x00\x00\x00\x00\x80\x05\x00\x00\x00\x00\x00\x00\x0d\x00\x00\x00\x00\x00\x00\x00\x6c\x07\x00\x00\x00\x00\x00\x00\x19\x00\x00\x00\x00\x00\x00\x00\xc8\x0d\x01\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x1a\x00\x00\x00\x00\x00\x00\x00\xd0\x0d\x01\x00\x00\x00\x00\x00\x1c\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\xf5\xfe\xff\x6f\x00\x00\x00\x00\x98\x02\x00\x00\x00\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x90\x03\x00\x00\x00\x00\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\xb8\x02\x00\x00\x00\x00\x00\x00\x0a\x00\x00\x00\x00\x00\x00\x00\x8d\x00\x00\x00\x00\x00\x00\x00\x0b\x00\x00\x00\x00\x00\x00\x00\x18\x00\x00\x00\x00\x00\x00\x00\x15\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\xe8\x0f\x01\x00\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x60\x00\x00\x00\x00\x00\x00\x00\x14\x00\x00\x00\x00\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x17\x00\x00\x00\x00\x00\x00\x00\x20\x05\x00\x00\x00\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x60\x04\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\xc0\x00\x00\x00\x00\x00\x00\x00\x09\x00\x00\x00\x00\x00\x00\x00\x18\x00\x00\x00\x00\x00\x00\x00\xfb\xff\xff\x6f\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\xfe\xff\xff\x6f\x00\x00\x00\x00\x30\x04\x00\x00\x00\x00\x00\x00\xff\xff\xff\x6f\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\xf0\xff\xff\x6f\x00\x00\x00\x00\x1e\x04\x00\x00\x00\x00\x00\x00\xf9\xff\xff\x6f\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".init_array", 0x10DC8, "\x10\x07\x00\x00\x00\x00\x00\x00"), -Section(".got", 0x10FB8, "\xd8\x0d\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x14\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".got.plt", 0x10FE8, "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xa0\x05\x00\x00\x00\x00\x00\x00\xa0\x05\x00\x00\x00\x00\x00\x00\xa0\x05\x00\x00\x00\x00\x00\x00\xa0\x05\x00\x00\x00\x00\x00\x00"), -Section(".data", 0x11020, "\x00\x00\x00\x00\x00\x00\x00\x00\x28\x10\x01\x00\x00\x00\x00\x00"), -Section(".text", 0x600, "\x1f\x20\x03\xd5\x1d\x00\x80\xd2\x1e\x00\x80\xd2\xe5\x03\x00\xaa\xe1\x03\x40\xf9\xe2\x23\x00\x91\xe6\x03\x00\x91\x80\x00\x00\x90\x00\xec\x47\xf9\x03\x00\x80\xd2\x04\x00\x80\xd2\xe5\xff\xff\x97\xf0\xff\xff\x97\x80\x00\x00\x90\x00\xe8\x47\xf9\x40\x00\x00\xb4\xe8\xff\xff\x17\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x80\x00\x00\xb0\x00\xc0\x00\x91\x81\x00\x00\xb0\x21\xc0\x00\x91\x3f\x00\x00\xeb\xc0\x00\x00\x54\x81\x00\x00\x90\x21\xe0\x47\xf9\x61\x00\x00\xb4\xf0\x03\x01\xaa\x00\x02\x1f\xd6\xc0\x03\x5f\xd6\x80\x00\x00\xb0\x00\xc0\x00\x91\x81\x00\x00\xb0\x21\xc0\x00\x91\x21\x00\x00\xcb\x22\xfc\x7f\xd3\x41\x0c\x81\x8b\x21\xfc\x41\x93\xc1\x00\x00\xb4\x82\x00\x00\x90\x42\xf0\x47\xf9\x62\x00\x00\xb4\xf0\x03\x02\xaa\x00\x02\x1f\xd6\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\xfd\x7b\xbe\xa9\xfd\x03\x00\x91\xf3\x0b\x00\xf9\x93\x00\x00\xb0\x60\xc2\x40\x39\x40\x01\x00\x35\x80\x00\x00\x90\x00\xe4\x47\xf9\x80\x00\x00\xb4\x80\x00\x00\xb0\x00\x14\x40\xf9\xb9\xff\xff\x97\xd8\xff\xff\x97\x20\x00\x80\x52\x60\xc2\x00\x39\xf3\x0b\x40\xf9\xfd\x7b\xc2\xa8\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\xdc\xff\xff\x17\xff\x83\x00\xd1\xff\x1f\x00\xb9\xe0\x1b\x00\xb9\xe1\x0b\x00\xf9\xff\x0f\x00\xb9\xe8\x1b\x40\xb9\x08\x01\x00\x71\xe8\x07\x9f\x1a\xa8\x00\x00\x37\x01\x00\x00\x14\x28\x00\x80\x52\xe8\x0f\x00\xb9\x04\x00\x00\x14\x48\x00\x80\x52\xe8\x0f\x00\xb9\x01\x00\x00\x14\xe8\x0f\x40\xb9\x08\x05\x00\x11\xe8\x0b\x00\xb9\xe0\x0b\x40\xb9\xff\x83\x00\x91\xc0\x03\x5f\xd6")]), -Memmap([Annotation(Region(0x0,0x877), Attr("segment","02 0 2168")), -Annotation(Region(0x600,0x633), Attr("symbol","\"_start\"")), -Annotation(Region(0x0,0x102), Attr("section","\".shstrtab\"")), -Annotation(Region(0x0,0x230), Attr("section","\".strtab\"")), -Annotation(Region(0x0,0x83F), Attr("section","\".symtab\"")), -Annotation(Region(0x0,0x46), Attr("section","\".comment\"")), -Annotation(Region(0x238,0x252), Attr("section","\".interp\"")), -Annotation(Region(0x254,0x277), Attr("section","\".note.gnu.build-id\"")), -Annotation(Region(0x278,0x297), Attr("section","\".note.ABI-tag\"")), -Annotation(Region(0x298,0x2B3), Attr("section","\".gnu.hash\"")), -Annotation(Region(0x2B8,0x38F), Attr("section","\".dynsym\"")), -Annotation(Region(0x390,0x41C), Attr("section","\".dynstr\"")), -Annotation(Region(0x41E,0x42F), Attr("section","\".gnu.version\"")), -Annotation(Region(0x430,0x45F), Attr("section","\".gnu.version_r\"")), -Annotation(Region(0x460,0x51F), Attr("section","\".rela.dyn\"")), -Annotation(Region(0x520,0x57F), Attr("section","\".rela.plt\"")), -Annotation(Region(0x580,0x597), Attr("section","\".init\"")), -Annotation(Region(0x5A0,0x5FF), Attr("section","\".plt\"")), -Annotation(Region(0x580,0x597), Attr("code-region","()")), -Annotation(Region(0x5A0,0x5FF), Attr("code-region","()")), -Annotation(Region(0x600,0x633), Attr("symbol-info","_start 0x600 52")), -Annotation(Region(0x634,0x647), Attr("symbol","\"call_weak_fn\"")), -Annotation(Region(0x634,0x647), Attr("symbol-info","call_weak_fn 0x634 20")), -Annotation(Region(0x714,0x76B), Attr("symbol","\"main\"")), -Annotation(Region(0x714,0x76B), Attr("symbol-info","main 0x714 88")), -Annotation(Region(0x76C,0x77F), Attr("section","\".fini\"")), -Annotation(Region(0x780,0x783), Attr("section","\".rodata\"")), -Annotation(Region(0x784,0x7BF), Attr("section","\".eh_frame_hdr\"")), -Annotation(Region(0x7C0,0x877), Attr("section","\".eh_frame\"")), -Annotation(Region(0x10DC8,0x1102F), Attr("segment","03 0x10DC8 624")), -Annotation(Region(0x10DD0,0x10DD7), Attr("section","\".fini_array\"")), -Annotation(Region(0x10DD8,0x10FB7), Attr("section","\".dynamic\"")), -Annotation(Region(0x10DC8,0x10DCF), Attr("section","\".init_array\"")), -Annotation(Region(0x10FB8,0x10FE7), Attr("section","\".got\"")), -Annotation(Region(0x10FE8,0x1101F), Attr("section","\".got.plt\"")), -Annotation(Region(0x11020,0x1102F), Attr("section","\".data\"")), -Annotation(Region(0x600,0x76B), Attr("section","\".text\"")), -Annotation(Region(0x600,0x76B), Attr("code-region","()")), -Annotation(Region(0x76C,0x77F), Attr("code-region","()"))]), -Program(Tid(1_663, "%0000067f"), Attrs([]), - Subs([Sub(Tid(1_611, "@__cxa_finalize"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x5D0"), -Attr("stub","()")]), "__cxa_finalize", Args([Arg(Tid(1_664, "%00000680"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("__cxa_finalize_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(995, "@__cxa_finalize"), - Attrs([Attr("address","0x5D0")]), Phis([]), -Defs([Def(Tid(1_243, "%000004db"), Attrs([Attr("address","0x5D0"), -Attr("insn","adrp x16, #69632")]), Var("R16",Imm(64)), Int(69632,64)), -Def(Tid(1_250, "%000004e2"), Attrs([Attr("address","0x5D4"), -Attr("insn","ldr x17, [x16, #0x8]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(1_256, "%000004e8"), Attrs([Attr("address","0x5D8"), -Attr("insn","add x16, x16, #0x8")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(8,64)))]), Jmps([Call(Tid(1_261, "%000004ed"), - Attrs([Attr("address","0x5DC"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), -Sub(Tid(1_612, "@__do_global_dtors_aux"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x6C0")]), - "__do_global_dtors_aux", Args([Arg(Tid(1_665, "%00000681"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("__do_global_dtors_aux_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(678, "@__do_global_dtors_aux"), - Attrs([Attr("address","0x6C0")]), Phis([]), Defs([Def(Tid(682, "%000002aa"), - Attrs([Attr("address","0x6C0"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("#3",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(18446744073709551584,64))), -Def(Tid(688, "%000002b0"), Attrs([Attr("address","0x6C0"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("#3",Imm(64)),Var("R29",Imm(64)),LittleEndian(),64)), -Def(Tid(694, "%000002b6"), Attrs([Attr("address","0x6C0"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("#3",Imm(64)),Int(8,64)),Var("R30",Imm(64)),LittleEndian(),64)), -Def(Tid(698, "%000002ba"), Attrs([Attr("address","0x6C0"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("R31",Imm(64)), -Var("#3",Imm(64))), Def(Tid(704, "%000002c0"), - Attrs([Attr("address","0x6C4"), Attr("insn","mov x29, sp")]), - Var("R29",Imm(64)), Var("R31",Imm(64))), Def(Tid(712, "%000002c8"), - Attrs([Attr("address","0x6C8"), Attr("insn","str x19, [sp, #0x10]")]), - Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(16,64)),Var("R19",Imm(64)),LittleEndian(),64)), -Def(Tid(717, "%000002cd"), Attrs([Attr("address","0x6CC"), -Attr("insn","adrp x19, #69632")]), Var("R19",Imm(64)), Int(69632,64)), -Def(Tid(724, "%000002d4"), Attrs([Attr("address","0x6D0"), -Attr("insn","ldrb w0, [x19, #0x30]")]), Var("R0",Imm(64)), -UNSIGNED(64,Load(Var("mem",Mem(64,8)),PLUS(Var("R19",Imm(64)),Int(48,64)),LittleEndian(),8)))]), -Jmps([Goto(Tid(731, "%000002db"), Attrs([Attr("address","0x6D4"), -Attr("insn","cbnz w0, #0x28")]), - NEQ(Extract(31,0,Var("R0",Imm(64))),Int(0,32)), -Direct(Tid(729, "%000002d9"))), Goto(Tid(1_652, "%00000674"), Attrs([]), - Int(1,1), Direct(Tid(940, "%000003ac")))])), Blk(Tid(940, "%000003ac"), - Attrs([Attr("address","0x6D8")]), Phis([]), Defs([Def(Tid(943, "%000003af"), - Attrs([Attr("address","0x6D8"), Attr("insn","adrp x0, #65536")]), - Var("R0",Imm(64)), Int(65536,64)), Def(Tid(950, "%000003b6"), - Attrs([Attr("address","0x6DC"), Attr("insn","ldr x0, [x0, #0xfc8]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(4040,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(956, "%000003bc"), Attrs([Attr("address","0x6E0"), -Attr("insn","cbz x0, #0x10")]), EQ(Var("R0",Imm(64)),Int(0,64)), -Direct(Tid(954, "%000003ba"))), Goto(Tid(1_653, "%00000675"), Attrs([]), - Int(1,1), Direct(Tid(979, "%000003d3")))])), Blk(Tid(979, "%000003d3"), - Attrs([Attr("address","0x6E4")]), Phis([]), Defs([Def(Tid(982, "%000003d6"), - Attrs([Attr("address","0x6E4"), Attr("insn","adrp x0, #69632")]), - Var("R0",Imm(64)), Int(69632,64)), Def(Tid(989, "%000003dd"), - Attrs([Attr("address","0x6E8"), Attr("insn","ldr x0, [x0, #0x28]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(40,64)),LittleEndian(),64)), -Def(Tid(994, "%000003e2"), Attrs([Attr("address","0x6EC"), -Attr("insn","bl #-0x11c")]), Var("R30",Imm(64)), Int(1776,64))]), -Jmps([Call(Tid(997, "%000003e5"), Attrs([Attr("address","0x6EC"), -Attr("insn","bl #-0x11c")]), Int(1,1), -(Direct(Tid(1_611, "@__cxa_finalize")),Direct(Tid(954, "%000003ba"))))])), -Blk(Tid(954, "%000003ba"), Attrs([Attr("address","0x6F0")]), Phis([]), -Defs([Def(Tid(962, "%000003c2"), Attrs([Attr("address","0x6F0"), -Attr("insn","bl #-0xa0")]), Var("R30",Imm(64)), Int(1780,64))]), -Jmps([Call(Tid(964, "%000003c4"), Attrs([Attr("address","0x6F0"), -Attr("insn","bl #-0xa0")]), Int(1,1), -(Direct(Tid(1_625, "@deregister_tm_clones")),Direct(Tid(966, "%000003c6"))))])), -Blk(Tid(966, "%000003c6"), Attrs([Attr("address","0x6F4")]), Phis([]), -Defs([Def(Tid(969, "%000003c9"), Attrs([Attr("address","0x6F4"), -Attr("insn","mov w0, #0x1")]), Var("R0",Imm(64)), Int(1,64)), -Def(Tid(977, "%000003d1"), Attrs([Attr("address","0x6F8"), -Attr("insn","strb w0, [x19, #0x30]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R19",Imm(64)),Int(48,64)),Extract(7,0,Var("R0",Imm(64))),LittleEndian(),8))]), -Jmps([Goto(Tid(1_654, "%00000676"), Attrs([]), Int(1,1), -Direct(Tid(729, "%000002d9")))])), Blk(Tid(729, "%000002d9"), - Attrs([Attr("address","0x6FC")]), Phis([]), Defs([Def(Tid(739, "%000002e3"), - Attrs([Attr("address","0x6FC"), Attr("insn","ldr x19, [sp, #0x10]")]), - Var("R19",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(16,64)),LittleEndian(),64)), -Def(Tid(746, "%000002ea"), Attrs([Attr("address","0x700"), -Attr("insn","ldp x29, x30, [sp], #0x20")]), Var("R29",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(751, "%000002ef"), Attrs([Attr("address","0x700"), -Attr("insn","ldp x29, x30, [sp], #0x20")]), Var("R30",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(755, "%000002f3"), Attrs([Attr("address","0x700"), -Attr("insn","ldp x29, x30, [sp], #0x20")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(32,64)))]), Jmps([Call(Tid(760, "%000002f8"), - Attrs([Attr("address","0x704"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), Sub(Tid(1_616, "@__libc_start_main"), - Attrs([Attr("c.proto","signed (*)(signed (*)(signed , char** , char** );* main, signed , char** , \nvoid* auxv)"), -Attr("address","0x5C0"), Attr("stub","()")]), "__libc_start_main", - Args([Arg(Tid(1_666, "%00000682"), - Attrs([Attr("c.layout","**[ : 64]"), -Attr("c.data","Top:u64 ptr ptr"), -Attr("c.type","signed (*)(signed , char** , char** );*")]), - Var("__libc_start_main_main",Imm(64)), Var("R0",Imm(64)), In()), -Arg(Tid(1_667, "%00000683"), Attrs([Attr("c.layout","[signed : 32]"), -Attr("c.data","Top:u32"), Attr("c.type","signed")]), - Var("__libc_start_main_arg2",Imm(32)), LOW(32,Var("R1",Imm(64))), In()), -Arg(Tid(1_668, "%00000684"), Attrs([Attr("c.layout","**[char : 8]"), -Attr("c.data","Top:u8 ptr ptr"), Attr("c.type","char**")]), - Var("__libc_start_main_arg3",Imm(64)), Var("R2",Imm(64)), Both()), -Arg(Tid(1_669, "%00000685"), Attrs([Attr("c.layout","*[ : 8]"), -Attr("c.data","{} ptr"), Attr("c.type","void*")]), - Var("__libc_start_main_auxv",Imm(64)), Var("R3",Imm(64)), Both()), -Arg(Tid(1_670, "%00000686"), Attrs([Attr("c.layout","[signed : 32]"), -Attr("c.data","Top:u32"), Attr("c.type","signed")]), - Var("__libc_start_main_result",Imm(32)), LOW(32,Var("R0",Imm(64))), -Out())]), Blks([Blk(Tid(511, "@__libc_start_main"), - Attrs([Attr("address","0x5C0")]), Phis([]), -Defs([Def(Tid(1_221, "%000004c5"), Attrs([Attr("address","0x5C0"), -Attr("insn","adrp x16, #69632")]), Var("R16",Imm(64)), Int(69632,64)), -Def(Tid(1_228, "%000004cc"), Attrs([Attr("address","0x5C4"), -Attr("insn","ldr x17, [x16]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R16",Imm(64)),LittleEndian(),64)), -Def(Tid(1_234, "%000004d2"), Attrs([Attr("address","0x5C8"), -Attr("insn","add x16, x16, #0x0")]), Var("R16",Imm(64)), -Var("R16",Imm(64)))]), Jmps([Call(Tid(1_239, "%000004d7"), - Attrs([Attr("address","0x5CC"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), Sub(Tid(1_617, "@_fini"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x76C")]), - "_fini", Args([Arg(Tid(1_671, "%00000687"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("_fini_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(31, "@_fini"), - Attrs([Attr("address","0x76C")]), Phis([]), Defs([Def(Tid(37, "%00000025"), - Attrs([Attr("address","0x770"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("#0",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(18446744073709551600,64))), -Def(Tid(43, "%0000002b"), Attrs([Attr("address","0x770"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("#0",Imm(64)),Var("R29",Imm(64)),LittleEndian(),64)), -Def(Tid(49, "%00000031"), Attrs([Attr("address","0x770"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("#0",Imm(64)),Int(8,64)),Var("R30",Imm(64)),LittleEndian(),64)), -Def(Tid(53, "%00000035"), Attrs([Attr("address","0x770"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("R31",Imm(64)), -Var("#0",Imm(64))), Def(Tid(59, "%0000003b"), Attrs([Attr("address","0x774"), -Attr("insn","mov x29, sp")]), Var("R29",Imm(64)), Var("R31",Imm(64))), -Def(Tid(66, "%00000042"), Attrs([Attr("address","0x778"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R29",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(71, "%00000047"), Attrs([Attr("address","0x778"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R30",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(75, "%0000004b"), Attrs([Attr("address","0x778"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(16,64)))]), Jmps([Call(Tid(80, "%00000050"), - Attrs([Attr("address","0x77C"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), Sub(Tid(1_618, "@_init"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x580")]), - "_init", Args([Arg(Tid(1_672, "%00000688"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("_init_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(1_431, "@_init"), - Attrs([Attr("address","0x580")]), Phis([]), -Defs([Def(Tid(1_437, "%0000059d"), Attrs([Attr("address","0x584"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("#6",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(18446744073709551600,64))), -Def(Tid(1_443, "%000005a3"), Attrs([Attr("address","0x584"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("#6",Imm(64)),Var("R29",Imm(64)),LittleEndian(),64)), -Def(Tid(1_449, "%000005a9"), Attrs([Attr("address","0x584"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("#6",Imm(64)),Int(8,64)),Var("R30",Imm(64)),LittleEndian(),64)), -Def(Tid(1_453, "%000005ad"), Attrs([Attr("address","0x584"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("R31",Imm(64)), -Var("#6",Imm(64))), Def(Tid(1_459, "%000005b3"), - Attrs([Attr("address","0x588"), Attr("insn","mov x29, sp")]), - Var("R29",Imm(64)), Var("R31",Imm(64))), Def(Tid(1_464, "%000005b8"), - Attrs([Attr("address","0x58C"), Attr("insn","bl #0xa8")]), - Var("R30",Imm(64)), Int(1424,64))]), Jmps([Call(Tid(1_466, "%000005ba"), - Attrs([Attr("address","0x58C"), Attr("insn","bl #0xa8")]), Int(1,1), -(Direct(Tid(1_623, "@call_weak_fn")),Direct(Tid(1_468, "%000005bc"))))])), -Blk(Tid(1_468, "%000005bc"), Attrs([Attr("address","0x590")]), Phis([]), -Defs([Def(Tid(1_473, "%000005c1"), Attrs([Attr("address","0x590"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R29",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(1_478, "%000005c6"), Attrs([Attr("address","0x590"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R30",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(1_482, "%000005ca"), Attrs([Attr("address","0x590"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(16,64)))]), Jmps([Call(Tid(1_487, "%000005cf"), - Attrs([Attr("address","0x594"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), Sub(Tid(1_619, "@_start"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x600"), -Attr("stub","()"), Attr("entry-point","()")]), "_start", - Args([Arg(Tid(1_673, "%00000689"), Attrs([Attr("c.layout","[signed : 32]"), -Attr("c.data","Top:u32"), Attr("c.type","signed")]), - Var("_start_result",Imm(32)), LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(448, "@_start"), Attrs([Attr("address","0x600")]), Phis([]), -Defs([Def(Tid(453, "%000001c5"), Attrs([Attr("address","0x604"), -Attr("insn","mov x29, #0x0")]), Var("R29",Imm(64)), Int(0,64)), -Def(Tid(458, "%000001ca"), Attrs([Attr("address","0x608"), -Attr("insn","mov x30, #0x0")]), Var("R30",Imm(64)), Int(0,64)), -Def(Tid(464, "%000001d0"), Attrs([Attr("address","0x60C"), -Attr("insn","mov x5, x0")]), Var("R5",Imm(64)), Var("R0",Imm(64))), -Def(Tid(471, "%000001d7"), Attrs([Attr("address","0x610"), -Attr("insn","ldr x1, [sp]")]), Var("R1",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(477, "%000001dd"), Attrs([Attr("address","0x614"), -Attr("insn","add x2, sp, #0x8")]), Var("R2",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(8,64))), Def(Tid(483, "%000001e3"), - Attrs([Attr("address","0x618"), Attr("insn","mov x6, sp")]), - Var("R6",Imm(64)), Var("R31",Imm(64))), Def(Tid(488, "%000001e8"), - Attrs([Attr("address","0x61C"), Attr("insn","adrp x0, #65536")]), - Var("R0",Imm(64)), Int(65536,64)), Def(Tid(495, "%000001ef"), - Attrs([Attr("address","0x620"), Attr("insn","ldr x0, [x0, #0xfd8]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(4056,64)),LittleEndian(),64)), -Def(Tid(500, "%000001f4"), Attrs([Attr("address","0x624"), -Attr("insn","mov x3, #0x0")]), Var("R3",Imm(64)), Int(0,64)), -Def(Tid(505, "%000001f9"), Attrs([Attr("address","0x628"), -Attr("insn","mov x4, #0x0")]), Var("R4",Imm(64)), Int(0,64)), -Def(Tid(510, "%000001fe"), Attrs([Attr("address","0x62C"), -Attr("insn","bl #-0x6c")]), Var("R30",Imm(64)), Int(1584,64))]), -Jmps([Call(Tid(513, "%00000201"), Attrs([Attr("address","0x62C"), -Attr("insn","bl #-0x6c")]), Int(1,1), -(Direct(Tid(1_616, "@__libc_start_main")),Direct(Tid(515, "%00000203"))))])), -Blk(Tid(515, "%00000203"), Attrs([Attr("address","0x630")]), Phis([]), -Defs([Def(Tid(518, "%00000206"), Attrs([Attr("address","0x630"), -Attr("insn","bl #-0x40")]), Var("R30",Imm(64)), Int(1588,64))]), -Jmps([Call(Tid(521, "%00000209"), Attrs([Attr("address","0x630"), -Attr("insn","bl #-0x40")]), Int(1,1), -(Direct(Tid(1_622, "@abort")),Direct(Tid(1_655, "%00000677"))))])), -Blk(Tid(1_655, "%00000677"), Attrs([]), Phis([]), Defs([]), -Jmps([Call(Tid(1_656, "%00000678"), Attrs([]), Int(1,1), -(Direct(Tid(1_623, "@call_weak_fn")),))]))])), Sub(Tid(1_622, "@abort"), - Attrs([Attr("noreturn","()"), Attr("c.proto","void (*)(void)"), -Attr("address","0x5F0"), Attr("stub","()")]), "abort", Args([]), -Blks([Blk(Tid(519, "@abort"), Attrs([Attr("address","0x5F0")]), Phis([]), -Defs([Def(Tid(1_287, "%00000507"), Attrs([Attr("address","0x5F0"), -Attr("insn","adrp x16, #69632")]), Var("R16",Imm(64)), Int(69632,64)), -Def(Tid(1_294, "%0000050e"), Attrs([Attr("address","0x5F4"), -Attr("insn","ldr x17, [x16, #0x18]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(24,64)),LittleEndian(),64)), -Def(Tid(1_300, "%00000514"), Attrs([Attr("address","0x5F8"), -Attr("insn","add x16, x16, #0x18")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(24,64)))]), Jmps([Call(Tid(1_305, "%00000519"), - Attrs([Attr("address","0x5FC"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), Sub(Tid(1_623, "@call_weak_fn"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x634")]), - "call_weak_fn", Args([Arg(Tid(1_674, "%0000068a"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("call_weak_fn_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(523, "@call_weak_fn"), - Attrs([Attr("address","0x634")]), Phis([]), Defs([Def(Tid(526, "%0000020e"), - Attrs([Attr("address","0x634"), Attr("insn","adrp x0, #65536")]), - Var("R0",Imm(64)), Int(65536,64)), Def(Tid(533, "%00000215"), - Attrs([Attr("address","0x638"), Attr("insn","ldr x0, [x0, #0xfd0]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(4048,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(539, "%0000021b"), Attrs([Attr("address","0x63C"), -Attr("insn","cbz x0, #0x8")]), EQ(Var("R0",Imm(64)),Int(0,64)), -Direct(Tid(537, "%00000219"))), Goto(Tid(1_657, "%00000679"), Attrs([]), - Int(1,1), Direct(Tid(1_059, "%00000423")))])), Blk(Tid(537, "%00000219"), - Attrs([Attr("address","0x644")]), Phis([]), Defs([]), -Jmps([Call(Tid(545, "%00000221"), Attrs([Attr("address","0x644"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))])), -Blk(Tid(1_059, "%00000423"), Attrs([Attr("address","0x640")]), Phis([]), -Defs([]), Jmps([Goto(Tid(1_062, "%00000426"), Attrs([Attr("address","0x640"), -Attr("insn","b #-0x60")]), Int(1,1), -Direct(Tid(1_060, "@__gmon_start__")))])), Blk(Tid(1_060, "@__gmon_start__"), - Attrs([Attr("address","0x5E0")]), Phis([]), -Defs([Def(Tid(1_265, "%000004f1"), Attrs([Attr("address","0x5E0"), -Attr("insn","adrp x16, #69632")]), Var("R16",Imm(64)), Int(69632,64)), -Def(Tid(1_272, "%000004f8"), Attrs([Attr("address","0x5E4"), -Attr("insn","ldr x17, [x16, #0x10]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(16,64)),LittleEndian(),64)), -Def(Tid(1_278, "%000004fe"), Attrs([Attr("address","0x5E8"), -Attr("insn","add x16, x16, #0x10")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(16,64)))]), Jmps([Call(Tid(1_283, "%00000503"), - Attrs([Attr("address","0x5EC"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), -Sub(Tid(1_625, "@deregister_tm_clones"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x650")]), - "deregister_tm_clones", Args([Arg(Tid(1_675, "%0000068b"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("deregister_tm_clones_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(551, "@deregister_tm_clones"), - Attrs([Attr("address","0x650")]), Phis([]), Defs([Def(Tid(554, "%0000022a"), - Attrs([Attr("address","0x650"), Attr("insn","adrp x0, #69632")]), - Var("R0",Imm(64)), Int(69632,64)), Def(Tid(560, "%00000230"), - Attrs([Attr("address","0x654"), Attr("insn","add x0, x0, #0x30")]), - Var("R0",Imm(64)), PLUS(Var("R0",Imm(64)),Int(48,64))), -Def(Tid(565, "%00000235"), Attrs([Attr("address","0x658"), -Attr("insn","adrp x1, #69632")]), Var("R1",Imm(64)), Int(69632,64)), -Def(Tid(571, "%0000023b"), Attrs([Attr("address","0x65C"), -Attr("insn","add x1, x1, #0x30")]), Var("R1",Imm(64)), -PLUS(Var("R1",Imm(64)),Int(48,64))), Def(Tid(577, "%00000241"), - Attrs([Attr("address","0x660"), Attr("insn","cmp x1, x0")]), - Var("#1",Imm(64)), NOT(Var("R0",Imm(64)))), Def(Tid(582, "%00000246"), - Attrs([Attr("address","0x660"), Attr("insn","cmp x1, x0")]), - Var("#2",Imm(64)), PLUS(Var("R1",Imm(64)),NOT(Var("R0",Imm(64))))), -Def(Tid(588, "%0000024c"), Attrs([Attr("address","0x660"), -Attr("insn","cmp x1, x0")]), Var("VF",Imm(1)), -NEQ(SIGNED(65,PLUS(Var("#2",Imm(64)),Int(1,64))),PLUS(PLUS(SIGNED(65,Var("R1",Imm(64))),SIGNED(65,Var("#1",Imm(64)))),Int(1,65)))), -Def(Tid(594, "%00000252"), Attrs([Attr("address","0x660"), -Attr("insn","cmp x1, x0")]), Var("CF",Imm(1)), -NEQ(UNSIGNED(65,PLUS(Var("#2",Imm(64)),Int(1,64))),PLUS(PLUS(UNSIGNED(65,Var("R1",Imm(64))),UNSIGNED(65,Var("#1",Imm(64)))),Int(1,65)))), -Def(Tid(598, "%00000256"), Attrs([Attr("address","0x660"), -Attr("insn","cmp x1, x0")]), Var("ZF",Imm(1)), -EQ(PLUS(Var("#2",Imm(64)),Int(1,64)),Int(0,64))), Def(Tid(602, "%0000025a"), - Attrs([Attr("address","0x660"), Attr("insn","cmp x1, x0")]), - Var("NF",Imm(1)), Extract(63,63,PLUS(Var("#2",Imm(64)),Int(1,64))))]), -Jmps([Goto(Tid(608, "%00000260"), Attrs([Attr("address","0x664"), -Attr("insn","b.eq #0x18")]), EQ(Var("ZF",Imm(1)),Int(1,1)), -Direct(Tid(606, "%0000025e"))), Goto(Tid(1_658, "%0000067a"), Attrs([]), - Int(1,1), Direct(Tid(1_029, "%00000405")))])), Blk(Tid(1_029, "%00000405"), - Attrs([Attr("address","0x668")]), Phis([]), -Defs([Def(Tid(1_032, "%00000408"), Attrs([Attr("address","0x668"), -Attr("insn","adrp x1, #65536")]), Var("R1",Imm(64)), Int(65536,64)), -Def(Tid(1_039, "%0000040f"), Attrs([Attr("address","0x66C"), -Attr("insn","ldr x1, [x1, #0xfc0]")]), Var("R1",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R1",Imm(64)),Int(4032,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(1_044, "%00000414"), Attrs([Attr("address","0x670"), -Attr("insn","cbz x1, #0xc")]), EQ(Var("R1",Imm(64)),Int(0,64)), -Direct(Tid(606, "%0000025e"))), Goto(Tid(1_659, "%0000067b"), Attrs([]), - Int(1,1), Direct(Tid(1_048, "%00000418")))])), Blk(Tid(606, "%0000025e"), - Attrs([Attr("address","0x67C")]), Phis([]), Defs([]), -Jmps([Call(Tid(614, "%00000266"), Attrs([Attr("address","0x67C"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))])), -Blk(Tid(1_048, "%00000418"), Attrs([Attr("address","0x674")]), Phis([]), -Defs([Def(Tid(1_052, "%0000041c"), Attrs([Attr("address","0x674"), -Attr("insn","mov x16, x1")]), Var("R16",Imm(64)), Var("R1",Imm(64)))]), -Jmps([Call(Tid(1_057, "%00000421"), Attrs([Attr("address","0x678"), -Attr("insn","br x16")]), Int(1,1), (Indirect(Var("R16",Imm(64))),))]))])), -Sub(Tid(1_628, "@frame_dummy"), Attrs([Attr("c.proto","signed (*)(void)"), -Attr("address","0x710")]), "frame_dummy", Args([Arg(Tid(1_676, "%0000068c"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("frame_dummy_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(766, "@frame_dummy"), - Attrs([Attr("address","0x710")]), Phis([]), Defs([]), -Jmps([Call(Tid(768, "%00000300"), Attrs([Attr("address","0x710"), -Attr("insn","b #-0x90")]), Int(1,1), -(Direct(Tid(1_631, "@register_tm_clones")),))]))])), Sub(Tid(1_629, "@main"), - Attrs([Attr("c.proto","signed (*)(signed argc, const char** argv)"), -Attr("address","0x714")]), "main", Args([Arg(Tid(1_677, "%0000068d"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("main_argc",Imm(32)), -LOW(32,Var("R0",Imm(64))), In()), Arg(Tid(1_678, "%0000068e"), - Attrs([Attr("c.layout","**[char : 8]"), Attr("c.data","Top:u8 ptr ptr"), -Attr("c.type"," const char**")]), Var("main_argv",Imm(64)), -Var("R1",Imm(64)), Both()), Arg(Tid(1_679, "%0000068f"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("main_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(770, "@main"), - Attrs([Attr("address","0x714")]), Phis([]), Defs([Def(Tid(774, "%00000306"), - Attrs([Attr("address","0x714"), Attr("insn","sub sp, sp, #0x20")]), - Var("R31",Imm(64)), PLUS(Var("R31",Imm(64)),Int(18446744073709551584,64))), -Def(Tid(781, "%0000030d"), Attrs([Attr("address","0x718"), -Attr("insn","str wzr, [sp, #0x1c]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(28,64)),Int(0,32),LittleEndian(),32)), -Def(Tid(789, "%00000315"), Attrs([Attr("address","0x71C"), -Attr("insn","str w0, [sp, #0x18]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(24,64)),Extract(31,0,Var("R0",Imm(64))),LittleEndian(),32)), -Def(Tid(797, "%0000031d"), Attrs([Attr("address","0x720"), -Attr("insn","str x1, [sp, #0x10]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(16,64)),Var("R1",Imm(64)),LittleEndian(),64)), -Def(Tid(804, "%00000324"), Attrs([Attr("address","0x724"), -Attr("insn","str wzr, [sp, #0xc]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(12,64)),Int(0,32),LittleEndian(),32)), -Def(Tid(811, "%0000032b"), Attrs([Attr("address","0x728"), -Attr("insn","ldr w8, [sp, #0x18]")]), Var("R8",Imm(64)), -UNSIGNED(64,Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(24,64)),LittleEndian(),32))), -Def(Tid(817, "%00000331"), Attrs([Attr("address","0x72C"), -Attr("insn","subs w8, w8, #0x0")]), Var("#4",Imm(32)), -PLUS(Extract(31,0,Var("R8",Imm(64))),Int(4294967295,32))), -Def(Tid(822, "%00000336"), Attrs([Attr("address","0x72C"), -Attr("insn","subs w8, w8, #0x0")]), Var("VF",Imm(1)), -NEQ(SIGNED(33,PLUS(Var("#4",Imm(32)),Int(1,32))),PLUS(SIGNED(33,Extract(31,0,Var("R8",Imm(64)))),Int(0,33)))), -Def(Tid(827, "%0000033b"), Attrs([Attr("address","0x72C"), -Attr("insn","subs w8, w8, #0x0")]), Var("CF",Imm(1)), -NEQ(UNSIGNED(33,PLUS(Var("#4",Imm(32)),Int(1,32))),PLUS(UNSIGNED(33,Extract(31,0,Var("R8",Imm(64)))),Int(4294967296,33)))), -Def(Tid(831, "%0000033f"), Attrs([Attr("address","0x72C"), -Attr("insn","subs w8, w8, #0x0")]), Var("ZF",Imm(1)), -EQ(PLUS(Var("#4",Imm(32)),Int(1,32)),Int(0,32))), Def(Tid(835, "%00000343"), - Attrs([Attr("address","0x72C"), Attr("insn","subs w8, w8, #0x0")]), - Var("NF",Imm(1)), Extract(31,31,PLUS(Var("#4",Imm(32)),Int(1,32)))), -Def(Tid(839, "%00000347"), Attrs([Attr("address","0x72C"), -Attr("insn","subs w8, w8, #0x0")]), Var("R8",Imm(64)), -UNSIGNED(64,PLUS(Var("#4",Imm(32)),Int(1,32))))]), -Jmps([Goto(Tid(851, "%00000353"), Attrs([Attr("address","0x730"), -Attr("insn","cset w8, ne")]), EQ(Var("ZF",Imm(1)),Int(1,1)), -Direct(Tid(844, "%0000034c"))), Goto(Tid(852, "%00000354"), - Attrs([Attr("address","0x730"), Attr("insn","cset w8, ne")]), Int(1,1), -Direct(Tid(847, "%0000034f")))])), Blk(Tid(847, "%0000034f"), Attrs([]), - Phis([]), Defs([Def(Tid(848, "%00000350"), Attrs([Attr("address","0x730"), -Attr("insn","cset w8, ne")]), Var("R8",Imm(64)), Int(1,64))]), -Jmps([Goto(Tid(854, "%00000356"), Attrs([Attr("address","0x730"), -Attr("insn","cset w8, ne")]), Int(1,1), Direct(Tid(850, "%00000352")))])), -Blk(Tid(844, "%0000034c"), Attrs([]), Phis([]), -Defs([Def(Tid(845, "%0000034d"), Attrs([Attr("address","0x730"), -Attr("insn","cset w8, ne")]), Var("R8",Imm(64)), Int(0,64))]), -Jmps([Goto(Tid(853, "%00000355"), Attrs([Attr("address","0x730"), -Attr("insn","cset w8, ne")]), Int(1,1), Direct(Tid(850, "%00000352")))])), -Blk(Tid(850, "%00000352"), Attrs([]), Phis([]), Defs([]), -Jmps([Goto(Tid(860, "%0000035c"), Attrs([Attr("address","0x734"), -Attr("insn","tbnz w8, #0x0, #0x14")]), - EQ(Extract(0,0,Var("R8",Imm(64))),Int(1,1)), Direct(Tid(858, "%0000035a"))), -Goto(Tid(1_660, "%0000067c"), Attrs([]), Int(1,1), -Direct(Tid(919, "%00000397")))])), Blk(Tid(858, "%0000035a"), - Attrs([Attr("address","0x748")]), Phis([]), Defs([Def(Tid(866, "%00000362"), - Attrs([Attr("address","0x748"), Attr("insn","mov w8, #0x2")]), - Var("R8",Imm(64)), Int(2,64)), Def(Tid(874, "%0000036a"), - Attrs([Attr("address","0x74C"), Attr("insn","str w8, [sp, #0xc]")]), - Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(12,64)),Extract(31,0,Var("R8",Imm(64))),LittleEndian(),32))]), -Jmps([Goto(Tid(879, "%0000036f"), Attrs([Attr("address","0x750"), -Attr("insn","b #0x4")]), Int(1,1), Direct(Tid(877, "%0000036d")))])), -Blk(Tid(919, "%00000397"), Attrs([Attr("address","0x738")]), Phis([]), -Defs([]), Jmps([Goto(Tid(922, "%0000039a"), Attrs([Attr("address","0x738"), -Attr("insn","b #0x4")]), Int(1,1), Direct(Tid(920, "%00000398")))])), -Blk(Tid(920, "%00000398"), Attrs([Attr("address","0x73C")]), Phis([]), -Defs([Def(Tid(926, "%0000039e"), Attrs([Attr("address","0x73C"), -Attr("insn","mov w8, #0x1")]), Var("R8",Imm(64)), Int(1,64)), -Def(Tid(934, "%000003a6"), Attrs([Attr("address","0x740"), -Attr("insn","str w8, [sp, #0xc]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(12,64)),Extract(31,0,Var("R8",Imm(64))),LittleEndian(),32))]), -Jmps([Goto(Tid(938, "%000003aa"), Attrs([Attr("address","0x744"), -Attr("insn","b #0x10")]), Int(1,1), Direct(Tid(877, "%0000036d")))])), -Blk(Tid(877, "%0000036d"), Attrs([Attr("address","0x754")]), Phis([]), -Defs([Def(Tid(885, "%00000375"), Attrs([Attr("address","0x754"), -Attr("insn","ldr w8, [sp, #0xc]")]), Var("R8",Imm(64)), -UNSIGNED(64,Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(12,64)),LittleEndian(),32))), -Def(Tid(891, "%0000037b"), Attrs([Attr("address","0x758"), -Attr("insn","add w8, w8, #0x1")]), Var("R8",Imm(64)), -UNSIGNED(64,PLUS(Extract(31,0,Var("R8",Imm(64))),Int(1,32)))), -Def(Tid(899, "%00000383"), Attrs([Attr("address","0x75C"), -Attr("insn","str w8, [sp, #0x8]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),Extract(31,0,Var("R8",Imm(64))),LittleEndian(),32)), -Def(Tid(906, "%0000038a"), Attrs([Attr("address","0x760"), -Attr("insn","ldr w0, [sp, #0x8]")]), Var("R0",Imm(64)), -UNSIGNED(64,Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),LittleEndian(),32))), -Def(Tid(912, "%00000390"), Attrs([Attr("address","0x764"), -Attr("insn","add sp, sp, #0x20")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(32,64)))]), Jmps([Call(Tid(917, "%00000395"), - Attrs([Attr("address","0x768"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), -Sub(Tid(1_631, "@register_tm_clones"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x680")]), - "register_tm_clones", Args([Arg(Tid(1_680, "%00000690"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("register_tm_clones_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(616, "@register_tm_clones"), Attrs([Attr("address","0x680")]), - Phis([]), Defs([Def(Tid(619, "%0000026b"), Attrs([Attr("address","0x680"), -Attr("insn","adrp x0, #69632")]), Var("R0",Imm(64)), Int(69632,64)), -Def(Tid(625, "%00000271"), Attrs([Attr("address","0x684"), -Attr("insn","add x0, x0, #0x30")]), Var("R0",Imm(64)), -PLUS(Var("R0",Imm(64)),Int(48,64))), Def(Tid(630, "%00000276"), - Attrs([Attr("address","0x688"), Attr("insn","adrp x1, #69632")]), - Var("R1",Imm(64)), Int(69632,64)), Def(Tid(636, "%0000027c"), - Attrs([Attr("address","0x68C"), Attr("insn","add x1, x1, #0x30")]), - Var("R1",Imm(64)), PLUS(Var("R1",Imm(64)),Int(48,64))), -Def(Tid(643, "%00000283"), Attrs([Attr("address","0x690"), -Attr("insn","sub x1, x1, x0")]), Var("R1",Imm(64)), -PLUS(PLUS(Var("R1",Imm(64)),NOT(Var("R0",Imm(64)))),Int(1,64))), -Def(Tid(649, "%00000289"), Attrs([Attr("address","0x694"), -Attr("insn","lsr x2, x1, #63")]), Var("R2",Imm(64)), -Concat(Int(0,63),Extract(63,63,Var("R1",Imm(64))))), -Def(Tid(656, "%00000290"), Attrs([Attr("address","0x698"), -Attr("insn","add x1, x2, x1, asr #3")]), Var("R1",Imm(64)), -PLUS(Var("R2",Imm(64)),ARSHIFT(Var("R1",Imm(64)),Int(3,3)))), -Def(Tid(662, "%00000296"), Attrs([Attr("address","0x69C"), -Attr("insn","asr x1, x1, #1")]), Var("R1",Imm(64)), -SIGNED(64,Extract(63,1,Var("R1",Imm(64)))))]), -Jmps([Goto(Tid(668, "%0000029c"), Attrs([Attr("address","0x6A0"), -Attr("insn","cbz x1, #0x18")]), EQ(Var("R1",Imm(64)),Int(0,64)), -Direct(Tid(666, "%0000029a"))), Goto(Tid(1_661, "%0000067d"), Attrs([]), - Int(1,1), Direct(Tid(999, "%000003e7")))])), Blk(Tid(999, "%000003e7"), - Attrs([Attr("address","0x6A4")]), Phis([]), -Defs([Def(Tid(1_002, "%000003ea"), Attrs([Attr("address","0x6A4"), -Attr("insn","adrp x2, #65536")]), Var("R2",Imm(64)), Int(65536,64)), -Def(Tid(1_009, "%000003f1"), Attrs([Attr("address","0x6A8"), -Attr("insn","ldr x2, [x2, #0xfe0]")]), Var("R2",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R2",Imm(64)),Int(4064,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(1_014, "%000003f6"), Attrs([Attr("address","0x6AC"), -Attr("insn","cbz x2, #0xc")]), EQ(Var("R2",Imm(64)),Int(0,64)), -Direct(Tid(666, "%0000029a"))), Goto(Tid(1_662, "%0000067e"), Attrs([]), - Int(1,1), Direct(Tid(1_018, "%000003fa")))])), Blk(Tid(666, "%0000029a"), - Attrs([Attr("address","0x6B8")]), Phis([]), Defs([]), -Jmps([Call(Tid(674, "%000002a2"), Attrs([Attr("address","0x6B8"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))])), -Blk(Tid(1_018, "%000003fa"), Attrs([Attr("address","0x6B0")]), Phis([]), -Defs([Def(Tid(1_022, "%000003fe"), Attrs([Attr("address","0x6B0"), -Attr("insn","mov x16, x2")]), Var("R16",Imm(64)), Var("R2",Imm(64)))]), -Jmps([Call(Tid(1_027, "%00000403"), Attrs([Attr("address","0x6B4"), -Attr("insn","br x16")]), Int(1,1), -(Indirect(Var("R16",Imm(64))),))]))]))]))) \ No newline at end of file diff --git a/src/test/correct/ifbranches/clang/ifbranches.bir b/src/test/correct/ifbranches/clang/ifbranches.bir deleted file mode 100644 index bd05a56d1..000000000 --- a/src/test/correct/ifbranches/clang/ifbranches.bir +++ /dev/null @@ -1,269 +0,0 @@ -0000067f: program -0000064b: sub __cxa_finalize(__cxa_finalize_result) -00000680: __cxa_finalize_result :: out u32 = low:32[R0] - -000003e3: -000004db: R16 := 0x11000 -000004e2: R17 := mem[R16 + 8, el]:u64 -000004e8: R16 := R16 + 8 -000004ed: call R17 with noreturn - -0000064c: sub __do_global_dtors_aux(__do_global_dtors_aux_result) -00000681: __do_global_dtors_aux_result :: out u32 = low:32[R0] - -000002a6: -000002aa: #3 := R31 - 0x20 -000002b0: mem := mem with [#3, el]:u64 <- R29 -000002b6: mem := mem with [#3 + 8, el]:u64 <- R30 -000002ba: R31 := #3 -000002c0: R29 := R31 -000002c8: mem := mem with [R31 + 0x10, el]:u64 <- R19 -000002cd: R19 := 0x11000 -000002d4: R0 := pad:64[mem[R19 + 0x30]] -000002db: when 31:0[R0] <> 0 goto %000002d9 -00000674: goto %000003ac - -000003ac: -000003af: R0 := 0x10000 -000003b6: R0 := mem[R0 + 0xFC8, el]:u64 -000003bc: when R0 = 0 goto %000003ba -00000675: goto %000003d3 - -000003d3: -000003d6: R0 := 0x11000 -000003dd: R0 := mem[R0 + 0x28, el]:u64 -000003e2: R30 := 0x6F0 -000003e5: call @__cxa_finalize with return %000003ba - -000003ba: -000003c2: R30 := 0x6F4 -000003c4: call @deregister_tm_clones with return %000003c6 - -000003c6: -000003c9: R0 := 1 -000003d1: mem := mem with [R19 + 0x30] <- 7:0[R0] -00000676: goto %000002d9 - -000002d9: -000002e3: R19 := mem[R31 + 0x10, el]:u64 -000002ea: R29 := mem[R31, el]:u64 -000002ef: R30 := mem[R31 + 8, el]:u64 -000002f3: R31 := R31 + 0x20 -000002f8: call R30 with noreturn - -00000650: sub __libc_start_main(__libc_start_main_main, __libc_start_main_arg2, __libc_start_main_arg3, __libc_start_main_auxv, __libc_start_main_result) -00000682: __libc_start_main_main :: in u64 = R0 -00000683: __libc_start_main_arg2 :: in u32 = low:32[R1] -00000684: __libc_start_main_arg3 :: in out u64 = R2 -00000685: __libc_start_main_auxv :: in out u64 = R3 -00000686: __libc_start_main_result :: out u32 = low:32[R0] - -000001ff: -000004c5: R16 := 0x11000 -000004cc: R17 := mem[R16, el]:u64 -000004d2: R16 := R16 -000004d7: call R17 with noreturn - -00000651: sub _fini(_fini_result) -00000687: _fini_result :: out u32 = low:32[R0] - -0000001f: -00000025: #0 := R31 - 0x10 -0000002b: mem := mem with [#0, el]:u64 <- R29 -00000031: mem := mem with [#0 + 8, el]:u64 <- R30 -00000035: R31 := #0 -0000003b: R29 := R31 -00000042: R29 := mem[R31, el]:u64 -00000047: R30 := mem[R31 + 8, el]:u64 -0000004b: R31 := R31 + 0x10 -00000050: call R30 with noreturn - -00000652: sub _init(_init_result) -00000688: _init_result :: out u32 = low:32[R0] - -00000597: -0000059d: #6 := R31 - 0x10 -000005a3: mem := mem with [#6, el]:u64 <- R29 -000005a9: mem := mem with [#6 + 8, el]:u64 <- R30 -000005ad: R31 := #6 -000005b3: R29 := R31 -000005b8: R30 := 0x590 -000005ba: call @call_weak_fn with return %000005bc - -000005bc: -000005c1: R29 := mem[R31, el]:u64 -000005c6: R30 := mem[R31 + 8, el]:u64 -000005ca: R31 := R31 + 0x10 -000005cf: call R30 with noreturn - -00000653: sub _start(_start_result) -00000689: _start_result :: out u32 = low:32[R0] - -000001c0: -000001c5: R29 := 0 -000001ca: R30 := 0 -000001d0: R5 := R0 -000001d7: R1 := mem[R31, el]:u64 -000001dd: R2 := R31 + 8 -000001e3: R6 := R31 -000001e8: R0 := 0x10000 -000001ef: R0 := mem[R0 + 0xFD8, el]:u64 -000001f4: R3 := 0 -000001f9: R4 := 0 -000001fe: R30 := 0x630 -00000201: call @__libc_start_main with return %00000203 - -00000203: -00000206: R30 := 0x634 -00000209: call @abort with return %00000677 - -00000677: -00000678: call @call_weak_fn with noreturn - -00000656: sub abort() - - -00000207: -00000507: R16 := 0x11000 -0000050e: R17 := mem[R16 + 0x18, el]:u64 -00000514: R16 := R16 + 0x18 -00000519: call R17 with noreturn - -00000657: sub call_weak_fn(call_weak_fn_result) -0000068a: call_weak_fn_result :: out u32 = low:32[R0] - -0000020b: -0000020e: R0 := 0x10000 -00000215: R0 := mem[R0 + 0xFD0, el]:u64 -0000021b: when R0 = 0 goto %00000219 -00000679: goto %00000423 - -00000219: -00000221: call R30 with noreturn - -00000423: -00000426: goto @__gmon_start__ - -00000424: -000004f1: R16 := 0x11000 -000004f8: R17 := mem[R16 + 0x10, el]:u64 -000004fe: R16 := R16 + 0x10 -00000503: call R17 with noreturn - -00000659: sub deregister_tm_clones(deregister_tm_clones_result) -0000068b: deregister_tm_clones_result :: out u32 = low:32[R0] - -00000227: -0000022a: R0 := 0x11000 -00000230: R0 := R0 + 0x30 -00000235: R1 := 0x11000 -0000023b: R1 := R1 + 0x30 -00000241: #1 := ~R0 -00000246: #2 := R1 + ~R0 -0000024c: VF := extend:65[#2 + 1] <> extend:65[R1] + extend:65[#1] + 1 -00000252: CF := pad:65[#2 + 1] <> pad:65[R1] + pad:65[#1] + 1 -00000256: ZF := #2 + 1 = 0 -0000025a: NF := 63:63[#2 + 1] -00000260: when ZF goto %0000025e -0000067a: goto %00000405 - -00000405: -00000408: R1 := 0x10000 -0000040f: R1 := mem[R1 + 0xFC0, el]:u64 -00000414: when R1 = 0 goto %0000025e -0000067b: goto %00000418 - -0000025e: -00000266: call R30 with noreturn - -00000418: -0000041c: R16 := R1 -00000421: call R16 with noreturn - -0000065c: sub frame_dummy(frame_dummy_result) -0000068c: frame_dummy_result :: out u32 = low:32[R0] - -000002fe: -00000300: call @register_tm_clones with noreturn - -0000065d: sub main(main_argc, main_argv, main_result) -0000068d: main_argc :: in u32 = low:32[R0] -0000068e: main_argv :: in out u64 = R1 -0000068f: main_result :: out u32 = low:32[R0] - -00000302: -00000306: R31 := R31 - 0x20 -0000030d: mem := mem with [R31 + 0x1C, el]:u32 <- 0 -00000315: mem := mem with [R31 + 0x18, el]:u32 <- 31:0[R0] -0000031d: mem := mem with [R31 + 0x10, el]:u64 <- R1 -00000324: mem := mem with [R31 + 0xC, el]:u32 <- 0 -0000032b: R8 := pad:64[mem[R31 + 0x18, el]:u32] -00000331: #4 := 31:0[R8] - 1 -00000336: VF := extend:33[#4 + 1] <> extend:33[31:0[R8]] + 0 -0000033b: CF := pad:33[#4 + 1] <> pad:33[31:0[R8]] - 0x100000000 -0000033f: ZF := #4 + 1 = 0 -00000343: NF := 31:31[#4 + 1] -00000347: R8 := pad:64[#4 + 1] -00000353: when ZF goto %0000034c -00000354: goto %0000034f - -0000034f: -00000350: R8 := 1 -00000356: goto %00000352 - -0000034c: -0000034d: R8 := 0 -00000355: goto %00000352 - -00000352: -0000035c: when 0:0[R8] goto %0000035a -0000067c: goto %00000397 - -0000035a: -00000362: R8 := 2 -0000036a: mem := mem with [R31 + 0xC, el]:u32 <- 31:0[R8] -0000036f: goto %0000036d - -00000397: -0000039a: goto %00000398 - -00000398: -0000039e: R8 := 1 -000003a6: mem := mem with [R31 + 0xC, el]:u32 <- 31:0[R8] -000003aa: goto %0000036d - -0000036d: -00000375: R8 := pad:64[mem[R31 + 0xC, el]:u32] -0000037b: R8 := pad:64[31:0[R8] + 1] -00000383: mem := mem with [R31 + 8, el]:u32 <- 31:0[R8] -0000038a: R0 := pad:64[mem[R31 + 8, el]:u32] -00000390: R31 := R31 + 0x20 -00000395: call R30 with noreturn - -0000065f: sub register_tm_clones(register_tm_clones_result) -00000690: register_tm_clones_result :: out u32 = low:32[R0] - -00000268: -0000026b: R0 := 0x11000 -00000271: R0 := R0 + 0x30 -00000276: R1 := 0x11000 -0000027c: R1 := R1 + 0x30 -00000283: R1 := R1 + ~R0 + 1 -00000289: R2 := 0.63:63[R1] -00000290: R1 := R2 + (R1 ~>> 3) -00000296: R1 := extend:64[63:1[R1]] -0000029c: when R1 = 0 goto %0000029a -0000067d: goto %000003e7 - -000003e7: -000003ea: R2 := 0x10000 -000003f1: R2 := mem[R2 + 0xFE0, el]:u64 -000003f6: when R2 = 0 goto %0000029a -0000067e: goto %000003fa - -0000029a: -000002a2: call R30 with noreturn - -000003fa: -000003fe: R16 := R2 -00000403: call R16 with noreturn diff --git a/src/test/correct/ifbranches/clang/ifbranches.expected b/src/test/correct/ifbranches/clang/ifbranches.expected index 63194c356..dd7c999da 100644 --- a/src/test/correct/ifbranches/clang/ifbranches.expected +++ b/src/test/correct/ifbranches/clang/ifbranches.expected @@ -2,41 +2,20 @@ var {:extern} CF: bv1; var {:extern} Gamma_CF: bool; var {:extern} Gamma_NF: bool; var {:extern} Gamma_R0: bool; -var {:extern} Gamma_R1: bool; -var {:extern} Gamma_R31: bool; var {:extern} Gamma_R8: bool; var {:extern} Gamma_VF: bool; var {:extern} Gamma_ZF: bool; var {:extern} Gamma_mem: [bv64]bool; -var {:extern} Gamma_stack: [bv64]bool; var {:extern} NF: bv1; var {:extern} R0: bv64; -var {:extern} R1: bv64; -var {:extern} R31: bv64; var {:extern} R8: bv64; var {:extern} VF: bv1; var {:extern} ZF: bv1; var {:extern} mem: [bv64]bv8; -var {:extern} stack: [bv64]bv8; function {:extern} {:bvbuiltin "bvadd"} bvadd32(bv32, bv32) returns (bv32); -function {:extern} {:bvbuiltin "bvadd"} bvadd33(bv33, bv33) returns (bv33); function {:extern} {:bvbuiltin "bvadd"} bvadd64(bv64, bv64) returns (bv64); function {:extern} {:bvbuiltin "bvcomp"} bvcomp1(bv1, bv1) returns (bv1); function {:extern} {:bvbuiltin "bvcomp"} bvcomp32(bv32, bv32) returns (bv1); -function {:extern} {:bvbuiltin "bvcomp"} bvcomp33(bv33, bv33) returns (bv1); -function {:extern} {:bvbuiltin "bvnot"} bvnot1(bv1) returns (bv1); -function {:extern} gamma_load32(gammaMap: [bv64]bool, index: bv64) returns (bool) { - (gammaMap[bvadd64(index, 3bv64)] && (gammaMap[bvadd64(index, 2bv64)] && (gammaMap[bvadd64(index, 1bv64)] && gammaMap[index]))) -} - -function {:extern} gamma_store32(gammaMap: [bv64]bool, index: bv64, value: bool) returns ([bv64]bool) { - gammaMap[index := value][bvadd64(index, 1bv64) := value][bvadd64(index, 2bv64) := value][bvadd64(index, 3bv64) := value] -} - -function {:extern} gamma_store64(gammaMap: [bv64]bool, index: bv64, value: bool) returns ([bv64]bool) { - gammaMap[index := value][bvadd64(index, 1bv64) := value][bvadd64(index, 2bv64) := value][bvadd64(index, 3bv64) := value][bvadd64(index, 4bv64) := value][bvadd64(index, 5bv64) := value][bvadd64(index, 6bv64) := value][bvadd64(index, 7bv64) := value] -} - function {:extern} memory_load32_le(memory: [bv64]bv8, index: bv64) returns (bv32) { (memory[bvadd64(index, 3bv64)] ++ (memory[bvadd64(index, 2bv64)] ++ (memory[bvadd64(index, 1bv64)] ++ memory[index]))) } @@ -45,26 +24,16 @@ function {:extern} memory_load64_le(memory: [bv64]bv8, index: bv64) returns (bv6 (memory[bvadd64(index, 7bv64)] ++ (memory[bvadd64(index, 6bv64)] ++ (memory[bvadd64(index, 5bv64)] ++ (memory[bvadd64(index, 4bv64)] ++ (memory[bvadd64(index, 3bv64)] ++ (memory[bvadd64(index, 2bv64)] ++ (memory[bvadd64(index, 1bv64)] ++ memory[index]))))))) } -function {:extern} memory_store32_le(memory: [bv64]bv8, index: bv64, value: bv32) returns ([bv64]bv8) { - memory[index := value[8:0]][bvadd64(index, 1bv64) := value[16:8]][bvadd64(index, 2bv64) := value[24:16]][bvadd64(index, 3bv64) := value[32:24]] -} - -function {:extern} memory_store64_le(memory: [bv64]bv8, index: bv64, value: bv64) returns ([bv64]bv8) { - memory[index := value[8:0]][bvadd64(index, 1bv64) := value[16:8]][bvadd64(index, 2bv64) := value[24:16]][bvadd64(index, 3bv64) := value[32:24]][bvadd64(index, 4bv64) := value[40:32]][bvadd64(index, 5bv64) := value[48:40]][bvadd64(index, 6bv64) := value[56:48]][bvadd64(index, 7bv64) := value[64:56]] -} - -function {:extern} {:bvbuiltin "sign_extend 1"} sign_extend1_32(bv32) returns (bv33); -function {:extern} {:bvbuiltin "zero_extend 1"} zero_extend1_32(bv32) returns (bv33); function {:extern} {:bvbuiltin "zero_extend 32"} zero_extend32_32(bv32) returns (bv64); procedure {:extern} rely(); modifies Gamma_mem, mem; ensures (Gamma_mem == old(Gamma_mem)); ensures (mem == old(mem)); - free ensures (memory_load32_le(mem, 1920bv64) == 131073bv32); - free ensures (memory_load64_le(mem, 69064bv64) == 1808bv64); - free ensures (memory_load64_le(mem, 69072bv64) == 1728bv64); - free ensures (memory_load64_le(mem, 69592bv64) == 1812bv64); - free ensures (memory_load64_le(mem, 69672bv64) == 69672bv64); + free ensures (memory_load32_le(mem, 2232bv64) == 131073bv32); + free ensures (memory_load64_le(mem, 130440bv64) == 2192bv64); + free ensures (memory_load64_le(mem, 130448bv64) == 2112bv64); + free ensures (memory_load64_le(mem, 131056bv64) == 2196bv64); + free ensures (memory_load64_le(mem, 131080bv64) == 131080bv64); procedure {:extern} rely_transitive(); modifies Gamma_mem, mem; @@ -82,111 +51,54 @@ procedure {:extern} rely_reflexive(); procedure {:extern} guarantee_reflexive(); modifies Gamma_mem, mem; -procedure main_1812(); - modifies CF, Gamma_CF, Gamma_NF, Gamma_R0, Gamma_R31, Gamma_R8, Gamma_VF, Gamma_ZF, Gamma_stack, NF, R0, R31, R8, VF, ZF, stack; +procedure main(); + modifies CF, Gamma_CF, Gamma_NF, Gamma_R0, Gamma_R8, Gamma_VF, Gamma_ZF, NF, R0, R8, VF, ZF; requires (Gamma_R0 == true); - free requires (memory_load64_le(mem, 69664bv64) == 0bv64); - free requires (memory_load64_le(mem, 69672bv64) == 69672bv64); - free requires (memory_load32_le(mem, 1920bv64) == 131073bv32); - free requires (memory_load64_le(mem, 69064bv64) == 1808bv64); - free requires (memory_load64_le(mem, 69072bv64) == 1728bv64); - free requires (memory_load64_le(mem, 69592bv64) == 1812bv64); - free requires (memory_load64_le(mem, 69672bv64) == 69672bv64); - free ensures (Gamma_R31 == old(Gamma_R31)); - free ensures (R31 == old(R31)); - free ensures (memory_load32_le(mem, 1920bv64) == 131073bv32); - free ensures (memory_load64_le(mem, 69064bv64) == 1808bv64); - free ensures (memory_load64_le(mem, 69072bv64) == 1728bv64); - free ensures (memory_load64_le(mem, 69592bv64) == 1812bv64); - free ensures (memory_load64_le(mem, 69672bv64) == 69672bv64); + free requires (memory_load64_le(mem, 131072bv64) == 0bv64); + free requires (memory_load64_le(mem, 131080bv64) == 131080bv64); + free requires (memory_load32_le(mem, 2232bv64) == 131073bv32); + free requires (memory_load64_le(mem, 130440bv64) == 2192bv64); + free requires (memory_load64_le(mem, 130448bv64) == 2112bv64); + free requires (memory_load64_le(mem, 131056bv64) == 2196bv64); + free requires (memory_load64_le(mem, 131080bv64) == 131080bv64); + free ensures (memory_load32_le(mem, 2232bv64) == 131073bv32); + free ensures (memory_load64_le(mem, 130440bv64) == 2192bv64); + free ensures (memory_load64_le(mem, 130448bv64) == 2112bv64); + free ensures (memory_load64_le(mem, 131056bv64) == 2196bv64); + free ensures (memory_load64_le(mem, 131080bv64) == 131080bv64); -implementation main_1812() +implementation main() { - var #4: bv32; - var Gamma_#4: bool; - var Gamma_load18: bool; - var Gamma_load19: bool; - var Gamma_load20: bool; - var load18: bv32; - var load19: bv32; - var load20: bv32; lmain: assume {:captureState "lmain"} true; - R31, Gamma_R31 := bvadd64(R31, 18446744073709551584bv64), Gamma_R31; - stack, Gamma_stack := memory_store32_le(stack, bvadd64(R31, 28bv64), 0bv32), gamma_store32(Gamma_stack, bvadd64(R31, 28bv64), true); - assume {:captureState "%0000030d"} true; - stack, Gamma_stack := memory_store32_le(stack, bvadd64(R31, 24bv64), R0[32:0]), gamma_store32(Gamma_stack, bvadd64(R31, 24bv64), Gamma_R0); - assume {:captureState "%00000315"} true; - stack, Gamma_stack := memory_store64_le(stack, bvadd64(R31, 16bv64), R1), gamma_store64(Gamma_stack, bvadd64(R31, 16bv64), Gamma_R1); - assume {:captureState "%0000031d"} true; - stack, Gamma_stack := memory_store32_le(stack, bvadd64(R31, 12bv64), 0bv32), gamma_store32(Gamma_stack, bvadd64(R31, 12bv64), true); - assume {:captureState "%00000324"} true; - load18, Gamma_load18 := memory_load32_le(stack, bvadd64(R31, 24bv64)), gamma_load32(Gamma_stack, bvadd64(R31, 24bv64)); - R8, Gamma_R8 := zero_extend32_32(load18), Gamma_load18; - #4, Gamma_#4 := bvadd32(R8[32:0], 4294967295bv32), Gamma_R8; - VF, Gamma_VF := bvnot1(bvcomp33(sign_extend1_32(bvadd32(#4, 1bv32)), bvadd33(sign_extend1_32(R8[32:0]), 0bv33))), (Gamma_R8 && Gamma_#4); - CF, Gamma_CF := bvnot1(bvcomp33(zero_extend1_32(bvadd32(#4, 1bv32)), bvadd33(zero_extend1_32(R8[32:0]), 4294967296bv33))), (Gamma_R8 && Gamma_#4); - ZF, Gamma_ZF := bvcomp32(bvadd32(#4, 1bv32), 0bv32), Gamma_#4; - NF, Gamma_NF := bvadd32(#4, 1bv32)[32:31], Gamma_#4; - R8, Gamma_R8 := zero_extend32_32(bvadd32(#4, 1bv32)), Gamma_#4; + R8, Gamma_R8 := 2bv64, true; + VF, Gamma_VF := 0bv1, true; + CF, Gamma_CF := 1bv1, true; + ZF, Gamma_ZF := bvcomp32(R0[32:0], 0bv32), Gamma_R0; + NF, Gamma_NF := R0[32:31], Gamma_R0; assert Gamma_ZF; - goto lmain_goto_l0000034c, lmain_goto_l0000034f; - lmain_goto_l0000034f: - assume {:captureState "lmain_goto_l0000034f"} true; - assume (bvcomp1(ZF, 1bv1) == 0bv1); - R8, Gamma_R8 := 1bv64, true; - goto l0000034f; - l0000034f: - assume {:captureState "l0000034f"} true; - goto l00000352; - lmain_goto_l0000034c: - assume {:captureState "lmain_goto_l0000034c"} true; + goto lmain_goto_l00000294, lmain_goto_l0000029c; + l0000029c: + assume {:captureState "l0000029c"} true; + R0, Gamma_R0 := zero_extend32_32(bvadd32(R8[32:0], 1bv32)), Gamma_R8; + goto l000002a8; + l00000294: + assume {:captureState "l00000294"} true; + R0, Gamma_R0 := zero_extend32_32(R8[32:0]), Gamma_R8; + goto l000002a8; + l000002a8: + assume {:captureState "l000002a8"} true; + goto main_basil_return; + lmain_goto_l00000294: + assume {:captureState "lmain_goto_l00000294"} true; assume (bvcomp1(ZF, 1bv1) != 0bv1); - R8, Gamma_R8 := 0bv64, true; - goto l0000034c; - l0000034c: - assume {:captureState "l0000034c"} true; - goto l00000352; - l00000352: - assume {:captureState "l00000352"} true; - assert Gamma_R8; - goto l00000352_goto_l0000035a, l00000352_goto_l00000397; - l00000352_goto_l00000397: - assume {:captureState "l00000352_goto_l00000397"} true; - assume (bvcomp1(R8[1:0], 1bv1) == 0bv1); - goto l00000397; - l00000397: - assume {:captureState "l00000397"} true; - goto l00000398; - l00000398: - assume {:captureState "l00000398"} true; - R8, Gamma_R8 := 1bv64, true; - stack, Gamma_stack := memory_store32_le(stack, bvadd64(R31, 12bv64), R8[32:0]), gamma_store32(Gamma_stack, bvadd64(R31, 12bv64), Gamma_R8); - assume {:captureState "%000003a6"} true; - goto l0000036d; - l00000352_goto_l0000035a: - assume {:captureState "l00000352_goto_l0000035a"} true; - assume (bvcomp1(R8[1:0], 1bv1) != 0bv1); - R8, Gamma_R8 := 2bv64, true; - stack, Gamma_stack := memory_store32_le(stack, bvadd64(R31, 12bv64), R8[32:0]), gamma_store32(Gamma_stack, bvadd64(R31, 12bv64), Gamma_R8); - assume {:captureState "%0000036a"} true; - goto l0000035a; - l0000035a: - assume {:captureState "l0000035a"} true; - goto l0000036d; - l0000036d: - assume {:captureState "l0000036d"} true; - load19, Gamma_load19 := memory_load32_le(stack, bvadd64(R31, 12bv64)), gamma_load32(Gamma_stack, bvadd64(R31, 12bv64)); - R8, Gamma_R8 := zero_extend32_32(load19), Gamma_load19; - R8, Gamma_R8 := zero_extend32_32(bvadd32(R8[32:0], 1bv32)), Gamma_R8; - stack, Gamma_stack := memory_store32_le(stack, bvadd64(R31, 8bv64), R8[32:0]), gamma_store32(Gamma_stack, bvadd64(R31, 8bv64), Gamma_R8); - assume {:captureState "%00000383"} true; - load20, Gamma_load20 := memory_load32_le(stack, bvadd64(R31, 8bv64)), gamma_load32(Gamma_stack, bvadd64(R31, 8bv64)); - R0, Gamma_R0 := zero_extend32_32(load20), Gamma_load20; - R31, Gamma_R31 := bvadd64(R31, 32bv64), Gamma_R31; - goto main_1812_basil_return; - main_1812_basil_return: - assume {:captureState "main_1812_basil_return"} true; + goto l00000294; + lmain_goto_l0000029c: + assume {:captureState "lmain_goto_l0000029c"} true; + assume (bvcomp1(ZF, 1bv1) == 0bv1); + goto l0000029c; + main_basil_return: + assume {:captureState "main_basil_return"} true; return; } diff --git a/src/test/correct/ifbranches/clang/ifbranches.gts b/src/test/correct/ifbranches/clang/ifbranches.gts deleted file mode 100644 index 4c69ba827..000000000 Binary files a/src/test/correct/ifbranches/clang/ifbranches.gts and /dev/null differ diff --git a/src/test/correct/ifbranches/clang/ifbranches.md5sum b/src/test/correct/ifbranches/clang/ifbranches.md5sum new file mode 100644 index 000000000..54f0c85e0 --- /dev/null +++ b/src/test/correct/ifbranches/clang/ifbranches.md5sum @@ -0,0 +1,5 @@ +57bc387e26557e52c881d237d06b2184 correct/ifbranches/clang/a.out +5fb0f0fa611bcc86e838e80ef90707bf correct/ifbranches/clang/ifbranches.adt +80cdb4e5200d84ffba5b6003118a3771 correct/ifbranches/clang/ifbranches.bir +7ae0aee3d98171308e985d4ca3eac87d correct/ifbranches/clang/ifbranches.relf +6e062d351808ad2ee6fc30b1de2cbc93 correct/ifbranches/clang/ifbranches.gts diff --git a/src/test/correct/ifbranches/clang/ifbranches.relf b/src/test/correct/ifbranches/clang/ifbranches.relf deleted file mode 100644 index 3435c5cfa..000000000 --- a/src/test/correct/ifbranches/clang/ifbranches.relf +++ /dev/null @@ -1,121 +0,0 @@ - -Relocation section '.rela.dyn' at offset 0x460 contains 8 entries: - Offset Info Type Symbol's Value Symbol's Name + Addend -0000000000010dc8 0000000000000403 R_AARCH64_RELATIVE 710 -0000000000010dd0 0000000000000403 R_AARCH64_RELATIVE 6c0 -0000000000010fd8 0000000000000403 R_AARCH64_RELATIVE 714 -0000000000011028 0000000000000403 R_AARCH64_RELATIVE 11028 -0000000000010fc0 0000000400000401 R_AARCH64_GLOB_DAT 0000000000000000 _ITM_deregisterTMCloneTable + 0 -0000000000010fc8 0000000500000401 R_AARCH64_GLOB_DAT 0000000000000000 __cxa_finalize@GLIBC_2.17 + 0 -0000000000010fd0 0000000600000401 R_AARCH64_GLOB_DAT 0000000000000000 __gmon_start__ + 0 -0000000000010fe0 0000000800000401 R_AARCH64_GLOB_DAT 0000000000000000 _ITM_registerTMCloneTable + 0 - -Relocation section '.rela.plt' at offset 0x520 contains 4 entries: - Offset Info Type Symbol's Value Symbol's Name + Addend -0000000000011000 0000000300000402 R_AARCH64_JUMP_SLOT 0000000000000000 __libc_start_main@GLIBC_2.34 + 0 -0000000000011008 0000000500000402 R_AARCH64_JUMP_SLOT 0000000000000000 __cxa_finalize@GLIBC_2.17 + 0 -0000000000011010 0000000600000402 R_AARCH64_JUMP_SLOT 0000000000000000 __gmon_start__ + 0 -0000000000011018 0000000700000402 R_AARCH64_JUMP_SLOT 0000000000000000 abort@GLIBC_2.17 + 0 - -Symbol table '.dynsym' contains 9 entries: - Num: Value Size Type Bind Vis Ndx Name - 0: 0000000000000000 0 NOTYPE LOCAL DEFAULT UND - 1: 0000000000000580 0 SECTION LOCAL DEFAULT 11 .init - 2: 0000000000011020 0 SECTION LOCAL DEFAULT 23 .data - 3: 0000000000000000 0 FUNC GLOBAL DEFAULT UND __libc_start_main@GLIBC_2.34 (2) - 4: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_deregisterTMCloneTable - 5: 0000000000000000 0 FUNC WEAK DEFAULT UND __cxa_finalize@GLIBC_2.17 (3) - 6: 0000000000000000 0 NOTYPE WEAK DEFAULT UND __gmon_start__ - 7: 0000000000000000 0 FUNC GLOBAL DEFAULT UND abort@GLIBC_2.17 (3) - 8: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_registerTMCloneTable - -Symbol table '.symtab' contains 88 entries: - Num: Value Size Type Bind Vis Ndx Name - 0: 0000000000000000 0 NOTYPE LOCAL DEFAULT UND - 1: 0000000000000238 0 SECTION LOCAL DEFAULT 1 .interp - 2: 0000000000000254 0 SECTION LOCAL DEFAULT 2 .note.gnu.build-id - 3: 0000000000000278 0 SECTION LOCAL DEFAULT 3 .note.ABI-tag - 4: 0000000000000298 0 SECTION LOCAL DEFAULT 4 .gnu.hash - 5: 00000000000002b8 0 SECTION LOCAL DEFAULT 5 .dynsym - 6: 0000000000000390 0 SECTION LOCAL DEFAULT 6 .dynstr - 7: 000000000000041e 0 SECTION LOCAL DEFAULT 7 .gnu.version - 8: 0000000000000430 0 SECTION LOCAL DEFAULT 8 .gnu.version_r - 9: 0000000000000460 0 SECTION LOCAL DEFAULT 9 .rela.dyn - 10: 0000000000000520 0 SECTION LOCAL DEFAULT 10 .rela.plt - 11: 0000000000000580 0 SECTION LOCAL DEFAULT 11 .init - 12: 00000000000005a0 0 SECTION LOCAL DEFAULT 12 .plt - 13: 0000000000000600 0 SECTION LOCAL DEFAULT 13 .text - 14: 000000000000076c 0 SECTION LOCAL DEFAULT 14 .fini - 15: 0000000000000780 0 SECTION LOCAL DEFAULT 15 .rodata - 16: 0000000000000784 0 SECTION LOCAL DEFAULT 16 .eh_frame_hdr - 17: 00000000000007c0 0 SECTION LOCAL DEFAULT 17 .eh_frame - 18: 0000000000010dc8 0 SECTION LOCAL DEFAULT 18 .init_array - 19: 0000000000010dd0 0 SECTION LOCAL DEFAULT 19 .fini_array - 20: 0000000000010dd8 0 SECTION LOCAL DEFAULT 20 .dynamic - 21: 0000000000010fb8 0 SECTION LOCAL DEFAULT 21 .got - 22: 0000000000010fe8 0 SECTION LOCAL DEFAULT 22 .got.plt - 23: 0000000000011020 0 SECTION LOCAL DEFAULT 23 .data - 24: 0000000000011030 0 SECTION LOCAL DEFAULT 24 .bss - 25: 0000000000000000 0 SECTION LOCAL DEFAULT 25 .comment - 26: 0000000000000000 0 FILE LOCAL DEFAULT ABS Scrt1.o - 27: 0000000000000278 0 NOTYPE LOCAL DEFAULT 3 $d - 28: 0000000000000278 32 OBJECT LOCAL DEFAULT 3 __abi_tag - 29: 0000000000000600 0 NOTYPE LOCAL DEFAULT 13 $x - 30: 00000000000007d4 0 NOTYPE LOCAL DEFAULT 17 $d - 31: 0000000000000780 0 NOTYPE LOCAL DEFAULT 15 $d - 32: 0000000000000000 0 FILE LOCAL DEFAULT ABS crti.o - 33: 0000000000000634 0 NOTYPE LOCAL DEFAULT 13 $x - 34: 0000000000000634 20 FUNC LOCAL DEFAULT 13 call_weak_fn - 35: 0000000000000580 0 NOTYPE LOCAL DEFAULT 11 $x - 36: 000000000000076c 0 NOTYPE LOCAL DEFAULT 14 $x - 37: 0000000000000000 0 FILE LOCAL DEFAULT ABS crtn.o - 38: 0000000000000590 0 NOTYPE LOCAL DEFAULT 11 $x - 39: 0000000000000778 0 NOTYPE LOCAL DEFAULT 14 $x - 40: 0000000000000000 0 FILE LOCAL DEFAULT ABS crtstuff.c - 41: 0000000000000650 0 NOTYPE LOCAL DEFAULT 13 $x - 42: 0000000000000650 0 FUNC LOCAL DEFAULT 13 deregister_tm_clones - 43: 0000000000000680 0 FUNC LOCAL DEFAULT 13 register_tm_clones - 44: 0000000000011028 0 NOTYPE LOCAL DEFAULT 23 $d - 45: 00000000000006c0 0 FUNC LOCAL DEFAULT 13 __do_global_dtors_aux - 46: 0000000000011030 1 OBJECT LOCAL DEFAULT 24 completed.0 - 47: 0000000000010dd0 0 NOTYPE LOCAL DEFAULT 19 $d - 48: 0000000000010dd0 0 OBJECT LOCAL DEFAULT 19 __do_global_dtors_aux_fini_array_entry - 49: 0000000000000710 0 FUNC LOCAL DEFAULT 13 frame_dummy - 50: 0000000000010dc8 0 NOTYPE LOCAL DEFAULT 18 $d - 51: 0000000000010dc8 0 OBJECT LOCAL DEFAULT 18 __frame_dummy_init_array_entry - 52: 00000000000007e8 0 NOTYPE LOCAL DEFAULT 17 $d - 53: 0000000000011030 0 NOTYPE LOCAL DEFAULT 24 $d - 54: 0000000000000000 0 FILE LOCAL DEFAULT ABS ifbranches.c - 55: 0000000000000714 0 NOTYPE LOCAL DEFAULT 13 $x.0 - 56: 000000000000002a 0 NOTYPE LOCAL DEFAULT 25 $d.1 - 57: 0000000000000848 0 NOTYPE LOCAL DEFAULT 17 $d.2 - 58: 0000000000000000 0 FILE LOCAL DEFAULT ABS crtstuff.c - 59: 0000000000000874 0 NOTYPE LOCAL DEFAULT 17 $d - 60: 0000000000000874 0 OBJECT LOCAL DEFAULT 17 __FRAME_END__ - 61: 0000000000000000 0 FILE LOCAL DEFAULT ABS - 62: 0000000000010dd8 0 OBJECT LOCAL DEFAULT ABS _DYNAMIC - 63: 0000000000000784 0 NOTYPE LOCAL DEFAULT 16 __GNU_EH_FRAME_HDR - 64: 0000000000010fb8 0 OBJECT LOCAL DEFAULT ABS _GLOBAL_OFFSET_TABLE_ - 65: 00000000000005a0 0 NOTYPE LOCAL DEFAULT 12 $x - 66: 0000000000000000 0 FUNC GLOBAL DEFAULT UND __libc_start_main@GLIBC_2.34 - 67: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_deregisterTMCloneTable - 68: 0000000000011020 0 NOTYPE WEAK DEFAULT 23 data_start - 69: 0000000000011030 0 NOTYPE GLOBAL DEFAULT 24 __bss_start__ - 70: 0000000000000000 0 FUNC WEAK DEFAULT UND __cxa_finalize@GLIBC_2.17 - 71: 0000000000011038 0 NOTYPE GLOBAL DEFAULT 24 _bss_end__ - 72: 0000000000011030 0 NOTYPE GLOBAL DEFAULT 23 _edata - 73: 000000000000076c 0 FUNC GLOBAL HIDDEN 14 _fini - 74: 0000000000011038 0 NOTYPE GLOBAL DEFAULT 24 __bss_end__ - 75: 0000000000011020 0 NOTYPE GLOBAL DEFAULT 23 __data_start - 76: 0000000000000000 0 NOTYPE WEAK DEFAULT UND __gmon_start__ - 77: 0000000000011028 0 OBJECT GLOBAL HIDDEN 23 __dso_handle - 78: 0000000000000000 0 FUNC GLOBAL DEFAULT UND abort@GLIBC_2.17 - 79: 0000000000000780 4 OBJECT GLOBAL DEFAULT 15 _IO_stdin_used - 80: 0000000000011038 0 NOTYPE GLOBAL DEFAULT 24 _end - 81: 0000000000000600 52 FUNC GLOBAL DEFAULT 13 _start - 82: 0000000000011038 0 NOTYPE GLOBAL DEFAULT 24 __end__ - 83: 0000000000011030 0 NOTYPE GLOBAL DEFAULT 24 __bss_start - 84: 0000000000000714 88 FUNC GLOBAL DEFAULT 13 main - 85: 0000000000011030 0 OBJECT GLOBAL HIDDEN 23 __TMC_END__ - 86: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_registerTMCloneTable - 87: 0000000000000580 0 FUNC GLOBAL HIDDEN 11 _init diff --git a/src/test/correct/ifbranches/clang/ifbranches_gtirb.expected b/src/test/correct/ifbranches/clang/ifbranches_gtirb.expected index f2e499d17..940227590 100644 --- a/src/test/correct/ifbranches/clang/ifbranches_gtirb.expected +++ b/src/test/correct/ifbranches/clang/ifbranches_gtirb.expected @@ -2,40 +2,19 @@ var {:extern} CF: bv1; var {:extern} Gamma_CF: bool; var {:extern} Gamma_NF: bool; var {:extern} Gamma_R0: bool; -var {:extern} Gamma_R1: bool; -var {:extern} Gamma_R31: bool; var {:extern} Gamma_R8: bool; var {:extern} Gamma_VF: bool; var {:extern} Gamma_ZF: bool; var {:extern} Gamma_mem: [bv64]bool; -var {:extern} Gamma_stack: [bv64]bool; var {:extern} NF: bv1; var {:extern} R0: bv64; -var {:extern} R1: bv64; -var {:extern} R31: bv64; var {:extern} R8: bv64; var {:extern} VF: bv1; var {:extern} ZF: bv1; var {:extern} mem: [bv64]bv8; -var {:extern} stack: [bv64]bv8; function {:extern} {:bvbuiltin "bvadd"} bvadd32(bv32, bv32) returns (bv32); -function {:extern} {:bvbuiltin "bvadd"} bvadd33(bv33, bv33) returns (bv33); function {:extern} {:bvbuiltin "bvadd"} bvadd64(bv64, bv64) returns (bv64); function {:extern} {:bvbuiltin "bvcomp"} bvcomp32(bv32, bv32) returns (bv1); -function {:extern} {:bvbuiltin "bvcomp"} bvcomp33(bv33, bv33) returns (bv1); -function {:extern} {:bvbuiltin "bvnot"} bvnot1(bv1) returns (bv1); -function {:extern} gamma_load32(gammaMap: [bv64]bool, index: bv64) returns (bool) { - (gammaMap[bvadd64(index, 3bv64)] && (gammaMap[bvadd64(index, 2bv64)] && (gammaMap[bvadd64(index, 1bv64)] && gammaMap[index]))) -} - -function {:extern} gamma_store32(gammaMap: [bv64]bool, index: bv64, value: bool) returns ([bv64]bool) { - gammaMap[index := value][bvadd64(index, 1bv64) := value][bvadd64(index, 2bv64) := value][bvadd64(index, 3bv64) := value] -} - -function {:extern} gamma_store64(gammaMap: [bv64]bool, index: bv64, value: bool) returns ([bv64]bool) { - gammaMap[index := value][bvadd64(index, 1bv64) := value][bvadd64(index, 2bv64) := value][bvadd64(index, 3bv64) := value][bvadd64(index, 4bv64) := value][bvadd64(index, 5bv64) := value][bvadd64(index, 6bv64) := value][bvadd64(index, 7bv64) := value] -} - function {:extern} memory_load32_le(memory: [bv64]bv8, index: bv64) returns (bv32) { (memory[bvadd64(index, 3bv64)] ++ (memory[bvadd64(index, 2bv64)] ++ (memory[bvadd64(index, 1bv64)] ++ memory[index]))) } @@ -44,25 +23,16 @@ function {:extern} memory_load64_le(memory: [bv64]bv8, index: bv64) returns (bv6 (memory[bvadd64(index, 7bv64)] ++ (memory[bvadd64(index, 6bv64)] ++ (memory[bvadd64(index, 5bv64)] ++ (memory[bvadd64(index, 4bv64)] ++ (memory[bvadd64(index, 3bv64)] ++ (memory[bvadd64(index, 2bv64)] ++ (memory[bvadd64(index, 1bv64)] ++ memory[index]))))))) } -function {:extern} memory_store32_le(memory: [bv64]bv8, index: bv64, value: bv32) returns ([bv64]bv8) { - memory[index := value[8:0]][bvadd64(index, 1bv64) := value[16:8]][bvadd64(index, 2bv64) := value[24:16]][bvadd64(index, 3bv64) := value[32:24]] -} - -function {:extern} memory_store64_le(memory: [bv64]bv8, index: bv64, value: bv64) returns ([bv64]bv8) { - memory[index := value[8:0]][bvadd64(index, 1bv64) := value[16:8]][bvadd64(index, 2bv64) := value[24:16]][bvadd64(index, 3bv64) := value[32:24]][bvadd64(index, 4bv64) := value[40:32]][bvadd64(index, 5bv64) := value[48:40]][bvadd64(index, 6bv64) := value[56:48]][bvadd64(index, 7bv64) := value[64:56]] -} - -function {:extern} {:bvbuiltin "zero_extend 1"} zero_extend1_32(bv32) returns (bv33); function {:extern} {:bvbuiltin "zero_extend 32"} zero_extend32_32(bv32) returns (bv64); procedure {:extern} rely(); modifies Gamma_mem, mem; ensures (Gamma_mem == old(Gamma_mem)); ensures (mem == old(mem)); - free ensures (memory_load32_le(mem, 1920bv64) == 131073bv32); - free ensures (memory_load64_le(mem, 69064bv64) == 1808bv64); - free ensures (memory_load64_le(mem, 69072bv64) == 1728bv64); - free ensures (memory_load64_le(mem, 69592bv64) == 1812bv64); - free ensures (memory_load64_le(mem, 69672bv64) == 69672bv64); + free ensures (memory_load32_le(mem, 2232bv64) == 131073bv32); + free ensures (memory_load64_le(mem, 130440bv64) == 2192bv64); + free ensures (memory_load64_le(mem, 130448bv64) == 2112bv64); + free ensures (memory_load64_le(mem, 131056bv64) == 2196bv64); + free ensures (memory_load64_le(mem, 131080bv64) == 131080bv64); procedure {:extern} rely_transitive(); modifies Gamma_mem, mem; @@ -80,103 +50,45 @@ procedure {:extern} rely_reflexive(); procedure {:extern} guarantee_reflexive(); modifies Gamma_mem, mem; -procedure main_1812(); - modifies CF, Gamma_CF, Gamma_NF, Gamma_R0, Gamma_R31, Gamma_R8, Gamma_VF, Gamma_ZF, Gamma_stack, NF, R0, R31, R8, VF, ZF, stack; +procedure main(); + modifies CF, Gamma_CF, Gamma_NF, Gamma_R0, Gamma_R8, Gamma_VF, Gamma_ZF, NF, R0, R8, VF, ZF; requires (Gamma_R0 == true); - free requires (memory_load64_le(mem, 69664bv64) == 0bv64); - free requires (memory_load64_le(mem, 69672bv64) == 69672bv64); - free requires (memory_load32_le(mem, 1920bv64) == 131073bv32); - free requires (memory_load64_le(mem, 69064bv64) == 1808bv64); - free requires (memory_load64_le(mem, 69072bv64) == 1728bv64); - free requires (memory_load64_le(mem, 69592bv64) == 1812bv64); - free requires (memory_load64_le(mem, 69672bv64) == 69672bv64); - free ensures (Gamma_R31 == old(Gamma_R31)); - free ensures (R31 == old(R31)); - free ensures (memory_load32_le(mem, 1920bv64) == 131073bv32); - free ensures (memory_load64_le(mem, 69064bv64) == 1808bv64); - free ensures (memory_load64_le(mem, 69072bv64) == 1728bv64); - free ensures (memory_load64_le(mem, 69592bv64) == 1812bv64); - free ensures (memory_load64_le(mem, 69672bv64) == 69672bv64); + free requires (memory_load64_le(mem, 131072bv64) == 0bv64); + free requires (memory_load64_le(mem, 131080bv64) == 131080bv64); + free requires (memory_load32_le(mem, 2232bv64) == 131073bv32); + free requires (memory_load64_le(mem, 130440bv64) == 2192bv64); + free requires (memory_load64_le(mem, 130448bv64) == 2112bv64); + free requires (memory_load64_le(mem, 131056bv64) == 2196bv64); + free requires (memory_load64_le(mem, 131080bv64) == 131080bv64); + free ensures (memory_load32_le(mem, 2232bv64) == 131073bv32); + free ensures (memory_load64_le(mem, 130440bv64) == 2192bv64); + free ensures (memory_load64_le(mem, 130448bv64) == 2112bv64); + free ensures (memory_load64_le(mem, 131056bv64) == 2196bv64); + free ensures (memory_load64_le(mem, 131080bv64) == 131080bv64); -implementation main_1812() +implementation main() { - var Cse0__5_3_6: bv32; - var Gamma_Cse0__5_3_6: bool; - var Gamma_load16: bool; - var Gamma_load17: bool; - var Gamma_load18: bool; - var load16: bv32; - var load17: bv32; - var load18: bv32; - main_1812__0__z7dsAZ41QYe9rvbDt1JoIQ: - assume {:captureState "main_1812__0__z7dsAZ41QYe9rvbDt1JoIQ"} true; - R31, Gamma_R31 := bvadd64(R31, 18446744073709551584bv64), Gamma_R31; - stack, Gamma_stack := memory_store32_le(stack, bvadd64(R31, 28bv64), 0bv32), gamma_store32(Gamma_stack, bvadd64(R31, 28bv64), true); - assume {:captureState "1816_0"} true; - stack, Gamma_stack := memory_store32_le(stack, bvadd64(R31, 24bv64), R0[32:0]), gamma_store32(Gamma_stack, bvadd64(R31, 24bv64), Gamma_R0); - assume {:captureState "1820_0"} true; - stack, Gamma_stack := memory_store64_le(stack, bvadd64(R31, 16bv64), R1), gamma_store64(Gamma_stack, bvadd64(R31, 16bv64), Gamma_R1); - assume {:captureState "1824_0"} true; - stack, Gamma_stack := memory_store32_le(stack, bvadd64(R31, 12bv64), 0bv32), gamma_store32(Gamma_stack, bvadd64(R31, 12bv64), true); - assume {:captureState "1828_0"} true; - load16, Gamma_load16 := memory_load32_le(stack, bvadd64(R31, 24bv64)), gamma_load32(Gamma_stack, bvadd64(R31, 24bv64)); - R8, Gamma_R8 := zero_extend32_32(load16), Gamma_load16; - Cse0__5_3_6, Gamma_Cse0__5_3_6 := bvadd32(R8[32:0], 0bv32), Gamma_R8; - VF, Gamma_VF := bvnot1(bvcomp32(Cse0__5_3_6, Cse0__5_3_6)), Gamma_Cse0__5_3_6; - CF, Gamma_CF := bvnot1(bvcomp33(zero_extend1_32(Cse0__5_3_6), bvadd33(zero_extend1_32(R8[32:0]), 4294967296bv33))), (Gamma_R8 && Gamma_Cse0__5_3_6); - ZF, Gamma_ZF := bvcomp32(Cse0__5_3_6, 0bv32), Gamma_Cse0__5_3_6; - NF, Gamma_NF := Cse0__5_3_6[32:31], Gamma_Cse0__5_3_6; - R8, Gamma_R8 := zero_extend32_32(Cse0__5_3_6), Gamma_Cse0__5_3_6; + $main$__0__$cdQ2GS2~QhaOa7OUvPWMRQ: + assume {:captureState "$main$__0__$cdQ2GS2~QhaOa7OUvPWMRQ"} true; + R8, Gamma_R8 := 2bv64, true; + VF, Gamma_VF := 0bv1, true; + CF, Gamma_CF := 1bv1, true; + ZF, Gamma_ZF := bvcomp32(R0[32:0], 0bv32), Gamma_R0; + NF, Gamma_NF := R0[32:31], Gamma_R0; assert Gamma_ZF; - goto main_1812__0__z7dsAZ41QYe9rvbDt1JoIQ$__0, main_1812__0__z7dsAZ41QYe9rvbDt1JoIQ$__1; - main_1812__0__z7dsAZ41QYe9rvbDt1JoIQ$__1: - assume {:captureState "main_1812__0__z7dsAZ41QYe9rvbDt1JoIQ$__1"} true; - assume (!(ZF == 1bv1)); - R8, Gamma_R8 := 1bv64, true; - assert Gamma_R8; - goto main_1812__0__z7dsAZ41QYe9rvbDt1JoIQ_goto_main_1812__3__AzuUI8EJR~~zZ4LRu_atQA, main_1812__0__z7dsAZ41QYe9rvbDt1JoIQ_goto_main_1812__1__22DSnEAzTL6vU9qI4utrZA; - main_1812__0__z7dsAZ41QYe9rvbDt1JoIQ$__0: - assume {:captureState "main_1812__0__z7dsAZ41QYe9rvbDt1JoIQ$__0"} true; + goto $main$__0__$cdQ2GS2~QhaOa7OUvPWMRQ$__0, $main$__0__$cdQ2GS2~QhaOa7OUvPWMRQ$__1; + $main$__0__$cdQ2GS2~QhaOa7OUvPWMRQ$__0: + assume {:captureState "$main$__0__$cdQ2GS2~QhaOa7OUvPWMRQ$__0"} true; assume (ZF == 1bv1); - R8, Gamma_R8 := 0bv64, true; - assert Gamma_R8; - goto main_1812__0__z7dsAZ41QYe9rvbDt1JoIQ_goto_main_1812__3__AzuUI8EJR~~zZ4LRu_atQA, main_1812__0__z7dsAZ41QYe9rvbDt1JoIQ_goto_main_1812__1__22DSnEAzTL6vU9qI4utrZA; - main_1812__0__z7dsAZ41QYe9rvbDt1JoIQ_goto_main_1812__1__22DSnEAzTL6vU9qI4utrZA: - assume {:captureState "main_1812__0__z7dsAZ41QYe9rvbDt1JoIQ_goto_main_1812__1__22DSnEAzTL6vU9qI4utrZA"} true; - assume (!(R8[1:0] == 1bv1)); - goto main_1812__1__22DSnEAzTL6vU9qI4utrZA; - main_1812__1__22DSnEAzTL6vU9qI4utrZA: - assume {:captureState "main_1812__1__22DSnEAzTL6vU9qI4utrZA"} true; - goto main_1812__2__UnO2T_q8SO22cZ~w_xJwoA; - main_1812__2__UnO2T_q8SO22cZ~w_xJwoA: - assume {:captureState "main_1812__2__UnO2T_q8SO22cZ~w_xJwoA"} true; - R8, Gamma_R8 := 1bv64, true; - stack, Gamma_stack := memory_store32_le(stack, bvadd64(R31, 12bv64), R8[32:0]), gamma_store32(Gamma_stack, bvadd64(R31, 12bv64), Gamma_R8); - assume {:captureState "1856_0"} true; - goto main_1812__4__hiOAUbGYTmCyjtnuNPouiQ; - main_1812__0__z7dsAZ41QYe9rvbDt1JoIQ_goto_main_1812__3__AzuUI8EJR~~zZ4LRu_atQA: - assume {:captureState "main_1812__0__z7dsAZ41QYe9rvbDt1JoIQ_goto_main_1812__3__AzuUI8EJR~~zZ4LRu_atQA"} true; - assume (R8[1:0] == 1bv1); - R8, Gamma_R8 := 2bv64, true; - stack, Gamma_stack := memory_store32_le(stack, bvadd64(R31, 12bv64), R8[32:0]), gamma_store32(Gamma_stack, bvadd64(R31, 12bv64), Gamma_R8); - assume {:captureState "1868_0"} true; - goto main_1812__3__AzuUI8EJR~~zZ4LRu_atQA; - main_1812__3__AzuUI8EJR~~zZ4LRu_atQA: - assume {:captureState "main_1812__3__AzuUI8EJR~~zZ4LRu_atQA"} true; - goto main_1812__4__hiOAUbGYTmCyjtnuNPouiQ; - main_1812__4__hiOAUbGYTmCyjtnuNPouiQ: - assume {:captureState "main_1812__4__hiOAUbGYTmCyjtnuNPouiQ"} true; - load17, Gamma_load17 := memory_load32_le(stack, bvadd64(R31, 12bv64)), gamma_load32(Gamma_stack, bvadd64(R31, 12bv64)); - R8, Gamma_R8 := zero_extend32_32(load17), Gamma_load17; - R8, Gamma_R8 := zero_extend32_32(bvadd32(R8[32:0], 1bv32)), Gamma_R8; - stack, Gamma_stack := memory_store32_le(stack, bvadd64(R31, 8bv64), R8[32:0]), gamma_store32(Gamma_stack, bvadd64(R31, 8bv64), Gamma_R8); - assume {:captureState "1884_0"} true; - load18, Gamma_load18 := memory_load32_le(stack, bvadd64(R31, 8bv64)), gamma_load32(Gamma_stack, bvadd64(R31, 8bv64)); - R0, Gamma_R0 := zero_extend32_32(load18), Gamma_load18; - R31, Gamma_R31 := bvadd64(R31, 32bv64), Gamma_R31; - goto main_1812_basil_return; - main_1812_basil_return: - assume {:captureState "main_1812_basil_return"} true; + R0, Gamma_R0 := zero_extend32_32(R8[32:0]), Gamma_R8; + goto main_basil_return; + $main$__0__$cdQ2GS2~QhaOa7OUvPWMRQ$__1: + assume {:captureState "$main$__0__$cdQ2GS2~QhaOa7OUvPWMRQ$__1"} true; + assume (!(ZF == 1bv1)); + R0, Gamma_R0 := zero_extend32_32(bvadd32(R8[32:0], 1bv32)), Gamma_R8; + goto main_basil_return; + main_basil_return: + assume {:captureState "main_basil_return"} true; return; } diff --git a/src/test/correct/ifbranches/clang_O2/ifbranches.adt b/src/test/correct/ifbranches/clang_O2/ifbranches.adt deleted file mode 100644 index 5f4c6ba55..000000000 --- a/src/test/correct/ifbranches/clang_O2/ifbranches.adt +++ /dev/null @@ -1,517 +0,0 @@ -Project(Attrs([Attr("filename","\"clang_O2/ifbranches.out\""), -Attr("image-specification","(declare abi (name str))\n(declare arch (name str))\n(declare base-address (addr int))\n(declare bias (off int))\n(declare bits (size int))\n(declare code-region (addr int) (size int) (off int))\n(declare code-start (addr int))\n(declare entry-point (addr int))\n(declare external-reference (addr int) (name str))\n(declare format (name str))\n(declare is-executable (flag bool))\n(declare is-little-endian (flag bool))\n(declare llvm:base-address (addr int))\n(declare llvm:code-entry (name str) (off int) (size int))\n(declare llvm:coff-import-library (name str))\n(declare llvm:coff-virtual-section-header (name str) (addr int) (size int))\n(declare llvm:elf-program-header (name str) (off int) (size int))\n(declare llvm:elf-program-header-flags (name str) (ld bool) (r bool) \n (w bool) (x bool))\n(declare llvm:elf-virtual-program-header (name str) (addr int) (size int))\n(declare llvm:entry-point (addr int))\n(declare llvm:macho-symbol (name str) (value int))\n(declare llvm:name-reference (at int) (name str))\n(declare llvm:relocation (at int) (addr int))\n(declare llvm:section-entry (name str) (addr int) (size int) (off int))\n(declare llvm:section-flags (name str) (r bool) (w bool) (x bool))\n(declare llvm:segment-command (name str) (off int) (size int))\n(declare llvm:segment-command-flags (name str) (r bool) (w bool) (x bool))\n(declare llvm:symbol-entry (name str) (addr int) (size int) (off int)\n (value int))\n(declare llvm:virtual-segment-command (name str) (addr int) (size int))\n(declare mapped (addr int) (size int) (off int))\n(declare named-region (addr int) (size int) (name str))\n(declare named-symbol (addr int) (name str))\n(declare require (name str))\n(declare section (addr int) (size int))\n(declare segment (addr int) (size int) (r bool) (w bool) (x bool))\n(declare subarch (name str))\n(declare symbol-chunk (addr int) (size int) (root int))\n(declare symbol-value (addr int) (value int))\n(declare system (name str))\n(declare vendor (name str))\n\n(abi unknown)\n(arch aarch64)\n(base-address 0)\n(bias 0)\n(bits 64)\n(code-region 1828 20 1828)\n(code-region 1536 292 1536)\n(code-region 1440 96 1440)\n(code-region 1408 24 1408)\n(code-start 1588)\n(code-start 1536)\n(code-start 1812)\n(entry-point 1536)\n(external-reference 69568 _ITM_deregisterTMCloneTable)\n(external-reference 69576 __cxa_finalize)\n(external-reference 69584 __gmon_start__)\n(external-reference 69600 _ITM_registerTMCloneTable)\n(external-reference 69632 __libc_start_main)\n(external-reference 69640 __cxa_finalize)\n(external-reference 69648 __gmon_start__)\n(external-reference 69656 abort)\n(format elf)\n(is-executable true)\n(is-little-endian true)\n(llvm:base-address 0)\n(llvm:code-entry abort 0 0)\n(llvm:code-entry __cxa_finalize 0 0)\n(llvm:code-entry __libc_start_main 0 0)\n(llvm:code-entry _init 1408 0)\n(llvm:code-entry main 1812 16)\n(llvm:code-entry _start 1536 52)\n(llvm:code-entry abort@GLIBC_2.17 0 0)\n(llvm:code-entry _fini 1828 0)\n(llvm:code-entry __cxa_finalize@GLIBC_2.17 0 0)\n(llvm:code-entry __libc_start_main@GLIBC_2.34 0 0)\n(llvm:code-entry frame_dummy 1808 0)\n(llvm:code-entry __do_global_dtors_aux 1728 0)\n(llvm:code-entry register_tm_clones 1664 0)\n(llvm:code-entry deregister_tm_clones 1616 0)\n(llvm:code-entry call_weak_fn 1588 20)\n(llvm:code-entry .fini 1828 20)\n(llvm:code-entry .text 1536 292)\n(llvm:code-entry .plt 1440 96)\n(llvm:code-entry .init 1408 24)\n(llvm:elf-program-header 08 3528 568)\n(llvm:elf-program-header 07 0 0)\n(llvm:elf-program-header 06 1852 60)\n(llvm:elf-program-header 05 596 68)\n(llvm:elf-program-header 04 3544 480)\n(llvm:elf-program-header 03 3528 616)\n(llvm:elf-program-header 02 0 2092)\n(llvm:elf-program-header 01 568 27)\n(llvm:elf-program-header 00 64 504)\n(llvm:elf-program-header-flags 08 false true false false)\n(llvm:elf-program-header-flags 07 false true true false)\n(llvm:elf-program-header-flags 06 false true false false)\n(llvm:elf-program-header-flags 05 false true false false)\n(llvm:elf-program-header-flags 04 false true true false)\n(llvm:elf-program-header-flags 03 true true true false)\n(llvm:elf-program-header-flags 02 true true false true)\n(llvm:elf-program-header-flags 01 false true false false)\n(llvm:elf-program-header-flags 00 false true false false)\n(llvm:elf-virtual-program-header 08 69064 568)\n(llvm:elf-virtual-program-header 07 0 0)\n(llvm:elf-virtual-program-header 06 1852 60)\n(llvm:elf-virtual-program-header 05 596 68)\n(llvm:elf-virtual-program-header 04 69080 480)\n(llvm:elf-virtual-program-header 03 69064 624)\n(llvm:elf-virtual-program-header 02 0 2092)\n(llvm:elf-virtual-program-header 01 568 27)\n(llvm:elf-virtual-program-header 00 64 504)\n(llvm:entry-point 1536)\n(llvm:name-reference 69656 abort)\n(llvm:name-reference 69648 __gmon_start__)\n(llvm:name-reference 69640 __cxa_finalize)\n(llvm:name-reference 69632 __libc_start_main)\n(llvm:name-reference 69600 _ITM_registerTMCloneTable)\n(llvm:name-reference 69584 __gmon_start__)\n(llvm:name-reference 69576 __cxa_finalize)\n(llvm:name-reference 69568 _ITM_deregisterTMCloneTable)\n(llvm:section-entry .shstrtab 0 259 6889)\n(llvm:section-entry .strtab 0 561 6328)\n(llvm:section-entry .symtab 0 2112 4216)\n(llvm:section-entry .comment 0 71 4144)\n(llvm:section-entry .bss 69680 8 4144)\n(llvm:section-entry .data 69664 16 4128)\n(llvm:section-entry .got.plt 69608 56 4072)\n(llvm:section-entry .got 69560 48 4024)\n(llvm:section-entry .dynamic 69080 480 3544)\n(llvm:section-entry .fini_array 69072 8 3536)\n(llvm:section-entry .init_array 69064 8 3528)\n(llvm:section-entry .eh_frame 1912 180 1912)\n(llvm:section-entry .eh_frame_hdr 1852 60 1852)\n(llvm:section-entry .rodata 1848 4 1848)\n(llvm:section-entry .fini 1828 20 1828)\n(llvm:section-entry .text 1536 292 1536)\n(llvm:section-entry .plt 1440 96 1440)\n(llvm:section-entry .init 1408 24 1408)\n(llvm:section-entry .rela.plt 1312 96 1312)\n(llvm:section-entry .rela.dyn 1120 192 1120)\n(llvm:section-entry .gnu.version_r 1072 48 1072)\n(llvm:section-entry .gnu.version 1054 18 1054)\n(llvm:section-entry .dynstr 912 141 912)\n(llvm:section-entry .dynsym 696 216 696)\n(llvm:section-entry .gnu.hash 664 28 664)\n(llvm:section-entry .note.ABI-tag 632 32 632)\n(llvm:section-entry .note.gnu.build-id 596 36 596)\n(llvm:section-entry .interp 568 27 568)\n(llvm:section-flags .shstrtab true false false)\n(llvm:section-flags .strtab true false false)\n(llvm:section-flags .symtab true false false)\n(llvm:section-flags .comment true false false)\n(llvm:section-flags .bss true true false)\n(llvm:section-flags .data true true false)\n(llvm:section-flags .got.plt true true false)\n(llvm:section-flags .got true true false)\n(llvm:section-flags .dynamic true true false)\n(llvm:section-flags .fini_array true true false)\n(llvm:section-flags .init_array true true false)\n(llvm:section-flags .eh_frame true false false)\n(llvm:section-flags .eh_frame_hdr true false false)\n(llvm:section-flags .rodata true false false)\n(llvm:section-flags .fini true false true)\n(llvm:section-flags .text true false true)\n(llvm:section-flags .plt true false true)\n(llvm:section-flags .init true false true)\n(llvm:section-flags .rela.plt true false false)\n(llvm:section-flags .rela.dyn true false false)\n(llvm:section-flags .gnu.version_r true false false)\n(llvm:section-flags .gnu.version true false false)\n(llvm:section-flags .dynstr true false false)\n(llvm:section-flags .dynsym true false false)\n(llvm:section-flags .gnu.hash true false false)\n(llvm:section-flags .note.ABI-tag true false false)\n(llvm:section-flags .note.gnu.build-id true false false)\n(llvm:section-flags .interp true false false)\n(llvm:symbol-entry abort 0 0 0 0)\n(llvm:symbol-entry __cxa_finalize 0 0 0 0)\n(llvm:symbol-entry __libc_start_main 0 0 0 0)\n(llvm:symbol-entry _init 1408 0 1408 1408)\n(llvm:symbol-entry main 1812 16 1812 1812)\n(llvm:symbol-entry _start 1536 52 1536 1536)\n(llvm:symbol-entry abort@GLIBC_2.17 0 0 0 0)\n(llvm:symbol-entry _fini 1828 0 1828 1828)\n(llvm:symbol-entry __cxa_finalize@GLIBC_2.17 0 0 0 0)\n(llvm:symbol-entry __libc_start_main@GLIBC_2.34 0 0 0 0)\n(llvm:symbol-entry frame_dummy 1808 0 1808 1808)\n(llvm:symbol-entry __do_global_dtors_aux 1728 0 1728 1728)\n(llvm:symbol-entry register_tm_clones 1664 0 1664 1664)\n(llvm:symbol-entry deregister_tm_clones 1616 0 1616 1616)\n(llvm:symbol-entry call_weak_fn 1588 20 1588 1588)\n(mapped 0 2092 0)\n(mapped 69064 616 3528)\n(named-region 0 2092 02)\n(named-region 69064 624 03)\n(named-region 568 27 .interp)\n(named-region 596 36 .note.gnu.build-id)\n(named-region 632 32 .note.ABI-tag)\n(named-region 664 28 .gnu.hash)\n(named-region 696 216 .dynsym)\n(named-region 912 141 .dynstr)\n(named-region 1054 18 .gnu.version)\n(named-region 1072 48 .gnu.version_r)\n(named-region 1120 192 .rela.dyn)\n(named-region 1312 96 .rela.plt)\n(named-region 1408 24 .init)\n(named-region 1440 96 .plt)\n(named-region 1536 292 .text)\n(named-region 1828 20 .fini)\n(named-region 1848 4 .rodata)\n(named-region 1852 60 .eh_frame_hdr)\n(named-region 1912 180 .eh_frame)\n(named-region 69064 8 .init_array)\n(named-region 69072 8 .fini_array)\n(named-region 69080 480 .dynamic)\n(named-region 69560 48 .got)\n(named-region 69608 56 .got.plt)\n(named-region 69664 16 .data)\n(named-region 69680 8 .bss)\n(named-region 0 71 .comment)\n(named-region 0 2112 .symtab)\n(named-region 0 561 .strtab)\n(named-region 0 259 .shstrtab)\n(named-symbol 1588 call_weak_fn)\n(named-symbol 1616 deregister_tm_clones)\n(named-symbol 1664 register_tm_clones)\n(named-symbol 1728 __do_global_dtors_aux)\n(named-symbol 1808 frame_dummy)\n(named-symbol 0 __libc_start_main@GLIBC_2.34)\n(named-symbol 0 __cxa_finalize@GLIBC_2.17)\n(named-symbol 1828 _fini)\n(named-symbol 0 abort@GLIBC_2.17)\n(named-symbol 1536 _start)\n(named-symbol 1812 main)\n(named-symbol 1408 _init)\n(named-symbol 0 __libc_start_main)\n(named-symbol 0 __cxa_finalize)\n(named-symbol 0 abort)\n(require libc.so.6)\n(section 568 27)\n(section 596 36)\n(section 632 32)\n(section 664 28)\n(section 696 216)\n(section 912 141)\n(section 1054 18)\n(section 1072 48)\n(section 1120 192)\n(section 1312 96)\n(section 1408 24)\n(section 1440 96)\n(section 1536 292)\n(section 1828 20)\n(section 1848 4)\n(section 1852 60)\n(section 1912 180)\n(section 69064 8)\n(section 69072 8)\n(section 69080 480)\n(section 69560 48)\n(section 69608 56)\n(section 69664 16)\n(section 69680 8)\n(section 0 71)\n(section 0 2112)\n(section 0 561)\n(section 0 259)\n(segment 0 2092 true false true)\n(segment 69064 624 true true false)\n(subarch v8)\n(symbol-chunk 1588 20 1588)\n(symbol-chunk 1536 52 1536)\n(symbol-chunk 1812 16 1812)\n(symbol-value 1588 1588)\n(symbol-value 1616 1616)\n(symbol-value 1664 1664)\n(symbol-value 1728 1728)\n(symbol-value 1808 1808)\n(symbol-value 1828 1828)\n(symbol-value 1536 1536)\n(symbol-value 1812 1812)\n(symbol-value 1408 1408)\n(symbol-value 0 0)\n(system \"\")\n(vendor \"\")\n"), -Attr("abi-name","\"aarch64-linux-gnu-elf\"")]), -Sections([Section(".shstrtab", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x00\x06\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xf0\x1b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x38\x00\x09\x00\x40\x00\x1d\x00\x1c\x00\x06\x00\x00\x00\x04\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x04\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2c\x08\x00\x00\x00\x00\x00\x00\x2c\x08\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x01\x00\x00\x00\x06\x00\x00\x00\xc8\x0d\x00\x00\x00\x00\x00\x00\xc8\x0d\x01\x00\x00\x00\x00\x00\xc8\x0d\x01"), -Section(".strtab", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x00\x06\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xf0\x1b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x38\x00\x09\x00\x40\x00\x1d\x00\x1c\x00\x06\x00\x00\x00\x04\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x04\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2c\x08\x00\x00\x00\x00\x00\x00\x2c\x08\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x01\x00\x00\x00\x06\x00\x00\x00\xc8\x0d\x00\x00\x00\x00\x00\x00\xc8\x0d\x01\x00\x00\x00\x00\x00\xc8\x0d\x01\x00\x00\x00\x00\x00\x68\x02\x00\x00\x00\x00\x00\x00\x70\x02\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x02\x00\x00\x00\x06\x00\x00\x00\xd8\x0d\x00\x00\x00\x00\x00\x00\xd8\x0d\x01\x00\x00\x00\x00\x00\xd8\x0d\x01\x00\x00\x00\x00\x00\xe0\x01\x00\x00\x00\x00\x00\x00\xe0\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x04\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x50\xe5\x74\x64\x04\x00\x00\x00\x3c\x07\x00\x00\x00\x00\x00\x00\x3c\x07\x00\x00\x00\x00\x00\x00\x3c\x07\x00\x00\x00\x00\x00\x00\x3c\x00\x00\x00\x00\x00\x00\x00\x3c\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x51\xe5\x74\x64\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x52\xe5\x74\x64\x04\x00\x00\x00\xc8\x0d\x00\x00\x00\x00\x00\x00\xc8\x0d\x01\x00\x00\x00\x00\x00\xc8\x0d\x01\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x01"), -Section(".comment", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x00\x06\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xf0\x1b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x38\x00\x09\x00\x40\x00\x1d\x00\x1c\x00\x06\x00\x00\x00\x04\x00\x00"), -Section(".interp", 0x238, "\x2f\x6c\x69\x62\x2f\x6c\x64\x2d\x6c\x69\x6e\x75\x78\x2d\x61\x61\x72\x63\x68\x36\x34\x2e\x73\x6f\x2e\x31\x00"), -Section(".note.gnu.build-id", 0x254, "\x04\x00\x00\x00\x14\x00\x00\x00\x03\x00\x00\x00\x47\x4e\x55\x00\x5c\xab\x71\x14\xca\x74\xa4\xe1\xe7\x80\xa2\xa9\x56\x5e\x14\x19\x23\xfa\xfd\xa4"), -Section(".note.ABI-tag", 0x278, "\x04\x00\x00\x00\x10\x00\x00\x00\x01\x00\x00\x00\x47\x4e\x55\x00\x00\x00\x00\x00\x03\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00"), -Section(".gnu.hash", 0x298, "\x01\x00\x00\x00\x01\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".dynsym", 0x2B8, "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x0b\x00\x80\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x17\x00\x20\x10\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x48\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x22\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x22\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x73\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".dynstr", 0x390, "\x00\x5f\x5f\x63\x78\x61\x5f\x66\x69\x6e\x61\x6c\x69\x7a\x65\x00\x5f\x5f\x6c\x69\x62\x63\x5f\x73\x74\x61\x72\x74\x5f\x6d\x61\x69\x6e\x00\x61\x62\x6f\x72\x74\x00\x6c\x69\x62\x63\x2e\x73\x6f\x2e\x36\x00\x47\x4c\x49\x42\x43\x5f\x32\x2e\x31\x37\x00\x47\x4c\x49\x42\x43\x5f\x32\x2e\x33\x34\x00\x5f\x49\x54\x4d\x5f\x64\x65\x72\x65\x67\x69\x73\x74\x65\x72\x54\x4d\x43\x6c\x6f\x6e\x65\x54\x61\x62\x6c\x65\x00\x5f\x5f\x67\x6d\x6f\x6e\x5f\x73\x74\x61\x72\x74\x5f\x5f\x00\x5f\x49\x54\x4d\x5f\x72\x65\x67\x69\x73\x74\x65\x72\x54\x4d\x43\x6c\x6f\x6e\x65\x54\x61\x62\x6c\x65\x00"), -Section(".gnu.version", 0x41E, "\x00\x00\x00\x00\x00\x00\x02\x00\x01\x00\x03\x00\x01\x00\x03\x00\x01\x00"), -Section(".gnu.version_r", 0x430, "\x01\x00\x02\x00\x28\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x97\x91\x96\x06\x00\x00\x03\x00\x32\x00\x00\x00\x10\x00\x00\x00\xb4\x91\x96\x06\x00\x00\x02\x00\x3d\x00\x00\x00\x00\x00\x00\x00"), -Section(".rela.dyn", 0x460, "\xc8\x0d\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x10\x07\x00\x00\x00\x00\x00\x00\xd0\x0d\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\xc0\x06\x00\x00\x00\x00\x00\x00\xd8\x0f\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x14\x07\x00\x00\x00\x00\x00\x00\x28\x10\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x28\x10\x01\x00\x00\x00\x00\x00\xc0\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xc8\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xd0\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe0\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".rela.plt", 0x520, "\x00\x10\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x08\x10\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x10\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x18\x10\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".init", 0x580, "\x1f\x20\x03\xd5\xfd\x7b\xbf\xa9\xfd\x03\x00\x91\x2a\x00\x00\x94\xfd\x7b\xc1\xa8\xc0\x03\x5f\xd6"), -Section(".plt", 0x5A0, "\xf0\x7b\xbf\xa9\x90\x00\x00\x90\x11\xfe\x47\xf9\x10\xe2\x3f\x91\x20\x02\x1f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x90\x00\x00\xb0\x11\x02\x40\xf9\x10\x02\x00\x91\x20\x02\x1f\xd6\x90\x00\x00\xb0\x11\x06\x40\xf9\x10\x22\x00\x91\x20\x02\x1f\xd6\x90\x00\x00\xb0\x11\x0a\x40\xf9\x10\x42\x00\x91\x20\x02\x1f\xd6\x90\x00\x00\xb0\x11\x0e\x40\xf9\x10\x62\x00\x91\x20\x02\x1f\xd6"), -Section(".text", 0x600, "\x1f\x20\x03\xd5\x1d\x00\x80\xd2\x1e\x00\x80\xd2\xe5\x03\x00\xaa\xe1\x03\x40\xf9\xe2\x23\x00\x91\xe6\x03\x00\x91\x80\x00\x00\x90\x00\xec\x47\xf9\x03\x00\x80\xd2\x04\x00\x80\xd2\xe5\xff\xff\x97\xf0\xff\xff\x97\x80\x00\x00\x90\x00\xe8\x47\xf9\x40\x00\x00\xb4\xe8\xff\xff\x17\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x80\x00\x00\xb0\x00\xc0\x00\x91\x81\x00\x00\xb0\x21\xc0\x00\x91\x3f\x00\x00\xeb\xc0\x00\x00\x54\x81\x00\x00\x90\x21\xe0\x47\xf9\x61\x00\x00\xb4\xf0\x03\x01\xaa\x00\x02\x1f\xd6\xc0\x03\x5f\xd6\x80\x00\x00\xb0\x00\xc0\x00\x91\x81\x00\x00\xb0\x21\xc0\x00\x91\x21\x00\x00\xcb\x22\xfc\x7f\xd3\x41\x0c\x81\x8b\x21\xfc\x41\x93\xc1\x00\x00\xb4\x82\x00\x00\x90\x42\xf0\x47\xf9\x62\x00\x00\xb4\xf0\x03\x02\xaa\x00\x02\x1f\xd6\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\xfd\x7b\xbe\xa9\xfd\x03\x00\x91\xf3\x0b\x00\xf9\x93\x00\x00\xb0\x60\xc2\x40\x39\x40\x01\x00\x35\x80\x00\x00\x90\x00\xe4\x47\xf9\x80\x00\x00\xb4\x80\x00\x00\xb0\x00\x14\x40\xf9\xb9\xff\xff\x97\xd8\xff\xff\x97\x20\x00\x80\x52\x60\xc2\x00\x39\xf3\x0b\x40\xf9\xfd\x7b\xc2\xa8\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\xdc\xff\xff\x17\x48\x00\x80\x52\x1f\x00\x00\x71\x00\x05\x88\x1a\xc0\x03\x5f\xd6"), -Section(".fini", 0x724, "\x1f\x20\x03\xd5\xfd\x7b\xbf\xa9\xfd\x03\x00\x91\xfd\x7b\xc1\xa8\xc0\x03\x5f\xd6"), -Section(".rodata", 0x738, "\x01\x00\x02\x00"), -Section(".eh_frame_hdr", 0x73C, "\x01\x1b\x03\x3b\x38\x00\x00\x00\x06\x00\x00\x00\xc4\xfe\xff\xff\x50\x00\x00\x00\x14\xff\xff\xff\x64\x00\x00\x00\x44\xff\xff\xff\x78\x00\x00\x00\x84\xff\xff\xff\x8c\x00\x00\x00\xd4\xff\xff\xff\xb0\x00\x00\x00\xd8\xff\xff\xff\xd8\x00\x00\x00"), -Section(".eh_frame", 0x778, "\x10\x00\x00\x00\x00\x00\x00\x00\x01\x7a\x52\x00\x04\x78\x1e\x01\x1b\x0c\x1f\x00\x10\x00\x00\x00\x18\x00\x00\x00\x6c\xfe\xff\xff\x34\x00\x00\x00\x00\x41\x07\x1e\x10\x00\x00\x00\x2c\x00\x00\x00\xa8\xfe\xff\xff\x30\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x40\x00\x00\x00\xc4\xfe\xff\xff\x3c\x00\x00\x00\x00\x00\x00\x00\x20\x00\x00\x00\x54\x00\x00\x00\xf0\xfe\xff\xff\x48\x00\x00\x00\x00\x41\x0e\x20\x9d\x04\x9e\x03\x42\x93\x02\x4e\xde\xdd\xd3\x0e\x00\x00\x00\x00\x10\x00\x00\x00\x78\x00\x00\x00\x1c\xff\xff\xff\x04\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x01\x7a\x52\x00\x01\x7c\x1e\x01\x1b\x0c\x1f\x00\x10\x00\x00\x00\x18\x00\x00\x00\xf8\xfe\xff\xff\x10\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".fini_array", 0x10DD0, "\xc0\x06\x00\x00\x00\x00\x00\x00"), -Section(".dynamic", 0x10DD8, "\x01\x00\x00\x00\x00\x00\x00\x00\x28\x00\x00\x00\x00\x00\x00\x00\x0c\x00\x00\x00\x00\x00\x00\x00\x80\x05\x00\x00\x00\x00\x00\x00\x0d\x00\x00\x00\x00\x00\x00\x00\x24\x07\x00\x00\x00\x00\x00\x00\x19\x00\x00\x00\x00\x00\x00\x00\xc8\x0d\x01\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x1a\x00\x00\x00\x00\x00\x00\x00\xd0\x0d\x01\x00\x00\x00\x00\x00\x1c\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\xf5\xfe\xff\x6f\x00\x00\x00\x00\x98\x02\x00\x00\x00\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x90\x03\x00\x00\x00\x00\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\xb8\x02\x00\x00\x00\x00\x00\x00\x0a\x00\x00\x00\x00\x00\x00\x00\x8d\x00\x00\x00\x00\x00\x00\x00\x0b\x00\x00\x00\x00\x00\x00\x00\x18\x00\x00\x00\x00\x00\x00\x00\x15\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\xe8\x0f\x01\x00\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x60\x00\x00\x00\x00\x00\x00\x00\x14\x00\x00\x00\x00\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x17\x00\x00\x00\x00\x00\x00\x00\x20\x05\x00\x00\x00\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x60\x04\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\xc0\x00\x00\x00\x00\x00\x00\x00\x09\x00\x00\x00\x00\x00\x00\x00\x18\x00\x00\x00\x00\x00\x00\x00\xfb\xff\xff\x6f\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\xfe\xff\xff\x6f\x00\x00\x00\x00\x30\x04\x00\x00\x00\x00\x00\x00\xff\xff\xff\x6f\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\xf0\xff\xff\x6f\x00\x00\x00\x00\x1e\x04\x00\x00\x00\x00\x00\x00\xf9\xff\xff\x6f\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".init_array", 0x10DC8, "\x10\x07\x00\x00\x00\x00\x00\x00"), -Section(".got", 0x10FB8, "\xd8\x0d\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x14\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".got.plt", 0x10FE8, "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xa0\x05\x00\x00\x00\x00\x00\x00\xa0\x05\x00\x00\x00\x00\x00\x00\xa0\x05\x00\x00\x00\x00\x00\x00\xa0\x05\x00\x00\x00\x00\x00\x00"), -Section(".data", 0x11020, "\x00\x00\x00\x00\x00\x00\x00\x00\x28\x10\x01\x00\x00\x00\x00\x00")]), -Memmap([Annotation(Region(0x0,0x82B), Attr("segment","02 0 2092")), -Annotation(Region(0x600,0x633), Attr("symbol","\"_start\"")), -Annotation(Region(0x0,0x102), Attr("section","\".shstrtab\"")), -Annotation(Region(0x0,0x230), Attr("section","\".strtab\"")), -Annotation(Region(0x0,0x46), Attr("section","\".comment\"")), -Annotation(Region(0x238,0x252), Attr("section","\".interp\"")), -Annotation(Region(0x254,0x277), Attr("section","\".note.gnu.build-id\"")), -Annotation(Region(0x278,0x297), Attr("section","\".note.ABI-tag\"")), -Annotation(Region(0x298,0x2B3), Attr("section","\".gnu.hash\"")), -Annotation(Region(0x2B8,0x38F), Attr("section","\".dynsym\"")), -Annotation(Region(0x390,0x41C), Attr("section","\".dynstr\"")), -Annotation(Region(0x41E,0x42F), Attr("section","\".gnu.version\"")), -Annotation(Region(0x430,0x45F), Attr("section","\".gnu.version_r\"")), -Annotation(Region(0x460,0x51F), Attr("section","\".rela.dyn\"")), -Annotation(Region(0x520,0x57F), Attr("section","\".rela.plt\"")), -Annotation(Region(0x580,0x597), Attr("section","\".init\"")), -Annotation(Region(0x5A0,0x5FF), Attr("section","\".plt\"")), -Annotation(Region(0x580,0x597), Attr("code-region","()")), -Annotation(Region(0x5A0,0x5FF), Attr("code-region","()")), -Annotation(Region(0x600,0x633), Attr("symbol-info","_start 0x600 52")), -Annotation(Region(0x634,0x647), Attr("symbol","\"call_weak_fn\"")), -Annotation(Region(0x634,0x647), Attr("symbol-info","call_weak_fn 0x634 20")), -Annotation(Region(0x600,0x723), Attr("section","\".text\"")), -Annotation(Region(0x600,0x723), Attr("code-region","()")), -Annotation(Region(0x714,0x723), Attr("symbol","\"main\"")), -Annotation(Region(0x714,0x723), Attr("symbol-info","main 0x714 16")), -Annotation(Region(0x724,0x737), Attr("section","\".fini\"")), -Annotation(Region(0x724,0x737), Attr("code-region","()")), -Annotation(Region(0x738,0x73B), Attr("section","\".rodata\"")), -Annotation(Region(0x73C,0x777), Attr("section","\".eh_frame_hdr\"")), -Annotation(Region(0x778,0x82B), Attr("section","\".eh_frame\"")), -Annotation(Region(0x10DC8,0x1102F), Attr("segment","03 0x10DC8 624")), -Annotation(Region(0x10DD0,0x10DD7), Attr("section","\".fini_array\"")), -Annotation(Region(0x10DD8,0x10FB7), Attr("section","\".dynamic\"")), -Annotation(Region(0x10DC8,0x10DCF), Attr("section","\".init_array\"")), -Annotation(Region(0x10FB8,0x10FE7), Attr("section","\".got\"")), -Annotation(Region(0x10FE8,0x1101F), Attr("section","\".got.plt\"")), -Annotation(Region(0x11020,0x1102F), Attr("section","\".data\""))]), -Program(Tid(1_434, "%0000059a"), Attrs([]), - Subs([Sub(Tid(1_384, "@__cxa_finalize"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x5D0"), -Attr("stub","()")]), "__cxa_finalize", Args([Arg(Tid(1_435, "%0000059b"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("__cxa_finalize_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(804, "@__cxa_finalize"), - Attrs([Attr("address","0x5D0")]), Phis([]), -Defs([Def(Tid(1_052, "%0000041c"), Attrs([Attr("address","0x5D0"), -Attr("insn","adrp x16, #69632")]), Var("R16",Imm(64)), Int(69632,64)), -Def(Tid(1_059, "%00000423"), Attrs([Attr("address","0x5D4"), -Attr("insn","ldr x17, [x16, #0x8]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(1_065, "%00000429"), Attrs([Attr("address","0x5D8"), -Attr("insn","add x16, x16, #0x8")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(8,64)))]), Jmps([Call(Tid(1_070, "%0000042e"), - Attrs([Attr("address","0x5DC"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), -Sub(Tid(1_385, "@__do_global_dtors_aux"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x6C0")]), - "__do_global_dtors_aux", Args([Arg(Tid(1_436, "%0000059c"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("__do_global_dtors_aux_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(606, "@__do_global_dtors_aux"), - Attrs([Attr("address","0x6C0")]), Phis([]), Defs([Def(Tid(610, "%00000262"), - Attrs([Attr("address","0x6C0"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("#3",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(18446744073709551584,64))), -Def(Tid(616, "%00000268"), Attrs([Attr("address","0x6C0"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("#3",Imm(64)),Var("R29",Imm(64)),LittleEndian(),64)), -Def(Tid(622, "%0000026e"), Attrs([Attr("address","0x6C0"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("#3",Imm(64)),Int(8,64)),Var("R30",Imm(64)),LittleEndian(),64)), -Def(Tid(626, "%00000272"), Attrs([Attr("address","0x6C0"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("R31",Imm(64)), -Var("#3",Imm(64))), Def(Tid(632, "%00000278"), - Attrs([Attr("address","0x6C4"), Attr("insn","mov x29, sp")]), - Var("R29",Imm(64)), Var("R31",Imm(64))), Def(Tid(640, "%00000280"), - Attrs([Attr("address","0x6C8"), Attr("insn","str x19, [sp, #0x10]")]), - Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(16,64)),Var("R19",Imm(64)),LittleEndian(),64)), -Def(Tid(645, "%00000285"), Attrs([Attr("address","0x6CC"), -Attr("insn","adrp x19, #69632")]), Var("R19",Imm(64)), Int(69632,64)), -Def(Tid(652, "%0000028c"), Attrs([Attr("address","0x6D0"), -Attr("insn","ldrb w0, [x19, #0x30]")]), Var("R0",Imm(64)), -UNSIGNED(64,Load(Var("mem",Mem(64,8)),PLUS(Var("R19",Imm(64)),Int(48,64)),LittleEndian(),8)))]), -Jmps([Goto(Tid(659, "%00000293"), Attrs([Attr("address","0x6D4"), -Attr("insn","cbnz w0, #0x28")]), - NEQ(Extract(31,0,Var("R0",Imm(64))),Int(0,32)), -Direct(Tid(657, "%00000291"))), Goto(Tid(1_424, "%00000590"), Attrs([]), - Int(1,1), Direct(Tid(749, "%000002ed")))])), Blk(Tid(749, "%000002ed"), - Attrs([Attr("address","0x6D8")]), Phis([]), Defs([Def(Tid(752, "%000002f0"), - Attrs([Attr("address","0x6D8"), Attr("insn","adrp x0, #65536")]), - Var("R0",Imm(64)), Int(65536,64)), Def(Tid(759, "%000002f7"), - Attrs([Attr("address","0x6DC"), Attr("insn","ldr x0, [x0, #0xfc8]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(4040,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(765, "%000002fd"), Attrs([Attr("address","0x6E0"), -Attr("insn","cbz x0, #0x10")]), EQ(Var("R0",Imm(64)),Int(0,64)), -Direct(Tid(763, "%000002fb"))), Goto(Tid(1_425, "%00000591"), Attrs([]), - Int(1,1), Direct(Tid(788, "%00000314")))])), Blk(Tid(788, "%00000314"), - Attrs([Attr("address","0x6E4")]), Phis([]), Defs([Def(Tid(791, "%00000317"), - Attrs([Attr("address","0x6E4"), Attr("insn","adrp x0, #69632")]), - Var("R0",Imm(64)), Int(69632,64)), Def(Tid(798, "%0000031e"), - Attrs([Attr("address","0x6E8"), Attr("insn","ldr x0, [x0, #0x28]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(40,64)),LittleEndian(),64)), -Def(Tid(803, "%00000323"), Attrs([Attr("address","0x6EC"), -Attr("insn","bl #-0x11c")]), Var("R30",Imm(64)), Int(1776,64))]), -Jmps([Call(Tid(806, "%00000326"), Attrs([Attr("address","0x6EC"), -Attr("insn","bl #-0x11c")]), Int(1,1), -(Direct(Tid(1_384, "@__cxa_finalize")),Direct(Tid(763, "%000002fb"))))])), -Blk(Tid(763, "%000002fb"), Attrs([Attr("address","0x6F0")]), Phis([]), -Defs([Def(Tid(771, "%00000303"), Attrs([Attr("address","0x6F0"), -Attr("insn","bl #-0xa0")]), Var("R30",Imm(64)), Int(1780,64))]), -Jmps([Call(Tid(773, "%00000305"), Attrs([Attr("address","0x6F0"), -Attr("insn","bl #-0xa0")]), Int(1,1), -(Direct(Tid(1_398, "@deregister_tm_clones")),Direct(Tid(775, "%00000307"))))])), -Blk(Tid(775, "%00000307"), Attrs([Attr("address","0x6F4")]), Phis([]), -Defs([Def(Tid(778, "%0000030a"), Attrs([Attr("address","0x6F4"), -Attr("insn","mov w0, #0x1")]), Var("R0",Imm(64)), Int(1,64)), -Def(Tid(786, "%00000312"), Attrs([Attr("address","0x6F8"), -Attr("insn","strb w0, [x19, #0x30]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R19",Imm(64)),Int(48,64)),Extract(7,0,Var("R0",Imm(64))),LittleEndian(),8))]), -Jmps([Goto(Tid(1_426, "%00000592"), Attrs([]), Int(1,1), -Direct(Tid(657, "%00000291")))])), Blk(Tid(657, "%00000291"), - Attrs([Attr("address","0x6FC")]), Phis([]), Defs([Def(Tid(667, "%0000029b"), - Attrs([Attr("address","0x6FC"), Attr("insn","ldr x19, [sp, #0x10]")]), - Var("R19",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(16,64)),LittleEndian(),64)), -Def(Tid(674, "%000002a2"), Attrs([Attr("address","0x700"), -Attr("insn","ldp x29, x30, [sp], #0x20")]), Var("R29",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(679, "%000002a7"), Attrs([Attr("address","0x700"), -Attr("insn","ldp x29, x30, [sp], #0x20")]), Var("R30",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(683, "%000002ab"), Attrs([Attr("address","0x700"), -Attr("insn","ldp x29, x30, [sp], #0x20")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(32,64)))]), Jmps([Call(Tid(688, "%000002b0"), - Attrs([Attr("address","0x704"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), Sub(Tid(1_389, "@__libc_start_main"), - Attrs([Attr("c.proto","signed (*)(signed (*)(signed , char** , char** );* main, signed , char** , \nvoid* auxv)"), -Attr("address","0x5C0"), Attr("stub","()")]), "__libc_start_main", - Args([Arg(Tid(1_437, "%0000059d"), - Attrs([Attr("c.layout","**[ : 64]"), -Attr("c.data","Top:u64 ptr ptr"), -Attr("c.type","signed (*)(signed , char** , char** );*")]), - Var("__libc_start_main_main",Imm(64)), Var("R0",Imm(64)), In()), -Arg(Tid(1_438, "%0000059e"), Attrs([Attr("c.layout","[signed : 32]"), -Attr("c.data","Top:u32"), Attr("c.type","signed")]), - Var("__libc_start_main_arg2",Imm(32)), LOW(32,Var("R1",Imm(64))), In()), -Arg(Tid(1_439, "%0000059f"), Attrs([Attr("c.layout","**[char : 8]"), -Attr("c.data","Top:u8 ptr ptr"), Attr("c.type","char**")]), - Var("__libc_start_main_arg3",Imm(64)), Var("R2",Imm(64)), Both()), -Arg(Tid(1_440, "%000005a0"), Attrs([Attr("c.layout","*[ : 8]"), -Attr("c.data","{} ptr"), Attr("c.type","void*")]), - Var("__libc_start_main_auxv",Imm(64)), Var("R3",Imm(64)), Both()), -Arg(Tid(1_441, "%000005a1"), Attrs([Attr("c.layout","[signed : 32]"), -Attr("c.data","Top:u32"), Attr("c.type","signed")]), - Var("__libc_start_main_result",Imm(32)), LOW(32,Var("R0",Imm(64))), -Out())]), Blks([Blk(Tid(439, "@__libc_start_main"), - Attrs([Attr("address","0x5C0")]), Phis([]), -Defs([Def(Tid(1_030, "%00000406"), Attrs([Attr("address","0x5C0"), -Attr("insn","adrp x16, #69632")]), Var("R16",Imm(64)), Int(69632,64)), -Def(Tid(1_037, "%0000040d"), Attrs([Attr("address","0x5C4"), -Attr("insn","ldr x17, [x16]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R16",Imm(64)),LittleEndian(),64)), -Def(Tid(1_043, "%00000413"), Attrs([Attr("address","0x5C8"), -Attr("insn","add x16, x16, #0x0")]), Var("R16",Imm(64)), -Var("R16",Imm(64)))]), Jmps([Call(Tid(1_048, "%00000418"), - Attrs([Attr("address","0x5CC"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), Sub(Tid(1_390, "@_fini"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x724")]), - "_fini", Args([Arg(Tid(1_442, "%000005a2"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("_fini_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(31, "@_fini"), - Attrs([Attr("address","0x724")]), Phis([]), Defs([Def(Tid(37, "%00000025"), - Attrs([Attr("address","0x728"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("#0",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(18446744073709551600,64))), -Def(Tid(43, "%0000002b"), Attrs([Attr("address","0x728"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("#0",Imm(64)),Var("R29",Imm(64)),LittleEndian(),64)), -Def(Tid(49, "%00000031"), Attrs([Attr("address","0x728"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("#0",Imm(64)),Int(8,64)),Var("R30",Imm(64)),LittleEndian(),64)), -Def(Tid(53, "%00000035"), Attrs([Attr("address","0x728"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("R31",Imm(64)), -Var("#0",Imm(64))), Def(Tid(59, "%0000003b"), Attrs([Attr("address","0x72C"), -Attr("insn","mov x29, sp")]), Var("R29",Imm(64)), Var("R31",Imm(64))), -Def(Tid(66, "%00000042"), Attrs([Attr("address","0x730"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R29",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(71, "%00000047"), Attrs([Attr("address","0x730"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R30",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(75, "%0000004b"), Attrs([Attr("address","0x730"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(16,64)))]), Jmps([Call(Tid(80, "%00000050"), - Attrs([Attr("address","0x734"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), Sub(Tid(1_391, "@_init"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x580")]), - "_init", Args([Arg(Tid(1_443, "%000005a3"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("_init_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(1_222, "@_init"), - Attrs([Attr("address","0x580")]), Phis([]), -Defs([Def(Tid(1_228, "%000004cc"), Attrs([Attr("address","0x584"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("#6",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(18446744073709551600,64))), -Def(Tid(1_234, "%000004d2"), Attrs([Attr("address","0x584"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("#6",Imm(64)),Var("R29",Imm(64)),LittleEndian(),64)), -Def(Tid(1_240, "%000004d8"), Attrs([Attr("address","0x584"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("#6",Imm(64)),Int(8,64)),Var("R30",Imm(64)),LittleEndian(),64)), -Def(Tid(1_244, "%000004dc"), Attrs([Attr("address","0x584"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("R31",Imm(64)), -Var("#6",Imm(64))), Def(Tid(1_250, "%000004e2"), - Attrs([Attr("address","0x588"), Attr("insn","mov x29, sp")]), - Var("R29",Imm(64)), Var("R31",Imm(64))), Def(Tid(1_255, "%000004e7"), - Attrs([Attr("address","0x58C"), Attr("insn","bl #0xa8")]), - Var("R30",Imm(64)), Int(1424,64))]), Jmps([Call(Tid(1_257, "%000004e9"), - Attrs([Attr("address","0x58C"), Attr("insn","bl #0xa8")]), Int(1,1), -(Direct(Tid(1_396, "@call_weak_fn")),Direct(Tid(1_259, "%000004eb"))))])), -Blk(Tid(1_259, "%000004eb"), Attrs([Attr("address","0x590")]), Phis([]), -Defs([Def(Tid(1_264, "%000004f0"), Attrs([Attr("address","0x590"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R29",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(1_269, "%000004f5"), Attrs([Attr("address","0x590"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R30",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(1_273, "%000004f9"), Attrs([Attr("address","0x590"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(16,64)))]), Jmps([Call(Tid(1_278, "%000004fe"), - Attrs([Attr("address","0x594"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), Sub(Tid(1_392, "@_start"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x600"), -Attr("stub","()"), Attr("entry-point","()")]), "_start", - Args([Arg(Tid(1_444, "%000005a4"), Attrs([Attr("c.layout","[signed : 32]"), -Attr("c.data","Top:u32"), Attr("c.type","signed")]), - Var("_start_result",Imm(32)), LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(376, "@_start"), Attrs([Attr("address","0x600")]), Phis([]), -Defs([Def(Tid(381, "%0000017d"), Attrs([Attr("address","0x604"), -Attr("insn","mov x29, #0x0")]), Var("R29",Imm(64)), Int(0,64)), -Def(Tid(386, "%00000182"), Attrs([Attr("address","0x608"), -Attr("insn","mov x30, #0x0")]), Var("R30",Imm(64)), Int(0,64)), -Def(Tid(392, "%00000188"), Attrs([Attr("address","0x60C"), -Attr("insn","mov x5, x0")]), Var("R5",Imm(64)), Var("R0",Imm(64))), -Def(Tid(399, "%0000018f"), Attrs([Attr("address","0x610"), -Attr("insn","ldr x1, [sp]")]), Var("R1",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(405, "%00000195"), Attrs([Attr("address","0x614"), -Attr("insn","add x2, sp, #0x8")]), Var("R2",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(8,64))), Def(Tid(411, "%0000019b"), - Attrs([Attr("address","0x618"), Attr("insn","mov x6, sp")]), - Var("R6",Imm(64)), Var("R31",Imm(64))), Def(Tid(416, "%000001a0"), - Attrs([Attr("address","0x61C"), Attr("insn","adrp x0, #65536")]), - Var("R0",Imm(64)), Int(65536,64)), Def(Tid(423, "%000001a7"), - Attrs([Attr("address","0x620"), Attr("insn","ldr x0, [x0, #0xfd8]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(4056,64)),LittleEndian(),64)), -Def(Tid(428, "%000001ac"), Attrs([Attr("address","0x624"), -Attr("insn","mov x3, #0x0")]), Var("R3",Imm(64)), Int(0,64)), -Def(Tid(433, "%000001b1"), Attrs([Attr("address","0x628"), -Attr("insn","mov x4, #0x0")]), Var("R4",Imm(64)), Int(0,64)), -Def(Tid(438, "%000001b6"), Attrs([Attr("address","0x62C"), -Attr("insn","bl #-0x6c")]), Var("R30",Imm(64)), Int(1584,64))]), -Jmps([Call(Tid(441, "%000001b9"), Attrs([Attr("address","0x62C"), -Attr("insn","bl #-0x6c")]), Int(1,1), -(Direct(Tid(1_389, "@__libc_start_main")),Direct(Tid(443, "%000001bb"))))])), -Blk(Tid(443, "%000001bb"), Attrs([Attr("address","0x630")]), Phis([]), -Defs([Def(Tid(446, "%000001be"), Attrs([Attr("address","0x630"), -Attr("insn","bl #-0x40")]), Var("R30",Imm(64)), Int(1588,64))]), -Jmps([Call(Tid(449, "%000001c1"), Attrs([Attr("address","0x630"), -Attr("insn","bl #-0x40")]), Int(1,1), -(Direct(Tid(1_395, "@abort")),Direct(Tid(1_427, "%00000593"))))])), -Blk(Tid(1_427, "%00000593"), Attrs([]), Phis([]), Defs([]), -Jmps([Call(Tid(1_428, "%00000594"), Attrs([]), Int(1,1), -(Direct(Tid(1_396, "@call_weak_fn")),))]))])), Sub(Tid(1_395, "@abort"), - Attrs([Attr("noreturn","()"), Attr("c.proto","void (*)(void)"), -Attr("address","0x5F0"), Attr("stub","()")]), "abort", Args([]), -Blks([Blk(Tid(447, "@abort"), Attrs([Attr("address","0x5F0")]), Phis([]), -Defs([Def(Tid(1_096, "%00000448"), Attrs([Attr("address","0x5F0"), -Attr("insn","adrp x16, #69632")]), Var("R16",Imm(64)), Int(69632,64)), -Def(Tid(1_103, "%0000044f"), Attrs([Attr("address","0x5F4"), -Attr("insn","ldr x17, [x16, #0x18]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(24,64)),LittleEndian(),64)), -Def(Tid(1_109, "%00000455"), Attrs([Attr("address","0x5F8"), -Attr("insn","add x16, x16, #0x18")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(24,64)))]), Jmps([Call(Tid(1_114, "%0000045a"), - Attrs([Attr("address","0x5FC"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), Sub(Tid(1_396, "@call_weak_fn"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x634")]), - "call_weak_fn", Args([Arg(Tid(1_445, "%000005a5"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("call_weak_fn_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(451, "@call_weak_fn"), - Attrs([Attr("address","0x634")]), Phis([]), Defs([Def(Tid(454, "%000001c6"), - Attrs([Attr("address","0x634"), Attr("insn","adrp x0, #65536")]), - Var("R0",Imm(64)), Int(65536,64)), Def(Tid(461, "%000001cd"), - Attrs([Attr("address","0x638"), Attr("insn","ldr x0, [x0, #0xfd0]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(4048,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(467, "%000001d3"), Attrs([Attr("address","0x63C"), -Attr("insn","cbz x0, #0x8")]), EQ(Var("R0",Imm(64)),Int(0,64)), -Direct(Tid(465, "%000001d1"))), Goto(Tid(1_429, "%00000595"), Attrs([]), - Int(1,1), Direct(Tid(868, "%00000364")))])), Blk(Tid(465, "%000001d1"), - Attrs([Attr("address","0x644")]), Phis([]), Defs([]), -Jmps([Call(Tid(473, "%000001d9"), Attrs([Attr("address","0x644"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))])), -Blk(Tid(868, "%00000364"), Attrs([Attr("address","0x640")]), Phis([]), -Defs([]), Jmps([Goto(Tid(871, "%00000367"), Attrs([Attr("address","0x640"), -Attr("insn","b #-0x60")]), Int(1,1), Direct(Tid(869, "@__gmon_start__")))])), -Blk(Tid(869, "@__gmon_start__"), Attrs([Attr("address","0x5E0")]), Phis([]), -Defs([Def(Tid(1_074, "%00000432"), Attrs([Attr("address","0x5E0"), -Attr("insn","adrp x16, #69632")]), Var("R16",Imm(64)), Int(69632,64)), -Def(Tid(1_081, "%00000439"), Attrs([Attr("address","0x5E4"), -Attr("insn","ldr x17, [x16, #0x10]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(16,64)),LittleEndian(),64)), -Def(Tid(1_087, "%0000043f"), Attrs([Attr("address","0x5E8"), -Attr("insn","add x16, x16, #0x10")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(16,64)))]), Jmps([Call(Tid(1_092, "%00000444"), - Attrs([Attr("address","0x5EC"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), -Sub(Tid(1_398, "@deregister_tm_clones"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x650")]), - "deregister_tm_clones", Args([Arg(Tid(1_446, "%000005a6"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("deregister_tm_clones_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(479, "@deregister_tm_clones"), - Attrs([Attr("address","0x650")]), Phis([]), Defs([Def(Tid(482, "%000001e2"), - Attrs([Attr("address","0x650"), Attr("insn","adrp x0, #69632")]), - Var("R0",Imm(64)), Int(69632,64)), Def(Tid(488, "%000001e8"), - Attrs([Attr("address","0x654"), Attr("insn","add x0, x0, #0x30")]), - Var("R0",Imm(64)), PLUS(Var("R0",Imm(64)),Int(48,64))), -Def(Tid(493, "%000001ed"), Attrs([Attr("address","0x658"), -Attr("insn","adrp x1, #69632")]), Var("R1",Imm(64)), Int(69632,64)), -Def(Tid(499, "%000001f3"), Attrs([Attr("address","0x65C"), -Attr("insn","add x1, x1, #0x30")]), Var("R1",Imm(64)), -PLUS(Var("R1",Imm(64)),Int(48,64))), Def(Tid(505, "%000001f9"), - Attrs([Attr("address","0x660"), Attr("insn","cmp x1, x0")]), - Var("#1",Imm(64)), NOT(Var("R0",Imm(64)))), Def(Tid(510, "%000001fe"), - Attrs([Attr("address","0x660"), Attr("insn","cmp x1, x0")]), - Var("#2",Imm(64)), PLUS(Var("R1",Imm(64)),NOT(Var("R0",Imm(64))))), -Def(Tid(516, "%00000204"), Attrs([Attr("address","0x660"), -Attr("insn","cmp x1, x0")]), Var("VF",Imm(1)), -NEQ(SIGNED(65,PLUS(Var("#2",Imm(64)),Int(1,64))),PLUS(PLUS(SIGNED(65,Var("R1",Imm(64))),SIGNED(65,Var("#1",Imm(64)))),Int(1,65)))), -Def(Tid(522, "%0000020a"), Attrs([Attr("address","0x660"), -Attr("insn","cmp x1, x0")]), Var("CF",Imm(1)), -NEQ(UNSIGNED(65,PLUS(Var("#2",Imm(64)),Int(1,64))),PLUS(PLUS(UNSIGNED(65,Var("R1",Imm(64))),UNSIGNED(65,Var("#1",Imm(64)))),Int(1,65)))), -Def(Tid(526, "%0000020e"), Attrs([Attr("address","0x660"), -Attr("insn","cmp x1, x0")]), Var("ZF",Imm(1)), -EQ(PLUS(Var("#2",Imm(64)),Int(1,64)),Int(0,64))), Def(Tid(530, "%00000212"), - Attrs([Attr("address","0x660"), Attr("insn","cmp x1, x0")]), - Var("NF",Imm(1)), Extract(63,63,PLUS(Var("#2",Imm(64)),Int(1,64))))]), -Jmps([Goto(Tid(536, "%00000218"), Attrs([Attr("address","0x664"), -Attr("insn","b.eq #0x18")]), EQ(Var("ZF",Imm(1)),Int(1,1)), -Direct(Tid(534, "%00000216"))), Goto(Tid(1_430, "%00000596"), Attrs([]), - Int(1,1), Direct(Tid(838, "%00000346")))])), Blk(Tid(838, "%00000346"), - Attrs([Attr("address","0x668")]), Phis([]), Defs([Def(Tid(841, "%00000349"), - Attrs([Attr("address","0x668"), Attr("insn","adrp x1, #65536")]), - Var("R1",Imm(64)), Int(65536,64)), Def(Tid(848, "%00000350"), - Attrs([Attr("address","0x66C"), Attr("insn","ldr x1, [x1, #0xfc0]")]), - Var("R1",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R1",Imm(64)),Int(4032,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(853, "%00000355"), Attrs([Attr("address","0x670"), -Attr("insn","cbz x1, #0xc")]), EQ(Var("R1",Imm(64)),Int(0,64)), -Direct(Tid(534, "%00000216"))), Goto(Tid(1_431, "%00000597"), Attrs([]), - Int(1,1), Direct(Tid(857, "%00000359")))])), Blk(Tid(534, "%00000216"), - Attrs([Attr("address","0x67C")]), Phis([]), Defs([]), -Jmps([Call(Tid(542, "%0000021e"), Attrs([Attr("address","0x67C"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))])), -Blk(Tid(857, "%00000359"), Attrs([Attr("address","0x674")]), Phis([]), -Defs([Def(Tid(861, "%0000035d"), Attrs([Attr("address","0x674"), -Attr("insn","mov x16, x1")]), Var("R16",Imm(64)), Var("R1",Imm(64)))]), -Jmps([Call(Tid(866, "%00000362"), Attrs([Attr("address","0x678"), -Attr("insn","br x16")]), Int(1,1), (Indirect(Var("R16",Imm(64))),))]))])), -Sub(Tid(1_401, "@frame_dummy"), Attrs([Attr("c.proto","signed (*)(void)"), -Attr("address","0x710")]), "frame_dummy", Args([Arg(Tid(1_447, "%000005a7"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("frame_dummy_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(694, "@frame_dummy"), - Attrs([Attr("address","0x710")]), Phis([]), Defs([]), -Jmps([Call(Tid(696, "%000002b8"), Attrs([Attr("address","0x710"), -Attr("insn","b #-0x90")]), Int(1,1), -(Direct(Tid(1_403, "@register_tm_clones")),))]))])), Sub(Tid(1_402, "@main"), - Attrs([Attr("c.proto","signed (*)(signed argc, const char** argv)"), -Attr("address","0x714")]), "main", Args([Arg(Tid(1_448, "%000005a8"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("main_argc",Imm(32)), -LOW(32,Var("R0",Imm(64))), In()), Arg(Tid(1_449, "%000005a9"), - Attrs([Attr("c.layout","**[char : 8]"), Attr("c.data","Top:u8 ptr ptr"), -Attr("c.type"," const char**")]), Var("main_argv",Imm(64)), -Var("R1",Imm(64)), Both()), Arg(Tid(1_450, "%000005aa"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("main_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(698, "@main"), - Attrs([Attr("address","0x714")]), Phis([]), Defs([Def(Tid(701, "%000002bd"), - Attrs([Attr("address","0x714"), Attr("insn","mov w8, #0x2")]), - Var("R8",Imm(64)), Int(2,64)), Def(Tid(707, "%000002c3"), - Attrs([Attr("address","0x718"), Attr("insn","cmp w0, #0x0")]), - Var("#4",Imm(32)), -PLUS(Extract(31,0,Var("R0",Imm(64))),Int(4294967295,32))), -Def(Tid(712, "%000002c8"), Attrs([Attr("address","0x718"), -Attr("insn","cmp w0, #0x0")]), Var("VF",Imm(1)), -NEQ(SIGNED(33,PLUS(Var("#4",Imm(32)),Int(1,32))),PLUS(SIGNED(33,Extract(31,0,Var("R0",Imm(64)))),Int(0,33)))), -Def(Tid(717, "%000002cd"), Attrs([Attr("address","0x718"), -Attr("insn","cmp w0, #0x0")]), Var("CF",Imm(1)), -NEQ(UNSIGNED(33,PLUS(Var("#4",Imm(32)),Int(1,32))),PLUS(UNSIGNED(33,Extract(31,0,Var("R0",Imm(64)))),Int(4294967296,33)))), -Def(Tid(721, "%000002d1"), Attrs([Attr("address","0x718"), -Attr("insn","cmp w0, #0x0")]), Var("ZF",Imm(1)), -EQ(PLUS(Var("#4",Imm(32)),Int(1,32)),Int(0,32))), Def(Tid(725, "%000002d5"), - Attrs([Attr("address","0x718"), Attr("insn","cmp w0, #0x0")]), - Var("NF",Imm(1)), Extract(31,31,PLUS(Var("#4",Imm(32)),Int(1,32))))]), -Jmps([Goto(Tid(739, "%000002e3"), Attrs([Attr("address","0x71C"), -Attr("insn","cinc w0, w8, ne")]), EQ(Var("ZF",Imm(1)),Int(1,1)), -Direct(Tid(731, "%000002db"))), Goto(Tid(740, "%000002e4"), - Attrs([Attr("address","0x71C"), Attr("insn","cinc w0, w8, ne")]), Int(1,1), -Direct(Tid(735, "%000002df")))])), Blk(Tid(735, "%000002df"), Attrs([]), - Phis([]), Defs([Def(Tid(736, "%000002e0"), Attrs([Attr("address","0x71C"), -Attr("insn","cinc w0, w8, ne")]), Var("R0",Imm(64)), -UNSIGNED(64,PLUS(Extract(31,0,Var("R8",Imm(64))),Int(1,32))))]), -Jmps([Goto(Tid(742, "%000002e6"), Attrs([Attr("address","0x71C"), -Attr("insn","cinc w0, w8, ne")]), Int(1,1), -Direct(Tid(738, "%000002e2")))])), Blk(Tid(731, "%000002db"), Attrs([]), - Phis([]), Defs([Def(Tid(732, "%000002dc"), Attrs([Attr("address","0x71C"), -Attr("insn","cinc w0, w8, ne")]), Var("R0",Imm(64)), -UNSIGNED(64,Extract(31,0,Var("R8",Imm(64)))))]), -Jmps([Goto(Tid(741, "%000002e5"), Attrs([Attr("address","0x71C"), -Attr("insn","cinc w0, w8, ne")]), Int(1,1), -Direct(Tid(738, "%000002e2")))])), Blk(Tid(738, "%000002e2"), Attrs([]), - Phis([]), Defs([]), Jmps([Call(Tid(747, "%000002eb"), - Attrs([Attr("address","0x720"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), -Sub(Tid(1_403, "@register_tm_clones"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x680")]), - "register_tm_clones", Args([Arg(Tid(1_451, "%000005ab"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("register_tm_clones_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(544, "@register_tm_clones"), Attrs([Attr("address","0x680")]), - Phis([]), Defs([Def(Tid(547, "%00000223"), Attrs([Attr("address","0x680"), -Attr("insn","adrp x0, #69632")]), Var("R0",Imm(64)), Int(69632,64)), -Def(Tid(553, "%00000229"), Attrs([Attr("address","0x684"), -Attr("insn","add x0, x0, #0x30")]), Var("R0",Imm(64)), -PLUS(Var("R0",Imm(64)),Int(48,64))), Def(Tid(558, "%0000022e"), - Attrs([Attr("address","0x688"), Attr("insn","adrp x1, #69632")]), - Var("R1",Imm(64)), Int(69632,64)), Def(Tid(564, "%00000234"), - Attrs([Attr("address","0x68C"), Attr("insn","add x1, x1, #0x30")]), - Var("R1",Imm(64)), PLUS(Var("R1",Imm(64)),Int(48,64))), -Def(Tid(571, "%0000023b"), Attrs([Attr("address","0x690"), -Attr("insn","sub x1, x1, x0")]), Var("R1",Imm(64)), -PLUS(PLUS(Var("R1",Imm(64)),NOT(Var("R0",Imm(64)))),Int(1,64))), -Def(Tid(577, "%00000241"), Attrs([Attr("address","0x694"), -Attr("insn","lsr x2, x1, #63")]), Var("R2",Imm(64)), -Concat(Int(0,63),Extract(63,63,Var("R1",Imm(64))))), -Def(Tid(584, "%00000248"), Attrs([Attr("address","0x698"), -Attr("insn","add x1, x2, x1, asr #3")]), Var("R1",Imm(64)), -PLUS(Var("R2",Imm(64)),ARSHIFT(Var("R1",Imm(64)),Int(3,3)))), -Def(Tid(590, "%0000024e"), Attrs([Attr("address","0x69C"), -Attr("insn","asr x1, x1, #1")]), Var("R1",Imm(64)), -SIGNED(64,Extract(63,1,Var("R1",Imm(64)))))]), -Jmps([Goto(Tid(596, "%00000254"), Attrs([Attr("address","0x6A0"), -Attr("insn","cbz x1, #0x18")]), EQ(Var("R1",Imm(64)),Int(0,64)), -Direct(Tid(594, "%00000252"))), Goto(Tid(1_432, "%00000598"), Attrs([]), - Int(1,1), Direct(Tid(808, "%00000328")))])), Blk(Tid(808, "%00000328"), - Attrs([Attr("address","0x6A4")]), Phis([]), Defs([Def(Tid(811, "%0000032b"), - Attrs([Attr("address","0x6A4"), Attr("insn","adrp x2, #65536")]), - Var("R2",Imm(64)), Int(65536,64)), Def(Tid(818, "%00000332"), - Attrs([Attr("address","0x6A8"), Attr("insn","ldr x2, [x2, #0xfe0]")]), - Var("R2",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R2",Imm(64)),Int(4064,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(823, "%00000337"), Attrs([Attr("address","0x6AC"), -Attr("insn","cbz x2, #0xc")]), EQ(Var("R2",Imm(64)),Int(0,64)), -Direct(Tid(594, "%00000252"))), Goto(Tid(1_433, "%00000599"), Attrs([]), - Int(1,1), Direct(Tid(827, "%0000033b")))])), Blk(Tid(594, "%00000252"), - Attrs([Attr("address","0x6B8")]), Phis([]), Defs([]), -Jmps([Call(Tid(602, "%0000025a"), Attrs([Attr("address","0x6B8"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))])), -Blk(Tid(827, "%0000033b"), Attrs([Attr("address","0x6B0")]), Phis([]), -Defs([Def(Tid(831, "%0000033f"), Attrs([Attr("address","0x6B0"), -Attr("insn","mov x16, x2")]), Var("R16",Imm(64)), Var("R2",Imm(64)))]), -Jmps([Call(Tid(836, "%00000344"), Attrs([Attr("address","0x6B4"), -Attr("insn","br x16")]), Int(1,1), -(Indirect(Var("R16",Imm(64))),))]))]))]))) \ No newline at end of file diff --git a/src/test/correct/ifbranches/clang_O2/ifbranches.bir b/src/test/correct/ifbranches/clang_O2/ifbranches.bir deleted file mode 100644 index 106434d41..000000000 --- a/src/test/correct/ifbranches/clang_O2/ifbranches.bir +++ /dev/null @@ -1,241 +0,0 @@ -0000059a: program -00000568: sub __cxa_finalize(__cxa_finalize_result) -0000059b: __cxa_finalize_result :: out u32 = low:32[R0] - -00000324: -0000041c: R16 := 0x11000 -00000423: R17 := mem[R16 + 8, el]:u64 -00000429: R16 := R16 + 8 -0000042e: call R17 with noreturn - -00000569: sub __do_global_dtors_aux(__do_global_dtors_aux_result) -0000059c: __do_global_dtors_aux_result :: out u32 = low:32[R0] - -0000025e: -00000262: #3 := R31 - 0x20 -00000268: mem := mem with [#3, el]:u64 <- R29 -0000026e: mem := mem with [#3 + 8, el]:u64 <- R30 -00000272: R31 := #3 -00000278: R29 := R31 -00000280: mem := mem with [R31 + 0x10, el]:u64 <- R19 -00000285: R19 := 0x11000 -0000028c: R0 := pad:64[mem[R19 + 0x30]] -00000293: when 31:0[R0] <> 0 goto %00000291 -00000590: goto %000002ed - -000002ed: -000002f0: R0 := 0x10000 -000002f7: R0 := mem[R0 + 0xFC8, el]:u64 -000002fd: when R0 = 0 goto %000002fb -00000591: goto %00000314 - -00000314: -00000317: R0 := 0x11000 -0000031e: R0 := mem[R0 + 0x28, el]:u64 -00000323: R30 := 0x6F0 -00000326: call @__cxa_finalize with return %000002fb - -000002fb: -00000303: R30 := 0x6F4 -00000305: call @deregister_tm_clones with return %00000307 - -00000307: -0000030a: R0 := 1 -00000312: mem := mem with [R19 + 0x30] <- 7:0[R0] -00000592: goto %00000291 - -00000291: -0000029b: R19 := mem[R31 + 0x10, el]:u64 -000002a2: R29 := mem[R31, el]:u64 -000002a7: R30 := mem[R31 + 8, el]:u64 -000002ab: R31 := R31 + 0x20 -000002b0: call R30 with noreturn - -0000056d: sub __libc_start_main(__libc_start_main_main, __libc_start_main_arg2, __libc_start_main_arg3, __libc_start_main_auxv, __libc_start_main_result) -0000059d: __libc_start_main_main :: in u64 = R0 -0000059e: __libc_start_main_arg2 :: in u32 = low:32[R1] -0000059f: __libc_start_main_arg3 :: in out u64 = R2 -000005a0: __libc_start_main_auxv :: in out u64 = R3 -000005a1: __libc_start_main_result :: out u32 = low:32[R0] - -000001b7: -00000406: R16 := 0x11000 -0000040d: R17 := mem[R16, el]:u64 -00000413: R16 := R16 -00000418: call R17 with noreturn - -0000056e: sub _fini(_fini_result) -000005a2: _fini_result :: out u32 = low:32[R0] - -0000001f: -00000025: #0 := R31 - 0x10 -0000002b: mem := mem with [#0, el]:u64 <- R29 -00000031: mem := mem with [#0 + 8, el]:u64 <- R30 -00000035: R31 := #0 -0000003b: R29 := R31 -00000042: R29 := mem[R31, el]:u64 -00000047: R30 := mem[R31 + 8, el]:u64 -0000004b: R31 := R31 + 0x10 -00000050: call R30 with noreturn - -0000056f: sub _init(_init_result) -000005a3: _init_result :: out u32 = low:32[R0] - -000004c6: -000004cc: #6 := R31 - 0x10 -000004d2: mem := mem with [#6, el]:u64 <- R29 -000004d8: mem := mem with [#6 + 8, el]:u64 <- R30 -000004dc: R31 := #6 -000004e2: R29 := R31 -000004e7: R30 := 0x590 -000004e9: call @call_weak_fn with return %000004eb - -000004eb: -000004f0: R29 := mem[R31, el]:u64 -000004f5: R30 := mem[R31 + 8, el]:u64 -000004f9: R31 := R31 + 0x10 -000004fe: call R30 with noreturn - -00000570: sub _start(_start_result) -000005a4: _start_result :: out u32 = low:32[R0] - -00000178: -0000017d: R29 := 0 -00000182: R30 := 0 -00000188: R5 := R0 -0000018f: R1 := mem[R31, el]:u64 -00000195: R2 := R31 + 8 -0000019b: R6 := R31 -000001a0: R0 := 0x10000 -000001a7: R0 := mem[R0 + 0xFD8, el]:u64 -000001ac: R3 := 0 -000001b1: R4 := 0 -000001b6: R30 := 0x630 -000001b9: call @__libc_start_main with return %000001bb - -000001bb: -000001be: R30 := 0x634 -000001c1: call @abort with return %00000593 - -00000593: -00000594: call @call_weak_fn with noreturn - -00000573: sub abort() - - -000001bf: -00000448: R16 := 0x11000 -0000044f: R17 := mem[R16 + 0x18, el]:u64 -00000455: R16 := R16 + 0x18 -0000045a: call R17 with noreturn - -00000574: sub call_weak_fn(call_weak_fn_result) -000005a5: call_weak_fn_result :: out u32 = low:32[R0] - -000001c3: -000001c6: R0 := 0x10000 -000001cd: R0 := mem[R0 + 0xFD0, el]:u64 -000001d3: when R0 = 0 goto %000001d1 -00000595: goto %00000364 - -000001d1: -000001d9: call R30 with noreturn - -00000364: -00000367: goto @__gmon_start__ - -00000365: -00000432: R16 := 0x11000 -00000439: R17 := mem[R16 + 0x10, el]:u64 -0000043f: R16 := R16 + 0x10 -00000444: call R17 with noreturn - -00000576: sub deregister_tm_clones(deregister_tm_clones_result) -000005a6: deregister_tm_clones_result :: out u32 = low:32[R0] - -000001df: -000001e2: R0 := 0x11000 -000001e8: R0 := R0 + 0x30 -000001ed: R1 := 0x11000 -000001f3: R1 := R1 + 0x30 -000001f9: #1 := ~R0 -000001fe: #2 := R1 + ~R0 -00000204: VF := extend:65[#2 + 1] <> extend:65[R1] + extend:65[#1] + 1 -0000020a: CF := pad:65[#2 + 1] <> pad:65[R1] + pad:65[#1] + 1 -0000020e: ZF := #2 + 1 = 0 -00000212: NF := 63:63[#2 + 1] -00000218: when ZF goto %00000216 -00000596: goto %00000346 - -00000346: -00000349: R1 := 0x10000 -00000350: R1 := mem[R1 + 0xFC0, el]:u64 -00000355: when R1 = 0 goto %00000216 -00000597: goto %00000359 - -00000216: -0000021e: call R30 with noreturn - -00000359: -0000035d: R16 := R1 -00000362: call R16 with noreturn - -00000579: sub frame_dummy(frame_dummy_result) -000005a7: frame_dummy_result :: out u32 = low:32[R0] - -000002b6: -000002b8: call @register_tm_clones with noreturn - -0000057a: sub main(main_argc, main_argv, main_result) -000005a8: main_argc :: in u32 = low:32[R0] -000005a9: main_argv :: in out u64 = R1 -000005aa: main_result :: out u32 = low:32[R0] - -000002ba: -000002bd: R8 := 2 -000002c3: #4 := 31:0[R0] - 1 -000002c8: VF := extend:33[#4 + 1] <> extend:33[31:0[R0]] + 0 -000002cd: CF := pad:33[#4 + 1] <> pad:33[31:0[R0]] - 0x100000000 -000002d1: ZF := #4 + 1 = 0 -000002d5: NF := 31:31[#4 + 1] -000002e3: when ZF goto %000002db -000002e4: goto %000002df - -000002df: -000002e0: R0 := pad:64[31:0[R8] + 1] -000002e6: goto %000002e2 - -000002db: -000002dc: R0 := pad:64[31:0[R8]] -000002e5: goto %000002e2 - -000002e2: -000002eb: call R30 with noreturn - -0000057b: sub register_tm_clones(register_tm_clones_result) -000005ab: register_tm_clones_result :: out u32 = low:32[R0] - -00000220: -00000223: R0 := 0x11000 -00000229: R0 := R0 + 0x30 -0000022e: R1 := 0x11000 -00000234: R1 := R1 + 0x30 -0000023b: R1 := R1 + ~R0 + 1 -00000241: R2 := 0.63:63[R1] -00000248: R1 := R2 + (R1 ~>> 3) -0000024e: R1 := extend:64[63:1[R1]] -00000254: when R1 = 0 goto %00000252 -00000598: goto %00000328 - -00000328: -0000032b: R2 := 0x10000 -00000332: R2 := mem[R2 + 0xFE0, el]:u64 -00000337: when R2 = 0 goto %00000252 -00000599: goto %0000033b - -00000252: -0000025a: call R30 with noreturn - -0000033b: -0000033f: R16 := R2 -00000344: call R16 with noreturn diff --git a/src/test/correct/ifbranches/clang_O2/ifbranches.expected b/src/test/correct/ifbranches/clang_O2/ifbranches.expected index b76a814af..dd7c999da 100644 --- a/src/test/correct/ifbranches/clang_O2/ifbranches.expected +++ b/src/test/correct/ifbranches/clang_O2/ifbranches.expected @@ -13,12 +13,9 @@ var {:extern} VF: bv1; var {:extern} ZF: bv1; var {:extern} mem: [bv64]bv8; function {:extern} {:bvbuiltin "bvadd"} bvadd32(bv32, bv32) returns (bv32); -function {:extern} {:bvbuiltin "bvadd"} bvadd33(bv33, bv33) returns (bv33); function {:extern} {:bvbuiltin "bvadd"} bvadd64(bv64, bv64) returns (bv64); function {:extern} {:bvbuiltin "bvcomp"} bvcomp1(bv1, bv1) returns (bv1); function {:extern} {:bvbuiltin "bvcomp"} bvcomp32(bv32, bv32) returns (bv1); -function {:extern} {:bvbuiltin "bvcomp"} bvcomp33(bv33, bv33) returns (bv1); -function {:extern} {:bvbuiltin "bvnot"} bvnot1(bv1) returns (bv1); function {:extern} memory_load32_le(memory: [bv64]bv8, index: bv64) returns (bv32) { (memory[bvadd64(index, 3bv64)] ++ (memory[bvadd64(index, 2bv64)] ++ (memory[bvadd64(index, 1bv64)] ++ memory[index]))) } @@ -27,18 +24,16 @@ function {:extern} memory_load64_le(memory: [bv64]bv8, index: bv64) returns (bv6 (memory[bvadd64(index, 7bv64)] ++ (memory[bvadd64(index, 6bv64)] ++ (memory[bvadd64(index, 5bv64)] ++ (memory[bvadd64(index, 4bv64)] ++ (memory[bvadd64(index, 3bv64)] ++ (memory[bvadd64(index, 2bv64)] ++ (memory[bvadd64(index, 1bv64)] ++ memory[index]))))))) } -function {:extern} {:bvbuiltin "sign_extend 1"} sign_extend1_32(bv32) returns (bv33); -function {:extern} {:bvbuiltin "zero_extend 1"} zero_extend1_32(bv32) returns (bv33); function {:extern} {:bvbuiltin "zero_extend 32"} zero_extend32_32(bv32) returns (bv64); procedure {:extern} rely(); modifies Gamma_mem, mem; ensures (Gamma_mem == old(Gamma_mem)); ensures (mem == old(mem)); - free ensures (memory_load32_le(mem, 1848bv64) == 131073bv32); - free ensures (memory_load64_le(mem, 69064bv64) == 1808bv64); - free ensures (memory_load64_le(mem, 69072bv64) == 1728bv64); - free ensures (memory_load64_le(mem, 69592bv64) == 1812bv64); - free ensures (memory_load64_le(mem, 69672bv64) == 69672bv64); + free ensures (memory_load32_le(mem, 2232bv64) == 131073bv32); + free ensures (memory_load64_le(mem, 130440bv64) == 2192bv64); + free ensures (memory_load64_le(mem, 130448bv64) == 2112bv64); + free ensures (memory_load64_le(mem, 131056bv64) == 2196bv64); + free ensures (memory_load64_le(mem, 131080bv64) == 131080bv64); procedure {:extern} rely_transitive(); modifies Gamma_mem, mem; @@ -56,57 +51,54 @@ procedure {:extern} rely_reflexive(); procedure {:extern} guarantee_reflexive(); modifies Gamma_mem, mem; -procedure main_1812(); +procedure main(); modifies CF, Gamma_CF, Gamma_NF, Gamma_R0, Gamma_R8, Gamma_VF, Gamma_ZF, NF, R0, R8, VF, ZF; requires (Gamma_R0 == true); - free requires (memory_load64_le(mem, 69664bv64) == 0bv64); - free requires (memory_load64_le(mem, 69672bv64) == 69672bv64); - free requires (memory_load32_le(mem, 1848bv64) == 131073bv32); - free requires (memory_load64_le(mem, 69064bv64) == 1808bv64); - free requires (memory_load64_le(mem, 69072bv64) == 1728bv64); - free requires (memory_load64_le(mem, 69592bv64) == 1812bv64); - free requires (memory_load64_le(mem, 69672bv64) == 69672bv64); - free ensures (memory_load32_le(mem, 1848bv64) == 131073bv32); - free ensures (memory_load64_le(mem, 69064bv64) == 1808bv64); - free ensures (memory_load64_le(mem, 69072bv64) == 1728bv64); - free ensures (memory_load64_le(mem, 69592bv64) == 1812bv64); - free ensures (memory_load64_le(mem, 69672bv64) == 69672bv64); + free requires (memory_load64_le(mem, 131072bv64) == 0bv64); + free requires (memory_load64_le(mem, 131080bv64) == 131080bv64); + free requires (memory_load32_le(mem, 2232bv64) == 131073bv32); + free requires (memory_load64_le(mem, 130440bv64) == 2192bv64); + free requires (memory_load64_le(mem, 130448bv64) == 2112bv64); + free requires (memory_load64_le(mem, 131056bv64) == 2196bv64); + free requires (memory_load64_le(mem, 131080bv64) == 131080bv64); + free ensures (memory_load32_le(mem, 2232bv64) == 131073bv32); + free ensures (memory_load64_le(mem, 130440bv64) == 2192bv64); + free ensures (memory_load64_le(mem, 130448bv64) == 2112bv64); + free ensures (memory_load64_le(mem, 131056bv64) == 2196bv64); + free ensures (memory_load64_le(mem, 131080bv64) == 131080bv64); -implementation main_1812() +implementation main() { - var #4: bv32; - var Gamma_#4: bool; lmain: assume {:captureState "lmain"} true; R8, Gamma_R8 := 2bv64, true; - #4, Gamma_#4 := bvadd32(R0[32:0], 4294967295bv32), Gamma_R0; - VF, Gamma_VF := bvnot1(bvcomp33(sign_extend1_32(bvadd32(#4, 1bv32)), bvadd33(sign_extend1_32(R0[32:0]), 0bv33))), (Gamma_R0 && Gamma_#4); - CF, Gamma_CF := bvnot1(bvcomp33(zero_extend1_32(bvadd32(#4, 1bv32)), bvadd33(zero_extend1_32(R0[32:0]), 4294967296bv33))), (Gamma_R0 && Gamma_#4); - ZF, Gamma_ZF := bvcomp32(bvadd32(#4, 1bv32), 0bv32), Gamma_#4; - NF, Gamma_NF := bvadd32(#4, 1bv32)[32:31], Gamma_#4; + VF, Gamma_VF := 0bv1, true; + CF, Gamma_CF := 1bv1, true; + ZF, Gamma_ZF := bvcomp32(R0[32:0], 0bv32), Gamma_R0; + NF, Gamma_NF := R0[32:31], Gamma_R0; assert Gamma_ZF; - goto lmain_goto_l000002db, lmain_goto_l000002df; - lmain_goto_l000002df: - assume {:captureState "lmain_goto_l000002df"} true; - assume (bvcomp1(ZF, 1bv1) == 0bv1); + goto lmain_goto_l00000294, lmain_goto_l0000029c; + l0000029c: + assume {:captureState "l0000029c"} true; R0, Gamma_R0 := zero_extend32_32(bvadd32(R8[32:0], 1bv32)), Gamma_R8; - goto l000002df; - l000002df: - assume {:captureState "l000002df"} true; - goto l000002e2; - lmain_goto_l000002db: - assume {:captureState "lmain_goto_l000002db"} true; - assume (bvcomp1(ZF, 1bv1) != 0bv1); + goto l000002a8; + l00000294: + assume {:captureState "l00000294"} true; R0, Gamma_R0 := zero_extend32_32(R8[32:0]), Gamma_R8; - goto l000002db; - l000002db: - assume {:captureState "l000002db"} true; - goto l000002e2; - l000002e2: - assume {:captureState "l000002e2"} true; - goto main_1812_basil_return; - main_1812_basil_return: - assume {:captureState "main_1812_basil_return"} true; + goto l000002a8; + l000002a8: + assume {:captureState "l000002a8"} true; + goto main_basil_return; + lmain_goto_l00000294: + assume {:captureState "lmain_goto_l00000294"} true; + assume (bvcomp1(ZF, 1bv1) != 0bv1); + goto l00000294; + lmain_goto_l0000029c: + assume {:captureState "lmain_goto_l0000029c"} true; + assume (bvcomp1(ZF, 1bv1) == 0bv1); + goto l0000029c; + main_basil_return: + assume {:captureState "main_basil_return"} true; return; } diff --git a/src/test/correct/ifbranches/clang_O2/ifbranches.gts b/src/test/correct/ifbranches/clang_O2/ifbranches.gts deleted file mode 100644 index 48d482946..000000000 Binary files a/src/test/correct/ifbranches/clang_O2/ifbranches.gts and /dev/null differ diff --git a/src/test/correct/ifbranches/clang_O2/ifbranches.md5sum b/src/test/correct/ifbranches/clang_O2/ifbranches.md5sum new file mode 100644 index 000000000..7650c1a10 --- /dev/null +++ b/src/test/correct/ifbranches/clang_O2/ifbranches.md5sum @@ -0,0 +1,5 @@ +318707cbb1103ac41644c317b9691da1 correct/ifbranches/clang_O2/a.out +1cbe874a8d2cae5ad21f0bd70db172c5 correct/ifbranches/clang_O2/ifbranches.adt +d7e14b9c0d0a369ca4775815e39f298d correct/ifbranches/clang_O2/ifbranches.bir +9d14b2634882607f4184b0d2509f068c correct/ifbranches/clang_O2/ifbranches.relf +16d8a405c7be212e234b7155d291c514 correct/ifbranches/clang_O2/ifbranches.gts diff --git a/src/test/correct/ifbranches/clang_O2/ifbranches.relf b/src/test/correct/ifbranches/clang_O2/ifbranches.relf deleted file mode 100644 index 150c98377..000000000 --- a/src/test/correct/ifbranches/clang_O2/ifbranches.relf +++ /dev/null @@ -1,121 +0,0 @@ - -Relocation section '.rela.dyn' at offset 0x460 contains 8 entries: - Offset Info Type Symbol's Value Symbol's Name + Addend -0000000000010dc8 0000000000000403 R_AARCH64_RELATIVE 710 -0000000000010dd0 0000000000000403 R_AARCH64_RELATIVE 6c0 -0000000000010fd8 0000000000000403 R_AARCH64_RELATIVE 714 -0000000000011028 0000000000000403 R_AARCH64_RELATIVE 11028 -0000000000010fc0 0000000400000401 R_AARCH64_GLOB_DAT 0000000000000000 _ITM_deregisterTMCloneTable + 0 -0000000000010fc8 0000000500000401 R_AARCH64_GLOB_DAT 0000000000000000 __cxa_finalize@GLIBC_2.17 + 0 -0000000000010fd0 0000000600000401 R_AARCH64_GLOB_DAT 0000000000000000 __gmon_start__ + 0 -0000000000010fe0 0000000800000401 R_AARCH64_GLOB_DAT 0000000000000000 _ITM_registerTMCloneTable + 0 - -Relocation section '.rela.plt' at offset 0x520 contains 4 entries: - Offset Info Type Symbol's Value Symbol's Name + Addend -0000000000011000 0000000300000402 R_AARCH64_JUMP_SLOT 0000000000000000 __libc_start_main@GLIBC_2.34 + 0 -0000000000011008 0000000500000402 R_AARCH64_JUMP_SLOT 0000000000000000 __cxa_finalize@GLIBC_2.17 + 0 -0000000000011010 0000000600000402 R_AARCH64_JUMP_SLOT 0000000000000000 __gmon_start__ + 0 -0000000000011018 0000000700000402 R_AARCH64_JUMP_SLOT 0000000000000000 abort@GLIBC_2.17 + 0 - -Symbol table '.dynsym' contains 9 entries: - Num: Value Size Type Bind Vis Ndx Name - 0: 0000000000000000 0 NOTYPE LOCAL DEFAULT UND - 1: 0000000000000580 0 SECTION LOCAL DEFAULT 11 .init - 2: 0000000000011020 0 SECTION LOCAL DEFAULT 23 .data - 3: 0000000000000000 0 FUNC GLOBAL DEFAULT UND __libc_start_main@GLIBC_2.34 (2) - 4: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_deregisterTMCloneTable - 5: 0000000000000000 0 FUNC WEAK DEFAULT UND __cxa_finalize@GLIBC_2.17 (3) - 6: 0000000000000000 0 NOTYPE WEAK DEFAULT UND __gmon_start__ - 7: 0000000000000000 0 FUNC GLOBAL DEFAULT UND abort@GLIBC_2.17 (3) - 8: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_registerTMCloneTable - -Symbol table '.symtab' contains 88 entries: - Num: Value Size Type Bind Vis Ndx Name - 0: 0000000000000000 0 NOTYPE LOCAL DEFAULT UND - 1: 0000000000000238 0 SECTION LOCAL DEFAULT 1 .interp - 2: 0000000000000254 0 SECTION LOCAL DEFAULT 2 .note.gnu.build-id - 3: 0000000000000278 0 SECTION LOCAL DEFAULT 3 .note.ABI-tag - 4: 0000000000000298 0 SECTION LOCAL DEFAULT 4 .gnu.hash - 5: 00000000000002b8 0 SECTION LOCAL DEFAULT 5 .dynsym - 6: 0000000000000390 0 SECTION LOCAL DEFAULT 6 .dynstr - 7: 000000000000041e 0 SECTION LOCAL DEFAULT 7 .gnu.version - 8: 0000000000000430 0 SECTION LOCAL DEFAULT 8 .gnu.version_r - 9: 0000000000000460 0 SECTION LOCAL DEFAULT 9 .rela.dyn - 10: 0000000000000520 0 SECTION LOCAL DEFAULT 10 .rela.plt - 11: 0000000000000580 0 SECTION LOCAL DEFAULT 11 .init - 12: 00000000000005a0 0 SECTION LOCAL DEFAULT 12 .plt - 13: 0000000000000600 0 SECTION LOCAL DEFAULT 13 .text - 14: 0000000000000724 0 SECTION LOCAL DEFAULT 14 .fini - 15: 0000000000000738 0 SECTION LOCAL DEFAULT 15 .rodata - 16: 000000000000073c 0 SECTION LOCAL DEFAULT 16 .eh_frame_hdr - 17: 0000000000000778 0 SECTION LOCAL DEFAULT 17 .eh_frame - 18: 0000000000010dc8 0 SECTION LOCAL DEFAULT 18 .init_array - 19: 0000000000010dd0 0 SECTION LOCAL DEFAULT 19 .fini_array - 20: 0000000000010dd8 0 SECTION LOCAL DEFAULT 20 .dynamic - 21: 0000000000010fb8 0 SECTION LOCAL DEFAULT 21 .got - 22: 0000000000010fe8 0 SECTION LOCAL DEFAULT 22 .got.plt - 23: 0000000000011020 0 SECTION LOCAL DEFAULT 23 .data - 24: 0000000000011030 0 SECTION LOCAL DEFAULT 24 .bss - 25: 0000000000000000 0 SECTION LOCAL DEFAULT 25 .comment - 26: 0000000000000000 0 FILE LOCAL DEFAULT ABS Scrt1.o - 27: 0000000000000278 0 NOTYPE LOCAL DEFAULT 3 $d - 28: 0000000000000278 32 OBJECT LOCAL DEFAULT 3 __abi_tag - 29: 0000000000000600 0 NOTYPE LOCAL DEFAULT 13 $x - 30: 000000000000078c 0 NOTYPE LOCAL DEFAULT 17 $d - 31: 0000000000000738 0 NOTYPE LOCAL DEFAULT 15 $d - 32: 0000000000000000 0 FILE LOCAL DEFAULT ABS crti.o - 33: 0000000000000634 0 NOTYPE LOCAL DEFAULT 13 $x - 34: 0000000000000634 20 FUNC LOCAL DEFAULT 13 call_weak_fn - 35: 0000000000000580 0 NOTYPE LOCAL DEFAULT 11 $x - 36: 0000000000000724 0 NOTYPE LOCAL DEFAULT 14 $x - 37: 0000000000000000 0 FILE LOCAL DEFAULT ABS crtn.o - 38: 0000000000000590 0 NOTYPE LOCAL DEFAULT 11 $x - 39: 0000000000000730 0 NOTYPE LOCAL DEFAULT 14 $x - 40: 0000000000000000 0 FILE LOCAL DEFAULT ABS crtstuff.c - 41: 0000000000000650 0 NOTYPE LOCAL DEFAULT 13 $x - 42: 0000000000000650 0 FUNC LOCAL DEFAULT 13 deregister_tm_clones - 43: 0000000000000680 0 FUNC LOCAL DEFAULT 13 register_tm_clones - 44: 0000000000011028 0 NOTYPE LOCAL DEFAULT 23 $d - 45: 00000000000006c0 0 FUNC LOCAL DEFAULT 13 __do_global_dtors_aux - 46: 0000000000011030 1 OBJECT LOCAL DEFAULT 24 completed.0 - 47: 0000000000010dd0 0 NOTYPE LOCAL DEFAULT 19 $d - 48: 0000000000010dd0 0 OBJECT LOCAL DEFAULT 19 __do_global_dtors_aux_fini_array_entry - 49: 0000000000000710 0 FUNC LOCAL DEFAULT 13 frame_dummy - 50: 0000000000010dc8 0 NOTYPE LOCAL DEFAULT 18 $d - 51: 0000000000010dc8 0 OBJECT LOCAL DEFAULT 18 __frame_dummy_init_array_entry - 52: 00000000000007a0 0 NOTYPE LOCAL DEFAULT 17 $d - 53: 0000000000011030 0 NOTYPE LOCAL DEFAULT 24 $d - 54: 0000000000000000 0 FILE LOCAL DEFAULT ABS ifbranches.c - 55: 0000000000000714 0 NOTYPE LOCAL DEFAULT 13 $x.0 - 56: 000000000000002a 0 NOTYPE LOCAL DEFAULT 25 $d.1 - 57: 0000000000000800 0 NOTYPE LOCAL DEFAULT 17 $d.2 - 58: 0000000000000000 0 FILE LOCAL DEFAULT ABS crtstuff.c - 59: 0000000000000828 0 NOTYPE LOCAL DEFAULT 17 $d - 60: 0000000000000828 0 OBJECT LOCAL DEFAULT 17 __FRAME_END__ - 61: 0000000000000000 0 FILE LOCAL DEFAULT ABS - 62: 0000000000010dd8 0 OBJECT LOCAL DEFAULT ABS _DYNAMIC - 63: 000000000000073c 0 NOTYPE LOCAL DEFAULT 16 __GNU_EH_FRAME_HDR - 64: 0000000000010fb8 0 OBJECT LOCAL DEFAULT ABS _GLOBAL_OFFSET_TABLE_ - 65: 00000000000005a0 0 NOTYPE LOCAL DEFAULT 12 $x - 66: 0000000000000000 0 FUNC GLOBAL DEFAULT UND __libc_start_main@GLIBC_2.34 - 67: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_deregisterTMCloneTable - 68: 0000000000011020 0 NOTYPE WEAK DEFAULT 23 data_start - 69: 0000000000011030 0 NOTYPE GLOBAL DEFAULT 24 __bss_start__ - 70: 0000000000000000 0 FUNC WEAK DEFAULT UND __cxa_finalize@GLIBC_2.17 - 71: 0000000000011038 0 NOTYPE GLOBAL DEFAULT 24 _bss_end__ - 72: 0000000000011030 0 NOTYPE GLOBAL DEFAULT 23 _edata - 73: 0000000000000724 0 FUNC GLOBAL HIDDEN 14 _fini - 74: 0000000000011038 0 NOTYPE GLOBAL DEFAULT 24 __bss_end__ - 75: 0000000000011020 0 NOTYPE GLOBAL DEFAULT 23 __data_start - 76: 0000000000000000 0 NOTYPE WEAK DEFAULT UND __gmon_start__ - 77: 0000000000011028 0 OBJECT GLOBAL HIDDEN 23 __dso_handle - 78: 0000000000000000 0 FUNC GLOBAL DEFAULT UND abort@GLIBC_2.17 - 79: 0000000000000738 4 OBJECT GLOBAL DEFAULT 15 _IO_stdin_used - 80: 0000000000011038 0 NOTYPE GLOBAL DEFAULT 24 _end - 81: 0000000000000600 52 FUNC GLOBAL DEFAULT 13 _start - 82: 0000000000011038 0 NOTYPE GLOBAL DEFAULT 24 __end__ - 83: 0000000000011030 0 NOTYPE GLOBAL DEFAULT 24 __bss_start - 84: 0000000000000714 16 FUNC GLOBAL DEFAULT 13 main - 85: 0000000000011030 0 OBJECT GLOBAL HIDDEN 23 __TMC_END__ - 86: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_registerTMCloneTable - 87: 0000000000000580 0 FUNC GLOBAL HIDDEN 11 _init diff --git a/src/test/correct/ifbranches/clang_O2/ifbranches_gtirb.expected b/src/test/correct/ifbranches/clang_O2/ifbranches_gtirb.expected index 623c535e5..940227590 100644 --- a/src/test/correct/ifbranches/clang_O2/ifbranches_gtirb.expected +++ b/src/test/correct/ifbranches/clang_O2/ifbranches_gtirb.expected @@ -13,11 +13,8 @@ var {:extern} VF: bv1; var {:extern} ZF: bv1; var {:extern} mem: [bv64]bv8; function {:extern} {:bvbuiltin "bvadd"} bvadd32(bv32, bv32) returns (bv32); -function {:extern} {:bvbuiltin "bvadd"} bvadd33(bv33, bv33) returns (bv33); function {:extern} {:bvbuiltin "bvadd"} bvadd64(bv64, bv64) returns (bv64); function {:extern} {:bvbuiltin "bvcomp"} bvcomp32(bv32, bv32) returns (bv1); -function {:extern} {:bvbuiltin "bvcomp"} bvcomp33(bv33, bv33) returns (bv1); -function {:extern} {:bvbuiltin "bvnot"} bvnot1(bv1) returns (bv1); function {:extern} memory_load32_le(memory: [bv64]bv8, index: bv64) returns (bv32) { (memory[bvadd64(index, 3bv64)] ++ (memory[bvadd64(index, 2bv64)] ++ (memory[bvadd64(index, 1bv64)] ++ memory[index]))) } @@ -26,17 +23,16 @@ function {:extern} memory_load64_le(memory: [bv64]bv8, index: bv64) returns (bv6 (memory[bvadd64(index, 7bv64)] ++ (memory[bvadd64(index, 6bv64)] ++ (memory[bvadd64(index, 5bv64)] ++ (memory[bvadd64(index, 4bv64)] ++ (memory[bvadd64(index, 3bv64)] ++ (memory[bvadd64(index, 2bv64)] ++ (memory[bvadd64(index, 1bv64)] ++ memory[index]))))))) } -function {:extern} {:bvbuiltin "zero_extend 1"} zero_extend1_32(bv32) returns (bv33); function {:extern} {:bvbuiltin "zero_extend 32"} zero_extend32_32(bv32) returns (bv64); procedure {:extern} rely(); modifies Gamma_mem, mem; ensures (Gamma_mem == old(Gamma_mem)); ensures (mem == old(mem)); - free ensures (memory_load32_le(mem, 1848bv64) == 131073bv32); - free ensures (memory_load64_le(mem, 69064bv64) == 1808bv64); - free ensures (memory_load64_le(mem, 69072bv64) == 1728bv64); - free ensures (memory_load64_le(mem, 69592bv64) == 1812bv64); - free ensures (memory_load64_le(mem, 69672bv64) == 69672bv64); + free ensures (memory_load32_le(mem, 2232bv64) == 131073bv32); + free ensures (memory_load64_le(mem, 130440bv64) == 2192bv64); + free ensures (memory_load64_le(mem, 130448bv64) == 2112bv64); + free ensures (memory_load64_le(mem, 131056bv64) == 2196bv64); + free ensures (memory_load64_le(mem, 131080bv64) == 131080bv64); procedure {:extern} rely_transitive(); modifies Gamma_mem, mem; @@ -54,48 +50,45 @@ procedure {:extern} rely_reflexive(); procedure {:extern} guarantee_reflexive(); modifies Gamma_mem, mem; -procedure main_1812(); +procedure main(); modifies CF, Gamma_CF, Gamma_NF, Gamma_R0, Gamma_R8, Gamma_VF, Gamma_ZF, NF, R0, R8, VF, ZF; requires (Gamma_R0 == true); - free requires (memory_load64_le(mem, 69664bv64) == 0bv64); - free requires (memory_load64_le(mem, 69672bv64) == 69672bv64); - free requires (memory_load32_le(mem, 1848bv64) == 131073bv32); - free requires (memory_load64_le(mem, 69064bv64) == 1808bv64); - free requires (memory_load64_le(mem, 69072bv64) == 1728bv64); - free requires (memory_load64_le(mem, 69592bv64) == 1812bv64); - free requires (memory_load64_le(mem, 69672bv64) == 69672bv64); - free ensures (memory_load32_le(mem, 1848bv64) == 131073bv32); - free ensures (memory_load64_le(mem, 69064bv64) == 1808bv64); - free ensures (memory_load64_le(mem, 69072bv64) == 1728bv64); - free ensures (memory_load64_le(mem, 69592bv64) == 1812bv64); - free ensures (memory_load64_le(mem, 69672bv64) == 69672bv64); + free requires (memory_load64_le(mem, 131072bv64) == 0bv64); + free requires (memory_load64_le(mem, 131080bv64) == 131080bv64); + free requires (memory_load32_le(mem, 2232bv64) == 131073bv32); + free requires (memory_load64_le(mem, 130440bv64) == 2192bv64); + free requires (memory_load64_le(mem, 130448bv64) == 2112bv64); + free requires (memory_load64_le(mem, 131056bv64) == 2196bv64); + free requires (memory_load64_le(mem, 131080bv64) == 131080bv64); + free ensures (memory_load32_le(mem, 2232bv64) == 131073bv32); + free ensures (memory_load64_le(mem, 130440bv64) == 2192bv64); + free ensures (memory_load64_le(mem, 130448bv64) == 2112bv64); + free ensures (memory_load64_le(mem, 131056bv64) == 2196bv64); + free ensures (memory_load64_le(mem, 131080bv64) == 131080bv64); -implementation main_1812() +implementation main() { - var Cse0__5_0_1: bv32; - var Gamma_Cse0__5_0_1: bool; - main_1812__0__VPrxPsvYQmW1iyrj_de8Iw: - assume {:captureState "main_1812__0__VPrxPsvYQmW1iyrj_de8Iw"} true; + $main$__0__$cdQ2GS2~QhaOa7OUvPWMRQ: + assume {:captureState "$main$__0__$cdQ2GS2~QhaOa7OUvPWMRQ"} true; R8, Gamma_R8 := 2bv64, true; - Cse0__5_0_1, Gamma_Cse0__5_0_1 := bvadd32(R0[32:0], 0bv32), Gamma_R0; - VF, Gamma_VF := bvnot1(bvcomp32(Cse0__5_0_1, Cse0__5_0_1)), Gamma_Cse0__5_0_1; - CF, Gamma_CF := bvnot1(bvcomp33(zero_extend1_32(Cse0__5_0_1), bvadd33(zero_extend1_32(R0[32:0]), 4294967296bv33))), (Gamma_R0 && Gamma_Cse0__5_0_1); - ZF, Gamma_ZF := bvcomp32(Cse0__5_0_1, 0bv32), Gamma_Cse0__5_0_1; - NF, Gamma_NF := Cse0__5_0_1[32:31], Gamma_Cse0__5_0_1; + VF, Gamma_VF := 0bv1, true; + CF, Gamma_CF := 1bv1, true; + ZF, Gamma_ZF := bvcomp32(R0[32:0], 0bv32), Gamma_R0; + NF, Gamma_NF := R0[32:31], Gamma_R0; assert Gamma_ZF; - goto main_1812__0__VPrxPsvYQmW1iyrj_de8Iw$__0, main_1812__0__VPrxPsvYQmW1iyrj_de8Iw$__1; - main_1812__0__VPrxPsvYQmW1iyrj_de8Iw$__1: - assume {:captureState "main_1812__0__VPrxPsvYQmW1iyrj_de8Iw$__1"} true; - assume (!(ZF == 1bv1)); - R0, Gamma_R0 := zero_extend32_32(bvadd32(R8[32:0], 1bv32)), Gamma_R8; - goto main_1812_basil_return; - main_1812__0__VPrxPsvYQmW1iyrj_de8Iw$__0: - assume {:captureState "main_1812__0__VPrxPsvYQmW1iyrj_de8Iw$__0"} true; + goto $main$__0__$cdQ2GS2~QhaOa7OUvPWMRQ$__0, $main$__0__$cdQ2GS2~QhaOa7OUvPWMRQ$__1; + $main$__0__$cdQ2GS2~QhaOa7OUvPWMRQ$__0: + assume {:captureState "$main$__0__$cdQ2GS2~QhaOa7OUvPWMRQ$__0"} true; assume (ZF == 1bv1); R0, Gamma_R0 := zero_extend32_32(R8[32:0]), Gamma_R8; - goto main_1812_basil_return; - main_1812_basil_return: - assume {:captureState "main_1812_basil_return"} true; + goto main_basil_return; + $main$__0__$cdQ2GS2~QhaOa7OUvPWMRQ$__1: + assume {:captureState "$main$__0__$cdQ2GS2~QhaOa7OUvPWMRQ$__1"} true; + assume (!(ZF == 1bv1)); + R0, Gamma_R0 := zero_extend32_32(bvadd32(R8[32:0], 1bv32)), Gamma_R8; + goto main_basil_return; + main_basil_return: + assume {:captureState "main_basil_return"} true; return; } diff --git a/src/test/correct/ifbranches/gcc/ifbranches.adt b/src/test/correct/ifbranches/gcc/ifbranches.adt deleted file mode 100644 index 7f3cac559..000000000 --- a/src/test/correct/ifbranches/gcc/ifbranches.adt +++ /dev/null @@ -1,548 +0,0 @@ -Project(Attrs([Attr("filename","\"gcc/ifbranches.out\""), -Attr("image-specification","(declare abi (name str))\n(declare arch (name str))\n(declare base-address (addr int))\n(declare bias (off int))\n(declare bits (size int))\n(declare code-region (addr int) (size int) (off int))\n(declare code-start (addr int))\n(declare entry-point (addr int))\n(declare external-reference (addr int) (name str))\n(declare format (name str))\n(declare is-executable (flag bool))\n(declare is-little-endian (flag bool))\n(declare llvm:base-address (addr int))\n(declare llvm:code-entry (name str) (off int) (size int))\n(declare llvm:coff-import-library (name str))\n(declare llvm:coff-virtual-section-header (name str) (addr int) (size int))\n(declare llvm:elf-program-header (name str) (off int) (size int))\n(declare llvm:elf-program-header-flags (name str) (ld bool) (r bool) \n (w bool) (x bool))\n(declare llvm:elf-virtual-program-header (name str) (addr int) (size int))\n(declare llvm:entry-point (addr int))\n(declare llvm:macho-symbol (name str) (value int))\n(declare llvm:name-reference (at int) (name str))\n(declare llvm:relocation (at int) (addr int))\n(declare llvm:section-entry (name str) (addr int) (size int) (off int))\n(declare llvm:section-flags (name str) (r bool) (w bool) (x bool))\n(declare llvm:segment-command (name str) (off int) (size int))\n(declare llvm:segment-command-flags (name str) (r bool) (w bool) (x bool))\n(declare llvm:symbol-entry (name str) (addr int) (size int) (off int)\n (value int))\n(declare llvm:virtual-segment-command (name str) (addr int) (size int))\n(declare mapped (addr int) (size int) (off int))\n(declare named-region (addr int) (size int) (name str))\n(declare named-symbol (addr int) (name str))\n(declare require (name str))\n(declare section (addr int) (size int))\n(declare segment (addr int) (size int) (r bool) (w bool) (x bool))\n(declare subarch (name str))\n(declare symbol-chunk (addr int) (size int) (root int))\n(declare symbol-value (addr int) (value int))\n(declare system (name str))\n(declare vendor (name str))\n\n(abi unknown)\n(arch aarch64)\n(base-address 0)\n(bias 0)\n(bits 64)\n(code-region 1884 20 1884)\n(code-region 1536 348 1536)\n(code-region 1440 96 1440)\n(code-region 1408 24 1408)\n(code-start 1588)\n(code-start 1536)\n(code-start 1812)\n(entry-point 1536)\n(external-reference 69592 _ITM_deregisterTMCloneTable)\n(external-reference 69600 __cxa_finalize)\n(external-reference 69608 __gmon_start__)\n(external-reference 69624 _ITM_registerTMCloneTable)\n(external-reference 69552 __libc_start_main)\n(external-reference 69560 __cxa_finalize)\n(external-reference 69568 __gmon_start__)\n(external-reference 69576 abort)\n(format elf)\n(is-executable true)\n(is-little-endian true)\n(llvm:base-address 0)\n(llvm:code-entry abort 0 0)\n(llvm:code-entry __cxa_finalize 0 0)\n(llvm:code-entry __libc_start_main 0 0)\n(llvm:code-entry _init 1408 0)\n(llvm:code-entry main 1812 72)\n(llvm:code-entry _start 1536 52)\n(llvm:code-entry abort@GLIBC_2.17 0 0)\n(llvm:code-entry _fini 1884 0)\n(llvm:code-entry __cxa_finalize@GLIBC_2.17 0 0)\n(llvm:code-entry __libc_start_main@GLIBC_2.34 0 0)\n(llvm:code-entry frame_dummy 1808 0)\n(llvm:code-entry __do_global_dtors_aux 1728 0)\n(llvm:code-entry register_tm_clones 1664 0)\n(llvm:code-entry deregister_tm_clones 1616 0)\n(llvm:code-entry call_weak_fn 1588 20)\n(llvm:code-entry .fini 1884 20)\n(llvm:code-entry .text 1536 348)\n(llvm:code-entry .plt 1440 96)\n(llvm:code-entry .init 1408 24)\n(llvm:elf-program-header 08 3480 616)\n(llvm:elf-program-header 07 0 0)\n(llvm:elf-program-header 06 1908 60)\n(llvm:elf-program-header 05 596 68)\n(llvm:elf-program-header 04 3496 496)\n(llvm:elf-program-header 03 3480 632)\n(llvm:elf-program-header 02 0 2132)\n(llvm:elf-program-header 01 568 27)\n(llvm:elf-program-header 00 64 504)\n(llvm:elf-program-header-flags 08 false true false false)\n(llvm:elf-program-header-flags 07 false true true false)\n(llvm:elf-program-header-flags 06 false true false false)\n(llvm:elf-program-header-flags 05 false true false false)\n(llvm:elf-program-header-flags 04 false true true false)\n(llvm:elf-program-header-flags 03 true true true false)\n(llvm:elf-program-header-flags 02 true true false true)\n(llvm:elf-program-header-flags 01 false true false false)\n(llvm:elf-program-header-flags 00 false true false false)\n(llvm:elf-virtual-program-header 08 69016 616)\n(llvm:elf-virtual-program-header 07 0 0)\n(llvm:elf-virtual-program-header 06 1908 60)\n(llvm:elf-virtual-program-header 05 596 68)\n(llvm:elf-virtual-program-header 04 69032 496)\n(llvm:elf-virtual-program-header 03 69016 640)\n(llvm:elf-virtual-program-header 02 0 2132)\n(llvm:elf-virtual-program-header 01 568 27)\n(llvm:elf-virtual-program-header 00 64 504)\n(llvm:entry-point 1536)\n(llvm:name-reference 69576 abort)\n(llvm:name-reference 69568 __gmon_start__)\n(llvm:name-reference 69560 __cxa_finalize)\n(llvm:name-reference 69552 __libc_start_main)\n(llvm:name-reference 69624 _ITM_registerTMCloneTable)\n(llvm:name-reference 69608 __gmon_start__)\n(llvm:name-reference 69600 __cxa_finalize)\n(llvm:name-reference 69592 _ITM_deregisterTMCloneTable)\n(llvm:section-entry .shstrtab 0 250 6770)\n(llvm:section-entry .strtab 0 546 6224)\n(llvm:section-entry .symtab 0 2064 4160)\n(llvm:section-entry .comment 0 43 4112)\n(llvm:section-entry .bss 69648 8 4112)\n(llvm:section-entry .data 69632 16 4096)\n(llvm:section-entry .got 69528 104 3992)\n(llvm:section-entry .dynamic 69032 496 3496)\n(llvm:section-entry .fini_array 69024 8 3488)\n(llvm:section-entry .init_array 69016 8 3480)\n(llvm:section-entry .eh_frame 1968 164 1968)\n(llvm:section-entry .eh_frame_hdr 1908 60 1908)\n(llvm:section-entry .rodata 1904 4 1904)\n(llvm:section-entry .fini 1884 20 1884)\n(llvm:section-entry .text 1536 348 1536)\n(llvm:section-entry .plt 1440 96 1440)\n(llvm:section-entry .init 1408 24 1408)\n(llvm:section-entry .rela.plt 1312 96 1312)\n(llvm:section-entry .rela.dyn 1120 192 1120)\n(llvm:section-entry .gnu.version_r 1072 48 1072)\n(llvm:section-entry .gnu.version 1054 18 1054)\n(llvm:section-entry .dynstr 912 141 912)\n(llvm:section-entry .dynsym 696 216 696)\n(llvm:section-entry .gnu.hash 664 28 664)\n(llvm:section-entry .note.ABI-tag 632 32 632)\n(llvm:section-entry .note.gnu.build-id 596 36 596)\n(llvm:section-entry .interp 568 27 568)\n(llvm:section-flags .shstrtab true false false)\n(llvm:section-flags .strtab true false false)\n(llvm:section-flags .symtab true false false)\n(llvm:section-flags .comment true false false)\n(llvm:section-flags .bss true true false)\n(llvm:section-flags .data true true false)\n(llvm:section-flags .got true true false)\n(llvm:section-flags .dynamic true true false)\n(llvm:section-flags .fini_array true true false)\n(llvm:section-flags .init_array true true false)\n(llvm:section-flags .eh_frame true false false)\n(llvm:section-flags .eh_frame_hdr true false false)\n(llvm:section-flags .rodata true false false)\n(llvm:section-flags .fini true false true)\n(llvm:section-flags .text true false true)\n(llvm:section-flags .plt true false true)\n(llvm:section-flags .init true false true)\n(llvm:section-flags .rela.plt true false false)\n(llvm:section-flags .rela.dyn true false false)\n(llvm:section-flags .gnu.version_r true false false)\n(llvm:section-flags .gnu.version true false false)\n(llvm:section-flags .dynstr true false false)\n(llvm:section-flags .dynsym true false false)\n(llvm:section-flags .gnu.hash true false false)\n(llvm:section-flags .note.ABI-tag true false false)\n(llvm:section-flags .note.gnu.build-id true false false)\n(llvm:section-flags .interp true false false)\n(llvm:symbol-entry abort 0 0 0 0)\n(llvm:symbol-entry __cxa_finalize 0 0 0 0)\n(llvm:symbol-entry __libc_start_main 0 0 0 0)\n(llvm:symbol-entry _init 1408 0 1408 1408)\n(llvm:symbol-entry main 1812 72 1812 1812)\n(llvm:symbol-entry _start 1536 52 1536 1536)\n(llvm:symbol-entry abort@GLIBC_2.17 0 0 0 0)\n(llvm:symbol-entry _fini 1884 0 1884 1884)\n(llvm:symbol-entry __cxa_finalize@GLIBC_2.17 0 0 0 0)\n(llvm:symbol-entry __libc_start_main@GLIBC_2.34 0 0 0 0)\n(llvm:symbol-entry frame_dummy 1808 0 1808 1808)\n(llvm:symbol-entry __do_global_dtors_aux 1728 0 1728 1728)\n(llvm:symbol-entry register_tm_clones 1664 0 1664 1664)\n(llvm:symbol-entry deregister_tm_clones 1616 0 1616 1616)\n(llvm:symbol-entry call_weak_fn 1588 20 1588 1588)\n(mapped 0 2132 0)\n(mapped 69016 632 3480)\n(named-region 0 2132 02)\n(named-region 69016 640 03)\n(named-region 568 27 .interp)\n(named-region 596 36 .note.gnu.build-id)\n(named-region 632 32 .note.ABI-tag)\n(named-region 664 28 .gnu.hash)\n(named-region 696 216 .dynsym)\n(named-region 912 141 .dynstr)\n(named-region 1054 18 .gnu.version)\n(named-region 1072 48 .gnu.version_r)\n(named-region 1120 192 .rela.dyn)\n(named-region 1312 96 .rela.plt)\n(named-region 1408 24 .init)\n(named-region 1440 96 .plt)\n(named-region 1536 348 .text)\n(named-region 1884 20 .fini)\n(named-region 1904 4 .rodata)\n(named-region 1908 60 .eh_frame_hdr)\n(named-region 1968 164 .eh_frame)\n(named-region 69016 8 .init_array)\n(named-region 69024 8 .fini_array)\n(named-region 69032 496 .dynamic)\n(named-region 69528 104 .got)\n(named-region 69632 16 .data)\n(named-region 69648 8 .bss)\n(named-region 0 43 .comment)\n(named-region 0 2064 .symtab)\n(named-region 0 546 .strtab)\n(named-region 0 250 .shstrtab)\n(named-symbol 1588 call_weak_fn)\n(named-symbol 1616 deregister_tm_clones)\n(named-symbol 1664 register_tm_clones)\n(named-symbol 1728 __do_global_dtors_aux)\n(named-symbol 1808 frame_dummy)\n(named-symbol 0 __libc_start_main@GLIBC_2.34)\n(named-symbol 0 __cxa_finalize@GLIBC_2.17)\n(named-symbol 1884 _fini)\n(named-symbol 0 abort@GLIBC_2.17)\n(named-symbol 1536 _start)\n(named-symbol 1812 main)\n(named-symbol 1408 _init)\n(named-symbol 0 __libc_start_main)\n(named-symbol 0 __cxa_finalize)\n(named-symbol 0 abort)\n(require libc.so.6)\n(section 568 27)\n(section 596 36)\n(section 632 32)\n(section 664 28)\n(section 696 216)\n(section 912 141)\n(section 1054 18)\n(section 1072 48)\n(section 1120 192)\n(section 1312 96)\n(section 1408 24)\n(section 1440 96)\n(section 1536 348)\n(section 1884 20)\n(section 1904 4)\n(section 1908 60)\n(section 1968 164)\n(section 69016 8)\n(section 69024 8)\n(section 69032 496)\n(section 69528 104)\n(section 69632 16)\n(section 69648 8)\n(section 0 43)\n(section 0 2064)\n(section 0 546)\n(section 0 250)\n(segment 0 2132 true false true)\n(segment 69016 640 true true false)\n(subarch v8)\n(symbol-chunk 1588 20 1588)\n(symbol-chunk 1536 52 1536)\n(symbol-chunk 1812 72 1812)\n(symbol-value 1588 1588)\n(symbol-value 1616 1616)\n(symbol-value 1664 1664)\n(symbol-value 1728 1728)\n(symbol-value 1808 1808)\n(symbol-value 1884 1884)\n(symbol-value 1536 1536)\n(symbol-value 1812 1812)\n(symbol-value 1408 1408)\n(symbol-value 0 0)\n(system \"\")\n(vendor \"\")\n"), -Attr("abi-name","\"aarch64-linux-gnu-elf\"")]), -Sections([Section(".shstrtab", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x00\x06\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x70\x1b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x38\x00\x09\x00\x40\x00\x1c\x00\x1b\x00\x06\x00\x00\x00\x04\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x04\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x54\x08\x00\x00\x00\x00\x00\x00\x54\x08\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x01\x00\x00\x00\x06\x00\x00\x00\x98\x0d\x00\x00\x00\x00\x00\x00\x98\x0d"), -Section(".strtab", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x00\x06\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x70\x1b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x38\x00\x09\x00\x40\x00\x1c\x00\x1b\x00\x06\x00\x00\x00\x04\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x04\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x54\x08\x00\x00\x00\x00\x00\x00\x54\x08\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x01\x00\x00\x00\x06\x00\x00\x00\x98\x0d\x00\x00\x00\x00\x00\x00\x98\x0d\x01\x00\x00\x00\x00\x00\x98\x0d\x01\x00\x00\x00\x00\x00\x78\x02\x00\x00\x00\x00\x00\x00\x80\x02\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x02\x00\x00\x00\x06\x00\x00\x00\xa8\x0d\x00\x00\x00\x00\x00\x00\xa8\x0d\x01\x00\x00\x00\x00\x00\xa8\x0d\x01\x00\x00\x00\x00\x00\xf0\x01\x00\x00\x00\x00\x00\x00\xf0\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x04\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x50\xe5\x74\x64\x04\x00\x00\x00\x74\x07\x00\x00\x00\x00\x00\x00\x74\x07\x00\x00\x00\x00\x00\x00\x74\x07\x00\x00\x00\x00\x00\x00\x3c\x00\x00\x00\x00\x00\x00\x00\x3c\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x51\xe5\x74\x64\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x52\xe5\x74\x64\x04\x00\x00\x00\x98\x0d\x00\x00\x00\x00\x00\x00\x98\x0d\x01\x00\x00\x00\x00\x00\x98\x0d\x01\x00\x00\x00\x00\x00\x68\x02"), -Section(".symtab", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x00\x06\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x70\x1b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x38\x00\x09\x00\x40\x00\x1c\x00\x1b\x00\x06\x00\x00\x00\x04\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x04\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x54\x08\x00\x00\x00\x00\x00\x00\x54\x08\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x01\x00\x00\x00\x06\x00\x00\x00\x98\x0d\x00\x00\x00\x00\x00\x00\x98\x0d\x01\x00\x00\x00\x00\x00\x98\x0d\x01\x00\x00\x00\x00\x00\x78\x02\x00\x00\x00\x00\x00\x00\x80\x02\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x02\x00\x00\x00\x06\x00\x00\x00\xa8\x0d\x00\x00\x00\x00\x00\x00\xa8\x0d\x01\x00\x00\x00\x00\x00\xa8\x0d\x01\x00\x00\x00\x00\x00\xf0\x01\x00\x00\x00\x00\x00\x00\xf0\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x04\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x50\xe5\x74\x64\x04\x00\x00\x00\x74\x07\x00\x00\x00\x00\x00\x00\x74\x07\x00\x00\x00\x00\x00\x00\x74\x07\x00\x00\x00\x00\x00\x00\x3c\x00\x00\x00\x00\x00\x00\x00\x3c\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x51\xe5\x74\x64\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x52\xe5\x74\x64\x04\x00\x00\x00\x98\x0d\x00\x00\x00\x00\x00\x00\x98\x0d\x01\x00\x00\x00\x00\x00\x98\x0d\x01\x00\x00\x00\x00\x00\x68\x02\x00\x00\x00\x00\x00\x00\x68\x02\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x2f\x6c\x69\x62\x2f\x6c\x64\x2d\x6c\x69\x6e\x75\x78\x2d\x61\x61\x72\x63\x68\x36\x34\x2e\x73\x6f\x2e\x31\x00\x00\x04\x00\x00\x00\x14\x00\x00\x00\x03\x00\x00\x00\x47\x4e\x55\x00\xf9\x5e\x5a\x67\xfa\xd2\x74\xdf\xbc\x5a\x48\x6b\x70\x8e\xd8\x4d\x8c\x85\xf4\x07\x04\x00\x00\x00\x10\x00\x00\x00\x01\x00\x00\x00\x47\x4e\x55\x00\x00\x00\x00\x00\x03\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x01\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x0b\x00\x80\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x16\x00\x00\x10\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x48\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x22\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x22\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x73\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5f\x5f\x63\x78\x61\x5f\x66\x69\x6e\x61\x6c\x69\x7a\x65\x00\x5f\x5f\x6c\x69\x62\x63\x5f\x73\x74\x61\x72\x74\x5f\x6d\x61\x69\x6e\x00\x61\x62\x6f\x72\x74\x00\x6c\x69\x62\x63\x2e\x73\x6f\x2e\x36\x00\x47\x4c\x49\x42\x43\x5f\x32\x2e\x31\x37\x00\x47\x4c\x49\x42\x43\x5f\x32\x2e\x33\x34\x00\x5f\x49\x54\x4d\x5f\x64\x65\x72\x65\x67\x69\x73\x74\x65\x72\x54\x4d\x43\x6c\x6f\x6e\x65\x54\x61\x62\x6c\x65\x00\x5f\x5f\x67\x6d\x6f\x6e\x5f\x73\x74\x61\x72\x74\x5f\x5f\x00\x5f\x49\x54\x4d\x5f\x72\x65\x67\x69\x73\x74\x65\x72\x54\x4d\x43\x6c\x6f\x6e\x65\x54\x61\x62\x6c\x65\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x01\x00\x03\x00\x01\x00\x03\x00\x01\x00\x01\x00\x02\x00\x28\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x97\x91\x96\x06\x00\x00\x03\x00\x32\x00\x00\x00\x10\x00\x00\x00\xb4\x91\x96\x06\x00\x00\x02\x00\x3d\x00\x00\x00\x00\x00\x00\x00\x98\x0d\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x10\x07\x00\x00\x00\x00\x00\x00\xa0\x0d\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\xc0\x06\x00\x00\x00\x00\x00\x00\xf0\x0f\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x14\x07\x00\x00\x00\x00\x00\x00\x08\x10\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x08\x10\x01\x00\x00\x00\x00\x00\xd8\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe0\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe8\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xf8\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xb0\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xb8\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xc0\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xc8\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1f\x20\x03\xd5\xfd\x7b\xbf\xa9\xfd\x03\x00\x91\x2a\x00\x00\x94\xfd\x7b\xc1\xa8\xc0\x03\x5f\xd6\x00\x00\x00\x00\x00\x00\x00\x00\xf0\x7b\xbf\xa9\x90\x00\x00\x90\x11\xd6\x47\xf9\x10\xa2\x3e\x91\x20\x02\x1f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x90\x00\x00\x90\x11\xda\x47\xf9\x10\xc2\x3e\x91\x20\x02\x1f\xd6\x90\x00\x00\x90\x11\xde\x47\xf9\x10\xe2\x3e\x91\x20\x02\x1f\xd6\x90\x00\x00\x90\x11\xe2\x47\xf9\x10\x02\x3f\x91\x20\x02\x1f\xd6\x90\x00\x00\x90\x11\xe6\x47\xf9\x10\x22\x3f\x91\x20\x02\x1f\xd6\x1f\x20\x03\xd5\x1d\x00\x80\xd2\x1e\x00\x80\xd2\xe5\x03\x00\xaa\xe1\x03\x40\xf9\xe2\x23\x00\x91\xe6\x03\x00\x91\x80\x00\x00\x90\x00\xf8\x47\xf9\x03\x00\x80\xd2\x04\x00\x80\xd2\xe5\xff\xff\x97\xf0\xff\xff\x97\x80\x00\x00\x90\x00\xf4\x47\xf9\x40\x00\x00\xb4\xe8\xff\xff\x17\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x80\x00\x00\xb0\x00\x40\x00\x91\x81\x00\x00\xb0\x21\x40\x00\x91\x3f\x00\x00\xeb\xc0\x00\x00\x54\x81\x00\x00\x90\x21\xec\x47\xf9\x61\x00\x00\xb4\xf0\x03\x01\xaa\x00\x02\x1f\xd6\xc0\x03\x5f\xd6\x80\x00\x00\xb0\x00\x40\x00\x91\x81\x00\x00\xb0\x21\x40\x00\x91\x21\x00\x00\xcb\x22\xfc\x7f\xd3\x41\x0c\x81\x8b\x21\xfc\x41\x93\xc1\x00\x00\xb4\x82\x00\x00\x90\x42\xfc\x47\xf9\x62\x00\x00\xb4\xf0\x03\x02\xaa\x00\x02\x1f\xd6\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\xfd\x7b\xbe\xa9\xfd\x03\x00\x91\xf3\x0b\x00\xf9\x93\x00\x00\xb0\x60\x42\x40\x39\x40\x01\x00\x35\x80\x00\x00\x90\x00\xf0\x47\xf9\x80\x00\x00\xb4\x80\x00\x00\xb0\x00\x04\x40\xf9\xb9\xff\xff\x97\xd8\xff\xff\x97\x20\x00\x80\x52\x60\x42\x00\x39\xf3\x0b\x40\xf9\xfd\x7b\xc2\xa8\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\xdc\xff\xff\x17\xff\x83\x00\xd1\xe0\x0f\x00\xb9\xe1\x03\x00\xf9\xff\x1b\x00\xb9\xe0\x0f\x40\xb9\x1f\x00\x00\x71\x81\x00\x00\x54\x20\x00\x80\x52\xe0\x1b\x00\xb9\x03\x00\x00\x14\x40\x00\x80\x52\xe0\x1b\x00\xb9\xe0\x1b\x40\xb9\x00\x04\x00\x11\xe0\x1f\x00\xb9\xe0\x1f\x40\xb9\xff\x83\x00\x91\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\xfd\x7b\xbf\xa9\xfd\x03\x00\x91\xfd\x7b\xc1\xa8\xc0\x03\x5f\xd6\x01\x00\x02\x00\x01\x1b\x03\x3b\x38\x00\x00\x00\x06\x00\x00\x00\x8c\xfe\xff\xff\x50\x00\x00\x00\xdc\xfe\xff\xff\x64\x00\x00\x00\x0c\xff\xff\xff\x78\x00\x00\x00\x4c\xff\xff\xff\x8c\x00\x00\x00\x9c\xff\xff\xff\xb0\x00\x00\x00\xa0\xff\xff\xff\xc4\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x01\x7a\x52\x00\x04\x78\x1e\x01\x1b\x0c\x1f\x00\x10\x00\x00\x00\x18\x00\x00\x00\x34\xfe\xff\xff\x34\x00\x00\x00\x00\x41\x07\x1e\x10\x00\x00\x00\x2c\x00\x00\x00\x70\xfe\xff\xff\x30\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x40\x00\x00\x00\x8c\xfe\xff\xff\x3c\x00\x00\x00\x00\x00\x00\x00\x20\x00\x00\x00\x54\x00\x00\x00\xb8\xfe\xff\xff\x48\x00\x00\x00"), -Section(".comment", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x00\x06\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x70\x1b\x00"), -Section(".interp", 0x238, "\x2f\x6c\x69\x62\x2f\x6c\x64\x2d\x6c\x69\x6e\x75\x78\x2d\x61\x61\x72\x63\x68\x36\x34\x2e\x73\x6f\x2e\x31\x00"), -Section(".note.gnu.build-id", 0x254, "\x04\x00\x00\x00\x14\x00\x00\x00\x03\x00\x00\x00\x47\x4e\x55\x00\xf9\x5e\x5a\x67\xfa\xd2\x74\xdf\xbc\x5a\x48\x6b\x70\x8e\xd8\x4d\x8c\x85\xf4\x07"), -Section(".note.ABI-tag", 0x278, "\x04\x00\x00\x00\x10\x00\x00\x00\x01\x00\x00\x00\x47\x4e\x55\x00\x00\x00\x00\x00\x03\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00"), -Section(".gnu.hash", 0x298, "\x01\x00\x00\x00\x01\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".dynsym", 0x2B8, "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x0b\x00\x80\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x16\x00\x00\x10\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x48\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x22\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x22\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x73\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".dynstr", 0x390, "\x00\x5f\x5f\x63\x78\x61\x5f\x66\x69\x6e\x61\x6c\x69\x7a\x65\x00\x5f\x5f\x6c\x69\x62\x63\x5f\x73\x74\x61\x72\x74\x5f\x6d\x61\x69\x6e\x00\x61\x62\x6f\x72\x74\x00\x6c\x69\x62\x63\x2e\x73\x6f\x2e\x36\x00\x47\x4c\x49\x42\x43\x5f\x32\x2e\x31\x37\x00\x47\x4c\x49\x42\x43\x5f\x32\x2e\x33\x34\x00\x5f\x49\x54\x4d\x5f\x64\x65\x72\x65\x67\x69\x73\x74\x65\x72\x54\x4d\x43\x6c\x6f\x6e\x65\x54\x61\x62\x6c\x65\x00\x5f\x5f\x67\x6d\x6f\x6e\x5f\x73\x74\x61\x72\x74\x5f\x5f\x00\x5f\x49\x54\x4d\x5f\x72\x65\x67\x69\x73\x74\x65\x72\x54\x4d\x43\x6c\x6f\x6e\x65\x54\x61\x62\x6c\x65\x00"), -Section(".gnu.version", 0x41E, "\x00\x00\x00\x00\x00\x00\x02\x00\x01\x00\x03\x00\x01\x00\x03\x00\x01\x00"), -Section(".gnu.version_r", 0x430, "\x01\x00\x02\x00\x28\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x97\x91\x96\x06\x00\x00\x03\x00\x32\x00\x00\x00\x10\x00\x00\x00\xb4\x91\x96\x06\x00\x00\x02\x00\x3d\x00\x00\x00\x00\x00\x00\x00"), -Section(".rela.dyn", 0x460, "\x98\x0d\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x10\x07\x00\x00\x00\x00\x00\x00\xa0\x0d\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\xc0\x06\x00\x00\x00\x00\x00\x00\xf0\x0f\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x14\x07\x00\x00\x00\x00\x00\x00\x08\x10\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x08\x10\x01\x00\x00\x00\x00\x00\xd8\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe0\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe8\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xf8\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".rela.plt", 0x520, "\xb0\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xb8\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xc0\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xc8\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".init", 0x580, "\x1f\x20\x03\xd5\xfd\x7b\xbf\xa9\xfd\x03\x00\x91\x2a\x00\x00\x94\xfd\x7b\xc1\xa8\xc0\x03\x5f\xd6"), -Section(".plt", 0x5A0, "\xf0\x7b\xbf\xa9\x90\x00\x00\x90\x11\xd6\x47\xf9\x10\xa2\x3e\x91\x20\x02\x1f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x90\x00\x00\x90\x11\xda\x47\xf9\x10\xc2\x3e\x91\x20\x02\x1f\xd6\x90\x00\x00\x90\x11\xde\x47\xf9\x10\xe2\x3e\x91\x20\x02\x1f\xd6\x90\x00\x00\x90\x11\xe2\x47\xf9\x10\x02\x3f\x91\x20\x02\x1f\xd6\x90\x00\x00\x90\x11\xe6\x47\xf9\x10\x22\x3f\x91\x20\x02\x1f\xd6"), -Section(".fini", 0x75C, "\x1f\x20\x03\xd5\xfd\x7b\xbf\xa9\xfd\x03\x00\x91\xfd\x7b\xc1\xa8\xc0\x03\x5f\xd6"), -Section(".rodata", 0x770, "\x01\x00\x02\x00"), -Section(".eh_frame_hdr", 0x774, "\x01\x1b\x03\x3b\x38\x00\x00\x00\x06\x00\x00\x00\x8c\xfe\xff\xff\x50\x00\x00\x00\xdc\xfe\xff\xff\x64\x00\x00\x00\x0c\xff\xff\xff\x78\x00\x00\x00\x4c\xff\xff\xff\x8c\x00\x00\x00\x9c\xff\xff\xff\xb0\x00\x00\x00\xa0\xff\xff\xff\xc4\x00\x00\x00"), -Section(".eh_frame", 0x7B0, "\x10\x00\x00\x00\x00\x00\x00\x00\x01\x7a\x52\x00\x04\x78\x1e\x01\x1b\x0c\x1f\x00\x10\x00\x00\x00\x18\x00\x00\x00\x34\xfe\xff\xff\x34\x00\x00\x00\x00\x41\x07\x1e\x10\x00\x00\x00\x2c\x00\x00\x00\x70\xfe\xff\xff\x30\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x40\x00\x00\x00\x8c\xfe\xff\xff\x3c\x00\x00\x00\x00\x00\x00\x00\x20\x00\x00\x00\x54\x00\x00\x00\xb8\xfe\xff\xff\x48\x00\x00\x00\x00\x41\x0e\x20\x9d\x04\x9e\x03\x42\x93\x02\x4e\xde\xdd\xd3\x0e\x00\x00\x00\x00\x10\x00\x00\x00\x78\x00\x00\x00\xe4\xfe\xff\xff\x04\x00\x00\x00\x00\x00\x00\x00\x14\x00\x00\x00\x8c\x00\x00\x00\xd4\xfe\xff\xff\x48\x00\x00\x00\x00\x41\x0e\x20\x50\x0e\x00\x00\x00\x00\x00\x00"), -Section(".fini_array", 0x10DA0, "\xc0\x06\x00\x00\x00\x00\x00\x00"), -Section(".dynamic", 0x10DA8, "\x01\x00\x00\x00\x00\x00\x00\x00\x28\x00\x00\x00\x00\x00\x00\x00\x0c\x00\x00\x00\x00\x00\x00\x00\x80\x05\x00\x00\x00\x00\x00\x00\x0d\x00\x00\x00\x00\x00\x00\x00\x5c\x07\x00\x00\x00\x00\x00\x00\x19\x00\x00\x00\x00\x00\x00\x00\x98\x0d\x01\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x1a\x00\x00\x00\x00\x00\x00\x00\xa0\x0d\x01\x00\x00\x00\x00\x00\x1c\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\xf5\xfe\xff\x6f\x00\x00\x00\x00\x98\x02\x00\x00\x00\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x90\x03\x00\x00\x00\x00\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\xb8\x02\x00\x00\x00\x00\x00\x00\x0a\x00\x00\x00\x00\x00\x00\x00\x8d\x00\x00\x00\x00\x00\x00\x00\x0b\x00\x00\x00\x00\x00\x00\x00\x18\x00\x00\x00\x00\x00\x00\x00\x15\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x98\x0f\x01\x00\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x60\x00\x00\x00\x00\x00\x00\x00\x14\x00\x00\x00\x00\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x17\x00\x00\x00\x00\x00\x00\x00\x20\x05\x00\x00\x00\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x60\x04\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\xc0\x00\x00\x00\x00\x00\x00\x00\x09\x00\x00\x00\x00\x00\x00\x00\x18\x00\x00\x00\x00\x00\x00\x00\x1e\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\xfb\xff\xff\x6f\x00\x00\x00\x00\x01\x00\x00\x08\x00\x00\x00\x00\xfe\xff\xff\x6f\x00\x00\x00\x00\x30\x04\x00\x00\x00\x00\x00\x00\xff\xff\xff\x6f\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\xf0\xff\xff\x6f\x00\x00\x00\x00\x1e\x04\x00\x00\x00\x00\x00\x00\xf9\xff\xff\x6f\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".got", 0x10F98, "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xa0\x05\x00\x00\x00\x00\x00\x00\xa0\x05\x00\x00\x00\x00\x00\x00\xa0\x05\x00\x00\x00\x00\x00\x00\xa0\x05\x00\x00\x00\x00\x00\x00\xa8\x0d\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x14\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".data", 0x11000, "\x00\x00\x00\x00\x00\x00\x00\x00\x08\x10\x01\x00\x00\x00\x00\x00"), -Section(".init_array", 0x10D98, "\x10\x07\x00\x00\x00\x00\x00\x00"), -Section(".text", 0x600, "\x1f\x20\x03\xd5\x1d\x00\x80\xd2\x1e\x00\x80\xd2\xe5\x03\x00\xaa\xe1\x03\x40\xf9\xe2\x23\x00\x91\xe6\x03\x00\x91\x80\x00\x00\x90\x00\xf8\x47\xf9\x03\x00\x80\xd2\x04\x00\x80\xd2\xe5\xff\xff\x97\xf0\xff\xff\x97\x80\x00\x00\x90\x00\xf4\x47\xf9\x40\x00\x00\xb4\xe8\xff\xff\x17\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x80\x00\x00\xb0\x00\x40\x00\x91\x81\x00\x00\xb0\x21\x40\x00\x91\x3f\x00\x00\xeb\xc0\x00\x00\x54\x81\x00\x00\x90\x21\xec\x47\xf9\x61\x00\x00\xb4\xf0\x03\x01\xaa\x00\x02\x1f\xd6\xc0\x03\x5f\xd6\x80\x00\x00\xb0\x00\x40\x00\x91\x81\x00\x00\xb0\x21\x40\x00\x91\x21\x00\x00\xcb\x22\xfc\x7f\xd3\x41\x0c\x81\x8b\x21\xfc\x41\x93\xc1\x00\x00\xb4\x82\x00\x00\x90\x42\xfc\x47\xf9\x62\x00\x00\xb4\xf0\x03\x02\xaa\x00\x02\x1f\xd6\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\xfd\x7b\xbe\xa9\xfd\x03\x00\x91\xf3\x0b\x00\xf9\x93\x00\x00\xb0\x60\x42\x40\x39\x40\x01\x00\x35\x80\x00\x00\x90\x00\xf0\x47\xf9\x80\x00\x00\xb4\x80\x00\x00\xb0\x00\x04\x40\xf9\xb9\xff\xff\x97\xd8\xff\xff\x97\x20\x00\x80\x52\x60\x42\x00\x39\xf3\x0b\x40\xf9\xfd\x7b\xc2\xa8\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\xdc\xff\xff\x17\xff\x83\x00\xd1\xe0\x0f\x00\xb9\xe1\x03\x00\xf9\xff\x1b\x00\xb9\xe0\x0f\x40\xb9\x1f\x00\x00\x71\x81\x00\x00\x54\x20\x00\x80\x52\xe0\x1b\x00\xb9\x03\x00\x00\x14\x40\x00\x80\x52\xe0\x1b\x00\xb9\xe0\x1b\x40\xb9\x00\x04\x00\x11\xe0\x1f\x00\xb9\xe0\x1f\x40\xb9\xff\x83\x00\x91\xc0\x03\x5f\xd6")]), -Memmap([Annotation(Region(0x0,0x853), Attr("segment","02 0 2132")), -Annotation(Region(0x600,0x633), Attr("symbol","\"_start\"")), -Annotation(Region(0x0,0xF9), Attr("section","\".shstrtab\"")), -Annotation(Region(0x0,0x221), Attr("section","\".strtab\"")), -Annotation(Region(0x0,0x80F), Attr("section","\".symtab\"")), -Annotation(Region(0x0,0x2A), Attr("section","\".comment\"")), -Annotation(Region(0x238,0x252), Attr("section","\".interp\"")), -Annotation(Region(0x254,0x277), Attr("section","\".note.gnu.build-id\"")), -Annotation(Region(0x278,0x297), Attr("section","\".note.ABI-tag\"")), -Annotation(Region(0x298,0x2B3), Attr("section","\".gnu.hash\"")), -Annotation(Region(0x2B8,0x38F), Attr("section","\".dynsym\"")), -Annotation(Region(0x390,0x41C), Attr("section","\".dynstr\"")), -Annotation(Region(0x41E,0x42F), Attr("section","\".gnu.version\"")), -Annotation(Region(0x430,0x45F), Attr("section","\".gnu.version_r\"")), -Annotation(Region(0x460,0x51F), Attr("section","\".rela.dyn\"")), -Annotation(Region(0x520,0x57F), Attr("section","\".rela.plt\"")), -Annotation(Region(0x580,0x597), Attr("section","\".init\"")), -Annotation(Region(0x5A0,0x5FF), Attr("section","\".plt\"")), -Annotation(Region(0x580,0x597), Attr("code-region","()")), -Annotation(Region(0x5A0,0x5FF), Attr("code-region","()")), -Annotation(Region(0x600,0x633), Attr("symbol-info","_start 0x600 52")), -Annotation(Region(0x634,0x647), Attr("symbol","\"call_weak_fn\"")), -Annotation(Region(0x634,0x647), Attr("symbol-info","call_weak_fn 0x634 20")), -Annotation(Region(0x714,0x75B), Attr("symbol","\"main\"")), -Annotation(Region(0x714,0x75B), Attr("symbol-info","main 0x714 72")), -Annotation(Region(0x75C,0x76F), Attr("section","\".fini\"")), -Annotation(Region(0x770,0x773), Attr("section","\".rodata\"")), -Annotation(Region(0x774,0x7AF), Attr("section","\".eh_frame_hdr\"")), -Annotation(Region(0x7B0,0x853), Attr("section","\".eh_frame\"")), -Annotation(Region(0x10D98,0x1100F), Attr("segment","03 0x10D98 640")), -Annotation(Region(0x10DA0,0x10DA7), Attr("section","\".fini_array\"")), -Annotation(Region(0x10DA8,0x10F97), Attr("section","\".dynamic\"")), -Annotation(Region(0x10F98,0x10FFF), Attr("section","\".got\"")), -Annotation(Region(0x11000,0x1100F), Attr("section","\".data\"")), -Annotation(Region(0x10D98,0x10D9F), Attr("section","\".init_array\"")), -Annotation(Region(0x600,0x75B), Attr("section","\".text\"")), -Annotation(Region(0x600,0x75B), Attr("code-region","()")), -Annotation(Region(0x75C,0x76F), Attr("code-region","()"))]), -Program(Tid(1_607, "%00000647"), Attrs([]), - Subs([Sub(Tid(1_553, "@__cxa_finalize"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x5D0"), -Attr("stub","()")]), "__cxa_finalize", Args([Arg(Tid(1_608, "%00000648"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("__cxa_finalize_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(945, "@__cxa_finalize"), - Attrs([Attr("address","0x5D0")]), Phis([]), -Defs([Def(Tid(1_193, "%000004a9"), Attrs([Attr("address","0x5D0"), -Attr("insn","adrp x16, #65536")]), Var("R16",Imm(64)), Int(65536,64)), -Def(Tid(1_200, "%000004b0"), Attrs([Attr("address","0x5D4"), -Attr("insn","ldr x17, [x16, #0xfb8]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(4024,64)),LittleEndian(),64)), -Def(Tid(1_206, "%000004b6"), Attrs([Attr("address","0x5D8"), -Attr("insn","add x16, x16, #0xfb8")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(4024,64)))]), Jmps([Call(Tid(1_211, "%000004bb"), - Attrs([Attr("address","0x5DC"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), -Sub(Tid(1_554, "@__do_global_dtors_aux"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x6C0")]), - "__do_global_dtors_aux", Args([Arg(Tid(1_609, "%00000649"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("__do_global_dtors_aux_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(662, "@__do_global_dtors_aux"), - Attrs([Attr("address","0x6C0")]), Phis([]), Defs([Def(Tid(666, "%0000029a"), - Attrs([Attr("address","0x6C0"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("#3",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(18446744073709551584,64))), -Def(Tid(672, "%000002a0"), Attrs([Attr("address","0x6C0"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("#3",Imm(64)),Var("R29",Imm(64)),LittleEndian(),64)), -Def(Tid(678, "%000002a6"), Attrs([Attr("address","0x6C0"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("#3",Imm(64)),Int(8,64)),Var("R30",Imm(64)),LittleEndian(),64)), -Def(Tid(682, "%000002aa"), Attrs([Attr("address","0x6C0"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("R31",Imm(64)), -Var("#3",Imm(64))), Def(Tid(688, "%000002b0"), - Attrs([Attr("address","0x6C4"), Attr("insn","mov x29, sp")]), - Var("R29",Imm(64)), Var("R31",Imm(64))), Def(Tid(696, "%000002b8"), - Attrs([Attr("address","0x6C8"), Attr("insn","str x19, [sp, #0x10]")]), - Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(16,64)),Var("R19",Imm(64)),LittleEndian(),64)), -Def(Tid(701, "%000002bd"), Attrs([Attr("address","0x6CC"), -Attr("insn","adrp x19, #69632")]), Var("R19",Imm(64)), Int(69632,64)), -Def(Tid(708, "%000002c4"), Attrs([Attr("address","0x6D0"), -Attr("insn","ldrb w0, [x19, #0x10]")]), Var("R0",Imm(64)), -UNSIGNED(64,Load(Var("mem",Mem(64,8)),PLUS(Var("R19",Imm(64)),Int(16,64)),LittleEndian(),8)))]), -Jmps([Goto(Tid(715, "%000002cb"), Attrs([Attr("address","0x6D4"), -Attr("insn","cbnz w0, #0x28")]), - NEQ(Extract(31,0,Var("R0",Imm(64))),Int(0,32)), -Direct(Tid(713, "%000002c9"))), Goto(Tid(1_595, "%0000063b"), Attrs([]), - Int(1,1), Direct(Tid(890, "%0000037a")))])), Blk(Tid(890, "%0000037a"), - Attrs([Attr("address","0x6D8")]), Phis([]), Defs([Def(Tid(893, "%0000037d"), - Attrs([Attr("address","0x6D8"), Attr("insn","adrp x0, #65536")]), - Var("R0",Imm(64)), Int(65536,64)), Def(Tid(900, "%00000384"), - Attrs([Attr("address","0x6DC"), Attr("insn","ldr x0, [x0, #0xfe0]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(4064,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(906, "%0000038a"), Attrs([Attr("address","0x6E0"), -Attr("insn","cbz x0, #0x10")]), EQ(Var("R0",Imm(64)),Int(0,64)), -Direct(Tid(904, "%00000388"))), Goto(Tid(1_596, "%0000063c"), Attrs([]), - Int(1,1), Direct(Tid(929, "%000003a1")))])), Blk(Tid(929, "%000003a1"), - Attrs([Attr("address","0x6E4")]), Phis([]), Defs([Def(Tid(932, "%000003a4"), - Attrs([Attr("address","0x6E4"), Attr("insn","adrp x0, #69632")]), - Var("R0",Imm(64)), Int(69632,64)), Def(Tid(939, "%000003ab"), - Attrs([Attr("address","0x6E8"), Attr("insn","ldr x0, [x0, #0x8]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(944, "%000003b0"), Attrs([Attr("address","0x6EC"), -Attr("insn","bl #-0x11c")]), Var("R30",Imm(64)), Int(1776,64))]), -Jmps([Call(Tid(947, "%000003b3"), Attrs([Attr("address","0x6EC"), -Attr("insn","bl #-0x11c")]), Int(1,1), -(Direct(Tid(1_553, "@__cxa_finalize")),Direct(Tid(904, "%00000388"))))])), -Blk(Tid(904, "%00000388"), Attrs([Attr("address","0x6F0")]), Phis([]), -Defs([Def(Tid(912, "%00000390"), Attrs([Attr("address","0x6F0"), -Attr("insn","bl #-0xa0")]), Var("R30",Imm(64)), Int(1780,64))]), -Jmps([Call(Tid(914, "%00000392"), Attrs([Attr("address","0x6F0"), -Attr("insn","bl #-0xa0")]), Int(1,1), -(Direct(Tid(1_567, "@deregister_tm_clones")),Direct(Tid(916, "%00000394"))))])), -Blk(Tid(916, "%00000394"), Attrs([Attr("address","0x6F4")]), Phis([]), -Defs([Def(Tid(919, "%00000397"), Attrs([Attr("address","0x6F4"), -Attr("insn","mov w0, #0x1")]), Var("R0",Imm(64)), Int(1,64)), -Def(Tid(927, "%0000039f"), Attrs([Attr("address","0x6F8"), -Attr("insn","strb w0, [x19, #0x10]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R19",Imm(64)),Int(16,64)),Extract(7,0,Var("R0",Imm(64))),LittleEndian(),8))]), -Jmps([Goto(Tid(1_597, "%0000063d"), Attrs([]), Int(1,1), -Direct(Tid(713, "%000002c9")))])), Blk(Tid(713, "%000002c9"), - Attrs([Attr("address","0x6FC")]), Phis([]), Defs([Def(Tid(723, "%000002d3"), - Attrs([Attr("address","0x6FC"), Attr("insn","ldr x19, [sp, #0x10]")]), - Var("R19",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(16,64)),LittleEndian(),64)), -Def(Tid(730, "%000002da"), Attrs([Attr("address","0x700"), -Attr("insn","ldp x29, x30, [sp], #0x20")]), Var("R29",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(735, "%000002df"), Attrs([Attr("address","0x700"), -Attr("insn","ldp x29, x30, [sp], #0x20")]), Var("R30",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(739, "%000002e3"), Attrs([Attr("address","0x700"), -Attr("insn","ldp x29, x30, [sp], #0x20")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(32,64)))]), Jmps([Call(Tid(744, "%000002e8"), - Attrs([Attr("address","0x704"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), Sub(Tid(1_558, "@__libc_start_main"), - Attrs([Attr("c.proto","signed (*)(signed (*)(signed , char** , char** );* main, signed , char** , \nvoid* auxv)"), -Attr("address","0x5C0"), Attr("stub","()")]), "__libc_start_main", - Args([Arg(Tid(1_610, "%0000064a"), - Attrs([Attr("c.layout","**[ : 64]"), -Attr("c.data","Top:u64 ptr ptr"), -Attr("c.type","signed (*)(signed , char** , char** );*")]), - Var("__libc_start_main_main",Imm(64)), Var("R0",Imm(64)), In()), -Arg(Tid(1_611, "%0000064b"), Attrs([Attr("c.layout","[signed : 32]"), -Attr("c.data","Top:u32"), Attr("c.type","signed")]), - Var("__libc_start_main_arg2",Imm(32)), LOW(32,Var("R1",Imm(64))), In()), -Arg(Tid(1_612, "%0000064c"), Attrs([Attr("c.layout","**[char : 8]"), -Attr("c.data","Top:u8 ptr ptr"), Attr("c.type","char**")]), - Var("__libc_start_main_arg3",Imm(64)), Var("R2",Imm(64)), Both()), -Arg(Tid(1_613, "%0000064d"), Attrs([Attr("c.layout","*[ : 8]"), -Attr("c.data","{} ptr"), Attr("c.type","void*")]), - Var("__libc_start_main_auxv",Imm(64)), Var("R3",Imm(64)), Both()), -Arg(Tid(1_614, "%0000064e"), Attrs([Attr("c.layout","[signed : 32]"), -Attr("c.data","Top:u32"), Attr("c.type","signed")]), - Var("__libc_start_main_result",Imm(32)), LOW(32,Var("R0",Imm(64))), -Out())]), Blks([Blk(Tid(495, "@__libc_start_main"), - Attrs([Attr("address","0x5C0")]), Phis([]), -Defs([Def(Tid(1_171, "%00000493"), Attrs([Attr("address","0x5C0"), -Attr("insn","adrp x16, #65536")]), Var("R16",Imm(64)), Int(65536,64)), -Def(Tid(1_178, "%0000049a"), Attrs([Attr("address","0x5C4"), -Attr("insn","ldr x17, [x16, #0xfb0]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(4016,64)),LittleEndian(),64)), -Def(Tid(1_184, "%000004a0"), Attrs([Attr("address","0x5C8"), -Attr("insn","add x16, x16, #0xfb0")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(4016,64)))]), Jmps([Call(Tid(1_189, "%000004a5"), - Attrs([Attr("address","0x5CC"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), Sub(Tid(1_559, "@_fini"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x75C")]), - "_fini", Args([Arg(Tid(1_615, "%0000064f"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("_fini_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(31, "@_fini"), - Attrs([Attr("address","0x75C")]), Phis([]), Defs([Def(Tid(37, "%00000025"), - Attrs([Attr("address","0x760"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("#0",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(18446744073709551600,64))), -Def(Tid(43, "%0000002b"), Attrs([Attr("address","0x760"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("#0",Imm(64)),Var("R29",Imm(64)),LittleEndian(),64)), -Def(Tid(49, "%00000031"), Attrs([Attr("address","0x760"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("#0",Imm(64)),Int(8,64)),Var("R30",Imm(64)),LittleEndian(),64)), -Def(Tid(53, "%00000035"), Attrs([Attr("address","0x760"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("R31",Imm(64)), -Var("#0",Imm(64))), Def(Tid(59, "%0000003b"), Attrs([Attr("address","0x764"), -Attr("insn","mov x29, sp")]), Var("R29",Imm(64)), Var("R31",Imm(64))), -Def(Tid(66, "%00000042"), Attrs([Attr("address","0x768"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R29",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(71, "%00000047"), Attrs([Attr("address","0x768"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R30",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(75, "%0000004b"), Attrs([Attr("address","0x768"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(16,64)))]), Jmps([Call(Tid(80, "%00000050"), - Attrs([Attr("address","0x76C"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), Sub(Tid(1_560, "@_init"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x580")]), - "_init", Args([Arg(Tid(1_616, "%00000650"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("_init_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(1_377, "@_init"), - Attrs([Attr("address","0x580")]), Phis([]), -Defs([Def(Tid(1_383, "%00000567"), Attrs([Attr("address","0x584"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("#6",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(18446744073709551600,64))), -Def(Tid(1_389, "%0000056d"), Attrs([Attr("address","0x584"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("#6",Imm(64)),Var("R29",Imm(64)),LittleEndian(),64)), -Def(Tid(1_395, "%00000573"), Attrs([Attr("address","0x584"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("#6",Imm(64)),Int(8,64)),Var("R30",Imm(64)),LittleEndian(),64)), -Def(Tid(1_399, "%00000577"), Attrs([Attr("address","0x584"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("R31",Imm(64)), -Var("#6",Imm(64))), Def(Tid(1_405, "%0000057d"), - Attrs([Attr("address","0x588"), Attr("insn","mov x29, sp")]), - Var("R29",Imm(64)), Var("R31",Imm(64))), Def(Tid(1_410, "%00000582"), - Attrs([Attr("address","0x58C"), Attr("insn","bl #0xa8")]), - Var("R30",Imm(64)), Int(1424,64))]), Jmps([Call(Tid(1_412, "%00000584"), - Attrs([Attr("address","0x58C"), Attr("insn","bl #0xa8")]), Int(1,1), -(Direct(Tid(1_565, "@call_weak_fn")),Direct(Tid(1_414, "%00000586"))))])), -Blk(Tid(1_414, "%00000586"), Attrs([Attr("address","0x590")]), Phis([]), -Defs([Def(Tid(1_419, "%0000058b"), Attrs([Attr("address","0x590"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R29",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(1_424, "%00000590"), Attrs([Attr("address","0x590"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R30",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(1_428, "%00000594"), Attrs([Attr("address","0x590"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(16,64)))]), Jmps([Call(Tid(1_433, "%00000599"), - Attrs([Attr("address","0x594"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), Sub(Tid(1_561, "@_start"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x600"), -Attr("stub","()"), Attr("entry-point","()")]), "_start", - Args([Arg(Tid(1_617, "%00000651"), Attrs([Attr("c.layout","[signed : 32]"), -Attr("c.data","Top:u32"), Attr("c.type","signed")]), - Var("_start_result",Imm(32)), LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(432, "@_start"), Attrs([Attr("address","0x600")]), Phis([]), -Defs([Def(Tid(437, "%000001b5"), Attrs([Attr("address","0x604"), -Attr("insn","mov x29, #0x0")]), Var("R29",Imm(64)), Int(0,64)), -Def(Tid(442, "%000001ba"), Attrs([Attr("address","0x608"), -Attr("insn","mov x30, #0x0")]), Var("R30",Imm(64)), Int(0,64)), -Def(Tid(448, "%000001c0"), Attrs([Attr("address","0x60C"), -Attr("insn","mov x5, x0")]), Var("R5",Imm(64)), Var("R0",Imm(64))), -Def(Tid(455, "%000001c7"), Attrs([Attr("address","0x610"), -Attr("insn","ldr x1, [sp]")]), Var("R1",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(461, "%000001cd"), Attrs([Attr("address","0x614"), -Attr("insn","add x2, sp, #0x8")]), Var("R2",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(8,64))), Def(Tid(467, "%000001d3"), - Attrs([Attr("address","0x618"), Attr("insn","mov x6, sp")]), - Var("R6",Imm(64)), Var("R31",Imm(64))), Def(Tid(472, "%000001d8"), - Attrs([Attr("address","0x61C"), Attr("insn","adrp x0, #65536")]), - Var("R0",Imm(64)), Int(65536,64)), Def(Tid(479, "%000001df"), - Attrs([Attr("address","0x620"), Attr("insn","ldr x0, [x0, #0xff0]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(4080,64)),LittleEndian(),64)), -Def(Tid(484, "%000001e4"), Attrs([Attr("address","0x624"), -Attr("insn","mov x3, #0x0")]), Var("R3",Imm(64)), Int(0,64)), -Def(Tid(489, "%000001e9"), Attrs([Attr("address","0x628"), -Attr("insn","mov x4, #0x0")]), Var("R4",Imm(64)), Int(0,64)), -Def(Tid(494, "%000001ee"), Attrs([Attr("address","0x62C"), -Attr("insn","bl #-0x6c")]), Var("R30",Imm(64)), Int(1584,64))]), -Jmps([Call(Tid(497, "%000001f1"), Attrs([Attr("address","0x62C"), -Attr("insn","bl #-0x6c")]), Int(1,1), -(Direct(Tid(1_558, "@__libc_start_main")),Direct(Tid(499, "%000001f3"))))])), -Blk(Tid(499, "%000001f3"), Attrs([Attr("address","0x630")]), Phis([]), -Defs([Def(Tid(502, "%000001f6"), Attrs([Attr("address","0x630"), -Attr("insn","bl #-0x40")]), Var("R30",Imm(64)), Int(1588,64))]), -Jmps([Call(Tid(505, "%000001f9"), Attrs([Attr("address","0x630"), -Attr("insn","bl #-0x40")]), Int(1,1), -(Direct(Tid(1_564, "@abort")),Direct(Tid(1_598, "%0000063e"))))])), -Blk(Tid(1_598, "%0000063e"), Attrs([]), Phis([]), Defs([]), -Jmps([Call(Tid(1_599, "%0000063f"), Attrs([]), Int(1,1), -(Direct(Tid(1_565, "@call_weak_fn")),))]))])), Sub(Tid(1_564, "@abort"), - Attrs([Attr("noreturn","()"), Attr("c.proto","void (*)(void)"), -Attr("address","0x5F0"), Attr("stub","()")]), "abort", Args([]), -Blks([Blk(Tid(503, "@abort"), Attrs([Attr("address","0x5F0")]), Phis([]), -Defs([Def(Tid(1_237, "%000004d5"), Attrs([Attr("address","0x5F0"), -Attr("insn","adrp x16, #65536")]), Var("R16",Imm(64)), Int(65536,64)), -Def(Tid(1_244, "%000004dc"), Attrs([Attr("address","0x5F4"), -Attr("insn","ldr x17, [x16, #0xfc8]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(4040,64)),LittleEndian(),64)), -Def(Tid(1_250, "%000004e2"), Attrs([Attr("address","0x5F8"), -Attr("insn","add x16, x16, #0xfc8")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(4040,64)))]), Jmps([Call(Tid(1_255, "%000004e7"), - Attrs([Attr("address","0x5FC"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), Sub(Tid(1_565, "@call_weak_fn"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x634")]), - "call_weak_fn", Args([Arg(Tid(1_618, "%00000652"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("call_weak_fn_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(507, "@call_weak_fn"), - Attrs([Attr("address","0x634")]), Phis([]), Defs([Def(Tid(510, "%000001fe"), - Attrs([Attr("address","0x634"), Attr("insn","adrp x0, #65536")]), - Var("R0",Imm(64)), Int(65536,64)), Def(Tid(517, "%00000205"), - Attrs([Attr("address","0x638"), Attr("insn","ldr x0, [x0, #0xfe8]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(4072,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(523, "%0000020b"), Attrs([Attr("address","0x63C"), -Attr("insn","cbz x0, #0x8")]), EQ(Var("R0",Imm(64)),Int(0,64)), -Direct(Tid(521, "%00000209"))), Goto(Tid(1_600, "%00000640"), Attrs([]), - Int(1,1), Direct(Tid(1_009, "%000003f1")))])), Blk(Tid(521, "%00000209"), - Attrs([Attr("address","0x644")]), Phis([]), Defs([]), -Jmps([Call(Tid(529, "%00000211"), Attrs([Attr("address","0x644"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))])), -Blk(Tid(1_009, "%000003f1"), Attrs([Attr("address","0x640")]), Phis([]), -Defs([]), Jmps([Goto(Tid(1_012, "%000003f4"), Attrs([Attr("address","0x640"), -Attr("insn","b #-0x60")]), Int(1,1), -Direct(Tid(1_010, "@__gmon_start__")))])), Blk(Tid(1_010, "@__gmon_start__"), - Attrs([Attr("address","0x5E0")]), Phis([]), -Defs([Def(Tid(1_215, "%000004bf"), Attrs([Attr("address","0x5E0"), -Attr("insn","adrp x16, #65536")]), Var("R16",Imm(64)), Int(65536,64)), -Def(Tid(1_222, "%000004c6"), Attrs([Attr("address","0x5E4"), -Attr("insn","ldr x17, [x16, #0xfc0]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(4032,64)),LittleEndian(),64)), -Def(Tid(1_228, "%000004cc"), Attrs([Attr("address","0x5E8"), -Attr("insn","add x16, x16, #0xfc0")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(4032,64)))]), Jmps([Call(Tid(1_233, "%000004d1"), - Attrs([Attr("address","0x5EC"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), -Sub(Tid(1_567, "@deregister_tm_clones"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x650")]), - "deregister_tm_clones", Args([Arg(Tid(1_619, "%00000653"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("deregister_tm_clones_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(535, "@deregister_tm_clones"), - Attrs([Attr("address","0x650")]), Phis([]), Defs([Def(Tid(538, "%0000021a"), - Attrs([Attr("address","0x650"), Attr("insn","adrp x0, #69632")]), - Var("R0",Imm(64)), Int(69632,64)), Def(Tid(544, "%00000220"), - Attrs([Attr("address","0x654"), Attr("insn","add x0, x0, #0x10")]), - Var("R0",Imm(64)), PLUS(Var("R0",Imm(64)),Int(16,64))), -Def(Tid(549, "%00000225"), Attrs([Attr("address","0x658"), -Attr("insn","adrp x1, #69632")]), Var("R1",Imm(64)), Int(69632,64)), -Def(Tid(555, "%0000022b"), Attrs([Attr("address","0x65C"), -Attr("insn","add x1, x1, #0x10")]), Var("R1",Imm(64)), -PLUS(Var("R1",Imm(64)),Int(16,64))), Def(Tid(561, "%00000231"), - Attrs([Attr("address","0x660"), Attr("insn","cmp x1, x0")]), - Var("#1",Imm(64)), NOT(Var("R0",Imm(64)))), Def(Tid(566, "%00000236"), - Attrs([Attr("address","0x660"), Attr("insn","cmp x1, x0")]), - Var("#2",Imm(64)), PLUS(Var("R1",Imm(64)),NOT(Var("R0",Imm(64))))), -Def(Tid(572, "%0000023c"), Attrs([Attr("address","0x660"), -Attr("insn","cmp x1, x0")]), Var("VF",Imm(1)), -NEQ(SIGNED(65,PLUS(Var("#2",Imm(64)),Int(1,64))),PLUS(PLUS(SIGNED(65,Var("R1",Imm(64))),SIGNED(65,Var("#1",Imm(64)))),Int(1,65)))), -Def(Tid(578, "%00000242"), Attrs([Attr("address","0x660"), -Attr("insn","cmp x1, x0")]), Var("CF",Imm(1)), -NEQ(UNSIGNED(65,PLUS(Var("#2",Imm(64)),Int(1,64))),PLUS(PLUS(UNSIGNED(65,Var("R1",Imm(64))),UNSIGNED(65,Var("#1",Imm(64)))),Int(1,65)))), -Def(Tid(582, "%00000246"), Attrs([Attr("address","0x660"), -Attr("insn","cmp x1, x0")]), Var("ZF",Imm(1)), -EQ(PLUS(Var("#2",Imm(64)),Int(1,64)),Int(0,64))), Def(Tid(586, "%0000024a"), - Attrs([Attr("address","0x660"), Attr("insn","cmp x1, x0")]), - Var("NF",Imm(1)), Extract(63,63,PLUS(Var("#2",Imm(64)),Int(1,64))))]), -Jmps([Goto(Tid(592, "%00000250"), Attrs([Attr("address","0x664"), -Attr("insn","b.eq #0x18")]), EQ(Var("ZF",Imm(1)),Int(1,1)), -Direct(Tid(590, "%0000024e"))), Goto(Tid(1_601, "%00000641"), Attrs([]), - Int(1,1), Direct(Tid(979, "%000003d3")))])), Blk(Tid(979, "%000003d3"), - Attrs([Attr("address","0x668")]), Phis([]), Defs([Def(Tid(982, "%000003d6"), - Attrs([Attr("address","0x668"), Attr("insn","adrp x1, #65536")]), - Var("R1",Imm(64)), Int(65536,64)), Def(Tid(989, "%000003dd"), - Attrs([Attr("address","0x66C"), Attr("insn","ldr x1, [x1, #0xfd8]")]), - Var("R1",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R1",Imm(64)),Int(4056,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(994, "%000003e2"), Attrs([Attr("address","0x670"), -Attr("insn","cbz x1, #0xc")]), EQ(Var("R1",Imm(64)),Int(0,64)), -Direct(Tid(590, "%0000024e"))), Goto(Tid(1_602, "%00000642"), Attrs([]), - Int(1,1), Direct(Tid(998, "%000003e6")))])), Blk(Tid(590, "%0000024e"), - Attrs([Attr("address","0x67C")]), Phis([]), Defs([]), -Jmps([Call(Tid(598, "%00000256"), Attrs([Attr("address","0x67C"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))])), -Blk(Tid(998, "%000003e6"), Attrs([Attr("address","0x674")]), Phis([]), -Defs([Def(Tid(1_002, "%000003ea"), Attrs([Attr("address","0x674"), -Attr("insn","mov x16, x1")]), Var("R16",Imm(64)), Var("R1",Imm(64)))]), -Jmps([Call(Tid(1_007, "%000003ef"), Attrs([Attr("address","0x678"), -Attr("insn","br x16")]), Int(1,1), (Indirect(Var("R16",Imm(64))),))]))])), -Sub(Tid(1_570, "@frame_dummy"), Attrs([Attr("c.proto","signed (*)(void)"), -Attr("address","0x710")]), "frame_dummy", Args([Arg(Tid(1_620, "%00000654"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("frame_dummy_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(750, "@frame_dummy"), - Attrs([Attr("address","0x710")]), Phis([]), Defs([]), -Jmps([Call(Tid(752, "%000002f0"), Attrs([Attr("address","0x710"), -Attr("insn","b #-0x90")]), Int(1,1), -(Direct(Tid(1_574, "@register_tm_clones")),))]))])), Sub(Tid(1_571, "@main"), - Attrs([Attr("c.proto","signed (*)(signed argc, const char** argv)"), -Attr("address","0x714")]), "main", Args([Arg(Tid(1_621, "%00000655"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("main_argc",Imm(32)), -LOW(32,Var("R0",Imm(64))), In()), Arg(Tid(1_622, "%00000656"), - Attrs([Attr("c.layout","**[char : 8]"), Attr("c.data","Top:u8 ptr ptr"), -Attr("c.type"," const char**")]), Var("main_argv",Imm(64)), -Var("R1",Imm(64)), Both()), Arg(Tid(1_623, "%00000657"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("main_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(754, "@main"), - Attrs([Attr("address","0x714")]), Phis([]), Defs([Def(Tid(758, "%000002f6"), - Attrs([Attr("address","0x714"), Attr("insn","sub sp, sp, #0x20")]), - Var("R31",Imm(64)), PLUS(Var("R31",Imm(64)),Int(18446744073709551584,64))), -Def(Tid(766, "%000002fe"), Attrs([Attr("address","0x718"), -Attr("insn","str w0, [sp, #0xc]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(12,64)),Extract(31,0,Var("R0",Imm(64))),LittleEndian(),32)), -Def(Tid(774, "%00000306"), Attrs([Attr("address","0x71C"), -Attr("insn","str x1, [sp]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("R31",Imm(64)),Var("R1",Imm(64)),LittleEndian(),64)), -Def(Tid(781, "%0000030d"), Attrs([Attr("address","0x720"), -Attr("insn","str wzr, [sp, #0x18]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(24,64)),Int(0,32),LittleEndian(),32)), -Def(Tid(788, "%00000314"), Attrs([Attr("address","0x724"), -Attr("insn","ldr w0, [sp, #0xc]")]), Var("R0",Imm(64)), -UNSIGNED(64,Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(12,64)),LittleEndian(),32))), -Def(Tid(794, "%0000031a"), Attrs([Attr("address","0x728"), -Attr("insn","cmp w0, #0x0")]), Var("#4",Imm(32)), -PLUS(Extract(31,0,Var("R0",Imm(64))),Int(4294967295,32))), -Def(Tid(799, "%0000031f"), Attrs([Attr("address","0x728"), -Attr("insn","cmp w0, #0x0")]), Var("VF",Imm(1)), -NEQ(SIGNED(33,PLUS(Var("#4",Imm(32)),Int(1,32))),PLUS(SIGNED(33,Extract(31,0,Var("R0",Imm(64)))),Int(0,33)))), -Def(Tid(804, "%00000324"), Attrs([Attr("address","0x728"), -Attr("insn","cmp w0, #0x0")]), Var("CF",Imm(1)), -NEQ(UNSIGNED(33,PLUS(Var("#4",Imm(32)),Int(1,32))),PLUS(UNSIGNED(33,Extract(31,0,Var("R0",Imm(64)))),Int(4294967296,33)))), -Def(Tid(808, "%00000328"), Attrs([Attr("address","0x728"), -Attr("insn","cmp w0, #0x0")]), Var("ZF",Imm(1)), -EQ(PLUS(Var("#4",Imm(32)),Int(1,32)),Int(0,32))), Def(Tid(812, "%0000032c"), - Attrs([Attr("address","0x728"), Attr("insn","cmp w0, #0x0")]), - Var("NF",Imm(1)), Extract(31,31,PLUS(Var("#4",Imm(32)),Int(1,32))))]), -Jmps([Goto(Tid(818, "%00000332"), Attrs([Attr("address","0x72C"), -Attr("insn","b.ne #0x10")]), NEQ(Var("ZF",Imm(1)),Int(1,1)), -Direct(Tid(816, "%00000330"))), Goto(Tid(1_603, "%00000643"), Attrs([]), - Int(1,1), Direct(Tid(873, "%00000369")))])), Blk(Tid(816, "%00000330"), - Attrs([Attr("address","0x73C")]), Phis([]), Defs([Def(Tid(824, "%00000338"), - Attrs([Attr("address","0x73C"), Attr("insn","mov w0, #0x2")]), - Var("R0",Imm(64)), Int(2,64)), Def(Tid(832, "%00000340"), - Attrs([Attr("address","0x740"), Attr("insn","str w0, [sp, #0x18]")]), - Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(24,64)),Extract(31,0,Var("R0",Imm(64))),LittleEndian(),32))]), -Jmps([Goto(Tid(1_604, "%00000644"), Attrs([]), Int(1,1), -Direct(Tid(834, "%00000342")))])), Blk(Tid(873, "%00000369"), - Attrs([Attr("address","0x730")]), Phis([]), Defs([Def(Tid(876, "%0000036c"), - Attrs([Attr("address","0x730"), Attr("insn","mov w0, #0x1")]), - Var("R0",Imm(64)), Int(1,64)), Def(Tid(884, "%00000374"), - Attrs([Attr("address","0x734"), Attr("insn","str w0, [sp, #0x18]")]), - Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(24,64)),Extract(31,0,Var("R0",Imm(64))),LittleEndian(),32))]), -Jmps([Goto(Tid(888, "%00000378"), Attrs([Attr("address","0x738"), -Attr("insn","b #0xc")]), Int(1,1), Direct(Tid(834, "%00000342")))])), -Blk(Tid(834, "%00000342"), Attrs([Attr("address","0x744")]), Phis([]), -Defs([Def(Tid(839, "%00000347"), Attrs([Attr("address","0x744"), -Attr("insn","ldr w0, [sp, #0x18]")]), Var("R0",Imm(64)), -UNSIGNED(64,Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(24,64)),LittleEndian(),32))), -Def(Tid(845, "%0000034d"), Attrs([Attr("address","0x748"), -Attr("insn","add w0, w0, #0x1")]), Var("R0",Imm(64)), -UNSIGNED(64,PLUS(Extract(31,0,Var("R0",Imm(64))),Int(1,32)))), -Def(Tid(853, "%00000355"), Attrs([Attr("address","0x74C"), -Attr("insn","str w0, [sp, #0x1c]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(28,64)),Extract(31,0,Var("R0",Imm(64))),LittleEndian(),32)), -Def(Tid(860, "%0000035c"), Attrs([Attr("address","0x750"), -Attr("insn","ldr w0, [sp, #0x1c]")]), Var("R0",Imm(64)), -UNSIGNED(64,Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(28,64)),LittleEndian(),32))), -Def(Tid(866, "%00000362"), Attrs([Attr("address","0x754"), -Attr("insn","add sp, sp, #0x20")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(32,64)))]), Jmps([Call(Tid(871, "%00000367"), - Attrs([Attr("address","0x758"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), -Sub(Tid(1_574, "@register_tm_clones"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x680")]), - "register_tm_clones", Args([Arg(Tid(1_624, "%00000658"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("register_tm_clones_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(600, "@register_tm_clones"), Attrs([Attr("address","0x680")]), - Phis([]), Defs([Def(Tid(603, "%0000025b"), Attrs([Attr("address","0x680"), -Attr("insn","adrp x0, #69632")]), Var("R0",Imm(64)), Int(69632,64)), -Def(Tid(609, "%00000261"), Attrs([Attr("address","0x684"), -Attr("insn","add x0, x0, #0x10")]), Var("R0",Imm(64)), -PLUS(Var("R0",Imm(64)),Int(16,64))), Def(Tid(614, "%00000266"), - Attrs([Attr("address","0x688"), Attr("insn","adrp x1, #69632")]), - Var("R1",Imm(64)), Int(69632,64)), Def(Tid(620, "%0000026c"), - Attrs([Attr("address","0x68C"), Attr("insn","add x1, x1, #0x10")]), - Var("R1",Imm(64)), PLUS(Var("R1",Imm(64)),Int(16,64))), -Def(Tid(627, "%00000273"), Attrs([Attr("address","0x690"), -Attr("insn","sub x1, x1, x0")]), Var("R1",Imm(64)), -PLUS(PLUS(Var("R1",Imm(64)),NOT(Var("R0",Imm(64)))),Int(1,64))), -Def(Tid(633, "%00000279"), Attrs([Attr("address","0x694"), -Attr("insn","lsr x2, x1, #63")]), Var("R2",Imm(64)), -Concat(Int(0,63),Extract(63,63,Var("R1",Imm(64))))), -Def(Tid(640, "%00000280"), Attrs([Attr("address","0x698"), -Attr("insn","add x1, x2, x1, asr #3")]), Var("R1",Imm(64)), -PLUS(Var("R2",Imm(64)),ARSHIFT(Var("R1",Imm(64)),Int(3,3)))), -Def(Tid(646, "%00000286"), Attrs([Attr("address","0x69C"), -Attr("insn","asr x1, x1, #1")]), Var("R1",Imm(64)), -SIGNED(64,Extract(63,1,Var("R1",Imm(64)))))]), -Jmps([Goto(Tid(652, "%0000028c"), Attrs([Attr("address","0x6A0"), -Attr("insn","cbz x1, #0x18")]), EQ(Var("R1",Imm(64)),Int(0,64)), -Direct(Tid(650, "%0000028a"))), Goto(Tid(1_605, "%00000645"), Attrs([]), - Int(1,1), Direct(Tid(949, "%000003b5")))])), Blk(Tid(949, "%000003b5"), - Attrs([Attr("address","0x6A4")]), Phis([]), Defs([Def(Tid(952, "%000003b8"), - Attrs([Attr("address","0x6A4"), Attr("insn","adrp x2, #65536")]), - Var("R2",Imm(64)), Int(65536,64)), Def(Tid(959, "%000003bf"), - Attrs([Attr("address","0x6A8"), Attr("insn","ldr x2, [x2, #0xff8]")]), - Var("R2",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R2",Imm(64)),Int(4088,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(964, "%000003c4"), Attrs([Attr("address","0x6AC"), -Attr("insn","cbz x2, #0xc")]), EQ(Var("R2",Imm(64)),Int(0,64)), -Direct(Tid(650, "%0000028a"))), Goto(Tid(1_606, "%00000646"), Attrs([]), - Int(1,1), Direct(Tid(968, "%000003c8")))])), Blk(Tid(650, "%0000028a"), - Attrs([Attr("address","0x6B8")]), Phis([]), Defs([]), -Jmps([Call(Tid(658, "%00000292"), Attrs([Attr("address","0x6B8"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))])), -Blk(Tid(968, "%000003c8"), Attrs([Attr("address","0x6B0")]), Phis([]), -Defs([Def(Tid(972, "%000003cc"), Attrs([Attr("address","0x6B0"), -Attr("insn","mov x16, x2")]), Var("R16",Imm(64)), Var("R2",Imm(64)))]), -Jmps([Call(Tid(977, "%000003d1"), Attrs([Attr("address","0x6B4"), -Attr("insn","br x16")]), Int(1,1), -(Indirect(Var("R16",Imm(64))),))]))]))]))) \ No newline at end of file diff --git a/src/test/correct/ifbranches/gcc/ifbranches.bir b/src/test/correct/ifbranches/gcc/ifbranches.bir deleted file mode 100644 index 38a1eac0c..000000000 --- a/src/test/correct/ifbranches/gcc/ifbranches.bir +++ /dev/null @@ -1,252 +0,0 @@ -00000647: program -00000611: sub __cxa_finalize(__cxa_finalize_result) -00000648: __cxa_finalize_result :: out u32 = low:32[R0] - -000003b1: -000004a9: R16 := 0x10000 -000004b0: R17 := mem[R16 + 0xFB8, el]:u64 -000004b6: R16 := R16 + 0xFB8 -000004bb: call R17 with noreturn - -00000612: sub __do_global_dtors_aux(__do_global_dtors_aux_result) -00000649: __do_global_dtors_aux_result :: out u32 = low:32[R0] - -00000296: -0000029a: #3 := R31 - 0x20 -000002a0: mem := mem with [#3, el]:u64 <- R29 -000002a6: mem := mem with [#3 + 8, el]:u64 <- R30 -000002aa: R31 := #3 -000002b0: R29 := R31 -000002b8: mem := mem with [R31 + 0x10, el]:u64 <- R19 -000002bd: R19 := 0x11000 -000002c4: R0 := pad:64[mem[R19 + 0x10]] -000002cb: when 31:0[R0] <> 0 goto %000002c9 -0000063b: goto %0000037a - -0000037a: -0000037d: R0 := 0x10000 -00000384: R0 := mem[R0 + 0xFE0, el]:u64 -0000038a: when R0 = 0 goto %00000388 -0000063c: goto %000003a1 - -000003a1: -000003a4: R0 := 0x11000 -000003ab: R0 := mem[R0 + 8, el]:u64 -000003b0: R30 := 0x6F0 -000003b3: call @__cxa_finalize with return %00000388 - -00000388: -00000390: R30 := 0x6F4 -00000392: call @deregister_tm_clones with return %00000394 - -00000394: -00000397: R0 := 1 -0000039f: mem := mem with [R19 + 0x10] <- 7:0[R0] -0000063d: goto %000002c9 - -000002c9: -000002d3: R19 := mem[R31 + 0x10, el]:u64 -000002da: R29 := mem[R31, el]:u64 -000002df: R30 := mem[R31 + 8, el]:u64 -000002e3: R31 := R31 + 0x20 -000002e8: call R30 with noreturn - -00000616: sub __libc_start_main(__libc_start_main_main, __libc_start_main_arg2, __libc_start_main_arg3, __libc_start_main_auxv, __libc_start_main_result) -0000064a: __libc_start_main_main :: in u64 = R0 -0000064b: __libc_start_main_arg2 :: in u32 = low:32[R1] -0000064c: __libc_start_main_arg3 :: in out u64 = R2 -0000064d: __libc_start_main_auxv :: in out u64 = R3 -0000064e: __libc_start_main_result :: out u32 = low:32[R0] - -000001ef: -00000493: R16 := 0x10000 -0000049a: R17 := mem[R16 + 0xFB0, el]:u64 -000004a0: R16 := R16 + 0xFB0 -000004a5: call R17 with noreturn - -00000617: sub _fini(_fini_result) -0000064f: _fini_result :: out u32 = low:32[R0] - -0000001f: -00000025: #0 := R31 - 0x10 -0000002b: mem := mem with [#0, el]:u64 <- R29 -00000031: mem := mem with [#0 + 8, el]:u64 <- R30 -00000035: R31 := #0 -0000003b: R29 := R31 -00000042: R29 := mem[R31, el]:u64 -00000047: R30 := mem[R31 + 8, el]:u64 -0000004b: R31 := R31 + 0x10 -00000050: call R30 with noreturn - -00000618: sub _init(_init_result) -00000650: _init_result :: out u32 = low:32[R0] - -00000561: -00000567: #6 := R31 - 0x10 -0000056d: mem := mem with [#6, el]:u64 <- R29 -00000573: mem := mem with [#6 + 8, el]:u64 <- R30 -00000577: R31 := #6 -0000057d: R29 := R31 -00000582: R30 := 0x590 -00000584: call @call_weak_fn with return %00000586 - -00000586: -0000058b: R29 := mem[R31, el]:u64 -00000590: R30 := mem[R31 + 8, el]:u64 -00000594: R31 := R31 + 0x10 -00000599: call R30 with noreturn - -00000619: sub _start(_start_result) -00000651: _start_result :: out u32 = low:32[R0] - -000001b0: -000001b5: R29 := 0 -000001ba: R30 := 0 -000001c0: R5 := R0 -000001c7: R1 := mem[R31, el]:u64 -000001cd: R2 := R31 + 8 -000001d3: R6 := R31 -000001d8: R0 := 0x10000 -000001df: R0 := mem[R0 + 0xFF0, el]:u64 -000001e4: R3 := 0 -000001e9: R4 := 0 -000001ee: R30 := 0x630 -000001f1: call @__libc_start_main with return %000001f3 - -000001f3: -000001f6: R30 := 0x634 -000001f9: call @abort with return %0000063e - -0000063e: -0000063f: call @call_weak_fn with noreturn - -0000061c: sub abort() - - -000001f7: -000004d5: R16 := 0x10000 -000004dc: R17 := mem[R16 + 0xFC8, el]:u64 -000004e2: R16 := R16 + 0xFC8 -000004e7: call R17 with noreturn - -0000061d: sub call_weak_fn(call_weak_fn_result) -00000652: call_weak_fn_result :: out u32 = low:32[R0] - -000001fb: -000001fe: R0 := 0x10000 -00000205: R0 := mem[R0 + 0xFE8, el]:u64 -0000020b: when R0 = 0 goto %00000209 -00000640: goto %000003f1 - -00000209: -00000211: call R30 with noreturn - -000003f1: -000003f4: goto @__gmon_start__ - -000003f2: -000004bf: R16 := 0x10000 -000004c6: R17 := mem[R16 + 0xFC0, el]:u64 -000004cc: R16 := R16 + 0xFC0 -000004d1: call R17 with noreturn - -0000061f: sub deregister_tm_clones(deregister_tm_clones_result) -00000653: deregister_tm_clones_result :: out u32 = low:32[R0] - -00000217: -0000021a: R0 := 0x11000 -00000220: R0 := R0 + 0x10 -00000225: R1 := 0x11000 -0000022b: R1 := R1 + 0x10 -00000231: #1 := ~R0 -00000236: #2 := R1 + ~R0 -0000023c: VF := extend:65[#2 + 1] <> extend:65[R1] + extend:65[#1] + 1 -00000242: CF := pad:65[#2 + 1] <> pad:65[R1] + pad:65[#1] + 1 -00000246: ZF := #2 + 1 = 0 -0000024a: NF := 63:63[#2 + 1] -00000250: when ZF goto %0000024e -00000641: goto %000003d3 - -000003d3: -000003d6: R1 := 0x10000 -000003dd: R1 := mem[R1 + 0xFD8, el]:u64 -000003e2: when R1 = 0 goto %0000024e -00000642: goto %000003e6 - -0000024e: -00000256: call R30 with noreturn - -000003e6: -000003ea: R16 := R1 -000003ef: call R16 with noreturn - -00000622: sub frame_dummy(frame_dummy_result) -00000654: frame_dummy_result :: out u32 = low:32[R0] - -000002ee: -000002f0: call @register_tm_clones with noreturn - -00000623: sub main(main_argc, main_argv, main_result) -00000655: main_argc :: in u32 = low:32[R0] -00000656: main_argv :: in out u64 = R1 -00000657: main_result :: out u32 = low:32[R0] - -000002f2: -000002f6: R31 := R31 - 0x20 -000002fe: mem := mem with [R31 + 0xC, el]:u32 <- 31:0[R0] -00000306: mem := mem with [R31, el]:u64 <- R1 -0000030d: mem := mem with [R31 + 0x18, el]:u32 <- 0 -00000314: R0 := pad:64[mem[R31 + 0xC, el]:u32] -0000031a: #4 := 31:0[R0] - 1 -0000031f: VF := extend:33[#4 + 1] <> extend:33[31:0[R0]] + 0 -00000324: CF := pad:33[#4 + 1] <> pad:33[31:0[R0]] - 0x100000000 -00000328: ZF := #4 + 1 = 0 -0000032c: NF := 31:31[#4 + 1] -00000332: when ZF <> 1 goto %00000330 -00000643: goto %00000369 - -00000330: -00000338: R0 := 2 -00000340: mem := mem with [R31 + 0x18, el]:u32 <- 31:0[R0] -00000644: goto %00000342 - -00000369: -0000036c: R0 := 1 -00000374: mem := mem with [R31 + 0x18, el]:u32 <- 31:0[R0] -00000378: goto %00000342 - -00000342: -00000347: R0 := pad:64[mem[R31 + 0x18, el]:u32] -0000034d: R0 := pad:64[31:0[R0] + 1] -00000355: mem := mem with [R31 + 0x1C, el]:u32 <- 31:0[R0] -0000035c: R0 := pad:64[mem[R31 + 0x1C, el]:u32] -00000362: R31 := R31 + 0x20 -00000367: call R30 with noreturn - -00000626: sub register_tm_clones(register_tm_clones_result) -00000658: register_tm_clones_result :: out u32 = low:32[R0] - -00000258: -0000025b: R0 := 0x11000 -00000261: R0 := R0 + 0x10 -00000266: R1 := 0x11000 -0000026c: R1 := R1 + 0x10 -00000273: R1 := R1 + ~R0 + 1 -00000279: R2 := 0.63:63[R1] -00000280: R1 := R2 + (R1 ~>> 3) -00000286: R1 := extend:64[63:1[R1]] -0000028c: when R1 = 0 goto %0000028a -00000645: goto %000003b5 - -000003b5: -000003b8: R2 := 0x10000 -000003bf: R2 := mem[R2 + 0xFF8, el]:u64 -000003c4: when R2 = 0 goto %0000028a -00000646: goto %000003c8 - -0000028a: -00000292: call R30 with noreturn - -000003c8: -000003cc: R16 := R2 -000003d1: call R16 with noreturn diff --git a/src/test/correct/ifbranches/gcc/ifbranches.expected b/src/test/correct/ifbranches/gcc/ifbranches.expected index dafdfe06c..a221592a8 100644 --- a/src/test/correct/ifbranches/gcc/ifbranches.expected +++ b/src/test/correct/ifbranches/gcc/ifbranches.expected @@ -2,39 +2,18 @@ var {:extern} CF: bv1; var {:extern} Gamma_CF: bool; var {:extern} Gamma_NF: bool; var {:extern} Gamma_R0: bool; -var {:extern} Gamma_R1: bool; -var {:extern} Gamma_R31: bool; var {:extern} Gamma_VF: bool; var {:extern} Gamma_ZF: bool; var {:extern} Gamma_mem: [bv64]bool; -var {:extern} Gamma_stack: [bv64]bool; var {:extern} NF: bv1; var {:extern} R0: bv64; -var {:extern} R1: bv64; -var {:extern} R31: bv64; var {:extern} VF: bv1; var {:extern} ZF: bv1; var {:extern} mem: [bv64]bv8; -var {:extern} stack: [bv64]bv8; function {:extern} {:bvbuiltin "bvadd"} bvadd32(bv32, bv32) returns (bv32); -function {:extern} {:bvbuiltin "bvadd"} bvadd33(bv33, bv33) returns (bv33); function {:extern} {:bvbuiltin "bvadd"} bvadd64(bv64, bv64) returns (bv64); function {:extern} {:bvbuiltin "bvcomp"} bvcomp1(bv1, bv1) returns (bv1); function {:extern} {:bvbuiltin "bvcomp"} bvcomp32(bv32, bv32) returns (bv1); -function {:extern} {:bvbuiltin "bvcomp"} bvcomp33(bv33, bv33) returns (bv1); -function {:extern} {:bvbuiltin "bvnot"} bvnot1(bv1) returns (bv1); -function {:extern} gamma_load32(gammaMap: [bv64]bool, index: bv64) returns (bool) { - (gammaMap[bvadd64(index, 3bv64)] && (gammaMap[bvadd64(index, 2bv64)] && (gammaMap[bvadd64(index, 1bv64)] && gammaMap[index]))) -} - -function {:extern} gamma_store32(gammaMap: [bv64]bool, index: bv64, value: bool) returns ([bv64]bool) { - gammaMap[index := value][bvadd64(index, 1bv64) := value][bvadd64(index, 2bv64) := value][bvadd64(index, 3bv64) := value] -} - -function {:extern} gamma_store64(gammaMap: [bv64]bool, index: bv64, value: bool) returns ([bv64]bool) { - gammaMap[index := value][bvadd64(index, 1bv64) := value][bvadd64(index, 2bv64) := value][bvadd64(index, 3bv64) := value][bvadd64(index, 4bv64) := value][bvadd64(index, 5bv64) := value][bvadd64(index, 6bv64) := value][bvadd64(index, 7bv64) := value] -} - function {:extern} memory_load32_le(memory: [bv64]bv8, index: bv64) returns (bv32) { (memory[bvadd64(index, 3bv64)] ++ (memory[bvadd64(index, 2bv64)] ++ (memory[bvadd64(index, 1bv64)] ++ memory[index]))) } @@ -43,26 +22,12 @@ function {:extern} memory_load64_le(memory: [bv64]bv8, index: bv64) returns (bv6 (memory[bvadd64(index, 7bv64)] ++ (memory[bvadd64(index, 6bv64)] ++ (memory[bvadd64(index, 5bv64)] ++ (memory[bvadd64(index, 4bv64)] ++ (memory[bvadd64(index, 3bv64)] ++ (memory[bvadd64(index, 2bv64)] ++ (memory[bvadd64(index, 1bv64)] ++ memory[index]))))))) } -function {:extern} memory_store32_le(memory: [bv64]bv8, index: bv64, value: bv32) returns ([bv64]bv8) { - memory[index := value[8:0]][bvadd64(index, 1bv64) := value[16:8]][bvadd64(index, 2bv64) := value[24:16]][bvadd64(index, 3bv64) := value[32:24]] -} - -function {:extern} memory_store64_le(memory: [bv64]bv8, index: bv64, value: bv64) returns ([bv64]bv8) { - memory[index := value[8:0]][bvadd64(index, 1bv64) := value[16:8]][bvadd64(index, 2bv64) := value[24:16]][bvadd64(index, 3bv64) := value[32:24]][bvadd64(index, 4bv64) := value[40:32]][bvadd64(index, 5bv64) := value[48:40]][bvadd64(index, 6bv64) := value[56:48]][bvadd64(index, 7bv64) := value[64:56]] -} - -function {:extern} {:bvbuiltin "sign_extend 1"} sign_extend1_32(bv32) returns (bv33); -function {:extern} {:bvbuiltin "zero_extend 1"} zero_extend1_32(bv32) returns (bv33); function {:extern} {:bvbuiltin "zero_extend 32"} zero_extend32_32(bv32) returns (bv64); procedure {:extern} rely(); modifies Gamma_mem, mem; ensures (Gamma_mem == old(Gamma_mem)); ensures (mem == old(mem)); - free ensures (memory_load32_le(mem, 1904bv64) == 131073bv32); - free ensures (memory_load64_le(mem, 69016bv64) == 1808bv64); - free ensures (memory_load64_le(mem, 69024bv64) == 1728bv64); - free ensures (memory_load64_le(mem, 69616bv64) == 1812bv64); - free ensures (memory_load64_le(mem, 69640bv64) == 69640bv64); + free ensures (memory_load32_le(mem, 4196312bv64) == 131073bv32); procedure {:extern} rely_transitive(); modifies Gamma_mem, mem; @@ -80,85 +45,46 @@ procedure {:extern} rely_reflexive(); procedure {:extern} guarantee_reflexive(); modifies Gamma_mem, mem; -procedure main_1812(); - modifies CF, Gamma_CF, Gamma_NF, Gamma_R0, Gamma_R31, Gamma_VF, Gamma_ZF, Gamma_stack, NF, R0, R31, VF, ZF, stack; +procedure main(); + modifies CF, Gamma_CF, Gamma_NF, Gamma_R0, Gamma_VF, Gamma_ZF, NF, R0, VF, ZF; requires (Gamma_R0 == true); - free requires (memory_load64_le(mem, 69632bv64) == 0bv64); - free requires (memory_load64_le(mem, 69640bv64) == 69640bv64); - free requires (memory_load32_le(mem, 1904bv64) == 131073bv32); - free requires (memory_load64_le(mem, 69016bv64) == 1808bv64); - free requires (memory_load64_le(mem, 69024bv64) == 1728bv64); - free requires (memory_load64_le(mem, 69616bv64) == 1812bv64); - free requires (memory_load64_le(mem, 69640bv64) == 69640bv64); - free ensures (Gamma_R31 == old(Gamma_R31)); - free ensures (R31 == old(R31)); - free ensures (memory_load32_le(mem, 1904bv64) == 131073bv32); - free ensures (memory_load64_le(mem, 69016bv64) == 1808bv64); - free ensures (memory_load64_le(mem, 69024bv64) == 1728bv64); - free ensures (memory_load64_le(mem, 69616bv64) == 1812bv64); - free ensures (memory_load64_le(mem, 69640bv64) == 69640bv64); + free requires (memory_load64_le(mem, 4325376bv64) == 0bv64); + free requires (memory_load64_le(mem, 4325384bv64) == 0bv64); + free requires (memory_load32_le(mem, 4196312bv64) == 131073bv32); + free ensures (memory_load32_le(mem, 4196312bv64) == 131073bv32); -implementation main_1812() +implementation main() { - var #4: bv32; - var Gamma_#4: bool; - var Gamma_load18: bool; - var Gamma_load19: bool; - var Gamma_load20: bool; - var load18: bv32; - var load19: bv32; - var load20: bv32; lmain: assume {:captureState "lmain"} true; - R31, Gamma_R31 := bvadd64(R31, 18446744073709551584bv64), Gamma_R31; - stack, Gamma_stack := memory_store32_le(stack, bvadd64(R31, 12bv64), R0[32:0]), gamma_store32(Gamma_stack, bvadd64(R31, 12bv64), Gamma_R0); - assume {:captureState "%000002fe"} true; - stack, Gamma_stack := memory_store64_le(stack, R31, R1), gamma_store64(Gamma_stack, R31, Gamma_R1); - assume {:captureState "%00000306"} true; - stack, Gamma_stack := memory_store32_le(stack, bvadd64(R31, 24bv64), 0bv32), gamma_store32(Gamma_stack, bvadd64(R31, 24bv64), true); - assume {:captureState "%0000030d"} true; - load18, Gamma_load18 := memory_load32_le(stack, bvadd64(R31, 12bv64)), gamma_load32(Gamma_stack, bvadd64(R31, 12bv64)); - R0, Gamma_R0 := zero_extend32_32(load18), Gamma_load18; - #4, Gamma_#4 := bvadd32(R0[32:0], 4294967295bv32), Gamma_R0; - VF, Gamma_VF := bvnot1(bvcomp33(sign_extend1_32(bvadd32(#4, 1bv32)), bvadd33(sign_extend1_32(R0[32:0]), 0bv33))), (Gamma_R0 && Gamma_#4); - CF, Gamma_CF := bvnot1(bvcomp33(zero_extend1_32(bvadd32(#4, 1bv32)), bvadd33(zero_extend1_32(R0[32:0]), 4294967296bv33))), (Gamma_R0 && Gamma_#4); - ZF, Gamma_ZF := bvcomp32(bvadd32(#4, 1bv32), 0bv32), Gamma_#4; - NF, Gamma_NF := bvadd32(#4, 1bv32)[32:31], Gamma_#4; + VF, Gamma_VF := 0bv1, true; + CF, Gamma_CF := 1bv1, true; + ZF, Gamma_ZF := bvcomp32(R0[32:0], 0bv32), Gamma_R0; + NF, Gamma_NF := R0[32:31], Gamma_R0; assert Gamma_ZF; - goto lmain_goto_l00000330, lmain_goto_l00000369; - lmain_goto_l00000369: - assume {:captureState "lmain_goto_l00000369"} true; - assume (bvnot1(bvcomp1(ZF, 1bv1)) == 0bv1); + goto lmain_goto_l0000025c, lmain_goto_l00000264; + l00000264: + assume {:captureState "l00000264"} true; R0, Gamma_R0 := 1bv64, true; - stack, Gamma_stack := memory_store32_le(stack, bvadd64(R31, 24bv64), R0[32:0]), gamma_store32(Gamma_stack, bvadd64(R31, 24bv64), Gamma_R0); - assume {:captureState "%00000374"} true; - goto l00000369; - l00000369: - assume {:captureState "l00000369"} true; - goto l00000342; - lmain_goto_l00000330: - assume {:captureState "lmain_goto_l00000330"} true; - assume (bvnot1(bvcomp1(ZF, 1bv1)) != 0bv1); - R0, Gamma_R0 := 2bv64, true; - stack, Gamma_stack := memory_store32_le(stack, bvadd64(R31, 24bv64), R0[32:0]), gamma_store32(Gamma_stack, bvadd64(R31, 24bv64), Gamma_R0); - assume {:captureState "%00000340"} true; - goto l00000330; - l00000330: - assume {:captureState "l00000330"} true; - goto l00000342; - l00000342: - assume {:captureState "l00000342"} true; - load19, Gamma_load19 := memory_load32_le(stack, bvadd64(R31, 24bv64)), gamma_load32(Gamma_stack, bvadd64(R31, 24bv64)); - R0, Gamma_R0 := zero_extend32_32(load19), Gamma_load19; - R0, Gamma_R0 := zero_extend32_32(bvadd32(R0[32:0], 1bv32)), Gamma_R0; - stack, Gamma_stack := memory_store32_le(stack, bvadd64(R31, 28bv64), R0[32:0]), gamma_store32(Gamma_stack, bvadd64(R31, 28bv64), Gamma_R0); - assume {:captureState "%00000355"} true; - load20, Gamma_load20 := memory_load32_le(stack, bvadd64(R31, 28bv64)), gamma_load32(Gamma_stack, bvadd64(R31, 28bv64)); - R0, Gamma_R0 := zero_extend32_32(load20), Gamma_load20; - R31, Gamma_R31 := bvadd64(R31, 32bv64), Gamma_R31; - goto main_1812_basil_return; - main_1812_basil_return: - assume {:captureState "main_1812_basil_return"} true; + goto l00000270; + l0000025c: + assume {:captureState "l0000025c"} true; + R0, Gamma_R0 := 0bv64, true; + goto l00000270; + l00000270: + assume {:captureState "l00000270"} true; + R0, Gamma_R0 := zero_extend32_32(bvadd32(R0[32:0], 2bv32)), Gamma_R0; + goto main_basil_return; + lmain_goto_l0000025c: + assume {:captureState "lmain_goto_l0000025c"} true; + assume (bvcomp1(ZF, 1bv1) != 0bv1); + goto l0000025c; + lmain_goto_l00000264: + assume {:captureState "lmain_goto_l00000264"} true; + assume (bvcomp1(ZF, 1bv1) == 0bv1); + goto l00000264; + main_basil_return: + assume {:captureState "main_basil_return"} true; return; } diff --git a/src/test/correct/ifbranches/gcc/ifbranches.gts b/src/test/correct/ifbranches/gcc/ifbranches.gts deleted file mode 100644 index f3fb85f76..000000000 Binary files a/src/test/correct/ifbranches/gcc/ifbranches.gts and /dev/null differ diff --git a/src/test/correct/ifbranches/gcc/ifbranches.md5sum b/src/test/correct/ifbranches/gcc/ifbranches.md5sum new file mode 100644 index 000000000..ecac08fe3 --- /dev/null +++ b/src/test/correct/ifbranches/gcc/ifbranches.md5sum @@ -0,0 +1,5 @@ +afa7e4438a88526bdcc0525d83e8f3c1 correct/ifbranches/gcc/a.out +b986dcba8cf66be2bb231fc02717bab5 correct/ifbranches/gcc/ifbranches.adt +9c900bd7c2676debd7fb94628ae6044c correct/ifbranches/gcc/ifbranches.bir +63c87c5141e719e93a21a962f6531761 correct/ifbranches/gcc/ifbranches.relf +368bd91f45f3e202fbc4ae75207590fc correct/ifbranches/gcc/ifbranches.gts diff --git a/src/test/correct/ifbranches/gcc/ifbranches.relf b/src/test/correct/ifbranches/gcc/ifbranches.relf deleted file mode 100644 index 6d8b2733f..000000000 --- a/src/test/correct/ifbranches/gcc/ifbranches.relf +++ /dev/null @@ -1,119 +0,0 @@ - -Relocation section '.rela.dyn' at offset 0x460 contains 8 entries: - Offset Info Type Symbol's Value Symbol's Name + Addend -0000000000010d98 0000000000000403 R_AARCH64_RELATIVE 710 -0000000000010da0 0000000000000403 R_AARCH64_RELATIVE 6c0 -0000000000010ff0 0000000000000403 R_AARCH64_RELATIVE 714 -0000000000011008 0000000000000403 R_AARCH64_RELATIVE 11008 -0000000000010fd8 0000000400000401 R_AARCH64_GLOB_DAT 0000000000000000 _ITM_deregisterTMCloneTable + 0 -0000000000010fe0 0000000500000401 R_AARCH64_GLOB_DAT 0000000000000000 __cxa_finalize@GLIBC_2.17 + 0 -0000000000010fe8 0000000600000401 R_AARCH64_GLOB_DAT 0000000000000000 __gmon_start__ + 0 -0000000000010ff8 0000000800000401 R_AARCH64_GLOB_DAT 0000000000000000 _ITM_registerTMCloneTable + 0 - -Relocation section '.rela.plt' at offset 0x520 contains 4 entries: - Offset Info Type Symbol's Value Symbol's Name + Addend -0000000000010fb0 0000000300000402 R_AARCH64_JUMP_SLOT 0000000000000000 __libc_start_main@GLIBC_2.34 + 0 -0000000000010fb8 0000000500000402 R_AARCH64_JUMP_SLOT 0000000000000000 __cxa_finalize@GLIBC_2.17 + 0 -0000000000010fc0 0000000600000402 R_AARCH64_JUMP_SLOT 0000000000000000 __gmon_start__ + 0 -0000000000010fc8 0000000700000402 R_AARCH64_JUMP_SLOT 0000000000000000 abort@GLIBC_2.17 + 0 - -Symbol table '.dynsym' contains 9 entries: - Num: Value Size Type Bind Vis Ndx Name - 0: 0000000000000000 0 NOTYPE LOCAL DEFAULT UND - 1: 0000000000000580 0 SECTION LOCAL DEFAULT 11 .init - 2: 0000000000011000 0 SECTION LOCAL DEFAULT 22 .data - 3: 0000000000000000 0 FUNC GLOBAL DEFAULT UND __libc_start_main@GLIBC_2.34 (2) - 4: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_deregisterTMCloneTable - 5: 0000000000000000 0 FUNC WEAK DEFAULT UND __cxa_finalize@GLIBC_2.17 (3) - 6: 0000000000000000 0 NOTYPE WEAK DEFAULT UND __gmon_start__ - 7: 0000000000000000 0 FUNC GLOBAL DEFAULT UND abort@GLIBC_2.17 (3) - 8: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_registerTMCloneTable - -Symbol table '.symtab' contains 86 entries: - Num: Value Size Type Bind Vis Ndx Name - 0: 0000000000000000 0 NOTYPE LOCAL DEFAULT UND - 1: 0000000000000238 0 SECTION LOCAL DEFAULT 1 .interp - 2: 0000000000000254 0 SECTION LOCAL DEFAULT 2 .note.gnu.build-id - 3: 0000000000000278 0 SECTION LOCAL DEFAULT 3 .note.ABI-tag - 4: 0000000000000298 0 SECTION LOCAL DEFAULT 4 .gnu.hash - 5: 00000000000002b8 0 SECTION LOCAL DEFAULT 5 .dynsym - 6: 0000000000000390 0 SECTION LOCAL DEFAULT 6 .dynstr - 7: 000000000000041e 0 SECTION LOCAL DEFAULT 7 .gnu.version - 8: 0000000000000430 0 SECTION LOCAL DEFAULT 8 .gnu.version_r - 9: 0000000000000460 0 SECTION LOCAL DEFAULT 9 .rela.dyn - 10: 0000000000000520 0 SECTION LOCAL DEFAULT 10 .rela.plt - 11: 0000000000000580 0 SECTION LOCAL DEFAULT 11 .init - 12: 00000000000005a0 0 SECTION LOCAL DEFAULT 12 .plt - 13: 0000000000000600 0 SECTION LOCAL DEFAULT 13 .text - 14: 000000000000075c 0 SECTION LOCAL DEFAULT 14 .fini - 15: 0000000000000770 0 SECTION LOCAL DEFAULT 15 .rodata - 16: 0000000000000774 0 SECTION LOCAL DEFAULT 16 .eh_frame_hdr - 17: 00000000000007b0 0 SECTION LOCAL DEFAULT 17 .eh_frame - 18: 0000000000010d98 0 SECTION LOCAL DEFAULT 18 .init_array - 19: 0000000000010da0 0 SECTION LOCAL DEFAULT 19 .fini_array - 20: 0000000000010da8 0 SECTION LOCAL DEFAULT 20 .dynamic - 21: 0000000000010f98 0 SECTION LOCAL DEFAULT 21 .got - 22: 0000000000011000 0 SECTION LOCAL DEFAULT 22 .data - 23: 0000000000011010 0 SECTION LOCAL DEFAULT 23 .bss - 24: 0000000000000000 0 SECTION LOCAL DEFAULT 24 .comment - 25: 0000000000000000 0 FILE LOCAL DEFAULT ABS Scrt1.o - 26: 0000000000000278 0 NOTYPE LOCAL DEFAULT 3 $d - 27: 0000000000000278 32 OBJECT LOCAL DEFAULT 3 __abi_tag - 28: 0000000000000600 0 NOTYPE LOCAL DEFAULT 13 $x - 29: 00000000000007c4 0 NOTYPE LOCAL DEFAULT 17 $d - 30: 0000000000000770 0 NOTYPE LOCAL DEFAULT 15 $d - 31: 0000000000000000 0 FILE LOCAL DEFAULT ABS crti.o - 32: 0000000000000634 0 NOTYPE LOCAL DEFAULT 13 $x - 33: 0000000000000634 20 FUNC LOCAL DEFAULT 13 call_weak_fn - 34: 0000000000000580 0 NOTYPE LOCAL DEFAULT 11 $x - 35: 000000000000075c 0 NOTYPE LOCAL DEFAULT 14 $x - 36: 0000000000000000 0 FILE LOCAL DEFAULT ABS crtn.o - 37: 0000000000000590 0 NOTYPE LOCAL DEFAULT 11 $x - 38: 0000000000000768 0 NOTYPE LOCAL DEFAULT 14 $x - 39: 0000000000000000 0 FILE LOCAL DEFAULT ABS crtstuff.c - 40: 0000000000000650 0 NOTYPE LOCAL DEFAULT 13 $x - 41: 0000000000000650 0 FUNC LOCAL DEFAULT 13 deregister_tm_clones - 42: 0000000000000680 0 FUNC LOCAL DEFAULT 13 register_tm_clones - 43: 0000000000011008 0 NOTYPE LOCAL DEFAULT 22 $d - 44: 00000000000006c0 0 FUNC LOCAL DEFAULT 13 __do_global_dtors_aux - 45: 0000000000011010 1 OBJECT LOCAL DEFAULT 23 completed.0 - 46: 0000000000010da0 0 NOTYPE LOCAL DEFAULT 19 $d - 47: 0000000000010da0 0 OBJECT LOCAL DEFAULT 19 __do_global_dtors_aux_fini_array_entry - 48: 0000000000000710 0 FUNC LOCAL DEFAULT 13 frame_dummy - 49: 0000000000010d98 0 NOTYPE LOCAL DEFAULT 18 $d - 50: 0000000000010d98 0 OBJECT LOCAL DEFAULT 18 __frame_dummy_init_array_entry - 51: 00000000000007d8 0 NOTYPE LOCAL DEFAULT 17 $d - 52: 0000000000011010 0 NOTYPE LOCAL DEFAULT 23 $d - 53: 0000000000000000 0 FILE LOCAL DEFAULT ABS ifbranches.c - 54: 0000000000000714 0 NOTYPE LOCAL DEFAULT 13 $x - 55: 0000000000000838 0 NOTYPE LOCAL DEFAULT 17 $d - 56: 0000000000000000 0 FILE LOCAL DEFAULT ABS crtstuff.c - 57: 0000000000000850 0 NOTYPE LOCAL DEFAULT 17 $d - 58: 0000000000000850 0 OBJECT LOCAL DEFAULT 17 __FRAME_END__ - 59: 0000000000000000 0 FILE LOCAL DEFAULT ABS - 60: 0000000000010da8 0 OBJECT LOCAL DEFAULT ABS _DYNAMIC - 61: 0000000000000774 0 NOTYPE LOCAL DEFAULT 16 __GNU_EH_FRAME_HDR - 62: 0000000000010fd0 0 OBJECT LOCAL DEFAULT ABS _GLOBAL_OFFSET_TABLE_ - 63: 00000000000005a0 0 NOTYPE LOCAL DEFAULT 12 $x - 64: 0000000000000000 0 FUNC GLOBAL DEFAULT UND __libc_start_main@GLIBC_2.34 - 65: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_deregisterTMCloneTable - 66: 0000000000011000 0 NOTYPE WEAK DEFAULT 22 data_start - 67: 0000000000011010 0 NOTYPE GLOBAL DEFAULT 23 __bss_start__ - 68: 0000000000000000 0 FUNC WEAK DEFAULT UND __cxa_finalize@GLIBC_2.17 - 69: 0000000000011018 0 NOTYPE GLOBAL DEFAULT 23 _bss_end__ - 70: 0000000000011010 0 NOTYPE GLOBAL DEFAULT 22 _edata - 71: 000000000000075c 0 FUNC GLOBAL HIDDEN 14 _fini - 72: 0000000000011018 0 NOTYPE GLOBAL DEFAULT 23 __bss_end__ - 73: 0000000000011000 0 NOTYPE GLOBAL DEFAULT 22 __data_start - 74: 0000000000000000 0 NOTYPE WEAK DEFAULT UND __gmon_start__ - 75: 0000000000011008 0 OBJECT GLOBAL HIDDEN 22 __dso_handle - 76: 0000000000000000 0 FUNC GLOBAL DEFAULT UND abort@GLIBC_2.17 - 77: 0000000000000770 4 OBJECT GLOBAL DEFAULT 15 _IO_stdin_used - 78: 0000000000011018 0 NOTYPE GLOBAL DEFAULT 23 _end - 79: 0000000000000600 52 FUNC GLOBAL DEFAULT 13 _start - 80: 0000000000011018 0 NOTYPE GLOBAL DEFAULT 23 __end__ - 81: 0000000000011010 0 NOTYPE GLOBAL DEFAULT 23 __bss_start - 82: 0000000000000714 72 FUNC GLOBAL DEFAULT 13 main - 83: 0000000000011010 0 OBJECT GLOBAL HIDDEN 22 __TMC_END__ - 84: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_registerTMCloneTable - 85: 0000000000000580 0 FUNC GLOBAL HIDDEN 11 _init diff --git a/src/test/correct/ifbranches/gcc/ifbranches_gtirb.expected b/src/test/correct/ifbranches/gcc/ifbranches_gtirb.expected index fd02bf6aa..694b588ff 100644 --- a/src/test/correct/ifbranches/gcc/ifbranches_gtirb.expected +++ b/src/test/correct/ifbranches/gcc/ifbranches_gtirb.expected @@ -2,38 +2,17 @@ var {:extern} CF: bv1; var {:extern} Gamma_CF: bool; var {:extern} Gamma_NF: bool; var {:extern} Gamma_R0: bool; -var {:extern} Gamma_R1: bool; -var {:extern} Gamma_R31: bool; var {:extern} Gamma_VF: bool; var {:extern} Gamma_ZF: bool; var {:extern} Gamma_mem: [bv64]bool; -var {:extern} Gamma_stack: [bv64]bool; var {:extern} NF: bv1; var {:extern} R0: bv64; -var {:extern} R1: bv64; -var {:extern} R31: bv64; var {:extern} VF: bv1; var {:extern} ZF: bv1; var {:extern} mem: [bv64]bv8; -var {:extern} stack: [bv64]bv8; function {:extern} {:bvbuiltin "bvadd"} bvadd32(bv32, bv32) returns (bv32); -function {:extern} {:bvbuiltin "bvadd"} bvadd33(bv33, bv33) returns (bv33); function {:extern} {:bvbuiltin "bvadd"} bvadd64(bv64, bv64) returns (bv64); function {:extern} {:bvbuiltin "bvcomp"} bvcomp32(bv32, bv32) returns (bv1); -function {:extern} {:bvbuiltin "bvcomp"} bvcomp33(bv33, bv33) returns (bv1); -function {:extern} {:bvbuiltin "bvnot"} bvnot1(bv1) returns (bv1); -function {:extern} gamma_load32(gammaMap: [bv64]bool, index: bv64) returns (bool) { - (gammaMap[bvadd64(index, 3bv64)] && (gammaMap[bvadd64(index, 2bv64)] && (gammaMap[bvadd64(index, 1bv64)] && gammaMap[index]))) -} - -function {:extern} gamma_store32(gammaMap: [bv64]bool, index: bv64, value: bool) returns ([bv64]bool) { - gammaMap[index := value][bvadd64(index, 1bv64) := value][bvadd64(index, 2bv64) := value][bvadd64(index, 3bv64) := value] -} - -function {:extern} gamma_store64(gammaMap: [bv64]bool, index: bv64, value: bool) returns ([bv64]bool) { - gammaMap[index := value][bvadd64(index, 1bv64) := value][bvadd64(index, 2bv64) := value][bvadd64(index, 3bv64) := value][bvadd64(index, 4bv64) := value][bvadd64(index, 5bv64) := value][bvadd64(index, 6bv64) := value][bvadd64(index, 7bv64) := value] -} - function {:extern} memory_load32_le(memory: [bv64]bv8, index: bv64) returns (bv32) { (memory[bvadd64(index, 3bv64)] ++ (memory[bvadd64(index, 2bv64)] ++ (memory[bvadd64(index, 1bv64)] ++ memory[index]))) } @@ -42,25 +21,12 @@ function {:extern} memory_load64_le(memory: [bv64]bv8, index: bv64) returns (bv6 (memory[bvadd64(index, 7bv64)] ++ (memory[bvadd64(index, 6bv64)] ++ (memory[bvadd64(index, 5bv64)] ++ (memory[bvadd64(index, 4bv64)] ++ (memory[bvadd64(index, 3bv64)] ++ (memory[bvadd64(index, 2bv64)] ++ (memory[bvadd64(index, 1bv64)] ++ memory[index]))))))) } -function {:extern} memory_store32_le(memory: [bv64]bv8, index: bv64, value: bv32) returns ([bv64]bv8) { - memory[index := value[8:0]][bvadd64(index, 1bv64) := value[16:8]][bvadd64(index, 2bv64) := value[24:16]][bvadd64(index, 3bv64) := value[32:24]] -} - -function {:extern} memory_store64_le(memory: [bv64]bv8, index: bv64, value: bv64) returns ([bv64]bv8) { - memory[index := value[8:0]][bvadd64(index, 1bv64) := value[16:8]][bvadd64(index, 2bv64) := value[24:16]][bvadd64(index, 3bv64) := value[32:24]][bvadd64(index, 4bv64) := value[40:32]][bvadd64(index, 5bv64) := value[48:40]][bvadd64(index, 6bv64) := value[56:48]][bvadd64(index, 7bv64) := value[64:56]] -} - -function {:extern} {:bvbuiltin "zero_extend 1"} zero_extend1_32(bv32) returns (bv33); function {:extern} {:bvbuiltin "zero_extend 32"} zero_extend32_32(bv32) returns (bv64); procedure {:extern} rely(); modifies Gamma_mem, mem; ensures (Gamma_mem == old(Gamma_mem)); ensures (mem == old(mem)); - free ensures (memory_load32_le(mem, 1904bv64) == 131073bv32); - free ensures (memory_load64_le(mem, 69016bv64) == 1808bv64); - free ensures (memory_load64_le(mem, 69024bv64) == 1728bv64); - free ensures (memory_load64_le(mem, 69616bv64) == 1812bv64); - free ensures (memory_load64_le(mem, 69640bv64) == 69640bv64); + free ensures (memory_load32_le(mem, 4196312bv64) == 131073bv32); procedure {:extern} rely_transitive(); modifies Gamma_mem, mem; @@ -78,85 +44,40 @@ procedure {:extern} rely_reflexive(); procedure {:extern} guarantee_reflexive(); modifies Gamma_mem, mem; -procedure main_1812(); - modifies CF, Gamma_CF, Gamma_NF, Gamma_R0, Gamma_R31, Gamma_VF, Gamma_ZF, Gamma_stack, NF, R0, R31, VF, ZF, stack; +procedure main(); + modifies CF, Gamma_CF, Gamma_NF, Gamma_R0, Gamma_VF, Gamma_ZF, NF, R0, VF, ZF; requires (Gamma_R0 == true); - free requires (memory_load64_le(mem, 69632bv64) == 0bv64); - free requires (memory_load64_le(mem, 69640bv64) == 69640bv64); - free requires (memory_load32_le(mem, 1904bv64) == 131073bv32); - free requires (memory_load64_le(mem, 69016bv64) == 1808bv64); - free requires (memory_load64_le(mem, 69024bv64) == 1728bv64); - free requires (memory_load64_le(mem, 69616bv64) == 1812bv64); - free requires (memory_load64_le(mem, 69640bv64) == 69640bv64); - free ensures (Gamma_R31 == old(Gamma_R31)); - free ensures (R31 == old(R31)); - free ensures (memory_load32_le(mem, 1904bv64) == 131073bv32); - free ensures (memory_load64_le(mem, 69016bv64) == 1808bv64); - free ensures (memory_load64_le(mem, 69024bv64) == 1728bv64); - free ensures (memory_load64_le(mem, 69616bv64) == 1812bv64); - free ensures (memory_load64_le(mem, 69640bv64) == 69640bv64); + free requires (memory_load64_le(mem, 4325376bv64) == 0bv64); + free requires (memory_load64_le(mem, 4325384bv64) == 0bv64); + free requires (memory_load32_le(mem, 4196312bv64) == 131073bv32); + free ensures (memory_load32_le(mem, 4196312bv64) == 131073bv32); -implementation main_1812() +implementation main() { - var Cse0__5_0_5: bv32; - var Gamma_Cse0__5_0_5: bool; - var Gamma_load10: bool; - var Gamma_load11: bool; - var Gamma_load9: bool; - var load10: bv32; - var load11: bv32; - var load9: bv32; - main_1812__0__HREQex45QTmTaqW9AKOrww: - assume {:captureState "main_1812__0__HREQex45QTmTaqW9AKOrww"} true; - R31, Gamma_R31 := bvadd64(R31, 18446744073709551584bv64), Gamma_R31; - stack, Gamma_stack := memory_store32_le(stack, bvadd64(R31, 12bv64), R0[32:0]), gamma_store32(Gamma_stack, bvadd64(R31, 12bv64), Gamma_R0); - assume {:captureState "1816_0"} true; - stack, Gamma_stack := memory_store64_le(stack, R31, R1), gamma_store64(Gamma_stack, R31, Gamma_R1); - assume {:captureState "1820_0"} true; - stack, Gamma_stack := memory_store32_le(stack, bvadd64(R31, 24bv64), 0bv32), gamma_store32(Gamma_stack, bvadd64(R31, 24bv64), true); - assume {:captureState "1824_0"} true; - load9, Gamma_load9 := memory_load32_le(stack, bvadd64(R31, 12bv64)), gamma_load32(Gamma_stack, bvadd64(R31, 12bv64)); - R0, Gamma_R0 := zero_extend32_32(load9), Gamma_load9; - Cse0__5_0_5, Gamma_Cse0__5_0_5 := bvadd32(R0[32:0], 0bv32), Gamma_R0; - VF, Gamma_VF := bvnot1(bvcomp32(Cse0__5_0_5, Cse0__5_0_5)), Gamma_Cse0__5_0_5; - CF, Gamma_CF := bvnot1(bvcomp33(zero_extend1_32(Cse0__5_0_5), bvadd33(zero_extend1_32(R0[32:0]), 4294967296bv33))), (Gamma_R0 && Gamma_Cse0__5_0_5); - ZF, Gamma_ZF := bvcomp32(Cse0__5_0_5, 0bv32), Gamma_Cse0__5_0_5; - NF, Gamma_NF := Cse0__5_0_5[32:31], Gamma_Cse0__5_0_5; + $main$__0__$cegbDVc9S6m8Z0kHHU8BZQ: + assume {:captureState "$main$__0__$cegbDVc9S6m8Z0kHHU8BZQ"} true; + VF, Gamma_VF := 0bv1, true; + CF, Gamma_CF := 1bv1, true; + ZF, Gamma_ZF := bvcomp32(R0[32:0], 0bv32), Gamma_R0; + NF, Gamma_NF := R0[32:31], Gamma_R0; assert Gamma_ZF; - goto main_1812__0__HREQex45QTmTaqW9AKOrww_goto_main_1812__2__pc5c5kDrQe25Hv3XM4X5VA, main_1812__0__HREQex45QTmTaqW9AKOrww_goto_main_1812__1__mUDMeuR3T76Jfb1u23xaOA; - main_1812__0__HREQex45QTmTaqW9AKOrww_goto_main_1812__1__mUDMeuR3T76Jfb1u23xaOA: - assume {:captureState "main_1812__0__HREQex45QTmTaqW9AKOrww_goto_main_1812__1__mUDMeuR3T76Jfb1u23xaOA"} true; - assume (!(!(ZF == 1bv1))); - R0, Gamma_R0 := 1bv64, true; - stack, Gamma_stack := memory_store32_le(stack, bvadd64(R31, 24bv64), R0[32:0]), gamma_store32(Gamma_stack, bvadd64(R31, 24bv64), Gamma_R0); - assume {:captureState "1844_0"} true; - goto main_1812__1__mUDMeuR3T76Jfb1u23xaOA; - main_1812__1__mUDMeuR3T76Jfb1u23xaOA: - assume {:captureState "main_1812__1__mUDMeuR3T76Jfb1u23xaOA"} true; - goto main_1812__3__aU3DvXsmR~eEJl7F4Wc4Ww; - main_1812__0__HREQex45QTmTaqW9AKOrww_goto_main_1812__2__pc5c5kDrQe25Hv3XM4X5VA: - assume {:captureState "main_1812__0__HREQex45QTmTaqW9AKOrww_goto_main_1812__2__pc5c5kDrQe25Hv3XM4X5VA"} true; + goto $main$__0__$cegbDVc9S6m8Z0kHHU8BZQ$__0, $main$__0__$cegbDVc9S6m8Z0kHHU8BZQ$__1; + $main$__0__$cegbDVc9S6m8Z0kHHU8BZQ$__0: + assume {:captureState "$main$__0__$cegbDVc9S6m8Z0kHHU8BZQ$__0"} true; + assume (ZF == 1bv1); + R0, Gamma_R0 := 0bv64, true; + goto $main$__0__$cegbDVc9S6m8Z0kHHU8BZQ$__2; + $main$__0__$cegbDVc9S6m8Z0kHHU8BZQ$__1: + assume {:captureState "$main$__0__$cegbDVc9S6m8Z0kHHU8BZQ$__1"} true; assume (!(ZF == 1bv1)); - R0, Gamma_R0 := 2bv64, true; - stack, Gamma_stack := memory_store32_le(stack, bvadd64(R31, 24bv64), R0[32:0]), gamma_store32(Gamma_stack, bvadd64(R31, 24bv64), Gamma_R0); - assume {:captureState "1856_0"} true; - goto main_1812__2__pc5c5kDrQe25Hv3XM4X5VA; - main_1812__2__pc5c5kDrQe25Hv3XM4X5VA: - assume {:captureState "main_1812__2__pc5c5kDrQe25Hv3XM4X5VA"} true; - goto main_1812__3__aU3DvXsmR~eEJl7F4Wc4Ww; - main_1812__3__aU3DvXsmR~eEJl7F4Wc4Ww: - assume {:captureState "main_1812__3__aU3DvXsmR~eEJl7F4Wc4Ww"} true; - load10, Gamma_load10 := memory_load32_le(stack, bvadd64(R31, 24bv64)), gamma_load32(Gamma_stack, bvadd64(R31, 24bv64)); - R0, Gamma_R0 := zero_extend32_32(load10), Gamma_load10; - R0, Gamma_R0 := zero_extend32_32(bvadd32(R0[32:0], 1bv32)), Gamma_R0; - stack, Gamma_stack := memory_store32_le(stack, bvadd64(R31, 28bv64), R0[32:0]), gamma_store32(Gamma_stack, bvadd64(R31, 28bv64), Gamma_R0); - assume {:captureState "1868_0"} true; - load11, Gamma_load11 := memory_load32_le(stack, bvadd64(R31, 28bv64)), gamma_load32(Gamma_stack, bvadd64(R31, 28bv64)); - R0, Gamma_R0 := zero_extend32_32(load11), Gamma_load11; - R31, Gamma_R31 := bvadd64(R31, 32bv64), Gamma_R31; - goto main_1812_basil_return; - main_1812_basil_return: - assume {:captureState "main_1812_basil_return"} true; + R0, Gamma_R0 := 1bv64, true; + goto $main$__0__$cegbDVc9S6m8Z0kHHU8BZQ$__2; + $main$__0__$cegbDVc9S6m8Z0kHHU8BZQ$__2: + assume {:captureState "$main$__0__$cegbDVc9S6m8Z0kHHU8BZQ$__2"} true; + R0, Gamma_R0 := zero_extend32_32(bvadd32(R0[32:0], 2bv32)), Gamma_R0; + goto main_basil_return; + main_basil_return: + assume {:captureState "main_basil_return"} true; return; } diff --git a/src/test/correct/ifbranches/gcc_O2/ifbranches.adt b/src/test/correct/ifbranches/gcc_O2/ifbranches.adt deleted file mode 100644 index 280d8b590..000000000 --- a/src/test/correct/ifbranches/gcc_O2/ifbranches.adt +++ /dev/null @@ -1,515 +0,0 @@ -Project(Attrs([Attr("filename","\"gcc_O2/ifbranches.out\""), -Attr("image-specification","(declare abi (name str))\n(declare arch (name str))\n(declare base-address (addr int))\n(declare bias (off int))\n(declare bits (size int))\n(declare code-region (addr int) (size int) (off int))\n(declare code-start (addr int))\n(declare entry-point (addr int))\n(declare external-reference (addr int) (name str))\n(declare format (name str))\n(declare is-executable (flag bool))\n(declare is-little-endian (flag bool))\n(declare llvm:base-address (addr int))\n(declare llvm:code-entry (name str) (off int) (size int))\n(declare llvm:coff-import-library (name str))\n(declare llvm:coff-virtual-section-header (name str) (addr int) (size int))\n(declare llvm:elf-program-header (name str) (off int) (size int))\n(declare llvm:elf-program-header-flags (name str) (ld bool) (r bool) \n (w bool) (x bool))\n(declare llvm:elf-virtual-program-header (name str) (addr int) (size int))\n(declare llvm:entry-point (addr int))\n(declare llvm:macho-symbol (name str) (value int))\n(declare llvm:name-reference (at int) (name str))\n(declare llvm:relocation (at int) (addr int))\n(declare llvm:section-entry (name str) (addr int) (size int) (off int))\n(declare llvm:section-flags (name str) (r bool) (w bool) (x bool))\n(declare llvm:segment-command (name str) (off int) (size int))\n(declare llvm:segment-command-flags (name str) (r bool) (w bool) (x bool))\n(declare llvm:symbol-entry (name str) (addr int) (size int) (off int)\n (value int))\n(declare llvm:virtual-segment-command (name str) (addr int) (size int))\n(declare mapped (addr int) (size int) (off int))\n(declare named-region (addr int) (size int) (name str))\n(declare named-symbol (addr int) (name str))\n(declare require (name str))\n(declare section (addr int) (size int))\n(declare segment (addr int) (size int) (r bool) (w bool) (x bool))\n(declare subarch (name str))\n(declare symbol-chunk (addr int) (size int) (root int))\n(declare symbol-value (addr int) (value int))\n(declare system (name str))\n(declare vendor (name str))\n\n(abi unknown)\n(arch aarch64)\n(base-address 0)\n(bias 0)\n(bits 64)\n(code-region 1876 20 1876)\n(code-region 1536 340 1536)\n(code-region 1440 96 1440)\n(code-region 1408 24 1408)\n(code-start 1652)\n(code-start 1600)\n(code-start 1536)\n(entry-point 1600)\n(external-reference 69592 _ITM_deregisterTMCloneTable)\n(external-reference 69600 __cxa_finalize)\n(external-reference 69608 __gmon_start__)\n(external-reference 69624 _ITM_registerTMCloneTable)\n(external-reference 69552 __libc_start_main)\n(external-reference 69560 __cxa_finalize)\n(external-reference 69568 __gmon_start__)\n(external-reference 69576 abort)\n(format elf)\n(is-executable true)\n(is-little-endian true)\n(llvm:base-address 0)\n(llvm:code-entry abort 0 0)\n(llvm:code-entry __cxa_finalize 0 0)\n(llvm:code-entry __libc_start_main 0 0)\n(llvm:code-entry _init 1408 0)\n(llvm:code-entry main 1536 16)\n(llvm:code-entry _start 1600 52)\n(llvm:code-entry abort@GLIBC_2.17 0 0)\n(llvm:code-entry _fini 1876 0)\n(llvm:code-entry __cxa_finalize@GLIBC_2.17 0 0)\n(llvm:code-entry __libc_start_main@GLIBC_2.34 0 0)\n(llvm:code-entry frame_dummy 1872 0)\n(llvm:code-entry __do_global_dtors_aux 1792 0)\n(llvm:code-entry register_tm_clones 1728 0)\n(llvm:code-entry deregister_tm_clones 1680 0)\n(llvm:code-entry call_weak_fn 1652 20)\n(llvm:code-entry .fini 1876 20)\n(llvm:code-entry .text 1536 340)\n(llvm:code-entry .plt 1440 96)\n(llvm:code-entry .init 1408 24)\n(llvm:elf-program-header 08 3480 616)\n(llvm:elf-program-header 07 0 0)\n(llvm:elf-program-header 06 1900 60)\n(llvm:elf-program-header 05 596 68)\n(llvm:elf-program-header 04 3496 496)\n(llvm:elf-program-header 03 3480 632)\n(llvm:elf-program-header 02 0 2120)\n(llvm:elf-program-header 01 568 27)\n(llvm:elf-program-header 00 64 504)\n(llvm:elf-program-header-flags 08 false true false false)\n(llvm:elf-program-header-flags 07 false true true false)\n(llvm:elf-program-header-flags 06 false true false false)\n(llvm:elf-program-header-flags 05 false true false false)\n(llvm:elf-program-header-flags 04 false true true false)\n(llvm:elf-program-header-flags 03 true true true false)\n(llvm:elf-program-header-flags 02 true true false true)\n(llvm:elf-program-header-flags 01 false true false false)\n(llvm:elf-program-header-flags 00 false true false false)\n(llvm:elf-virtual-program-header 08 69016 616)\n(llvm:elf-virtual-program-header 07 0 0)\n(llvm:elf-virtual-program-header 06 1900 60)\n(llvm:elf-virtual-program-header 05 596 68)\n(llvm:elf-virtual-program-header 04 69032 496)\n(llvm:elf-virtual-program-header 03 69016 640)\n(llvm:elf-virtual-program-header 02 0 2120)\n(llvm:elf-virtual-program-header 01 568 27)\n(llvm:elf-virtual-program-header 00 64 504)\n(llvm:entry-point 1600)\n(llvm:name-reference 69576 abort)\n(llvm:name-reference 69568 __gmon_start__)\n(llvm:name-reference 69560 __cxa_finalize)\n(llvm:name-reference 69552 __libc_start_main)\n(llvm:name-reference 69624 _ITM_registerTMCloneTable)\n(llvm:name-reference 69608 __gmon_start__)\n(llvm:name-reference 69600 __cxa_finalize)\n(llvm:name-reference 69592 _ITM_deregisterTMCloneTable)\n(llvm:section-entry .shstrtab 0 250 6770)\n(llvm:section-entry .strtab 0 546 6224)\n(llvm:section-entry .symtab 0 2064 4160)\n(llvm:section-entry .comment 0 43 4112)\n(llvm:section-entry .bss 69648 8 4112)\n(llvm:section-entry .data 69632 16 4096)\n(llvm:section-entry .got 69528 104 3992)\n(llvm:section-entry .dynamic 69032 496 3496)\n(llvm:section-entry .fini_array 69024 8 3488)\n(llvm:section-entry .init_array 69016 8 3480)\n(llvm:section-entry .eh_frame 1960 160 1960)\n(llvm:section-entry .eh_frame_hdr 1900 60 1900)\n(llvm:section-entry .rodata 1896 4 1896)\n(llvm:section-entry .fini 1876 20 1876)\n(llvm:section-entry .text 1536 340 1536)\n(llvm:section-entry .plt 1440 96 1440)\n(llvm:section-entry .init 1408 24 1408)\n(llvm:section-entry .rela.plt 1312 96 1312)\n(llvm:section-entry .rela.dyn 1120 192 1120)\n(llvm:section-entry .gnu.version_r 1072 48 1072)\n(llvm:section-entry .gnu.version 1054 18 1054)\n(llvm:section-entry .dynstr 912 141 912)\n(llvm:section-entry .dynsym 696 216 696)\n(llvm:section-entry .gnu.hash 664 28 664)\n(llvm:section-entry .note.ABI-tag 632 32 632)\n(llvm:section-entry .note.gnu.build-id 596 36 596)\n(llvm:section-entry .interp 568 27 568)\n(llvm:section-flags .shstrtab true false false)\n(llvm:section-flags .strtab true false false)\n(llvm:section-flags .symtab true false false)\n(llvm:section-flags .comment true false false)\n(llvm:section-flags .bss true true false)\n(llvm:section-flags .data true true false)\n(llvm:section-flags .got true true false)\n(llvm:section-flags .dynamic true true false)\n(llvm:section-flags .fini_array true true false)\n(llvm:section-flags .init_array true true false)\n(llvm:section-flags .eh_frame true false false)\n(llvm:section-flags .eh_frame_hdr true false false)\n(llvm:section-flags .rodata true false false)\n(llvm:section-flags .fini true false true)\n(llvm:section-flags .text true false true)\n(llvm:section-flags .plt true false true)\n(llvm:section-flags .init true false true)\n(llvm:section-flags .rela.plt true false false)\n(llvm:section-flags .rela.dyn true false false)\n(llvm:section-flags .gnu.version_r true false false)\n(llvm:section-flags .gnu.version true false false)\n(llvm:section-flags .dynstr true false false)\n(llvm:section-flags .dynsym true false false)\n(llvm:section-flags .gnu.hash true false false)\n(llvm:section-flags .note.ABI-tag true false false)\n(llvm:section-flags .note.gnu.build-id true false false)\n(llvm:section-flags .interp true false false)\n(llvm:symbol-entry abort 0 0 0 0)\n(llvm:symbol-entry __cxa_finalize 0 0 0 0)\n(llvm:symbol-entry __libc_start_main 0 0 0 0)\n(llvm:symbol-entry _init 1408 0 1408 1408)\n(llvm:symbol-entry main 1536 16 1536 1536)\n(llvm:symbol-entry _start 1600 52 1600 1600)\n(llvm:symbol-entry abort@GLIBC_2.17 0 0 0 0)\n(llvm:symbol-entry _fini 1876 0 1876 1876)\n(llvm:symbol-entry __cxa_finalize@GLIBC_2.17 0 0 0 0)\n(llvm:symbol-entry __libc_start_main@GLIBC_2.34 0 0 0 0)\n(llvm:symbol-entry frame_dummy 1872 0 1872 1872)\n(llvm:symbol-entry __do_global_dtors_aux 1792 0 1792 1792)\n(llvm:symbol-entry register_tm_clones 1728 0 1728 1728)\n(llvm:symbol-entry deregister_tm_clones 1680 0 1680 1680)\n(llvm:symbol-entry call_weak_fn 1652 20 1652 1652)\n(mapped 0 2120 0)\n(mapped 69016 632 3480)\n(named-region 0 2120 02)\n(named-region 69016 640 03)\n(named-region 568 27 .interp)\n(named-region 596 36 .note.gnu.build-id)\n(named-region 632 32 .note.ABI-tag)\n(named-region 664 28 .gnu.hash)\n(named-region 696 216 .dynsym)\n(named-region 912 141 .dynstr)\n(named-region 1054 18 .gnu.version)\n(named-region 1072 48 .gnu.version_r)\n(named-region 1120 192 .rela.dyn)\n(named-region 1312 96 .rela.plt)\n(named-region 1408 24 .init)\n(named-region 1440 96 .plt)\n(named-region 1536 340 .text)\n(named-region 1876 20 .fini)\n(named-region 1896 4 .rodata)\n(named-region 1900 60 .eh_frame_hdr)\n(named-region 1960 160 .eh_frame)\n(named-region 69016 8 .init_array)\n(named-region 69024 8 .fini_array)\n(named-region 69032 496 .dynamic)\n(named-region 69528 104 .got)\n(named-region 69632 16 .data)\n(named-region 69648 8 .bss)\n(named-region 0 43 .comment)\n(named-region 0 2064 .symtab)\n(named-region 0 546 .strtab)\n(named-region 0 250 .shstrtab)\n(named-symbol 1652 call_weak_fn)\n(named-symbol 1680 deregister_tm_clones)\n(named-symbol 1728 register_tm_clones)\n(named-symbol 1792 __do_global_dtors_aux)\n(named-symbol 1872 frame_dummy)\n(named-symbol 0 __libc_start_main@GLIBC_2.34)\n(named-symbol 0 __cxa_finalize@GLIBC_2.17)\n(named-symbol 1876 _fini)\n(named-symbol 0 abort@GLIBC_2.17)\n(named-symbol 1600 _start)\n(named-symbol 1536 main)\n(named-symbol 1408 _init)\n(named-symbol 0 __libc_start_main)\n(named-symbol 0 __cxa_finalize)\n(named-symbol 0 abort)\n(require libc.so.6)\n(section 568 27)\n(section 596 36)\n(section 632 32)\n(section 664 28)\n(section 696 216)\n(section 912 141)\n(section 1054 18)\n(section 1072 48)\n(section 1120 192)\n(section 1312 96)\n(section 1408 24)\n(section 1440 96)\n(section 1536 340)\n(section 1876 20)\n(section 1896 4)\n(section 1900 60)\n(section 1960 160)\n(section 69016 8)\n(section 69024 8)\n(section 69032 496)\n(section 69528 104)\n(section 69632 16)\n(section 69648 8)\n(section 0 43)\n(section 0 2064)\n(section 0 546)\n(section 0 250)\n(segment 0 2120 true false true)\n(segment 69016 640 true true false)\n(subarch v8)\n(symbol-chunk 1652 20 1652)\n(symbol-chunk 1600 52 1600)\n(symbol-chunk 1536 16 1536)\n(symbol-value 1652 1652)\n(symbol-value 1680 1680)\n(symbol-value 1728 1728)\n(symbol-value 1792 1792)\n(symbol-value 1872 1872)\n(symbol-value 1876 1876)\n(symbol-value 1600 1600)\n(symbol-value 1536 1536)\n(symbol-value 1408 1408)\n(symbol-value 0 0)\n(system \"\")\n(vendor \"\")\n"), -Attr("abi-name","\"aarch64-linux-gnu-elf\"")]), -Sections([Section(".shstrtab", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x40\x06\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x70\x1b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x38\x00\x09\x00\x40\x00\x1c\x00\x1b\x00\x06\x00\x00\x00\x04\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x04\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x48\x08\x00\x00\x00\x00\x00\x00\x48\x08\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x01\x00\x00\x00\x06\x00\x00\x00\x98\x0d\x00\x00\x00\x00\x00\x00\x98\x0d"), -Section(".strtab", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x40\x06\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x70\x1b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x38\x00\x09\x00\x40\x00\x1c\x00\x1b\x00\x06\x00\x00\x00\x04\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x04\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x48\x08\x00\x00\x00\x00\x00\x00\x48\x08\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x01\x00\x00\x00\x06\x00\x00\x00\x98\x0d\x00\x00\x00\x00\x00\x00\x98\x0d\x01\x00\x00\x00\x00\x00\x98\x0d\x01\x00\x00\x00\x00\x00\x78\x02\x00\x00\x00\x00\x00\x00\x80\x02\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x02\x00\x00\x00\x06\x00\x00\x00\xa8\x0d\x00\x00\x00\x00\x00\x00\xa8\x0d\x01\x00\x00\x00\x00\x00\xa8\x0d\x01\x00\x00\x00\x00\x00\xf0\x01\x00\x00\x00\x00\x00\x00\xf0\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x04\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x50\xe5\x74\x64\x04\x00\x00\x00\x6c\x07\x00\x00\x00\x00\x00\x00\x6c\x07\x00\x00\x00\x00\x00\x00\x6c\x07\x00\x00\x00\x00\x00\x00\x3c\x00\x00\x00\x00\x00\x00\x00\x3c\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x51\xe5\x74\x64\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x52\xe5\x74\x64\x04\x00\x00\x00\x98\x0d\x00\x00\x00\x00\x00\x00\x98\x0d\x01\x00\x00\x00\x00\x00\x98\x0d\x01\x00\x00\x00\x00\x00\x68\x02"), -Section(".symtab", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x40\x06\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x70\x1b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x38\x00\x09\x00\x40\x00\x1c\x00\x1b\x00\x06\x00\x00\x00\x04\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x04\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x48\x08\x00\x00\x00\x00\x00\x00\x48\x08\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x01\x00\x00\x00\x06\x00\x00\x00\x98\x0d\x00\x00\x00\x00\x00\x00\x98\x0d\x01\x00\x00\x00\x00\x00\x98\x0d\x01\x00\x00\x00\x00\x00\x78\x02\x00\x00\x00\x00\x00\x00\x80\x02\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x02\x00\x00\x00\x06\x00\x00\x00\xa8\x0d\x00\x00\x00\x00\x00\x00\xa8\x0d\x01\x00\x00\x00\x00\x00\xa8\x0d\x01\x00\x00\x00\x00\x00\xf0\x01\x00\x00\x00\x00\x00\x00\xf0\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x04\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x50\xe5\x74\x64\x04\x00\x00\x00\x6c\x07\x00\x00\x00\x00\x00\x00\x6c\x07\x00\x00\x00\x00\x00\x00\x6c\x07\x00\x00\x00\x00\x00\x00\x3c\x00\x00\x00\x00\x00\x00\x00\x3c\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x51\xe5\x74\x64\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x52\xe5\x74\x64\x04\x00\x00\x00\x98\x0d\x00\x00\x00\x00\x00\x00\x98\x0d\x01\x00\x00\x00\x00\x00\x98\x0d\x01\x00\x00\x00\x00\x00\x68\x02\x00\x00\x00\x00\x00\x00\x68\x02\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x2f\x6c\x69\x62\x2f\x6c\x64\x2d\x6c\x69\x6e\x75\x78\x2d\x61\x61\x72\x63\x68\x36\x34\x2e\x73\x6f\x2e\x31\x00\x00\x04\x00\x00\x00\x14\x00\x00\x00\x03\x00\x00\x00\x47\x4e\x55\x00\x95\x40\xbd\xf6\x29\xda\xef\x28\x6c\xa3\x30\xa9\xf9\xd9\xb3\x8d\xa2\xc5\x73\xac\x04\x00\x00\x00\x10\x00\x00\x00\x01\x00\x00\x00\x47\x4e\x55\x00\x00\x00\x00\x00\x03\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x01\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x0b\x00\x80\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x16\x00\x00\x10\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x48\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x22\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x22\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x73\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5f\x5f\x63\x78\x61\x5f\x66\x69\x6e\x61\x6c\x69\x7a\x65\x00\x5f\x5f\x6c\x69\x62\x63\x5f\x73\x74\x61\x72\x74\x5f\x6d\x61\x69\x6e\x00\x61\x62\x6f\x72\x74\x00\x6c\x69\x62\x63\x2e\x73\x6f\x2e\x36\x00\x47\x4c\x49\x42\x43\x5f\x32\x2e\x31\x37\x00\x47\x4c\x49\x42\x43\x5f\x32\x2e\x33\x34\x00\x5f\x49\x54\x4d\x5f\x64\x65\x72\x65\x67\x69\x73\x74\x65\x72\x54\x4d\x43\x6c\x6f\x6e\x65\x54\x61\x62\x6c\x65\x00\x5f\x5f\x67\x6d\x6f\x6e\x5f\x73\x74\x61\x72\x74\x5f\x5f\x00\x5f\x49\x54\x4d\x5f\x72\x65\x67\x69\x73\x74\x65\x72\x54\x4d\x43\x6c\x6f\x6e\x65\x54\x61\x62\x6c\x65\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x01\x00\x03\x00\x01\x00\x03\x00\x01\x00\x01\x00\x02\x00\x28\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x97\x91\x96\x06\x00\x00\x03\x00\x32\x00\x00\x00\x10\x00\x00\x00\xb4\x91\x96\x06\x00\x00\x02\x00\x3d\x00\x00\x00\x00\x00\x00\x00\x98\x0d\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x50\x07\x00\x00\x00\x00\x00\x00\xa0\x0d\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\xf0\x0f\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x00\x06\x00\x00\x00\x00\x00\x00\x08\x10\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x08\x10\x01\x00\x00\x00\x00\x00\xd8\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe0\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe8\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xf8\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xb0\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xb8\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xc0\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xc8\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1f\x20\x03\xd5\xfd\x7b\xbf\xa9\xfd\x03\x00\x91\x3a\x00\x00\x94\xfd\x7b\xc1\xa8\xc0\x03\x5f\xd6\x00\x00\x00\x00\x00\x00\x00\x00\xf0\x7b\xbf\xa9\x90\x00\x00\x90\x11\xd6\x47\xf9\x10\xa2\x3e\x91\x20\x02\x1f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x90\x00\x00\x90\x11\xda\x47\xf9\x10\xc2\x3e\x91\x20\x02\x1f\xd6\x90\x00\x00\x90\x11\xde\x47\xf9\x10\xe2\x3e\x91\x20\x02\x1f\xd6\x90\x00\x00\x90\x11\xe2\x47\xf9\x10\x02\x3f\x91\x20\x02\x1f\xd6\x90\x00\x00\x90\x11\xe6\x47\xf9\x10\x22\x3f\x91\x20\x02\x1f\xd6\x1f\x00\x00\x71\xe0\x07\x9f\x1a\x00\x08\x00\x11\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1d\x00\x80\xd2\x1e\x00\x80\xd2\xe5\x03\x00\xaa\xe1\x03\x40\xf9\xe2\x23\x00\x91\xe6\x03\x00\x91\x80\x00\x00\x90\x00\xf8\x47\xf9\x03\x00\x80\xd2\x04\x00\x80\xd2\xd5\xff\xff\x97\xe0\xff\xff\x97\x80\x00\x00\x90\x00\xf4\x47\xf9\x40\x00\x00\xb4\xd8\xff\xff\x17\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x80\x00\x00\xb0\x00\x40\x00\x91\x81\x00\x00\xb0\x21\x40\x00\x91\x3f\x00\x00\xeb\xc0\x00\x00\x54\x81\x00\x00\x90\x21\xec\x47\xf9\x61\x00\x00\xb4\xf0\x03\x01\xaa\x00\x02\x1f\xd6\xc0\x03\x5f\xd6\x80\x00\x00\xb0\x00\x40\x00\x91\x81\x00\x00\xb0\x21\x40\x00\x91\x21\x00\x00\xcb\x22\xfc\x7f\xd3\x41\x0c\x81\x8b\x21\xfc\x41\x93\xc1\x00\x00\xb4\x82\x00\x00\x90\x42\xfc\x47\xf9\x62\x00\x00\xb4\xf0\x03\x02\xaa\x00\x02\x1f\xd6\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\xfd\x7b\xbe\xa9\xfd\x03\x00\x91\xf3\x0b\x00\xf9\x93\x00\x00\xb0\x60\x42\x40\x39\x40\x01\x00\x35\x80\x00\x00\x90\x00\xf0\x47\xf9\x80\x00\x00\xb4\x80\x00\x00\xb0\x00\x04\x40\xf9\xa9\xff\xff\x97\xd8\xff\xff\x97\x20\x00\x80\x52\x60\x42\x00\x39\xf3\x0b\x40\xf9\xfd\x7b\xc2\xa8\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\xdc\xff\xff\x17\x1f\x20\x03\xd5\xfd\x7b\xbf\xa9\xfd\x03\x00\x91\xfd\x7b\xc1\xa8\xc0\x03\x5f\xd6\x01\x00\x02\x00\x01\x1b\x03\x3b\x38\x00\x00\x00\x06\x00\x00\x00\x94\xfe\xff\xff\xc4\x00\x00\x00\xd4\xfe\xff\xff\x50\x00\x00\x00\x24\xff\xff\xff\x64\x00\x00\x00\x54\xff\xff\xff\x78\x00\x00\x00\x94\xff\xff\xff\x8c\x00\x00\x00\xe4\xff\xff\xff\xb0\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x01\x7a\x52\x00\x04\x78\x1e\x01\x1b\x0c\x1f\x00\x10\x00\x00\x00\x18\x00\x00\x00\x7c\xfe\xff\xff\x34\x00\x00\x00\x00\x41\x07\x1e\x10\x00\x00\x00\x2c\x00\x00\x00\xb8\xfe\xff\xff\x30\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x40\x00\x00\x00\xd4\xfe\xff\xff\x3c\x00\x00\x00\x00\x00\x00\x00\x20\x00\x00\x00\x54\x00\x00\x00\x00\xff\xff\xff\x48\x00\x00\x00\x00\x41\x0e\x20\x9d\x04\x9e\x03"), -Section(".comment", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x40\x06\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x70\x1b\x00"), -Section(".interp", 0x238, "\x2f\x6c\x69\x62\x2f\x6c\x64\x2d\x6c\x69\x6e\x75\x78\x2d\x61\x61\x72\x63\x68\x36\x34\x2e\x73\x6f\x2e\x31\x00"), -Section(".note.gnu.build-id", 0x254, "\x04\x00\x00\x00\x14\x00\x00\x00\x03\x00\x00\x00\x47\x4e\x55\x00\x95\x40\xbd\xf6\x29\xda\xef\x28\x6c\xa3\x30\xa9\xf9\xd9\xb3\x8d\xa2\xc5\x73\xac"), -Section(".note.ABI-tag", 0x278, "\x04\x00\x00\x00\x10\x00\x00\x00\x01\x00\x00\x00\x47\x4e\x55\x00\x00\x00\x00\x00\x03\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00"), -Section(".gnu.hash", 0x298, "\x01\x00\x00\x00\x01\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".dynsym", 0x2B8, "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x0b\x00\x80\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x16\x00\x00\x10\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x48\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x22\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x22\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x73\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".dynstr", 0x390, "\x00\x5f\x5f\x63\x78\x61\x5f\x66\x69\x6e\x61\x6c\x69\x7a\x65\x00\x5f\x5f\x6c\x69\x62\x63\x5f\x73\x74\x61\x72\x74\x5f\x6d\x61\x69\x6e\x00\x61\x62\x6f\x72\x74\x00\x6c\x69\x62\x63\x2e\x73\x6f\x2e\x36\x00\x47\x4c\x49\x42\x43\x5f\x32\x2e\x31\x37\x00\x47\x4c\x49\x42\x43\x5f\x32\x2e\x33\x34\x00\x5f\x49\x54\x4d\x5f\x64\x65\x72\x65\x67\x69\x73\x74\x65\x72\x54\x4d\x43\x6c\x6f\x6e\x65\x54\x61\x62\x6c\x65\x00\x5f\x5f\x67\x6d\x6f\x6e\x5f\x73\x74\x61\x72\x74\x5f\x5f\x00\x5f\x49\x54\x4d\x5f\x72\x65\x67\x69\x73\x74\x65\x72\x54\x4d\x43\x6c\x6f\x6e\x65\x54\x61\x62\x6c\x65\x00"), -Section(".gnu.version", 0x41E, "\x00\x00\x00\x00\x00\x00\x02\x00\x01\x00\x03\x00\x01\x00\x03\x00\x01\x00"), -Section(".gnu.version_r", 0x430, "\x01\x00\x02\x00\x28\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x97\x91\x96\x06\x00\x00\x03\x00\x32\x00\x00\x00\x10\x00\x00\x00\xb4\x91\x96\x06\x00\x00\x02\x00\x3d\x00\x00\x00\x00\x00\x00\x00"), -Section(".rela.dyn", 0x460, "\x98\x0d\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x50\x07\x00\x00\x00\x00\x00\x00\xa0\x0d\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\xf0\x0f\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x00\x06\x00\x00\x00\x00\x00\x00\x08\x10\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x08\x10\x01\x00\x00\x00\x00\x00\xd8\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe0\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe8\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xf8\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".rela.plt", 0x520, "\xb0\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xb8\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xc0\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xc8\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".init", 0x580, "\x1f\x20\x03\xd5\xfd\x7b\xbf\xa9\xfd\x03\x00\x91\x3a\x00\x00\x94\xfd\x7b\xc1\xa8\xc0\x03\x5f\xd6"), -Section(".plt", 0x5A0, "\xf0\x7b\xbf\xa9\x90\x00\x00\x90\x11\xd6\x47\xf9\x10\xa2\x3e\x91\x20\x02\x1f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x90\x00\x00\x90\x11\xda\x47\xf9\x10\xc2\x3e\x91\x20\x02\x1f\xd6\x90\x00\x00\x90\x11\xde\x47\xf9\x10\xe2\x3e\x91\x20\x02\x1f\xd6\x90\x00\x00\x90\x11\xe2\x47\xf9\x10\x02\x3f\x91\x20\x02\x1f\xd6\x90\x00\x00\x90\x11\xe6\x47\xf9\x10\x22\x3f\x91\x20\x02\x1f\xd6"), -Section(".fini", 0x754, "\x1f\x20\x03\xd5\xfd\x7b\xbf\xa9\xfd\x03\x00\x91\xfd\x7b\xc1\xa8\xc0\x03\x5f\xd6"), -Section(".rodata", 0x768, "\x01\x00\x02\x00"), -Section(".eh_frame_hdr", 0x76C, "\x01\x1b\x03\x3b\x38\x00\x00\x00\x06\x00\x00\x00\x94\xfe\xff\xff\xc4\x00\x00\x00\xd4\xfe\xff\xff\x50\x00\x00\x00\x24\xff\xff\xff\x64\x00\x00\x00\x54\xff\xff\xff\x78\x00\x00\x00\x94\xff\xff\xff\x8c\x00\x00\x00\xe4\xff\xff\xff\xb0\x00\x00\x00"), -Section(".eh_frame", 0x7A8, "\x10\x00\x00\x00\x00\x00\x00\x00\x01\x7a\x52\x00\x04\x78\x1e\x01\x1b\x0c\x1f\x00\x10\x00\x00\x00\x18\x00\x00\x00\x7c\xfe\xff\xff\x34\x00\x00\x00\x00\x41\x07\x1e\x10\x00\x00\x00\x2c\x00\x00\x00\xb8\xfe\xff\xff\x30\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x40\x00\x00\x00\xd4\xfe\xff\xff\x3c\x00\x00\x00\x00\x00\x00\x00\x20\x00\x00\x00\x54\x00\x00\x00\x00\xff\xff\xff\x48\x00\x00\x00\x00\x41\x0e\x20\x9d\x04\x9e\x03\x42\x93\x02\x4e\xde\xdd\xd3\x0e\x00\x00\x00\x00\x10\x00\x00\x00\x78\x00\x00\x00\x2c\xff\xff\xff\x04\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x8c\x00\x00\x00\xc8\xfd\xff\xff\x10\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".fini_array", 0x10DA0, "\x00\x07\x00\x00\x00\x00\x00\x00"), -Section(".dynamic", 0x10DA8, "\x01\x00\x00\x00\x00\x00\x00\x00\x28\x00\x00\x00\x00\x00\x00\x00\x0c\x00\x00\x00\x00\x00\x00\x00\x80\x05\x00\x00\x00\x00\x00\x00\x0d\x00\x00\x00\x00\x00\x00\x00\x54\x07\x00\x00\x00\x00\x00\x00\x19\x00\x00\x00\x00\x00\x00\x00\x98\x0d\x01\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x1a\x00\x00\x00\x00\x00\x00\x00\xa0\x0d\x01\x00\x00\x00\x00\x00\x1c\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\xf5\xfe\xff\x6f\x00\x00\x00\x00\x98\x02\x00\x00\x00\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x90\x03\x00\x00\x00\x00\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\xb8\x02\x00\x00\x00\x00\x00\x00\x0a\x00\x00\x00\x00\x00\x00\x00\x8d\x00\x00\x00\x00\x00\x00\x00\x0b\x00\x00\x00\x00\x00\x00\x00\x18\x00\x00\x00\x00\x00\x00\x00\x15\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x98\x0f\x01\x00\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x60\x00\x00\x00\x00\x00\x00\x00\x14\x00\x00\x00\x00\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x17\x00\x00\x00\x00\x00\x00\x00\x20\x05\x00\x00\x00\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x60\x04\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\xc0\x00\x00\x00\x00\x00\x00\x00\x09\x00\x00\x00\x00\x00\x00\x00\x18\x00\x00\x00\x00\x00\x00\x00\x1e\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\xfb\xff\xff\x6f\x00\x00\x00\x00\x01\x00\x00\x08\x00\x00\x00\x00\xfe\xff\xff\x6f\x00\x00\x00\x00\x30\x04\x00\x00\x00\x00\x00\x00\xff\xff\xff\x6f\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\xf0\xff\xff\x6f\x00\x00\x00\x00\x1e\x04\x00\x00\x00\x00\x00\x00\xf9\xff\xff\x6f\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".init_array", 0x10D98, "\x50\x07\x00\x00\x00\x00\x00\x00"), -Section(".got", 0x10F98, "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xa0\x05\x00\x00\x00\x00\x00\x00\xa0\x05\x00\x00\x00\x00\x00\x00\xa0\x05\x00\x00\x00\x00\x00\x00\xa0\x05\x00\x00\x00\x00\x00\x00\xa8\x0d\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".data", 0x11000, "\x00\x00\x00\x00\x00\x00\x00\x00\x08\x10\x01\x00\x00\x00\x00\x00"), -Section(".text", 0x600, "\x1f\x00\x00\x71\xe0\x07\x9f\x1a\x00\x08\x00\x11\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1d\x00\x80\xd2\x1e\x00\x80\xd2\xe5\x03\x00\xaa\xe1\x03\x40\xf9\xe2\x23\x00\x91\xe6\x03\x00\x91\x80\x00\x00\x90\x00\xf8\x47\xf9\x03\x00\x80\xd2\x04\x00\x80\xd2\xd5\xff\xff\x97\xe0\xff\xff\x97\x80\x00\x00\x90\x00\xf4\x47\xf9\x40\x00\x00\xb4\xd8\xff\xff\x17\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x80\x00\x00\xb0\x00\x40\x00\x91\x81\x00\x00\xb0\x21\x40\x00\x91\x3f\x00\x00\xeb\xc0\x00\x00\x54\x81\x00\x00\x90\x21\xec\x47\xf9\x61\x00\x00\xb4\xf0\x03\x01\xaa\x00\x02\x1f\xd6\xc0\x03\x5f\xd6\x80\x00\x00\xb0\x00\x40\x00\x91\x81\x00\x00\xb0\x21\x40\x00\x91\x21\x00\x00\xcb\x22\xfc\x7f\xd3\x41\x0c\x81\x8b\x21\xfc\x41\x93\xc1\x00\x00\xb4\x82\x00\x00\x90\x42\xfc\x47\xf9\x62\x00\x00\xb4\xf0\x03\x02\xaa\x00\x02\x1f\xd6\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\xfd\x7b\xbe\xa9\xfd\x03\x00\x91\xf3\x0b\x00\xf9\x93\x00\x00\xb0\x60\x42\x40\x39\x40\x01\x00\x35\x80\x00\x00\x90\x00\xf0\x47\xf9\x80\x00\x00\xb4\x80\x00\x00\xb0\x00\x04\x40\xf9\xa9\xff\xff\x97\xd8\xff\xff\x97\x20\x00\x80\x52\x60\x42\x00\x39\xf3\x0b\x40\xf9\xfd\x7b\xc2\xa8\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\xdc\xff\xff\x17")]), -Memmap([Annotation(Region(0x0,0x847), Attr("segment","02 0 2120")), -Annotation(Region(0x600,0x60F), Attr("symbol","\"main\"")), -Annotation(Region(0x0,0xF9), Attr("section","\".shstrtab\"")), -Annotation(Region(0x0,0x221), Attr("section","\".strtab\"")), -Annotation(Region(0x0,0x80F), Attr("section","\".symtab\"")), -Annotation(Region(0x0,0x2A), Attr("section","\".comment\"")), -Annotation(Region(0x238,0x252), Attr("section","\".interp\"")), -Annotation(Region(0x254,0x277), Attr("section","\".note.gnu.build-id\"")), -Annotation(Region(0x278,0x297), Attr("section","\".note.ABI-tag\"")), -Annotation(Region(0x298,0x2B3), Attr("section","\".gnu.hash\"")), -Annotation(Region(0x2B8,0x38F), Attr("section","\".dynsym\"")), -Annotation(Region(0x390,0x41C), Attr("section","\".dynstr\"")), -Annotation(Region(0x41E,0x42F), Attr("section","\".gnu.version\"")), -Annotation(Region(0x430,0x45F), Attr("section","\".gnu.version_r\"")), -Annotation(Region(0x460,0x51F), Attr("section","\".rela.dyn\"")), -Annotation(Region(0x520,0x57F), Attr("section","\".rela.plt\"")), -Annotation(Region(0x580,0x597), Attr("section","\".init\"")), -Annotation(Region(0x5A0,0x5FF), Attr("section","\".plt\"")), -Annotation(Region(0x580,0x597), Attr("code-region","()")), -Annotation(Region(0x5A0,0x5FF), Attr("code-region","()")), -Annotation(Region(0x600,0x60F), Attr("symbol-info","main 0x600 16")), -Annotation(Region(0x640,0x673), Attr("symbol","\"_start\"")), -Annotation(Region(0x640,0x673), Attr("symbol-info","_start 0x640 52")), -Annotation(Region(0x674,0x687), Attr("symbol","\"call_weak_fn\"")), -Annotation(Region(0x674,0x687), Attr("symbol-info","call_weak_fn 0x674 20")), -Annotation(Region(0x754,0x767), Attr("section","\".fini\"")), -Annotation(Region(0x768,0x76B), Attr("section","\".rodata\"")), -Annotation(Region(0x76C,0x7A7), Attr("section","\".eh_frame_hdr\"")), -Annotation(Region(0x7A8,0x847), Attr("section","\".eh_frame\"")), -Annotation(Region(0x10D98,0x1100F), Attr("segment","03 0x10D98 640")), -Annotation(Region(0x10DA0,0x10DA7), Attr("section","\".fini_array\"")), -Annotation(Region(0x10DA8,0x10F97), Attr("section","\".dynamic\"")), -Annotation(Region(0x10D98,0x10D9F), Attr("section","\".init_array\"")), -Annotation(Region(0x10F98,0x10FFF), Attr("section","\".got\"")), -Annotation(Region(0x11000,0x1100F), Attr("section","\".data\"")), -Annotation(Region(0x600,0x753), Attr("section","\".text\"")), -Annotation(Region(0x600,0x753), Attr("code-region","()")), -Annotation(Region(0x754,0x767), Attr("code-region","()"))]), -Program(Tid(1_529, "%000005f9"), Attrs([]), - Subs([Sub(Tid(1_479, "@__cxa_finalize"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x5D0"), -Attr("stub","()")]), "__cxa_finalize", Args([Arg(Tid(1_530, "%000005fa"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("__cxa_finalize_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(875, "@__cxa_finalize"), - Attrs([Attr("address","0x5D0")]), Phis([]), -Defs([Def(Tid(1_123, "%00000463"), Attrs([Attr("address","0x5D0"), -Attr("insn","adrp x16, #65536")]), Var("R16",Imm(64)), Int(65536,64)), -Def(Tid(1_130, "%0000046a"), Attrs([Attr("address","0x5D4"), -Attr("insn","ldr x17, [x16, #0xfb8]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(4024,64)),LittleEndian(),64)), -Def(Tid(1_136, "%00000470"), Attrs([Attr("address","0x5D8"), -Attr("insn","add x16, x16, #0xfb8")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(4024,64)))]), Jmps([Call(Tid(1_141, "%00000475"), - Attrs([Attr("address","0x5DC"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), -Sub(Tid(1_480, "@__do_global_dtors_aux"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x700")]), - "__do_global_dtors_aux", Args([Arg(Tid(1_531, "%000005fb"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("__do_global_dtors_aux_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(728, "@__do_global_dtors_aux"), - Attrs([Attr("address","0x700")]), Phis([]), Defs([Def(Tid(732, "%000002dc"), - Attrs([Attr("address","0x700"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("#4",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(18446744073709551584,64))), -Def(Tid(738, "%000002e2"), Attrs([Attr("address","0x700"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("#4",Imm(64)),Var("R29",Imm(64)),LittleEndian(),64)), -Def(Tid(744, "%000002e8"), Attrs([Attr("address","0x700"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("#4",Imm(64)),Int(8,64)),Var("R30",Imm(64)),LittleEndian(),64)), -Def(Tid(748, "%000002ec"), Attrs([Attr("address","0x700"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("R31",Imm(64)), -Var("#4",Imm(64))), Def(Tid(754, "%000002f2"), - Attrs([Attr("address","0x704"), Attr("insn","mov x29, sp")]), - Var("R29",Imm(64)), Var("R31",Imm(64))), Def(Tid(762, "%000002fa"), - Attrs([Attr("address","0x708"), Attr("insn","str x19, [sp, #0x10]")]), - Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(16,64)),Var("R19",Imm(64)),LittleEndian(),64)), -Def(Tid(767, "%000002ff"), Attrs([Attr("address","0x70C"), -Attr("insn","adrp x19, #69632")]), Var("R19",Imm(64)), Int(69632,64)), -Def(Tid(774, "%00000306"), Attrs([Attr("address","0x710"), -Attr("insn","ldrb w0, [x19, #0x10]")]), Var("R0",Imm(64)), -UNSIGNED(64,Load(Var("mem",Mem(64,8)),PLUS(Var("R19",Imm(64)),Int(16,64)),LittleEndian(),8)))]), -Jmps([Goto(Tid(781, "%0000030d"), Attrs([Attr("address","0x714"), -Attr("insn","cbnz w0, #0x28")]), - NEQ(Extract(31,0,Var("R0",Imm(64))),Int(0,32)), -Direct(Tid(779, "%0000030b"))), Goto(Tid(1_519, "%000005ef"), Attrs([]), - Int(1,1), Direct(Tid(820, "%00000334")))])), Blk(Tid(820, "%00000334"), - Attrs([Attr("address","0x718")]), Phis([]), Defs([Def(Tid(823, "%00000337"), - Attrs([Attr("address","0x718"), Attr("insn","adrp x0, #65536")]), - Var("R0",Imm(64)), Int(65536,64)), Def(Tid(830, "%0000033e"), - Attrs([Attr("address","0x71C"), Attr("insn","ldr x0, [x0, #0xfe0]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(4064,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(836, "%00000344"), Attrs([Attr("address","0x720"), -Attr("insn","cbz x0, #0x10")]), EQ(Var("R0",Imm(64)),Int(0,64)), -Direct(Tid(834, "%00000342"))), Goto(Tid(1_520, "%000005f0"), Attrs([]), - Int(1,1), Direct(Tid(859, "%0000035b")))])), Blk(Tid(859, "%0000035b"), - Attrs([Attr("address","0x724")]), Phis([]), Defs([Def(Tid(862, "%0000035e"), - Attrs([Attr("address","0x724"), Attr("insn","adrp x0, #69632")]), - Var("R0",Imm(64)), Int(69632,64)), Def(Tid(869, "%00000365"), - Attrs([Attr("address","0x728"), Attr("insn","ldr x0, [x0, #0x8]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(874, "%0000036a"), Attrs([Attr("address","0x72C"), -Attr("insn","bl #-0x15c")]), Var("R30",Imm(64)), Int(1840,64))]), -Jmps([Call(Tid(877, "%0000036d"), Attrs([Attr("address","0x72C"), -Attr("insn","bl #-0x15c")]), Int(1,1), -(Direct(Tid(1_479, "@__cxa_finalize")),Direct(Tid(834, "%00000342"))))])), -Blk(Tid(834, "%00000342"), Attrs([Attr("address","0x730")]), Phis([]), -Defs([Def(Tid(842, "%0000034a"), Attrs([Attr("address","0x730"), -Attr("insn","bl #-0xa0")]), Var("R30",Imm(64)), Int(1844,64))]), -Jmps([Call(Tid(844, "%0000034c"), Attrs([Attr("address","0x730"), -Attr("insn","bl #-0xa0")]), Int(1,1), -(Direct(Tid(1_493, "@deregister_tm_clones")),Direct(Tid(846, "%0000034e"))))])), -Blk(Tid(846, "%0000034e"), Attrs([Attr("address","0x734")]), Phis([]), -Defs([Def(Tid(849, "%00000351"), Attrs([Attr("address","0x734"), -Attr("insn","mov w0, #0x1")]), Var("R0",Imm(64)), Int(1,64)), -Def(Tid(857, "%00000359"), Attrs([Attr("address","0x738"), -Attr("insn","strb w0, [x19, #0x10]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R19",Imm(64)),Int(16,64)),Extract(7,0,Var("R0",Imm(64))),LittleEndian(),8))]), -Jmps([Goto(Tid(1_521, "%000005f1"), Attrs([]), Int(1,1), -Direct(Tid(779, "%0000030b")))])), Blk(Tid(779, "%0000030b"), - Attrs([Attr("address","0x73C")]), Phis([]), Defs([Def(Tid(789, "%00000315"), - Attrs([Attr("address","0x73C"), Attr("insn","ldr x19, [sp, #0x10]")]), - Var("R19",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(16,64)),LittleEndian(),64)), -Def(Tid(796, "%0000031c"), Attrs([Attr("address","0x740"), -Attr("insn","ldp x29, x30, [sp], #0x20")]), Var("R29",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(801, "%00000321"), Attrs([Attr("address","0x740"), -Attr("insn","ldp x29, x30, [sp], #0x20")]), Var("R30",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(805, "%00000325"), Attrs([Attr("address","0x740"), -Attr("insn","ldp x29, x30, [sp], #0x20")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(32,64)))]), Jmps([Call(Tid(810, "%0000032a"), - Attrs([Attr("address","0x744"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), Sub(Tid(1_484, "@__libc_start_main"), - Attrs([Attr("c.proto","signed (*)(signed (*)(signed , char** , char** );* main, signed , char** , \nvoid* auxv)"), -Attr("address","0x5C0"), Attr("stub","()")]), "__libc_start_main", - Args([Arg(Tid(1_532, "%000005fc"), - Attrs([Attr("c.layout","**[ : 64]"), -Attr("c.data","Top:u64 ptr ptr"), -Attr("c.type","signed (*)(signed , char** , char** );*")]), - Var("__libc_start_main_main",Imm(64)), Var("R0",Imm(64)), In()), -Arg(Tid(1_533, "%000005fd"), Attrs([Attr("c.layout","[signed : 32]"), -Attr("c.data","Top:u32"), Attr("c.type","signed")]), - Var("__libc_start_main_arg2",Imm(32)), LOW(32,Var("R1",Imm(64))), In()), -Arg(Tid(1_534, "%000005fe"), Attrs([Attr("c.layout","**[char : 8]"), -Attr("c.data","Top:u8 ptr ptr"), Attr("c.type","char**")]), - Var("__libc_start_main_arg3",Imm(64)), Var("R2",Imm(64)), Both()), -Arg(Tid(1_535, "%000005ff"), Attrs([Attr("c.layout","*[ : 8]"), -Attr("c.data","{} ptr"), Attr("c.type","void*")]), - Var("__libc_start_main_auxv",Imm(64)), Var("R3",Imm(64)), Both()), -Arg(Tid(1_536, "%00000600"), Attrs([Attr("c.layout","[signed : 32]"), -Attr("c.data","Top:u32"), Attr("c.type","signed")]), - Var("__libc_start_main_result",Imm(32)), LOW(32,Var("R0",Imm(64))), -Out())]), Blks([Blk(Tid(561, "@__libc_start_main"), - Attrs([Attr("address","0x5C0")]), Phis([]), -Defs([Def(Tid(1_101, "%0000044d"), Attrs([Attr("address","0x5C0"), -Attr("insn","adrp x16, #65536")]), Var("R16",Imm(64)), Int(65536,64)), -Def(Tid(1_108, "%00000454"), Attrs([Attr("address","0x5C4"), -Attr("insn","ldr x17, [x16, #0xfb0]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(4016,64)),LittleEndian(),64)), -Def(Tid(1_114, "%0000045a"), Attrs([Attr("address","0x5C8"), -Attr("insn","add x16, x16, #0xfb0")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(4016,64)))]), Jmps([Call(Tid(1_119, "%0000045f"), - Attrs([Attr("address","0x5CC"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), Sub(Tid(1_485, "@_fini"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x754")]), - "_fini", Args([Arg(Tid(1_537, "%00000601"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("_fini_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(31, "@_fini"), - Attrs([Attr("address","0x754")]), Phis([]), Defs([Def(Tid(37, "%00000025"), - Attrs([Attr("address","0x758"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("#0",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(18446744073709551600,64))), -Def(Tid(43, "%0000002b"), Attrs([Attr("address","0x758"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("#0",Imm(64)),Var("R29",Imm(64)),LittleEndian(),64)), -Def(Tid(49, "%00000031"), Attrs([Attr("address","0x758"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("#0",Imm(64)),Int(8,64)),Var("R30",Imm(64)),LittleEndian(),64)), -Def(Tid(53, "%00000035"), Attrs([Attr("address","0x758"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("R31",Imm(64)), -Var("#0",Imm(64))), Def(Tid(59, "%0000003b"), Attrs([Attr("address","0x75C"), -Attr("insn","mov x29, sp")]), Var("R29",Imm(64)), Var("R31",Imm(64))), -Def(Tid(66, "%00000042"), Attrs([Attr("address","0x760"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R29",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(71, "%00000047"), Attrs([Attr("address","0x760"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R30",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(75, "%0000004b"), Attrs([Attr("address","0x760"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(16,64)))]), Jmps([Call(Tid(80, "%00000050"), - Attrs([Attr("address","0x764"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), Sub(Tid(1_486, "@_init"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x580")]), - "_init", Args([Arg(Tid(1_538, "%00000602"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("_init_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(1_305, "@_init"), - Attrs([Attr("address","0x580")]), Phis([]), -Defs([Def(Tid(1_311, "%0000051f"), Attrs([Attr("address","0x584"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("#6",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(18446744073709551600,64))), -Def(Tid(1_317, "%00000525"), Attrs([Attr("address","0x584"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("#6",Imm(64)),Var("R29",Imm(64)),LittleEndian(),64)), -Def(Tid(1_323, "%0000052b"), Attrs([Attr("address","0x584"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("#6",Imm(64)),Int(8,64)),Var("R30",Imm(64)),LittleEndian(),64)), -Def(Tid(1_327, "%0000052f"), Attrs([Attr("address","0x584"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("R31",Imm(64)), -Var("#6",Imm(64))), Def(Tid(1_333, "%00000535"), - Attrs([Attr("address","0x588"), Attr("insn","mov x29, sp")]), - Var("R29",Imm(64)), Var("R31",Imm(64))), Def(Tid(1_338, "%0000053a"), - Attrs([Attr("address","0x58C"), Attr("insn","bl #0xe8")]), - Var("R30",Imm(64)), Int(1424,64))]), Jmps([Call(Tid(1_340, "%0000053c"), - Attrs([Attr("address","0x58C"), Attr("insn","bl #0xe8")]), Int(1,1), -(Direct(Tid(1_491, "@call_weak_fn")),Direct(Tid(1_342, "%0000053e"))))])), -Blk(Tid(1_342, "%0000053e"), Attrs([Attr("address","0x590")]), Phis([]), -Defs([Def(Tid(1_347, "%00000543"), Attrs([Attr("address","0x590"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R29",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(1_352, "%00000548"), Attrs([Attr("address","0x590"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R30",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(1_356, "%0000054c"), Attrs([Attr("address","0x590"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(16,64)))]), Jmps([Call(Tid(1_361, "%00000551"), - Attrs([Attr("address","0x594"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), Sub(Tid(1_487, "@_start"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x640"), -Attr("entry-point","()")]), "_start", Args([Arg(Tid(1_539, "%00000603"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("_start_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(498, "@_start"), - Attrs([Attr("address","0x640")]), Phis([]), Defs([Def(Tid(503, "%000001f7"), - Attrs([Attr("address","0x644"), Attr("insn","mov x29, #0x0")]), - Var("R29",Imm(64)), Int(0,64)), Def(Tid(508, "%000001fc"), - Attrs([Attr("address","0x648"), Attr("insn","mov x30, #0x0")]), - Var("R30",Imm(64)), Int(0,64)), Def(Tid(514, "%00000202"), - Attrs([Attr("address","0x64C"), Attr("insn","mov x5, x0")]), - Var("R5",Imm(64)), Var("R0",Imm(64))), Def(Tid(521, "%00000209"), - Attrs([Attr("address","0x650"), Attr("insn","ldr x1, [sp]")]), - Var("R1",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(527, "%0000020f"), Attrs([Attr("address","0x654"), -Attr("insn","add x2, sp, #0x8")]), Var("R2",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(8,64))), Def(Tid(533, "%00000215"), - Attrs([Attr("address","0x658"), Attr("insn","mov x6, sp")]), - Var("R6",Imm(64)), Var("R31",Imm(64))), Def(Tid(538, "%0000021a"), - Attrs([Attr("address","0x65C"), Attr("insn","adrp x0, #65536")]), - Var("R0",Imm(64)), Int(65536,64)), Def(Tid(545, "%00000221"), - Attrs([Attr("address","0x660"), Attr("insn","ldr x0, [x0, #0xff0]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(4080,64)),LittleEndian(),64)), -Def(Tid(550, "%00000226"), Attrs([Attr("address","0x664"), -Attr("insn","mov x3, #0x0")]), Var("R3",Imm(64)), Int(0,64)), -Def(Tid(555, "%0000022b"), Attrs([Attr("address","0x668"), -Attr("insn","mov x4, #0x0")]), Var("R4",Imm(64)), Int(0,64)), -Def(Tid(560, "%00000230"), Attrs([Attr("address","0x66C"), -Attr("insn","bl #-0xac")]), Var("R30",Imm(64)), Int(1648,64))]), -Jmps([Call(Tid(563, "%00000233"), Attrs([Attr("address","0x66C"), -Attr("insn","bl #-0xac")]), Int(1,1), -(Direct(Tid(1_484, "@__libc_start_main")),Direct(Tid(565, "%00000235"))))])), -Blk(Tid(565, "%00000235"), Attrs([Attr("address","0x670")]), Phis([]), -Defs([Def(Tid(568, "%00000238"), Attrs([Attr("address","0x670"), -Attr("insn","bl #-0x80")]), Var("R30",Imm(64)), Int(1652,64))]), -Jmps([Call(Tid(571, "%0000023b"), Attrs([Attr("address","0x670"), -Attr("insn","bl #-0x80")]), Int(1,1), -(Direct(Tid(1_490, "@abort")),Direct(Tid(1_522, "%000005f2"))))])), -Blk(Tid(1_522, "%000005f2"), Attrs([]), Phis([]), Defs([]), -Jmps([Call(Tid(1_523, "%000005f3"), Attrs([]), Int(1,1), -(Direct(Tid(1_491, "@call_weak_fn")),))]))])), Sub(Tid(1_490, "@abort"), - Attrs([Attr("noreturn","()"), Attr("c.proto","void (*)(void)"), -Attr("address","0x5F0"), Attr("stub","()")]), "abort", Args([]), -Blks([Blk(Tid(569, "@abort"), Attrs([Attr("address","0x5F0")]), Phis([]), -Defs([Def(Tid(1_167, "%0000048f"), Attrs([Attr("address","0x5F0"), -Attr("insn","adrp x16, #65536")]), Var("R16",Imm(64)), Int(65536,64)), -Def(Tid(1_174, "%00000496"), Attrs([Attr("address","0x5F4"), -Attr("insn","ldr x17, [x16, #0xfc8]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(4040,64)),LittleEndian(),64)), -Def(Tid(1_180, "%0000049c"), Attrs([Attr("address","0x5F8"), -Attr("insn","add x16, x16, #0xfc8")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(4040,64)))]), Jmps([Call(Tid(1_185, "%000004a1"), - Attrs([Attr("address","0x5FC"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), Sub(Tid(1_491, "@call_weak_fn"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x674")]), - "call_weak_fn", Args([Arg(Tid(1_540, "%00000604"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("call_weak_fn_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(573, "@call_weak_fn"), - Attrs([Attr("address","0x674")]), Phis([]), Defs([Def(Tid(576, "%00000240"), - Attrs([Attr("address","0x674"), Attr("insn","adrp x0, #65536")]), - Var("R0",Imm(64)), Int(65536,64)), Def(Tid(583, "%00000247"), - Attrs([Attr("address","0x678"), Attr("insn","ldr x0, [x0, #0xfe8]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(4072,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(589, "%0000024d"), Attrs([Attr("address","0x67C"), -Attr("insn","cbz x0, #0x8")]), EQ(Var("R0",Imm(64)),Int(0,64)), -Direct(Tid(587, "%0000024b"))), Goto(Tid(1_524, "%000005f4"), Attrs([]), - Int(1,1), Direct(Tid(939, "%000003ab")))])), Blk(Tid(587, "%0000024b"), - Attrs([Attr("address","0x684")]), Phis([]), Defs([]), -Jmps([Call(Tid(595, "%00000253"), Attrs([Attr("address","0x684"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))])), -Blk(Tid(939, "%000003ab"), Attrs([Attr("address","0x680")]), Phis([]), -Defs([]), Jmps([Goto(Tid(942, "%000003ae"), Attrs([Attr("address","0x680"), -Attr("insn","b #-0xa0")]), Int(1,1), Direct(Tid(940, "@__gmon_start__")))])), -Blk(Tid(940, "@__gmon_start__"), Attrs([Attr("address","0x5E0")]), Phis([]), -Defs([Def(Tid(1_145, "%00000479"), Attrs([Attr("address","0x5E0"), -Attr("insn","adrp x16, #65536")]), Var("R16",Imm(64)), Int(65536,64)), -Def(Tid(1_152, "%00000480"), Attrs([Attr("address","0x5E4"), -Attr("insn","ldr x17, [x16, #0xfc0]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(4032,64)),LittleEndian(),64)), -Def(Tid(1_158, "%00000486"), Attrs([Attr("address","0x5E8"), -Attr("insn","add x16, x16, #0xfc0")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(4032,64)))]), Jmps([Call(Tid(1_163, "%0000048b"), - Attrs([Attr("address","0x5EC"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), -Sub(Tid(1_493, "@deregister_tm_clones"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x690")]), - "deregister_tm_clones", Args([Arg(Tid(1_541, "%00000605"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("deregister_tm_clones_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(601, "@deregister_tm_clones"), - Attrs([Attr("address","0x690")]), Phis([]), Defs([Def(Tid(604, "%0000025c"), - Attrs([Attr("address","0x690"), Attr("insn","adrp x0, #69632")]), - Var("R0",Imm(64)), Int(69632,64)), Def(Tid(610, "%00000262"), - Attrs([Attr("address","0x694"), Attr("insn","add x0, x0, #0x10")]), - Var("R0",Imm(64)), PLUS(Var("R0",Imm(64)),Int(16,64))), -Def(Tid(615, "%00000267"), Attrs([Attr("address","0x698"), -Attr("insn","adrp x1, #69632")]), Var("R1",Imm(64)), Int(69632,64)), -Def(Tid(621, "%0000026d"), Attrs([Attr("address","0x69C"), -Attr("insn","add x1, x1, #0x10")]), Var("R1",Imm(64)), -PLUS(Var("R1",Imm(64)),Int(16,64))), Def(Tid(627, "%00000273"), - Attrs([Attr("address","0x6A0"), Attr("insn","cmp x1, x0")]), - Var("#2",Imm(64)), NOT(Var("R0",Imm(64)))), Def(Tid(632, "%00000278"), - Attrs([Attr("address","0x6A0"), Attr("insn","cmp x1, x0")]), - Var("#3",Imm(64)), PLUS(Var("R1",Imm(64)),NOT(Var("R0",Imm(64))))), -Def(Tid(638, "%0000027e"), Attrs([Attr("address","0x6A0"), -Attr("insn","cmp x1, x0")]), Var("VF",Imm(1)), -NEQ(SIGNED(65,PLUS(Var("#3",Imm(64)),Int(1,64))),PLUS(PLUS(SIGNED(65,Var("R1",Imm(64))),SIGNED(65,Var("#2",Imm(64)))),Int(1,65)))), -Def(Tid(644, "%00000284"), Attrs([Attr("address","0x6A0"), -Attr("insn","cmp x1, x0")]), Var("CF",Imm(1)), -NEQ(UNSIGNED(65,PLUS(Var("#3",Imm(64)),Int(1,64))),PLUS(PLUS(UNSIGNED(65,Var("R1",Imm(64))),UNSIGNED(65,Var("#2",Imm(64)))),Int(1,65)))), -Def(Tid(648, "%00000288"), Attrs([Attr("address","0x6A0"), -Attr("insn","cmp x1, x0")]), Var("ZF",Imm(1)), -EQ(PLUS(Var("#3",Imm(64)),Int(1,64)),Int(0,64))), Def(Tid(652, "%0000028c"), - Attrs([Attr("address","0x6A0"), Attr("insn","cmp x1, x0")]), - Var("NF",Imm(1)), Extract(63,63,PLUS(Var("#3",Imm(64)),Int(1,64))))]), -Jmps([Goto(Tid(658, "%00000292"), Attrs([Attr("address","0x6A4"), -Attr("insn","b.eq #0x18")]), EQ(Var("ZF",Imm(1)),Int(1,1)), -Direct(Tid(656, "%00000290"))), Goto(Tid(1_525, "%000005f5"), Attrs([]), - Int(1,1), Direct(Tid(909, "%0000038d")))])), Blk(Tid(909, "%0000038d"), - Attrs([Attr("address","0x6A8")]), Phis([]), Defs([Def(Tid(912, "%00000390"), - Attrs([Attr("address","0x6A8"), Attr("insn","adrp x1, #65536")]), - Var("R1",Imm(64)), Int(65536,64)), Def(Tid(919, "%00000397"), - Attrs([Attr("address","0x6AC"), Attr("insn","ldr x1, [x1, #0xfd8]")]), - Var("R1",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R1",Imm(64)),Int(4056,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(924, "%0000039c"), Attrs([Attr("address","0x6B0"), -Attr("insn","cbz x1, #0xc")]), EQ(Var("R1",Imm(64)),Int(0,64)), -Direct(Tid(656, "%00000290"))), Goto(Tid(1_526, "%000005f6"), Attrs([]), - Int(1,1), Direct(Tid(928, "%000003a0")))])), Blk(Tid(656, "%00000290"), - Attrs([Attr("address","0x6BC")]), Phis([]), Defs([]), -Jmps([Call(Tid(664, "%00000298"), Attrs([Attr("address","0x6BC"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))])), -Blk(Tid(928, "%000003a0"), Attrs([Attr("address","0x6B4")]), Phis([]), -Defs([Def(Tid(932, "%000003a4"), Attrs([Attr("address","0x6B4"), -Attr("insn","mov x16, x1")]), Var("R16",Imm(64)), Var("R1",Imm(64)))]), -Jmps([Call(Tid(937, "%000003a9"), Attrs([Attr("address","0x6B8"), -Attr("insn","br x16")]), Int(1,1), (Indirect(Var("R16",Imm(64))),))]))])), -Sub(Tid(1_496, "@frame_dummy"), Attrs([Attr("c.proto","signed (*)(void)"), -Attr("address","0x750")]), "frame_dummy", Args([Arg(Tid(1_542, "%00000606"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("frame_dummy_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(816, "@frame_dummy"), - Attrs([Attr("address","0x750")]), Phis([]), Defs([]), -Jmps([Call(Tid(818, "%00000332"), Attrs([Attr("address","0x750"), -Attr("insn","b #-0x90")]), Int(1,1), -(Direct(Tid(1_498, "@register_tm_clones")),))]))])), Sub(Tid(1_497, "@main"), - Attrs([Attr("c.proto","signed (*)(signed argc, const char** argv)"), -Attr("address","0x600"), Attr("stub","()")]), "main", - Args([Arg(Tid(1_543, "%00000607"), Attrs([Attr("c.layout","[signed : 32]"), -Attr("c.data","Top:u32"), Attr("c.type","signed")]), - Var("main_argc",Imm(32)), LOW(32,Var("R0",Imm(64))), In()), -Arg(Tid(1_544, "%00000608"), Attrs([Attr("c.layout","**[char : 8]"), -Attr("c.data","Top:u8 ptr ptr"), Attr("c.type"," const char**")]), - Var("main_argv",Imm(64)), Var("R1",Imm(64)), Both()), -Arg(Tid(1_545, "%00000609"), Attrs([Attr("c.layout","[signed : 32]"), -Attr("c.data","Top:u32"), Attr("c.type","signed")]), - Var("main_result",Imm(32)), LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(424, "@main"), Attrs([Attr("address","0x600")]), Phis([]), -Defs([Def(Tid(428, "%000001ac"), Attrs([Attr("address","0x600"), -Attr("insn","cmp w0, #0x0")]), Var("#1",Imm(32)), -PLUS(Extract(31,0,Var("R0",Imm(64))),Int(4294967295,32))), -Def(Tid(433, "%000001b1"), Attrs([Attr("address","0x600"), -Attr("insn","cmp w0, #0x0")]), Var("VF",Imm(1)), -NEQ(SIGNED(33,PLUS(Var("#1",Imm(32)),Int(1,32))),PLUS(SIGNED(33,Extract(31,0,Var("R0",Imm(64)))),Int(0,33)))), -Def(Tid(438, "%000001b6"), Attrs([Attr("address","0x600"), -Attr("insn","cmp w0, #0x0")]), Var("CF",Imm(1)), -NEQ(UNSIGNED(33,PLUS(Var("#1",Imm(32)),Int(1,32))),PLUS(UNSIGNED(33,Extract(31,0,Var("R0",Imm(64)))),Int(4294967296,33)))), -Def(Tid(442, "%000001ba"), Attrs([Attr("address","0x600"), -Attr("insn","cmp w0, #0x0")]), Var("ZF",Imm(1)), -EQ(PLUS(Var("#1",Imm(32)),Int(1,32)),Int(0,32))), Def(Tid(446, "%000001be"), - Attrs([Attr("address","0x600"), Attr("insn","cmp w0, #0x0")]), - Var("NF",Imm(1)), Extract(31,31,PLUS(Var("#1",Imm(32)),Int(1,32))))]), -Jmps([Goto(Tid(458, "%000001ca"), Attrs([Attr("address","0x604"), -Attr("insn","cset w0, ne")]), EQ(Var("ZF",Imm(1)),Int(1,1)), -Direct(Tid(451, "%000001c3"))), Goto(Tid(459, "%000001cb"), - Attrs([Attr("address","0x604"), Attr("insn","cset w0, ne")]), Int(1,1), -Direct(Tid(454, "%000001c6")))])), Blk(Tid(454, "%000001c6"), Attrs([]), - Phis([]), Defs([Def(Tid(455, "%000001c7"), Attrs([Attr("address","0x604"), -Attr("insn","cset w0, ne")]), Var("R0",Imm(64)), Int(1,64))]), -Jmps([Goto(Tid(461, "%000001cd"), Attrs([Attr("address","0x604"), -Attr("insn","cset w0, ne")]), Int(1,1), Direct(Tid(457, "%000001c9")))])), -Blk(Tid(451, "%000001c3"), Attrs([]), Phis([]), -Defs([Def(Tid(452, "%000001c4"), Attrs([Attr("address","0x604"), -Attr("insn","cset w0, ne")]), Var("R0",Imm(64)), Int(0,64))]), -Jmps([Goto(Tid(460, "%000001cc"), Attrs([Attr("address","0x604"), -Attr("insn","cset w0, ne")]), Int(1,1), Direct(Tid(457, "%000001c9")))])), -Blk(Tid(457, "%000001c9"), Attrs([]), Phis([]), -Defs([Def(Tid(467, "%000001d3"), Attrs([Attr("address","0x608"), -Attr("insn","add w0, w0, #0x2")]), Var("R0",Imm(64)), -UNSIGNED(64,PLUS(Extract(31,0,Var("R0",Imm(64))),Int(2,32))))]), -Jmps([Call(Tid(472, "%000001d8"), Attrs([Attr("address","0x60C"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))]))])), -Sub(Tid(1_498, "@register_tm_clones"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x6C0")]), - "register_tm_clones", Args([Arg(Tid(1_546, "%0000060a"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("register_tm_clones_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(666, "@register_tm_clones"), Attrs([Attr("address","0x6C0")]), - Phis([]), Defs([Def(Tid(669, "%0000029d"), Attrs([Attr("address","0x6C0"), -Attr("insn","adrp x0, #69632")]), Var("R0",Imm(64)), Int(69632,64)), -Def(Tid(675, "%000002a3"), Attrs([Attr("address","0x6C4"), -Attr("insn","add x0, x0, #0x10")]), Var("R0",Imm(64)), -PLUS(Var("R0",Imm(64)),Int(16,64))), Def(Tid(680, "%000002a8"), - Attrs([Attr("address","0x6C8"), Attr("insn","adrp x1, #69632")]), - Var("R1",Imm(64)), Int(69632,64)), Def(Tid(686, "%000002ae"), - Attrs([Attr("address","0x6CC"), Attr("insn","add x1, x1, #0x10")]), - Var("R1",Imm(64)), PLUS(Var("R1",Imm(64)),Int(16,64))), -Def(Tid(693, "%000002b5"), Attrs([Attr("address","0x6D0"), -Attr("insn","sub x1, x1, x0")]), Var("R1",Imm(64)), -PLUS(PLUS(Var("R1",Imm(64)),NOT(Var("R0",Imm(64)))),Int(1,64))), -Def(Tid(699, "%000002bb"), Attrs([Attr("address","0x6D4"), -Attr("insn","lsr x2, x1, #63")]), Var("R2",Imm(64)), -Concat(Int(0,63),Extract(63,63,Var("R1",Imm(64))))), -Def(Tid(706, "%000002c2"), Attrs([Attr("address","0x6D8"), -Attr("insn","add x1, x2, x1, asr #3")]), Var("R1",Imm(64)), -PLUS(Var("R2",Imm(64)),ARSHIFT(Var("R1",Imm(64)),Int(3,3)))), -Def(Tid(712, "%000002c8"), Attrs([Attr("address","0x6DC"), -Attr("insn","asr x1, x1, #1")]), Var("R1",Imm(64)), -SIGNED(64,Extract(63,1,Var("R1",Imm(64)))))]), -Jmps([Goto(Tid(718, "%000002ce"), Attrs([Attr("address","0x6E0"), -Attr("insn","cbz x1, #0x18")]), EQ(Var("R1",Imm(64)),Int(0,64)), -Direct(Tid(716, "%000002cc"))), Goto(Tid(1_527, "%000005f7"), Attrs([]), - Int(1,1), Direct(Tid(879, "%0000036f")))])), Blk(Tid(879, "%0000036f"), - Attrs([Attr("address","0x6E4")]), Phis([]), Defs([Def(Tid(882, "%00000372"), - Attrs([Attr("address","0x6E4"), Attr("insn","adrp x2, #65536")]), - Var("R2",Imm(64)), Int(65536,64)), Def(Tid(889, "%00000379"), - Attrs([Attr("address","0x6E8"), Attr("insn","ldr x2, [x2, #0xff8]")]), - Var("R2",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R2",Imm(64)),Int(4088,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(894, "%0000037e"), Attrs([Attr("address","0x6EC"), -Attr("insn","cbz x2, #0xc")]), EQ(Var("R2",Imm(64)),Int(0,64)), -Direct(Tid(716, "%000002cc"))), Goto(Tid(1_528, "%000005f8"), Attrs([]), - Int(1,1), Direct(Tid(898, "%00000382")))])), Blk(Tid(716, "%000002cc"), - Attrs([Attr("address","0x6F8")]), Phis([]), Defs([]), -Jmps([Call(Tid(724, "%000002d4"), Attrs([Attr("address","0x6F8"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))])), -Blk(Tid(898, "%00000382"), Attrs([Attr("address","0x6F0")]), Phis([]), -Defs([Def(Tid(902, "%00000386"), Attrs([Attr("address","0x6F0"), -Attr("insn","mov x16, x2")]), Var("R16",Imm(64)), Var("R2",Imm(64)))]), -Jmps([Call(Tid(907, "%0000038b"), Attrs([Attr("address","0x6F4"), -Attr("insn","br x16")]), Int(1,1), -(Indirect(Var("R16",Imm(64))),))]))]))]))) \ No newline at end of file diff --git a/src/test/correct/ifbranches/gcc_O2/ifbranches.bir b/src/test/correct/ifbranches/gcc_O2/ifbranches.bir deleted file mode 100644 index c5f18a1e8..000000000 --- a/src/test/correct/ifbranches/gcc_O2/ifbranches.bir +++ /dev/null @@ -1,241 +0,0 @@ -000005f9: program -000005c7: sub __cxa_finalize(__cxa_finalize_result) -000005fa: __cxa_finalize_result :: out u32 = low:32[R0] - -0000036b: -00000463: R16 := 0x10000 -0000046a: R17 := mem[R16 + 0xFB8, el]:u64 -00000470: R16 := R16 + 0xFB8 -00000475: call R17 with noreturn - -000005c8: sub __do_global_dtors_aux(__do_global_dtors_aux_result) -000005fb: __do_global_dtors_aux_result :: out u32 = low:32[R0] - -000002d8: -000002dc: #4 := R31 - 0x20 -000002e2: mem := mem with [#4, el]:u64 <- R29 -000002e8: mem := mem with [#4 + 8, el]:u64 <- R30 -000002ec: R31 := #4 -000002f2: R29 := R31 -000002fa: mem := mem with [R31 + 0x10, el]:u64 <- R19 -000002ff: R19 := 0x11000 -00000306: R0 := pad:64[mem[R19 + 0x10]] -0000030d: when 31:0[R0] <> 0 goto %0000030b -000005ef: goto %00000334 - -00000334: -00000337: R0 := 0x10000 -0000033e: R0 := mem[R0 + 0xFE0, el]:u64 -00000344: when R0 = 0 goto %00000342 -000005f0: goto %0000035b - -0000035b: -0000035e: R0 := 0x11000 -00000365: R0 := mem[R0 + 8, el]:u64 -0000036a: R30 := 0x730 -0000036d: call @__cxa_finalize with return %00000342 - -00000342: -0000034a: R30 := 0x734 -0000034c: call @deregister_tm_clones with return %0000034e - -0000034e: -00000351: R0 := 1 -00000359: mem := mem with [R19 + 0x10] <- 7:0[R0] -000005f1: goto %0000030b - -0000030b: -00000315: R19 := mem[R31 + 0x10, el]:u64 -0000031c: R29 := mem[R31, el]:u64 -00000321: R30 := mem[R31 + 8, el]:u64 -00000325: R31 := R31 + 0x20 -0000032a: call R30 with noreturn - -000005cc: sub __libc_start_main(__libc_start_main_main, __libc_start_main_arg2, __libc_start_main_arg3, __libc_start_main_auxv, __libc_start_main_result) -000005fc: __libc_start_main_main :: in u64 = R0 -000005fd: __libc_start_main_arg2 :: in u32 = low:32[R1] -000005fe: __libc_start_main_arg3 :: in out u64 = R2 -000005ff: __libc_start_main_auxv :: in out u64 = R3 -00000600: __libc_start_main_result :: out u32 = low:32[R0] - -00000231: -0000044d: R16 := 0x10000 -00000454: R17 := mem[R16 + 0xFB0, el]:u64 -0000045a: R16 := R16 + 0xFB0 -0000045f: call R17 with noreturn - -000005cd: sub _fini(_fini_result) -00000601: _fini_result :: out u32 = low:32[R0] - -0000001f: -00000025: #0 := R31 - 0x10 -0000002b: mem := mem with [#0, el]:u64 <- R29 -00000031: mem := mem with [#0 + 8, el]:u64 <- R30 -00000035: R31 := #0 -0000003b: R29 := R31 -00000042: R29 := mem[R31, el]:u64 -00000047: R30 := mem[R31 + 8, el]:u64 -0000004b: R31 := R31 + 0x10 -00000050: call R30 with noreturn - -000005ce: sub _init(_init_result) -00000602: _init_result :: out u32 = low:32[R0] - -00000519: -0000051f: #6 := R31 - 0x10 -00000525: mem := mem with [#6, el]:u64 <- R29 -0000052b: mem := mem with [#6 + 8, el]:u64 <- R30 -0000052f: R31 := #6 -00000535: R29 := R31 -0000053a: R30 := 0x590 -0000053c: call @call_weak_fn with return %0000053e - -0000053e: -00000543: R29 := mem[R31, el]:u64 -00000548: R30 := mem[R31 + 8, el]:u64 -0000054c: R31 := R31 + 0x10 -00000551: call R30 with noreturn - -000005cf: sub _start(_start_result) -00000603: _start_result :: out u32 = low:32[R0] - -000001f2: -000001f7: R29 := 0 -000001fc: R30 := 0 -00000202: R5 := R0 -00000209: R1 := mem[R31, el]:u64 -0000020f: R2 := R31 + 8 -00000215: R6 := R31 -0000021a: R0 := 0x10000 -00000221: R0 := mem[R0 + 0xFF0, el]:u64 -00000226: R3 := 0 -0000022b: R4 := 0 -00000230: R30 := 0x670 -00000233: call @__libc_start_main with return %00000235 - -00000235: -00000238: R30 := 0x674 -0000023b: call @abort with return %000005f2 - -000005f2: -000005f3: call @call_weak_fn with noreturn - -000005d2: sub abort() - - -00000239: -0000048f: R16 := 0x10000 -00000496: R17 := mem[R16 + 0xFC8, el]:u64 -0000049c: R16 := R16 + 0xFC8 -000004a1: call R17 with noreturn - -000005d3: sub call_weak_fn(call_weak_fn_result) -00000604: call_weak_fn_result :: out u32 = low:32[R0] - -0000023d: -00000240: R0 := 0x10000 -00000247: R0 := mem[R0 + 0xFE8, el]:u64 -0000024d: when R0 = 0 goto %0000024b -000005f4: goto %000003ab - -0000024b: -00000253: call R30 with noreturn - -000003ab: -000003ae: goto @__gmon_start__ - -000003ac: -00000479: R16 := 0x10000 -00000480: R17 := mem[R16 + 0xFC0, el]:u64 -00000486: R16 := R16 + 0xFC0 -0000048b: call R17 with noreturn - -000005d5: sub deregister_tm_clones(deregister_tm_clones_result) -00000605: deregister_tm_clones_result :: out u32 = low:32[R0] - -00000259: -0000025c: R0 := 0x11000 -00000262: R0 := R0 + 0x10 -00000267: R1 := 0x11000 -0000026d: R1 := R1 + 0x10 -00000273: #2 := ~R0 -00000278: #3 := R1 + ~R0 -0000027e: VF := extend:65[#3 + 1] <> extend:65[R1] + extend:65[#2] + 1 -00000284: CF := pad:65[#3 + 1] <> pad:65[R1] + pad:65[#2] + 1 -00000288: ZF := #3 + 1 = 0 -0000028c: NF := 63:63[#3 + 1] -00000292: when ZF goto %00000290 -000005f5: goto %0000038d - -0000038d: -00000390: R1 := 0x10000 -00000397: R1 := mem[R1 + 0xFD8, el]:u64 -0000039c: when R1 = 0 goto %00000290 -000005f6: goto %000003a0 - -00000290: -00000298: call R30 with noreturn - -000003a0: -000003a4: R16 := R1 -000003a9: call R16 with noreturn - -000005d8: sub frame_dummy(frame_dummy_result) -00000606: frame_dummy_result :: out u32 = low:32[R0] - -00000330: -00000332: call @register_tm_clones with noreturn - -000005d9: sub main(main_argc, main_argv, main_result) -00000607: main_argc :: in u32 = low:32[R0] -00000608: main_argv :: in out u64 = R1 -00000609: main_result :: out u32 = low:32[R0] - -000001a8: -000001ac: #1 := 31:0[R0] - 1 -000001b1: VF := extend:33[#1 + 1] <> extend:33[31:0[R0]] + 0 -000001b6: CF := pad:33[#1 + 1] <> pad:33[31:0[R0]] - 0x100000000 -000001ba: ZF := #1 + 1 = 0 -000001be: NF := 31:31[#1 + 1] -000001ca: when ZF goto %000001c3 -000001cb: goto %000001c6 - -000001c6: -000001c7: R0 := 1 -000001cd: goto %000001c9 - -000001c3: -000001c4: R0 := 0 -000001cc: goto %000001c9 - -000001c9: -000001d3: R0 := pad:64[31:0[R0] + 2] -000001d8: call R30 with noreturn - -000005da: sub register_tm_clones(register_tm_clones_result) -0000060a: register_tm_clones_result :: out u32 = low:32[R0] - -0000029a: -0000029d: R0 := 0x11000 -000002a3: R0 := R0 + 0x10 -000002a8: R1 := 0x11000 -000002ae: R1 := R1 + 0x10 -000002b5: R1 := R1 + ~R0 + 1 -000002bb: R2 := 0.63:63[R1] -000002c2: R1 := R2 + (R1 ~>> 3) -000002c8: R1 := extend:64[63:1[R1]] -000002ce: when R1 = 0 goto %000002cc -000005f7: goto %0000036f - -0000036f: -00000372: R2 := 0x10000 -00000379: R2 := mem[R2 + 0xFF8, el]:u64 -0000037e: when R2 = 0 goto %000002cc -000005f8: goto %00000382 - -000002cc: -000002d4: call R30 with noreturn - -00000382: -00000386: R16 := R2 -0000038b: call R16 with noreturn diff --git a/src/test/correct/ifbranches/gcc_O2/ifbranches.expected b/src/test/correct/ifbranches/gcc_O2/ifbranches.expected index 267dcd0b3..a221592a8 100644 --- a/src/test/correct/ifbranches/gcc_O2/ifbranches.expected +++ b/src/test/correct/ifbranches/gcc_O2/ifbranches.expected @@ -11,12 +11,9 @@ var {:extern} VF: bv1; var {:extern} ZF: bv1; var {:extern} mem: [bv64]bv8; function {:extern} {:bvbuiltin "bvadd"} bvadd32(bv32, bv32) returns (bv32); -function {:extern} {:bvbuiltin "bvadd"} bvadd33(bv33, bv33) returns (bv33); function {:extern} {:bvbuiltin "bvadd"} bvadd64(bv64, bv64) returns (bv64); function {:extern} {:bvbuiltin "bvcomp"} bvcomp1(bv1, bv1) returns (bv1); function {:extern} {:bvbuiltin "bvcomp"} bvcomp32(bv32, bv32) returns (bv1); -function {:extern} {:bvbuiltin "bvcomp"} bvcomp33(bv33, bv33) returns (bv1); -function {:extern} {:bvbuiltin "bvnot"} bvnot1(bv1) returns (bv1); function {:extern} memory_load32_le(memory: [bv64]bv8, index: bv64) returns (bv32) { (memory[bvadd64(index, 3bv64)] ++ (memory[bvadd64(index, 2bv64)] ++ (memory[bvadd64(index, 1bv64)] ++ memory[index]))) } @@ -25,18 +22,12 @@ function {:extern} memory_load64_le(memory: [bv64]bv8, index: bv64) returns (bv6 (memory[bvadd64(index, 7bv64)] ++ (memory[bvadd64(index, 6bv64)] ++ (memory[bvadd64(index, 5bv64)] ++ (memory[bvadd64(index, 4bv64)] ++ (memory[bvadd64(index, 3bv64)] ++ (memory[bvadd64(index, 2bv64)] ++ (memory[bvadd64(index, 1bv64)] ++ memory[index]))))))) } -function {:extern} {:bvbuiltin "sign_extend 1"} sign_extend1_32(bv32) returns (bv33); -function {:extern} {:bvbuiltin "zero_extend 1"} zero_extend1_32(bv32) returns (bv33); function {:extern} {:bvbuiltin "zero_extend 32"} zero_extend32_32(bv32) returns (bv64); procedure {:extern} rely(); modifies Gamma_mem, mem; ensures (Gamma_mem == old(Gamma_mem)); ensures (mem == old(mem)); - free ensures (memory_load32_le(mem, 1896bv64) == 131073bv32); - free ensures (memory_load64_le(mem, 69016bv64) == 1872bv64); - free ensures (memory_load64_le(mem, 69024bv64) == 1792bv64); - free ensures (memory_load64_le(mem, 69616bv64) == 1536bv64); - free ensures (memory_load64_le(mem, 69640bv64) == 69640bv64); + free ensures (memory_load32_le(mem, 4196312bv64) == 131073bv32); procedure {:extern} rely_transitive(); modifies Gamma_mem, mem; @@ -54,57 +45,46 @@ procedure {:extern} rely_reflexive(); procedure {:extern} guarantee_reflexive(); modifies Gamma_mem, mem; -procedure main_1536(); +procedure main(); modifies CF, Gamma_CF, Gamma_NF, Gamma_R0, Gamma_VF, Gamma_ZF, NF, R0, VF, ZF; requires (Gamma_R0 == true); - free requires (memory_load64_le(mem, 69632bv64) == 0bv64); - free requires (memory_load64_le(mem, 69640bv64) == 69640bv64); - free requires (memory_load32_le(mem, 1896bv64) == 131073bv32); - free requires (memory_load64_le(mem, 69016bv64) == 1872bv64); - free requires (memory_load64_le(mem, 69024bv64) == 1792bv64); - free requires (memory_load64_le(mem, 69616bv64) == 1536bv64); - free requires (memory_load64_le(mem, 69640bv64) == 69640bv64); - free ensures (memory_load32_le(mem, 1896bv64) == 131073bv32); - free ensures (memory_load64_le(mem, 69016bv64) == 1872bv64); - free ensures (memory_load64_le(mem, 69024bv64) == 1792bv64); - free ensures (memory_load64_le(mem, 69616bv64) == 1536bv64); - free ensures (memory_load64_le(mem, 69640bv64) == 69640bv64); + free requires (memory_load64_le(mem, 4325376bv64) == 0bv64); + free requires (memory_load64_le(mem, 4325384bv64) == 0bv64); + free requires (memory_load32_le(mem, 4196312bv64) == 131073bv32); + free ensures (memory_load32_le(mem, 4196312bv64) == 131073bv32); -implementation main_1536() +implementation main() { - var #1: bv32; - var Gamma_#1: bool; lmain: assume {:captureState "lmain"} true; - #1, Gamma_#1 := bvadd32(R0[32:0], 4294967295bv32), Gamma_R0; - VF, Gamma_VF := bvnot1(bvcomp33(sign_extend1_32(bvadd32(#1, 1bv32)), bvadd33(sign_extend1_32(R0[32:0]), 0bv33))), (Gamma_R0 && Gamma_#1); - CF, Gamma_CF := bvnot1(bvcomp33(zero_extend1_32(bvadd32(#1, 1bv32)), bvadd33(zero_extend1_32(R0[32:0]), 4294967296bv33))), (Gamma_R0 && Gamma_#1); - ZF, Gamma_ZF := bvcomp32(bvadd32(#1, 1bv32), 0bv32), Gamma_#1; - NF, Gamma_NF := bvadd32(#1, 1bv32)[32:31], Gamma_#1; + VF, Gamma_VF := 0bv1, true; + CF, Gamma_CF := 1bv1, true; + ZF, Gamma_ZF := bvcomp32(R0[32:0], 0bv32), Gamma_R0; + NF, Gamma_NF := R0[32:31], Gamma_R0; assert Gamma_ZF; - goto lmain_goto_l000001c3, lmain_goto_l000001c6; - lmain_goto_l000001c6: - assume {:captureState "lmain_goto_l000001c6"} true; - assume (bvcomp1(ZF, 1bv1) == 0bv1); + goto lmain_goto_l0000025c, lmain_goto_l00000264; + l00000264: + assume {:captureState "l00000264"} true; R0, Gamma_R0 := 1bv64, true; - goto l000001c6; - l000001c6: - assume {:captureState "l000001c6"} true; - goto l000001c9; - lmain_goto_l000001c3: - assume {:captureState "lmain_goto_l000001c3"} true; - assume (bvcomp1(ZF, 1bv1) != 0bv1); + goto l00000270; + l0000025c: + assume {:captureState "l0000025c"} true; R0, Gamma_R0 := 0bv64, true; - goto l000001c3; - l000001c3: - assume {:captureState "l000001c3"} true; - goto l000001c9; - l000001c9: - assume {:captureState "l000001c9"} true; + goto l00000270; + l00000270: + assume {:captureState "l00000270"} true; R0, Gamma_R0 := zero_extend32_32(bvadd32(R0[32:0], 2bv32)), Gamma_R0; - goto main_1536_basil_return; - main_1536_basil_return: - assume {:captureState "main_1536_basil_return"} true; + goto main_basil_return; + lmain_goto_l0000025c: + assume {:captureState "lmain_goto_l0000025c"} true; + assume (bvcomp1(ZF, 1bv1) != 0bv1); + goto l0000025c; + lmain_goto_l00000264: + assume {:captureState "lmain_goto_l00000264"} true; + assume (bvcomp1(ZF, 1bv1) == 0bv1); + goto l00000264; + main_basil_return: + assume {:captureState "main_basil_return"} true; return; } diff --git a/src/test/correct/ifbranches/gcc_O2/ifbranches.gts b/src/test/correct/ifbranches/gcc_O2/ifbranches.gts deleted file mode 100644 index 75e3af235..000000000 Binary files a/src/test/correct/ifbranches/gcc_O2/ifbranches.gts and /dev/null differ diff --git a/src/test/correct/ifbranches/gcc_O2/ifbranches.md5sum b/src/test/correct/ifbranches/gcc_O2/ifbranches.md5sum new file mode 100644 index 000000000..d312abdd1 --- /dev/null +++ b/src/test/correct/ifbranches/gcc_O2/ifbranches.md5sum @@ -0,0 +1,5 @@ +f2e5c826bf0637441cde0b81aefec19f correct/ifbranches/gcc_O2/a.out +91058fd7296852c59156eea3a79c7370 correct/ifbranches/gcc_O2/ifbranches.adt +18b4bbad1de1ee74bbcd84d4ffd98239 correct/ifbranches/gcc_O2/ifbranches.bir +b2865a7aab2e24aee5b59f94c3b3de0c correct/ifbranches/gcc_O2/ifbranches.relf +9feab04e6f384a560a5165a373de174f correct/ifbranches/gcc_O2/ifbranches.gts diff --git a/src/test/correct/ifbranches/gcc_O2/ifbranches.relf b/src/test/correct/ifbranches/gcc_O2/ifbranches.relf deleted file mode 100644 index 205e0ee37..000000000 --- a/src/test/correct/ifbranches/gcc_O2/ifbranches.relf +++ /dev/null @@ -1,119 +0,0 @@ - -Relocation section '.rela.dyn' at offset 0x460 contains 8 entries: - Offset Info Type Symbol's Value Symbol's Name + Addend -0000000000010d98 0000000000000403 R_AARCH64_RELATIVE 750 -0000000000010da0 0000000000000403 R_AARCH64_RELATIVE 700 -0000000000010ff0 0000000000000403 R_AARCH64_RELATIVE 600 -0000000000011008 0000000000000403 R_AARCH64_RELATIVE 11008 -0000000000010fd8 0000000400000401 R_AARCH64_GLOB_DAT 0000000000000000 _ITM_deregisterTMCloneTable + 0 -0000000000010fe0 0000000500000401 R_AARCH64_GLOB_DAT 0000000000000000 __cxa_finalize@GLIBC_2.17 + 0 -0000000000010fe8 0000000600000401 R_AARCH64_GLOB_DAT 0000000000000000 __gmon_start__ + 0 -0000000000010ff8 0000000800000401 R_AARCH64_GLOB_DAT 0000000000000000 _ITM_registerTMCloneTable + 0 - -Relocation section '.rela.plt' at offset 0x520 contains 4 entries: - Offset Info Type Symbol's Value Symbol's Name + Addend -0000000000010fb0 0000000300000402 R_AARCH64_JUMP_SLOT 0000000000000000 __libc_start_main@GLIBC_2.34 + 0 -0000000000010fb8 0000000500000402 R_AARCH64_JUMP_SLOT 0000000000000000 __cxa_finalize@GLIBC_2.17 + 0 -0000000000010fc0 0000000600000402 R_AARCH64_JUMP_SLOT 0000000000000000 __gmon_start__ + 0 -0000000000010fc8 0000000700000402 R_AARCH64_JUMP_SLOT 0000000000000000 abort@GLIBC_2.17 + 0 - -Symbol table '.dynsym' contains 9 entries: - Num: Value Size Type Bind Vis Ndx Name - 0: 0000000000000000 0 NOTYPE LOCAL DEFAULT UND - 1: 0000000000000580 0 SECTION LOCAL DEFAULT 11 .init - 2: 0000000000011000 0 SECTION LOCAL DEFAULT 22 .data - 3: 0000000000000000 0 FUNC GLOBAL DEFAULT UND __libc_start_main@GLIBC_2.34 (2) - 4: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_deregisterTMCloneTable - 5: 0000000000000000 0 FUNC WEAK DEFAULT UND __cxa_finalize@GLIBC_2.17 (3) - 6: 0000000000000000 0 NOTYPE WEAK DEFAULT UND __gmon_start__ - 7: 0000000000000000 0 FUNC GLOBAL DEFAULT UND abort@GLIBC_2.17 (3) - 8: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_registerTMCloneTable - -Symbol table '.symtab' contains 86 entries: - Num: Value Size Type Bind Vis Ndx Name - 0: 0000000000000000 0 NOTYPE LOCAL DEFAULT UND - 1: 0000000000000238 0 SECTION LOCAL DEFAULT 1 .interp - 2: 0000000000000254 0 SECTION LOCAL DEFAULT 2 .note.gnu.build-id - 3: 0000000000000278 0 SECTION LOCAL DEFAULT 3 .note.ABI-tag - 4: 0000000000000298 0 SECTION LOCAL DEFAULT 4 .gnu.hash - 5: 00000000000002b8 0 SECTION LOCAL DEFAULT 5 .dynsym - 6: 0000000000000390 0 SECTION LOCAL DEFAULT 6 .dynstr - 7: 000000000000041e 0 SECTION LOCAL DEFAULT 7 .gnu.version - 8: 0000000000000430 0 SECTION LOCAL DEFAULT 8 .gnu.version_r - 9: 0000000000000460 0 SECTION LOCAL DEFAULT 9 .rela.dyn - 10: 0000000000000520 0 SECTION LOCAL DEFAULT 10 .rela.plt - 11: 0000000000000580 0 SECTION LOCAL DEFAULT 11 .init - 12: 00000000000005a0 0 SECTION LOCAL DEFAULT 12 .plt - 13: 0000000000000600 0 SECTION LOCAL DEFAULT 13 .text - 14: 0000000000000754 0 SECTION LOCAL DEFAULT 14 .fini - 15: 0000000000000768 0 SECTION LOCAL DEFAULT 15 .rodata - 16: 000000000000076c 0 SECTION LOCAL DEFAULT 16 .eh_frame_hdr - 17: 00000000000007a8 0 SECTION LOCAL DEFAULT 17 .eh_frame - 18: 0000000000010d98 0 SECTION LOCAL DEFAULT 18 .init_array - 19: 0000000000010da0 0 SECTION LOCAL DEFAULT 19 .fini_array - 20: 0000000000010da8 0 SECTION LOCAL DEFAULT 20 .dynamic - 21: 0000000000010f98 0 SECTION LOCAL DEFAULT 21 .got - 22: 0000000000011000 0 SECTION LOCAL DEFAULT 22 .data - 23: 0000000000011010 0 SECTION LOCAL DEFAULT 23 .bss - 24: 0000000000000000 0 SECTION LOCAL DEFAULT 24 .comment - 25: 0000000000000000 0 FILE LOCAL DEFAULT ABS Scrt1.o - 26: 0000000000000278 0 NOTYPE LOCAL DEFAULT 3 $d - 27: 0000000000000278 32 OBJECT LOCAL DEFAULT 3 __abi_tag - 28: 0000000000000640 0 NOTYPE LOCAL DEFAULT 13 $x - 29: 00000000000007bc 0 NOTYPE LOCAL DEFAULT 17 $d - 30: 0000000000000768 0 NOTYPE LOCAL DEFAULT 15 $d - 31: 0000000000000000 0 FILE LOCAL DEFAULT ABS crti.o - 32: 0000000000000674 0 NOTYPE LOCAL DEFAULT 13 $x - 33: 0000000000000674 20 FUNC LOCAL DEFAULT 13 call_weak_fn - 34: 0000000000000580 0 NOTYPE LOCAL DEFAULT 11 $x - 35: 0000000000000754 0 NOTYPE LOCAL DEFAULT 14 $x - 36: 0000000000000000 0 FILE LOCAL DEFAULT ABS crtn.o - 37: 0000000000000590 0 NOTYPE LOCAL DEFAULT 11 $x - 38: 0000000000000760 0 NOTYPE LOCAL DEFAULT 14 $x - 39: 0000000000000000 0 FILE LOCAL DEFAULT ABS ifbranches.c - 40: 0000000000000600 0 NOTYPE LOCAL DEFAULT 13 $x - 41: 0000000000000830 0 NOTYPE LOCAL DEFAULT 17 $d - 42: 0000000000000000 0 FILE LOCAL DEFAULT ABS crtstuff.c - 43: 0000000000000690 0 NOTYPE LOCAL DEFAULT 13 $x - 44: 0000000000000690 0 FUNC LOCAL DEFAULT 13 deregister_tm_clones - 45: 00000000000006c0 0 FUNC LOCAL DEFAULT 13 register_tm_clones - 46: 0000000000011008 0 NOTYPE LOCAL DEFAULT 22 $d - 47: 0000000000000700 0 FUNC LOCAL DEFAULT 13 __do_global_dtors_aux - 48: 0000000000011010 1 OBJECT LOCAL DEFAULT 23 completed.0 - 49: 0000000000010da0 0 NOTYPE LOCAL DEFAULT 19 $d - 50: 0000000000010da0 0 OBJECT LOCAL DEFAULT 19 __do_global_dtors_aux_fini_array_entry - 51: 0000000000000750 0 FUNC LOCAL DEFAULT 13 frame_dummy - 52: 0000000000010d98 0 NOTYPE LOCAL DEFAULT 18 $d - 53: 0000000000010d98 0 OBJECT LOCAL DEFAULT 18 __frame_dummy_init_array_entry - 54: 00000000000007d0 0 NOTYPE LOCAL DEFAULT 17 $d - 55: 0000000000011010 0 NOTYPE LOCAL DEFAULT 23 $d - 56: 0000000000000000 0 FILE LOCAL DEFAULT ABS crtstuff.c - 57: 0000000000000844 0 NOTYPE LOCAL DEFAULT 17 $d - 58: 0000000000000844 0 OBJECT LOCAL DEFAULT 17 __FRAME_END__ - 59: 0000000000000000 0 FILE LOCAL DEFAULT ABS - 60: 0000000000010da8 0 OBJECT LOCAL DEFAULT ABS _DYNAMIC - 61: 000000000000076c 0 NOTYPE LOCAL DEFAULT 16 __GNU_EH_FRAME_HDR - 62: 0000000000010fd0 0 OBJECT LOCAL DEFAULT ABS _GLOBAL_OFFSET_TABLE_ - 63: 00000000000005a0 0 NOTYPE LOCAL DEFAULT 12 $x - 64: 0000000000000000 0 FUNC GLOBAL DEFAULT UND __libc_start_main@GLIBC_2.34 - 65: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_deregisterTMCloneTable - 66: 0000000000011000 0 NOTYPE WEAK DEFAULT 22 data_start - 67: 0000000000011010 0 NOTYPE GLOBAL DEFAULT 23 __bss_start__ - 68: 0000000000000000 0 FUNC WEAK DEFAULT UND __cxa_finalize@GLIBC_2.17 - 69: 0000000000011018 0 NOTYPE GLOBAL DEFAULT 23 _bss_end__ - 70: 0000000000011010 0 NOTYPE GLOBAL DEFAULT 22 _edata - 71: 0000000000000754 0 FUNC GLOBAL HIDDEN 14 _fini - 72: 0000000000011018 0 NOTYPE GLOBAL DEFAULT 23 __bss_end__ - 73: 0000000000011000 0 NOTYPE GLOBAL DEFAULT 22 __data_start - 74: 0000000000000000 0 NOTYPE WEAK DEFAULT UND __gmon_start__ - 75: 0000000000011008 0 OBJECT GLOBAL HIDDEN 22 __dso_handle - 76: 0000000000000000 0 FUNC GLOBAL DEFAULT UND abort@GLIBC_2.17 - 77: 0000000000000768 4 OBJECT GLOBAL DEFAULT 15 _IO_stdin_used - 78: 0000000000011018 0 NOTYPE GLOBAL DEFAULT 23 _end - 79: 0000000000000640 52 FUNC GLOBAL DEFAULT 13 _start - 80: 0000000000011018 0 NOTYPE GLOBAL DEFAULT 23 __end__ - 81: 0000000000011010 0 NOTYPE GLOBAL DEFAULT 23 __bss_start - 82: 0000000000000600 16 FUNC GLOBAL DEFAULT 13 main - 83: 0000000000011010 0 OBJECT GLOBAL HIDDEN 22 __TMC_END__ - 84: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_registerTMCloneTable - 85: 0000000000000580 0 FUNC GLOBAL HIDDEN 11 _init diff --git a/src/test/correct/ifbranches/gcc_O2/ifbranches_gtirb.expected b/src/test/correct/ifbranches/gcc_O2/ifbranches_gtirb.expected index 98a830348..694b588ff 100644 --- a/src/test/correct/ifbranches/gcc_O2/ifbranches_gtirb.expected +++ b/src/test/correct/ifbranches/gcc_O2/ifbranches_gtirb.expected @@ -11,11 +11,8 @@ var {:extern} VF: bv1; var {:extern} ZF: bv1; var {:extern} mem: [bv64]bv8; function {:extern} {:bvbuiltin "bvadd"} bvadd32(bv32, bv32) returns (bv32); -function {:extern} {:bvbuiltin "bvadd"} bvadd33(bv33, bv33) returns (bv33); function {:extern} {:bvbuiltin "bvadd"} bvadd64(bv64, bv64) returns (bv64); function {:extern} {:bvbuiltin "bvcomp"} bvcomp32(bv32, bv32) returns (bv1); -function {:extern} {:bvbuiltin "bvcomp"} bvcomp33(bv33, bv33) returns (bv1); -function {:extern} {:bvbuiltin "bvnot"} bvnot1(bv1) returns (bv1); function {:extern} memory_load32_le(memory: [bv64]bv8, index: bv64) returns (bv32) { (memory[bvadd64(index, 3bv64)] ++ (memory[bvadd64(index, 2bv64)] ++ (memory[bvadd64(index, 1bv64)] ++ memory[index]))) } @@ -24,17 +21,12 @@ function {:extern} memory_load64_le(memory: [bv64]bv8, index: bv64) returns (bv6 (memory[bvadd64(index, 7bv64)] ++ (memory[bvadd64(index, 6bv64)] ++ (memory[bvadd64(index, 5bv64)] ++ (memory[bvadd64(index, 4bv64)] ++ (memory[bvadd64(index, 3bv64)] ++ (memory[bvadd64(index, 2bv64)] ++ (memory[bvadd64(index, 1bv64)] ++ memory[index]))))))) } -function {:extern} {:bvbuiltin "zero_extend 1"} zero_extend1_32(bv32) returns (bv33); function {:extern} {:bvbuiltin "zero_extend 32"} zero_extend32_32(bv32) returns (bv64); procedure {:extern} rely(); modifies Gamma_mem, mem; ensures (Gamma_mem == old(Gamma_mem)); ensures (mem == old(mem)); - free ensures (memory_load32_le(mem, 1896bv64) == 131073bv32); - free ensures (memory_load64_le(mem, 69016bv64) == 1872bv64); - free ensures (memory_load64_le(mem, 69024bv64) == 1792bv64); - free ensures (memory_load64_le(mem, 69616bv64) == 1536bv64); - free ensures (memory_load64_le(mem, 69640bv64) == 69640bv64); + free ensures (memory_load32_le(mem, 4196312bv64) == 131073bv32); procedure {:extern} rely_transitive(); modifies Gamma_mem, mem; @@ -52,51 +44,40 @@ procedure {:extern} rely_reflexive(); procedure {:extern} guarantee_reflexive(); modifies Gamma_mem, mem; -procedure main_1536(); +procedure main(); modifies CF, Gamma_CF, Gamma_NF, Gamma_R0, Gamma_VF, Gamma_ZF, NF, R0, VF, ZF; requires (Gamma_R0 == true); - free requires (memory_load64_le(mem, 69632bv64) == 0bv64); - free requires (memory_load64_le(mem, 69640bv64) == 69640bv64); - free requires (memory_load32_le(mem, 1896bv64) == 131073bv32); - free requires (memory_load64_le(mem, 69016bv64) == 1872bv64); - free requires (memory_load64_le(mem, 69024bv64) == 1792bv64); - free requires (memory_load64_le(mem, 69616bv64) == 1536bv64); - free requires (memory_load64_le(mem, 69640bv64) == 69640bv64); - free ensures (memory_load32_le(mem, 1896bv64) == 131073bv32); - free ensures (memory_load64_le(mem, 69016bv64) == 1872bv64); - free ensures (memory_load64_le(mem, 69024bv64) == 1792bv64); - free ensures (memory_load64_le(mem, 69616bv64) == 1536bv64); - free ensures (memory_load64_le(mem, 69640bv64) == 69640bv64); + free requires (memory_load64_le(mem, 4325376bv64) == 0bv64); + free requires (memory_load64_le(mem, 4325384bv64) == 0bv64); + free requires (memory_load32_le(mem, 4196312bv64) == 131073bv32); + free ensures (memory_load32_le(mem, 4196312bv64) == 131073bv32); -implementation main_1536() +implementation main() { - var Cse0__5_1_0: bv32; - var Gamma_Cse0__5_1_0: bool; - main_1536__0__qKNLTTV9SPy8sqABlZokYg: - assume {:captureState "main_1536__0__qKNLTTV9SPy8sqABlZokYg"} true; - Cse0__5_1_0, Gamma_Cse0__5_1_0 := bvadd32(R0[32:0], 0bv32), Gamma_R0; - VF, Gamma_VF := bvnot1(bvcomp32(Cse0__5_1_0, Cse0__5_1_0)), Gamma_Cse0__5_1_0; - CF, Gamma_CF := bvnot1(bvcomp33(zero_extend1_32(Cse0__5_1_0), bvadd33(zero_extend1_32(R0[32:0]), 4294967296bv33))), (Gamma_R0 && Gamma_Cse0__5_1_0); - ZF, Gamma_ZF := bvcomp32(Cse0__5_1_0, 0bv32), Gamma_Cse0__5_1_0; - NF, Gamma_NF := Cse0__5_1_0[32:31], Gamma_Cse0__5_1_0; + $main$__0__$cegbDVc9S6m8Z0kHHU8BZQ: + assume {:captureState "$main$__0__$cegbDVc9S6m8Z0kHHU8BZQ"} true; + VF, Gamma_VF := 0bv1, true; + CF, Gamma_CF := 1bv1, true; + ZF, Gamma_ZF := bvcomp32(R0[32:0], 0bv32), Gamma_R0; + NF, Gamma_NF := R0[32:31], Gamma_R0; assert Gamma_ZF; - goto main_1536__0__qKNLTTV9SPy8sqABlZokYg$__0, main_1536__0__qKNLTTV9SPy8sqABlZokYg$__1; - main_1536__0__qKNLTTV9SPy8sqABlZokYg$__1: - assume {:captureState "main_1536__0__qKNLTTV9SPy8sqABlZokYg$__1"} true; - assume (!(ZF == 1bv1)); - R0, Gamma_R0 := 1bv64, true; - goto main_1536__0__qKNLTTV9SPy8sqABlZokYg$__2; - main_1536__0__qKNLTTV9SPy8sqABlZokYg$__0: - assume {:captureState "main_1536__0__qKNLTTV9SPy8sqABlZokYg$__0"} true; + goto $main$__0__$cegbDVc9S6m8Z0kHHU8BZQ$__0, $main$__0__$cegbDVc9S6m8Z0kHHU8BZQ$__1; + $main$__0__$cegbDVc9S6m8Z0kHHU8BZQ$__0: + assume {:captureState "$main$__0__$cegbDVc9S6m8Z0kHHU8BZQ$__0"} true; assume (ZF == 1bv1); R0, Gamma_R0 := 0bv64, true; - goto main_1536__0__qKNLTTV9SPy8sqABlZokYg$__2; - main_1536__0__qKNLTTV9SPy8sqABlZokYg$__2: - assume {:captureState "main_1536__0__qKNLTTV9SPy8sqABlZokYg$__2"} true; + goto $main$__0__$cegbDVc9S6m8Z0kHHU8BZQ$__2; + $main$__0__$cegbDVc9S6m8Z0kHHU8BZQ$__1: + assume {:captureState "$main$__0__$cegbDVc9S6m8Z0kHHU8BZQ$__1"} true; + assume (!(ZF == 1bv1)); + R0, Gamma_R0 := 1bv64, true; + goto $main$__0__$cegbDVc9S6m8Z0kHHU8BZQ$__2; + $main$__0__$cegbDVc9S6m8Z0kHHU8BZQ$__2: + assume {:captureState "$main$__0__$cegbDVc9S6m8Z0kHHU8BZQ$__2"} true; R0, Gamma_R0 := zero_extend32_32(bvadd32(R0[32:0], 2bv32)), Gamma_R0; - goto main_1536_basil_return; - main_1536_basil_return: - assume {:captureState "main_1536_basil_return"} true; + goto main_basil_return; + main_basil_return: + assume {:captureState "main_basil_return"} true; return; } diff --git a/src/test/correct/ifglobal/clang/ifglobal.adt b/src/test/correct/ifglobal/clang/ifglobal.adt deleted file mode 100644 index 17e45757f..000000000 --- a/src/test/correct/ifglobal/clang/ifglobal.adt +++ /dev/null @@ -1,550 +0,0 @@ -Project(Attrs([Attr("filename","\"clang/ifglobal.out\""), -Attr("image-specification","(declare abi (name str))\n(declare arch (name str))\n(declare base-address (addr int))\n(declare bias (off int))\n(declare bits (size int))\n(declare code-region (addr int) (size int) (off int))\n(declare code-start (addr int))\n(declare entry-point (addr int))\n(declare external-reference (addr int) (name str))\n(declare format (name str))\n(declare is-executable (flag bool))\n(declare is-little-endian (flag bool))\n(declare llvm:base-address (addr int))\n(declare llvm:code-entry (name str) (off int) (size int))\n(declare llvm:coff-import-library (name str))\n(declare llvm:coff-virtual-section-header (name str) (addr int) (size int))\n(declare llvm:elf-program-header (name str) (off int) (size int))\n(declare llvm:elf-program-header-flags (name str) (ld bool) (r bool) \n (w bool) (x bool))\n(declare llvm:elf-virtual-program-header (name str) (addr int) (size int))\n(declare llvm:entry-point (addr int))\n(declare llvm:macho-symbol (name str) (value int))\n(declare llvm:name-reference (at int) (name str))\n(declare llvm:relocation (at int) (addr int))\n(declare llvm:section-entry (name str) (addr int) (size int) (off int))\n(declare llvm:section-flags (name str) (r bool) (w bool) (x bool))\n(declare llvm:segment-command (name str) (off int) (size int))\n(declare llvm:segment-command-flags (name str) (r bool) (w bool) (x bool))\n(declare llvm:symbol-entry (name str) (addr int) (size int) (off int)\n (value int))\n(declare llvm:virtual-segment-command (name str) (addr int) (size int))\n(declare mapped (addr int) (size int) (off int))\n(declare named-region (addr int) (size int) (name str))\n(declare named-symbol (addr int) (name str))\n(declare require (name str))\n(declare section (addr int) (size int))\n(declare segment (addr int) (size int) (r bool) (w bool) (x bool))\n(declare subarch (name str))\n(declare symbol-chunk (addr int) (size int) (root int))\n(declare symbol-value (addr int) (value int))\n(declare system (name str))\n(declare vendor (name str))\n\n(abi unknown)\n(arch aarch64)\n(base-address 0)\n(bias 0)\n(bits 64)\n(code-region 1872 20 1872)\n(code-region 1536 336 1536)\n(code-region 1440 96 1440)\n(code-region 1408 24 1408)\n(code-start 1588)\n(code-start 1536)\n(code-start 1812)\n(entry-point 1536)\n(external-reference 69568 _ITM_deregisterTMCloneTable)\n(external-reference 69576 __cxa_finalize)\n(external-reference 69584 __gmon_start__)\n(external-reference 69600 _ITM_registerTMCloneTable)\n(external-reference 69632 __libc_start_main)\n(external-reference 69640 __cxa_finalize)\n(external-reference 69648 __gmon_start__)\n(external-reference 69656 abort)\n(format elf)\n(is-executable true)\n(is-little-endian true)\n(llvm:base-address 0)\n(llvm:code-entry abort 0 0)\n(llvm:code-entry __cxa_finalize 0 0)\n(llvm:code-entry __libc_start_main 0 0)\n(llvm:code-entry _init 1408 0)\n(llvm:code-entry main 1812 60)\n(llvm:code-entry _start 1536 52)\n(llvm:code-entry abort@GLIBC_2.17 0 0)\n(llvm:code-entry _fini 1872 0)\n(llvm:code-entry __cxa_finalize@GLIBC_2.17 0 0)\n(llvm:code-entry __libc_start_main@GLIBC_2.34 0 0)\n(llvm:code-entry frame_dummy 1808 0)\n(llvm:code-entry __do_global_dtors_aux 1728 0)\n(llvm:code-entry register_tm_clones 1664 0)\n(llvm:code-entry deregister_tm_clones 1616 0)\n(llvm:code-entry call_weak_fn 1588 20)\n(llvm:code-entry .fini 1872 20)\n(llvm:code-entry .text 1536 336)\n(llvm:code-entry .plt 1440 96)\n(llvm:code-entry .init 1408 24)\n(llvm:elf-program-header 08 3528 568)\n(llvm:elf-program-header 07 0 0)\n(llvm:elf-program-header 06 1896 60)\n(llvm:elf-program-header 05 596 68)\n(llvm:elf-program-header 04 3544 480)\n(llvm:elf-program-header 03 3528 616)\n(llvm:elf-program-header 02 0 2144)\n(llvm:elf-program-header 01 568 27)\n(llvm:elf-program-header 00 64 504)\n(llvm:elf-program-header-flags 08 false true false false)\n(llvm:elf-program-header-flags 07 false true true false)\n(llvm:elf-program-header-flags 06 false true false false)\n(llvm:elf-program-header-flags 05 false true false false)\n(llvm:elf-program-header-flags 04 false true true false)\n(llvm:elf-program-header-flags 03 true true true false)\n(llvm:elf-program-header-flags 02 true true false true)\n(llvm:elf-program-header-flags 01 false true false false)\n(llvm:elf-program-header-flags 00 false true false false)\n(llvm:elf-virtual-program-header 08 69064 568)\n(llvm:elf-virtual-program-header 07 0 0)\n(llvm:elf-virtual-program-header 06 1896 60)\n(llvm:elf-virtual-program-header 05 596 68)\n(llvm:elf-virtual-program-header 04 69080 480)\n(llvm:elf-virtual-program-header 03 69064 624)\n(llvm:elf-virtual-program-header 02 0 2144)\n(llvm:elf-virtual-program-header 01 568 27)\n(llvm:elf-virtual-program-header 00 64 504)\n(llvm:entry-point 1536)\n(llvm:name-reference 69656 abort)\n(llvm:name-reference 69648 __gmon_start__)\n(llvm:name-reference 69640 __cxa_finalize)\n(llvm:name-reference 69632 __libc_start_main)\n(llvm:name-reference 69600 _ITM_registerTMCloneTable)\n(llvm:name-reference 69584 __gmon_start__)\n(llvm:name-reference 69576 __cxa_finalize)\n(llvm:name-reference 69568 _ITM_deregisterTMCloneTable)\n(llvm:section-entry .shstrtab 0 259 6940)\n(llvm:section-entry .strtab 0 564 6376)\n(llvm:section-entry .symtab 0 2160 4216)\n(llvm:section-entry .comment 0 71 4144)\n(llvm:section-entry .bss 69680 8 4144)\n(llvm:section-entry .data 69664 16 4128)\n(llvm:section-entry .got.plt 69608 56 4072)\n(llvm:section-entry .got 69560 48 4024)\n(llvm:section-entry .dynamic 69080 480 3544)\n(llvm:section-entry .fini_array 69072 8 3536)\n(llvm:section-entry .init_array 69064 8 3528)\n(llvm:section-entry .eh_frame 1960 184 1960)\n(llvm:section-entry .eh_frame_hdr 1896 60 1896)\n(llvm:section-entry .rodata 1892 4 1892)\n(llvm:section-entry .fini 1872 20 1872)\n(llvm:section-entry .text 1536 336 1536)\n(llvm:section-entry .plt 1440 96 1440)\n(llvm:section-entry .init 1408 24 1408)\n(llvm:section-entry .rela.plt 1312 96 1312)\n(llvm:section-entry .rela.dyn 1120 192 1120)\n(llvm:section-entry .gnu.version_r 1072 48 1072)\n(llvm:section-entry .gnu.version 1054 18 1054)\n(llvm:section-entry .dynstr 912 141 912)\n(llvm:section-entry .dynsym 696 216 696)\n(llvm:section-entry .gnu.hash 664 28 664)\n(llvm:section-entry .note.ABI-tag 632 32 632)\n(llvm:section-entry .note.gnu.build-id 596 36 596)\n(llvm:section-entry .interp 568 27 568)\n(llvm:section-flags .shstrtab true false false)\n(llvm:section-flags .strtab true false false)\n(llvm:section-flags .symtab true false false)\n(llvm:section-flags .comment true false false)\n(llvm:section-flags .bss true true false)\n(llvm:section-flags .data true true false)\n(llvm:section-flags .got.plt true true false)\n(llvm:section-flags .got true true false)\n(llvm:section-flags .dynamic true true false)\n(llvm:section-flags .fini_array true true false)\n(llvm:section-flags .init_array true true false)\n(llvm:section-flags .eh_frame true false false)\n(llvm:section-flags .eh_frame_hdr true false false)\n(llvm:section-flags .rodata true false false)\n(llvm:section-flags .fini true false true)\n(llvm:section-flags .text true false true)\n(llvm:section-flags .plt true false true)\n(llvm:section-flags .init true false true)\n(llvm:section-flags .rela.plt true false false)\n(llvm:section-flags .rela.dyn true false false)\n(llvm:section-flags .gnu.version_r true false false)\n(llvm:section-flags .gnu.version true false false)\n(llvm:section-flags .dynstr true false false)\n(llvm:section-flags .dynsym true false false)\n(llvm:section-flags .gnu.hash true false false)\n(llvm:section-flags .note.ABI-tag true false false)\n(llvm:section-flags .note.gnu.build-id true false false)\n(llvm:section-flags .interp true false false)\n(llvm:symbol-entry abort 0 0 0 0)\n(llvm:symbol-entry __cxa_finalize 0 0 0 0)\n(llvm:symbol-entry __libc_start_main 0 0 0 0)\n(llvm:symbol-entry _init 1408 0 1408 1408)\n(llvm:symbol-entry main 1812 60 1812 1812)\n(llvm:symbol-entry _start 1536 52 1536 1536)\n(llvm:symbol-entry abort@GLIBC_2.17 0 0 0 0)\n(llvm:symbol-entry _fini 1872 0 1872 1872)\n(llvm:symbol-entry __cxa_finalize@GLIBC_2.17 0 0 0 0)\n(llvm:symbol-entry __libc_start_main@GLIBC_2.34 0 0 0 0)\n(llvm:symbol-entry frame_dummy 1808 0 1808 1808)\n(llvm:symbol-entry __do_global_dtors_aux 1728 0 1728 1728)\n(llvm:symbol-entry register_tm_clones 1664 0 1664 1664)\n(llvm:symbol-entry deregister_tm_clones 1616 0 1616 1616)\n(llvm:symbol-entry call_weak_fn 1588 20 1588 1588)\n(mapped 0 2144 0)\n(mapped 69064 616 3528)\n(named-region 0 2144 02)\n(named-region 69064 624 03)\n(named-region 568 27 .interp)\n(named-region 596 36 .note.gnu.build-id)\n(named-region 632 32 .note.ABI-tag)\n(named-region 664 28 .gnu.hash)\n(named-region 696 216 .dynsym)\n(named-region 912 141 .dynstr)\n(named-region 1054 18 .gnu.version)\n(named-region 1072 48 .gnu.version_r)\n(named-region 1120 192 .rela.dyn)\n(named-region 1312 96 .rela.plt)\n(named-region 1408 24 .init)\n(named-region 1440 96 .plt)\n(named-region 1536 336 .text)\n(named-region 1872 20 .fini)\n(named-region 1892 4 .rodata)\n(named-region 1896 60 .eh_frame_hdr)\n(named-region 1960 184 .eh_frame)\n(named-region 69064 8 .init_array)\n(named-region 69072 8 .fini_array)\n(named-region 69080 480 .dynamic)\n(named-region 69560 48 .got)\n(named-region 69608 56 .got.plt)\n(named-region 69664 16 .data)\n(named-region 69680 8 .bss)\n(named-region 0 71 .comment)\n(named-region 0 2160 .symtab)\n(named-region 0 564 .strtab)\n(named-region 0 259 .shstrtab)\n(named-symbol 1588 call_weak_fn)\n(named-symbol 1616 deregister_tm_clones)\n(named-symbol 1664 register_tm_clones)\n(named-symbol 1728 __do_global_dtors_aux)\n(named-symbol 1808 frame_dummy)\n(named-symbol 0 __libc_start_main@GLIBC_2.34)\n(named-symbol 0 __cxa_finalize@GLIBC_2.17)\n(named-symbol 1872 _fini)\n(named-symbol 0 abort@GLIBC_2.17)\n(named-symbol 1536 _start)\n(named-symbol 1812 main)\n(named-symbol 1408 _init)\n(named-symbol 0 __libc_start_main)\n(named-symbol 0 __cxa_finalize)\n(named-symbol 0 abort)\n(require libc.so.6)\n(section 568 27)\n(section 596 36)\n(section 632 32)\n(section 664 28)\n(section 696 216)\n(section 912 141)\n(section 1054 18)\n(section 1072 48)\n(section 1120 192)\n(section 1312 96)\n(section 1408 24)\n(section 1440 96)\n(section 1536 336)\n(section 1872 20)\n(section 1892 4)\n(section 1896 60)\n(section 1960 184)\n(section 69064 8)\n(section 69072 8)\n(section 69080 480)\n(section 69560 48)\n(section 69608 56)\n(section 69664 16)\n(section 69680 8)\n(section 0 71)\n(section 0 2160)\n(section 0 564)\n(section 0 259)\n(segment 0 2144 true false true)\n(segment 69064 624 true true false)\n(subarch v8)\n(symbol-chunk 1588 20 1588)\n(symbol-chunk 1536 52 1536)\n(symbol-chunk 1812 60 1812)\n(symbol-value 1588 1588)\n(symbol-value 1616 1616)\n(symbol-value 1664 1664)\n(symbol-value 1728 1728)\n(symbol-value 1808 1808)\n(symbol-value 1872 1872)\n(symbol-value 1536 1536)\n(symbol-value 1812 1812)\n(symbol-value 1408 1408)\n(symbol-value 0 0)\n(system \"\")\n(vendor \"\")\n"), -Attr("abi-name","\"aarch64-linux-gnu-elf\"")]), -Sections([Section(".shstrtab", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x00\x06\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x20\x1c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x38\x00\x09\x00\x40\x00\x1d\x00\x1c\x00\x06\x00\x00\x00\x04\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x04\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x60\x08\x00\x00\x00\x00\x00\x00\x60\x08\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x01\x00\x00\x00\x06\x00\x00\x00\xc8\x0d\x00\x00\x00\x00\x00\x00\xc8\x0d\x01\x00\x00\x00\x00\x00\xc8\x0d\x01"), -Section(".strtab", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x00\x06\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x20\x1c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x38\x00\x09\x00\x40\x00\x1d\x00\x1c\x00\x06\x00\x00\x00\x04\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x04\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x60\x08\x00\x00\x00\x00\x00\x00\x60\x08\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x01\x00\x00\x00\x06\x00\x00\x00\xc8\x0d\x00\x00\x00\x00\x00\x00\xc8\x0d\x01\x00\x00\x00\x00\x00\xc8\x0d\x01\x00\x00\x00\x00\x00\x68\x02\x00\x00\x00\x00\x00\x00\x70\x02\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x02\x00\x00\x00\x06\x00\x00\x00\xd8\x0d\x00\x00\x00\x00\x00\x00\xd8\x0d\x01\x00\x00\x00\x00\x00\xd8\x0d\x01\x00\x00\x00\x00\x00\xe0\x01\x00\x00\x00\x00\x00\x00\xe0\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x04\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x50\xe5\x74\x64\x04\x00\x00\x00\x68\x07\x00\x00\x00\x00\x00\x00\x68\x07\x00\x00\x00\x00\x00\x00\x68\x07\x00\x00\x00\x00\x00\x00\x3c\x00\x00\x00\x00\x00\x00\x00\x3c\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x51\xe5\x74\x64\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x52\xe5\x74\x64\x04\x00\x00\x00\xc8\x0d\x00\x00\x00\x00\x00\x00\xc8\x0d\x01\x00\x00\x00\x00\x00\xc8\x0d\x01\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00"), -Section(".comment", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x00\x06\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x20\x1c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x38\x00\x09\x00\x40\x00\x1d\x00\x1c\x00\x06\x00\x00\x00\x04\x00\x00"), -Section(".interp", 0x238, "\x2f\x6c\x69\x62\x2f\x6c\x64\x2d\x6c\x69\x6e\x75\x78\x2d\x61\x61\x72\x63\x68\x36\x34\x2e\x73\x6f\x2e\x31\x00"), -Section(".note.gnu.build-id", 0x254, "\x04\x00\x00\x00\x14\x00\x00\x00\x03\x00\x00\x00\x47\x4e\x55\x00\x60\x1c\x21\x81\x4e\x78\xde\x8e\x53\x39\x05\x45\x0f\xb0\xb2\x41\xa5\xc4\xaf\x79"), -Section(".note.ABI-tag", 0x278, "\x04\x00\x00\x00\x10\x00\x00\x00\x01\x00\x00\x00\x47\x4e\x55\x00\x00\x00\x00\x00\x03\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00"), -Section(".gnu.hash", 0x298, "\x01\x00\x00\x00\x01\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".dynsym", 0x2B8, "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x0b\x00\x80\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x17\x00\x20\x10\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x48\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x22\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x22\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x73\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".dynstr", 0x390, "\x00\x5f\x5f\x63\x78\x61\x5f\x66\x69\x6e\x61\x6c\x69\x7a\x65\x00\x5f\x5f\x6c\x69\x62\x63\x5f\x73\x74\x61\x72\x74\x5f\x6d\x61\x69\x6e\x00\x61\x62\x6f\x72\x74\x00\x6c\x69\x62\x63\x2e\x73\x6f\x2e\x36\x00\x47\x4c\x49\x42\x43\x5f\x32\x2e\x31\x37\x00\x47\x4c\x49\x42\x43\x5f\x32\x2e\x33\x34\x00\x5f\x49\x54\x4d\x5f\x64\x65\x72\x65\x67\x69\x73\x74\x65\x72\x54\x4d\x43\x6c\x6f\x6e\x65\x54\x61\x62\x6c\x65\x00\x5f\x5f\x67\x6d\x6f\x6e\x5f\x73\x74\x61\x72\x74\x5f\x5f\x00\x5f\x49\x54\x4d\x5f\x72\x65\x67\x69\x73\x74\x65\x72\x54\x4d\x43\x6c\x6f\x6e\x65\x54\x61\x62\x6c\x65\x00"), -Section(".gnu.version", 0x41E, "\x00\x00\x00\x00\x00\x00\x02\x00\x01\x00\x03\x00\x01\x00\x03\x00\x01\x00"), -Section(".gnu.version_r", 0x430, "\x01\x00\x02\x00\x28\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x97\x91\x96\x06\x00\x00\x03\x00\x32\x00\x00\x00\x10\x00\x00\x00\xb4\x91\x96\x06\x00\x00\x02\x00\x3d\x00\x00\x00\x00\x00\x00\x00"), -Section(".rela.dyn", 0x460, "\xc8\x0d\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x10\x07\x00\x00\x00\x00\x00\x00\xd0\x0d\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\xc0\x06\x00\x00\x00\x00\x00\x00\xd8\x0f\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x14\x07\x00\x00\x00\x00\x00\x00\x28\x10\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x28\x10\x01\x00\x00\x00\x00\x00\xc0\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xc8\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xd0\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe0\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".rela.plt", 0x520, "\x00\x10\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x08\x10\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x10\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x18\x10\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".init", 0x580, "\x1f\x20\x03\xd5\xfd\x7b\xbf\xa9\xfd\x03\x00\x91\x2a\x00\x00\x94\xfd\x7b\xc1\xa8\xc0\x03\x5f\xd6"), -Section(".plt", 0x5A0, "\xf0\x7b\xbf\xa9\x90\x00\x00\x90\x11\xfe\x47\xf9\x10\xe2\x3f\x91\x20\x02\x1f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x90\x00\x00\xb0\x11\x02\x40\xf9\x10\x02\x00\x91\x20\x02\x1f\xd6\x90\x00\x00\xb0\x11\x06\x40\xf9\x10\x22\x00\x91\x20\x02\x1f\xd6\x90\x00\x00\xb0\x11\x0a\x40\xf9\x10\x42\x00\x91\x20\x02\x1f\xd6\x90\x00\x00\xb0\x11\x0e\x40\xf9\x10\x62\x00\x91\x20\x02\x1f\xd6"), -Section(".text", 0x600, "\x1f\x20\x03\xd5\x1d\x00\x80\xd2\x1e\x00\x80\xd2\xe5\x03\x00\xaa\xe1\x03\x40\xf9\xe2\x23\x00\x91\xe6\x03\x00\x91\x80\x00\x00\x90\x00\xec\x47\xf9\x03\x00\x80\xd2\x04\x00\x80\xd2\xe5\xff\xff\x97\xf0\xff\xff\x97\x80\x00\x00\x90\x00\xe8\x47\xf9\x40\x00\x00\xb4\xe8\xff\xff\x17\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x80\x00\x00\xb0\x00\xc0\x00\x91\x81\x00\x00\xb0\x21\xc0\x00\x91\x3f\x00\x00\xeb\xc0\x00\x00\x54\x81\x00\x00\x90\x21\xe0\x47\xf9\x61\x00\x00\xb4\xf0\x03\x01\xaa\x00\x02\x1f\xd6\xc0\x03\x5f\xd6\x80\x00\x00\xb0\x00\xc0\x00\x91\x81\x00\x00\xb0\x21\xc0\x00\x91\x21\x00\x00\xcb\x22\xfc\x7f\xd3\x41\x0c\x81\x8b\x21\xfc\x41\x93\xc1\x00\x00\xb4\x82\x00\x00\x90\x42\xf0\x47\xf9\x62\x00\x00\xb4\xf0\x03\x02\xaa\x00\x02\x1f\xd6\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\xfd\x7b\xbe\xa9\xfd\x03\x00\x91\xf3\x0b\x00\xf9\x93\x00\x00\xb0\x60\xc2\x40\x39\x40\x01\x00\x35\x80\x00\x00\x90\x00\xe4\x47\xf9\x80\x00\x00\xb4\x80\x00\x00\xb0\x00\x14\x40\xf9\xb9\xff\xff\x97\xd8\xff\xff\x97\x20\x00\x80\x52\x60\xc2\x00\x39\xf3\x0b\x40\xf9\xfd\x7b\xc2\xa8\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\xdc\xff\xff\x17\xff\x43\x00\xd1\xff\x0f\x00\xb9\x88\x00\x00\xb0\x08\x35\x40\xb9\x08\x01\x00\x71\xe8\x07\x9f\x1a\xc8\x00\x00\x37\x01\x00\x00\x14\x28\x00\x80\x52\x89\x00\x00\xb0\x28\x35\x00\xb9\x01\x00\x00\x14\xe0\x0f\x40\xb9\xff\x43\x00\x91\xc0\x03\x5f\xd6"), -Section(".fini", 0x750, "\x1f\x20\x03\xd5\xfd\x7b\xbf\xa9\xfd\x03\x00\x91\xfd\x7b\xc1\xa8\xc0\x03\x5f\xd6"), -Section(".rodata", 0x764, "\x01\x00\x02\x00"), -Section(".eh_frame_hdr", 0x768, "\x01\x1b\x03\x3b\x3c\x00\x00\x00\x06\x00\x00\x00\x98\xfe\xff\xff\x54\x00\x00\x00\xe8\xfe\xff\xff\x68\x00\x00\x00\x18\xff\xff\xff\x7c\x00\x00\x00\x58\xff\xff\xff\x90\x00\x00\x00\xa8\xff\xff\xff\xb4\x00\x00\x00\xac\xff\xff\xff\xdc\x00\x00\x00"), -Section(".eh_frame", 0x7A8, "\x10\x00\x00\x00\x00\x00\x00\x00\x01\x7a\x52\x00\x04\x78\x1e\x01\x1b\x0c\x1f\x00\x10\x00\x00\x00\x18\x00\x00\x00\x3c\xfe\xff\xff\x34\x00\x00\x00\x00\x41\x07\x1e\x10\x00\x00\x00\x2c\x00\x00\x00\x78\xfe\xff\xff\x30\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x40\x00\x00\x00\x94\xfe\xff\xff\x3c\x00\x00\x00\x00\x00\x00\x00\x20\x00\x00\x00\x54\x00\x00\x00\xc0\xfe\xff\xff\x48\x00\x00\x00\x00\x41\x0e\x20\x9d\x04\x9e\x03\x42\x93\x02\x4e\xde\xdd\xd3\x0e\x00\x00\x00\x00\x10\x00\x00\x00\x78\x00\x00\x00\xec\xfe\xff\xff\x04\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x01\x7a\x52\x00\x01\x7c\x1e\x01\x1b\x0c\x1f\x00\x14\x00\x00\x00\x18\x00\x00\x00\xc8\xfe\xff\xff\x3c\x00\x00\x00\x00\x44\x0e\x10\x74\x0e\x00\x00\x00\x00\x00\x00"), -Section(".fini_array", 0x10DD0, "\xc0\x06\x00\x00\x00\x00\x00\x00"), -Section(".dynamic", 0x10DD8, "\x01\x00\x00\x00\x00\x00\x00\x00\x28\x00\x00\x00\x00\x00\x00\x00\x0c\x00\x00\x00\x00\x00\x00\x00\x80\x05\x00\x00\x00\x00\x00\x00\x0d\x00\x00\x00\x00\x00\x00\x00\x50\x07\x00\x00\x00\x00\x00\x00\x19\x00\x00\x00\x00\x00\x00\x00\xc8\x0d\x01\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x1a\x00\x00\x00\x00\x00\x00\x00\xd0\x0d\x01\x00\x00\x00\x00\x00\x1c\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\xf5\xfe\xff\x6f\x00\x00\x00\x00\x98\x02\x00\x00\x00\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x90\x03\x00\x00\x00\x00\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\xb8\x02\x00\x00\x00\x00\x00\x00\x0a\x00\x00\x00\x00\x00\x00\x00\x8d\x00\x00\x00\x00\x00\x00\x00\x0b\x00\x00\x00\x00\x00\x00\x00\x18\x00\x00\x00\x00\x00\x00\x00\x15\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\xe8\x0f\x01\x00\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x60\x00\x00\x00\x00\x00\x00\x00\x14\x00\x00\x00\x00\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x17\x00\x00\x00\x00\x00\x00\x00\x20\x05\x00\x00\x00\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x60\x04\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\xc0\x00\x00\x00\x00\x00\x00\x00\x09\x00\x00\x00\x00\x00\x00\x00\x18\x00\x00\x00\x00\x00\x00\x00\xfb\xff\xff\x6f\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\xfe\xff\xff\x6f\x00\x00\x00\x00\x30\x04\x00\x00\x00\x00\x00\x00\xff\xff\xff\x6f\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\xf0\xff\xff\x6f\x00\x00\x00\x00\x1e\x04\x00\x00\x00\x00\x00\x00\xf9\xff\xff\x6f\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".init_array", 0x10DC8, "\x10\x07\x00\x00\x00\x00\x00\x00"), -Section(".got", 0x10FB8, "\xd8\x0d\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x14\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".got.plt", 0x10FE8, "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xa0\x05\x00\x00\x00\x00\x00\x00\xa0\x05\x00\x00\x00\x00\x00\x00\xa0\x05\x00\x00\x00\x00\x00\x00\xa0\x05\x00\x00\x00\x00\x00\x00"), -Section(".data", 0x11020, "\x00\x00\x00\x00\x00\x00\x00\x00\x28\x10\x01\x00\x00\x00\x00\x00")]), -Memmap([Annotation(Region(0x0,0x85F), Attr("segment","02 0 2144")), -Annotation(Region(0x600,0x633), Attr("symbol","\"_start\"")), -Annotation(Region(0x0,0x102), Attr("section","\".shstrtab\"")), -Annotation(Region(0x0,0x233), Attr("section","\".strtab\"")), -Annotation(Region(0x0,0x46), Attr("section","\".comment\"")), -Annotation(Region(0x238,0x252), Attr("section","\".interp\"")), -Annotation(Region(0x254,0x277), Attr("section","\".note.gnu.build-id\"")), -Annotation(Region(0x278,0x297), Attr("section","\".note.ABI-tag\"")), -Annotation(Region(0x298,0x2B3), Attr("section","\".gnu.hash\"")), -Annotation(Region(0x2B8,0x38F), Attr("section","\".dynsym\"")), -Annotation(Region(0x390,0x41C), Attr("section","\".dynstr\"")), -Annotation(Region(0x41E,0x42F), Attr("section","\".gnu.version\"")), -Annotation(Region(0x430,0x45F), Attr("section","\".gnu.version_r\"")), -Annotation(Region(0x460,0x51F), Attr("section","\".rela.dyn\"")), -Annotation(Region(0x520,0x57F), Attr("section","\".rela.plt\"")), -Annotation(Region(0x580,0x597), Attr("section","\".init\"")), -Annotation(Region(0x5A0,0x5FF), Attr("section","\".plt\"")), -Annotation(Region(0x580,0x597), Attr("code-region","()")), -Annotation(Region(0x5A0,0x5FF), Attr("code-region","()")), -Annotation(Region(0x600,0x633), Attr("symbol-info","_start 0x600 52")), -Annotation(Region(0x634,0x647), Attr("symbol","\"call_weak_fn\"")), -Annotation(Region(0x634,0x647), Attr("symbol-info","call_weak_fn 0x634 20")), -Annotation(Region(0x600,0x74F), Attr("section","\".text\"")), -Annotation(Region(0x600,0x74F), Attr("code-region","()")), -Annotation(Region(0x714,0x74F), Attr("symbol","\"main\"")), -Annotation(Region(0x714,0x74F), Attr("symbol-info","main 0x714 60")), -Annotation(Region(0x750,0x763), Attr("section","\".fini\"")), -Annotation(Region(0x750,0x763), Attr("code-region","()")), -Annotation(Region(0x764,0x767), Attr("section","\".rodata\"")), -Annotation(Region(0x768,0x7A3), Attr("section","\".eh_frame_hdr\"")), -Annotation(Region(0x7A8,0x85F), Attr("section","\".eh_frame\"")), -Annotation(Region(0x10DC8,0x1102F), Attr("segment","03 0x10DC8 624")), -Annotation(Region(0x10DD0,0x10DD7), Attr("section","\".fini_array\"")), -Annotation(Region(0x10DD8,0x10FB7), Attr("section","\".dynamic\"")), -Annotation(Region(0x10DC8,0x10DCF), Attr("section","\".init_array\"")), -Annotation(Region(0x10FB8,0x10FE7), Attr("section","\".got\"")), -Annotation(Region(0x10FE8,0x1101F), Attr("section","\".got.plt\"")), -Annotation(Region(0x11020,0x1102F), Attr("section","\".data\""))]), -Program(Tid(1_570, "%00000622"), Attrs([]), - Subs([Sub(Tid(1_518, "@__cxa_finalize"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x5D0"), -Attr("stub","()")]), "__cxa_finalize", Args([Arg(Tid(1_571, "%00000623"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("__cxa_finalize_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(916, "@__cxa_finalize"), - Attrs([Attr("address","0x5D0")]), Phis([]), -Defs([Def(Tid(1_164, "%0000048c"), Attrs([Attr("address","0x5D0"), -Attr("insn","adrp x16, #69632")]), Var("R16",Imm(64)), Int(69632,64)), -Def(Tid(1_171, "%00000493"), Attrs([Attr("address","0x5D4"), -Attr("insn","ldr x17, [x16, #0x8]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(1_177, "%00000499"), Attrs([Attr("address","0x5D8"), -Attr("insn","add x16, x16, #0x8")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(8,64)))]), Jmps([Call(Tid(1_182, "%0000049e"), - Attrs([Attr("address","0x5DC"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), -Sub(Tid(1_519, "@__do_global_dtors_aux"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x6C0")]), - "__do_global_dtors_aux", Args([Arg(Tid(1_572, "%00000624"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("__do_global_dtors_aux_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(650, "@__do_global_dtors_aux"), - Attrs([Attr("address","0x6C0")]), Phis([]), Defs([Def(Tid(654, "%0000028e"), - Attrs([Attr("address","0x6C0"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("#3",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(18446744073709551584,64))), -Def(Tid(660, "%00000294"), Attrs([Attr("address","0x6C0"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("#3",Imm(64)),Var("R29",Imm(64)),LittleEndian(),64)), -Def(Tid(666, "%0000029a"), Attrs([Attr("address","0x6C0"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("#3",Imm(64)),Int(8,64)),Var("R30",Imm(64)),LittleEndian(),64)), -Def(Tid(670, "%0000029e"), Attrs([Attr("address","0x6C0"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("R31",Imm(64)), -Var("#3",Imm(64))), Def(Tid(676, "%000002a4"), - Attrs([Attr("address","0x6C4"), Attr("insn","mov x29, sp")]), - Var("R29",Imm(64)), Var("R31",Imm(64))), Def(Tid(684, "%000002ac"), - Attrs([Attr("address","0x6C8"), Attr("insn","str x19, [sp, #0x10]")]), - Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(16,64)),Var("R19",Imm(64)),LittleEndian(),64)), -Def(Tid(689, "%000002b1"), Attrs([Attr("address","0x6CC"), -Attr("insn","adrp x19, #69632")]), Var("R19",Imm(64)), Int(69632,64)), -Def(Tid(696, "%000002b8"), Attrs([Attr("address","0x6D0"), -Attr("insn","ldrb w0, [x19, #0x30]")]), Var("R0",Imm(64)), -UNSIGNED(64,Load(Var("mem",Mem(64,8)),PLUS(Var("R19",Imm(64)),Int(48,64)),LittleEndian(),8)))]), -Jmps([Goto(Tid(703, "%000002bf"), Attrs([Attr("address","0x6D4"), -Attr("insn","cbnz w0, #0x28")]), - NEQ(Extract(31,0,Var("R0",Imm(64))),Int(0,32)), -Direct(Tid(701, "%000002bd"))), Goto(Tid(1_559, "%00000617"), Attrs([]), - Int(1,1), Direct(Tid(861, "%0000035d")))])), Blk(Tid(861, "%0000035d"), - Attrs([Attr("address","0x6D8")]), Phis([]), Defs([Def(Tid(864, "%00000360"), - Attrs([Attr("address","0x6D8"), Attr("insn","adrp x0, #65536")]), - Var("R0",Imm(64)), Int(65536,64)), Def(Tid(871, "%00000367"), - Attrs([Attr("address","0x6DC"), Attr("insn","ldr x0, [x0, #0xfc8]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(4040,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(877, "%0000036d"), Attrs([Attr("address","0x6E0"), -Attr("insn","cbz x0, #0x10")]), EQ(Var("R0",Imm(64)),Int(0,64)), -Direct(Tid(875, "%0000036b"))), Goto(Tid(1_560, "%00000618"), Attrs([]), - Int(1,1), Direct(Tid(900, "%00000384")))])), Blk(Tid(900, "%00000384"), - Attrs([Attr("address","0x6E4")]), Phis([]), Defs([Def(Tid(903, "%00000387"), - Attrs([Attr("address","0x6E4"), Attr("insn","adrp x0, #69632")]), - Var("R0",Imm(64)), Int(69632,64)), Def(Tid(910, "%0000038e"), - Attrs([Attr("address","0x6E8"), Attr("insn","ldr x0, [x0, #0x28]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(40,64)),LittleEndian(),64)), -Def(Tid(915, "%00000393"), Attrs([Attr("address","0x6EC"), -Attr("insn","bl #-0x11c")]), Var("R30",Imm(64)), Int(1776,64))]), -Jmps([Call(Tid(918, "%00000396"), Attrs([Attr("address","0x6EC"), -Attr("insn","bl #-0x11c")]), Int(1,1), -(Direct(Tid(1_518, "@__cxa_finalize")),Direct(Tid(875, "%0000036b"))))])), -Blk(Tid(875, "%0000036b"), Attrs([Attr("address","0x6F0")]), Phis([]), -Defs([Def(Tid(883, "%00000373"), Attrs([Attr("address","0x6F0"), -Attr("insn","bl #-0xa0")]), Var("R30",Imm(64)), Int(1780,64))]), -Jmps([Call(Tid(885, "%00000375"), Attrs([Attr("address","0x6F0"), -Attr("insn","bl #-0xa0")]), Int(1,1), -(Direct(Tid(1_532, "@deregister_tm_clones")),Direct(Tid(887, "%00000377"))))])), -Blk(Tid(887, "%00000377"), Attrs([Attr("address","0x6F4")]), Phis([]), -Defs([Def(Tid(890, "%0000037a"), Attrs([Attr("address","0x6F4"), -Attr("insn","mov w0, #0x1")]), Var("R0",Imm(64)), Int(1,64)), -Def(Tid(898, "%00000382"), Attrs([Attr("address","0x6F8"), -Attr("insn","strb w0, [x19, #0x30]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R19",Imm(64)),Int(48,64)),Extract(7,0,Var("R0",Imm(64))),LittleEndian(),8))]), -Jmps([Goto(Tid(1_561, "%00000619"), Attrs([]), Int(1,1), -Direct(Tid(701, "%000002bd")))])), Blk(Tid(701, "%000002bd"), - Attrs([Attr("address","0x6FC")]), Phis([]), Defs([Def(Tid(711, "%000002c7"), - Attrs([Attr("address","0x6FC"), Attr("insn","ldr x19, [sp, #0x10]")]), - Var("R19",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(16,64)),LittleEndian(),64)), -Def(Tid(718, "%000002ce"), Attrs([Attr("address","0x700"), -Attr("insn","ldp x29, x30, [sp], #0x20")]), Var("R29",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(723, "%000002d3"), Attrs([Attr("address","0x700"), -Attr("insn","ldp x29, x30, [sp], #0x20")]), Var("R30",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(727, "%000002d7"), Attrs([Attr("address","0x700"), -Attr("insn","ldp x29, x30, [sp], #0x20")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(32,64)))]), Jmps([Call(Tid(732, "%000002dc"), - Attrs([Attr("address","0x704"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), Sub(Tid(1_523, "@__libc_start_main"), - Attrs([Attr("c.proto","signed (*)(signed (*)(signed , char** , char** );* main, signed , char** , \nvoid* auxv)"), -Attr("address","0x5C0"), Attr("stub","()")]), "__libc_start_main", - Args([Arg(Tid(1_573, "%00000625"), - Attrs([Attr("c.layout","**[ : 64]"), -Attr("c.data","Top:u64 ptr ptr"), -Attr("c.type","signed (*)(signed , char** , char** );*")]), - Var("__libc_start_main_main",Imm(64)), Var("R0",Imm(64)), In()), -Arg(Tid(1_574, "%00000626"), Attrs([Attr("c.layout","[signed : 32]"), -Attr("c.data","Top:u32"), Attr("c.type","signed")]), - Var("__libc_start_main_arg2",Imm(32)), LOW(32,Var("R1",Imm(64))), In()), -Arg(Tid(1_575, "%00000627"), Attrs([Attr("c.layout","**[char : 8]"), -Attr("c.data","Top:u8 ptr ptr"), Attr("c.type","char**")]), - Var("__libc_start_main_arg3",Imm(64)), Var("R2",Imm(64)), Both()), -Arg(Tid(1_576, "%00000628"), Attrs([Attr("c.layout","*[ : 8]"), -Attr("c.data","{} ptr"), Attr("c.type","void*")]), - Var("__libc_start_main_auxv",Imm(64)), Var("R3",Imm(64)), Both()), -Arg(Tid(1_577, "%00000629"), Attrs([Attr("c.layout","[signed : 32]"), -Attr("c.data","Top:u32"), Attr("c.type","signed")]), - Var("__libc_start_main_result",Imm(32)), LOW(32,Var("R0",Imm(64))), -Out())]), Blks([Blk(Tid(483, "@__libc_start_main"), - Attrs([Attr("address","0x5C0")]), Phis([]), -Defs([Def(Tid(1_142, "%00000476"), Attrs([Attr("address","0x5C0"), -Attr("insn","adrp x16, #69632")]), Var("R16",Imm(64)), Int(69632,64)), -Def(Tid(1_149, "%0000047d"), Attrs([Attr("address","0x5C4"), -Attr("insn","ldr x17, [x16]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R16",Imm(64)),LittleEndian(),64)), -Def(Tid(1_155, "%00000483"), Attrs([Attr("address","0x5C8"), -Attr("insn","add x16, x16, #0x0")]), Var("R16",Imm(64)), -Var("R16",Imm(64)))]), Jmps([Call(Tid(1_160, "%00000488"), - Attrs([Attr("address","0x5CC"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), Sub(Tid(1_524, "@_fini"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x750")]), - "_fini", Args([Arg(Tid(1_578, "%0000062a"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("_fini_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(31, "@_fini"), - Attrs([Attr("address","0x750")]), Phis([]), Defs([Def(Tid(37, "%00000025"), - Attrs([Attr("address","0x754"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("#0",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(18446744073709551600,64))), -Def(Tid(43, "%0000002b"), Attrs([Attr("address","0x754"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("#0",Imm(64)),Var("R29",Imm(64)),LittleEndian(),64)), -Def(Tid(49, "%00000031"), Attrs([Attr("address","0x754"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("#0",Imm(64)),Int(8,64)),Var("R30",Imm(64)),LittleEndian(),64)), -Def(Tid(53, "%00000035"), Attrs([Attr("address","0x754"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("R31",Imm(64)), -Var("#0",Imm(64))), Def(Tid(59, "%0000003b"), Attrs([Attr("address","0x758"), -Attr("insn","mov x29, sp")]), Var("R29",Imm(64)), Var("R31",Imm(64))), -Def(Tid(66, "%00000042"), Attrs([Attr("address","0x75C"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R29",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(71, "%00000047"), Attrs([Attr("address","0x75C"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R30",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(75, "%0000004b"), Attrs([Attr("address","0x75C"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(16,64)))]), Jmps([Call(Tid(80, "%00000050"), - Attrs([Attr("address","0x760"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), Sub(Tid(1_525, "@_init"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x580")]), - "_init", Args([Arg(Tid(1_579, "%0000062b"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("_init_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(1_345, "@_init"), - Attrs([Attr("address","0x580")]), Phis([]), -Defs([Def(Tid(1_351, "%00000547"), Attrs([Attr("address","0x584"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("#6",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(18446744073709551600,64))), -Def(Tid(1_357, "%0000054d"), Attrs([Attr("address","0x584"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("#6",Imm(64)),Var("R29",Imm(64)),LittleEndian(),64)), -Def(Tid(1_363, "%00000553"), Attrs([Attr("address","0x584"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("#6",Imm(64)),Int(8,64)),Var("R30",Imm(64)),LittleEndian(),64)), -Def(Tid(1_367, "%00000557"), Attrs([Attr("address","0x584"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("R31",Imm(64)), -Var("#6",Imm(64))), Def(Tid(1_373, "%0000055d"), - Attrs([Attr("address","0x588"), Attr("insn","mov x29, sp")]), - Var("R29",Imm(64)), Var("R31",Imm(64))), Def(Tid(1_378, "%00000562"), - Attrs([Attr("address","0x58C"), Attr("insn","bl #0xa8")]), - Var("R30",Imm(64)), Int(1424,64))]), Jmps([Call(Tid(1_380, "%00000564"), - Attrs([Attr("address","0x58C"), Attr("insn","bl #0xa8")]), Int(1,1), -(Direct(Tid(1_530, "@call_weak_fn")),Direct(Tid(1_382, "%00000566"))))])), -Blk(Tid(1_382, "%00000566"), Attrs([Attr("address","0x590")]), Phis([]), -Defs([Def(Tid(1_387, "%0000056b"), Attrs([Attr("address","0x590"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R29",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(1_392, "%00000570"), Attrs([Attr("address","0x590"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R30",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(1_396, "%00000574"), Attrs([Attr("address","0x590"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(16,64)))]), Jmps([Call(Tid(1_401, "%00000579"), - Attrs([Attr("address","0x594"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), Sub(Tid(1_526, "@_start"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x600"), -Attr("stub","()"), Attr("entry-point","()")]), "_start", - Args([Arg(Tid(1_580, "%0000062c"), Attrs([Attr("c.layout","[signed : 32]"), -Attr("c.data","Top:u32"), Attr("c.type","signed")]), - Var("_start_result",Imm(32)), LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(420, "@_start"), Attrs([Attr("address","0x600")]), Phis([]), -Defs([Def(Tid(425, "%000001a9"), Attrs([Attr("address","0x604"), -Attr("insn","mov x29, #0x0")]), Var("R29",Imm(64)), Int(0,64)), -Def(Tid(430, "%000001ae"), Attrs([Attr("address","0x608"), -Attr("insn","mov x30, #0x0")]), Var("R30",Imm(64)), Int(0,64)), -Def(Tid(436, "%000001b4"), Attrs([Attr("address","0x60C"), -Attr("insn","mov x5, x0")]), Var("R5",Imm(64)), Var("R0",Imm(64))), -Def(Tid(443, "%000001bb"), Attrs([Attr("address","0x610"), -Attr("insn","ldr x1, [sp]")]), Var("R1",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(449, "%000001c1"), Attrs([Attr("address","0x614"), -Attr("insn","add x2, sp, #0x8")]), Var("R2",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(8,64))), Def(Tid(455, "%000001c7"), - Attrs([Attr("address","0x618"), Attr("insn","mov x6, sp")]), - Var("R6",Imm(64)), Var("R31",Imm(64))), Def(Tid(460, "%000001cc"), - Attrs([Attr("address","0x61C"), Attr("insn","adrp x0, #65536")]), - Var("R0",Imm(64)), Int(65536,64)), Def(Tid(467, "%000001d3"), - Attrs([Attr("address","0x620"), Attr("insn","ldr x0, [x0, #0xfd8]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(4056,64)),LittleEndian(),64)), -Def(Tid(472, "%000001d8"), Attrs([Attr("address","0x624"), -Attr("insn","mov x3, #0x0")]), Var("R3",Imm(64)), Int(0,64)), -Def(Tid(477, "%000001dd"), Attrs([Attr("address","0x628"), -Attr("insn","mov x4, #0x0")]), Var("R4",Imm(64)), Int(0,64)), -Def(Tid(482, "%000001e2"), Attrs([Attr("address","0x62C"), -Attr("insn","bl #-0x6c")]), Var("R30",Imm(64)), Int(1584,64))]), -Jmps([Call(Tid(485, "%000001e5"), Attrs([Attr("address","0x62C"), -Attr("insn","bl #-0x6c")]), Int(1,1), -(Direct(Tid(1_523, "@__libc_start_main")),Direct(Tid(487, "%000001e7"))))])), -Blk(Tid(487, "%000001e7"), Attrs([Attr("address","0x630")]), Phis([]), -Defs([Def(Tid(490, "%000001ea"), Attrs([Attr("address","0x630"), -Attr("insn","bl #-0x40")]), Var("R30",Imm(64)), Int(1588,64))]), -Jmps([Call(Tid(493, "%000001ed"), Attrs([Attr("address","0x630"), -Attr("insn","bl #-0x40")]), Int(1,1), -(Direct(Tid(1_529, "@abort")),Direct(Tid(1_562, "%0000061a"))))])), -Blk(Tid(1_562, "%0000061a"), Attrs([]), Phis([]), Defs([]), -Jmps([Call(Tid(1_563, "%0000061b"), Attrs([]), Int(1,1), -(Direct(Tid(1_530, "@call_weak_fn")),))]))])), Sub(Tid(1_529, "@abort"), - Attrs([Attr("noreturn","()"), Attr("c.proto","void (*)(void)"), -Attr("address","0x5F0"), Attr("stub","()")]), "abort", Args([]), -Blks([Blk(Tid(491, "@abort"), Attrs([Attr("address","0x5F0")]), Phis([]), -Defs([Def(Tid(1_208, "%000004b8"), Attrs([Attr("address","0x5F0"), -Attr("insn","adrp x16, #69632")]), Var("R16",Imm(64)), Int(69632,64)), -Def(Tid(1_215, "%000004bf"), Attrs([Attr("address","0x5F4"), -Attr("insn","ldr x17, [x16, #0x18]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(24,64)),LittleEndian(),64)), -Def(Tid(1_221, "%000004c5"), Attrs([Attr("address","0x5F8"), -Attr("insn","add x16, x16, #0x18")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(24,64)))]), Jmps([Call(Tid(1_226, "%000004ca"), - Attrs([Attr("address","0x5FC"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), Sub(Tid(1_530, "@call_weak_fn"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x634")]), - "call_weak_fn", Args([Arg(Tid(1_581, "%0000062d"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("call_weak_fn_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(495, "@call_weak_fn"), - Attrs([Attr("address","0x634")]), Phis([]), Defs([Def(Tid(498, "%000001f2"), - Attrs([Attr("address","0x634"), Attr("insn","adrp x0, #65536")]), - Var("R0",Imm(64)), Int(65536,64)), Def(Tid(505, "%000001f9"), - Attrs([Attr("address","0x638"), Attr("insn","ldr x0, [x0, #0xfd0]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(4048,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(511, "%000001ff"), Attrs([Attr("address","0x63C"), -Attr("insn","cbz x0, #0x8")]), EQ(Var("R0",Imm(64)),Int(0,64)), -Direct(Tid(509, "%000001fd"))), Goto(Tid(1_564, "%0000061c"), Attrs([]), - Int(1,1), Direct(Tid(980, "%000003d4")))])), Blk(Tid(509, "%000001fd"), - Attrs([Attr("address","0x644")]), Phis([]), Defs([]), -Jmps([Call(Tid(517, "%00000205"), Attrs([Attr("address","0x644"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))])), -Blk(Tid(980, "%000003d4"), Attrs([Attr("address","0x640")]), Phis([]), -Defs([]), Jmps([Goto(Tid(983, "%000003d7"), Attrs([Attr("address","0x640"), -Attr("insn","b #-0x60")]), Int(1,1), Direct(Tid(981, "@__gmon_start__")))])), -Blk(Tid(981, "@__gmon_start__"), Attrs([Attr("address","0x5E0")]), Phis([]), -Defs([Def(Tid(1_186, "%000004a2"), Attrs([Attr("address","0x5E0"), -Attr("insn","adrp x16, #69632")]), Var("R16",Imm(64)), Int(69632,64)), -Def(Tid(1_193, "%000004a9"), Attrs([Attr("address","0x5E4"), -Attr("insn","ldr x17, [x16, #0x10]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(16,64)),LittleEndian(),64)), -Def(Tid(1_199, "%000004af"), Attrs([Attr("address","0x5E8"), -Attr("insn","add x16, x16, #0x10")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(16,64)))]), Jmps([Call(Tid(1_204, "%000004b4"), - Attrs([Attr("address","0x5EC"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), -Sub(Tid(1_532, "@deregister_tm_clones"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x650")]), - "deregister_tm_clones", Args([Arg(Tid(1_582, "%0000062e"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("deregister_tm_clones_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(523, "@deregister_tm_clones"), - Attrs([Attr("address","0x650")]), Phis([]), Defs([Def(Tid(526, "%0000020e"), - Attrs([Attr("address","0x650"), Attr("insn","adrp x0, #69632")]), - Var("R0",Imm(64)), Int(69632,64)), Def(Tid(532, "%00000214"), - Attrs([Attr("address","0x654"), Attr("insn","add x0, x0, #0x30")]), - Var("R0",Imm(64)), PLUS(Var("R0",Imm(64)),Int(48,64))), -Def(Tid(537, "%00000219"), Attrs([Attr("address","0x658"), -Attr("insn","adrp x1, #69632")]), Var("R1",Imm(64)), Int(69632,64)), -Def(Tid(543, "%0000021f"), Attrs([Attr("address","0x65C"), -Attr("insn","add x1, x1, #0x30")]), Var("R1",Imm(64)), -PLUS(Var("R1",Imm(64)),Int(48,64))), Def(Tid(549, "%00000225"), - Attrs([Attr("address","0x660"), Attr("insn","cmp x1, x0")]), - Var("#1",Imm(64)), NOT(Var("R0",Imm(64)))), Def(Tid(554, "%0000022a"), - Attrs([Attr("address","0x660"), Attr("insn","cmp x1, x0")]), - Var("#2",Imm(64)), PLUS(Var("R1",Imm(64)),NOT(Var("R0",Imm(64))))), -Def(Tid(560, "%00000230"), Attrs([Attr("address","0x660"), -Attr("insn","cmp x1, x0")]), Var("VF",Imm(1)), -NEQ(SIGNED(65,PLUS(Var("#2",Imm(64)),Int(1,64))),PLUS(PLUS(SIGNED(65,Var("R1",Imm(64))),SIGNED(65,Var("#1",Imm(64)))),Int(1,65)))), -Def(Tid(566, "%00000236"), Attrs([Attr("address","0x660"), -Attr("insn","cmp x1, x0")]), Var("CF",Imm(1)), -NEQ(UNSIGNED(65,PLUS(Var("#2",Imm(64)),Int(1,64))),PLUS(PLUS(UNSIGNED(65,Var("R1",Imm(64))),UNSIGNED(65,Var("#1",Imm(64)))),Int(1,65)))), -Def(Tid(570, "%0000023a"), Attrs([Attr("address","0x660"), -Attr("insn","cmp x1, x0")]), Var("ZF",Imm(1)), -EQ(PLUS(Var("#2",Imm(64)),Int(1,64)),Int(0,64))), Def(Tid(574, "%0000023e"), - Attrs([Attr("address","0x660"), Attr("insn","cmp x1, x0")]), - Var("NF",Imm(1)), Extract(63,63,PLUS(Var("#2",Imm(64)),Int(1,64))))]), -Jmps([Goto(Tid(580, "%00000244"), Attrs([Attr("address","0x664"), -Attr("insn","b.eq #0x18")]), EQ(Var("ZF",Imm(1)),Int(1,1)), -Direct(Tid(578, "%00000242"))), Goto(Tid(1_565, "%0000061d"), Attrs([]), - Int(1,1), Direct(Tid(950, "%000003b6")))])), Blk(Tid(950, "%000003b6"), - Attrs([Attr("address","0x668")]), Phis([]), Defs([Def(Tid(953, "%000003b9"), - Attrs([Attr("address","0x668"), Attr("insn","adrp x1, #65536")]), - Var("R1",Imm(64)), Int(65536,64)), Def(Tid(960, "%000003c0"), - Attrs([Attr("address","0x66C"), Attr("insn","ldr x1, [x1, #0xfc0]")]), - Var("R1",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R1",Imm(64)),Int(4032,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(965, "%000003c5"), Attrs([Attr("address","0x670"), -Attr("insn","cbz x1, #0xc")]), EQ(Var("R1",Imm(64)),Int(0,64)), -Direct(Tid(578, "%00000242"))), Goto(Tid(1_566, "%0000061e"), Attrs([]), - Int(1,1), Direct(Tid(969, "%000003c9")))])), Blk(Tid(578, "%00000242"), - Attrs([Attr("address","0x67C")]), Phis([]), Defs([]), -Jmps([Call(Tid(586, "%0000024a"), Attrs([Attr("address","0x67C"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))])), -Blk(Tid(969, "%000003c9"), Attrs([Attr("address","0x674")]), Phis([]), -Defs([Def(Tid(973, "%000003cd"), Attrs([Attr("address","0x674"), -Attr("insn","mov x16, x1")]), Var("R16",Imm(64)), Var("R1",Imm(64)))]), -Jmps([Call(Tid(978, "%000003d2"), Attrs([Attr("address","0x678"), -Attr("insn","br x16")]), Int(1,1), (Indirect(Var("R16",Imm(64))),))]))])), -Sub(Tid(1_535, "@frame_dummy"), Attrs([Attr("c.proto","signed (*)(void)"), -Attr("address","0x710")]), "frame_dummy", Args([Arg(Tid(1_583, "%0000062f"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("frame_dummy_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(738, "@frame_dummy"), - Attrs([Attr("address","0x710")]), Phis([]), Defs([]), -Jmps([Call(Tid(740, "%000002e4"), Attrs([Attr("address","0x710"), -Attr("insn","b #-0x90")]), Int(1,1), -(Direct(Tid(1_538, "@register_tm_clones")),))]))])), Sub(Tid(1_536, "@main"), - Attrs([Attr("c.proto","signed (*)(signed argc, const char** argv)"), -Attr("address","0x714")]), "main", Args([Arg(Tid(1_584, "%00000630"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("main_argc",Imm(32)), -LOW(32,Var("R0",Imm(64))), In()), Arg(Tid(1_585, "%00000631"), - Attrs([Attr("c.layout","**[char : 8]"), Attr("c.data","Top:u8 ptr ptr"), -Attr("c.type"," const char**")]), Var("main_argv",Imm(64)), -Var("R1",Imm(64)), Both()), Arg(Tid(1_586, "%00000632"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("main_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(742, "@main"), - Attrs([Attr("address","0x714")]), Phis([]), Defs([Def(Tid(746, "%000002ea"), - Attrs([Attr("address","0x714"), Attr("insn","sub sp, sp, #0x10")]), - Var("R31",Imm(64)), PLUS(Var("R31",Imm(64)),Int(18446744073709551600,64))), -Def(Tid(753, "%000002f1"), Attrs([Attr("address","0x718"), -Attr("insn","str wzr, [sp, #0xc]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(12,64)),Int(0,32),LittleEndian(),32)), -Def(Tid(758, "%000002f6"), Attrs([Attr("address","0x71C"), -Attr("insn","adrp x8, #69632")]), Var("R8",Imm(64)), Int(69632,64)), -Def(Tid(765, "%000002fd"), Attrs([Attr("address","0x720"), -Attr("insn","ldr w8, [x8, #0x34]")]), Var("R8",Imm(64)), -UNSIGNED(64,Load(Var("mem",Mem(64,8)),PLUS(Var("R8",Imm(64)),Int(52,64)),LittleEndian(),32))), -Def(Tid(771, "%00000303"), Attrs([Attr("address","0x724"), -Attr("insn","subs w8, w8, #0x0")]), Var("#4",Imm(32)), -PLUS(Extract(31,0,Var("R8",Imm(64))),Int(4294967295,32))), -Def(Tid(776, "%00000308"), Attrs([Attr("address","0x724"), -Attr("insn","subs w8, w8, #0x0")]), Var("VF",Imm(1)), -NEQ(SIGNED(33,PLUS(Var("#4",Imm(32)),Int(1,32))),PLUS(SIGNED(33,Extract(31,0,Var("R8",Imm(64)))),Int(0,33)))), -Def(Tid(781, "%0000030d"), Attrs([Attr("address","0x724"), -Attr("insn","subs w8, w8, #0x0")]), Var("CF",Imm(1)), -NEQ(UNSIGNED(33,PLUS(Var("#4",Imm(32)),Int(1,32))),PLUS(UNSIGNED(33,Extract(31,0,Var("R8",Imm(64)))),Int(4294967296,33)))), -Def(Tid(785, "%00000311"), Attrs([Attr("address","0x724"), -Attr("insn","subs w8, w8, #0x0")]), Var("ZF",Imm(1)), -EQ(PLUS(Var("#4",Imm(32)),Int(1,32)),Int(0,32))), Def(Tid(789, "%00000315"), - Attrs([Attr("address","0x724"), Attr("insn","subs w8, w8, #0x0")]), - Var("NF",Imm(1)), Extract(31,31,PLUS(Var("#4",Imm(32)),Int(1,32)))), -Def(Tid(793, "%00000319"), Attrs([Attr("address","0x724"), -Attr("insn","subs w8, w8, #0x0")]), Var("R8",Imm(64)), -UNSIGNED(64,PLUS(Var("#4",Imm(32)),Int(1,32))))]), -Jmps([Goto(Tid(805, "%00000325"), Attrs([Attr("address","0x728"), -Attr("insn","cset w8, ne")]), EQ(Var("ZF",Imm(1)),Int(1,1)), -Direct(Tid(798, "%0000031e"))), Goto(Tid(806, "%00000326"), - Attrs([Attr("address","0x728"), Attr("insn","cset w8, ne")]), Int(1,1), -Direct(Tid(801, "%00000321")))])), Blk(Tid(801, "%00000321"), Attrs([]), - Phis([]), Defs([Def(Tid(802, "%00000322"), Attrs([Attr("address","0x728"), -Attr("insn","cset w8, ne")]), Var("R8",Imm(64)), Int(1,64))]), -Jmps([Goto(Tid(808, "%00000328"), Attrs([Attr("address","0x728"), -Attr("insn","cset w8, ne")]), Int(1,1), Direct(Tid(804, "%00000324")))])), -Blk(Tid(798, "%0000031e"), Attrs([]), Phis([]), -Defs([Def(Tid(799, "%0000031f"), Attrs([Attr("address","0x728"), -Attr("insn","cset w8, ne")]), Var("R8",Imm(64)), Int(0,64))]), -Jmps([Goto(Tid(807, "%00000327"), Attrs([Attr("address","0x728"), -Attr("insn","cset w8, ne")]), Int(1,1), Direct(Tid(804, "%00000324")))])), -Blk(Tid(804, "%00000324"), Attrs([]), Phis([]), Defs([]), -Jmps([Goto(Tid(814, "%0000032e"), Attrs([Attr("address","0x72C"), -Attr("insn","tbnz w8, #0x0, #0x18")]), - EQ(Extract(0,0,Var("R8",Imm(64))),Int(1,1)), Direct(Tid(812, "%0000032c"))), -Goto(Tid(1_567, "%0000061f"), Attrs([]), Int(1,1), -Direct(Tid(835, "%00000343")))])), Blk(Tid(835, "%00000343"), - Attrs([Attr("address","0x730")]), Phis([]), Defs([]), -Jmps([Goto(Tid(838, "%00000346"), Attrs([Attr("address","0x730"), -Attr("insn","b #0x4")]), Int(1,1), Direct(Tid(836, "%00000344")))])), -Blk(Tid(836, "%00000344"), Attrs([Attr("address","0x734")]), Phis([]), -Defs([Def(Tid(842, "%0000034a"), Attrs([Attr("address","0x734"), -Attr("insn","mov w8, #0x1")]), Var("R8",Imm(64)), Int(1,64)), -Def(Tid(847, "%0000034f"), Attrs([Attr("address","0x738"), -Attr("insn","adrp x9, #69632")]), Var("R9",Imm(64)), Int(69632,64)), -Def(Tid(855, "%00000357"), Attrs([Attr("address","0x73C"), -Attr("insn","str w8, [x9, #0x34]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R9",Imm(64)),Int(52,64)),Extract(31,0,Var("R8",Imm(64))),LittleEndian(),32))]), -Jmps([Goto(Tid(859, "%0000035b"), Attrs([Attr("address","0x740"), -Attr("insn","b #0x4")]), Int(1,1), Direct(Tid(812, "%0000032c")))])), -Blk(Tid(812, "%0000032c"), Attrs([Attr("address","0x744")]), Phis([]), -Defs([Def(Tid(822, "%00000336"), Attrs([Attr("address","0x744"), -Attr("insn","ldr w0, [sp, #0xc]")]), Var("R0",Imm(64)), -UNSIGNED(64,Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(12,64)),LittleEndian(),32))), -Def(Tid(828, "%0000033c"), Attrs([Attr("address","0x748"), -Attr("insn","add sp, sp, #0x10")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(16,64)))]), Jmps([Call(Tid(833, "%00000341"), - Attrs([Attr("address","0x74C"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), -Sub(Tid(1_538, "@register_tm_clones"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x680")]), - "register_tm_clones", Args([Arg(Tid(1_587, "%00000633"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("register_tm_clones_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(588, "@register_tm_clones"), Attrs([Attr("address","0x680")]), - Phis([]), Defs([Def(Tid(591, "%0000024f"), Attrs([Attr("address","0x680"), -Attr("insn","adrp x0, #69632")]), Var("R0",Imm(64)), Int(69632,64)), -Def(Tid(597, "%00000255"), Attrs([Attr("address","0x684"), -Attr("insn","add x0, x0, #0x30")]), Var("R0",Imm(64)), -PLUS(Var("R0",Imm(64)),Int(48,64))), Def(Tid(602, "%0000025a"), - Attrs([Attr("address","0x688"), Attr("insn","adrp x1, #69632")]), - Var("R1",Imm(64)), Int(69632,64)), Def(Tid(608, "%00000260"), - Attrs([Attr("address","0x68C"), Attr("insn","add x1, x1, #0x30")]), - Var("R1",Imm(64)), PLUS(Var("R1",Imm(64)),Int(48,64))), -Def(Tid(615, "%00000267"), Attrs([Attr("address","0x690"), -Attr("insn","sub x1, x1, x0")]), Var("R1",Imm(64)), -PLUS(PLUS(Var("R1",Imm(64)),NOT(Var("R0",Imm(64)))),Int(1,64))), -Def(Tid(621, "%0000026d"), Attrs([Attr("address","0x694"), -Attr("insn","lsr x2, x1, #63")]), Var("R2",Imm(64)), -Concat(Int(0,63),Extract(63,63,Var("R1",Imm(64))))), -Def(Tid(628, "%00000274"), Attrs([Attr("address","0x698"), -Attr("insn","add x1, x2, x1, asr #3")]), Var("R1",Imm(64)), -PLUS(Var("R2",Imm(64)),ARSHIFT(Var("R1",Imm(64)),Int(3,3)))), -Def(Tid(634, "%0000027a"), Attrs([Attr("address","0x69C"), -Attr("insn","asr x1, x1, #1")]), Var("R1",Imm(64)), -SIGNED(64,Extract(63,1,Var("R1",Imm(64)))))]), -Jmps([Goto(Tid(640, "%00000280"), Attrs([Attr("address","0x6A0"), -Attr("insn","cbz x1, #0x18")]), EQ(Var("R1",Imm(64)),Int(0,64)), -Direct(Tid(638, "%0000027e"))), Goto(Tid(1_568, "%00000620"), Attrs([]), - Int(1,1), Direct(Tid(920, "%00000398")))])), Blk(Tid(920, "%00000398"), - Attrs([Attr("address","0x6A4")]), Phis([]), Defs([Def(Tid(923, "%0000039b"), - Attrs([Attr("address","0x6A4"), Attr("insn","adrp x2, #65536")]), - Var("R2",Imm(64)), Int(65536,64)), Def(Tid(930, "%000003a2"), - Attrs([Attr("address","0x6A8"), Attr("insn","ldr x2, [x2, #0xfe0]")]), - Var("R2",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R2",Imm(64)),Int(4064,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(935, "%000003a7"), Attrs([Attr("address","0x6AC"), -Attr("insn","cbz x2, #0xc")]), EQ(Var("R2",Imm(64)),Int(0,64)), -Direct(Tid(638, "%0000027e"))), Goto(Tid(1_569, "%00000621"), Attrs([]), - Int(1,1), Direct(Tid(939, "%000003ab")))])), Blk(Tid(638, "%0000027e"), - Attrs([Attr("address","0x6B8")]), Phis([]), Defs([]), -Jmps([Call(Tid(646, "%00000286"), Attrs([Attr("address","0x6B8"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))])), -Blk(Tid(939, "%000003ab"), Attrs([Attr("address","0x6B0")]), Phis([]), -Defs([Def(Tid(943, "%000003af"), Attrs([Attr("address","0x6B0"), -Attr("insn","mov x16, x2")]), Var("R16",Imm(64)), Var("R2",Imm(64)))]), -Jmps([Call(Tid(948, "%000003b4"), Attrs([Attr("address","0x6B4"), -Attr("insn","br x16")]), Int(1,1), -(Indirect(Var("R16",Imm(64))),))]))]))]))) \ No newline at end of file diff --git a/src/test/correct/ifglobal/clang/ifglobal.bir b/src/test/correct/ifglobal/clang/ifglobal.bir deleted file mode 100644 index afdb2b5c1..000000000 --- a/src/test/correct/ifglobal/clang/ifglobal.bir +++ /dev/null @@ -1,260 +0,0 @@ -00000622: program -000005ee: sub __cxa_finalize(__cxa_finalize_result) -00000623: __cxa_finalize_result :: out u32 = low:32[R0] - -00000394: -0000048c: R16 := 0x11000 -00000493: R17 := mem[R16 + 8, el]:u64 -00000499: R16 := R16 + 8 -0000049e: call R17 with noreturn - -000005ef: sub __do_global_dtors_aux(__do_global_dtors_aux_result) -00000624: __do_global_dtors_aux_result :: out u32 = low:32[R0] - -0000028a: -0000028e: #3 := R31 - 0x20 -00000294: mem := mem with [#3, el]:u64 <- R29 -0000029a: mem := mem with [#3 + 8, el]:u64 <- R30 -0000029e: R31 := #3 -000002a4: R29 := R31 -000002ac: mem := mem with [R31 + 0x10, el]:u64 <- R19 -000002b1: R19 := 0x11000 -000002b8: R0 := pad:64[mem[R19 + 0x30]] -000002bf: when 31:0[R0] <> 0 goto %000002bd -00000617: goto %0000035d - -0000035d: -00000360: R0 := 0x10000 -00000367: R0 := mem[R0 + 0xFC8, el]:u64 -0000036d: when R0 = 0 goto %0000036b -00000618: goto %00000384 - -00000384: -00000387: R0 := 0x11000 -0000038e: R0 := mem[R0 + 0x28, el]:u64 -00000393: R30 := 0x6F0 -00000396: call @__cxa_finalize with return %0000036b - -0000036b: -00000373: R30 := 0x6F4 -00000375: call @deregister_tm_clones with return %00000377 - -00000377: -0000037a: R0 := 1 -00000382: mem := mem with [R19 + 0x30] <- 7:0[R0] -00000619: goto %000002bd - -000002bd: -000002c7: R19 := mem[R31 + 0x10, el]:u64 -000002ce: R29 := mem[R31, el]:u64 -000002d3: R30 := mem[R31 + 8, el]:u64 -000002d7: R31 := R31 + 0x20 -000002dc: call R30 with noreturn - -000005f3: sub __libc_start_main(__libc_start_main_main, __libc_start_main_arg2, __libc_start_main_arg3, __libc_start_main_auxv, __libc_start_main_result) -00000625: __libc_start_main_main :: in u64 = R0 -00000626: __libc_start_main_arg2 :: in u32 = low:32[R1] -00000627: __libc_start_main_arg3 :: in out u64 = R2 -00000628: __libc_start_main_auxv :: in out u64 = R3 -00000629: __libc_start_main_result :: out u32 = low:32[R0] - -000001e3: -00000476: R16 := 0x11000 -0000047d: R17 := mem[R16, el]:u64 -00000483: R16 := R16 -00000488: call R17 with noreturn - -000005f4: sub _fini(_fini_result) -0000062a: _fini_result :: out u32 = low:32[R0] - -0000001f: -00000025: #0 := R31 - 0x10 -0000002b: mem := mem with [#0, el]:u64 <- R29 -00000031: mem := mem with [#0 + 8, el]:u64 <- R30 -00000035: R31 := #0 -0000003b: R29 := R31 -00000042: R29 := mem[R31, el]:u64 -00000047: R30 := mem[R31 + 8, el]:u64 -0000004b: R31 := R31 + 0x10 -00000050: call R30 with noreturn - -000005f5: sub _init(_init_result) -0000062b: _init_result :: out u32 = low:32[R0] - -00000541: -00000547: #6 := R31 - 0x10 -0000054d: mem := mem with [#6, el]:u64 <- R29 -00000553: mem := mem with [#6 + 8, el]:u64 <- R30 -00000557: R31 := #6 -0000055d: R29 := R31 -00000562: R30 := 0x590 -00000564: call @call_weak_fn with return %00000566 - -00000566: -0000056b: R29 := mem[R31, el]:u64 -00000570: R30 := mem[R31 + 8, el]:u64 -00000574: R31 := R31 + 0x10 -00000579: call R30 with noreturn - -000005f6: sub _start(_start_result) -0000062c: _start_result :: out u32 = low:32[R0] - -000001a4: -000001a9: R29 := 0 -000001ae: R30 := 0 -000001b4: R5 := R0 -000001bb: R1 := mem[R31, el]:u64 -000001c1: R2 := R31 + 8 -000001c7: R6 := R31 -000001cc: R0 := 0x10000 -000001d3: R0 := mem[R0 + 0xFD8, el]:u64 -000001d8: R3 := 0 -000001dd: R4 := 0 -000001e2: R30 := 0x630 -000001e5: call @__libc_start_main with return %000001e7 - -000001e7: -000001ea: R30 := 0x634 -000001ed: call @abort with return %0000061a - -0000061a: -0000061b: call @call_weak_fn with noreturn - -000005f9: sub abort() - - -000001eb: -000004b8: R16 := 0x11000 -000004bf: R17 := mem[R16 + 0x18, el]:u64 -000004c5: R16 := R16 + 0x18 -000004ca: call R17 with noreturn - -000005fa: sub call_weak_fn(call_weak_fn_result) -0000062d: call_weak_fn_result :: out u32 = low:32[R0] - -000001ef: -000001f2: R0 := 0x10000 -000001f9: R0 := mem[R0 + 0xFD0, el]:u64 -000001ff: when R0 = 0 goto %000001fd -0000061c: goto %000003d4 - -000001fd: -00000205: call R30 with noreturn - -000003d4: -000003d7: goto @__gmon_start__ - -000003d5: -000004a2: R16 := 0x11000 -000004a9: R17 := mem[R16 + 0x10, el]:u64 -000004af: R16 := R16 + 0x10 -000004b4: call R17 with noreturn - -000005fc: sub deregister_tm_clones(deregister_tm_clones_result) -0000062e: deregister_tm_clones_result :: out u32 = low:32[R0] - -0000020b: -0000020e: R0 := 0x11000 -00000214: R0 := R0 + 0x30 -00000219: R1 := 0x11000 -0000021f: R1 := R1 + 0x30 -00000225: #1 := ~R0 -0000022a: #2 := R1 + ~R0 -00000230: VF := extend:65[#2 + 1] <> extend:65[R1] + extend:65[#1] + 1 -00000236: CF := pad:65[#2 + 1] <> pad:65[R1] + pad:65[#1] + 1 -0000023a: ZF := #2 + 1 = 0 -0000023e: NF := 63:63[#2 + 1] -00000244: when ZF goto %00000242 -0000061d: goto %000003b6 - -000003b6: -000003b9: R1 := 0x10000 -000003c0: R1 := mem[R1 + 0xFC0, el]:u64 -000003c5: when R1 = 0 goto %00000242 -0000061e: goto %000003c9 - -00000242: -0000024a: call R30 with noreturn - -000003c9: -000003cd: R16 := R1 -000003d2: call R16 with noreturn - -000005ff: sub frame_dummy(frame_dummy_result) -0000062f: frame_dummy_result :: out u32 = low:32[R0] - -000002e2: -000002e4: call @register_tm_clones with noreturn - -00000600: sub main(main_argc, main_argv, main_result) -00000630: main_argc :: in u32 = low:32[R0] -00000631: main_argv :: in out u64 = R1 -00000632: main_result :: out u32 = low:32[R0] - -000002e6: -000002ea: R31 := R31 - 0x10 -000002f1: mem := mem with [R31 + 0xC, el]:u32 <- 0 -000002f6: R8 := 0x11000 -000002fd: R8 := pad:64[mem[R8 + 0x34, el]:u32] -00000303: #4 := 31:0[R8] - 1 -00000308: VF := extend:33[#4 + 1] <> extend:33[31:0[R8]] + 0 -0000030d: CF := pad:33[#4 + 1] <> pad:33[31:0[R8]] - 0x100000000 -00000311: ZF := #4 + 1 = 0 -00000315: NF := 31:31[#4 + 1] -00000319: R8 := pad:64[#4 + 1] -00000325: when ZF goto %0000031e -00000326: goto %00000321 - -00000321: -00000322: R8 := 1 -00000328: goto %00000324 - -0000031e: -0000031f: R8 := 0 -00000327: goto %00000324 - -00000324: -0000032e: when 0:0[R8] goto %0000032c -0000061f: goto %00000343 - -00000343: -00000346: goto %00000344 - -00000344: -0000034a: R8 := 1 -0000034f: R9 := 0x11000 -00000357: mem := mem with [R9 + 0x34, el]:u32 <- 31:0[R8] -0000035b: goto %0000032c - -0000032c: -00000336: R0 := pad:64[mem[R31 + 0xC, el]:u32] -0000033c: R31 := R31 + 0x10 -00000341: call R30 with noreturn - -00000602: sub register_tm_clones(register_tm_clones_result) -00000633: register_tm_clones_result :: out u32 = low:32[R0] - -0000024c: -0000024f: R0 := 0x11000 -00000255: R0 := R0 + 0x30 -0000025a: R1 := 0x11000 -00000260: R1 := R1 + 0x30 -00000267: R1 := R1 + ~R0 + 1 -0000026d: R2 := 0.63:63[R1] -00000274: R1 := R2 + (R1 ~>> 3) -0000027a: R1 := extend:64[63:1[R1]] -00000280: when R1 = 0 goto %0000027e -00000620: goto %00000398 - -00000398: -0000039b: R2 := 0x10000 -000003a2: R2 := mem[R2 + 0xFE0, el]:u64 -000003a7: when R2 = 0 goto %0000027e -00000621: goto %000003ab - -0000027e: -00000286: call R30 with noreturn - -000003ab: -000003af: R16 := R2 -000003b4: call R16 with noreturn diff --git a/src/test/correct/ifglobal/clang/ifglobal.expected b/src/test/correct/ifglobal/clang/ifglobal.expected index 3b64c1536..49947a75d 100644 --- a/src/test/correct/ifglobal/clang/ifglobal.expected +++ b/src/test/correct/ifglobal/clang/ifglobal.expected @@ -1,40 +1,27 @@ -var {:extern} CF: bv1; -var {:extern} Gamma_CF: bool; -var {:extern} Gamma_NF: bool; var {:extern} Gamma_R0: bool; -var {:extern} Gamma_R31: bool; var {:extern} Gamma_R8: bool; var {:extern} Gamma_R9: bool; -var {:extern} Gamma_VF: bool; -var {:extern} Gamma_ZF: bool; var {:extern} Gamma_mem: [bv64]bool; -var {:extern} Gamma_stack: [bv64]bool; -var {:extern} NF: bv1; var {:extern} R0: bv64; -var {:extern} R31: bv64; var {:extern} R8: bv64; var {:extern} R9: bv64; -var {:extern} VF: bv1; -var {:extern} ZF: bv1; var {:extern} mem: [bv64]bv8; -var {:extern} stack: [bv64]bv8; const {:extern} $x_addr: bv64; -axiom ($x_addr == 69684bv64); +axiom ($x_addr == 131092bv64); function {:extern} L(mem$in: [bv64]bv8, index: bv64) returns (bool) { (if (index == $x_addr) then true else false) } -function {:extern} {:bvbuiltin "bvadd"} bvadd32(bv32, bv32) returns (bv32); -function {:extern} {:bvbuiltin "bvadd"} bvadd33(bv33, bv33) returns (bv33); function {:extern} {:bvbuiltin "bvadd"} bvadd64(bv64, bv64) returns (bv64); -function {:extern} {:bvbuiltin "bvcomp"} bvcomp1(bv1, bv1) returns (bv1); function {:extern} {:bvbuiltin "bvcomp"} bvcomp32(bv32, bv32) returns (bv1); -function {:extern} {:bvbuiltin "bvcomp"} bvcomp33(bv33, bv33) returns (bv1); -function {:extern} {:bvbuiltin "bvnot"} bvnot1(bv1) returns (bv1); function {:extern} gamma_load32(gammaMap: [bv64]bool, index: bv64) returns (bool) { (gammaMap[bvadd64(index, 3bv64)] && (gammaMap[bvadd64(index, 2bv64)] && (gammaMap[bvadd64(index, 1bv64)] && gammaMap[index]))) } +function {:extern} gamma_load64(gammaMap: [bv64]bool, index: bv64) returns (bool) { + (gammaMap[bvadd64(index, 7bv64)] && (gammaMap[bvadd64(index, 6bv64)] && (gammaMap[bvadd64(index, 5bv64)] && (gammaMap[bvadd64(index, 4bv64)] && (gammaMap[bvadd64(index, 3bv64)] && (gammaMap[bvadd64(index, 2bv64)] && (gammaMap[bvadd64(index, 1bv64)] && gammaMap[index]))))))) +} + function {:extern} gamma_store32(gammaMap: [bv64]bool, index: bv64, value: bool) returns ([bv64]bool) { gammaMap[index := value][bvadd64(index, 1bv64) := value][bvadd64(index, 2bv64) := value][bvadd64(index, 3bv64) := value] } @@ -51,18 +38,17 @@ function {:extern} memory_store32_le(memory: [bv64]bv8, index: bv64, value: bv32 memory[index := value[8:0]][bvadd64(index, 1bv64) := value[16:8]][bvadd64(index, 2bv64) := value[24:16]][bvadd64(index, 3bv64) := value[32:24]] } -function {:extern} {:bvbuiltin "sign_extend 1"} sign_extend1_32(bv32) returns (bv33); -function {:extern} {:bvbuiltin "zero_extend 1"} zero_extend1_32(bv32) returns (bv33); function {:extern} {:bvbuiltin "zero_extend 32"} zero_extend32_32(bv32) returns (bv64); procedure {:extern} rely(); modifies Gamma_mem, mem; ensures (Gamma_mem == old(Gamma_mem)); ensures (mem == old(mem)); - free ensures (memory_load32_le(mem, 1892bv64) == 131073bv32); - free ensures (memory_load64_le(mem, 69064bv64) == 1808bv64); - free ensures (memory_load64_le(mem, 69072bv64) == 1728bv64); - free ensures (memory_load64_le(mem, 69592bv64) == 1812bv64); - free ensures (memory_load64_le(mem, 69672bv64) == 69672bv64); + free ensures (memory_load32_le(mem, 2320bv64) == 131073bv32); + free ensures (memory_load64_le(mem, 130432bv64) == 2256bv64); + free ensures (memory_load64_le(mem, 130440bv64) == 2176bv64); + free ensures (memory_load64_le(mem, 131040bv64) == 131092bv64); + free ensures (memory_load64_le(mem, 131056bv64) == 2260bv64); + free ensures (memory_load64_le(mem, 131080bv64) == 131080bv64); procedure {:extern} rely_transitive(); modifies Gamma_mem, mem; @@ -80,96 +66,63 @@ procedure {:extern} rely_reflexive(); procedure {:extern} guarantee_reflexive(); modifies Gamma_mem, mem; -procedure main_1812(); - modifies CF, Gamma_CF, Gamma_NF, Gamma_R0, Gamma_R31, Gamma_R8, Gamma_R9, Gamma_VF, Gamma_ZF, Gamma_mem, Gamma_stack, NF, R0, R31, R8, R9, VF, ZF, mem, stack; - free requires (memory_load64_le(mem, 69664bv64) == 0bv64); - free requires (memory_load64_le(mem, 69672bv64) == 69672bv64); - free requires (memory_load32_le(mem, 1892bv64) == 131073bv32); - free requires (memory_load64_le(mem, 69064bv64) == 1808bv64); - free requires (memory_load64_le(mem, 69072bv64) == 1728bv64); - free requires (memory_load64_le(mem, 69592bv64) == 1812bv64); - free requires (memory_load64_le(mem, 69672bv64) == 69672bv64); - free ensures (Gamma_R31 == old(Gamma_R31)); - free ensures (R31 == old(R31)); - free ensures (memory_load32_le(mem, 1892bv64) == 131073bv32); - free ensures (memory_load64_le(mem, 69064bv64) == 1808bv64); - free ensures (memory_load64_le(mem, 69072bv64) == 1728bv64); - free ensures (memory_load64_le(mem, 69592bv64) == 1812bv64); - free ensures (memory_load64_le(mem, 69672bv64) == 69672bv64); +procedure main(); + modifies Gamma_R0, Gamma_R8, Gamma_R9, Gamma_mem, R0, R8, R9, mem; + free requires (memory_load64_le(mem, 131072bv64) == 0bv64); + free requires (memory_load64_le(mem, 131080bv64) == 131080bv64); + free requires (memory_load32_le(mem, 2320bv64) == 131073bv32); + free requires (memory_load64_le(mem, 130432bv64) == 2256bv64); + free requires (memory_load64_le(mem, 130440bv64) == 2176bv64); + free requires (memory_load64_le(mem, 131040bv64) == 131092bv64); + free requires (memory_load64_le(mem, 131056bv64) == 2260bv64); + free requires (memory_load64_le(mem, 131080bv64) == 131080bv64); + free ensures (memory_load32_le(mem, 2320bv64) == 131073bv32); + free ensures (memory_load64_le(mem, 130432bv64) == 2256bv64); + free ensures (memory_load64_le(mem, 130440bv64) == 2176bv64); + free ensures (memory_load64_le(mem, 131040bv64) == 131092bv64); + free ensures (memory_load64_le(mem, 131056bv64) == 2260bv64); + free ensures (memory_load64_le(mem, 131080bv64) == 131080bv64); -implementation main_1812() +implementation main() { - var #4: bv32; - var Gamma_#4: bool; - var Gamma_load18: bool; - var Gamma_load19: bool; - var load18: bv32; - var load19: bv32; + var $load$18: bv64; + var $load$19: bv32; + var Gamma_$load$18: bool; + var Gamma_$load$19: bool; lmain: assume {:captureState "lmain"} true; - R31, Gamma_R31 := bvadd64(R31, 18446744073709551600bv64), Gamma_R31; - stack, Gamma_stack := memory_store32_le(stack, bvadd64(R31, 12bv64), 0bv32), gamma_store32(Gamma_stack, bvadd64(R31, 12bv64), true); - assume {:captureState "%000002f1"} true; - R8, Gamma_R8 := 69632bv64, true; + R8, Gamma_R8 := 126976bv64, true; + call rely(); + $load$18, Gamma_$load$18 := memory_load64_le(mem, bvadd64(R8, 4064bv64)), (gamma_load64(Gamma_mem, bvadd64(R8, 4064bv64)) || L(mem, bvadd64(R8, 4064bv64))); + R8, Gamma_R8 := $load$18, Gamma_$load$18; call rely(); - load18, Gamma_load18 := memory_load32_le(mem, bvadd64(R8, 52bv64)), (gamma_load32(Gamma_mem, bvadd64(R8, 52bv64)) || L(mem, bvadd64(R8, 52bv64))); - R8, Gamma_R8 := zero_extend32_32(load18), Gamma_load18; - #4, Gamma_#4 := bvadd32(R8[32:0], 4294967295bv32), Gamma_R8; - VF, Gamma_VF := bvnot1(bvcomp33(sign_extend1_32(bvadd32(#4, 1bv32)), bvadd33(sign_extend1_32(R8[32:0]), 0bv33))), (Gamma_R8 && Gamma_#4); - CF, Gamma_CF := bvnot1(bvcomp33(zero_extend1_32(bvadd32(#4, 1bv32)), bvadd33(zero_extend1_32(R8[32:0]), 4294967296bv33))), (Gamma_R8 && Gamma_#4); - ZF, Gamma_ZF := bvcomp32(bvadd32(#4, 1bv32), 0bv32), Gamma_#4; - NF, Gamma_NF := bvadd32(#4, 1bv32)[32:31], Gamma_#4; - R8, Gamma_R8 := zero_extend32_32(bvadd32(#4, 1bv32)), Gamma_#4; - assert Gamma_ZF; - goto lmain_goto_l0000031e, lmain_goto_l00000321; - lmain_goto_l00000321: - assume {:captureState "lmain_goto_l00000321"} true; - assume (bvcomp1(ZF, 1bv1) == 0bv1); - R8, Gamma_R8 := 1bv64, true; - goto l00000321; - l00000321: - assume {:captureState "l00000321"} true; - goto l00000324; - lmain_goto_l0000031e: - assume {:captureState "lmain_goto_l0000031e"} true; - assume (bvcomp1(ZF, 1bv1) != 0bv1); - R8, Gamma_R8 := 0bv64, true; - goto l0000031e; - l0000031e: - assume {:captureState "l0000031e"} true; - goto l00000324; - l00000324: - assume {:captureState "l00000324"} true; - assert Gamma_R8; - goto l00000324_goto_l0000032c, l00000324_goto_l00000343; - l00000324_goto_l00000343: - assume {:captureState "l00000324_goto_l00000343"} true; - assume (bvcomp1(R8[1:0], 1bv1) == 0bv1); - goto l00000343; - l00000343: - assume {:captureState "l00000343"} true; - goto l00000344; - l00000344: - assume {:captureState "l00000344"} true; - R8, Gamma_R8 := 1bv64, true; - R9, Gamma_R9 := 69632bv64, true; + $load$19, Gamma_$load$19 := memory_load32_le(mem, R8), (gamma_load32(Gamma_mem, R8) || L(mem, R8)); + R9, Gamma_R9 := zero_extend32_32($load$19), Gamma_$load$19; + assert Gamma_R9; + goto lmain_goto_l0000028c, lmain_goto_l00000294; + l0000028c: + assume {:captureState "l0000028c"} true; + R9, Gamma_R9 := 1bv64, true; call rely(); - assert (L(mem, bvadd64(R9, 52bv64)) ==> Gamma_R8); - mem, Gamma_mem := memory_store32_le(mem, bvadd64(R9, 52bv64), R8[32:0]), gamma_store32(Gamma_mem, bvadd64(R9, 52bv64), Gamma_R8); - assume {:captureState "%00000357"} true; - goto l0000032c; - l00000324_goto_l0000032c: - assume {:captureState "l00000324_goto_l0000032c"} true; - assume (bvcomp1(R8[1:0], 1bv1) != 0bv1); - goto l0000032c; - l0000032c: - assume {:captureState "l0000032c"} true; - load19, Gamma_load19 := memory_load32_le(stack, bvadd64(R31, 12bv64)), gamma_load32(Gamma_stack, bvadd64(R31, 12bv64)); - R0, Gamma_R0 := zero_extend32_32(load19), Gamma_load19; - R31, Gamma_R31 := bvadd64(R31, 16bv64), Gamma_R31; - goto main_1812_basil_return; - main_1812_basil_return: - assume {:captureState "main_1812_basil_return"} true; + assert (L(mem, R8) ==> Gamma_R9); + mem, Gamma_mem := memory_store32_le(mem, R8, R9[32:0]), gamma_store32(Gamma_mem, R8, Gamma_R9); + assume {:captureState "%0000029c"} true; + R0, Gamma_R0 := 0bv64, true; + goto main_basil_return; + l00000294: + assume {:captureState "l00000294"} true; + R0, Gamma_R0 := 0bv64, true; + goto main_basil_return; + lmain_goto_l0000028c: + assume {:captureState "lmain_goto_l0000028c"} true; + assume (bvcomp32(R9[32:0], 0bv32) != 0bv1); + goto l0000028c; + lmain_goto_l00000294: + assume {:captureState "lmain_goto_l00000294"} true; + assume (bvcomp32(R9[32:0], 0bv32) == 0bv1); + goto l00000294; + main_basil_return: + assume {:captureState "main_basil_return"} true; return; } diff --git a/src/test/correct/ifglobal/clang/ifglobal.gts b/src/test/correct/ifglobal/clang/ifglobal.gts deleted file mode 100644 index d165fe36a..000000000 Binary files a/src/test/correct/ifglobal/clang/ifglobal.gts and /dev/null differ diff --git a/src/test/correct/ifglobal/clang/ifglobal.md5sum b/src/test/correct/ifglobal/clang/ifglobal.md5sum new file mode 100644 index 000000000..5a169267c --- /dev/null +++ b/src/test/correct/ifglobal/clang/ifglobal.md5sum @@ -0,0 +1,5 @@ +ac40daa303b5cbd67c5f9606ed3dd679 correct/ifglobal/clang/a.out +167cbd92df82be494a564dd8372b45ee correct/ifglobal/clang/ifglobal.adt +c466cea75df9c9c69526848e971f6b87 correct/ifglobal/clang/ifglobal.bir +07cc8961113e18109ade484f077e00f4 correct/ifglobal/clang/ifglobal.relf +a49f471a4bf0337420a2e86b9283001b correct/ifglobal/clang/ifglobal.gts diff --git a/src/test/correct/ifglobal/clang/ifglobal.relf b/src/test/correct/ifglobal/clang/ifglobal.relf deleted file mode 100644 index 9dc897384..000000000 --- a/src/test/correct/ifglobal/clang/ifglobal.relf +++ /dev/null @@ -1,123 +0,0 @@ - -Relocation section '.rela.dyn' at offset 0x460 contains 8 entries: - Offset Info Type Symbol's Value Symbol's Name + Addend -0000000000010dc8 0000000000000403 R_AARCH64_RELATIVE 710 -0000000000010dd0 0000000000000403 R_AARCH64_RELATIVE 6c0 -0000000000010fd8 0000000000000403 R_AARCH64_RELATIVE 714 -0000000000011028 0000000000000403 R_AARCH64_RELATIVE 11028 -0000000000010fc0 0000000400000401 R_AARCH64_GLOB_DAT 0000000000000000 _ITM_deregisterTMCloneTable + 0 -0000000000010fc8 0000000500000401 R_AARCH64_GLOB_DAT 0000000000000000 __cxa_finalize@GLIBC_2.17 + 0 -0000000000010fd0 0000000600000401 R_AARCH64_GLOB_DAT 0000000000000000 __gmon_start__ + 0 -0000000000010fe0 0000000800000401 R_AARCH64_GLOB_DAT 0000000000000000 _ITM_registerTMCloneTable + 0 - -Relocation section '.rela.plt' at offset 0x520 contains 4 entries: - Offset Info Type Symbol's Value Symbol's Name + Addend -0000000000011000 0000000300000402 R_AARCH64_JUMP_SLOT 0000000000000000 __libc_start_main@GLIBC_2.34 + 0 -0000000000011008 0000000500000402 R_AARCH64_JUMP_SLOT 0000000000000000 __cxa_finalize@GLIBC_2.17 + 0 -0000000000011010 0000000600000402 R_AARCH64_JUMP_SLOT 0000000000000000 __gmon_start__ + 0 -0000000000011018 0000000700000402 R_AARCH64_JUMP_SLOT 0000000000000000 abort@GLIBC_2.17 + 0 - -Symbol table '.dynsym' contains 9 entries: - Num: Value Size Type Bind Vis Ndx Name - 0: 0000000000000000 0 NOTYPE LOCAL DEFAULT UND - 1: 0000000000000580 0 SECTION LOCAL DEFAULT 11 .init - 2: 0000000000011020 0 SECTION LOCAL DEFAULT 23 .data - 3: 0000000000000000 0 FUNC GLOBAL DEFAULT UND __libc_start_main@GLIBC_2.34 (2) - 4: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_deregisterTMCloneTable - 5: 0000000000000000 0 FUNC WEAK DEFAULT UND __cxa_finalize@GLIBC_2.17 (3) - 6: 0000000000000000 0 NOTYPE WEAK DEFAULT UND __gmon_start__ - 7: 0000000000000000 0 FUNC GLOBAL DEFAULT UND abort@GLIBC_2.17 (3) - 8: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_registerTMCloneTable - -Symbol table '.symtab' contains 90 entries: - Num: Value Size Type Bind Vis Ndx Name - 0: 0000000000000000 0 NOTYPE LOCAL DEFAULT UND - 1: 0000000000000238 0 SECTION LOCAL DEFAULT 1 .interp - 2: 0000000000000254 0 SECTION LOCAL DEFAULT 2 .note.gnu.build-id - 3: 0000000000000278 0 SECTION LOCAL DEFAULT 3 .note.ABI-tag - 4: 0000000000000298 0 SECTION LOCAL DEFAULT 4 .gnu.hash - 5: 00000000000002b8 0 SECTION LOCAL DEFAULT 5 .dynsym - 6: 0000000000000390 0 SECTION LOCAL DEFAULT 6 .dynstr - 7: 000000000000041e 0 SECTION LOCAL DEFAULT 7 .gnu.version - 8: 0000000000000430 0 SECTION LOCAL DEFAULT 8 .gnu.version_r - 9: 0000000000000460 0 SECTION LOCAL DEFAULT 9 .rela.dyn - 10: 0000000000000520 0 SECTION LOCAL DEFAULT 10 .rela.plt - 11: 0000000000000580 0 SECTION LOCAL DEFAULT 11 .init - 12: 00000000000005a0 0 SECTION LOCAL DEFAULT 12 .plt - 13: 0000000000000600 0 SECTION LOCAL DEFAULT 13 .text - 14: 0000000000000750 0 SECTION LOCAL DEFAULT 14 .fini - 15: 0000000000000764 0 SECTION LOCAL DEFAULT 15 .rodata - 16: 0000000000000768 0 SECTION LOCAL DEFAULT 16 .eh_frame_hdr - 17: 00000000000007a8 0 SECTION LOCAL DEFAULT 17 .eh_frame - 18: 0000000000010dc8 0 SECTION LOCAL DEFAULT 18 .init_array - 19: 0000000000010dd0 0 SECTION LOCAL DEFAULT 19 .fini_array - 20: 0000000000010dd8 0 SECTION LOCAL DEFAULT 20 .dynamic - 21: 0000000000010fb8 0 SECTION LOCAL DEFAULT 21 .got - 22: 0000000000010fe8 0 SECTION LOCAL DEFAULT 22 .got.plt - 23: 0000000000011020 0 SECTION LOCAL DEFAULT 23 .data - 24: 0000000000011030 0 SECTION LOCAL DEFAULT 24 .bss - 25: 0000000000000000 0 SECTION LOCAL DEFAULT 25 .comment - 26: 0000000000000000 0 FILE LOCAL DEFAULT ABS Scrt1.o - 27: 0000000000000278 0 NOTYPE LOCAL DEFAULT 3 $d - 28: 0000000000000278 32 OBJECT LOCAL DEFAULT 3 __abi_tag - 29: 0000000000000600 0 NOTYPE LOCAL DEFAULT 13 $x - 30: 00000000000007bc 0 NOTYPE LOCAL DEFAULT 17 $d - 31: 0000000000000764 0 NOTYPE LOCAL DEFAULT 15 $d - 32: 0000000000000000 0 FILE LOCAL DEFAULT ABS crti.o - 33: 0000000000000634 0 NOTYPE LOCAL DEFAULT 13 $x - 34: 0000000000000634 20 FUNC LOCAL DEFAULT 13 call_weak_fn - 35: 0000000000000580 0 NOTYPE LOCAL DEFAULT 11 $x - 36: 0000000000000750 0 NOTYPE LOCAL DEFAULT 14 $x - 37: 0000000000000000 0 FILE LOCAL DEFAULT ABS crtn.o - 38: 0000000000000590 0 NOTYPE LOCAL DEFAULT 11 $x - 39: 000000000000075c 0 NOTYPE LOCAL DEFAULT 14 $x - 40: 0000000000000000 0 FILE LOCAL DEFAULT ABS crtstuff.c - 41: 0000000000000650 0 NOTYPE LOCAL DEFAULT 13 $x - 42: 0000000000000650 0 FUNC LOCAL DEFAULT 13 deregister_tm_clones - 43: 0000000000000680 0 FUNC LOCAL DEFAULT 13 register_tm_clones - 44: 0000000000011028 0 NOTYPE LOCAL DEFAULT 23 $d - 45: 00000000000006c0 0 FUNC LOCAL DEFAULT 13 __do_global_dtors_aux - 46: 0000000000011030 1 OBJECT LOCAL DEFAULT 24 completed.0 - 47: 0000000000010dd0 0 NOTYPE LOCAL DEFAULT 19 $d - 48: 0000000000010dd0 0 OBJECT LOCAL DEFAULT 19 __do_global_dtors_aux_fini_array_entry - 49: 0000000000000710 0 FUNC LOCAL DEFAULT 13 frame_dummy - 50: 0000000000010dc8 0 NOTYPE LOCAL DEFAULT 18 $d - 51: 0000000000010dc8 0 OBJECT LOCAL DEFAULT 18 __frame_dummy_init_array_entry - 52: 00000000000007d0 0 NOTYPE LOCAL DEFAULT 17 $d - 53: 0000000000011030 0 NOTYPE LOCAL DEFAULT 24 $d - 54: 0000000000000000 0 FILE LOCAL DEFAULT ABS ifglobal.c - 55: 0000000000000714 0 NOTYPE LOCAL DEFAULT 13 $x.0 - 56: 0000000000011034 0 NOTYPE LOCAL DEFAULT 24 $d.1 - 57: 000000000000002a 0 NOTYPE LOCAL DEFAULT 25 $d.2 - 58: 0000000000000830 0 NOTYPE LOCAL DEFAULT 17 $d.3 - 59: 0000000000000000 0 FILE LOCAL DEFAULT ABS crtstuff.c - 60: 000000000000085c 0 NOTYPE LOCAL DEFAULT 17 $d - 61: 000000000000085c 0 OBJECT LOCAL DEFAULT 17 __FRAME_END__ - 62: 0000000000000000 0 FILE LOCAL DEFAULT ABS - 63: 0000000000010dd8 0 OBJECT LOCAL DEFAULT ABS _DYNAMIC - 64: 0000000000000768 0 NOTYPE LOCAL DEFAULT 16 __GNU_EH_FRAME_HDR - 65: 0000000000010fb8 0 OBJECT LOCAL DEFAULT ABS _GLOBAL_OFFSET_TABLE_ - 66: 00000000000005a0 0 NOTYPE LOCAL DEFAULT 12 $x - 67: 0000000000000000 0 FUNC GLOBAL DEFAULT UND __libc_start_main@GLIBC_2.34 - 68: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_deregisterTMCloneTable - 69: 0000000000011020 0 NOTYPE WEAK DEFAULT 23 data_start - 70: 0000000000011030 0 NOTYPE GLOBAL DEFAULT 24 __bss_start__ - 71: 0000000000000000 0 FUNC WEAK DEFAULT UND __cxa_finalize@GLIBC_2.17 - 72: 0000000000011038 0 NOTYPE GLOBAL DEFAULT 24 _bss_end__ - 73: 0000000000011030 0 NOTYPE GLOBAL DEFAULT 23 _edata - 74: 0000000000011034 4 OBJECT GLOBAL DEFAULT 24 x - 75: 0000000000000750 0 FUNC GLOBAL HIDDEN 14 _fini - 76: 0000000000011038 0 NOTYPE GLOBAL DEFAULT 24 __bss_end__ - 77: 0000000000011020 0 NOTYPE GLOBAL DEFAULT 23 __data_start - 78: 0000000000000000 0 NOTYPE WEAK DEFAULT UND __gmon_start__ - 79: 0000000000011028 0 OBJECT GLOBAL HIDDEN 23 __dso_handle - 80: 0000000000000000 0 FUNC GLOBAL DEFAULT UND abort@GLIBC_2.17 - 81: 0000000000000764 4 OBJECT GLOBAL DEFAULT 15 _IO_stdin_used - 82: 0000000000011038 0 NOTYPE GLOBAL DEFAULT 24 _end - 83: 0000000000000600 52 FUNC GLOBAL DEFAULT 13 _start - 84: 0000000000011038 0 NOTYPE GLOBAL DEFAULT 24 __end__ - 85: 0000000000011030 0 NOTYPE GLOBAL DEFAULT 24 __bss_start - 86: 0000000000000714 60 FUNC GLOBAL DEFAULT 13 main - 87: 0000000000011030 0 OBJECT GLOBAL HIDDEN 23 __TMC_END__ - 88: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_registerTMCloneTable - 89: 0000000000000580 0 FUNC GLOBAL HIDDEN 11 _init diff --git a/src/test/correct/ifglobal/clang/ifglobal_gtirb.expected b/src/test/correct/ifglobal/clang/ifglobal_gtirb.expected index eef8440b5..e506d7a3b 100644 --- a/src/test/correct/ifglobal/clang/ifglobal_gtirb.expected +++ b/src/test/correct/ifglobal/clang/ifglobal_gtirb.expected @@ -1,39 +1,26 @@ -var {:extern} CF: bv1; -var {:extern} Gamma_CF: bool; -var {:extern} Gamma_NF: bool; var {:extern} Gamma_R0: bool; -var {:extern} Gamma_R31: bool; var {:extern} Gamma_R8: bool; var {:extern} Gamma_R9: bool; -var {:extern} Gamma_VF: bool; -var {:extern} Gamma_ZF: bool; var {:extern} Gamma_mem: [bv64]bool; -var {:extern} Gamma_stack: [bv64]bool; -var {:extern} NF: bv1; var {:extern} R0: bv64; -var {:extern} R31: bv64; var {:extern} R8: bv64; var {:extern} R9: bv64; -var {:extern} VF: bv1; -var {:extern} ZF: bv1; var {:extern} mem: [bv64]bv8; -var {:extern} stack: [bv64]bv8; const {:extern} $x_addr: bv64; -axiom ($x_addr == 69684bv64); +axiom ($x_addr == 131092bv64); function {:extern} L(mem$in: [bv64]bv8, index: bv64) returns (bool) { (if (index == $x_addr) then true else false) } -function {:extern} {:bvbuiltin "bvadd"} bvadd32(bv32, bv32) returns (bv32); -function {:extern} {:bvbuiltin "bvadd"} bvadd33(bv33, bv33) returns (bv33); function {:extern} {:bvbuiltin "bvadd"} bvadd64(bv64, bv64) returns (bv64); -function {:extern} {:bvbuiltin "bvcomp"} bvcomp32(bv32, bv32) returns (bv1); -function {:extern} {:bvbuiltin "bvcomp"} bvcomp33(bv33, bv33) returns (bv1); -function {:extern} {:bvbuiltin "bvnot"} bvnot1(bv1) returns (bv1); function {:extern} gamma_load32(gammaMap: [bv64]bool, index: bv64) returns (bool) { (gammaMap[bvadd64(index, 3bv64)] && (gammaMap[bvadd64(index, 2bv64)] && (gammaMap[bvadd64(index, 1bv64)] && gammaMap[index]))) } +function {:extern} gamma_load64(gammaMap: [bv64]bool, index: bv64) returns (bool) { + (gammaMap[bvadd64(index, 7bv64)] && (gammaMap[bvadd64(index, 6bv64)] && (gammaMap[bvadd64(index, 5bv64)] && (gammaMap[bvadd64(index, 4bv64)] && (gammaMap[bvadd64(index, 3bv64)] && (gammaMap[bvadd64(index, 2bv64)] && (gammaMap[bvadd64(index, 1bv64)] && gammaMap[index]))))))) +} + function {:extern} gamma_store32(gammaMap: [bv64]bool, index: bv64, value: bool) returns ([bv64]bool) { gammaMap[index := value][bvadd64(index, 1bv64) := value][bvadd64(index, 2bv64) := value][bvadd64(index, 3bv64) := value] } @@ -50,17 +37,17 @@ function {:extern} memory_store32_le(memory: [bv64]bv8, index: bv64, value: bv32 memory[index := value[8:0]][bvadd64(index, 1bv64) := value[16:8]][bvadd64(index, 2bv64) := value[24:16]][bvadd64(index, 3bv64) := value[32:24]] } -function {:extern} {:bvbuiltin "zero_extend 1"} zero_extend1_32(bv32) returns (bv33); function {:extern} {:bvbuiltin "zero_extend 32"} zero_extend32_32(bv32) returns (bv64); procedure {:extern} rely(); modifies Gamma_mem, mem; ensures (Gamma_mem == old(Gamma_mem)); ensures (mem == old(mem)); - free ensures (memory_load32_le(mem, 1892bv64) == 131073bv32); - free ensures (memory_load64_le(mem, 69064bv64) == 1808bv64); - free ensures (memory_load64_le(mem, 69072bv64) == 1728bv64); - free ensures (memory_load64_le(mem, 69592bv64) == 1812bv64); - free ensures (memory_load64_le(mem, 69672bv64) == 69672bv64); + free ensures (memory_load32_le(mem, 2320bv64) == 131073bv32); + free ensures (memory_load64_le(mem, 130432bv64) == 2256bv64); + free ensures (memory_load64_le(mem, 130440bv64) == 2176bv64); + free ensures (memory_load64_le(mem, 131040bv64) == 131092bv64); + free ensures (memory_load64_le(mem, 131056bv64) == 2260bv64); + free ensures (memory_load64_le(mem, 131080bv64) == 131080bv64); procedure {:extern} rely_transitive(); modifies Gamma_mem, mem; @@ -78,88 +65,63 @@ procedure {:extern} rely_reflexive(); procedure {:extern} guarantee_reflexive(); modifies Gamma_mem, mem; -procedure main_1812(); - modifies CF, Gamma_CF, Gamma_NF, Gamma_R0, Gamma_R31, Gamma_R8, Gamma_R9, Gamma_VF, Gamma_ZF, Gamma_mem, Gamma_stack, NF, R0, R31, R8, R9, VF, ZF, mem, stack; - free requires (memory_load64_le(mem, 69664bv64) == 0bv64); - free requires (memory_load64_le(mem, 69672bv64) == 69672bv64); - free requires (memory_load32_le(mem, 1892bv64) == 131073bv32); - free requires (memory_load64_le(mem, 69064bv64) == 1808bv64); - free requires (memory_load64_le(mem, 69072bv64) == 1728bv64); - free requires (memory_load64_le(mem, 69592bv64) == 1812bv64); - free requires (memory_load64_le(mem, 69672bv64) == 69672bv64); - free ensures (Gamma_R31 == old(Gamma_R31)); - free ensures (R31 == old(R31)); - free ensures (memory_load32_le(mem, 1892bv64) == 131073bv32); - free ensures (memory_load64_le(mem, 69064bv64) == 1808bv64); - free ensures (memory_load64_le(mem, 69072bv64) == 1728bv64); - free ensures (memory_load64_le(mem, 69592bv64) == 1812bv64); - free ensures (memory_load64_le(mem, 69672bv64) == 69672bv64); +procedure main(); + modifies Gamma_R0, Gamma_R8, Gamma_R9, Gamma_mem, R0, R8, R9, mem; + free requires (memory_load64_le(mem, 131072bv64) == 0bv64); + free requires (memory_load64_le(mem, 131080bv64) == 131080bv64); + free requires (memory_load32_le(mem, 2320bv64) == 131073bv32); + free requires (memory_load64_le(mem, 130432bv64) == 2256bv64); + free requires (memory_load64_le(mem, 130440bv64) == 2176bv64); + free requires (memory_load64_le(mem, 131040bv64) == 131092bv64); + free requires (memory_load64_le(mem, 131056bv64) == 2260bv64); + free requires (memory_load64_le(mem, 131080bv64) == 131080bv64); + free ensures (memory_load32_le(mem, 2320bv64) == 131073bv32); + free ensures (memory_load64_le(mem, 130432bv64) == 2256bv64); + free ensures (memory_load64_le(mem, 130440bv64) == 2176bv64); + free ensures (memory_load64_le(mem, 131040bv64) == 131092bv64); + free ensures (memory_load64_le(mem, 131056bv64) == 2260bv64); + free ensures (memory_load64_le(mem, 131080bv64) == 131080bv64); -implementation main_1812() +implementation main() { - var Cse0__5_3_4: bv32; - var Gamma_Cse0__5_3_4: bool; - var Gamma_load15: bool; - var Gamma_load16: bool; - var load15: bv32; - var load16: bv32; - main_1812__0__9GnbAUc4SVKU3B~gw6CarA: - assume {:captureState "main_1812__0__9GnbAUc4SVKU3B~gw6CarA"} true; - R31, Gamma_R31 := bvadd64(R31, 18446744073709551600bv64), Gamma_R31; - stack, Gamma_stack := memory_store32_le(stack, bvadd64(R31, 12bv64), 0bv32), gamma_store32(Gamma_stack, bvadd64(R31, 12bv64), true); - assume {:captureState "1816_0"} true; - R8, Gamma_R8 := 69632bv64, true; + var $load1: bv64; + var $load2: bv32; + var Gamma_$load1: bool; + var Gamma_$load2: bool; + $main$__0__$IkNYmV06TxC75h8A4NM3wA: + assume {:captureState "$main$__0__$IkNYmV06TxC75h8A4NM3wA"} true; + R8, Gamma_R8 := 126976bv64, true; + call rely(); + $load1, Gamma_$load1 := memory_load64_le(mem, bvadd64(R8, 4064bv64)), (gamma_load64(Gamma_mem, bvadd64(R8, 4064bv64)) || L(mem, bvadd64(R8, 4064bv64))); + R8, Gamma_R8 := $load1, Gamma_$load1; call rely(); - load16, Gamma_load16 := memory_load32_le(mem, bvadd64(R8, 52bv64)), (gamma_load32(Gamma_mem, bvadd64(R8, 52bv64)) || L(mem, bvadd64(R8, 52bv64))); - R8, Gamma_R8 := zero_extend32_32(load16), Gamma_load16; - Cse0__5_3_4, Gamma_Cse0__5_3_4 := bvadd32(R8[32:0], 0bv32), Gamma_R8; - VF, Gamma_VF := bvnot1(bvcomp32(Cse0__5_3_4, Cse0__5_3_4)), Gamma_Cse0__5_3_4; - CF, Gamma_CF := bvnot1(bvcomp33(zero_extend1_32(Cse0__5_3_4), bvadd33(zero_extend1_32(R8[32:0]), 4294967296bv33))), (Gamma_R8 && Gamma_Cse0__5_3_4); - ZF, Gamma_ZF := bvcomp32(Cse0__5_3_4, 0bv32), Gamma_Cse0__5_3_4; - NF, Gamma_NF := Cse0__5_3_4[32:31], Gamma_Cse0__5_3_4; - R8, Gamma_R8 := zero_extend32_32(Cse0__5_3_4), Gamma_Cse0__5_3_4; - assert Gamma_ZF; - goto main_1812__0__9GnbAUc4SVKU3B~gw6CarA$__0, main_1812__0__9GnbAUc4SVKU3B~gw6CarA$__1; - main_1812__0__9GnbAUc4SVKU3B~gw6CarA$__1: - assume {:captureState "main_1812__0__9GnbAUc4SVKU3B~gw6CarA$__1"} true; - assume (!(ZF == 1bv1)); - R8, Gamma_R8 := 1bv64, true; - assert Gamma_R8; - goto main_1812__0__9GnbAUc4SVKU3B~gw6CarA_goto_main_1812__3__mmRv3GP5SPy6AaIRmLInPw, main_1812__0__9GnbAUc4SVKU3B~gw6CarA_goto_main_1812__1__7rAM9J5nQI6xBaKIEerTtg; - main_1812__0__9GnbAUc4SVKU3B~gw6CarA$__0: - assume {:captureState "main_1812__0__9GnbAUc4SVKU3B~gw6CarA$__0"} true; - assume (ZF == 1bv1); - R8, Gamma_R8 := 0bv64, true; - assert Gamma_R8; - goto main_1812__0__9GnbAUc4SVKU3B~gw6CarA_goto_main_1812__3__mmRv3GP5SPy6AaIRmLInPw, main_1812__0__9GnbAUc4SVKU3B~gw6CarA_goto_main_1812__1__7rAM9J5nQI6xBaKIEerTtg; - main_1812__0__9GnbAUc4SVKU3B~gw6CarA_goto_main_1812__1__7rAM9J5nQI6xBaKIEerTtg: - assume {:captureState "main_1812__0__9GnbAUc4SVKU3B~gw6CarA_goto_main_1812__1__7rAM9J5nQI6xBaKIEerTtg"} true; - assume (!(R8[1:0] == 1bv1)); - goto main_1812__1__7rAM9J5nQI6xBaKIEerTtg; - main_1812__1__7rAM9J5nQI6xBaKIEerTtg: - assume {:captureState "main_1812__1__7rAM9J5nQI6xBaKIEerTtg"} true; - goto main_1812__2__mbLAJH9oTJ~vni0HqhGvhg; - main_1812__2__mbLAJH9oTJ~vni0HqhGvhg: - assume {:captureState "main_1812__2__mbLAJH9oTJ~vni0HqhGvhg"} true; - R8, Gamma_R8 := 1bv64, true; - R9, Gamma_R9 := 69632bv64, true; + $load2, Gamma_$load2 := memory_load32_le(mem, R8), (gamma_load32(Gamma_mem, R8) || L(mem, R8)); + R9, Gamma_R9 := zero_extend32_32($load2), Gamma_$load2; + assert Gamma_R9; + goto $main$__0__$IkNYmV06TxC75h8A4NM3wA_goto_$main$__2__$lwyID0MJQb6vgyjzPFtz8Q, $main$__0__$IkNYmV06TxC75h8A4NM3wA_goto_$main$__1__$D9t2gNJrSmyMH3GAVRe3IQ; + $main$__1__$D9t2gNJrSmyMH3GAVRe3IQ: + assume {:captureState "$main$__1__$D9t2gNJrSmyMH3GAVRe3IQ"} true; + R0, Gamma_R0 := 0bv64, true; + goto main_basil_return; + $main$__2__$lwyID0MJQb6vgyjzPFtz8Q: + assume {:captureState "$main$__2__$lwyID0MJQb6vgyjzPFtz8Q"} true; + R9, Gamma_R9 := 1bv64, true; call rely(); - assert (L(mem, bvadd64(R9, 52bv64)) ==> Gamma_R8); - mem, Gamma_mem := memory_store32_le(mem, bvadd64(R9, 52bv64), R8[32:0]), gamma_store32(Gamma_mem, bvadd64(R9, 52bv64), Gamma_R8); - assume {:captureState "1852_0"} true; - goto main_1812__3__mmRv3GP5SPy6AaIRmLInPw; - main_1812__0__9GnbAUc4SVKU3B~gw6CarA_goto_main_1812__3__mmRv3GP5SPy6AaIRmLInPw: - assume {:captureState "main_1812__0__9GnbAUc4SVKU3B~gw6CarA_goto_main_1812__3__mmRv3GP5SPy6AaIRmLInPw"} true; - assume (R8[1:0] == 1bv1); - goto main_1812__3__mmRv3GP5SPy6AaIRmLInPw; - main_1812__3__mmRv3GP5SPy6AaIRmLInPw: - assume {:captureState "main_1812__3__mmRv3GP5SPy6AaIRmLInPw"} true; - load15, Gamma_load15 := memory_load32_le(stack, bvadd64(R31, 12bv64)), gamma_load32(Gamma_stack, bvadd64(R31, 12bv64)); - R0, Gamma_R0 := zero_extend32_32(load15), Gamma_load15; - R31, Gamma_R31 := bvadd64(R31, 16bv64), Gamma_R31; - goto main_1812_basil_return; - main_1812_basil_return: - assume {:captureState "main_1812_basil_return"} true; + assert (L(mem, R8) ==> Gamma_R9); + mem, Gamma_mem := memory_store32_le(mem, R8, R9[32:0]), gamma_store32(Gamma_mem, R8, Gamma_R9); + assume {:captureState "2288$0"} true; + R0, Gamma_R0 := 0bv64, true; + goto main_basil_return; + $main$__0__$IkNYmV06TxC75h8A4NM3wA_goto_$main$__2__$lwyID0MJQb6vgyjzPFtz8Q: + assume {:captureState "$main$__0__$IkNYmV06TxC75h8A4NM3wA_goto_$main$__2__$lwyID0MJQb6vgyjzPFtz8Q"} true; + assume (R9[32:0] == 0bv32); + goto $main$__2__$lwyID0MJQb6vgyjzPFtz8Q; + $main$__0__$IkNYmV06TxC75h8A4NM3wA_goto_$main$__1__$D9t2gNJrSmyMH3GAVRe3IQ: + assume {:captureState "$main$__0__$IkNYmV06TxC75h8A4NM3wA_goto_$main$__1__$D9t2gNJrSmyMH3GAVRe3IQ"} true; + assume (!(R9[32:0] == 0bv32)); + goto $main$__1__$D9t2gNJrSmyMH3GAVRe3IQ; + main_basil_return: + assume {:captureState "main_basil_return"} true; return; } diff --git a/src/test/correct/ifglobal/clang_O2/ifglobal.adt b/src/test/correct/ifglobal/clang_O2/ifglobal.adt deleted file mode 100644 index 39aa969b6..000000000 --- a/src/test/correct/ifglobal/clang_O2/ifglobal.adt +++ /dev/null @@ -1,505 +0,0 @@ -Project(Attrs([Attr("filename","\"clang_O2/ifglobal.out\""), -Attr("image-specification","(declare abi (name str))\n(declare arch (name str))\n(declare base-address (addr int))\n(declare bias (off int))\n(declare bits (size int))\n(declare code-region (addr int) (size int) (off int))\n(declare code-start (addr int))\n(declare entry-point (addr int))\n(declare external-reference (addr int) (name str))\n(declare format (name str))\n(declare is-executable (flag bool))\n(declare is-little-endian (flag bool))\n(declare llvm:base-address (addr int))\n(declare llvm:code-entry (name str) (off int) (size int))\n(declare llvm:coff-import-library (name str))\n(declare llvm:coff-virtual-section-header (name str) (addr int) (size int))\n(declare llvm:elf-program-header (name str) (off int) (size int))\n(declare llvm:elf-program-header-flags (name str) (ld bool) (r bool) \n (w bool) (x bool))\n(declare llvm:elf-virtual-program-header (name str) (addr int) (size int))\n(declare llvm:entry-point (addr int))\n(declare llvm:macho-symbol (name str) (value int))\n(declare llvm:name-reference (at int) (name str))\n(declare llvm:relocation (at int) (addr int))\n(declare llvm:section-entry (name str) (addr int) (size int) (off int))\n(declare llvm:section-flags (name str) (r bool) (w bool) (x bool))\n(declare llvm:segment-command (name str) (off int) (size int))\n(declare llvm:segment-command-flags (name str) (r bool) (w bool) (x bool))\n(declare llvm:symbol-entry (name str) (addr int) (size int) (off int)\n (value int))\n(declare llvm:virtual-segment-command (name str) (addr int) (size int))\n(declare mapped (addr int) (size int) (off int))\n(declare named-region (addr int) (size int) (name str))\n(declare named-symbol (addr int) (name str))\n(declare require (name str))\n(declare section (addr int) (size int))\n(declare segment (addr int) (size int) (r bool) (w bool) (x bool))\n(declare subarch (name str))\n(declare symbol-chunk (addr int) (size int) (root int))\n(declare symbol-value (addr int) (value int))\n(declare system (name str))\n(declare vendor (name str))\n\n(abi unknown)\n(arch aarch64)\n(base-address 0)\n(bias 0)\n(bits 64)\n(code-region 1848 20 1848)\n(code-region 1536 312 1536)\n(code-region 1440 96 1440)\n(code-region 1408 24 1408)\n(code-start 1588)\n(code-start 1536)\n(code-start 1812)\n(entry-point 1536)\n(external-reference 69568 _ITM_deregisterTMCloneTable)\n(external-reference 69576 __cxa_finalize)\n(external-reference 69584 __gmon_start__)\n(external-reference 69600 _ITM_registerTMCloneTable)\n(external-reference 69632 __libc_start_main)\n(external-reference 69640 __cxa_finalize)\n(external-reference 69648 __gmon_start__)\n(external-reference 69656 abort)\n(format elf)\n(is-executable true)\n(is-little-endian true)\n(llvm:base-address 0)\n(llvm:code-entry abort 0 0)\n(llvm:code-entry __cxa_finalize 0 0)\n(llvm:code-entry __libc_start_main 0 0)\n(llvm:code-entry _init 1408 0)\n(llvm:code-entry main 1812 36)\n(llvm:code-entry _start 1536 52)\n(llvm:code-entry abort@GLIBC_2.17 0 0)\n(llvm:code-entry _fini 1848 0)\n(llvm:code-entry __cxa_finalize@GLIBC_2.17 0 0)\n(llvm:code-entry __libc_start_main@GLIBC_2.34 0 0)\n(llvm:code-entry frame_dummy 1808 0)\n(llvm:code-entry __do_global_dtors_aux 1728 0)\n(llvm:code-entry register_tm_clones 1664 0)\n(llvm:code-entry deregister_tm_clones 1616 0)\n(llvm:code-entry call_weak_fn 1588 20)\n(llvm:code-entry .fini 1848 20)\n(llvm:code-entry .text 1536 312)\n(llvm:code-entry .plt 1440 96)\n(llvm:code-entry .init 1408 24)\n(llvm:elf-program-header 08 3528 568)\n(llvm:elf-program-header 07 0 0)\n(llvm:elf-program-header 06 1872 60)\n(llvm:elf-program-header 05 596 68)\n(llvm:elf-program-header 04 3544 480)\n(llvm:elf-program-header 03 3528 616)\n(llvm:elf-program-header 02 0 2116)\n(llvm:elf-program-header 01 568 27)\n(llvm:elf-program-header 00 64 504)\n(llvm:elf-program-header-flags 08 false true false false)\n(llvm:elf-program-header-flags 07 false true true false)\n(llvm:elf-program-header-flags 06 false true false false)\n(llvm:elf-program-header-flags 05 false true false false)\n(llvm:elf-program-header-flags 04 false true true false)\n(llvm:elf-program-header-flags 03 true true true false)\n(llvm:elf-program-header-flags 02 true true false true)\n(llvm:elf-program-header-flags 01 false true false false)\n(llvm:elf-program-header-flags 00 false true false false)\n(llvm:elf-virtual-program-header 08 69064 568)\n(llvm:elf-virtual-program-header 07 0 0)\n(llvm:elf-virtual-program-header 06 1872 60)\n(llvm:elf-virtual-program-header 05 596 68)\n(llvm:elf-virtual-program-header 04 69080 480)\n(llvm:elf-virtual-program-header 03 69064 624)\n(llvm:elf-virtual-program-header 02 0 2116)\n(llvm:elf-virtual-program-header 01 568 27)\n(llvm:elf-virtual-program-header 00 64 504)\n(llvm:entry-point 1536)\n(llvm:name-reference 69656 abort)\n(llvm:name-reference 69648 __gmon_start__)\n(llvm:name-reference 69640 __cxa_finalize)\n(llvm:name-reference 69632 __libc_start_main)\n(llvm:name-reference 69600 _ITM_registerTMCloneTable)\n(llvm:name-reference 69584 __gmon_start__)\n(llvm:name-reference 69576 __cxa_finalize)\n(llvm:name-reference 69568 _ITM_deregisterTMCloneTable)\n(llvm:section-entry .shstrtab 0 259 6940)\n(llvm:section-entry .strtab 0 564 6376)\n(llvm:section-entry .symtab 0 2160 4216)\n(llvm:section-entry .comment 0 71 4144)\n(llvm:section-entry .bss 69680 8 4144)\n(llvm:section-entry .data 69664 16 4128)\n(llvm:section-entry .got.plt 69608 56 4072)\n(llvm:section-entry .got 69560 48 4024)\n(llvm:section-entry .dynamic 69080 480 3544)\n(llvm:section-entry .fini_array 69072 8 3536)\n(llvm:section-entry .init_array 69064 8 3528)\n(llvm:section-entry .eh_frame 1936 180 1936)\n(llvm:section-entry .eh_frame_hdr 1872 60 1872)\n(llvm:section-entry .rodata 1868 4 1868)\n(llvm:section-entry .fini 1848 20 1848)\n(llvm:section-entry .text 1536 312 1536)\n(llvm:section-entry .plt 1440 96 1440)\n(llvm:section-entry .init 1408 24 1408)\n(llvm:section-entry .rela.plt 1312 96 1312)\n(llvm:section-entry .rela.dyn 1120 192 1120)\n(llvm:section-entry .gnu.version_r 1072 48 1072)\n(llvm:section-entry .gnu.version 1054 18 1054)\n(llvm:section-entry .dynstr 912 141 912)\n(llvm:section-entry .dynsym 696 216 696)\n(llvm:section-entry .gnu.hash 664 28 664)\n(llvm:section-entry .note.ABI-tag 632 32 632)\n(llvm:section-entry .note.gnu.build-id 596 36 596)\n(llvm:section-entry .interp 568 27 568)\n(llvm:section-flags .shstrtab true false false)\n(llvm:section-flags .strtab true false false)\n(llvm:section-flags .symtab true false false)\n(llvm:section-flags .comment true false false)\n(llvm:section-flags .bss true true false)\n(llvm:section-flags .data true true false)\n(llvm:section-flags .got.plt true true false)\n(llvm:section-flags .got true true false)\n(llvm:section-flags .dynamic true true false)\n(llvm:section-flags .fini_array true true false)\n(llvm:section-flags .init_array true true false)\n(llvm:section-flags .eh_frame true false false)\n(llvm:section-flags .eh_frame_hdr true false false)\n(llvm:section-flags .rodata true false false)\n(llvm:section-flags .fini true false true)\n(llvm:section-flags .text true false true)\n(llvm:section-flags .plt true false true)\n(llvm:section-flags .init true false true)\n(llvm:section-flags .rela.plt true false false)\n(llvm:section-flags .rela.dyn true false false)\n(llvm:section-flags .gnu.version_r true false false)\n(llvm:section-flags .gnu.version true false false)\n(llvm:section-flags .dynstr true false false)\n(llvm:section-flags .dynsym true false false)\n(llvm:section-flags .gnu.hash true false false)\n(llvm:section-flags .note.ABI-tag true false false)\n(llvm:section-flags .note.gnu.build-id true false false)\n(llvm:section-flags .interp true false false)\n(llvm:symbol-entry abort 0 0 0 0)\n(llvm:symbol-entry __cxa_finalize 0 0 0 0)\n(llvm:symbol-entry __libc_start_main 0 0 0 0)\n(llvm:symbol-entry _init 1408 0 1408 1408)\n(llvm:symbol-entry main 1812 36 1812 1812)\n(llvm:symbol-entry _start 1536 52 1536 1536)\n(llvm:symbol-entry abort@GLIBC_2.17 0 0 0 0)\n(llvm:symbol-entry _fini 1848 0 1848 1848)\n(llvm:symbol-entry __cxa_finalize@GLIBC_2.17 0 0 0 0)\n(llvm:symbol-entry __libc_start_main@GLIBC_2.34 0 0 0 0)\n(llvm:symbol-entry frame_dummy 1808 0 1808 1808)\n(llvm:symbol-entry __do_global_dtors_aux 1728 0 1728 1728)\n(llvm:symbol-entry register_tm_clones 1664 0 1664 1664)\n(llvm:symbol-entry deregister_tm_clones 1616 0 1616 1616)\n(llvm:symbol-entry call_weak_fn 1588 20 1588 1588)\n(mapped 0 2116 0)\n(mapped 69064 616 3528)\n(named-region 0 2116 02)\n(named-region 69064 624 03)\n(named-region 568 27 .interp)\n(named-region 596 36 .note.gnu.build-id)\n(named-region 632 32 .note.ABI-tag)\n(named-region 664 28 .gnu.hash)\n(named-region 696 216 .dynsym)\n(named-region 912 141 .dynstr)\n(named-region 1054 18 .gnu.version)\n(named-region 1072 48 .gnu.version_r)\n(named-region 1120 192 .rela.dyn)\n(named-region 1312 96 .rela.plt)\n(named-region 1408 24 .init)\n(named-region 1440 96 .plt)\n(named-region 1536 312 .text)\n(named-region 1848 20 .fini)\n(named-region 1868 4 .rodata)\n(named-region 1872 60 .eh_frame_hdr)\n(named-region 1936 180 .eh_frame)\n(named-region 69064 8 .init_array)\n(named-region 69072 8 .fini_array)\n(named-region 69080 480 .dynamic)\n(named-region 69560 48 .got)\n(named-region 69608 56 .got.plt)\n(named-region 69664 16 .data)\n(named-region 69680 8 .bss)\n(named-region 0 71 .comment)\n(named-region 0 2160 .symtab)\n(named-region 0 564 .strtab)\n(named-region 0 259 .shstrtab)\n(named-symbol 1588 call_weak_fn)\n(named-symbol 1616 deregister_tm_clones)\n(named-symbol 1664 register_tm_clones)\n(named-symbol 1728 __do_global_dtors_aux)\n(named-symbol 1808 frame_dummy)\n(named-symbol 0 __libc_start_main@GLIBC_2.34)\n(named-symbol 0 __cxa_finalize@GLIBC_2.17)\n(named-symbol 1848 _fini)\n(named-symbol 0 abort@GLIBC_2.17)\n(named-symbol 1536 _start)\n(named-symbol 1812 main)\n(named-symbol 1408 _init)\n(named-symbol 0 __libc_start_main)\n(named-symbol 0 __cxa_finalize)\n(named-symbol 0 abort)\n(require libc.so.6)\n(section 568 27)\n(section 596 36)\n(section 632 32)\n(section 664 28)\n(section 696 216)\n(section 912 141)\n(section 1054 18)\n(section 1072 48)\n(section 1120 192)\n(section 1312 96)\n(section 1408 24)\n(section 1440 96)\n(section 1536 312)\n(section 1848 20)\n(section 1868 4)\n(section 1872 60)\n(section 1936 180)\n(section 69064 8)\n(section 69072 8)\n(section 69080 480)\n(section 69560 48)\n(section 69608 56)\n(section 69664 16)\n(section 69680 8)\n(section 0 71)\n(section 0 2160)\n(section 0 564)\n(section 0 259)\n(segment 0 2116 true false true)\n(segment 69064 624 true true false)\n(subarch v8)\n(symbol-chunk 1588 20 1588)\n(symbol-chunk 1536 52 1536)\n(symbol-chunk 1812 36 1812)\n(symbol-value 1588 1588)\n(symbol-value 1616 1616)\n(symbol-value 1664 1664)\n(symbol-value 1728 1728)\n(symbol-value 1808 1808)\n(symbol-value 1848 1848)\n(symbol-value 1536 1536)\n(symbol-value 1812 1812)\n(symbol-value 1408 1408)\n(symbol-value 0 0)\n(system \"\")\n(vendor \"\")\n"), -Attr("abi-name","\"aarch64-linux-gnu-elf\"")]), -Sections([Section(".shstrtab", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x00\x06\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x20\x1c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x38\x00\x09\x00\x40\x00\x1d\x00\x1c\x00\x06\x00\x00\x00\x04\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x04\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x44\x08\x00\x00\x00\x00\x00\x00\x44\x08\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x01\x00\x00\x00\x06\x00\x00\x00\xc8\x0d\x00\x00\x00\x00\x00\x00\xc8\x0d\x01\x00\x00\x00\x00\x00\xc8\x0d\x01"), -Section(".strtab", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x00\x06\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x20\x1c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x38\x00\x09\x00\x40\x00\x1d\x00\x1c\x00\x06\x00\x00\x00\x04\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x04\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x44\x08\x00\x00\x00\x00\x00\x00\x44\x08\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x01\x00\x00\x00\x06\x00\x00\x00\xc8\x0d\x00\x00\x00\x00\x00\x00\xc8\x0d\x01\x00\x00\x00\x00\x00\xc8\x0d\x01\x00\x00\x00\x00\x00\x68\x02\x00\x00\x00\x00\x00\x00\x70\x02\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x02\x00\x00\x00\x06\x00\x00\x00\xd8\x0d\x00\x00\x00\x00\x00\x00\xd8\x0d\x01\x00\x00\x00\x00\x00\xd8\x0d\x01\x00\x00\x00\x00\x00\xe0\x01\x00\x00\x00\x00\x00\x00\xe0\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x04\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x50\xe5\x74\x64\x04\x00\x00\x00\x50\x07\x00\x00\x00\x00\x00\x00\x50\x07\x00\x00\x00\x00\x00\x00\x50\x07\x00\x00\x00\x00\x00\x00\x3c\x00\x00\x00\x00\x00\x00\x00\x3c\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x51\xe5\x74\x64\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x52\xe5\x74\x64\x04\x00\x00\x00\xc8\x0d\x00\x00\x00\x00\x00\x00\xc8\x0d\x01\x00\x00\x00\x00\x00\xc8\x0d\x01\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00"), -Section(".comment", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x00\x06\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x20\x1c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x38\x00\x09\x00\x40\x00\x1d\x00\x1c\x00\x06\x00\x00\x00\x04\x00\x00"), -Section(".interp", 0x238, "\x2f\x6c\x69\x62\x2f\x6c\x64\x2d\x6c\x69\x6e\x75\x78\x2d\x61\x61\x72\x63\x68\x36\x34\x2e\x73\x6f\x2e\x31\x00"), -Section(".note.gnu.build-id", 0x254, "\x04\x00\x00\x00\x14\x00\x00\x00\x03\x00\x00\x00\x47\x4e\x55\x00\x9d\x41\xca\x22\xc9\x99\xa1\xb3\x23\x96\xaa\xe8\x64\x85\xdc\xe0\xcf\x49\xbe\x93"), -Section(".note.ABI-tag", 0x278, "\x04\x00\x00\x00\x10\x00\x00\x00\x01\x00\x00\x00\x47\x4e\x55\x00\x00\x00\x00\x00\x03\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00"), -Section(".gnu.hash", 0x298, "\x01\x00\x00\x00\x01\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".dynsym", 0x2B8, "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x0b\x00\x80\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x17\x00\x20\x10\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x48\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x22\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x22\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x73\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".dynstr", 0x390, "\x00\x5f\x5f\x63\x78\x61\x5f\x66\x69\x6e\x61\x6c\x69\x7a\x65\x00\x5f\x5f\x6c\x69\x62\x63\x5f\x73\x74\x61\x72\x74\x5f\x6d\x61\x69\x6e\x00\x61\x62\x6f\x72\x74\x00\x6c\x69\x62\x63\x2e\x73\x6f\x2e\x36\x00\x47\x4c\x49\x42\x43\x5f\x32\x2e\x31\x37\x00\x47\x4c\x49\x42\x43\x5f\x32\x2e\x33\x34\x00\x5f\x49\x54\x4d\x5f\x64\x65\x72\x65\x67\x69\x73\x74\x65\x72\x54\x4d\x43\x6c\x6f\x6e\x65\x54\x61\x62\x6c\x65\x00\x5f\x5f\x67\x6d\x6f\x6e\x5f\x73\x74\x61\x72\x74\x5f\x5f\x00\x5f\x49\x54\x4d\x5f\x72\x65\x67\x69\x73\x74\x65\x72\x54\x4d\x43\x6c\x6f\x6e\x65\x54\x61\x62\x6c\x65\x00"), -Section(".gnu.version", 0x41E, "\x00\x00\x00\x00\x00\x00\x02\x00\x01\x00\x03\x00\x01\x00\x03\x00\x01\x00"), -Section(".gnu.version_r", 0x430, "\x01\x00\x02\x00\x28\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x97\x91\x96\x06\x00\x00\x03\x00\x32\x00\x00\x00\x10\x00\x00\x00\xb4\x91\x96\x06\x00\x00\x02\x00\x3d\x00\x00\x00\x00\x00\x00\x00"), -Section(".rela.dyn", 0x460, "\xc8\x0d\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x10\x07\x00\x00\x00\x00\x00\x00\xd0\x0d\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\xc0\x06\x00\x00\x00\x00\x00\x00\xd8\x0f\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x14\x07\x00\x00\x00\x00\x00\x00\x28\x10\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x28\x10\x01\x00\x00\x00\x00\x00\xc0\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xc8\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xd0\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe0\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".rela.plt", 0x520, "\x00\x10\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x08\x10\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x10\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x18\x10\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".init", 0x580, "\x1f\x20\x03\xd5\xfd\x7b\xbf\xa9\xfd\x03\x00\x91\x2a\x00\x00\x94\xfd\x7b\xc1\xa8\xc0\x03\x5f\xd6"), -Section(".plt", 0x5A0, "\xf0\x7b\xbf\xa9\x90\x00\x00\x90\x11\xfe\x47\xf9\x10\xe2\x3f\x91\x20\x02\x1f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x90\x00\x00\xb0\x11\x02\x40\xf9\x10\x02\x00\x91\x20\x02\x1f\xd6\x90\x00\x00\xb0\x11\x06\x40\xf9\x10\x22\x00\x91\x20\x02\x1f\xd6\x90\x00\x00\xb0\x11\x0a\x40\xf9\x10\x42\x00\x91\x20\x02\x1f\xd6\x90\x00\x00\xb0\x11\x0e\x40\xf9\x10\x62\x00\x91\x20\x02\x1f\xd6"), -Section(".text", 0x600, "\x1f\x20\x03\xd5\x1d\x00\x80\xd2\x1e\x00\x80\xd2\xe5\x03\x00\xaa\xe1\x03\x40\xf9\xe2\x23\x00\x91\xe6\x03\x00\x91\x80\x00\x00\x90\x00\xec\x47\xf9\x03\x00\x80\xd2\x04\x00\x80\xd2\xe5\xff\xff\x97\xf0\xff\xff\x97\x80\x00\x00\x90\x00\xe8\x47\xf9\x40\x00\x00\xb4\xe8\xff\xff\x17\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x80\x00\x00\xb0\x00\xc0\x00\x91\x81\x00\x00\xb0\x21\xc0\x00\x91\x3f\x00\x00\xeb\xc0\x00\x00\x54\x81\x00\x00\x90\x21\xe0\x47\xf9\x61\x00\x00\xb4\xf0\x03\x01\xaa\x00\x02\x1f\xd6\xc0\x03\x5f\xd6\x80\x00\x00\xb0\x00\xc0\x00\x91\x81\x00\x00\xb0\x21\xc0\x00\x91\x21\x00\x00\xcb\x22\xfc\x7f\xd3\x41\x0c\x81\x8b\x21\xfc\x41\x93\xc1\x00\x00\xb4\x82\x00\x00\x90\x42\xf0\x47\xf9\x62\x00\x00\xb4\xf0\x03\x02\xaa\x00\x02\x1f\xd6\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\xfd\x7b\xbe\xa9\xfd\x03\x00\x91\xf3\x0b\x00\xf9\x93\x00\x00\xb0\x60\xc2\x40\x39\x40\x01\x00\x35\x80\x00\x00\x90\x00\xe4\x47\xf9\x80\x00\x00\xb4\x80\x00\x00\xb0\x00\x14\x40\xf9\xb9\xff\xff\x97\xd8\xff\xff\x97\x20\x00\x80\x52\x60\xc2\x00\x39\xf3\x0b\x40\xf9\xfd\x7b\xc2\xa8\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\xdc\xff\xff\x17\x88\x00\x00\xb0\x09\x35\x40\xb9\x69\x00\x00\x34\xe0\x03\x1f\x2a\xc0\x03\x5f\xd6\x29\x00\x80\x52\x09\x35\x00\xb9\xe0\x03\x1f\x2a\xc0\x03\x5f\xd6"), -Section(".fini", 0x738, "\x1f\x20\x03\xd5\xfd\x7b\xbf\xa9\xfd\x03\x00\x91\xfd\x7b\xc1\xa8\xc0\x03\x5f\xd6"), -Section(".rodata", 0x74C, "\x01\x00\x02\x00"), -Section(".eh_frame_hdr", 0x750, "\x01\x1b\x03\x3b\x3c\x00\x00\x00\x06\x00\x00\x00\xb0\xfe\xff\xff\x54\x00\x00\x00\x00\xff\xff\xff\x68\x00\x00\x00\x30\xff\xff\xff\x7c\x00\x00\x00\x70\xff\xff\xff\x90\x00\x00\x00\xc0\xff\xff\xff\xb4\x00\x00\x00\xc4\xff\xff\xff\xdc\x00\x00\x00"), -Section(".eh_frame", 0x790, "\x10\x00\x00\x00\x00\x00\x00\x00\x01\x7a\x52\x00\x04\x78\x1e\x01\x1b\x0c\x1f\x00\x10\x00\x00\x00\x18\x00\x00\x00\x54\xfe\xff\xff\x34\x00\x00\x00\x00\x41\x07\x1e\x10\x00\x00\x00\x2c\x00\x00\x00\x90\xfe\xff\xff\x30\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x40\x00\x00\x00\xac\xfe\xff\xff\x3c\x00\x00\x00\x00\x00\x00\x00\x20\x00\x00\x00\x54\x00\x00\x00\xd8\xfe\xff\xff\x48\x00\x00\x00\x00\x41\x0e\x20\x9d\x04\x9e\x03\x42\x93\x02\x4e\xde\xdd\xd3\x0e\x00\x00\x00\x00\x10\x00\x00\x00\x78\x00\x00\x00\x04\xff\xff\xff\x04\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x01\x7a\x52\x00\x01\x7c\x1e\x01\x1b\x0c\x1f\x00\x10\x00\x00\x00\x18\x00\x00\x00\xe0\xfe\xff\xff\x24\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".fini_array", 0x10DD0, "\xc0\x06\x00\x00\x00\x00\x00\x00"), -Section(".dynamic", 0x10DD8, "\x01\x00\x00\x00\x00\x00\x00\x00\x28\x00\x00\x00\x00\x00\x00\x00\x0c\x00\x00\x00\x00\x00\x00\x00\x80\x05\x00\x00\x00\x00\x00\x00\x0d\x00\x00\x00\x00\x00\x00\x00\x38\x07\x00\x00\x00\x00\x00\x00\x19\x00\x00\x00\x00\x00\x00\x00\xc8\x0d\x01\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x1a\x00\x00\x00\x00\x00\x00\x00\xd0\x0d\x01\x00\x00\x00\x00\x00\x1c\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\xf5\xfe\xff\x6f\x00\x00\x00\x00\x98\x02\x00\x00\x00\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x90\x03\x00\x00\x00\x00\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\xb8\x02\x00\x00\x00\x00\x00\x00\x0a\x00\x00\x00\x00\x00\x00\x00\x8d\x00\x00\x00\x00\x00\x00\x00\x0b\x00\x00\x00\x00\x00\x00\x00\x18\x00\x00\x00\x00\x00\x00\x00\x15\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\xe8\x0f\x01\x00\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x60\x00\x00\x00\x00\x00\x00\x00\x14\x00\x00\x00\x00\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x17\x00\x00\x00\x00\x00\x00\x00\x20\x05\x00\x00\x00\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x60\x04\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\xc0\x00\x00\x00\x00\x00\x00\x00\x09\x00\x00\x00\x00\x00\x00\x00\x18\x00\x00\x00\x00\x00\x00\x00\xfb\xff\xff\x6f\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\xfe\xff\xff\x6f\x00\x00\x00\x00\x30\x04\x00\x00\x00\x00\x00\x00\xff\xff\xff\x6f\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\xf0\xff\xff\x6f\x00\x00\x00\x00\x1e\x04\x00\x00\x00\x00\x00\x00\xf9\xff\xff\x6f\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".init_array", 0x10DC8, "\x10\x07\x00\x00\x00\x00\x00\x00"), -Section(".got", 0x10FB8, "\xd8\x0d\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x14\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".got.plt", 0x10FE8, "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xa0\x05\x00\x00\x00\x00\x00\x00\xa0\x05\x00\x00\x00\x00\x00\x00\xa0\x05\x00\x00\x00\x00\x00\x00\xa0\x05\x00\x00\x00\x00\x00\x00"), -Section(".data", 0x11020, "\x00\x00\x00\x00\x00\x00\x00\x00\x28\x10\x01\x00\x00\x00\x00\x00")]), -Memmap([Annotation(Region(0x0,0x843), Attr("segment","02 0 2116")), -Annotation(Region(0x600,0x633), Attr("symbol","\"_start\"")), -Annotation(Region(0x0,0x102), Attr("section","\".shstrtab\"")), -Annotation(Region(0x0,0x233), Attr("section","\".strtab\"")), -Annotation(Region(0x0,0x46), Attr("section","\".comment\"")), -Annotation(Region(0x238,0x252), Attr("section","\".interp\"")), -Annotation(Region(0x254,0x277), Attr("section","\".note.gnu.build-id\"")), -Annotation(Region(0x278,0x297), Attr("section","\".note.ABI-tag\"")), -Annotation(Region(0x298,0x2B3), Attr("section","\".gnu.hash\"")), -Annotation(Region(0x2B8,0x38F), Attr("section","\".dynsym\"")), -Annotation(Region(0x390,0x41C), Attr("section","\".dynstr\"")), -Annotation(Region(0x41E,0x42F), Attr("section","\".gnu.version\"")), -Annotation(Region(0x430,0x45F), Attr("section","\".gnu.version_r\"")), -Annotation(Region(0x460,0x51F), Attr("section","\".rela.dyn\"")), -Annotation(Region(0x520,0x57F), Attr("section","\".rela.plt\"")), -Annotation(Region(0x580,0x597), Attr("section","\".init\"")), -Annotation(Region(0x5A0,0x5FF), Attr("section","\".plt\"")), -Annotation(Region(0x580,0x597), Attr("code-region","()")), -Annotation(Region(0x5A0,0x5FF), Attr("code-region","()")), -Annotation(Region(0x600,0x633), Attr("symbol-info","_start 0x600 52")), -Annotation(Region(0x634,0x647), Attr("symbol","\"call_weak_fn\"")), -Annotation(Region(0x634,0x647), Attr("symbol-info","call_weak_fn 0x634 20")), -Annotation(Region(0x600,0x737), Attr("section","\".text\"")), -Annotation(Region(0x600,0x737), Attr("code-region","()")), -Annotation(Region(0x714,0x737), Attr("symbol","\"main\"")), -Annotation(Region(0x714,0x737), Attr("symbol-info","main 0x714 36")), -Annotation(Region(0x738,0x74B), Attr("section","\".fini\"")), -Annotation(Region(0x738,0x74B), Attr("code-region","()")), -Annotation(Region(0x74C,0x74F), Attr("section","\".rodata\"")), -Annotation(Region(0x750,0x78B), Attr("section","\".eh_frame_hdr\"")), -Annotation(Region(0x790,0x843), Attr("section","\".eh_frame\"")), -Annotation(Region(0x10DC8,0x1102F), Attr("segment","03 0x10DC8 624")), -Annotation(Region(0x10DD0,0x10DD7), Attr("section","\".fini_array\"")), -Annotation(Region(0x10DD8,0x10FB7), Attr("section","\".dynamic\"")), -Annotation(Region(0x10DC8,0x10DCF), Attr("section","\".init_array\"")), -Annotation(Region(0x10FB8,0x10FE7), Attr("section","\".got\"")), -Annotation(Region(0x10FE8,0x1101F), Attr("section","\".got.plt\"")), -Annotation(Region(0x11020,0x1102F), Attr("section","\".data\""))]), -Program(Tid(1_467, "%000005bb"), Attrs([]), - Subs([Sub(Tid(1_415, "@__cxa_finalize"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x5D0"), -Attr("stub","()")]), "__cxa_finalize", Args([Arg(Tid(1_468, "%000005bc"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("__cxa_finalize_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(825, "@__cxa_finalize"), - Attrs([Attr("address","0x5D0")]), Phis([]), -Defs([Def(Tid(1_073, "%00000431"), Attrs([Attr("address","0x5D0"), -Attr("insn","adrp x16, #69632")]), Var("R16",Imm(64)), Int(69632,64)), -Def(Tid(1_080, "%00000438"), Attrs([Attr("address","0x5D4"), -Attr("insn","ldr x17, [x16, #0x8]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(1_086, "%0000043e"), Attrs([Attr("address","0x5D8"), -Attr("insn","add x16, x16, #0x8")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(8,64)))]), Jmps([Call(Tid(1_091, "%00000443"), - Attrs([Attr("address","0x5DC"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), -Sub(Tid(1_416, "@__do_global_dtors_aux"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x6C0")]), - "__do_global_dtors_aux", Args([Arg(Tid(1_469, "%000005bd"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("__do_global_dtors_aux_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(626, "@__do_global_dtors_aux"), - Attrs([Attr("address","0x6C0")]), Phis([]), Defs([Def(Tid(630, "%00000276"), - Attrs([Attr("address","0x6C0"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("#3",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(18446744073709551584,64))), -Def(Tid(636, "%0000027c"), Attrs([Attr("address","0x6C0"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("#3",Imm(64)),Var("R29",Imm(64)),LittleEndian(),64)), -Def(Tid(642, "%00000282"), Attrs([Attr("address","0x6C0"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("#3",Imm(64)),Int(8,64)),Var("R30",Imm(64)),LittleEndian(),64)), -Def(Tid(646, "%00000286"), Attrs([Attr("address","0x6C0"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("R31",Imm(64)), -Var("#3",Imm(64))), Def(Tid(652, "%0000028c"), - Attrs([Attr("address","0x6C4"), Attr("insn","mov x29, sp")]), - Var("R29",Imm(64)), Var("R31",Imm(64))), Def(Tid(660, "%00000294"), - Attrs([Attr("address","0x6C8"), Attr("insn","str x19, [sp, #0x10]")]), - Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(16,64)),Var("R19",Imm(64)),LittleEndian(),64)), -Def(Tid(665, "%00000299"), Attrs([Attr("address","0x6CC"), -Attr("insn","adrp x19, #69632")]), Var("R19",Imm(64)), Int(69632,64)), -Def(Tid(672, "%000002a0"), Attrs([Attr("address","0x6D0"), -Attr("insn","ldrb w0, [x19, #0x30]")]), Var("R0",Imm(64)), -UNSIGNED(64,Load(Var("mem",Mem(64,8)),PLUS(Var("R19",Imm(64)),Int(48,64)),LittleEndian(),8)))]), -Jmps([Goto(Tid(679, "%000002a7"), Attrs([Attr("address","0x6D4"), -Attr("insn","cbnz w0, #0x28")]), - NEQ(Extract(31,0,Var("R0",Imm(64))),Int(0,32)), -Direct(Tid(677, "%000002a5"))), Goto(Tid(1_456, "%000005b0"), Attrs([]), - Int(1,1), Direct(Tid(770, "%00000302")))])), Blk(Tid(770, "%00000302"), - Attrs([Attr("address","0x6D8")]), Phis([]), Defs([Def(Tid(773, "%00000305"), - Attrs([Attr("address","0x6D8"), Attr("insn","adrp x0, #65536")]), - Var("R0",Imm(64)), Int(65536,64)), Def(Tid(780, "%0000030c"), - Attrs([Attr("address","0x6DC"), Attr("insn","ldr x0, [x0, #0xfc8]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(4040,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(786, "%00000312"), Attrs([Attr("address","0x6E0"), -Attr("insn","cbz x0, #0x10")]), EQ(Var("R0",Imm(64)),Int(0,64)), -Direct(Tid(784, "%00000310"))), Goto(Tid(1_457, "%000005b1"), Attrs([]), - Int(1,1), Direct(Tid(809, "%00000329")))])), Blk(Tid(809, "%00000329"), - Attrs([Attr("address","0x6E4")]), Phis([]), Defs([Def(Tid(812, "%0000032c"), - Attrs([Attr("address","0x6E4"), Attr("insn","adrp x0, #69632")]), - Var("R0",Imm(64)), Int(69632,64)), Def(Tid(819, "%00000333"), - Attrs([Attr("address","0x6E8"), Attr("insn","ldr x0, [x0, #0x28]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(40,64)),LittleEndian(),64)), -Def(Tid(824, "%00000338"), Attrs([Attr("address","0x6EC"), -Attr("insn","bl #-0x11c")]), Var("R30",Imm(64)), Int(1776,64))]), -Jmps([Call(Tid(827, "%0000033b"), Attrs([Attr("address","0x6EC"), -Attr("insn","bl #-0x11c")]), Int(1,1), -(Direct(Tid(1_415, "@__cxa_finalize")),Direct(Tid(784, "%00000310"))))])), -Blk(Tid(784, "%00000310"), Attrs([Attr("address","0x6F0")]), Phis([]), -Defs([Def(Tid(792, "%00000318"), Attrs([Attr("address","0x6F0"), -Attr("insn","bl #-0xa0")]), Var("R30",Imm(64)), Int(1780,64))]), -Jmps([Call(Tid(794, "%0000031a"), Attrs([Attr("address","0x6F0"), -Attr("insn","bl #-0xa0")]), Int(1,1), -(Direct(Tid(1_429, "@deregister_tm_clones")),Direct(Tid(796, "%0000031c"))))])), -Blk(Tid(796, "%0000031c"), Attrs([Attr("address","0x6F4")]), Phis([]), -Defs([Def(Tid(799, "%0000031f"), Attrs([Attr("address","0x6F4"), -Attr("insn","mov w0, #0x1")]), Var("R0",Imm(64)), Int(1,64)), -Def(Tid(807, "%00000327"), Attrs([Attr("address","0x6F8"), -Attr("insn","strb w0, [x19, #0x30]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R19",Imm(64)),Int(48,64)),Extract(7,0,Var("R0",Imm(64))),LittleEndian(),8))]), -Jmps([Goto(Tid(1_458, "%000005b2"), Attrs([]), Int(1,1), -Direct(Tid(677, "%000002a5")))])), Blk(Tid(677, "%000002a5"), - Attrs([Attr("address","0x6FC")]), Phis([]), Defs([Def(Tid(687, "%000002af"), - Attrs([Attr("address","0x6FC"), Attr("insn","ldr x19, [sp, #0x10]")]), - Var("R19",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(16,64)),LittleEndian(),64)), -Def(Tid(694, "%000002b6"), Attrs([Attr("address","0x700"), -Attr("insn","ldp x29, x30, [sp], #0x20")]), Var("R29",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(699, "%000002bb"), Attrs([Attr("address","0x700"), -Attr("insn","ldp x29, x30, [sp], #0x20")]), Var("R30",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(703, "%000002bf"), Attrs([Attr("address","0x700"), -Attr("insn","ldp x29, x30, [sp], #0x20")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(32,64)))]), Jmps([Call(Tid(708, "%000002c4"), - Attrs([Attr("address","0x704"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), Sub(Tid(1_420, "@__libc_start_main"), - Attrs([Attr("c.proto","signed (*)(signed (*)(signed , char** , char** );* main, signed , char** , \nvoid* auxv)"), -Attr("address","0x5C0"), Attr("stub","()")]), "__libc_start_main", - Args([Arg(Tid(1_470, "%000005be"), - Attrs([Attr("c.layout","**[ : 64]"), -Attr("c.data","Top:u64 ptr ptr"), -Attr("c.type","signed (*)(signed , char** , char** );*")]), - Var("__libc_start_main_main",Imm(64)), Var("R0",Imm(64)), In()), -Arg(Tid(1_471, "%000005bf"), Attrs([Attr("c.layout","[signed : 32]"), -Attr("c.data","Top:u32"), Attr("c.type","signed")]), - Var("__libc_start_main_arg2",Imm(32)), LOW(32,Var("R1",Imm(64))), In()), -Arg(Tid(1_472, "%000005c0"), Attrs([Attr("c.layout","**[char : 8]"), -Attr("c.data","Top:u8 ptr ptr"), Attr("c.type","char**")]), - Var("__libc_start_main_arg3",Imm(64)), Var("R2",Imm(64)), Both()), -Arg(Tid(1_473, "%000005c1"), Attrs([Attr("c.layout","*[ : 8]"), -Attr("c.data","{} ptr"), Attr("c.type","void*")]), - Var("__libc_start_main_auxv",Imm(64)), Var("R3",Imm(64)), Both()), -Arg(Tid(1_474, "%000005c2"), Attrs([Attr("c.layout","[signed : 32]"), -Attr("c.data","Top:u32"), Attr("c.type","signed")]), - Var("__libc_start_main_result",Imm(32)), LOW(32,Var("R0",Imm(64))), -Out())]), Blks([Blk(Tid(459, "@__libc_start_main"), - Attrs([Attr("address","0x5C0")]), Phis([]), -Defs([Def(Tid(1_051, "%0000041b"), Attrs([Attr("address","0x5C0"), -Attr("insn","adrp x16, #69632")]), Var("R16",Imm(64)), Int(69632,64)), -Def(Tid(1_058, "%00000422"), Attrs([Attr("address","0x5C4"), -Attr("insn","ldr x17, [x16]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R16",Imm(64)),LittleEndian(),64)), -Def(Tid(1_064, "%00000428"), Attrs([Attr("address","0x5C8"), -Attr("insn","add x16, x16, #0x0")]), Var("R16",Imm(64)), -Var("R16",Imm(64)))]), Jmps([Call(Tid(1_069, "%0000042d"), - Attrs([Attr("address","0x5CC"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), Sub(Tid(1_421, "@_fini"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x738")]), - "_fini", Args([Arg(Tid(1_475, "%000005c3"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("_fini_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(31, "@_fini"), - Attrs([Attr("address","0x738")]), Phis([]), Defs([Def(Tid(37, "%00000025"), - Attrs([Attr("address","0x73C"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("#0",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(18446744073709551600,64))), -Def(Tid(43, "%0000002b"), Attrs([Attr("address","0x73C"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("#0",Imm(64)),Var("R29",Imm(64)),LittleEndian(),64)), -Def(Tid(49, "%00000031"), Attrs([Attr("address","0x73C"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("#0",Imm(64)),Int(8,64)),Var("R30",Imm(64)),LittleEndian(),64)), -Def(Tid(53, "%00000035"), Attrs([Attr("address","0x73C"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("R31",Imm(64)), -Var("#0",Imm(64))), Def(Tid(59, "%0000003b"), Attrs([Attr("address","0x740"), -Attr("insn","mov x29, sp")]), Var("R29",Imm(64)), Var("R31",Imm(64))), -Def(Tid(66, "%00000042"), Attrs([Attr("address","0x744"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R29",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(71, "%00000047"), Attrs([Attr("address","0x744"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R30",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(75, "%0000004b"), Attrs([Attr("address","0x744"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(16,64)))]), Jmps([Call(Tid(80, "%00000050"), - Attrs([Attr("address","0x748"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), Sub(Tid(1_422, "@_init"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x580")]), - "_init", Args([Arg(Tid(1_476, "%000005c4"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("_init_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(1_248, "@_init"), - Attrs([Attr("address","0x580")]), Phis([]), -Defs([Def(Tid(1_254, "%000004e6"), Attrs([Attr("address","0x584"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("#5",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(18446744073709551600,64))), -Def(Tid(1_260, "%000004ec"), Attrs([Attr("address","0x584"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("#5",Imm(64)),Var("R29",Imm(64)),LittleEndian(),64)), -Def(Tid(1_266, "%000004f2"), Attrs([Attr("address","0x584"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("#5",Imm(64)),Int(8,64)),Var("R30",Imm(64)),LittleEndian(),64)), -Def(Tid(1_270, "%000004f6"), Attrs([Attr("address","0x584"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("R31",Imm(64)), -Var("#5",Imm(64))), Def(Tid(1_276, "%000004fc"), - Attrs([Attr("address","0x588"), Attr("insn","mov x29, sp")]), - Var("R29",Imm(64)), Var("R31",Imm(64))), Def(Tid(1_281, "%00000501"), - Attrs([Attr("address","0x58C"), Attr("insn","bl #0xa8")]), - Var("R30",Imm(64)), Int(1424,64))]), Jmps([Call(Tid(1_283, "%00000503"), - Attrs([Attr("address","0x58C"), Attr("insn","bl #0xa8")]), Int(1,1), -(Direct(Tid(1_427, "@call_weak_fn")),Direct(Tid(1_285, "%00000505"))))])), -Blk(Tid(1_285, "%00000505"), Attrs([Attr("address","0x590")]), Phis([]), -Defs([Def(Tid(1_290, "%0000050a"), Attrs([Attr("address","0x590"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R29",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(1_295, "%0000050f"), Attrs([Attr("address","0x590"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R30",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(1_299, "%00000513"), Attrs([Attr("address","0x590"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(16,64)))]), Jmps([Call(Tid(1_304, "%00000518"), - Attrs([Attr("address","0x594"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), Sub(Tid(1_423, "@_start"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x600"), -Attr("stub","()"), Attr("entry-point","()")]), "_start", - Args([Arg(Tid(1_477, "%000005c5"), Attrs([Attr("c.layout","[signed : 32]"), -Attr("c.data","Top:u32"), Attr("c.type","signed")]), - Var("_start_result",Imm(32)), LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(396, "@_start"), Attrs([Attr("address","0x600")]), Phis([]), -Defs([Def(Tid(401, "%00000191"), Attrs([Attr("address","0x604"), -Attr("insn","mov x29, #0x0")]), Var("R29",Imm(64)), Int(0,64)), -Def(Tid(406, "%00000196"), Attrs([Attr("address","0x608"), -Attr("insn","mov x30, #0x0")]), Var("R30",Imm(64)), Int(0,64)), -Def(Tid(412, "%0000019c"), Attrs([Attr("address","0x60C"), -Attr("insn","mov x5, x0")]), Var("R5",Imm(64)), Var("R0",Imm(64))), -Def(Tid(419, "%000001a3"), Attrs([Attr("address","0x610"), -Attr("insn","ldr x1, [sp]")]), Var("R1",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(425, "%000001a9"), Attrs([Attr("address","0x614"), -Attr("insn","add x2, sp, #0x8")]), Var("R2",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(8,64))), Def(Tid(431, "%000001af"), - Attrs([Attr("address","0x618"), Attr("insn","mov x6, sp")]), - Var("R6",Imm(64)), Var("R31",Imm(64))), Def(Tid(436, "%000001b4"), - Attrs([Attr("address","0x61C"), Attr("insn","adrp x0, #65536")]), - Var("R0",Imm(64)), Int(65536,64)), Def(Tid(443, "%000001bb"), - Attrs([Attr("address","0x620"), Attr("insn","ldr x0, [x0, #0xfd8]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(4056,64)),LittleEndian(),64)), -Def(Tid(448, "%000001c0"), Attrs([Attr("address","0x624"), -Attr("insn","mov x3, #0x0")]), Var("R3",Imm(64)), Int(0,64)), -Def(Tid(453, "%000001c5"), Attrs([Attr("address","0x628"), -Attr("insn","mov x4, #0x0")]), Var("R4",Imm(64)), Int(0,64)), -Def(Tid(458, "%000001ca"), Attrs([Attr("address","0x62C"), -Attr("insn","bl #-0x6c")]), Var("R30",Imm(64)), Int(1584,64))]), -Jmps([Call(Tid(461, "%000001cd"), Attrs([Attr("address","0x62C"), -Attr("insn","bl #-0x6c")]), Int(1,1), -(Direct(Tid(1_420, "@__libc_start_main")),Direct(Tid(463, "%000001cf"))))])), -Blk(Tid(463, "%000001cf"), Attrs([Attr("address","0x630")]), Phis([]), -Defs([Def(Tid(466, "%000001d2"), Attrs([Attr("address","0x630"), -Attr("insn","bl #-0x40")]), Var("R30",Imm(64)), Int(1588,64))]), -Jmps([Call(Tid(469, "%000001d5"), Attrs([Attr("address","0x630"), -Attr("insn","bl #-0x40")]), Int(1,1), -(Direct(Tid(1_426, "@abort")),Direct(Tid(1_459, "%000005b3"))))])), -Blk(Tid(1_459, "%000005b3"), Attrs([]), Phis([]), Defs([]), -Jmps([Call(Tid(1_460, "%000005b4"), Attrs([]), Int(1,1), -(Direct(Tid(1_427, "@call_weak_fn")),))]))])), Sub(Tid(1_426, "@abort"), - Attrs([Attr("noreturn","()"), Attr("c.proto","void (*)(void)"), -Attr("address","0x5F0"), Attr("stub","()")]), "abort", Args([]), -Blks([Blk(Tid(467, "@abort"), Attrs([Attr("address","0x5F0")]), Phis([]), -Defs([Def(Tid(1_117, "%0000045d"), Attrs([Attr("address","0x5F0"), -Attr("insn","adrp x16, #69632")]), Var("R16",Imm(64)), Int(69632,64)), -Def(Tid(1_124, "%00000464"), Attrs([Attr("address","0x5F4"), -Attr("insn","ldr x17, [x16, #0x18]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(24,64)),LittleEndian(),64)), -Def(Tid(1_130, "%0000046a"), Attrs([Attr("address","0x5F8"), -Attr("insn","add x16, x16, #0x18")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(24,64)))]), Jmps([Call(Tid(1_135, "%0000046f"), - Attrs([Attr("address","0x5FC"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), Sub(Tid(1_427, "@call_weak_fn"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x634")]), - "call_weak_fn", Args([Arg(Tid(1_478, "%000005c6"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("call_weak_fn_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(471, "@call_weak_fn"), - Attrs([Attr("address","0x634")]), Phis([]), Defs([Def(Tid(474, "%000001da"), - Attrs([Attr("address","0x634"), Attr("insn","adrp x0, #65536")]), - Var("R0",Imm(64)), Int(65536,64)), Def(Tid(481, "%000001e1"), - Attrs([Attr("address","0x638"), Attr("insn","ldr x0, [x0, #0xfd0]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(4048,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(487, "%000001e7"), Attrs([Attr("address","0x63C"), -Attr("insn","cbz x0, #0x8")]), EQ(Var("R0",Imm(64)),Int(0,64)), -Direct(Tid(485, "%000001e5"))), Goto(Tid(1_461, "%000005b5"), Attrs([]), - Int(1,1), Direct(Tid(889, "%00000379")))])), Blk(Tid(485, "%000001e5"), - Attrs([Attr("address","0x644")]), Phis([]), Defs([]), -Jmps([Call(Tid(493, "%000001ed"), Attrs([Attr("address","0x644"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))])), -Blk(Tid(889, "%00000379"), Attrs([Attr("address","0x640")]), Phis([]), -Defs([]), Jmps([Goto(Tid(892, "%0000037c"), Attrs([Attr("address","0x640"), -Attr("insn","b #-0x60")]), Int(1,1), Direct(Tid(890, "@__gmon_start__")))])), -Blk(Tid(890, "@__gmon_start__"), Attrs([Attr("address","0x5E0")]), Phis([]), -Defs([Def(Tid(1_095, "%00000447"), Attrs([Attr("address","0x5E0"), -Attr("insn","adrp x16, #69632")]), Var("R16",Imm(64)), Int(69632,64)), -Def(Tid(1_102, "%0000044e"), Attrs([Attr("address","0x5E4"), -Attr("insn","ldr x17, [x16, #0x10]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(16,64)),LittleEndian(),64)), -Def(Tid(1_108, "%00000454"), Attrs([Attr("address","0x5E8"), -Attr("insn","add x16, x16, #0x10")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(16,64)))]), Jmps([Call(Tid(1_113, "%00000459"), - Attrs([Attr("address","0x5EC"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), -Sub(Tid(1_429, "@deregister_tm_clones"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x650")]), - "deregister_tm_clones", Args([Arg(Tid(1_479, "%000005c7"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("deregister_tm_clones_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(499, "@deregister_tm_clones"), - Attrs([Attr("address","0x650")]), Phis([]), Defs([Def(Tid(502, "%000001f6"), - Attrs([Attr("address","0x650"), Attr("insn","adrp x0, #69632")]), - Var("R0",Imm(64)), Int(69632,64)), Def(Tid(508, "%000001fc"), - Attrs([Attr("address","0x654"), Attr("insn","add x0, x0, #0x30")]), - Var("R0",Imm(64)), PLUS(Var("R0",Imm(64)),Int(48,64))), -Def(Tid(513, "%00000201"), Attrs([Attr("address","0x658"), -Attr("insn","adrp x1, #69632")]), Var("R1",Imm(64)), Int(69632,64)), -Def(Tid(519, "%00000207"), Attrs([Attr("address","0x65C"), -Attr("insn","add x1, x1, #0x30")]), Var("R1",Imm(64)), -PLUS(Var("R1",Imm(64)),Int(48,64))), Def(Tid(525, "%0000020d"), - Attrs([Attr("address","0x660"), Attr("insn","cmp x1, x0")]), - Var("#1",Imm(64)), NOT(Var("R0",Imm(64)))), Def(Tid(530, "%00000212"), - Attrs([Attr("address","0x660"), Attr("insn","cmp x1, x0")]), - Var("#2",Imm(64)), PLUS(Var("R1",Imm(64)),NOT(Var("R0",Imm(64))))), -Def(Tid(536, "%00000218"), Attrs([Attr("address","0x660"), -Attr("insn","cmp x1, x0")]), Var("VF",Imm(1)), -NEQ(SIGNED(65,PLUS(Var("#2",Imm(64)),Int(1,64))),PLUS(PLUS(SIGNED(65,Var("R1",Imm(64))),SIGNED(65,Var("#1",Imm(64)))),Int(1,65)))), -Def(Tid(542, "%0000021e"), Attrs([Attr("address","0x660"), -Attr("insn","cmp x1, x0")]), Var("CF",Imm(1)), -NEQ(UNSIGNED(65,PLUS(Var("#2",Imm(64)),Int(1,64))),PLUS(PLUS(UNSIGNED(65,Var("R1",Imm(64))),UNSIGNED(65,Var("#1",Imm(64)))),Int(1,65)))), -Def(Tid(546, "%00000222"), Attrs([Attr("address","0x660"), -Attr("insn","cmp x1, x0")]), Var("ZF",Imm(1)), -EQ(PLUS(Var("#2",Imm(64)),Int(1,64)),Int(0,64))), Def(Tid(550, "%00000226"), - Attrs([Attr("address","0x660"), Attr("insn","cmp x1, x0")]), - Var("NF",Imm(1)), Extract(63,63,PLUS(Var("#2",Imm(64)),Int(1,64))))]), -Jmps([Goto(Tid(556, "%0000022c"), Attrs([Attr("address","0x664"), -Attr("insn","b.eq #0x18")]), EQ(Var("ZF",Imm(1)),Int(1,1)), -Direct(Tid(554, "%0000022a"))), Goto(Tid(1_462, "%000005b6"), Attrs([]), - Int(1,1), Direct(Tid(859, "%0000035b")))])), Blk(Tid(859, "%0000035b"), - Attrs([Attr("address","0x668")]), Phis([]), Defs([Def(Tid(862, "%0000035e"), - Attrs([Attr("address","0x668"), Attr("insn","adrp x1, #65536")]), - Var("R1",Imm(64)), Int(65536,64)), Def(Tid(869, "%00000365"), - Attrs([Attr("address","0x66C"), Attr("insn","ldr x1, [x1, #0xfc0]")]), - Var("R1",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R1",Imm(64)),Int(4032,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(874, "%0000036a"), Attrs([Attr("address","0x670"), -Attr("insn","cbz x1, #0xc")]), EQ(Var("R1",Imm(64)),Int(0,64)), -Direct(Tid(554, "%0000022a"))), Goto(Tid(1_463, "%000005b7"), Attrs([]), - Int(1,1), Direct(Tid(878, "%0000036e")))])), Blk(Tid(554, "%0000022a"), - Attrs([Attr("address","0x67C")]), Phis([]), Defs([]), -Jmps([Call(Tid(562, "%00000232"), Attrs([Attr("address","0x67C"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))])), -Blk(Tid(878, "%0000036e"), Attrs([Attr("address","0x674")]), Phis([]), -Defs([Def(Tid(882, "%00000372"), Attrs([Attr("address","0x674"), -Attr("insn","mov x16, x1")]), Var("R16",Imm(64)), Var("R1",Imm(64)))]), -Jmps([Call(Tid(887, "%00000377"), Attrs([Attr("address","0x678"), -Attr("insn","br x16")]), Int(1,1), (Indirect(Var("R16",Imm(64))),))]))])), -Sub(Tid(1_432, "@frame_dummy"), Attrs([Attr("c.proto","signed (*)(void)"), -Attr("address","0x710")]), "frame_dummy", Args([Arg(Tid(1_480, "%000005c8"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("frame_dummy_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(714, "@frame_dummy"), - Attrs([Attr("address","0x710")]), Phis([]), Defs([]), -Jmps([Call(Tid(716, "%000002cc"), Attrs([Attr("address","0x710"), -Attr("insn","b #-0x90")]), Int(1,1), -(Direct(Tid(1_435, "@register_tm_clones")),))]))])), Sub(Tid(1_433, "@main"), - Attrs([Attr("c.proto","signed (*)(signed argc, const char** argv)"), -Attr("address","0x714")]), "main", Args([Arg(Tid(1_481, "%000005c9"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("main_argc",Imm(32)), -LOW(32,Var("R0",Imm(64))), In()), Arg(Tid(1_482, "%000005ca"), - Attrs([Attr("c.layout","**[char : 8]"), Attr("c.data","Top:u8 ptr ptr"), -Attr("c.type"," const char**")]), Var("main_argv",Imm(64)), -Var("R1",Imm(64)), Both()), Arg(Tid(1_483, "%000005cb"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("main_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(718, "@main"), - Attrs([Attr("address","0x714")]), Phis([]), Defs([Def(Tid(721, "%000002d1"), - Attrs([Attr("address","0x714"), Attr("insn","adrp x8, #69632")]), - Var("R8",Imm(64)), Int(69632,64)), Def(Tid(728, "%000002d8"), - Attrs([Attr("address","0x718"), Attr("insn","ldr w9, [x8, #0x34]")]), - Var("R9",Imm(64)), -UNSIGNED(64,Load(Var("mem",Mem(64,8)),PLUS(Var("R8",Imm(64)),Int(52,64)),LittleEndian(),32)))]), -Jmps([Goto(Tid(734, "%000002de"), Attrs([Attr("address","0x71C"), -Attr("insn","cbz w9, #0xc")]), EQ(Extract(31,0,Var("R9",Imm(64))),Int(0,32)), -Direct(Tid(732, "%000002dc"))), Goto(Tid(1_464, "%000005b8"), Attrs([]), - Int(1,1), Direct(Tid(760, "%000002f8")))])), Blk(Tid(732, "%000002dc"), - Attrs([Attr("address","0x728")]), Phis([]), Defs([Def(Tid(740, "%000002e4"), - Attrs([Attr("address","0x728"), Attr("insn","mov w9, #0x1")]), - Var("R9",Imm(64)), Int(1,64)), Def(Tid(748, "%000002ec"), - Attrs([Attr("address","0x72C"), Attr("insn","str w9, [x8, #0x34]")]), - Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R8",Imm(64)),Int(52,64)),Extract(31,0,Var("R9",Imm(64))),LittleEndian(),32)), -Def(Tid(753, "%000002f1"), Attrs([Attr("address","0x730"), -Attr("insn","mov w0, wzr")]), Var("R0",Imm(64)), Int(0,64))]), -Jmps([Call(Tid(758, "%000002f6"), Attrs([Attr("address","0x734"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))])), -Blk(Tid(760, "%000002f8"), Attrs([Attr("address","0x720")]), Phis([]), -Defs([Def(Tid(763, "%000002fb"), Attrs([Attr("address","0x720"), -Attr("insn","mov w0, wzr")]), Var("R0",Imm(64)), Int(0,64))]), -Jmps([Call(Tid(768, "%00000300"), Attrs([Attr("address","0x724"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))]))])), -Sub(Tid(1_435, "@register_tm_clones"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x680")]), - "register_tm_clones", Args([Arg(Tid(1_484, "%000005cc"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("register_tm_clones_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(564, "@register_tm_clones"), Attrs([Attr("address","0x680")]), - Phis([]), Defs([Def(Tid(567, "%00000237"), Attrs([Attr("address","0x680"), -Attr("insn","adrp x0, #69632")]), Var("R0",Imm(64)), Int(69632,64)), -Def(Tid(573, "%0000023d"), Attrs([Attr("address","0x684"), -Attr("insn","add x0, x0, #0x30")]), Var("R0",Imm(64)), -PLUS(Var("R0",Imm(64)),Int(48,64))), Def(Tid(578, "%00000242"), - Attrs([Attr("address","0x688"), Attr("insn","adrp x1, #69632")]), - Var("R1",Imm(64)), Int(69632,64)), Def(Tid(584, "%00000248"), - Attrs([Attr("address","0x68C"), Attr("insn","add x1, x1, #0x30")]), - Var("R1",Imm(64)), PLUS(Var("R1",Imm(64)),Int(48,64))), -Def(Tid(591, "%0000024f"), Attrs([Attr("address","0x690"), -Attr("insn","sub x1, x1, x0")]), Var("R1",Imm(64)), -PLUS(PLUS(Var("R1",Imm(64)),NOT(Var("R0",Imm(64)))),Int(1,64))), -Def(Tid(597, "%00000255"), Attrs([Attr("address","0x694"), -Attr("insn","lsr x2, x1, #63")]), Var("R2",Imm(64)), -Concat(Int(0,63),Extract(63,63,Var("R1",Imm(64))))), -Def(Tid(604, "%0000025c"), Attrs([Attr("address","0x698"), -Attr("insn","add x1, x2, x1, asr #3")]), Var("R1",Imm(64)), -PLUS(Var("R2",Imm(64)),ARSHIFT(Var("R1",Imm(64)),Int(3,3)))), -Def(Tid(610, "%00000262"), Attrs([Attr("address","0x69C"), -Attr("insn","asr x1, x1, #1")]), Var("R1",Imm(64)), -SIGNED(64,Extract(63,1,Var("R1",Imm(64)))))]), -Jmps([Goto(Tid(616, "%00000268"), Attrs([Attr("address","0x6A0"), -Attr("insn","cbz x1, #0x18")]), EQ(Var("R1",Imm(64)),Int(0,64)), -Direct(Tid(614, "%00000266"))), Goto(Tid(1_465, "%000005b9"), Attrs([]), - Int(1,1), Direct(Tid(829, "%0000033d")))])), Blk(Tid(829, "%0000033d"), - Attrs([Attr("address","0x6A4")]), Phis([]), Defs([Def(Tid(832, "%00000340"), - Attrs([Attr("address","0x6A4"), Attr("insn","adrp x2, #65536")]), - Var("R2",Imm(64)), Int(65536,64)), Def(Tid(839, "%00000347"), - Attrs([Attr("address","0x6A8"), Attr("insn","ldr x2, [x2, #0xfe0]")]), - Var("R2",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R2",Imm(64)),Int(4064,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(844, "%0000034c"), Attrs([Attr("address","0x6AC"), -Attr("insn","cbz x2, #0xc")]), EQ(Var("R2",Imm(64)),Int(0,64)), -Direct(Tid(614, "%00000266"))), Goto(Tid(1_466, "%000005ba"), Attrs([]), - Int(1,1), Direct(Tid(848, "%00000350")))])), Blk(Tid(614, "%00000266"), - Attrs([Attr("address","0x6B8")]), Phis([]), Defs([]), -Jmps([Call(Tid(622, "%0000026e"), Attrs([Attr("address","0x6B8"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))])), -Blk(Tid(848, "%00000350"), Attrs([Attr("address","0x6B0")]), Phis([]), -Defs([Def(Tid(852, "%00000354"), Attrs([Attr("address","0x6B0"), -Attr("insn","mov x16, x2")]), Var("R16",Imm(64)), Var("R2",Imm(64)))]), -Jmps([Call(Tid(857, "%00000359"), Attrs([Attr("address","0x6B4"), -Attr("insn","br x16")]), Int(1,1), -(Indirect(Var("R16",Imm(64))),))]))]))]))) \ No newline at end of file diff --git a/src/test/correct/ifglobal/clang_O2/ifglobal.bir b/src/test/correct/ifglobal/clang_O2/ifglobal.bir deleted file mode 100644 index 3317e7989..000000000 --- a/src/test/correct/ifglobal/clang_O2/ifglobal.bir +++ /dev/null @@ -1,236 +0,0 @@ -000005bb: program -00000587: sub __cxa_finalize(__cxa_finalize_result) -000005bc: __cxa_finalize_result :: out u32 = low:32[R0] - -00000339: -00000431: R16 := 0x11000 -00000438: R17 := mem[R16 + 8, el]:u64 -0000043e: R16 := R16 + 8 -00000443: call R17 with noreturn - -00000588: sub __do_global_dtors_aux(__do_global_dtors_aux_result) -000005bd: __do_global_dtors_aux_result :: out u32 = low:32[R0] - -00000272: -00000276: #3 := R31 - 0x20 -0000027c: mem := mem with [#3, el]:u64 <- R29 -00000282: mem := mem with [#3 + 8, el]:u64 <- R30 -00000286: R31 := #3 -0000028c: R29 := R31 -00000294: mem := mem with [R31 + 0x10, el]:u64 <- R19 -00000299: R19 := 0x11000 -000002a0: R0 := pad:64[mem[R19 + 0x30]] -000002a7: when 31:0[R0] <> 0 goto %000002a5 -000005b0: goto %00000302 - -00000302: -00000305: R0 := 0x10000 -0000030c: R0 := mem[R0 + 0xFC8, el]:u64 -00000312: when R0 = 0 goto %00000310 -000005b1: goto %00000329 - -00000329: -0000032c: R0 := 0x11000 -00000333: R0 := mem[R0 + 0x28, el]:u64 -00000338: R30 := 0x6F0 -0000033b: call @__cxa_finalize with return %00000310 - -00000310: -00000318: R30 := 0x6F4 -0000031a: call @deregister_tm_clones with return %0000031c - -0000031c: -0000031f: R0 := 1 -00000327: mem := mem with [R19 + 0x30] <- 7:0[R0] -000005b2: goto %000002a5 - -000002a5: -000002af: R19 := mem[R31 + 0x10, el]:u64 -000002b6: R29 := mem[R31, el]:u64 -000002bb: R30 := mem[R31 + 8, el]:u64 -000002bf: R31 := R31 + 0x20 -000002c4: call R30 with noreturn - -0000058c: sub __libc_start_main(__libc_start_main_main, __libc_start_main_arg2, __libc_start_main_arg3, __libc_start_main_auxv, __libc_start_main_result) -000005be: __libc_start_main_main :: in u64 = R0 -000005bf: __libc_start_main_arg2 :: in u32 = low:32[R1] -000005c0: __libc_start_main_arg3 :: in out u64 = R2 -000005c1: __libc_start_main_auxv :: in out u64 = R3 -000005c2: __libc_start_main_result :: out u32 = low:32[R0] - -000001cb: -0000041b: R16 := 0x11000 -00000422: R17 := mem[R16, el]:u64 -00000428: R16 := R16 -0000042d: call R17 with noreturn - -0000058d: sub _fini(_fini_result) -000005c3: _fini_result :: out u32 = low:32[R0] - -0000001f: -00000025: #0 := R31 - 0x10 -0000002b: mem := mem with [#0, el]:u64 <- R29 -00000031: mem := mem with [#0 + 8, el]:u64 <- R30 -00000035: R31 := #0 -0000003b: R29 := R31 -00000042: R29 := mem[R31, el]:u64 -00000047: R30 := mem[R31 + 8, el]:u64 -0000004b: R31 := R31 + 0x10 -00000050: call R30 with noreturn - -0000058e: sub _init(_init_result) -000005c4: _init_result :: out u32 = low:32[R0] - -000004e0: -000004e6: #5 := R31 - 0x10 -000004ec: mem := mem with [#5, el]:u64 <- R29 -000004f2: mem := mem with [#5 + 8, el]:u64 <- R30 -000004f6: R31 := #5 -000004fc: R29 := R31 -00000501: R30 := 0x590 -00000503: call @call_weak_fn with return %00000505 - -00000505: -0000050a: R29 := mem[R31, el]:u64 -0000050f: R30 := mem[R31 + 8, el]:u64 -00000513: R31 := R31 + 0x10 -00000518: call R30 with noreturn - -0000058f: sub _start(_start_result) -000005c5: _start_result :: out u32 = low:32[R0] - -0000018c: -00000191: R29 := 0 -00000196: R30 := 0 -0000019c: R5 := R0 -000001a3: R1 := mem[R31, el]:u64 -000001a9: R2 := R31 + 8 -000001af: R6 := R31 -000001b4: R0 := 0x10000 -000001bb: R0 := mem[R0 + 0xFD8, el]:u64 -000001c0: R3 := 0 -000001c5: R4 := 0 -000001ca: R30 := 0x630 -000001cd: call @__libc_start_main with return %000001cf - -000001cf: -000001d2: R30 := 0x634 -000001d5: call @abort with return %000005b3 - -000005b3: -000005b4: call @call_weak_fn with noreturn - -00000592: sub abort() - - -000001d3: -0000045d: R16 := 0x11000 -00000464: R17 := mem[R16 + 0x18, el]:u64 -0000046a: R16 := R16 + 0x18 -0000046f: call R17 with noreturn - -00000593: sub call_weak_fn(call_weak_fn_result) -000005c6: call_weak_fn_result :: out u32 = low:32[R0] - -000001d7: -000001da: R0 := 0x10000 -000001e1: R0 := mem[R0 + 0xFD0, el]:u64 -000001e7: when R0 = 0 goto %000001e5 -000005b5: goto %00000379 - -000001e5: -000001ed: call R30 with noreturn - -00000379: -0000037c: goto @__gmon_start__ - -0000037a: -00000447: R16 := 0x11000 -0000044e: R17 := mem[R16 + 0x10, el]:u64 -00000454: R16 := R16 + 0x10 -00000459: call R17 with noreturn - -00000595: sub deregister_tm_clones(deregister_tm_clones_result) -000005c7: deregister_tm_clones_result :: out u32 = low:32[R0] - -000001f3: -000001f6: R0 := 0x11000 -000001fc: R0 := R0 + 0x30 -00000201: R1 := 0x11000 -00000207: R1 := R1 + 0x30 -0000020d: #1 := ~R0 -00000212: #2 := R1 + ~R0 -00000218: VF := extend:65[#2 + 1] <> extend:65[R1] + extend:65[#1] + 1 -0000021e: CF := pad:65[#2 + 1] <> pad:65[R1] + pad:65[#1] + 1 -00000222: ZF := #2 + 1 = 0 -00000226: NF := 63:63[#2 + 1] -0000022c: when ZF goto %0000022a -000005b6: goto %0000035b - -0000035b: -0000035e: R1 := 0x10000 -00000365: R1 := mem[R1 + 0xFC0, el]:u64 -0000036a: when R1 = 0 goto %0000022a -000005b7: goto %0000036e - -0000022a: -00000232: call R30 with noreturn - -0000036e: -00000372: R16 := R1 -00000377: call R16 with noreturn - -00000598: sub frame_dummy(frame_dummy_result) -000005c8: frame_dummy_result :: out u32 = low:32[R0] - -000002ca: -000002cc: call @register_tm_clones with noreturn - -00000599: sub main(main_argc, main_argv, main_result) -000005c9: main_argc :: in u32 = low:32[R0] -000005ca: main_argv :: in out u64 = R1 -000005cb: main_result :: out u32 = low:32[R0] - -000002ce: -000002d1: R8 := 0x11000 -000002d8: R9 := pad:64[mem[R8 + 0x34, el]:u32] -000002de: when 31:0[R9] = 0 goto %000002dc -000005b8: goto %000002f8 - -000002dc: -000002e4: R9 := 1 -000002ec: mem := mem with [R8 + 0x34, el]:u32 <- 31:0[R9] -000002f1: R0 := 0 -000002f6: call R30 with noreturn - -000002f8: -000002fb: R0 := 0 -00000300: call R30 with noreturn - -0000059b: sub register_tm_clones(register_tm_clones_result) -000005cc: register_tm_clones_result :: out u32 = low:32[R0] - -00000234: -00000237: R0 := 0x11000 -0000023d: R0 := R0 + 0x30 -00000242: R1 := 0x11000 -00000248: R1 := R1 + 0x30 -0000024f: R1 := R1 + ~R0 + 1 -00000255: R2 := 0.63:63[R1] -0000025c: R1 := R2 + (R1 ~>> 3) -00000262: R1 := extend:64[63:1[R1]] -00000268: when R1 = 0 goto %00000266 -000005b9: goto %0000033d - -0000033d: -00000340: R2 := 0x10000 -00000347: R2 := mem[R2 + 0xFE0, el]:u64 -0000034c: when R2 = 0 goto %00000266 -000005ba: goto %00000350 - -00000266: -0000026e: call R30 with noreturn - -00000350: -00000354: R16 := R2 -00000359: call R16 with noreturn diff --git a/src/test/correct/ifglobal/clang_O2/ifglobal.expected b/src/test/correct/ifglobal/clang_O2/ifglobal.expected index 3274d276c..49947a75d 100644 --- a/src/test/correct/ifglobal/clang_O2/ifglobal.expected +++ b/src/test/correct/ifglobal/clang_O2/ifglobal.expected @@ -7,7 +7,7 @@ var {:extern} R8: bv64; var {:extern} R9: bv64; var {:extern} mem: [bv64]bv8; const {:extern} $x_addr: bv64; -axiom ($x_addr == 69684bv64); +axiom ($x_addr == 131092bv64); function {:extern} L(mem$in: [bv64]bv8, index: bv64) returns (bool) { (if (index == $x_addr) then true else false) } @@ -18,6 +18,10 @@ function {:extern} gamma_load32(gammaMap: [bv64]bool, index: bv64) returns (bool (gammaMap[bvadd64(index, 3bv64)] && (gammaMap[bvadd64(index, 2bv64)] && (gammaMap[bvadd64(index, 1bv64)] && gammaMap[index]))) } +function {:extern} gamma_load64(gammaMap: [bv64]bool, index: bv64) returns (bool) { + (gammaMap[bvadd64(index, 7bv64)] && (gammaMap[bvadd64(index, 6bv64)] && (gammaMap[bvadd64(index, 5bv64)] && (gammaMap[bvadd64(index, 4bv64)] && (gammaMap[bvadd64(index, 3bv64)] && (gammaMap[bvadd64(index, 2bv64)] && (gammaMap[bvadd64(index, 1bv64)] && gammaMap[index]))))))) +} + function {:extern} gamma_store32(gammaMap: [bv64]bool, index: bv64, value: bool) returns ([bv64]bool) { gammaMap[index := value][bvadd64(index, 1bv64) := value][bvadd64(index, 2bv64) := value][bvadd64(index, 3bv64) := value] } @@ -39,11 +43,12 @@ procedure {:extern} rely(); modifies Gamma_mem, mem; ensures (Gamma_mem == old(Gamma_mem)); ensures (mem == old(mem)); - free ensures (memory_load32_le(mem, 1868bv64) == 131073bv32); - free ensures (memory_load64_le(mem, 69064bv64) == 1808bv64); - free ensures (memory_load64_le(mem, 69072bv64) == 1728bv64); - free ensures (memory_load64_le(mem, 69592bv64) == 1812bv64); - free ensures (memory_load64_le(mem, 69672bv64) == 69672bv64); + free ensures (memory_load32_le(mem, 2320bv64) == 131073bv32); + free ensures (memory_load64_le(mem, 130432bv64) == 2256bv64); + free ensures (memory_load64_le(mem, 130440bv64) == 2176bv64); + free ensures (memory_load64_le(mem, 131040bv64) == 131092bv64); + free ensures (memory_load64_le(mem, 131056bv64) == 2260bv64); + free ensures (memory_load64_le(mem, 131080bv64) == 131080bv64); procedure {:extern} rely_transitive(); modifies Gamma_mem, mem; @@ -61,50 +66,63 @@ procedure {:extern} rely_reflexive(); procedure {:extern} guarantee_reflexive(); modifies Gamma_mem, mem; -procedure main_1812(); +procedure main(); modifies Gamma_R0, Gamma_R8, Gamma_R9, Gamma_mem, R0, R8, R9, mem; - free requires (memory_load64_le(mem, 69664bv64) == 0bv64); - free requires (memory_load64_le(mem, 69672bv64) == 69672bv64); - free requires (memory_load32_le(mem, 1868bv64) == 131073bv32); - free requires (memory_load64_le(mem, 69064bv64) == 1808bv64); - free requires (memory_load64_le(mem, 69072bv64) == 1728bv64); - free requires (memory_load64_le(mem, 69592bv64) == 1812bv64); - free requires (memory_load64_le(mem, 69672bv64) == 69672bv64); - free ensures (memory_load32_le(mem, 1868bv64) == 131073bv32); - free ensures (memory_load64_le(mem, 69064bv64) == 1808bv64); - free ensures (memory_load64_le(mem, 69072bv64) == 1728bv64); - free ensures (memory_load64_le(mem, 69592bv64) == 1812bv64); - free ensures (memory_load64_le(mem, 69672bv64) == 69672bv64); + free requires (memory_load64_le(mem, 131072bv64) == 0bv64); + free requires (memory_load64_le(mem, 131080bv64) == 131080bv64); + free requires (memory_load32_le(mem, 2320bv64) == 131073bv32); + free requires (memory_load64_le(mem, 130432bv64) == 2256bv64); + free requires (memory_load64_le(mem, 130440bv64) == 2176bv64); + free requires (memory_load64_le(mem, 131040bv64) == 131092bv64); + free requires (memory_load64_le(mem, 131056bv64) == 2260bv64); + free requires (memory_load64_le(mem, 131080bv64) == 131080bv64); + free ensures (memory_load32_le(mem, 2320bv64) == 131073bv32); + free ensures (memory_load64_le(mem, 130432bv64) == 2256bv64); + free ensures (memory_load64_le(mem, 130440bv64) == 2176bv64); + free ensures (memory_load64_le(mem, 131040bv64) == 131092bv64); + free ensures (memory_load64_le(mem, 131056bv64) == 2260bv64); + free ensures (memory_load64_le(mem, 131080bv64) == 131080bv64); -implementation main_1812() +implementation main() { - var Gamma_load18: bool; - var load18: bv32; + var $load$18: bv64; + var $load$19: bv32; + var Gamma_$load$18: bool; + var Gamma_$load$19: bool; lmain: assume {:captureState "lmain"} true; - R8, Gamma_R8 := 69632bv64, true; + R8, Gamma_R8 := 126976bv64, true; + call rely(); + $load$18, Gamma_$load$18 := memory_load64_le(mem, bvadd64(R8, 4064bv64)), (gamma_load64(Gamma_mem, bvadd64(R8, 4064bv64)) || L(mem, bvadd64(R8, 4064bv64))); + R8, Gamma_R8 := $load$18, Gamma_$load$18; call rely(); - load18, Gamma_load18 := memory_load32_le(mem, bvadd64(R8, 52bv64)), (gamma_load32(Gamma_mem, bvadd64(R8, 52bv64)) || L(mem, bvadd64(R8, 52bv64))); - R9, Gamma_R9 := zero_extend32_32(load18), Gamma_load18; + $load$19, Gamma_$load$19 := memory_load32_le(mem, R8), (gamma_load32(Gamma_mem, R8) || L(mem, R8)); + R9, Gamma_R9 := zero_extend32_32($load$19), Gamma_$load$19; assert Gamma_R9; - goto lmain_goto_l000002dc, lmain_goto_l000002f8; - lmain_goto_l000002f8: - assume {:captureState "lmain_goto_l000002f8"} true; - assume (bvcomp32(R9[32:0], 0bv32) == 0bv1); - R0, Gamma_R0 := 0bv64, true; - goto main_1812_basil_return; - lmain_goto_l000002dc: - assume {:captureState "lmain_goto_l000002dc"} true; - assume (bvcomp32(R9[32:0], 0bv32) != 0bv1); + goto lmain_goto_l0000028c, lmain_goto_l00000294; + l0000028c: + assume {:captureState "l0000028c"} true; R9, Gamma_R9 := 1bv64, true; call rely(); - assert (L(mem, bvadd64(R8, 52bv64)) ==> Gamma_R9); - mem, Gamma_mem := memory_store32_le(mem, bvadd64(R8, 52bv64), R9[32:0]), gamma_store32(Gamma_mem, bvadd64(R8, 52bv64), Gamma_R9); - assume {:captureState "%000002ec"} true; + assert (L(mem, R8) ==> Gamma_R9); + mem, Gamma_mem := memory_store32_le(mem, R8, R9[32:0]), gamma_store32(Gamma_mem, R8, Gamma_R9); + assume {:captureState "%0000029c"} true; + R0, Gamma_R0 := 0bv64, true; + goto main_basil_return; + l00000294: + assume {:captureState "l00000294"} true; R0, Gamma_R0 := 0bv64, true; - goto main_1812_basil_return; - main_1812_basil_return: - assume {:captureState "main_1812_basil_return"} true; + goto main_basil_return; + lmain_goto_l0000028c: + assume {:captureState "lmain_goto_l0000028c"} true; + assume (bvcomp32(R9[32:0], 0bv32) != 0bv1); + goto l0000028c; + lmain_goto_l00000294: + assume {:captureState "lmain_goto_l00000294"} true; + assume (bvcomp32(R9[32:0], 0bv32) == 0bv1); + goto l00000294; + main_basil_return: + assume {:captureState "main_basil_return"} true; return; } diff --git a/src/test/correct/ifglobal/clang_O2/ifglobal.gts b/src/test/correct/ifglobal/clang_O2/ifglobal.gts deleted file mode 100644 index 8baf9da29..000000000 Binary files a/src/test/correct/ifglobal/clang_O2/ifglobal.gts and /dev/null differ diff --git a/src/test/correct/ifglobal/clang_O2/ifglobal.md5sum b/src/test/correct/ifglobal/clang_O2/ifglobal.md5sum new file mode 100644 index 000000000..619b2438e --- /dev/null +++ b/src/test/correct/ifglobal/clang_O2/ifglobal.md5sum @@ -0,0 +1,5 @@ +803bddeccb00867fb52fe6c7750b6e14 correct/ifglobal/clang_O2/a.out +dc093d156daa837798f85cf3de55cc3c correct/ifglobal/clang_O2/ifglobal.adt +dc7dae7232050e8d74e3450aae88a73b correct/ifglobal/clang_O2/ifglobal.bir +bd43c19dcc2f7d53a67d7da3eed05c21 correct/ifglobal/clang_O2/ifglobal.relf +1665e99655a1bf7fc89d953dbac62edf correct/ifglobal/clang_O2/ifglobal.gts diff --git a/src/test/correct/ifglobal/clang_O2/ifglobal.relf b/src/test/correct/ifglobal/clang_O2/ifglobal.relf deleted file mode 100644 index 2491ad600..000000000 --- a/src/test/correct/ifglobal/clang_O2/ifglobal.relf +++ /dev/null @@ -1,123 +0,0 @@ - -Relocation section '.rela.dyn' at offset 0x460 contains 8 entries: - Offset Info Type Symbol's Value Symbol's Name + Addend -0000000000010dc8 0000000000000403 R_AARCH64_RELATIVE 710 -0000000000010dd0 0000000000000403 R_AARCH64_RELATIVE 6c0 -0000000000010fd8 0000000000000403 R_AARCH64_RELATIVE 714 -0000000000011028 0000000000000403 R_AARCH64_RELATIVE 11028 -0000000000010fc0 0000000400000401 R_AARCH64_GLOB_DAT 0000000000000000 _ITM_deregisterTMCloneTable + 0 -0000000000010fc8 0000000500000401 R_AARCH64_GLOB_DAT 0000000000000000 __cxa_finalize@GLIBC_2.17 + 0 -0000000000010fd0 0000000600000401 R_AARCH64_GLOB_DAT 0000000000000000 __gmon_start__ + 0 -0000000000010fe0 0000000800000401 R_AARCH64_GLOB_DAT 0000000000000000 _ITM_registerTMCloneTable + 0 - -Relocation section '.rela.plt' at offset 0x520 contains 4 entries: - Offset Info Type Symbol's Value Symbol's Name + Addend -0000000000011000 0000000300000402 R_AARCH64_JUMP_SLOT 0000000000000000 __libc_start_main@GLIBC_2.34 + 0 -0000000000011008 0000000500000402 R_AARCH64_JUMP_SLOT 0000000000000000 __cxa_finalize@GLIBC_2.17 + 0 -0000000000011010 0000000600000402 R_AARCH64_JUMP_SLOT 0000000000000000 __gmon_start__ + 0 -0000000000011018 0000000700000402 R_AARCH64_JUMP_SLOT 0000000000000000 abort@GLIBC_2.17 + 0 - -Symbol table '.dynsym' contains 9 entries: - Num: Value Size Type Bind Vis Ndx Name - 0: 0000000000000000 0 NOTYPE LOCAL DEFAULT UND - 1: 0000000000000580 0 SECTION LOCAL DEFAULT 11 .init - 2: 0000000000011020 0 SECTION LOCAL DEFAULT 23 .data - 3: 0000000000000000 0 FUNC GLOBAL DEFAULT UND __libc_start_main@GLIBC_2.34 (2) - 4: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_deregisterTMCloneTable - 5: 0000000000000000 0 FUNC WEAK DEFAULT UND __cxa_finalize@GLIBC_2.17 (3) - 6: 0000000000000000 0 NOTYPE WEAK DEFAULT UND __gmon_start__ - 7: 0000000000000000 0 FUNC GLOBAL DEFAULT UND abort@GLIBC_2.17 (3) - 8: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_registerTMCloneTable - -Symbol table '.symtab' contains 90 entries: - Num: Value Size Type Bind Vis Ndx Name - 0: 0000000000000000 0 NOTYPE LOCAL DEFAULT UND - 1: 0000000000000238 0 SECTION LOCAL DEFAULT 1 .interp - 2: 0000000000000254 0 SECTION LOCAL DEFAULT 2 .note.gnu.build-id - 3: 0000000000000278 0 SECTION LOCAL DEFAULT 3 .note.ABI-tag - 4: 0000000000000298 0 SECTION LOCAL DEFAULT 4 .gnu.hash - 5: 00000000000002b8 0 SECTION LOCAL DEFAULT 5 .dynsym - 6: 0000000000000390 0 SECTION LOCAL DEFAULT 6 .dynstr - 7: 000000000000041e 0 SECTION LOCAL DEFAULT 7 .gnu.version - 8: 0000000000000430 0 SECTION LOCAL DEFAULT 8 .gnu.version_r - 9: 0000000000000460 0 SECTION LOCAL DEFAULT 9 .rela.dyn - 10: 0000000000000520 0 SECTION LOCAL DEFAULT 10 .rela.plt - 11: 0000000000000580 0 SECTION LOCAL DEFAULT 11 .init - 12: 00000000000005a0 0 SECTION LOCAL DEFAULT 12 .plt - 13: 0000000000000600 0 SECTION LOCAL DEFAULT 13 .text - 14: 0000000000000738 0 SECTION LOCAL DEFAULT 14 .fini - 15: 000000000000074c 0 SECTION LOCAL DEFAULT 15 .rodata - 16: 0000000000000750 0 SECTION LOCAL DEFAULT 16 .eh_frame_hdr - 17: 0000000000000790 0 SECTION LOCAL DEFAULT 17 .eh_frame - 18: 0000000000010dc8 0 SECTION LOCAL DEFAULT 18 .init_array - 19: 0000000000010dd0 0 SECTION LOCAL DEFAULT 19 .fini_array - 20: 0000000000010dd8 0 SECTION LOCAL DEFAULT 20 .dynamic - 21: 0000000000010fb8 0 SECTION LOCAL DEFAULT 21 .got - 22: 0000000000010fe8 0 SECTION LOCAL DEFAULT 22 .got.plt - 23: 0000000000011020 0 SECTION LOCAL DEFAULT 23 .data - 24: 0000000000011030 0 SECTION LOCAL DEFAULT 24 .bss - 25: 0000000000000000 0 SECTION LOCAL DEFAULT 25 .comment - 26: 0000000000000000 0 FILE LOCAL DEFAULT ABS Scrt1.o - 27: 0000000000000278 0 NOTYPE LOCAL DEFAULT 3 $d - 28: 0000000000000278 32 OBJECT LOCAL DEFAULT 3 __abi_tag - 29: 0000000000000600 0 NOTYPE LOCAL DEFAULT 13 $x - 30: 00000000000007a4 0 NOTYPE LOCAL DEFAULT 17 $d - 31: 000000000000074c 0 NOTYPE LOCAL DEFAULT 15 $d - 32: 0000000000000000 0 FILE LOCAL DEFAULT ABS crti.o - 33: 0000000000000634 0 NOTYPE LOCAL DEFAULT 13 $x - 34: 0000000000000634 20 FUNC LOCAL DEFAULT 13 call_weak_fn - 35: 0000000000000580 0 NOTYPE LOCAL DEFAULT 11 $x - 36: 0000000000000738 0 NOTYPE LOCAL DEFAULT 14 $x - 37: 0000000000000000 0 FILE LOCAL DEFAULT ABS crtn.o - 38: 0000000000000590 0 NOTYPE LOCAL DEFAULT 11 $x - 39: 0000000000000744 0 NOTYPE LOCAL DEFAULT 14 $x - 40: 0000000000000000 0 FILE LOCAL DEFAULT ABS crtstuff.c - 41: 0000000000000650 0 NOTYPE LOCAL DEFAULT 13 $x - 42: 0000000000000650 0 FUNC LOCAL DEFAULT 13 deregister_tm_clones - 43: 0000000000000680 0 FUNC LOCAL DEFAULT 13 register_tm_clones - 44: 0000000000011028 0 NOTYPE LOCAL DEFAULT 23 $d - 45: 00000000000006c0 0 FUNC LOCAL DEFAULT 13 __do_global_dtors_aux - 46: 0000000000011030 1 OBJECT LOCAL DEFAULT 24 completed.0 - 47: 0000000000010dd0 0 NOTYPE LOCAL DEFAULT 19 $d - 48: 0000000000010dd0 0 OBJECT LOCAL DEFAULT 19 __do_global_dtors_aux_fini_array_entry - 49: 0000000000000710 0 FUNC LOCAL DEFAULT 13 frame_dummy - 50: 0000000000010dc8 0 NOTYPE LOCAL DEFAULT 18 $d - 51: 0000000000010dc8 0 OBJECT LOCAL DEFAULT 18 __frame_dummy_init_array_entry - 52: 00000000000007b8 0 NOTYPE LOCAL DEFAULT 17 $d - 53: 0000000000011030 0 NOTYPE LOCAL DEFAULT 24 $d - 54: 0000000000000000 0 FILE LOCAL DEFAULT ABS ifglobal.c - 55: 0000000000000714 0 NOTYPE LOCAL DEFAULT 13 $x.0 - 56: 0000000000011034 0 NOTYPE LOCAL DEFAULT 24 $d.1 - 57: 000000000000002a 0 NOTYPE LOCAL DEFAULT 25 $d.2 - 58: 0000000000000818 0 NOTYPE LOCAL DEFAULT 17 $d.3 - 59: 0000000000000000 0 FILE LOCAL DEFAULT ABS crtstuff.c - 60: 0000000000000840 0 NOTYPE LOCAL DEFAULT 17 $d - 61: 0000000000000840 0 OBJECT LOCAL DEFAULT 17 __FRAME_END__ - 62: 0000000000000000 0 FILE LOCAL DEFAULT ABS - 63: 0000000000010dd8 0 OBJECT LOCAL DEFAULT ABS _DYNAMIC - 64: 0000000000000750 0 NOTYPE LOCAL DEFAULT 16 __GNU_EH_FRAME_HDR - 65: 0000000000010fb8 0 OBJECT LOCAL DEFAULT ABS _GLOBAL_OFFSET_TABLE_ - 66: 00000000000005a0 0 NOTYPE LOCAL DEFAULT 12 $x - 67: 0000000000000000 0 FUNC GLOBAL DEFAULT UND __libc_start_main@GLIBC_2.34 - 68: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_deregisterTMCloneTable - 69: 0000000000011020 0 NOTYPE WEAK DEFAULT 23 data_start - 70: 0000000000011030 0 NOTYPE GLOBAL DEFAULT 24 __bss_start__ - 71: 0000000000000000 0 FUNC WEAK DEFAULT UND __cxa_finalize@GLIBC_2.17 - 72: 0000000000011038 0 NOTYPE GLOBAL DEFAULT 24 _bss_end__ - 73: 0000000000011030 0 NOTYPE GLOBAL DEFAULT 23 _edata - 74: 0000000000011034 4 OBJECT GLOBAL DEFAULT 24 x - 75: 0000000000000738 0 FUNC GLOBAL HIDDEN 14 _fini - 76: 0000000000011038 0 NOTYPE GLOBAL DEFAULT 24 __bss_end__ - 77: 0000000000011020 0 NOTYPE GLOBAL DEFAULT 23 __data_start - 78: 0000000000000000 0 NOTYPE WEAK DEFAULT UND __gmon_start__ - 79: 0000000000011028 0 OBJECT GLOBAL HIDDEN 23 __dso_handle - 80: 0000000000000000 0 FUNC GLOBAL DEFAULT UND abort@GLIBC_2.17 - 81: 000000000000074c 4 OBJECT GLOBAL DEFAULT 15 _IO_stdin_used - 82: 0000000000011038 0 NOTYPE GLOBAL DEFAULT 24 _end - 83: 0000000000000600 52 FUNC GLOBAL DEFAULT 13 _start - 84: 0000000000011038 0 NOTYPE GLOBAL DEFAULT 24 __end__ - 85: 0000000000011030 0 NOTYPE GLOBAL DEFAULT 24 __bss_start - 86: 0000000000000714 36 FUNC GLOBAL DEFAULT 13 main - 87: 0000000000011030 0 OBJECT GLOBAL HIDDEN 23 __TMC_END__ - 88: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_registerTMCloneTable - 89: 0000000000000580 0 FUNC GLOBAL HIDDEN 11 _init diff --git a/src/test/correct/ifglobal/clang_O2/ifglobal_gtirb.expected b/src/test/correct/ifglobal/clang_O2/ifglobal_gtirb.expected index 5bf4de243..e506d7a3b 100644 --- a/src/test/correct/ifglobal/clang_O2/ifglobal_gtirb.expected +++ b/src/test/correct/ifglobal/clang_O2/ifglobal_gtirb.expected @@ -7,7 +7,7 @@ var {:extern} R8: bv64; var {:extern} R9: bv64; var {:extern} mem: [bv64]bv8; const {:extern} $x_addr: bv64; -axiom ($x_addr == 69684bv64); +axiom ($x_addr == 131092bv64); function {:extern} L(mem$in: [bv64]bv8, index: bv64) returns (bool) { (if (index == $x_addr) then true else false) } @@ -17,6 +17,10 @@ function {:extern} gamma_load32(gammaMap: [bv64]bool, index: bv64) returns (bool (gammaMap[bvadd64(index, 3bv64)] && (gammaMap[bvadd64(index, 2bv64)] && (gammaMap[bvadd64(index, 1bv64)] && gammaMap[index]))) } +function {:extern} gamma_load64(gammaMap: [bv64]bool, index: bv64) returns (bool) { + (gammaMap[bvadd64(index, 7bv64)] && (gammaMap[bvadd64(index, 6bv64)] && (gammaMap[bvadd64(index, 5bv64)] && (gammaMap[bvadd64(index, 4bv64)] && (gammaMap[bvadd64(index, 3bv64)] && (gammaMap[bvadd64(index, 2bv64)] && (gammaMap[bvadd64(index, 1bv64)] && gammaMap[index]))))))) +} + function {:extern} gamma_store32(gammaMap: [bv64]bool, index: bv64, value: bool) returns ([bv64]bool) { gammaMap[index := value][bvadd64(index, 1bv64) := value][bvadd64(index, 2bv64) := value][bvadd64(index, 3bv64) := value] } @@ -38,11 +42,12 @@ procedure {:extern} rely(); modifies Gamma_mem, mem; ensures (Gamma_mem == old(Gamma_mem)); ensures (mem == old(mem)); - free ensures (memory_load32_le(mem, 1868bv64) == 131073bv32); - free ensures (memory_load64_le(mem, 69064bv64) == 1808bv64); - free ensures (memory_load64_le(mem, 69072bv64) == 1728bv64); - free ensures (memory_load64_le(mem, 69592bv64) == 1812bv64); - free ensures (memory_load64_le(mem, 69672bv64) == 69672bv64); + free ensures (memory_load32_le(mem, 2320bv64) == 131073bv32); + free ensures (memory_load64_le(mem, 130432bv64) == 2256bv64); + free ensures (memory_load64_le(mem, 130440bv64) == 2176bv64); + free ensures (memory_load64_le(mem, 131040bv64) == 131092bv64); + free ensures (memory_load64_le(mem, 131056bv64) == 2260bv64); + free ensures (memory_load64_le(mem, 131080bv64) == 131080bv64); procedure {:extern} rely_transitive(); modifies Gamma_mem, mem; @@ -60,56 +65,63 @@ procedure {:extern} rely_reflexive(); procedure {:extern} guarantee_reflexive(); modifies Gamma_mem, mem; -procedure main_1812(); +procedure main(); modifies Gamma_R0, Gamma_R8, Gamma_R9, Gamma_mem, R0, R8, R9, mem; - free requires (memory_load64_le(mem, 69664bv64) == 0bv64); - free requires (memory_load64_le(mem, 69672bv64) == 69672bv64); - free requires (memory_load32_le(mem, 1868bv64) == 131073bv32); - free requires (memory_load64_le(mem, 69064bv64) == 1808bv64); - free requires (memory_load64_le(mem, 69072bv64) == 1728bv64); - free requires (memory_load64_le(mem, 69592bv64) == 1812bv64); - free requires (memory_load64_le(mem, 69672bv64) == 69672bv64); - free ensures (memory_load32_le(mem, 1868bv64) == 131073bv32); - free ensures (memory_load64_le(mem, 69064bv64) == 1808bv64); - free ensures (memory_load64_le(mem, 69072bv64) == 1728bv64); - free ensures (memory_load64_le(mem, 69592bv64) == 1812bv64); - free ensures (memory_load64_le(mem, 69672bv64) == 69672bv64); + free requires (memory_load64_le(mem, 131072bv64) == 0bv64); + free requires (memory_load64_le(mem, 131080bv64) == 131080bv64); + free requires (memory_load32_le(mem, 2320bv64) == 131073bv32); + free requires (memory_load64_le(mem, 130432bv64) == 2256bv64); + free requires (memory_load64_le(mem, 130440bv64) == 2176bv64); + free requires (memory_load64_le(mem, 131040bv64) == 131092bv64); + free requires (memory_load64_le(mem, 131056bv64) == 2260bv64); + free requires (memory_load64_le(mem, 131080bv64) == 131080bv64); + free ensures (memory_load32_le(mem, 2320bv64) == 131073bv32); + free ensures (memory_load64_le(mem, 130432bv64) == 2256bv64); + free ensures (memory_load64_le(mem, 130440bv64) == 2176bv64); + free ensures (memory_load64_le(mem, 131040bv64) == 131092bv64); + free ensures (memory_load64_le(mem, 131056bv64) == 2260bv64); + free ensures (memory_load64_le(mem, 131080bv64) == 131080bv64); -implementation main_1812() +implementation main() { - var Gamma_load10: bool; - var load10: bv32; - main_1812__0__8o8s0gkLQHmltXj4DgySqA: - assume {:captureState "main_1812__0__8o8s0gkLQHmltXj4DgySqA"} true; - R8, Gamma_R8 := 69632bv64, true; + var $load1: bv64; + var $load2: bv32; + var Gamma_$load1: bool; + var Gamma_$load2: bool; + $main$__0__$IkNYmV06TxC75h8A4NM3wA: + assume {:captureState "$main$__0__$IkNYmV06TxC75h8A4NM3wA"} true; + R8, Gamma_R8 := 126976bv64, true; call rely(); - load10, Gamma_load10 := memory_load32_le(mem, bvadd64(R8, 52bv64)), (gamma_load32(Gamma_mem, bvadd64(R8, 52bv64)) || L(mem, bvadd64(R8, 52bv64))); - R9, Gamma_R9 := zero_extend32_32(load10), Gamma_load10; + $load1, Gamma_$load1 := memory_load64_le(mem, bvadd64(R8, 4064bv64)), (gamma_load64(Gamma_mem, bvadd64(R8, 4064bv64)) || L(mem, bvadd64(R8, 4064bv64))); + R8, Gamma_R8 := $load1, Gamma_$load1; + call rely(); + $load2, Gamma_$load2 := memory_load32_le(mem, R8), (gamma_load32(Gamma_mem, R8) || L(mem, R8)); + R9, Gamma_R9 := zero_extend32_32($load2), Gamma_$load2; assert Gamma_R9; - goto main_1812__0__8o8s0gkLQHmltXj4DgySqA_goto_main_1812__2__J_ed8O5fQyujpIXPBE06ZA, main_1812__0__8o8s0gkLQHmltXj4DgySqA_goto_main_1812__1__PgxZhKszSIyzQiwC3MZUTg; - main_1812__0__8o8s0gkLQHmltXj4DgySqA_goto_main_1812__1__PgxZhKszSIyzQiwC3MZUTg: - assume {:captureState "main_1812__0__8o8s0gkLQHmltXj4DgySqA_goto_main_1812__1__PgxZhKszSIyzQiwC3MZUTg"} true; - assume (!(R9[32:0] == 0bv32)); + goto $main$__0__$IkNYmV06TxC75h8A4NM3wA_goto_$main$__2__$lwyID0MJQb6vgyjzPFtz8Q, $main$__0__$IkNYmV06TxC75h8A4NM3wA_goto_$main$__1__$D9t2gNJrSmyMH3GAVRe3IQ; + $main$__1__$D9t2gNJrSmyMH3GAVRe3IQ: + assume {:captureState "$main$__1__$D9t2gNJrSmyMH3GAVRe3IQ"} true; R0, Gamma_R0 := 0bv64, true; - goto main_1812__1__PgxZhKszSIyzQiwC3MZUTg; - main_1812__1__PgxZhKszSIyzQiwC3MZUTg: - assume {:captureState "main_1812__1__PgxZhKszSIyzQiwC3MZUTg"} true; - goto main_1812_basil_return; - main_1812__0__8o8s0gkLQHmltXj4DgySqA_goto_main_1812__2__J_ed8O5fQyujpIXPBE06ZA: - assume {:captureState "main_1812__0__8o8s0gkLQHmltXj4DgySqA_goto_main_1812__2__J_ed8O5fQyujpIXPBE06ZA"} true; - assume (R9[32:0] == 0bv32); + goto main_basil_return; + $main$__2__$lwyID0MJQb6vgyjzPFtz8Q: + assume {:captureState "$main$__2__$lwyID0MJQb6vgyjzPFtz8Q"} true; R9, Gamma_R9 := 1bv64, true; call rely(); - assert (L(mem, bvadd64(R8, 52bv64)) ==> Gamma_R9); - mem, Gamma_mem := memory_store32_le(mem, bvadd64(R8, 52bv64), R9[32:0]), gamma_store32(Gamma_mem, bvadd64(R8, 52bv64), Gamma_R9); - assume {:captureState "1836_0"} true; + assert (L(mem, R8) ==> Gamma_R9); + mem, Gamma_mem := memory_store32_le(mem, R8, R9[32:0]), gamma_store32(Gamma_mem, R8, Gamma_R9); + assume {:captureState "2288$0"} true; R0, Gamma_R0 := 0bv64, true; - goto main_1812__2__J_ed8O5fQyujpIXPBE06ZA; - main_1812__2__J_ed8O5fQyujpIXPBE06ZA: - assume {:captureState "main_1812__2__J_ed8O5fQyujpIXPBE06ZA"} true; - goto main_1812_basil_return; - main_1812_basil_return: - assume {:captureState "main_1812_basil_return"} true; + goto main_basil_return; + $main$__0__$IkNYmV06TxC75h8A4NM3wA_goto_$main$__2__$lwyID0MJQb6vgyjzPFtz8Q: + assume {:captureState "$main$__0__$IkNYmV06TxC75h8A4NM3wA_goto_$main$__2__$lwyID0MJQb6vgyjzPFtz8Q"} true; + assume (R9[32:0] == 0bv32); + goto $main$__2__$lwyID0MJQb6vgyjzPFtz8Q; + $main$__0__$IkNYmV06TxC75h8A4NM3wA_goto_$main$__1__$D9t2gNJrSmyMH3GAVRe3IQ: + assume {:captureState "$main$__0__$IkNYmV06TxC75h8A4NM3wA_goto_$main$__1__$D9t2gNJrSmyMH3GAVRe3IQ"} true; + assume (!(R9[32:0] == 0bv32)); + goto $main$__1__$D9t2gNJrSmyMH3GAVRe3IQ; + main_basil_return: + assume {:captureState "main_basil_return"} true; return; } diff --git a/src/test/correct/ifglobal/clang_pic/ifglobal.adt b/src/test/correct/ifglobal/clang_pic/ifglobal.adt deleted file mode 100644 index 6cbd02393..000000000 --- a/src/test/correct/ifglobal/clang_pic/ifglobal.adt +++ /dev/null @@ -1,559 +0,0 @@ -Project(Attrs([Attr("filename","\"clang_pic/ifglobal.out\""), -Attr("image-specification","(declare abi (name str))\n(declare arch (name str))\n(declare base-address (addr int))\n(declare bias (off int))\n(declare bits (size int))\n(declare code-region (addr int) (size int) (off int))\n(declare code-start (addr int))\n(declare entry-point (addr int))\n(declare external-reference (addr int) (name str))\n(declare format (name str))\n(declare is-executable (flag bool))\n(declare is-little-endian (flag bool))\n(declare llvm:base-address (addr int))\n(declare llvm:code-entry (name str) (off int) (size int))\n(declare llvm:coff-import-library (name str))\n(declare llvm:coff-virtual-section-header (name str) (addr int) (size int))\n(declare llvm:elf-program-header (name str) (off int) (size int))\n(declare llvm:elf-program-header-flags (name str) (ld bool) (r bool) \n (w bool) (x bool))\n(declare llvm:elf-virtual-program-header (name str) (addr int) (size int))\n(declare llvm:entry-point (addr int))\n(declare llvm:macho-symbol (name str) (value int))\n(declare llvm:name-reference (at int) (name str))\n(declare llvm:relocation (at int) (addr int))\n(declare llvm:section-entry (name str) (addr int) (size int) (off int))\n(declare llvm:section-flags (name str) (r bool) (w bool) (x bool))\n(declare llvm:segment-command (name str) (off int) (size int))\n(declare llvm:segment-command-flags (name str) (r bool) (w bool) (x bool))\n(declare llvm:symbol-entry (name str) (addr int) (size int) (off int)\n (value int))\n(declare llvm:virtual-segment-command (name str) (addr int) (size int))\n(declare mapped (addr int) (size int) (off int))\n(declare named-region (addr int) (size int) (name str))\n(declare named-symbol (addr int) (name str))\n(declare require (name str))\n(declare section (addr int) (size int))\n(declare segment (addr int) (size int) (r bool) (w bool) (x bool))\n(declare subarch (name str))\n(declare symbol-chunk (addr int) (size int) (root int))\n(declare symbol-value (addr int) (value int))\n(declare system (name str))\n(declare vendor (name str))\n\n(abi unknown)\n(arch aarch64)\n(base-address 0)\n(bias 0)\n(bits 64)\n(code-region 1944 20 1944)\n(code-region 1600 344 1600)\n(code-region 1456 96 1456)\n(code-region 1432 24 1432)\n(code-start 1652)\n(code-start 1600)\n(code-start 1876)\n(entry-point 1600)\n(external-reference 69560 _ITM_deregisterTMCloneTable)\n(external-reference 69568 __cxa_finalize)\n(external-reference 69584 __gmon_start__)\n(external-reference 69600 _ITM_registerTMCloneTable)\n(external-reference 69632 __libc_start_main)\n(external-reference 69640 __cxa_finalize)\n(external-reference 69648 __gmon_start__)\n(external-reference 69656 abort)\n(format elf)\n(is-executable true)\n(is-little-endian true)\n(llvm:base-address 0)\n(llvm:code-entry abort 0 0)\n(llvm:code-entry __cxa_finalize 0 0)\n(llvm:code-entry __libc_start_main 0 0)\n(llvm:code-entry _init 1432 0)\n(llvm:code-entry main 1876 68)\n(llvm:code-entry _start 1600 52)\n(llvm:code-entry abort@GLIBC_2.17 0 0)\n(llvm:code-entry _fini 1944 0)\n(llvm:code-entry __cxa_finalize@GLIBC_2.17 0 0)\n(llvm:code-entry __libc_start_main@GLIBC_2.34 0 0)\n(llvm:code-entry frame_dummy 1872 0)\n(llvm:code-entry __do_global_dtors_aux 1792 0)\n(llvm:code-entry register_tm_clones 1728 0)\n(llvm:code-entry deregister_tm_clones 1680 0)\n(llvm:code-entry call_weak_fn 1652 20)\n(llvm:code-entry .fini 1944 20)\n(llvm:code-entry .text 1600 344)\n(llvm:code-entry .plt 1456 96)\n(llvm:code-entry .init 1432 24)\n(llvm:elf-program-header 08 3520 576)\n(llvm:elf-program-header 07 0 0)\n(llvm:elf-program-header 06 1968 60)\n(llvm:elf-program-header 05 596 68)\n(llvm:elf-program-header 04 3536 480)\n(llvm:elf-program-header 03 3520 624)\n(llvm:elf-program-header 02 0 2216)\n(llvm:elf-program-header 01 568 27)\n(llvm:elf-program-header 00 64 504)\n(llvm:elf-program-header-flags 08 false true false false)\n(llvm:elf-program-header-flags 07 false true true false)\n(llvm:elf-program-header-flags 06 false true false false)\n(llvm:elf-program-header-flags 05 false true false false)\n(llvm:elf-program-header-flags 04 false true true false)\n(llvm:elf-program-header-flags 03 true true true false)\n(llvm:elf-program-header-flags 02 true true false true)\n(llvm:elf-program-header-flags 01 false true false false)\n(llvm:elf-program-header-flags 00 false true false false)\n(llvm:elf-virtual-program-header 08 69056 576)\n(llvm:elf-virtual-program-header 07 0 0)\n(llvm:elf-virtual-program-header 06 1968 60)\n(llvm:elf-virtual-program-header 05 596 68)\n(llvm:elf-virtual-program-header 04 69072 480)\n(llvm:elf-virtual-program-header 03 69056 632)\n(llvm:elf-virtual-program-header 02 0 2216)\n(llvm:elf-virtual-program-header 01 568 27)\n(llvm:elf-virtual-program-header 00 64 504)\n(llvm:entry-point 1600)\n(llvm:name-reference 69656 abort)\n(llvm:name-reference 69648 __gmon_start__)\n(llvm:name-reference 69640 __cxa_finalize)\n(llvm:name-reference 69632 __libc_start_main)\n(llvm:name-reference 69600 _ITM_registerTMCloneTable)\n(llvm:name-reference 69584 __gmon_start__)\n(llvm:name-reference 69568 __cxa_finalize)\n(llvm:name-reference 69560 _ITM_deregisterTMCloneTable)\n(llvm:section-entry .shstrtab 0 259 6940)\n(llvm:section-entry .strtab 0 564 6376)\n(llvm:section-entry .symtab 0 2160 4216)\n(llvm:section-entry .comment 0 71 4144)\n(llvm:section-entry .bss 69680 8 4144)\n(llvm:section-entry .data 69664 16 4128)\n(llvm:section-entry .got.plt 69608 56 4072)\n(llvm:section-entry .got 69552 56 4016)\n(llvm:section-entry .dynamic 69072 480 3536)\n(llvm:section-entry .fini_array 69064 8 3528)\n(llvm:section-entry .init_array 69056 8 3520)\n(llvm:section-entry .eh_frame 2032 184 2032)\n(llvm:section-entry .eh_frame_hdr 1968 60 1968)\n(llvm:section-entry .rodata 1964 4 1964)\n(llvm:section-entry .fini 1944 20 1944)\n(llvm:section-entry .text 1600 344 1600)\n(llvm:section-entry .plt 1456 96 1456)\n(llvm:section-entry .init 1432 24 1432)\n(llvm:section-entry .rela.plt 1336 96 1336)\n(llvm:section-entry .rela.dyn 1120 216 1120)\n(llvm:section-entry .gnu.version_r 1072 48 1072)\n(llvm:section-entry .gnu.version 1054 18 1054)\n(llvm:section-entry .dynstr 912 141 912)\n(llvm:section-entry .dynsym 696 216 696)\n(llvm:section-entry .gnu.hash 664 28 664)\n(llvm:section-entry .note.ABI-tag 632 32 632)\n(llvm:section-entry .note.gnu.build-id 596 36 596)\n(llvm:section-entry .interp 568 27 568)\n(llvm:section-flags .shstrtab true false false)\n(llvm:section-flags .strtab true false false)\n(llvm:section-flags .symtab true false false)\n(llvm:section-flags .comment true false false)\n(llvm:section-flags .bss true true false)\n(llvm:section-flags .data true true false)\n(llvm:section-flags .got.plt true true false)\n(llvm:section-flags .got true true false)\n(llvm:section-flags .dynamic true true false)\n(llvm:section-flags .fini_array true true false)\n(llvm:section-flags .init_array true true false)\n(llvm:section-flags .eh_frame true false false)\n(llvm:section-flags .eh_frame_hdr true false false)\n(llvm:section-flags .rodata true false false)\n(llvm:section-flags .fini true false true)\n(llvm:section-flags .text true false true)\n(llvm:section-flags .plt true false true)\n(llvm:section-flags .init true false true)\n(llvm:section-flags .rela.plt true false false)\n(llvm:section-flags .rela.dyn true false false)\n(llvm:section-flags .gnu.version_r true false false)\n(llvm:section-flags .gnu.version true false false)\n(llvm:section-flags .dynstr true false false)\n(llvm:section-flags .dynsym true false false)\n(llvm:section-flags .gnu.hash true false false)\n(llvm:section-flags .note.ABI-tag true false false)\n(llvm:section-flags .note.gnu.build-id true false false)\n(llvm:section-flags .interp true false false)\n(llvm:symbol-entry abort 0 0 0 0)\n(llvm:symbol-entry __cxa_finalize 0 0 0 0)\n(llvm:symbol-entry __libc_start_main 0 0 0 0)\n(llvm:symbol-entry _init 1432 0 1432 1432)\n(llvm:symbol-entry main 1876 68 1876 1876)\n(llvm:symbol-entry _start 1600 52 1600 1600)\n(llvm:symbol-entry abort@GLIBC_2.17 0 0 0 0)\n(llvm:symbol-entry _fini 1944 0 1944 1944)\n(llvm:symbol-entry __cxa_finalize@GLIBC_2.17 0 0 0 0)\n(llvm:symbol-entry __libc_start_main@GLIBC_2.34 0 0 0 0)\n(llvm:symbol-entry frame_dummy 1872 0 1872 1872)\n(llvm:symbol-entry __do_global_dtors_aux 1792 0 1792 1792)\n(llvm:symbol-entry register_tm_clones 1728 0 1728 1728)\n(llvm:symbol-entry deregister_tm_clones 1680 0 1680 1680)\n(llvm:symbol-entry call_weak_fn 1652 20 1652 1652)\n(mapped 0 2216 0)\n(mapped 69056 624 3520)\n(named-region 0 2216 02)\n(named-region 69056 632 03)\n(named-region 568 27 .interp)\n(named-region 596 36 .note.gnu.build-id)\n(named-region 632 32 .note.ABI-tag)\n(named-region 664 28 .gnu.hash)\n(named-region 696 216 .dynsym)\n(named-region 912 141 .dynstr)\n(named-region 1054 18 .gnu.version)\n(named-region 1072 48 .gnu.version_r)\n(named-region 1120 216 .rela.dyn)\n(named-region 1336 96 .rela.plt)\n(named-region 1432 24 .init)\n(named-region 1456 96 .plt)\n(named-region 1600 344 .text)\n(named-region 1944 20 .fini)\n(named-region 1964 4 .rodata)\n(named-region 1968 60 .eh_frame_hdr)\n(named-region 2032 184 .eh_frame)\n(named-region 69056 8 .init_array)\n(named-region 69064 8 .fini_array)\n(named-region 69072 480 .dynamic)\n(named-region 69552 56 .got)\n(named-region 69608 56 .got.plt)\n(named-region 69664 16 .data)\n(named-region 69680 8 .bss)\n(named-region 0 71 .comment)\n(named-region 0 2160 .symtab)\n(named-region 0 564 .strtab)\n(named-region 0 259 .shstrtab)\n(named-symbol 1652 call_weak_fn)\n(named-symbol 1680 deregister_tm_clones)\n(named-symbol 1728 register_tm_clones)\n(named-symbol 1792 __do_global_dtors_aux)\n(named-symbol 1872 frame_dummy)\n(named-symbol 0 __libc_start_main@GLIBC_2.34)\n(named-symbol 0 __cxa_finalize@GLIBC_2.17)\n(named-symbol 1944 _fini)\n(named-symbol 0 abort@GLIBC_2.17)\n(named-symbol 1600 _start)\n(named-symbol 1876 main)\n(named-symbol 1432 _init)\n(named-symbol 0 __libc_start_main)\n(named-symbol 0 __cxa_finalize)\n(named-symbol 0 abort)\n(require libc.so.6)\n(section 568 27)\n(section 596 36)\n(section 632 32)\n(section 664 28)\n(section 696 216)\n(section 912 141)\n(section 1054 18)\n(section 1072 48)\n(section 1120 216)\n(section 1336 96)\n(section 1432 24)\n(section 1456 96)\n(section 1600 344)\n(section 1944 20)\n(section 1964 4)\n(section 1968 60)\n(section 2032 184)\n(section 69056 8)\n(section 69064 8)\n(section 69072 480)\n(section 69552 56)\n(section 69608 56)\n(section 69664 16)\n(section 69680 8)\n(section 0 71)\n(section 0 2160)\n(section 0 564)\n(section 0 259)\n(segment 0 2216 true false true)\n(segment 69056 632 true true false)\n(subarch v8)\n(symbol-chunk 1652 20 1652)\n(symbol-chunk 1600 52 1600)\n(symbol-chunk 1876 68 1876)\n(symbol-value 1652 1652)\n(symbol-value 1680 1680)\n(symbol-value 1728 1728)\n(symbol-value 1792 1792)\n(symbol-value 1872 1872)\n(symbol-value 1944 1944)\n(symbol-value 1600 1600)\n(symbol-value 1876 1876)\n(symbol-value 1432 1432)\n(symbol-value 0 0)\n(system \"\")\n(vendor \"\")\n"), -Attr("abi-name","\"aarch64-linux-gnu-elf\"")]), -Sections([Section(".shstrtab", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x40\x06\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x20\x1c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x38\x00\x09\x00\x40\x00\x1d\x00\x1c\x00\x06\x00\x00\x00\x04\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x04\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xa8\x08\x00\x00\x00\x00\x00\x00\xa8\x08\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x01\x00\x00\x00\x06\x00\x00\x00\xc0\x0d\x00\x00\x00\x00\x00\x00\xc0\x0d\x01\x00\x00\x00\x00\x00\xc0\x0d\x01"), -Section(".strtab", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x40\x06\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x20\x1c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x38\x00\x09\x00\x40\x00\x1d\x00\x1c\x00\x06\x00\x00\x00\x04\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x04\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xa8\x08\x00\x00\x00\x00\x00\x00\xa8\x08\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x01\x00\x00\x00\x06\x00\x00\x00\xc0\x0d\x00\x00\x00\x00\x00\x00\xc0\x0d\x01\x00\x00\x00\x00\x00\xc0\x0d\x01\x00\x00\x00\x00\x00\x70\x02\x00\x00\x00\x00\x00\x00\x78\x02\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x02\x00\x00\x00\x06\x00\x00\x00\xd0\x0d\x00\x00\x00\x00\x00\x00\xd0\x0d\x01\x00\x00\x00\x00\x00\xd0\x0d\x01\x00\x00\x00\x00\x00\xe0\x01\x00\x00\x00\x00\x00\x00\xe0\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x04\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x50\xe5\x74\x64\x04\x00\x00\x00\xb0\x07\x00\x00\x00\x00\x00\x00\xb0\x07\x00\x00\x00\x00\x00\x00\xb0\x07\x00\x00\x00\x00\x00\x00\x3c\x00\x00\x00\x00\x00\x00\x00\x3c\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x51\xe5\x74\x64\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x52\xe5\x74\x64\x04\x00\x00\x00\xc0\x0d\x00\x00\x00\x00\x00\x00\xc0\x0d\x01\x00\x00\x00\x00\x00\xc0\x0d\x01\x00\x00\x00\x00\x00\x40\x02\x00\x00\x00\x00\x00\x00\x40\x02\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00"), -Section(".symtab", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x40\x06\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x20\x1c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x38\x00\x09\x00\x40\x00\x1d\x00\x1c\x00\x06\x00\x00\x00\x04\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x04\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xa8\x08\x00\x00\x00\x00\x00\x00\xa8\x08\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x01\x00\x00\x00\x06\x00\x00\x00\xc0\x0d\x00\x00\x00\x00\x00\x00\xc0\x0d\x01\x00\x00\x00\x00\x00\xc0\x0d\x01\x00\x00\x00\x00\x00\x70\x02\x00\x00\x00\x00\x00\x00\x78\x02\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x02\x00\x00\x00\x06\x00\x00\x00\xd0\x0d\x00\x00\x00\x00\x00\x00\xd0\x0d\x01\x00\x00\x00\x00\x00\xd0\x0d\x01\x00\x00\x00\x00\x00\xe0\x01\x00\x00\x00\x00\x00\x00\xe0\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x04\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x50\xe5\x74\x64\x04\x00\x00\x00\xb0\x07\x00\x00\x00\x00\x00\x00\xb0\x07\x00\x00\x00\x00\x00\x00\xb0\x07\x00\x00\x00\x00\x00\x00\x3c\x00\x00\x00\x00\x00\x00\x00\x3c\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x51\xe5\x74\x64\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x52\xe5\x74\x64\x04\x00\x00\x00\xc0\x0d\x00\x00\x00\x00\x00\x00\xc0\x0d\x01\x00\x00\x00\x00\x00\xc0\x0d\x01\x00\x00\x00\x00\x00\x40\x02\x00\x00\x00\x00\x00\x00\x40\x02\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x2f\x6c\x69\x62\x2f\x6c\x64\x2d\x6c\x69\x6e\x75\x78\x2d\x61\x61\x72\x63\x68\x36\x34\x2e\x73\x6f\x2e\x31\x00\x00\x04\x00\x00\x00\x14\x00\x00\x00\x03\x00\x00\x00\x47\x4e\x55\x00\x97\x4a\xa2\x79\x56\xc1\x54\x50\xbb\xa2\xed\x60\x03\x75\xd2\x7b\x01\x39\xef\x38\x04\x00\x00\x00\x10\x00\x00\x00\x01\x00\x00\x00\x47\x4e\x55\x00\x00\x00\x00\x00\x03\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x01\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x0b\x00\x98\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x17\x00\x20\x10\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x48\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x22\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x22\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x73\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5f\x5f\x63\x78\x61\x5f\x66\x69\x6e\x61\x6c\x69\x7a\x65\x00\x5f\x5f\x6c\x69\x62\x63\x5f\x73\x74\x61\x72\x74\x5f\x6d\x61\x69\x6e\x00\x61\x62\x6f\x72\x74\x00\x6c\x69\x62\x63\x2e\x73\x6f\x2e\x36\x00\x47\x4c\x49\x42\x43\x5f\x32\x2e\x31\x37\x00\x47\x4c\x49\x42\x43\x5f\x32\x2e\x33\x34\x00\x5f\x49\x54\x4d\x5f\x64\x65\x72\x65\x67\x69\x73\x74\x65\x72\x54\x4d\x43\x6c\x6f\x6e\x65\x54\x61\x62\x6c\x65\x00\x5f\x5f\x67\x6d\x6f\x6e\x5f\x73\x74\x61\x72\x74\x5f\x5f\x00\x5f\x49\x54\x4d\x5f\x72\x65\x67\x69\x73\x74\x65\x72\x54\x4d\x43\x6c\x6f\x6e\x65\x54\x61\x62\x6c\x65\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x01\x00\x03\x00\x01\x00\x03\x00\x01\x00\x01\x00\x02\x00\x28\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x97\x91\x96\x06\x00\x00\x03\x00\x32\x00\x00\x00\x10\x00\x00\x00\xb4\x91\x96\x06\x00\x00\x02\x00\x3d\x00\x00\x00\x00\x00\x00\x00\xc0\x0d\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x50\x07\x00\x00\x00\x00\x00\x00\xc8\x0d\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\xc8\x0f\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x34\x10\x01\x00\x00\x00\x00\x00\xd8\x0f\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x54\x07\x00\x00\x00\x00\x00\x00\x28\x10\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x28\x10\x01\x00\x00\x00\x00\x00\xb8\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xc0\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xd0\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe0\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x08\x10\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x10\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x18\x10\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1f\x20\x03\xd5\xfd\x7b\xbf\xa9\xfd\x03\x00\x91\x34\x00\x00\x94\xfd\x7b\xc1\xa8\xc0\x03\x5f\xd6\xf0\x7b\xbf\xa9\x90\x00\x00\x90\x11\xfe\x47\xf9\x10\xe2\x3f\x91\x20\x02\x1f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x90\x00\x00\xb0\x11\x02\x40\xf9\x10\x02\x00\x91\x20\x02\x1f\xd6\x90\x00\x00\xb0\x11\x06\x40\xf9\x10\x22\x00\x91\x20\x02\x1f\xd6\x90\x00\x00\xb0\x11\x0a\x40\xf9\x10\x42\x00\x91\x20\x02\x1f\xd6\x90\x00\x00\xb0\x11\x0e\x40\xf9\x10\x62\x00\x91\x20\x02\x1f\xd6\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1f\x20\x03\xd5\x1d\x00\x80\xd2\x1e\x00\x80\xd2\xe5\x03\x00\xaa\xe1\x03\x40\xf9\xe2\x23\x00\x91\xe6\x03\x00\x91\x80\x00\x00\x90\x00\xec\x47\xf9\x03\x00\x80\xd2\x04\x00\x80\xd2\xd9\xff\xff\x97\xe4\xff\xff\x97\x80\x00\x00\x90\x00\xe8\x47\xf9\x40\x00\x00\xb4\xdc\xff\xff\x17\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x80\x00\x00\xb0\x00\xc0\x00\x91\x81\x00\x00\xb0\x21\xc0\x00\x91\x3f\x00\x00\xeb\xc0\x00\x00\x54\x81\x00\x00\x90\x21\xdc\x47\xf9\x61\x00\x00\xb4\xf0\x03\x01\xaa\x00\x02\x1f\xd6\xc0\x03\x5f\xd6\x80\x00\x00\xb0\x00\xc0\x00\x91\x81\x00\x00\xb0\x21\xc0\x00\x91\x21\x00\x00\xcb\x22\xfc\x7f\xd3\x41\x0c\x81\x8b\x21\xfc\x41\x93\xc1\x00\x00\xb4\x82\x00\x00\x90\x42\xf0\x47\xf9\x62\x00\x00\xb4\xf0\x03\x02\xaa\x00\x02\x1f\xd6\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\xfd\x7b\xbe\xa9\xfd\x03\x00\x91\xf3\x0b\x00\xf9\x93\x00\x00\xb0\x60\xc2\x40\x39\x40\x01\x00\x35\x80\x00\x00\x90\x00\xe0\x47\xf9\x80\x00\x00\xb4\x80\x00\x00\xb0\x00\x14\x40\xf9\xad\xff\xff\x97\xd8\xff\xff\x97\x20\x00\x80\x52\x60\xc2\x00\x39\xf3\x0b\x40\xf9\xfd\x7b\xc2\xa8\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\xdc\xff\xff\x17\xff\x43\x00\xd1\xff\x0f\x00\xb9\x88\x00\x00\x90\x08\xe5\x47\xf9\x08\x01\x40\xb9\x08\x01\x00\x71\xe8\x07\x9f\x1a\xe8\x00\x00\x37\x01\x00\x00\x14\x28\x00\x80\x52\x89\x00\x00\x90\x29\xe5\x47\xf9\x28\x01\x00\xb9\x01\x00\x00\x14\xe0\x0f\x40\xb9\xff\x43\x00\x91\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\xfd\x7b\xbf\xa9\xfd\x03\x00\x91\xfd\x7b\xc1\xa8\xc0\x03\x5f\xd6\x01\x00\x02\x00\x01\x1b\x03\x3b\x3c\x00\x00\x00\x06\x00\x00\x00\x90\xfe\xff\xff\x54\x00\x00\x00\xe0\xfe\xff\xff\x68\x00\x00\x00\x10\xff\xff\xff\x7c\x00\x00\x00\x50\xff\xff\xff\x90\x00\x00\x00\xa0\xff\xff\xff\xb4\x00\x00\x00\xa4\xff\xff\xff\xdc\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x01\x7a\x52\x00\x04\x78\x1e\x01\x1b\x0c\x1f\x00\x10\x00\x00\x00\x18\x00\x00\x00\x34\xfe\xff\xff\x34\x00\x00\x00\x00\x41\x07\x1e\x10\x00\x00\x00\x2c\x00\x00\x00\x70\xfe\xff\xff\x30\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x40\x00\x00\x00\x8c\xfe\xff\xff\x3c\x00\x00\x00\x00\x00\x00\x00\x20\x00\x00\x00\x54\x00\x00\x00\xb8\xfe\xff\xff\x48\x00\x00\x00\x00\x41\x0e\x20\x9d\x04\x9e\x03\x42\x93\x02\x4e\xde\xdd\xd3\x0e\x00\x00\x00\x00\x10\x00\x00\x00\x78\x00\x00\x00\xe4\xfe\xff\xff"), -Section(".comment", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x40\x06\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x20\x1c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x38\x00\x09\x00\x40\x00\x1d\x00\x1c\x00\x06\x00\x00\x00\x04\x00\x00"), -Section(".interp", 0x238, "\x2f\x6c\x69\x62\x2f\x6c\x64\x2d\x6c\x69\x6e\x75\x78\x2d\x61\x61\x72\x63\x68\x36\x34\x2e\x73\x6f\x2e\x31\x00"), -Section(".note.gnu.build-id", 0x254, "\x04\x00\x00\x00\x14\x00\x00\x00\x03\x00\x00\x00\x47\x4e\x55\x00\x97\x4a\xa2\x79\x56\xc1\x54\x50\xbb\xa2\xed\x60\x03\x75\xd2\x7b\x01\x39\xef\x38"), -Section(".note.ABI-tag", 0x278, "\x04\x00\x00\x00\x10\x00\x00\x00\x01\x00\x00\x00\x47\x4e\x55\x00\x00\x00\x00\x00\x03\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00"), -Section(".gnu.hash", 0x298, "\x01\x00\x00\x00\x01\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".dynsym", 0x2B8, "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x0b\x00\x98\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x17\x00\x20\x10\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x48\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x22\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x22\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x73\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".dynstr", 0x390, "\x00\x5f\x5f\x63\x78\x61\x5f\x66\x69\x6e\x61\x6c\x69\x7a\x65\x00\x5f\x5f\x6c\x69\x62\x63\x5f\x73\x74\x61\x72\x74\x5f\x6d\x61\x69\x6e\x00\x61\x62\x6f\x72\x74\x00\x6c\x69\x62\x63\x2e\x73\x6f\x2e\x36\x00\x47\x4c\x49\x42\x43\x5f\x32\x2e\x31\x37\x00\x47\x4c\x49\x42\x43\x5f\x32\x2e\x33\x34\x00\x5f\x49\x54\x4d\x5f\x64\x65\x72\x65\x67\x69\x73\x74\x65\x72\x54\x4d\x43\x6c\x6f\x6e\x65\x54\x61\x62\x6c\x65\x00\x5f\x5f\x67\x6d\x6f\x6e\x5f\x73\x74\x61\x72\x74\x5f\x5f\x00\x5f\x49\x54\x4d\x5f\x72\x65\x67\x69\x73\x74\x65\x72\x54\x4d\x43\x6c\x6f\x6e\x65\x54\x61\x62\x6c\x65\x00"), -Section(".gnu.version", 0x41E, "\x00\x00\x00\x00\x00\x00\x02\x00\x01\x00\x03\x00\x01\x00\x03\x00\x01\x00"), -Section(".gnu.version_r", 0x430, "\x01\x00\x02\x00\x28\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x97\x91\x96\x06\x00\x00\x03\x00\x32\x00\x00\x00\x10\x00\x00\x00\xb4\x91\x96\x06\x00\x00\x02\x00\x3d\x00\x00\x00\x00\x00\x00\x00"), -Section(".rela.dyn", 0x460, "\xc0\x0d\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x50\x07\x00\x00\x00\x00\x00\x00\xc8\x0d\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\xc8\x0f\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x34\x10\x01\x00\x00\x00\x00\x00\xd8\x0f\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x54\x07\x00\x00\x00\x00\x00\x00\x28\x10\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x28\x10\x01\x00\x00\x00\x00\x00\xb8\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xc0\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xd0\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe0\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".rela.plt", 0x538, "\x00\x10\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x08\x10\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x10\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x18\x10\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".init", 0x598, "\x1f\x20\x03\xd5\xfd\x7b\xbf\xa9\xfd\x03\x00\x91\x34\x00\x00\x94\xfd\x7b\xc1\xa8\xc0\x03\x5f\xd6"), -Section(".plt", 0x5B0, "\xf0\x7b\xbf\xa9\x90\x00\x00\x90\x11\xfe\x47\xf9\x10\xe2\x3f\x91\x20\x02\x1f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x90\x00\x00\xb0\x11\x02\x40\xf9\x10\x02\x00\x91\x20\x02\x1f\xd6\x90\x00\x00\xb0\x11\x06\x40\xf9\x10\x22\x00\x91\x20\x02\x1f\xd6\x90\x00\x00\xb0\x11\x0a\x40\xf9\x10\x42\x00\x91\x20\x02\x1f\xd6\x90\x00\x00\xb0\x11\x0e\x40\xf9\x10\x62\x00\x91\x20\x02\x1f\xd6"), -Section(".fini", 0x798, "\x1f\x20\x03\xd5\xfd\x7b\xbf\xa9\xfd\x03\x00\x91\xfd\x7b\xc1\xa8\xc0\x03\x5f\xd6"), -Section(".rodata", 0x7AC, "\x01\x00\x02\x00"), -Section(".eh_frame_hdr", 0x7B0, "\x01\x1b\x03\x3b\x3c\x00\x00\x00\x06\x00\x00\x00\x90\xfe\xff\xff\x54\x00\x00\x00\xe0\xfe\xff\xff\x68\x00\x00\x00\x10\xff\xff\xff\x7c\x00\x00\x00\x50\xff\xff\xff\x90\x00\x00\x00\xa0\xff\xff\xff\xb4\x00\x00\x00\xa4\xff\xff\xff\xdc\x00\x00\x00"), -Section(".eh_frame", 0x7F0, "\x10\x00\x00\x00\x00\x00\x00\x00\x01\x7a\x52\x00\x04\x78\x1e\x01\x1b\x0c\x1f\x00\x10\x00\x00\x00\x18\x00\x00\x00\x34\xfe\xff\xff\x34\x00\x00\x00\x00\x41\x07\x1e\x10\x00\x00\x00\x2c\x00\x00\x00\x70\xfe\xff\xff\x30\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x40\x00\x00\x00\x8c\xfe\xff\xff\x3c\x00\x00\x00\x00\x00\x00\x00\x20\x00\x00\x00\x54\x00\x00\x00\xb8\xfe\xff\xff\x48\x00\x00\x00\x00\x41\x0e\x20\x9d\x04\x9e\x03\x42\x93\x02\x4e\xde\xdd\xd3\x0e\x00\x00\x00\x00\x10\x00\x00\x00\x78\x00\x00\x00\xe4\xfe\xff\xff\x04\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x01\x7a\x52\x00\x01\x7c\x1e\x01\x1b\x0c\x1f\x00\x14\x00\x00\x00\x18\x00\x00\x00\xc0\xfe\xff\xff\x44\x00\x00\x00\x00\x44\x0e\x10\x7c\x0e\x00\x00\x00\x00\x00\x00"), -Section(".fini_array", 0x10DC8, "\x00\x07\x00\x00\x00\x00\x00\x00"), -Section(".dynamic", 0x10DD0, "\x01\x00\x00\x00\x00\x00\x00\x00\x28\x00\x00\x00\x00\x00\x00\x00\x0c\x00\x00\x00\x00\x00\x00\x00\x98\x05\x00\x00\x00\x00\x00\x00\x0d\x00\x00\x00\x00\x00\x00\x00\x98\x07\x00\x00\x00\x00\x00\x00\x19\x00\x00\x00\x00\x00\x00\x00\xc0\x0d\x01\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x1a\x00\x00\x00\x00\x00\x00\x00\xc8\x0d\x01\x00\x00\x00\x00\x00\x1c\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\xf5\xfe\xff\x6f\x00\x00\x00\x00\x98\x02\x00\x00\x00\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x90\x03\x00\x00\x00\x00\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\xb8\x02\x00\x00\x00\x00\x00\x00\x0a\x00\x00\x00\x00\x00\x00\x00\x8d\x00\x00\x00\x00\x00\x00\x00\x0b\x00\x00\x00\x00\x00\x00\x00\x18\x00\x00\x00\x00\x00\x00\x00\x15\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\xe8\x0f\x01\x00\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x60\x00\x00\x00\x00\x00\x00\x00\x14\x00\x00\x00\x00\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x17\x00\x00\x00\x00\x00\x00\x00\x38\x05\x00\x00\x00\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x60\x04\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\xd8\x00\x00\x00\x00\x00\x00\x00\x09\x00\x00\x00\x00\x00\x00\x00\x18\x00\x00\x00\x00\x00\x00\x00\xfb\xff\xff\x6f\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\xfe\xff\xff\x6f\x00\x00\x00\x00\x30\x04\x00\x00\x00\x00\x00\x00\xff\xff\xff\x6f\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\xf0\xff\xff\x6f\x00\x00\x00\x00\x1e\x04\x00\x00\x00\x00\x00\x00\xf9\xff\xff\x6f\x00\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".init_array", 0x10DC0, "\x50\x07\x00\x00\x00\x00\x00\x00"), -Section(".got", 0x10FB0, "\xd0\x0d\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x34\x10\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x54\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".got.plt", 0x10FE8, "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xb0\x05\x00\x00\x00\x00\x00\x00\xb0\x05\x00\x00\x00\x00\x00\x00\xb0\x05\x00\x00\x00\x00\x00\x00\xb0\x05\x00\x00\x00\x00\x00\x00"), -Section(".data", 0x11020, "\x00\x00\x00\x00\x00\x00\x00\x00\x28\x10\x01\x00\x00\x00\x00\x00"), -Section(".text", 0x640, "\x1f\x20\x03\xd5\x1d\x00\x80\xd2\x1e\x00\x80\xd2\xe5\x03\x00\xaa\xe1\x03\x40\xf9\xe2\x23\x00\x91\xe6\x03\x00\x91\x80\x00\x00\x90\x00\xec\x47\xf9\x03\x00\x80\xd2\x04\x00\x80\xd2\xd9\xff\xff\x97\xe4\xff\xff\x97\x80\x00\x00\x90\x00\xe8\x47\xf9\x40\x00\x00\xb4\xdc\xff\xff\x17\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x80\x00\x00\xb0\x00\xc0\x00\x91\x81\x00\x00\xb0\x21\xc0\x00\x91\x3f\x00\x00\xeb\xc0\x00\x00\x54\x81\x00\x00\x90\x21\xdc\x47\xf9\x61\x00\x00\xb4\xf0\x03\x01\xaa\x00\x02\x1f\xd6\xc0\x03\x5f\xd6\x80\x00\x00\xb0\x00\xc0\x00\x91\x81\x00\x00\xb0\x21\xc0\x00\x91\x21\x00\x00\xcb\x22\xfc\x7f\xd3\x41\x0c\x81\x8b\x21\xfc\x41\x93\xc1\x00\x00\xb4\x82\x00\x00\x90\x42\xf0\x47\xf9\x62\x00\x00\xb4\xf0\x03\x02\xaa\x00\x02\x1f\xd6\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\xfd\x7b\xbe\xa9\xfd\x03\x00\x91\xf3\x0b\x00\xf9\x93\x00\x00\xb0\x60\xc2\x40\x39\x40\x01\x00\x35\x80\x00\x00\x90\x00\xe0\x47\xf9\x80\x00\x00\xb4\x80\x00\x00\xb0\x00\x14\x40\xf9\xad\xff\xff\x97\xd8\xff\xff\x97\x20\x00\x80\x52\x60\xc2\x00\x39\xf3\x0b\x40\xf9\xfd\x7b\xc2\xa8\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\xdc\xff\xff\x17\xff\x43\x00\xd1\xff\x0f\x00\xb9\x88\x00\x00\x90\x08\xe5\x47\xf9\x08\x01\x40\xb9\x08\x01\x00\x71\xe8\x07\x9f\x1a\xe8\x00\x00\x37\x01\x00\x00\x14\x28\x00\x80\x52\x89\x00\x00\x90\x29\xe5\x47\xf9\x28\x01\x00\xb9\x01\x00\x00\x14\xe0\x0f\x40\xb9\xff\x43\x00\x91\xc0\x03\x5f\xd6")]), -Memmap([Annotation(Region(0x0,0x8A7), Attr("segment","02 0 2216")), -Annotation(Region(0x640,0x673), Attr("symbol","\"_start\"")), -Annotation(Region(0x0,0x102), Attr("section","\".shstrtab\"")), -Annotation(Region(0x0,0x233), Attr("section","\".strtab\"")), -Annotation(Region(0x0,0x86F), Attr("section","\".symtab\"")), -Annotation(Region(0x0,0x46), Attr("section","\".comment\"")), -Annotation(Region(0x238,0x252), Attr("section","\".interp\"")), -Annotation(Region(0x254,0x277), Attr("section","\".note.gnu.build-id\"")), -Annotation(Region(0x278,0x297), Attr("section","\".note.ABI-tag\"")), -Annotation(Region(0x298,0x2B3), Attr("section","\".gnu.hash\"")), -Annotation(Region(0x2B8,0x38F), Attr("section","\".dynsym\"")), -Annotation(Region(0x390,0x41C), Attr("section","\".dynstr\"")), -Annotation(Region(0x41E,0x42F), Attr("section","\".gnu.version\"")), -Annotation(Region(0x430,0x45F), Attr("section","\".gnu.version_r\"")), -Annotation(Region(0x460,0x537), Attr("section","\".rela.dyn\"")), -Annotation(Region(0x538,0x597), Attr("section","\".rela.plt\"")), -Annotation(Region(0x598,0x5AF), Attr("section","\".init\"")), -Annotation(Region(0x5B0,0x60F), Attr("section","\".plt\"")), -Annotation(Region(0x598,0x5AF), Attr("code-region","()")), -Annotation(Region(0x5B0,0x60F), Attr("code-region","()")), -Annotation(Region(0x640,0x673), Attr("symbol-info","_start 0x640 52")), -Annotation(Region(0x674,0x687), Attr("symbol","\"call_weak_fn\"")), -Annotation(Region(0x674,0x687), Attr("symbol-info","call_weak_fn 0x674 20")), -Annotation(Region(0x754,0x797), Attr("symbol","\"main\"")), -Annotation(Region(0x754,0x797), Attr("symbol-info","main 0x754 68")), -Annotation(Region(0x798,0x7AB), Attr("section","\".fini\"")), -Annotation(Region(0x7AC,0x7AF), Attr("section","\".rodata\"")), -Annotation(Region(0x7B0,0x7EB), Attr("section","\".eh_frame_hdr\"")), -Annotation(Region(0x7F0,0x8A7), Attr("section","\".eh_frame\"")), -Annotation(Region(0x10DC0,0x1102F), Attr("segment","03 0x10DC0 632")), -Annotation(Region(0x10DC8,0x10DCF), Attr("section","\".fini_array\"")), -Annotation(Region(0x10DD0,0x10FAF), Attr("section","\".dynamic\"")), -Annotation(Region(0x10DC0,0x10DC7), Attr("section","\".init_array\"")), -Annotation(Region(0x10FB0,0x10FE7), Attr("section","\".got\"")), -Annotation(Region(0x10FE8,0x1101F), Attr("section","\".got.plt\"")), -Annotation(Region(0x11020,0x1102F), Attr("section","\".data\"")), -Annotation(Region(0x640,0x797), Attr("section","\".text\"")), -Annotation(Region(0x640,0x797), Attr("code-region","()")), -Annotation(Region(0x798,0x7AB), Attr("code-region","()"))]), -Program(Tid(1_503, "%000005df"), Attrs([]), - Subs([Sub(Tid(1_451, "@__cxa_finalize"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x5E0"), -Attr("stub","()")]), "__cxa_finalize", Args([Arg(Tid(1_504, "%000005e0"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("__cxa_finalize_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(938, "@__cxa_finalize"), - Attrs([Attr("address","0x5E0")]), Phis([]), -Defs([Def(Tid(1_186, "%000004a2"), Attrs([Attr("address","0x5E0"), -Attr("insn","adrp x16, #69632")]), Var("R16",Imm(64)), Int(69632,64)), -Def(Tid(1_193, "%000004a9"), Attrs([Attr("address","0x5E4"), -Attr("insn","ldr x17, [x16, #0x8]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(1_199, "%000004af"), Attrs([Attr("address","0x5E8"), -Attr("insn","add x16, x16, #0x8")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(8,64)))]), Jmps([Call(Tid(1_204, "%000004b4"), - Attrs([Attr("address","0x5EC"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), -Sub(Tid(1_452, "@__do_global_dtors_aux"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x700")]), - "__do_global_dtors_aux", Args([Arg(Tid(1_505, "%000005e1"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("__do_global_dtors_aux_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(658, "@__do_global_dtors_aux"), - Attrs([Attr("address","0x700")]), Phis([]), Defs([Def(Tid(662, "%00000296"), - Attrs([Attr("address","0x700"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("#3",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(18446744073709551584,64))), -Def(Tid(668, "%0000029c"), Attrs([Attr("address","0x700"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("#3",Imm(64)),Var("R29",Imm(64)),LittleEndian(),64)), -Def(Tid(674, "%000002a2"), Attrs([Attr("address","0x700"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("#3",Imm(64)),Int(8,64)),Var("R30",Imm(64)),LittleEndian(),64)), -Def(Tid(678, "%000002a6"), Attrs([Attr("address","0x700"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("R31",Imm(64)), -Var("#3",Imm(64))), Def(Tid(684, "%000002ac"), - Attrs([Attr("address","0x704"), Attr("insn","mov x29, sp")]), - Var("R29",Imm(64)), Var("R31",Imm(64))), Def(Tid(692, "%000002b4"), - Attrs([Attr("address","0x708"), Attr("insn","str x19, [sp, #0x10]")]), - Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(16,64)),Var("R19",Imm(64)),LittleEndian(),64)), -Def(Tid(697, "%000002b9"), Attrs([Attr("address","0x70C"), -Attr("insn","adrp x19, #69632")]), Var("R19",Imm(64)), Int(69632,64)), -Def(Tid(704, "%000002c0"), Attrs([Attr("address","0x710"), -Attr("insn","ldrb w0, [x19, #0x30]")]), Var("R0",Imm(64)), -UNSIGNED(64,Load(Var("mem",Mem(64,8)),PLUS(Var("R19",Imm(64)),Int(48,64)),LittleEndian(),8)))]), -Jmps([Goto(Tid(711, "%000002c7"), Attrs([Attr("address","0x714"), -Attr("insn","cbnz w0, #0x28")]), - NEQ(Extract(31,0,Var("R0",Imm(64))),Int(0,32)), -Direct(Tid(709, "%000002c5"))), Goto(Tid(1_492, "%000005d4"), Attrs([]), - Int(1,1), Direct(Tid(883, "%00000373")))])), Blk(Tid(883, "%00000373"), - Attrs([Attr("address","0x718")]), Phis([]), Defs([Def(Tid(886, "%00000376"), - Attrs([Attr("address","0x718"), Attr("insn","adrp x0, #65536")]), - Var("R0",Imm(64)), Int(65536,64)), Def(Tid(893, "%0000037d"), - Attrs([Attr("address","0x71C"), Attr("insn","ldr x0, [x0, #0xfc0]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(4032,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(899, "%00000383"), Attrs([Attr("address","0x720"), -Attr("insn","cbz x0, #0x10")]), EQ(Var("R0",Imm(64)),Int(0,64)), -Direct(Tid(897, "%00000381"))), Goto(Tid(1_493, "%000005d5"), Attrs([]), - Int(1,1), Direct(Tid(922, "%0000039a")))])), Blk(Tid(922, "%0000039a"), - Attrs([Attr("address","0x724")]), Phis([]), Defs([Def(Tid(925, "%0000039d"), - Attrs([Attr("address","0x724"), Attr("insn","adrp x0, #69632")]), - Var("R0",Imm(64)), Int(69632,64)), Def(Tid(932, "%000003a4"), - Attrs([Attr("address","0x728"), Attr("insn","ldr x0, [x0, #0x28]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(40,64)),LittleEndian(),64)), -Def(Tid(937, "%000003a9"), Attrs([Attr("address","0x72C"), -Attr("insn","bl #-0x14c")]), Var("R30",Imm(64)), Int(1840,64))]), -Jmps([Call(Tid(940, "%000003ac"), Attrs([Attr("address","0x72C"), -Attr("insn","bl #-0x14c")]), Int(1,1), -(Direct(Tid(1_451, "@__cxa_finalize")),Direct(Tid(897, "%00000381"))))])), -Blk(Tid(897, "%00000381"), Attrs([Attr("address","0x730")]), Phis([]), -Defs([Def(Tid(905, "%00000389"), Attrs([Attr("address","0x730"), -Attr("insn","bl #-0xa0")]), Var("R30",Imm(64)), Int(1844,64))]), -Jmps([Call(Tid(907, "%0000038b"), Attrs([Attr("address","0x730"), -Attr("insn","bl #-0xa0")]), Int(1,1), -(Direct(Tid(1_465, "@deregister_tm_clones")),Direct(Tid(909, "%0000038d"))))])), -Blk(Tid(909, "%0000038d"), Attrs([Attr("address","0x734")]), Phis([]), -Defs([Def(Tid(912, "%00000390"), Attrs([Attr("address","0x734"), -Attr("insn","mov w0, #0x1")]), Var("R0",Imm(64)), Int(1,64)), -Def(Tid(920, "%00000398"), Attrs([Attr("address","0x738"), -Attr("insn","strb w0, [x19, #0x30]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R19",Imm(64)),Int(48,64)),Extract(7,0,Var("R0",Imm(64))),LittleEndian(),8))]), -Jmps([Goto(Tid(1_494, "%000005d6"), Attrs([]), Int(1,1), -Direct(Tid(709, "%000002c5")))])), Blk(Tid(709, "%000002c5"), - Attrs([Attr("address","0x73C")]), Phis([]), Defs([Def(Tid(719, "%000002cf"), - Attrs([Attr("address","0x73C"), Attr("insn","ldr x19, [sp, #0x10]")]), - Var("R19",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(16,64)),LittleEndian(),64)), -Def(Tid(726, "%000002d6"), Attrs([Attr("address","0x740"), -Attr("insn","ldp x29, x30, [sp], #0x20")]), Var("R29",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(731, "%000002db"), Attrs([Attr("address","0x740"), -Attr("insn","ldp x29, x30, [sp], #0x20")]), Var("R30",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(735, "%000002df"), Attrs([Attr("address","0x740"), -Attr("insn","ldp x29, x30, [sp], #0x20")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(32,64)))]), Jmps([Call(Tid(740, "%000002e4"), - Attrs([Attr("address","0x744"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), Sub(Tid(1_456, "@__libc_start_main"), - Attrs([Attr("c.proto","signed (*)(signed (*)(signed , char** , char** );* main, signed , char** , \nvoid* auxv)"), -Attr("address","0x5D0"), Attr("stub","()")]), "__libc_start_main", - Args([Arg(Tid(1_506, "%000005e2"), - Attrs([Attr("c.layout","**[ : 64]"), -Attr("c.data","Top:u64 ptr ptr"), -Attr("c.type","signed (*)(signed , char** , char** );*")]), - Var("__libc_start_main_main",Imm(64)), Var("R0",Imm(64)), In()), -Arg(Tid(1_507, "%000005e3"), Attrs([Attr("c.layout","[signed : 32]"), -Attr("c.data","Top:u32"), Attr("c.type","signed")]), - Var("__libc_start_main_arg2",Imm(32)), LOW(32,Var("R1",Imm(64))), In()), -Arg(Tid(1_508, "%000005e4"), Attrs([Attr("c.layout","**[char : 8]"), -Attr("c.data","Top:u8 ptr ptr"), Attr("c.type","char**")]), - Var("__libc_start_main_arg3",Imm(64)), Var("R2",Imm(64)), Both()), -Arg(Tid(1_509, "%000005e5"), Attrs([Attr("c.layout","*[ : 8]"), -Attr("c.data","{} ptr"), Attr("c.type","void*")]), - Var("__libc_start_main_auxv",Imm(64)), Var("R3",Imm(64)), Both()), -Arg(Tid(1_510, "%000005e6"), Attrs([Attr("c.layout","[signed : 32]"), -Attr("c.data","Top:u32"), Attr("c.type","signed")]), - Var("__libc_start_main_result",Imm(32)), LOW(32,Var("R0",Imm(64))), -Out())]), Blks([Blk(Tid(491, "@__libc_start_main"), - Attrs([Attr("address","0x5D0")]), Phis([]), -Defs([Def(Tid(1_164, "%0000048c"), Attrs([Attr("address","0x5D0"), -Attr("insn","adrp x16, #69632")]), Var("R16",Imm(64)), Int(69632,64)), -Def(Tid(1_171, "%00000493"), Attrs([Attr("address","0x5D4"), -Attr("insn","ldr x17, [x16]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R16",Imm(64)),LittleEndian(),64)), -Def(Tid(1_177, "%00000499"), Attrs([Attr("address","0x5D8"), -Attr("insn","add x16, x16, #0x0")]), Var("R16",Imm(64)), -Var("R16",Imm(64)))]), Jmps([Call(Tid(1_182, "%0000049e"), - Attrs([Attr("address","0x5DC"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), Sub(Tid(1_457, "@_fini"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x798")]), - "_fini", Args([Arg(Tid(1_511, "%000005e7"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("_fini_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(31, "@_fini"), - Attrs([Attr("address","0x798")]), Phis([]), Defs([Def(Tid(37, "%00000025"), - Attrs([Attr("address","0x79C"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("#0",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(18446744073709551600,64))), -Def(Tid(43, "%0000002b"), Attrs([Attr("address","0x79C"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("#0",Imm(64)),Var("R29",Imm(64)),LittleEndian(),64)), -Def(Tid(49, "%00000031"), Attrs([Attr("address","0x79C"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("#0",Imm(64)),Int(8,64)),Var("R30",Imm(64)),LittleEndian(),64)), -Def(Tid(53, "%00000035"), Attrs([Attr("address","0x79C"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("R31",Imm(64)), -Var("#0",Imm(64))), Def(Tid(59, "%0000003b"), Attrs([Attr("address","0x7A0"), -Attr("insn","mov x29, sp")]), Var("R29",Imm(64)), Var("R31",Imm(64))), -Def(Tid(66, "%00000042"), Attrs([Attr("address","0x7A4"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R29",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(71, "%00000047"), Attrs([Attr("address","0x7A4"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R30",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(75, "%0000004b"), Attrs([Attr("address","0x7A4"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(16,64)))]), Jmps([Call(Tid(80, "%00000050"), - Attrs([Attr("address","0x7A8"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), Sub(Tid(1_458, "@_init"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x598")]), - "_init", Args([Arg(Tid(1_512, "%000005e8"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("_init_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(1_276, "@_init"), - Attrs([Attr("address","0x598")]), Phis([]), -Defs([Def(Tid(1_282, "%00000502"), Attrs([Attr("address","0x59C"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("#6",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(18446744073709551600,64))), -Def(Tid(1_288, "%00000508"), Attrs([Attr("address","0x59C"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("#6",Imm(64)),Var("R29",Imm(64)),LittleEndian(),64)), -Def(Tid(1_294, "%0000050e"), Attrs([Attr("address","0x59C"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("#6",Imm(64)),Int(8,64)),Var("R30",Imm(64)),LittleEndian(),64)), -Def(Tid(1_298, "%00000512"), Attrs([Attr("address","0x59C"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("R31",Imm(64)), -Var("#6",Imm(64))), Def(Tid(1_304, "%00000518"), - Attrs([Attr("address","0x5A0"), Attr("insn","mov x29, sp")]), - Var("R29",Imm(64)), Var("R31",Imm(64))), Def(Tid(1_309, "%0000051d"), - Attrs([Attr("address","0x5A4"), Attr("insn","bl #0xd0")]), - Var("R30",Imm(64)), Int(1448,64))]), Jmps([Call(Tid(1_311, "%0000051f"), - Attrs([Attr("address","0x5A4"), Attr("insn","bl #0xd0")]), Int(1,1), -(Direct(Tid(1_463, "@call_weak_fn")),Direct(Tid(1_313, "%00000521"))))])), -Blk(Tid(1_313, "%00000521"), Attrs([Attr("address","0x5A8")]), Phis([]), -Defs([Def(Tid(1_318, "%00000526"), Attrs([Attr("address","0x5A8"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R29",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(1_323, "%0000052b"), Attrs([Attr("address","0x5A8"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R30",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(1_327, "%0000052f"), Attrs([Attr("address","0x5A8"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(16,64)))]), Jmps([Call(Tid(1_332, "%00000534"), - Attrs([Attr("address","0x5AC"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), Sub(Tid(1_459, "@_start"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x640"), -Attr("entry-point","()")]), "_start", Args([Arg(Tid(1_513, "%000005e9"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("_start_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(428, "@_start"), - Attrs([Attr("address","0x640")]), Phis([]), Defs([Def(Tid(433, "%000001b1"), - Attrs([Attr("address","0x644"), Attr("insn","mov x29, #0x0")]), - Var("R29",Imm(64)), Int(0,64)), Def(Tid(438, "%000001b6"), - Attrs([Attr("address","0x648"), Attr("insn","mov x30, #0x0")]), - Var("R30",Imm(64)), Int(0,64)), Def(Tid(444, "%000001bc"), - Attrs([Attr("address","0x64C"), Attr("insn","mov x5, x0")]), - Var("R5",Imm(64)), Var("R0",Imm(64))), Def(Tid(451, "%000001c3"), - Attrs([Attr("address","0x650"), Attr("insn","ldr x1, [sp]")]), - Var("R1",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(457, "%000001c9"), Attrs([Attr("address","0x654"), -Attr("insn","add x2, sp, #0x8")]), Var("R2",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(8,64))), Def(Tid(463, "%000001cf"), - Attrs([Attr("address","0x658"), Attr("insn","mov x6, sp")]), - Var("R6",Imm(64)), Var("R31",Imm(64))), Def(Tid(468, "%000001d4"), - Attrs([Attr("address","0x65C"), Attr("insn","adrp x0, #65536")]), - Var("R0",Imm(64)), Int(65536,64)), Def(Tid(475, "%000001db"), - Attrs([Attr("address","0x660"), Attr("insn","ldr x0, [x0, #0xfd8]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(4056,64)),LittleEndian(),64)), -Def(Tid(480, "%000001e0"), Attrs([Attr("address","0x664"), -Attr("insn","mov x3, #0x0")]), Var("R3",Imm(64)), Int(0,64)), -Def(Tid(485, "%000001e5"), Attrs([Attr("address","0x668"), -Attr("insn","mov x4, #0x0")]), Var("R4",Imm(64)), Int(0,64)), -Def(Tid(490, "%000001ea"), Attrs([Attr("address","0x66C"), -Attr("insn","bl #-0x9c")]), Var("R30",Imm(64)), Int(1648,64))]), -Jmps([Call(Tid(493, "%000001ed"), Attrs([Attr("address","0x66C"), -Attr("insn","bl #-0x9c")]), Int(1,1), -(Direct(Tid(1_456, "@__libc_start_main")),Direct(Tid(495, "%000001ef"))))])), -Blk(Tid(495, "%000001ef"), Attrs([Attr("address","0x670")]), Phis([]), -Defs([Def(Tid(498, "%000001f2"), Attrs([Attr("address","0x670"), -Attr("insn","bl #-0x70")]), Var("R30",Imm(64)), Int(1652,64))]), -Jmps([Call(Tid(501, "%000001f5"), Attrs([Attr("address","0x670"), -Attr("insn","bl #-0x70")]), Int(1,1), -(Direct(Tid(1_462, "@abort")),Direct(Tid(1_495, "%000005d7"))))])), -Blk(Tid(1_495, "%000005d7"), Attrs([]), Phis([]), Defs([]), -Jmps([Call(Tid(1_496, "%000005d8"), Attrs([]), Int(1,1), -(Direct(Tid(1_463, "@call_weak_fn")),))]))])), Sub(Tid(1_462, "@abort"), - Attrs([Attr("noreturn","()"), Attr("c.proto","void (*)(void)"), -Attr("address","0x600"), Attr("stub","()")]), "abort", Args([]), -Blks([Blk(Tid(499, "@abort"), Attrs([Attr("address","0x600")]), Phis([]), -Defs([Def(Tid(1_230, "%000004ce"), Attrs([Attr("address","0x600"), -Attr("insn","adrp x16, #69632")]), Var("R16",Imm(64)), Int(69632,64)), -Def(Tid(1_237, "%000004d5"), Attrs([Attr("address","0x604"), -Attr("insn","ldr x17, [x16, #0x18]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(24,64)),LittleEndian(),64)), -Def(Tid(1_243, "%000004db"), Attrs([Attr("address","0x608"), -Attr("insn","add x16, x16, #0x18")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(24,64)))]), Jmps([Call(Tid(1_248, "%000004e0"), - Attrs([Attr("address","0x60C"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), Sub(Tid(1_463, "@call_weak_fn"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x674")]), - "call_weak_fn", Args([Arg(Tid(1_514, "%000005ea"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("call_weak_fn_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(503, "@call_weak_fn"), - Attrs([Attr("address","0x674")]), Phis([]), Defs([Def(Tid(506, "%000001fa"), - Attrs([Attr("address","0x674"), Attr("insn","adrp x0, #65536")]), - Var("R0",Imm(64)), Int(65536,64)), Def(Tid(513, "%00000201"), - Attrs([Attr("address","0x678"), Attr("insn","ldr x0, [x0, #0xfd0]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(4048,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(519, "%00000207"), Attrs([Attr("address","0x67C"), -Attr("insn","cbz x0, #0x8")]), EQ(Var("R0",Imm(64)),Int(0,64)), -Direct(Tid(517, "%00000205"))), Goto(Tid(1_497, "%000005d9"), Attrs([]), - Int(1,1), Direct(Tid(1_002, "%000003ea")))])), Blk(Tid(517, "%00000205"), - Attrs([Attr("address","0x684")]), Phis([]), Defs([]), -Jmps([Call(Tid(525, "%0000020d"), Attrs([Attr("address","0x684"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))])), -Blk(Tid(1_002, "%000003ea"), Attrs([Attr("address","0x680")]), Phis([]), -Defs([]), Jmps([Goto(Tid(1_005, "%000003ed"), Attrs([Attr("address","0x680"), -Attr("insn","b #-0x90")]), Int(1,1), -Direct(Tid(1_003, "@__gmon_start__")))])), Blk(Tid(1_003, "@__gmon_start__"), - Attrs([Attr("address","0x5F0")]), Phis([]), -Defs([Def(Tid(1_208, "%000004b8"), Attrs([Attr("address","0x5F0"), -Attr("insn","adrp x16, #69632")]), Var("R16",Imm(64)), Int(69632,64)), -Def(Tid(1_215, "%000004bf"), Attrs([Attr("address","0x5F4"), -Attr("insn","ldr x17, [x16, #0x10]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(16,64)),LittleEndian(),64)), -Def(Tid(1_221, "%000004c5"), Attrs([Attr("address","0x5F8"), -Attr("insn","add x16, x16, #0x10")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(16,64)))]), Jmps([Call(Tid(1_226, "%000004ca"), - Attrs([Attr("address","0x5FC"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), -Sub(Tid(1_465, "@deregister_tm_clones"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x690")]), - "deregister_tm_clones", Args([Arg(Tid(1_515, "%000005eb"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("deregister_tm_clones_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(531, "@deregister_tm_clones"), - Attrs([Attr("address","0x690")]), Phis([]), Defs([Def(Tid(534, "%00000216"), - Attrs([Attr("address","0x690"), Attr("insn","adrp x0, #69632")]), - Var("R0",Imm(64)), Int(69632,64)), Def(Tid(540, "%0000021c"), - Attrs([Attr("address","0x694"), Attr("insn","add x0, x0, #0x30")]), - Var("R0",Imm(64)), PLUS(Var("R0",Imm(64)),Int(48,64))), -Def(Tid(545, "%00000221"), Attrs([Attr("address","0x698"), -Attr("insn","adrp x1, #69632")]), Var("R1",Imm(64)), Int(69632,64)), -Def(Tid(551, "%00000227"), Attrs([Attr("address","0x69C"), -Attr("insn","add x1, x1, #0x30")]), Var("R1",Imm(64)), -PLUS(Var("R1",Imm(64)),Int(48,64))), Def(Tid(557, "%0000022d"), - Attrs([Attr("address","0x6A0"), Attr("insn","cmp x1, x0")]), - Var("#1",Imm(64)), NOT(Var("R0",Imm(64)))), Def(Tid(562, "%00000232"), - Attrs([Attr("address","0x6A0"), Attr("insn","cmp x1, x0")]), - Var("#2",Imm(64)), PLUS(Var("R1",Imm(64)),NOT(Var("R0",Imm(64))))), -Def(Tid(568, "%00000238"), Attrs([Attr("address","0x6A0"), -Attr("insn","cmp x1, x0")]), Var("VF",Imm(1)), -NEQ(SIGNED(65,PLUS(Var("#2",Imm(64)),Int(1,64))),PLUS(PLUS(SIGNED(65,Var("R1",Imm(64))),SIGNED(65,Var("#1",Imm(64)))),Int(1,65)))), -Def(Tid(574, "%0000023e"), Attrs([Attr("address","0x6A0"), -Attr("insn","cmp x1, x0")]), Var("CF",Imm(1)), -NEQ(UNSIGNED(65,PLUS(Var("#2",Imm(64)),Int(1,64))),PLUS(PLUS(UNSIGNED(65,Var("R1",Imm(64))),UNSIGNED(65,Var("#1",Imm(64)))),Int(1,65)))), -Def(Tid(578, "%00000242"), Attrs([Attr("address","0x6A0"), -Attr("insn","cmp x1, x0")]), Var("ZF",Imm(1)), -EQ(PLUS(Var("#2",Imm(64)),Int(1,64)),Int(0,64))), Def(Tid(582, "%00000246"), - Attrs([Attr("address","0x6A0"), Attr("insn","cmp x1, x0")]), - Var("NF",Imm(1)), Extract(63,63,PLUS(Var("#2",Imm(64)),Int(1,64))))]), -Jmps([Goto(Tid(588, "%0000024c"), Attrs([Attr("address","0x6A4"), -Attr("insn","b.eq #0x18")]), EQ(Var("ZF",Imm(1)),Int(1,1)), -Direct(Tid(586, "%0000024a"))), Goto(Tid(1_498, "%000005da"), Attrs([]), - Int(1,1), Direct(Tid(972, "%000003cc")))])), Blk(Tid(972, "%000003cc"), - Attrs([Attr("address","0x6A8")]), Phis([]), Defs([Def(Tid(975, "%000003cf"), - Attrs([Attr("address","0x6A8"), Attr("insn","adrp x1, #65536")]), - Var("R1",Imm(64)), Int(65536,64)), Def(Tid(982, "%000003d6"), - Attrs([Attr("address","0x6AC"), Attr("insn","ldr x1, [x1, #0xfb8]")]), - Var("R1",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R1",Imm(64)),Int(4024,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(987, "%000003db"), Attrs([Attr("address","0x6B0"), -Attr("insn","cbz x1, #0xc")]), EQ(Var("R1",Imm(64)),Int(0,64)), -Direct(Tid(586, "%0000024a"))), Goto(Tid(1_499, "%000005db"), Attrs([]), - Int(1,1), Direct(Tid(991, "%000003df")))])), Blk(Tid(586, "%0000024a"), - Attrs([Attr("address","0x6BC")]), Phis([]), Defs([]), -Jmps([Call(Tid(594, "%00000252"), Attrs([Attr("address","0x6BC"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))])), -Blk(Tid(991, "%000003df"), Attrs([Attr("address","0x6B4")]), Phis([]), -Defs([Def(Tid(995, "%000003e3"), Attrs([Attr("address","0x6B4"), -Attr("insn","mov x16, x1")]), Var("R16",Imm(64)), Var("R1",Imm(64)))]), -Jmps([Call(Tid(1_000, "%000003e8"), Attrs([Attr("address","0x6B8"), -Attr("insn","br x16")]), Int(1,1), (Indirect(Var("R16",Imm(64))),))]))])), -Sub(Tid(1_468, "@frame_dummy"), Attrs([Attr("c.proto","signed (*)(void)"), -Attr("address","0x750")]), "frame_dummy", Args([Arg(Tid(1_516, "%000005ec"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("frame_dummy_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(746, "@frame_dummy"), - Attrs([Attr("address","0x750")]), Phis([]), Defs([]), -Jmps([Call(Tid(748, "%000002ec"), Attrs([Attr("address","0x750"), -Attr("insn","b #-0x90")]), Int(1,1), -(Direct(Tid(1_471, "@register_tm_clones")),))]))])), Sub(Tid(1_469, "@main"), - Attrs([Attr("c.proto","signed (*)(signed argc, const char** argv)"), -Attr("address","0x754")]), "main", Args([Arg(Tid(1_517, "%000005ed"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("main_argc",Imm(32)), -LOW(32,Var("R0",Imm(64))), In()), Arg(Tid(1_518, "%000005ee"), - Attrs([Attr("c.layout","**[char : 8]"), Attr("c.data","Top:u8 ptr ptr"), -Attr("c.type"," const char**")]), Var("main_argv",Imm(64)), -Var("R1",Imm(64)), Both()), Arg(Tid(1_519, "%000005ef"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("main_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(750, "@main"), - Attrs([Attr("address","0x754")]), Phis([]), Defs([Def(Tid(754, "%000002f2"), - Attrs([Attr("address","0x754"), Attr("insn","sub sp, sp, #0x10")]), - Var("R31",Imm(64)), PLUS(Var("R31",Imm(64)),Int(18446744073709551600,64))), -Def(Tid(761, "%000002f9"), Attrs([Attr("address","0x758"), -Attr("insn","str wzr, [sp, #0xc]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(12,64)),Int(0,32),LittleEndian(),32)), -Def(Tid(766, "%000002fe"), Attrs([Attr("address","0x75C"), -Attr("insn","adrp x8, #65536")]), Var("R8",Imm(64)), Int(65536,64)), -Def(Tid(773, "%00000305"), Attrs([Attr("address","0x760"), -Attr("insn","ldr x8, [x8, #0xfc8]")]), Var("R8",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R8",Imm(64)),Int(4040,64)),LittleEndian(),64)), -Def(Tid(780, "%0000030c"), Attrs([Attr("address","0x764"), -Attr("insn","ldr w8, [x8]")]), Var("R8",Imm(64)), -UNSIGNED(64,Load(Var("mem",Mem(64,8)),Var("R8",Imm(64)),LittleEndian(),32))), -Def(Tid(786, "%00000312"), Attrs([Attr("address","0x768"), -Attr("insn","subs w8, w8, #0x0")]), Var("#4",Imm(32)), -PLUS(Extract(31,0,Var("R8",Imm(64))),Int(4294967295,32))), -Def(Tid(791, "%00000317"), Attrs([Attr("address","0x768"), -Attr("insn","subs w8, w8, #0x0")]), Var("VF",Imm(1)), -NEQ(SIGNED(33,PLUS(Var("#4",Imm(32)),Int(1,32))),PLUS(SIGNED(33,Extract(31,0,Var("R8",Imm(64)))),Int(0,33)))), -Def(Tid(796, "%0000031c"), Attrs([Attr("address","0x768"), -Attr("insn","subs w8, w8, #0x0")]), Var("CF",Imm(1)), -NEQ(UNSIGNED(33,PLUS(Var("#4",Imm(32)),Int(1,32))),PLUS(UNSIGNED(33,Extract(31,0,Var("R8",Imm(64)))),Int(4294967296,33)))), -Def(Tid(800, "%00000320"), Attrs([Attr("address","0x768"), -Attr("insn","subs w8, w8, #0x0")]), Var("ZF",Imm(1)), -EQ(PLUS(Var("#4",Imm(32)),Int(1,32)),Int(0,32))), Def(Tid(804, "%00000324"), - Attrs([Attr("address","0x768"), Attr("insn","subs w8, w8, #0x0")]), - Var("NF",Imm(1)), Extract(31,31,PLUS(Var("#4",Imm(32)),Int(1,32)))), -Def(Tid(808, "%00000328"), Attrs([Attr("address","0x768"), -Attr("insn","subs w8, w8, #0x0")]), Var("R8",Imm(64)), -UNSIGNED(64,PLUS(Var("#4",Imm(32)),Int(1,32))))]), -Jmps([Goto(Tid(820, "%00000334"), Attrs([Attr("address","0x76C"), -Attr("insn","cset w8, ne")]), EQ(Var("ZF",Imm(1)),Int(1,1)), -Direct(Tid(813, "%0000032d"))), Goto(Tid(821, "%00000335"), - Attrs([Attr("address","0x76C"), Attr("insn","cset w8, ne")]), Int(1,1), -Direct(Tid(816, "%00000330")))])), Blk(Tid(816, "%00000330"), Attrs([]), - Phis([]), Defs([Def(Tid(817, "%00000331"), Attrs([Attr("address","0x76C"), -Attr("insn","cset w8, ne")]), Var("R8",Imm(64)), Int(1,64))]), -Jmps([Goto(Tid(823, "%00000337"), Attrs([Attr("address","0x76C"), -Attr("insn","cset w8, ne")]), Int(1,1), Direct(Tid(819, "%00000333")))])), -Blk(Tid(813, "%0000032d"), Attrs([]), Phis([]), -Defs([Def(Tid(814, "%0000032e"), Attrs([Attr("address","0x76C"), -Attr("insn","cset w8, ne")]), Var("R8",Imm(64)), Int(0,64))]), -Jmps([Goto(Tid(822, "%00000336"), Attrs([Attr("address","0x76C"), -Attr("insn","cset w8, ne")]), Int(1,1), Direct(Tid(819, "%00000333")))])), -Blk(Tid(819, "%00000333"), Attrs([]), Phis([]), Defs([]), -Jmps([Goto(Tid(829, "%0000033d"), Attrs([Attr("address","0x770"), -Attr("insn","tbnz w8, #0x0, #0x1c")]), - EQ(Extract(0,0,Var("R8",Imm(64))),Int(1,1)), Direct(Tid(827, "%0000033b"))), -Goto(Tid(1_500, "%000005dc"), Attrs([]), Int(1,1), -Direct(Tid(850, "%00000352")))])), Blk(Tid(850, "%00000352"), - Attrs([Attr("address","0x774")]), Phis([]), Defs([]), -Jmps([Goto(Tid(853, "%00000355"), Attrs([Attr("address","0x774"), -Attr("insn","b #0x4")]), Int(1,1), Direct(Tid(851, "%00000353")))])), -Blk(Tid(851, "%00000353"), Attrs([Attr("address","0x778")]), Phis([]), -Defs([Def(Tid(857, "%00000359"), Attrs([Attr("address","0x778"), -Attr("insn","mov w8, #0x1")]), Var("R8",Imm(64)), Int(1,64)), -Def(Tid(862, "%0000035e"), Attrs([Attr("address","0x77C"), -Attr("insn","adrp x9, #65536")]), Var("R9",Imm(64)), Int(65536,64)), -Def(Tid(869, "%00000365"), Attrs([Attr("address","0x780"), -Attr("insn","ldr x9, [x9, #0xfc8]")]), Var("R9",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R9",Imm(64)),Int(4040,64)),LittleEndian(),64)), -Def(Tid(877, "%0000036d"), Attrs([Attr("address","0x784"), -Attr("insn","str w8, [x9]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("R9",Imm(64)),Extract(31,0,Var("R8",Imm(64))),LittleEndian(),32))]), -Jmps([Goto(Tid(881, "%00000371"), Attrs([Attr("address","0x788"), -Attr("insn","b #0x4")]), Int(1,1), Direct(Tid(827, "%0000033b")))])), -Blk(Tid(827, "%0000033b"), Attrs([Attr("address","0x78C")]), Phis([]), -Defs([Def(Tid(837, "%00000345"), Attrs([Attr("address","0x78C"), -Attr("insn","ldr w0, [sp, #0xc]")]), Var("R0",Imm(64)), -UNSIGNED(64,Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(12,64)),LittleEndian(),32))), -Def(Tid(843, "%0000034b"), Attrs([Attr("address","0x790"), -Attr("insn","add sp, sp, #0x10")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(16,64)))]), Jmps([Call(Tid(848, "%00000350"), - Attrs([Attr("address","0x794"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), -Sub(Tid(1_471, "@register_tm_clones"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x6C0")]), - "register_tm_clones", Args([Arg(Tid(1_520, "%000005f0"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("register_tm_clones_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(596, "@register_tm_clones"), Attrs([Attr("address","0x6C0")]), - Phis([]), Defs([Def(Tid(599, "%00000257"), Attrs([Attr("address","0x6C0"), -Attr("insn","adrp x0, #69632")]), Var("R0",Imm(64)), Int(69632,64)), -Def(Tid(605, "%0000025d"), Attrs([Attr("address","0x6C4"), -Attr("insn","add x0, x0, #0x30")]), Var("R0",Imm(64)), -PLUS(Var("R0",Imm(64)),Int(48,64))), Def(Tid(610, "%00000262"), - Attrs([Attr("address","0x6C8"), Attr("insn","adrp x1, #69632")]), - Var("R1",Imm(64)), Int(69632,64)), Def(Tid(616, "%00000268"), - Attrs([Attr("address","0x6CC"), Attr("insn","add x1, x1, #0x30")]), - Var("R1",Imm(64)), PLUS(Var("R1",Imm(64)),Int(48,64))), -Def(Tid(623, "%0000026f"), Attrs([Attr("address","0x6D0"), -Attr("insn","sub x1, x1, x0")]), Var("R1",Imm(64)), -PLUS(PLUS(Var("R1",Imm(64)),NOT(Var("R0",Imm(64)))),Int(1,64))), -Def(Tid(629, "%00000275"), Attrs([Attr("address","0x6D4"), -Attr("insn","lsr x2, x1, #63")]), Var("R2",Imm(64)), -Concat(Int(0,63),Extract(63,63,Var("R1",Imm(64))))), -Def(Tid(636, "%0000027c"), Attrs([Attr("address","0x6D8"), -Attr("insn","add x1, x2, x1, asr #3")]), Var("R1",Imm(64)), -PLUS(Var("R2",Imm(64)),ARSHIFT(Var("R1",Imm(64)),Int(3,3)))), -Def(Tid(642, "%00000282"), Attrs([Attr("address","0x6DC"), -Attr("insn","asr x1, x1, #1")]), Var("R1",Imm(64)), -SIGNED(64,Extract(63,1,Var("R1",Imm(64)))))]), -Jmps([Goto(Tid(648, "%00000288"), Attrs([Attr("address","0x6E0"), -Attr("insn","cbz x1, #0x18")]), EQ(Var("R1",Imm(64)),Int(0,64)), -Direct(Tid(646, "%00000286"))), Goto(Tid(1_501, "%000005dd"), Attrs([]), - Int(1,1), Direct(Tid(942, "%000003ae")))])), Blk(Tid(942, "%000003ae"), - Attrs([Attr("address","0x6E4")]), Phis([]), Defs([Def(Tid(945, "%000003b1"), - Attrs([Attr("address","0x6E4"), Attr("insn","adrp x2, #65536")]), - Var("R2",Imm(64)), Int(65536,64)), Def(Tid(952, "%000003b8"), - Attrs([Attr("address","0x6E8"), Attr("insn","ldr x2, [x2, #0xfe0]")]), - Var("R2",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R2",Imm(64)),Int(4064,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(957, "%000003bd"), Attrs([Attr("address","0x6EC"), -Attr("insn","cbz x2, #0xc")]), EQ(Var("R2",Imm(64)),Int(0,64)), -Direct(Tid(646, "%00000286"))), Goto(Tid(1_502, "%000005de"), Attrs([]), - Int(1,1), Direct(Tid(961, "%000003c1")))])), Blk(Tid(646, "%00000286"), - Attrs([Attr("address","0x6F8")]), Phis([]), Defs([]), -Jmps([Call(Tid(654, "%0000028e"), Attrs([Attr("address","0x6F8"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))])), -Blk(Tid(961, "%000003c1"), Attrs([Attr("address","0x6F0")]), Phis([]), -Defs([Def(Tid(965, "%000003c5"), Attrs([Attr("address","0x6F0"), -Attr("insn","mov x16, x2")]), Var("R16",Imm(64)), Var("R2",Imm(64)))]), -Jmps([Call(Tid(970, "%000003ca"), Attrs([Attr("address","0x6F4"), -Attr("insn","br x16")]), Int(1,1), -(Indirect(Var("R16",Imm(64))),))]))]))]))) \ No newline at end of file diff --git a/src/test/correct/ifglobal/clang_pic/ifglobal.bir b/src/test/correct/ifglobal/clang_pic/ifglobal.bir deleted file mode 100644 index 414da169a..000000000 --- a/src/test/correct/ifglobal/clang_pic/ifglobal.bir +++ /dev/null @@ -1,262 +0,0 @@ -000005df: program -000005ab: sub __cxa_finalize(__cxa_finalize_result) -000005e0: __cxa_finalize_result :: out u32 = low:32[R0] - -000003aa: -000004a2: R16 := 0x11000 -000004a9: R17 := mem[R16 + 8, el]:u64 -000004af: R16 := R16 + 8 -000004b4: call R17 with noreturn - -000005ac: sub __do_global_dtors_aux(__do_global_dtors_aux_result) -000005e1: __do_global_dtors_aux_result :: out u32 = low:32[R0] - -00000292: -00000296: #3 := R31 - 0x20 -0000029c: mem := mem with [#3, el]:u64 <- R29 -000002a2: mem := mem with [#3 + 8, el]:u64 <- R30 -000002a6: R31 := #3 -000002ac: R29 := R31 -000002b4: mem := mem with [R31 + 0x10, el]:u64 <- R19 -000002b9: R19 := 0x11000 -000002c0: R0 := pad:64[mem[R19 + 0x30]] -000002c7: when 31:0[R0] <> 0 goto %000002c5 -000005d4: goto %00000373 - -00000373: -00000376: R0 := 0x10000 -0000037d: R0 := mem[R0 + 0xFC0, el]:u64 -00000383: when R0 = 0 goto %00000381 -000005d5: goto %0000039a - -0000039a: -0000039d: R0 := 0x11000 -000003a4: R0 := mem[R0 + 0x28, el]:u64 -000003a9: R30 := 0x730 -000003ac: call @__cxa_finalize with return %00000381 - -00000381: -00000389: R30 := 0x734 -0000038b: call @deregister_tm_clones with return %0000038d - -0000038d: -00000390: R0 := 1 -00000398: mem := mem with [R19 + 0x30] <- 7:0[R0] -000005d6: goto %000002c5 - -000002c5: -000002cf: R19 := mem[R31 + 0x10, el]:u64 -000002d6: R29 := mem[R31, el]:u64 -000002db: R30 := mem[R31 + 8, el]:u64 -000002df: R31 := R31 + 0x20 -000002e4: call R30 with noreturn - -000005b0: sub __libc_start_main(__libc_start_main_main, __libc_start_main_arg2, __libc_start_main_arg3, __libc_start_main_auxv, __libc_start_main_result) -000005e2: __libc_start_main_main :: in u64 = R0 -000005e3: __libc_start_main_arg2 :: in u32 = low:32[R1] -000005e4: __libc_start_main_arg3 :: in out u64 = R2 -000005e5: __libc_start_main_auxv :: in out u64 = R3 -000005e6: __libc_start_main_result :: out u32 = low:32[R0] - -000001eb: -0000048c: R16 := 0x11000 -00000493: R17 := mem[R16, el]:u64 -00000499: R16 := R16 -0000049e: call R17 with noreturn - -000005b1: sub _fini(_fini_result) -000005e7: _fini_result :: out u32 = low:32[R0] - -0000001f: -00000025: #0 := R31 - 0x10 -0000002b: mem := mem with [#0, el]:u64 <- R29 -00000031: mem := mem with [#0 + 8, el]:u64 <- R30 -00000035: R31 := #0 -0000003b: R29 := R31 -00000042: R29 := mem[R31, el]:u64 -00000047: R30 := mem[R31 + 8, el]:u64 -0000004b: R31 := R31 + 0x10 -00000050: call R30 with noreturn - -000005b2: sub _init(_init_result) -000005e8: _init_result :: out u32 = low:32[R0] - -000004fc: -00000502: #6 := R31 - 0x10 -00000508: mem := mem with [#6, el]:u64 <- R29 -0000050e: mem := mem with [#6 + 8, el]:u64 <- R30 -00000512: R31 := #6 -00000518: R29 := R31 -0000051d: R30 := 0x5A8 -0000051f: call @call_weak_fn with return %00000521 - -00000521: -00000526: R29 := mem[R31, el]:u64 -0000052b: R30 := mem[R31 + 8, el]:u64 -0000052f: R31 := R31 + 0x10 -00000534: call R30 with noreturn - -000005b3: sub _start(_start_result) -000005e9: _start_result :: out u32 = low:32[R0] - -000001ac: -000001b1: R29 := 0 -000001b6: R30 := 0 -000001bc: R5 := R0 -000001c3: R1 := mem[R31, el]:u64 -000001c9: R2 := R31 + 8 -000001cf: R6 := R31 -000001d4: R0 := 0x10000 -000001db: R0 := mem[R0 + 0xFD8, el]:u64 -000001e0: R3 := 0 -000001e5: R4 := 0 -000001ea: R30 := 0x670 -000001ed: call @__libc_start_main with return %000001ef - -000001ef: -000001f2: R30 := 0x674 -000001f5: call @abort with return %000005d7 - -000005d7: -000005d8: call @call_weak_fn with noreturn - -000005b6: sub abort() - - -000001f3: -000004ce: R16 := 0x11000 -000004d5: R17 := mem[R16 + 0x18, el]:u64 -000004db: R16 := R16 + 0x18 -000004e0: call R17 with noreturn - -000005b7: sub call_weak_fn(call_weak_fn_result) -000005ea: call_weak_fn_result :: out u32 = low:32[R0] - -000001f7: -000001fa: R0 := 0x10000 -00000201: R0 := mem[R0 + 0xFD0, el]:u64 -00000207: when R0 = 0 goto %00000205 -000005d9: goto %000003ea - -00000205: -0000020d: call R30 with noreturn - -000003ea: -000003ed: goto @__gmon_start__ - -000003eb: -000004b8: R16 := 0x11000 -000004bf: R17 := mem[R16 + 0x10, el]:u64 -000004c5: R16 := R16 + 0x10 -000004ca: call R17 with noreturn - -000005b9: sub deregister_tm_clones(deregister_tm_clones_result) -000005eb: deregister_tm_clones_result :: out u32 = low:32[R0] - -00000213: -00000216: R0 := 0x11000 -0000021c: R0 := R0 + 0x30 -00000221: R1 := 0x11000 -00000227: R1 := R1 + 0x30 -0000022d: #1 := ~R0 -00000232: #2 := R1 + ~R0 -00000238: VF := extend:65[#2 + 1] <> extend:65[R1] + extend:65[#1] + 1 -0000023e: CF := pad:65[#2 + 1] <> pad:65[R1] + pad:65[#1] + 1 -00000242: ZF := #2 + 1 = 0 -00000246: NF := 63:63[#2 + 1] -0000024c: when ZF goto %0000024a -000005da: goto %000003cc - -000003cc: -000003cf: R1 := 0x10000 -000003d6: R1 := mem[R1 + 0xFB8, el]:u64 -000003db: when R1 = 0 goto %0000024a -000005db: goto %000003df - -0000024a: -00000252: call R30 with noreturn - -000003df: -000003e3: R16 := R1 -000003e8: call R16 with noreturn - -000005bc: sub frame_dummy(frame_dummy_result) -000005ec: frame_dummy_result :: out u32 = low:32[R0] - -000002ea: -000002ec: call @register_tm_clones with noreturn - -000005bd: sub main(main_argc, main_argv, main_result) -000005ed: main_argc :: in u32 = low:32[R0] -000005ee: main_argv :: in out u64 = R1 -000005ef: main_result :: out u32 = low:32[R0] - -000002ee: -000002f2: R31 := R31 - 0x10 -000002f9: mem := mem with [R31 + 0xC, el]:u32 <- 0 -000002fe: R8 := 0x10000 -00000305: R8 := mem[R8 + 0xFC8, el]:u64 -0000030c: R8 := pad:64[mem[R8, el]:u32] -00000312: #4 := 31:0[R8] - 1 -00000317: VF := extend:33[#4 + 1] <> extend:33[31:0[R8]] + 0 -0000031c: CF := pad:33[#4 + 1] <> pad:33[31:0[R8]] - 0x100000000 -00000320: ZF := #4 + 1 = 0 -00000324: NF := 31:31[#4 + 1] -00000328: R8 := pad:64[#4 + 1] -00000334: when ZF goto %0000032d -00000335: goto %00000330 - -00000330: -00000331: R8 := 1 -00000337: goto %00000333 - -0000032d: -0000032e: R8 := 0 -00000336: goto %00000333 - -00000333: -0000033d: when 0:0[R8] goto %0000033b -000005dc: goto %00000352 - -00000352: -00000355: goto %00000353 - -00000353: -00000359: R8 := 1 -0000035e: R9 := 0x10000 -00000365: R9 := mem[R9 + 0xFC8, el]:u64 -0000036d: mem := mem with [R9, el]:u32 <- 31:0[R8] -00000371: goto %0000033b - -0000033b: -00000345: R0 := pad:64[mem[R31 + 0xC, el]:u32] -0000034b: R31 := R31 + 0x10 -00000350: call R30 with noreturn - -000005bf: sub register_tm_clones(register_tm_clones_result) -000005f0: register_tm_clones_result :: out u32 = low:32[R0] - -00000254: -00000257: R0 := 0x11000 -0000025d: R0 := R0 + 0x30 -00000262: R1 := 0x11000 -00000268: R1 := R1 + 0x30 -0000026f: R1 := R1 + ~R0 + 1 -00000275: R2 := 0.63:63[R1] -0000027c: R1 := R2 + (R1 ~>> 3) -00000282: R1 := extend:64[63:1[R1]] -00000288: when R1 = 0 goto %00000286 -000005dd: goto %000003ae - -000003ae: -000003b1: R2 := 0x10000 -000003b8: R2 := mem[R2 + 0xFE0, el]:u64 -000003bd: when R2 = 0 goto %00000286 -000005de: goto %000003c1 - -00000286: -0000028e: call R30 with noreturn - -000003c1: -000003c5: R16 := R2 -000003ca: call R16 with noreturn diff --git a/src/test/correct/ifglobal/clang_pic/ifglobal.expected b/src/test/correct/ifglobal/clang_pic/ifglobal.expected index c9a9f5d61..49947a75d 100644 --- a/src/test/correct/ifglobal/clang_pic/ifglobal.expected +++ b/src/test/correct/ifglobal/clang_pic/ifglobal.expected @@ -1,36 +1,19 @@ -var {:extern} CF: bv1; -var {:extern} Gamma_CF: bool; -var {:extern} Gamma_NF: bool; var {:extern} Gamma_R0: bool; -var {:extern} Gamma_R31: bool; var {:extern} Gamma_R8: bool; var {:extern} Gamma_R9: bool; -var {:extern} Gamma_VF: bool; -var {:extern} Gamma_ZF: bool; var {:extern} Gamma_mem: [bv64]bool; -var {:extern} Gamma_stack: [bv64]bool; -var {:extern} NF: bv1; var {:extern} R0: bv64; -var {:extern} R31: bv64; var {:extern} R8: bv64; var {:extern} R9: bv64; -var {:extern} VF: bv1; -var {:extern} ZF: bv1; var {:extern} mem: [bv64]bv8; -var {:extern} stack: [bv64]bv8; const {:extern} $x_addr: bv64; -axiom ($x_addr == 69684bv64); +axiom ($x_addr == 131092bv64); function {:extern} L(mem$in: [bv64]bv8, index: bv64) returns (bool) { (if (index == $x_addr) then true else false) } -function {:extern} {:bvbuiltin "bvadd"} bvadd32(bv32, bv32) returns (bv32); -function {:extern} {:bvbuiltin "bvadd"} bvadd33(bv33, bv33) returns (bv33); function {:extern} {:bvbuiltin "bvadd"} bvadd64(bv64, bv64) returns (bv64); -function {:extern} {:bvbuiltin "bvcomp"} bvcomp1(bv1, bv1) returns (bv1); function {:extern} {:bvbuiltin "bvcomp"} bvcomp32(bv32, bv32) returns (bv1); -function {:extern} {:bvbuiltin "bvcomp"} bvcomp33(bv33, bv33) returns (bv1); -function {:extern} {:bvbuiltin "bvnot"} bvnot1(bv1) returns (bv1); function {:extern} gamma_load32(gammaMap: [bv64]bool, index: bv64) returns (bool) { (gammaMap[bvadd64(index, 3bv64)] && (gammaMap[bvadd64(index, 2bv64)] && (gammaMap[bvadd64(index, 1bv64)] && gammaMap[index]))) } @@ -55,19 +38,17 @@ function {:extern} memory_store32_le(memory: [bv64]bv8, index: bv64, value: bv32 memory[index := value[8:0]][bvadd64(index, 1bv64) := value[16:8]][bvadd64(index, 2bv64) := value[24:16]][bvadd64(index, 3bv64) := value[32:24]] } -function {:extern} {:bvbuiltin "sign_extend 1"} sign_extend1_32(bv32) returns (bv33); -function {:extern} {:bvbuiltin "zero_extend 1"} zero_extend1_32(bv32) returns (bv33); function {:extern} {:bvbuiltin "zero_extend 32"} zero_extend32_32(bv32) returns (bv64); procedure {:extern} rely(); modifies Gamma_mem, mem; ensures (Gamma_mem == old(Gamma_mem)); ensures (mem == old(mem)); - free ensures (memory_load32_le(mem, 1964bv64) == 131073bv32); - free ensures (memory_load64_le(mem, 69056bv64) == 1872bv64); - free ensures (memory_load64_le(mem, 69064bv64) == 1792bv64); - free ensures (memory_load64_le(mem, 69576bv64) == 69684bv64); - free ensures (memory_load64_le(mem, 69592bv64) == 1876bv64); - free ensures (memory_load64_le(mem, 69672bv64) == 69672bv64); + free ensures (memory_load32_le(mem, 2320bv64) == 131073bv32); + free ensures (memory_load64_le(mem, 130432bv64) == 2256bv64); + free ensures (memory_load64_le(mem, 130440bv64) == 2176bv64); + free ensures (memory_load64_le(mem, 131040bv64) == 131092bv64); + free ensures (memory_load64_le(mem, 131056bv64) == 2260bv64); + free ensures (memory_load64_le(mem, 131080bv64) == 131080bv64); procedure {:extern} rely_transitive(); modifies Gamma_mem, mem; @@ -85,108 +66,63 @@ procedure {:extern} rely_reflexive(); procedure {:extern} guarantee_reflexive(); modifies Gamma_mem, mem; -procedure main_1876(); - modifies CF, Gamma_CF, Gamma_NF, Gamma_R0, Gamma_R31, Gamma_R8, Gamma_R9, Gamma_VF, Gamma_ZF, Gamma_mem, Gamma_stack, NF, R0, R31, R8, R9, VF, ZF, mem, stack; - free requires (memory_load64_le(mem, 69664bv64) == 0bv64); - free requires (memory_load64_le(mem, 69672bv64) == 69672bv64); - free requires (memory_load32_le(mem, 1964bv64) == 131073bv32); - free requires (memory_load64_le(mem, 69056bv64) == 1872bv64); - free requires (memory_load64_le(mem, 69064bv64) == 1792bv64); - free requires (memory_load64_le(mem, 69576bv64) == 69684bv64); - free requires (memory_load64_le(mem, 69592bv64) == 1876bv64); - free requires (memory_load64_le(mem, 69672bv64) == 69672bv64); - free ensures (Gamma_R31 == old(Gamma_R31)); - free ensures (R31 == old(R31)); - free ensures (memory_load32_le(mem, 1964bv64) == 131073bv32); - free ensures (memory_load64_le(mem, 69056bv64) == 1872bv64); - free ensures (memory_load64_le(mem, 69064bv64) == 1792bv64); - free ensures (memory_load64_le(mem, 69576bv64) == 69684bv64); - free ensures (memory_load64_le(mem, 69592bv64) == 1876bv64); - free ensures (memory_load64_le(mem, 69672bv64) == 69672bv64); +procedure main(); + modifies Gamma_R0, Gamma_R8, Gamma_R9, Gamma_mem, R0, R8, R9, mem; + free requires (memory_load64_le(mem, 131072bv64) == 0bv64); + free requires (memory_load64_le(mem, 131080bv64) == 131080bv64); + free requires (memory_load32_le(mem, 2320bv64) == 131073bv32); + free requires (memory_load64_le(mem, 130432bv64) == 2256bv64); + free requires (memory_load64_le(mem, 130440bv64) == 2176bv64); + free requires (memory_load64_le(mem, 131040bv64) == 131092bv64); + free requires (memory_load64_le(mem, 131056bv64) == 2260bv64); + free requires (memory_load64_le(mem, 131080bv64) == 131080bv64); + free ensures (memory_load32_le(mem, 2320bv64) == 131073bv32); + free ensures (memory_load64_le(mem, 130432bv64) == 2256bv64); + free ensures (memory_load64_le(mem, 130440bv64) == 2176bv64); + free ensures (memory_load64_le(mem, 131040bv64) == 131092bv64); + free ensures (memory_load64_le(mem, 131056bv64) == 2260bv64); + free ensures (memory_load64_le(mem, 131080bv64) == 131080bv64); -implementation main_1876() +implementation main() { - var #4: bv32; - var Gamma_#4: bool; - var Gamma_load18: bool; - var Gamma_load19: bool; - var Gamma_load20: bool; - var Gamma_load21: bool; - var load18: bv64; - var load19: bv32; - var load20: bv64; - var load21: bv32; + var $load$18: bv64; + var $load$19: bv32; + var Gamma_$load$18: bool; + var Gamma_$load$19: bool; lmain: assume {:captureState "lmain"} true; - R31, Gamma_R31 := bvadd64(R31, 18446744073709551600bv64), Gamma_R31; - stack, Gamma_stack := memory_store32_le(stack, bvadd64(R31, 12bv64), 0bv32), gamma_store32(Gamma_stack, bvadd64(R31, 12bv64), true); - assume {:captureState "%000002f9"} true; - R8, Gamma_R8 := 65536bv64, true; + R8, Gamma_R8 := 126976bv64, true; call rely(); - load18, Gamma_load18 := memory_load64_le(mem, bvadd64(R8, 4040bv64)), (gamma_load64(Gamma_mem, bvadd64(R8, 4040bv64)) || L(mem, bvadd64(R8, 4040bv64))); - R8, Gamma_R8 := load18, Gamma_load18; + $load$18, Gamma_$load$18 := memory_load64_le(mem, bvadd64(R8, 4064bv64)), (gamma_load64(Gamma_mem, bvadd64(R8, 4064bv64)) || L(mem, bvadd64(R8, 4064bv64))); + R8, Gamma_R8 := $load$18, Gamma_$load$18; call rely(); - load19, Gamma_load19 := memory_load32_le(mem, R8), (gamma_load32(Gamma_mem, R8) || L(mem, R8)); - R8, Gamma_R8 := zero_extend32_32(load19), Gamma_load19; - #4, Gamma_#4 := bvadd32(R8[32:0], 4294967295bv32), Gamma_R8; - VF, Gamma_VF := bvnot1(bvcomp33(sign_extend1_32(bvadd32(#4, 1bv32)), bvadd33(sign_extend1_32(R8[32:0]), 0bv33))), (Gamma_R8 && Gamma_#4); - CF, Gamma_CF := bvnot1(bvcomp33(zero_extend1_32(bvadd32(#4, 1bv32)), bvadd33(zero_extend1_32(R8[32:0]), 4294967296bv33))), (Gamma_R8 && Gamma_#4); - ZF, Gamma_ZF := bvcomp32(bvadd32(#4, 1bv32), 0bv32), Gamma_#4; - NF, Gamma_NF := bvadd32(#4, 1bv32)[32:31], Gamma_#4; - R8, Gamma_R8 := zero_extend32_32(bvadd32(#4, 1bv32)), Gamma_#4; - assert Gamma_ZF; - goto lmain_goto_l0000032d, lmain_goto_l00000330; - lmain_goto_l00000330: - assume {:captureState "lmain_goto_l00000330"} true; - assume (bvcomp1(ZF, 1bv1) == 0bv1); - R8, Gamma_R8 := 1bv64, true; - goto l00000330; - l00000330: - assume {:captureState "l00000330"} true; - goto l00000333; - lmain_goto_l0000032d: - assume {:captureState "lmain_goto_l0000032d"} true; - assume (bvcomp1(ZF, 1bv1) != 0bv1); - R8, Gamma_R8 := 0bv64, true; - goto l0000032d; - l0000032d: - assume {:captureState "l0000032d"} true; - goto l00000333; - l00000333: - assume {:captureState "l00000333"} true; - assert Gamma_R8; - goto l00000333_goto_l0000033b, l00000333_goto_l00000352; - l00000333_goto_l00000352: - assume {:captureState "l00000333_goto_l00000352"} true; - assume (bvcomp1(R8[1:0], 1bv1) == 0bv1); - goto l00000352; - l00000352: - assume {:captureState "l00000352"} true; - goto l00000353; - l00000353: - assume {:captureState "l00000353"} true; - R8, Gamma_R8 := 1bv64, true; - R9, Gamma_R9 := 65536bv64, true; + $load$19, Gamma_$load$19 := memory_load32_le(mem, R8), (gamma_load32(Gamma_mem, R8) || L(mem, R8)); + R9, Gamma_R9 := zero_extend32_32($load$19), Gamma_$load$19; + assert Gamma_R9; + goto lmain_goto_l0000028c, lmain_goto_l00000294; + l0000028c: + assume {:captureState "l0000028c"} true; + R9, Gamma_R9 := 1bv64, true; call rely(); - load20, Gamma_load20 := memory_load64_le(mem, bvadd64(R9, 4040bv64)), (gamma_load64(Gamma_mem, bvadd64(R9, 4040bv64)) || L(mem, bvadd64(R9, 4040bv64))); - R9, Gamma_R9 := load20, Gamma_load20; - call rely(); - assert (L(mem, R9) ==> Gamma_R8); - mem, Gamma_mem := memory_store32_le(mem, R9, R8[32:0]), gamma_store32(Gamma_mem, R9, Gamma_R8); - assume {:captureState "%0000036d"} true; - goto l0000033b; - l00000333_goto_l0000033b: - assume {:captureState "l00000333_goto_l0000033b"} true; - assume (bvcomp1(R8[1:0], 1bv1) != 0bv1); - goto l0000033b; - l0000033b: - assume {:captureState "l0000033b"} true; - load21, Gamma_load21 := memory_load32_le(stack, bvadd64(R31, 12bv64)), gamma_load32(Gamma_stack, bvadd64(R31, 12bv64)); - R0, Gamma_R0 := zero_extend32_32(load21), Gamma_load21; - R31, Gamma_R31 := bvadd64(R31, 16bv64), Gamma_R31; - goto main_1876_basil_return; - main_1876_basil_return: - assume {:captureState "main_1876_basil_return"} true; + assert (L(mem, R8) ==> Gamma_R9); + mem, Gamma_mem := memory_store32_le(mem, R8, R9[32:0]), gamma_store32(Gamma_mem, R8, Gamma_R9); + assume {:captureState "%0000029c"} true; + R0, Gamma_R0 := 0bv64, true; + goto main_basil_return; + l00000294: + assume {:captureState "l00000294"} true; + R0, Gamma_R0 := 0bv64, true; + goto main_basil_return; + lmain_goto_l0000028c: + assume {:captureState "lmain_goto_l0000028c"} true; + assume (bvcomp32(R9[32:0], 0bv32) != 0bv1); + goto l0000028c; + lmain_goto_l00000294: + assume {:captureState "lmain_goto_l00000294"} true; + assume (bvcomp32(R9[32:0], 0bv32) == 0bv1); + goto l00000294; + main_basil_return: + assume {:captureState "main_basil_return"} true; return; } diff --git a/src/test/correct/ifglobal/clang_pic/ifglobal.gts b/src/test/correct/ifglobal/clang_pic/ifglobal.gts deleted file mode 100644 index 82cdbeb2e..000000000 Binary files a/src/test/correct/ifglobal/clang_pic/ifglobal.gts and /dev/null differ diff --git a/src/test/correct/ifglobal/clang_pic/ifglobal.md5sum b/src/test/correct/ifglobal/clang_pic/ifglobal.md5sum new file mode 100644 index 000000000..2d11e40c6 --- /dev/null +++ b/src/test/correct/ifglobal/clang_pic/ifglobal.md5sum @@ -0,0 +1,5 @@ +977d677f461b1c2cd4200d17a4d903bf correct/ifglobal/clang_pic/a.out +e4c431105c28b87eef9cdcc0b44e50dd correct/ifglobal/clang_pic/ifglobal.adt +68d6fec46f345175063f4c2b1aac28e6 correct/ifglobal/clang_pic/ifglobal.bir +1b52912c3d04c70b82d718fbfc560caa correct/ifglobal/clang_pic/ifglobal.relf +dd28e4ed8e376aa78f776c6e2f929293 correct/ifglobal/clang_pic/ifglobal.gts diff --git a/src/test/correct/ifglobal/clang_pic/ifglobal.relf b/src/test/correct/ifglobal/clang_pic/ifglobal.relf deleted file mode 100644 index 2401ef9ed..000000000 --- a/src/test/correct/ifglobal/clang_pic/ifglobal.relf +++ /dev/null @@ -1,124 +0,0 @@ - -Relocation section '.rela.dyn' at offset 0x460 contains 9 entries: - Offset Info Type Symbol's Value Symbol's Name + Addend -0000000000010dc0 0000000000000403 R_AARCH64_RELATIVE 750 -0000000000010dc8 0000000000000403 R_AARCH64_RELATIVE 700 -0000000000010fc8 0000000000000403 R_AARCH64_RELATIVE 11034 -0000000000010fd8 0000000000000403 R_AARCH64_RELATIVE 754 -0000000000011028 0000000000000403 R_AARCH64_RELATIVE 11028 -0000000000010fb8 0000000400000401 R_AARCH64_GLOB_DAT 0000000000000000 _ITM_deregisterTMCloneTable + 0 -0000000000010fc0 0000000500000401 R_AARCH64_GLOB_DAT 0000000000000000 __cxa_finalize@GLIBC_2.17 + 0 -0000000000010fd0 0000000600000401 R_AARCH64_GLOB_DAT 0000000000000000 __gmon_start__ + 0 -0000000000010fe0 0000000800000401 R_AARCH64_GLOB_DAT 0000000000000000 _ITM_registerTMCloneTable + 0 - -Relocation section '.rela.plt' at offset 0x538 contains 4 entries: - Offset Info Type Symbol's Value Symbol's Name + Addend -0000000000011000 0000000300000402 R_AARCH64_JUMP_SLOT 0000000000000000 __libc_start_main@GLIBC_2.34 + 0 -0000000000011008 0000000500000402 R_AARCH64_JUMP_SLOT 0000000000000000 __cxa_finalize@GLIBC_2.17 + 0 -0000000000011010 0000000600000402 R_AARCH64_JUMP_SLOT 0000000000000000 __gmon_start__ + 0 -0000000000011018 0000000700000402 R_AARCH64_JUMP_SLOT 0000000000000000 abort@GLIBC_2.17 + 0 - -Symbol table '.dynsym' contains 9 entries: - Num: Value Size Type Bind Vis Ndx Name - 0: 0000000000000000 0 NOTYPE LOCAL DEFAULT UND - 1: 0000000000000598 0 SECTION LOCAL DEFAULT 11 .init - 2: 0000000000011020 0 SECTION LOCAL DEFAULT 23 .data - 3: 0000000000000000 0 FUNC GLOBAL DEFAULT UND __libc_start_main@GLIBC_2.34 (2) - 4: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_deregisterTMCloneTable - 5: 0000000000000000 0 FUNC WEAK DEFAULT UND __cxa_finalize@GLIBC_2.17 (3) - 6: 0000000000000000 0 NOTYPE WEAK DEFAULT UND __gmon_start__ - 7: 0000000000000000 0 FUNC GLOBAL DEFAULT UND abort@GLIBC_2.17 (3) - 8: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_registerTMCloneTable - -Symbol table '.symtab' contains 90 entries: - Num: Value Size Type Bind Vis Ndx Name - 0: 0000000000000000 0 NOTYPE LOCAL DEFAULT UND - 1: 0000000000000238 0 SECTION LOCAL DEFAULT 1 .interp - 2: 0000000000000254 0 SECTION LOCAL DEFAULT 2 .note.gnu.build-id - 3: 0000000000000278 0 SECTION LOCAL DEFAULT 3 .note.ABI-tag - 4: 0000000000000298 0 SECTION LOCAL DEFAULT 4 .gnu.hash - 5: 00000000000002b8 0 SECTION LOCAL DEFAULT 5 .dynsym - 6: 0000000000000390 0 SECTION LOCAL DEFAULT 6 .dynstr - 7: 000000000000041e 0 SECTION LOCAL DEFAULT 7 .gnu.version - 8: 0000000000000430 0 SECTION LOCAL DEFAULT 8 .gnu.version_r - 9: 0000000000000460 0 SECTION LOCAL DEFAULT 9 .rela.dyn - 10: 0000000000000538 0 SECTION LOCAL DEFAULT 10 .rela.plt - 11: 0000000000000598 0 SECTION LOCAL DEFAULT 11 .init - 12: 00000000000005b0 0 SECTION LOCAL DEFAULT 12 .plt - 13: 0000000000000640 0 SECTION LOCAL DEFAULT 13 .text - 14: 0000000000000798 0 SECTION LOCAL DEFAULT 14 .fini - 15: 00000000000007ac 0 SECTION LOCAL DEFAULT 15 .rodata - 16: 00000000000007b0 0 SECTION LOCAL DEFAULT 16 .eh_frame_hdr - 17: 00000000000007f0 0 SECTION LOCAL DEFAULT 17 .eh_frame - 18: 0000000000010dc0 0 SECTION LOCAL DEFAULT 18 .init_array - 19: 0000000000010dc8 0 SECTION LOCAL DEFAULT 19 .fini_array - 20: 0000000000010dd0 0 SECTION LOCAL DEFAULT 20 .dynamic - 21: 0000000000010fb0 0 SECTION LOCAL DEFAULT 21 .got - 22: 0000000000010fe8 0 SECTION LOCAL DEFAULT 22 .got.plt - 23: 0000000000011020 0 SECTION LOCAL DEFAULT 23 .data - 24: 0000000000011030 0 SECTION LOCAL DEFAULT 24 .bss - 25: 0000000000000000 0 SECTION LOCAL DEFAULT 25 .comment - 26: 0000000000000000 0 FILE LOCAL DEFAULT ABS Scrt1.o - 27: 0000000000000278 0 NOTYPE LOCAL DEFAULT 3 $d - 28: 0000000000000278 32 OBJECT LOCAL DEFAULT 3 __abi_tag - 29: 0000000000000640 0 NOTYPE LOCAL DEFAULT 13 $x - 30: 0000000000000804 0 NOTYPE LOCAL DEFAULT 17 $d - 31: 00000000000007ac 0 NOTYPE LOCAL DEFAULT 15 $d - 32: 0000000000000000 0 FILE LOCAL DEFAULT ABS crti.o - 33: 0000000000000674 0 NOTYPE LOCAL DEFAULT 13 $x - 34: 0000000000000674 20 FUNC LOCAL DEFAULT 13 call_weak_fn - 35: 0000000000000598 0 NOTYPE LOCAL DEFAULT 11 $x - 36: 0000000000000798 0 NOTYPE LOCAL DEFAULT 14 $x - 37: 0000000000000000 0 FILE LOCAL DEFAULT ABS crtn.o - 38: 00000000000005a8 0 NOTYPE LOCAL DEFAULT 11 $x - 39: 00000000000007a4 0 NOTYPE LOCAL DEFAULT 14 $x - 40: 0000000000000000 0 FILE LOCAL DEFAULT ABS crtstuff.c - 41: 0000000000000690 0 NOTYPE LOCAL DEFAULT 13 $x - 42: 0000000000000690 0 FUNC LOCAL DEFAULT 13 deregister_tm_clones - 43: 00000000000006c0 0 FUNC LOCAL DEFAULT 13 register_tm_clones - 44: 0000000000011028 0 NOTYPE LOCAL DEFAULT 23 $d - 45: 0000000000000700 0 FUNC LOCAL DEFAULT 13 __do_global_dtors_aux - 46: 0000000000011030 1 OBJECT LOCAL DEFAULT 24 completed.0 - 47: 0000000000010dc8 0 NOTYPE LOCAL DEFAULT 19 $d - 48: 0000000000010dc8 0 OBJECT LOCAL DEFAULT 19 __do_global_dtors_aux_fini_array_entry - 49: 0000000000000750 0 FUNC LOCAL DEFAULT 13 frame_dummy - 50: 0000000000010dc0 0 NOTYPE LOCAL DEFAULT 18 $d - 51: 0000000000010dc0 0 OBJECT LOCAL DEFAULT 18 __frame_dummy_init_array_entry - 52: 0000000000000818 0 NOTYPE LOCAL DEFAULT 17 $d - 53: 0000000000011030 0 NOTYPE LOCAL DEFAULT 24 $d - 54: 0000000000000000 0 FILE LOCAL DEFAULT ABS ifglobal.c - 55: 0000000000000754 0 NOTYPE LOCAL DEFAULT 13 $x.0 - 56: 0000000000011034 0 NOTYPE LOCAL DEFAULT 24 $d.1 - 57: 000000000000002a 0 NOTYPE LOCAL DEFAULT 25 $d.2 - 58: 0000000000000878 0 NOTYPE LOCAL DEFAULT 17 $d.3 - 59: 0000000000000000 0 FILE LOCAL DEFAULT ABS crtstuff.c - 60: 00000000000008a4 0 NOTYPE LOCAL DEFAULT 17 $d - 61: 00000000000008a4 0 OBJECT LOCAL DEFAULT 17 __FRAME_END__ - 62: 0000000000000000 0 FILE LOCAL DEFAULT ABS - 63: 0000000000010dd0 0 OBJECT LOCAL DEFAULT ABS _DYNAMIC - 64: 00000000000007b0 0 NOTYPE LOCAL DEFAULT 16 __GNU_EH_FRAME_HDR - 65: 0000000000010fb0 0 OBJECT LOCAL DEFAULT ABS _GLOBAL_OFFSET_TABLE_ - 66: 00000000000005b0 0 NOTYPE LOCAL DEFAULT 12 $x - 67: 0000000000000000 0 FUNC GLOBAL DEFAULT UND __libc_start_main@GLIBC_2.34 - 68: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_deregisterTMCloneTable - 69: 0000000000011020 0 NOTYPE WEAK DEFAULT 23 data_start - 70: 0000000000011030 0 NOTYPE GLOBAL DEFAULT 24 __bss_start__ - 71: 0000000000000000 0 FUNC WEAK DEFAULT UND __cxa_finalize@GLIBC_2.17 - 72: 0000000000011038 0 NOTYPE GLOBAL DEFAULT 24 _bss_end__ - 73: 0000000000011030 0 NOTYPE GLOBAL DEFAULT 23 _edata - 74: 0000000000011034 4 OBJECT GLOBAL DEFAULT 24 x - 75: 0000000000000798 0 FUNC GLOBAL HIDDEN 14 _fini - 76: 0000000000011038 0 NOTYPE GLOBAL DEFAULT 24 __bss_end__ - 77: 0000000000011020 0 NOTYPE GLOBAL DEFAULT 23 __data_start - 78: 0000000000000000 0 NOTYPE WEAK DEFAULT UND __gmon_start__ - 79: 0000000000011028 0 OBJECT GLOBAL HIDDEN 23 __dso_handle - 80: 0000000000000000 0 FUNC GLOBAL DEFAULT UND abort@GLIBC_2.17 - 81: 00000000000007ac 4 OBJECT GLOBAL DEFAULT 15 _IO_stdin_used - 82: 0000000000011038 0 NOTYPE GLOBAL DEFAULT 24 _end - 83: 0000000000000640 52 FUNC GLOBAL DEFAULT 13 _start - 84: 0000000000011038 0 NOTYPE GLOBAL DEFAULT 24 __end__ - 85: 0000000000011030 0 NOTYPE GLOBAL DEFAULT 24 __bss_start - 86: 0000000000000754 68 FUNC GLOBAL DEFAULT 13 main - 87: 0000000000011030 0 OBJECT GLOBAL HIDDEN 23 __TMC_END__ - 88: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_registerTMCloneTable - 89: 0000000000000598 0 FUNC GLOBAL HIDDEN 11 _init diff --git a/src/test/correct/ifglobal/clang_pic/ifglobal_gtirb.expected b/src/test/correct/ifglobal/clang_pic/ifglobal_gtirb.expected index 3fb12368e..e506d7a3b 100644 --- a/src/test/correct/ifglobal/clang_pic/ifglobal_gtirb.expected +++ b/src/test/correct/ifglobal/clang_pic/ifglobal_gtirb.expected @@ -1,35 +1,18 @@ -var {:extern} CF: bv1; -var {:extern} Gamma_CF: bool; -var {:extern} Gamma_NF: bool; var {:extern} Gamma_R0: bool; -var {:extern} Gamma_R31: bool; var {:extern} Gamma_R8: bool; var {:extern} Gamma_R9: bool; -var {:extern} Gamma_VF: bool; -var {:extern} Gamma_ZF: bool; var {:extern} Gamma_mem: [bv64]bool; -var {:extern} Gamma_stack: [bv64]bool; -var {:extern} NF: bv1; var {:extern} R0: bv64; -var {:extern} R31: bv64; var {:extern} R8: bv64; var {:extern} R9: bv64; -var {:extern} VF: bv1; -var {:extern} ZF: bv1; var {:extern} mem: [bv64]bv8; -var {:extern} stack: [bv64]bv8; const {:extern} $x_addr: bv64; -axiom ($x_addr == 69684bv64); +axiom ($x_addr == 131092bv64); function {:extern} L(mem$in: [bv64]bv8, index: bv64) returns (bool) { (if (index == $x_addr) then true else false) } -function {:extern} {:bvbuiltin "bvadd"} bvadd32(bv32, bv32) returns (bv32); -function {:extern} {:bvbuiltin "bvadd"} bvadd33(bv33, bv33) returns (bv33); function {:extern} {:bvbuiltin "bvadd"} bvadd64(bv64, bv64) returns (bv64); -function {:extern} {:bvbuiltin "bvcomp"} bvcomp32(bv32, bv32) returns (bv1); -function {:extern} {:bvbuiltin "bvcomp"} bvcomp33(bv33, bv33) returns (bv1); -function {:extern} {:bvbuiltin "bvnot"} bvnot1(bv1) returns (bv1); function {:extern} gamma_load32(gammaMap: [bv64]bool, index: bv64) returns (bool) { (gammaMap[bvadd64(index, 3bv64)] && (gammaMap[bvadd64(index, 2bv64)] && (gammaMap[bvadd64(index, 1bv64)] && gammaMap[index]))) } @@ -54,18 +37,17 @@ function {:extern} memory_store32_le(memory: [bv64]bv8, index: bv64, value: bv32 memory[index := value[8:0]][bvadd64(index, 1bv64) := value[16:8]][bvadd64(index, 2bv64) := value[24:16]][bvadd64(index, 3bv64) := value[32:24]] } -function {:extern} {:bvbuiltin "zero_extend 1"} zero_extend1_32(bv32) returns (bv33); function {:extern} {:bvbuiltin "zero_extend 32"} zero_extend32_32(bv32) returns (bv64); procedure {:extern} rely(); modifies Gamma_mem, mem; ensures (Gamma_mem == old(Gamma_mem)); ensures (mem == old(mem)); - free ensures (memory_load32_le(mem, 1964bv64) == 131073bv32); - free ensures (memory_load64_le(mem, 69056bv64) == 1872bv64); - free ensures (memory_load64_le(mem, 69064bv64) == 1792bv64); - free ensures (memory_load64_le(mem, 69576bv64) == 69684bv64); - free ensures (memory_load64_le(mem, 69592bv64) == 1876bv64); - free ensures (memory_load64_le(mem, 69672bv64) == 69672bv64); + free ensures (memory_load32_le(mem, 2320bv64) == 131073bv32); + free ensures (memory_load64_le(mem, 130432bv64) == 2256bv64); + free ensures (memory_load64_le(mem, 130440bv64) == 2176bv64); + free ensures (memory_load64_le(mem, 131040bv64) == 131092bv64); + free ensures (memory_load64_le(mem, 131056bv64) == 2260bv64); + free ensures (memory_load64_le(mem, 131080bv64) == 131080bv64); procedure {:extern} rely_transitive(); modifies Gamma_mem, mem; @@ -83,100 +65,63 @@ procedure {:extern} rely_reflexive(); procedure {:extern} guarantee_reflexive(); modifies Gamma_mem, mem; -procedure main_1876(); - modifies CF, Gamma_CF, Gamma_NF, Gamma_R0, Gamma_R31, Gamma_R8, Gamma_R9, Gamma_VF, Gamma_ZF, Gamma_mem, Gamma_stack, NF, R0, R31, R8, R9, VF, ZF, mem, stack; - free requires (memory_load64_le(mem, 69664bv64) == 0bv64); - free requires (memory_load64_le(mem, 69672bv64) == 69672bv64); - free requires (memory_load32_le(mem, 1964bv64) == 131073bv32); - free requires (memory_load64_le(mem, 69056bv64) == 1872bv64); - free requires (memory_load64_le(mem, 69064bv64) == 1792bv64); - free requires (memory_load64_le(mem, 69576bv64) == 69684bv64); - free requires (memory_load64_le(mem, 69592bv64) == 1876bv64); - free requires (memory_load64_le(mem, 69672bv64) == 69672bv64); - free ensures (Gamma_R31 == old(Gamma_R31)); - free ensures (R31 == old(R31)); - free ensures (memory_load32_le(mem, 1964bv64) == 131073bv32); - free ensures (memory_load64_le(mem, 69056bv64) == 1872bv64); - free ensures (memory_load64_le(mem, 69064bv64) == 1792bv64); - free ensures (memory_load64_le(mem, 69576bv64) == 69684bv64); - free ensures (memory_load64_le(mem, 69592bv64) == 1876bv64); - free ensures (memory_load64_le(mem, 69672bv64) == 69672bv64); +procedure main(); + modifies Gamma_R0, Gamma_R8, Gamma_R9, Gamma_mem, R0, R8, R9, mem; + free requires (memory_load64_le(mem, 131072bv64) == 0bv64); + free requires (memory_load64_le(mem, 131080bv64) == 131080bv64); + free requires (memory_load32_le(mem, 2320bv64) == 131073bv32); + free requires (memory_load64_le(mem, 130432bv64) == 2256bv64); + free requires (memory_load64_le(mem, 130440bv64) == 2176bv64); + free requires (memory_load64_le(mem, 131040bv64) == 131092bv64); + free requires (memory_load64_le(mem, 131056bv64) == 2260bv64); + free requires (memory_load64_le(mem, 131080bv64) == 131080bv64); + free ensures (memory_load32_le(mem, 2320bv64) == 131073bv32); + free ensures (memory_load64_le(mem, 130432bv64) == 2256bv64); + free ensures (memory_load64_le(mem, 130440bv64) == 2176bv64); + free ensures (memory_load64_le(mem, 131040bv64) == 131092bv64); + free ensures (memory_load64_le(mem, 131056bv64) == 2260bv64); + free ensures (memory_load64_le(mem, 131080bv64) == 131080bv64); -implementation main_1876() +implementation main() { - var Cse0__5_3_5: bv32; - var Gamma_Cse0__5_3_5: bool; - var Gamma_load15: bool; - var Gamma_load16: bool; - var Gamma_load17: bool; - var Gamma_load18: bool; - var load15: bv32; - var load16: bv64; - var load17: bv64; - var load18: bv32; - main_1876__0__rjOo3YInS9ep6ZpsZcGhEQ: - assume {:captureState "main_1876__0__rjOo3YInS9ep6ZpsZcGhEQ"} true; - R31, Gamma_R31 := bvadd64(R31, 18446744073709551600bv64), Gamma_R31; - stack, Gamma_stack := memory_store32_le(stack, bvadd64(R31, 12bv64), 0bv32), gamma_store32(Gamma_stack, bvadd64(R31, 12bv64), true); - assume {:captureState "1880_0"} true; - R8, Gamma_R8 := 65536bv64, true; + var $load1: bv64; + var $load2: bv32; + var Gamma_$load1: bool; + var Gamma_$load2: bool; + $main$__0__$IkNYmV06TxC75h8A4NM3wA: + assume {:captureState "$main$__0__$IkNYmV06TxC75h8A4NM3wA"} true; + R8, Gamma_R8 := 126976bv64, true; call rely(); - load17, Gamma_load17 := memory_load64_le(mem, bvadd64(R8, 4040bv64)), (gamma_load64(Gamma_mem, bvadd64(R8, 4040bv64)) || L(mem, bvadd64(R8, 4040bv64))); - R8, Gamma_R8 := load17, Gamma_load17; + $load1, Gamma_$load1 := memory_load64_le(mem, bvadd64(R8, 4064bv64)), (gamma_load64(Gamma_mem, bvadd64(R8, 4064bv64)) || L(mem, bvadd64(R8, 4064bv64))); + R8, Gamma_R8 := $load1, Gamma_$load1; call rely(); - load18, Gamma_load18 := memory_load32_le(mem, R8), (gamma_load32(Gamma_mem, R8) || L(mem, R8)); - R8, Gamma_R8 := zero_extend32_32(load18), Gamma_load18; - Cse0__5_3_5, Gamma_Cse0__5_3_5 := bvadd32(R8[32:0], 0bv32), Gamma_R8; - VF, Gamma_VF := bvnot1(bvcomp32(Cse0__5_3_5, Cse0__5_3_5)), Gamma_Cse0__5_3_5; - CF, Gamma_CF := bvnot1(bvcomp33(zero_extend1_32(Cse0__5_3_5), bvadd33(zero_extend1_32(R8[32:0]), 4294967296bv33))), (Gamma_R8 && Gamma_Cse0__5_3_5); - ZF, Gamma_ZF := bvcomp32(Cse0__5_3_5, 0bv32), Gamma_Cse0__5_3_5; - NF, Gamma_NF := Cse0__5_3_5[32:31], Gamma_Cse0__5_3_5; - R8, Gamma_R8 := zero_extend32_32(Cse0__5_3_5), Gamma_Cse0__5_3_5; - assert Gamma_ZF; - goto main_1876__0__rjOo3YInS9ep6ZpsZcGhEQ$__0, main_1876__0__rjOo3YInS9ep6ZpsZcGhEQ$__1; - main_1876__0__rjOo3YInS9ep6ZpsZcGhEQ$__1: - assume {:captureState "main_1876__0__rjOo3YInS9ep6ZpsZcGhEQ$__1"} true; - assume (!(ZF == 1bv1)); - R8, Gamma_R8 := 1bv64, true; - assert Gamma_R8; - goto main_1876__0__rjOo3YInS9ep6ZpsZcGhEQ_goto_main_1876__3__MDEkbquZQ0KXk1JWhP4elQ, main_1876__0__rjOo3YInS9ep6ZpsZcGhEQ_goto_main_1876__1__baEU1iczT1WhDbVoju64Lg; - main_1876__0__rjOo3YInS9ep6ZpsZcGhEQ$__0: - assume {:captureState "main_1876__0__rjOo3YInS9ep6ZpsZcGhEQ$__0"} true; - assume (ZF == 1bv1); - R8, Gamma_R8 := 0bv64, true; - assert Gamma_R8; - goto main_1876__0__rjOo3YInS9ep6ZpsZcGhEQ_goto_main_1876__3__MDEkbquZQ0KXk1JWhP4elQ, main_1876__0__rjOo3YInS9ep6ZpsZcGhEQ_goto_main_1876__1__baEU1iczT1WhDbVoju64Lg; - main_1876__0__rjOo3YInS9ep6ZpsZcGhEQ_goto_main_1876__1__baEU1iczT1WhDbVoju64Lg: - assume {:captureState "main_1876__0__rjOo3YInS9ep6ZpsZcGhEQ_goto_main_1876__1__baEU1iczT1WhDbVoju64Lg"} true; - assume (!(R8[1:0] == 1bv1)); - goto main_1876__1__baEU1iczT1WhDbVoju64Lg; - main_1876__1__baEU1iczT1WhDbVoju64Lg: - assume {:captureState "main_1876__1__baEU1iczT1WhDbVoju64Lg"} true; - goto main_1876__2__pEVh12TOROuFnk2eh834jw; - main_1876__2__pEVh12TOROuFnk2eh834jw: - assume {:captureState "main_1876__2__pEVh12TOROuFnk2eh834jw"} true; - R8, Gamma_R8 := 1bv64, true; - R9, Gamma_R9 := 65536bv64, true; + $load2, Gamma_$load2 := memory_load32_le(mem, R8), (gamma_load32(Gamma_mem, R8) || L(mem, R8)); + R9, Gamma_R9 := zero_extend32_32($load2), Gamma_$load2; + assert Gamma_R9; + goto $main$__0__$IkNYmV06TxC75h8A4NM3wA_goto_$main$__2__$lwyID0MJQb6vgyjzPFtz8Q, $main$__0__$IkNYmV06TxC75h8A4NM3wA_goto_$main$__1__$D9t2gNJrSmyMH3GAVRe3IQ; + $main$__1__$D9t2gNJrSmyMH3GAVRe3IQ: + assume {:captureState "$main$__1__$D9t2gNJrSmyMH3GAVRe3IQ"} true; + R0, Gamma_R0 := 0bv64, true; + goto main_basil_return; + $main$__2__$lwyID0MJQb6vgyjzPFtz8Q: + assume {:captureState "$main$__2__$lwyID0MJQb6vgyjzPFtz8Q"} true; + R9, Gamma_R9 := 1bv64, true; call rely(); - load16, Gamma_load16 := memory_load64_le(mem, bvadd64(R9, 4040bv64)), (gamma_load64(Gamma_mem, bvadd64(R9, 4040bv64)) || L(mem, bvadd64(R9, 4040bv64))); - R9, Gamma_R9 := load16, Gamma_load16; - call rely(); - assert (L(mem, R9) ==> Gamma_R8); - mem, Gamma_mem := memory_store32_le(mem, R9, R8[32:0]), gamma_store32(Gamma_mem, R9, Gamma_R8); - assume {:captureState "1924_0"} true; - goto main_1876__3__MDEkbquZQ0KXk1JWhP4elQ; - main_1876__0__rjOo3YInS9ep6ZpsZcGhEQ_goto_main_1876__3__MDEkbquZQ0KXk1JWhP4elQ: - assume {:captureState "main_1876__0__rjOo3YInS9ep6ZpsZcGhEQ_goto_main_1876__3__MDEkbquZQ0KXk1JWhP4elQ"} true; - assume (R8[1:0] == 1bv1); - goto main_1876__3__MDEkbquZQ0KXk1JWhP4elQ; - main_1876__3__MDEkbquZQ0KXk1JWhP4elQ: - assume {:captureState "main_1876__3__MDEkbquZQ0KXk1JWhP4elQ"} true; - load15, Gamma_load15 := memory_load32_le(stack, bvadd64(R31, 12bv64)), gamma_load32(Gamma_stack, bvadd64(R31, 12bv64)); - R0, Gamma_R0 := zero_extend32_32(load15), Gamma_load15; - R31, Gamma_R31 := bvadd64(R31, 16bv64), Gamma_R31; - goto main_1876_basil_return; - main_1876_basil_return: - assume {:captureState "main_1876_basil_return"} true; + assert (L(mem, R8) ==> Gamma_R9); + mem, Gamma_mem := memory_store32_le(mem, R8, R9[32:0]), gamma_store32(Gamma_mem, R8, Gamma_R9); + assume {:captureState "2288$0"} true; + R0, Gamma_R0 := 0bv64, true; + goto main_basil_return; + $main$__0__$IkNYmV06TxC75h8A4NM3wA_goto_$main$__2__$lwyID0MJQb6vgyjzPFtz8Q: + assume {:captureState "$main$__0__$IkNYmV06TxC75h8A4NM3wA_goto_$main$__2__$lwyID0MJQb6vgyjzPFtz8Q"} true; + assume (R9[32:0] == 0bv32); + goto $main$__2__$lwyID0MJQb6vgyjzPFtz8Q; + $main$__0__$IkNYmV06TxC75h8A4NM3wA_goto_$main$__1__$D9t2gNJrSmyMH3GAVRe3IQ: + assume {:captureState "$main$__0__$IkNYmV06TxC75h8A4NM3wA_goto_$main$__1__$D9t2gNJrSmyMH3GAVRe3IQ"} true; + assume (!(R9[32:0] == 0bv32)); + goto $main$__1__$D9t2gNJrSmyMH3GAVRe3IQ; + main_basil_return: + assume {:captureState "main_basil_return"} true; return; } diff --git a/src/test/correct/ifglobal/gcc/ifglobal.adt b/src/test/correct/ifglobal/gcc/ifglobal.adt deleted file mode 100644 index ec01ee9f3..000000000 --- a/src/test/correct/ifglobal/gcc/ifglobal.adt +++ /dev/null @@ -1,521 +0,0 @@ -Project(Attrs([Attr("filename","\"gcc/ifglobal.out\""), -Attr("image-specification","(declare abi (name str))\n(declare arch (name str))\n(declare base-address (addr int))\n(declare bias (off int))\n(declare bits (size int))\n(declare code-region (addr int) (size int) (off int))\n(declare code-start (addr int))\n(declare entry-point (addr int))\n(declare external-reference (addr int) (name str))\n(declare format (name str))\n(declare is-executable (flag bool))\n(declare is-little-endian (flag bool))\n(declare llvm:base-address (addr int))\n(declare llvm:code-entry (name str) (off int) (size int))\n(declare llvm:coff-import-library (name str))\n(declare llvm:coff-virtual-section-header (name str) (addr int) (size int))\n(declare llvm:elf-program-header (name str) (off int) (size int))\n(declare llvm:elf-program-header-flags (name str) (ld bool) (r bool) \n (w bool) (x bool))\n(declare llvm:elf-virtual-program-header (name str) (addr int) (size int))\n(declare llvm:entry-point (addr int))\n(declare llvm:macho-symbol (name str) (value int))\n(declare llvm:name-reference (at int) (name str))\n(declare llvm:relocation (at int) (addr int))\n(declare llvm:section-entry (name str) (addr int) (size int) (off int))\n(declare llvm:section-flags (name str) (r bool) (w bool) (x bool))\n(declare llvm:segment-command (name str) (off int) (size int))\n(declare llvm:segment-command-flags (name str) (r bool) (w bool) (x bool))\n(declare llvm:symbol-entry (name str) (addr int) (size int) (off int)\n (value int))\n(declare llvm:virtual-segment-command (name str) (addr int) (size int))\n(declare mapped (addr int) (size int) (off int))\n(declare named-region (addr int) (size int) (name str))\n(declare named-symbol (addr int) (name str))\n(declare require (name str))\n(declare section (addr int) (size int))\n(declare segment (addr int) (size int) (r bool) (w bool) (x bool))\n(declare subarch (name str))\n(declare symbol-chunk (addr int) (size int) (root int))\n(declare symbol-value (addr int) (value int))\n(declare system (name str))\n(declare vendor (name str))\n\n(abi unknown)\n(arch aarch64)\n(base-address 0)\n(bias 0)\n(bits 64)\n(code-region 1856 20 1856)\n(code-region 1536 320 1536)\n(code-region 1440 96 1440)\n(code-region 1408 24 1408)\n(code-start 1588)\n(code-start 1536)\n(code-start 1812)\n(entry-point 1536)\n(external-reference 69592 _ITM_deregisterTMCloneTable)\n(external-reference 69600 __cxa_finalize)\n(external-reference 69608 __gmon_start__)\n(external-reference 69624 _ITM_registerTMCloneTable)\n(external-reference 69552 __libc_start_main)\n(external-reference 69560 __cxa_finalize)\n(external-reference 69568 __gmon_start__)\n(external-reference 69576 abort)\n(format elf)\n(is-executable true)\n(is-little-endian true)\n(llvm:base-address 0)\n(llvm:code-entry abort 0 0)\n(llvm:code-entry __cxa_finalize 0 0)\n(llvm:code-entry __libc_start_main 0 0)\n(llvm:code-entry _init 1408 0)\n(llvm:code-entry main 1812 44)\n(llvm:code-entry _start 1536 52)\n(llvm:code-entry abort@GLIBC_2.17 0 0)\n(llvm:code-entry _fini 1856 0)\n(llvm:code-entry __cxa_finalize@GLIBC_2.17 0 0)\n(llvm:code-entry __libc_start_main@GLIBC_2.34 0 0)\n(llvm:code-entry frame_dummy 1808 0)\n(llvm:code-entry __do_global_dtors_aux 1728 0)\n(llvm:code-entry register_tm_clones 1664 0)\n(llvm:code-entry deregister_tm_clones 1616 0)\n(llvm:code-entry call_weak_fn 1588 20)\n(llvm:code-entry .fini 1856 20)\n(llvm:code-entry .text 1536 320)\n(llvm:code-entry .plt 1440 96)\n(llvm:code-entry .init 1408 24)\n(llvm:elf-program-header 08 3480 616)\n(llvm:elf-program-header 07 0 0)\n(llvm:elf-program-header 06 1880 60)\n(llvm:elf-program-header 05 596 68)\n(llvm:elf-program-header 04 3496 496)\n(llvm:elf-program-header 03 3480 632)\n(llvm:elf-program-header 02 0 2104)\n(llvm:elf-program-header 01 568 27)\n(llvm:elf-program-header 00 64 504)\n(llvm:elf-program-header-flags 08 false true false false)\n(llvm:elf-program-header-flags 07 false true true false)\n(llvm:elf-program-header-flags 06 false true false false)\n(llvm:elf-program-header-flags 05 false true false false)\n(llvm:elf-program-header-flags 04 false true true false)\n(llvm:elf-program-header-flags 03 true true true false)\n(llvm:elf-program-header-flags 02 true true false true)\n(llvm:elf-program-header-flags 01 false true false false)\n(llvm:elf-program-header-flags 00 false true false false)\n(llvm:elf-virtual-program-header 08 69016 616)\n(llvm:elf-virtual-program-header 07 0 0)\n(llvm:elf-virtual-program-header 06 1880 60)\n(llvm:elf-virtual-program-header 05 596 68)\n(llvm:elf-virtual-program-header 04 69032 496)\n(llvm:elf-virtual-program-header 03 69016 640)\n(llvm:elf-virtual-program-header 02 0 2104)\n(llvm:elf-virtual-program-header 01 568 27)\n(llvm:elf-virtual-program-header 00 64 504)\n(llvm:entry-point 1536)\n(llvm:name-reference 69576 abort)\n(llvm:name-reference 69568 __gmon_start__)\n(llvm:name-reference 69560 __cxa_finalize)\n(llvm:name-reference 69552 __libc_start_main)\n(llvm:name-reference 69624 _ITM_registerTMCloneTable)\n(llvm:name-reference 69608 __gmon_start__)\n(llvm:name-reference 69600 __cxa_finalize)\n(llvm:name-reference 69592 _ITM_deregisterTMCloneTable)\n(llvm:section-entry .shstrtab 0 250 6816)\n(llvm:section-entry .strtab 0 544 6272)\n(llvm:section-entry .symtab 0 2112 4160)\n(llvm:section-entry .comment 0 43 4112)\n(llvm:section-entry .bss 69648 8 4112)\n(llvm:section-entry .data 69632 16 4096)\n(llvm:section-entry .got 69528 104 3992)\n(llvm:section-entry .dynamic 69032 496 3496)\n(llvm:section-entry .fini_array 69024 8 3488)\n(llvm:section-entry .init_array 69016 8 3480)\n(llvm:section-entry .eh_frame 1944 160 1944)\n(llvm:section-entry .eh_frame_hdr 1880 60 1880)\n(llvm:section-entry .rodata 1876 4 1876)\n(llvm:section-entry .fini 1856 20 1856)\n(llvm:section-entry .text 1536 320 1536)\n(llvm:section-entry .plt 1440 96 1440)\n(llvm:section-entry .init 1408 24 1408)\n(llvm:section-entry .rela.plt 1312 96 1312)\n(llvm:section-entry .rela.dyn 1120 192 1120)\n(llvm:section-entry .gnu.version_r 1072 48 1072)\n(llvm:section-entry .gnu.version 1054 18 1054)\n(llvm:section-entry .dynstr 912 141 912)\n(llvm:section-entry .dynsym 696 216 696)\n(llvm:section-entry .gnu.hash 664 28 664)\n(llvm:section-entry .note.ABI-tag 632 32 632)\n(llvm:section-entry .note.gnu.build-id 596 36 596)\n(llvm:section-entry .interp 568 27 568)\n(llvm:section-flags .shstrtab true false false)\n(llvm:section-flags .strtab true false false)\n(llvm:section-flags .symtab true false false)\n(llvm:section-flags .comment true false false)\n(llvm:section-flags .bss true true false)\n(llvm:section-flags .data true true false)\n(llvm:section-flags .got true true false)\n(llvm:section-flags .dynamic true true false)\n(llvm:section-flags .fini_array true true false)\n(llvm:section-flags .init_array true true false)\n(llvm:section-flags .eh_frame true false false)\n(llvm:section-flags .eh_frame_hdr true false false)\n(llvm:section-flags .rodata true false false)\n(llvm:section-flags .fini true false true)\n(llvm:section-flags .text true false true)\n(llvm:section-flags .plt true false true)\n(llvm:section-flags .init true false true)\n(llvm:section-flags .rela.plt true false false)\n(llvm:section-flags .rela.dyn true false false)\n(llvm:section-flags .gnu.version_r true false false)\n(llvm:section-flags .gnu.version true false false)\n(llvm:section-flags .dynstr true false false)\n(llvm:section-flags .dynsym true false false)\n(llvm:section-flags .gnu.hash true false false)\n(llvm:section-flags .note.ABI-tag true false false)\n(llvm:section-flags .note.gnu.build-id true false false)\n(llvm:section-flags .interp true false false)\n(llvm:symbol-entry abort 0 0 0 0)\n(llvm:symbol-entry __cxa_finalize 0 0 0 0)\n(llvm:symbol-entry __libc_start_main 0 0 0 0)\n(llvm:symbol-entry _init 1408 0 1408 1408)\n(llvm:symbol-entry main 1812 44 1812 1812)\n(llvm:symbol-entry _start 1536 52 1536 1536)\n(llvm:symbol-entry abort@GLIBC_2.17 0 0 0 0)\n(llvm:symbol-entry _fini 1856 0 1856 1856)\n(llvm:symbol-entry __cxa_finalize@GLIBC_2.17 0 0 0 0)\n(llvm:symbol-entry __libc_start_main@GLIBC_2.34 0 0 0 0)\n(llvm:symbol-entry frame_dummy 1808 0 1808 1808)\n(llvm:symbol-entry __do_global_dtors_aux 1728 0 1728 1728)\n(llvm:symbol-entry register_tm_clones 1664 0 1664 1664)\n(llvm:symbol-entry deregister_tm_clones 1616 0 1616 1616)\n(llvm:symbol-entry call_weak_fn 1588 20 1588 1588)\n(mapped 0 2104 0)\n(mapped 69016 632 3480)\n(named-region 0 2104 02)\n(named-region 69016 640 03)\n(named-region 568 27 .interp)\n(named-region 596 36 .note.gnu.build-id)\n(named-region 632 32 .note.ABI-tag)\n(named-region 664 28 .gnu.hash)\n(named-region 696 216 .dynsym)\n(named-region 912 141 .dynstr)\n(named-region 1054 18 .gnu.version)\n(named-region 1072 48 .gnu.version_r)\n(named-region 1120 192 .rela.dyn)\n(named-region 1312 96 .rela.plt)\n(named-region 1408 24 .init)\n(named-region 1440 96 .plt)\n(named-region 1536 320 .text)\n(named-region 1856 20 .fini)\n(named-region 1876 4 .rodata)\n(named-region 1880 60 .eh_frame_hdr)\n(named-region 1944 160 .eh_frame)\n(named-region 69016 8 .init_array)\n(named-region 69024 8 .fini_array)\n(named-region 69032 496 .dynamic)\n(named-region 69528 104 .got)\n(named-region 69632 16 .data)\n(named-region 69648 8 .bss)\n(named-region 0 43 .comment)\n(named-region 0 2112 .symtab)\n(named-region 0 544 .strtab)\n(named-region 0 250 .shstrtab)\n(named-symbol 1588 call_weak_fn)\n(named-symbol 1616 deregister_tm_clones)\n(named-symbol 1664 register_tm_clones)\n(named-symbol 1728 __do_global_dtors_aux)\n(named-symbol 1808 frame_dummy)\n(named-symbol 0 __libc_start_main@GLIBC_2.34)\n(named-symbol 0 __cxa_finalize@GLIBC_2.17)\n(named-symbol 1856 _fini)\n(named-symbol 0 abort@GLIBC_2.17)\n(named-symbol 1536 _start)\n(named-symbol 1812 main)\n(named-symbol 1408 _init)\n(named-symbol 0 __libc_start_main)\n(named-symbol 0 __cxa_finalize)\n(named-symbol 0 abort)\n(require libc.so.6)\n(section 568 27)\n(section 596 36)\n(section 632 32)\n(section 664 28)\n(section 696 216)\n(section 912 141)\n(section 1054 18)\n(section 1072 48)\n(section 1120 192)\n(section 1312 96)\n(section 1408 24)\n(section 1440 96)\n(section 1536 320)\n(section 1856 20)\n(section 1876 4)\n(section 1880 60)\n(section 1944 160)\n(section 69016 8)\n(section 69024 8)\n(section 69032 496)\n(section 69528 104)\n(section 69632 16)\n(section 69648 8)\n(section 0 43)\n(section 0 2112)\n(section 0 544)\n(section 0 250)\n(segment 0 2104 true false true)\n(segment 69016 640 true true false)\n(subarch v8)\n(symbol-chunk 1588 20 1588)\n(symbol-chunk 1536 52 1536)\n(symbol-chunk 1812 44 1812)\n(symbol-value 1588 1588)\n(symbol-value 1616 1616)\n(symbol-value 1664 1664)\n(symbol-value 1728 1728)\n(symbol-value 1808 1808)\n(symbol-value 1856 1856)\n(symbol-value 1536 1536)\n(symbol-value 1812 1812)\n(symbol-value 1408 1408)\n(symbol-value 0 0)\n(system \"\")\n(vendor \"\")\n"), -Attr("abi-name","\"aarch64-linux-gnu-elf\"")]), -Sections([Section(".shstrtab", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x00\x06\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xa0\x1b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x38\x00\x09\x00\x40\x00\x1c\x00\x1b\x00\x06\x00\x00\x00\x04\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x04\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x38\x08\x00\x00\x00\x00\x00\x00\x38\x08\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x01\x00\x00\x00\x06\x00\x00\x00\x98\x0d\x00\x00\x00\x00\x00\x00\x98\x0d"), -Section(".strtab", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x00\x06\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xa0\x1b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x38\x00\x09\x00\x40\x00\x1c\x00\x1b\x00\x06\x00\x00\x00\x04\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x04\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x38\x08\x00\x00\x00\x00\x00\x00\x38\x08\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x01\x00\x00\x00\x06\x00\x00\x00\x98\x0d\x00\x00\x00\x00\x00\x00\x98\x0d\x01\x00\x00\x00\x00\x00\x98\x0d\x01\x00\x00\x00\x00\x00\x78\x02\x00\x00\x00\x00\x00\x00\x80\x02\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x02\x00\x00\x00\x06\x00\x00\x00\xa8\x0d\x00\x00\x00\x00\x00\x00\xa8\x0d\x01\x00\x00\x00\x00\x00\xa8\x0d\x01\x00\x00\x00\x00\x00\xf0\x01\x00\x00\x00\x00\x00\x00\xf0\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x04\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x50\xe5\x74\x64\x04\x00\x00\x00\x58\x07\x00\x00\x00\x00\x00\x00\x58\x07\x00\x00\x00\x00\x00\x00\x58\x07\x00\x00\x00\x00\x00\x00\x3c\x00\x00\x00\x00\x00\x00\x00\x3c\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x51\xe5\x74\x64\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x52\xe5\x74\x64\x04\x00\x00\x00\x98\x0d\x00\x00\x00\x00\x00\x00\x98\x0d\x01\x00\x00\x00\x00\x00\x98\x0d\x01\x00\x00\x00\x00\x00"), -Section(".comment", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x00\x06\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xa0\x1b\x00"), -Section(".interp", 0x238, "\x2f\x6c\x69\x62\x2f\x6c\x64\x2d\x6c\x69\x6e\x75\x78\x2d\x61\x61\x72\x63\x68\x36\x34\x2e\x73\x6f\x2e\x31\x00"), -Section(".note.gnu.build-id", 0x254, "\x04\x00\x00\x00\x14\x00\x00\x00\x03\x00\x00\x00\x47\x4e\x55\x00\xc0\xeb\x89\x1f\x36\xcd\x20\x80\xac\x44\x14\x74\xaa\xae\x0c\x39\x58\xc7\x92\xc8"), -Section(".note.ABI-tag", 0x278, "\x04\x00\x00\x00\x10\x00\x00\x00\x01\x00\x00\x00\x47\x4e\x55\x00\x00\x00\x00\x00\x03\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00"), -Section(".gnu.hash", 0x298, "\x01\x00\x00\x00\x01\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".dynsym", 0x2B8, "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x0b\x00\x80\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x16\x00\x00\x10\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x48\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x22\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x22\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x73\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".dynstr", 0x390, "\x00\x5f\x5f\x63\x78\x61\x5f\x66\x69\x6e\x61\x6c\x69\x7a\x65\x00\x5f\x5f\x6c\x69\x62\x63\x5f\x73\x74\x61\x72\x74\x5f\x6d\x61\x69\x6e\x00\x61\x62\x6f\x72\x74\x00\x6c\x69\x62\x63\x2e\x73\x6f\x2e\x36\x00\x47\x4c\x49\x42\x43\x5f\x32\x2e\x31\x37\x00\x47\x4c\x49\x42\x43\x5f\x32\x2e\x33\x34\x00\x5f\x49\x54\x4d\x5f\x64\x65\x72\x65\x67\x69\x73\x74\x65\x72\x54\x4d\x43\x6c\x6f\x6e\x65\x54\x61\x62\x6c\x65\x00\x5f\x5f\x67\x6d\x6f\x6e\x5f\x73\x74\x61\x72\x74\x5f\x5f\x00\x5f\x49\x54\x4d\x5f\x72\x65\x67\x69\x73\x74\x65\x72\x54\x4d\x43\x6c\x6f\x6e\x65\x54\x61\x62\x6c\x65\x00"), -Section(".gnu.version", 0x41E, "\x00\x00\x00\x00\x00\x00\x02\x00\x01\x00\x03\x00\x01\x00\x03\x00\x01\x00"), -Section(".gnu.version_r", 0x430, "\x01\x00\x02\x00\x28\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x97\x91\x96\x06\x00\x00\x03\x00\x32\x00\x00\x00\x10\x00\x00\x00\xb4\x91\x96\x06\x00\x00\x02\x00\x3d\x00\x00\x00\x00\x00\x00\x00"), -Section(".rela.dyn", 0x460, "\x98\x0d\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x10\x07\x00\x00\x00\x00\x00\x00\xa0\x0d\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\xc0\x06\x00\x00\x00\x00\x00\x00\xf0\x0f\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x14\x07\x00\x00\x00\x00\x00\x00\x08\x10\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x08\x10\x01\x00\x00\x00\x00\x00\xd8\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe0\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe8\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xf8\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".rela.plt", 0x520, "\xb0\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xb8\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xc0\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xc8\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".init", 0x580, "\x1f\x20\x03\xd5\xfd\x7b\xbf\xa9\xfd\x03\x00\x91\x2a\x00\x00\x94\xfd\x7b\xc1\xa8\xc0\x03\x5f\xd6"), -Section(".plt", 0x5A0, "\xf0\x7b\xbf\xa9\x90\x00\x00\x90\x11\xd6\x47\xf9\x10\xa2\x3e\x91\x20\x02\x1f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x90\x00\x00\x90\x11\xda\x47\xf9\x10\xc2\x3e\x91\x20\x02\x1f\xd6\x90\x00\x00\x90\x11\xde\x47\xf9\x10\xe2\x3e\x91\x20\x02\x1f\xd6\x90\x00\x00\x90\x11\xe2\x47\xf9\x10\x02\x3f\x91\x20\x02\x1f\xd6\x90\x00\x00\x90\x11\xe6\x47\xf9\x10\x22\x3f\x91\x20\x02\x1f\xd6"), -Section(".text", 0x600, "\x1f\x20\x03\xd5\x1d\x00\x80\xd2\x1e\x00\x80\xd2\xe5\x03\x00\xaa\xe1\x03\x40\xf9\xe2\x23\x00\x91\xe6\x03\x00\x91\x80\x00\x00\x90\x00\xf8\x47\xf9\x03\x00\x80\xd2\x04\x00\x80\xd2\xe5\xff\xff\x97\xf0\xff\xff\x97\x80\x00\x00\x90\x00\xf4\x47\xf9\x40\x00\x00\xb4\xe8\xff\xff\x17\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x80\x00\x00\xb0\x00\x40\x00\x91\x81\x00\x00\xb0\x21\x40\x00\x91\x3f\x00\x00\xeb\xc0\x00\x00\x54\x81\x00\x00\x90\x21\xec\x47\xf9\x61\x00\x00\xb4\xf0\x03\x01\xaa\x00\x02\x1f\xd6\xc0\x03\x5f\xd6\x80\x00\x00\xb0\x00\x40\x00\x91\x81\x00\x00\xb0\x21\x40\x00\x91\x21\x00\x00\xcb\x22\xfc\x7f\xd3\x41\x0c\x81\x8b\x21\xfc\x41\x93\xc1\x00\x00\xb4\x82\x00\x00\x90\x42\xfc\x47\xf9\x62\x00\x00\xb4\xf0\x03\x02\xaa\x00\x02\x1f\xd6\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\xfd\x7b\xbe\xa9\xfd\x03\x00\x91\xf3\x0b\x00\xf9\x93\x00\x00\xb0\x60\x42\x40\x39\x40\x01\x00\x35\x80\x00\x00\x90\x00\xf0\x47\xf9\x80\x00\x00\xb4\x80\x00\x00\xb0\x00\x04\x40\xf9\xb9\xff\xff\x97\xd8\xff\xff\x97\x20\x00\x80\x52\x60\x42\x00\x39\xf3\x0b\x40\xf9\xfd\x7b\xc2\xa8\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\xdc\xff\xff\x17\x80\x00\x00\xb0\x00\x50\x00\x91\x00\x00\x40\xb9\x1f\x00\x00\x71\xa1\x00\x00\x54\x80\x00\x00\xb0\x00\x50\x00\x91\x21\x00\x80\x52\x01\x00\x00\xb9\x00\x00\x80\x52\xc0\x03\x5f\xd6"), -Section(".fini", 0x740, "\x1f\x20\x03\xd5\xfd\x7b\xbf\xa9\xfd\x03\x00\x91\xfd\x7b\xc1\xa8\xc0\x03\x5f\xd6"), -Section(".rodata", 0x754, "\x01\x00\x02\x00"), -Section(".eh_frame_hdr", 0x758, "\x01\x1b\x03\x3b\x3c\x00\x00\x00\x06\x00\x00\x00\xa8\xfe\xff\xff\x54\x00\x00\x00\xf8\xfe\xff\xff\x68\x00\x00\x00\x28\xff\xff\xff\x7c\x00\x00\x00\x68\xff\xff\xff\x90\x00\x00\x00\xb8\xff\xff\xff\xb4\x00\x00\x00\xbc\xff\xff\xff\xc8\x00\x00\x00"), -Section(".eh_frame", 0x798, "\x10\x00\x00\x00\x00\x00\x00\x00\x01\x7a\x52\x00\x04\x78\x1e\x01\x1b\x0c\x1f\x00\x10\x00\x00\x00\x18\x00\x00\x00\x4c\xfe\xff\xff\x34\x00\x00\x00\x00\x41\x07\x1e\x10\x00\x00\x00\x2c\x00\x00\x00\x88\xfe\xff\xff\x30\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x40\x00\x00\x00\xa4\xfe\xff\xff\x3c\x00\x00\x00\x00\x00\x00\x00\x20\x00\x00\x00\x54\x00\x00\x00\xd0\xfe\xff\xff\x48\x00\x00\x00\x00\x41\x0e\x20\x9d\x04\x9e\x03\x42\x93\x02\x4e\xde\xdd\xd3\x0e\x00\x00\x00\x00\x10\x00\x00\x00\x78\x00\x00\x00\xfc\xfe\xff\xff\x04\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x8c\x00\x00\x00\xec\xfe\xff\xff\x2c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".fini_array", 0x10DA0, "\xc0\x06\x00\x00\x00\x00\x00\x00"), -Section(".dynamic", 0x10DA8, "\x01\x00\x00\x00\x00\x00\x00\x00\x28\x00\x00\x00\x00\x00\x00\x00\x0c\x00\x00\x00\x00\x00\x00\x00\x80\x05\x00\x00\x00\x00\x00\x00\x0d\x00\x00\x00\x00\x00\x00\x00\x40\x07\x00\x00\x00\x00\x00\x00\x19\x00\x00\x00\x00\x00\x00\x00\x98\x0d\x01\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x1a\x00\x00\x00\x00\x00\x00\x00\xa0\x0d\x01\x00\x00\x00\x00\x00\x1c\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\xf5\xfe\xff\x6f\x00\x00\x00\x00\x98\x02\x00\x00\x00\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x90\x03\x00\x00\x00\x00\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\xb8\x02\x00\x00\x00\x00\x00\x00\x0a\x00\x00\x00\x00\x00\x00\x00\x8d\x00\x00\x00\x00\x00\x00\x00\x0b\x00\x00\x00\x00\x00\x00\x00\x18\x00\x00\x00\x00\x00\x00\x00\x15\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x98\x0f\x01\x00\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x60\x00\x00\x00\x00\x00\x00\x00\x14\x00\x00\x00\x00\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x17\x00\x00\x00\x00\x00\x00\x00\x20\x05\x00\x00\x00\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x60\x04\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\xc0\x00\x00\x00\x00\x00\x00\x00\x09\x00\x00\x00\x00\x00\x00\x00\x18\x00\x00\x00\x00\x00\x00\x00\x1e\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\xfb\xff\xff\x6f\x00\x00\x00\x00\x01\x00\x00\x08\x00\x00\x00\x00\xfe\xff\xff\x6f\x00\x00\x00\x00\x30\x04\x00\x00\x00\x00\x00\x00\xff\xff\xff\x6f\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\xf0\xff\xff\x6f\x00\x00\x00\x00\x1e\x04\x00\x00\x00\x00\x00\x00\xf9\xff\xff\x6f\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".got", 0x10F98, "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xa0\x05\x00\x00\x00\x00\x00\x00\xa0\x05\x00\x00\x00\x00\x00\x00\xa0\x05\x00\x00\x00\x00\x00\x00\xa0\x05\x00\x00\x00\x00\x00\x00\xa8\x0d\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x14\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".data", 0x11000, "\x00\x00\x00\x00\x00\x00\x00\x00\x08\x10\x01\x00\x00\x00\x00\x00"), -Section(".init_array", 0x10D98, "\x10\x07\x00\x00\x00\x00\x00\x00")]), -Memmap([Annotation(Region(0x0,0x837), Attr("segment","02 0 2104")), -Annotation(Region(0x600,0x633), Attr("symbol","\"_start\"")), -Annotation(Region(0x0,0xF9), Attr("section","\".shstrtab\"")), -Annotation(Region(0x0,0x21F), Attr("section","\".strtab\"")), -Annotation(Region(0x0,0x2A), Attr("section","\".comment\"")), -Annotation(Region(0x238,0x252), Attr("section","\".interp\"")), -Annotation(Region(0x254,0x277), Attr("section","\".note.gnu.build-id\"")), -Annotation(Region(0x278,0x297), Attr("section","\".note.ABI-tag\"")), -Annotation(Region(0x298,0x2B3), Attr("section","\".gnu.hash\"")), -Annotation(Region(0x2B8,0x38F), Attr("section","\".dynsym\"")), -Annotation(Region(0x390,0x41C), Attr("section","\".dynstr\"")), -Annotation(Region(0x41E,0x42F), Attr("section","\".gnu.version\"")), -Annotation(Region(0x430,0x45F), Attr("section","\".gnu.version_r\"")), -Annotation(Region(0x460,0x51F), Attr("section","\".rela.dyn\"")), -Annotation(Region(0x520,0x57F), Attr("section","\".rela.plt\"")), -Annotation(Region(0x580,0x597), Attr("section","\".init\"")), -Annotation(Region(0x5A0,0x5FF), Attr("section","\".plt\"")), -Annotation(Region(0x580,0x597), Attr("code-region","()")), -Annotation(Region(0x5A0,0x5FF), Attr("code-region","()")), -Annotation(Region(0x600,0x633), Attr("symbol-info","_start 0x600 52")), -Annotation(Region(0x634,0x647), Attr("symbol","\"call_weak_fn\"")), -Annotation(Region(0x634,0x647), Attr("symbol-info","call_weak_fn 0x634 20")), -Annotation(Region(0x600,0x73F), Attr("section","\".text\"")), -Annotation(Region(0x600,0x73F), Attr("code-region","()")), -Annotation(Region(0x714,0x73F), Attr("symbol","\"main\"")), -Annotation(Region(0x714,0x73F), Attr("symbol-info","main 0x714 44")), -Annotation(Region(0x740,0x753), Attr("section","\".fini\"")), -Annotation(Region(0x740,0x753), Attr("code-region","()")), -Annotation(Region(0x754,0x757), Attr("section","\".rodata\"")), -Annotation(Region(0x758,0x793), Attr("section","\".eh_frame_hdr\"")), -Annotation(Region(0x798,0x837), Attr("section","\".eh_frame\"")), -Annotation(Region(0x10D98,0x1100F), Attr("segment","03 0x10D98 640")), -Annotation(Region(0x10DA0,0x10DA7), Attr("section","\".fini_array\"")), -Annotation(Region(0x10DA8,0x10F97), Attr("section","\".dynamic\"")), -Annotation(Region(0x10F98,0x10FFF), Attr("section","\".got\"")), -Annotation(Region(0x11000,0x1100F), Attr("section","\".data\"")), -Annotation(Region(0x10D98,0x10D9F), Attr("section","\".init_array\""))]), -Program(Tid(1_512, "%000005e8"), Attrs([]), - Subs([Sub(Tid(1_458, "@__cxa_finalize"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x5D0"), -Attr("stub","()")]), "__cxa_finalize", Args([Arg(Tid(1_513, "%000005e9"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("__cxa_finalize_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(864, "@__cxa_finalize"), - Attrs([Attr("address","0x5D0")]), Phis([]), -Defs([Def(Tid(1_112, "%00000458"), Attrs([Attr("address","0x5D0"), -Attr("insn","adrp x16, #65536")]), Var("R16",Imm(64)), Int(65536,64)), -Def(Tid(1_119, "%0000045f"), Attrs([Attr("address","0x5D4"), -Attr("insn","ldr x17, [x16, #0xfb8]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(4024,64)),LittleEndian(),64)), -Def(Tid(1_125, "%00000465"), Attrs([Attr("address","0x5D8"), -Attr("insn","add x16, x16, #0xfb8")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(4024,64)))]), Jmps([Call(Tid(1_130, "%0000046a"), - Attrs([Attr("address","0x5DC"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), -Sub(Tid(1_459, "@__do_global_dtors_aux"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x6C0")]), - "__do_global_dtors_aux", Args([Arg(Tid(1_514, "%000005ea"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("__do_global_dtors_aux_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(634, "@__do_global_dtors_aux"), - Attrs([Attr("address","0x6C0")]), Phis([]), Defs([Def(Tid(638, "%0000027e"), - Attrs([Attr("address","0x6C0"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("#3",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(18446744073709551584,64))), -Def(Tid(644, "%00000284"), Attrs([Attr("address","0x6C0"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("#3",Imm(64)),Var("R29",Imm(64)),LittleEndian(),64)), -Def(Tid(650, "%0000028a"), Attrs([Attr("address","0x6C0"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("#3",Imm(64)),Int(8,64)),Var("R30",Imm(64)),LittleEndian(),64)), -Def(Tid(654, "%0000028e"), Attrs([Attr("address","0x6C0"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("R31",Imm(64)), -Var("#3",Imm(64))), Def(Tid(660, "%00000294"), - Attrs([Attr("address","0x6C4"), Attr("insn","mov x29, sp")]), - Var("R29",Imm(64)), Var("R31",Imm(64))), Def(Tid(668, "%0000029c"), - Attrs([Attr("address","0x6C8"), Attr("insn","str x19, [sp, #0x10]")]), - Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(16,64)),Var("R19",Imm(64)),LittleEndian(),64)), -Def(Tid(673, "%000002a1"), Attrs([Attr("address","0x6CC"), -Attr("insn","adrp x19, #69632")]), Var("R19",Imm(64)), Int(69632,64)), -Def(Tid(680, "%000002a8"), Attrs([Attr("address","0x6D0"), -Attr("insn","ldrb w0, [x19, #0x10]")]), Var("R0",Imm(64)), -UNSIGNED(64,Load(Var("mem",Mem(64,8)),PLUS(Var("R19",Imm(64)),Int(16,64)),LittleEndian(),8)))]), -Jmps([Goto(Tid(687, "%000002af"), Attrs([Attr("address","0x6D4"), -Attr("insn","cbnz w0, #0x28")]), - NEQ(Extract(31,0,Var("R0",Imm(64))),Int(0,32)), -Direct(Tid(685, "%000002ad"))), Goto(Tid(1_500, "%000005dc"), Attrs([]), - Int(1,1), Direct(Tid(809, "%00000329")))])), Blk(Tid(809, "%00000329"), - Attrs([Attr("address","0x6D8")]), Phis([]), Defs([Def(Tid(812, "%0000032c"), - Attrs([Attr("address","0x6D8"), Attr("insn","adrp x0, #65536")]), - Var("R0",Imm(64)), Int(65536,64)), Def(Tid(819, "%00000333"), - Attrs([Attr("address","0x6DC"), Attr("insn","ldr x0, [x0, #0xfe0]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(4064,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(825, "%00000339"), Attrs([Attr("address","0x6E0"), -Attr("insn","cbz x0, #0x10")]), EQ(Var("R0",Imm(64)),Int(0,64)), -Direct(Tid(823, "%00000337"))), Goto(Tid(1_501, "%000005dd"), Attrs([]), - Int(1,1), Direct(Tid(848, "%00000350")))])), Blk(Tid(848, "%00000350"), - Attrs([Attr("address","0x6E4")]), Phis([]), Defs([Def(Tid(851, "%00000353"), - Attrs([Attr("address","0x6E4"), Attr("insn","adrp x0, #69632")]), - Var("R0",Imm(64)), Int(69632,64)), Def(Tid(858, "%0000035a"), - Attrs([Attr("address","0x6E8"), Attr("insn","ldr x0, [x0, #0x8]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(863, "%0000035f"), Attrs([Attr("address","0x6EC"), -Attr("insn","bl #-0x11c")]), Var("R30",Imm(64)), Int(1776,64))]), -Jmps([Call(Tid(866, "%00000362"), Attrs([Attr("address","0x6EC"), -Attr("insn","bl #-0x11c")]), Int(1,1), -(Direct(Tid(1_458, "@__cxa_finalize")),Direct(Tid(823, "%00000337"))))])), -Blk(Tid(823, "%00000337"), Attrs([Attr("address","0x6F0")]), Phis([]), -Defs([Def(Tid(831, "%0000033f"), Attrs([Attr("address","0x6F0"), -Attr("insn","bl #-0xa0")]), Var("R30",Imm(64)), Int(1780,64))]), -Jmps([Call(Tid(833, "%00000341"), Attrs([Attr("address","0x6F0"), -Attr("insn","bl #-0xa0")]), Int(1,1), -(Direct(Tid(1_472, "@deregister_tm_clones")),Direct(Tid(835, "%00000343"))))])), -Blk(Tid(835, "%00000343"), Attrs([Attr("address","0x6F4")]), Phis([]), -Defs([Def(Tid(838, "%00000346"), Attrs([Attr("address","0x6F4"), -Attr("insn","mov w0, #0x1")]), Var("R0",Imm(64)), Int(1,64)), -Def(Tid(846, "%0000034e"), Attrs([Attr("address","0x6F8"), -Attr("insn","strb w0, [x19, #0x10]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R19",Imm(64)),Int(16,64)),Extract(7,0,Var("R0",Imm(64))),LittleEndian(),8))]), -Jmps([Goto(Tid(1_502, "%000005de"), Attrs([]), Int(1,1), -Direct(Tid(685, "%000002ad")))])), Blk(Tid(685, "%000002ad"), - Attrs([Attr("address","0x6FC")]), Phis([]), Defs([Def(Tid(695, "%000002b7"), - Attrs([Attr("address","0x6FC"), Attr("insn","ldr x19, [sp, #0x10]")]), - Var("R19",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(16,64)),LittleEndian(),64)), -Def(Tid(702, "%000002be"), Attrs([Attr("address","0x700"), -Attr("insn","ldp x29, x30, [sp], #0x20")]), Var("R29",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(707, "%000002c3"), Attrs([Attr("address","0x700"), -Attr("insn","ldp x29, x30, [sp], #0x20")]), Var("R30",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(711, "%000002c7"), Attrs([Attr("address","0x700"), -Attr("insn","ldp x29, x30, [sp], #0x20")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(32,64)))]), Jmps([Call(Tid(716, "%000002cc"), - Attrs([Attr("address","0x704"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), Sub(Tid(1_463, "@__libc_start_main"), - Attrs([Attr("c.proto","signed (*)(signed (*)(signed , char** , char** );* main, signed , char** , \nvoid* auxv)"), -Attr("address","0x5C0"), Attr("stub","()")]), "__libc_start_main", - Args([Arg(Tid(1_515, "%000005eb"), - Attrs([Attr("c.layout","**[ : 64]"), -Attr("c.data","Top:u64 ptr ptr"), -Attr("c.type","signed (*)(signed , char** , char** );*")]), - Var("__libc_start_main_main",Imm(64)), Var("R0",Imm(64)), In()), -Arg(Tid(1_516, "%000005ec"), Attrs([Attr("c.layout","[signed : 32]"), -Attr("c.data","Top:u32"), Attr("c.type","signed")]), - Var("__libc_start_main_arg2",Imm(32)), LOW(32,Var("R1",Imm(64))), In()), -Arg(Tid(1_517, "%000005ed"), Attrs([Attr("c.layout","**[char : 8]"), -Attr("c.data","Top:u8 ptr ptr"), Attr("c.type","char**")]), - Var("__libc_start_main_arg3",Imm(64)), Var("R2",Imm(64)), Both()), -Arg(Tid(1_518, "%000005ee"), Attrs([Attr("c.layout","*[ : 8]"), -Attr("c.data","{} ptr"), Attr("c.type","void*")]), - Var("__libc_start_main_auxv",Imm(64)), Var("R3",Imm(64)), Both()), -Arg(Tid(1_519, "%000005ef"), Attrs([Attr("c.layout","[signed : 32]"), -Attr("c.data","Top:u32"), Attr("c.type","signed")]), - Var("__libc_start_main_result",Imm(32)), LOW(32,Var("R0",Imm(64))), -Out())]), Blks([Blk(Tid(467, "@__libc_start_main"), - Attrs([Attr("address","0x5C0")]), Phis([]), -Defs([Def(Tid(1_090, "%00000442"), Attrs([Attr("address","0x5C0"), -Attr("insn","adrp x16, #65536")]), Var("R16",Imm(64)), Int(65536,64)), -Def(Tid(1_097, "%00000449"), Attrs([Attr("address","0x5C4"), -Attr("insn","ldr x17, [x16, #0xfb0]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(4016,64)),LittleEndian(),64)), -Def(Tid(1_103, "%0000044f"), Attrs([Attr("address","0x5C8"), -Attr("insn","add x16, x16, #0xfb0")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(4016,64)))]), Jmps([Call(Tid(1_108, "%00000454"), - Attrs([Attr("address","0x5CC"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), Sub(Tid(1_464, "@_fini"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x740")]), - "_fini", Args([Arg(Tid(1_520, "%000005f0"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("_fini_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(31, "@_fini"), - Attrs([Attr("address","0x740")]), Phis([]), Defs([Def(Tid(37, "%00000025"), - Attrs([Attr("address","0x744"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("#0",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(18446744073709551600,64))), -Def(Tid(43, "%0000002b"), Attrs([Attr("address","0x744"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("#0",Imm(64)),Var("R29",Imm(64)),LittleEndian(),64)), -Def(Tid(49, "%00000031"), Attrs([Attr("address","0x744"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("#0",Imm(64)),Int(8,64)),Var("R30",Imm(64)),LittleEndian(),64)), -Def(Tid(53, "%00000035"), Attrs([Attr("address","0x744"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("R31",Imm(64)), -Var("#0",Imm(64))), Def(Tid(59, "%0000003b"), Attrs([Attr("address","0x748"), -Attr("insn","mov x29, sp")]), Var("R29",Imm(64)), Var("R31",Imm(64))), -Def(Tid(66, "%00000042"), Attrs([Attr("address","0x74C"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R29",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(71, "%00000047"), Attrs([Attr("address","0x74C"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R30",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(75, "%0000004b"), Attrs([Attr("address","0x74C"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(16,64)))]), Jmps([Call(Tid(80, "%00000050"), - Attrs([Attr("address","0x750"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), Sub(Tid(1_465, "@_init"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x580")]), - "_init", Args([Arg(Tid(1_521, "%000005f1"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("_init_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(1_289, "@_init"), - Attrs([Attr("address","0x580")]), Phis([]), -Defs([Def(Tid(1_295, "%0000050f"), Attrs([Attr("address","0x584"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("#6",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(18446744073709551600,64))), -Def(Tid(1_301, "%00000515"), Attrs([Attr("address","0x584"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("#6",Imm(64)),Var("R29",Imm(64)),LittleEndian(),64)), -Def(Tid(1_307, "%0000051b"), Attrs([Attr("address","0x584"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("#6",Imm(64)),Int(8,64)),Var("R30",Imm(64)),LittleEndian(),64)), -Def(Tid(1_311, "%0000051f"), Attrs([Attr("address","0x584"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("R31",Imm(64)), -Var("#6",Imm(64))), Def(Tid(1_317, "%00000525"), - Attrs([Attr("address","0x588"), Attr("insn","mov x29, sp")]), - Var("R29",Imm(64)), Var("R31",Imm(64))), Def(Tid(1_322, "%0000052a"), - Attrs([Attr("address","0x58C"), Attr("insn","bl #0xa8")]), - Var("R30",Imm(64)), Int(1424,64))]), Jmps([Call(Tid(1_324, "%0000052c"), - Attrs([Attr("address","0x58C"), Attr("insn","bl #0xa8")]), Int(1,1), -(Direct(Tid(1_470, "@call_weak_fn")),Direct(Tid(1_326, "%0000052e"))))])), -Blk(Tid(1_326, "%0000052e"), Attrs([Attr("address","0x590")]), Phis([]), -Defs([Def(Tid(1_331, "%00000533"), Attrs([Attr("address","0x590"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R29",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(1_336, "%00000538"), Attrs([Attr("address","0x590"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R30",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(1_340, "%0000053c"), Attrs([Attr("address","0x590"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(16,64)))]), Jmps([Call(Tid(1_345, "%00000541"), - Attrs([Attr("address","0x594"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), Sub(Tid(1_466, "@_start"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x600"), -Attr("stub","()"), Attr("entry-point","()")]), "_start", - Args([Arg(Tid(1_522, "%000005f2"), Attrs([Attr("c.layout","[signed : 32]"), -Attr("c.data","Top:u32"), Attr("c.type","signed")]), - Var("_start_result",Imm(32)), LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(404, "@_start"), Attrs([Attr("address","0x600")]), Phis([]), -Defs([Def(Tid(409, "%00000199"), Attrs([Attr("address","0x604"), -Attr("insn","mov x29, #0x0")]), Var("R29",Imm(64)), Int(0,64)), -Def(Tid(414, "%0000019e"), Attrs([Attr("address","0x608"), -Attr("insn","mov x30, #0x0")]), Var("R30",Imm(64)), Int(0,64)), -Def(Tid(420, "%000001a4"), Attrs([Attr("address","0x60C"), -Attr("insn","mov x5, x0")]), Var("R5",Imm(64)), Var("R0",Imm(64))), -Def(Tid(427, "%000001ab"), Attrs([Attr("address","0x610"), -Attr("insn","ldr x1, [sp]")]), Var("R1",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(433, "%000001b1"), Attrs([Attr("address","0x614"), -Attr("insn","add x2, sp, #0x8")]), Var("R2",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(8,64))), Def(Tid(439, "%000001b7"), - Attrs([Attr("address","0x618"), Attr("insn","mov x6, sp")]), - Var("R6",Imm(64)), Var("R31",Imm(64))), Def(Tid(444, "%000001bc"), - Attrs([Attr("address","0x61C"), Attr("insn","adrp x0, #65536")]), - Var("R0",Imm(64)), Int(65536,64)), Def(Tid(451, "%000001c3"), - Attrs([Attr("address","0x620"), Attr("insn","ldr x0, [x0, #0xff0]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(4080,64)),LittleEndian(),64)), -Def(Tid(456, "%000001c8"), Attrs([Attr("address","0x624"), -Attr("insn","mov x3, #0x0")]), Var("R3",Imm(64)), Int(0,64)), -Def(Tid(461, "%000001cd"), Attrs([Attr("address","0x628"), -Attr("insn","mov x4, #0x0")]), Var("R4",Imm(64)), Int(0,64)), -Def(Tid(466, "%000001d2"), Attrs([Attr("address","0x62C"), -Attr("insn","bl #-0x6c")]), Var("R30",Imm(64)), Int(1584,64))]), -Jmps([Call(Tid(469, "%000001d5"), Attrs([Attr("address","0x62C"), -Attr("insn","bl #-0x6c")]), Int(1,1), -(Direct(Tid(1_463, "@__libc_start_main")),Direct(Tid(471, "%000001d7"))))])), -Blk(Tid(471, "%000001d7"), Attrs([Attr("address","0x630")]), Phis([]), -Defs([Def(Tid(474, "%000001da"), Attrs([Attr("address","0x630"), -Attr("insn","bl #-0x40")]), Var("R30",Imm(64)), Int(1588,64))]), -Jmps([Call(Tid(477, "%000001dd"), Attrs([Attr("address","0x630"), -Attr("insn","bl #-0x40")]), Int(1,1), -(Direct(Tid(1_469, "@abort")),Direct(Tid(1_503, "%000005df"))))])), -Blk(Tid(1_503, "%000005df"), Attrs([]), Phis([]), Defs([]), -Jmps([Call(Tid(1_504, "%000005e0"), Attrs([]), Int(1,1), -(Direct(Tid(1_470, "@call_weak_fn")),))]))])), Sub(Tid(1_469, "@abort"), - Attrs([Attr("noreturn","()"), Attr("c.proto","void (*)(void)"), -Attr("address","0x5F0"), Attr("stub","()")]), "abort", Args([]), -Blks([Blk(Tid(475, "@abort"), Attrs([Attr("address","0x5F0")]), Phis([]), -Defs([Def(Tid(1_156, "%00000484"), Attrs([Attr("address","0x5F0"), -Attr("insn","adrp x16, #65536")]), Var("R16",Imm(64)), Int(65536,64)), -Def(Tid(1_163, "%0000048b"), Attrs([Attr("address","0x5F4"), -Attr("insn","ldr x17, [x16, #0xfc8]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(4040,64)),LittleEndian(),64)), -Def(Tid(1_169, "%00000491"), Attrs([Attr("address","0x5F8"), -Attr("insn","add x16, x16, #0xfc8")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(4040,64)))]), Jmps([Call(Tid(1_174, "%00000496"), - Attrs([Attr("address","0x5FC"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), Sub(Tid(1_470, "@call_weak_fn"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x634")]), - "call_weak_fn", Args([Arg(Tid(1_523, "%000005f3"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("call_weak_fn_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(479, "@call_weak_fn"), - Attrs([Attr("address","0x634")]), Phis([]), Defs([Def(Tid(482, "%000001e2"), - Attrs([Attr("address","0x634"), Attr("insn","adrp x0, #65536")]), - Var("R0",Imm(64)), Int(65536,64)), Def(Tid(489, "%000001e9"), - Attrs([Attr("address","0x638"), Attr("insn","ldr x0, [x0, #0xfe8]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(4072,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(495, "%000001ef"), Attrs([Attr("address","0x63C"), -Attr("insn","cbz x0, #0x8")]), EQ(Var("R0",Imm(64)),Int(0,64)), -Direct(Tid(493, "%000001ed"))), Goto(Tid(1_505, "%000005e1"), Attrs([]), - Int(1,1), Direct(Tid(928, "%000003a0")))])), Blk(Tid(493, "%000001ed"), - Attrs([Attr("address","0x644")]), Phis([]), Defs([]), -Jmps([Call(Tid(501, "%000001f5"), Attrs([Attr("address","0x644"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))])), -Blk(Tid(928, "%000003a0"), Attrs([Attr("address","0x640")]), Phis([]), -Defs([]), Jmps([Goto(Tid(931, "%000003a3"), Attrs([Attr("address","0x640"), -Attr("insn","b #-0x60")]), Int(1,1), Direct(Tid(929, "@__gmon_start__")))])), -Blk(Tid(929, "@__gmon_start__"), Attrs([Attr("address","0x5E0")]), Phis([]), -Defs([Def(Tid(1_134, "%0000046e"), Attrs([Attr("address","0x5E0"), -Attr("insn","adrp x16, #65536")]), Var("R16",Imm(64)), Int(65536,64)), -Def(Tid(1_141, "%00000475"), Attrs([Attr("address","0x5E4"), -Attr("insn","ldr x17, [x16, #0xfc0]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(4032,64)),LittleEndian(),64)), -Def(Tid(1_147, "%0000047b"), Attrs([Attr("address","0x5E8"), -Attr("insn","add x16, x16, #0xfc0")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(4032,64)))]), Jmps([Call(Tid(1_152, "%00000480"), - Attrs([Attr("address","0x5EC"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), -Sub(Tid(1_472, "@deregister_tm_clones"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x650")]), - "deregister_tm_clones", Args([Arg(Tid(1_524, "%000005f4"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("deregister_tm_clones_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(507, "@deregister_tm_clones"), - Attrs([Attr("address","0x650")]), Phis([]), Defs([Def(Tid(510, "%000001fe"), - Attrs([Attr("address","0x650"), Attr("insn","adrp x0, #69632")]), - Var("R0",Imm(64)), Int(69632,64)), Def(Tid(516, "%00000204"), - Attrs([Attr("address","0x654"), Attr("insn","add x0, x0, #0x10")]), - Var("R0",Imm(64)), PLUS(Var("R0",Imm(64)),Int(16,64))), -Def(Tid(521, "%00000209"), Attrs([Attr("address","0x658"), -Attr("insn","adrp x1, #69632")]), Var("R1",Imm(64)), Int(69632,64)), -Def(Tid(527, "%0000020f"), Attrs([Attr("address","0x65C"), -Attr("insn","add x1, x1, #0x10")]), Var("R1",Imm(64)), -PLUS(Var("R1",Imm(64)),Int(16,64))), Def(Tid(533, "%00000215"), - Attrs([Attr("address","0x660"), Attr("insn","cmp x1, x0")]), - Var("#1",Imm(64)), NOT(Var("R0",Imm(64)))), Def(Tid(538, "%0000021a"), - Attrs([Attr("address","0x660"), Attr("insn","cmp x1, x0")]), - Var("#2",Imm(64)), PLUS(Var("R1",Imm(64)),NOT(Var("R0",Imm(64))))), -Def(Tid(544, "%00000220"), Attrs([Attr("address","0x660"), -Attr("insn","cmp x1, x0")]), Var("VF",Imm(1)), -NEQ(SIGNED(65,PLUS(Var("#2",Imm(64)),Int(1,64))),PLUS(PLUS(SIGNED(65,Var("R1",Imm(64))),SIGNED(65,Var("#1",Imm(64)))),Int(1,65)))), -Def(Tid(550, "%00000226"), Attrs([Attr("address","0x660"), -Attr("insn","cmp x1, x0")]), Var("CF",Imm(1)), -NEQ(UNSIGNED(65,PLUS(Var("#2",Imm(64)),Int(1,64))),PLUS(PLUS(UNSIGNED(65,Var("R1",Imm(64))),UNSIGNED(65,Var("#1",Imm(64)))),Int(1,65)))), -Def(Tid(554, "%0000022a"), Attrs([Attr("address","0x660"), -Attr("insn","cmp x1, x0")]), Var("ZF",Imm(1)), -EQ(PLUS(Var("#2",Imm(64)),Int(1,64)),Int(0,64))), Def(Tid(558, "%0000022e"), - Attrs([Attr("address","0x660"), Attr("insn","cmp x1, x0")]), - Var("NF",Imm(1)), Extract(63,63,PLUS(Var("#2",Imm(64)),Int(1,64))))]), -Jmps([Goto(Tid(564, "%00000234"), Attrs([Attr("address","0x664"), -Attr("insn","b.eq #0x18")]), EQ(Var("ZF",Imm(1)),Int(1,1)), -Direct(Tid(562, "%00000232"))), Goto(Tid(1_506, "%000005e2"), Attrs([]), - Int(1,1), Direct(Tid(898, "%00000382")))])), Blk(Tid(898, "%00000382"), - Attrs([Attr("address","0x668")]), Phis([]), Defs([Def(Tid(901, "%00000385"), - Attrs([Attr("address","0x668"), Attr("insn","adrp x1, #65536")]), - Var("R1",Imm(64)), Int(65536,64)), Def(Tid(908, "%0000038c"), - Attrs([Attr("address","0x66C"), Attr("insn","ldr x1, [x1, #0xfd8]")]), - Var("R1",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R1",Imm(64)),Int(4056,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(913, "%00000391"), Attrs([Attr("address","0x670"), -Attr("insn","cbz x1, #0xc")]), EQ(Var("R1",Imm(64)),Int(0,64)), -Direct(Tid(562, "%00000232"))), Goto(Tid(1_507, "%000005e3"), Attrs([]), - Int(1,1), Direct(Tid(917, "%00000395")))])), Blk(Tid(562, "%00000232"), - Attrs([Attr("address","0x67C")]), Phis([]), Defs([]), -Jmps([Call(Tid(570, "%0000023a"), Attrs([Attr("address","0x67C"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))])), -Blk(Tid(917, "%00000395"), Attrs([Attr("address","0x674")]), Phis([]), -Defs([Def(Tid(921, "%00000399"), Attrs([Attr("address","0x674"), -Attr("insn","mov x16, x1")]), Var("R16",Imm(64)), Var("R1",Imm(64)))]), -Jmps([Call(Tid(926, "%0000039e"), Attrs([Attr("address","0x678"), -Attr("insn","br x16")]), Int(1,1), (Indirect(Var("R16",Imm(64))),))]))])), -Sub(Tid(1_475, "@frame_dummy"), Attrs([Attr("c.proto","signed (*)(void)"), -Attr("address","0x710")]), "frame_dummy", Args([Arg(Tid(1_525, "%000005f5"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("frame_dummy_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(722, "@frame_dummy"), - Attrs([Attr("address","0x710")]), Phis([]), Defs([]), -Jmps([Call(Tid(724, "%000002d4"), Attrs([Attr("address","0x710"), -Attr("insn","b #-0x90")]), Int(1,1), -(Direct(Tid(1_479, "@register_tm_clones")),))]))])), Sub(Tid(1_476, "@main"), - Attrs([Attr("c.proto","signed (*)(signed argc, const char** argv)"), -Attr("address","0x714")]), "main", Args([Arg(Tid(1_526, "%000005f6"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("main_argc",Imm(32)), -LOW(32,Var("R0",Imm(64))), In()), Arg(Tid(1_527, "%000005f7"), - Attrs([Attr("c.layout","**[char : 8]"), Attr("c.data","Top:u8 ptr ptr"), -Attr("c.type"," const char**")]), Var("main_argv",Imm(64)), -Var("R1",Imm(64)), Both()), Arg(Tid(1_528, "%000005f8"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("main_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(726, "@main"), - Attrs([Attr("address","0x714")]), Phis([]), Defs([Def(Tid(729, "%000002d9"), - Attrs([Attr("address","0x714"), Attr("insn","adrp x0, #69632")]), - Var("R0",Imm(64)), Int(69632,64)), Def(Tid(735, "%000002df"), - Attrs([Attr("address","0x718"), Attr("insn","add x0, x0, #0x14")]), - Var("R0",Imm(64)), PLUS(Var("R0",Imm(64)),Int(20,64))), -Def(Tid(742, "%000002e6"), Attrs([Attr("address","0x71C"), -Attr("insn","ldr w0, [x0]")]), Var("R0",Imm(64)), -UNSIGNED(64,Load(Var("mem",Mem(64,8)),Var("R0",Imm(64)),LittleEndian(),32))), -Def(Tid(748, "%000002ec"), Attrs([Attr("address","0x720"), -Attr("insn","cmp w0, #0x0")]), Var("#4",Imm(32)), -PLUS(Extract(31,0,Var("R0",Imm(64))),Int(4294967295,32))), -Def(Tid(753, "%000002f1"), Attrs([Attr("address","0x720"), -Attr("insn","cmp w0, #0x0")]), Var("VF",Imm(1)), -NEQ(SIGNED(33,PLUS(Var("#4",Imm(32)),Int(1,32))),PLUS(SIGNED(33,Extract(31,0,Var("R0",Imm(64)))),Int(0,33)))), -Def(Tid(758, "%000002f6"), Attrs([Attr("address","0x720"), -Attr("insn","cmp w0, #0x0")]), Var("CF",Imm(1)), -NEQ(UNSIGNED(33,PLUS(Var("#4",Imm(32)),Int(1,32))),PLUS(UNSIGNED(33,Extract(31,0,Var("R0",Imm(64)))),Int(4294967296,33)))), -Def(Tid(762, "%000002fa"), Attrs([Attr("address","0x720"), -Attr("insn","cmp w0, #0x0")]), Var("ZF",Imm(1)), -EQ(PLUS(Var("#4",Imm(32)),Int(1,32)),Int(0,32))), Def(Tid(766, "%000002fe"), - Attrs([Attr("address","0x720"), Attr("insn","cmp w0, #0x0")]), - Var("NF",Imm(1)), Extract(31,31,PLUS(Var("#4",Imm(32)),Int(1,32))))]), -Jmps([Goto(Tid(772, "%00000304"), Attrs([Attr("address","0x724"), -Attr("insn","b.ne #0x14")]), NEQ(Var("ZF",Imm(1)),Int(1,1)), -Direct(Tid(770, "%00000302"))), Goto(Tid(1_508, "%000005e4"), Attrs([]), - Int(1,1), Direct(Tid(785, "%00000311")))])), Blk(Tid(785, "%00000311"), - Attrs([Attr("address","0x728")]), Phis([]), Defs([Def(Tid(788, "%00000314"), - Attrs([Attr("address","0x728"), Attr("insn","adrp x0, #69632")]), - Var("R0",Imm(64)), Int(69632,64)), Def(Tid(794, "%0000031a"), - Attrs([Attr("address","0x72C"), Attr("insn","add x0, x0, #0x14")]), - Var("R0",Imm(64)), PLUS(Var("R0",Imm(64)),Int(20,64))), -Def(Tid(799, "%0000031f"), Attrs([Attr("address","0x730"), -Attr("insn","mov w1, #0x1")]), Var("R1",Imm(64)), Int(1,64)), -Def(Tid(807, "%00000327"), Attrs([Attr("address","0x734"), -Attr("insn","str w1, [x0]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("R0",Imm(64)),Extract(31,0,Var("R1",Imm(64))),LittleEndian(),32))]), -Jmps([Goto(Tid(1_509, "%000005e5"), Attrs([]), Int(1,1), -Direct(Tid(770, "%00000302")))])), Blk(Tid(770, "%00000302"), - Attrs([Attr("address","0x738")]), Phis([]), Defs([Def(Tid(778, "%0000030a"), - Attrs([Attr("address","0x738"), Attr("insn","mov w0, #0x0")]), - Var("R0",Imm(64)), Int(0,64))]), Jmps([Call(Tid(783, "%0000030f"), - Attrs([Attr("address","0x73C"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), -Sub(Tid(1_479, "@register_tm_clones"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x680")]), - "register_tm_clones", Args([Arg(Tid(1_529, "%000005f9"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("register_tm_clones_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(572, "@register_tm_clones"), Attrs([Attr("address","0x680")]), - Phis([]), Defs([Def(Tid(575, "%0000023f"), Attrs([Attr("address","0x680"), -Attr("insn","adrp x0, #69632")]), Var("R0",Imm(64)), Int(69632,64)), -Def(Tid(581, "%00000245"), Attrs([Attr("address","0x684"), -Attr("insn","add x0, x0, #0x10")]), Var("R0",Imm(64)), -PLUS(Var("R0",Imm(64)),Int(16,64))), Def(Tid(586, "%0000024a"), - Attrs([Attr("address","0x688"), Attr("insn","adrp x1, #69632")]), - Var("R1",Imm(64)), Int(69632,64)), Def(Tid(592, "%00000250"), - Attrs([Attr("address","0x68C"), Attr("insn","add x1, x1, #0x10")]), - Var("R1",Imm(64)), PLUS(Var("R1",Imm(64)),Int(16,64))), -Def(Tid(599, "%00000257"), Attrs([Attr("address","0x690"), -Attr("insn","sub x1, x1, x0")]), Var("R1",Imm(64)), -PLUS(PLUS(Var("R1",Imm(64)),NOT(Var("R0",Imm(64)))),Int(1,64))), -Def(Tid(605, "%0000025d"), Attrs([Attr("address","0x694"), -Attr("insn","lsr x2, x1, #63")]), Var("R2",Imm(64)), -Concat(Int(0,63),Extract(63,63,Var("R1",Imm(64))))), -Def(Tid(612, "%00000264"), Attrs([Attr("address","0x698"), -Attr("insn","add x1, x2, x1, asr #3")]), Var("R1",Imm(64)), -PLUS(Var("R2",Imm(64)),ARSHIFT(Var("R1",Imm(64)),Int(3,3)))), -Def(Tid(618, "%0000026a"), Attrs([Attr("address","0x69C"), -Attr("insn","asr x1, x1, #1")]), Var("R1",Imm(64)), -SIGNED(64,Extract(63,1,Var("R1",Imm(64)))))]), -Jmps([Goto(Tid(624, "%00000270"), Attrs([Attr("address","0x6A0"), -Attr("insn","cbz x1, #0x18")]), EQ(Var("R1",Imm(64)),Int(0,64)), -Direct(Tid(622, "%0000026e"))), Goto(Tid(1_510, "%000005e6"), Attrs([]), - Int(1,1), Direct(Tid(868, "%00000364")))])), Blk(Tid(868, "%00000364"), - Attrs([Attr("address","0x6A4")]), Phis([]), Defs([Def(Tid(871, "%00000367"), - Attrs([Attr("address","0x6A4"), Attr("insn","adrp x2, #65536")]), - Var("R2",Imm(64)), Int(65536,64)), Def(Tid(878, "%0000036e"), - Attrs([Attr("address","0x6A8"), Attr("insn","ldr x2, [x2, #0xff8]")]), - Var("R2",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R2",Imm(64)),Int(4088,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(883, "%00000373"), Attrs([Attr("address","0x6AC"), -Attr("insn","cbz x2, #0xc")]), EQ(Var("R2",Imm(64)),Int(0,64)), -Direct(Tid(622, "%0000026e"))), Goto(Tid(1_511, "%000005e7"), Attrs([]), - Int(1,1), Direct(Tid(887, "%00000377")))])), Blk(Tid(622, "%0000026e"), - Attrs([Attr("address","0x6B8")]), Phis([]), Defs([]), -Jmps([Call(Tid(630, "%00000276"), Attrs([Attr("address","0x6B8"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))])), -Blk(Tid(887, "%00000377"), Attrs([Attr("address","0x6B0")]), Phis([]), -Defs([Def(Tid(891, "%0000037b"), Attrs([Attr("address","0x6B0"), -Attr("insn","mov x16, x2")]), Var("R16",Imm(64)), Var("R2",Imm(64)))]), -Jmps([Call(Tid(896, "%00000380"), Attrs([Attr("address","0x6B4"), -Attr("insn","br x16")]), Int(1,1), -(Indirect(Var("R16",Imm(64))),))]))]))]))) \ No newline at end of file diff --git a/src/test/correct/ifglobal/gcc/ifglobal.bir b/src/test/correct/ifglobal/gcc/ifglobal.bir deleted file mode 100644 index 8152bcf30..000000000 --- a/src/test/correct/ifglobal/gcc/ifglobal.bir +++ /dev/null @@ -1,243 +0,0 @@ -000005e8: program -000005b2: sub __cxa_finalize(__cxa_finalize_result) -000005e9: __cxa_finalize_result :: out u32 = low:32[R0] - -00000360: -00000458: R16 := 0x10000 -0000045f: R17 := mem[R16 + 0xFB8, el]:u64 -00000465: R16 := R16 + 0xFB8 -0000046a: call R17 with noreturn - -000005b3: sub __do_global_dtors_aux(__do_global_dtors_aux_result) -000005ea: __do_global_dtors_aux_result :: out u32 = low:32[R0] - -0000027a: -0000027e: #3 := R31 - 0x20 -00000284: mem := mem with [#3, el]:u64 <- R29 -0000028a: mem := mem with [#3 + 8, el]:u64 <- R30 -0000028e: R31 := #3 -00000294: R29 := R31 -0000029c: mem := mem with [R31 + 0x10, el]:u64 <- R19 -000002a1: R19 := 0x11000 -000002a8: R0 := pad:64[mem[R19 + 0x10]] -000002af: when 31:0[R0] <> 0 goto %000002ad -000005dc: goto %00000329 - -00000329: -0000032c: R0 := 0x10000 -00000333: R0 := mem[R0 + 0xFE0, el]:u64 -00000339: when R0 = 0 goto %00000337 -000005dd: goto %00000350 - -00000350: -00000353: R0 := 0x11000 -0000035a: R0 := mem[R0 + 8, el]:u64 -0000035f: R30 := 0x6F0 -00000362: call @__cxa_finalize with return %00000337 - -00000337: -0000033f: R30 := 0x6F4 -00000341: call @deregister_tm_clones with return %00000343 - -00000343: -00000346: R0 := 1 -0000034e: mem := mem with [R19 + 0x10] <- 7:0[R0] -000005de: goto %000002ad - -000002ad: -000002b7: R19 := mem[R31 + 0x10, el]:u64 -000002be: R29 := mem[R31, el]:u64 -000002c3: R30 := mem[R31 + 8, el]:u64 -000002c7: R31 := R31 + 0x20 -000002cc: call R30 with noreturn - -000005b7: sub __libc_start_main(__libc_start_main_main, __libc_start_main_arg2, __libc_start_main_arg3, __libc_start_main_auxv, __libc_start_main_result) -000005eb: __libc_start_main_main :: in u64 = R0 -000005ec: __libc_start_main_arg2 :: in u32 = low:32[R1] -000005ed: __libc_start_main_arg3 :: in out u64 = R2 -000005ee: __libc_start_main_auxv :: in out u64 = R3 -000005ef: __libc_start_main_result :: out u32 = low:32[R0] - -000001d3: -00000442: R16 := 0x10000 -00000449: R17 := mem[R16 + 0xFB0, el]:u64 -0000044f: R16 := R16 + 0xFB0 -00000454: call R17 with noreturn - -000005b8: sub _fini(_fini_result) -000005f0: _fini_result :: out u32 = low:32[R0] - -0000001f: -00000025: #0 := R31 - 0x10 -0000002b: mem := mem with [#0, el]:u64 <- R29 -00000031: mem := mem with [#0 + 8, el]:u64 <- R30 -00000035: R31 := #0 -0000003b: R29 := R31 -00000042: R29 := mem[R31, el]:u64 -00000047: R30 := mem[R31 + 8, el]:u64 -0000004b: R31 := R31 + 0x10 -00000050: call R30 with noreturn - -000005b9: sub _init(_init_result) -000005f1: _init_result :: out u32 = low:32[R0] - -00000509: -0000050f: #6 := R31 - 0x10 -00000515: mem := mem with [#6, el]:u64 <- R29 -0000051b: mem := mem with [#6 + 8, el]:u64 <- R30 -0000051f: R31 := #6 -00000525: R29 := R31 -0000052a: R30 := 0x590 -0000052c: call @call_weak_fn with return %0000052e - -0000052e: -00000533: R29 := mem[R31, el]:u64 -00000538: R30 := mem[R31 + 8, el]:u64 -0000053c: R31 := R31 + 0x10 -00000541: call R30 with noreturn - -000005ba: sub _start(_start_result) -000005f2: _start_result :: out u32 = low:32[R0] - -00000194: -00000199: R29 := 0 -0000019e: R30 := 0 -000001a4: R5 := R0 -000001ab: R1 := mem[R31, el]:u64 -000001b1: R2 := R31 + 8 -000001b7: R6 := R31 -000001bc: R0 := 0x10000 -000001c3: R0 := mem[R0 + 0xFF0, el]:u64 -000001c8: R3 := 0 -000001cd: R4 := 0 -000001d2: R30 := 0x630 -000001d5: call @__libc_start_main with return %000001d7 - -000001d7: -000001da: R30 := 0x634 -000001dd: call @abort with return %000005df - -000005df: -000005e0: call @call_weak_fn with noreturn - -000005bd: sub abort() - - -000001db: -00000484: R16 := 0x10000 -0000048b: R17 := mem[R16 + 0xFC8, el]:u64 -00000491: R16 := R16 + 0xFC8 -00000496: call R17 with noreturn - -000005be: sub call_weak_fn(call_weak_fn_result) -000005f3: call_weak_fn_result :: out u32 = low:32[R0] - -000001df: -000001e2: R0 := 0x10000 -000001e9: R0 := mem[R0 + 0xFE8, el]:u64 -000001ef: when R0 = 0 goto %000001ed -000005e1: goto %000003a0 - -000001ed: -000001f5: call R30 with noreturn - -000003a0: -000003a3: goto @__gmon_start__ - -000003a1: -0000046e: R16 := 0x10000 -00000475: R17 := mem[R16 + 0xFC0, el]:u64 -0000047b: R16 := R16 + 0xFC0 -00000480: call R17 with noreturn - -000005c0: sub deregister_tm_clones(deregister_tm_clones_result) -000005f4: deregister_tm_clones_result :: out u32 = low:32[R0] - -000001fb: -000001fe: R0 := 0x11000 -00000204: R0 := R0 + 0x10 -00000209: R1 := 0x11000 -0000020f: R1 := R1 + 0x10 -00000215: #1 := ~R0 -0000021a: #2 := R1 + ~R0 -00000220: VF := extend:65[#2 + 1] <> extend:65[R1] + extend:65[#1] + 1 -00000226: CF := pad:65[#2 + 1] <> pad:65[R1] + pad:65[#1] + 1 -0000022a: ZF := #2 + 1 = 0 -0000022e: NF := 63:63[#2 + 1] -00000234: when ZF goto %00000232 -000005e2: goto %00000382 - -00000382: -00000385: R1 := 0x10000 -0000038c: R1 := mem[R1 + 0xFD8, el]:u64 -00000391: when R1 = 0 goto %00000232 -000005e3: goto %00000395 - -00000232: -0000023a: call R30 with noreturn - -00000395: -00000399: R16 := R1 -0000039e: call R16 with noreturn - -000005c3: sub frame_dummy(frame_dummy_result) -000005f5: frame_dummy_result :: out u32 = low:32[R0] - -000002d2: -000002d4: call @register_tm_clones with noreturn - -000005c4: sub main(main_argc, main_argv, main_result) -000005f6: main_argc :: in u32 = low:32[R0] -000005f7: main_argv :: in out u64 = R1 -000005f8: main_result :: out u32 = low:32[R0] - -000002d6: -000002d9: R0 := 0x11000 -000002df: R0 := R0 + 0x14 -000002e6: R0 := pad:64[mem[R0, el]:u32] -000002ec: #4 := 31:0[R0] - 1 -000002f1: VF := extend:33[#4 + 1] <> extend:33[31:0[R0]] + 0 -000002f6: CF := pad:33[#4 + 1] <> pad:33[31:0[R0]] - 0x100000000 -000002fa: ZF := #4 + 1 = 0 -000002fe: NF := 31:31[#4 + 1] -00000304: when ZF <> 1 goto %00000302 -000005e4: goto %00000311 - -00000311: -00000314: R0 := 0x11000 -0000031a: R0 := R0 + 0x14 -0000031f: R1 := 1 -00000327: mem := mem with [R0, el]:u32 <- 31:0[R1] -000005e5: goto %00000302 - -00000302: -0000030a: R0 := 0 -0000030f: call R30 with noreturn - -000005c7: sub register_tm_clones(register_tm_clones_result) -000005f9: register_tm_clones_result :: out u32 = low:32[R0] - -0000023c: -0000023f: R0 := 0x11000 -00000245: R0 := R0 + 0x10 -0000024a: R1 := 0x11000 -00000250: R1 := R1 + 0x10 -00000257: R1 := R1 + ~R0 + 1 -0000025d: R2 := 0.63:63[R1] -00000264: R1 := R2 + (R1 ~>> 3) -0000026a: R1 := extend:64[63:1[R1]] -00000270: when R1 = 0 goto %0000026e -000005e6: goto %00000364 - -00000364: -00000367: R2 := 0x10000 -0000036e: R2 := mem[R2 + 0xFF8, el]:u64 -00000373: when R2 = 0 goto %0000026e -000005e7: goto %00000377 - -0000026e: -00000276: call R30 with noreturn - -00000377: -0000037b: R16 := R2 -00000380: call R16 with noreturn diff --git a/src/test/correct/ifglobal/gcc/ifglobal.expected b/src/test/correct/ifglobal/gcc/ifglobal.expected index 763510375..d2a1ba584 100644 --- a/src/test/correct/ifglobal/gcc/ifglobal.expected +++ b/src/test/correct/ifglobal/gcc/ifglobal.expected @@ -74,7 +74,7 @@ procedure {:extern} rely_reflexive(); procedure {:extern} guarantee_reflexive(); modifies Gamma_mem, mem; -procedure main_1812(); +procedure main(); modifies CF, Gamma_CF, Gamma_NF, Gamma_R0, Gamma_R1, Gamma_VF, Gamma_ZF, Gamma_mem, NF, R0, R1, VF, ZF, mem; free requires (memory_load64_le(mem, 69632bv64) == 0bv64); free requires (memory_load64_le(mem, 69640bv64) == 69640bv64); @@ -89,19 +89,19 @@ procedure main_1812(); free ensures (memory_load64_le(mem, 69616bv64) == 1812bv64); free ensures (memory_load64_le(mem, 69640bv64) == 69640bv64); -implementation main_1812() +implementation main() { var #4: bv32; + var $load$18: bv32; var Gamma_#4: bool; - var Gamma_load18: bool; - var load18: bv32; + var Gamma_$load$18: bool; lmain: assume {:captureState "lmain"} true; R0, Gamma_R0 := 69632bv64, true; R0, Gamma_R0 := bvadd64(R0, 20bv64), Gamma_R0; call rely(); - load18, Gamma_load18 := memory_load32_le(mem, R0), (gamma_load32(Gamma_mem, R0) || L(mem, R0)); - R0, Gamma_R0 := zero_extend32_32(load18), Gamma_load18; + $load$18, Gamma_$load$18 := memory_load32_le(mem, R0), (gamma_load32(Gamma_mem, R0) || L(mem, R0)); + R0, Gamma_R0 := zero_extend32_32($load$18), Gamma_$load$18; #4, Gamma_#4 := bvadd32(R0[32:0], 4294967295bv32), Gamma_R0; VF, Gamma_VF := bvnot1(bvcomp33(sign_extend1_32(bvadd32(#4, 1bv32)), bvadd33(sign_extend1_32(R0[32:0]), 0bv33))), (Gamma_R0 && Gamma_#4); CF, Gamma_CF := bvnot1(bvcomp33(zero_extend1_32(bvadd32(#4, 1bv32)), bvadd33(zero_extend1_32(R0[32:0]), 4294967296bv33))), (Gamma_R0 && Gamma_#4); @@ -109,9 +109,8 @@ implementation main_1812() NF, Gamma_NF := bvadd32(#4, 1bv32)[32:31], Gamma_#4; assert Gamma_ZF; goto lmain_goto_l00000302, lmain_goto_l00000311; - lmain_goto_l00000311: - assume {:captureState "lmain_goto_l00000311"} true; - assume (bvnot1(bvcomp1(ZF, 1bv1)) == 0bv1); + l00000311: + assume {:captureState "l00000311"} true; R0, Gamma_R0 := 69632bv64, true; R0, Gamma_R0 := bvadd64(R0, 20bv64), Gamma_R0; R1, Gamma_R1 := 1bv64, true; @@ -119,20 +118,21 @@ implementation main_1812() assert (L(mem, R0) ==> Gamma_R1); mem, Gamma_mem := memory_store32_le(mem, R0, R1[32:0]), gamma_store32(Gamma_mem, R0, Gamma_R1); assume {:captureState "%00000327"} true; - goto l00000311; - l00000311: - assume {:captureState "l00000311"} true; goto l00000302; + l00000302: + assume {:captureState "l00000302"} true; + R0, Gamma_R0 := 0bv64, true; + goto main_basil_return; lmain_goto_l00000302: assume {:captureState "lmain_goto_l00000302"} true; assume (bvnot1(bvcomp1(ZF, 1bv1)) != 0bv1); goto l00000302; - l00000302: - assume {:captureState "l00000302"} true; - R0, Gamma_R0 := 0bv64, true; - goto main_1812_basil_return; - main_1812_basil_return: - assume {:captureState "main_1812_basil_return"} true; + lmain_goto_l00000311: + assume {:captureState "lmain_goto_l00000311"} true; + assume (bvnot1(bvcomp1(ZF, 1bv1)) == 0bv1); + goto l00000311; + main_basil_return: + assume {:captureState "main_basil_return"} true; return; } diff --git a/src/test/correct/ifglobal/gcc/ifglobal.gts b/src/test/correct/ifglobal/gcc/ifglobal.gts deleted file mode 100644 index 1c33b4935..000000000 Binary files a/src/test/correct/ifglobal/gcc/ifglobal.gts and /dev/null differ diff --git a/src/test/correct/ifglobal/gcc/ifglobal.md5sum b/src/test/correct/ifglobal/gcc/ifglobal.md5sum new file mode 100644 index 000000000..dea5861a0 --- /dev/null +++ b/src/test/correct/ifglobal/gcc/ifglobal.md5sum @@ -0,0 +1,5 @@ +ece66ec9802b6038d103ac113f8fa0f9 correct/ifglobal/gcc/a.out +ae2314347ddb94f6a6af63c43189830d correct/ifglobal/gcc/ifglobal.adt +fc67c28710dba18998d03fbcbd701d38 correct/ifglobal/gcc/ifglobal.bir +3f1142aa7257f8da9cd207f74b4e0cd9 correct/ifglobal/gcc/ifglobal.relf +ca460e97ad906dff6f7355a92a54a208 correct/ifglobal/gcc/ifglobal.gts diff --git a/src/test/correct/ifglobal/gcc/ifglobal.relf b/src/test/correct/ifglobal/gcc/ifglobal.relf deleted file mode 100644 index 2bad8a0ee..000000000 --- a/src/test/correct/ifglobal/gcc/ifglobal.relf +++ /dev/null @@ -1,121 +0,0 @@ - -Relocation section '.rela.dyn' at offset 0x460 contains 8 entries: - Offset Info Type Symbol's Value Symbol's Name + Addend -0000000000010d98 0000000000000403 R_AARCH64_RELATIVE 710 -0000000000010da0 0000000000000403 R_AARCH64_RELATIVE 6c0 -0000000000010ff0 0000000000000403 R_AARCH64_RELATIVE 714 -0000000000011008 0000000000000403 R_AARCH64_RELATIVE 11008 -0000000000010fd8 0000000400000401 R_AARCH64_GLOB_DAT 0000000000000000 _ITM_deregisterTMCloneTable + 0 -0000000000010fe0 0000000500000401 R_AARCH64_GLOB_DAT 0000000000000000 __cxa_finalize@GLIBC_2.17 + 0 -0000000000010fe8 0000000600000401 R_AARCH64_GLOB_DAT 0000000000000000 __gmon_start__ + 0 -0000000000010ff8 0000000800000401 R_AARCH64_GLOB_DAT 0000000000000000 _ITM_registerTMCloneTable + 0 - -Relocation section '.rela.plt' at offset 0x520 contains 4 entries: - Offset Info Type Symbol's Value Symbol's Name + Addend -0000000000010fb0 0000000300000402 R_AARCH64_JUMP_SLOT 0000000000000000 __libc_start_main@GLIBC_2.34 + 0 -0000000000010fb8 0000000500000402 R_AARCH64_JUMP_SLOT 0000000000000000 __cxa_finalize@GLIBC_2.17 + 0 -0000000000010fc0 0000000600000402 R_AARCH64_JUMP_SLOT 0000000000000000 __gmon_start__ + 0 -0000000000010fc8 0000000700000402 R_AARCH64_JUMP_SLOT 0000000000000000 abort@GLIBC_2.17 + 0 - -Symbol table '.dynsym' contains 9 entries: - Num: Value Size Type Bind Vis Ndx Name - 0: 0000000000000000 0 NOTYPE LOCAL DEFAULT UND - 1: 0000000000000580 0 SECTION LOCAL DEFAULT 11 .init - 2: 0000000000011000 0 SECTION LOCAL DEFAULT 22 .data - 3: 0000000000000000 0 FUNC GLOBAL DEFAULT UND __libc_start_main@GLIBC_2.34 (2) - 4: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_deregisterTMCloneTable - 5: 0000000000000000 0 FUNC WEAK DEFAULT UND __cxa_finalize@GLIBC_2.17 (3) - 6: 0000000000000000 0 NOTYPE WEAK DEFAULT UND __gmon_start__ - 7: 0000000000000000 0 FUNC GLOBAL DEFAULT UND abort@GLIBC_2.17 (3) - 8: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_registerTMCloneTable - -Symbol table '.symtab' contains 88 entries: - Num: Value Size Type Bind Vis Ndx Name - 0: 0000000000000000 0 NOTYPE LOCAL DEFAULT UND - 1: 0000000000000238 0 SECTION LOCAL DEFAULT 1 .interp - 2: 0000000000000254 0 SECTION LOCAL DEFAULT 2 .note.gnu.build-id - 3: 0000000000000278 0 SECTION LOCAL DEFAULT 3 .note.ABI-tag - 4: 0000000000000298 0 SECTION LOCAL DEFAULT 4 .gnu.hash - 5: 00000000000002b8 0 SECTION LOCAL DEFAULT 5 .dynsym - 6: 0000000000000390 0 SECTION LOCAL DEFAULT 6 .dynstr - 7: 000000000000041e 0 SECTION LOCAL DEFAULT 7 .gnu.version - 8: 0000000000000430 0 SECTION LOCAL DEFAULT 8 .gnu.version_r - 9: 0000000000000460 0 SECTION LOCAL DEFAULT 9 .rela.dyn - 10: 0000000000000520 0 SECTION LOCAL DEFAULT 10 .rela.plt - 11: 0000000000000580 0 SECTION LOCAL DEFAULT 11 .init - 12: 00000000000005a0 0 SECTION LOCAL DEFAULT 12 .plt - 13: 0000000000000600 0 SECTION LOCAL DEFAULT 13 .text - 14: 0000000000000740 0 SECTION LOCAL DEFAULT 14 .fini - 15: 0000000000000754 0 SECTION LOCAL DEFAULT 15 .rodata - 16: 0000000000000758 0 SECTION LOCAL DEFAULT 16 .eh_frame_hdr - 17: 0000000000000798 0 SECTION LOCAL DEFAULT 17 .eh_frame - 18: 0000000000010d98 0 SECTION LOCAL DEFAULT 18 .init_array - 19: 0000000000010da0 0 SECTION LOCAL DEFAULT 19 .fini_array - 20: 0000000000010da8 0 SECTION LOCAL DEFAULT 20 .dynamic - 21: 0000000000010f98 0 SECTION LOCAL DEFAULT 21 .got - 22: 0000000000011000 0 SECTION LOCAL DEFAULT 22 .data - 23: 0000000000011010 0 SECTION LOCAL DEFAULT 23 .bss - 24: 0000000000000000 0 SECTION LOCAL DEFAULT 24 .comment - 25: 0000000000000000 0 FILE LOCAL DEFAULT ABS Scrt1.o - 26: 0000000000000278 0 NOTYPE LOCAL DEFAULT 3 $d - 27: 0000000000000278 32 OBJECT LOCAL DEFAULT 3 __abi_tag - 28: 0000000000000600 0 NOTYPE LOCAL DEFAULT 13 $x - 29: 00000000000007ac 0 NOTYPE LOCAL DEFAULT 17 $d - 30: 0000000000000754 0 NOTYPE LOCAL DEFAULT 15 $d - 31: 0000000000000000 0 FILE LOCAL DEFAULT ABS crti.o - 32: 0000000000000634 0 NOTYPE LOCAL DEFAULT 13 $x - 33: 0000000000000634 20 FUNC LOCAL DEFAULT 13 call_weak_fn - 34: 0000000000000580 0 NOTYPE LOCAL DEFAULT 11 $x - 35: 0000000000000740 0 NOTYPE LOCAL DEFAULT 14 $x - 36: 0000000000000000 0 FILE LOCAL DEFAULT ABS crtn.o - 37: 0000000000000590 0 NOTYPE LOCAL DEFAULT 11 $x - 38: 000000000000074c 0 NOTYPE LOCAL DEFAULT 14 $x - 39: 0000000000000000 0 FILE LOCAL DEFAULT ABS crtstuff.c - 40: 0000000000000650 0 NOTYPE LOCAL DEFAULT 13 $x - 41: 0000000000000650 0 FUNC LOCAL DEFAULT 13 deregister_tm_clones - 42: 0000000000000680 0 FUNC LOCAL DEFAULT 13 register_tm_clones - 43: 0000000000011008 0 NOTYPE LOCAL DEFAULT 22 $d - 44: 00000000000006c0 0 FUNC LOCAL DEFAULT 13 __do_global_dtors_aux - 45: 0000000000011010 1 OBJECT LOCAL DEFAULT 23 completed.0 - 46: 0000000000010da0 0 NOTYPE LOCAL DEFAULT 19 $d - 47: 0000000000010da0 0 OBJECT LOCAL DEFAULT 19 __do_global_dtors_aux_fini_array_entry - 48: 0000000000000710 0 FUNC LOCAL DEFAULT 13 frame_dummy - 49: 0000000000010d98 0 NOTYPE LOCAL DEFAULT 18 $d - 50: 0000000000010d98 0 OBJECT LOCAL DEFAULT 18 __frame_dummy_init_array_entry - 51: 00000000000007c0 0 NOTYPE LOCAL DEFAULT 17 $d - 52: 0000000000011010 0 NOTYPE LOCAL DEFAULT 23 $d - 53: 0000000000000000 0 FILE LOCAL DEFAULT ABS ifglobal.c - 54: 0000000000011014 0 NOTYPE LOCAL DEFAULT 23 $d - 55: 0000000000000714 0 NOTYPE LOCAL DEFAULT 13 $x - 56: 0000000000000820 0 NOTYPE LOCAL DEFAULT 17 $d - 57: 0000000000000000 0 FILE LOCAL DEFAULT ABS crtstuff.c - 58: 0000000000000834 0 NOTYPE LOCAL DEFAULT 17 $d - 59: 0000000000000834 0 OBJECT LOCAL DEFAULT 17 __FRAME_END__ - 60: 0000000000000000 0 FILE LOCAL DEFAULT ABS - 61: 0000000000010da8 0 OBJECT LOCAL DEFAULT ABS _DYNAMIC - 62: 0000000000000758 0 NOTYPE LOCAL DEFAULT 16 __GNU_EH_FRAME_HDR - 63: 0000000000010fd0 0 OBJECT LOCAL DEFAULT ABS _GLOBAL_OFFSET_TABLE_ - 64: 00000000000005a0 0 NOTYPE LOCAL DEFAULT 12 $x - 65: 0000000000000000 0 FUNC GLOBAL DEFAULT UND __libc_start_main@GLIBC_2.34 - 66: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_deregisterTMCloneTable - 67: 0000000000011000 0 NOTYPE WEAK DEFAULT 22 data_start - 68: 0000000000011010 0 NOTYPE GLOBAL DEFAULT 23 __bss_start__ - 69: 0000000000000000 0 FUNC WEAK DEFAULT UND __cxa_finalize@GLIBC_2.17 - 70: 0000000000011018 0 NOTYPE GLOBAL DEFAULT 23 _bss_end__ - 71: 0000000000011010 0 NOTYPE GLOBAL DEFAULT 22 _edata - 72: 0000000000011014 4 OBJECT GLOBAL DEFAULT 23 x - 73: 0000000000000740 0 FUNC GLOBAL HIDDEN 14 _fini - 74: 0000000000011018 0 NOTYPE GLOBAL DEFAULT 23 __bss_end__ - 75: 0000000000011000 0 NOTYPE GLOBAL DEFAULT 22 __data_start - 76: 0000000000000000 0 NOTYPE WEAK DEFAULT UND __gmon_start__ - 77: 0000000000011008 0 OBJECT GLOBAL HIDDEN 22 __dso_handle - 78: 0000000000000000 0 FUNC GLOBAL DEFAULT UND abort@GLIBC_2.17 - 79: 0000000000000754 4 OBJECT GLOBAL DEFAULT 15 _IO_stdin_used - 80: 0000000000011018 0 NOTYPE GLOBAL DEFAULT 23 _end - 81: 0000000000000600 52 FUNC GLOBAL DEFAULT 13 _start - 82: 0000000000011018 0 NOTYPE GLOBAL DEFAULT 23 __end__ - 83: 0000000000011010 0 NOTYPE GLOBAL DEFAULT 23 __bss_start - 84: 0000000000000714 44 FUNC GLOBAL DEFAULT 13 main - 85: 0000000000011010 0 OBJECT GLOBAL HIDDEN 22 __TMC_END__ - 86: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_registerTMCloneTable - 87: 0000000000000580 0 FUNC GLOBAL HIDDEN 11 _init diff --git a/src/test/correct/ifglobal/gcc/ifglobal_gtirb.expected b/src/test/correct/ifglobal/gcc/ifglobal_gtirb.expected index 0fe4b4d0d..08677dc5e 100644 --- a/src/test/correct/ifglobal/gcc/ifglobal_gtirb.expected +++ b/src/test/correct/ifglobal/gcc/ifglobal_gtirb.expected @@ -72,7 +72,7 @@ procedure {:extern} rely_reflexive(); procedure {:extern} guarantee_reflexive(); modifies Gamma_mem, mem; -procedure main_1812(); +procedure main(); modifies CF, Gamma_CF, Gamma_NF, Gamma_R0, Gamma_R1, Gamma_VF, Gamma_ZF, Gamma_mem, NF, R0, R1, VF, ZF, mem; free requires (memory_load64_le(mem, 69632bv64) == 0bv64); free requires (memory_load64_le(mem, 69640bv64) == 69640bv64); @@ -87,50 +87,50 @@ procedure main_1812(); free ensures (memory_load64_le(mem, 69616bv64) == 1812bv64); free ensures (memory_load64_le(mem, 69640bv64) == 69640bv64); -implementation main_1812() +implementation main() { - var Cse0__5_0_3: bv32; - var Gamma_Cse0__5_0_3: bool; - var Gamma_load16: bool; - var load16: bv32; - main_1812__0__BdIXwXrPTNePMukmPFVqTg: - assume {:captureState "main_1812__0__BdIXwXrPTNePMukmPFVqTg"} true; + var $load16: bv32; + var Cse0__5$0$3: bv32; + var Gamma_$load16: bool; + var Gamma_Cse0__5$0$3: bool; + $main$__0__$BdIXwXrPTNePMukmPFVqTg: + assume {:captureState "$main$__0__$BdIXwXrPTNePMukmPFVqTg"} true; R0, Gamma_R0 := 69632bv64, true; R0, Gamma_R0 := bvadd64(R0, 20bv64), Gamma_R0; call rely(); - load16, Gamma_load16 := memory_load32_le(mem, R0), (gamma_load32(Gamma_mem, R0) || L(mem, R0)); - R0, Gamma_R0 := zero_extend32_32(load16), Gamma_load16; - Cse0__5_0_3, Gamma_Cse0__5_0_3 := bvadd32(R0[32:0], 0bv32), Gamma_R0; - VF, Gamma_VF := bvnot1(bvcomp32(Cse0__5_0_3, Cse0__5_0_3)), Gamma_Cse0__5_0_3; - CF, Gamma_CF := bvnot1(bvcomp33(zero_extend1_32(Cse0__5_0_3), bvadd33(zero_extend1_32(R0[32:0]), 4294967296bv33))), (Gamma_R0 && Gamma_Cse0__5_0_3); - ZF, Gamma_ZF := bvcomp32(Cse0__5_0_3, 0bv32), Gamma_Cse0__5_0_3; - NF, Gamma_NF := Cse0__5_0_3[32:31], Gamma_Cse0__5_0_3; + $load16, Gamma_$load16 := memory_load32_le(mem, R0), (gamma_load32(Gamma_mem, R0) || L(mem, R0)); + R0, Gamma_R0 := zero_extend32_32($load16), Gamma_$load16; + Cse0__5$0$3, Gamma_Cse0__5$0$3 := bvadd32(R0[32:0], 0bv32), Gamma_R0; + VF, Gamma_VF := bvnot1(bvcomp32(Cse0__5$0$3, Cse0__5$0$3)), Gamma_Cse0__5$0$3; + CF, Gamma_CF := bvnot1(bvcomp33(zero_extend1_32(Cse0__5$0$3), bvadd33(zero_extend1_32(R0[32:0]), 4294967296bv33))), (Gamma_R0 && Gamma_Cse0__5$0$3); + ZF, Gamma_ZF := bvcomp32(Cse0__5$0$3, 0bv32), Gamma_Cse0__5$0$3; + NF, Gamma_NF := Cse0__5$0$3[32:31], Gamma_Cse0__5$0$3; assert Gamma_ZF; - goto main_1812__0__BdIXwXrPTNePMukmPFVqTg_goto_main_1812__2__tIV0kBzOR1qEmAHuGr1c7Q, main_1812__0__BdIXwXrPTNePMukmPFVqTg_goto_main_1812__1__8wzGZjEOTmOYnhkjdJ4aCQ; - main_1812__0__BdIXwXrPTNePMukmPFVqTg_goto_main_1812__1__8wzGZjEOTmOYnhkjdJ4aCQ: - assume {:captureState "main_1812__0__BdIXwXrPTNePMukmPFVqTg_goto_main_1812__1__8wzGZjEOTmOYnhkjdJ4aCQ"} true; - assume (!(!(ZF == 1bv1))); + goto $main$__0__$BdIXwXrPTNePMukmPFVqTg_goto_$main$__2__$tIV0kBzOR1qEmAHuGr1c7Q, $main$__0__$BdIXwXrPTNePMukmPFVqTg_goto_$main$__1__$8wzGZjEOTmOYnhkjdJ4aCQ; + $main$__1__$8wzGZjEOTmOYnhkjdJ4aCQ: + assume {:captureState "$main$__1__$8wzGZjEOTmOYnhkjdJ4aCQ"} true; R0, Gamma_R0 := 69632bv64, true; R0, Gamma_R0 := bvadd64(R0, 20bv64), Gamma_R0; R1, Gamma_R1 := 1bv64, true; call rely(); assert (L(mem, R0) ==> Gamma_R1); mem, Gamma_mem := memory_store32_le(mem, R0, R1[32:0]), gamma_store32(Gamma_mem, R0, Gamma_R1); - assume {:captureState "1844_0"} true; - goto main_1812__1__8wzGZjEOTmOYnhkjdJ4aCQ; - main_1812__1__8wzGZjEOTmOYnhkjdJ4aCQ: - assume {:captureState "main_1812__1__8wzGZjEOTmOYnhkjdJ4aCQ"} true; - goto main_1812__2__tIV0kBzOR1qEmAHuGr1c7Q; - main_1812__0__BdIXwXrPTNePMukmPFVqTg_goto_main_1812__2__tIV0kBzOR1qEmAHuGr1c7Q: - assume {:captureState "main_1812__0__BdIXwXrPTNePMukmPFVqTg_goto_main_1812__2__tIV0kBzOR1qEmAHuGr1c7Q"} true; - assume (!(ZF == 1bv1)); - goto main_1812__2__tIV0kBzOR1qEmAHuGr1c7Q; - main_1812__2__tIV0kBzOR1qEmAHuGr1c7Q: - assume {:captureState "main_1812__2__tIV0kBzOR1qEmAHuGr1c7Q"} true; + assume {:captureState "1844$0"} true; + goto $main$__2__$tIV0kBzOR1qEmAHuGr1c7Q; + $main$__2__$tIV0kBzOR1qEmAHuGr1c7Q: + assume {:captureState "$main$__2__$tIV0kBzOR1qEmAHuGr1c7Q"} true; R0, Gamma_R0 := 0bv64, true; - goto main_1812_basil_return; - main_1812_basil_return: - assume {:captureState "main_1812_basil_return"} true; + goto main_basil_return; + $main$__0__$BdIXwXrPTNePMukmPFVqTg_goto_$main$__2__$tIV0kBzOR1qEmAHuGr1c7Q: + assume {:captureState "$main$__0__$BdIXwXrPTNePMukmPFVqTg_goto_$main$__2__$tIV0kBzOR1qEmAHuGr1c7Q"} true; + assume (!(ZF == 1bv1)); + goto $main$__2__$tIV0kBzOR1qEmAHuGr1c7Q; + $main$__0__$BdIXwXrPTNePMukmPFVqTg_goto_$main$__1__$8wzGZjEOTmOYnhkjdJ4aCQ: + assume {:captureState "$main$__0__$BdIXwXrPTNePMukmPFVqTg_goto_$main$__1__$8wzGZjEOTmOYnhkjdJ4aCQ"} true; + assume (!(!(ZF == 1bv1))); + goto $main$__1__$8wzGZjEOTmOYnhkjdJ4aCQ; + main_basil_return: + assume {:captureState "main_basil_return"} true; return; } diff --git a/src/test/correct/ifglobal/gcc_O2/ifglobal.adt b/src/test/correct/ifglobal/gcc_O2/ifglobal.adt deleted file mode 100644 index d127798d7..000000000 --- a/src/test/correct/ifglobal/gcc_O2/ifglobal.adt +++ /dev/null @@ -1,504 +0,0 @@ -Project(Attrs([Attr("filename","\"gcc_O2/ifglobal.out\""), -Attr("image-specification","(declare abi (name str))\n(declare arch (name str))\n(declare base-address (addr int))\n(declare bias (off int))\n(declare bits (size int))\n(declare code-region (addr int) (size int) (off int))\n(declare code-start (addr int))\n(declare entry-point (addr int))\n(declare external-reference (addr int) (name str))\n(declare format (name str))\n(declare is-executable (flag bool))\n(declare is-little-endian (flag bool))\n(declare llvm:base-address (addr int))\n(declare llvm:code-entry (name str) (off int) (size int))\n(declare llvm:coff-import-library (name str))\n(declare llvm:coff-virtual-section-header (name str) (addr int) (size int))\n(declare llvm:elf-program-header (name str) (off int) (size int))\n(declare llvm:elf-program-header-flags (name str) (ld bool) (r bool) \n (w bool) (x bool))\n(declare llvm:elf-virtual-program-header (name str) (addr int) (size int))\n(declare llvm:entry-point (addr int))\n(declare llvm:macho-symbol (name str) (value int))\n(declare llvm:name-reference (at int) (name str))\n(declare llvm:relocation (at int) (addr int))\n(declare llvm:section-entry (name str) (addr int) (size int) (off int))\n(declare llvm:section-flags (name str) (r bool) (w bool) (x bool))\n(declare llvm:segment-command (name str) (off int) (size int))\n(declare llvm:segment-command-flags (name str) (r bool) (w bool) (x bool))\n(declare llvm:symbol-entry (name str) (addr int) (size int) (off int)\n (value int))\n(declare llvm:virtual-segment-command (name str) (addr int) (size int))\n(declare mapped (addr int) (size int) (off int))\n(declare named-region (addr int) (size int) (name str))\n(declare named-symbol (addr int) (name str))\n(declare require (name str))\n(declare section (addr int) (size int))\n(declare segment (addr int) (size int) (r bool) (w bool) (x bool))\n(declare subarch (name str))\n(declare symbol-chunk (addr int) (size int) (root int))\n(declare symbol-value (addr int) (value int))\n(declare system (name str))\n(declare vendor (name str))\n\n(abi unknown)\n(arch aarch64)\n(base-address 0)\n(bias 0)\n(bits 64)\n(code-region 1876 20 1876)\n(code-region 1536 340 1536)\n(code-region 1440 96 1440)\n(code-region 1408 24 1408)\n(code-start 1652)\n(code-start 1600)\n(code-start 1536)\n(entry-point 1600)\n(external-reference 69592 _ITM_deregisterTMCloneTable)\n(external-reference 69600 __cxa_finalize)\n(external-reference 69608 __gmon_start__)\n(external-reference 69624 _ITM_registerTMCloneTable)\n(external-reference 69552 __libc_start_main)\n(external-reference 69560 __cxa_finalize)\n(external-reference 69568 __gmon_start__)\n(external-reference 69576 abort)\n(format elf)\n(is-executable true)\n(is-little-endian true)\n(llvm:base-address 0)\n(llvm:code-entry abort 0 0)\n(llvm:code-entry __cxa_finalize 0 0)\n(llvm:code-entry __libc_start_main 0 0)\n(llvm:code-entry _init 1408 0)\n(llvm:code-entry main 1536 28)\n(llvm:code-entry _start 1600 52)\n(llvm:code-entry abort@GLIBC_2.17 0 0)\n(llvm:code-entry _fini 1876 0)\n(llvm:code-entry __cxa_finalize@GLIBC_2.17 0 0)\n(llvm:code-entry __libc_start_main@GLIBC_2.34 0 0)\n(llvm:code-entry frame_dummy 1872 0)\n(llvm:code-entry __do_global_dtors_aux 1792 0)\n(llvm:code-entry register_tm_clones 1728 0)\n(llvm:code-entry deregister_tm_clones 1680 0)\n(llvm:code-entry call_weak_fn 1652 20)\n(llvm:code-entry .fini 1876 20)\n(llvm:code-entry .text 1536 340)\n(llvm:code-entry .plt 1440 96)\n(llvm:code-entry .init 1408 24)\n(llvm:elf-program-header 08 3480 616)\n(llvm:elf-program-header 07 0 0)\n(llvm:elf-program-header 06 1900 60)\n(llvm:elf-program-header 05 596 68)\n(llvm:elf-program-header 04 3496 496)\n(llvm:elf-program-header 03 3480 632)\n(llvm:elf-program-header 02 0 2120)\n(llvm:elf-program-header 01 568 27)\n(llvm:elf-program-header 00 64 504)\n(llvm:elf-program-header-flags 08 false true false false)\n(llvm:elf-program-header-flags 07 false true true false)\n(llvm:elf-program-header-flags 06 false true false false)\n(llvm:elf-program-header-flags 05 false true false false)\n(llvm:elf-program-header-flags 04 false true true false)\n(llvm:elf-program-header-flags 03 true true true false)\n(llvm:elf-program-header-flags 02 true true false true)\n(llvm:elf-program-header-flags 01 false true false false)\n(llvm:elf-program-header-flags 00 false true false false)\n(llvm:elf-virtual-program-header 08 69016 616)\n(llvm:elf-virtual-program-header 07 0 0)\n(llvm:elf-virtual-program-header 06 1900 60)\n(llvm:elf-virtual-program-header 05 596 68)\n(llvm:elf-virtual-program-header 04 69032 496)\n(llvm:elf-virtual-program-header 03 69016 640)\n(llvm:elf-virtual-program-header 02 0 2120)\n(llvm:elf-virtual-program-header 01 568 27)\n(llvm:elf-virtual-program-header 00 64 504)\n(llvm:entry-point 1600)\n(llvm:name-reference 69576 abort)\n(llvm:name-reference 69568 __gmon_start__)\n(llvm:name-reference 69560 __cxa_finalize)\n(llvm:name-reference 69552 __libc_start_main)\n(llvm:name-reference 69624 _ITM_registerTMCloneTable)\n(llvm:name-reference 69608 __gmon_start__)\n(llvm:name-reference 69600 __cxa_finalize)\n(llvm:name-reference 69592 _ITM_deregisterTMCloneTable)\n(llvm:section-entry .shstrtab 0 250 6816)\n(llvm:section-entry .strtab 0 544 6272)\n(llvm:section-entry .symtab 0 2112 4160)\n(llvm:section-entry .comment 0 43 4112)\n(llvm:section-entry .bss 69648 8 4112)\n(llvm:section-entry .data 69632 16 4096)\n(llvm:section-entry .got 69528 104 3992)\n(llvm:section-entry .dynamic 69032 496 3496)\n(llvm:section-entry .fini_array 69024 8 3488)\n(llvm:section-entry .init_array 69016 8 3480)\n(llvm:section-entry .eh_frame 1960 160 1960)\n(llvm:section-entry .eh_frame_hdr 1900 60 1900)\n(llvm:section-entry .rodata 1896 4 1896)\n(llvm:section-entry .fini 1876 20 1876)\n(llvm:section-entry .text 1536 340 1536)\n(llvm:section-entry .plt 1440 96 1440)\n(llvm:section-entry .init 1408 24 1408)\n(llvm:section-entry .rela.plt 1312 96 1312)\n(llvm:section-entry .rela.dyn 1120 192 1120)\n(llvm:section-entry .gnu.version_r 1072 48 1072)\n(llvm:section-entry .gnu.version 1054 18 1054)\n(llvm:section-entry .dynstr 912 141 912)\n(llvm:section-entry .dynsym 696 216 696)\n(llvm:section-entry .gnu.hash 664 28 664)\n(llvm:section-entry .note.ABI-tag 632 32 632)\n(llvm:section-entry .note.gnu.build-id 596 36 596)\n(llvm:section-entry .interp 568 27 568)\n(llvm:section-flags .shstrtab true false false)\n(llvm:section-flags .strtab true false false)\n(llvm:section-flags .symtab true false false)\n(llvm:section-flags .comment true false false)\n(llvm:section-flags .bss true true false)\n(llvm:section-flags .data true true false)\n(llvm:section-flags .got true true false)\n(llvm:section-flags .dynamic true true false)\n(llvm:section-flags .fini_array true true false)\n(llvm:section-flags .init_array true true false)\n(llvm:section-flags .eh_frame true false false)\n(llvm:section-flags .eh_frame_hdr true false false)\n(llvm:section-flags .rodata true false false)\n(llvm:section-flags .fini true false true)\n(llvm:section-flags .text true false true)\n(llvm:section-flags .plt true false true)\n(llvm:section-flags .init true false true)\n(llvm:section-flags .rela.plt true false false)\n(llvm:section-flags .rela.dyn true false false)\n(llvm:section-flags .gnu.version_r true false false)\n(llvm:section-flags .gnu.version true false false)\n(llvm:section-flags .dynstr true false false)\n(llvm:section-flags .dynsym true false false)\n(llvm:section-flags .gnu.hash true false false)\n(llvm:section-flags .note.ABI-tag true false false)\n(llvm:section-flags .note.gnu.build-id true false false)\n(llvm:section-flags .interp true false false)\n(llvm:symbol-entry abort 0 0 0 0)\n(llvm:symbol-entry __cxa_finalize 0 0 0 0)\n(llvm:symbol-entry __libc_start_main 0 0 0 0)\n(llvm:symbol-entry _init 1408 0 1408 1408)\n(llvm:symbol-entry main 1536 28 1536 1536)\n(llvm:symbol-entry _start 1600 52 1600 1600)\n(llvm:symbol-entry abort@GLIBC_2.17 0 0 0 0)\n(llvm:symbol-entry _fini 1876 0 1876 1876)\n(llvm:symbol-entry __cxa_finalize@GLIBC_2.17 0 0 0 0)\n(llvm:symbol-entry __libc_start_main@GLIBC_2.34 0 0 0 0)\n(llvm:symbol-entry frame_dummy 1872 0 1872 1872)\n(llvm:symbol-entry __do_global_dtors_aux 1792 0 1792 1792)\n(llvm:symbol-entry register_tm_clones 1728 0 1728 1728)\n(llvm:symbol-entry deregister_tm_clones 1680 0 1680 1680)\n(llvm:symbol-entry call_weak_fn 1652 20 1652 1652)\n(mapped 0 2120 0)\n(mapped 69016 632 3480)\n(named-region 0 2120 02)\n(named-region 69016 640 03)\n(named-region 568 27 .interp)\n(named-region 596 36 .note.gnu.build-id)\n(named-region 632 32 .note.ABI-tag)\n(named-region 664 28 .gnu.hash)\n(named-region 696 216 .dynsym)\n(named-region 912 141 .dynstr)\n(named-region 1054 18 .gnu.version)\n(named-region 1072 48 .gnu.version_r)\n(named-region 1120 192 .rela.dyn)\n(named-region 1312 96 .rela.plt)\n(named-region 1408 24 .init)\n(named-region 1440 96 .plt)\n(named-region 1536 340 .text)\n(named-region 1876 20 .fini)\n(named-region 1896 4 .rodata)\n(named-region 1900 60 .eh_frame_hdr)\n(named-region 1960 160 .eh_frame)\n(named-region 69016 8 .init_array)\n(named-region 69024 8 .fini_array)\n(named-region 69032 496 .dynamic)\n(named-region 69528 104 .got)\n(named-region 69632 16 .data)\n(named-region 69648 8 .bss)\n(named-region 0 43 .comment)\n(named-region 0 2112 .symtab)\n(named-region 0 544 .strtab)\n(named-region 0 250 .shstrtab)\n(named-symbol 1652 call_weak_fn)\n(named-symbol 1680 deregister_tm_clones)\n(named-symbol 1728 register_tm_clones)\n(named-symbol 1792 __do_global_dtors_aux)\n(named-symbol 1872 frame_dummy)\n(named-symbol 0 __libc_start_main@GLIBC_2.34)\n(named-symbol 0 __cxa_finalize@GLIBC_2.17)\n(named-symbol 1876 _fini)\n(named-symbol 0 abort@GLIBC_2.17)\n(named-symbol 1600 _start)\n(named-symbol 1536 main)\n(named-symbol 1408 _init)\n(named-symbol 0 __libc_start_main)\n(named-symbol 0 __cxa_finalize)\n(named-symbol 0 abort)\n(require libc.so.6)\n(section 568 27)\n(section 596 36)\n(section 632 32)\n(section 664 28)\n(section 696 216)\n(section 912 141)\n(section 1054 18)\n(section 1072 48)\n(section 1120 192)\n(section 1312 96)\n(section 1408 24)\n(section 1440 96)\n(section 1536 340)\n(section 1876 20)\n(section 1896 4)\n(section 1900 60)\n(section 1960 160)\n(section 69016 8)\n(section 69024 8)\n(section 69032 496)\n(section 69528 104)\n(section 69632 16)\n(section 69648 8)\n(section 0 43)\n(section 0 2112)\n(section 0 544)\n(section 0 250)\n(segment 0 2120 true false true)\n(segment 69016 640 true true false)\n(subarch v8)\n(symbol-chunk 1652 20 1652)\n(symbol-chunk 1600 52 1600)\n(symbol-chunk 1536 28 1536)\n(symbol-value 1652 1652)\n(symbol-value 1680 1680)\n(symbol-value 1728 1728)\n(symbol-value 1792 1792)\n(symbol-value 1872 1872)\n(symbol-value 1876 1876)\n(symbol-value 1600 1600)\n(symbol-value 1536 1536)\n(symbol-value 1408 1408)\n(symbol-value 0 0)\n(system \"\")\n(vendor \"\")\n"), -Attr("abi-name","\"aarch64-linux-gnu-elf\"")]), -Sections([Section(".shstrtab", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x40\x06\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xa0\x1b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x38\x00\x09\x00\x40\x00\x1c\x00\x1b\x00\x06\x00\x00\x00\x04\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x04\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x48\x08\x00\x00\x00\x00\x00\x00\x48\x08\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x01\x00\x00\x00\x06\x00\x00\x00\x98\x0d\x00\x00\x00\x00\x00\x00\x98\x0d"), -Section(".strtab", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x40\x06\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xa0\x1b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x38\x00\x09\x00\x40\x00\x1c\x00\x1b\x00\x06\x00\x00\x00\x04\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x04\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x48\x08\x00\x00\x00\x00\x00\x00\x48\x08\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x01\x00\x00\x00\x06\x00\x00\x00\x98\x0d\x00\x00\x00\x00\x00\x00\x98\x0d\x01\x00\x00\x00\x00\x00\x98\x0d\x01\x00\x00\x00\x00\x00\x78\x02\x00\x00\x00\x00\x00\x00\x80\x02\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x02\x00\x00\x00\x06\x00\x00\x00\xa8\x0d\x00\x00\x00\x00\x00\x00\xa8\x0d\x01\x00\x00\x00\x00\x00\xa8\x0d\x01\x00\x00\x00\x00\x00\xf0\x01\x00\x00\x00\x00\x00\x00\xf0\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x04\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x50\xe5\x74\x64\x04\x00\x00\x00\x6c\x07\x00\x00\x00\x00\x00\x00\x6c\x07\x00\x00\x00\x00\x00\x00\x6c\x07\x00\x00\x00\x00\x00\x00\x3c\x00\x00\x00\x00\x00\x00\x00\x3c\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x51\xe5\x74\x64\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x52\xe5\x74\x64\x04\x00\x00\x00\x98\x0d\x00\x00\x00\x00\x00\x00\x98\x0d\x01\x00\x00\x00\x00\x00\x98\x0d\x01\x00\x00\x00\x00\x00"), -Section(".symtab", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x40\x06\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xa0\x1b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x38\x00\x09\x00\x40\x00\x1c\x00\x1b\x00\x06\x00\x00\x00\x04\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x04\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x48\x08\x00\x00\x00\x00\x00\x00\x48\x08\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x01\x00\x00\x00\x06\x00\x00\x00\x98\x0d\x00\x00\x00\x00\x00\x00\x98\x0d\x01\x00\x00\x00\x00\x00\x98\x0d\x01\x00\x00\x00\x00\x00\x78\x02\x00\x00\x00\x00\x00\x00\x80\x02\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x02\x00\x00\x00\x06\x00\x00\x00\xa8\x0d\x00\x00\x00\x00\x00\x00\xa8\x0d\x01\x00\x00\x00\x00\x00\xa8\x0d\x01\x00\x00\x00\x00\x00\xf0\x01\x00\x00\x00\x00\x00\x00\xf0\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x04\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x50\xe5\x74\x64\x04\x00\x00\x00\x6c\x07\x00\x00\x00\x00\x00\x00\x6c\x07\x00\x00\x00\x00\x00\x00\x6c\x07\x00\x00\x00\x00\x00\x00\x3c\x00\x00\x00\x00\x00\x00\x00\x3c\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x51\xe5\x74\x64\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x52\xe5\x74\x64\x04\x00\x00\x00\x98\x0d\x00\x00\x00\x00\x00\x00\x98\x0d\x01\x00\x00\x00\x00\x00\x98\x0d\x01\x00\x00\x00\x00\x00\x68\x02\x00\x00\x00\x00\x00\x00\x68\x02\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x2f\x6c\x69\x62\x2f\x6c\x64\x2d\x6c\x69\x6e\x75\x78\x2d\x61\x61\x72\x63\x68\x36\x34\x2e\x73\x6f\x2e\x31\x00\x00\x04\x00\x00\x00\x14\x00\x00\x00\x03\x00\x00\x00\x47\x4e\x55\x00\x73\xef\x3a\xb3\x45\x03\x29\x25\x85\xb5\x97\x7d\x22\x27\x3c\x63\x11\x0b\x8a\xcc\x04\x00\x00\x00\x10\x00\x00\x00\x01\x00\x00\x00\x47\x4e\x55\x00\x00\x00\x00\x00\x03\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x01\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x0b\x00\x80\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x16\x00\x00\x10\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x48\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x22\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x22\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x73\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5f\x5f\x63\x78\x61\x5f\x66\x69\x6e\x61\x6c\x69\x7a\x65\x00\x5f\x5f\x6c\x69\x62\x63\x5f\x73\x74\x61\x72\x74\x5f\x6d\x61\x69\x6e\x00\x61\x62\x6f\x72\x74\x00\x6c\x69\x62\x63\x2e\x73\x6f\x2e\x36\x00\x47\x4c\x49\x42\x43\x5f\x32\x2e\x31\x37\x00\x47\x4c\x49\x42\x43\x5f\x32\x2e\x33\x34\x00\x5f\x49\x54\x4d\x5f\x64\x65\x72\x65\x67\x69\x73\x74\x65\x72\x54\x4d\x43\x6c\x6f\x6e\x65\x54\x61\x62\x6c\x65\x00\x5f\x5f\x67\x6d\x6f\x6e\x5f\x73\x74\x61\x72\x74\x5f\x5f\x00\x5f\x49\x54\x4d\x5f\x72\x65\x67\x69\x73\x74\x65\x72\x54\x4d\x43\x6c\x6f\x6e\x65\x54\x61\x62\x6c\x65\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x01\x00\x03\x00\x01\x00\x03\x00\x01\x00\x01\x00\x02\x00\x28\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x97\x91\x96\x06\x00\x00\x03\x00\x32\x00\x00\x00\x10\x00\x00\x00\xb4\x91\x96\x06\x00\x00\x02\x00\x3d\x00\x00\x00\x00\x00\x00\x00\x98\x0d\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x50\x07\x00\x00\x00\x00\x00\x00\xa0\x0d\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\xf0\x0f\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x00\x06\x00\x00\x00\x00\x00\x00\x08\x10\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x08\x10\x01\x00\x00\x00\x00\x00\xd8\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe0\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe8\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xf8\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xb0\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xb8\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xc0\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xc8\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1f\x20\x03\xd5\xfd\x7b\xbf\xa9\xfd\x03\x00\x91\x3a\x00\x00\x94\xfd\x7b\xc1\xa8\xc0\x03\x5f\xd6\x00\x00\x00\x00\x00\x00\x00\x00\xf0\x7b\xbf\xa9\x90\x00\x00\x90\x11\xd6\x47\xf9\x10\xa2\x3e\x91\x20\x02\x1f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x90\x00\x00\x90\x11\xda\x47\xf9\x10\xc2\x3e\x91\x20\x02\x1f\xd6\x90\x00\x00\x90\x11\xde\x47\xf9\x10\xe2\x3e\x91\x20\x02\x1f\xd6\x90\x00\x00\x90\x11\xe2\x47\xf9\x10\x02\x3f\x91\x20\x02\x1f\xd6\x90\x00\x00\x90\x11\xe6\x47\xf9\x10\x22\x3f\x91\x20\x02\x1f\xd6\x80\x00\x00\xb0\x01\x14\x40\xb9\x61\x00\x00\x35\x21\x00\x80\x52\x01\x14\x00\xb9\x00\x00\x80\x52\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1d\x00\x80\xd2\x1e\x00\x80\xd2\xe5\x03\x00\xaa\xe1\x03\x40\xf9\xe2\x23\x00\x91\xe6\x03\x00\x91\x80\x00\x00\x90\x00\xf8\x47\xf9\x03\x00\x80\xd2\x04\x00\x80\xd2\xd5\xff\xff\x97\xe0\xff\xff\x97\x80\x00\x00\x90\x00\xf4\x47\xf9\x40\x00\x00\xb4\xd8\xff\xff\x17\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x80\x00\x00\xb0\x00\x40\x00\x91\x81\x00\x00\xb0\x21\x40\x00\x91\x3f\x00\x00\xeb\xc0\x00\x00\x54\x81\x00\x00\x90\x21\xec\x47\xf9\x61\x00\x00\xb4\xf0\x03\x01\xaa\x00\x02\x1f\xd6\xc0\x03\x5f\xd6\x80\x00\x00\xb0\x00\x40\x00\x91\x81\x00\x00\xb0\x21\x40\x00\x91\x21\x00\x00\xcb\x22\xfc\x7f\xd3\x41\x0c\x81\x8b\x21\xfc\x41\x93\xc1\x00\x00\xb4\x82\x00\x00\x90\x42\xfc\x47\xf9\x62\x00\x00\xb4\xf0\x03\x02\xaa\x00\x02\x1f\xd6\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\xfd\x7b\xbe\xa9\xfd\x03\x00\x91\xf3\x0b\x00\xf9\x93\x00\x00\xb0\x60\x42\x40\x39\x40\x01\x00\x35\x80\x00\x00\x90\x00\xf0\x47\xf9\x80\x00\x00\xb4\x80\x00\x00\xb0\x00\x04\x40\xf9\xa9\xff\xff\x97\xd8\xff\xff\x97\x20\x00\x80\x52\x60\x42\x00\x39\xf3\x0b\x40\xf9\xfd\x7b\xc2\xa8\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\xdc\xff\xff\x17\x1f\x20\x03\xd5\xfd\x7b\xbf\xa9\xfd\x03\x00\x91\xfd\x7b\xc1\xa8\xc0\x03\x5f\xd6\x01\x00\x02\x00\x01\x1b\x03\x3b\x38\x00\x00\x00\x06\x00\x00\x00\x94\xfe\xff\xff\xc4\x00\x00\x00\xd4\xfe\xff\xff\x50\x00\x00\x00\x24\xff\xff\xff\x64\x00\x00\x00\x54\xff\xff\xff\x78\x00\x00\x00\x94\xff\xff\xff\x8c\x00\x00\x00\xe4\xff\xff\xff\xb0\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x01\x7a\x52\x00\x04\x78\x1e\x01\x1b\x0c\x1f\x00\x10\x00\x00\x00\x18\x00\x00\x00\x7c\xfe\xff\xff\x34\x00\x00\x00\x00\x41\x07\x1e\x10\x00\x00\x00\x2c\x00\x00\x00\xb8\xfe\xff\xff\x30\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x40\x00\x00\x00\xd4\xfe\xff\xff\x3c\x00\x00\x00\x00\x00\x00\x00\x20\x00\x00\x00\x54\x00\x00\x00\x00\xff\xff\xff\x48\x00\x00\x00\x00\x41\x0e\x20\x9d\x04\x9e\x03\x42\x93\x02\x4e\xde\xdd\xd3\x0e\x00\x00\x00\x00\x10\x00\x00\x00\x78\x00\x00\x00\x2c\xff\xff\xff\x04\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x8c\x00\x00\x00\xc8\xfd\xff\xff\x1c\x00\x00\x00"), -Section(".comment", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x40\x06\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xa0\x1b\x00"), -Section(".interp", 0x238, "\x2f\x6c\x69\x62\x2f\x6c\x64\x2d\x6c\x69\x6e\x75\x78\x2d\x61\x61\x72\x63\x68\x36\x34\x2e\x73\x6f\x2e\x31\x00"), -Section(".note.gnu.build-id", 0x254, "\x04\x00\x00\x00\x14\x00\x00\x00\x03\x00\x00\x00\x47\x4e\x55\x00\x73\xef\x3a\xb3\x45\x03\x29\x25\x85\xb5\x97\x7d\x22\x27\x3c\x63\x11\x0b\x8a\xcc"), -Section(".note.ABI-tag", 0x278, "\x04\x00\x00\x00\x10\x00\x00\x00\x01\x00\x00\x00\x47\x4e\x55\x00\x00\x00\x00\x00\x03\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00"), -Section(".gnu.hash", 0x298, "\x01\x00\x00\x00\x01\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".dynsym", 0x2B8, "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x0b\x00\x80\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x16\x00\x00\x10\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x48\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x22\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x22\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x73\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".dynstr", 0x390, "\x00\x5f\x5f\x63\x78\x61\x5f\x66\x69\x6e\x61\x6c\x69\x7a\x65\x00\x5f\x5f\x6c\x69\x62\x63\x5f\x73\x74\x61\x72\x74\x5f\x6d\x61\x69\x6e\x00\x61\x62\x6f\x72\x74\x00\x6c\x69\x62\x63\x2e\x73\x6f\x2e\x36\x00\x47\x4c\x49\x42\x43\x5f\x32\x2e\x31\x37\x00\x47\x4c\x49\x42\x43\x5f\x32\x2e\x33\x34\x00\x5f\x49\x54\x4d\x5f\x64\x65\x72\x65\x67\x69\x73\x74\x65\x72\x54\x4d\x43\x6c\x6f\x6e\x65\x54\x61\x62\x6c\x65\x00\x5f\x5f\x67\x6d\x6f\x6e\x5f\x73\x74\x61\x72\x74\x5f\x5f\x00\x5f\x49\x54\x4d\x5f\x72\x65\x67\x69\x73\x74\x65\x72\x54\x4d\x43\x6c\x6f\x6e\x65\x54\x61\x62\x6c\x65\x00"), -Section(".gnu.version", 0x41E, "\x00\x00\x00\x00\x00\x00\x02\x00\x01\x00\x03\x00\x01\x00\x03\x00\x01\x00"), -Section(".gnu.version_r", 0x430, "\x01\x00\x02\x00\x28\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x97\x91\x96\x06\x00\x00\x03\x00\x32\x00\x00\x00\x10\x00\x00\x00\xb4\x91\x96\x06\x00\x00\x02\x00\x3d\x00\x00\x00\x00\x00\x00\x00"), -Section(".rela.dyn", 0x460, "\x98\x0d\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x50\x07\x00\x00\x00\x00\x00\x00\xa0\x0d\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\xf0\x0f\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x00\x06\x00\x00\x00\x00\x00\x00\x08\x10\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x08\x10\x01\x00\x00\x00\x00\x00\xd8\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe0\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe8\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xf8\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".rela.plt", 0x520, "\xb0\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xb8\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xc0\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xc8\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".init", 0x580, "\x1f\x20\x03\xd5\xfd\x7b\xbf\xa9\xfd\x03\x00\x91\x3a\x00\x00\x94\xfd\x7b\xc1\xa8\xc0\x03\x5f\xd6"), -Section(".plt", 0x5A0, "\xf0\x7b\xbf\xa9\x90\x00\x00\x90\x11\xd6\x47\xf9\x10\xa2\x3e\x91\x20\x02\x1f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x90\x00\x00\x90\x11\xda\x47\xf9\x10\xc2\x3e\x91\x20\x02\x1f\xd6\x90\x00\x00\x90\x11\xde\x47\xf9\x10\xe2\x3e\x91\x20\x02\x1f\xd6\x90\x00\x00\x90\x11\xe2\x47\xf9\x10\x02\x3f\x91\x20\x02\x1f\xd6\x90\x00\x00\x90\x11\xe6\x47\xf9\x10\x22\x3f\x91\x20\x02\x1f\xd6"), -Section(".fini", 0x754, "\x1f\x20\x03\xd5\xfd\x7b\xbf\xa9\xfd\x03\x00\x91\xfd\x7b\xc1\xa8\xc0\x03\x5f\xd6"), -Section(".rodata", 0x768, "\x01\x00\x02\x00"), -Section(".eh_frame_hdr", 0x76C, "\x01\x1b\x03\x3b\x38\x00\x00\x00\x06\x00\x00\x00\x94\xfe\xff\xff\xc4\x00\x00\x00\xd4\xfe\xff\xff\x50\x00\x00\x00\x24\xff\xff\xff\x64\x00\x00\x00\x54\xff\xff\xff\x78\x00\x00\x00\x94\xff\xff\xff\x8c\x00\x00\x00\xe4\xff\xff\xff\xb0\x00\x00\x00"), -Section(".eh_frame", 0x7A8, "\x10\x00\x00\x00\x00\x00\x00\x00\x01\x7a\x52\x00\x04\x78\x1e\x01\x1b\x0c\x1f\x00\x10\x00\x00\x00\x18\x00\x00\x00\x7c\xfe\xff\xff\x34\x00\x00\x00\x00\x41\x07\x1e\x10\x00\x00\x00\x2c\x00\x00\x00\xb8\xfe\xff\xff\x30\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x40\x00\x00\x00\xd4\xfe\xff\xff\x3c\x00\x00\x00\x00\x00\x00\x00\x20\x00\x00\x00\x54\x00\x00\x00\x00\xff\xff\xff\x48\x00\x00\x00\x00\x41\x0e\x20\x9d\x04\x9e\x03\x42\x93\x02\x4e\xde\xdd\xd3\x0e\x00\x00\x00\x00\x10\x00\x00\x00\x78\x00\x00\x00\x2c\xff\xff\xff\x04\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x8c\x00\x00\x00\xc8\xfd\xff\xff\x1c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".fini_array", 0x10DA0, "\x00\x07\x00\x00\x00\x00\x00\x00"), -Section(".dynamic", 0x10DA8, "\x01\x00\x00\x00\x00\x00\x00\x00\x28\x00\x00\x00\x00\x00\x00\x00\x0c\x00\x00\x00\x00\x00\x00\x00\x80\x05\x00\x00\x00\x00\x00\x00\x0d\x00\x00\x00\x00\x00\x00\x00\x54\x07\x00\x00\x00\x00\x00\x00\x19\x00\x00\x00\x00\x00\x00\x00\x98\x0d\x01\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x1a\x00\x00\x00\x00\x00\x00\x00\xa0\x0d\x01\x00\x00\x00\x00\x00\x1c\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\xf5\xfe\xff\x6f\x00\x00\x00\x00\x98\x02\x00\x00\x00\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x90\x03\x00\x00\x00\x00\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\xb8\x02\x00\x00\x00\x00\x00\x00\x0a\x00\x00\x00\x00\x00\x00\x00\x8d\x00\x00\x00\x00\x00\x00\x00\x0b\x00\x00\x00\x00\x00\x00\x00\x18\x00\x00\x00\x00\x00\x00\x00\x15\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x98\x0f\x01\x00\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x60\x00\x00\x00\x00\x00\x00\x00\x14\x00\x00\x00\x00\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x17\x00\x00\x00\x00\x00\x00\x00\x20\x05\x00\x00\x00\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x60\x04\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\xc0\x00\x00\x00\x00\x00\x00\x00\x09\x00\x00\x00\x00\x00\x00\x00\x18\x00\x00\x00\x00\x00\x00\x00\x1e\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\xfb\xff\xff\x6f\x00\x00\x00\x00\x01\x00\x00\x08\x00\x00\x00\x00\xfe\xff\xff\x6f\x00\x00\x00\x00\x30\x04\x00\x00\x00\x00\x00\x00\xff\xff\xff\x6f\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\xf0\xff\xff\x6f\x00\x00\x00\x00\x1e\x04\x00\x00\x00\x00\x00\x00\xf9\xff\xff\x6f\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".init_array", 0x10D98, "\x50\x07\x00\x00\x00\x00\x00\x00"), -Section(".got", 0x10F98, "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xa0\x05\x00\x00\x00\x00\x00\x00\xa0\x05\x00\x00\x00\x00\x00\x00\xa0\x05\x00\x00\x00\x00\x00\x00\xa0\x05\x00\x00\x00\x00\x00\x00\xa8\x0d\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".data", 0x11000, "\x00\x00\x00\x00\x00\x00\x00\x00\x08\x10\x01\x00\x00\x00\x00\x00"), -Section(".text", 0x600, "\x80\x00\x00\xb0\x01\x14\x40\xb9\x61\x00\x00\x35\x21\x00\x80\x52\x01\x14\x00\xb9\x00\x00\x80\x52\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1d\x00\x80\xd2\x1e\x00\x80\xd2\xe5\x03\x00\xaa\xe1\x03\x40\xf9\xe2\x23\x00\x91\xe6\x03\x00\x91\x80\x00\x00\x90\x00\xf8\x47\xf9\x03\x00\x80\xd2\x04\x00\x80\xd2\xd5\xff\xff\x97\xe0\xff\xff\x97\x80\x00\x00\x90\x00\xf4\x47\xf9\x40\x00\x00\xb4\xd8\xff\xff\x17\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x80\x00\x00\xb0\x00\x40\x00\x91\x81\x00\x00\xb0\x21\x40\x00\x91\x3f\x00\x00\xeb\xc0\x00\x00\x54\x81\x00\x00\x90\x21\xec\x47\xf9\x61\x00\x00\xb4\xf0\x03\x01\xaa\x00\x02\x1f\xd6\xc0\x03\x5f\xd6\x80\x00\x00\xb0\x00\x40\x00\x91\x81\x00\x00\xb0\x21\x40\x00\x91\x21\x00\x00\xcb\x22\xfc\x7f\xd3\x41\x0c\x81\x8b\x21\xfc\x41\x93\xc1\x00\x00\xb4\x82\x00\x00\x90\x42\xfc\x47\xf9\x62\x00\x00\xb4\xf0\x03\x02\xaa\x00\x02\x1f\xd6\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\xfd\x7b\xbe\xa9\xfd\x03\x00\x91\xf3\x0b\x00\xf9\x93\x00\x00\xb0\x60\x42\x40\x39\x40\x01\x00\x35\x80\x00\x00\x90\x00\xf0\x47\xf9\x80\x00\x00\xb4\x80\x00\x00\xb0\x00\x04\x40\xf9\xa9\xff\xff\x97\xd8\xff\xff\x97\x20\x00\x80\x52\x60\x42\x00\x39\xf3\x0b\x40\xf9\xfd\x7b\xc2\xa8\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\xdc\xff\xff\x17")]), -Memmap([Annotation(Region(0x0,0x847), Attr("segment","02 0 2120")), -Annotation(Region(0x600,0x61B), Attr("symbol","\"main\"")), -Annotation(Region(0x0,0xF9), Attr("section","\".shstrtab\"")), -Annotation(Region(0x0,0x21F), Attr("section","\".strtab\"")), -Annotation(Region(0x0,0x83F), Attr("section","\".symtab\"")), -Annotation(Region(0x0,0x2A), Attr("section","\".comment\"")), -Annotation(Region(0x238,0x252), Attr("section","\".interp\"")), -Annotation(Region(0x254,0x277), Attr("section","\".note.gnu.build-id\"")), -Annotation(Region(0x278,0x297), Attr("section","\".note.ABI-tag\"")), -Annotation(Region(0x298,0x2B3), Attr("section","\".gnu.hash\"")), -Annotation(Region(0x2B8,0x38F), Attr("section","\".dynsym\"")), -Annotation(Region(0x390,0x41C), Attr("section","\".dynstr\"")), -Annotation(Region(0x41E,0x42F), Attr("section","\".gnu.version\"")), -Annotation(Region(0x430,0x45F), Attr("section","\".gnu.version_r\"")), -Annotation(Region(0x460,0x51F), Attr("section","\".rela.dyn\"")), -Annotation(Region(0x520,0x57F), Attr("section","\".rela.plt\"")), -Annotation(Region(0x580,0x597), Attr("section","\".init\"")), -Annotation(Region(0x5A0,0x5FF), Attr("section","\".plt\"")), -Annotation(Region(0x580,0x597), Attr("code-region","()")), -Annotation(Region(0x5A0,0x5FF), Attr("code-region","()")), -Annotation(Region(0x600,0x61B), Attr("symbol-info","main 0x600 28")), -Annotation(Region(0x640,0x673), Attr("symbol","\"_start\"")), -Annotation(Region(0x640,0x673), Attr("symbol-info","_start 0x640 52")), -Annotation(Region(0x674,0x687), Attr("symbol","\"call_weak_fn\"")), -Annotation(Region(0x674,0x687), Attr("symbol-info","call_weak_fn 0x674 20")), -Annotation(Region(0x754,0x767), Attr("section","\".fini\"")), -Annotation(Region(0x768,0x76B), Attr("section","\".rodata\"")), -Annotation(Region(0x76C,0x7A7), Attr("section","\".eh_frame_hdr\"")), -Annotation(Region(0x7A8,0x847), Attr("section","\".eh_frame\"")), -Annotation(Region(0x10D98,0x1100F), Attr("segment","03 0x10D98 640")), -Annotation(Region(0x10DA0,0x10DA7), Attr("section","\".fini_array\"")), -Annotation(Region(0x10DA8,0x10F97), Attr("section","\".dynamic\"")), -Annotation(Region(0x10D98,0x10D9F), Attr("section","\".init_array\"")), -Annotation(Region(0x10F98,0x10FFF), Attr("section","\".got\"")), -Annotation(Region(0x11000,0x1100F), Attr("section","\".data\"")), -Annotation(Region(0x600,0x753), Attr("section","\".text\"")), -Annotation(Region(0x600,0x753), Attr("code-region","()")), -Annotation(Region(0x754,0x767), Attr("code-region","()"))]), -Program(Tid(1_520, "%000005f0"), Attrs([]), - Subs([Sub(Tid(1_466, "@__cxa_finalize"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x5D0"), -Attr("stub","()")]), "__cxa_finalize", Args([Arg(Tid(1_521, "%000005f1"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("__cxa_finalize_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(849, "@__cxa_finalize"), - Attrs([Attr("address","0x5D0")]), Phis([]), -Defs([Def(Tid(1_110, "%00000456"), Attrs([Attr("address","0x5D0"), -Attr("insn","adrp x16, #65536")]), Var("R16",Imm(64)), Int(65536,64)), -Def(Tid(1_117, "%0000045d"), Attrs([Attr("address","0x5D4"), -Attr("insn","ldr x17, [x16, #0xfb8]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(4024,64)),LittleEndian(),64)), -Def(Tid(1_123, "%00000463"), Attrs([Attr("address","0x5D8"), -Attr("insn","add x16, x16, #0xfb8")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(4024,64)))]), Jmps([Call(Tid(1_128, "%00000468"), - Attrs([Attr("address","0x5DC"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), -Sub(Tid(1_467, "@__do_global_dtors_aux"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x700")]), - "__do_global_dtors_aux", Args([Arg(Tid(1_522, "%000005f2"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("__do_global_dtors_aux_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(702, "@__do_global_dtors_aux"), - Attrs([Attr("address","0x700")]), Phis([]), Defs([Def(Tid(706, "%000002c2"), - Attrs([Attr("address","0x700"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("#3",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(18446744073709551584,64))), -Def(Tid(712, "%000002c8"), Attrs([Attr("address","0x700"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("#3",Imm(64)),Var("R29",Imm(64)),LittleEndian(),64)), -Def(Tid(718, "%000002ce"), Attrs([Attr("address","0x700"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("#3",Imm(64)),Int(8,64)),Var("R30",Imm(64)),LittleEndian(),64)), -Def(Tid(722, "%000002d2"), Attrs([Attr("address","0x700"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("R31",Imm(64)), -Var("#3",Imm(64))), Def(Tid(728, "%000002d8"), - Attrs([Attr("address","0x704"), Attr("insn","mov x29, sp")]), - Var("R29",Imm(64)), Var("R31",Imm(64))), Def(Tid(736, "%000002e0"), - Attrs([Attr("address","0x708"), Attr("insn","str x19, [sp, #0x10]")]), - Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(16,64)),Var("R19",Imm(64)),LittleEndian(),64)), -Def(Tid(741, "%000002e5"), Attrs([Attr("address","0x70C"), -Attr("insn","adrp x19, #69632")]), Var("R19",Imm(64)), Int(69632,64)), -Def(Tid(748, "%000002ec"), Attrs([Attr("address","0x710"), -Attr("insn","ldrb w0, [x19, #0x10]")]), Var("R0",Imm(64)), -UNSIGNED(64,Load(Var("mem",Mem(64,8)),PLUS(Var("R19",Imm(64)),Int(16,64)),LittleEndian(),8)))]), -Jmps([Goto(Tid(755, "%000002f3"), Attrs([Attr("address","0x714"), -Attr("insn","cbnz w0, #0x28")]), - NEQ(Extract(31,0,Var("R0",Imm(64))),Int(0,32)), -Direct(Tid(753, "%000002f1"))), Goto(Tid(1_508, "%000005e4"), Attrs([]), - Int(1,1), Direct(Tid(794, "%0000031a")))])), Blk(Tid(794, "%0000031a"), - Attrs([Attr("address","0x718")]), Phis([]), Defs([Def(Tid(797, "%0000031d"), - Attrs([Attr("address","0x718"), Attr("insn","adrp x0, #65536")]), - Var("R0",Imm(64)), Int(65536,64)), Def(Tid(804, "%00000324"), - Attrs([Attr("address","0x71C"), Attr("insn","ldr x0, [x0, #0xfe0]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(4064,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(810, "%0000032a"), Attrs([Attr("address","0x720"), -Attr("insn","cbz x0, #0x10")]), EQ(Var("R0",Imm(64)),Int(0,64)), -Direct(Tid(808, "%00000328"))), Goto(Tid(1_509, "%000005e5"), Attrs([]), - Int(1,1), Direct(Tid(833, "%00000341")))])), Blk(Tid(833, "%00000341"), - Attrs([Attr("address","0x724")]), Phis([]), Defs([Def(Tid(836, "%00000344"), - Attrs([Attr("address","0x724"), Attr("insn","adrp x0, #69632")]), - Var("R0",Imm(64)), Int(69632,64)), Def(Tid(843, "%0000034b"), - Attrs([Attr("address","0x728"), Attr("insn","ldr x0, [x0, #0x8]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(848, "%00000350"), Attrs([Attr("address","0x72C"), -Attr("insn","bl #-0x15c")]), Var("R30",Imm(64)), Int(1840,64))]), -Jmps([Call(Tid(851, "%00000353"), Attrs([Attr("address","0x72C"), -Attr("insn","bl #-0x15c")]), Int(1,1), -(Direct(Tid(1_466, "@__cxa_finalize")),Direct(Tid(808, "%00000328"))))])), -Blk(Tid(808, "%00000328"), Attrs([Attr("address","0x730")]), Phis([]), -Defs([Def(Tid(816, "%00000330"), Attrs([Attr("address","0x730"), -Attr("insn","bl #-0xa0")]), Var("R30",Imm(64)), Int(1844,64))]), -Jmps([Call(Tid(818, "%00000332"), Attrs([Attr("address","0x730"), -Attr("insn","bl #-0xa0")]), Int(1,1), -(Direct(Tid(1_480, "@deregister_tm_clones")),Direct(Tid(820, "%00000334"))))])), -Blk(Tid(820, "%00000334"), Attrs([Attr("address","0x734")]), Phis([]), -Defs([Def(Tid(823, "%00000337"), Attrs([Attr("address","0x734"), -Attr("insn","mov w0, #0x1")]), Var("R0",Imm(64)), Int(1,64)), -Def(Tid(831, "%0000033f"), Attrs([Attr("address","0x738"), -Attr("insn","strb w0, [x19, #0x10]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R19",Imm(64)),Int(16,64)),Extract(7,0,Var("R0",Imm(64))),LittleEndian(),8))]), -Jmps([Goto(Tid(1_510, "%000005e6"), Attrs([]), Int(1,1), -Direct(Tid(753, "%000002f1")))])), Blk(Tid(753, "%000002f1"), - Attrs([Attr("address","0x73C")]), Phis([]), Defs([Def(Tid(763, "%000002fb"), - Attrs([Attr("address","0x73C"), Attr("insn","ldr x19, [sp, #0x10]")]), - Var("R19",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(16,64)),LittleEndian(),64)), -Def(Tid(770, "%00000302"), Attrs([Attr("address","0x740"), -Attr("insn","ldp x29, x30, [sp], #0x20")]), Var("R29",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(775, "%00000307"), Attrs([Attr("address","0x740"), -Attr("insn","ldp x29, x30, [sp], #0x20")]), Var("R30",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(779, "%0000030b"), Attrs([Attr("address","0x740"), -Attr("insn","ldp x29, x30, [sp], #0x20")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(32,64)))]), Jmps([Call(Tid(784, "%00000310"), - Attrs([Attr("address","0x744"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), Sub(Tid(1_471, "@__libc_start_main"), - Attrs([Attr("c.proto","signed (*)(signed (*)(signed , char** , char** );* main, signed , char** , \nvoid* auxv)"), -Attr("address","0x5C0"), Attr("stub","()")]), "__libc_start_main", - Args([Arg(Tid(1_523, "%000005f3"), - Attrs([Attr("c.layout","**[ : 64]"), -Attr("c.data","Top:u64 ptr ptr"), -Attr("c.type","signed (*)(signed , char** , char** );*")]), - Var("__libc_start_main_main",Imm(64)), Var("R0",Imm(64)), In()), -Arg(Tid(1_524, "%000005f4"), Attrs([Attr("c.layout","[signed : 32]"), -Attr("c.data","Top:u32"), Attr("c.type","signed")]), - Var("__libc_start_main_arg2",Imm(32)), LOW(32,Var("R1",Imm(64))), In()), -Arg(Tid(1_525, "%000005f5"), Attrs([Attr("c.layout","**[char : 8]"), -Attr("c.data","Top:u8 ptr ptr"), Attr("c.type","char**")]), - Var("__libc_start_main_arg3",Imm(64)), Var("R2",Imm(64)), Both()), -Arg(Tid(1_526, "%000005f6"), Attrs([Attr("c.layout","*[ : 8]"), -Attr("c.data","{} ptr"), Attr("c.type","void*")]), - Var("__libc_start_main_auxv",Imm(64)), Var("R3",Imm(64)), Both()), -Arg(Tid(1_527, "%000005f7"), Attrs([Attr("c.layout","[signed : 32]"), -Attr("c.data","Top:u32"), Attr("c.type","signed")]), - Var("__libc_start_main_result",Imm(32)), LOW(32,Var("R0",Imm(64))), -Out())]), Blks([Blk(Tid(535, "@__libc_start_main"), - Attrs([Attr("address","0x5C0")]), Phis([]), -Defs([Def(Tid(1_088, "%00000440"), Attrs([Attr("address","0x5C0"), -Attr("insn","adrp x16, #65536")]), Var("R16",Imm(64)), Int(65536,64)), -Def(Tid(1_095, "%00000447"), Attrs([Attr("address","0x5C4"), -Attr("insn","ldr x17, [x16, #0xfb0]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(4016,64)),LittleEndian(),64)), -Def(Tid(1_101, "%0000044d"), Attrs([Attr("address","0x5C8"), -Attr("insn","add x16, x16, #0xfb0")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(4016,64)))]), Jmps([Call(Tid(1_106, "%00000452"), - Attrs([Attr("address","0x5CC"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), Sub(Tid(1_472, "@_fini"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x754")]), - "_fini", Args([Arg(Tid(1_528, "%000005f8"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("_fini_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(31, "@_fini"), - Attrs([Attr("address","0x754")]), Phis([]), Defs([Def(Tid(37, "%00000025"), - Attrs([Attr("address","0x758"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("#0",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(18446744073709551600,64))), -Def(Tid(43, "%0000002b"), Attrs([Attr("address","0x758"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("#0",Imm(64)),Var("R29",Imm(64)),LittleEndian(),64)), -Def(Tid(49, "%00000031"), Attrs([Attr("address","0x758"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("#0",Imm(64)),Int(8,64)),Var("R30",Imm(64)),LittleEndian(),64)), -Def(Tid(53, "%00000035"), Attrs([Attr("address","0x758"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("R31",Imm(64)), -Var("#0",Imm(64))), Def(Tid(59, "%0000003b"), Attrs([Attr("address","0x75C"), -Attr("insn","mov x29, sp")]), Var("R29",Imm(64)), Var("R31",Imm(64))), -Def(Tid(66, "%00000042"), Attrs([Attr("address","0x760"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R29",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(71, "%00000047"), Attrs([Attr("address","0x760"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R30",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(75, "%0000004b"), Attrs([Attr("address","0x760"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(16,64)))]), Jmps([Call(Tid(80, "%00000050"), - Attrs([Attr("address","0x764"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), Sub(Tid(1_473, "@_init"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x580")]), - "_init", Args([Arg(Tid(1_529, "%000005f9"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("_init_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(1_292, "@_init"), - Attrs([Attr("address","0x580")]), Phis([]), -Defs([Def(Tid(1_298, "%00000512"), Attrs([Attr("address","0x584"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("#5",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(18446744073709551600,64))), -Def(Tid(1_304, "%00000518"), Attrs([Attr("address","0x584"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("#5",Imm(64)),Var("R29",Imm(64)),LittleEndian(),64)), -Def(Tid(1_310, "%0000051e"), Attrs([Attr("address","0x584"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("#5",Imm(64)),Int(8,64)),Var("R30",Imm(64)),LittleEndian(),64)), -Def(Tid(1_314, "%00000522"), Attrs([Attr("address","0x584"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("R31",Imm(64)), -Var("#5",Imm(64))), Def(Tid(1_320, "%00000528"), - Attrs([Attr("address","0x588"), Attr("insn","mov x29, sp")]), - Var("R29",Imm(64)), Var("R31",Imm(64))), Def(Tid(1_325, "%0000052d"), - Attrs([Attr("address","0x58C"), Attr("insn","bl #0xe8")]), - Var("R30",Imm(64)), Int(1424,64))]), Jmps([Call(Tid(1_327, "%0000052f"), - Attrs([Attr("address","0x58C"), Attr("insn","bl #0xe8")]), Int(1,1), -(Direct(Tid(1_478, "@call_weak_fn")),Direct(Tid(1_329, "%00000531"))))])), -Blk(Tid(1_329, "%00000531"), Attrs([Attr("address","0x590")]), Phis([]), -Defs([Def(Tid(1_334, "%00000536"), Attrs([Attr("address","0x590"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R29",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(1_339, "%0000053b"), Attrs([Attr("address","0x590"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R30",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(1_343, "%0000053f"), Attrs([Attr("address","0x590"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(16,64)))]), Jmps([Call(Tid(1_348, "%00000544"), - Attrs([Attr("address","0x594"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), Sub(Tid(1_474, "@_start"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x640"), -Attr("entry-point","()")]), "_start", Args([Arg(Tid(1_530, "%000005fa"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("_start_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(472, "@_start"), - Attrs([Attr("address","0x640")]), Phis([]), Defs([Def(Tid(477, "%000001dd"), - Attrs([Attr("address","0x644"), Attr("insn","mov x29, #0x0")]), - Var("R29",Imm(64)), Int(0,64)), Def(Tid(482, "%000001e2"), - Attrs([Attr("address","0x648"), Attr("insn","mov x30, #0x0")]), - Var("R30",Imm(64)), Int(0,64)), Def(Tid(488, "%000001e8"), - Attrs([Attr("address","0x64C"), Attr("insn","mov x5, x0")]), - Var("R5",Imm(64)), Var("R0",Imm(64))), Def(Tid(495, "%000001ef"), - Attrs([Attr("address","0x650"), Attr("insn","ldr x1, [sp]")]), - Var("R1",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(501, "%000001f5"), Attrs([Attr("address","0x654"), -Attr("insn","add x2, sp, #0x8")]), Var("R2",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(8,64))), Def(Tid(507, "%000001fb"), - Attrs([Attr("address","0x658"), Attr("insn","mov x6, sp")]), - Var("R6",Imm(64)), Var("R31",Imm(64))), Def(Tid(512, "%00000200"), - Attrs([Attr("address","0x65C"), Attr("insn","adrp x0, #65536")]), - Var("R0",Imm(64)), Int(65536,64)), Def(Tid(519, "%00000207"), - Attrs([Attr("address","0x660"), Attr("insn","ldr x0, [x0, #0xff0]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(4080,64)),LittleEndian(),64)), -Def(Tid(524, "%0000020c"), Attrs([Attr("address","0x664"), -Attr("insn","mov x3, #0x0")]), Var("R3",Imm(64)), Int(0,64)), -Def(Tid(529, "%00000211"), Attrs([Attr("address","0x668"), -Attr("insn","mov x4, #0x0")]), Var("R4",Imm(64)), Int(0,64)), -Def(Tid(534, "%00000216"), Attrs([Attr("address","0x66C"), -Attr("insn","bl #-0xac")]), Var("R30",Imm(64)), Int(1648,64))]), -Jmps([Call(Tid(537, "%00000219"), Attrs([Attr("address","0x66C"), -Attr("insn","bl #-0xac")]), Int(1,1), -(Direct(Tid(1_471, "@__libc_start_main")),Direct(Tid(539, "%0000021b"))))])), -Blk(Tid(539, "%0000021b"), Attrs([Attr("address","0x670")]), Phis([]), -Defs([Def(Tid(542, "%0000021e"), Attrs([Attr("address","0x670"), -Attr("insn","bl #-0x80")]), Var("R30",Imm(64)), Int(1652,64))]), -Jmps([Call(Tid(545, "%00000221"), Attrs([Attr("address","0x670"), -Attr("insn","bl #-0x80")]), Int(1,1), -(Direct(Tid(1_477, "@abort")),Direct(Tid(1_511, "%000005e7"))))])), -Blk(Tid(1_511, "%000005e7"), Attrs([]), Phis([]), Defs([]), -Jmps([Call(Tid(1_512, "%000005e8"), Attrs([]), Int(1,1), -(Direct(Tid(1_478, "@call_weak_fn")),))]))])), Sub(Tid(1_477, "@abort"), - Attrs([Attr("noreturn","()"), Attr("c.proto","void (*)(void)"), -Attr("address","0x5F0"), Attr("stub","()")]), "abort", Args([]), -Blks([Blk(Tid(543, "@abort"), Attrs([Attr("address","0x5F0")]), Phis([]), -Defs([Def(Tid(1_154, "%00000482"), Attrs([Attr("address","0x5F0"), -Attr("insn","adrp x16, #65536")]), Var("R16",Imm(64)), Int(65536,64)), -Def(Tid(1_161, "%00000489"), Attrs([Attr("address","0x5F4"), -Attr("insn","ldr x17, [x16, #0xfc8]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(4040,64)),LittleEndian(),64)), -Def(Tid(1_167, "%0000048f"), Attrs([Attr("address","0x5F8"), -Attr("insn","add x16, x16, #0xfc8")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(4040,64)))]), Jmps([Call(Tid(1_172, "%00000494"), - Attrs([Attr("address","0x5FC"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), Sub(Tid(1_478, "@call_weak_fn"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x674")]), - "call_weak_fn", Args([Arg(Tid(1_531, "%000005fb"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("call_weak_fn_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(547, "@call_weak_fn"), - Attrs([Attr("address","0x674")]), Phis([]), Defs([Def(Tid(550, "%00000226"), - Attrs([Attr("address","0x674"), Attr("insn","adrp x0, #65536")]), - Var("R0",Imm(64)), Int(65536,64)), Def(Tid(557, "%0000022d"), - Attrs([Attr("address","0x678"), Attr("insn","ldr x0, [x0, #0xfe8]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(4072,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(563, "%00000233"), Attrs([Attr("address","0x67C"), -Attr("insn","cbz x0, #0x8")]), EQ(Var("R0",Imm(64)),Int(0,64)), -Direct(Tid(561, "%00000231"))), Goto(Tid(1_513, "%000005e9"), Attrs([]), - Int(1,1), Direct(Tid(913, "%00000391")))])), Blk(Tid(561, "%00000231"), - Attrs([Attr("address","0x684")]), Phis([]), Defs([]), -Jmps([Call(Tid(569, "%00000239"), Attrs([Attr("address","0x684"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))])), -Blk(Tid(913, "%00000391"), Attrs([Attr("address","0x680")]), Phis([]), -Defs([]), Jmps([Goto(Tid(916, "%00000394"), Attrs([Attr("address","0x680"), -Attr("insn","b #-0xa0")]), Int(1,1), Direct(Tid(914, "@__gmon_start__")))])), -Blk(Tid(914, "@__gmon_start__"), Attrs([Attr("address","0x5E0")]), Phis([]), -Defs([Def(Tid(1_132, "%0000046c"), Attrs([Attr("address","0x5E0"), -Attr("insn","adrp x16, #65536")]), Var("R16",Imm(64)), Int(65536,64)), -Def(Tid(1_139, "%00000473"), Attrs([Attr("address","0x5E4"), -Attr("insn","ldr x17, [x16, #0xfc0]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(4032,64)),LittleEndian(),64)), -Def(Tid(1_145, "%00000479"), Attrs([Attr("address","0x5E8"), -Attr("insn","add x16, x16, #0xfc0")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(4032,64)))]), Jmps([Call(Tid(1_150, "%0000047e"), - Attrs([Attr("address","0x5EC"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), -Sub(Tid(1_480, "@deregister_tm_clones"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x690")]), - "deregister_tm_clones", Args([Arg(Tid(1_532, "%000005fc"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("deregister_tm_clones_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(575, "@deregister_tm_clones"), - Attrs([Attr("address","0x690")]), Phis([]), Defs([Def(Tid(578, "%00000242"), - Attrs([Attr("address","0x690"), Attr("insn","adrp x0, #69632")]), - Var("R0",Imm(64)), Int(69632,64)), Def(Tid(584, "%00000248"), - Attrs([Attr("address","0x694"), Attr("insn","add x0, x0, #0x10")]), - Var("R0",Imm(64)), PLUS(Var("R0",Imm(64)),Int(16,64))), -Def(Tid(589, "%0000024d"), Attrs([Attr("address","0x698"), -Attr("insn","adrp x1, #69632")]), Var("R1",Imm(64)), Int(69632,64)), -Def(Tid(595, "%00000253"), Attrs([Attr("address","0x69C"), -Attr("insn","add x1, x1, #0x10")]), Var("R1",Imm(64)), -PLUS(Var("R1",Imm(64)),Int(16,64))), Def(Tid(601, "%00000259"), - Attrs([Attr("address","0x6A0"), Attr("insn","cmp x1, x0")]), - Var("#1",Imm(64)), NOT(Var("R0",Imm(64)))), Def(Tid(606, "%0000025e"), - Attrs([Attr("address","0x6A0"), Attr("insn","cmp x1, x0")]), - Var("#2",Imm(64)), PLUS(Var("R1",Imm(64)),NOT(Var("R0",Imm(64))))), -Def(Tid(612, "%00000264"), Attrs([Attr("address","0x6A0"), -Attr("insn","cmp x1, x0")]), Var("VF",Imm(1)), -NEQ(SIGNED(65,PLUS(Var("#2",Imm(64)),Int(1,64))),PLUS(PLUS(SIGNED(65,Var("R1",Imm(64))),SIGNED(65,Var("#1",Imm(64)))),Int(1,65)))), -Def(Tid(618, "%0000026a"), Attrs([Attr("address","0x6A0"), -Attr("insn","cmp x1, x0")]), Var("CF",Imm(1)), -NEQ(UNSIGNED(65,PLUS(Var("#2",Imm(64)),Int(1,64))),PLUS(PLUS(UNSIGNED(65,Var("R1",Imm(64))),UNSIGNED(65,Var("#1",Imm(64)))),Int(1,65)))), -Def(Tid(622, "%0000026e"), Attrs([Attr("address","0x6A0"), -Attr("insn","cmp x1, x0")]), Var("ZF",Imm(1)), -EQ(PLUS(Var("#2",Imm(64)),Int(1,64)),Int(0,64))), Def(Tid(626, "%00000272"), - Attrs([Attr("address","0x6A0"), Attr("insn","cmp x1, x0")]), - Var("NF",Imm(1)), Extract(63,63,PLUS(Var("#2",Imm(64)),Int(1,64))))]), -Jmps([Goto(Tid(632, "%00000278"), Attrs([Attr("address","0x6A4"), -Attr("insn","b.eq #0x18")]), EQ(Var("ZF",Imm(1)),Int(1,1)), -Direct(Tid(630, "%00000276"))), Goto(Tid(1_514, "%000005ea"), Attrs([]), - Int(1,1), Direct(Tid(883, "%00000373")))])), Blk(Tid(883, "%00000373"), - Attrs([Attr("address","0x6A8")]), Phis([]), Defs([Def(Tid(886, "%00000376"), - Attrs([Attr("address","0x6A8"), Attr("insn","adrp x1, #65536")]), - Var("R1",Imm(64)), Int(65536,64)), Def(Tid(893, "%0000037d"), - Attrs([Attr("address","0x6AC"), Attr("insn","ldr x1, [x1, #0xfd8]")]), - Var("R1",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R1",Imm(64)),Int(4056,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(898, "%00000382"), Attrs([Attr("address","0x6B0"), -Attr("insn","cbz x1, #0xc")]), EQ(Var("R1",Imm(64)),Int(0,64)), -Direct(Tid(630, "%00000276"))), Goto(Tid(1_515, "%000005eb"), Attrs([]), - Int(1,1), Direct(Tid(902, "%00000386")))])), Blk(Tid(630, "%00000276"), - Attrs([Attr("address","0x6BC")]), Phis([]), Defs([]), -Jmps([Call(Tid(638, "%0000027e"), Attrs([Attr("address","0x6BC"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))])), -Blk(Tid(902, "%00000386"), Attrs([Attr("address","0x6B4")]), Phis([]), -Defs([Def(Tid(906, "%0000038a"), Attrs([Attr("address","0x6B4"), -Attr("insn","mov x16, x1")]), Var("R16",Imm(64)), Var("R1",Imm(64)))]), -Jmps([Call(Tid(911, "%0000038f"), Attrs([Attr("address","0x6B8"), -Attr("insn","br x16")]), Int(1,1), (Indirect(Var("R16",Imm(64))),))]))])), -Sub(Tid(1_483, "@frame_dummy"), Attrs([Attr("c.proto","signed (*)(void)"), -Attr("address","0x750")]), "frame_dummy", Args([Arg(Tid(1_533, "%000005fd"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("frame_dummy_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(790, "@frame_dummy"), - Attrs([Attr("address","0x750")]), Phis([]), Defs([]), -Jmps([Call(Tid(792, "%00000318"), Attrs([Attr("address","0x750"), -Attr("insn","b #-0x90")]), Int(1,1), -(Direct(Tid(1_487, "@register_tm_clones")),))]))])), Sub(Tid(1_484, "@main"), - Attrs([Attr("c.proto","signed (*)(signed argc, const char** argv)"), -Attr("address","0x600"), Attr("stub","()")]), "main", - Args([Arg(Tid(1_534, "%000005fe"), Attrs([Attr("c.layout","[signed : 32]"), -Attr("c.data","Top:u32"), Attr("c.type","signed")]), - Var("main_argc",Imm(32)), LOW(32,Var("R0",Imm(64))), In()), -Arg(Tid(1_535, "%000005ff"), Attrs([Attr("c.layout","**[char : 8]"), -Attr("c.data","Top:u8 ptr ptr"), Attr("c.type"," const char**")]), - Var("main_argv",Imm(64)), Var("R1",Imm(64)), Both()), -Arg(Tid(1_536, "%00000600"), Attrs([Attr("c.layout","[signed : 32]"), -Attr("c.data","Top:u32"), Attr("c.type","signed")]), - Var("main_result",Imm(32)), LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(424, "@main"), Attrs([Attr("address","0x600")]), Phis([]), -Defs([Def(Tid(427, "%000001ab"), Attrs([Attr("address","0x600"), -Attr("insn","adrp x0, #69632")]), Var("R0",Imm(64)), Int(69632,64)), -Def(Tid(434, "%000001b2"), Attrs([Attr("address","0x604"), -Attr("insn","ldr w1, [x0, #0x14]")]), Var("R1",Imm(64)), -UNSIGNED(64,Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(20,64)),LittleEndian(),32)))]), -Jmps([Goto(Tid(441, "%000001b9"), Attrs([Attr("address","0x608"), -Attr("insn","cbnz w1, #0xc")]), - NEQ(Extract(31,0,Var("R1",Imm(64))),Int(0,32)), -Direct(Tid(439, "%000001b7"))), Goto(Tid(1_516, "%000005ec"), Attrs([]), - Int(1,1), Direct(Tid(918, "%00000396")))])), Blk(Tid(918, "%00000396"), - Attrs([Attr("address","0x60C")]), Phis([]), Defs([Def(Tid(921, "%00000399"), - Attrs([Attr("address","0x60C"), Attr("insn","mov w1, #0x1")]), - Var("R1",Imm(64)), Int(1,64)), Def(Tid(929, "%000003a1"), - Attrs([Attr("address","0x610"), Attr("insn","str w1, [x0, #0x14]")]), - Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(20,64)),Extract(31,0,Var("R1",Imm(64))),LittleEndian(),32))]), -Jmps([Goto(Tid(1_517, "%000005ed"), Attrs([]), Int(1,1), -Direct(Tid(439, "%000001b7")))])), Blk(Tid(439, "%000001b7"), - Attrs([Attr("address","0x614")]), Phis([]), Defs([Def(Tid(447, "%000001bf"), - Attrs([Attr("address","0x614"), Attr("insn","mov w0, #0x0")]), - Var("R0",Imm(64)), Int(0,64))]), Jmps([Call(Tid(452, "%000001c4"), - Attrs([Attr("address","0x618"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), -Sub(Tid(1_487, "@register_tm_clones"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x6C0")]), - "register_tm_clones", Args([Arg(Tid(1_537, "%00000601"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("register_tm_clones_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(640, "@register_tm_clones"), Attrs([Attr("address","0x6C0")]), - Phis([]), Defs([Def(Tid(643, "%00000283"), Attrs([Attr("address","0x6C0"), -Attr("insn","adrp x0, #69632")]), Var("R0",Imm(64)), Int(69632,64)), -Def(Tid(649, "%00000289"), Attrs([Attr("address","0x6C4"), -Attr("insn","add x0, x0, #0x10")]), Var("R0",Imm(64)), -PLUS(Var("R0",Imm(64)),Int(16,64))), Def(Tid(654, "%0000028e"), - Attrs([Attr("address","0x6C8"), Attr("insn","adrp x1, #69632")]), - Var("R1",Imm(64)), Int(69632,64)), Def(Tid(660, "%00000294"), - Attrs([Attr("address","0x6CC"), Attr("insn","add x1, x1, #0x10")]), - Var("R1",Imm(64)), PLUS(Var("R1",Imm(64)),Int(16,64))), -Def(Tid(667, "%0000029b"), Attrs([Attr("address","0x6D0"), -Attr("insn","sub x1, x1, x0")]), Var("R1",Imm(64)), -PLUS(PLUS(Var("R1",Imm(64)),NOT(Var("R0",Imm(64)))),Int(1,64))), -Def(Tid(673, "%000002a1"), Attrs([Attr("address","0x6D4"), -Attr("insn","lsr x2, x1, #63")]), Var("R2",Imm(64)), -Concat(Int(0,63),Extract(63,63,Var("R1",Imm(64))))), -Def(Tid(680, "%000002a8"), Attrs([Attr("address","0x6D8"), -Attr("insn","add x1, x2, x1, asr #3")]), Var("R1",Imm(64)), -PLUS(Var("R2",Imm(64)),ARSHIFT(Var("R1",Imm(64)),Int(3,3)))), -Def(Tid(686, "%000002ae"), Attrs([Attr("address","0x6DC"), -Attr("insn","asr x1, x1, #1")]), Var("R1",Imm(64)), -SIGNED(64,Extract(63,1,Var("R1",Imm(64)))))]), -Jmps([Goto(Tid(692, "%000002b4"), Attrs([Attr("address","0x6E0"), -Attr("insn","cbz x1, #0x18")]), EQ(Var("R1",Imm(64)),Int(0,64)), -Direct(Tid(690, "%000002b2"))), Goto(Tid(1_518, "%000005ee"), Attrs([]), - Int(1,1), Direct(Tid(853, "%00000355")))])), Blk(Tid(853, "%00000355"), - Attrs([Attr("address","0x6E4")]), Phis([]), Defs([Def(Tid(856, "%00000358"), - Attrs([Attr("address","0x6E4"), Attr("insn","adrp x2, #65536")]), - Var("R2",Imm(64)), Int(65536,64)), Def(Tid(863, "%0000035f"), - Attrs([Attr("address","0x6E8"), Attr("insn","ldr x2, [x2, #0xff8]")]), - Var("R2",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R2",Imm(64)),Int(4088,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(868, "%00000364"), Attrs([Attr("address","0x6EC"), -Attr("insn","cbz x2, #0xc")]), EQ(Var("R2",Imm(64)),Int(0,64)), -Direct(Tid(690, "%000002b2"))), Goto(Tid(1_519, "%000005ef"), Attrs([]), - Int(1,1), Direct(Tid(872, "%00000368")))])), Blk(Tid(690, "%000002b2"), - Attrs([Attr("address","0x6F8")]), Phis([]), Defs([]), -Jmps([Call(Tid(698, "%000002ba"), Attrs([Attr("address","0x6F8"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))])), -Blk(Tid(872, "%00000368"), Attrs([Attr("address","0x6F0")]), Phis([]), -Defs([Def(Tid(876, "%0000036c"), Attrs([Attr("address","0x6F0"), -Attr("insn","mov x16, x2")]), Var("R16",Imm(64)), Var("R2",Imm(64)))]), -Jmps([Call(Tid(881, "%00000371"), Attrs([Attr("address","0x6F4"), -Attr("insn","br x16")]), Int(1,1), -(Indirect(Var("R16",Imm(64))),))]))]))]))) \ No newline at end of file diff --git a/src/test/correct/ifglobal/gcc_O2/ifglobal.bir b/src/test/correct/ifglobal/gcc_O2/ifglobal.bir deleted file mode 100644 index 1b2cc8928..000000000 --- a/src/test/correct/ifglobal/gcc_O2/ifglobal.bir +++ /dev/null @@ -1,235 +0,0 @@ -000005f0: program -000005ba: sub __cxa_finalize(__cxa_finalize_result) -000005f1: __cxa_finalize_result :: out u32 = low:32[R0] - -00000351: -00000456: R16 := 0x10000 -0000045d: R17 := mem[R16 + 0xFB8, el]:u64 -00000463: R16 := R16 + 0xFB8 -00000468: call R17 with noreturn - -000005bb: sub __do_global_dtors_aux(__do_global_dtors_aux_result) -000005f2: __do_global_dtors_aux_result :: out u32 = low:32[R0] - -000002be: -000002c2: #3 := R31 - 0x20 -000002c8: mem := mem with [#3, el]:u64 <- R29 -000002ce: mem := mem with [#3 + 8, el]:u64 <- R30 -000002d2: R31 := #3 -000002d8: R29 := R31 -000002e0: mem := mem with [R31 + 0x10, el]:u64 <- R19 -000002e5: R19 := 0x11000 -000002ec: R0 := pad:64[mem[R19 + 0x10]] -000002f3: when 31:0[R0] <> 0 goto %000002f1 -000005e4: goto %0000031a - -0000031a: -0000031d: R0 := 0x10000 -00000324: R0 := mem[R0 + 0xFE0, el]:u64 -0000032a: when R0 = 0 goto %00000328 -000005e5: goto %00000341 - -00000341: -00000344: R0 := 0x11000 -0000034b: R0 := mem[R0 + 8, el]:u64 -00000350: R30 := 0x730 -00000353: call @__cxa_finalize with return %00000328 - -00000328: -00000330: R30 := 0x734 -00000332: call @deregister_tm_clones with return %00000334 - -00000334: -00000337: R0 := 1 -0000033f: mem := mem with [R19 + 0x10] <- 7:0[R0] -000005e6: goto %000002f1 - -000002f1: -000002fb: R19 := mem[R31 + 0x10, el]:u64 -00000302: R29 := mem[R31, el]:u64 -00000307: R30 := mem[R31 + 8, el]:u64 -0000030b: R31 := R31 + 0x20 -00000310: call R30 with noreturn - -000005bf: sub __libc_start_main(__libc_start_main_main, __libc_start_main_arg2, __libc_start_main_arg3, __libc_start_main_auxv, __libc_start_main_result) -000005f3: __libc_start_main_main :: in u64 = R0 -000005f4: __libc_start_main_arg2 :: in u32 = low:32[R1] -000005f5: __libc_start_main_arg3 :: in out u64 = R2 -000005f6: __libc_start_main_auxv :: in out u64 = R3 -000005f7: __libc_start_main_result :: out u32 = low:32[R0] - -00000217: -00000440: R16 := 0x10000 -00000447: R17 := mem[R16 + 0xFB0, el]:u64 -0000044d: R16 := R16 + 0xFB0 -00000452: call R17 with noreturn - -000005c0: sub _fini(_fini_result) -000005f8: _fini_result :: out u32 = low:32[R0] - -0000001f: -00000025: #0 := R31 - 0x10 -0000002b: mem := mem with [#0, el]:u64 <- R29 -00000031: mem := mem with [#0 + 8, el]:u64 <- R30 -00000035: R31 := #0 -0000003b: R29 := R31 -00000042: R29 := mem[R31, el]:u64 -00000047: R30 := mem[R31 + 8, el]:u64 -0000004b: R31 := R31 + 0x10 -00000050: call R30 with noreturn - -000005c1: sub _init(_init_result) -000005f9: _init_result :: out u32 = low:32[R0] - -0000050c: -00000512: #5 := R31 - 0x10 -00000518: mem := mem with [#5, el]:u64 <- R29 -0000051e: mem := mem with [#5 + 8, el]:u64 <- R30 -00000522: R31 := #5 -00000528: R29 := R31 -0000052d: R30 := 0x590 -0000052f: call @call_weak_fn with return %00000531 - -00000531: -00000536: R29 := mem[R31, el]:u64 -0000053b: R30 := mem[R31 + 8, el]:u64 -0000053f: R31 := R31 + 0x10 -00000544: call R30 with noreturn - -000005c2: sub _start(_start_result) -000005fa: _start_result :: out u32 = low:32[R0] - -000001d8: -000001dd: R29 := 0 -000001e2: R30 := 0 -000001e8: R5 := R0 -000001ef: R1 := mem[R31, el]:u64 -000001f5: R2 := R31 + 8 -000001fb: R6 := R31 -00000200: R0 := 0x10000 -00000207: R0 := mem[R0 + 0xFF0, el]:u64 -0000020c: R3 := 0 -00000211: R4 := 0 -00000216: R30 := 0x670 -00000219: call @__libc_start_main with return %0000021b - -0000021b: -0000021e: R30 := 0x674 -00000221: call @abort with return %000005e7 - -000005e7: -000005e8: call @call_weak_fn with noreturn - -000005c5: sub abort() - - -0000021f: -00000482: R16 := 0x10000 -00000489: R17 := mem[R16 + 0xFC8, el]:u64 -0000048f: R16 := R16 + 0xFC8 -00000494: call R17 with noreturn - -000005c6: sub call_weak_fn(call_weak_fn_result) -000005fb: call_weak_fn_result :: out u32 = low:32[R0] - -00000223: -00000226: R0 := 0x10000 -0000022d: R0 := mem[R0 + 0xFE8, el]:u64 -00000233: when R0 = 0 goto %00000231 -000005e9: goto %00000391 - -00000231: -00000239: call R30 with noreturn - -00000391: -00000394: goto @__gmon_start__ - -00000392: -0000046c: R16 := 0x10000 -00000473: R17 := mem[R16 + 0xFC0, el]:u64 -00000479: R16 := R16 + 0xFC0 -0000047e: call R17 with noreturn - -000005c8: sub deregister_tm_clones(deregister_tm_clones_result) -000005fc: deregister_tm_clones_result :: out u32 = low:32[R0] - -0000023f: -00000242: R0 := 0x11000 -00000248: R0 := R0 + 0x10 -0000024d: R1 := 0x11000 -00000253: R1 := R1 + 0x10 -00000259: #1 := ~R0 -0000025e: #2 := R1 + ~R0 -00000264: VF := extend:65[#2 + 1] <> extend:65[R1] + extend:65[#1] + 1 -0000026a: CF := pad:65[#2 + 1] <> pad:65[R1] + pad:65[#1] + 1 -0000026e: ZF := #2 + 1 = 0 -00000272: NF := 63:63[#2 + 1] -00000278: when ZF goto %00000276 -000005ea: goto %00000373 - -00000373: -00000376: R1 := 0x10000 -0000037d: R1 := mem[R1 + 0xFD8, el]:u64 -00000382: when R1 = 0 goto %00000276 -000005eb: goto %00000386 - -00000276: -0000027e: call R30 with noreturn - -00000386: -0000038a: R16 := R1 -0000038f: call R16 with noreturn - -000005cb: sub frame_dummy(frame_dummy_result) -000005fd: frame_dummy_result :: out u32 = low:32[R0] - -00000316: -00000318: call @register_tm_clones with noreturn - -000005cc: sub main(main_argc, main_argv, main_result) -000005fe: main_argc :: in u32 = low:32[R0] -000005ff: main_argv :: in out u64 = R1 -00000600: main_result :: out u32 = low:32[R0] - -000001a8: -000001ab: R0 := 0x11000 -000001b2: R1 := pad:64[mem[R0 + 0x14, el]:u32] -000001b9: when 31:0[R1] <> 0 goto %000001b7 -000005ec: goto %00000396 - -00000396: -00000399: R1 := 1 -000003a1: mem := mem with [R0 + 0x14, el]:u32 <- 31:0[R1] -000005ed: goto %000001b7 - -000001b7: -000001bf: R0 := 0 -000001c4: call R30 with noreturn - -000005cf: sub register_tm_clones(register_tm_clones_result) -00000601: register_tm_clones_result :: out u32 = low:32[R0] - -00000280: -00000283: R0 := 0x11000 -00000289: R0 := R0 + 0x10 -0000028e: R1 := 0x11000 -00000294: R1 := R1 + 0x10 -0000029b: R1 := R1 + ~R0 + 1 -000002a1: R2 := 0.63:63[R1] -000002a8: R1 := R2 + (R1 ~>> 3) -000002ae: R1 := extend:64[63:1[R1]] -000002b4: when R1 = 0 goto %000002b2 -000005ee: goto %00000355 - -00000355: -00000358: R2 := 0x10000 -0000035f: R2 := mem[R2 + 0xFF8, el]:u64 -00000364: when R2 = 0 goto %000002b2 -000005ef: goto %00000368 - -000002b2: -000002ba: call R30 with noreturn - -00000368: -0000036c: R16 := R2 -00000371: call R16 with noreturn diff --git a/src/test/correct/ifglobal/gcc_O2/ifglobal.expected b/src/test/correct/ifglobal/gcc_O2/ifglobal.expected index 1412e3ec6..45bdfc21c 100644 --- a/src/test/correct/ifglobal/gcc_O2/ifglobal.expected +++ b/src/test/correct/ifglobal/gcc_O2/ifglobal.expected @@ -60,7 +60,7 @@ procedure {:extern} rely_reflexive(); procedure {:extern} guarantee_reflexive(); modifies Gamma_mem, mem; -procedure main_1536(); +procedure main(); modifies Gamma_R0, Gamma_R1, Gamma_mem, R0, R1, mem; free requires (memory_load64_le(mem, 69632bv64) == 0bv64); free requires (memory_load64_le(mem, 69640bv64) == 69640bv64); @@ -75,40 +75,40 @@ procedure main_1536(); free ensures (memory_load64_le(mem, 69616bv64) == 1536bv64); free ensures (memory_load64_le(mem, 69640bv64) == 69640bv64); -implementation main_1536() +implementation main() { - var Gamma_load18: bool; - var load18: bv32; + var $load$18: bv32; + var Gamma_$load$18: bool; lmain: assume {:captureState "lmain"} true; R0, Gamma_R0 := 69632bv64, true; call rely(); - load18, Gamma_load18 := memory_load32_le(mem, bvadd64(R0, 20bv64)), (gamma_load32(Gamma_mem, bvadd64(R0, 20bv64)) || L(mem, bvadd64(R0, 20bv64))); - R1, Gamma_R1 := zero_extend32_32(load18), Gamma_load18; + $load$18, Gamma_$load$18 := memory_load32_le(mem, bvadd64(R0, 20bv64)), (gamma_load32(Gamma_mem, bvadd64(R0, 20bv64)) || L(mem, bvadd64(R0, 20bv64))); + R1, Gamma_R1 := zero_extend32_32($load$18), Gamma_$load$18; assert Gamma_R1; goto lmain_goto_l000001b7, lmain_goto_l00000396; - lmain_goto_l00000396: - assume {:captureState "lmain_goto_l00000396"} true; - assume (bvnot1(bvcomp32(R1[32:0], 0bv32)) == 0bv1); + l00000396: + assume {:captureState "l00000396"} true; R1, Gamma_R1 := 1bv64, true; call rely(); assert (L(mem, bvadd64(R0, 20bv64)) ==> Gamma_R1); mem, Gamma_mem := memory_store32_le(mem, bvadd64(R0, 20bv64), R1[32:0]), gamma_store32(Gamma_mem, bvadd64(R0, 20bv64), Gamma_R1); assume {:captureState "%000003a1"} true; - goto l00000396; - l00000396: - assume {:captureState "l00000396"} true; goto l000001b7; + l000001b7: + assume {:captureState "l000001b7"} true; + R0, Gamma_R0 := 0bv64, true; + goto main_basil_return; lmain_goto_l000001b7: assume {:captureState "lmain_goto_l000001b7"} true; assume (bvnot1(bvcomp32(R1[32:0], 0bv32)) != 0bv1); goto l000001b7; - l000001b7: - assume {:captureState "l000001b7"} true; - R0, Gamma_R0 := 0bv64, true; - goto main_1536_basil_return; - main_1536_basil_return: - assume {:captureState "main_1536_basil_return"} true; + lmain_goto_l00000396: + assume {:captureState "lmain_goto_l00000396"} true; + assume (bvnot1(bvcomp32(R1[32:0], 0bv32)) == 0bv1); + goto l00000396; + main_basil_return: + assume {:captureState "main_basil_return"} true; return; } diff --git a/src/test/correct/ifglobal/gcc_O2/ifglobal.gts b/src/test/correct/ifglobal/gcc_O2/ifglobal.gts deleted file mode 100644 index 418056f14..000000000 Binary files a/src/test/correct/ifglobal/gcc_O2/ifglobal.gts and /dev/null differ diff --git a/src/test/correct/ifglobal/gcc_O2/ifglobal.md5sum b/src/test/correct/ifglobal/gcc_O2/ifglobal.md5sum new file mode 100644 index 000000000..da497839a --- /dev/null +++ b/src/test/correct/ifglobal/gcc_O2/ifglobal.md5sum @@ -0,0 +1,5 @@ +a81324e2b302e5924e603dc449d69da8 correct/ifglobal/gcc_O2/a.out +5fd2e26ae60e15d8bb6a60c1f55949c4 correct/ifglobal/gcc_O2/ifglobal.adt +e1f4b04012e9cc1496785df4c7010ec7 correct/ifglobal/gcc_O2/ifglobal.bir +5a5f54276a7a05c5a86182231de563f1 correct/ifglobal/gcc_O2/ifglobal.relf +7d3b132d51db2e807ef5afa5b36e40b9 correct/ifglobal/gcc_O2/ifglobal.gts diff --git a/src/test/correct/ifglobal/gcc_O2/ifglobal.relf b/src/test/correct/ifglobal/gcc_O2/ifglobal.relf deleted file mode 100644 index 61b21b37a..000000000 --- a/src/test/correct/ifglobal/gcc_O2/ifglobal.relf +++ /dev/null @@ -1,121 +0,0 @@ - -Relocation section '.rela.dyn' at offset 0x460 contains 8 entries: - Offset Info Type Symbol's Value Symbol's Name + Addend -0000000000010d98 0000000000000403 R_AARCH64_RELATIVE 750 -0000000000010da0 0000000000000403 R_AARCH64_RELATIVE 700 -0000000000010ff0 0000000000000403 R_AARCH64_RELATIVE 600 -0000000000011008 0000000000000403 R_AARCH64_RELATIVE 11008 -0000000000010fd8 0000000400000401 R_AARCH64_GLOB_DAT 0000000000000000 _ITM_deregisterTMCloneTable + 0 -0000000000010fe0 0000000500000401 R_AARCH64_GLOB_DAT 0000000000000000 __cxa_finalize@GLIBC_2.17 + 0 -0000000000010fe8 0000000600000401 R_AARCH64_GLOB_DAT 0000000000000000 __gmon_start__ + 0 -0000000000010ff8 0000000800000401 R_AARCH64_GLOB_DAT 0000000000000000 _ITM_registerTMCloneTable + 0 - -Relocation section '.rela.plt' at offset 0x520 contains 4 entries: - Offset Info Type Symbol's Value Symbol's Name + Addend -0000000000010fb0 0000000300000402 R_AARCH64_JUMP_SLOT 0000000000000000 __libc_start_main@GLIBC_2.34 + 0 -0000000000010fb8 0000000500000402 R_AARCH64_JUMP_SLOT 0000000000000000 __cxa_finalize@GLIBC_2.17 + 0 -0000000000010fc0 0000000600000402 R_AARCH64_JUMP_SLOT 0000000000000000 __gmon_start__ + 0 -0000000000010fc8 0000000700000402 R_AARCH64_JUMP_SLOT 0000000000000000 abort@GLIBC_2.17 + 0 - -Symbol table '.dynsym' contains 9 entries: - Num: Value Size Type Bind Vis Ndx Name - 0: 0000000000000000 0 NOTYPE LOCAL DEFAULT UND - 1: 0000000000000580 0 SECTION LOCAL DEFAULT 11 .init - 2: 0000000000011000 0 SECTION LOCAL DEFAULT 22 .data - 3: 0000000000000000 0 FUNC GLOBAL DEFAULT UND __libc_start_main@GLIBC_2.34 (2) - 4: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_deregisterTMCloneTable - 5: 0000000000000000 0 FUNC WEAK DEFAULT UND __cxa_finalize@GLIBC_2.17 (3) - 6: 0000000000000000 0 NOTYPE WEAK DEFAULT UND __gmon_start__ - 7: 0000000000000000 0 FUNC GLOBAL DEFAULT UND abort@GLIBC_2.17 (3) - 8: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_registerTMCloneTable - -Symbol table '.symtab' contains 88 entries: - Num: Value Size Type Bind Vis Ndx Name - 0: 0000000000000000 0 NOTYPE LOCAL DEFAULT UND - 1: 0000000000000238 0 SECTION LOCAL DEFAULT 1 .interp - 2: 0000000000000254 0 SECTION LOCAL DEFAULT 2 .note.gnu.build-id - 3: 0000000000000278 0 SECTION LOCAL DEFAULT 3 .note.ABI-tag - 4: 0000000000000298 0 SECTION LOCAL DEFAULT 4 .gnu.hash - 5: 00000000000002b8 0 SECTION LOCAL DEFAULT 5 .dynsym - 6: 0000000000000390 0 SECTION LOCAL DEFAULT 6 .dynstr - 7: 000000000000041e 0 SECTION LOCAL DEFAULT 7 .gnu.version - 8: 0000000000000430 0 SECTION LOCAL DEFAULT 8 .gnu.version_r - 9: 0000000000000460 0 SECTION LOCAL DEFAULT 9 .rela.dyn - 10: 0000000000000520 0 SECTION LOCAL DEFAULT 10 .rela.plt - 11: 0000000000000580 0 SECTION LOCAL DEFAULT 11 .init - 12: 00000000000005a0 0 SECTION LOCAL DEFAULT 12 .plt - 13: 0000000000000600 0 SECTION LOCAL DEFAULT 13 .text - 14: 0000000000000754 0 SECTION LOCAL DEFAULT 14 .fini - 15: 0000000000000768 0 SECTION LOCAL DEFAULT 15 .rodata - 16: 000000000000076c 0 SECTION LOCAL DEFAULT 16 .eh_frame_hdr - 17: 00000000000007a8 0 SECTION LOCAL DEFAULT 17 .eh_frame - 18: 0000000000010d98 0 SECTION LOCAL DEFAULT 18 .init_array - 19: 0000000000010da0 0 SECTION LOCAL DEFAULT 19 .fini_array - 20: 0000000000010da8 0 SECTION LOCAL DEFAULT 20 .dynamic - 21: 0000000000010f98 0 SECTION LOCAL DEFAULT 21 .got - 22: 0000000000011000 0 SECTION LOCAL DEFAULT 22 .data - 23: 0000000000011010 0 SECTION LOCAL DEFAULT 23 .bss - 24: 0000000000000000 0 SECTION LOCAL DEFAULT 24 .comment - 25: 0000000000000000 0 FILE LOCAL DEFAULT ABS Scrt1.o - 26: 0000000000000278 0 NOTYPE LOCAL DEFAULT 3 $d - 27: 0000000000000278 32 OBJECT LOCAL DEFAULT 3 __abi_tag - 28: 0000000000000640 0 NOTYPE LOCAL DEFAULT 13 $x - 29: 00000000000007bc 0 NOTYPE LOCAL DEFAULT 17 $d - 30: 0000000000000768 0 NOTYPE LOCAL DEFAULT 15 $d - 31: 0000000000000000 0 FILE LOCAL DEFAULT ABS crti.o - 32: 0000000000000674 0 NOTYPE LOCAL DEFAULT 13 $x - 33: 0000000000000674 20 FUNC LOCAL DEFAULT 13 call_weak_fn - 34: 0000000000000580 0 NOTYPE LOCAL DEFAULT 11 $x - 35: 0000000000000754 0 NOTYPE LOCAL DEFAULT 14 $x - 36: 0000000000000000 0 FILE LOCAL DEFAULT ABS crtn.o - 37: 0000000000000590 0 NOTYPE LOCAL DEFAULT 11 $x - 38: 0000000000000760 0 NOTYPE LOCAL DEFAULT 14 $x - 39: 0000000000000000 0 FILE LOCAL DEFAULT ABS ifglobal.c - 40: 0000000000000600 0 NOTYPE LOCAL DEFAULT 13 $x - 41: 0000000000011014 0 NOTYPE LOCAL DEFAULT 23 $d - 42: 0000000000000830 0 NOTYPE LOCAL DEFAULT 17 $d - 43: 0000000000000000 0 FILE LOCAL DEFAULT ABS crtstuff.c - 44: 0000000000000690 0 NOTYPE LOCAL DEFAULT 13 $x - 45: 0000000000000690 0 FUNC LOCAL DEFAULT 13 deregister_tm_clones - 46: 00000000000006c0 0 FUNC LOCAL DEFAULT 13 register_tm_clones - 47: 0000000000011008 0 NOTYPE LOCAL DEFAULT 22 $d - 48: 0000000000000700 0 FUNC LOCAL DEFAULT 13 __do_global_dtors_aux - 49: 0000000000011010 1 OBJECT LOCAL DEFAULT 23 completed.0 - 50: 0000000000010da0 0 NOTYPE LOCAL DEFAULT 19 $d - 51: 0000000000010da0 0 OBJECT LOCAL DEFAULT 19 __do_global_dtors_aux_fini_array_entry - 52: 0000000000000750 0 FUNC LOCAL DEFAULT 13 frame_dummy - 53: 0000000000010d98 0 NOTYPE LOCAL DEFAULT 18 $d - 54: 0000000000010d98 0 OBJECT LOCAL DEFAULT 18 __frame_dummy_init_array_entry - 55: 00000000000007d0 0 NOTYPE LOCAL DEFAULT 17 $d - 56: 0000000000011010 0 NOTYPE LOCAL DEFAULT 23 $d - 57: 0000000000000000 0 FILE LOCAL DEFAULT ABS crtstuff.c - 58: 0000000000000844 0 NOTYPE LOCAL DEFAULT 17 $d - 59: 0000000000000844 0 OBJECT LOCAL DEFAULT 17 __FRAME_END__ - 60: 0000000000000000 0 FILE LOCAL DEFAULT ABS - 61: 0000000000010da8 0 OBJECT LOCAL DEFAULT ABS _DYNAMIC - 62: 000000000000076c 0 NOTYPE LOCAL DEFAULT 16 __GNU_EH_FRAME_HDR - 63: 0000000000010fd0 0 OBJECT LOCAL DEFAULT ABS _GLOBAL_OFFSET_TABLE_ - 64: 00000000000005a0 0 NOTYPE LOCAL DEFAULT 12 $x - 65: 0000000000000000 0 FUNC GLOBAL DEFAULT UND __libc_start_main@GLIBC_2.34 - 66: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_deregisterTMCloneTable - 67: 0000000000011000 0 NOTYPE WEAK DEFAULT 22 data_start - 68: 0000000000011010 0 NOTYPE GLOBAL DEFAULT 23 __bss_start__ - 69: 0000000000000000 0 FUNC WEAK DEFAULT UND __cxa_finalize@GLIBC_2.17 - 70: 0000000000011018 0 NOTYPE GLOBAL DEFAULT 23 _bss_end__ - 71: 0000000000011010 0 NOTYPE GLOBAL DEFAULT 22 _edata - 72: 0000000000011014 4 OBJECT GLOBAL DEFAULT 23 x - 73: 0000000000000754 0 FUNC GLOBAL HIDDEN 14 _fini - 74: 0000000000011018 0 NOTYPE GLOBAL DEFAULT 23 __bss_end__ - 75: 0000000000011000 0 NOTYPE GLOBAL DEFAULT 22 __data_start - 76: 0000000000000000 0 NOTYPE WEAK DEFAULT UND __gmon_start__ - 77: 0000000000011008 0 OBJECT GLOBAL HIDDEN 22 __dso_handle - 78: 0000000000000000 0 FUNC GLOBAL DEFAULT UND abort@GLIBC_2.17 - 79: 0000000000000768 4 OBJECT GLOBAL DEFAULT 15 _IO_stdin_used - 80: 0000000000011018 0 NOTYPE GLOBAL DEFAULT 23 _end - 81: 0000000000000640 52 FUNC GLOBAL DEFAULT 13 _start - 82: 0000000000011018 0 NOTYPE GLOBAL DEFAULT 23 __end__ - 83: 0000000000011010 0 NOTYPE GLOBAL DEFAULT 23 __bss_start - 84: 0000000000000600 28 FUNC GLOBAL DEFAULT 13 main - 85: 0000000000011010 0 OBJECT GLOBAL HIDDEN 22 __TMC_END__ - 86: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_registerTMCloneTable - 87: 0000000000000580 0 FUNC GLOBAL HIDDEN 11 _init diff --git a/src/test/correct/ifglobal/gcc_O2/ifglobal_gtirb.expected b/src/test/correct/ifglobal/gcc_O2/ifglobal_gtirb.expected index f68bf2e4e..035a88640 100644 --- a/src/test/correct/ifglobal/gcc_O2/ifglobal_gtirb.expected +++ b/src/test/correct/ifglobal/gcc_O2/ifglobal_gtirb.expected @@ -58,7 +58,7 @@ procedure {:extern} rely_reflexive(); procedure {:extern} guarantee_reflexive(); modifies Gamma_mem, mem; -procedure main_1536(); +procedure main(); modifies Gamma_R0, Gamma_R1, Gamma_mem, R0, R1, mem; free requires (memory_load64_le(mem, 69632bv64) == 0bv64); free requires (memory_load64_le(mem, 69640bv64) == 69640bv64); @@ -73,40 +73,40 @@ procedure main_1536(); free ensures (memory_load64_le(mem, 69616bv64) == 1536bv64); free ensures (memory_load64_le(mem, 69640bv64) == 69640bv64); -implementation main_1536() +implementation main() { - var Gamma_load1: bool; - var load1: bv32; - main_1536__0__ggTiniswTki0OuJx7AXB6A: - assume {:captureState "main_1536__0__ggTiniswTki0OuJx7AXB6A"} true; + var $load1: bv32; + var Gamma_$load1: bool; + $main$__0__$ggTiniswTki0OuJx7AXB6A: + assume {:captureState "$main$__0__$ggTiniswTki0OuJx7AXB6A"} true; R0, Gamma_R0 := 69632bv64, true; call rely(); - load1, Gamma_load1 := memory_load32_le(mem, bvadd64(R0, 20bv64)), (gamma_load32(Gamma_mem, bvadd64(R0, 20bv64)) || L(mem, bvadd64(R0, 20bv64))); - R1, Gamma_R1 := zero_extend32_32(load1), Gamma_load1; + $load1, Gamma_$load1 := memory_load32_le(mem, bvadd64(R0, 20bv64)), (gamma_load32(Gamma_mem, bvadd64(R0, 20bv64)) || L(mem, bvadd64(R0, 20bv64))); + R1, Gamma_R1 := zero_extend32_32($load1), Gamma_$load1; assert Gamma_R1; - goto main_1536__0__ggTiniswTki0OuJx7AXB6A_goto_main_1536__2__bRJzoNVcSf~geSM2_j94rg, main_1536__0__ggTiniswTki0OuJx7AXB6A_goto_main_1536__1__TcEobJ5CQB~dL48wnkCobA; - main_1536__0__ggTiniswTki0OuJx7AXB6A_goto_main_1536__1__TcEobJ5CQB~dL48wnkCobA: - assume {:captureState "main_1536__0__ggTiniswTki0OuJx7AXB6A_goto_main_1536__1__TcEobJ5CQB~dL48wnkCobA"} true; - assume (!((R1[32:0] == 0bv32) == false)); + goto $main$__0__$ggTiniswTki0OuJx7AXB6A_goto_$main$__2__$bRJzoNVcSf~geSM2_j94rg, $main$__0__$ggTiniswTki0OuJx7AXB6A_goto_$main$__1__$TcEobJ5CQB~dL48wnkCobA; + $main$__1__$TcEobJ5CQB~dL48wnkCobA: + assume {:captureState "$main$__1__$TcEobJ5CQB~dL48wnkCobA"} true; R1, Gamma_R1 := 1bv64, true; call rely(); assert (L(mem, bvadd64(R0, 20bv64)) ==> Gamma_R1); mem, Gamma_mem := memory_store32_le(mem, bvadd64(R0, 20bv64), R1[32:0]), gamma_store32(Gamma_mem, bvadd64(R0, 20bv64), Gamma_R1); - assume {:captureState "1552_0"} true; - goto main_1536__1__TcEobJ5CQB~dL48wnkCobA; - main_1536__1__TcEobJ5CQB~dL48wnkCobA: - assume {:captureState "main_1536__1__TcEobJ5CQB~dL48wnkCobA"} true; - goto main_1536__2__bRJzoNVcSf~geSM2_j94rg; - main_1536__0__ggTiniswTki0OuJx7AXB6A_goto_main_1536__2__bRJzoNVcSf~geSM2_j94rg: - assume {:captureState "main_1536__0__ggTiniswTki0OuJx7AXB6A_goto_main_1536__2__bRJzoNVcSf~geSM2_j94rg"} true; - assume ((R1[32:0] == 0bv32) == false); - goto main_1536__2__bRJzoNVcSf~geSM2_j94rg; - main_1536__2__bRJzoNVcSf~geSM2_j94rg: - assume {:captureState "main_1536__2__bRJzoNVcSf~geSM2_j94rg"} true; + assume {:captureState "1552$0"} true; + goto $main$__2__$bRJzoNVcSf~geSM2_j94rg; + $main$__2__$bRJzoNVcSf~geSM2_j94rg: + assume {:captureState "$main$__2__$bRJzoNVcSf~geSM2_j94rg"} true; R0, Gamma_R0 := 0bv64, true; - goto main_1536_basil_return; - main_1536_basil_return: - assume {:captureState "main_1536_basil_return"} true; + goto main_basil_return; + $main$__0__$ggTiniswTki0OuJx7AXB6A_goto_$main$__2__$bRJzoNVcSf~geSM2_j94rg: + assume {:captureState "$main$__0__$ggTiniswTki0OuJx7AXB6A_goto_$main$__2__$bRJzoNVcSf~geSM2_j94rg"} true; + assume ((R1[32:0] == 0bv32) == false); + goto $main$__2__$bRJzoNVcSf~geSM2_j94rg; + $main$__0__$ggTiniswTki0OuJx7AXB6A_goto_$main$__1__$TcEobJ5CQB~dL48wnkCobA: + assume {:captureState "$main$__0__$ggTiniswTki0OuJx7AXB6A_goto_$main$__1__$TcEobJ5CQB~dL48wnkCobA"} true; + assume (!((R1[32:0] == 0bv32) == false)); + goto $main$__1__$TcEobJ5CQB~dL48wnkCobA; + main_basil_return: + assume {:captureState "main_basil_return"} true; return; } diff --git a/src/test/correct/ifglobal/gcc_pic/ifglobal.adt b/src/test/correct/ifglobal/gcc_pic/ifglobal.adt deleted file mode 100644 index d2dfd991b..000000000 --- a/src/test/correct/ifglobal/gcc_pic/ifglobal.adt +++ /dev/null @@ -1,525 +0,0 @@ -Project(Attrs([Attr("filename","\"gcc_pic/ifglobal.out\""), -Attr("image-specification","(declare abi (name str))\n(declare arch (name str))\n(declare base-address (addr int))\n(declare bias (off int))\n(declare bits (size int))\n(declare code-region (addr int) (size int) (off int))\n(declare code-start (addr int))\n(declare entry-point (addr int))\n(declare external-reference (addr int) (name str))\n(declare format (name str))\n(declare is-executable (flag bool))\n(declare is-little-endian (flag bool))\n(declare llvm:base-address (addr int))\n(declare llvm:code-entry (name str) (off int) (size int))\n(declare llvm:coff-import-library (name str))\n(declare llvm:coff-virtual-section-header (name str) (addr int) (size int))\n(declare llvm:elf-program-header (name str) (off int) (size int))\n(declare llvm:elf-program-header-flags (name str) (ld bool) (r bool) \n (w bool) (x bool))\n(declare llvm:elf-virtual-program-header (name str) (addr int) (size int))\n(declare llvm:entry-point (addr int))\n(declare llvm:macho-symbol (name str) (value int))\n(declare llvm:name-reference (at int) (name str))\n(declare llvm:relocation (at int) (addr int))\n(declare llvm:section-entry (name str) (addr int) (size int) (off int))\n(declare llvm:section-flags (name str) (r bool) (w bool) (x bool))\n(declare llvm:segment-command (name str) (off int) (size int))\n(declare llvm:segment-command-flags (name str) (r bool) (w bool) (x bool))\n(declare llvm:symbol-entry (name str) (addr int) (size int) (off int)\n (value int))\n(declare llvm:virtual-segment-command (name str) (addr int) (size int))\n(declare mapped (addr int) (size int) (off int))\n(declare named-region (addr int) (size int) (name str))\n(declare named-symbol (addr int) (name str))\n(declare require (name str))\n(declare section (addr int) (size int))\n(declare segment (addr int) (size int) (r bool) (w bool) (x bool))\n(declare subarch (name str))\n(declare symbol-chunk (addr int) (size int) (root int))\n(declare symbol-value (addr int) (value int))\n(declare system (name str))\n(declare vendor (name str))\n\n(abi unknown)\n(arch aarch64)\n(base-address 0)\n(bias 0)\n(bits 64)\n(code-region 1920 20 1920)\n(code-region 1600 320 1600)\n(code-region 1456 96 1456)\n(code-region 1432 24 1432)\n(code-start 1652)\n(code-start 1600)\n(code-start 1876)\n(entry-point 1600)\n(external-reference 69584 _ITM_deregisterTMCloneTable)\n(external-reference 69592 __cxa_finalize)\n(external-reference 69608 __gmon_start__)\n(external-reference 69624 _ITM_registerTMCloneTable)\n(external-reference 69544 __libc_start_main)\n(external-reference 69552 __cxa_finalize)\n(external-reference 69560 __gmon_start__)\n(external-reference 69568 abort)\n(format elf)\n(is-executable true)\n(is-little-endian true)\n(llvm:base-address 0)\n(llvm:code-entry abort 0 0)\n(llvm:code-entry __cxa_finalize 0 0)\n(llvm:code-entry __libc_start_main 0 0)\n(llvm:code-entry _init 1432 0)\n(llvm:code-entry main 1876 44)\n(llvm:code-entry _start 1600 52)\n(llvm:code-entry abort@GLIBC_2.17 0 0)\n(llvm:code-entry _fini 1920 0)\n(llvm:code-entry __cxa_finalize@GLIBC_2.17 0 0)\n(llvm:code-entry __libc_start_main@GLIBC_2.34 0 0)\n(llvm:code-entry frame_dummy 1872 0)\n(llvm:code-entry __do_global_dtors_aux 1792 0)\n(llvm:code-entry register_tm_clones 1728 0)\n(llvm:code-entry deregister_tm_clones 1680 0)\n(llvm:code-entry call_weak_fn 1652 20)\n(llvm:code-entry .fini 1920 20)\n(llvm:code-entry .text 1600 320)\n(llvm:code-entry .plt 1456 96)\n(llvm:code-entry .init 1432 24)\n(llvm:elf-program-header 08 3472 624)\n(llvm:elf-program-header 07 0 0)\n(llvm:elf-program-header 06 1944 60)\n(llvm:elf-program-header 05 596 68)\n(llvm:elf-program-header 04 3488 496)\n(llvm:elf-program-header 03 3472 640)\n(llvm:elf-program-header 02 0 2168)\n(llvm:elf-program-header 01 568 27)\n(llvm:elf-program-header 00 64 504)\n(llvm:elf-program-header-flags 08 false true false false)\n(llvm:elf-program-header-flags 07 false true true false)\n(llvm:elf-program-header-flags 06 false true false false)\n(llvm:elf-program-header-flags 05 false true false false)\n(llvm:elf-program-header-flags 04 false true true false)\n(llvm:elf-program-header-flags 03 true true true false)\n(llvm:elf-program-header-flags 02 true true false true)\n(llvm:elf-program-header-flags 01 false true false false)\n(llvm:elf-program-header-flags 00 false true false false)\n(llvm:elf-virtual-program-header 08 69008 624)\n(llvm:elf-virtual-program-header 07 0 0)\n(llvm:elf-virtual-program-header 06 1944 60)\n(llvm:elf-virtual-program-header 05 596 68)\n(llvm:elf-virtual-program-header 04 69024 496)\n(llvm:elf-virtual-program-header 03 69008 648)\n(llvm:elf-virtual-program-header 02 0 2168)\n(llvm:elf-virtual-program-header 01 568 27)\n(llvm:elf-virtual-program-header 00 64 504)\n(llvm:entry-point 1600)\n(llvm:name-reference 69568 abort)\n(llvm:name-reference 69560 __gmon_start__)\n(llvm:name-reference 69552 __cxa_finalize)\n(llvm:name-reference 69544 __libc_start_main)\n(llvm:name-reference 69624 _ITM_registerTMCloneTable)\n(llvm:name-reference 69608 __gmon_start__)\n(llvm:name-reference 69592 __cxa_finalize)\n(llvm:name-reference 69584 _ITM_deregisterTMCloneTable)\n(llvm:section-entry .shstrtab 0 250 6816)\n(llvm:section-entry .strtab 0 544 6272)\n(llvm:section-entry .symtab 0 2112 4160)\n(llvm:section-entry .comment 0 43 4112)\n(llvm:section-entry .bss 69648 8 4112)\n(llvm:section-entry .data 69632 16 4096)\n(llvm:section-entry .got 69520 112 3984)\n(llvm:section-entry .dynamic 69024 496 3488)\n(llvm:section-entry .fini_array 69016 8 3480)\n(llvm:section-entry .init_array 69008 8 3472)\n(llvm:section-entry .eh_frame 2008 160 2008)\n(llvm:section-entry .eh_frame_hdr 1944 60 1944)\n(llvm:section-entry .rodata 1940 4 1940)\n(llvm:section-entry .fini 1920 20 1920)\n(llvm:section-entry .text 1600 320 1600)\n(llvm:section-entry .plt 1456 96 1456)\n(llvm:section-entry .init 1432 24 1432)\n(llvm:section-entry .rela.plt 1336 96 1336)\n(llvm:section-entry .rela.dyn 1120 216 1120)\n(llvm:section-entry .gnu.version_r 1072 48 1072)\n(llvm:section-entry .gnu.version 1054 18 1054)\n(llvm:section-entry .dynstr 912 141 912)\n(llvm:section-entry .dynsym 696 216 696)\n(llvm:section-entry .gnu.hash 664 28 664)\n(llvm:section-entry .note.ABI-tag 632 32 632)\n(llvm:section-entry .note.gnu.build-id 596 36 596)\n(llvm:section-entry .interp 568 27 568)\n(llvm:section-flags .shstrtab true false false)\n(llvm:section-flags .strtab true false false)\n(llvm:section-flags .symtab true false false)\n(llvm:section-flags .comment true false false)\n(llvm:section-flags .bss true true false)\n(llvm:section-flags .data true true false)\n(llvm:section-flags .got true true false)\n(llvm:section-flags .dynamic true true false)\n(llvm:section-flags .fini_array true true false)\n(llvm:section-flags .init_array true true false)\n(llvm:section-flags .eh_frame true false false)\n(llvm:section-flags .eh_frame_hdr true false false)\n(llvm:section-flags .rodata true false false)\n(llvm:section-flags .fini true false true)\n(llvm:section-flags .text true false true)\n(llvm:section-flags .plt true false true)\n(llvm:section-flags .init true false true)\n(llvm:section-flags .rela.plt true false false)\n(llvm:section-flags .rela.dyn true false false)\n(llvm:section-flags .gnu.version_r true false false)\n(llvm:section-flags .gnu.version true false false)\n(llvm:section-flags .dynstr true false false)\n(llvm:section-flags .dynsym true false false)\n(llvm:section-flags .gnu.hash true false false)\n(llvm:section-flags .note.ABI-tag true false false)\n(llvm:section-flags .note.gnu.build-id true false false)\n(llvm:section-flags .interp true false false)\n(llvm:symbol-entry abort 0 0 0 0)\n(llvm:symbol-entry __cxa_finalize 0 0 0 0)\n(llvm:symbol-entry __libc_start_main 0 0 0 0)\n(llvm:symbol-entry _init 1432 0 1432 1432)\n(llvm:symbol-entry main 1876 44 1876 1876)\n(llvm:symbol-entry _start 1600 52 1600 1600)\n(llvm:symbol-entry abort@GLIBC_2.17 0 0 0 0)\n(llvm:symbol-entry _fini 1920 0 1920 1920)\n(llvm:symbol-entry __cxa_finalize@GLIBC_2.17 0 0 0 0)\n(llvm:symbol-entry __libc_start_main@GLIBC_2.34 0 0 0 0)\n(llvm:symbol-entry frame_dummy 1872 0 1872 1872)\n(llvm:symbol-entry __do_global_dtors_aux 1792 0 1792 1792)\n(llvm:symbol-entry register_tm_clones 1728 0 1728 1728)\n(llvm:symbol-entry deregister_tm_clones 1680 0 1680 1680)\n(llvm:symbol-entry call_weak_fn 1652 20 1652 1652)\n(mapped 0 2168 0)\n(mapped 69008 640 3472)\n(named-region 0 2168 02)\n(named-region 69008 648 03)\n(named-region 568 27 .interp)\n(named-region 596 36 .note.gnu.build-id)\n(named-region 632 32 .note.ABI-tag)\n(named-region 664 28 .gnu.hash)\n(named-region 696 216 .dynsym)\n(named-region 912 141 .dynstr)\n(named-region 1054 18 .gnu.version)\n(named-region 1072 48 .gnu.version_r)\n(named-region 1120 216 .rela.dyn)\n(named-region 1336 96 .rela.plt)\n(named-region 1432 24 .init)\n(named-region 1456 96 .plt)\n(named-region 1600 320 .text)\n(named-region 1920 20 .fini)\n(named-region 1940 4 .rodata)\n(named-region 1944 60 .eh_frame_hdr)\n(named-region 2008 160 .eh_frame)\n(named-region 69008 8 .init_array)\n(named-region 69016 8 .fini_array)\n(named-region 69024 496 .dynamic)\n(named-region 69520 112 .got)\n(named-region 69632 16 .data)\n(named-region 69648 8 .bss)\n(named-region 0 43 .comment)\n(named-region 0 2112 .symtab)\n(named-region 0 544 .strtab)\n(named-region 0 250 .shstrtab)\n(named-symbol 1652 call_weak_fn)\n(named-symbol 1680 deregister_tm_clones)\n(named-symbol 1728 register_tm_clones)\n(named-symbol 1792 __do_global_dtors_aux)\n(named-symbol 1872 frame_dummy)\n(named-symbol 0 __libc_start_main@GLIBC_2.34)\n(named-symbol 0 __cxa_finalize@GLIBC_2.17)\n(named-symbol 1920 _fini)\n(named-symbol 0 abort@GLIBC_2.17)\n(named-symbol 1600 _start)\n(named-symbol 1876 main)\n(named-symbol 1432 _init)\n(named-symbol 0 __libc_start_main)\n(named-symbol 0 __cxa_finalize)\n(named-symbol 0 abort)\n(require libc.so.6)\n(section 568 27)\n(section 596 36)\n(section 632 32)\n(section 664 28)\n(section 696 216)\n(section 912 141)\n(section 1054 18)\n(section 1072 48)\n(section 1120 216)\n(section 1336 96)\n(section 1432 24)\n(section 1456 96)\n(section 1600 320)\n(section 1920 20)\n(section 1940 4)\n(section 1944 60)\n(section 2008 160)\n(section 69008 8)\n(section 69016 8)\n(section 69024 496)\n(section 69520 112)\n(section 69632 16)\n(section 69648 8)\n(section 0 43)\n(section 0 2112)\n(section 0 544)\n(section 0 250)\n(segment 0 2168 true false true)\n(segment 69008 648 true true false)\n(subarch v8)\n(symbol-chunk 1652 20 1652)\n(symbol-chunk 1600 52 1600)\n(symbol-chunk 1876 44 1876)\n(symbol-value 1652 1652)\n(symbol-value 1680 1680)\n(symbol-value 1728 1728)\n(symbol-value 1792 1792)\n(symbol-value 1872 1872)\n(symbol-value 1920 1920)\n(symbol-value 1600 1600)\n(symbol-value 1876 1876)\n(symbol-value 1432 1432)\n(symbol-value 0 0)\n(system \"\")\n(vendor \"\")\n"), -Attr("abi-name","\"aarch64-linux-gnu-elf\"")]), -Sections([Section(".shstrtab", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x40\x06\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xa0\x1b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x38\x00\x09\x00\x40\x00\x1c\x00\x1b\x00\x06\x00\x00\x00\x04\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x04\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x78\x08\x00\x00\x00\x00\x00\x00\x78\x08\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x01\x00\x00\x00\x06\x00\x00\x00\x90\x0d\x00\x00\x00\x00\x00\x00\x90\x0d"), -Section(".strtab", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x40\x06\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xa0\x1b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x38\x00\x09\x00\x40\x00\x1c\x00\x1b\x00\x06\x00\x00\x00\x04\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x04\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x78\x08\x00\x00\x00\x00\x00\x00\x78\x08\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x01\x00\x00\x00\x06\x00\x00\x00\x90\x0d\x00\x00\x00\x00\x00\x00\x90\x0d\x01\x00\x00\x00\x00\x00\x90\x0d\x01\x00\x00\x00\x00\x00\x80\x02\x00\x00\x00\x00\x00\x00\x88\x02\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x02\x00\x00\x00\x06\x00\x00\x00\xa0\x0d\x00\x00\x00\x00\x00\x00\xa0\x0d\x01\x00\x00\x00\x00\x00\xa0\x0d\x01\x00\x00\x00\x00\x00\xf0\x01\x00\x00\x00\x00\x00\x00\xf0\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x04\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x50\xe5\x74\x64\x04\x00\x00\x00\x98\x07\x00\x00\x00\x00\x00\x00\x98\x07\x00\x00\x00\x00\x00\x00\x98\x07\x00\x00\x00\x00\x00\x00\x3c\x00\x00\x00\x00\x00\x00\x00\x3c\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x51\xe5\x74\x64\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x52\xe5\x74\x64\x04\x00\x00\x00\x90\x0d\x00\x00\x00\x00\x00\x00\x90\x0d\x01\x00\x00\x00\x00\x00\x90\x0d\x01\x00\x00\x00\x00\x00"), -Section(".symtab", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x40\x06\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xa0\x1b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x38\x00\x09\x00\x40\x00\x1c\x00\x1b\x00\x06\x00\x00\x00\x04\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x04\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x78\x08\x00\x00\x00\x00\x00\x00\x78\x08\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x01\x00\x00\x00\x06\x00\x00\x00\x90\x0d\x00\x00\x00\x00\x00\x00\x90\x0d\x01\x00\x00\x00\x00\x00\x90\x0d\x01\x00\x00\x00\x00\x00\x80\x02\x00\x00\x00\x00\x00\x00\x88\x02\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x02\x00\x00\x00\x06\x00\x00\x00\xa0\x0d\x00\x00\x00\x00\x00\x00\xa0\x0d\x01\x00\x00\x00\x00\x00\xa0\x0d\x01\x00\x00\x00\x00\x00\xf0\x01\x00\x00\x00\x00\x00\x00\xf0\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x04\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x50\xe5\x74\x64\x04\x00\x00\x00\x98\x07\x00\x00\x00\x00\x00\x00\x98\x07\x00\x00\x00\x00\x00\x00\x98\x07\x00\x00\x00\x00\x00\x00\x3c\x00\x00\x00\x00\x00\x00\x00\x3c\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x51\xe5\x74\x64\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x52\xe5\x74\x64\x04\x00\x00\x00\x90\x0d\x00\x00\x00\x00\x00\x00\x90\x0d\x01\x00\x00\x00\x00\x00\x90\x0d\x01\x00\x00\x00\x00\x00\x70\x02\x00\x00\x00\x00\x00\x00\x70\x02\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x2f\x6c\x69\x62\x2f\x6c\x64\x2d\x6c\x69\x6e\x75\x78\x2d\x61\x61\x72\x63\x68\x36\x34\x2e\x73\x6f\x2e\x31\x00\x00\x04\x00\x00\x00\x14\x00\x00\x00\x03\x00\x00\x00\x47\x4e\x55\x00\x65\x8a\x2b\x41\x9a\x37\xd6\x0e\x7f\x93\x78\xa3\x73\x24\x34\xeb\x7c\x81\xa0\xfd\x04\x00\x00\x00\x10\x00\x00\x00\x01\x00\x00\x00\x47\x4e\x55\x00\x00\x00\x00\x00\x03\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x01\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x0b\x00\x98\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x16\x00\x00\x10\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x48\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x22\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x22\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x73\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5f\x5f\x63\x78\x61\x5f\x66\x69\x6e\x61\x6c\x69\x7a\x65\x00\x5f\x5f\x6c\x69\x62\x63\x5f\x73\x74\x61\x72\x74\x5f\x6d\x61\x69\x6e\x00\x61\x62\x6f\x72\x74\x00\x6c\x69\x62\x63\x2e\x73\x6f\x2e\x36\x00\x47\x4c\x49\x42\x43\x5f\x32\x2e\x31\x37\x00\x47\x4c\x49\x42\x43\x5f\x32\x2e\x33\x34\x00\x5f\x49\x54\x4d\x5f\x64\x65\x72\x65\x67\x69\x73\x74\x65\x72\x54\x4d\x43\x6c\x6f\x6e\x65\x54\x61\x62\x6c\x65\x00\x5f\x5f\x67\x6d\x6f\x6e\x5f\x73\x74\x61\x72\x74\x5f\x5f\x00\x5f\x49\x54\x4d\x5f\x72\x65\x67\x69\x73\x74\x65\x72\x54\x4d\x43\x6c\x6f\x6e\x65\x54\x61\x62\x6c\x65\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x01\x00\x03\x00\x01\x00\x03\x00\x01\x00\x01\x00\x02\x00\x28\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x97\x91\x96\x06\x00\x00\x03\x00\x32\x00\x00\x00\x10\x00\x00\x00\xb4\x91\x96\x06\x00\x00\x02\x00\x3d\x00\x00\x00\x00\x00\x00\x00\x90\x0d\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x50\x07\x00\x00\x00\x00\x00\x00\x98\x0d\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\xe0\x0f\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x14\x10\x01\x00\x00\x00\x00\x00\xf0\x0f\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x54\x07\x00\x00\x00\x00\x00\x00\x08\x10\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x08\x10\x01\x00\x00\x00\x00\x00\xd0\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xd8\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe8\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xf8\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xa8\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xb0\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xb8\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xc0\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1f\x20\x03\xd5\xfd\x7b\xbf\xa9\xfd\x03\x00\x91\x34\x00\x00\x94\xfd\x7b\xc1\xa8\xc0\x03\x5f\xd6\xf0\x7b\xbf\xa9\x90\x00\x00\x90\x11\xd2\x47\xf9\x10\x82\x3e\x91\x20\x02\x1f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x90\x00\x00\x90\x11\xd6\x47\xf9\x10\xa2\x3e\x91\x20\x02\x1f\xd6\x90\x00\x00\x90\x11\xda\x47\xf9\x10\xc2\x3e\x91\x20\x02\x1f\xd6\x90\x00\x00\x90\x11\xde\x47\xf9\x10\xe2\x3e\x91\x20\x02\x1f\xd6\x90\x00\x00\x90\x11\xe2\x47\xf9\x10\x02\x3f\x91\x20\x02\x1f\xd6\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1f\x20\x03\xd5\x1d\x00\x80\xd2\x1e\x00\x80\xd2\xe5\x03\x00\xaa\xe1\x03\x40\xf9\xe2\x23\x00\x91\xe6\x03\x00\x91\x80\x00\x00\x90\x00\xf8\x47\xf9\x03\x00\x80\xd2\x04\x00\x80\xd2\xd9\xff\xff\x97\xe4\xff\xff\x97\x80\x00\x00\x90\x00\xf4\x47\xf9\x40\x00\x00\xb4\xdc\xff\xff\x17\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x80\x00\x00\xb0\x00\x40\x00\x91\x81\x00\x00\xb0\x21\x40\x00\x91\x3f\x00\x00\xeb\xc0\x00\x00\x54\x81\x00\x00\x90\x21\xe8\x47\xf9\x61\x00\x00\xb4\xf0\x03\x01\xaa\x00\x02\x1f\xd6\xc0\x03\x5f\xd6\x80\x00\x00\xb0\x00\x40\x00\x91\x81\x00\x00\xb0\x21\x40\x00\x91\x21\x00\x00\xcb\x22\xfc\x7f\xd3\x41\x0c\x81\x8b\x21\xfc\x41\x93\xc1\x00\x00\xb4\x82\x00\x00\x90\x42\xfc\x47\xf9\x62\x00\x00\xb4\xf0\x03\x02\xaa\x00\x02\x1f\xd6\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\xfd\x7b\xbe\xa9\xfd\x03\x00\x91\xf3\x0b\x00\xf9\x93\x00\x00\xb0\x60\x42\x40\x39\x40\x01\x00\x35\x80\x00\x00\x90\x00\xec\x47\xf9\x80\x00\x00\xb4\x80\x00\x00\xb0\x00\x04\x40\xf9\xad\xff\xff\x97\xd8\xff\xff\x97\x20\x00\x80\x52\x60\x42\x00\x39\xf3\x0b\x40\xf9\xfd\x7b\xc2\xa8\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\xdc\xff\xff\x17\x80\x00\x00\x90\x00\xf0\x47\xf9\x00\x00\x40\xb9\x1f\x00\x00\x71\xa1\x00\x00\x54\x80\x00\x00\x90\x00\xf0\x47\xf9\x21\x00\x80\x52\x01\x00\x00\xb9\x00\x00\x80\x52\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\xfd\x7b\xbf\xa9\xfd\x03\x00\x91\xfd\x7b\xc1\xa8\xc0\x03\x5f\xd6\x01\x00\x02\x00\x01\x1b\x03\x3b\x3c\x00\x00\x00\x06\x00\x00\x00\xa8\xfe\xff\xff\x54\x00\x00\x00\xf8\xfe\xff\xff\x68\x00\x00\x00\x28\xff\xff\xff\x7c\x00\x00\x00\x68\xff\xff\xff\x90\x00\x00\x00\xb8\xff\xff\xff\xb4\x00\x00\x00\xbc\xff\xff\xff\xc8\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x01\x7a\x52\x00\x04\x78\x1e\x01\x1b\x0c\x1f\x00\x10\x00\x00\x00\x18\x00\x00\x00\x4c\xfe\xff\xff\x34\x00\x00\x00\x00\x41\x07\x1e\x10\x00\x00\x00\x2c\x00\x00\x00\x88\xfe\xff\xff\x30\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x40\x00\x00\x00\xa4\xfe\xff\xff\x3c\x00\x00\x00\x00\x00\x00\x00\x20\x00\x00\x00\x54\x00\x00\x00\xd0\xfe\xff\xff\x48\x00\x00\x00\x00\x41\x0e\x20\x9d\x04\x9e\x03"), -Section(".comment", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x40\x06\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xa0\x1b\x00"), -Section(".interp", 0x238, "\x2f\x6c\x69\x62\x2f\x6c\x64\x2d\x6c\x69\x6e\x75\x78\x2d\x61\x61\x72\x63\x68\x36\x34\x2e\x73\x6f\x2e\x31\x00"), -Section(".note.gnu.build-id", 0x254, "\x04\x00\x00\x00\x14\x00\x00\x00\x03\x00\x00\x00\x47\x4e\x55\x00\x65\x8a\x2b\x41\x9a\x37\xd6\x0e\x7f\x93\x78\xa3\x73\x24\x34\xeb\x7c\x81\xa0\xfd"), -Section(".note.ABI-tag", 0x278, "\x04\x00\x00\x00\x10\x00\x00\x00\x01\x00\x00\x00\x47\x4e\x55\x00\x00\x00\x00\x00\x03\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00"), -Section(".gnu.hash", 0x298, "\x01\x00\x00\x00\x01\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".dynsym", 0x2B8, "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x0b\x00\x98\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x16\x00\x00\x10\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x48\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x22\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x22\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x73\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".dynstr", 0x390, "\x00\x5f\x5f\x63\x78\x61\x5f\x66\x69\x6e\x61\x6c\x69\x7a\x65\x00\x5f\x5f\x6c\x69\x62\x63\x5f\x73\x74\x61\x72\x74\x5f\x6d\x61\x69\x6e\x00\x61\x62\x6f\x72\x74\x00\x6c\x69\x62\x63\x2e\x73\x6f\x2e\x36\x00\x47\x4c\x49\x42\x43\x5f\x32\x2e\x31\x37\x00\x47\x4c\x49\x42\x43\x5f\x32\x2e\x33\x34\x00\x5f\x49\x54\x4d\x5f\x64\x65\x72\x65\x67\x69\x73\x74\x65\x72\x54\x4d\x43\x6c\x6f\x6e\x65\x54\x61\x62\x6c\x65\x00\x5f\x5f\x67\x6d\x6f\x6e\x5f\x73\x74\x61\x72\x74\x5f\x5f\x00\x5f\x49\x54\x4d\x5f\x72\x65\x67\x69\x73\x74\x65\x72\x54\x4d\x43\x6c\x6f\x6e\x65\x54\x61\x62\x6c\x65\x00"), -Section(".gnu.version", 0x41E, "\x00\x00\x00\x00\x00\x00\x02\x00\x01\x00\x03\x00\x01\x00\x03\x00\x01\x00"), -Section(".gnu.version_r", 0x430, "\x01\x00\x02\x00\x28\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x97\x91\x96\x06\x00\x00\x03\x00\x32\x00\x00\x00\x10\x00\x00\x00\xb4\x91\x96\x06\x00\x00\x02\x00\x3d\x00\x00\x00\x00\x00\x00\x00"), -Section(".rela.dyn", 0x460, "\x90\x0d\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x50\x07\x00\x00\x00\x00\x00\x00\x98\x0d\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\xe0\x0f\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x14\x10\x01\x00\x00\x00\x00\x00\xf0\x0f\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x54\x07\x00\x00\x00\x00\x00\x00\x08\x10\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x08\x10\x01\x00\x00\x00\x00\x00\xd0\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xd8\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe8\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xf8\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".rela.plt", 0x538, "\xa8\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xb0\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xb8\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xc0\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".init", 0x598, "\x1f\x20\x03\xd5\xfd\x7b\xbf\xa9\xfd\x03\x00\x91\x34\x00\x00\x94\xfd\x7b\xc1\xa8\xc0\x03\x5f\xd6"), -Section(".plt", 0x5B0, "\xf0\x7b\xbf\xa9\x90\x00\x00\x90\x11\xd2\x47\xf9\x10\x82\x3e\x91\x20\x02\x1f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x90\x00\x00\x90\x11\xd6\x47\xf9\x10\xa2\x3e\x91\x20\x02\x1f\xd6\x90\x00\x00\x90\x11\xda\x47\xf9\x10\xc2\x3e\x91\x20\x02\x1f\xd6\x90\x00\x00\x90\x11\xde\x47\xf9\x10\xe2\x3e\x91\x20\x02\x1f\xd6\x90\x00\x00\x90\x11\xe2\x47\xf9\x10\x02\x3f\x91\x20\x02\x1f\xd6"), -Section(".fini", 0x780, "\x1f\x20\x03\xd5\xfd\x7b\xbf\xa9\xfd\x03\x00\x91\xfd\x7b\xc1\xa8\xc0\x03\x5f\xd6"), -Section(".rodata", 0x794, "\x01\x00\x02\x00"), -Section(".eh_frame_hdr", 0x798, "\x01\x1b\x03\x3b\x3c\x00\x00\x00\x06\x00\x00\x00\xa8\xfe\xff\xff\x54\x00\x00\x00\xf8\xfe\xff\xff\x68\x00\x00\x00\x28\xff\xff\xff\x7c\x00\x00\x00\x68\xff\xff\xff\x90\x00\x00\x00\xb8\xff\xff\xff\xb4\x00\x00\x00\xbc\xff\xff\xff\xc8\x00\x00\x00"), -Section(".eh_frame", 0x7D8, "\x10\x00\x00\x00\x00\x00\x00\x00\x01\x7a\x52\x00\x04\x78\x1e\x01\x1b\x0c\x1f\x00\x10\x00\x00\x00\x18\x00\x00\x00\x4c\xfe\xff\xff\x34\x00\x00\x00\x00\x41\x07\x1e\x10\x00\x00\x00\x2c\x00\x00\x00\x88\xfe\xff\xff\x30\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x40\x00\x00\x00\xa4\xfe\xff\xff\x3c\x00\x00\x00\x00\x00\x00\x00\x20\x00\x00\x00\x54\x00\x00\x00\xd0\xfe\xff\xff\x48\x00\x00\x00\x00\x41\x0e\x20\x9d\x04\x9e\x03\x42\x93\x02\x4e\xde\xdd\xd3\x0e\x00\x00\x00\x00\x10\x00\x00\x00\x78\x00\x00\x00\xfc\xfe\xff\xff\x04\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x8c\x00\x00\x00\xec\xfe\xff\xff\x2c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".fini_array", 0x10D98, "\x00\x07\x00\x00\x00\x00\x00\x00"), -Section(".dynamic", 0x10DA0, "\x01\x00\x00\x00\x00\x00\x00\x00\x28\x00\x00\x00\x00\x00\x00\x00\x0c\x00\x00\x00\x00\x00\x00\x00\x98\x05\x00\x00\x00\x00\x00\x00\x0d\x00\x00\x00\x00\x00\x00\x00\x80\x07\x00\x00\x00\x00\x00\x00\x19\x00\x00\x00\x00\x00\x00\x00\x90\x0d\x01\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x1a\x00\x00\x00\x00\x00\x00\x00\x98\x0d\x01\x00\x00\x00\x00\x00\x1c\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\xf5\xfe\xff\x6f\x00\x00\x00\x00\x98\x02\x00\x00\x00\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x90\x03\x00\x00\x00\x00\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\xb8\x02\x00\x00\x00\x00\x00\x00\x0a\x00\x00\x00\x00\x00\x00\x00\x8d\x00\x00\x00\x00\x00\x00\x00\x0b\x00\x00\x00\x00\x00\x00\x00\x18\x00\x00\x00\x00\x00\x00\x00\x15\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x90\x0f\x01\x00\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x60\x00\x00\x00\x00\x00\x00\x00\x14\x00\x00\x00\x00\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x17\x00\x00\x00\x00\x00\x00\x00\x38\x05\x00\x00\x00\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x60\x04\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\xd8\x00\x00\x00\x00\x00\x00\x00\x09\x00\x00\x00\x00\x00\x00\x00\x18\x00\x00\x00\x00\x00\x00\x00\x1e\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\xfb\xff\xff\x6f\x00\x00\x00\x00\x01\x00\x00\x08\x00\x00\x00\x00\xfe\xff\xff\x6f\x00\x00\x00\x00\x30\x04\x00\x00\x00\x00\x00\x00\xff\xff\xff\x6f\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\xf0\xff\xff\x6f\x00\x00\x00\x00\x1e\x04\x00\x00\x00\x00\x00\x00\xf9\xff\xff\x6f\x00\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".got", 0x10F90, "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xb0\x05\x00\x00\x00\x00\x00\x00\xb0\x05\x00\x00\x00\x00\x00\x00\xb0\x05\x00\x00\x00\x00\x00\x00\xb0\x05\x00\x00\x00\x00\x00\x00\xa0\x0d\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x14\x10\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x54\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".data", 0x11000, "\x00\x00\x00\x00\x00\x00\x00\x00\x08\x10\x01\x00\x00\x00\x00\x00"), -Section(".init_array", 0x10D90, "\x50\x07\x00\x00\x00\x00\x00\x00"), -Section(".text", 0x640, "\x1f\x20\x03\xd5\x1d\x00\x80\xd2\x1e\x00\x80\xd2\xe5\x03\x00\xaa\xe1\x03\x40\xf9\xe2\x23\x00\x91\xe6\x03\x00\x91\x80\x00\x00\x90\x00\xf8\x47\xf9\x03\x00\x80\xd2\x04\x00\x80\xd2\xd9\xff\xff\x97\xe4\xff\xff\x97\x80\x00\x00\x90\x00\xf4\x47\xf9\x40\x00\x00\xb4\xdc\xff\xff\x17\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x80\x00\x00\xb0\x00\x40\x00\x91\x81\x00\x00\xb0\x21\x40\x00\x91\x3f\x00\x00\xeb\xc0\x00\x00\x54\x81\x00\x00\x90\x21\xe8\x47\xf9\x61\x00\x00\xb4\xf0\x03\x01\xaa\x00\x02\x1f\xd6\xc0\x03\x5f\xd6\x80\x00\x00\xb0\x00\x40\x00\x91\x81\x00\x00\xb0\x21\x40\x00\x91\x21\x00\x00\xcb\x22\xfc\x7f\xd3\x41\x0c\x81\x8b\x21\xfc\x41\x93\xc1\x00\x00\xb4\x82\x00\x00\x90\x42\xfc\x47\xf9\x62\x00\x00\xb4\xf0\x03\x02\xaa\x00\x02\x1f\xd6\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\xfd\x7b\xbe\xa9\xfd\x03\x00\x91\xf3\x0b\x00\xf9\x93\x00\x00\xb0\x60\x42\x40\x39\x40\x01\x00\x35\x80\x00\x00\x90\x00\xec\x47\xf9\x80\x00\x00\xb4\x80\x00\x00\xb0\x00\x04\x40\xf9\xad\xff\xff\x97\xd8\xff\xff\x97\x20\x00\x80\x52\x60\x42\x00\x39\xf3\x0b\x40\xf9\xfd\x7b\xc2\xa8\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\xdc\xff\xff\x17\x80\x00\x00\x90\x00\xf0\x47\xf9\x00\x00\x40\xb9\x1f\x00\x00\x71\xa1\x00\x00\x54\x80\x00\x00\x90\x00\xf0\x47\xf9\x21\x00\x80\x52\x01\x00\x00\xb9\x00\x00\x80\x52\xc0\x03\x5f\xd6")]), -Memmap([Annotation(Region(0x0,0x877), Attr("segment","02 0 2168")), -Annotation(Region(0x640,0x673), Attr("symbol","\"_start\"")), -Annotation(Region(0x0,0xF9), Attr("section","\".shstrtab\"")), -Annotation(Region(0x0,0x21F), Attr("section","\".strtab\"")), -Annotation(Region(0x0,0x83F), Attr("section","\".symtab\"")), -Annotation(Region(0x0,0x2A), Attr("section","\".comment\"")), -Annotation(Region(0x238,0x252), Attr("section","\".interp\"")), -Annotation(Region(0x254,0x277), Attr("section","\".note.gnu.build-id\"")), -Annotation(Region(0x278,0x297), Attr("section","\".note.ABI-tag\"")), -Annotation(Region(0x298,0x2B3), Attr("section","\".gnu.hash\"")), -Annotation(Region(0x2B8,0x38F), Attr("section","\".dynsym\"")), -Annotation(Region(0x390,0x41C), Attr("section","\".dynstr\"")), -Annotation(Region(0x41E,0x42F), Attr("section","\".gnu.version\"")), -Annotation(Region(0x430,0x45F), Attr("section","\".gnu.version_r\"")), -Annotation(Region(0x460,0x537), Attr("section","\".rela.dyn\"")), -Annotation(Region(0x538,0x597), Attr("section","\".rela.plt\"")), -Annotation(Region(0x598,0x5AF), Attr("section","\".init\"")), -Annotation(Region(0x5B0,0x60F), Attr("section","\".plt\"")), -Annotation(Region(0x598,0x5AF), Attr("code-region","()")), -Annotation(Region(0x5B0,0x60F), Attr("code-region","()")), -Annotation(Region(0x640,0x673), Attr("symbol-info","_start 0x640 52")), -Annotation(Region(0x674,0x687), Attr("symbol","\"call_weak_fn\"")), -Annotation(Region(0x674,0x687), Attr("symbol-info","call_weak_fn 0x674 20")), -Annotation(Region(0x754,0x77F), Attr("symbol","\"main\"")), -Annotation(Region(0x754,0x77F), Attr("symbol-info","main 0x754 44")), -Annotation(Region(0x780,0x793), Attr("section","\".fini\"")), -Annotation(Region(0x794,0x797), Attr("section","\".rodata\"")), -Annotation(Region(0x798,0x7D3), Attr("section","\".eh_frame_hdr\"")), -Annotation(Region(0x7D8,0x877), Attr("section","\".eh_frame\"")), -Annotation(Region(0x10D90,0x1100F), Attr("segment","03 0x10D90 648")), -Annotation(Region(0x10D98,0x10D9F), Attr("section","\".fini_array\"")), -Annotation(Region(0x10DA0,0x10F8F), Attr("section","\".dynamic\"")), -Annotation(Region(0x10F90,0x10FFF), Attr("section","\".got\"")), -Annotation(Region(0x11000,0x1100F), Attr("section","\".data\"")), -Annotation(Region(0x10D90,0x10D97), Attr("section","\".init_array\"")), -Annotation(Region(0x640,0x77F), Attr("section","\".text\"")), -Annotation(Region(0x640,0x77F), Attr("code-region","()")), -Annotation(Region(0x780,0x793), Attr("code-region","()"))]), -Program(Tid(1_427, "%00000593"), Attrs([]), - Subs([Sub(Tid(1_373, "@__cxa_finalize"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x5E0"), -Attr("stub","()")]), "__cxa_finalize", Args([Arg(Tid(1_428, "%00000594"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("__cxa_finalize_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(866, "@__cxa_finalize"), - Attrs([Attr("address","0x5E0")]), Phis([]), -Defs([Def(Tid(1_114, "%0000045a"), Attrs([Attr("address","0x5E0"), -Attr("insn","adrp x16, #65536")]), Var("R16",Imm(64)), Int(65536,64)), -Def(Tid(1_121, "%00000461"), Attrs([Attr("address","0x5E4"), -Attr("insn","ldr x17, [x16, #0xfb0]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(4016,64)),LittleEndian(),64)), -Def(Tid(1_127, "%00000467"), Attrs([Attr("address","0x5E8"), -Attr("insn","add x16, x16, #0xfb0")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(4016,64)))]), Jmps([Call(Tid(1_132, "%0000046c"), - Attrs([Attr("address","0x5EC"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), -Sub(Tid(1_374, "@__do_global_dtors_aux"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x700")]), - "__do_global_dtors_aux", Args([Arg(Tid(1_429, "%00000595"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("__do_global_dtors_aux_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(634, "@__do_global_dtors_aux"), - Attrs([Attr("address","0x700")]), Phis([]), Defs([Def(Tid(638, "%0000027e"), - Attrs([Attr("address","0x700"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("#3",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(18446744073709551584,64))), -Def(Tid(644, "%00000284"), Attrs([Attr("address","0x700"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("#3",Imm(64)),Var("R29",Imm(64)),LittleEndian(),64)), -Def(Tid(650, "%0000028a"), Attrs([Attr("address","0x700"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("#3",Imm(64)),Int(8,64)),Var("R30",Imm(64)),LittleEndian(),64)), -Def(Tid(654, "%0000028e"), Attrs([Attr("address","0x700"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("R31",Imm(64)), -Var("#3",Imm(64))), Def(Tid(660, "%00000294"), - Attrs([Attr("address","0x704"), Attr("insn","mov x29, sp")]), - Var("R29",Imm(64)), Var("R31",Imm(64))), Def(Tid(668, "%0000029c"), - Attrs([Attr("address","0x708"), Attr("insn","str x19, [sp, #0x10]")]), - Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(16,64)),Var("R19",Imm(64)),LittleEndian(),64)), -Def(Tid(673, "%000002a1"), Attrs([Attr("address","0x70C"), -Attr("insn","adrp x19, #69632")]), Var("R19",Imm(64)), Int(69632,64)), -Def(Tid(680, "%000002a8"), Attrs([Attr("address","0x710"), -Attr("insn","ldrb w0, [x19, #0x10]")]), Var("R0",Imm(64)), -UNSIGNED(64,Load(Var("mem",Mem(64,8)),PLUS(Var("R19",Imm(64)),Int(16,64)),LittleEndian(),8)))]), -Jmps([Goto(Tid(687, "%000002af"), Attrs([Attr("address","0x714"), -Attr("insn","cbnz w0, #0x28")]), - NEQ(Extract(31,0,Var("R0",Imm(64))),Int(0,32)), -Direct(Tid(685, "%000002ad"))), Goto(Tid(1_415, "%00000587"), Attrs([]), - Int(1,1), Direct(Tid(811, "%0000032b")))])), Blk(Tid(811, "%0000032b"), - Attrs([Attr("address","0x718")]), Phis([]), Defs([Def(Tid(814, "%0000032e"), - Attrs([Attr("address","0x718"), Attr("insn","adrp x0, #65536")]), - Var("R0",Imm(64)), Int(65536,64)), Def(Tid(821, "%00000335"), - Attrs([Attr("address","0x71C"), Attr("insn","ldr x0, [x0, #0xfd8]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(4056,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(827, "%0000033b"), Attrs([Attr("address","0x720"), -Attr("insn","cbz x0, #0x10")]), EQ(Var("R0",Imm(64)),Int(0,64)), -Direct(Tid(825, "%00000339"))), Goto(Tid(1_416, "%00000588"), Attrs([]), - Int(1,1), Direct(Tid(850, "%00000352")))])), Blk(Tid(850, "%00000352"), - Attrs([Attr("address","0x724")]), Phis([]), Defs([Def(Tid(853, "%00000355"), - Attrs([Attr("address","0x724"), Attr("insn","adrp x0, #69632")]), - Var("R0",Imm(64)), Int(69632,64)), Def(Tid(860, "%0000035c"), - Attrs([Attr("address","0x728"), Attr("insn","ldr x0, [x0, #0x8]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(865, "%00000361"), Attrs([Attr("address","0x72C"), -Attr("insn","bl #-0x14c")]), Var("R30",Imm(64)), Int(1840,64))]), -Jmps([Call(Tid(868, "%00000364"), Attrs([Attr("address","0x72C"), -Attr("insn","bl #-0x14c")]), Int(1,1), -(Direct(Tid(1_373, "@__cxa_finalize")),Direct(Tid(825, "%00000339"))))])), -Blk(Tid(825, "%00000339"), Attrs([Attr("address","0x730")]), Phis([]), -Defs([Def(Tid(833, "%00000341"), Attrs([Attr("address","0x730"), -Attr("insn","bl #-0xa0")]), Var("R30",Imm(64)), Int(1844,64))]), -Jmps([Call(Tid(835, "%00000343"), Attrs([Attr("address","0x730"), -Attr("insn","bl #-0xa0")]), Int(1,1), -(Direct(Tid(1_387, "@deregister_tm_clones")),Direct(Tid(837, "%00000345"))))])), -Blk(Tid(837, "%00000345"), Attrs([Attr("address","0x734")]), Phis([]), -Defs([Def(Tid(840, "%00000348"), Attrs([Attr("address","0x734"), -Attr("insn","mov w0, #0x1")]), Var("R0",Imm(64)), Int(1,64)), -Def(Tid(848, "%00000350"), Attrs([Attr("address","0x738"), -Attr("insn","strb w0, [x19, #0x10]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R19",Imm(64)),Int(16,64)),Extract(7,0,Var("R0",Imm(64))),LittleEndian(),8))]), -Jmps([Goto(Tid(1_417, "%00000589"), Attrs([]), Int(1,1), -Direct(Tid(685, "%000002ad")))])), Blk(Tid(685, "%000002ad"), - Attrs([Attr("address","0x73C")]), Phis([]), Defs([Def(Tid(695, "%000002b7"), - Attrs([Attr("address","0x73C"), Attr("insn","ldr x19, [sp, #0x10]")]), - Var("R19",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(16,64)),LittleEndian(),64)), -Def(Tid(702, "%000002be"), Attrs([Attr("address","0x740"), -Attr("insn","ldp x29, x30, [sp], #0x20")]), Var("R29",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(707, "%000002c3"), Attrs([Attr("address","0x740"), -Attr("insn","ldp x29, x30, [sp], #0x20")]), Var("R30",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(711, "%000002c7"), Attrs([Attr("address","0x740"), -Attr("insn","ldp x29, x30, [sp], #0x20")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(32,64)))]), Jmps([Call(Tid(716, "%000002cc"), - Attrs([Attr("address","0x744"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), Sub(Tid(1_378, "@__libc_start_main"), - Attrs([Attr("c.proto","signed (*)(signed (*)(signed , char** , char** );* main, signed , char** , \nvoid* auxv)"), -Attr("address","0x5D0"), Attr("stub","()")]), "__libc_start_main", - Args([Arg(Tid(1_430, "%00000596"), - Attrs([Attr("c.layout","**[ : 64]"), -Attr("c.data","Top:u64 ptr ptr"), -Attr("c.type","signed (*)(signed , char** , char** );*")]), - Var("__libc_start_main_main",Imm(64)), Var("R0",Imm(64)), In()), -Arg(Tid(1_431, "%00000597"), Attrs([Attr("c.layout","[signed : 32]"), -Attr("c.data","Top:u32"), Attr("c.type","signed")]), - Var("__libc_start_main_arg2",Imm(32)), LOW(32,Var("R1",Imm(64))), In()), -Arg(Tid(1_432, "%00000598"), Attrs([Attr("c.layout","**[char : 8]"), -Attr("c.data","Top:u8 ptr ptr"), Attr("c.type","char**")]), - Var("__libc_start_main_arg3",Imm(64)), Var("R2",Imm(64)), Both()), -Arg(Tid(1_433, "%00000599"), Attrs([Attr("c.layout","*[ : 8]"), -Attr("c.data","{} ptr"), Attr("c.type","void*")]), - Var("__libc_start_main_auxv",Imm(64)), Var("R3",Imm(64)), Both()), -Arg(Tid(1_434, "%0000059a"), Attrs([Attr("c.layout","[signed : 32]"), -Attr("c.data","Top:u32"), Attr("c.type","signed")]), - Var("__libc_start_main_result",Imm(32)), LOW(32,Var("R0",Imm(64))), -Out())]), Blks([Blk(Tid(467, "@__libc_start_main"), - Attrs([Attr("address","0x5D0")]), Phis([]), -Defs([Def(Tid(1_092, "%00000444"), Attrs([Attr("address","0x5D0"), -Attr("insn","adrp x16, #65536")]), Var("R16",Imm(64)), Int(65536,64)), -Def(Tid(1_099, "%0000044b"), Attrs([Attr("address","0x5D4"), -Attr("insn","ldr x17, [x16, #0xfa8]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(4008,64)),LittleEndian(),64)), -Def(Tid(1_105, "%00000451"), Attrs([Attr("address","0x5D8"), -Attr("insn","add x16, x16, #0xfa8")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(4008,64)))]), Jmps([Call(Tid(1_110, "%00000456"), - Attrs([Attr("address","0x5DC"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), Sub(Tid(1_379, "@_fini"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x780")]), - "_fini", Args([Arg(Tid(1_435, "%0000059b"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("_fini_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(31, "@_fini"), - Attrs([Attr("address","0x780")]), Phis([]), Defs([Def(Tid(37, "%00000025"), - Attrs([Attr("address","0x784"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("#0",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(18446744073709551600,64))), -Def(Tid(43, "%0000002b"), Attrs([Attr("address","0x784"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("#0",Imm(64)),Var("R29",Imm(64)),LittleEndian(),64)), -Def(Tid(49, "%00000031"), Attrs([Attr("address","0x784"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("#0",Imm(64)),Int(8,64)),Var("R30",Imm(64)),LittleEndian(),64)), -Def(Tid(53, "%00000035"), Attrs([Attr("address","0x784"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("R31",Imm(64)), -Var("#0",Imm(64))), Def(Tid(59, "%0000003b"), Attrs([Attr("address","0x788"), -Attr("insn","mov x29, sp")]), Var("R29",Imm(64)), Var("R31",Imm(64))), -Def(Tid(66, "%00000042"), Attrs([Attr("address","0x78C"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R29",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(71, "%00000047"), Attrs([Attr("address","0x78C"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R30",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(75, "%0000004b"), Attrs([Attr("address","0x78C"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(16,64)))]), Jmps([Call(Tid(80, "%00000050"), - Attrs([Attr("address","0x790"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), Sub(Tid(1_380, "@_init"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x598")]), - "_init", Args([Arg(Tid(1_436, "%0000059c"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("_init_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(1_204, "@_init"), - Attrs([Attr("address","0x598")]), Phis([]), -Defs([Def(Tid(1_210, "%000004ba"), Attrs([Attr("address","0x59C"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("#6",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(18446744073709551600,64))), -Def(Tid(1_216, "%000004c0"), Attrs([Attr("address","0x59C"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("#6",Imm(64)),Var("R29",Imm(64)),LittleEndian(),64)), -Def(Tid(1_222, "%000004c6"), Attrs([Attr("address","0x59C"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("#6",Imm(64)),Int(8,64)),Var("R30",Imm(64)),LittleEndian(),64)), -Def(Tid(1_226, "%000004ca"), Attrs([Attr("address","0x59C"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("R31",Imm(64)), -Var("#6",Imm(64))), Def(Tid(1_232, "%000004d0"), - Attrs([Attr("address","0x5A0"), Attr("insn","mov x29, sp")]), - Var("R29",Imm(64)), Var("R31",Imm(64))), Def(Tid(1_237, "%000004d5"), - Attrs([Attr("address","0x5A4"), Attr("insn","bl #0xd0")]), - Var("R30",Imm(64)), Int(1448,64))]), Jmps([Call(Tid(1_239, "%000004d7"), - Attrs([Attr("address","0x5A4"), Attr("insn","bl #0xd0")]), Int(1,1), -(Direct(Tid(1_385, "@call_weak_fn")),Direct(Tid(1_241, "%000004d9"))))])), -Blk(Tid(1_241, "%000004d9"), Attrs([Attr("address","0x5A8")]), Phis([]), -Defs([Def(Tid(1_246, "%000004de"), Attrs([Attr("address","0x5A8"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R29",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(1_251, "%000004e3"), Attrs([Attr("address","0x5A8"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R30",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(1_255, "%000004e7"), Attrs([Attr("address","0x5A8"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(16,64)))]), Jmps([Call(Tid(1_260, "%000004ec"), - Attrs([Attr("address","0x5AC"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), Sub(Tid(1_381, "@_start"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x640"), -Attr("entry-point","()")]), "_start", Args([Arg(Tid(1_437, "%0000059d"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("_start_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(404, "@_start"), - Attrs([Attr("address","0x640")]), Phis([]), Defs([Def(Tid(409, "%00000199"), - Attrs([Attr("address","0x644"), Attr("insn","mov x29, #0x0")]), - Var("R29",Imm(64)), Int(0,64)), Def(Tid(414, "%0000019e"), - Attrs([Attr("address","0x648"), Attr("insn","mov x30, #0x0")]), - Var("R30",Imm(64)), Int(0,64)), Def(Tid(420, "%000001a4"), - Attrs([Attr("address","0x64C"), Attr("insn","mov x5, x0")]), - Var("R5",Imm(64)), Var("R0",Imm(64))), Def(Tid(427, "%000001ab"), - Attrs([Attr("address","0x650"), Attr("insn","ldr x1, [sp]")]), - Var("R1",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(433, "%000001b1"), Attrs([Attr("address","0x654"), -Attr("insn","add x2, sp, #0x8")]), Var("R2",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(8,64))), Def(Tid(439, "%000001b7"), - Attrs([Attr("address","0x658"), Attr("insn","mov x6, sp")]), - Var("R6",Imm(64)), Var("R31",Imm(64))), Def(Tid(444, "%000001bc"), - Attrs([Attr("address","0x65C"), Attr("insn","adrp x0, #65536")]), - Var("R0",Imm(64)), Int(65536,64)), Def(Tid(451, "%000001c3"), - Attrs([Attr("address","0x660"), Attr("insn","ldr x0, [x0, #0xff0]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(4080,64)),LittleEndian(),64)), -Def(Tid(456, "%000001c8"), Attrs([Attr("address","0x664"), -Attr("insn","mov x3, #0x0")]), Var("R3",Imm(64)), Int(0,64)), -Def(Tid(461, "%000001cd"), Attrs([Attr("address","0x668"), -Attr("insn","mov x4, #0x0")]), Var("R4",Imm(64)), Int(0,64)), -Def(Tid(466, "%000001d2"), Attrs([Attr("address","0x66C"), -Attr("insn","bl #-0x9c")]), Var("R30",Imm(64)), Int(1648,64))]), -Jmps([Call(Tid(469, "%000001d5"), Attrs([Attr("address","0x66C"), -Attr("insn","bl #-0x9c")]), Int(1,1), -(Direct(Tid(1_378, "@__libc_start_main")),Direct(Tid(471, "%000001d7"))))])), -Blk(Tid(471, "%000001d7"), Attrs([Attr("address","0x670")]), Phis([]), -Defs([Def(Tid(474, "%000001da"), Attrs([Attr("address","0x670"), -Attr("insn","bl #-0x70")]), Var("R30",Imm(64)), Int(1652,64))]), -Jmps([Call(Tid(477, "%000001dd"), Attrs([Attr("address","0x670"), -Attr("insn","bl #-0x70")]), Int(1,1), -(Direct(Tid(1_384, "@abort")),Direct(Tid(1_418, "%0000058a"))))])), -Blk(Tid(1_418, "%0000058a"), Attrs([]), Phis([]), Defs([]), -Jmps([Call(Tid(1_419, "%0000058b"), Attrs([]), Int(1,1), -(Direct(Tid(1_385, "@call_weak_fn")),))]))])), Sub(Tid(1_384, "@abort"), - Attrs([Attr("noreturn","()"), Attr("c.proto","void (*)(void)"), -Attr("address","0x600"), Attr("stub","()")]), "abort", Args([]), -Blks([Blk(Tid(475, "@abort"), Attrs([Attr("address","0x600")]), Phis([]), -Defs([Def(Tid(1_158, "%00000486"), Attrs([Attr("address","0x600"), -Attr("insn","adrp x16, #65536")]), Var("R16",Imm(64)), Int(65536,64)), -Def(Tid(1_165, "%0000048d"), Attrs([Attr("address","0x604"), -Attr("insn","ldr x17, [x16, #0xfc0]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(4032,64)),LittleEndian(),64)), -Def(Tid(1_171, "%00000493"), Attrs([Attr("address","0x608"), -Attr("insn","add x16, x16, #0xfc0")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(4032,64)))]), Jmps([Call(Tid(1_176, "%00000498"), - Attrs([Attr("address","0x60C"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), Sub(Tid(1_385, "@call_weak_fn"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x674")]), - "call_weak_fn", Args([Arg(Tid(1_438, "%0000059e"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("call_weak_fn_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(479, "@call_weak_fn"), - Attrs([Attr("address","0x674")]), Phis([]), Defs([Def(Tid(482, "%000001e2"), - Attrs([Attr("address","0x674"), Attr("insn","adrp x0, #65536")]), - Var("R0",Imm(64)), Int(65536,64)), Def(Tid(489, "%000001e9"), - Attrs([Attr("address","0x678"), Attr("insn","ldr x0, [x0, #0xfe8]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(4072,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(495, "%000001ef"), Attrs([Attr("address","0x67C"), -Attr("insn","cbz x0, #0x8")]), EQ(Var("R0",Imm(64)),Int(0,64)), -Direct(Tid(493, "%000001ed"))), Goto(Tid(1_420, "%0000058c"), Attrs([]), - Int(1,1), Direct(Tid(930, "%000003a2")))])), Blk(Tid(493, "%000001ed"), - Attrs([Attr("address","0x684")]), Phis([]), Defs([]), -Jmps([Call(Tid(501, "%000001f5"), Attrs([Attr("address","0x684"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))])), -Blk(Tid(930, "%000003a2"), Attrs([Attr("address","0x680")]), Phis([]), -Defs([]), Jmps([Goto(Tid(933, "%000003a5"), Attrs([Attr("address","0x680"), -Attr("insn","b #-0x90")]), Int(1,1), Direct(Tid(931, "@__gmon_start__")))])), -Blk(Tid(931, "@__gmon_start__"), Attrs([Attr("address","0x5F0")]), Phis([]), -Defs([Def(Tid(1_136, "%00000470"), Attrs([Attr("address","0x5F0"), -Attr("insn","adrp x16, #65536")]), Var("R16",Imm(64)), Int(65536,64)), -Def(Tid(1_143, "%00000477"), Attrs([Attr("address","0x5F4"), -Attr("insn","ldr x17, [x16, #0xfb8]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(4024,64)),LittleEndian(),64)), -Def(Tid(1_149, "%0000047d"), Attrs([Attr("address","0x5F8"), -Attr("insn","add x16, x16, #0xfb8")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(4024,64)))]), Jmps([Call(Tid(1_154, "%00000482"), - Attrs([Attr("address","0x5FC"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), -Sub(Tid(1_387, "@deregister_tm_clones"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x690")]), - "deregister_tm_clones", Args([Arg(Tid(1_439, "%0000059f"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("deregister_tm_clones_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(507, "@deregister_tm_clones"), - Attrs([Attr("address","0x690")]), Phis([]), Defs([Def(Tid(510, "%000001fe"), - Attrs([Attr("address","0x690"), Attr("insn","adrp x0, #69632")]), - Var("R0",Imm(64)), Int(69632,64)), Def(Tid(516, "%00000204"), - Attrs([Attr("address","0x694"), Attr("insn","add x0, x0, #0x10")]), - Var("R0",Imm(64)), PLUS(Var("R0",Imm(64)),Int(16,64))), -Def(Tid(521, "%00000209"), Attrs([Attr("address","0x698"), -Attr("insn","adrp x1, #69632")]), Var("R1",Imm(64)), Int(69632,64)), -Def(Tid(527, "%0000020f"), Attrs([Attr("address","0x69C"), -Attr("insn","add x1, x1, #0x10")]), Var("R1",Imm(64)), -PLUS(Var("R1",Imm(64)),Int(16,64))), Def(Tid(533, "%00000215"), - Attrs([Attr("address","0x6A0"), Attr("insn","cmp x1, x0")]), - Var("#1",Imm(64)), NOT(Var("R0",Imm(64)))), Def(Tid(538, "%0000021a"), - Attrs([Attr("address","0x6A0"), Attr("insn","cmp x1, x0")]), - Var("#2",Imm(64)), PLUS(Var("R1",Imm(64)),NOT(Var("R0",Imm(64))))), -Def(Tid(544, "%00000220"), Attrs([Attr("address","0x6A0"), -Attr("insn","cmp x1, x0")]), Var("VF",Imm(1)), -NEQ(SIGNED(65,PLUS(Var("#2",Imm(64)),Int(1,64))),PLUS(PLUS(SIGNED(65,Var("R1",Imm(64))),SIGNED(65,Var("#1",Imm(64)))),Int(1,65)))), -Def(Tid(550, "%00000226"), Attrs([Attr("address","0x6A0"), -Attr("insn","cmp x1, x0")]), Var("CF",Imm(1)), -NEQ(UNSIGNED(65,PLUS(Var("#2",Imm(64)),Int(1,64))),PLUS(PLUS(UNSIGNED(65,Var("R1",Imm(64))),UNSIGNED(65,Var("#1",Imm(64)))),Int(1,65)))), -Def(Tid(554, "%0000022a"), Attrs([Attr("address","0x6A0"), -Attr("insn","cmp x1, x0")]), Var("ZF",Imm(1)), -EQ(PLUS(Var("#2",Imm(64)),Int(1,64)),Int(0,64))), Def(Tid(558, "%0000022e"), - Attrs([Attr("address","0x6A0"), Attr("insn","cmp x1, x0")]), - Var("NF",Imm(1)), Extract(63,63,PLUS(Var("#2",Imm(64)),Int(1,64))))]), -Jmps([Goto(Tid(564, "%00000234"), Attrs([Attr("address","0x6A4"), -Attr("insn","b.eq #0x18")]), EQ(Var("ZF",Imm(1)),Int(1,1)), -Direct(Tid(562, "%00000232"))), Goto(Tid(1_421, "%0000058d"), Attrs([]), - Int(1,1), Direct(Tid(900, "%00000384")))])), Blk(Tid(900, "%00000384"), - Attrs([Attr("address","0x6A8")]), Phis([]), Defs([Def(Tid(903, "%00000387"), - Attrs([Attr("address","0x6A8"), Attr("insn","adrp x1, #65536")]), - Var("R1",Imm(64)), Int(65536,64)), Def(Tid(910, "%0000038e"), - Attrs([Attr("address","0x6AC"), Attr("insn","ldr x1, [x1, #0xfd0]")]), - Var("R1",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R1",Imm(64)),Int(4048,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(915, "%00000393"), Attrs([Attr("address","0x6B0"), -Attr("insn","cbz x1, #0xc")]), EQ(Var("R1",Imm(64)),Int(0,64)), -Direct(Tid(562, "%00000232"))), Goto(Tid(1_422, "%0000058e"), Attrs([]), - Int(1,1), Direct(Tid(919, "%00000397")))])), Blk(Tid(562, "%00000232"), - Attrs([Attr("address","0x6BC")]), Phis([]), Defs([]), -Jmps([Call(Tid(570, "%0000023a"), Attrs([Attr("address","0x6BC"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))])), -Blk(Tid(919, "%00000397"), Attrs([Attr("address","0x6B4")]), Phis([]), -Defs([Def(Tid(923, "%0000039b"), Attrs([Attr("address","0x6B4"), -Attr("insn","mov x16, x1")]), Var("R16",Imm(64)), Var("R1",Imm(64)))]), -Jmps([Call(Tid(928, "%000003a0"), Attrs([Attr("address","0x6B8"), -Attr("insn","br x16")]), Int(1,1), (Indirect(Var("R16",Imm(64))),))]))])), -Sub(Tid(1_390, "@frame_dummy"), Attrs([Attr("c.proto","signed (*)(void)"), -Attr("address","0x750")]), "frame_dummy", Args([Arg(Tid(1_440, "%000005a0"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("frame_dummy_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(722, "@frame_dummy"), - Attrs([Attr("address","0x750")]), Phis([]), Defs([]), -Jmps([Call(Tid(724, "%000002d4"), Attrs([Attr("address","0x750"), -Attr("insn","b #-0x90")]), Int(1,1), -(Direct(Tid(1_394, "@register_tm_clones")),))]))])), Sub(Tid(1_391, "@main"), - Attrs([Attr("c.proto","signed (*)(signed argc, const char** argv)"), -Attr("address","0x754")]), "main", Args([Arg(Tid(1_441, "%000005a1"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("main_argc",Imm(32)), -LOW(32,Var("R0",Imm(64))), In()), Arg(Tid(1_442, "%000005a2"), - Attrs([Attr("c.layout","**[char : 8]"), Attr("c.data","Top:u8 ptr ptr"), -Attr("c.type"," const char**")]), Var("main_argv",Imm(64)), -Var("R1",Imm(64)), Both()), Arg(Tid(1_443, "%000005a3"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("main_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(726, "@main"), - Attrs([Attr("address","0x754")]), Phis([]), Defs([Def(Tid(729, "%000002d9"), - Attrs([Attr("address","0x754"), Attr("insn","adrp x0, #65536")]), - Var("R0",Imm(64)), Int(65536,64)), Def(Tid(736, "%000002e0"), - Attrs([Attr("address","0x758"), Attr("insn","ldr x0, [x0, #0xfe0]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(4064,64)),LittleEndian(),64)), -Def(Tid(743, "%000002e7"), Attrs([Attr("address","0x75C"), -Attr("insn","ldr w0, [x0]")]), Var("R0",Imm(64)), -UNSIGNED(64,Load(Var("mem",Mem(64,8)),Var("R0",Imm(64)),LittleEndian(),32))), -Def(Tid(749, "%000002ed"), Attrs([Attr("address","0x760"), -Attr("insn","cmp w0, #0x0")]), Var("#4",Imm(32)), -PLUS(Extract(31,0,Var("R0",Imm(64))),Int(4294967295,32))), -Def(Tid(754, "%000002f2"), Attrs([Attr("address","0x760"), -Attr("insn","cmp w0, #0x0")]), Var("VF",Imm(1)), -NEQ(SIGNED(33,PLUS(Var("#4",Imm(32)),Int(1,32))),PLUS(SIGNED(33,Extract(31,0,Var("R0",Imm(64)))),Int(0,33)))), -Def(Tid(759, "%000002f7"), Attrs([Attr("address","0x760"), -Attr("insn","cmp w0, #0x0")]), Var("CF",Imm(1)), -NEQ(UNSIGNED(33,PLUS(Var("#4",Imm(32)),Int(1,32))),PLUS(UNSIGNED(33,Extract(31,0,Var("R0",Imm(64)))),Int(4294967296,33)))), -Def(Tid(763, "%000002fb"), Attrs([Attr("address","0x760"), -Attr("insn","cmp w0, #0x0")]), Var("ZF",Imm(1)), -EQ(PLUS(Var("#4",Imm(32)),Int(1,32)),Int(0,32))), Def(Tid(767, "%000002ff"), - Attrs([Attr("address","0x760"), Attr("insn","cmp w0, #0x0")]), - Var("NF",Imm(1)), Extract(31,31,PLUS(Var("#4",Imm(32)),Int(1,32))))]), -Jmps([Goto(Tid(773, "%00000305"), Attrs([Attr("address","0x764"), -Attr("insn","b.ne #0x14")]), NEQ(Var("ZF",Imm(1)),Int(1,1)), -Direct(Tid(771, "%00000303"))), Goto(Tid(1_423, "%0000058f"), Attrs([]), - Int(1,1), Direct(Tid(786, "%00000312")))])), Blk(Tid(786, "%00000312"), - Attrs([Attr("address","0x768")]), Phis([]), Defs([Def(Tid(789, "%00000315"), - Attrs([Attr("address","0x768"), Attr("insn","adrp x0, #65536")]), - Var("R0",Imm(64)), Int(65536,64)), Def(Tid(796, "%0000031c"), - Attrs([Attr("address","0x76C"), Attr("insn","ldr x0, [x0, #0xfe0]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(4064,64)),LittleEndian(),64)), -Def(Tid(801, "%00000321"), Attrs([Attr("address","0x770"), -Attr("insn","mov w1, #0x1")]), Var("R1",Imm(64)), Int(1,64)), -Def(Tid(809, "%00000329"), Attrs([Attr("address","0x774"), -Attr("insn","str w1, [x0]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("R0",Imm(64)),Extract(31,0,Var("R1",Imm(64))),LittleEndian(),32))]), -Jmps([Goto(Tid(1_424, "%00000590"), Attrs([]), Int(1,1), -Direct(Tid(771, "%00000303")))])), Blk(Tid(771, "%00000303"), - Attrs([Attr("address","0x778")]), Phis([]), Defs([Def(Tid(779, "%0000030b"), - Attrs([Attr("address","0x778"), Attr("insn","mov w0, #0x0")]), - Var("R0",Imm(64)), Int(0,64))]), Jmps([Call(Tid(784, "%00000310"), - Attrs([Attr("address","0x77C"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), -Sub(Tid(1_394, "@register_tm_clones"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x6C0")]), - "register_tm_clones", Args([Arg(Tid(1_444, "%000005a4"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("register_tm_clones_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(572, "@register_tm_clones"), Attrs([Attr("address","0x6C0")]), - Phis([]), Defs([Def(Tid(575, "%0000023f"), Attrs([Attr("address","0x6C0"), -Attr("insn","adrp x0, #69632")]), Var("R0",Imm(64)), Int(69632,64)), -Def(Tid(581, "%00000245"), Attrs([Attr("address","0x6C4"), -Attr("insn","add x0, x0, #0x10")]), Var("R0",Imm(64)), -PLUS(Var("R0",Imm(64)),Int(16,64))), Def(Tid(586, "%0000024a"), - Attrs([Attr("address","0x6C8"), Attr("insn","adrp x1, #69632")]), - Var("R1",Imm(64)), Int(69632,64)), Def(Tid(592, "%00000250"), - Attrs([Attr("address","0x6CC"), Attr("insn","add x1, x1, #0x10")]), - Var("R1",Imm(64)), PLUS(Var("R1",Imm(64)),Int(16,64))), -Def(Tid(599, "%00000257"), Attrs([Attr("address","0x6D0"), -Attr("insn","sub x1, x1, x0")]), Var("R1",Imm(64)), -PLUS(PLUS(Var("R1",Imm(64)),NOT(Var("R0",Imm(64)))),Int(1,64))), -Def(Tid(605, "%0000025d"), Attrs([Attr("address","0x6D4"), -Attr("insn","lsr x2, x1, #63")]), Var("R2",Imm(64)), -Concat(Int(0,63),Extract(63,63,Var("R1",Imm(64))))), -Def(Tid(612, "%00000264"), Attrs([Attr("address","0x6D8"), -Attr("insn","add x1, x2, x1, asr #3")]), Var("R1",Imm(64)), -PLUS(Var("R2",Imm(64)),ARSHIFT(Var("R1",Imm(64)),Int(3,3)))), -Def(Tid(618, "%0000026a"), Attrs([Attr("address","0x6DC"), -Attr("insn","asr x1, x1, #1")]), Var("R1",Imm(64)), -SIGNED(64,Extract(63,1,Var("R1",Imm(64)))))]), -Jmps([Goto(Tid(624, "%00000270"), Attrs([Attr("address","0x6E0"), -Attr("insn","cbz x1, #0x18")]), EQ(Var("R1",Imm(64)),Int(0,64)), -Direct(Tid(622, "%0000026e"))), Goto(Tid(1_425, "%00000591"), Attrs([]), - Int(1,1), Direct(Tid(870, "%00000366")))])), Blk(Tid(870, "%00000366"), - Attrs([Attr("address","0x6E4")]), Phis([]), Defs([Def(Tid(873, "%00000369"), - Attrs([Attr("address","0x6E4"), Attr("insn","adrp x2, #65536")]), - Var("R2",Imm(64)), Int(65536,64)), Def(Tid(880, "%00000370"), - Attrs([Attr("address","0x6E8"), Attr("insn","ldr x2, [x2, #0xff8]")]), - Var("R2",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R2",Imm(64)),Int(4088,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(885, "%00000375"), Attrs([Attr("address","0x6EC"), -Attr("insn","cbz x2, #0xc")]), EQ(Var("R2",Imm(64)),Int(0,64)), -Direct(Tid(622, "%0000026e"))), Goto(Tid(1_426, "%00000592"), Attrs([]), - Int(1,1), Direct(Tid(889, "%00000379")))])), Blk(Tid(622, "%0000026e"), - Attrs([Attr("address","0x6F8")]), Phis([]), Defs([]), -Jmps([Call(Tid(630, "%00000276"), Attrs([Attr("address","0x6F8"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))])), -Blk(Tid(889, "%00000379"), Attrs([Attr("address","0x6F0")]), Phis([]), -Defs([Def(Tid(893, "%0000037d"), Attrs([Attr("address","0x6F0"), -Attr("insn","mov x16, x2")]), Var("R16",Imm(64)), Var("R2",Imm(64)))]), -Jmps([Call(Tid(898, "%00000382"), Attrs([Attr("address","0x6F4"), -Attr("insn","br x16")]), Int(1,1), -(Indirect(Var("R16",Imm(64))),))]))]))]))) \ No newline at end of file diff --git a/src/test/correct/ifglobal/gcc_pic/ifglobal.bir b/src/test/correct/ifglobal/gcc_pic/ifglobal.bir deleted file mode 100644 index 105bc39f4..000000000 --- a/src/test/correct/ifglobal/gcc_pic/ifglobal.bir +++ /dev/null @@ -1,243 +0,0 @@ -00000593: program -0000055d: sub __cxa_finalize(__cxa_finalize_result) -00000594: __cxa_finalize_result :: out u32 = low:32[R0] - -00000362: -0000045a: R16 := 0x10000 -00000461: R17 := mem[R16 + 0xFB0, el]:u64 -00000467: R16 := R16 + 0xFB0 -0000046c: call R17 with noreturn - -0000055e: sub __do_global_dtors_aux(__do_global_dtors_aux_result) -00000595: __do_global_dtors_aux_result :: out u32 = low:32[R0] - -0000027a: -0000027e: #3 := R31 - 0x20 -00000284: mem := mem with [#3, el]:u64 <- R29 -0000028a: mem := mem with [#3 + 8, el]:u64 <- R30 -0000028e: R31 := #3 -00000294: R29 := R31 -0000029c: mem := mem with [R31 + 0x10, el]:u64 <- R19 -000002a1: R19 := 0x11000 -000002a8: R0 := pad:64[mem[R19 + 0x10]] -000002af: when 31:0[R0] <> 0 goto %000002ad -00000587: goto %0000032b - -0000032b: -0000032e: R0 := 0x10000 -00000335: R0 := mem[R0 + 0xFD8, el]:u64 -0000033b: when R0 = 0 goto %00000339 -00000588: goto %00000352 - -00000352: -00000355: R0 := 0x11000 -0000035c: R0 := mem[R0 + 8, el]:u64 -00000361: R30 := 0x730 -00000364: call @__cxa_finalize with return %00000339 - -00000339: -00000341: R30 := 0x734 -00000343: call @deregister_tm_clones with return %00000345 - -00000345: -00000348: R0 := 1 -00000350: mem := mem with [R19 + 0x10] <- 7:0[R0] -00000589: goto %000002ad - -000002ad: -000002b7: R19 := mem[R31 + 0x10, el]:u64 -000002be: R29 := mem[R31, el]:u64 -000002c3: R30 := mem[R31 + 8, el]:u64 -000002c7: R31 := R31 + 0x20 -000002cc: call R30 with noreturn - -00000562: sub __libc_start_main(__libc_start_main_main, __libc_start_main_arg2, __libc_start_main_arg3, __libc_start_main_auxv, __libc_start_main_result) -00000596: __libc_start_main_main :: in u64 = R0 -00000597: __libc_start_main_arg2 :: in u32 = low:32[R1] -00000598: __libc_start_main_arg3 :: in out u64 = R2 -00000599: __libc_start_main_auxv :: in out u64 = R3 -0000059a: __libc_start_main_result :: out u32 = low:32[R0] - -000001d3: -00000444: R16 := 0x10000 -0000044b: R17 := mem[R16 + 0xFA8, el]:u64 -00000451: R16 := R16 + 0xFA8 -00000456: call R17 with noreturn - -00000563: sub _fini(_fini_result) -0000059b: _fini_result :: out u32 = low:32[R0] - -0000001f: -00000025: #0 := R31 - 0x10 -0000002b: mem := mem with [#0, el]:u64 <- R29 -00000031: mem := mem with [#0 + 8, el]:u64 <- R30 -00000035: R31 := #0 -0000003b: R29 := R31 -00000042: R29 := mem[R31, el]:u64 -00000047: R30 := mem[R31 + 8, el]:u64 -0000004b: R31 := R31 + 0x10 -00000050: call R30 with noreturn - -00000564: sub _init(_init_result) -0000059c: _init_result :: out u32 = low:32[R0] - -000004b4: -000004ba: #6 := R31 - 0x10 -000004c0: mem := mem with [#6, el]:u64 <- R29 -000004c6: mem := mem with [#6 + 8, el]:u64 <- R30 -000004ca: R31 := #6 -000004d0: R29 := R31 -000004d5: R30 := 0x5A8 -000004d7: call @call_weak_fn with return %000004d9 - -000004d9: -000004de: R29 := mem[R31, el]:u64 -000004e3: R30 := mem[R31 + 8, el]:u64 -000004e7: R31 := R31 + 0x10 -000004ec: call R30 with noreturn - -00000565: sub _start(_start_result) -0000059d: _start_result :: out u32 = low:32[R0] - -00000194: -00000199: R29 := 0 -0000019e: R30 := 0 -000001a4: R5 := R0 -000001ab: R1 := mem[R31, el]:u64 -000001b1: R2 := R31 + 8 -000001b7: R6 := R31 -000001bc: R0 := 0x10000 -000001c3: R0 := mem[R0 + 0xFF0, el]:u64 -000001c8: R3 := 0 -000001cd: R4 := 0 -000001d2: R30 := 0x670 -000001d5: call @__libc_start_main with return %000001d7 - -000001d7: -000001da: R30 := 0x674 -000001dd: call @abort with return %0000058a - -0000058a: -0000058b: call @call_weak_fn with noreturn - -00000568: sub abort() - - -000001db: -00000486: R16 := 0x10000 -0000048d: R17 := mem[R16 + 0xFC0, el]:u64 -00000493: R16 := R16 + 0xFC0 -00000498: call R17 with noreturn - -00000569: sub call_weak_fn(call_weak_fn_result) -0000059e: call_weak_fn_result :: out u32 = low:32[R0] - -000001df: -000001e2: R0 := 0x10000 -000001e9: R0 := mem[R0 + 0xFE8, el]:u64 -000001ef: when R0 = 0 goto %000001ed -0000058c: goto %000003a2 - -000001ed: -000001f5: call R30 with noreturn - -000003a2: -000003a5: goto @__gmon_start__ - -000003a3: -00000470: R16 := 0x10000 -00000477: R17 := mem[R16 + 0xFB8, el]:u64 -0000047d: R16 := R16 + 0xFB8 -00000482: call R17 with noreturn - -0000056b: sub deregister_tm_clones(deregister_tm_clones_result) -0000059f: deregister_tm_clones_result :: out u32 = low:32[R0] - -000001fb: -000001fe: R0 := 0x11000 -00000204: R0 := R0 + 0x10 -00000209: R1 := 0x11000 -0000020f: R1 := R1 + 0x10 -00000215: #1 := ~R0 -0000021a: #2 := R1 + ~R0 -00000220: VF := extend:65[#2 + 1] <> extend:65[R1] + extend:65[#1] + 1 -00000226: CF := pad:65[#2 + 1] <> pad:65[R1] + pad:65[#1] + 1 -0000022a: ZF := #2 + 1 = 0 -0000022e: NF := 63:63[#2 + 1] -00000234: when ZF goto %00000232 -0000058d: goto %00000384 - -00000384: -00000387: R1 := 0x10000 -0000038e: R1 := mem[R1 + 0xFD0, el]:u64 -00000393: when R1 = 0 goto %00000232 -0000058e: goto %00000397 - -00000232: -0000023a: call R30 with noreturn - -00000397: -0000039b: R16 := R1 -000003a0: call R16 with noreturn - -0000056e: sub frame_dummy(frame_dummy_result) -000005a0: frame_dummy_result :: out u32 = low:32[R0] - -000002d2: -000002d4: call @register_tm_clones with noreturn - -0000056f: sub main(main_argc, main_argv, main_result) -000005a1: main_argc :: in u32 = low:32[R0] -000005a2: main_argv :: in out u64 = R1 -000005a3: main_result :: out u32 = low:32[R0] - -000002d6: -000002d9: R0 := 0x10000 -000002e0: R0 := mem[R0 + 0xFE0, el]:u64 -000002e7: R0 := pad:64[mem[R0, el]:u32] -000002ed: #4 := 31:0[R0] - 1 -000002f2: VF := extend:33[#4 + 1] <> extend:33[31:0[R0]] + 0 -000002f7: CF := pad:33[#4 + 1] <> pad:33[31:0[R0]] - 0x100000000 -000002fb: ZF := #4 + 1 = 0 -000002ff: NF := 31:31[#4 + 1] -00000305: when ZF <> 1 goto %00000303 -0000058f: goto %00000312 - -00000312: -00000315: R0 := 0x10000 -0000031c: R0 := mem[R0 + 0xFE0, el]:u64 -00000321: R1 := 1 -00000329: mem := mem with [R0, el]:u32 <- 31:0[R1] -00000590: goto %00000303 - -00000303: -0000030b: R0 := 0 -00000310: call R30 with noreturn - -00000572: sub register_tm_clones(register_tm_clones_result) -000005a4: register_tm_clones_result :: out u32 = low:32[R0] - -0000023c: -0000023f: R0 := 0x11000 -00000245: R0 := R0 + 0x10 -0000024a: R1 := 0x11000 -00000250: R1 := R1 + 0x10 -00000257: R1 := R1 + ~R0 + 1 -0000025d: R2 := 0.63:63[R1] -00000264: R1 := R2 + (R1 ~>> 3) -0000026a: R1 := extend:64[63:1[R1]] -00000270: when R1 = 0 goto %0000026e -00000591: goto %00000366 - -00000366: -00000369: R2 := 0x10000 -00000370: R2 := mem[R2 + 0xFF8, el]:u64 -00000375: when R2 = 0 goto %0000026e -00000592: goto %00000379 - -0000026e: -00000276: call R30 with noreturn - -00000379: -0000037d: R16 := R2 -00000382: call R16 with noreturn diff --git a/src/test/correct/ifglobal/gcc_pic/ifglobal.expected b/src/test/correct/ifglobal/gcc_pic/ifglobal.expected index e4e2fc592..22218d066 100644 --- a/src/test/correct/ifglobal/gcc_pic/ifglobal.expected +++ b/src/test/correct/ifglobal/gcc_pic/ifglobal.expected @@ -79,7 +79,7 @@ procedure {:extern} rely_reflexive(); procedure {:extern} guarantee_reflexive(); modifies Gamma_mem, mem; -procedure main_1876(); +procedure main(); modifies CF, Gamma_CF, Gamma_NF, Gamma_R0, Gamma_R1, Gamma_VF, Gamma_ZF, Gamma_mem, NF, R0, R1, VF, ZF, mem; free requires (memory_load64_le(mem, 69632bv64) == 0bv64); free requires (memory_load64_le(mem, 69640bv64) == 69640bv64); @@ -96,25 +96,25 @@ procedure main_1876(); free ensures (memory_load64_le(mem, 69616bv64) == 1876bv64); free ensures (memory_load64_le(mem, 69640bv64) == 69640bv64); -implementation main_1876() +implementation main() { var #4: bv32; + var $load$18: bv64; + var $load$19: bv32; + var $load$20: bv64; var Gamma_#4: bool; - var Gamma_load18: bool; - var Gamma_load19: bool; - var Gamma_load20: bool; - var load18: bv64; - var load19: bv32; - var load20: bv64; + var Gamma_$load$18: bool; + var Gamma_$load$19: bool; + var Gamma_$load$20: bool; lmain: assume {:captureState "lmain"} true; R0, Gamma_R0 := 65536bv64, true; call rely(); - load18, Gamma_load18 := memory_load64_le(mem, bvadd64(R0, 4064bv64)), (gamma_load64(Gamma_mem, bvadd64(R0, 4064bv64)) || L(mem, bvadd64(R0, 4064bv64))); - R0, Gamma_R0 := load18, Gamma_load18; + $load$18, Gamma_$load$18 := memory_load64_le(mem, bvadd64(R0, 4064bv64)), (gamma_load64(Gamma_mem, bvadd64(R0, 4064bv64)) || L(mem, bvadd64(R0, 4064bv64))); + R0, Gamma_R0 := $load$18, Gamma_$load$18; call rely(); - load19, Gamma_load19 := memory_load32_le(mem, R0), (gamma_load32(Gamma_mem, R0) || L(mem, R0)); - R0, Gamma_R0 := zero_extend32_32(load19), Gamma_load19; + $load$19, Gamma_$load$19 := memory_load32_le(mem, R0), (gamma_load32(Gamma_mem, R0) || L(mem, R0)); + R0, Gamma_R0 := zero_extend32_32($load$19), Gamma_$load$19; #4, Gamma_#4 := bvadd32(R0[32:0], 4294967295bv32), Gamma_R0; VF, Gamma_VF := bvnot1(bvcomp33(sign_extend1_32(bvadd32(#4, 1bv32)), bvadd33(sign_extend1_32(R0[32:0]), 0bv33))), (Gamma_R0 && Gamma_#4); CF, Gamma_CF := bvnot1(bvcomp33(zero_extend1_32(bvadd32(#4, 1bv32)), bvadd33(zero_extend1_32(R0[32:0]), 4294967296bv33))), (Gamma_R0 && Gamma_#4); @@ -122,32 +122,32 @@ implementation main_1876() NF, Gamma_NF := bvadd32(#4, 1bv32)[32:31], Gamma_#4; assert Gamma_ZF; goto lmain_goto_l00000303, lmain_goto_l00000312; - lmain_goto_l00000312: - assume {:captureState "lmain_goto_l00000312"} true; - assume (bvnot1(bvcomp1(ZF, 1bv1)) == 0bv1); + l00000312: + assume {:captureState "l00000312"} true; R0, Gamma_R0 := 65536bv64, true; call rely(); - load20, Gamma_load20 := memory_load64_le(mem, bvadd64(R0, 4064bv64)), (gamma_load64(Gamma_mem, bvadd64(R0, 4064bv64)) || L(mem, bvadd64(R0, 4064bv64))); - R0, Gamma_R0 := load20, Gamma_load20; + $load$20, Gamma_$load$20 := memory_load64_le(mem, bvadd64(R0, 4064bv64)), (gamma_load64(Gamma_mem, bvadd64(R0, 4064bv64)) || L(mem, bvadd64(R0, 4064bv64))); + R0, Gamma_R0 := $load$20, Gamma_$load$20; R1, Gamma_R1 := 1bv64, true; call rely(); assert (L(mem, R0) ==> Gamma_R1); mem, Gamma_mem := memory_store32_le(mem, R0, R1[32:0]), gamma_store32(Gamma_mem, R0, Gamma_R1); assume {:captureState "%00000329"} true; - goto l00000312; - l00000312: - assume {:captureState "l00000312"} true; goto l00000303; + l00000303: + assume {:captureState "l00000303"} true; + R0, Gamma_R0 := 0bv64, true; + goto main_basil_return; lmain_goto_l00000303: assume {:captureState "lmain_goto_l00000303"} true; assume (bvnot1(bvcomp1(ZF, 1bv1)) != 0bv1); goto l00000303; - l00000303: - assume {:captureState "l00000303"} true; - R0, Gamma_R0 := 0bv64, true; - goto main_1876_basil_return; - main_1876_basil_return: - assume {:captureState "main_1876_basil_return"} true; + lmain_goto_l00000312: + assume {:captureState "lmain_goto_l00000312"} true; + assume (bvnot1(bvcomp1(ZF, 1bv1)) == 0bv1); + goto l00000312; + main_basil_return: + assume {:captureState "main_basil_return"} true; return; } diff --git a/src/test/correct/ifglobal/gcc_pic/ifglobal.gts b/src/test/correct/ifglobal/gcc_pic/ifglobal.gts deleted file mode 100644 index 56254e54c..000000000 Binary files a/src/test/correct/ifglobal/gcc_pic/ifglobal.gts and /dev/null differ diff --git a/src/test/correct/ifglobal/gcc_pic/ifglobal.md5sum b/src/test/correct/ifglobal/gcc_pic/ifglobal.md5sum new file mode 100644 index 000000000..7c4a6c1d0 --- /dev/null +++ b/src/test/correct/ifglobal/gcc_pic/ifglobal.md5sum @@ -0,0 +1,5 @@ +48147c5e8aeb5d9adc2b482cab3779ed correct/ifglobal/gcc_pic/a.out +fe59b43e1473cd8c3e3fe462b6876912 correct/ifglobal/gcc_pic/ifglobal.adt +c79478a84f4147acd8c42a63d787d6af correct/ifglobal/gcc_pic/ifglobal.bir +1ef33e989ad191804079879792e0e1e5 correct/ifglobal/gcc_pic/ifglobal.relf +a6c119233d9a1f558d62f0473c58896a correct/ifglobal/gcc_pic/ifglobal.gts diff --git a/src/test/correct/ifglobal/gcc_pic/ifglobal.relf b/src/test/correct/ifglobal/gcc_pic/ifglobal.relf deleted file mode 100644 index 77dbe6f0b..000000000 --- a/src/test/correct/ifglobal/gcc_pic/ifglobal.relf +++ /dev/null @@ -1,122 +0,0 @@ - -Relocation section '.rela.dyn' at offset 0x460 contains 9 entries: - Offset Info Type Symbol's Value Symbol's Name + Addend -0000000000010d90 0000000000000403 R_AARCH64_RELATIVE 750 -0000000000010d98 0000000000000403 R_AARCH64_RELATIVE 700 -0000000000010fe0 0000000000000403 R_AARCH64_RELATIVE 11014 -0000000000010ff0 0000000000000403 R_AARCH64_RELATIVE 754 -0000000000011008 0000000000000403 R_AARCH64_RELATIVE 11008 -0000000000010fd0 0000000400000401 R_AARCH64_GLOB_DAT 0000000000000000 _ITM_deregisterTMCloneTable + 0 -0000000000010fd8 0000000500000401 R_AARCH64_GLOB_DAT 0000000000000000 __cxa_finalize@GLIBC_2.17 + 0 -0000000000010fe8 0000000600000401 R_AARCH64_GLOB_DAT 0000000000000000 __gmon_start__ + 0 -0000000000010ff8 0000000800000401 R_AARCH64_GLOB_DAT 0000000000000000 _ITM_registerTMCloneTable + 0 - -Relocation section '.rela.plt' at offset 0x538 contains 4 entries: - Offset Info Type Symbol's Value Symbol's Name + Addend -0000000000010fa8 0000000300000402 R_AARCH64_JUMP_SLOT 0000000000000000 __libc_start_main@GLIBC_2.34 + 0 -0000000000010fb0 0000000500000402 R_AARCH64_JUMP_SLOT 0000000000000000 __cxa_finalize@GLIBC_2.17 + 0 -0000000000010fb8 0000000600000402 R_AARCH64_JUMP_SLOT 0000000000000000 __gmon_start__ + 0 -0000000000010fc0 0000000700000402 R_AARCH64_JUMP_SLOT 0000000000000000 abort@GLIBC_2.17 + 0 - -Symbol table '.dynsym' contains 9 entries: - Num: Value Size Type Bind Vis Ndx Name - 0: 0000000000000000 0 NOTYPE LOCAL DEFAULT UND - 1: 0000000000000598 0 SECTION LOCAL DEFAULT 11 .init - 2: 0000000000011000 0 SECTION LOCAL DEFAULT 22 .data - 3: 0000000000000000 0 FUNC GLOBAL DEFAULT UND __libc_start_main@GLIBC_2.34 (2) - 4: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_deregisterTMCloneTable - 5: 0000000000000000 0 FUNC WEAK DEFAULT UND __cxa_finalize@GLIBC_2.17 (3) - 6: 0000000000000000 0 NOTYPE WEAK DEFAULT UND __gmon_start__ - 7: 0000000000000000 0 FUNC GLOBAL DEFAULT UND abort@GLIBC_2.17 (3) - 8: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_registerTMCloneTable - -Symbol table '.symtab' contains 88 entries: - Num: Value Size Type Bind Vis Ndx Name - 0: 0000000000000000 0 NOTYPE LOCAL DEFAULT UND - 1: 0000000000000238 0 SECTION LOCAL DEFAULT 1 .interp - 2: 0000000000000254 0 SECTION LOCAL DEFAULT 2 .note.gnu.build-id - 3: 0000000000000278 0 SECTION LOCAL DEFAULT 3 .note.ABI-tag - 4: 0000000000000298 0 SECTION LOCAL DEFAULT 4 .gnu.hash - 5: 00000000000002b8 0 SECTION LOCAL DEFAULT 5 .dynsym - 6: 0000000000000390 0 SECTION LOCAL DEFAULT 6 .dynstr - 7: 000000000000041e 0 SECTION LOCAL DEFAULT 7 .gnu.version - 8: 0000000000000430 0 SECTION LOCAL DEFAULT 8 .gnu.version_r - 9: 0000000000000460 0 SECTION LOCAL DEFAULT 9 .rela.dyn - 10: 0000000000000538 0 SECTION LOCAL DEFAULT 10 .rela.plt - 11: 0000000000000598 0 SECTION LOCAL DEFAULT 11 .init - 12: 00000000000005b0 0 SECTION LOCAL DEFAULT 12 .plt - 13: 0000000000000640 0 SECTION LOCAL DEFAULT 13 .text - 14: 0000000000000780 0 SECTION LOCAL DEFAULT 14 .fini - 15: 0000000000000794 0 SECTION LOCAL DEFAULT 15 .rodata - 16: 0000000000000798 0 SECTION LOCAL DEFAULT 16 .eh_frame_hdr - 17: 00000000000007d8 0 SECTION LOCAL DEFAULT 17 .eh_frame - 18: 0000000000010d90 0 SECTION LOCAL DEFAULT 18 .init_array - 19: 0000000000010d98 0 SECTION LOCAL DEFAULT 19 .fini_array - 20: 0000000000010da0 0 SECTION LOCAL DEFAULT 20 .dynamic - 21: 0000000000010f90 0 SECTION LOCAL DEFAULT 21 .got - 22: 0000000000011000 0 SECTION LOCAL DEFAULT 22 .data - 23: 0000000000011010 0 SECTION LOCAL DEFAULT 23 .bss - 24: 0000000000000000 0 SECTION LOCAL DEFAULT 24 .comment - 25: 0000000000000000 0 FILE LOCAL DEFAULT ABS Scrt1.o - 26: 0000000000000278 0 NOTYPE LOCAL DEFAULT 3 $d - 27: 0000000000000278 32 OBJECT LOCAL DEFAULT 3 __abi_tag - 28: 0000000000000640 0 NOTYPE LOCAL DEFAULT 13 $x - 29: 00000000000007ec 0 NOTYPE LOCAL DEFAULT 17 $d - 30: 0000000000000794 0 NOTYPE LOCAL DEFAULT 15 $d - 31: 0000000000000000 0 FILE LOCAL DEFAULT ABS crti.o - 32: 0000000000000674 0 NOTYPE LOCAL DEFAULT 13 $x - 33: 0000000000000674 20 FUNC LOCAL DEFAULT 13 call_weak_fn - 34: 0000000000000598 0 NOTYPE LOCAL DEFAULT 11 $x - 35: 0000000000000780 0 NOTYPE LOCAL DEFAULT 14 $x - 36: 0000000000000000 0 FILE LOCAL DEFAULT ABS crtn.o - 37: 00000000000005a8 0 NOTYPE LOCAL DEFAULT 11 $x - 38: 000000000000078c 0 NOTYPE LOCAL DEFAULT 14 $x - 39: 0000000000000000 0 FILE LOCAL DEFAULT ABS crtstuff.c - 40: 0000000000000690 0 NOTYPE LOCAL DEFAULT 13 $x - 41: 0000000000000690 0 FUNC LOCAL DEFAULT 13 deregister_tm_clones - 42: 00000000000006c0 0 FUNC LOCAL DEFAULT 13 register_tm_clones - 43: 0000000000011008 0 NOTYPE LOCAL DEFAULT 22 $d - 44: 0000000000000700 0 FUNC LOCAL DEFAULT 13 __do_global_dtors_aux - 45: 0000000000011010 1 OBJECT LOCAL DEFAULT 23 completed.0 - 46: 0000000000010d98 0 NOTYPE LOCAL DEFAULT 19 $d - 47: 0000000000010d98 0 OBJECT LOCAL DEFAULT 19 __do_global_dtors_aux_fini_array_entry - 48: 0000000000000750 0 FUNC LOCAL DEFAULT 13 frame_dummy - 49: 0000000000010d90 0 NOTYPE LOCAL DEFAULT 18 $d - 50: 0000000000010d90 0 OBJECT LOCAL DEFAULT 18 __frame_dummy_init_array_entry - 51: 0000000000000800 0 NOTYPE LOCAL DEFAULT 17 $d - 52: 0000000000011010 0 NOTYPE LOCAL DEFAULT 23 $d - 53: 0000000000000000 0 FILE LOCAL DEFAULT ABS ifglobal.c - 54: 0000000000011014 0 NOTYPE LOCAL DEFAULT 23 $d - 55: 0000000000000754 0 NOTYPE LOCAL DEFAULT 13 $x - 56: 0000000000000860 0 NOTYPE LOCAL DEFAULT 17 $d - 57: 0000000000000000 0 FILE LOCAL DEFAULT ABS crtstuff.c - 58: 0000000000000874 0 NOTYPE LOCAL DEFAULT 17 $d - 59: 0000000000000874 0 OBJECT LOCAL DEFAULT 17 __FRAME_END__ - 60: 0000000000000000 0 FILE LOCAL DEFAULT ABS - 61: 0000000000010da0 0 OBJECT LOCAL DEFAULT ABS _DYNAMIC - 62: 0000000000000798 0 NOTYPE LOCAL DEFAULT 16 __GNU_EH_FRAME_HDR - 63: 0000000000010fc8 0 OBJECT LOCAL DEFAULT ABS _GLOBAL_OFFSET_TABLE_ - 64: 00000000000005b0 0 NOTYPE LOCAL DEFAULT 12 $x - 65: 0000000000000000 0 FUNC GLOBAL DEFAULT UND __libc_start_main@GLIBC_2.34 - 66: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_deregisterTMCloneTable - 67: 0000000000011000 0 NOTYPE WEAK DEFAULT 22 data_start - 68: 0000000000011010 0 NOTYPE GLOBAL DEFAULT 23 __bss_start__ - 69: 0000000000000000 0 FUNC WEAK DEFAULT UND __cxa_finalize@GLIBC_2.17 - 70: 0000000000011018 0 NOTYPE GLOBAL DEFAULT 23 _bss_end__ - 71: 0000000000011010 0 NOTYPE GLOBAL DEFAULT 22 _edata - 72: 0000000000011014 4 OBJECT GLOBAL DEFAULT 23 x - 73: 0000000000000780 0 FUNC GLOBAL HIDDEN 14 _fini - 74: 0000000000011018 0 NOTYPE GLOBAL DEFAULT 23 __bss_end__ - 75: 0000000000011000 0 NOTYPE GLOBAL DEFAULT 22 __data_start - 76: 0000000000000000 0 NOTYPE WEAK DEFAULT UND __gmon_start__ - 77: 0000000000011008 0 OBJECT GLOBAL HIDDEN 22 __dso_handle - 78: 0000000000000000 0 FUNC GLOBAL DEFAULT UND abort@GLIBC_2.17 - 79: 0000000000000794 4 OBJECT GLOBAL DEFAULT 15 _IO_stdin_used - 80: 0000000000011018 0 NOTYPE GLOBAL DEFAULT 23 _end - 81: 0000000000000640 52 FUNC GLOBAL DEFAULT 13 _start - 82: 0000000000011018 0 NOTYPE GLOBAL DEFAULT 23 __end__ - 83: 0000000000011010 0 NOTYPE GLOBAL DEFAULT 23 __bss_start - 84: 0000000000000754 44 FUNC GLOBAL DEFAULT 13 main - 85: 0000000000011010 0 OBJECT GLOBAL HIDDEN 22 __TMC_END__ - 86: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_registerTMCloneTable - 87: 0000000000000598 0 FUNC GLOBAL HIDDEN 11 _init diff --git a/src/test/correct/ifglobal/gcc_pic/ifglobal_gtirb.expected b/src/test/correct/ifglobal/gcc_pic/ifglobal_gtirb.expected index a5d4f95c7..2a65ae6df 100644 --- a/src/test/correct/ifglobal/gcc_pic/ifglobal_gtirb.expected +++ b/src/test/correct/ifglobal/gcc_pic/ifglobal_gtirb.expected @@ -77,7 +77,7 @@ procedure {:extern} rely_reflexive(); procedure {:extern} guarantee_reflexive(); modifies Gamma_mem, mem; -procedure main_1876(); +procedure main(); modifies CF, Gamma_CF, Gamma_NF, Gamma_R0, Gamma_R1, Gamma_VF, Gamma_ZF, Gamma_mem, NF, R0, R1, VF, ZF, mem; free requires (memory_load64_le(mem, 69632bv64) == 0bv64); free requires (memory_load64_le(mem, 69640bv64) == 69640bv64); @@ -94,58 +94,58 @@ procedure main_1876(); free ensures (memory_load64_le(mem, 69616bv64) == 1876bv64); free ensures (memory_load64_le(mem, 69640bv64) == 69640bv64); -implementation main_1876() +implementation main() { - var Cse0__5_0_3: bv32; - var Gamma_Cse0__5_0_3: bool; - var Gamma_load20: bool; - var Gamma_load21: bool; - var Gamma_load22: bool; - var load20: bv64; - var load21: bv32; - var load22: bv64; - main_1876__0__Loy76gLhRcC4mniw9_LJhw: - assume {:captureState "main_1876__0__Loy76gLhRcC4mniw9_LJhw"} true; + var $load20: bv64; + var $load21: bv32; + var $load22: bv64; + var Cse0__5$0$3: bv32; + var Gamma_$load20: bool; + var Gamma_$load21: bool; + var Gamma_$load22: bool; + var Gamma_Cse0__5$0$3: bool; + $main$__0__$Loy76gLhRcC4mniw9_LJhw: + assume {:captureState "$main$__0__$Loy76gLhRcC4mniw9_LJhw"} true; R0, Gamma_R0 := 65536bv64, true; call rely(); - load20, Gamma_load20 := memory_load64_le(mem, bvadd64(R0, 4064bv64)), (gamma_load64(Gamma_mem, bvadd64(R0, 4064bv64)) || L(mem, bvadd64(R0, 4064bv64))); - R0, Gamma_R0 := load20, Gamma_load20; + $load20, Gamma_$load20 := memory_load64_le(mem, bvadd64(R0, 4064bv64)), (gamma_load64(Gamma_mem, bvadd64(R0, 4064bv64)) || L(mem, bvadd64(R0, 4064bv64))); + R0, Gamma_R0 := $load20, Gamma_$load20; call rely(); - load21, Gamma_load21 := memory_load32_le(mem, R0), (gamma_load32(Gamma_mem, R0) || L(mem, R0)); - R0, Gamma_R0 := zero_extend32_32(load21), Gamma_load21; - Cse0__5_0_3, Gamma_Cse0__5_0_3 := bvadd32(R0[32:0], 0bv32), Gamma_R0; - VF, Gamma_VF := bvnot1(bvcomp32(Cse0__5_0_3, Cse0__5_0_3)), Gamma_Cse0__5_0_3; - CF, Gamma_CF := bvnot1(bvcomp33(zero_extend1_32(Cse0__5_0_3), bvadd33(zero_extend1_32(R0[32:0]), 4294967296bv33))), (Gamma_R0 && Gamma_Cse0__5_0_3); - ZF, Gamma_ZF := bvcomp32(Cse0__5_0_3, 0bv32), Gamma_Cse0__5_0_3; - NF, Gamma_NF := Cse0__5_0_3[32:31], Gamma_Cse0__5_0_3; + $load21, Gamma_$load21 := memory_load32_le(mem, R0), (gamma_load32(Gamma_mem, R0) || L(mem, R0)); + R0, Gamma_R0 := zero_extend32_32($load21), Gamma_$load21; + Cse0__5$0$3, Gamma_Cse0__5$0$3 := bvadd32(R0[32:0], 0bv32), Gamma_R0; + VF, Gamma_VF := bvnot1(bvcomp32(Cse0__5$0$3, Cse0__5$0$3)), Gamma_Cse0__5$0$3; + CF, Gamma_CF := bvnot1(bvcomp33(zero_extend1_32(Cse0__5$0$3), bvadd33(zero_extend1_32(R0[32:0]), 4294967296bv33))), (Gamma_R0 && Gamma_Cse0__5$0$3); + ZF, Gamma_ZF := bvcomp32(Cse0__5$0$3, 0bv32), Gamma_Cse0__5$0$3; + NF, Gamma_NF := Cse0__5$0$3[32:31], Gamma_Cse0__5$0$3; assert Gamma_ZF; - goto main_1876__0__Loy76gLhRcC4mniw9_LJhw_goto_main_1876__2__3D20OWy7Q32oBwBQc0XvUQ, main_1876__0__Loy76gLhRcC4mniw9_LJhw_goto_main_1876__1__k_rnnhlXQEmc~8A~_rBrZg; - main_1876__0__Loy76gLhRcC4mniw9_LJhw_goto_main_1876__1__k_rnnhlXQEmc~8A~_rBrZg: - assume {:captureState "main_1876__0__Loy76gLhRcC4mniw9_LJhw_goto_main_1876__1__k_rnnhlXQEmc~8A~_rBrZg"} true; - assume (!(!(ZF == 1bv1))); + goto $main$__0__$Loy76gLhRcC4mniw9_LJhw_goto_$main$__2__$3D20OWy7Q32oBwBQc0XvUQ, $main$__0__$Loy76gLhRcC4mniw9_LJhw_goto_$main$__1__$k_rnnhlXQEmc~8A~_rBrZg; + $main$__1__$k_rnnhlXQEmc~8A~_rBrZg: + assume {:captureState "$main$__1__$k_rnnhlXQEmc~8A~_rBrZg"} true; R0, Gamma_R0 := 65536bv64, true; call rely(); - load22, Gamma_load22 := memory_load64_le(mem, bvadd64(R0, 4064bv64)), (gamma_load64(Gamma_mem, bvadd64(R0, 4064bv64)) || L(mem, bvadd64(R0, 4064bv64))); - R0, Gamma_R0 := load22, Gamma_load22; + $load22, Gamma_$load22 := memory_load64_le(mem, bvadd64(R0, 4064bv64)), (gamma_load64(Gamma_mem, bvadd64(R0, 4064bv64)) || L(mem, bvadd64(R0, 4064bv64))); + R0, Gamma_R0 := $load22, Gamma_$load22; R1, Gamma_R1 := 1bv64, true; call rely(); assert (L(mem, R0) ==> Gamma_R1); mem, Gamma_mem := memory_store32_le(mem, R0, R1[32:0]), gamma_store32(Gamma_mem, R0, Gamma_R1); - assume {:captureState "1908_0"} true; - goto main_1876__1__k_rnnhlXQEmc~8A~_rBrZg; - main_1876__1__k_rnnhlXQEmc~8A~_rBrZg: - assume {:captureState "main_1876__1__k_rnnhlXQEmc~8A~_rBrZg"} true; - goto main_1876__2__3D20OWy7Q32oBwBQc0XvUQ; - main_1876__0__Loy76gLhRcC4mniw9_LJhw_goto_main_1876__2__3D20OWy7Q32oBwBQc0XvUQ: - assume {:captureState "main_1876__0__Loy76gLhRcC4mniw9_LJhw_goto_main_1876__2__3D20OWy7Q32oBwBQc0XvUQ"} true; - assume (!(ZF == 1bv1)); - goto main_1876__2__3D20OWy7Q32oBwBQc0XvUQ; - main_1876__2__3D20OWy7Q32oBwBQc0XvUQ: - assume {:captureState "main_1876__2__3D20OWy7Q32oBwBQc0XvUQ"} true; + assume {:captureState "1908$0"} true; + goto $main$__2__$3D20OWy7Q32oBwBQc0XvUQ; + $main$__2__$3D20OWy7Q32oBwBQc0XvUQ: + assume {:captureState "$main$__2__$3D20OWy7Q32oBwBQc0XvUQ"} true; R0, Gamma_R0 := 0bv64, true; - goto main_1876_basil_return; - main_1876_basil_return: - assume {:captureState "main_1876_basil_return"} true; + goto main_basil_return; + $main$__0__$Loy76gLhRcC4mniw9_LJhw_goto_$main$__2__$3D20OWy7Q32oBwBQc0XvUQ: + assume {:captureState "$main$__0__$Loy76gLhRcC4mniw9_LJhw_goto_$main$__2__$3D20OWy7Q32oBwBQc0XvUQ"} true; + assume (!(ZF == 1bv1)); + goto $main$__2__$3D20OWy7Q32oBwBQc0XvUQ; + $main$__0__$Loy76gLhRcC4mniw9_LJhw_goto_$main$__1__$k_rnnhlXQEmc~8A~_rBrZg: + assume {:captureState "$main$__0__$Loy76gLhRcC4mniw9_LJhw_goto_$main$__1__$k_rnnhlXQEmc~8A~_rBrZg"} true; + assume (!(!(ZF == 1bv1))); + goto $main$__1__$k_rnnhlXQEmc~8A~_rBrZg; + main_basil_return: + assume {:captureState "main_basil_return"} true; return; } diff --git a/src/test/correct/indirect_call/clang/indirect_call.gts b/src/test/correct/indirect_call/clang/indirect_call.gts deleted file mode 100644 index 692934b41..000000000 Binary files a/src/test/correct/indirect_call/clang/indirect_call.gts and /dev/null differ diff --git a/src/test/correct/indirect_call/clang/indirect_call.md5sum b/src/test/correct/indirect_call/clang/indirect_call.md5sum new file mode 100644 index 000000000..675e11c9a --- /dev/null +++ b/src/test/correct/indirect_call/clang/indirect_call.md5sum @@ -0,0 +1,3 @@ +cf83be26369d10dba380fb84b5269c22 correct/indirect_call/clang/a.out +139d93f429d8076bafddc3cd8d5cef94 correct/indirect_call/clang/indirect_call.relf +4e0d4bad5722970924a19f9bb9df2af2 correct/indirect_call/clang/indirect_call.gts diff --git a/src/test/correct/indirect_call/clang/indirect_call.relf b/src/test/correct/indirect_call/clang/indirect_call.relf deleted file mode 100644 index 5ff7097a0..000000000 --- a/src/test/correct/indirect_call/clang/indirect_call.relf +++ /dev/null @@ -1,126 +0,0 @@ - -Relocation section '.rela.dyn' at offset 0x480 contains 8 entries: - Offset Info Type Symbol's Value Symbol's Name + Addend -0000000000010dc8 0000000000000403 R_AARCH64_RELATIVE 750 -0000000000010dd0 0000000000000403 R_AARCH64_RELATIVE 700 -0000000000010fd8 0000000000000403 R_AARCH64_RELATIVE 770 -0000000000011030 0000000000000403 R_AARCH64_RELATIVE 11030 -0000000000010fc0 0000000400000401 R_AARCH64_GLOB_DAT 0000000000000000 _ITM_deregisterTMCloneTable + 0 -0000000000010fc8 0000000500000401 R_AARCH64_GLOB_DAT 0000000000000000 __cxa_finalize@GLIBC_2.17 + 0 -0000000000010fd0 0000000600000401 R_AARCH64_GLOB_DAT 0000000000000000 __gmon_start__ + 0 -0000000000010fe0 0000000800000401 R_AARCH64_GLOB_DAT 0000000000000000 _ITM_registerTMCloneTable + 0 - -Relocation section '.rela.plt' at offset 0x540 contains 5 entries: - Offset Info Type Symbol's Value Symbol's Name + Addend -0000000000011000 0000000300000402 R_AARCH64_JUMP_SLOT 0000000000000000 __libc_start_main@GLIBC_2.34 + 0 -0000000000011008 0000000500000402 R_AARCH64_JUMP_SLOT 0000000000000000 __cxa_finalize@GLIBC_2.17 + 0 -0000000000011010 0000000600000402 R_AARCH64_JUMP_SLOT 0000000000000000 __gmon_start__ + 0 -0000000000011018 0000000700000402 R_AARCH64_JUMP_SLOT 0000000000000000 abort@GLIBC_2.17 + 0 -0000000000011020 0000000900000402 R_AARCH64_JUMP_SLOT 0000000000000000 printf@GLIBC_2.17 + 0 - -Symbol table '.dynsym' contains 10 entries: - Num: Value Size Type Bind Vis Ndx Name - 0: 0000000000000000 0 NOTYPE LOCAL DEFAULT UND - 1: 00000000000005b8 0 SECTION LOCAL DEFAULT 11 .init - 2: 0000000000011028 0 SECTION LOCAL DEFAULT 23 .data - 3: 0000000000000000 0 FUNC GLOBAL DEFAULT UND __libc_start_main@GLIBC_2.34 (2) - 4: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_deregisterTMCloneTable - 5: 0000000000000000 0 FUNC WEAK DEFAULT UND __cxa_finalize@GLIBC_2.17 (3) - 6: 0000000000000000 0 NOTYPE WEAK DEFAULT UND __gmon_start__ - 7: 0000000000000000 0 FUNC GLOBAL DEFAULT UND abort@GLIBC_2.17 (3) - 8: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_registerTMCloneTable - 9: 0000000000000000 0 FUNC GLOBAL DEFAULT UND printf@GLIBC_2.17 (3) - -Symbol table '.symtab' contains 91 entries: - Num: Value Size Type Bind Vis Ndx Name - 0: 0000000000000000 0 NOTYPE LOCAL DEFAULT UND - 1: 0000000000000238 0 SECTION LOCAL DEFAULT 1 .interp - 2: 0000000000000254 0 SECTION LOCAL DEFAULT 2 .note.gnu.build-id - 3: 0000000000000278 0 SECTION LOCAL DEFAULT 3 .note.ABI-tag - 4: 0000000000000298 0 SECTION LOCAL DEFAULT 4 .gnu.hash - 5: 00000000000002b8 0 SECTION LOCAL DEFAULT 5 .dynsym - 6: 00000000000003a8 0 SECTION LOCAL DEFAULT 6 .dynstr - 7: 000000000000043c 0 SECTION LOCAL DEFAULT 7 .gnu.version - 8: 0000000000000450 0 SECTION LOCAL DEFAULT 8 .gnu.version_r - 9: 0000000000000480 0 SECTION LOCAL DEFAULT 9 .rela.dyn - 10: 0000000000000540 0 SECTION LOCAL DEFAULT 10 .rela.plt - 11: 00000000000005b8 0 SECTION LOCAL DEFAULT 11 .init - 12: 00000000000005d0 0 SECTION LOCAL DEFAULT 12 .plt - 13: 0000000000000640 0 SECTION LOCAL DEFAULT 13 .text - 14: 00000000000007b8 0 SECTION LOCAL DEFAULT 14 .fini - 15: 00000000000007cc 0 SECTION LOCAL DEFAULT 15 .rodata - 16: 00000000000007fc 0 SECTION LOCAL DEFAULT 16 .eh_frame_hdr - 17: 0000000000000840 0 SECTION LOCAL DEFAULT 17 .eh_frame - 18: 0000000000010dc8 0 SECTION LOCAL DEFAULT 18 .init_array - 19: 0000000000010dd0 0 SECTION LOCAL DEFAULT 19 .fini_array - 20: 0000000000010dd8 0 SECTION LOCAL DEFAULT 20 .dynamic - 21: 0000000000010fb8 0 SECTION LOCAL DEFAULT 21 .got - 22: 0000000000010fe8 0 SECTION LOCAL DEFAULT 22 .got.plt - 23: 0000000000011028 0 SECTION LOCAL DEFAULT 23 .data - 24: 0000000000011038 0 SECTION LOCAL DEFAULT 24 .bss - 25: 0000000000000000 0 SECTION LOCAL DEFAULT 25 .comment - 26: 0000000000000000 0 FILE LOCAL DEFAULT ABS Scrt1.o - 27: 0000000000000278 0 NOTYPE LOCAL DEFAULT 3 $d - 28: 0000000000000278 32 OBJECT LOCAL DEFAULT 3 __abi_tag - 29: 0000000000000640 0 NOTYPE LOCAL DEFAULT 13 $x - 30: 0000000000000854 0 NOTYPE LOCAL DEFAULT 17 $d - 31: 00000000000007cc 0 NOTYPE LOCAL DEFAULT 15 $d - 32: 0000000000000000 0 FILE LOCAL DEFAULT ABS crti.o - 33: 0000000000000674 0 NOTYPE LOCAL DEFAULT 13 $x - 34: 0000000000000674 20 FUNC LOCAL DEFAULT 13 call_weak_fn - 35: 00000000000005b8 0 NOTYPE LOCAL DEFAULT 11 $x - 36: 00000000000007b8 0 NOTYPE LOCAL DEFAULT 14 $x - 37: 0000000000000000 0 FILE LOCAL DEFAULT ABS crtn.o - 38: 00000000000005c8 0 NOTYPE LOCAL DEFAULT 11 $x - 39: 00000000000007c4 0 NOTYPE LOCAL DEFAULT 14 $x - 40: 0000000000000000 0 FILE LOCAL DEFAULT ABS crtstuff.c - 41: 0000000000000690 0 NOTYPE LOCAL DEFAULT 13 $x - 42: 0000000000000690 0 FUNC LOCAL DEFAULT 13 deregister_tm_clones - 43: 00000000000006c0 0 FUNC LOCAL DEFAULT 13 register_tm_clones - 44: 0000000000011030 0 NOTYPE LOCAL DEFAULT 23 $d - 45: 0000000000000700 0 FUNC LOCAL DEFAULT 13 __do_global_dtors_aux - 46: 0000000000011038 1 OBJECT LOCAL DEFAULT 24 completed.0 - 47: 0000000000010dd0 0 NOTYPE LOCAL DEFAULT 19 $d - 48: 0000000000010dd0 0 OBJECT LOCAL DEFAULT 19 __do_global_dtors_aux_fini_array_entry - 49: 0000000000000750 0 FUNC LOCAL DEFAULT 13 frame_dummy - 50: 0000000000010dc8 0 NOTYPE LOCAL DEFAULT 18 $d - 51: 0000000000010dc8 0 OBJECT LOCAL DEFAULT 18 __frame_dummy_init_array_entry - 52: 0000000000000868 0 NOTYPE LOCAL DEFAULT 17 $d - 53: 0000000000011038 0 NOTYPE LOCAL DEFAULT 24 $d - 54: 0000000000000000 0 FILE LOCAL DEFAULT ABS indirect_call.c - 55: 0000000000000754 0 NOTYPE LOCAL DEFAULT 13 $x.0 - 56: 00000000000007d0 0 NOTYPE LOCAL DEFAULT 15 $d.1 - 57: 000000000000002a 0 NOTYPE LOCAL DEFAULT 25 $d.2 - 58: 00000000000008c8 0 NOTYPE LOCAL DEFAULT 17 $d.3 - 59: 0000000000000000 0 FILE LOCAL DEFAULT ABS crtstuff.c - 60: 000000000000092c 0 NOTYPE LOCAL DEFAULT 17 $d - 61: 000000000000092c 0 OBJECT LOCAL DEFAULT 17 __FRAME_END__ - 62: 0000000000000000 0 FILE LOCAL DEFAULT ABS - 63: 0000000000010dd8 0 OBJECT LOCAL DEFAULT ABS _DYNAMIC - 64: 00000000000007fc 0 NOTYPE LOCAL DEFAULT 16 __GNU_EH_FRAME_HDR - 65: 0000000000010fb8 0 OBJECT LOCAL DEFAULT ABS _GLOBAL_OFFSET_TABLE_ - 66: 00000000000005d0 0 NOTYPE LOCAL DEFAULT 12 $x - 67: 0000000000000000 0 FUNC GLOBAL DEFAULT UND __libc_start_main@GLIBC_2.34 - 68: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_deregisterTMCloneTable - 69: 0000000000011028 0 NOTYPE WEAK DEFAULT 23 data_start - 70: 0000000000011038 0 NOTYPE GLOBAL DEFAULT 24 __bss_start__ - 71: 0000000000000000 0 FUNC WEAK DEFAULT UND __cxa_finalize@GLIBC_2.17 - 72: 0000000000011040 0 NOTYPE GLOBAL DEFAULT 24 _bss_end__ - 73: 0000000000011038 0 NOTYPE GLOBAL DEFAULT 23 _edata - 74: 00000000000007b8 0 FUNC GLOBAL HIDDEN 14 _fini - 75: 0000000000011040 0 NOTYPE GLOBAL DEFAULT 24 __bss_end__ - 76: 0000000000000754 28 FUNC GLOBAL DEFAULT 13 greet - 77: 0000000000011028 0 NOTYPE GLOBAL DEFAULT 23 __data_start - 78: 0000000000000000 0 NOTYPE WEAK DEFAULT UND __gmon_start__ - 79: 0000000000011030 0 OBJECT GLOBAL HIDDEN 23 __dso_handle - 80: 0000000000000000 0 FUNC GLOBAL DEFAULT UND abort@GLIBC_2.17 - 81: 00000000000007cc 4 OBJECT GLOBAL DEFAULT 15 _IO_stdin_used - 82: 0000000000011040 0 NOTYPE GLOBAL DEFAULT 24 _end - 83: 0000000000000640 52 FUNC GLOBAL DEFAULT 13 _start - 84: 0000000000011040 0 NOTYPE GLOBAL DEFAULT 24 __end__ - 85: 0000000000011038 0 NOTYPE GLOBAL DEFAULT 24 __bss_start - 86: 0000000000000770 72 FUNC GLOBAL DEFAULT 13 main - 87: 0000000000011038 0 OBJECT GLOBAL HIDDEN 23 __TMC_END__ - 88: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_registerTMCloneTable - 89: 0000000000000000 0 FUNC GLOBAL DEFAULT UND printf@GLIBC_2.17 - 90: 00000000000005b8 0 FUNC GLOBAL HIDDEN 11 _init diff --git a/src/test/correct/indirect_call/clang/indirect_call_gtirb.expected b/src/test/correct/indirect_call/clang/indirect_call_gtirb.expected index de0fa8e26..62f14ceab 100644 --- a/src/test/correct/indirect_call/clang/indirect_call_gtirb.expected +++ b/src/test/correct/indirect_call/clang/indirect_call_gtirb.expected @@ -98,7 +98,7 @@ procedure {:extern} rely_reflexive(); procedure {:extern} guarantee_reflexive(); modifies Gamma_mem, mem; -procedure FUN_630_1584(); +procedure FUN_630(); modifies Gamma_R16, Gamma_R17, Gamma_mem, R16, R17, mem; free requires (memory_load8_le(mem, 1996bv64) == 1bv8); free requires (memory_load8_le(mem, 1997bv64) == 0bv8); @@ -135,25 +135,22 @@ procedure FUN_630_1584(); free ensures (memory_load64_le(mem, 69592bv64) == 1904bv64); free ensures (memory_load64_le(mem, 69680bv64) == 69680bv64); -implementation FUN_630_1584() +implementation FUN_630() { - var Gamma_load1: bool; - var load1: bv64; - FUN_630_1584__0__49PTrR3fTD2lKP8wnhJ57g: - assume {:captureState "FUN_630_1584__0__49PTrR3fTD2lKP8wnhJ57g"} true; + var $load1: bv64; + var Gamma_$load1: bool; + $FUN_630$__0__$49PTrR3fTD2lKP8wnhJ57g: + assume {:captureState "$FUN_630$__0__$49PTrR3fTD2lKP8wnhJ57g"} true; R16, Gamma_R16 := 69632bv64, true; call rely(); - load1, Gamma_load1 := memory_load64_le(mem, bvadd64(R16, 32bv64)), (gamma_load64(Gamma_mem, bvadd64(R16, 32bv64)) || L(mem, bvadd64(R16, 32bv64))); - R17, Gamma_R17 := load1, Gamma_load1; + $load1, Gamma_$load1 := memory_load64_le(mem, bvadd64(R16, 32bv64)), (gamma_load64(Gamma_mem, bvadd64(R16, 32bv64)) || L(mem, bvadd64(R16, 32bv64))); + R17, Gamma_R17 := $load1, Gamma_$load1; R16, Gamma_R16 := bvadd64(R16, 32bv64), Gamma_R16; call printf(); - goto FUN_630_1584_basil_return; - FUN_630_1584_basil_return: - assume {:captureState "FUN_630_1584_basil_return"} true; - return; + assume false; } -procedure greet_1876(); +procedure greet(); modifies Gamma_R0, Gamma_R16, Gamma_R17, Gamma_R29, Gamma_R30, Gamma_R31, Gamma_mem, Gamma_stack, R0, R16, R17, R29, R30, R31, mem, stack; free requires (memory_load8_le(mem, 1996bv64) == 1bv8); free requires (memory_load8_le(mem, 1997bv64) == 0bv8); @@ -194,42 +191,42 @@ procedure greet_1876(); free ensures (memory_load64_le(mem, 69592bv64) == 1904bv64); free ensures (memory_load64_le(mem, 69680bv64) == 69680bv64); -implementation greet_1876() +implementation greet() { - var Cse0__5_0_0: bv64; - var Gamma_Cse0__5_0_0: bool; - var Gamma_load2: bool; - var Gamma_load3: bool; - var load2: bv64; - var load3: bv64; - greet_1876__0__Nd2KKa~UT46Es~75P1pNcg: - assume {:captureState "greet_1876__0__Nd2KKa~UT46Es~75P1pNcg"} true; - Cse0__5_0_0, Gamma_Cse0__5_0_0 := bvadd64(R31, 18446744073709551600bv64), Gamma_R31; - stack, Gamma_stack := memory_store64_le(stack, Cse0__5_0_0, R29), gamma_store64(Gamma_stack, Cse0__5_0_0, Gamma_R29); - assume {:captureState "1876_1"} true; - stack, Gamma_stack := memory_store64_le(stack, bvadd64(Cse0__5_0_0, 8bv64), R30), gamma_store64(Gamma_stack, bvadd64(Cse0__5_0_0, 8bv64), Gamma_R30); - assume {:captureState "1876_2"} true; - R31, Gamma_R31 := Cse0__5_0_0, Gamma_Cse0__5_0_0; + var $load2: bv64; + var $load3: bv64; + var Cse0__5$0$0: bv64; + var Gamma_$load2: bool; + var Gamma_$load3: bool; + var Gamma_Cse0__5$0$0: bool; + $greet$__0__$Nd2KKa~UT46Es~75P1pNcg: + assume {:captureState "$greet$__0__$Nd2KKa~UT46Es~75P1pNcg"} true; + Cse0__5$0$0, Gamma_Cse0__5$0$0 := bvadd64(R31, 18446744073709551600bv64), Gamma_R31; + stack, Gamma_stack := memory_store64_le(stack, Cse0__5$0$0, R29), gamma_store64(Gamma_stack, Cse0__5$0$0, Gamma_R29); + assume {:captureState "1876$1"} true; + stack, Gamma_stack := memory_store64_le(stack, bvadd64(Cse0__5$0$0, 8bv64), R30), gamma_store64(Gamma_stack, bvadd64(Cse0__5$0$0, 8bv64), Gamma_R30); + assume {:captureState "1876$2"} true; + R31, Gamma_R31 := Cse0__5$0$0, Gamma_Cse0__5$0$0; R29, Gamma_R29 := R31, Gamma_R31; R0, Gamma_R0 := 0bv64, true; R0, Gamma_R0 := bvadd64(R0, 2000bv64), Gamma_R0; R30, Gamma_R30 := 1896bv64, true; - call FUN_630_1584(); - goto greet_1876__1__wP8zXF~mT7CtEXlgRwnnfA; - greet_1876__1__wP8zXF~mT7CtEXlgRwnnfA: - assume {:captureState "greet_1876__1__wP8zXF~mT7CtEXlgRwnnfA"} true; - load2, Gamma_load2 := memory_load64_le(stack, R31), gamma_load64(Gamma_stack, R31); - R29, Gamma_R29 := load2, Gamma_load2; - load3, Gamma_load3 := memory_load64_le(stack, bvadd64(R31, 8bv64)), gamma_load64(Gamma_stack, bvadd64(R31, 8bv64)); - R30, Gamma_R30 := load3, Gamma_load3; + call FUN_630(); + goto $greet$__1__$wP8zXF~mT7CtEXlgRwnnfA; + $greet$__1__$wP8zXF~mT7CtEXlgRwnnfA: + assume {:captureState "$greet$__1__$wP8zXF~mT7CtEXlgRwnnfA"} true; + $load2, Gamma_$load2 := memory_load64_le(stack, R31), gamma_load64(Gamma_stack, R31); + R29, Gamma_R29 := $load2, Gamma_$load2; + $load3, Gamma_$load3 := memory_load64_le(stack, bvadd64(R31, 8bv64)), gamma_load64(Gamma_stack, bvadd64(R31, 8bv64)); + R30, Gamma_R30 := $load3, Gamma_$load3; R31, Gamma_R31 := bvadd64(R31, 16bv64), Gamma_R31; - goto greet_1876_basil_return; - greet_1876_basil_return: - assume {:captureState "greet_1876_basil_return"} true; + goto greet_basil_return; + greet_basil_return: + assume {:captureState "greet_basil_return"} true; return; } -procedure main_1904(); +procedure main(); modifies Gamma_R0, Gamma_R16, Gamma_R17, Gamma_R29, Gamma_R30, Gamma_R31, Gamma_R8, Gamma_mem, Gamma_stack, R0, R16, R17, R29, R30, R31, R8, mem, stack; free requires (memory_load64_le(mem, 69672bv64) == 0bv64); free requires (memory_load64_le(mem, 69680bv64) == 69680bv64); @@ -272,63 +269,63 @@ procedure main_1904(); free ensures (memory_load64_le(mem, 69592bv64) == 1904bv64); free ensures (memory_load64_le(mem, 69680bv64) == 69680bv64); -implementation main_1904() +implementation main() { - var Cse0__5_0_1: bv64; - var Cse0__5_1_1: bv64; - var Gamma_Cse0__5_0_1: bool; - var Gamma_Cse0__5_1_1: bool; - var Gamma_load21: bool; - var Gamma_load22: bool; - var Gamma_load23: bool; - var Gamma_load24: bool; - var load21: bv32; - var load22: bv64; - var load23: bv64; - var load24: bv64; - main_1904__0__YfoEKj0KQgmJWDAtkqhLtQ: - assume {:captureState "main_1904__0__YfoEKj0KQgmJWDAtkqhLtQ"} true; + var $load21: bv32; + var $load22: bv64; + var $load23: bv64; + var $load24: bv64; + var Cse0__5$0$1: bv64; + var Cse0__5$1$1: bv64; + var Gamma_$load21: bool; + var Gamma_$load22: bool; + var Gamma_$load23: bool; + var Gamma_$load24: bool; + var Gamma_Cse0__5$0$1: bool; + var Gamma_Cse0__5$1$1: bool; + $main$__0__$YfoEKj0KQgmJWDAtkqhLtQ: + assume {:captureState "$main$__0__$YfoEKj0KQgmJWDAtkqhLtQ"} true; R31, Gamma_R31 := bvadd64(R31, 18446744073709551568bv64), Gamma_R31; - Cse0__5_0_1, Gamma_Cse0__5_0_1 := bvadd64(R31, 32bv64), Gamma_R31; - stack, Gamma_stack := memory_store64_le(stack, Cse0__5_0_1, R29), gamma_store64(Gamma_stack, Cse0__5_0_1, Gamma_R29); - assume {:captureState "1908_1"} true; - stack, Gamma_stack := memory_store64_le(stack, bvadd64(Cse0__5_0_1, 8bv64), R30), gamma_store64(Gamma_stack, bvadd64(Cse0__5_0_1, 8bv64), Gamma_R30); - assume {:captureState "1908_2"} true; + Cse0__5$0$1, Gamma_Cse0__5$0$1 := bvadd64(R31, 32bv64), Gamma_R31; + stack, Gamma_stack := memory_store64_le(stack, Cse0__5$0$1, R29), gamma_store64(Gamma_stack, Cse0__5$0$1, Gamma_R29); + assume {:captureState "1908$1"} true; + stack, Gamma_stack := memory_store64_le(stack, bvadd64(Cse0__5$0$1, 8bv64), R30), gamma_store64(Gamma_stack, bvadd64(Cse0__5$0$1, 8bv64), Gamma_R30); + assume {:captureState "1908$2"} true; R29, Gamma_R29 := bvadd64(R31, 32bv64), Gamma_R31; R8, Gamma_R8 := 0bv64, true; stack, Gamma_stack := memory_store32_le(stack, bvadd64(R31, 12bv64), R8[32:0]), gamma_store32(Gamma_stack, bvadd64(R31, 12bv64), Gamma_R8); - assume {:captureState "1920_0"} true; + assume {:captureState "1920$0"} true; stack, Gamma_stack := memory_store32_le(stack, bvadd64(R29, 18446744073709551612bv64), 0bv32), gamma_store32(Gamma_stack, bvadd64(R29, 18446744073709551612bv64), true); - assume {:captureState "1924_0"} true; + assume {:captureState "1924$0"} true; R8, Gamma_R8 := 0bv64, true; R8, Gamma_R8 := bvadd64(R8, 1876bv64), Gamma_R8; stack, Gamma_stack := memory_store64_le(stack, bvadd64(R31, 16bv64), R8), gamma_store64(Gamma_stack, bvadd64(R31, 16bv64), Gamma_R8); - assume {:captureState "1936_0"} true; + assume {:captureState "1936$0"} true; R0, Gamma_R0 := 0bv64, true; R0, Gamma_R0 := bvadd64(R0, 2015bv64), Gamma_R0; R30, Gamma_R30 := 1952bv64, true; - call FUN_630_1584(); - goto main_1904__1__2meKsDplTtaQ3v5DgFlGYQ; - main_1904__1__2meKsDplTtaQ3v5DgFlGYQ: - assume {:captureState "main_1904__1__2meKsDplTtaQ3v5DgFlGYQ"} true; - load24, Gamma_load24 := memory_load64_le(stack, bvadd64(R31, 16bv64)), gamma_load64(Gamma_stack, bvadd64(R31, 16bv64)); - R8, Gamma_R8 := load24, Gamma_load24; + call FUN_630(); + goto $main$__1__$2meKsDplTtaQ3v5DgFlGYQ; + $main$__1__$2meKsDplTtaQ3v5DgFlGYQ: + assume {:captureState "$main$__1__$2meKsDplTtaQ3v5DgFlGYQ"} true; + $load24, Gamma_$load24 := memory_load64_le(stack, bvadd64(R31, 16bv64)), gamma_load64(Gamma_stack, bvadd64(R31, 16bv64)); + R8, Gamma_R8 := $load24, Gamma_$load24; R30, Gamma_R30 := 1960bv64, true; - call greet_1876(); - goto main_1904__2__ZjG4NofsQHGQIBdy45MZMg; - main_1904__2__ZjG4NofsQHGQIBdy45MZMg: - assume {:captureState "main_1904__2__ZjG4NofsQHGQIBdy45MZMg"} true; - load21, Gamma_load21 := memory_load32_le(stack, bvadd64(R31, 12bv64)), gamma_load32(Gamma_stack, bvadd64(R31, 12bv64)); - R0, Gamma_R0 := zero_extend32_32(load21), Gamma_load21; - Cse0__5_1_1, Gamma_Cse0__5_1_1 := bvadd64(R31, 32bv64), Gamma_R31; - load22, Gamma_load22 := memory_load64_le(stack, Cse0__5_1_1), gamma_load64(Gamma_stack, Cse0__5_1_1); - R29, Gamma_R29 := load22, Gamma_load22; - load23, Gamma_load23 := memory_load64_le(stack, bvadd64(Cse0__5_1_1, 8bv64)), gamma_load64(Gamma_stack, bvadd64(Cse0__5_1_1, 8bv64)); - R30, Gamma_R30 := load23, Gamma_load23; + call greet(); + goto $main$__2__$ZjG4NofsQHGQIBdy45MZMg; + $main$__2__$ZjG4NofsQHGQIBdy45MZMg: + assume {:captureState "$main$__2__$ZjG4NofsQHGQIBdy45MZMg"} true; + $load21, Gamma_$load21 := memory_load32_le(stack, bvadd64(R31, 12bv64)), gamma_load32(Gamma_stack, bvadd64(R31, 12bv64)); + R0, Gamma_R0 := zero_extend32_32($load21), Gamma_$load21; + Cse0__5$1$1, Gamma_Cse0__5$1$1 := bvadd64(R31, 32bv64), Gamma_R31; + $load22, Gamma_$load22 := memory_load64_le(stack, Cse0__5$1$1), gamma_load64(Gamma_stack, Cse0__5$1$1); + R29, Gamma_R29 := $load22, Gamma_$load22; + $load23, Gamma_$load23 := memory_load64_le(stack, bvadd64(Cse0__5$1$1, 8bv64)), gamma_load64(Gamma_stack, bvadd64(Cse0__5$1$1, 8bv64)); + R30, Gamma_R30 := $load23, Gamma_$load23; R31, Gamma_R31 := bvadd64(R31, 48bv64), Gamma_R31; - goto main_1904_basil_return; - main_1904_basil_return: - assume {:captureState "main_1904_basil_return"} true; + goto main_basil_return; + main_basil_return: + assume {:captureState "main_basil_return"} true; return; } diff --git a/src/test/correct/indirect_call/clang_pic/indirect_call.gts b/src/test/correct/indirect_call/clang_pic/indirect_call.gts deleted file mode 100644 index d8e0ed31d..000000000 Binary files a/src/test/correct/indirect_call/clang_pic/indirect_call.gts and /dev/null differ diff --git a/src/test/correct/indirect_call/clang_pic/indirect_call.md5sum b/src/test/correct/indirect_call/clang_pic/indirect_call.md5sum new file mode 100644 index 000000000..bd9a444f5 --- /dev/null +++ b/src/test/correct/indirect_call/clang_pic/indirect_call.md5sum @@ -0,0 +1,3 @@ +605cf044775dc216d2facdb28cf6db20 correct/indirect_call/clang_pic/a.out +b085e7b0c11f01c5849cee99d1f0b226 correct/indirect_call/clang_pic/indirect_call.relf +e24a01a854e616c0501c702ed25dc4fe correct/indirect_call/clang_pic/indirect_call.gts diff --git a/src/test/correct/indirect_call/clang_pic/indirect_call.relf b/src/test/correct/indirect_call/clang_pic/indirect_call.relf deleted file mode 100644 index aab4e31ed..000000000 --- a/src/test/correct/indirect_call/clang_pic/indirect_call.relf +++ /dev/null @@ -1,127 +0,0 @@ - -Relocation section '.rela.dyn' at offset 0x480 contains 9 entries: - Offset Info Type Symbol's Value Symbol's Name + Addend -0000000000010dc0 0000000000000403 R_AARCH64_RELATIVE 790 -0000000000010dc8 0000000000000403 R_AARCH64_RELATIVE 740 -0000000000010fc8 0000000000000403 R_AARCH64_RELATIVE 794 -0000000000010fd8 0000000000000403 R_AARCH64_RELATIVE 7b0 -0000000000011030 0000000000000403 R_AARCH64_RELATIVE 11030 -0000000000010fb8 0000000400000401 R_AARCH64_GLOB_DAT 0000000000000000 _ITM_deregisterTMCloneTable + 0 -0000000000010fc0 0000000500000401 R_AARCH64_GLOB_DAT 0000000000000000 __cxa_finalize@GLIBC_2.17 + 0 -0000000000010fd0 0000000600000401 R_AARCH64_GLOB_DAT 0000000000000000 __gmon_start__ + 0 -0000000000010fe0 0000000800000401 R_AARCH64_GLOB_DAT 0000000000000000 _ITM_registerTMCloneTable + 0 - -Relocation section '.rela.plt' at offset 0x558 contains 5 entries: - Offset Info Type Symbol's Value Symbol's Name + Addend -0000000000011000 0000000300000402 R_AARCH64_JUMP_SLOT 0000000000000000 __libc_start_main@GLIBC_2.34 + 0 -0000000000011008 0000000500000402 R_AARCH64_JUMP_SLOT 0000000000000000 __cxa_finalize@GLIBC_2.17 + 0 -0000000000011010 0000000600000402 R_AARCH64_JUMP_SLOT 0000000000000000 __gmon_start__ + 0 -0000000000011018 0000000700000402 R_AARCH64_JUMP_SLOT 0000000000000000 abort@GLIBC_2.17 + 0 -0000000000011020 0000000900000402 R_AARCH64_JUMP_SLOT 0000000000000000 printf@GLIBC_2.17 + 0 - -Symbol table '.dynsym' contains 10 entries: - Num: Value Size Type Bind Vis Ndx Name - 0: 0000000000000000 0 NOTYPE LOCAL DEFAULT UND - 1: 00000000000005d0 0 SECTION LOCAL DEFAULT 11 .init - 2: 0000000000011028 0 SECTION LOCAL DEFAULT 23 .data - 3: 0000000000000000 0 FUNC GLOBAL DEFAULT UND __libc_start_main@GLIBC_2.34 (2) - 4: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_deregisterTMCloneTable - 5: 0000000000000000 0 FUNC WEAK DEFAULT UND __cxa_finalize@GLIBC_2.17 (3) - 6: 0000000000000000 0 NOTYPE WEAK DEFAULT UND __gmon_start__ - 7: 0000000000000000 0 FUNC GLOBAL DEFAULT UND abort@GLIBC_2.17 (3) - 8: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_registerTMCloneTable - 9: 0000000000000000 0 FUNC GLOBAL DEFAULT UND printf@GLIBC_2.17 (3) - -Symbol table '.symtab' contains 91 entries: - Num: Value Size Type Bind Vis Ndx Name - 0: 0000000000000000 0 NOTYPE LOCAL DEFAULT UND - 1: 0000000000000238 0 SECTION LOCAL DEFAULT 1 .interp - 2: 0000000000000254 0 SECTION LOCAL DEFAULT 2 .note.gnu.build-id - 3: 0000000000000278 0 SECTION LOCAL DEFAULT 3 .note.ABI-tag - 4: 0000000000000298 0 SECTION LOCAL DEFAULT 4 .gnu.hash - 5: 00000000000002b8 0 SECTION LOCAL DEFAULT 5 .dynsym - 6: 00000000000003a8 0 SECTION LOCAL DEFAULT 6 .dynstr - 7: 000000000000043c 0 SECTION LOCAL DEFAULT 7 .gnu.version - 8: 0000000000000450 0 SECTION LOCAL DEFAULT 8 .gnu.version_r - 9: 0000000000000480 0 SECTION LOCAL DEFAULT 9 .rela.dyn - 10: 0000000000000558 0 SECTION LOCAL DEFAULT 10 .rela.plt - 11: 00000000000005d0 0 SECTION LOCAL DEFAULT 11 .init - 12: 00000000000005f0 0 SECTION LOCAL DEFAULT 12 .plt - 13: 0000000000000680 0 SECTION LOCAL DEFAULT 13 .text - 14: 00000000000007f8 0 SECTION LOCAL DEFAULT 14 .fini - 15: 000000000000080c 0 SECTION LOCAL DEFAULT 15 .rodata - 16: 000000000000083c 0 SECTION LOCAL DEFAULT 16 .eh_frame_hdr - 17: 0000000000000880 0 SECTION LOCAL DEFAULT 17 .eh_frame - 18: 0000000000010dc0 0 SECTION LOCAL DEFAULT 18 .init_array - 19: 0000000000010dc8 0 SECTION LOCAL DEFAULT 19 .fini_array - 20: 0000000000010dd0 0 SECTION LOCAL DEFAULT 20 .dynamic - 21: 0000000000010fb0 0 SECTION LOCAL DEFAULT 21 .got - 22: 0000000000010fe8 0 SECTION LOCAL DEFAULT 22 .got.plt - 23: 0000000000011028 0 SECTION LOCAL DEFAULT 23 .data - 24: 0000000000011038 0 SECTION LOCAL DEFAULT 24 .bss - 25: 0000000000000000 0 SECTION LOCAL DEFAULT 25 .comment - 26: 0000000000000000 0 FILE LOCAL DEFAULT ABS Scrt1.o - 27: 0000000000000278 0 NOTYPE LOCAL DEFAULT 3 $d - 28: 0000000000000278 32 OBJECT LOCAL DEFAULT 3 __abi_tag - 29: 0000000000000680 0 NOTYPE LOCAL DEFAULT 13 $x - 30: 0000000000000894 0 NOTYPE LOCAL DEFAULT 17 $d - 31: 000000000000080c 0 NOTYPE LOCAL DEFAULT 15 $d - 32: 0000000000000000 0 FILE LOCAL DEFAULT ABS crti.o - 33: 00000000000006b4 0 NOTYPE LOCAL DEFAULT 13 $x - 34: 00000000000006b4 20 FUNC LOCAL DEFAULT 13 call_weak_fn - 35: 00000000000005d0 0 NOTYPE LOCAL DEFAULT 11 $x - 36: 00000000000007f8 0 NOTYPE LOCAL DEFAULT 14 $x - 37: 0000000000000000 0 FILE LOCAL DEFAULT ABS crtn.o - 38: 00000000000005e0 0 NOTYPE LOCAL DEFAULT 11 $x - 39: 0000000000000804 0 NOTYPE LOCAL DEFAULT 14 $x - 40: 0000000000000000 0 FILE LOCAL DEFAULT ABS crtstuff.c - 41: 00000000000006d0 0 NOTYPE LOCAL DEFAULT 13 $x - 42: 00000000000006d0 0 FUNC LOCAL DEFAULT 13 deregister_tm_clones - 43: 0000000000000700 0 FUNC LOCAL DEFAULT 13 register_tm_clones - 44: 0000000000011030 0 NOTYPE LOCAL DEFAULT 23 $d - 45: 0000000000000740 0 FUNC LOCAL DEFAULT 13 __do_global_dtors_aux - 46: 0000000000011038 1 OBJECT LOCAL DEFAULT 24 completed.0 - 47: 0000000000010dc8 0 NOTYPE LOCAL DEFAULT 19 $d - 48: 0000000000010dc8 0 OBJECT LOCAL DEFAULT 19 __do_global_dtors_aux_fini_array_entry - 49: 0000000000000790 0 FUNC LOCAL DEFAULT 13 frame_dummy - 50: 0000000000010dc0 0 NOTYPE LOCAL DEFAULT 18 $d - 51: 0000000000010dc0 0 OBJECT LOCAL DEFAULT 18 __frame_dummy_init_array_entry - 52: 00000000000008a8 0 NOTYPE LOCAL DEFAULT 17 $d - 53: 0000000000011038 0 NOTYPE LOCAL DEFAULT 24 $d - 54: 0000000000000000 0 FILE LOCAL DEFAULT ABS indirect_call.c - 55: 0000000000000794 0 NOTYPE LOCAL DEFAULT 13 $x.0 - 56: 0000000000000810 0 NOTYPE LOCAL DEFAULT 15 $d.1 - 57: 000000000000002a 0 NOTYPE LOCAL DEFAULT 25 $d.2 - 58: 0000000000000908 0 NOTYPE LOCAL DEFAULT 17 $d.3 - 59: 0000000000000000 0 FILE LOCAL DEFAULT ABS crtstuff.c - 60: 000000000000096c 0 NOTYPE LOCAL DEFAULT 17 $d - 61: 000000000000096c 0 OBJECT LOCAL DEFAULT 17 __FRAME_END__ - 62: 0000000000000000 0 FILE LOCAL DEFAULT ABS - 63: 0000000000010dd0 0 OBJECT LOCAL DEFAULT ABS _DYNAMIC - 64: 000000000000083c 0 NOTYPE LOCAL DEFAULT 16 __GNU_EH_FRAME_HDR - 65: 0000000000010fb0 0 OBJECT LOCAL DEFAULT ABS _GLOBAL_OFFSET_TABLE_ - 66: 00000000000005f0 0 NOTYPE LOCAL DEFAULT 12 $x - 67: 0000000000000000 0 FUNC GLOBAL DEFAULT UND __libc_start_main@GLIBC_2.34 - 68: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_deregisterTMCloneTable - 69: 0000000000011028 0 NOTYPE WEAK DEFAULT 23 data_start - 70: 0000000000011038 0 NOTYPE GLOBAL DEFAULT 24 __bss_start__ - 71: 0000000000000000 0 FUNC WEAK DEFAULT UND __cxa_finalize@GLIBC_2.17 - 72: 0000000000011040 0 NOTYPE GLOBAL DEFAULT 24 _bss_end__ - 73: 0000000000011038 0 NOTYPE GLOBAL DEFAULT 23 _edata - 74: 00000000000007f8 0 FUNC GLOBAL HIDDEN 14 _fini - 75: 0000000000011040 0 NOTYPE GLOBAL DEFAULT 24 __bss_end__ - 76: 0000000000000794 28 FUNC GLOBAL DEFAULT 13 greet - 77: 0000000000011028 0 NOTYPE GLOBAL DEFAULT 23 __data_start - 78: 0000000000000000 0 NOTYPE WEAK DEFAULT UND __gmon_start__ - 79: 0000000000011030 0 OBJECT GLOBAL HIDDEN 23 __dso_handle - 80: 0000000000000000 0 FUNC GLOBAL DEFAULT UND abort@GLIBC_2.17 - 81: 000000000000080c 4 OBJECT GLOBAL DEFAULT 15 _IO_stdin_used - 82: 0000000000011040 0 NOTYPE GLOBAL DEFAULT 24 _end - 83: 0000000000000680 52 FUNC GLOBAL DEFAULT 13 _start - 84: 0000000000011040 0 NOTYPE GLOBAL DEFAULT 24 __end__ - 85: 0000000000011038 0 NOTYPE GLOBAL DEFAULT 24 __bss_start - 86: 00000000000007b0 72 FUNC GLOBAL DEFAULT 13 main - 87: 0000000000011038 0 OBJECT GLOBAL HIDDEN 23 __TMC_END__ - 88: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_registerTMCloneTable - 89: 0000000000000000 0 FUNC GLOBAL DEFAULT UND printf@GLIBC_2.17 - 90: 00000000000005d0 0 FUNC GLOBAL HIDDEN 11 _init diff --git a/src/test/correct/indirect_call/clang_pic/indirect_call_gtirb.expected b/src/test/correct/indirect_call/clang_pic/indirect_call_gtirb.expected index 8a979f525..7b0c340da 100644 --- a/src/test/correct/indirect_call/clang_pic/indirect_call_gtirb.expected +++ b/src/test/correct/indirect_call/clang_pic/indirect_call_gtirb.expected @@ -99,7 +99,7 @@ procedure {:extern} rely_reflexive(); procedure {:extern} guarantee_reflexive(); modifies Gamma_mem, mem; -procedure main_1968(); +procedure main(); modifies Gamma_R0, Gamma_R16, Gamma_R17, Gamma_R29, Gamma_R30, Gamma_R31, Gamma_R8, Gamma_mem, Gamma_stack, R0, R16, R17, R29, R30, R31, R8, mem, stack; free requires (memory_load64_le(mem, 69672bv64) == 0bv64); free requires (memory_load64_le(mem, 69680bv64) == 69680bv64); @@ -144,71 +144,71 @@ procedure main_1968(); free ensures (memory_load64_le(mem, 69592bv64) == 1968bv64); free ensures (memory_load64_le(mem, 69680bv64) == 69680bv64); -implementation main_1968() +implementation main() { - var Cse0__5_0_1: bv64; - var Cse0__5_2_1: bv64; - var Gamma_Cse0__5_0_1: bool; - var Gamma_Cse0__5_2_1: bool; - var Gamma_load0: bool; - var Gamma_load1: bool; - var Gamma_load2: bool; - var Gamma_load3: bool; - var Gamma_load4: bool; - var load0: bv64; - var load1: bv64; - var load2: bv32; - var load3: bv64; - var load4: bv64; - main_1968__0__sMTViGMvRc6UQwwHLkZ0lg: - assume {:captureState "main_1968__0__sMTViGMvRc6UQwwHLkZ0lg"} true; + var $load0: bv64; + var $load1: bv64; + var $load2: bv32; + var $load3: bv64; + var $load4: bv64; + var Cse0__5$0$1: bv64; + var Cse0__5$2$1: bv64; + var Gamma_$load0: bool; + var Gamma_$load1: bool; + var Gamma_$load2: bool; + var Gamma_$load3: bool; + var Gamma_$load4: bool; + var Gamma_Cse0__5$0$1: bool; + var Gamma_Cse0__5$2$1: bool; + $main$__0__$sMTViGMvRc6UQwwHLkZ0lg: + assume {:captureState "$main$__0__$sMTViGMvRc6UQwwHLkZ0lg"} true; R31, Gamma_R31 := bvadd64(R31, 18446744073709551568bv64), Gamma_R31; - Cse0__5_0_1, Gamma_Cse0__5_0_1 := bvadd64(R31, 32bv64), Gamma_R31; - stack, Gamma_stack := memory_store64_le(stack, Cse0__5_0_1, R29), gamma_store64(Gamma_stack, Cse0__5_0_1, Gamma_R29); - assume {:captureState "1972_1"} true; - stack, Gamma_stack := memory_store64_le(stack, bvadd64(Cse0__5_0_1, 8bv64), R30), gamma_store64(Gamma_stack, bvadd64(Cse0__5_0_1, 8bv64), Gamma_R30); - assume {:captureState "1972_2"} true; + Cse0__5$0$1, Gamma_Cse0__5$0$1 := bvadd64(R31, 32bv64), Gamma_R31; + stack, Gamma_stack := memory_store64_le(stack, Cse0__5$0$1, R29), gamma_store64(Gamma_stack, Cse0__5$0$1, Gamma_R29); + assume {:captureState "1972$1"} true; + stack, Gamma_stack := memory_store64_le(stack, bvadd64(Cse0__5$0$1, 8bv64), R30), gamma_store64(Gamma_stack, bvadd64(Cse0__5$0$1, 8bv64), Gamma_R30); + assume {:captureState "1972$2"} true; R29, Gamma_R29 := bvadd64(R31, 32bv64), Gamma_R31; R8, Gamma_R8 := 0bv64, true; stack, Gamma_stack := memory_store32_le(stack, bvadd64(R31, 12bv64), R8[32:0]), gamma_store32(Gamma_stack, bvadd64(R31, 12bv64), Gamma_R8); - assume {:captureState "1984_0"} true; + assume {:captureState "1984$0"} true; stack, Gamma_stack := memory_store32_le(stack, bvadd64(R29, 18446744073709551612bv64), 0bv32), gamma_store32(Gamma_stack, bvadd64(R29, 18446744073709551612bv64), true); - assume {:captureState "1988_0"} true; + assume {:captureState "1988$0"} true; R8, Gamma_R8 := 65536bv64, true; call rely(); - load0, Gamma_load0 := memory_load64_le(mem, bvadd64(R8, 4040bv64)), (gamma_load64(Gamma_mem, bvadd64(R8, 4040bv64)) || L(mem, bvadd64(R8, 4040bv64))); - R8, Gamma_R8 := load0, Gamma_load0; + $load0, Gamma_$load0 := memory_load64_le(mem, bvadd64(R8, 4040bv64)), (gamma_load64(Gamma_mem, bvadd64(R8, 4040bv64)) || L(mem, bvadd64(R8, 4040bv64))); + R8, Gamma_R8 := $load0, Gamma_$load0; stack, Gamma_stack := memory_store64_le(stack, bvadd64(R31, 16bv64), R8), gamma_store64(Gamma_stack, bvadd64(R31, 16bv64), Gamma_R8); - assume {:captureState "2000_0"} true; + assume {:captureState "2000$0"} true; R0, Gamma_R0 := 0bv64, true; R0, Gamma_R0 := bvadd64(R0, 2079bv64), Gamma_R0; R30, Gamma_R30 := 2016bv64, true; - call FUN_650_1616(); - goto main_1968__1__3xrW3vxVQYegwMrQhPeDAA; - main_1968__1__3xrW3vxVQYegwMrQhPeDAA: - assume {:captureState "main_1968__1__3xrW3vxVQYegwMrQhPeDAA"} true; - load1, Gamma_load1 := memory_load64_le(stack, bvadd64(R31, 16bv64)), gamma_load64(Gamma_stack, bvadd64(R31, 16bv64)); - R8, Gamma_R8 := load1, Gamma_load1; + call FUN_650(); + goto $main$__1__$3xrW3vxVQYegwMrQhPeDAA; + $main$__1__$3xrW3vxVQYegwMrQhPeDAA: + assume {:captureState "$main$__1__$3xrW3vxVQYegwMrQhPeDAA"} true; + $load1, Gamma_$load1 := memory_load64_le(stack, bvadd64(R31, 16bv64)), gamma_load64(Gamma_stack, bvadd64(R31, 16bv64)); + R8, Gamma_R8 := $load1, Gamma_$load1; R30, Gamma_R30 := 2024bv64, true; - call greet_1940(); - goto main_1968__2__~oSET3ZKQL2oiUDT8~pKHA; - main_1968__2__~oSET3ZKQL2oiUDT8~pKHA: - assume {:captureState "main_1968__2__~oSET3ZKQL2oiUDT8~pKHA"} true; - load2, Gamma_load2 := memory_load32_le(stack, bvadd64(R31, 12bv64)), gamma_load32(Gamma_stack, bvadd64(R31, 12bv64)); - R0, Gamma_R0 := zero_extend32_32(load2), Gamma_load2; - Cse0__5_2_1, Gamma_Cse0__5_2_1 := bvadd64(R31, 32bv64), Gamma_R31; - load3, Gamma_load3 := memory_load64_le(stack, Cse0__5_2_1), gamma_load64(Gamma_stack, Cse0__5_2_1); - R29, Gamma_R29 := load3, Gamma_load3; - load4, Gamma_load4 := memory_load64_le(stack, bvadd64(Cse0__5_2_1, 8bv64)), gamma_load64(Gamma_stack, bvadd64(Cse0__5_2_1, 8bv64)); - R30, Gamma_R30 := load4, Gamma_load4; + call greet(); + goto $main$__2__$~oSET3ZKQL2oiUDT8~pKHA; + $main$__2__$~oSET3ZKQL2oiUDT8~pKHA: + assume {:captureState "$main$__2__$~oSET3ZKQL2oiUDT8~pKHA"} true; + $load2, Gamma_$load2 := memory_load32_le(stack, bvadd64(R31, 12bv64)), gamma_load32(Gamma_stack, bvadd64(R31, 12bv64)); + R0, Gamma_R0 := zero_extend32_32($load2), Gamma_$load2; + Cse0__5$2$1, Gamma_Cse0__5$2$1 := bvadd64(R31, 32bv64), Gamma_R31; + $load3, Gamma_$load3 := memory_load64_le(stack, Cse0__5$2$1), gamma_load64(Gamma_stack, Cse0__5$2$1); + R29, Gamma_R29 := $load3, Gamma_$load3; + $load4, Gamma_$load4 := memory_load64_le(stack, bvadd64(Cse0__5$2$1, 8bv64)), gamma_load64(Gamma_stack, bvadd64(Cse0__5$2$1, 8bv64)); + R30, Gamma_R30 := $load4, Gamma_$load4; R31, Gamma_R31 := bvadd64(R31, 48bv64), Gamma_R31; - goto main_1968_basil_return; - main_1968_basil_return: - assume {:captureState "main_1968_basil_return"} true; + goto main_basil_return; + main_basil_return: + assume {:captureState "main_basil_return"} true; return; } -procedure FUN_650_1616(); +procedure FUN_650(); modifies Gamma_R16, Gamma_R17, Gamma_mem, R16, R17, mem; free requires (memory_load8_le(mem, 2060bv64) == 1bv8); free requires (memory_load8_le(mem, 2061bv64) == 0bv8); @@ -247,25 +247,22 @@ procedure FUN_650_1616(); free ensures (memory_load64_le(mem, 69592bv64) == 1968bv64); free ensures (memory_load64_le(mem, 69680bv64) == 69680bv64); -implementation FUN_650_1616() +implementation FUN_650() { - var Gamma_load20: bool; - var load20: bv64; - FUN_650_1616__0__Q8~f_ny6Tyei9F9VZVqpig: - assume {:captureState "FUN_650_1616__0__Q8~f_ny6Tyei9F9VZVqpig"} true; + var $load20: bv64; + var Gamma_$load20: bool; + $FUN_650$__0__$Q8~f_ny6Tyei9F9VZVqpig: + assume {:captureState "$FUN_650$__0__$Q8~f_ny6Tyei9F9VZVqpig"} true; R16, Gamma_R16 := 69632bv64, true; call rely(); - load20, Gamma_load20 := memory_load64_le(mem, bvadd64(R16, 32bv64)), (gamma_load64(Gamma_mem, bvadd64(R16, 32bv64)) || L(mem, bvadd64(R16, 32bv64))); - R17, Gamma_R17 := load20, Gamma_load20; + $load20, Gamma_$load20 := memory_load64_le(mem, bvadd64(R16, 32bv64)), (gamma_load64(Gamma_mem, bvadd64(R16, 32bv64)) || L(mem, bvadd64(R16, 32bv64))); + R17, Gamma_R17 := $load20, Gamma_$load20; R16, Gamma_R16 := bvadd64(R16, 32bv64), Gamma_R16; call printf(); - goto FUN_650_1616_basil_return; - FUN_650_1616_basil_return: - assume {:captureState "FUN_650_1616_basil_return"} true; - return; + assume false; } -procedure greet_1940(); +procedure greet(); modifies Gamma_R0, Gamma_R16, Gamma_R17, Gamma_R29, Gamma_R30, Gamma_R31, Gamma_mem, Gamma_stack, R0, R16, R17, R29, R30, R31, mem, stack; free requires (memory_load8_le(mem, 2060bv64) == 1bv8); free requires (memory_load8_le(mem, 2061bv64) == 0bv8); @@ -308,38 +305,38 @@ procedure greet_1940(); free ensures (memory_load64_le(mem, 69592bv64) == 1968bv64); free ensures (memory_load64_le(mem, 69680bv64) == 69680bv64); -implementation greet_1940() +implementation greet() { - var Cse0__5_1_0: bv64; - var Gamma_Cse0__5_1_0: bool; - var Gamma_load26: bool; - var Gamma_load27: bool; - var load26: bv64; - var load27: bv64; - greet_1940__0__2iOaL1UgSjeQS6XoIxVEwg: - assume {:captureState "greet_1940__0__2iOaL1UgSjeQS6XoIxVEwg"} true; - Cse0__5_1_0, Gamma_Cse0__5_1_0 := bvadd64(R31, 18446744073709551600bv64), Gamma_R31; - stack, Gamma_stack := memory_store64_le(stack, Cse0__5_1_0, R29), gamma_store64(Gamma_stack, Cse0__5_1_0, Gamma_R29); - assume {:captureState "1940_1"} true; - stack, Gamma_stack := memory_store64_le(stack, bvadd64(Cse0__5_1_0, 8bv64), R30), gamma_store64(Gamma_stack, bvadd64(Cse0__5_1_0, 8bv64), Gamma_R30); - assume {:captureState "1940_2"} true; - R31, Gamma_R31 := Cse0__5_1_0, Gamma_Cse0__5_1_0; + var $load26: bv64; + var $load27: bv64; + var Cse0__5$1$0: bv64; + var Gamma_$load26: bool; + var Gamma_$load27: bool; + var Gamma_Cse0__5$1$0: bool; + $greet$__0__$2iOaL1UgSjeQS6XoIxVEwg: + assume {:captureState "$greet$__0__$2iOaL1UgSjeQS6XoIxVEwg"} true; + Cse0__5$1$0, Gamma_Cse0__5$1$0 := bvadd64(R31, 18446744073709551600bv64), Gamma_R31; + stack, Gamma_stack := memory_store64_le(stack, Cse0__5$1$0, R29), gamma_store64(Gamma_stack, Cse0__5$1$0, Gamma_R29); + assume {:captureState "1940$1"} true; + stack, Gamma_stack := memory_store64_le(stack, bvadd64(Cse0__5$1$0, 8bv64), R30), gamma_store64(Gamma_stack, bvadd64(Cse0__5$1$0, 8bv64), Gamma_R30); + assume {:captureState "1940$2"} true; + R31, Gamma_R31 := Cse0__5$1$0, Gamma_Cse0__5$1$0; R29, Gamma_R29 := R31, Gamma_R31; R0, Gamma_R0 := 0bv64, true; R0, Gamma_R0 := bvadd64(R0, 2064bv64), Gamma_R0; R30, Gamma_R30 := 1960bv64, true; - call FUN_650_1616(); - goto greet_1940__1__qE3JfQuGRqKhzooPEQBb4Q; - greet_1940__1__qE3JfQuGRqKhzooPEQBb4Q: - assume {:captureState "greet_1940__1__qE3JfQuGRqKhzooPEQBb4Q"} true; - load26, Gamma_load26 := memory_load64_le(stack, R31), gamma_load64(Gamma_stack, R31); - R29, Gamma_R29 := load26, Gamma_load26; - load27, Gamma_load27 := memory_load64_le(stack, bvadd64(R31, 8bv64)), gamma_load64(Gamma_stack, bvadd64(R31, 8bv64)); - R30, Gamma_R30 := load27, Gamma_load27; + call FUN_650(); + goto $greet$__1__$qE3JfQuGRqKhzooPEQBb4Q; + $greet$__1__$qE3JfQuGRqKhzooPEQBb4Q: + assume {:captureState "$greet$__1__$qE3JfQuGRqKhzooPEQBb4Q"} true; + $load26, Gamma_$load26 := memory_load64_le(stack, R31), gamma_load64(Gamma_stack, R31); + R29, Gamma_R29 := $load26, Gamma_$load26; + $load27, Gamma_$load27 := memory_load64_le(stack, bvadd64(R31, 8bv64)), gamma_load64(Gamma_stack, bvadd64(R31, 8bv64)); + R30, Gamma_R30 := $load27, Gamma_$load27; R31, Gamma_R31 := bvadd64(R31, 16bv64), Gamma_R31; - goto greet_1940_basil_return; - greet_1940_basil_return: - assume {:captureState "greet_1940_basil_return"} true; + goto greet_basil_return; + greet_basil_return: + assume {:captureState "greet_basil_return"} true; return; } diff --git a/src/test/correct/indirect_call/config.mk b/src/test/correct/indirect_call/config.mk index ea9b72ce9..70396d446 100644 --- a/src/test/correct/indirect_call/config.mk +++ b/src/test/correct/indirect_call/config.mk @@ -1 +1,2 @@ -ENABLED_COMPILERS = clang clang_pic gcc gcc_pic \ No newline at end of file +ENABLED_COMPILERS = clang clang_pic gcc gcc_pic +LIFT_ARTEFACTS := $(COMMON_ARTEFACTS) $(GTIRB_ARTEFACTS) diff --git a/src/test/correct/indirect_call/gcc/indirect_call.expected b/src/test/correct/indirect_call/gcc/indirect_call.expected new file mode 100644 index 000000000..fb7fc45b3 --- /dev/null +++ b/src/test/correct/indirect_call/gcc/indirect_call.expected @@ -0,0 +1,196 @@ +var {:extern} Gamma_R0: bool; +var {:extern} Gamma_R16: bool; +var {:extern} Gamma_R17: bool; +var {:extern} Gamma_R29: bool; +var {:extern} Gamma_R30: bool; +var {:extern} Gamma_R31: bool; +var {:extern} Gamma_mem: [bv64]bool; +var {:extern} Gamma_stack: [bv64]bool; +var {:extern} R0: bv64; +var {:extern} R16: bv64; +var {:extern} R17: bv64; +var {:extern} R29: bv64; +var {:extern} R30: bv64; +var {:extern} R31: bv64; +var {:extern} mem: [bv64]bv8; +var {:extern} stack: [bv64]bv8; +const {:extern} $_IO_stdin_used_addr: bv64; +axiom ($_IO_stdin_used_addr == 4196400bv64); +function {:extern} {:bvbuiltin "bvadd"} bvadd64(bv64, bv64) returns (bv64); +function {:extern} gamma_load64(gammaMap: [bv64]bool, index: bv64) returns (bool) { + (gammaMap[bvadd64(index, 7bv64)] && (gammaMap[bvadd64(index, 6bv64)] && (gammaMap[bvadd64(index, 5bv64)] && (gammaMap[bvadd64(index, 4bv64)] && (gammaMap[bvadd64(index, 3bv64)] && (gammaMap[bvadd64(index, 2bv64)] && (gammaMap[bvadd64(index, 1bv64)] && gammaMap[index]))))))) +} + +function {:extern} gamma_store64(gammaMap: [bv64]bool, index: bv64, value: bool) returns ([bv64]bool) { + gammaMap[index := value][bvadd64(index, 1bv64) := value][bvadd64(index, 2bv64) := value][bvadd64(index, 3bv64) := value][bvadd64(index, 4bv64) := value][bvadd64(index, 5bv64) := value][bvadd64(index, 6bv64) := value][bvadd64(index, 7bv64) := value] +} + +function {:extern} memory_load64_le(memory: [bv64]bv8, index: bv64) returns (bv64) { + (memory[bvadd64(index, 7bv64)] ++ (memory[bvadd64(index, 6bv64)] ++ (memory[bvadd64(index, 5bv64)] ++ (memory[bvadd64(index, 4bv64)] ++ (memory[bvadd64(index, 3bv64)] ++ (memory[bvadd64(index, 2bv64)] ++ (memory[bvadd64(index, 1bv64)] ++ memory[index]))))))) +} + +function {:extern} memory_load8_le(memory: [bv64]bv8, index: bv64) returns (bv8) { + memory[index] +} + +function {:extern} memory_store64_le(memory: [bv64]bv8, index: bv64, value: bv64) returns ([bv64]bv8) { + memory[index := value[8:0]][bvadd64(index, 1bv64) := value[16:8]][bvadd64(index, 2bv64) := value[24:16]][bvadd64(index, 3bv64) := value[32:24]][bvadd64(index, 4bv64) := value[40:32]][bvadd64(index, 5bv64) := value[48:40]][bvadd64(index, 6bv64) := value[56:48]][bvadd64(index, 7bv64) := value[64:56]] +} + +procedure {:extern} rely(); + modifies Gamma_mem, mem; + ensures (Gamma_mem == old(Gamma_mem)); + ensures (mem == old(mem)); + free ensures (memory_load64_le(mem, 4196400bv64) == 131073bv64); + free ensures (memory_load64_le(mem, 4196408bv64) == 8583909746840200520bv64); + free ensures (memory_load64_le(mem, 4196416bv64) == 143418749551bv64); + free ensures (memory_load64_le(mem, 4196424bv64) == 2334956330884555075bv64); + free ensures (memory_load64_le(mem, 4196432bv64) == 2317427963641295463bv64); + free ensures (memory_load64_le(mem, 4196440bv64) == 8386658473162862185bv64); + free ensures (memory_load8_le(mem, 4196448bv64) == 108bv8); + free ensures (memory_load8_le(mem, 4196449bv64) == 121bv8); + free ensures (memory_load8_le(mem, 4196450bv64) == 58bv8); + free ensures (memory_load8_le(mem, 4196451bv64) == 0bv8); + +procedure {:extern} rely_transitive(); + modifies Gamma_mem, mem; + ensures (Gamma_mem == old(Gamma_mem)); + ensures (mem == old(mem)); + +implementation {:extern} rely_transitive() +{ + call rely(); + call rely(); +} + +procedure {:extern} rely_reflexive(); + +procedure {:extern} guarantee_reflexive(); + modifies Gamma_mem, mem; + +procedure greet(); + modifies Gamma_R0, Gamma_R16, Gamma_R17, R0, R16, R17; + free requires (memory_load64_le(mem, 4196400bv64) == 131073bv64); + free requires (memory_load64_le(mem, 4196408bv64) == 8583909746840200520bv64); + free requires (memory_load64_le(mem, 4196416bv64) == 143418749551bv64); + free requires (memory_load64_le(mem, 4196424bv64) == 2334956330884555075bv64); + free requires (memory_load64_le(mem, 4196432bv64) == 2317427963641295463bv64); + free requires (memory_load64_le(mem, 4196440bv64) == 8386658473162862185bv64); + free requires (memory_load8_le(mem, 4196448bv64) == 108bv8); + free requires (memory_load8_le(mem, 4196449bv64) == 121bv8); + free requires (memory_load8_le(mem, 4196450bv64) == 58bv8); + free requires (memory_load8_le(mem, 4196451bv64) == 0bv8); + free ensures (memory_load64_le(mem, 4196400bv64) == 131073bv64); + free ensures (memory_load64_le(mem, 4196408bv64) == 8583909746840200520bv64); + free ensures (memory_load64_le(mem, 4196416bv64) == 143418749551bv64); + free ensures (memory_load64_le(mem, 4196424bv64) == 2334956330884555075bv64); + free ensures (memory_load64_le(mem, 4196432bv64) == 2317427963641295463bv64); + free ensures (memory_load64_le(mem, 4196440bv64) == 8386658473162862185bv64); + free ensures (memory_load8_le(mem, 4196448bv64) == 108bv8); + free ensures (memory_load8_le(mem, 4196449bv64) == 121bv8); + free ensures (memory_load8_le(mem, 4196450bv64) == 58bv8); + free ensures (memory_load8_le(mem, 4196451bv64) == 0bv8); + +implementation greet() +{ + lgreet: + assume {:captureState "lgreet"} true; + R0, Gamma_R0 := 4194304bv64, true; + R0, Gamma_R0 := bvadd64(R0, 2104bv64), Gamma_R0; + call puts(); + assume false; +} + +procedure main(); + modifies Gamma_R0, Gamma_R16, Gamma_R17, Gamma_R29, Gamma_R30, Gamma_R31, Gamma_stack, R0, R16, R17, R29, R30, R31, stack; + free requires (memory_load64_le(mem, 4325376bv64) == 0bv64); + free requires (memory_load64_le(mem, 4325384bv64) == 0bv64); + free requires (memory_load64_le(mem, 4196400bv64) == 131073bv64); + free requires (memory_load64_le(mem, 4196408bv64) == 8583909746840200520bv64); + free requires (memory_load64_le(mem, 4196416bv64) == 143418749551bv64); + free requires (memory_load64_le(mem, 4196424bv64) == 2334956330884555075bv64); + free requires (memory_load64_le(mem, 4196432bv64) == 2317427963641295463bv64); + free requires (memory_load64_le(mem, 4196440bv64) == 8386658473162862185bv64); + free requires (memory_load8_le(mem, 4196448bv64) == 108bv8); + free requires (memory_load8_le(mem, 4196449bv64) == 121bv8); + free requires (memory_load8_le(mem, 4196450bv64) == 58bv8); + free requires (memory_load8_le(mem, 4196451bv64) == 0bv8); + free ensures (Gamma_R29 == old(Gamma_R29)); + free ensures (Gamma_R31 == old(Gamma_R31)); + free ensures (R29 == old(R29)); + free ensures (R31 == old(R31)); + free ensures (memory_load64_le(mem, 4196400bv64) == 131073bv64); + free ensures (memory_load64_le(mem, 4196408bv64) == 8583909746840200520bv64); + free ensures (memory_load64_le(mem, 4196416bv64) == 143418749551bv64); + free ensures (memory_load64_le(mem, 4196424bv64) == 2334956330884555075bv64); + free ensures (memory_load64_le(mem, 4196432bv64) == 2317427963641295463bv64); + free ensures (memory_load64_le(mem, 4196440bv64) == 8386658473162862185bv64); + free ensures (memory_load8_le(mem, 4196448bv64) == 108bv8); + free ensures (memory_load8_le(mem, 4196449bv64) == 121bv8); + free ensures (memory_load8_le(mem, 4196450bv64) == 58bv8); + free ensures (memory_load8_le(mem, 4196451bv64) == 0bv8); + +implementation main() +{ + var #1: bv64; + var $load$14: bv64; + var $load$15: bv64; + var Gamma_#1: bool; + var Gamma_$load$14: bool; + var Gamma_$load$15: bool; + lmain: + assume {:captureState "lmain"} true; + #1, Gamma_#1 := bvadd64(R31, 18446744073709551600bv64), Gamma_R31; + stack, Gamma_stack := memory_store64_le(stack, #1, R29), gamma_store64(Gamma_stack, #1, Gamma_R29); + assume {:captureState "%00000268"} true; + stack, Gamma_stack := memory_store64_le(stack, bvadd64(#1, 8bv64), R30), gamma_store64(Gamma_stack, bvadd64(#1, 8bv64), Gamma_R30); + assume {:captureState "%0000026c"} true; + R31, Gamma_R31 := #1, Gamma_#1; + R0, Gamma_R0 := 4194304bv64, true; + R0, Gamma_R0 := bvadd64(R0, 2120bv64), Gamma_R0; + R29, Gamma_R29 := R31, Gamma_R31; + R30, Gamma_R30 := 4196052bv64, true; + call puts(); + goto l00000288; + l00000288: + assume {:captureState "l00000288"} true; + R30, Gamma_R30 := 4196056bv64, true; + call greet(); + goto l00000294; + l00000294: + assume {:captureState "l00000294"} true; + R0, Gamma_R0 := 0bv64, true; + $load$14, Gamma_$load$14 := memory_load64_le(stack, R31), gamma_load64(Gamma_stack, R31); + R29, Gamma_R29 := $load$14, Gamma_$load$14; + $load$15, Gamma_$load$15 := memory_load64_le(stack, bvadd64(R31, 8bv64)), gamma_load64(Gamma_stack, bvadd64(R31, 8bv64)); + R30, Gamma_R30 := $load$15, Gamma_$load$15; + R31, Gamma_R31 := bvadd64(R31, 16bv64), Gamma_R31; + goto main_basil_return; + main_basil_return: + assume {:captureState "main_basil_return"} true; + return; +} + +procedure puts(); + modifies Gamma_R16, Gamma_R17, R16, R17; + free requires (memory_load64_le(mem, 4196400bv64) == 131073bv64); + free requires (memory_load64_le(mem, 4196408bv64) == 8583909746840200520bv64); + free requires (memory_load64_le(mem, 4196416bv64) == 143418749551bv64); + free requires (memory_load64_le(mem, 4196424bv64) == 2334956330884555075bv64); + free requires (memory_load64_le(mem, 4196432bv64) == 2317427963641295463bv64); + free requires (memory_load64_le(mem, 4196440bv64) == 8386658473162862185bv64); + free requires (memory_load8_le(mem, 4196448bv64) == 108bv8); + free requires (memory_load8_le(mem, 4196449bv64) == 121bv8); + free requires (memory_load8_le(mem, 4196450bv64) == 58bv8); + free requires (memory_load8_le(mem, 4196451bv64) == 0bv8); + free ensures (memory_load64_le(mem, 4196400bv64) == 131073bv64); + free ensures (memory_load64_le(mem, 4196408bv64) == 8583909746840200520bv64); + free ensures (memory_load64_le(mem, 4196416bv64) == 143418749551bv64); + free ensures (memory_load64_le(mem, 4196424bv64) == 2334956330884555075bv64); + free ensures (memory_load64_le(mem, 4196432bv64) == 2317427963641295463bv64); + free ensures (memory_load64_le(mem, 4196440bv64) == 8386658473162862185bv64); + free ensures (memory_load8_le(mem, 4196448bv64) == 108bv8); + free ensures (memory_load8_le(mem, 4196449bv64) == 121bv8); + free ensures (memory_load8_le(mem, 4196450bv64) == 58bv8); + free ensures (memory_load8_le(mem, 4196451bv64) == 0bv8); + diff --git a/src/test/correct/indirect_call/gcc/indirect_call.gts b/src/test/correct/indirect_call/gcc/indirect_call.gts deleted file mode 100644 index 76ef142df..000000000 Binary files a/src/test/correct/indirect_call/gcc/indirect_call.gts and /dev/null differ diff --git a/src/test/correct/indirect_call/gcc/indirect_call.md5sum b/src/test/correct/indirect_call/gcc/indirect_call.md5sum new file mode 100644 index 000000000..829b731cf --- /dev/null +++ b/src/test/correct/indirect_call/gcc/indirect_call.md5sum @@ -0,0 +1,3 @@ +e4ac384de28f7a47c89964a310629d04 correct/indirect_call/gcc/a.out +dd6caa559d5e9f1dc667762431a7a07e correct/indirect_call/gcc/indirect_call.relf +e3aefe9ea6b305f41de4c7110192e2bf correct/indirect_call/gcc/indirect_call.gts diff --git a/src/test/correct/indirect_call/gcc/indirect_call.relf b/src/test/correct/indirect_call/gcc/indirect_call.relf deleted file mode 100644 index 38e214327..000000000 --- a/src/test/correct/indirect_call/gcc/indirect_call.relf +++ /dev/null @@ -1,124 +0,0 @@ - -Relocation section '.rela.dyn' at offset 0x480 contains 8 entries: - Offset Info Type Symbol's Value Symbol's Name + Addend -0000000000010d90 0000000000000403 R_AARCH64_RELATIVE 750 -0000000000010d98 0000000000000403 R_AARCH64_RELATIVE 700 -0000000000010ff0 0000000000000403 R_AARCH64_RELATIVE 774 -0000000000011008 0000000000000403 R_AARCH64_RELATIVE 11008 -0000000000010fd8 0000000400000401 R_AARCH64_GLOB_DAT 0000000000000000 _ITM_deregisterTMCloneTable + 0 -0000000000010fe0 0000000500000401 R_AARCH64_GLOB_DAT 0000000000000000 __cxa_finalize@GLIBC_2.17 + 0 -0000000000010fe8 0000000600000401 R_AARCH64_GLOB_DAT 0000000000000000 __gmon_start__ + 0 -0000000000010ff8 0000000900000401 R_AARCH64_GLOB_DAT 0000000000000000 _ITM_registerTMCloneTable + 0 - -Relocation section '.rela.plt' at offset 0x540 contains 5 entries: - Offset Info Type Symbol's Value Symbol's Name + Addend -0000000000010fa8 0000000300000402 R_AARCH64_JUMP_SLOT 0000000000000000 __libc_start_main@GLIBC_2.34 + 0 -0000000000010fb0 0000000500000402 R_AARCH64_JUMP_SLOT 0000000000000000 __cxa_finalize@GLIBC_2.17 + 0 -0000000000010fb8 0000000600000402 R_AARCH64_JUMP_SLOT 0000000000000000 __gmon_start__ + 0 -0000000000010fc0 0000000700000402 R_AARCH64_JUMP_SLOT 0000000000000000 abort@GLIBC_2.17 + 0 -0000000000010fc8 0000000800000402 R_AARCH64_JUMP_SLOT 0000000000000000 puts@GLIBC_2.17 + 0 - -Symbol table '.dynsym' contains 10 entries: - Num: Value Size Type Bind Vis Ndx Name - 0: 0000000000000000 0 NOTYPE LOCAL DEFAULT UND - 1: 00000000000005b8 0 SECTION LOCAL DEFAULT 11 .init - 2: 0000000000011000 0 SECTION LOCAL DEFAULT 22 .data - 3: 0000000000000000 0 FUNC GLOBAL DEFAULT UND __libc_start_main@GLIBC_2.34 (2) - 4: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_deregisterTMCloneTable - 5: 0000000000000000 0 FUNC WEAK DEFAULT UND __cxa_finalize@GLIBC_2.17 (3) - 6: 0000000000000000 0 NOTYPE WEAK DEFAULT UND __gmon_start__ - 7: 0000000000000000 0 FUNC GLOBAL DEFAULT UND abort@GLIBC_2.17 (3) - 8: 0000000000000000 0 FUNC GLOBAL DEFAULT UND puts@GLIBC_2.17 (3) - 9: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_registerTMCloneTable - -Symbol table '.symtab' contains 89 entries: - Num: Value Size Type Bind Vis Ndx Name - 0: 0000000000000000 0 NOTYPE LOCAL DEFAULT UND - 1: 0000000000000238 0 SECTION LOCAL DEFAULT 1 .interp - 2: 0000000000000254 0 SECTION LOCAL DEFAULT 2 .note.gnu.build-id - 3: 0000000000000278 0 SECTION LOCAL DEFAULT 3 .note.ABI-tag - 4: 0000000000000298 0 SECTION LOCAL DEFAULT 4 .gnu.hash - 5: 00000000000002b8 0 SECTION LOCAL DEFAULT 5 .dynsym - 6: 00000000000003a8 0 SECTION LOCAL DEFAULT 6 .dynstr - 7: 000000000000043a 0 SECTION LOCAL DEFAULT 7 .gnu.version - 8: 0000000000000450 0 SECTION LOCAL DEFAULT 8 .gnu.version_r - 9: 0000000000000480 0 SECTION LOCAL DEFAULT 9 .rela.dyn - 10: 0000000000000540 0 SECTION LOCAL DEFAULT 10 .rela.plt - 11: 00000000000005b8 0 SECTION LOCAL DEFAULT 11 .init - 12: 00000000000005d0 0 SECTION LOCAL DEFAULT 12 .plt - 13: 0000000000000640 0 SECTION LOCAL DEFAULT 13 .text - 14: 00000000000007a8 0 SECTION LOCAL DEFAULT 14 .fini - 15: 00000000000007c0 0 SECTION LOCAL DEFAULT 15 .rodata - 16: 00000000000007f4 0 SECTION LOCAL DEFAULT 16 .eh_frame_hdr - 17: 0000000000000838 0 SECTION LOCAL DEFAULT 17 .eh_frame - 18: 0000000000010d90 0 SECTION LOCAL DEFAULT 18 .init_array - 19: 0000000000010d98 0 SECTION LOCAL DEFAULT 19 .fini_array - 20: 0000000000010da0 0 SECTION LOCAL DEFAULT 20 .dynamic - 21: 0000000000010f90 0 SECTION LOCAL DEFAULT 21 .got - 22: 0000000000011000 0 SECTION LOCAL DEFAULT 22 .data - 23: 0000000000011010 0 SECTION LOCAL DEFAULT 23 .bss - 24: 0000000000000000 0 SECTION LOCAL DEFAULT 24 .comment - 25: 0000000000000000 0 FILE LOCAL DEFAULT ABS Scrt1.o - 26: 0000000000000278 0 NOTYPE LOCAL DEFAULT 3 $d - 27: 0000000000000278 32 OBJECT LOCAL DEFAULT 3 __abi_tag - 28: 0000000000000640 0 NOTYPE LOCAL DEFAULT 13 $x - 29: 000000000000084c 0 NOTYPE LOCAL DEFAULT 17 $d - 30: 00000000000007c0 0 NOTYPE LOCAL DEFAULT 15 $d - 31: 0000000000000000 0 FILE LOCAL DEFAULT ABS crti.o - 32: 0000000000000674 0 NOTYPE LOCAL DEFAULT 13 $x - 33: 0000000000000674 20 FUNC LOCAL DEFAULT 13 call_weak_fn - 34: 00000000000005b8 0 NOTYPE LOCAL DEFAULT 11 $x - 35: 00000000000007a8 0 NOTYPE LOCAL DEFAULT 14 $x - 36: 0000000000000000 0 FILE LOCAL DEFAULT ABS crtn.o - 37: 00000000000005c8 0 NOTYPE LOCAL DEFAULT 11 $x - 38: 00000000000007b4 0 NOTYPE LOCAL DEFAULT 14 $x - 39: 0000000000000000 0 FILE LOCAL DEFAULT ABS crtstuff.c - 40: 0000000000000690 0 NOTYPE LOCAL DEFAULT 13 $x - 41: 0000000000000690 0 FUNC LOCAL DEFAULT 13 deregister_tm_clones - 42: 00000000000006c0 0 FUNC LOCAL DEFAULT 13 register_tm_clones - 43: 0000000000011008 0 NOTYPE LOCAL DEFAULT 22 $d - 44: 0000000000000700 0 FUNC LOCAL DEFAULT 13 __do_global_dtors_aux - 45: 0000000000011010 1 OBJECT LOCAL DEFAULT 23 completed.0 - 46: 0000000000010d98 0 NOTYPE LOCAL DEFAULT 19 $d - 47: 0000000000010d98 0 OBJECT LOCAL DEFAULT 19 __do_global_dtors_aux_fini_array_entry - 48: 0000000000000750 0 FUNC LOCAL DEFAULT 13 frame_dummy - 49: 0000000000010d90 0 NOTYPE LOCAL DEFAULT 18 $d - 50: 0000000000010d90 0 OBJECT LOCAL DEFAULT 18 __frame_dummy_init_array_entry - 51: 0000000000000860 0 NOTYPE LOCAL DEFAULT 17 $d - 52: 0000000000011010 0 NOTYPE LOCAL DEFAULT 23 $d - 53: 0000000000000000 0 FILE LOCAL DEFAULT ABS indirect_call.c - 54: 00000000000007c8 0 NOTYPE LOCAL DEFAULT 15 $d - 55: 0000000000000754 0 NOTYPE LOCAL DEFAULT 13 $x - 56: 00000000000008c0 0 NOTYPE LOCAL DEFAULT 17 $d - 57: 0000000000000000 0 FILE LOCAL DEFAULT ABS crtstuff.c - 58: 0000000000000900 0 NOTYPE LOCAL DEFAULT 17 $d - 59: 0000000000000900 0 OBJECT LOCAL DEFAULT 17 __FRAME_END__ - 60: 0000000000000000 0 FILE LOCAL DEFAULT ABS - 61: 0000000000010da0 0 OBJECT LOCAL DEFAULT ABS _DYNAMIC - 62: 00000000000007f4 0 NOTYPE LOCAL DEFAULT 16 __GNU_EH_FRAME_HDR - 63: 0000000000010fd0 0 OBJECT LOCAL DEFAULT ABS _GLOBAL_OFFSET_TABLE_ - 64: 00000000000005d0 0 NOTYPE LOCAL DEFAULT 12 $x - 65: 0000000000000000 0 FUNC GLOBAL DEFAULT UND __libc_start_main@GLIBC_2.34 - 66: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_deregisterTMCloneTable - 67: 0000000000011000 0 NOTYPE WEAK DEFAULT 22 data_start - 68: 0000000000011010 0 NOTYPE GLOBAL DEFAULT 23 __bss_start__ - 69: 0000000000000000 0 FUNC WEAK DEFAULT UND __cxa_finalize@GLIBC_2.17 - 70: 0000000000011018 0 NOTYPE GLOBAL DEFAULT 23 _bss_end__ - 71: 0000000000011010 0 NOTYPE GLOBAL DEFAULT 22 _edata - 72: 00000000000007a8 0 FUNC GLOBAL HIDDEN 14 _fini - 73: 0000000000011018 0 NOTYPE GLOBAL DEFAULT 23 __bss_end__ - 74: 0000000000000754 32 FUNC GLOBAL DEFAULT 13 greet - 75: 0000000000011000 0 NOTYPE GLOBAL DEFAULT 22 __data_start - 76: 0000000000000000 0 NOTYPE WEAK DEFAULT UND __gmon_start__ - 77: 0000000000011008 0 OBJECT GLOBAL HIDDEN 22 __dso_handle - 78: 0000000000000000 0 FUNC GLOBAL DEFAULT UND abort@GLIBC_2.17 - 79: 00000000000007c0 4 OBJECT GLOBAL DEFAULT 15 _IO_stdin_used - 80: 0000000000000000 0 FUNC GLOBAL DEFAULT UND puts@GLIBC_2.17 - 81: 0000000000011018 0 NOTYPE GLOBAL DEFAULT 23 _end - 82: 0000000000000640 52 FUNC GLOBAL DEFAULT 13 _start - 83: 0000000000011018 0 NOTYPE GLOBAL DEFAULT 23 __end__ - 84: 0000000000011010 0 NOTYPE GLOBAL DEFAULT 23 __bss_start - 85: 0000000000000774 52 FUNC GLOBAL DEFAULT 13 main - 86: 0000000000011010 0 OBJECT GLOBAL HIDDEN 22 __TMC_END__ - 87: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_registerTMCloneTable - 88: 00000000000005b8 0 FUNC GLOBAL HIDDEN 11 _init diff --git a/src/test/correct/indirect_call/gcc/indirect_call_gtirb.expected b/src/test/correct/indirect_call/gcc/indirect_call_gtirb.expected index e353d74f2..bd9996ad5 100644 --- a/src/test/correct/indirect_call/gcc/indirect_call_gtirb.expected +++ b/src/test/correct/indirect_call/gcc/indirect_call_gtirb.expected @@ -15,7 +15,7 @@ var {:extern} R31: bv64; var {:extern} mem: [bv64]bv8; var {:extern} stack: [bv64]bv8; const {:extern} $_IO_stdin_used_addr: bv64; -axiom ($_IO_stdin_used_addr == 1984bv64); +axiom ($_IO_stdin_used_addr == 4196400bv64); function {:extern} L(mem$in: [bv64]bv8, index: bv64) returns (bool) { false } @@ -45,20 +45,16 @@ procedure {:extern} rely(); modifies Gamma_mem, mem; ensures (Gamma_mem == old(Gamma_mem)); ensures (mem == old(mem)); - free ensures (memory_load64_le(mem, 1984bv64) == 131073bv64); - free ensures (memory_load64_le(mem, 1992bv64) == 8583909746840200520bv64); - free ensures (memory_load64_le(mem, 2000bv64) == 143418749551bv64); - free ensures (memory_load64_le(mem, 2008bv64) == 2334956330884555075bv64); - free ensures (memory_load64_le(mem, 2016bv64) == 2317427963641295463bv64); - free ensures (memory_load64_le(mem, 2024bv64) == 8386658473162862185bv64); - free ensures (memory_load8_le(mem, 2032bv64) == 108bv8); - free ensures (memory_load8_le(mem, 2033bv64) == 121bv8); - free ensures (memory_load8_le(mem, 2034bv64) == 58bv8); - free ensures (memory_load8_le(mem, 2035bv64) == 0bv8); - free ensures (memory_load64_le(mem, 69008bv64) == 1872bv64); - free ensures (memory_load64_le(mem, 69016bv64) == 1792bv64); - free ensures (memory_load64_le(mem, 69616bv64) == 1908bv64); - free ensures (memory_load64_le(mem, 69640bv64) == 69640bv64); + free ensures (memory_load64_le(mem, 4196400bv64) == 131073bv64); + free ensures (memory_load64_le(mem, 4196408bv64) == 8583909746840200520bv64); + free ensures (memory_load64_le(mem, 4196416bv64) == 143418749551bv64); + free ensures (memory_load64_le(mem, 4196424bv64) == 2334956330884555075bv64); + free ensures (memory_load64_le(mem, 4196432bv64) == 2317427963641295463bv64); + free ensures (memory_load64_le(mem, 4196440bv64) == 8386658473162862185bv64); + free ensures (memory_load8_le(mem, 4196448bv64) == 108bv8); + free ensures (memory_load8_le(mem, 4196449bv64) == 121bv8); + free ensures (memory_load8_le(mem, 4196450bv64) == 58bv8); + free ensures (memory_load8_le(mem, 4196451bv64) == 0bv8); procedure {:extern} rely_transitive(); modifies Gamma_mem, mem; @@ -76,238 +72,166 @@ procedure {:extern} rely_reflexive(); procedure {:extern} guarantee_reflexive(); modifies Gamma_mem, mem; -procedure FUN_630_1584(); - modifies Gamma_R16, Gamma_R17, Gamma_mem, R16, R17, mem; - free requires (memory_load64_le(mem, 1984bv64) == 131073bv64); - free requires (memory_load64_le(mem, 1992bv64) == 8583909746840200520bv64); - free requires (memory_load64_le(mem, 2000bv64) == 143418749551bv64); - free requires (memory_load64_le(mem, 2008bv64) == 2334956330884555075bv64); - free requires (memory_load64_le(mem, 2016bv64) == 2317427963641295463bv64); - free requires (memory_load64_le(mem, 2024bv64) == 8386658473162862185bv64); - free requires (memory_load8_le(mem, 2032bv64) == 108bv8); - free requires (memory_load8_le(mem, 2033bv64) == 121bv8); - free requires (memory_load8_le(mem, 2034bv64) == 58bv8); - free requires (memory_load8_le(mem, 2035bv64) == 0bv8); - free requires (memory_load64_le(mem, 69008bv64) == 1872bv64); - free requires (memory_load64_le(mem, 69016bv64) == 1792bv64); - free requires (memory_load64_le(mem, 69616bv64) == 1908bv64); - free requires (memory_load64_le(mem, 69640bv64) == 69640bv64); - free ensures (memory_load64_le(mem, 1984bv64) == 131073bv64); - free ensures (memory_load64_le(mem, 1992bv64) == 8583909746840200520bv64); - free ensures (memory_load64_le(mem, 2000bv64) == 143418749551bv64); - free ensures (memory_load64_le(mem, 2008bv64) == 2334956330884555075bv64); - free ensures (memory_load64_le(mem, 2016bv64) == 2317427963641295463bv64); - free ensures (memory_load64_le(mem, 2024bv64) == 8386658473162862185bv64); - free ensures (memory_load8_le(mem, 2032bv64) == 108bv8); - free ensures (memory_load8_le(mem, 2033bv64) == 121bv8); - free ensures (memory_load8_le(mem, 2034bv64) == 58bv8); - free ensures (memory_load8_le(mem, 2035bv64) == 0bv8); - free ensures (memory_load64_le(mem, 69008bv64) == 1872bv64); - free ensures (memory_load64_le(mem, 69016bv64) == 1792bv64); - free ensures (memory_load64_le(mem, 69616bv64) == 1908bv64); - free ensures (memory_load64_le(mem, 69640bv64) == 69640bv64); - -implementation FUN_630_1584() -{ - var Gamma_load1: bool; - var load1: bv64; - FUN_630_1584__0__tuyfiXKhQwyDbRrxvmvI3A: - assume {:captureState "FUN_630_1584__0__tuyfiXKhQwyDbRrxvmvI3A"} true; - R16, Gamma_R16 := 65536bv64, true; - call rely(); - load1, Gamma_load1 := memory_load64_le(mem, bvadd64(R16, 4040bv64)), (gamma_load64(Gamma_mem, bvadd64(R16, 4040bv64)) || L(mem, bvadd64(R16, 4040bv64))); - R17, Gamma_R17 := load1, Gamma_load1; - R16, Gamma_R16 := bvadd64(R16, 4040bv64), Gamma_R16; - call puts(); - goto FUN_630_1584_basil_return; - FUN_630_1584_basil_return: - assume {:captureState "FUN_630_1584_basil_return"} true; - return; -} - -procedure greet_1876(); +procedure main(); modifies Gamma_R0, Gamma_R16, Gamma_R17, Gamma_R29, Gamma_R30, Gamma_R31, Gamma_mem, Gamma_stack, R0, R16, R17, R29, R30, R31, mem, stack; - free requires (memory_load64_le(mem, 1984bv64) == 131073bv64); - free requires (memory_load64_le(mem, 1992bv64) == 8583909746840200520bv64); - free requires (memory_load64_le(mem, 2000bv64) == 143418749551bv64); - free requires (memory_load64_le(mem, 2008bv64) == 2334956330884555075bv64); - free requires (memory_load64_le(mem, 2016bv64) == 2317427963641295463bv64); - free requires (memory_load64_le(mem, 2024bv64) == 8386658473162862185bv64); - free requires (memory_load8_le(mem, 2032bv64) == 108bv8); - free requires (memory_load8_le(mem, 2033bv64) == 121bv8); - free requires (memory_load8_le(mem, 2034bv64) == 58bv8); - free requires (memory_load8_le(mem, 2035bv64) == 0bv8); - free requires (memory_load64_le(mem, 69008bv64) == 1872bv64); - free requires (memory_load64_le(mem, 69016bv64) == 1792bv64); - free requires (memory_load64_le(mem, 69616bv64) == 1908bv64); - free requires (memory_load64_le(mem, 69640bv64) == 69640bv64); + free requires (memory_load64_le(mem, 4325376bv64) == 0bv64); + free requires (memory_load64_le(mem, 4325384bv64) == 0bv64); + free requires (memory_load64_le(mem, 4196400bv64) == 131073bv64); + free requires (memory_load64_le(mem, 4196408bv64) == 8583909746840200520bv64); + free requires (memory_load64_le(mem, 4196416bv64) == 143418749551bv64); + free requires (memory_load64_le(mem, 4196424bv64) == 2334956330884555075bv64); + free requires (memory_load64_le(mem, 4196432bv64) == 2317427963641295463bv64); + free requires (memory_load64_le(mem, 4196440bv64) == 8386658473162862185bv64); + free requires (memory_load8_le(mem, 4196448bv64) == 108bv8); + free requires (memory_load8_le(mem, 4196449bv64) == 121bv8); + free requires (memory_load8_le(mem, 4196450bv64) == 58bv8); + free requires (memory_load8_le(mem, 4196451bv64) == 0bv8); free ensures (Gamma_R29 == old(Gamma_R29)); free ensures (Gamma_R31 == old(Gamma_R31)); free ensures (R29 == old(R29)); free ensures (R31 == old(R31)); - free ensures (memory_load64_le(mem, 1984bv64) == 131073bv64); - free ensures (memory_load64_le(mem, 1992bv64) == 8583909746840200520bv64); - free ensures (memory_load64_le(mem, 2000bv64) == 143418749551bv64); - free ensures (memory_load64_le(mem, 2008bv64) == 2334956330884555075bv64); - free ensures (memory_load64_le(mem, 2016bv64) == 2317427963641295463bv64); - free ensures (memory_load64_le(mem, 2024bv64) == 8386658473162862185bv64); - free ensures (memory_load8_le(mem, 2032bv64) == 108bv8); - free ensures (memory_load8_le(mem, 2033bv64) == 121bv8); - free ensures (memory_load8_le(mem, 2034bv64) == 58bv8); - free ensures (memory_load8_le(mem, 2035bv64) == 0bv8); - free ensures (memory_load64_le(mem, 69008bv64) == 1872bv64); - free ensures (memory_load64_le(mem, 69016bv64) == 1792bv64); - free ensures (memory_load64_le(mem, 69616bv64) == 1908bv64); - free ensures (memory_load64_le(mem, 69640bv64) == 69640bv64); - -implementation greet_1876() + free ensures (memory_load64_le(mem, 4196400bv64) == 131073bv64); + free ensures (memory_load64_le(mem, 4196408bv64) == 8583909746840200520bv64); + free ensures (memory_load64_le(mem, 4196416bv64) == 143418749551bv64); + free ensures (memory_load64_le(mem, 4196424bv64) == 2334956330884555075bv64); + free ensures (memory_load64_le(mem, 4196432bv64) == 2317427963641295463bv64); + free ensures (memory_load64_le(mem, 4196440bv64) == 8386658473162862185bv64); + free ensures (memory_load8_le(mem, 4196448bv64) == 108bv8); + free ensures (memory_load8_le(mem, 4196449bv64) == 121bv8); + free ensures (memory_load8_le(mem, 4196450bv64) == 58bv8); + free ensures (memory_load8_le(mem, 4196451bv64) == 0bv8); + +implementation main() { - var Cse0__5_1_0: bv64; - var Gamma_Cse0__5_1_0: bool; - var Gamma_load2: bool; - var Gamma_load3: bool; - var load2: bv64; - var load3: bv64; - greet_1876__0__81FUb_xuSnaFuKB7SDT2jQ: - assume {:captureState "greet_1876__0__81FUb_xuSnaFuKB7SDT2jQ"} true; - Cse0__5_1_0, Gamma_Cse0__5_1_0 := bvadd64(R31, 18446744073709551600bv64), Gamma_R31; - stack, Gamma_stack := memory_store64_le(stack, Cse0__5_1_0, R29), gamma_store64(Gamma_stack, Cse0__5_1_0, Gamma_R29); - assume {:captureState "1876_1"} true; - stack, Gamma_stack := memory_store64_le(stack, bvadd64(Cse0__5_1_0, 8bv64), R30), gamma_store64(Gamma_stack, bvadd64(Cse0__5_1_0, 8bv64), Gamma_R30); - assume {:captureState "1876_2"} true; - R31, Gamma_R31 := Cse0__5_1_0, Gamma_Cse0__5_1_0; + var $load5: bv64; + var $load6: bv64; + var Cse0__5$3$0: bv64; + var Gamma_$load5: bool; + var Gamma_$load6: bool; + var Gamma_Cse0__5$3$0: bool; + $main$__0__$8D7O5dmBS1ek~5BDJ9mBtA: + assume {:captureState "$main$__0__$8D7O5dmBS1ek~5BDJ9mBtA"} true; + Cse0__5$3$0, Gamma_Cse0__5$3$0 := bvadd64(R31, 18446744073709551600bv64), Gamma_R31; + stack, Gamma_stack := memory_store64_le(stack, Cse0__5$3$0, R29), gamma_store64(Gamma_stack, Cse0__5$3$0, Gamma_R29); + assume {:captureState "4196032$1"} true; + stack, Gamma_stack := memory_store64_le(stack, bvadd64(Cse0__5$3$0, 8bv64), R30), gamma_store64(Gamma_stack, bvadd64(Cse0__5$3$0, 8bv64), Gamma_R30); + assume {:captureState "4196032$2"} true; + R31, Gamma_R31 := Cse0__5$3$0, Gamma_Cse0__5$3$0; + R0, Gamma_R0 := 4194304bv64, true; + R0, Gamma_R0 := bvadd64(R0, 2120bv64), Gamma_R0; R29, Gamma_R29 := R31, Gamma_R31; + R30, Gamma_R30 := 4196052bv64, true; + call FUN_4006a0(); + goto $main$__1__$UtkQk4ONSE6hNEuDpZ95RQ; + $main$__1__$UtkQk4ONSE6hNEuDpZ95RQ: + assume {:captureState "$main$__1__$UtkQk4ONSE6hNEuDpZ95RQ"} true; + R30, Gamma_R30 := 4196036bv64, true; + call greet(); + goto $main$__2__$KTHyjTW0SWiGwqylcMDw6Q; + $main$__2__$KTHyjTW0SWiGwqylcMDw6Q: + assume {:captureState "$main$__2__$KTHyjTW0SWiGwqylcMDw6Q"} true; R0, Gamma_R0 := 0bv64, true; - R0, Gamma_R0 := bvadd64(R0, 1992bv64), Gamma_R0; - R30, Gamma_R30 := 1896bv64, true; - call FUN_630_1584(); - goto greet_1876__1__kdZai1woRdCWjv9gZOc7IQ; - greet_1876__1__kdZai1woRdCWjv9gZOc7IQ: - assume {:captureState "greet_1876__1__kdZai1woRdCWjv9gZOc7IQ"} true; - load2, Gamma_load2 := memory_load64_le(stack, R31), gamma_load64(Gamma_stack, R31); - R29, Gamma_R29 := load2, Gamma_load2; - load3, Gamma_load3 := memory_load64_le(stack, bvadd64(R31, 8bv64)), gamma_load64(Gamma_stack, bvadd64(R31, 8bv64)); - R30, Gamma_R30 := load3, Gamma_load3; + $load5, Gamma_$load5 := memory_load64_le(stack, R31), gamma_load64(Gamma_stack, R31); + R29, Gamma_R29 := $load5, Gamma_$load5; + $load6, Gamma_$load6 := memory_load64_le(stack, bvadd64(R31, 8bv64)), gamma_load64(Gamma_stack, bvadd64(R31, 8bv64)); + R30, Gamma_R30 := $load6, Gamma_$load6; R31, Gamma_R31 := bvadd64(R31, 16bv64), Gamma_R31; - goto greet_1876_basil_return; - greet_1876_basil_return: - assume {:captureState "greet_1876_basil_return"} true; + goto main_basil_return; + main_basil_return: + assume {:captureState "main_basil_return"} true; return; } -procedure main_1908(); - modifies Gamma_R0, Gamma_R16, Gamma_R17, Gamma_R29, Gamma_R30, Gamma_R31, Gamma_mem, Gamma_stack, R0, R16, R17, R29, R30, R31, mem, stack; - free requires (memory_load64_le(mem, 69632bv64) == 0bv64); - free requires (memory_load64_le(mem, 69640bv64) == 69640bv64); - free requires (memory_load64_le(mem, 1984bv64) == 131073bv64); - free requires (memory_load64_le(mem, 1992bv64) == 8583909746840200520bv64); - free requires (memory_load64_le(mem, 2000bv64) == 143418749551bv64); - free requires (memory_load64_le(mem, 2008bv64) == 2334956330884555075bv64); - free requires (memory_load64_le(mem, 2016bv64) == 2317427963641295463bv64); - free requires (memory_load64_le(mem, 2024bv64) == 8386658473162862185bv64); - free requires (memory_load8_le(mem, 2032bv64) == 108bv8); - free requires (memory_load8_le(mem, 2033bv64) == 121bv8); - free requires (memory_load8_le(mem, 2034bv64) == 58bv8); - free requires (memory_load8_le(mem, 2035bv64) == 0bv8); - free requires (memory_load64_le(mem, 69008bv64) == 1872bv64); - free requires (memory_load64_le(mem, 69016bv64) == 1792bv64); - free requires (memory_load64_le(mem, 69616bv64) == 1908bv64); - free requires (memory_load64_le(mem, 69640bv64) == 69640bv64); - free ensures (Gamma_R29 == old(Gamma_R29)); - free ensures (Gamma_R31 == old(Gamma_R31)); - free ensures (R29 == old(R29)); - free ensures (R31 == old(R31)); - free ensures (memory_load64_le(mem, 1984bv64) == 131073bv64); - free ensures (memory_load64_le(mem, 1992bv64) == 8583909746840200520bv64); - free ensures (memory_load64_le(mem, 2000bv64) == 143418749551bv64); - free ensures (memory_load64_le(mem, 2008bv64) == 2334956330884555075bv64); - free ensures (memory_load64_le(mem, 2016bv64) == 2317427963641295463bv64); - free ensures (memory_load64_le(mem, 2024bv64) == 8386658473162862185bv64); - free ensures (memory_load8_le(mem, 2032bv64) == 108bv8); - free ensures (memory_load8_le(mem, 2033bv64) == 121bv8); - free ensures (memory_load8_le(mem, 2034bv64) == 58bv8); - free ensures (memory_load8_le(mem, 2035bv64) == 0bv8); - free ensures (memory_load64_le(mem, 69008bv64) == 1872bv64); - free ensures (memory_load64_le(mem, 69016bv64) == 1792bv64); - free ensures (memory_load64_le(mem, 69616bv64) == 1908bv64); - free ensures (memory_load64_le(mem, 69640bv64) == 69640bv64); +procedure FUN_4006a0(); + modifies Gamma_R16, Gamma_R17, Gamma_mem, R16, R17, mem; + free requires (memory_load64_le(mem, 4196400bv64) == 131073bv64); + free requires (memory_load64_le(mem, 4196408bv64) == 8583909746840200520bv64); + free requires (memory_load64_le(mem, 4196416bv64) == 143418749551bv64); + free requires (memory_load64_le(mem, 4196424bv64) == 2334956330884555075bv64); + free requires (memory_load64_le(mem, 4196432bv64) == 2317427963641295463bv64); + free requires (memory_load64_le(mem, 4196440bv64) == 8386658473162862185bv64); + free requires (memory_load8_le(mem, 4196448bv64) == 108bv8); + free requires (memory_load8_le(mem, 4196449bv64) == 121bv8); + free requires (memory_load8_le(mem, 4196450bv64) == 58bv8); + free requires (memory_load8_le(mem, 4196451bv64) == 0bv8); + free ensures (memory_load64_le(mem, 4196400bv64) == 131073bv64); + free ensures (memory_load64_le(mem, 4196408bv64) == 8583909746840200520bv64); + free ensures (memory_load64_le(mem, 4196416bv64) == 143418749551bv64); + free ensures (memory_load64_le(mem, 4196424bv64) == 2334956330884555075bv64); + free ensures (memory_load64_le(mem, 4196432bv64) == 2317427963641295463bv64); + free ensures (memory_load64_le(mem, 4196440bv64) == 8386658473162862185bv64); + free ensures (memory_load8_le(mem, 4196448bv64) == 108bv8); + free ensures (memory_load8_le(mem, 4196449bv64) == 121bv8); + free ensures (memory_load8_le(mem, 4196450bv64) == 58bv8); + free ensures (memory_load8_le(mem, 4196451bv64) == 0bv8); + +implementation FUN_4006a0() +{ + var $load10: bv64; + var Gamma_$load10: bool; + $FUN_4006a0$__0__$t_6C~3O4SbalxMsQ9Vg3LA: + assume {:captureState "$FUN_4006a0$__0__$t_6C~3O4SbalxMsQ9Vg3LA"} true; + R16, Gamma_R16 := 4321280bv64, true; + call rely(); + $load10, Gamma_$load10 := memory_load64_le(mem, bvadd64(R16, 4056bv64)), (gamma_load64(Gamma_mem, bvadd64(R16, 4056bv64)) || L(mem, bvadd64(R16, 4056bv64))); + R17, Gamma_R17 := $load10, Gamma_$load10; + R16, Gamma_R16 := bvadd64(R16, 4056bv64), Gamma_R16; + call puts(); + assume false; +} -implementation main_1908() +procedure greet(); + modifies Gamma_R0, Gamma_R16, Gamma_R17, Gamma_mem, R0, R16, R17, mem; + free requires (memory_load64_le(mem, 4196400bv64) == 131073bv64); + free requires (memory_load64_le(mem, 4196408bv64) == 8583909746840200520bv64); + free requires (memory_load64_le(mem, 4196416bv64) == 143418749551bv64); + free requires (memory_load64_le(mem, 4196424bv64) == 2334956330884555075bv64); + free requires (memory_load64_le(mem, 4196432bv64) == 2317427963641295463bv64); + free requires (memory_load64_le(mem, 4196440bv64) == 8386658473162862185bv64); + free requires (memory_load8_le(mem, 4196448bv64) == 108bv8); + free requires (memory_load8_le(mem, 4196449bv64) == 121bv8); + free requires (memory_load8_le(mem, 4196450bv64) == 58bv8); + free requires (memory_load8_le(mem, 4196451bv64) == 0bv8); + free ensures (memory_load64_le(mem, 4196400bv64) == 131073bv64); + free ensures (memory_load64_le(mem, 4196408bv64) == 8583909746840200520bv64); + free ensures (memory_load64_le(mem, 4196416bv64) == 143418749551bv64); + free ensures (memory_load64_le(mem, 4196424bv64) == 2334956330884555075bv64); + free ensures (memory_load64_le(mem, 4196432bv64) == 2317427963641295463bv64); + free ensures (memory_load64_le(mem, 4196440bv64) == 8386658473162862185bv64); + free ensures (memory_load8_le(mem, 4196448bv64) == 108bv8); + free ensures (memory_load8_le(mem, 4196449bv64) == 121bv8); + free ensures (memory_load8_le(mem, 4196450bv64) == 58bv8); + free ensures (memory_load8_le(mem, 4196451bv64) == 0bv8); + +implementation greet() { - var Cse0__5_2_0: bv64; - var Gamma_Cse0__5_2_0: bool; - var Gamma_load16: bool; - var Gamma_load17: bool; - var Gamma_load18: bool; - var load16: bv64; - var load17: bv64; - var load18: bv64; - main_1908__0__w0OdBToKQa2Q58glCiVypg: - assume {:captureState "main_1908__0__w0OdBToKQa2Q58glCiVypg"} true; - Cse0__5_2_0, Gamma_Cse0__5_2_0 := bvadd64(R31, 18446744073709551584bv64), Gamma_R31; - stack, Gamma_stack := memory_store64_le(stack, Cse0__5_2_0, R29), gamma_store64(Gamma_stack, Cse0__5_2_0, Gamma_R29); - assume {:captureState "1908_1"} true; - stack, Gamma_stack := memory_store64_le(stack, bvadd64(Cse0__5_2_0, 8bv64), R30), gamma_store64(Gamma_stack, bvadd64(Cse0__5_2_0, 8bv64), Gamma_R30); - assume {:captureState "1908_2"} true; - R31, Gamma_R31 := Cse0__5_2_0, Gamma_Cse0__5_2_0; - R29, Gamma_R29 := R31, Gamma_R31; - R0, Gamma_R0 := 0bv64, true; - R0, Gamma_R0 := bvadd64(R0, 1876bv64), Gamma_R0; - stack, Gamma_stack := memory_store64_le(stack, bvadd64(R31, 24bv64), R0), gamma_store64(Gamma_stack, bvadd64(R31, 24bv64), Gamma_R0); - assume {:captureState "1924_0"} true; - R0, Gamma_R0 := 0bv64, true; - R0, Gamma_R0 := bvadd64(R0, 2008bv64), Gamma_R0; - R30, Gamma_R30 := 1940bv64, true; - call FUN_630_1584(); - goto main_1908__1__XCDB1coVTJ2EOAyBt9pNGg; - main_1908__1__XCDB1coVTJ2EOAyBt9pNGg: - assume {:captureState "main_1908__1__XCDB1coVTJ2EOAyBt9pNGg"} true; - load18, Gamma_load18 := memory_load64_le(stack, bvadd64(R31, 24bv64)), gamma_load64(Gamma_stack, bvadd64(R31, 24bv64)); - R0, Gamma_R0 := load18, Gamma_load18; - R30, Gamma_R30 := 1948bv64, true; - call greet_1876(); - goto main_1908__2__CUvNMZuRSsiLfPsNmfjI_Q; - main_1908__2__CUvNMZuRSsiLfPsNmfjI_Q: - assume {:captureState "main_1908__2__CUvNMZuRSsiLfPsNmfjI_Q"} true; - R0, Gamma_R0 := 0bv64, true; - load16, Gamma_load16 := memory_load64_le(stack, R31), gamma_load64(Gamma_stack, R31); - R29, Gamma_R29 := load16, Gamma_load16; - load17, Gamma_load17 := memory_load64_le(stack, bvadd64(R31, 8bv64)), gamma_load64(Gamma_stack, bvadd64(R31, 8bv64)); - R30, Gamma_R30 := load17, Gamma_load17; - R31, Gamma_R31 := bvadd64(R31, 32bv64), Gamma_R31; - goto main_1908_basil_return; - main_1908_basil_return: - assume {:captureState "main_1908_basil_return"} true; - return; + $greet$__0__$rlVqjjqoR6uHwOYvPCS15g: + assume {:captureState "$greet$__0__$rlVqjjqoR6uHwOYvPCS15g"} true; + R0, Gamma_R0 := 4194304bv64, true; + R0, Gamma_R0 := bvadd64(R0, 2104bv64), Gamma_R0; + call FUN_4006a0(); + assume false; } procedure puts(); - free requires (memory_load64_le(mem, 1984bv64) == 131073bv64); - free requires (memory_load64_le(mem, 1992bv64) == 8583909746840200520bv64); - free requires (memory_load64_le(mem, 2000bv64) == 143418749551bv64); - free requires (memory_load64_le(mem, 2008bv64) == 2334956330884555075bv64); - free requires (memory_load64_le(mem, 2016bv64) == 2317427963641295463bv64); - free requires (memory_load64_le(mem, 2024bv64) == 8386658473162862185bv64); - free requires (memory_load8_le(mem, 2032bv64) == 108bv8); - free requires (memory_load8_le(mem, 2033bv64) == 121bv8); - free requires (memory_load8_le(mem, 2034bv64) == 58bv8); - free requires (memory_load8_le(mem, 2035bv64) == 0bv8); - free requires (memory_load64_le(mem, 69008bv64) == 1872bv64); - free requires (memory_load64_le(mem, 69016bv64) == 1792bv64); - free requires (memory_load64_le(mem, 69616bv64) == 1908bv64); - free requires (memory_load64_le(mem, 69640bv64) == 69640bv64); - free ensures (memory_load64_le(mem, 1984bv64) == 131073bv64); - free ensures (memory_load64_le(mem, 1992bv64) == 8583909746840200520bv64); - free ensures (memory_load64_le(mem, 2000bv64) == 143418749551bv64); - free ensures (memory_load64_le(mem, 2008bv64) == 2334956330884555075bv64); - free ensures (memory_load64_le(mem, 2016bv64) == 2317427963641295463bv64); - free ensures (memory_load64_le(mem, 2024bv64) == 8386658473162862185bv64); - free ensures (memory_load8_le(mem, 2032bv64) == 108bv8); - free ensures (memory_load8_le(mem, 2033bv64) == 121bv8); - free ensures (memory_load8_le(mem, 2034bv64) == 58bv8); - free ensures (memory_load8_le(mem, 2035bv64) == 0bv8); - free ensures (memory_load64_le(mem, 69008bv64) == 1872bv64); - free ensures (memory_load64_le(mem, 69016bv64) == 1792bv64); - free ensures (memory_load64_le(mem, 69616bv64) == 1908bv64); - free ensures (memory_load64_le(mem, 69640bv64) == 69640bv64); + free requires (memory_load64_le(mem, 4196400bv64) == 131073bv64); + free requires (memory_load64_le(mem, 4196408bv64) == 8583909746840200520bv64); + free requires (memory_load64_le(mem, 4196416bv64) == 143418749551bv64); + free requires (memory_load64_le(mem, 4196424bv64) == 2334956330884555075bv64); + free requires (memory_load64_le(mem, 4196432bv64) == 2317427963641295463bv64); + free requires (memory_load64_le(mem, 4196440bv64) == 8386658473162862185bv64); + free requires (memory_load8_le(mem, 4196448bv64) == 108bv8); + free requires (memory_load8_le(mem, 4196449bv64) == 121bv8); + free requires (memory_load8_le(mem, 4196450bv64) == 58bv8); + free requires (memory_load8_le(mem, 4196451bv64) == 0bv8); + free ensures (memory_load64_le(mem, 4196400bv64) == 131073bv64); + free ensures (memory_load64_le(mem, 4196408bv64) == 8583909746840200520bv64); + free ensures (memory_load64_le(mem, 4196416bv64) == 143418749551bv64); + free ensures (memory_load64_le(mem, 4196424bv64) == 2334956330884555075bv64); + free ensures (memory_load64_le(mem, 4196432bv64) == 2317427963641295463bv64); + free ensures (memory_load64_le(mem, 4196440bv64) == 8386658473162862185bv64); + free ensures (memory_load8_le(mem, 4196448bv64) == 108bv8); + free ensures (memory_load8_le(mem, 4196449bv64) == 121bv8); + free ensures (memory_load8_le(mem, 4196450bv64) == 58bv8); + free ensures (memory_load8_le(mem, 4196451bv64) == 0bv8); diff --git a/src/test/correct/indirect_call/gcc_pic/indirect_call.expected b/src/test/correct/indirect_call/gcc_pic/indirect_call.expected new file mode 100644 index 000000000..fb7fc45b3 --- /dev/null +++ b/src/test/correct/indirect_call/gcc_pic/indirect_call.expected @@ -0,0 +1,196 @@ +var {:extern} Gamma_R0: bool; +var {:extern} Gamma_R16: bool; +var {:extern} Gamma_R17: bool; +var {:extern} Gamma_R29: bool; +var {:extern} Gamma_R30: bool; +var {:extern} Gamma_R31: bool; +var {:extern} Gamma_mem: [bv64]bool; +var {:extern} Gamma_stack: [bv64]bool; +var {:extern} R0: bv64; +var {:extern} R16: bv64; +var {:extern} R17: bv64; +var {:extern} R29: bv64; +var {:extern} R30: bv64; +var {:extern} R31: bv64; +var {:extern} mem: [bv64]bv8; +var {:extern} stack: [bv64]bv8; +const {:extern} $_IO_stdin_used_addr: bv64; +axiom ($_IO_stdin_used_addr == 4196400bv64); +function {:extern} {:bvbuiltin "bvadd"} bvadd64(bv64, bv64) returns (bv64); +function {:extern} gamma_load64(gammaMap: [bv64]bool, index: bv64) returns (bool) { + (gammaMap[bvadd64(index, 7bv64)] && (gammaMap[bvadd64(index, 6bv64)] && (gammaMap[bvadd64(index, 5bv64)] && (gammaMap[bvadd64(index, 4bv64)] && (gammaMap[bvadd64(index, 3bv64)] && (gammaMap[bvadd64(index, 2bv64)] && (gammaMap[bvadd64(index, 1bv64)] && gammaMap[index]))))))) +} + +function {:extern} gamma_store64(gammaMap: [bv64]bool, index: bv64, value: bool) returns ([bv64]bool) { + gammaMap[index := value][bvadd64(index, 1bv64) := value][bvadd64(index, 2bv64) := value][bvadd64(index, 3bv64) := value][bvadd64(index, 4bv64) := value][bvadd64(index, 5bv64) := value][bvadd64(index, 6bv64) := value][bvadd64(index, 7bv64) := value] +} + +function {:extern} memory_load64_le(memory: [bv64]bv8, index: bv64) returns (bv64) { + (memory[bvadd64(index, 7bv64)] ++ (memory[bvadd64(index, 6bv64)] ++ (memory[bvadd64(index, 5bv64)] ++ (memory[bvadd64(index, 4bv64)] ++ (memory[bvadd64(index, 3bv64)] ++ (memory[bvadd64(index, 2bv64)] ++ (memory[bvadd64(index, 1bv64)] ++ memory[index]))))))) +} + +function {:extern} memory_load8_le(memory: [bv64]bv8, index: bv64) returns (bv8) { + memory[index] +} + +function {:extern} memory_store64_le(memory: [bv64]bv8, index: bv64, value: bv64) returns ([bv64]bv8) { + memory[index := value[8:0]][bvadd64(index, 1bv64) := value[16:8]][bvadd64(index, 2bv64) := value[24:16]][bvadd64(index, 3bv64) := value[32:24]][bvadd64(index, 4bv64) := value[40:32]][bvadd64(index, 5bv64) := value[48:40]][bvadd64(index, 6bv64) := value[56:48]][bvadd64(index, 7bv64) := value[64:56]] +} + +procedure {:extern} rely(); + modifies Gamma_mem, mem; + ensures (Gamma_mem == old(Gamma_mem)); + ensures (mem == old(mem)); + free ensures (memory_load64_le(mem, 4196400bv64) == 131073bv64); + free ensures (memory_load64_le(mem, 4196408bv64) == 8583909746840200520bv64); + free ensures (memory_load64_le(mem, 4196416bv64) == 143418749551bv64); + free ensures (memory_load64_le(mem, 4196424bv64) == 2334956330884555075bv64); + free ensures (memory_load64_le(mem, 4196432bv64) == 2317427963641295463bv64); + free ensures (memory_load64_le(mem, 4196440bv64) == 8386658473162862185bv64); + free ensures (memory_load8_le(mem, 4196448bv64) == 108bv8); + free ensures (memory_load8_le(mem, 4196449bv64) == 121bv8); + free ensures (memory_load8_le(mem, 4196450bv64) == 58bv8); + free ensures (memory_load8_le(mem, 4196451bv64) == 0bv8); + +procedure {:extern} rely_transitive(); + modifies Gamma_mem, mem; + ensures (Gamma_mem == old(Gamma_mem)); + ensures (mem == old(mem)); + +implementation {:extern} rely_transitive() +{ + call rely(); + call rely(); +} + +procedure {:extern} rely_reflexive(); + +procedure {:extern} guarantee_reflexive(); + modifies Gamma_mem, mem; + +procedure greet(); + modifies Gamma_R0, Gamma_R16, Gamma_R17, R0, R16, R17; + free requires (memory_load64_le(mem, 4196400bv64) == 131073bv64); + free requires (memory_load64_le(mem, 4196408bv64) == 8583909746840200520bv64); + free requires (memory_load64_le(mem, 4196416bv64) == 143418749551bv64); + free requires (memory_load64_le(mem, 4196424bv64) == 2334956330884555075bv64); + free requires (memory_load64_le(mem, 4196432bv64) == 2317427963641295463bv64); + free requires (memory_load64_le(mem, 4196440bv64) == 8386658473162862185bv64); + free requires (memory_load8_le(mem, 4196448bv64) == 108bv8); + free requires (memory_load8_le(mem, 4196449bv64) == 121bv8); + free requires (memory_load8_le(mem, 4196450bv64) == 58bv8); + free requires (memory_load8_le(mem, 4196451bv64) == 0bv8); + free ensures (memory_load64_le(mem, 4196400bv64) == 131073bv64); + free ensures (memory_load64_le(mem, 4196408bv64) == 8583909746840200520bv64); + free ensures (memory_load64_le(mem, 4196416bv64) == 143418749551bv64); + free ensures (memory_load64_le(mem, 4196424bv64) == 2334956330884555075bv64); + free ensures (memory_load64_le(mem, 4196432bv64) == 2317427963641295463bv64); + free ensures (memory_load64_le(mem, 4196440bv64) == 8386658473162862185bv64); + free ensures (memory_load8_le(mem, 4196448bv64) == 108bv8); + free ensures (memory_load8_le(mem, 4196449bv64) == 121bv8); + free ensures (memory_load8_le(mem, 4196450bv64) == 58bv8); + free ensures (memory_load8_le(mem, 4196451bv64) == 0bv8); + +implementation greet() +{ + lgreet: + assume {:captureState "lgreet"} true; + R0, Gamma_R0 := 4194304bv64, true; + R0, Gamma_R0 := bvadd64(R0, 2104bv64), Gamma_R0; + call puts(); + assume false; +} + +procedure main(); + modifies Gamma_R0, Gamma_R16, Gamma_R17, Gamma_R29, Gamma_R30, Gamma_R31, Gamma_stack, R0, R16, R17, R29, R30, R31, stack; + free requires (memory_load64_le(mem, 4325376bv64) == 0bv64); + free requires (memory_load64_le(mem, 4325384bv64) == 0bv64); + free requires (memory_load64_le(mem, 4196400bv64) == 131073bv64); + free requires (memory_load64_le(mem, 4196408bv64) == 8583909746840200520bv64); + free requires (memory_load64_le(mem, 4196416bv64) == 143418749551bv64); + free requires (memory_load64_le(mem, 4196424bv64) == 2334956330884555075bv64); + free requires (memory_load64_le(mem, 4196432bv64) == 2317427963641295463bv64); + free requires (memory_load64_le(mem, 4196440bv64) == 8386658473162862185bv64); + free requires (memory_load8_le(mem, 4196448bv64) == 108bv8); + free requires (memory_load8_le(mem, 4196449bv64) == 121bv8); + free requires (memory_load8_le(mem, 4196450bv64) == 58bv8); + free requires (memory_load8_le(mem, 4196451bv64) == 0bv8); + free ensures (Gamma_R29 == old(Gamma_R29)); + free ensures (Gamma_R31 == old(Gamma_R31)); + free ensures (R29 == old(R29)); + free ensures (R31 == old(R31)); + free ensures (memory_load64_le(mem, 4196400bv64) == 131073bv64); + free ensures (memory_load64_le(mem, 4196408bv64) == 8583909746840200520bv64); + free ensures (memory_load64_le(mem, 4196416bv64) == 143418749551bv64); + free ensures (memory_load64_le(mem, 4196424bv64) == 2334956330884555075bv64); + free ensures (memory_load64_le(mem, 4196432bv64) == 2317427963641295463bv64); + free ensures (memory_load64_le(mem, 4196440bv64) == 8386658473162862185bv64); + free ensures (memory_load8_le(mem, 4196448bv64) == 108bv8); + free ensures (memory_load8_le(mem, 4196449bv64) == 121bv8); + free ensures (memory_load8_le(mem, 4196450bv64) == 58bv8); + free ensures (memory_load8_le(mem, 4196451bv64) == 0bv8); + +implementation main() +{ + var #1: bv64; + var $load$14: bv64; + var $load$15: bv64; + var Gamma_#1: bool; + var Gamma_$load$14: bool; + var Gamma_$load$15: bool; + lmain: + assume {:captureState "lmain"} true; + #1, Gamma_#1 := bvadd64(R31, 18446744073709551600bv64), Gamma_R31; + stack, Gamma_stack := memory_store64_le(stack, #1, R29), gamma_store64(Gamma_stack, #1, Gamma_R29); + assume {:captureState "%00000268"} true; + stack, Gamma_stack := memory_store64_le(stack, bvadd64(#1, 8bv64), R30), gamma_store64(Gamma_stack, bvadd64(#1, 8bv64), Gamma_R30); + assume {:captureState "%0000026c"} true; + R31, Gamma_R31 := #1, Gamma_#1; + R0, Gamma_R0 := 4194304bv64, true; + R0, Gamma_R0 := bvadd64(R0, 2120bv64), Gamma_R0; + R29, Gamma_R29 := R31, Gamma_R31; + R30, Gamma_R30 := 4196052bv64, true; + call puts(); + goto l00000288; + l00000288: + assume {:captureState "l00000288"} true; + R30, Gamma_R30 := 4196056bv64, true; + call greet(); + goto l00000294; + l00000294: + assume {:captureState "l00000294"} true; + R0, Gamma_R0 := 0bv64, true; + $load$14, Gamma_$load$14 := memory_load64_le(stack, R31), gamma_load64(Gamma_stack, R31); + R29, Gamma_R29 := $load$14, Gamma_$load$14; + $load$15, Gamma_$load$15 := memory_load64_le(stack, bvadd64(R31, 8bv64)), gamma_load64(Gamma_stack, bvadd64(R31, 8bv64)); + R30, Gamma_R30 := $load$15, Gamma_$load$15; + R31, Gamma_R31 := bvadd64(R31, 16bv64), Gamma_R31; + goto main_basil_return; + main_basil_return: + assume {:captureState "main_basil_return"} true; + return; +} + +procedure puts(); + modifies Gamma_R16, Gamma_R17, R16, R17; + free requires (memory_load64_le(mem, 4196400bv64) == 131073bv64); + free requires (memory_load64_le(mem, 4196408bv64) == 8583909746840200520bv64); + free requires (memory_load64_le(mem, 4196416bv64) == 143418749551bv64); + free requires (memory_load64_le(mem, 4196424bv64) == 2334956330884555075bv64); + free requires (memory_load64_le(mem, 4196432bv64) == 2317427963641295463bv64); + free requires (memory_load64_le(mem, 4196440bv64) == 8386658473162862185bv64); + free requires (memory_load8_le(mem, 4196448bv64) == 108bv8); + free requires (memory_load8_le(mem, 4196449bv64) == 121bv8); + free requires (memory_load8_le(mem, 4196450bv64) == 58bv8); + free requires (memory_load8_le(mem, 4196451bv64) == 0bv8); + free ensures (memory_load64_le(mem, 4196400bv64) == 131073bv64); + free ensures (memory_load64_le(mem, 4196408bv64) == 8583909746840200520bv64); + free ensures (memory_load64_le(mem, 4196416bv64) == 143418749551bv64); + free ensures (memory_load64_le(mem, 4196424bv64) == 2334956330884555075bv64); + free ensures (memory_load64_le(mem, 4196432bv64) == 2317427963641295463bv64); + free ensures (memory_load64_le(mem, 4196440bv64) == 8386658473162862185bv64); + free ensures (memory_load8_le(mem, 4196448bv64) == 108bv8); + free ensures (memory_load8_le(mem, 4196449bv64) == 121bv8); + free ensures (memory_load8_le(mem, 4196450bv64) == 58bv8); + free ensures (memory_load8_le(mem, 4196451bv64) == 0bv8); + diff --git a/src/test/correct/indirect_call/gcc_pic/indirect_call.gts b/src/test/correct/indirect_call/gcc_pic/indirect_call.gts deleted file mode 100644 index e64c1c1e2..000000000 Binary files a/src/test/correct/indirect_call/gcc_pic/indirect_call.gts and /dev/null differ diff --git a/src/test/correct/indirect_call/gcc_pic/indirect_call.md5sum b/src/test/correct/indirect_call/gcc_pic/indirect_call.md5sum new file mode 100644 index 000000000..17e33708d --- /dev/null +++ b/src/test/correct/indirect_call/gcc_pic/indirect_call.md5sum @@ -0,0 +1,3 @@ +52e9dafeff1c2f27a5fcde67978f561d correct/indirect_call/gcc_pic/a.out +f1b7c2382ac5cc0800c9bf3bd80d5287 correct/indirect_call/gcc_pic/indirect_call.relf +956b13f507e66525fd9eb74de47db19b correct/indirect_call/gcc_pic/indirect_call.gts diff --git a/src/test/correct/indirect_call/gcc_pic/indirect_call.relf b/src/test/correct/indirect_call/gcc_pic/indirect_call.relf deleted file mode 100644 index 4c5879c84..000000000 --- a/src/test/correct/indirect_call/gcc_pic/indirect_call.relf +++ /dev/null @@ -1,125 +0,0 @@ - -Relocation section '.rela.dyn' at offset 0x480 contains 9 entries: - Offset Info Type Symbol's Value Symbol's Name + Addend -0000000000010d88 0000000000000403 R_AARCH64_RELATIVE 790 -0000000000010d90 0000000000000403 R_AARCH64_RELATIVE 740 -0000000000010fe0 0000000000000403 R_AARCH64_RELATIVE 794 -0000000000010ff0 0000000000000403 R_AARCH64_RELATIVE 7b4 -0000000000011008 0000000000000403 R_AARCH64_RELATIVE 11008 -0000000000010fd0 0000000400000401 R_AARCH64_GLOB_DAT 0000000000000000 _ITM_deregisterTMCloneTable + 0 -0000000000010fd8 0000000500000401 R_AARCH64_GLOB_DAT 0000000000000000 __cxa_finalize@GLIBC_2.17 + 0 -0000000000010fe8 0000000600000401 R_AARCH64_GLOB_DAT 0000000000000000 __gmon_start__ + 0 -0000000000010ff8 0000000900000401 R_AARCH64_GLOB_DAT 0000000000000000 _ITM_registerTMCloneTable + 0 - -Relocation section '.rela.plt' at offset 0x558 contains 5 entries: - Offset Info Type Symbol's Value Symbol's Name + Addend -0000000000010fa0 0000000300000402 R_AARCH64_JUMP_SLOT 0000000000000000 __libc_start_main@GLIBC_2.34 + 0 -0000000000010fa8 0000000500000402 R_AARCH64_JUMP_SLOT 0000000000000000 __cxa_finalize@GLIBC_2.17 + 0 -0000000000010fb0 0000000600000402 R_AARCH64_JUMP_SLOT 0000000000000000 __gmon_start__ + 0 -0000000000010fb8 0000000700000402 R_AARCH64_JUMP_SLOT 0000000000000000 abort@GLIBC_2.17 + 0 -0000000000010fc0 0000000800000402 R_AARCH64_JUMP_SLOT 0000000000000000 puts@GLIBC_2.17 + 0 - -Symbol table '.dynsym' contains 10 entries: - Num: Value Size Type Bind Vis Ndx Name - 0: 0000000000000000 0 NOTYPE LOCAL DEFAULT UND - 1: 00000000000005d0 0 SECTION LOCAL DEFAULT 11 .init - 2: 0000000000011000 0 SECTION LOCAL DEFAULT 22 .data - 3: 0000000000000000 0 FUNC GLOBAL DEFAULT UND __libc_start_main@GLIBC_2.34 (2) - 4: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_deregisterTMCloneTable - 5: 0000000000000000 0 FUNC WEAK DEFAULT UND __cxa_finalize@GLIBC_2.17 (3) - 6: 0000000000000000 0 NOTYPE WEAK DEFAULT UND __gmon_start__ - 7: 0000000000000000 0 FUNC GLOBAL DEFAULT UND abort@GLIBC_2.17 (3) - 8: 0000000000000000 0 FUNC GLOBAL DEFAULT UND puts@GLIBC_2.17 (3) - 9: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_registerTMCloneTable - -Symbol table '.symtab' contains 89 entries: - Num: Value Size Type Bind Vis Ndx Name - 0: 0000000000000000 0 NOTYPE LOCAL DEFAULT UND - 1: 0000000000000238 0 SECTION LOCAL DEFAULT 1 .interp - 2: 0000000000000254 0 SECTION LOCAL DEFAULT 2 .note.gnu.build-id - 3: 0000000000000278 0 SECTION LOCAL DEFAULT 3 .note.ABI-tag - 4: 0000000000000298 0 SECTION LOCAL DEFAULT 4 .gnu.hash - 5: 00000000000002b8 0 SECTION LOCAL DEFAULT 5 .dynsym - 6: 00000000000003a8 0 SECTION LOCAL DEFAULT 6 .dynstr - 7: 000000000000043a 0 SECTION LOCAL DEFAULT 7 .gnu.version - 8: 0000000000000450 0 SECTION LOCAL DEFAULT 8 .gnu.version_r - 9: 0000000000000480 0 SECTION LOCAL DEFAULT 9 .rela.dyn - 10: 0000000000000558 0 SECTION LOCAL DEFAULT 10 .rela.plt - 11: 00000000000005d0 0 SECTION LOCAL DEFAULT 11 .init - 12: 00000000000005f0 0 SECTION LOCAL DEFAULT 12 .plt - 13: 0000000000000680 0 SECTION LOCAL DEFAULT 13 .text - 14: 00000000000007e8 0 SECTION LOCAL DEFAULT 14 .fini - 15: 0000000000000800 0 SECTION LOCAL DEFAULT 15 .rodata - 16: 0000000000000834 0 SECTION LOCAL DEFAULT 16 .eh_frame_hdr - 17: 0000000000000878 0 SECTION LOCAL DEFAULT 17 .eh_frame - 18: 0000000000010d88 0 SECTION LOCAL DEFAULT 18 .init_array - 19: 0000000000010d90 0 SECTION LOCAL DEFAULT 19 .fini_array - 20: 0000000000010d98 0 SECTION LOCAL DEFAULT 20 .dynamic - 21: 0000000000010f88 0 SECTION LOCAL DEFAULT 21 .got - 22: 0000000000011000 0 SECTION LOCAL DEFAULT 22 .data - 23: 0000000000011010 0 SECTION LOCAL DEFAULT 23 .bss - 24: 0000000000000000 0 SECTION LOCAL DEFAULT 24 .comment - 25: 0000000000000000 0 FILE LOCAL DEFAULT ABS Scrt1.o - 26: 0000000000000278 0 NOTYPE LOCAL DEFAULT 3 $d - 27: 0000000000000278 32 OBJECT LOCAL DEFAULT 3 __abi_tag - 28: 0000000000000680 0 NOTYPE LOCAL DEFAULT 13 $x - 29: 000000000000088c 0 NOTYPE LOCAL DEFAULT 17 $d - 30: 0000000000000800 0 NOTYPE LOCAL DEFAULT 15 $d - 31: 0000000000000000 0 FILE LOCAL DEFAULT ABS crti.o - 32: 00000000000006b4 0 NOTYPE LOCAL DEFAULT 13 $x - 33: 00000000000006b4 20 FUNC LOCAL DEFAULT 13 call_weak_fn - 34: 00000000000005d0 0 NOTYPE LOCAL DEFAULT 11 $x - 35: 00000000000007e8 0 NOTYPE LOCAL DEFAULT 14 $x - 36: 0000000000000000 0 FILE LOCAL DEFAULT ABS crtn.o - 37: 00000000000005e0 0 NOTYPE LOCAL DEFAULT 11 $x - 38: 00000000000007f4 0 NOTYPE LOCAL DEFAULT 14 $x - 39: 0000000000000000 0 FILE LOCAL DEFAULT ABS crtstuff.c - 40: 00000000000006d0 0 NOTYPE LOCAL DEFAULT 13 $x - 41: 00000000000006d0 0 FUNC LOCAL DEFAULT 13 deregister_tm_clones - 42: 0000000000000700 0 FUNC LOCAL DEFAULT 13 register_tm_clones - 43: 0000000000011008 0 NOTYPE LOCAL DEFAULT 22 $d - 44: 0000000000000740 0 FUNC LOCAL DEFAULT 13 __do_global_dtors_aux - 45: 0000000000011010 1 OBJECT LOCAL DEFAULT 23 completed.0 - 46: 0000000000010d90 0 NOTYPE LOCAL DEFAULT 19 $d - 47: 0000000000010d90 0 OBJECT LOCAL DEFAULT 19 __do_global_dtors_aux_fini_array_entry - 48: 0000000000000790 0 FUNC LOCAL DEFAULT 13 frame_dummy - 49: 0000000000010d88 0 NOTYPE LOCAL DEFAULT 18 $d - 50: 0000000000010d88 0 OBJECT LOCAL DEFAULT 18 __frame_dummy_init_array_entry - 51: 00000000000008a0 0 NOTYPE LOCAL DEFAULT 17 $d - 52: 0000000000011010 0 NOTYPE LOCAL DEFAULT 23 $d - 53: 0000000000000000 0 FILE LOCAL DEFAULT ABS indirect_call.c - 54: 0000000000000808 0 NOTYPE LOCAL DEFAULT 15 $d - 55: 0000000000000794 0 NOTYPE LOCAL DEFAULT 13 $x - 56: 0000000000000900 0 NOTYPE LOCAL DEFAULT 17 $d - 57: 0000000000000000 0 FILE LOCAL DEFAULT ABS crtstuff.c - 58: 0000000000000940 0 NOTYPE LOCAL DEFAULT 17 $d - 59: 0000000000000940 0 OBJECT LOCAL DEFAULT 17 __FRAME_END__ - 60: 0000000000000000 0 FILE LOCAL DEFAULT ABS - 61: 0000000000010d98 0 OBJECT LOCAL DEFAULT ABS _DYNAMIC - 62: 0000000000000834 0 NOTYPE LOCAL DEFAULT 16 __GNU_EH_FRAME_HDR - 63: 0000000000010fc8 0 OBJECT LOCAL DEFAULT ABS _GLOBAL_OFFSET_TABLE_ - 64: 00000000000005f0 0 NOTYPE LOCAL DEFAULT 12 $x - 65: 0000000000000000 0 FUNC GLOBAL DEFAULT UND __libc_start_main@GLIBC_2.34 - 66: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_deregisterTMCloneTable - 67: 0000000000011000 0 NOTYPE WEAK DEFAULT 22 data_start - 68: 0000000000011010 0 NOTYPE GLOBAL DEFAULT 23 __bss_start__ - 69: 0000000000000000 0 FUNC WEAK DEFAULT UND __cxa_finalize@GLIBC_2.17 - 70: 0000000000011018 0 NOTYPE GLOBAL DEFAULT 23 _bss_end__ - 71: 0000000000011010 0 NOTYPE GLOBAL DEFAULT 22 _edata - 72: 00000000000007e8 0 FUNC GLOBAL HIDDEN 14 _fini - 73: 0000000000011018 0 NOTYPE GLOBAL DEFAULT 23 __bss_end__ - 74: 0000000000000794 32 FUNC GLOBAL DEFAULT 13 greet - 75: 0000000000011000 0 NOTYPE GLOBAL DEFAULT 22 __data_start - 76: 0000000000000000 0 NOTYPE WEAK DEFAULT UND __gmon_start__ - 77: 0000000000011008 0 OBJECT GLOBAL HIDDEN 22 __dso_handle - 78: 0000000000000000 0 FUNC GLOBAL DEFAULT UND abort@GLIBC_2.17 - 79: 0000000000000800 4 OBJECT GLOBAL DEFAULT 15 _IO_stdin_used - 80: 0000000000000000 0 FUNC GLOBAL DEFAULT UND puts@GLIBC_2.17 - 81: 0000000000011018 0 NOTYPE GLOBAL DEFAULT 23 _end - 82: 0000000000000680 52 FUNC GLOBAL DEFAULT 13 _start - 83: 0000000000011018 0 NOTYPE GLOBAL DEFAULT 23 __end__ - 84: 0000000000011010 0 NOTYPE GLOBAL DEFAULT 23 __bss_start - 85: 00000000000007b4 52 FUNC GLOBAL DEFAULT 13 main - 86: 0000000000011010 0 OBJECT GLOBAL HIDDEN 22 __TMC_END__ - 87: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_registerTMCloneTable - 88: 00000000000005d0 0 FUNC GLOBAL HIDDEN 11 _init diff --git a/src/test/correct/indirect_call/gcc_pic/indirect_call_gtirb.expected b/src/test/correct/indirect_call/gcc_pic/indirect_call_gtirb.expected index 79e893318..bd9996ad5 100644 --- a/src/test/correct/indirect_call/gcc_pic/indirect_call_gtirb.expected +++ b/src/test/correct/indirect_call/gcc_pic/indirect_call_gtirb.expected @@ -15,7 +15,7 @@ var {:extern} R31: bv64; var {:extern} mem: [bv64]bv8; var {:extern} stack: [bv64]bv8; const {:extern} $_IO_stdin_used_addr: bv64; -axiom ($_IO_stdin_used_addr == 2048bv64); +axiom ($_IO_stdin_used_addr == 4196400bv64); function {:extern} L(mem$in: [bv64]bv8, index: bv64) returns (bool) { false } @@ -45,21 +45,16 @@ procedure {:extern} rely(); modifies Gamma_mem, mem; ensures (Gamma_mem == old(Gamma_mem)); ensures (mem == old(mem)); - free ensures (memory_load64_le(mem, 2048bv64) == 131073bv64); - free ensures (memory_load64_le(mem, 2056bv64) == 8583909746840200520bv64); - free ensures (memory_load64_le(mem, 2064bv64) == 143418749551bv64); - free ensures (memory_load64_le(mem, 2072bv64) == 2334956330884555075bv64); - free ensures (memory_load64_le(mem, 2080bv64) == 2317427963641295463bv64); - free ensures (memory_load64_le(mem, 2088bv64) == 8386658473162862185bv64); - free ensures (memory_load8_le(mem, 2096bv64) == 108bv8); - free ensures (memory_load8_le(mem, 2097bv64) == 121bv8); - free ensures (memory_load8_le(mem, 2098bv64) == 58bv8); - free ensures (memory_load8_le(mem, 2099bv64) == 0bv8); - free ensures (memory_load64_le(mem, 69000bv64) == 1936bv64); - free ensures (memory_load64_le(mem, 69008bv64) == 1856bv64); - free ensures (memory_load64_le(mem, 69600bv64) == 1940bv64); - free ensures (memory_load64_le(mem, 69616bv64) == 1972bv64); - free ensures (memory_load64_le(mem, 69640bv64) == 69640bv64); + free ensures (memory_load64_le(mem, 4196400bv64) == 131073bv64); + free ensures (memory_load64_le(mem, 4196408bv64) == 8583909746840200520bv64); + free ensures (memory_load64_le(mem, 4196416bv64) == 143418749551bv64); + free ensures (memory_load64_le(mem, 4196424bv64) == 2334956330884555075bv64); + free ensures (memory_load64_le(mem, 4196432bv64) == 2317427963641295463bv64); + free ensures (memory_load64_le(mem, 4196440bv64) == 8386658473162862185bv64); + free ensures (memory_load8_le(mem, 4196448bv64) == 108bv8); + free ensures (memory_load8_le(mem, 4196449bv64) == 121bv8); + free ensures (memory_load8_le(mem, 4196450bv64) == 58bv8); + free ensures (memory_load8_le(mem, 4196451bv64) == 0bv8); procedure {:extern} rely_transitive(); modifies Gamma_mem, mem; @@ -77,250 +72,166 @@ procedure {:extern} rely_reflexive(); procedure {:extern} guarantee_reflexive(); modifies Gamma_mem, mem; -procedure greet_1940(); +procedure main(); modifies Gamma_R0, Gamma_R16, Gamma_R17, Gamma_R29, Gamma_R30, Gamma_R31, Gamma_mem, Gamma_stack, R0, R16, R17, R29, R30, R31, mem, stack; - free requires (memory_load64_le(mem, 2048bv64) == 131073bv64); - free requires (memory_load64_le(mem, 2056bv64) == 8583909746840200520bv64); - free requires (memory_load64_le(mem, 2064bv64) == 143418749551bv64); - free requires (memory_load64_le(mem, 2072bv64) == 2334956330884555075bv64); - free requires (memory_load64_le(mem, 2080bv64) == 2317427963641295463bv64); - free requires (memory_load64_le(mem, 2088bv64) == 8386658473162862185bv64); - free requires (memory_load8_le(mem, 2096bv64) == 108bv8); - free requires (memory_load8_le(mem, 2097bv64) == 121bv8); - free requires (memory_load8_le(mem, 2098bv64) == 58bv8); - free requires (memory_load8_le(mem, 2099bv64) == 0bv8); - free requires (memory_load64_le(mem, 69000bv64) == 1936bv64); - free requires (memory_load64_le(mem, 69008bv64) == 1856bv64); - free requires (memory_load64_le(mem, 69600bv64) == 1940bv64); - free requires (memory_load64_le(mem, 69616bv64) == 1972bv64); - free requires (memory_load64_le(mem, 69640bv64) == 69640bv64); + free requires (memory_load64_le(mem, 4325376bv64) == 0bv64); + free requires (memory_load64_le(mem, 4325384bv64) == 0bv64); + free requires (memory_load64_le(mem, 4196400bv64) == 131073bv64); + free requires (memory_load64_le(mem, 4196408bv64) == 8583909746840200520bv64); + free requires (memory_load64_le(mem, 4196416bv64) == 143418749551bv64); + free requires (memory_load64_le(mem, 4196424bv64) == 2334956330884555075bv64); + free requires (memory_load64_le(mem, 4196432bv64) == 2317427963641295463bv64); + free requires (memory_load64_le(mem, 4196440bv64) == 8386658473162862185bv64); + free requires (memory_load8_le(mem, 4196448bv64) == 108bv8); + free requires (memory_load8_le(mem, 4196449bv64) == 121bv8); + free requires (memory_load8_le(mem, 4196450bv64) == 58bv8); + free requires (memory_load8_le(mem, 4196451bv64) == 0bv8); free ensures (Gamma_R29 == old(Gamma_R29)); free ensures (Gamma_R31 == old(Gamma_R31)); free ensures (R29 == old(R29)); free ensures (R31 == old(R31)); - free ensures (memory_load64_le(mem, 2048bv64) == 131073bv64); - free ensures (memory_load64_le(mem, 2056bv64) == 8583909746840200520bv64); - free ensures (memory_load64_le(mem, 2064bv64) == 143418749551bv64); - free ensures (memory_load64_le(mem, 2072bv64) == 2334956330884555075bv64); - free ensures (memory_load64_le(mem, 2080bv64) == 2317427963641295463bv64); - free ensures (memory_load64_le(mem, 2088bv64) == 8386658473162862185bv64); - free ensures (memory_load8_le(mem, 2096bv64) == 108bv8); - free ensures (memory_load8_le(mem, 2097bv64) == 121bv8); - free ensures (memory_load8_le(mem, 2098bv64) == 58bv8); - free ensures (memory_load8_le(mem, 2099bv64) == 0bv8); - free ensures (memory_load64_le(mem, 69000bv64) == 1936bv64); - free ensures (memory_load64_le(mem, 69008bv64) == 1856bv64); - free ensures (memory_load64_le(mem, 69600bv64) == 1940bv64); - free ensures (memory_load64_le(mem, 69616bv64) == 1972bv64); - free ensures (memory_load64_le(mem, 69640bv64) == 69640bv64); - -implementation greet_1940() + free ensures (memory_load64_le(mem, 4196400bv64) == 131073bv64); + free ensures (memory_load64_le(mem, 4196408bv64) == 8583909746840200520bv64); + free ensures (memory_load64_le(mem, 4196416bv64) == 143418749551bv64); + free ensures (memory_load64_le(mem, 4196424bv64) == 2334956330884555075bv64); + free ensures (memory_load64_le(mem, 4196432bv64) == 2317427963641295463bv64); + free ensures (memory_load64_le(mem, 4196440bv64) == 8386658473162862185bv64); + free ensures (memory_load8_le(mem, 4196448bv64) == 108bv8); + free ensures (memory_load8_le(mem, 4196449bv64) == 121bv8); + free ensures (memory_load8_le(mem, 4196450bv64) == 58bv8); + free ensures (memory_load8_le(mem, 4196451bv64) == 0bv8); + +implementation main() { - var Cse0__5_1_0: bv64; - var Gamma_Cse0__5_1_0: bool; - var Gamma_load1: bool; - var Gamma_load2: bool; - var load1: bv64; - var load2: bv64; - greet_1940__0__ya12BsraQDyb0PY~D2lGYQ: - assume {:captureState "greet_1940__0__ya12BsraQDyb0PY~D2lGYQ"} true; - Cse0__5_1_0, Gamma_Cse0__5_1_0 := bvadd64(R31, 18446744073709551600bv64), Gamma_R31; - stack, Gamma_stack := memory_store64_le(stack, Cse0__5_1_0, R29), gamma_store64(Gamma_stack, Cse0__5_1_0, Gamma_R29); - assume {:captureState "1940_1"} true; - stack, Gamma_stack := memory_store64_le(stack, bvadd64(Cse0__5_1_0, 8bv64), R30), gamma_store64(Gamma_stack, bvadd64(Cse0__5_1_0, 8bv64), Gamma_R30); - assume {:captureState "1940_2"} true; - R31, Gamma_R31 := Cse0__5_1_0, Gamma_Cse0__5_1_0; + var $load5: bv64; + var $load6: bv64; + var Cse0__5$3$0: bv64; + var Gamma_$load5: bool; + var Gamma_$load6: bool; + var Gamma_Cse0__5$3$0: bool; + $main$__0__$8D7O5dmBS1ek~5BDJ9mBtA: + assume {:captureState "$main$__0__$8D7O5dmBS1ek~5BDJ9mBtA"} true; + Cse0__5$3$0, Gamma_Cse0__5$3$0 := bvadd64(R31, 18446744073709551600bv64), Gamma_R31; + stack, Gamma_stack := memory_store64_le(stack, Cse0__5$3$0, R29), gamma_store64(Gamma_stack, Cse0__5$3$0, Gamma_R29); + assume {:captureState "4196032$1"} true; + stack, Gamma_stack := memory_store64_le(stack, bvadd64(Cse0__5$3$0, 8bv64), R30), gamma_store64(Gamma_stack, bvadd64(Cse0__5$3$0, 8bv64), Gamma_R30); + assume {:captureState "4196032$2"} true; + R31, Gamma_R31 := Cse0__5$3$0, Gamma_Cse0__5$3$0; + R0, Gamma_R0 := 4194304bv64, true; + R0, Gamma_R0 := bvadd64(R0, 2120bv64), Gamma_R0; R29, Gamma_R29 := R31, Gamma_R31; + R30, Gamma_R30 := 4196052bv64, true; + call FUN_4006a0(); + goto $main$__1__$UtkQk4ONSE6hNEuDpZ95RQ; + $main$__1__$UtkQk4ONSE6hNEuDpZ95RQ: + assume {:captureState "$main$__1__$UtkQk4ONSE6hNEuDpZ95RQ"} true; + R30, Gamma_R30 := 4196036bv64, true; + call greet(); + goto $main$__2__$KTHyjTW0SWiGwqylcMDw6Q; + $main$__2__$KTHyjTW0SWiGwqylcMDw6Q: + assume {:captureState "$main$__2__$KTHyjTW0SWiGwqylcMDw6Q"} true; R0, Gamma_R0 := 0bv64, true; - R0, Gamma_R0 := bvadd64(R0, 2056bv64), Gamma_R0; - R30, Gamma_R30 := 1960bv64, true; - call FUN_650_1616(); - goto greet_1940__1__BAJa2ZW0ROGpI~IG4G4dnQ; - greet_1940__1__BAJa2ZW0ROGpI~IG4G4dnQ: - assume {:captureState "greet_1940__1__BAJa2ZW0ROGpI~IG4G4dnQ"} true; - load1, Gamma_load1 := memory_load64_le(stack, R31), gamma_load64(Gamma_stack, R31); - R29, Gamma_R29 := load1, Gamma_load1; - load2, Gamma_load2 := memory_load64_le(stack, bvadd64(R31, 8bv64)), gamma_load64(Gamma_stack, bvadd64(R31, 8bv64)); - R30, Gamma_R30 := load2, Gamma_load2; + $load5, Gamma_$load5 := memory_load64_le(stack, R31), gamma_load64(Gamma_stack, R31); + R29, Gamma_R29 := $load5, Gamma_$load5; + $load6, Gamma_$load6 := memory_load64_le(stack, bvadd64(R31, 8bv64)), gamma_load64(Gamma_stack, bvadd64(R31, 8bv64)); + R30, Gamma_R30 := $load6, Gamma_$load6; R31, Gamma_R31 := bvadd64(R31, 16bv64), Gamma_R31; - goto greet_1940_basil_return; - greet_1940_basil_return: - assume {:captureState "greet_1940_basil_return"} true; + goto main_basil_return; + main_basil_return: + assume {:captureState "main_basil_return"} true; return; } -procedure FUN_650_1616(); +procedure FUN_4006a0(); modifies Gamma_R16, Gamma_R17, Gamma_mem, R16, R17, mem; - free requires (memory_load64_le(mem, 2048bv64) == 131073bv64); - free requires (memory_load64_le(mem, 2056bv64) == 8583909746840200520bv64); - free requires (memory_load64_le(mem, 2064bv64) == 143418749551bv64); - free requires (memory_load64_le(mem, 2072bv64) == 2334956330884555075bv64); - free requires (memory_load64_le(mem, 2080bv64) == 2317427963641295463bv64); - free requires (memory_load64_le(mem, 2088bv64) == 8386658473162862185bv64); - free requires (memory_load8_le(mem, 2096bv64) == 108bv8); - free requires (memory_load8_le(mem, 2097bv64) == 121bv8); - free requires (memory_load8_le(mem, 2098bv64) == 58bv8); - free requires (memory_load8_le(mem, 2099bv64) == 0bv8); - free requires (memory_load64_le(mem, 69000bv64) == 1936bv64); - free requires (memory_load64_le(mem, 69008bv64) == 1856bv64); - free requires (memory_load64_le(mem, 69600bv64) == 1940bv64); - free requires (memory_load64_le(mem, 69616bv64) == 1972bv64); - free requires (memory_load64_le(mem, 69640bv64) == 69640bv64); - free ensures (memory_load64_le(mem, 2048bv64) == 131073bv64); - free ensures (memory_load64_le(mem, 2056bv64) == 8583909746840200520bv64); - free ensures (memory_load64_le(mem, 2064bv64) == 143418749551bv64); - free ensures (memory_load64_le(mem, 2072bv64) == 2334956330884555075bv64); - free ensures (memory_load64_le(mem, 2080bv64) == 2317427963641295463bv64); - free ensures (memory_load64_le(mem, 2088bv64) == 8386658473162862185bv64); - free ensures (memory_load8_le(mem, 2096bv64) == 108bv8); - free ensures (memory_load8_le(mem, 2097bv64) == 121bv8); - free ensures (memory_load8_le(mem, 2098bv64) == 58bv8); - free ensures (memory_load8_le(mem, 2099bv64) == 0bv8); - free ensures (memory_load64_le(mem, 69000bv64) == 1936bv64); - free ensures (memory_load64_le(mem, 69008bv64) == 1856bv64); - free ensures (memory_load64_le(mem, 69600bv64) == 1940bv64); - free ensures (memory_load64_le(mem, 69616bv64) == 1972bv64); - free ensures (memory_load64_le(mem, 69640bv64) == 69640bv64); - -implementation FUN_650_1616() + free requires (memory_load64_le(mem, 4196400bv64) == 131073bv64); + free requires (memory_load64_le(mem, 4196408bv64) == 8583909746840200520bv64); + free requires (memory_load64_le(mem, 4196416bv64) == 143418749551bv64); + free requires (memory_load64_le(mem, 4196424bv64) == 2334956330884555075bv64); + free requires (memory_load64_le(mem, 4196432bv64) == 2317427963641295463bv64); + free requires (memory_load64_le(mem, 4196440bv64) == 8386658473162862185bv64); + free requires (memory_load8_le(mem, 4196448bv64) == 108bv8); + free requires (memory_load8_le(mem, 4196449bv64) == 121bv8); + free requires (memory_load8_le(mem, 4196450bv64) == 58bv8); + free requires (memory_load8_le(mem, 4196451bv64) == 0bv8); + free ensures (memory_load64_le(mem, 4196400bv64) == 131073bv64); + free ensures (memory_load64_le(mem, 4196408bv64) == 8583909746840200520bv64); + free ensures (memory_load64_le(mem, 4196416bv64) == 143418749551bv64); + free ensures (memory_load64_le(mem, 4196424bv64) == 2334956330884555075bv64); + free ensures (memory_load64_le(mem, 4196432bv64) == 2317427963641295463bv64); + free ensures (memory_load64_le(mem, 4196440bv64) == 8386658473162862185bv64); + free ensures (memory_load8_le(mem, 4196448bv64) == 108bv8); + free ensures (memory_load8_le(mem, 4196449bv64) == 121bv8); + free ensures (memory_load8_le(mem, 4196450bv64) == 58bv8); + free ensures (memory_load8_le(mem, 4196451bv64) == 0bv8); + +implementation FUN_4006a0() { - var Gamma_load4: bool; - var load4: bv64; - FUN_650_1616__0__blyA87erSRO9dBs3C_GROw: - assume {:captureState "FUN_650_1616__0__blyA87erSRO9dBs3C_GROw"} true; - R16, Gamma_R16 := 65536bv64, true; + var $load10: bv64; + var Gamma_$load10: bool; + $FUN_4006a0$__0__$t_6C~3O4SbalxMsQ9Vg3LA: + assume {:captureState "$FUN_4006a0$__0__$t_6C~3O4SbalxMsQ9Vg3LA"} true; + R16, Gamma_R16 := 4321280bv64, true; call rely(); - load4, Gamma_load4 := memory_load64_le(mem, bvadd64(R16, 4032bv64)), (gamma_load64(Gamma_mem, bvadd64(R16, 4032bv64)) || L(mem, bvadd64(R16, 4032bv64))); - R17, Gamma_R17 := load4, Gamma_load4; - R16, Gamma_R16 := bvadd64(R16, 4032bv64), Gamma_R16; + $load10, Gamma_$load10 := memory_load64_le(mem, bvadd64(R16, 4056bv64)), (gamma_load64(Gamma_mem, bvadd64(R16, 4056bv64)) || L(mem, bvadd64(R16, 4056bv64))); + R17, Gamma_R17 := $load10, Gamma_$load10; + R16, Gamma_R16 := bvadd64(R16, 4056bv64), Gamma_R16; call puts(); - goto FUN_650_1616_basil_return; - FUN_650_1616_basil_return: - assume {:captureState "FUN_650_1616_basil_return"} true; - return; + assume false; } -procedure main_1972(); - modifies Gamma_R0, Gamma_R16, Gamma_R17, Gamma_R29, Gamma_R30, Gamma_R31, Gamma_mem, Gamma_stack, R0, R16, R17, R29, R30, R31, mem, stack; - free requires (memory_load64_le(mem, 69632bv64) == 0bv64); - free requires (memory_load64_le(mem, 69640bv64) == 69640bv64); - free requires (memory_load64_le(mem, 2048bv64) == 131073bv64); - free requires (memory_load64_le(mem, 2056bv64) == 8583909746840200520bv64); - free requires (memory_load64_le(mem, 2064bv64) == 143418749551bv64); - free requires (memory_load64_le(mem, 2072bv64) == 2334956330884555075bv64); - free requires (memory_load64_le(mem, 2080bv64) == 2317427963641295463bv64); - free requires (memory_load64_le(mem, 2088bv64) == 8386658473162862185bv64); - free requires (memory_load8_le(mem, 2096bv64) == 108bv8); - free requires (memory_load8_le(mem, 2097bv64) == 121bv8); - free requires (memory_load8_le(mem, 2098bv64) == 58bv8); - free requires (memory_load8_le(mem, 2099bv64) == 0bv8); - free requires (memory_load64_le(mem, 69000bv64) == 1936bv64); - free requires (memory_load64_le(mem, 69008bv64) == 1856bv64); - free requires (memory_load64_le(mem, 69600bv64) == 1940bv64); - free requires (memory_load64_le(mem, 69616bv64) == 1972bv64); - free requires (memory_load64_le(mem, 69640bv64) == 69640bv64); - free ensures (Gamma_R29 == old(Gamma_R29)); - free ensures (Gamma_R31 == old(Gamma_R31)); - free ensures (R29 == old(R29)); - free ensures (R31 == old(R31)); - free ensures (memory_load64_le(mem, 2048bv64) == 131073bv64); - free ensures (memory_load64_le(mem, 2056bv64) == 8583909746840200520bv64); - free ensures (memory_load64_le(mem, 2064bv64) == 143418749551bv64); - free ensures (memory_load64_le(mem, 2072bv64) == 2334956330884555075bv64); - free ensures (memory_load64_le(mem, 2080bv64) == 2317427963641295463bv64); - free ensures (memory_load64_le(mem, 2088bv64) == 8386658473162862185bv64); - free ensures (memory_load8_le(mem, 2096bv64) == 108bv8); - free ensures (memory_load8_le(mem, 2097bv64) == 121bv8); - free ensures (memory_load8_le(mem, 2098bv64) == 58bv8); - free ensures (memory_load8_le(mem, 2099bv64) == 0bv8); - free ensures (memory_load64_le(mem, 69000bv64) == 1936bv64); - free ensures (memory_load64_le(mem, 69008bv64) == 1856bv64); - free ensures (memory_load64_le(mem, 69600bv64) == 1940bv64); - free ensures (memory_load64_le(mem, 69616bv64) == 1972bv64); - free ensures (memory_load64_le(mem, 69640bv64) == 69640bv64); - -implementation main_1972() +procedure greet(); + modifies Gamma_R0, Gamma_R16, Gamma_R17, Gamma_mem, R0, R16, R17, mem; + free requires (memory_load64_le(mem, 4196400bv64) == 131073bv64); + free requires (memory_load64_le(mem, 4196408bv64) == 8583909746840200520bv64); + free requires (memory_load64_le(mem, 4196416bv64) == 143418749551bv64); + free requires (memory_load64_le(mem, 4196424bv64) == 2334956330884555075bv64); + free requires (memory_load64_le(mem, 4196432bv64) == 2317427963641295463bv64); + free requires (memory_load64_le(mem, 4196440bv64) == 8386658473162862185bv64); + free requires (memory_load8_le(mem, 4196448bv64) == 108bv8); + free requires (memory_load8_le(mem, 4196449bv64) == 121bv8); + free requires (memory_load8_le(mem, 4196450bv64) == 58bv8); + free requires (memory_load8_le(mem, 4196451bv64) == 0bv8); + free ensures (memory_load64_le(mem, 4196400bv64) == 131073bv64); + free ensures (memory_load64_le(mem, 4196408bv64) == 8583909746840200520bv64); + free ensures (memory_load64_le(mem, 4196416bv64) == 143418749551bv64); + free ensures (memory_load64_le(mem, 4196424bv64) == 2334956330884555075bv64); + free ensures (memory_load64_le(mem, 4196432bv64) == 2317427963641295463bv64); + free ensures (memory_load64_le(mem, 4196440bv64) == 8386658473162862185bv64); + free ensures (memory_load8_le(mem, 4196448bv64) == 108bv8); + free ensures (memory_load8_le(mem, 4196449bv64) == 121bv8); + free ensures (memory_load8_le(mem, 4196450bv64) == 58bv8); + free ensures (memory_load8_le(mem, 4196451bv64) == 0bv8); + +implementation greet() { - var Cse0__5_0_0: bv64; - var Gamma_Cse0__5_0_0: bool; - var Gamma_load18: bool; - var Gamma_load19: bool; - var Gamma_load20: bool; - var Gamma_load21: bool; - var load18: bv64; - var load19: bv64; - var load20: bv64; - var load21: bv64; - main_1972__0__BoFgJ28hRESLWeRUGTZ6AQ: - assume {:captureState "main_1972__0__BoFgJ28hRESLWeRUGTZ6AQ"} true; - Cse0__5_0_0, Gamma_Cse0__5_0_0 := bvadd64(R31, 18446744073709551584bv64), Gamma_R31; - stack, Gamma_stack := memory_store64_le(stack, Cse0__5_0_0, R29), gamma_store64(Gamma_stack, Cse0__5_0_0, Gamma_R29); - assume {:captureState "1972_1"} true; - stack, Gamma_stack := memory_store64_le(stack, bvadd64(Cse0__5_0_0, 8bv64), R30), gamma_store64(Gamma_stack, bvadd64(Cse0__5_0_0, 8bv64), Gamma_R30); - assume {:captureState "1972_2"} true; - R31, Gamma_R31 := Cse0__5_0_0, Gamma_Cse0__5_0_0; - R29, Gamma_R29 := R31, Gamma_R31; - R0, Gamma_R0 := 65536bv64, true; - call rely(); - load18, Gamma_load18 := memory_load64_le(mem, bvadd64(R0, 4064bv64)), (gamma_load64(Gamma_mem, bvadd64(R0, 4064bv64)) || L(mem, bvadd64(R0, 4064bv64))); - R0, Gamma_R0 := load18, Gamma_load18; - stack, Gamma_stack := memory_store64_le(stack, bvadd64(R31, 24bv64), R0), gamma_store64(Gamma_stack, bvadd64(R31, 24bv64), Gamma_R0); - assume {:captureState "1988_0"} true; - R0, Gamma_R0 := 0bv64, true; - R0, Gamma_R0 := bvadd64(R0, 2072bv64), Gamma_R0; - R30, Gamma_R30 := 2004bv64, true; - call FUN_650_1616(); - goto main_1972__1__gEm6HfTiSIW8xoT2LZrDVw; - main_1972__1__gEm6HfTiSIW8xoT2LZrDVw: - assume {:captureState "main_1972__1__gEm6HfTiSIW8xoT2LZrDVw"} true; - load19, Gamma_load19 := memory_load64_le(stack, bvadd64(R31, 24bv64)), gamma_load64(Gamma_stack, bvadd64(R31, 24bv64)); - R0, Gamma_R0 := load19, Gamma_load19; - R30, Gamma_R30 := 2012bv64, true; - call greet_1940(); - goto main_1972__2__sk~gIF9_TnupcjAVM_n30w; - main_1972__2__sk~gIF9_TnupcjAVM_n30w: - assume {:captureState "main_1972__2__sk~gIF9_TnupcjAVM_n30w"} true; - R0, Gamma_R0 := 0bv64, true; - load20, Gamma_load20 := memory_load64_le(stack, R31), gamma_load64(Gamma_stack, R31); - R29, Gamma_R29 := load20, Gamma_load20; - load21, Gamma_load21 := memory_load64_le(stack, bvadd64(R31, 8bv64)), gamma_load64(Gamma_stack, bvadd64(R31, 8bv64)); - R30, Gamma_R30 := load21, Gamma_load21; - R31, Gamma_R31 := bvadd64(R31, 32bv64), Gamma_R31; - goto main_1972_basil_return; - main_1972_basil_return: - assume {:captureState "main_1972_basil_return"} true; - return; + $greet$__0__$rlVqjjqoR6uHwOYvPCS15g: + assume {:captureState "$greet$__0__$rlVqjjqoR6uHwOYvPCS15g"} true; + R0, Gamma_R0 := 4194304bv64, true; + R0, Gamma_R0 := bvadd64(R0, 2104bv64), Gamma_R0; + call FUN_4006a0(); + assume false; } procedure puts(); - free requires (memory_load64_le(mem, 2048bv64) == 131073bv64); - free requires (memory_load64_le(mem, 2056bv64) == 8583909746840200520bv64); - free requires (memory_load64_le(mem, 2064bv64) == 143418749551bv64); - free requires (memory_load64_le(mem, 2072bv64) == 2334956330884555075bv64); - free requires (memory_load64_le(mem, 2080bv64) == 2317427963641295463bv64); - free requires (memory_load64_le(mem, 2088bv64) == 8386658473162862185bv64); - free requires (memory_load8_le(mem, 2096bv64) == 108bv8); - free requires (memory_load8_le(mem, 2097bv64) == 121bv8); - free requires (memory_load8_le(mem, 2098bv64) == 58bv8); - free requires (memory_load8_le(mem, 2099bv64) == 0bv8); - free requires (memory_load64_le(mem, 69000bv64) == 1936bv64); - free requires (memory_load64_le(mem, 69008bv64) == 1856bv64); - free requires (memory_load64_le(mem, 69600bv64) == 1940bv64); - free requires (memory_load64_le(mem, 69616bv64) == 1972bv64); - free requires (memory_load64_le(mem, 69640bv64) == 69640bv64); - free ensures (memory_load64_le(mem, 2048bv64) == 131073bv64); - free ensures (memory_load64_le(mem, 2056bv64) == 8583909746840200520bv64); - free ensures (memory_load64_le(mem, 2064bv64) == 143418749551bv64); - free ensures (memory_load64_le(mem, 2072bv64) == 2334956330884555075bv64); - free ensures (memory_load64_le(mem, 2080bv64) == 2317427963641295463bv64); - free ensures (memory_load64_le(mem, 2088bv64) == 8386658473162862185bv64); - free ensures (memory_load8_le(mem, 2096bv64) == 108bv8); - free ensures (memory_load8_le(mem, 2097bv64) == 121bv8); - free ensures (memory_load8_le(mem, 2098bv64) == 58bv8); - free ensures (memory_load8_le(mem, 2099bv64) == 0bv8); - free ensures (memory_load64_le(mem, 69000bv64) == 1936bv64); - free ensures (memory_load64_le(mem, 69008bv64) == 1856bv64); - free ensures (memory_load64_le(mem, 69600bv64) == 1940bv64); - free ensures (memory_load64_le(mem, 69616bv64) == 1972bv64); - free ensures (memory_load64_le(mem, 69640bv64) == 69640bv64); + free requires (memory_load64_le(mem, 4196400bv64) == 131073bv64); + free requires (memory_load64_le(mem, 4196408bv64) == 8583909746840200520bv64); + free requires (memory_load64_le(mem, 4196416bv64) == 143418749551bv64); + free requires (memory_load64_le(mem, 4196424bv64) == 2334956330884555075bv64); + free requires (memory_load64_le(mem, 4196432bv64) == 2317427963641295463bv64); + free requires (memory_load64_le(mem, 4196440bv64) == 8386658473162862185bv64); + free requires (memory_load8_le(mem, 4196448bv64) == 108bv8); + free requires (memory_load8_le(mem, 4196449bv64) == 121bv8); + free requires (memory_load8_le(mem, 4196450bv64) == 58bv8); + free requires (memory_load8_le(mem, 4196451bv64) == 0bv8); + free ensures (memory_load64_le(mem, 4196400bv64) == 131073bv64); + free ensures (memory_load64_le(mem, 4196408bv64) == 8583909746840200520bv64); + free ensures (memory_load64_le(mem, 4196416bv64) == 143418749551bv64); + free ensures (memory_load64_le(mem, 4196424bv64) == 2334956330884555075bv64); + free ensures (memory_load64_le(mem, 4196432bv64) == 2317427963641295463bv64); + free ensures (memory_load64_le(mem, 4196440bv64) == 8386658473162862185bv64); + free ensures (memory_load8_le(mem, 4196448bv64) == 108bv8); + free ensures (memory_load8_le(mem, 4196449bv64) == 121bv8); + free ensures (memory_load8_le(mem, 4196450bv64) == 58bv8); + free ensures (memory_load8_le(mem, 4196451bv64) == 0bv8); diff --git a/src/test/correct/initialisation/clang/initialisation.adt b/src/test/correct/initialisation/clang/initialisation.adt deleted file mode 100644 index 756465a5c..000000000 --- a/src/test/correct/initialisation/clang/initialisation.adt +++ /dev/null @@ -1,548 +0,0 @@ -Project(Attrs([Attr("filename","\"clang/initialisation.out\""), -Attr("image-specification","(declare abi (name str))\n(declare arch (name str))\n(declare base-address (addr int))\n(declare bias (off int))\n(declare bits (size int))\n(declare code-region (addr int) (size int) (off int))\n(declare code-start (addr int))\n(declare entry-point (addr int))\n(declare external-reference (addr int) (name str))\n(declare format (name str))\n(declare is-executable (flag bool))\n(declare is-little-endian (flag bool))\n(declare llvm:base-address (addr int))\n(declare llvm:code-entry (name str) (off int) (size int))\n(declare llvm:coff-import-library (name str))\n(declare llvm:coff-virtual-section-header (name str) (addr int) (size int))\n(declare llvm:elf-program-header (name str) (off int) (size int))\n(declare llvm:elf-program-header-flags (name str) (ld bool) (r bool) \n (w bool) (x bool))\n(declare llvm:elf-virtual-program-header (name str) (addr int) (size int))\n(declare llvm:entry-point (addr int))\n(declare llvm:macho-symbol (name str) (value int))\n(declare llvm:name-reference (at int) (name str))\n(declare llvm:relocation (at int) (addr int))\n(declare llvm:section-entry (name str) (addr int) (size int) (off int))\n(declare llvm:section-flags (name str) (r bool) (w bool) (x bool))\n(declare llvm:segment-command (name str) (off int) (size int))\n(declare llvm:segment-command-flags (name str) (r bool) (w bool) (x bool))\n(declare llvm:symbol-entry (name str) (addr int) (size int) (off int)\n (value int))\n(declare llvm:virtual-segment-command (name str) (addr int) (size int))\n(declare mapped (addr int) (size int) (off int))\n(declare named-region (addr int) (size int) (name str))\n(declare named-symbol (addr int) (name str))\n(declare require (name str))\n(declare section (addr int) (size int))\n(declare segment (addr int) (size int) (r bool) (w bool) (x bool))\n(declare subarch (name str))\n(declare symbol-chunk (addr int) (size int) (root int))\n(declare symbol-value (addr int) (value int))\n(declare system (name str))\n(declare vendor (name str))\n\n(abi unknown)\n(arch aarch64)\n(base-address 0)\n(bias 0)\n(bits 64)\n(code-region 1892 20 1892)\n(code-region 1536 356 1536)\n(code-region 1440 96 1440)\n(code-region 1408 24 1408)\n(code-start 1588)\n(code-start 1536)\n(code-start 1812)\n(entry-point 1536)\n(external-reference 69568 _ITM_deregisterTMCloneTable)\n(external-reference 69576 __cxa_finalize)\n(external-reference 69584 __gmon_start__)\n(external-reference 69600 _ITM_registerTMCloneTable)\n(external-reference 69632 __libc_start_main)\n(external-reference 69640 __cxa_finalize)\n(external-reference 69648 __gmon_start__)\n(external-reference 69656 abort)\n(format elf)\n(is-executable true)\n(is-little-endian true)\n(llvm:base-address 0)\n(llvm:code-entry abort 0 0)\n(llvm:code-entry __cxa_finalize 0 0)\n(llvm:code-entry __libc_start_main 0 0)\n(llvm:code-entry _init 1408 0)\n(llvm:code-entry main 1812 80)\n(llvm:code-entry _start 1536 52)\n(llvm:code-entry abort@GLIBC_2.17 0 0)\n(llvm:code-entry _fini 1892 0)\n(llvm:code-entry __cxa_finalize@GLIBC_2.17 0 0)\n(llvm:code-entry __libc_start_main@GLIBC_2.34 0 0)\n(llvm:code-entry frame_dummy 1808 0)\n(llvm:code-entry __do_global_dtors_aux 1728 0)\n(llvm:code-entry register_tm_clones 1664 0)\n(llvm:code-entry deregister_tm_clones 1616 0)\n(llvm:code-entry call_weak_fn 1588 20)\n(llvm:code-entry .fini 1892 20)\n(llvm:code-entry .text 1536 356)\n(llvm:code-entry .plt 1440 96)\n(llvm:code-entry .init 1408 24)\n(llvm:elf-program-header 08 3528 568)\n(llvm:elf-program-header 07 0 0)\n(llvm:elf-program-header 06 1916 60)\n(llvm:elf-program-header 05 596 68)\n(llvm:elf-program-header 04 3544 480)\n(llvm:elf-program-header 03 3528 640)\n(llvm:elf-program-header 02 0 2156)\n(llvm:elf-program-header 01 568 27)\n(llvm:elf-program-header 00 64 504)\n(llvm:elf-program-header-flags 08 false true false false)\n(llvm:elf-program-header-flags 07 false true true false)\n(llvm:elf-program-header-flags 06 false true false false)\n(llvm:elf-program-header-flags 05 false true false false)\n(llvm:elf-program-header-flags 04 false true true false)\n(llvm:elf-program-header-flags 03 true true true false)\n(llvm:elf-program-header-flags 02 true true false true)\n(llvm:elf-program-header-flags 01 false true false false)\n(llvm:elf-program-header-flags 00 false true false false)\n(llvm:elf-virtual-program-header 08 69064 568)\n(llvm:elf-virtual-program-header 07 0 0)\n(llvm:elf-virtual-program-header 06 1916 60)\n(llvm:elf-virtual-program-header 05 596 68)\n(llvm:elf-virtual-program-header 04 69080 480)\n(llvm:elf-virtual-program-header 03 69064 648)\n(llvm:elf-virtual-program-header 02 0 2156)\n(llvm:elf-virtual-program-header 01 568 27)\n(llvm:elf-virtual-program-header 00 64 504)\n(llvm:entry-point 1536)\n(llvm:name-reference 69656 abort)\n(llvm:name-reference 69648 __gmon_start__)\n(llvm:name-reference 69640 __cxa_finalize)\n(llvm:name-reference 69632 __libc_start_main)\n(llvm:name-reference 69600 _ITM_registerTMCloneTable)\n(llvm:name-reference 69584 __gmon_start__)\n(llvm:name-reference 69576 __cxa_finalize)\n(llvm:name-reference 69568 _ITM_deregisterTMCloneTable)\n(llvm:section-entry .shstrtab 0 259 7044)\n(llvm:section-entry .strtab 0 572 6472)\n(llvm:section-entry .symtab 0 2232 4240)\n(llvm:section-entry .comment 0 71 4168)\n(llvm:section-entry .bss 69704 8 4168)\n(llvm:section-entry .data 69664 40 4128)\n(llvm:section-entry .got.plt 69608 56 4072)\n(llvm:section-entry .got 69560 48 4024)\n(llvm:section-entry .dynamic 69080 480 3544)\n(llvm:section-entry .fini_array 69072 8 3536)\n(llvm:section-entry .init_array 69064 8 3528)\n(llvm:section-entry .eh_frame 1976 180 1976)\n(llvm:section-entry .eh_frame_hdr 1916 60 1916)\n(llvm:section-entry .rodata 1912 4 1912)\n(llvm:section-entry .fini 1892 20 1892)\n(llvm:section-entry .text 1536 356 1536)\n(llvm:section-entry .plt 1440 96 1440)\n(llvm:section-entry .init 1408 24 1408)\n(llvm:section-entry .rela.plt 1312 96 1312)\n(llvm:section-entry .rela.dyn 1120 192 1120)\n(llvm:section-entry .gnu.version_r 1072 48 1072)\n(llvm:section-entry .gnu.version 1054 18 1054)\n(llvm:section-entry .dynstr 912 141 912)\n(llvm:section-entry .dynsym 696 216 696)\n(llvm:section-entry .gnu.hash 664 28 664)\n(llvm:section-entry .note.ABI-tag 632 32 632)\n(llvm:section-entry .note.gnu.build-id 596 36 596)\n(llvm:section-entry .interp 568 27 568)\n(llvm:section-flags .shstrtab true false false)\n(llvm:section-flags .strtab true false false)\n(llvm:section-flags .symtab true false false)\n(llvm:section-flags .comment true false false)\n(llvm:section-flags .bss true true false)\n(llvm:section-flags .data true true false)\n(llvm:section-flags .got.plt true true false)\n(llvm:section-flags .got true true false)\n(llvm:section-flags .dynamic true true false)\n(llvm:section-flags .fini_array true true false)\n(llvm:section-flags .init_array true true false)\n(llvm:section-flags .eh_frame true false false)\n(llvm:section-flags .eh_frame_hdr true false false)\n(llvm:section-flags .rodata true false false)\n(llvm:section-flags .fini true false true)\n(llvm:section-flags .text true false true)\n(llvm:section-flags .plt true false true)\n(llvm:section-flags .init true false true)\n(llvm:section-flags .rela.plt true false false)\n(llvm:section-flags .rela.dyn true false false)\n(llvm:section-flags .gnu.version_r true false false)\n(llvm:section-flags .gnu.version true false false)\n(llvm:section-flags .dynstr true false false)\n(llvm:section-flags .dynsym true false false)\n(llvm:section-flags .gnu.hash true false false)\n(llvm:section-flags .note.ABI-tag true false false)\n(llvm:section-flags .note.gnu.build-id true false false)\n(llvm:section-flags .interp true false false)\n(llvm:symbol-entry abort 0 0 0 0)\n(llvm:symbol-entry __cxa_finalize 0 0 0 0)\n(llvm:symbol-entry __libc_start_main 0 0 0 0)\n(llvm:symbol-entry _init 1408 0 1408 1408)\n(llvm:symbol-entry main 1812 80 1812 1812)\n(llvm:symbol-entry _start 1536 52 1536 1536)\n(llvm:symbol-entry abort@GLIBC_2.17 0 0 0 0)\n(llvm:symbol-entry _fini 1892 0 1892 1892)\n(llvm:symbol-entry __cxa_finalize@GLIBC_2.17 0 0 0 0)\n(llvm:symbol-entry __libc_start_main@GLIBC_2.34 0 0 0 0)\n(llvm:symbol-entry frame_dummy 1808 0 1808 1808)\n(llvm:symbol-entry __do_global_dtors_aux 1728 0 1728 1728)\n(llvm:symbol-entry register_tm_clones 1664 0 1664 1664)\n(llvm:symbol-entry deregister_tm_clones 1616 0 1616 1616)\n(llvm:symbol-entry call_weak_fn 1588 20 1588 1588)\n(mapped 0 2156 0)\n(mapped 69064 640 3528)\n(named-region 0 2156 02)\n(named-region 69064 648 03)\n(named-region 568 27 .interp)\n(named-region 596 36 .note.gnu.build-id)\n(named-region 632 32 .note.ABI-tag)\n(named-region 664 28 .gnu.hash)\n(named-region 696 216 .dynsym)\n(named-region 912 141 .dynstr)\n(named-region 1054 18 .gnu.version)\n(named-region 1072 48 .gnu.version_r)\n(named-region 1120 192 .rela.dyn)\n(named-region 1312 96 .rela.plt)\n(named-region 1408 24 .init)\n(named-region 1440 96 .plt)\n(named-region 1536 356 .text)\n(named-region 1892 20 .fini)\n(named-region 1912 4 .rodata)\n(named-region 1916 60 .eh_frame_hdr)\n(named-region 1976 180 .eh_frame)\n(named-region 69064 8 .init_array)\n(named-region 69072 8 .fini_array)\n(named-region 69080 480 .dynamic)\n(named-region 69560 48 .got)\n(named-region 69608 56 .got.plt)\n(named-region 69664 40 .data)\n(named-region 69704 8 .bss)\n(named-region 0 71 .comment)\n(named-region 0 2232 .symtab)\n(named-region 0 572 .strtab)\n(named-region 0 259 .shstrtab)\n(named-symbol 1588 call_weak_fn)\n(named-symbol 1616 deregister_tm_clones)\n(named-symbol 1664 register_tm_clones)\n(named-symbol 1728 __do_global_dtors_aux)\n(named-symbol 1808 frame_dummy)\n(named-symbol 0 __libc_start_main@GLIBC_2.34)\n(named-symbol 0 __cxa_finalize@GLIBC_2.17)\n(named-symbol 1892 _fini)\n(named-symbol 0 abort@GLIBC_2.17)\n(named-symbol 1536 _start)\n(named-symbol 1812 main)\n(named-symbol 1408 _init)\n(named-symbol 0 __libc_start_main)\n(named-symbol 0 __cxa_finalize)\n(named-symbol 0 abort)\n(require libc.so.6)\n(section 568 27)\n(section 596 36)\n(section 632 32)\n(section 664 28)\n(section 696 216)\n(section 912 141)\n(section 1054 18)\n(section 1072 48)\n(section 1120 192)\n(section 1312 96)\n(section 1408 24)\n(section 1440 96)\n(section 1536 356)\n(section 1892 20)\n(section 1912 4)\n(section 1916 60)\n(section 1976 180)\n(section 69064 8)\n(section 69072 8)\n(section 69080 480)\n(section 69560 48)\n(section 69608 56)\n(section 69664 40)\n(section 69704 8)\n(section 0 71)\n(section 0 2232)\n(section 0 572)\n(section 0 259)\n(segment 0 2156 true false true)\n(segment 69064 648 true true false)\n(subarch v8)\n(symbol-chunk 1588 20 1588)\n(symbol-chunk 1536 52 1536)\n(symbol-chunk 1812 80 1812)\n(symbol-value 1588 1588)\n(symbol-value 1616 1616)\n(symbol-value 1664 1664)\n(symbol-value 1728 1728)\n(symbol-value 1808 1808)\n(symbol-value 1892 1892)\n(symbol-value 1536 1536)\n(symbol-value 1812 1812)\n(symbol-value 1408 1408)\n(symbol-value 0 0)\n(system \"\")\n(vendor \"\")\n"), -Attr("abi-name","\"aarch64-linux-gnu-elf\"")]), -Sections([Section(".shstrtab", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x00\x06\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x88\x1c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x38\x00\x09\x00\x40\x00\x1d\x00\x1c\x00\x06\x00\x00\x00\x04\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x04\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6c\x08\x00\x00\x00\x00\x00\x00\x6c\x08\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x01\x00\x00\x00\x06\x00\x00\x00\xc8\x0d\x00\x00\x00\x00\x00\x00\xc8\x0d\x01\x00\x00\x00\x00\x00\xc8\x0d\x01"), -Section(".strtab", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x00\x06\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x88\x1c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x38\x00\x09\x00\x40\x00\x1d\x00\x1c\x00\x06\x00\x00\x00\x04\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x04\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6c\x08\x00\x00\x00\x00\x00\x00\x6c\x08\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x01\x00\x00\x00\x06\x00\x00\x00\xc8\x0d\x00\x00\x00\x00\x00\x00\xc8\x0d\x01\x00\x00\x00\x00\x00\xc8\x0d\x01\x00\x00\x00\x00\x00\x80\x02\x00\x00\x00\x00\x00\x00\x88\x02\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x02\x00\x00\x00\x06\x00\x00\x00\xd8\x0d\x00\x00\x00\x00\x00\x00\xd8\x0d\x01\x00\x00\x00\x00\x00\xd8\x0d\x01\x00\x00\x00\x00\x00\xe0\x01\x00\x00\x00\x00\x00\x00\xe0\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x04\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x50\xe5\x74\x64\x04\x00\x00\x00\x7c\x07\x00\x00\x00\x00\x00\x00\x7c\x07\x00\x00\x00\x00\x00\x00\x7c\x07\x00\x00\x00\x00\x00\x00\x3c\x00\x00\x00\x00\x00\x00\x00\x3c\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x51\xe5\x74\x64\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x52\xe5\x74\x64\x04\x00\x00\x00\xc8\x0d\x00\x00\x00\x00\x00\x00\xc8\x0d\x01\x00\x00\x00\x00\x00\xc8\x0d\x01\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x2f\x6c\x69\x62"), -Section(".comment", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x00\x06\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x88\x1c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x38\x00\x09\x00\x40\x00\x1d\x00\x1c\x00\x06\x00\x00\x00\x04\x00\x00"), -Section(".interp", 0x238, "\x2f\x6c\x69\x62\x2f\x6c\x64\x2d\x6c\x69\x6e\x75\x78\x2d\x61\x61\x72\x63\x68\x36\x34\x2e\x73\x6f\x2e\x31\x00"), -Section(".note.gnu.build-id", 0x254, "\x04\x00\x00\x00\x14\x00\x00\x00\x03\x00\x00\x00\x47\x4e\x55\x00\x83\xe6\x0f\xef\xc1\xf2\x6a\xde\x9e\x80\xdc\x1c\xec\xf7\xf3\xa9\xc3\x0e\xce\x4e"), -Section(".note.ABI-tag", 0x278, "\x04\x00\x00\x00\x10\x00\x00\x00\x01\x00\x00\x00\x47\x4e\x55\x00\x00\x00\x00\x00\x03\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00"), -Section(".gnu.hash", 0x298, "\x01\x00\x00\x00\x01\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".dynsym", 0x2B8, "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x0b\x00\x80\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x17\x00\x20\x10\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x48\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x22\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x22\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x73\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".dynstr", 0x390, "\x00\x5f\x5f\x63\x78\x61\x5f\x66\x69\x6e\x61\x6c\x69\x7a\x65\x00\x5f\x5f\x6c\x69\x62\x63\x5f\x73\x74\x61\x72\x74\x5f\x6d\x61\x69\x6e\x00\x61\x62\x6f\x72\x74\x00\x6c\x69\x62\x63\x2e\x73\x6f\x2e\x36\x00\x47\x4c\x49\x42\x43\x5f\x32\x2e\x31\x37\x00\x47\x4c\x49\x42\x43\x5f\x32\x2e\x33\x34\x00\x5f\x49\x54\x4d\x5f\x64\x65\x72\x65\x67\x69\x73\x74\x65\x72\x54\x4d\x43\x6c\x6f\x6e\x65\x54\x61\x62\x6c\x65\x00\x5f\x5f\x67\x6d\x6f\x6e\x5f\x73\x74\x61\x72\x74\x5f\x5f\x00\x5f\x49\x54\x4d\x5f\x72\x65\x67\x69\x73\x74\x65\x72\x54\x4d\x43\x6c\x6f\x6e\x65\x54\x61\x62\x6c\x65\x00"), -Section(".gnu.version", 0x41E, "\x00\x00\x00\x00\x00\x00\x02\x00\x01\x00\x03\x00\x01\x00\x03\x00\x01\x00"), -Section(".gnu.version_r", 0x430, "\x01\x00\x02\x00\x28\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x97\x91\x96\x06\x00\x00\x03\x00\x32\x00\x00\x00\x10\x00\x00\x00\xb4\x91\x96\x06\x00\x00\x02\x00\x3d\x00\x00\x00\x00\x00\x00\x00"), -Section(".rela.dyn", 0x460, "\xc8\x0d\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x10\x07\x00\x00\x00\x00\x00\x00\xd0\x0d\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\xc0\x06\x00\x00\x00\x00\x00\x00\xd8\x0f\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x14\x07\x00\x00\x00\x00\x00\x00\x28\x10\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x28\x10\x01\x00\x00\x00\x00\x00\xc0\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xc8\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xd0\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe0\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".rela.plt", 0x520, "\x00\x10\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x08\x10\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x10\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x18\x10\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".init", 0x580, "\x1f\x20\x03\xd5\xfd\x7b\xbf\xa9\xfd\x03\x00\x91\x2a\x00\x00\x94\xfd\x7b\xc1\xa8\xc0\x03\x5f\xd6"), -Section(".plt", 0x5A0, "\xf0\x7b\xbf\xa9\x90\x00\x00\x90\x11\xfe\x47\xf9\x10\xe2\x3f\x91\x20\x02\x1f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x90\x00\x00\xb0\x11\x02\x40\xf9\x10\x02\x00\x91\x20\x02\x1f\xd6\x90\x00\x00\xb0\x11\x06\x40\xf9\x10\x22\x00\x91\x20\x02\x1f\xd6\x90\x00\x00\xb0\x11\x0a\x40\xf9\x10\x42\x00\x91\x20\x02\x1f\xd6\x90\x00\x00\xb0\x11\x0e\x40\xf9\x10\x62\x00\x91\x20\x02\x1f\xd6"), -Section(".text", 0x600, "\x1f\x20\x03\xd5\x1d\x00\x80\xd2\x1e\x00\x80\xd2\xe5\x03\x00\xaa\xe1\x03\x40\xf9\xe2\x23\x00\x91\xe6\x03\x00\x91\x80\x00\x00\x90\x00\xec\x47\xf9\x03\x00\x80\xd2\x04\x00\x80\xd2\xe5\xff\xff\x97\xf0\xff\xff\x97\x80\x00\x00\x90\x00\xe8\x47\xf9\x40\x00\x00\xb4\xe8\xff\xff\x17\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x80\x00\x00\xb0\x00\x20\x01\x91\x81\x00\x00\xb0\x21\x20\x01\x91\x3f\x00\x00\xeb\xc0\x00\x00\x54\x81\x00\x00\x90\x21\xe0\x47\xf9\x61\x00\x00\xb4\xf0\x03\x01\xaa\x00\x02\x1f\xd6\xc0\x03\x5f\xd6\x80\x00\x00\xb0\x00\x20\x01\x91\x81\x00\x00\xb0\x21\x20\x01\x91\x21\x00\x00\xcb\x22\xfc\x7f\xd3\x41\x0c\x81\x8b\x21\xfc\x41\x93\xc1\x00\x00\xb4\x82\x00\x00\x90\x42\xf0\x47\xf9\x62\x00\x00\xb4\xf0\x03\x02\xaa\x00\x02\x1f\xd6\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\xfd\x7b\xbe\xa9\xfd\x03\x00\x91\xf3\x0b\x00\xf9\x93\x00\x00\xb0\x60\x22\x41\x39\x40\x01\x00\x35\x80\x00\x00\x90\x00\xe4\x47\xf9\x80\x00\x00\xb4\x80\x00\x00\xb0\x00\x14\x40\xf9\xb9\xff\xff\x97\xd8\xff\xff\x97\x20\x00\x80\x52\x60\x22\x01\x39\xf3\x0b\x40\xf9\xfd\x7b\xc2\xa8\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\xdc\xff\xff\x17\x88\x00\x00\xb0\x89\x00\x00\xb0\x29\x01\x01\x91\x8b\x00\x00\xb0\x6a\x31\x40\xb9\x4a\x05\x00\x11\x6a\x31\x00\xb9\x8b\x00\x00\xb0\x6a\x1d\x40\xf9\x4a\x05\x00\xf1\x6a\x1d\x00\xf9\x08\x41\x40\xb9\x08\x0d\x00\x11\x28\x05\x00\xb9\x89\x00\x00\xb0\x28\xd1\x40\x39\x08\x05\x00\x11\x28\xd1\x00\x39\xe0\x03\x1f\x2a\xc0\x03\x5f\xd6"), -Section(".fini", 0x764, "\x1f\x20\x03\xd5\xfd\x7b\xbf\xa9\xfd\x03\x00\x91\xfd\x7b\xc1\xa8\xc0\x03\x5f\xd6"), -Section(".rodata", 0x778, "\x01\x00\x02\x00"), -Section(".eh_frame_hdr", 0x77C, "\x01\x1b\x03\x3b\x38\x00\x00\x00\x06\x00\x00\x00\x84\xfe\xff\xff\x50\x00\x00\x00\xd4\xfe\xff\xff\x64\x00\x00\x00\x04\xff\xff\xff\x78\x00\x00\x00\x44\xff\xff\xff\x8c\x00\x00\x00\x94\xff\xff\xff\xb0\x00\x00\x00\x98\xff\xff\xff\xd8\x00\x00\x00"), -Section(".eh_frame", 0x7B8, "\x10\x00\x00\x00\x00\x00\x00\x00\x01\x7a\x52\x00\x04\x78\x1e\x01\x1b\x0c\x1f\x00\x10\x00\x00\x00\x18\x00\x00\x00\x2c\xfe\xff\xff\x34\x00\x00\x00\x00\x41\x07\x1e\x10\x00\x00\x00\x2c\x00\x00\x00\x68\xfe\xff\xff\x30\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x40\x00\x00\x00\x84\xfe\xff\xff\x3c\x00\x00\x00\x00\x00\x00\x00\x20\x00\x00\x00\x54\x00\x00\x00\xb0\xfe\xff\xff\x48\x00\x00\x00\x00\x41\x0e\x20\x9d\x04\x9e\x03\x42\x93\x02\x4e\xde\xdd\xd3\x0e\x00\x00\x00\x00\x10\x00\x00\x00\x78\x00\x00\x00\xdc\xfe\xff\xff\x04\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x01\x7a\x52\x00\x01\x7c\x1e\x01\x1b\x0c\x1f\x00\x10\x00\x00\x00\x18\x00\x00\x00\xb8\xfe\xff\xff\x50\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".fini_array", 0x10DD0, "\xc0\x06\x00\x00\x00\x00\x00\x00"), -Section(".dynamic", 0x10DD8, "\x01\x00\x00\x00\x00\x00\x00\x00\x28\x00\x00\x00\x00\x00\x00\x00\x0c\x00\x00\x00\x00\x00\x00\x00\x80\x05\x00\x00\x00\x00\x00\x00\x0d\x00\x00\x00\x00\x00\x00\x00\x64\x07\x00\x00\x00\x00\x00\x00\x19\x00\x00\x00\x00\x00\x00\x00\xc8\x0d\x01\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x1a\x00\x00\x00\x00\x00\x00\x00\xd0\x0d\x01\x00\x00\x00\x00\x00\x1c\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\xf5\xfe\xff\x6f\x00\x00\x00\x00\x98\x02\x00\x00\x00\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x90\x03\x00\x00\x00\x00\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\xb8\x02\x00\x00\x00\x00\x00\x00\x0a\x00\x00\x00\x00\x00\x00\x00\x8d\x00\x00\x00\x00\x00\x00\x00\x0b\x00\x00\x00\x00\x00\x00\x00\x18\x00\x00\x00\x00\x00\x00\x00\x15\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\xe8\x0f\x01\x00\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x60\x00\x00\x00\x00\x00\x00\x00\x14\x00\x00\x00\x00\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x17\x00\x00\x00\x00\x00\x00\x00\x20\x05\x00\x00\x00\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x60\x04\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\xc0\x00\x00\x00\x00\x00\x00\x00\x09\x00\x00\x00\x00\x00\x00\x00\x18\x00\x00\x00\x00\x00\x00\x00\xfb\xff\xff\x6f\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\xfe\xff\xff\x6f\x00\x00\x00\x00\x30\x04\x00\x00\x00\x00\x00\x00\xff\xff\xff\x6f\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\xf0\xff\xff\x6f\x00\x00\x00\x00\x1e\x04\x00\x00\x00\x00\x00\x00\xf9\xff\xff\x6f\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".init_array", 0x10DC8, "\x10\x07\x00\x00\x00\x00\x00\x00"), -Section(".got", 0x10FB8, "\xd8\x0d\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x14\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".got.plt", 0x10FE8, "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xa0\x05\x00\x00\x00\x00\x00\x00\xa0\x05\x00\x00\x00\x00\x00\x00\xa0\x05\x00\x00\x00\x00\x00\x00\xa0\x05\x00\x00\x00\x00\x00\x00"), -Section(".data", 0x11020, "\x00\x00\x00\x00\x00\x00\x00\x00\x28\x10\x01\x00\x00\x00\x00\x00\x05\x00\x00\x00\x61\x00\x00\x00\xff\xff\xff\xff\x0f\x00\x00\x00\x01\x00\x00\x00\x02\x00\x00\x00")]), -Memmap([Annotation(Region(0x0,0x86B), Attr("segment","02 0 2156")), -Annotation(Region(0x600,0x633), Attr("symbol","\"_start\"")), -Annotation(Region(0x0,0x102), Attr("section","\".shstrtab\"")), -Annotation(Region(0x0,0x23B), Attr("section","\".strtab\"")), -Annotation(Region(0x0,0x46), Attr("section","\".comment\"")), -Annotation(Region(0x238,0x252), Attr("section","\".interp\"")), -Annotation(Region(0x254,0x277), Attr("section","\".note.gnu.build-id\"")), -Annotation(Region(0x278,0x297), Attr("section","\".note.ABI-tag\"")), -Annotation(Region(0x298,0x2B3), Attr("section","\".gnu.hash\"")), -Annotation(Region(0x2B8,0x38F), Attr("section","\".dynsym\"")), -Annotation(Region(0x390,0x41C), Attr("section","\".dynstr\"")), -Annotation(Region(0x41E,0x42F), Attr("section","\".gnu.version\"")), -Annotation(Region(0x430,0x45F), Attr("section","\".gnu.version_r\"")), -Annotation(Region(0x460,0x51F), Attr("section","\".rela.dyn\"")), -Annotation(Region(0x520,0x57F), Attr("section","\".rela.plt\"")), -Annotation(Region(0x580,0x597), Attr("section","\".init\"")), -Annotation(Region(0x5A0,0x5FF), Attr("section","\".plt\"")), -Annotation(Region(0x580,0x597), Attr("code-region","()")), -Annotation(Region(0x5A0,0x5FF), Attr("code-region","()")), -Annotation(Region(0x600,0x633), Attr("symbol-info","_start 0x600 52")), -Annotation(Region(0x634,0x647), Attr("symbol","\"call_weak_fn\"")), -Annotation(Region(0x634,0x647), Attr("symbol-info","call_weak_fn 0x634 20")), -Annotation(Region(0x600,0x763), Attr("section","\".text\"")), -Annotation(Region(0x600,0x763), Attr("code-region","()")), -Annotation(Region(0x714,0x763), Attr("symbol","\"main\"")), -Annotation(Region(0x714,0x763), Attr("symbol-info","main 0x714 80")), -Annotation(Region(0x764,0x777), Attr("section","\".fini\"")), -Annotation(Region(0x764,0x777), Attr("code-region","()")), -Annotation(Region(0x778,0x77B), Attr("section","\".rodata\"")), -Annotation(Region(0x77C,0x7B7), Attr("section","\".eh_frame_hdr\"")), -Annotation(Region(0x7B8,0x86B), Attr("section","\".eh_frame\"")), -Annotation(Region(0x10DC8,0x11047), Attr("segment","03 0x10DC8 648")), -Annotation(Region(0x10DD0,0x10DD7), Attr("section","\".fini_array\"")), -Annotation(Region(0x10DD8,0x10FB7), Attr("section","\".dynamic\"")), -Annotation(Region(0x10DC8,0x10DCF), Attr("section","\".init_array\"")), -Annotation(Region(0x10FB8,0x10FE7), Attr("section","\".got\"")), -Annotation(Region(0x10FE8,0x1101F), Attr("section","\".got.plt\"")), -Annotation(Region(0x11020,0x11047), Attr("section","\".data\""))]), -Program(Tid(1_626, "%0000065a"), Attrs([]), - Subs([Sub(Tid(1_576, "@__cxa_finalize"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x5D0"), -Attr("stub","()")]), "__cxa_finalize", Args([Arg(Tid(1_627, "%0000065b"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("__cxa_finalize_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(964, "@__cxa_finalize"), - Attrs([Attr("address","0x5D0")]), Phis([]), -Defs([Def(Tid(1_212, "%000004bc"), Attrs([Attr("address","0x5D0"), -Attr("insn","adrp x16, #69632")]), Var("R16",Imm(64)), Int(69632,64)), -Def(Tid(1_219, "%000004c3"), Attrs([Attr("address","0x5D4"), -Attr("insn","ldr x17, [x16, #0x8]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(1_225, "%000004c9"), Attrs([Attr("address","0x5D8"), -Attr("insn","add x16, x16, #0x8")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(8,64)))]), Jmps([Call(Tid(1_230, "%000004ce"), - Attrs([Attr("address","0x5DC"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), -Sub(Tid(1_577, "@__do_global_dtors_aux"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x6C0")]), - "__do_global_dtors_aux", Args([Arg(Tid(1_628, "%0000065c"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("__do_global_dtors_aux_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(670, "@__do_global_dtors_aux"), - Attrs([Attr("address","0x6C0")]), Phis([]), Defs([Def(Tid(674, "%000002a2"), - Attrs([Attr("address","0x6C0"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("#3",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(18446744073709551584,64))), -Def(Tid(680, "%000002a8"), Attrs([Attr("address","0x6C0"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("#3",Imm(64)),Var("R29",Imm(64)),LittleEndian(),64)), -Def(Tid(686, "%000002ae"), Attrs([Attr("address","0x6C0"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("#3",Imm(64)),Int(8,64)),Var("R30",Imm(64)),LittleEndian(),64)), -Def(Tid(690, "%000002b2"), Attrs([Attr("address","0x6C0"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("R31",Imm(64)), -Var("#3",Imm(64))), Def(Tid(696, "%000002b8"), - Attrs([Attr("address","0x6C4"), Attr("insn","mov x29, sp")]), - Var("R29",Imm(64)), Var("R31",Imm(64))), Def(Tid(704, "%000002c0"), - Attrs([Attr("address","0x6C8"), Attr("insn","str x19, [sp, #0x10]")]), - Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(16,64)),Var("R19",Imm(64)),LittleEndian(),64)), -Def(Tid(709, "%000002c5"), Attrs([Attr("address","0x6CC"), -Attr("insn","adrp x19, #69632")]), Var("R19",Imm(64)), Int(69632,64)), -Def(Tid(716, "%000002cc"), Attrs([Attr("address","0x6D0"), -Attr("insn","ldrb w0, [x19, #0x48]")]), Var("R0",Imm(64)), -UNSIGNED(64,Load(Var("mem",Mem(64,8)),PLUS(Var("R19",Imm(64)),Int(72,64)),LittleEndian(),8)))]), -Jmps([Goto(Tid(723, "%000002d3"), Attrs([Attr("address","0x6D4"), -Attr("insn","cbnz w0, #0x28")]), - NEQ(Extract(31,0,Var("R0",Imm(64))),Int(0,32)), -Direct(Tid(721, "%000002d1"))), Goto(Tid(1_616, "%00000650"), Attrs([]), - Int(1,1), Direct(Tid(909, "%0000038d")))])), Blk(Tid(909, "%0000038d"), - Attrs([Attr("address","0x6D8")]), Phis([]), Defs([Def(Tid(912, "%00000390"), - Attrs([Attr("address","0x6D8"), Attr("insn","adrp x0, #65536")]), - Var("R0",Imm(64)), Int(65536,64)), Def(Tid(919, "%00000397"), - Attrs([Attr("address","0x6DC"), Attr("insn","ldr x0, [x0, #0xfc8]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(4040,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(925, "%0000039d"), Attrs([Attr("address","0x6E0"), -Attr("insn","cbz x0, #0x10")]), EQ(Var("R0",Imm(64)),Int(0,64)), -Direct(Tid(923, "%0000039b"))), Goto(Tid(1_617, "%00000651"), Attrs([]), - Int(1,1), Direct(Tid(948, "%000003b4")))])), Blk(Tid(948, "%000003b4"), - Attrs([Attr("address","0x6E4")]), Phis([]), Defs([Def(Tid(951, "%000003b7"), - Attrs([Attr("address","0x6E4"), Attr("insn","adrp x0, #69632")]), - Var("R0",Imm(64)), Int(69632,64)), Def(Tid(958, "%000003be"), - Attrs([Attr("address","0x6E8"), Attr("insn","ldr x0, [x0, #0x28]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(40,64)),LittleEndian(),64)), -Def(Tid(963, "%000003c3"), Attrs([Attr("address","0x6EC"), -Attr("insn","bl #-0x11c")]), Var("R30",Imm(64)), Int(1776,64))]), -Jmps([Call(Tid(966, "%000003c6"), Attrs([Attr("address","0x6EC"), -Attr("insn","bl #-0x11c")]), Int(1,1), -(Direct(Tid(1_576, "@__cxa_finalize")),Direct(Tid(923, "%0000039b"))))])), -Blk(Tid(923, "%0000039b"), Attrs([Attr("address","0x6F0")]), Phis([]), -Defs([Def(Tid(931, "%000003a3"), Attrs([Attr("address","0x6F0"), -Attr("insn","bl #-0xa0")]), Var("R30",Imm(64)), Int(1780,64))]), -Jmps([Call(Tid(933, "%000003a5"), Attrs([Attr("address","0x6F0"), -Attr("insn","bl #-0xa0")]), Int(1,1), -(Direct(Tid(1_590, "@deregister_tm_clones")),Direct(Tid(935, "%000003a7"))))])), -Blk(Tid(935, "%000003a7"), Attrs([Attr("address","0x6F4")]), Phis([]), -Defs([Def(Tid(938, "%000003aa"), Attrs([Attr("address","0x6F4"), -Attr("insn","mov w0, #0x1")]), Var("R0",Imm(64)), Int(1,64)), -Def(Tid(946, "%000003b2"), Attrs([Attr("address","0x6F8"), -Attr("insn","strb w0, [x19, #0x48]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R19",Imm(64)),Int(72,64)),Extract(7,0,Var("R0",Imm(64))),LittleEndian(),8))]), -Jmps([Goto(Tid(1_618, "%00000652"), Attrs([]), Int(1,1), -Direct(Tid(721, "%000002d1")))])), Blk(Tid(721, "%000002d1"), - Attrs([Attr("address","0x6FC")]), Phis([]), Defs([Def(Tid(731, "%000002db"), - Attrs([Attr("address","0x6FC"), Attr("insn","ldr x19, [sp, #0x10]")]), - Var("R19",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(16,64)),LittleEndian(),64)), -Def(Tid(738, "%000002e2"), Attrs([Attr("address","0x700"), -Attr("insn","ldp x29, x30, [sp], #0x20")]), Var("R29",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(743, "%000002e7"), Attrs([Attr("address","0x700"), -Attr("insn","ldp x29, x30, [sp], #0x20")]), Var("R30",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(747, "%000002eb"), Attrs([Attr("address","0x700"), -Attr("insn","ldp x29, x30, [sp], #0x20")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(32,64)))]), Jmps([Call(Tid(752, "%000002f0"), - Attrs([Attr("address","0x704"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), Sub(Tid(1_581, "@__libc_start_main"), - Attrs([Attr("c.proto","signed (*)(signed (*)(signed , char** , char** );* main, signed , char** , \nvoid* auxv)"), -Attr("address","0x5C0"), Attr("stub","()")]), "__libc_start_main", - Args([Arg(Tid(1_629, "%0000065d"), - Attrs([Attr("c.layout","**[ : 64]"), -Attr("c.data","Top:u64 ptr ptr"), -Attr("c.type","signed (*)(signed , char** , char** );*")]), - Var("__libc_start_main_main",Imm(64)), Var("R0",Imm(64)), In()), -Arg(Tid(1_630, "%0000065e"), Attrs([Attr("c.layout","[signed : 32]"), -Attr("c.data","Top:u32"), Attr("c.type","signed")]), - Var("__libc_start_main_arg2",Imm(32)), LOW(32,Var("R1",Imm(64))), In()), -Arg(Tid(1_631, "%0000065f"), Attrs([Attr("c.layout","**[char : 8]"), -Attr("c.data","Top:u8 ptr ptr"), Attr("c.type","char**")]), - Var("__libc_start_main_arg3",Imm(64)), Var("R2",Imm(64)), Both()), -Arg(Tid(1_632, "%00000660"), Attrs([Attr("c.layout","*[ : 8]"), -Attr("c.data","{} ptr"), Attr("c.type","void*")]), - Var("__libc_start_main_auxv",Imm(64)), Var("R3",Imm(64)), Both()), -Arg(Tid(1_633, "%00000661"), Attrs([Attr("c.layout","[signed : 32]"), -Attr("c.data","Top:u32"), Attr("c.type","signed")]), - Var("__libc_start_main_result",Imm(32)), LOW(32,Var("R0",Imm(64))), -Out())]), Blks([Blk(Tid(503, "@__libc_start_main"), - Attrs([Attr("address","0x5C0")]), Phis([]), -Defs([Def(Tid(1_190, "%000004a6"), Attrs([Attr("address","0x5C0"), -Attr("insn","adrp x16, #69632")]), Var("R16",Imm(64)), Int(69632,64)), -Def(Tid(1_197, "%000004ad"), Attrs([Attr("address","0x5C4"), -Attr("insn","ldr x17, [x16]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R16",Imm(64)),LittleEndian(),64)), -Def(Tid(1_203, "%000004b3"), Attrs([Attr("address","0x5C8"), -Attr("insn","add x16, x16, #0x0")]), Var("R16",Imm(64)), -Var("R16",Imm(64)))]), Jmps([Call(Tid(1_208, "%000004b8"), - Attrs([Attr("address","0x5CC"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), Sub(Tid(1_582, "@_fini"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x764")]), - "_fini", Args([Arg(Tid(1_634, "%00000662"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("_fini_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(31, "@_fini"), - Attrs([Attr("address","0x764")]), Phis([]), Defs([Def(Tid(37, "%00000025"), - Attrs([Attr("address","0x768"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("#0",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(18446744073709551600,64))), -Def(Tid(43, "%0000002b"), Attrs([Attr("address","0x768"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("#0",Imm(64)),Var("R29",Imm(64)),LittleEndian(),64)), -Def(Tid(49, "%00000031"), Attrs([Attr("address","0x768"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("#0",Imm(64)),Int(8,64)),Var("R30",Imm(64)),LittleEndian(),64)), -Def(Tid(53, "%00000035"), Attrs([Attr("address","0x768"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("R31",Imm(64)), -Var("#0",Imm(64))), Def(Tid(59, "%0000003b"), Attrs([Attr("address","0x76C"), -Attr("insn","mov x29, sp")]), Var("R29",Imm(64)), Var("R31",Imm(64))), -Def(Tid(66, "%00000042"), Attrs([Attr("address","0x770"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R29",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(71, "%00000047"), Attrs([Attr("address","0x770"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R30",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(75, "%0000004b"), Attrs([Attr("address","0x770"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(16,64)))]), Jmps([Call(Tid(80, "%00000050"), - Attrs([Attr("address","0x774"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), Sub(Tid(1_583, "@_init"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x580")]), - "_init", Args([Arg(Tid(1_635, "%00000663"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("_init_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(1_398, "@_init"), - Attrs([Attr("address","0x580")]), Phis([]), -Defs([Def(Tid(1_404, "%0000057c"), Attrs([Attr("address","0x584"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("#6",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(18446744073709551600,64))), -Def(Tid(1_410, "%00000582"), Attrs([Attr("address","0x584"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("#6",Imm(64)),Var("R29",Imm(64)),LittleEndian(),64)), -Def(Tid(1_416, "%00000588"), Attrs([Attr("address","0x584"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("#6",Imm(64)),Int(8,64)),Var("R30",Imm(64)),LittleEndian(),64)), -Def(Tid(1_420, "%0000058c"), Attrs([Attr("address","0x584"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("R31",Imm(64)), -Var("#6",Imm(64))), Def(Tid(1_426, "%00000592"), - Attrs([Attr("address","0x588"), Attr("insn","mov x29, sp")]), - Var("R29",Imm(64)), Var("R31",Imm(64))), Def(Tid(1_431, "%00000597"), - Attrs([Attr("address","0x58C"), Attr("insn","bl #0xa8")]), - Var("R30",Imm(64)), Int(1424,64))]), Jmps([Call(Tid(1_433, "%00000599"), - Attrs([Attr("address","0x58C"), Attr("insn","bl #0xa8")]), Int(1,1), -(Direct(Tid(1_588, "@call_weak_fn")),Direct(Tid(1_435, "%0000059b"))))])), -Blk(Tid(1_435, "%0000059b"), Attrs([Attr("address","0x590")]), Phis([]), -Defs([Def(Tid(1_440, "%000005a0"), Attrs([Attr("address","0x590"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R29",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(1_445, "%000005a5"), Attrs([Attr("address","0x590"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R30",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(1_449, "%000005a9"), Attrs([Attr("address","0x590"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(16,64)))]), Jmps([Call(Tid(1_454, "%000005ae"), - Attrs([Attr("address","0x594"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), Sub(Tid(1_584, "@_start"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x600"), -Attr("stub","()"), Attr("entry-point","()")]), "_start", - Args([Arg(Tid(1_636, "%00000664"), Attrs([Attr("c.layout","[signed : 32]"), -Attr("c.data","Top:u32"), Attr("c.type","signed")]), - Var("_start_result",Imm(32)), LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(440, "@_start"), Attrs([Attr("address","0x600")]), Phis([]), -Defs([Def(Tid(445, "%000001bd"), Attrs([Attr("address","0x604"), -Attr("insn","mov x29, #0x0")]), Var("R29",Imm(64)), Int(0,64)), -Def(Tid(450, "%000001c2"), Attrs([Attr("address","0x608"), -Attr("insn","mov x30, #0x0")]), Var("R30",Imm(64)), Int(0,64)), -Def(Tid(456, "%000001c8"), Attrs([Attr("address","0x60C"), -Attr("insn","mov x5, x0")]), Var("R5",Imm(64)), Var("R0",Imm(64))), -Def(Tid(463, "%000001cf"), Attrs([Attr("address","0x610"), -Attr("insn","ldr x1, [sp]")]), Var("R1",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(469, "%000001d5"), Attrs([Attr("address","0x614"), -Attr("insn","add x2, sp, #0x8")]), Var("R2",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(8,64))), Def(Tid(475, "%000001db"), - Attrs([Attr("address","0x618"), Attr("insn","mov x6, sp")]), - Var("R6",Imm(64)), Var("R31",Imm(64))), Def(Tid(480, "%000001e0"), - Attrs([Attr("address","0x61C"), Attr("insn","adrp x0, #65536")]), - Var("R0",Imm(64)), Int(65536,64)), Def(Tid(487, "%000001e7"), - Attrs([Attr("address","0x620"), Attr("insn","ldr x0, [x0, #0xfd8]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(4056,64)),LittleEndian(),64)), -Def(Tid(492, "%000001ec"), Attrs([Attr("address","0x624"), -Attr("insn","mov x3, #0x0")]), Var("R3",Imm(64)), Int(0,64)), -Def(Tid(497, "%000001f1"), Attrs([Attr("address","0x628"), -Attr("insn","mov x4, #0x0")]), Var("R4",Imm(64)), Int(0,64)), -Def(Tid(502, "%000001f6"), Attrs([Attr("address","0x62C"), -Attr("insn","bl #-0x6c")]), Var("R30",Imm(64)), Int(1584,64))]), -Jmps([Call(Tid(505, "%000001f9"), Attrs([Attr("address","0x62C"), -Attr("insn","bl #-0x6c")]), Int(1,1), -(Direct(Tid(1_581, "@__libc_start_main")),Direct(Tid(507, "%000001fb"))))])), -Blk(Tid(507, "%000001fb"), Attrs([Attr("address","0x630")]), Phis([]), -Defs([Def(Tid(510, "%000001fe"), Attrs([Attr("address","0x630"), -Attr("insn","bl #-0x40")]), Var("R30",Imm(64)), Int(1588,64))]), -Jmps([Call(Tid(513, "%00000201"), Attrs([Attr("address","0x630"), -Attr("insn","bl #-0x40")]), Int(1,1), -(Direct(Tid(1_587, "@abort")),Direct(Tid(1_619, "%00000653"))))])), -Blk(Tid(1_619, "%00000653"), Attrs([]), Phis([]), Defs([]), -Jmps([Call(Tid(1_620, "%00000654"), Attrs([]), Int(1,1), -(Direct(Tid(1_588, "@call_weak_fn")),))]))])), Sub(Tid(1_587, "@abort"), - Attrs([Attr("noreturn","()"), Attr("c.proto","void (*)(void)"), -Attr("address","0x5F0"), Attr("stub","()")]), "abort", Args([]), -Blks([Blk(Tid(511, "@abort"), Attrs([Attr("address","0x5F0")]), Phis([]), -Defs([Def(Tid(1_256, "%000004e8"), Attrs([Attr("address","0x5F0"), -Attr("insn","adrp x16, #69632")]), Var("R16",Imm(64)), Int(69632,64)), -Def(Tid(1_263, "%000004ef"), Attrs([Attr("address","0x5F4"), -Attr("insn","ldr x17, [x16, #0x18]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(24,64)),LittleEndian(),64)), -Def(Tid(1_269, "%000004f5"), Attrs([Attr("address","0x5F8"), -Attr("insn","add x16, x16, #0x18")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(24,64)))]), Jmps([Call(Tid(1_274, "%000004fa"), - Attrs([Attr("address","0x5FC"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), Sub(Tid(1_588, "@call_weak_fn"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x634")]), - "call_weak_fn", Args([Arg(Tid(1_637, "%00000665"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("call_weak_fn_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(515, "@call_weak_fn"), - Attrs([Attr("address","0x634")]), Phis([]), Defs([Def(Tid(518, "%00000206"), - Attrs([Attr("address","0x634"), Attr("insn","adrp x0, #65536")]), - Var("R0",Imm(64)), Int(65536,64)), Def(Tid(525, "%0000020d"), - Attrs([Attr("address","0x638"), Attr("insn","ldr x0, [x0, #0xfd0]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(4048,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(531, "%00000213"), Attrs([Attr("address","0x63C"), -Attr("insn","cbz x0, #0x8")]), EQ(Var("R0",Imm(64)),Int(0,64)), -Direct(Tid(529, "%00000211"))), Goto(Tid(1_621, "%00000655"), Attrs([]), - Int(1,1), Direct(Tid(1_028, "%00000404")))])), Blk(Tid(529, "%00000211"), - Attrs([Attr("address","0x644")]), Phis([]), Defs([]), -Jmps([Call(Tid(537, "%00000219"), Attrs([Attr("address","0x644"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))])), -Blk(Tid(1_028, "%00000404"), Attrs([Attr("address","0x640")]), Phis([]), -Defs([]), Jmps([Goto(Tid(1_031, "%00000407"), Attrs([Attr("address","0x640"), -Attr("insn","b #-0x60")]), Int(1,1), -Direct(Tid(1_029, "@__gmon_start__")))])), Blk(Tid(1_029, "@__gmon_start__"), - Attrs([Attr("address","0x5E0")]), Phis([]), -Defs([Def(Tid(1_234, "%000004d2"), Attrs([Attr("address","0x5E0"), -Attr("insn","adrp x16, #69632")]), Var("R16",Imm(64)), Int(69632,64)), -Def(Tid(1_241, "%000004d9"), Attrs([Attr("address","0x5E4"), -Attr("insn","ldr x17, [x16, #0x10]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(16,64)),LittleEndian(),64)), -Def(Tid(1_247, "%000004df"), Attrs([Attr("address","0x5E8"), -Attr("insn","add x16, x16, #0x10")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(16,64)))]), Jmps([Call(Tid(1_252, "%000004e4"), - Attrs([Attr("address","0x5EC"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), -Sub(Tid(1_590, "@deregister_tm_clones"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x650")]), - "deregister_tm_clones", Args([Arg(Tid(1_638, "%00000666"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("deregister_tm_clones_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(543, "@deregister_tm_clones"), - Attrs([Attr("address","0x650")]), Phis([]), Defs([Def(Tid(546, "%00000222"), - Attrs([Attr("address","0x650"), Attr("insn","adrp x0, #69632")]), - Var("R0",Imm(64)), Int(69632,64)), Def(Tid(552, "%00000228"), - Attrs([Attr("address","0x654"), Attr("insn","add x0, x0, #0x48")]), - Var("R0",Imm(64)), PLUS(Var("R0",Imm(64)),Int(72,64))), -Def(Tid(557, "%0000022d"), Attrs([Attr("address","0x658"), -Attr("insn","adrp x1, #69632")]), Var("R1",Imm(64)), Int(69632,64)), -Def(Tid(563, "%00000233"), Attrs([Attr("address","0x65C"), -Attr("insn","add x1, x1, #0x48")]), Var("R1",Imm(64)), -PLUS(Var("R1",Imm(64)),Int(72,64))), Def(Tid(569, "%00000239"), - Attrs([Attr("address","0x660"), Attr("insn","cmp x1, x0")]), - Var("#1",Imm(64)), NOT(Var("R0",Imm(64)))), Def(Tid(574, "%0000023e"), - Attrs([Attr("address","0x660"), Attr("insn","cmp x1, x0")]), - Var("#2",Imm(64)), PLUS(Var("R1",Imm(64)),NOT(Var("R0",Imm(64))))), -Def(Tid(580, "%00000244"), Attrs([Attr("address","0x660"), -Attr("insn","cmp x1, x0")]), Var("VF",Imm(1)), -NEQ(SIGNED(65,PLUS(Var("#2",Imm(64)),Int(1,64))),PLUS(PLUS(SIGNED(65,Var("R1",Imm(64))),SIGNED(65,Var("#1",Imm(64)))),Int(1,65)))), -Def(Tid(586, "%0000024a"), Attrs([Attr("address","0x660"), -Attr("insn","cmp x1, x0")]), Var("CF",Imm(1)), -NEQ(UNSIGNED(65,PLUS(Var("#2",Imm(64)),Int(1,64))),PLUS(PLUS(UNSIGNED(65,Var("R1",Imm(64))),UNSIGNED(65,Var("#1",Imm(64)))),Int(1,65)))), -Def(Tid(590, "%0000024e"), Attrs([Attr("address","0x660"), -Attr("insn","cmp x1, x0")]), Var("ZF",Imm(1)), -EQ(PLUS(Var("#2",Imm(64)),Int(1,64)),Int(0,64))), Def(Tid(594, "%00000252"), - Attrs([Attr("address","0x660"), Attr("insn","cmp x1, x0")]), - Var("NF",Imm(1)), Extract(63,63,PLUS(Var("#2",Imm(64)),Int(1,64))))]), -Jmps([Goto(Tid(600, "%00000258"), Attrs([Attr("address","0x664"), -Attr("insn","b.eq #0x18")]), EQ(Var("ZF",Imm(1)),Int(1,1)), -Direct(Tid(598, "%00000256"))), Goto(Tid(1_622, "%00000656"), Attrs([]), - Int(1,1), Direct(Tid(998, "%000003e6")))])), Blk(Tid(998, "%000003e6"), - Attrs([Attr("address","0x668")]), Phis([]), -Defs([Def(Tid(1_001, "%000003e9"), Attrs([Attr("address","0x668"), -Attr("insn","adrp x1, #65536")]), Var("R1",Imm(64)), Int(65536,64)), -Def(Tid(1_008, "%000003f0"), Attrs([Attr("address","0x66C"), -Attr("insn","ldr x1, [x1, #0xfc0]")]), Var("R1",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R1",Imm(64)),Int(4032,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(1_013, "%000003f5"), Attrs([Attr("address","0x670"), -Attr("insn","cbz x1, #0xc")]), EQ(Var("R1",Imm(64)),Int(0,64)), -Direct(Tid(598, "%00000256"))), Goto(Tid(1_623, "%00000657"), Attrs([]), - Int(1,1), Direct(Tid(1_017, "%000003f9")))])), Blk(Tid(598, "%00000256"), - Attrs([Attr("address","0x67C")]), Phis([]), Defs([]), -Jmps([Call(Tid(606, "%0000025e"), Attrs([Attr("address","0x67C"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))])), -Blk(Tid(1_017, "%000003f9"), Attrs([Attr("address","0x674")]), Phis([]), -Defs([Def(Tid(1_021, "%000003fd"), Attrs([Attr("address","0x674"), -Attr("insn","mov x16, x1")]), Var("R16",Imm(64)), Var("R1",Imm(64)))]), -Jmps([Call(Tid(1_026, "%00000402"), Attrs([Attr("address","0x678"), -Attr("insn","br x16")]), Int(1,1), (Indirect(Var("R16",Imm(64))),))]))])), -Sub(Tid(1_593, "@frame_dummy"), Attrs([Attr("c.proto","signed (*)(void)"), -Attr("address","0x710")]), "frame_dummy", Args([Arg(Tid(1_639, "%00000667"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("frame_dummy_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(758, "@frame_dummy"), - Attrs([Attr("address","0x710")]), Phis([]), Defs([]), -Jmps([Call(Tid(760, "%000002f8"), Attrs([Attr("address","0x710"), -Attr("insn","b #-0x90")]), Int(1,1), -(Direct(Tid(1_595, "@register_tm_clones")),))]))])), Sub(Tid(1_594, "@main"), - Attrs([Attr("c.proto","signed (*)(signed argc, const char** argv)"), -Attr("address","0x714")]), "main", Args([Arg(Tid(1_640, "%00000668"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("main_argc",Imm(32)), -LOW(32,Var("R0",Imm(64))), In()), Arg(Tid(1_641, "%00000669"), - Attrs([Attr("c.layout","**[char : 8]"), Attr("c.data","Top:u8 ptr ptr"), -Attr("c.type"," const char**")]), Var("main_argv",Imm(64)), -Var("R1",Imm(64)), Both()), Arg(Tid(1_642, "%0000066a"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("main_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(762, "@main"), - Attrs([Attr("address","0x714")]), Phis([]), Defs([Def(Tid(765, "%000002fd"), - Attrs([Attr("address","0x714"), Attr("insn","adrp x8, #69632")]), - Var("R8",Imm(64)), Int(69632,64)), Def(Tid(770, "%00000302"), - Attrs([Attr("address","0x718"), Attr("insn","adrp x9, #69632")]), - Var("R9",Imm(64)), Int(69632,64)), Def(Tid(776, "%00000308"), - Attrs([Attr("address","0x71C"), Attr("insn","add x9, x9, #0x40")]), - Var("R9",Imm(64)), PLUS(Var("R9",Imm(64)),Int(64,64))), -Def(Tid(781, "%0000030d"), Attrs([Attr("address","0x720"), -Attr("insn","adrp x11, #69632")]), Var("R11",Imm(64)), Int(69632,64)), -Def(Tid(788, "%00000314"), Attrs([Attr("address","0x724"), -Attr("insn","ldr w10, [x11, #0x30]")]), Var("R10",Imm(64)), -UNSIGNED(64,Load(Var("mem",Mem(64,8)),PLUS(Var("R11",Imm(64)),Int(48,64)),LittleEndian(),32))), -Def(Tid(794, "%0000031a"), Attrs([Attr("address","0x728"), -Attr("insn","add w10, w10, #0x1")]), Var("R10",Imm(64)), -UNSIGNED(64,PLUS(Extract(31,0,Var("R10",Imm(64))),Int(1,32)))), -Def(Tid(802, "%00000322"), Attrs([Attr("address","0x72C"), -Attr("insn","str w10, [x11, #0x30]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R11",Imm(64)),Int(48,64)),Extract(31,0,Var("R10",Imm(64))),LittleEndian(),32)), -Def(Tid(807, "%00000327"), Attrs([Attr("address","0x730"), -Attr("insn","adrp x11, #69632")]), Var("R11",Imm(64)), Int(69632,64)), -Def(Tid(814, "%0000032e"), Attrs([Attr("address","0x734"), -Attr("insn","ldr x10, [x11, #0x38]")]), Var("R10",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R11",Imm(64)),Int(56,64)),LittleEndian(),64)), -Def(Tid(820, "%00000334"), Attrs([Attr("address","0x738"), -Attr("insn","subs x10, x10, #0x1")]), Var("#4",Imm(64)), -PLUS(Var("R10",Imm(64)),Int(18446744073709551614,64))), -Def(Tid(825, "%00000339"), Attrs([Attr("address","0x738"), -Attr("insn","subs x10, x10, #0x1")]), Var("VF",Imm(1)), -NEQ(SIGNED(65,PLUS(Var("#4",Imm(64)),Int(1,64))),PLUS(SIGNED(65,Var("R10",Imm(64))),Int(36893488147419103231,65)))), -Def(Tid(830, "%0000033e"), Attrs([Attr("address","0x738"), -Attr("insn","subs x10, x10, #0x1")]), Var("CF",Imm(1)), -NEQ(UNSIGNED(65,PLUS(Var("#4",Imm(64)),Int(1,64))),PLUS(UNSIGNED(65,Var("R10",Imm(64))),Int(18446744073709551615,65)))), -Def(Tid(834, "%00000342"), Attrs([Attr("address","0x738"), -Attr("insn","subs x10, x10, #0x1")]), Var("ZF",Imm(1)), -EQ(PLUS(Var("#4",Imm(64)),Int(1,64)),Int(0,64))), Def(Tid(838, "%00000346"), - Attrs([Attr("address","0x738"), Attr("insn","subs x10, x10, #0x1")]), - Var("NF",Imm(1)), Extract(63,63,PLUS(Var("#4",Imm(64)),Int(1,64)))), -Def(Tid(842, "%0000034a"), Attrs([Attr("address","0x738"), -Attr("insn","subs x10, x10, #0x1")]), Var("R10",Imm(64)), -PLUS(Var("#4",Imm(64)),Int(1,64))), Def(Tid(850, "%00000352"), - Attrs([Attr("address","0x73C"), Attr("insn","str x10, [x11, #0x38]")]), - Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R11",Imm(64)),Int(56,64)),Var("R10",Imm(64)),LittleEndian(),64)), -Def(Tid(857, "%00000359"), Attrs([Attr("address","0x740"), -Attr("insn","ldr w8, [x8, #0x40]")]), Var("R8",Imm(64)), -UNSIGNED(64,Load(Var("mem",Mem(64,8)),PLUS(Var("R8",Imm(64)),Int(64,64)),LittleEndian(),32))), -Def(Tid(863, "%0000035f"), Attrs([Attr("address","0x744"), -Attr("insn","add w8, w8, #0x3")]), Var("R8",Imm(64)), -UNSIGNED(64,PLUS(Extract(31,0,Var("R8",Imm(64))),Int(3,32)))), -Def(Tid(871, "%00000367"), Attrs([Attr("address","0x748"), -Attr("insn","str w8, [x9, #0x4]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R9",Imm(64)),Int(4,64)),Extract(31,0,Var("R8",Imm(64))),LittleEndian(),32)), -Def(Tid(876, "%0000036c"), Attrs([Attr("address","0x74C"), -Attr("insn","adrp x9, #69632")]), Var("R9",Imm(64)), Int(69632,64)), -Def(Tid(883, "%00000373"), Attrs([Attr("address","0x750"), -Attr("insn","ldrb w8, [x9, #0x34]")]), Var("R8",Imm(64)), -UNSIGNED(64,Load(Var("mem",Mem(64,8)),PLUS(Var("R9",Imm(64)),Int(52,64)),LittleEndian(),8))), -Def(Tid(889, "%00000379"), Attrs([Attr("address","0x754"), -Attr("insn","add w8, w8, #0x1")]), Var("R8",Imm(64)), -UNSIGNED(64,PLUS(Extract(31,0,Var("R8",Imm(64))),Int(1,32)))), -Def(Tid(897, "%00000381"), Attrs([Attr("address","0x758"), -Attr("insn","strb w8, [x9, #0x34]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R9",Imm(64)),Int(52,64)),Extract(7,0,Var("R8",Imm(64))),LittleEndian(),8)), -Def(Tid(902, "%00000386"), Attrs([Attr("address","0x75C"), -Attr("insn","mov w0, wzr")]), Var("R0",Imm(64)), Int(0,64))]), -Jmps([Call(Tid(907, "%0000038b"), Attrs([Attr("address","0x760"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))]))])), -Sub(Tid(1_595, "@register_tm_clones"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x680")]), - "register_tm_clones", Args([Arg(Tid(1_643, "%0000066b"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("register_tm_clones_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(608, "@register_tm_clones"), Attrs([Attr("address","0x680")]), - Phis([]), Defs([Def(Tid(611, "%00000263"), Attrs([Attr("address","0x680"), -Attr("insn","adrp x0, #69632")]), Var("R0",Imm(64)), Int(69632,64)), -Def(Tid(617, "%00000269"), Attrs([Attr("address","0x684"), -Attr("insn","add x0, x0, #0x48")]), Var("R0",Imm(64)), -PLUS(Var("R0",Imm(64)),Int(72,64))), Def(Tid(622, "%0000026e"), - Attrs([Attr("address","0x688"), Attr("insn","adrp x1, #69632")]), - Var("R1",Imm(64)), Int(69632,64)), Def(Tid(628, "%00000274"), - Attrs([Attr("address","0x68C"), Attr("insn","add x1, x1, #0x48")]), - Var("R1",Imm(64)), PLUS(Var("R1",Imm(64)),Int(72,64))), -Def(Tid(635, "%0000027b"), Attrs([Attr("address","0x690"), -Attr("insn","sub x1, x1, x0")]), Var("R1",Imm(64)), -PLUS(PLUS(Var("R1",Imm(64)),NOT(Var("R0",Imm(64)))),Int(1,64))), -Def(Tid(641, "%00000281"), Attrs([Attr("address","0x694"), -Attr("insn","lsr x2, x1, #63")]), Var("R2",Imm(64)), -Concat(Int(0,63),Extract(63,63,Var("R1",Imm(64))))), -Def(Tid(648, "%00000288"), Attrs([Attr("address","0x698"), -Attr("insn","add x1, x2, x1, asr #3")]), Var("R1",Imm(64)), -PLUS(Var("R2",Imm(64)),ARSHIFT(Var("R1",Imm(64)),Int(3,3)))), -Def(Tid(654, "%0000028e"), Attrs([Attr("address","0x69C"), -Attr("insn","asr x1, x1, #1")]), Var("R1",Imm(64)), -SIGNED(64,Extract(63,1,Var("R1",Imm(64)))))]), -Jmps([Goto(Tid(660, "%00000294"), Attrs([Attr("address","0x6A0"), -Attr("insn","cbz x1, #0x18")]), EQ(Var("R1",Imm(64)),Int(0,64)), -Direct(Tid(658, "%00000292"))), Goto(Tid(1_624, "%00000658"), Attrs([]), - Int(1,1), Direct(Tid(968, "%000003c8")))])), Blk(Tid(968, "%000003c8"), - Attrs([Attr("address","0x6A4")]), Phis([]), Defs([Def(Tid(971, "%000003cb"), - Attrs([Attr("address","0x6A4"), Attr("insn","adrp x2, #65536")]), - Var("R2",Imm(64)), Int(65536,64)), Def(Tid(978, "%000003d2"), - Attrs([Attr("address","0x6A8"), Attr("insn","ldr x2, [x2, #0xfe0]")]), - Var("R2",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R2",Imm(64)),Int(4064,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(983, "%000003d7"), Attrs([Attr("address","0x6AC"), -Attr("insn","cbz x2, #0xc")]), EQ(Var("R2",Imm(64)),Int(0,64)), -Direct(Tid(658, "%00000292"))), Goto(Tid(1_625, "%00000659"), Attrs([]), - Int(1,1), Direct(Tid(987, "%000003db")))])), Blk(Tid(658, "%00000292"), - Attrs([Attr("address","0x6B8")]), Phis([]), Defs([]), -Jmps([Call(Tid(666, "%0000029a"), Attrs([Attr("address","0x6B8"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))])), -Blk(Tid(987, "%000003db"), Attrs([Attr("address","0x6B0")]), Phis([]), -Defs([Def(Tid(991, "%000003df"), Attrs([Attr("address","0x6B0"), -Attr("insn","mov x16, x2")]), Var("R16",Imm(64)), Var("R2",Imm(64)))]), -Jmps([Call(Tid(996, "%000003e4"), Attrs([Attr("address","0x6B4"), -Attr("insn","br x16")]), Int(1,1), -(Indirect(Var("R16",Imm(64))),))]))]))]))) \ No newline at end of file diff --git a/src/test/correct/initialisation/clang/initialisation.bir b/src/test/correct/initialisation/clang/initialisation.bir deleted file mode 100644 index 5703d81cb..000000000 --- a/src/test/correct/initialisation/clang/initialisation.bir +++ /dev/null @@ -1,247 +0,0 @@ -0000065a: program -00000628: sub __cxa_finalize(__cxa_finalize_result) -0000065b: __cxa_finalize_result :: out u32 = low:32[R0] - -000003c4: -000004bc: R16 := 0x11000 -000004c3: R17 := mem[R16 + 8, el]:u64 -000004c9: R16 := R16 + 8 -000004ce: call R17 with noreturn - -00000629: sub __do_global_dtors_aux(__do_global_dtors_aux_result) -0000065c: __do_global_dtors_aux_result :: out u32 = low:32[R0] - -0000029e: -000002a2: #3 := R31 - 0x20 -000002a8: mem := mem with [#3, el]:u64 <- R29 -000002ae: mem := mem with [#3 + 8, el]:u64 <- R30 -000002b2: R31 := #3 -000002b8: R29 := R31 -000002c0: mem := mem with [R31 + 0x10, el]:u64 <- R19 -000002c5: R19 := 0x11000 -000002cc: R0 := pad:64[mem[R19 + 0x48]] -000002d3: when 31:0[R0] <> 0 goto %000002d1 -00000650: goto %0000038d - -0000038d: -00000390: R0 := 0x10000 -00000397: R0 := mem[R0 + 0xFC8, el]:u64 -0000039d: when R0 = 0 goto %0000039b -00000651: goto %000003b4 - -000003b4: -000003b7: R0 := 0x11000 -000003be: R0 := mem[R0 + 0x28, el]:u64 -000003c3: R30 := 0x6F0 -000003c6: call @__cxa_finalize with return %0000039b - -0000039b: -000003a3: R30 := 0x6F4 -000003a5: call @deregister_tm_clones with return %000003a7 - -000003a7: -000003aa: R0 := 1 -000003b2: mem := mem with [R19 + 0x48] <- 7:0[R0] -00000652: goto %000002d1 - -000002d1: -000002db: R19 := mem[R31 + 0x10, el]:u64 -000002e2: R29 := mem[R31, el]:u64 -000002e7: R30 := mem[R31 + 8, el]:u64 -000002eb: R31 := R31 + 0x20 -000002f0: call R30 with noreturn - -0000062d: sub __libc_start_main(__libc_start_main_main, __libc_start_main_arg2, __libc_start_main_arg3, __libc_start_main_auxv, __libc_start_main_result) -0000065d: __libc_start_main_main :: in u64 = R0 -0000065e: __libc_start_main_arg2 :: in u32 = low:32[R1] -0000065f: __libc_start_main_arg3 :: in out u64 = R2 -00000660: __libc_start_main_auxv :: in out u64 = R3 -00000661: __libc_start_main_result :: out u32 = low:32[R0] - -000001f7: -000004a6: R16 := 0x11000 -000004ad: R17 := mem[R16, el]:u64 -000004b3: R16 := R16 -000004b8: call R17 with noreturn - -0000062e: sub _fini(_fini_result) -00000662: _fini_result :: out u32 = low:32[R0] - -0000001f: -00000025: #0 := R31 - 0x10 -0000002b: mem := mem with [#0, el]:u64 <- R29 -00000031: mem := mem with [#0 + 8, el]:u64 <- R30 -00000035: R31 := #0 -0000003b: R29 := R31 -00000042: R29 := mem[R31, el]:u64 -00000047: R30 := mem[R31 + 8, el]:u64 -0000004b: R31 := R31 + 0x10 -00000050: call R30 with noreturn - -0000062f: sub _init(_init_result) -00000663: _init_result :: out u32 = low:32[R0] - -00000576: -0000057c: #6 := R31 - 0x10 -00000582: mem := mem with [#6, el]:u64 <- R29 -00000588: mem := mem with [#6 + 8, el]:u64 <- R30 -0000058c: R31 := #6 -00000592: R29 := R31 -00000597: R30 := 0x590 -00000599: call @call_weak_fn with return %0000059b - -0000059b: -000005a0: R29 := mem[R31, el]:u64 -000005a5: R30 := mem[R31 + 8, el]:u64 -000005a9: R31 := R31 + 0x10 -000005ae: call R30 with noreturn - -00000630: sub _start(_start_result) -00000664: _start_result :: out u32 = low:32[R0] - -000001b8: -000001bd: R29 := 0 -000001c2: R30 := 0 -000001c8: R5 := R0 -000001cf: R1 := mem[R31, el]:u64 -000001d5: R2 := R31 + 8 -000001db: R6 := R31 -000001e0: R0 := 0x10000 -000001e7: R0 := mem[R0 + 0xFD8, el]:u64 -000001ec: R3 := 0 -000001f1: R4 := 0 -000001f6: R30 := 0x630 -000001f9: call @__libc_start_main with return %000001fb - -000001fb: -000001fe: R30 := 0x634 -00000201: call @abort with return %00000653 - -00000653: -00000654: call @call_weak_fn with noreturn - -00000633: sub abort() - - -000001ff: -000004e8: R16 := 0x11000 -000004ef: R17 := mem[R16 + 0x18, el]:u64 -000004f5: R16 := R16 + 0x18 -000004fa: call R17 with noreturn - -00000634: sub call_weak_fn(call_weak_fn_result) -00000665: call_weak_fn_result :: out u32 = low:32[R0] - -00000203: -00000206: R0 := 0x10000 -0000020d: R0 := mem[R0 + 0xFD0, el]:u64 -00000213: when R0 = 0 goto %00000211 -00000655: goto %00000404 - -00000211: -00000219: call R30 with noreturn - -00000404: -00000407: goto @__gmon_start__ - -00000405: -000004d2: R16 := 0x11000 -000004d9: R17 := mem[R16 + 0x10, el]:u64 -000004df: R16 := R16 + 0x10 -000004e4: call R17 with noreturn - -00000636: sub deregister_tm_clones(deregister_tm_clones_result) -00000666: deregister_tm_clones_result :: out u32 = low:32[R0] - -0000021f: -00000222: R0 := 0x11000 -00000228: R0 := R0 + 0x48 -0000022d: R1 := 0x11000 -00000233: R1 := R1 + 0x48 -00000239: #1 := ~R0 -0000023e: #2 := R1 + ~R0 -00000244: VF := extend:65[#2 + 1] <> extend:65[R1] + extend:65[#1] + 1 -0000024a: CF := pad:65[#2 + 1] <> pad:65[R1] + pad:65[#1] + 1 -0000024e: ZF := #2 + 1 = 0 -00000252: NF := 63:63[#2 + 1] -00000258: when ZF goto %00000256 -00000656: goto %000003e6 - -000003e6: -000003e9: R1 := 0x10000 -000003f0: R1 := mem[R1 + 0xFC0, el]:u64 -000003f5: when R1 = 0 goto %00000256 -00000657: goto %000003f9 - -00000256: -0000025e: call R30 with noreturn - -000003f9: -000003fd: R16 := R1 -00000402: call R16 with noreturn - -00000639: sub frame_dummy(frame_dummy_result) -00000667: frame_dummy_result :: out u32 = low:32[R0] - -000002f6: -000002f8: call @register_tm_clones with noreturn - -0000063a: sub main(main_argc, main_argv, main_result) -00000668: main_argc :: in u32 = low:32[R0] -00000669: main_argv :: in out u64 = R1 -0000066a: main_result :: out u32 = low:32[R0] - -000002fa: -000002fd: R8 := 0x11000 -00000302: R9 := 0x11000 -00000308: R9 := R9 + 0x40 -0000030d: R11 := 0x11000 -00000314: R10 := pad:64[mem[R11 + 0x30, el]:u32] -0000031a: R10 := pad:64[31:0[R10] + 1] -00000322: mem := mem with [R11 + 0x30, el]:u32 <- 31:0[R10] -00000327: R11 := 0x11000 -0000032e: R10 := mem[R11 + 0x38, el]:u64 -00000334: #4 := R10 - 2 -00000339: VF := extend:65[#4 + 1] <> extend:65[R10] - 1 -0000033e: CF := pad:65[#4 + 1] <> pad:65[R10] + 0xFFFFFFFFFFFFFFFF -00000342: ZF := #4 + 1 = 0 -00000346: NF := 63:63[#4 + 1] -0000034a: R10 := #4 + 1 -00000352: mem := mem with [R11 + 0x38, el]:u64 <- R10 -00000359: R8 := pad:64[mem[R8 + 0x40, el]:u32] -0000035f: R8 := pad:64[31:0[R8] + 3] -00000367: mem := mem with [R9 + 4, el]:u32 <- 31:0[R8] -0000036c: R9 := 0x11000 -00000373: R8 := pad:64[mem[R9 + 0x34]] -00000379: R8 := pad:64[31:0[R8] + 1] -00000381: mem := mem with [R9 + 0x34] <- 7:0[R8] -00000386: R0 := 0 -0000038b: call R30 with noreturn - -0000063b: sub register_tm_clones(register_tm_clones_result) -0000066b: register_tm_clones_result :: out u32 = low:32[R0] - -00000260: -00000263: R0 := 0x11000 -00000269: R0 := R0 + 0x48 -0000026e: R1 := 0x11000 -00000274: R1 := R1 + 0x48 -0000027b: R1 := R1 + ~R0 + 1 -00000281: R2 := 0.63:63[R1] -00000288: R1 := R2 + (R1 ~>> 3) -0000028e: R1 := extend:64[63:1[R1]] -00000294: when R1 = 0 goto %00000292 -00000658: goto %000003c8 - -000003c8: -000003cb: R2 := 0x10000 -000003d2: R2 := mem[R2 + 0xFE0, el]:u64 -000003d7: when R2 = 0 goto %00000292 -00000659: goto %000003db - -00000292: -0000029a: call R30 with noreturn - -000003db: -000003df: R16 := R2 -000003e4: call R16 with noreturn diff --git a/src/test/correct/initialisation/clang/initialisation.expected b/src/test/correct/initialisation/clang/initialisation.expected index 5a86e3c5b..0f268eebf 100644 --- a/src/test/correct/initialisation/clang/initialisation.expected +++ b/src/test/correct/initialisation/clang/initialisation.expected @@ -1,41 +1,35 @@ -var {:extern} CF: bv1; -var {:extern} Gamma_CF: bool; -var {:extern} Gamma_NF: bool; var {:extern} Gamma_R0: bool; var {:extern} Gamma_R10: bool; var {:extern} Gamma_R11: bool; +var {:extern} Gamma_R12: bool; +var {:extern} Gamma_R13: bool; +var {:extern} Gamma_R14: bool; var {:extern} Gamma_R8: bool; var {:extern} Gamma_R9: bool; -var {:extern} Gamma_VF: bool; -var {:extern} Gamma_ZF: bool; var {:extern} Gamma_mem: [bv64]bool; -var {:extern} NF: bv1; var {:extern} R0: bv64; var {:extern} R10: bv64; var {:extern} R11: bv64; +var {:extern} R12: bv64; +var {:extern} R13: bv64; +var {:extern} R14: bv64; var {:extern} R8: bv64; var {:extern} R9: bv64; -var {:extern} VF: bv1; -var {:extern} ZF: bv1; var {:extern} mem: [bv64]bv8; const {:extern} $a_addr: bv64; -axiom ($a_addr == 69696bv64); +axiom ($a_addr == 131104bv64); const {:extern} $x_addr: bv64; -axiom ($x_addr == 69680bv64); +axiom ($x_addr == 131088bv64); const {:extern} $y_addr: bv64; -axiom ($y_addr == 69684bv64); +axiom ($y_addr == 131092bv64); const {:extern} $z_addr: bv64; -axiom ($z_addr == 69688bv64); +axiom ($z_addr == 131096bv64); function {:extern} L(mem$in: [bv64]bv8, index: bv64) returns (bool) { false } function {:extern} {:bvbuiltin "bvadd"} bvadd32(bv32, bv32) returns (bv32); function {:extern} {:bvbuiltin "bvadd"} bvadd64(bv64, bv64) returns (bv64); -function {:extern} {:bvbuiltin "bvadd"} bvadd65(bv65, bv65) returns (bv65); -function {:extern} {:bvbuiltin "bvcomp"} bvcomp64(bv64, bv64) returns (bv1); -function {:extern} {:bvbuiltin "bvcomp"} bvcomp65(bv65, bv65) returns (bv1); -function {:extern} {:bvbuiltin "bvnot"} bvnot1(bv1) returns (bv1); function {:extern} gamma_load32(gammaMap: [bv64]bool, index: bv64) returns (bool) { (gammaMap[bvadd64(index, 3bv64)] && (gammaMap[bvadd64(index, 2bv64)] && (gammaMap[bvadd64(index, 1bv64)] && gammaMap[index]))) } @@ -84,19 +78,21 @@ function {:extern} memory_store8_le(memory: [bv64]bv8, index: bv64, value: bv8) memory[index := value[8:0]] } -function {:extern} {:bvbuiltin "sign_extend 1"} sign_extend1_64(bv64) returns (bv65); -function {:extern} {:bvbuiltin "zero_extend 1"} zero_extend1_64(bv64) returns (bv65); function {:extern} {:bvbuiltin "zero_extend 32"} zero_extend32_32(bv32) returns (bv64); function {:extern} {:bvbuiltin "zero_extend 56"} zero_extend56_8(bv8) returns (bv64); procedure {:extern} rely(); modifies Gamma_mem, mem; ensures (Gamma_mem == old(Gamma_mem)); ensures (mem == old(mem)); - free ensures (memory_load32_le(mem, 1912bv64) == 131073bv32); - free ensures (memory_load64_le(mem, 69064bv64) == 1808bv64); - free ensures (memory_load64_le(mem, 69072bv64) == 1728bv64); - free ensures (memory_load64_le(mem, 69592bv64) == 1812bv64); - free ensures (memory_load64_le(mem, 69672bv64) == 69672bv64); + free ensures (memory_load32_le(mem, 2432bv64) == 131073bv32); + free ensures (memory_load64_le(mem, 130408bv64) == 2320bv64); + free ensures (memory_load64_le(mem, 130416bv64) == 2240bv64); + free ensures (memory_load64_le(mem, 131016bv64) == 131096bv64); + free ensures (memory_load64_le(mem, 131024bv64) == 131088bv64); + free ensures (memory_load64_le(mem, 131040bv64) == 131104bv64); + free ensures (memory_load64_le(mem, 131048bv64) == 131092bv64); + free ensures (memory_load64_le(mem, 131056bv64) == 2324bv64); + free ensures (memory_load64_le(mem, 131080bv64) == 131080bv64); procedure {:extern} rely_transitive(); modifies Gamma_mem, mem; @@ -114,88 +110,107 @@ procedure {:extern} rely_reflexive(); procedure {:extern} guarantee_reflexive(); modifies Gamma_mem, mem; -procedure main_1812(); - modifies CF, Gamma_CF, Gamma_NF, Gamma_R0, Gamma_R10, Gamma_R11, Gamma_R8, Gamma_R9, Gamma_VF, Gamma_ZF, Gamma_mem, NF, R0, R10, R11, R8, R9, VF, ZF, mem; - free requires (memory_load64_le(mem, 69664bv64) == 0bv64); - free requires (memory_load64_le(mem, 69672bv64) == 69672bv64); - free requires (memory_load64_le(mem, 69680bv64) == 416611827717bv64); - free requires (memory_load64_le(mem, 69688bv64) == 68719476735bv64); - free requires (memory_load64_le(mem, 69696bv64) == 8589934593bv64); - free requires (memory_load32_le(mem, 1912bv64) == 131073bv32); - free requires (memory_load64_le(mem, 69064bv64) == 1808bv64); - free requires (memory_load64_le(mem, 69072bv64) == 1728bv64); - free requires (memory_load64_le(mem, 69592bv64) == 1812bv64); - free requires (memory_load64_le(mem, 69672bv64) == 69672bv64); +procedure main(); + modifies Gamma_R0, Gamma_R10, Gamma_R11, Gamma_R12, Gamma_R13, Gamma_R14, Gamma_R8, Gamma_R9, Gamma_mem, R0, R10, R11, R12, R13, R14, R8, R9, mem; + free requires (memory_load64_le(mem, 131072bv64) == 0bv64); + free requires (memory_load64_le(mem, 131080bv64) == 131080bv64); + free requires (memory_load64_le(mem, 131088bv64) == 416611827717bv64); + free requires (memory_load64_le(mem, 131096bv64) == 68719476735bv64); + free requires (memory_load64_le(mem, 131104bv64) == 8589934593bv64); + free requires (memory_load32_le(mem, 2432bv64) == 131073bv32); + free requires (memory_load64_le(mem, 130408bv64) == 2320bv64); + free requires (memory_load64_le(mem, 130416bv64) == 2240bv64); + free requires (memory_load64_le(mem, 131016bv64) == 131096bv64); + free requires (memory_load64_le(mem, 131024bv64) == 131088bv64); + free requires (memory_load64_le(mem, 131040bv64) == 131104bv64); + free requires (memory_load64_le(mem, 131048bv64) == 131092bv64); + free requires (memory_load64_le(mem, 131056bv64) == 2324bv64); + free requires (memory_load64_le(mem, 131080bv64) == 131080bv64); ensures (memory_load32_le(mem, $x_addr) == 6bv32); ensures (memory_load32_le(mem, bvadd64($a_addr, 4bv64)) == 4bv32); ensures (memory_load32_le(mem, bvadd64($a_addr, 0bv64)) == 1bv32); - free ensures (memory_load32_le(mem, 1912bv64) == 131073bv32); - free ensures (memory_load64_le(mem, 69064bv64) == 1808bv64); - free ensures (memory_load64_le(mem, 69072bv64) == 1728bv64); - free ensures (memory_load64_le(mem, 69592bv64) == 1812bv64); - free ensures (memory_load64_le(mem, 69672bv64) == 69672bv64); - -implementation main_1812() + free ensures (memory_load32_le(mem, 2432bv64) == 131073bv32); + free ensures (memory_load64_le(mem, 130408bv64) == 2320bv64); + free ensures (memory_load64_le(mem, 130416bv64) == 2240bv64); + free ensures (memory_load64_le(mem, 131016bv64) == 131096bv64); + free ensures (memory_load64_le(mem, 131024bv64) == 131088bv64); + free ensures (memory_load64_le(mem, 131040bv64) == 131104bv64); + free ensures (memory_load64_le(mem, 131048bv64) == 131092bv64); + free ensures (memory_load64_le(mem, 131056bv64) == 2324bv64); + free ensures (memory_load64_le(mem, 131080bv64) == 131080bv64); + +implementation main() { - var #4: bv64; - var Gamma_#4: bool; - var Gamma_load18: bool; - var Gamma_load19: bool; - var Gamma_load20: bool; - var Gamma_load21: bool; - var load18: bv32; - var load19: bv64; - var load20: bv32; - var load21: bv8; + var $load$18: bv64; + var $load$19: bv64; + var $load$20: bv64; + var $load$21: bv32; + var $load$22: bv64; + var $load$23: bv64; + var $load$24: bv32; + var $load$25: bv8; + var Gamma_$load$18: bool; + var Gamma_$load$19: bool; + var Gamma_$load$20: bool; + var Gamma_$load$21: bool; + var Gamma_$load$22: bool; + var Gamma_$load$23: bool; + var Gamma_$load$24: bool; + var Gamma_$load$25: bool; lmain: assume {:captureState "lmain"} true; - R8, Gamma_R8 := 69632bv64, true; - R9, Gamma_R9 := 69632bv64, true; - R9, Gamma_R9 := bvadd64(R9, 64bv64), Gamma_R9; - R11, Gamma_R11 := 69632bv64, true; + R8, Gamma_R8 := 126976bv64, true; + R9, Gamma_R9 := 126976bv64, true; + R10, Gamma_R10 := 126976bv64, true; + call rely(); + $load$18, Gamma_$load$18 := memory_load64_le(mem, bvadd64(R8, 4048bv64)), (gamma_load64(Gamma_mem, bvadd64(R8, 4048bv64)) || L(mem, bvadd64(R8, 4048bv64))); + R8, Gamma_R8 := $load$18, Gamma_$load$18; call rely(); - load18, Gamma_load18 := memory_load32_le(mem, bvadd64(R11, 48bv64)), (gamma_load32(Gamma_mem, bvadd64(R11, 48bv64)) || L(mem, bvadd64(R11, 48bv64))); - R10, Gamma_R10 := zero_extend32_32(load18), Gamma_load18; - R10, Gamma_R10 := zero_extend32_32(bvadd32(R10[32:0], 1bv32)), Gamma_R10; + $load$19, Gamma_$load$19 := memory_load64_le(mem, bvadd64(R9, 4040bv64)), (gamma_load64(Gamma_mem, bvadd64(R9, 4040bv64)) || L(mem, bvadd64(R9, 4040bv64))); + R9, Gamma_R9 := $load$19, Gamma_$load$19; + call rely(); + $load$20, Gamma_$load$20 := memory_load64_le(mem, bvadd64(R10, 4064bv64)), (gamma_load64(Gamma_mem, bvadd64(R10, 4064bv64)) || L(mem, bvadd64(R10, 4064bv64))); + R10, Gamma_R10 := $load$20, Gamma_$load$20; + R12, Gamma_R12 := 126976bv64, true; + R0, Gamma_R0 := 0bv64, true; call rely(); - assert (L(mem, bvadd64(R11, 48bv64)) ==> Gamma_R10); - mem, Gamma_mem := memory_store32_le(mem, bvadd64(R11, 48bv64), R10[32:0]), gamma_store32(Gamma_mem, bvadd64(R11, 48bv64), Gamma_R10); - assume {:captureState "%00000322"} true; - R11, Gamma_R11 := 69632bv64, true; + $load$21, Gamma_$load$21 := memory_load32_le(mem, R8), (gamma_load32(Gamma_mem, R8) || L(mem, R8)); + R11, Gamma_R11 := zero_extend32_32($load$21), Gamma_$load$21; call rely(); - load19, Gamma_load19 := memory_load64_le(mem, bvadd64(R11, 56bv64)), (gamma_load64(Gamma_mem, bvadd64(R11, 56bv64)) || L(mem, bvadd64(R11, 56bv64))); - R10, Gamma_R10 := load19, Gamma_load19; - #4, Gamma_#4 := bvadd64(R10, 18446744073709551614bv64), Gamma_R10; - VF, Gamma_VF := bvnot1(bvcomp65(sign_extend1_64(bvadd64(#4, 1bv64)), bvadd65(sign_extend1_64(R10), 36893488147419103231bv65))), (Gamma_R10 && Gamma_#4); - CF, Gamma_CF := bvnot1(bvcomp65(zero_extend1_64(bvadd64(#4, 1bv64)), bvadd65(zero_extend1_64(R10), 18446744073709551615bv65))), (Gamma_R10 && Gamma_#4); - ZF, Gamma_ZF := bvcomp64(bvadd64(#4, 1bv64), 0bv64), Gamma_#4; - NF, Gamma_NF := bvadd64(#4, 1bv64)[64:63], Gamma_#4; - R10, Gamma_R10 := bvadd64(#4, 1bv64), Gamma_#4; + $load$22, Gamma_$load$22 := memory_load64_le(mem, bvadd64(R12, 4072bv64)), (gamma_load64(Gamma_mem, bvadd64(R12, 4072bv64)) || L(mem, bvadd64(R12, 4072bv64))); + R12, Gamma_R12 := $load$22, Gamma_$load$22; call rely(); - assert (L(mem, bvadd64(R11, 56bv64)) ==> Gamma_R10); - mem, Gamma_mem := memory_store64_le(mem, bvadd64(R11, 56bv64), R10), gamma_store64(Gamma_mem, bvadd64(R11, 56bv64), Gamma_R10); - assume {:captureState "%00000352"} true; + $load$23, Gamma_$load$23 := memory_load64_le(mem, R9), (gamma_load64(Gamma_mem, R9) || L(mem, R9)); + R13, Gamma_R13 := $load$23, Gamma_$load$23; call rely(); - load20, Gamma_load20 := memory_load32_le(mem, bvadd64(R8, 64bv64)), (gamma_load32(Gamma_mem, bvadd64(R8, 64bv64)) || L(mem, bvadd64(R8, 64bv64))); - R8, Gamma_R8 := zero_extend32_32(load20), Gamma_load20; - R8, Gamma_R8 := zero_extend32_32(bvadd32(R8[32:0], 3bv32)), Gamma_R8; + $load$24, Gamma_$load$24 := memory_load32_le(mem, R10), (gamma_load32(Gamma_mem, R10) || L(mem, R10)); + R14, Gamma_R14 := zero_extend32_32($load$24), Gamma_$load$24; + R11, Gamma_R11 := zero_extend32_32(bvadd32(R11[32:0], 1bv32)), Gamma_R11; call rely(); - assert (L(mem, bvadd64(R9, 4bv64)) ==> Gamma_R8); - mem, Gamma_mem := memory_store32_le(mem, bvadd64(R9, 4bv64), R8[32:0]), gamma_store32(Gamma_mem, bvadd64(R9, 4bv64), Gamma_R8); - assume {:captureState "%00000367"} true; - R9, Gamma_R9 := 69632bv64, true; + assert (L(mem, R8) ==> Gamma_R11); + mem, Gamma_mem := memory_store32_le(mem, R8, R11[32:0]), gamma_store32(Gamma_mem, R8, Gamma_R11); + assume {:captureState "%000002b0"} true; call rely(); - load21, Gamma_load21 := memory_load8_le(mem, bvadd64(R9, 52bv64)), (gamma_load8(Gamma_mem, bvadd64(R9, 52bv64)) || L(mem, bvadd64(R9, 52bv64))); - R8, Gamma_R8 := zero_extend56_8(load21), Gamma_load21; + $load$25, Gamma_$load$25 := memory_load8_le(mem, R12), (gamma_load8(Gamma_mem, R12) || L(mem, R12)); + R8, Gamma_R8 := zero_extend56_8($load$25), Gamma_$load$25; + R11, Gamma_R11 := bvadd64(R13, 18446744073709551615bv64), Gamma_R13; + call rely(); + assert (L(mem, R9) ==> Gamma_R11); + mem, Gamma_mem := memory_store64_le(mem, R9, R11), gamma_store64(Gamma_mem, R9, Gamma_R11); + assume {:captureState "%000002bc"} true; + R9, Gamma_R9 := zero_extend32_32(bvadd32(R14[32:0], 3bv32)), Gamma_R14; R8, Gamma_R8 := zero_extend32_32(bvadd32(R8[32:0], 1bv32)), Gamma_R8; call rely(); - assert (L(mem, bvadd64(R9, 52bv64)) ==> Gamma_R8); - mem, Gamma_mem := memory_store8_le(mem, bvadd64(R9, 52bv64), R8[8:0]), gamma_store8(Gamma_mem, bvadd64(R9, 52bv64), Gamma_R8); - assume {:captureState "%00000381"} true; - R0, Gamma_R0 := 0bv64, true; - goto main_1812_basil_return; - main_1812_basil_return: - assume {:captureState "main_1812_basil_return"} true; + assert (L(mem, bvadd64(R10, 4bv64)) ==> Gamma_R9); + mem, Gamma_mem := memory_store32_le(mem, bvadd64(R10, 4bv64), R9[32:0]), gamma_store32(Gamma_mem, bvadd64(R10, 4bv64), Gamma_R9); + assume {:captureState "%000002c8"} true; + call rely(); + assert (L(mem, R12) ==> Gamma_R8); + mem, Gamma_mem := memory_store8_le(mem, R12, R8[8:0]), gamma_store8(Gamma_mem, R12, Gamma_R8); + assume {:captureState "%000002cc"} true; + goto main_basil_return; + main_basil_return: + assume {:captureState "main_basil_return"} true; return; } diff --git a/src/test/correct/initialisation/clang/initialisation.gts b/src/test/correct/initialisation/clang/initialisation.gts deleted file mode 100644 index 9c5c8b012..000000000 Binary files a/src/test/correct/initialisation/clang/initialisation.gts and /dev/null differ diff --git a/src/test/correct/initialisation/clang/initialisation.md5sum b/src/test/correct/initialisation/clang/initialisation.md5sum new file mode 100644 index 000000000..73141107f --- /dev/null +++ b/src/test/correct/initialisation/clang/initialisation.md5sum @@ -0,0 +1,5 @@ +f6660f9d06c9d114d80e0f68ebd4f1cd correct/initialisation/clang/a.out +a30612d8f92b181119e4321584f2f4b1 correct/initialisation/clang/initialisation.adt +00eb981aca0a548db1327b2d7bd13a6a correct/initialisation/clang/initialisation.bir +0cc654a10c916cd69378d9b309716876 correct/initialisation/clang/initialisation.relf +bb6037968283b3e5a8424258512481ad correct/initialisation/clang/initialisation.gts diff --git a/src/test/correct/initialisation/clang/initialisation.relf b/src/test/correct/initialisation/clang/initialisation.relf deleted file mode 100644 index d2449ebc8..000000000 --- a/src/test/correct/initialisation/clang/initialisation.relf +++ /dev/null @@ -1,126 +0,0 @@ - -Relocation section '.rela.dyn' at offset 0x460 contains 8 entries: - Offset Info Type Symbol's Value Symbol's Name + Addend -0000000000010dc8 0000000000000403 R_AARCH64_RELATIVE 710 -0000000000010dd0 0000000000000403 R_AARCH64_RELATIVE 6c0 -0000000000010fd8 0000000000000403 R_AARCH64_RELATIVE 714 -0000000000011028 0000000000000403 R_AARCH64_RELATIVE 11028 -0000000000010fc0 0000000400000401 R_AARCH64_GLOB_DAT 0000000000000000 _ITM_deregisterTMCloneTable + 0 -0000000000010fc8 0000000500000401 R_AARCH64_GLOB_DAT 0000000000000000 __cxa_finalize@GLIBC_2.17 + 0 -0000000000010fd0 0000000600000401 R_AARCH64_GLOB_DAT 0000000000000000 __gmon_start__ + 0 -0000000000010fe0 0000000800000401 R_AARCH64_GLOB_DAT 0000000000000000 _ITM_registerTMCloneTable + 0 - -Relocation section '.rela.plt' at offset 0x520 contains 4 entries: - Offset Info Type Symbol's Value Symbol's Name + Addend -0000000000011000 0000000300000402 R_AARCH64_JUMP_SLOT 0000000000000000 __libc_start_main@GLIBC_2.34 + 0 -0000000000011008 0000000500000402 R_AARCH64_JUMP_SLOT 0000000000000000 __cxa_finalize@GLIBC_2.17 + 0 -0000000000011010 0000000600000402 R_AARCH64_JUMP_SLOT 0000000000000000 __gmon_start__ + 0 -0000000000011018 0000000700000402 R_AARCH64_JUMP_SLOT 0000000000000000 abort@GLIBC_2.17 + 0 - -Symbol table '.dynsym' contains 9 entries: - Num: Value Size Type Bind Vis Ndx Name - 0: 0000000000000000 0 NOTYPE LOCAL DEFAULT UND - 1: 0000000000000580 0 SECTION LOCAL DEFAULT 11 .init - 2: 0000000000011020 0 SECTION LOCAL DEFAULT 23 .data - 3: 0000000000000000 0 FUNC GLOBAL DEFAULT UND __libc_start_main@GLIBC_2.34 (2) - 4: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_deregisterTMCloneTable - 5: 0000000000000000 0 FUNC WEAK DEFAULT UND __cxa_finalize@GLIBC_2.17 (3) - 6: 0000000000000000 0 NOTYPE WEAK DEFAULT UND __gmon_start__ - 7: 0000000000000000 0 FUNC GLOBAL DEFAULT UND abort@GLIBC_2.17 (3) - 8: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_registerTMCloneTable - -Symbol table '.symtab' contains 93 entries: - Num: Value Size Type Bind Vis Ndx Name - 0: 0000000000000000 0 NOTYPE LOCAL DEFAULT UND - 1: 0000000000000238 0 SECTION LOCAL DEFAULT 1 .interp - 2: 0000000000000254 0 SECTION LOCAL DEFAULT 2 .note.gnu.build-id - 3: 0000000000000278 0 SECTION LOCAL DEFAULT 3 .note.ABI-tag - 4: 0000000000000298 0 SECTION LOCAL DEFAULT 4 .gnu.hash - 5: 00000000000002b8 0 SECTION LOCAL DEFAULT 5 .dynsym - 6: 0000000000000390 0 SECTION LOCAL DEFAULT 6 .dynstr - 7: 000000000000041e 0 SECTION LOCAL DEFAULT 7 .gnu.version - 8: 0000000000000430 0 SECTION LOCAL DEFAULT 8 .gnu.version_r - 9: 0000000000000460 0 SECTION LOCAL DEFAULT 9 .rela.dyn - 10: 0000000000000520 0 SECTION LOCAL DEFAULT 10 .rela.plt - 11: 0000000000000580 0 SECTION LOCAL DEFAULT 11 .init - 12: 00000000000005a0 0 SECTION LOCAL DEFAULT 12 .plt - 13: 0000000000000600 0 SECTION LOCAL DEFAULT 13 .text - 14: 0000000000000764 0 SECTION LOCAL DEFAULT 14 .fini - 15: 0000000000000778 0 SECTION LOCAL DEFAULT 15 .rodata - 16: 000000000000077c 0 SECTION LOCAL DEFAULT 16 .eh_frame_hdr - 17: 00000000000007b8 0 SECTION LOCAL DEFAULT 17 .eh_frame - 18: 0000000000010dc8 0 SECTION LOCAL DEFAULT 18 .init_array - 19: 0000000000010dd0 0 SECTION LOCAL DEFAULT 19 .fini_array - 20: 0000000000010dd8 0 SECTION LOCAL DEFAULT 20 .dynamic - 21: 0000000000010fb8 0 SECTION LOCAL DEFAULT 21 .got - 22: 0000000000010fe8 0 SECTION LOCAL DEFAULT 22 .got.plt - 23: 0000000000011020 0 SECTION LOCAL DEFAULT 23 .data - 24: 0000000000011048 0 SECTION LOCAL DEFAULT 24 .bss - 25: 0000000000000000 0 SECTION LOCAL DEFAULT 25 .comment - 26: 0000000000000000 0 FILE LOCAL DEFAULT ABS Scrt1.o - 27: 0000000000000278 0 NOTYPE LOCAL DEFAULT 3 $d - 28: 0000000000000278 32 OBJECT LOCAL DEFAULT 3 __abi_tag - 29: 0000000000000600 0 NOTYPE LOCAL DEFAULT 13 $x - 30: 00000000000007cc 0 NOTYPE LOCAL DEFAULT 17 $d - 31: 0000000000000778 0 NOTYPE LOCAL DEFAULT 15 $d - 32: 0000000000000000 0 FILE LOCAL DEFAULT ABS crti.o - 33: 0000000000000634 0 NOTYPE LOCAL DEFAULT 13 $x - 34: 0000000000000634 20 FUNC LOCAL DEFAULT 13 call_weak_fn - 35: 0000000000000580 0 NOTYPE LOCAL DEFAULT 11 $x - 36: 0000000000000764 0 NOTYPE LOCAL DEFAULT 14 $x - 37: 0000000000000000 0 FILE LOCAL DEFAULT ABS crtn.o - 38: 0000000000000590 0 NOTYPE LOCAL DEFAULT 11 $x - 39: 0000000000000770 0 NOTYPE LOCAL DEFAULT 14 $x - 40: 0000000000000000 0 FILE LOCAL DEFAULT ABS crtstuff.c - 41: 0000000000000650 0 NOTYPE LOCAL DEFAULT 13 $x - 42: 0000000000000650 0 FUNC LOCAL DEFAULT 13 deregister_tm_clones - 43: 0000000000000680 0 FUNC LOCAL DEFAULT 13 register_tm_clones - 44: 0000000000011028 0 NOTYPE LOCAL DEFAULT 23 $d - 45: 00000000000006c0 0 FUNC LOCAL DEFAULT 13 __do_global_dtors_aux - 46: 0000000000011048 1 OBJECT LOCAL DEFAULT 24 completed.0 - 47: 0000000000010dd0 0 NOTYPE LOCAL DEFAULT 19 $d - 48: 0000000000010dd0 0 OBJECT LOCAL DEFAULT 19 __do_global_dtors_aux_fini_array_entry - 49: 0000000000000710 0 FUNC LOCAL DEFAULT 13 frame_dummy - 50: 0000000000010dc8 0 NOTYPE LOCAL DEFAULT 18 $d - 51: 0000000000010dc8 0 OBJECT LOCAL DEFAULT 18 __frame_dummy_init_array_entry - 52: 00000000000007e0 0 NOTYPE LOCAL DEFAULT 17 $d - 53: 0000000000011048 0 NOTYPE LOCAL DEFAULT 24 $d - 54: 0000000000000000 0 FILE LOCAL DEFAULT ABS initialisation.c - 55: 0000000000000714 0 NOTYPE LOCAL DEFAULT 13 $x.0 - 56: 0000000000011030 0 NOTYPE LOCAL DEFAULT 23 $d.1 - 57: 000000000000002a 0 NOTYPE LOCAL DEFAULT 25 $d.2 - 58: 0000000000000840 0 NOTYPE LOCAL DEFAULT 17 $d.3 - 59: 0000000000000000 0 FILE LOCAL DEFAULT ABS crtstuff.c - 60: 0000000000000868 0 NOTYPE LOCAL DEFAULT 17 $d - 61: 0000000000000868 0 OBJECT LOCAL DEFAULT 17 __FRAME_END__ - 62: 0000000000000000 0 FILE LOCAL DEFAULT ABS - 63: 0000000000010dd8 0 OBJECT LOCAL DEFAULT ABS _DYNAMIC - 64: 000000000000077c 0 NOTYPE LOCAL DEFAULT 16 __GNU_EH_FRAME_HDR - 65: 0000000000010fb8 0 OBJECT LOCAL DEFAULT ABS _GLOBAL_OFFSET_TABLE_ - 66: 00000000000005a0 0 NOTYPE LOCAL DEFAULT 12 $x - 67: 0000000000000000 0 FUNC GLOBAL DEFAULT UND __libc_start_main@GLIBC_2.34 - 68: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_deregisterTMCloneTable - 69: 0000000000011020 0 NOTYPE WEAK DEFAULT 23 data_start - 70: 0000000000011048 0 NOTYPE GLOBAL DEFAULT 24 __bss_start__ - 71: 0000000000000000 0 FUNC WEAK DEFAULT UND __cxa_finalize@GLIBC_2.17 - 72: 0000000000011050 0 NOTYPE GLOBAL DEFAULT 24 _bss_end__ - 73: 0000000000011048 0 NOTYPE GLOBAL DEFAULT 23 _edata - 74: 0000000000011038 8 OBJECT GLOBAL DEFAULT 23 z - 75: 0000000000011030 4 OBJECT GLOBAL DEFAULT 23 x - 76: 0000000000000764 0 FUNC GLOBAL HIDDEN 14 _fini - 77: 0000000000011050 0 NOTYPE GLOBAL DEFAULT 24 __bss_end__ - 78: 0000000000011020 0 NOTYPE GLOBAL DEFAULT 23 __data_start - 79: 0000000000000000 0 NOTYPE WEAK DEFAULT UND __gmon_start__ - 80: 0000000000011028 0 OBJECT GLOBAL HIDDEN 23 __dso_handle - 81: 0000000000000000 0 FUNC GLOBAL DEFAULT UND abort@GLIBC_2.17 - 82: 0000000000000778 4 OBJECT GLOBAL DEFAULT 15 _IO_stdin_used - 83: 0000000000011050 0 NOTYPE GLOBAL DEFAULT 24 _end - 84: 0000000000000600 52 FUNC GLOBAL DEFAULT 13 _start - 85: 0000000000011040 8 OBJECT GLOBAL DEFAULT 23 a - 86: 0000000000011050 0 NOTYPE GLOBAL DEFAULT 24 __end__ - 87: 0000000000011034 1 OBJECT GLOBAL DEFAULT 23 y - 88: 0000000000011048 0 NOTYPE GLOBAL DEFAULT 24 __bss_start - 89: 0000000000000714 80 FUNC GLOBAL DEFAULT 13 main - 90: 0000000000011048 0 OBJECT GLOBAL HIDDEN 23 __TMC_END__ - 91: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_registerTMCloneTable - 92: 0000000000000580 0 FUNC GLOBAL HIDDEN 11 _init diff --git a/src/test/correct/initialisation/clang/initialisation_gtirb.expected b/src/test/correct/initialisation/clang/initialisation_gtirb.expected index c7072f6ad..212c6c33b 100644 --- a/src/test/correct/initialisation/clang/initialisation_gtirb.expected +++ b/src/test/correct/initialisation/clang/initialisation_gtirb.expected @@ -1,41 +1,35 @@ -var {:extern} CF: bv1; -var {:extern} Gamma_CF: bool; -var {:extern} Gamma_NF: bool; var {:extern} Gamma_R0: bool; var {:extern} Gamma_R10: bool; var {:extern} Gamma_R11: bool; +var {:extern} Gamma_R12: bool; +var {:extern} Gamma_R13: bool; +var {:extern} Gamma_R14: bool; var {:extern} Gamma_R8: bool; var {:extern} Gamma_R9: bool; -var {:extern} Gamma_VF: bool; -var {:extern} Gamma_ZF: bool; var {:extern} Gamma_mem: [bv64]bool; -var {:extern} NF: bv1; var {:extern} R0: bv64; var {:extern} R10: bv64; var {:extern} R11: bv64; +var {:extern} R12: bv64; +var {:extern} R13: bv64; +var {:extern} R14: bv64; var {:extern} R8: bv64; var {:extern} R9: bv64; -var {:extern} VF: bv1; -var {:extern} ZF: bv1; var {:extern} mem: [bv64]bv8; const {:extern} $a_addr: bv64; -axiom ($a_addr == 69696bv64); +axiom ($a_addr == 131104bv64); const {:extern} $x_addr: bv64; -axiom ($x_addr == 69680bv64); +axiom ($x_addr == 131088bv64); const {:extern} $y_addr: bv64; -axiom ($y_addr == 69684bv64); +axiom ($y_addr == 131092bv64); const {:extern} $z_addr: bv64; -axiom ($z_addr == 69688bv64); +axiom ($z_addr == 131096bv64); function {:extern} L(mem$in: [bv64]bv8, index: bv64) returns (bool) { false } function {:extern} {:bvbuiltin "bvadd"} bvadd32(bv32, bv32) returns (bv32); function {:extern} {:bvbuiltin "bvadd"} bvadd64(bv64, bv64) returns (bv64); -function {:extern} {:bvbuiltin "bvadd"} bvadd65(bv65, bv65) returns (bv65); -function {:extern} {:bvbuiltin "bvcomp"} bvcomp64(bv64, bv64) returns (bv1); -function {:extern} {:bvbuiltin "bvcomp"} bvcomp65(bv65, bv65) returns (bv1); -function {:extern} {:bvbuiltin "bvnot"} bvnot1(bv1) returns (bv1); function {:extern} gamma_load32(gammaMap: [bv64]bool, index: bv64) returns (bool) { (gammaMap[bvadd64(index, 3bv64)] && (gammaMap[bvadd64(index, 2bv64)] && (gammaMap[bvadd64(index, 1bv64)] && gammaMap[index]))) } @@ -84,19 +78,21 @@ function {:extern} memory_store8_le(memory: [bv64]bv8, index: bv64, value: bv8) memory[index := value[8:0]] } -function {:extern} {:bvbuiltin "sign_extend 1"} sign_extend1_64(bv64) returns (bv65); -function {:extern} {:bvbuiltin "zero_extend 1"} zero_extend1_64(bv64) returns (bv65); function {:extern} {:bvbuiltin "zero_extend 24"} zero_extend24_8(bv8) returns (bv32); function {:extern} {:bvbuiltin "zero_extend 32"} zero_extend32_32(bv32) returns (bv64); procedure {:extern} rely(); modifies Gamma_mem, mem; ensures (Gamma_mem == old(Gamma_mem)); ensures (mem == old(mem)); - free ensures (memory_load32_le(mem, 1912bv64) == 131073bv32); - free ensures (memory_load64_le(mem, 69064bv64) == 1808bv64); - free ensures (memory_load64_le(mem, 69072bv64) == 1728bv64); - free ensures (memory_load64_le(mem, 69592bv64) == 1812bv64); - free ensures (memory_load64_le(mem, 69672bv64) == 69672bv64); + free ensures (memory_load32_le(mem, 2432bv64) == 131073bv32); + free ensures (memory_load64_le(mem, 130408bv64) == 2320bv64); + free ensures (memory_load64_le(mem, 130416bv64) == 2240bv64); + free ensures (memory_load64_le(mem, 131016bv64) == 131096bv64); + free ensures (memory_load64_le(mem, 131024bv64) == 131088bv64); + free ensures (memory_load64_le(mem, 131040bv64) == 131104bv64); + free ensures (memory_load64_le(mem, 131048bv64) == 131092bv64); + free ensures (memory_load64_le(mem, 131056bv64) == 2324bv64); + free ensures (memory_load64_le(mem, 131080bv64) == 131080bv64); procedure {:extern} rely_transitive(); modifies Gamma_mem, mem; @@ -114,88 +110,107 @@ procedure {:extern} rely_reflexive(); procedure {:extern} guarantee_reflexive(); modifies Gamma_mem, mem; -procedure main_1812(); - modifies CF, Gamma_CF, Gamma_NF, Gamma_R0, Gamma_R10, Gamma_R11, Gamma_R8, Gamma_R9, Gamma_VF, Gamma_ZF, Gamma_mem, NF, R0, R10, R11, R8, R9, VF, ZF, mem; - free requires (memory_load64_le(mem, 69664bv64) == 0bv64); - free requires (memory_load64_le(mem, 69672bv64) == 69672bv64); - free requires (memory_load64_le(mem, 69680bv64) == 416611827717bv64); - free requires (memory_load64_le(mem, 69688bv64) == 68719476735bv64); - free requires (memory_load64_le(mem, 69696bv64) == 8589934593bv64); - free requires (memory_load32_le(mem, 1912bv64) == 131073bv32); - free requires (memory_load64_le(mem, 69064bv64) == 1808bv64); - free requires (memory_load64_le(mem, 69072bv64) == 1728bv64); - free requires (memory_load64_le(mem, 69592bv64) == 1812bv64); - free requires (memory_load64_le(mem, 69672bv64) == 69672bv64); +procedure main(); + modifies Gamma_R0, Gamma_R10, Gamma_R11, Gamma_R12, Gamma_R13, Gamma_R14, Gamma_R8, Gamma_R9, Gamma_mem, R0, R10, R11, R12, R13, R14, R8, R9, mem; + free requires (memory_load64_le(mem, 131072bv64) == 0bv64); + free requires (memory_load64_le(mem, 131080bv64) == 131080bv64); + free requires (memory_load64_le(mem, 131088bv64) == 416611827717bv64); + free requires (memory_load64_le(mem, 131096bv64) == 68719476735bv64); + free requires (memory_load64_le(mem, 131104bv64) == 8589934593bv64); + free requires (memory_load32_le(mem, 2432bv64) == 131073bv32); + free requires (memory_load64_le(mem, 130408bv64) == 2320bv64); + free requires (memory_load64_le(mem, 130416bv64) == 2240bv64); + free requires (memory_load64_le(mem, 131016bv64) == 131096bv64); + free requires (memory_load64_le(mem, 131024bv64) == 131088bv64); + free requires (memory_load64_le(mem, 131040bv64) == 131104bv64); + free requires (memory_load64_le(mem, 131048bv64) == 131092bv64); + free requires (memory_load64_le(mem, 131056bv64) == 2324bv64); + free requires (memory_load64_le(mem, 131080bv64) == 131080bv64); ensures (memory_load32_le(mem, $x_addr) == 6bv32); ensures (memory_load32_le(mem, bvadd64($a_addr, 4bv64)) == 4bv32); ensures (memory_load32_le(mem, bvadd64($a_addr, 0bv64)) == 1bv32); - free ensures (memory_load32_le(mem, 1912bv64) == 131073bv32); - free ensures (memory_load64_le(mem, 69064bv64) == 1808bv64); - free ensures (memory_load64_le(mem, 69072bv64) == 1728bv64); - free ensures (memory_load64_le(mem, 69592bv64) == 1812bv64); - free ensures (memory_load64_le(mem, 69672bv64) == 69672bv64); - -implementation main_1812() + free ensures (memory_load32_le(mem, 2432bv64) == 131073bv32); + free ensures (memory_load64_le(mem, 130408bv64) == 2320bv64); + free ensures (memory_load64_le(mem, 130416bv64) == 2240bv64); + free ensures (memory_load64_le(mem, 131016bv64) == 131096bv64); + free ensures (memory_load64_le(mem, 131024bv64) == 131088bv64); + free ensures (memory_load64_le(mem, 131040bv64) == 131104bv64); + free ensures (memory_load64_le(mem, 131048bv64) == 131092bv64); + free ensures (memory_load64_le(mem, 131056bv64) == 2324bv64); + free ensures (memory_load64_le(mem, 131080bv64) == 131080bv64); + +implementation main() { - var Cse0__5_0_9: bv64; - var Gamma_Cse0__5_0_9: bool; - var Gamma_load6: bool; - var Gamma_load7: bool; - var Gamma_load8: bool; - var Gamma_load9: bool; - var load6: bv32; - var load7: bv64; - var load8: bv32; - var load9: bv8; - main_1812__0__bXjOvzBIQmSVnOWXdNnWZA: - assume {:captureState "main_1812__0__bXjOvzBIQmSVnOWXdNnWZA"} true; - R8, Gamma_R8 := 69632bv64, true; - R9, Gamma_R9 := 69632bv64, true; - R9, Gamma_R9 := bvadd64(R9, 64bv64), Gamma_R9; - R11, Gamma_R11 := 69632bv64, true; + var $load18: bv64; + var $load19: bv64; + var $load20: bv64; + var $load21: bv32; + var $load22: bv64; + var $load23: bv64; + var $load24: bv32; + var $load25: bv8; + var Gamma_$load18: bool; + var Gamma_$load19: bool; + var Gamma_$load20: bool; + var Gamma_$load21: bool; + var Gamma_$load22: bool; + var Gamma_$load23: bool; + var Gamma_$load24: bool; + var Gamma_$load25: bool; + $main$__0__$mmpaLvZYQk2b8selWCLriA: + assume {:captureState "$main$__0__$mmpaLvZYQk2b8selWCLriA"} true; + R8, Gamma_R8 := 126976bv64, true; + R9, Gamma_R9 := 126976bv64, true; + R10, Gamma_R10 := 126976bv64, true; + call rely(); + $load18, Gamma_$load18 := memory_load64_le(mem, bvadd64(R8, 4048bv64)), (gamma_load64(Gamma_mem, bvadd64(R8, 4048bv64)) || L(mem, bvadd64(R8, 4048bv64))); + R8, Gamma_R8 := $load18, Gamma_$load18; call rely(); - load6, Gamma_load6 := memory_load32_le(mem, bvadd64(R11, 48bv64)), (gamma_load32(Gamma_mem, bvadd64(R11, 48bv64)) || L(mem, bvadd64(R11, 48bv64))); - R10, Gamma_R10 := zero_extend32_32(load6), Gamma_load6; - R10, Gamma_R10 := zero_extend32_32(bvadd32(R10[32:0], 1bv32)), Gamma_R10; + $load19, Gamma_$load19 := memory_load64_le(mem, bvadd64(R9, 4040bv64)), (gamma_load64(Gamma_mem, bvadd64(R9, 4040bv64)) || L(mem, bvadd64(R9, 4040bv64))); + R9, Gamma_R9 := $load19, Gamma_$load19; + call rely(); + $load20, Gamma_$load20 := memory_load64_le(mem, bvadd64(R10, 4064bv64)), (gamma_load64(Gamma_mem, bvadd64(R10, 4064bv64)) || L(mem, bvadd64(R10, 4064bv64))); + R10, Gamma_R10 := $load20, Gamma_$load20; + R12, Gamma_R12 := 126976bv64, true; + R0, Gamma_R0 := 0bv64, true; call rely(); - assert (L(mem, bvadd64(R11, 48bv64)) ==> Gamma_R10); - mem, Gamma_mem := memory_store32_le(mem, bvadd64(R11, 48bv64), R10[32:0]), gamma_store32(Gamma_mem, bvadd64(R11, 48bv64), Gamma_R10); - assume {:captureState "1836_0"} true; - R11, Gamma_R11 := 69632bv64, true; + $load21, Gamma_$load21 := memory_load32_le(mem, R8), (gamma_load32(Gamma_mem, R8) || L(mem, R8)); + R11, Gamma_R11 := zero_extend32_32($load21), Gamma_$load21; call rely(); - load7, Gamma_load7 := memory_load64_le(mem, bvadd64(R11, 56bv64)), (gamma_load64(Gamma_mem, bvadd64(R11, 56bv64)) || L(mem, bvadd64(R11, 56bv64))); - R10, Gamma_R10 := load7, Gamma_load7; - Cse0__5_0_9, Gamma_Cse0__5_0_9 := bvadd64(R10, 18446744073709551615bv64), Gamma_R10; - VF, Gamma_VF := bvnot1(bvcomp65(sign_extend1_64(Cse0__5_0_9), bvadd65(sign_extend1_64(R10), 36893488147419103231bv65))), (Gamma_R10 && Gamma_Cse0__5_0_9); - CF, Gamma_CF := bvnot1(bvcomp65(zero_extend1_64(Cse0__5_0_9), bvadd65(zero_extend1_64(R10), 18446744073709551615bv65))), (Gamma_R10 && Gamma_Cse0__5_0_9); - ZF, Gamma_ZF := bvcomp64(Cse0__5_0_9, 0bv64), Gamma_Cse0__5_0_9; - NF, Gamma_NF := Cse0__5_0_9[64:63], Gamma_Cse0__5_0_9; - R10, Gamma_R10 := Cse0__5_0_9, Gamma_Cse0__5_0_9; + $load22, Gamma_$load22 := memory_load64_le(mem, bvadd64(R12, 4072bv64)), (gamma_load64(Gamma_mem, bvadd64(R12, 4072bv64)) || L(mem, bvadd64(R12, 4072bv64))); + R12, Gamma_R12 := $load22, Gamma_$load22; call rely(); - assert (L(mem, bvadd64(R11, 56bv64)) ==> Gamma_R10); - mem, Gamma_mem := memory_store64_le(mem, bvadd64(R11, 56bv64), R10), gamma_store64(Gamma_mem, bvadd64(R11, 56bv64), Gamma_R10); - assume {:captureState "1852_0"} true; + $load23, Gamma_$load23 := memory_load64_le(mem, R9), (gamma_load64(Gamma_mem, R9) || L(mem, R9)); + R13, Gamma_R13 := $load23, Gamma_$load23; call rely(); - load8, Gamma_load8 := memory_load32_le(mem, bvadd64(R8, 64bv64)), (gamma_load32(Gamma_mem, bvadd64(R8, 64bv64)) || L(mem, bvadd64(R8, 64bv64))); - R8, Gamma_R8 := zero_extend32_32(load8), Gamma_load8; - R8, Gamma_R8 := zero_extend32_32(bvadd32(R8[32:0], 3bv32)), Gamma_R8; + $load24, Gamma_$load24 := memory_load32_le(mem, R10), (gamma_load32(Gamma_mem, R10) || L(mem, R10)); + R14, Gamma_R14 := zero_extend32_32($load24), Gamma_$load24; + R11, Gamma_R11 := zero_extend32_32(bvadd32(R11[32:0], 1bv32)), Gamma_R11; call rely(); - assert (L(mem, bvadd64(R9, 4bv64)) ==> Gamma_R8); - mem, Gamma_mem := memory_store32_le(mem, bvadd64(R9, 4bv64), R8[32:0]), gamma_store32(Gamma_mem, bvadd64(R9, 4bv64), Gamma_R8); - assume {:captureState "1864_0"} true; - R9, Gamma_R9 := 69632bv64, true; + assert (L(mem, R8) ==> Gamma_R11); + mem, Gamma_mem := memory_store32_le(mem, R8, R11[32:0]), gamma_store32(Gamma_mem, R8, Gamma_R11); + assume {:captureState "2376$0"} true; call rely(); - load9, Gamma_load9 := memory_load8_le(mem, bvadd64(R9, 52bv64)), (gamma_load8(Gamma_mem, bvadd64(R9, 52bv64)) || L(mem, bvadd64(R9, 52bv64))); - R8, Gamma_R8 := zero_extend32_32(zero_extend24_8(load9)), Gamma_load9; + $load25, Gamma_$load25 := memory_load8_le(mem, R12), (gamma_load8(Gamma_mem, R12) || L(mem, R12)); + R8, Gamma_R8 := zero_extend32_32(zero_extend24_8($load25)), Gamma_$load25; + R11, Gamma_R11 := bvadd64(R13, 18446744073709551615bv64), Gamma_R13; + call rely(); + assert (L(mem, R9) ==> Gamma_R11); + mem, Gamma_mem := memory_store64_le(mem, R9, R11), gamma_store64(Gamma_mem, R9, Gamma_R11); + assume {:captureState "2388$0"} true; + R9, Gamma_R9 := zero_extend32_32(bvadd32(R14[32:0], 3bv32)), Gamma_R14; R8, Gamma_R8 := zero_extend32_32(bvadd32(R8[32:0], 1bv32)), Gamma_R8; call rely(); - assert (L(mem, bvadd64(R9, 52bv64)) ==> Gamma_R8); - mem, Gamma_mem := memory_store8_le(mem, bvadd64(R9, 52bv64), R8[8:0]), gamma_store8(Gamma_mem, bvadd64(R9, 52bv64), Gamma_R8); - assume {:captureState "1880_0"} true; - R0, Gamma_R0 := 0bv64, true; - goto main_1812_basil_return; - main_1812_basil_return: - assume {:captureState "main_1812_basil_return"} true; + assert (L(mem, bvadd64(R10, 4bv64)) ==> Gamma_R9); + mem, Gamma_mem := memory_store32_le(mem, bvadd64(R10, 4bv64), R9[32:0]), gamma_store32(Gamma_mem, bvadd64(R10, 4bv64), Gamma_R9); + assume {:captureState "2400$0"} true; + call rely(); + assert (L(mem, R12) ==> Gamma_R8); + mem, Gamma_mem := memory_store8_le(mem, R12, R8[8:0]), gamma_store8(Gamma_mem, R12, Gamma_R8); + assume {:captureState "2404$0"} true; + goto main_basil_return; + main_basil_return: + assume {:captureState "main_basil_return"} true; return; } diff --git a/src/test/correct/initialisation/clang_O2/initialisation.adt b/src/test/correct/initialisation/clang_O2/initialisation.adt deleted file mode 100644 index f5c8c6803..000000000 --- a/src/test/correct/initialisation/clang_O2/initialisation.adt +++ /dev/null @@ -1,531 +0,0 @@ -Project(Attrs([Attr("filename","\"clang_O2/initialisation.out\""), -Attr("image-specification","(declare abi (name str))\n(declare arch (name str))\n(declare base-address (addr int))\n(declare bias (off int))\n(declare bits (size int))\n(declare code-region (addr int) (size int) (off int))\n(declare code-start (addr int))\n(declare entry-point (addr int))\n(declare external-reference (addr int) (name str))\n(declare format (name str))\n(declare is-executable (flag bool))\n(declare is-little-endian (flag bool))\n(declare llvm:base-address (addr int))\n(declare llvm:code-entry (name str) (off int) (size int))\n(declare llvm:coff-import-library (name str))\n(declare llvm:coff-virtual-section-header (name str) (addr int) (size int))\n(declare llvm:elf-program-header (name str) (off int) (size int))\n(declare llvm:elf-program-header-flags (name str) (ld bool) (r bool) \n (w bool) (x bool))\n(declare llvm:elf-virtual-program-header (name str) (addr int) (size int))\n(declare llvm:entry-point (addr int))\n(declare llvm:macho-symbol (name str) (value int))\n(declare llvm:name-reference (at int) (name str))\n(declare llvm:relocation (at int) (addr int))\n(declare llvm:section-entry (name str) (addr int) (size int) (off int))\n(declare llvm:section-flags (name str) (r bool) (w bool) (x bool))\n(declare llvm:segment-command (name str) (off int) (size int))\n(declare llvm:segment-command-flags (name str) (r bool) (w bool) (x bool))\n(declare llvm:symbol-entry (name str) (addr int) (size int) (off int)\n (value int))\n(declare llvm:virtual-segment-command (name str) (addr int) (size int))\n(declare mapped (addr int) (size int) (off int))\n(declare named-region (addr int) (size int) (name str))\n(declare named-symbol (addr int) (name str))\n(declare require (name str))\n(declare section (addr int) (size int))\n(declare segment (addr int) (size int) (r bool) (w bool) (x bool))\n(declare subarch (name str))\n(declare symbol-chunk (addr int) (size int) (root int))\n(declare symbol-value (addr int) (value int))\n(declare system (name str))\n(declare vendor (name str))\n\n(abi unknown)\n(arch aarch64)\n(base-address 0)\n(bias 0)\n(bits 64)\n(code-region 1888 20 1888)\n(code-region 1536 352 1536)\n(code-region 1440 96 1440)\n(code-region 1408 24 1408)\n(code-start 1588)\n(code-start 1536)\n(code-start 1812)\n(entry-point 1536)\n(external-reference 69568 _ITM_deregisterTMCloneTable)\n(external-reference 69576 __cxa_finalize)\n(external-reference 69584 __gmon_start__)\n(external-reference 69600 _ITM_registerTMCloneTable)\n(external-reference 69632 __libc_start_main)\n(external-reference 69640 __cxa_finalize)\n(external-reference 69648 __gmon_start__)\n(external-reference 69656 abort)\n(format elf)\n(is-executable true)\n(is-little-endian true)\n(llvm:base-address 0)\n(llvm:code-entry abort 0 0)\n(llvm:code-entry __cxa_finalize 0 0)\n(llvm:code-entry __libc_start_main 0 0)\n(llvm:code-entry _init 1408 0)\n(llvm:code-entry main 1812 76)\n(llvm:code-entry _start 1536 52)\n(llvm:code-entry abort@GLIBC_2.17 0 0)\n(llvm:code-entry _fini 1888 0)\n(llvm:code-entry __cxa_finalize@GLIBC_2.17 0 0)\n(llvm:code-entry __libc_start_main@GLIBC_2.34 0 0)\n(llvm:code-entry frame_dummy 1808 0)\n(llvm:code-entry __do_global_dtors_aux 1728 0)\n(llvm:code-entry register_tm_clones 1664 0)\n(llvm:code-entry deregister_tm_clones 1616 0)\n(llvm:code-entry call_weak_fn 1588 20)\n(llvm:code-entry .fini 1888 20)\n(llvm:code-entry .text 1536 352)\n(llvm:code-entry .plt 1440 96)\n(llvm:code-entry .init 1408 24)\n(llvm:elf-program-header 08 3528 568)\n(llvm:elf-program-header 07 0 0)\n(llvm:elf-program-header 06 1912 60)\n(llvm:elf-program-header 05 596 68)\n(llvm:elf-program-header 04 3544 480)\n(llvm:elf-program-header 03 3528 640)\n(llvm:elf-program-header 02 0 2156)\n(llvm:elf-program-header 01 568 27)\n(llvm:elf-program-header 00 64 504)\n(llvm:elf-program-header-flags 08 false true false false)\n(llvm:elf-program-header-flags 07 false true true false)\n(llvm:elf-program-header-flags 06 false true false false)\n(llvm:elf-program-header-flags 05 false true false false)\n(llvm:elf-program-header-flags 04 false true true false)\n(llvm:elf-program-header-flags 03 true true true false)\n(llvm:elf-program-header-flags 02 true true false true)\n(llvm:elf-program-header-flags 01 false true false false)\n(llvm:elf-program-header-flags 00 false true false false)\n(llvm:elf-virtual-program-header 08 69064 568)\n(llvm:elf-virtual-program-header 07 0 0)\n(llvm:elf-virtual-program-header 06 1912 60)\n(llvm:elf-virtual-program-header 05 596 68)\n(llvm:elf-virtual-program-header 04 69080 480)\n(llvm:elf-virtual-program-header 03 69064 648)\n(llvm:elf-virtual-program-header 02 0 2156)\n(llvm:elf-virtual-program-header 01 568 27)\n(llvm:elf-virtual-program-header 00 64 504)\n(llvm:entry-point 1536)\n(llvm:name-reference 69656 abort)\n(llvm:name-reference 69648 __gmon_start__)\n(llvm:name-reference 69640 __cxa_finalize)\n(llvm:name-reference 69632 __libc_start_main)\n(llvm:name-reference 69600 _ITM_registerTMCloneTable)\n(llvm:name-reference 69584 __gmon_start__)\n(llvm:name-reference 69576 __cxa_finalize)\n(llvm:name-reference 69568 _ITM_deregisterTMCloneTable)\n(llvm:section-entry .shstrtab 0 259 7044)\n(llvm:section-entry .strtab 0 572 6472)\n(llvm:section-entry .symtab 0 2232 4240)\n(llvm:section-entry .comment 0 71 4168)\n(llvm:section-entry .bss 69704 8 4168)\n(llvm:section-entry .data 69664 40 4128)\n(llvm:section-entry .got.plt 69608 56 4072)\n(llvm:section-entry .got 69560 48 4024)\n(llvm:section-entry .dynamic 69080 480 3544)\n(llvm:section-entry .fini_array 69072 8 3536)\n(llvm:section-entry .init_array 69064 8 3528)\n(llvm:section-entry .eh_frame 1976 180 1976)\n(llvm:section-entry .eh_frame_hdr 1912 60 1912)\n(llvm:section-entry .rodata 1908 4 1908)\n(llvm:section-entry .fini 1888 20 1888)\n(llvm:section-entry .text 1536 352 1536)\n(llvm:section-entry .plt 1440 96 1440)\n(llvm:section-entry .init 1408 24 1408)\n(llvm:section-entry .rela.plt 1312 96 1312)\n(llvm:section-entry .rela.dyn 1120 192 1120)\n(llvm:section-entry .gnu.version_r 1072 48 1072)\n(llvm:section-entry .gnu.version 1054 18 1054)\n(llvm:section-entry .dynstr 912 141 912)\n(llvm:section-entry .dynsym 696 216 696)\n(llvm:section-entry .gnu.hash 664 28 664)\n(llvm:section-entry .note.ABI-tag 632 32 632)\n(llvm:section-entry .note.gnu.build-id 596 36 596)\n(llvm:section-entry .interp 568 27 568)\n(llvm:section-flags .shstrtab true false false)\n(llvm:section-flags .strtab true false false)\n(llvm:section-flags .symtab true false false)\n(llvm:section-flags .comment true false false)\n(llvm:section-flags .bss true true false)\n(llvm:section-flags .data true true false)\n(llvm:section-flags .got.plt true true false)\n(llvm:section-flags .got true true false)\n(llvm:section-flags .dynamic true true false)\n(llvm:section-flags .fini_array true true false)\n(llvm:section-flags .init_array true true false)\n(llvm:section-flags .eh_frame true false false)\n(llvm:section-flags .eh_frame_hdr true false false)\n(llvm:section-flags .rodata true false false)\n(llvm:section-flags .fini true false true)\n(llvm:section-flags .text true false true)\n(llvm:section-flags .plt true false true)\n(llvm:section-flags .init true false true)\n(llvm:section-flags .rela.plt true false false)\n(llvm:section-flags .rela.dyn true false false)\n(llvm:section-flags .gnu.version_r true false false)\n(llvm:section-flags .gnu.version true false false)\n(llvm:section-flags .dynstr true false false)\n(llvm:section-flags .dynsym true false false)\n(llvm:section-flags .gnu.hash true false false)\n(llvm:section-flags .note.ABI-tag true false false)\n(llvm:section-flags .note.gnu.build-id true false false)\n(llvm:section-flags .interp true false false)\n(llvm:symbol-entry abort 0 0 0 0)\n(llvm:symbol-entry __cxa_finalize 0 0 0 0)\n(llvm:symbol-entry __libc_start_main 0 0 0 0)\n(llvm:symbol-entry _init 1408 0 1408 1408)\n(llvm:symbol-entry main 1812 76 1812 1812)\n(llvm:symbol-entry _start 1536 52 1536 1536)\n(llvm:symbol-entry abort@GLIBC_2.17 0 0 0 0)\n(llvm:symbol-entry _fini 1888 0 1888 1888)\n(llvm:symbol-entry __cxa_finalize@GLIBC_2.17 0 0 0 0)\n(llvm:symbol-entry __libc_start_main@GLIBC_2.34 0 0 0 0)\n(llvm:symbol-entry frame_dummy 1808 0 1808 1808)\n(llvm:symbol-entry __do_global_dtors_aux 1728 0 1728 1728)\n(llvm:symbol-entry register_tm_clones 1664 0 1664 1664)\n(llvm:symbol-entry deregister_tm_clones 1616 0 1616 1616)\n(llvm:symbol-entry call_weak_fn 1588 20 1588 1588)\n(mapped 0 2156 0)\n(mapped 69064 640 3528)\n(named-region 0 2156 02)\n(named-region 69064 648 03)\n(named-region 568 27 .interp)\n(named-region 596 36 .note.gnu.build-id)\n(named-region 632 32 .note.ABI-tag)\n(named-region 664 28 .gnu.hash)\n(named-region 696 216 .dynsym)\n(named-region 912 141 .dynstr)\n(named-region 1054 18 .gnu.version)\n(named-region 1072 48 .gnu.version_r)\n(named-region 1120 192 .rela.dyn)\n(named-region 1312 96 .rela.plt)\n(named-region 1408 24 .init)\n(named-region 1440 96 .plt)\n(named-region 1536 352 .text)\n(named-region 1888 20 .fini)\n(named-region 1908 4 .rodata)\n(named-region 1912 60 .eh_frame_hdr)\n(named-region 1976 180 .eh_frame)\n(named-region 69064 8 .init_array)\n(named-region 69072 8 .fini_array)\n(named-region 69080 480 .dynamic)\n(named-region 69560 48 .got)\n(named-region 69608 56 .got.plt)\n(named-region 69664 40 .data)\n(named-region 69704 8 .bss)\n(named-region 0 71 .comment)\n(named-region 0 2232 .symtab)\n(named-region 0 572 .strtab)\n(named-region 0 259 .shstrtab)\n(named-symbol 1588 call_weak_fn)\n(named-symbol 1616 deregister_tm_clones)\n(named-symbol 1664 register_tm_clones)\n(named-symbol 1728 __do_global_dtors_aux)\n(named-symbol 1808 frame_dummy)\n(named-symbol 0 __libc_start_main@GLIBC_2.34)\n(named-symbol 0 __cxa_finalize@GLIBC_2.17)\n(named-symbol 1888 _fini)\n(named-symbol 0 abort@GLIBC_2.17)\n(named-symbol 1536 _start)\n(named-symbol 1812 main)\n(named-symbol 1408 _init)\n(named-symbol 0 __libc_start_main)\n(named-symbol 0 __cxa_finalize)\n(named-symbol 0 abort)\n(require libc.so.6)\n(section 568 27)\n(section 596 36)\n(section 632 32)\n(section 664 28)\n(section 696 216)\n(section 912 141)\n(section 1054 18)\n(section 1072 48)\n(section 1120 192)\n(section 1312 96)\n(section 1408 24)\n(section 1440 96)\n(section 1536 352)\n(section 1888 20)\n(section 1908 4)\n(section 1912 60)\n(section 1976 180)\n(section 69064 8)\n(section 69072 8)\n(section 69080 480)\n(section 69560 48)\n(section 69608 56)\n(section 69664 40)\n(section 69704 8)\n(section 0 71)\n(section 0 2232)\n(section 0 572)\n(section 0 259)\n(segment 0 2156 true false true)\n(segment 69064 648 true true false)\n(subarch v8)\n(symbol-chunk 1588 20 1588)\n(symbol-chunk 1536 52 1536)\n(symbol-chunk 1812 76 1812)\n(symbol-value 1588 1588)\n(symbol-value 1616 1616)\n(symbol-value 1664 1664)\n(symbol-value 1728 1728)\n(symbol-value 1808 1808)\n(symbol-value 1888 1888)\n(symbol-value 1536 1536)\n(symbol-value 1812 1812)\n(symbol-value 1408 1408)\n(symbol-value 0 0)\n(system \"\")\n(vendor \"\")\n"), -Attr("abi-name","\"aarch64-linux-gnu-elf\"")]), -Sections([Section(".shstrtab", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x00\x06\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x88\x1c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x38\x00\x09\x00\x40\x00\x1d\x00\x1c\x00\x06\x00\x00\x00\x04\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x04\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6c\x08\x00\x00\x00\x00\x00\x00\x6c\x08\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x01\x00\x00\x00\x06\x00\x00\x00\xc8\x0d\x00\x00\x00\x00\x00\x00\xc8\x0d\x01\x00\x00\x00\x00\x00\xc8\x0d\x01"), -Section(".strtab", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x00\x06\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x88\x1c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x38\x00\x09\x00\x40\x00\x1d\x00\x1c\x00\x06\x00\x00\x00\x04\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x04\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6c\x08\x00\x00\x00\x00\x00\x00\x6c\x08\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x01\x00\x00\x00\x06\x00\x00\x00\xc8\x0d\x00\x00\x00\x00\x00\x00\xc8\x0d\x01\x00\x00\x00\x00\x00\xc8\x0d\x01\x00\x00\x00\x00\x00\x80\x02\x00\x00\x00\x00\x00\x00\x88\x02\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x02\x00\x00\x00\x06\x00\x00\x00\xd8\x0d\x00\x00\x00\x00\x00\x00\xd8\x0d\x01\x00\x00\x00\x00\x00\xd8\x0d\x01\x00\x00\x00\x00\x00\xe0\x01\x00\x00\x00\x00\x00\x00\xe0\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x04\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x50\xe5\x74\x64\x04\x00\x00\x00\x78\x07\x00\x00\x00\x00\x00\x00\x78\x07\x00\x00\x00\x00\x00\x00\x78\x07\x00\x00\x00\x00\x00\x00\x3c\x00\x00\x00\x00\x00\x00\x00\x3c\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x51\xe5\x74\x64\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x52\xe5\x74\x64\x04\x00\x00\x00\xc8\x0d\x00\x00\x00\x00\x00\x00\xc8\x0d\x01\x00\x00\x00\x00\x00\xc8\x0d\x01\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x2f\x6c\x69\x62"), -Section(".comment", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x00\x06\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x88\x1c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x38\x00\x09\x00\x40\x00\x1d\x00\x1c\x00\x06\x00\x00\x00\x04\x00\x00"), -Section(".interp", 0x238, "\x2f\x6c\x69\x62\x2f\x6c\x64\x2d\x6c\x69\x6e\x75\x78\x2d\x61\x61\x72\x63\x68\x36\x34\x2e\x73\x6f\x2e\x31\x00"), -Section(".note.gnu.build-id", 0x254, "\x04\x00\x00\x00\x14\x00\x00\x00\x03\x00\x00\x00\x47\x4e\x55\x00\x43\xbc\x1d\x9f\x09\xc7\x6b\x77\x97\x8f\x6a\x5f\x0c\xad\x32\x44\x84\x1f\xaa\x15"), -Section(".note.ABI-tag", 0x278, "\x04\x00\x00\x00\x10\x00\x00\x00\x01\x00\x00\x00\x47\x4e\x55\x00\x00\x00\x00\x00\x03\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00"), -Section(".gnu.hash", 0x298, "\x01\x00\x00\x00\x01\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".dynsym", 0x2B8, "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x0b\x00\x80\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x17\x00\x20\x10\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x48\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x22\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x22\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x73\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".dynstr", 0x390, "\x00\x5f\x5f\x63\x78\x61\x5f\x66\x69\x6e\x61\x6c\x69\x7a\x65\x00\x5f\x5f\x6c\x69\x62\x63\x5f\x73\x74\x61\x72\x74\x5f\x6d\x61\x69\x6e\x00\x61\x62\x6f\x72\x74\x00\x6c\x69\x62\x63\x2e\x73\x6f\x2e\x36\x00\x47\x4c\x49\x42\x43\x5f\x32\x2e\x31\x37\x00\x47\x4c\x49\x42\x43\x5f\x32\x2e\x33\x34\x00\x5f\x49\x54\x4d\x5f\x64\x65\x72\x65\x67\x69\x73\x74\x65\x72\x54\x4d\x43\x6c\x6f\x6e\x65\x54\x61\x62\x6c\x65\x00\x5f\x5f\x67\x6d\x6f\x6e\x5f\x73\x74\x61\x72\x74\x5f\x5f\x00\x5f\x49\x54\x4d\x5f\x72\x65\x67\x69\x73\x74\x65\x72\x54\x4d\x43\x6c\x6f\x6e\x65\x54\x61\x62\x6c\x65\x00"), -Section(".gnu.version", 0x41E, "\x00\x00\x00\x00\x00\x00\x02\x00\x01\x00\x03\x00\x01\x00\x03\x00\x01\x00"), -Section(".gnu.version_r", 0x430, "\x01\x00\x02\x00\x28\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x97\x91\x96\x06\x00\x00\x03\x00\x32\x00\x00\x00\x10\x00\x00\x00\xb4\x91\x96\x06\x00\x00\x02\x00\x3d\x00\x00\x00\x00\x00\x00\x00"), -Section(".rela.dyn", 0x460, "\xc8\x0d\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x10\x07\x00\x00\x00\x00\x00\x00\xd0\x0d\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\xc0\x06\x00\x00\x00\x00\x00\x00\xd8\x0f\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x14\x07\x00\x00\x00\x00\x00\x00\x28\x10\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x28\x10\x01\x00\x00\x00\x00\x00\xc0\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xc8\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xd0\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe0\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".rela.plt", 0x520, "\x00\x10\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x08\x10\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x10\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x18\x10\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".init", 0x580, "\x1f\x20\x03\xd5\xfd\x7b\xbf\xa9\xfd\x03\x00\x91\x2a\x00\x00\x94\xfd\x7b\xc1\xa8\xc0\x03\x5f\xd6"), -Section(".plt", 0x5A0, "\xf0\x7b\xbf\xa9\x90\x00\x00\x90\x11\xfe\x47\xf9\x10\xe2\x3f\x91\x20\x02\x1f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x90\x00\x00\xb0\x11\x02\x40\xf9\x10\x02\x00\x91\x20\x02\x1f\xd6\x90\x00\x00\xb0\x11\x06\x40\xf9\x10\x22\x00\x91\x20\x02\x1f\xd6\x90\x00\x00\xb0\x11\x0a\x40\xf9\x10\x42\x00\x91\x20\x02\x1f\xd6\x90\x00\x00\xb0\x11\x0e\x40\xf9\x10\x62\x00\x91\x20\x02\x1f\xd6"), -Section(".text", 0x600, "\x1f\x20\x03\xd5\x1d\x00\x80\xd2\x1e\x00\x80\xd2\xe5\x03\x00\xaa\xe1\x03\x40\xf9\xe2\x23\x00\x91\xe6\x03\x00\x91\x80\x00\x00\x90\x00\xec\x47\xf9\x03\x00\x80\xd2\x04\x00\x80\xd2\xe5\xff\xff\x97\xf0\xff\xff\x97\x80\x00\x00\x90\x00\xe8\x47\xf9\x40\x00\x00\xb4\xe8\xff\xff\x17\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x80\x00\x00\xb0\x00\x20\x01\x91\x81\x00\x00\xb0\x21\x20\x01\x91\x3f\x00\x00\xeb\xc0\x00\x00\x54\x81\x00\x00\x90\x21\xe0\x47\xf9\x61\x00\x00\xb4\xf0\x03\x01\xaa\x00\x02\x1f\xd6\xc0\x03\x5f\xd6\x80\x00\x00\xb0\x00\x20\x01\x91\x81\x00\x00\xb0\x21\x20\x01\x91\x21\x00\x00\xcb\x22\xfc\x7f\xd3\x41\x0c\x81\x8b\x21\xfc\x41\x93\xc1\x00\x00\xb4\x82\x00\x00\x90\x42\xf0\x47\xf9\x62\x00\x00\xb4\xf0\x03\x02\xaa\x00\x02\x1f\xd6\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\xfd\x7b\xbe\xa9\xfd\x03\x00\x91\xf3\x0b\x00\xf9\x93\x00\x00\xb0\x60\x22\x41\x39\x40\x01\x00\x35\x80\x00\x00\x90\x00\xe4\x47\xf9\x80\x00\x00\xb4\x80\x00\x00\xb0\x00\x14\x40\xf9\xb9\xff\xff\x97\xd8\xff\xff\x97\x20\x00\x80\x52\x60\x22\x01\x39\xf3\x0b\x40\xf9\xfd\x7b\xc2\xa8\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\xdc\xff\xff\x17\x8a\x00\x00\xb0\x4a\x01\x01\x91\x88\x00\x00\xb0\x89\x00\x00\xb0\x8c\x00\x00\xb0\xe0\x03\x1f\x2a\x4b\x01\x40\xb9\x0d\x31\x40\xb9\x2e\x1d\x40\xf9\x6b\x0d\x00\x11\x8f\xd1\x40\x39\xad\x05\x00\x11\xce\x05\x00\xd1\x4b\x05\x00\xb9\xea\x05\x00\x11\x0d\x31\x00\xb9\x2e\x1d\x00\xf9\x8a\xd1\x00\x39\xc0\x03\x5f\xd6"), -Section(".fini", 0x760, "\x1f\x20\x03\xd5\xfd\x7b\xbf\xa9\xfd\x03\x00\x91\xfd\x7b\xc1\xa8\xc0\x03\x5f\xd6"), -Section(".rodata", 0x774, "\x01\x00\x02\x00"), -Section(".eh_frame_hdr", 0x778, "\x01\x1b\x03\x3b\x3c\x00\x00\x00\x06\x00\x00\x00\x88\xfe\xff\xff\x54\x00\x00\x00\xd8\xfe\xff\xff\x68\x00\x00\x00\x08\xff\xff\xff\x7c\x00\x00\x00\x48\xff\xff\xff\x90\x00\x00\x00\x98\xff\xff\xff\xb4\x00\x00\x00\x9c\xff\xff\xff\xdc\x00\x00\x00"), -Section(".eh_frame", 0x7B8, "\x10\x00\x00\x00\x00\x00\x00\x00\x01\x7a\x52\x00\x04\x78\x1e\x01\x1b\x0c\x1f\x00\x10\x00\x00\x00\x18\x00\x00\x00\x2c\xfe\xff\xff\x34\x00\x00\x00\x00\x41\x07\x1e\x10\x00\x00\x00\x2c\x00\x00\x00\x68\xfe\xff\xff\x30\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x40\x00\x00\x00\x84\xfe\xff\xff\x3c\x00\x00\x00\x00\x00\x00\x00\x20\x00\x00\x00\x54\x00\x00\x00\xb0\xfe\xff\xff\x48\x00\x00\x00\x00\x41\x0e\x20\x9d\x04\x9e\x03\x42\x93\x02\x4e\xde\xdd\xd3\x0e\x00\x00\x00\x00\x10\x00\x00\x00\x78\x00\x00\x00\xdc\xfe\xff\xff\x04\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x01\x7a\x52\x00\x01\x7c\x1e\x01\x1b\x0c\x1f\x00\x10\x00\x00\x00\x18\x00\x00\x00\xb8\xfe\xff\xff\x4c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".fini_array", 0x10DD0, "\xc0\x06\x00\x00\x00\x00\x00\x00"), -Section(".dynamic", 0x10DD8, "\x01\x00\x00\x00\x00\x00\x00\x00\x28\x00\x00\x00\x00\x00\x00\x00\x0c\x00\x00\x00\x00\x00\x00\x00\x80\x05\x00\x00\x00\x00\x00\x00\x0d\x00\x00\x00\x00\x00\x00\x00\x60\x07\x00\x00\x00\x00\x00\x00\x19\x00\x00\x00\x00\x00\x00\x00\xc8\x0d\x01\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x1a\x00\x00\x00\x00\x00\x00\x00\xd0\x0d\x01\x00\x00\x00\x00\x00\x1c\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\xf5\xfe\xff\x6f\x00\x00\x00\x00\x98\x02\x00\x00\x00\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x90\x03\x00\x00\x00\x00\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\xb8\x02\x00\x00\x00\x00\x00\x00\x0a\x00\x00\x00\x00\x00\x00\x00\x8d\x00\x00\x00\x00\x00\x00\x00\x0b\x00\x00\x00\x00\x00\x00\x00\x18\x00\x00\x00\x00\x00\x00\x00\x15\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\xe8\x0f\x01\x00\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x60\x00\x00\x00\x00\x00\x00\x00\x14\x00\x00\x00\x00\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x17\x00\x00\x00\x00\x00\x00\x00\x20\x05\x00\x00\x00\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x60\x04\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\xc0\x00\x00\x00\x00\x00\x00\x00\x09\x00\x00\x00\x00\x00\x00\x00\x18\x00\x00\x00\x00\x00\x00\x00\xfb\xff\xff\x6f\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\xfe\xff\xff\x6f\x00\x00\x00\x00\x30\x04\x00\x00\x00\x00\x00\x00\xff\xff\xff\x6f\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\xf0\xff\xff\x6f\x00\x00\x00\x00\x1e\x04\x00\x00\x00\x00\x00\x00\xf9\xff\xff\x6f\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".init_array", 0x10DC8, "\x10\x07\x00\x00\x00\x00\x00\x00"), -Section(".got", 0x10FB8, "\xd8\x0d\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x14\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".got.plt", 0x10FE8, "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xa0\x05\x00\x00\x00\x00\x00\x00\xa0\x05\x00\x00\x00\x00\x00\x00\xa0\x05\x00\x00\x00\x00\x00\x00\xa0\x05\x00\x00\x00\x00\x00\x00"), -Section(".data", 0x11020, "\x00\x00\x00\x00\x00\x00\x00\x00\x28\x10\x01\x00\x00\x00\x00\x00\x05\x00\x00\x00\x61\x00\x00\x00\xff\xff\xff\xff\x0f\x00\x00\x00\x01\x00\x00\x00\x02\x00\x00\x00")]), -Memmap([Annotation(Region(0x0,0x86B), Attr("segment","02 0 2156")), -Annotation(Region(0x600,0x633), Attr("symbol","\"_start\"")), -Annotation(Region(0x0,0x102), Attr("section","\".shstrtab\"")), -Annotation(Region(0x0,0x23B), Attr("section","\".strtab\"")), -Annotation(Region(0x0,0x46), Attr("section","\".comment\"")), -Annotation(Region(0x238,0x252), Attr("section","\".interp\"")), -Annotation(Region(0x254,0x277), Attr("section","\".note.gnu.build-id\"")), -Annotation(Region(0x278,0x297), Attr("section","\".note.ABI-tag\"")), -Annotation(Region(0x298,0x2B3), Attr("section","\".gnu.hash\"")), -Annotation(Region(0x2B8,0x38F), Attr("section","\".dynsym\"")), -Annotation(Region(0x390,0x41C), Attr("section","\".dynstr\"")), -Annotation(Region(0x41E,0x42F), Attr("section","\".gnu.version\"")), -Annotation(Region(0x430,0x45F), Attr("section","\".gnu.version_r\"")), -Annotation(Region(0x460,0x51F), Attr("section","\".rela.dyn\"")), -Annotation(Region(0x520,0x57F), Attr("section","\".rela.plt\"")), -Annotation(Region(0x580,0x597), Attr("section","\".init\"")), -Annotation(Region(0x5A0,0x5FF), Attr("section","\".plt\"")), -Annotation(Region(0x580,0x597), Attr("code-region","()")), -Annotation(Region(0x5A0,0x5FF), Attr("code-region","()")), -Annotation(Region(0x600,0x633), Attr("symbol-info","_start 0x600 52")), -Annotation(Region(0x634,0x647), Attr("symbol","\"call_weak_fn\"")), -Annotation(Region(0x634,0x647), Attr("symbol-info","call_weak_fn 0x634 20")), -Annotation(Region(0x600,0x75F), Attr("section","\".text\"")), -Annotation(Region(0x600,0x75F), Attr("code-region","()")), -Annotation(Region(0x714,0x75F), Attr("symbol","\"main\"")), -Annotation(Region(0x714,0x75F), Attr("symbol-info","main 0x714 76")), -Annotation(Region(0x760,0x773), Attr("section","\".fini\"")), -Annotation(Region(0x760,0x773), Attr("code-region","()")), -Annotation(Region(0x774,0x777), Attr("section","\".rodata\"")), -Annotation(Region(0x778,0x7B3), Attr("section","\".eh_frame_hdr\"")), -Annotation(Region(0x7B8,0x86B), Attr("section","\".eh_frame\"")), -Annotation(Region(0x10DC8,0x11047), Attr("segment","03 0x10DC8 648")), -Annotation(Region(0x10DD0,0x10DD7), Attr("section","\".fini_array\"")), -Annotation(Region(0x10DD8,0x10FB7), Attr("section","\".dynamic\"")), -Annotation(Region(0x10DC8,0x10DCF), Attr("section","\".init_array\"")), -Annotation(Region(0x10FB8,0x10FE7), Attr("section","\".got\"")), -Annotation(Region(0x10FE8,0x1101F), Attr("section","\".got.plt\"")), -Annotation(Region(0x11020,0x11047), Attr("section","\".data\""))]), -Program(Tid(1_593, "%00000639"), Attrs([]), - Subs([Sub(Tid(1_543, "@__cxa_finalize"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x5D0"), -Attr("stub","()")]), "__cxa_finalize", Args([Arg(Tid(1_594, "%0000063a"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("__cxa_finalize_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(933, "@__cxa_finalize"), - Attrs([Attr("address","0x5D0")]), Phis([]), -Defs([Def(Tid(1_181, "%0000049d"), Attrs([Attr("address","0x5D0"), -Attr("insn","adrp x16, #69632")]), Var("R16",Imm(64)), Int(69632,64)), -Def(Tid(1_188, "%000004a4"), Attrs([Attr("address","0x5D4"), -Attr("insn","ldr x17, [x16, #0x8]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(1_194, "%000004aa"), Attrs([Attr("address","0x5D8"), -Attr("insn","add x16, x16, #0x8")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(8,64)))]), Jmps([Call(Tid(1_199, "%000004af"), - Attrs([Attr("address","0x5DC"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), -Sub(Tid(1_544, "@__do_global_dtors_aux"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x6C0")]), - "__do_global_dtors_aux", Args([Arg(Tid(1_595, "%0000063b"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("__do_global_dtors_aux_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(666, "@__do_global_dtors_aux"), - Attrs([Attr("address","0x6C0")]), Phis([]), Defs([Def(Tid(670, "%0000029e"), - Attrs([Attr("address","0x6C0"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("#3",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(18446744073709551584,64))), -Def(Tid(676, "%000002a4"), Attrs([Attr("address","0x6C0"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("#3",Imm(64)),Var("R29",Imm(64)),LittleEndian(),64)), -Def(Tid(682, "%000002aa"), Attrs([Attr("address","0x6C0"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("#3",Imm(64)),Int(8,64)),Var("R30",Imm(64)),LittleEndian(),64)), -Def(Tid(686, "%000002ae"), Attrs([Attr("address","0x6C0"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("R31",Imm(64)), -Var("#3",Imm(64))), Def(Tid(692, "%000002b4"), - Attrs([Attr("address","0x6C4"), Attr("insn","mov x29, sp")]), - Var("R29",Imm(64)), Var("R31",Imm(64))), Def(Tid(700, "%000002bc"), - Attrs([Attr("address","0x6C8"), Attr("insn","str x19, [sp, #0x10]")]), - Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(16,64)),Var("R19",Imm(64)),LittleEndian(),64)), -Def(Tid(705, "%000002c1"), Attrs([Attr("address","0x6CC"), -Attr("insn","adrp x19, #69632")]), Var("R19",Imm(64)), Int(69632,64)), -Def(Tid(712, "%000002c8"), Attrs([Attr("address","0x6D0"), -Attr("insn","ldrb w0, [x19, #0x48]")]), Var("R0",Imm(64)), -UNSIGNED(64,Load(Var("mem",Mem(64,8)),PLUS(Var("R19",Imm(64)),Int(72,64)),LittleEndian(),8)))]), -Jmps([Goto(Tid(719, "%000002cf"), Attrs([Attr("address","0x6D4"), -Attr("insn","cbnz w0, #0x28")]), - NEQ(Extract(31,0,Var("R0",Imm(64))),Int(0,32)), -Direct(Tid(717, "%000002cd"))), Goto(Tid(1_583, "%0000062f"), Attrs([]), - Int(1,1), Direct(Tid(878, "%0000036e")))])), Blk(Tid(878, "%0000036e"), - Attrs([Attr("address","0x6D8")]), Phis([]), Defs([Def(Tid(881, "%00000371"), - Attrs([Attr("address","0x6D8"), Attr("insn","adrp x0, #65536")]), - Var("R0",Imm(64)), Int(65536,64)), Def(Tid(888, "%00000378"), - Attrs([Attr("address","0x6DC"), Attr("insn","ldr x0, [x0, #0xfc8]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(4040,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(894, "%0000037e"), Attrs([Attr("address","0x6E0"), -Attr("insn","cbz x0, #0x10")]), EQ(Var("R0",Imm(64)),Int(0,64)), -Direct(Tid(892, "%0000037c"))), Goto(Tid(1_584, "%00000630"), Attrs([]), - Int(1,1), Direct(Tid(917, "%00000395")))])), Blk(Tid(917, "%00000395"), - Attrs([Attr("address","0x6E4")]), Phis([]), Defs([Def(Tid(920, "%00000398"), - Attrs([Attr("address","0x6E4"), Attr("insn","adrp x0, #69632")]), - Var("R0",Imm(64)), Int(69632,64)), Def(Tid(927, "%0000039f"), - Attrs([Attr("address","0x6E8"), Attr("insn","ldr x0, [x0, #0x28]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(40,64)),LittleEndian(),64)), -Def(Tid(932, "%000003a4"), Attrs([Attr("address","0x6EC"), -Attr("insn","bl #-0x11c")]), Var("R30",Imm(64)), Int(1776,64))]), -Jmps([Call(Tid(935, "%000003a7"), Attrs([Attr("address","0x6EC"), -Attr("insn","bl #-0x11c")]), Int(1,1), -(Direct(Tid(1_543, "@__cxa_finalize")),Direct(Tid(892, "%0000037c"))))])), -Blk(Tid(892, "%0000037c"), Attrs([Attr("address","0x6F0")]), Phis([]), -Defs([Def(Tid(900, "%00000384"), Attrs([Attr("address","0x6F0"), -Attr("insn","bl #-0xa0")]), Var("R30",Imm(64)), Int(1780,64))]), -Jmps([Call(Tid(902, "%00000386"), Attrs([Attr("address","0x6F0"), -Attr("insn","bl #-0xa0")]), Int(1,1), -(Direct(Tid(1_557, "@deregister_tm_clones")),Direct(Tid(904, "%00000388"))))])), -Blk(Tid(904, "%00000388"), Attrs([Attr("address","0x6F4")]), Phis([]), -Defs([Def(Tid(907, "%0000038b"), Attrs([Attr("address","0x6F4"), -Attr("insn","mov w0, #0x1")]), Var("R0",Imm(64)), Int(1,64)), -Def(Tid(915, "%00000393"), Attrs([Attr("address","0x6F8"), -Attr("insn","strb w0, [x19, #0x48]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R19",Imm(64)),Int(72,64)),Extract(7,0,Var("R0",Imm(64))),LittleEndian(),8))]), -Jmps([Goto(Tid(1_585, "%00000631"), Attrs([]), Int(1,1), -Direct(Tid(717, "%000002cd")))])), Blk(Tid(717, "%000002cd"), - Attrs([Attr("address","0x6FC")]), Phis([]), Defs([Def(Tid(727, "%000002d7"), - Attrs([Attr("address","0x6FC"), Attr("insn","ldr x19, [sp, #0x10]")]), - Var("R19",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(16,64)),LittleEndian(),64)), -Def(Tid(734, "%000002de"), Attrs([Attr("address","0x700"), -Attr("insn","ldp x29, x30, [sp], #0x20")]), Var("R29",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(739, "%000002e3"), Attrs([Attr("address","0x700"), -Attr("insn","ldp x29, x30, [sp], #0x20")]), Var("R30",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(743, "%000002e7"), Attrs([Attr("address","0x700"), -Attr("insn","ldp x29, x30, [sp], #0x20")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(32,64)))]), Jmps([Call(Tid(748, "%000002ec"), - Attrs([Attr("address","0x704"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), Sub(Tid(1_548, "@__libc_start_main"), - Attrs([Attr("c.proto","signed (*)(signed (*)(signed , char** , char** );* main, signed , char** , \nvoid* auxv)"), -Attr("address","0x5C0"), Attr("stub","()")]), "__libc_start_main", - Args([Arg(Tid(1_596, "%0000063c"), - Attrs([Attr("c.layout","**[ : 64]"), -Attr("c.data","Top:u64 ptr ptr"), -Attr("c.type","signed (*)(signed , char** , char** );*")]), - Var("__libc_start_main_main",Imm(64)), Var("R0",Imm(64)), In()), -Arg(Tid(1_597, "%0000063d"), Attrs([Attr("c.layout","[signed : 32]"), -Attr("c.data","Top:u32"), Attr("c.type","signed")]), - Var("__libc_start_main_arg2",Imm(32)), LOW(32,Var("R1",Imm(64))), In()), -Arg(Tid(1_598, "%0000063e"), Attrs([Attr("c.layout","**[char : 8]"), -Attr("c.data","Top:u8 ptr ptr"), Attr("c.type","char**")]), - Var("__libc_start_main_arg3",Imm(64)), Var("R2",Imm(64)), Both()), -Arg(Tid(1_599, "%0000063f"), Attrs([Attr("c.layout","*[ : 8]"), -Attr("c.data","{} ptr"), Attr("c.type","void*")]), - Var("__libc_start_main_auxv",Imm(64)), Var("R3",Imm(64)), Both()), -Arg(Tid(1_600, "%00000640"), Attrs([Attr("c.layout","[signed : 32]"), -Attr("c.data","Top:u32"), Attr("c.type","signed")]), - Var("__libc_start_main_result",Imm(32)), LOW(32,Var("R0",Imm(64))), -Out())]), Blks([Blk(Tid(499, "@__libc_start_main"), - Attrs([Attr("address","0x5C0")]), Phis([]), -Defs([Def(Tid(1_159, "%00000487"), Attrs([Attr("address","0x5C0"), -Attr("insn","adrp x16, #69632")]), Var("R16",Imm(64)), Int(69632,64)), -Def(Tid(1_166, "%0000048e"), Attrs([Attr("address","0x5C4"), -Attr("insn","ldr x17, [x16]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R16",Imm(64)),LittleEndian(),64)), -Def(Tid(1_172, "%00000494"), Attrs([Attr("address","0x5C8"), -Attr("insn","add x16, x16, #0x0")]), Var("R16",Imm(64)), -Var("R16",Imm(64)))]), Jmps([Call(Tid(1_177, "%00000499"), - Attrs([Attr("address","0x5CC"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), Sub(Tid(1_549, "@_fini"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x760")]), - "_fini", Args([Arg(Tid(1_601, "%00000641"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("_fini_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(31, "@_fini"), - Attrs([Attr("address","0x760")]), Phis([]), Defs([Def(Tid(37, "%00000025"), - Attrs([Attr("address","0x764"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("#0",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(18446744073709551600,64))), -Def(Tid(43, "%0000002b"), Attrs([Attr("address","0x764"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("#0",Imm(64)),Var("R29",Imm(64)),LittleEndian(),64)), -Def(Tid(49, "%00000031"), Attrs([Attr("address","0x764"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("#0",Imm(64)),Int(8,64)),Var("R30",Imm(64)),LittleEndian(),64)), -Def(Tid(53, "%00000035"), Attrs([Attr("address","0x764"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("R31",Imm(64)), -Var("#0",Imm(64))), Def(Tid(59, "%0000003b"), Attrs([Attr("address","0x768"), -Attr("insn","mov x29, sp")]), Var("R29",Imm(64)), Var("R31",Imm(64))), -Def(Tid(66, "%00000042"), Attrs([Attr("address","0x76C"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R29",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(71, "%00000047"), Attrs([Attr("address","0x76C"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R30",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(75, "%0000004b"), Attrs([Attr("address","0x76C"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(16,64)))]), Jmps([Call(Tid(80, "%00000050"), - Attrs([Attr("address","0x770"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), Sub(Tid(1_550, "@_init"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x580")]), - "_init", Args([Arg(Tid(1_602, "%00000642"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("_init_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(1_366, "@_init"), - Attrs([Attr("address","0x580")]), Phis([]), -Defs([Def(Tid(1_372, "%0000055c"), Attrs([Attr("address","0x584"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("#5",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(18446744073709551600,64))), -Def(Tid(1_378, "%00000562"), Attrs([Attr("address","0x584"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("#5",Imm(64)),Var("R29",Imm(64)),LittleEndian(),64)), -Def(Tid(1_384, "%00000568"), Attrs([Attr("address","0x584"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("#5",Imm(64)),Int(8,64)),Var("R30",Imm(64)),LittleEndian(),64)), -Def(Tid(1_388, "%0000056c"), Attrs([Attr("address","0x584"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("R31",Imm(64)), -Var("#5",Imm(64))), Def(Tid(1_394, "%00000572"), - Attrs([Attr("address","0x588"), Attr("insn","mov x29, sp")]), - Var("R29",Imm(64)), Var("R31",Imm(64))), Def(Tid(1_399, "%00000577"), - Attrs([Attr("address","0x58C"), Attr("insn","bl #0xa8")]), - Var("R30",Imm(64)), Int(1424,64))]), Jmps([Call(Tid(1_401, "%00000579"), - Attrs([Attr("address","0x58C"), Attr("insn","bl #0xa8")]), Int(1,1), -(Direct(Tid(1_555, "@call_weak_fn")),Direct(Tid(1_403, "%0000057b"))))])), -Blk(Tid(1_403, "%0000057b"), Attrs([Attr("address","0x590")]), Phis([]), -Defs([Def(Tid(1_408, "%00000580"), Attrs([Attr("address","0x590"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R29",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(1_413, "%00000585"), Attrs([Attr("address","0x590"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R30",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(1_417, "%00000589"), Attrs([Attr("address","0x590"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(16,64)))]), Jmps([Call(Tid(1_422, "%0000058e"), - Attrs([Attr("address","0x594"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), Sub(Tid(1_551, "@_start"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x600"), -Attr("stub","()"), Attr("entry-point","()")]), "_start", - Args([Arg(Tid(1_603, "%00000643"), Attrs([Attr("c.layout","[signed : 32]"), -Attr("c.data","Top:u32"), Attr("c.type","signed")]), - Var("_start_result",Imm(32)), LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(436, "@_start"), Attrs([Attr("address","0x600")]), Phis([]), -Defs([Def(Tid(441, "%000001b9"), Attrs([Attr("address","0x604"), -Attr("insn","mov x29, #0x0")]), Var("R29",Imm(64)), Int(0,64)), -Def(Tid(446, "%000001be"), Attrs([Attr("address","0x608"), -Attr("insn","mov x30, #0x0")]), Var("R30",Imm(64)), Int(0,64)), -Def(Tid(452, "%000001c4"), Attrs([Attr("address","0x60C"), -Attr("insn","mov x5, x0")]), Var("R5",Imm(64)), Var("R0",Imm(64))), -Def(Tid(459, "%000001cb"), Attrs([Attr("address","0x610"), -Attr("insn","ldr x1, [sp]")]), Var("R1",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(465, "%000001d1"), Attrs([Attr("address","0x614"), -Attr("insn","add x2, sp, #0x8")]), Var("R2",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(8,64))), Def(Tid(471, "%000001d7"), - Attrs([Attr("address","0x618"), Attr("insn","mov x6, sp")]), - Var("R6",Imm(64)), Var("R31",Imm(64))), Def(Tid(476, "%000001dc"), - Attrs([Attr("address","0x61C"), Attr("insn","adrp x0, #65536")]), - Var("R0",Imm(64)), Int(65536,64)), Def(Tid(483, "%000001e3"), - Attrs([Attr("address","0x620"), Attr("insn","ldr x0, [x0, #0xfd8]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(4056,64)),LittleEndian(),64)), -Def(Tid(488, "%000001e8"), Attrs([Attr("address","0x624"), -Attr("insn","mov x3, #0x0")]), Var("R3",Imm(64)), Int(0,64)), -Def(Tid(493, "%000001ed"), Attrs([Attr("address","0x628"), -Attr("insn","mov x4, #0x0")]), Var("R4",Imm(64)), Int(0,64)), -Def(Tid(498, "%000001f2"), Attrs([Attr("address","0x62C"), -Attr("insn","bl #-0x6c")]), Var("R30",Imm(64)), Int(1584,64))]), -Jmps([Call(Tid(501, "%000001f5"), Attrs([Attr("address","0x62C"), -Attr("insn","bl #-0x6c")]), Int(1,1), -(Direct(Tid(1_548, "@__libc_start_main")),Direct(Tid(503, "%000001f7"))))])), -Blk(Tid(503, "%000001f7"), Attrs([Attr("address","0x630")]), Phis([]), -Defs([Def(Tid(506, "%000001fa"), Attrs([Attr("address","0x630"), -Attr("insn","bl #-0x40")]), Var("R30",Imm(64)), Int(1588,64))]), -Jmps([Call(Tid(509, "%000001fd"), Attrs([Attr("address","0x630"), -Attr("insn","bl #-0x40")]), Int(1,1), -(Direct(Tid(1_554, "@abort")),Direct(Tid(1_586, "%00000632"))))])), -Blk(Tid(1_586, "%00000632"), Attrs([]), Phis([]), Defs([]), -Jmps([Call(Tid(1_587, "%00000633"), Attrs([]), Int(1,1), -(Direct(Tid(1_555, "@call_weak_fn")),))]))])), Sub(Tid(1_554, "@abort"), - Attrs([Attr("noreturn","()"), Attr("c.proto","void (*)(void)"), -Attr("address","0x5F0"), Attr("stub","()")]), "abort", Args([]), -Blks([Blk(Tid(507, "@abort"), Attrs([Attr("address","0x5F0")]), Phis([]), -Defs([Def(Tid(1_225, "%000004c9"), Attrs([Attr("address","0x5F0"), -Attr("insn","adrp x16, #69632")]), Var("R16",Imm(64)), Int(69632,64)), -Def(Tid(1_232, "%000004d0"), Attrs([Attr("address","0x5F4"), -Attr("insn","ldr x17, [x16, #0x18]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(24,64)),LittleEndian(),64)), -Def(Tid(1_238, "%000004d6"), Attrs([Attr("address","0x5F8"), -Attr("insn","add x16, x16, #0x18")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(24,64)))]), Jmps([Call(Tid(1_243, "%000004db"), - Attrs([Attr("address","0x5FC"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), Sub(Tid(1_555, "@call_weak_fn"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x634")]), - "call_weak_fn", Args([Arg(Tid(1_604, "%00000644"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("call_weak_fn_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(511, "@call_weak_fn"), - Attrs([Attr("address","0x634")]), Phis([]), Defs([Def(Tid(514, "%00000202"), - Attrs([Attr("address","0x634"), Attr("insn","adrp x0, #65536")]), - Var("R0",Imm(64)), Int(65536,64)), Def(Tid(521, "%00000209"), - Attrs([Attr("address","0x638"), Attr("insn","ldr x0, [x0, #0xfd0]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(4048,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(527, "%0000020f"), Attrs([Attr("address","0x63C"), -Attr("insn","cbz x0, #0x8")]), EQ(Var("R0",Imm(64)),Int(0,64)), -Direct(Tid(525, "%0000020d"))), Goto(Tid(1_588, "%00000634"), Attrs([]), - Int(1,1), Direct(Tid(997, "%000003e5")))])), Blk(Tid(525, "%0000020d"), - Attrs([Attr("address","0x644")]), Phis([]), Defs([]), -Jmps([Call(Tid(533, "%00000215"), Attrs([Attr("address","0x644"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))])), -Blk(Tid(997, "%000003e5"), Attrs([Attr("address","0x640")]), Phis([]), -Defs([]), Jmps([Goto(Tid(1_000, "%000003e8"), Attrs([Attr("address","0x640"), -Attr("insn","b #-0x60")]), Int(1,1), Direct(Tid(998, "@__gmon_start__")))])), -Blk(Tid(998, "@__gmon_start__"), Attrs([Attr("address","0x5E0")]), Phis([]), -Defs([Def(Tid(1_203, "%000004b3"), Attrs([Attr("address","0x5E0"), -Attr("insn","adrp x16, #69632")]), Var("R16",Imm(64)), Int(69632,64)), -Def(Tid(1_210, "%000004ba"), Attrs([Attr("address","0x5E4"), -Attr("insn","ldr x17, [x16, #0x10]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(16,64)),LittleEndian(),64)), -Def(Tid(1_216, "%000004c0"), Attrs([Attr("address","0x5E8"), -Attr("insn","add x16, x16, #0x10")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(16,64)))]), Jmps([Call(Tid(1_221, "%000004c5"), - Attrs([Attr("address","0x5EC"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), -Sub(Tid(1_557, "@deregister_tm_clones"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x650")]), - "deregister_tm_clones", Args([Arg(Tid(1_605, "%00000645"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("deregister_tm_clones_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(539, "@deregister_tm_clones"), - Attrs([Attr("address","0x650")]), Phis([]), Defs([Def(Tid(542, "%0000021e"), - Attrs([Attr("address","0x650"), Attr("insn","adrp x0, #69632")]), - Var("R0",Imm(64)), Int(69632,64)), Def(Tid(548, "%00000224"), - Attrs([Attr("address","0x654"), Attr("insn","add x0, x0, #0x48")]), - Var("R0",Imm(64)), PLUS(Var("R0",Imm(64)),Int(72,64))), -Def(Tid(553, "%00000229"), Attrs([Attr("address","0x658"), -Attr("insn","adrp x1, #69632")]), Var("R1",Imm(64)), Int(69632,64)), -Def(Tid(559, "%0000022f"), Attrs([Attr("address","0x65C"), -Attr("insn","add x1, x1, #0x48")]), Var("R1",Imm(64)), -PLUS(Var("R1",Imm(64)),Int(72,64))), Def(Tid(565, "%00000235"), - Attrs([Attr("address","0x660"), Attr("insn","cmp x1, x0")]), - Var("#1",Imm(64)), NOT(Var("R0",Imm(64)))), Def(Tid(570, "%0000023a"), - Attrs([Attr("address","0x660"), Attr("insn","cmp x1, x0")]), - Var("#2",Imm(64)), PLUS(Var("R1",Imm(64)),NOT(Var("R0",Imm(64))))), -Def(Tid(576, "%00000240"), Attrs([Attr("address","0x660"), -Attr("insn","cmp x1, x0")]), Var("VF",Imm(1)), -NEQ(SIGNED(65,PLUS(Var("#2",Imm(64)),Int(1,64))),PLUS(PLUS(SIGNED(65,Var("R1",Imm(64))),SIGNED(65,Var("#1",Imm(64)))),Int(1,65)))), -Def(Tid(582, "%00000246"), Attrs([Attr("address","0x660"), -Attr("insn","cmp x1, x0")]), Var("CF",Imm(1)), -NEQ(UNSIGNED(65,PLUS(Var("#2",Imm(64)),Int(1,64))),PLUS(PLUS(UNSIGNED(65,Var("R1",Imm(64))),UNSIGNED(65,Var("#1",Imm(64)))),Int(1,65)))), -Def(Tid(586, "%0000024a"), Attrs([Attr("address","0x660"), -Attr("insn","cmp x1, x0")]), Var("ZF",Imm(1)), -EQ(PLUS(Var("#2",Imm(64)),Int(1,64)),Int(0,64))), Def(Tid(590, "%0000024e"), - Attrs([Attr("address","0x660"), Attr("insn","cmp x1, x0")]), - Var("NF",Imm(1)), Extract(63,63,PLUS(Var("#2",Imm(64)),Int(1,64))))]), -Jmps([Goto(Tid(596, "%00000254"), Attrs([Attr("address","0x664"), -Attr("insn","b.eq #0x18")]), EQ(Var("ZF",Imm(1)),Int(1,1)), -Direct(Tid(594, "%00000252"))), Goto(Tid(1_589, "%00000635"), Attrs([]), - Int(1,1), Direct(Tid(967, "%000003c7")))])), Blk(Tid(967, "%000003c7"), - Attrs([Attr("address","0x668")]), Phis([]), Defs([Def(Tid(970, "%000003ca"), - Attrs([Attr("address","0x668"), Attr("insn","adrp x1, #65536")]), - Var("R1",Imm(64)), Int(65536,64)), Def(Tid(977, "%000003d1"), - Attrs([Attr("address","0x66C"), Attr("insn","ldr x1, [x1, #0xfc0]")]), - Var("R1",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R1",Imm(64)),Int(4032,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(982, "%000003d6"), Attrs([Attr("address","0x670"), -Attr("insn","cbz x1, #0xc")]), EQ(Var("R1",Imm(64)),Int(0,64)), -Direct(Tid(594, "%00000252"))), Goto(Tid(1_590, "%00000636"), Attrs([]), - Int(1,1), Direct(Tid(986, "%000003da")))])), Blk(Tid(594, "%00000252"), - Attrs([Attr("address","0x67C")]), Phis([]), Defs([]), -Jmps([Call(Tid(602, "%0000025a"), Attrs([Attr("address","0x67C"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))])), -Blk(Tid(986, "%000003da"), Attrs([Attr("address","0x674")]), Phis([]), -Defs([Def(Tid(990, "%000003de"), Attrs([Attr("address","0x674"), -Attr("insn","mov x16, x1")]), Var("R16",Imm(64)), Var("R1",Imm(64)))]), -Jmps([Call(Tid(995, "%000003e3"), Attrs([Attr("address","0x678"), -Attr("insn","br x16")]), Int(1,1), (Indirect(Var("R16",Imm(64))),))]))])), -Sub(Tid(1_560, "@frame_dummy"), Attrs([Attr("c.proto","signed (*)(void)"), -Attr("address","0x710")]), "frame_dummy", Args([Arg(Tid(1_606, "%00000646"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("frame_dummy_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(754, "@frame_dummy"), - Attrs([Attr("address","0x710")]), Phis([]), Defs([]), -Jmps([Call(Tid(756, "%000002f4"), Attrs([Attr("address","0x710"), -Attr("insn","b #-0x90")]), Int(1,1), -(Direct(Tid(1_562, "@register_tm_clones")),))]))])), Sub(Tid(1_561, "@main"), - Attrs([Attr("c.proto","signed (*)(signed argc, const char** argv)"), -Attr("address","0x714")]), "main", Args([Arg(Tid(1_607, "%00000647"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("main_argc",Imm(32)), -LOW(32,Var("R0",Imm(64))), In()), Arg(Tid(1_608, "%00000648"), - Attrs([Attr("c.layout","**[char : 8]"), Attr("c.data","Top:u8 ptr ptr"), -Attr("c.type"," const char**")]), Var("main_argv",Imm(64)), -Var("R1",Imm(64)), Both()), Arg(Tid(1_609, "%00000649"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("main_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(758, "@main"), - Attrs([Attr("address","0x714")]), Phis([]), Defs([Def(Tid(761, "%000002f9"), - Attrs([Attr("address","0x714"), Attr("insn","adrp x10, #69632")]), - Var("R10",Imm(64)), Int(69632,64)), Def(Tid(767, "%000002ff"), - Attrs([Attr("address","0x718"), Attr("insn","add x10, x10, #0x40")]), - Var("R10",Imm(64)), PLUS(Var("R10",Imm(64)),Int(64,64))), -Def(Tid(772, "%00000304"), Attrs([Attr("address","0x71C"), -Attr("insn","adrp x8, #69632")]), Var("R8",Imm(64)), Int(69632,64)), -Def(Tid(777, "%00000309"), Attrs([Attr("address","0x720"), -Attr("insn","adrp x9, #69632")]), Var("R9",Imm(64)), Int(69632,64)), -Def(Tid(782, "%0000030e"), Attrs([Attr("address","0x724"), -Attr("insn","adrp x12, #69632")]), Var("R12",Imm(64)), Int(69632,64)), -Def(Tid(787, "%00000313"), Attrs([Attr("address","0x728"), -Attr("insn","mov w0, wzr")]), Var("R0",Imm(64)), Int(0,64)), -Def(Tid(794, "%0000031a"), Attrs([Attr("address","0x72C"), -Attr("insn","ldr w11, [x10]")]), Var("R11",Imm(64)), -UNSIGNED(64,Load(Var("mem",Mem(64,8)),Var("R10",Imm(64)),LittleEndian(),32))), -Def(Tid(801, "%00000321"), Attrs([Attr("address","0x730"), -Attr("insn","ldr w13, [x8, #0x30]")]), Var("R13",Imm(64)), -UNSIGNED(64,Load(Var("mem",Mem(64,8)),PLUS(Var("R8",Imm(64)),Int(48,64)),LittleEndian(),32))), -Def(Tid(808, "%00000328"), Attrs([Attr("address","0x734"), -Attr("insn","ldr x14, [x9, #0x38]")]), Var("R14",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R9",Imm(64)),Int(56,64)),LittleEndian(),64)), -Def(Tid(814, "%0000032e"), Attrs([Attr("address","0x738"), -Attr("insn","add w11, w11, #0x3")]), Var("R11",Imm(64)), -UNSIGNED(64,PLUS(Extract(31,0,Var("R11",Imm(64))),Int(3,32)))), -Def(Tid(821, "%00000335"), Attrs([Attr("address","0x73C"), -Attr("insn","ldrb w15, [x12, #0x34]")]), Var("R15",Imm(64)), -UNSIGNED(64,Load(Var("mem",Mem(64,8)),PLUS(Var("R12",Imm(64)),Int(52,64)),LittleEndian(),8))), -Def(Tid(827, "%0000033b"), Attrs([Attr("address","0x740"), -Attr("insn","add w13, w13, #0x1")]), Var("R13",Imm(64)), -UNSIGNED(64,PLUS(Extract(31,0,Var("R13",Imm(64))),Int(1,32)))), -Def(Tid(833, "%00000341"), Attrs([Attr("address","0x744"), -Attr("insn","sub x14, x14, #0x1")]), Var("R14",Imm(64)), -PLUS(Var("R14",Imm(64)),Int(18446744073709551615,64))), -Def(Tid(841, "%00000349"), Attrs([Attr("address","0x748"), -Attr("insn","str w11, [x10, #0x4]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R10",Imm(64)),Int(4,64)),Extract(31,0,Var("R11",Imm(64))),LittleEndian(),32)), -Def(Tid(847, "%0000034f"), Attrs([Attr("address","0x74C"), -Attr("insn","add w10, w15, #0x1")]), Var("R10",Imm(64)), -UNSIGNED(64,PLUS(Extract(31,0,Var("R15",Imm(64))),Int(1,32)))), -Def(Tid(855, "%00000357"), Attrs([Attr("address","0x750"), -Attr("insn","str w13, [x8, #0x30]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R8",Imm(64)),Int(48,64)),Extract(31,0,Var("R13",Imm(64))),LittleEndian(),32)), -Def(Tid(863, "%0000035f"), Attrs([Attr("address","0x754"), -Attr("insn","str x14, [x9, #0x38]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R9",Imm(64)),Int(56,64)),Var("R14",Imm(64)),LittleEndian(),64)), -Def(Tid(871, "%00000367"), Attrs([Attr("address","0x758"), -Attr("insn","strb w10, [x12, #0x34]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R12",Imm(64)),Int(52,64)),Extract(7,0,Var("R10",Imm(64))),LittleEndian(),8))]), -Jmps([Call(Tid(876, "%0000036c"), Attrs([Attr("address","0x75C"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))]))])), -Sub(Tid(1_562, "@register_tm_clones"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x680")]), - "register_tm_clones", Args([Arg(Tid(1_610, "%0000064a"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("register_tm_clones_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(604, "@register_tm_clones"), Attrs([Attr("address","0x680")]), - Phis([]), Defs([Def(Tid(607, "%0000025f"), Attrs([Attr("address","0x680"), -Attr("insn","adrp x0, #69632")]), Var("R0",Imm(64)), Int(69632,64)), -Def(Tid(613, "%00000265"), Attrs([Attr("address","0x684"), -Attr("insn","add x0, x0, #0x48")]), Var("R0",Imm(64)), -PLUS(Var("R0",Imm(64)),Int(72,64))), Def(Tid(618, "%0000026a"), - Attrs([Attr("address","0x688"), Attr("insn","adrp x1, #69632")]), - Var("R1",Imm(64)), Int(69632,64)), Def(Tid(624, "%00000270"), - Attrs([Attr("address","0x68C"), Attr("insn","add x1, x1, #0x48")]), - Var("R1",Imm(64)), PLUS(Var("R1",Imm(64)),Int(72,64))), -Def(Tid(631, "%00000277"), Attrs([Attr("address","0x690"), -Attr("insn","sub x1, x1, x0")]), Var("R1",Imm(64)), -PLUS(PLUS(Var("R1",Imm(64)),NOT(Var("R0",Imm(64)))),Int(1,64))), -Def(Tid(637, "%0000027d"), Attrs([Attr("address","0x694"), -Attr("insn","lsr x2, x1, #63")]), Var("R2",Imm(64)), -Concat(Int(0,63),Extract(63,63,Var("R1",Imm(64))))), -Def(Tid(644, "%00000284"), Attrs([Attr("address","0x698"), -Attr("insn","add x1, x2, x1, asr #3")]), Var("R1",Imm(64)), -PLUS(Var("R2",Imm(64)),ARSHIFT(Var("R1",Imm(64)),Int(3,3)))), -Def(Tid(650, "%0000028a"), Attrs([Attr("address","0x69C"), -Attr("insn","asr x1, x1, #1")]), Var("R1",Imm(64)), -SIGNED(64,Extract(63,1,Var("R1",Imm(64)))))]), -Jmps([Goto(Tid(656, "%00000290"), Attrs([Attr("address","0x6A0"), -Attr("insn","cbz x1, #0x18")]), EQ(Var("R1",Imm(64)),Int(0,64)), -Direct(Tid(654, "%0000028e"))), Goto(Tid(1_591, "%00000637"), Attrs([]), - Int(1,1), Direct(Tid(937, "%000003a9")))])), Blk(Tid(937, "%000003a9"), - Attrs([Attr("address","0x6A4")]), Phis([]), Defs([Def(Tid(940, "%000003ac"), - Attrs([Attr("address","0x6A4"), Attr("insn","adrp x2, #65536")]), - Var("R2",Imm(64)), Int(65536,64)), Def(Tid(947, "%000003b3"), - Attrs([Attr("address","0x6A8"), Attr("insn","ldr x2, [x2, #0xfe0]")]), - Var("R2",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R2",Imm(64)),Int(4064,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(952, "%000003b8"), Attrs([Attr("address","0x6AC"), -Attr("insn","cbz x2, #0xc")]), EQ(Var("R2",Imm(64)),Int(0,64)), -Direct(Tid(654, "%0000028e"))), Goto(Tid(1_592, "%00000638"), Attrs([]), - Int(1,1), Direct(Tid(956, "%000003bc")))])), Blk(Tid(654, "%0000028e"), - Attrs([Attr("address","0x6B8")]), Phis([]), Defs([]), -Jmps([Call(Tid(662, "%00000296"), Attrs([Attr("address","0x6B8"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))])), -Blk(Tid(956, "%000003bc"), Attrs([Attr("address","0x6B0")]), Phis([]), -Defs([Def(Tid(960, "%000003c0"), Attrs([Attr("address","0x6B0"), -Attr("insn","mov x16, x2")]), Var("R16",Imm(64)), Var("R2",Imm(64)))]), -Jmps([Call(Tid(965, "%000003c5"), Attrs([Attr("address","0x6B4"), -Attr("insn","br x16")]), Int(1,1), -(Indirect(Var("R16",Imm(64))),))]))]))]))) \ No newline at end of file diff --git a/src/test/correct/initialisation/clang_O2/initialisation.bir b/src/test/correct/initialisation/clang_O2/initialisation.bir deleted file mode 100644 index 26191b350..000000000 --- a/src/test/correct/initialisation/clang_O2/initialisation.bir +++ /dev/null @@ -1,241 +0,0 @@ -00000639: program -00000607: sub __cxa_finalize(__cxa_finalize_result) -0000063a: __cxa_finalize_result :: out u32 = low:32[R0] - -000003a5: -0000049d: R16 := 0x11000 -000004a4: R17 := mem[R16 + 8, el]:u64 -000004aa: R16 := R16 + 8 -000004af: call R17 with noreturn - -00000608: sub __do_global_dtors_aux(__do_global_dtors_aux_result) -0000063b: __do_global_dtors_aux_result :: out u32 = low:32[R0] - -0000029a: -0000029e: #3 := R31 - 0x20 -000002a4: mem := mem with [#3, el]:u64 <- R29 -000002aa: mem := mem with [#3 + 8, el]:u64 <- R30 -000002ae: R31 := #3 -000002b4: R29 := R31 -000002bc: mem := mem with [R31 + 0x10, el]:u64 <- R19 -000002c1: R19 := 0x11000 -000002c8: R0 := pad:64[mem[R19 + 0x48]] -000002cf: when 31:0[R0] <> 0 goto %000002cd -0000062f: goto %0000036e - -0000036e: -00000371: R0 := 0x10000 -00000378: R0 := mem[R0 + 0xFC8, el]:u64 -0000037e: when R0 = 0 goto %0000037c -00000630: goto %00000395 - -00000395: -00000398: R0 := 0x11000 -0000039f: R0 := mem[R0 + 0x28, el]:u64 -000003a4: R30 := 0x6F0 -000003a7: call @__cxa_finalize with return %0000037c - -0000037c: -00000384: R30 := 0x6F4 -00000386: call @deregister_tm_clones with return %00000388 - -00000388: -0000038b: R0 := 1 -00000393: mem := mem with [R19 + 0x48] <- 7:0[R0] -00000631: goto %000002cd - -000002cd: -000002d7: R19 := mem[R31 + 0x10, el]:u64 -000002de: R29 := mem[R31, el]:u64 -000002e3: R30 := mem[R31 + 8, el]:u64 -000002e7: R31 := R31 + 0x20 -000002ec: call R30 with noreturn - -0000060c: sub __libc_start_main(__libc_start_main_main, __libc_start_main_arg2, __libc_start_main_arg3, __libc_start_main_auxv, __libc_start_main_result) -0000063c: __libc_start_main_main :: in u64 = R0 -0000063d: __libc_start_main_arg2 :: in u32 = low:32[R1] -0000063e: __libc_start_main_arg3 :: in out u64 = R2 -0000063f: __libc_start_main_auxv :: in out u64 = R3 -00000640: __libc_start_main_result :: out u32 = low:32[R0] - -000001f3: -00000487: R16 := 0x11000 -0000048e: R17 := mem[R16, el]:u64 -00000494: R16 := R16 -00000499: call R17 with noreturn - -0000060d: sub _fini(_fini_result) -00000641: _fini_result :: out u32 = low:32[R0] - -0000001f: -00000025: #0 := R31 - 0x10 -0000002b: mem := mem with [#0, el]:u64 <- R29 -00000031: mem := mem with [#0 + 8, el]:u64 <- R30 -00000035: R31 := #0 -0000003b: R29 := R31 -00000042: R29 := mem[R31, el]:u64 -00000047: R30 := mem[R31 + 8, el]:u64 -0000004b: R31 := R31 + 0x10 -00000050: call R30 with noreturn - -0000060e: sub _init(_init_result) -00000642: _init_result :: out u32 = low:32[R0] - -00000556: -0000055c: #5 := R31 - 0x10 -00000562: mem := mem with [#5, el]:u64 <- R29 -00000568: mem := mem with [#5 + 8, el]:u64 <- R30 -0000056c: R31 := #5 -00000572: R29 := R31 -00000577: R30 := 0x590 -00000579: call @call_weak_fn with return %0000057b - -0000057b: -00000580: R29 := mem[R31, el]:u64 -00000585: R30 := mem[R31 + 8, el]:u64 -00000589: R31 := R31 + 0x10 -0000058e: call R30 with noreturn - -0000060f: sub _start(_start_result) -00000643: _start_result :: out u32 = low:32[R0] - -000001b4: -000001b9: R29 := 0 -000001be: R30 := 0 -000001c4: R5 := R0 -000001cb: R1 := mem[R31, el]:u64 -000001d1: R2 := R31 + 8 -000001d7: R6 := R31 -000001dc: R0 := 0x10000 -000001e3: R0 := mem[R0 + 0xFD8, el]:u64 -000001e8: R3 := 0 -000001ed: R4 := 0 -000001f2: R30 := 0x630 -000001f5: call @__libc_start_main with return %000001f7 - -000001f7: -000001fa: R30 := 0x634 -000001fd: call @abort with return %00000632 - -00000632: -00000633: call @call_weak_fn with noreturn - -00000612: sub abort() - - -000001fb: -000004c9: R16 := 0x11000 -000004d0: R17 := mem[R16 + 0x18, el]:u64 -000004d6: R16 := R16 + 0x18 -000004db: call R17 with noreturn - -00000613: sub call_weak_fn(call_weak_fn_result) -00000644: call_weak_fn_result :: out u32 = low:32[R0] - -000001ff: -00000202: R0 := 0x10000 -00000209: R0 := mem[R0 + 0xFD0, el]:u64 -0000020f: when R0 = 0 goto %0000020d -00000634: goto %000003e5 - -0000020d: -00000215: call R30 with noreturn - -000003e5: -000003e8: goto @__gmon_start__ - -000003e6: -000004b3: R16 := 0x11000 -000004ba: R17 := mem[R16 + 0x10, el]:u64 -000004c0: R16 := R16 + 0x10 -000004c5: call R17 with noreturn - -00000615: sub deregister_tm_clones(deregister_tm_clones_result) -00000645: deregister_tm_clones_result :: out u32 = low:32[R0] - -0000021b: -0000021e: R0 := 0x11000 -00000224: R0 := R0 + 0x48 -00000229: R1 := 0x11000 -0000022f: R1 := R1 + 0x48 -00000235: #1 := ~R0 -0000023a: #2 := R1 + ~R0 -00000240: VF := extend:65[#2 + 1] <> extend:65[R1] + extend:65[#1] + 1 -00000246: CF := pad:65[#2 + 1] <> pad:65[R1] + pad:65[#1] + 1 -0000024a: ZF := #2 + 1 = 0 -0000024e: NF := 63:63[#2 + 1] -00000254: when ZF goto %00000252 -00000635: goto %000003c7 - -000003c7: -000003ca: R1 := 0x10000 -000003d1: R1 := mem[R1 + 0xFC0, el]:u64 -000003d6: when R1 = 0 goto %00000252 -00000636: goto %000003da - -00000252: -0000025a: call R30 with noreturn - -000003da: -000003de: R16 := R1 -000003e3: call R16 with noreturn - -00000618: sub frame_dummy(frame_dummy_result) -00000646: frame_dummy_result :: out u32 = low:32[R0] - -000002f2: -000002f4: call @register_tm_clones with noreturn - -00000619: sub main(main_argc, main_argv, main_result) -00000647: main_argc :: in u32 = low:32[R0] -00000648: main_argv :: in out u64 = R1 -00000649: main_result :: out u32 = low:32[R0] - -000002f6: -000002f9: R10 := 0x11000 -000002ff: R10 := R10 + 0x40 -00000304: R8 := 0x11000 -00000309: R9 := 0x11000 -0000030e: R12 := 0x11000 -00000313: R0 := 0 -0000031a: R11 := pad:64[mem[R10, el]:u32] -00000321: R13 := pad:64[mem[R8 + 0x30, el]:u32] -00000328: R14 := mem[R9 + 0x38, el]:u64 -0000032e: R11 := pad:64[31:0[R11] + 3] -00000335: R15 := pad:64[mem[R12 + 0x34]] -0000033b: R13 := pad:64[31:0[R13] + 1] -00000341: R14 := R14 - 1 -00000349: mem := mem with [R10 + 4, el]:u32 <- 31:0[R11] -0000034f: R10 := pad:64[31:0[R15] + 1] -00000357: mem := mem with [R8 + 0x30, el]:u32 <- 31:0[R13] -0000035f: mem := mem with [R9 + 0x38, el]:u64 <- R14 -00000367: mem := mem with [R12 + 0x34] <- 7:0[R10] -0000036c: call R30 with noreturn - -0000061a: sub register_tm_clones(register_tm_clones_result) -0000064a: register_tm_clones_result :: out u32 = low:32[R0] - -0000025c: -0000025f: R0 := 0x11000 -00000265: R0 := R0 + 0x48 -0000026a: R1 := 0x11000 -00000270: R1 := R1 + 0x48 -00000277: R1 := R1 + ~R0 + 1 -0000027d: R2 := 0.63:63[R1] -00000284: R1 := R2 + (R1 ~>> 3) -0000028a: R1 := extend:64[63:1[R1]] -00000290: when R1 = 0 goto %0000028e -00000637: goto %000003a9 - -000003a9: -000003ac: R2 := 0x10000 -000003b3: R2 := mem[R2 + 0xFE0, el]:u64 -000003b8: when R2 = 0 goto %0000028e -00000638: goto %000003bc - -0000028e: -00000296: call R30 with noreturn - -000003bc: -000003c0: R16 := R2 -000003c5: call R16 with noreturn diff --git a/src/test/correct/initialisation/clang_O2/initialisation.expected b/src/test/correct/initialisation/clang_O2/initialisation.expected index 17fb5ecd4..0f268eebf 100644 --- a/src/test/correct/initialisation/clang_O2/initialisation.expected +++ b/src/test/correct/initialisation/clang_O2/initialisation.expected @@ -4,7 +4,6 @@ var {:extern} Gamma_R11: bool; var {:extern} Gamma_R12: bool; var {:extern} Gamma_R13: bool; var {:extern} Gamma_R14: bool; -var {:extern} Gamma_R15: bool; var {:extern} Gamma_R8: bool; var {:extern} Gamma_R9: bool; var {:extern} Gamma_mem: [bv64]bool; @@ -14,18 +13,17 @@ var {:extern} R11: bv64; var {:extern} R12: bv64; var {:extern} R13: bv64; var {:extern} R14: bv64; -var {:extern} R15: bv64; var {:extern} R8: bv64; var {:extern} R9: bv64; var {:extern} mem: [bv64]bv8; const {:extern} $a_addr: bv64; -axiom ($a_addr == 69696bv64); +axiom ($a_addr == 131104bv64); const {:extern} $x_addr: bv64; -axiom ($x_addr == 69680bv64); +axiom ($x_addr == 131088bv64); const {:extern} $y_addr: bv64; -axiom ($y_addr == 69684bv64); +axiom ($y_addr == 131092bv64); const {:extern} $z_addr: bv64; -axiom ($z_addr == 69688bv64); +axiom ($z_addr == 131096bv64); function {:extern} L(mem$in: [bv64]bv8, index: bv64) returns (bool) { false } @@ -86,11 +84,15 @@ procedure {:extern} rely(); modifies Gamma_mem, mem; ensures (Gamma_mem == old(Gamma_mem)); ensures (mem == old(mem)); - free ensures (memory_load32_le(mem, 1908bv64) == 131073bv32); - free ensures (memory_load64_le(mem, 69064bv64) == 1808bv64); - free ensures (memory_load64_le(mem, 69072bv64) == 1728bv64); - free ensures (memory_load64_le(mem, 69592bv64) == 1812bv64); - free ensures (memory_load64_le(mem, 69672bv64) == 69672bv64); + free ensures (memory_load32_le(mem, 2432bv64) == 131073bv32); + free ensures (memory_load64_le(mem, 130408bv64) == 2320bv64); + free ensures (memory_load64_le(mem, 130416bv64) == 2240bv64); + free ensures (memory_load64_le(mem, 131016bv64) == 131096bv64); + free ensures (memory_load64_le(mem, 131024bv64) == 131088bv64); + free ensures (memory_load64_le(mem, 131040bv64) == 131104bv64); + free ensures (memory_load64_le(mem, 131048bv64) == 131092bv64); + free ensures (memory_load64_le(mem, 131056bv64) == 2324bv64); + free ensures (memory_load64_le(mem, 131080bv64) == 131080bv64); procedure {:extern} rely_transitive(); modifies Gamma_mem, mem; @@ -108,80 +110,107 @@ procedure {:extern} rely_reflexive(); procedure {:extern} guarantee_reflexive(); modifies Gamma_mem, mem; -procedure main_1812(); - modifies Gamma_R0, Gamma_R10, Gamma_R11, Gamma_R12, Gamma_R13, Gamma_R14, Gamma_R15, Gamma_R8, Gamma_R9, Gamma_mem, R0, R10, R11, R12, R13, R14, R15, R8, R9, mem; - free requires (memory_load64_le(mem, 69664bv64) == 0bv64); - free requires (memory_load64_le(mem, 69672bv64) == 69672bv64); - free requires (memory_load64_le(mem, 69680bv64) == 416611827717bv64); - free requires (memory_load64_le(mem, 69688bv64) == 68719476735bv64); - free requires (memory_load64_le(mem, 69696bv64) == 8589934593bv64); - free requires (memory_load32_le(mem, 1908bv64) == 131073bv32); - free requires (memory_load64_le(mem, 69064bv64) == 1808bv64); - free requires (memory_load64_le(mem, 69072bv64) == 1728bv64); - free requires (memory_load64_le(mem, 69592bv64) == 1812bv64); - free requires (memory_load64_le(mem, 69672bv64) == 69672bv64); +procedure main(); + modifies Gamma_R0, Gamma_R10, Gamma_R11, Gamma_R12, Gamma_R13, Gamma_R14, Gamma_R8, Gamma_R9, Gamma_mem, R0, R10, R11, R12, R13, R14, R8, R9, mem; + free requires (memory_load64_le(mem, 131072bv64) == 0bv64); + free requires (memory_load64_le(mem, 131080bv64) == 131080bv64); + free requires (memory_load64_le(mem, 131088bv64) == 416611827717bv64); + free requires (memory_load64_le(mem, 131096bv64) == 68719476735bv64); + free requires (memory_load64_le(mem, 131104bv64) == 8589934593bv64); + free requires (memory_load32_le(mem, 2432bv64) == 131073bv32); + free requires (memory_load64_le(mem, 130408bv64) == 2320bv64); + free requires (memory_load64_le(mem, 130416bv64) == 2240bv64); + free requires (memory_load64_le(mem, 131016bv64) == 131096bv64); + free requires (memory_load64_le(mem, 131024bv64) == 131088bv64); + free requires (memory_load64_le(mem, 131040bv64) == 131104bv64); + free requires (memory_load64_le(mem, 131048bv64) == 131092bv64); + free requires (memory_load64_le(mem, 131056bv64) == 2324bv64); + free requires (memory_load64_le(mem, 131080bv64) == 131080bv64); ensures (memory_load32_le(mem, $x_addr) == 6bv32); ensures (memory_load32_le(mem, bvadd64($a_addr, 4bv64)) == 4bv32); ensures (memory_load32_le(mem, bvadd64($a_addr, 0bv64)) == 1bv32); - free ensures (memory_load32_le(mem, 1908bv64) == 131073bv32); - free ensures (memory_load64_le(mem, 69064bv64) == 1808bv64); - free ensures (memory_load64_le(mem, 69072bv64) == 1728bv64); - free ensures (memory_load64_le(mem, 69592bv64) == 1812bv64); - free ensures (memory_load64_le(mem, 69672bv64) == 69672bv64); - -implementation main_1812() + free ensures (memory_load32_le(mem, 2432bv64) == 131073bv32); + free ensures (memory_load64_le(mem, 130408bv64) == 2320bv64); + free ensures (memory_load64_le(mem, 130416bv64) == 2240bv64); + free ensures (memory_load64_le(mem, 131016bv64) == 131096bv64); + free ensures (memory_load64_le(mem, 131024bv64) == 131088bv64); + free ensures (memory_load64_le(mem, 131040bv64) == 131104bv64); + free ensures (memory_load64_le(mem, 131048bv64) == 131092bv64); + free ensures (memory_load64_le(mem, 131056bv64) == 2324bv64); + free ensures (memory_load64_le(mem, 131080bv64) == 131080bv64); + +implementation main() { - var Gamma_load18: bool; - var Gamma_load19: bool; - var Gamma_load20: bool; - var Gamma_load21: bool; - var load18: bv32; - var load19: bv32; - var load20: bv64; - var load21: bv8; + var $load$18: bv64; + var $load$19: bv64; + var $load$20: bv64; + var $load$21: bv32; + var $load$22: bv64; + var $load$23: bv64; + var $load$24: bv32; + var $load$25: bv8; + var Gamma_$load$18: bool; + var Gamma_$load$19: bool; + var Gamma_$load$20: bool; + var Gamma_$load$21: bool; + var Gamma_$load$22: bool; + var Gamma_$load$23: bool; + var Gamma_$load$24: bool; + var Gamma_$load$25: bool; lmain: assume {:captureState "lmain"} true; - R10, Gamma_R10 := 69632bv64, true; - R10, Gamma_R10 := bvadd64(R10, 64bv64), Gamma_R10; - R8, Gamma_R8 := 69632bv64, true; - R9, Gamma_R9 := 69632bv64, true; - R12, Gamma_R12 := 69632bv64, true; + R8, Gamma_R8 := 126976bv64, true; + R9, Gamma_R9 := 126976bv64, true; + R10, Gamma_R10 := 126976bv64, true; + call rely(); + $load$18, Gamma_$load$18 := memory_load64_le(mem, bvadd64(R8, 4048bv64)), (gamma_load64(Gamma_mem, bvadd64(R8, 4048bv64)) || L(mem, bvadd64(R8, 4048bv64))); + R8, Gamma_R8 := $load$18, Gamma_$load$18; + call rely(); + $load$19, Gamma_$load$19 := memory_load64_le(mem, bvadd64(R9, 4040bv64)), (gamma_load64(Gamma_mem, bvadd64(R9, 4040bv64)) || L(mem, bvadd64(R9, 4040bv64))); + R9, Gamma_R9 := $load$19, Gamma_$load$19; + call rely(); + $load$20, Gamma_$load$20 := memory_load64_le(mem, bvadd64(R10, 4064bv64)), (gamma_load64(Gamma_mem, bvadd64(R10, 4064bv64)) || L(mem, bvadd64(R10, 4064bv64))); + R10, Gamma_R10 := $load$20, Gamma_$load$20; + R12, Gamma_R12 := 126976bv64, true; R0, Gamma_R0 := 0bv64, true; call rely(); - load18, Gamma_load18 := memory_load32_le(mem, R10), (gamma_load32(Gamma_mem, R10) || L(mem, R10)); - R11, Gamma_R11 := zero_extend32_32(load18), Gamma_load18; + $load$21, Gamma_$load$21 := memory_load32_le(mem, R8), (gamma_load32(Gamma_mem, R8) || L(mem, R8)); + R11, Gamma_R11 := zero_extend32_32($load$21), Gamma_$load$21; + call rely(); + $load$22, Gamma_$load$22 := memory_load64_le(mem, bvadd64(R12, 4072bv64)), (gamma_load64(Gamma_mem, bvadd64(R12, 4072bv64)) || L(mem, bvadd64(R12, 4072bv64))); + R12, Gamma_R12 := $load$22, Gamma_$load$22; call rely(); - load19, Gamma_load19 := memory_load32_le(mem, bvadd64(R8, 48bv64)), (gamma_load32(Gamma_mem, bvadd64(R8, 48bv64)) || L(mem, bvadd64(R8, 48bv64))); - R13, Gamma_R13 := zero_extend32_32(load19), Gamma_load19; + $load$23, Gamma_$load$23 := memory_load64_le(mem, R9), (gamma_load64(Gamma_mem, R9) || L(mem, R9)); + R13, Gamma_R13 := $load$23, Gamma_$load$23; call rely(); - load20, Gamma_load20 := memory_load64_le(mem, bvadd64(R9, 56bv64)), (gamma_load64(Gamma_mem, bvadd64(R9, 56bv64)) || L(mem, bvadd64(R9, 56bv64))); - R14, Gamma_R14 := load20, Gamma_load20; - R11, Gamma_R11 := zero_extend32_32(bvadd32(R11[32:0], 3bv32)), Gamma_R11; + $load$24, Gamma_$load$24 := memory_load32_le(mem, R10), (gamma_load32(Gamma_mem, R10) || L(mem, R10)); + R14, Gamma_R14 := zero_extend32_32($load$24), Gamma_$load$24; + R11, Gamma_R11 := zero_extend32_32(bvadd32(R11[32:0], 1bv32)), Gamma_R11; call rely(); - load21, Gamma_load21 := memory_load8_le(mem, bvadd64(R12, 52bv64)), (gamma_load8(Gamma_mem, bvadd64(R12, 52bv64)) || L(mem, bvadd64(R12, 52bv64))); - R15, Gamma_R15 := zero_extend56_8(load21), Gamma_load21; - R13, Gamma_R13 := zero_extend32_32(bvadd32(R13[32:0], 1bv32)), Gamma_R13; - R14, Gamma_R14 := bvadd64(R14, 18446744073709551615bv64), Gamma_R14; + assert (L(mem, R8) ==> Gamma_R11); + mem, Gamma_mem := memory_store32_le(mem, R8, R11[32:0]), gamma_store32(Gamma_mem, R8, Gamma_R11); + assume {:captureState "%000002b0"} true; call rely(); - assert (L(mem, bvadd64(R10, 4bv64)) ==> Gamma_R11); - mem, Gamma_mem := memory_store32_le(mem, bvadd64(R10, 4bv64), R11[32:0]), gamma_store32(Gamma_mem, bvadd64(R10, 4bv64), Gamma_R11); - assume {:captureState "%00000349"} true; - R10, Gamma_R10 := zero_extend32_32(bvadd32(R15[32:0], 1bv32)), Gamma_R15; + $load$25, Gamma_$load$25 := memory_load8_le(mem, R12), (gamma_load8(Gamma_mem, R12) || L(mem, R12)); + R8, Gamma_R8 := zero_extend56_8($load$25), Gamma_$load$25; + R11, Gamma_R11 := bvadd64(R13, 18446744073709551615bv64), Gamma_R13; call rely(); - assert (L(mem, bvadd64(R8, 48bv64)) ==> Gamma_R13); - mem, Gamma_mem := memory_store32_le(mem, bvadd64(R8, 48bv64), R13[32:0]), gamma_store32(Gamma_mem, bvadd64(R8, 48bv64), Gamma_R13); - assume {:captureState "%00000357"} true; + assert (L(mem, R9) ==> Gamma_R11); + mem, Gamma_mem := memory_store64_le(mem, R9, R11), gamma_store64(Gamma_mem, R9, Gamma_R11); + assume {:captureState "%000002bc"} true; + R9, Gamma_R9 := zero_extend32_32(bvadd32(R14[32:0], 3bv32)), Gamma_R14; + R8, Gamma_R8 := zero_extend32_32(bvadd32(R8[32:0], 1bv32)), Gamma_R8; call rely(); - assert (L(mem, bvadd64(R9, 56bv64)) ==> Gamma_R14); - mem, Gamma_mem := memory_store64_le(mem, bvadd64(R9, 56bv64), R14), gamma_store64(Gamma_mem, bvadd64(R9, 56bv64), Gamma_R14); - assume {:captureState "%0000035f"} true; + assert (L(mem, bvadd64(R10, 4bv64)) ==> Gamma_R9); + mem, Gamma_mem := memory_store32_le(mem, bvadd64(R10, 4bv64), R9[32:0]), gamma_store32(Gamma_mem, bvadd64(R10, 4bv64), Gamma_R9); + assume {:captureState "%000002c8"} true; call rely(); - assert (L(mem, bvadd64(R12, 52bv64)) ==> Gamma_R10); - mem, Gamma_mem := memory_store8_le(mem, bvadd64(R12, 52bv64), R10[8:0]), gamma_store8(Gamma_mem, bvadd64(R12, 52bv64), Gamma_R10); - assume {:captureState "%00000367"} true; - goto main_1812_basil_return; - main_1812_basil_return: - assume {:captureState "main_1812_basil_return"} true; + assert (L(mem, R12) ==> Gamma_R8); + mem, Gamma_mem := memory_store8_le(mem, R12, R8[8:0]), gamma_store8(Gamma_mem, R12, Gamma_R8); + assume {:captureState "%000002cc"} true; + goto main_basil_return; + main_basil_return: + assume {:captureState "main_basil_return"} true; return; } diff --git a/src/test/correct/initialisation/clang_O2/initialisation.gts b/src/test/correct/initialisation/clang_O2/initialisation.gts deleted file mode 100644 index ef3b85a6b..000000000 Binary files a/src/test/correct/initialisation/clang_O2/initialisation.gts and /dev/null differ diff --git a/src/test/correct/initialisation/clang_O2/initialisation.md5sum b/src/test/correct/initialisation/clang_O2/initialisation.md5sum new file mode 100644 index 000000000..ab5f4c5ee --- /dev/null +++ b/src/test/correct/initialisation/clang_O2/initialisation.md5sum @@ -0,0 +1,5 @@ +2afca183c8f64242b52d1ed2af7a7f1d correct/initialisation/clang_O2/a.out +048ed5a5fa60c626abf5a47d0182b052 correct/initialisation/clang_O2/initialisation.adt +8e6ff5e1c4d7b4a8b1881d0500cb0b46 correct/initialisation/clang_O2/initialisation.bir +8bb45067e16a6b35e917dd5bac22d3fb correct/initialisation/clang_O2/initialisation.relf +27f3459cf4f3690247b0c0ea44a9e5a4 correct/initialisation/clang_O2/initialisation.gts diff --git a/src/test/correct/initialisation/clang_O2/initialisation.relf b/src/test/correct/initialisation/clang_O2/initialisation.relf deleted file mode 100644 index 98984df0e..000000000 --- a/src/test/correct/initialisation/clang_O2/initialisation.relf +++ /dev/null @@ -1,126 +0,0 @@ - -Relocation section '.rela.dyn' at offset 0x460 contains 8 entries: - Offset Info Type Symbol's Value Symbol's Name + Addend -0000000000010dc8 0000000000000403 R_AARCH64_RELATIVE 710 -0000000000010dd0 0000000000000403 R_AARCH64_RELATIVE 6c0 -0000000000010fd8 0000000000000403 R_AARCH64_RELATIVE 714 -0000000000011028 0000000000000403 R_AARCH64_RELATIVE 11028 -0000000000010fc0 0000000400000401 R_AARCH64_GLOB_DAT 0000000000000000 _ITM_deregisterTMCloneTable + 0 -0000000000010fc8 0000000500000401 R_AARCH64_GLOB_DAT 0000000000000000 __cxa_finalize@GLIBC_2.17 + 0 -0000000000010fd0 0000000600000401 R_AARCH64_GLOB_DAT 0000000000000000 __gmon_start__ + 0 -0000000000010fe0 0000000800000401 R_AARCH64_GLOB_DAT 0000000000000000 _ITM_registerTMCloneTable + 0 - -Relocation section '.rela.plt' at offset 0x520 contains 4 entries: - Offset Info Type Symbol's Value Symbol's Name + Addend -0000000000011000 0000000300000402 R_AARCH64_JUMP_SLOT 0000000000000000 __libc_start_main@GLIBC_2.34 + 0 -0000000000011008 0000000500000402 R_AARCH64_JUMP_SLOT 0000000000000000 __cxa_finalize@GLIBC_2.17 + 0 -0000000000011010 0000000600000402 R_AARCH64_JUMP_SLOT 0000000000000000 __gmon_start__ + 0 -0000000000011018 0000000700000402 R_AARCH64_JUMP_SLOT 0000000000000000 abort@GLIBC_2.17 + 0 - -Symbol table '.dynsym' contains 9 entries: - Num: Value Size Type Bind Vis Ndx Name - 0: 0000000000000000 0 NOTYPE LOCAL DEFAULT UND - 1: 0000000000000580 0 SECTION LOCAL DEFAULT 11 .init - 2: 0000000000011020 0 SECTION LOCAL DEFAULT 23 .data - 3: 0000000000000000 0 FUNC GLOBAL DEFAULT UND __libc_start_main@GLIBC_2.34 (2) - 4: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_deregisterTMCloneTable - 5: 0000000000000000 0 FUNC WEAK DEFAULT UND __cxa_finalize@GLIBC_2.17 (3) - 6: 0000000000000000 0 NOTYPE WEAK DEFAULT UND __gmon_start__ - 7: 0000000000000000 0 FUNC GLOBAL DEFAULT UND abort@GLIBC_2.17 (3) - 8: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_registerTMCloneTable - -Symbol table '.symtab' contains 93 entries: - Num: Value Size Type Bind Vis Ndx Name - 0: 0000000000000000 0 NOTYPE LOCAL DEFAULT UND - 1: 0000000000000238 0 SECTION LOCAL DEFAULT 1 .interp - 2: 0000000000000254 0 SECTION LOCAL DEFAULT 2 .note.gnu.build-id - 3: 0000000000000278 0 SECTION LOCAL DEFAULT 3 .note.ABI-tag - 4: 0000000000000298 0 SECTION LOCAL DEFAULT 4 .gnu.hash - 5: 00000000000002b8 0 SECTION LOCAL DEFAULT 5 .dynsym - 6: 0000000000000390 0 SECTION LOCAL DEFAULT 6 .dynstr - 7: 000000000000041e 0 SECTION LOCAL DEFAULT 7 .gnu.version - 8: 0000000000000430 0 SECTION LOCAL DEFAULT 8 .gnu.version_r - 9: 0000000000000460 0 SECTION LOCAL DEFAULT 9 .rela.dyn - 10: 0000000000000520 0 SECTION LOCAL DEFAULT 10 .rela.plt - 11: 0000000000000580 0 SECTION LOCAL DEFAULT 11 .init - 12: 00000000000005a0 0 SECTION LOCAL DEFAULT 12 .plt - 13: 0000000000000600 0 SECTION LOCAL DEFAULT 13 .text - 14: 0000000000000760 0 SECTION LOCAL DEFAULT 14 .fini - 15: 0000000000000774 0 SECTION LOCAL DEFAULT 15 .rodata - 16: 0000000000000778 0 SECTION LOCAL DEFAULT 16 .eh_frame_hdr - 17: 00000000000007b8 0 SECTION LOCAL DEFAULT 17 .eh_frame - 18: 0000000000010dc8 0 SECTION LOCAL DEFAULT 18 .init_array - 19: 0000000000010dd0 0 SECTION LOCAL DEFAULT 19 .fini_array - 20: 0000000000010dd8 0 SECTION LOCAL DEFAULT 20 .dynamic - 21: 0000000000010fb8 0 SECTION LOCAL DEFAULT 21 .got - 22: 0000000000010fe8 0 SECTION LOCAL DEFAULT 22 .got.plt - 23: 0000000000011020 0 SECTION LOCAL DEFAULT 23 .data - 24: 0000000000011048 0 SECTION LOCAL DEFAULT 24 .bss - 25: 0000000000000000 0 SECTION LOCAL DEFAULT 25 .comment - 26: 0000000000000000 0 FILE LOCAL DEFAULT ABS Scrt1.o - 27: 0000000000000278 0 NOTYPE LOCAL DEFAULT 3 $d - 28: 0000000000000278 32 OBJECT LOCAL DEFAULT 3 __abi_tag - 29: 0000000000000600 0 NOTYPE LOCAL DEFAULT 13 $x - 30: 00000000000007cc 0 NOTYPE LOCAL DEFAULT 17 $d - 31: 0000000000000774 0 NOTYPE LOCAL DEFAULT 15 $d - 32: 0000000000000000 0 FILE LOCAL DEFAULT ABS crti.o - 33: 0000000000000634 0 NOTYPE LOCAL DEFAULT 13 $x - 34: 0000000000000634 20 FUNC LOCAL DEFAULT 13 call_weak_fn - 35: 0000000000000580 0 NOTYPE LOCAL DEFAULT 11 $x - 36: 0000000000000760 0 NOTYPE LOCAL DEFAULT 14 $x - 37: 0000000000000000 0 FILE LOCAL DEFAULT ABS crtn.o - 38: 0000000000000590 0 NOTYPE LOCAL DEFAULT 11 $x - 39: 000000000000076c 0 NOTYPE LOCAL DEFAULT 14 $x - 40: 0000000000000000 0 FILE LOCAL DEFAULT ABS crtstuff.c - 41: 0000000000000650 0 NOTYPE LOCAL DEFAULT 13 $x - 42: 0000000000000650 0 FUNC LOCAL DEFAULT 13 deregister_tm_clones - 43: 0000000000000680 0 FUNC LOCAL DEFAULT 13 register_tm_clones - 44: 0000000000011028 0 NOTYPE LOCAL DEFAULT 23 $d - 45: 00000000000006c0 0 FUNC LOCAL DEFAULT 13 __do_global_dtors_aux - 46: 0000000000011048 1 OBJECT LOCAL DEFAULT 24 completed.0 - 47: 0000000000010dd0 0 NOTYPE LOCAL DEFAULT 19 $d - 48: 0000000000010dd0 0 OBJECT LOCAL DEFAULT 19 __do_global_dtors_aux_fini_array_entry - 49: 0000000000000710 0 FUNC LOCAL DEFAULT 13 frame_dummy - 50: 0000000000010dc8 0 NOTYPE LOCAL DEFAULT 18 $d - 51: 0000000000010dc8 0 OBJECT LOCAL DEFAULT 18 __frame_dummy_init_array_entry - 52: 00000000000007e0 0 NOTYPE LOCAL DEFAULT 17 $d - 53: 0000000000011048 0 NOTYPE LOCAL DEFAULT 24 $d - 54: 0000000000000000 0 FILE LOCAL DEFAULT ABS initialisation.c - 55: 0000000000000714 0 NOTYPE LOCAL DEFAULT 13 $x.0 - 56: 0000000000011030 0 NOTYPE LOCAL DEFAULT 23 $d.1 - 57: 000000000000002a 0 NOTYPE LOCAL DEFAULT 25 $d.2 - 58: 0000000000000840 0 NOTYPE LOCAL DEFAULT 17 $d.3 - 59: 0000000000000000 0 FILE LOCAL DEFAULT ABS crtstuff.c - 60: 0000000000000868 0 NOTYPE LOCAL DEFAULT 17 $d - 61: 0000000000000868 0 OBJECT LOCAL DEFAULT 17 __FRAME_END__ - 62: 0000000000000000 0 FILE LOCAL DEFAULT ABS - 63: 0000000000010dd8 0 OBJECT LOCAL DEFAULT ABS _DYNAMIC - 64: 0000000000000778 0 NOTYPE LOCAL DEFAULT 16 __GNU_EH_FRAME_HDR - 65: 0000000000010fb8 0 OBJECT LOCAL DEFAULT ABS _GLOBAL_OFFSET_TABLE_ - 66: 00000000000005a0 0 NOTYPE LOCAL DEFAULT 12 $x - 67: 0000000000000000 0 FUNC GLOBAL DEFAULT UND __libc_start_main@GLIBC_2.34 - 68: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_deregisterTMCloneTable - 69: 0000000000011020 0 NOTYPE WEAK DEFAULT 23 data_start - 70: 0000000000011048 0 NOTYPE GLOBAL DEFAULT 24 __bss_start__ - 71: 0000000000000000 0 FUNC WEAK DEFAULT UND __cxa_finalize@GLIBC_2.17 - 72: 0000000000011050 0 NOTYPE GLOBAL DEFAULT 24 _bss_end__ - 73: 0000000000011048 0 NOTYPE GLOBAL DEFAULT 23 _edata - 74: 0000000000011038 8 OBJECT GLOBAL DEFAULT 23 z - 75: 0000000000011030 4 OBJECT GLOBAL DEFAULT 23 x - 76: 0000000000000760 0 FUNC GLOBAL HIDDEN 14 _fini - 77: 0000000000011050 0 NOTYPE GLOBAL DEFAULT 24 __bss_end__ - 78: 0000000000011020 0 NOTYPE GLOBAL DEFAULT 23 __data_start - 79: 0000000000000000 0 NOTYPE WEAK DEFAULT UND __gmon_start__ - 80: 0000000000011028 0 OBJECT GLOBAL HIDDEN 23 __dso_handle - 81: 0000000000000000 0 FUNC GLOBAL DEFAULT UND abort@GLIBC_2.17 - 82: 0000000000000774 4 OBJECT GLOBAL DEFAULT 15 _IO_stdin_used - 83: 0000000000011050 0 NOTYPE GLOBAL DEFAULT 24 _end - 84: 0000000000000600 52 FUNC GLOBAL DEFAULT 13 _start - 85: 0000000000011040 8 OBJECT GLOBAL DEFAULT 23 a - 86: 0000000000011050 0 NOTYPE GLOBAL DEFAULT 24 __end__ - 87: 0000000000011034 1 OBJECT GLOBAL DEFAULT 23 y - 88: 0000000000011048 0 NOTYPE GLOBAL DEFAULT 24 __bss_start - 89: 0000000000000714 76 FUNC GLOBAL DEFAULT 13 main - 90: 0000000000011048 0 OBJECT GLOBAL HIDDEN 23 __TMC_END__ - 91: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_registerTMCloneTable - 92: 0000000000000580 0 FUNC GLOBAL HIDDEN 11 _init diff --git a/src/test/correct/initialisation/clang_O2/initialisation_gtirb.expected b/src/test/correct/initialisation/clang_O2/initialisation_gtirb.expected index 9e0ce9c72..212c6c33b 100644 --- a/src/test/correct/initialisation/clang_O2/initialisation_gtirb.expected +++ b/src/test/correct/initialisation/clang_O2/initialisation_gtirb.expected @@ -4,7 +4,6 @@ var {:extern} Gamma_R11: bool; var {:extern} Gamma_R12: bool; var {:extern} Gamma_R13: bool; var {:extern} Gamma_R14: bool; -var {:extern} Gamma_R15: bool; var {:extern} Gamma_R8: bool; var {:extern} Gamma_R9: bool; var {:extern} Gamma_mem: [bv64]bool; @@ -14,18 +13,17 @@ var {:extern} R11: bv64; var {:extern} R12: bv64; var {:extern} R13: bv64; var {:extern} R14: bv64; -var {:extern} R15: bv64; var {:extern} R8: bv64; var {:extern} R9: bv64; var {:extern} mem: [bv64]bv8; const {:extern} $a_addr: bv64; -axiom ($a_addr == 69696bv64); +axiom ($a_addr == 131104bv64); const {:extern} $x_addr: bv64; -axiom ($x_addr == 69680bv64); +axiom ($x_addr == 131088bv64); const {:extern} $y_addr: bv64; -axiom ($y_addr == 69684bv64); +axiom ($y_addr == 131092bv64); const {:extern} $z_addr: bv64; -axiom ($z_addr == 69688bv64); +axiom ($z_addr == 131096bv64); function {:extern} L(mem$in: [bv64]bv8, index: bv64) returns (bool) { false } @@ -86,11 +84,15 @@ procedure {:extern} rely(); modifies Gamma_mem, mem; ensures (Gamma_mem == old(Gamma_mem)); ensures (mem == old(mem)); - free ensures (memory_load32_le(mem, 1908bv64) == 131073bv32); - free ensures (memory_load64_le(mem, 69064bv64) == 1808bv64); - free ensures (memory_load64_le(mem, 69072bv64) == 1728bv64); - free ensures (memory_load64_le(mem, 69592bv64) == 1812bv64); - free ensures (memory_load64_le(mem, 69672bv64) == 69672bv64); + free ensures (memory_load32_le(mem, 2432bv64) == 131073bv32); + free ensures (memory_load64_le(mem, 130408bv64) == 2320bv64); + free ensures (memory_load64_le(mem, 130416bv64) == 2240bv64); + free ensures (memory_load64_le(mem, 131016bv64) == 131096bv64); + free ensures (memory_load64_le(mem, 131024bv64) == 131088bv64); + free ensures (memory_load64_le(mem, 131040bv64) == 131104bv64); + free ensures (memory_load64_le(mem, 131048bv64) == 131092bv64); + free ensures (memory_load64_le(mem, 131056bv64) == 2324bv64); + free ensures (memory_load64_le(mem, 131080bv64) == 131080bv64); procedure {:extern} rely_transitive(); modifies Gamma_mem, mem; @@ -108,80 +110,107 @@ procedure {:extern} rely_reflexive(); procedure {:extern} guarantee_reflexive(); modifies Gamma_mem, mem; -procedure main_1812(); - modifies Gamma_R0, Gamma_R10, Gamma_R11, Gamma_R12, Gamma_R13, Gamma_R14, Gamma_R15, Gamma_R8, Gamma_R9, Gamma_mem, R0, R10, R11, R12, R13, R14, R15, R8, R9, mem; - free requires (memory_load64_le(mem, 69664bv64) == 0bv64); - free requires (memory_load64_le(mem, 69672bv64) == 69672bv64); - free requires (memory_load64_le(mem, 69680bv64) == 416611827717bv64); - free requires (memory_load64_le(mem, 69688bv64) == 68719476735bv64); - free requires (memory_load64_le(mem, 69696bv64) == 8589934593bv64); - free requires (memory_load32_le(mem, 1908bv64) == 131073bv32); - free requires (memory_load64_le(mem, 69064bv64) == 1808bv64); - free requires (memory_load64_le(mem, 69072bv64) == 1728bv64); - free requires (memory_load64_le(mem, 69592bv64) == 1812bv64); - free requires (memory_load64_le(mem, 69672bv64) == 69672bv64); +procedure main(); + modifies Gamma_R0, Gamma_R10, Gamma_R11, Gamma_R12, Gamma_R13, Gamma_R14, Gamma_R8, Gamma_R9, Gamma_mem, R0, R10, R11, R12, R13, R14, R8, R9, mem; + free requires (memory_load64_le(mem, 131072bv64) == 0bv64); + free requires (memory_load64_le(mem, 131080bv64) == 131080bv64); + free requires (memory_load64_le(mem, 131088bv64) == 416611827717bv64); + free requires (memory_load64_le(mem, 131096bv64) == 68719476735bv64); + free requires (memory_load64_le(mem, 131104bv64) == 8589934593bv64); + free requires (memory_load32_le(mem, 2432bv64) == 131073bv32); + free requires (memory_load64_le(mem, 130408bv64) == 2320bv64); + free requires (memory_load64_le(mem, 130416bv64) == 2240bv64); + free requires (memory_load64_le(mem, 131016bv64) == 131096bv64); + free requires (memory_load64_le(mem, 131024bv64) == 131088bv64); + free requires (memory_load64_le(mem, 131040bv64) == 131104bv64); + free requires (memory_load64_le(mem, 131048bv64) == 131092bv64); + free requires (memory_load64_le(mem, 131056bv64) == 2324bv64); + free requires (memory_load64_le(mem, 131080bv64) == 131080bv64); ensures (memory_load32_le(mem, $x_addr) == 6bv32); ensures (memory_load32_le(mem, bvadd64($a_addr, 4bv64)) == 4bv32); ensures (memory_load32_le(mem, bvadd64($a_addr, 0bv64)) == 1bv32); - free ensures (memory_load32_le(mem, 1908bv64) == 131073bv32); - free ensures (memory_load64_le(mem, 69064bv64) == 1808bv64); - free ensures (memory_load64_le(mem, 69072bv64) == 1728bv64); - free ensures (memory_load64_le(mem, 69592bv64) == 1812bv64); - free ensures (memory_load64_le(mem, 69672bv64) == 69672bv64); - -implementation main_1812() + free ensures (memory_load32_le(mem, 2432bv64) == 131073bv32); + free ensures (memory_load64_le(mem, 130408bv64) == 2320bv64); + free ensures (memory_load64_le(mem, 130416bv64) == 2240bv64); + free ensures (memory_load64_le(mem, 131016bv64) == 131096bv64); + free ensures (memory_load64_le(mem, 131024bv64) == 131088bv64); + free ensures (memory_load64_le(mem, 131040bv64) == 131104bv64); + free ensures (memory_load64_le(mem, 131048bv64) == 131092bv64); + free ensures (memory_load64_le(mem, 131056bv64) == 2324bv64); + free ensures (memory_load64_le(mem, 131080bv64) == 131080bv64); + +implementation main() { - var Gamma_load10: bool; - var Gamma_load7: bool; - var Gamma_load8: bool; - var Gamma_load9: bool; - var load10: bv8; - var load7: bv32; - var load8: bv32; - var load9: bv64; - main_1812__0__f6fSZwrZSIKfQqhZ9R_A_Q: - assume {:captureState "main_1812__0__f6fSZwrZSIKfQqhZ9R_A_Q"} true; - R10, Gamma_R10 := 69632bv64, true; - R10, Gamma_R10 := bvadd64(R10, 64bv64), Gamma_R10; - R8, Gamma_R8 := 69632bv64, true; - R9, Gamma_R9 := 69632bv64, true; - R12, Gamma_R12 := 69632bv64, true; + var $load18: bv64; + var $load19: bv64; + var $load20: bv64; + var $load21: bv32; + var $load22: bv64; + var $load23: bv64; + var $load24: bv32; + var $load25: bv8; + var Gamma_$load18: bool; + var Gamma_$load19: bool; + var Gamma_$load20: bool; + var Gamma_$load21: bool; + var Gamma_$load22: bool; + var Gamma_$load23: bool; + var Gamma_$load24: bool; + var Gamma_$load25: bool; + $main$__0__$mmpaLvZYQk2b8selWCLriA: + assume {:captureState "$main$__0__$mmpaLvZYQk2b8selWCLriA"} true; + R8, Gamma_R8 := 126976bv64, true; + R9, Gamma_R9 := 126976bv64, true; + R10, Gamma_R10 := 126976bv64, true; + call rely(); + $load18, Gamma_$load18 := memory_load64_le(mem, bvadd64(R8, 4048bv64)), (gamma_load64(Gamma_mem, bvadd64(R8, 4048bv64)) || L(mem, bvadd64(R8, 4048bv64))); + R8, Gamma_R8 := $load18, Gamma_$load18; + call rely(); + $load19, Gamma_$load19 := memory_load64_le(mem, bvadd64(R9, 4040bv64)), (gamma_load64(Gamma_mem, bvadd64(R9, 4040bv64)) || L(mem, bvadd64(R9, 4040bv64))); + R9, Gamma_R9 := $load19, Gamma_$load19; + call rely(); + $load20, Gamma_$load20 := memory_load64_le(mem, bvadd64(R10, 4064bv64)), (gamma_load64(Gamma_mem, bvadd64(R10, 4064bv64)) || L(mem, bvadd64(R10, 4064bv64))); + R10, Gamma_R10 := $load20, Gamma_$load20; + R12, Gamma_R12 := 126976bv64, true; R0, Gamma_R0 := 0bv64, true; call rely(); - load7, Gamma_load7 := memory_load32_le(mem, R10), (gamma_load32(Gamma_mem, R10) || L(mem, R10)); - R11, Gamma_R11 := zero_extend32_32(load7), Gamma_load7; + $load21, Gamma_$load21 := memory_load32_le(mem, R8), (gamma_load32(Gamma_mem, R8) || L(mem, R8)); + R11, Gamma_R11 := zero_extend32_32($load21), Gamma_$load21; + call rely(); + $load22, Gamma_$load22 := memory_load64_le(mem, bvadd64(R12, 4072bv64)), (gamma_load64(Gamma_mem, bvadd64(R12, 4072bv64)) || L(mem, bvadd64(R12, 4072bv64))); + R12, Gamma_R12 := $load22, Gamma_$load22; call rely(); - load8, Gamma_load8 := memory_load32_le(mem, bvadd64(R8, 48bv64)), (gamma_load32(Gamma_mem, bvadd64(R8, 48bv64)) || L(mem, bvadd64(R8, 48bv64))); - R13, Gamma_R13 := zero_extend32_32(load8), Gamma_load8; + $load23, Gamma_$load23 := memory_load64_le(mem, R9), (gamma_load64(Gamma_mem, R9) || L(mem, R9)); + R13, Gamma_R13 := $load23, Gamma_$load23; call rely(); - load9, Gamma_load9 := memory_load64_le(mem, bvadd64(R9, 56bv64)), (gamma_load64(Gamma_mem, bvadd64(R9, 56bv64)) || L(mem, bvadd64(R9, 56bv64))); - R14, Gamma_R14 := load9, Gamma_load9; - R11, Gamma_R11 := zero_extend32_32(bvadd32(R11[32:0], 3bv32)), Gamma_R11; + $load24, Gamma_$load24 := memory_load32_le(mem, R10), (gamma_load32(Gamma_mem, R10) || L(mem, R10)); + R14, Gamma_R14 := zero_extend32_32($load24), Gamma_$load24; + R11, Gamma_R11 := zero_extend32_32(bvadd32(R11[32:0], 1bv32)), Gamma_R11; call rely(); - load10, Gamma_load10 := memory_load8_le(mem, bvadd64(R12, 52bv64)), (gamma_load8(Gamma_mem, bvadd64(R12, 52bv64)) || L(mem, bvadd64(R12, 52bv64))); - R15, Gamma_R15 := zero_extend32_32(zero_extend24_8(load10)), Gamma_load10; - R13, Gamma_R13 := zero_extend32_32(bvadd32(R13[32:0], 1bv32)), Gamma_R13; - R14, Gamma_R14 := bvadd64(R14, 18446744073709551615bv64), Gamma_R14; + assert (L(mem, R8) ==> Gamma_R11); + mem, Gamma_mem := memory_store32_le(mem, R8, R11[32:0]), gamma_store32(Gamma_mem, R8, Gamma_R11); + assume {:captureState "2376$0"} true; call rely(); - assert (L(mem, bvadd64(R10, 4bv64)) ==> Gamma_R11); - mem, Gamma_mem := memory_store32_le(mem, bvadd64(R10, 4bv64), R11[32:0]), gamma_store32(Gamma_mem, bvadd64(R10, 4bv64), Gamma_R11); - assume {:captureState "1864_0"} true; - R10, Gamma_R10 := zero_extend32_32(bvadd32(R15[32:0], 1bv32)), Gamma_R15; + $load25, Gamma_$load25 := memory_load8_le(mem, R12), (gamma_load8(Gamma_mem, R12) || L(mem, R12)); + R8, Gamma_R8 := zero_extend32_32(zero_extend24_8($load25)), Gamma_$load25; + R11, Gamma_R11 := bvadd64(R13, 18446744073709551615bv64), Gamma_R13; call rely(); - assert (L(mem, bvadd64(R8, 48bv64)) ==> Gamma_R13); - mem, Gamma_mem := memory_store32_le(mem, bvadd64(R8, 48bv64), R13[32:0]), gamma_store32(Gamma_mem, bvadd64(R8, 48bv64), Gamma_R13); - assume {:captureState "1872_0"} true; + assert (L(mem, R9) ==> Gamma_R11); + mem, Gamma_mem := memory_store64_le(mem, R9, R11), gamma_store64(Gamma_mem, R9, Gamma_R11); + assume {:captureState "2388$0"} true; + R9, Gamma_R9 := zero_extend32_32(bvadd32(R14[32:0], 3bv32)), Gamma_R14; + R8, Gamma_R8 := zero_extend32_32(bvadd32(R8[32:0], 1bv32)), Gamma_R8; call rely(); - assert (L(mem, bvadd64(R9, 56bv64)) ==> Gamma_R14); - mem, Gamma_mem := memory_store64_le(mem, bvadd64(R9, 56bv64), R14), gamma_store64(Gamma_mem, bvadd64(R9, 56bv64), Gamma_R14); - assume {:captureState "1876_0"} true; + assert (L(mem, bvadd64(R10, 4bv64)) ==> Gamma_R9); + mem, Gamma_mem := memory_store32_le(mem, bvadd64(R10, 4bv64), R9[32:0]), gamma_store32(Gamma_mem, bvadd64(R10, 4bv64), Gamma_R9); + assume {:captureState "2400$0"} true; call rely(); - assert (L(mem, bvadd64(R12, 52bv64)) ==> Gamma_R10); - mem, Gamma_mem := memory_store8_le(mem, bvadd64(R12, 52bv64), R10[8:0]), gamma_store8(Gamma_mem, bvadd64(R12, 52bv64), Gamma_R10); - assume {:captureState "1880_0"} true; - goto main_1812_basil_return; - main_1812_basil_return: - assume {:captureState "main_1812_basil_return"} true; + assert (L(mem, R12) ==> Gamma_R8); + mem, Gamma_mem := memory_store8_le(mem, R12, R8[8:0]), gamma_store8(Gamma_mem, R12, Gamma_R8); + assume {:captureState "2404$0"} true; + goto main_basil_return; + main_basil_return: + assume {:captureState "main_basil_return"} true; return; } diff --git a/src/test/correct/initialisation/clang_pic/initialisation.adt b/src/test/correct/initialisation/clang_pic/initialisation.adt deleted file mode 100644 index eab77a2a2..000000000 --- a/src/test/correct/initialisation/clang_pic/initialisation.adt +++ /dev/null @@ -1,558 +0,0 @@ -Project(Attrs([Attr("filename","\"clang_pic/initialisation.out\""), -Attr("image-specification","(declare abi (name str))\n(declare arch (name str))\n(declare base-address (addr int))\n(declare bias (off int))\n(declare bits (size int))\n(declare code-region (addr int) (size int) (off int))\n(declare code-start (addr int))\n(declare entry-point (addr int))\n(declare external-reference (addr int) (name str))\n(declare format (name str))\n(declare is-executable (flag bool))\n(declare is-little-endian (flag bool))\n(declare llvm:base-address (addr int))\n(declare llvm:code-entry (name str) (off int) (size int))\n(declare llvm:coff-import-library (name str))\n(declare llvm:coff-virtual-section-header (name str) (addr int) (size int))\n(declare llvm:elf-program-header (name str) (off int) (size int))\n(declare llvm:elf-program-header-flags (name str) (ld bool) (r bool) \n (w bool) (x bool))\n(declare llvm:elf-virtual-program-header (name str) (addr int) (size int))\n(declare llvm:entry-point (addr int))\n(declare llvm:macho-symbol (name str) (value int))\n(declare llvm:name-reference (at int) (name str))\n(declare llvm:relocation (at int) (addr int))\n(declare llvm:section-entry (name str) (addr int) (size int) (off int))\n(declare llvm:section-flags (name str) (r bool) (w bool) (x bool))\n(declare llvm:segment-command (name str) (off int) (size int))\n(declare llvm:segment-command-flags (name str) (r bool) (w bool) (x bool))\n(declare llvm:symbol-entry (name str) (addr int) (size int) (off int)\n (value int))\n(declare llvm:virtual-segment-command (name str) (addr int) (size int))\n(declare mapped (addr int) (size int) (off int))\n(declare named-region (addr int) (size int) (name str))\n(declare named-symbol (addr int) (name str))\n(declare require (name str))\n(declare section (addr int) (size int))\n(declare segment (addr int) (size int) (r bool) (w bool) (x bool))\n(declare subarch (name str))\n(declare symbol-chunk (addr int) (size int) (root int))\n(declare symbol-value (addr int) (value int))\n(declare system (name str))\n(declare vendor (name str))\n\n(abi unknown)\n(arch aarch64)\n(base-address 0)\n(bias 0)\n(bits 64)\n(code-region 2028 20 2028)\n(code-region 1664 364 1664)\n(code-region 1536 96 1536)\n(code-region 1504 24 1504)\n(code-start 1716)\n(code-start 1664)\n(code-start 1940)\n(entry-point 1664)\n(external-reference 69536 _ITM_deregisterTMCloneTable)\n(external-reference 69544 __cxa_finalize)\n(external-reference 69568 __gmon_start__)\n(external-reference 69600 _ITM_registerTMCloneTable)\n(external-reference 69632 __libc_start_main)\n(external-reference 69640 __cxa_finalize)\n(external-reference 69648 __gmon_start__)\n(external-reference 69656 abort)\n(format elf)\n(is-executable true)\n(is-little-endian true)\n(llvm:base-address 0)\n(llvm:code-entry abort 0 0)\n(llvm:code-entry __cxa_finalize 0 0)\n(llvm:code-entry __libc_start_main 0 0)\n(llvm:code-entry _init 1504 0)\n(llvm:code-entry main 1940 88)\n(llvm:code-entry _start 1664 52)\n(llvm:code-entry abort@GLIBC_2.17 0 0)\n(llvm:code-entry _fini 2028 0)\n(llvm:code-entry __cxa_finalize@GLIBC_2.17 0 0)\n(llvm:code-entry __libc_start_main@GLIBC_2.34 0 0)\n(llvm:code-entry frame_dummy 1936 0)\n(llvm:code-entry __do_global_dtors_aux 1856 0)\n(llvm:code-entry register_tm_clones 1792 0)\n(llvm:code-entry deregister_tm_clones 1744 0)\n(llvm:code-entry call_weak_fn 1716 20)\n(llvm:code-entry .fini 2028 20)\n(llvm:code-entry .text 1664 364)\n(llvm:code-entry .plt 1536 96)\n(llvm:code-entry .init 1504 24)\n(llvm:elf-program-header 08 3496 600)\n(llvm:elf-program-header 07 0 0)\n(llvm:elf-program-header 06 2052 60)\n(llvm:elf-program-header 05 596 68)\n(llvm:elf-program-header 04 3512 480)\n(llvm:elf-program-header 03 3496 672)\n(llvm:elf-program-header 02 0 2292)\n(llvm:elf-program-header 01 568 27)\n(llvm:elf-program-header 00 64 504)\n(llvm:elf-program-header-flags 08 false true false false)\n(llvm:elf-program-header-flags 07 false true true false)\n(llvm:elf-program-header-flags 06 false true false false)\n(llvm:elf-program-header-flags 05 false true false false)\n(llvm:elf-program-header-flags 04 false true true false)\n(llvm:elf-program-header-flags 03 true true true false)\n(llvm:elf-program-header-flags 02 true true false true)\n(llvm:elf-program-header-flags 01 false true false false)\n(llvm:elf-program-header-flags 00 false true false false)\n(llvm:elf-virtual-program-header 08 69032 600)\n(llvm:elf-virtual-program-header 07 0 0)\n(llvm:elf-virtual-program-header 06 2052 60)\n(llvm:elf-virtual-program-header 05 596 68)\n(llvm:elf-virtual-program-header 04 69048 480)\n(llvm:elf-virtual-program-header 03 69032 680)\n(llvm:elf-virtual-program-header 02 0 2292)\n(llvm:elf-virtual-program-header 01 568 27)\n(llvm:elf-virtual-program-header 00 64 504)\n(llvm:entry-point 1664)\n(llvm:name-reference 69656 abort)\n(llvm:name-reference 69648 __gmon_start__)\n(llvm:name-reference 69640 __cxa_finalize)\n(llvm:name-reference 69632 __libc_start_main)\n(llvm:name-reference 69600 _ITM_registerTMCloneTable)\n(llvm:name-reference 69568 __gmon_start__)\n(llvm:name-reference 69544 __cxa_finalize)\n(llvm:name-reference 69536 _ITM_deregisterTMCloneTable)\n(llvm:section-entry .shstrtab 0 259 7044)\n(llvm:section-entry .strtab 0 572 6472)\n(llvm:section-entry .symtab 0 2232 4240)\n(llvm:section-entry .comment 0 71 4168)\n(llvm:section-entry .bss 69704 8 4168)\n(llvm:section-entry .data 69664 40 4128)\n(llvm:section-entry .got.plt 69608 56 4072)\n(llvm:section-entry .got 69528 80 3992)\n(llvm:section-entry .dynamic 69048 480 3512)\n(llvm:section-entry .fini_array 69040 8 3504)\n(llvm:section-entry .init_array 69032 8 3496)\n(llvm:section-entry .eh_frame 2112 180 2112)\n(llvm:section-entry .eh_frame_hdr 2052 60 2052)\n(llvm:section-entry .rodata 2048 4 2048)\n(llvm:section-entry .fini 2028 20 2028)\n(llvm:section-entry .text 1664 364 1664)\n(llvm:section-entry .plt 1536 96 1536)\n(llvm:section-entry .init 1504 24 1504)\n(llvm:section-entry .rela.plt 1408 96 1408)\n(llvm:section-entry .rela.dyn 1120 288 1120)\n(llvm:section-entry .gnu.version_r 1072 48 1072)\n(llvm:section-entry .gnu.version 1054 18 1054)\n(llvm:section-entry .dynstr 912 141 912)\n(llvm:section-entry .dynsym 696 216 696)\n(llvm:section-entry .gnu.hash 664 28 664)\n(llvm:section-entry .note.ABI-tag 632 32 632)\n(llvm:section-entry .note.gnu.build-id 596 36 596)\n(llvm:section-entry .interp 568 27 568)\n(llvm:section-flags .shstrtab true false false)\n(llvm:section-flags .strtab true false false)\n(llvm:section-flags .symtab true false false)\n(llvm:section-flags .comment true false false)\n(llvm:section-flags .bss true true false)\n(llvm:section-flags .data true true false)\n(llvm:section-flags .got.plt true true false)\n(llvm:section-flags .got true true false)\n(llvm:section-flags .dynamic true true false)\n(llvm:section-flags .fini_array true true false)\n(llvm:section-flags .init_array true true false)\n(llvm:section-flags .eh_frame true false false)\n(llvm:section-flags .eh_frame_hdr true false false)\n(llvm:section-flags .rodata true false false)\n(llvm:section-flags .fini true false true)\n(llvm:section-flags .text true false true)\n(llvm:section-flags .plt true false true)\n(llvm:section-flags .init true false true)\n(llvm:section-flags .rela.plt true false false)\n(llvm:section-flags .rela.dyn true false false)\n(llvm:section-flags .gnu.version_r true false false)\n(llvm:section-flags .gnu.version true false false)\n(llvm:section-flags .dynstr true false false)\n(llvm:section-flags .dynsym true false false)\n(llvm:section-flags .gnu.hash true false false)\n(llvm:section-flags .note.ABI-tag true false false)\n(llvm:section-flags .note.gnu.build-id true false false)\n(llvm:section-flags .interp true false false)\n(llvm:symbol-entry abort 0 0 0 0)\n(llvm:symbol-entry __cxa_finalize 0 0 0 0)\n(llvm:symbol-entry __libc_start_main 0 0 0 0)\n(llvm:symbol-entry _init 1504 0 1504 1504)\n(llvm:symbol-entry main 1940 88 1940 1940)\n(llvm:symbol-entry _start 1664 52 1664 1664)\n(llvm:symbol-entry abort@GLIBC_2.17 0 0 0 0)\n(llvm:symbol-entry _fini 2028 0 2028 2028)\n(llvm:symbol-entry __cxa_finalize@GLIBC_2.17 0 0 0 0)\n(llvm:symbol-entry __libc_start_main@GLIBC_2.34 0 0 0 0)\n(llvm:symbol-entry frame_dummy 1936 0 1936 1936)\n(llvm:symbol-entry __do_global_dtors_aux 1856 0 1856 1856)\n(llvm:symbol-entry register_tm_clones 1792 0 1792 1792)\n(llvm:symbol-entry deregister_tm_clones 1744 0 1744 1744)\n(llvm:symbol-entry call_weak_fn 1716 20 1716 1716)\n(mapped 0 2292 0)\n(mapped 69032 672 3496)\n(named-region 0 2292 02)\n(named-region 69032 680 03)\n(named-region 568 27 .interp)\n(named-region 596 36 .note.gnu.build-id)\n(named-region 632 32 .note.ABI-tag)\n(named-region 664 28 .gnu.hash)\n(named-region 696 216 .dynsym)\n(named-region 912 141 .dynstr)\n(named-region 1054 18 .gnu.version)\n(named-region 1072 48 .gnu.version_r)\n(named-region 1120 288 .rela.dyn)\n(named-region 1408 96 .rela.plt)\n(named-region 1504 24 .init)\n(named-region 1536 96 .plt)\n(named-region 1664 364 .text)\n(named-region 2028 20 .fini)\n(named-region 2048 4 .rodata)\n(named-region 2052 60 .eh_frame_hdr)\n(named-region 2112 180 .eh_frame)\n(named-region 69032 8 .init_array)\n(named-region 69040 8 .fini_array)\n(named-region 69048 480 .dynamic)\n(named-region 69528 80 .got)\n(named-region 69608 56 .got.plt)\n(named-region 69664 40 .data)\n(named-region 69704 8 .bss)\n(named-region 0 71 .comment)\n(named-region 0 2232 .symtab)\n(named-region 0 572 .strtab)\n(named-region 0 259 .shstrtab)\n(named-symbol 1716 call_weak_fn)\n(named-symbol 1744 deregister_tm_clones)\n(named-symbol 1792 register_tm_clones)\n(named-symbol 1856 __do_global_dtors_aux)\n(named-symbol 1936 frame_dummy)\n(named-symbol 0 __libc_start_main@GLIBC_2.34)\n(named-symbol 0 __cxa_finalize@GLIBC_2.17)\n(named-symbol 2028 _fini)\n(named-symbol 0 abort@GLIBC_2.17)\n(named-symbol 1664 _start)\n(named-symbol 1940 main)\n(named-symbol 1504 _init)\n(named-symbol 0 __libc_start_main)\n(named-symbol 0 __cxa_finalize)\n(named-symbol 0 abort)\n(require libc.so.6)\n(section 568 27)\n(section 596 36)\n(section 632 32)\n(section 664 28)\n(section 696 216)\n(section 912 141)\n(section 1054 18)\n(section 1072 48)\n(section 1120 288)\n(section 1408 96)\n(section 1504 24)\n(section 1536 96)\n(section 1664 364)\n(section 2028 20)\n(section 2048 4)\n(section 2052 60)\n(section 2112 180)\n(section 69032 8)\n(section 69040 8)\n(section 69048 480)\n(section 69528 80)\n(section 69608 56)\n(section 69664 40)\n(section 69704 8)\n(section 0 71)\n(section 0 2232)\n(section 0 572)\n(section 0 259)\n(segment 0 2292 true false true)\n(segment 69032 680 true true false)\n(subarch v8)\n(symbol-chunk 1716 20 1716)\n(symbol-chunk 1664 52 1664)\n(symbol-chunk 1940 88 1940)\n(symbol-value 1716 1716)\n(symbol-value 1744 1744)\n(symbol-value 1792 1792)\n(symbol-value 1856 1856)\n(symbol-value 1936 1936)\n(symbol-value 2028 2028)\n(symbol-value 1664 1664)\n(symbol-value 1940 1940)\n(symbol-value 1504 1504)\n(symbol-value 0 0)\n(system \"\")\n(vendor \"\")\n"), -Attr("abi-name","\"aarch64-linux-gnu-elf\"")]), -Sections([Section(".shstrtab", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x80\x06\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x88\x1c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x38\x00\x09\x00\x40\x00\x1d\x00\x1c\x00\x06\x00\x00\x00\x04\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x04\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xf4\x08\x00\x00\x00\x00\x00\x00\xf4\x08\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x01\x00\x00\x00\x06\x00\x00\x00\xa8\x0d\x00\x00\x00\x00\x00\x00\xa8\x0d\x01\x00\x00\x00\x00\x00\xa8\x0d\x01"), -Section(".strtab", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x80\x06\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x88\x1c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x38\x00\x09\x00\x40\x00\x1d\x00\x1c\x00\x06\x00\x00\x00\x04\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x04\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xf4\x08\x00\x00\x00\x00\x00\x00\xf4\x08\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x01\x00\x00\x00\x06\x00\x00\x00\xa8\x0d\x00\x00\x00\x00\x00\x00\xa8\x0d\x01\x00\x00\x00\x00\x00\xa8\x0d\x01\x00\x00\x00\x00\x00\xa0\x02\x00\x00\x00\x00\x00\x00\xa8\x02\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x02\x00\x00\x00\x06\x00\x00\x00\xb8\x0d\x00\x00\x00\x00\x00\x00\xb8\x0d\x01\x00\x00\x00\x00\x00\xb8\x0d\x01\x00\x00\x00\x00\x00\xe0\x01\x00\x00\x00\x00\x00\x00\xe0\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x04\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x50\xe5\x74\x64\x04\x00\x00\x00\x04\x08\x00\x00\x00\x00\x00\x00\x04\x08\x00\x00\x00\x00\x00\x00\x04\x08\x00\x00\x00\x00\x00\x00\x3c\x00\x00\x00\x00\x00\x00\x00\x3c\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x51\xe5\x74\x64\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x52\xe5\x74\x64\x04\x00\x00\x00\xa8\x0d\x00\x00\x00\x00\x00\x00\xa8\x0d\x01\x00\x00\x00\x00\x00\xa8\x0d\x01\x00\x00\x00\x00\x00\x58\x02\x00\x00\x00\x00\x00\x00\x58\x02\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x2f\x6c\x69\x62"), -Section(".symtab", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x80\x06\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x88\x1c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x38\x00\x09\x00\x40\x00\x1d\x00\x1c\x00\x06\x00\x00\x00\x04\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x04\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xf4\x08\x00\x00\x00\x00\x00\x00\xf4\x08\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x01\x00\x00\x00\x06\x00\x00\x00\xa8\x0d\x00\x00\x00\x00\x00\x00\xa8\x0d\x01\x00\x00\x00\x00\x00\xa8\x0d\x01\x00\x00\x00\x00\x00\xa0\x02\x00\x00\x00\x00\x00\x00\xa8\x02\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x02\x00\x00\x00\x06\x00\x00\x00\xb8\x0d\x00\x00\x00\x00\x00\x00\xb8\x0d\x01\x00\x00\x00\x00\x00\xb8\x0d\x01\x00\x00\x00\x00\x00\xe0\x01\x00\x00\x00\x00\x00\x00\xe0\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x04\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x50\xe5\x74\x64\x04\x00\x00\x00\x04\x08\x00\x00\x00\x00\x00\x00\x04\x08\x00\x00\x00\x00\x00\x00\x04\x08\x00\x00\x00\x00\x00\x00\x3c\x00\x00\x00\x00\x00\x00\x00\x3c\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x51\xe5\x74\x64\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x52\xe5\x74\x64\x04\x00\x00\x00\xa8\x0d\x00\x00\x00\x00\x00\x00\xa8\x0d\x01\x00\x00\x00\x00\x00\xa8\x0d\x01\x00\x00\x00\x00\x00\x58\x02\x00\x00\x00\x00\x00\x00\x58\x02\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x2f\x6c\x69\x62\x2f\x6c\x64\x2d\x6c\x69\x6e\x75\x78\x2d\x61\x61\x72\x63\x68\x36\x34\x2e\x73\x6f\x2e\x31\x00\x00\x04\x00\x00\x00\x14\x00\x00\x00\x03\x00\x00\x00\x47\x4e\x55\x00\x37\xdc\xf5\x80\x70\x7e\xf7\x4d\x5c\xf3\x43\xac\x4a\xa4\x1c\x87\x0b\x3a\x49\x2c\x04\x00\x00\x00\x10\x00\x00\x00\x01\x00\x00\x00\x47\x4e\x55\x00\x00\x00\x00\x00\x03\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x01\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x0b\x00\xe0\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x17\x00\x20\x10\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x48\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x22\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x22\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x73\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5f\x5f\x63\x78\x61\x5f\x66\x69\x6e\x61\x6c\x69\x7a\x65\x00\x5f\x5f\x6c\x69\x62\x63\x5f\x73\x74\x61\x72\x74\x5f\x6d\x61\x69\x6e\x00\x61\x62\x6f\x72\x74\x00\x6c\x69\x62\x63\x2e\x73\x6f\x2e\x36\x00\x47\x4c\x49\x42\x43\x5f\x32\x2e\x31\x37\x00\x47\x4c\x49\x42\x43\x5f\x32\x2e\x33\x34\x00\x5f\x49\x54\x4d\x5f\x64\x65\x72\x65\x67\x69\x73\x74\x65\x72\x54\x4d\x43\x6c\x6f\x6e\x65\x54\x61\x62\x6c\x65\x00\x5f\x5f\x67\x6d\x6f\x6e\x5f\x73\x74\x61\x72\x74\x5f\x5f\x00\x5f\x49\x54\x4d\x5f\x72\x65\x67\x69\x73\x74\x65\x72\x54\x4d\x43\x6c\x6f\x6e\x65\x54\x61\x62\x6c\x65\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x01\x00\x03\x00\x01\x00\x03\x00\x01\x00\x01\x00\x02\x00\x28\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x97\x91\x96\x06\x00\x00\x03\x00\x32\x00\x00\x00\x10\x00\x00\x00\xb4\x91\x96\x06\x00\x00\x02\x00\x3d\x00\x00\x00\x00\x00\x00\x00\xa8\x0d\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x90\x07\x00\x00\x00\x00\x00\x00\xb0\x0d\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x40\x07\x00\x00\x00\x00\x00\x00\xb0\x0f\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x38\x10\x01\x00\x00\x00\x00\x00\xb8\x0f\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x30\x10\x01\x00\x00\x00\x00\x00\xc8\x0f\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x40\x10\x01\x00\x00\x00\x00\x00\xd0\x0f\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x34\x10\x01\x00\x00\x00\x00\x00\xd8\x0f\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x94\x07\x00\x00\x00\x00\x00\x00\x28\x10\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x28\x10\x01\x00\x00\x00\x00\x00\xa0\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xa8\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xc0\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe0\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x08\x10\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x10\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x18\x10\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1f\x20\x03\xd5\xfd\x7b\xbf\xa9\xfd\x03\x00\x91\x32\x00\x00\x94\xfd\x7b\xc1\xa8\xc0\x03\x5f\xd6\x00\x00\x00\x00\x00\x00\x00\x00\xf0\x7b\xbf\xa9\x90\x00\x00\x90\x11\xfe\x47\xf9\x10\xe2\x3f\x91\x20\x02\x1f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x90\x00\x00\xb0\x11\x02\x40\xf9\x10\x02\x00\x91\x20\x02\x1f\xd6\x90\x00\x00\xb0\x11\x06\x40\xf9\x10\x22\x00\x91\x20\x02\x1f\xd6\x90\x00\x00\xb0\x11\x0a\x40\xf9\x10\x42\x00\x91\x20\x02\x1f\xd6\x90\x00\x00\xb0\x11\x0e\x40\xf9\x10\x62\x00\x91\x20\x02\x1f\xd6\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1f\x20\x03\xd5\x1d\x00\x80\xd2\x1e\x00\x80\xd2\xe5\x03\x00\xaa\xe1\x03\x40\xf9\xe2\x23\x00\x91\xe6\x03\x00\x91\x80\x00\x00\x90\x00\xec\x47\xf9\x03\x00\x80\xd2\x04\x00\x80\xd2\xdd\xff\xff\x97\xe8\xff\xff\x97\x80\x00\x00\x90\x00\xe0\x47\xf9\x40\x00\x00\xb4\xe0\xff\xff\x17\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x80\x00\x00\xb0\x00\x20\x01\x91\x81\x00\x00\xb0\x21\x20\x01\x91\x3f\x00\x00\xeb\xc0\x00\x00\x54\x81\x00\x00\x90\x21\xd0\x47\xf9\x61\x00\x00\xb4\xf0\x03\x01\xaa\x00\x02\x1f\xd6\xc0\x03\x5f\xd6\x80\x00\x00\xb0\x00\x20\x01\x91\x81\x00\x00\xb0\x21\x20\x01\x91\x21\x00\x00\xcb\x22\xfc\x7f\xd3\x41\x0c\x81\x8b\x21\xfc\x41\x93\xc1\x00\x00\xb4\x82\x00\x00\x90\x42\xf0\x47\xf9\x62\x00\x00\xb4\xf0\x03\x02\xaa\x00\x02\x1f\xd6\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\xfd\x7b\xbe\xa9\xfd\x03\x00\x91\xf3\x0b\x00\xf9\x93\x00\x00\xb0\x60\x22\x41\x39\x40\x01\x00\x35\x80\x00\x00\x90\x00\xd4\x47\xf9\x80\x00\x00\xb4\x80\x00\x00\xb0\x00\x14\x40\xf9\xb1\xff\xff\x97\xd8\xff\xff\x97\x20\x00\x80\x52\x60\x22\x01\x39\xf3\x0b\x40\xf9\xfd\x7b\xc2\xa8\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\xdc\xff\xff\x17\x89\x00\x00\x90\x29\xe5\x47\xf9\x8a\x00\x00\x90\x4a\xdd\x47\xf9\x48\x01\x40\xb9\x08\x05\x00\x11\x48\x01\x00\xb9\x8a\x00\x00\x90\x4a\xd9\x47\xf9\x48\x01\x40\xf9\x08\x05\x00\xf1\x48\x01\x00\xf9\x28\x01\x40\xb9\x08\x0d\x00\x11\x28\x05\x00\xb9\x89\x00\x00\x90\x29\xe9\x47\xf9\x28\x01\x40\x39\x08\x05\x00\x11\x28\x01\x00\x39\xe0\x03\x1f\x2a\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\xfd\x7b\xbf\xa9\xfd\x03\x00\x91\xfd\x7b\xc1\xa8\xc0\x03\x5f\xd6\x01\x00\x02\x00\x01\x1b\x03\x3b\x38\x00\x00\x00\x06\x00\x00\x00\x7c\xfe\xff\xff\x50\x00\x00\x00\xcc\xfe\xff\xff\x64\x00\x00\x00\xfc\xfe\xff\xff\x78\x00\x00\x00\x3c\xff\xff\xff\x8c\x00\x00\x00\x8c\xff\xff\xff\xb0\x00\x00\x00\x90\xff\xff\xff\xd8\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x01\x7a\x52\x00\x04\x78\x1e\x01\x1b\x0c\x1f\x00\x10\x00\x00\x00\x18\x00\x00\x00\x24\xfe\xff\xff\x34\x00\x00\x00\x00\x41\x07\x1e\x10\x00\x00\x00\x2c\x00\x00\x00\x60\xfe\xff\xff\x30\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x40\x00\x00\x00\x7c\xfe\xff\xff\x3c\x00\x00\x00\x00\x00\x00\x00\x20\x00\x00\x00\x54\x00\x00\x00\xa8\xfe\xff\xff\x48\x00\x00\x00\x00\x41\x0e\x20\x9d\x04\x9e\x03\x42\x93\x02\x4e\xde\xdd\xd3\x0e\x00\x00\x00\x00\x10\x00\x00\x00"), -Section(".comment", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x80\x06\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x88\x1c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x38\x00\x09\x00\x40\x00\x1d\x00\x1c\x00\x06\x00\x00\x00\x04\x00\x00"), -Section(".interp", 0x238, "\x2f\x6c\x69\x62\x2f\x6c\x64\x2d\x6c\x69\x6e\x75\x78\x2d\x61\x61\x72\x63\x68\x36\x34\x2e\x73\x6f\x2e\x31\x00"), -Section(".note.gnu.build-id", 0x254, "\x04\x00\x00\x00\x14\x00\x00\x00\x03\x00\x00\x00\x47\x4e\x55\x00\x37\xdc\xf5\x80\x70\x7e\xf7\x4d\x5c\xf3\x43\xac\x4a\xa4\x1c\x87\x0b\x3a\x49\x2c"), -Section(".note.ABI-tag", 0x278, "\x04\x00\x00\x00\x10\x00\x00\x00\x01\x00\x00\x00\x47\x4e\x55\x00\x00\x00\x00\x00\x03\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00"), -Section(".gnu.hash", 0x298, "\x01\x00\x00\x00\x01\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".dynsym", 0x2B8, "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x0b\x00\xe0\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x17\x00\x20\x10\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x48\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x22\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x22\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x73\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".dynstr", 0x390, "\x00\x5f\x5f\x63\x78\x61\x5f\x66\x69\x6e\x61\x6c\x69\x7a\x65\x00\x5f\x5f\x6c\x69\x62\x63\x5f\x73\x74\x61\x72\x74\x5f\x6d\x61\x69\x6e\x00\x61\x62\x6f\x72\x74\x00\x6c\x69\x62\x63\x2e\x73\x6f\x2e\x36\x00\x47\x4c\x49\x42\x43\x5f\x32\x2e\x31\x37\x00\x47\x4c\x49\x42\x43\x5f\x32\x2e\x33\x34\x00\x5f\x49\x54\x4d\x5f\x64\x65\x72\x65\x67\x69\x73\x74\x65\x72\x54\x4d\x43\x6c\x6f\x6e\x65\x54\x61\x62\x6c\x65\x00\x5f\x5f\x67\x6d\x6f\x6e\x5f\x73\x74\x61\x72\x74\x5f\x5f\x00\x5f\x49\x54\x4d\x5f\x72\x65\x67\x69\x73\x74\x65\x72\x54\x4d\x43\x6c\x6f\x6e\x65\x54\x61\x62\x6c\x65\x00"), -Section(".gnu.version", 0x41E, "\x00\x00\x00\x00\x00\x00\x02\x00\x01\x00\x03\x00\x01\x00\x03\x00\x01\x00"), -Section(".gnu.version_r", 0x430, "\x01\x00\x02\x00\x28\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x97\x91\x96\x06\x00\x00\x03\x00\x32\x00\x00\x00\x10\x00\x00\x00\xb4\x91\x96\x06\x00\x00\x02\x00\x3d\x00\x00\x00\x00\x00\x00\x00"), -Section(".rela.dyn", 0x460, "\xa8\x0d\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x90\x07\x00\x00\x00\x00\x00\x00\xb0\x0d\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x40\x07\x00\x00\x00\x00\x00\x00\xb0\x0f\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x38\x10\x01\x00\x00\x00\x00\x00\xb8\x0f\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x30\x10\x01\x00\x00\x00\x00\x00\xc8\x0f\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x40\x10\x01\x00\x00\x00\x00\x00\xd0\x0f\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x34\x10\x01\x00\x00\x00\x00\x00\xd8\x0f\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x94\x07\x00\x00\x00\x00\x00\x00\x28\x10\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x28\x10\x01\x00\x00\x00\x00\x00\xa0\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xa8\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xc0\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe0\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".rela.plt", 0x580, "\x00\x10\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x08\x10\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x10\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x18\x10\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".init", 0x5E0, "\x1f\x20\x03\xd5\xfd\x7b\xbf\xa9\xfd\x03\x00\x91\x32\x00\x00\x94\xfd\x7b\xc1\xa8\xc0\x03\x5f\xd6"), -Section(".plt", 0x600, "\xf0\x7b\xbf\xa9\x90\x00\x00\x90\x11\xfe\x47\xf9\x10\xe2\x3f\x91\x20\x02\x1f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x90\x00\x00\xb0\x11\x02\x40\xf9\x10\x02\x00\x91\x20\x02\x1f\xd6\x90\x00\x00\xb0\x11\x06\x40\xf9\x10\x22\x00\x91\x20\x02\x1f\xd6\x90\x00\x00\xb0\x11\x0a\x40\xf9\x10\x42\x00\x91\x20\x02\x1f\xd6\x90\x00\x00\xb0\x11\x0e\x40\xf9\x10\x62\x00\x91\x20\x02\x1f\xd6"), -Section(".fini", 0x7EC, "\x1f\x20\x03\xd5\xfd\x7b\xbf\xa9\xfd\x03\x00\x91\xfd\x7b\xc1\xa8\xc0\x03\x5f\xd6"), -Section(".rodata", 0x800, "\x01\x00\x02\x00"), -Section(".eh_frame_hdr", 0x804, "\x01\x1b\x03\x3b\x38\x00\x00\x00\x06\x00\x00\x00\x7c\xfe\xff\xff\x50\x00\x00\x00\xcc\xfe\xff\xff\x64\x00\x00\x00\xfc\xfe\xff\xff\x78\x00\x00\x00\x3c\xff\xff\xff\x8c\x00\x00\x00\x8c\xff\xff\xff\xb0\x00\x00\x00\x90\xff\xff\xff\xd8\x00\x00\x00"), -Section(".eh_frame", 0x840, "\x10\x00\x00\x00\x00\x00\x00\x00\x01\x7a\x52\x00\x04\x78\x1e\x01\x1b\x0c\x1f\x00\x10\x00\x00\x00\x18\x00\x00\x00\x24\xfe\xff\xff\x34\x00\x00\x00\x00\x41\x07\x1e\x10\x00\x00\x00\x2c\x00\x00\x00\x60\xfe\xff\xff\x30\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x40\x00\x00\x00\x7c\xfe\xff\xff\x3c\x00\x00\x00\x00\x00\x00\x00\x20\x00\x00\x00\x54\x00\x00\x00\xa8\xfe\xff\xff\x48\x00\x00\x00\x00\x41\x0e\x20\x9d\x04\x9e\x03\x42\x93\x02\x4e\xde\xdd\xd3\x0e\x00\x00\x00\x00\x10\x00\x00\x00\x78\x00\x00\x00\xd4\xfe\xff\xff\x04\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x01\x7a\x52\x00\x01\x7c\x1e\x01\x1b\x0c\x1f\x00\x10\x00\x00\x00\x18\x00\x00\x00\xb0\xfe\xff\xff\x58\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".fini_array", 0x10DB0, "\x40\x07\x00\x00\x00\x00\x00\x00"), -Section(".dynamic", 0x10DB8, "\x01\x00\x00\x00\x00\x00\x00\x00\x28\x00\x00\x00\x00\x00\x00\x00\x0c\x00\x00\x00\x00\x00\x00\x00\xe0\x05\x00\x00\x00\x00\x00\x00\x0d\x00\x00\x00\x00\x00\x00\x00\xec\x07\x00\x00\x00\x00\x00\x00\x19\x00\x00\x00\x00\x00\x00\x00\xa8\x0d\x01\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x1a\x00\x00\x00\x00\x00\x00\x00\xb0\x0d\x01\x00\x00\x00\x00\x00\x1c\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\xf5\xfe\xff\x6f\x00\x00\x00\x00\x98\x02\x00\x00\x00\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x90\x03\x00\x00\x00\x00\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\xb8\x02\x00\x00\x00\x00\x00\x00\x0a\x00\x00\x00\x00\x00\x00\x00\x8d\x00\x00\x00\x00\x00\x00\x00\x0b\x00\x00\x00\x00\x00\x00\x00\x18\x00\x00\x00\x00\x00\x00\x00\x15\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\xe8\x0f\x01\x00\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x60\x00\x00\x00\x00\x00\x00\x00\x14\x00\x00\x00\x00\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x17\x00\x00\x00\x00\x00\x00\x00\x80\x05\x00\x00\x00\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x60\x04\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x20\x01\x00\x00\x00\x00\x00\x00\x09\x00\x00\x00\x00\x00\x00\x00\x18\x00\x00\x00\x00\x00\x00\x00\xfb\xff\xff\x6f\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\xfe\xff\xff\x6f\x00\x00\x00\x00\x30\x04\x00\x00\x00\x00\x00\x00\xff\xff\xff\x6f\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\xf0\xff\xff\x6f\x00\x00\x00\x00\x1e\x04\x00\x00\x00\x00\x00\x00\xf9\xff\xff\x6f\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".init_array", 0x10DA8, "\x90\x07\x00\x00\x00\x00\x00\x00"), -Section(".got", 0x10F98, "\xb8\x0d\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x38\x10\x01\x00\x00\x00\x00\x00\x30\x10\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x10\x01\x00\x00\x00\x00\x00\x34\x10\x01\x00\x00\x00\x00\x00\x94\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".got.plt", 0x10FE8, "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x06\x00\x00\x00\x00\x00\x00"), -Section(".data", 0x11020, "\x00\x00\x00\x00\x00\x00\x00\x00\x28\x10\x01\x00\x00\x00\x00\x00\x05\x00\x00\x00\x61\x00\x00\x00\xff\xff\xff\xff\x0f\x00\x00\x00\x01\x00\x00\x00\x02\x00\x00\x00"), -Section(".text", 0x680, "\x1f\x20\x03\xd5\x1d\x00\x80\xd2\x1e\x00\x80\xd2\xe5\x03\x00\xaa\xe1\x03\x40\xf9\xe2\x23\x00\x91\xe6\x03\x00\x91\x80\x00\x00\x90\x00\xec\x47\xf9\x03\x00\x80\xd2\x04\x00\x80\xd2\xdd\xff\xff\x97\xe8\xff\xff\x97\x80\x00\x00\x90\x00\xe0\x47\xf9\x40\x00\x00\xb4\xe0\xff\xff\x17\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x80\x00\x00\xb0\x00\x20\x01\x91\x81\x00\x00\xb0\x21\x20\x01\x91\x3f\x00\x00\xeb\xc0\x00\x00\x54\x81\x00\x00\x90\x21\xd0\x47\xf9\x61\x00\x00\xb4\xf0\x03\x01\xaa\x00\x02\x1f\xd6\xc0\x03\x5f\xd6\x80\x00\x00\xb0\x00\x20\x01\x91\x81\x00\x00\xb0\x21\x20\x01\x91\x21\x00\x00\xcb\x22\xfc\x7f\xd3\x41\x0c\x81\x8b\x21\xfc\x41\x93\xc1\x00\x00\xb4\x82\x00\x00\x90\x42\xf0\x47\xf9\x62\x00\x00\xb4\xf0\x03\x02\xaa\x00\x02\x1f\xd6\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\xfd\x7b\xbe\xa9\xfd\x03\x00\x91\xf3\x0b\x00\xf9\x93\x00\x00\xb0\x60\x22\x41\x39\x40\x01\x00\x35\x80\x00\x00\x90\x00\xd4\x47\xf9\x80\x00\x00\xb4\x80\x00\x00\xb0\x00\x14\x40\xf9\xb1\xff\xff\x97\xd8\xff\xff\x97\x20\x00\x80\x52\x60\x22\x01\x39\xf3\x0b\x40\xf9\xfd\x7b\xc2\xa8\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\xdc\xff\xff\x17\x89\x00\x00\x90\x29\xe5\x47\xf9\x8a\x00\x00\x90\x4a\xdd\x47\xf9\x48\x01\x40\xb9\x08\x05\x00\x11\x48\x01\x00\xb9\x8a\x00\x00\x90\x4a\xd9\x47\xf9\x48\x01\x40\xf9\x08\x05\x00\xf1\x48\x01\x00\xf9\x28\x01\x40\xb9\x08\x0d\x00\x11\x28\x05\x00\xb9\x89\x00\x00\x90\x29\xe9\x47\xf9\x28\x01\x40\x39\x08\x05\x00\x11\x28\x01\x00\x39\xe0\x03\x1f\x2a\xc0\x03\x5f\xd6")]), -Memmap([Annotation(Region(0x0,0x8F3), Attr("segment","02 0 2292")), -Annotation(Region(0x680,0x6B3), Attr("symbol","\"_start\"")), -Annotation(Region(0x0,0x102), Attr("section","\".shstrtab\"")), -Annotation(Region(0x0,0x23B), Attr("section","\".strtab\"")), -Annotation(Region(0x0,0x8B7), Attr("section","\".symtab\"")), -Annotation(Region(0x0,0x46), Attr("section","\".comment\"")), -Annotation(Region(0x238,0x252), Attr("section","\".interp\"")), -Annotation(Region(0x254,0x277), Attr("section","\".note.gnu.build-id\"")), -Annotation(Region(0x278,0x297), Attr("section","\".note.ABI-tag\"")), -Annotation(Region(0x298,0x2B3), Attr("section","\".gnu.hash\"")), -Annotation(Region(0x2B8,0x38F), Attr("section","\".dynsym\"")), -Annotation(Region(0x390,0x41C), Attr("section","\".dynstr\"")), -Annotation(Region(0x41E,0x42F), Attr("section","\".gnu.version\"")), -Annotation(Region(0x430,0x45F), Attr("section","\".gnu.version_r\"")), -Annotation(Region(0x460,0x57F), Attr("section","\".rela.dyn\"")), -Annotation(Region(0x580,0x5DF), Attr("section","\".rela.plt\"")), -Annotation(Region(0x5E0,0x5F7), Attr("section","\".init\"")), -Annotation(Region(0x600,0x65F), Attr("section","\".plt\"")), -Annotation(Region(0x5E0,0x5F7), Attr("code-region","()")), -Annotation(Region(0x600,0x65F), Attr("code-region","()")), -Annotation(Region(0x680,0x6B3), Attr("symbol-info","_start 0x680 52")), -Annotation(Region(0x6B4,0x6C7), Attr("symbol","\"call_weak_fn\"")), -Annotation(Region(0x6B4,0x6C7), Attr("symbol-info","call_weak_fn 0x6B4 20")), -Annotation(Region(0x794,0x7EB), Attr("symbol","\"main\"")), -Annotation(Region(0x794,0x7EB), Attr("symbol-info","main 0x794 88")), -Annotation(Region(0x7EC,0x7FF), Attr("section","\".fini\"")), -Annotation(Region(0x800,0x803), Attr("section","\".rodata\"")), -Annotation(Region(0x804,0x83F), Attr("section","\".eh_frame_hdr\"")), -Annotation(Region(0x840,0x8F3), Attr("section","\".eh_frame\"")), -Annotation(Region(0x10DA8,0x11047), Attr("segment","03 0x10DA8 680")), -Annotation(Region(0x10DB0,0x10DB7), Attr("section","\".fini_array\"")), -Annotation(Region(0x10DB8,0x10F97), Attr("section","\".dynamic\"")), -Annotation(Region(0x10DA8,0x10DAF), Attr("section","\".init_array\"")), -Annotation(Region(0x10F98,0x10FE7), Attr("section","\".got\"")), -Annotation(Region(0x10FE8,0x1101F), Attr("section","\".got.plt\"")), -Annotation(Region(0x11020,0x11047), Attr("section","\".data\"")), -Annotation(Region(0x680,0x7EB), Attr("section","\".text\"")), -Annotation(Region(0x680,0x7EB), Attr("code-region","()")), -Annotation(Region(0x7EC,0x7FF), Attr("code-region","()"))]), -Program(Tid(1_532, "%000005fc"), Attrs([]), - Subs([Sub(Tid(1_482, "@__cxa_finalize"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x630"), -Attr("stub","()")]), "__cxa_finalize", Args([Arg(Tid(1_533, "%000005fd"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("__cxa_finalize_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(989, "@__cxa_finalize"), - Attrs([Attr("address","0x630")]), Phis([]), -Defs([Def(Tid(1_237, "%000004d5"), Attrs([Attr("address","0x630"), -Attr("insn","adrp x16, #69632")]), Var("R16",Imm(64)), Int(69632,64)), -Def(Tid(1_244, "%000004dc"), Attrs([Attr("address","0x634"), -Attr("insn","ldr x17, [x16, #0x8]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(1_250, "%000004e2"), Attrs([Attr("address","0x638"), -Attr("insn","add x16, x16, #0x8")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(8,64)))]), Jmps([Call(Tid(1_255, "%000004e7"), - Attrs([Attr("address","0x63C"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), -Sub(Tid(1_483, "@__do_global_dtors_aux"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x740")]), - "__do_global_dtors_aux", Args([Arg(Tid(1_534, "%000005fe"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("__do_global_dtors_aux_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(678, "@__do_global_dtors_aux"), - Attrs([Attr("address","0x740")]), Phis([]), Defs([Def(Tid(682, "%000002aa"), - Attrs([Attr("address","0x740"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("#3",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(18446744073709551584,64))), -Def(Tid(688, "%000002b0"), Attrs([Attr("address","0x740"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("#3",Imm(64)),Var("R29",Imm(64)),LittleEndian(),64)), -Def(Tid(694, "%000002b6"), Attrs([Attr("address","0x740"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("#3",Imm(64)),Int(8,64)),Var("R30",Imm(64)),LittleEndian(),64)), -Def(Tid(698, "%000002ba"), Attrs([Attr("address","0x740"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("R31",Imm(64)), -Var("#3",Imm(64))), Def(Tid(704, "%000002c0"), - Attrs([Attr("address","0x744"), Attr("insn","mov x29, sp")]), - Var("R29",Imm(64)), Var("R31",Imm(64))), Def(Tid(712, "%000002c8"), - Attrs([Attr("address","0x748"), Attr("insn","str x19, [sp, #0x10]")]), - Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(16,64)),Var("R19",Imm(64)),LittleEndian(),64)), -Def(Tid(717, "%000002cd"), Attrs([Attr("address","0x74C"), -Attr("insn","adrp x19, #69632")]), Var("R19",Imm(64)), Int(69632,64)), -Def(Tid(724, "%000002d4"), Attrs([Attr("address","0x750"), -Attr("insn","ldrb w0, [x19, #0x48]")]), Var("R0",Imm(64)), -UNSIGNED(64,Load(Var("mem",Mem(64,8)),PLUS(Var("R19",Imm(64)),Int(72,64)),LittleEndian(),8)))]), -Jmps([Goto(Tid(731, "%000002db"), Attrs([Attr("address","0x754"), -Attr("insn","cbnz w0, #0x28")]), - NEQ(Extract(31,0,Var("R0",Imm(64))),Int(0,32)), -Direct(Tid(729, "%000002d9"))), Goto(Tid(1_522, "%000005f2"), Attrs([]), - Int(1,1), Direct(Tid(934, "%000003a6")))])), Blk(Tid(934, "%000003a6"), - Attrs([Attr("address","0x758")]), Phis([]), Defs([Def(Tid(937, "%000003a9"), - Attrs([Attr("address","0x758"), Attr("insn","adrp x0, #65536")]), - Var("R0",Imm(64)), Int(65536,64)), Def(Tid(944, "%000003b0"), - Attrs([Attr("address","0x75C"), Attr("insn","ldr x0, [x0, #0xfa8]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(4008,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(950, "%000003b6"), Attrs([Attr("address","0x760"), -Attr("insn","cbz x0, #0x10")]), EQ(Var("R0",Imm(64)),Int(0,64)), -Direct(Tid(948, "%000003b4"))), Goto(Tid(1_523, "%000005f3"), Attrs([]), - Int(1,1), Direct(Tid(973, "%000003cd")))])), Blk(Tid(973, "%000003cd"), - Attrs([Attr("address","0x764")]), Phis([]), Defs([Def(Tid(976, "%000003d0"), - Attrs([Attr("address","0x764"), Attr("insn","adrp x0, #69632")]), - Var("R0",Imm(64)), Int(69632,64)), Def(Tid(983, "%000003d7"), - Attrs([Attr("address","0x768"), Attr("insn","ldr x0, [x0, #0x28]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(40,64)),LittleEndian(),64)), -Def(Tid(988, "%000003dc"), Attrs([Attr("address","0x76C"), -Attr("insn","bl #-0x13c")]), Var("R30",Imm(64)), Int(1904,64))]), -Jmps([Call(Tid(991, "%000003df"), Attrs([Attr("address","0x76C"), -Attr("insn","bl #-0x13c")]), Int(1,1), -(Direct(Tid(1_482, "@__cxa_finalize")),Direct(Tid(948, "%000003b4"))))])), -Blk(Tid(948, "%000003b4"), Attrs([Attr("address","0x770")]), Phis([]), -Defs([Def(Tid(956, "%000003bc"), Attrs([Attr("address","0x770"), -Attr("insn","bl #-0xa0")]), Var("R30",Imm(64)), Int(1908,64))]), -Jmps([Call(Tid(958, "%000003be"), Attrs([Attr("address","0x770"), -Attr("insn","bl #-0xa0")]), Int(1,1), -(Direct(Tid(1_496, "@deregister_tm_clones")),Direct(Tid(960, "%000003c0"))))])), -Blk(Tid(960, "%000003c0"), Attrs([Attr("address","0x774")]), Phis([]), -Defs([Def(Tid(963, "%000003c3"), Attrs([Attr("address","0x774"), -Attr("insn","mov w0, #0x1")]), Var("R0",Imm(64)), Int(1,64)), -Def(Tid(971, "%000003cb"), Attrs([Attr("address","0x778"), -Attr("insn","strb w0, [x19, #0x48]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R19",Imm(64)),Int(72,64)),Extract(7,0,Var("R0",Imm(64))),LittleEndian(),8))]), -Jmps([Goto(Tid(1_524, "%000005f4"), Attrs([]), Int(1,1), -Direct(Tid(729, "%000002d9")))])), Blk(Tid(729, "%000002d9"), - Attrs([Attr("address","0x77C")]), Phis([]), Defs([Def(Tid(739, "%000002e3"), - Attrs([Attr("address","0x77C"), Attr("insn","ldr x19, [sp, #0x10]")]), - Var("R19",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(16,64)),LittleEndian(),64)), -Def(Tid(746, "%000002ea"), Attrs([Attr("address","0x780"), -Attr("insn","ldp x29, x30, [sp], #0x20")]), Var("R29",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(751, "%000002ef"), Attrs([Attr("address","0x780"), -Attr("insn","ldp x29, x30, [sp], #0x20")]), Var("R30",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(755, "%000002f3"), Attrs([Attr("address","0x780"), -Attr("insn","ldp x29, x30, [sp], #0x20")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(32,64)))]), Jmps([Call(Tid(760, "%000002f8"), - Attrs([Attr("address","0x784"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), Sub(Tid(1_487, "@__libc_start_main"), - Attrs([Attr("c.proto","signed (*)(signed (*)(signed , char** , char** );* main, signed , char** , \nvoid* auxv)"), -Attr("address","0x620"), Attr("stub","()")]), "__libc_start_main", - Args([Arg(Tid(1_535, "%000005ff"), - Attrs([Attr("c.layout","**[ : 64]"), -Attr("c.data","Top:u64 ptr ptr"), -Attr("c.type","signed (*)(signed , char** , char** );*")]), - Var("__libc_start_main_main",Imm(64)), Var("R0",Imm(64)), In()), -Arg(Tid(1_536, "%00000600"), Attrs([Attr("c.layout","[signed : 32]"), -Attr("c.data","Top:u32"), Attr("c.type","signed")]), - Var("__libc_start_main_arg2",Imm(32)), LOW(32,Var("R1",Imm(64))), In()), -Arg(Tid(1_537, "%00000601"), Attrs([Attr("c.layout","**[char : 8]"), -Attr("c.data","Top:u8 ptr ptr"), Attr("c.type","char**")]), - Var("__libc_start_main_arg3",Imm(64)), Var("R2",Imm(64)), Both()), -Arg(Tid(1_538, "%00000602"), Attrs([Attr("c.layout","*[ : 8]"), -Attr("c.data","{} ptr"), Attr("c.type","void*")]), - Var("__libc_start_main_auxv",Imm(64)), Var("R3",Imm(64)), Both()), -Arg(Tid(1_539, "%00000603"), Attrs([Attr("c.layout","[signed : 32]"), -Attr("c.data","Top:u32"), Attr("c.type","signed")]), - Var("__libc_start_main_result",Imm(32)), LOW(32,Var("R0",Imm(64))), -Out())]), Blks([Blk(Tid(511, "@__libc_start_main"), - Attrs([Attr("address","0x620")]), Phis([]), -Defs([Def(Tid(1_215, "%000004bf"), Attrs([Attr("address","0x620"), -Attr("insn","adrp x16, #69632")]), Var("R16",Imm(64)), Int(69632,64)), -Def(Tid(1_222, "%000004c6"), Attrs([Attr("address","0x624"), -Attr("insn","ldr x17, [x16]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R16",Imm(64)),LittleEndian(),64)), -Def(Tid(1_228, "%000004cc"), Attrs([Attr("address","0x628"), -Attr("insn","add x16, x16, #0x0")]), Var("R16",Imm(64)), -Var("R16",Imm(64)))]), Jmps([Call(Tid(1_233, "%000004d1"), - Attrs([Attr("address","0x62C"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), Sub(Tid(1_488, "@_fini"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x7EC")]), - "_fini", Args([Arg(Tid(1_540, "%00000604"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("_fini_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(31, "@_fini"), - Attrs([Attr("address","0x7EC")]), Phis([]), Defs([Def(Tid(37, "%00000025"), - Attrs([Attr("address","0x7F0"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("#0",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(18446744073709551600,64))), -Def(Tid(43, "%0000002b"), Attrs([Attr("address","0x7F0"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("#0",Imm(64)),Var("R29",Imm(64)),LittleEndian(),64)), -Def(Tid(49, "%00000031"), Attrs([Attr("address","0x7F0"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("#0",Imm(64)),Int(8,64)),Var("R30",Imm(64)),LittleEndian(),64)), -Def(Tid(53, "%00000035"), Attrs([Attr("address","0x7F0"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("R31",Imm(64)), -Var("#0",Imm(64))), Def(Tid(59, "%0000003b"), Attrs([Attr("address","0x7F4"), -Attr("insn","mov x29, sp")]), Var("R29",Imm(64)), Var("R31",Imm(64))), -Def(Tid(66, "%00000042"), Attrs([Attr("address","0x7F8"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R29",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(71, "%00000047"), Attrs([Attr("address","0x7F8"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R30",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(75, "%0000004b"), Attrs([Attr("address","0x7F8"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(16,64)))]), Jmps([Call(Tid(80, "%00000050"), - Attrs([Attr("address","0x7FC"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), Sub(Tid(1_489, "@_init"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x5E0")]), - "_init", Args([Arg(Tid(1_541, "%00000605"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("_init_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(1_327, "@_init"), - Attrs([Attr("address","0x5E0")]), Phis([]), -Defs([Def(Tid(1_333, "%00000535"), Attrs([Attr("address","0x5E4"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("#6",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(18446744073709551600,64))), -Def(Tid(1_339, "%0000053b"), Attrs([Attr("address","0x5E4"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("#6",Imm(64)),Var("R29",Imm(64)),LittleEndian(),64)), -Def(Tid(1_345, "%00000541"), Attrs([Attr("address","0x5E4"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("#6",Imm(64)),Int(8,64)),Var("R30",Imm(64)),LittleEndian(),64)), -Def(Tid(1_349, "%00000545"), Attrs([Attr("address","0x5E4"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("R31",Imm(64)), -Var("#6",Imm(64))), Def(Tid(1_355, "%0000054b"), - Attrs([Attr("address","0x5E8"), Attr("insn","mov x29, sp")]), - Var("R29",Imm(64)), Var("R31",Imm(64))), Def(Tid(1_360, "%00000550"), - Attrs([Attr("address","0x5EC"), Attr("insn","bl #0xc8")]), - Var("R30",Imm(64)), Int(1520,64))]), Jmps([Call(Tid(1_362, "%00000552"), - Attrs([Attr("address","0x5EC"), Attr("insn","bl #0xc8")]), Int(1,1), -(Direct(Tid(1_494, "@call_weak_fn")),Direct(Tid(1_364, "%00000554"))))])), -Blk(Tid(1_364, "%00000554"), Attrs([Attr("address","0x5F0")]), Phis([]), -Defs([Def(Tid(1_369, "%00000559"), Attrs([Attr("address","0x5F0"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R29",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(1_374, "%0000055e"), Attrs([Attr("address","0x5F0"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R30",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(1_378, "%00000562"), Attrs([Attr("address","0x5F0"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(16,64)))]), Jmps([Call(Tid(1_383, "%00000567"), - Attrs([Attr("address","0x5F4"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), Sub(Tid(1_490, "@_start"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x680"), -Attr("entry-point","()")]), "_start", Args([Arg(Tid(1_542, "%00000606"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("_start_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(448, "@_start"), - Attrs([Attr("address","0x680")]), Phis([]), Defs([Def(Tid(453, "%000001c5"), - Attrs([Attr("address","0x684"), Attr("insn","mov x29, #0x0")]), - Var("R29",Imm(64)), Int(0,64)), Def(Tid(458, "%000001ca"), - Attrs([Attr("address","0x688"), Attr("insn","mov x30, #0x0")]), - Var("R30",Imm(64)), Int(0,64)), Def(Tid(464, "%000001d0"), - Attrs([Attr("address","0x68C"), Attr("insn","mov x5, x0")]), - Var("R5",Imm(64)), Var("R0",Imm(64))), Def(Tid(471, "%000001d7"), - Attrs([Attr("address","0x690"), Attr("insn","ldr x1, [sp]")]), - Var("R1",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(477, "%000001dd"), Attrs([Attr("address","0x694"), -Attr("insn","add x2, sp, #0x8")]), Var("R2",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(8,64))), Def(Tid(483, "%000001e3"), - Attrs([Attr("address","0x698"), Attr("insn","mov x6, sp")]), - Var("R6",Imm(64)), Var("R31",Imm(64))), Def(Tid(488, "%000001e8"), - Attrs([Attr("address","0x69C"), Attr("insn","adrp x0, #65536")]), - Var("R0",Imm(64)), Int(65536,64)), Def(Tid(495, "%000001ef"), - Attrs([Attr("address","0x6A0"), Attr("insn","ldr x0, [x0, #0xfd8]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(4056,64)),LittleEndian(),64)), -Def(Tid(500, "%000001f4"), Attrs([Attr("address","0x6A4"), -Attr("insn","mov x3, #0x0")]), Var("R3",Imm(64)), Int(0,64)), -Def(Tid(505, "%000001f9"), Attrs([Attr("address","0x6A8"), -Attr("insn","mov x4, #0x0")]), Var("R4",Imm(64)), Int(0,64)), -Def(Tid(510, "%000001fe"), Attrs([Attr("address","0x6AC"), -Attr("insn","bl #-0x8c")]), Var("R30",Imm(64)), Int(1712,64))]), -Jmps([Call(Tid(513, "%00000201"), Attrs([Attr("address","0x6AC"), -Attr("insn","bl #-0x8c")]), Int(1,1), -(Direct(Tid(1_487, "@__libc_start_main")),Direct(Tid(515, "%00000203"))))])), -Blk(Tid(515, "%00000203"), Attrs([Attr("address","0x6B0")]), Phis([]), -Defs([Def(Tid(518, "%00000206"), Attrs([Attr("address","0x6B0"), -Attr("insn","bl #-0x60")]), Var("R30",Imm(64)), Int(1716,64))]), -Jmps([Call(Tid(521, "%00000209"), Attrs([Attr("address","0x6B0"), -Attr("insn","bl #-0x60")]), Int(1,1), -(Direct(Tid(1_493, "@abort")),Direct(Tid(1_525, "%000005f5"))))])), -Blk(Tid(1_525, "%000005f5"), Attrs([]), Phis([]), Defs([]), -Jmps([Call(Tid(1_526, "%000005f6"), Attrs([]), Int(1,1), -(Direct(Tid(1_494, "@call_weak_fn")),))]))])), Sub(Tid(1_493, "@abort"), - Attrs([Attr("noreturn","()"), Attr("c.proto","void (*)(void)"), -Attr("address","0x650"), Attr("stub","()")]), "abort", Args([]), -Blks([Blk(Tid(519, "@abort"), Attrs([Attr("address","0x650")]), Phis([]), -Defs([Def(Tid(1_281, "%00000501"), Attrs([Attr("address","0x650"), -Attr("insn","adrp x16, #69632")]), Var("R16",Imm(64)), Int(69632,64)), -Def(Tid(1_288, "%00000508"), Attrs([Attr("address","0x654"), -Attr("insn","ldr x17, [x16, #0x18]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(24,64)),LittleEndian(),64)), -Def(Tid(1_294, "%0000050e"), Attrs([Attr("address","0x658"), -Attr("insn","add x16, x16, #0x18")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(24,64)))]), Jmps([Call(Tid(1_299, "%00000513"), - Attrs([Attr("address","0x65C"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), Sub(Tid(1_494, "@call_weak_fn"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x6B4")]), - "call_weak_fn", Args([Arg(Tid(1_543, "%00000607"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("call_weak_fn_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(523, "@call_weak_fn"), - Attrs([Attr("address","0x6B4")]), Phis([]), Defs([Def(Tid(526, "%0000020e"), - Attrs([Attr("address","0x6B4"), Attr("insn","adrp x0, #65536")]), - Var("R0",Imm(64)), Int(65536,64)), Def(Tid(533, "%00000215"), - Attrs([Attr("address","0x6B8"), Attr("insn","ldr x0, [x0, #0xfc0]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(4032,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(539, "%0000021b"), Attrs([Attr("address","0x6BC"), -Attr("insn","cbz x0, #0x8")]), EQ(Var("R0",Imm(64)),Int(0,64)), -Direct(Tid(537, "%00000219"))), Goto(Tid(1_527, "%000005f7"), Attrs([]), - Int(1,1), Direct(Tid(1_053, "%0000041d")))])), Blk(Tid(537, "%00000219"), - Attrs([Attr("address","0x6C4")]), Phis([]), Defs([]), -Jmps([Call(Tid(545, "%00000221"), Attrs([Attr("address","0x6C4"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))])), -Blk(Tid(1_053, "%0000041d"), Attrs([Attr("address","0x6C0")]), Phis([]), -Defs([]), Jmps([Goto(Tid(1_056, "%00000420"), Attrs([Attr("address","0x6C0"), -Attr("insn","b #-0x80")]), Int(1,1), -Direct(Tid(1_054, "@__gmon_start__")))])), Blk(Tid(1_054, "@__gmon_start__"), - Attrs([Attr("address","0x640")]), Phis([]), -Defs([Def(Tid(1_259, "%000004eb"), Attrs([Attr("address","0x640"), -Attr("insn","adrp x16, #69632")]), Var("R16",Imm(64)), Int(69632,64)), -Def(Tid(1_266, "%000004f2"), Attrs([Attr("address","0x644"), -Attr("insn","ldr x17, [x16, #0x10]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(16,64)),LittleEndian(),64)), -Def(Tid(1_272, "%000004f8"), Attrs([Attr("address","0x648"), -Attr("insn","add x16, x16, #0x10")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(16,64)))]), Jmps([Call(Tid(1_277, "%000004fd"), - Attrs([Attr("address","0x64C"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), -Sub(Tid(1_496, "@deregister_tm_clones"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x6D0")]), - "deregister_tm_clones", Args([Arg(Tid(1_544, "%00000608"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("deregister_tm_clones_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(551, "@deregister_tm_clones"), - Attrs([Attr("address","0x6D0")]), Phis([]), Defs([Def(Tid(554, "%0000022a"), - Attrs([Attr("address","0x6D0"), Attr("insn","adrp x0, #69632")]), - Var("R0",Imm(64)), Int(69632,64)), Def(Tid(560, "%00000230"), - Attrs([Attr("address","0x6D4"), Attr("insn","add x0, x0, #0x48")]), - Var("R0",Imm(64)), PLUS(Var("R0",Imm(64)),Int(72,64))), -Def(Tid(565, "%00000235"), Attrs([Attr("address","0x6D8"), -Attr("insn","adrp x1, #69632")]), Var("R1",Imm(64)), Int(69632,64)), -Def(Tid(571, "%0000023b"), Attrs([Attr("address","0x6DC"), -Attr("insn","add x1, x1, #0x48")]), Var("R1",Imm(64)), -PLUS(Var("R1",Imm(64)),Int(72,64))), Def(Tid(577, "%00000241"), - Attrs([Attr("address","0x6E0"), Attr("insn","cmp x1, x0")]), - Var("#1",Imm(64)), NOT(Var("R0",Imm(64)))), Def(Tid(582, "%00000246"), - Attrs([Attr("address","0x6E0"), Attr("insn","cmp x1, x0")]), - Var("#2",Imm(64)), PLUS(Var("R1",Imm(64)),NOT(Var("R0",Imm(64))))), -Def(Tid(588, "%0000024c"), Attrs([Attr("address","0x6E0"), -Attr("insn","cmp x1, x0")]), Var("VF",Imm(1)), -NEQ(SIGNED(65,PLUS(Var("#2",Imm(64)),Int(1,64))),PLUS(PLUS(SIGNED(65,Var("R1",Imm(64))),SIGNED(65,Var("#1",Imm(64)))),Int(1,65)))), -Def(Tid(594, "%00000252"), Attrs([Attr("address","0x6E0"), -Attr("insn","cmp x1, x0")]), Var("CF",Imm(1)), -NEQ(UNSIGNED(65,PLUS(Var("#2",Imm(64)),Int(1,64))),PLUS(PLUS(UNSIGNED(65,Var("R1",Imm(64))),UNSIGNED(65,Var("#1",Imm(64)))),Int(1,65)))), -Def(Tid(598, "%00000256"), Attrs([Attr("address","0x6E0"), -Attr("insn","cmp x1, x0")]), Var("ZF",Imm(1)), -EQ(PLUS(Var("#2",Imm(64)),Int(1,64)),Int(0,64))), Def(Tid(602, "%0000025a"), - Attrs([Attr("address","0x6E0"), Attr("insn","cmp x1, x0")]), - Var("NF",Imm(1)), Extract(63,63,PLUS(Var("#2",Imm(64)),Int(1,64))))]), -Jmps([Goto(Tid(608, "%00000260"), Attrs([Attr("address","0x6E4"), -Attr("insn","b.eq #0x18")]), EQ(Var("ZF",Imm(1)),Int(1,1)), -Direct(Tid(606, "%0000025e"))), Goto(Tid(1_528, "%000005f8"), Attrs([]), - Int(1,1), Direct(Tid(1_023, "%000003ff")))])), Blk(Tid(1_023, "%000003ff"), - Attrs([Attr("address","0x6E8")]), Phis([]), -Defs([Def(Tid(1_026, "%00000402"), Attrs([Attr("address","0x6E8"), -Attr("insn","adrp x1, #65536")]), Var("R1",Imm(64)), Int(65536,64)), -Def(Tid(1_033, "%00000409"), Attrs([Attr("address","0x6EC"), -Attr("insn","ldr x1, [x1, #0xfa0]")]), Var("R1",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R1",Imm(64)),Int(4000,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(1_038, "%0000040e"), Attrs([Attr("address","0x6F0"), -Attr("insn","cbz x1, #0xc")]), EQ(Var("R1",Imm(64)),Int(0,64)), -Direct(Tid(606, "%0000025e"))), Goto(Tid(1_529, "%000005f9"), Attrs([]), - Int(1,1), Direct(Tid(1_042, "%00000412")))])), Blk(Tid(606, "%0000025e"), - Attrs([Attr("address","0x6FC")]), Phis([]), Defs([]), -Jmps([Call(Tid(614, "%00000266"), Attrs([Attr("address","0x6FC"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))])), -Blk(Tid(1_042, "%00000412"), Attrs([Attr("address","0x6F4")]), Phis([]), -Defs([Def(Tid(1_046, "%00000416"), Attrs([Attr("address","0x6F4"), -Attr("insn","mov x16, x1")]), Var("R16",Imm(64)), Var("R1",Imm(64)))]), -Jmps([Call(Tid(1_051, "%0000041b"), Attrs([Attr("address","0x6F8"), -Attr("insn","br x16")]), Int(1,1), (Indirect(Var("R16",Imm(64))),))]))])), -Sub(Tid(1_499, "@frame_dummy"), Attrs([Attr("c.proto","signed (*)(void)"), -Attr("address","0x790")]), "frame_dummy", Args([Arg(Tid(1_545, "%00000609"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("frame_dummy_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(766, "@frame_dummy"), - Attrs([Attr("address","0x790")]), Phis([]), Defs([]), -Jmps([Call(Tid(768, "%00000300"), Attrs([Attr("address","0x790"), -Attr("insn","b #-0x90")]), Int(1,1), -(Direct(Tid(1_501, "@register_tm_clones")),))]))])), Sub(Tid(1_500, "@main"), - Attrs([Attr("c.proto","signed (*)(signed argc, const char** argv)"), -Attr("address","0x794")]), "main", Args([Arg(Tid(1_546, "%0000060a"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("main_argc",Imm(32)), -LOW(32,Var("R0",Imm(64))), In()), Arg(Tid(1_547, "%0000060b"), - Attrs([Attr("c.layout","**[char : 8]"), Attr("c.data","Top:u8 ptr ptr"), -Attr("c.type"," const char**")]), Var("main_argv",Imm(64)), -Var("R1",Imm(64)), Both()), Arg(Tid(1_548, "%0000060c"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("main_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(770, "@main"), - Attrs([Attr("address","0x794")]), Phis([]), Defs([Def(Tid(773, "%00000305"), - Attrs([Attr("address","0x794"), Attr("insn","adrp x9, #65536")]), - Var("R9",Imm(64)), Int(65536,64)), Def(Tid(780, "%0000030c"), - Attrs([Attr("address","0x798"), Attr("insn","ldr x9, [x9, #0xfc8]")]), - Var("R9",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R9",Imm(64)),Int(4040,64)),LittleEndian(),64)), -Def(Tid(785, "%00000311"), Attrs([Attr("address","0x79C"), -Attr("insn","adrp x10, #65536")]), Var("R10",Imm(64)), Int(65536,64)), -Def(Tid(792, "%00000318"), Attrs([Attr("address","0x7A0"), -Attr("insn","ldr x10, [x10, #0xfb8]")]), Var("R10",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R10",Imm(64)),Int(4024,64)),LittleEndian(),64)), -Def(Tid(799, "%0000031f"), Attrs([Attr("address","0x7A4"), -Attr("insn","ldr w8, [x10]")]), Var("R8",Imm(64)), -UNSIGNED(64,Load(Var("mem",Mem(64,8)),Var("R10",Imm(64)),LittleEndian(),32))), -Def(Tid(805, "%00000325"), Attrs([Attr("address","0x7A8"), -Attr("insn","add w8, w8, #0x1")]), Var("R8",Imm(64)), -UNSIGNED(64,PLUS(Extract(31,0,Var("R8",Imm(64))),Int(1,32)))), -Def(Tid(813, "%0000032d"), Attrs([Attr("address","0x7AC"), -Attr("insn","str w8, [x10]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("R10",Imm(64)),Extract(31,0,Var("R8",Imm(64))),LittleEndian(),32)), -Def(Tid(818, "%00000332"), Attrs([Attr("address","0x7B0"), -Attr("insn","adrp x10, #65536")]), Var("R10",Imm(64)), Int(65536,64)), -Def(Tid(825, "%00000339"), Attrs([Attr("address","0x7B4"), -Attr("insn","ldr x10, [x10, #0xfb0]")]), Var("R10",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R10",Imm(64)),Int(4016,64)),LittleEndian(),64)), -Def(Tid(832, "%00000340"), Attrs([Attr("address","0x7B8"), -Attr("insn","ldr x8, [x10]")]), Var("R8",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R10",Imm(64)),LittleEndian(),64)), -Def(Tid(838, "%00000346"), Attrs([Attr("address","0x7BC"), -Attr("insn","subs x8, x8, #0x1")]), Var("#4",Imm(64)), -PLUS(Var("R8",Imm(64)),Int(18446744073709551614,64))), -Def(Tid(843, "%0000034b"), Attrs([Attr("address","0x7BC"), -Attr("insn","subs x8, x8, #0x1")]), Var("VF",Imm(1)), -NEQ(SIGNED(65,PLUS(Var("#4",Imm(64)),Int(1,64))),PLUS(SIGNED(65,Var("R8",Imm(64))),Int(36893488147419103231,65)))), -Def(Tid(848, "%00000350"), Attrs([Attr("address","0x7BC"), -Attr("insn","subs x8, x8, #0x1")]), Var("CF",Imm(1)), -NEQ(UNSIGNED(65,PLUS(Var("#4",Imm(64)),Int(1,64))),PLUS(UNSIGNED(65,Var("R8",Imm(64))),Int(18446744073709551615,65)))), -Def(Tid(852, "%00000354"), Attrs([Attr("address","0x7BC"), -Attr("insn","subs x8, x8, #0x1")]), Var("ZF",Imm(1)), -EQ(PLUS(Var("#4",Imm(64)),Int(1,64)),Int(0,64))), Def(Tid(856, "%00000358"), - Attrs([Attr("address","0x7BC"), Attr("insn","subs x8, x8, #0x1")]), - Var("NF",Imm(1)), Extract(63,63,PLUS(Var("#4",Imm(64)),Int(1,64)))), -Def(Tid(860, "%0000035c"), Attrs([Attr("address","0x7BC"), -Attr("insn","subs x8, x8, #0x1")]), Var("R8",Imm(64)), -PLUS(Var("#4",Imm(64)),Int(1,64))), Def(Tid(868, "%00000364"), - Attrs([Attr("address","0x7C0"), Attr("insn","str x8, [x10]")]), - Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("R10",Imm(64)),Var("R8",Imm(64)),LittleEndian(),64)), -Def(Tid(875, "%0000036b"), Attrs([Attr("address","0x7C4"), -Attr("insn","ldr w8, [x9]")]), Var("R8",Imm(64)), -UNSIGNED(64,Load(Var("mem",Mem(64,8)),Var("R9",Imm(64)),LittleEndian(),32))), -Def(Tid(881, "%00000371"), Attrs([Attr("address","0x7C8"), -Attr("insn","add w8, w8, #0x3")]), Var("R8",Imm(64)), -UNSIGNED(64,PLUS(Extract(31,0,Var("R8",Imm(64))),Int(3,32)))), -Def(Tid(889, "%00000379"), Attrs([Attr("address","0x7CC"), -Attr("insn","str w8, [x9, #0x4]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R9",Imm(64)),Int(4,64)),Extract(31,0,Var("R8",Imm(64))),LittleEndian(),32)), -Def(Tid(894, "%0000037e"), Attrs([Attr("address","0x7D0"), -Attr("insn","adrp x9, #65536")]), Var("R9",Imm(64)), Int(65536,64)), -Def(Tid(901, "%00000385"), Attrs([Attr("address","0x7D4"), -Attr("insn","ldr x9, [x9, #0xfd0]")]), Var("R9",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R9",Imm(64)),Int(4048,64)),LittleEndian(),64)), -Def(Tid(908, "%0000038c"), Attrs([Attr("address","0x7D8"), -Attr("insn","ldrb w8, [x9]")]), Var("R8",Imm(64)), -UNSIGNED(64,Load(Var("mem",Mem(64,8)),Var("R9",Imm(64)),LittleEndian(),8))), -Def(Tid(914, "%00000392"), Attrs([Attr("address","0x7DC"), -Attr("insn","add w8, w8, #0x1")]), Var("R8",Imm(64)), -UNSIGNED(64,PLUS(Extract(31,0,Var("R8",Imm(64))),Int(1,32)))), -Def(Tid(922, "%0000039a"), Attrs([Attr("address","0x7E0"), -Attr("insn","strb w8, [x9]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("R9",Imm(64)),Extract(7,0,Var("R8",Imm(64))),LittleEndian(),8)), -Def(Tid(927, "%0000039f"), Attrs([Attr("address","0x7E4"), -Attr("insn","mov w0, wzr")]), Var("R0",Imm(64)), Int(0,64))]), -Jmps([Call(Tid(932, "%000003a4"), Attrs([Attr("address","0x7E8"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))]))])), -Sub(Tid(1_501, "@register_tm_clones"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x700")]), - "register_tm_clones", Args([Arg(Tid(1_549, "%0000060d"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("register_tm_clones_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(616, "@register_tm_clones"), Attrs([Attr("address","0x700")]), - Phis([]), Defs([Def(Tid(619, "%0000026b"), Attrs([Attr("address","0x700"), -Attr("insn","adrp x0, #69632")]), Var("R0",Imm(64)), Int(69632,64)), -Def(Tid(625, "%00000271"), Attrs([Attr("address","0x704"), -Attr("insn","add x0, x0, #0x48")]), Var("R0",Imm(64)), -PLUS(Var("R0",Imm(64)),Int(72,64))), Def(Tid(630, "%00000276"), - Attrs([Attr("address","0x708"), Attr("insn","adrp x1, #69632")]), - Var("R1",Imm(64)), Int(69632,64)), Def(Tid(636, "%0000027c"), - Attrs([Attr("address","0x70C"), Attr("insn","add x1, x1, #0x48")]), - Var("R1",Imm(64)), PLUS(Var("R1",Imm(64)),Int(72,64))), -Def(Tid(643, "%00000283"), Attrs([Attr("address","0x710"), -Attr("insn","sub x1, x1, x0")]), Var("R1",Imm(64)), -PLUS(PLUS(Var("R1",Imm(64)),NOT(Var("R0",Imm(64)))),Int(1,64))), -Def(Tid(649, "%00000289"), Attrs([Attr("address","0x714"), -Attr("insn","lsr x2, x1, #63")]), Var("R2",Imm(64)), -Concat(Int(0,63),Extract(63,63,Var("R1",Imm(64))))), -Def(Tid(656, "%00000290"), Attrs([Attr("address","0x718"), -Attr("insn","add x1, x2, x1, asr #3")]), Var("R1",Imm(64)), -PLUS(Var("R2",Imm(64)),ARSHIFT(Var("R1",Imm(64)),Int(3,3)))), -Def(Tid(662, "%00000296"), Attrs([Attr("address","0x71C"), -Attr("insn","asr x1, x1, #1")]), Var("R1",Imm(64)), -SIGNED(64,Extract(63,1,Var("R1",Imm(64)))))]), -Jmps([Goto(Tid(668, "%0000029c"), Attrs([Attr("address","0x720"), -Attr("insn","cbz x1, #0x18")]), EQ(Var("R1",Imm(64)),Int(0,64)), -Direct(Tid(666, "%0000029a"))), Goto(Tid(1_530, "%000005fa"), Attrs([]), - Int(1,1), Direct(Tid(993, "%000003e1")))])), Blk(Tid(993, "%000003e1"), - Attrs([Attr("address","0x724")]), Phis([]), Defs([Def(Tid(996, "%000003e4"), - Attrs([Attr("address","0x724"), Attr("insn","adrp x2, #65536")]), - Var("R2",Imm(64)), Int(65536,64)), Def(Tid(1_003, "%000003eb"), - Attrs([Attr("address","0x728"), Attr("insn","ldr x2, [x2, #0xfe0]")]), - Var("R2",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R2",Imm(64)),Int(4064,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(1_008, "%000003f0"), Attrs([Attr("address","0x72C"), -Attr("insn","cbz x2, #0xc")]), EQ(Var("R2",Imm(64)),Int(0,64)), -Direct(Tid(666, "%0000029a"))), Goto(Tid(1_531, "%000005fb"), Attrs([]), - Int(1,1), Direct(Tid(1_012, "%000003f4")))])), Blk(Tid(666, "%0000029a"), - Attrs([Attr("address","0x738")]), Phis([]), Defs([]), -Jmps([Call(Tid(674, "%000002a2"), Attrs([Attr("address","0x738"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))])), -Blk(Tid(1_012, "%000003f4"), Attrs([Attr("address","0x730")]), Phis([]), -Defs([Def(Tid(1_016, "%000003f8"), Attrs([Attr("address","0x730"), -Attr("insn","mov x16, x2")]), Var("R16",Imm(64)), Var("R2",Imm(64)))]), -Jmps([Call(Tid(1_021, "%000003fd"), Attrs([Attr("address","0x734"), -Attr("insn","br x16")]), Int(1,1), -(Indirect(Var("R16",Imm(64))),))]))]))]))) \ No newline at end of file diff --git a/src/test/correct/initialisation/clang_pic/initialisation.bir b/src/test/correct/initialisation/clang_pic/initialisation.bir deleted file mode 100644 index bdee5d5be..000000000 --- a/src/test/correct/initialisation/clang_pic/initialisation.bir +++ /dev/null @@ -1,249 +0,0 @@ -000005fc: program -000005ca: sub __cxa_finalize(__cxa_finalize_result) -000005fd: __cxa_finalize_result :: out u32 = low:32[R0] - -000003dd: -000004d5: R16 := 0x11000 -000004dc: R17 := mem[R16 + 8, el]:u64 -000004e2: R16 := R16 + 8 -000004e7: call R17 with noreturn - -000005cb: sub __do_global_dtors_aux(__do_global_dtors_aux_result) -000005fe: __do_global_dtors_aux_result :: out u32 = low:32[R0] - -000002a6: -000002aa: #3 := R31 - 0x20 -000002b0: mem := mem with [#3, el]:u64 <- R29 -000002b6: mem := mem with [#3 + 8, el]:u64 <- R30 -000002ba: R31 := #3 -000002c0: R29 := R31 -000002c8: mem := mem with [R31 + 0x10, el]:u64 <- R19 -000002cd: R19 := 0x11000 -000002d4: R0 := pad:64[mem[R19 + 0x48]] -000002db: when 31:0[R0] <> 0 goto %000002d9 -000005f2: goto %000003a6 - -000003a6: -000003a9: R0 := 0x10000 -000003b0: R0 := mem[R0 + 0xFA8, el]:u64 -000003b6: when R0 = 0 goto %000003b4 -000005f3: goto %000003cd - -000003cd: -000003d0: R0 := 0x11000 -000003d7: R0 := mem[R0 + 0x28, el]:u64 -000003dc: R30 := 0x770 -000003df: call @__cxa_finalize with return %000003b4 - -000003b4: -000003bc: R30 := 0x774 -000003be: call @deregister_tm_clones with return %000003c0 - -000003c0: -000003c3: R0 := 1 -000003cb: mem := mem with [R19 + 0x48] <- 7:0[R0] -000005f4: goto %000002d9 - -000002d9: -000002e3: R19 := mem[R31 + 0x10, el]:u64 -000002ea: R29 := mem[R31, el]:u64 -000002ef: R30 := mem[R31 + 8, el]:u64 -000002f3: R31 := R31 + 0x20 -000002f8: call R30 with noreturn - -000005cf: sub __libc_start_main(__libc_start_main_main, __libc_start_main_arg2, __libc_start_main_arg3, __libc_start_main_auxv, __libc_start_main_result) -000005ff: __libc_start_main_main :: in u64 = R0 -00000600: __libc_start_main_arg2 :: in u32 = low:32[R1] -00000601: __libc_start_main_arg3 :: in out u64 = R2 -00000602: __libc_start_main_auxv :: in out u64 = R3 -00000603: __libc_start_main_result :: out u32 = low:32[R0] - -000001ff: -000004bf: R16 := 0x11000 -000004c6: R17 := mem[R16, el]:u64 -000004cc: R16 := R16 -000004d1: call R17 with noreturn - -000005d0: sub _fini(_fini_result) -00000604: _fini_result :: out u32 = low:32[R0] - -0000001f: -00000025: #0 := R31 - 0x10 -0000002b: mem := mem with [#0, el]:u64 <- R29 -00000031: mem := mem with [#0 + 8, el]:u64 <- R30 -00000035: R31 := #0 -0000003b: R29 := R31 -00000042: R29 := mem[R31, el]:u64 -00000047: R30 := mem[R31 + 8, el]:u64 -0000004b: R31 := R31 + 0x10 -00000050: call R30 with noreturn - -000005d1: sub _init(_init_result) -00000605: _init_result :: out u32 = low:32[R0] - -0000052f: -00000535: #6 := R31 - 0x10 -0000053b: mem := mem with [#6, el]:u64 <- R29 -00000541: mem := mem with [#6 + 8, el]:u64 <- R30 -00000545: R31 := #6 -0000054b: R29 := R31 -00000550: R30 := 0x5F0 -00000552: call @call_weak_fn with return %00000554 - -00000554: -00000559: R29 := mem[R31, el]:u64 -0000055e: R30 := mem[R31 + 8, el]:u64 -00000562: R31 := R31 + 0x10 -00000567: call R30 with noreturn - -000005d2: sub _start(_start_result) -00000606: _start_result :: out u32 = low:32[R0] - -000001c0: -000001c5: R29 := 0 -000001ca: R30 := 0 -000001d0: R5 := R0 -000001d7: R1 := mem[R31, el]:u64 -000001dd: R2 := R31 + 8 -000001e3: R6 := R31 -000001e8: R0 := 0x10000 -000001ef: R0 := mem[R0 + 0xFD8, el]:u64 -000001f4: R3 := 0 -000001f9: R4 := 0 -000001fe: R30 := 0x6B0 -00000201: call @__libc_start_main with return %00000203 - -00000203: -00000206: R30 := 0x6B4 -00000209: call @abort with return %000005f5 - -000005f5: -000005f6: call @call_weak_fn with noreturn - -000005d5: sub abort() - - -00000207: -00000501: R16 := 0x11000 -00000508: R17 := mem[R16 + 0x18, el]:u64 -0000050e: R16 := R16 + 0x18 -00000513: call R17 with noreturn - -000005d6: sub call_weak_fn(call_weak_fn_result) -00000607: call_weak_fn_result :: out u32 = low:32[R0] - -0000020b: -0000020e: R0 := 0x10000 -00000215: R0 := mem[R0 + 0xFC0, el]:u64 -0000021b: when R0 = 0 goto %00000219 -000005f7: goto %0000041d - -00000219: -00000221: call R30 with noreturn - -0000041d: -00000420: goto @__gmon_start__ - -0000041e: -000004eb: R16 := 0x11000 -000004f2: R17 := mem[R16 + 0x10, el]:u64 -000004f8: R16 := R16 + 0x10 -000004fd: call R17 with noreturn - -000005d8: sub deregister_tm_clones(deregister_tm_clones_result) -00000608: deregister_tm_clones_result :: out u32 = low:32[R0] - -00000227: -0000022a: R0 := 0x11000 -00000230: R0 := R0 + 0x48 -00000235: R1 := 0x11000 -0000023b: R1 := R1 + 0x48 -00000241: #1 := ~R0 -00000246: #2 := R1 + ~R0 -0000024c: VF := extend:65[#2 + 1] <> extend:65[R1] + extend:65[#1] + 1 -00000252: CF := pad:65[#2 + 1] <> pad:65[R1] + pad:65[#1] + 1 -00000256: ZF := #2 + 1 = 0 -0000025a: NF := 63:63[#2 + 1] -00000260: when ZF goto %0000025e -000005f8: goto %000003ff - -000003ff: -00000402: R1 := 0x10000 -00000409: R1 := mem[R1 + 0xFA0, el]:u64 -0000040e: when R1 = 0 goto %0000025e -000005f9: goto %00000412 - -0000025e: -00000266: call R30 with noreturn - -00000412: -00000416: R16 := R1 -0000041b: call R16 with noreturn - -000005db: sub frame_dummy(frame_dummy_result) -00000609: frame_dummy_result :: out u32 = low:32[R0] - -000002fe: -00000300: call @register_tm_clones with noreturn - -000005dc: sub main(main_argc, main_argv, main_result) -0000060a: main_argc :: in u32 = low:32[R0] -0000060b: main_argv :: in out u64 = R1 -0000060c: main_result :: out u32 = low:32[R0] - -00000302: -00000305: R9 := 0x10000 -0000030c: R9 := mem[R9 + 0xFC8, el]:u64 -00000311: R10 := 0x10000 -00000318: R10 := mem[R10 + 0xFB8, el]:u64 -0000031f: R8 := pad:64[mem[R10, el]:u32] -00000325: R8 := pad:64[31:0[R8] + 1] -0000032d: mem := mem with [R10, el]:u32 <- 31:0[R8] -00000332: R10 := 0x10000 -00000339: R10 := mem[R10 + 0xFB0, el]:u64 -00000340: R8 := mem[R10, el]:u64 -00000346: #4 := R8 - 2 -0000034b: VF := extend:65[#4 + 1] <> extend:65[R8] - 1 -00000350: CF := pad:65[#4 + 1] <> pad:65[R8] + 0xFFFFFFFFFFFFFFFF -00000354: ZF := #4 + 1 = 0 -00000358: NF := 63:63[#4 + 1] -0000035c: R8 := #4 + 1 -00000364: mem := mem with [R10, el]:u64 <- R8 -0000036b: R8 := pad:64[mem[R9, el]:u32] -00000371: R8 := pad:64[31:0[R8] + 3] -00000379: mem := mem with [R9 + 4, el]:u32 <- 31:0[R8] -0000037e: R9 := 0x10000 -00000385: R9 := mem[R9 + 0xFD0, el]:u64 -0000038c: R8 := pad:64[mem[R9]] -00000392: R8 := pad:64[31:0[R8] + 1] -0000039a: mem := mem with [R9] <- 7:0[R8] -0000039f: R0 := 0 -000003a4: call R30 with noreturn - -000005dd: sub register_tm_clones(register_tm_clones_result) -0000060d: register_tm_clones_result :: out u32 = low:32[R0] - -00000268: -0000026b: R0 := 0x11000 -00000271: R0 := R0 + 0x48 -00000276: R1 := 0x11000 -0000027c: R1 := R1 + 0x48 -00000283: R1 := R1 + ~R0 + 1 -00000289: R2 := 0.63:63[R1] -00000290: R1 := R2 + (R1 ~>> 3) -00000296: R1 := extend:64[63:1[R1]] -0000029c: when R1 = 0 goto %0000029a -000005fa: goto %000003e1 - -000003e1: -000003e4: R2 := 0x10000 -000003eb: R2 := mem[R2 + 0xFE0, el]:u64 -000003f0: when R2 = 0 goto %0000029a -000005fb: goto %000003f4 - -0000029a: -000002a2: call R30 with noreturn - -000003f4: -000003f8: R16 := R2 -000003fd: call R16 with noreturn diff --git a/src/test/correct/initialisation/clang_pic/initialisation.expected b/src/test/correct/initialisation/clang_pic/initialisation.expected index 0f7cb1364..0f268eebf 100644 --- a/src/test/correct/initialisation/clang_pic/initialisation.expected +++ b/src/test/correct/initialisation/clang_pic/initialisation.expected @@ -1,39 +1,35 @@ -var {:extern} CF: bv1; -var {:extern} Gamma_CF: bool; -var {:extern} Gamma_NF: bool; var {:extern} Gamma_R0: bool; var {:extern} Gamma_R10: bool; +var {:extern} Gamma_R11: bool; +var {:extern} Gamma_R12: bool; +var {:extern} Gamma_R13: bool; +var {:extern} Gamma_R14: bool; var {:extern} Gamma_R8: bool; var {:extern} Gamma_R9: bool; -var {:extern} Gamma_VF: bool; -var {:extern} Gamma_ZF: bool; var {:extern} Gamma_mem: [bv64]bool; -var {:extern} NF: bv1; var {:extern} R0: bv64; var {:extern} R10: bv64; +var {:extern} R11: bv64; +var {:extern} R12: bv64; +var {:extern} R13: bv64; +var {:extern} R14: bv64; var {:extern} R8: bv64; var {:extern} R9: bv64; -var {:extern} VF: bv1; -var {:extern} ZF: bv1; var {:extern} mem: [bv64]bv8; const {:extern} $a_addr: bv64; -axiom ($a_addr == 69696bv64); +axiom ($a_addr == 131104bv64); const {:extern} $x_addr: bv64; -axiom ($x_addr == 69680bv64); +axiom ($x_addr == 131088bv64); const {:extern} $y_addr: bv64; -axiom ($y_addr == 69684bv64); +axiom ($y_addr == 131092bv64); const {:extern} $z_addr: bv64; -axiom ($z_addr == 69688bv64); +axiom ($z_addr == 131096bv64); function {:extern} L(mem$in: [bv64]bv8, index: bv64) returns (bool) { false } function {:extern} {:bvbuiltin "bvadd"} bvadd32(bv32, bv32) returns (bv32); function {:extern} {:bvbuiltin "bvadd"} bvadd64(bv64, bv64) returns (bv64); -function {:extern} {:bvbuiltin "bvadd"} bvadd65(bv65, bv65) returns (bv65); -function {:extern} {:bvbuiltin "bvcomp"} bvcomp64(bv64, bv64) returns (bv1); -function {:extern} {:bvbuiltin "bvcomp"} bvcomp65(bv65, bv65) returns (bv1); -function {:extern} {:bvbuiltin "bvnot"} bvnot1(bv1) returns (bv1); function {:extern} gamma_load32(gammaMap: [bv64]bool, index: bv64) returns (bool) { (gammaMap[bvadd64(index, 3bv64)] && (gammaMap[bvadd64(index, 2bv64)] && (gammaMap[bvadd64(index, 1bv64)] && gammaMap[index]))) } @@ -82,23 +78,21 @@ function {:extern} memory_store8_le(memory: [bv64]bv8, index: bv64, value: bv8) memory[index := value[8:0]] } -function {:extern} {:bvbuiltin "sign_extend 1"} sign_extend1_64(bv64) returns (bv65); -function {:extern} {:bvbuiltin "zero_extend 1"} zero_extend1_64(bv64) returns (bv65); function {:extern} {:bvbuiltin "zero_extend 32"} zero_extend32_32(bv32) returns (bv64); function {:extern} {:bvbuiltin "zero_extend 56"} zero_extend56_8(bv8) returns (bv64); procedure {:extern} rely(); modifies Gamma_mem, mem; ensures (Gamma_mem == old(Gamma_mem)); ensures (mem == old(mem)); - free ensures (memory_load32_le(mem, 2048bv64) == 131073bv32); - free ensures (memory_load64_le(mem, 69032bv64) == 1936bv64); - free ensures (memory_load64_le(mem, 69040bv64) == 1856bv64); - free ensures (memory_load64_le(mem, 69552bv64) == 69688bv64); - free ensures (memory_load64_le(mem, 69560bv64) == 69680bv64); - free ensures (memory_load64_le(mem, 69576bv64) == 69696bv64); - free ensures (memory_load64_le(mem, 69584bv64) == 69684bv64); - free ensures (memory_load64_le(mem, 69592bv64) == 1940bv64); - free ensures (memory_load64_le(mem, 69672bv64) == 69672bv64); + free ensures (memory_load32_le(mem, 2432bv64) == 131073bv32); + free ensures (memory_load64_le(mem, 130408bv64) == 2320bv64); + free ensures (memory_load64_le(mem, 130416bv64) == 2240bv64); + free ensures (memory_load64_le(mem, 131016bv64) == 131096bv64); + free ensures (memory_load64_le(mem, 131024bv64) == 131088bv64); + free ensures (memory_load64_le(mem, 131040bv64) == 131104bv64); + free ensures (memory_load64_le(mem, 131048bv64) == 131092bv64); + free ensures (memory_load64_le(mem, 131056bv64) == 2324bv64); + free ensures (memory_load64_le(mem, 131080bv64) == 131080bv64); procedure {:extern} rely_transitive(); modifies Gamma_mem, mem; @@ -116,114 +110,107 @@ procedure {:extern} rely_reflexive(); procedure {:extern} guarantee_reflexive(); modifies Gamma_mem, mem; -procedure main_1940(); - modifies CF, Gamma_CF, Gamma_NF, Gamma_R0, Gamma_R10, Gamma_R8, Gamma_R9, Gamma_VF, Gamma_ZF, Gamma_mem, NF, R0, R10, R8, R9, VF, ZF, mem; - free requires (memory_load64_le(mem, 69664bv64) == 0bv64); - free requires (memory_load64_le(mem, 69672bv64) == 69672bv64); - free requires (memory_load64_le(mem, 69680bv64) == 416611827717bv64); - free requires (memory_load64_le(mem, 69688bv64) == 68719476735bv64); - free requires (memory_load64_le(mem, 69696bv64) == 8589934593bv64); - free requires (memory_load32_le(mem, 2048bv64) == 131073bv32); - free requires (memory_load64_le(mem, 69032bv64) == 1936bv64); - free requires (memory_load64_le(mem, 69040bv64) == 1856bv64); - free requires (memory_load64_le(mem, 69552bv64) == 69688bv64); - free requires (memory_load64_le(mem, 69560bv64) == 69680bv64); - free requires (memory_load64_le(mem, 69576bv64) == 69696bv64); - free requires (memory_load64_le(mem, 69584bv64) == 69684bv64); - free requires (memory_load64_le(mem, 69592bv64) == 1940bv64); - free requires (memory_load64_le(mem, 69672bv64) == 69672bv64); +procedure main(); + modifies Gamma_R0, Gamma_R10, Gamma_R11, Gamma_R12, Gamma_R13, Gamma_R14, Gamma_R8, Gamma_R9, Gamma_mem, R0, R10, R11, R12, R13, R14, R8, R9, mem; + free requires (memory_load64_le(mem, 131072bv64) == 0bv64); + free requires (memory_load64_le(mem, 131080bv64) == 131080bv64); + free requires (memory_load64_le(mem, 131088bv64) == 416611827717bv64); + free requires (memory_load64_le(mem, 131096bv64) == 68719476735bv64); + free requires (memory_load64_le(mem, 131104bv64) == 8589934593bv64); + free requires (memory_load32_le(mem, 2432bv64) == 131073bv32); + free requires (memory_load64_le(mem, 130408bv64) == 2320bv64); + free requires (memory_load64_le(mem, 130416bv64) == 2240bv64); + free requires (memory_load64_le(mem, 131016bv64) == 131096bv64); + free requires (memory_load64_le(mem, 131024bv64) == 131088bv64); + free requires (memory_load64_le(mem, 131040bv64) == 131104bv64); + free requires (memory_load64_le(mem, 131048bv64) == 131092bv64); + free requires (memory_load64_le(mem, 131056bv64) == 2324bv64); + free requires (memory_load64_le(mem, 131080bv64) == 131080bv64); ensures (memory_load32_le(mem, $x_addr) == 6bv32); ensures (memory_load32_le(mem, bvadd64($a_addr, 4bv64)) == 4bv32); ensures (memory_load32_le(mem, bvadd64($a_addr, 0bv64)) == 1bv32); - free ensures (memory_load32_le(mem, 2048bv64) == 131073bv32); - free ensures (memory_load64_le(mem, 69032bv64) == 1936bv64); - free ensures (memory_load64_le(mem, 69040bv64) == 1856bv64); - free ensures (memory_load64_le(mem, 69552bv64) == 69688bv64); - free ensures (memory_load64_le(mem, 69560bv64) == 69680bv64); - free ensures (memory_load64_le(mem, 69576bv64) == 69696bv64); - free ensures (memory_load64_le(mem, 69584bv64) == 69684bv64); - free ensures (memory_load64_le(mem, 69592bv64) == 1940bv64); - free ensures (memory_load64_le(mem, 69672bv64) == 69672bv64); - -implementation main_1940() + free ensures (memory_load32_le(mem, 2432bv64) == 131073bv32); + free ensures (memory_load64_le(mem, 130408bv64) == 2320bv64); + free ensures (memory_load64_le(mem, 130416bv64) == 2240bv64); + free ensures (memory_load64_le(mem, 131016bv64) == 131096bv64); + free ensures (memory_load64_le(mem, 131024bv64) == 131088bv64); + free ensures (memory_load64_le(mem, 131040bv64) == 131104bv64); + free ensures (memory_load64_le(mem, 131048bv64) == 131092bv64); + free ensures (memory_load64_le(mem, 131056bv64) == 2324bv64); + free ensures (memory_load64_le(mem, 131080bv64) == 131080bv64); + +implementation main() { - var #4: bv64; - var Gamma_#4: bool; - var Gamma_load18: bool; - var Gamma_load19: bool; - var Gamma_load20: bool; - var Gamma_load21: bool; - var Gamma_load22: bool; - var Gamma_load23: bool; - var Gamma_load24: bool; - var Gamma_load25: bool; - var load18: bv64; - var load19: bv64; - var load20: bv32; - var load21: bv64; - var load22: bv64; - var load23: bv32; - var load24: bv64; - var load25: bv8; + var $load$18: bv64; + var $load$19: bv64; + var $load$20: bv64; + var $load$21: bv32; + var $load$22: bv64; + var $load$23: bv64; + var $load$24: bv32; + var $load$25: bv8; + var Gamma_$load$18: bool; + var Gamma_$load$19: bool; + var Gamma_$load$20: bool; + var Gamma_$load$21: bool; + var Gamma_$load$22: bool; + var Gamma_$load$23: bool; + var Gamma_$load$24: bool; + var Gamma_$load$25: bool; lmain: assume {:captureState "lmain"} true; - R9, Gamma_R9 := 65536bv64, true; + R8, Gamma_R8 := 126976bv64, true; + R9, Gamma_R9 := 126976bv64, true; + R10, Gamma_R10 := 126976bv64, true; call rely(); - load18, Gamma_load18 := memory_load64_le(mem, bvadd64(R9, 4040bv64)), (gamma_load64(Gamma_mem, bvadd64(R9, 4040bv64)) || L(mem, bvadd64(R9, 4040bv64))); - R9, Gamma_R9 := load18, Gamma_load18; - R10, Gamma_R10 := 65536bv64, true; + $load$18, Gamma_$load$18 := memory_load64_le(mem, bvadd64(R8, 4048bv64)), (gamma_load64(Gamma_mem, bvadd64(R8, 4048bv64)) || L(mem, bvadd64(R8, 4048bv64))); + R8, Gamma_R8 := $load$18, Gamma_$load$18; call rely(); - load19, Gamma_load19 := memory_load64_le(mem, bvadd64(R10, 4024bv64)), (gamma_load64(Gamma_mem, bvadd64(R10, 4024bv64)) || L(mem, bvadd64(R10, 4024bv64))); - R10, Gamma_R10 := load19, Gamma_load19; + $load$19, Gamma_$load$19 := memory_load64_le(mem, bvadd64(R9, 4040bv64)), (gamma_load64(Gamma_mem, bvadd64(R9, 4040bv64)) || L(mem, bvadd64(R9, 4040bv64))); + R9, Gamma_R9 := $load$19, Gamma_$load$19; call rely(); - load20, Gamma_load20 := memory_load32_le(mem, R10), (gamma_load32(Gamma_mem, R10) || L(mem, R10)); - R8, Gamma_R8 := zero_extend32_32(load20), Gamma_load20; - R8, Gamma_R8 := zero_extend32_32(bvadd32(R8[32:0], 1bv32)), Gamma_R8; - call rely(); - assert (L(mem, R10) ==> Gamma_R8); - mem, Gamma_mem := memory_store32_le(mem, R10, R8[32:0]), gamma_store32(Gamma_mem, R10, Gamma_R8); - assume {:captureState "%0000032d"} true; - R10, Gamma_R10 := 65536bv64, true; + $load$20, Gamma_$load$20 := memory_load64_le(mem, bvadd64(R10, 4064bv64)), (gamma_load64(Gamma_mem, bvadd64(R10, 4064bv64)) || L(mem, bvadd64(R10, 4064bv64))); + R10, Gamma_R10 := $load$20, Gamma_$load$20; + R12, Gamma_R12 := 126976bv64, true; + R0, Gamma_R0 := 0bv64, true; call rely(); - load21, Gamma_load21 := memory_load64_le(mem, bvadd64(R10, 4016bv64)), (gamma_load64(Gamma_mem, bvadd64(R10, 4016bv64)) || L(mem, bvadd64(R10, 4016bv64))); - R10, Gamma_R10 := load21, Gamma_load21; + $load$21, Gamma_$load$21 := memory_load32_le(mem, R8), (gamma_load32(Gamma_mem, R8) || L(mem, R8)); + R11, Gamma_R11 := zero_extend32_32($load$21), Gamma_$load$21; call rely(); - load22, Gamma_load22 := memory_load64_le(mem, R10), (gamma_load64(Gamma_mem, R10) || L(mem, R10)); - R8, Gamma_R8 := load22, Gamma_load22; - #4, Gamma_#4 := bvadd64(R8, 18446744073709551614bv64), Gamma_R8; - VF, Gamma_VF := bvnot1(bvcomp65(sign_extend1_64(bvadd64(#4, 1bv64)), bvadd65(sign_extend1_64(R8), 36893488147419103231bv65))), (Gamma_R8 && Gamma_#4); - CF, Gamma_CF := bvnot1(bvcomp65(zero_extend1_64(bvadd64(#4, 1bv64)), bvadd65(zero_extend1_64(R8), 18446744073709551615bv65))), (Gamma_R8 && Gamma_#4); - ZF, Gamma_ZF := bvcomp64(bvadd64(#4, 1bv64), 0bv64), Gamma_#4; - NF, Gamma_NF := bvadd64(#4, 1bv64)[64:63], Gamma_#4; - R8, Gamma_R8 := bvadd64(#4, 1bv64), Gamma_#4; + $load$22, Gamma_$load$22 := memory_load64_le(mem, bvadd64(R12, 4072bv64)), (gamma_load64(Gamma_mem, bvadd64(R12, 4072bv64)) || L(mem, bvadd64(R12, 4072bv64))); + R12, Gamma_R12 := $load$22, Gamma_$load$22; call rely(); - assert (L(mem, R10) ==> Gamma_R8); - mem, Gamma_mem := memory_store64_le(mem, R10, R8), gamma_store64(Gamma_mem, R10, Gamma_R8); - assume {:captureState "%00000364"} true; + $load$23, Gamma_$load$23 := memory_load64_le(mem, R9), (gamma_load64(Gamma_mem, R9) || L(mem, R9)); + R13, Gamma_R13 := $load$23, Gamma_$load$23; call rely(); - load23, Gamma_load23 := memory_load32_le(mem, R9), (gamma_load32(Gamma_mem, R9) || L(mem, R9)); - R8, Gamma_R8 := zero_extend32_32(load23), Gamma_load23; - R8, Gamma_R8 := zero_extend32_32(bvadd32(R8[32:0], 3bv32)), Gamma_R8; + $load$24, Gamma_$load$24 := memory_load32_le(mem, R10), (gamma_load32(Gamma_mem, R10) || L(mem, R10)); + R14, Gamma_R14 := zero_extend32_32($load$24), Gamma_$load$24; + R11, Gamma_R11 := zero_extend32_32(bvadd32(R11[32:0], 1bv32)), Gamma_R11; call rely(); - assert (L(mem, bvadd64(R9, 4bv64)) ==> Gamma_R8); - mem, Gamma_mem := memory_store32_le(mem, bvadd64(R9, 4bv64), R8[32:0]), gamma_store32(Gamma_mem, bvadd64(R9, 4bv64), Gamma_R8); - assume {:captureState "%00000379"} true; - R9, Gamma_R9 := 65536bv64, true; + assert (L(mem, R8) ==> Gamma_R11); + mem, Gamma_mem := memory_store32_le(mem, R8, R11[32:0]), gamma_store32(Gamma_mem, R8, Gamma_R11); + assume {:captureState "%000002b0"} true; call rely(); - load24, Gamma_load24 := memory_load64_le(mem, bvadd64(R9, 4048bv64)), (gamma_load64(Gamma_mem, bvadd64(R9, 4048bv64)) || L(mem, bvadd64(R9, 4048bv64))); - R9, Gamma_R9 := load24, Gamma_load24; + $load$25, Gamma_$load$25 := memory_load8_le(mem, R12), (gamma_load8(Gamma_mem, R12) || L(mem, R12)); + R8, Gamma_R8 := zero_extend56_8($load$25), Gamma_$load$25; + R11, Gamma_R11 := bvadd64(R13, 18446744073709551615bv64), Gamma_R13; call rely(); - load25, Gamma_load25 := memory_load8_le(mem, R9), (gamma_load8(Gamma_mem, R9) || L(mem, R9)); - R8, Gamma_R8 := zero_extend56_8(load25), Gamma_load25; + assert (L(mem, R9) ==> Gamma_R11); + mem, Gamma_mem := memory_store64_le(mem, R9, R11), gamma_store64(Gamma_mem, R9, Gamma_R11); + assume {:captureState "%000002bc"} true; + R9, Gamma_R9 := zero_extend32_32(bvadd32(R14[32:0], 3bv32)), Gamma_R14; R8, Gamma_R8 := zero_extend32_32(bvadd32(R8[32:0], 1bv32)), Gamma_R8; call rely(); - assert (L(mem, R9) ==> Gamma_R8); - mem, Gamma_mem := memory_store8_le(mem, R9, R8[8:0]), gamma_store8(Gamma_mem, R9, Gamma_R8); - assume {:captureState "%0000039a"} true; - R0, Gamma_R0 := 0bv64, true; - goto main_1940_basil_return; - main_1940_basil_return: - assume {:captureState "main_1940_basil_return"} true; + assert (L(mem, bvadd64(R10, 4bv64)) ==> Gamma_R9); + mem, Gamma_mem := memory_store32_le(mem, bvadd64(R10, 4bv64), R9[32:0]), gamma_store32(Gamma_mem, bvadd64(R10, 4bv64), Gamma_R9); + assume {:captureState "%000002c8"} true; + call rely(); + assert (L(mem, R12) ==> Gamma_R8); + mem, Gamma_mem := memory_store8_le(mem, R12, R8[8:0]), gamma_store8(Gamma_mem, R12, Gamma_R8); + assume {:captureState "%000002cc"} true; + goto main_basil_return; + main_basil_return: + assume {:captureState "main_basil_return"} true; return; } diff --git a/src/test/correct/initialisation/clang_pic/initialisation.gts b/src/test/correct/initialisation/clang_pic/initialisation.gts deleted file mode 100644 index c5a8cf359..000000000 Binary files a/src/test/correct/initialisation/clang_pic/initialisation.gts and /dev/null differ diff --git a/src/test/correct/initialisation/clang_pic/initialisation.md5sum b/src/test/correct/initialisation/clang_pic/initialisation.md5sum new file mode 100644 index 000000000..6de13036c --- /dev/null +++ b/src/test/correct/initialisation/clang_pic/initialisation.md5sum @@ -0,0 +1,5 @@ +09d909ac45232c33266fc8e5daac2d15 correct/initialisation/clang_pic/a.out +efe515db54deca206846ada0a4ea23a9 correct/initialisation/clang_pic/initialisation.adt +8df4980802ac713588d0fd87a2f53873 correct/initialisation/clang_pic/initialisation.bir +3499c716ed2a54f380494db77e228e59 correct/initialisation/clang_pic/initialisation.relf +2a4e3d3e5e8fddda31a39eb929889884 correct/initialisation/clang_pic/initialisation.gts diff --git a/src/test/correct/initialisation/clang_pic/initialisation.relf b/src/test/correct/initialisation/clang_pic/initialisation.relf deleted file mode 100644 index 43ccf4450..000000000 --- a/src/test/correct/initialisation/clang_pic/initialisation.relf +++ /dev/null @@ -1,130 +0,0 @@ - -Relocation section '.rela.dyn' at offset 0x460 contains 12 entries: - Offset Info Type Symbol's Value Symbol's Name + Addend -0000000000010da8 0000000000000403 R_AARCH64_RELATIVE 790 -0000000000010db0 0000000000000403 R_AARCH64_RELATIVE 740 -0000000000010fb0 0000000000000403 R_AARCH64_RELATIVE 11038 -0000000000010fb8 0000000000000403 R_AARCH64_RELATIVE 11030 -0000000000010fc8 0000000000000403 R_AARCH64_RELATIVE 11040 -0000000000010fd0 0000000000000403 R_AARCH64_RELATIVE 11034 -0000000000010fd8 0000000000000403 R_AARCH64_RELATIVE 794 -0000000000011028 0000000000000403 R_AARCH64_RELATIVE 11028 -0000000000010fa0 0000000400000401 R_AARCH64_GLOB_DAT 0000000000000000 _ITM_deregisterTMCloneTable + 0 -0000000000010fa8 0000000500000401 R_AARCH64_GLOB_DAT 0000000000000000 __cxa_finalize@GLIBC_2.17 + 0 -0000000000010fc0 0000000600000401 R_AARCH64_GLOB_DAT 0000000000000000 __gmon_start__ + 0 -0000000000010fe0 0000000800000401 R_AARCH64_GLOB_DAT 0000000000000000 _ITM_registerTMCloneTable + 0 - -Relocation section '.rela.plt' at offset 0x580 contains 4 entries: - Offset Info Type Symbol's Value Symbol's Name + Addend -0000000000011000 0000000300000402 R_AARCH64_JUMP_SLOT 0000000000000000 __libc_start_main@GLIBC_2.34 + 0 -0000000000011008 0000000500000402 R_AARCH64_JUMP_SLOT 0000000000000000 __cxa_finalize@GLIBC_2.17 + 0 -0000000000011010 0000000600000402 R_AARCH64_JUMP_SLOT 0000000000000000 __gmon_start__ + 0 -0000000000011018 0000000700000402 R_AARCH64_JUMP_SLOT 0000000000000000 abort@GLIBC_2.17 + 0 - -Symbol table '.dynsym' contains 9 entries: - Num: Value Size Type Bind Vis Ndx Name - 0: 0000000000000000 0 NOTYPE LOCAL DEFAULT UND - 1: 00000000000005e0 0 SECTION LOCAL DEFAULT 11 .init - 2: 0000000000011020 0 SECTION LOCAL DEFAULT 23 .data - 3: 0000000000000000 0 FUNC GLOBAL DEFAULT UND __libc_start_main@GLIBC_2.34 (2) - 4: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_deregisterTMCloneTable - 5: 0000000000000000 0 FUNC WEAK DEFAULT UND __cxa_finalize@GLIBC_2.17 (3) - 6: 0000000000000000 0 NOTYPE WEAK DEFAULT UND __gmon_start__ - 7: 0000000000000000 0 FUNC GLOBAL DEFAULT UND abort@GLIBC_2.17 (3) - 8: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_registerTMCloneTable - -Symbol table '.symtab' contains 93 entries: - Num: Value Size Type Bind Vis Ndx Name - 0: 0000000000000000 0 NOTYPE LOCAL DEFAULT UND - 1: 0000000000000238 0 SECTION LOCAL DEFAULT 1 .interp - 2: 0000000000000254 0 SECTION LOCAL DEFAULT 2 .note.gnu.build-id - 3: 0000000000000278 0 SECTION LOCAL DEFAULT 3 .note.ABI-tag - 4: 0000000000000298 0 SECTION LOCAL DEFAULT 4 .gnu.hash - 5: 00000000000002b8 0 SECTION LOCAL DEFAULT 5 .dynsym - 6: 0000000000000390 0 SECTION LOCAL DEFAULT 6 .dynstr - 7: 000000000000041e 0 SECTION LOCAL DEFAULT 7 .gnu.version - 8: 0000000000000430 0 SECTION LOCAL DEFAULT 8 .gnu.version_r - 9: 0000000000000460 0 SECTION LOCAL DEFAULT 9 .rela.dyn - 10: 0000000000000580 0 SECTION LOCAL DEFAULT 10 .rela.plt - 11: 00000000000005e0 0 SECTION LOCAL DEFAULT 11 .init - 12: 0000000000000600 0 SECTION LOCAL DEFAULT 12 .plt - 13: 0000000000000680 0 SECTION LOCAL DEFAULT 13 .text - 14: 00000000000007ec 0 SECTION LOCAL DEFAULT 14 .fini - 15: 0000000000000800 0 SECTION LOCAL DEFAULT 15 .rodata - 16: 0000000000000804 0 SECTION LOCAL DEFAULT 16 .eh_frame_hdr - 17: 0000000000000840 0 SECTION LOCAL DEFAULT 17 .eh_frame - 18: 0000000000010da8 0 SECTION LOCAL DEFAULT 18 .init_array - 19: 0000000000010db0 0 SECTION LOCAL DEFAULT 19 .fini_array - 20: 0000000000010db8 0 SECTION LOCAL DEFAULT 20 .dynamic - 21: 0000000000010f98 0 SECTION LOCAL DEFAULT 21 .got - 22: 0000000000010fe8 0 SECTION LOCAL DEFAULT 22 .got.plt - 23: 0000000000011020 0 SECTION LOCAL DEFAULT 23 .data - 24: 0000000000011048 0 SECTION LOCAL DEFAULT 24 .bss - 25: 0000000000000000 0 SECTION LOCAL DEFAULT 25 .comment - 26: 0000000000000000 0 FILE LOCAL DEFAULT ABS Scrt1.o - 27: 0000000000000278 0 NOTYPE LOCAL DEFAULT 3 $d - 28: 0000000000000278 32 OBJECT LOCAL DEFAULT 3 __abi_tag - 29: 0000000000000680 0 NOTYPE LOCAL DEFAULT 13 $x - 30: 0000000000000854 0 NOTYPE LOCAL DEFAULT 17 $d - 31: 0000000000000800 0 NOTYPE LOCAL DEFAULT 15 $d - 32: 0000000000000000 0 FILE LOCAL DEFAULT ABS crti.o - 33: 00000000000006b4 0 NOTYPE LOCAL DEFAULT 13 $x - 34: 00000000000006b4 20 FUNC LOCAL DEFAULT 13 call_weak_fn - 35: 00000000000005e0 0 NOTYPE LOCAL DEFAULT 11 $x - 36: 00000000000007ec 0 NOTYPE LOCAL DEFAULT 14 $x - 37: 0000000000000000 0 FILE LOCAL DEFAULT ABS crtn.o - 38: 00000000000005f0 0 NOTYPE LOCAL DEFAULT 11 $x - 39: 00000000000007f8 0 NOTYPE LOCAL DEFAULT 14 $x - 40: 0000000000000000 0 FILE LOCAL DEFAULT ABS crtstuff.c - 41: 00000000000006d0 0 NOTYPE LOCAL DEFAULT 13 $x - 42: 00000000000006d0 0 FUNC LOCAL DEFAULT 13 deregister_tm_clones - 43: 0000000000000700 0 FUNC LOCAL DEFAULT 13 register_tm_clones - 44: 0000000000011028 0 NOTYPE LOCAL DEFAULT 23 $d - 45: 0000000000000740 0 FUNC LOCAL DEFAULT 13 __do_global_dtors_aux - 46: 0000000000011048 1 OBJECT LOCAL DEFAULT 24 completed.0 - 47: 0000000000010db0 0 NOTYPE LOCAL DEFAULT 19 $d - 48: 0000000000010db0 0 OBJECT LOCAL DEFAULT 19 __do_global_dtors_aux_fini_array_entry - 49: 0000000000000790 0 FUNC LOCAL DEFAULT 13 frame_dummy - 50: 0000000000010da8 0 NOTYPE LOCAL DEFAULT 18 $d - 51: 0000000000010da8 0 OBJECT LOCAL DEFAULT 18 __frame_dummy_init_array_entry - 52: 0000000000000868 0 NOTYPE LOCAL DEFAULT 17 $d - 53: 0000000000011048 0 NOTYPE LOCAL DEFAULT 24 $d - 54: 0000000000000000 0 FILE LOCAL DEFAULT ABS initialisation.c - 55: 0000000000000794 0 NOTYPE LOCAL DEFAULT 13 $x.0 - 56: 0000000000011030 0 NOTYPE LOCAL DEFAULT 23 $d.1 - 57: 000000000000002a 0 NOTYPE LOCAL DEFAULT 25 $d.2 - 58: 00000000000008c8 0 NOTYPE LOCAL DEFAULT 17 $d.3 - 59: 0000000000000000 0 FILE LOCAL DEFAULT ABS crtstuff.c - 60: 00000000000008f0 0 NOTYPE LOCAL DEFAULT 17 $d - 61: 00000000000008f0 0 OBJECT LOCAL DEFAULT 17 __FRAME_END__ - 62: 0000000000000000 0 FILE LOCAL DEFAULT ABS - 63: 0000000000010db8 0 OBJECT LOCAL DEFAULT ABS _DYNAMIC - 64: 0000000000000804 0 NOTYPE LOCAL DEFAULT 16 __GNU_EH_FRAME_HDR - 65: 0000000000010f98 0 OBJECT LOCAL DEFAULT ABS _GLOBAL_OFFSET_TABLE_ - 66: 0000000000000600 0 NOTYPE LOCAL DEFAULT 12 $x - 67: 0000000000000000 0 FUNC GLOBAL DEFAULT UND __libc_start_main@GLIBC_2.34 - 68: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_deregisterTMCloneTable - 69: 0000000000011020 0 NOTYPE WEAK DEFAULT 23 data_start - 70: 0000000000011048 0 NOTYPE GLOBAL DEFAULT 24 __bss_start__ - 71: 0000000000000000 0 FUNC WEAK DEFAULT UND __cxa_finalize@GLIBC_2.17 - 72: 0000000000011050 0 NOTYPE GLOBAL DEFAULT 24 _bss_end__ - 73: 0000000000011048 0 NOTYPE GLOBAL DEFAULT 23 _edata - 74: 0000000000011038 8 OBJECT GLOBAL DEFAULT 23 z - 75: 0000000000011030 4 OBJECT GLOBAL DEFAULT 23 x - 76: 00000000000007ec 0 FUNC GLOBAL HIDDEN 14 _fini - 77: 0000000000011050 0 NOTYPE GLOBAL DEFAULT 24 __bss_end__ - 78: 0000000000011020 0 NOTYPE GLOBAL DEFAULT 23 __data_start - 79: 0000000000000000 0 NOTYPE WEAK DEFAULT UND __gmon_start__ - 80: 0000000000011028 0 OBJECT GLOBAL HIDDEN 23 __dso_handle - 81: 0000000000000000 0 FUNC GLOBAL DEFAULT UND abort@GLIBC_2.17 - 82: 0000000000000800 4 OBJECT GLOBAL DEFAULT 15 _IO_stdin_used - 83: 0000000000011050 0 NOTYPE GLOBAL DEFAULT 24 _end - 84: 0000000000000680 52 FUNC GLOBAL DEFAULT 13 _start - 85: 0000000000011040 8 OBJECT GLOBAL DEFAULT 23 a - 86: 0000000000011050 0 NOTYPE GLOBAL DEFAULT 24 __end__ - 87: 0000000000011034 1 OBJECT GLOBAL DEFAULT 23 y - 88: 0000000000011048 0 NOTYPE GLOBAL DEFAULT 24 __bss_start - 89: 0000000000000794 88 FUNC GLOBAL DEFAULT 13 main - 90: 0000000000011048 0 OBJECT GLOBAL HIDDEN 23 __TMC_END__ - 91: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_registerTMCloneTable - 92: 00000000000005e0 0 FUNC GLOBAL HIDDEN 11 _init diff --git a/src/test/correct/initialisation/clang_pic/initialisation_gtirb.expected b/src/test/correct/initialisation/clang_pic/initialisation_gtirb.expected index bd9f14d84..212c6c33b 100644 --- a/src/test/correct/initialisation/clang_pic/initialisation_gtirb.expected +++ b/src/test/correct/initialisation/clang_pic/initialisation_gtirb.expected @@ -1,39 +1,35 @@ -var {:extern} CF: bv1; -var {:extern} Gamma_CF: bool; -var {:extern} Gamma_NF: bool; var {:extern} Gamma_R0: bool; var {:extern} Gamma_R10: bool; +var {:extern} Gamma_R11: bool; +var {:extern} Gamma_R12: bool; +var {:extern} Gamma_R13: bool; +var {:extern} Gamma_R14: bool; var {:extern} Gamma_R8: bool; var {:extern} Gamma_R9: bool; -var {:extern} Gamma_VF: bool; -var {:extern} Gamma_ZF: bool; var {:extern} Gamma_mem: [bv64]bool; -var {:extern} NF: bv1; var {:extern} R0: bv64; var {:extern} R10: bv64; +var {:extern} R11: bv64; +var {:extern} R12: bv64; +var {:extern} R13: bv64; +var {:extern} R14: bv64; var {:extern} R8: bv64; var {:extern} R9: bv64; -var {:extern} VF: bv1; -var {:extern} ZF: bv1; var {:extern} mem: [bv64]bv8; const {:extern} $a_addr: bv64; -axiom ($a_addr == 69696bv64); +axiom ($a_addr == 131104bv64); const {:extern} $x_addr: bv64; -axiom ($x_addr == 69680bv64); +axiom ($x_addr == 131088bv64); const {:extern} $y_addr: bv64; -axiom ($y_addr == 69684bv64); +axiom ($y_addr == 131092bv64); const {:extern} $z_addr: bv64; -axiom ($z_addr == 69688bv64); +axiom ($z_addr == 131096bv64); function {:extern} L(mem$in: [bv64]bv8, index: bv64) returns (bool) { false } function {:extern} {:bvbuiltin "bvadd"} bvadd32(bv32, bv32) returns (bv32); function {:extern} {:bvbuiltin "bvadd"} bvadd64(bv64, bv64) returns (bv64); -function {:extern} {:bvbuiltin "bvadd"} bvadd65(bv65, bv65) returns (bv65); -function {:extern} {:bvbuiltin "bvcomp"} bvcomp64(bv64, bv64) returns (bv1); -function {:extern} {:bvbuiltin "bvcomp"} bvcomp65(bv65, bv65) returns (bv1); -function {:extern} {:bvbuiltin "bvnot"} bvnot1(bv1) returns (bv1); function {:extern} gamma_load32(gammaMap: [bv64]bool, index: bv64) returns (bool) { (gammaMap[bvadd64(index, 3bv64)] && (gammaMap[bvadd64(index, 2bv64)] && (gammaMap[bvadd64(index, 1bv64)] && gammaMap[index]))) } @@ -82,23 +78,21 @@ function {:extern} memory_store8_le(memory: [bv64]bv8, index: bv64, value: bv8) memory[index := value[8:0]] } -function {:extern} {:bvbuiltin "sign_extend 1"} sign_extend1_64(bv64) returns (bv65); -function {:extern} {:bvbuiltin "zero_extend 1"} zero_extend1_64(bv64) returns (bv65); function {:extern} {:bvbuiltin "zero_extend 24"} zero_extend24_8(bv8) returns (bv32); function {:extern} {:bvbuiltin "zero_extend 32"} zero_extend32_32(bv32) returns (bv64); procedure {:extern} rely(); modifies Gamma_mem, mem; ensures (Gamma_mem == old(Gamma_mem)); ensures (mem == old(mem)); - free ensures (memory_load32_le(mem, 2048bv64) == 131073bv32); - free ensures (memory_load64_le(mem, 69032bv64) == 1936bv64); - free ensures (memory_load64_le(mem, 69040bv64) == 1856bv64); - free ensures (memory_load64_le(mem, 69552bv64) == 69688bv64); - free ensures (memory_load64_le(mem, 69560bv64) == 69680bv64); - free ensures (memory_load64_le(mem, 69576bv64) == 69696bv64); - free ensures (memory_load64_le(mem, 69584bv64) == 69684bv64); - free ensures (memory_load64_le(mem, 69592bv64) == 1940bv64); - free ensures (memory_load64_le(mem, 69672bv64) == 69672bv64); + free ensures (memory_load32_le(mem, 2432bv64) == 131073bv32); + free ensures (memory_load64_le(mem, 130408bv64) == 2320bv64); + free ensures (memory_load64_le(mem, 130416bv64) == 2240bv64); + free ensures (memory_load64_le(mem, 131016bv64) == 131096bv64); + free ensures (memory_load64_le(mem, 131024bv64) == 131088bv64); + free ensures (memory_load64_le(mem, 131040bv64) == 131104bv64); + free ensures (memory_load64_le(mem, 131048bv64) == 131092bv64); + free ensures (memory_load64_le(mem, 131056bv64) == 2324bv64); + free ensures (memory_load64_le(mem, 131080bv64) == 131080bv64); procedure {:extern} rely_transitive(); modifies Gamma_mem, mem; @@ -116,114 +110,107 @@ procedure {:extern} rely_reflexive(); procedure {:extern} guarantee_reflexive(); modifies Gamma_mem, mem; -procedure main_1940(); - modifies CF, Gamma_CF, Gamma_NF, Gamma_R0, Gamma_R10, Gamma_R8, Gamma_R9, Gamma_VF, Gamma_ZF, Gamma_mem, NF, R0, R10, R8, R9, VF, ZF, mem; - free requires (memory_load64_le(mem, 69664bv64) == 0bv64); - free requires (memory_load64_le(mem, 69672bv64) == 69672bv64); - free requires (memory_load64_le(mem, 69680bv64) == 416611827717bv64); - free requires (memory_load64_le(mem, 69688bv64) == 68719476735bv64); - free requires (memory_load64_le(mem, 69696bv64) == 8589934593bv64); - free requires (memory_load32_le(mem, 2048bv64) == 131073bv32); - free requires (memory_load64_le(mem, 69032bv64) == 1936bv64); - free requires (memory_load64_le(mem, 69040bv64) == 1856bv64); - free requires (memory_load64_le(mem, 69552bv64) == 69688bv64); - free requires (memory_load64_le(mem, 69560bv64) == 69680bv64); - free requires (memory_load64_le(mem, 69576bv64) == 69696bv64); - free requires (memory_load64_le(mem, 69584bv64) == 69684bv64); - free requires (memory_load64_le(mem, 69592bv64) == 1940bv64); - free requires (memory_load64_le(mem, 69672bv64) == 69672bv64); +procedure main(); + modifies Gamma_R0, Gamma_R10, Gamma_R11, Gamma_R12, Gamma_R13, Gamma_R14, Gamma_R8, Gamma_R9, Gamma_mem, R0, R10, R11, R12, R13, R14, R8, R9, mem; + free requires (memory_load64_le(mem, 131072bv64) == 0bv64); + free requires (memory_load64_le(mem, 131080bv64) == 131080bv64); + free requires (memory_load64_le(mem, 131088bv64) == 416611827717bv64); + free requires (memory_load64_le(mem, 131096bv64) == 68719476735bv64); + free requires (memory_load64_le(mem, 131104bv64) == 8589934593bv64); + free requires (memory_load32_le(mem, 2432bv64) == 131073bv32); + free requires (memory_load64_le(mem, 130408bv64) == 2320bv64); + free requires (memory_load64_le(mem, 130416bv64) == 2240bv64); + free requires (memory_load64_le(mem, 131016bv64) == 131096bv64); + free requires (memory_load64_le(mem, 131024bv64) == 131088bv64); + free requires (memory_load64_le(mem, 131040bv64) == 131104bv64); + free requires (memory_load64_le(mem, 131048bv64) == 131092bv64); + free requires (memory_load64_le(mem, 131056bv64) == 2324bv64); + free requires (memory_load64_le(mem, 131080bv64) == 131080bv64); ensures (memory_load32_le(mem, $x_addr) == 6bv32); ensures (memory_load32_le(mem, bvadd64($a_addr, 4bv64)) == 4bv32); ensures (memory_load32_le(mem, bvadd64($a_addr, 0bv64)) == 1bv32); - free ensures (memory_load32_le(mem, 2048bv64) == 131073bv32); - free ensures (memory_load64_le(mem, 69032bv64) == 1936bv64); - free ensures (memory_load64_le(mem, 69040bv64) == 1856bv64); - free ensures (memory_load64_le(mem, 69552bv64) == 69688bv64); - free ensures (memory_load64_le(mem, 69560bv64) == 69680bv64); - free ensures (memory_load64_le(mem, 69576bv64) == 69696bv64); - free ensures (memory_load64_le(mem, 69584bv64) == 69684bv64); - free ensures (memory_load64_le(mem, 69592bv64) == 1940bv64); - free ensures (memory_load64_le(mem, 69672bv64) == 69672bv64); - -implementation main_1940() + free ensures (memory_load32_le(mem, 2432bv64) == 131073bv32); + free ensures (memory_load64_le(mem, 130408bv64) == 2320bv64); + free ensures (memory_load64_le(mem, 130416bv64) == 2240bv64); + free ensures (memory_load64_le(mem, 131016bv64) == 131096bv64); + free ensures (memory_load64_le(mem, 131024bv64) == 131088bv64); + free ensures (memory_load64_le(mem, 131040bv64) == 131104bv64); + free ensures (memory_load64_le(mem, 131048bv64) == 131092bv64); + free ensures (memory_load64_le(mem, 131056bv64) == 2324bv64); + free ensures (memory_load64_le(mem, 131080bv64) == 131080bv64); + +implementation main() { - var Cse0__5_0_10: bv64; - var Gamma_Cse0__5_0_10: bool; - var Gamma_load10: bool; - var Gamma_load11: bool; - var Gamma_load4: bool; - var Gamma_load5: bool; - var Gamma_load6: bool; - var Gamma_load7: bool; - var Gamma_load8: bool; - var Gamma_load9: bool; - var load10: bv64; - var load11: bv8; - var load4: bv64; - var load5: bv64; - var load6: bv32; - var load7: bv64; - var load8: bv64; - var load9: bv32; - main_1940__0__qUctHEkFTbC0bXMW251ihQ: - assume {:captureState "main_1940__0__qUctHEkFTbC0bXMW251ihQ"} true; - R9, Gamma_R9 := 65536bv64, true; + var $load18: bv64; + var $load19: bv64; + var $load20: bv64; + var $load21: bv32; + var $load22: bv64; + var $load23: bv64; + var $load24: bv32; + var $load25: bv8; + var Gamma_$load18: bool; + var Gamma_$load19: bool; + var Gamma_$load20: bool; + var Gamma_$load21: bool; + var Gamma_$load22: bool; + var Gamma_$load23: bool; + var Gamma_$load24: bool; + var Gamma_$load25: bool; + $main$__0__$mmpaLvZYQk2b8selWCLriA: + assume {:captureState "$main$__0__$mmpaLvZYQk2b8selWCLriA"} true; + R8, Gamma_R8 := 126976bv64, true; + R9, Gamma_R9 := 126976bv64, true; + R10, Gamma_R10 := 126976bv64, true; call rely(); - load4, Gamma_load4 := memory_load64_le(mem, bvadd64(R9, 4040bv64)), (gamma_load64(Gamma_mem, bvadd64(R9, 4040bv64)) || L(mem, bvadd64(R9, 4040bv64))); - R9, Gamma_R9 := load4, Gamma_load4; - R10, Gamma_R10 := 65536bv64, true; + $load18, Gamma_$load18 := memory_load64_le(mem, bvadd64(R8, 4048bv64)), (gamma_load64(Gamma_mem, bvadd64(R8, 4048bv64)) || L(mem, bvadd64(R8, 4048bv64))); + R8, Gamma_R8 := $load18, Gamma_$load18; call rely(); - load5, Gamma_load5 := memory_load64_le(mem, bvadd64(R10, 4024bv64)), (gamma_load64(Gamma_mem, bvadd64(R10, 4024bv64)) || L(mem, bvadd64(R10, 4024bv64))); - R10, Gamma_R10 := load5, Gamma_load5; + $load19, Gamma_$load19 := memory_load64_le(mem, bvadd64(R9, 4040bv64)), (gamma_load64(Gamma_mem, bvadd64(R9, 4040bv64)) || L(mem, bvadd64(R9, 4040bv64))); + R9, Gamma_R9 := $load19, Gamma_$load19; call rely(); - load6, Gamma_load6 := memory_load32_le(mem, R10), (gamma_load32(Gamma_mem, R10) || L(mem, R10)); - R8, Gamma_R8 := zero_extend32_32(load6), Gamma_load6; - R8, Gamma_R8 := zero_extend32_32(bvadd32(R8[32:0], 1bv32)), Gamma_R8; - call rely(); - assert (L(mem, R10) ==> Gamma_R8); - mem, Gamma_mem := memory_store32_le(mem, R10, R8[32:0]), gamma_store32(Gamma_mem, R10, Gamma_R8); - assume {:captureState "1964_0"} true; - R10, Gamma_R10 := 65536bv64, true; + $load20, Gamma_$load20 := memory_load64_le(mem, bvadd64(R10, 4064bv64)), (gamma_load64(Gamma_mem, bvadd64(R10, 4064bv64)) || L(mem, bvadd64(R10, 4064bv64))); + R10, Gamma_R10 := $load20, Gamma_$load20; + R12, Gamma_R12 := 126976bv64, true; + R0, Gamma_R0 := 0bv64, true; call rely(); - load7, Gamma_load7 := memory_load64_le(mem, bvadd64(R10, 4016bv64)), (gamma_load64(Gamma_mem, bvadd64(R10, 4016bv64)) || L(mem, bvadd64(R10, 4016bv64))); - R10, Gamma_R10 := load7, Gamma_load7; + $load21, Gamma_$load21 := memory_load32_le(mem, R8), (gamma_load32(Gamma_mem, R8) || L(mem, R8)); + R11, Gamma_R11 := zero_extend32_32($load21), Gamma_$load21; call rely(); - load8, Gamma_load8 := memory_load64_le(mem, R10), (gamma_load64(Gamma_mem, R10) || L(mem, R10)); - R8, Gamma_R8 := load8, Gamma_load8; - Cse0__5_0_10, Gamma_Cse0__5_0_10 := bvadd64(R8, 18446744073709551615bv64), Gamma_R8; - VF, Gamma_VF := bvnot1(bvcomp65(sign_extend1_64(Cse0__5_0_10), bvadd65(sign_extend1_64(R8), 36893488147419103231bv65))), (Gamma_R8 && Gamma_Cse0__5_0_10); - CF, Gamma_CF := bvnot1(bvcomp65(zero_extend1_64(Cse0__5_0_10), bvadd65(zero_extend1_64(R8), 18446744073709551615bv65))), (Gamma_R8 && Gamma_Cse0__5_0_10); - ZF, Gamma_ZF := bvcomp64(Cse0__5_0_10, 0bv64), Gamma_Cse0__5_0_10; - NF, Gamma_NF := Cse0__5_0_10[64:63], Gamma_Cse0__5_0_10; - R8, Gamma_R8 := Cse0__5_0_10, Gamma_Cse0__5_0_10; + $load22, Gamma_$load22 := memory_load64_le(mem, bvadd64(R12, 4072bv64)), (gamma_load64(Gamma_mem, bvadd64(R12, 4072bv64)) || L(mem, bvadd64(R12, 4072bv64))); + R12, Gamma_R12 := $load22, Gamma_$load22; call rely(); - assert (L(mem, R10) ==> Gamma_R8); - mem, Gamma_mem := memory_store64_le(mem, R10, R8), gamma_store64(Gamma_mem, R10, Gamma_R8); - assume {:captureState "1984_0"} true; + $load23, Gamma_$load23 := memory_load64_le(mem, R9), (gamma_load64(Gamma_mem, R9) || L(mem, R9)); + R13, Gamma_R13 := $load23, Gamma_$load23; call rely(); - load9, Gamma_load9 := memory_load32_le(mem, R9), (gamma_load32(Gamma_mem, R9) || L(mem, R9)); - R8, Gamma_R8 := zero_extend32_32(load9), Gamma_load9; - R8, Gamma_R8 := zero_extend32_32(bvadd32(R8[32:0], 3bv32)), Gamma_R8; + $load24, Gamma_$load24 := memory_load32_le(mem, R10), (gamma_load32(Gamma_mem, R10) || L(mem, R10)); + R14, Gamma_R14 := zero_extend32_32($load24), Gamma_$load24; + R11, Gamma_R11 := zero_extend32_32(bvadd32(R11[32:0], 1bv32)), Gamma_R11; call rely(); - assert (L(mem, bvadd64(R9, 4bv64)) ==> Gamma_R8); - mem, Gamma_mem := memory_store32_le(mem, bvadd64(R9, 4bv64), R8[32:0]), gamma_store32(Gamma_mem, bvadd64(R9, 4bv64), Gamma_R8); - assume {:captureState "1996_0"} true; - R9, Gamma_R9 := 65536bv64, true; + assert (L(mem, R8) ==> Gamma_R11); + mem, Gamma_mem := memory_store32_le(mem, R8, R11[32:0]), gamma_store32(Gamma_mem, R8, Gamma_R11); + assume {:captureState "2376$0"} true; call rely(); - load10, Gamma_load10 := memory_load64_le(mem, bvadd64(R9, 4048bv64)), (gamma_load64(Gamma_mem, bvadd64(R9, 4048bv64)) || L(mem, bvadd64(R9, 4048bv64))); - R9, Gamma_R9 := load10, Gamma_load10; + $load25, Gamma_$load25 := memory_load8_le(mem, R12), (gamma_load8(Gamma_mem, R12) || L(mem, R12)); + R8, Gamma_R8 := zero_extend32_32(zero_extend24_8($load25)), Gamma_$load25; + R11, Gamma_R11 := bvadd64(R13, 18446744073709551615bv64), Gamma_R13; call rely(); - load11, Gamma_load11 := memory_load8_le(mem, R9), (gamma_load8(Gamma_mem, R9) || L(mem, R9)); - R8, Gamma_R8 := zero_extend32_32(zero_extend24_8(load11)), Gamma_load11; + assert (L(mem, R9) ==> Gamma_R11); + mem, Gamma_mem := memory_store64_le(mem, R9, R11), gamma_store64(Gamma_mem, R9, Gamma_R11); + assume {:captureState "2388$0"} true; + R9, Gamma_R9 := zero_extend32_32(bvadd32(R14[32:0], 3bv32)), Gamma_R14; R8, Gamma_R8 := zero_extend32_32(bvadd32(R8[32:0], 1bv32)), Gamma_R8; call rely(); - assert (L(mem, R9) ==> Gamma_R8); - mem, Gamma_mem := memory_store8_le(mem, R9, R8[8:0]), gamma_store8(Gamma_mem, R9, Gamma_R8); - assume {:captureState "2016_0"} true; - R0, Gamma_R0 := 0bv64, true; - goto main_1940_basil_return; - main_1940_basil_return: - assume {:captureState "main_1940_basil_return"} true; + assert (L(mem, bvadd64(R10, 4bv64)) ==> Gamma_R9); + mem, Gamma_mem := memory_store32_le(mem, bvadd64(R10, 4bv64), R9[32:0]), gamma_store32(Gamma_mem, bvadd64(R10, 4bv64), Gamma_R9); + assume {:captureState "2400$0"} true; + call rely(); + assert (L(mem, R12) ==> Gamma_R8); + mem, Gamma_mem := memory_store8_le(mem, R12, R8[8:0]), gamma_store8(Gamma_mem, R12, Gamma_R8); + assume {:captureState "2404$0"} true; + goto main_basil_return; + main_basil_return: + assume {:captureState "main_basil_return"} true; return; } diff --git a/src/test/correct/initialisation/gcc/initialisation.adt b/src/test/correct/initialisation/gcc/initialisation.adt deleted file mode 100644 index fe9e600a7..000000000 --- a/src/test/correct/initialisation/gcc/initialisation.adt +++ /dev/null @@ -1,566 +0,0 @@ -Project(Attrs([Attr("filename","\"gcc/initialisation.out\""), -Attr("image-specification","(declare abi (name str))\n(declare arch (name str))\n(declare base-address (addr int))\n(declare bias (off int))\n(declare bits (size int))\n(declare code-region (addr int) (size int) (off int))\n(declare code-start (addr int))\n(declare entry-point (addr int))\n(declare external-reference (addr int) (name str))\n(declare format (name str))\n(declare is-executable (flag bool))\n(declare is-little-endian (flag bool))\n(declare llvm:base-address (addr int))\n(declare llvm:code-entry (name str) (off int) (size int))\n(declare llvm:coff-import-library (name str))\n(declare llvm:coff-virtual-section-header (name str) (addr int) (size int))\n(declare llvm:elf-program-header (name str) (off int) (size int))\n(declare llvm:elf-program-header-flags (name str) (ld bool) (r bool) \n (w bool) (x bool))\n(declare llvm:elf-virtual-program-header (name str) (addr int) (size int))\n(declare llvm:entry-point (addr int))\n(declare llvm:macho-symbol (name str) (value int))\n(declare llvm:name-reference (at int) (name str))\n(declare llvm:relocation (at int) (addr int))\n(declare llvm:section-entry (name str) (addr int) (size int) (off int))\n(declare llvm:section-flags (name str) (r bool) (w bool) (x bool))\n(declare llvm:segment-command (name str) (off int) (size int))\n(declare llvm:segment-command-flags (name str) (r bool) (w bool) (x bool))\n(declare llvm:symbol-entry (name str) (addr int) (size int) (off int)\n (value int))\n(declare llvm:virtual-segment-command (name str) (addr int) (size int))\n(declare mapped (addr int) (size int) (off int))\n(declare named-region (addr int) (size int) (name str))\n(declare named-symbol (addr int) (name str))\n(declare require (name str))\n(declare section (addr int) (size int))\n(declare segment (addr int) (size int) (r bool) (w bool) (x bool))\n(declare subarch (name str))\n(declare symbol-chunk (addr int) (size int) (root int))\n(declare symbol-value (addr int) (value int))\n(declare system (name str))\n(declare vendor (name str))\n\n(abi unknown)\n(arch aarch64)\n(base-address 0)\n(bias 0)\n(bits 64)\n(code-region 1936 20 1936)\n(code-region 1536 400 1536)\n(code-region 1440 96 1440)\n(code-region 1408 24 1408)\n(code-start 1588)\n(code-start 1536)\n(code-start 1812)\n(entry-point 1536)\n(external-reference 69592 _ITM_deregisterTMCloneTable)\n(external-reference 69600 __cxa_finalize)\n(external-reference 69608 __gmon_start__)\n(external-reference 69624 _ITM_registerTMCloneTable)\n(external-reference 69552 __libc_start_main)\n(external-reference 69560 __cxa_finalize)\n(external-reference 69568 __gmon_start__)\n(external-reference 69576 abort)\n(format elf)\n(is-executable true)\n(is-little-endian true)\n(llvm:base-address 0)\n(llvm:code-entry abort 0 0)\n(llvm:code-entry __cxa_finalize 0 0)\n(llvm:code-entry __libc_start_main 0 0)\n(llvm:code-entry _init 1408 0)\n(llvm:code-entry main 1812 124)\n(llvm:code-entry _start 1536 52)\n(llvm:code-entry abort@GLIBC_2.17 0 0)\n(llvm:code-entry _fini 1936 0)\n(llvm:code-entry __cxa_finalize@GLIBC_2.17 0 0)\n(llvm:code-entry __libc_start_main@GLIBC_2.34 0 0)\n(llvm:code-entry frame_dummy 1808 0)\n(llvm:code-entry __do_global_dtors_aux 1728 0)\n(llvm:code-entry register_tm_clones 1664 0)\n(llvm:code-entry deregister_tm_clones 1616 0)\n(llvm:code-entry call_weak_fn 1588 20)\n(llvm:code-entry .fini 1936 20)\n(llvm:code-entry .text 1536 400)\n(llvm:code-entry .plt 1440 96)\n(llvm:code-entry .init 1408 24)\n(llvm:elf-program-header 08 3480 616)\n(llvm:elf-program-header 07 0 0)\n(llvm:elf-program-header 06 1960 60)\n(llvm:elf-program-header 05 596 68)\n(llvm:elf-program-header 04 3496 496)\n(llvm:elf-program-header 03 3480 656)\n(llvm:elf-program-header 02 0 2184)\n(llvm:elf-program-header 01 568 27)\n(llvm:elf-program-header 00 64 504)\n(llvm:elf-program-header-flags 08 false true false false)\n(llvm:elf-program-header-flags 07 false true true false)\n(llvm:elf-program-header-flags 06 false true false false)\n(llvm:elf-program-header-flags 05 false true false false)\n(llvm:elf-program-header-flags 04 false true true false)\n(llvm:elf-program-header-flags 03 true true true false)\n(llvm:elf-program-header-flags 02 true true false true)\n(llvm:elf-program-header-flags 01 false true false false)\n(llvm:elf-program-header-flags 00 false true false false)\n(llvm:elf-virtual-program-header 08 69016 616)\n(llvm:elf-virtual-program-header 07 0 0)\n(llvm:elf-virtual-program-header 06 1960 60)\n(llvm:elf-virtual-program-header 05 596 68)\n(llvm:elf-virtual-program-header 04 69032 496)\n(llvm:elf-virtual-program-header 03 69016 664)\n(llvm:elf-virtual-program-header 02 0 2184)\n(llvm:elf-virtual-program-header 01 568 27)\n(llvm:elf-virtual-program-header 00 64 504)\n(llvm:entry-point 1536)\n(llvm:name-reference 69576 abort)\n(llvm:name-reference 69568 __gmon_start__)\n(llvm:name-reference 69560 __cxa_finalize)\n(llvm:name-reference 69552 __libc_start_main)\n(llvm:name-reference 69624 _ITM_registerTMCloneTable)\n(llvm:name-reference 69608 __gmon_start__)\n(llvm:name-reference 69600 __cxa_finalize)\n(llvm:name-reference 69592 _ITM_deregisterTMCloneTable)\n(llvm:section-entry .shstrtab 0 250 6920)\n(llvm:section-entry .strtab 0 552 6368)\n(llvm:section-entry .symtab 0 2184 4184)\n(llvm:section-entry .comment 0 43 4136)\n(llvm:section-entry .bss 69672 8 4136)\n(llvm:section-entry .data 69632 40 4096)\n(llvm:section-entry .got 69528 104 3992)\n(llvm:section-entry .dynamic 69032 496 3496)\n(llvm:section-entry .fini_array 69024 8 3488)\n(llvm:section-entry .init_array 69016 8 3480)\n(llvm:section-entry .eh_frame 2024 160 2024)\n(llvm:section-entry .eh_frame_hdr 1960 60 1960)\n(llvm:section-entry .rodata 1956 4 1956)\n(llvm:section-entry .fini 1936 20 1936)\n(llvm:section-entry .text 1536 400 1536)\n(llvm:section-entry .plt 1440 96 1440)\n(llvm:section-entry .init 1408 24 1408)\n(llvm:section-entry .rela.plt 1312 96 1312)\n(llvm:section-entry .rela.dyn 1120 192 1120)\n(llvm:section-entry .gnu.version_r 1072 48 1072)\n(llvm:section-entry .gnu.version 1054 18 1054)\n(llvm:section-entry .dynstr 912 141 912)\n(llvm:section-entry .dynsym 696 216 696)\n(llvm:section-entry .gnu.hash 664 28 664)\n(llvm:section-entry .note.ABI-tag 632 32 632)\n(llvm:section-entry .note.gnu.build-id 596 36 596)\n(llvm:section-entry .interp 568 27 568)\n(llvm:section-flags .shstrtab true false false)\n(llvm:section-flags .strtab true false false)\n(llvm:section-flags .symtab true false false)\n(llvm:section-flags .comment true false false)\n(llvm:section-flags .bss true true false)\n(llvm:section-flags .data true true false)\n(llvm:section-flags .got true true false)\n(llvm:section-flags .dynamic true true false)\n(llvm:section-flags .fini_array true true false)\n(llvm:section-flags .init_array true true false)\n(llvm:section-flags .eh_frame true false false)\n(llvm:section-flags .eh_frame_hdr true false false)\n(llvm:section-flags .rodata true false false)\n(llvm:section-flags .fini true false true)\n(llvm:section-flags .text true false true)\n(llvm:section-flags .plt true false true)\n(llvm:section-flags .init true false true)\n(llvm:section-flags .rela.plt true false false)\n(llvm:section-flags .rela.dyn true false false)\n(llvm:section-flags .gnu.version_r true false false)\n(llvm:section-flags .gnu.version true false false)\n(llvm:section-flags .dynstr true false false)\n(llvm:section-flags .dynsym true false false)\n(llvm:section-flags .gnu.hash true false false)\n(llvm:section-flags .note.ABI-tag true false false)\n(llvm:section-flags .note.gnu.build-id true false false)\n(llvm:section-flags .interp true false false)\n(llvm:symbol-entry abort 0 0 0 0)\n(llvm:symbol-entry __cxa_finalize 0 0 0 0)\n(llvm:symbol-entry __libc_start_main 0 0 0 0)\n(llvm:symbol-entry _init 1408 0 1408 1408)\n(llvm:symbol-entry main 1812 124 1812 1812)\n(llvm:symbol-entry _start 1536 52 1536 1536)\n(llvm:symbol-entry abort@GLIBC_2.17 0 0 0 0)\n(llvm:symbol-entry _fini 1936 0 1936 1936)\n(llvm:symbol-entry __cxa_finalize@GLIBC_2.17 0 0 0 0)\n(llvm:symbol-entry __libc_start_main@GLIBC_2.34 0 0 0 0)\n(llvm:symbol-entry frame_dummy 1808 0 1808 1808)\n(llvm:symbol-entry __do_global_dtors_aux 1728 0 1728 1728)\n(llvm:symbol-entry register_tm_clones 1664 0 1664 1664)\n(llvm:symbol-entry deregister_tm_clones 1616 0 1616 1616)\n(llvm:symbol-entry call_weak_fn 1588 20 1588 1588)\n(mapped 0 2184 0)\n(mapped 69016 656 3480)\n(named-region 0 2184 02)\n(named-region 69016 664 03)\n(named-region 568 27 .interp)\n(named-region 596 36 .note.gnu.build-id)\n(named-region 632 32 .note.ABI-tag)\n(named-region 664 28 .gnu.hash)\n(named-region 696 216 .dynsym)\n(named-region 912 141 .dynstr)\n(named-region 1054 18 .gnu.version)\n(named-region 1072 48 .gnu.version_r)\n(named-region 1120 192 .rela.dyn)\n(named-region 1312 96 .rela.plt)\n(named-region 1408 24 .init)\n(named-region 1440 96 .plt)\n(named-region 1536 400 .text)\n(named-region 1936 20 .fini)\n(named-region 1956 4 .rodata)\n(named-region 1960 60 .eh_frame_hdr)\n(named-region 2024 160 .eh_frame)\n(named-region 69016 8 .init_array)\n(named-region 69024 8 .fini_array)\n(named-region 69032 496 .dynamic)\n(named-region 69528 104 .got)\n(named-region 69632 40 .data)\n(named-region 69672 8 .bss)\n(named-region 0 43 .comment)\n(named-region 0 2184 .symtab)\n(named-region 0 552 .strtab)\n(named-region 0 250 .shstrtab)\n(named-symbol 1588 call_weak_fn)\n(named-symbol 1616 deregister_tm_clones)\n(named-symbol 1664 register_tm_clones)\n(named-symbol 1728 __do_global_dtors_aux)\n(named-symbol 1808 frame_dummy)\n(named-symbol 0 __libc_start_main@GLIBC_2.34)\n(named-symbol 0 __cxa_finalize@GLIBC_2.17)\n(named-symbol 1936 _fini)\n(named-symbol 0 abort@GLIBC_2.17)\n(named-symbol 1536 _start)\n(named-symbol 1812 main)\n(named-symbol 1408 _init)\n(named-symbol 0 __libc_start_main)\n(named-symbol 0 __cxa_finalize)\n(named-symbol 0 abort)\n(require libc.so.6)\n(section 568 27)\n(section 596 36)\n(section 632 32)\n(section 664 28)\n(section 696 216)\n(section 912 141)\n(section 1054 18)\n(section 1072 48)\n(section 1120 192)\n(section 1312 96)\n(section 1408 24)\n(section 1440 96)\n(section 1536 400)\n(section 1936 20)\n(section 1956 4)\n(section 1960 60)\n(section 2024 160)\n(section 69016 8)\n(section 69024 8)\n(section 69032 496)\n(section 69528 104)\n(section 69632 40)\n(section 69672 8)\n(section 0 43)\n(section 0 2184)\n(section 0 552)\n(section 0 250)\n(segment 0 2184 true false true)\n(segment 69016 664 true true false)\n(subarch v8)\n(symbol-chunk 1588 20 1588)\n(symbol-chunk 1536 52 1536)\n(symbol-chunk 1812 124 1812)\n(symbol-value 1588 1588)\n(symbol-value 1616 1616)\n(symbol-value 1664 1664)\n(symbol-value 1728 1728)\n(symbol-value 1808 1808)\n(symbol-value 1936 1936)\n(symbol-value 1536 1536)\n(symbol-value 1812 1812)\n(symbol-value 1408 1408)\n(symbol-value 0 0)\n(system \"\")\n(vendor \"\")\n"), -Attr("abi-name","\"aarch64-linux-gnu-elf\"")]), -Sections([Section(".shstrtab", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x00\x06\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x08\x1c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x38\x00\x09\x00\x40\x00\x1c\x00\x1b\x00\x06\x00\x00\x00\x04\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x04\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x88\x08\x00\x00\x00\x00\x00\x00\x88\x08\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x01\x00\x00\x00\x06\x00\x00\x00\x98\x0d\x00\x00\x00\x00\x00\x00\x98\x0d"), -Section(".strtab", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x00\x06\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x08\x1c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x38\x00\x09\x00\x40\x00\x1c\x00\x1b\x00\x06\x00\x00\x00\x04\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x04\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x88\x08\x00\x00\x00\x00\x00\x00\x88\x08\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x01\x00\x00\x00\x06\x00\x00\x00\x98\x0d\x00\x00\x00\x00\x00\x00\x98\x0d\x01\x00\x00\x00\x00\x00\x98\x0d\x01\x00\x00\x00\x00\x00\x90\x02\x00\x00\x00\x00\x00\x00\x98\x02\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x02\x00\x00\x00\x06\x00\x00\x00\xa8\x0d\x00\x00\x00\x00\x00\x00\xa8\x0d\x01\x00\x00\x00\x00\x00\xa8\x0d\x01\x00\x00\x00\x00\x00\xf0\x01\x00\x00\x00\x00\x00\x00\xf0\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x04\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x50\xe5\x74\x64\x04\x00\x00\x00\xa8\x07\x00\x00\x00\x00\x00\x00\xa8\x07\x00\x00\x00\x00\x00\x00\xa8\x07\x00\x00\x00\x00\x00\x00\x3c\x00\x00\x00\x00\x00\x00\x00\x3c\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x51\xe5\x74\x64\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x52\xe5\x74\x64\x04\x00\x00\x00\x98\x0d\x00\x00\x00\x00\x00\x00\x98\x0d\x01\x00\x00\x00\x00\x00\x98\x0d\x01\x00\x00\x00\x00\x00\x68\x02\x00\x00\x00\x00\x00\x00"), -Section(".symtab", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x00\x06\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x08\x1c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x38\x00\x09\x00\x40\x00\x1c\x00\x1b\x00\x06\x00\x00\x00\x04\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x04\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x88\x08\x00\x00\x00\x00\x00\x00\x88\x08\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x01\x00\x00\x00\x06\x00\x00\x00\x98\x0d\x00\x00\x00\x00\x00\x00\x98\x0d\x01\x00\x00\x00\x00\x00\x98\x0d\x01\x00\x00\x00\x00\x00\x90\x02\x00\x00\x00\x00\x00\x00\x98\x02\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x02\x00\x00\x00\x06\x00\x00\x00\xa8\x0d\x00\x00\x00\x00\x00\x00\xa8\x0d\x01\x00\x00\x00\x00\x00\xa8\x0d\x01\x00\x00\x00\x00\x00\xf0\x01\x00\x00\x00\x00\x00\x00\xf0\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x04\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x50\xe5\x74\x64\x04\x00\x00\x00\xa8\x07\x00\x00\x00\x00\x00\x00\xa8\x07\x00\x00\x00\x00\x00\x00\xa8\x07\x00\x00\x00\x00\x00\x00\x3c\x00\x00\x00\x00\x00\x00\x00\x3c\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x51\xe5\x74\x64\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x52\xe5\x74\x64\x04\x00\x00\x00\x98\x0d\x00\x00\x00\x00\x00\x00\x98\x0d\x01\x00\x00\x00\x00\x00\x98\x0d\x01\x00\x00\x00\x00\x00\x68\x02\x00\x00\x00\x00\x00\x00\x68\x02\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x2f\x6c\x69\x62\x2f\x6c\x64\x2d\x6c\x69\x6e\x75\x78\x2d\x61\x61\x72\x63\x68\x36\x34\x2e\x73\x6f\x2e\x31\x00\x00\x04\x00\x00\x00\x14\x00\x00\x00\x03\x00\x00\x00\x47\x4e\x55\x00\x95\x9e\x6f\x00\xfe\x44\x38\x29\xd8\x87\x68\x07\xa8\xdd\x0e\xbb\xbf\x1f\xe3\xdb\x04\x00\x00\x00\x10\x00\x00\x00\x01\x00\x00\x00\x47\x4e\x55\x00\x00\x00\x00\x00\x03\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x01\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x0b\x00\x80\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x16\x00\x00\x10\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x48\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x22\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x22\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x73\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5f\x5f\x63\x78\x61\x5f\x66\x69\x6e\x61\x6c\x69\x7a\x65\x00\x5f\x5f\x6c\x69\x62\x63\x5f\x73\x74\x61\x72\x74\x5f\x6d\x61\x69\x6e\x00\x61\x62\x6f\x72\x74\x00\x6c\x69\x62\x63\x2e\x73\x6f\x2e\x36\x00\x47\x4c\x49\x42\x43\x5f\x32\x2e\x31\x37\x00\x47\x4c\x49\x42\x43\x5f\x32\x2e\x33\x34\x00\x5f\x49\x54\x4d\x5f\x64\x65\x72\x65\x67\x69\x73\x74\x65\x72\x54\x4d\x43\x6c\x6f\x6e\x65\x54\x61\x62\x6c\x65\x00\x5f\x5f\x67\x6d\x6f\x6e\x5f\x73\x74\x61\x72\x74\x5f\x5f\x00\x5f\x49\x54\x4d\x5f\x72\x65\x67\x69\x73\x74\x65\x72\x54\x4d\x43\x6c\x6f\x6e\x65\x54\x61\x62\x6c\x65\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x01\x00\x03\x00\x01\x00\x03\x00\x01\x00\x01\x00\x02\x00\x28\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x97\x91\x96\x06\x00\x00\x03\x00\x32\x00\x00\x00\x10\x00\x00\x00\xb4\x91\x96\x06\x00\x00\x02\x00\x3d\x00\x00\x00\x00\x00\x00\x00\x98\x0d\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x10\x07\x00\x00\x00\x00\x00\x00\xa0\x0d\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\xc0\x06\x00\x00\x00\x00\x00\x00\xf0\x0f\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x14\x07\x00\x00\x00\x00\x00\x00\x08\x10\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x08\x10\x01\x00\x00\x00\x00\x00\xd8\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe0\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe8\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xf8\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xb0\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xb8\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xc0\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xc8\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1f\x20\x03\xd5\xfd\x7b\xbf\xa9\xfd\x03\x00\x91\x2a\x00\x00\x94\xfd\x7b\xc1\xa8\xc0\x03\x5f\xd6\x00\x00\x00\x00\x00\x00\x00\x00\xf0\x7b\xbf\xa9\x90\x00\x00\x90\x11\xd6\x47\xf9\x10\xa2\x3e\x91\x20\x02\x1f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x90\x00\x00\x90\x11\xda\x47\xf9\x10\xc2\x3e\x91\x20\x02\x1f\xd6\x90\x00\x00\x90\x11\xde\x47\xf9\x10\xe2\x3e\x91\x20\x02\x1f\xd6\x90\x00\x00\x90\x11\xe2\x47\xf9\x10\x02\x3f\x91\x20\x02\x1f\xd6\x90\x00\x00\x90\x11\xe6\x47\xf9\x10\x22\x3f\x91\x20\x02\x1f\xd6\x1f\x20\x03\xd5\x1d\x00\x80\xd2\x1e\x00\x80\xd2\xe5\x03\x00\xaa\xe1\x03\x40\xf9\xe2\x23\x00\x91\xe6\x03\x00\x91\x80\x00\x00\x90\x00\xf8\x47\xf9\x03\x00\x80\xd2\x04\x00\x80\xd2\xe5\xff\xff\x97\xf0\xff\xff\x97\x80\x00\x00\x90\x00\xf4\x47\xf9\x40\x00\x00\xb4\xe8\xff\xff\x17\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x80\x00\x00\xb0\x00\xa0\x00\x91\x81\x00\x00\xb0\x21\xa0\x00\x91\x3f\x00\x00\xeb\xc0\x00\x00\x54\x81\x00\x00\x90\x21\xec\x47\xf9\x61\x00\x00\xb4\xf0\x03\x01\xaa\x00\x02\x1f\xd6\xc0\x03\x5f\xd6\x80\x00\x00\xb0\x00\xa0\x00\x91\x81\x00\x00\xb0\x21\xa0\x00\x91\x21\x00\x00\xcb\x22\xfc\x7f\xd3\x41\x0c\x81\x8b\x21\xfc\x41\x93\xc1\x00\x00\xb4\x82\x00\x00\x90\x42\xfc\x47\xf9\x62\x00\x00\xb4\xf0\x03\x02\xaa\x00\x02\x1f\xd6\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\xfd\x7b\xbe\xa9\xfd\x03\x00\x91\xf3\x0b\x00\xf9\x93\x00\x00\xb0\x60\xa2\x40\x39\x40\x01\x00\x35\x80\x00\x00\x90\x00\xf0\x47\xf9\x80\x00\x00\xb4\x80\x00\x00\xb0\x00\x04\x40\xf9\xb9\xff\xff\x97\xd8\xff\xff\x97\x20\x00\x80\x52\x60\xa2\x00\x39\xf3\x0b\x40\xf9\xfd\x7b\xc2\xa8\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\xdc\xff\xff\x17\x80\x00\x00\xb0\x00\x40\x00\x91\x00\x00\x40\xb9\x01\x04\x00\x11\x80\x00\x00\xb0\x00\x40\x00\x91\x01\x00\x00\xb9\x80\x00\x00\xb0\x00\x60\x00\x91\x00\x00\x40\xf9\x01\x04\x00\xd1\x80\x00\x00\xb0\x00\x60\x00\x91\x01\x00\x00\xf9\x80\x00\x00\xb0\x00\x80\x00\x91\x00\x00\x40\xb9\x01\x0c\x00\x11\x80\x00\x00\xb0\x00\x80\x00\x91\x01\x04\x00\xb9\x80\x00\x00\xb0\x00\x50\x00\x91\x00\x00\x40\x39\x00\x04\x00\x11\x01\x1c\x00\x12\x80\x00\x00\xb0\x00\x50\x00\x91\x01\x00\x00\x39\x00\x00\x80\x52\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\xfd\x7b\xbf\xa9\xfd\x03\x00\x91\xfd\x7b\xc1\xa8\xc0\x03\x5f\xd6\x01\x00\x02\x00\x01\x1b\x03\x3b\x3c\x00\x00\x00\x06\x00\x00\x00\x58\xfe\xff\xff\x54\x00\x00\x00\xa8\xfe\xff\xff\x68\x00\x00\x00\xd8\xfe\xff\xff\x7c\x00\x00\x00\x18\xff\xff\xff\x90\x00\x00\x00\x68\xff\xff\xff\xb4\x00\x00\x00\x6c\xff\xff\xff\xc8\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x01\x7a\x52\x00\x04\x78\x1e\x01\x1b\x0c\x1f\x00\x10\x00\x00\x00\x18\x00\x00\x00\xfc\xfd\xff\xff\x34\x00\x00\x00\x00\x41\x07\x1e\x10\x00\x00\x00\x2c\x00\x00\x00\x38\xfe\xff\xff\x30\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x40\x00\x00\x00\x54\xfe\xff\xff\x3c\x00\x00\x00\x00\x00\x00\x00\x20\x00\x00\x00\x54\x00\x00\x00\x80\xfe\xff\xff\x48\x00\x00\x00\x00\x41\x0e\x20\x9d\x04\x9e\x03\x42\x93\x02\x4e\xde\xdd\xd3\x0e\x00\x00\x00\x00\x10\x00\x00\x00\x78\x00\x00\x00\xac\xfe\xff\xff\x04\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x8c\x00\x00\x00\x9c\xfe\xff\xff\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section("02", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x00\x06\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x08\x1c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x38\x00\x09\x00\x40\x00\x1c\x00\x1b\x00\x06\x00\x00\x00\x04\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x04\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x88\x08\x00\x00\x00\x00\x00\x00\x88\x08\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x01\x00\x00\x00\x06\x00\x00\x00\x98\x0d\x00\x00\x00\x00\x00\x00\x98\x0d\x01\x00\x00\x00\x00\x00\x98\x0d\x01\x00\x00\x00\x00\x00\x90\x02\x00\x00\x00\x00\x00\x00\x98\x02\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x02\x00\x00\x00\x06\x00\x00\x00\xa8\x0d\x00\x00\x00\x00\x00\x00\xa8\x0d\x01\x00\x00\x00\x00\x00\xa8\x0d\x01\x00\x00\x00\x00\x00\xf0\x01\x00\x00\x00\x00\x00\x00\xf0\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x04\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x50\xe5\x74\x64\x04\x00\x00\x00\xa8\x07\x00\x00\x00\x00\x00\x00\xa8\x07\x00\x00\x00\x00\x00\x00\xa8\x07\x00\x00\x00\x00\x00\x00\x3c\x00\x00\x00\x00\x00\x00\x00\x3c\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x51\xe5\x74\x64\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x52\xe5\x74\x64\x04\x00\x00\x00\x98\x0d\x00\x00\x00\x00\x00\x00\x98\x0d\x01\x00\x00\x00\x00\x00\x98\x0d\x01\x00\x00\x00\x00\x00\x68\x02\x00\x00\x00\x00\x00\x00\x68\x02\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x2f\x6c\x69\x62\x2f\x6c\x64\x2d\x6c\x69\x6e\x75\x78\x2d\x61\x61\x72\x63\x68\x36\x34\x2e\x73\x6f\x2e\x31\x00\x00\x04\x00\x00\x00\x14\x00\x00\x00\x03\x00\x00\x00\x47\x4e\x55\x00\x95\x9e\x6f\x00\xfe\x44\x38\x29\xd8\x87\x68\x07\xa8\xdd\x0e\xbb\xbf\x1f\xe3\xdb\x04\x00\x00\x00\x10\x00\x00\x00\x01\x00\x00\x00\x47\x4e\x55\x00\x00\x00\x00\x00\x03\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x01\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x0b\x00\x80\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x16\x00\x00\x10\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x48\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x22\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x22\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x73\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5f\x5f\x63\x78\x61\x5f\x66\x69\x6e\x61\x6c\x69\x7a\x65\x00\x5f\x5f\x6c\x69\x62\x63\x5f\x73\x74\x61\x72\x74\x5f\x6d\x61\x69\x6e\x00\x61\x62\x6f\x72\x74\x00\x6c\x69\x62\x63\x2e\x73\x6f\x2e\x36\x00\x47\x4c\x49\x42\x43\x5f\x32\x2e\x31\x37\x00\x47\x4c\x49\x42\x43\x5f\x32\x2e\x33\x34\x00\x5f\x49\x54\x4d\x5f\x64\x65\x72\x65\x67\x69\x73\x74\x65\x72\x54\x4d\x43\x6c\x6f\x6e\x65\x54\x61\x62\x6c\x65\x00\x5f\x5f\x67\x6d\x6f\x6e\x5f\x73\x74\x61\x72\x74\x5f\x5f\x00\x5f\x49\x54\x4d\x5f\x72\x65\x67\x69\x73\x74\x65\x72\x54\x4d\x43\x6c\x6f\x6e\x65\x54\x61\x62\x6c\x65\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x01\x00\x03\x00\x01\x00\x03\x00\x01\x00\x01\x00\x02\x00\x28\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x97\x91\x96\x06\x00\x00\x03\x00\x32\x00\x00\x00\x10\x00\x00\x00\xb4\x91\x96\x06\x00\x00\x02\x00\x3d\x00\x00\x00\x00\x00\x00\x00\x98\x0d\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x10\x07\x00\x00\x00\x00\x00\x00\xa0\x0d\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\xc0\x06\x00\x00\x00\x00\x00\x00\xf0\x0f\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x14\x07\x00\x00\x00\x00\x00\x00\x08\x10\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x08\x10\x01\x00\x00\x00\x00\x00\xd8\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe0\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe8\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xf8\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xb0\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xb8\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xc0\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xc8\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1f\x20\x03\xd5\xfd\x7b\xbf\xa9\xfd\x03\x00\x91\x2a\x00\x00\x94\xfd\x7b\xc1\xa8\xc0\x03\x5f\xd6\x00\x00\x00\x00\x00\x00\x00\x00\xf0\x7b\xbf\xa9\x90\x00\x00\x90\x11\xd6\x47\xf9\x10\xa2\x3e\x91\x20\x02\x1f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x90\x00\x00\x90\x11\xda\x47\xf9\x10\xc2\x3e\x91\x20\x02\x1f\xd6\x90\x00\x00\x90\x11\xde\x47\xf9\x10\xe2\x3e\x91\x20\x02\x1f\xd6\x90\x00\x00\x90\x11\xe2\x47\xf9\x10\x02\x3f\x91\x20\x02\x1f\xd6\x90\x00\x00\x90\x11\xe6\x47\xf9\x10\x22\x3f\x91\x20\x02\x1f\xd6\x1f\x20\x03\xd5\x1d\x00\x80\xd2\x1e\x00\x80\xd2\xe5\x03\x00\xaa\xe1\x03\x40\xf9\xe2\x23\x00\x91\xe6\x03\x00\x91\x80\x00\x00\x90\x00\xf8\x47\xf9\x03\x00\x80\xd2\x04\x00\x80\xd2\xe5\xff\xff\x97\xf0\xff\xff\x97\x80\x00\x00\x90\x00\xf4\x47\xf9\x40\x00\x00\xb4\xe8\xff\xff\x17\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x80\x00\x00\xb0\x00\xa0\x00\x91\x81\x00\x00\xb0\x21\xa0\x00\x91\x3f\x00\x00\xeb\xc0\x00\x00\x54\x81\x00\x00\x90\x21\xec\x47\xf9\x61\x00\x00\xb4\xf0\x03\x01\xaa\x00\x02\x1f\xd6\xc0\x03\x5f\xd6\x80\x00\x00\xb0\x00\xa0\x00\x91\x81\x00\x00\xb0\x21\xa0\x00\x91\x21\x00\x00\xcb\x22\xfc\x7f\xd3\x41\x0c\x81\x8b\x21\xfc\x41\x93\xc1\x00\x00\xb4\x82\x00\x00\x90\x42\xfc\x47\xf9\x62\x00\x00\xb4\xf0\x03\x02\xaa\x00\x02\x1f\xd6\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\xfd\x7b\xbe\xa9\xfd\x03\x00\x91\xf3\x0b\x00\xf9\x93\x00\x00\xb0\x60\xa2\x40\x39\x40\x01\x00\x35\x80\x00\x00\x90\x00\xf0\x47\xf9\x80\x00\x00\xb4\x80\x00\x00\xb0\x00\x04\x40\xf9\xb9\xff\xff\x97\xd8\xff\xff\x97\x20\x00\x80\x52\x60\xa2\x00\x39\xf3\x0b\x40\xf9\xfd\x7b\xc2\xa8\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\xdc\xff\xff\x17\x80\x00\x00\xb0\x00\x40\x00\x91\x00\x00\x40\xb9\x01\x04\x00\x11\x80\x00\x00\xb0\x00\x40\x00\x91\x01\x00\x00\xb9\x80\x00\x00\xb0\x00\x60\x00\x91\x00\x00\x40\xf9\x01\x04\x00\xd1\x80\x00\x00\xb0\x00\x60\x00\x91\x01\x00\x00\xf9\x80\x00\x00\xb0\x00\x80\x00\x91\x00\x00\x40\xb9\x01\x0c\x00\x11\x80\x00\x00\xb0\x00\x80\x00\x91\x01\x04\x00\xb9\x80\x00\x00\xb0\x00\x50\x00\x91\x00\x00\x40\x39\x00\x04\x00\x11\x01\x1c\x00\x12\x80\x00\x00\xb0\x00\x50\x00\x91\x01\x00\x00\x39\x00\x00\x80\x52\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\xfd\x7b\xbf\xa9\xfd\x03\x00\x91\xfd\x7b\xc1\xa8\xc0\x03\x5f\xd6\x01\x00\x02\x00\x01\x1b\x03\x3b\x3c\x00\x00\x00\x06\x00\x00\x00\x58\xfe\xff\xff\x54\x00\x00\x00\xa8\xfe\xff\xff\x68\x00\x00\x00\xd8\xfe\xff\xff\x7c\x00\x00\x00\x18\xff\xff\xff\x90\x00\x00\x00\x68\xff\xff\xff\xb4\x00\x00\x00\x6c\xff\xff\xff\xc8\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x01\x7a\x52\x00\x04\x78\x1e\x01\x1b\x0c\x1f\x00\x10\x00\x00\x00\x18\x00\x00\x00\xfc\xfd\xff\xff\x34\x00\x00\x00\x00\x41\x07\x1e\x10\x00\x00\x00\x2c\x00\x00\x00\x38\xfe\xff\xff\x30\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x40\x00\x00\x00\x54\xfe\xff\xff\x3c\x00\x00\x00\x00\x00\x00\x00\x20\x00\x00\x00\x54\x00\x00\x00\x80\xfe\xff\xff\x48\x00\x00\x00\x00\x41\x0e\x20\x9d\x04\x9e\x03\x42\x93\x02\x4e\xde\xdd\xd3\x0e\x00\x00\x00\x00\x10\x00\x00\x00\x78\x00\x00\x00\xac\xfe\xff\xff\x04\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x8c\x00\x00\x00\x9c\xfe\xff\xff\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".comment", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x00\x06\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x08\x1c\x00"), -Section(".interp", 0x238, "\x2f\x6c\x69\x62\x2f\x6c\x64\x2d\x6c\x69\x6e\x75\x78\x2d\x61\x61\x72\x63\x68\x36\x34\x2e\x73\x6f\x2e\x31\x00"), -Section(".note.gnu.build-id", 0x254, "\x04\x00\x00\x00\x14\x00\x00\x00\x03\x00\x00\x00\x47\x4e\x55\x00\x95\x9e\x6f\x00\xfe\x44\x38\x29\xd8\x87\x68\x07\xa8\xdd\x0e\xbb\xbf\x1f\xe3\xdb"), -Section(".note.ABI-tag", 0x278, "\x04\x00\x00\x00\x10\x00\x00\x00\x01\x00\x00\x00\x47\x4e\x55\x00\x00\x00\x00\x00\x03\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00"), -Section(".gnu.hash", 0x298, "\x01\x00\x00\x00\x01\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".dynsym", 0x2B8, "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x0b\x00\x80\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x16\x00\x00\x10\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x48\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x22\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x22\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x73\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".dynstr", 0x390, "\x00\x5f\x5f\x63\x78\x61\x5f\x66\x69\x6e\x61\x6c\x69\x7a\x65\x00\x5f\x5f\x6c\x69\x62\x63\x5f\x73\x74\x61\x72\x74\x5f\x6d\x61\x69\x6e\x00\x61\x62\x6f\x72\x74\x00\x6c\x69\x62\x63\x2e\x73\x6f\x2e\x36\x00\x47\x4c\x49\x42\x43\x5f\x32\x2e\x31\x37\x00\x47\x4c\x49\x42\x43\x5f\x32\x2e\x33\x34\x00\x5f\x49\x54\x4d\x5f\x64\x65\x72\x65\x67\x69\x73\x74\x65\x72\x54\x4d\x43\x6c\x6f\x6e\x65\x54\x61\x62\x6c\x65\x00\x5f\x5f\x67\x6d\x6f\x6e\x5f\x73\x74\x61\x72\x74\x5f\x5f\x00\x5f\x49\x54\x4d\x5f\x72\x65\x67\x69\x73\x74\x65\x72\x54\x4d\x43\x6c\x6f\x6e\x65\x54\x61\x62\x6c\x65\x00"), -Section(".gnu.version", 0x41E, "\x00\x00\x00\x00\x00\x00\x02\x00\x01\x00\x03\x00\x01\x00\x03\x00\x01\x00"), -Section(".gnu.version_r", 0x430, "\x01\x00\x02\x00\x28\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x97\x91\x96\x06\x00\x00\x03\x00\x32\x00\x00\x00\x10\x00\x00\x00\xb4\x91\x96\x06\x00\x00\x02\x00\x3d\x00\x00\x00\x00\x00\x00\x00"), -Section(".rela.dyn", 0x460, "\x98\x0d\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x10\x07\x00\x00\x00\x00\x00\x00\xa0\x0d\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\xc0\x06\x00\x00\x00\x00\x00\x00\xf0\x0f\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x14\x07\x00\x00\x00\x00\x00\x00\x08\x10\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x08\x10\x01\x00\x00\x00\x00\x00\xd8\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe0\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe8\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xf8\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".rela.plt", 0x520, "\xb0\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xb8\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xc0\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xc8\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".init", 0x580, "\x1f\x20\x03\xd5\xfd\x7b\xbf\xa9\xfd\x03\x00\x91\x2a\x00\x00\x94\xfd\x7b\xc1\xa8\xc0\x03\x5f\xd6"), -Section(".plt", 0x5A0, "\xf0\x7b\xbf\xa9\x90\x00\x00\x90\x11\xd6\x47\xf9\x10\xa2\x3e\x91\x20\x02\x1f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x90\x00\x00\x90\x11\xda\x47\xf9\x10\xc2\x3e\x91\x20\x02\x1f\xd6\x90\x00\x00\x90\x11\xde\x47\xf9\x10\xe2\x3e\x91\x20\x02\x1f\xd6\x90\x00\x00\x90\x11\xe2\x47\xf9\x10\x02\x3f\x91\x20\x02\x1f\xd6\x90\x00\x00\x90\x11\xe6\x47\xf9\x10\x22\x3f\x91\x20\x02\x1f\xd6"), -Section(".fini", 0x790, "\x1f\x20\x03\xd5\xfd\x7b\xbf\xa9\xfd\x03\x00\x91\xfd\x7b\xc1\xa8\xc0\x03\x5f\xd6"), -Section(".rodata", 0x7A4, "\x01\x00\x02\x00"), -Section(".eh_frame_hdr", 0x7A8, "\x01\x1b\x03\x3b\x3c\x00\x00\x00\x06\x00\x00\x00\x58\xfe\xff\xff\x54\x00\x00\x00\xa8\xfe\xff\xff\x68\x00\x00\x00\xd8\xfe\xff\xff\x7c\x00\x00\x00\x18\xff\xff\xff\x90\x00\x00\x00\x68\xff\xff\xff\xb4\x00\x00\x00\x6c\xff\xff\xff\xc8\x00\x00\x00"), -Section(".eh_frame", 0x7E8, "\x10\x00\x00\x00\x00\x00\x00\x00\x01\x7a\x52\x00\x04\x78\x1e\x01\x1b\x0c\x1f\x00\x10\x00\x00\x00\x18\x00\x00\x00\xfc\xfd\xff\xff\x34\x00\x00\x00\x00\x41\x07\x1e\x10\x00\x00\x00\x2c\x00\x00\x00\x38\xfe\xff\xff\x30\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x40\x00\x00\x00\x54\xfe\xff\xff\x3c\x00\x00\x00\x00\x00\x00\x00\x20\x00\x00\x00\x54\x00\x00\x00\x80\xfe\xff\xff\x48\x00\x00\x00\x00\x41\x0e\x20\x9d\x04\x9e\x03\x42\x93\x02\x4e\xde\xdd\xd3\x0e\x00\x00\x00\x00\x10\x00\x00\x00\x78\x00\x00\x00\xac\xfe\xff\xff\x04\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x8c\x00\x00\x00\x9c\xfe\xff\xff\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".fini_array", 0x10DA0, "\xc0\x06\x00\x00\x00\x00\x00\x00"), -Section(".dynamic", 0x10DA8, "\x01\x00\x00\x00\x00\x00\x00\x00\x28\x00\x00\x00\x00\x00\x00\x00\x0c\x00\x00\x00\x00\x00\x00\x00\x80\x05\x00\x00\x00\x00\x00\x00\x0d\x00\x00\x00\x00\x00\x00\x00\x90\x07\x00\x00\x00\x00\x00\x00\x19\x00\x00\x00\x00\x00\x00\x00\x98\x0d\x01\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x1a\x00\x00\x00\x00\x00\x00\x00\xa0\x0d\x01\x00\x00\x00\x00\x00\x1c\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\xf5\xfe\xff\x6f\x00\x00\x00\x00\x98\x02\x00\x00\x00\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x90\x03\x00\x00\x00\x00\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\xb8\x02\x00\x00\x00\x00\x00\x00\x0a\x00\x00\x00\x00\x00\x00\x00\x8d\x00\x00\x00\x00\x00\x00\x00\x0b\x00\x00\x00\x00\x00\x00\x00\x18\x00\x00\x00\x00\x00\x00\x00\x15\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x98\x0f\x01\x00\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x60\x00\x00\x00\x00\x00\x00\x00\x14\x00\x00\x00\x00\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x17\x00\x00\x00\x00\x00\x00\x00\x20\x05\x00\x00\x00\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x60\x04\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\xc0\x00\x00\x00\x00\x00\x00\x00\x09\x00\x00\x00\x00\x00\x00\x00\x18\x00\x00\x00\x00\x00\x00\x00\x1e\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\xfb\xff\xff\x6f\x00\x00\x00\x00\x01\x00\x00\x08\x00\x00\x00\x00\xfe\xff\xff\x6f\x00\x00\x00\x00\x30\x04\x00\x00\x00\x00\x00\x00\xff\xff\xff\x6f\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\xf0\xff\xff\x6f\x00\x00\x00\x00\x1e\x04\x00\x00\x00\x00\x00\x00\xf9\xff\xff\x6f\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".got", 0x10F98, "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xa0\x05\x00\x00\x00\x00\x00\x00\xa0\x05\x00\x00\x00\x00\x00\x00\xa0\x05\x00\x00\x00\x00\x00\x00\xa0\x05\x00\x00\x00\x00\x00\x00\xa8\x0d\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x14\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".data", 0x11000, "\x00\x00\x00\x00\x00\x00\x00\x00\x08\x10\x01\x00\x00\x00\x00\x00\x05\x00\x00\x00\x61\x00\x00\x00\xff\xff\xff\xff\x0f\x00\x00\x00\x01\x00\x00\x00\x02\x00\x00\x00"), -Section(".init_array", 0x10D98, "\x10\x07\x00\x00\x00\x00\x00\x00"), -Section(".text", 0x600, "\x1f\x20\x03\xd5\x1d\x00\x80\xd2\x1e\x00\x80\xd2\xe5\x03\x00\xaa\xe1\x03\x40\xf9\xe2\x23\x00\x91\xe6\x03\x00\x91\x80\x00\x00\x90\x00\xf8\x47\xf9\x03\x00\x80\xd2\x04\x00\x80\xd2\xe5\xff\xff\x97\xf0\xff\xff\x97\x80\x00\x00\x90\x00\xf4\x47\xf9\x40\x00\x00\xb4\xe8\xff\xff\x17\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x80\x00\x00\xb0\x00\xa0\x00\x91\x81\x00\x00\xb0\x21\xa0\x00\x91\x3f\x00\x00\xeb\xc0\x00\x00\x54\x81\x00\x00\x90\x21\xec\x47\xf9\x61\x00\x00\xb4\xf0\x03\x01\xaa\x00\x02\x1f\xd6\xc0\x03\x5f\xd6\x80\x00\x00\xb0\x00\xa0\x00\x91\x81\x00\x00\xb0\x21\xa0\x00\x91\x21\x00\x00\xcb\x22\xfc\x7f\xd3\x41\x0c\x81\x8b\x21\xfc\x41\x93\xc1\x00\x00\xb4\x82\x00\x00\x90\x42\xfc\x47\xf9\x62\x00\x00\xb4\xf0\x03\x02\xaa\x00\x02\x1f\xd6\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\xfd\x7b\xbe\xa9\xfd\x03\x00\x91\xf3\x0b\x00\xf9\x93\x00\x00\xb0\x60\xa2\x40\x39\x40\x01\x00\x35\x80\x00\x00\x90\x00\xf0\x47\xf9\x80\x00\x00\xb4\x80\x00\x00\xb0\x00\x04\x40\xf9\xb9\xff\xff\x97\xd8\xff\xff\x97\x20\x00\x80\x52\x60\xa2\x00\x39\xf3\x0b\x40\xf9\xfd\x7b\xc2\xa8\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\xdc\xff\xff\x17\x80\x00\x00\xb0\x00\x40\x00\x91\x00\x00\x40\xb9\x01\x04\x00\x11\x80\x00\x00\xb0\x00\x40\x00\x91\x01\x00\x00\xb9\x80\x00\x00\xb0\x00\x60\x00\x91\x00\x00\x40\xf9\x01\x04\x00\xd1\x80\x00\x00\xb0\x00\x60\x00\x91\x01\x00\x00\xf9\x80\x00\x00\xb0\x00\x80\x00\x91\x00\x00\x40\xb9\x01\x0c\x00\x11\x80\x00\x00\xb0\x00\x80\x00\x91\x01\x04\x00\xb9\x80\x00\x00\xb0\x00\x50\x00\x91\x00\x00\x40\x39\x00\x04\x00\x11\x01\x1c\x00\x12\x80\x00\x00\xb0\x00\x50\x00\x91\x01\x00\x00\x39\x00\x00\x80\x52\xc0\x03\x5f\xd6")]), -Memmap([Annotation(Region(0x0,0x887), Attr("segment",".symtab 0 2184")), -Annotation(Region(0x600,0x633), Attr("symbol","\"_start\"")), -Annotation(Region(0x0,0xF9), Attr("section","\".shstrtab\"")), -Annotation(Region(0x0,0x227), Attr("section","\".strtab\"")), -Annotation(Region(0x0,0x887), Attr("section","\".symtab\"")), -Annotation(Region(0x0,0x887), Attr("section","\"02\"")), -Annotation(Region(0x0,0x2A), Attr("section","\".comment\"")), -Annotation(Region(0x238,0x252), Attr("section","\".interp\"")), -Annotation(Region(0x254,0x277), Attr("section","\".note.gnu.build-id\"")), -Annotation(Region(0x278,0x297), Attr("section","\".note.ABI-tag\"")), -Annotation(Region(0x298,0x2B3), Attr("section","\".gnu.hash\"")), -Annotation(Region(0x2B8,0x38F), Attr("section","\".dynsym\"")), -Annotation(Region(0x390,0x41C), Attr("section","\".dynstr\"")), -Annotation(Region(0x41E,0x42F), Attr("section","\".gnu.version\"")), -Annotation(Region(0x430,0x45F), Attr("section","\".gnu.version_r\"")), -Annotation(Region(0x460,0x51F), Attr("section","\".rela.dyn\"")), -Annotation(Region(0x520,0x57F), Attr("section","\".rela.plt\"")), -Annotation(Region(0x580,0x597), Attr("section","\".init\"")), -Annotation(Region(0x5A0,0x5FF), Attr("section","\".plt\"")), -Annotation(Region(0x580,0x597), Attr("code-region","()")), -Annotation(Region(0x5A0,0x5FF), Attr("code-region","()")), -Annotation(Region(0x600,0x633), Attr("symbol-info","_start 0x600 52")), -Annotation(Region(0x634,0x647), Attr("symbol","\"call_weak_fn\"")), -Annotation(Region(0x634,0x647), Attr("symbol-info","call_weak_fn 0x634 20")), -Annotation(Region(0x714,0x78F), Attr("symbol","\"main\"")), -Annotation(Region(0x714,0x78F), Attr("symbol-info","main 0x714 124")), -Annotation(Region(0x790,0x7A3), Attr("section","\".fini\"")), -Annotation(Region(0x7A4,0x7A7), Attr("section","\".rodata\"")), -Annotation(Region(0x7A8,0x7E3), Attr("section","\".eh_frame_hdr\"")), -Annotation(Region(0x7E8,0x887), Attr("section","\".eh_frame\"")), -Annotation(Region(0x10D98,0x11027), Attr("segment","03 0x10D98 664")), -Annotation(Region(0x10DA0,0x10DA7), Attr("section","\".fini_array\"")), -Annotation(Region(0x10DA8,0x10F97), Attr("section","\".dynamic\"")), -Annotation(Region(0x10F98,0x10FFF), Attr("section","\".got\"")), -Annotation(Region(0x11000,0x11027), Attr("section","\".data\"")), -Annotation(Region(0x10D98,0x10D9F), Attr("section","\".init_array\"")), -Annotation(Region(0x600,0x78F), Attr("section","\".text\"")), -Annotation(Region(0x600,0x78F), Attr("code-region","()")), -Annotation(Region(0x790,0x7A3), Attr("code-region","()"))]), -Program(Tid(1_733, "%000006c5"), Attrs([]), - Subs([Sub(Tid(1_683, "@__cxa_finalize"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x5D0"), -Attr("stub","()")]), "__cxa_finalize", Args([Arg(Tid(1_734, "%000006c6"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("__cxa_finalize_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(1_049, "@__cxa_finalize"), - Attrs([Attr("address","0x5D0")]), Phis([]), -Defs([Def(Tid(1_297, "%00000511"), Attrs([Attr("address","0x5D0"), -Attr("insn","adrp x16, #65536")]), Var("R16",Imm(64)), Int(65536,64)), -Def(Tid(1_304, "%00000518"), Attrs([Attr("address","0x5D4"), -Attr("insn","ldr x17, [x16, #0xfb8]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(4024,64)),LittleEndian(),64)), -Def(Tid(1_310, "%0000051e"), Attrs([Attr("address","0x5D8"), -Attr("insn","add x16, x16, #0xfb8")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(4024,64)))]), Jmps([Call(Tid(1_315, "%00000523"), - Attrs([Attr("address","0x5DC"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), -Sub(Tid(1_684, "@__do_global_dtors_aux"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x6C0")]), - "__do_global_dtors_aux", Args([Arg(Tid(1_735, "%000006c7"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("__do_global_dtors_aux_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(714, "@__do_global_dtors_aux"), - Attrs([Attr("address","0x6C0")]), Phis([]), Defs([Def(Tid(718, "%000002ce"), - Attrs([Attr("address","0x6C0"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("#3",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(18446744073709551584,64))), -Def(Tid(724, "%000002d4"), Attrs([Attr("address","0x6C0"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("#3",Imm(64)),Var("R29",Imm(64)),LittleEndian(),64)), -Def(Tid(730, "%000002da"), Attrs([Attr("address","0x6C0"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("#3",Imm(64)),Int(8,64)),Var("R30",Imm(64)),LittleEndian(),64)), -Def(Tid(734, "%000002de"), Attrs([Attr("address","0x6C0"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("R31",Imm(64)), -Var("#3",Imm(64))), Def(Tid(740, "%000002e4"), - Attrs([Attr("address","0x6C4"), Attr("insn","mov x29, sp")]), - Var("R29",Imm(64)), Var("R31",Imm(64))), Def(Tid(748, "%000002ec"), - Attrs([Attr("address","0x6C8"), Attr("insn","str x19, [sp, #0x10]")]), - Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(16,64)),Var("R19",Imm(64)),LittleEndian(),64)), -Def(Tid(753, "%000002f1"), Attrs([Attr("address","0x6CC"), -Attr("insn","adrp x19, #69632")]), Var("R19",Imm(64)), Int(69632,64)), -Def(Tid(760, "%000002f8"), Attrs([Attr("address","0x6D0"), -Attr("insn","ldrb w0, [x19, #0x28]")]), Var("R0",Imm(64)), -UNSIGNED(64,Load(Var("mem",Mem(64,8)),PLUS(Var("R19",Imm(64)),Int(40,64)),LittleEndian(),8)))]), -Jmps([Goto(Tid(767, "%000002ff"), Attrs([Attr("address","0x6D4"), -Attr("insn","cbnz w0, #0x28")]), - NEQ(Extract(31,0,Var("R0",Imm(64))),Int(0,32)), -Direct(Tid(765, "%000002fd"))), Goto(Tid(1_723, "%000006bb"), Attrs([]), - Int(1,1), Direct(Tid(994, "%000003e2")))])), Blk(Tid(994, "%000003e2"), - Attrs([Attr("address","0x6D8")]), Phis([]), Defs([Def(Tid(997, "%000003e5"), - Attrs([Attr("address","0x6D8"), Attr("insn","adrp x0, #65536")]), - Var("R0",Imm(64)), Int(65536,64)), Def(Tid(1_004, "%000003ec"), - Attrs([Attr("address","0x6DC"), Attr("insn","ldr x0, [x0, #0xfe0]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(4064,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(1_010, "%000003f2"), Attrs([Attr("address","0x6E0"), -Attr("insn","cbz x0, #0x10")]), EQ(Var("R0",Imm(64)),Int(0,64)), -Direct(Tid(1_008, "%000003f0"))), Goto(Tid(1_724, "%000006bc"), Attrs([]), - Int(1,1), Direct(Tid(1_033, "%00000409")))])), Blk(Tid(1_033, "%00000409"), - Attrs([Attr("address","0x6E4")]), Phis([]), -Defs([Def(Tid(1_036, "%0000040c"), Attrs([Attr("address","0x6E4"), -Attr("insn","adrp x0, #69632")]), Var("R0",Imm(64)), Int(69632,64)), -Def(Tid(1_043, "%00000413"), Attrs([Attr("address","0x6E8"), -Attr("insn","ldr x0, [x0, #0x8]")]), Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(1_048, "%00000418"), Attrs([Attr("address","0x6EC"), -Attr("insn","bl #-0x11c")]), Var("R30",Imm(64)), Int(1776,64))]), -Jmps([Call(Tid(1_051, "%0000041b"), Attrs([Attr("address","0x6EC"), -Attr("insn","bl #-0x11c")]), Int(1,1), -(Direct(Tid(1_683, "@__cxa_finalize")),Direct(Tid(1_008, "%000003f0"))))])), -Blk(Tid(1_008, "%000003f0"), Attrs([Attr("address","0x6F0")]), Phis([]), -Defs([Def(Tid(1_016, "%000003f8"), Attrs([Attr("address","0x6F0"), -Attr("insn","bl #-0xa0")]), Var("R30",Imm(64)), Int(1780,64))]), -Jmps([Call(Tid(1_018, "%000003fa"), Attrs([Attr("address","0x6F0"), -Attr("insn","bl #-0xa0")]), Int(1,1), -(Direct(Tid(1_697, "@deregister_tm_clones")),Direct(Tid(1_020, "%000003fc"))))])), -Blk(Tid(1_020, "%000003fc"), Attrs([Attr("address","0x6F4")]), Phis([]), -Defs([Def(Tid(1_023, "%000003ff"), Attrs([Attr("address","0x6F4"), -Attr("insn","mov w0, #0x1")]), Var("R0",Imm(64)), Int(1,64)), -Def(Tid(1_031, "%00000407"), Attrs([Attr("address","0x6F8"), -Attr("insn","strb w0, [x19, #0x28]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R19",Imm(64)),Int(40,64)),Extract(7,0,Var("R0",Imm(64))),LittleEndian(),8))]), -Jmps([Goto(Tid(1_725, "%000006bd"), Attrs([]), Int(1,1), -Direct(Tid(765, "%000002fd")))])), Blk(Tid(765, "%000002fd"), - Attrs([Attr("address","0x6FC")]), Phis([]), Defs([Def(Tid(775, "%00000307"), - Attrs([Attr("address","0x6FC"), Attr("insn","ldr x19, [sp, #0x10]")]), - Var("R19",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(16,64)),LittleEndian(),64)), -Def(Tid(782, "%0000030e"), Attrs([Attr("address","0x700"), -Attr("insn","ldp x29, x30, [sp], #0x20")]), Var("R29",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(787, "%00000313"), Attrs([Attr("address","0x700"), -Attr("insn","ldp x29, x30, [sp], #0x20")]), Var("R30",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(791, "%00000317"), Attrs([Attr("address","0x700"), -Attr("insn","ldp x29, x30, [sp], #0x20")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(32,64)))]), Jmps([Call(Tid(796, "%0000031c"), - Attrs([Attr("address","0x704"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), Sub(Tid(1_688, "@__libc_start_main"), - Attrs([Attr("c.proto","signed (*)(signed (*)(signed , char** , char** );* main, signed , char** , \nvoid* auxv)"), -Attr("address","0x5C0"), Attr("stub","()")]), "__libc_start_main", - Args([Arg(Tid(1_736, "%000006c8"), - Attrs([Attr("c.layout","**[ : 64]"), -Attr("c.data","Top:u64 ptr ptr"), -Attr("c.type","signed (*)(signed , char** , char** );*")]), - Var("__libc_start_main_main",Imm(64)), Var("R0",Imm(64)), In()), -Arg(Tid(1_737, "%000006c9"), Attrs([Attr("c.layout","[signed : 32]"), -Attr("c.data","Top:u32"), Attr("c.type","signed")]), - Var("__libc_start_main_arg2",Imm(32)), LOW(32,Var("R1",Imm(64))), In()), -Arg(Tid(1_738, "%000006ca"), Attrs([Attr("c.layout","**[char : 8]"), -Attr("c.data","Top:u8 ptr ptr"), Attr("c.type","char**")]), - Var("__libc_start_main_arg3",Imm(64)), Var("R2",Imm(64)), Both()), -Arg(Tid(1_739, "%000006cb"), Attrs([Attr("c.layout","*[ : 8]"), -Attr("c.data","{} ptr"), Attr("c.type","void*")]), - Var("__libc_start_main_auxv",Imm(64)), Var("R3",Imm(64)), Both()), -Arg(Tid(1_740, "%000006cc"), Attrs([Attr("c.layout","[signed : 32]"), -Attr("c.data","Top:u32"), Attr("c.type","signed")]), - Var("__libc_start_main_result",Imm(32)), LOW(32,Var("R0",Imm(64))), -Out())]), Blks([Blk(Tid(547, "@__libc_start_main"), - Attrs([Attr("address","0x5C0")]), Phis([]), -Defs([Def(Tid(1_275, "%000004fb"), Attrs([Attr("address","0x5C0"), -Attr("insn","adrp x16, #65536")]), Var("R16",Imm(64)), Int(65536,64)), -Def(Tid(1_282, "%00000502"), Attrs([Attr("address","0x5C4"), -Attr("insn","ldr x17, [x16, #0xfb0]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(4016,64)),LittleEndian(),64)), -Def(Tid(1_288, "%00000508"), Attrs([Attr("address","0x5C8"), -Attr("insn","add x16, x16, #0xfb0")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(4016,64)))]), Jmps([Call(Tid(1_293, "%0000050d"), - Attrs([Attr("address","0x5CC"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), Sub(Tid(1_689, "@_fini"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x790")]), - "_fini", Args([Arg(Tid(1_741, "%000006cd"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("_fini_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(31, "@_fini"), - Attrs([Attr("address","0x790")]), Phis([]), Defs([Def(Tid(37, "%00000025"), - Attrs([Attr("address","0x794"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("#0",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(18446744073709551600,64))), -Def(Tid(43, "%0000002b"), Attrs([Attr("address","0x794"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("#0",Imm(64)),Var("R29",Imm(64)),LittleEndian(),64)), -Def(Tid(49, "%00000031"), Attrs([Attr("address","0x794"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("#0",Imm(64)),Int(8,64)),Var("R30",Imm(64)),LittleEndian(),64)), -Def(Tid(53, "%00000035"), Attrs([Attr("address","0x794"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("R31",Imm(64)), -Var("#0",Imm(64))), Def(Tid(59, "%0000003b"), Attrs([Attr("address","0x798"), -Attr("insn","mov x29, sp")]), Var("R29",Imm(64)), Var("R31",Imm(64))), -Def(Tid(66, "%00000042"), Attrs([Attr("address","0x79C"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R29",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(71, "%00000047"), Attrs([Attr("address","0x79C"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R30",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(75, "%0000004b"), Attrs([Attr("address","0x79C"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(16,64)))]), Jmps([Call(Tid(80, "%00000050"), - Attrs([Attr("address","0x7A0"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), Sub(Tid(1_690, "@_init"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x580")]), - "_init", Args([Arg(Tid(1_742, "%000006ce"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("_init_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(1_494, "@_init"), - Attrs([Attr("address","0x580")]), Phis([]), -Defs([Def(Tid(1_500, "%000005dc"), Attrs([Attr("address","0x584"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("#5",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(18446744073709551600,64))), -Def(Tid(1_506, "%000005e2"), Attrs([Attr("address","0x584"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("#5",Imm(64)),Var("R29",Imm(64)),LittleEndian(),64)), -Def(Tid(1_512, "%000005e8"), Attrs([Attr("address","0x584"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("#5",Imm(64)),Int(8,64)),Var("R30",Imm(64)),LittleEndian(),64)), -Def(Tid(1_516, "%000005ec"), Attrs([Attr("address","0x584"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("R31",Imm(64)), -Var("#5",Imm(64))), Def(Tid(1_522, "%000005f2"), - Attrs([Attr("address","0x588"), Attr("insn","mov x29, sp")]), - Var("R29",Imm(64)), Var("R31",Imm(64))), Def(Tid(1_527, "%000005f7"), - Attrs([Attr("address","0x58C"), Attr("insn","bl #0xa8")]), - Var("R30",Imm(64)), Int(1424,64))]), Jmps([Call(Tid(1_529, "%000005f9"), - Attrs([Attr("address","0x58C"), Attr("insn","bl #0xa8")]), Int(1,1), -(Direct(Tid(1_695, "@call_weak_fn")),Direct(Tid(1_531, "%000005fb"))))])), -Blk(Tid(1_531, "%000005fb"), Attrs([Attr("address","0x590")]), Phis([]), -Defs([Def(Tid(1_536, "%00000600"), Attrs([Attr("address","0x590"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R29",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(1_541, "%00000605"), Attrs([Attr("address","0x590"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R30",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(1_545, "%00000609"), Attrs([Attr("address","0x590"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(16,64)))]), Jmps([Call(Tid(1_550, "%0000060e"), - Attrs([Attr("address","0x594"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), Sub(Tid(1_691, "@_start"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x600"), -Attr("stub","()"), Attr("entry-point","()")]), "_start", - Args([Arg(Tid(1_743, "%000006cf"), Attrs([Attr("c.layout","[signed : 32]"), -Attr("c.data","Top:u32"), Attr("c.type","signed")]), - Var("_start_result",Imm(32)), LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(484, "@_start"), Attrs([Attr("address","0x600")]), Phis([]), -Defs([Def(Tid(489, "%000001e9"), Attrs([Attr("address","0x604"), -Attr("insn","mov x29, #0x0")]), Var("R29",Imm(64)), Int(0,64)), -Def(Tid(494, "%000001ee"), Attrs([Attr("address","0x608"), -Attr("insn","mov x30, #0x0")]), Var("R30",Imm(64)), Int(0,64)), -Def(Tid(500, "%000001f4"), Attrs([Attr("address","0x60C"), -Attr("insn","mov x5, x0")]), Var("R5",Imm(64)), Var("R0",Imm(64))), -Def(Tid(507, "%000001fb"), Attrs([Attr("address","0x610"), -Attr("insn","ldr x1, [sp]")]), Var("R1",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(513, "%00000201"), Attrs([Attr("address","0x614"), -Attr("insn","add x2, sp, #0x8")]), Var("R2",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(8,64))), Def(Tid(519, "%00000207"), - Attrs([Attr("address","0x618"), Attr("insn","mov x6, sp")]), - Var("R6",Imm(64)), Var("R31",Imm(64))), Def(Tid(524, "%0000020c"), - Attrs([Attr("address","0x61C"), Attr("insn","adrp x0, #65536")]), - Var("R0",Imm(64)), Int(65536,64)), Def(Tid(531, "%00000213"), - Attrs([Attr("address","0x620"), Attr("insn","ldr x0, [x0, #0xff0]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(4080,64)),LittleEndian(),64)), -Def(Tid(536, "%00000218"), Attrs([Attr("address","0x624"), -Attr("insn","mov x3, #0x0")]), Var("R3",Imm(64)), Int(0,64)), -Def(Tid(541, "%0000021d"), Attrs([Attr("address","0x628"), -Attr("insn","mov x4, #0x0")]), Var("R4",Imm(64)), Int(0,64)), -Def(Tid(546, "%00000222"), Attrs([Attr("address","0x62C"), -Attr("insn","bl #-0x6c")]), Var("R30",Imm(64)), Int(1584,64))]), -Jmps([Call(Tid(549, "%00000225"), Attrs([Attr("address","0x62C"), -Attr("insn","bl #-0x6c")]), Int(1,1), -(Direct(Tid(1_688, "@__libc_start_main")),Direct(Tid(551, "%00000227"))))])), -Blk(Tid(551, "%00000227"), Attrs([Attr("address","0x630")]), Phis([]), -Defs([Def(Tid(554, "%0000022a"), Attrs([Attr("address","0x630"), -Attr("insn","bl #-0x40")]), Var("R30",Imm(64)), Int(1588,64))]), -Jmps([Call(Tid(557, "%0000022d"), Attrs([Attr("address","0x630"), -Attr("insn","bl #-0x40")]), Int(1,1), -(Direct(Tid(1_694, "@abort")),Direct(Tid(1_726, "%000006be"))))])), -Blk(Tid(1_726, "%000006be"), Attrs([]), Phis([]), Defs([]), -Jmps([Call(Tid(1_727, "%000006bf"), Attrs([]), Int(1,1), -(Direct(Tid(1_695, "@call_weak_fn")),))]))])), Sub(Tid(1_694, "@abort"), - Attrs([Attr("noreturn","()"), Attr("c.proto","void (*)(void)"), -Attr("address","0x5F0"), Attr("stub","()")]), "abort", Args([]), -Blks([Blk(Tid(555, "@abort"), Attrs([Attr("address","0x5F0")]), Phis([]), -Defs([Def(Tid(1_341, "%0000053d"), Attrs([Attr("address","0x5F0"), -Attr("insn","adrp x16, #65536")]), Var("R16",Imm(64)), Int(65536,64)), -Def(Tid(1_348, "%00000544"), Attrs([Attr("address","0x5F4"), -Attr("insn","ldr x17, [x16, #0xfc8]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(4040,64)),LittleEndian(),64)), -Def(Tid(1_354, "%0000054a"), Attrs([Attr("address","0x5F8"), -Attr("insn","add x16, x16, #0xfc8")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(4040,64)))]), Jmps([Call(Tid(1_359, "%0000054f"), - Attrs([Attr("address","0x5FC"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), Sub(Tid(1_695, "@call_weak_fn"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x634")]), - "call_weak_fn", Args([Arg(Tid(1_744, "%000006d0"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("call_weak_fn_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(559, "@call_weak_fn"), - Attrs([Attr("address","0x634")]), Phis([]), Defs([Def(Tid(562, "%00000232"), - Attrs([Attr("address","0x634"), Attr("insn","adrp x0, #65536")]), - Var("R0",Imm(64)), Int(65536,64)), Def(Tid(569, "%00000239"), - Attrs([Attr("address","0x638"), Attr("insn","ldr x0, [x0, #0xfe8]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(4072,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(575, "%0000023f"), Attrs([Attr("address","0x63C"), -Attr("insn","cbz x0, #0x8")]), EQ(Var("R0",Imm(64)),Int(0,64)), -Direct(Tid(573, "%0000023d"))), Goto(Tid(1_728, "%000006c0"), Attrs([]), - Int(1,1), Direct(Tid(1_113, "%00000459")))])), Blk(Tid(573, "%0000023d"), - Attrs([Attr("address","0x644")]), Phis([]), Defs([]), -Jmps([Call(Tid(581, "%00000245"), Attrs([Attr("address","0x644"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))])), -Blk(Tid(1_113, "%00000459"), Attrs([Attr("address","0x640")]), Phis([]), -Defs([]), Jmps([Goto(Tid(1_116, "%0000045c"), Attrs([Attr("address","0x640"), -Attr("insn","b #-0x60")]), Int(1,1), -Direct(Tid(1_114, "@__gmon_start__")))])), Blk(Tid(1_114, "@__gmon_start__"), - Attrs([Attr("address","0x5E0")]), Phis([]), -Defs([Def(Tid(1_319, "%00000527"), Attrs([Attr("address","0x5E0"), -Attr("insn","adrp x16, #65536")]), Var("R16",Imm(64)), Int(65536,64)), -Def(Tid(1_326, "%0000052e"), Attrs([Attr("address","0x5E4"), -Attr("insn","ldr x17, [x16, #0xfc0]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(4032,64)),LittleEndian(),64)), -Def(Tid(1_332, "%00000534"), Attrs([Attr("address","0x5E8"), -Attr("insn","add x16, x16, #0xfc0")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(4032,64)))]), Jmps([Call(Tid(1_337, "%00000539"), - Attrs([Attr("address","0x5EC"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), -Sub(Tid(1_697, "@deregister_tm_clones"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x650")]), - "deregister_tm_clones", Args([Arg(Tid(1_745, "%000006d1"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("deregister_tm_clones_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(587, "@deregister_tm_clones"), - Attrs([Attr("address","0x650")]), Phis([]), Defs([Def(Tid(590, "%0000024e"), - Attrs([Attr("address","0x650"), Attr("insn","adrp x0, #69632")]), - Var("R0",Imm(64)), Int(69632,64)), Def(Tid(596, "%00000254"), - Attrs([Attr("address","0x654"), Attr("insn","add x0, x0, #0x28")]), - Var("R0",Imm(64)), PLUS(Var("R0",Imm(64)),Int(40,64))), -Def(Tid(601, "%00000259"), Attrs([Attr("address","0x658"), -Attr("insn","adrp x1, #69632")]), Var("R1",Imm(64)), Int(69632,64)), -Def(Tid(607, "%0000025f"), Attrs([Attr("address","0x65C"), -Attr("insn","add x1, x1, #0x28")]), Var("R1",Imm(64)), -PLUS(Var("R1",Imm(64)),Int(40,64))), Def(Tid(613, "%00000265"), - Attrs([Attr("address","0x660"), Attr("insn","cmp x1, x0")]), - Var("#1",Imm(64)), NOT(Var("R0",Imm(64)))), Def(Tid(618, "%0000026a"), - Attrs([Attr("address","0x660"), Attr("insn","cmp x1, x0")]), - Var("#2",Imm(64)), PLUS(Var("R1",Imm(64)),NOT(Var("R0",Imm(64))))), -Def(Tid(624, "%00000270"), Attrs([Attr("address","0x660"), -Attr("insn","cmp x1, x0")]), Var("VF",Imm(1)), -NEQ(SIGNED(65,PLUS(Var("#2",Imm(64)),Int(1,64))),PLUS(PLUS(SIGNED(65,Var("R1",Imm(64))),SIGNED(65,Var("#1",Imm(64)))),Int(1,65)))), -Def(Tid(630, "%00000276"), Attrs([Attr("address","0x660"), -Attr("insn","cmp x1, x0")]), Var("CF",Imm(1)), -NEQ(UNSIGNED(65,PLUS(Var("#2",Imm(64)),Int(1,64))),PLUS(PLUS(UNSIGNED(65,Var("R1",Imm(64))),UNSIGNED(65,Var("#1",Imm(64)))),Int(1,65)))), -Def(Tid(634, "%0000027a"), Attrs([Attr("address","0x660"), -Attr("insn","cmp x1, x0")]), Var("ZF",Imm(1)), -EQ(PLUS(Var("#2",Imm(64)),Int(1,64)),Int(0,64))), Def(Tid(638, "%0000027e"), - Attrs([Attr("address","0x660"), Attr("insn","cmp x1, x0")]), - Var("NF",Imm(1)), Extract(63,63,PLUS(Var("#2",Imm(64)),Int(1,64))))]), -Jmps([Goto(Tid(644, "%00000284"), Attrs([Attr("address","0x664"), -Attr("insn","b.eq #0x18")]), EQ(Var("ZF",Imm(1)),Int(1,1)), -Direct(Tid(642, "%00000282"))), Goto(Tid(1_729, "%000006c1"), Attrs([]), - Int(1,1), Direct(Tid(1_083, "%0000043b")))])), Blk(Tid(1_083, "%0000043b"), - Attrs([Attr("address","0x668")]), Phis([]), -Defs([Def(Tid(1_086, "%0000043e"), Attrs([Attr("address","0x668"), -Attr("insn","adrp x1, #65536")]), Var("R1",Imm(64)), Int(65536,64)), -Def(Tid(1_093, "%00000445"), Attrs([Attr("address","0x66C"), -Attr("insn","ldr x1, [x1, #0xfd8]")]), Var("R1",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R1",Imm(64)),Int(4056,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(1_098, "%0000044a"), Attrs([Attr("address","0x670"), -Attr("insn","cbz x1, #0xc")]), EQ(Var("R1",Imm(64)),Int(0,64)), -Direct(Tid(642, "%00000282"))), Goto(Tid(1_730, "%000006c2"), Attrs([]), - Int(1,1), Direct(Tid(1_102, "%0000044e")))])), Blk(Tid(642, "%00000282"), - Attrs([Attr("address","0x67C")]), Phis([]), Defs([]), -Jmps([Call(Tid(650, "%0000028a"), Attrs([Attr("address","0x67C"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))])), -Blk(Tid(1_102, "%0000044e"), Attrs([Attr("address","0x674")]), Phis([]), -Defs([Def(Tid(1_106, "%00000452"), Attrs([Attr("address","0x674"), -Attr("insn","mov x16, x1")]), Var("R16",Imm(64)), Var("R1",Imm(64)))]), -Jmps([Call(Tid(1_111, "%00000457"), Attrs([Attr("address","0x678"), -Attr("insn","br x16")]), Int(1,1), (Indirect(Var("R16",Imm(64))),))]))])), -Sub(Tid(1_700, "@frame_dummy"), Attrs([Attr("c.proto","signed (*)(void)"), -Attr("address","0x710")]), "frame_dummy", Args([Arg(Tid(1_746, "%000006d2"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("frame_dummy_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(802, "@frame_dummy"), - Attrs([Attr("address","0x710")]), Phis([]), Defs([]), -Jmps([Call(Tid(804, "%00000324"), Attrs([Attr("address","0x710"), -Attr("insn","b #-0x90")]), Int(1,1), -(Direct(Tid(1_702, "@register_tm_clones")),))]))])), Sub(Tid(1_701, "@main"), - Attrs([Attr("c.proto","signed (*)(signed argc, const char** argv)"), -Attr("address","0x714")]), "main", Args([Arg(Tid(1_747, "%000006d3"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("main_argc",Imm(32)), -LOW(32,Var("R0",Imm(64))), In()), Arg(Tid(1_748, "%000006d4"), - Attrs([Attr("c.layout","**[char : 8]"), Attr("c.data","Top:u8 ptr ptr"), -Attr("c.type"," const char**")]), Var("main_argv",Imm(64)), -Var("R1",Imm(64)), Both()), Arg(Tid(1_749, "%000006d5"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("main_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(806, "@main"), - Attrs([Attr("address","0x714")]), Phis([]), Defs([Def(Tid(809, "%00000329"), - Attrs([Attr("address","0x714"), Attr("insn","adrp x0, #69632")]), - Var("R0",Imm(64)), Int(69632,64)), Def(Tid(815, "%0000032f"), - Attrs([Attr("address","0x718"), Attr("insn","add x0, x0, #0x10")]), - Var("R0",Imm(64)), PLUS(Var("R0",Imm(64)),Int(16,64))), -Def(Tid(822, "%00000336"), Attrs([Attr("address","0x71C"), -Attr("insn","ldr w0, [x0]")]), Var("R0",Imm(64)), -UNSIGNED(64,Load(Var("mem",Mem(64,8)),Var("R0",Imm(64)),LittleEndian(),32))), -Def(Tid(828, "%0000033c"), Attrs([Attr("address","0x720"), -Attr("insn","add w1, w0, #0x1")]), Var("R1",Imm(64)), -UNSIGNED(64,PLUS(Extract(31,0,Var("R0",Imm(64))),Int(1,32)))), -Def(Tid(833, "%00000341"), Attrs([Attr("address","0x724"), -Attr("insn","adrp x0, #69632")]), Var("R0",Imm(64)), Int(69632,64)), -Def(Tid(839, "%00000347"), Attrs([Attr("address","0x728"), -Attr("insn","add x0, x0, #0x10")]), Var("R0",Imm(64)), -PLUS(Var("R0",Imm(64)),Int(16,64))), Def(Tid(847, "%0000034f"), - Attrs([Attr("address","0x72C"), Attr("insn","str w1, [x0]")]), - Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("R0",Imm(64)),Extract(31,0,Var("R1",Imm(64))),LittleEndian(),32)), -Def(Tid(852, "%00000354"), Attrs([Attr("address","0x730"), -Attr("insn","adrp x0, #69632")]), Var("R0",Imm(64)), Int(69632,64)), -Def(Tid(858, "%0000035a"), Attrs([Attr("address","0x734"), -Attr("insn","add x0, x0, #0x18")]), Var("R0",Imm(64)), -PLUS(Var("R0",Imm(64)),Int(24,64))), Def(Tid(865, "%00000361"), - Attrs([Attr("address","0x738"), Attr("insn","ldr x0, [x0]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R0",Imm(64)),LittleEndian(),64)), -Def(Tid(871, "%00000367"), Attrs([Attr("address","0x73C"), -Attr("insn","sub x1, x0, #0x1")]), Var("R1",Imm(64)), -PLUS(Var("R0",Imm(64)),Int(18446744073709551615,64))), -Def(Tid(876, "%0000036c"), Attrs([Attr("address","0x740"), -Attr("insn","adrp x0, #69632")]), Var("R0",Imm(64)), Int(69632,64)), -Def(Tid(882, "%00000372"), Attrs([Attr("address","0x744"), -Attr("insn","add x0, x0, #0x18")]), Var("R0",Imm(64)), -PLUS(Var("R0",Imm(64)),Int(24,64))), Def(Tid(890, "%0000037a"), - Attrs([Attr("address","0x748"), Attr("insn","str x1, [x0]")]), - Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("R0",Imm(64)),Var("R1",Imm(64)),LittleEndian(),64)), -Def(Tid(895, "%0000037f"), Attrs([Attr("address","0x74C"), -Attr("insn","adrp x0, #69632")]), Var("R0",Imm(64)), Int(69632,64)), -Def(Tid(901, "%00000385"), Attrs([Attr("address","0x750"), -Attr("insn","add x0, x0, #0x20")]), Var("R0",Imm(64)), -PLUS(Var("R0",Imm(64)),Int(32,64))), Def(Tid(908, "%0000038c"), - Attrs([Attr("address","0x754"), Attr("insn","ldr w0, [x0]")]), - Var("R0",Imm(64)), -UNSIGNED(64,Load(Var("mem",Mem(64,8)),Var("R0",Imm(64)),LittleEndian(),32))), -Def(Tid(914, "%00000392"), Attrs([Attr("address","0x758"), -Attr("insn","add w1, w0, #0x3")]), Var("R1",Imm(64)), -UNSIGNED(64,PLUS(Extract(31,0,Var("R0",Imm(64))),Int(3,32)))), -Def(Tid(919, "%00000397"), Attrs([Attr("address","0x75C"), -Attr("insn","adrp x0, #69632")]), Var("R0",Imm(64)), Int(69632,64)), -Def(Tid(925, "%0000039d"), Attrs([Attr("address","0x760"), -Attr("insn","add x0, x0, #0x20")]), Var("R0",Imm(64)), -PLUS(Var("R0",Imm(64)),Int(32,64))), Def(Tid(933, "%000003a5"), - Attrs([Attr("address","0x764"), Attr("insn","str w1, [x0, #0x4]")]), - Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(4,64)),Extract(31,0,Var("R1",Imm(64))),LittleEndian(),32)), -Def(Tid(938, "%000003aa"), Attrs([Attr("address","0x768"), -Attr("insn","adrp x0, #69632")]), Var("R0",Imm(64)), Int(69632,64)), -Def(Tid(944, "%000003b0"), Attrs([Attr("address","0x76C"), -Attr("insn","add x0, x0, #0x14")]), Var("R0",Imm(64)), -PLUS(Var("R0",Imm(64)),Int(20,64))), Def(Tid(951, "%000003b7"), - Attrs([Attr("address","0x770"), Attr("insn","ldrb w0, [x0]")]), - Var("R0",Imm(64)), -UNSIGNED(64,Load(Var("mem",Mem(64,8)),Var("R0",Imm(64)),LittleEndian(),8))), -Def(Tid(957, "%000003bd"), Attrs([Attr("address","0x774"), -Attr("insn","add w0, w0, #0x1")]), Var("R0",Imm(64)), -UNSIGNED(64,PLUS(Extract(31,0,Var("R0",Imm(64))),Int(1,32)))), -Def(Tid(963, "%000003c3"), Attrs([Attr("address","0x778"), -Attr("insn","and w1, w0, #0xff")]), Var("R1",Imm(64)), -UNSIGNED(64,Concat(Int(0,24),Extract(7,0,Var("R0",Imm(64)))))), -Def(Tid(968, "%000003c8"), Attrs([Attr("address","0x77C"), -Attr("insn","adrp x0, #69632")]), Var("R0",Imm(64)), Int(69632,64)), -Def(Tid(974, "%000003ce"), Attrs([Attr("address","0x780"), -Attr("insn","add x0, x0, #0x14")]), Var("R0",Imm(64)), -PLUS(Var("R0",Imm(64)),Int(20,64))), Def(Tid(982, "%000003d6"), - Attrs([Attr("address","0x784"), Attr("insn","strb w1, [x0]")]), - Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("R0",Imm(64)),Extract(7,0,Var("R1",Imm(64))),LittleEndian(),8)), -Def(Tid(987, "%000003db"), Attrs([Attr("address","0x788"), -Attr("insn","mov w0, #0x0")]), Var("R0",Imm(64)), Int(0,64))]), -Jmps([Call(Tid(992, "%000003e0"), Attrs([Attr("address","0x78C"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))]))])), -Sub(Tid(1_702, "@register_tm_clones"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x680")]), - "register_tm_clones", Args([Arg(Tid(1_750, "%000006d6"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("register_tm_clones_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(652, "@register_tm_clones"), Attrs([Attr("address","0x680")]), - Phis([]), Defs([Def(Tid(655, "%0000028f"), Attrs([Attr("address","0x680"), -Attr("insn","adrp x0, #69632")]), Var("R0",Imm(64)), Int(69632,64)), -Def(Tid(661, "%00000295"), Attrs([Attr("address","0x684"), -Attr("insn","add x0, x0, #0x28")]), Var("R0",Imm(64)), -PLUS(Var("R0",Imm(64)),Int(40,64))), Def(Tid(666, "%0000029a"), - Attrs([Attr("address","0x688"), Attr("insn","adrp x1, #69632")]), - Var("R1",Imm(64)), Int(69632,64)), Def(Tid(672, "%000002a0"), - Attrs([Attr("address","0x68C"), Attr("insn","add x1, x1, #0x28")]), - Var("R1",Imm(64)), PLUS(Var("R1",Imm(64)),Int(40,64))), -Def(Tid(679, "%000002a7"), Attrs([Attr("address","0x690"), -Attr("insn","sub x1, x1, x0")]), Var("R1",Imm(64)), -PLUS(PLUS(Var("R1",Imm(64)),NOT(Var("R0",Imm(64)))),Int(1,64))), -Def(Tid(685, "%000002ad"), Attrs([Attr("address","0x694"), -Attr("insn","lsr x2, x1, #63")]), Var("R2",Imm(64)), -Concat(Int(0,63),Extract(63,63,Var("R1",Imm(64))))), -Def(Tid(692, "%000002b4"), Attrs([Attr("address","0x698"), -Attr("insn","add x1, x2, x1, asr #3")]), Var("R1",Imm(64)), -PLUS(Var("R2",Imm(64)),ARSHIFT(Var("R1",Imm(64)),Int(3,3)))), -Def(Tid(698, "%000002ba"), Attrs([Attr("address","0x69C"), -Attr("insn","asr x1, x1, #1")]), Var("R1",Imm(64)), -SIGNED(64,Extract(63,1,Var("R1",Imm(64)))))]), -Jmps([Goto(Tid(704, "%000002c0"), Attrs([Attr("address","0x6A0"), -Attr("insn","cbz x1, #0x18")]), EQ(Var("R1",Imm(64)),Int(0,64)), -Direct(Tid(702, "%000002be"))), Goto(Tid(1_731, "%000006c3"), Attrs([]), - Int(1,1), Direct(Tid(1_053, "%0000041d")))])), Blk(Tid(1_053, "%0000041d"), - Attrs([Attr("address","0x6A4")]), Phis([]), -Defs([Def(Tid(1_056, "%00000420"), Attrs([Attr("address","0x6A4"), -Attr("insn","adrp x2, #65536")]), Var("R2",Imm(64)), Int(65536,64)), -Def(Tid(1_063, "%00000427"), Attrs([Attr("address","0x6A8"), -Attr("insn","ldr x2, [x2, #0xff8]")]), Var("R2",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R2",Imm(64)),Int(4088,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(1_068, "%0000042c"), Attrs([Attr("address","0x6AC"), -Attr("insn","cbz x2, #0xc")]), EQ(Var("R2",Imm(64)),Int(0,64)), -Direct(Tid(702, "%000002be"))), Goto(Tid(1_732, "%000006c4"), Attrs([]), - Int(1,1), Direct(Tid(1_072, "%00000430")))])), Blk(Tid(702, "%000002be"), - Attrs([Attr("address","0x6B8")]), Phis([]), Defs([]), -Jmps([Call(Tid(710, "%000002c6"), Attrs([Attr("address","0x6B8"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))])), -Blk(Tid(1_072, "%00000430"), Attrs([Attr("address","0x6B0")]), Phis([]), -Defs([Def(Tid(1_076, "%00000434"), Attrs([Attr("address","0x6B0"), -Attr("insn","mov x16, x2")]), Var("R16",Imm(64)), Var("R2",Imm(64)))]), -Jmps([Call(Tid(1_081, "%00000439"), Attrs([Attr("address","0x6B4"), -Attr("insn","br x16")]), Int(1,1), -(Indirect(Var("R16",Imm(64))),))]))]))]))) \ No newline at end of file diff --git a/src/test/correct/initialisation/gcc/initialisation.bir b/src/test/correct/initialisation/gcc/initialisation.bir deleted file mode 100644 index 67c4dd950..000000000 --- a/src/test/correct/initialisation/gcc/initialisation.bir +++ /dev/null @@ -1,253 +0,0 @@ -000006c5: program -00000693: sub __cxa_finalize(__cxa_finalize_result) -000006c6: __cxa_finalize_result :: out u32 = low:32[R0] - -00000419: -00000511: R16 := 0x10000 -00000518: R17 := mem[R16 + 0xFB8, el]:u64 -0000051e: R16 := R16 + 0xFB8 -00000523: call R17 with noreturn - -00000694: sub __do_global_dtors_aux(__do_global_dtors_aux_result) -000006c7: __do_global_dtors_aux_result :: out u32 = low:32[R0] - -000002ca: -000002ce: #3 := R31 - 0x20 -000002d4: mem := mem with [#3, el]:u64 <- R29 -000002da: mem := mem with [#3 + 8, el]:u64 <- R30 -000002de: R31 := #3 -000002e4: R29 := R31 -000002ec: mem := mem with [R31 + 0x10, el]:u64 <- R19 -000002f1: R19 := 0x11000 -000002f8: R0 := pad:64[mem[R19 + 0x28]] -000002ff: when 31:0[R0] <> 0 goto %000002fd -000006bb: goto %000003e2 - -000003e2: -000003e5: R0 := 0x10000 -000003ec: R0 := mem[R0 + 0xFE0, el]:u64 -000003f2: when R0 = 0 goto %000003f0 -000006bc: goto %00000409 - -00000409: -0000040c: R0 := 0x11000 -00000413: R0 := mem[R0 + 8, el]:u64 -00000418: R30 := 0x6F0 -0000041b: call @__cxa_finalize with return %000003f0 - -000003f0: -000003f8: R30 := 0x6F4 -000003fa: call @deregister_tm_clones with return %000003fc - -000003fc: -000003ff: R0 := 1 -00000407: mem := mem with [R19 + 0x28] <- 7:0[R0] -000006bd: goto %000002fd - -000002fd: -00000307: R19 := mem[R31 + 0x10, el]:u64 -0000030e: R29 := mem[R31, el]:u64 -00000313: R30 := mem[R31 + 8, el]:u64 -00000317: R31 := R31 + 0x20 -0000031c: call R30 with noreturn - -00000698: sub __libc_start_main(__libc_start_main_main, __libc_start_main_arg2, __libc_start_main_arg3, __libc_start_main_auxv, __libc_start_main_result) -000006c8: __libc_start_main_main :: in u64 = R0 -000006c9: __libc_start_main_arg2 :: in u32 = low:32[R1] -000006ca: __libc_start_main_arg3 :: in out u64 = R2 -000006cb: __libc_start_main_auxv :: in out u64 = R3 -000006cc: __libc_start_main_result :: out u32 = low:32[R0] - -00000223: -000004fb: R16 := 0x10000 -00000502: R17 := mem[R16 + 0xFB0, el]:u64 -00000508: R16 := R16 + 0xFB0 -0000050d: call R17 with noreturn - -00000699: sub _fini(_fini_result) -000006cd: _fini_result :: out u32 = low:32[R0] - -0000001f: -00000025: #0 := R31 - 0x10 -0000002b: mem := mem with [#0, el]:u64 <- R29 -00000031: mem := mem with [#0 + 8, el]:u64 <- R30 -00000035: R31 := #0 -0000003b: R29 := R31 -00000042: R29 := mem[R31, el]:u64 -00000047: R30 := mem[R31 + 8, el]:u64 -0000004b: R31 := R31 + 0x10 -00000050: call R30 with noreturn - -0000069a: sub _init(_init_result) -000006ce: _init_result :: out u32 = low:32[R0] - -000005d6: -000005dc: #5 := R31 - 0x10 -000005e2: mem := mem with [#5, el]:u64 <- R29 -000005e8: mem := mem with [#5 + 8, el]:u64 <- R30 -000005ec: R31 := #5 -000005f2: R29 := R31 -000005f7: R30 := 0x590 -000005f9: call @call_weak_fn with return %000005fb - -000005fb: -00000600: R29 := mem[R31, el]:u64 -00000605: R30 := mem[R31 + 8, el]:u64 -00000609: R31 := R31 + 0x10 -0000060e: call R30 with noreturn - -0000069b: sub _start(_start_result) -000006cf: _start_result :: out u32 = low:32[R0] - -000001e4: -000001e9: R29 := 0 -000001ee: R30 := 0 -000001f4: R5 := R0 -000001fb: R1 := mem[R31, el]:u64 -00000201: R2 := R31 + 8 -00000207: R6 := R31 -0000020c: R0 := 0x10000 -00000213: R0 := mem[R0 + 0xFF0, el]:u64 -00000218: R3 := 0 -0000021d: R4 := 0 -00000222: R30 := 0x630 -00000225: call @__libc_start_main with return %00000227 - -00000227: -0000022a: R30 := 0x634 -0000022d: call @abort with return %000006be - -000006be: -000006bf: call @call_weak_fn with noreturn - -0000069e: sub abort() - - -0000022b: -0000053d: R16 := 0x10000 -00000544: R17 := mem[R16 + 0xFC8, el]:u64 -0000054a: R16 := R16 + 0xFC8 -0000054f: call R17 with noreturn - -0000069f: sub call_weak_fn(call_weak_fn_result) -000006d0: call_weak_fn_result :: out u32 = low:32[R0] - -0000022f: -00000232: R0 := 0x10000 -00000239: R0 := mem[R0 + 0xFE8, el]:u64 -0000023f: when R0 = 0 goto %0000023d -000006c0: goto %00000459 - -0000023d: -00000245: call R30 with noreturn - -00000459: -0000045c: goto @__gmon_start__ - -0000045a: -00000527: R16 := 0x10000 -0000052e: R17 := mem[R16 + 0xFC0, el]:u64 -00000534: R16 := R16 + 0xFC0 -00000539: call R17 with noreturn - -000006a1: sub deregister_tm_clones(deregister_tm_clones_result) -000006d1: deregister_tm_clones_result :: out u32 = low:32[R0] - -0000024b: -0000024e: R0 := 0x11000 -00000254: R0 := R0 + 0x28 -00000259: R1 := 0x11000 -0000025f: R1 := R1 + 0x28 -00000265: #1 := ~R0 -0000026a: #2 := R1 + ~R0 -00000270: VF := extend:65[#2 + 1] <> extend:65[R1] + extend:65[#1] + 1 -00000276: CF := pad:65[#2 + 1] <> pad:65[R1] + pad:65[#1] + 1 -0000027a: ZF := #2 + 1 = 0 -0000027e: NF := 63:63[#2 + 1] -00000284: when ZF goto %00000282 -000006c1: goto %0000043b - -0000043b: -0000043e: R1 := 0x10000 -00000445: R1 := mem[R1 + 0xFD8, el]:u64 -0000044a: when R1 = 0 goto %00000282 -000006c2: goto %0000044e - -00000282: -0000028a: call R30 with noreturn - -0000044e: -00000452: R16 := R1 -00000457: call R16 with noreturn - -000006a4: sub frame_dummy(frame_dummy_result) -000006d2: frame_dummy_result :: out u32 = low:32[R0] - -00000322: -00000324: call @register_tm_clones with noreturn - -000006a5: sub main(main_argc, main_argv, main_result) -000006d3: main_argc :: in u32 = low:32[R0] -000006d4: main_argv :: in out u64 = R1 -000006d5: main_result :: out u32 = low:32[R0] - -00000326: -00000329: R0 := 0x11000 -0000032f: R0 := R0 + 0x10 -00000336: R0 := pad:64[mem[R0, el]:u32] -0000033c: R1 := pad:64[31:0[R0] + 1] -00000341: R0 := 0x11000 -00000347: R0 := R0 + 0x10 -0000034f: mem := mem with [R0, el]:u32 <- 31:0[R1] -00000354: R0 := 0x11000 -0000035a: R0 := R0 + 0x18 -00000361: R0 := mem[R0, el]:u64 -00000367: R1 := R0 - 1 -0000036c: R0 := 0x11000 -00000372: R0 := R0 + 0x18 -0000037a: mem := mem with [R0, el]:u64 <- R1 -0000037f: R0 := 0x11000 -00000385: R0 := R0 + 0x20 -0000038c: R0 := pad:64[mem[R0, el]:u32] -00000392: R1 := pad:64[31:0[R0] + 3] -00000397: R0 := 0x11000 -0000039d: R0 := R0 + 0x20 -000003a5: mem := mem with [R0 + 4, el]:u32 <- 31:0[R1] -000003aa: R0 := 0x11000 -000003b0: R0 := R0 + 0x14 -000003b7: R0 := pad:64[mem[R0]] -000003bd: R0 := pad:64[31:0[R0] + 1] -000003c3: R1 := pad:64[0.7:0[R0]] -000003c8: R0 := 0x11000 -000003ce: R0 := R0 + 0x14 -000003d6: mem := mem with [R0] <- 7:0[R1] -000003db: R0 := 0 -000003e0: call R30 with noreturn - -000006a6: sub register_tm_clones(register_tm_clones_result) -000006d6: register_tm_clones_result :: out u32 = low:32[R0] - -0000028c: -0000028f: R0 := 0x11000 -00000295: R0 := R0 + 0x28 -0000029a: R1 := 0x11000 -000002a0: R1 := R1 + 0x28 -000002a7: R1 := R1 + ~R0 + 1 -000002ad: R2 := 0.63:63[R1] -000002b4: R1 := R2 + (R1 ~>> 3) -000002ba: R1 := extend:64[63:1[R1]] -000002c0: when R1 = 0 goto %000002be -000006c3: goto %0000041d - -0000041d: -00000420: R2 := 0x10000 -00000427: R2 := mem[R2 + 0xFF8, el]:u64 -0000042c: when R2 = 0 goto %000002be -000006c4: goto %00000430 - -000002be: -000002c6: call R30 with noreturn - -00000430: -00000434: R16 := R2 -00000439: call R16 with noreturn diff --git a/src/test/correct/initialisation/gcc/initialisation.expected b/src/test/correct/initialisation/gcc/initialisation.expected index fd7345d75..e507f3f08 100644 --- a/src/test/correct/initialisation/gcc/initialisation.expected +++ b/src/test/correct/initialisation/gcc/initialisation.expected @@ -94,7 +94,7 @@ procedure {:extern} rely_reflexive(); procedure {:extern} guarantee_reflexive(); modifies Gamma_mem, mem; -procedure main_1812(); +procedure main(); modifies Gamma_R0, Gamma_R1, Gamma_mem, R0, R1, mem; free requires (memory_load64_le(mem, 69632bv64) == 0bv64); free requires (memory_load64_le(mem, 69640bv64) == 69640bv64); @@ -115,23 +115,23 @@ procedure main_1812(); free ensures (memory_load64_le(mem, 69616bv64) == 1812bv64); free ensures (memory_load64_le(mem, 69640bv64) == 69640bv64); -implementation main_1812() +implementation main() { - var Gamma_load18: bool; - var Gamma_load19: bool; - var Gamma_load20: bool; - var Gamma_load21: bool; - var load18: bv32; - var load19: bv64; - var load20: bv32; - var load21: bv8; + var $load$18: bv32; + var $load$19: bv64; + var $load$20: bv32; + var $load$21: bv8; + var Gamma_$load$18: bool; + var Gamma_$load$19: bool; + var Gamma_$load$20: bool; + var Gamma_$load$21: bool; lmain: assume {:captureState "lmain"} true; R0, Gamma_R0 := 69632bv64, true; R0, Gamma_R0 := bvadd64(R0, 16bv64), Gamma_R0; call rely(); - load18, Gamma_load18 := memory_load32_le(mem, R0), (gamma_load32(Gamma_mem, R0) || L(mem, R0)); - R0, Gamma_R0 := zero_extend32_32(load18), Gamma_load18; + $load$18, Gamma_$load$18 := memory_load32_le(mem, R0), (gamma_load32(Gamma_mem, R0) || L(mem, R0)); + R0, Gamma_R0 := zero_extend32_32($load$18), Gamma_$load$18; R1, Gamma_R1 := zero_extend32_32(bvadd32(R0[32:0], 1bv32)), Gamma_R0; R0, Gamma_R0 := 69632bv64, true; R0, Gamma_R0 := bvadd64(R0, 16bv64), Gamma_R0; @@ -142,8 +142,8 @@ implementation main_1812() R0, Gamma_R0 := 69632bv64, true; R0, Gamma_R0 := bvadd64(R0, 24bv64), Gamma_R0; call rely(); - load19, Gamma_load19 := memory_load64_le(mem, R0), (gamma_load64(Gamma_mem, R0) || L(mem, R0)); - R0, Gamma_R0 := load19, Gamma_load19; + $load$19, Gamma_$load$19 := memory_load64_le(mem, R0), (gamma_load64(Gamma_mem, R0) || L(mem, R0)); + R0, Gamma_R0 := $load$19, Gamma_$load$19; R1, Gamma_R1 := bvadd64(R0, 18446744073709551615bv64), Gamma_R0; R0, Gamma_R0 := 69632bv64, true; R0, Gamma_R0 := bvadd64(R0, 24bv64), Gamma_R0; @@ -154,8 +154,8 @@ implementation main_1812() R0, Gamma_R0 := 69632bv64, true; R0, Gamma_R0 := bvadd64(R0, 32bv64), Gamma_R0; call rely(); - load20, Gamma_load20 := memory_load32_le(mem, R0), (gamma_load32(Gamma_mem, R0) || L(mem, R0)); - R0, Gamma_R0 := zero_extend32_32(load20), Gamma_load20; + $load$20, Gamma_$load$20 := memory_load32_le(mem, R0), (gamma_load32(Gamma_mem, R0) || L(mem, R0)); + R0, Gamma_R0 := zero_extend32_32($load$20), Gamma_$load$20; R1, Gamma_R1 := zero_extend32_32(bvadd32(R0[32:0], 3bv32)), Gamma_R0; R0, Gamma_R0 := 69632bv64, true; R0, Gamma_R0 := bvadd64(R0, 32bv64), Gamma_R0; @@ -166,8 +166,8 @@ implementation main_1812() R0, Gamma_R0 := 69632bv64, true; R0, Gamma_R0 := bvadd64(R0, 20bv64), Gamma_R0; call rely(); - load21, Gamma_load21 := memory_load8_le(mem, R0), (gamma_load8(Gamma_mem, R0) || L(mem, R0)); - R0, Gamma_R0 := zero_extend56_8(load21), Gamma_load21; + $load$21, Gamma_$load$21 := memory_load8_le(mem, R0), (gamma_load8(Gamma_mem, R0) || L(mem, R0)); + R0, Gamma_R0 := zero_extend56_8($load$21), Gamma_$load$21; R0, Gamma_R0 := zero_extend32_32(bvadd32(R0[32:0], 1bv32)), Gamma_R0; R1, Gamma_R1 := zero_extend32_32((0bv24 ++ R0[8:0])), Gamma_R0; R0, Gamma_R0 := 69632bv64, true; @@ -177,9 +177,9 @@ implementation main_1812() mem, Gamma_mem := memory_store8_le(mem, R0, R1[8:0]), gamma_store8(Gamma_mem, R0, Gamma_R1); assume {:captureState "%000003d6"} true; R0, Gamma_R0 := 0bv64, true; - goto main_1812_basil_return; - main_1812_basil_return: - assume {:captureState "main_1812_basil_return"} true; + goto main_basil_return; + main_basil_return: + assume {:captureState "main_basil_return"} true; return; } diff --git a/src/test/correct/initialisation/gcc/initialisation.gts b/src/test/correct/initialisation/gcc/initialisation.gts deleted file mode 100644 index 037ffcc0d..000000000 Binary files a/src/test/correct/initialisation/gcc/initialisation.gts and /dev/null differ diff --git a/src/test/correct/initialisation/gcc/initialisation.md5sum b/src/test/correct/initialisation/gcc/initialisation.md5sum new file mode 100644 index 000000000..6499a4a38 --- /dev/null +++ b/src/test/correct/initialisation/gcc/initialisation.md5sum @@ -0,0 +1,5 @@ +455d68b35a2a92f10cce0058b57f3165 correct/initialisation/gcc/a.out +50a3c2fb4c595ff4b387608a1dd2ec82 correct/initialisation/gcc/initialisation.adt +da6051fd47076de3667937d033c133a9 correct/initialisation/gcc/initialisation.bir +b36ef51192bdbc0e7e584464502a21a6 correct/initialisation/gcc/initialisation.relf +a2915010ff5965c811b4ff554ede5b68 correct/initialisation/gcc/initialisation.gts diff --git a/src/test/correct/initialisation/gcc/initialisation.relf b/src/test/correct/initialisation/gcc/initialisation.relf deleted file mode 100644 index ad6cd5119..000000000 --- a/src/test/correct/initialisation/gcc/initialisation.relf +++ /dev/null @@ -1,124 +0,0 @@ - -Relocation section '.rela.dyn' at offset 0x460 contains 8 entries: - Offset Info Type Symbol's Value Symbol's Name + Addend -0000000000010d98 0000000000000403 R_AARCH64_RELATIVE 710 -0000000000010da0 0000000000000403 R_AARCH64_RELATIVE 6c0 -0000000000010ff0 0000000000000403 R_AARCH64_RELATIVE 714 -0000000000011008 0000000000000403 R_AARCH64_RELATIVE 11008 -0000000000010fd8 0000000400000401 R_AARCH64_GLOB_DAT 0000000000000000 _ITM_deregisterTMCloneTable + 0 -0000000000010fe0 0000000500000401 R_AARCH64_GLOB_DAT 0000000000000000 __cxa_finalize@GLIBC_2.17 + 0 -0000000000010fe8 0000000600000401 R_AARCH64_GLOB_DAT 0000000000000000 __gmon_start__ + 0 -0000000000010ff8 0000000800000401 R_AARCH64_GLOB_DAT 0000000000000000 _ITM_registerTMCloneTable + 0 - -Relocation section '.rela.plt' at offset 0x520 contains 4 entries: - Offset Info Type Symbol's Value Symbol's Name + Addend -0000000000010fb0 0000000300000402 R_AARCH64_JUMP_SLOT 0000000000000000 __libc_start_main@GLIBC_2.34 + 0 -0000000000010fb8 0000000500000402 R_AARCH64_JUMP_SLOT 0000000000000000 __cxa_finalize@GLIBC_2.17 + 0 -0000000000010fc0 0000000600000402 R_AARCH64_JUMP_SLOT 0000000000000000 __gmon_start__ + 0 -0000000000010fc8 0000000700000402 R_AARCH64_JUMP_SLOT 0000000000000000 abort@GLIBC_2.17 + 0 - -Symbol table '.dynsym' contains 9 entries: - Num: Value Size Type Bind Vis Ndx Name - 0: 0000000000000000 0 NOTYPE LOCAL DEFAULT UND - 1: 0000000000000580 0 SECTION LOCAL DEFAULT 11 .init - 2: 0000000000011000 0 SECTION LOCAL DEFAULT 22 .data - 3: 0000000000000000 0 FUNC GLOBAL DEFAULT UND __libc_start_main@GLIBC_2.34 (2) - 4: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_deregisterTMCloneTable - 5: 0000000000000000 0 FUNC WEAK DEFAULT UND __cxa_finalize@GLIBC_2.17 (3) - 6: 0000000000000000 0 NOTYPE WEAK DEFAULT UND __gmon_start__ - 7: 0000000000000000 0 FUNC GLOBAL DEFAULT UND abort@GLIBC_2.17 (3) - 8: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_registerTMCloneTable - -Symbol table '.symtab' contains 91 entries: - Num: Value Size Type Bind Vis Ndx Name - 0: 0000000000000000 0 NOTYPE LOCAL DEFAULT UND - 1: 0000000000000238 0 SECTION LOCAL DEFAULT 1 .interp - 2: 0000000000000254 0 SECTION LOCAL DEFAULT 2 .note.gnu.build-id - 3: 0000000000000278 0 SECTION LOCAL DEFAULT 3 .note.ABI-tag - 4: 0000000000000298 0 SECTION LOCAL DEFAULT 4 .gnu.hash - 5: 00000000000002b8 0 SECTION LOCAL DEFAULT 5 .dynsym - 6: 0000000000000390 0 SECTION LOCAL DEFAULT 6 .dynstr - 7: 000000000000041e 0 SECTION LOCAL DEFAULT 7 .gnu.version - 8: 0000000000000430 0 SECTION LOCAL DEFAULT 8 .gnu.version_r - 9: 0000000000000460 0 SECTION LOCAL DEFAULT 9 .rela.dyn - 10: 0000000000000520 0 SECTION LOCAL DEFAULT 10 .rela.plt - 11: 0000000000000580 0 SECTION LOCAL DEFAULT 11 .init - 12: 00000000000005a0 0 SECTION LOCAL DEFAULT 12 .plt - 13: 0000000000000600 0 SECTION LOCAL DEFAULT 13 .text - 14: 0000000000000790 0 SECTION LOCAL DEFAULT 14 .fini - 15: 00000000000007a4 0 SECTION LOCAL DEFAULT 15 .rodata - 16: 00000000000007a8 0 SECTION LOCAL DEFAULT 16 .eh_frame_hdr - 17: 00000000000007e8 0 SECTION LOCAL DEFAULT 17 .eh_frame - 18: 0000000000010d98 0 SECTION LOCAL DEFAULT 18 .init_array - 19: 0000000000010da0 0 SECTION LOCAL DEFAULT 19 .fini_array - 20: 0000000000010da8 0 SECTION LOCAL DEFAULT 20 .dynamic - 21: 0000000000010f98 0 SECTION LOCAL DEFAULT 21 .got - 22: 0000000000011000 0 SECTION LOCAL DEFAULT 22 .data - 23: 0000000000011028 0 SECTION LOCAL DEFAULT 23 .bss - 24: 0000000000000000 0 SECTION LOCAL DEFAULT 24 .comment - 25: 0000000000000000 0 FILE LOCAL DEFAULT ABS Scrt1.o - 26: 0000000000000278 0 NOTYPE LOCAL DEFAULT 3 $d - 27: 0000000000000278 32 OBJECT LOCAL DEFAULT 3 __abi_tag - 28: 0000000000000600 0 NOTYPE LOCAL DEFAULT 13 $x - 29: 00000000000007fc 0 NOTYPE LOCAL DEFAULT 17 $d - 30: 00000000000007a4 0 NOTYPE LOCAL DEFAULT 15 $d - 31: 0000000000000000 0 FILE LOCAL DEFAULT ABS crti.o - 32: 0000000000000634 0 NOTYPE LOCAL DEFAULT 13 $x - 33: 0000000000000634 20 FUNC LOCAL DEFAULT 13 call_weak_fn - 34: 0000000000000580 0 NOTYPE LOCAL DEFAULT 11 $x - 35: 0000000000000790 0 NOTYPE LOCAL DEFAULT 14 $x - 36: 0000000000000000 0 FILE LOCAL DEFAULT ABS crtn.o - 37: 0000000000000590 0 NOTYPE LOCAL DEFAULT 11 $x - 38: 000000000000079c 0 NOTYPE LOCAL DEFAULT 14 $x - 39: 0000000000000000 0 FILE LOCAL DEFAULT ABS crtstuff.c - 40: 0000000000000650 0 NOTYPE LOCAL DEFAULT 13 $x - 41: 0000000000000650 0 FUNC LOCAL DEFAULT 13 deregister_tm_clones - 42: 0000000000000680 0 FUNC LOCAL DEFAULT 13 register_tm_clones - 43: 0000000000011008 0 NOTYPE LOCAL DEFAULT 22 $d - 44: 00000000000006c0 0 FUNC LOCAL DEFAULT 13 __do_global_dtors_aux - 45: 0000000000011028 1 OBJECT LOCAL DEFAULT 23 completed.0 - 46: 0000000000010da0 0 NOTYPE LOCAL DEFAULT 19 $d - 47: 0000000000010da0 0 OBJECT LOCAL DEFAULT 19 __do_global_dtors_aux_fini_array_entry - 48: 0000000000000710 0 FUNC LOCAL DEFAULT 13 frame_dummy - 49: 0000000000010d98 0 NOTYPE LOCAL DEFAULT 18 $d - 50: 0000000000010d98 0 OBJECT LOCAL DEFAULT 18 __frame_dummy_init_array_entry - 51: 0000000000000810 0 NOTYPE LOCAL DEFAULT 17 $d - 52: 0000000000011028 0 NOTYPE LOCAL DEFAULT 23 $d - 53: 0000000000000000 0 FILE LOCAL DEFAULT ABS initialisation.c - 54: 0000000000011010 0 NOTYPE LOCAL DEFAULT 22 $d - 55: 0000000000000714 0 NOTYPE LOCAL DEFAULT 13 $x - 56: 0000000000000870 0 NOTYPE LOCAL DEFAULT 17 $d - 57: 0000000000000000 0 FILE LOCAL DEFAULT ABS crtstuff.c - 58: 0000000000000884 0 NOTYPE LOCAL DEFAULT 17 $d - 59: 0000000000000884 0 OBJECT LOCAL DEFAULT 17 __FRAME_END__ - 60: 0000000000000000 0 FILE LOCAL DEFAULT ABS - 61: 0000000000010da8 0 OBJECT LOCAL DEFAULT ABS _DYNAMIC - 62: 00000000000007a8 0 NOTYPE LOCAL DEFAULT 16 __GNU_EH_FRAME_HDR - 63: 0000000000010fd0 0 OBJECT LOCAL DEFAULT ABS _GLOBAL_OFFSET_TABLE_ - 64: 00000000000005a0 0 NOTYPE LOCAL DEFAULT 12 $x - 65: 0000000000000000 0 FUNC GLOBAL DEFAULT UND __libc_start_main@GLIBC_2.34 - 66: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_deregisterTMCloneTable - 67: 0000000000011000 0 NOTYPE WEAK DEFAULT 22 data_start - 68: 0000000000011028 0 NOTYPE GLOBAL DEFAULT 23 __bss_start__ - 69: 0000000000000000 0 FUNC WEAK DEFAULT UND __cxa_finalize@GLIBC_2.17 - 70: 0000000000011030 0 NOTYPE GLOBAL DEFAULT 23 _bss_end__ - 71: 0000000000011028 0 NOTYPE GLOBAL DEFAULT 22 _edata - 72: 0000000000011018 8 OBJECT GLOBAL DEFAULT 22 z - 73: 0000000000011010 4 OBJECT GLOBAL DEFAULT 22 x - 74: 0000000000000790 0 FUNC GLOBAL HIDDEN 14 _fini - 75: 0000000000011030 0 NOTYPE GLOBAL DEFAULT 23 __bss_end__ - 76: 0000000000011000 0 NOTYPE GLOBAL DEFAULT 22 __data_start - 77: 0000000000000000 0 NOTYPE WEAK DEFAULT UND __gmon_start__ - 78: 0000000000011008 0 OBJECT GLOBAL HIDDEN 22 __dso_handle - 79: 0000000000000000 0 FUNC GLOBAL DEFAULT UND abort@GLIBC_2.17 - 80: 00000000000007a4 4 OBJECT GLOBAL DEFAULT 15 _IO_stdin_used - 81: 0000000000011030 0 NOTYPE GLOBAL DEFAULT 23 _end - 82: 0000000000000600 52 FUNC GLOBAL DEFAULT 13 _start - 83: 0000000000011020 8 OBJECT GLOBAL DEFAULT 22 a - 84: 0000000000011030 0 NOTYPE GLOBAL DEFAULT 23 __end__ - 85: 0000000000011014 1 OBJECT GLOBAL DEFAULT 22 y - 86: 0000000000011028 0 NOTYPE GLOBAL DEFAULT 23 __bss_start - 87: 0000000000000714 124 FUNC GLOBAL DEFAULT 13 main - 88: 0000000000011028 0 OBJECT GLOBAL HIDDEN 22 __TMC_END__ - 89: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_registerTMCloneTable - 90: 0000000000000580 0 FUNC GLOBAL HIDDEN 11 _init diff --git a/src/test/correct/initialisation/gcc/initialisation_gtirb.expected b/src/test/correct/initialisation/gcc/initialisation_gtirb.expected index 1e2c326e0..f3daf5c83 100644 --- a/src/test/correct/initialisation/gcc/initialisation_gtirb.expected +++ b/src/test/correct/initialisation/gcc/initialisation_gtirb.expected @@ -94,7 +94,7 @@ procedure {:extern} rely_reflexive(); procedure {:extern} guarantee_reflexive(); modifies Gamma_mem, mem; -procedure main_1812(); +procedure main(); modifies Gamma_R0, Gamma_R1, Gamma_mem, R0, R1, mem; free requires (memory_load64_le(mem, 69632bv64) == 0bv64); free requires (memory_load64_le(mem, 69640bv64) == 69640bv64); @@ -115,59 +115,59 @@ procedure main_1812(); free ensures (memory_load64_le(mem, 69616bv64) == 1812bv64); free ensures (memory_load64_le(mem, 69640bv64) == 69640bv64); -implementation main_1812() +implementation main() { - var Gamma_load1: bool; - var Gamma_load2: bool; - var Gamma_load3: bool; - var Gamma_load4: bool; - var load1: bv32; - var load2: bv64; - var load3: bv32; - var load4: bv8; - main_1812__0__ulEp46faSbyYIP08N0ny3w: - assume {:captureState "main_1812__0__ulEp46faSbyYIP08N0ny3w"} true; + var $load1: bv32; + var $load2: bv64; + var $load3: bv32; + var $load4: bv8; + var Gamma_$load1: bool; + var Gamma_$load2: bool; + var Gamma_$load3: bool; + var Gamma_$load4: bool; + $main$__0__$ulEp46faSbyYIP08N0ny3w: + assume {:captureState "$main$__0__$ulEp46faSbyYIP08N0ny3w"} true; R0, Gamma_R0 := 69632bv64, true; R0, Gamma_R0 := bvadd64(R0, 16bv64), Gamma_R0; call rely(); - load1, Gamma_load1 := memory_load32_le(mem, R0), (gamma_load32(Gamma_mem, R0) || L(mem, R0)); - R0, Gamma_R0 := zero_extend32_32(load1), Gamma_load1; + $load1, Gamma_$load1 := memory_load32_le(mem, R0), (gamma_load32(Gamma_mem, R0) || L(mem, R0)); + R0, Gamma_R0 := zero_extend32_32($load1), Gamma_$load1; R1, Gamma_R1 := zero_extend32_32(bvadd32(R0[32:0], 1bv32)), Gamma_R0; R0, Gamma_R0 := 69632bv64, true; R0, Gamma_R0 := bvadd64(R0, 16bv64), Gamma_R0; call rely(); assert (L(mem, R0) ==> Gamma_R1); mem, Gamma_mem := memory_store32_le(mem, R0, R1[32:0]), gamma_store32(Gamma_mem, R0, Gamma_R1); - assume {:captureState "1836_0"} true; + assume {:captureState "1836$0"} true; R0, Gamma_R0 := 69632bv64, true; R0, Gamma_R0 := bvadd64(R0, 24bv64), Gamma_R0; call rely(); - load2, Gamma_load2 := memory_load64_le(mem, R0), (gamma_load64(Gamma_mem, R0) || L(mem, R0)); - R0, Gamma_R0 := load2, Gamma_load2; + $load2, Gamma_$load2 := memory_load64_le(mem, R0), (gamma_load64(Gamma_mem, R0) || L(mem, R0)); + R0, Gamma_R0 := $load2, Gamma_$load2; R1, Gamma_R1 := bvadd64(R0, 18446744073709551615bv64), Gamma_R0; R0, Gamma_R0 := 69632bv64, true; R0, Gamma_R0 := bvadd64(R0, 24bv64), Gamma_R0; call rely(); assert (L(mem, R0) ==> Gamma_R1); mem, Gamma_mem := memory_store64_le(mem, R0, R1), gamma_store64(Gamma_mem, R0, Gamma_R1); - assume {:captureState "1864_0"} true; + assume {:captureState "1864$0"} true; R0, Gamma_R0 := 69632bv64, true; R0, Gamma_R0 := bvadd64(R0, 32bv64), Gamma_R0; call rely(); - load3, Gamma_load3 := memory_load32_le(mem, R0), (gamma_load32(Gamma_mem, R0) || L(mem, R0)); - R0, Gamma_R0 := zero_extend32_32(load3), Gamma_load3; + $load3, Gamma_$load3 := memory_load32_le(mem, R0), (gamma_load32(Gamma_mem, R0) || L(mem, R0)); + R0, Gamma_R0 := zero_extend32_32($load3), Gamma_$load3; R1, Gamma_R1 := zero_extend32_32(bvadd32(R0[32:0], 3bv32)), Gamma_R0; R0, Gamma_R0 := 69632bv64, true; R0, Gamma_R0 := bvadd64(R0, 32bv64), Gamma_R0; call rely(); assert (L(mem, bvadd64(R0, 4bv64)) ==> Gamma_R1); mem, Gamma_mem := memory_store32_le(mem, bvadd64(R0, 4bv64), R1[32:0]), gamma_store32(Gamma_mem, bvadd64(R0, 4bv64), Gamma_R1); - assume {:captureState "1892_0"} true; + assume {:captureState "1892$0"} true; R0, Gamma_R0 := 69632bv64, true; R0, Gamma_R0 := bvadd64(R0, 20bv64), Gamma_R0; call rely(); - load4, Gamma_load4 := memory_load8_le(mem, R0), (gamma_load8(Gamma_mem, R0) || L(mem, R0)); - R0, Gamma_R0 := zero_extend32_32(zero_extend24_8(load4)), Gamma_load4; + $load4, Gamma_$load4 := memory_load8_le(mem, R0), (gamma_load8(Gamma_mem, R0) || L(mem, R0)); + R0, Gamma_R0 := zero_extend32_32(zero_extend24_8($load4)), Gamma_$load4; R0, Gamma_R0 := zero_extend32_32(bvadd32(R0[32:0], 1bv32)), Gamma_R0; R1, Gamma_R1 := zero_extend32_32((0bv24 ++ R0[8:0])), Gamma_R0; R0, Gamma_R0 := 69632bv64, true; @@ -175,11 +175,11 @@ implementation main_1812() call rely(); assert (L(mem, R0) ==> Gamma_R1); mem, Gamma_mem := memory_store8_le(mem, R0, R1[8:0]), gamma_store8(Gamma_mem, R0, Gamma_R1); - assume {:captureState "1924_0"} true; + assume {:captureState "1924$0"} true; R0, Gamma_R0 := 0bv64, true; - goto main_1812_basil_return; - main_1812_basil_return: - assume {:captureState "main_1812_basil_return"} true; + goto main_basil_return; + main_basil_return: + assume {:captureState "main_basil_return"} true; return; } diff --git a/src/test/correct/initialisation/gcc_O2/initialisation.adt b/src/test/correct/initialisation/gcc_O2/initialisation.adt deleted file mode 100644 index 82ed72658..000000000 --- a/src/test/correct/initialisation/gcc_O2/initialisation.adt +++ /dev/null @@ -1,524 +0,0 @@ -Project(Attrs([Attr("filename","\"gcc_O2/initialisation.out\""), -Attr("image-specification","(declare abi (name str))\n(declare arch (name str))\n(declare base-address (addr int))\n(declare bias (off int))\n(declare bits (size int))\n(declare code-region (addr int) (size int) (off int))\n(declare code-start (addr int))\n(declare entry-point (addr int))\n(declare external-reference (addr int) (name str))\n(declare format (name str))\n(declare is-executable (flag bool))\n(declare is-little-endian (flag bool))\n(declare llvm:base-address (addr int))\n(declare llvm:code-entry (name str) (off int) (size int))\n(declare llvm:coff-import-library (name str))\n(declare llvm:coff-virtual-section-header (name str) (addr int) (size int))\n(declare llvm:elf-program-header (name str) (off int) (size int))\n(declare llvm:elf-program-header-flags (name str) (ld bool) (r bool) \n (w bool) (x bool))\n(declare llvm:elf-virtual-program-header (name str) (addr int) (size int))\n(declare llvm:entry-point (addr int))\n(declare llvm:macho-symbol (name str) (value int))\n(declare llvm:name-reference (at int) (name str))\n(declare llvm:relocation (at int) (addr int))\n(declare llvm:section-entry (name str) (addr int) (size int) (off int))\n(declare llvm:section-flags (name str) (r bool) (w bool) (x bool))\n(declare llvm:segment-command (name str) (off int) (size int))\n(declare llvm:segment-command-flags (name str) (r bool) (w bool) (x bool))\n(declare llvm:symbol-entry (name str) (addr int) (size int) (off int)\n (value int))\n(declare llvm:virtual-segment-command (name str) (addr int) (size int))\n(declare mapped (addr int) (size int) (off int))\n(declare named-region (addr int) (size int) (name str))\n(declare named-symbol (addr int) (name str))\n(declare require (name str))\n(declare section (addr int) (size int))\n(declare segment (addr int) (size int) (r bool) (w bool) (x bool))\n(declare subarch (name str))\n(declare symbol-chunk (addr int) (size int) (root int))\n(declare symbol-value (addr int) (value int))\n(declare system (name str))\n(declare vendor (name str))\n\n(abi unknown)\n(arch aarch64)\n(base-address 0)\n(bias 0)\n(bits 64)\n(code-region 1876 20 1876)\n(code-region 1536 340 1536)\n(code-region 1440 96 1440)\n(code-region 1408 24 1408)\n(code-start 1652)\n(code-start 1600)\n(code-start 1536)\n(entry-point 1600)\n(external-reference 69592 _ITM_deregisterTMCloneTable)\n(external-reference 69600 __cxa_finalize)\n(external-reference 69608 __gmon_start__)\n(external-reference 69624 _ITM_registerTMCloneTable)\n(external-reference 69552 __libc_start_main)\n(external-reference 69560 __cxa_finalize)\n(external-reference 69568 __gmon_start__)\n(external-reference 69576 abort)\n(format elf)\n(is-executable true)\n(is-little-endian true)\n(llvm:base-address 0)\n(llvm:code-entry abort 0 0)\n(llvm:code-entry __cxa_finalize 0 0)\n(llvm:code-entry __libc_start_main 0 0)\n(llvm:code-entry _init 1408 0)\n(llvm:code-entry main 1536 64)\n(llvm:code-entry _start 1600 52)\n(llvm:code-entry abort@GLIBC_2.17 0 0)\n(llvm:code-entry _fini 1876 0)\n(llvm:code-entry __cxa_finalize@GLIBC_2.17 0 0)\n(llvm:code-entry __libc_start_main@GLIBC_2.34 0 0)\n(llvm:code-entry frame_dummy 1872 0)\n(llvm:code-entry __do_global_dtors_aux 1792 0)\n(llvm:code-entry register_tm_clones 1728 0)\n(llvm:code-entry deregister_tm_clones 1680 0)\n(llvm:code-entry call_weak_fn 1652 20)\n(llvm:code-entry .fini 1876 20)\n(llvm:code-entry .text 1536 340)\n(llvm:code-entry .plt 1440 96)\n(llvm:code-entry .init 1408 24)\n(llvm:elf-program-header 08 3480 616)\n(llvm:elf-program-header 07 0 0)\n(llvm:elf-program-header 06 1900 60)\n(llvm:elf-program-header 05 596 68)\n(llvm:elf-program-header 04 3496 496)\n(llvm:elf-program-header 03 3480 657)\n(llvm:elf-program-header 02 0 2120)\n(llvm:elf-program-header 01 568 27)\n(llvm:elf-program-header 00 64 504)\n(llvm:elf-program-header-flags 08 false true false false)\n(llvm:elf-program-header-flags 07 false true true false)\n(llvm:elf-program-header-flags 06 false true false false)\n(llvm:elf-program-header-flags 05 false true false false)\n(llvm:elf-program-header-flags 04 false true true false)\n(llvm:elf-program-header-flags 03 true true true false)\n(llvm:elf-program-header-flags 02 true true false true)\n(llvm:elf-program-header-flags 01 false true false false)\n(llvm:elf-program-header-flags 00 false true false false)\n(llvm:elf-virtual-program-header 08 69016 616)\n(llvm:elf-virtual-program-header 07 0 0)\n(llvm:elf-virtual-program-header 06 1900 60)\n(llvm:elf-virtual-program-header 05 596 68)\n(llvm:elf-virtual-program-header 04 69032 496)\n(llvm:elf-virtual-program-header 03 69016 664)\n(llvm:elf-virtual-program-header 02 0 2120)\n(llvm:elf-virtual-program-header 01 568 27)\n(llvm:elf-virtual-program-header 00 64 504)\n(llvm:entry-point 1600)\n(llvm:name-reference 69576 abort)\n(llvm:name-reference 69568 __gmon_start__)\n(llvm:name-reference 69560 __cxa_finalize)\n(llvm:name-reference 69552 __libc_start_main)\n(llvm:name-reference 69624 _ITM_registerTMCloneTable)\n(llvm:name-reference 69608 __gmon_start__)\n(llvm:name-reference 69600 __cxa_finalize)\n(llvm:name-reference 69592 _ITM_deregisterTMCloneTable)\n(llvm:section-entry .shstrtab 0 250 6920)\n(llvm:section-entry .strtab 0 552 6368)\n(llvm:section-entry .symtab 0 2184 4184)\n(llvm:section-entry .comment 0 43 4137)\n(llvm:section-entry .bss 69673 7 4137)\n(llvm:section-entry .data 69632 41 4096)\n(llvm:section-entry .got 69528 104 3992)\n(llvm:section-entry .dynamic 69032 496 3496)\n(llvm:section-entry .fini_array 69024 8 3488)\n(llvm:section-entry .init_array 69016 8 3480)\n(llvm:section-entry .eh_frame 1960 160 1960)\n(llvm:section-entry .eh_frame_hdr 1900 60 1900)\n(llvm:section-entry .rodata 1896 4 1896)\n(llvm:section-entry .fini 1876 20 1876)\n(llvm:section-entry .text 1536 340 1536)\n(llvm:section-entry .plt 1440 96 1440)\n(llvm:section-entry .init 1408 24 1408)\n(llvm:section-entry .rela.plt 1312 96 1312)\n(llvm:section-entry .rela.dyn 1120 192 1120)\n(llvm:section-entry .gnu.version_r 1072 48 1072)\n(llvm:section-entry .gnu.version 1054 18 1054)\n(llvm:section-entry .dynstr 912 141 912)\n(llvm:section-entry .dynsym 696 216 696)\n(llvm:section-entry .gnu.hash 664 28 664)\n(llvm:section-entry .note.ABI-tag 632 32 632)\n(llvm:section-entry .note.gnu.build-id 596 36 596)\n(llvm:section-entry .interp 568 27 568)\n(llvm:section-flags .shstrtab true false false)\n(llvm:section-flags .strtab true false false)\n(llvm:section-flags .symtab true false false)\n(llvm:section-flags .comment true false false)\n(llvm:section-flags .bss true true false)\n(llvm:section-flags .data true true false)\n(llvm:section-flags .got true true false)\n(llvm:section-flags .dynamic true true false)\n(llvm:section-flags .fini_array true true false)\n(llvm:section-flags .init_array true true false)\n(llvm:section-flags .eh_frame true false false)\n(llvm:section-flags .eh_frame_hdr true false false)\n(llvm:section-flags .rodata true false false)\n(llvm:section-flags .fini true false true)\n(llvm:section-flags .text true false true)\n(llvm:section-flags .plt true false true)\n(llvm:section-flags .init true false true)\n(llvm:section-flags .rela.plt true false false)\n(llvm:section-flags .rela.dyn true false false)\n(llvm:section-flags .gnu.version_r true false false)\n(llvm:section-flags .gnu.version true false false)\n(llvm:section-flags .dynstr true false false)\n(llvm:section-flags .dynsym true false false)\n(llvm:section-flags .gnu.hash true false false)\n(llvm:section-flags .note.ABI-tag true false false)\n(llvm:section-flags .note.gnu.build-id true false false)\n(llvm:section-flags .interp true false false)\n(llvm:symbol-entry abort 0 0 0 0)\n(llvm:symbol-entry __cxa_finalize 0 0 0 0)\n(llvm:symbol-entry __libc_start_main 0 0 0 0)\n(llvm:symbol-entry _init 1408 0 1408 1408)\n(llvm:symbol-entry main 1536 64 1536 1536)\n(llvm:symbol-entry _start 1600 52 1600 1600)\n(llvm:symbol-entry abort@GLIBC_2.17 0 0 0 0)\n(llvm:symbol-entry _fini 1876 0 1876 1876)\n(llvm:symbol-entry __cxa_finalize@GLIBC_2.17 0 0 0 0)\n(llvm:symbol-entry __libc_start_main@GLIBC_2.34 0 0 0 0)\n(llvm:symbol-entry frame_dummy 1872 0 1872 1872)\n(llvm:symbol-entry __do_global_dtors_aux 1792 0 1792 1792)\n(llvm:symbol-entry register_tm_clones 1728 0 1728 1728)\n(llvm:symbol-entry deregister_tm_clones 1680 0 1680 1680)\n(llvm:symbol-entry call_weak_fn 1652 20 1652 1652)\n(mapped 0 2120 0)\n(mapped 69016 657 3480)\n(named-region 0 2120 02)\n(named-region 69016 664 03)\n(named-region 568 27 .interp)\n(named-region 596 36 .note.gnu.build-id)\n(named-region 632 32 .note.ABI-tag)\n(named-region 664 28 .gnu.hash)\n(named-region 696 216 .dynsym)\n(named-region 912 141 .dynstr)\n(named-region 1054 18 .gnu.version)\n(named-region 1072 48 .gnu.version_r)\n(named-region 1120 192 .rela.dyn)\n(named-region 1312 96 .rela.plt)\n(named-region 1408 24 .init)\n(named-region 1440 96 .plt)\n(named-region 1536 340 .text)\n(named-region 1876 20 .fini)\n(named-region 1896 4 .rodata)\n(named-region 1900 60 .eh_frame_hdr)\n(named-region 1960 160 .eh_frame)\n(named-region 69016 8 .init_array)\n(named-region 69024 8 .fini_array)\n(named-region 69032 496 .dynamic)\n(named-region 69528 104 .got)\n(named-region 69632 41 .data)\n(named-region 69673 7 .bss)\n(named-region 0 43 .comment)\n(named-region 0 2184 .symtab)\n(named-region 0 552 .strtab)\n(named-region 0 250 .shstrtab)\n(named-symbol 1652 call_weak_fn)\n(named-symbol 1680 deregister_tm_clones)\n(named-symbol 1728 register_tm_clones)\n(named-symbol 1792 __do_global_dtors_aux)\n(named-symbol 1872 frame_dummy)\n(named-symbol 0 __libc_start_main@GLIBC_2.34)\n(named-symbol 0 __cxa_finalize@GLIBC_2.17)\n(named-symbol 1876 _fini)\n(named-symbol 0 abort@GLIBC_2.17)\n(named-symbol 1600 _start)\n(named-symbol 1536 main)\n(named-symbol 1408 _init)\n(named-symbol 0 __libc_start_main)\n(named-symbol 0 __cxa_finalize)\n(named-symbol 0 abort)\n(require libc.so.6)\n(section 568 27)\n(section 596 36)\n(section 632 32)\n(section 664 28)\n(section 696 216)\n(section 912 141)\n(section 1054 18)\n(section 1072 48)\n(section 1120 192)\n(section 1312 96)\n(section 1408 24)\n(section 1440 96)\n(section 1536 340)\n(section 1876 20)\n(section 1896 4)\n(section 1900 60)\n(section 1960 160)\n(section 69016 8)\n(section 69024 8)\n(section 69032 496)\n(section 69528 104)\n(section 69632 41)\n(section 69673 7)\n(section 0 43)\n(section 0 2184)\n(section 0 552)\n(section 0 250)\n(segment 0 2120 true false true)\n(segment 69016 664 true true false)\n(subarch v8)\n(symbol-chunk 1652 20 1652)\n(symbol-chunk 1600 52 1600)\n(symbol-chunk 1536 64 1536)\n(symbol-value 1652 1652)\n(symbol-value 1680 1680)\n(symbol-value 1728 1728)\n(symbol-value 1792 1792)\n(symbol-value 1872 1872)\n(symbol-value 1876 1876)\n(symbol-value 1600 1600)\n(symbol-value 1536 1536)\n(symbol-value 1408 1408)\n(symbol-value 0 0)\n(system \"\")\n(vendor \"\")\n"), -Attr("abi-name","\"aarch64-linux-gnu-elf\"")]), -Sections([Section(".shstrtab", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x40\x06\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x08\x1c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x38\x00\x09\x00\x40\x00\x1c\x00\x1b\x00\x06\x00\x00\x00\x04\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x04\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x48\x08\x00\x00\x00\x00\x00\x00\x48\x08\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x01\x00\x00\x00\x06\x00\x00\x00\x98\x0d\x00\x00\x00\x00\x00\x00\x98\x0d"), -Section(".strtab", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x40\x06\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x08\x1c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x38\x00\x09\x00\x40\x00\x1c\x00\x1b\x00\x06\x00\x00\x00\x04\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x04\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x48\x08\x00\x00\x00\x00\x00\x00\x48\x08\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x01\x00\x00\x00\x06\x00\x00\x00\x98\x0d\x00\x00\x00\x00\x00\x00\x98\x0d\x01\x00\x00\x00\x00\x00\x98\x0d\x01\x00\x00\x00\x00\x00\x91\x02\x00\x00\x00\x00\x00\x00\x98\x02\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x02\x00\x00\x00\x06\x00\x00\x00\xa8\x0d\x00\x00\x00\x00\x00\x00\xa8\x0d\x01\x00\x00\x00\x00\x00\xa8\x0d\x01\x00\x00\x00\x00\x00\xf0\x01\x00\x00\x00\x00\x00\x00\xf0\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x04\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x50\xe5\x74\x64\x04\x00\x00\x00\x6c\x07\x00\x00\x00\x00\x00\x00\x6c\x07\x00\x00\x00\x00\x00\x00\x6c\x07\x00\x00\x00\x00\x00\x00\x3c\x00\x00\x00\x00\x00\x00\x00\x3c\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x51\xe5\x74\x64\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x52\xe5\x74\x64\x04\x00\x00\x00\x98\x0d\x00\x00\x00\x00\x00\x00\x98\x0d\x01\x00\x00\x00\x00\x00\x98\x0d\x01\x00\x00\x00\x00\x00\x68\x02\x00\x00\x00\x00\x00\x00"), -Section(".comment", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x40\x06\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x08\x1c\x00"), -Section(".interp", 0x238, "\x2f\x6c\x69\x62\x2f\x6c\x64\x2d\x6c\x69\x6e\x75\x78\x2d\x61\x61\x72\x63\x68\x36\x34\x2e\x73\x6f\x2e\x31\x00"), -Section(".note.gnu.build-id", 0x254, "\x04\x00\x00\x00\x14\x00\x00\x00\x03\x00\x00\x00\x47\x4e\x55\x00\xf8\x01\x15\x72\xba\x8a\x2d\x27\x72\x91\xcc\xbd\xfa\xba\x32\x9f\x8a\x1f\x93\xef"), -Section(".note.ABI-tag", 0x278, "\x04\x00\x00\x00\x10\x00\x00\x00\x01\x00\x00\x00\x47\x4e\x55\x00\x00\x00\x00\x00\x03\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00"), -Section(".gnu.hash", 0x298, "\x01\x00\x00\x00\x01\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".dynsym", 0x2B8, "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x0b\x00\x80\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x16\x00\x00\x10\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x48\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x22\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x22\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x73\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".dynstr", 0x390, "\x00\x5f\x5f\x63\x78\x61\x5f\x66\x69\x6e\x61\x6c\x69\x7a\x65\x00\x5f\x5f\x6c\x69\x62\x63\x5f\x73\x74\x61\x72\x74\x5f\x6d\x61\x69\x6e\x00\x61\x62\x6f\x72\x74\x00\x6c\x69\x62\x63\x2e\x73\x6f\x2e\x36\x00\x47\x4c\x49\x42\x43\x5f\x32\x2e\x31\x37\x00\x47\x4c\x49\x42\x43\x5f\x32\x2e\x33\x34\x00\x5f\x49\x54\x4d\x5f\x64\x65\x72\x65\x67\x69\x73\x74\x65\x72\x54\x4d\x43\x6c\x6f\x6e\x65\x54\x61\x62\x6c\x65\x00\x5f\x5f\x67\x6d\x6f\x6e\x5f\x73\x74\x61\x72\x74\x5f\x5f\x00\x5f\x49\x54\x4d\x5f\x72\x65\x67\x69\x73\x74\x65\x72\x54\x4d\x43\x6c\x6f\x6e\x65\x54\x61\x62\x6c\x65\x00"), -Section(".gnu.version", 0x41E, "\x00\x00\x00\x00\x00\x00\x02\x00\x01\x00\x03\x00\x01\x00\x03\x00\x01\x00"), -Section(".gnu.version_r", 0x430, "\x01\x00\x02\x00\x28\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x97\x91\x96\x06\x00\x00\x03\x00\x32\x00\x00\x00\x10\x00\x00\x00\xb4\x91\x96\x06\x00\x00\x02\x00\x3d\x00\x00\x00\x00\x00\x00\x00"), -Section(".rela.dyn", 0x460, "\x98\x0d\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x50\x07\x00\x00\x00\x00\x00\x00\xa0\x0d\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\xf0\x0f\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x00\x06\x00\x00\x00\x00\x00\x00\x08\x10\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x08\x10\x01\x00\x00\x00\x00\x00\xd8\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe0\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe8\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xf8\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".rela.plt", 0x520, "\xb0\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xb8\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xc0\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xc8\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".init", 0x580, "\x1f\x20\x03\xd5\xfd\x7b\xbf\xa9\xfd\x03\x00\x91\x3a\x00\x00\x94\xfd\x7b\xc1\xa8\xc0\x03\x5f\xd6"), -Section(".plt", 0x5A0, "\xf0\x7b\xbf\xa9\x90\x00\x00\x90\x11\xd6\x47\xf9\x10\xa2\x3e\x91\x20\x02\x1f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x90\x00\x00\x90\x11\xda\x47\xf9\x10\xc2\x3e\x91\x20\x02\x1f\xd6\x90\x00\x00\x90\x11\xde\x47\xf9\x10\xe2\x3e\x91\x20\x02\x1f\xd6\x90\x00\x00\x90\x11\xe2\x47\xf9\x10\x02\x3f\x91\x20\x02\x1f\xd6\x90\x00\x00\x90\x11\xe6\x47\xf9\x10\x22\x3f\x91\x20\x02\x1f\xd6"), -Section(".fini", 0x754, "\x1f\x20\x03\xd5\xfd\x7b\xbf\xa9\xfd\x03\x00\x91\xfd\x7b\xc1\xa8\xc0\x03\x5f\xd6"), -Section(".rodata", 0x768, "\x01\x00\x02\x00"), -Section(".eh_frame_hdr", 0x76C, "\x01\x1b\x03\x3b\x38\x00\x00\x00\x06\x00\x00\x00\x94\xfe\xff\xff\xc4\x00\x00\x00\xd4\xfe\xff\xff\x50\x00\x00\x00\x24\xff\xff\xff\x64\x00\x00\x00\x54\xff\xff\xff\x78\x00\x00\x00\x94\xff\xff\xff\x8c\x00\x00\x00\xe4\xff\xff\xff\xb0\x00\x00\x00"), -Section(".eh_frame", 0x7A8, "\x10\x00\x00\x00\x00\x00\x00\x00\x01\x7a\x52\x00\x04\x78\x1e\x01\x1b\x0c\x1f\x00\x10\x00\x00\x00\x18\x00\x00\x00\x7c\xfe\xff\xff\x34\x00\x00\x00\x00\x41\x07\x1e\x10\x00\x00\x00\x2c\x00\x00\x00\xb8\xfe\xff\xff\x30\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x40\x00\x00\x00\xd4\xfe\xff\xff\x3c\x00\x00\x00\x00\x00\x00\x00\x20\x00\x00\x00\x54\x00\x00\x00\x00\xff\xff\xff\x48\x00\x00\x00\x00\x41\x0e\x20\x9d\x04\x9e\x03\x42\x93\x02\x4e\xde\xdd\xd3\x0e\x00\x00\x00\x00\x10\x00\x00\x00\x78\x00\x00\x00\x2c\xff\xff\xff\x04\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x8c\x00\x00\x00\xc8\xfd\xff\xff\x40\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".fini_array", 0x10DA0, "\x00\x07\x00\x00\x00\x00\x00\x00"), -Section(".dynamic", 0x10DA8, "\x01\x00\x00\x00\x00\x00\x00\x00\x28\x00\x00\x00\x00\x00\x00\x00\x0c\x00\x00\x00\x00\x00\x00\x00\x80\x05\x00\x00\x00\x00\x00\x00\x0d\x00\x00\x00\x00\x00\x00\x00\x54\x07\x00\x00\x00\x00\x00\x00\x19\x00\x00\x00\x00\x00\x00\x00\x98\x0d\x01\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x1a\x00\x00\x00\x00\x00\x00\x00\xa0\x0d\x01\x00\x00\x00\x00\x00\x1c\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\xf5\xfe\xff\x6f\x00\x00\x00\x00\x98\x02\x00\x00\x00\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x90\x03\x00\x00\x00\x00\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\xb8\x02\x00\x00\x00\x00\x00\x00\x0a\x00\x00\x00\x00\x00\x00\x00\x8d\x00\x00\x00\x00\x00\x00\x00\x0b\x00\x00\x00\x00\x00\x00\x00\x18\x00\x00\x00\x00\x00\x00\x00\x15\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x98\x0f\x01\x00\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x60\x00\x00\x00\x00\x00\x00\x00\x14\x00\x00\x00\x00\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x17\x00\x00\x00\x00\x00\x00\x00\x20\x05\x00\x00\x00\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x60\x04\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\xc0\x00\x00\x00\x00\x00\x00\x00\x09\x00\x00\x00\x00\x00\x00\x00\x18\x00\x00\x00\x00\x00\x00\x00\x1e\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\xfb\xff\xff\x6f\x00\x00\x00\x00\x01\x00\x00\x08\x00\x00\x00\x00\xfe\xff\xff\x6f\x00\x00\x00\x00\x30\x04\x00\x00\x00\x00\x00\x00\xff\xff\xff\x6f\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\xf0\xff\xff\x6f\x00\x00\x00\x00\x1e\x04\x00\x00\x00\x00\x00\x00\xf9\xff\xff\x6f\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".init_array", 0x10D98, "\x50\x07\x00\x00\x00\x00\x00\x00"), -Section(".got", 0x10F98, "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xa0\x05\x00\x00\x00\x00\x00\x00\xa0\x05\x00\x00\x00\x00\x00\x00\xa0\x05\x00\x00\x00\x00\x00\x00\xa0\x05\x00\x00\x00\x00\x00\x00\xa8\x0d\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".data", 0x11000, "\x00\x00\x00\x00\x00\x00\x00\x00\x08\x10\x01\x00\x00\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\xff\xff\xff\xff\x0f\x00\x00\x00\x01\x00\x00\x00\x02\x00\x00\x00\x61"), -Section(".text", 0x600, "\x85\x00\x00\xb0\xa1\x40\x00\x91\x00\x00\x80\x52\xa6\x10\x40\xb9\x24\x04\x40\xf9\xc6\x04\x00\x11\x22\x60\x40\x39\x23\x10\x40\xb9\x84\x04\x00\xd1\x42\x04\x00\x11\xa6\x10\x00\xb9\x63\x0c\x00\x11\x24\x04\x00\xf9\x23\x14\x00\xb9\x22\x60\x00\x39\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1d\x00\x80\xd2\x1e\x00\x80\xd2\xe5\x03\x00\xaa\xe1\x03\x40\xf9\xe2\x23\x00\x91\xe6\x03\x00\x91\x80\x00\x00\x90\x00\xf8\x47\xf9\x03\x00\x80\xd2\x04\x00\x80\xd2\xd5\xff\xff\x97\xe0\xff\xff\x97\x80\x00\x00\x90\x00\xf4\x47\xf9\x40\x00\x00\xb4\xd8\xff\xff\x17\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x80\x00\x00\xb0\x00\xc0\x00\x91\x81\x00\x00\xb0\x21\xc0\x00\x91\x3f\x00\x00\xeb\xc0\x00\x00\x54\x81\x00\x00\x90\x21\xec\x47\xf9\x61\x00\x00\xb4\xf0\x03\x01\xaa\x00\x02\x1f\xd6\xc0\x03\x5f\xd6\x80\x00\x00\xb0\x00\xc0\x00\x91\x81\x00\x00\xb0\x21\xc0\x00\x91\x21\x00\x00\xcb\x22\xfc\x7f\xd3\x41\x0c\x81\x8b\x21\xfc\x41\x93\xc1\x00\x00\xb4\x82\x00\x00\x90\x42\xfc\x47\xf9\x62\x00\x00\xb4\xf0\x03\x02\xaa\x00\x02\x1f\xd6\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\xfd\x7b\xbe\xa9\xfd\x03\x00\x91\xf3\x0b\x00\xf9\x93\x00\x00\xb0\x60\xa6\x40\x39\x40\x01\x00\x35\x80\x00\x00\x90\x00\xf0\x47\xf9\x80\x00\x00\xb4\x80\x00\x00\xb0\x00\x04\x40\xf9\xa9\xff\xff\x97\xd8\xff\xff\x97\x20\x00\x80\x52\x60\xa6\x00\x39\xf3\x0b\x40\xf9\xfd\x7b\xc2\xa8\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\xdc\xff\xff\x17")]), -Memmap([Annotation(Region(0x0,0x847), Attr("segment","02 0 2120")), -Annotation(Region(0x600,0x63F), Attr("symbol","\"main\"")), -Annotation(Region(0x0,0xF9), Attr("section","\".shstrtab\"")), -Annotation(Region(0x0,0x227), Attr("section","\".strtab\"")), -Annotation(Region(0x0,0x2A), Attr("section","\".comment\"")), -Annotation(Region(0x238,0x252), Attr("section","\".interp\"")), -Annotation(Region(0x254,0x277), Attr("section","\".note.gnu.build-id\"")), -Annotation(Region(0x278,0x297), Attr("section","\".note.ABI-tag\"")), -Annotation(Region(0x298,0x2B3), Attr("section","\".gnu.hash\"")), -Annotation(Region(0x2B8,0x38F), Attr("section","\".dynsym\"")), -Annotation(Region(0x390,0x41C), Attr("section","\".dynstr\"")), -Annotation(Region(0x41E,0x42F), Attr("section","\".gnu.version\"")), -Annotation(Region(0x430,0x45F), Attr("section","\".gnu.version_r\"")), -Annotation(Region(0x460,0x51F), Attr("section","\".rela.dyn\"")), -Annotation(Region(0x520,0x57F), Attr("section","\".rela.plt\"")), -Annotation(Region(0x580,0x597), Attr("section","\".init\"")), -Annotation(Region(0x5A0,0x5FF), Attr("section","\".plt\"")), -Annotation(Region(0x580,0x597), Attr("code-region","()")), -Annotation(Region(0x5A0,0x5FF), Attr("code-region","()")), -Annotation(Region(0x600,0x63F), Attr("symbol-info","main 0x600 64")), -Annotation(Region(0x640,0x673), Attr("symbol","\"_start\"")), -Annotation(Region(0x640,0x673), Attr("symbol-info","_start 0x640 52")), -Annotation(Region(0x674,0x687), Attr("symbol","\"call_weak_fn\"")), -Annotation(Region(0x674,0x687), Attr("symbol-info","call_weak_fn 0x674 20")), -Annotation(Region(0x754,0x767), Attr("section","\".fini\"")), -Annotation(Region(0x768,0x76B), Attr("section","\".rodata\"")), -Annotation(Region(0x76C,0x7A7), Attr("section","\".eh_frame_hdr\"")), -Annotation(Region(0x7A8,0x847), Attr("section","\".eh_frame\"")), -Annotation(Region(0x10D98,0x11028), Attr("segment","03 0x10D98 664")), -Annotation(Region(0x10DA0,0x10DA7), Attr("section","\".fini_array\"")), -Annotation(Region(0x10DA8,0x10F97), Attr("section","\".dynamic\"")), -Annotation(Region(0x10D98,0x10D9F), Attr("section","\".init_array\"")), -Annotation(Region(0x10F98,0x10FFF), Attr("section","\".got\"")), -Annotation(Region(0x11000,0x11028), Attr("section","\".data\"")), -Annotation(Region(0x600,0x753), Attr("section","\".text\"")), -Annotation(Region(0x600,0x753), Attr("code-region","()")), -Annotation(Region(0x754,0x767), Attr("code-region","()"))]), -Program(Tid(1_560, "%00000618"), Attrs([]), - Subs([Sub(Tid(1_510, "@__cxa_finalize"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x5D0"), -Attr("stub","()")]), "__cxa_finalize", Args([Arg(Tid(1_561, "%00000619"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("__cxa_finalize_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(906, "@__cxa_finalize"), - Attrs([Attr("address","0x5D0")]), Phis([]), -Defs([Def(Tid(1_154, "%00000482"), Attrs([Attr("address","0x5D0"), -Attr("insn","adrp x16, #65536")]), Var("R16",Imm(64)), Int(65536,64)), -Def(Tid(1_161, "%00000489"), Attrs([Attr("address","0x5D4"), -Attr("insn","ldr x17, [x16, #0xfb8]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(4024,64)),LittleEndian(),64)), -Def(Tid(1_167, "%0000048f"), Attrs([Attr("address","0x5D8"), -Attr("insn","add x16, x16, #0xfb8")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(4024,64)))]), Jmps([Call(Tid(1_172, "%00000494"), - Attrs([Attr("address","0x5DC"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), -Sub(Tid(1_511, "@__do_global_dtors_aux"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x700")]), - "__do_global_dtors_aux", Args([Arg(Tid(1_562, "%0000061a"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("__do_global_dtors_aux_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(759, "@__do_global_dtors_aux"), - Attrs([Attr("address","0x700")]), Phis([]), Defs([Def(Tid(763, "%000002fb"), - Attrs([Attr("address","0x700"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("#3",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(18446744073709551584,64))), -Def(Tid(769, "%00000301"), Attrs([Attr("address","0x700"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("#3",Imm(64)),Var("R29",Imm(64)),LittleEndian(),64)), -Def(Tid(775, "%00000307"), Attrs([Attr("address","0x700"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("#3",Imm(64)),Int(8,64)),Var("R30",Imm(64)),LittleEndian(),64)), -Def(Tid(779, "%0000030b"), Attrs([Attr("address","0x700"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("R31",Imm(64)), -Var("#3",Imm(64))), Def(Tid(785, "%00000311"), - Attrs([Attr("address","0x704"), Attr("insn","mov x29, sp")]), - Var("R29",Imm(64)), Var("R31",Imm(64))), Def(Tid(793, "%00000319"), - Attrs([Attr("address","0x708"), Attr("insn","str x19, [sp, #0x10]")]), - Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(16,64)),Var("R19",Imm(64)),LittleEndian(),64)), -Def(Tid(798, "%0000031e"), Attrs([Attr("address","0x70C"), -Attr("insn","adrp x19, #69632")]), Var("R19",Imm(64)), Int(69632,64)), -Def(Tid(805, "%00000325"), Attrs([Attr("address","0x710"), -Attr("insn","ldrb w0, [x19, #0x29]")]), Var("R0",Imm(64)), -UNSIGNED(64,Load(Var("mem",Mem(64,8)),PLUS(Var("R19",Imm(64)),Int(41,64)),LittleEndian(),8)))]), -Jmps([Goto(Tid(812, "%0000032c"), Attrs([Attr("address","0x714"), -Attr("insn","cbnz w0, #0x28")]), - NEQ(Extract(31,0,Var("R0",Imm(64))),Int(0,32)), -Direct(Tid(810, "%0000032a"))), Goto(Tid(1_550, "%0000060e"), Attrs([]), - Int(1,1), Direct(Tid(851, "%00000353")))])), Blk(Tid(851, "%00000353"), - Attrs([Attr("address","0x718")]), Phis([]), Defs([Def(Tid(854, "%00000356"), - Attrs([Attr("address","0x718"), Attr("insn","adrp x0, #65536")]), - Var("R0",Imm(64)), Int(65536,64)), Def(Tid(861, "%0000035d"), - Attrs([Attr("address","0x71C"), Attr("insn","ldr x0, [x0, #0xfe0]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(4064,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(867, "%00000363"), Attrs([Attr("address","0x720"), -Attr("insn","cbz x0, #0x10")]), EQ(Var("R0",Imm(64)),Int(0,64)), -Direct(Tid(865, "%00000361"))), Goto(Tid(1_551, "%0000060f"), Attrs([]), - Int(1,1), Direct(Tid(890, "%0000037a")))])), Blk(Tid(890, "%0000037a"), - Attrs([Attr("address","0x724")]), Phis([]), Defs([Def(Tid(893, "%0000037d"), - Attrs([Attr("address","0x724"), Attr("insn","adrp x0, #69632")]), - Var("R0",Imm(64)), Int(69632,64)), Def(Tid(900, "%00000384"), - Attrs([Attr("address","0x728"), Attr("insn","ldr x0, [x0, #0x8]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(905, "%00000389"), Attrs([Attr("address","0x72C"), -Attr("insn","bl #-0x15c")]), Var("R30",Imm(64)), Int(1840,64))]), -Jmps([Call(Tid(908, "%0000038c"), Attrs([Attr("address","0x72C"), -Attr("insn","bl #-0x15c")]), Int(1,1), -(Direct(Tid(1_510, "@__cxa_finalize")),Direct(Tid(865, "%00000361"))))])), -Blk(Tid(865, "%00000361"), Attrs([Attr("address","0x730")]), Phis([]), -Defs([Def(Tid(873, "%00000369"), Attrs([Attr("address","0x730"), -Attr("insn","bl #-0xa0")]), Var("R30",Imm(64)), Int(1844,64))]), -Jmps([Call(Tid(875, "%0000036b"), Attrs([Attr("address","0x730"), -Attr("insn","bl #-0xa0")]), Int(1,1), -(Direct(Tid(1_524, "@deregister_tm_clones")),Direct(Tid(877, "%0000036d"))))])), -Blk(Tid(877, "%0000036d"), Attrs([Attr("address","0x734")]), Phis([]), -Defs([Def(Tid(880, "%00000370"), Attrs([Attr("address","0x734"), -Attr("insn","mov w0, #0x1")]), Var("R0",Imm(64)), Int(1,64)), -Def(Tid(888, "%00000378"), Attrs([Attr("address","0x738"), -Attr("insn","strb w0, [x19, #0x29]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R19",Imm(64)),Int(41,64)),Extract(7,0,Var("R0",Imm(64))),LittleEndian(),8))]), -Jmps([Goto(Tid(1_552, "%00000610"), Attrs([]), Int(1,1), -Direct(Tid(810, "%0000032a")))])), Blk(Tid(810, "%0000032a"), - Attrs([Attr("address","0x73C")]), Phis([]), Defs([Def(Tid(820, "%00000334"), - Attrs([Attr("address","0x73C"), Attr("insn","ldr x19, [sp, #0x10]")]), - Var("R19",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(16,64)),LittleEndian(),64)), -Def(Tid(827, "%0000033b"), Attrs([Attr("address","0x740"), -Attr("insn","ldp x29, x30, [sp], #0x20")]), Var("R29",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(832, "%00000340"), Attrs([Attr("address","0x740"), -Attr("insn","ldp x29, x30, [sp], #0x20")]), Var("R30",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(836, "%00000344"), Attrs([Attr("address","0x740"), -Attr("insn","ldp x29, x30, [sp], #0x20")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(32,64)))]), Jmps([Call(Tid(841, "%00000349"), - Attrs([Attr("address","0x744"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), Sub(Tid(1_515, "@__libc_start_main"), - Attrs([Attr("c.proto","signed (*)(signed (*)(signed , char** , char** );* main, signed , char** , \nvoid* auxv)"), -Attr("address","0x5C0"), Attr("stub","()")]), "__libc_start_main", - Args([Arg(Tid(1_563, "%0000061b"), - Attrs([Attr("c.layout","**[ : 64]"), -Attr("c.data","Top:u64 ptr ptr"), -Attr("c.type","signed (*)(signed , char** , char** );*")]), - Var("__libc_start_main_main",Imm(64)), Var("R0",Imm(64)), In()), -Arg(Tid(1_564, "%0000061c"), Attrs([Attr("c.layout","[signed : 32]"), -Attr("c.data","Top:u32"), Attr("c.type","signed")]), - Var("__libc_start_main_arg2",Imm(32)), LOW(32,Var("R1",Imm(64))), In()), -Arg(Tid(1_565, "%0000061d"), Attrs([Attr("c.layout","**[char : 8]"), -Attr("c.data","Top:u8 ptr ptr"), Attr("c.type","char**")]), - Var("__libc_start_main_arg3",Imm(64)), Var("R2",Imm(64)), Both()), -Arg(Tid(1_566, "%0000061e"), Attrs([Attr("c.layout","*[ : 8]"), -Attr("c.data","{} ptr"), Attr("c.type","void*")]), - Var("__libc_start_main_auxv",Imm(64)), Var("R3",Imm(64)), Both()), -Arg(Tid(1_567, "%0000061f"), Attrs([Attr("c.layout","[signed : 32]"), -Attr("c.data","Top:u32"), Attr("c.type","signed")]), - Var("__libc_start_main_result",Imm(32)), LOW(32,Var("R0",Imm(64))), -Out())]), Blks([Blk(Tid(592, "@__libc_start_main"), - Attrs([Attr("address","0x5C0")]), Phis([]), -Defs([Def(Tid(1_132, "%0000046c"), Attrs([Attr("address","0x5C0"), -Attr("insn","adrp x16, #65536")]), Var("R16",Imm(64)), Int(65536,64)), -Def(Tid(1_139, "%00000473"), Attrs([Attr("address","0x5C4"), -Attr("insn","ldr x17, [x16, #0xfb0]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(4016,64)),LittleEndian(),64)), -Def(Tid(1_145, "%00000479"), Attrs([Attr("address","0x5C8"), -Attr("insn","add x16, x16, #0xfb0")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(4016,64)))]), Jmps([Call(Tid(1_150, "%0000047e"), - Attrs([Attr("address","0x5CC"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), Sub(Tid(1_516, "@_fini"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x754")]), - "_fini", Args([Arg(Tid(1_568, "%00000620"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("_fini_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(31, "@_fini"), - Attrs([Attr("address","0x754")]), Phis([]), Defs([Def(Tid(37, "%00000025"), - Attrs([Attr("address","0x758"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("#0",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(18446744073709551600,64))), -Def(Tid(43, "%0000002b"), Attrs([Attr("address","0x758"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("#0",Imm(64)),Var("R29",Imm(64)),LittleEndian(),64)), -Def(Tid(49, "%00000031"), Attrs([Attr("address","0x758"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("#0",Imm(64)),Int(8,64)),Var("R30",Imm(64)),LittleEndian(),64)), -Def(Tid(53, "%00000035"), Attrs([Attr("address","0x758"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("R31",Imm(64)), -Var("#0",Imm(64))), Def(Tid(59, "%0000003b"), Attrs([Attr("address","0x75C"), -Attr("insn","mov x29, sp")]), Var("R29",Imm(64)), Var("R31",Imm(64))), -Def(Tid(66, "%00000042"), Attrs([Attr("address","0x760"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R29",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(71, "%00000047"), Attrs([Attr("address","0x760"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R30",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(75, "%0000004b"), Attrs([Attr("address","0x760"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(16,64)))]), Jmps([Call(Tid(80, "%00000050"), - Attrs([Attr("address","0x764"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), Sub(Tid(1_517, "@_init"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x580")]), - "_init", Args([Arg(Tid(1_569, "%00000621"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("_init_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(1_336, "@_init"), - Attrs([Attr("address","0x580")]), Phis([]), -Defs([Def(Tid(1_342, "%0000053e"), Attrs([Attr("address","0x584"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("#5",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(18446744073709551600,64))), -Def(Tid(1_348, "%00000544"), Attrs([Attr("address","0x584"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("#5",Imm(64)),Var("R29",Imm(64)),LittleEndian(),64)), -Def(Tid(1_354, "%0000054a"), Attrs([Attr("address","0x584"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("#5",Imm(64)),Int(8,64)),Var("R30",Imm(64)),LittleEndian(),64)), -Def(Tid(1_358, "%0000054e"), Attrs([Attr("address","0x584"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("R31",Imm(64)), -Var("#5",Imm(64))), Def(Tid(1_364, "%00000554"), - Attrs([Attr("address","0x588"), Attr("insn","mov x29, sp")]), - Var("R29",Imm(64)), Var("R31",Imm(64))), Def(Tid(1_369, "%00000559"), - Attrs([Attr("address","0x58C"), Attr("insn","bl #0xe8")]), - Var("R30",Imm(64)), Int(1424,64))]), Jmps([Call(Tid(1_371, "%0000055b"), - Attrs([Attr("address","0x58C"), Attr("insn","bl #0xe8")]), Int(1,1), -(Direct(Tid(1_522, "@call_weak_fn")),Direct(Tid(1_373, "%0000055d"))))])), -Blk(Tid(1_373, "%0000055d"), Attrs([Attr("address","0x590")]), Phis([]), -Defs([Def(Tid(1_378, "%00000562"), Attrs([Attr("address","0x590"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R29",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(1_383, "%00000567"), Attrs([Attr("address","0x590"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R30",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(1_387, "%0000056b"), Attrs([Attr("address","0x590"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(16,64)))]), Jmps([Call(Tid(1_392, "%00000570"), - Attrs([Attr("address","0x594"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), Sub(Tid(1_518, "@_start"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x640"), -Attr("entry-point","()")]), "_start", Args([Arg(Tid(1_570, "%00000622"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("_start_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(529, "@_start"), - Attrs([Attr("address","0x640")]), Phis([]), Defs([Def(Tid(534, "%00000216"), - Attrs([Attr("address","0x644"), Attr("insn","mov x29, #0x0")]), - Var("R29",Imm(64)), Int(0,64)), Def(Tid(539, "%0000021b"), - Attrs([Attr("address","0x648"), Attr("insn","mov x30, #0x0")]), - Var("R30",Imm(64)), Int(0,64)), Def(Tid(545, "%00000221"), - Attrs([Attr("address","0x64C"), Attr("insn","mov x5, x0")]), - Var("R5",Imm(64)), Var("R0",Imm(64))), Def(Tid(552, "%00000228"), - Attrs([Attr("address","0x650"), Attr("insn","ldr x1, [sp]")]), - Var("R1",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(558, "%0000022e"), Attrs([Attr("address","0x654"), -Attr("insn","add x2, sp, #0x8")]), Var("R2",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(8,64))), Def(Tid(564, "%00000234"), - Attrs([Attr("address","0x658"), Attr("insn","mov x6, sp")]), - Var("R6",Imm(64)), Var("R31",Imm(64))), Def(Tid(569, "%00000239"), - Attrs([Attr("address","0x65C"), Attr("insn","adrp x0, #65536")]), - Var("R0",Imm(64)), Int(65536,64)), Def(Tid(576, "%00000240"), - Attrs([Attr("address","0x660"), Attr("insn","ldr x0, [x0, #0xff0]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(4080,64)),LittleEndian(),64)), -Def(Tid(581, "%00000245"), Attrs([Attr("address","0x664"), -Attr("insn","mov x3, #0x0")]), Var("R3",Imm(64)), Int(0,64)), -Def(Tid(586, "%0000024a"), Attrs([Attr("address","0x668"), -Attr("insn","mov x4, #0x0")]), Var("R4",Imm(64)), Int(0,64)), -Def(Tid(591, "%0000024f"), Attrs([Attr("address","0x66C"), -Attr("insn","bl #-0xac")]), Var("R30",Imm(64)), Int(1648,64))]), -Jmps([Call(Tid(594, "%00000252"), Attrs([Attr("address","0x66C"), -Attr("insn","bl #-0xac")]), Int(1,1), -(Direct(Tid(1_515, "@__libc_start_main")),Direct(Tid(596, "%00000254"))))])), -Blk(Tid(596, "%00000254"), Attrs([Attr("address","0x670")]), Phis([]), -Defs([Def(Tid(599, "%00000257"), Attrs([Attr("address","0x670"), -Attr("insn","bl #-0x80")]), Var("R30",Imm(64)), Int(1652,64))]), -Jmps([Call(Tid(602, "%0000025a"), Attrs([Attr("address","0x670"), -Attr("insn","bl #-0x80")]), Int(1,1), -(Direct(Tid(1_521, "@abort")),Direct(Tid(1_553, "%00000611"))))])), -Blk(Tid(1_553, "%00000611"), Attrs([]), Phis([]), Defs([]), -Jmps([Call(Tid(1_554, "%00000612"), Attrs([]), Int(1,1), -(Direct(Tid(1_522, "@call_weak_fn")),))]))])), Sub(Tid(1_521, "@abort"), - Attrs([Attr("noreturn","()"), Attr("c.proto","void (*)(void)"), -Attr("address","0x5F0"), Attr("stub","()")]), "abort", Args([]), -Blks([Blk(Tid(600, "@abort"), Attrs([Attr("address","0x5F0")]), Phis([]), -Defs([Def(Tid(1_198, "%000004ae"), Attrs([Attr("address","0x5F0"), -Attr("insn","adrp x16, #65536")]), Var("R16",Imm(64)), Int(65536,64)), -Def(Tid(1_205, "%000004b5"), Attrs([Attr("address","0x5F4"), -Attr("insn","ldr x17, [x16, #0xfc8]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(4040,64)),LittleEndian(),64)), -Def(Tid(1_211, "%000004bb"), Attrs([Attr("address","0x5F8"), -Attr("insn","add x16, x16, #0xfc8")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(4040,64)))]), Jmps([Call(Tid(1_216, "%000004c0"), - Attrs([Attr("address","0x5FC"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), Sub(Tid(1_522, "@call_weak_fn"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x674")]), - "call_weak_fn", Args([Arg(Tid(1_571, "%00000623"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("call_weak_fn_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(604, "@call_weak_fn"), - Attrs([Attr("address","0x674")]), Phis([]), Defs([Def(Tid(607, "%0000025f"), - Attrs([Attr("address","0x674"), Attr("insn","adrp x0, #65536")]), - Var("R0",Imm(64)), Int(65536,64)), Def(Tid(614, "%00000266"), - Attrs([Attr("address","0x678"), Attr("insn","ldr x0, [x0, #0xfe8]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(4072,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(620, "%0000026c"), Attrs([Attr("address","0x67C"), -Attr("insn","cbz x0, #0x8")]), EQ(Var("R0",Imm(64)),Int(0,64)), -Direct(Tid(618, "%0000026a"))), Goto(Tid(1_555, "%00000613"), Attrs([]), - Int(1,1), Direct(Tid(970, "%000003ca")))])), Blk(Tid(618, "%0000026a"), - Attrs([Attr("address","0x684")]), Phis([]), Defs([]), -Jmps([Call(Tid(626, "%00000272"), Attrs([Attr("address","0x684"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))])), -Blk(Tid(970, "%000003ca"), Attrs([Attr("address","0x680")]), Phis([]), -Defs([]), Jmps([Goto(Tid(973, "%000003cd"), Attrs([Attr("address","0x680"), -Attr("insn","b #-0xa0")]), Int(1,1), Direct(Tid(971, "@__gmon_start__")))])), -Blk(Tid(971, "@__gmon_start__"), Attrs([Attr("address","0x5E0")]), Phis([]), -Defs([Def(Tid(1_176, "%00000498"), Attrs([Attr("address","0x5E0"), -Attr("insn","adrp x16, #65536")]), Var("R16",Imm(64)), Int(65536,64)), -Def(Tid(1_183, "%0000049f"), Attrs([Attr("address","0x5E4"), -Attr("insn","ldr x17, [x16, #0xfc0]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(4032,64)),LittleEndian(),64)), -Def(Tid(1_189, "%000004a5"), Attrs([Attr("address","0x5E8"), -Attr("insn","add x16, x16, #0xfc0")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(4032,64)))]), Jmps([Call(Tid(1_194, "%000004aa"), - Attrs([Attr("address","0x5EC"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), -Sub(Tid(1_524, "@deregister_tm_clones"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x690")]), - "deregister_tm_clones", Args([Arg(Tid(1_572, "%00000624"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("deregister_tm_clones_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(632, "@deregister_tm_clones"), - Attrs([Attr("address","0x690")]), Phis([]), Defs([Def(Tid(635, "%0000027b"), - Attrs([Attr("address","0x690"), Attr("insn","adrp x0, #69632")]), - Var("R0",Imm(64)), Int(69632,64)), Def(Tid(641, "%00000281"), - Attrs([Attr("address","0x694"), Attr("insn","add x0, x0, #0x30")]), - Var("R0",Imm(64)), PLUS(Var("R0",Imm(64)),Int(48,64))), -Def(Tid(646, "%00000286"), Attrs([Attr("address","0x698"), -Attr("insn","adrp x1, #69632")]), Var("R1",Imm(64)), Int(69632,64)), -Def(Tid(652, "%0000028c"), Attrs([Attr("address","0x69C"), -Attr("insn","add x1, x1, #0x30")]), Var("R1",Imm(64)), -PLUS(Var("R1",Imm(64)),Int(48,64))), Def(Tid(658, "%00000292"), - Attrs([Attr("address","0x6A0"), Attr("insn","cmp x1, x0")]), - Var("#1",Imm(64)), NOT(Var("R0",Imm(64)))), Def(Tid(663, "%00000297"), - Attrs([Attr("address","0x6A0"), Attr("insn","cmp x1, x0")]), - Var("#2",Imm(64)), PLUS(Var("R1",Imm(64)),NOT(Var("R0",Imm(64))))), -Def(Tid(669, "%0000029d"), Attrs([Attr("address","0x6A0"), -Attr("insn","cmp x1, x0")]), Var("VF",Imm(1)), -NEQ(SIGNED(65,PLUS(Var("#2",Imm(64)),Int(1,64))),PLUS(PLUS(SIGNED(65,Var("R1",Imm(64))),SIGNED(65,Var("#1",Imm(64)))),Int(1,65)))), -Def(Tid(675, "%000002a3"), Attrs([Attr("address","0x6A0"), -Attr("insn","cmp x1, x0")]), Var("CF",Imm(1)), -NEQ(UNSIGNED(65,PLUS(Var("#2",Imm(64)),Int(1,64))),PLUS(PLUS(UNSIGNED(65,Var("R1",Imm(64))),UNSIGNED(65,Var("#1",Imm(64)))),Int(1,65)))), -Def(Tid(679, "%000002a7"), Attrs([Attr("address","0x6A0"), -Attr("insn","cmp x1, x0")]), Var("ZF",Imm(1)), -EQ(PLUS(Var("#2",Imm(64)),Int(1,64)),Int(0,64))), Def(Tid(683, "%000002ab"), - Attrs([Attr("address","0x6A0"), Attr("insn","cmp x1, x0")]), - Var("NF",Imm(1)), Extract(63,63,PLUS(Var("#2",Imm(64)),Int(1,64))))]), -Jmps([Goto(Tid(689, "%000002b1"), Attrs([Attr("address","0x6A4"), -Attr("insn","b.eq #0x18")]), EQ(Var("ZF",Imm(1)),Int(1,1)), -Direct(Tid(687, "%000002af"))), Goto(Tid(1_556, "%00000614"), Attrs([]), - Int(1,1), Direct(Tid(940, "%000003ac")))])), Blk(Tid(940, "%000003ac"), - Attrs([Attr("address","0x6A8")]), Phis([]), Defs([Def(Tid(943, "%000003af"), - Attrs([Attr("address","0x6A8"), Attr("insn","adrp x1, #65536")]), - Var("R1",Imm(64)), Int(65536,64)), Def(Tid(950, "%000003b6"), - Attrs([Attr("address","0x6AC"), Attr("insn","ldr x1, [x1, #0xfd8]")]), - Var("R1",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R1",Imm(64)),Int(4056,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(955, "%000003bb"), Attrs([Attr("address","0x6B0"), -Attr("insn","cbz x1, #0xc")]), EQ(Var("R1",Imm(64)),Int(0,64)), -Direct(Tid(687, "%000002af"))), Goto(Tid(1_557, "%00000615"), Attrs([]), - Int(1,1), Direct(Tid(959, "%000003bf")))])), Blk(Tid(687, "%000002af"), - Attrs([Attr("address","0x6BC")]), Phis([]), Defs([]), -Jmps([Call(Tid(695, "%000002b7"), Attrs([Attr("address","0x6BC"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))])), -Blk(Tid(959, "%000003bf"), Attrs([Attr("address","0x6B4")]), Phis([]), -Defs([Def(Tid(963, "%000003c3"), Attrs([Attr("address","0x6B4"), -Attr("insn","mov x16, x1")]), Var("R16",Imm(64)), Var("R1",Imm(64)))]), -Jmps([Call(Tid(968, "%000003c8"), Attrs([Attr("address","0x6B8"), -Attr("insn","br x16")]), Int(1,1), (Indirect(Var("R16",Imm(64))),))]))])), -Sub(Tid(1_527, "@frame_dummy"), Attrs([Attr("c.proto","signed (*)(void)"), -Attr("address","0x750")]), "frame_dummy", Args([Arg(Tid(1_573, "%00000625"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("frame_dummy_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(847, "@frame_dummy"), - Attrs([Attr("address","0x750")]), Phis([]), Defs([]), -Jmps([Call(Tid(849, "%00000351"), Attrs([Attr("address","0x750"), -Attr("insn","b #-0x90")]), Int(1,1), -(Direct(Tid(1_529, "@register_tm_clones")),))]))])), Sub(Tid(1_528, "@main"), - Attrs([Attr("c.proto","signed (*)(signed argc, const char** argv)"), -Attr("address","0x600"), Attr("stub","()")]), "main", - Args([Arg(Tid(1_574, "%00000626"), Attrs([Attr("c.layout","[signed : 32]"), -Attr("c.data","Top:u32"), Attr("c.type","signed")]), - Var("main_argc",Imm(32)), LOW(32,Var("R0",Imm(64))), In()), -Arg(Tid(1_575, "%00000627"), Attrs([Attr("c.layout","**[char : 8]"), -Attr("c.data","Top:u8 ptr ptr"), Attr("c.type"," const char**")]), - Var("main_argv",Imm(64)), Var("R1",Imm(64)), Both()), -Arg(Tid(1_576, "%00000628"), Attrs([Attr("c.layout","[signed : 32]"), -Attr("c.data","Top:u32"), Attr("c.type","signed")]), - Var("main_result",Imm(32)), LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(424, "@main"), Attrs([Attr("address","0x600")]), Phis([]), -Defs([Def(Tid(427, "%000001ab"), Attrs([Attr("address","0x600"), -Attr("insn","adrp x5, #69632")]), Var("R5",Imm(64)), Int(69632,64)), -Def(Tid(433, "%000001b1"), Attrs([Attr("address","0x604"), -Attr("insn","add x1, x5, #0x10")]), Var("R1",Imm(64)), -PLUS(Var("R5",Imm(64)),Int(16,64))), Def(Tid(438, "%000001b6"), - Attrs([Attr("address","0x608"), Attr("insn","mov w0, #0x0")]), - Var("R0",Imm(64)), Int(0,64)), Def(Tid(445, "%000001bd"), - Attrs([Attr("address","0x60C"), Attr("insn","ldr w6, [x5, #0x10]")]), - Var("R6",Imm(64)), -UNSIGNED(64,Load(Var("mem",Mem(64,8)),PLUS(Var("R5",Imm(64)),Int(16,64)),LittleEndian(),32))), -Def(Tid(452, "%000001c4"), Attrs([Attr("address","0x610"), -Attr("insn","ldr x4, [x1, #0x8]")]), Var("R4",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R1",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(458, "%000001ca"), Attrs([Attr("address","0x614"), -Attr("insn","add w6, w6, #0x1")]), Var("R6",Imm(64)), -UNSIGNED(64,PLUS(Extract(31,0,Var("R6",Imm(64))),Int(1,32)))), -Def(Tid(465, "%000001d1"), Attrs([Attr("address","0x618"), -Attr("insn","ldrb w2, [x1, #0x18]")]), Var("R2",Imm(64)), -UNSIGNED(64,Load(Var("mem",Mem(64,8)),PLUS(Var("R1",Imm(64)),Int(24,64)),LittleEndian(),8))), -Def(Tid(472, "%000001d8"), Attrs([Attr("address","0x61C"), -Attr("insn","ldr w3, [x1, #0x10]")]), Var("R3",Imm(64)), -UNSIGNED(64,Load(Var("mem",Mem(64,8)),PLUS(Var("R1",Imm(64)),Int(16,64)),LittleEndian(),32))), -Def(Tid(478, "%000001de"), Attrs([Attr("address","0x620"), -Attr("insn","sub x4, x4, #0x1")]), Var("R4",Imm(64)), -PLUS(Var("R4",Imm(64)),Int(18446744073709551615,64))), -Def(Tid(484, "%000001e4"), Attrs([Attr("address","0x624"), -Attr("insn","add w2, w2, #0x1")]), Var("R2",Imm(64)), -UNSIGNED(64,PLUS(Extract(31,0,Var("R2",Imm(64))),Int(1,32)))), -Def(Tid(492, "%000001ec"), Attrs([Attr("address","0x628"), -Attr("insn","str w6, [x5, #0x10]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R5",Imm(64)),Int(16,64)),Extract(31,0,Var("R6",Imm(64))),LittleEndian(),32)), -Def(Tid(498, "%000001f2"), Attrs([Attr("address","0x62C"), -Attr("insn","add w3, w3, #0x3")]), Var("R3",Imm(64)), -UNSIGNED(64,PLUS(Extract(31,0,Var("R3",Imm(64))),Int(3,32)))), -Def(Tid(506, "%000001fa"), Attrs([Attr("address","0x630"), -Attr("insn","str x4, [x1, #0x8]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R1",Imm(64)),Int(8,64)),Var("R4",Imm(64)),LittleEndian(),64)), -Def(Tid(514, "%00000202"), Attrs([Attr("address","0x634"), -Attr("insn","str w3, [x1, #0x14]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R1",Imm(64)),Int(20,64)),Extract(31,0,Var("R3",Imm(64))),LittleEndian(),32)), -Def(Tid(522, "%0000020a"), Attrs([Attr("address","0x638"), -Attr("insn","strb w2, [x1, #0x18]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R1",Imm(64)),Int(24,64)),Extract(7,0,Var("R2",Imm(64))),LittleEndian(),8))]), -Jmps([Call(Tid(527, "%0000020f"), Attrs([Attr("address","0x63C"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))]))])), -Sub(Tid(1_529, "@register_tm_clones"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x6C0")]), - "register_tm_clones", Args([Arg(Tid(1_577, "%00000629"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("register_tm_clones_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(697, "@register_tm_clones"), Attrs([Attr("address","0x6C0")]), - Phis([]), Defs([Def(Tid(700, "%000002bc"), Attrs([Attr("address","0x6C0"), -Attr("insn","adrp x0, #69632")]), Var("R0",Imm(64)), Int(69632,64)), -Def(Tid(706, "%000002c2"), Attrs([Attr("address","0x6C4"), -Attr("insn","add x0, x0, #0x30")]), Var("R0",Imm(64)), -PLUS(Var("R0",Imm(64)),Int(48,64))), Def(Tid(711, "%000002c7"), - Attrs([Attr("address","0x6C8"), Attr("insn","adrp x1, #69632")]), - Var("R1",Imm(64)), Int(69632,64)), Def(Tid(717, "%000002cd"), - Attrs([Attr("address","0x6CC"), Attr("insn","add x1, x1, #0x30")]), - Var("R1",Imm(64)), PLUS(Var("R1",Imm(64)),Int(48,64))), -Def(Tid(724, "%000002d4"), Attrs([Attr("address","0x6D0"), -Attr("insn","sub x1, x1, x0")]), Var("R1",Imm(64)), -PLUS(PLUS(Var("R1",Imm(64)),NOT(Var("R0",Imm(64)))),Int(1,64))), -Def(Tid(730, "%000002da"), Attrs([Attr("address","0x6D4"), -Attr("insn","lsr x2, x1, #63")]), Var("R2",Imm(64)), -Concat(Int(0,63),Extract(63,63,Var("R1",Imm(64))))), -Def(Tid(737, "%000002e1"), Attrs([Attr("address","0x6D8"), -Attr("insn","add x1, x2, x1, asr #3")]), Var("R1",Imm(64)), -PLUS(Var("R2",Imm(64)),ARSHIFT(Var("R1",Imm(64)),Int(3,3)))), -Def(Tid(743, "%000002e7"), Attrs([Attr("address","0x6DC"), -Attr("insn","asr x1, x1, #1")]), Var("R1",Imm(64)), -SIGNED(64,Extract(63,1,Var("R1",Imm(64)))))]), -Jmps([Goto(Tid(749, "%000002ed"), Attrs([Attr("address","0x6E0"), -Attr("insn","cbz x1, #0x18")]), EQ(Var("R1",Imm(64)),Int(0,64)), -Direct(Tid(747, "%000002eb"))), Goto(Tid(1_558, "%00000616"), Attrs([]), - Int(1,1), Direct(Tid(910, "%0000038e")))])), Blk(Tid(910, "%0000038e"), - Attrs([Attr("address","0x6E4")]), Phis([]), Defs([Def(Tid(913, "%00000391"), - Attrs([Attr("address","0x6E4"), Attr("insn","adrp x2, #65536")]), - Var("R2",Imm(64)), Int(65536,64)), Def(Tid(920, "%00000398"), - Attrs([Attr("address","0x6E8"), Attr("insn","ldr x2, [x2, #0xff8]")]), - Var("R2",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R2",Imm(64)),Int(4088,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(925, "%0000039d"), Attrs([Attr("address","0x6EC"), -Attr("insn","cbz x2, #0xc")]), EQ(Var("R2",Imm(64)),Int(0,64)), -Direct(Tid(747, "%000002eb"))), Goto(Tid(1_559, "%00000617"), Attrs([]), - Int(1,1), Direct(Tid(929, "%000003a1")))])), Blk(Tid(747, "%000002eb"), - Attrs([Attr("address","0x6F8")]), Phis([]), Defs([]), -Jmps([Call(Tid(755, "%000002f3"), Attrs([Attr("address","0x6F8"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))])), -Blk(Tid(929, "%000003a1"), Attrs([Attr("address","0x6F0")]), Phis([]), -Defs([Def(Tid(933, "%000003a5"), Attrs([Attr("address","0x6F0"), -Attr("insn","mov x16, x2")]), Var("R16",Imm(64)), Var("R2",Imm(64)))]), -Jmps([Call(Tid(938, "%000003aa"), Attrs([Attr("address","0x6F4"), -Attr("insn","br x16")]), Int(1,1), -(Indirect(Var("R16",Imm(64))),))]))]))]))) \ No newline at end of file diff --git a/src/test/correct/initialisation/gcc_O2/initialisation.bir b/src/test/correct/initialisation/gcc_O2/initialisation.bir deleted file mode 100644 index 3e926f573..000000000 --- a/src/test/correct/initialisation/gcc_O2/initialisation.bir +++ /dev/null @@ -1,238 +0,0 @@ -00000618: program -000005e6: sub __cxa_finalize(__cxa_finalize_result) -00000619: __cxa_finalize_result :: out u32 = low:32[R0] - -0000038a: -00000482: R16 := 0x10000 -00000489: R17 := mem[R16 + 0xFB8, el]:u64 -0000048f: R16 := R16 + 0xFB8 -00000494: call R17 with noreturn - -000005e7: sub __do_global_dtors_aux(__do_global_dtors_aux_result) -0000061a: __do_global_dtors_aux_result :: out u32 = low:32[R0] - -000002f7: -000002fb: #3 := R31 - 0x20 -00000301: mem := mem with [#3, el]:u64 <- R29 -00000307: mem := mem with [#3 + 8, el]:u64 <- R30 -0000030b: R31 := #3 -00000311: R29 := R31 -00000319: mem := mem with [R31 + 0x10, el]:u64 <- R19 -0000031e: R19 := 0x11000 -00000325: R0 := pad:64[mem[R19 + 0x29]] -0000032c: when 31:0[R0] <> 0 goto %0000032a -0000060e: goto %00000353 - -00000353: -00000356: R0 := 0x10000 -0000035d: R0 := mem[R0 + 0xFE0, el]:u64 -00000363: when R0 = 0 goto %00000361 -0000060f: goto %0000037a - -0000037a: -0000037d: R0 := 0x11000 -00000384: R0 := mem[R0 + 8, el]:u64 -00000389: R30 := 0x730 -0000038c: call @__cxa_finalize with return %00000361 - -00000361: -00000369: R30 := 0x734 -0000036b: call @deregister_tm_clones with return %0000036d - -0000036d: -00000370: R0 := 1 -00000378: mem := mem with [R19 + 0x29] <- 7:0[R0] -00000610: goto %0000032a - -0000032a: -00000334: R19 := mem[R31 + 0x10, el]:u64 -0000033b: R29 := mem[R31, el]:u64 -00000340: R30 := mem[R31 + 8, el]:u64 -00000344: R31 := R31 + 0x20 -00000349: call R30 with noreturn - -000005eb: sub __libc_start_main(__libc_start_main_main, __libc_start_main_arg2, __libc_start_main_arg3, __libc_start_main_auxv, __libc_start_main_result) -0000061b: __libc_start_main_main :: in u64 = R0 -0000061c: __libc_start_main_arg2 :: in u32 = low:32[R1] -0000061d: __libc_start_main_arg3 :: in out u64 = R2 -0000061e: __libc_start_main_auxv :: in out u64 = R3 -0000061f: __libc_start_main_result :: out u32 = low:32[R0] - -00000250: -0000046c: R16 := 0x10000 -00000473: R17 := mem[R16 + 0xFB0, el]:u64 -00000479: R16 := R16 + 0xFB0 -0000047e: call R17 with noreturn - -000005ec: sub _fini(_fini_result) -00000620: _fini_result :: out u32 = low:32[R0] - -0000001f: -00000025: #0 := R31 - 0x10 -0000002b: mem := mem with [#0, el]:u64 <- R29 -00000031: mem := mem with [#0 + 8, el]:u64 <- R30 -00000035: R31 := #0 -0000003b: R29 := R31 -00000042: R29 := mem[R31, el]:u64 -00000047: R30 := mem[R31 + 8, el]:u64 -0000004b: R31 := R31 + 0x10 -00000050: call R30 with noreturn - -000005ed: sub _init(_init_result) -00000621: _init_result :: out u32 = low:32[R0] - -00000538: -0000053e: #5 := R31 - 0x10 -00000544: mem := mem with [#5, el]:u64 <- R29 -0000054a: mem := mem with [#5 + 8, el]:u64 <- R30 -0000054e: R31 := #5 -00000554: R29 := R31 -00000559: R30 := 0x590 -0000055b: call @call_weak_fn with return %0000055d - -0000055d: -00000562: R29 := mem[R31, el]:u64 -00000567: R30 := mem[R31 + 8, el]:u64 -0000056b: R31 := R31 + 0x10 -00000570: call R30 with noreturn - -000005ee: sub _start(_start_result) -00000622: _start_result :: out u32 = low:32[R0] - -00000211: -00000216: R29 := 0 -0000021b: R30 := 0 -00000221: R5 := R0 -00000228: R1 := mem[R31, el]:u64 -0000022e: R2 := R31 + 8 -00000234: R6 := R31 -00000239: R0 := 0x10000 -00000240: R0 := mem[R0 + 0xFF0, el]:u64 -00000245: R3 := 0 -0000024a: R4 := 0 -0000024f: R30 := 0x670 -00000252: call @__libc_start_main with return %00000254 - -00000254: -00000257: R30 := 0x674 -0000025a: call @abort with return %00000611 - -00000611: -00000612: call @call_weak_fn with noreturn - -000005f1: sub abort() - - -00000258: -000004ae: R16 := 0x10000 -000004b5: R17 := mem[R16 + 0xFC8, el]:u64 -000004bb: R16 := R16 + 0xFC8 -000004c0: call R17 with noreturn - -000005f2: sub call_weak_fn(call_weak_fn_result) -00000623: call_weak_fn_result :: out u32 = low:32[R0] - -0000025c: -0000025f: R0 := 0x10000 -00000266: R0 := mem[R0 + 0xFE8, el]:u64 -0000026c: when R0 = 0 goto %0000026a -00000613: goto %000003ca - -0000026a: -00000272: call R30 with noreturn - -000003ca: -000003cd: goto @__gmon_start__ - -000003cb: -00000498: R16 := 0x10000 -0000049f: R17 := mem[R16 + 0xFC0, el]:u64 -000004a5: R16 := R16 + 0xFC0 -000004aa: call R17 with noreturn - -000005f4: sub deregister_tm_clones(deregister_tm_clones_result) -00000624: deregister_tm_clones_result :: out u32 = low:32[R0] - -00000278: -0000027b: R0 := 0x11000 -00000281: R0 := R0 + 0x30 -00000286: R1 := 0x11000 -0000028c: R1 := R1 + 0x30 -00000292: #1 := ~R0 -00000297: #2 := R1 + ~R0 -0000029d: VF := extend:65[#2 + 1] <> extend:65[R1] + extend:65[#1] + 1 -000002a3: CF := pad:65[#2 + 1] <> pad:65[R1] + pad:65[#1] + 1 -000002a7: ZF := #2 + 1 = 0 -000002ab: NF := 63:63[#2 + 1] -000002b1: when ZF goto %000002af -00000614: goto %000003ac - -000003ac: -000003af: R1 := 0x10000 -000003b6: R1 := mem[R1 + 0xFD8, el]:u64 -000003bb: when R1 = 0 goto %000002af -00000615: goto %000003bf - -000002af: -000002b7: call R30 with noreturn - -000003bf: -000003c3: R16 := R1 -000003c8: call R16 with noreturn - -000005f7: sub frame_dummy(frame_dummy_result) -00000625: frame_dummy_result :: out u32 = low:32[R0] - -0000034f: -00000351: call @register_tm_clones with noreturn - -000005f8: sub main(main_argc, main_argv, main_result) -00000626: main_argc :: in u32 = low:32[R0] -00000627: main_argv :: in out u64 = R1 -00000628: main_result :: out u32 = low:32[R0] - -000001a8: -000001ab: R5 := 0x11000 -000001b1: R1 := R5 + 0x10 -000001b6: R0 := 0 -000001bd: R6 := pad:64[mem[R5 + 0x10, el]:u32] -000001c4: R4 := mem[R1 + 8, el]:u64 -000001ca: R6 := pad:64[31:0[R6] + 1] -000001d1: R2 := pad:64[mem[R1 + 0x18]] -000001d8: R3 := pad:64[mem[R1 + 0x10, el]:u32] -000001de: R4 := R4 - 1 -000001e4: R2 := pad:64[31:0[R2] + 1] -000001ec: mem := mem with [R5 + 0x10, el]:u32 <- 31:0[R6] -000001f2: R3 := pad:64[31:0[R3] + 3] -000001fa: mem := mem with [R1 + 8, el]:u64 <- R4 -00000202: mem := mem with [R1 + 0x14, el]:u32 <- 31:0[R3] -0000020a: mem := mem with [R1 + 0x18] <- 7:0[R2] -0000020f: call R30 with noreturn - -000005f9: sub register_tm_clones(register_tm_clones_result) -00000629: register_tm_clones_result :: out u32 = low:32[R0] - -000002b9: -000002bc: R0 := 0x11000 -000002c2: R0 := R0 + 0x30 -000002c7: R1 := 0x11000 -000002cd: R1 := R1 + 0x30 -000002d4: R1 := R1 + ~R0 + 1 -000002da: R2 := 0.63:63[R1] -000002e1: R1 := R2 + (R1 ~>> 3) -000002e7: R1 := extend:64[63:1[R1]] -000002ed: when R1 = 0 goto %000002eb -00000616: goto %0000038e - -0000038e: -00000391: R2 := 0x10000 -00000398: R2 := mem[R2 + 0xFF8, el]:u64 -0000039d: when R2 = 0 goto %000002eb -00000617: goto %000003a1 - -000002eb: -000002f3: call R30 with noreturn - -000003a1: -000003a5: R16 := R2 -000003aa: call R16 with noreturn diff --git a/src/test/correct/initialisation/gcc_O2/initialisation.expected b/src/test/correct/initialisation/gcc_O2/initialisation.expected index 8bac0a689..9f641fef0 100644 --- a/src/test/correct/initialisation/gcc_O2/initialisation.expected +++ b/src/test/correct/initialisation/gcc_O2/initialisation.expected @@ -104,7 +104,7 @@ procedure {:extern} rely_reflexive(); procedure {:extern} guarantee_reflexive(); modifies Gamma_mem, mem; -procedure main_1536(); +procedure main(); modifies Gamma_R0, Gamma_R1, Gamma_R2, Gamma_R3, Gamma_R4, Gamma_R5, Gamma_R6, Gamma_mem, R0, R1, R2, R3, R4, R5, R6, mem; free requires (memory_load64_le(mem, 69632bv64) == 0bv64); free requires (memory_load64_le(mem, 69640bv64) == 69640bv64); @@ -126,34 +126,34 @@ procedure main_1536(); free ensures (memory_load64_le(mem, 69616bv64) == 1536bv64); free ensures (memory_load64_le(mem, 69640bv64) == 69640bv64); -implementation main_1536() +implementation main() { - var Gamma_load18: bool; - var Gamma_load19: bool; - var Gamma_load20: bool; - var Gamma_load21: bool; - var load18: bv32; - var load19: bv64; - var load20: bv8; - var load21: bv32; + var $load$18: bv32; + var $load$19: bv64; + var $load$20: bv8; + var $load$21: bv32; + var Gamma_$load$18: bool; + var Gamma_$load$19: bool; + var Gamma_$load$20: bool; + var Gamma_$load$21: bool; lmain: assume {:captureState "lmain"} true; R5, Gamma_R5 := 69632bv64, true; R1, Gamma_R1 := bvadd64(R5, 16bv64), Gamma_R5; R0, Gamma_R0 := 0bv64, true; call rely(); - load18, Gamma_load18 := memory_load32_le(mem, bvadd64(R5, 16bv64)), (gamma_load32(Gamma_mem, bvadd64(R5, 16bv64)) || L(mem, bvadd64(R5, 16bv64))); - R6, Gamma_R6 := zero_extend32_32(load18), Gamma_load18; + $load$18, Gamma_$load$18 := memory_load32_le(mem, bvadd64(R5, 16bv64)), (gamma_load32(Gamma_mem, bvadd64(R5, 16bv64)) || L(mem, bvadd64(R5, 16bv64))); + R6, Gamma_R6 := zero_extend32_32($load$18), Gamma_$load$18; call rely(); - load19, Gamma_load19 := memory_load64_le(mem, bvadd64(R1, 8bv64)), (gamma_load64(Gamma_mem, bvadd64(R1, 8bv64)) || L(mem, bvadd64(R1, 8bv64))); - R4, Gamma_R4 := load19, Gamma_load19; + $load$19, Gamma_$load$19 := memory_load64_le(mem, bvadd64(R1, 8bv64)), (gamma_load64(Gamma_mem, bvadd64(R1, 8bv64)) || L(mem, bvadd64(R1, 8bv64))); + R4, Gamma_R4 := $load$19, Gamma_$load$19; R6, Gamma_R6 := zero_extend32_32(bvadd32(R6[32:0], 1bv32)), Gamma_R6; call rely(); - load20, Gamma_load20 := memory_load8_le(mem, bvadd64(R1, 24bv64)), (gamma_load8(Gamma_mem, bvadd64(R1, 24bv64)) || L(mem, bvadd64(R1, 24bv64))); - R2, Gamma_R2 := zero_extend56_8(load20), Gamma_load20; + $load$20, Gamma_$load$20 := memory_load8_le(mem, bvadd64(R1, 24bv64)), (gamma_load8(Gamma_mem, bvadd64(R1, 24bv64)) || L(mem, bvadd64(R1, 24bv64))); + R2, Gamma_R2 := zero_extend56_8($load$20), Gamma_$load$20; call rely(); - load21, Gamma_load21 := memory_load32_le(mem, bvadd64(R1, 16bv64)), (gamma_load32(Gamma_mem, bvadd64(R1, 16bv64)) || L(mem, bvadd64(R1, 16bv64))); - R3, Gamma_R3 := zero_extend32_32(load21), Gamma_load21; + $load$21, Gamma_$load$21 := memory_load32_le(mem, bvadd64(R1, 16bv64)), (gamma_load32(Gamma_mem, bvadd64(R1, 16bv64)) || L(mem, bvadd64(R1, 16bv64))); + R3, Gamma_R3 := zero_extend32_32($load$21), Gamma_$load$21; R4, Gamma_R4 := bvadd64(R4, 18446744073709551615bv64), Gamma_R4; R2, Gamma_R2 := zero_extend32_32(bvadd32(R2[32:0], 1bv32)), Gamma_R2; call rely(); @@ -173,9 +173,9 @@ implementation main_1536() assert (L(mem, bvadd64(R1, 24bv64)) ==> Gamma_R2); mem, Gamma_mem := memory_store8_le(mem, bvadd64(R1, 24bv64), R2[8:0]), gamma_store8(Gamma_mem, bvadd64(R1, 24bv64), Gamma_R2); assume {:captureState "%0000020a"} true; - goto main_1536_basil_return; - main_1536_basil_return: - assume {:captureState "main_1536_basil_return"} true; + goto main_basil_return; + main_basil_return: + assume {:captureState "main_basil_return"} true; return; } diff --git a/src/test/correct/initialisation/gcc_O2/initialisation.gts b/src/test/correct/initialisation/gcc_O2/initialisation.gts deleted file mode 100644 index fd8e658ed..000000000 Binary files a/src/test/correct/initialisation/gcc_O2/initialisation.gts and /dev/null differ diff --git a/src/test/correct/initialisation/gcc_O2/initialisation.md5sum b/src/test/correct/initialisation/gcc_O2/initialisation.md5sum new file mode 100644 index 000000000..d363ed99d --- /dev/null +++ b/src/test/correct/initialisation/gcc_O2/initialisation.md5sum @@ -0,0 +1,5 @@ +9ee80c0a445be41606b270154b1970da correct/initialisation/gcc_O2/a.out +5ccc0d67e20185f0beed74cd40ba3592 correct/initialisation/gcc_O2/initialisation.adt +030f76a2e5343760fe26a603aa4c3d3c correct/initialisation/gcc_O2/initialisation.bir +200d1f5bd7eda03e4cb7c536fb59923f correct/initialisation/gcc_O2/initialisation.relf +42ab30c6c55d291b66ebf73d346cd95d correct/initialisation/gcc_O2/initialisation.gts diff --git a/src/test/correct/initialisation/gcc_O2/initialisation.relf b/src/test/correct/initialisation/gcc_O2/initialisation.relf deleted file mode 100644 index c0c5f32a0..000000000 --- a/src/test/correct/initialisation/gcc_O2/initialisation.relf +++ /dev/null @@ -1,124 +0,0 @@ - -Relocation section '.rela.dyn' at offset 0x460 contains 8 entries: - Offset Info Type Symbol's Value Symbol's Name + Addend -0000000000010d98 0000000000000403 R_AARCH64_RELATIVE 750 -0000000000010da0 0000000000000403 R_AARCH64_RELATIVE 700 -0000000000010ff0 0000000000000403 R_AARCH64_RELATIVE 600 -0000000000011008 0000000000000403 R_AARCH64_RELATIVE 11008 -0000000000010fd8 0000000400000401 R_AARCH64_GLOB_DAT 0000000000000000 _ITM_deregisterTMCloneTable + 0 -0000000000010fe0 0000000500000401 R_AARCH64_GLOB_DAT 0000000000000000 __cxa_finalize@GLIBC_2.17 + 0 -0000000000010fe8 0000000600000401 R_AARCH64_GLOB_DAT 0000000000000000 __gmon_start__ + 0 -0000000000010ff8 0000000800000401 R_AARCH64_GLOB_DAT 0000000000000000 _ITM_registerTMCloneTable + 0 - -Relocation section '.rela.plt' at offset 0x520 contains 4 entries: - Offset Info Type Symbol's Value Symbol's Name + Addend -0000000000010fb0 0000000300000402 R_AARCH64_JUMP_SLOT 0000000000000000 __libc_start_main@GLIBC_2.34 + 0 -0000000000010fb8 0000000500000402 R_AARCH64_JUMP_SLOT 0000000000000000 __cxa_finalize@GLIBC_2.17 + 0 -0000000000010fc0 0000000600000402 R_AARCH64_JUMP_SLOT 0000000000000000 __gmon_start__ + 0 -0000000000010fc8 0000000700000402 R_AARCH64_JUMP_SLOT 0000000000000000 abort@GLIBC_2.17 + 0 - -Symbol table '.dynsym' contains 9 entries: - Num: Value Size Type Bind Vis Ndx Name - 0: 0000000000000000 0 NOTYPE LOCAL DEFAULT UND - 1: 0000000000000580 0 SECTION LOCAL DEFAULT 11 .init - 2: 0000000000011000 0 SECTION LOCAL DEFAULT 22 .data - 3: 0000000000000000 0 FUNC GLOBAL DEFAULT UND __libc_start_main@GLIBC_2.34 (2) - 4: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_deregisterTMCloneTable - 5: 0000000000000000 0 FUNC WEAK DEFAULT UND __cxa_finalize@GLIBC_2.17 (3) - 6: 0000000000000000 0 NOTYPE WEAK DEFAULT UND __gmon_start__ - 7: 0000000000000000 0 FUNC GLOBAL DEFAULT UND abort@GLIBC_2.17 (3) - 8: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_registerTMCloneTable - -Symbol table '.symtab' contains 91 entries: - Num: Value Size Type Bind Vis Ndx Name - 0: 0000000000000000 0 NOTYPE LOCAL DEFAULT UND - 1: 0000000000000238 0 SECTION LOCAL DEFAULT 1 .interp - 2: 0000000000000254 0 SECTION LOCAL DEFAULT 2 .note.gnu.build-id - 3: 0000000000000278 0 SECTION LOCAL DEFAULT 3 .note.ABI-tag - 4: 0000000000000298 0 SECTION LOCAL DEFAULT 4 .gnu.hash - 5: 00000000000002b8 0 SECTION LOCAL DEFAULT 5 .dynsym - 6: 0000000000000390 0 SECTION LOCAL DEFAULT 6 .dynstr - 7: 000000000000041e 0 SECTION LOCAL DEFAULT 7 .gnu.version - 8: 0000000000000430 0 SECTION LOCAL DEFAULT 8 .gnu.version_r - 9: 0000000000000460 0 SECTION LOCAL DEFAULT 9 .rela.dyn - 10: 0000000000000520 0 SECTION LOCAL DEFAULT 10 .rela.plt - 11: 0000000000000580 0 SECTION LOCAL DEFAULT 11 .init - 12: 00000000000005a0 0 SECTION LOCAL DEFAULT 12 .plt - 13: 0000000000000600 0 SECTION LOCAL DEFAULT 13 .text - 14: 0000000000000754 0 SECTION LOCAL DEFAULT 14 .fini - 15: 0000000000000768 0 SECTION LOCAL DEFAULT 15 .rodata - 16: 000000000000076c 0 SECTION LOCAL DEFAULT 16 .eh_frame_hdr - 17: 00000000000007a8 0 SECTION LOCAL DEFAULT 17 .eh_frame - 18: 0000000000010d98 0 SECTION LOCAL DEFAULT 18 .init_array - 19: 0000000000010da0 0 SECTION LOCAL DEFAULT 19 .fini_array - 20: 0000000000010da8 0 SECTION LOCAL DEFAULT 20 .dynamic - 21: 0000000000010f98 0 SECTION LOCAL DEFAULT 21 .got - 22: 0000000000011000 0 SECTION LOCAL DEFAULT 22 .data - 23: 0000000000011029 0 SECTION LOCAL DEFAULT 23 .bss - 24: 0000000000000000 0 SECTION LOCAL DEFAULT 24 .comment - 25: 0000000000000000 0 FILE LOCAL DEFAULT ABS Scrt1.o - 26: 0000000000000278 0 NOTYPE LOCAL DEFAULT 3 $d - 27: 0000000000000278 32 OBJECT LOCAL DEFAULT 3 __abi_tag - 28: 0000000000000640 0 NOTYPE LOCAL DEFAULT 13 $x - 29: 00000000000007bc 0 NOTYPE LOCAL DEFAULT 17 $d - 30: 0000000000000768 0 NOTYPE LOCAL DEFAULT 15 $d - 31: 0000000000000000 0 FILE LOCAL DEFAULT ABS crti.o - 32: 0000000000000674 0 NOTYPE LOCAL DEFAULT 13 $x - 33: 0000000000000674 20 FUNC LOCAL DEFAULT 13 call_weak_fn - 34: 0000000000000580 0 NOTYPE LOCAL DEFAULT 11 $x - 35: 0000000000000754 0 NOTYPE LOCAL DEFAULT 14 $x - 36: 0000000000000000 0 FILE LOCAL DEFAULT ABS crtn.o - 37: 0000000000000590 0 NOTYPE LOCAL DEFAULT 11 $x - 38: 0000000000000760 0 NOTYPE LOCAL DEFAULT 14 $x - 39: 0000000000000000 0 FILE LOCAL DEFAULT ABS initialisation.c - 40: 0000000000000600 0 NOTYPE LOCAL DEFAULT 13 $x - 41: 0000000000011010 0 NOTYPE LOCAL DEFAULT 22 $d - 42: 0000000000000830 0 NOTYPE LOCAL DEFAULT 17 $d - 43: 0000000000000000 0 FILE LOCAL DEFAULT ABS crtstuff.c - 44: 0000000000000690 0 NOTYPE LOCAL DEFAULT 13 $x - 45: 0000000000000690 0 FUNC LOCAL DEFAULT 13 deregister_tm_clones - 46: 00000000000006c0 0 FUNC LOCAL DEFAULT 13 register_tm_clones - 47: 0000000000011008 0 NOTYPE LOCAL DEFAULT 22 $d - 48: 0000000000000700 0 FUNC LOCAL DEFAULT 13 __do_global_dtors_aux - 49: 0000000000011029 1 OBJECT LOCAL DEFAULT 23 completed.0 - 50: 0000000000010da0 0 NOTYPE LOCAL DEFAULT 19 $d - 51: 0000000000010da0 0 OBJECT LOCAL DEFAULT 19 __do_global_dtors_aux_fini_array_entry - 52: 0000000000000750 0 FUNC LOCAL DEFAULT 13 frame_dummy - 53: 0000000000010d98 0 NOTYPE LOCAL DEFAULT 18 $d - 54: 0000000000010d98 0 OBJECT LOCAL DEFAULT 18 __frame_dummy_init_array_entry - 55: 00000000000007d0 0 NOTYPE LOCAL DEFAULT 17 $d - 56: 0000000000011029 0 NOTYPE LOCAL DEFAULT 23 $d - 57: 0000000000000000 0 FILE LOCAL DEFAULT ABS crtstuff.c - 58: 0000000000000844 0 NOTYPE LOCAL DEFAULT 17 $d - 59: 0000000000000844 0 OBJECT LOCAL DEFAULT 17 __FRAME_END__ - 60: 0000000000000000 0 FILE LOCAL DEFAULT ABS - 61: 0000000000010da8 0 OBJECT LOCAL DEFAULT ABS _DYNAMIC - 62: 000000000000076c 0 NOTYPE LOCAL DEFAULT 16 __GNU_EH_FRAME_HDR - 63: 0000000000010fd0 0 OBJECT LOCAL DEFAULT ABS _GLOBAL_OFFSET_TABLE_ - 64: 00000000000005a0 0 NOTYPE LOCAL DEFAULT 12 $x - 65: 0000000000000000 0 FUNC GLOBAL DEFAULT UND __libc_start_main@GLIBC_2.34 - 66: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_deregisterTMCloneTable - 67: 0000000000011000 0 NOTYPE WEAK DEFAULT 22 data_start - 68: 0000000000011029 0 NOTYPE GLOBAL DEFAULT 23 __bss_start__ - 69: 0000000000000000 0 FUNC WEAK DEFAULT UND __cxa_finalize@GLIBC_2.17 - 70: 0000000000011030 0 NOTYPE GLOBAL DEFAULT 23 _bss_end__ - 71: 0000000000011029 0 NOTYPE GLOBAL DEFAULT 22 _edata - 72: 0000000000011018 8 OBJECT GLOBAL DEFAULT 22 z - 73: 0000000000011010 4 OBJECT GLOBAL DEFAULT 22 x - 74: 0000000000000754 0 FUNC GLOBAL HIDDEN 14 _fini - 75: 0000000000011030 0 NOTYPE GLOBAL DEFAULT 23 __bss_end__ - 76: 0000000000011000 0 NOTYPE GLOBAL DEFAULT 22 __data_start - 77: 0000000000000000 0 NOTYPE WEAK DEFAULT UND __gmon_start__ - 78: 0000000000011008 0 OBJECT GLOBAL HIDDEN 22 __dso_handle - 79: 0000000000000000 0 FUNC GLOBAL DEFAULT UND abort@GLIBC_2.17 - 80: 0000000000000768 4 OBJECT GLOBAL DEFAULT 15 _IO_stdin_used - 81: 0000000000011030 0 NOTYPE GLOBAL DEFAULT 23 _end - 82: 0000000000000640 52 FUNC GLOBAL DEFAULT 13 _start - 83: 0000000000011020 8 OBJECT GLOBAL DEFAULT 22 a - 84: 0000000000011030 0 NOTYPE GLOBAL DEFAULT 23 __end__ - 85: 0000000000011028 1 OBJECT GLOBAL DEFAULT 22 y - 86: 0000000000011029 0 NOTYPE GLOBAL DEFAULT 23 __bss_start - 87: 0000000000000600 64 FUNC GLOBAL DEFAULT 13 main - 88: 0000000000011030 0 OBJECT GLOBAL HIDDEN 22 __TMC_END__ - 89: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_registerTMCloneTable - 90: 0000000000000580 0 FUNC GLOBAL HIDDEN 11 _init diff --git a/src/test/correct/initialisation/gcc_O2/initialisation_gtirb.expected b/src/test/correct/initialisation/gcc_O2/initialisation_gtirb.expected index 907987e47..3ce1229d8 100644 --- a/src/test/correct/initialisation/gcc_O2/initialisation_gtirb.expected +++ b/src/test/correct/initialisation/gcc_O2/initialisation_gtirb.expected @@ -104,7 +104,7 @@ procedure {:extern} rely_reflexive(); procedure {:extern} guarantee_reflexive(); modifies Gamma_mem, mem; -procedure main_1536(); +procedure main(); modifies Gamma_R0, Gamma_R1, Gamma_R2, Gamma_R3, Gamma_R4, Gamma_R5, Gamma_R6, Gamma_mem, R0, R1, R2, R3, R4, R5, R6, mem; free requires (memory_load64_le(mem, 69632bv64) == 0bv64); free requires (memory_load64_le(mem, 69640bv64) == 69640bv64); @@ -126,56 +126,56 @@ procedure main_1536(); free ensures (memory_load64_le(mem, 69616bv64) == 1536bv64); free ensures (memory_load64_le(mem, 69640bv64) == 69640bv64); -implementation main_1536() +implementation main() { - var Gamma_load16: bool; - var Gamma_load17: bool; - var Gamma_load18: bool; - var Gamma_load19: bool; - var load16: bv32; - var load17: bv64; - var load18: bv8; - var load19: bv32; - main_1536__0__VgTx1GD5RKmGejJw1DpySQ: - assume {:captureState "main_1536__0__VgTx1GD5RKmGejJw1DpySQ"} true; + var $load16: bv32; + var $load17: bv64; + var $load18: bv8; + var $load19: bv32; + var Gamma_$load16: bool; + var Gamma_$load17: bool; + var Gamma_$load18: bool; + var Gamma_$load19: bool; + $main$__0__$VgTx1GD5RKmGejJw1DpySQ: + assume {:captureState "$main$__0__$VgTx1GD5RKmGejJw1DpySQ"} true; R5, Gamma_R5 := 69632bv64, true; R1, Gamma_R1 := bvadd64(R5, 16bv64), Gamma_R5; R0, Gamma_R0 := 0bv64, true; call rely(); - load16, Gamma_load16 := memory_load32_le(mem, bvadd64(R5, 16bv64)), (gamma_load32(Gamma_mem, bvadd64(R5, 16bv64)) || L(mem, bvadd64(R5, 16bv64))); - R6, Gamma_R6 := zero_extend32_32(load16), Gamma_load16; + $load16, Gamma_$load16 := memory_load32_le(mem, bvadd64(R5, 16bv64)), (gamma_load32(Gamma_mem, bvadd64(R5, 16bv64)) || L(mem, bvadd64(R5, 16bv64))); + R6, Gamma_R6 := zero_extend32_32($load16), Gamma_$load16; call rely(); - load17, Gamma_load17 := memory_load64_le(mem, bvadd64(R1, 8bv64)), (gamma_load64(Gamma_mem, bvadd64(R1, 8bv64)) || L(mem, bvadd64(R1, 8bv64))); - R4, Gamma_R4 := load17, Gamma_load17; + $load17, Gamma_$load17 := memory_load64_le(mem, bvadd64(R1, 8bv64)), (gamma_load64(Gamma_mem, bvadd64(R1, 8bv64)) || L(mem, bvadd64(R1, 8bv64))); + R4, Gamma_R4 := $load17, Gamma_$load17; R6, Gamma_R6 := zero_extend32_32(bvadd32(R6[32:0], 1bv32)), Gamma_R6; call rely(); - load18, Gamma_load18 := memory_load8_le(mem, bvadd64(R1, 24bv64)), (gamma_load8(Gamma_mem, bvadd64(R1, 24bv64)) || L(mem, bvadd64(R1, 24bv64))); - R2, Gamma_R2 := zero_extend32_32(zero_extend24_8(load18)), Gamma_load18; + $load18, Gamma_$load18 := memory_load8_le(mem, bvadd64(R1, 24bv64)), (gamma_load8(Gamma_mem, bvadd64(R1, 24bv64)) || L(mem, bvadd64(R1, 24bv64))); + R2, Gamma_R2 := zero_extend32_32(zero_extend24_8($load18)), Gamma_$load18; call rely(); - load19, Gamma_load19 := memory_load32_le(mem, bvadd64(R1, 16bv64)), (gamma_load32(Gamma_mem, bvadd64(R1, 16bv64)) || L(mem, bvadd64(R1, 16bv64))); - R3, Gamma_R3 := zero_extend32_32(load19), Gamma_load19; + $load19, Gamma_$load19 := memory_load32_le(mem, bvadd64(R1, 16bv64)), (gamma_load32(Gamma_mem, bvadd64(R1, 16bv64)) || L(mem, bvadd64(R1, 16bv64))); + R3, Gamma_R3 := zero_extend32_32($load19), Gamma_$load19; R4, Gamma_R4 := bvadd64(R4, 18446744073709551615bv64), Gamma_R4; R2, Gamma_R2 := zero_extend32_32(bvadd32(R2[32:0], 1bv32)), Gamma_R2; call rely(); assert (L(mem, bvadd64(R5, 16bv64)) ==> Gamma_R6); mem, Gamma_mem := memory_store32_le(mem, bvadd64(R5, 16bv64), R6[32:0]), gamma_store32(Gamma_mem, bvadd64(R5, 16bv64), Gamma_R6); - assume {:captureState "1576_0"} true; + assume {:captureState "1576$0"} true; R3, Gamma_R3 := zero_extend32_32(bvadd32(R3[32:0], 3bv32)), Gamma_R3; call rely(); assert (L(mem, bvadd64(R1, 8bv64)) ==> Gamma_R4); mem, Gamma_mem := memory_store64_le(mem, bvadd64(R1, 8bv64), R4), gamma_store64(Gamma_mem, bvadd64(R1, 8bv64), Gamma_R4); - assume {:captureState "1584_0"} true; + assume {:captureState "1584$0"} true; call rely(); assert (L(mem, bvadd64(R1, 20bv64)) ==> Gamma_R3); mem, Gamma_mem := memory_store32_le(mem, bvadd64(R1, 20bv64), R3[32:0]), gamma_store32(Gamma_mem, bvadd64(R1, 20bv64), Gamma_R3); - assume {:captureState "1588_0"} true; + assume {:captureState "1588$0"} true; call rely(); assert (L(mem, bvadd64(R1, 24bv64)) ==> Gamma_R2); mem, Gamma_mem := memory_store8_le(mem, bvadd64(R1, 24bv64), R2[8:0]), gamma_store8(Gamma_mem, bvadd64(R1, 24bv64), Gamma_R2); - assume {:captureState "1592_0"} true; - goto main_1536_basil_return; - main_1536_basil_return: - assume {:captureState "main_1536_basil_return"} true; + assume {:captureState "1592$0"} true; + goto main_basil_return; + main_basil_return: + assume {:captureState "main_basil_return"} true; return; } diff --git a/src/test/correct/initialisation/gcc_pic/initialisation.adt b/src/test/correct/initialisation/gcc_pic/initialisation.adt deleted file mode 100644 index c584ad1f8..000000000 --- a/src/test/correct/initialisation/gcc_pic/initialisation.adt +++ /dev/null @@ -1,565 +0,0 @@ -Project(Attrs([Attr("filename","\"gcc_pic/initialisation.out\""), -Attr("image-specification","(declare abi (name str))\n(declare arch (name str))\n(declare base-address (addr int))\n(declare bias (off int))\n(declare bits (size int))\n(declare code-region (addr int) (size int) (off int))\n(declare code-start (addr int))\n(declare entry-point (addr int))\n(declare external-reference (addr int) (name str))\n(declare format (name str))\n(declare is-executable (flag bool))\n(declare is-little-endian (flag bool))\n(declare llvm:base-address (addr int))\n(declare llvm:code-entry (name str) (off int) (size int))\n(declare llvm:coff-import-library (name str))\n(declare llvm:coff-virtual-section-header (name str) (addr int) (size int))\n(declare llvm:elf-program-header (name str) (off int) (size int))\n(declare llvm:elf-program-header-flags (name str) (ld bool) (r bool) \n (w bool) (x bool))\n(declare llvm:elf-virtual-program-header (name str) (addr int) (size int))\n(declare llvm:entry-point (addr int))\n(declare llvm:macho-symbol (name str) (value int))\n(declare llvm:name-reference (at int) (name str))\n(declare llvm:relocation (at int) (addr int))\n(declare llvm:section-entry (name str) (addr int) (size int) (off int))\n(declare llvm:section-flags (name str) (r bool) (w bool) (x bool))\n(declare llvm:segment-command (name str) (off int) (size int))\n(declare llvm:segment-command-flags (name str) (r bool) (w bool) (x bool))\n(declare llvm:symbol-entry (name str) (addr int) (size int) (off int)\n (value int))\n(declare llvm:virtual-segment-command (name str) (addr int) (size int))\n(declare mapped (addr int) (size int) (off int))\n(declare named-region (addr int) (size int) (name str))\n(declare named-symbol (addr int) (name str))\n(declare require (name str))\n(declare section (addr int) (size int))\n(declare segment (addr int) (size int) (r bool) (w bool) (x bool))\n(declare subarch (name str))\n(declare symbol-chunk (addr int) (size int) (root int))\n(declare symbol-value (addr int) (value int))\n(declare system (name str))\n(declare vendor (name str))\n\n(abi unknown)\n(arch aarch64)\n(base-address 0)\n(bias 0)\n(bits 64)\n(code-region 2064 20 2064)\n(code-region 1664 400 1664)\n(code-region 1536 96 1536)\n(code-region 1504 24 1504)\n(code-start 1716)\n(code-start 1664)\n(code-start 1940)\n(entry-point 1664)\n(external-reference 69560 _ITM_deregisterTMCloneTable)\n(external-reference 69568 __cxa_finalize)\n(external-reference 69592 __gmon_start__)\n(external-reference 69624 _ITM_registerTMCloneTable)\n(external-reference 69520 __libc_start_main)\n(external-reference 69528 __cxa_finalize)\n(external-reference 69536 __gmon_start__)\n(external-reference 69544 abort)\n(format elf)\n(is-executable true)\n(is-little-endian true)\n(llvm:base-address 0)\n(llvm:code-entry abort 0 0)\n(llvm:code-entry __cxa_finalize 0 0)\n(llvm:code-entry __libc_start_main 0 0)\n(llvm:code-entry _init 1504 0)\n(llvm:code-entry main 1940 124)\n(llvm:code-entry _start 1664 52)\n(llvm:code-entry abort@GLIBC_2.17 0 0)\n(llvm:code-entry _fini 2064 0)\n(llvm:code-entry __cxa_finalize@GLIBC_2.17 0 0)\n(llvm:code-entry __libc_start_main@GLIBC_2.34 0 0)\n(llvm:code-entry frame_dummy 1936 0)\n(llvm:code-entry __do_global_dtors_aux 1856 0)\n(llvm:code-entry register_tm_clones 1792 0)\n(llvm:code-entry deregister_tm_clones 1744 0)\n(llvm:code-entry call_weak_fn 1716 20)\n(llvm:code-entry .fini 2064 20)\n(llvm:code-entry .text 1664 400)\n(llvm:code-entry .plt 1536 96)\n(llvm:code-entry .init 1504 24)\n(llvm:elf-program-header 08 3448 648)\n(llvm:elf-program-header 07 0 0)\n(llvm:elf-program-header 06 2088 60)\n(llvm:elf-program-header 05 596 68)\n(llvm:elf-program-header 04 3464 496)\n(llvm:elf-program-header 03 3448 688)\n(llvm:elf-program-header 02 0 2312)\n(llvm:elf-program-header 01 568 27)\n(llvm:elf-program-header 00 64 504)\n(llvm:elf-program-header-flags 08 false true false false)\n(llvm:elf-program-header-flags 07 false true true false)\n(llvm:elf-program-header-flags 06 false true false false)\n(llvm:elf-program-header-flags 05 false true false false)\n(llvm:elf-program-header-flags 04 false true true false)\n(llvm:elf-program-header-flags 03 true true true false)\n(llvm:elf-program-header-flags 02 true true false true)\n(llvm:elf-program-header-flags 01 false true false false)\n(llvm:elf-program-header-flags 00 false true false false)\n(llvm:elf-virtual-program-header 08 68984 648)\n(llvm:elf-virtual-program-header 07 0 0)\n(llvm:elf-virtual-program-header 06 2088 60)\n(llvm:elf-virtual-program-header 05 596 68)\n(llvm:elf-virtual-program-header 04 69000 496)\n(llvm:elf-virtual-program-header 03 68984 696)\n(llvm:elf-virtual-program-header 02 0 2312)\n(llvm:elf-virtual-program-header 01 568 27)\n(llvm:elf-virtual-program-header 00 64 504)\n(llvm:entry-point 1664)\n(llvm:name-reference 69544 abort)\n(llvm:name-reference 69536 __gmon_start__)\n(llvm:name-reference 69528 __cxa_finalize)\n(llvm:name-reference 69520 __libc_start_main)\n(llvm:name-reference 69624 _ITM_registerTMCloneTable)\n(llvm:name-reference 69592 __gmon_start__)\n(llvm:name-reference 69568 __cxa_finalize)\n(llvm:name-reference 69560 _ITM_deregisterTMCloneTable)\n(llvm:section-entry .shstrtab 0 250 6920)\n(llvm:section-entry .strtab 0 552 6368)\n(llvm:section-entry .symtab 0 2184 4184)\n(llvm:section-entry .comment 0 43 4136)\n(llvm:section-entry .bss 69672 8 4136)\n(llvm:section-entry .data 69632 40 4096)\n(llvm:section-entry .got 69496 136 3960)\n(llvm:section-entry .dynamic 69000 496 3464)\n(llvm:section-entry .fini_array 68992 8 3456)\n(llvm:section-entry .init_array 68984 8 3448)\n(llvm:section-entry .eh_frame 2152 160 2152)\n(llvm:section-entry .eh_frame_hdr 2088 60 2088)\n(llvm:section-entry .rodata 2084 4 2084)\n(llvm:section-entry .fini 2064 20 2064)\n(llvm:section-entry .text 1664 400 1664)\n(llvm:section-entry .plt 1536 96 1536)\n(llvm:section-entry .init 1504 24 1504)\n(llvm:section-entry .rela.plt 1408 96 1408)\n(llvm:section-entry .rela.dyn 1120 288 1120)\n(llvm:section-entry .gnu.version_r 1072 48 1072)\n(llvm:section-entry .gnu.version 1054 18 1054)\n(llvm:section-entry .dynstr 912 141 912)\n(llvm:section-entry .dynsym 696 216 696)\n(llvm:section-entry .gnu.hash 664 28 664)\n(llvm:section-entry .note.ABI-tag 632 32 632)\n(llvm:section-entry .note.gnu.build-id 596 36 596)\n(llvm:section-entry .interp 568 27 568)\n(llvm:section-flags .shstrtab true false false)\n(llvm:section-flags .strtab true false false)\n(llvm:section-flags .symtab true false false)\n(llvm:section-flags .comment true false false)\n(llvm:section-flags .bss true true false)\n(llvm:section-flags .data true true false)\n(llvm:section-flags .got true true false)\n(llvm:section-flags .dynamic true true false)\n(llvm:section-flags .fini_array true true false)\n(llvm:section-flags .init_array true true false)\n(llvm:section-flags .eh_frame true false false)\n(llvm:section-flags .eh_frame_hdr true false false)\n(llvm:section-flags .rodata true false false)\n(llvm:section-flags .fini true false true)\n(llvm:section-flags .text true false true)\n(llvm:section-flags .plt true false true)\n(llvm:section-flags .init true false true)\n(llvm:section-flags .rela.plt true false false)\n(llvm:section-flags .rela.dyn true false false)\n(llvm:section-flags .gnu.version_r true false false)\n(llvm:section-flags .gnu.version true false false)\n(llvm:section-flags .dynstr true false false)\n(llvm:section-flags .dynsym true false false)\n(llvm:section-flags .gnu.hash true false false)\n(llvm:section-flags .note.ABI-tag true false false)\n(llvm:section-flags .note.gnu.build-id true false false)\n(llvm:section-flags .interp true false false)\n(llvm:symbol-entry abort 0 0 0 0)\n(llvm:symbol-entry __cxa_finalize 0 0 0 0)\n(llvm:symbol-entry __libc_start_main 0 0 0 0)\n(llvm:symbol-entry _init 1504 0 1504 1504)\n(llvm:symbol-entry main 1940 124 1940 1940)\n(llvm:symbol-entry _start 1664 52 1664 1664)\n(llvm:symbol-entry abort@GLIBC_2.17 0 0 0 0)\n(llvm:symbol-entry _fini 2064 0 2064 2064)\n(llvm:symbol-entry __cxa_finalize@GLIBC_2.17 0 0 0 0)\n(llvm:symbol-entry __libc_start_main@GLIBC_2.34 0 0 0 0)\n(llvm:symbol-entry frame_dummy 1936 0 1936 1936)\n(llvm:symbol-entry __do_global_dtors_aux 1856 0 1856 1856)\n(llvm:symbol-entry register_tm_clones 1792 0 1792 1792)\n(llvm:symbol-entry deregister_tm_clones 1744 0 1744 1744)\n(llvm:symbol-entry call_weak_fn 1716 20 1716 1716)\n(mapped 0 2312 0)\n(mapped 68984 688 3448)\n(named-region 0 2312 02)\n(named-region 68984 696 03)\n(named-region 568 27 .interp)\n(named-region 596 36 .note.gnu.build-id)\n(named-region 632 32 .note.ABI-tag)\n(named-region 664 28 .gnu.hash)\n(named-region 696 216 .dynsym)\n(named-region 912 141 .dynstr)\n(named-region 1054 18 .gnu.version)\n(named-region 1072 48 .gnu.version_r)\n(named-region 1120 288 .rela.dyn)\n(named-region 1408 96 .rela.plt)\n(named-region 1504 24 .init)\n(named-region 1536 96 .plt)\n(named-region 1664 400 .text)\n(named-region 2064 20 .fini)\n(named-region 2084 4 .rodata)\n(named-region 2088 60 .eh_frame_hdr)\n(named-region 2152 160 .eh_frame)\n(named-region 68984 8 .init_array)\n(named-region 68992 8 .fini_array)\n(named-region 69000 496 .dynamic)\n(named-region 69496 136 .got)\n(named-region 69632 40 .data)\n(named-region 69672 8 .bss)\n(named-region 0 43 .comment)\n(named-region 0 2184 .symtab)\n(named-region 0 552 .strtab)\n(named-region 0 250 .shstrtab)\n(named-symbol 1716 call_weak_fn)\n(named-symbol 1744 deregister_tm_clones)\n(named-symbol 1792 register_tm_clones)\n(named-symbol 1856 __do_global_dtors_aux)\n(named-symbol 1936 frame_dummy)\n(named-symbol 0 __libc_start_main@GLIBC_2.34)\n(named-symbol 0 __cxa_finalize@GLIBC_2.17)\n(named-symbol 2064 _fini)\n(named-symbol 0 abort@GLIBC_2.17)\n(named-symbol 1664 _start)\n(named-symbol 1940 main)\n(named-symbol 1504 _init)\n(named-symbol 0 __libc_start_main)\n(named-symbol 0 __cxa_finalize)\n(named-symbol 0 abort)\n(require libc.so.6)\n(section 568 27)\n(section 596 36)\n(section 632 32)\n(section 664 28)\n(section 696 216)\n(section 912 141)\n(section 1054 18)\n(section 1072 48)\n(section 1120 288)\n(section 1408 96)\n(section 1504 24)\n(section 1536 96)\n(section 1664 400)\n(section 2064 20)\n(section 2084 4)\n(section 2088 60)\n(section 2152 160)\n(section 68984 8)\n(section 68992 8)\n(section 69000 496)\n(section 69496 136)\n(section 69632 40)\n(section 69672 8)\n(section 0 43)\n(section 0 2184)\n(section 0 552)\n(section 0 250)\n(segment 0 2312 true false true)\n(segment 68984 696 true true false)\n(subarch v8)\n(symbol-chunk 1716 20 1716)\n(symbol-chunk 1664 52 1664)\n(symbol-chunk 1940 124 1940)\n(symbol-value 1716 1716)\n(symbol-value 1744 1744)\n(symbol-value 1792 1792)\n(symbol-value 1856 1856)\n(symbol-value 1936 1936)\n(symbol-value 2064 2064)\n(symbol-value 1664 1664)\n(symbol-value 1940 1940)\n(symbol-value 1504 1504)\n(symbol-value 0 0)\n(system \"\")\n(vendor \"\")\n"), -Attr("abi-name","\"aarch64-linux-gnu-elf\"")]), -Sections([Section(".shstrtab", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x80\x06\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x08\x1c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x38\x00\x09\x00\x40\x00\x1c\x00\x1b\x00\x06\x00\x00\x00\x04\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x04\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x08\x09\x00\x00\x00\x00\x00\x00\x08\x09\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x01\x00\x00\x00\x06\x00\x00\x00\x78\x0d\x00\x00\x00\x00\x00\x00\x78\x0d"), -Section(".strtab", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x80\x06\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x08\x1c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x38\x00\x09\x00\x40\x00\x1c\x00\x1b\x00\x06\x00\x00\x00\x04\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x04\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x08\x09\x00\x00\x00\x00\x00\x00\x08\x09\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x01\x00\x00\x00\x06\x00\x00\x00\x78\x0d\x00\x00\x00\x00\x00\x00\x78\x0d\x01\x00\x00\x00\x00\x00\x78\x0d\x01\x00\x00\x00\x00\x00\xb0\x02\x00\x00\x00\x00\x00\x00\xb8\x02\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x02\x00\x00\x00\x06\x00\x00\x00\x88\x0d\x00\x00\x00\x00\x00\x00\x88\x0d\x01\x00\x00\x00\x00\x00\x88\x0d\x01\x00\x00\x00\x00\x00\xf0\x01\x00\x00\x00\x00\x00\x00\xf0\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x04\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x50\xe5\x74\x64\x04\x00\x00\x00\x28\x08\x00\x00\x00\x00\x00\x00\x28\x08\x00\x00\x00\x00\x00\x00\x28\x08\x00\x00\x00\x00\x00\x00\x3c\x00\x00\x00\x00\x00\x00\x00\x3c\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x51\xe5\x74\x64\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x52\xe5\x74\x64\x04\x00\x00\x00\x78\x0d\x00\x00\x00\x00\x00\x00\x78\x0d\x01\x00\x00\x00\x00\x00\x78\x0d\x01\x00\x00\x00\x00\x00\x88\x02\x00\x00\x00\x00\x00\x00"), -Section(".symtab", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x80\x06\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x08\x1c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x38\x00\x09\x00\x40\x00\x1c\x00\x1b\x00\x06\x00\x00\x00\x04\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x04\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x08\x09\x00\x00\x00\x00\x00\x00\x08\x09\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x01\x00\x00\x00\x06\x00\x00\x00\x78\x0d\x00\x00\x00\x00\x00\x00\x78\x0d\x01\x00\x00\x00\x00\x00\x78\x0d\x01\x00\x00\x00\x00\x00\xb0\x02\x00\x00\x00\x00\x00\x00\xb8\x02\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x02\x00\x00\x00\x06\x00\x00\x00\x88\x0d\x00\x00\x00\x00\x00\x00\x88\x0d\x01\x00\x00\x00\x00\x00\x88\x0d\x01\x00\x00\x00\x00\x00\xf0\x01\x00\x00\x00\x00\x00\x00\xf0\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x04\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x50\xe5\x74\x64\x04\x00\x00\x00\x28\x08\x00\x00\x00\x00\x00\x00\x28\x08\x00\x00\x00\x00\x00\x00\x28\x08\x00\x00\x00\x00\x00\x00\x3c\x00\x00\x00\x00\x00\x00\x00\x3c\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x51\xe5\x74\x64\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x52\xe5\x74\x64\x04\x00\x00\x00\x78\x0d\x00\x00\x00\x00\x00\x00\x78\x0d\x01\x00\x00\x00\x00\x00\x78\x0d\x01\x00\x00\x00\x00\x00\x88\x02\x00\x00\x00\x00\x00\x00\x88\x02\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x2f\x6c\x69\x62\x2f\x6c\x64\x2d\x6c\x69\x6e\x75\x78\x2d\x61\x61\x72\x63\x68\x36\x34\x2e\x73\x6f\x2e\x31\x00\x00\x04\x00\x00\x00\x14\x00\x00\x00\x03\x00\x00\x00\x47\x4e\x55\x00\xed\x2c\x67\x6b\x0e\xaf\x31\xe1\x4d\x70\x50\x3c\x3a\xf3\x7e\xce\x49\x3e\x85\x64\x04\x00\x00\x00\x10\x00\x00\x00\x01\x00\x00\x00\x47\x4e\x55\x00\x00\x00\x00\x00\x03\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x01\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x0b\x00\xe0\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x16\x00\x00\x10\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x48\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x22\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x22\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x73\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5f\x5f\x63\x78\x61\x5f\x66\x69\x6e\x61\x6c\x69\x7a\x65\x00\x5f\x5f\x6c\x69\x62\x63\x5f\x73\x74\x61\x72\x74\x5f\x6d\x61\x69\x6e\x00\x61\x62\x6f\x72\x74\x00\x6c\x69\x62\x63\x2e\x73\x6f\x2e\x36\x00\x47\x4c\x49\x42\x43\x5f\x32\x2e\x31\x37\x00\x47\x4c\x49\x42\x43\x5f\x32\x2e\x33\x34\x00\x5f\x49\x54\x4d\x5f\x64\x65\x72\x65\x67\x69\x73\x74\x65\x72\x54\x4d\x43\x6c\x6f\x6e\x65\x54\x61\x62\x6c\x65\x00\x5f\x5f\x67\x6d\x6f\x6e\x5f\x73\x74\x61\x72\x74\x5f\x5f\x00\x5f\x49\x54\x4d\x5f\x72\x65\x67\x69\x73\x74\x65\x72\x54\x4d\x43\x6c\x6f\x6e\x65\x54\x61\x62\x6c\x65\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x01\x00\x03\x00\x01\x00\x03\x00\x01\x00\x01\x00\x02\x00\x28\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x97\x91\x96\x06\x00\x00\x03\x00\x32\x00\x00\x00\x10\x00\x00\x00\xb4\x91\x96\x06\x00\x00\x02\x00\x3d\x00\x00\x00\x00\x00\x00\x00\x78\x0d\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x90\x07\x00\x00\x00\x00\x00\x00\x80\x0d\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x40\x07\x00\x00\x00\x00\x00\x00\xc8\x0f\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x18\x10\x01\x00\x00\x00\x00\x00\xd0\x0f\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x10\x10\x01\x00\x00\x00\x00\x00\xe0\x0f\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x20\x10\x01\x00\x00\x00\x00\x00\xe8\x0f\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x14\x10\x01\x00\x00\x00\x00\x00\xf0\x0f\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x94\x07\x00\x00\x00\x00\x00\x00\x08\x10\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x08\x10\x01\x00\x00\x00\x00\x00\xb8\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xc0\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xd8\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xf8\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x90\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x98\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xa0\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xa8\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1f\x20\x03\xd5\xfd\x7b\xbf\xa9\xfd\x03\x00\x91\x32\x00\x00\x94\xfd\x7b\xc1\xa8\xc0\x03\x5f\xd6\x00\x00\x00\x00\x00\x00\x00\x00\xf0\x7b\xbf\xa9\x90\x00\x00\x90\x11\xc6\x47\xf9\x10\x22\x3e\x91\x20\x02\x1f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x90\x00\x00\x90\x11\xca\x47\xf9\x10\x42\x3e\x91\x20\x02\x1f\xd6\x90\x00\x00\x90\x11\xce\x47\xf9\x10\x62\x3e\x91\x20\x02\x1f\xd6\x90\x00\x00\x90\x11\xd2\x47\xf9\x10\x82\x3e\x91\x20\x02\x1f\xd6\x90\x00\x00\x90\x11\xd6\x47\xf9\x10\xa2\x3e\x91\x20\x02\x1f\xd6\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1f\x20\x03\xd5\x1d\x00\x80\xd2\x1e\x00\x80\xd2\xe5\x03\x00\xaa\xe1\x03\x40\xf9\xe2\x23\x00\x91\xe6\x03\x00\x91\x80\x00\x00\x90\x00\xf8\x47\xf9\x03\x00\x80\xd2\x04\x00\x80\xd2\xdd\xff\xff\x97\xe8\xff\xff\x97\x80\x00\x00\x90\x00\xec\x47\xf9\x40\x00\x00\xb4\xe0\xff\xff\x17\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x80\x00\x00\xb0\x00\xa0\x00\x91\x81\x00\x00\xb0\x21\xa0\x00\x91\x3f\x00\x00\xeb\xc0\x00\x00\x54\x81\x00\x00\x90\x21\xdc\x47\xf9\x61\x00\x00\xb4\xf0\x03\x01\xaa\x00\x02\x1f\xd6\xc0\x03\x5f\xd6\x80\x00\x00\xb0\x00\xa0\x00\x91\x81\x00\x00\xb0\x21\xa0\x00\x91\x21\x00\x00\xcb\x22\xfc\x7f\xd3\x41\x0c\x81\x8b\x21\xfc\x41\x93\xc1\x00\x00\xb4\x82\x00\x00\x90\x42\xfc\x47\xf9\x62\x00\x00\xb4\xf0\x03\x02\xaa\x00\x02\x1f\xd6\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\xfd\x7b\xbe\xa9\xfd\x03\x00\x91\xf3\x0b\x00\xf9\x93\x00\x00\xb0\x60\xa2\x40\x39\x40\x01\x00\x35\x80\x00\x00\x90\x00\xe0\x47\xf9\x80\x00\x00\xb4\x80\x00\x00\xb0\x00\x04\x40\xf9\xb1\xff\xff\x97\xd8\xff\xff\x97\x20\x00\x80\x52\x60\xa2\x00\x39\xf3\x0b\x40\xf9\xfd\x7b\xc2\xa8\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\xdc\xff\xff\x17\x80\x00\x00\x90\x00\xe8\x47\xf9\x00\x00\x40\xb9\x01\x04\x00\x11\x80\x00\x00\x90\x00\xe8\x47\xf9\x01\x00\x00\xb9\x80\x00\x00\x90\x00\xe4\x47\xf9\x00\x00\x40\xf9\x01\x04\x00\xd1\x80\x00\x00\x90\x00\xe4\x47\xf9\x01\x00\x00\xf9\x80\x00\x00\x90\x00\xf0\x47\xf9\x00\x00\x40\xb9\x01\x0c\x00\x11\x80\x00\x00\x90\x00\xf0\x47\xf9\x01\x04\x00\xb9\x80\x00\x00\x90\x00\xf4\x47\xf9\x00\x00\x40\x39\x00\x04\x00\x11\x01\x1c\x00\x12\x80\x00\x00\x90\x00\xf4\x47\xf9\x01\x00\x00\x39\x00\x00\x80\x52\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\xfd\x7b\xbf\xa9\xfd\x03\x00\x91\xfd\x7b\xc1\xa8\xc0\x03\x5f\xd6\x01\x00\x02\x00\x01\x1b\x03\x3b\x3c\x00\x00\x00\x06\x00\x00\x00\x58\xfe\xff\xff\x54\x00\x00\x00\xa8\xfe\xff\xff\x68\x00\x00\x00\xd8\xfe\xff\xff\x7c\x00\x00\x00\x18\xff\xff\xff\x90\x00\x00\x00\x68\xff\xff\xff\xb4\x00\x00\x00\x6c\xff\xff\xff\xc8\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x01\x7a\x52\x00\x04\x78\x1e\x01\x1b\x0c\x1f\x00\x10\x00\x00\x00\x18\x00\x00\x00\xfc\xfd\xff\xff"), -Section(".comment", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x80\x06\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x08\x1c\x00"), -Section(".interp", 0x238, "\x2f\x6c\x69\x62\x2f\x6c\x64\x2d\x6c\x69\x6e\x75\x78\x2d\x61\x61\x72\x63\x68\x36\x34\x2e\x73\x6f\x2e\x31\x00"), -Section(".note.gnu.build-id", 0x254, "\x04\x00\x00\x00\x14\x00\x00\x00\x03\x00\x00\x00\x47\x4e\x55\x00\xed\x2c\x67\x6b\x0e\xaf\x31\xe1\x4d\x70\x50\x3c\x3a\xf3\x7e\xce\x49\x3e\x85\x64"), -Section(".note.ABI-tag", 0x278, "\x04\x00\x00\x00\x10\x00\x00\x00\x01\x00\x00\x00\x47\x4e\x55\x00\x00\x00\x00\x00\x03\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00"), -Section(".gnu.hash", 0x298, "\x01\x00\x00\x00\x01\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".dynsym", 0x2B8, "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x0b\x00\xe0\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x16\x00\x00\x10\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x48\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x22\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x22\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x73\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".dynstr", 0x390, "\x00\x5f\x5f\x63\x78\x61\x5f\x66\x69\x6e\x61\x6c\x69\x7a\x65\x00\x5f\x5f\x6c\x69\x62\x63\x5f\x73\x74\x61\x72\x74\x5f\x6d\x61\x69\x6e\x00\x61\x62\x6f\x72\x74\x00\x6c\x69\x62\x63\x2e\x73\x6f\x2e\x36\x00\x47\x4c\x49\x42\x43\x5f\x32\x2e\x31\x37\x00\x47\x4c\x49\x42\x43\x5f\x32\x2e\x33\x34\x00\x5f\x49\x54\x4d\x5f\x64\x65\x72\x65\x67\x69\x73\x74\x65\x72\x54\x4d\x43\x6c\x6f\x6e\x65\x54\x61\x62\x6c\x65\x00\x5f\x5f\x67\x6d\x6f\x6e\x5f\x73\x74\x61\x72\x74\x5f\x5f\x00\x5f\x49\x54\x4d\x5f\x72\x65\x67\x69\x73\x74\x65\x72\x54\x4d\x43\x6c\x6f\x6e\x65\x54\x61\x62\x6c\x65\x00"), -Section(".gnu.version", 0x41E, "\x00\x00\x00\x00\x00\x00\x02\x00\x01\x00\x03\x00\x01\x00\x03\x00\x01\x00"), -Section(".gnu.version_r", 0x430, "\x01\x00\x02\x00\x28\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x97\x91\x96\x06\x00\x00\x03\x00\x32\x00\x00\x00\x10\x00\x00\x00\xb4\x91\x96\x06\x00\x00\x02\x00\x3d\x00\x00\x00\x00\x00\x00\x00"), -Section(".rela.dyn", 0x460, "\x78\x0d\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x90\x07\x00\x00\x00\x00\x00\x00\x80\x0d\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x40\x07\x00\x00\x00\x00\x00\x00\xc8\x0f\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x18\x10\x01\x00\x00\x00\x00\x00\xd0\x0f\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x10\x10\x01\x00\x00\x00\x00\x00\xe0\x0f\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x20\x10\x01\x00\x00\x00\x00\x00\xe8\x0f\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x14\x10\x01\x00\x00\x00\x00\x00\xf0\x0f\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x94\x07\x00\x00\x00\x00\x00\x00\x08\x10\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x08\x10\x01\x00\x00\x00\x00\x00\xb8\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xc0\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xd8\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xf8\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".rela.plt", 0x580, "\x90\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x98\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xa0\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xa8\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".init", 0x5E0, "\x1f\x20\x03\xd5\xfd\x7b\xbf\xa9\xfd\x03\x00\x91\x32\x00\x00\x94\xfd\x7b\xc1\xa8\xc0\x03\x5f\xd6"), -Section(".plt", 0x600, "\xf0\x7b\xbf\xa9\x90\x00\x00\x90\x11\xc6\x47\xf9\x10\x22\x3e\x91\x20\x02\x1f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x90\x00\x00\x90\x11\xca\x47\xf9\x10\x42\x3e\x91\x20\x02\x1f\xd6\x90\x00\x00\x90\x11\xce\x47\xf9\x10\x62\x3e\x91\x20\x02\x1f\xd6\x90\x00\x00\x90\x11\xd2\x47\xf9\x10\x82\x3e\x91\x20\x02\x1f\xd6\x90\x00\x00\x90\x11\xd6\x47\xf9\x10\xa2\x3e\x91\x20\x02\x1f\xd6"), -Section(".fini", 0x810, "\x1f\x20\x03\xd5\xfd\x7b\xbf\xa9\xfd\x03\x00\x91\xfd\x7b\xc1\xa8\xc0\x03\x5f\xd6"), -Section(".rodata", 0x824, "\x01\x00\x02\x00"), -Section(".eh_frame_hdr", 0x828, "\x01\x1b\x03\x3b\x3c\x00\x00\x00\x06\x00\x00\x00\x58\xfe\xff\xff\x54\x00\x00\x00\xa8\xfe\xff\xff\x68\x00\x00\x00\xd8\xfe\xff\xff\x7c\x00\x00\x00\x18\xff\xff\xff\x90\x00\x00\x00\x68\xff\xff\xff\xb4\x00\x00\x00\x6c\xff\xff\xff\xc8\x00\x00\x00"), -Section(".eh_frame", 0x868, "\x10\x00\x00\x00\x00\x00\x00\x00\x01\x7a\x52\x00\x04\x78\x1e\x01\x1b\x0c\x1f\x00\x10\x00\x00\x00\x18\x00\x00\x00\xfc\xfd\xff\xff\x34\x00\x00\x00\x00\x41\x07\x1e\x10\x00\x00\x00\x2c\x00\x00\x00\x38\xfe\xff\xff\x30\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x40\x00\x00\x00\x54\xfe\xff\xff\x3c\x00\x00\x00\x00\x00\x00\x00\x20\x00\x00\x00\x54\x00\x00\x00\x80\xfe\xff\xff\x48\x00\x00\x00\x00\x41\x0e\x20\x9d\x04\x9e\x03\x42\x93\x02\x4e\xde\xdd\xd3\x0e\x00\x00\x00\x00\x10\x00\x00\x00\x78\x00\x00\x00\xac\xfe\xff\xff\x04\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x8c\x00\x00\x00\x9c\xfe\xff\xff\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".fini_array", 0x10D80, "\x40\x07\x00\x00\x00\x00\x00\x00"), -Section(".dynamic", 0x10D88, "\x01\x00\x00\x00\x00\x00\x00\x00\x28\x00\x00\x00\x00\x00\x00\x00\x0c\x00\x00\x00\x00\x00\x00\x00\xe0\x05\x00\x00\x00\x00\x00\x00\x0d\x00\x00\x00\x00\x00\x00\x00\x10\x08\x00\x00\x00\x00\x00\x00\x19\x00\x00\x00\x00\x00\x00\x00\x78\x0d\x01\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x1a\x00\x00\x00\x00\x00\x00\x00\x80\x0d\x01\x00\x00\x00\x00\x00\x1c\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\xf5\xfe\xff\x6f\x00\x00\x00\x00\x98\x02\x00\x00\x00\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x90\x03\x00\x00\x00\x00\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\xb8\x02\x00\x00\x00\x00\x00\x00\x0a\x00\x00\x00\x00\x00\x00\x00\x8d\x00\x00\x00\x00\x00\x00\x00\x0b\x00\x00\x00\x00\x00\x00\x00\x18\x00\x00\x00\x00\x00\x00\x00\x15\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x78\x0f\x01\x00\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x60\x00\x00\x00\x00\x00\x00\x00\x14\x00\x00\x00\x00\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x17\x00\x00\x00\x00\x00\x00\x00\x80\x05\x00\x00\x00\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x60\x04\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x20\x01\x00\x00\x00\x00\x00\x00\x09\x00\x00\x00\x00\x00\x00\x00\x18\x00\x00\x00\x00\x00\x00\x00\x1e\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\xfb\xff\xff\x6f\x00\x00\x00\x00\x01\x00\x00\x08\x00\x00\x00\x00\xfe\xff\xff\x6f\x00\x00\x00\x00\x30\x04\x00\x00\x00\x00\x00\x00\xff\xff\xff\x6f\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\xf0\xff\xff\x6f\x00\x00\x00\x00\x1e\x04\x00\x00\x00\x00\x00\x00\xf9\xff\xff\x6f\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".got", 0x10F78, "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x06\x00\x00\x00\x00\x00\x00\x88\x0d\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x18\x10\x01\x00\x00\x00\x00\x00\x10\x10\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x20\x10\x01\x00\x00\x00\x00\x00\x14\x10\x01\x00\x00\x00\x00\x00\x94\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".data", 0x11000, "\x00\x00\x00\x00\x00\x00\x00\x00\x08\x10\x01\x00\x00\x00\x00\x00\x05\x00\x00\x00\x61\x00\x00\x00\xff\xff\xff\xff\x0f\x00\x00\x00\x01\x00\x00\x00\x02\x00\x00\x00"), -Section(".init_array", 0x10D78, "\x90\x07\x00\x00\x00\x00\x00\x00"), -Section(".text", 0x680, "\x1f\x20\x03\xd5\x1d\x00\x80\xd2\x1e\x00\x80\xd2\xe5\x03\x00\xaa\xe1\x03\x40\xf9\xe2\x23\x00\x91\xe6\x03\x00\x91\x80\x00\x00\x90\x00\xf8\x47\xf9\x03\x00\x80\xd2\x04\x00\x80\xd2\xdd\xff\xff\x97\xe8\xff\xff\x97\x80\x00\x00\x90\x00\xec\x47\xf9\x40\x00\x00\xb4\xe0\xff\xff\x17\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x80\x00\x00\xb0\x00\xa0\x00\x91\x81\x00\x00\xb0\x21\xa0\x00\x91\x3f\x00\x00\xeb\xc0\x00\x00\x54\x81\x00\x00\x90\x21\xdc\x47\xf9\x61\x00\x00\xb4\xf0\x03\x01\xaa\x00\x02\x1f\xd6\xc0\x03\x5f\xd6\x80\x00\x00\xb0\x00\xa0\x00\x91\x81\x00\x00\xb0\x21\xa0\x00\x91\x21\x00\x00\xcb\x22\xfc\x7f\xd3\x41\x0c\x81\x8b\x21\xfc\x41\x93\xc1\x00\x00\xb4\x82\x00\x00\x90\x42\xfc\x47\xf9\x62\x00\x00\xb4\xf0\x03\x02\xaa\x00\x02\x1f\xd6\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\xfd\x7b\xbe\xa9\xfd\x03\x00\x91\xf3\x0b\x00\xf9\x93\x00\x00\xb0\x60\xa2\x40\x39\x40\x01\x00\x35\x80\x00\x00\x90\x00\xe0\x47\xf9\x80\x00\x00\xb4\x80\x00\x00\xb0\x00\x04\x40\xf9\xb1\xff\xff\x97\xd8\xff\xff\x97\x20\x00\x80\x52\x60\xa2\x00\x39\xf3\x0b\x40\xf9\xfd\x7b\xc2\xa8\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\xdc\xff\xff\x17\x80\x00\x00\x90\x00\xe8\x47\xf9\x00\x00\x40\xb9\x01\x04\x00\x11\x80\x00\x00\x90\x00\xe8\x47\xf9\x01\x00\x00\xb9\x80\x00\x00\x90\x00\xe4\x47\xf9\x00\x00\x40\xf9\x01\x04\x00\xd1\x80\x00\x00\x90\x00\xe4\x47\xf9\x01\x00\x00\xf9\x80\x00\x00\x90\x00\xf0\x47\xf9\x00\x00\x40\xb9\x01\x0c\x00\x11\x80\x00\x00\x90\x00\xf0\x47\xf9\x01\x04\x00\xb9\x80\x00\x00\x90\x00\xf4\x47\xf9\x00\x00\x40\x39\x00\x04\x00\x11\x01\x1c\x00\x12\x80\x00\x00\x90\x00\xf4\x47\xf9\x01\x00\x00\x39\x00\x00\x80\x52\xc0\x03\x5f\xd6")]), -Memmap([Annotation(Region(0x0,0x907), Attr("segment","02 0 2312")), -Annotation(Region(0x680,0x6B3), Attr("symbol","\"_start\"")), -Annotation(Region(0x0,0xF9), Attr("section","\".shstrtab\"")), -Annotation(Region(0x0,0x227), Attr("section","\".strtab\"")), -Annotation(Region(0x0,0x887), Attr("section","\".symtab\"")), -Annotation(Region(0x0,0x2A), Attr("section","\".comment\"")), -Annotation(Region(0x238,0x252), Attr("section","\".interp\"")), -Annotation(Region(0x254,0x277), Attr("section","\".note.gnu.build-id\"")), -Annotation(Region(0x278,0x297), Attr("section","\".note.ABI-tag\"")), -Annotation(Region(0x298,0x2B3), Attr("section","\".gnu.hash\"")), -Annotation(Region(0x2B8,0x38F), Attr("section","\".dynsym\"")), -Annotation(Region(0x390,0x41C), Attr("section","\".dynstr\"")), -Annotation(Region(0x41E,0x42F), Attr("section","\".gnu.version\"")), -Annotation(Region(0x430,0x45F), Attr("section","\".gnu.version_r\"")), -Annotation(Region(0x460,0x57F), Attr("section","\".rela.dyn\"")), -Annotation(Region(0x580,0x5DF), Attr("section","\".rela.plt\"")), -Annotation(Region(0x5E0,0x5F7), Attr("section","\".init\"")), -Annotation(Region(0x600,0x65F), Attr("section","\".plt\"")), -Annotation(Region(0x5E0,0x5F7), Attr("code-region","()")), -Annotation(Region(0x600,0x65F), Attr("code-region","()")), -Annotation(Region(0x680,0x6B3), Attr("symbol-info","_start 0x680 52")), -Annotation(Region(0x6B4,0x6C7), Attr("symbol","\"call_weak_fn\"")), -Annotation(Region(0x6B4,0x6C7), Attr("symbol-info","call_weak_fn 0x6B4 20")), -Annotation(Region(0x794,0x80F), Attr("symbol","\"main\"")), -Annotation(Region(0x794,0x80F), Attr("symbol-info","main 0x794 124")), -Annotation(Region(0x810,0x823), Attr("section","\".fini\"")), -Annotation(Region(0x824,0x827), Attr("section","\".rodata\"")), -Annotation(Region(0x828,0x863), Attr("section","\".eh_frame_hdr\"")), -Annotation(Region(0x868,0x907), Attr("section","\".eh_frame\"")), -Annotation(Region(0x10D78,0x11027), Attr("segment","03 0x10D78 696")), -Annotation(Region(0x10D80,0x10D87), Attr("section","\".fini_array\"")), -Annotation(Region(0x10D88,0x10F77), Attr("section","\".dynamic\"")), -Annotation(Region(0x10F78,0x10FFF), Attr("section","\".got\"")), -Annotation(Region(0x11000,0x11027), Attr("section","\".data\"")), -Annotation(Region(0x10D78,0x10D7F), Attr("section","\".init_array\"")), -Annotation(Region(0x680,0x80F), Attr("section","\".text\"")), -Annotation(Region(0x680,0x80F), Attr("code-region","()")), -Annotation(Region(0x810,0x823), Attr("code-region","()"))]), -Program(Tid(1_609, "%00000649"), Attrs([]), - Subs([Sub(Tid(1_559, "@__cxa_finalize"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x630"), -Attr("stub","()")]), "__cxa_finalize", Args([Arg(Tid(1_610, "%0000064a"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("__cxa_finalize_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(1_057, "@__cxa_finalize"), - Attrs([Attr("address","0x630")]), Phis([]), -Defs([Def(Tid(1_305, "%00000519"), Attrs([Attr("address","0x630"), -Attr("insn","adrp x16, #65536")]), Var("R16",Imm(64)), Int(65536,64)), -Def(Tid(1_312, "%00000520"), Attrs([Attr("address","0x634"), -Attr("insn","ldr x17, [x16, #0xf98]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(3992,64)),LittleEndian(),64)), -Def(Tid(1_318, "%00000526"), Attrs([Attr("address","0x638"), -Attr("insn","add x16, x16, #0xf98")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(3992,64)))]), Jmps([Call(Tid(1_323, "%0000052b"), - Attrs([Attr("address","0x63C"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), -Sub(Tid(1_560, "@__do_global_dtors_aux"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x740")]), - "__do_global_dtors_aux", Args([Arg(Tid(1_611, "%0000064b"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("__do_global_dtors_aux_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(714, "@__do_global_dtors_aux"), - Attrs([Attr("address","0x740")]), Phis([]), Defs([Def(Tid(718, "%000002ce"), - Attrs([Attr("address","0x740"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("#3",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(18446744073709551584,64))), -Def(Tid(724, "%000002d4"), Attrs([Attr("address","0x740"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("#3",Imm(64)),Var("R29",Imm(64)),LittleEndian(),64)), -Def(Tid(730, "%000002da"), Attrs([Attr("address","0x740"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("#3",Imm(64)),Int(8,64)),Var("R30",Imm(64)),LittleEndian(),64)), -Def(Tid(734, "%000002de"), Attrs([Attr("address","0x740"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("R31",Imm(64)), -Var("#3",Imm(64))), Def(Tid(740, "%000002e4"), - Attrs([Attr("address","0x744"), Attr("insn","mov x29, sp")]), - Var("R29",Imm(64)), Var("R31",Imm(64))), Def(Tid(748, "%000002ec"), - Attrs([Attr("address","0x748"), Attr("insn","str x19, [sp, #0x10]")]), - Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(16,64)),Var("R19",Imm(64)),LittleEndian(),64)), -Def(Tid(753, "%000002f1"), Attrs([Attr("address","0x74C"), -Attr("insn","adrp x19, #69632")]), Var("R19",Imm(64)), Int(69632,64)), -Def(Tid(760, "%000002f8"), Attrs([Attr("address","0x750"), -Attr("insn","ldrb w0, [x19, #0x28]")]), Var("R0",Imm(64)), -UNSIGNED(64,Load(Var("mem",Mem(64,8)),PLUS(Var("R19",Imm(64)),Int(40,64)),LittleEndian(),8)))]), -Jmps([Goto(Tid(767, "%000002ff"), Attrs([Attr("address","0x754"), -Attr("insn","cbnz w0, #0x28")]), - NEQ(Extract(31,0,Var("R0",Imm(64))),Int(0,32)), -Direct(Tid(765, "%000002fd"))), Goto(Tid(1_599, "%0000063f"), Attrs([]), - Int(1,1), Direct(Tid(1_002, "%000003ea")))])), Blk(Tid(1_002, "%000003ea"), - Attrs([Attr("address","0x758")]), Phis([]), -Defs([Def(Tid(1_005, "%000003ed"), Attrs([Attr("address","0x758"), -Attr("insn","adrp x0, #65536")]), Var("R0",Imm(64)), Int(65536,64)), -Def(Tid(1_012, "%000003f4"), Attrs([Attr("address","0x75C"), -Attr("insn","ldr x0, [x0, #0xfc0]")]), Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(4032,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(1_018, "%000003fa"), Attrs([Attr("address","0x760"), -Attr("insn","cbz x0, #0x10")]), EQ(Var("R0",Imm(64)),Int(0,64)), -Direct(Tid(1_016, "%000003f8"))), Goto(Tid(1_600, "%00000640"), Attrs([]), - Int(1,1), Direct(Tid(1_041, "%00000411")))])), Blk(Tid(1_041, "%00000411"), - Attrs([Attr("address","0x764")]), Phis([]), -Defs([Def(Tid(1_044, "%00000414"), Attrs([Attr("address","0x764"), -Attr("insn","adrp x0, #69632")]), Var("R0",Imm(64)), Int(69632,64)), -Def(Tid(1_051, "%0000041b"), Attrs([Attr("address","0x768"), -Attr("insn","ldr x0, [x0, #0x8]")]), Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(1_056, "%00000420"), Attrs([Attr("address","0x76C"), -Attr("insn","bl #-0x13c")]), Var("R30",Imm(64)), Int(1904,64))]), -Jmps([Call(Tid(1_059, "%00000423"), Attrs([Attr("address","0x76C"), -Attr("insn","bl #-0x13c")]), Int(1,1), -(Direct(Tid(1_559, "@__cxa_finalize")),Direct(Tid(1_016, "%000003f8"))))])), -Blk(Tid(1_016, "%000003f8"), Attrs([Attr("address","0x770")]), Phis([]), -Defs([Def(Tid(1_024, "%00000400"), Attrs([Attr("address","0x770"), -Attr("insn","bl #-0xa0")]), Var("R30",Imm(64)), Int(1908,64))]), -Jmps([Call(Tid(1_026, "%00000402"), Attrs([Attr("address","0x770"), -Attr("insn","bl #-0xa0")]), Int(1,1), -(Direct(Tid(1_573, "@deregister_tm_clones")),Direct(Tid(1_028, "%00000404"))))])), -Blk(Tid(1_028, "%00000404"), Attrs([Attr("address","0x774")]), Phis([]), -Defs([Def(Tid(1_031, "%00000407"), Attrs([Attr("address","0x774"), -Attr("insn","mov w0, #0x1")]), Var("R0",Imm(64)), Int(1,64)), -Def(Tid(1_039, "%0000040f"), Attrs([Attr("address","0x778"), -Attr("insn","strb w0, [x19, #0x28]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R19",Imm(64)),Int(40,64)),Extract(7,0,Var("R0",Imm(64))),LittleEndian(),8))]), -Jmps([Goto(Tid(1_601, "%00000641"), Attrs([]), Int(1,1), -Direct(Tid(765, "%000002fd")))])), Blk(Tid(765, "%000002fd"), - Attrs([Attr("address","0x77C")]), Phis([]), Defs([Def(Tid(775, "%00000307"), - Attrs([Attr("address","0x77C"), Attr("insn","ldr x19, [sp, #0x10]")]), - Var("R19",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(16,64)),LittleEndian(),64)), -Def(Tid(782, "%0000030e"), Attrs([Attr("address","0x780"), -Attr("insn","ldp x29, x30, [sp], #0x20")]), Var("R29",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(787, "%00000313"), Attrs([Attr("address","0x780"), -Attr("insn","ldp x29, x30, [sp], #0x20")]), Var("R30",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(791, "%00000317"), Attrs([Attr("address","0x780"), -Attr("insn","ldp x29, x30, [sp], #0x20")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(32,64)))]), Jmps([Call(Tid(796, "%0000031c"), - Attrs([Attr("address","0x784"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), Sub(Tid(1_564, "@__libc_start_main"), - Attrs([Attr("c.proto","signed (*)(signed (*)(signed , char** , char** );* main, signed , char** , \nvoid* auxv)"), -Attr("address","0x620"), Attr("stub","()")]), "__libc_start_main", - Args([Arg(Tid(1_612, "%0000064c"), - Attrs([Attr("c.layout","**[ : 64]"), -Attr("c.data","Top:u64 ptr ptr"), -Attr("c.type","signed (*)(signed , char** , char** );*")]), - Var("__libc_start_main_main",Imm(64)), Var("R0",Imm(64)), In()), -Arg(Tid(1_613, "%0000064d"), Attrs([Attr("c.layout","[signed : 32]"), -Attr("c.data","Top:u32"), Attr("c.type","signed")]), - Var("__libc_start_main_arg2",Imm(32)), LOW(32,Var("R1",Imm(64))), In()), -Arg(Tid(1_614, "%0000064e"), Attrs([Attr("c.layout","**[char : 8]"), -Attr("c.data","Top:u8 ptr ptr"), Attr("c.type","char**")]), - Var("__libc_start_main_arg3",Imm(64)), Var("R2",Imm(64)), Both()), -Arg(Tid(1_615, "%0000064f"), Attrs([Attr("c.layout","*[ : 8]"), -Attr("c.data","{} ptr"), Attr("c.type","void*")]), - Var("__libc_start_main_auxv",Imm(64)), Var("R3",Imm(64)), Both()), -Arg(Tid(1_616, "%00000650"), Attrs([Attr("c.layout","[signed : 32]"), -Attr("c.data","Top:u32"), Attr("c.type","signed")]), - Var("__libc_start_main_result",Imm(32)), LOW(32,Var("R0",Imm(64))), -Out())]), Blks([Blk(Tid(547, "@__libc_start_main"), - Attrs([Attr("address","0x620")]), Phis([]), -Defs([Def(Tid(1_283, "%00000503"), Attrs([Attr("address","0x620"), -Attr("insn","adrp x16, #65536")]), Var("R16",Imm(64)), Int(65536,64)), -Def(Tid(1_290, "%0000050a"), Attrs([Attr("address","0x624"), -Attr("insn","ldr x17, [x16, #0xf90]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(3984,64)),LittleEndian(),64)), -Def(Tid(1_296, "%00000510"), Attrs([Attr("address","0x628"), -Attr("insn","add x16, x16, #0xf90")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(3984,64)))]), Jmps([Call(Tid(1_301, "%00000515"), - Attrs([Attr("address","0x62C"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), Sub(Tid(1_565, "@_fini"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x810")]), - "_fini", Args([Arg(Tid(1_617, "%00000651"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("_fini_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(31, "@_fini"), - Attrs([Attr("address","0x810")]), Phis([]), Defs([Def(Tid(37, "%00000025"), - Attrs([Attr("address","0x814"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("#0",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(18446744073709551600,64))), -Def(Tid(43, "%0000002b"), Attrs([Attr("address","0x814"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("#0",Imm(64)),Var("R29",Imm(64)),LittleEndian(),64)), -Def(Tid(49, "%00000031"), Attrs([Attr("address","0x814"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("#0",Imm(64)),Int(8,64)),Var("R30",Imm(64)),LittleEndian(),64)), -Def(Tid(53, "%00000035"), Attrs([Attr("address","0x814"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("R31",Imm(64)), -Var("#0",Imm(64))), Def(Tid(59, "%0000003b"), Attrs([Attr("address","0x818"), -Attr("insn","mov x29, sp")]), Var("R29",Imm(64)), Var("R31",Imm(64))), -Def(Tid(66, "%00000042"), Attrs([Attr("address","0x81C"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R29",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(71, "%00000047"), Attrs([Attr("address","0x81C"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R30",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(75, "%0000004b"), Attrs([Attr("address","0x81C"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(16,64)))]), Jmps([Call(Tid(80, "%00000050"), - Attrs([Attr("address","0x820"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), Sub(Tid(1_566, "@_init"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x5E0")]), - "_init", Args([Arg(Tid(1_618, "%00000652"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("_init_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(1_395, "@_init"), - Attrs([Attr("address","0x5E0")]), Phis([]), -Defs([Def(Tid(1_401, "%00000579"), Attrs([Attr("address","0x5E4"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("#5",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(18446744073709551600,64))), -Def(Tid(1_407, "%0000057f"), Attrs([Attr("address","0x5E4"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("#5",Imm(64)),Var("R29",Imm(64)),LittleEndian(),64)), -Def(Tid(1_413, "%00000585"), Attrs([Attr("address","0x5E4"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("#5",Imm(64)),Int(8,64)),Var("R30",Imm(64)),LittleEndian(),64)), -Def(Tid(1_417, "%00000589"), Attrs([Attr("address","0x5E4"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("R31",Imm(64)), -Var("#5",Imm(64))), Def(Tid(1_423, "%0000058f"), - Attrs([Attr("address","0x5E8"), Attr("insn","mov x29, sp")]), - Var("R29",Imm(64)), Var("R31",Imm(64))), Def(Tid(1_428, "%00000594"), - Attrs([Attr("address","0x5EC"), Attr("insn","bl #0xc8")]), - Var("R30",Imm(64)), Int(1520,64))]), Jmps([Call(Tid(1_430, "%00000596"), - Attrs([Attr("address","0x5EC"), Attr("insn","bl #0xc8")]), Int(1,1), -(Direct(Tid(1_571, "@call_weak_fn")),Direct(Tid(1_432, "%00000598"))))])), -Blk(Tid(1_432, "%00000598"), Attrs([Attr("address","0x5F0")]), Phis([]), -Defs([Def(Tid(1_437, "%0000059d"), Attrs([Attr("address","0x5F0"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R29",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(1_442, "%000005a2"), Attrs([Attr("address","0x5F0"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R30",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(1_446, "%000005a6"), Attrs([Attr("address","0x5F0"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(16,64)))]), Jmps([Call(Tid(1_451, "%000005ab"), - Attrs([Attr("address","0x5F4"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), Sub(Tid(1_567, "@_start"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x680"), -Attr("entry-point","()")]), "_start", Args([Arg(Tid(1_619, "%00000653"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("_start_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(484, "@_start"), - Attrs([Attr("address","0x680")]), Phis([]), Defs([Def(Tid(489, "%000001e9"), - Attrs([Attr("address","0x684"), Attr("insn","mov x29, #0x0")]), - Var("R29",Imm(64)), Int(0,64)), Def(Tid(494, "%000001ee"), - Attrs([Attr("address","0x688"), Attr("insn","mov x30, #0x0")]), - Var("R30",Imm(64)), Int(0,64)), Def(Tid(500, "%000001f4"), - Attrs([Attr("address","0x68C"), Attr("insn","mov x5, x0")]), - Var("R5",Imm(64)), Var("R0",Imm(64))), Def(Tid(507, "%000001fb"), - Attrs([Attr("address","0x690"), Attr("insn","ldr x1, [sp]")]), - Var("R1",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(513, "%00000201"), Attrs([Attr("address","0x694"), -Attr("insn","add x2, sp, #0x8")]), Var("R2",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(8,64))), Def(Tid(519, "%00000207"), - Attrs([Attr("address","0x698"), Attr("insn","mov x6, sp")]), - Var("R6",Imm(64)), Var("R31",Imm(64))), Def(Tid(524, "%0000020c"), - Attrs([Attr("address","0x69C"), Attr("insn","adrp x0, #65536")]), - Var("R0",Imm(64)), Int(65536,64)), Def(Tid(531, "%00000213"), - Attrs([Attr("address","0x6A0"), Attr("insn","ldr x0, [x0, #0xff0]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(4080,64)),LittleEndian(),64)), -Def(Tid(536, "%00000218"), Attrs([Attr("address","0x6A4"), -Attr("insn","mov x3, #0x0")]), Var("R3",Imm(64)), Int(0,64)), -Def(Tid(541, "%0000021d"), Attrs([Attr("address","0x6A8"), -Attr("insn","mov x4, #0x0")]), Var("R4",Imm(64)), Int(0,64)), -Def(Tid(546, "%00000222"), Attrs([Attr("address","0x6AC"), -Attr("insn","bl #-0x8c")]), Var("R30",Imm(64)), Int(1712,64))]), -Jmps([Call(Tid(549, "%00000225"), Attrs([Attr("address","0x6AC"), -Attr("insn","bl #-0x8c")]), Int(1,1), -(Direct(Tid(1_564, "@__libc_start_main")),Direct(Tid(551, "%00000227"))))])), -Blk(Tid(551, "%00000227"), Attrs([Attr("address","0x6B0")]), Phis([]), -Defs([Def(Tid(554, "%0000022a"), Attrs([Attr("address","0x6B0"), -Attr("insn","bl #-0x60")]), Var("R30",Imm(64)), Int(1716,64))]), -Jmps([Call(Tid(557, "%0000022d"), Attrs([Attr("address","0x6B0"), -Attr("insn","bl #-0x60")]), Int(1,1), -(Direct(Tid(1_570, "@abort")),Direct(Tid(1_602, "%00000642"))))])), -Blk(Tid(1_602, "%00000642"), Attrs([]), Phis([]), Defs([]), -Jmps([Call(Tid(1_603, "%00000643"), Attrs([]), Int(1,1), -(Direct(Tid(1_571, "@call_weak_fn")),))]))])), Sub(Tid(1_570, "@abort"), - Attrs([Attr("noreturn","()"), Attr("c.proto","void (*)(void)"), -Attr("address","0x650"), Attr("stub","()")]), "abort", Args([]), -Blks([Blk(Tid(555, "@abort"), Attrs([Attr("address","0x650")]), Phis([]), -Defs([Def(Tid(1_349, "%00000545"), Attrs([Attr("address","0x650"), -Attr("insn","adrp x16, #65536")]), Var("R16",Imm(64)), Int(65536,64)), -Def(Tid(1_356, "%0000054c"), Attrs([Attr("address","0x654"), -Attr("insn","ldr x17, [x16, #0xfa8]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(4008,64)),LittleEndian(),64)), -Def(Tid(1_362, "%00000552"), Attrs([Attr("address","0x658"), -Attr("insn","add x16, x16, #0xfa8")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(4008,64)))]), Jmps([Call(Tid(1_367, "%00000557"), - Attrs([Attr("address","0x65C"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), Sub(Tid(1_571, "@call_weak_fn"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x6B4")]), - "call_weak_fn", Args([Arg(Tid(1_620, "%00000654"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("call_weak_fn_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(559, "@call_weak_fn"), - Attrs([Attr("address","0x6B4")]), Phis([]), Defs([Def(Tid(562, "%00000232"), - Attrs([Attr("address","0x6B4"), Attr("insn","adrp x0, #65536")]), - Var("R0",Imm(64)), Int(65536,64)), Def(Tid(569, "%00000239"), - Attrs([Attr("address","0x6B8"), Attr("insn","ldr x0, [x0, #0xfd8]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(4056,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(575, "%0000023f"), Attrs([Attr("address","0x6BC"), -Attr("insn","cbz x0, #0x8")]), EQ(Var("R0",Imm(64)),Int(0,64)), -Direct(Tid(573, "%0000023d"))), Goto(Tid(1_604, "%00000644"), Attrs([]), - Int(1,1), Direct(Tid(1_121, "%00000461")))])), Blk(Tid(573, "%0000023d"), - Attrs([Attr("address","0x6C4")]), Phis([]), Defs([]), -Jmps([Call(Tid(581, "%00000245"), Attrs([Attr("address","0x6C4"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))])), -Blk(Tid(1_121, "%00000461"), Attrs([Attr("address","0x6C0")]), Phis([]), -Defs([]), Jmps([Goto(Tid(1_124, "%00000464"), Attrs([Attr("address","0x6C0"), -Attr("insn","b #-0x80")]), Int(1,1), -Direct(Tid(1_122, "@__gmon_start__")))])), Blk(Tid(1_122, "@__gmon_start__"), - Attrs([Attr("address","0x640")]), Phis([]), -Defs([Def(Tid(1_327, "%0000052f"), Attrs([Attr("address","0x640"), -Attr("insn","adrp x16, #65536")]), Var("R16",Imm(64)), Int(65536,64)), -Def(Tid(1_334, "%00000536"), Attrs([Attr("address","0x644"), -Attr("insn","ldr x17, [x16, #0xfa0]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(4000,64)),LittleEndian(),64)), -Def(Tid(1_340, "%0000053c"), Attrs([Attr("address","0x648"), -Attr("insn","add x16, x16, #0xfa0")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(4000,64)))]), Jmps([Call(Tid(1_345, "%00000541"), - Attrs([Attr("address","0x64C"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), -Sub(Tid(1_573, "@deregister_tm_clones"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x6D0")]), - "deregister_tm_clones", Args([Arg(Tid(1_621, "%00000655"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("deregister_tm_clones_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(587, "@deregister_tm_clones"), - Attrs([Attr("address","0x6D0")]), Phis([]), Defs([Def(Tid(590, "%0000024e"), - Attrs([Attr("address","0x6D0"), Attr("insn","adrp x0, #69632")]), - Var("R0",Imm(64)), Int(69632,64)), Def(Tid(596, "%00000254"), - Attrs([Attr("address","0x6D4"), Attr("insn","add x0, x0, #0x28")]), - Var("R0",Imm(64)), PLUS(Var("R0",Imm(64)),Int(40,64))), -Def(Tid(601, "%00000259"), Attrs([Attr("address","0x6D8"), -Attr("insn","adrp x1, #69632")]), Var("R1",Imm(64)), Int(69632,64)), -Def(Tid(607, "%0000025f"), Attrs([Attr("address","0x6DC"), -Attr("insn","add x1, x1, #0x28")]), Var("R1",Imm(64)), -PLUS(Var("R1",Imm(64)),Int(40,64))), Def(Tid(613, "%00000265"), - Attrs([Attr("address","0x6E0"), Attr("insn","cmp x1, x0")]), - Var("#1",Imm(64)), NOT(Var("R0",Imm(64)))), Def(Tid(618, "%0000026a"), - Attrs([Attr("address","0x6E0"), Attr("insn","cmp x1, x0")]), - Var("#2",Imm(64)), PLUS(Var("R1",Imm(64)),NOT(Var("R0",Imm(64))))), -Def(Tid(624, "%00000270"), Attrs([Attr("address","0x6E0"), -Attr("insn","cmp x1, x0")]), Var("VF",Imm(1)), -NEQ(SIGNED(65,PLUS(Var("#2",Imm(64)),Int(1,64))),PLUS(PLUS(SIGNED(65,Var("R1",Imm(64))),SIGNED(65,Var("#1",Imm(64)))),Int(1,65)))), -Def(Tid(630, "%00000276"), Attrs([Attr("address","0x6E0"), -Attr("insn","cmp x1, x0")]), Var("CF",Imm(1)), -NEQ(UNSIGNED(65,PLUS(Var("#2",Imm(64)),Int(1,64))),PLUS(PLUS(UNSIGNED(65,Var("R1",Imm(64))),UNSIGNED(65,Var("#1",Imm(64)))),Int(1,65)))), -Def(Tid(634, "%0000027a"), Attrs([Attr("address","0x6E0"), -Attr("insn","cmp x1, x0")]), Var("ZF",Imm(1)), -EQ(PLUS(Var("#2",Imm(64)),Int(1,64)),Int(0,64))), Def(Tid(638, "%0000027e"), - Attrs([Attr("address","0x6E0"), Attr("insn","cmp x1, x0")]), - Var("NF",Imm(1)), Extract(63,63,PLUS(Var("#2",Imm(64)),Int(1,64))))]), -Jmps([Goto(Tid(644, "%00000284"), Attrs([Attr("address","0x6E4"), -Attr("insn","b.eq #0x18")]), EQ(Var("ZF",Imm(1)),Int(1,1)), -Direct(Tid(642, "%00000282"))), Goto(Tid(1_605, "%00000645"), Attrs([]), - Int(1,1), Direct(Tid(1_091, "%00000443")))])), Blk(Tid(1_091, "%00000443"), - Attrs([Attr("address","0x6E8")]), Phis([]), -Defs([Def(Tid(1_094, "%00000446"), Attrs([Attr("address","0x6E8"), -Attr("insn","adrp x1, #65536")]), Var("R1",Imm(64)), Int(65536,64)), -Def(Tid(1_101, "%0000044d"), Attrs([Attr("address","0x6EC"), -Attr("insn","ldr x1, [x1, #0xfb8]")]), Var("R1",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R1",Imm(64)),Int(4024,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(1_106, "%00000452"), Attrs([Attr("address","0x6F0"), -Attr("insn","cbz x1, #0xc")]), EQ(Var("R1",Imm(64)),Int(0,64)), -Direct(Tid(642, "%00000282"))), Goto(Tid(1_606, "%00000646"), Attrs([]), - Int(1,1), Direct(Tid(1_110, "%00000456")))])), Blk(Tid(642, "%00000282"), - Attrs([Attr("address","0x6FC")]), Phis([]), Defs([]), -Jmps([Call(Tid(650, "%0000028a"), Attrs([Attr("address","0x6FC"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))])), -Blk(Tid(1_110, "%00000456"), Attrs([Attr("address","0x6F4")]), Phis([]), -Defs([Def(Tid(1_114, "%0000045a"), Attrs([Attr("address","0x6F4"), -Attr("insn","mov x16, x1")]), Var("R16",Imm(64)), Var("R1",Imm(64)))]), -Jmps([Call(Tid(1_119, "%0000045f"), Attrs([Attr("address","0x6F8"), -Attr("insn","br x16")]), Int(1,1), (Indirect(Var("R16",Imm(64))),))]))])), -Sub(Tid(1_576, "@frame_dummy"), Attrs([Attr("c.proto","signed (*)(void)"), -Attr("address","0x790")]), "frame_dummy", Args([Arg(Tid(1_622, "%00000656"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("frame_dummy_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(802, "@frame_dummy"), - Attrs([Attr("address","0x790")]), Phis([]), Defs([]), -Jmps([Call(Tid(804, "%00000324"), Attrs([Attr("address","0x790"), -Attr("insn","b #-0x90")]), Int(1,1), -(Direct(Tid(1_578, "@register_tm_clones")),))]))])), Sub(Tid(1_577, "@main"), - Attrs([Attr("c.proto","signed (*)(signed argc, const char** argv)"), -Attr("address","0x794")]), "main", Args([Arg(Tid(1_623, "%00000657"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("main_argc",Imm(32)), -LOW(32,Var("R0",Imm(64))), In()), Arg(Tid(1_624, "%00000658"), - Attrs([Attr("c.layout","**[char : 8]"), Attr("c.data","Top:u8 ptr ptr"), -Attr("c.type"," const char**")]), Var("main_argv",Imm(64)), -Var("R1",Imm(64)), Both()), Arg(Tid(1_625, "%00000659"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("main_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(806, "@main"), - Attrs([Attr("address","0x794")]), Phis([]), Defs([Def(Tid(809, "%00000329"), - Attrs([Attr("address","0x794"), Attr("insn","adrp x0, #65536")]), - Var("R0",Imm(64)), Int(65536,64)), Def(Tid(816, "%00000330"), - Attrs([Attr("address","0x798"), Attr("insn","ldr x0, [x0, #0xfd0]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(4048,64)),LittleEndian(),64)), -Def(Tid(823, "%00000337"), Attrs([Attr("address","0x79C"), -Attr("insn","ldr w0, [x0]")]), Var("R0",Imm(64)), -UNSIGNED(64,Load(Var("mem",Mem(64,8)),Var("R0",Imm(64)),LittleEndian(),32))), -Def(Tid(829, "%0000033d"), Attrs([Attr("address","0x7A0"), -Attr("insn","add w1, w0, #0x1")]), Var("R1",Imm(64)), -UNSIGNED(64,PLUS(Extract(31,0,Var("R0",Imm(64))),Int(1,32)))), -Def(Tid(834, "%00000342"), Attrs([Attr("address","0x7A4"), -Attr("insn","adrp x0, #65536")]), Var("R0",Imm(64)), Int(65536,64)), -Def(Tid(841, "%00000349"), Attrs([Attr("address","0x7A8"), -Attr("insn","ldr x0, [x0, #0xfd0]")]), Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(4048,64)),LittleEndian(),64)), -Def(Tid(849, "%00000351"), Attrs([Attr("address","0x7AC"), -Attr("insn","str w1, [x0]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("R0",Imm(64)),Extract(31,0,Var("R1",Imm(64))),LittleEndian(),32)), -Def(Tid(854, "%00000356"), Attrs([Attr("address","0x7B0"), -Attr("insn","adrp x0, #65536")]), Var("R0",Imm(64)), Int(65536,64)), -Def(Tid(861, "%0000035d"), Attrs([Attr("address","0x7B4"), -Attr("insn","ldr x0, [x0, #0xfc8]")]), Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(4040,64)),LittleEndian(),64)), -Def(Tid(868, "%00000364"), Attrs([Attr("address","0x7B8"), -Attr("insn","ldr x0, [x0]")]), Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R0",Imm(64)),LittleEndian(),64)), -Def(Tid(874, "%0000036a"), Attrs([Attr("address","0x7BC"), -Attr("insn","sub x1, x0, #0x1")]), Var("R1",Imm(64)), -PLUS(Var("R0",Imm(64)),Int(18446744073709551615,64))), -Def(Tid(879, "%0000036f"), Attrs([Attr("address","0x7C0"), -Attr("insn","adrp x0, #65536")]), Var("R0",Imm(64)), Int(65536,64)), -Def(Tid(886, "%00000376"), Attrs([Attr("address","0x7C4"), -Attr("insn","ldr x0, [x0, #0xfc8]")]), Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(4040,64)),LittleEndian(),64)), -Def(Tid(894, "%0000037e"), Attrs([Attr("address","0x7C8"), -Attr("insn","str x1, [x0]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("R0",Imm(64)),Var("R1",Imm(64)),LittleEndian(),64)), -Def(Tid(899, "%00000383"), Attrs([Attr("address","0x7CC"), -Attr("insn","adrp x0, #65536")]), Var("R0",Imm(64)), Int(65536,64)), -Def(Tid(906, "%0000038a"), Attrs([Attr("address","0x7D0"), -Attr("insn","ldr x0, [x0, #0xfe0]")]), Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(4064,64)),LittleEndian(),64)), -Def(Tid(913, "%00000391"), Attrs([Attr("address","0x7D4"), -Attr("insn","ldr w0, [x0]")]), Var("R0",Imm(64)), -UNSIGNED(64,Load(Var("mem",Mem(64,8)),Var("R0",Imm(64)),LittleEndian(),32))), -Def(Tid(919, "%00000397"), Attrs([Attr("address","0x7D8"), -Attr("insn","add w1, w0, #0x3")]), Var("R1",Imm(64)), -UNSIGNED(64,PLUS(Extract(31,0,Var("R0",Imm(64))),Int(3,32)))), -Def(Tid(924, "%0000039c"), Attrs([Attr("address","0x7DC"), -Attr("insn","adrp x0, #65536")]), Var("R0",Imm(64)), Int(65536,64)), -Def(Tid(931, "%000003a3"), Attrs([Attr("address","0x7E0"), -Attr("insn","ldr x0, [x0, #0xfe0]")]), Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(4064,64)),LittleEndian(),64)), -Def(Tid(939, "%000003ab"), Attrs([Attr("address","0x7E4"), -Attr("insn","str w1, [x0, #0x4]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(4,64)),Extract(31,0,Var("R1",Imm(64))),LittleEndian(),32)), -Def(Tid(944, "%000003b0"), Attrs([Attr("address","0x7E8"), -Attr("insn","adrp x0, #65536")]), Var("R0",Imm(64)), Int(65536,64)), -Def(Tid(951, "%000003b7"), Attrs([Attr("address","0x7EC"), -Attr("insn","ldr x0, [x0, #0xfe8]")]), Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(4072,64)),LittleEndian(),64)), -Def(Tid(958, "%000003be"), Attrs([Attr("address","0x7F0"), -Attr("insn","ldrb w0, [x0]")]), Var("R0",Imm(64)), -UNSIGNED(64,Load(Var("mem",Mem(64,8)),Var("R0",Imm(64)),LittleEndian(),8))), -Def(Tid(964, "%000003c4"), Attrs([Attr("address","0x7F4"), -Attr("insn","add w0, w0, #0x1")]), Var("R0",Imm(64)), -UNSIGNED(64,PLUS(Extract(31,0,Var("R0",Imm(64))),Int(1,32)))), -Def(Tid(970, "%000003ca"), Attrs([Attr("address","0x7F8"), -Attr("insn","and w1, w0, #0xff")]), Var("R1",Imm(64)), -UNSIGNED(64,Concat(Int(0,24),Extract(7,0,Var("R0",Imm(64)))))), -Def(Tid(975, "%000003cf"), Attrs([Attr("address","0x7FC"), -Attr("insn","adrp x0, #65536")]), Var("R0",Imm(64)), Int(65536,64)), -Def(Tid(982, "%000003d6"), Attrs([Attr("address","0x800"), -Attr("insn","ldr x0, [x0, #0xfe8]")]), Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(4072,64)),LittleEndian(),64)), -Def(Tid(990, "%000003de"), Attrs([Attr("address","0x804"), -Attr("insn","strb w1, [x0]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("R0",Imm(64)),Extract(7,0,Var("R1",Imm(64))),LittleEndian(),8)), -Def(Tid(995, "%000003e3"), Attrs([Attr("address","0x808"), -Attr("insn","mov w0, #0x0")]), Var("R0",Imm(64)), Int(0,64))]), -Jmps([Call(Tid(1_000, "%000003e8"), Attrs([Attr("address","0x80C"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))]))])), -Sub(Tid(1_578, "@register_tm_clones"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x700")]), - "register_tm_clones", Args([Arg(Tid(1_626, "%0000065a"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("register_tm_clones_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(652, "@register_tm_clones"), Attrs([Attr("address","0x700")]), - Phis([]), Defs([Def(Tid(655, "%0000028f"), Attrs([Attr("address","0x700"), -Attr("insn","adrp x0, #69632")]), Var("R0",Imm(64)), Int(69632,64)), -Def(Tid(661, "%00000295"), Attrs([Attr("address","0x704"), -Attr("insn","add x0, x0, #0x28")]), Var("R0",Imm(64)), -PLUS(Var("R0",Imm(64)),Int(40,64))), Def(Tid(666, "%0000029a"), - Attrs([Attr("address","0x708"), Attr("insn","adrp x1, #69632")]), - Var("R1",Imm(64)), Int(69632,64)), Def(Tid(672, "%000002a0"), - Attrs([Attr("address","0x70C"), Attr("insn","add x1, x1, #0x28")]), - Var("R1",Imm(64)), PLUS(Var("R1",Imm(64)),Int(40,64))), -Def(Tid(679, "%000002a7"), Attrs([Attr("address","0x710"), -Attr("insn","sub x1, x1, x0")]), Var("R1",Imm(64)), -PLUS(PLUS(Var("R1",Imm(64)),NOT(Var("R0",Imm(64)))),Int(1,64))), -Def(Tid(685, "%000002ad"), Attrs([Attr("address","0x714"), -Attr("insn","lsr x2, x1, #63")]), Var("R2",Imm(64)), -Concat(Int(0,63),Extract(63,63,Var("R1",Imm(64))))), -Def(Tid(692, "%000002b4"), Attrs([Attr("address","0x718"), -Attr("insn","add x1, x2, x1, asr #3")]), Var("R1",Imm(64)), -PLUS(Var("R2",Imm(64)),ARSHIFT(Var("R1",Imm(64)),Int(3,3)))), -Def(Tid(698, "%000002ba"), Attrs([Attr("address","0x71C"), -Attr("insn","asr x1, x1, #1")]), Var("R1",Imm(64)), -SIGNED(64,Extract(63,1,Var("R1",Imm(64)))))]), -Jmps([Goto(Tid(704, "%000002c0"), Attrs([Attr("address","0x720"), -Attr("insn","cbz x1, #0x18")]), EQ(Var("R1",Imm(64)),Int(0,64)), -Direct(Tid(702, "%000002be"))), Goto(Tid(1_607, "%00000647"), Attrs([]), - Int(1,1), Direct(Tid(1_061, "%00000425")))])), Blk(Tid(1_061, "%00000425"), - Attrs([Attr("address","0x724")]), Phis([]), -Defs([Def(Tid(1_064, "%00000428"), Attrs([Attr("address","0x724"), -Attr("insn","adrp x2, #65536")]), Var("R2",Imm(64)), Int(65536,64)), -Def(Tid(1_071, "%0000042f"), Attrs([Attr("address","0x728"), -Attr("insn","ldr x2, [x2, #0xff8]")]), Var("R2",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R2",Imm(64)),Int(4088,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(1_076, "%00000434"), Attrs([Attr("address","0x72C"), -Attr("insn","cbz x2, #0xc")]), EQ(Var("R2",Imm(64)),Int(0,64)), -Direct(Tid(702, "%000002be"))), Goto(Tid(1_608, "%00000648"), Attrs([]), - Int(1,1), Direct(Tid(1_080, "%00000438")))])), Blk(Tid(702, "%000002be"), - Attrs([Attr("address","0x738")]), Phis([]), Defs([]), -Jmps([Call(Tid(710, "%000002c6"), Attrs([Attr("address","0x738"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))])), -Blk(Tid(1_080, "%00000438"), Attrs([Attr("address","0x730")]), Phis([]), -Defs([Def(Tid(1_084, "%0000043c"), Attrs([Attr("address","0x730"), -Attr("insn","mov x16, x2")]), Var("R16",Imm(64)), Var("R2",Imm(64)))]), -Jmps([Call(Tid(1_089, "%00000441"), Attrs([Attr("address","0x734"), -Attr("insn","br x16")]), Int(1,1), -(Indirect(Var("R16",Imm(64))),))]))]))]))) \ No newline at end of file diff --git a/src/test/correct/initialisation/gcc_pic/initialisation.bir b/src/test/correct/initialisation/gcc_pic/initialisation.bir deleted file mode 100644 index dc3c7ee33..000000000 --- a/src/test/correct/initialisation/gcc_pic/initialisation.bir +++ /dev/null @@ -1,253 +0,0 @@ -00000649: program -00000617: sub __cxa_finalize(__cxa_finalize_result) -0000064a: __cxa_finalize_result :: out u32 = low:32[R0] - -00000421: -00000519: R16 := 0x10000 -00000520: R17 := mem[R16 + 0xF98, el]:u64 -00000526: R16 := R16 + 0xF98 -0000052b: call R17 with noreturn - -00000618: sub __do_global_dtors_aux(__do_global_dtors_aux_result) -0000064b: __do_global_dtors_aux_result :: out u32 = low:32[R0] - -000002ca: -000002ce: #3 := R31 - 0x20 -000002d4: mem := mem with [#3, el]:u64 <- R29 -000002da: mem := mem with [#3 + 8, el]:u64 <- R30 -000002de: R31 := #3 -000002e4: R29 := R31 -000002ec: mem := mem with [R31 + 0x10, el]:u64 <- R19 -000002f1: R19 := 0x11000 -000002f8: R0 := pad:64[mem[R19 + 0x28]] -000002ff: when 31:0[R0] <> 0 goto %000002fd -0000063f: goto %000003ea - -000003ea: -000003ed: R0 := 0x10000 -000003f4: R0 := mem[R0 + 0xFC0, el]:u64 -000003fa: when R0 = 0 goto %000003f8 -00000640: goto %00000411 - -00000411: -00000414: R0 := 0x11000 -0000041b: R0 := mem[R0 + 8, el]:u64 -00000420: R30 := 0x770 -00000423: call @__cxa_finalize with return %000003f8 - -000003f8: -00000400: R30 := 0x774 -00000402: call @deregister_tm_clones with return %00000404 - -00000404: -00000407: R0 := 1 -0000040f: mem := mem with [R19 + 0x28] <- 7:0[R0] -00000641: goto %000002fd - -000002fd: -00000307: R19 := mem[R31 + 0x10, el]:u64 -0000030e: R29 := mem[R31, el]:u64 -00000313: R30 := mem[R31 + 8, el]:u64 -00000317: R31 := R31 + 0x20 -0000031c: call R30 with noreturn - -0000061c: sub __libc_start_main(__libc_start_main_main, __libc_start_main_arg2, __libc_start_main_arg3, __libc_start_main_auxv, __libc_start_main_result) -0000064c: __libc_start_main_main :: in u64 = R0 -0000064d: __libc_start_main_arg2 :: in u32 = low:32[R1] -0000064e: __libc_start_main_arg3 :: in out u64 = R2 -0000064f: __libc_start_main_auxv :: in out u64 = R3 -00000650: __libc_start_main_result :: out u32 = low:32[R0] - -00000223: -00000503: R16 := 0x10000 -0000050a: R17 := mem[R16 + 0xF90, el]:u64 -00000510: R16 := R16 + 0xF90 -00000515: call R17 with noreturn - -0000061d: sub _fini(_fini_result) -00000651: _fini_result :: out u32 = low:32[R0] - -0000001f: -00000025: #0 := R31 - 0x10 -0000002b: mem := mem with [#0, el]:u64 <- R29 -00000031: mem := mem with [#0 + 8, el]:u64 <- R30 -00000035: R31 := #0 -0000003b: R29 := R31 -00000042: R29 := mem[R31, el]:u64 -00000047: R30 := mem[R31 + 8, el]:u64 -0000004b: R31 := R31 + 0x10 -00000050: call R30 with noreturn - -0000061e: sub _init(_init_result) -00000652: _init_result :: out u32 = low:32[R0] - -00000573: -00000579: #5 := R31 - 0x10 -0000057f: mem := mem with [#5, el]:u64 <- R29 -00000585: mem := mem with [#5 + 8, el]:u64 <- R30 -00000589: R31 := #5 -0000058f: R29 := R31 -00000594: R30 := 0x5F0 -00000596: call @call_weak_fn with return %00000598 - -00000598: -0000059d: R29 := mem[R31, el]:u64 -000005a2: R30 := mem[R31 + 8, el]:u64 -000005a6: R31 := R31 + 0x10 -000005ab: call R30 with noreturn - -0000061f: sub _start(_start_result) -00000653: _start_result :: out u32 = low:32[R0] - -000001e4: -000001e9: R29 := 0 -000001ee: R30 := 0 -000001f4: R5 := R0 -000001fb: R1 := mem[R31, el]:u64 -00000201: R2 := R31 + 8 -00000207: R6 := R31 -0000020c: R0 := 0x10000 -00000213: R0 := mem[R0 + 0xFF0, el]:u64 -00000218: R3 := 0 -0000021d: R4 := 0 -00000222: R30 := 0x6B0 -00000225: call @__libc_start_main with return %00000227 - -00000227: -0000022a: R30 := 0x6B4 -0000022d: call @abort with return %00000642 - -00000642: -00000643: call @call_weak_fn with noreturn - -00000622: sub abort() - - -0000022b: -00000545: R16 := 0x10000 -0000054c: R17 := mem[R16 + 0xFA8, el]:u64 -00000552: R16 := R16 + 0xFA8 -00000557: call R17 with noreturn - -00000623: sub call_weak_fn(call_weak_fn_result) -00000654: call_weak_fn_result :: out u32 = low:32[R0] - -0000022f: -00000232: R0 := 0x10000 -00000239: R0 := mem[R0 + 0xFD8, el]:u64 -0000023f: when R0 = 0 goto %0000023d -00000644: goto %00000461 - -0000023d: -00000245: call R30 with noreturn - -00000461: -00000464: goto @__gmon_start__ - -00000462: -0000052f: R16 := 0x10000 -00000536: R17 := mem[R16 + 0xFA0, el]:u64 -0000053c: R16 := R16 + 0xFA0 -00000541: call R17 with noreturn - -00000625: sub deregister_tm_clones(deregister_tm_clones_result) -00000655: deregister_tm_clones_result :: out u32 = low:32[R0] - -0000024b: -0000024e: R0 := 0x11000 -00000254: R0 := R0 + 0x28 -00000259: R1 := 0x11000 -0000025f: R1 := R1 + 0x28 -00000265: #1 := ~R0 -0000026a: #2 := R1 + ~R0 -00000270: VF := extend:65[#2 + 1] <> extend:65[R1] + extend:65[#1] + 1 -00000276: CF := pad:65[#2 + 1] <> pad:65[R1] + pad:65[#1] + 1 -0000027a: ZF := #2 + 1 = 0 -0000027e: NF := 63:63[#2 + 1] -00000284: when ZF goto %00000282 -00000645: goto %00000443 - -00000443: -00000446: R1 := 0x10000 -0000044d: R1 := mem[R1 + 0xFB8, el]:u64 -00000452: when R1 = 0 goto %00000282 -00000646: goto %00000456 - -00000282: -0000028a: call R30 with noreturn - -00000456: -0000045a: R16 := R1 -0000045f: call R16 with noreturn - -00000628: sub frame_dummy(frame_dummy_result) -00000656: frame_dummy_result :: out u32 = low:32[R0] - -00000322: -00000324: call @register_tm_clones with noreturn - -00000629: sub main(main_argc, main_argv, main_result) -00000657: main_argc :: in u32 = low:32[R0] -00000658: main_argv :: in out u64 = R1 -00000659: main_result :: out u32 = low:32[R0] - -00000326: -00000329: R0 := 0x10000 -00000330: R0 := mem[R0 + 0xFD0, el]:u64 -00000337: R0 := pad:64[mem[R0, el]:u32] -0000033d: R1 := pad:64[31:0[R0] + 1] -00000342: R0 := 0x10000 -00000349: R0 := mem[R0 + 0xFD0, el]:u64 -00000351: mem := mem with [R0, el]:u32 <- 31:0[R1] -00000356: R0 := 0x10000 -0000035d: R0 := mem[R0 + 0xFC8, el]:u64 -00000364: R0 := mem[R0, el]:u64 -0000036a: R1 := R0 - 1 -0000036f: R0 := 0x10000 -00000376: R0 := mem[R0 + 0xFC8, el]:u64 -0000037e: mem := mem with [R0, el]:u64 <- R1 -00000383: R0 := 0x10000 -0000038a: R0 := mem[R0 + 0xFE0, el]:u64 -00000391: R0 := pad:64[mem[R0, el]:u32] -00000397: R1 := pad:64[31:0[R0] + 3] -0000039c: R0 := 0x10000 -000003a3: R0 := mem[R0 + 0xFE0, el]:u64 -000003ab: mem := mem with [R0 + 4, el]:u32 <- 31:0[R1] -000003b0: R0 := 0x10000 -000003b7: R0 := mem[R0 + 0xFE8, el]:u64 -000003be: R0 := pad:64[mem[R0]] -000003c4: R0 := pad:64[31:0[R0] + 1] -000003ca: R1 := pad:64[0.7:0[R0]] -000003cf: R0 := 0x10000 -000003d6: R0 := mem[R0 + 0xFE8, el]:u64 -000003de: mem := mem with [R0] <- 7:0[R1] -000003e3: R0 := 0 -000003e8: call R30 with noreturn - -0000062a: sub register_tm_clones(register_tm_clones_result) -0000065a: register_tm_clones_result :: out u32 = low:32[R0] - -0000028c: -0000028f: R0 := 0x11000 -00000295: R0 := R0 + 0x28 -0000029a: R1 := 0x11000 -000002a0: R1 := R1 + 0x28 -000002a7: R1 := R1 + ~R0 + 1 -000002ad: R2 := 0.63:63[R1] -000002b4: R1 := R2 + (R1 ~>> 3) -000002ba: R1 := extend:64[63:1[R1]] -000002c0: when R1 = 0 goto %000002be -00000647: goto %00000425 - -00000425: -00000428: R2 := 0x10000 -0000042f: R2 := mem[R2 + 0xFF8, el]:u64 -00000434: when R2 = 0 goto %000002be -00000648: goto %00000438 - -000002be: -000002c6: call R30 with noreturn - -00000438: -0000043c: R16 := R2 -00000441: call R16 with noreturn diff --git a/src/test/correct/initialisation/gcc_pic/initialisation.expected b/src/test/correct/initialisation/gcc_pic/initialisation.expected index 4fc161a75..db2b92fc2 100644 --- a/src/test/correct/initialisation/gcc_pic/initialisation.expected +++ b/src/test/correct/initialisation/gcc_pic/initialisation.expected @@ -98,7 +98,7 @@ procedure {:extern} rely_reflexive(); procedure {:extern} guarantee_reflexive(); modifies Gamma_mem, mem; -procedure main_1940(); +procedure main(); modifies Gamma_R0, Gamma_R1, Gamma_mem, R0, R1, mem; free requires (memory_load64_le(mem, 69632bv64) == 0bv64); free requires (memory_load64_le(mem, 69640bv64) == 69640bv64); @@ -127,103 +127,103 @@ procedure main_1940(); free ensures (memory_load64_le(mem, 69616bv64) == 1940bv64); free ensures (memory_load64_le(mem, 69640bv64) == 69640bv64); -implementation main_1940() +implementation main() { - var Gamma_load18: bool; - var Gamma_load19: bool; - var Gamma_load20: bool; - var Gamma_load21: bool; - var Gamma_load22: bool; - var Gamma_load23: bool; - var Gamma_load24: bool; - var Gamma_load25: bool; - var Gamma_load26: bool; - var Gamma_load27: bool; - var Gamma_load28: bool; - var Gamma_load29: bool; - var load18: bv64; - var load19: bv32; - var load20: bv64; - var load21: bv64; - var load22: bv64; - var load23: bv64; - var load24: bv64; - var load25: bv32; - var load26: bv64; - var load27: bv64; - var load28: bv8; - var load29: bv64; + var $load$18: bv64; + var $load$19: bv32; + var $load$20: bv64; + var $load$21: bv64; + var $load$22: bv64; + var $load$23: bv64; + var $load$24: bv64; + var $load$25: bv32; + var $load$26: bv64; + var $load$27: bv64; + var $load$28: bv8; + var $load$29: bv64; + var Gamma_$load$18: bool; + var Gamma_$load$19: bool; + var Gamma_$load$20: bool; + var Gamma_$load$21: bool; + var Gamma_$load$22: bool; + var Gamma_$load$23: bool; + var Gamma_$load$24: bool; + var Gamma_$load$25: bool; + var Gamma_$load$26: bool; + var Gamma_$load$27: bool; + var Gamma_$load$28: bool; + var Gamma_$load$29: bool; lmain: assume {:captureState "lmain"} true; R0, Gamma_R0 := 65536bv64, true; call rely(); - load18, Gamma_load18 := memory_load64_le(mem, bvadd64(R0, 4048bv64)), (gamma_load64(Gamma_mem, bvadd64(R0, 4048bv64)) || L(mem, bvadd64(R0, 4048bv64))); - R0, Gamma_R0 := load18, Gamma_load18; + $load$18, Gamma_$load$18 := memory_load64_le(mem, bvadd64(R0, 4048bv64)), (gamma_load64(Gamma_mem, bvadd64(R0, 4048bv64)) || L(mem, bvadd64(R0, 4048bv64))); + R0, Gamma_R0 := $load$18, Gamma_$load$18; call rely(); - load19, Gamma_load19 := memory_load32_le(mem, R0), (gamma_load32(Gamma_mem, R0) || L(mem, R0)); - R0, Gamma_R0 := zero_extend32_32(load19), Gamma_load19; + $load$19, Gamma_$load$19 := memory_load32_le(mem, R0), (gamma_load32(Gamma_mem, R0) || L(mem, R0)); + R0, Gamma_R0 := zero_extend32_32($load$19), Gamma_$load$19; R1, Gamma_R1 := zero_extend32_32(bvadd32(R0[32:0], 1bv32)), Gamma_R0; R0, Gamma_R0 := 65536bv64, true; call rely(); - load20, Gamma_load20 := memory_load64_le(mem, bvadd64(R0, 4048bv64)), (gamma_load64(Gamma_mem, bvadd64(R0, 4048bv64)) || L(mem, bvadd64(R0, 4048bv64))); - R0, Gamma_R0 := load20, Gamma_load20; + $load$20, Gamma_$load$20 := memory_load64_le(mem, bvadd64(R0, 4048bv64)), (gamma_load64(Gamma_mem, bvadd64(R0, 4048bv64)) || L(mem, bvadd64(R0, 4048bv64))); + R0, Gamma_R0 := $load$20, Gamma_$load$20; call rely(); assert (L(mem, R0) ==> Gamma_R1); mem, Gamma_mem := memory_store32_le(mem, R0, R1[32:0]), gamma_store32(Gamma_mem, R0, Gamma_R1); assume {:captureState "%00000351"} true; R0, Gamma_R0 := 65536bv64, true; call rely(); - load21, Gamma_load21 := memory_load64_le(mem, bvadd64(R0, 4040bv64)), (gamma_load64(Gamma_mem, bvadd64(R0, 4040bv64)) || L(mem, bvadd64(R0, 4040bv64))); - R0, Gamma_R0 := load21, Gamma_load21; + $load$21, Gamma_$load$21 := memory_load64_le(mem, bvadd64(R0, 4040bv64)), (gamma_load64(Gamma_mem, bvadd64(R0, 4040bv64)) || L(mem, bvadd64(R0, 4040bv64))); + R0, Gamma_R0 := $load$21, Gamma_$load$21; call rely(); - load22, Gamma_load22 := memory_load64_le(mem, R0), (gamma_load64(Gamma_mem, R0) || L(mem, R0)); - R0, Gamma_R0 := load22, Gamma_load22; + $load$22, Gamma_$load$22 := memory_load64_le(mem, R0), (gamma_load64(Gamma_mem, R0) || L(mem, R0)); + R0, Gamma_R0 := $load$22, Gamma_$load$22; R1, Gamma_R1 := bvadd64(R0, 18446744073709551615bv64), Gamma_R0; R0, Gamma_R0 := 65536bv64, true; call rely(); - load23, Gamma_load23 := memory_load64_le(mem, bvadd64(R0, 4040bv64)), (gamma_load64(Gamma_mem, bvadd64(R0, 4040bv64)) || L(mem, bvadd64(R0, 4040bv64))); - R0, Gamma_R0 := load23, Gamma_load23; + $load$23, Gamma_$load$23 := memory_load64_le(mem, bvadd64(R0, 4040bv64)), (gamma_load64(Gamma_mem, bvadd64(R0, 4040bv64)) || L(mem, bvadd64(R0, 4040bv64))); + R0, Gamma_R0 := $load$23, Gamma_$load$23; call rely(); assert (L(mem, R0) ==> Gamma_R1); mem, Gamma_mem := memory_store64_le(mem, R0, R1), gamma_store64(Gamma_mem, R0, Gamma_R1); assume {:captureState "%0000037e"} true; R0, Gamma_R0 := 65536bv64, true; call rely(); - load24, Gamma_load24 := memory_load64_le(mem, bvadd64(R0, 4064bv64)), (gamma_load64(Gamma_mem, bvadd64(R0, 4064bv64)) || L(mem, bvadd64(R0, 4064bv64))); - R0, Gamma_R0 := load24, Gamma_load24; + $load$24, Gamma_$load$24 := memory_load64_le(mem, bvadd64(R0, 4064bv64)), (gamma_load64(Gamma_mem, bvadd64(R0, 4064bv64)) || L(mem, bvadd64(R0, 4064bv64))); + R0, Gamma_R0 := $load$24, Gamma_$load$24; call rely(); - load25, Gamma_load25 := memory_load32_le(mem, R0), (gamma_load32(Gamma_mem, R0) || L(mem, R0)); - R0, Gamma_R0 := zero_extend32_32(load25), Gamma_load25; + $load$25, Gamma_$load$25 := memory_load32_le(mem, R0), (gamma_load32(Gamma_mem, R0) || L(mem, R0)); + R0, Gamma_R0 := zero_extend32_32($load$25), Gamma_$load$25; R1, Gamma_R1 := zero_extend32_32(bvadd32(R0[32:0], 3bv32)), Gamma_R0; R0, Gamma_R0 := 65536bv64, true; call rely(); - load26, Gamma_load26 := memory_load64_le(mem, bvadd64(R0, 4064bv64)), (gamma_load64(Gamma_mem, bvadd64(R0, 4064bv64)) || L(mem, bvadd64(R0, 4064bv64))); - R0, Gamma_R0 := load26, Gamma_load26; + $load$26, Gamma_$load$26 := memory_load64_le(mem, bvadd64(R0, 4064bv64)), (gamma_load64(Gamma_mem, bvadd64(R0, 4064bv64)) || L(mem, bvadd64(R0, 4064bv64))); + R0, Gamma_R0 := $load$26, Gamma_$load$26; call rely(); assert (L(mem, bvadd64(R0, 4bv64)) ==> Gamma_R1); mem, Gamma_mem := memory_store32_le(mem, bvadd64(R0, 4bv64), R1[32:0]), gamma_store32(Gamma_mem, bvadd64(R0, 4bv64), Gamma_R1); assume {:captureState "%000003ab"} true; R0, Gamma_R0 := 65536bv64, true; call rely(); - load27, Gamma_load27 := memory_load64_le(mem, bvadd64(R0, 4072bv64)), (gamma_load64(Gamma_mem, bvadd64(R0, 4072bv64)) || L(mem, bvadd64(R0, 4072bv64))); - R0, Gamma_R0 := load27, Gamma_load27; + $load$27, Gamma_$load$27 := memory_load64_le(mem, bvadd64(R0, 4072bv64)), (gamma_load64(Gamma_mem, bvadd64(R0, 4072bv64)) || L(mem, bvadd64(R0, 4072bv64))); + R0, Gamma_R0 := $load$27, Gamma_$load$27; call rely(); - load28, Gamma_load28 := memory_load8_le(mem, R0), (gamma_load8(Gamma_mem, R0) || L(mem, R0)); - R0, Gamma_R0 := zero_extend56_8(load28), Gamma_load28; + $load$28, Gamma_$load$28 := memory_load8_le(mem, R0), (gamma_load8(Gamma_mem, R0) || L(mem, R0)); + R0, Gamma_R0 := zero_extend56_8($load$28), Gamma_$load$28; R0, Gamma_R0 := zero_extend32_32(bvadd32(R0[32:0], 1bv32)), Gamma_R0; R1, Gamma_R1 := zero_extend32_32((0bv24 ++ R0[8:0])), Gamma_R0; R0, Gamma_R0 := 65536bv64, true; call rely(); - load29, Gamma_load29 := memory_load64_le(mem, bvadd64(R0, 4072bv64)), (gamma_load64(Gamma_mem, bvadd64(R0, 4072bv64)) || L(mem, bvadd64(R0, 4072bv64))); - R0, Gamma_R0 := load29, Gamma_load29; + $load$29, Gamma_$load$29 := memory_load64_le(mem, bvadd64(R0, 4072bv64)), (gamma_load64(Gamma_mem, bvadd64(R0, 4072bv64)) || L(mem, bvadd64(R0, 4072bv64))); + R0, Gamma_R0 := $load$29, Gamma_$load$29; call rely(); assert (L(mem, R0) ==> Gamma_R1); mem, Gamma_mem := memory_store8_le(mem, R0, R1[8:0]), gamma_store8(Gamma_mem, R0, Gamma_R1); assume {:captureState "%000003de"} true; R0, Gamma_R0 := 0bv64, true; - goto main_1940_basil_return; - main_1940_basil_return: - assume {:captureState "main_1940_basil_return"} true; + goto main_basil_return; + main_basil_return: + assume {:captureState "main_basil_return"} true; return; } diff --git a/src/test/correct/initialisation/gcc_pic/initialisation.gts b/src/test/correct/initialisation/gcc_pic/initialisation.gts deleted file mode 100644 index 1f8c9b4ba..000000000 Binary files a/src/test/correct/initialisation/gcc_pic/initialisation.gts and /dev/null differ diff --git a/src/test/correct/initialisation/gcc_pic/initialisation.md5sum b/src/test/correct/initialisation/gcc_pic/initialisation.md5sum new file mode 100644 index 000000000..8b22cb90b --- /dev/null +++ b/src/test/correct/initialisation/gcc_pic/initialisation.md5sum @@ -0,0 +1,5 @@ +6db22dacb722916215afa122aa6702f9 correct/initialisation/gcc_pic/a.out +651d6a2fcc8ddc725b60e2d1f9f35c73 correct/initialisation/gcc_pic/initialisation.adt +db0305f174245d6c5be54d079b2aab24 correct/initialisation/gcc_pic/initialisation.bir +4449db28fa6e4b8540a19c3d9f80f6d5 correct/initialisation/gcc_pic/initialisation.relf +2c8554b90c0eee2efd985e1cddc04e9d correct/initialisation/gcc_pic/initialisation.gts diff --git a/src/test/correct/initialisation/gcc_pic/initialisation.relf b/src/test/correct/initialisation/gcc_pic/initialisation.relf deleted file mode 100644 index 2b74809cb..000000000 --- a/src/test/correct/initialisation/gcc_pic/initialisation.relf +++ /dev/null @@ -1,128 +0,0 @@ - -Relocation section '.rela.dyn' at offset 0x460 contains 12 entries: - Offset Info Type Symbol's Value Symbol's Name + Addend -0000000000010d78 0000000000000403 R_AARCH64_RELATIVE 790 -0000000000010d80 0000000000000403 R_AARCH64_RELATIVE 740 -0000000000010fc8 0000000000000403 R_AARCH64_RELATIVE 11018 -0000000000010fd0 0000000000000403 R_AARCH64_RELATIVE 11010 -0000000000010fe0 0000000000000403 R_AARCH64_RELATIVE 11020 -0000000000010fe8 0000000000000403 R_AARCH64_RELATIVE 11014 -0000000000010ff0 0000000000000403 R_AARCH64_RELATIVE 794 -0000000000011008 0000000000000403 R_AARCH64_RELATIVE 11008 -0000000000010fb8 0000000400000401 R_AARCH64_GLOB_DAT 0000000000000000 _ITM_deregisterTMCloneTable + 0 -0000000000010fc0 0000000500000401 R_AARCH64_GLOB_DAT 0000000000000000 __cxa_finalize@GLIBC_2.17 + 0 -0000000000010fd8 0000000600000401 R_AARCH64_GLOB_DAT 0000000000000000 __gmon_start__ + 0 -0000000000010ff8 0000000800000401 R_AARCH64_GLOB_DAT 0000000000000000 _ITM_registerTMCloneTable + 0 - -Relocation section '.rela.plt' at offset 0x580 contains 4 entries: - Offset Info Type Symbol's Value Symbol's Name + Addend -0000000000010f90 0000000300000402 R_AARCH64_JUMP_SLOT 0000000000000000 __libc_start_main@GLIBC_2.34 + 0 -0000000000010f98 0000000500000402 R_AARCH64_JUMP_SLOT 0000000000000000 __cxa_finalize@GLIBC_2.17 + 0 -0000000000010fa0 0000000600000402 R_AARCH64_JUMP_SLOT 0000000000000000 __gmon_start__ + 0 -0000000000010fa8 0000000700000402 R_AARCH64_JUMP_SLOT 0000000000000000 abort@GLIBC_2.17 + 0 - -Symbol table '.dynsym' contains 9 entries: - Num: Value Size Type Bind Vis Ndx Name - 0: 0000000000000000 0 NOTYPE LOCAL DEFAULT UND - 1: 00000000000005e0 0 SECTION LOCAL DEFAULT 11 .init - 2: 0000000000011000 0 SECTION LOCAL DEFAULT 22 .data - 3: 0000000000000000 0 FUNC GLOBAL DEFAULT UND __libc_start_main@GLIBC_2.34 (2) - 4: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_deregisterTMCloneTable - 5: 0000000000000000 0 FUNC WEAK DEFAULT UND __cxa_finalize@GLIBC_2.17 (3) - 6: 0000000000000000 0 NOTYPE WEAK DEFAULT UND __gmon_start__ - 7: 0000000000000000 0 FUNC GLOBAL DEFAULT UND abort@GLIBC_2.17 (3) - 8: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_registerTMCloneTable - -Symbol table '.symtab' contains 91 entries: - Num: Value Size Type Bind Vis Ndx Name - 0: 0000000000000000 0 NOTYPE LOCAL DEFAULT UND - 1: 0000000000000238 0 SECTION LOCAL DEFAULT 1 .interp - 2: 0000000000000254 0 SECTION LOCAL DEFAULT 2 .note.gnu.build-id - 3: 0000000000000278 0 SECTION LOCAL DEFAULT 3 .note.ABI-tag - 4: 0000000000000298 0 SECTION LOCAL DEFAULT 4 .gnu.hash - 5: 00000000000002b8 0 SECTION LOCAL DEFAULT 5 .dynsym - 6: 0000000000000390 0 SECTION LOCAL DEFAULT 6 .dynstr - 7: 000000000000041e 0 SECTION LOCAL DEFAULT 7 .gnu.version - 8: 0000000000000430 0 SECTION LOCAL DEFAULT 8 .gnu.version_r - 9: 0000000000000460 0 SECTION LOCAL DEFAULT 9 .rela.dyn - 10: 0000000000000580 0 SECTION LOCAL DEFAULT 10 .rela.plt - 11: 00000000000005e0 0 SECTION LOCAL DEFAULT 11 .init - 12: 0000000000000600 0 SECTION LOCAL DEFAULT 12 .plt - 13: 0000000000000680 0 SECTION LOCAL DEFAULT 13 .text - 14: 0000000000000810 0 SECTION LOCAL DEFAULT 14 .fini - 15: 0000000000000824 0 SECTION LOCAL DEFAULT 15 .rodata - 16: 0000000000000828 0 SECTION LOCAL DEFAULT 16 .eh_frame_hdr - 17: 0000000000000868 0 SECTION LOCAL DEFAULT 17 .eh_frame - 18: 0000000000010d78 0 SECTION LOCAL DEFAULT 18 .init_array - 19: 0000000000010d80 0 SECTION LOCAL DEFAULT 19 .fini_array - 20: 0000000000010d88 0 SECTION LOCAL DEFAULT 20 .dynamic - 21: 0000000000010f78 0 SECTION LOCAL DEFAULT 21 .got - 22: 0000000000011000 0 SECTION LOCAL DEFAULT 22 .data - 23: 0000000000011028 0 SECTION LOCAL DEFAULT 23 .bss - 24: 0000000000000000 0 SECTION LOCAL DEFAULT 24 .comment - 25: 0000000000000000 0 FILE LOCAL DEFAULT ABS Scrt1.o - 26: 0000000000000278 0 NOTYPE LOCAL DEFAULT 3 $d - 27: 0000000000000278 32 OBJECT LOCAL DEFAULT 3 __abi_tag - 28: 0000000000000680 0 NOTYPE LOCAL DEFAULT 13 $x - 29: 000000000000087c 0 NOTYPE LOCAL DEFAULT 17 $d - 30: 0000000000000824 0 NOTYPE LOCAL DEFAULT 15 $d - 31: 0000000000000000 0 FILE LOCAL DEFAULT ABS crti.o - 32: 00000000000006b4 0 NOTYPE LOCAL DEFAULT 13 $x - 33: 00000000000006b4 20 FUNC LOCAL DEFAULT 13 call_weak_fn - 34: 00000000000005e0 0 NOTYPE LOCAL DEFAULT 11 $x - 35: 0000000000000810 0 NOTYPE LOCAL DEFAULT 14 $x - 36: 0000000000000000 0 FILE LOCAL DEFAULT ABS crtn.o - 37: 00000000000005f0 0 NOTYPE LOCAL DEFAULT 11 $x - 38: 000000000000081c 0 NOTYPE LOCAL DEFAULT 14 $x - 39: 0000000000000000 0 FILE LOCAL DEFAULT ABS crtstuff.c - 40: 00000000000006d0 0 NOTYPE LOCAL DEFAULT 13 $x - 41: 00000000000006d0 0 FUNC LOCAL DEFAULT 13 deregister_tm_clones - 42: 0000000000000700 0 FUNC LOCAL DEFAULT 13 register_tm_clones - 43: 0000000000011008 0 NOTYPE LOCAL DEFAULT 22 $d - 44: 0000000000000740 0 FUNC LOCAL DEFAULT 13 __do_global_dtors_aux - 45: 0000000000011028 1 OBJECT LOCAL DEFAULT 23 completed.0 - 46: 0000000000010d80 0 NOTYPE LOCAL DEFAULT 19 $d - 47: 0000000000010d80 0 OBJECT LOCAL DEFAULT 19 __do_global_dtors_aux_fini_array_entry - 48: 0000000000000790 0 FUNC LOCAL DEFAULT 13 frame_dummy - 49: 0000000000010d78 0 NOTYPE LOCAL DEFAULT 18 $d - 50: 0000000000010d78 0 OBJECT LOCAL DEFAULT 18 __frame_dummy_init_array_entry - 51: 0000000000000890 0 NOTYPE LOCAL DEFAULT 17 $d - 52: 0000000000011028 0 NOTYPE LOCAL DEFAULT 23 $d - 53: 0000000000000000 0 FILE LOCAL DEFAULT ABS initialisation.c - 54: 0000000000011010 0 NOTYPE LOCAL DEFAULT 22 $d - 55: 0000000000000794 0 NOTYPE LOCAL DEFAULT 13 $x - 56: 00000000000008f0 0 NOTYPE LOCAL DEFAULT 17 $d - 57: 0000000000000000 0 FILE LOCAL DEFAULT ABS crtstuff.c - 58: 0000000000000904 0 NOTYPE LOCAL DEFAULT 17 $d - 59: 0000000000000904 0 OBJECT LOCAL DEFAULT 17 __FRAME_END__ - 60: 0000000000000000 0 FILE LOCAL DEFAULT ABS - 61: 0000000000010d88 0 OBJECT LOCAL DEFAULT ABS _DYNAMIC - 62: 0000000000000828 0 NOTYPE LOCAL DEFAULT 16 __GNU_EH_FRAME_HDR - 63: 0000000000010fb0 0 OBJECT LOCAL DEFAULT ABS _GLOBAL_OFFSET_TABLE_ - 64: 0000000000000600 0 NOTYPE LOCAL DEFAULT 12 $x - 65: 0000000000000000 0 FUNC GLOBAL DEFAULT UND __libc_start_main@GLIBC_2.34 - 66: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_deregisterTMCloneTable - 67: 0000000000011000 0 NOTYPE WEAK DEFAULT 22 data_start - 68: 0000000000011028 0 NOTYPE GLOBAL DEFAULT 23 __bss_start__ - 69: 0000000000000000 0 FUNC WEAK DEFAULT UND __cxa_finalize@GLIBC_2.17 - 70: 0000000000011030 0 NOTYPE GLOBAL DEFAULT 23 _bss_end__ - 71: 0000000000011028 0 NOTYPE GLOBAL DEFAULT 22 _edata - 72: 0000000000011018 8 OBJECT GLOBAL DEFAULT 22 z - 73: 0000000000011010 4 OBJECT GLOBAL DEFAULT 22 x - 74: 0000000000000810 0 FUNC GLOBAL HIDDEN 14 _fini - 75: 0000000000011030 0 NOTYPE GLOBAL DEFAULT 23 __bss_end__ - 76: 0000000000011000 0 NOTYPE GLOBAL DEFAULT 22 __data_start - 77: 0000000000000000 0 NOTYPE WEAK DEFAULT UND __gmon_start__ - 78: 0000000000011008 0 OBJECT GLOBAL HIDDEN 22 __dso_handle - 79: 0000000000000000 0 FUNC GLOBAL DEFAULT UND abort@GLIBC_2.17 - 80: 0000000000000824 4 OBJECT GLOBAL DEFAULT 15 _IO_stdin_used - 81: 0000000000011030 0 NOTYPE GLOBAL DEFAULT 23 _end - 82: 0000000000000680 52 FUNC GLOBAL DEFAULT 13 _start - 83: 0000000000011020 8 OBJECT GLOBAL DEFAULT 22 a - 84: 0000000000011030 0 NOTYPE GLOBAL DEFAULT 23 __end__ - 85: 0000000000011014 1 OBJECT GLOBAL DEFAULT 22 y - 86: 0000000000011028 0 NOTYPE GLOBAL DEFAULT 23 __bss_start - 87: 0000000000000794 124 FUNC GLOBAL DEFAULT 13 main - 88: 0000000000011028 0 OBJECT GLOBAL HIDDEN 22 __TMC_END__ - 89: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_registerTMCloneTable - 90: 00000000000005e0 0 FUNC GLOBAL HIDDEN 11 _init diff --git a/src/test/correct/initialisation/gcc_pic/initialisation_gtirb.expected b/src/test/correct/initialisation/gcc_pic/initialisation_gtirb.expected index 1ef3b7e83..762a6e2f3 100644 --- a/src/test/correct/initialisation/gcc_pic/initialisation_gtirb.expected +++ b/src/test/correct/initialisation/gcc_pic/initialisation_gtirb.expected @@ -98,7 +98,7 @@ procedure {:extern} rely_reflexive(); procedure {:extern} guarantee_reflexive(); modifies Gamma_mem, mem; -procedure main_1940(); +procedure main(); modifies Gamma_R0, Gamma_R1, Gamma_mem, R0, R1, mem; free requires (memory_load64_le(mem, 69632bv64) == 0bv64); free requires (memory_load64_le(mem, 69640bv64) == 69640bv64); @@ -127,103 +127,103 @@ procedure main_1940(); free ensures (memory_load64_le(mem, 69616bv64) == 1940bv64); free ensures (memory_load64_le(mem, 69640bv64) == 69640bv64); -implementation main_1940() +implementation main() { - var Gamma_load17: bool; - var Gamma_load18: bool; - var Gamma_load19: bool; - var Gamma_load20: bool; - var Gamma_load21: bool; - var Gamma_load22: bool; - var Gamma_load23: bool; - var Gamma_load24: bool; - var Gamma_load25: bool; - var Gamma_load26: bool; - var Gamma_load27: bool; - var Gamma_load28: bool; - var load17: bv64; - var load18: bv32; - var load19: bv64; - var load20: bv64; - var load21: bv64; - var load22: bv64; - var load23: bv64; - var load24: bv32; - var load25: bv64; - var load26: bv64; - var load27: bv8; - var load28: bv64; - main_1940__0__RdBKbEpiQ_~E2xl9E6bZQw: - assume {:captureState "main_1940__0__RdBKbEpiQ_~E2xl9E6bZQw"} true; + var $load17: bv64; + var $load18: bv32; + var $load19: bv64; + var $load20: bv64; + var $load21: bv64; + var $load22: bv64; + var $load23: bv64; + var $load24: bv32; + var $load25: bv64; + var $load26: bv64; + var $load27: bv8; + var $load28: bv64; + var Gamma_$load17: bool; + var Gamma_$load18: bool; + var Gamma_$load19: bool; + var Gamma_$load20: bool; + var Gamma_$load21: bool; + var Gamma_$load22: bool; + var Gamma_$load23: bool; + var Gamma_$load24: bool; + var Gamma_$load25: bool; + var Gamma_$load26: bool; + var Gamma_$load27: bool; + var Gamma_$load28: bool; + $main$__0__$RdBKbEpiQ_~E2xl9E6bZQw: + assume {:captureState "$main$__0__$RdBKbEpiQ_~E2xl9E6bZQw"} true; R0, Gamma_R0 := 65536bv64, true; call rely(); - load17, Gamma_load17 := memory_load64_le(mem, bvadd64(R0, 4048bv64)), (gamma_load64(Gamma_mem, bvadd64(R0, 4048bv64)) || L(mem, bvadd64(R0, 4048bv64))); - R0, Gamma_R0 := load17, Gamma_load17; + $load17, Gamma_$load17 := memory_load64_le(mem, bvadd64(R0, 4048bv64)), (gamma_load64(Gamma_mem, bvadd64(R0, 4048bv64)) || L(mem, bvadd64(R0, 4048bv64))); + R0, Gamma_R0 := $load17, Gamma_$load17; call rely(); - load18, Gamma_load18 := memory_load32_le(mem, R0), (gamma_load32(Gamma_mem, R0) || L(mem, R0)); - R0, Gamma_R0 := zero_extend32_32(load18), Gamma_load18; + $load18, Gamma_$load18 := memory_load32_le(mem, R0), (gamma_load32(Gamma_mem, R0) || L(mem, R0)); + R0, Gamma_R0 := zero_extend32_32($load18), Gamma_$load18; R1, Gamma_R1 := zero_extend32_32(bvadd32(R0[32:0], 1bv32)), Gamma_R0; R0, Gamma_R0 := 65536bv64, true; call rely(); - load19, Gamma_load19 := memory_load64_le(mem, bvadd64(R0, 4048bv64)), (gamma_load64(Gamma_mem, bvadd64(R0, 4048bv64)) || L(mem, bvadd64(R0, 4048bv64))); - R0, Gamma_R0 := load19, Gamma_load19; + $load19, Gamma_$load19 := memory_load64_le(mem, bvadd64(R0, 4048bv64)), (gamma_load64(Gamma_mem, bvadd64(R0, 4048bv64)) || L(mem, bvadd64(R0, 4048bv64))); + R0, Gamma_R0 := $load19, Gamma_$load19; call rely(); assert (L(mem, R0) ==> Gamma_R1); mem, Gamma_mem := memory_store32_le(mem, R0, R1[32:0]), gamma_store32(Gamma_mem, R0, Gamma_R1); - assume {:captureState "1964_0"} true; + assume {:captureState "1964$0"} true; R0, Gamma_R0 := 65536bv64, true; call rely(); - load20, Gamma_load20 := memory_load64_le(mem, bvadd64(R0, 4040bv64)), (gamma_load64(Gamma_mem, bvadd64(R0, 4040bv64)) || L(mem, bvadd64(R0, 4040bv64))); - R0, Gamma_R0 := load20, Gamma_load20; + $load20, Gamma_$load20 := memory_load64_le(mem, bvadd64(R0, 4040bv64)), (gamma_load64(Gamma_mem, bvadd64(R0, 4040bv64)) || L(mem, bvadd64(R0, 4040bv64))); + R0, Gamma_R0 := $load20, Gamma_$load20; call rely(); - load21, Gamma_load21 := memory_load64_le(mem, R0), (gamma_load64(Gamma_mem, R0) || L(mem, R0)); - R0, Gamma_R0 := load21, Gamma_load21; + $load21, Gamma_$load21 := memory_load64_le(mem, R0), (gamma_load64(Gamma_mem, R0) || L(mem, R0)); + R0, Gamma_R0 := $load21, Gamma_$load21; R1, Gamma_R1 := bvadd64(R0, 18446744073709551615bv64), Gamma_R0; R0, Gamma_R0 := 65536bv64, true; call rely(); - load22, Gamma_load22 := memory_load64_le(mem, bvadd64(R0, 4040bv64)), (gamma_load64(Gamma_mem, bvadd64(R0, 4040bv64)) || L(mem, bvadd64(R0, 4040bv64))); - R0, Gamma_R0 := load22, Gamma_load22; + $load22, Gamma_$load22 := memory_load64_le(mem, bvadd64(R0, 4040bv64)), (gamma_load64(Gamma_mem, bvadd64(R0, 4040bv64)) || L(mem, bvadd64(R0, 4040bv64))); + R0, Gamma_R0 := $load22, Gamma_$load22; call rely(); assert (L(mem, R0) ==> Gamma_R1); mem, Gamma_mem := memory_store64_le(mem, R0, R1), gamma_store64(Gamma_mem, R0, Gamma_R1); - assume {:captureState "1992_0"} true; + assume {:captureState "1992$0"} true; R0, Gamma_R0 := 65536bv64, true; call rely(); - load23, Gamma_load23 := memory_load64_le(mem, bvadd64(R0, 4064bv64)), (gamma_load64(Gamma_mem, bvadd64(R0, 4064bv64)) || L(mem, bvadd64(R0, 4064bv64))); - R0, Gamma_R0 := load23, Gamma_load23; + $load23, Gamma_$load23 := memory_load64_le(mem, bvadd64(R0, 4064bv64)), (gamma_load64(Gamma_mem, bvadd64(R0, 4064bv64)) || L(mem, bvadd64(R0, 4064bv64))); + R0, Gamma_R0 := $load23, Gamma_$load23; call rely(); - load24, Gamma_load24 := memory_load32_le(mem, R0), (gamma_load32(Gamma_mem, R0) || L(mem, R0)); - R0, Gamma_R0 := zero_extend32_32(load24), Gamma_load24; + $load24, Gamma_$load24 := memory_load32_le(mem, R0), (gamma_load32(Gamma_mem, R0) || L(mem, R0)); + R0, Gamma_R0 := zero_extend32_32($load24), Gamma_$load24; R1, Gamma_R1 := zero_extend32_32(bvadd32(R0[32:0], 3bv32)), Gamma_R0; R0, Gamma_R0 := 65536bv64, true; call rely(); - load25, Gamma_load25 := memory_load64_le(mem, bvadd64(R0, 4064bv64)), (gamma_load64(Gamma_mem, bvadd64(R0, 4064bv64)) || L(mem, bvadd64(R0, 4064bv64))); - R0, Gamma_R0 := load25, Gamma_load25; + $load25, Gamma_$load25 := memory_load64_le(mem, bvadd64(R0, 4064bv64)), (gamma_load64(Gamma_mem, bvadd64(R0, 4064bv64)) || L(mem, bvadd64(R0, 4064bv64))); + R0, Gamma_R0 := $load25, Gamma_$load25; call rely(); assert (L(mem, bvadd64(R0, 4bv64)) ==> Gamma_R1); mem, Gamma_mem := memory_store32_le(mem, bvadd64(R0, 4bv64), R1[32:0]), gamma_store32(Gamma_mem, bvadd64(R0, 4bv64), Gamma_R1); - assume {:captureState "2020_0"} true; + assume {:captureState "2020$0"} true; R0, Gamma_R0 := 65536bv64, true; call rely(); - load26, Gamma_load26 := memory_load64_le(mem, bvadd64(R0, 4072bv64)), (gamma_load64(Gamma_mem, bvadd64(R0, 4072bv64)) || L(mem, bvadd64(R0, 4072bv64))); - R0, Gamma_R0 := load26, Gamma_load26; + $load26, Gamma_$load26 := memory_load64_le(mem, bvadd64(R0, 4072bv64)), (gamma_load64(Gamma_mem, bvadd64(R0, 4072bv64)) || L(mem, bvadd64(R0, 4072bv64))); + R0, Gamma_R0 := $load26, Gamma_$load26; call rely(); - load27, Gamma_load27 := memory_load8_le(mem, R0), (gamma_load8(Gamma_mem, R0) || L(mem, R0)); - R0, Gamma_R0 := zero_extend32_32(zero_extend24_8(load27)), Gamma_load27; + $load27, Gamma_$load27 := memory_load8_le(mem, R0), (gamma_load8(Gamma_mem, R0) || L(mem, R0)); + R0, Gamma_R0 := zero_extend32_32(zero_extend24_8($load27)), Gamma_$load27; R0, Gamma_R0 := zero_extend32_32(bvadd32(R0[32:0], 1bv32)), Gamma_R0; R1, Gamma_R1 := zero_extend32_32((0bv24 ++ R0[8:0])), Gamma_R0; R0, Gamma_R0 := 65536bv64, true; call rely(); - load28, Gamma_load28 := memory_load64_le(mem, bvadd64(R0, 4072bv64)), (gamma_load64(Gamma_mem, bvadd64(R0, 4072bv64)) || L(mem, bvadd64(R0, 4072bv64))); - R0, Gamma_R0 := load28, Gamma_load28; + $load28, Gamma_$load28 := memory_load64_le(mem, bvadd64(R0, 4072bv64)), (gamma_load64(Gamma_mem, bvadd64(R0, 4072bv64)) || L(mem, bvadd64(R0, 4072bv64))); + R0, Gamma_R0 := $load28, Gamma_$load28; call rely(); assert (L(mem, R0) ==> Gamma_R1); mem, Gamma_mem := memory_store8_le(mem, R0, R1[8:0]), gamma_store8(Gamma_mem, R0, Gamma_R1); - assume {:captureState "2052_0"} true; + assume {:captureState "2052$0"} true; R0, Gamma_R0 := 0bv64, true; - goto main_1940_basil_return; - main_1940_basil_return: - assume {:captureState "main_1940_basil_return"} true; + goto main_basil_return; + main_basil_return: + assume {:captureState "main_basil_return"} true; return; } diff --git a/src/test/correct/jumptable2/clang/jumptable2.gts b/src/test/correct/jumptable2/clang/jumptable2.gts deleted file mode 100644 index f486853c3..000000000 Binary files a/src/test/correct/jumptable2/clang/jumptable2.gts and /dev/null differ diff --git a/src/test/correct/jumptable2/clang/jumptable2.md5sum b/src/test/correct/jumptable2/clang/jumptable2.md5sum new file mode 100644 index 000000000..91da2409f --- /dev/null +++ b/src/test/correct/jumptable2/clang/jumptable2.md5sum @@ -0,0 +1,3 @@ +1004ef92a545bd1bb156cc7c6d06f78c correct/jumptable2/clang/a.out +f0309d8fe096729f5904f3307b87ea57 correct/jumptable2/clang/jumptable2.relf +e79157f1fa0a1bc13572c8410ea44b94 correct/jumptable2/clang/jumptable2.gts diff --git a/src/test/correct/jumptable2/clang/jumptable2.relf b/src/test/correct/jumptable2/clang/jumptable2.relf deleted file mode 100644 index 2c811c565..000000000 --- a/src/test/correct/jumptable2/clang/jumptable2.relf +++ /dev/null @@ -1,130 +0,0 @@ - -Relocation section '.rela.dyn' at offset 0x460 contains 11 entries: - Offset Info Type Symbol's Value Symbol's Name + Addend -0000000000010dc8 0000000000000403 R_AARCH64_RELATIVE 750 -0000000000010dd0 0000000000000403 R_AARCH64_RELATIVE 700 -0000000000010fd8 0000000000000403 R_AARCH64_RELATIVE 790 -0000000000011028 0000000000000403 R_AARCH64_RELATIVE 11028 -0000000000011038 0000000000000403 R_AARCH64_RELATIVE 754 -0000000000011040 0000000000000403 R_AARCH64_RELATIVE 768 -0000000000011048 0000000000000403 R_AARCH64_RELATIVE 77c -0000000000010fc0 0000000400000401 R_AARCH64_GLOB_DAT 0000000000000000 _ITM_deregisterTMCloneTable + 0 -0000000000010fc8 0000000500000401 R_AARCH64_GLOB_DAT 0000000000000000 __cxa_finalize@GLIBC_2.17 + 0 -0000000000010fd0 0000000600000401 R_AARCH64_GLOB_DAT 0000000000000000 __gmon_start__ + 0 -0000000000010fe0 0000000800000401 R_AARCH64_GLOB_DAT 0000000000000000 _ITM_registerTMCloneTable + 0 - -Relocation section '.rela.plt' at offset 0x568 contains 4 entries: - Offset Info Type Symbol's Value Symbol's Name + Addend -0000000000011000 0000000300000402 R_AARCH64_JUMP_SLOT 0000000000000000 __libc_start_main@GLIBC_2.34 + 0 -0000000000011008 0000000500000402 R_AARCH64_JUMP_SLOT 0000000000000000 __cxa_finalize@GLIBC_2.17 + 0 -0000000000011010 0000000600000402 R_AARCH64_JUMP_SLOT 0000000000000000 __gmon_start__ + 0 -0000000000011018 0000000700000402 R_AARCH64_JUMP_SLOT 0000000000000000 abort@GLIBC_2.17 + 0 - -Symbol table '.dynsym' contains 9 entries: - Num: Value Size Type Bind Vis Ndx Name - 0: 0000000000000000 0 NOTYPE LOCAL DEFAULT UND - 1: 00000000000005c8 0 SECTION LOCAL DEFAULT 11 .init - 2: 0000000000011020 0 SECTION LOCAL DEFAULT 23 .data - 3: 0000000000000000 0 FUNC GLOBAL DEFAULT UND __libc_start_main@GLIBC_2.34 (2) - 4: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_deregisterTMCloneTable - 5: 0000000000000000 0 FUNC WEAK DEFAULT UND __cxa_finalize@GLIBC_2.17 (3) - 6: 0000000000000000 0 NOTYPE WEAK DEFAULT UND __gmon_start__ - 7: 0000000000000000 0 FUNC GLOBAL DEFAULT UND abort@GLIBC_2.17 (3) - 8: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_registerTMCloneTable - -Symbol table '.symtab' contains 94 entries: - Num: Value Size Type Bind Vis Ndx Name - 0: 0000000000000000 0 NOTYPE LOCAL DEFAULT UND - 1: 0000000000000238 0 SECTION LOCAL DEFAULT 1 .interp - 2: 0000000000000254 0 SECTION LOCAL DEFAULT 2 .note.gnu.build-id - 3: 0000000000000278 0 SECTION LOCAL DEFAULT 3 .note.ABI-tag - 4: 0000000000000298 0 SECTION LOCAL DEFAULT 4 .gnu.hash - 5: 00000000000002b8 0 SECTION LOCAL DEFAULT 5 .dynsym - 6: 0000000000000390 0 SECTION LOCAL DEFAULT 6 .dynstr - 7: 000000000000041e 0 SECTION LOCAL DEFAULT 7 .gnu.version - 8: 0000000000000430 0 SECTION LOCAL DEFAULT 8 .gnu.version_r - 9: 0000000000000460 0 SECTION LOCAL DEFAULT 9 .rela.dyn - 10: 0000000000000568 0 SECTION LOCAL DEFAULT 10 .rela.plt - 11: 00000000000005c8 0 SECTION LOCAL DEFAULT 11 .init - 12: 00000000000005e0 0 SECTION LOCAL DEFAULT 12 .plt - 13: 0000000000000640 0 SECTION LOCAL DEFAULT 13 .text - 14: 00000000000007f0 0 SECTION LOCAL DEFAULT 14 .fini - 15: 0000000000000804 0 SECTION LOCAL DEFAULT 15 .rodata - 16: 0000000000000808 0 SECTION LOCAL DEFAULT 16 .eh_frame_hdr - 17: 0000000000000860 0 SECTION LOCAL DEFAULT 17 .eh_frame - 18: 0000000000010dc8 0 SECTION LOCAL DEFAULT 18 .init_array - 19: 0000000000010dd0 0 SECTION LOCAL DEFAULT 19 .fini_array - 20: 0000000000010dd8 0 SECTION LOCAL DEFAULT 20 .dynamic - 21: 0000000000010fb8 0 SECTION LOCAL DEFAULT 21 .got - 22: 0000000000010fe8 0 SECTION LOCAL DEFAULT 22 .got.plt - 23: 0000000000011020 0 SECTION LOCAL DEFAULT 23 .data - 24: 0000000000011050 0 SECTION LOCAL DEFAULT 24 .bss - 25: 0000000000000000 0 SECTION LOCAL DEFAULT 25 .comment - 26: 0000000000000000 0 FILE LOCAL DEFAULT ABS Scrt1.o - 27: 0000000000000278 0 NOTYPE LOCAL DEFAULT 3 $d - 28: 0000000000000278 32 OBJECT LOCAL DEFAULT 3 __abi_tag - 29: 0000000000000640 0 NOTYPE LOCAL DEFAULT 13 $x - 30: 0000000000000874 0 NOTYPE LOCAL DEFAULT 17 $d - 31: 0000000000000804 0 NOTYPE LOCAL DEFAULT 15 $d - 32: 0000000000000000 0 FILE LOCAL DEFAULT ABS crti.o - 33: 0000000000000674 0 NOTYPE LOCAL DEFAULT 13 $x - 34: 0000000000000674 20 FUNC LOCAL DEFAULT 13 call_weak_fn - 35: 00000000000005c8 0 NOTYPE LOCAL DEFAULT 11 $x - 36: 00000000000007f0 0 NOTYPE LOCAL DEFAULT 14 $x - 37: 0000000000000000 0 FILE LOCAL DEFAULT ABS crtn.o - 38: 00000000000005d8 0 NOTYPE LOCAL DEFAULT 11 $x - 39: 00000000000007fc 0 NOTYPE LOCAL DEFAULT 14 $x - 40: 0000000000000000 0 FILE LOCAL DEFAULT ABS crtstuff.c - 41: 0000000000000690 0 NOTYPE LOCAL DEFAULT 13 $x - 42: 0000000000000690 0 FUNC LOCAL DEFAULT 13 deregister_tm_clones - 43: 00000000000006c0 0 FUNC LOCAL DEFAULT 13 register_tm_clones - 44: 0000000000011028 0 NOTYPE LOCAL DEFAULT 23 $d - 45: 0000000000000700 0 FUNC LOCAL DEFAULT 13 __do_global_dtors_aux - 46: 0000000000011050 1 OBJECT LOCAL DEFAULT 24 completed.0 - 47: 0000000000010dd0 0 NOTYPE LOCAL DEFAULT 19 $d - 48: 0000000000010dd0 0 OBJECT LOCAL DEFAULT 19 __do_global_dtors_aux_fini_array_entry - 49: 0000000000000750 0 FUNC LOCAL DEFAULT 13 frame_dummy - 50: 0000000000010dc8 0 NOTYPE LOCAL DEFAULT 18 $d - 51: 0000000000010dc8 0 OBJECT LOCAL DEFAULT 18 __frame_dummy_init_array_entry - 52: 0000000000000888 0 NOTYPE LOCAL DEFAULT 17 $d - 53: 0000000000011050 0 NOTYPE LOCAL DEFAULT 24 $d - 54: 0000000000000000 0 FILE LOCAL DEFAULT ABS jumptable2.c - 55: 0000000000000754 0 NOTYPE LOCAL DEFAULT 13 $x.0 - 56: 0000000000011030 0 NOTYPE LOCAL DEFAULT 23 $d.1 - 57: 000000000000002a 0 NOTYPE LOCAL DEFAULT 25 $d.2 - 58: 00000000000008e8 0 NOTYPE LOCAL DEFAULT 17 $d.3 - 59: 0000000000000000 0 FILE LOCAL DEFAULT ABS crtstuff.c - 60: 0000000000000960 0 NOTYPE LOCAL DEFAULT 17 $d - 61: 0000000000000960 0 OBJECT LOCAL DEFAULT 17 __FRAME_END__ - 62: 0000000000000000 0 FILE LOCAL DEFAULT ABS - 63: 0000000000010dd8 0 OBJECT LOCAL DEFAULT ABS _DYNAMIC - 64: 0000000000000808 0 NOTYPE LOCAL DEFAULT 16 __GNU_EH_FRAME_HDR - 65: 0000000000010fb8 0 OBJECT LOCAL DEFAULT ABS _GLOBAL_OFFSET_TABLE_ - 66: 00000000000005e0 0 NOTYPE LOCAL DEFAULT 12 $x - 67: 0000000000000000 0 FUNC GLOBAL DEFAULT UND __libc_start_main@GLIBC_2.34 - 68: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_deregisterTMCloneTable - 69: 0000000000011020 0 NOTYPE WEAK DEFAULT 23 data_start - 70: 0000000000011050 0 NOTYPE GLOBAL DEFAULT 24 __bss_start__ - 71: 0000000000000000 0 FUNC WEAK DEFAULT UND __cxa_finalize@GLIBC_2.17 - 72: 0000000000011058 0 NOTYPE GLOBAL DEFAULT 24 _bss_end__ - 73: 0000000000011050 0 NOTYPE GLOBAL DEFAULT 23 _edata - 74: 0000000000011030 4 OBJECT GLOBAL DEFAULT 23 x - 75: 00000000000007f0 0 FUNC GLOBAL HIDDEN 14 _fini - 76: 0000000000011058 0 NOTYPE GLOBAL DEFAULT 24 __bss_end__ - 77: 0000000000011020 0 NOTYPE GLOBAL DEFAULT 23 __data_start - 78: 0000000000000000 0 NOTYPE WEAK DEFAULT UND __gmon_start__ - 79: 0000000000011028 0 OBJECT GLOBAL HIDDEN 23 __dso_handle - 80: 0000000000000000 0 FUNC GLOBAL DEFAULT UND abort@GLIBC_2.17 - 81: 0000000000000804 4 OBJECT GLOBAL DEFAULT 15 _IO_stdin_used - 82: 0000000000000754 20 FUNC GLOBAL DEFAULT 13 add_two - 83: 0000000000011058 0 NOTYPE GLOBAL DEFAULT 24 _end - 84: 0000000000000640 52 FUNC GLOBAL DEFAULT 13 _start - 85: 0000000000011058 0 NOTYPE GLOBAL DEFAULT 24 __end__ - 86: 0000000000000768 20 FUNC GLOBAL DEFAULT 13 add_six - 87: 0000000000011050 0 NOTYPE GLOBAL DEFAULT 24 __bss_start - 88: 0000000000000790 96 FUNC GLOBAL DEFAULT 13 main - 89: 0000000000011050 0 OBJECT GLOBAL HIDDEN 23 __TMC_END__ - 90: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_registerTMCloneTable - 91: 0000000000011038 24 OBJECT GLOBAL DEFAULT 23 jump_table - 92: 00000000000005c8 0 FUNC GLOBAL HIDDEN 11 _init - 93: 000000000000077c 20 FUNC GLOBAL DEFAULT 13 sub_seven diff --git a/src/test/correct/jumptable2/clang/jumptable2_gtirb.expected b/src/test/correct/jumptable2/clang/jumptable2_gtirb.expected index 8e1747624..e4d4d8797 100644 --- a/src/test/correct/jumptable2/clang/jumptable2_gtirb.expected +++ b/src/test/correct/jumptable2/clang/jumptable2_gtirb.expected @@ -1,45 +1,33 @@ -var {:extern} CF: bv1; -var {:extern} Gamma_CF: bool; -var {:extern} Gamma_NF: bool; var {:extern} Gamma_R0: bool; -var {:extern} Gamma_R1: bool; +var {:extern} Gamma_R19: bool; var {:extern} Gamma_R29: bool; var {:extern} Gamma_R30: bool; var {:extern} Gamma_R31: bool; var {:extern} Gamma_R8: bool; var {:extern} Gamma_R9: bool; -var {:extern} Gamma_VF: bool; -var {:extern} Gamma_ZF: bool; var {:extern} Gamma_mem: [bv64]bool; var {:extern} Gamma_stack: [bv64]bool; -var {:extern} NF: bv1; var {:extern} R0: bv64; -var {:extern} R1: bv64; +var {:extern} R19: bv64; var {:extern} R29: bv64; var {:extern} R30: bv64; var {:extern} R31: bv64; var {:extern} R8: bv64; var {:extern} R9: bv64; -var {:extern} VF: bv1; -var {:extern} ZF: bv1; var {:extern} mem: [bv64]bv8; var {:extern} stack: [bv64]bv8; const {:extern} $_IO_stdin_used_addr: bv64; -axiom ($_IO_stdin_used_addr == 2052bv64); +axiom ($_IO_stdin_used_addr == 2500bv64); const {:extern} $jump_table_addr: bv64; -axiom ($jump_table_addr == 69688bv64); +axiom ($jump_table_addr == 131096bv64); const {:extern} $x_addr: bv64; -axiom ($x_addr == 69680bv64); +axiom ($x_addr == 131088bv64); function {:extern} L(mem$in: [bv64]bv8, index: bv64) returns (bool) { false } function {:extern} {:bvbuiltin "bvadd"} bvadd32(bv32, bv32) returns (bv32); -function {:extern} {:bvbuiltin "bvadd"} bvadd33(bv33, bv33) returns (bv33); function {:extern} {:bvbuiltin "bvadd"} bvadd64(bv64, bv64) returns (bv64); -function {:extern} {:bvbuiltin "bvcomp"} bvcomp32(bv32, bv32) returns (bv1); -function {:extern} {:bvbuiltin "bvcomp"} bvcomp33(bv33, bv33) returns (bv1); -function {:extern} {:bvbuiltin "bvnot"} bvnot1(bv1) returns (bv1); function {:extern} gamma_load32(gammaMap: [bv64]bool, index: bv64) returns (bool) { (gammaMap[bvadd64(index, 3bv64)] && (gammaMap[bvadd64(index, 2bv64)] && (gammaMap[bvadd64(index, 1bv64)] && gammaMap[index]))) } @@ -72,21 +60,21 @@ function {:extern} memory_store64_le(memory: [bv64]bv8, index: bv64, value: bv64 memory[index := value[8:0]][bvadd64(index, 1bv64) := value[16:8]][bvadd64(index, 2bv64) := value[24:16]][bvadd64(index, 3bv64) := value[32:24]][bvadd64(index, 4bv64) := value[40:32]][bvadd64(index, 5bv64) := value[48:40]][bvadd64(index, 6bv64) := value[56:48]][bvadd64(index, 7bv64) := value[64:56]] } -function {:extern} {:bvbuiltin "sign_extend 1"} sign_extend1_32(bv32) returns (bv33); -function {:extern} {:bvbuiltin "zero_extend 1"} zero_extend1_32(bv32) returns (bv33); function {:extern} {:bvbuiltin "zero_extend 32"} zero_extend32_32(bv32) returns (bv64); procedure {:extern} rely(); modifies Gamma_mem, mem; ensures (Gamma_mem == old(Gamma_mem)); ensures (mem == old(mem)); - free ensures (memory_load32_le(mem, 2052bv64) == 131073bv32); - free ensures (memory_load64_le(mem, 69064bv64) == 1872bv64); - free ensures (memory_load64_le(mem, 69072bv64) == 1792bv64); - free ensures (memory_load64_le(mem, 69592bv64) == 1936bv64); - free ensures (memory_load64_le(mem, 69672bv64) == 69672bv64); - free ensures (memory_load64_le(mem, 69688bv64) == 1876bv64); - free ensures (memory_load64_le(mem, 69696bv64) == 1896bv64); - free ensures (memory_load64_le(mem, 69704bv64) == 1916bv64); + free ensures (memory_load32_le(mem, 2500bv64) == 131073bv32); + free ensures (memory_load64_le(mem, 130424bv64) == 2320bv64); + free ensures (memory_load64_le(mem, 130432bv64) == 2240bv64); + free ensures (memory_load64_le(mem, 131032bv64) == 131088bv64); + free ensures (memory_load64_le(mem, 131048bv64) == 2420bv64); + free ensures (memory_load64_le(mem, 131064bv64) == 131096bv64); + free ensures (memory_load64_le(mem, 131080bv64) == 131080bv64); + free ensures (memory_load64_le(mem, 131096bv64) == 2324bv64); + free ensures (memory_load64_le(mem, 131104bv64) == 2356bv64); + free ensures (memory_load64_le(mem, 131112bv64) == 2388bv64); procedure {:extern} rely_transitive(); modifies Gamma_mem, mem; @@ -104,246 +92,262 @@ procedure {:extern} rely_reflexive(); procedure {:extern} guarantee_reflexive(); modifies Gamma_mem, mem; -procedure add_two_1876(); +procedure add_two(); modifies Gamma_R8, Gamma_R9, Gamma_mem, R8, R9, mem; - free requires (memory_load32_le(mem, 2052bv64) == 131073bv32); - free requires (memory_load64_le(mem, 69064bv64) == 1872bv64); - free requires (memory_load64_le(mem, 69072bv64) == 1792bv64); - free requires (memory_load64_le(mem, 69592bv64) == 1936bv64); - free requires (memory_load64_le(mem, 69672bv64) == 69672bv64); - free requires (memory_load64_le(mem, 69688bv64) == 1876bv64); - free requires (memory_load64_le(mem, 69696bv64) == 1896bv64); - free requires (memory_load64_le(mem, 69704bv64) == 1916bv64); - free ensures (memory_load32_le(mem, 2052bv64) == 131073bv32); - free ensures (memory_load64_le(mem, 69064bv64) == 1872bv64); - free ensures (memory_load64_le(mem, 69072bv64) == 1792bv64); - free ensures (memory_load64_le(mem, 69592bv64) == 1936bv64); - free ensures (memory_load64_le(mem, 69672bv64) == 69672bv64); - free ensures (memory_load64_le(mem, 69688bv64) == 1876bv64); - free ensures (memory_load64_le(mem, 69696bv64) == 1896bv64); - free ensures (memory_load64_le(mem, 69704bv64) == 1916bv64); + free requires (memory_load32_le(mem, 2500bv64) == 131073bv32); + free requires (memory_load64_le(mem, 130424bv64) == 2320bv64); + free requires (memory_load64_le(mem, 130432bv64) == 2240bv64); + free requires (memory_load64_le(mem, 131032bv64) == 131088bv64); + free requires (memory_load64_le(mem, 131048bv64) == 2420bv64); + free requires (memory_load64_le(mem, 131064bv64) == 131096bv64); + free requires (memory_load64_le(mem, 131080bv64) == 131080bv64); + free requires (memory_load64_le(mem, 131096bv64) == 2324bv64); + free requires (memory_load64_le(mem, 131104bv64) == 2356bv64); + free requires (memory_load64_le(mem, 131112bv64) == 2388bv64); + free ensures (memory_load32_le(mem, 2500bv64) == 131073bv32); + free ensures (memory_load64_le(mem, 130424bv64) == 2320bv64); + free ensures (memory_load64_le(mem, 130432bv64) == 2240bv64); + free ensures (memory_load64_le(mem, 131032bv64) == 131088bv64); + free ensures (memory_load64_le(mem, 131048bv64) == 2420bv64); + free ensures (memory_load64_le(mem, 131064bv64) == 131096bv64); + free ensures (memory_load64_le(mem, 131080bv64) == 131080bv64); + free ensures (memory_load64_le(mem, 131096bv64) == 2324bv64); + free ensures (memory_load64_le(mem, 131104bv64) == 2356bv64); + free ensures (memory_load64_le(mem, 131112bv64) == 2388bv64); -implementation add_two_1876() +implementation add_two() { - var Gamma_load6: bool; - var load6: bv32; - add_two_1876__0__q7ZKy1R2QUKWr5v_JFG4ug: - assume {:captureState "add_two_1876__0__q7ZKy1R2QUKWr5v_JFG4ug"} true; - R9, Gamma_R9 := 69632bv64, true; + var $load6: bv64; + var $load7: bv32; + var Gamma_$load6: bool; + var Gamma_$load7: bool; + $add_two$__0__$SFN4dpBgSO2bPUu0fyDluw: + assume {:captureState "$add_two$__0__$SFN4dpBgSO2bPUu0fyDluw"} true; + R8, Gamma_R8 := 126976bv64, true; call rely(); - load6, Gamma_load6 := memory_load32_le(mem, bvadd64(R9, 48bv64)), (gamma_load32(Gamma_mem, bvadd64(R9, 48bv64)) || L(mem, bvadd64(R9, 48bv64))); - R8, Gamma_R8 := zero_extend32_32(load6), Gamma_load6; - R8, Gamma_R8 := zero_extend32_32(bvadd32(R8[32:0], 2bv32)), Gamma_R8; + $load6, Gamma_$load6 := memory_load64_le(mem, bvadd64(R8, 4056bv64)), (gamma_load64(Gamma_mem, bvadd64(R8, 4056bv64)) || L(mem, bvadd64(R8, 4056bv64))); + R8, Gamma_R8 := $load6, Gamma_$load6; call rely(); - assert (L(mem, bvadd64(R9, 48bv64)) ==> Gamma_R8); - mem, Gamma_mem := memory_store32_le(mem, bvadd64(R9, 48bv64), R8[32:0]), gamma_store32(Gamma_mem, bvadd64(R9, 48bv64), Gamma_R8); - assume {:captureState "1888_0"} true; - goto add_two_1876_basil_return; - add_two_1876_basil_return: - assume {:captureState "add_two_1876_basil_return"} true; + $load7, Gamma_$load7 := memory_load32_le(mem, R8), (gamma_load32(Gamma_mem, R8) || L(mem, R8)); + R9, Gamma_R9 := zero_extend32_32($load7), Gamma_$load7; + R9, Gamma_R9 := zero_extend32_32(bvadd32(R9[32:0], 2bv32)), Gamma_R9; + call rely(); + assert (L(mem, R8) ==> Gamma_R9); + mem, Gamma_mem := memory_store32_le(mem, R8, R9[32:0]), gamma_store32(Gamma_mem, R8, Gamma_R9); + assume {:captureState "2340$0"} true; + R8, Gamma_R8 := 0bv64, true; + R9, Gamma_R9 := 0bv64, true; + goto add_two_basil_return; + add_two_basil_return: + assume {:captureState "add_two_basil_return"} true; return; } -procedure sub_seven_1916(); - modifies CF, Gamma_CF, Gamma_NF, Gamma_R8, Gamma_R9, Gamma_VF, Gamma_ZF, Gamma_mem, NF, R8, R9, VF, ZF, mem; - free requires (memory_load32_le(mem, 2052bv64) == 131073bv32); - free requires (memory_load64_le(mem, 69064bv64) == 1872bv64); - free requires (memory_load64_le(mem, 69072bv64) == 1792bv64); - free requires (memory_load64_le(mem, 69592bv64) == 1936bv64); - free requires (memory_load64_le(mem, 69672bv64) == 69672bv64); - free requires (memory_load64_le(mem, 69688bv64) == 1876bv64); - free requires (memory_load64_le(mem, 69696bv64) == 1896bv64); - free requires (memory_load64_le(mem, 69704bv64) == 1916bv64); - free ensures (memory_load32_le(mem, 2052bv64) == 131073bv32); - free ensures (memory_load64_le(mem, 69064bv64) == 1872bv64); - free ensures (memory_load64_le(mem, 69072bv64) == 1792bv64); - free ensures (memory_load64_le(mem, 69592bv64) == 1936bv64); - free ensures (memory_load64_le(mem, 69672bv64) == 69672bv64); - free ensures (memory_load64_le(mem, 69688bv64) == 1876bv64); - free ensures (memory_load64_le(mem, 69696bv64) == 1896bv64); - free ensures (memory_load64_le(mem, 69704bv64) == 1916bv64); +procedure main(); + modifies Gamma_R0, Gamma_R19, Gamma_R29, Gamma_R30, Gamma_R31, Gamma_R8, Gamma_R9, Gamma_mem, Gamma_stack, R0, R19, R29, R30, R31, R8, R9, mem, stack; + free requires (memory_load64_le(mem, 131072bv64) == 0bv64); + free requires (memory_load64_le(mem, 131080bv64) == 131080bv64); + free requires (memory_load64_le(mem, 131088bv64) == 5bv64); + free requires (memory_load64_le(mem, 131096bv64) == 2324bv64); + free requires (memory_load64_le(mem, 131104bv64) == 2356bv64); + free requires (memory_load64_le(mem, 131112bv64) == 2388bv64); + free requires (memory_load32_le(mem, 2500bv64) == 131073bv32); + free requires (memory_load64_le(mem, 130424bv64) == 2320bv64); + free requires (memory_load64_le(mem, 130432bv64) == 2240bv64); + free requires (memory_load64_le(mem, 131032bv64) == 131088bv64); + free requires (memory_load64_le(mem, 131048bv64) == 2420bv64); + free requires (memory_load64_le(mem, 131064bv64) == 131096bv64); + free requires (memory_load64_le(mem, 131080bv64) == 131080bv64); + free requires (memory_load64_le(mem, 131096bv64) == 2324bv64); + free requires (memory_load64_le(mem, 131104bv64) == 2356bv64); + free requires (memory_load64_le(mem, 131112bv64) == 2388bv64); + free ensures (Gamma_R19 == old(Gamma_R19)); + free ensures (Gamma_R29 == old(Gamma_R29)); + free ensures (Gamma_R31 == old(Gamma_R31)); + free ensures (R19 == old(R19)); + free ensures (R29 == old(R29)); + free ensures (R31 == old(R31)); + free ensures (memory_load32_le(mem, 2500bv64) == 131073bv32); + free ensures (memory_load64_le(mem, 130424bv64) == 2320bv64); + free ensures (memory_load64_le(mem, 130432bv64) == 2240bv64); + free ensures (memory_load64_le(mem, 131032bv64) == 131088bv64); + free ensures (memory_load64_le(mem, 131048bv64) == 2420bv64); + free ensures (memory_load64_le(mem, 131064bv64) == 131096bv64); + free ensures (memory_load64_le(mem, 131080bv64) == 131080bv64); + free ensures (memory_load64_le(mem, 131096bv64) == 2324bv64); + free ensures (memory_load64_le(mem, 131104bv64) == 2356bv64); + free ensures (memory_load64_le(mem, 131112bv64) == 2388bv64); -implementation sub_seven_1916() +implementation main() { - var Cse0__5_0_2: bv32; - var Gamma_Cse0__5_0_2: bool; - var Gamma_load9: bool; - var load9: bv32; - sub_seven_1916__0__NsH3NjTvSbaIhN4GlaFRLw: - assume {:captureState "sub_seven_1916__0__NsH3NjTvSbaIhN4GlaFRLw"} true; - R9, Gamma_R9 := 69632bv64, true; + var $load17: bv64; + var $load18: bv64; + var $load19: bv64; + var $load20: bv64; + var $load21: bv64; + var $load22: bv64; + var $load23: bv64; + var Cse0__5$1$0: bv64; + var Gamma_$load17: bool; + var Gamma_$load18: bool; + var Gamma_$load19: bool; + var Gamma_$load20: bool; + var Gamma_$load21: bool; + var Gamma_$load22: bool; + var Gamma_$load23: bool; + var Gamma_Cse0__5$1$0: bool; + $main$__0__$OuTzy8qRTci75taVjGinFQ: + assume {:captureState "$main$__0__$OuTzy8qRTci75taVjGinFQ"} true; + Cse0__5$1$0, Gamma_Cse0__5$1$0 := bvadd64(R31, 18446744073709551584bv64), Gamma_R31; + stack, Gamma_stack := memory_store64_le(stack, Cse0__5$1$0, R29), gamma_store64(Gamma_stack, Cse0__5$1$0, Gamma_R29); + assume {:captureState "2420$1"} true; + stack, Gamma_stack := memory_store64_le(stack, bvadd64(Cse0__5$1$0, 8bv64), R30), gamma_store64(Gamma_stack, bvadd64(Cse0__5$1$0, 8bv64), Gamma_R30); + assume {:captureState "2420$2"} true; + R31, Gamma_R31 := Cse0__5$1$0, Gamma_Cse0__5$1$0; + stack, Gamma_stack := memory_store64_le(stack, bvadd64(R31, 16bv64), R19), gamma_store64(Gamma_stack, bvadd64(R31, 16bv64), Gamma_R19); + assume {:captureState "2424$0"} true; + R29, Gamma_R29 := R31, Gamma_R31; + R19, Gamma_R19 := 126976bv64, true; + call rely(); + $load20, Gamma_$load20 := memory_load64_le(mem, bvadd64(R19, 4088bv64)), (gamma_load64(Gamma_mem, bvadd64(R19, 4088bv64)) || L(mem, bvadd64(R19, 4088bv64))); + R19, Gamma_R19 := $load20, Gamma_$load20; call rely(); - load9, Gamma_load9 := memory_load32_le(mem, bvadd64(R9, 48bv64)), (gamma_load32(Gamma_mem, bvadd64(R9, 48bv64)) || L(mem, bvadd64(R9, 48bv64))); - R8, Gamma_R8 := zero_extend32_32(load9), Gamma_load9; - Cse0__5_0_2, Gamma_Cse0__5_0_2 := bvadd32(R8[32:0], 4294967289bv32), Gamma_R8; - VF, Gamma_VF := bvnot1(bvcomp33(sign_extend1_32(Cse0__5_0_2), bvadd33(sign_extend1_32(R8[32:0]), 8589934585bv33))), (Gamma_R8 && Gamma_Cse0__5_0_2); - CF, Gamma_CF := bvnot1(bvcomp33(zero_extend1_32(Cse0__5_0_2), bvadd33(zero_extend1_32(R8[32:0]), 4294967289bv33))), (Gamma_R8 && Gamma_Cse0__5_0_2); - ZF, Gamma_ZF := bvcomp32(Cse0__5_0_2, 0bv32), Gamma_Cse0__5_0_2; - NF, Gamma_NF := Cse0__5_0_2[32:31], Gamma_Cse0__5_0_2; - R8, Gamma_R8 := zero_extend32_32(Cse0__5_0_2), Gamma_Cse0__5_0_2; + $load21, Gamma_$load21 := memory_load64_le(mem, R19), (gamma_load64(Gamma_mem, R19) || L(mem, R19)); + R8, Gamma_R8 := $load21, Gamma_$load21; + R30, Gamma_R30 := 2076bv64, true; + call add_two(); + goto $main$__1__$rCSSdLZcRB2TKAu9h~WCqg; + $main$__1__$rCSSdLZcRB2TKAu9h~WCqg: + assume {:captureState "$main$__1__$rCSSdLZcRB2TKAu9h~WCqg"} true; call rely(); - assert (L(mem, bvadd64(R9, 48bv64)) ==> Gamma_R8); - mem, Gamma_mem := memory_store32_le(mem, bvadd64(R9, 48bv64), R8[32:0]), gamma_store32(Gamma_mem, bvadd64(R9, 48bv64), Gamma_R8); - assume {:captureState "1928_0"} true; - goto sub_seven_1916_basil_return; - sub_seven_1916_basil_return: - assume {:captureState "sub_seven_1916_basil_return"} true; + $load23, Gamma_$load23 := memory_load64_le(mem, bvadd64(R19, 8bv64)), (gamma_load64(Gamma_mem, bvadd64(R19, 8bv64)) || L(mem, bvadd64(R19, 8bv64))); + R8, Gamma_R8 := $load23, Gamma_$load23; + R30, Gamma_R30 := 2056bv64, true; + call add_six(); + goto $main$__2__$ZLfuz7OtTNOS9GLtqSI1gg; + $main$__2__$ZLfuz7OtTNOS9GLtqSI1gg: + assume {:captureState "$main$__2__$ZLfuz7OtTNOS9GLtqSI1gg"} true; + call rely(); + $load22, Gamma_$load22 := memory_load64_le(mem, bvadd64(R19, 16bv64)), (gamma_load64(Gamma_mem, bvadd64(R19, 16bv64)) || L(mem, bvadd64(R19, 16bv64))); + R8, Gamma_R8 := $load22, Gamma_$load22; + R30, Gamma_R30 := 2056bv64, true; + call sub_seven(); + goto $main$__3__$HVqN0_3~RWiLPKsHRvUqeg; + $main$__3__$HVqN0_3~RWiLPKsHRvUqeg: + assume {:captureState "$main$__3__$HVqN0_3~RWiLPKsHRvUqeg"} true; + R0, Gamma_R0 := 0bv64, true; + $load17, Gamma_$load17 := memory_load64_le(stack, bvadd64(R31, 16bv64)), gamma_load64(Gamma_stack, bvadd64(R31, 16bv64)); + R19, Gamma_R19 := $load17, Gamma_$load17; + $load18, Gamma_$load18 := memory_load64_le(stack, R31), gamma_load64(Gamma_stack, R31); + R29, Gamma_R29 := $load18, Gamma_$load18; + $load19, Gamma_$load19 := memory_load64_le(stack, bvadd64(R31, 8bv64)), gamma_load64(Gamma_stack, bvadd64(R31, 8bv64)); + R30, Gamma_R30 := $load19, Gamma_$load19; + R31, Gamma_R31 := bvadd64(R31, 32bv64), Gamma_R31; + goto main_basil_return; + main_basil_return: + assume {:captureState "main_basil_return"} true; return; } -procedure add_six_1896(); +procedure add_six(); modifies Gamma_R8, Gamma_R9, Gamma_mem, R8, R9, mem; - free requires (memory_load32_le(mem, 2052bv64) == 131073bv32); - free requires (memory_load64_le(mem, 69064bv64) == 1872bv64); - free requires (memory_load64_le(mem, 69072bv64) == 1792bv64); - free requires (memory_load64_le(mem, 69592bv64) == 1936bv64); - free requires (memory_load64_le(mem, 69672bv64) == 69672bv64); - free requires (memory_load64_le(mem, 69688bv64) == 1876bv64); - free requires (memory_load64_le(mem, 69696bv64) == 1896bv64); - free requires (memory_load64_le(mem, 69704bv64) == 1916bv64); - free ensures (memory_load32_le(mem, 2052bv64) == 131073bv32); - free ensures (memory_load64_le(mem, 69064bv64) == 1872bv64); - free ensures (memory_load64_le(mem, 69072bv64) == 1792bv64); - free ensures (memory_load64_le(mem, 69592bv64) == 1936bv64); - free ensures (memory_load64_le(mem, 69672bv64) == 69672bv64); - free ensures (memory_load64_le(mem, 69688bv64) == 1876bv64); - free ensures (memory_load64_le(mem, 69696bv64) == 1896bv64); - free ensures (memory_load64_le(mem, 69704bv64) == 1916bv64); + free requires (memory_load32_le(mem, 2500bv64) == 131073bv32); + free requires (memory_load64_le(mem, 130424bv64) == 2320bv64); + free requires (memory_load64_le(mem, 130432bv64) == 2240bv64); + free requires (memory_load64_le(mem, 131032bv64) == 131088bv64); + free requires (memory_load64_le(mem, 131048bv64) == 2420bv64); + free requires (memory_load64_le(mem, 131064bv64) == 131096bv64); + free requires (memory_load64_le(mem, 131080bv64) == 131080bv64); + free requires (memory_load64_le(mem, 131096bv64) == 2324bv64); + free requires (memory_load64_le(mem, 131104bv64) == 2356bv64); + free requires (memory_load64_le(mem, 131112bv64) == 2388bv64); + free ensures (memory_load32_le(mem, 2500bv64) == 131073bv32); + free ensures (memory_load64_le(mem, 130424bv64) == 2320bv64); + free ensures (memory_load64_le(mem, 130432bv64) == 2240bv64); + free ensures (memory_load64_le(mem, 131032bv64) == 131088bv64); + free ensures (memory_load64_le(mem, 131048bv64) == 2420bv64); + free ensures (memory_load64_le(mem, 131064bv64) == 131096bv64); + free ensures (memory_load64_le(mem, 131080bv64) == 131080bv64); + free ensures (memory_load64_le(mem, 131096bv64) == 2324bv64); + free ensures (memory_load64_le(mem, 131104bv64) == 2356bv64); + free ensures (memory_load64_le(mem, 131112bv64) == 2388bv64); -implementation add_six_1896() +implementation add_six() { - var Gamma_load17: bool; - var load17: bv32; - add_six_1896__0__R7rnILkkQt~m3atwYHgqZw: - assume {:captureState "add_six_1896__0__R7rnILkkQt~m3atwYHgqZw"} true; - R9, Gamma_R9 := 69632bv64, true; + var $load24: bv64; + var $load25: bv32; + var Gamma_$load24: bool; + var Gamma_$load25: bool; + $add_six$__0__$mmpaLvZYQk2b8selWCLriA: + assume {:captureState "$add_six$__0__$mmpaLvZYQk2b8selWCLriA"} true; + R8, Gamma_R8 := 126976bv64, true; + call rely(); + $load24, Gamma_$load24 := memory_load64_le(mem, bvadd64(R8, 4056bv64)), (gamma_load64(Gamma_mem, bvadd64(R8, 4056bv64)) || L(mem, bvadd64(R8, 4056bv64))); + R8, Gamma_R8 := $load24, Gamma_$load24; call rely(); - load17, Gamma_load17 := memory_load32_le(mem, bvadd64(R9, 48bv64)), (gamma_load32(Gamma_mem, bvadd64(R9, 48bv64)) || L(mem, bvadd64(R9, 48bv64))); - R8, Gamma_R8 := zero_extend32_32(load17), Gamma_load17; - R8, Gamma_R8 := zero_extend32_32(bvadd32(R8[32:0], 6bv32)), Gamma_R8; + $load25, Gamma_$load25 := memory_load32_le(mem, R8), (gamma_load32(Gamma_mem, R8) || L(mem, R8)); + R9, Gamma_R9 := zero_extend32_32($load25), Gamma_$load25; + R9, Gamma_R9 := zero_extend32_32(bvadd32(R9[32:0], 6bv32)), Gamma_R9; call rely(); - assert (L(mem, bvadd64(R9, 48bv64)) ==> Gamma_R8); - mem, Gamma_mem := memory_store32_le(mem, bvadd64(R9, 48bv64), R8[32:0]), gamma_store32(Gamma_mem, bvadd64(R9, 48bv64), Gamma_R8); - assume {:captureState "1908_0"} true; - goto add_six_1896_basil_return; - add_six_1896_basil_return: - assume {:captureState "add_six_1896_basil_return"} true; + assert (L(mem, R8) ==> Gamma_R9); + mem, Gamma_mem := memory_store32_le(mem, R8, R9[32:0]), gamma_store32(Gamma_mem, R8, Gamma_R9); + assume {:captureState "2372$0"} true; + R8, Gamma_R8 := 0bv64, true; + R9, Gamma_R9 := 0bv64, true; + goto add_six_basil_return; + add_six_basil_return: + assume {:captureState "add_six_basil_return"} true; return; } -procedure main_1936(); - modifies CF, Gamma_CF, Gamma_NF, Gamma_R0, Gamma_R29, Gamma_R30, Gamma_R31, Gamma_R8, Gamma_R9, Gamma_VF, Gamma_ZF, Gamma_mem, Gamma_stack, NF, R0, R29, R30, R31, R8, R9, VF, ZF, mem, stack; - free requires (memory_load64_le(mem, 69664bv64) == 0bv64); - free requires (memory_load64_le(mem, 69672bv64) == 69672bv64); - free requires (memory_load64_le(mem, 69680bv64) == 5bv64); - free requires (memory_load64_le(mem, 69688bv64) == 1876bv64); - free requires (memory_load64_le(mem, 69696bv64) == 1896bv64); - free requires (memory_load64_le(mem, 69704bv64) == 1916bv64); - free requires (memory_load32_le(mem, 2052bv64) == 131073bv32); - free requires (memory_load64_le(mem, 69064bv64) == 1872bv64); - free requires (memory_load64_le(mem, 69072bv64) == 1792bv64); - free requires (memory_load64_le(mem, 69592bv64) == 1936bv64); - free requires (memory_load64_le(mem, 69672bv64) == 69672bv64); - free requires (memory_load64_le(mem, 69688bv64) == 1876bv64); - free requires (memory_load64_le(mem, 69696bv64) == 1896bv64); - free requires (memory_load64_le(mem, 69704bv64) == 1916bv64); - free ensures (Gamma_R29 == old(Gamma_R29)); - free ensures (Gamma_R31 == old(Gamma_R31)); - free ensures (R29 == old(R29)); - free ensures (R31 == old(R31)); - free ensures (memory_load32_le(mem, 2052bv64) == 131073bv32); - free ensures (memory_load64_le(mem, 69064bv64) == 1872bv64); - free ensures (memory_load64_le(mem, 69072bv64) == 1792bv64); - free ensures (memory_load64_le(mem, 69592bv64) == 1936bv64); - free ensures (memory_load64_le(mem, 69672bv64) == 69672bv64); - free ensures (memory_load64_le(mem, 69688bv64) == 1876bv64); - free ensures (memory_load64_le(mem, 69696bv64) == 1896bv64); - free ensures (memory_load64_le(mem, 69704bv64) == 1916bv64); +procedure sub_seven(); + modifies Gamma_R8, Gamma_R9, Gamma_mem, R8, R9, mem; + free requires (memory_load32_le(mem, 2500bv64) == 131073bv32); + free requires (memory_load64_le(mem, 130424bv64) == 2320bv64); + free requires (memory_load64_le(mem, 130432bv64) == 2240bv64); + free requires (memory_load64_le(mem, 131032bv64) == 131088bv64); + free requires (memory_load64_le(mem, 131048bv64) == 2420bv64); + free requires (memory_load64_le(mem, 131064bv64) == 131096bv64); + free requires (memory_load64_le(mem, 131080bv64) == 131080bv64); + free requires (memory_load64_le(mem, 131096bv64) == 2324bv64); + free requires (memory_load64_le(mem, 131104bv64) == 2356bv64); + free requires (memory_load64_le(mem, 131112bv64) == 2388bv64); + free ensures (memory_load32_le(mem, 2500bv64) == 131073bv32); + free ensures (memory_load64_le(mem, 130424bv64) == 2320bv64); + free ensures (memory_load64_le(mem, 130432bv64) == 2240bv64); + free ensures (memory_load64_le(mem, 131032bv64) == 131088bv64); + free ensures (memory_load64_le(mem, 131048bv64) == 2420bv64); + free ensures (memory_load64_le(mem, 131064bv64) == 131096bv64); + free ensures (memory_load64_le(mem, 131080bv64) == 131080bv64); + free ensures (memory_load64_le(mem, 131096bv64) == 2324bv64); + free ensures (memory_load64_le(mem, 131104bv64) == 2356bv64); + free ensures (memory_load64_le(mem, 131112bv64) == 2388bv64); -implementation main_1936() +implementation sub_seven() { - var Cse0__5_0_1: bv64; - var Cse0__5_1_1: bv64; - var Gamma_Cse0__5_0_1: bool; - var Gamma_Cse0__5_1_1: bool; - var Gamma_load23: bool; - var Gamma_load24: bool; - var Gamma_load25: bool; - var Gamma_load26: bool; - var Gamma_load27: bool; - var Gamma_load28: bool; - var Gamma_load29: bool; - var Gamma_load30: bool; - var load23: bv32; - var load24: bv64; - var load25: bv64; - var load26: bv64; - var load27: bv64; - var load28: bv64; - var load29: bv64; - var load30: bv64; - main_1936__0__eU5HB3jMTHGqgfMDZYX1tA: - assume {:captureState "main_1936__0__eU5HB3jMTHGqgfMDZYX1tA"} true; - R31, Gamma_R31 := bvadd64(R31, 18446744073709551568bv64), Gamma_R31; - Cse0__5_1_1, Gamma_Cse0__5_1_1 := bvadd64(R31, 32bv64), Gamma_R31; - stack, Gamma_stack := memory_store64_le(stack, Cse0__5_1_1, R29), gamma_store64(Gamma_stack, Cse0__5_1_1, Gamma_R29); - assume {:captureState "1940_1"} true; - stack, Gamma_stack := memory_store64_le(stack, bvadd64(Cse0__5_1_1, 8bv64), R30), gamma_store64(Gamma_stack, bvadd64(Cse0__5_1_1, 8bv64), Gamma_R30); - assume {:captureState "1940_2"} true; - R29, Gamma_R29 := bvadd64(R31, 32bv64), Gamma_R31; - R8, Gamma_R8 := 69632bv64, true; - R9, Gamma_R9 := 69632bv64, true; - R9, Gamma_R9 := bvadd64(R9, 56bv64), Gamma_R9; - stack, Gamma_stack := memory_store64_le(stack, R31, R9), gamma_store64(Gamma_stack, R31, Gamma_R9); - assume {:captureState "1960_0"} true; - R9, Gamma_R9 := 0bv64, true; - stack, Gamma_stack := memory_store32_le(stack, bvadd64(R31, 12bv64), R9[32:0]), gamma_store32(Gamma_stack, bvadd64(R31, 12bv64), Gamma_R9); - assume {:captureState "1968_0"} true; - stack, Gamma_stack := memory_store32_le(stack, bvadd64(R29, 18446744073709551612bv64), 0bv32), gamma_store32(Gamma_stack, bvadd64(R29, 18446744073709551612bv64), true); - assume {:captureState "1972_0"} true; - stack, Gamma_stack := memory_store32_le(stack, bvadd64(R29, 18446744073709551608bv64), R0[32:0]), gamma_store32(Gamma_stack, bvadd64(R29, 18446744073709551608bv64), Gamma_R0); - assume {:captureState "1976_0"} true; - stack, Gamma_stack := memory_store64_le(stack, bvadd64(R31, 16bv64), R1), gamma_store64(Gamma_stack, bvadd64(R31, 16bv64), Gamma_R1); - assume {:captureState "1980_0"} true; + var $load27: bv64; + var $load28: bv32; + var Gamma_$load27: bool; + var Gamma_$load28: bool; + $sub_seven$__0__$6JJvkaLhTaWXaEL0~yxKxg: + assume {:captureState "$sub_seven$__0__$6JJvkaLhTaWXaEL0~yxKxg"} true; + R8, Gamma_R8 := 126976bv64, true; call rely(); - load26, Gamma_load26 := memory_load64_le(mem, bvadd64(R8, 56bv64)), (gamma_load64(Gamma_mem, bvadd64(R8, 56bv64)) || L(mem, bvadd64(R8, 56bv64))); - R8, Gamma_R8 := load26, Gamma_load26; - R30, Gamma_R30 := 1992bv64, true; - call add_two_1876(); - goto main_1936__1__p5YPh9uZSeeRZ2XwUYn~Tw; - main_1936__1__p5YPh9uZSeeRZ2XwUYn~Tw: - assume {:captureState "main_1936__1__p5YPh9uZSeeRZ2XwUYn~Tw"} true; - load27, Gamma_load27 := memory_load64_le(stack, R31), gamma_load64(Gamma_stack, R31); - R8, Gamma_R8 := load27, Gamma_load27; + $load27, Gamma_$load27 := memory_load64_le(mem, bvadd64(R8, 4056bv64)), (gamma_load64(Gamma_mem, bvadd64(R8, 4056bv64)) || L(mem, bvadd64(R8, 4056bv64))); + R8, Gamma_R8 := $load27, Gamma_$load27; call rely(); - load28, Gamma_load28 := memory_load64_le(mem, bvadd64(R8, 8bv64)), (gamma_load64(Gamma_mem, bvadd64(R8, 8bv64)) || L(mem, bvadd64(R8, 8bv64))); - R8, Gamma_R8 := load28, Gamma_load28; - R30, Gamma_R30 := 1992bv64, true; - call add_six_1896(); - goto main_1936__2___hg9mn5wS7GgqSlZeoJfGQ; - main_1936__2___hg9mn5wS7GgqSlZeoJfGQ: - assume {:captureState "main_1936__2___hg9mn5wS7GgqSlZeoJfGQ"} true; - load29, Gamma_load29 := memory_load64_le(stack, R31), gamma_load64(Gamma_stack, R31); - R8, Gamma_R8 := load29, Gamma_load29; + $load28, Gamma_$load28 := memory_load32_le(mem, R8), (gamma_load32(Gamma_mem, R8) || L(mem, R8)); + R9, Gamma_R9 := zero_extend32_32($load28), Gamma_$load28; + R9, Gamma_R9 := zero_extend32_32(bvadd32(R9[32:0], 4294967289bv32)), Gamma_R9; call rely(); - load30, Gamma_load30 := memory_load64_le(mem, bvadd64(R8, 16bv64)), (gamma_load64(Gamma_mem, bvadd64(R8, 16bv64)) || L(mem, bvadd64(R8, 16bv64))); - R8, Gamma_R8 := load30, Gamma_load30; - R30, Gamma_R30 := 1992bv64, true; - call sub_seven_1916(); - goto main_1936__3__Wg9L39DXQImRFWkgvX2gEw; - main_1936__3__Wg9L39DXQImRFWkgvX2gEw: - assume {:captureState "main_1936__3__Wg9L39DXQImRFWkgvX2gEw"} true; - load23, Gamma_load23 := memory_load32_le(stack, bvadd64(R31, 12bv64)), gamma_load32(Gamma_stack, bvadd64(R31, 12bv64)); - R0, Gamma_R0 := zero_extend32_32(load23), Gamma_load23; - Cse0__5_0_1, Gamma_Cse0__5_0_1 := bvadd64(R31, 32bv64), Gamma_R31; - load24, Gamma_load24 := memory_load64_le(stack, Cse0__5_0_1), gamma_load64(Gamma_stack, Cse0__5_0_1); - R29, Gamma_R29 := load24, Gamma_load24; - load25, Gamma_load25 := memory_load64_le(stack, bvadd64(Cse0__5_0_1, 8bv64)), gamma_load64(Gamma_stack, bvadd64(Cse0__5_0_1, 8bv64)); - R30, Gamma_R30 := load25, Gamma_load25; - R31, Gamma_R31 := bvadd64(R31, 48bv64), Gamma_R31; - goto main_1936_basil_return; - main_1936_basil_return: - assume {:captureState "main_1936_basil_return"} true; + assert (L(mem, R8) ==> Gamma_R9); + mem, Gamma_mem := memory_store32_le(mem, R8, R9[32:0]), gamma_store32(Gamma_mem, R8, Gamma_R9); + assume {:captureState "2404$0"} true; + R8, Gamma_R8 := 0bv64, true; + R9, Gamma_R9 := 0bv64, true; + goto sub_seven_basil_return; + sub_seven_basil_return: + assume {:captureState "sub_seven_basil_return"} true; return; } diff --git a/src/test/correct/jumptable2/clang_O2/jumptable2.gts b/src/test/correct/jumptable2/clang_O2/jumptable2.gts deleted file mode 100644 index b0c6b3856..000000000 Binary files a/src/test/correct/jumptable2/clang_O2/jumptable2.gts and /dev/null differ diff --git a/src/test/correct/jumptable2/clang_O2/jumptable2.md5sum b/src/test/correct/jumptable2/clang_O2/jumptable2.md5sum new file mode 100644 index 000000000..a49373e0c --- /dev/null +++ b/src/test/correct/jumptable2/clang_O2/jumptable2.md5sum @@ -0,0 +1,3 @@ +8ed249d2745623a377d7d4cf48b529d8 correct/jumptable2/clang_O2/a.out +f3580dbcac41cd338f2f098fc5943cd0 correct/jumptable2/clang_O2/jumptable2.relf +af0c004f2fcc849b357e162bf59579ff correct/jumptable2/clang_O2/jumptable2.gts diff --git a/src/test/correct/jumptable2/clang_O2/jumptable2.relf b/src/test/correct/jumptable2/clang_O2/jumptable2.relf deleted file mode 100644 index f8e17df47..000000000 --- a/src/test/correct/jumptable2/clang_O2/jumptable2.relf +++ /dev/null @@ -1,130 +0,0 @@ - -Relocation section '.rela.dyn' at offset 0x460 contains 11 entries: - Offset Info Type Symbol's Value Symbol's Name + Addend -0000000000010dc8 0000000000000403 R_AARCH64_RELATIVE 750 -0000000000010dd0 0000000000000403 R_AARCH64_RELATIVE 700 -0000000000010fd8 0000000000000403 R_AARCH64_RELATIVE 790 -0000000000011028 0000000000000403 R_AARCH64_RELATIVE 11028 -0000000000011038 0000000000000403 R_AARCH64_RELATIVE 754 -0000000000011040 0000000000000403 R_AARCH64_RELATIVE 768 -0000000000011048 0000000000000403 R_AARCH64_RELATIVE 77c -0000000000010fc0 0000000400000401 R_AARCH64_GLOB_DAT 0000000000000000 _ITM_deregisterTMCloneTable + 0 -0000000000010fc8 0000000500000401 R_AARCH64_GLOB_DAT 0000000000000000 __cxa_finalize@GLIBC_2.17 + 0 -0000000000010fd0 0000000600000401 R_AARCH64_GLOB_DAT 0000000000000000 __gmon_start__ + 0 -0000000000010fe0 0000000800000401 R_AARCH64_GLOB_DAT 0000000000000000 _ITM_registerTMCloneTable + 0 - -Relocation section '.rela.plt' at offset 0x568 contains 4 entries: - Offset Info Type Symbol's Value Symbol's Name + Addend -0000000000011000 0000000300000402 R_AARCH64_JUMP_SLOT 0000000000000000 __libc_start_main@GLIBC_2.34 + 0 -0000000000011008 0000000500000402 R_AARCH64_JUMP_SLOT 0000000000000000 __cxa_finalize@GLIBC_2.17 + 0 -0000000000011010 0000000600000402 R_AARCH64_JUMP_SLOT 0000000000000000 __gmon_start__ + 0 -0000000000011018 0000000700000402 R_AARCH64_JUMP_SLOT 0000000000000000 abort@GLIBC_2.17 + 0 - -Symbol table '.dynsym' contains 9 entries: - Num: Value Size Type Bind Vis Ndx Name - 0: 0000000000000000 0 NOTYPE LOCAL DEFAULT UND - 1: 00000000000005c8 0 SECTION LOCAL DEFAULT 11 .init - 2: 0000000000011020 0 SECTION LOCAL DEFAULT 23 .data - 3: 0000000000000000 0 FUNC GLOBAL DEFAULT UND __libc_start_main@GLIBC_2.34 (2) - 4: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_deregisterTMCloneTable - 5: 0000000000000000 0 FUNC WEAK DEFAULT UND __cxa_finalize@GLIBC_2.17 (3) - 6: 0000000000000000 0 NOTYPE WEAK DEFAULT UND __gmon_start__ - 7: 0000000000000000 0 FUNC GLOBAL DEFAULT UND abort@GLIBC_2.17 (3) - 8: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_registerTMCloneTable - -Symbol table '.symtab' contains 94 entries: - Num: Value Size Type Bind Vis Ndx Name - 0: 0000000000000000 0 NOTYPE LOCAL DEFAULT UND - 1: 0000000000000238 0 SECTION LOCAL DEFAULT 1 .interp - 2: 0000000000000254 0 SECTION LOCAL DEFAULT 2 .note.gnu.build-id - 3: 0000000000000278 0 SECTION LOCAL DEFAULT 3 .note.ABI-tag - 4: 0000000000000298 0 SECTION LOCAL DEFAULT 4 .gnu.hash - 5: 00000000000002b8 0 SECTION LOCAL DEFAULT 5 .dynsym - 6: 0000000000000390 0 SECTION LOCAL DEFAULT 6 .dynstr - 7: 000000000000041e 0 SECTION LOCAL DEFAULT 7 .gnu.version - 8: 0000000000000430 0 SECTION LOCAL DEFAULT 8 .gnu.version_r - 9: 0000000000000460 0 SECTION LOCAL DEFAULT 9 .rela.dyn - 10: 0000000000000568 0 SECTION LOCAL DEFAULT 10 .rela.plt - 11: 00000000000005c8 0 SECTION LOCAL DEFAULT 11 .init - 12: 00000000000005e0 0 SECTION LOCAL DEFAULT 12 .plt - 13: 0000000000000640 0 SECTION LOCAL DEFAULT 13 .text - 14: 00000000000007cc 0 SECTION LOCAL DEFAULT 14 .fini - 15: 00000000000007e0 0 SECTION LOCAL DEFAULT 15 .rodata - 16: 00000000000007e4 0 SECTION LOCAL DEFAULT 16 .eh_frame_hdr - 17: 0000000000000838 0 SECTION LOCAL DEFAULT 17 .eh_frame - 18: 0000000000010dc8 0 SECTION LOCAL DEFAULT 18 .init_array - 19: 0000000000010dd0 0 SECTION LOCAL DEFAULT 19 .fini_array - 20: 0000000000010dd8 0 SECTION LOCAL DEFAULT 20 .dynamic - 21: 0000000000010fb8 0 SECTION LOCAL DEFAULT 21 .got - 22: 0000000000010fe8 0 SECTION LOCAL DEFAULT 22 .got.plt - 23: 0000000000011020 0 SECTION LOCAL DEFAULT 23 .data - 24: 0000000000011050 0 SECTION LOCAL DEFAULT 24 .bss - 25: 0000000000000000 0 SECTION LOCAL DEFAULT 25 .comment - 26: 0000000000000000 0 FILE LOCAL DEFAULT ABS Scrt1.o - 27: 0000000000000278 0 NOTYPE LOCAL DEFAULT 3 $d - 28: 0000000000000278 32 OBJECT LOCAL DEFAULT 3 __abi_tag - 29: 0000000000000640 0 NOTYPE LOCAL DEFAULT 13 $x - 30: 000000000000084c 0 NOTYPE LOCAL DEFAULT 17 $d - 31: 00000000000007e0 0 NOTYPE LOCAL DEFAULT 15 $d - 32: 0000000000000000 0 FILE LOCAL DEFAULT ABS crti.o - 33: 0000000000000674 0 NOTYPE LOCAL DEFAULT 13 $x - 34: 0000000000000674 20 FUNC LOCAL DEFAULT 13 call_weak_fn - 35: 00000000000005c8 0 NOTYPE LOCAL DEFAULT 11 $x - 36: 00000000000007cc 0 NOTYPE LOCAL DEFAULT 14 $x - 37: 0000000000000000 0 FILE LOCAL DEFAULT ABS crtn.o - 38: 00000000000005d8 0 NOTYPE LOCAL DEFAULT 11 $x - 39: 00000000000007d8 0 NOTYPE LOCAL DEFAULT 14 $x - 40: 0000000000000000 0 FILE LOCAL DEFAULT ABS crtstuff.c - 41: 0000000000000690 0 NOTYPE LOCAL DEFAULT 13 $x - 42: 0000000000000690 0 FUNC LOCAL DEFAULT 13 deregister_tm_clones - 43: 00000000000006c0 0 FUNC LOCAL DEFAULT 13 register_tm_clones - 44: 0000000000011028 0 NOTYPE LOCAL DEFAULT 23 $d - 45: 0000000000000700 0 FUNC LOCAL DEFAULT 13 __do_global_dtors_aux - 46: 0000000000011050 1 OBJECT LOCAL DEFAULT 24 completed.0 - 47: 0000000000010dd0 0 NOTYPE LOCAL DEFAULT 19 $d - 48: 0000000000010dd0 0 OBJECT LOCAL DEFAULT 19 __do_global_dtors_aux_fini_array_entry - 49: 0000000000000750 0 FUNC LOCAL DEFAULT 13 frame_dummy - 50: 0000000000010dc8 0 NOTYPE LOCAL DEFAULT 18 $d - 51: 0000000000010dc8 0 OBJECT LOCAL DEFAULT 18 __frame_dummy_init_array_entry - 52: 0000000000000860 0 NOTYPE LOCAL DEFAULT 17 $d - 53: 0000000000011050 0 NOTYPE LOCAL DEFAULT 24 $d - 54: 0000000000000000 0 FILE LOCAL DEFAULT ABS jumptable2.c - 55: 0000000000000754 0 NOTYPE LOCAL DEFAULT 13 $x.0 - 56: 0000000000011030 0 NOTYPE LOCAL DEFAULT 23 $d.1 - 57: 000000000000002a 0 NOTYPE LOCAL DEFAULT 25 $d.2 - 58: 00000000000008c0 0 NOTYPE LOCAL DEFAULT 17 $d.3 - 59: 0000000000000000 0 FILE LOCAL DEFAULT ABS crtstuff.c - 60: 0000000000000938 0 NOTYPE LOCAL DEFAULT 17 $d - 61: 0000000000000938 0 OBJECT LOCAL DEFAULT 17 __FRAME_END__ - 62: 0000000000000000 0 FILE LOCAL DEFAULT ABS - 63: 0000000000010dd8 0 OBJECT LOCAL DEFAULT ABS _DYNAMIC - 64: 00000000000007e4 0 NOTYPE LOCAL DEFAULT 16 __GNU_EH_FRAME_HDR - 65: 0000000000010fb8 0 OBJECT LOCAL DEFAULT ABS _GLOBAL_OFFSET_TABLE_ - 66: 00000000000005e0 0 NOTYPE LOCAL DEFAULT 12 $x - 67: 0000000000000000 0 FUNC GLOBAL DEFAULT UND __libc_start_main@GLIBC_2.34 - 68: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_deregisterTMCloneTable - 69: 0000000000011020 0 NOTYPE WEAK DEFAULT 23 data_start - 70: 0000000000011050 0 NOTYPE GLOBAL DEFAULT 24 __bss_start__ - 71: 0000000000000000 0 FUNC WEAK DEFAULT UND __cxa_finalize@GLIBC_2.17 - 72: 0000000000011058 0 NOTYPE GLOBAL DEFAULT 24 _bss_end__ - 73: 0000000000011050 0 NOTYPE GLOBAL DEFAULT 23 _edata - 74: 0000000000011030 4 OBJECT GLOBAL DEFAULT 23 x - 75: 00000000000007cc 0 FUNC GLOBAL HIDDEN 14 _fini - 76: 0000000000011058 0 NOTYPE GLOBAL DEFAULT 24 __bss_end__ - 77: 0000000000011020 0 NOTYPE GLOBAL DEFAULT 23 __data_start - 78: 0000000000000000 0 NOTYPE WEAK DEFAULT UND __gmon_start__ - 79: 0000000000011028 0 OBJECT GLOBAL HIDDEN 23 __dso_handle - 80: 0000000000000000 0 FUNC GLOBAL DEFAULT UND abort@GLIBC_2.17 - 81: 00000000000007e0 4 OBJECT GLOBAL DEFAULT 15 _IO_stdin_used - 82: 0000000000000754 20 FUNC GLOBAL DEFAULT 13 add_two - 83: 0000000000011058 0 NOTYPE GLOBAL DEFAULT 24 _end - 84: 0000000000000640 52 FUNC GLOBAL DEFAULT 13 _start - 85: 0000000000011058 0 NOTYPE GLOBAL DEFAULT 24 __end__ - 86: 0000000000000768 20 FUNC GLOBAL DEFAULT 13 add_six - 87: 0000000000011050 0 NOTYPE GLOBAL DEFAULT 24 __bss_start - 88: 0000000000000790 60 FUNC GLOBAL DEFAULT 13 main - 89: 0000000000011050 0 OBJECT GLOBAL HIDDEN 23 __TMC_END__ - 90: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_registerTMCloneTable - 91: 0000000000011038 24 OBJECT GLOBAL DEFAULT 23 jump_table - 92: 00000000000005c8 0 FUNC GLOBAL HIDDEN 11 _init - 93: 000000000000077c 20 FUNC GLOBAL DEFAULT 13 sub_seven diff --git a/src/test/correct/jumptable2/clang_O2/jumptable2_gtirb.expected b/src/test/correct/jumptable2/clang_O2/jumptable2_gtirb.expected index 11b50056f..e4d4d8797 100644 --- a/src/test/correct/jumptable2/clang_O2/jumptable2_gtirb.expected +++ b/src/test/correct/jumptable2/clang_O2/jumptable2_gtirb.expected @@ -17,11 +17,11 @@ var {:extern} R9: bv64; var {:extern} mem: [bv64]bv8; var {:extern} stack: [bv64]bv8; const {:extern} $_IO_stdin_used_addr: bv64; -axiom ($_IO_stdin_used_addr == 2016bv64); +axiom ($_IO_stdin_used_addr == 2500bv64); const {:extern} $jump_table_addr: bv64; -axiom ($jump_table_addr == 69688bv64); +axiom ($jump_table_addr == 131096bv64); const {:extern} $x_addr: bv64; -axiom ($x_addr == 69680bv64); +axiom ($x_addr == 131088bv64); function {:extern} L(mem$in: [bv64]bv8, index: bv64) returns (bool) { false } @@ -65,14 +65,16 @@ procedure {:extern} rely(); modifies Gamma_mem, mem; ensures (Gamma_mem == old(Gamma_mem)); ensures (mem == old(mem)); - free ensures (memory_load32_le(mem, 2016bv64) == 131073bv32); - free ensures (memory_load64_le(mem, 69064bv64) == 1872bv64); - free ensures (memory_load64_le(mem, 69072bv64) == 1792bv64); - free ensures (memory_load64_le(mem, 69592bv64) == 1936bv64); - free ensures (memory_load64_le(mem, 69672bv64) == 69672bv64); - free ensures (memory_load64_le(mem, 69688bv64) == 1876bv64); - free ensures (memory_load64_le(mem, 69696bv64) == 1896bv64); - free ensures (memory_load64_le(mem, 69704bv64) == 1916bv64); + free ensures (memory_load32_le(mem, 2500bv64) == 131073bv32); + free ensures (memory_load64_le(mem, 130424bv64) == 2320bv64); + free ensures (memory_load64_le(mem, 130432bv64) == 2240bv64); + free ensures (memory_load64_le(mem, 131032bv64) == 131088bv64); + free ensures (memory_load64_le(mem, 131048bv64) == 2420bv64); + free ensures (memory_load64_le(mem, 131064bv64) == 131096bv64); + free ensures (memory_load64_le(mem, 131080bv64) == 131080bv64); + free ensures (memory_load64_le(mem, 131096bv64) == 2324bv64); + free ensures (memory_load64_le(mem, 131104bv64) == 2356bv64); + free ensures (memory_load64_le(mem, 131112bv64) == 2388bv64); procedure {:extern} rely_transitive(); modifies Gamma_mem, mem; @@ -90,221 +92,262 @@ procedure {:extern} rely_reflexive(); procedure {:extern} guarantee_reflexive(); modifies Gamma_mem, mem; -procedure main_1936(); +procedure add_two(); + modifies Gamma_R8, Gamma_R9, Gamma_mem, R8, R9, mem; + free requires (memory_load32_le(mem, 2500bv64) == 131073bv32); + free requires (memory_load64_le(mem, 130424bv64) == 2320bv64); + free requires (memory_load64_le(mem, 130432bv64) == 2240bv64); + free requires (memory_load64_le(mem, 131032bv64) == 131088bv64); + free requires (memory_load64_le(mem, 131048bv64) == 2420bv64); + free requires (memory_load64_le(mem, 131064bv64) == 131096bv64); + free requires (memory_load64_le(mem, 131080bv64) == 131080bv64); + free requires (memory_load64_le(mem, 131096bv64) == 2324bv64); + free requires (memory_load64_le(mem, 131104bv64) == 2356bv64); + free requires (memory_load64_le(mem, 131112bv64) == 2388bv64); + free ensures (memory_load32_le(mem, 2500bv64) == 131073bv32); + free ensures (memory_load64_le(mem, 130424bv64) == 2320bv64); + free ensures (memory_load64_le(mem, 130432bv64) == 2240bv64); + free ensures (memory_load64_le(mem, 131032bv64) == 131088bv64); + free ensures (memory_load64_le(mem, 131048bv64) == 2420bv64); + free ensures (memory_load64_le(mem, 131064bv64) == 131096bv64); + free ensures (memory_load64_le(mem, 131080bv64) == 131080bv64); + free ensures (memory_load64_le(mem, 131096bv64) == 2324bv64); + free ensures (memory_load64_le(mem, 131104bv64) == 2356bv64); + free ensures (memory_load64_le(mem, 131112bv64) == 2388bv64); + +implementation add_two() +{ + var $load6: bv64; + var $load7: bv32; + var Gamma_$load6: bool; + var Gamma_$load7: bool; + $add_two$__0__$SFN4dpBgSO2bPUu0fyDluw: + assume {:captureState "$add_two$__0__$SFN4dpBgSO2bPUu0fyDluw"} true; + R8, Gamma_R8 := 126976bv64, true; + call rely(); + $load6, Gamma_$load6 := memory_load64_le(mem, bvadd64(R8, 4056bv64)), (gamma_load64(Gamma_mem, bvadd64(R8, 4056bv64)) || L(mem, bvadd64(R8, 4056bv64))); + R8, Gamma_R8 := $load6, Gamma_$load6; + call rely(); + $load7, Gamma_$load7 := memory_load32_le(mem, R8), (gamma_load32(Gamma_mem, R8) || L(mem, R8)); + R9, Gamma_R9 := zero_extend32_32($load7), Gamma_$load7; + R9, Gamma_R9 := zero_extend32_32(bvadd32(R9[32:0], 2bv32)), Gamma_R9; + call rely(); + assert (L(mem, R8) ==> Gamma_R9); + mem, Gamma_mem := memory_store32_le(mem, R8, R9[32:0]), gamma_store32(Gamma_mem, R8, Gamma_R9); + assume {:captureState "2340$0"} true; + R8, Gamma_R8 := 0bv64, true; + R9, Gamma_R9 := 0bv64, true; + goto add_two_basil_return; + add_two_basil_return: + assume {:captureState "add_two_basil_return"} true; + return; +} + +procedure main(); modifies Gamma_R0, Gamma_R19, Gamma_R29, Gamma_R30, Gamma_R31, Gamma_R8, Gamma_R9, Gamma_mem, Gamma_stack, R0, R19, R29, R30, R31, R8, R9, mem, stack; - free requires (memory_load64_le(mem, 69664bv64) == 0bv64); - free requires (memory_load64_le(mem, 69672bv64) == 69672bv64); - free requires (memory_load64_le(mem, 69680bv64) == 5bv64); - free requires (memory_load64_le(mem, 69688bv64) == 1876bv64); - free requires (memory_load64_le(mem, 69696bv64) == 1896bv64); - free requires (memory_load64_le(mem, 69704bv64) == 1916bv64); - free requires (memory_load32_le(mem, 2016bv64) == 131073bv32); - free requires (memory_load64_le(mem, 69064bv64) == 1872bv64); - free requires (memory_load64_le(mem, 69072bv64) == 1792bv64); - free requires (memory_load64_le(mem, 69592bv64) == 1936bv64); - free requires (memory_load64_le(mem, 69672bv64) == 69672bv64); - free requires (memory_load64_le(mem, 69688bv64) == 1876bv64); - free requires (memory_load64_le(mem, 69696bv64) == 1896bv64); - free requires (memory_load64_le(mem, 69704bv64) == 1916bv64); + free requires (memory_load64_le(mem, 131072bv64) == 0bv64); + free requires (memory_load64_le(mem, 131080bv64) == 131080bv64); + free requires (memory_load64_le(mem, 131088bv64) == 5bv64); + free requires (memory_load64_le(mem, 131096bv64) == 2324bv64); + free requires (memory_load64_le(mem, 131104bv64) == 2356bv64); + free requires (memory_load64_le(mem, 131112bv64) == 2388bv64); + free requires (memory_load32_le(mem, 2500bv64) == 131073bv32); + free requires (memory_load64_le(mem, 130424bv64) == 2320bv64); + free requires (memory_load64_le(mem, 130432bv64) == 2240bv64); + free requires (memory_load64_le(mem, 131032bv64) == 131088bv64); + free requires (memory_load64_le(mem, 131048bv64) == 2420bv64); + free requires (memory_load64_le(mem, 131064bv64) == 131096bv64); + free requires (memory_load64_le(mem, 131080bv64) == 131080bv64); + free requires (memory_load64_le(mem, 131096bv64) == 2324bv64); + free requires (memory_load64_le(mem, 131104bv64) == 2356bv64); + free requires (memory_load64_le(mem, 131112bv64) == 2388bv64); free ensures (Gamma_R19 == old(Gamma_R19)); free ensures (Gamma_R29 == old(Gamma_R29)); free ensures (Gamma_R31 == old(Gamma_R31)); free ensures (R19 == old(R19)); free ensures (R29 == old(R29)); free ensures (R31 == old(R31)); - free ensures (memory_load32_le(mem, 2016bv64) == 131073bv32); - free ensures (memory_load64_le(mem, 69064bv64) == 1872bv64); - free ensures (memory_load64_le(mem, 69072bv64) == 1792bv64); - free ensures (memory_load64_le(mem, 69592bv64) == 1936bv64); - free ensures (memory_load64_le(mem, 69672bv64) == 69672bv64); - free ensures (memory_load64_le(mem, 69688bv64) == 1876bv64); - free ensures (memory_load64_le(mem, 69696bv64) == 1896bv64); - free ensures (memory_load64_le(mem, 69704bv64) == 1916bv64); + free ensures (memory_load32_le(mem, 2500bv64) == 131073bv32); + free ensures (memory_load64_le(mem, 130424bv64) == 2320bv64); + free ensures (memory_load64_le(mem, 130432bv64) == 2240bv64); + free ensures (memory_load64_le(mem, 131032bv64) == 131088bv64); + free ensures (memory_load64_le(mem, 131048bv64) == 2420bv64); + free ensures (memory_load64_le(mem, 131064bv64) == 131096bv64); + free ensures (memory_load64_le(mem, 131080bv64) == 131080bv64); + free ensures (memory_load64_le(mem, 131096bv64) == 2324bv64); + free ensures (memory_load64_le(mem, 131104bv64) == 2356bv64); + free ensures (memory_load64_le(mem, 131112bv64) == 2388bv64); -implementation main_1936() +implementation main() { - var Cse0__5_2_0: bv64; - var Gamma_Cse0__5_2_0: bool; - var Gamma_load4: bool; - var Gamma_load5: bool; - var Gamma_load6: bool; - var Gamma_load7: bool; - var Gamma_load8: bool; - var Gamma_load9: bool; - var load4: bv64; - var load5: bv64; - var load6: bv64; - var load7: bv64; - var load8: bv64; - var load9: bv64; - main_1936__0__wC7NIj00StStGxM0LI2VwQ: - assume {:captureState "main_1936__0__wC7NIj00StStGxM0LI2VwQ"} true; - Cse0__5_2_0, Gamma_Cse0__5_2_0 := bvadd64(R31, 18446744073709551584bv64), Gamma_R31; - stack, Gamma_stack := memory_store64_le(stack, Cse0__5_2_0, R29), gamma_store64(Gamma_stack, Cse0__5_2_0, Gamma_R29); - assume {:captureState "1936_1"} true; - stack, Gamma_stack := memory_store64_le(stack, bvadd64(Cse0__5_2_0, 8bv64), R30), gamma_store64(Gamma_stack, bvadd64(Cse0__5_2_0, 8bv64), Gamma_R30); - assume {:captureState "1936_2"} true; - R31, Gamma_R31 := Cse0__5_2_0, Gamma_Cse0__5_2_0; + var $load17: bv64; + var $load18: bv64; + var $load19: bv64; + var $load20: bv64; + var $load21: bv64; + var $load22: bv64; + var $load23: bv64; + var Cse0__5$1$0: bv64; + var Gamma_$load17: bool; + var Gamma_$load18: bool; + var Gamma_$load19: bool; + var Gamma_$load20: bool; + var Gamma_$load21: bool; + var Gamma_$load22: bool; + var Gamma_$load23: bool; + var Gamma_Cse0__5$1$0: bool; + $main$__0__$OuTzy8qRTci75taVjGinFQ: + assume {:captureState "$main$__0__$OuTzy8qRTci75taVjGinFQ"} true; + Cse0__5$1$0, Gamma_Cse0__5$1$0 := bvadd64(R31, 18446744073709551584bv64), Gamma_R31; + stack, Gamma_stack := memory_store64_le(stack, Cse0__5$1$0, R29), gamma_store64(Gamma_stack, Cse0__5$1$0, Gamma_R29); + assume {:captureState "2420$1"} true; + stack, Gamma_stack := memory_store64_le(stack, bvadd64(Cse0__5$1$0, 8bv64), R30), gamma_store64(Gamma_stack, bvadd64(Cse0__5$1$0, 8bv64), Gamma_R30); + assume {:captureState "2420$2"} true; + R31, Gamma_R31 := Cse0__5$1$0, Gamma_Cse0__5$1$0; stack, Gamma_stack := memory_store64_le(stack, bvadd64(R31, 16bv64), R19), gamma_store64(Gamma_stack, bvadd64(R31, 16bv64), Gamma_R19); - assume {:captureState "1940_0"} true; + assume {:captureState "2424$0"} true; R29, Gamma_R29 := R31, Gamma_R31; - R19, Gamma_R19 := 69632bv64, true; - R19, Gamma_R19 := bvadd64(R19, 56bv64), Gamma_R19; + R19, Gamma_R19 := 126976bv64, true; + call rely(); + $load20, Gamma_$load20 := memory_load64_le(mem, bvadd64(R19, 4088bv64)), (gamma_load64(Gamma_mem, bvadd64(R19, 4088bv64)) || L(mem, bvadd64(R19, 4088bv64))); + R19, Gamma_R19 := $load20, Gamma_$load20; call rely(); - load8, Gamma_load8 := memory_load64_le(mem, R19), (gamma_load64(Gamma_mem, R19) || L(mem, R19)); - R8, Gamma_R8 := load8, Gamma_load8; - R30, Gamma_R30 := 1964bv64, true; - call add_two_1876(); - goto main_1936__1__9JzDMe78T9KO0OnEp65uKg; - main_1936__1__9JzDMe78T9KO0OnEp65uKg: - assume {:captureState "main_1936__1__9JzDMe78T9KO0OnEp65uKg"} true; + $load21, Gamma_$load21 := memory_load64_le(mem, R19), (gamma_load64(Gamma_mem, R19) || L(mem, R19)); + R8, Gamma_R8 := $load21, Gamma_$load21; + R30, Gamma_R30 := 2076bv64, true; + call add_two(); + goto $main$__1__$rCSSdLZcRB2TKAu9h~WCqg; + $main$__1__$rCSSdLZcRB2TKAu9h~WCqg: + assume {:captureState "$main$__1__$rCSSdLZcRB2TKAu9h~WCqg"} true; call rely(); - load9, Gamma_load9 := memory_load64_le(mem, bvadd64(R19, 8bv64)), (gamma_load64(Gamma_mem, bvadd64(R19, 8bv64)) || L(mem, bvadd64(R19, 8bv64))); - R8, Gamma_R8 := load9, Gamma_load9; - R30, Gamma_R30 := 1964bv64, true; - call add_six_1896(); - goto main_1936__2__F9IXiDuaS2S~EwbOz5HUEw; - main_1936__2__F9IXiDuaS2S~EwbOz5HUEw: - assume {:captureState "main_1936__2__F9IXiDuaS2S~EwbOz5HUEw"} true; + $load23, Gamma_$load23 := memory_load64_le(mem, bvadd64(R19, 8bv64)), (gamma_load64(Gamma_mem, bvadd64(R19, 8bv64)) || L(mem, bvadd64(R19, 8bv64))); + R8, Gamma_R8 := $load23, Gamma_$load23; + R30, Gamma_R30 := 2056bv64, true; + call add_six(); + goto $main$__2__$ZLfuz7OtTNOS9GLtqSI1gg; + $main$__2__$ZLfuz7OtTNOS9GLtqSI1gg: + assume {:captureState "$main$__2__$ZLfuz7OtTNOS9GLtqSI1gg"} true; call rely(); - load4, Gamma_load4 := memory_load64_le(mem, bvadd64(R19, 16bv64)), (gamma_load64(Gamma_mem, bvadd64(R19, 16bv64)) || L(mem, bvadd64(R19, 16bv64))); - R8, Gamma_R8 := load4, Gamma_load4; - R30, Gamma_R30 := 1964bv64, true; - call sub_seven_1916(); - goto main_1936__3__OhO~c77aTJ6ndOxW9PxJzQ; - main_1936__3__OhO~c77aTJ6ndOxW9PxJzQ: - assume {:captureState "main_1936__3__OhO~c77aTJ6ndOxW9PxJzQ"} true; + $load22, Gamma_$load22 := memory_load64_le(mem, bvadd64(R19, 16bv64)), (gamma_load64(Gamma_mem, bvadd64(R19, 16bv64)) || L(mem, bvadd64(R19, 16bv64))); + R8, Gamma_R8 := $load22, Gamma_$load22; + R30, Gamma_R30 := 2056bv64, true; + call sub_seven(); + goto $main$__3__$HVqN0_3~RWiLPKsHRvUqeg; + $main$__3__$HVqN0_3~RWiLPKsHRvUqeg: + assume {:captureState "$main$__3__$HVqN0_3~RWiLPKsHRvUqeg"} true; R0, Gamma_R0 := 0bv64, true; - load5, Gamma_load5 := memory_load64_le(stack, bvadd64(R31, 16bv64)), gamma_load64(Gamma_stack, bvadd64(R31, 16bv64)); - R19, Gamma_R19 := load5, Gamma_load5; - load6, Gamma_load6 := memory_load64_le(stack, R31), gamma_load64(Gamma_stack, R31); - R29, Gamma_R29 := load6, Gamma_load6; - load7, Gamma_load7 := memory_load64_le(stack, bvadd64(R31, 8bv64)), gamma_load64(Gamma_stack, bvadd64(R31, 8bv64)); - R30, Gamma_R30 := load7, Gamma_load7; + $load17, Gamma_$load17 := memory_load64_le(stack, bvadd64(R31, 16bv64)), gamma_load64(Gamma_stack, bvadd64(R31, 16bv64)); + R19, Gamma_R19 := $load17, Gamma_$load17; + $load18, Gamma_$load18 := memory_load64_le(stack, R31), gamma_load64(Gamma_stack, R31); + R29, Gamma_R29 := $load18, Gamma_$load18; + $load19, Gamma_$load19 := memory_load64_le(stack, bvadd64(R31, 8bv64)), gamma_load64(Gamma_stack, bvadd64(R31, 8bv64)); + R30, Gamma_R30 := $load19, Gamma_$load19; R31, Gamma_R31 := bvadd64(R31, 32bv64), Gamma_R31; - goto main_1936_basil_return; - main_1936_basil_return: - assume {:captureState "main_1936_basil_return"} true; + goto main_basil_return; + main_basil_return: + assume {:captureState "main_basil_return"} true; return; } -procedure sub_seven_1916(); +procedure add_six(); modifies Gamma_R8, Gamma_R9, Gamma_mem, R8, R9, mem; - free requires (memory_load32_le(mem, 2016bv64) == 131073bv32); - free requires (memory_load64_le(mem, 69064bv64) == 1872bv64); - free requires (memory_load64_le(mem, 69072bv64) == 1792bv64); - free requires (memory_load64_le(mem, 69592bv64) == 1936bv64); - free requires (memory_load64_le(mem, 69672bv64) == 69672bv64); - free requires (memory_load64_le(mem, 69688bv64) == 1876bv64); - free requires (memory_load64_le(mem, 69696bv64) == 1896bv64); - free requires (memory_load64_le(mem, 69704bv64) == 1916bv64); - free ensures (memory_load32_le(mem, 2016bv64) == 131073bv32); - free ensures (memory_load64_le(mem, 69064bv64) == 1872bv64); - free ensures (memory_load64_le(mem, 69072bv64) == 1792bv64); - free ensures (memory_load64_le(mem, 69592bv64) == 1936bv64); - free ensures (memory_load64_le(mem, 69672bv64) == 69672bv64); - free ensures (memory_load64_le(mem, 69688bv64) == 1876bv64); - free ensures (memory_load64_le(mem, 69696bv64) == 1896bv64); - free ensures (memory_load64_le(mem, 69704bv64) == 1916bv64); + free requires (memory_load32_le(mem, 2500bv64) == 131073bv32); + free requires (memory_load64_le(mem, 130424bv64) == 2320bv64); + free requires (memory_load64_le(mem, 130432bv64) == 2240bv64); + free requires (memory_load64_le(mem, 131032bv64) == 131088bv64); + free requires (memory_load64_le(mem, 131048bv64) == 2420bv64); + free requires (memory_load64_le(mem, 131064bv64) == 131096bv64); + free requires (memory_load64_le(mem, 131080bv64) == 131080bv64); + free requires (memory_load64_le(mem, 131096bv64) == 2324bv64); + free requires (memory_load64_le(mem, 131104bv64) == 2356bv64); + free requires (memory_load64_le(mem, 131112bv64) == 2388bv64); + free ensures (memory_load32_le(mem, 2500bv64) == 131073bv32); + free ensures (memory_load64_le(mem, 130424bv64) == 2320bv64); + free ensures (memory_load64_le(mem, 130432bv64) == 2240bv64); + free ensures (memory_load64_le(mem, 131032bv64) == 131088bv64); + free ensures (memory_load64_le(mem, 131048bv64) == 2420bv64); + free ensures (memory_load64_le(mem, 131064bv64) == 131096bv64); + free ensures (memory_load64_le(mem, 131080bv64) == 131080bv64); + free ensures (memory_load64_le(mem, 131096bv64) == 2324bv64); + free ensures (memory_load64_le(mem, 131104bv64) == 2356bv64); + free ensures (memory_load64_le(mem, 131112bv64) == 2388bv64); -implementation sub_seven_1916() +implementation add_six() { - var Gamma_load22: bool; - var load22: bv32; - sub_seven_1916__0__ocbHXXGATjqAp6GkHigdUA: - assume {:captureState "sub_seven_1916__0__ocbHXXGATjqAp6GkHigdUA"} true; - R8, Gamma_R8 := 69632bv64, true; - call rely(); - load22, Gamma_load22 := memory_load32_le(mem, bvadd64(R8, 48bv64)), (gamma_load32(Gamma_mem, bvadd64(R8, 48bv64)) || L(mem, bvadd64(R8, 48bv64))); - R9, Gamma_R9 := zero_extend32_32(load22), Gamma_load22; - R9, Gamma_R9 := zero_extend32_32(bvadd32(R9[32:0], 4294967289bv32)), Gamma_R9; + var $load24: bv64; + var $load25: bv32; + var Gamma_$load24: bool; + var Gamma_$load25: bool; + $add_six$__0__$mmpaLvZYQk2b8selWCLriA: + assume {:captureState "$add_six$__0__$mmpaLvZYQk2b8selWCLriA"} true; + R8, Gamma_R8 := 126976bv64, true; call rely(); - assert (L(mem, bvadd64(R8, 48bv64)) ==> Gamma_R9); - mem, Gamma_mem := memory_store32_le(mem, bvadd64(R8, 48bv64), R9[32:0]), gamma_store32(Gamma_mem, bvadd64(R8, 48bv64), Gamma_R9); - assume {:captureState "1928_0"} true; - goto sub_seven_1916_basil_return; - sub_seven_1916_basil_return: - assume {:captureState "sub_seven_1916_basil_return"} true; - return; -} - -procedure add_two_1876(); - modifies Gamma_R8, Gamma_R9, Gamma_mem, R8, R9, mem; - free requires (memory_load32_le(mem, 2016bv64) == 131073bv32); - free requires (memory_load64_le(mem, 69064bv64) == 1872bv64); - free requires (memory_load64_le(mem, 69072bv64) == 1792bv64); - free requires (memory_load64_le(mem, 69592bv64) == 1936bv64); - free requires (memory_load64_le(mem, 69672bv64) == 69672bv64); - free requires (memory_load64_le(mem, 69688bv64) == 1876bv64); - free requires (memory_load64_le(mem, 69696bv64) == 1896bv64); - free requires (memory_load64_le(mem, 69704bv64) == 1916bv64); - free ensures (memory_load32_le(mem, 2016bv64) == 131073bv32); - free ensures (memory_load64_le(mem, 69064bv64) == 1872bv64); - free ensures (memory_load64_le(mem, 69072bv64) == 1792bv64); - free ensures (memory_load64_le(mem, 69592bv64) == 1936bv64); - free ensures (memory_load64_le(mem, 69672bv64) == 69672bv64); - free ensures (memory_load64_le(mem, 69688bv64) == 1876bv64); - free ensures (memory_load64_le(mem, 69696bv64) == 1896bv64); - free ensures (memory_load64_le(mem, 69704bv64) == 1916bv64); - -implementation add_two_1876() -{ - var Gamma_load26: bool; - var load26: bv32; - add_two_1876__0__Y7f13oh7RqmVBWvxNXuniA: - assume {:captureState "add_two_1876__0__Y7f13oh7RqmVBWvxNXuniA"} true; - R8, Gamma_R8 := 69632bv64, true; + $load24, Gamma_$load24 := memory_load64_le(mem, bvadd64(R8, 4056bv64)), (gamma_load64(Gamma_mem, bvadd64(R8, 4056bv64)) || L(mem, bvadd64(R8, 4056bv64))); + R8, Gamma_R8 := $load24, Gamma_$load24; call rely(); - load26, Gamma_load26 := memory_load32_le(mem, bvadd64(R8, 48bv64)), (gamma_load32(Gamma_mem, bvadd64(R8, 48bv64)) || L(mem, bvadd64(R8, 48bv64))); - R9, Gamma_R9 := zero_extend32_32(load26), Gamma_load26; - R9, Gamma_R9 := zero_extend32_32(bvadd32(R9[32:0], 2bv32)), Gamma_R9; + $load25, Gamma_$load25 := memory_load32_le(mem, R8), (gamma_load32(Gamma_mem, R8) || L(mem, R8)); + R9, Gamma_R9 := zero_extend32_32($load25), Gamma_$load25; + R9, Gamma_R9 := zero_extend32_32(bvadd32(R9[32:0], 6bv32)), Gamma_R9; call rely(); - assert (L(mem, bvadd64(R8, 48bv64)) ==> Gamma_R9); - mem, Gamma_mem := memory_store32_le(mem, bvadd64(R8, 48bv64), R9[32:0]), gamma_store32(Gamma_mem, bvadd64(R8, 48bv64), Gamma_R9); - assume {:captureState "1888_0"} true; - goto add_two_1876_basil_return; - add_two_1876_basil_return: - assume {:captureState "add_two_1876_basil_return"} true; + assert (L(mem, R8) ==> Gamma_R9); + mem, Gamma_mem := memory_store32_le(mem, R8, R9[32:0]), gamma_store32(Gamma_mem, R8, Gamma_R9); + assume {:captureState "2372$0"} true; + R8, Gamma_R8 := 0bv64, true; + R9, Gamma_R9 := 0bv64, true; + goto add_six_basil_return; + add_six_basil_return: + assume {:captureState "add_six_basil_return"} true; return; } -procedure add_six_1896(); +procedure sub_seven(); modifies Gamma_R8, Gamma_R9, Gamma_mem, R8, R9, mem; - free requires (memory_load32_le(mem, 2016bv64) == 131073bv32); - free requires (memory_load64_le(mem, 69064bv64) == 1872bv64); - free requires (memory_load64_le(mem, 69072bv64) == 1792bv64); - free requires (memory_load64_le(mem, 69592bv64) == 1936bv64); - free requires (memory_load64_le(mem, 69672bv64) == 69672bv64); - free requires (memory_load64_le(mem, 69688bv64) == 1876bv64); - free requires (memory_load64_le(mem, 69696bv64) == 1896bv64); - free requires (memory_load64_le(mem, 69704bv64) == 1916bv64); - free ensures (memory_load32_le(mem, 2016bv64) == 131073bv32); - free ensures (memory_load64_le(mem, 69064bv64) == 1872bv64); - free ensures (memory_load64_le(mem, 69072bv64) == 1792bv64); - free ensures (memory_load64_le(mem, 69592bv64) == 1936bv64); - free ensures (memory_load64_le(mem, 69672bv64) == 69672bv64); - free ensures (memory_load64_le(mem, 69688bv64) == 1876bv64); - free ensures (memory_load64_le(mem, 69696bv64) == 1896bv64); - free ensures (memory_load64_le(mem, 69704bv64) == 1916bv64); + free requires (memory_load32_le(mem, 2500bv64) == 131073bv32); + free requires (memory_load64_le(mem, 130424bv64) == 2320bv64); + free requires (memory_load64_le(mem, 130432bv64) == 2240bv64); + free requires (memory_load64_le(mem, 131032bv64) == 131088bv64); + free requires (memory_load64_le(mem, 131048bv64) == 2420bv64); + free requires (memory_load64_le(mem, 131064bv64) == 131096bv64); + free requires (memory_load64_le(mem, 131080bv64) == 131080bv64); + free requires (memory_load64_le(mem, 131096bv64) == 2324bv64); + free requires (memory_load64_le(mem, 131104bv64) == 2356bv64); + free requires (memory_load64_le(mem, 131112bv64) == 2388bv64); + free ensures (memory_load32_le(mem, 2500bv64) == 131073bv32); + free ensures (memory_load64_le(mem, 130424bv64) == 2320bv64); + free ensures (memory_load64_le(mem, 130432bv64) == 2240bv64); + free ensures (memory_load64_le(mem, 131032bv64) == 131088bv64); + free ensures (memory_load64_le(mem, 131048bv64) == 2420bv64); + free ensures (memory_load64_le(mem, 131064bv64) == 131096bv64); + free ensures (memory_load64_le(mem, 131080bv64) == 131080bv64); + free ensures (memory_load64_le(mem, 131096bv64) == 2324bv64); + free ensures (memory_load64_le(mem, 131104bv64) == 2356bv64); + free ensures (memory_load64_le(mem, 131112bv64) == 2388bv64); -implementation add_six_1896() +implementation sub_seven() { - var Gamma_load28: bool; - var load28: bv32; - add_six_1896__0__xWsLZ13VTJuk_UvRVjK3kQ: - assume {:captureState "add_six_1896__0__xWsLZ13VTJuk_UvRVjK3kQ"} true; - R8, Gamma_R8 := 69632bv64, true; + var $load27: bv64; + var $load28: bv32; + var Gamma_$load27: bool; + var Gamma_$load28: bool; + $sub_seven$__0__$6JJvkaLhTaWXaEL0~yxKxg: + assume {:captureState "$sub_seven$__0__$6JJvkaLhTaWXaEL0~yxKxg"} true; + R8, Gamma_R8 := 126976bv64, true; call rely(); - load28, Gamma_load28 := memory_load32_le(mem, bvadd64(R8, 48bv64)), (gamma_load32(Gamma_mem, bvadd64(R8, 48bv64)) || L(mem, bvadd64(R8, 48bv64))); - R9, Gamma_R9 := zero_extend32_32(load28), Gamma_load28; - R9, Gamma_R9 := zero_extend32_32(bvadd32(R9[32:0], 6bv32)), Gamma_R9; + $load27, Gamma_$load27 := memory_load64_le(mem, bvadd64(R8, 4056bv64)), (gamma_load64(Gamma_mem, bvadd64(R8, 4056bv64)) || L(mem, bvadd64(R8, 4056bv64))); + R8, Gamma_R8 := $load27, Gamma_$load27; + call rely(); + $load28, Gamma_$load28 := memory_load32_le(mem, R8), (gamma_load32(Gamma_mem, R8) || L(mem, R8)); + R9, Gamma_R9 := zero_extend32_32($load28), Gamma_$load28; + R9, Gamma_R9 := zero_extend32_32(bvadd32(R9[32:0], 4294967289bv32)), Gamma_R9; call rely(); - assert (L(mem, bvadd64(R8, 48bv64)) ==> Gamma_R9); - mem, Gamma_mem := memory_store32_le(mem, bvadd64(R8, 48bv64), R9[32:0]), gamma_store32(Gamma_mem, bvadd64(R8, 48bv64), Gamma_R9); - assume {:captureState "1908_0"} true; - goto add_six_1896_basil_return; - add_six_1896_basil_return: - assume {:captureState "add_six_1896_basil_return"} true; + assert (L(mem, R8) ==> Gamma_R9); + mem, Gamma_mem := memory_store32_le(mem, R8, R9[32:0]), gamma_store32(Gamma_mem, R8, Gamma_R9); + assume {:captureState "2404$0"} true; + R8, Gamma_R8 := 0bv64, true; + R9, Gamma_R9 := 0bv64, true; + goto sub_seven_basil_return; + sub_seven_basil_return: + assume {:captureState "sub_seven_basil_return"} true; return; } diff --git a/src/test/correct/jumptable2/clang_pic/jumptable2.gts b/src/test/correct/jumptable2/clang_pic/jumptable2.gts deleted file mode 100644 index 94c39ddf9..000000000 Binary files a/src/test/correct/jumptable2/clang_pic/jumptable2.gts and /dev/null differ diff --git a/src/test/correct/jumptable2/clang_pic/jumptable2.md5sum b/src/test/correct/jumptable2/clang_pic/jumptable2.md5sum new file mode 100644 index 000000000..398265061 --- /dev/null +++ b/src/test/correct/jumptable2/clang_pic/jumptable2.md5sum @@ -0,0 +1,3 @@ +1b67710a1a01eb1e505a3b9317b4c805 correct/jumptable2/clang_pic/a.out +28ef1b32ac18ba5970eeec6b96c55f7e correct/jumptable2/clang_pic/jumptable2.relf +8bfd39281b163abdc026506e6fd2766a correct/jumptable2/clang_pic/jumptable2.gts diff --git a/src/test/correct/jumptable2/clang_pic/jumptable2.relf b/src/test/correct/jumptable2/clang_pic/jumptable2.relf deleted file mode 100644 index 1a913f9dd..000000000 --- a/src/test/correct/jumptable2/clang_pic/jumptable2.relf +++ /dev/null @@ -1,132 +0,0 @@ - -Relocation section '.rela.dyn' at offset 0x460 contains 13 entries: - Offset Info Type Symbol's Value Symbol's Name + Addend -0000000000010db8 0000000000000403 R_AARCH64_RELATIVE 790 -0000000000010dc0 0000000000000403 R_AARCH64_RELATIVE 740 -0000000000010fc0 0000000000000403 R_AARCH64_RELATIVE 11030 -0000000000010fd0 0000000000000403 R_AARCH64_RELATIVE 7dc -0000000000010fe0 0000000000000403 R_AARCH64_RELATIVE 11038 -0000000000011028 0000000000000403 R_AARCH64_RELATIVE 11028 -0000000000011038 0000000000000403 R_AARCH64_RELATIVE 794 -0000000000011040 0000000000000403 R_AARCH64_RELATIVE 7ac -0000000000011048 0000000000000403 R_AARCH64_RELATIVE 7c4 -0000000000010fb0 0000000400000401 R_AARCH64_GLOB_DAT 0000000000000000 _ITM_deregisterTMCloneTable + 0 -0000000000010fb8 0000000500000401 R_AARCH64_GLOB_DAT 0000000000000000 __cxa_finalize@GLIBC_2.17 + 0 -0000000000010fc8 0000000600000401 R_AARCH64_GLOB_DAT 0000000000000000 __gmon_start__ + 0 -0000000000010fd8 0000000800000401 R_AARCH64_GLOB_DAT 0000000000000000 _ITM_registerTMCloneTable + 0 - -Relocation section '.rela.plt' at offset 0x598 contains 4 entries: - Offset Info Type Symbol's Value Symbol's Name + Addend -0000000000011000 0000000300000402 R_AARCH64_JUMP_SLOT 0000000000000000 __libc_start_main@GLIBC_2.34 + 0 -0000000000011008 0000000500000402 R_AARCH64_JUMP_SLOT 0000000000000000 __cxa_finalize@GLIBC_2.17 + 0 -0000000000011010 0000000600000402 R_AARCH64_JUMP_SLOT 0000000000000000 __gmon_start__ + 0 -0000000000011018 0000000700000402 R_AARCH64_JUMP_SLOT 0000000000000000 abort@GLIBC_2.17 + 0 - -Symbol table '.dynsym' contains 9 entries: - Num: Value Size Type Bind Vis Ndx Name - 0: 0000000000000000 0 NOTYPE LOCAL DEFAULT UND - 1: 00000000000005f8 0 SECTION LOCAL DEFAULT 11 .init - 2: 0000000000011020 0 SECTION LOCAL DEFAULT 23 .data - 3: 0000000000000000 0 FUNC GLOBAL DEFAULT UND __libc_start_main@GLIBC_2.34 (2) - 4: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_deregisterTMCloneTable - 5: 0000000000000000 0 FUNC WEAK DEFAULT UND __cxa_finalize@GLIBC_2.17 (3) - 6: 0000000000000000 0 NOTYPE WEAK DEFAULT UND __gmon_start__ - 7: 0000000000000000 0 FUNC GLOBAL DEFAULT UND abort@GLIBC_2.17 (3) - 8: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_registerTMCloneTable - -Symbol table '.symtab' contains 94 entries: - Num: Value Size Type Bind Vis Ndx Name - 0: 0000000000000000 0 NOTYPE LOCAL DEFAULT UND - 1: 0000000000000238 0 SECTION LOCAL DEFAULT 1 .interp - 2: 0000000000000254 0 SECTION LOCAL DEFAULT 2 .note.gnu.build-id - 3: 0000000000000278 0 SECTION LOCAL DEFAULT 3 .note.ABI-tag - 4: 0000000000000298 0 SECTION LOCAL DEFAULT 4 .gnu.hash - 5: 00000000000002b8 0 SECTION LOCAL DEFAULT 5 .dynsym - 6: 0000000000000390 0 SECTION LOCAL DEFAULT 6 .dynstr - 7: 000000000000041e 0 SECTION LOCAL DEFAULT 7 .gnu.version - 8: 0000000000000430 0 SECTION LOCAL DEFAULT 8 .gnu.version_r - 9: 0000000000000460 0 SECTION LOCAL DEFAULT 9 .rela.dyn - 10: 0000000000000598 0 SECTION LOCAL DEFAULT 10 .rela.plt - 11: 00000000000005f8 0 SECTION LOCAL DEFAULT 11 .init - 12: 0000000000000610 0 SECTION LOCAL DEFAULT 12 .plt - 13: 0000000000000680 0 SECTION LOCAL DEFAULT 13 .text - 14: 0000000000000838 0 SECTION LOCAL DEFAULT 14 .fini - 15: 000000000000084c 0 SECTION LOCAL DEFAULT 15 .rodata - 16: 0000000000000850 0 SECTION LOCAL DEFAULT 16 .eh_frame_hdr - 17: 00000000000008a8 0 SECTION LOCAL DEFAULT 17 .eh_frame - 18: 0000000000010db8 0 SECTION LOCAL DEFAULT 18 .init_array - 19: 0000000000010dc0 0 SECTION LOCAL DEFAULT 19 .fini_array - 20: 0000000000010dc8 0 SECTION LOCAL DEFAULT 20 .dynamic - 21: 0000000000010fa8 0 SECTION LOCAL DEFAULT 21 .got - 22: 0000000000010fe8 0 SECTION LOCAL DEFAULT 22 .got.plt - 23: 0000000000011020 0 SECTION LOCAL DEFAULT 23 .data - 24: 0000000000011050 0 SECTION LOCAL DEFAULT 24 .bss - 25: 0000000000000000 0 SECTION LOCAL DEFAULT 25 .comment - 26: 0000000000000000 0 FILE LOCAL DEFAULT ABS Scrt1.o - 27: 0000000000000278 0 NOTYPE LOCAL DEFAULT 3 $d - 28: 0000000000000278 32 OBJECT LOCAL DEFAULT 3 __abi_tag - 29: 0000000000000680 0 NOTYPE LOCAL DEFAULT 13 $x - 30: 00000000000008bc 0 NOTYPE LOCAL DEFAULT 17 $d - 31: 000000000000084c 0 NOTYPE LOCAL DEFAULT 15 $d - 32: 0000000000000000 0 FILE LOCAL DEFAULT ABS crti.o - 33: 00000000000006b4 0 NOTYPE LOCAL DEFAULT 13 $x - 34: 00000000000006b4 20 FUNC LOCAL DEFAULT 13 call_weak_fn - 35: 00000000000005f8 0 NOTYPE LOCAL DEFAULT 11 $x - 36: 0000000000000838 0 NOTYPE LOCAL DEFAULT 14 $x - 37: 0000000000000000 0 FILE LOCAL DEFAULT ABS crtn.o - 38: 0000000000000608 0 NOTYPE LOCAL DEFAULT 11 $x - 39: 0000000000000844 0 NOTYPE LOCAL DEFAULT 14 $x - 40: 0000000000000000 0 FILE LOCAL DEFAULT ABS crtstuff.c - 41: 00000000000006d0 0 NOTYPE LOCAL DEFAULT 13 $x - 42: 00000000000006d0 0 FUNC LOCAL DEFAULT 13 deregister_tm_clones - 43: 0000000000000700 0 FUNC LOCAL DEFAULT 13 register_tm_clones - 44: 0000000000011028 0 NOTYPE LOCAL DEFAULT 23 $d - 45: 0000000000000740 0 FUNC LOCAL DEFAULT 13 __do_global_dtors_aux - 46: 0000000000011050 1 OBJECT LOCAL DEFAULT 24 completed.0 - 47: 0000000000010dc0 0 NOTYPE LOCAL DEFAULT 19 $d - 48: 0000000000010dc0 0 OBJECT LOCAL DEFAULT 19 __do_global_dtors_aux_fini_array_entry - 49: 0000000000000790 0 FUNC LOCAL DEFAULT 13 frame_dummy - 50: 0000000000010db8 0 NOTYPE LOCAL DEFAULT 18 $d - 51: 0000000000010db8 0 OBJECT LOCAL DEFAULT 18 __frame_dummy_init_array_entry - 52: 00000000000008d0 0 NOTYPE LOCAL DEFAULT 17 $d - 53: 0000000000011050 0 NOTYPE LOCAL DEFAULT 24 $d - 54: 0000000000000000 0 FILE LOCAL DEFAULT ABS jumptable2.c - 55: 0000000000000794 0 NOTYPE LOCAL DEFAULT 13 $x.0 - 56: 0000000000011030 0 NOTYPE LOCAL DEFAULT 23 $d.1 - 57: 000000000000002a 0 NOTYPE LOCAL DEFAULT 25 $d.2 - 58: 0000000000000930 0 NOTYPE LOCAL DEFAULT 17 $d.3 - 59: 0000000000000000 0 FILE LOCAL DEFAULT ABS crtstuff.c - 60: 00000000000009a8 0 NOTYPE LOCAL DEFAULT 17 $d - 61: 00000000000009a8 0 OBJECT LOCAL DEFAULT 17 __FRAME_END__ - 62: 0000000000000000 0 FILE LOCAL DEFAULT ABS - 63: 0000000000010dc8 0 OBJECT LOCAL DEFAULT ABS _DYNAMIC - 64: 0000000000000850 0 NOTYPE LOCAL DEFAULT 16 __GNU_EH_FRAME_HDR - 65: 0000000000010fa8 0 OBJECT LOCAL DEFAULT ABS _GLOBAL_OFFSET_TABLE_ - 66: 0000000000000610 0 NOTYPE LOCAL DEFAULT 12 $x - 67: 0000000000000000 0 FUNC GLOBAL DEFAULT UND __libc_start_main@GLIBC_2.34 - 68: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_deregisterTMCloneTable - 69: 0000000000011020 0 NOTYPE WEAK DEFAULT 23 data_start - 70: 0000000000011050 0 NOTYPE GLOBAL DEFAULT 24 __bss_start__ - 71: 0000000000000000 0 FUNC WEAK DEFAULT UND __cxa_finalize@GLIBC_2.17 - 72: 0000000000011058 0 NOTYPE GLOBAL DEFAULT 24 _bss_end__ - 73: 0000000000011050 0 NOTYPE GLOBAL DEFAULT 23 _edata - 74: 0000000000011030 4 OBJECT GLOBAL DEFAULT 23 x - 75: 0000000000000838 0 FUNC GLOBAL HIDDEN 14 _fini - 76: 0000000000011058 0 NOTYPE GLOBAL DEFAULT 24 __bss_end__ - 77: 0000000000011020 0 NOTYPE GLOBAL DEFAULT 23 __data_start - 78: 0000000000000000 0 NOTYPE WEAK DEFAULT UND __gmon_start__ - 79: 0000000000011028 0 OBJECT GLOBAL HIDDEN 23 __dso_handle - 80: 0000000000000000 0 FUNC GLOBAL DEFAULT UND abort@GLIBC_2.17 - 81: 000000000000084c 4 OBJECT GLOBAL DEFAULT 15 _IO_stdin_used - 82: 0000000000000794 24 FUNC GLOBAL DEFAULT 13 add_two - 83: 0000000000011058 0 NOTYPE GLOBAL DEFAULT 24 _end - 84: 0000000000000680 52 FUNC GLOBAL DEFAULT 13 _start - 85: 0000000000011058 0 NOTYPE GLOBAL DEFAULT 24 __end__ - 86: 00000000000007ac 24 FUNC GLOBAL DEFAULT 13 add_six - 87: 0000000000011050 0 NOTYPE GLOBAL DEFAULT 24 __bss_start - 88: 00000000000007dc 92 FUNC GLOBAL DEFAULT 13 main - 89: 0000000000011050 0 OBJECT GLOBAL HIDDEN 23 __TMC_END__ - 90: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_registerTMCloneTable - 91: 0000000000011038 24 OBJECT GLOBAL DEFAULT 23 jump_table - 92: 00000000000005f8 0 FUNC GLOBAL HIDDEN 11 _init - 93: 00000000000007c4 24 FUNC GLOBAL DEFAULT 13 sub_seven diff --git a/src/test/correct/jumptable2/clang_pic/jumptable2_gtirb.expected b/src/test/correct/jumptable2/clang_pic/jumptable2_gtirb.expected index e81e9bb73..e4d4d8797 100644 --- a/src/test/correct/jumptable2/clang_pic/jumptable2_gtirb.expected +++ b/src/test/correct/jumptable2/clang_pic/jumptable2_gtirb.expected @@ -1,45 +1,33 @@ -var {:extern} CF: bv1; -var {:extern} Gamma_CF: bool; -var {:extern} Gamma_NF: bool; var {:extern} Gamma_R0: bool; -var {:extern} Gamma_R1: bool; +var {:extern} Gamma_R19: bool; var {:extern} Gamma_R29: bool; var {:extern} Gamma_R30: bool; var {:extern} Gamma_R31: bool; var {:extern} Gamma_R8: bool; var {:extern} Gamma_R9: bool; -var {:extern} Gamma_VF: bool; -var {:extern} Gamma_ZF: bool; var {:extern} Gamma_mem: [bv64]bool; var {:extern} Gamma_stack: [bv64]bool; -var {:extern} NF: bv1; var {:extern} R0: bv64; -var {:extern} R1: bv64; +var {:extern} R19: bv64; var {:extern} R29: bv64; var {:extern} R30: bv64; var {:extern} R31: bv64; var {:extern} R8: bv64; var {:extern} R9: bv64; -var {:extern} VF: bv1; -var {:extern} ZF: bv1; var {:extern} mem: [bv64]bv8; var {:extern} stack: [bv64]bv8; const {:extern} $_IO_stdin_used_addr: bv64; -axiom ($_IO_stdin_used_addr == 2124bv64); +axiom ($_IO_stdin_used_addr == 2500bv64); const {:extern} $jump_table_addr: bv64; -axiom ($jump_table_addr == 69688bv64); +axiom ($jump_table_addr == 131096bv64); const {:extern} $x_addr: bv64; -axiom ($x_addr == 69680bv64); +axiom ($x_addr == 131088bv64); function {:extern} L(mem$in: [bv64]bv8, index: bv64) returns (bool) { false } function {:extern} {:bvbuiltin "bvadd"} bvadd32(bv32, bv32) returns (bv32); -function {:extern} {:bvbuiltin "bvadd"} bvadd33(bv33, bv33) returns (bv33); function {:extern} {:bvbuiltin "bvadd"} bvadd64(bv64, bv64) returns (bv64); -function {:extern} {:bvbuiltin "bvcomp"} bvcomp32(bv32, bv32) returns (bv1); -function {:extern} {:bvbuiltin "bvcomp"} bvcomp33(bv33, bv33) returns (bv1); -function {:extern} {:bvbuiltin "bvnot"} bvnot1(bv1) returns (bv1); function {:extern} gamma_load32(gammaMap: [bv64]bool, index: bv64) returns (bool) { (gammaMap[bvadd64(index, 3bv64)] && (gammaMap[bvadd64(index, 2bv64)] && (gammaMap[bvadd64(index, 1bv64)] && gammaMap[index]))) } @@ -72,23 +60,21 @@ function {:extern} memory_store64_le(memory: [bv64]bv8, index: bv64, value: bv64 memory[index := value[8:0]][bvadd64(index, 1bv64) := value[16:8]][bvadd64(index, 2bv64) := value[24:16]][bvadd64(index, 3bv64) := value[32:24]][bvadd64(index, 4bv64) := value[40:32]][bvadd64(index, 5bv64) := value[48:40]][bvadd64(index, 6bv64) := value[56:48]][bvadd64(index, 7bv64) := value[64:56]] } -function {:extern} {:bvbuiltin "sign_extend 1"} sign_extend1_32(bv32) returns (bv33); -function {:extern} {:bvbuiltin "zero_extend 1"} zero_extend1_32(bv32) returns (bv33); function {:extern} {:bvbuiltin "zero_extend 32"} zero_extend32_32(bv32) returns (bv64); procedure {:extern} rely(); modifies Gamma_mem, mem; ensures (Gamma_mem == old(Gamma_mem)); ensures (mem == old(mem)); - free ensures (memory_load32_le(mem, 2124bv64) == 131073bv32); - free ensures (memory_load64_le(mem, 69048bv64) == 1936bv64); - free ensures (memory_load64_le(mem, 69056bv64) == 1856bv64); - free ensures (memory_load64_le(mem, 69568bv64) == 69680bv64); - free ensures (memory_load64_le(mem, 69584bv64) == 2012bv64); - free ensures (memory_load64_le(mem, 69600bv64) == 69688bv64); - free ensures (memory_load64_le(mem, 69672bv64) == 69672bv64); - free ensures (memory_load64_le(mem, 69688bv64) == 1940bv64); - free ensures (memory_load64_le(mem, 69696bv64) == 1964bv64); - free ensures (memory_load64_le(mem, 69704bv64) == 1988bv64); + free ensures (memory_load32_le(mem, 2500bv64) == 131073bv32); + free ensures (memory_load64_le(mem, 130424bv64) == 2320bv64); + free ensures (memory_load64_le(mem, 130432bv64) == 2240bv64); + free ensures (memory_load64_le(mem, 131032bv64) == 131088bv64); + free ensures (memory_load64_le(mem, 131048bv64) == 2420bv64); + free ensures (memory_load64_le(mem, 131064bv64) == 131096bv64); + free ensures (memory_load64_le(mem, 131080bv64) == 131080bv64); + free ensures (memory_load64_le(mem, 131096bv64) == 2324bv64); + free ensures (memory_load64_le(mem, 131104bv64) == 2356bv64); + free ensures (memory_load64_le(mem, 131112bv64) == 2388bv64); procedure {:extern} rely_transitive(); modifies Gamma_mem, mem; @@ -106,280 +92,262 @@ procedure {:extern} rely_reflexive(); procedure {:extern} guarantee_reflexive(); modifies Gamma_mem, mem; -procedure add_two_1940(); +procedure add_two(); modifies Gamma_R8, Gamma_R9, Gamma_mem, R8, R9, mem; - free requires (memory_load32_le(mem, 2124bv64) == 131073bv32); - free requires (memory_load64_le(mem, 69048bv64) == 1936bv64); - free requires (memory_load64_le(mem, 69056bv64) == 1856bv64); - free requires (memory_load64_le(mem, 69568bv64) == 69680bv64); - free requires (memory_load64_le(mem, 69584bv64) == 2012bv64); - free requires (memory_load64_le(mem, 69600bv64) == 69688bv64); - free requires (memory_load64_le(mem, 69672bv64) == 69672bv64); - free requires (memory_load64_le(mem, 69688bv64) == 1940bv64); - free requires (memory_load64_le(mem, 69696bv64) == 1964bv64); - free requires (memory_load64_le(mem, 69704bv64) == 1988bv64); - free ensures (memory_load32_le(mem, 2124bv64) == 131073bv32); - free ensures (memory_load64_le(mem, 69048bv64) == 1936bv64); - free ensures (memory_load64_le(mem, 69056bv64) == 1856bv64); - free ensures (memory_load64_le(mem, 69568bv64) == 69680bv64); - free ensures (memory_load64_le(mem, 69584bv64) == 2012bv64); - free ensures (memory_load64_le(mem, 69600bv64) == 69688bv64); - free ensures (memory_load64_le(mem, 69672bv64) == 69672bv64); - free ensures (memory_load64_le(mem, 69688bv64) == 1940bv64); - free ensures (memory_load64_le(mem, 69696bv64) == 1964bv64); - free ensures (memory_load64_le(mem, 69704bv64) == 1988bv64); + free requires (memory_load32_le(mem, 2500bv64) == 131073bv32); + free requires (memory_load64_le(mem, 130424bv64) == 2320bv64); + free requires (memory_load64_le(mem, 130432bv64) == 2240bv64); + free requires (memory_load64_le(mem, 131032bv64) == 131088bv64); + free requires (memory_load64_le(mem, 131048bv64) == 2420bv64); + free requires (memory_load64_le(mem, 131064bv64) == 131096bv64); + free requires (memory_load64_le(mem, 131080bv64) == 131080bv64); + free requires (memory_load64_le(mem, 131096bv64) == 2324bv64); + free requires (memory_load64_le(mem, 131104bv64) == 2356bv64); + free requires (memory_load64_le(mem, 131112bv64) == 2388bv64); + free ensures (memory_load32_le(mem, 2500bv64) == 131073bv32); + free ensures (memory_load64_le(mem, 130424bv64) == 2320bv64); + free ensures (memory_load64_le(mem, 130432bv64) == 2240bv64); + free ensures (memory_load64_le(mem, 131032bv64) == 131088bv64); + free ensures (memory_load64_le(mem, 131048bv64) == 2420bv64); + free ensures (memory_load64_le(mem, 131064bv64) == 131096bv64); + free ensures (memory_load64_le(mem, 131080bv64) == 131080bv64); + free ensures (memory_load64_le(mem, 131096bv64) == 2324bv64); + free ensures (memory_load64_le(mem, 131104bv64) == 2356bv64); + free ensures (memory_load64_le(mem, 131112bv64) == 2388bv64); -implementation add_two_1940() +implementation add_two() { - var Gamma_load15: bool; - var Gamma_load16: bool; - var load15: bv64; - var load16: bv32; - add_two_1940__0__r_TPM3RHSfm3u2v1UY0bLw: - assume {:captureState "add_two_1940__0__r_TPM3RHSfm3u2v1UY0bLw"} true; - R9, Gamma_R9 := 65536bv64, true; + var $load6: bv64; + var $load7: bv32; + var Gamma_$load6: bool; + var Gamma_$load7: bool; + $add_two$__0__$SFN4dpBgSO2bPUu0fyDluw: + assume {:captureState "$add_two$__0__$SFN4dpBgSO2bPUu0fyDluw"} true; + R8, Gamma_R8 := 126976bv64, true; call rely(); - load15, Gamma_load15 := memory_load64_le(mem, bvadd64(R9, 4032bv64)), (gamma_load64(Gamma_mem, bvadd64(R9, 4032bv64)) || L(mem, bvadd64(R9, 4032bv64))); - R9, Gamma_R9 := load15, Gamma_load15; + $load6, Gamma_$load6 := memory_load64_le(mem, bvadd64(R8, 4056bv64)), (gamma_load64(Gamma_mem, bvadd64(R8, 4056bv64)) || L(mem, bvadd64(R8, 4056bv64))); + R8, Gamma_R8 := $load6, Gamma_$load6; call rely(); - load16, Gamma_load16 := memory_load32_le(mem, R9), (gamma_load32(Gamma_mem, R9) || L(mem, R9)); - R8, Gamma_R8 := zero_extend32_32(load16), Gamma_load16; - R8, Gamma_R8 := zero_extend32_32(bvadd32(R8[32:0], 2bv32)), Gamma_R8; + $load7, Gamma_$load7 := memory_load32_le(mem, R8), (gamma_load32(Gamma_mem, R8) || L(mem, R8)); + R9, Gamma_R9 := zero_extend32_32($load7), Gamma_$load7; + R9, Gamma_R9 := zero_extend32_32(bvadd32(R9[32:0], 2bv32)), Gamma_R9; call rely(); - assert (L(mem, R9) ==> Gamma_R8); - mem, Gamma_mem := memory_store32_le(mem, R9, R8[32:0]), gamma_store32(Gamma_mem, R9, Gamma_R8); - assume {:captureState "1956_0"} true; - goto add_two_1940_basil_return; - add_two_1940_basil_return: - assume {:captureState "add_two_1940_basil_return"} true; + assert (L(mem, R8) ==> Gamma_R9); + mem, Gamma_mem := memory_store32_le(mem, R8, R9[32:0]), gamma_store32(Gamma_mem, R8, Gamma_R9); + assume {:captureState "2340$0"} true; + R8, Gamma_R8 := 0bv64, true; + R9, Gamma_R9 := 0bv64, true; + goto add_two_basil_return; + add_two_basil_return: + assume {:captureState "add_two_basil_return"} true; return; } -procedure add_six_1964(); - modifies Gamma_R8, Gamma_R9, Gamma_mem, R8, R9, mem; - free requires (memory_load32_le(mem, 2124bv64) == 131073bv32); - free requires (memory_load64_le(mem, 69048bv64) == 1936bv64); - free requires (memory_load64_le(mem, 69056bv64) == 1856bv64); - free requires (memory_load64_le(mem, 69568bv64) == 69680bv64); - free requires (memory_load64_le(mem, 69584bv64) == 2012bv64); - free requires (memory_load64_le(mem, 69600bv64) == 69688bv64); - free requires (memory_load64_le(mem, 69672bv64) == 69672bv64); - free requires (memory_load64_le(mem, 69688bv64) == 1940bv64); - free requires (memory_load64_le(mem, 69696bv64) == 1964bv64); - free requires (memory_load64_le(mem, 69704bv64) == 1988bv64); - free ensures (memory_load32_le(mem, 2124bv64) == 131073bv32); - free ensures (memory_load64_le(mem, 69048bv64) == 1936bv64); - free ensures (memory_load64_le(mem, 69056bv64) == 1856bv64); - free ensures (memory_load64_le(mem, 69568bv64) == 69680bv64); - free ensures (memory_load64_le(mem, 69584bv64) == 2012bv64); - free ensures (memory_load64_le(mem, 69600bv64) == 69688bv64); - free ensures (memory_load64_le(mem, 69672bv64) == 69672bv64); - free ensures (memory_load64_le(mem, 69688bv64) == 1940bv64); - free ensures (memory_load64_le(mem, 69696bv64) == 1964bv64); - free ensures (memory_load64_le(mem, 69704bv64) == 1988bv64); +procedure main(); + modifies Gamma_R0, Gamma_R19, Gamma_R29, Gamma_R30, Gamma_R31, Gamma_R8, Gamma_R9, Gamma_mem, Gamma_stack, R0, R19, R29, R30, R31, R8, R9, mem, stack; + free requires (memory_load64_le(mem, 131072bv64) == 0bv64); + free requires (memory_load64_le(mem, 131080bv64) == 131080bv64); + free requires (memory_load64_le(mem, 131088bv64) == 5bv64); + free requires (memory_load64_le(mem, 131096bv64) == 2324bv64); + free requires (memory_load64_le(mem, 131104bv64) == 2356bv64); + free requires (memory_load64_le(mem, 131112bv64) == 2388bv64); + free requires (memory_load32_le(mem, 2500bv64) == 131073bv32); + free requires (memory_load64_le(mem, 130424bv64) == 2320bv64); + free requires (memory_load64_le(mem, 130432bv64) == 2240bv64); + free requires (memory_load64_le(mem, 131032bv64) == 131088bv64); + free requires (memory_load64_le(mem, 131048bv64) == 2420bv64); + free requires (memory_load64_le(mem, 131064bv64) == 131096bv64); + free requires (memory_load64_le(mem, 131080bv64) == 131080bv64); + free requires (memory_load64_le(mem, 131096bv64) == 2324bv64); + free requires (memory_load64_le(mem, 131104bv64) == 2356bv64); + free requires (memory_load64_le(mem, 131112bv64) == 2388bv64); + free ensures (Gamma_R19 == old(Gamma_R19)); + free ensures (Gamma_R29 == old(Gamma_R29)); + free ensures (Gamma_R31 == old(Gamma_R31)); + free ensures (R19 == old(R19)); + free ensures (R29 == old(R29)); + free ensures (R31 == old(R31)); + free ensures (memory_load32_le(mem, 2500bv64) == 131073bv32); + free ensures (memory_load64_le(mem, 130424bv64) == 2320bv64); + free ensures (memory_load64_le(mem, 130432bv64) == 2240bv64); + free ensures (memory_load64_le(mem, 131032bv64) == 131088bv64); + free ensures (memory_load64_le(mem, 131048bv64) == 2420bv64); + free ensures (memory_load64_le(mem, 131064bv64) == 131096bv64); + free ensures (memory_load64_le(mem, 131080bv64) == 131080bv64); + free ensures (memory_load64_le(mem, 131096bv64) == 2324bv64); + free ensures (memory_load64_le(mem, 131104bv64) == 2356bv64); + free ensures (memory_load64_le(mem, 131112bv64) == 2388bv64); -implementation add_six_1964() +implementation main() { - var Gamma_load18: bool; - var Gamma_load19: bool; - var load18: bv64; - var load19: bv32; - add_six_1964__0__WmWCAeM7QYqeVhx9woNn_g: - assume {:captureState "add_six_1964__0__WmWCAeM7QYqeVhx9woNn_g"} true; - R9, Gamma_R9 := 65536bv64, true; + var $load17: bv64; + var $load18: bv64; + var $load19: bv64; + var $load20: bv64; + var $load21: bv64; + var $load22: bv64; + var $load23: bv64; + var Cse0__5$1$0: bv64; + var Gamma_$load17: bool; + var Gamma_$load18: bool; + var Gamma_$load19: bool; + var Gamma_$load20: bool; + var Gamma_$load21: bool; + var Gamma_$load22: bool; + var Gamma_$load23: bool; + var Gamma_Cse0__5$1$0: bool; + $main$__0__$OuTzy8qRTci75taVjGinFQ: + assume {:captureState "$main$__0__$OuTzy8qRTci75taVjGinFQ"} true; + Cse0__5$1$0, Gamma_Cse0__5$1$0 := bvadd64(R31, 18446744073709551584bv64), Gamma_R31; + stack, Gamma_stack := memory_store64_le(stack, Cse0__5$1$0, R29), gamma_store64(Gamma_stack, Cse0__5$1$0, Gamma_R29); + assume {:captureState "2420$1"} true; + stack, Gamma_stack := memory_store64_le(stack, bvadd64(Cse0__5$1$0, 8bv64), R30), gamma_store64(Gamma_stack, bvadd64(Cse0__5$1$0, 8bv64), Gamma_R30); + assume {:captureState "2420$2"} true; + R31, Gamma_R31 := Cse0__5$1$0, Gamma_Cse0__5$1$0; + stack, Gamma_stack := memory_store64_le(stack, bvadd64(R31, 16bv64), R19), gamma_store64(Gamma_stack, bvadd64(R31, 16bv64), Gamma_R19); + assume {:captureState "2424$0"} true; + R29, Gamma_R29 := R31, Gamma_R31; + R19, Gamma_R19 := 126976bv64, true; + call rely(); + $load20, Gamma_$load20 := memory_load64_le(mem, bvadd64(R19, 4088bv64)), (gamma_load64(Gamma_mem, bvadd64(R19, 4088bv64)) || L(mem, bvadd64(R19, 4088bv64))); + R19, Gamma_R19 := $load20, Gamma_$load20; call rely(); - load18, Gamma_load18 := memory_load64_le(mem, bvadd64(R9, 4032bv64)), (gamma_load64(Gamma_mem, bvadd64(R9, 4032bv64)) || L(mem, bvadd64(R9, 4032bv64))); - R9, Gamma_R9 := load18, Gamma_load18; + $load21, Gamma_$load21 := memory_load64_le(mem, R19), (gamma_load64(Gamma_mem, R19) || L(mem, R19)); + R8, Gamma_R8 := $load21, Gamma_$load21; + R30, Gamma_R30 := 2076bv64, true; + call add_two(); + goto $main$__1__$rCSSdLZcRB2TKAu9h~WCqg; + $main$__1__$rCSSdLZcRB2TKAu9h~WCqg: + assume {:captureState "$main$__1__$rCSSdLZcRB2TKAu9h~WCqg"} true; call rely(); - load19, Gamma_load19 := memory_load32_le(mem, R9), (gamma_load32(Gamma_mem, R9) || L(mem, R9)); - R8, Gamma_R8 := zero_extend32_32(load19), Gamma_load19; - R8, Gamma_R8 := zero_extend32_32(bvadd32(R8[32:0], 6bv32)), Gamma_R8; + $load23, Gamma_$load23 := memory_load64_le(mem, bvadd64(R19, 8bv64)), (gamma_load64(Gamma_mem, bvadd64(R19, 8bv64)) || L(mem, bvadd64(R19, 8bv64))); + R8, Gamma_R8 := $load23, Gamma_$load23; + R30, Gamma_R30 := 2056bv64, true; + call add_six(); + goto $main$__2__$ZLfuz7OtTNOS9GLtqSI1gg; + $main$__2__$ZLfuz7OtTNOS9GLtqSI1gg: + assume {:captureState "$main$__2__$ZLfuz7OtTNOS9GLtqSI1gg"} true; call rely(); - assert (L(mem, R9) ==> Gamma_R8); - mem, Gamma_mem := memory_store32_le(mem, R9, R8[32:0]), gamma_store32(Gamma_mem, R9, Gamma_R8); - assume {:captureState "1980_0"} true; - goto add_six_1964_basil_return; - add_six_1964_basil_return: - assume {:captureState "add_six_1964_basil_return"} true; + $load22, Gamma_$load22 := memory_load64_le(mem, bvadd64(R19, 16bv64)), (gamma_load64(Gamma_mem, bvadd64(R19, 16bv64)) || L(mem, bvadd64(R19, 16bv64))); + R8, Gamma_R8 := $load22, Gamma_$load22; + R30, Gamma_R30 := 2056bv64, true; + call sub_seven(); + goto $main$__3__$HVqN0_3~RWiLPKsHRvUqeg; + $main$__3__$HVqN0_3~RWiLPKsHRvUqeg: + assume {:captureState "$main$__3__$HVqN0_3~RWiLPKsHRvUqeg"} true; + R0, Gamma_R0 := 0bv64, true; + $load17, Gamma_$load17 := memory_load64_le(stack, bvadd64(R31, 16bv64)), gamma_load64(Gamma_stack, bvadd64(R31, 16bv64)); + R19, Gamma_R19 := $load17, Gamma_$load17; + $load18, Gamma_$load18 := memory_load64_le(stack, R31), gamma_load64(Gamma_stack, R31); + R29, Gamma_R29 := $load18, Gamma_$load18; + $load19, Gamma_$load19 := memory_load64_le(stack, bvadd64(R31, 8bv64)), gamma_load64(Gamma_stack, bvadd64(R31, 8bv64)); + R30, Gamma_R30 := $load19, Gamma_$load19; + R31, Gamma_R31 := bvadd64(R31, 32bv64), Gamma_R31; + goto main_basil_return; + main_basil_return: + assume {:captureState "main_basil_return"} true; return; } -procedure main_2012(); - modifies CF, Gamma_CF, Gamma_NF, Gamma_R0, Gamma_R29, Gamma_R30, Gamma_R31, Gamma_R8, Gamma_R9, Gamma_VF, Gamma_ZF, Gamma_mem, Gamma_stack, NF, R0, R29, R30, R31, R8, R9, VF, ZF, mem, stack; - free requires (memory_load64_le(mem, 69664bv64) == 0bv64); - free requires (memory_load64_le(mem, 69672bv64) == 69672bv64); - free requires (memory_load64_le(mem, 69680bv64) == 5bv64); - free requires (memory_load64_le(mem, 69688bv64) == 1940bv64); - free requires (memory_load64_le(mem, 69696bv64) == 1964bv64); - free requires (memory_load64_le(mem, 69704bv64) == 1988bv64); - free requires (memory_load32_le(mem, 2124bv64) == 131073bv32); - free requires (memory_load64_le(mem, 69048bv64) == 1936bv64); - free requires (memory_load64_le(mem, 69056bv64) == 1856bv64); - free requires (memory_load64_le(mem, 69568bv64) == 69680bv64); - free requires (memory_load64_le(mem, 69584bv64) == 2012bv64); - free requires (memory_load64_le(mem, 69600bv64) == 69688bv64); - free requires (memory_load64_le(mem, 69672bv64) == 69672bv64); - free requires (memory_load64_le(mem, 69688bv64) == 1940bv64); - free requires (memory_load64_le(mem, 69696bv64) == 1964bv64); - free requires (memory_load64_le(mem, 69704bv64) == 1988bv64); - free ensures (Gamma_R29 == old(Gamma_R29)); - free ensures (Gamma_R31 == old(Gamma_R31)); - free ensures (R29 == old(R29)); - free ensures (R31 == old(R31)); - free ensures (memory_load32_le(mem, 2124bv64) == 131073bv32); - free ensures (memory_load64_le(mem, 69048bv64) == 1936bv64); - free ensures (memory_load64_le(mem, 69056bv64) == 1856bv64); - free ensures (memory_load64_le(mem, 69568bv64) == 69680bv64); - free ensures (memory_load64_le(mem, 69584bv64) == 2012bv64); - free ensures (memory_load64_le(mem, 69600bv64) == 69688bv64); - free ensures (memory_load64_le(mem, 69672bv64) == 69672bv64); - free ensures (memory_load64_le(mem, 69688bv64) == 1940bv64); - free ensures (memory_load64_le(mem, 69696bv64) == 1964bv64); - free ensures (memory_load64_le(mem, 69704bv64) == 1988bv64); +procedure add_six(); + modifies Gamma_R8, Gamma_R9, Gamma_mem, R8, R9, mem; + free requires (memory_load32_le(mem, 2500bv64) == 131073bv32); + free requires (memory_load64_le(mem, 130424bv64) == 2320bv64); + free requires (memory_load64_le(mem, 130432bv64) == 2240bv64); + free requires (memory_load64_le(mem, 131032bv64) == 131088bv64); + free requires (memory_load64_le(mem, 131048bv64) == 2420bv64); + free requires (memory_load64_le(mem, 131064bv64) == 131096bv64); + free requires (memory_load64_le(mem, 131080bv64) == 131080bv64); + free requires (memory_load64_le(mem, 131096bv64) == 2324bv64); + free requires (memory_load64_le(mem, 131104bv64) == 2356bv64); + free requires (memory_load64_le(mem, 131112bv64) == 2388bv64); + free ensures (memory_load32_le(mem, 2500bv64) == 131073bv32); + free ensures (memory_load64_le(mem, 130424bv64) == 2320bv64); + free ensures (memory_load64_le(mem, 130432bv64) == 2240bv64); + free ensures (memory_load64_le(mem, 131032bv64) == 131088bv64); + free ensures (memory_load64_le(mem, 131048bv64) == 2420bv64); + free ensures (memory_load64_le(mem, 131064bv64) == 131096bv64); + free ensures (memory_load64_le(mem, 131080bv64) == 131080bv64); + free ensures (memory_load64_le(mem, 131096bv64) == 2324bv64); + free ensures (memory_load64_le(mem, 131104bv64) == 2356bv64); + free ensures (memory_load64_le(mem, 131112bv64) == 2388bv64); -implementation main_2012() +implementation add_six() { - var Cse0__5_0_1: bv64; - var Cse0__5_2_1: bv64; - var Gamma_Cse0__5_0_1: bool; - var Gamma_Cse0__5_2_1: bool; - var Gamma_load20: bool; - var Gamma_load21: bool; - var Gamma_load22: bool; - var Gamma_load23: bool; - var Gamma_load24: bool; - var Gamma_load25: bool; - var Gamma_load26: bool; - var Gamma_load27: bool; - var Gamma_load28: bool; - var load20: bv64; - var load21: bv64; - var load22: bv64; - var load23: bv64; - var load24: bv32; - var load25: bv64; - var load26: bv64; - var load27: bv64; - var load28: bv64; - main_2012__0__EvxJkgQzT1q~MAbs_DZI3w: - assume {:captureState "main_2012__0__EvxJkgQzT1q~MAbs_DZI3w"} true; - R31, Gamma_R31 := bvadd64(R31, 18446744073709551568bv64), Gamma_R31; - Cse0__5_0_1, Gamma_Cse0__5_0_1 := bvadd64(R31, 32bv64), Gamma_R31; - stack, Gamma_stack := memory_store64_le(stack, Cse0__5_0_1, R29), gamma_store64(Gamma_stack, Cse0__5_0_1, Gamma_R29); - assume {:captureState "2016_1"} true; - stack, Gamma_stack := memory_store64_le(stack, bvadd64(Cse0__5_0_1, 8bv64), R30), gamma_store64(Gamma_stack, bvadd64(Cse0__5_0_1, 8bv64), Gamma_R30); - assume {:captureState "2016_2"} true; - R29, Gamma_R29 := bvadd64(R31, 32bv64), Gamma_R31; - R8, Gamma_R8 := 65536bv64, true; - call rely(); - load20, Gamma_load20 := memory_load64_le(mem, bvadd64(R8, 4064bv64)), (gamma_load64(Gamma_mem, bvadd64(R8, 4064bv64)) || L(mem, bvadd64(R8, 4064bv64))); - R8, Gamma_R8 := load20, Gamma_load20; - stack, Gamma_stack := memory_store64_le(stack, R31, R8), gamma_store64(Gamma_stack, R31, Gamma_R8); - assume {:captureState "2032_0"} true; - R9, Gamma_R9 := 0bv64, true; - stack, Gamma_stack := memory_store32_le(stack, bvadd64(R31, 12bv64), R9[32:0]), gamma_store32(Gamma_stack, bvadd64(R31, 12bv64), Gamma_R9); - assume {:captureState "2040_0"} true; - stack, Gamma_stack := memory_store32_le(stack, bvadd64(R29, 18446744073709551612bv64), 0bv32), gamma_store32(Gamma_stack, bvadd64(R29, 18446744073709551612bv64), true); - assume {:captureState "2044_0"} true; - stack, Gamma_stack := memory_store32_le(stack, bvadd64(R29, 18446744073709551608bv64), R0[32:0]), gamma_store32(Gamma_stack, bvadd64(R29, 18446744073709551608bv64), Gamma_R0); - assume {:captureState "2048_0"} true; - stack, Gamma_stack := memory_store64_le(stack, bvadd64(R31, 16bv64), R1), gamma_store64(Gamma_stack, bvadd64(R31, 16bv64), Gamma_R1); - assume {:captureState "2052_0"} true; + var $load24: bv64; + var $load25: bv32; + var Gamma_$load24: bool; + var Gamma_$load25: bool; + $add_six$__0__$mmpaLvZYQk2b8selWCLriA: + assume {:captureState "$add_six$__0__$mmpaLvZYQk2b8selWCLriA"} true; + R8, Gamma_R8 := 126976bv64, true; call rely(); - load21, Gamma_load21 := memory_load64_le(mem, R8), (gamma_load64(Gamma_mem, R8) || L(mem, R8)); - R8, Gamma_R8 := load21, Gamma_load21; - R30, Gamma_R30 := 2064bv64, true; - call add_two_1940(); - goto main_2012__1__~R7GAmlPRJGIPLWxHDibcw; - main_2012__1__~R7GAmlPRJGIPLWxHDibcw: - assume {:captureState "main_2012__1__~R7GAmlPRJGIPLWxHDibcw"} true; - load27, Gamma_load27 := memory_load64_le(stack, R31), gamma_load64(Gamma_stack, R31); - R8, Gamma_R8 := load27, Gamma_load27; + $load24, Gamma_$load24 := memory_load64_le(mem, bvadd64(R8, 4056bv64)), (gamma_load64(Gamma_mem, bvadd64(R8, 4056bv64)) || L(mem, bvadd64(R8, 4056bv64))); + R8, Gamma_R8 := $load24, Gamma_$load24; call rely(); - load28, Gamma_load28 := memory_load64_le(mem, bvadd64(R8, 8bv64)), (gamma_load64(Gamma_mem, bvadd64(R8, 8bv64)) || L(mem, bvadd64(R8, 8bv64))); - R8, Gamma_R8 := load28, Gamma_load28; - R30, Gamma_R30 := 2064bv64, true; - call add_six_1964(); - goto main_2012__2__N2O4Vfx1QgWyqbECmi5prA; - main_2012__2__N2O4Vfx1QgWyqbECmi5prA: - assume {:captureState "main_2012__2__N2O4Vfx1QgWyqbECmi5prA"} true; - load22, Gamma_load22 := memory_load64_le(stack, R31), gamma_load64(Gamma_stack, R31); - R8, Gamma_R8 := load22, Gamma_load22; + $load25, Gamma_$load25 := memory_load32_le(mem, R8), (gamma_load32(Gamma_mem, R8) || L(mem, R8)); + R9, Gamma_R9 := zero_extend32_32($load25), Gamma_$load25; + R9, Gamma_R9 := zero_extend32_32(bvadd32(R9[32:0], 6bv32)), Gamma_R9; call rely(); - load23, Gamma_load23 := memory_load64_le(mem, bvadd64(R8, 16bv64)), (gamma_load64(Gamma_mem, bvadd64(R8, 16bv64)) || L(mem, bvadd64(R8, 16bv64))); - R8, Gamma_R8 := load23, Gamma_load23; - R30, Gamma_R30 := 2064bv64, true; - call sub_seven_1988(); - goto main_2012__3__Ql81hl5HThuEPpygsxdjXA; - main_2012__3__Ql81hl5HThuEPpygsxdjXA: - assume {:captureState "main_2012__3__Ql81hl5HThuEPpygsxdjXA"} true; - load24, Gamma_load24 := memory_load32_le(stack, bvadd64(R31, 12bv64)), gamma_load32(Gamma_stack, bvadd64(R31, 12bv64)); - R0, Gamma_R0 := zero_extend32_32(load24), Gamma_load24; - Cse0__5_2_1, Gamma_Cse0__5_2_1 := bvadd64(R31, 32bv64), Gamma_R31; - load25, Gamma_load25 := memory_load64_le(stack, Cse0__5_2_1), gamma_load64(Gamma_stack, Cse0__5_2_1); - R29, Gamma_R29 := load25, Gamma_load25; - load26, Gamma_load26 := memory_load64_le(stack, bvadd64(Cse0__5_2_1, 8bv64)), gamma_load64(Gamma_stack, bvadd64(Cse0__5_2_1, 8bv64)); - R30, Gamma_R30 := load26, Gamma_load26; - R31, Gamma_R31 := bvadd64(R31, 48bv64), Gamma_R31; - goto main_2012_basil_return; - main_2012_basil_return: - assume {:captureState "main_2012_basil_return"} true; + assert (L(mem, R8) ==> Gamma_R9); + mem, Gamma_mem := memory_store32_le(mem, R8, R9[32:0]), gamma_store32(Gamma_mem, R8, Gamma_R9); + assume {:captureState "2372$0"} true; + R8, Gamma_R8 := 0bv64, true; + R9, Gamma_R9 := 0bv64, true; + goto add_six_basil_return; + add_six_basil_return: + assume {:captureState "add_six_basil_return"} true; return; } -procedure sub_seven_1988(); - modifies CF, Gamma_CF, Gamma_NF, Gamma_R8, Gamma_R9, Gamma_VF, Gamma_ZF, Gamma_mem, NF, R8, R9, VF, ZF, mem; - free requires (memory_load32_le(mem, 2124bv64) == 131073bv32); - free requires (memory_load64_le(mem, 69048bv64) == 1936bv64); - free requires (memory_load64_le(mem, 69056bv64) == 1856bv64); - free requires (memory_load64_le(mem, 69568bv64) == 69680bv64); - free requires (memory_load64_le(mem, 69584bv64) == 2012bv64); - free requires (memory_load64_le(mem, 69600bv64) == 69688bv64); - free requires (memory_load64_le(mem, 69672bv64) == 69672bv64); - free requires (memory_load64_le(mem, 69688bv64) == 1940bv64); - free requires (memory_load64_le(mem, 69696bv64) == 1964bv64); - free requires (memory_load64_le(mem, 69704bv64) == 1988bv64); - free ensures (memory_load32_le(mem, 2124bv64) == 131073bv32); - free ensures (memory_load64_le(mem, 69048bv64) == 1936bv64); - free ensures (memory_load64_le(mem, 69056bv64) == 1856bv64); - free ensures (memory_load64_le(mem, 69568bv64) == 69680bv64); - free ensures (memory_load64_le(mem, 69584bv64) == 2012bv64); - free ensures (memory_load64_le(mem, 69600bv64) == 69688bv64); - free ensures (memory_load64_le(mem, 69672bv64) == 69672bv64); - free ensures (memory_load64_le(mem, 69688bv64) == 1940bv64); - free ensures (memory_load64_le(mem, 69696bv64) == 1964bv64); - free ensures (memory_load64_le(mem, 69704bv64) == 1988bv64); +procedure sub_seven(); + modifies Gamma_R8, Gamma_R9, Gamma_mem, R8, R9, mem; + free requires (memory_load32_le(mem, 2500bv64) == 131073bv32); + free requires (memory_load64_le(mem, 130424bv64) == 2320bv64); + free requires (memory_load64_le(mem, 130432bv64) == 2240bv64); + free requires (memory_load64_le(mem, 131032bv64) == 131088bv64); + free requires (memory_load64_le(mem, 131048bv64) == 2420bv64); + free requires (memory_load64_le(mem, 131064bv64) == 131096bv64); + free requires (memory_load64_le(mem, 131080bv64) == 131080bv64); + free requires (memory_load64_le(mem, 131096bv64) == 2324bv64); + free requires (memory_load64_le(mem, 131104bv64) == 2356bv64); + free requires (memory_load64_le(mem, 131112bv64) == 2388bv64); + free ensures (memory_load32_le(mem, 2500bv64) == 131073bv32); + free ensures (memory_load64_le(mem, 130424bv64) == 2320bv64); + free ensures (memory_load64_le(mem, 130432bv64) == 2240bv64); + free ensures (memory_load64_le(mem, 131032bv64) == 131088bv64); + free ensures (memory_load64_le(mem, 131048bv64) == 2420bv64); + free ensures (memory_load64_le(mem, 131064bv64) == 131096bv64); + free ensures (memory_load64_le(mem, 131080bv64) == 131080bv64); + free ensures (memory_load64_le(mem, 131096bv64) == 2324bv64); + free ensures (memory_load64_le(mem, 131104bv64) == 2356bv64); + free ensures (memory_load64_le(mem, 131112bv64) == 2388bv64); -implementation sub_seven_1988() +implementation sub_seven() { - var Cse0__5_0_3: bv32; - var Gamma_Cse0__5_0_3: bool; - var Gamma_load30: bool; - var Gamma_load31: bool; - var load30: bv64; - var load31: bv32; - sub_seven_1988__0__PpMW6ScZQ3q32PrByBlXeA: - assume {:captureState "sub_seven_1988__0__PpMW6ScZQ3q32PrByBlXeA"} true; - R9, Gamma_R9 := 65536bv64, true; + var $load27: bv64; + var $load28: bv32; + var Gamma_$load27: bool; + var Gamma_$load28: bool; + $sub_seven$__0__$6JJvkaLhTaWXaEL0~yxKxg: + assume {:captureState "$sub_seven$__0__$6JJvkaLhTaWXaEL0~yxKxg"} true; + R8, Gamma_R8 := 126976bv64, true; call rely(); - load30, Gamma_load30 := memory_load64_le(mem, bvadd64(R9, 4032bv64)), (gamma_load64(Gamma_mem, bvadd64(R9, 4032bv64)) || L(mem, bvadd64(R9, 4032bv64))); - R9, Gamma_R9 := load30, Gamma_load30; + $load27, Gamma_$load27 := memory_load64_le(mem, bvadd64(R8, 4056bv64)), (gamma_load64(Gamma_mem, bvadd64(R8, 4056bv64)) || L(mem, bvadd64(R8, 4056bv64))); + R8, Gamma_R8 := $load27, Gamma_$load27; call rely(); - load31, Gamma_load31 := memory_load32_le(mem, R9), (gamma_load32(Gamma_mem, R9) || L(mem, R9)); - R8, Gamma_R8 := zero_extend32_32(load31), Gamma_load31; - Cse0__5_0_3, Gamma_Cse0__5_0_3 := bvadd32(R8[32:0], 4294967289bv32), Gamma_R8; - VF, Gamma_VF := bvnot1(bvcomp33(sign_extend1_32(Cse0__5_0_3), bvadd33(sign_extend1_32(R8[32:0]), 8589934585bv33))), (Gamma_R8 && Gamma_Cse0__5_0_3); - CF, Gamma_CF := bvnot1(bvcomp33(zero_extend1_32(Cse0__5_0_3), bvadd33(zero_extend1_32(R8[32:0]), 4294967289bv33))), (Gamma_R8 && Gamma_Cse0__5_0_3); - ZF, Gamma_ZF := bvcomp32(Cse0__5_0_3, 0bv32), Gamma_Cse0__5_0_3; - NF, Gamma_NF := Cse0__5_0_3[32:31], Gamma_Cse0__5_0_3; - R8, Gamma_R8 := zero_extend32_32(Cse0__5_0_3), Gamma_Cse0__5_0_3; + $load28, Gamma_$load28 := memory_load32_le(mem, R8), (gamma_load32(Gamma_mem, R8) || L(mem, R8)); + R9, Gamma_R9 := zero_extend32_32($load28), Gamma_$load28; + R9, Gamma_R9 := zero_extend32_32(bvadd32(R9[32:0], 4294967289bv32)), Gamma_R9; call rely(); - assert (L(mem, R9) ==> Gamma_R8); - mem, Gamma_mem := memory_store32_le(mem, R9, R8[32:0]), gamma_store32(Gamma_mem, R9, Gamma_R8); - assume {:captureState "2004_0"} true; - goto sub_seven_1988_basil_return; - sub_seven_1988_basil_return: - assume {:captureState "sub_seven_1988_basil_return"} true; + assert (L(mem, R8) ==> Gamma_R9); + mem, Gamma_mem := memory_store32_le(mem, R8, R9[32:0]), gamma_store32(Gamma_mem, R8, Gamma_R9); + assume {:captureState "2404$0"} true; + R8, Gamma_R8 := 0bv64, true; + R9, Gamma_R9 := 0bv64, true; + goto sub_seven_basil_return; + sub_seven_basil_return: + assume {:captureState "sub_seven_basil_return"} true; return; } diff --git a/src/test/correct/jumptable2/config.mk b/src/test/correct/jumptable2/config.mk index 2622f3baa..de2255d11 100644 --- a/src/test/correct/jumptable2/config.mk +++ b/src/test/correct/jumptable2/config.mk @@ -1 +1,2 @@ -ENABLED_COMPILERS = clang clang_O2 clang_pic gcc gcc_O2 gcc_pic \ No newline at end of file +ENABLED_COMPILERS = clang clang_O2 clang_pic gcc gcc_O2 gcc_pic +LIFT_ARTEFACTS := $(COMMON_ARTEFACTS) $(GTIRB_ARTEFACTS) diff --git a/src/test/correct/jumptable2/gcc/jumptable2.gts b/src/test/correct/jumptable2/gcc/jumptable2.gts deleted file mode 100644 index 5853c4717..000000000 Binary files a/src/test/correct/jumptable2/gcc/jumptable2.gts and /dev/null differ diff --git a/src/test/correct/jumptable2/gcc/jumptable2.md5sum b/src/test/correct/jumptable2/gcc/jumptable2.md5sum new file mode 100644 index 000000000..6fcaa7df8 --- /dev/null +++ b/src/test/correct/jumptable2/gcc/jumptable2.md5sum @@ -0,0 +1,3 @@ +2e004774d7aea692b2a018664ba4b564 correct/jumptable2/gcc/a.out +7e256a130afffbec24ccbaf45dd62c0a correct/jumptable2/gcc/jumptable2.relf +ed032c81cf0527b1c9b6722b77bfbb2b correct/jumptable2/gcc/jumptable2.gts diff --git a/src/test/correct/jumptable2/gcc/jumptable2.relf b/src/test/correct/jumptable2/gcc/jumptable2.relf deleted file mode 100644 index 20a159708..000000000 --- a/src/test/correct/jumptable2/gcc/jumptable2.relf +++ /dev/null @@ -1,129 +0,0 @@ - -Relocation section '.rela.dyn' at offset 0x460 contains 11 entries: - Offset Info Type Symbol's Value Symbol's Name + Addend -0000000000010d98 0000000000000403 R_AARCH64_RELATIVE 750 -0000000000010da0 0000000000000403 R_AARCH64_RELATIVE 700 -0000000000010ff0 0000000000000403 R_AARCH64_RELATIVE 7c0 -0000000000011008 0000000000000403 R_AARCH64_RELATIVE 11008 -0000000000011018 0000000000000403 R_AARCH64_RELATIVE 754 -0000000000011020 0000000000000403 R_AARCH64_RELATIVE 778 -0000000000011028 0000000000000403 R_AARCH64_RELATIVE 79c -0000000000010fd8 0000000400000401 R_AARCH64_GLOB_DAT 0000000000000000 _ITM_deregisterTMCloneTable + 0 -0000000000010fe0 0000000500000401 R_AARCH64_GLOB_DAT 0000000000000000 __cxa_finalize@GLIBC_2.17 + 0 -0000000000010fe8 0000000600000401 R_AARCH64_GLOB_DAT 0000000000000000 __gmon_start__ + 0 -0000000000010ff8 0000000800000401 R_AARCH64_GLOB_DAT 0000000000000000 _ITM_registerTMCloneTable + 0 - -Relocation section '.rela.plt' at offset 0x568 contains 4 entries: - Offset Info Type Symbol's Value Symbol's Name + Addend -0000000000010fb0 0000000300000402 R_AARCH64_JUMP_SLOT 0000000000000000 __libc_start_main@GLIBC_2.34 + 0 -0000000000010fb8 0000000500000402 R_AARCH64_JUMP_SLOT 0000000000000000 __cxa_finalize@GLIBC_2.17 + 0 -0000000000010fc0 0000000600000402 R_AARCH64_JUMP_SLOT 0000000000000000 __gmon_start__ + 0 -0000000000010fc8 0000000700000402 R_AARCH64_JUMP_SLOT 0000000000000000 abort@GLIBC_2.17 + 0 - -Symbol table '.dynsym' contains 9 entries: - Num: Value Size Type Bind Vis Ndx Name - 0: 0000000000000000 0 NOTYPE LOCAL DEFAULT UND - 1: 00000000000005c8 0 SECTION LOCAL DEFAULT 11 .init - 2: 0000000000011000 0 SECTION LOCAL DEFAULT 22 .data - 3: 0000000000000000 0 FUNC GLOBAL DEFAULT UND __libc_start_main@GLIBC_2.34 (2) - 4: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_deregisterTMCloneTable - 5: 0000000000000000 0 FUNC WEAK DEFAULT UND __cxa_finalize@GLIBC_2.17 (3) - 6: 0000000000000000 0 NOTYPE WEAK DEFAULT UND __gmon_start__ - 7: 0000000000000000 0 FUNC GLOBAL DEFAULT UND abort@GLIBC_2.17 (3) - 8: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_registerTMCloneTable - -Symbol table '.symtab' contains 93 entries: - Num: Value Size Type Bind Vis Ndx Name - 0: 0000000000000000 0 NOTYPE LOCAL DEFAULT UND - 1: 0000000000000238 0 SECTION LOCAL DEFAULT 1 .interp - 2: 0000000000000254 0 SECTION LOCAL DEFAULT 2 .note.gnu.build-id - 3: 0000000000000278 0 SECTION LOCAL DEFAULT 3 .note.ABI-tag - 4: 0000000000000298 0 SECTION LOCAL DEFAULT 4 .gnu.hash - 5: 00000000000002b8 0 SECTION LOCAL DEFAULT 5 .dynsym - 6: 0000000000000390 0 SECTION LOCAL DEFAULT 6 .dynstr - 7: 000000000000041e 0 SECTION LOCAL DEFAULT 7 .gnu.version - 8: 0000000000000430 0 SECTION LOCAL DEFAULT 8 .gnu.version_r - 9: 0000000000000460 0 SECTION LOCAL DEFAULT 9 .rela.dyn - 10: 0000000000000568 0 SECTION LOCAL DEFAULT 10 .rela.plt - 11: 00000000000005c8 0 SECTION LOCAL DEFAULT 11 .init - 12: 00000000000005e0 0 SECTION LOCAL DEFAULT 12 .plt - 13: 0000000000000640 0 SECTION LOCAL DEFAULT 13 .text - 14: 000000000000080c 0 SECTION LOCAL DEFAULT 14 .fini - 15: 0000000000000820 0 SECTION LOCAL DEFAULT 15 .rodata - 16: 0000000000000824 0 SECTION LOCAL DEFAULT 16 .eh_frame_hdr - 17: 0000000000000878 0 SECTION LOCAL DEFAULT 17 .eh_frame - 18: 0000000000010d98 0 SECTION LOCAL DEFAULT 18 .init_array - 19: 0000000000010da0 0 SECTION LOCAL DEFAULT 19 .fini_array - 20: 0000000000010da8 0 SECTION LOCAL DEFAULT 20 .dynamic - 21: 0000000000010f98 0 SECTION LOCAL DEFAULT 21 .got - 22: 0000000000011000 0 SECTION LOCAL DEFAULT 22 .data - 23: 0000000000011030 0 SECTION LOCAL DEFAULT 23 .bss - 24: 0000000000000000 0 SECTION LOCAL DEFAULT 24 .comment - 25: 0000000000000000 0 FILE LOCAL DEFAULT ABS Scrt1.o - 26: 0000000000000278 0 NOTYPE LOCAL DEFAULT 3 $d - 27: 0000000000000278 32 OBJECT LOCAL DEFAULT 3 __abi_tag - 28: 0000000000000640 0 NOTYPE LOCAL DEFAULT 13 $x - 29: 000000000000088c 0 NOTYPE LOCAL DEFAULT 17 $d - 30: 0000000000000820 0 NOTYPE LOCAL DEFAULT 15 $d - 31: 0000000000000000 0 FILE LOCAL DEFAULT ABS crti.o - 32: 0000000000000674 0 NOTYPE LOCAL DEFAULT 13 $x - 33: 0000000000000674 20 FUNC LOCAL DEFAULT 13 call_weak_fn - 34: 00000000000005c8 0 NOTYPE LOCAL DEFAULT 11 $x - 35: 000000000000080c 0 NOTYPE LOCAL DEFAULT 14 $x - 36: 0000000000000000 0 FILE LOCAL DEFAULT ABS crtn.o - 37: 00000000000005d8 0 NOTYPE LOCAL DEFAULT 11 $x - 38: 0000000000000818 0 NOTYPE LOCAL DEFAULT 14 $x - 39: 0000000000000000 0 FILE LOCAL DEFAULT ABS crtstuff.c - 40: 0000000000000690 0 NOTYPE LOCAL DEFAULT 13 $x - 41: 0000000000000690 0 FUNC LOCAL DEFAULT 13 deregister_tm_clones - 42: 00000000000006c0 0 FUNC LOCAL DEFAULT 13 register_tm_clones - 43: 0000000000011008 0 NOTYPE LOCAL DEFAULT 22 $d - 44: 0000000000000700 0 FUNC LOCAL DEFAULT 13 __do_global_dtors_aux - 45: 0000000000011030 1 OBJECT LOCAL DEFAULT 23 completed.0 - 46: 0000000000010da0 0 NOTYPE LOCAL DEFAULT 19 $d - 47: 0000000000010da0 0 OBJECT LOCAL DEFAULT 19 __do_global_dtors_aux_fini_array_entry - 48: 0000000000000750 0 FUNC LOCAL DEFAULT 13 frame_dummy - 49: 0000000000010d98 0 NOTYPE LOCAL DEFAULT 18 $d - 50: 0000000000010d98 0 OBJECT LOCAL DEFAULT 18 __frame_dummy_init_array_entry - 51: 00000000000008a0 0 NOTYPE LOCAL DEFAULT 17 $d - 52: 0000000000011030 0 NOTYPE LOCAL DEFAULT 23 $d - 53: 0000000000000000 0 FILE LOCAL DEFAULT ABS jumptable2.c - 54: 0000000000011010 0 NOTYPE LOCAL DEFAULT 22 $d - 55: 0000000000000754 0 NOTYPE LOCAL DEFAULT 13 $x - 56: 0000000000011018 0 NOTYPE LOCAL DEFAULT 22 $d - 57: 0000000000000900 0 NOTYPE LOCAL DEFAULT 17 $d - 58: 0000000000000000 0 FILE LOCAL DEFAULT ABS crtstuff.c - 59: 000000000000095c 0 NOTYPE LOCAL DEFAULT 17 $d - 60: 000000000000095c 0 OBJECT LOCAL DEFAULT 17 __FRAME_END__ - 61: 0000000000000000 0 FILE LOCAL DEFAULT ABS - 62: 0000000000010da8 0 OBJECT LOCAL DEFAULT ABS _DYNAMIC - 63: 0000000000000824 0 NOTYPE LOCAL DEFAULT 16 __GNU_EH_FRAME_HDR - 64: 0000000000010fd0 0 OBJECT LOCAL DEFAULT ABS _GLOBAL_OFFSET_TABLE_ - 65: 00000000000005e0 0 NOTYPE LOCAL DEFAULT 12 $x - 66: 0000000000000000 0 FUNC GLOBAL DEFAULT UND __libc_start_main@GLIBC_2.34 - 67: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_deregisterTMCloneTable - 68: 0000000000011000 0 NOTYPE WEAK DEFAULT 22 data_start - 69: 0000000000011030 0 NOTYPE GLOBAL DEFAULT 23 __bss_start__ - 70: 0000000000000000 0 FUNC WEAK DEFAULT UND __cxa_finalize@GLIBC_2.17 - 71: 0000000000011038 0 NOTYPE GLOBAL DEFAULT 23 _bss_end__ - 72: 0000000000011030 0 NOTYPE GLOBAL DEFAULT 22 _edata - 73: 0000000000011010 4 OBJECT GLOBAL DEFAULT 22 x - 74: 000000000000080c 0 FUNC GLOBAL HIDDEN 14 _fini - 75: 0000000000011038 0 NOTYPE GLOBAL DEFAULT 23 __bss_end__ - 76: 0000000000011000 0 NOTYPE GLOBAL DEFAULT 22 __data_start - 77: 0000000000000000 0 NOTYPE WEAK DEFAULT UND __gmon_start__ - 78: 0000000000011008 0 OBJECT GLOBAL HIDDEN 22 __dso_handle - 79: 0000000000000000 0 FUNC GLOBAL DEFAULT UND abort@GLIBC_2.17 - 80: 0000000000000820 4 OBJECT GLOBAL DEFAULT 15 _IO_stdin_used - 81: 0000000000000754 36 FUNC GLOBAL DEFAULT 13 add_two - 82: 0000000000011038 0 NOTYPE GLOBAL DEFAULT 23 _end - 83: 0000000000000640 52 FUNC GLOBAL DEFAULT 13 _start - 84: 0000000000011038 0 NOTYPE GLOBAL DEFAULT 23 __end__ - 85: 0000000000000778 36 FUNC GLOBAL DEFAULT 13 add_six - 86: 0000000000011030 0 NOTYPE GLOBAL DEFAULT 23 __bss_start - 87: 00000000000007c0 76 FUNC GLOBAL DEFAULT 13 main - 88: 0000000000011030 0 OBJECT GLOBAL HIDDEN 22 __TMC_END__ - 89: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_registerTMCloneTable - 90: 0000000000011018 24 OBJECT GLOBAL DEFAULT 22 jump_table - 91: 00000000000005c8 0 FUNC GLOBAL HIDDEN 11 _init - 92: 000000000000079c 36 FUNC GLOBAL DEFAULT 13 sub_seven diff --git a/src/test/correct/jumptable2/gcc/jumptable2_gtirb.expected b/src/test/correct/jumptable2/gcc/jumptable2_gtirb.expected index 67eff945a..3edc3dc8d 100644 --- a/src/test/correct/jumptable2/gcc/jumptable2_gtirb.expected +++ b/src/test/correct/jumptable2/gcc/jumptable2_gtirb.expected @@ -1,5 +1,6 @@ var {:extern} Gamma_R0: bool; var {:extern} Gamma_R1: bool; +var {:extern} Gamma_R19: bool; var {:extern} Gamma_R29: bool; var {:extern} Gamma_R30: bool; var {:extern} Gamma_R31: bool; @@ -7,17 +8,18 @@ var {:extern} Gamma_mem: [bv64]bool; var {:extern} Gamma_stack: [bv64]bool; var {:extern} R0: bv64; var {:extern} R1: bv64; +var {:extern} R19: bv64; var {:extern} R29: bv64; var {:extern} R30: bv64; var {:extern} R31: bv64; var {:extern} mem: [bv64]bv8; var {:extern} stack: [bv64]bv8; const {:extern} $_IO_stdin_used_addr: bv64; -axiom ($_IO_stdin_used_addr == 2080bv64); +axiom ($_IO_stdin_used_addr == 4196420bv64); const {:extern} $jump_table_addr: bv64; -axiom ($jump_table_addr == 69656bv64); +axiom ($jump_table_addr == 4325400bv64); const {:extern} $x_addr: bv64; -axiom ($x_addr == 69648bv64); +axiom ($x_addr == 4325392bv64); function {:extern} L(mem$in: [bv64]bv8, index: bv64) returns (bool) { false } @@ -61,14 +63,7 @@ procedure {:extern} rely(); modifies Gamma_mem, mem; ensures (Gamma_mem == old(Gamma_mem)); ensures (mem == old(mem)); - free ensures (memory_load32_le(mem, 2080bv64) == 131073bv32); - free ensures (memory_load64_le(mem, 69016bv64) == 1872bv64); - free ensures (memory_load64_le(mem, 69024bv64) == 1792bv64); - free ensures (memory_load64_le(mem, 69616bv64) == 1984bv64); - free ensures (memory_load64_le(mem, 69640bv64) == 69640bv64); - free ensures (memory_load64_le(mem, 69656bv64) == 1876bv64); - free ensures (memory_load64_le(mem, 69664bv64) == 1912bv64); - free ensures (memory_load64_le(mem, 69672bv64) == 1948bv64); + free ensures (memory_load32_le(mem, 4196420bv64) == 131073bv32); procedure {:extern} rely_transitive(); modifies Gamma_mem, mem; @@ -86,230 +81,190 @@ procedure {:extern} rely_reflexive(); procedure {:extern} guarantee_reflexive(); modifies Gamma_mem, mem; -procedure add_two_1876(); +procedure add_six(); modifies Gamma_R0, Gamma_R1, Gamma_mem, R0, R1, mem; - free requires (memory_load32_le(mem, 2080bv64) == 131073bv32); - free requires (memory_load64_le(mem, 69016bv64) == 1872bv64); - free requires (memory_load64_le(mem, 69024bv64) == 1792bv64); - free requires (memory_load64_le(mem, 69616bv64) == 1984bv64); - free requires (memory_load64_le(mem, 69640bv64) == 69640bv64); - free requires (memory_load64_le(mem, 69656bv64) == 1876bv64); - free requires (memory_load64_le(mem, 69664bv64) == 1912bv64); - free requires (memory_load64_le(mem, 69672bv64) == 1948bv64); - free ensures (memory_load32_le(mem, 2080bv64) == 131073bv32); - free ensures (memory_load64_le(mem, 69016bv64) == 1872bv64); - free ensures (memory_load64_le(mem, 69024bv64) == 1792bv64); - free ensures (memory_load64_le(mem, 69616bv64) == 1984bv64); - free ensures (memory_load64_le(mem, 69640bv64) == 69640bv64); - free ensures (memory_load64_le(mem, 69656bv64) == 1876bv64); - free ensures (memory_load64_le(mem, 69664bv64) == 1912bv64); - free ensures (memory_load64_le(mem, 69672bv64) == 1948bv64); + free requires (memory_load32_le(mem, 4196420bv64) == 131073bv32); + free ensures (memory_load32_le(mem, 4196420bv64) == 131073bv32); -implementation add_two_1876() +implementation add_six() { - var Gamma_load5: bool; - var load5: bv32; - add_two_1876__0__Rbfn3kvcQq6N6xB9sTqQbg: - assume {:captureState "add_two_1876__0__Rbfn3kvcQq6N6xB9sTqQbg"} true; - R0, Gamma_R0 := 69632bv64, true; - R0, Gamma_R0 := bvadd64(R0, 16bv64), Gamma_R0; + var $load3: bv64; + var $load4: bv32; + var Gamma_$load3: bool; + var Gamma_$load4: bool; + $add_six$__0__$Y_R8k4zNQOW7WdsmX6n3Vw: + assume {:captureState "$add_six$__0__$Y_R8k4zNQOW7WdsmX6n3Vw"} true; + R1, Gamma_R1 := 4321280bv64, true; call rely(); - load5, Gamma_load5 := memory_load32_le(mem, R0), (gamma_load32(Gamma_mem, R0) || L(mem, R0)); - R0, Gamma_R0 := zero_extend32_32(load5), Gamma_load5; - R1, Gamma_R1 := zero_extend32_32(bvadd32(R0[32:0], 2bv32)), Gamma_R0; - R0, Gamma_R0 := 69632bv64, true; - R0, Gamma_R0 := bvadd64(R0, 16bv64), Gamma_R0; + $load3, Gamma_$load3 := memory_load64_le(mem, bvadd64(R1, 4064bv64)), (gamma_load64(Gamma_mem, bvadd64(R1, 4064bv64)) || L(mem, bvadd64(R1, 4064bv64))); + R1, Gamma_R1 := $load3, Gamma_$load3; call rely(); - assert (L(mem, R0) ==> Gamma_R1); - mem, Gamma_mem := memory_store32_le(mem, R0, R1[32:0]), gamma_store32(Gamma_mem, R0, Gamma_R1); - assume {:captureState "1900_0"} true; - goto add_two_1876_basil_return; - add_two_1876_basil_return: - assume {:captureState "add_two_1876_basil_return"} true; + $load4, Gamma_$load4 := memory_load32_le(mem, R1), (gamma_load32(Gamma_mem, R1) || L(mem, R1)); + R0, Gamma_R0 := zero_extend32_32($load4), Gamma_$load4; + R0, Gamma_R0 := zero_extend32_32(bvadd32(R0[32:0], 6bv32)), Gamma_R0; + call rely(); + assert (L(mem, R1) ==> Gamma_R0); + mem, Gamma_mem := memory_store32_le(mem, R1, R0[32:0]), gamma_store32(Gamma_mem, R1, Gamma_R0); + assume {:captureState "4196352$0"} true; + R0, Gamma_R0 := 0bv64, true; + R1, Gamma_R1 := 0bv64, true; + goto add_six_basil_return; + add_six_basil_return: + assume {:captureState "add_six_basil_return"} true; return; } -procedure sub_seven_1948(); - modifies Gamma_R0, Gamma_R1, Gamma_mem, R0, R1, mem; - free requires (memory_load32_le(mem, 2080bv64) == 131073bv32); - free requires (memory_load64_le(mem, 69016bv64) == 1872bv64); - free requires (memory_load64_le(mem, 69024bv64) == 1792bv64); - free requires (memory_load64_le(mem, 69616bv64) == 1984bv64); - free requires (memory_load64_le(mem, 69640bv64) == 69640bv64); - free requires (memory_load64_le(mem, 69656bv64) == 1876bv64); - free requires (memory_load64_le(mem, 69664bv64) == 1912bv64); - free requires (memory_load64_le(mem, 69672bv64) == 1948bv64); - free ensures (memory_load32_le(mem, 2080bv64) == 131073bv32); - free ensures (memory_load64_le(mem, 69016bv64) == 1872bv64); - free ensures (memory_load64_le(mem, 69024bv64) == 1792bv64); - free ensures (memory_load64_le(mem, 69616bv64) == 1984bv64); - free ensures (memory_load64_le(mem, 69640bv64) == 69640bv64); - free ensures (memory_load64_le(mem, 69656bv64) == 1876bv64); - free ensures (memory_load64_le(mem, 69664bv64) == 1912bv64); - free ensures (memory_load64_le(mem, 69672bv64) == 1948bv64); +procedure main(); + modifies Gamma_R0, Gamma_R1, Gamma_R19, Gamma_R29, Gamma_R30, Gamma_R31, Gamma_mem, Gamma_stack, R0, R1, R19, R29, R30, R31, mem, stack; + free requires (memory_load64_le(mem, 4325376bv64) == 0bv64); + free requires (memory_load64_le(mem, 4325384bv64) == 0bv64); + free requires (memory_load64_le(mem, 4325392bv64) == 5bv64); + free requires (memory_load64_le(mem, 4325400bv64) == 4196304bv64); + free requires (memory_load64_le(mem, 4325408bv64) == 4196336bv64); + free requires (memory_load64_le(mem, 4325416bv64) == 4196368bv64); + free requires (memory_load32_le(mem, 4196420bv64) == 131073bv32); + free ensures (Gamma_R19 == old(Gamma_R19)); + free ensures (Gamma_R29 == old(Gamma_R29)); + free ensures (Gamma_R31 == old(Gamma_R31)); + free ensures (R19 == old(R19)); + free ensures (R29 == old(R29)); + free ensures (R31 == old(R31)); + free ensures (memory_load32_le(mem, 4196420bv64) == 131073bv32); -implementation sub_seven_1948() +implementation main() { - var Gamma_load10: bool; - var load10: bv32; - sub_seven_1948__0__MLKKmEoXSkSC_7jU3K5ZIA: - assume {:captureState "sub_seven_1948__0__MLKKmEoXSkSC_7jU3K5ZIA"} true; - R0, Gamma_R0 := 69632bv64, true; - R0, Gamma_R0 := bvadd64(R0, 16bv64), Gamma_R0; + var $load10: bv64; + var $load11: bv64; + var $load12: bv64; + var $load13: bv64; + var $load7: bv64; + var $load8: bv64; + var $load9: bv64; + var Cse0__5$2$0: bv64; + var Gamma_$load10: bool; + var Gamma_$load11: bool; + var Gamma_$load12: bool; + var Gamma_$load13: bool; + var Gamma_$load7: bool; + var Gamma_$load8: bool; + var Gamma_$load9: bool; + var Gamma_Cse0__5$2$0: bool; + $main$__0__$UtkQk4ONSE6hNEuDpZ95RQ: + assume {:captureState "$main$__0__$UtkQk4ONSE6hNEuDpZ95RQ"} true; + Cse0__5$2$0, Gamma_Cse0__5$2$0 := bvadd64(R31, 18446744073709551584bv64), Gamma_R31; + stack, Gamma_stack := memory_store64_le(stack, Cse0__5$2$0, R29), gamma_store64(Gamma_stack, Cse0__5$2$0, Gamma_R29); + assume {:captureState "4195968$1"} true; + stack, Gamma_stack := memory_store64_le(stack, bvadd64(Cse0__5$2$0, 8bv64), R30), gamma_store64(Gamma_stack, bvadd64(Cse0__5$2$0, 8bv64), Gamma_R30); + assume {:captureState "4195968$2"} true; + R31, Gamma_R31 := Cse0__5$2$0, Gamma_Cse0__5$2$0; + R29, Gamma_R29 := R31, Gamma_R31; + stack, Gamma_stack := memory_store64_le(stack, bvadd64(R31, 16bv64), R19), gamma_store64(Gamma_stack, bvadd64(R31, 16bv64), Gamma_R19); + assume {:captureState "4195976$0"} true; + R19, Gamma_R19 := 4321280bv64, true; + call rely(); + $load8, Gamma_$load8 := memory_load64_le(mem, bvadd64(R19, 4088bv64)), (gamma_load64(Gamma_mem, bvadd64(R19, 4088bv64)) || L(mem, bvadd64(R19, 4088bv64))); + R19, Gamma_R19 := $load8, Gamma_$load8; call rely(); - load10, Gamma_load10 := memory_load32_le(mem, R0), (gamma_load32(Gamma_mem, R0) || L(mem, R0)); - R0, Gamma_R0 := zero_extend32_32(load10), Gamma_load10; - R1, Gamma_R1 := zero_extend32_32(bvadd32(R0[32:0], 4294967289bv32)), Gamma_R0; - R0, Gamma_R0 := 69632bv64, true; - R0, Gamma_R0 := bvadd64(R0, 16bv64), Gamma_R0; + $load9, Gamma_$load9 := memory_load64_le(mem, R19), (gamma_load64(Gamma_mem, R19) || L(mem, R19)); + R0, Gamma_R0 := $load9, Gamma_$load9; + R30, Gamma_R30 := 4195996bv64, true; + call add_two(); + goto $main$__1__$KTHyjTW0SWiGwqylcMDw6Q; + $main$__1__$KTHyjTW0SWiGwqylcMDw6Q: + assume {:captureState "$main$__1__$KTHyjTW0SWiGwqylcMDw6Q"} true; call rely(); - assert (L(mem, R0) ==> Gamma_R1); - mem, Gamma_mem := memory_store32_le(mem, R0, R1[32:0]), gamma_store32(Gamma_mem, R0, Gamma_R1); - assume {:captureState "1972_0"} true; - goto sub_seven_1948_basil_return; - sub_seven_1948_basil_return: - assume {:captureState "sub_seven_1948_basil_return"} true; + $load7, Gamma_$load7 := memory_load64_le(mem, bvadd64(R19, 8bv64)), (gamma_load64(Gamma_mem, bvadd64(R19, 8bv64)) || L(mem, bvadd64(R19, 8bv64))); + R0, Gamma_R0 := $load7, Gamma_$load7; + R30, Gamma_R30 := 4195976bv64, true; + call add_six(); + goto $main$__2__$Djx7L34DQzuSXaBFEj_bpQ; + $main$__2__$Djx7L34DQzuSXaBFEj_bpQ: + assume {:captureState "$main$__2__$Djx7L34DQzuSXaBFEj_bpQ"} true; + call rely(); + $load10, Gamma_$load10 := memory_load64_le(mem, bvadd64(R19, 16bv64)), (gamma_load64(Gamma_mem, bvadd64(R19, 16bv64)) || L(mem, bvadd64(R19, 16bv64))); + R0, Gamma_R0 := $load10, Gamma_$load10; + R30, Gamma_R30 := 4195976bv64, true; + call sub_seven(); + goto $main$__3__$fxMAJl44TWOTA8IHVD8V7Q; + $main$__3__$fxMAJl44TWOTA8IHVD8V7Q: + assume {:captureState "$main$__3__$fxMAJl44TWOTA8IHVD8V7Q"} true; + $load11, Gamma_$load11 := memory_load64_le(stack, bvadd64(R31, 16bv64)), gamma_load64(Gamma_stack, bvadd64(R31, 16bv64)); + R19, Gamma_R19 := $load11, Gamma_$load11; + R0, Gamma_R0 := 0bv64, true; + $load12, Gamma_$load12 := memory_load64_le(stack, R31), gamma_load64(Gamma_stack, R31); + R29, Gamma_R29 := $load12, Gamma_$load12; + $load13, Gamma_$load13 := memory_load64_le(stack, bvadd64(R31, 8bv64)), gamma_load64(Gamma_stack, bvadd64(R31, 8bv64)); + R30, Gamma_R30 := $load13, Gamma_$load13; + R31, Gamma_R31 := bvadd64(R31, 32bv64), Gamma_R31; + goto main_basil_return; + main_basil_return: + assume {:captureState "main_basil_return"} true; return; } -procedure add_six_1912(); +procedure sub_seven(); modifies Gamma_R0, Gamma_R1, Gamma_mem, R0, R1, mem; - free requires (memory_load32_le(mem, 2080bv64) == 131073bv32); - free requires (memory_load64_le(mem, 69016bv64) == 1872bv64); - free requires (memory_load64_le(mem, 69024bv64) == 1792bv64); - free requires (memory_load64_le(mem, 69616bv64) == 1984bv64); - free requires (memory_load64_le(mem, 69640bv64) == 69640bv64); - free requires (memory_load64_le(mem, 69656bv64) == 1876bv64); - free requires (memory_load64_le(mem, 69664bv64) == 1912bv64); - free requires (memory_load64_le(mem, 69672bv64) == 1948bv64); - free ensures (memory_load32_le(mem, 2080bv64) == 131073bv32); - free ensures (memory_load64_le(mem, 69016bv64) == 1872bv64); - free ensures (memory_load64_le(mem, 69024bv64) == 1792bv64); - free ensures (memory_load64_le(mem, 69616bv64) == 1984bv64); - free ensures (memory_load64_le(mem, 69640bv64) == 69640bv64); - free ensures (memory_load64_le(mem, 69656bv64) == 1876bv64); - free ensures (memory_load64_le(mem, 69664bv64) == 1912bv64); - free ensures (memory_load64_le(mem, 69672bv64) == 1948bv64); + free requires (memory_load32_le(mem, 4196420bv64) == 131073bv32); + free ensures (memory_load32_le(mem, 4196420bv64) == 131073bv32); -implementation add_six_1912() +implementation sub_seven() { - var Gamma_load19: bool; - var load19: bv32; - add_six_1912__0__tNh_uLjASU~LDGT1yt60fQ: - assume {:captureState "add_six_1912__0__tNh_uLjASU~LDGT1yt60fQ"} true; - R0, Gamma_R0 := 69632bv64, true; - R0, Gamma_R0 := bvadd64(R0, 16bv64), Gamma_R0; + var $load19: bv64; + var $load20: bv32; + var Gamma_$load19: bool; + var Gamma_$load20: bool; + $sub_seven$__0__$lFxxVCVARIKoZ6fzUj5YPw: + assume {:captureState "$sub_seven$__0__$lFxxVCVARIKoZ6fzUj5YPw"} true; + R1, Gamma_R1 := 4321280bv64, true; + call rely(); + $load19, Gamma_$load19 := memory_load64_le(mem, bvadd64(R1, 4064bv64)), (gamma_load64(Gamma_mem, bvadd64(R1, 4064bv64)) || L(mem, bvadd64(R1, 4064bv64))); + R1, Gamma_R1 := $load19, Gamma_$load19; call rely(); - load19, Gamma_load19 := memory_load32_le(mem, R0), (gamma_load32(Gamma_mem, R0) || L(mem, R0)); - R0, Gamma_R0 := zero_extend32_32(load19), Gamma_load19; - R1, Gamma_R1 := zero_extend32_32(bvadd32(R0[32:0], 6bv32)), Gamma_R0; - R0, Gamma_R0 := 69632bv64, true; - R0, Gamma_R0 := bvadd64(R0, 16bv64), Gamma_R0; + $load20, Gamma_$load20 := memory_load32_le(mem, R1), (gamma_load32(Gamma_mem, R1) || L(mem, R1)); + R0, Gamma_R0 := zero_extend32_32($load20), Gamma_$load20; + R0, Gamma_R0 := zero_extend32_32(bvadd32(R0[32:0], 4294967289bv32)), Gamma_R0; call rely(); - assert (L(mem, R0) ==> Gamma_R1); - mem, Gamma_mem := memory_store32_le(mem, R0, R1[32:0]), gamma_store32(Gamma_mem, R0, Gamma_R1); - assume {:captureState "1936_0"} true; - goto add_six_1912_basil_return; - add_six_1912_basil_return: - assume {:captureState "add_six_1912_basil_return"} true; + assert (L(mem, R1) ==> Gamma_R0); + mem, Gamma_mem := memory_store32_le(mem, R1, R0[32:0]), gamma_store32(Gamma_mem, R1, Gamma_R0); + assume {:captureState "4196384$0"} true; + R0, Gamma_R0 := 0bv64, true; + R1, Gamma_R1 := 0bv64, true; + goto sub_seven_basil_return; + sub_seven_basil_return: + assume {:captureState "sub_seven_basil_return"} true; return; } -procedure main_1984(); - modifies Gamma_R0, Gamma_R1, Gamma_R29, Gamma_R30, Gamma_R31, Gamma_mem, Gamma_stack, R0, R1, R29, R30, R31, mem, stack; - free requires (memory_load64_le(mem, 69632bv64) == 0bv64); - free requires (memory_load64_le(mem, 69640bv64) == 69640bv64); - free requires (memory_load64_le(mem, 69648bv64) == 5bv64); - free requires (memory_load64_le(mem, 69656bv64) == 1876bv64); - free requires (memory_load64_le(mem, 69664bv64) == 1912bv64); - free requires (memory_load64_le(mem, 69672bv64) == 1948bv64); - free requires (memory_load32_le(mem, 2080bv64) == 131073bv32); - free requires (memory_load64_le(mem, 69016bv64) == 1872bv64); - free requires (memory_load64_le(mem, 69024bv64) == 1792bv64); - free requires (memory_load64_le(mem, 69616bv64) == 1984bv64); - free requires (memory_load64_le(mem, 69640bv64) == 69640bv64); - free requires (memory_load64_le(mem, 69656bv64) == 1876bv64); - free requires (memory_load64_le(mem, 69664bv64) == 1912bv64); - free requires (memory_load64_le(mem, 69672bv64) == 1948bv64); - free ensures (Gamma_R29 == old(Gamma_R29)); - free ensures (Gamma_R31 == old(Gamma_R31)); - free ensures (R29 == old(R29)); - free ensures (R31 == old(R31)); - free ensures (memory_load32_le(mem, 2080bv64) == 131073bv32); - free ensures (memory_load64_le(mem, 69016bv64) == 1872bv64); - free ensures (memory_load64_le(mem, 69024bv64) == 1792bv64); - free ensures (memory_load64_le(mem, 69616bv64) == 1984bv64); - free ensures (memory_load64_le(mem, 69640bv64) == 69640bv64); - free ensures (memory_load64_le(mem, 69656bv64) == 1876bv64); - free ensures (memory_load64_le(mem, 69664bv64) == 1912bv64); - free ensures (memory_load64_le(mem, 69672bv64) == 1948bv64); +procedure add_two(); + modifies Gamma_R0, Gamma_R1, Gamma_mem, R0, R1, mem; + free requires (memory_load32_le(mem, 4196420bv64) == 131073bv32); + free ensures (memory_load32_le(mem, 4196420bv64) == 131073bv32); -implementation main_1984() +implementation add_two() { - var Cse0__5_3_0: bv64; - var Gamma_Cse0__5_3_0: bool; - var Gamma_load23: bool; - var Gamma_load24: bool; - var Gamma_load25: bool; - var Gamma_load26: bool; - var Gamma_load27: bool; - var load23: bv64; - var load24: bv64; - var load25: bv64; - var load26: bv64; - var load27: bv64; - main_1984__0__w7eGi8EzQxu0kP7hQuHVUA: - assume {:captureState "main_1984__0__w7eGi8EzQxu0kP7hQuHVUA"} true; - Cse0__5_3_0, Gamma_Cse0__5_3_0 := bvadd64(R31, 18446744073709551584bv64), Gamma_R31; - stack, Gamma_stack := memory_store64_le(stack, Cse0__5_3_0, R29), gamma_store64(Gamma_stack, Cse0__5_3_0, Gamma_R29); - assume {:captureState "1984_1"} true; - stack, Gamma_stack := memory_store64_le(stack, bvadd64(Cse0__5_3_0, 8bv64), R30), gamma_store64(Gamma_stack, bvadd64(Cse0__5_3_0, 8bv64), Gamma_R30); - assume {:captureState "1984_2"} true; - R31, Gamma_R31 := Cse0__5_3_0, Gamma_Cse0__5_3_0; - R29, Gamma_R29 := R31, Gamma_R31; - stack, Gamma_stack := memory_store32_le(stack, bvadd64(R31, 28bv64), R0[32:0]), gamma_store32(Gamma_stack, bvadd64(R31, 28bv64), Gamma_R0); - assume {:captureState "1992_0"} true; - stack, Gamma_stack := memory_store64_le(stack, bvadd64(R31, 16bv64), R1), gamma_store64(Gamma_stack, bvadd64(R31, 16bv64), Gamma_R1); - assume {:captureState "1996_0"} true; - R0, Gamma_R0 := 69632bv64, true; - R0, Gamma_R0 := bvadd64(R0, 24bv64), Gamma_R0; + var $load21: bv64; + var $load22: bv32; + var Gamma_$load21: bool; + var Gamma_$load22: bool; + $add_two$__0__$wK9NYU4TTr~D8gXPiCk~7w: + assume {:captureState "$add_two$__0__$wK9NYU4TTr~D8gXPiCk~7w"} true; + R1, Gamma_R1 := 4321280bv64, true; call rely(); - load27, Gamma_load27 := memory_load64_le(mem, R0), (gamma_load64(Gamma_mem, R0) || L(mem, R0)); - R0, Gamma_R0 := load27, Gamma_load27; - R30, Gamma_R30 := 2016bv64, true; - call add_two_1876(); - goto main_1984__1__GHoZzu8MSj2vNAxUUuG_yw; - main_1984__1__GHoZzu8MSj2vNAxUUuG_yw: - assume {:captureState "main_1984__1__GHoZzu8MSj2vNAxUUuG_yw"} true; - R0, Gamma_R0 := 69632bv64, true; - R0, Gamma_R0 := bvadd64(R0, 24bv64), Gamma_R0; + $load21, Gamma_$load21 := memory_load64_le(mem, bvadd64(R1, 4064bv64)), (gamma_load64(Gamma_mem, bvadd64(R1, 4064bv64)) || L(mem, bvadd64(R1, 4064bv64))); + R1, Gamma_R1 := $load21, Gamma_$load21; call rely(); - load23, Gamma_load23 := memory_load64_le(mem, bvadd64(R0, 8bv64)), (gamma_load64(Gamma_mem, bvadd64(R0, 8bv64)) || L(mem, bvadd64(R0, 8bv64))); - R0, Gamma_R0 := load23, Gamma_load23; - R30, Gamma_R30 := 2016bv64, true; - call add_six_1912(); - goto main_1984__2__ZuhsVpJtT7GuDYpY3MOTrg; - main_1984__2__ZuhsVpJtT7GuDYpY3MOTrg: - assume {:captureState "main_1984__2__ZuhsVpJtT7GuDYpY3MOTrg"} true; - R0, Gamma_R0 := 69632bv64, true; - R0, Gamma_R0 := bvadd64(R0, 24bv64), Gamma_R0; + $load22, Gamma_$load22 := memory_load32_le(mem, R1), (gamma_load32(Gamma_mem, R1) || L(mem, R1)); + R0, Gamma_R0 := zero_extend32_32($load22), Gamma_$load22; + R0, Gamma_R0 := zero_extend32_32(bvadd32(R0[32:0], 2bv32)), Gamma_R0; call rely(); - load24, Gamma_load24 := memory_load64_le(mem, bvadd64(R0, 16bv64)), (gamma_load64(Gamma_mem, bvadd64(R0, 16bv64)) || L(mem, bvadd64(R0, 16bv64))); - R0, Gamma_R0 := load24, Gamma_load24; - R30, Gamma_R30 := 2016bv64, true; - call sub_seven_1948(); - goto main_1984__3__pfScaWraQ9qCs0VAc_LK4w; - main_1984__3__pfScaWraQ9qCs0VAc_LK4w: - assume {:captureState "main_1984__3__pfScaWraQ9qCs0VAc_LK4w"} true; + assert (L(mem, R1) ==> Gamma_R0); + mem, Gamma_mem := memory_store32_le(mem, R1, R0[32:0]), gamma_store32(Gamma_mem, R1, Gamma_R0); + assume {:captureState "4196320$0"} true; R0, Gamma_R0 := 0bv64, true; - load25, Gamma_load25 := memory_load64_le(stack, R31), gamma_load64(Gamma_stack, R31); - R29, Gamma_R29 := load25, Gamma_load25; - load26, Gamma_load26 := memory_load64_le(stack, bvadd64(R31, 8bv64)), gamma_load64(Gamma_stack, bvadd64(R31, 8bv64)); - R30, Gamma_R30 := load26, Gamma_load26; - R31, Gamma_R31 := bvadd64(R31, 32bv64), Gamma_R31; - goto main_1984_basil_return; - main_1984_basil_return: - assume {:captureState "main_1984_basil_return"} true; + R1, Gamma_R1 := 0bv64, true; + goto add_two_basil_return; + add_two_basil_return: + assume {:captureState "add_two_basil_return"} true; return; } diff --git a/src/test/correct/jumptable2/gcc_O2/jumptable2.gts b/src/test/correct/jumptable2/gcc_O2/jumptable2.gts deleted file mode 100644 index 9853b834f..000000000 Binary files a/src/test/correct/jumptable2/gcc_O2/jumptable2.gts and /dev/null differ diff --git a/src/test/correct/jumptable2/gcc_O2/jumptable2.md5sum b/src/test/correct/jumptable2/gcc_O2/jumptable2.md5sum new file mode 100644 index 000000000..85d744508 --- /dev/null +++ b/src/test/correct/jumptable2/gcc_O2/jumptable2.md5sum @@ -0,0 +1,3 @@ +dc2e7bb72da986594bb9df137a355c0f correct/jumptable2/gcc_O2/a.out +af5ce16ef0d57f4a3d7393fba2d77260 correct/jumptable2/gcc_O2/jumptable2.relf +40f5dcb29ce989246f8084b961603c75 correct/jumptable2/gcc_O2/jumptable2.gts diff --git a/src/test/correct/jumptable2/gcc_O2/jumptable2.relf b/src/test/correct/jumptable2/gcc_O2/jumptable2.relf deleted file mode 100644 index 1c071f0b6..000000000 --- a/src/test/correct/jumptable2/gcc_O2/jumptable2.relf +++ /dev/null @@ -1,130 +0,0 @@ - -Relocation section '.rela.dyn' at offset 0x460 contains 11 entries: - Offset Info Type Symbol's Value Symbol's Name + Addend -0000000000010d98 0000000000000403 R_AARCH64_RELATIVE 790 -0000000000010da0 0000000000000403 R_AARCH64_RELATIVE 740 -0000000000010ff0 0000000000000403 R_AARCH64_RELATIVE 640 -0000000000011008 0000000000000403 R_AARCH64_RELATIVE 11008 -0000000000011018 0000000000000403 R_AARCH64_RELATIVE 7a0 -0000000000011020 0000000000000403 R_AARCH64_RELATIVE 7b4 -0000000000011028 0000000000000403 R_AARCH64_RELATIVE 7d0 -0000000000010fd8 0000000400000401 R_AARCH64_GLOB_DAT 0000000000000000 _ITM_deregisterTMCloneTable + 0 -0000000000010fe0 0000000500000401 R_AARCH64_GLOB_DAT 0000000000000000 __cxa_finalize@GLIBC_2.17 + 0 -0000000000010fe8 0000000600000401 R_AARCH64_GLOB_DAT 0000000000000000 __gmon_start__ + 0 -0000000000010ff8 0000000800000401 R_AARCH64_GLOB_DAT 0000000000000000 _ITM_registerTMCloneTable + 0 - -Relocation section '.rela.plt' at offset 0x568 contains 4 entries: - Offset Info Type Symbol's Value Symbol's Name + Addend -0000000000010fb0 0000000300000402 R_AARCH64_JUMP_SLOT 0000000000000000 __libc_start_main@GLIBC_2.34 + 0 -0000000000010fb8 0000000500000402 R_AARCH64_JUMP_SLOT 0000000000000000 __cxa_finalize@GLIBC_2.17 + 0 -0000000000010fc0 0000000600000402 R_AARCH64_JUMP_SLOT 0000000000000000 __gmon_start__ + 0 -0000000000010fc8 0000000700000402 R_AARCH64_JUMP_SLOT 0000000000000000 abort@GLIBC_2.17 + 0 - -Symbol table '.dynsym' contains 9 entries: - Num: Value Size Type Bind Vis Ndx Name - 0: 0000000000000000 0 NOTYPE LOCAL DEFAULT UND - 1: 00000000000005c8 0 SECTION LOCAL DEFAULT 11 .init - 2: 0000000000011000 0 SECTION LOCAL DEFAULT 22 .data - 3: 0000000000000000 0 FUNC GLOBAL DEFAULT UND __libc_start_main@GLIBC_2.34 (2) - 4: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_deregisterTMCloneTable - 5: 0000000000000000 0 FUNC WEAK DEFAULT UND __cxa_finalize@GLIBC_2.17 (3) - 6: 0000000000000000 0 NOTYPE WEAK DEFAULT UND __gmon_start__ - 7: 0000000000000000 0 FUNC GLOBAL DEFAULT UND abort@GLIBC_2.17 (3) - 8: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_registerTMCloneTable - -Symbol table '.symtab' contains 94 entries: - Num: Value Size Type Bind Vis Ndx Name - 0: 0000000000000000 0 NOTYPE LOCAL DEFAULT UND - 1: 0000000000000238 0 SECTION LOCAL DEFAULT 1 .interp - 2: 0000000000000254 0 SECTION LOCAL DEFAULT 2 .note.gnu.build-id - 3: 0000000000000278 0 SECTION LOCAL DEFAULT 3 .note.ABI-tag - 4: 0000000000000298 0 SECTION LOCAL DEFAULT 4 .gnu.hash - 5: 00000000000002b8 0 SECTION LOCAL DEFAULT 5 .dynsym - 6: 0000000000000390 0 SECTION LOCAL DEFAULT 6 .dynstr - 7: 000000000000041e 0 SECTION LOCAL DEFAULT 7 .gnu.version - 8: 0000000000000430 0 SECTION LOCAL DEFAULT 8 .gnu.version_r - 9: 0000000000000460 0 SECTION LOCAL DEFAULT 9 .rela.dyn - 10: 0000000000000568 0 SECTION LOCAL DEFAULT 10 .rela.plt - 11: 00000000000005c8 0 SECTION LOCAL DEFAULT 11 .init - 12: 00000000000005e0 0 SECTION LOCAL DEFAULT 12 .plt - 13: 0000000000000640 0 SECTION LOCAL DEFAULT 13 .text - 14: 00000000000007e4 0 SECTION LOCAL DEFAULT 14 .fini - 15: 00000000000007f8 0 SECTION LOCAL DEFAULT 15 .rodata - 16: 00000000000007fc 0 SECTION LOCAL DEFAULT 16 .eh_frame_hdr - 17: 0000000000000850 0 SECTION LOCAL DEFAULT 17 .eh_frame - 18: 0000000000010d98 0 SECTION LOCAL DEFAULT 18 .init_array - 19: 0000000000010da0 0 SECTION LOCAL DEFAULT 19 .fini_array - 20: 0000000000010da8 0 SECTION LOCAL DEFAULT 20 .dynamic - 21: 0000000000010f98 0 SECTION LOCAL DEFAULT 21 .got - 22: 0000000000011000 0 SECTION LOCAL DEFAULT 22 .data - 23: 0000000000011030 0 SECTION LOCAL DEFAULT 23 .bss - 24: 0000000000000000 0 SECTION LOCAL DEFAULT 24 .comment - 25: 0000000000000000 0 FILE LOCAL DEFAULT ABS Scrt1.o - 26: 0000000000000278 0 NOTYPE LOCAL DEFAULT 3 $d - 27: 0000000000000278 32 OBJECT LOCAL DEFAULT 3 __abi_tag - 28: 0000000000000680 0 NOTYPE LOCAL DEFAULT 13 $x - 29: 0000000000000864 0 NOTYPE LOCAL DEFAULT 17 $d - 30: 00000000000007f8 0 NOTYPE LOCAL DEFAULT 15 $d - 31: 0000000000000000 0 FILE LOCAL DEFAULT ABS crti.o - 32: 00000000000006b4 0 NOTYPE LOCAL DEFAULT 13 $x - 33: 00000000000006b4 20 FUNC LOCAL DEFAULT 13 call_weak_fn - 34: 00000000000005c8 0 NOTYPE LOCAL DEFAULT 11 $x - 35: 00000000000007e4 0 NOTYPE LOCAL DEFAULT 14 $x - 36: 0000000000000000 0 FILE LOCAL DEFAULT ABS crtn.o - 37: 00000000000005d8 0 NOTYPE LOCAL DEFAULT 11 $x - 38: 00000000000007f0 0 NOTYPE LOCAL DEFAULT 14 $x - 39: 0000000000000000 0 FILE LOCAL DEFAULT ABS jumptable2.c - 40: 00000000000007a0 0 NOTYPE LOCAL DEFAULT 13 $x - 41: 0000000000000640 0 NOTYPE LOCAL DEFAULT 13 $x - 42: 0000000000011010 0 NOTYPE LOCAL DEFAULT 22 $d - 43: 0000000000011018 0 NOTYPE LOCAL DEFAULT 22 $d - 44: 00000000000008d8 0 NOTYPE LOCAL DEFAULT 17 $d - 45: 0000000000000000 0 FILE LOCAL DEFAULT ABS crtstuff.c - 46: 00000000000006d0 0 NOTYPE LOCAL DEFAULT 13 $x - 47: 00000000000006d0 0 FUNC LOCAL DEFAULT 13 deregister_tm_clones - 48: 0000000000000700 0 FUNC LOCAL DEFAULT 13 register_tm_clones - 49: 0000000000011008 0 NOTYPE LOCAL DEFAULT 22 $d - 50: 0000000000000740 0 FUNC LOCAL DEFAULT 13 __do_global_dtors_aux - 51: 0000000000011030 1 OBJECT LOCAL DEFAULT 23 completed.0 - 52: 0000000000010da0 0 NOTYPE LOCAL DEFAULT 19 $d - 53: 0000000000010da0 0 OBJECT LOCAL DEFAULT 19 __do_global_dtors_aux_fini_array_entry - 54: 0000000000000790 0 FUNC LOCAL DEFAULT 13 frame_dummy - 55: 0000000000010d98 0 NOTYPE LOCAL DEFAULT 18 $d - 56: 0000000000010d98 0 OBJECT LOCAL DEFAULT 18 __frame_dummy_init_array_entry - 57: 0000000000000878 0 NOTYPE LOCAL DEFAULT 17 $d - 58: 0000000000011030 0 NOTYPE LOCAL DEFAULT 23 $d - 59: 0000000000000000 0 FILE LOCAL DEFAULT ABS crtstuff.c - 60: 0000000000000938 0 NOTYPE LOCAL DEFAULT 17 $d - 61: 0000000000000938 0 OBJECT LOCAL DEFAULT 17 __FRAME_END__ - 62: 0000000000000000 0 FILE LOCAL DEFAULT ABS - 63: 0000000000010da8 0 OBJECT LOCAL DEFAULT ABS _DYNAMIC - 64: 00000000000007fc 0 NOTYPE LOCAL DEFAULT 16 __GNU_EH_FRAME_HDR - 65: 0000000000010fd0 0 OBJECT LOCAL DEFAULT ABS _GLOBAL_OFFSET_TABLE_ - 66: 00000000000005e0 0 NOTYPE LOCAL DEFAULT 12 $x - 67: 0000000000000000 0 FUNC GLOBAL DEFAULT UND __libc_start_main@GLIBC_2.34 - 68: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_deregisterTMCloneTable - 69: 0000000000011000 0 NOTYPE WEAK DEFAULT 22 data_start - 70: 0000000000011030 0 NOTYPE GLOBAL DEFAULT 23 __bss_start__ - 71: 0000000000000000 0 FUNC WEAK DEFAULT UND __cxa_finalize@GLIBC_2.17 - 72: 0000000000011038 0 NOTYPE GLOBAL DEFAULT 23 _bss_end__ - 73: 0000000000011030 0 NOTYPE GLOBAL DEFAULT 22 _edata - 74: 0000000000011010 4 OBJECT GLOBAL DEFAULT 22 x - 75: 00000000000007e4 0 FUNC GLOBAL HIDDEN 14 _fini - 76: 0000000000011038 0 NOTYPE GLOBAL DEFAULT 23 __bss_end__ - 77: 0000000000011000 0 NOTYPE GLOBAL DEFAULT 22 __data_start - 78: 0000000000000000 0 NOTYPE WEAK DEFAULT UND __gmon_start__ - 79: 0000000000011008 0 OBJECT GLOBAL HIDDEN 22 __dso_handle - 80: 0000000000000000 0 FUNC GLOBAL DEFAULT UND abort@GLIBC_2.17 - 81: 00000000000007f8 4 OBJECT GLOBAL DEFAULT 15 _IO_stdin_used - 82: 00000000000007a0 20 FUNC GLOBAL DEFAULT 13 add_two - 83: 0000000000011038 0 NOTYPE GLOBAL DEFAULT 23 _end - 84: 0000000000000680 52 FUNC GLOBAL DEFAULT 13 _start - 85: 0000000000011038 0 NOTYPE GLOBAL DEFAULT 23 __end__ - 86: 00000000000007b4 20 FUNC GLOBAL DEFAULT 13 add_six - 87: 0000000000011030 0 NOTYPE GLOBAL DEFAULT 23 __bss_start - 88: 0000000000000640 60 FUNC GLOBAL DEFAULT 13 main - 89: 0000000000011030 0 OBJECT GLOBAL HIDDEN 22 __TMC_END__ - 90: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_registerTMCloneTable - 91: 0000000000011018 24 OBJECT GLOBAL DEFAULT 22 jump_table - 92: 00000000000005c8 0 FUNC GLOBAL HIDDEN 11 _init - 93: 00000000000007d0 20 FUNC GLOBAL DEFAULT 13 sub_seven diff --git a/src/test/correct/jumptable2/gcc_O2/jumptable2_gtirb.expected b/src/test/correct/jumptable2/gcc_O2/jumptable2_gtirb.expected index 85c1f69e8..3edc3dc8d 100644 --- a/src/test/correct/jumptable2/gcc_O2/jumptable2_gtirb.expected +++ b/src/test/correct/jumptable2/gcc_O2/jumptable2_gtirb.expected @@ -15,11 +15,11 @@ var {:extern} R31: bv64; var {:extern} mem: [bv64]bv8; var {:extern} stack: [bv64]bv8; const {:extern} $_IO_stdin_used_addr: bv64; -axiom ($_IO_stdin_used_addr == 2040bv64); +axiom ($_IO_stdin_used_addr == 4196420bv64); const {:extern} $jump_table_addr: bv64; -axiom ($jump_table_addr == 69656bv64); +axiom ($jump_table_addr == 4325400bv64); const {:extern} $x_addr: bv64; -axiom ($x_addr == 69648bv64); +axiom ($x_addr == 4325392bv64); function {:extern} L(mem$in: [bv64]bv8, index: bv64) returns (bool) { false } @@ -63,14 +63,7 @@ procedure {:extern} rely(); modifies Gamma_mem, mem; ensures (Gamma_mem == old(Gamma_mem)); ensures (mem == old(mem)); - free ensures (memory_load32_le(mem, 2040bv64) == 131073bv32); - free ensures (memory_load64_le(mem, 69016bv64) == 1936bv64); - free ensures (memory_load64_le(mem, 69024bv64) == 1856bv64); - free ensures (memory_load64_le(mem, 69616bv64) == 1600bv64); - free ensures (memory_load64_le(mem, 69640bv64) == 69640bv64); - free ensures (memory_load64_le(mem, 69656bv64) == 1952bv64); - free ensures (memory_load64_le(mem, 69664bv64) == 1972bv64); - free ensures (memory_load64_le(mem, 69672bv64) == 2000bv64); + free ensures (memory_load32_le(mem, 4196420bv64) == 131073bv32); procedure {:extern} rely_transitive(); modifies Gamma_mem, mem; @@ -88,221 +81,190 @@ procedure {:extern} rely_reflexive(); procedure {:extern} guarantee_reflexive(); modifies Gamma_mem, mem; -procedure add_two_1952(); +procedure add_six(); modifies Gamma_R0, Gamma_R1, Gamma_mem, R0, R1, mem; - free requires (memory_load32_le(mem, 2040bv64) == 131073bv32); - free requires (memory_load64_le(mem, 69016bv64) == 1936bv64); - free requires (memory_load64_le(mem, 69024bv64) == 1856bv64); - free requires (memory_load64_le(mem, 69616bv64) == 1600bv64); - free requires (memory_load64_le(mem, 69640bv64) == 69640bv64); - free requires (memory_load64_le(mem, 69656bv64) == 1952bv64); - free requires (memory_load64_le(mem, 69664bv64) == 1972bv64); - free requires (memory_load64_le(mem, 69672bv64) == 2000bv64); - free ensures (memory_load32_le(mem, 2040bv64) == 131073bv32); - free ensures (memory_load64_le(mem, 69016bv64) == 1936bv64); - free ensures (memory_load64_le(mem, 69024bv64) == 1856bv64); - free ensures (memory_load64_le(mem, 69616bv64) == 1600bv64); - free ensures (memory_load64_le(mem, 69640bv64) == 69640bv64); - free ensures (memory_load64_le(mem, 69656bv64) == 1952bv64); - free ensures (memory_load64_le(mem, 69664bv64) == 1972bv64); - free ensures (memory_load64_le(mem, 69672bv64) == 2000bv64); + free requires (memory_load32_le(mem, 4196420bv64) == 131073bv32); + free ensures (memory_load32_le(mem, 4196420bv64) == 131073bv32); -implementation add_two_1952() +implementation add_six() { - var Gamma_load10: bool; - var load10: bv32; - add_two_1952__0__PJOnl6EiQpak9~3sAS5yAg: - assume {:captureState "add_two_1952__0__PJOnl6EiQpak9~3sAS5yAg"} true; - R1, Gamma_R1 := 69632bv64, true; + var $load3: bv64; + var $load4: bv32; + var Gamma_$load3: bool; + var Gamma_$load4: bool; + $add_six$__0__$Y_R8k4zNQOW7WdsmX6n3Vw: + assume {:captureState "$add_six$__0__$Y_R8k4zNQOW7WdsmX6n3Vw"} true; + R1, Gamma_R1 := 4321280bv64, true; call rely(); - load10, Gamma_load10 := memory_load32_le(mem, bvadd64(R1, 16bv64)), (gamma_load32(Gamma_mem, bvadd64(R1, 16bv64)) || L(mem, bvadd64(R1, 16bv64))); - R0, Gamma_R0 := zero_extend32_32(load10), Gamma_load10; - R0, Gamma_R0 := zero_extend32_32(bvadd32(R0[32:0], 2bv32)), Gamma_R0; + $load3, Gamma_$load3 := memory_load64_le(mem, bvadd64(R1, 4064bv64)), (gamma_load64(Gamma_mem, bvadd64(R1, 4064bv64)) || L(mem, bvadd64(R1, 4064bv64))); + R1, Gamma_R1 := $load3, Gamma_$load3; + call rely(); + $load4, Gamma_$load4 := memory_load32_le(mem, R1), (gamma_load32(Gamma_mem, R1) || L(mem, R1)); + R0, Gamma_R0 := zero_extend32_32($load4), Gamma_$load4; + R0, Gamma_R0 := zero_extend32_32(bvadd32(R0[32:0], 6bv32)), Gamma_R0; call rely(); - assert (L(mem, bvadd64(R1, 16bv64)) ==> Gamma_R0); - mem, Gamma_mem := memory_store32_le(mem, bvadd64(R1, 16bv64), R0[32:0]), gamma_store32(Gamma_mem, bvadd64(R1, 16bv64), Gamma_R0); - assume {:captureState "1964_0"} true; - goto add_two_1952_basil_return; - add_two_1952_basil_return: - assume {:captureState "add_two_1952_basil_return"} true; + assert (L(mem, R1) ==> Gamma_R0); + mem, Gamma_mem := memory_store32_le(mem, R1, R0[32:0]), gamma_store32(Gamma_mem, R1, Gamma_R0); + assume {:captureState "4196352$0"} true; + R0, Gamma_R0 := 0bv64, true; + R1, Gamma_R1 := 0bv64, true; + goto add_six_basil_return; + add_six_basil_return: + assume {:captureState "add_six_basil_return"} true; return; } -procedure main_1600(); +procedure main(); modifies Gamma_R0, Gamma_R1, Gamma_R19, Gamma_R29, Gamma_R30, Gamma_R31, Gamma_mem, Gamma_stack, R0, R1, R19, R29, R30, R31, mem, stack; - free requires (memory_load64_le(mem, 69632bv64) == 0bv64); - free requires (memory_load64_le(mem, 69640bv64) == 69640bv64); - free requires (memory_load64_le(mem, 69648bv64) == 5bv64); - free requires (memory_load64_le(mem, 69656bv64) == 1952bv64); - free requires (memory_load64_le(mem, 69664bv64) == 1972bv64); - free requires (memory_load64_le(mem, 69672bv64) == 2000bv64); - free requires (memory_load32_le(mem, 2040bv64) == 131073bv32); - free requires (memory_load64_le(mem, 69016bv64) == 1936bv64); - free requires (memory_load64_le(mem, 69024bv64) == 1856bv64); - free requires (memory_load64_le(mem, 69616bv64) == 1600bv64); - free requires (memory_load64_le(mem, 69640bv64) == 69640bv64); - free requires (memory_load64_le(mem, 69656bv64) == 1952bv64); - free requires (memory_load64_le(mem, 69664bv64) == 1972bv64); - free requires (memory_load64_le(mem, 69672bv64) == 2000bv64); + free requires (memory_load64_le(mem, 4325376bv64) == 0bv64); + free requires (memory_load64_le(mem, 4325384bv64) == 0bv64); + free requires (memory_load64_le(mem, 4325392bv64) == 5bv64); + free requires (memory_load64_le(mem, 4325400bv64) == 4196304bv64); + free requires (memory_load64_le(mem, 4325408bv64) == 4196336bv64); + free requires (memory_load64_le(mem, 4325416bv64) == 4196368bv64); + free requires (memory_load32_le(mem, 4196420bv64) == 131073bv32); free ensures (Gamma_R19 == old(Gamma_R19)); free ensures (Gamma_R29 == old(Gamma_R29)); free ensures (Gamma_R31 == old(Gamma_R31)); free ensures (R19 == old(R19)); free ensures (R29 == old(R29)); free ensures (R31 == old(R31)); - free ensures (memory_load32_le(mem, 2040bv64) == 131073bv32); - free ensures (memory_load64_le(mem, 69016bv64) == 1936bv64); - free ensures (memory_load64_le(mem, 69024bv64) == 1856bv64); - free ensures (memory_load64_le(mem, 69616bv64) == 1600bv64); - free ensures (memory_load64_le(mem, 69640bv64) == 69640bv64); - free ensures (memory_load64_le(mem, 69656bv64) == 1952bv64); - free ensures (memory_load64_le(mem, 69664bv64) == 1972bv64); - free ensures (memory_load64_le(mem, 69672bv64) == 2000bv64); + free ensures (memory_load32_le(mem, 4196420bv64) == 131073bv32); -implementation main_1600() +implementation main() { - var Cse0__5_2_0: bv64; - var Gamma_Cse0__5_2_0: bool; - var Gamma_load16: bool; - var Gamma_load17: bool; - var Gamma_load18: bool; - var Gamma_load19: bool; - var Gamma_load20: bool; - var Gamma_load21: bool; - var load16: bv64; - var load17: bv64; - var load18: bv64; - var load19: bv64; - var load20: bv64; - var load21: bv64; - main_1600__0__qxn5kvI1Qb20o759oZW7og: - assume {:captureState "main_1600__0__qxn5kvI1Qb20o759oZW7og"} true; - Cse0__5_2_0, Gamma_Cse0__5_2_0 := bvadd64(R31, 18446744073709551584bv64), Gamma_R31; - stack, Gamma_stack := memory_store64_le(stack, Cse0__5_2_0, R29), gamma_store64(Gamma_stack, Cse0__5_2_0, Gamma_R29); - assume {:captureState "1600_1"} true; - stack, Gamma_stack := memory_store64_le(stack, bvadd64(Cse0__5_2_0, 8bv64), R30), gamma_store64(Gamma_stack, bvadd64(Cse0__5_2_0, 8bv64), Gamma_R30); - assume {:captureState "1600_2"} true; - R31, Gamma_R31 := Cse0__5_2_0, Gamma_Cse0__5_2_0; - R0, Gamma_R0 := 69632bv64, true; + var $load10: bv64; + var $load11: bv64; + var $load12: bv64; + var $load13: bv64; + var $load7: bv64; + var $load8: bv64; + var $load9: bv64; + var Cse0__5$2$0: bv64; + var Gamma_$load10: bool; + var Gamma_$load11: bool; + var Gamma_$load12: bool; + var Gamma_$load13: bool; + var Gamma_$load7: bool; + var Gamma_$load8: bool; + var Gamma_$load9: bool; + var Gamma_Cse0__5$2$0: bool; + $main$__0__$UtkQk4ONSE6hNEuDpZ95RQ: + assume {:captureState "$main$__0__$UtkQk4ONSE6hNEuDpZ95RQ"} true; + Cse0__5$2$0, Gamma_Cse0__5$2$0 := bvadd64(R31, 18446744073709551584bv64), Gamma_R31; + stack, Gamma_stack := memory_store64_le(stack, Cse0__5$2$0, R29), gamma_store64(Gamma_stack, Cse0__5$2$0, Gamma_R29); + assume {:captureState "4195968$1"} true; + stack, Gamma_stack := memory_store64_le(stack, bvadd64(Cse0__5$2$0, 8bv64), R30), gamma_store64(Gamma_stack, bvadd64(Cse0__5$2$0, 8bv64), Gamma_R30); + assume {:captureState "4195968$2"} true; + R31, Gamma_R31 := Cse0__5$2$0, Gamma_Cse0__5$2$0; R29, Gamma_R29 := R31, Gamma_R31; stack, Gamma_stack := memory_store64_le(stack, bvadd64(R31, 16bv64), R19), gamma_store64(Gamma_stack, bvadd64(R31, 16bv64), Gamma_R19); - assume {:captureState "1612_0"} true; - R19, Gamma_R19 := bvadd64(R0, 24bv64), Gamma_R0; + assume {:captureState "4195976$0"} true; + R19, Gamma_R19 := 4321280bv64, true; + call rely(); + $load8, Gamma_$load8 := memory_load64_le(mem, bvadd64(R19, 4088bv64)), (gamma_load64(Gamma_mem, bvadd64(R19, 4088bv64)) || L(mem, bvadd64(R19, 4088bv64))); + R19, Gamma_R19 := $load8, Gamma_$load8; call rely(); - load20, Gamma_load20 := memory_load64_le(mem, bvadd64(R0, 24bv64)), (gamma_load64(Gamma_mem, bvadd64(R0, 24bv64)) || L(mem, bvadd64(R0, 24bv64))); - R0, Gamma_R0 := load20, Gamma_load20; - R30, Gamma_R30 := 1628bv64, true; - call add_two_1952(); - goto main_1600__1__QY_U0Yl6SpejbEOj4iwjmA; - main_1600__1__QY_U0Yl6SpejbEOj4iwjmA: - assume {:captureState "main_1600__1__QY_U0Yl6SpejbEOj4iwjmA"} true; + $load9, Gamma_$load9 := memory_load64_le(mem, R19), (gamma_load64(Gamma_mem, R19) || L(mem, R19)); + R0, Gamma_R0 := $load9, Gamma_$load9; + R30, Gamma_R30 := 4195996bv64, true; + call add_two(); + goto $main$__1__$KTHyjTW0SWiGwqylcMDw6Q; + $main$__1__$KTHyjTW0SWiGwqylcMDw6Q: + assume {:captureState "$main$__1__$KTHyjTW0SWiGwqylcMDw6Q"} true; call rely(); - load21, Gamma_load21 := memory_load64_le(mem, bvadd64(R19, 8bv64)), (gamma_load64(Gamma_mem, bvadd64(R19, 8bv64)) || L(mem, bvadd64(R19, 8bv64))); - R0, Gamma_R0 := load21, Gamma_load21; - R30, Gamma_R30 := 1628bv64, true; - call add_six_1972(); - goto main_1600__2__FEo8kCy_S~yuUaueq991zg; - main_1600__2__FEo8kCy_S~yuUaueq991zg: - assume {:captureState "main_1600__2__FEo8kCy_S~yuUaueq991zg"} true; + $load7, Gamma_$load7 := memory_load64_le(mem, bvadd64(R19, 8bv64)), (gamma_load64(Gamma_mem, bvadd64(R19, 8bv64)) || L(mem, bvadd64(R19, 8bv64))); + R0, Gamma_R0 := $load7, Gamma_$load7; + R30, Gamma_R30 := 4195976bv64, true; + call add_six(); + goto $main$__2__$Djx7L34DQzuSXaBFEj_bpQ; + $main$__2__$Djx7L34DQzuSXaBFEj_bpQ: + assume {:captureState "$main$__2__$Djx7L34DQzuSXaBFEj_bpQ"} true; call rely(); - load16, Gamma_load16 := memory_load64_le(mem, bvadd64(R19, 16bv64)), (gamma_load64(Gamma_mem, bvadd64(R19, 16bv64)) || L(mem, bvadd64(R19, 16bv64))); - R0, Gamma_R0 := load16, Gamma_load16; - R30, Gamma_R30 := 1628bv64, true; - call sub_seven_2000(); - goto main_1600__3__b24tuus8Sm6VPGFLPjIJzQ; - main_1600__3__b24tuus8Sm6VPGFLPjIJzQ: - assume {:captureState "main_1600__3__b24tuus8Sm6VPGFLPjIJzQ"} true; + $load10, Gamma_$load10 := memory_load64_le(mem, bvadd64(R19, 16bv64)), (gamma_load64(Gamma_mem, bvadd64(R19, 16bv64)) || L(mem, bvadd64(R19, 16bv64))); + R0, Gamma_R0 := $load10, Gamma_$load10; + R30, Gamma_R30 := 4195976bv64, true; + call sub_seven(); + goto $main$__3__$fxMAJl44TWOTA8IHVD8V7Q; + $main$__3__$fxMAJl44TWOTA8IHVD8V7Q: + assume {:captureState "$main$__3__$fxMAJl44TWOTA8IHVD8V7Q"} true; + $load11, Gamma_$load11 := memory_load64_le(stack, bvadd64(R31, 16bv64)), gamma_load64(Gamma_stack, bvadd64(R31, 16bv64)); + R19, Gamma_R19 := $load11, Gamma_$load11; R0, Gamma_R0 := 0bv64, true; - load17, Gamma_load17 := memory_load64_le(stack, bvadd64(R31, 16bv64)), gamma_load64(Gamma_stack, bvadd64(R31, 16bv64)); - R19, Gamma_R19 := load17, Gamma_load17; - load18, Gamma_load18 := memory_load64_le(stack, R31), gamma_load64(Gamma_stack, R31); - R29, Gamma_R29 := load18, Gamma_load18; - load19, Gamma_load19 := memory_load64_le(stack, bvadd64(R31, 8bv64)), gamma_load64(Gamma_stack, bvadd64(R31, 8bv64)); - R30, Gamma_R30 := load19, Gamma_load19; + $load12, Gamma_$load12 := memory_load64_le(stack, R31), gamma_load64(Gamma_stack, R31); + R29, Gamma_R29 := $load12, Gamma_$load12; + $load13, Gamma_$load13 := memory_load64_le(stack, bvadd64(R31, 8bv64)), gamma_load64(Gamma_stack, bvadd64(R31, 8bv64)); + R30, Gamma_R30 := $load13, Gamma_$load13; R31, Gamma_R31 := bvadd64(R31, 32bv64), Gamma_R31; - goto main_1600_basil_return; - main_1600_basil_return: - assume {:captureState "main_1600_basil_return"} true; + goto main_basil_return; + main_basil_return: + assume {:captureState "main_basil_return"} true; return; } -procedure sub_seven_2000(); +procedure sub_seven(); modifies Gamma_R0, Gamma_R1, Gamma_mem, R0, R1, mem; - free requires (memory_load32_le(mem, 2040bv64) == 131073bv32); - free requires (memory_load64_le(mem, 69016bv64) == 1936bv64); - free requires (memory_load64_le(mem, 69024bv64) == 1856bv64); - free requires (memory_load64_le(mem, 69616bv64) == 1600bv64); - free requires (memory_load64_le(mem, 69640bv64) == 69640bv64); - free requires (memory_load64_le(mem, 69656bv64) == 1952bv64); - free requires (memory_load64_le(mem, 69664bv64) == 1972bv64); - free requires (memory_load64_le(mem, 69672bv64) == 2000bv64); - free ensures (memory_load32_le(mem, 2040bv64) == 131073bv32); - free ensures (memory_load64_le(mem, 69016bv64) == 1936bv64); - free ensures (memory_load64_le(mem, 69024bv64) == 1856bv64); - free ensures (memory_load64_le(mem, 69616bv64) == 1600bv64); - free ensures (memory_load64_le(mem, 69640bv64) == 69640bv64); - free ensures (memory_load64_le(mem, 69656bv64) == 1952bv64); - free ensures (memory_load64_le(mem, 69664bv64) == 1972bv64); - free ensures (memory_load64_le(mem, 69672bv64) == 2000bv64); + free requires (memory_load32_le(mem, 4196420bv64) == 131073bv32); + free ensures (memory_load32_le(mem, 4196420bv64) == 131073bv32); -implementation sub_seven_2000() +implementation sub_seven() { - var Gamma_load25: bool; - var load25: bv32; - sub_seven_2000__0__X3yfVq36TdmZRiUe3JnW5Q: - assume {:captureState "sub_seven_2000__0__X3yfVq36TdmZRiUe3JnW5Q"} true; - R1, Gamma_R1 := 69632bv64, true; + var $load19: bv64; + var $load20: bv32; + var Gamma_$load19: bool; + var Gamma_$load20: bool; + $sub_seven$__0__$lFxxVCVARIKoZ6fzUj5YPw: + assume {:captureState "$sub_seven$__0__$lFxxVCVARIKoZ6fzUj5YPw"} true; + R1, Gamma_R1 := 4321280bv64, true; + call rely(); + $load19, Gamma_$load19 := memory_load64_le(mem, bvadd64(R1, 4064bv64)), (gamma_load64(Gamma_mem, bvadd64(R1, 4064bv64)) || L(mem, bvadd64(R1, 4064bv64))); + R1, Gamma_R1 := $load19, Gamma_$load19; call rely(); - load25, Gamma_load25 := memory_load32_le(mem, bvadd64(R1, 16bv64)), (gamma_load32(Gamma_mem, bvadd64(R1, 16bv64)) || L(mem, bvadd64(R1, 16bv64))); - R0, Gamma_R0 := zero_extend32_32(load25), Gamma_load25; + $load20, Gamma_$load20 := memory_load32_le(mem, R1), (gamma_load32(Gamma_mem, R1) || L(mem, R1)); + R0, Gamma_R0 := zero_extend32_32($load20), Gamma_$load20; R0, Gamma_R0 := zero_extend32_32(bvadd32(R0[32:0], 4294967289bv32)), Gamma_R0; call rely(); - assert (L(mem, bvadd64(R1, 16bv64)) ==> Gamma_R0); - mem, Gamma_mem := memory_store32_le(mem, bvadd64(R1, 16bv64), R0[32:0]), gamma_store32(Gamma_mem, bvadd64(R1, 16bv64), Gamma_R0); - assume {:captureState "2012_0"} true; - goto sub_seven_2000_basil_return; - sub_seven_2000_basil_return: - assume {:captureState "sub_seven_2000_basil_return"} true; + assert (L(mem, R1) ==> Gamma_R0); + mem, Gamma_mem := memory_store32_le(mem, R1, R0[32:0]), gamma_store32(Gamma_mem, R1, Gamma_R0); + assume {:captureState "4196384$0"} true; + R0, Gamma_R0 := 0bv64, true; + R1, Gamma_R1 := 0bv64, true; + goto sub_seven_basil_return; + sub_seven_basil_return: + assume {:captureState "sub_seven_basil_return"} true; return; } -procedure add_six_1972(); +procedure add_two(); modifies Gamma_R0, Gamma_R1, Gamma_mem, R0, R1, mem; - free requires (memory_load32_le(mem, 2040bv64) == 131073bv32); - free requires (memory_load64_le(mem, 69016bv64) == 1936bv64); - free requires (memory_load64_le(mem, 69024bv64) == 1856bv64); - free requires (memory_load64_le(mem, 69616bv64) == 1600bv64); - free requires (memory_load64_le(mem, 69640bv64) == 69640bv64); - free requires (memory_load64_le(mem, 69656bv64) == 1952bv64); - free requires (memory_load64_le(mem, 69664bv64) == 1972bv64); - free requires (memory_load64_le(mem, 69672bv64) == 2000bv64); - free ensures (memory_load32_le(mem, 2040bv64) == 131073bv32); - free ensures (memory_load64_le(mem, 69016bv64) == 1936bv64); - free ensures (memory_load64_le(mem, 69024bv64) == 1856bv64); - free ensures (memory_load64_le(mem, 69616bv64) == 1600bv64); - free ensures (memory_load64_le(mem, 69640bv64) == 69640bv64); - free ensures (memory_load64_le(mem, 69656bv64) == 1952bv64); - free ensures (memory_load64_le(mem, 69664bv64) == 1972bv64); - free ensures (memory_load64_le(mem, 69672bv64) == 2000bv64); + free requires (memory_load32_le(mem, 4196420bv64) == 131073bv32); + free ensures (memory_load32_le(mem, 4196420bv64) == 131073bv32); -implementation add_six_1972() +implementation add_two() { - var Gamma_load28: bool; - var load28: bv32; - add_six_1972__0__ZqFkXi0rTbONoLjBM0hAkA: - assume {:captureState "add_six_1972__0__ZqFkXi0rTbONoLjBM0hAkA"} true; - R1, Gamma_R1 := 69632bv64, true; + var $load21: bv64; + var $load22: bv32; + var Gamma_$load21: bool; + var Gamma_$load22: bool; + $add_two$__0__$wK9NYU4TTr~D8gXPiCk~7w: + assume {:captureState "$add_two$__0__$wK9NYU4TTr~D8gXPiCk~7w"} true; + R1, Gamma_R1 := 4321280bv64, true; call rely(); - load28, Gamma_load28 := memory_load32_le(mem, bvadd64(R1, 16bv64)), (gamma_load32(Gamma_mem, bvadd64(R1, 16bv64)) || L(mem, bvadd64(R1, 16bv64))); - R0, Gamma_R0 := zero_extend32_32(load28), Gamma_load28; - R0, Gamma_R0 := zero_extend32_32(bvadd32(R0[32:0], 6bv32)), Gamma_R0; + $load21, Gamma_$load21 := memory_load64_le(mem, bvadd64(R1, 4064bv64)), (gamma_load64(Gamma_mem, bvadd64(R1, 4064bv64)) || L(mem, bvadd64(R1, 4064bv64))); + R1, Gamma_R1 := $load21, Gamma_$load21; call rely(); - assert (L(mem, bvadd64(R1, 16bv64)) ==> Gamma_R0); - mem, Gamma_mem := memory_store32_le(mem, bvadd64(R1, 16bv64), R0[32:0]), gamma_store32(Gamma_mem, bvadd64(R1, 16bv64), Gamma_R0); - assume {:captureState "1984_0"} true; - goto add_six_1972_basil_return; - add_six_1972_basil_return: - assume {:captureState "add_six_1972_basil_return"} true; + $load22, Gamma_$load22 := memory_load32_le(mem, R1), (gamma_load32(Gamma_mem, R1) || L(mem, R1)); + R0, Gamma_R0 := zero_extend32_32($load22), Gamma_$load22; + R0, Gamma_R0 := zero_extend32_32(bvadd32(R0[32:0], 2bv32)), Gamma_R0; + call rely(); + assert (L(mem, R1) ==> Gamma_R0); + mem, Gamma_mem := memory_store32_le(mem, R1, R0[32:0]), gamma_store32(Gamma_mem, R1, Gamma_R0); + assume {:captureState "4196320$0"} true; + R0, Gamma_R0 := 0bv64, true; + R1, Gamma_R1 := 0bv64, true; + goto add_two_basil_return; + add_two_basil_return: + assume {:captureState "add_two_basil_return"} true; return; } diff --git a/src/test/correct/jumptable2/gcc_pic/jumptable2.gts b/src/test/correct/jumptable2/gcc_pic/jumptable2.gts deleted file mode 100644 index 03bf0757c..000000000 Binary files a/src/test/correct/jumptable2/gcc_pic/jumptable2.gts and /dev/null differ diff --git a/src/test/correct/jumptable2/gcc_pic/jumptable2.md5sum b/src/test/correct/jumptable2/gcc_pic/jumptable2.md5sum new file mode 100644 index 000000000..50eeaa724 --- /dev/null +++ b/src/test/correct/jumptable2/gcc_pic/jumptable2.md5sum @@ -0,0 +1,3 @@ +a571978d1481691c232e6adcbdd05c29 correct/jumptable2/gcc_pic/a.out +d213632d0eb38765741aca7a8c3637dc correct/jumptable2/gcc_pic/jumptable2.relf +61f56270fa10ce607605ddbed8eba988 correct/jumptable2/gcc_pic/jumptable2.gts diff --git a/src/test/correct/jumptable2/gcc_pic/jumptable2.relf b/src/test/correct/jumptable2/gcc_pic/jumptable2.relf deleted file mode 100644 index 564a7b01d..000000000 --- a/src/test/correct/jumptable2/gcc_pic/jumptable2.relf +++ /dev/null @@ -1,131 +0,0 @@ - -Relocation section '.rela.dyn' at offset 0x460 contains 13 entries: - Offset Info Type Symbol's Value Symbol's Name + Addend -0000000000010d88 0000000000000403 R_AARCH64_RELATIVE 790 -0000000000010d90 0000000000000403 R_AARCH64_RELATIVE 740 -0000000000010fd8 0000000000000403 R_AARCH64_RELATIVE 11010 -0000000000010fe8 0000000000000403 R_AARCH64_RELATIVE 800 -0000000000010ff8 0000000000000403 R_AARCH64_RELATIVE 11018 -0000000000011008 0000000000000403 R_AARCH64_RELATIVE 11008 -0000000000011018 0000000000000403 R_AARCH64_RELATIVE 794 -0000000000011020 0000000000000403 R_AARCH64_RELATIVE 7b8 -0000000000011028 0000000000000403 R_AARCH64_RELATIVE 7dc -0000000000010fc8 0000000400000401 R_AARCH64_GLOB_DAT 0000000000000000 _ITM_deregisterTMCloneTable + 0 -0000000000010fd0 0000000500000401 R_AARCH64_GLOB_DAT 0000000000000000 __cxa_finalize@GLIBC_2.17 + 0 -0000000000010fe0 0000000600000401 R_AARCH64_GLOB_DAT 0000000000000000 __gmon_start__ + 0 -0000000000010ff0 0000000800000401 R_AARCH64_GLOB_DAT 0000000000000000 _ITM_registerTMCloneTable + 0 - -Relocation section '.rela.plt' at offset 0x598 contains 4 entries: - Offset Info Type Symbol's Value Symbol's Name + Addend -0000000000010fa0 0000000300000402 R_AARCH64_JUMP_SLOT 0000000000000000 __libc_start_main@GLIBC_2.34 + 0 -0000000000010fa8 0000000500000402 R_AARCH64_JUMP_SLOT 0000000000000000 __cxa_finalize@GLIBC_2.17 + 0 -0000000000010fb0 0000000600000402 R_AARCH64_JUMP_SLOT 0000000000000000 __gmon_start__ + 0 -0000000000010fb8 0000000700000402 R_AARCH64_JUMP_SLOT 0000000000000000 abort@GLIBC_2.17 + 0 - -Symbol table '.dynsym' contains 9 entries: - Num: Value Size Type Bind Vis Ndx Name - 0: 0000000000000000 0 NOTYPE LOCAL DEFAULT UND - 1: 00000000000005f8 0 SECTION LOCAL DEFAULT 11 .init - 2: 0000000000011000 0 SECTION LOCAL DEFAULT 22 .data - 3: 0000000000000000 0 FUNC GLOBAL DEFAULT UND __libc_start_main@GLIBC_2.34 (2) - 4: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_deregisterTMCloneTable - 5: 0000000000000000 0 FUNC WEAK DEFAULT UND __cxa_finalize@GLIBC_2.17 (3) - 6: 0000000000000000 0 NOTYPE WEAK DEFAULT UND __gmon_start__ - 7: 0000000000000000 0 FUNC GLOBAL DEFAULT UND abort@GLIBC_2.17 (3) - 8: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_registerTMCloneTable - -Symbol table '.symtab' contains 93 entries: - Num: Value Size Type Bind Vis Ndx Name - 0: 0000000000000000 0 NOTYPE LOCAL DEFAULT UND - 1: 0000000000000238 0 SECTION LOCAL DEFAULT 1 .interp - 2: 0000000000000254 0 SECTION LOCAL DEFAULT 2 .note.gnu.build-id - 3: 0000000000000278 0 SECTION LOCAL DEFAULT 3 .note.ABI-tag - 4: 0000000000000298 0 SECTION LOCAL DEFAULT 4 .gnu.hash - 5: 00000000000002b8 0 SECTION LOCAL DEFAULT 5 .dynsym - 6: 0000000000000390 0 SECTION LOCAL DEFAULT 6 .dynstr - 7: 000000000000041e 0 SECTION LOCAL DEFAULT 7 .gnu.version - 8: 0000000000000430 0 SECTION LOCAL DEFAULT 8 .gnu.version_r - 9: 0000000000000460 0 SECTION LOCAL DEFAULT 9 .rela.dyn - 10: 0000000000000598 0 SECTION LOCAL DEFAULT 10 .rela.plt - 11: 00000000000005f8 0 SECTION LOCAL DEFAULT 11 .init - 12: 0000000000000610 0 SECTION LOCAL DEFAULT 12 .plt - 13: 0000000000000680 0 SECTION LOCAL DEFAULT 13 .text - 14: 000000000000084c 0 SECTION LOCAL DEFAULT 14 .fini - 15: 0000000000000860 0 SECTION LOCAL DEFAULT 15 .rodata - 16: 0000000000000864 0 SECTION LOCAL DEFAULT 16 .eh_frame_hdr - 17: 00000000000008b8 0 SECTION LOCAL DEFAULT 17 .eh_frame - 18: 0000000000010d88 0 SECTION LOCAL DEFAULT 18 .init_array - 19: 0000000000010d90 0 SECTION LOCAL DEFAULT 19 .fini_array - 20: 0000000000010d98 0 SECTION LOCAL DEFAULT 20 .dynamic - 21: 0000000000010f88 0 SECTION LOCAL DEFAULT 21 .got - 22: 0000000000011000 0 SECTION LOCAL DEFAULT 22 .data - 23: 0000000000011030 0 SECTION LOCAL DEFAULT 23 .bss - 24: 0000000000000000 0 SECTION LOCAL DEFAULT 24 .comment - 25: 0000000000000000 0 FILE LOCAL DEFAULT ABS Scrt1.o - 26: 0000000000000278 0 NOTYPE LOCAL DEFAULT 3 $d - 27: 0000000000000278 32 OBJECT LOCAL DEFAULT 3 __abi_tag - 28: 0000000000000680 0 NOTYPE LOCAL DEFAULT 13 $x - 29: 00000000000008cc 0 NOTYPE LOCAL DEFAULT 17 $d - 30: 0000000000000860 0 NOTYPE LOCAL DEFAULT 15 $d - 31: 0000000000000000 0 FILE LOCAL DEFAULT ABS crti.o - 32: 00000000000006b4 0 NOTYPE LOCAL DEFAULT 13 $x - 33: 00000000000006b4 20 FUNC LOCAL DEFAULT 13 call_weak_fn - 34: 00000000000005f8 0 NOTYPE LOCAL DEFAULT 11 $x - 35: 000000000000084c 0 NOTYPE LOCAL DEFAULT 14 $x - 36: 0000000000000000 0 FILE LOCAL DEFAULT ABS crtn.o - 37: 0000000000000608 0 NOTYPE LOCAL DEFAULT 11 $x - 38: 0000000000000858 0 NOTYPE LOCAL DEFAULT 14 $x - 39: 0000000000000000 0 FILE LOCAL DEFAULT ABS crtstuff.c - 40: 00000000000006d0 0 NOTYPE LOCAL DEFAULT 13 $x - 41: 00000000000006d0 0 FUNC LOCAL DEFAULT 13 deregister_tm_clones - 42: 0000000000000700 0 FUNC LOCAL DEFAULT 13 register_tm_clones - 43: 0000000000011008 0 NOTYPE LOCAL DEFAULT 22 $d - 44: 0000000000000740 0 FUNC LOCAL DEFAULT 13 __do_global_dtors_aux - 45: 0000000000011030 1 OBJECT LOCAL DEFAULT 23 completed.0 - 46: 0000000000010d90 0 NOTYPE LOCAL DEFAULT 19 $d - 47: 0000000000010d90 0 OBJECT LOCAL DEFAULT 19 __do_global_dtors_aux_fini_array_entry - 48: 0000000000000790 0 FUNC LOCAL DEFAULT 13 frame_dummy - 49: 0000000000010d88 0 NOTYPE LOCAL DEFAULT 18 $d - 50: 0000000000010d88 0 OBJECT LOCAL DEFAULT 18 __frame_dummy_init_array_entry - 51: 00000000000008e0 0 NOTYPE LOCAL DEFAULT 17 $d - 52: 0000000000011030 0 NOTYPE LOCAL DEFAULT 23 $d - 53: 0000000000000000 0 FILE LOCAL DEFAULT ABS jumptable2.c - 54: 0000000000011010 0 NOTYPE LOCAL DEFAULT 22 $d - 55: 0000000000000794 0 NOTYPE LOCAL DEFAULT 13 $x - 56: 0000000000011018 0 NOTYPE LOCAL DEFAULT 22 $d - 57: 0000000000000940 0 NOTYPE LOCAL DEFAULT 17 $d - 58: 0000000000000000 0 FILE LOCAL DEFAULT ABS crtstuff.c - 59: 000000000000099c 0 NOTYPE LOCAL DEFAULT 17 $d - 60: 000000000000099c 0 OBJECT LOCAL DEFAULT 17 __FRAME_END__ - 61: 0000000000000000 0 FILE LOCAL DEFAULT ABS - 62: 0000000000010d98 0 OBJECT LOCAL DEFAULT ABS _DYNAMIC - 63: 0000000000000864 0 NOTYPE LOCAL DEFAULT 16 __GNU_EH_FRAME_HDR - 64: 0000000000010fc0 0 OBJECT LOCAL DEFAULT ABS _GLOBAL_OFFSET_TABLE_ - 65: 0000000000000610 0 NOTYPE LOCAL DEFAULT 12 $x - 66: 0000000000000000 0 FUNC GLOBAL DEFAULT UND __libc_start_main@GLIBC_2.34 - 67: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_deregisterTMCloneTable - 68: 0000000000011000 0 NOTYPE WEAK DEFAULT 22 data_start - 69: 0000000000011030 0 NOTYPE GLOBAL DEFAULT 23 __bss_start__ - 70: 0000000000000000 0 FUNC WEAK DEFAULT UND __cxa_finalize@GLIBC_2.17 - 71: 0000000000011038 0 NOTYPE GLOBAL DEFAULT 23 _bss_end__ - 72: 0000000000011030 0 NOTYPE GLOBAL DEFAULT 22 _edata - 73: 0000000000011010 4 OBJECT GLOBAL DEFAULT 22 x - 74: 000000000000084c 0 FUNC GLOBAL HIDDEN 14 _fini - 75: 0000000000011038 0 NOTYPE GLOBAL DEFAULT 23 __bss_end__ - 76: 0000000000011000 0 NOTYPE GLOBAL DEFAULT 22 __data_start - 77: 0000000000000000 0 NOTYPE WEAK DEFAULT UND __gmon_start__ - 78: 0000000000011008 0 OBJECT GLOBAL HIDDEN 22 __dso_handle - 79: 0000000000000000 0 FUNC GLOBAL DEFAULT UND abort@GLIBC_2.17 - 80: 0000000000000860 4 OBJECT GLOBAL DEFAULT 15 _IO_stdin_used - 81: 0000000000000794 36 FUNC GLOBAL DEFAULT 13 add_two - 82: 0000000000011038 0 NOTYPE GLOBAL DEFAULT 23 _end - 83: 0000000000000680 52 FUNC GLOBAL DEFAULT 13 _start - 84: 0000000000011038 0 NOTYPE GLOBAL DEFAULT 23 __end__ - 85: 00000000000007b8 36 FUNC GLOBAL DEFAULT 13 add_six - 86: 0000000000011030 0 NOTYPE GLOBAL DEFAULT 23 __bss_start - 87: 0000000000000800 76 FUNC GLOBAL DEFAULT 13 main - 88: 0000000000011030 0 OBJECT GLOBAL HIDDEN 22 __TMC_END__ - 89: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_registerTMCloneTable - 90: 0000000000011018 24 OBJECT GLOBAL DEFAULT 22 jump_table - 91: 00000000000005f8 0 FUNC GLOBAL HIDDEN 11 _init - 92: 00000000000007dc 36 FUNC GLOBAL DEFAULT 13 sub_seven diff --git a/src/test/correct/jumptable2/gcc_pic/jumptable2_gtirb.expected b/src/test/correct/jumptable2/gcc_pic/jumptable2_gtirb.expected index fd016e560..f4f01c517 100644 --- a/src/test/correct/jumptable2/gcc_pic/jumptable2_gtirb.expected +++ b/src/test/correct/jumptable2/gcc_pic/jumptable2_gtirb.expected @@ -1,5 +1,6 @@ var {:extern} Gamma_R0: bool; var {:extern} Gamma_R1: bool; +var {:extern} Gamma_R19: bool; var {:extern} Gamma_R29: bool; var {:extern} Gamma_R30: bool; var {:extern} Gamma_R31: bool; @@ -7,17 +8,18 @@ var {:extern} Gamma_mem: [bv64]bool; var {:extern} Gamma_stack: [bv64]bool; var {:extern} R0: bv64; var {:extern} R1: bv64; +var {:extern} R19: bv64; var {:extern} R29: bv64; var {:extern} R30: bv64; var {:extern} R31: bv64; var {:extern} mem: [bv64]bv8; var {:extern} stack: [bv64]bv8; const {:extern} $_IO_stdin_used_addr: bv64; -axiom ($_IO_stdin_used_addr == 2144bv64); +axiom ($_IO_stdin_used_addr == 4196420bv64); const {:extern} $jump_table_addr: bv64; -axiom ($jump_table_addr == 69656bv64); +axiom ($jump_table_addr == 4325400bv64); const {:extern} $x_addr: bv64; -axiom ($x_addr == 69648bv64); +axiom ($x_addr == 4325392bv64); function {:extern} L(mem$in: [bv64]bv8, index: bv64) returns (bool) { false } @@ -61,16 +63,7 @@ procedure {:extern} rely(); modifies Gamma_mem, mem; ensures (Gamma_mem == old(Gamma_mem)); ensures (mem == old(mem)); - free ensures (memory_load32_le(mem, 2144bv64) == 131073bv32); - free ensures (memory_load64_le(mem, 69000bv64) == 1936bv64); - free ensures (memory_load64_le(mem, 69008bv64) == 1856bv64); - free ensures (memory_load64_le(mem, 69592bv64) == 69648bv64); - free ensures (memory_load64_le(mem, 69608bv64) == 2048bv64); - free ensures (memory_load64_le(mem, 69624bv64) == 69656bv64); - free ensures (memory_load64_le(mem, 69640bv64) == 69640bv64); - free ensures (memory_load64_le(mem, 69656bv64) == 1940bv64); - free ensures (memory_load64_le(mem, 69664bv64) == 1976bv64); - free ensures (memory_load64_le(mem, 69672bv64) == 2012bv64); + free ensures (memory_load32_le(mem, 4196420bv64) == 131073bv32); procedure {:extern} rely_transitive(); modifies Gamma_mem, mem; @@ -88,282 +81,190 @@ procedure {:extern} rely_reflexive(); procedure {:extern} guarantee_reflexive(); modifies Gamma_mem, mem; -procedure add_two_1940(); +procedure add_six(); modifies Gamma_R0, Gamma_R1, Gamma_mem, R0, R1, mem; - free requires (memory_load32_le(mem, 2144bv64) == 131073bv32); - free requires (memory_load64_le(mem, 69000bv64) == 1936bv64); - free requires (memory_load64_le(mem, 69008bv64) == 1856bv64); - free requires (memory_load64_le(mem, 69592bv64) == 69648bv64); - free requires (memory_load64_le(mem, 69608bv64) == 2048bv64); - free requires (memory_load64_le(mem, 69624bv64) == 69656bv64); - free requires (memory_load64_le(mem, 69640bv64) == 69640bv64); - free requires (memory_load64_le(mem, 69656bv64) == 1940bv64); - free requires (memory_load64_le(mem, 69664bv64) == 1976bv64); - free requires (memory_load64_le(mem, 69672bv64) == 2012bv64); - free ensures (memory_load32_le(mem, 2144bv64) == 131073bv32); - free ensures (memory_load64_le(mem, 69000bv64) == 1936bv64); - free ensures (memory_load64_le(mem, 69008bv64) == 1856bv64); - free ensures (memory_load64_le(mem, 69592bv64) == 69648bv64); - free ensures (memory_load64_le(mem, 69608bv64) == 2048bv64); - free ensures (memory_load64_le(mem, 69624bv64) == 69656bv64); - free ensures (memory_load64_le(mem, 69640bv64) == 69640bv64); - free ensures (memory_load64_le(mem, 69656bv64) == 1940bv64); - free ensures (memory_load64_le(mem, 69664bv64) == 1976bv64); - free ensures (memory_load64_le(mem, 69672bv64) == 2012bv64); + free requires (memory_load32_le(mem, 4196420bv64) == 131073bv32); + free ensures (memory_load32_le(mem, 4196420bv64) == 131073bv32); -implementation add_two_1940() +implementation add_six() { - var Gamma_load16: bool; - var Gamma_load17: bool; - var Gamma_load18: bool; - var load16: bv64; - var load17: bv32; - var load18: bv64; - add_two_1940__0__ACkGoC6ATEib99m8m22xRg: - assume {:captureState "add_two_1940__0__ACkGoC6ATEib99m8m22xRg"} true; - R0, Gamma_R0 := 65536bv64, true; + var $load3: bv64; + var $load4: bv32; + var Gamma_$load3: bool; + var Gamma_$load4: bool; + $add_six$__0__$Y_R8k4zNQOW7WdsmX6n3Vw: + assume {:captureState "$add_six$__0__$Y_R8k4zNQOW7WdsmX6n3Vw"} true; + R0, Gamma_R0 := 4321280bv64, true; call rely(); - load16, Gamma_load16 := memory_load64_le(mem, bvadd64(R0, 4056bv64)), (gamma_load64(Gamma_mem, bvadd64(R0, 4056bv64)) || L(mem, bvadd64(R0, 4056bv64))); - R0, Gamma_R0 := load16, Gamma_load16; + $load3, Gamma_$load3 := memory_load64_le(mem, bvadd64(R0, 4064bv64)), (gamma_load64(Gamma_mem, bvadd64(R0, 4064bv64)) || L(mem, bvadd64(R0, 4064bv64))); + R0, Gamma_R0 := $load3, Gamma_$load3; call rely(); - load17, Gamma_load17 := memory_load32_le(mem, R0), (gamma_load32(Gamma_mem, R0) || L(mem, R0)); - R0, Gamma_R0 := zero_extend32_32(load17), Gamma_load17; - R1, Gamma_R1 := zero_extend32_32(bvadd32(R0[32:0], 2bv32)), Gamma_R0; - R0, Gamma_R0 := 65536bv64, true; - call rely(); - load18, Gamma_load18 := memory_load64_le(mem, bvadd64(R0, 4056bv64)), (gamma_load64(Gamma_mem, bvadd64(R0, 4056bv64)) || L(mem, bvadd64(R0, 4056bv64))); - R0, Gamma_R0 := load18, Gamma_load18; + $load4, Gamma_$load4 := memory_load32_le(mem, R0), (gamma_load32(Gamma_mem, R0) || L(mem, R0)); + R1, Gamma_R1 := zero_extend32_32($load4), Gamma_$load4; + R1, Gamma_R1 := zero_extend32_32(bvadd32(R1[32:0], 6bv32)), Gamma_R1; call rely(); assert (L(mem, R0) ==> Gamma_R1); mem, Gamma_mem := memory_store32_le(mem, R0, R1[32:0]), gamma_store32(Gamma_mem, R0, Gamma_R1); - assume {:captureState "1964_0"} true; - goto add_two_1940_basil_return; - add_two_1940_basil_return: - assume {:captureState "add_two_1940_basil_return"} true; + assume {:captureState "4196352$0"} true; + R0, Gamma_R0 := 0bv64, true; + R1, Gamma_R1 := 0bv64, true; + goto add_six_basil_return; + add_six_basil_return: + assume {:captureState "add_six_basil_return"} true; return; } -procedure sub_seven_2012(); - modifies Gamma_R0, Gamma_R1, Gamma_mem, R0, R1, mem; - free requires (memory_load32_le(mem, 2144bv64) == 131073bv32); - free requires (memory_load64_le(mem, 69000bv64) == 1936bv64); - free requires (memory_load64_le(mem, 69008bv64) == 1856bv64); - free requires (memory_load64_le(mem, 69592bv64) == 69648bv64); - free requires (memory_load64_le(mem, 69608bv64) == 2048bv64); - free requires (memory_load64_le(mem, 69624bv64) == 69656bv64); - free requires (memory_load64_le(mem, 69640bv64) == 69640bv64); - free requires (memory_load64_le(mem, 69656bv64) == 1940bv64); - free requires (memory_load64_le(mem, 69664bv64) == 1976bv64); - free requires (memory_load64_le(mem, 69672bv64) == 2012bv64); - free ensures (memory_load32_le(mem, 2144bv64) == 131073bv32); - free ensures (memory_load64_le(mem, 69000bv64) == 1936bv64); - free ensures (memory_load64_le(mem, 69008bv64) == 1856bv64); - free ensures (memory_load64_le(mem, 69592bv64) == 69648bv64); - free ensures (memory_load64_le(mem, 69608bv64) == 2048bv64); - free ensures (memory_load64_le(mem, 69624bv64) == 69656bv64); - free ensures (memory_load64_le(mem, 69640bv64) == 69640bv64); - free ensures (memory_load64_le(mem, 69656bv64) == 1940bv64); - free ensures (memory_load64_le(mem, 69664bv64) == 1976bv64); - free ensures (memory_load64_le(mem, 69672bv64) == 2012bv64); +procedure main(); + modifies Gamma_R0, Gamma_R1, Gamma_R19, Gamma_R29, Gamma_R30, Gamma_R31, Gamma_mem, Gamma_stack, R0, R1, R19, R29, R30, R31, mem, stack; + free requires (memory_load64_le(mem, 4325376bv64) == 0bv64); + free requires (memory_load64_le(mem, 4325384bv64) == 0bv64); + free requires (memory_load64_le(mem, 4325392bv64) == 5bv64); + free requires (memory_load64_le(mem, 4325400bv64) == 4196304bv64); + free requires (memory_load64_le(mem, 4325408bv64) == 4196336bv64); + free requires (memory_load64_le(mem, 4325416bv64) == 4196368bv64); + free requires (memory_load32_le(mem, 4196420bv64) == 131073bv32); + free ensures (Gamma_R19 == old(Gamma_R19)); + free ensures (Gamma_R29 == old(Gamma_R29)); + free ensures (Gamma_R31 == old(Gamma_R31)); + free ensures (R19 == old(R19)); + free ensures (R29 == old(R29)); + free ensures (R31 == old(R31)); + free ensures (memory_load32_le(mem, 4196420bv64) == 131073bv32); -implementation sub_seven_2012() +implementation main() { - var Gamma_load22: bool; - var Gamma_load23: bool; - var Gamma_load24: bool; - var load22: bv64; - var load23: bv32; - var load24: bv64; - sub_seven_2012__0__mxkvrZFjT0OVHvaLG5jKfA: - assume {:captureState "sub_seven_2012__0__mxkvrZFjT0OVHvaLG5jKfA"} true; - R0, Gamma_R0 := 65536bv64, true; + var $load10: bv64; + var $load11: bv64; + var $load12: bv64; + var $load13: bv64; + var $load7: bv64; + var $load8: bv64; + var $load9: bv64; + var Cse0__5$2$0: bv64; + var Gamma_$load10: bool; + var Gamma_$load11: bool; + var Gamma_$load12: bool; + var Gamma_$load13: bool; + var Gamma_$load7: bool; + var Gamma_$load8: bool; + var Gamma_$load9: bool; + var Gamma_Cse0__5$2$0: bool; + $main$__0__$UtkQk4ONSE6hNEuDpZ95RQ: + assume {:captureState "$main$__0__$UtkQk4ONSE6hNEuDpZ95RQ"} true; + Cse0__5$2$0, Gamma_Cse0__5$2$0 := bvadd64(R31, 18446744073709551584bv64), Gamma_R31; + stack, Gamma_stack := memory_store64_le(stack, Cse0__5$2$0, R29), gamma_store64(Gamma_stack, Cse0__5$2$0, Gamma_R29); + assume {:captureState "4195968$1"} true; + stack, Gamma_stack := memory_store64_le(stack, bvadd64(Cse0__5$2$0, 8bv64), R30), gamma_store64(Gamma_stack, bvadd64(Cse0__5$2$0, 8bv64), Gamma_R30); + assume {:captureState "4195968$2"} true; + R31, Gamma_R31 := Cse0__5$2$0, Gamma_Cse0__5$2$0; + R29, Gamma_R29 := R31, Gamma_R31; + stack, Gamma_stack := memory_store64_le(stack, bvadd64(R31, 16bv64), R19), gamma_store64(Gamma_stack, bvadd64(R31, 16bv64), Gamma_R19); + assume {:captureState "4195976$0"} true; + R19, Gamma_R19 := 4321280bv64, true; call rely(); - load22, Gamma_load22 := memory_load64_le(mem, bvadd64(R0, 4056bv64)), (gamma_load64(Gamma_mem, bvadd64(R0, 4056bv64)) || L(mem, bvadd64(R0, 4056bv64))); - R0, Gamma_R0 := load22, Gamma_load22; + $load8, Gamma_$load8 := memory_load64_le(mem, bvadd64(R19, 4088bv64)), (gamma_load64(Gamma_mem, bvadd64(R19, 4088bv64)) || L(mem, bvadd64(R19, 4088bv64))); + R19, Gamma_R19 := $load8, Gamma_$load8; call rely(); - load23, Gamma_load23 := memory_load32_le(mem, R0), (gamma_load32(Gamma_mem, R0) || L(mem, R0)); - R0, Gamma_R0 := zero_extend32_32(load23), Gamma_load23; - R1, Gamma_R1 := zero_extend32_32(bvadd32(R0[32:0], 4294967289bv32)), Gamma_R0; - R0, Gamma_R0 := 65536bv64, true; + $load9, Gamma_$load9 := memory_load64_le(mem, R19), (gamma_load64(Gamma_mem, R19) || L(mem, R19)); + R0, Gamma_R0 := $load9, Gamma_$load9; + R30, Gamma_R30 := 4195996bv64, true; + call add_two(); + goto $main$__1__$KTHyjTW0SWiGwqylcMDw6Q; + $main$__1__$KTHyjTW0SWiGwqylcMDw6Q: + assume {:captureState "$main$__1__$KTHyjTW0SWiGwqylcMDw6Q"} true; call rely(); - load24, Gamma_load24 := memory_load64_le(mem, bvadd64(R0, 4056bv64)), (gamma_load64(Gamma_mem, bvadd64(R0, 4056bv64)) || L(mem, bvadd64(R0, 4056bv64))); - R0, Gamma_R0 := load24, Gamma_load24; + $load7, Gamma_$load7 := memory_load64_le(mem, bvadd64(R19, 8bv64)), (gamma_load64(Gamma_mem, bvadd64(R19, 8bv64)) || L(mem, bvadd64(R19, 8bv64))); + R0, Gamma_R0 := $load7, Gamma_$load7; + R30, Gamma_R30 := 4195976bv64, true; + call add_six(); + goto $main$__2__$Djx7L34DQzuSXaBFEj_bpQ; + $main$__2__$Djx7L34DQzuSXaBFEj_bpQ: + assume {:captureState "$main$__2__$Djx7L34DQzuSXaBFEj_bpQ"} true; call rely(); - assert (L(mem, R0) ==> Gamma_R1); - mem, Gamma_mem := memory_store32_le(mem, R0, R1[32:0]), gamma_store32(Gamma_mem, R0, Gamma_R1); - assume {:captureState "2036_0"} true; - goto sub_seven_2012_basil_return; - sub_seven_2012_basil_return: - assume {:captureState "sub_seven_2012_basil_return"} true; + $load10, Gamma_$load10 := memory_load64_le(mem, bvadd64(R19, 16bv64)), (gamma_load64(Gamma_mem, bvadd64(R19, 16bv64)) || L(mem, bvadd64(R19, 16bv64))); + R0, Gamma_R0 := $load10, Gamma_$load10; + R30, Gamma_R30 := 4195976bv64, true; + call sub_seven(); + goto $main$__3__$fxMAJl44TWOTA8IHVD8V7Q; + $main$__3__$fxMAJl44TWOTA8IHVD8V7Q: + assume {:captureState "$main$__3__$fxMAJl44TWOTA8IHVD8V7Q"} true; + $load11, Gamma_$load11 := memory_load64_le(stack, bvadd64(R31, 16bv64)), gamma_load64(Gamma_stack, bvadd64(R31, 16bv64)); + R19, Gamma_R19 := $load11, Gamma_$load11; + R0, Gamma_R0 := 0bv64, true; + $load12, Gamma_$load12 := memory_load64_le(stack, R31), gamma_load64(Gamma_stack, R31); + R29, Gamma_R29 := $load12, Gamma_$load12; + $load13, Gamma_$load13 := memory_load64_le(stack, bvadd64(R31, 8bv64)), gamma_load64(Gamma_stack, bvadd64(R31, 8bv64)); + R30, Gamma_R30 := $load13, Gamma_$load13; + R31, Gamma_R31 := bvadd64(R31, 32bv64), Gamma_R31; + goto main_basil_return; + main_basil_return: + assume {:captureState "main_basil_return"} true; return; } -procedure main_2048(); - modifies Gamma_R0, Gamma_R1, Gamma_R29, Gamma_R30, Gamma_R31, Gamma_mem, Gamma_stack, R0, R1, R29, R30, R31, mem, stack; - free requires (memory_load64_le(mem, 69632bv64) == 0bv64); - free requires (memory_load64_le(mem, 69640bv64) == 69640bv64); - free requires (memory_load64_le(mem, 69648bv64) == 5bv64); - free requires (memory_load64_le(mem, 69656bv64) == 1940bv64); - free requires (memory_load64_le(mem, 69664bv64) == 1976bv64); - free requires (memory_load64_le(mem, 69672bv64) == 2012bv64); - free requires (memory_load32_le(mem, 2144bv64) == 131073bv32); - free requires (memory_load64_le(mem, 69000bv64) == 1936bv64); - free requires (memory_load64_le(mem, 69008bv64) == 1856bv64); - free requires (memory_load64_le(mem, 69592bv64) == 69648bv64); - free requires (memory_load64_le(mem, 69608bv64) == 2048bv64); - free requires (memory_load64_le(mem, 69624bv64) == 69656bv64); - free requires (memory_load64_le(mem, 69640bv64) == 69640bv64); - free requires (memory_load64_le(mem, 69656bv64) == 1940bv64); - free requires (memory_load64_le(mem, 69664bv64) == 1976bv64); - free requires (memory_load64_le(mem, 69672bv64) == 2012bv64); - free ensures (Gamma_R29 == old(Gamma_R29)); - free ensures (Gamma_R31 == old(Gamma_R31)); - free ensures (R29 == old(R29)); - free ensures (R31 == old(R31)); - free ensures (memory_load32_le(mem, 2144bv64) == 131073bv32); - free ensures (memory_load64_le(mem, 69000bv64) == 1936bv64); - free ensures (memory_load64_le(mem, 69008bv64) == 1856bv64); - free ensures (memory_load64_le(mem, 69592bv64) == 69648bv64); - free ensures (memory_load64_le(mem, 69608bv64) == 2048bv64); - free ensures (memory_load64_le(mem, 69624bv64) == 69656bv64); - free ensures (memory_load64_le(mem, 69640bv64) == 69640bv64); - free ensures (memory_load64_le(mem, 69656bv64) == 1940bv64); - free ensures (memory_load64_le(mem, 69664bv64) == 1976bv64); - free ensures (memory_load64_le(mem, 69672bv64) == 2012bv64); +procedure sub_seven(); + modifies Gamma_R0, Gamma_R1, Gamma_mem, R0, R1, mem; + free requires (memory_load32_le(mem, 4196420bv64) == 131073bv32); + free ensures (memory_load32_le(mem, 4196420bv64) == 131073bv32); -implementation main_2048() +implementation sub_seven() { - var Cse0__5_2_0: bv64; - var Gamma_Cse0__5_2_0: bool; - var Gamma_load25: bool; - var Gamma_load26: bool; - var Gamma_load27: bool; - var Gamma_load28: bool; - var Gamma_load29: bool; - var Gamma_load30: bool; - var Gamma_load31: bool; - var Gamma_load32: bool; - var load25: bv64; - var load26: bv64; - var load27: bv64; - var load28: bv64; - var load29: bv64; - var load30: bv64; - var load31: bv64; - var load32: bv64; - main_2048__0__WpLalhBxTN28CzXBzaW2jg: - assume {:captureState "main_2048__0__WpLalhBxTN28CzXBzaW2jg"} true; - Cse0__5_2_0, Gamma_Cse0__5_2_0 := bvadd64(R31, 18446744073709551584bv64), Gamma_R31; - stack, Gamma_stack := memory_store64_le(stack, Cse0__5_2_0, R29), gamma_store64(Gamma_stack, Cse0__5_2_0, Gamma_R29); - assume {:captureState "2048_1"} true; - stack, Gamma_stack := memory_store64_le(stack, bvadd64(Cse0__5_2_0, 8bv64), R30), gamma_store64(Gamma_stack, bvadd64(Cse0__5_2_0, 8bv64), Gamma_R30); - assume {:captureState "2048_2"} true; - R31, Gamma_R31 := Cse0__5_2_0, Gamma_Cse0__5_2_0; - R29, Gamma_R29 := R31, Gamma_R31; - stack, Gamma_stack := memory_store32_le(stack, bvadd64(R31, 28bv64), R0[32:0]), gamma_store32(Gamma_stack, bvadd64(R31, 28bv64), Gamma_R0); - assume {:captureState "2056_0"} true; - stack, Gamma_stack := memory_store64_le(stack, bvadd64(R31, 16bv64), R1), gamma_store64(Gamma_stack, bvadd64(R31, 16bv64), Gamma_R1); - assume {:captureState "2060_0"} true; - R0, Gamma_R0 := 65536bv64, true; - call rely(); - load29, Gamma_load29 := memory_load64_le(mem, bvadd64(R0, 4088bv64)), (gamma_load64(Gamma_mem, bvadd64(R0, 4088bv64)) || L(mem, bvadd64(R0, 4088bv64))); - R0, Gamma_R0 := load29, Gamma_load29; - call rely(); - load30, Gamma_load30 := memory_load64_le(mem, R0), (gamma_load64(Gamma_mem, R0) || L(mem, R0)); - R0, Gamma_R0 := load30, Gamma_load30; - R30, Gamma_R30 := 2080bv64, true; - call add_two_1940(); - goto main_2048__1__sDnYWAohRBuHbEQ~zVQGsQ; - main_2048__1__sDnYWAohRBuHbEQ~zVQGsQ: - assume {:captureState "main_2048__1__sDnYWAohRBuHbEQ~zVQGsQ"} true; - R0, Gamma_R0 := 65536bv64, true; + var $load19: bv64; + var $load20: bv32; + var Gamma_$load19: bool; + var Gamma_$load20: bool; + $sub_seven$__0__$lFxxVCVARIKoZ6fzUj5YPw: + assume {:captureState "$sub_seven$__0__$lFxxVCVARIKoZ6fzUj5YPw"} true; + R0, Gamma_R0 := 4321280bv64, true; call rely(); - load31, Gamma_load31 := memory_load64_le(mem, bvadd64(R0, 4088bv64)), (gamma_load64(Gamma_mem, bvadd64(R0, 4088bv64)) || L(mem, bvadd64(R0, 4088bv64))); - R0, Gamma_R0 := load31, Gamma_load31; + $load19, Gamma_$load19 := memory_load64_le(mem, bvadd64(R0, 4064bv64)), (gamma_load64(Gamma_mem, bvadd64(R0, 4064bv64)) || L(mem, bvadd64(R0, 4064bv64))); + R0, Gamma_R0 := $load19, Gamma_$load19; call rely(); - load32, Gamma_load32 := memory_load64_le(mem, bvadd64(R0, 8bv64)), (gamma_load64(Gamma_mem, bvadd64(R0, 8bv64)) || L(mem, bvadd64(R0, 8bv64))); - R0, Gamma_R0 := load32, Gamma_load32; - R30, Gamma_R30 := 2080bv64, true; - call add_six_1976(); - goto main_2048__2__L~8jkqoxTpihgr9AvP0~jA; - main_2048__2__L~8jkqoxTpihgr9AvP0~jA: - assume {:captureState "main_2048__2__L~8jkqoxTpihgr9AvP0~jA"} true; - R0, Gamma_R0 := 65536bv64, true; + $load20, Gamma_$load20 := memory_load32_le(mem, R0), (gamma_load32(Gamma_mem, R0) || L(mem, R0)); + R1, Gamma_R1 := zero_extend32_32($load20), Gamma_$load20; + R1, Gamma_R1 := zero_extend32_32(bvadd32(R1[32:0], 4294967289bv32)), Gamma_R1; call rely(); - load25, Gamma_load25 := memory_load64_le(mem, bvadd64(R0, 4088bv64)), (gamma_load64(Gamma_mem, bvadd64(R0, 4088bv64)) || L(mem, bvadd64(R0, 4088bv64))); - R0, Gamma_R0 := load25, Gamma_load25; - call rely(); - load26, Gamma_load26 := memory_load64_le(mem, bvadd64(R0, 16bv64)), (gamma_load64(Gamma_mem, bvadd64(R0, 16bv64)) || L(mem, bvadd64(R0, 16bv64))); - R0, Gamma_R0 := load26, Gamma_load26; - R30, Gamma_R30 := 2080bv64, true; - call sub_seven_2012(); - goto main_2048__3__QIGh3XotTZ6dibPcFRtsag; - main_2048__3__QIGh3XotTZ6dibPcFRtsag: - assume {:captureState "main_2048__3__QIGh3XotTZ6dibPcFRtsag"} true; + assert (L(mem, R0) ==> Gamma_R1); + mem, Gamma_mem := memory_store32_le(mem, R0, R1[32:0]), gamma_store32(Gamma_mem, R0, Gamma_R1); + assume {:captureState "4196384$0"} true; R0, Gamma_R0 := 0bv64, true; - load27, Gamma_load27 := memory_load64_le(stack, R31), gamma_load64(Gamma_stack, R31); - R29, Gamma_R29 := load27, Gamma_load27; - load28, Gamma_load28 := memory_load64_le(stack, bvadd64(R31, 8bv64)), gamma_load64(Gamma_stack, bvadd64(R31, 8bv64)); - R30, Gamma_R30 := load28, Gamma_load28; - R31, Gamma_R31 := bvadd64(R31, 32bv64), Gamma_R31; - goto main_2048_basil_return; - main_2048_basil_return: - assume {:captureState "main_2048_basil_return"} true; + R1, Gamma_R1 := 0bv64, true; + goto sub_seven_basil_return; + sub_seven_basil_return: + assume {:captureState "sub_seven_basil_return"} true; return; } -procedure add_six_1976(); +procedure add_two(); modifies Gamma_R0, Gamma_R1, Gamma_mem, R0, R1, mem; - free requires (memory_load32_le(mem, 2144bv64) == 131073bv32); - free requires (memory_load64_le(mem, 69000bv64) == 1936bv64); - free requires (memory_load64_le(mem, 69008bv64) == 1856bv64); - free requires (memory_load64_le(mem, 69592bv64) == 69648bv64); - free requires (memory_load64_le(mem, 69608bv64) == 2048bv64); - free requires (memory_load64_le(mem, 69624bv64) == 69656bv64); - free requires (memory_load64_le(mem, 69640bv64) == 69640bv64); - free requires (memory_load64_le(mem, 69656bv64) == 1940bv64); - free requires (memory_load64_le(mem, 69664bv64) == 1976bv64); - free requires (memory_load64_le(mem, 69672bv64) == 2012bv64); - free ensures (memory_load32_le(mem, 2144bv64) == 131073bv32); - free ensures (memory_load64_le(mem, 69000bv64) == 1936bv64); - free ensures (memory_load64_le(mem, 69008bv64) == 1856bv64); - free ensures (memory_load64_le(mem, 69592bv64) == 69648bv64); - free ensures (memory_load64_le(mem, 69608bv64) == 2048bv64); - free ensures (memory_load64_le(mem, 69624bv64) == 69656bv64); - free ensures (memory_load64_le(mem, 69640bv64) == 69640bv64); - free ensures (memory_load64_le(mem, 69656bv64) == 1940bv64); - free ensures (memory_load64_le(mem, 69664bv64) == 1976bv64); - free ensures (memory_load64_le(mem, 69672bv64) == 2012bv64); + free requires (memory_load32_le(mem, 4196420bv64) == 131073bv32); + free ensures (memory_load32_le(mem, 4196420bv64) == 131073bv32); -implementation add_six_1976() +implementation add_two() { - var Gamma_load34: bool; - var Gamma_load35: bool; - var Gamma_load36: bool; - var load34: bv64; - var load35: bv32; - var load36: bv64; - add_six_1976__0__csIZPpeWTza5lU2dTuTP6g: - assume {:captureState "add_six_1976__0__csIZPpeWTza5lU2dTuTP6g"} true; - R0, Gamma_R0 := 65536bv64, true; - call rely(); - load34, Gamma_load34 := memory_load64_le(mem, bvadd64(R0, 4056bv64)), (gamma_load64(Gamma_mem, bvadd64(R0, 4056bv64)) || L(mem, bvadd64(R0, 4056bv64))); - R0, Gamma_R0 := load34, Gamma_load34; + var $load21: bv64; + var $load22: bv32; + var Gamma_$load21: bool; + var Gamma_$load22: bool; + $add_two$__0__$wK9NYU4TTr~D8gXPiCk~7w: + assume {:captureState "$add_two$__0__$wK9NYU4TTr~D8gXPiCk~7w"} true; + R0, Gamma_R0 := 4321280bv64, true; call rely(); - load35, Gamma_load35 := memory_load32_le(mem, R0), (gamma_load32(Gamma_mem, R0) || L(mem, R0)); - R0, Gamma_R0 := zero_extend32_32(load35), Gamma_load35; - R1, Gamma_R1 := zero_extend32_32(bvadd32(R0[32:0], 6bv32)), Gamma_R0; - R0, Gamma_R0 := 65536bv64, true; + $load21, Gamma_$load21 := memory_load64_le(mem, bvadd64(R0, 4064bv64)), (gamma_load64(Gamma_mem, bvadd64(R0, 4064bv64)) || L(mem, bvadd64(R0, 4064bv64))); + R0, Gamma_R0 := $load21, Gamma_$load21; call rely(); - load36, Gamma_load36 := memory_load64_le(mem, bvadd64(R0, 4056bv64)), (gamma_load64(Gamma_mem, bvadd64(R0, 4056bv64)) || L(mem, bvadd64(R0, 4056bv64))); - R0, Gamma_R0 := load36, Gamma_load36; + $load22, Gamma_$load22 := memory_load32_le(mem, R0), (gamma_load32(Gamma_mem, R0) || L(mem, R0)); + R1, Gamma_R1 := zero_extend32_32($load22), Gamma_$load22; + R1, Gamma_R1 := zero_extend32_32(bvadd32(R1[32:0], 2bv32)), Gamma_R1; call rely(); assert (L(mem, R0) ==> Gamma_R1); mem, Gamma_mem := memory_store32_le(mem, R0, R1[32:0]), gamma_store32(Gamma_mem, R0, Gamma_R1); - assume {:captureState "2000_0"} true; - goto add_six_1976_basil_return; - add_six_1976_basil_return: - assume {:captureState "add_six_1976_basil_return"} true; + assume {:captureState "4196320$0"} true; + R0, Gamma_R0 := 0bv64, true; + R1, Gamma_R1 := 0bv64, true; + goto add_two_basil_return; + add_two_basil_return: + assume {:captureState "add_two_basil_return"} true; return; } diff --git a/src/test/correct/malloc_with_local/clang/malloc_with_local.adt b/src/test/correct/malloc_with_local/clang/malloc_with_local.adt deleted file mode 100644 index 9e2066a9d..000000000 --- a/src/test/correct/malloc_with_local/clang/malloc_with_local.adt +++ /dev/null @@ -1,684 +0,0 @@ -Project(Attrs([Attr("filename","\"clang/malloc_with_local.out\""), -Attr("image-specification","(declare abi (name str))\n(declare arch (name str))\n(declare base-address (addr int))\n(declare bias (off int))\n(declare bits (size int))\n(declare code-region (addr int) (size int) (off int))\n(declare code-start (addr int))\n(declare entry-point (addr int))\n(declare external-reference (addr int) (name str))\n(declare format (name str))\n(declare is-executable (flag bool))\n(declare is-little-endian (flag bool))\n(declare llvm:base-address (addr int))\n(declare llvm:code-entry (name str) (off int) (size int))\n(declare llvm:coff-import-library (name str))\n(declare llvm:coff-virtual-section-header (name str) (addr int) (size int))\n(declare llvm:elf-program-header (name str) (off int) (size int))\n(declare llvm:elf-program-header-flags (name str) (ld bool) (r bool) \n (w bool) (x bool))\n(declare llvm:elf-virtual-program-header (name str) (addr int) (size int))\n(declare llvm:entry-point (addr int))\n(declare llvm:macho-symbol (name str) (value int))\n(declare llvm:name-reference (at int) (name str))\n(declare llvm:relocation (at int) (addr int))\n(declare llvm:section-entry (name str) (addr int) (size int) (off int))\n(declare llvm:section-flags (name str) (r bool) (w bool) (x bool))\n(declare llvm:segment-command (name str) (off int) (size int))\n(declare llvm:segment-command-flags (name str) (r bool) (w bool) (x bool))\n(declare llvm:symbol-entry (name str) (addr int) (size int) (off int)\n (value int))\n(declare llvm:virtual-segment-command (name str) (addr int) (size int))\n(declare mapped (addr int) (size int) (off int))\n(declare named-region (addr int) (size int) (name str))\n(declare named-symbol (addr int) (name str))\n(declare require (name str))\n(declare section (addr int) (size int))\n(declare segment (addr int) (size int) (r bool) (w bool) (x bool))\n(declare subarch (name str))\n(declare symbol-chunk (addr int) (size int) (root int))\n(declare symbol-value (addr int) (value int))\n(declare system (name str))\n(declare vendor (name str))\n\n(abi unknown)\n(arch aarch64)\n(base-address 0)\n(bias 0)\n(bits 64)\n(code-region 2236 20 2236)\n(code-region 1792 444 1792)\n(code-region 1600 144 1600)\n(code-region 1576 24 1576)\n(code-start 1844)\n(code-start 1792)\n(code-start 2068)\n(entry-point 1792)\n(external-reference 69568 _ITM_deregisterTMCloneTable)\n(external-reference 69576 __cxa_finalize)\n(external-reference 69584 __gmon_start__)\n(external-reference 69600 _ITM_registerTMCloneTable)\n(external-reference 69632 __libc_start_main)\n(external-reference 69640 __cxa_finalize)\n(external-reference 69648 malloc)\n(external-reference 69656 __gmon_start__)\n(external-reference 69664 abort)\n(external-reference 69672 free)\n(external-reference 69680 printf)\n(format elf)\n(is-executable true)\n(is-little-endian true)\n(llvm:base-address 0)\n(llvm:code-entry printf 0 0)\n(llvm:code-entry free 0 0)\n(llvm:code-entry abort 0 0)\n(llvm:code-entry malloc 0 0)\n(llvm:code-entry __cxa_finalize 0 0)\n(llvm:code-entry __libc_start_main 0 0)\n(llvm:code-entry _init 1576 0)\n(llvm:code-entry printf@GLIBC_2.17 0 0)\n(llvm:code-entry main 2068 168)\n(llvm:code-entry _start 1792 52)\n(llvm:code-entry free@GLIBC_2.17 0 0)\n(llvm:code-entry abort@GLIBC_2.17 0 0)\n(llvm:code-entry malloc@GLIBC_2.17 0 0)\n(llvm:code-entry _fini 2236 0)\n(llvm:code-entry __cxa_finalize@GLIBC_2.17 0 0)\n(llvm:code-entry __libc_start_main@GLIBC_2.34 0 0)\n(llvm:code-entry frame_dummy 2064 0)\n(llvm:code-entry __do_global_dtors_aux 1984 0)\n(llvm:code-entry register_tm_clones 1920 0)\n(llvm:code-entry deregister_tm_clones 1872 0)\n(llvm:code-entry call_weak_fn 1844 20)\n(llvm:code-entry .fini 2236 20)\n(llvm:code-entry .text 1792 444)\n(llvm:code-entry .plt 1600 144)\n(llvm:code-entry .init 1576 24)\n(llvm:elf-program-header 08 3528 568)\n(llvm:elf-program-header 07 0 0)\n(llvm:elf-program-header 06 2320 60)\n(llvm:elf-program-header 05 596 68)\n(llvm:elf-program-header 04 3544 480)\n(llvm:elf-program-header 03 3528 640)\n(llvm:elf-program-header 02 0 2584)\n(llvm:elf-program-header 01 568 27)\n(llvm:elf-program-header 00 64 504)\n(llvm:elf-program-header-flags 08 false true false false)\n(llvm:elf-program-header-flags 07 false true true false)\n(llvm:elf-program-header-flags 06 false true false false)\n(llvm:elf-program-header-flags 05 false true false false)\n(llvm:elf-program-header-flags 04 false true true false)\n(llvm:elf-program-header-flags 03 true true true false)\n(llvm:elf-program-header-flags 02 true true false true)\n(llvm:elf-program-header-flags 01 false true false false)\n(llvm:elf-program-header-flags 00 false true false false)\n(llvm:elf-virtual-program-header 08 69064 568)\n(llvm:elf-virtual-program-header 07 0 0)\n(llvm:elf-virtual-program-header 06 2320 60)\n(llvm:elf-virtual-program-header 05 596 68)\n(llvm:elf-virtual-program-header 04 69080 480)\n(llvm:elf-virtual-program-header 03 69064 648)\n(llvm:elf-virtual-program-header 02 0 2584)\n(llvm:elf-virtual-program-header 01 568 27)\n(llvm:elf-virtual-program-header 00 64 504)\n(llvm:entry-point 1792)\n(llvm:name-reference 69680 printf)\n(llvm:name-reference 69672 free)\n(llvm:name-reference 69664 abort)\n(llvm:name-reference 69656 __gmon_start__)\n(llvm:name-reference 69648 malloc)\n(llvm:name-reference 69640 __cxa_finalize)\n(llvm:name-reference 69632 __libc_start_main)\n(llvm:name-reference 69600 _ITM_registerTMCloneTable)\n(llvm:name-reference 69584 __gmon_start__)\n(llvm:name-reference 69576 __cxa_finalize)\n(llvm:name-reference 69568 _ITM_deregisterTMCloneTable)\n(llvm:section-entry .shstrtab 0 259 7073)\n(llvm:section-entry .strtab 0 625 6448)\n(llvm:section-entry .symtab 0 2208 4240)\n(llvm:section-entry .comment 0 71 4168)\n(llvm:section-entry .bss 69704 8 4168)\n(llvm:section-entry .data 69688 16 4152)\n(llvm:section-entry .got.plt 69608 80 4072)\n(llvm:section-entry .got 69560 48 4024)\n(llvm:section-entry .dynamic 69080 480 3544)\n(llvm:section-entry .fini_array 69072 8 3536)\n(llvm:section-entry .init_array 69064 8 3528)\n(llvm:section-entry .eh_frame 2384 200 2384)\n(llvm:section-entry .eh_frame_hdr 2320 60 2320)\n(llvm:section-entry .rodata 2256 64 2256)\n(llvm:section-entry .fini 2236 20 2236)\n(llvm:section-entry .text 1792 444 1792)\n(llvm:section-entry .plt 1600 144 1600)\n(llvm:section-entry .init 1576 24 1576)\n(llvm:section-entry .rela.plt 1408 168 1408)\n(llvm:section-entry .rela.dyn 1216 192 1216)\n(llvm:section-entry .gnu.version_r 1168 48 1168)\n(llvm:section-entry .gnu.version 1144 24 1144)\n(llvm:section-entry .dynstr 984 160 984)\n(llvm:section-entry .dynsym 696 288 696)\n(llvm:section-entry .gnu.hash 664 28 664)\n(llvm:section-entry .note.ABI-tag 632 32 632)\n(llvm:section-entry .note.gnu.build-id 596 36 596)\n(llvm:section-entry .interp 568 27 568)\n(llvm:section-flags .shstrtab true false false)\n(llvm:section-flags .strtab true false false)\n(llvm:section-flags .symtab true false false)\n(llvm:section-flags .comment true false false)\n(llvm:section-flags .bss true true false)\n(llvm:section-flags .data true true false)\n(llvm:section-flags .got.plt true true false)\n(llvm:section-flags .got true true false)\n(llvm:section-flags .dynamic true true false)\n(llvm:section-flags .fini_array true true false)\n(llvm:section-flags .init_array true true false)\n(llvm:section-flags .eh_frame true false false)\n(llvm:section-flags .eh_frame_hdr true false false)\n(llvm:section-flags .rodata true false false)\n(llvm:section-flags .fini true false true)\n(llvm:section-flags .text true false true)\n(llvm:section-flags .plt true false true)\n(llvm:section-flags .init true false true)\n(llvm:section-flags .rela.plt true false false)\n(llvm:section-flags .rela.dyn true false false)\n(llvm:section-flags .gnu.version_r true false false)\n(llvm:section-flags .gnu.version true false false)\n(llvm:section-flags .dynstr true false false)\n(llvm:section-flags .dynsym true false false)\n(llvm:section-flags .gnu.hash true false false)\n(llvm:section-flags .note.ABI-tag true false false)\n(llvm:section-flags .note.gnu.build-id true false false)\n(llvm:section-flags .interp true false false)\n(llvm:symbol-entry printf 0 0 0 0)\n(llvm:symbol-entry free 0 0 0 0)\n(llvm:symbol-entry abort 0 0 0 0)\n(llvm:symbol-entry malloc 0 0 0 0)\n(llvm:symbol-entry __cxa_finalize 0 0 0 0)\n(llvm:symbol-entry __libc_start_main 0 0 0 0)\n(llvm:symbol-entry _init 1576 0 1576 1576)\n(llvm:symbol-entry printf@GLIBC_2.17 0 0 0 0)\n(llvm:symbol-entry main 2068 168 2068 2068)\n(llvm:symbol-entry _start 1792 52 1792 1792)\n(llvm:symbol-entry free@GLIBC_2.17 0 0 0 0)\n(llvm:symbol-entry abort@GLIBC_2.17 0 0 0 0)\n(llvm:symbol-entry malloc@GLIBC_2.17 0 0 0 0)\n(llvm:symbol-entry _fini 2236 0 2236 2236)\n(llvm:symbol-entry __cxa_finalize@GLIBC_2.17 0 0 0 0)\n(llvm:symbol-entry __libc_start_main@GLIBC_2.34 0 0 0 0)\n(llvm:symbol-entry frame_dummy 2064 0 2064 2064)\n(llvm:symbol-entry __do_global_dtors_aux 1984 0 1984 1984)\n(llvm:symbol-entry register_tm_clones 1920 0 1920 1920)\n(llvm:symbol-entry deregister_tm_clones 1872 0 1872 1872)\n(llvm:symbol-entry call_weak_fn 1844 20 1844 1844)\n(mapped 0 2584 0)\n(mapped 69064 640 3528)\n(named-region 0 2584 02)\n(named-region 69064 648 03)\n(named-region 568 27 .interp)\n(named-region 596 36 .note.gnu.build-id)\n(named-region 632 32 .note.ABI-tag)\n(named-region 664 28 .gnu.hash)\n(named-region 696 288 .dynsym)\n(named-region 984 160 .dynstr)\n(named-region 1144 24 .gnu.version)\n(named-region 1168 48 .gnu.version_r)\n(named-region 1216 192 .rela.dyn)\n(named-region 1408 168 .rela.plt)\n(named-region 1576 24 .init)\n(named-region 1600 144 .plt)\n(named-region 1792 444 .text)\n(named-region 2236 20 .fini)\n(named-region 2256 64 .rodata)\n(named-region 2320 60 .eh_frame_hdr)\n(named-region 2384 200 .eh_frame)\n(named-region 69064 8 .init_array)\n(named-region 69072 8 .fini_array)\n(named-region 69080 480 .dynamic)\n(named-region 69560 48 .got)\n(named-region 69608 80 .got.plt)\n(named-region 69688 16 .data)\n(named-region 69704 8 .bss)\n(named-region 0 71 .comment)\n(named-region 0 2208 .symtab)\n(named-region 0 625 .strtab)\n(named-region 0 259 .shstrtab)\n(named-symbol 1844 call_weak_fn)\n(named-symbol 1872 deregister_tm_clones)\n(named-symbol 1920 register_tm_clones)\n(named-symbol 1984 __do_global_dtors_aux)\n(named-symbol 2064 frame_dummy)\n(named-symbol 0 __libc_start_main@GLIBC_2.34)\n(named-symbol 0 __cxa_finalize@GLIBC_2.17)\n(named-symbol 2236 _fini)\n(named-symbol 0 malloc@GLIBC_2.17)\n(named-symbol 0 abort@GLIBC_2.17)\n(named-symbol 0 free@GLIBC_2.17)\n(named-symbol 1792 _start)\n(named-symbol 2068 main)\n(named-symbol 0 printf@GLIBC_2.17)\n(named-symbol 1576 _init)\n(named-symbol 0 __libc_start_main)\n(named-symbol 0 __cxa_finalize)\n(named-symbol 0 malloc)\n(named-symbol 0 abort)\n(named-symbol 0 free)\n(named-symbol 0 printf)\n(require libc.so.6)\n(section 568 27)\n(section 596 36)\n(section 632 32)\n(section 664 28)\n(section 696 288)\n(section 984 160)\n(section 1144 24)\n(section 1168 48)\n(section 1216 192)\n(section 1408 168)\n(section 1576 24)\n(section 1600 144)\n(section 1792 444)\n(section 2236 20)\n(section 2256 64)\n(section 2320 60)\n(section 2384 200)\n(section 69064 8)\n(section 69072 8)\n(section 69080 480)\n(section 69560 48)\n(section 69608 80)\n(section 69688 16)\n(section 69704 8)\n(section 0 71)\n(section 0 2208)\n(section 0 625)\n(section 0 259)\n(segment 0 2584 true false true)\n(segment 69064 648 true true false)\n(subarch v8)\n(symbol-chunk 1844 20 1844)\n(symbol-chunk 1792 52 1792)\n(symbol-chunk 2068 168 2068)\n(symbol-value 1844 1844)\n(symbol-value 1872 1872)\n(symbol-value 1920 1920)\n(symbol-value 1984 1984)\n(symbol-value 2064 2064)\n(symbol-value 2236 2236)\n(symbol-value 1792 1792)\n(symbol-value 2068 2068)\n(symbol-value 1576 1576)\n(symbol-value 0 0)\n(system \"\")\n(vendor \"\")\n"), -Attr("abi-name","\"aarch64-linux-gnu-elf\"")]), -Sections([Section(".shstrtab", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xa8\x1c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x38\x00\x09\x00\x40\x00\x1d\x00\x1c\x00\x06\x00\x00\x00\x04\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x04\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x18\x0a\x00\x00\x00\x00\x00\x00\x18\x0a\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x01\x00\x00\x00\x06\x00\x00\x00\xc8\x0d\x00\x00\x00\x00\x00\x00\xc8\x0d\x01\x00\x00\x00\x00\x00\xc8\x0d\x01"), -Section(".strtab", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xa8\x1c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x38\x00\x09\x00\x40\x00\x1d\x00\x1c\x00\x06\x00\x00\x00\x04\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x04\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x18\x0a\x00\x00\x00\x00\x00\x00\x18\x0a\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x01\x00\x00\x00\x06\x00\x00\x00\xc8\x0d\x00\x00\x00\x00\x00\x00\xc8\x0d\x01\x00\x00\x00\x00\x00\xc8\x0d\x01\x00\x00\x00\x00\x00\x80\x02\x00\x00\x00\x00\x00\x00\x88\x02\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x02\x00\x00\x00\x06\x00\x00\x00\xd8\x0d\x00\x00\x00\x00\x00\x00\xd8\x0d\x01\x00\x00\x00\x00\x00\xd8\x0d\x01\x00\x00\x00\x00\x00\xe0\x01\x00\x00\x00\x00\x00\x00\xe0\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x04\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x50\xe5\x74\x64\x04\x00\x00\x00\x10\x09\x00\x00\x00\x00\x00\x00\x10\x09\x00\x00\x00\x00\x00\x00\x10\x09\x00\x00\x00\x00\x00\x00\x3c\x00\x00\x00\x00\x00\x00\x00\x3c\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x51\xe5\x74\x64\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x52\xe5\x74\x64\x04\x00\x00\x00\xc8\x0d\x00\x00\x00\x00\x00\x00\xc8\x0d\x01\x00\x00\x00\x00\x00\xc8\x0d\x01\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x2f\x6c\x69\x62\x2f\x6c\x64\x2d\x6c\x69\x6e\x75\x78\x2d\x61\x61\x72\x63\x68\x36\x34\x2e\x73\x6f\x2e\x31\x00\x00\x04\x00\x00\x00\x14\x00\x00\x00\x03\x00\x00\x00\x47\x4e\x55\x00\x59\xe4\x08\x6f\x15\x63\x56\x30\x44\x42\xf4\xde\x50"), -Section(".symtab", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xa8\x1c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x38\x00\x09\x00\x40\x00\x1d\x00\x1c\x00\x06\x00\x00\x00\x04\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x04\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x18\x0a\x00\x00\x00\x00\x00\x00\x18\x0a\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x01\x00\x00\x00\x06\x00\x00\x00\xc8\x0d\x00\x00\x00\x00\x00\x00\xc8\x0d\x01\x00\x00\x00\x00\x00\xc8\x0d\x01\x00\x00\x00\x00\x00\x80\x02\x00\x00\x00\x00\x00\x00\x88\x02\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x02\x00\x00\x00\x06\x00\x00\x00\xd8\x0d\x00\x00\x00\x00\x00\x00\xd8\x0d\x01\x00\x00\x00\x00\x00\xd8\x0d\x01\x00\x00\x00\x00\x00\xe0\x01\x00\x00\x00\x00\x00\x00\xe0\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x04\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x50\xe5\x74\x64\x04\x00\x00\x00\x10\x09\x00\x00\x00\x00\x00\x00\x10\x09\x00\x00\x00\x00\x00\x00\x10\x09\x00\x00\x00\x00\x00\x00\x3c\x00\x00\x00\x00\x00\x00\x00\x3c\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x51\xe5\x74\x64\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x52\xe5\x74\x64\x04\x00\x00\x00\xc8\x0d\x00\x00\x00\x00\x00\x00\xc8\x0d\x01\x00\x00\x00\x00\x00\xc8\x0d\x01\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x2f\x6c\x69\x62\x2f\x6c\x64\x2d\x6c\x69\x6e\x75\x78\x2d\x61\x61\x72\x63\x68\x36\x34\x2e\x73\x6f\x2e\x31\x00\x00\x04\x00\x00\x00\x14\x00\x00\x00\x03\x00\x00\x00\x47\x4e\x55\x00\x59\xe4\x08\x6f\x15\x63\x56\x30\x44\x42\xf4\xde\x50\x36\x58\x37\x52\x6b\xf9\x3c\x04\x00\x00\x00\x10\x00\x00\x00\x01\x00\x00\x00\x47\x4e\x55\x00\x00\x00\x00\x00\x03\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x01\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x0b\x00\x28\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x17\x00\x38\x10\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x17\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5b\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x22\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x77\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2e\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x29\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x86\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x34\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5f\x5f\x63\x78\x61\x5f\x66\x69\x6e\x61\x6c\x69\x7a\x65\x00\x6d\x61\x6c\x6c\x6f\x63\x00\x5f\x5f\x6c\x69\x62\x63\x5f\x73\x74\x61\x72\x74\x5f\x6d\x61\x69\x6e\x00\x66\x72\x65\x65\x00\x61\x62\x6f\x72\x74\x00\x70\x72\x69\x6e\x74\x66\x00\x6c\x69\x62\x63\x2e\x73\x6f\x2e\x36\x00\x47\x4c\x49\x42\x43\x5f\x32\x2e\x31\x37\x00\x47\x4c\x49\x42\x43\x5f\x32\x2e\x33\x34\x00\x5f\x49\x54\x4d\x5f\x64\x65\x72\x65\x67\x69\x73\x74\x65\x72\x54\x4d\x43\x6c\x6f\x6e\x65\x54\x61\x62\x6c\x65\x00\x5f\x5f\x67\x6d\x6f\x6e\x5f\x73\x74\x61\x72\x74\x5f\x5f\x00\x5f\x49\x54\x4d\x5f\x72\x65\x67\x69\x73\x74\x65\x72\x54\x4d\x43\x6c\x6f\x6e\x65\x54\x61\x62\x6c\x65\x00\x00\x00\x00\x00\x00\x00\x02\x00\x01\x00\x03\x00\x03\x00\x01\x00\x03\x00\x03\x00\x01\x00\x03\x00\x01\x00\x02\x00\x3b\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x97\x91\x96\x06\x00\x00\x03\x00\x45\x00\x00\x00\x10\x00\x00\x00\xb4\x91\x96\x06\x00\x00\x02\x00\x50\x00\x00\x00\x00\x00\x00\x00\xc8\x0d\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x10\x08\x00\x00\x00\x00\x00\x00\xd0\x0d\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\xc0\x07\x00\x00\x00\x00\x00\x00\xd8\x0f\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x14\x08\x00\x00\x00\x00\x00\x00\x40\x10\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x40\x10\x01\x00\x00\x00\x00\x00\xc0\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xc8\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xd0\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe0\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x0a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x08\x10\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x10\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x18\x10\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x20\x10\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x28\x10\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x09\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x30\x10\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x0b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1f\x20\x03\xd5\xfd\x7b\xbf\xa9\xfd\x03\x00\x91\x40\x00\x00\x94\xfd\x7b\xc1\xa8\xc0\x03\x5f\xd6\xf0\x7b\xbf\xa9\x90\x00\x00\x90\x11\xfe\x47\xf9\x10\xe2\x3f\x91\x20\x02\x1f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x90\x00\x00\xb0\x11\x02\x40\xf9\x10\x02\x00\x91\x20\x02\x1f\xd6\x90\x00\x00\xb0\x11\x06\x40\xf9\x10\x22\x00\x91\x20\x02\x1f\xd6\x90\x00\x00\xb0\x11\x0a\x40\xf9\x10\x42\x00\x91\x20\x02\x1f\xd6\x90\x00\x00\xb0\x11\x0e\x40\xf9\x10\x62\x00\x91\x20\x02\x1f\xd6\x90\x00\x00\xb0\x11\x12\x40\xf9\x10\x82\x00\x91\x20\x02\x1f\xd6\x90\x00\x00\xb0\x11\x16\x40\xf9\x10\xa2\x00\x91\x20\x02\x1f\xd6\x90\x00\x00\xb0\x11\x1a\x40\xf9\x10\xc2\x00\x91\x20\x02\x1f\xd6\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1f\x20\x03\xd5\x1d\x00\x80\xd2\x1e\x00\x80\xd2\xe5\x03\x00\xaa\xe1\x03\x40\xf9\xe2\x23\x00\x91\xe6\x03\x00\x91\x80\x00\x00\x90\x00\xec\x47\xf9\x03\x00\x80\xd2\x04\x00\x80\xd2\xcd\xff\xff\x97\xdc\xff\xff\x97\x80\x00\x00\x90\x00\xe8\x47\xf9\x40\x00\x00\xb4\xd4\xff\xff\x17\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x80\x00\x00\xb0\x00\x20\x01\x91\x81\x00\x00\xb0\x21\x20\x01\x91\x3f\x00\x00\xeb\xc0\x00\x00\x54\x81\x00\x00\x90\x21\xe0\x47\xf9\x61\x00\x00\xb4\xf0\x03\x01\xaa\x00\x02\x1f\xd6\xc0\x03\x5f\xd6\x80\x00\x00\xb0\x00\x20\x01\x91\x81\x00\x00\xb0\x21\x20\x01\x91\x21\x00\x00\xcb\x22\xfc\x7f\xd3\x41\x0c\x81\x8b\x21\xfc\x41\x93\xc1\x00\x00\xb4\x82\x00\x00\x90\x42\xf0\x47\xf9\x62\x00\x00\xb4\xf0\x03\x02\xaa\x00\x02\x1f\xd6\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\xfd\x7b\xbe\xa9\xfd\x03\x00\x91\xf3\x0b\x00\xf9\x93\x00\x00\xb0\x60\x22\x41\x39\x40\x01\x00\x35\x80\x00\x00\x90\x00\xe4\x47\xf9\x80\x00\x00\xb4\x80\x00\x00\xb0\x00\x20\x40\xf9\xa1\xff\xff\x97\xd8\xff\xff\x97\x20\x00\x80\x52\x60\x22\x01\x39\xf3\x0b\x40\xf9\xfd\x7b\xc2\xa8\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\xdc\xff\xff\x17\xff\xc3\x00\xd1\xfd\x7b\x02\xa9\xfd\x83\x00\x91\xe8\x03\x1f\x2a\xe8\x03\x00\xb9\xbf\xc3\x1f\xb8\x20\x00\x80\xd2\x94\xff\xff\x97\xe0\x0b\x00\xf9\x80\x00\x80\xd2\x91\xff\xff\x97\xe0\x07\x00\xf9\x48\x01\x80\x52\xe8\x07\x00\xb9\xe9\x0b\x40\xf9\x28\x08\x80\x52\x28\x01\x00\x39\xe9\x07\x40\xf9\x48\x05\x80\x52\x28\x01\x00\xb9\xe8\x0b\x40\xf9\x01\x01\x40\x39\x00\x00\x00\x90\x00\x50\x23\x91\x93\xff\xff\x97\xe8\x07\x40\xf9\x01\x01\x40\xb9\x00\x00\x00\x90\x00\x94\x23\x91\x8e\xff\xff\x97\xe1\x07\x40\xb9\x00\x00\x00\x90\x00\xd4\x23\x91\x8a\xff\xff\x97\xe0\x0b\x40\xf9"), -Section(".comment", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xa8\x1c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x38\x00\x09\x00\x40\x00\x1d\x00\x1c\x00\x06\x00\x00\x00\x04\x00\x00"), -Section(".interp", 0x238, "\x2f\x6c\x69\x62\x2f\x6c\x64\x2d\x6c\x69\x6e\x75\x78\x2d\x61\x61\x72\x63\x68\x36\x34\x2e\x73\x6f\x2e\x31\x00"), -Section(".note.gnu.build-id", 0x254, "\x04\x00\x00\x00\x14\x00\x00\x00\x03\x00\x00\x00\x47\x4e\x55\x00\x59\xe4\x08\x6f\x15\x63\x56\x30\x44\x42\xf4\xde\x50\x36\x58\x37\x52\x6b\xf9\x3c"), -Section(".note.ABI-tag", 0x278, "\x04\x00\x00\x00\x10\x00\x00\x00\x01\x00\x00\x00\x47\x4e\x55\x00\x00\x00\x00\x00\x03\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00"), -Section(".gnu.hash", 0x298, "\x01\x00\x00\x00\x01\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".dynsym", 0x2B8, "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x0b\x00\x28\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x17\x00\x38\x10\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x17\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5b\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x22\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x77\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2e\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x29\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x86\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x34\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".dynstr", 0x3D8, "\x00\x5f\x5f\x63\x78\x61\x5f\x66\x69\x6e\x61\x6c\x69\x7a\x65\x00\x6d\x61\x6c\x6c\x6f\x63\x00\x5f\x5f\x6c\x69\x62\x63\x5f\x73\x74\x61\x72\x74\x5f\x6d\x61\x69\x6e\x00\x66\x72\x65\x65\x00\x61\x62\x6f\x72\x74\x00\x70\x72\x69\x6e\x74\x66\x00\x6c\x69\x62\x63\x2e\x73\x6f\x2e\x36\x00\x47\x4c\x49\x42\x43\x5f\x32\x2e\x31\x37\x00\x47\x4c\x49\x42\x43\x5f\x32\x2e\x33\x34\x00\x5f\x49\x54\x4d\x5f\x64\x65\x72\x65\x67\x69\x73\x74\x65\x72\x54\x4d\x43\x6c\x6f\x6e\x65\x54\x61\x62\x6c\x65\x00\x5f\x5f\x67\x6d\x6f\x6e\x5f\x73\x74\x61\x72\x74\x5f\x5f\x00\x5f\x49\x54\x4d\x5f\x72\x65\x67\x69\x73\x74\x65\x72\x54\x4d\x43\x6c\x6f\x6e\x65\x54\x61\x62\x6c\x65\x00"), -Section(".gnu.version", 0x478, "\x00\x00\x00\x00\x00\x00\x02\x00\x01\x00\x03\x00\x03\x00\x01\x00\x03\x00\x03\x00\x01\x00\x03\x00"), -Section(".gnu.version_r", 0x490, "\x01\x00\x02\x00\x3b\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x97\x91\x96\x06\x00\x00\x03\x00\x45\x00\x00\x00\x10\x00\x00\x00\xb4\x91\x96\x06\x00\x00\x02\x00\x50\x00\x00\x00\x00\x00\x00\x00"), -Section(".rela.dyn", 0x4C0, "\xc8\x0d\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x10\x08\x00\x00\x00\x00\x00\x00\xd0\x0d\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\xc0\x07\x00\x00\x00\x00\x00\x00\xd8\x0f\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x14\x08\x00\x00\x00\x00\x00\x00\x40\x10\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x40\x10\x01\x00\x00\x00\x00\x00\xc0\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xc8\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xd0\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe0\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x0a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".rela.plt", 0x580, "\x00\x10\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x08\x10\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x10\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x18\x10\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x20\x10\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x28\x10\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x09\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x30\x10\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x0b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".init", 0x628, "\x1f\x20\x03\xd5\xfd\x7b\xbf\xa9\xfd\x03\x00\x91\x40\x00\x00\x94\xfd\x7b\xc1\xa8\xc0\x03\x5f\xd6"), -Section(".plt", 0x640, "\xf0\x7b\xbf\xa9\x90\x00\x00\x90\x11\xfe\x47\xf9\x10\xe2\x3f\x91\x20\x02\x1f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x90\x00\x00\xb0\x11\x02\x40\xf9\x10\x02\x00\x91\x20\x02\x1f\xd6\x90\x00\x00\xb0\x11\x06\x40\xf9\x10\x22\x00\x91\x20\x02\x1f\xd6\x90\x00\x00\xb0\x11\x0a\x40\xf9\x10\x42\x00\x91\x20\x02\x1f\xd6\x90\x00\x00\xb0\x11\x0e\x40\xf9\x10\x62\x00\x91\x20\x02\x1f\xd6\x90\x00\x00\xb0\x11\x12\x40\xf9\x10\x82\x00\x91\x20\x02\x1f\xd6\x90\x00\x00\xb0\x11\x16\x40\xf9\x10\xa2\x00\x91\x20\x02\x1f\xd6\x90\x00\x00\xb0\x11\x1a\x40\xf9\x10\xc2\x00\x91\x20\x02\x1f\xd6"), -Section(".fini", 0x8BC, "\x1f\x20\x03\xd5\xfd\x7b\xbf\xa9\xfd\x03\x00\x91\xfd\x7b\xc1\xa8\xc0\x03\x5f\xd6"), -Section(".rodata", 0x8D0, "\x01\x00\x02\x00\x54\x68\x65\x20\x63\x68\x61\x72\x20\x69\x73\x3a\x20\x25\x63\x0a\x00\x54\x68\x65\x20\x69\x6e\x74\x20\x69\x73\x3a\x20\x25\x64\x0a\x00\x54\x68\x65\x20\x6c\x6f\x63\x61\x6c\x20\x76\x61\x72\x69\x61\x62\x6c\x65\x20\x69\x73\x3a\x20\x25\x64\x0a\x00"), -Section(".eh_frame_hdr", 0x910, "\x01\x1b\x03\x3b\x3c\x00\x00\x00\x06\x00\x00\x00\xf0\xfd\xff\xff\x54\x00\x00\x00\x40\xfe\xff\xff\x68\x00\x00\x00\x70\xfe\xff\xff\x7c\x00\x00\x00\xb0\xfe\xff\xff\x90\x00\x00\x00\x00\xff\xff\xff\xb4\x00\x00\x00\x04\xff\xff\xff\xdc\x00\x00\x00"), -Section(".eh_frame", 0x950, "\x10\x00\x00\x00\x00\x00\x00\x00\x01\x7a\x52\x00\x04\x78\x1e\x01\x1b\x0c\x1f\x00\x10\x00\x00\x00\x18\x00\x00\x00\x94\xfd\xff\xff\x34\x00\x00\x00\x00\x41\x07\x1e\x10\x00\x00\x00\x2c\x00\x00\x00\xd0\xfd\xff\xff\x30\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x40\x00\x00\x00\xec\xfd\xff\xff\x3c\x00\x00\x00\x00\x00\x00\x00\x20\x00\x00\x00\x54\x00\x00\x00\x18\xfe\xff\xff\x48\x00\x00\x00\x00\x41\x0e\x20\x9d\x04\x9e\x03\x42\x93\x02\x4e\xde\xdd\xd3\x0e\x00\x00\x00\x00\x10\x00\x00\x00\x78\x00\x00\x00\x44\xfe\xff\xff\x04\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x01\x7a\x52\x00\x01\x7c\x1e\x01\x1b\x0c\x1f\x00\x24\x00\x00\x00\x18\x00\x00\x00\x20\xfe\xff\xff\xa8\x00\x00\x00\x00\x44\x0e\x30\x48\x0c\x1d\x10\x9e\x02\x9d\x04\x02\x90\x0c\x1f\x30\x48\x0e\x00\xde\xdd\x00\x00\x00\x00\x00\x00"), -Section(".fini_array", 0x10DD0, "\xc0\x07\x00\x00\x00\x00\x00\x00"), -Section(".dynamic", 0x10DD8, "\x01\x00\x00\x00\x00\x00\x00\x00\x3b\x00\x00\x00\x00\x00\x00\x00\x0c\x00\x00\x00\x00\x00\x00\x00\x28\x06\x00\x00\x00\x00\x00\x00\x0d\x00\x00\x00\x00\x00\x00\x00\xbc\x08\x00\x00\x00\x00\x00\x00\x19\x00\x00\x00\x00\x00\x00\x00\xc8\x0d\x01\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x1a\x00\x00\x00\x00\x00\x00\x00\xd0\x0d\x01\x00\x00\x00\x00\x00\x1c\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\xf5\xfe\xff\x6f\x00\x00\x00\x00\x98\x02\x00\x00\x00\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\xd8\x03\x00\x00\x00\x00\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\xb8\x02\x00\x00\x00\x00\x00\x00\x0a\x00\x00\x00\x00\x00\x00\x00\xa0\x00\x00\x00\x00\x00\x00\x00\x0b\x00\x00\x00\x00\x00\x00\x00\x18\x00\x00\x00\x00\x00\x00\x00\x15\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\xe8\x0f\x01\x00\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\xa8\x00\x00\x00\x00\x00\x00\x00\x14\x00\x00\x00\x00\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x17\x00\x00\x00\x00\x00\x00\x00\x80\x05\x00\x00\x00\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\xc0\x04\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\xc0\x00\x00\x00\x00\x00\x00\x00\x09\x00\x00\x00\x00\x00\x00\x00\x18\x00\x00\x00\x00\x00\x00\x00\xfb\xff\xff\x6f\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\xfe\xff\xff\x6f\x00\x00\x00\x00\x90\x04\x00\x00\x00\x00\x00\x00\xff\xff\xff\x6f\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\xf0\xff\xff\x6f\x00\x00\x00\x00\x78\x04\x00\x00\x00\x00\x00\x00\xf9\xff\xff\x6f\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".init_array", 0x10DC8, "\x10\x08\x00\x00\x00\x00\x00\x00"), -Section(".got", 0x10FB8, "\xd8\x0d\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x14\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".got.plt", 0x10FE8, "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x06\x00\x00\x00\x00\x00\x00\x40\x06\x00\x00\x00\x00\x00\x00\x40\x06\x00\x00\x00\x00\x00\x00\x40\x06\x00\x00\x00\x00\x00\x00\x40\x06\x00\x00\x00\x00\x00\x00\x40\x06\x00\x00\x00\x00\x00\x00\x40\x06\x00\x00\x00\x00\x00\x00"), -Section(".data", 0x11038, "\x00\x00\x00\x00\x00\x00\x00\x00\x40\x10\x01\x00\x00\x00\x00\x00"), -Section(".text", 0x700, "\x1f\x20\x03\xd5\x1d\x00\x80\xd2\x1e\x00\x80\xd2\xe5\x03\x00\xaa\xe1\x03\x40\xf9\xe2\x23\x00\x91\xe6\x03\x00\x91\x80\x00\x00\x90\x00\xec\x47\xf9\x03\x00\x80\xd2\x04\x00\x80\xd2\xcd\xff\xff\x97\xdc\xff\xff\x97\x80\x00\x00\x90\x00\xe8\x47\xf9\x40\x00\x00\xb4\xd4\xff\xff\x17\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x80\x00\x00\xb0\x00\x20\x01\x91\x81\x00\x00\xb0\x21\x20\x01\x91\x3f\x00\x00\xeb\xc0\x00\x00\x54\x81\x00\x00\x90\x21\xe0\x47\xf9\x61\x00\x00\xb4\xf0\x03\x01\xaa\x00\x02\x1f\xd6\xc0\x03\x5f\xd6\x80\x00\x00\xb0\x00\x20\x01\x91\x81\x00\x00\xb0\x21\x20\x01\x91\x21\x00\x00\xcb\x22\xfc\x7f\xd3\x41\x0c\x81\x8b\x21\xfc\x41\x93\xc1\x00\x00\xb4\x82\x00\x00\x90\x42\xf0\x47\xf9\x62\x00\x00\xb4\xf0\x03\x02\xaa\x00\x02\x1f\xd6\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\xfd\x7b\xbe\xa9\xfd\x03\x00\x91\xf3\x0b\x00\xf9\x93\x00\x00\xb0\x60\x22\x41\x39\x40\x01\x00\x35\x80\x00\x00\x90\x00\xe4\x47\xf9\x80\x00\x00\xb4\x80\x00\x00\xb0\x00\x20\x40\xf9\xa1\xff\xff\x97\xd8\xff\xff\x97\x20\x00\x80\x52\x60\x22\x01\x39\xf3\x0b\x40\xf9\xfd\x7b\xc2\xa8\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\xdc\xff\xff\x17\xff\xc3\x00\xd1\xfd\x7b\x02\xa9\xfd\x83\x00\x91\xe8\x03\x1f\x2a\xe8\x03\x00\xb9\xbf\xc3\x1f\xb8\x20\x00\x80\xd2\x94\xff\xff\x97\xe0\x0b\x00\xf9\x80\x00\x80\xd2\x91\xff\xff\x97\xe0\x07\x00\xf9\x48\x01\x80\x52\xe8\x07\x00\xb9\xe9\x0b\x40\xf9\x28\x08\x80\x52\x28\x01\x00\x39\xe9\x07\x40\xf9\x48\x05\x80\x52\x28\x01\x00\xb9\xe8\x0b\x40\xf9\x01\x01\x40\x39\x00\x00\x00\x90\x00\x50\x23\x91\x93\xff\xff\x97\xe8\x07\x40\xf9\x01\x01\x40\xb9\x00\x00\x00\x90\x00\x94\x23\x91\x8e\xff\xff\x97\xe1\x07\x40\xb9\x00\x00\x00\x90\x00\xd4\x23\x91\x8a\xff\xff\x97\xe0\x0b\x40\xf9\x84\xff\xff\x97\xe0\x07\x40\xf9\x82\xff\xff\x97\xe0\x03\x40\xb9\xfd\x7b\x42\xa9\xff\xc3\x00\x91\xc0\x03\x5f\xd6")]), -Memmap([Annotation(Region(0x0,0xA17), Attr("segment","02 0 2584")), -Annotation(Region(0x700,0x733), Attr("symbol","\"_start\"")), -Annotation(Region(0x0,0x102), Attr("section","\".shstrtab\"")), -Annotation(Region(0x0,0x270), Attr("section","\".strtab\"")), -Annotation(Region(0x0,0x89F), Attr("section","\".symtab\"")), -Annotation(Region(0x0,0x46), Attr("section","\".comment\"")), -Annotation(Region(0x238,0x252), Attr("section","\".interp\"")), -Annotation(Region(0x254,0x277), Attr("section","\".note.gnu.build-id\"")), -Annotation(Region(0x278,0x297), Attr("section","\".note.ABI-tag\"")), -Annotation(Region(0x298,0x2B3), Attr("section","\".gnu.hash\"")), -Annotation(Region(0x2B8,0x3D7), Attr("section","\".dynsym\"")), -Annotation(Region(0x3D8,0x477), Attr("section","\".dynstr\"")), -Annotation(Region(0x478,0x48F), Attr("section","\".gnu.version\"")), -Annotation(Region(0x490,0x4BF), Attr("section","\".gnu.version_r\"")), -Annotation(Region(0x4C0,0x57F), Attr("section","\".rela.dyn\"")), -Annotation(Region(0x580,0x627), Attr("section","\".rela.plt\"")), -Annotation(Region(0x628,0x63F), Attr("section","\".init\"")), -Annotation(Region(0x640,0x6CF), Attr("section","\".plt\"")), -Annotation(Region(0x628,0x63F), Attr("code-region","()")), -Annotation(Region(0x640,0x6CF), Attr("code-region","()")), -Annotation(Region(0x700,0x733), Attr("symbol-info","_start 0x700 52")), -Annotation(Region(0x734,0x747), Attr("symbol","\"call_weak_fn\"")), -Annotation(Region(0x734,0x747), Attr("symbol-info","call_weak_fn 0x734 20")), -Annotation(Region(0x814,0x8BB), Attr("symbol","\"main\"")), -Annotation(Region(0x814,0x8BB), Attr("symbol-info","main 0x814 168")), -Annotation(Region(0x8BC,0x8CF), Attr("section","\".fini\"")), -Annotation(Region(0x8D0,0x90F), Attr("section","\".rodata\"")), -Annotation(Region(0x910,0x94B), Attr("section","\".eh_frame_hdr\"")), -Annotation(Region(0x950,0xA17), Attr("section","\".eh_frame\"")), -Annotation(Region(0x10DC8,0x11047), Attr("segment","03 0x10DC8 648")), -Annotation(Region(0x10DD0,0x10DD7), Attr("section","\".fini_array\"")), -Annotation(Region(0x10DD8,0x10FB7), Attr("section","\".dynamic\"")), -Annotation(Region(0x10DC8,0x10DCF), Attr("section","\".init_array\"")), -Annotation(Region(0x10FB8,0x10FE7), Attr("section","\".got\"")), -Annotation(Region(0x10FE8,0x11037), Attr("section","\".got.plt\"")), -Annotation(Region(0x11038,0x11047), Attr("section","\".data\"")), -Annotation(Region(0x700,0x8BB), Attr("section","\".text\"")), -Annotation(Region(0x700,0x8BB), Attr("code-region","()")), -Annotation(Region(0x8BC,0x8CF), Attr("code-region","()"))]), -Program(Tid(1_891, "%00000763"), Attrs([]), - Subs([Sub(Tid(1_866, "@__cxa_finalize"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x670"), -Attr("stub","()")]), "__cxa_finalize", Args([Arg(Tid(1_892, "%00000764"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("__cxa_finalize_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(1_202, "@__cxa_finalize"), - Attrs([Attr("address","0x670")]), Phis([]), -Defs([Def(Tid(1_498, "%000005da"), Attrs([Attr("address","0x670"), -Attr("insn","adrp x16, #69632")]), Var("R16",Imm(64)), Int(69632,64)), -Def(Tid(1_505, "%000005e1"), Attrs([Attr("address","0x674"), -Attr("insn","ldr x17, [x16, #0x8]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(1_511, "%000005e7"), Attrs([Attr("address","0x678"), -Attr("insn","add x16, x16, #0x8")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(8,64)))]), Jmps([Call(Tid(1_516, "%000005ec"), - Attrs([Attr("address","0x67C"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), -Sub(Tid(1_867, "@__do_global_dtors_aux"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x7C0")]), - "__do_global_dtors_aux", Args([Arg(Tid(1_893, "%00000765"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("__do_global_dtors_aux_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(758, "@__do_global_dtors_aux"), - Attrs([Attr("address","0x7C0")]), Phis([]), Defs([Def(Tid(762, "%000002fa"), - Attrs([Attr("address","0x7C0"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("#3",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(18446744073709551584,64))), -Def(Tid(768, "%00000300"), Attrs([Attr("address","0x7C0"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("#3",Imm(64)),Var("R29",Imm(64)),LittleEndian(),64)), -Def(Tid(774, "%00000306"), Attrs([Attr("address","0x7C0"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("#3",Imm(64)),Int(8,64)),Var("R30",Imm(64)),LittleEndian(),64)), -Def(Tid(778, "%0000030a"), Attrs([Attr("address","0x7C0"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("R31",Imm(64)), -Var("#3",Imm(64))), Def(Tid(784, "%00000310"), - Attrs([Attr("address","0x7C4"), Attr("insn","mov x29, sp")]), - Var("R29",Imm(64)), Var("R31",Imm(64))), Def(Tid(792, "%00000318"), - Attrs([Attr("address","0x7C8"), Attr("insn","str x19, [sp, #0x10]")]), - Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(16,64)),Var("R19",Imm(64)),LittleEndian(),64)), -Def(Tid(797, "%0000031d"), Attrs([Attr("address","0x7CC"), -Attr("insn","adrp x19, #69632")]), Var("R19",Imm(64)), Int(69632,64)), -Def(Tid(804, "%00000324"), Attrs([Attr("address","0x7D0"), -Attr("insn","ldrb w0, [x19, #0x48]")]), Var("R0",Imm(64)), -UNSIGNED(64,Load(Var("mem",Mem(64,8)),PLUS(Var("R19",Imm(64)),Int(72,64)),LittleEndian(),8)))]), -Jmps([Goto(Tid(811, "%0000032b"), Attrs([Attr("address","0x7D4"), -Attr("insn","cbnz w0, #0x28")]), - NEQ(Extract(31,0,Var("R0",Imm(64))),Int(0,32)), -Direct(Tid(809, "%00000329"))), Goto(Tid(1_868, "%0000074c"), Attrs([]), - Int(1,1), Direct(Tid(1_147, "%0000047b")))])), Blk(Tid(1_147, "%0000047b"), - Attrs([Attr("address","0x7D8")]), Phis([]), -Defs([Def(Tid(1_150, "%0000047e"), Attrs([Attr("address","0x7D8"), -Attr("insn","adrp x0, #65536")]), Var("R0",Imm(64)), Int(65536,64)), -Def(Tid(1_157, "%00000485"), Attrs([Attr("address","0x7DC"), -Attr("insn","ldr x0, [x0, #0xfc8]")]), Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(4040,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(1_163, "%0000048b"), Attrs([Attr("address","0x7E0"), -Attr("insn","cbz x0, #0x10")]), EQ(Var("R0",Imm(64)),Int(0,64)), -Direct(Tid(1_161, "%00000489"))), Goto(Tid(1_869, "%0000074d"), Attrs([]), - Int(1,1), Direct(Tid(1_186, "%000004a2")))])), Blk(Tid(1_186, "%000004a2"), - Attrs([Attr("address","0x7E4")]), Phis([]), -Defs([Def(Tid(1_189, "%000004a5"), Attrs([Attr("address","0x7E4"), -Attr("insn","adrp x0, #69632")]), Var("R0",Imm(64)), Int(69632,64)), -Def(Tid(1_196, "%000004ac"), Attrs([Attr("address","0x7E8"), -Attr("insn","ldr x0, [x0, #0x40]")]), Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(64,64)),LittleEndian(),64)), -Def(Tid(1_201, "%000004b1"), Attrs([Attr("address","0x7EC"), -Attr("insn","bl #-0x17c")]), Var("R30",Imm(64)), Int(2032,64))]), -Jmps([Call(Tid(1_204, "%000004b4"), Attrs([Attr("address","0x7EC"), -Attr("insn","bl #-0x17c")]), Int(1,1), -(Direct(Tid(1_866, "@__cxa_finalize")),Direct(Tid(1_161, "%00000489"))))])), -Blk(Tid(1_161, "%00000489"), Attrs([Attr("address","0x7F0")]), Phis([]), -Defs([Def(Tid(1_169, "%00000491"), Attrs([Attr("address","0x7F0"), -Attr("insn","bl #-0xa0")]), Var("R30",Imm(64)), Int(2036,64))]), -Jmps([Call(Tid(1_171, "%00000493"), Attrs([Attr("address","0x7F0"), -Attr("insn","bl #-0xa0")]), Int(1,1), -(Direct(Tid(1_880, "@deregister_tm_clones")),Direct(Tid(1_173, "%00000495"))))])), -Blk(Tid(1_173, "%00000495"), Attrs([Attr("address","0x7F4")]), Phis([]), -Defs([Def(Tid(1_176, "%00000498"), Attrs([Attr("address","0x7F4"), -Attr("insn","mov w0, #0x1")]), Var("R0",Imm(64)), Int(1,64)), -Def(Tid(1_184, "%000004a0"), Attrs([Attr("address","0x7F8"), -Attr("insn","strb w0, [x19, #0x48]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R19",Imm(64)),Int(72,64)),Extract(7,0,Var("R0",Imm(64))),LittleEndian(),8))]), -Jmps([Goto(Tid(1_870, "%0000074e"), Attrs([]), Int(1,1), -Direct(Tid(809, "%00000329")))])), Blk(Tid(809, "%00000329"), - Attrs([Attr("address","0x7FC")]), Phis([]), Defs([Def(Tid(819, "%00000333"), - Attrs([Attr("address","0x7FC"), Attr("insn","ldr x19, [sp, #0x10]")]), - Var("R19",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(16,64)),LittleEndian(),64)), -Def(Tid(826, "%0000033a"), Attrs([Attr("address","0x800"), -Attr("insn","ldp x29, x30, [sp], #0x20")]), Var("R29",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(831, "%0000033f"), Attrs([Attr("address","0x800"), -Attr("insn","ldp x29, x30, [sp], #0x20")]), Var("R30",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(835, "%00000343"), Attrs([Attr("address","0x800"), -Attr("insn","ldp x29, x30, [sp], #0x20")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(32,64)))]), Jmps([Call(Tid(840, "%00000348"), - Attrs([Attr("address","0x804"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), Sub(Tid(1_871, "@__libc_start_main"), - Attrs([Attr("c.proto","signed (*)(signed (*)(signed , char** , char** );* main, signed , char** , \nvoid* auxv)"), -Attr("address","0x660"), Attr("stub","()")]), "__libc_start_main", - Args([Arg(Tid(1_894, "%00000766"), - Attrs([Attr("c.layout","**[ : 64]"), -Attr("c.data","Top:u64 ptr ptr"), -Attr("c.type","signed (*)(signed , char** , char** );*")]), - Var("__libc_start_main_main",Imm(64)), Var("R0",Imm(64)), In()), -Arg(Tid(1_895, "%00000767"), Attrs([Attr("c.layout","[signed : 32]"), -Attr("c.data","Top:u32"), Attr("c.type","signed")]), - Var("__libc_start_main_arg2",Imm(32)), LOW(32,Var("R1",Imm(64))), In()), -Arg(Tid(1_896, "%00000768"), Attrs([Attr("c.layout","**[char : 8]"), -Attr("c.data","Top:u8 ptr ptr"), Attr("c.type","char**")]), - Var("__libc_start_main_arg3",Imm(64)), Var("R2",Imm(64)), Both()), -Arg(Tid(1_897, "%00000769"), Attrs([Attr("c.layout","*[ : 8]"), -Attr("c.data","{} ptr"), Attr("c.type","void*")]), - Var("__libc_start_main_auxv",Imm(64)), Var("R3",Imm(64)), Both()), -Arg(Tid(1_898, "%0000076a"), Attrs([Attr("c.layout","[signed : 32]"), -Attr("c.data","Top:u32"), Attr("c.type","signed")]), - Var("__libc_start_main_result",Imm(32)), LOW(32,Var("R0",Imm(64))), -Out())]), Blks([Blk(Tid(591, "@__libc_start_main"), - Attrs([Attr("address","0x660")]), Phis([]), -Defs([Def(Tid(1_476, "%000005c4"), Attrs([Attr("address","0x660"), -Attr("insn","adrp x16, #69632")]), Var("R16",Imm(64)), Int(69632,64)), -Def(Tid(1_483, "%000005cb"), Attrs([Attr("address","0x664"), -Attr("insn","ldr x17, [x16]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R16",Imm(64)),LittleEndian(),64)), -Def(Tid(1_489, "%000005d1"), Attrs([Attr("address","0x668"), -Attr("insn","add x16, x16, #0x0")]), Var("R16",Imm(64)), -Var("R16",Imm(64)))]), Jmps([Call(Tid(1_494, "%000005d6"), - Attrs([Attr("address","0x66C"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), Sub(Tid(1_872, "@_fini"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x8BC")]), - "_fini", Args([Arg(Tid(1_899, "%0000076b"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("_fini_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(31, "@_fini"), - Attrs([Attr("address","0x8BC")]), Phis([]), Defs([Def(Tid(37, "%00000025"), - Attrs([Attr("address","0x8C0"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("#0",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(18446744073709551600,64))), -Def(Tid(43, "%0000002b"), Attrs([Attr("address","0x8C0"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("#0",Imm(64)),Var("R29",Imm(64)),LittleEndian(),64)), -Def(Tid(49, "%00000031"), Attrs([Attr("address","0x8C0"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("#0",Imm(64)),Int(8,64)),Var("R30",Imm(64)),LittleEndian(),64)), -Def(Tid(53, "%00000035"), Attrs([Attr("address","0x8C0"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("R31",Imm(64)), -Var("#0",Imm(64))), Def(Tid(59, "%0000003b"), Attrs([Attr("address","0x8C4"), -Attr("insn","mov x29, sp")]), Var("R29",Imm(64)), Var("R31",Imm(64))), -Def(Tid(66, "%00000042"), Attrs([Attr("address","0x8C8"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R29",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(71, "%00000047"), Attrs([Attr("address","0x8C8"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R30",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(75, "%0000004b"), Attrs([Attr("address","0x8C8"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(16,64)))]), Jmps([Call(Tid(80, "%00000050"), - Attrs([Attr("address","0x8CC"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), Sub(Tid(1_873, "@_init"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x628")]), - "_init", Args([Arg(Tid(1_900, "%0000076c"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("_init_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(1_654, "@_init"), - Attrs([Attr("address","0x628")]), Phis([]), -Defs([Def(Tid(1_660, "%0000067c"), Attrs([Attr("address","0x62C"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("#7",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(18446744073709551600,64))), -Def(Tid(1_666, "%00000682"), Attrs([Attr("address","0x62C"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("#7",Imm(64)),Var("R29",Imm(64)),LittleEndian(),64)), -Def(Tid(1_672, "%00000688"), Attrs([Attr("address","0x62C"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("#7",Imm(64)),Int(8,64)),Var("R30",Imm(64)),LittleEndian(),64)), -Def(Tid(1_676, "%0000068c"), Attrs([Attr("address","0x62C"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("R31",Imm(64)), -Var("#7",Imm(64))), Def(Tid(1_682, "%00000692"), - Attrs([Attr("address","0x630"), Attr("insn","mov x29, sp")]), - Var("R29",Imm(64)), Var("R31",Imm(64))), Def(Tid(1_687, "%00000697"), - Attrs([Attr("address","0x634"), Attr("insn","bl #0x100")]), - Var("R30",Imm(64)), Int(1592,64))]), Jmps([Call(Tid(1_689, "%00000699"), - Attrs([Attr("address","0x634"), Attr("insn","bl #0x100")]), Int(1,1), -(Direct(Tid(1_878, "@call_weak_fn")),Direct(Tid(1_691, "%0000069b"))))])), -Blk(Tid(1_691, "%0000069b"), Attrs([Attr("address","0x638")]), Phis([]), -Defs([Def(Tid(1_696, "%000006a0"), Attrs([Attr("address","0x638"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R29",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(1_701, "%000006a5"), Attrs([Attr("address","0x638"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R30",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(1_705, "%000006a9"), Attrs([Attr("address","0x638"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(16,64)))]), Jmps([Call(Tid(1_710, "%000006ae"), - Attrs([Attr("address","0x63C"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), Sub(Tid(1_874, "@_start"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x700"), -Attr("entry-point","()")]), "_start", Args([Arg(Tid(1_901, "%0000076d"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("_start_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(528, "@_start"), - Attrs([Attr("address","0x700")]), Phis([]), Defs([Def(Tid(533, "%00000215"), - Attrs([Attr("address","0x704"), Attr("insn","mov x29, #0x0")]), - Var("R29",Imm(64)), Int(0,64)), Def(Tid(538, "%0000021a"), - Attrs([Attr("address","0x708"), Attr("insn","mov x30, #0x0")]), - Var("R30",Imm(64)), Int(0,64)), Def(Tid(544, "%00000220"), - Attrs([Attr("address","0x70C"), Attr("insn","mov x5, x0")]), - Var("R5",Imm(64)), Var("R0",Imm(64))), Def(Tid(551, "%00000227"), - Attrs([Attr("address","0x710"), Attr("insn","ldr x1, [sp]")]), - Var("R1",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(557, "%0000022d"), Attrs([Attr("address","0x714"), -Attr("insn","add x2, sp, #0x8")]), Var("R2",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(8,64))), Def(Tid(563, "%00000233"), - Attrs([Attr("address","0x718"), Attr("insn","mov x6, sp")]), - Var("R6",Imm(64)), Var("R31",Imm(64))), Def(Tid(568, "%00000238"), - Attrs([Attr("address","0x71C"), Attr("insn","adrp x0, #65536")]), - Var("R0",Imm(64)), Int(65536,64)), Def(Tid(575, "%0000023f"), - Attrs([Attr("address","0x720"), Attr("insn","ldr x0, [x0, #0xfd8]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(4056,64)),LittleEndian(),64)), -Def(Tid(580, "%00000244"), Attrs([Attr("address","0x724"), -Attr("insn","mov x3, #0x0")]), Var("R3",Imm(64)), Int(0,64)), -Def(Tid(585, "%00000249"), Attrs([Attr("address","0x728"), -Attr("insn","mov x4, #0x0")]), Var("R4",Imm(64)), Int(0,64)), -Def(Tid(590, "%0000024e"), Attrs([Attr("address","0x72C"), -Attr("insn","bl #-0xcc")]), Var("R30",Imm(64)), Int(1840,64))]), -Jmps([Call(Tid(593, "%00000251"), Attrs([Attr("address","0x72C"), -Attr("insn","bl #-0xcc")]), Int(1,1), -(Direct(Tid(1_871, "@__libc_start_main")),Direct(Tid(595, "%00000253"))))])), -Blk(Tid(595, "%00000253"), Attrs([Attr("address","0x730")]), Phis([]), -Defs([Def(Tid(598, "%00000256"), Attrs([Attr("address","0x730"), -Attr("insn","bl #-0x90")]), Var("R30",Imm(64)), Int(1844,64))]), -Jmps([Call(Tid(601, "%00000259"), Attrs([Attr("address","0x730"), -Attr("insn","bl #-0x90")]), Int(1,1), -(Direct(Tid(1_877, "@abort")),Direct(Tid(1_875, "%00000753"))))])), -Blk(Tid(1_875, "%00000753"), Attrs([]), Phis([]), Defs([]), -Jmps([Call(Tid(1_876, "%00000754"), Attrs([]), Int(1,1), -(Direct(Tid(1_878, "@call_weak_fn")),))]))])), Sub(Tid(1_877, "@abort"), - Attrs([Attr("noreturn","()"), Attr("c.proto","void (*)(void)"), -Attr("address","0x6A0"), Attr("stub","()")]), "abort", Args([]), -Blks([Blk(Tid(599, "@abort"), Attrs([Attr("address","0x6A0")]), Phis([]), -Defs([Def(Tid(1_564, "%0000061c"), Attrs([Attr("address","0x6A0"), -Attr("insn","adrp x16, #69632")]), Var("R16",Imm(64)), Int(69632,64)), -Def(Tid(1_571, "%00000623"), Attrs([Attr("address","0x6A4"), -Attr("insn","ldr x17, [x16, #0x20]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(32,64)),LittleEndian(),64)), -Def(Tid(1_577, "%00000629"), Attrs([Attr("address","0x6A8"), -Attr("insn","add x16, x16, #0x20")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(32,64)))]), Jmps([Call(Tid(1_582, "%0000062e"), - Attrs([Attr("address","0x6AC"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), Sub(Tid(1_878, "@call_weak_fn"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x734")]), - "call_weak_fn", Args([Arg(Tid(1_902, "%0000076e"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("call_weak_fn_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(603, "@call_weak_fn"), - Attrs([Attr("address","0x734")]), Phis([]), Defs([Def(Tid(606, "%0000025e"), - Attrs([Attr("address","0x734"), Attr("insn","adrp x0, #65536")]), - Var("R0",Imm(64)), Int(65536,64)), Def(Tid(613, "%00000265"), - Attrs([Attr("address","0x738"), Attr("insn","ldr x0, [x0, #0xfd0]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(4048,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(619, "%0000026b"), Attrs([Attr("address","0x73C"), -Attr("insn","cbz x0, #0x8")]), EQ(Var("R0",Imm(64)),Int(0,64)), -Direct(Tid(617, "%00000269"))), Goto(Tid(1_879, "%00000757"), Attrs([]), - Int(1,1), Direct(Tid(1_266, "%000004f2")))])), Blk(Tid(617, "%00000269"), - Attrs([Attr("address","0x744")]), Phis([]), Defs([]), -Jmps([Call(Tid(625, "%00000271"), Attrs([Attr("address","0x744"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))])), -Blk(Tid(1_266, "%000004f2"), Attrs([Attr("address","0x740")]), Phis([]), -Defs([]), Jmps([Goto(Tid(1_269, "%000004f5"), Attrs([Attr("address","0x740"), -Attr("insn","b #-0xb0")]), Int(1,1), -Direct(Tid(1_267, "@__gmon_start__")))])), Blk(Tid(1_267, "@__gmon_start__"), - Attrs([Attr("address","0x690")]), Phis([]), -Defs([Def(Tid(1_542, "%00000606"), Attrs([Attr("address","0x690"), -Attr("insn","adrp x16, #69632")]), Var("R16",Imm(64)), Int(69632,64)), -Def(Tid(1_549, "%0000060d"), Attrs([Attr("address","0x694"), -Attr("insn","ldr x17, [x16, #0x18]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(24,64)),LittleEndian(),64)), -Def(Tid(1_555, "%00000613"), Attrs([Attr("address","0x698"), -Attr("insn","add x16, x16, #0x18")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(24,64)))]), Jmps([Call(Tid(1_560, "%00000618"), - Attrs([Attr("address","0x69C"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), -Sub(Tid(1_880, "@deregister_tm_clones"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x750")]), - "deregister_tm_clones", Args([Arg(Tid(1_903, "%0000076f"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("deregister_tm_clones_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(631, "@deregister_tm_clones"), - Attrs([Attr("address","0x750")]), Phis([]), Defs([Def(Tid(634, "%0000027a"), - Attrs([Attr("address","0x750"), Attr("insn","adrp x0, #69632")]), - Var("R0",Imm(64)), Int(69632,64)), Def(Tid(640, "%00000280"), - Attrs([Attr("address","0x754"), Attr("insn","add x0, x0, #0x48")]), - Var("R0",Imm(64)), PLUS(Var("R0",Imm(64)),Int(72,64))), -Def(Tid(645, "%00000285"), Attrs([Attr("address","0x758"), -Attr("insn","adrp x1, #69632")]), Var("R1",Imm(64)), Int(69632,64)), -Def(Tid(651, "%0000028b"), Attrs([Attr("address","0x75C"), -Attr("insn","add x1, x1, #0x48")]), Var("R1",Imm(64)), -PLUS(Var("R1",Imm(64)),Int(72,64))), Def(Tid(657, "%00000291"), - Attrs([Attr("address","0x760"), Attr("insn","cmp x1, x0")]), - Var("#1",Imm(64)), NOT(Var("R0",Imm(64)))), Def(Tid(662, "%00000296"), - Attrs([Attr("address","0x760"), Attr("insn","cmp x1, x0")]), - Var("#2",Imm(64)), PLUS(Var("R1",Imm(64)),NOT(Var("R0",Imm(64))))), -Def(Tid(668, "%0000029c"), Attrs([Attr("address","0x760"), -Attr("insn","cmp x1, x0")]), Var("VF",Imm(1)), -NEQ(SIGNED(65,PLUS(Var("#2",Imm(64)),Int(1,64))),PLUS(PLUS(SIGNED(65,Var("R1",Imm(64))),SIGNED(65,Var("#1",Imm(64)))),Int(1,65)))), -Def(Tid(674, "%000002a2"), Attrs([Attr("address","0x760"), -Attr("insn","cmp x1, x0")]), Var("CF",Imm(1)), -NEQ(UNSIGNED(65,PLUS(Var("#2",Imm(64)),Int(1,64))),PLUS(PLUS(UNSIGNED(65,Var("R1",Imm(64))),UNSIGNED(65,Var("#1",Imm(64)))),Int(1,65)))), -Def(Tid(678, "%000002a6"), Attrs([Attr("address","0x760"), -Attr("insn","cmp x1, x0")]), Var("ZF",Imm(1)), -EQ(PLUS(Var("#2",Imm(64)),Int(1,64)),Int(0,64))), Def(Tid(682, "%000002aa"), - Attrs([Attr("address","0x760"), Attr("insn","cmp x1, x0")]), - Var("NF",Imm(1)), Extract(63,63,PLUS(Var("#2",Imm(64)),Int(1,64))))]), -Jmps([Goto(Tid(688, "%000002b0"), Attrs([Attr("address","0x764"), -Attr("insn","b.eq #0x18")]), EQ(Var("ZF",Imm(1)),Int(1,1)), -Direct(Tid(686, "%000002ae"))), Goto(Tid(1_881, "%00000759"), Attrs([]), - Int(1,1), Direct(Tid(1_236, "%000004d4")))])), Blk(Tid(1_236, "%000004d4"), - Attrs([Attr("address","0x768")]), Phis([]), -Defs([Def(Tid(1_239, "%000004d7"), Attrs([Attr("address","0x768"), -Attr("insn","adrp x1, #65536")]), Var("R1",Imm(64)), Int(65536,64)), -Def(Tid(1_246, "%000004de"), Attrs([Attr("address","0x76C"), -Attr("insn","ldr x1, [x1, #0xfc0]")]), Var("R1",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R1",Imm(64)),Int(4032,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(1_251, "%000004e3"), Attrs([Attr("address","0x770"), -Attr("insn","cbz x1, #0xc")]), EQ(Var("R1",Imm(64)),Int(0,64)), -Direct(Tid(686, "%000002ae"))), Goto(Tid(1_882, "%0000075a"), Attrs([]), - Int(1,1), Direct(Tid(1_255, "%000004e7")))])), Blk(Tid(686, "%000002ae"), - Attrs([Attr("address","0x77C")]), Phis([]), Defs([]), -Jmps([Call(Tid(694, "%000002b6"), Attrs([Attr("address","0x77C"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))])), -Blk(Tid(1_255, "%000004e7"), Attrs([Attr("address","0x774")]), Phis([]), -Defs([Def(Tid(1_259, "%000004eb"), Attrs([Attr("address","0x774"), -Attr("insn","mov x16, x1")]), Var("R16",Imm(64)), Var("R1",Imm(64)))]), -Jmps([Call(Tid(1_264, "%000004f0"), Attrs([Attr("address","0x778"), -Attr("insn","br x16")]), Int(1,1), (Indirect(Var("R16",Imm(64))),))]))])), -Sub(Tid(1_883, "@frame_dummy"), Attrs([Attr("c.proto","signed (*)(void)"), -Attr("address","0x810")]), "frame_dummy", Args([Arg(Tid(1_904, "%00000770"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("frame_dummy_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(846, "@frame_dummy"), - Attrs([Attr("address","0x810")]), Phis([]), Defs([]), -Jmps([Call(Tid(848, "%00000350"), Attrs([Attr("address","0x810"), -Attr("insn","b #-0x90")]), Int(1,1), -(Direct(Tid(1_888, "@register_tm_clones")),))]))])), Sub(Tid(1_884, "@free"), - Attrs([Attr("c.proto","void (*)(void* ptr)"), Attr("address","0x6B0"), -Attr("stub","()")]), "free", Args([Arg(Tid(1_905, "%00000771"), - Attrs([Attr("c.layout","*[ : 8]"), Attr("c.data","{} ptr"), -Attr("c.type","void*")]), Var("free_ptr",Imm(64)), Var("R0",Imm(64)), -Both())]), Blks([Blk(Tid(1_095, "@free"), Attrs([Attr("address","0x6B0")]), - Phis([]), Defs([Def(Tid(1_586, "%00000632"), Attrs([Attr("address","0x6B0"), -Attr("insn","adrp x16, #69632")]), Var("R16",Imm(64)), Int(69632,64)), -Def(Tid(1_593, "%00000639"), Attrs([Attr("address","0x6B4"), -Attr("insn","ldr x17, [x16, #0x28]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(40,64)),LittleEndian(),64)), -Def(Tid(1_599, "%0000063f"), Attrs([Attr("address","0x6B8"), -Attr("insn","add x16, x16, #0x28")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(40,64)))]), Jmps([Call(Tid(1_604, "%00000644"), - Attrs([Attr("address","0x6BC"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), Sub(Tid(1_885, "@main"), - Attrs([Attr("c.proto","signed (*)(signed argc, const char** argv)"), -Attr("address","0x814")]), "main", Args([Arg(Tid(1_906, "%00000772"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("main_argc",Imm(32)), -LOW(32,Var("R0",Imm(64))), In()), Arg(Tid(1_907, "%00000773"), - Attrs([Attr("c.layout","**[char : 8]"), Attr("c.data","Top:u8 ptr ptr"), -Attr("c.type"," const char**")]), Var("main_argv",Imm(64)), -Var("R1",Imm(64)), Both()), Arg(Tid(1_908, "%00000774"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("main_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(850, "@main"), - Attrs([Attr("address","0x814")]), Phis([]), Defs([Def(Tid(854, "%00000356"), - Attrs([Attr("address","0x814"), Attr("insn","sub sp, sp, #0x30")]), - Var("R31",Imm(64)), PLUS(Var("R31",Imm(64)),Int(18446744073709551568,64))), -Def(Tid(860, "%0000035c"), Attrs([Attr("address","0x818"), -Attr("insn","stp x29, x30, [sp, #0x20]")]), Var("#4",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(32,64))), Def(Tid(866, "%00000362"), - Attrs([Attr("address","0x818"), Attr("insn","stp x29, x30, [sp, #0x20]")]), - Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("#4",Imm(64)),Var("R29",Imm(64)),LittleEndian(),64)), -Def(Tid(872, "%00000368"), Attrs([Attr("address","0x818"), -Attr("insn","stp x29, x30, [sp, #0x20]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("#4",Imm(64)),Int(8,64)),Var("R30",Imm(64)),LittleEndian(),64)), -Def(Tid(878, "%0000036e"), Attrs([Attr("address","0x81C"), -Attr("insn","add x29, sp, #0x20")]), Var("R29",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(32,64))), Def(Tid(883, "%00000373"), - Attrs([Attr("address","0x820"), Attr("insn","mov w8, wzr")]), - Var("R8",Imm(64)), Int(0,64)), Def(Tid(891, "%0000037b"), - Attrs([Attr("address","0x824"), Attr("insn","str w8, [sp]")]), - Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("R31",Imm(64)),Extract(31,0,Var("R8",Imm(64))),LittleEndian(),32)), -Def(Tid(898, "%00000382"), Attrs([Attr("address","0x828"), -Attr("insn","stur wzr, [x29, #-0x4]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R29",Imm(64)),Int(18446744073709551612,64)),Int(0,32),LittleEndian(),32)), -Def(Tid(903, "%00000387"), Attrs([Attr("address","0x82C"), -Attr("insn","mov x0, #0x1")]), Var("R0",Imm(64)), Int(1,64)), -Def(Tid(908, "%0000038c"), Attrs([Attr("address","0x830"), -Attr("insn","bl #-0x1b0")]), Var("R30",Imm(64)), Int(2100,64))]), -Jmps([Call(Tid(911, "%0000038f"), Attrs([Attr("address","0x830"), -Attr("insn","bl #-0x1b0")]), Int(1,1), -(Direct(Tid(1_886, "@malloc")),Direct(Tid(913, "%00000391"))))])), -Blk(Tid(913, "%00000391"), Attrs([Attr("address","0x834")]), Phis([]), -Defs([Def(Tid(919, "%00000397"), Attrs([Attr("address","0x834"), -Attr("insn","str x0, [sp, #0x10]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(16,64)),Var("R0",Imm(64)),LittleEndian(),64)), -Def(Tid(924, "%0000039c"), Attrs([Attr("address","0x838"), -Attr("insn","mov x0, #0x4")]), Var("R0",Imm(64)), Int(4,64)), -Def(Tid(929, "%000003a1"), Attrs([Attr("address","0x83C"), -Attr("insn","bl #-0x1bc")]), Var("R30",Imm(64)), Int(2112,64))]), -Jmps([Call(Tid(931, "%000003a3"), Attrs([Attr("address","0x83C"), -Attr("insn","bl #-0x1bc")]), Int(1,1), -(Direct(Tid(1_886, "@malloc")),Direct(Tid(933, "%000003a5"))))])), -Blk(Tid(933, "%000003a5"), Attrs([Attr("address","0x840")]), Phis([]), -Defs([Def(Tid(939, "%000003ab"), Attrs([Attr("address","0x840"), -Attr("insn","str x0, [sp, #0x8]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),Var("R0",Imm(64)),LittleEndian(),64)), -Def(Tid(944, "%000003b0"), Attrs([Attr("address","0x844"), -Attr("insn","mov w8, #0xa")]), Var("R8",Imm(64)), Int(10,64)), -Def(Tid(952, "%000003b8"), Attrs([Attr("address","0x848"), -Attr("insn","str w8, [sp, #0x4]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(4,64)),Extract(31,0,Var("R8",Imm(64))),LittleEndian(),32)), -Def(Tid(959, "%000003bf"), Attrs([Attr("address","0x84C"), -Attr("insn","ldr x9, [sp, #0x10]")]), Var("R9",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(16,64)),LittleEndian(),64)), -Def(Tid(964, "%000003c4"), Attrs([Attr("address","0x850"), -Attr("insn","mov w8, #0x41")]), Var("R8",Imm(64)), Int(65,64)), -Def(Tid(972, "%000003cc"), Attrs([Attr("address","0x854"), -Attr("insn","strb w8, [x9]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("R9",Imm(64)),Extract(7,0,Var("R8",Imm(64))),LittleEndian(),8)), -Def(Tid(979, "%000003d3"), Attrs([Attr("address","0x858"), -Attr("insn","ldr x9, [sp, #0x8]")]), Var("R9",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(984, "%000003d8"), Attrs([Attr("address","0x85C"), -Attr("insn","mov w8, #0x2a")]), Var("R8",Imm(64)), Int(42,64)), -Def(Tid(992, "%000003e0"), Attrs([Attr("address","0x860"), -Attr("insn","str w8, [x9]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("R9",Imm(64)),Extract(31,0,Var("R8",Imm(64))),LittleEndian(),32)), -Def(Tid(999, "%000003e7"), Attrs([Attr("address","0x864"), -Attr("insn","ldr x8, [sp, #0x10]")]), Var("R8",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(16,64)),LittleEndian(),64)), -Def(Tid(1_006, "%000003ee"), Attrs([Attr("address","0x868"), -Attr("insn","ldrb w1, [x8]")]), Var("R1",Imm(64)), -UNSIGNED(64,Load(Var("mem",Mem(64,8)),Var("R8",Imm(64)),LittleEndian(),8))), -Def(Tid(1_011, "%000003f3"), Attrs([Attr("address","0x86C"), -Attr("insn","adrp x0, #0")]), Var("R0",Imm(64)), Int(0,64)), -Def(Tid(1_017, "%000003f9"), Attrs([Attr("address","0x870"), -Attr("insn","add x0, x0, #0x8d4")]), Var("R0",Imm(64)), -PLUS(Var("R0",Imm(64)),Int(2260,64))), Def(Tid(1_022, "%000003fe"), - Attrs([Attr("address","0x874"), Attr("insn","bl #-0x1b4")]), - Var("R30",Imm(64)), Int(2168,64))]), Jmps([Call(Tid(1_025, "%00000401"), - Attrs([Attr("address","0x874"), Attr("insn","bl #-0x1b4")]), Int(1,1), -(Direct(Tid(1_887, "@printf")),Direct(Tid(1_027, "%00000403"))))])), -Blk(Tid(1_027, "%00000403"), Attrs([Attr("address","0x878")]), Phis([]), -Defs([Def(Tid(1_032, "%00000408"), Attrs([Attr("address","0x878"), -Attr("insn","ldr x8, [sp, #0x8]")]), Var("R8",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(1_039, "%0000040f"), Attrs([Attr("address","0x87C"), -Attr("insn","ldr w1, [x8]")]), Var("R1",Imm(64)), -UNSIGNED(64,Load(Var("mem",Mem(64,8)),Var("R8",Imm(64)),LittleEndian(),32))), -Def(Tid(1_044, "%00000414"), Attrs([Attr("address","0x880"), -Attr("insn","adrp x0, #0")]), Var("R0",Imm(64)), Int(0,64)), -Def(Tid(1_050, "%0000041a"), Attrs([Attr("address","0x884"), -Attr("insn","add x0, x0, #0x8e5")]), Var("R0",Imm(64)), -PLUS(Var("R0",Imm(64)),Int(2277,64))), Def(Tid(1_055, "%0000041f"), - Attrs([Attr("address","0x888"), Attr("insn","bl #-0x1c8")]), - Var("R30",Imm(64)), Int(2188,64))]), Jmps([Call(Tid(1_057, "%00000421"), - Attrs([Attr("address","0x888"), Attr("insn","bl #-0x1c8")]), Int(1,1), -(Direct(Tid(1_887, "@printf")),Direct(Tid(1_059, "%00000423"))))])), -Blk(Tid(1_059, "%00000423"), Attrs([Attr("address","0x88C")]), Phis([]), -Defs([Def(Tid(1_064, "%00000428"), Attrs([Attr("address","0x88C"), -Attr("insn","ldr w1, [sp, #0x4]")]), Var("R1",Imm(64)), -UNSIGNED(64,Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(4,64)),LittleEndian(),32))), -Def(Tid(1_069, "%0000042d"), Attrs([Attr("address","0x890"), -Attr("insn","adrp x0, #0")]), Var("R0",Imm(64)), Int(0,64)), -Def(Tid(1_075, "%00000433"), Attrs([Attr("address","0x894"), -Attr("insn","add x0, x0, #0x8f5")]), Var("R0",Imm(64)), -PLUS(Var("R0",Imm(64)),Int(2293,64))), Def(Tid(1_080, "%00000438"), - Attrs([Attr("address","0x898"), Attr("insn","bl #-0x1d8")]), - Var("R30",Imm(64)), Int(2204,64))]), Jmps([Call(Tid(1_082, "%0000043a"), - Attrs([Attr("address","0x898"), Attr("insn","bl #-0x1d8")]), Int(1,1), -(Direct(Tid(1_887, "@printf")),Direct(Tid(1_084, "%0000043c"))))])), -Blk(Tid(1_084, "%0000043c"), Attrs([Attr("address","0x89C")]), Phis([]), -Defs([Def(Tid(1_089, "%00000441"), Attrs([Attr("address","0x89C"), -Attr("insn","ldr x0, [sp, #0x10]")]), Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(16,64)),LittleEndian(),64)), -Def(Tid(1_094, "%00000446"), Attrs([Attr("address","0x8A0"), -Attr("insn","bl #-0x1f0")]), Var("R30",Imm(64)), Int(2212,64))]), -Jmps([Call(Tid(1_097, "%00000449"), Attrs([Attr("address","0x8A0"), -Attr("insn","bl #-0x1f0")]), Int(1,1), -(Direct(Tid(1_884, "@free")),Direct(Tid(1_099, "%0000044b"))))])), -Blk(Tid(1_099, "%0000044b"), Attrs([Attr("address","0x8A4")]), Phis([]), -Defs([Def(Tid(1_104, "%00000450"), Attrs([Attr("address","0x8A4"), -Attr("insn","ldr x0, [sp, #0x8]")]), Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(1_109, "%00000455"), Attrs([Attr("address","0x8A8"), -Attr("insn","bl #-0x1f8")]), Var("R30",Imm(64)), Int(2220,64))]), -Jmps([Call(Tid(1_111, "%00000457"), Attrs([Attr("address","0x8A8"), -Attr("insn","bl #-0x1f8")]), Int(1,1), -(Direct(Tid(1_884, "@free")),Direct(Tid(1_113, "%00000459"))))])), -Blk(Tid(1_113, "%00000459"), Attrs([Attr("address","0x8AC")]), Phis([]), -Defs([Def(Tid(1_118, "%0000045e"), Attrs([Attr("address","0x8AC"), -Attr("insn","ldr w0, [sp]")]), Var("R0",Imm(64)), -UNSIGNED(64,Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),32))), -Def(Tid(1_124, "%00000464"), Attrs([Attr("address","0x8B0"), -Attr("insn","ldp x29, x30, [sp, #0x20]")]), Var("#5",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(32,64))), Def(Tid(1_129, "%00000469"), - Attrs([Attr("address","0x8B0"), Attr("insn","ldp x29, x30, [sp, #0x20]")]), - Var("R29",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("#5",Imm(64)),LittleEndian(),64)), -Def(Tid(1_134, "%0000046e"), Attrs([Attr("address","0x8B0"), -Attr("insn","ldp x29, x30, [sp, #0x20]")]), Var("R30",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("#5",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(1_140, "%00000474"), Attrs([Attr("address","0x8B4"), -Attr("insn","add sp, sp, #0x30")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(48,64)))]), Jmps([Call(Tid(1_145, "%00000479"), - Attrs([Attr("address","0x8B8"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), Sub(Tid(1_886, "@malloc"), - Attrs([Attr("c.proto","void* (*)(unsigned long size)"), -Attr("address","0x680"), Attr("malloc","()"), Attr("stub","()")]), "malloc", - Args([Arg(Tid(1_909, "%00000775"), Attrs([Attr("alloc-size","()"), -Attr("c.layout","[unsigned long : 64]"), Attr("c.data","Top:u64"), -Attr("c.type","unsigned long")]), Var("malloc_size",Imm(64)), -Var("R0",Imm(64)), In()), Arg(Tid(1_910, "%00000776"), - Attrs([Attr("warn-unused","()"), Attr("c.layout","*[ : 8]"), -Attr("c.data","{} ptr"), Attr("c.type","void*")]), - Var("malloc_result",Imm(64)), Var("R0",Imm(64)), Out())]), -Blks([Blk(Tid(909, "@malloc"), Attrs([Attr("address","0x680")]), Phis([]), -Defs([Def(Tid(1_520, "%000005f0"), Attrs([Attr("address","0x680"), -Attr("insn","adrp x16, #69632")]), Var("R16",Imm(64)), Int(69632,64)), -Def(Tid(1_527, "%000005f7"), Attrs([Attr("address","0x684"), -Attr("insn","ldr x17, [x16, #0x10]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(16,64)),LittleEndian(),64)), -Def(Tid(1_533, "%000005fd"), Attrs([Attr("address","0x688"), -Attr("insn","add x16, x16, #0x10")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(16,64)))]), Jmps([Call(Tid(1_538, "%00000602"), - Attrs([Attr("address","0x68C"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), Sub(Tid(1_887, "@printf"), - Attrs([Attr("c.proto","signed (*)( const char restrict * format, ...)"), -Attr("address","0x6C0"), Attr("stub","()")]), "printf", - Args([Arg(Tid(1_911, "%00000777"), Attrs([Attr("format","\"printf\""), -Attr("c.layout","*[char : 8]"), Attr("c.data","Top:u8 ptr"), -Attr("c.type"," const char restrict *")]), Var("printf_format",Imm(64)), -Var("R0",Imm(64)), In()), Arg(Tid(1_912, "%00000778"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("printf_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(1_023, "@printf"), - Attrs([Attr("address","0x6C0")]), Phis([]), -Defs([Def(Tid(1_608, "%00000648"), Attrs([Attr("address","0x6C0"), -Attr("insn","adrp x16, #69632")]), Var("R16",Imm(64)), Int(69632,64)), -Def(Tid(1_615, "%0000064f"), Attrs([Attr("address","0x6C4"), -Attr("insn","ldr x17, [x16, #0x30]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(48,64)),LittleEndian(),64)), -Def(Tid(1_621, "%00000655"), Attrs([Attr("address","0x6C8"), -Attr("insn","add x16, x16, #0x30")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(48,64)))]), Jmps([Call(Tid(1_626, "%0000065a"), - Attrs([Attr("address","0x6CC"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), -Sub(Tid(1_888, "@register_tm_clones"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x780")]), - "register_tm_clones", Args([Arg(Tid(1_913, "%00000779"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("register_tm_clones_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(696, "@register_tm_clones"), Attrs([Attr("address","0x780")]), - Phis([]), Defs([Def(Tid(699, "%000002bb"), Attrs([Attr("address","0x780"), -Attr("insn","adrp x0, #69632")]), Var("R0",Imm(64)), Int(69632,64)), -Def(Tid(705, "%000002c1"), Attrs([Attr("address","0x784"), -Attr("insn","add x0, x0, #0x48")]), Var("R0",Imm(64)), -PLUS(Var("R0",Imm(64)),Int(72,64))), Def(Tid(710, "%000002c6"), - Attrs([Attr("address","0x788"), Attr("insn","adrp x1, #69632")]), - Var("R1",Imm(64)), Int(69632,64)), Def(Tid(716, "%000002cc"), - Attrs([Attr("address","0x78C"), Attr("insn","add x1, x1, #0x48")]), - Var("R1",Imm(64)), PLUS(Var("R1",Imm(64)),Int(72,64))), -Def(Tid(723, "%000002d3"), Attrs([Attr("address","0x790"), -Attr("insn","sub x1, x1, x0")]), Var("R1",Imm(64)), -PLUS(PLUS(Var("R1",Imm(64)),NOT(Var("R0",Imm(64)))),Int(1,64))), -Def(Tid(729, "%000002d9"), Attrs([Attr("address","0x794"), -Attr("insn","lsr x2, x1, #63")]), Var("R2",Imm(64)), -Concat(Int(0,63),Extract(63,63,Var("R1",Imm(64))))), -Def(Tid(736, "%000002e0"), Attrs([Attr("address","0x798"), -Attr("insn","add x1, x2, x1, asr #3")]), Var("R1",Imm(64)), -PLUS(Var("R2",Imm(64)),ARSHIFT(Var("R1",Imm(64)),Int(3,3)))), -Def(Tid(742, "%000002e6"), Attrs([Attr("address","0x79C"), -Attr("insn","asr x1, x1, #1")]), Var("R1",Imm(64)), -SIGNED(64,Extract(63,1,Var("R1",Imm(64)))))]), -Jmps([Goto(Tid(748, "%000002ec"), Attrs([Attr("address","0x7A0"), -Attr("insn","cbz x1, #0x18")]), EQ(Var("R1",Imm(64)),Int(0,64)), -Direct(Tid(746, "%000002ea"))), Goto(Tid(1_889, "%00000761"), Attrs([]), - Int(1,1), Direct(Tid(1_206, "%000004b6")))])), Blk(Tid(1_206, "%000004b6"), - Attrs([Attr("address","0x7A4")]), Phis([]), -Defs([Def(Tid(1_209, "%000004b9"), Attrs([Attr("address","0x7A4"), -Attr("insn","adrp x2, #65536")]), Var("R2",Imm(64)), Int(65536,64)), -Def(Tid(1_216, "%000004c0"), Attrs([Attr("address","0x7A8"), -Attr("insn","ldr x2, [x2, #0xfe0]")]), Var("R2",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R2",Imm(64)),Int(4064,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(1_221, "%000004c5"), Attrs([Attr("address","0x7AC"), -Attr("insn","cbz x2, #0xc")]), EQ(Var("R2",Imm(64)),Int(0,64)), -Direct(Tid(746, "%000002ea"))), Goto(Tid(1_890, "%00000762"), Attrs([]), - Int(1,1), Direct(Tid(1_225, "%000004c9")))])), Blk(Tid(746, "%000002ea"), - Attrs([Attr("address","0x7B8")]), Phis([]), Defs([]), -Jmps([Call(Tid(754, "%000002f2"), Attrs([Attr("address","0x7B8"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))])), -Blk(Tid(1_225, "%000004c9"), Attrs([Attr("address","0x7B0")]), Phis([]), -Defs([Def(Tid(1_229, "%000004cd"), Attrs([Attr("address","0x7B0"), -Attr("insn","mov x16, x2")]), Var("R16",Imm(64)), Var("R2",Imm(64)))]), -Jmps([Call(Tid(1_234, "%000004d2"), Attrs([Attr("address","0x7B4"), -Attr("insn","br x16")]), Int(1,1), -(Indirect(Var("R16",Imm(64))),))]))]))]))) \ No newline at end of file diff --git a/src/test/correct/malloc_with_local/clang/malloc_with_local.bir b/src/test/correct/malloc_with_local/clang/malloc_with_local.bir deleted file mode 100644 index 9a1196cab..000000000 --- a/src/test/correct/malloc_with_local/clang/malloc_with_local.bir +++ /dev/null @@ -1,318 +0,0 @@ -00000763: program -0000074a: sub __cxa_finalize(__cxa_finalize_result) -00000764: __cxa_finalize_result :: out u32 = low:32[R0] - -000004b2: -000005da: R16 := 0x11000 -000005e1: R17 := mem[R16 + 8, el]:u64 -000005e7: R16 := R16 + 8 -000005ec: call R17 with noreturn - -0000074b: sub __do_global_dtors_aux(__do_global_dtors_aux_result) -00000765: __do_global_dtors_aux_result :: out u32 = low:32[R0] - -000002f6: -000002fa: #3 := R31 - 0x20 -00000300: mem := mem with [#3, el]:u64 <- R29 -00000306: mem := mem with [#3 + 8, el]:u64 <- R30 -0000030a: R31 := #3 -00000310: R29 := R31 -00000318: mem := mem with [R31 + 0x10, el]:u64 <- R19 -0000031d: R19 := 0x11000 -00000324: R0 := pad:64[mem[R19 + 0x48]] -0000032b: when 31:0[R0] <> 0 goto %00000329 -0000074c: goto %0000047b - -0000047b: -0000047e: R0 := 0x10000 -00000485: R0 := mem[R0 + 0xFC8, el]:u64 -0000048b: when R0 = 0 goto %00000489 -0000074d: goto %000004a2 - -000004a2: -000004a5: R0 := 0x11000 -000004ac: R0 := mem[R0 + 0x40, el]:u64 -000004b1: R30 := 0x7F0 -000004b4: call @__cxa_finalize with return %00000489 - -00000489: -00000491: R30 := 0x7F4 -00000493: call @deregister_tm_clones with return %00000495 - -00000495: -00000498: R0 := 1 -000004a0: mem := mem with [R19 + 0x48] <- 7:0[R0] -0000074e: goto %00000329 - -00000329: -00000333: R19 := mem[R31 + 0x10, el]:u64 -0000033a: R29 := mem[R31, el]:u64 -0000033f: R30 := mem[R31 + 8, el]:u64 -00000343: R31 := R31 + 0x20 -00000348: call R30 with noreturn - -0000074f: sub __libc_start_main(__libc_start_main_main, __libc_start_main_arg2, __libc_start_main_arg3, __libc_start_main_auxv, __libc_start_main_result) -00000766: __libc_start_main_main :: in u64 = R0 -00000767: __libc_start_main_arg2 :: in u32 = low:32[R1] -00000768: __libc_start_main_arg3 :: in out u64 = R2 -00000769: __libc_start_main_auxv :: in out u64 = R3 -0000076a: __libc_start_main_result :: out u32 = low:32[R0] - -0000024f: -000005c4: R16 := 0x11000 -000005cb: R17 := mem[R16, el]:u64 -000005d1: R16 := R16 -000005d6: call R17 with noreturn - -00000750: sub _fini(_fini_result) -0000076b: _fini_result :: out u32 = low:32[R0] - -0000001f: -00000025: #0 := R31 - 0x10 -0000002b: mem := mem with [#0, el]:u64 <- R29 -00000031: mem := mem with [#0 + 8, el]:u64 <- R30 -00000035: R31 := #0 -0000003b: R29 := R31 -00000042: R29 := mem[R31, el]:u64 -00000047: R30 := mem[R31 + 8, el]:u64 -0000004b: R31 := R31 + 0x10 -00000050: call R30 with noreturn - -00000751: sub _init(_init_result) -0000076c: _init_result :: out u32 = low:32[R0] - -00000676: -0000067c: #7 := R31 - 0x10 -00000682: mem := mem with [#7, el]:u64 <- R29 -00000688: mem := mem with [#7 + 8, el]:u64 <- R30 -0000068c: R31 := #7 -00000692: R29 := R31 -00000697: R30 := 0x638 -00000699: call @call_weak_fn with return %0000069b - -0000069b: -000006a0: R29 := mem[R31, el]:u64 -000006a5: R30 := mem[R31 + 8, el]:u64 -000006a9: R31 := R31 + 0x10 -000006ae: call R30 with noreturn - -00000752: sub _start(_start_result) -0000076d: _start_result :: out u32 = low:32[R0] - -00000210: -00000215: R29 := 0 -0000021a: R30 := 0 -00000220: R5 := R0 -00000227: R1 := mem[R31, el]:u64 -0000022d: R2 := R31 + 8 -00000233: R6 := R31 -00000238: R0 := 0x10000 -0000023f: R0 := mem[R0 + 0xFD8, el]:u64 -00000244: R3 := 0 -00000249: R4 := 0 -0000024e: R30 := 0x730 -00000251: call @__libc_start_main with return %00000253 - -00000253: -00000256: R30 := 0x734 -00000259: call @abort with return %00000753 - -00000753: -00000754: call @call_weak_fn with noreturn - -00000755: sub abort() - - -00000257: -0000061c: R16 := 0x11000 -00000623: R17 := mem[R16 + 0x20, el]:u64 -00000629: R16 := R16 + 0x20 -0000062e: call R17 with noreturn - -00000756: sub call_weak_fn(call_weak_fn_result) -0000076e: call_weak_fn_result :: out u32 = low:32[R0] - -0000025b: -0000025e: R0 := 0x10000 -00000265: R0 := mem[R0 + 0xFD0, el]:u64 -0000026b: when R0 = 0 goto %00000269 -00000757: goto %000004f2 - -00000269: -00000271: call R30 with noreturn - -000004f2: -000004f5: goto @__gmon_start__ - -000004f3: -00000606: R16 := 0x11000 -0000060d: R17 := mem[R16 + 0x18, el]:u64 -00000613: R16 := R16 + 0x18 -00000618: call R17 with noreturn - -00000758: sub deregister_tm_clones(deregister_tm_clones_result) -0000076f: deregister_tm_clones_result :: out u32 = low:32[R0] - -00000277: -0000027a: R0 := 0x11000 -00000280: R0 := R0 + 0x48 -00000285: R1 := 0x11000 -0000028b: R1 := R1 + 0x48 -00000291: #1 := ~R0 -00000296: #2 := R1 + ~R0 -0000029c: VF := extend:65[#2 + 1] <> extend:65[R1] + extend:65[#1] + 1 -000002a2: CF := pad:65[#2 + 1] <> pad:65[R1] + pad:65[#1] + 1 -000002a6: ZF := #2 + 1 = 0 -000002aa: NF := 63:63[#2 + 1] -000002b0: when ZF goto %000002ae -00000759: goto %000004d4 - -000004d4: -000004d7: R1 := 0x10000 -000004de: R1 := mem[R1 + 0xFC0, el]:u64 -000004e3: when R1 = 0 goto %000002ae -0000075a: goto %000004e7 - -000002ae: -000002b6: call R30 with noreturn - -000004e7: -000004eb: R16 := R1 -000004f0: call R16 with noreturn - -0000075b: sub frame_dummy(frame_dummy_result) -00000770: frame_dummy_result :: out u32 = low:32[R0] - -0000034e: -00000350: call @register_tm_clones with noreturn - -0000075c: sub free(free_ptr) -00000771: free_ptr :: in out u64 = R0 - -00000447: -00000632: R16 := 0x11000 -00000639: R17 := mem[R16 + 0x28, el]:u64 -0000063f: R16 := R16 + 0x28 -00000644: call R17 with noreturn - -0000075d: sub main(main_argc, main_argv, main_result) -00000772: main_argc :: in u32 = low:32[R0] -00000773: main_argv :: in out u64 = R1 -00000774: main_result :: out u32 = low:32[R0] - -00000352: -00000356: R31 := R31 - 0x30 -0000035c: #4 := R31 + 0x20 -00000362: mem := mem with [#4, el]:u64 <- R29 -00000368: mem := mem with [#4 + 8, el]:u64 <- R30 -0000036e: R29 := R31 + 0x20 -00000373: R8 := 0 -0000037b: mem := mem with [R31, el]:u32 <- 31:0[R8] -00000382: mem := mem with [R29 - 4, el]:u32 <- 0 -00000387: R0 := 1 -0000038c: R30 := 0x834 -0000038f: call @malloc with return %00000391 - -00000391: -00000397: mem := mem with [R31 + 0x10, el]:u64 <- R0 -0000039c: R0 := 4 -000003a1: R30 := 0x840 -000003a3: call @malloc with return %000003a5 - -000003a5: -000003ab: mem := mem with [R31 + 8, el]:u64 <- R0 -000003b0: R8 := 0xA -000003b8: mem := mem with [R31 + 4, el]:u32 <- 31:0[R8] -000003bf: R9 := mem[R31 + 0x10, el]:u64 -000003c4: R8 := 0x41 -000003cc: mem := mem with [R9] <- 7:0[R8] -000003d3: R9 := mem[R31 + 8, el]:u64 -000003d8: R8 := 0x2A -000003e0: mem := mem with [R9, el]:u32 <- 31:0[R8] -000003e7: R8 := mem[R31 + 0x10, el]:u64 -000003ee: R1 := pad:64[mem[R8]] -000003f3: R0 := 0 -000003f9: R0 := R0 + 0x8D4 -000003fe: R30 := 0x878 -00000401: call @printf with return %00000403 - -00000403: -00000408: R8 := mem[R31 + 8, el]:u64 -0000040f: R1 := pad:64[mem[R8, el]:u32] -00000414: R0 := 0 -0000041a: R0 := R0 + 0x8E5 -0000041f: R30 := 0x88C -00000421: call @printf with return %00000423 - -00000423: -00000428: R1 := pad:64[mem[R31 + 4, el]:u32] -0000042d: R0 := 0 -00000433: R0 := R0 + 0x8F5 -00000438: R30 := 0x89C -0000043a: call @printf with return %0000043c - -0000043c: -00000441: R0 := mem[R31 + 0x10, el]:u64 -00000446: R30 := 0x8A4 -00000449: call @free with return %0000044b - -0000044b: -00000450: R0 := mem[R31 + 8, el]:u64 -00000455: R30 := 0x8AC -00000457: call @free with return %00000459 - -00000459: -0000045e: R0 := pad:64[mem[R31, el]:u32] -00000464: #5 := R31 + 0x20 -00000469: R29 := mem[#5, el]:u64 -0000046e: R30 := mem[#5 + 8, el]:u64 -00000474: R31 := R31 + 0x30 -00000479: call R30 with noreturn - -0000075e: sub malloc(malloc_size, malloc_result) -00000775: malloc_size :: in u64 = R0 -00000776: malloc_result :: out u64 = R0 - -0000038d: -000005f0: R16 := 0x11000 -000005f7: R17 := mem[R16 + 0x10, el]:u64 -000005fd: R16 := R16 + 0x10 -00000602: call R17 with noreturn - -0000075f: sub printf(printf_format, printf_result) -00000777: printf_format :: in u64 = R0 -00000778: printf_result :: out u32 = low:32[R0] - -000003ff: -00000648: R16 := 0x11000 -0000064f: R17 := mem[R16 + 0x30, el]:u64 -00000655: R16 := R16 + 0x30 -0000065a: call R17 with noreturn - -00000760: sub register_tm_clones(register_tm_clones_result) -00000779: register_tm_clones_result :: out u32 = low:32[R0] - -000002b8: -000002bb: R0 := 0x11000 -000002c1: R0 := R0 + 0x48 -000002c6: R1 := 0x11000 -000002cc: R1 := R1 + 0x48 -000002d3: R1 := R1 + ~R0 + 1 -000002d9: R2 := 0.63:63[R1] -000002e0: R1 := R2 + (R1 ~>> 3) -000002e6: R1 := extend:64[63:1[R1]] -000002ec: when R1 = 0 goto %000002ea -00000761: goto %000004b6 - -000004b6: -000004b9: R2 := 0x10000 -000004c0: R2 := mem[R2 + 0xFE0, el]:u64 -000004c5: when R2 = 0 goto %000002ea -00000762: goto %000004c9 - -000002ea: -000002f2: call R30 with noreturn - -000004c9: -000004cd: R16 := R2 -000004d2: call R16 with noreturn diff --git a/src/test/correct/malloc_with_local/clang/malloc_with_local.expected b/src/test/correct/malloc_with_local/clang/malloc_with_local.expected index 99498982a..7b40fb850 100644 --- a/src/test/correct/malloc_with_local/clang/malloc_with_local.expected +++ b/src/test/correct/malloc_with_local/clang/malloc_with_local.expected @@ -110,7 +110,7 @@ procedure {:extern} rely_reflexive(); procedure {:extern} guarantee_reflexive(); modifies Gamma_mem, mem; -procedure #free_1712(); +procedure #free(); modifies Gamma_R16, Gamma_R17, R16, R17; free requires (memory_load64_le(mem, 2256bv64) == 2334386691848142849bv64); free requires (memory_load64_le(mem, 2264bv64) == 4211825664600402019bv64); @@ -137,7 +137,7 @@ procedure #free_1712(); free ensures (memory_load64_le(mem, 69592bv64) == 2068bv64); free ensures (memory_load64_le(mem, 69696bv64) == 69696bv64); -procedure main_2068(); +procedure main(); modifies Gamma_R0, Gamma_R1, Gamma_R16, Gamma_R17, Gamma_R29, Gamma_R30, Gamma_R31, Gamma_R8, Gamma_R9, Gamma_mem, Gamma_stack, R0, R1, R16, R17, R29, R30, R31, R8, R9, mem, stack; free requires (memory_load64_le(mem, 69688bv64) == 0bv64); free requires (memory_load64_le(mem, 69696bv64) == 69696bv64); @@ -170,36 +170,36 @@ procedure main_2068(); free ensures (memory_load64_le(mem, 69592bv64) == 2068bv64); free ensures (memory_load64_le(mem, 69696bv64) == 69696bv64); -implementation main_2068() +implementation main() { var #4: bv64; var #5: bv64; + var $load$19: bv64; + var $load$20: bv64; + var $load$21: bv64; + var $load$22: bv8; + var $load$23: bv64; + var $load$24: bv32; + var $load$25: bv32; + var $load$26: bv64; + var $load$27: bv64; + var $load$28: bv32; + var $load$29: bv64; + var $load$30: bv64; var Gamma_#4: bool; var Gamma_#5: bool; - var Gamma_load19: bool; - var Gamma_load20: bool; - var Gamma_load21: bool; - var Gamma_load22: bool; - var Gamma_load23: bool; - var Gamma_load24: bool; - var Gamma_load25: bool; - var Gamma_load26: bool; - var Gamma_load27: bool; - var Gamma_load28: bool; - var Gamma_load29: bool; - var Gamma_load30: bool; - var load19: bv64; - var load20: bv64; - var load21: bv64; - var load22: bv8; - var load23: bv64; - var load24: bv32; - var load25: bv32; - var load26: bv64; - var load27: bv64; - var load28: bv32; - var load29: bv64; - var load30: bv64; + var Gamma_$load$19: bool; + var Gamma_$load$20: bool; + var Gamma_$load$21: bool; + var Gamma_$load$22: bool; + var Gamma_$load$23: bool; + var Gamma_$load$24: bool; + var Gamma_$load$25: bool; + var Gamma_$load$26: bool; + var Gamma_$load$27: bool; + var Gamma_$load$28: bool; + var Gamma_$load$29: bool; + var Gamma_$load$30: bool; lmain: assume {:captureState "lmain"} true; R31, Gamma_R31 := bvadd64(R31, 18446744073709551568bv64), Gamma_R31; @@ -216,7 +216,7 @@ implementation main_2068() assume {:captureState "%00000382"} true; R0, Gamma_R0 := 1bv64, true; R30, Gamma_R30 := 2100bv64, true; - call malloc_1664(); + call malloc(); goto l00000391; l00000391: assume {:captureState "l00000391"} true; @@ -224,7 +224,7 @@ implementation main_2068() assume {:captureState "%00000397"} true; R0, Gamma_R0 := 4bv64, true; R30, Gamma_R30 := 2112bv64, true; - call malloc_1664(); + call malloc(); goto l000003a5; l000003a5: assume {:captureState "l000003a5"} true; @@ -233,82 +233,82 @@ implementation main_2068() R8, Gamma_R8 := 10bv64, true; stack, Gamma_stack := memory_store32_le(stack, bvadd64(R31, 4bv64), R8[32:0]), gamma_store32(Gamma_stack, bvadd64(R31, 4bv64), Gamma_R8); assume {:captureState "%000003b8"} true; - load19, Gamma_load19 := memory_load64_le(stack, bvadd64(R31, 16bv64)), gamma_load64(Gamma_stack, bvadd64(R31, 16bv64)); - R9, Gamma_R9 := load19, Gamma_load19; + $load$19, Gamma_$load$19 := memory_load64_le(stack, bvadd64(R31, 16bv64)), gamma_load64(Gamma_stack, bvadd64(R31, 16bv64)); + R9, Gamma_R9 := $load$19, Gamma_$load$19; R8, Gamma_R8 := 65bv64, true; call rely(); assert (L(mem, R9) ==> Gamma_R8); mem, Gamma_mem := memory_store8_le(mem, R9, R8[8:0]), gamma_store8(Gamma_mem, R9, Gamma_R8); assume {:captureState "%000003cc"} true; - load20, Gamma_load20 := memory_load64_le(stack, bvadd64(R31, 8bv64)), gamma_load64(Gamma_stack, bvadd64(R31, 8bv64)); - R9, Gamma_R9 := load20, Gamma_load20; + $load$20, Gamma_$load$20 := memory_load64_le(stack, bvadd64(R31, 8bv64)), gamma_load64(Gamma_stack, bvadd64(R31, 8bv64)); + R9, Gamma_R9 := $load$20, Gamma_$load$20; R8, Gamma_R8 := 42bv64, true; call rely(); assert (L(mem, R9) ==> Gamma_R8); mem, Gamma_mem := memory_store32_le(mem, R9, R8[32:0]), gamma_store32(Gamma_mem, R9, Gamma_R8); assume {:captureState "%000003e0"} true; - load21, Gamma_load21 := memory_load64_le(stack, bvadd64(R31, 16bv64)), gamma_load64(Gamma_stack, bvadd64(R31, 16bv64)); - R8, Gamma_R8 := load21, Gamma_load21; + $load$21, Gamma_$load$21 := memory_load64_le(stack, bvadd64(R31, 16bv64)), gamma_load64(Gamma_stack, bvadd64(R31, 16bv64)); + R8, Gamma_R8 := $load$21, Gamma_$load$21; call rely(); - load22, Gamma_load22 := memory_load8_le(mem, R8), (gamma_load8(Gamma_mem, R8) || L(mem, R8)); - R1, Gamma_R1 := zero_extend56_8(load22), Gamma_load22; + $load$22, Gamma_$load$22 := memory_load8_le(mem, R8), (gamma_load8(Gamma_mem, R8) || L(mem, R8)); + R1, Gamma_R1 := zero_extend56_8($load$22), Gamma_$load$22; R0, Gamma_R0 := 0bv64, true; R0, Gamma_R0 := bvadd64(R0, 2260bv64), Gamma_R0; R30, Gamma_R30 := 2168bv64, true; - call printf_1728(); + call printf(); goto l00000403; l00000403: assume {:captureState "l00000403"} true; - load23, Gamma_load23 := memory_load64_le(stack, bvadd64(R31, 8bv64)), gamma_load64(Gamma_stack, bvadd64(R31, 8bv64)); - R8, Gamma_R8 := load23, Gamma_load23; + $load$23, Gamma_$load$23 := memory_load64_le(stack, bvadd64(R31, 8bv64)), gamma_load64(Gamma_stack, bvadd64(R31, 8bv64)); + R8, Gamma_R8 := $load$23, Gamma_$load$23; call rely(); - load24, Gamma_load24 := memory_load32_le(mem, R8), (gamma_load32(Gamma_mem, R8) || L(mem, R8)); - R1, Gamma_R1 := zero_extend32_32(load24), Gamma_load24; + $load$24, Gamma_$load$24 := memory_load32_le(mem, R8), (gamma_load32(Gamma_mem, R8) || L(mem, R8)); + R1, Gamma_R1 := zero_extend32_32($load$24), Gamma_$load$24; R0, Gamma_R0 := 0bv64, true; R0, Gamma_R0 := bvadd64(R0, 2277bv64), Gamma_R0; R30, Gamma_R30 := 2188bv64, true; - call printf_1728(); + call printf(); goto l00000423; l00000423: assume {:captureState "l00000423"} true; - load25, Gamma_load25 := memory_load32_le(stack, bvadd64(R31, 4bv64)), gamma_load32(Gamma_stack, bvadd64(R31, 4bv64)); - R1, Gamma_R1 := zero_extend32_32(load25), Gamma_load25; + $load$25, Gamma_$load$25 := memory_load32_le(stack, bvadd64(R31, 4bv64)), gamma_load32(Gamma_stack, bvadd64(R31, 4bv64)); + R1, Gamma_R1 := zero_extend32_32($load$25), Gamma_$load$25; R0, Gamma_R0 := 0bv64, true; R0, Gamma_R0 := bvadd64(R0, 2293bv64), Gamma_R0; R30, Gamma_R30 := 2204bv64, true; - call printf_1728(); + call printf(); goto l0000043c; l0000043c: assume {:captureState "l0000043c"} true; - load26, Gamma_load26 := memory_load64_le(stack, bvadd64(R31, 16bv64)), gamma_load64(Gamma_stack, bvadd64(R31, 16bv64)); - R0, Gamma_R0 := load26, Gamma_load26; + $load$26, Gamma_$load$26 := memory_load64_le(stack, bvadd64(R31, 16bv64)), gamma_load64(Gamma_stack, bvadd64(R31, 16bv64)); + R0, Gamma_R0 := $load$26, Gamma_$load$26; R30, Gamma_R30 := 2212bv64, true; - call #free_1712(); + call #free(); goto l0000044b; l0000044b: assume {:captureState "l0000044b"} true; - load27, Gamma_load27 := memory_load64_le(stack, bvadd64(R31, 8bv64)), gamma_load64(Gamma_stack, bvadd64(R31, 8bv64)); - R0, Gamma_R0 := load27, Gamma_load27; + $load$27, Gamma_$load$27 := memory_load64_le(stack, bvadd64(R31, 8bv64)), gamma_load64(Gamma_stack, bvadd64(R31, 8bv64)); + R0, Gamma_R0 := $load$27, Gamma_$load$27; R30, Gamma_R30 := 2220bv64, true; - call #free_1712(); + call #free(); goto l00000459; l00000459: assume {:captureState "l00000459"} true; - load28, Gamma_load28 := memory_load32_le(stack, R31), gamma_load32(Gamma_stack, R31); - R0, Gamma_R0 := zero_extend32_32(load28), Gamma_load28; + $load$28, Gamma_$load$28 := memory_load32_le(stack, R31), gamma_load32(Gamma_stack, R31); + R0, Gamma_R0 := zero_extend32_32($load$28), Gamma_$load$28; #5, Gamma_#5 := bvadd64(R31, 32bv64), Gamma_R31; - load29, Gamma_load29 := memory_load64_le(stack, #5), gamma_load64(Gamma_stack, #5); - R29, Gamma_R29 := load29, Gamma_load29; - load30, Gamma_load30 := memory_load64_le(stack, bvadd64(#5, 8bv64)), gamma_load64(Gamma_stack, bvadd64(#5, 8bv64)); - R30, Gamma_R30 := load30, Gamma_load30; + $load$29, Gamma_$load$29 := memory_load64_le(stack, #5), gamma_load64(Gamma_stack, #5); + R29, Gamma_R29 := $load$29, Gamma_$load$29; + $load$30, Gamma_$load$30 := memory_load64_le(stack, bvadd64(#5, 8bv64)), gamma_load64(Gamma_stack, bvadd64(#5, 8bv64)); + R30, Gamma_R30 := $load$30, Gamma_$load$30; R31, Gamma_R31 := bvadd64(R31, 48bv64), Gamma_R31; - goto main_2068_basil_return; - main_2068_basil_return: - assume {:captureState "main_2068_basil_return"} true; + goto main_basil_return; + main_basil_return: + assume {:captureState "main_basil_return"} true; return; } -procedure malloc_1664(); +procedure malloc(); modifies Gamma_R16, Gamma_R17, R16, R17; free requires (memory_load64_le(mem, 2256bv64) == 2334386691848142849bv64); free requires (memory_load64_le(mem, 2264bv64) == 4211825664600402019bv64); @@ -335,7 +335,7 @@ procedure malloc_1664(); free ensures (memory_load64_le(mem, 69592bv64) == 2068bv64); free ensures (memory_load64_le(mem, 69696bv64) == 69696bv64); -procedure printf_1728(); +procedure printf(); modifies Gamma_R16, Gamma_R17, R16, R17; free requires (memory_load64_le(mem, 2256bv64) == 2334386691848142849bv64); free requires (memory_load64_le(mem, 2264bv64) == 4211825664600402019bv64); diff --git a/src/test/correct/malloc_with_local/clang/malloc_with_local.gts b/src/test/correct/malloc_with_local/clang/malloc_with_local.gts deleted file mode 100644 index 9734e93d8..000000000 Binary files a/src/test/correct/malloc_with_local/clang/malloc_with_local.gts and /dev/null differ diff --git a/src/test/correct/malloc_with_local/clang/malloc_with_local.md5sum b/src/test/correct/malloc_with_local/clang/malloc_with_local.md5sum new file mode 100644 index 000000000..b29b76744 --- /dev/null +++ b/src/test/correct/malloc_with_local/clang/malloc_with_local.md5sum @@ -0,0 +1,5 @@ +af400878f5b7e84c493a13e537455865 correct/malloc_with_local/clang/a.out +695d2d5cfaa7afbd01a91d6041cfd8d4 correct/malloc_with_local/clang/malloc_with_local.adt +ee256cab3a08ef4e250eaffc3cdcda38 correct/malloc_with_local/clang/malloc_with_local.bir +42f39762f34ccb7bc1e862a0c33b5caa correct/malloc_with_local/clang/malloc_with_local.relf +0bbe9eb3c35b3552b35ce0d89e19723c correct/malloc_with_local/clang/malloc_with_local.gts diff --git a/src/test/correct/malloc_with_local/clang/malloc_with_local.relf b/src/test/correct/malloc_with_local/clang/malloc_with_local.relf deleted file mode 100644 index 427b1f4ee..000000000 --- a/src/test/correct/malloc_with_local/clang/malloc_with_local.relf +++ /dev/null @@ -1,131 +0,0 @@ - -Relocation section '.rela.dyn' at offset 0x4c0 contains 8 entries: - Offset Info Type Symbol's Value Symbol's Name + Addend -0000000000010dc8 0000000000000403 R_AARCH64_RELATIVE 810 -0000000000010dd0 0000000000000403 R_AARCH64_RELATIVE 7c0 -0000000000010fd8 0000000000000403 R_AARCH64_RELATIVE 814 -0000000000011040 0000000000000403 R_AARCH64_RELATIVE 11040 -0000000000010fc0 0000000400000401 R_AARCH64_GLOB_DAT 0000000000000000 _ITM_deregisterTMCloneTable + 0 -0000000000010fc8 0000000500000401 R_AARCH64_GLOB_DAT 0000000000000000 __cxa_finalize@GLIBC_2.17 + 0 -0000000000010fd0 0000000700000401 R_AARCH64_GLOB_DAT 0000000000000000 __gmon_start__ + 0 -0000000000010fe0 0000000a00000401 R_AARCH64_GLOB_DAT 0000000000000000 _ITM_registerTMCloneTable + 0 - -Relocation section '.rela.plt' at offset 0x580 contains 7 entries: - Offset Info Type Symbol's Value Symbol's Name + Addend -0000000000011000 0000000300000402 R_AARCH64_JUMP_SLOT 0000000000000000 __libc_start_main@GLIBC_2.34 + 0 -0000000000011008 0000000500000402 R_AARCH64_JUMP_SLOT 0000000000000000 __cxa_finalize@GLIBC_2.17 + 0 -0000000000011010 0000000600000402 R_AARCH64_JUMP_SLOT 0000000000000000 malloc@GLIBC_2.17 + 0 -0000000000011018 0000000700000402 R_AARCH64_JUMP_SLOT 0000000000000000 __gmon_start__ + 0 -0000000000011020 0000000800000402 R_AARCH64_JUMP_SLOT 0000000000000000 abort@GLIBC_2.17 + 0 -0000000000011028 0000000900000402 R_AARCH64_JUMP_SLOT 0000000000000000 free@GLIBC_2.17 + 0 -0000000000011030 0000000b00000402 R_AARCH64_JUMP_SLOT 0000000000000000 printf@GLIBC_2.17 + 0 - -Symbol table '.dynsym' contains 12 entries: - Num: Value Size Type Bind Vis Ndx Name - 0: 0000000000000000 0 NOTYPE LOCAL DEFAULT UND - 1: 0000000000000628 0 SECTION LOCAL DEFAULT 11 .init - 2: 0000000000011038 0 SECTION LOCAL DEFAULT 23 .data - 3: 0000000000000000 0 FUNC GLOBAL DEFAULT UND __libc_start_main@GLIBC_2.34 (2) - 4: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_deregisterTMCloneTable - 5: 0000000000000000 0 FUNC WEAK DEFAULT UND __cxa_finalize@GLIBC_2.17 (3) - 6: 0000000000000000 0 FUNC GLOBAL DEFAULT UND malloc@GLIBC_2.17 (3) - 7: 0000000000000000 0 NOTYPE WEAK DEFAULT UND __gmon_start__ - 8: 0000000000000000 0 FUNC GLOBAL DEFAULT UND abort@GLIBC_2.17 (3) - 9: 0000000000000000 0 FUNC GLOBAL DEFAULT UND free@GLIBC_2.17 (3) - 10: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_registerTMCloneTable - 11: 0000000000000000 0 FUNC GLOBAL DEFAULT UND printf@GLIBC_2.17 (3) - -Symbol table '.symtab' contains 92 entries: - Num: Value Size Type Bind Vis Ndx Name - 0: 0000000000000000 0 NOTYPE LOCAL DEFAULT UND - 1: 0000000000000238 0 SECTION LOCAL DEFAULT 1 .interp - 2: 0000000000000254 0 SECTION LOCAL DEFAULT 2 .note.gnu.build-id - 3: 0000000000000278 0 SECTION LOCAL DEFAULT 3 .note.ABI-tag - 4: 0000000000000298 0 SECTION LOCAL DEFAULT 4 .gnu.hash - 5: 00000000000002b8 0 SECTION LOCAL DEFAULT 5 .dynsym - 6: 00000000000003d8 0 SECTION LOCAL DEFAULT 6 .dynstr - 7: 0000000000000478 0 SECTION LOCAL DEFAULT 7 .gnu.version - 8: 0000000000000490 0 SECTION LOCAL DEFAULT 8 .gnu.version_r - 9: 00000000000004c0 0 SECTION LOCAL DEFAULT 9 .rela.dyn - 10: 0000000000000580 0 SECTION LOCAL DEFAULT 10 .rela.plt - 11: 0000000000000628 0 SECTION LOCAL DEFAULT 11 .init - 12: 0000000000000640 0 SECTION LOCAL DEFAULT 12 .plt - 13: 0000000000000700 0 SECTION LOCAL DEFAULT 13 .text - 14: 00000000000008bc 0 SECTION LOCAL DEFAULT 14 .fini - 15: 00000000000008d0 0 SECTION LOCAL DEFAULT 15 .rodata - 16: 0000000000000910 0 SECTION LOCAL DEFAULT 16 .eh_frame_hdr - 17: 0000000000000950 0 SECTION LOCAL DEFAULT 17 .eh_frame - 18: 0000000000010dc8 0 SECTION LOCAL DEFAULT 18 .init_array - 19: 0000000000010dd0 0 SECTION LOCAL DEFAULT 19 .fini_array - 20: 0000000000010dd8 0 SECTION LOCAL DEFAULT 20 .dynamic - 21: 0000000000010fb8 0 SECTION LOCAL DEFAULT 21 .got - 22: 0000000000010fe8 0 SECTION LOCAL DEFAULT 22 .got.plt - 23: 0000000000011038 0 SECTION LOCAL DEFAULT 23 .data - 24: 0000000000011048 0 SECTION LOCAL DEFAULT 24 .bss - 25: 0000000000000000 0 SECTION LOCAL DEFAULT 25 .comment - 26: 0000000000000000 0 FILE LOCAL DEFAULT ABS Scrt1.o - 27: 0000000000000278 0 NOTYPE LOCAL DEFAULT 3 $d - 28: 0000000000000278 32 OBJECT LOCAL DEFAULT 3 __abi_tag - 29: 0000000000000700 0 NOTYPE LOCAL DEFAULT 13 $x - 30: 0000000000000964 0 NOTYPE LOCAL DEFAULT 17 $d - 31: 00000000000008d0 0 NOTYPE LOCAL DEFAULT 15 $d - 32: 0000000000000000 0 FILE LOCAL DEFAULT ABS crti.o - 33: 0000000000000734 0 NOTYPE LOCAL DEFAULT 13 $x - 34: 0000000000000734 20 FUNC LOCAL DEFAULT 13 call_weak_fn - 35: 0000000000000628 0 NOTYPE LOCAL DEFAULT 11 $x - 36: 00000000000008bc 0 NOTYPE LOCAL DEFAULT 14 $x - 37: 0000000000000000 0 FILE LOCAL DEFAULT ABS crtn.o - 38: 0000000000000638 0 NOTYPE LOCAL DEFAULT 11 $x - 39: 00000000000008c8 0 NOTYPE LOCAL DEFAULT 14 $x - 40: 0000000000000000 0 FILE LOCAL DEFAULT ABS crtstuff.c - 41: 0000000000000750 0 NOTYPE LOCAL DEFAULT 13 $x - 42: 0000000000000750 0 FUNC LOCAL DEFAULT 13 deregister_tm_clones - 43: 0000000000000780 0 FUNC LOCAL DEFAULT 13 register_tm_clones - 44: 0000000000011040 0 NOTYPE LOCAL DEFAULT 23 $d - 45: 00000000000007c0 0 FUNC LOCAL DEFAULT 13 __do_global_dtors_aux - 46: 0000000000011048 1 OBJECT LOCAL DEFAULT 24 completed.0 - 47: 0000000000010dd0 0 NOTYPE LOCAL DEFAULT 19 $d - 48: 0000000000010dd0 0 OBJECT LOCAL DEFAULT 19 __do_global_dtors_aux_fini_array_entry - 49: 0000000000000810 0 FUNC LOCAL DEFAULT 13 frame_dummy - 50: 0000000000010dc8 0 NOTYPE LOCAL DEFAULT 18 $d - 51: 0000000000010dc8 0 OBJECT LOCAL DEFAULT 18 __frame_dummy_init_array_entry - 52: 0000000000000978 0 NOTYPE LOCAL DEFAULT 17 $d - 53: 0000000000011048 0 NOTYPE LOCAL DEFAULT 24 $d - 54: 0000000000000000 0 FILE LOCAL DEFAULT ABS malloc_with_local.c - 55: 0000000000000814 0 NOTYPE LOCAL DEFAULT 13 $x.0 - 56: 00000000000008d4 0 NOTYPE LOCAL DEFAULT 15 $d.1 - 57: 000000000000002a 0 NOTYPE LOCAL DEFAULT 25 $d.2 - 58: 00000000000009d8 0 NOTYPE LOCAL DEFAULT 17 $d.3 - 59: 0000000000000000 0 FILE LOCAL DEFAULT ABS crtstuff.c - 60: 0000000000000a14 0 NOTYPE LOCAL DEFAULT 17 $d - 61: 0000000000000a14 0 OBJECT LOCAL DEFAULT 17 __FRAME_END__ - 62: 0000000000000000 0 FILE LOCAL DEFAULT ABS - 63: 0000000000010dd8 0 OBJECT LOCAL DEFAULT ABS _DYNAMIC - 64: 0000000000000910 0 NOTYPE LOCAL DEFAULT 16 __GNU_EH_FRAME_HDR - 65: 0000000000010fb8 0 OBJECT LOCAL DEFAULT ABS _GLOBAL_OFFSET_TABLE_ - 66: 0000000000000640 0 NOTYPE LOCAL DEFAULT 12 $x - 67: 0000000000000000 0 FUNC GLOBAL DEFAULT UND __libc_start_main@GLIBC_2.34 - 68: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_deregisterTMCloneTable - 69: 0000000000011038 0 NOTYPE WEAK DEFAULT 23 data_start - 70: 0000000000011048 0 NOTYPE GLOBAL DEFAULT 24 __bss_start__ - 71: 0000000000000000 0 FUNC WEAK DEFAULT UND __cxa_finalize@GLIBC_2.17 - 72: 0000000000011050 0 NOTYPE GLOBAL DEFAULT 24 _bss_end__ - 73: 0000000000011048 0 NOTYPE GLOBAL DEFAULT 23 _edata - 74: 00000000000008bc 0 FUNC GLOBAL HIDDEN 14 _fini - 75: 0000000000011050 0 NOTYPE GLOBAL DEFAULT 24 __bss_end__ - 76: 0000000000000000 0 FUNC GLOBAL DEFAULT UND malloc@GLIBC_2.17 - 77: 0000000000011038 0 NOTYPE GLOBAL DEFAULT 23 __data_start - 78: 0000000000000000 0 NOTYPE WEAK DEFAULT UND __gmon_start__ - 79: 0000000000011040 0 OBJECT GLOBAL HIDDEN 23 __dso_handle - 80: 0000000000000000 0 FUNC GLOBAL DEFAULT UND abort@GLIBC_2.17 - 81: 00000000000008d0 4 OBJECT GLOBAL DEFAULT 15 _IO_stdin_used - 82: 0000000000011050 0 NOTYPE GLOBAL DEFAULT 24 _end - 83: 0000000000000000 0 FUNC GLOBAL DEFAULT UND free@GLIBC_2.17 - 84: 0000000000000700 52 FUNC GLOBAL DEFAULT 13 _start - 85: 0000000000011050 0 NOTYPE GLOBAL DEFAULT 24 __end__ - 86: 0000000000011048 0 NOTYPE GLOBAL DEFAULT 24 __bss_start - 87: 0000000000000814 168 FUNC GLOBAL DEFAULT 13 main - 88: 0000000000011048 0 OBJECT GLOBAL HIDDEN 23 __TMC_END__ - 89: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_registerTMCloneTable - 90: 0000000000000000 0 FUNC GLOBAL DEFAULT UND printf@GLIBC_2.17 - 91: 0000000000000628 0 FUNC GLOBAL HIDDEN 11 _init diff --git a/src/test/correct/malloc_with_local/clang/malloc_with_local_gtirb.expected b/src/test/correct/malloc_with_local/clang/malloc_with_local_gtirb.expected index 32c04801c..68446344d 100644 --- a/src/test/correct/malloc_with_local/clang/malloc_with_local_gtirb.expected +++ b/src/test/correct/malloc_with_local/clang/malloc_with_local_gtirb.expected @@ -110,7 +110,7 @@ procedure {:extern} rely_reflexive(); procedure {:extern} guarantee_reflexive(); modifies Gamma_mem, mem; -procedure FUN_680_1664(); +procedure FUN_680(); modifies Gamma_R16, Gamma_R17, Gamma_mem, R16, R17, mem; free requires (memory_load64_le(mem, 2256bv64) == 2334386691848142849bv64); free requires (memory_load64_le(mem, 2264bv64) == 4211825664600402019bv64); @@ -137,25 +137,22 @@ procedure FUN_680_1664(); free ensures (memory_load64_le(mem, 69592bv64) == 2068bv64); free ensures (memory_load64_le(mem, 69696bv64) == 69696bv64); -implementation FUN_680_1664() +implementation FUN_680() { - var Gamma_load0: bool; - var load0: bv64; - FUN_680_1664__0__9vdUBrbQSwiaJeVuom5EvQ: - assume {:captureState "FUN_680_1664__0__9vdUBrbQSwiaJeVuom5EvQ"} true; + var $load0: bv64; + var Gamma_$load0: bool; + $FUN_680$__0__$9vdUBrbQSwiaJeVuom5EvQ: + assume {:captureState "$FUN_680$__0__$9vdUBrbQSwiaJeVuom5EvQ"} true; R16, Gamma_R16 := 69632bv64, true; call rely(); - load0, Gamma_load0 := memory_load64_le(mem, bvadd64(R16, 16bv64)), (gamma_load64(Gamma_mem, bvadd64(R16, 16bv64)) || L(mem, bvadd64(R16, 16bv64))); - R17, Gamma_R17 := load0, Gamma_load0; + $load0, Gamma_$load0 := memory_load64_le(mem, bvadd64(R16, 16bv64)), (gamma_load64(Gamma_mem, bvadd64(R16, 16bv64)) || L(mem, bvadd64(R16, 16bv64))); + R17, Gamma_R17 := $load0, Gamma_$load0; R16, Gamma_R16 := bvadd64(R16, 16bv64), Gamma_R16; call malloc(); - goto FUN_680_1664_basil_return; - FUN_680_1664_basil_return: - assume {:captureState "FUN_680_1664_basil_return"} true; - return; + assume false; } -procedure FUN_6b0_1712(); +procedure FUN_6b0(); modifies Gamma_R16, Gamma_R17, Gamma_mem, R16, R17, mem; free requires (memory_load64_le(mem, 2256bv64) == 2334386691848142849bv64); free requires (memory_load64_le(mem, 2264bv64) == 4211825664600402019bv64); @@ -182,25 +179,22 @@ procedure FUN_6b0_1712(); free ensures (memory_load64_le(mem, 69592bv64) == 2068bv64); free ensures (memory_load64_le(mem, 69696bv64) == 69696bv64); -implementation FUN_6b0_1712() +implementation FUN_6b0() { - var Gamma_load1: bool; - var load1: bv64; - FUN_6b0_1712__0__8CgJ347mTAagL8N803gTlQ: - assume {:captureState "FUN_6b0_1712__0__8CgJ347mTAagL8N803gTlQ"} true; + var $load1: bv64; + var Gamma_$load1: bool; + $FUN_6b0$__0__$8CgJ347mTAagL8N803gTlQ: + assume {:captureState "$FUN_6b0$__0__$8CgJ347mTAagL8N803gTlQ"} true; R16, Gamma_R16 := 69632bv64, true; call rely(); - load1, Gamma_load1 := memory_load64_le(mem, bvadd64(R16, 40bv64)), (gamma_load64(Gamma_mem, bvadd64(R16, 40bv64)) || L(mem, bvadd64(R16, 40bv64))); - R17, Gamma_R17 := load1, Gamma_load1; + $load1, Gamma_$load1 := memory_load64_le(mem, bvadd64(R16, 40bv64)), (gamma_load64(Gamma_mem, bvadd64(R16, 40bv64)) || L(mem, bvadd64(R16, 40bv64))); + R17, Gamma_R17 := $load1, Gamma_$load1; R16, Gamma_R16 := bvadd64(R16, 40bv64), Gamma_R16; call #free(); - goto FUN_6b0_1712_basil_return; - FUN_6b0_1712_basil_return: - assume {:captureState "FUN_6b0_1712_basil_return"} true; - return; + assume false; } -procedure FUN_6c0_1728(); +procedure FUN_6c0(); modifies Gamma_R16, Gamma_R17, Gamma_mem, R16, R17, mem; free requires (memory_load64_le(mem, 2256bv64) == 2334386691848142849bv64); free requires (memory_load64_le(mem, 2264bv64) == 4211825664600402019bv64); @@ -227,25 +221,22 @@ procedure FUN_6c0_1728(); free ensures (memory_load64_le(mem, 69592bv64) == 2068bv64); free ensures (memory_load64_le(mem, 69696bv64) == 69696bv64); -implementation FUN_6c0_1728() +implementation FUN_6c0() { - var Gamma_load13: bool; - var load13: bv64; - FUN_6c0_1728__0__4WlH9L7ETgacwvseUfY3jw: - assume {:captureState "FUN_6c0_1728__0__4WlH9L7ETgacwvseUfY3jw"} true; + var $load13: bv64; + var Gamma_$load13: bool; + $FUN_6c0$__0__$4WlH9L7ETgacwvseUfY3jw: + assume {:captureState "$FUN_6c0$__0__$4WlH9L7ETgacwvseUfY3jw"} true; R16, Gamma_R16 := 69632bv64, true; call rely(); - load13, Gamma_load13 := memory_load64_le(mem, bvadd64(R16, 48bv64)), (gamma_load64(Gamma_mem, bvadd64(R16, 48bv64)) || L(mem, bvadd64(R16, 48bv64))); - R17, Gamma_R17 := load13, Gamma_load13; + $load13, Gamma_$load13 := memory_load64_le(mem, bvadd64(R16, 48bv64)), (gamma_load64(Gamma_mem, bvadd64(R16, 48bv64)) || L(mem, bvadd64(R16, 48bv64))); + R17, Gamma_R17 := $load13, Gamma_$load13; R16, Gamma_R16 := bvadd64(R16, 48bv64), Gamma_R16; call printf(); - goto FUN_6c0_1728_basil_return; - FUN_6c0_1728_basil_return: - assume {:captureState "FUN_6c0_1728_basil_return"} true; - return; + assume false; } -procedure main_2068(); +procedure main(); modifies Gamma_R0, Gamma_R1, Gamma_R16, Gamma_R17, Gamma_R29, Gamma_R30, Gamma_R31, Gamma_R8, Gamma_R9, Gamma_mem, Gamma_stack, R0, R1, R16, R17, R29, R30, R31, R8, R9, mem, stack; free requires (memory_load64_le(mem, 69688bv64) == 0bv64); free requires (memory_load64_le(mem, 69696bv64) == 69696bv64); @@ -278,141 +269,141 @@ procedure main_2068(); free ensures (memory_load64_le(mem, 69592bv64) == 2068bv64); free ensures (memory_load64_le(mem, 69696bv64) == 69696bv64); -implementation main_2068() +implementation main() { - var Cse0__5_2_1: bv64; - var Cse0__5_3_1: bv64; - var Gamma_Cse0__5_2_1: bool; - var Gamma_Cse0__5_3_1: bool; - var Gamma_load16: bool; - var Gamma_load17: bool; - var Gamma_load18: bool; - var Gamma_load19: bool; - var Gamma_load20: bool; - var Gamma_load21: bool; - var Gamma_load22: bool; - var Gamma_load23: bool; - var Gamma_load24: bool; - var Gamma_load25: bool; - var Gamma_load26: bool; - var Gamma_load27: bool; - var load16: bv64; - var load17: bv32; - var load18: bv32; - var load19: bv64; - var load20: bv64; - var load21: bv64; - var load22: bv32; - var load23: bv64; - var load24: bv64; - var load25: bv64; - var load26: bv8; - var load27: bv64; - main_2068__0__uE7qCv5XQSaoZC2XHmZwIA: - assume {:captureState "main_2068__0__uE7qCv5XQSaoZC2XHmZwIA"} true; + var $load16: bv64; + var $load17: bv32; + var $load18: bv32; + var $load19: bv64; + var $load20: bv64; + var $load21: bv64; + var $load22: bv32; + var $load23: bv64; + var $load24: bv64; + var $load25: bv64; + var $load26: bv8; + var $load27: bv64; + var Cse0__5$2$1: bv64; + var Cse0__5$3$1: bv64; + var Gamma_$load16: bool; + var Gamma_$load17: bool; + var Gamma_$load18: bool; + var Gamma_$load19: bool; + var Gamma_$load20: bool; + var Gamma_$load21: bool; + var Gamma_$load22: bool; + var Gamma_$load23: bool; + var Gamma_$load24: bool; + var Gamma_$load25: bool; + var Gamma_$load26: bool; + var Gamma_$load27: bool; + var Gamma_Cse0__5$2$1: bool; + var Gamma_Cse0__5$3$1: bool; + $main$__0__$uE7qCv5XQSaoZC2XHmZwIA: + assume {:captureState "$main$__0__$uE7qCv5XQSaoZC2XHmZwIA"} true; R31, Gamma_R31 := bvadd64(R31, 18446744073709551568bv64), Gamma_R31; - Cse0__5_3_1, Gamma_Cse0__5_3_1 := bvadd64(R31, 32bv64), Gamma_R31; - stack, Gamma_stack := memory_store64_le(stack, Cse0__5_3_1, R29), gamma_store64(Gamma_stack, Cse0__5_3_1, Gamma_R29); - assume {:captureState "2072_1"} true; - stack, Gamma_stack := memory_store64_le(stack, bvadd64(Cse0__5_3_1, 8bv64), R30), gamma_store64(Gamma_stack, bvadd64(Cse0__5_3_1, 8bv64), Gamma_R30); - assume {:captureState "2072_2"} true; + Cse0__5$3$1, Gamma_Cse0__5$3$1 := bvadd64(R31, 32bv64), Gamma_R31; + stack, Gamma_stack := memory_store64_le(stack, Cse0__5$3$1, R29), gamma_store64(Gamma_stack, Cse0__5$3$1, Gamma_R29); + assume {:captureState "2072$1"} true; + stack, Gamma_stack := memory_store64_le(stack, bvadd64(Cse0__5$3$1, 8bv64), R30), gamma_store64(Gamma_stack, bvadd64(Cse0__5$3$1, 8bv64), Gamma_R30); + assume {:captureState "2072$2"} true; R29, Gamma_R29 := bvadd64(R31, 32bv64), Gamma_R31; R8, Gamma_R8 := 0bv64, true; stack, Gamma_stack := memory_store32_le(stack, R31, R8[32:0]), gamma_store32(Gamma_stack, R31, Gamma_R8); - assume {:captureState "2084_0"} true; + assume {:captureState "2084$0"} true; stack, Gamma_stack := memory_store32_le(stack, bvadd64(R29, 18446744073709551612bv64), 0bv32), gamma_store32(Gamma_stack, bvadd64(R29, 18446744073709551612bv64), true); - assume {:captureState "2088_0"} true; + assume {:captureState "2088$0"} true; R0, Gamma_R0 := 1bv64, true; R30, Gamma_R30 := 2100bv64, true; - call FUN_680_1664(); - goto main_2068__1__dgj~vxjdRmWAIHXijPkJIw; - main_2068__1__dgj~vxjdRmWAIHXijPkJIw: - assume {:captureState "main_2068__1__dgj~vxjdRmWAIHXijPkJIw"} true; + call FUN_680(); + goto $main$__1__$dgj~vxjdRmWAIHXijPkJIw; + $main$__1__$dgj~vxjdRmWAIHXijPkJIw: + assume {:captureState "$main$__1__$dgj~vxjdRmWAIHXijPkJIw"} true; stack, Gamma_stack := memory_store64_le(stack, bvadd64(R31, 16bv64), R0), gamma_store64(Gamma_stack, bvadd64(R31, 16bv64), Gamma_R0); - assume {:captureState "2100_0"} true; + assume {:captureState "2100$0"} true; R0, Gamma_R0 := 4bv64, true; R30, Gamma_R30 := 2112bv64, true; - call FUN_680_1664(); - goto main_2068__2__AbMdt8szSHac6Me44gUD3g; - main_2068__2__AbMdt8szSHac6Me44gUD3g: - assume {:captureState "main_2068__2__AbMdt8szSHac6Me44gUD3g"} true; + call FUN_680(); + goto $main$__2__$AbMdt8szSHac6Me44gUD3g; + $main$__2__$AbMdt8szSHac6Me44gUD3g: + assume {:captureState "$main$__2__$AbMdt8szSHac6Me44gUD3g"} true; stack, Gamma_stack := memory_store64_le(stack, bvadd64(R31, 8bv64), R0), gamma_store64(Gamma_stack, bvadd64(R31, 8bv64), Gamma_R0); - assume {:captureState "2112_0"} true; + assume {:captureState "2112$0"} true; R8, Gamma_R8 := 10bv64, true; stack, Gamma_stack := memory_store32_le(stack, bvadd64(R31, 4bv64), R8[32:0]), gamma_store32(Gamma_stack, bvadd64(R31, 4bv64), Gamma_R8); - assume {:captureState "2120_0"} true; - load23, Gamma_load23 := memory_load64_le(stack, bvadd64(R31, 16bv64)), gamma_load64(Gamma_stack, bvadd64(R31, 16bv64)); - R9, Gamma_R9 := load23, Gamma_load23; + assume {:captureState "2120$0"} true; + $load23, Gamma_$load23 := memory_load64_le(stack, bvadd64(R31, 16bv64)), gamma_load64(Gamma_stack, bvadd64(R31, 16bv64)); + R9, Gamma_R9 := $load23, Gamma_$load23; R8, Gamma_R8 := 65bv64, true; call rely(); assert (L(mem, R9) ==> Gamma_R8); mem, Gamma_mem := memory_store8_le(mem, R9, R8[8:0]), gamma_store8(Gamma_mem, R9, Gamma_R8); - assume {:captureState "2132_0"} true; - load24, Gamma_load24 := memory_load64_le(stack, bvadd64(R31, 8bv64)), gamma_load64(Gamma_stack, bvadd64(R31, 8bv64)); - R9, Gamma_R9 := load24, Gamma_load24; + assume {:captureState "2132$0"} true; + $load24, Gamma_$load24 := memory_load64_le(stack, bvadd64(R31, 8bv64)), gamma_load64(Gamma_stack, bvadd64(R31, 8bv64)); + R9, Gamma_R9 := $load24, Gamma_$load24; R8, Gamma_R8 := 42bv64, true; call rely(); assert (L(mem, R9) ==> Gamma_R8); mem, Gamma_mem := memory_store32_le(mem, R9, R8[32:0]), gamma_store32(Gamma_mem, R9, Gamma_R8); - assume {:captureState "2144_0"} true; - load25, Gamma_load25 := memory_load64_le(stack, bvadd64(R31, 16bv64)), gamma_load64(Gamma_stack, bvadd64(R31, 16bv64)); - R8, Gamma_R8 := load25, Gamma_load25; + assume {:captureState "2144$0"} true; + $load25, Gamma_$load25 := memory_load64_le(stack, bvadd64(R31, 16bv64)), gamma_load64(Gamma_stack, bvadd64(R31, 16bv64)); + R8, Gamma_R8 := $load25, Gamma_$load25; call rely(); - load26, Gamma_load26 := memory_load8_le(mem, R8), (gamma_load8(Gamma_mem, R8) || L(mem, R8)); - R1, Gamma_R1 := zero_extend32_32(zero_extend24_8(load26)), Gamma_load26; + $load26, Gamma_$load26 := memory_load8_le(mem, R8), (gamma_load8(Gamma_mem, R8) || L(mem, R8)); + R1, Gamma_R1 := zero_extend32_32(zero_extend24_8($load26)), Gamma_$load26; R0, Gamma_R0 := 0bv64, true; R0, Gamma_R0 := bvadd64(R0, 2260bv64), Gamma_R0; R30, Gamma_R30 := 2168bv64, true; - call FUN_6c0_1728(); - goto main_2068__3__YiNkuzyxSAi8ch4~JRnQRw; - main_2068__3__YiNkuzyxSAi8ch4~JRnQRw: - assume {:captureState "main_2068__3__YiNkuzyxSAi8ch4~JRnQRw"} true; - load21, Gamma_load21 := memory_load64_le(stack, bvadd64(R31, 8bv64)), gamma_load64(Gamma_stack, bvadd64(R31, 8bv64)); - R8, Gamma_R8 := load21, Gamma_load21; + call FUN_6c0(); + goto $main$__3__$YiNkuzyxSAi8ch4~JRnQRw; + $main$__3__$YiNkuzyxSAi8ch4~JRnQRw: + assume {:captureState "$main$__3__$YiNkuzyxSAi8ch4~JRnQRw"} true; + $load21, Gamma_$load21 := memory_load64_le(stack, bvadd64(R31, 8bv64)), gamma_load64(Gamma_stack, bvadd64(R31, 8bv64)); + R8, Gamma_R8 := $load21, Gamma_$load21; call rely(); - load22, Gamma_load22 := memory_load32_le(mem, R8), (gamma_load32(Gamma_mem, R8) || L(mem, R8)); - R1, Gamma_R1 := zero_extend32_32(load22), Gamma_load22; + $load22, Gamma_$load22 := memory_load32_le(mem, R8), (gamma_load32(Gamma_mem, R8) || L(mem, R8)); + R1, Gamma_R1 := zero_extend32_32($load22), Gamma_$load22; R0, Gamma_R0 := 0bv64, true; R0, Gamma_R0 := bvadd64(R0, 2277bv64), Gamma_R0; R30, Gamma_R30 := 2188bv64, true; - call FUN_6c0_1728(); - goto main_2068__4__sePoi2e_Tqq7bHfBWVfW5g; - main_2068__4__sePoi2e_Tqq7bHfBWVfW5g: - assume {:captureState "main_2068__4__sePoi2e_Tqq7bHfBWVfW5g"} true; - load17, Gamma_load17 := memory_load32_le(stack, bvadd64(R31, 4bv64)), gamma_load32(Gamma_stack, bvadd64(R31, 4bv64)); - R1, Gamma_R1 := zero_extend32_32(load17), Gamma_load17; + call FUN_6c0(); + goto $main$__4__$sePoi2e_Tqq7bHfBWVfW5g; + $main$__4__$sePoi2e_Tqq7bHfBWVfW5g: + assume {:captureState "$main$__4__$sePoi2e_Tqq7bHfBWVfW5g"} true; + $load17, Gamma_$load17 := memory_load32_le(stack, bvadd64(R31, 4bv64)), gamma_load32(Gamma_stack, bvadd64(R31, 4bv64)); + R1, Gamma_R1 := zero_extend32_32($load17), Gamma_$load17; R0, Gamma_R0 := 0bv64, true; R0, Gamma_R0 := bvadd64(R0, 2293bv64), Gamma_R0; R30, Gamma_R30 := 2204bv64, true; - call FUN_6c0_1728(); - goto main_2068__5__J4PaOyLLQDaFhYWMa4o2Xw; - main_2068__5__J4PaOyLLQDaFhYWMa4o2Xw: - assume {:captureState "main_2068__5__J4PaOyLLQDaFhYWMa4o2Xw"} true; - load27, Gamma_load27 := memory_load64_le(stack, bvadd64(R31, 16bv64)), gamma_load64(Gamma_stack, bvadd64(R31, 16bv64)); - R0, Gamma_R0 := load27, Gamma_load27; + call FUN_6c0(); + goto $main$__5__$J4PaOyLLQDaFhYWMa4o2Xw; + $main$__5__$J4PaOyLLQDaFhYWMa4o2Xw: + assume {:captureState "$main$__5__$J4PaOyLLQDaFhYWMa4o2Xw"} true; + $load27, Gamma_$load27 := memory_load64_le(stack, bvadd64(R31, 16bv64)), gamma_load64(Gamma_stack, bvadd64(R31, 16bv64)); + R0, Gamma_R0 := $load27, Gamma_$load27; R30, Gamma_R30 := 2212bv64, true; - call FUN_6b0_1712(); - goto main_2068__6__r9k1rsQ0R9i49NDTDexoJg; - main_2068__6__r9k1rsQ0R9i49NDTDexoJg: - assume {:captureState "main_2068__6__r9k1rsQ0R9i49NDTDexoJg"} true; - load16, Gamma_load16 := memory_load64_le(stack, bvadd64(R31, 8bv64)), gamma_load64(Gamma_stack, bvadd64(R31, 8bv64)); - R0, Gamma_R0 := load16, Gamma_load16; + call FUN_6b0(); + goto $main$__6__$r9k1rsQ0R9i49NDTDexoJg; + $main$__6__$r9k1rsQ0R9i49NDTDexoJg: + assume {:captureState "$main$__6__$r9k1rsQ0R9i49NDTDexoJg"} true; + $load16, Gamma_$load16 := memory_load64_le(stack, bvadd64(R31, 8bv64)), gamma_load64(Gamma_stack, bvadd64(R31, 8bv64)); + R0, Gamma_R0 := $load16, Gamma_$load16; R30, Gamma_R30 := 2220bv64, true; - call FUN_6b0_1712(); - goto main_2068__7__2lSrma4tR0KhXTbZ8h2uhw; - main_2068__7__2lSrma4tR0KhXTbZ8h2uhw: - assume {:captureState "main_2068__7__2lSrma4tR0KhXTbZ8h2uhw"} true; - load18, Gamma_load18 := memory_load32_le(stack, R31), gamma_load32(Gamma_stack, R31); - R0, Gamma_R0 := zero_extend32_32(load18), Gamma_load18; - Cse0__5_2_1, Gamma_Cse0__5_2_1 := bvadd64(R31, 32bv64), Gamma_R31; - load19, Gamma_load19 := memory_load64_le(stack, Cse0__5_2_1), gamma_load64(Gamma_stack, Cse0__5_2_1); - R29, Gamma_R29 := load19, Gamma_load19; - load20, Gamma_load20 := memory_load64_le(stack, bvadd64(Cse0__5_2_1, 8bv64)), gamma_load64(Gamma_stack, bvadd64(Cse0__5_2_1, 8bv64)); - R30, Gamma_R30 := load20, Gamma_load20; + call FUN_6b0(); + goto $main$__7__$2lSrma4tR0KhXTbZ8h2uhw; + $main$__7__$2lSrma4tR0KhXTbZ8h2uhw: + assume {:captureState "$main$__7__$2lSrma4tR0KhXTbZ8h2uhw"} true; + $load18, Gamma_$load18 := memory_load32_le(stack, R31), gamma_load32(Gamma_stack, R31); + R0, Gamma_R0 := zero_extend32_32($load18), Gamma_$load18; + Cse0__5$2$1, Gamma_Cse0__5$2$1 := bvadd64(R31, 32bv64), Gamma_R31; + $load19, Gamma_$load19 := memory_load64_le(stack, Cse0__5$2$1), gamma_load64(Gamma_stack, Cse0__5$2$1); + R29, Gamma_R29 := $load19, Gamma_$load19; + $load20, Gamma_$load20 := memory_load64_le(stack, bvadd64(Cse0__5$2$1, 8bv64)), gamma_load64(Gamma_stack, bvadd64(Cse0__5$2$1, 8bv64)); + R30, Gamma_R30 := $load20, Gamma_$load20; R31, Gamma_R31 := bvadd64(R31, 48bv64), Gamma_R31; - goto main_2068_basil_return; - main_2068_basil_return: - assume {:captureState "main_2068_basil_return"} true; + goto main_basil_return; + main_basil_return: + assume {:captureState "main_basil_return"} true; return; } diff --git a/src/test/correct/malloc_with_local/clang_O2/malloc_with_local.adt b/src/test/correct/malloc_with_local/clang_O2/malloc_with_local.adt deleted file mode 100644 index 96137e79e..000000000 --- a/src/test/correct/malloc_with_local/clang_O2/malloc_with_local.adt +++ /dev/null @@ -1,566 +0,0 @@ -Project(Attrs([Attr("filename","\"clang_O2/malloc_with_local.out\""), -Attr("image-specification","(declare abi (name str))\n(declare arch (name str))\n(declare base-address (addr int))\n(declare bias (off int))\n(declare bits (size int))\n(declare code-region (addr int) (size int) (off int))\n(declare code-start (addr int))\n(declare entry-point (addr int))\n(declare external-reference (addr int) (name str))\n(declare format (name str))\n(declare is-executable (flag bool))\n(declare is-little-endian (flag bool))\n(declare llvm:base-address (addr int))\n(declare llvm:code-entry (name str) (off int) (size int))\n(declare llvm:coff-import-library (name str))\n(declare llvm:coff-virtual-section-header (name str) (addr int) (size int))\n(declare llvm:elf-program-header (name str) (off int) (size int))\n(declare llvm:elf-program-header-flags (name str) (ld bool) (r bool) \n (w bool) (x bool))\n(declare llvm:elf-virtual-program-header (name str) (addr int) (size int))\n(declare llvm:entry-point (addr int))\n(declare llvm:macho-symbol (name str) (value int))\n(declare llvm:name-reference (at int) (name str))\n(declare llvm:relocation (at int) (addr int))\n(declare llvm:section-entry (name str) (addr int) (size int) (off int))\n(declare llvm:section-flags (name str) (r bool) (w bool) (x bool))\n(declare llvm:segment-command (name str) (off int) (size int))\n(declare llvm:segment-command-flags (name str) (r bool) (w bool) (x bool))\n(declare llvm:symbol-entry (name str) (addr int) (size int) (off int)\n (value int))\n(declare llvm:virtual-segment-command (name str) (addr int) (size int))\n(declare mapped (addr int) (size int) (off int))\n(declare named-region (addr int) (size int) (name str))\n(declare named-symbol (addr int) (name str))\n(declare require (name str))\n(declare section (addr int) (size int))\n(declare segment (addr int) (size int) (r bool) (w bool) (x bool))\n(declare subarch (name str))\n(declare symbol-chunk (addr int) (size int) (root int))\n(declare symbol-value (addr int) (value int))\n(declare system (name str))\n(declare vendor (name str))\n\n(abi unknown)\n(arch aarch64)\n(base-address 0)\n(bias 0)\n(bits 64)\n(code-region 1944 20 1944)\n(code-region 1600 344 1600)\n(code-region 1488 112 1488)\n(code-region 1464 24 1464)\n(code-start 1652)\n(code-start 1600)\n(code-start 1876)\n(entry-point 1600)\n(external-reference 69568 _ITM_deregisterTMCloneTable)\n(external-reference 69576 __cxa_finalize)\n(external-reference 69584 __gmon_start__)\n(external-reference 69600 _ITM_registerTMCloneTable)\n(external-reference 69632 __libc_start_main)\n(external-reference 69640 __cxa_finalize)\n(external-reference 69648 __gmon_start__)\n(external-reference 69656 abort)\n(external-reference 69664 printf)\n(format elf)\n(is-executable true)\n(is-little-endian true)\n(llvm:base-address 0)\n(llvm:code-entry printf 0 0)\n(llvm:code-entry abort 0 0)\n(llvm:code-entry __cxa_finalize 0 0)\n(llvm:code-entry __libc_start_main 0 0)\n(llvm:code-entry _init 1464 0)\n(llvm:code-entry printf@GLIBC_2.17 0 0)\n(llvm:code-entry main 1876 68)\n(llvm:code-entry _start 1600 52)\n(llvm:code-entry abort@GLIBC_2.17 0 0)\n(llvm:code-entry _fini 1944 0)\n(llvm:code-entry __cxa_finalize@GLIBC_2.17 0 0)\n(llvm:code-entry __libc_start_main@GLIBC_2.34 0 0)\n(llvm:code-entry frame_dummy 1872 0)\n(llvm:code-entry __do_global_dtors_aux 1792 0)\n(llvm:code-entry register_tm_clones 1728 0)\n(llvm:code-entry deregister_tm_clones 1680 0)\n(llvm:code-entry call_weak_fn 1652 20)\n(llvm:code-entry .fini 1944 20)\n(llvm:code-entry .text 1600 344)\n(llvm:code-entry .plt 1488 112)\n(llvm:code-entry .init 1464 24)\n(llvm:elf-program-header 08 3528 568)\n(llvm:elf-program-header 07 0 0)\n(llvm:elf-program-header 06 2028 60)\n(llvm:elf-program-header 05 596 68)\n(llvm:elf-program-header 04 3544 480)\n(llvm:elf-program-header 03 3528 624)\n(llvm:elf-program-header 02 0 2288)\n(llvm:elf-program-header 01 568 27)\n(llvm:elf-program-header 00 64 504)\n(llvm:elf-program-header-flags 08 false true false false)\n(llvm:elf-program-header-flags 07 false true true false)\n(llvm:elf-program-header-flags 06 false true false false)\n(llvm:elf-program-header-flags 05 false true false false)\n(llvm:elf-program-header-flags 04 false true true false)\n(llvm:elf-program-header-flags 03 true true true false)\n(llvm:elf-program-header-flags 02 true true false true)\n(llvm:elf-program-header-flags 01 false true false false)\n(llvm:elf-program-header-flags 00 false true false false)\n(llvm:elf-virtual-program-header 08 69064 568)\n(llvm:elf-virtual-program-header 07 0 0)\n(llvm:elf-virtual-program-header 06 2028 60)\n(llvm:elf-virtual-program-header 05 596 68)\n(llvm:elf-virtual-program-header 04 69080 480)\n(llvm:elf-virtual-program-header 03 69064 632)\n(llvm:elf-virtual-program-header 02 0 2288)\n(llvm:elf-virtual-program-header 01 568 27)\n(llvm:elf-virtual-program-header 00 64 504)\n(llvm:entry-point 1600)\n(llvm:name-reference 69664 printf)\n(llvm:name-reference 69656 abort)\n(llvm:name-reference 69648 __gmon_start__)\n(llvm:name-reference 69640 __cxa_finalize)\n(llvm:name-reference 69632 __libc_start_main)\n(llvm:name-reference 69600 _ITM_registerTMCloneTable)\n(llvm:name-reference 69584 __gmon_start__)\n(llvm:name-reference 69576 __cxa_finalize)\n(llvm:name-reference 69568 _ITM_deregisterTMCloneTable)\n(llvm:section-entry .shstrtab 0 259 6975)\n(llvm:section-entry .strtab 0 591 6384)\n(llvm:section-entry .symtab 0 2160 4224)\n(llvm:section-entry .comment 0 71 4152)\n(llvm:section-entry .bss 69688 8 4152)\n(llvm:section-entry .data 69672 16 4136)\n(llvm:section-entry .got.plt 69608 64 4072)\n(llvm:section-entry .got 69560 48 4024)\n(llvm:section-entry .dynamic 69080 480 3544)\n(llvm:section-entry .fini_array 69072 8 3536)\n(llvm:section-entry .init_array 69064 8 3528)\n(llvm:section-entry .eh_frame 2088 200 2088)\n(llvm:section-entry .eh_frame_hdr 2028 60 2028)\n(llvm:section-entry .rodata 1964 64 1964)\n(llvm:section-entry .fini 1944 20 1944)\n(llvm:section-entry .text 1600 344 1600)\n(llvm:section-entry .plt 1488 112 1488)\n(llvm:section-entry .init 1464 24 1464)\n(llvm:section-entry .rela.plt 1344 120 1344)\n(llvm:section-entry .rela.dyn 1152 192 1152)\n(llvm:section-entry .gnu.version_r 1104 48 1104)\n(llvm:section-entry .gnu.version 1084 20 1084)\n(llvm:section-entry .dynstr 936 148 936)\n(llvm:section-entry .dynsym 696 240 696)\n(llvm:section-entry .gnu.hash 664 28 664)\n(llvm:section-entry .note.ABI-tag 632 32 632)\n(llvm:section-entry .note.gnu.build-id 596 36 596)\n(llvm:section-entry .interp 568 27 568)\n(llvm:section-flags .shstrtab true false false)\n(llvm:section-flags .strtab true false false)\n(llvm:section-flags .symtab true false false)\n(llvm:section-flags .comment true false false)\n(llvm:section-flags .bss true true false)\n(llvm:section-flags .data true true false)\n(llvm:section-flags .got.plt true true false)\n(llvm:section-flags .got true true false)\n(llvm:section-flags .dynamic true true false)\n(llvm:section-flags .fini_array true true false)\n(llvm:section-flags .init_array true true false)\n(llvm:section-flags .eh_frame true false false)\n(llvm:section-flags .eh_frame_hdr true false false)\n(llvm:section-flags .rodata true false false)\n(llvm:section-flags .fini true false true)\n(llvm:section-flags .text true false true)\n(llvm:section-flags .plt true false true)\n(llvm:section-flags .init true false true)\n(llvm:section-flags .rela.plt true false false)\n(llvm:section-flags .rela.dyn true false false)\n(llvm:section-flags .gnu.version_r true false false)\n(llvm:section-flags .gnu.version true false false)\n(llvm:section-flags .dynstr true false false)\n(llvm:section-flags .dynsym true false false)\n(llvm:section-flags .gnu.hash true false false)\n(llvm:section-flags .note.ABI-tag true false false)\n(llvm:section-flags .note.gnu.build-id true false false)\n(llvm:section-flags .interp true false false)\n(llvm:symbol-entry printf 0 0 0 0)\n(llvm:symbol-entry abort 0 0 0 0)\n(llvm:symbol-entry __cxa_finalize 0 0 0 0)\n(llvm:symbol-entry __libc_start_main 0 0 0 0)\n(llvm:symbol-entry _init 1464 0 1464 1464)\n(llvm:symbol-entry printf@GLIBC_2.17 0 0 0 0)\n(llvm:symbol-entry main 1876 68 1876 1876)\n(llvm:symbol-entry _start 1600 52 1600 1600)\n(llvm:symbol-entry abort@GLIBC_2.17 0 0 0 0)\n(llvm:symbol-entry _fini 1944 0 1944 1944)\n(llvm:symbol-entry __cxa_finalize@GLIBC_2.17 0 0 0 0)\n(llvm:symbol-entry __libc_start_main@GLIBC_2.34 0 0 0 0)\n(llvm:symbol-entry frame_dummy 1872 0 1872 1872)\n(llvm:symbol-entry __do_global_dtors_aux 1792 0 1792 1792)\n(llvm:symbol-entry register_tm_clones 1728 0 1728 1728)\n(llvm:symbol-entry deregister_tm_clones 1680 0 1680 1680)\n(llvm:symbol-entry call_weak_fn 1652 20 1652 1652)\n(mapped 0 2288 0)\n(mapped 69064 624 3528)\n(named-region 0 2288 02)\n(named-region 69064 632 03)\n(named-region 568 27 .interp)\n(named-region 596 36 .note.gnu.build-id)\n(named-region 632 32 .note.ABI-tag)\n(named-region 664 28 .gnu.hash)\n(named-region 696 240 .dynsym)\n(named-region 936 148 .dynstr)\n(named-region 1084 20 .gnu.version)\n(named-region 1104 48 .gnu.version_r)\n(named-region 1152 192 .rela.dyn)\n(named-region 1344 120 .rela.plt)\n(named-region 1464 24 .init)\n(named-region 1488 112 .plt)\n(named-region 1600 344 .text)\n(named-region 1944 20 .fini)\n(named-region 1964 64 .rodata)\n(named-region 2028 60 .eh_frame_hdr)\n(named-region 2088 200 .eh_frame)\n(named-region 69064 8 .init_array)\n(named-region 69072 8 .fini_array)\n(named-region 69080 480 .dynamic)\n(named-region 69560 48 .got)\n(named-region 69608 64 .got.plt)\n(named-region 69672 16 .data)\n(named-region 69688 8 .bss)\n(named-region 0 71 .comment)\n(named-region 0 2160 .symtab)\n(named-region 0 591 .strtab)\n(named-region 0 259 .shstrtab)\n(named-symbol 1652 call_weak_fn)\n(named-symbol 1680 deregister_tm_clones)\n(named-symbol 1728 register_tm_clones)\n(named-symbol 1792 __do_global_dtors_aux)\n(named-symbol 1872 frame_dummy)\n(named-symbol 0 __libc_start_main@GLIBC_2.34)\n(named-symbol 0 __cxa_finalize@GLIBC_2.17)\n(named-symbol 1944 _fini)\n(named-symbol 0 abort@GLIBC_2.17)\n(named-symbol 1600 _start)\n(named-symbol 1876 main)\n(named-symbol 0 printf@GLIBC_2.17)\n(named-symbol 1464 _init)\n(named-symbol 0 __libc_start_main)\n(named-symbol 0 __cxa_finalize)\n(named-symbol 0 abort)\n(named-symbol 0 printf)\n(require libc.so.6)\n(section 568 27)\n(section 596 36)\n(section 632 32)\n(section 664 28)\n(section 696 240)\n(section 936 148)\n(section 1084 20)\n(section 1104 48)\n(section 1152 192)\n(section 1344 120)\n(section 1464 24)\n(section 1488 112)\n(section 1600 344)\n(section 1944 20)\n(section 1964 64)\n(section 2028 60)\n(section 2088 200)\n(section 69064 8)\n(section 69072 8)\n(section 69080 480)\n(section 69560 48)\n(section 69608 64)\n(section 69672 16)\n(section 69688 8)\n(section 0 71)\n(section 0 2160)\n(section 0 591)\n(section 0 259)\n(segment 0 2288 true false true)\n(segment 69064 632 true true false)\n(subarch v8)\n(symbol-chunk 1652 20 1652)\n(symbol-chunk 1600 52 1600)\n(symbol-chunk 1876 68 1876)\n(symbol-value 1652 1652)\n(symbol-value 1680 1680)\n(symbol-value 1728 1728)\n(symbol-value 1792 1792)\n(symbol-value 1872 1872)\n(symbol-value 1944 1944)\n(symbol-value 1600 1600)\n(symbol-value 1876 1876)\n(symbol-value 1464 1464)\n(symbol-value 0 0)\n(system \"\")\n(vendor \"\")\n"), -Attr("abi-name","\"aarch64-linux-gnu-elf\"")]), -Sections([Section(".shstrtab", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x40\x06\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x48\x1c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x38\x00\x09\x00\x40\x00\x1d\x00\x1c\x00\x06\x00\x00\x00\x04\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x04\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xf0\x08\x00\x00\x00\x00\x00\x00\xf0\x08\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x01\x00\x00\x00\x06\x00\x00\x00\xc8\x0d\x00\x00\x00\x00\x00\x00\xc8\x0d\x01\x00\x00\x00\x00\x00\xc8\x0d\x01"), -Section(".strtab", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x40\x06\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x48\x1c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x38\x00\x09\x00\x40\x00\x1d\x00\x1c\x00\x06\x00\x00\x00\x04\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x04\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xf0\x08\x00\x00\x00\x00\x00\x00\xf0\x08\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x01\x00\x00\x00\x06\x00\x00\x00\xc8\x0d\x00\x00\x00\x00\x00\x00\xc8\x0d\x01\x00\x00\x00\x00\x00\xc8\x0d\x01\x00\x00\x00\x00\x00\x70\x02\x00\x00\x00\x00\x00\x00\x78\x02\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x02\x00\x00\x00\x06\x00\x00\x00\xd8\x0d\x00\x00\x00\x00\x00\x00\xd8\x0d\x01\x00\x00\x00\x00\x00\xd8\x0d\x01\x00\x00\x00\x00\x00\xe0\x01\x00\x00\x00\x00\x00\x00\xe0\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x04\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x50\xe5\x74\x64\x04\x00\x00\x00\xec\x07\x00\x00\x00\x00\x00\x00\xec\x07\x00\x00\x00\x00\x00\x00\xec\x07\x00\x00\x00\x00\x00\x00\x3c\x00\x00\x00\x00\x00\x00\x00\x3c\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x51\xe5\x74\x64\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x52\xe5\x74\x64\x04\x00\x00\x00\xc8\x0d\x00\x00\x00\x00\x00\x00\xc8\x0d\x01\x00\x00\x00\x00\x00\xc8\x0d\x01\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x2f\x6c\x69\x62\x2f\x6c\x64\x2d\x6c\x69\x6e\x75\x78\x2d\x61\x61\x72\x63\x68\x36\x34\x2e\x73"), -Section(".symtab", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x40\x06\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x48\x1c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x38\x00\x09\x00\x40\x00\x1d\x00\x1c\x00\x06\x00\x00\x00\x04\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x04\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xf0\x08\x00\x00\x00\x00\x00\x00\xf0\x08\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x01\x00\x00\x00\x06\x00\x00\x00\xc8\x0d\x00\x00\x00\x00\x00\x00\xc8\x0d\x01\x00\x00\x00\x00\x00\xc8\x0d\x01\x00\x00\x00\x00\x00\x70\x02\x00\x00\x00\x00\x00\x00\x78\x02\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x02\x00\x00\x00\x06\x00\x00\x00\xd8\x0d\x00\x00\x00\x00\x00\x00\xd8\x0d\x01\x00\x00\x00\x00\x00\xd8\x0d\x01\x00\x00\x00\x00\x00\xe0\x01\x00\x00\x00\x00\x00\x00\xe0\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x04\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x50\xe5\x74\x64\x04\x00\x00\x00\xec\x07\x00\x00\x00\x00\x00\x00\xec\x07\x00\x00\x00\x00\x00\x00\xec\x07\x00\x00\x00\x00\x00\x00\x3c\x00\x00\x00\x00\x00\x00\x00\x3c\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x51\xe5\x74\x64\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x52\xe5\x74\x64\x04\x00\x00\x00\xc8\x0d\x00\x00\x00\x00\x00\x00\xc8\x0d\x01\x00\x00\x00\x00\x00\xc8\x0d\x01\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x2f\x6c\x69\x62\x2f\x6c\x64\x2d\x6c\x69\x6e\x75\x78\x2d\x61\x61\x72\x63\x68\x36\x34\x2e\x73\x6f\x2e\x31\x00\x00\x04\x00\x00\x00\x14\x00\x00\x00\x03\x00\x00\x00\x47\x4e\x55\x00\x99\x83\x89\xe0\x0b\xf4\xdd\x7d\x55\x8c\xf7\x6e\x12\xe6\xf6\x6a\x06\x3c\x6c\xa4\x04\x00\x00\x00\x10\x00\x00\x00\x01\x00\x00\x00\x47\x4e\x55\x00\x00\x00\x00\x00\x03\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x01\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x0b\x00\xb8\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x17\x00\x28\x10\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4f\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x22\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6b\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x22\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x28\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5f\x5f\x63\x78\x61\x5f\x66\x69\x6e\x61\x6c\x69\x7a\x65\x00\x5f\x5f\x6c\x69\x62\x63\x5f\x73\x74\x61\x72\x74\x5f\x6d\x61\x69\x6e\x00\x61\x62\x6f\x72\x74\x00\x70\x72\x69\x6e\x74\x66\x00\x6c\x69\x62\x63\x2e\x73\x6f\x2e\x36\x00\x47\x4c\x49\x42\x43\x5f\x32\x2e\x31\x37\x00\x47\x4c\x49\x42\x43\x5f\x32\x2e\x33\x34\x00\x5f\x49\x54\x4d\x5f\x64\x65\x72\x65\x67\x69\x73\x74\x65\x72\x54\x4d\x43\x6c\x6f\x6e\x65\x54\x61\x62\x6c\x65\x00\x5f\x5f\x67\x6d\x6f\x6e\x5f\x73\x74\x61\x72\x74\x5f\x5f\x00\x5f\x49\x54\x4d\x5f\x72\x65\x67\x69\x73\x74\x65\x72\x54\x4d\x43\x6c\x6f\x6e\x65\x54\x61\x62\x6c\x65\x00\x00\x00\x00\x00\x00\x00\x02\x00\x01\x00\x03\x00\x01\x00\x03\x00\x01\x00\x03\x00\x01\x00\x02\x00\x2f\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x97\x91\x96\x06\x00\x00\x03\x00\x39\x00\x00\x00\x10\x00\x00\x00\xb4\x91\x96\x06\x00\x00\x02\x00\x44\x00\x00\x00\x00\x00\x00\x00\xc8\x0d\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x50\x07\x00\x00\x00\x00\x00\x00\xd0\x0d\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\xd8\x0f\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x54\x07\x00\x00\x00\x00\x00\x00\x30\x10\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x30\x10\x01\x00\x00\x00\x00\x00\xc0\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xc8\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xd0\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe0\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x08\x10\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x10\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x18\x10\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x20\x10\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x09\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1f\x20\x03\xd5\xfd\x7b\xbf\xa9\xfd\x03\x00\x91\x2c\x00\x00\x94\xfd\x7b\xc1\xa8\xc0\x03\x5f\xd6\xf0\x7b\xbf\xa9\x90\x00\x00\x90\x11\xfe\x47\xf9\x10\xe2\x3f\x91\x20\x02\x1f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x90\x00\x00\xb0\x11\x02\x40\xf9\x10\x02\x00\x91\x20\x02\x1f\xd6\x90\x00\x00\xb0\x11\x06\x40\xf9\x10\x22\x00\x91\x20\x02\x1f\xd6\x90\x00\x00\xb0\x11\x0a\x40\xf9\x10\x42\x00\x91\x20\x02\x1f\xd6\x90\x00\x00\xb0\x11\x0e\x40\xf9\x10\x62\x00\x91\x20\x02\x1f\xd6\x90\x00\x00\xb0\x11\x12\x40\xf9\x10\x82\x00\x91\x20\x02\x1f\xd6\x1f\x20\x03\xd5\x1d\x00\x80\xd2\x1e\x00\x80\xd2\xe5\x03\x00\xaa\xe1\x03\x40\xf9\xe2\x23\x00\x91\xe6\x03\x00\x91\x80\x00\x00\x90\x00\xec\x47\xf9\x03\x00\x80\xd2\x04\x00\x80\xd2\xe1\xff\xff\x97\xec\xff\xff\x97\x80\x00\x00\x90\x00\xe8\x47\xf9\x40\x00\x00\xb4\xe4\xff\xff\x17\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x80\x00\x00\xb0\x00\xe0\x00\x91\x81\x00\x00\xb0\x21\xe0\x00\x91\x3f\x00\x00\xeb\xc0\x00\x00\x54\x81\x00\x00\x90\x21\xe0\x47\xf9\x61\x00\x00\xb4\xf0\x03\x01\xaa\x00\x02\x1f\xd6\xc0\x03\x5f\xd6\x80\x00\x00\xb0\x00\xe0\x00\x91\x81\x00\x00\xb0\x21\xe0\x00\x91\x21\x00\x00\xcb\x22\xfc\x7f\xd3\x41\x0c\x81\x8b\x21\xfc\x41\x93\xc1\x00\x00\xb4\x82\x00\x00\x90\x42\xf0\x47\xf9\x62\x00\x00\xb4\xf0\x03\x02\xaa\x00\x02\x1f\xd6\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\xfd\x7b\xbe\xa9\xfd\x03\x00\x91\xf3\x0b\x00\xf9\x93\x00\x00\xb0\x60\xe2\x40\x39\x40\x01\x00\x35\x80\x00\x00\x90\x00\xe4\x47\xf9\x80\x00\x00\xb4\x80\x00\x00\xb0\x00\x18\x40\xf9\xb5\xff\xff\x97\xd8\xff\xff\x97\x20\x00\x80\x52\x60\xe2\x00\x39\xf3\x0b\x40\xf9\xfd\x7b\xc2\xa8\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\xdc\xff\xff\x17\xfd\x7b\xbf\xa9\xfd\x03\x00\x91\x00\x00\x00\x90\x00\xc0\x1e\x91\x21\x08\x80\x52\xb2\xff\xff\x97\x00\x00\x00\x90\x00\x04\x1f\x91\x41\x05\x80\x52\xae\xff\xff\x97\x00\x00\x00\x90\x00\x44\x1f\x91\x41\x01\x80\x52\xaa\xff\xff\x97\xe0\x03\x1f\x2a\xfd\x7b\xc1\xa8\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\xfd\x7b\xbf\xa9\xfd\x03\x00\x91\xfd\x7b\xc1\xa8\xc0\x03\x5f\xd6\x01\x00\x02\x00\x54\x68\x65\x20\x63\x68\x61\x72\x20\x69\x73\x3a\x20\x25\x63\x0a\x00\x54\x68\x65\x20\x69\x6e\x74\x20\x69\x73\x3a\x20\x25\x64\x0a\x00\x54\x68\x65\x20\x6c\x6f\x63\x61\x6c\x20\x76\x61\x72\x69\x61\x62\x6c\x65\x20\x69\x73\x3a\x20\x25\x64\x0a\x00\x01\x1b\x03\x3b\x38\x00\x00\x00\x06\x00\x00\x00\x54\xfe\xff\xff\x50\x00\x00\x00\xa4\xfe\xff\xff\x64\x00\x00\x00\xd4\xfe\xff\xff\x78\x00\x00\x00\x14\xff\xff\xff\x8c\x00\x00\x00\x64\xff\xff\xff\xb0\x00\x00\x00\x68\xff\xff\xff\xd8\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x01\x7a\x52\x00\x04\x78\x1e\x01\x1b\x0c\x1f\x00\x10\x00\x00\x00\x18\x00\x00\x00\xfc\xfd\xff\xff\x34\x00\x00\x00\x00\x41\x07\x1e\x10\x00\x00\x00\x2c\x00\x00\x00\x38\xfe\xff\xff\x30\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x40\x00\x00\x00\x54\xfe\xff\xff"), -Section(".comment", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x40\x06\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x48\x1c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x38\x00\x09\x00\x40\x00\x1d\x00\x1c\x00\x06\x00\x00\x00\x04\x00\x00"), -Section(".interp", 0x238, "\x2f\x6c\x69\x62\x2f\x6c\x64\x2d\x6c\x69\x6e\x75\x78\x2d\x61\x61\x72\x63\x68\x36\x34\x2e\x73\x6f\x2e\x31\x00"), -Section(".note.gnu.build-id", 0x254, "\x04\x00\x00\x00\x14\x00\x00\x00\x03\x00\x00\x00\x47\x4e\x55\x00\x99\x83\x89\xe0\x0b\xf4\xdd\x7d\x55\x8c\xf7\x6e\x12\xe6\xf6\x6a\x06\x3c\x6c\xa4"), -Section(".note.ABI-tag", 0x278, "\x04\x00\x00\x00\x10\x00\x00\x00\x01\x00\x00\x00\x47\x4e\x55\x00\x00\x00\x00\x00\x03\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00"), -Section(".gnu.hash", 0x298, "\x01\x00\x00\x00\x01\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".dynsym", 0x2B8, "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x0b\x00\xb8\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x17\x00\x28\x10\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4f\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x22\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6b\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x22\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x28\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".dynstr", 0x3A8, "\x00\x5f\x5f\x63\x78\x61\x5f\x66\x69\x6e\x61\x6c\x69\x7a\x65\x00\x5f\x5f\x6c\x69\x62\x63\x5f\x73\x74\x61\x72\x74\x5f\x6d\x61\x69\x6e\x00\x61\x62\x6f\x72\x74\x00\x70\x72\x69\x6e\x74\x66\x00\x6c\x69\x62\x63\x2e\x73\x6f\x2e\x36\x00\x47\x4c\x49\x42\x43\x5f\x32\x2e\x31\x37\x00\x47\x4c\x49\x42\x43\x5f\x32\x2e\x33\x34\x00\x5f\x49\x54\x4d\x5f\x64\x65\x72\x65\x67\x69\x73\x74\x65\x72\x54\x4d\x43\x6c\x6f\x6e\x65\x54\x61\x62\x6c\x65\x00\x5f\x5f\x67\x6d\x6f\x6e\x5f\x73\x74\x61\x72\x74\x5f\x5f\x00\x5f\x49\x54\x4d\x5f\x72\x65\x67\x69\x73\x74\x65\x72\x54\x4d\x43\x6c\x6f\x6e\x65\x54\x61\x62\x6c\x65\x00"), -Section(".gnu.version", 0x43C, "\x00\x00\x00\x00\x00\x00\x02\x00\x01\x00\x03\x00\x01\x00\x03\x00\x01\x00\x03\x00"), -Section(".gnu.version_r", 0x450, "\x01\x00\x02\x00\x2f\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x97\x91\x96\x06\x00\x00\x03\x00\x39\x00\x00\x00\x10\x00\x00\x00\xb4\x91\x96\x06\x00\x00\x02\x00\x44\x00\x00\x00\x00\x00\x00\x00"), -Section(".rela.dyn", 0x480, "\xc8\x0d\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x50\x07\x00\x00\x00\x00\x00\x00\xd0\x0d\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\xd8\x0f\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x54\x07\x00\x00\x00\x00\x00\x00\x30\x10\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x30\x10\x01\x00\x00\x00\x00\x00\xc0\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xc8\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xd0\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe0\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".rela.plt", 0x540, "\x00\x10\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x08\x10\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x10\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x18\x10\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x20\x10\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x09\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".init", 0x5B8, "\x1f\x20\x03\xd5\xfd\x7b\xbf\xa9\xfd\x03\x00\x91\x2c\x00\x00\x94\xfd\x7b\xc1\xa8\xc0\x03\x5f\xd6"), -Section(".plt", 0x5D0, "\xf0\x7b\xbf\xa9\x90\x00\x00\x90\x11\xfe\x47\xf9\x10\xe2\x3f\x91\x20\x02\x1f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x90\x00\x00\xb0\x11\x02\x40\xf9\x10\x02\x00\x91\x20\x02\x1f\xd6\x90\x00\x00\xb0\x11\x06\x40\xf9\x10\x22\x00\x91\x20\x02\x1f\xd6\x90\x00\x00\xb0\x11\x0a\x40\xf9\x10\x42\x00\x91\x20\x02\x1f\xd6\x90\x00\x00\xb0\x11\x0e\x40\xf9\x10\x62\x00\x91\x20\x02\x1f\xd6\x90\x00\x00\xb0\x11\x12\x40\xf9\x10\x82\x00\x91\x20\x02\x1f\xd6"), -Section(".fini", 0x798, "\x1f\x20\x03\xd5\xfd\x7b\xbf\xa9\xfd\x03\x00\x91\xfd\x7b\xc1\xa8\xc0\x03\x5f\xd6"), -Section(".rodata", 0x7AC, "\x01\x00\x02\x00\x54\x68\x65\x20\x63\x68\x61\x72\x20\x69\x73\x3a\x20\x25\x63\x0a\x00\x54\x68\x65\x20\x69\x6e\x74\x20\x69\x73\x3a\x20\x25\x64\x0a\x00\x54\x68\x65\x20\x6c\x6f\x63\x61\x6c\x20\x76\x61\x72\x69\x61\x62\x6c\x65\x20\x69\x73\x3a\x20\x25\x64\x0a\x00"), -Section(".eh_frame_hdr", 0x7EC, "\x01\x1b\x03\x3b\x38\x00\x00\x00\x06\x00\x00\x00\x54\xfe\xff\xff\x50\x00\x00\x00\xa4\xfe\xff\xff\x64\x00\x00\x00\xd4\xfe\xff\xff\x78\x00\x00\x00\x14\xff\xff\xff\x8c\x00\x00\x00\x64\xff\xff\xff\xb0\x00\x00\x00\x68\xff\xff\xff\xd8\x00\x00\x00"), -Section(".eh_frame", 0x828, "\x10\x00\x00\x00\x00\x00\x00\x00\x01\x7a\x52\x00\x04\x78\x1e\x01\x1b\x0c\x1f\x00\x10\x00\x00\x00\x18\x00\x00\x00\xfc\xfd\xff\xff\x34\x00\x00\x00\x00\x41\x07\x1e\x10\x00\x00\x00\x2c\x00\x00\x00\x38\xfe\xff\xff\x30\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x40\x00\x00\x00\x54\xfe\xff\xff\x3c\x00\x00\x00\x00\x00\x00\x00\x20\x00\x00\x00\x54\x00\x00\x00\x80\xfe\xff\xff\x48\x00\x00\x00\x00\x41\x0e\x20\x9d\x04\x9e\x03\x42\x93\x02\x4e\xde\xdd\xd3\x0e\x00\x00\x00\x00\x10\x00\x00\x00\x78\x00\x00\x00\xac\xfe\xff\xff\x04\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x01\x7a\x52\x00\x01\x7c\x1e\x01\x1b\x0c\x1f\x00\x24\x00\x00\x00\x18\x00\x00\x00\x88\xfe\xff\xff\x44\x00\x00\x00\x00\x44\x0e\x10\x44\x0c\x1d\x10\x9e\x02\x9d\x04\x74\x0c\x1f\x10\x44\x0e\x00\xde\xdd\x00\x00\x00\x00\x00\x00\x00"), -Section(".fini_array", 0x10DD0, "\x00\x07\x00\x00\x00\x00\x00\x00"), -Section(".dynamic", 0x10DD8, "\x01\x00\x00\x00\x00\x00\x00\x00\x2f\x00\x00\x00\x00\x00\x00\x00\x0c\x00\x00\x00\x00\x00\x00\x00\xb8\x05\x00\x00\x00\x00\x00\x00\x0d\x00\x00\x00\x00\x00\x00\x00\x98\x07\x00\x00\x00\x00\x00\x00\x19\x00\x00\x00\x00\x00\x00\x00\xc8\x0d\x01\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x1a\x00\x00\x00\x00\x00\x00\x00\xd0\x0d\x01\x00\x00\x00\x00\x00\x1c\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\xf5\xfe\xff\x6f\x00\x00\x00\x00\x98\x02\x00\x00\x00\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\xa8\x03\x00\x00\x00\x00\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\xb8\x02\x00\x00\x00\x00\x00\x00\x0a\x00\x00\x00\x00\x00\x00\x00\x94\x00\x00\x00\x00\x00\x00\x00\x0b\x00\x00\x00\x00\x00\x00\x00\x18\x00\x00\x00\x00\x00\x00\x00\x15\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\xe8\x0f\x01\x00\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x78\x00\x00\x00\x00\x00\x00\x00\x14\x00\x00\x00\x00\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x17\x00\x00\x00\x00\x00\x00\x00\x40\x05\x00\x00\x00\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x80\x04\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\xc0\x00\x00\x00\x00\x00\x00\x00\x09\x00\x00\x00\x00\x00\x00\x00\x18\x00\x00\x00\x00\x00\x00\x00\xfb\xff\xff\x6f\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\xfe\xff\xff\x6f\x00\x00\x00\x00\x50\x04\x00\x00\x00\x00\x00\x00\xff\xff\xff\x6f\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\xf0\xff\xff\x6f\x00\x00\x00\x00\x3c\x04\x00\x00\x00\x00\x00\x00\xf9\xff\xff\x6f\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".init_array", 0x10DC8, "\x50\x07\x00\x00\x00\x00\x00\x00"), -Section(".got", 0x10FB8, "\xd8\x0d\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x54\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".got.plt", 0x10FE8, "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xd0\x05\x00\x00\x00\x00\x00\x00\xd0\x05\x00\x00\x00\x00\x00\x00\xd0\x05\x00\x00\x00\x00\x00\x00\xd0\x05\x00\x00\x00\x00\x00\x00\xd0\x05\x00\x00\x00\x00\x00\x00"), -Section(".data", 0x11028, "\x00\x00\x00\x00\x00\x00\x00\x00\x30\x10\x01\x00\x00\x00\x00\x00"), -Section(".text", 0x640, "\x1f\x20\x03\xd5\x1d\x00\x80\xd2\x1e\x00\x80\xd2\xe5\x03\x00\xaa\xe1\x03\x40\xf9\xe2\x23\x00\x91\xe6\x03\x00\x91\x80\x00\x00\x90\x00\xec\x47\xf9\x03\x00\x80\xd2\x04\x00\x80\xd2\xe1\xff\xff\x97\xec\xff\xff\x97\x80\x00\x00\x90\x00\xe8\x47\xf9\x40\x00\x00\xb4\xe4\xff\xff\x17\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x80\x00\x00\xb0\x00\xe0\x00\x91\x81\x00\x00\xb0\x21\xe0\x00\x91\x3f\x00\x00\xeb\xc0\x00\x00\x54\x81\x00\x00\x90\x21\xe0\x47\xf9\x61\x00\x00\xb4\xf0\x03\x01\xaa\x00\x02\x1f\xd6\xc0\x03\x5f\xd6\x80\x00\x00\xb0\x00\xe0\x00\x91\x81\x00\x00\xb0\x21\xe0\x00\x91\x21\x00\x00\xcb\x22\xfc\x7f\xd3\x41\x0c\x81\x8b\x21\xfc\x41\x93\xc1\x00\x00\xb4\x82\x00\x00\x90\x42\xf0\x47\xf9\x62\x00\x00\xb4\xf0\x03\x02\xaa\x00\x02\x1f\xd6\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\xfd\x7b\xbe\xa9\xfd\x03\x00\x91\xf3\x0b\x00\xf9\x93\x00\x00\xb0\x60\xe2\x40\x39\x40\x01\x00\x35\x80\x00\x00\x90\x00\xe4\x47\xf9\x80\x00\x00\xb4\x80\x00\x00\xb0\x00\x18\x40\xf9\xb5\xff\xff\x97\xd8\xff\xff\x97\x20\x00\x80\x52\x60\xe2\x00\x39\xf3\x0b\x40\xf9\xfd\x7b\xc2\xa8\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\xdc\xff\xff\x17\xfd\x7b\xbf\xa9\xfd\x03\x00\x91\x00\x00\x00\x90\x00\xc0\x1e\x91\x21\x08\x80\x52\xb2\xff\xff\x97\x00\x00\x00\x90\x00\x04\x1f\x91\x41\x05\x80\x52\xae\xff\xff\x97\x00\x00\x00\x90\x00\x44\x1f\x91\x41\x01\x80\x52\xaa\xff\xff\x97\xe0\x03\x1f\x2a\xfd\x7b\xc1\xa8\xc0\x03\x5f\xd6")]), -Memmap([Annotation(Region(0x0,0x8EF), Attr("segment","02 0 2288")), -Annotation(Region(0x640,0x673), Attr("symbol","\"_start\"")), -Annotation(Region(0x0,0x102), Attr("section","\".shstrtab\"")), -Annotation(Region(0x0,0x24E), Attr("section","\".strtab\"")), -Annotation(Region(0x0,0x86F), Attr("section","\".symtab\"")), -Annotation(Region(0x0,0x46), Attr("section","\".comment\"")), -Annotation(Region(0x238,0x252), Attr("section","\".interp\"")), -Annotation(Region(0x254,0x277), Attr("section","\".note.gnu.build-id\"")), -Annotation(Region(0x278,0x297), Attr("section","\".note.ABI-tag\"")), -Annotation(Region(0x298,0x2B3), Attr("section","\".gnu.hash\"")), -Annotation(Region(0x2B8,0x3A7), Attr("section","\".dynsym\"")), -Annotation(Region(0x3A8,0x43B), Attr("section","\".dynstr\"")), -Annotation(Region(0x43C,0x44F), Attr("section","\".gnu.version\"")), -Annotation(Region(0x450,0x47F), Attr("section","\".gnu.version_r\"")), -Annotation(Region(0x480,0x53F), Attr("section","\".rela.dyn\"")), -Annotation(Region(0x540,0x5B7), Attr("section","\".rela.plt\"")), -Annotation(Region(0x5B8,0x5CF), Attr("section","\".init\"")), -Annotation(Region(0x5D0,0x63F), Attr("section","\".plt\"")), -Annotation(Region(0x5B8,0x5CF), Attr("code-region","()")), -Annotation(Region(0x5D0,0x63F), Attr("code-region","()")), -Annotation(Region(0x640,0x673), Attr("symbol-info","_start 0x640 52")), -Annotation(Region(0x674,0x687), Attr("symbol","\"call_weak_fn\"")), -Annotation(Region(0x674,0x687), Attr("symbol-info","call_weak_fn 0x674 20")), -Annotation(Region(0x754,0x797), Attr("symbol","\"main\"")), -Annotation(Region(0x754,0x797), Attr("symbol-info","main 0x754 68")), -Annotation(Region(0x798,0x7AB), Attr("section","\".fini\"")), -Annotation(Region(0x7AC,0x7EB), Attr("section","\".rodata\"")), -Annotation(Region(0x7EC,0x827), Attr("section","\".eh_frame_hdr\"")), -Annotation(Region(0x828,0x8EF), Attr("section","\".eh_frame\"")), -Annotation(Region(0x10DC8,0x11037), Attr("segment","03 0x10DC8 632")), -Annotation(Region(0x10DD0,0x10DD7), Attr("section","\".fini_array\"")), -Annotation(Region(0x10DD8,0x10FB7), Attr("section","\".dynamic\"")), -Annotation(Region(0x10DC8,0x10DCF), Attr("section","\".init_array\"")), -Annotation(Region(0x10FB8,0x10FE7), Attr("section","\".got\"")), -Annotation(Region(0x10FE8,0x11027), Attr("section","\".got.plt\"")), -Annotation(Region(0x11028,0x11037), Attr("section","\".data\"")), -Annotation(Region(0x640,0x797), Attr("section","\".text\"")), -Annotation(Region(0x640,0x797), Attr("code-region","()")), -Annotation(Region(0x798,0x7AB), Attr("code-region","()"))]), -Program(Tid(1_600, "%00000640"), Attrs([]), - Subs([Sub(Tid(1_577, "@__cxa_finalize"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x600"), -Attr("stub","()")]), "__cxa_finalize", Args([Arg(Tid(1_601, "%00000641"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("__cxa_finalize_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(929, "@__cxa_finalize"), - Attrs([Attr("address","0x600")]), Phis([]), -Defs([Def(Tid(1_193, "%000004a9"), Attrs([Attr("address","0x600"), -Attr("insn","adrp x16, #69632")]), Var("R16",Imm(64)), Int(69632,64)), -Def(Tid(1_200, "%000004b0"), Attrs([Attr("address","0x604"), -Attr("insn","ldr x17, [x16, #0x8]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(1_206, "%000004b6"), Attrs([Attr("address","0x608"), -Attr("insn","add x16, x16, #0x8")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(8,64)))]), Jmps([Call(Tid(1_211, "%000004bb"), - Attrs([Attr("address","0x60C"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), -Sub(Tid(1_578, "@__do_global_dtors_aux"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x700")]), - "__do_global_dtors_aux", Args([Arg(Tid(1_602, "%00000642"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("__do_global_dtors_aux_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(658, "@__do_global_dtors_aux"), - Attrs([Attr("address","0x700")]), Phis([]), Defs([Def(Tid(662, "%00000296"), - Attrs([Attr("address","0x700"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("#3",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(18446744073709551584,64))), -Def(Tid(668, "%0000029c"), Attrs([Attr("address","0x700"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("#3",Imm(64)),Var("R29",Imm(64)),LittleEndian(),64)), -Def(Tid(674, "%000002a2"), Attrs([Attr("address","0x700"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("#3",Imm(64)),Int(8,64)),Var("R30",Imm(64)),LittleEndian(),64)), -Def(Tid(678, "%000002a6"), Attrs([Attr("address","0x700"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("R31",Imm(64)), -Var("#3",Imm(64))), Def(Tid(684, "%000002ac"), - Attrs([Attr("address","0x704"), Attr("insn","mov x29, sp")]), - Var("R29",Imm(64)), Var("R31",Imm(64))), Def(Tid(692, "%000002b4"), - Attrs([Attr("address","0x708"), Attr("insn","str x19, [sp, #0x10]")]), - Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(16,64)),Var("R19",Imm(64)),LittleEndian(),64)), -Def(Tid(697, "%000002b9"), Attrs([Attr("address","0x70C"), -Attr("insn","adrp x19, #69632")]), Var("R19",Imm(64)), Int(69632,64)), -Def(Tid(704, "%000002c0"), Attrs([Attr("address","0x710"), -Attr("insn","ldrb w0, [x19, #0x38]")]), Var("R0",Imm(64)), -UNSIGNED(64,Load(Var("mem",Mem(64,8)),PLUS(Var("R19",Imm(64)),Int(56,64)),LittleEndian(),8)))]), -Jmps([Goto(Tid(711, "%000002c7"), Attrs([Attr("address","0x714"), -Attr("insn","cbnz w0, #0x28")]), - NEQ(Extract(31,0,Var("R0",Imm(64))),Int(0,32)), -Direct(Tid(709, "%000002c5"))), Goto(Tid(1_579, "%0000062b"), Attrs([]), - Int(1,1), Direct(Tid(874, "%0000036a")))])), Blk(Tid(874, "%0000036a"), - Attrs([Attr("address","0x718")]), Phis([]), Defs([Def(Tid(877, "%0000036d"), - Attrs([Attr("address","0x718"), Attr("insn","adrp x0, #65536")]), - Var("R0",Imm(64)), Int(65536,64)), Def(Tid(884, "%00000374"), - Attrs([Attr("address","0x71C"), Attr("insn","ldr x0, [x0, #0xfc8]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(4040,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(890, "%0000037a"), Attrs([Attr("address","0x720"), -Attr("insn","cbz x0, #0x10")]), EQ(Var("R0",Imm(64)),Int(0,64)), -Direct(Tid(888, "%00000378"))), Goto(Tid(1_580, "%0000062c"), Attrs([]), - Int(1,1), Direct(Tid(913, "%00000391")))])), Blk(Tid(913, "%00000391"), - Attrs([Attr("address","0x724")]), Phis([]), Defs([Def(Tid(916, "%00000394"), - Attrs([Attr("address","0x724"), Attr("insn","adrp x0, #69632")]), - Var("R0",Imm(64)), Int(69632,64)), Def(Tid(923, "%0000039b"), - Attrs([Attr("address","0x728"), Attr("insn","ldr x0, [x0, #0x30]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(48,64)),LittleEndian(),64)), -Def(Tid(928, "%000003a0"), Attrs([Attr("address","0x72C"), -Attr("insn","bl #-0x12c")]), Var("R30",Imm(64)), Int(1840,64))]), -Jmps([Call(Tid(931, "%000003a3"), Attrs([Attr("address","0x72C"), -Attr("insn","bl #-0x12c")]), Int(1,1), -(Direct(Tid(1_577, "@__cxa_finalize")),Direct(Tid(888, "%00000378"))))])), -Blk(Tid(888, "%00000378"), Attrs([Attr("address","0x730")]), Phis([]), -Defs([Def(Tid(896, "%00000380"), Attrs([Attr("address","0x730"), -Attr("insn","bl #-0xa0")]), Var("R30",Imm(64)), Int(1844,64))]), -Jmps([Call(Tid(898, "%00000382"), Attrs([Attr("address","0x730"), -Attr("insn","bl #-0xa0")]), Int(1,1), -(Direct(Tid(1_591, "@deregister_tm_clones")),Direct(Tid(900, "%00000384"))))])), -Blk(Tid(900, "%00000384"), Attrs([Attr("address","0x734")]), Phis([]), -Defs([Def(Tid(903, "%00000387"), Attrs([Attr("address","0x734"), -Attr("insn","mov w0, #0x1")]), Var("R0",Imm(64)), Int(1,64)), -Def(Tid(911, "%0000038f"), Attrs([Attr("address","0x738"), -Attr("insn","strb w0, [x19, #0x38]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R19",Imm(64)),Int(56,64)),Extract(7,0,Var("R0",Imm(64))),LittleEndian(),8))]), -Jmps([Goto(Tid(1_581, "%0000062d"), Attrs([]), Int(1,1), -Direct(Tid(709, "%000002c5")))])), Blk(Tid(709, "%000002c5"), - Attrs([Attr("address","0x73C")]), Phis([]), Defs([Def(Tid(719, "%000002cf"), - Attrs([Attr("address","0x73C"), Attr("insn","ldr x19, [sp, #0x10]")]), - Var("R19",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(16,64)),LittleEndian(),64)), -Def(Tid(726, "%000002d6"), Attrs([Attr("address","0x740"), -Attr("insn","ldp x29, x30, [sp], #0x20")]), Var("R29",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(731, "%000002db"), Attrs([Attr("address","0x740"), -Attr("insn","ldp x29, x30, [sp], #0x20")]), Var("R30",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(735, "%000002df"), Attrs([Attr("address","0x740"), -Attr("insn","ldp x29, x30, [sp], #0x20")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(32,64)))]), Jmps([Call(Tid(740, "%000002e4"), - Attrs([Attr("address","0x744"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), Sub(Tid(1_582, "@__libc_start_main"), - Attrs([Attr("c.proto","signed (*)(signed (*)(signed , char** , char** );* main, signed , char** , \nvoid* auxv)"), -Attr("address","0x5F0"), Attr("stub","()")]), "__libc_start_main", - Args([Arg(Tid(1_603, "%00000643"), - Attrs([Attr("c.layout","**[ : 64]"), -Attr("c.data","Top:u64 ptr ptr"), -Attr("c.type","signed (*)(signed , char** , char** );*")]), - Var("__libc_start_main_main",Imm(64)), Var("R0",Imm(64)), In()), -Arg(Tid(1_604, "%00000644"), Attrs([Attr("c.layout","[signed : 32]"), -Attr("c.data","Top:u32"), Attr("c.type","signed")]), - Var("__libc_start_main_arg2",Imm(32)), LOW(32,Var("R1",Imm(64))), In()), -Arg(Tid(1_605, "%00000645"), Attrs([Attr("c.layout","**[char : 8]"), -Attr("c.data","Top:u8 ptr ptr"), Attr("c.type","char**")]), - Var("__libc_start_main_arg3",Imm(64)), Var("R2",Imm(64)), Both()), -Arg(Tid(1_606, "%00000646"), Attrs([Attr("c.layout","*[ : 8]"), -Attr("c.data","{} ptr"), Attr("c.type","void*")]), - Var("__libc_start_main_auxv",Imm(64)), Var("R3",Imm(64)), Both()), -Arg(Tid(1_607, "%00000647"), Attrs([Attr("c.layout","[signed : 32]"), -Attr("c.data","Top:u32"), Attr("c.type","signed")]), - Var("__libc_start_main_result",Imm(32)), LOW(32,Var("R0",Imm(64))), -Out())]), Blks([Blk(Tid(491, "@__libc_start_main"), - Attrs([Attr("address","0x5F0")]), Phis([]), -Defs([Def(Tid(1_171, "%00000493"), Attrs([Attr("address","0x5F0"), -Attr("insn","adrp x16, #69632")]), Var("R16",Imm(64)), Int(69632,64)), -Def(Tid(1_178, "%0000049a"), Attrs([Attr("address","0x5F4"), -Attr("insn","ldr x17, [x16]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R16",Imm(64)),LittleEndian(),64)), -Def(Tid(1_184, "%000004a0"), Attrs([Attr("address","0x5F8"), -Attr("insn","add x16, x16, #0x0")]), Var("R16",Imm(64)), -Var("R16",Imm(64)))]), Jmps([Call(Tid(1_189, "%000004a5"), - Attrs([Attr("address","0x5FC"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), Sub(Tid(1_583, "@_fini"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x798")]), - "_fini", Args([Arg(Tid(1_608, "%00000648"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("_fini_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(31, "@_fini"), - Attrs([Attr("address","0x798")]), Phis([]), Defs([Def(Tid(37, "%00000025"), - Attrs([Attr("address","0x79C"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("#0",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(18446744073709551600,64))), -Def(Tid(43, "%0000002b"), Attrs([Attr("address","0x79C"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("#0",Imm(64)),Var("R29",Imm(64)),LittleEndian(),64)), -Def(Tid(49, "%00000031"), Attrs([Attr("address","0x79C"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("#0",Imm(64)),Int(8,64)),Var("R30",Imm(64)),LittleEndian(),64)), -Def(Tid(53, "%00000035"), Attrs([Attr("address","0x79C"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("R31",Imm(64)), -Var("#0",Imm(64))), Def(Tid(59, "%0000003b"), Attrs([Attr("address","0x7A0"), -Attr("insn","mov x29, sp")]), Var("R29",Imm(64)), Var("R31",Imm(64))), -Def(Tid(66, "%00000042"), Attrs([Attr("address","0x7A4"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R29",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(71, "%00000047"), Attrs([Attr("address","0x7A4"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R30",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(75, "%0000004b"), Attrs([Attr("address","0x7A4"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(16,64)))]), Jmps([Call(Tid(80, "%00000050"), - Attrs([Attr("address","0x7A8"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), Sub(Tid(1_584, "@_init"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x5B8")]), - "_init", Args([Arg(Tid(1_609, "%00000649"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("_init_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(1_398, "@_init"), - Attrs([Attr("address","0x5B8")]), Phis([]), -Defs([Def(Tid(1_404, "%0000057c"), Attrs([Attr("address","0x5BC"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("#6",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(18446744073709551600,64))), -Def(Tid(1_410, "%00000582"), Attrs([Attr("address","0x5BC"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("#6",Imm(64)),Var("R29",Imm(64)),LittleEndian(),64)), -Def(Tid(1_416, "%00000588"), Attrs([Attr("address","0x5BC"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("#6",Imm(64)),Int(8,64)),Var("R30",Imm(64)),LittleEndian(),64)), -Def(Tid(1_420, "%0000058c"), Attrs([Attr("address","0x5BC"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("R31",Imm(64)), -Var("#6",Imm(64))), Def(Tid(1_426, "%00000592"), - Attrs([Attr("address","0x5C0"), Attr("insn","mov x29, sp")]), - Var("R29",Imm(64)), Var("R31",Imm(64))), Def(Tid(1_431, "%00000597"), - Attrs([Attr("address","0x5C4"), Attr("insn","bl #0xb0")]), - Var("R30",Imm(64)), Int(1480,64))]), Jmps([Call(Tid(1_433, "%00000599"), - Attrs([Attr("address","0x5C4"), Attr("insn","bl #0xb0")]), Int(1,1), -(Direct(Tid(1_589, "@call_weak_fn")),Direct(Tid(1_435, "%0000059b"))))])), -Blk(Tid(1_435, "%0000059b"), Attrs([Attr("address","0x5C8")]), Phis([]), -Defs([Def(Tid(1_440, "%000005a0"), Attrs([Attr("address","0x5C8"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R29",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(1_445, "%000005a5"), Attrs([Attr("address","0x5C8"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R30",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(1_449, "%000005a9"), Attrs([Attr("address","0x5C8"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(16,64)))]), Jmps([Call(Tid(1_454, "%000005ae"), - Attrs([Attr("address","0x5CC"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), Sub(Tid(1_585, "@_start"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x640"), -Attr("stub","()"), Attr("entry-point","()")]), "_start", - Args([Arg(Tid(1_610, "%0000064a"), Attrs([Attr("c.layout","[signed : 32]"), -Attr("c.data","Top:u32"), Attr("c.type","signed")]), - Var("_start_result",Imm(32)), LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(428, "@_start"), Attrs([Attr("address","0x640")]), Phis([]), -Defs([Def(Tid(433, "%000001b1"), Attrs([Attr("address","0x644"), -Attr("insn","mov x29, #0x0")]), Var("R29",Imm(64)), Int(0,64)), -Def(Tid(438, "%000001b6"), Attrs([Attr("address","0x648"), -Attr("insn","mov x30, #0x0")]), Var("R30",Imm(64)), Int(0,64)), -Def(Tid(444, "%000001bc"), Attrs([Attr("address","0x64C"), -Attr("insn","mov x5, x0")]), Var("R5",Imm(64)), Var("R0",Imm(64))), -Def(Tid(451, "%000001c3"), Attrs([Attr("address","0x650"), -Attr("insn","ldr x1, [sp]")]), Var("R1",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(457, "%000001c9"), Attrs([Attr("address","0x654"), -Attr("insn","add x2, sp, #0x8")]), Var("R2",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(8,64))), Def(Tid(463, "%000001cf"), - Attrs([Attr("address","0x658"), Attr("insn","mov x6, sp")]), - Var("R6",Imm(64)), Var("R31",Imm(64))), Def(Tid(468, "%000001d4"), - Attrs([Attr("address","0x65C"), Attr("insn","adrp x0, #65536")]), - Var("R0",Imm(64)), Int(65536,64)), Def(Tid(475, "%000001db"), - Attrs([Attr("address","0x660"), Attr("insn","ldr x0, [x0, #0xfd8]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(4056,64)),LittleEndian(),64)), -Def(Tid(480, "%000001e0"), Attrs([Attr("address","0x664"), -Attr("insn","mov x3, #0x0")]), Var("R3",Imm(64)), Int(0,64)), -Def(Tid(485, "%000001e5"), Attrs([Attr("address","0x668"), -Attr("insn","mov x4, #0x0")]), Var("R4",Imm(64)), Int(0,64)), -Def(Tid(490, "%000001ea"), Attrs([Attr("address","0x66C"), -Attr("insn","bl #-0x7c")]), Var("R30",Imm(64)), Int(1648,64))]), -Jmps([Call(Tid(493, "%000001ed"), Attrs([Attr("address","0x66C"), -Attr("insn","bl #-0x7c")]), Int(1,1), -(Direct(Tid(1_582, "@__libc_start_main")),Direct(Tid(495, "%000001ef"))))])), -Blk(Tid(495, "%000001ef"), Attrs([Attr("address","0x670")]), Phis([]), -Defs([Def(Tid(498, "%000001f2"), Attrs([Attr("address","0x670"), -Attr("insn","bl #-0x50")]), Var("R30",Imm(64)), Int(1652,64))]), -Jmps([Call(Tid(501, "%000001f5"), Attrs([Attr("address","0x670"), -Attr("insn","bl #-0x50")]), Int(1,1), -(Direct(Tid(1_588, "@abort")),Direct(Tid(1_586, "%00000632"))))])), -Blk(Tid(1_586, "%00000632"), Attrs([]), Phis([]), Defs([]), -Jmps([Call(Tid(1_587, "%00000633"), Attrs([]), Int(1,1), -(Direct(Tid(1_589, "@call_weak_fn")),))]))])), Sub(Tid(1_588, "@abort"), - Attrs([Attr("noreturn","()"), Attr("c.proto","void (*)(void)"), -Attr("address","0x620"), Attr("stub","()")]), "abort", Args([]), -Blks([Blk(Tid(499, "@abort"), Attrs([Attr("address","0x620")]), Phis([]), -Defs([Def(Tid(1_237, "%000004d5"), Attrs([Attr("address","0x620"), -Attr("insn","adrp x16, #69632")]), Var("R16",Imm(64)), Int(69632,64)), -Def(Tid(1_244, "%000004dc"), Attrs([Attr("address","0x624"), -Attr("insn","ldr x17, [x16, #0x18]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(24,64)),LittleEndian(),64)), -Def(Tid(1_250, "%000004e2"), Attrs([Attr("address","0x628"), -Attr("insn","add x16, x16, #0x18")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(24,64)))]), Jmps([Call(Tid(1_255, "%000004e7"), - Attrs([Attr("address","0x62C"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), Sub(Tid(1_589, "@call_weak_fn"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x674")]), - "call_weak_fn", Args([Arg(Tid(1_611, "%0000064b"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("call_weak_fn_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(503, "@call_weak_fn"), - Attrs([Attr("address","0x674")]), Phis([]), Defs([Def(Tid(506, "%000001fa"), - Attrs([Attr("address","0x674"), Attr("insn","adrp x0, #65536")]), - Var("R0",Imm(64)), Int(65536,64)), Def(Tid(513, "%00000201"), - Attrs([Attr("address","0x678"), Attr("insn","ldr x0, [x0, #0xfd0]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(4048,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(519, "%00000207"), Attrs([Attr("address","0x67C"), -Attr("insn","cbz x0, #0x8")]), EQ(Var("R0",Imm(64)),Int(0,64)), -Direct(Tid(517, "%00000205"))), Goto(Tid(1_590, "%00000636"), Attrs([]), - Int(1,1), Direct(Tid(993, "%000003e1")))])), Blk(Tid(517, "%00000205"), - Attrs([Attr("address","0x684")]), Phis([]), Defs([]), -Jmps([Call(Tid(525, "%0000020d"), Attrs([Attr("address","0x684"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))])), -Blk(Tid(993, "%000003e1"), Attrs([Attr("address","0x680")]), Phis([]), -Defs([]), Jmps([Goto(Tid(996, "%000003e4"), Attrs([Attr("address","0x680"), -Attr("insn","b #-0x70")]), Int(1,1), Direct(Tid(994, "@__gmon_start__")))])), -Blk(Tid(994, "@__gmon_start__"), Attrs([Attr("address","0x610")]), Phis([]), -Defs([Def(Tid(1_215, "%000004bf"), Attrs([Attr("address","0x610"), -Attr("insn","adrp x16, #69632")]), Var("R16",Imm(64)), Int(69632,64)), -Def(Tid(1_222, "%000004c6"), Attrs([Attr("address","0x614"), -Attr("insn","ldr x17, [x16, #0x10]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(16,64)),LittleEndian(),64)), -Def(Tid(1_228, "%000004cc"), Attrs([Attr("address","0x618"), -Attr("insn","add x16, x16, #0x10")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(16,64)))]), Jmps([Call(Tid(1_233, "%000004d1"), - Attrs([Attr("address","0x61C"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), -Sub(Tid(1_591, "@deregister_tm_clones"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x690")]), - "deregister_tm_clones", Args([Arg(Tid(1_612, "%0000064c"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("deregister_tm_clones_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(531, "@deregister_tm_clones"), - Attrs([Attr("address","0x690")]), Phis([]), Defs([Def(Tid(534, "%00000216"), - Attrs([Attr("address","0x690"), Attr("insn","adrp x0, #69632")]), - Var("R0",Imm(64)), Int(69632,64)), Def(Tid(540, "%0000021c"), - Attrs([Attr("address","0x694"), Attr("insn","add x0, x0, #0x38")]), - Var("R0",Imm(64)), PLUS(Var("R0",Imm(64)),Int(56,64))), -Def(Tid(545, "%00000221"), Attrs([Attr("address","0x698"), -Attr("insn","adrp x1, #69632")]), Var("R1",Imm(64)), Int(69632,64)), -Def(Tid(551, "%00000227"), Attrs([Attr("address","0x69C"), -Attr("insn","add x1, x1, #0x38")]), Var("R1",Imm(64)), -PLUS(Var("R1",Imm(64)),Int(56,64))), Def(Tid(557, "%0000022d"), - Attrs([Attr("address","0x6A0"), Attr("insn","cmp x1, x0")]), - Var("#1",Imm(64)), NOT(Var("R0",Imm(64)))), Def(Tid(562, "%00000232"), - Attrs([Attr("address","0x6A0"), Attr("insn","cmp x1, x0")]), - Var("#2",Imm(64)), PLUS(Var("R1",Imm(64)),NOT(Var("R0",Imm(64))))), -Def(Tid(568, "%00000238"), Attrs([Attr("address","0x6A0"), -Attr("insn","cmp x1, x0")]), Var("VF",Imm(1)), -NEQ(SIGNED(65,PLUS(Var("#2",Imm(64)),Int(1,64))),PLUS(PLUS(SIGNED(65,Var("R1",Imm(64))),SIGNED(65,Var("#1",Imm(64)))),Int(1,65)))), -Def(Tid(574, "%0000023e"), Attrs([Attr("address","0x6A0"), -Attr("insn","cmp x1, x0")]), Var("CF",Imm(1)), -NEQ(UNSIGNED(65,PLUS(Var("#2",Imm(64)),Int(1,64))),PLUS(PLUS(UNSIGNED(65,Var("R1",Imm(64))),UNSIGNED(65,Var("#1",Imm(64)))),Int(1,65)))), -Def(Tid(578, "%00000242"), Attrs([Attr("address","0x6A0"), -Attr("insn","cmp x1, x0")]), Var("ZF",Imm(1)), -EQ(PLUS(Var("#2",Imm(64)),Int(1,64)),Int(0,64))), Def(Tid(582, "%00000246"), - Attrs([Attr("address","0x6A0"), Attr("insn","cmp x1, x0")]), - Var("NF",Imm(1)), Extract(63,63,PLUS(Var("#2",Imm(64)),Int(1,64))))]), -Jmps([Goto(Tid(588, "%0000024c"), Attrs([Attr("address","0x6A4"), -Attr("insn","b.eq #0x18")]), EQ(Var("ZF",Imm(1)),Int(1,1)), -Direct(Tid(586, "%0000024a"))), Goto(Tid(1_592, "%00000638"), Attrs([]), - Int(1,1), Direct(Tid(963, "%000003c3")))])), Blk(Tid(963, "%000003c3"), - Attrs([Attr("address","0x6A8")]), Phis([]), Defs([Def(Tid(966, "%000003c6"), - Attrs([Attr("address","0x6A8"), Attr("insn","adrp x1, #65536")]), - Var("R1",Imm(64)), Int(65536,64)), Def(Tid(973, "%000003cd"), - Attrs([Attr("address","0x6AC"), Attr("insn","ldr x1, [x1, #0xfc0]")]), - Var("R1",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R1",Imm(64)),Int(4032,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(978, "%000003d2"), Attrs([Attr("address","0x6B0"), -Attr("insn","cbz x1, #0xc")]), EQ(Var("R1",Imm(64)),Int(0,64)), -Direct(Tid(586, "%0000024a"))), Goto(Tid(1_593, "%00000639"), Attrs([]), - Int(1,1), Direct(Tid(982, "%000003d6")))])), Blk(Tid(586, "%0000024a"), - Attrs([Attr("address","0x6BC")]), Phis([]), Defs([]), -Jmps([Call(Tid(594, "%00000252"), Attrs([Attr("address","0x6BC"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))])), -Blk(Tid(982, "%000003d6"), Attrs([Attr("address","0x6B4")]), Phis([]), -Defs([Def(Tid(986, "%000003da"), Attrs([Attr("address","0x6B4"), -Attr("insn","mov x16, x1")]), Var("R16",Imm(64)), Var("R1",Imm(64)))]), -Jmps([Call(Tid(991, "%000003df"), Attrs([Attr("address","0x6B8"), -Attr("insn","br x16")]), Int(1,1), (Indirect(Var("R16",Imm(64))),))]))])), -Sub(Tid(1_594, "@frame_dummy"), Attrs([Attr("c.proto","signed (*)(void)"), -Attr("address","0x750")]), "frame_dummy", Args([Arg(Tid(1_613, "%0000064d"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("frame_dummy_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(746, "@frame_dummy"), - Attrs([Attr("address","0x750")]), Phis([]), Defs([]), -Jmps([Call(Tid(748, "%000002ec"), Attrs([Attr("address","0x750"), -Attr("insn","b #-0x90")]), Int(1,1), -(Direct(Tid(1_597, "@register_tm_clones")),))]))])), Sub(Tid(1_595, "@main"), - Attrs([Attr("c.proto","signed (*)(signed argc, const char** argv)"), -Attr("address","0x754")]), "main", Args([Arg(Tid(1_614, "%0000064e"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("main_argc",Imm(32)), -LOW(32,Var("R0",Imm(64))), In()), Arg(Tid(1_615, "%0000064f"), - Attrs([Attr("c.layout","**[char : 8]"), Attr("c.data","Top:u8 ptr ptr"), -Attr("c.type"," const char**")]), Var("main_argv",Imm(64)), -Var("R1",Imm(64)), Both()), Arg(Tid(1_616, "%00000650"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("main_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(750, "@main"), - Attrs([Attr("address","0x754")]), Phis([]), Defs([Def(Tid(754, "%000002f2"), - Attrs([Attr("address","0x754"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("#4",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(18446744073709551600,64))), -Def(Tid(760, "%000002f8"), Attrs([Attr("address","0x754"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("#4",Imm(64)),Var("R29",Imm(64)),LittleEndian(),64)), -Def(Tid(766, "%000002fe"), Attrs([Attr("address","0x754"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("#4",Imm(64)),Int(8,64)),Var("R30",Imm(64)),LittleEndian(),64)), -Def(Tid(770, "%00000302"), Attrs([Attr("address","0x754"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("R31",Imm(64)), -Var("#4",Imm(64))), Def(Tid(776, "%00000308"), - Attrs([Attr("address","0x758"), Attr("insn","mov x29, sp")]), - Var("R29",Imm(64)), Var("R31",Imm(64))), Def(Tid(781, "%0000030d"), - Attrs([Attr("address","0x75C"), Attr("insn","adrp x0, #0")]), - Var("R0",Imm(64)), Int(0,64)), Def(Tid(787, "%00000313"), - Attrs([Attr("address","0x760"), Attr("insn","add x0, x0, #0x7b0")]), - Var("R0",Imm(64)), PLUS(Var("R0",Imm(64)),Int(1968,64))), -Def(Tid(792, "%00000318"), Attrs([Attr("address","0x764"), -Attr("insn","mov w1, #0x41")]), Var("R1",Imm(64)), Int(65,64)), -Def(Tid(797, "%0000031d"), Attrs([Attr("address","0x768"), -Attr("insn","bl #-0x138")]), Var("R30",Imm(64)), Int(1900,64))]), -Jmps([Call(Tid(800, "%00000320"), Attrs([Attr("address","0x768"), -Attr("insn","bl #-0x138")]), Int(1,1), -(Direct(Tid(1_596, "@printf")),Direct(Tid(802, "%00000322"))))])), -Blk(Tid(802, "%00000322"), Attrs([Attr("address","0x76C")]), Phis([]), -Defs([Def(Tid(805, "%00000325"), Attrs([Attr("address","0x76C"), -Attr("insn","adrp x0, #0")]), Var("R0",Imm(64)), Int(0,64)), -Def(Tid(811, "%0000032b"), Attrs([Attr("address","0x770"), -Attr("insn","add x0, x0, #0x7c1")]), Var("R0",Imm(64)), -PLUS(Var("R0",Imm(64)),Int(1985,64))), Def(Tid(816, "%00000330"), - Attrs([Attr("address","0x774"), Attr("insn","mov w1, #0x2a")]), - Var("R1",Imm(64)), Int(42,64)), Def(Tid(821, "%00000335"), - Attrs([Attr("address","0x778"), Attr("insn","bl #-0x148")]), - Var("R30",Imm(64)), Int(1916,64))]), Jmps([Call(Tid(823, "%00000337"), - Attrs([Attr("address","0x778"), Attr("insn","bl #-0x148")]), Int(1,1), -(Direct(Tid(1_596, "@printf")),Direct(Tid(825, "%00000339"))))])), -Blk(Tid(825, "%00000339"), Attrs([Attr("address","0x77C")]), Phis([]), -Defs([Def(Tid(828, "%0000033c"), Attrs([Attr("address","0x77C"), -Attr("insn","adrp x0, #0")]), Var("R0",Imm(64)), Int(0,64)), -Def(Tid(834, "%00000342"), Attrs([Attr("address","0x780"), -Attr("insn","add x0, x0, #0x7d1")]), Var("R0",Imm(64)), -PLUS(Var("R0",Imm(64)),Int(2001,64))), Def(Tid(839, "%00000347"), - Attrs([Attr("address","0x784"), Attr("insn","mov w1, #0xa")]), - Var("R1",Imm(64)), Int(10,64)), Def(Tid(844, "%0000034c"), - Attrs([Attr("address","0x788"), Attr("insn","bl #-0x158")]), - Var("R30",Imm(64)), Int(1932,64))]), Jmps([Call(Tid(846, "%0000034e"), - Attrs([Attr("address","0x788"), Attr("insn","bl #-0x158")]), Int(1,1), -(Direct(Tid(1_596, "@printf")),Direct(Tid(848, "%00000350"))))])), -Blk(Tid(848, "%00000350"), Attrs([Attr("address","0x78C")]), Phis([]), -Defs([Def(Tid(851, "%00000353"), Attrs([Attr("address","0x78C"), -Attr("insn","mov w0, wzr")]), Var("R0",Imm(64)), Int(0,64)), -Def(Tid(858, "%0000035a"), Attrs([Attr("address","0x790"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R29",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(863, "%0000035f"), Attrs([Attr("address","0x790"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R30",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(867, "%00000363"), Attrs([Attr("address","0x790"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(16,64)))]), Jmps([Call(Tid(872, "%00000368"), - Attrs([Attr("address","0x794"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), Sub(Tid(1_596, "@printf"), - Attrs([Attr("c.proto","signed (*)( const char restrict * format, ...)"), -Attr("address","0x630"), Attr("stub","()")]), "printf", - Args([Arg(Tid(1_617, "%00000651"), Attrs([Attr("format","\"printf\""), -Attr("c.layout","*[char : 8]"), Attr("c.data","Top:u8 ptr"), -Attr("c.type"," const char restrict *")]), Var("printf_format",Imm(64)), -Var("R0",Imm(64)), In()), Arg(Tid(1_618, "%00000652"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("printf_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(798, "@printf"), - Attrs([Attr("address","0x630")]), Phis([]), -Defs([Def(Tid(1_259, "%000004eb"), Attrs([Attr("address","0x630"), -Attr("insn","adrp x16, #69632")]), Var("R16",Imm(64)), Int(69632,64)), -Def(Tid(1_266, "%000004f2"), Attrs([Attr("address","0x634"), -Attr("insn","ldr x17, [x16, #0x20]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(32,64)),LittleEndian(),64)), -Def(Tid(1_272, "%000004f8"), Attrs([Attr("address","0x638"), -Attr("insn","add x16, x16, #0x20")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(32,64)))]), Jmps([Call(Tid(1_277, "%000004fd"), - Attrs([Attr("address","0x63C"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), -Sub(Tid(1_597, "@register_tm_clones"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x6C0")]), - "register_tm_clones", Args([Arg(Tid(1_619, "%00000653"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("register_tm_clones_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(596, "@register_tm_clones"), Attrs([Attr("address","0x6C0")]), - Phis([]), Defs([Def(Tid(599, "%00000257"), Attrs([Attr("address","0x6C0"), -Attr("insn","adrp x0, #69632")]), Var("R0",Imm(64)), Int(69632,64)), -Def(Tid(605, "%0000025d"), Attrs([Attr("address","0x6C4"), -Attr("insn","add x0, x0, #0x38")]), Var("R0",Imm(64)), -PLUS(Var("R0",Imm(64)),Int(56,64))), Def(Tid(610, "%00000262"), - Attrs([Attr("address","0x6C8"), Attr("insn","adrp x1, #69632")]), - Var("R1",Imm(64)), Int(69632,64)), Def(Tid(616, "%00000268"), - Attrs([Attr("address","0x6CC"), Attr("insn","add x1, x1, #0x38")]), - Var("R1",Imm(64)), PLUS(Var("R1",Imm(64)),Int(56,64))), -Def(Tid(623, "%0000026f"), Attrs([Attr("address","0x6D0"), -Attr("insn","sub x1, x1, x0")]), Var("R1",Imm(64)), -PLUS(PLUS(Var("R1",Imm(64)),NOT(Var("R0",Imm(64)))),Int(1,64))), -Def(Tid(629, "%00000275"), Attrs([Attr("address","0x6D4"), -Attr("insn","lsr x2, x1, #63")]), Var("R2",Imm(64)), -Concat(Int(0,63),Extract(63,63,Var("R1",Imm(64))))), -Def(Tid(636, "%0000027c"), Attrs([Attr("address","0x6D8"), -Attr("insn","add x1, x2, x1, asr #3")]), Var("R1",Imm(64)), -PLUS(Var("R2",Imm(64)),ARSHIFT(Var("R1",Imm(64)),Int(3,3)))), -Def(Tid(642, "%00000282"), Attrs([Attr("address","0x6DC"), -Attr("insn","asr x1, x1, #1")]), Var("R1",Imm(64)), -SIGNED(64,Extract(63,1,Var("R1",Imm(64)))))]), -Jmps([Goto(Tid(648, "%00000288"), Attrs([Attr("address","0x6E0"), -Attr("insn","cbz x1, #0x18")]), EQ(Var("R1",Imm(64)),Int(0,64)), -Direct(Tid(646, "%00000286"))), Goto(Tid(1_598, "%0000063e"), Attrs([]), - Int(1,1), Direct(Tid(933, "%000003a5")))])), Blk(Tid(933, "%000003a5"), - Attrs([Attr("address","0x6E4")]), Phis([]), Defs([Def(Tid(936, "%000003a8"), - Attrs([Attr("address","0x6E4"), Attr("insn","adrp x2, #65536")]), - Var("R2",Imm(64)), Int(65536,64)), Def(Tid(943, "%000003af"), - Attrs([Attr("address","0x6E8"), Attr("insn","ldr x2, [x2, #0xfe0]")]), - Var("R2",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R2",Imm(64)),Int(4064,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(948, "%000003b4"), Attrs([Attr("address","0x6EC"), -Attr("insn","cbz x2, #0xc")]), EQ(Var("R2",Imm(64)),Int(0,64)), -Direct(Tid(646, "%00000286"))), Goto(Tid(1_599, "%0000063f"), Attrs([]), - Int(1,1), Direct(Tid(952, "%000003b8")))])), Blk(Tid(646, "%00000286"), - Attrs([Attr("address","0x6F8")]), Phis([]), Defs([]), -Jmps([Call(Tid(654, "%0000028e"), Attrs([Attr("address","0x6F8"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))])), -Blk(Tid(952, "%000003b8"), Attrs([Attr("address","0x6F0")]), Phis([]), -Defs([Def(Tid(956, "%000003bc"), Attrs([Attr("address","0x6F0"), -Attr("insn","mov x16, x2")]), Var("R16",Imm(64)), Var("R2",Imm(64)))]), -Jmps([Call(Tid(961, "%000003c1"), Attrs([Attr("address","0x6F4"), -Attr("insn","br x16")]), Int(1,1), -(Indirect(Var("R16",Imm(64))),))]))]))]))) \ No newline at end of file diff --git a/src/test/correct/malloc_with_local/clang_O2/malloc_with_local.bir b/src/test/correct/malloc_with_local/clang_O2/malloc_with_local.bir deleted file mode 100644 index e24a510a6..000000000 --- a/src/test/correct/malloc_with_local/clang_O2/malloc_with_local.bir +++ /dev/null @@ -1,263 +0,0 @@ -00000640: program -00000629: sub __cxa_finalize(__cxa_finalize_result) -00000641: __cxa_finalize_result :: out u32 = low:32[R0] - -000003a1: -000004a9: R16 := 0x11000 -000004b0: R17 := mem[R16 + 8, el]:u64 -000004b6: R16 := R16 + 8 -000004bb: call R17 with noreturn - -0000062a: sub __do_global_dtors_aux(__do_global_dtors_aux_result) -00000642: __do_global_dtors_aux_result :: out u32 = low:32[R0] - -00000292: -00000296: #3 := R31 - 0x20 -0000029c: mem := mem with [#3, el]:u64 <- R29 -000002a2: mem := mem with [#3 + 8, el]:u64 <- R30 -000002a6: R31 := #3 -000002ac: R29 := R31 -000002b4: mem := mem with [R31 + 0x10, el]:u64 <- R19 -000002b9: R19 := 0x11000 -000002c0: R0 := pad:64[mem[R19 + 0x38]] -000002c7: when 31:0[R0] <> 0 goto %000002c5 -0000062b: goto %0000036a - -0000036a: -0000036d: R0 := 0x10000 -00000374: R0 := mem[R0 + 0xFC8, el]:u64 -0000037a: when R0 = 0 goto %00000378 -0000062c: goto %00000391 - -00000391: -00000394: R0 := 0x11000 -0000039b: R0 := mem[R0 + 0x30, el]:u64 -000003a0: R30 := 0x730 -000003a3: call @__cxa_finalize with return %00000378 - -00000378: -00000380: R30 := 0x734 -00000382: call @deregister_tm_clones with return %00000384 - -00000384: -00000387: R0 := 1 -0000038f: mem := mem with [R19 + 0x38] <- 7:0[R0] -0000062d: goto %000002c5 - -000002c5: -000002cf: R19 := mem[R31 + 0x10, el]:u64 -000002d6: R29 := mem[R31, el]:u64 -000002db: R30 := mem[R31 + 8, el]:u64 -000002df: R31 := R31 + 0x20 -000002e4: call R30 with noreturn - -0000062e: sub __libc_start_main(__libc_start_main_main, __libc_start_main_arg2, __libc_start_main_arg3, __libc_start_main_auxv, __libc_start_main_result) -00000643: __libc_start_main_main :: in u64 = R0 -00000644: __libc_start_main_arg2 :: in u32 = low:32[R1] -00000645: __libc_start_main_arg3 :: in out u64 = R2 -00000646: __libc_start_main_auxv :: in out u64 = R3 -00000647: __libc_start_main_result :: out u32 = low:32[R0] - -000001eb: -00000493: R16 := 0x11000 -0000049a: R17 := mem[R16, el]:u64 -000004a0: R16 := R16 -000004a5: call R17 with noreturn - -0000062f: sub _fini(_fini_result) -00000648: _fini_result :: out u32 = low:32[R0] - -0000001f: -00000025: #0 := R31 - 0x10 -0000002b: mem := mem with [#0, el]:u64 <- R29 -00000031: mem := mem with [#0 + 8, el]:u64 <- R30 -00000035: R31 := #0 -0000003b: R29 := R31 -00000042: R29 := mem[R31, el]:u64 -00000047: R30 := mem[R31 + 8, el]:u64 -0000004b: R31 := R31 + 0x10 -00000050: call R30 with noreturn - -00000630: sub _init(_init_result) -00000649: _init_result :: out u32 = low:32[R0] - -00000576: -0000057c: #6 := R31 - 0x10 -00000582: mem := mem with [#6, el]:u64 <- R29 -00000588: mem := mem with [#6 + 8, el]:u64 <- R30 -0000058c: R31 := #6 -00000592: R29 := R31 -00000597: R30 := 0x5C8 -00000599: call @call_weak_fn with return %0000059b - -0000059b: -000005a0: R29 := mem[R31, el]:u64 -000005a5: R30 := mem[R31 + 8, el]:u64 -000005a9: R31 := R31 + 0x10 -000005ae: call R30 with noreturn - -00000631: sub _start(_start_result) -0000064a: _start_result :: out u32 = low:32[R0] - -000001ac: -000001b1: R29 := 0 -000001b6: R30 := 0 -000001bc: R5 := R0 -000001c3: R1 := mem[R31, el]:u64 -000001c9: R2 := R31 + 8 -000001cf: R6 := R31 -000001d4: R0 := 0x10000 -000001db: R0 := mem[R0 + 0xFD8, el]:u64 -000001e0: R3 := 0 -000001e5: R4 := 0 -000001ea: R30 := 0x670 -000001ed: call @__libc_start_main with return %000001ef - -000001ef: -000001f2: R30 := 0x674 -000001f5: call @abort with return %00000632 - -00000632: -00000633: call @call_weak_fn with noreturn - -00000634: sub abort() - - -000001f3: -000004d5: R16 := 0x11000 -000004dc: R17 := mem[R16 + 0x18, el]:u64 -000004e2: R16 := R16 + 0x18 -000004e7: call R17 with noreturn - -00000635: sub call_weak_fn(call_weak_fn_result) -0000064b: call_weak_fn_result :: out u32 = low:32[R0] - -000001f7: -000001fa: R0 := 0x10000 -00000201: R0 := mem[R0 + 0xFD0, el]:u64 -00000207: when R0 = 0 goto %00000205 -00000636: goto %000003e1 - -00000205: -0000020d: call R30 with noreturn - -000003e1: -000003e4: goto @__gmon_start__ - -000003e2: -000004bf: R16 := 0x11000 -000004c6: R17 := mem[R16 + 0x10, el]:u64 -000004cc: R16 := R16 + 0x10 -000004d1: call R17 with noreturn - -00000637: sub deregister_tm_clones(deregister_tm_clones_result) -0000064c: deregister_tm_clones_result :: out u32 = low:32[R0] - -00000213: -00000216: R0 := 0x11000 -0000021c: R0 := R0 + 0x38 -00000221: R1 := 0x11000 -00000227: R1 := R1 + 0x38 -0000022d: #1 := ~R0 -00000232: #2 := R1 + ~R0 -00000238: VF := extend:65[#2 + 1] <> extend:65[R1] + extend:65[#1] + 1 -0000023e: CF := pad:65[#2 + 1] <> pad:65[R1] + pad:65[#1] + 1 -00000242: ZF := #2 + 1 = 0 -00000246: NF := 63:63[#2 + 1] -0000024c: when ZF goto %0000024a -00000638: goto %000003c3 - -000003c3: -000003c6: R1 := 0x10000 -000003cd: R1 := mem[R1 + 0xFC0, el]:u64 -000003d2: when R1 = 0 goto %0000024a -00000639: goto %000003d6 - -0000024a: -00000252: call R30 with noreturn - -000003d6: -000003da: R16 := R1 -000003df: call R16 with noreturn - -0000063a: sub frame_dummy(frame_dummy_result) -0000064d: frame_dummy_result :: out u32 = low:32[R0] - -000002ea: -000002ec: call @register_tm_clones with noreturn - -0000063b: sub main(main_argc, main_argv, main_result) -0000064e: main_argc :: in u32 = low:32[R0] -0000064f: main_argv :: in out u64 = R1 -00000650: main_result :: out u32 = low:32[R0] - -000002ee: -000002f2: #4 := R31 - 0x10 -000002f8: mem := mem with [#4, el]:u64 <- R29 -000002fe: mem := mem with [#4 + 8, el]:u64 <- R30 -00000302: R31 := #4 -00000308: R29 := R31 -0000030d: R0 := 0 -00000313: R0 := R0 + 0x7B0 -00000318: R1 := 0x41 -0000031d: R30 := 0x76C -00000320: call @printf with return %00000322 - -00000322: -00000325: R0 := 0 -0000032b: R0 := R0 + 0x7C1 -00000330: R1 := 0x2A -00000335: R30 := 0x77C -00000337: call @printf with return %00000339 - -00000339: -0000033c: R0 := 0 -00000342: R0 := R0 + 0x7D1 -00000347: R1 := 0xA -0000034c: R30 := 0x78C -0000034e: call @printf with return %00000350 - -00000350: -00000353: R0 := 0 -0000035a: R29 := mem[R31, el]:u64 -0000035f: R30 := mem[R31 + 8, el]:u64 -00000363: R31 := R31 + 0x10 -00000368: call R30 with noreturn - -0000063c: sub printf(printf_format, printf_result) -00000651: printf_format :: in u64 = R0 -00000652: printf_result :: out u32 = low:32[R0] - -0000031e: -000004eb: R16 := 0x11000 -000004f2: R17 := mem[R16 + 0x20, el]:u64 -000004f8: R16 := R16 + 0x20 -000004fd: call R17 with noreturn - -0000063d: sub register_tm_clones(register_tm_clones_result) -00000653: register_tm_clones_result :: out u32 = low:32[R0] - -00000254: -00000257: R0 := 0x11000 -0000025d: R0 := R0 + 0x38 -00000262: R1 := 0x11000 -00000268: R1 := R1 + 0x38 -0000026f: R1 := R1 + ~R0 + 1 -00000275: R2 := 0.63:63[R1] -0000027c: R1 := R2 + (R1 ~>> 3) -00000282: R1 := extend:64[63:1[R1]] -00000288: when R1 = 0 goto %00000286 -0000063e: goto %000003a5 - -000003a5: -000003a8: R2 := 0x10000 -000003af: R2 := mem[R2 + 0xFE0, el]:u64 -000003b4: when R2 = 0 goto %00000286 -0000063f: goto %000003b8 - -00000286: -0000028e: call R30 with noreturn - -000003b8: -000003bc: R16 := R2 -000003c1: call R16 with noreturn diff --git a/src/test/correct/malloc_with_local/clang_O2/malloc_with_local.expected b/src/test/correct/malloc_with_local/clang_O2/malloc_with_local.expected index ba80a5fa7..92bd5581d 100644 --- a/src/test/correct/malloc_with_local/clang_O2/malloc_with_local.expected +++ b/src/test/correct/malloc_with_local/clang_O2/malloc_with_local.expected @@ -79,7 +79,7 @@ procedure {:extern} rely_reflexive(); procedure {:extern} guarantee_reflexive(); modifies Gamma_mem, mem; -procedure main_1876(); +procedure main(); modifies Gamma_R0, Gamma_R1, Gamma_R16, Gamma_R17, Gamma_R29, Gamma_R30, Gamma_R31, Gamma_stack, R0, R1, R16, R17, R29, R30, R31, stack; free requires (memory_load64_le(mem, 69672bv64) == 0bv64); free requires (memory_load64_le(mem, 69680bv64) == 69680bv64); @@ -126,14 +126,14 @@ procedure main_1876(); free ensures (memory_load64_le(mem, 69592bv64) == 1876bv64); free ensures (memory_load64_le(mem, 69680bv64) == 69680bv64); -implementation main_1876() +implementation main() { var #4: bv64; + var $load$18: bv64; + var $load$19: bv64; var Gamma_#4: bool; - var Gamma_load18: bool; - var Gamma_load19: bool; - var load18: bv64; - var load19: bv64; + var Gamma_$load$18: bool; + var Gamma_$load$19: bool; lmain: assume {:captureState "lmain"} true; #4, Gamma_#4 := bvadd64(R31, 18446744073709551600bv64), Gamma_R31; @@ -147,7 +147,7 @@ implementation main_1876() R0, Gamma_R0 := bvadd64(R0, 1968bv64), Gamma_R0; R1, Gamma_R1 := 65bv64, true; R30, Gamma_R30 := 1900bv64, true; - call printf_1584(); + call printf(); goto l00000322; l00000322: assume {:captureState "l00000322"} true; @@ -155,7 +155,7 @@ implementation main_1876() R0, Gamma_R0 := bvadd64(R0, 1985bv64), Gamma_R0; R1, Gamma_R1 := 42bv64, true; R30, Gamma_R30 := 1916bv64, true; - call printf_1584(); + call printf(); goto l00000339; l00000339: assume {:captureState "l00000339"} true; @@ -163,23 +163,23 @@ implementation main_1876() R0, Gamma_R0 := bvadd64(R0, 2001bv64), Gamma_R0; R1, Gamma_R1 := 10bv64, true; R30, Gamma_R30 := 1932bv64, true; - call printf_1584(); + call printf(); goto l00000350; l00000350: assume {:captureState "l00000350"} true; R0, Gamma_R0 := 0bv64, true; - load18, Gamma_load18 := memory_load64_le(stack, R31), gamma_load64(Gamma_stack, R31); - R29, Gamma_R29 := load18, Gamma_load18; - load19, Gamma_load19 := memory_load64_le(stack, bvadd64(R31, 8bv64)), gamma_load64(Gamma_stack, bvadd64(R31, 8bv64)); - R30, Gamma_R30 := load19, Gamma_load19; + $load$18, Gamma_$load$18 := memory_load64_le(stack, R31), gamma_load64(Gamma_stack, R31); + R29, Gamma_R29 := $load$18, Gamma_$load$18; + $load$19, Gamma_$load$19 := memory_load64_le(stack, bvadd64(R31, 8bv64)), gamma_load64(Gamma_stack, bvadd64(R31, 8bv64)); + R30, Gamma_R30 := $load$19, Gamma_$load$19; R31, Gamma_R31 := bvadd64(R31, 16bv64), Gamma_R31; - goto main_1876_basil_return; - main_1876_basil_return: - assume {:captureState "main_1876_basil_return"} true; + goto main_basil_return; + main_basil_return: + assume {:captureState "main_basil_return"} true; return; } -procedure printf_1584(); +procedure printf(); modifies Gamma_R16, Gamma_R17, R16, R17; free requires (memory_load8_le(mem, 1964bv64) == 1bv8); free requires (memory_load8_le(mem, 1965bv64) == 0bv8); diff --git a/src/test/correct/malloc_with_local/clang_O2/malloc_with_local.gts b/src/test/correct/malloc_with_local/clang_O2/malloc_with_local.gts deleted file mode 100644 index 102c1b756..000000000 Binary files a/src/test/correct/malloc_with_local/clang_O2/malloc_with_local.gts and /dev/null differ diff --git a/src/test/correct/malloc_with_local/clang_O2/malloc_with_local.md5sum b/src/test/correct/malloc_with_local/clang_O2/malloc_with_local.md5sum new file mode 100644 index 000000000..2a4428284 --- /dev/null +++ b/src/test/correct/malloc_with_local/clang_O2/malloc_with_local.md5sum @@ -0,0 +1,5 @@ +eedd3c9e41eba7734c5e984846835e7b correct/malloc_with_local/clang_O2/a.out +c0892bd8e0bfdd0f1d30a8a21c117871 correct/malloc_with_local/clang_O2/malloc_with_local.adt +d03c6fd9b89490ef58a9e329c5bcf027 correct/malloc_with_local/clang_O2/malloc_with_local.bir +398bbca8d68b4a5842ce29d0380f94f3 correct/malloc_with_local/clang_O2/malloc_with_local.relf +0009e109bdc0375761fcfbae11bf9e82 correct/malloc_with_local/clang_O2/malloc_with_local.gts diff --git a/src/test/correct/malloc_with_local/clang_O2/malloc_with_local.relf b/src/test/correct/malloc_with_local/clang_O2/malloc_with_local.relf deleted file mode 100644 index 6df59966c..000000000 --- a/src/test/correct/malloc_with_local/clang_O2/malloc_with_local.relf +++ /dev/null @@ -1,125 +0,0 @@ - -Relocation section '.rela.dyn' at offset 0x480 contains 8 entries: - Offset Info Type Symbol's Value Symbol's Name + Addend -0000000000010dc8 0000000000000403 R_AARCH64_RELATIVE 750 -0000000000010dd0 0000000000000403 R_AARCH64_RELATIVE 700 -0000000000010fd8 0000000000000403 R_AARCH64_RELATIVE 754 -0000000000011030 0000000000000403 R_AARCH64_RELATIVE 11030 -0000000000010fc0 0000000400000401 R_AARCH64_GLOB_DAT 0000000000000000 _ITM_deregisterTMCloneTable + 0 -0000000000010fc8 0000000500000401 R_AARCH64_GLOB_DAT 0000000000000000 __cxa_finalize@GLIBC_2.17 + 0 -0000000000010fd0 0000000600000401 R_AARCH64_GLOB_DAT 0000000000000000 __gmon_start__ + 0 -0000000000010fe0 0000000800000401 R_AARCH64_GLOB_DAT 0000000000000000 _ITM_registerTMCloneTable + 0 - -Relocation section '.rela.plt' at offset 0x540 contains 5 entries: - Offset Info Type Symbol's Value Symbol's Name + Addend -0000000000011000 0000000300000402 R_AARCH64_JUMP_SLOT 0000000000000000 __libc_start_main@GLIBC_2.34 + 0 -0000000000011008 0000000500000402 R_AARCH64_JUMP_SLOT 0000000000000000 __cxa_finalize@GLIBC_2.17 + 0 -0000000000011010 0000000600000402 R_AARCH64_JUMP_SLOT 0000000000000000 __gmon_start__ + 0 -0000000000011018 0000000700000402 R_AARCH64_JUMP_SLOT 0000000000000000 abort@GLIBC_2.17 + 0 -0000000000011020 0000000900000402 R_AARCH64_JUMP_SLOT 0000000000000000 printf@GLIBC_2.17 + 0 - -Symbol table '.dynsym' contains 10 entries: - Num: Value Size Type Bind Vis Ndx Name - 0: 0000000000000000 0 NOTYPE LOCAL DEFAULT UND - 1: 00000000000005b8 0 SECTION LOCAL DEFAULT 11 .init - 2: 0000000000011028 0 SECTION LOCAL DEFAULT 23 .data - 3: 0000000000000000 0 FUNC GLOBAL DEFAULT UND __libc_start_main@GLIBC_2.34 (2) - 4: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_deregisterTMCloneTable - 5: 0000000000000000 0 FUNC WEAK DEFAULT UND __cxa_finalize@GLIBC_2.17 (3) - 6: 0000000000000000 0 NOTYPE WEAK DEFAULT UND __gmon_start__ - 7: 0000000000000000 0 FUNC GLOBAL DEFAULT UND abort@GLIBC_2.17 (3) - 8: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_registerTMCloneTable - 9: 0000000000000000 0 FUNC GLOBAL DEFAULT UND printf@GLIBC_2.17 (3) - -Symbol table '.symtab' contains 90 entries: - Num: Value Size Type Bind Vis Ndx Name - 0: 0000000000000000 0 NOTYPE LOCAL DEFAULT UND - 1: 0000000000000238 0 SECTION LOCAL DEFAULT 1 .interp - 2: 0000000000000254 0 SECTION LOCAL DEFAULT 2 .note.gnu.build-id - 3: 0000000000000278 0 SECTION LOCAL DEFAULT 3 .note.ABI-tag - 4: 0000000000000298 0 SECTION LOCAL DEFAULT 4 .gnu.hash - 5: 00000000000002b8 0 SECTION LOCAL DEFAULT 5 .dynsym - 6: 00000000000003a8 0 SECTION LOCAL DEFAULT 6 .dynstr - 7: 000000000000043c 0 SECTION LOCAL DEFAULT 7 .gnu.version - 8: 0000000000000450 0 SECTION LOCAL DEFAULT 8 .gnu.version_r - 9: 0000000000000480 0 SECTION LOCAL DEFAULT 9 .rela.dyn - 10: 0000000000000540 0 SECTION LOCAL DEFAULT 10 .rela.plt - 11: 00000000000005b8 0 SECTION LOCAL DEFAULT 11 .init - 12: 00000000000005d0 0 SECTION LOCAL DEFAULT 12 .plt - 13: 0000000000000640 0 SECTION LOCAL DEFAULT 13 .text - 14: 0000000000000798 0 SECTION LOCAL DEFAULT 14 .fini - 15: 00000000000007ac 0 SECTION LOCAL DEFAULT 15 .rodata - 16: 00000000000007ec 0 SECTION LOCAL DEFAULT 16 .eh_frame_hdr - 17: 0000000000000828 0 SECTION LOCAL DEFAULT 17 .eh_frame - 18: 0000000000010dc8 0 SECTION LOCAL DEFAULT 18 .init_array - 19: 0000000000010dd0 0 SECTION LOCAL DEFAULT 19 .fini_array - 20: 0000000000010dd8 0 SECTION LOCAL DEFAULT 20 .dynamic - 21: 0000000000010fb8 0 SECTION LOCAL DEFAULT 21 .got - 22: 0000000000010fe8 0 SECTION LOCAL DEFAULT 22 .got.plt - 23: 0000000000011028 0 SECTION LOCAL DEFAULT 23 .data - 24: 0000000000011038 0 SECTION LOCAL DEFAULT 24 .bss - 25: 0000000000000000 0 SECTION LOCAL DEFAULT 25 .comment - 26: 0000000000000000 0 FILE LOCAL DEFAULT ABS Scrt1.o - 27: 0000000000000278 0 NOTYPE LOCAL DEFAULT 3 $d - 28: 0000000000000278 32 OBJECT LOCAL DEFAULT 3 __abi_tag - 29: 0000000000000640 0 NOTYPE LOCAL DEFAULT 13 $x - 30: 000000000000083c 0 NOTYPE LOCAL DEFAULT 17 $d - 31: 00000000000007ac 0 NOTYPE LOCAL DEFAULT 15 $d - 32: 0000000000000000 0 FILE LOCAL DEFAULT ABS crti.o - 33: 0000000000000674 0 NOTYPE LOCAL DEFAULT 13 $x - 34: 0000000000000674 20 FUNC LOCAL DEFAULT 13 call_weak_fn - 35: 00000000000005b8 0 NOTYPE LOCAL DEFAULT 11 $x - 36: 0000000000000798 0 NOTYPE LOCAL DEFAULT 14 $x - 37: 0000000000000000 0 FILE LOCAL DEFAULT ABS crtn.o - 38: 00000000000005c8 0 NOTYPE LOCAL DEFAULT 11 $x - 39: 00000000000007a4 0 NOTYPE LOCAL DEFAULT 14 $x - 40: 0000000000000000 0 FILE LOCAL DEFAULT ABS crtstuff.c - 41: 0000000000000690 0 NOTYPE LOCAL DEFAULT 13 $x - 42: 0000000000000690 0 FUNC LOCAL DEFAULT 13 deregister_tm_clones - 43: 00000000000006c0 0 FUNC LOCAL DEFAULT 13 register_tm_clones - 44: 0000000000011030 0 NOTYPE LOCAL DEFAULT 23 $d - 45: 0000000000000700 0 FUNC LOCAL DEFAULT 13 __do_global_dtors_aux - 46: 0000000000011038 1 OBJECT LOCAL DEFAULT 24 completed.0 - 47: 0000000000010dd0 0 NOTYPE LOCAL DEFAULT 19 $d - 48: 0000000000010dd0 0 OBJECT LOCAL DEFAULT 19 __do_global_dtors_aux_fini_array_entry - 49: 0000000000000750 0 FUNC LOCAL DEFAULT 13 frame_dummy - 50: 0000000000010dc8 0 NOTYPE LOCAL DEFAULT 18 $d - 51: 0000000000010dc8 0 OBJECT LOCAL DEFAULT 18 __frame_dummy_init_array_entry - 52: 0000000000000850 0 NOTYPE LOCAL DEFAULT 17 $d - 53: 0000000000011038 0 NOTYPE LOCAL DEFAULT 24 $d - 54: 0000000000000000 0 FILE LOCAL DEFAULT ABS malloc_with_local.c - 55: 0000000000000754 0 NOTYPE LOCAL DEFAULT 13 $x.0 - 56: 00000000000007b0 0 NOTYPE LOCAL DEFAULT 15 $d.1 - 57: 000000000000002a 0 NOTYPE LOCAL DEFAULT 25 $d.2 - 58: 00000000000008b0 0 NOTYPE LOCAL DEFAULT 17 $d.3 - 59: 0000000000000000 0 FILE LOCAL DEFAULT ABS crtstuff.c - 60: 00000000000008ec 0 NOTYPE LOCAL DEFAULT 17 $d - 61: 00000000000008ec 0 OBJECT LOCAL DEFAULT 17 __FRAME_END__ - 62: 0000000000000000 0 FILE LOCAL DEFAULT ABS - 63: 0000000000010dd8 0 OBJECT LOCAL DEFAULT ABS _DYNAMIC - 64: 00000000000007ec 0 NOTYPE LOCAL DEFAULT 16 __GNU_EH_FRAME_HDR - 65: 0000000000010fb8 0 OBJECT LOCAL DEFAULT ABS _GLOBAL_OFFSET_TABLE_ - 66: 00000000000005d0 0 NOTYPE LOCAL DEFAULT 12 $x - 67: 0000000000000000 0 FUNC GLOBAL DEFAULT UND __libc_start_main@GLIBC_2.34 - 68: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_deregisterTMCloneTable - 69: 0000000000011028 0 NOTYPE WEAK DEFAULT 23 data_start - 70: 0000000000011038 0 NOTYPE GLOBAL DEFAULT 24 __bss_start__ - 71: 0000000000000000 0 FUNC WEAK DEFAULT UND __cxa_finalize@GLIBC_2.17 - 72: 0000000000011040 0 NOTYPE GLOBAL DEFAULT 24 _bss_end__ - 73: 0000000000011038 0 NOTYPE GLOBAL DEFAULT 23 _edata - 74: 0000000000000798 0 FUNC GLOBAL HIDDEN 14 _fini - 75: 0000000000011040 0 NOTYPE GLOBAL DEFAULT 24 __bss_end__ - 76: 0000000000011028 0 NOTYPE GLOBAL DEFAULT 23 __data_start - 77: 0000000000000000 0 NOTYPE WEAK DEFAULT UND __gmon_start__ - 78: 0000000000011030 0 OBJECT GLOBAL HIDDEN 23 __dso_handle - 79: 0000000000000000 0 FUNC GLOBAL DEFAULT UND abort@GLIBC_2.17 - 80: 00000000000007ac 4 OBJECT GLOBAL DEFAULT 15 _IO_stdin_used - 81: 0000000000011040 0 NOTYPE GLOBAL DEFAULT 24 _end - 82: 0000000000000640 52 FUNC GLOBAL DEFAULT 13 _start - 83: 0000000000011040 0 NOTYPE GLOBAL DEFAULT 24 __end__ - 84: 0000000000011038 0 NOTYPE GLOBAL DEFAULT 24 __bss_start - 85: 0000000000000754 68 FUNC GLOBAL DEFAULT 13 main - 86: 0000000000011038 0 OBJECT GLOBAL HIDDEN 23 __TMC_END__ - 87: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_registerTMCloneTable - 88: 0000000000000000 0 FUNC GLOBAL DEFAULT UND printf@GLIBC_2.17 - 89: 00000000000005b8 0 FUNC GLOBAL HIDDEN 11 _init diff --git a/src/test/correct/malloc_with_local/clang_O2/malloc_with_local_gtirb.expected b/src/test/correct/malloc_with_local/clang_O2/malloc_with_local_gtirb.expected index 0be948572..59808905e 100644 --- a/src/test/correct/malloc_with_local/clang_O2/malloc_with_local_gtirb.expected +++ b/src/test/correct/malloc_with_local/clang_O2/malloc_with_local_gtirb.expected @@ -83,7 +83,7 @@ procedure {:extern} rely_reflexive(); procedure {:extern} guarantee_reflexive(); modifies Gamma_mem, mem; -procedure FUN_630_1584(); +procedure FUN_630(); modifies Gamma_R16, Gamma_R17, Gamma_mem, R16, R17, mem; free requires (memory_load8_le(mem, 1964bv64) == 1bv8); free requires (memory_load8_le(mem, 1965bv64) == 0bv8); @@ -124,25 +124,22 @@ procedure FUN_630_1584(); free ensures (memory_load64_le(mem, 69592bv64) == 1876bv64); free ensures (memory_load64_le(mem, 69680bv64) == 69680bv64); -implementation FUN_630_1584() +implementation FUN_630() { - var Gamma_load4: bool; - var load4: bv64; - FUN_630_1584__0__Q70X6WVjRICVO79dZjxubQ: - assume {:captureState "FUN_630_1584__0__Q70X6WVjRICVO79dZjxubQ"} true; + var $load4: bv64; + var Gamma_$load4: bool; + $FUN_630$__0__$Q70X6WVjRICVO79dZjxubQ: + assume {:captureState "$FUN_630$__0__$Q70X6WVjRICVO79dZjxubQ"} true; R16, Gamma_R16 := 69632bv64, true; call rely(); - load4, Gamma_load4 := memory_load64_le(mem, bvadd64(R16, 32bv64)), (gamma_load64(Gamma_mem, bvadd64(R16, 32bv64)) || L(mem, bvadd64(R16, 32bv64))); - R17, Gamma_R17 := load4, Gamma_load4; + $load4, Gamma_$load4 := memory_load64_le(mem, bvadd64(R16, 32bv64)), (gamma_load64(Gamma_mem, bvadd64(R16, 32bv64)) || L(mem, bvadd64(R16, 32bv64))); + R17, Gamma_R17 := $load4, Gamma_$load4; R16, Gamma_R16 := bvadd64(R16, 32bv64), Gamma_R16; call printf(); - goto FUN_630_1584_basil_return; - FUN_630_1584_basil_return: - assume {:captureState "FUN_630_1584_basil_return"} true; - return; + assume false; } -procedure main_1876(); +procedure main(); modifies Gamma_R0, Gamma_R1, Gamma_R16, Gamma_R17, Gamma_R29, Gamma_R30, Gamma_R31, Gamma_mem, Gamma_stack, R0, R1, R16, R17, R29, R30, R31, mem, stack; free requires (memory_load64_le(mem, 69672bv64) == 0bv64); free requires (memory_load64_le(mem, 69680bv64) == 69680bv64); @@ -189,56 +186,56 @@ procedure main_1876(); free ensures (memory_load64_le(mem, 69592bv64) == 1876bv64); free ensures (memory_load64_le(mem, 69680bv64) == 69680bv64); -implementation main_1876() +implementation main() { - var Cse0__5_3_0: bv64; - var Gamma_Cse0__5_3_0: bool; - var Gamma_load15: bool; - var Gamma_load16: bool; - var load15: bv64; - var load16: bv64; - main_1876__0__qsNWZvfmT3SqwMLjWcYSLA: - assume {:captureState "main_1876__0__qsNWZvfmT3SqwMLjWcYSLA"} true; - Cse0__5_3_0, Gamma_Cse0__5_3_0 := bvadd64(R31, 18446744073709551600bv64), Gamma_R31; - stack, Gamma_stack := memory_store64_le(stack, Cse0__5_3_0, R29), gamma_store64(Gamma_stack, Cse0__5_3_0, Gamma_R29); - assume {:captureState "1876_1"} true; - stack, Gamma_stack := memory_store64_le(stack, bvadd64(Cse0__5_3_0, 8bv64), R30), gamma_store64(Gamma_stack, bvadd64(Cse0__5_3_0, 8bv64), Gamma_R30); - assume {:captureState "1876_2"} true; - R31, Gamma_R31 := Cse0__5_3_0, Gamma_Cse0__5_3_0; + var $load15: bv64; + var $load16: bv64; + var Cse0__5$3$0: bv64; + var Gamma_$load15: bool; + var Gamma_$load16: bool; + var Gamma_Cse0__5$3$0: bool; + $main$__0__$qsNWZvfmT3SqwMLjWcYSLA: + assume {:captureState "$main$__0__$qsNWZvfmT3SqwMLjWcYSLA"} true; + Cse0__5$3$0, Gamma_Cse0__5$3$0 := bvadd64(R31, 18446744073709551600bv64), Gamma_R31; + stack, Gamma_stack := memory_store64_le(stack, Cse0__5$3$0, R29), gamma_store64(Gamma_stack, Cse0__5$3$0, Gamma_R29); + assume {:captureState "1876$1"} true; + stack, Gamma_stack := memory_store64_le(stack, bvadd64(Cse0__5$3$0, 8bv64), R30), gamma_store64(Gamma_stack, bvadd64(Cse0__5$3$0, 8bv64), Gamma_R30); + assume {:captureState "1876$2"} true; + R31, Gamma_R31 := Cse0__5$3$0, Gamma_Cse0__5$3$0; R29, Gamma_R29 := R31, Gamma_R31; R0, Gamma_R0 := 0bv64, true; R0, Gamma_R0 := bvadd64(R0, 1968bv64), Gamma_R0; R1, Gamma_R1 := 65bv64, true; R30, Gamma_R30 := 1900bv64, true; - call FUN_630_1584(); - goto main_1876__1__i1LEKl1vSbiR7lae0n2rcw; - main_1876__1__i1LEKl1vSbiR7lae0n2rcw: - assume {:captureState "main_1876__1__i1LEKl1vSbiR7lae0n2rcw"} true; + call FUN_630(); + goto $main$__1__$i1LEKl1vSbiR7lae0n2rcw; + $main$__1__$i1LEKl1vSbiR7lae0n2rcw: + assume {:captureState "$main$__1__$i1LEKl1vSbiR7lae0n2rcw"} true; R0, Gamma_R0 := 0bv64, true; R0, Gamma_R0 := bvadd64(R0, 1985bv64), Gamma_R0; R1, Gamma_R1 := 42bv64, true; R30, Gamma_R30 := 1916bv64, true; - call FUN_630_1584(); - goto main_1876__2__TtIWNKMwRKK1do~W4tjTkA; - main_1876__2__TtIWNKMwRKK1do~W4tjTkA: - assume {:captureState "main_1876__2__TtIWNKMwRKK1do~W4tjTkA"} true; + call FUN_630(); + goto $main$__2__$TtIWNKMwRKK1do~W4tjTkA; + $main$__2__$TtIWNKMwRKK1do~W4tjTkA: + assume {:captureState "$main$__2__$TtIWNKMwRKK1do~W4tjTkA"} true; R0, Gamma_R0 := 0bv64, true; R0, Gamma_R0 := bvadd64(R0, 2001bv64), Gamma_R0; R1, Gamma_R1 := 10bv64, true; R30, Gamma_R30 := 1932bv64, true; - call FUN_630_1584(); - goto main_1876__3__f8mE4zYMSriGzPYQZgWMTA; - main_1876__3__f8mE4zYMSriGzPYQZgWMTA: - assume {:captureState "main_1876__3__f8mE4zYMSriGzPYQZgWMTA"} true; + call FUN_630(); + goto $main$__3__$f8mE4zYMSriGzPYQZgWMTA; + $main$__3__$f8mE4zYMSriGzPYQZgWMTA: + assume {:captureState "$main$__3__$f8mE4zYMSriGzPYQZgWMTA"} true; R0, Gamma_R0 := 0bv64, true; - load15, Gamma_load15 := memory_load64_le(stack, R31), gamma_load64(Gamma_stack, R31); - R29, Gamma_R29 := load15, Gamma_load15; - load16, Gamma_load16 := memory_load64_le(stack, bvadd64(R31, 8bv64)), gamma_load64(Gamma_stack, bvadd64(R31, 8bv64)); - R30, Gamma_R30 := load16, Gamma_load16; + $load15, Gamma_$load15 := memory_load64_le(stack, R31), gamma_load64(Gamma_stack, R31); + R29, Gamma_R29 := $load15, Gamma_$load15; + $load16, Gamma_$load16 := memory_load64_le(stack, bvadd64(R31, 8bv64)), gamma_load64(Gamma_stack, bvadd64(R31, 8bv64)); + R30, Gamma_R30 := $load16, Gamma_$load16; R31, Gamma_R31 := bvadd64(R31, 16bv64), Gamma_R31; - goto main_1876_basil_return; - main_1876_basil_return: - assume {:captureState "main_1876_basil_return"} true; + goto main_basil_return; + main_basil_return: + assume {:captureState "main_basil_return"} true; return; } diff --git a/src/test/correct/malloc_with_local/gcc/malloc_with_local.adt b/src/test/correct/malloc_with_local/gcc/malloc_with_local.adt deleted file mode 100644 index 4c793d99e..000000000 --- a/src/test/correct/malloc_with_local/gcc/malloc_with_local.adt +++ /dev/null @@ -1,675 +0,0 @@ -Project(Attrs([Attr("filename","\"gcc/malloc_with_local.out\""), -Attr("image-specification","(declare abi (name str))\n(declare arch (name str))\n(declare base-address (addr int))\n(declare bias (off int))\n(declare bits (size int))\n(declare code-region (addr int) (size int) (off int))\n(declare code-start (addr int))\n(declare entry-point (addr int))\n(declare external-reference (addr int) (name str))\n(declare format (name str))\n(declare is-executable (flag bool))\n(declare is-little-endian (flag bool))\n(declare llvm:base-address (addr int))\n(declare llvm:code-entry (name str) (off int) (size int))\n(declare llvm:coff-import-library (name str))\n(declare llvm:coff-virtual-section-header (name str) (addr int) (size int))\n(declare llvm:elf-program-header (name str) (off int) (size int))\n(declare llvm:elf-program-header-flags (name str) (ld bool) (r bool) \n (w bool) (x bool))\n(declare llvm:elf-virtual-program-header (name str) (addr int) (size int))\n(declare llvm:entry-point (addr int))\n(declare llvm:macho-symbol (name str) (value int))\n(declare llvm:name-reference (at int) (name str))\n(declare llvm:relocation (at int) (addr int))\n(declare llvm:section-entry (name str) (addr int) (size int) (off int))\n(declare llvm:section-flags (name str) (r bool) (w bool) (x bool))\n(declare llvm:segment-command (name str) (off int) (size int))\n(declare llvm:segment-command-flags (name str) (r bool) (w bool) (x bool))\n(declare llvm:symbol-entry (name str) (addr int) (size int) (off int)\n (value int))\n(declare llvm:virtual-segment-command (name str) (addr int) (size int))\n(declare mapped (addr int) (size int) (off int))\n(declare named-region (addr int) (size int) (name str))\n(declare named-symbol (addr int) (name str))\n(declare require (name str))\n(declare section (addr int) (size int))\n(declare segment (addr int) (size int) (r bool) (w bool) (x bool))\n(declare subarch (name str))\n(declare symbol-chunk (addr int) (size int) (root int))\n(declare symbol-value (addr int) (value int))\n(declare system (name str))\n(declare vendor (name str))\n\n(abi unknown)\n(arch aarch64)\n(base-address 0)\n(bias 0)\n(bits 64)\n(code-region 2224 20 2224)\n(code-region 1792 432 1792)\n(code-region 1600 144 1600)\n(code-region 1576 24 1576)\n(code-start 1844)\n(code-start 1792)\n(code-start 2068)\n(entry-point 1792)\n(external-reference 69592 _ITM_deregisterTMCloneTable)\n(external-reference 69600 __cxa_finalize)\n(external-reference 69608 __gmon_start__)\n(external-reference 69624 _ITM_registerTMCloneTable)\n(external-reference 69528 __libc_start_main)\n(external-reference 69536 __cxa_finalize)\n(external-reference 69544 malloc)\n(external-reference 69552 __gmon_start__)\n(external-reference 69560 abort)\n(external-reference 69568 free)\n(external-reference 69576 printf)\n(format elf)\n(is-executable true)\n(is-little-endian true)\n(llvm:base-address 0)\n(llvm:code-entry printf 0 0)\n(llvm:code-entry free 0 0)\n(llvm:code-entry abort 0 0)\n(llvm:code-entry malloc 0 0)\n(llvm:code-entry __cxa_finalize 0 0)\n(llvm:code-entry __libc_start_main 0 0)\n(llvm:code-entry _init 1576 0)\n(llvm:code-entry printf@GLIBC_2.17 0 0)\n(llvm:code-entry main 2068 156)\n(llvm:code-entry _start 1792 52)\n(llvm:code-entry free@GLIBC_2.17 0 0)\n(llvm:code-entry abort@GLIBC_2.17 0 0)\n(llvm:code-entry malloc@GLIBC_2.17 0 0)\n(llvm:code-entry _fini 2224 0)\n(llvm:code-entry __cxa_finalize@GLIBC_2.17 0 0)\n(llvm:code-entry __libc_start_main@GLIBC_2.34 0 0)\n(llvm:code-entry frame_dummy 2064 0)\n(llvm:code-entry __do_global_dtors_aux 1984 0)\n(llvm:code-entry register_tm_clones 1920 0)\n(llvm:code-entry deregister_tm_clones 1872 0)\n(llvm:code-entry call_weak_fn 1844 20)\n(llvm:code-entry .fini 2224 20)\n(llvm:code-entry .text 1792 432)\n(llvm:code-entry .plt 1600 144)\n(llvm:code-entry .init 1576 24)\n(llvm:elf-program-header 08 3456 640)\n(llvm:elf-program-header 07 0 0)\n(llvm:elf-program-header 06 2324 60)\n(llvm:elf-program-header 05 596 68)\n(llvm:elf-program-header 04 3472 496)\n(llvm:elf-program-header 03 3456 656)\n(llvm:elf-program-header 02 0 2556)\n(llvm:elf-program-header 01 568 27)\n(llvm:elf-program-header 00 64 504)\n(llvm:elf-program-header-flags 08 false true false false)\n(llvm:elf-program-header-flags 07 false true true false)\n(llvm:elf-program-header-flags 06 false true false false)\n(llvm:elf-program-header-flags 05 false true false false)\n(llvm:elf-program-header-flags 04 false true true false)\n(llvm:elf-program-header-flags 03 true true true false)\n(llvm:elf-program-header-flags 02 true true false true)\n(llvm:elf-program-header-flags 01 false true false false)\n(llvm:elf-program-header-flags 00 false true false false)\n(llvm:elf-virtual-program-header 08 68992 640)\n(llvm:elf-virtual-program-header 07 0 0)\n(llvm:elf-virtual-program-header 06 2324 60)\n(llvm:elf-virtual-program-header 05 596 68)\n(llvm:elf-virtual-program-header 04 69008 496)\n(llvm:elf-virtual-program-header 03 68992 664)\n(llvm:elf-virtual-program-header 02 0 2556)\n(llvm:elf-virtual-program-header 01 568 27)\n(llvm:elf-virtual-program-header 00 64 504)\n(llvm:entry-point 1792)\n(llvm:name-reference 69576 printf)\n(llvm:name-reference 69568 free)\n(llvm:name-reference 69560 abort)\n(llvm:name-reference 69552 __gmon_start__)\n(llvm:name-reference 69544 malloc)\n(llvm:name-reference 69536 __cxa_finalize)\n(llvm:name-reference 69528 __libc_start_main)\n(llvm:name-reference 69624 _ITM_registerTMCloneTable)\n(llvm:name-reference 69608 __gmon_start__)\n(llvm:name-reference 69600 __cxa_finalize)\n(llvm:name-reference 69592 _ITM_deregisterTMCloneTable)\n(llvm:section-entry .shstrtab 0 250 6925)\n(llvm:section-entry .strtab 0 605 6320)\n(llvm:section-entry .symtab 0 2160 4160)\n(llvm:section-entry .comment 0 43 4112)\n(llvm:section-entry .bss 69648 8 4112)\n(llvm:section-entry .data 69632 16 4096)\n(llvm:section-entry .got 69504 128 3968)\n(llvm:section-entry .dynamic 69008 496 3472)\n(llvm:section-entry .fini_array 69000 8 3464)\n(llvm:section-entry .init_array 68992 8 3456)\n(llvm:section-entry .eh_frame 2384 172 2384)\n(llvm:section-entry .eh_frame_hdr 2324 60 2324)\n(llvm:section-entry .rodata 2248 75 2248)\n(llvm:section-entry .fini 2224 20 2224)\n(llvm:section-entry .text 1792 432 1792)\n(llvm:section-entry .plt 1600 144 1600)\n(llvm:section-entry .init 1576 24 1576)\n(llvm:section-entry .rela.plt 1408 168 1408)\n(llvm:section-entry .rela.dyn 1216 192 1216)\n(llvm:section-entry .gnu.version_r 1168 48 1168)\n(llvm:section-entry .gnu.version 1144 24 1144)\n(llvm:section-entry .dynstr 984 160 984)\n(llvm:section-entry .dynsym 696 288 696)\n(llvm:section-entry .gnu.hash 664 28 664)\n(llvm:section-entry .note.ABI-tag 632 32 632)\n(llvm:section-entry .note.gnu.build-id 596 36 596)\n(llvm:section-entry .interp 568 27 568)\n(llvm:section-flags .shstrtab true false false)\n(llvm:section-flags .strtab true false false)\n(llvm:section-flags .symtab true false false)\n(llvm:section-flags .comment true false false)\n(llvm:section-flags .bss true true false)\n(llvm:section-flags .data true true false)\n(llvm:section-flags .got true true false)\n(llvm:section-flags .dynamic true true false)\n(llvm:section-flags .fini_array true true false)\n(llvm:section-flags .init_array true true false)\n(llvm:section-flags .eh_frame true false false)\n(llvm:section-flags .eh_frame_hdr true false false)\n(llvm:section-flags .rodata true false false)\n(llvm:section-flags .fini true false true)\n(llvm:section-flags .text true false true)\n(llvm:section-flags .plt true false true)\n(llvm:section-flags .init true false true)\n(llvm:section-flags .rela.plt true false false)\n(llvm:section-flags .rela.dyn true false false)\n(llvm:section-flags .gnu.version_r true false false)\n(llvm:section-flags .gnu.version true false false)\n(llvm:section-flags .dynstr true false false)\n(llvm:section-flags .dynsym true false false)\n(llvm:section-flags .gnu.hash true false false)\n(llvm:section-flags .note.ABI-tag true false false)\n(llvm:section-flags .note.gnu.build-id true false false)\n(llvm:section-flags .interp true false false)\n(llvm:symbol-entry printf 0 0 0 0)\n(llvm:symbol-entry free 0 0 0 0)\n(llvm:symbol-entry abort 0 0 0 0)\n(llvm:symbol-entry malloc 0 0 0 0)\n(llvm:symbol-entry __cxa_finalize 0 0 0 0)\n(llvm:symbol-entry __libc_start_main 0 0 0 0)\n(llvm:symbol-entry _init 1576 0 1576 1576)\n(llvm:symbol-entry printf@GLIBC_2.17 0 0 0 0)\n(llvm:symbol-entry main 2068 156 2068 2068)\n(llvm:symbol-entry _start 1792 52 1792 1792)\n(llvm:symbol-entry free@GLIBC_2.17 0 0 0 0)\n(llvm:symbol-entry abort@GLIBC_2.17 0 0 0 0)\n(llvm:symbol-entry malloc@GLIBC_2.17 0 0 0 0)\n(llvm:symbol-entry _fini 2224 0 2224 2224)\n(llvm:symbol-entry __cxa_finalize@GLIBC_2.17 0 0 0 0)\n(llvm:symbol-entry __libc_start_main@GLIBC_2.34 0 0 0 0)\n(llvm:symbol-entry frame_dummy 2064 0 2064 2064)\n(llvm:symbol-entry __do_global_dtors_aux 1984 0 1984 1984)\n(llvm:symbol-entry register_tm_clones 1920 0 1920 1920)\n(llvm:symbol-entry deregister_tm_clones 1872 0 1872 1872)\n(llvm:symbol-entry call_weak_fn 1844 20 1844 1844)\n(mapped 0 2556 0)\n(mapped 68992 656 3456)\n(named-region 0 2556 02)\n(named-region 68992 664 03)\n(named-region 568 27 .interp)\n(named-region 596 36 .note.gnu.build-id)\n(named-region 632 32 .note.ABI-tag)\n(named-region 664 28 .gnu.hash)\n(named-region 696 288 .dynsym)\n(named-region 984 160 .dynstr)\n(named-region 1144 24 .gnu.version)\n(named-region 1168 48 .gnu.version_r)\n(named-region 1216 192 .rela.dyn)\n(named-region 1408 168 .rela.plt)\n(named-region 1576 24 .init)\n(named-region 1600 144 .plt)\n(named-region 1792 432 .text)\n(named-region 2224 20 .fini)\n(named-region 2248 75 .rodata)\n(named-region 2324 60 .eh_frame_hdr)\n(named-region 2384 172 .eh_frame)\n(named-region 68992 8 .init_array)\n(named-region 69000 8 .fini_array)\n(named-region 69008 496 .dynamic)\n(named-region 69504 128 .got)\n(named-region 69632 16 .data)\n(named-region 69648 8 .bss)\n(named-region 0 43 .comment)\n(named-region 0 2160 .symtab)\n(named-region 0 605 .strtab)\n(named-region 0 250 .shstrtab)\n(named-symbol 1844 call_weak_fn)\n(named-symbol 1872 deregister_tm_clones)\n(named-symbol 1920 register_tm_clones)\n(named-symbol 1984 __do_global_dtors_aux)\n(named-symbol 2064 frame_dummy)\n(named-symbol 0 __libc_start_main@GLIBC_2.34)\n(named-symbol 0 __cxa_finalize@GLIBC_2.17)\n(named-symbol 2224 _fini)\n(named-symbol 0 malloc@GLIBC_2.17)\n(named-symbol 0 abort@GLIBC_2.17)\n(named-symbol 0 free@GLIBC_2.17)\n(named-symbol 1792 _start)\n(named-symbol 2068 main)\n(named-symbol 0 printf@GLIBC_2.17)\n(named-symbol 1576 _init)\n(named-symbol 0 __libc_start_main)\n(named-symbol 0 __cxa_finalize)\n(named-symbol 0 malloc)\n(named-symbol 0 abort)\n(named-symbol 0 free)\n(named-symbol 0 printf)\n(require libc.so.6)\n(section 568 27)\n(section 596 36)\n(section 632 32)\n(section 664 28)\n(section 696 288)\n(section 984 160)\n(section 1144 24)\n(section 1168 48)\n(section 1216 192)\n(section 1408 168)\n(section 1576 24)\n(section 1600 144)\n(section 1792 432)\n(section 2224 20)\n(section 2248 75)\n(section 2324 60)\n(section 2384 172)\n(section 68992 8)\n(section 69000 8)\n(section 69008 496)\n(section 69504 128)\n(section 69632 16)\n(section 69648 8)\n(section 0 43)\n(section 0 2160)\n(section 0 605)\n(section 0 250)\n(segment 0 2556 true false true)\n(segment 68992 664 true true false)\n(subarch v8)\n(symbol-chunk 1844 20 1844)\n(symbol-chunk 1792 52 1792)\n(symbol-chunk 2068 156 2068)\n(symbol-value 1844 1844)\n(symbol-value 1872 1872)\n(symbol-value 1920 1920)\n(symbol-value 1984 1984)\n(symbol-value 2064 2064)\n(symbol-value 2224 2224)\n(symbol-value 1792 1792)\n(symbol-value 2068 2068)\n(symbol-value 1576 1576)\n(symbol-value 0 0)\n(system \"\")\n(vendor \"\")\n"), -Attr("abi-name","\"aarch64-linux-gnu-elf\"")]), -Sections([Section(".shstrtab", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x08\x1c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x38\x00\x09\x00\x40\x00\x1c\x00\x1b\x00\x06\x00\x00\x00\x04\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x04\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xfc\x09\x00\x00\x00\x00\x00\x00\xfc\x09\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x01\x00\x00\x00\x06\x00\x00\x00\x80\x0d\x00\x00\x00\x00\x00\x00\x80\x0d"), -Section(".strtab", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x08\x1c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x38\x00\x09\x00\x40\x00\x1c\x00\x1b\x00\x06\x00\x00\x00\x04\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x04\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xfc\x09\x00\x00\x00\x00\x00\x00\xfc\x09\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x01\x00\x00\x00\x06\x00\x00\x00\x80\x0d\x00\x00\x00\x00\x00\x00\x80\x0d\x01\x00\x00\x00\x00\x00\x80\x0d\x01\x00\x00\x00\x00\x00\x90\x02\x00\x00\x00\x00\x00\x00\x98\x02\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x02\x00\x00\x00\x06\x00\x00\x00\x90\x0d\x00\x00\x00\x00\x00\x00\x90\x0d\x01\x00\x00\x00\x00\x00\x90\x0d\x01\x00\x00\x00\x00\x00\xf0\x01\x00\x00\x00\x00\x00\x00\xf0\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x04\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x50\xe5\x74\x64\x04\x00\x00\x00\x14\x09\x00\x00\x00\x00\x00\x00\x14\x09\x00\x00\x00\x00\x00\x00\x14\x09\x00\x00\x00\x00\x00\x00\x3c\x00\x00\x00\x00\x00\x00\x00\x3c\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x51\xe5\x74\x64\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x52\xe5\x74\x64\x04\x00\x00\x00\x80\x0d\x00\x00\x00\x00\x00\x00\x80\x0d\x01\x00\x00\x00\x00\x00\x80\x0d\x01\x00\x00\x00\x00\x00\x80\x02\x00\x00\x00\x00\x00\x00\x80\x02\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x2f\x6c\x69\x62\x2f\x6c\x64\x2d\x6c\x69\x6e\x75\x78\x2d\x61\x61\x72\x63\x68\x36\x34\x2e\x73\x6f\x2e\x31\x00\x00\x04\x00\x00\x00\x14\x00\x00\x00\x03"), -Section(".symtab", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x08\x1c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x38\x00\x09\x00\x40\x00\x1c\x00\x1b\x00\x06\x00\x00\x00\x04\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x04\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xfc\x09\x00\x00\x00\x00\x00\x00\xfc\x09\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x01\x00\x00\x00\x06\x00\x00\x00\x80\x0d\x00\x00\x00\x00\x00\x00\x80\x0d\x01\x00\x00\x00\x00\x00\x80\x0d\x01\x00\x00\x00\x00\x00\x90\x02\x00\x00\x00\x00\x00\x00\x98\x02\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x02\x00\x00\x00\x06\x00\x00\x00\x90\x0d\x00\x00\x00\x00\x00\x00\x90\x0d\x01\x00\x00\x00\x00\x00\x90\x0d\x01\x00\x00\x00\x00\x00\xf0\x01\x00\x00\x00\x00\x00\x00\xf0\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x04\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x50\xe5\x74\x64\x04\x00\x00\x00\x14\x09\x00\x00\x00\x00\x00\x00\x14\x09\x00\x00\x00\x00\x00\x00\x14\x09\x00\x00\x00\x00\x00\x00\x3c\x00\x00\x00\x00\x00\x00\x00\x3c\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x51\xe5\x74\x64\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x52\xe5\x74\x64\x04\x00\x00\x00\x80\x0d\x00\x00\x00\x00\x00\x00\x80\x0d\x01\x00\x00\x00\x00\x00\x80\x0d\x01\x00\x00\x00\x00\x00\x80\x02\x00\x00\x00\x00\x00\x00\x80\x02\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x2f\x6c\x69\x62\x2f\x6c\x64\x2d\x6c\x69\x6e\x75\x78\x2d\x61\x61\x72\x63\x68\x36\x34\x2e\x73\x6f\x2e\x31\x00\x00\x04\x00\x00\x00\x14\x00\x00\x00\x03\x00\x00\x00\x47\x4e\x55\x00\x9c\xdd\x29\x3e\x76\x06\xd0\xd0\xf9\xa1\x24\x20\xd7\xe3\xb2\x90\xfc\x3e\xf9\xac\x04\x00\x00\x00\x10\x00\x00\x00\x01\x00\x00\x00\x47\x4e\x55\x00\x00\x00\x00\x00\x03\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x01\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x0b\x00\x28\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x16\x00\x00\x10\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x17\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5b\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x22\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x77\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2e\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x29\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x86\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x34\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5f\x5f\x63\x78\x61\x5f\x66\x69\x6e\x61\x6c\x69\x7a\x65\x00\x6d\x61\x6c\x6c\x6f\x63\x00\x5f\x5f\x6c\x69\x62\x63\x5f\x73\x74\x61\x72\x74\x5f\x6d\x61\x69\x6e\x00\x66\x72\x65\x65\x00\x61\x62\x6f\x72\x74\x00\x70\x72\x69\x6e\x74\x66\x00\x6c\x69\x62\x63\x2e\x73\x6f\x2e\x36\x00\x47\x4c\x49\x42\x43\x5f\x32\x2e\x31\x37\x00\x47\x4c\x49\x42\x43\x5f\x32\x2e\x33\x34\x00\x5f\x49\x54\x4d\x5f\x64\x65\x72\x65\x67\x69\x73\x74\x65\x72\x54\x4d\x43\x6c\x6f\x6e\x65\x54\x61\x62\x6c\x65\x00\x5f\x5f\x67\x6d\x6f\x6e\x5f\x73\x74\x61\x72\x74\x5f\x5f\x00\x5f\x49\x54\x4d\x5f\x72\x65\x67\x69\x73\x74\x65\x72\x54\x4d\x43\x6c\x6f\x6e\x65\x54\x61\x62\x6c\x65\x00\x00\x00\x00\x00\x00\x00\x02\x00\x01\x00\x03\x00\x03\x00\x01\x00\x03\x00\x03\x00\x01\x00\x03\x00\x01\x00\x02\x00\x3b\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x97\x91\x96\x06\x00\x00\x03\x00\x45\x00\x00\x00\x10\x00\x00\x00\xb4\x91\x96\x06\x00\x00\x02\x00\x50\x00\x00\x00\x00\x00\x00\x00\x80\x0d\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x10\x08\x00\x00\x00\x00\x00\x00\x88\x0d\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\xc0\x07\x00\x00\x00\x00\x00\x00\xf0\x0f\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x14\x08\x00\x00\x00\x00\x00\x00\x08\x10\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x08\x10\x01\x00\x00\x00\x00\x00\xd8\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe0\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe8\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xf8\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x0a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x98\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xa0\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xa8\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xb0\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xb8\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xc0\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x09\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xc8\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x0b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1f\x20\x03\xd5\xfd\x7b\xbf\xa9\xfd\x03\x00\x91\x40\x00\x00\x94\xfd\x7b\xc1\xa8\xc0\x03\x5f\xd6\xf0\x7b\xbf\xa9\x90\x00\x00\x90\x11\xca\x47\xf9\x10\x42\x3e\x91\x20\x02\x1f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x90\x00\x00\x90\x11\xce\x47\xf9\x10\x62\x3e\x91\x20\x02\x1f\xd6\x90\x00\x00\x90\x11\xd2\x47\xf9\x10\x82\x3e\x91\x20\x02\x1f\xd6\x90\x00\x00\x90\x11\xd6\x47\xf9\x10\xa2\x3e\x91\x20\x02\x1f\xd6\x90\x00\x00\x90\x11\xda\x47\xf9\x10\xc2\x3e\x91\x20\x02\x1f\xd6\x90\x00\x00\x90\x11\xde\x47\xf9\x10\xe2\x3e\x91\x20\x02\x1f\xd6\x90\x00\x00\x90\x11\xe2\x47\xf9\x10\x02\x3f\x91\x20\x02\x1f\xd6\x90\x00\x00\x90\x11\xe6\x47\xf9\x10\x22\x3f\x91\x20\x02\x1f\xd6\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1f\x20\x03\xd5\x1d\x00\x80\xd2\x1e\x00\x80\xd2\xe5\x03\x00\xaa\xe1\x03\x40\xf9\xe2\x23\x00\x91\xe6\x03\x00\x91\x80\x00\x00\x90\x00\xf8\x47\xf9\x03\x00\x80\xd2\x04\x00\x80\xd2\xcd\xff\xff\x97\xdc\xff\xff\x97\x80\x00\x00\x90\x00\xf4\x47\xf9\x40\x00\x00\xb4\xd4\xff\xff\x17\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x80\x00\x00\xb0\x00\x40\x00\x91\x81\x00\x00\xb0\x21\x40\x00\x91\x3f\x00\x00\xeb\xc0\x00\x00\x54\x81\x00\x00\x90\x21\xec\x47\xf9\x61\x00\x00\xb4\xf0\x03\x01\xaa\x00\x02\x1f\xd6\xc0\x03\x5f\xd6\x80\x00\x00\xb0\x00\x40\x00\x91\x81\x00\x00\xb0\x21\x40\x00\x91\x21\x00\x00\xcb\x22\xfc\x7f\xd3\x41\x0c\x81\x8b\x21\xfc\x41\x93\xc1\x00\x00\xb4\x82\x00\x00\x90\x42\xfc\x47\xf9\x62\x00\x00\xb4\xf0\x03\x02\xaa\x00\x02\x1f\xd6\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\xfd\x7b\xbe\xa9\xfd\x03\x00\x91\xf3\x0b\x00\xf9\x93\x00\x00\xb0\x60\x42\x40\x39\x40\x01\x00\x35\x80\x00\x00\x90\x00\xf0\x47\xf9\x80\x00\x00\xb4\x80\x00\x00\xb0\x00\x04\x40\xf9\xa1\xff\xff\x97\xd8\xff\xff\x97\x20\x00\x80\x52\x60\x42\x00\x39\xf3\x0b\x40\xf9\xfd\x7b\xc2\xa8\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\xdc\xff\xff\x17\xfd\x7b\xbd\xa9\xfd\x03\x00\x91\x20\x00\x80\xd2\x98\xff\xff\x97\xe0\x13\x00\xf9\x80\x00\x80\xd2\x95\xff\xff\x97\xe0\x17\x00\xf9\x40\x01\x80\x52\xe0\x1f\x00\xb9\xe0\x13\x40\xf9\x21\x08\x80\x52\x01\x00\x00\x39\xe0\x17\x40\xf9\x41\x05\x80\x52\x01\x00\x00\xb9\xe0\x13\x40\xf9\x00\x00\x40\x39\xe1\x03\x00\x2a\x00\x00\x00\x90\x00\x40\x23\x91\x96\xff\xff\x97\xe0\x17\x40\xf9"), -Section(".comment", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x08\x1c\x00"), -Section(".interp", 0x238, "\x2f\x6c\x69\x62\x2f\x6c\x64\x2d\x6c\x69\x6e\x75\x78\x2d\x61\x61\x72\x63\x68\x36\x34\x2e\x73\x6f\x2e\x31\x00"), -Section(".note.gnu.build-id", 0x254, "\x04\x00\x00\x00\x14\x00\x00\x00\x03\x00\x00\x00\x47\x4e\x55\x00\x9c\xdd\x29\x3e\x76\x06\xd0\xd0\xf9\xa1\x24\x20\xd7\xe3\xb2\x90\xfc\x3e\xf9\xac"), -Section(".note.ABI-tag", 0x278, "\x04\x00\x00\x00\x10\x00\x00\x00\x01\x00\x00\x00\x47\x4e\x55\x00\x00\x00\x00\x00\x03\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00"), -Section(".gnu.hash", 0x298, "\x01\x00\x00\x00\x01\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".dynsym", 0x2B8, "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x0b\x00\x28\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x16\x00\x00\x10\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x17\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5b\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x22\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x77\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2e\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x29\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x86\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x34\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".dynstr", 0x3D8, "\x00\x5f\x5f\x63\x78\x61\x5f\x66\x69\x6e\x61\x6c\x69\x7a\x65\x00\x6d\x61\x6c\x6c\x6f\x63\x00\x5f\x5f\x6c\x69\x62\x63\x5f\x73\x74\x61\x72\x74\x5f\x6d\x61\x69\x6e\x00\x66\x72\x65\x65\x00\x61\x62\x6f\x72\x74\x00\x70\x72\x69\x6e\x74\x66\x00\x6c\x69\x62\x63\x2e\x73\x6f\x2e\x36\x00\x47\x4c\x49\x42\x43\x5f\x32\x2e\x31\x37\x00\x47\x4c\x49\x42\x43\x5f\x32\x2e\x33\x34\x00\x5f\x49\x54\x4d\x5f\x64\x65\x72\x65\x67\x69\x73\x74\x65\x72\x54\x4d\x43\x6c\x6f\x6e\x65\x54\x61\x62\x6c\x65\x00\x5f\x5f\x67\x6d\x6f\x6e\x5f\x73\x74\x61\x72\x74\x5f\x5f\x00\x5f\x49\x54\x4d\x5f\x72\x65\x67\x69\x73\x74\x65\x72\x54\x4d\x43\x6c\x6f\x6e\x65\x54\x61\x62\x6c\x65\x00"), -Section(".gnu.version", 0x478, "\x00\x00\x00\x00\x00\x00\x02\x00\x01\x00\x03\x00\x03\x00\x01\x00\x03\x00\x03\x00\x01\x00\x03\x00"), -Section(".gnu.version_r", 0x490, "\x01\x00\x02\x00\x3b\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x97\x91\x96\x06\x00\x00\x03\x00\x45\x00\x00\x00\x10\x00\x00\x00\xb4\x91\x96\x06\x00\x00\x02\x00\x50\x00\x00\x00\x00\x00\x00\x00"), -Section(".rela.dyn", 0x4C0, "\x80\x0d\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x10\x08\x00\x00\x00\x00\x00\x00\x88\x0d\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\xc0\x07\x00\x00\x00\x00\x00\x00\xf0\x0f\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x14\x08\x00\x00\x00\x00\x00\x00\x08\x10\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x08\x10\x01\x00\x00\x00\x00\x00\xd8\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe0\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe8\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xf8\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x0a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".rela.plt", 0x580, "\x98\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xa0\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xa8\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xb0\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xb8\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xc0\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x09\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xc8\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x0b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".init", 0x628, "\x1f\x20\x03\xd5\xfd\x7b\xbf\xa9\xfd\x03\x00\x91\x40\x00\x00\x94\xfd\x7b\xc1\xa8\xc0\x03\x5f\xd6"), -Section(".plt", 0x640, "\xf0\x7b\xbf\xa9\x90\x00\x00\x90\x11\xca\x47\xf9\x10\x42\x3e\x91\x20\x02\x1f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x90\x00\x00\x90\x11\xce\x47\xf9\x10\x62\x3e\x91\x20\x02\x1f\xd6\x90\x00\x00\x90\x11\xd2\x47\xf9\x10\x82\x3e\x91\x20\x02\x1f\xd6\x90\x00\x00\x90\x11\xd6\x47\xf9\x10\xa2\x3e\x91\x20\x02\x1f\xd6\x90\x00\x00\x90\x11\xda\x47\xf9\x10\xc2\x3e\x91\x20\x02\x1f\xd6\x90\x00\x00\x90\x11\xde\x47\xf9\x10\xe2\x3e\x91\x20\x02\x1f\xd6\x90\x00\x00\x90\x11\xe2\x47\xf9\x10\x02\x3f\x91\x20\x02\x1f\xd6\x90\x00\x00\x90\x11\xe6\x47\xf9\x10\x22\x3f\x91\x20\x02\x1f\xd6"), -Section(".fini", 0x8B0, "\x1f\x20\x03\xd5\xfd\x7b\xbf\xa9\xfd\x03\x00\x91\xfd\x7b\xc1\xa8\xc0\x03\x5f\xd6"), -Section(".rodata", 0x8C8, "\x01\x00\x02\x00\x00\x00\x00\x00\x54\x68\x65\x20\x63\x68\x61\x72\x20\x69\x73\x3a\x20\x25\x63\x0a\x00\x00\x00\x00\x00\x00\x00\x00\x54\x68\x65\x20\x69\x6e\x74\x20\x69\x73\x3a\x20\x25\x64\x0a\x00\x54\x68\x65\x20\x6c\x6f\x63\x61\x6c\x20\x76\x61\x72\x69\x61\x62\x6c\x65\x20\x69\x73\x3a\x20\x25\x64\x0a\x00"), -Section(".eh_frame_hdr", 0x914, "\x01\x1b\x03\x3b\x38\x00\x00\x00\x06\x00\x00\x00\xec\xfd\xff\xff\x50\x00\x00\x00\x3c\xfe\xff\xff\x64\x00\x00\x00\x6c\xfe\xff\xff\x78\x00\x00\x00\xac\xfe\xff\xff\x8c\x00\x00\x00\xfc\xfe\xff\xff\xb0\x00\x00\x00\x00\xff\xff\xff\xc4\x00\x00\x00"), -Section(".eh_frame", 0x950, "\x10\x00\x00\x00\x00\x00\x00\x00\x01\x7a\x52\x00\x04\x78\x1e\x01\x1b\x0c\x1f\x00\x10\x00\x00\x00\x18\x00\x00\x00\x94\xfd\xff\xff\x34\x00\x00\x00\x00\x41\x07\x1e\x10\x00\x00\x00\x2c\x00\x00\x00\xd0\xfd\xff\xff\x30\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x40\x00\x00\x00\xec\xfd\xff\xff\x3c\x00\x00\x00\x00\x00\x00\x00\x20\x00\x00\x00\x54\x00\x00\x00\x18\xfe\xff\xff\x48\x00\x00\x00\x00\x41\x0e\x20\x9d\x04\x9e\x03\x42\x93\x02\x4e\xde\xdd\xd3\x0e\x00\x00\x00\x00\x10\x00\x00\x00\x78\x00\x00\x00\x44\xfe\xff\xff\x04\x00\x00\x00\x00\x00\x00\x00\x1c\x00\x00\x00\x8c\x00\x00\x00\x34\xfe\xff\xff\x9c\x00\x00\x00\x00\x41\x0e\x30\x9d\x06\x9e\x05\x65\xde\xdd\x0e\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".fini_array", 0x10D88, "\xc0\x07\x00\x00\x00\x00\x00\x00"), -Section(".dynamic", 0x10D90, "\x01\x00\x00\x00\x00\x00\x00\x00\x3b\x00\x00\x00\x00\x00\x00\x00\x0c\x00\x00\x00\x00\x00\x00\x00\x28\x06\x00\x00\x00\x00\x00\x00\x0d\x00\x00\x00\x00\x00\x00\x00\xb0\x08\x00\x00\x00\x00\x00\x00\x19\x00\x00\x00\x00\x00\x00\x00\x80\x0d\x01\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x1a\x00\x00\x00\x00\x00\x00\x00\x88\x0d\x01\x00\x00\x00\x00\x00\x1c\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\xf5\xfe\xff\x6f\x00\x00\x00\x00\x98\x02\x00\x00\x00\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\xd8\x03\x00\x00\x00\x00\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\xb8\x02\x00\x00\x00\x00\x00\x00\x0a\x00\x00\x00\x00\x00\x00\x00\xa0\x00\x00\x00\x00\x00\x00\x00\x0b\x00\x00\x00\x00\x00\x00\x00\x18\x00\x00\x00\x00\x00\x00\x00\x15\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x80\x0f\x01\x00\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\xa8\x00\x00\x00\x00\x00\x00\x00\x14\x00\x00\x00\x00\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x17\x00\x00\x00\x00\x00\x00\x00\x80\x05\x00\x00\x00\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\xc0\x04\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\xc0\x00\x00\x00\x00\x00\x00\x00\x09\x00\x00\x00\x00\x00\x00\x00\x18\x00\x00\x00\x00\x00\x00\x00\x1e\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\xfb\xff\xff\x6f\x00\x00\x00\x00\x01\x00\x00\x08\x00\x00\x00\x00\xfe\xff\xff\x6f\x00\x00\x00\x00\x90\x04\x00\x00\x00\x00\x00\x00\xff\xff\xff\x6f\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\xf0\xff\xff\x6f\x00\x00\x00\x00\x78\x04\x00\x00\x00\x00\x00\x00\xf9\xff\xff\x6f\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".got", 0x10F80, "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x06\x00\x00\x00\x00\x00\x00\x40\x06\x00\x00\x00\x00\x00\x00\x40\x06\x00\x00\x00\x00\x00\x00\x40\x06\x00\x00\x00\x00\x00\x00\x40\x06\x00\x00\x00\x00\x00\x00\x40\x06\x00\x00\x00\x00\x00\x00\x40\x06\x00\x00\x00\x00\x00\x00\x90\x0d\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x14\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".data", 0x11000, "\x00\x00\x00\x00\x00\x00\x00\x00\x08\x10\x01\x00\x00\x00\x00\x00"), -Section(".init_array", 0x10D80, "\x10\x08\x00\x00\x00\x00\x00\x00"), -Section(".text", 0x700, "\x1f\x20\x03\xd5\x1d\x00\x80\xd2\x1e\x00\x80\xd2\xe5\x03\x00\xaa\xe1\x03\x40\xf9\xe2\x23\x00\x91\xe6\x03\x00\x91\x80\x00\x00\x90\x00\xf8\x47\xf9\x03\x00\x80\xd2\x04\x00\x80\xd2\xcd\xff\xff\x97\xdc\xff\xff\x97\x80\x00\x00\x90\x00\xf4\x47\xf9\x40\x00\x00\xb4\xd4\xff\xff\x17\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x80\x00\x00\xb0\x00\x40\x00\x91\x81\x00\x00\xb0\x21\x40\x00\x91\x3f\x00\x00\xeb\xc0\x00\x00\x54\x81\x00\x00\x90\x21\xec\x47\xf9\x61\x00\x00\xb4\xf0\x03\x01\xaa\x00\x02\x1f\xd6\xc0\x03\x5f\xd6\x80\x00\x00\xb0\x00\x40\x00\x91\x81\x00\x00\xb0\x21\x40\x00\x91\x21\x00\x00\xcb\x22\xfc\x7f\xd3\x41\x0c\x81\x8b\x21\xfc\x41\x93\xc1\x00\x00\xb4\x82\x00\x00\x90\x42\xfc\x47\xf9\x62\x00\x00\xb4\xf0\x03\x02\xaa\x00\x02\x1f\xd6\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\xfd\x7b\xbe\xa9\xfd\x03\x00\x91\xf3\x0b\x00\xf9\x93\x00\x00\xb0\x60\x42\x40\x39\x40\x01\x00\x35\x80\x00\x00\x90\x00\xf0\x47\xf9\x80\x00\x00\xb4\x80\x00\x00\xb0\x00\x04\x40\xf9\xa1\xff\xff\x97\xd8\xff\xff\x97\x20\x00\x80\x52\x60\x42\x00\x39\xf3\x0b\x40\xf9\xfd\x7b\xc2\xa8\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\xdc\xff\xff\x17\xfd\x7b\xbd\xa9\xfd\x03\x00\x91\x20\x00\x80\xd2\x98\xff\xff\x97\xe0\x13\x00\xf9\x80\x00\x80\xd2\x95\xff\xff\x97\xe0\x17\x00\xf9\x40\x01\x80\x52\xe0\x1f\x00\xb9\xe0\x13\x40\xf9\x21\x08\x80\x52\x01\x00\x00\x39\xe0\x17\x40\xf9\x41\x05\x80\x52\x01\x00\x00\xb9\xe0\x13\x40\xf9\x00\x00\x40\x39\xe1\x03\x00\x2a\x00\x00\x00\x90\x00\x40\x23\x91\x96\xff\xff\x97\xe0\x17\x40\xf9\x00\x00\x40\xb9\xe1\x03\x00\x2a\x00\x00\x00\x90\x00\xa0\x23\x91\x90\xff\xff\x97\xe1\x1f\x40\xb9\x00\x00\x00\x90\x00\xe0\x23\x91\x8c\xff\xff\x97\xe0\x13\x40\xf9\x86\xff\xff\x97\xe0\x17\x40\xf9\x84\xff\xff\x97\x00\x00\x80\x52\xfd\x7b\xc3\xa8\xc0\x03\x5f\xd6")]), -Memmap([Annotation(Region(0x0,0x9FB), Attr("segment","02 0 2556")), -Annotation(Region(0x700,0x733), Attr("symbol","\"_start\"")), -Annotation(Region(0x0,0xF9), Attr("section","\".shstrtab\"")), -Annotation(Region(0x0,0x25C), Attr("section","\".strtab\"")), -Annotation(Region(0x0,0x86F), Attr("section","\".symtab\"")), -Annotation(Region(0x0,0x2A), Attr("section","\".comment\"")), -Annotation(Region(0x238,0x252), Attr("section","\".interp\"")), -Annotation(Region(0x254,0x277), Attr("section","\".note.gnu.build-id\"")), -Annotation(Region(0x278,0x297), Attr("section","\".note.ABI-tag\"")), -Annotation(Region(0x298,0x2B3), Attr("section","\".gnu.hash\"")), -Annotation(Region(0x2B8,0x3D7), Attr("section","\".dynsym\"")), -Annotation(Region(0x3D8,0x477), Attr("section","\".dynstr\"")), -Annotation(Region(0x478,0x48F), Attr("section","\".gnu.version\"")), -Annotation(Region(0x490,0x4BF), Attr("section","\".gnu.version_r\"")), -Annotation(Region(0x4C0,0x57F), Attr("section","\".rela.dyn\"")), -Annotation(Region(0x580,0x627), Attr("section","\".rela.plt\"")), -Annotation(Region(0x628,0x63F), Attr("section","\".init\"")), -Annotation(Region(0x640,0x6CF), Attr("section","\".plt\"")), -Annotation(Region(0x628,0x63F), Attr("code-region","()")), -Annotation(Region(0x640,0x6CF), Attr("code-region","()")), -Annotation(Region(0x700,0x733), Attr("symbol-info","_start 0x700 52")), -Annotation(Region(0x734,0x747), Attr("symbol","\"call_weak_fn\"")), -Annotation(Region(0x734,0x747), Attr("symbol-info","call_weak_fn 0x734 20")), -Annotation(Region(0x814,0x8AF), Attr("symbol","\"main\"")), -Annotation(Region(0x814,0x8AF), Attr("symbol-info","main 0x814 156")), -Annotation(Region(0x8B0,0x8C3), Attr("section","\".fini\"")), -Annotation(Region(0x8C8,0x912), Attr("section","\".rodata\"")), -Annotation(Region(0x914,0x94F), Attr("section","\".eh_frame_hdr\"")), -Annotation(Region(0x950,0x9FB), Attr("section","\".eh_frame\"")), -Annotation(Region(0x10D80,0x1100F), Attr("segment","03 0x10D80 664")), -Annotation(Region(0x10D88,0x10D8F), Attr("section","\".fini_array\"")), -Annotation(Region(0x10D90,0x10F7F), Attr("section","\".dynamic\"")), -Annotation(Region(0x10F80,0x10FFF), Attr("section","\".got\"")), -Annotation(Region(0x11000,0x1100F), Attr("section","\".data\"")), -Annotation(Region(0x10D80,0x10D87), Attr("section","\".init_array\"")), -Annotation(Region(0x700,0x8AF), Attr("section","\".text\"")), -Annotation(Region(0x700,0x8AF), Attr("code-region","()")), -Annotation(Region(0x8B0,0x8C3), Attr("code-region","()"))]), -Program(Tid(1_858, "%00000742"), Attrs([]), - Subs([Sub(Tid(1_833, "@__cxa_finalize"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x670"), -Attr("stub","()")]), "__cxa_finalize", Args([Arg(Tid(1_859, "%00000743"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("__cxa_finalize_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(1_172, "@__cxa_finalize"), - Attrs([Attr("address","0x670")]), Phis([]), -Defs([Def(Tid(1_468, "%000005bc"), Attrs([Attr("address","0x670"), -Attr("insn","adrp x16, #65536")]), Var("R16",Imm(64)), Int(65536,64)), -Def(Tid(1_475, "%000005c3"), Attrs([Attr("address","0x674"), -Attr("insn","ldr x17, [x16, #0xfa0]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(4000,64)),LittleEndian(),64)), -Def(Tid(1_481, "%000005c9"), Attrs([Attr("address","0x678"), -Attr("insn","add x16, x16, #0xfa0")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(4000,64)))]), Jmps([Call(Tid(1_486, "%000005ce"), - Attrs([Attr("address","0x67C"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), -Sub(Tid(1_834, "@__do_global_dtors_aux"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x7C0")]), - "__do_global_dtors_aux", Args([Arg(Tid(1_860, "%00000744"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("__do_global_dtors_aux_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(746, "@__do_global_dtors_aux"), - Attrs([Attr("address","0x7C0")]), Phis([]), Defs([Def(Tid(750, "%000002ee"), - Attrs([Attr("address","0x7C0"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("#3",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(18446744073709551584,64))), -Def(Tid(756, "%000002f4"), Attrs([Attr("address","0x7C0"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("#3",Imm(64)),Var("R29",Imm(64)),LittleEndian(),64)), -Def(Tid(762, "%000002fa"), Attrs([Attr("address","0x7C0"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("#3",Imm(64)),Int(8,64)),Var("R30",Imm(64)),LittleEndian(),64)), -Def(Tid(766, "%000002fe"), Attrs([Attr("address","0x7C0"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("R31",Imm(64)), -Var("#3",Imm(64))), Def(Tid(772, "%00000304"), - Attrs([Attr("address","0x7C4"), Attr("insn","mov x29, sp")]), - Var("R29",Imm(64)), Var("R31",Imm(64))), Def(Tid(780, "%0000030c"), - Attrs([Attr("address","0x7C8"), Attr("insn","str x19, [sp, #0x10]")]), - Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(16,64)),Var("R19",Imm(64)),LittleEndian(),64)), -Def(Tid(785, "%00000311"), Attrs([Attr("address","0x7CC"), -Attr("insn","adrp x19, #69632")]), Var("R19",Imm(64)), Int(69632,64)), -Def(Tid(792, "%00000318"), Attrs([Attr("address","0x7D0"), -Attr("insn","ldrb w0, [x19, #0x10]")]), Var("R0",Imm(64)), -UNSIGNED(64,Load(Var("mem",Mem(64,8)),PLUS(Var("R19",Imm(64)),Int(16,64)),LittleEndian(),8)))]), -Jmps([Goto(Tid(799, "%0000031f"), Attrs([Attr("address","0x7D4"), -Attr("insn","cbnz w0, #0x28")]), - NEQ(Extract(31,0,Var("R0",Imm(64))),Int(0,32)), -Direct(Tid(797, "%0000031d"))), Goto(Tid(1_835, "%0000072b"), Attrs([]), - Int(1,1), Direct(Tid(1_117, "%0000045d")))])), Blk(Tid(1_117, "%0000045d"), - Attrs([Attr("address","0x7D8")]), Phis([]), -Defs([Def(Tid(1_120, "%00000460"), Attrs([Attr("address","0x7D8"), -Attr("insn","adrp x0, #65536")]), Var("R0",Imm(64)), Int(65536,64)), -Def(Tid(1_127, "%00000467"), Attrs([Attr("address","0x7DC"), -Attr("insn","ldr x0, [x0, #0xfe0]")]), Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(4064,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(1_133, "%0000046d"), Attrs([Attr("address","0x7E0"), -Attr("insn","cbz x0, #0x10")]), EQ(Var("R0",Imm(64)),Int(0,64)), -Direct(Tid(1_131, "%0000046b"))), Goto(Tid(1_836, "%0000072c"), Attrs([]), - Int(1,1), Direct(Tid(1_156, "%00000484")))])), Blk(Tid(1_156, "%00000484"), - Attrs([Attr("address","0x7E4")]), Phis([]), -Defs([Def(Tid(1_159, "%00000487"), Attrs([Attr("address","0x7E4"), -Attr("insn","adrp x0, #69632")]), Var("R0",Imm(64)), Int(69632,64)), -Def(Tid(1_166, "%0000048e"), Attrs([Attr("address","0x7E8"), -Attr("insn","ldr x0, [x0, #0x8]")]), Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(1_171, "%00000493"), Attrs([Attr("address","0x7EC"), -Attr("insn","bl #-0x17c")]), Var("R30",Imm(64)), Int(2032,64))]), -Jmps([Call(Tid(1_174, "%00000496"), Attrs([Attr("address","0x7EC"), -Attr("insn","bl #-0x17c")]), Int(1,1), -(Direct(Tid(1_833, "@__cxa_finalize")),Direct(Tid(1_131, "%0000046b"))))])), -Blk(Tid(1_131, "%0000046b"), Attrs([Attr("address","0x7F0")]), Phis([]), -Defs([Def(Tid(1_139, "%00000473"), Attrs([Attr("address","0x7F0"), -Attr("insn","bl #-0xa0")]), Var("R30",Imm(64)), Int(2036,64))]), -Jmps([Call(Tid(1_141, "%00000475"), Attrs([Attr("address","0x7F0"), -Attr("insn","bl #-0xa0")]), Int(1,1), -(Direct(Tid(1_847, "@deregister_tm_clones")),Direct(Tid(1_143, "%00000477"))))])), -Blk(Tid(1_143, "%00000477"), Attrs([Attr("address","0x7F4")]), Phis([]), -Defs([Def(Tid(1_146, "%0000047a"), Attrs([Attr("address","0x7F4"), -Attr("insn","mov w0, #0x1")]), Var("R0",Imm(64)), Int(1,64)), -Def(Tid(1_154, "%00000482"), Attrs([Attr("address","0x7F8"), -Attr("insn","strb w0, [x19, #0x10]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R19",Imm(64)),Int(16,64)),Extract(7,0,Var("R0",Imm(64))),LittleEndian(),8))]), -Jmps([Goto(Tid(1_837, "%0000072d"), Attrs([]), Int(1,1), -Direct(Tid(797, "%0000031d")))])), Blk(Tid(797, "%0000031d"), - Attrs([Attr("address","0x7FC")]), Phis([]), Defs([Def(Tid(807, "%00000327"), - Attrs([Attr("address","0x7FC"), Attr("insn","ldr x19, [sp, #0x10]")]), - Var("R19",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(16,64)),LittleEndian(),64)), -Def(Tid(814, "%0000032e"), Attrs([Attr("address","0x800"), -Attr("insn","ldp x29, x30, [sp], #0x20")]), Var("R29",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(819, "%00000333"), Attrs([Attr("address","0x800"), -Attr("insn","ldp x29, x30, [sp], #0x20")]), Var("R30",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(823, "%00000337"), Attrs([Attr("address","0x800"), -Attr("insn","ldp x29, x30, [sp], #0x20")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(32,64)))]), Jmps([Call(Tid(828, "%0000033c"), - Attrs([Attr("address","0x804"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), Sub(Tid(1_838, "@__libc_start_main"), - Attrs([Attr("c.proto","signed (*)(signed (*)(signed , char** , char** );* main, signed , char** , \nvoid* auxv)"), -Attr("address","0x660"), Attr("stub","()")]), "__libc_start_main", - Args([Arg(Tid(1_861, "%00000745"), - Attrs([Attr("c.layout","**[ : 64]"), -Attr("c.data","Top:u64 ptr ptr"), -Attr("c.type","signed (*)(signed , char** , char** );*")]), - Var("__libc_start_main_main",Imm(64)), Var("R0",Imm(64)), In()), -Arg(Tid(1_862, "%00000746"), Attrs([Attr("c.layout","[signed : 32]"), -Attr("c.data","Top:u32"), Attr("c.type","signed")]), - Var("__libc_start_main_arg2",Imm(32)), LOW(32,Var("R1",Imm(64))), In()), -Arg(Tid(1_863, "%00000747"), Attrs([Attr("c.layout","**[char : 8]"), -Attr("c.data","Top:u8 ptr ptr"), Attr("c.type","char**")]), - Var("__libc_start_main_arg3",Imm(64)), Var("R2",Imm(64)), Both()), -Arg(Tid(1_864, "%00000748"), Attrs([Attr("c.layout","*[ : 8]"), -Attr("c.data","{} ptr"), Attr("c.type","void*")]), - Var("__libc_start_main_auxv",Imm(64)), Var("R3",Imm(64)), Both()), -Arg(Tid(1_865, "%00000749"), Attrs([Attr("c.layout","[signed : 32]"), -Attr("c.data","Top:u32"), Attr("c.type","signed")]), - Var("__libc_start_main_result",Imm(32)), LOW(32,Var("R0",Imm(64))), -Out())]), Blks([Blk(Tid(579, "@__libc_start_main"), - Attrs([Attr("address","0x660")]), Phis([]), -Defs([Def(Tid(1_446, "%000005a6"), Attrs([Attr("address","0x660"), -Attr("insn","adrp x16, #65536")]), Var("R16",Imm(64)), Int(65536,64)), -Def(Tid(1_453, "%000005ad"), Attrs([Attr("address","0x664"), -Attr("insn","ldr x17, [x16, #0xf98]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(3992,64)),LittleEndian(),64)), -Def(Tid(1_459, "%000005b3"), Attrs([Attr("address","0x668"), -Attr("insn","add x16, x16, #0xf98")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(3992,64)))]), Jmps([Call(Tid(1_464, "%000005b8"), - Attrs([Attr("address","0x66C"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), Sub(Tid(1_839, "@_fini"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x8B0")]), - "_fini", Args([Arg(Tid(1_866, "%0000074a"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("_fini_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(31, "@_fini"), - Attrs([Attr("address","0x8B0")]), Phis([]), Defs([Def(Tid(37, "%00000025"), - Attrs([Attr("address","0x8B4"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("#0",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(18446744073709551600,64))), -Def(Tid(43, "%0000002b"), Attrs([Attr("address","0x8B4"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("#0",Imm(64)),Var("R29",Imm(64)),LittleEndian(),64)), -Def(Tid(49, "%00000031"), Attrs([Attr("address","0x8B4"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("#0",Imm(64)),Int(8,64)),Var("R30",Imm(64)),LittleEndian(),64)), -Def(Tid(53, "%00000035"), Attrs([Attr("address","0x8B4"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("R31",Imm(64)), -Var("#0",Imm(64))), Def(Tid(59, "%0000003b"), Attrs([Attr("address","0x8B8"), -Attr("insn","mov x29, sp")]), Var("R29",Imm(64)), Var("R31",Imm(64))), -Def(Tid(66, "%00000042"), Attrs([Attr("address","0x8BC"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R29",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(71, "%00000047"), Attrs([Attr("address","0x8BC"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R30",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(75, "%0000004b"), Attrs([Attr("address","0x8BC"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(16,64)))]), Jmps([Call(Tid(80, "%00000050"), - Attrs([Attr("address","0x8C0"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), Sub(Tid(1_840, "@_init"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x628")]), - "_init", Args([Arg(Tid(1_867, "%0000074b"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("_init_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(1_624, "@_init"), - Attrs([Attr("address","0x628")]), Phis([]), -Defs([Def(Tid(1_630, "%0000065e"), Attrs([Attr("address","0x62C"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("#6",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(18446744073709551600,64))), -Def(Tid(1_636, "%00000664"), Attrs([Attr("address","0x62C"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("#6",Imm(64)),Var("R29",Imm(64)),LittleEndian(),64)), -Def(Tid(1_642, "%0000066a"), Attrs([Attr("address","0x62C"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("#6",Imm(64)),Int(8,64)),Var("R30",Imm(64)),LittleEndian(),64)), -Def(Tid(1_646, "%0000066e"), Attrs([Attr("address","0x62C"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("R31",Imm(64)), -Var("#6",Imm(64))), Def(Tid(1_652, "%00000674"), - Attrs([Attr("address","0x630"), Attr("insn","mov x29, sp")]), - Var("R29",Imm(64)), Var("R31",Imm(64))), Def(Tid(1_657, "%00000679"), - Attrs([Attr("address","0x634"), Attr("insn","bl #0x100")]), - Var("R30",Imm(64)), Int(1592,64))]), Jmps([Call(Tid(1_659, "%0000067b"), - Attrs([Attr("address","0x634"), Attr("insn","bl #0x100")]), Int(1,1), -(Direct(Tid(1_845, "@call_weak_fn")),Direct(Tid(1_661, "%0000067d"))))])), -Blk(Tid(1_661, "%0000067d"), Attrs([Attr("address","0x638")]), Phis([]), -Defs([Def(Tid(1_666, "%00000682"), Attrs([Attr("address","0x638"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R29",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(1_671, "%00000687"), Attrs([Attr("address","0x638"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R30",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(1_675, "%0000068b"), Attrs([Attr("address","0x638"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(16,64)))]), Jmps([Call(Tid(1_680, "%00000690"), - Attrs([Attr("address","0x63C"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), Sub(Tid(1_841, "@_start"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x700"), -Attr("entry-point","()")]), "_start", Args([Arg(Tid(1_868, "%0000074c"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("_start_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(516, "@_start"), - Attrs([Attr("address","0x700")]), Phis([]), Defs([Def(Tid(521, "%00000209"), - Attrs([Attr("address","0x704"), Attr("insn","mov x29, #0x0")]), - Var("R29",Imm(64)), Int(0,64)), Def(Tid(526, "%0000020e"), - Attrs([Attr("address","0x708"), Attr("insn","mov x30, #0x0")]), - Var("R30",Imm(64)), Int(0,64)), Def(Tid(532, "%00000214"), - Attrs([Attr("address","0x70C"), Attr("insn","mov x5, x0")]), - Var("R5",Imm(64)), Var("R0",Imm(64))), Def(Tid(539, "%0000021b"), - Attrs([Attr("address","0x710"), Attr("insn","ldr x1, [sp]")]), - Var("R1",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(545, "%00000221"), Attrs([Attr("address","0x714"), -Attr("insn","add x2, sp, #0x8")]), Var("R2",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(8,64))), Def(Tid(551, "%00000227"), - Attrs([Attr("address","0x718"), Attr("insn","mov x6, sp")]), - Var("R6",Imm(64)), Var("R31",Imm(64))), Def(Tid(556, "%0000022c"), - Attrs([Attr("address","0x71C"), Attr("insn","adrp x0, #65536")]), - Var("R0",Imm(64)), Int(65536,64)), Def(Tid(563, "%00000233"), - Attrs([Attr("address","0x720"), Attr("insn","ldr x0, [x0, #0xff0]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(4080,64)),LittleEndian(),64)), -Def(Tid(568, "%00000238"), Attrs([Attr("address","0x724"), -Attr("insn","mov x3, #0x0")]), Var("R3",Imm(64)), Int(0,64)), -Def(Tid(573, "%0000023d"), Attrs([Attr("address","0x728"), -Attr("insn","mov x4, #0x0")]), Var("R4",Imm(64)), Int(0,64)), -Def(Tid(578, "%00000242"), Attrs([Attr("address","0x72C"), -Attr("insn","bl #-0xcc")]), Var("R30",Imm(64)), Int(1840,64))]), -Jmps([Call(Tid(581, "%00000245"), Attrs([Attr("address","0x72C"), -Attr("insn","bl #-0xcc")]), Int(1,1), -(Direct(Tid(1_838, "@__libc_start_main")),Direct(Tid(583, "%00000247"))))])), -Blk(Tid(583, "%00000247"), Attrs([Attr("address","0x730")]), Phis([]), -Defs([Def(Tid(586, "%0000024a"), Attrs([Attr("address","0x730"), -Attr("insn","bl #-0x90")]), Var("R30",Imm(64)), Int(1844,64))]), -Jmps([Call(Tid(589, "%0000024d"), Attrs([Attr("address","0x730"), -Attr("insn","bl #-0x90")]), Int(1,1), -(Direct(Tid(1_844, "@abort")),Direct(Tid(1_842, "%00000732"))))])), -Blk(Tid(1_842, "%00000732"), Attrs([]), Phis([]), Defs([]), -Jmps([Call(Tid(1_843, "%00000733"), Attrs([]), Int(1,1), -(Direct(Tid(1_845, "@call_weak_fn")),))]))])), Sub(Tid(1_844, "@abort"), - Attrs([Attr("noreturn","()"), Attr("c.proto","void (*)(void)"), -Attr("address","0x6A0"), Attr("stub","()")]), "abort", Args([]), -Blks([Blk(Tid(587, "@abort"), Attrs([Attr("address","0x6A0")]), Phis([]), -Defs([Def(Tid(1_534, "%000005fe"), Attrs([Attr("address","0x6A0"), -Attr("insn","adrp x16, #65536")]), Var("R16",Imm(64)), Int(65536,64)), -Def(Tid(1_541, "%00000605"), Attrs([Attr("address","0x6A4"), -Attr("insn","ldr x17, [x16, #0xfb8]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(4024,64)),LittleEndian(),64)), -Def(Tid(1_547, "%0000060b"), Attrs([Attr("address","0x6A8"), -Attr("insn","add x16, x16, #0xfb8")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(4024,64)))]), Jmps([Call(Tid(1_552, "%00000610"), - Attrs([Attr("address","0x6AC"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), Sub(Tid(1_845, "@call_weak_fn"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x734")]), - "call_weak_fn", Args([Arg(Tid(1_869, "%0000074d"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("call_weak_fn_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(591, "@call_weak_fn"), - Attrs([Attr("address","0x734")]), Phis([]), Defs([Def(Tid(594, "%00000252"), - Attrs([Attr("address","0x734"), Attr("insn","adrp x0, #65536")]), - Var("R0",Imm(64)), Int(65536,64)), Def(Tid(601, "%00000259"), - Attrs([Attr("address","0x738"), Attr("insn","ldr x0, [x0, #0xfe8]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(4072,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(607, "%0000025f"), Attrs([Attr("address","0x73C"), -Attr("insn","cbz x0, #0x8")]), EQ(Var("R0",Imm(64)),Int(0,64)), -Direct(Tid(605, "%0000025d"))), Goto(Tid(1_846, "%00000736"), Attrs([]), - Int(1,1), Direct(Tid(1_236, "%000004d4")))])), Blk(Tid(605, "%0000025d"), - Attrs([Attr("address","0x744")]), Phis([]), Defs([]), -Jmps([Call(Tid(613, "%00000265"), Attrs([Attr("address","0x744"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))])), -Blk(Tid(1_236, "%000004d4"), Attrs([Attr("address","0x740")]), Phis([]), -Defs([]), Jmps([Goto(Tid(1_239, "%000004d7"), Attrs([Attr("address","0x740"), -Attr("insn","b #-0xb0")]), Int(1,1), -Direct(Tid(1_237, "@__gmon_start__")))])), Blk(Tid(1_237, "@__gmon_start__"), - Attrs([Attr("address","0x690")]), Phis([]), -Defs([Def(Tid(1_512, "%000005e8"), Attrs([Attr("address","0x690"), -Attr("insn","adrp x16, #65536")]), Var("R16",Imm(64)), Int(65536,64)), -Def(Tid(1_519, "%000005ef"), Attrs([Attr("address","0x694"), -Attr("insn","ldr x17, [x16, #0xfb0]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(4016,64)),LittleEndian(),64)), -Def(Tid(1_525, "%000005f5"), Attrs([Attr("address","0x698"), -Attr("insn","add x16, x16, #0xfb0")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(4016,64)))]), Jmps([Call(Tid(1_530, "%000005fa"), - Attrs([Attr("address","0x69C"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), -Sub(Tid(1_847, "@deregister_tm_clones"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x750")]), - "deregister_tm_clones", Args([Arg(Tid(1_870, "%0000074e"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("deregister_tm_clones_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(619, "@deregister_tm_clones"), - Attrs([Attr("address","0x750")]), Phis([]), Defs([Def(Tid(622, "%0000026e"), - Attrs([Attr("address","0x750"), Attr("insn","adrp x0, #69632")]), - Var("R0",Imm(64)), Int(69632,64)), Def(Tid(628, "%00000274"), - Attrs([Attr("address","0x754"), Attr("insn","add x0, x0, #0x10")]), - Var("R0",Imm(64)), PLUS(Var("R0",Imm(64)),Int(16,64))), -Def(Tid(633, "%00000279"), Attrs([Attr("address","0x758"), -Attr("insn","adrp x1, #69632")]), Var("R1",Imm(64)), Int(69632,64)), -Def(Tid(639, "%0000027f"), Attrs([Attr("address","0x75C"), -Attr("insn","add x1, x1, #0x10")]), Var("R1",Imm(64)), -PLUS(Var("R1",Imm(64)),Int(16,64))), Def(Tid(645, "%00000285"), - Attrs([Attr("address","0x760"), Attr("insn","cmp x1, x0")]), - Var("#1",Imm(64)), NOT(Var("R0",Imm(64)))), Def(Tid(650, "%0000028a"), - Attrs([Attr("address","0x760"), Attr("insn","cmp x1, x0")]), - Var("#2",Imm(64)), PLUS(Var("R1",Imm(64)),NOT(Var("R0",Imm(64))))), -Def(Tid(656, "%00000290"), Attrs([Attr("address","0x760"), -Attr("insn","cmp x1, x0")]), Var("VF",Imm(1)), -NEQ(SIGNED(65,PLUS(Var("#2",Imm(64)),Int(1,64))),PLUS(PLUS(SIGNED(65,Var("R1",Imm(64))),SIGNED(65,Var("#1",Imm(64)))),Int(1,65)))), -Def(Tid(662, "%00000296"), Attrs([Attr("address","0x760"), -Attr("insn","cmp x1, x0")]), Var("CF",Imm(1)), -NEQ(UNSIGNED(65,PLUS(Var("#2",Imm(64)),Int(1,64))),PLUS(PLUS(UNSIGNED(65,Var("R1",Imm(64))),UNSIGNED(65,Var("#1",Imm(64)))),Int(1,65)))), -Def(Tid(666, "%0000029a"), Attrs([Attr("address","0x760"), -Attr("insn","cmp x1, x0")]), Var("ZF",Imm(1)), -EQ(PLUS(Var("#2",Imm(64)),Int(1,64)),Int(0,64))), Def(Tid(670, "%0000029e"), - Attrs([Attr("address","0x760"), Attr("insn","cmp x1, x0")]), - Var("NF",Imm(1)), Extract(63,63,PLUS(Var("#2",Imm(64)),Int(1,64))))]), -Jmps([Goto(Tid(676, "%000002a4"), Attrs([Attr("address","0x764"), -Attr("insn","b.eq #0x18")]), EQ(Var("ZF",Imm(1)),Int(1,1)), -Direct(Tid(674, "%000002a2"))), Goto(Tid(1_848, "%00000738"), Attrs([]), - Int(1,1), Direct(Tid(1_206, "%000004b6")))])), Blk(Tid(1_206, "%000004b6"), - Attrs([Attr("address","0x768")]), Phis([]), -Defs([Def(Tid(1_209, "%000004b9"), Attrs([Attr("address","0x768"), -Attr("insn","adrp x1, #65536")]), Var("R1",Imm(64)), Int(65536,64)), -Def(Tid(1_216, "%000004c0"), Attrs([Attr("address","0x76C"), -Attr("insn","ldr x1, [x1, #0xfd8]")]), Var("R1",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R1",Imm(64)),Int(4056,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(1_221, "%000004c5"), Attrs([Attr("address","0x770"), -Attr("insn","cbz x1, #0xc")]), EQ(Var("R1",Imm(64)),Int(0,64)), -Direct(Tid(674, "%000002a2"))), Goto(Tid(1_849, "%00000739"), Attrs([]), - Int(1,1), Direct(Tid(1_225, "%000004c9")))])), Blk(Tid(674, "%000002a2"), - Attrs([Attr("address","0x77C")]), Phis([]), Defs([]), -Jmps([Call(Tid(682, "%000002aa"), Attrs([Attr("address","0x77C"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))])), -Blk(Tid(1_225, "%000004c9"), Attrs([Attr("address","0x774")]), Phis([]), -Defs([Def(Tid(1_229, "%000004cd"), Attrs([Attr("address","0x774"), -Attr("insn","mov x16, x1")]), Var("R16",Imm(64)), Var("R1",Imm(64)))]), -Jmps([Call(Tid(1_234, "%000004d2"), Attrs([Attr("address","0x778"), -Attr("insn","br x16")]), Int(1,1), (Indirect(Var("R16",Imm(64))),))]))])), -Sub(Tid(1_850, "@frame_dummy"), Attrs([Attr("c.proto","signed (*)(void)"), -Attr("address","0x810")]), "frame_dummy", Args([Arg(Tid(1_871, "%0000074f"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("frame_dummy_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(834, "@frame_dummy"), - Attrs([Attr("address","0x810")]), Phis([]), Defs([]), -Jmps([Call(Tid(836, "%00000344"), Attrs([Attr("address","0x810"), -Attr("insn","b #-0x90")]), Int(1,1), -(Direct(Tid(1_855, "@register_tm_clones")),))]))])), Sub(Tid(1_851, "@free"), - Attrs([Attr("c.proto","void (*)(void* ptr)"), Attr("address","0x6B0"), -Attr("stub","()")]), "free", Args([Arg(Tid(1_872, "%00000750"), - Attrs([Attr("c.layout","*[ : 8]"), Attr("c.data","{} ptr"), -Attr("c.type","void*")]), Var("free_ptr",Imm(64)), Var("R0",Imm(64)), -Both())]), Blks([Blk(Tid(1_073, "@free"), Attrs([Attr("address","0x6B0")]), - Phis([]), Defs([Def(Tid(1_556, "%00000614"), Attrs([Attr("address","0x6B0"), -Attr("insn","adrp x16, #65536")]), Var("R16",Imm(64)), Int(65536,64)), -Def(Tid(1_563, "%0000061b"), Attrs([Attr("address","0x6B4"), -Attr("insn","ldr x17, [x16, #0xfc0]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(4032,64)),LittleEndian(),64)), -Def(Tid(1_569, "%00000621"), Attrs([Attr("address","0x6B8"), -Attr("insn","add x16, x16, #0xfc0")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(4032,64)))]), Jmps([Call(Tid(1_574, "%00000626"), - Attrs([Attr("address","0x6BC"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), Sub(Tid(1_852, "@main"), - Attrs([Attr("c.proto","signed (*)(signed argc, const char** argv)"), -Attr("address","0x814")]), "main", Args([Arg(Tid(1_873, "%00000751"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("main_argc",Imm(32)), -LOW(32,Var("R0",Imm(64))), In()), Arg(Tid(1_874, "%00000752"), - Attrs([Attr("c.layout","**[char : 8]"), Attr("c.data","Top:u8 ptr ptr"), -Attr("c.type"," const char**")]), Var("main_argv",Imm(64)), -Var("R1",Imm(64)), Both()), Arg(Tid(1_875, "%00000753"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("main_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(838, "@main"), - Attrs([Attr("address","0x814")]), Phis([]), Defs([Def(Tid(842, "%0000034a"), - Attrs([Attr("address","0x814"), -Attr("insn","stp x29, x30, [sp, #-0x30]!")]), Var("#4",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(18446744073709551568,64))), -Def(Tid(848, "%00000350"), Attrs([Attr("address","0x814"), -Attr("insn","stp x29, x30, [sp, #-0x30]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("#4",Imm(64)),Var("R29",Imm(64)),LittleEndian(),64)), -Def(Tid(854, "%00000356"), Attrs([Attr("address","0x814"), -Attr("insn","stp x29, x30, [sp, #-0x30]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("#4",Imm(64)),Int(8,64)),Var("R30",Imm(64)),LittleEndian(),64)), -Def(Tid(858, "%0000035a"), Attrs([Attr("address","0x814"), -Attr("insn","stp x29, x30, [sp, #-0x30]!")]), Var("R31",Imm(64)), -Var("#4",Imm(64))), Def(Tid(864, "%00000360"), - Attrs([Attr("address","0x818"), Attr("insn","mov x29, sp")]), - Var("R29",Imm(64)), Var("R31",Imm(64))), Def(Tid(869, "%00000365"), - Attrs([Attr("address","0x81C"), Attr("insn","mov x0, #0x1")]), - Var("R0",Imm(64)), Int(1,64)), Def(Tid(874, "%0000036a"), - Attrs([Attr("address","0x820"), Attr("insn","bl #-0x1a0")]), - Var("R30",Imm(64)), Int(2084,64))]), Jmps([Call(Tid(877, "%0000036d"), - Attrs([Attr("address","0x820"), Attr("insn","bl #-0x1a0")]), Int(1,1), -(Direct(Tid(1_853, "@malloc")),Direct(Tid(879, "%0000036f"))))])), -Blk(Tid(879, "%0000036f"), Attrs([Attr("address","0x824")]), Phis([]), -Defs([Def(Tid(885, "%00000375"), Attrs([Attr("address","0x824"), -Attr("insn","str x0, [sp, #0x20]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(32,64)),Var("R0",Imm(64)),LittleEndian(),64)), -Def(Tid(890, "%0000037a"), Attrs([Attr("address","0x828"), -Attr("insn","mov x0, #0x4")]), Var("R0",Imm(64)), Int(4,64)), -Def(Tid(895, "%0000037f"), Attrs([Attr("address","0x82C"), -Attr("insn","bl #-0x1ac")]), Var("R30",Imm(64)), Int(2096,64))]), -Jmps([Call(Tid(897, "%00000381"), Attrs([Attr("address","0x82C"), -Attr("insn","bl #-0x1ac")]), Int(1,1), -(Direct(Tid(1_853, "@malloc")),Direct(Tid(899, "%00000383"))))])), -Blk(Tid(899, "%00000383"), Attrs([Attr("address","0x830")]), Phis([]), -Defs([Def(Tid(905, "%00000389"), Attrs([Attr("address","0x830"), -Attr("insn","str x0, [sp, #0x28]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(40,64)),Var("R0",Imm(64)),LittleEndian(),64)), -Def(Tid(910, "%0000038e"), Attrs([Attr("address","0x834"), -Attr("insn","mov w0, #0xa")]), Var("R0",Imm(64)), Int(10,64)), -Def(Tid(918, "%00000396"), Attrs([Attr("address","0x838"), -Attr("insn","str w0, [sp, #0x1c]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(28,64)),Extract(31,0,Var("R0",Imm(64))),LittleEndian(),32)), -Def(Tid(925, "%0000039d"), Attrs([Attr("address","0x83C"), -Attr("insn","ldr x0, [sp, #0x20]")]), Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(32,64)),LittleEndian(),64)), -Def(Tid(930, "%000003a2"), Attrs([Attr("address","0x840"), -Attr("insn","mov w1, #0x41")]), Var("R1",Imm(64)), Int(65,64)), -Def(Tid(938, "%000003aa"), Attrs([Attr("address","0x844"), -Attr("insn","strb w1, [x0]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("R0",Imm(64)),Extract(7,0,Var("R1",Imm(64))),LittleEndian(),8)), -Def(Tid(945, "%000003b1"), Attrs([Attr("address","0x848"), -Attr("insn","ldr x0, [sp, #0x28]")]), Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(40,64)),LittleEndian(),64)), -Def(Tid(950, "%000003b6"), Attrs([Attr("address","0x84C"), -Attr("insn","mov w1, #0x2a")]), Var("R1",Imm(64)), Int(42,64)), -Def(Tid(958, "%000003be"), Attrs([Attr("address","0x850"), -Attr("insn","str w1, [x0]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("R0",Imm(64)),Extract(31,0,Var("R1",Imm(64))),LittleEndian(),32)), -Def(Tid(965, "%000003c5"), Attrs([Attr("address","0x854"), -Attr("insn","ldr x0, [sp, #0x20]")]), Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(32,64)),LittleEndian(),64)), -Def(Tid(972, "%000003cc"), Attrs([Attr("address","0x858"), -Attr("insn","ldrb w0, [x0]")]), Var("R0",Imm(64)), -UNSIGNED(64,Load(Var("mem",Mem(64,8)),Var("R0",Imm(64)),LittleEndian(),8))), -Def(Tid(978, "%000003d2"), Attrs([Attr("address","0x85C"), -Attr("insn","mov w1, w0")]), Var("R1",Imm(64)), -UNSIGNED(64,Extract(31,0,Var("R0",Imm(64))))), Def(Tid(983, "%000003d7"), - Attrs([Attr("address","0x860"), Attr("insn","adrp x0, #0")]), - Var("R0",Imm(64)), Int(0,64)), Def(Tid(989, "%000003dd"), - Attrs([Attr("address","0x864"), Attr("insn","add x0, x0, #0x8d0")]), - Var("R0",Imm(64)), PLUS(Var("R0",Imm(64)),Int(2256,64))), -Def(Tid(994, "%000003e2"), Attrs([Attr("address","0x868"), -Attr("insn","bl #-0x1a8")]), Var("R30",Imm(64)), Int(2156,64))]), -Jmps([Call(Tid(997, "%000003e5"), Attrs([Attr("address","0x868"), -Attr("insn","bl #-0x1a8")]), Int(1,1), -(Direct(Tid(1_854, "@printf")),Direct(Tid(999, "%000003e7"))))])), -Blk(Tid(999, "%000003e7"), Attrs([Attr("address","0x86C")]), Phis([]), -Defs([Def(Tid(1_004, "%000003ec"), Attrs([Attr("address","0x86C"), -Attr("insn","ldr x0, [sp, #0x28]")]), Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(40,64)),LittleEndian(),64)), -Def(Tid(1_011, "%000003f3"), Attrs([Attr("address","0x870"), -Attr("insn","ldr w0, [x0]")]), Var("R0",Imm(64)), -UNSIGNED(64,Load(Var("mem",Mem(64,8)),Var("R0",Imm(64)),LittleEndian(),32))), -Def(Tid(1_017, "%000003f9"), Attrs([Attr("address","0x874"), -Attr("insn","mov w1, w0")]), Var("R1",Imm(64)), -UNSIGNED(64,Extract(31,0,Var("R0",Imm(64))))), Def(Tid(1_022, "%000003fe"), - Attrs([Attr("address","0x878"), Attr("insn","adrp x0, #0")]), - Var("R0",Imm(64)), Int(0,64)), Def(Tid(1_028, "%00000404"), - Attrs([Attr("address","0x87C"), Attr("insn","add x0, x0, #0x8e8")]), - Var("R0",Imm(64)), PLUS(Var("R0",Imm(64)),Int(2280,64))), -Def(Tid(1_033, "%00000409"), Attrs([Attr("address","0x880"), -Attr("insn","bl #-0x1c0")]), Var("R30",Imm(64)), Int(2180,64))]), -Jmps([Call(Tid(1_035, "%0000040b"), Attrs([Attr("address","0x880"), -Attr("insn","bl #-0x1c0")]), Int(1,1), -(Direct(Tid(1_854, "@printf")),Direct(Tid(1_037, "%0000040d"))))])), -Blk(Tid(1_037, "%0000040d"), Attrs([Attr("address","0x884")]), Phis([]), -Defs([Def(Tid(1_042, "%00000412"), Attrs([Attr("address","0x884"), -Attr("insn","ldr w1, [sp, #0x1c]")]), Var("R1",Imm(64)), -UNSIGNED(64,Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(28,64)),LittleEndian(),32))), -Def(Tid(1_047, "%00000417"), Attrs([Attr("address","0x888"), -Attr("insn","adrp x0, #0")]), Var("R0",Imm(64)), Int(0,64)), -Def(Tid(1_053, "%0000041d"), Attrs([Attr("address","0x88C"), -Attr("insn","add x0, x0, #0x8f8")]), Var("R0",Imm(64)), -PLUS(Var("R0",Imm(64)),Int(2296,64))), Def(Tid(1_058, "%00000422"), - Attrs([Attr("address","0x890"), Attr("insn","bl #-0x1d0")]), - Var("R30",Imm(64)), Int(2196,64))]), Jmps([Call(Tid(1_060, "%00000424"), - Attrs([Attr("address","0x890"), Attr("insn","bl #-0x1d0")]), Int(1,1), -(Direct(Tid(1_854, "@printf")),Direct(Tid(1_062, "%00000426"))))])), -Blk(Tid(1_062, "%00000426"), Attrs([Attr("address","0x894")]), Phis([]), -Defs([Def(Tid(1_067, "%0000042b"), Attrs([Attr("address","0x894"), -Attr("insn","ldr x0, [sp, #0x20]")]), Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(32,64)),LittleEndian(),64)), -Def(Tid(1_072, "%00000430"), Attrs([Attr("address","0x898"), -Attr("insn","bl #-0x1e8")]), Var("R30",Imm(64)), Int(2204,64))]), -Jmps([Call(Tid(1_075, "%00000433"), Attrs([Attr("address","0x898"), -Attr("insn","bl #-0x1e8")]), Int(1,1), -(Direct(Tid(1_851, "@free")),Direct(Tid(1_077, "%00000435"))))])), -Blk(Tid(1_077, "%00000435"), Attrs([Attr("address","0x89C")]), Phis([]), -Defs([Def(Tid(1_082, "%0000043a"), Attrs([Attr("address","0x89C"), -Attr("insn","ldr x0, [sp, #0x28]")]), Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(40,64)),LittleEndian(),64)), -Def(Tid(1_087, "%0000043f"), Attrs([Attr("address","0x8A0"), -Attr("insn","bl #-0x1f0")]), Var("R30",Imm(64)), Int(2212,64))]), -Jmps([Call(Tid(1_089, "%00000441"), Attrs([Attr("address","0x8A0"), -Attr("insn","bl #-0x1f0")]), Int(1,1), -(Direct(Tid(1_851, "@free")),Direct(Tid(1_091, "%00000443"))))])), -Blk(Tid(1_091, "%00000443"), Attrs([Attr("address","0x8A4")]), Phis([]), -Defs([Def(Tid(1_094, "%00000446"), Attrs([Attr("address","0x8A4"), -Attr("insn","mov w0, #0x0")]), Var("R0",Imm(64)), Int(0,64)), -Def(Tid(1_101, "%0000044d"), Attrs([Attr("address","0x8A8"), -Attr("insn","ldp x29, x30, [sp], #0x30")]), Var("R29",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(1_106, "%00000452"), Attrs([Attr("address","0x8A8"), -Attr("insn","ldp x29, x30, [sp], #0x30")]), Var("R30",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(1_110, "%00000456"), Attrs([Attr("address","0x8A8"), -Attr("insn","ldp x29, x30, [sp], #0x30")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(48,64)))]), Jmps([Call(Tid(1_115, "%0000045b"), - Attrs([Attr("address","0x8AC"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), Sub(Tid(1_853, "@malloc"), - Attrs([Attr("c.proto","void* (*)(unsigned long size)"), -Attr("address","0x680"), Attr("malloc","()"), Attr("stub","()")]), "malloc", - Args([Arg(Tid(1_876, "%00000754"), Attrs([Attr("alloc-size","()"), -Attr("c.layout","[unsigned long : 64]"), Attr("c.data","Top:u64"), -Attr("c.type","unsigned long")]), Var("malloc_size",Imm(64)), -Var("R0",Imm(64)), In()), Arg(Tid(1_877, "%00000755"), - Attrs([Attr("warn-unused","()"), Attr("c.layout","*[ : 8]"), -Attr("c.data","{} ptr"), Attr("c.type","void*")]), - Var("malloc_result",Imm(64)), Var("R0",Imm(64)), Out())]), -Blks([Blk(Tid(875, "@malloc"), Attrs([Attr("address","0x680")]), Phis([]), -Defs([Def(Tid(1_490, "%000005d2"), Attrs([Attr("address","0x680"), -Attr("insn","adrp x16, #65536")]), Var("R16",Imm(64)), Int(65536,64)), -Def(Tid(1_497, "%000005d9"), Attrs([Attr("address","0x684"), -Attr("insn","ldr x17, [x16, #0xfa8]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(4008,64)),LittleEndian(),64)), -Def(Tid(1_503, "%000005df"), Attrs([Attr("address","0x688"), -Attr("insn","add x16, x16, #0xfa8")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(4008,64)))]), Jmps([Call(Tid(1_508, "%000005e4"), - Attrs([Attr("address","0x68C"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), Sub(Tid(1_854, "@printf"), - Attrs([Attr("c.proto","signed (*)( const char restrict * format, ...)"), -Attr("address","0x6C0"), Attr("stub","()")]), "printf", - Args([Arg(Tid(1_878, "%00000756"), Attrs([Attr("format","\"printf\""), -Attr("c.layout","*[char : 8]"), Attr("c.data","Top:u8 ptr"), -Attr("c.type"," const char restrict *")]), Var("printf_format",Imm(64)), -Var("R0",Imm(64)), In()), Arg(Tid(1_879, "%00000757"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("printf_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(995, "@printf"), - Attrs([Attr("address","0x6C0")]), Phis([]), -Defs([Def(Tid(1_578, "%0000062a"), Attrs([Attr("address","0x6C0"), -Attr("insn","adrp x16, #65536")]), Var("R16",Imm(64)), Int(65536,64)), -Def(Tid(1_585, "%00000631"), Attrs([Attr("address","0x6C4"), -Attr("insn","ldr x17, [x16, #0xfc8]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(4040,64)),LittleEndian(),64)), -Def(Tid(1_591, "%00000637"), Attrs([Attr("address","0x6C8"), -Attr("insn","add x16, x16, #0xfc8")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(4040,64)))]), Jmps([Call(Tid(1_596, "%0000063c"), - Attrs([Attr("address","0x6CC"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), -Sub(Tid(1_855, "@register_tm_clones"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x780")]), - "register_tm_clones", Args([Arg(Tid(1_880, "%00000758"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("register_tm_clones_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(684, "@register_tm_clones"), Attrs([Attr("address","0x780")]), - Phis([]), Defs([Def(Tid(687, "%000002af"), Attrs([Attr("address","0x780"), -Attr("insn","adrp x0, #69632")]), Var("R0",Imm(64)), Int(69632,64)), -Def(Tid(693, "%000002b5"), Attrs([Attr("address","0x784"), -Attr("insn","add x0, x0, #0x10")]), Var("R0",Imm(64)), -PLUS(Var("R0",Imm(64)),Int(16,64))), Def(Tid(698, "%000002ba"), - Attrs([Attr("address","0x788"), Attr("insn","adrp x1, #69632")]), - Var("R1",Imm(64)), Int(69632,64)), Def(Tid(704, "%000002c0"), - Attrs([Attr("address","0x78C"), Attr("insn","add x1, x1, #0x10")]), - Var("R1",Imm(64)), PLUS(Var("R1",Imm(64)),Int(16,64))), -Def(Tid(711, "%000002c7"), Attrs([Attr("address","0x790"), -Attr("insn","sub x1, x1, x0")]), Var("R1",Imm(64)), -PLUS(PLUS(Var("R1",Imm(64)),NOT(Var("R0",Imm(64)))),Int(1,64))), -Def(Tid(717, "%000002cd"), Attrs([Attr("address","0x794"), -Attr("insn","lsr x2, x1, #63")]), Var("R2",Imm(64)), -Concat(Int(0,63),Extract(63,63,Var("R1",Imm(64))))), -Def(Tid(724, "%000002d4"), Attrs([Attr("address","0x798"), -Attr("insn","add x1, x2, x1, asr #3")]), Var("R1",Imm(64)), -PLUS(Var("R2",Imm(64)),ARSHIFT(Var("R1",Imm(64)),Int(3,3)))), -Def(Tid(730, "%000002da"), Attrs([Attr("address","0x79C"), -Attr("insn","asr x1, x1, #1")]), Var("R1",Imm(64)), -SIGNED(64,Extract(63,1,Var("R1",Imm(64)))))]), -Jmps([Goto(Tid(736, "%000002e0"), Attrs([Attr("address","0x7A0"), -Attr("insn","cbz x1, #0x18")]), EQ(Var("R1",Imm(64)),Int(0,64)), -Direct(Tid(734, "%000002de"))), Goto(Tid(1_856, "%00000740"), Attrs([]), - Int(1,1), Direct(Tid(1_176, "%00000498")))])), Blk(Tid(1_176, "%00000498"), - Attrs([Attr("address","0x7A4")]), Phis([]), -Defs([Def(Tid(1_179, "%0000049b"), Attrs([Attr("address","0x7A4"), -Attr("insn","adrp x2, #65536")]), Var("R2",Imm(64)), Int(65536,64)), -Def(Tid(1_186, "%000004a2"), Attrs([Attr("address","0x7A8"), -Attr("insn","ldr x2, [x2, #0xff8]")]), Var("R2",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R2",Imm(64)),Int(4088,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(1_191, "%000004a7"), Attrs([Attr("address","0x7AC"), -Attr("insn","cbz x2, #0xc")]), EQ(Var("R2",Imm(64)),Int(0,64)), -Direct(Tid(734, "%000002de"))), Goto(Tid(1_857, "%00000741"), Attrs([]), - Int(1,1), Direct(Tid(1_195, "%000004ab")))])), Blk(Tid(734, "%000002de"), - Attrs([Attr("address","0x7B8")]), Phis([]), Defs([]), -Jmps([Call(Tid(742, "%000002e6"), Attrs([Attr("address","0x7B8"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))])), -Blk(Tid(1_195, "%000004ab"), Attrs([Attr("address","0x7B0")]), Phis([]), -Defs([Def(Tid(1_199, "%000004af"), Attrs([Attr("address","0x7B0"), -Attr("insn","mov x16, x2")]), Var("R16",Imm(64)), Var("R2",Imm(64)))]), -Jmps([Call(Tid(1_204, "%000004b4"), Attrs([Attr("address","0x7B4"), -Attr("insn","br x16")]), Int(1,1), -(Indirect(Var("R16",Imm(64))),))]))]))]))) \ No newline at end of file diff --git a/src/test/correct/malloc_with_local/gcc/malloc_with_local.bir b/src/test/correct/malloc_with_local/gcc/malloc_with_local.bir deleted file mode 100644 index 332081cf8..000000000 --- a/src/test/correct/malloc_with_local/gcc/malloc_with_local.bir +++ /dev/null @@ -1,316 +0,0 @@ -00000742: program -00000729: sub __cxa_finalize(__cxa_finalize_result) -00000743: __cxa_finalize_result :: out u32 = low:32[R0] - -00000494: -000005bc: R16 := 0x10000 -000005c3: R17 := mem[R16 + 0xFA0, el]:u64 -000005c9: R16 := R16 + 0xFA0 -000005ce: call R17 with noreturn - -0000072a: sub __do_global_dtors_aux(__do_global_dtors_aux_result) -00000744: __do_global_dtors_aux_result :: out u32 = low:32[R0] - -000002ea: -000002ee: #3 := R31 - 0x20 -000002f4: mem := mem with [#3, el]:u64 <- R29 -000002fa: mem := mem with [#3 + 8, el]:u64 <- R30 -000002fe: R31 := #3 -00000304: R29 := R31 -0000030c: mem := mem with [R31 + 0x10, el]:u64 <- R19 -00000311: R19 := 0x11000 -00000318: R0 := pad:64[mem[R19 + 0x10]] -0000031f: when 31:0[R0] <> 0 goto %0000031d -0000072b: goto %0000045d - -0000045d: -00000460: R0 := 0x10000 -00000467: R0 := mem[R0 + 0xFE0, el]:u64 -0000046d: when R0 = 0 goto %0000046b -0000072c: goto %00000484 - -00000484: -00000487: R0 := 0x11000 -0000048e: R0 := mem[R0 + 8, el]:u64 -00000493: R30 := 0x7F0 -00000496: call @__cxa_finalize with return %0000046b - -0000046b: -00000473: R30 := 0x7F4 -00000475: call @deregister_tm_clones with return %00000477 - -00000477: -0000047a: R0 := 1 -00000482: mem := mem with [R19 + 0x10] <- 7:0[R0] -0000072d: goto %0000031d - -0000031d: -00000327: R19 := mem[R31 + 0x10, el]:u64 -0000032e: R29 := mem[R31, el]:u64 -00000333: R30 := mem[R31 + 8, el]:u64 -00000337: R31 := R31 + 0x20 -0000033c: call R30 with noreturn - -0000072e: sub __libc_start_main(__libc_start_main_main, __libc_start_main_arg2, __libc_start_main_arg3, __libc_start_main_auxv, __libc_start_main_result) -00000745: __libc_start_main_main :: in u64 = R0 -00000746: __libc_start_main_arg2 :: in u32 = low:32[R1] -00000747: __libc_start_main_arg3 :: in out u64 = R2 -00000748: __libc_start_main_auxv :: in out u64 = R3 -00000749: __libc_start_main_result :: out u32 = low:32[R0] - -00000243: -000005a6: R16 := 0x10000 -000005ad: R17 := mem[R16 + 0xF98, el]:u64 -000005b3: R16 := R16 + 0xF98 -000005b8: call R17 with noreturn - -0000072f: sub _fini(_fini_result) -0000074a: _fini_result :: out u32 = low:32[R0] - -0000001f: -00000025: #0 := R31 - 0x10 -0000002b: mem := mem with [#0, el]:u64 <- R29 -00000031: mem := mem with [#0 + 8, el]:u64 <- R30 -00000035: R31 := #0 -0000003b: R29 := R31 -00000042: R29 := mem[R31, el]:u64 -00000047: R30 := mem[R31 + 8, el]:u64 -0000004b: R31 := R31 + 0x10 -00000050: call R30 with noreturn - -00000730: sub _init(_init_result) -0000074b: _init_result :: out u32 = low:32[R0] - -00000658: -0000065e: #6 := R31 - 0x10 -00000664: mem := mem with [#6, el]:u64 <- R29 -0000066a: mem := mem with [#6 + 8, el]:u64 <- R30 -0000066e: R31 := #6 -00000674: R29 := R31 -00000679: R30 := 0x638 -0000067b: call @call_weak_fn with return %0000067d - -0000067d: -00000682: R29 := mem[R31, el]:u64 -00000687: R30 := mem[R31 + 8, el]:u64 -0000068b: R31 := R31 + 0x10 -00000690: call R30 with noreturn - -00000731: sub _start(_start_result) -0000074c: _start_result :: out u32 = low:32[R0] - -00000204: -00000209: R29 := 0 -0000020e: R30 := 0 -00000214: R5 := R0 -0000021b: R1 := mem[R31, el]:u64 -00000221: R2 := R31 + 8 -00000227: R6 := R31 -0000022c: R0 := 0x10000 -00000233: R0 := mem[R0 + 0xFF0, el]:u64 -00000238: R3 := 0 -0000023d: R4 := 0 -00000242: R30 := 0x730 -00000245: call @__libc_start_main with return %00000247 - -00000247: -0000024a: R30 := 0x734 -0000024d: call @abort with return %00000732 - -00000732: -00000733: call @call_weak_fn with noreturn - -00000734: sub abort() - - -0000024b: -000005fe: R16 := 0x10000 -00000605: R17 := mem[R16 + 0xFB8, el]:u64 -0000060b: R16 := R16 + 0xFB8 -00000610: call R17 with noreturn - -00000735: sub call_weak_fn(call_weak_fn_result) -0000074d: call_weak_fn_result :: out u32 = low:32[R0] - -0000024f: -00000252: R0 := 0x10000 -00000259: R0 := mem[R0 + 0xFE8, el]:u64 -0000025f: when R0 = 0 goto %0000025d -00000736: goto %000004d4 - -0000025d: -00000265: call R30 with noreturn - -000004d4: -000004d7: goto @__gmon_start__ - -000004d5: -000005e8: R16 := 0x10000 -000005ef: R17 := mem[R16 + 0xFB0, el]:u64 -000005f5: R16 := R16 + 0xFB0 -000005fa: call R17 with noreturn - -00000737: sub deregister_tm_clones(deregister_tm_clones_result) -0000074e: deregister_tm_clones_result :: out u32 = low:32[R0] - -0000026b: -0000026e: R0 := 0x11000 -00000274: R0 := R0 + 0x10 -00000279: R1 := 0x11000 -0000027f: R1 := R1 + 0x10 -00000285: #1 := ~R0 -0000028a: #2 := R1 + ~R0 -00000290: VF := extend:65[#2 + 1] <> extend:65[R1] + extend:65[#1] + 1 -00000296: CF := pad:65[#2 + 1] <> pad:65[R1] + pad:65[#1] + 1 -0000029a: ZF := #2 + 1 = 0 -0000029e: NF := 63:63[#2 + 1] -000002a4: when ZF goto %000002a2 -00000738: goto %000004b6 - -000004b6: -000004b9: R1 := 0x10000 -000004c0: R1 := mem[R1 + 0xFD8, el]:u64 -000004c5: when R1 = 0 goto %000002a2 -00000739: goto %000004c9 - -000002a2: -000002aa: call R30 with noreturn - -000004c9: -000004cd: R16 := R1 -000004d2: call R16 with noreturn - -0000073a: sub frame_dummy(frame_dummy_result) -0000074f: frame_dummy_result :: out u32 = low:32[R0] - -00000342: -00000344: call @register_tm_clones with noreturn - -0000073b: sub free(free_ptr) -00000750: free_ptr :: in out u64 = R0 - -00000431: -00000614: R16 := 0x10000 -0000061b: R17 := mem[R16 + 0xFC0, el]:u64 -00000621: R16 := R16 + 0xFC0 -00000626: call R17 with noreturn - -0000073c: sub main(main_argc, main_argv, main_result) -00000751: main_argc :: in u32 = low:32[R0] -00000752: main_argv :: in out u64 = R1 -00000753: main_result :: out u32 = low:32[R0] - -00000346: -0000034a: #4 := R31 - 0x30 -00000350: mem := mem with [#4, el]:u64 <- R29 -00000356: mem := mem with [#4 + 8, el]:u64 <- R30 -0000035a: R31 := #4 -00000360: R29 := R31 -00000365: R0 := 1 -0000036a: R30 := 0x824 -0000036d: call @malloc with return %0000036f - -0000036f: -00000375: mem := mem with [R31 + 0x20, el]:u64 <- R0 -0000037a: R0 := 4 -0000037f: R30 := 0x830 -00000381: call @malloc with return %00000383 - -00000383: -00000389: mem := mem with [R31 + 0x28, el]:u64 <- R0 -0000038e: R0 := 0xA -00000396: mem := mem with [R31 + 0x1C, el]:u32 <- 31:0[R0] -0000039d: R0 := mem[R31 + 0x20, el]:u64 -000003a2: R1 := 0x41 -000003aa: mem := mem with [R0] <- 7:0[R1] -000003b1: R0 := mem[R31 + 0x28, el]:u64 -000003b6: R1 := 0x2A -000003be: mem := mem with [R0, el]:u32 <- 31:0[R1] -000003c5: R0 := mem[R31 + 0x20, el]:u64 -000003cc: R0 := pad:64[mem[R0]] -000003d2: R1 := pad:64[31:0[R0]] -000003d7: R0 := 0 -000003dd: R0 := R0 + 0x8D0 -000003e2: R30 := 0x86C -000003e5: call @printf with return %000003e7 - -000003e7: -000003ec: R0 := mem[R31 + 0x28, el]:u64 -000003f3: R0 := pad:64[mem[R0, el]:u32] -000003f9: R1 := pad:64[31:0[R0]] -000003fe: R0 := 0 -00000404: R0 := R0 + 0x8E8 -00000409: R30 := 0x884 -0000040b: call @printf with return %0000040d - -0000040d: -00000412: R1 := pad:64[mem[R31 + 0x1C, el]:u32] -00000417: R0 := 0 -0000041d: R0 := R0 + 0x8F8 -00000422: R30 := 0x894 -00000424: call @printf with return %00000426 - -00000426: -0000042b: R0 := mem[R31 + 0x20, el]:u64 -00000430: R30 := 0x89C -00000433: call @free with return %00000435 - -00000435: -0000043a: R0 := mem[R31 + 0x28, el]:u64 -0000043f: R30 := 0x8A4 -00000441: call @free with return %00000443 - -00000443: -00000446: R0 := 0 -0000044d: R29 := mem[R31, el]:u64 -00000452: R30 := mem[R31 + 8, el]:u64 -00000456: R31 := R31 + 0x30 -0000045b: call R30 with noreturn - -0000073d: sub malloc(malloc_size, malloc_result) -00000754: malloc_size :: in u64 = R0 -00000755: malloc_result :: out u64 = R0 - -0000036b: -000005d2: R16 := 0x10000 -000005d9: R17 := mem[R16 + 0xFA8, el]:u64 -000005df: R16 := R16 + 0xFA8 -000005e4: call R17 with noreturn - -0000073e: sub printf(printf_format, printf_result) -00000756: printf_format :: in u64 = R0 -00000757: printf_result :: out u32 = low:32[R0] - -000003e3: -0000062a: R16 := 0x10000 -00000631: R17 := mem[R16 + 0xFC8, el]:u64 -00000637: R16 := R16 + 0xFC8 -0000063c: call R17 with noreturn - -0000073f: sub register_tm_clones(register_tm_clones_result) -00000758: register_tm_clones_result :: out u32 = low:32[R0] - -000002ac: -000002af: R0 := 0x11000 -000002b5: R0 := R0 + 0x10 -000002ba: R1 := 0x11000 -000002c0: R1 := R1 + 0x10 -000002c7: R1 := R1 + ~R0 + 1 -000002cd: R2 := 0.63:63[R1] -000002d4: R1 := R2 + (R1 ~>> 3) -000002da: R1 := extend:64[63:1[R1]] -000002e0: when R1 = 0 goto %000002de -00000740: goto %00000498 - -00000498: -0000049b: R2 := 0x10000 -000004a2: R2 := mem[R2 + 0xFF8, el]:u64 -000004a7: when R2 = 0 goto %000002de -00000741: goto %000004ab - -000002de: -000002e6: call R30 with noreturn - -000004ab: -000004af: R16 := R2 -000004b4: call R16 with noreturn diff --git a/src/test/correct/malloc_with_local/gcc/malloc_with_local.expected b/src/test/correct/malloc_with_local/gcc/malloc_with_local.expected index 36bd0bcd1..45449f446 100644 --- a/src/test/correct/malloc_with_local/gcc/malloc_with_local.expected +++ b/src/test/correct/malloc_with_local/gcc/malloc_with_local.expected @@ -2,6 +2,7 @@ var {:extern} Gamma_R0: bool; var {:extern} Gamma_R1: bool; var {:extern} Gamma_R16: bool; var {:extern} Gamma_R17: bool; +var {:extern} Gamma_R2: bool; var {:extern} Gamma_R29: bool; var {:extern} Gamma_R30: bool; var {:extern} Gamma_R31: bool; @@ -11,46 +12,23 @@ var {:extern} R0: bv64; var {:extern} R1: bv64; var {:extern} R16: bv64; var {:extern} R17: bv64; +var {:extern} R2: bv64; var {:extern} R29: bv64; var {:extern} R30: bv64; var {:extern} R31: bv64; var {:extern} mem: [bv64]bv8; var {:extern} stack: [bv64]bv8; const {:extern} $_IO_stdin_used_addr: bv64; -axiom ($_IO_stdin_used_addr == 2248bv64); -function {:extern} L(mem$in: [bv64]bv8, index: bv64) returns (bool) { - false -} - +axiom ($_IO_stdin_used_addr == 4196440bv64); function {:extern} {:bvbuiltin "bvadd"} bvadd64(bv64, bv64) returns (bv64); -function {:extern} gamma_load32(gammaMap: [bv64]bool, index: bv64) returns (bool) { - (gammaMap[bvadd64(index, 3bv64)] && (gammaMap[bvadd64(index, 2bv64)] && (gammaMap[bvadd64(index, 1bv64)] && gammaMap[index]))) -} - function {:extern} gamma_load64(gammaMap: [bv64]bool, index: bv64) returns (bool) { (gammaMap[bvadd64(index, 7bv64)] && (gammaMap[bvadd64(index, 6bv64)] && (gammaMap[bvadd64(index, 5bv64)] && (gammaMap[bvadd64(index, 4bv64)] && (gammaMap[bvadd64(index, 3bv64)] && (gammaMap[bvadd64(index, 2bv64)] && (gammaMap[bvadd64(index, 1bv64)] && gammaMap[index]))))))) } -function {:extern} gamma_load8(gammaMap: [bv64]bool, index: bv64) returns (bool) { - gammaMap[index] -} - -function {:extern} gamma_store32(gammaMap: [bv64]bool, index: bv64, value: bool) returns ([bv64]bool) { - gammaMap[index := value][bvadd64(index, 1bv64) := value][bvadd64(index, 2bv64) := value][bvadd64(index, 3bv64) := value] -} - function {:extern} gamma_store64(gammaMap: [bv64]bool, index: bv64, value: bool) returns ([bv64]bool) { gammaMap[index := value][bvadd64(index, 1bv64) := value][bvadd64(index, 2bv64) := value][bvadd64(index, 3bv64) := value][bvadd64(index, 4bv64) := value][bvadd64(index, 5bv64) := value][bvadd64(index, 6bv64) := value][bvadd64(index, 7bv64) := value] } -function {:extern} gamma_store8(gammaMap: [bv64]bool, index: bv64, value: bool) returns ([bv64]bool) { - gammaMap[index := value] -} - -function {:extern} memory_load32_le(memory: [bv64]bv8, index: bv64) returns (bv32) { - (memory[bvadd64(index, 3bv64)] ++ (memory[bvadd64(index, 2bv64)] ++ (memory[bvadd64(index, 1bv64)] ++ memory[index]))) -} - function {:extern} memory_load64_le(memory: [bv64]bv8, index: bv64) returns (bv64) { (memory[bvadd64(index, 7bv64)] ++ (memory[bvadd64(index, 6bv64)] ++ (memory[bvadd64(index, 5bv64)] ++ (memory[bvadd64(index, 4bv64)] ++ (memory[bvadd64(index, 3bv64)] ++ (memory[bvadd64(index, 2bv64)] ++ (memory[bvadd64(index, 1bv64)] ++ memory[index]))))))) } @@ -59,40 +37,26 @@ function {:extern} memory_load8_le(memory: [bv64]bv8, index: bv64) returns (bv8) memory[index] } -function {:extern} memory_store32_le(memory: [bv64]bv8, index: bv64, value: bv32) returns ([bv64]bv8) { - memory[index := value[8:0]][bvadd64(index, 1bv64) := value[16:8]][bvadd64(index, 2bv64) := value[24:16]][bvadd64(index, 3bv64) := value[32:24]] -} - function {:extern} memory_store64_le(memory: [bv64]bv8, index: bv64, value: bv64) returns ([bv64]bv8) { memory[index := value[8:0]][bvadd64(index, 1bv64) := value[16:8]][bvadd64(index, 2bv64) := value[24:16]][bvadd64(index, 3bv64) := value[32:24]][bvadd64(index, 4bv64) := value[40:32]][bvadd64(index, 5bv64) := value[48:40]][bvadd64(index, 6bv64) := value[56:48]][bvadd64(index, 7bv64) := value[64:56]] } -function {:extern} memory_store8_le(memory: [bv64]bv8, index: bv64, value: bv8) returns ([bv64]bv8) { - memory[index := value[8:0]] -} - -function {:extern} {:bvbuiltin "zero_extend 32"} zero_extend32_32(bv32) returns (bv64); -function {:extern} {:bvbuiltin "zero_extend 56"} zero_extend56_8(bv8) returns (bv64); procedure {:extern} rely(); modifies Gamma_mem, mem; ensures (Gamma_mem == old(Gamma_mem)); ensures (mem == old(mem)); - free ensures (memory_load64_le(mem, 2248bv64) == 131073bv64); - free ensures (memory_load64_le(mem, 2256bv64) == 8241983568019286100bv64); - free ensures (memory_load64_le(mem, 2264bv64) == 748482783423457568bv64); - free ensures (memory_load64_le(mem, 2272bv64) == 0bv64); - free ensures (memory_load64_le(mem, 2280bv64) == 2338615504306268244bv64); - free ensures (memory_load64_le(mem, 2288bv64) == 2924860384375657bv64); - free ensures (memory_load64_le(mem, 2296bv64) == 7017575154564032596bv64); - free ensures (memory_load64_le(mem, 2304bv64) == 7089063228440191084bv64); - free ensures (memory_load64_le(mem, 2312bv64) == 2675202446017455468bv64); - free ensures (memory_load8_le(mem, 2320bv64) == 100bv8); - free ensures (memory_load8_le(mem, 2321bv64) == 10bv8); - free ensures (memory_load8_le(mem, 2322bv64) == 0bv8); - free ensures (memory_load64_le(mem, 68992bv64) == 2064bv64); - free ensures (memory_load64_le(mem, 69000bv64) == 1984bv64); - free ensures (memory_load64_le(mem, 69616bv64) == 2068bv64); - free ensures (memory_load64_le(mem, 69640bv64) == 69640bv64); + free ensures (memory_load64_le(mem, 4196440bv64) == 131073bv64); + free ensures (memory_load64_le(mem, 4196448bv64) == 8241983568019286100bv64); + free ensures (memory_load64_le(mem, 4196456bv64) == 748482783423457568bv64); + free ensures (memory_load64_le(mem, 4196464bv64) == 0bv64); + free ensures (memory_load64_le(mem, 4196472bv64) == 2338615504306268244bv64); + free ensures (memory_load64_le(mem, 4196480bv64) == 2924860384375657bv64); + free ensures (memory_load64_le(mem, 4196488bv64) == 7017575154564032596bv64); + free ensures (memory_load64_le(mem, 4196496bv64) == 7089063228440191084bv64); + free ensures (memory_load64_le(mem, 4196504bv64) == 2675202446017455468bv64); + free ensures (memory_load8_le(mem, 4196512bv64) == 100bv8); + free ensures (memory_load8_le(mem, 4196513bv64) == 10bv8); + free ensures (memory_load8_le(mem, 4196514bv64) == 0bv8); procedure {:extern} rely_transitive(); modifies Gamma_mem, mem; @@ -110,278 +74,119 @@ procedure {:extern} rely_reflexive(); procedure {:extern} guarantee_reflexive(); modifies Gamma_mem, mem; -procedure #free_1712(); +procedure __printf_chk(); modifies Gamma_R16, Gamma_R17, R16, R17; - free requires (memory_load64_le(mem, 2248bv64) == 131073bv64); - free requires (memory_load64_le(mem, 2256bv64) == 8241983568019286100bv64); - free requires (memory_load64_le(mem, 2264bv64) == 748482783423457568bv64); - free requires (memory_load64_le(mem, 2272bv64) == 0bv64); - free requires (memory_load64_le(mem, 2280bv64) == 2338615504306268244bv64); - free requires (memory_load64_le(mem, 2288bv64) == 2924860384375657bv64); - free requires (memory_load64_le(mem, 2296bv64) == 7017575154564032596bv64); - free requires (memory_load64_le(mem, 2304bv64) == 7089063228440191084bv64); - free requires (memory_load64_le(mem, 2312bv64) == 2675202446017455468bv64); - free requires (memory_load8_le(mem, 2320bv64) == 100bv8); - free requires (memory_load8_le(mem, 2321bv64) == 10bv8); - free requires (memory_load8_le(mem, 2322bv64) == 0bv8); - free requires (memory_load64_le(mem, 68992bv64) == 2064bv64); - free requires (memory_load64_le(mem, 69000bv64) == 1984bv64); - free requires (memory_load64_le(mem, 69616bv64) == 2068bv64); - free requires (memory_load64_le(mem, 69640bv64) == 69640bv64); - free ensures (memory_load64_le(mem, 2248bv64) == 131073bv64); - free ensures (memory_load64_le(mem, 2256bv64) == 8241983568019286100bv64); - free ensures (memory_load64_le(mem, 2264bv64) == 748482783423457568bv64); - free ensures (memory_load64_le(mem, 2272bv64) == 0bv64); - free ensures (memory_load64_le(mem, 2280bv64) == 2338615504306268244bv64); - free ensures (memory_load64_le(mem, 2288bv64) == 2924860384375657bv64); - free ensures (memory_load64_le(mem, 2296bv64) == 7017575154564032596bv64); - free ensures (memory_load64_le(mem, 2304bv64) == 7089063228440191084bv64); - free ensures (memory_load64_le(mem, 2312bv64) == 2675202446017455468bv64); - free ensures (memory_load8_le(mem, 2320bv64) == 100bv8); - free ensures (memory_load8_le(mem, 2321bv64) == 10bv8); - free ensures (memory_load8_le(mem, 2322bv64) == 0bv8); - free ensures (memory_load64_le(mem, 68992bv64) == 2064bv64); - free ensures (memory_load64_le(mem, 69000bv64) == 1984bv64); - free ensures (memory_load64_le(mem, 69616bv64) == 2068bv64); - free ensures (memory_load64_le(mem, 69640bv64) == 69640bv64); - -procedure main_2068(); - modifies Gamma_R0, Gamma_R1, Gamma_R16, Gamma_R17, Gamma_R29, Gamma_R30, Gamma_R31, Gamma_mem, Gamma_stack, R0, R1, R16, R17, R29, R30, R31, mem, stack; - free requires (memory_load64_le(mem, 69632bv64) == 0bv64); - free requires (memory_load64_le(mem, 69640bv64) == 69640bv64); - free requires (memory_load64_le(mem, 2248bv64) == 131073bv64); - free requires (memory_load64_le(mem, 2256bv64) == 8241983568019286100bv64); - free requires (memory_load64_le(mem, 2264bv64) == 748482783423457568bv64); - free requires (memory_load64_le(mem, 2272bv64) == 0bv64); - free requires (memory_load64_le(mem, 2280bv64) == 2338615504306268244bv64); - free requires (memory_load64_le(mem, 2288bv64) == 2924860384375657bv64); - free requires (memory_load64_le(mem, 2296bv64) == 7017575154564032596bv64); - free requires (memory_load64_le(mem, 2304bv64) == 7089063228440191084bv64); - free requires (memory_load64_le(mem, 2312bv64) == 2675202446017455468bv64); - free requires (memory_load8_le(mem, 2320bv64) == 100bv8); - free requires (memory_load8_le(mem, 2321bv64) == 10bv8); - free requires (memory_load8_le(mem, 2322bv64) == 0bv8); - free requires (memory_load64_le(mem, 68992bv64) == 2064bv64); - free requires (memory_load64_le(mem, 69000bv64) == 1984bv64); - free requires (memory_load64_le(mem, 69616bv64) == 2068bv64); - free requires (memory_load64_le(mem, 69640bv64) == 69640bv64); + free requires (memory_load64_le(mem, 4196440bv64) == 131073bv64); + free requires (memory_load64_le(mem, 4196448bv64) == 8241983568019286100bv64); + free requires (memory_load64_le(mem, 4196456bv64) == 748482783423457568bv64); + free requires (memory_load64_le(mem, 4196464bv64) == 0bv64); + free requires (memory_load64_le(mem, 4196472bv64) == 2338615504306268244bv64); + free requires (memory_load64_le(mem, 4196480bv64) == 2924860384375657bv64); + free requires (memory_load64_le(mem, 4196488bv64) == 7017575154564032596bv64); + free requires (memory_load64_le(mem, 4196496bv64) == 7089063228440191084bv64); + free requires (memory_load64_le(mem, 4196504bv64) == 2675202446017455468bv64); + free requires (memory_load8_le(mem, 4196512bv64) == 100bv8); + free requires (memory_load8_le(mem, 4196513bv64) == 10bv8); + free requires (memory_load8_le(mem, 4196514bv64) == 0bv8); + free ensures (memory_load64_le(mem, 4196440bv64) == 131073bv64); + free ensures (memory_load64_le(mem, 4196448bv64) == 8241983568019286100bv64); + free ensures (memory_load64_le(mem, 4196456bv64) == 748482783423457568bv64); + free ensures (memory_load64_le(mem, 4196464bv64) == 0bv64); + free ensures (memory_load64_le(mem, 4196472bv64) == 2338615504306268244bv64); + free ensures (memory_load64_le(mem, 4196480bv64) == 2924860384375657bv64); + free ensures (memory_load64_le(mem, 4196488bv64) == 7017575154564032596bv64); + free ensures (memory_load64_le(mem, 4196496bv64) == 7089063228440191084bv64); + free ensures (memory_load64_le(mem, 4196504bv64) == 2675202446017455468bv64); + free ensures (memory_load8_le(mem, 4196512bv64) == 100bv8); + free ensures (memory_load8_le(mem, 4196513bv64) == 10bv8); + free ensures (memory_load8_le(mem, 4196514bv64) == 0bv8); + +procedure main(); + modifies Gamma_R0, Gamma_R1, Gamma_R16, Gamma_R17, Gamma_R2, Gamma_R29, Gamma_R30, Gamma_R31, Gamma_stack, R0, R1, R16, R17, R2, R29, R30, R31, stack; + free requires (memory_load64_le(mem, 4325376bv64) == 0bv64); + free requires (memory_load64_le(mem, 4325384bv64) == 0bv64); + free requires (memory_load64_le(mem, 4196440bv64) == 131073bv64); + free requires (memory_load64_le(mem, 4196448bv64) == 8241983568019286100bv64); + free requires (memory_load64_le(mem, 4196456bv64) == 748482783423457568bv64); + free requires (memory_load64_le(mem, 4196464bv64) == 0bv64); + free requires (memory_load64_le(mem, 4196472bv64) == 2338615504306268244bv64); + free requires (memory_load64_le(mem, 4196480bv64) == 2924860384375657bv64); + free requires (memory_load64_le(mem, 4196488bv64) == 7017575154564032596bv64); + free requires (memory_load64_le(mem, 4196496bv64) == 7089063228440191084bv64); + free requires (memory_load64_le(mem, 4196504bv64) == 2675202446017455468bv64); + free requires (memory_load8_le(mem, 4196512bv64) == 100bv8); + free requires (memory_load8_le(mem, 4196513bv64) == 10bv8); + free requires (memory_load8_le(mem, 4196514bv64) == 0bv8); free ensures (Gamma_R29 == old(Gamma_R29)); free ensures (Gamma_R31 == old(Gamma_R31)); free ensures (R29 == old(R29)); free ensures (R31 == old(R31)); - free ensures (memory_load64_le(mem, 2248bv64) == 131073bv64); - free ensures (memory_load64_le(mem, 2256bv64) == 8241983568019286100bv64); - free ensures (memory_load64_le(mem, 2264bv64) == 748482783423457568bv64); - free ensures (memory_load64_le(mem, 2272bv64) == 0bv64); - free ensures (memory_load64_le(mem, 2280bv64) == 2338615504306268244bv64); - free ensures (memory_load64_le(mem, 2288bv64) == 2924860384375657bv64); - free ensures (memory_load64_le(mem, 2296bv64) == 7017575154564032596bv64); - free ensures (memory_load64_le(mem, 2304bv64) == 7089063228440191084bv64); - free ensures (memory_load64_le(mem, 2312bv64) == 2675202446017455468bv64); - free ensures (memory_load8_le(mem, 2320bv64) == 100bv8); - free ensures (memory_load8_le(mem, 2321bv64) == 10bv8); - free ensures (memory_load8_le(mem, 2322bv64) == 0bv8); - free ensures (memory_load64_le(mem, 68992bv64) == 2064bv64); - free ensures (memory_load64_le(mem, 69000bv64) == 1984bv64); - free ensures (memory_load64_le(mem, 69616bv64) == 2068bv64); - free ensures (memory_load64_le(mem, 69640bv64) == 69640bv64); - -implementation main_2068() + free ensures (memory_load64_le(mem, 4196440bv64) == 131073bv64); + free ensures (memory_load64_le(mem, 4196448bv64) == 8241983568019286100bv64); + free ensures (memory_load64_le(mem, 4196456bv64) == 748482783423457568bv64); + free ensures (memory_load64_le(mem, 4196464bv64) == 0bv64); + free ensures (memory_load64_le(mem, 4196472bv64) == 2338615504306268244bv64); + free ensures (memory_load64_le(mem, 4196480bv64) == 2924860384375657bv64); + free ensures (memory_load64_le(mem, 4196488bv64) == 7017575154564032596bv64); + free ensures (memory_load64_le(mem, 4196496bv64) == 7089063228440191084bv64); + free ensures (memory_load64_le(mem, 4196504bv64) == 2675202446017455468bv64); + free ensures (memory_load8_le(mem, 4196512bv64) == 100bv8); + free ensures (memory_load8_le(mem, 4196513bv64) == 10bv8); + free ensures (memory_load8_le(mem, 4196514bv64) == 0bv8); + +implementation main() { - var #4: bv64; - var Gamma_#4: bool; - var Gamma_load19: bool; - var Gamma_load20: bool; - var Gamma_load21: bool; - var Gamma_load22: bool; - var Gamma_load23: bool; - var Gamma_load24: bool; - var Gamma_load25: bool; - var Gamma_load26: bool; - var Gamma_load27: bool; - var Gamma_load28: bool; - var Gamma_load29: bool; - var load19: bv64; - var load20: bv64; - var load21: bv64; - var load22: bv8; - var load23: bv64; - var load24: bv32; - var load25: bv32; - var load26: bv64; - var load27: bv64; - var load28: bv64; - var load29: bv64; + var #1: bv64; + var $load$15: bv64; + var $load$16: bv64; + var Gamma_#1: bool; + var Gamma_$load$15: bool; + var Gamma_$load$16: bool; lmain: assume {:captureState "lmain"} true; - #4, Gamma_#4 := bvadd64(R31, 18446744073709551568bv64), Gamma_R31; - stack, Gamma_stack := memory_store64_le(stack, #4, R29), gamma_store64(Gamma_stack, #4, Gamma_R29); - assume {:captureState "%00000350"} true; - stack, Gamma_stack := memory_store64_le(stack, bvadd64(#4, 8bv64), R30), gamma_store64(Gamma_stack, bvadd64(#4, 8bv64), Gamma_R30); - assume {:captureState "%00000356"} true; - R31, Gamma_R31 := #4, Gamma_#4; + #1, Gamma_#1 := bvadd64(R31, 18446744073709551600bv64), Gamma_R31; + stack, Gamma_stack := memory_store64_le(stack, #1, R29), gamma_store64(Gamma_stack, #1, Gamma_R29); + assume {:captureState "%00000268"} true; + stack, Gamma_stack := memory_store64_le(stack, bvadd64(#1, 8bv64), R30), gamma_store64(Gamma_stack, bvadd64(#1, 8bv64), Gamma_R30); + assume {:captureState "%0000026c"} true; + R31, Gamma_R31 := #1, Gamma_#1; + R2, Gamma_R2 := 65bv64, true; + R1, Gamma_R1 := 4194304bv64, true; R29, Gamma_R29 := R31, Gamma_R31; - R0, Gamma_R0 := 1bv64, true; - R30, Gamma_R30 := 2084bv64, true; - call malloc_1664(); - goto l0000036f; - l0000036f: - assume {:captureState "l0000036f"} true; - stack, Gamma_stack := memory_store64_le(stack, bvadd64(R31, 32bv64), R0), gamma_store64(Gamma_stack, bvadd64(R31, 32bv64), Gamma_R0); - assume {:captureState "%00000375"} true; - R0, Gamma_R0 := 4bv64, true; - R30, Gamma_R30 := 2096bv64, true; - call malloc_1664(); - goto l00000383; - l00000383: - assume {:captureState "l00000383"} true; - stack, Gamma_stack := memory_store64_le(stack, bvadd64(R31, 40bv64), R0), gamma_store64(Gamma_stack, bvadd64(R31, 40bv64), Gamma_R0); - assume {:captureState "%00000389"} true; - R0, Gamma_R0 := 10bv64, true; - stack, Gamma_stack := memory_store32_le(stack, bvadd64(R31, 28bv64), R0[32:0]), gamma_store32(Gamma_stack, bvadd64(R31, 28bv64), Gamma_R0); - assume {:captureState "%00000396"} true; - load19, Gamma_load19 := memory_load64_le(stack, bvadd64(R31, 32bv64)), gamma_load64(Gamma_stack, bvadd64(R31, 32bv64)); - R0, Gamma_R0 := load19, Gamma_load19; - R1, Gamma_R1 := 65bv64, true; - call rely(); - assert (L(mem, R0) ==> Gamma_R1); - mem, Gamma_mem := memory_store8_le(mem, R0, R1[8:0]), gamma_store8(Gamma_mem, R0, Gamma_R1); - assume {:captureState "%000003aa"} true; - load20, Gamma_load20 := memory_load64_le(stack, bvadd64(R31, 40bv64)), gamma_load64(Gamma_stack, bvadd64(R31, 40bv64)); - R0, Gamma_R0 := load20, Gamma_load20; - R1, Gamma_R1 := 42bv64, true; - call rely(); - assert (L(mem, R0) ==> Gamma_R1); - mem, Gamma_mem := memory_store32_le(mem, R0, R1[32:0]), gamma_store32(Gamma_mem, R0, Gamma_R1); - assume {:captureState "%000003be"} true; - load21, Gamma_load21 := memory_load64_le(stack, bvadd64(R31, 32bv64)), gamma_load64(Gamma_stack, bvadd64(R31, 32bv64)); - R0, Gamma_R0 := load21, Gamma_load21; - call rely(); - load22, Gamma_load22 := memory_load8_le(mem, R0), (gamma_load8(Gamma_mem, R0) || L(mem, R0)); - R0, Gamma_R0 := zero_extend56_8(load22), Gamma_load22; - R1, Gamma_R1 := zero_extend32_32(R0[32:0]), Gamma_R0; - R0, Gamma_R0 := 0bv64, true; - R0, Gamma_R0 := bvadd64(R0, 2256bv64), Gamma_R0; - R30, Gamma_R30 := 2156bv64, true; - call printf_1728(); - goto l000003e7; - l000003e7: - assume {:captureState "l000003e7"} true; - load23, Gamma_load23 := memory_load64_le(stack, bvadd64(R31, 40bv64)), gamma_load64(Gamma_stack, bvadd64(R31, 40bv64)); - R0, Gamma_R0 := load23, Gamma_load23; - call rely(); - load24, Gamma_load24 := memory_load32_le(mem, R0), (gamma_load32(Gamma_mem, R0) || L(mem, R0)); - R0, Gamma_R0 := zero_extend32_32(load24), Gamma_load24; - R1, Gamma_R1 := zero_extend32_32(R0[32:0]), Gamma_R0; + R1, Gamma_R1 := bvadd64(R1, 2144bv64), Gamma_R1; + R0, Gamma_R0 := 2bv64, true; + R30, Gamma_R30 := 4196060bv64, true; + call __printf_chk(); + goto l00000290; + l00000290: + assume {:captureState "l00000290"} true; + R2, Gamma_R2 := 42bv64, true; + R1, Gamma_R1 := 4194304bv64, true; + R0, Gamma_R0 := 2bv64, true; + R1, Gamma_R1 := bvadd64(R1, 2168bv64), Gamma_R1; + R30, Gamma_R30 := 4196080bv64, true; + call __printf_chk(); + goto l000002ac; + l000002ac: + assume {:captureState "l000002ac"} true; + R2, Gamma_R2 := 10bv64, true; + R1, Gamma_R1 := 4194304bv64, true; + R0, Gamma_R0 := 2bv64, true; + R1, Gamma_R1 := bvadd64(R1, 2184bv64), Gamma_R1; + R30, Gamma_R30 := 4196100bv64, true; + call __printf_chk(); + goto l000002c8; + l000002c8: + assume {:captureState "l000002c8"} true; R0, Gamma_R0 := 0bv64, true; - R0, Gamma_R0 := bvadd64(R0, 2280bv64), Gamma_R0; - R30, Gamma_R30 := 2180bv64, true; - call printf_1728(); - goto l0000040d; - l0000040d: - assume {:captureState "l0000040d"} true; - load25, Gamma_load25 := memory_load32_le(stack, bvadd64(R31, 28bv64)), gamma_load32(Gamma_stack, bvadd64(R31, 28bv64)); - R1, Gamma_R1 := zero_extend32_32(load25), Gamma_load25; - R0, Gamma_R0 := 0bv64, true; - R0, Gamma_R0 := bvadd64(R0, 2296bv64), Gamma_R0; - R30, Gamma_R30 := 2196bv64, true; - call printf_1728(); - goto l00000426; - l00000426: - assume {:captureState "l00000426"} true; - load26, Gamma_load26 := memory_load64_le(stack, bvadd64(R31, 32bv64)), gamma_load64(Gamma_stack, bvadd64(R31, 32bv64)); - R0, Gamma_R0 := load26, Gamma_load26; - R30, Gamma_R30 := 2204bv64, true; - call #free_1712(); - goto l00000435; - l00000435: - assume {:captureState "l00000435"} true; - load27, Gamma_load27 := memory_load64_le(stack, bvadd64(R31, 40bv64)), gamma_load64(Gamma_stack, bvadd64(R31, 40bv64)); - R0, Gamma_R0 := load27, Gamma_load27; - R30, Gamma_R30 := 2212bv64, true; - call #free_1712(); - goto l00000443; - l00000443: - assume {:captureState "l00000443"} true; - R0, Gamma_R0 := 0bv64, true; - load28, Gamma_load28 := memory_load64_le(stack, R31), gamma_load64(Gamma_stack, R31); - R29, Gamma_R29 := load28, Gamma_load28; - load29, Gamma_load29 := memory_load64_le(stack, bvadd64(R31, 8bv64)), gamma_load64(Gamma_stack, bvadd64(R31, 8bv64)); - R30, Gamma_R30 := load29, Gamma_load29; - R31, Gamma_R31 := bvadd64(R31, 48bv64), Gamma_R31; - goto main_2068_basil_return; - main_2068_basil_return: - assume {:captureState "main_2068_basil_return"} true; + $load$15, Gamma_$load$15 := memory_load64_le(stack, R31), gamma_load64(Gamma_stack, R31); + R29, Gamma_R29 := $load$15, Gamma_$load$15; + $load$16, Gamma_$load$16 := memory_load64_le(stack, bvadd64(R31, 8bv64)), gamma_load64(Gamma_stack, bvadd64(R31, 8bv64)); + R30, Gamma_R30 := $load$16, Gamma_$load$16; + R31, Gamma_R31 := bvadd64(R31, 16bv64), Gamma_R31; + goto main_basil_return; + main_basil_return: + assume {:captureState "main_basil_return"} true; return; } -procedure malloc_1664(); - modifies Gamma_R16, Gamma_R17, R16, R17; - free requires (memory_load64_le(mem, 2248bv64) == 131073bv64); - free requires (memory_load64_le(mem, 2256bv64) == 8241983568019286100bv64); - free requires (memory_load64_le(mem, 2264bv64) == 748482783423457568bv64); - free requires (memory_load64_le(mem, 2272bv64) == 0bv64); - free requires (memory_load64_le(mem, 2280bv64) == 2338615504306268244bv64); - free requires (memory_load64_le(mem, 2288bv64) == 2924860384375657bv64); - free requires (memory_load64_le(mem, 2296bv64) == 7017575154564032596bv64); - free requires (memory_load64_le(mem, 2304bv64) == 7089063228440191084bv64); - free requires (memory_load64_le(mem, 2312bv64) == 2675202446017455468bv64); - free requires (memory_load8_le(mem, 2320bv64) == 100bv8); - free requires (memory_load8_le(mem, 2321bv64) == 10bv8); - free requires (memory_load8_le(mem, 2322bv64) == 0bv8); - free requires (memory_load64_le(mem, 68992bv64) == 2064bv64); - free requires (memory_load64_le(mem, 69000bv64) == 1984bv64); - free requires (memory_load64_le(mem, 69616bv64) == 2068bv64); - free requires (memory_load64_le(mem, 69640bv64) == 69640bv64); - free ensures (memory_load64_le(mem, 2248bv64) == 131073bv64); - free ensures (memory_load64_le(mem, 2256bv64) == 8241983568019286100bv64); - free ensures (memory_load64_le(mem, 2264bv64) == 748482783423457568bv64); - free ensures (memory_load64_le(mem, 2272bv64) == 0bv64); - free ensures (memory_load64_le(mem, 2280bv64) == 2338615504306268244bv64); - free ensures (memory_load64_le(mem, 2288bv64) == 2924860384375657bv64); - free ensures (memory_load64_le(mem, 2296bv64) == 7017575154564032596bv64); - free ensures (memory_load64_le(mem, 2304bv64) == 7089063228440191084bv64); - free ensures (memory_load64_le(mem, 2312bv64) == 2675202446017455468bv64); - free ensures (memory_load8_le(mem, 2320bv64) == 100bv8); - free ensures (memory_load8_le(mem, 2321bv64) == 10bv8); - free ensures (memory_load8_le(mem, 2322bv64) == 0bv8); - free ensures (memory_load64_le(mem, 68992bv64) == 2064bv64); - free ensures (memory_load64_le(mem, 69000bv64) == 1984bv64); - free ensures (memory_load64_le(mem, 69616bv64) == 2068bv64); - free ensures (memory_load64_le(mem, 69640bv64) == 69640bv64); - -procedure printf_1728(); - modifies Gamma_R16, Gamma_R17, R16, R17; - free requires (memory_load64_le(mem, 2248bv64) == 131073bv64); - free requires (memory_load64_le(mem, 2256bv64) == 8241983568019286100bv64); - free requires (memory_load64_le(mem, 2264bv64) == 748482783423457568bv64); - free requires (memory_load64_le(mem, 2272bv64) == 0bv64); - free requires (memory_load64_le(mem, 2280bv64) == 2338615504306268244bv64); - free requires (memory_load64_le(mem, 2288bv64) == 2924860384375657bv64); - free requires (memory_load64_le(mem, 2296bv64) == 7017575154564032596bv64); - free requires (memory_load64_le(mem, 2304bv64) == 7089063228440191084bv64); - free requires (memory_load64_le(mem, 2312bv64) == 2675202446017455468bv64); - free requires (memory_load8_le(mem, 2320bv64) == 100bv8); - free requires (memory_load8_le(mem, 2321bv64) == 10bv8); - free requires (memory_load8_le(mem, 2322bv64) == 0bv8); - free requires (memory_load64_le(mem, 68992bv64) == 2064bv64); - free requires (memory_load64_le(mem, 69000bv64) == 1984bv64); - free requires (memory_load64_le(mem, 69616bv64) == 2068bv64); - free requires (memory_load64_le(mem, 69640bv64) == 69640bv64); - free ensures (memory_load64_le(mem, 2248bv64) == 131073bv64); - free ensures (memory_load64_le(mem, 2256bv64) == 8241983568019286100bv64); - free ensures (memory_load64_le(mem, 2264bv64) == 748482783423457568bv64); - free ensures (memory_load64_le(mem, 2272bv64) == 0bv64); - free ensures (memory_load64_le(mem, 2280bv64) == 2338615504306268244bv64); - free ensures (memory_load64_le(mem, 2288bv64) == 2924860384375657bv64); - free ensures (memory_load64_le(mem, 2296bv64) == 7017575154564032596bv64); - free ensures (memory_load64_le(mem, 2304bv64) == 7089063228440191084bv64); - free ensures (memory_load64_le(mem, 2312bv64) == 2675202446017455468bv64); - free ensures (memory_load8_le(mem, 2320bv64) == 100bv8); - free ensures (memory_load8_le(mem, 2321bv64) == 10bv8); - free ensures (memory_load8_le(mem, 2322bv64) == 0bv8); - free ensures (memory_load64_le(mem, 68992bv64) == 2064bv64); - free ensures (memory_load64_le(mem, 69000bv64) == 1984bv64); - free ensures (memory_load64_le(mem, 69616bv64) == 2068bv64); - free ensures (memory_load64_le(mem, 69640bv64) == 69640bv64); - diff --git a/src/test/correct/malloc_with_local/gcc/malloc_with_local.gts b/src/test/correct/malloc_with_local/gcc/malloc_with_local.gts deleted file mode 100644 index d5776faf8..000000000 Binary files a/src/test/correct/malloc_with_local/gcc/malloc_with_local.gts and /dev/null differ diff --git a/src/test/correct/malloc_with_local/gcc/malloc_with_local.md5sum b/src/test/correct/malloc_with_local/gcc/malloc_with_local.md5sum new file mode 100644 index 000000000..834d72929 --- /dev/null +++ b/src/test/correct/malloc_with_local/gcc/malloc_with_local.md5sum @@ -0,0 +1,5 @@ +d5778e299cdc3cd7ed5b0ac10e9b79ac correct/malloc_with_local/gcc/a.out +f3d3c4ced41e8b493272b129ec774bc7 correct/malloc_with_local/gcc/malloc_with_local.adt +e8344aeb06d50c4079a0c6c3a318a160 correct/malloc_with_local/gcc/malloc_with_local.bir +f653e3481a3003a1fb74f85089bd9831 correct/malloc_with_local/gcc/malloc_with_local.relf +318d9af6825bbd3ead4e04b3b17b1fe2 correct/malloc_with_local/gcc/malloc_with_local.gts diff --git a/src/test/correct/malloc_with_local/gcc/malloc_with_local.relf b/src/test/correct/malloc_with_local/gcc/malloc_with_local.relf deleted file mode 100644 index 308ed3473..000000000 --- a/src/test/correct/malloc_with_local/gcc/malloc_with_local.relf +++ /dev/null @@ -1,129 +0,0 @@ - -Relocation section '.rela.dyn' at offset 0x4c0 contains 8 entries: - Offset Info Type Symbol's Value Symbol's Name + Addend -0000000000010d80 0000000000000403 R_AARCH64_RELATIVE 810 -0000000000010d88 0000000000000403 R_AARCH64_RELATIVE 7c0 -0000000000010ff0 0000000000000403 R_AARCH64_RELATIVE 814 -0000000000011008 0000000000000403 R_AARCH64_RELATIVE 11008 -0000000000010fd8 0000000400000401 R_AARCH64_GLOB_DAT 0000000000000000 _ITM_deregisterTMCloneTable + 0 -0000000000010fe0 0000000500000401 R_AARCH64_GLOB_DAT 0000000000000000 __cxa_finalize@GLIBC_2.17 + 0 -0000000000010fe8 0000000700000401 R_AARCH64_GLOB_DAT 0000000000000000 __gmon_start__ + 0 -0000000000010ff8 0000000a00000401 R_AARCH64_GLOB_DAT 0000000000000000 _ITM_registerTMCloneTable + 0 - -Relocation section '.rela.plt' at offset 0x580 contains 7 entries: - Offset Info Type Symbol's Value Symbol's Name + Addend -0000000000010f98 0000000300000402 R_AARCH64_JUMP_SLOT 0000000000000000 __libc_start_main@GLIBC_2.34 + 0 -0000000000010fa0 0000000500000402 R_AARCH64_JUMP_SLOT 0000000000000000 __cxa_finalize@GLIBC_2.17 + 0 -0000000000010fa8 0000000600000402 R_AARCH64_JUMP_SLOT 0000000000000000 malloc@GLIBC_2.17 + 0 -0000000000010fb0 0000000700000402 R_AARCH64_JUMP_SLOT 0000000000000000 __gmon_start__ + 0 -0000000000010fb8 0000000800000402 R_AARCH64_JUMP_SLOT 0000000000000000 abort@GLIBC_2.17 + 0 -0000000000010fc0 0000000900000402 R_AARCH64_JUMP_SLOT 0000000000000000 free@GLIBC_2.17 + 0 -0000000000010fc8 0000000b00000402 R_AARCH64_JUMP_SLOT 0000000000000000 printf@GLIBC_2.17 + 0 - -Symbol table '.dynsym' contains 12 entries: - Num: Value Size Type Bind Vis Ndx Name - 0: 0000000000000000 0 NOTYPE LOCAL DEFAULT UND - 1: 0000000000000628 0 SECTION LOCAL DEFAULT 11 .init - 2: 0000000000011000 0 SECTION LOCAL DEFAULT 22 .data - 3: 0000000000000000 0 FUNC GLOBAL DEFAULT UND __libc_start_main@GLIBC_2.34 (2) - 4: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_deregisterTMCloneTable - 5: 0000000000000000 0 FUNC WEAK DEFAULT UND __cxa_finalize@GLIBC_2.17 (3) - 6: 0000000000000000 0 FUNC GLOBAL DEFAULT UND malloc@GLIBC_2.17 (3) - 7: 0000000000000000 0 NOTYPE WEAK DEFAULT UND __gmon_start__ - 8: 0000000000000000 0 FUNC GLOBAL DEFAULT UND abort@GLIBC_2.17 (3) - 9: 0000000000000000 0 FUNC GLOBAL DEFAULT UND free@GLIBC_2.17 (3) - 10: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_registerTMCloneTable - 11: 0000000000000000 0 FUNC GLOBAL DEFAULT UND printf@GLIBC_2.17 (3) - -Symbol table '.symtab' contains 90 entries: - Num: Value Size Type Bind Vis Ndx Name - 0: 0000000000000000 0 NOTYPE LOCAL DEFAULT UND - 1: 0000000000000238 0 SECTION LOCAL DEFAULT 1 .interp - 2: 0000000000000254 0 SECTION LOCAL DEFAULT 2 .note.gnu.build-id - 3: 0000000000000278 0 SECTION LOCAL DEFAULT 3 .note.ABI-tag - 4: 0000000000000298 0 SECTION LOCAL DEFAULT 4 .gnu.hash - 5: 00000000000002b8 0 SECTION LOCAL DEFAULT 5 .dynsym - 6: 00000000000003d8 0 SECTION LOCAL DEFAULT 6 .dynstr - 7: 0000000000000478 0 SECTION LOCAL DEFAULT 7 .gnu.version - 8: 0000000000000490 0 SECTION LOCAL DEFAULT 8 .gnu.version_r - 9: 00000000000004c0 0 SECTION LOCAL DEFAULT 9 .rela.dyn - 10: 0000000000000580 0 SECTION LOCAL DEFAULT 10 .rela.plt - 11: 0000000000000628 0 SECTION LOCAL DEFAULT 11 .init - 12: 0000000000000640 0 SECTION LOCAL DEFAULT 12 .plt - 13: 0000000000000700 0 SECTION LOCAL DEFAULT 13 .text - 14: 00000000000008b0 0 SECTION LOCAL DEFAULT 14 .fini - 15: 00000000000008c8 0 SECTION LOCAL DEFAULT 15 .rodata - 16: 0000000000000914 0 SECTION LOCAL DEFAULT 16 .eh_frame_hdr - 17: 0000000000000950 0 SECTION LOCAL DEFAULT 17 .eh_frame - 18: 0000000000010d80 0 SECTION LOCAL DEFAULT 18 .init_array - 19: 0000000000010d88 0 SECTION LOCAL DEFAULT 19 .fini_array - 20: 0000000000010d90 0 SECTION LOCAL DEFAULT 20 .dynamic - 21: 0000000000010f80 0 SECTION LOCAL DEFAULT 21 .got - 22: 0000000000011000 0 SECTION LOCAL DEFAULT 22 .data - 23: 0000000000011010 0 SECTION LOCAL DEFAULT 23 .bss - 24: 0000000000000000 0 SECTION LOCAL DEFAULT 24 .comment - 25: 0000000000000000 0 FILE LOCAL DEFAULT ABS Scrt1.o - 26: 0000000000000278 0 NOTYPE LOCAL DEFAULT 3 $d - 27: 0000000000000278 32 OBJECT LOCAL DEFAULT 3 __abi_tag - 28: 0000000000000700 0 NOTYPE LOCAL DEFAULT 13 $x - 29: 0000000000000964 0 NOTYPE LOCAL DEFAULT 17 $d - 30: 00000000000008c8 0 NOTYPE LOCAL DEFAULT 15 $d - 31: 0000000000000000 0 FILE LOCAL DEFAULT ABS crti.o - 32: 0000000000000734 0 NOTYPE LOCAL DEFAULT 13 $x - 33: 0000000000000734 20 FUNC LOCAL DEFAULT 13 call_weak_fn - 34: 0000000000000628 0 NOTYPE LOCAL DEFAULT 11 $x - 35: 00000000000008b0 0 NOTYPE LOCAL DEFAULT 14 $x - 36: 0000000000000000 0 FILE LOCAL DEFAULT ABS crtn.o - 37: 0000000000000638 0 NOTYPE LOCAL DEFAULT 11 $x - 38: 00000000000008bc 0 NOTYPE LOCAL DEFAULT 14 $x - 39: 0000000000000000 0 FILE LOCAL DEFAULT ABS crtstuff.c - 40: 0000000000000750 0 NOTYPE LOCAL DEFAULT 13 $x - 41: 0000000000000750 0 FUNC LOCAL DEFAULT 13 deregister_tm_clones - 42: 0000000000000780 0 FUNC LOCAL DEFAULT 13 register_tm_clones - 43: 0000000000011008 0 NOTYPE LOCAL DEFAULT 22 $d - 44: 00000000000007c0 0 FUNC LOCAL DEFAULT 13 __do_global_dtors_aux - 45: 0000000000011010 1 OBJECT LOCAL DEFAULT 23 completed.0 - 46: 0000000000010d88 0 NOTYPE LOCAL DEFAULT 19 $d - 47: 0000000000010d88 0 OBJECT LOCAL DEFAULT 19 __do_global_dtors_aux_fini_array_entry - 48: 0000000000000810 0 FUNC LOCAL DEFAULT 13 frame_dummy - 49: 0000000000010d80 0 NOTYPE LOCAL DEFAULT 18 $d - 50: 0000000000010d80 0 OBJECT LOCAL DEFAULT 18 __frame_dummy_init_array_entry - 51: 0000000000000978 0 NOTYPE LOCAL DEFAULT 17 $d - 52: 0000000000011010 0 NOTYPE LOCAL DEFAULT 23 $d - 53: 0000000000000000 0 FILE LOCAL DEFAULT ABS malloc_with_local.c - 54: 00000000000008d0 0 NOTYPE LOCAL DEFAULT 15 $d - 55: 0000000000000814 0 NOTYPE LOCAL DEFAULT 13 $x - 56: 00000000000009d8 0 NOTYPE LOCAL DEFAULT 17 $d - 57: 0000000000000000 0 FILE LOCAL DEFAULT ABS crtstuff.c - 58: 00000000000009f8 0 NOTYPE LOCAL DEFAULT 17 $d - 59: 00000000000009f8 0 OBJECT LOCAL DEFAULT 17 __FRAME_END__ - 60: 0000000000000000 0 FILE LOCAL DEFAULT ABS - 61: 0000000000010d90 0 OBJECT LOCAL DEFAULT ABS _DYNAMIC - 62: 0000000000000914 0 NOTYPE LOCAL DEFAULT 16 __GNU_EH_FRAME_HDR - 63: 0000000000010fd0 0 OBJECT LOCAL DEFAULT ABS _GLOBAL_OFFSET_TABLE_ - 64: 0000000000000640 0 NOTYPE LOCAL DEFAULT 12 $x - 65: 0000000000000000 0 FUNC GLOBAL DEFAULT UND __libc_start_main@GLIBC_2.34 - 66: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_deregisterTMCloneTable - 67: 0000000000011000 0 NOTYPE WEAK DEFAULT 22 data_start - 68: 0000000000011010 0 NOTYPE GLOBAL DEFAULT 23 __bss_start__ - 69: 0000000000000000 0 FUNC WEAK DEFAULT UND __cxa_finalize@GLIBC_2.17 - 70: 0000000000011018 0 NOTYPE GLOBAL DEFAULT 23 _bss_end__ - 71: 0000000000011010 0 NOTYPE GLOBAL DEFAULT 22 _edata - 72: 00000000000008b0 0 FUNC GLOBAL HIDDEN 14 _fini - 73: 0000000000011018 0 NOTYPE GLOBAL DEFAULT 23 __bss_end__ - 74: 0000000000000000 0 FUNC GLOBAL DEFAULT UND malloc@GLIBC_2.17 - 75: 0000000000011000 0 NOTYPE GLOBAL DEFAULT 22 __data_start - 76: 0000000000000000 0 NOTYPE WEAK DEFAULT UND __gmon_start__ - 77: 0000000000011008 0 OBJECT GLOBAL HIDDEN 22 __dso_handle - 78: 0000000000000000 0 FUNC GLOBAL DEFAULT UND abort@GLIBC_2.17 - 79: 00000000000008c8 4 OBJECT GLOBAL DEFAULT 15 _IO_stdin_used - 80: 0000000000011018 0 NOTYPE GLOBAL DEFAULT 23 _end - 81: 0000000000000000 0 FUNC GLOBAL DEFAULT UND free@GLIBC_2.17 - 82: 0000000000000700 52 FUNC GLOBAL DEFAULT 13 _start - 83: 0000000000011018 0 NOTYPE GLOBAL DEFAULT 23 __end__ - 84: 0000000000011010 0 NOTYPE GLOBAL DEFAULT 23 __bss_start - 85: 0000000000000814 156 FUNC GLOBAL DEFAULT 13 main - 86: 0000000000011010 0 OBJECT GLOBAL HIDDEN 22 __TMC_END__ - 87: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_registerTMCloneTable - 88: 0000000000000000 0 FUNC GLOBAL DEFAULT UND printf@GLIBC_2.17 - 89: 0000000000000628 0 FUNC GLOBAL HIDDEN 11 _init diff --git a/src/test/correct/malloc_with_local/gcc/malloc_with_local_gtirb.expected b/src/test/correct/malloc_with_local/gcc/malloc_with_local_gtirb.expected index 995efc3fe..8c7fae9b9 100644 --- a/src/test/correct/malloc_with_local/gcc/malloc_with_local_gtirb.expected +++ b/src/test/correct/malloc_with_local/gcc/malloc_with_local_gtirb.expected @@ -2,6 +2,7 @@ var {:extern} Gamma_R0: bool; var {:extern} Gamma_R1: bool; var {:extern} Gamma_R16: bool; var {:extern} Gamma_R17: bool; +var {:extern} Gamma_R2: bool; var {:extern} Gamma_R29: bool; var {:extern} Gamma_R30: bool; var {:extern} Gamma_R31: bool; @@ -11,46 +12,27 @@ var {:extern} R0: bv64; var {:extern} R1: bv64; var {:extern} R16: bv64; var {:extern} R17: bv64; +var {:extern} R2: bv64; var {:extern} R29: bv64; var {:extern} R30: bv64; var {:extern} R31: bv64; var {:extern} mem: [bv64]bv8; var {:extern} stack: [bv64]bv8; const {:extern} $_IO_stdin_used_addr: bv64; -axiom ($_IO_stdin_used_addr == 2248bv64); +axiom ($_IO_stdin_used_addr == 4196440bv64); function {:extern} L(mem$in: [bv64]bv8, index: bv64) returns (bool) { false } function {:extern} {:bvbuiltin "bvadd"} bvadd64(bv64, bv64) returns (bv64); -function {:extern} gamma_load32(gammaMap: [bv64]bool, index: bv64) returns (bool) { - (gammaMap[bvadd64(index, 3bv64)] && (gammaMap[bvadd64(index, 2bv64)] && (gammaMap[bvadd64(index, 1bv64)] && gammaMap[index]))) -} - function {:extern} gamma_load64(gammaMap: [bv64]bool, index: bv64) returns (bool) { (gammaMap[bvadd64(index, 7bv64)] && (gammaMap[bvadd64(index, 6bv64)] && (gammaMap[bvadd64(index, 5bv64)] && (gammaMap[bvadd64(index, 4bv64)] && (gammaMap[bvadd64(index, 3bv64)] && (gammaMap[bvadd64(index, 2bv64)] && (gammaMap[bvadd64(index, 1bv64)] && gammaMap[index]))))))) } -function {:extern} gamma_load8(gammaMap: [bv64]bool, index: bv64) returns (bool) { - gammaMap[index] -} - -function {:extern} gamma_store32(gammaMap: [bv64]bool, index: bv64, value: bool) returns ([bv64]bool) { - gammaMap[index := value][bvadd64(index, 1bv64) := value][bvadd64(index, 2bv64) := value][bvadd64(index, 3bv64) := value] -} - function {:extern} gamma_store64(gammaMap: [bv64]bool, index: bv64, value: bool) returns ([bv64]bool) { gammaMap[index := value][bvadd64(index, 1bv64) := value][bvadd64(index, 2bv64) := value][bvadd64(index, 3bv64) := value][bvadd64(index, 4bv64) := value][bvadd64(index, 5bv64) := value][bvadd64(index, 6bv64) := value][bvadd64(index, 7bv64) := value] } -function {:extern} gamma_store8(gammaMap: [bv64]bool, index: bv64, value: bool) returns ([bv64]bool) { - gammaMap[index := value] -} - -function {:extern} memory_load32_le(memory: [bv64]bv8, index: bv64) returns (bv32) { - (memory[bvadd64(index, 3bv64)] ++ (memory[bvadd64(index, 2bv64)] ++ (memory[bvadd64(index, 1bv64)] ++ memory[index]))) -} - function {:extern} memory_load64_le(memory: [bv64]bv8, index: bv64) returns (bv64) { (memory[bvadd64(index, 7bv64)] ++ (memory[bvadd64(index, 6bv64)] ++ (memory[bvadd64(index, 5bv64)] ++ (memory[bvadd64(index, 4bv64)] ++ (memory[bvadd64(index, 3bv64)] ++ (memory[bvadd64(index, 2bv64)] ++ (memory[bvadd64(index, 1bv64)] ++ memory[index]))))))) } @@ -59,40 +41,26 @@ function {:extern} memory_load8_le(memory: [bv64]bv8, index: bv64) returns (bv8) memory[index] } -function {:extern} memory_store32_le(memory: [bv64]bv8, index: bv64, value: bv32) returns ([bv64]bv8) { - memory[index := value[8:0]][bvadd64(index, 1bv64) := value[16:8]][bvadd64(index, 2bv64) := value[24:16]][bvadd64(index, 3bv64) := value[32:24]] -} - function {:extern} memory_store64_le(memory: [bv64]bv8, index: bv64, value: bv64) returns ([bv64]bv8) { memory[index := value[8:0]][bvadd64(index, 1bv64) := value[16:8]][bvadd64(index, 2bv64) := value[24:16]][bvadd64(index, 3bv64) := value[32:24]][bvadd64(index, 4bv64) := value[40:32]][bvadd64(index, 5bv64) := value[48:40]][bvadd64(index, 6bv64) := value[56:48]][bvadd64(index, 7bv64) := value[64:56]] } -function {:extern} memory_store8_le(memory: [bv64]bv8, index: bv64, value: bv8) returns ([bv64]bv8) { - memory[index := value[8:0]] -} - -function {:extern} {:bvbuiltin "zero_extend 24"} zero_extend24_8(bv8) returns (bv32); -function {:extern} {:bvbuiltin "zero_extend 32"} zero_extend32_32(bv32) returns (bv64); procedure {:extern} rely(); modifies Gamma_mem, mem; ensures (Gamma_mem == old(Gamma_mem)); ensures (mem == old(mem)); - free ensures (memory_load64_le(mem, 2248bv64) == 131073bv64); - free ensures (memory_load64_le(mem, 2256bv64) == 8241983568019286100bv64); - free ensures (memory_load64_le(mem, 2264bv64) == 748482783423457568bv64); - free ensures (memory_load64_le(mem, 2272bv64) == 0bv64); - free ensures (memory_load64_le(mem, 2280bv64) == 2338615504306268244bv64); - free ensures (memory_load64_le(mem, 2288bv64) == 2924860384375657bv64); - free ensures (memory_load64_le(mem, 2296bv64) == 7017575154564032596bv64); - free ensures (memory_load64_le(mem, 2304bv64) == 7089063228440191084bv64); - free ensures (memory_load64_le(mem, 2312bv64) == 2675202446017455468bv64); - free ensures (memory_load8_le(mem, 2320bv64) == 100bv8); - free ensures (memory_load8_le(mem, 2321bv64) == 10bv8); - free ensures (memory_load8_le(mem, 2322bv64) == 0bv8); - free ensures (memory_load64_le(mem, 68992bv64) == 2064bv64); - free ensures (memory_load64_le(mem, 69000bv64) == 1984bv64); - free ensures (memory_load64_le(mem, 69616bv64) == 2068bv64); - free ensures (memory_load64_le(mem, 69640bv64) == 69640bv64); + free ensures (memory_load64_le(mem, 4196440bv64) == 131073bv64); + free ensures (memory_load64_le(mem, 4196448bv64) == 8241983568019286100bv64); + free ensures (memory_load64_le(mem, 4196456bv64) == 748482783423457568bv64); + free ensures (memory_load64_le(mem, 4196464bv64) == 0bv64); + free ensures (memory_load64_le(mem, 4196472bv64) == 2338615504306268244bv64); + free ensures (memory_load64_le(mem, 4196480bv64) == 2924860384375657bv64); + free ensures (memory_load64_le(mem, 4196488bv64) == 7017575154564032596bv64); + free ensures (memory_load64_le(mem, 4196496bv64) == 7089063228440191084bv64); + free ensures (memory_load64_le(mem, 4196504bv64) == 2675202446017455468bv64); + free ensures (memory_load8_le(mem, 4196512bv64) == 100bv8); + free ensures (memory_load8_le(mem, 4196513bv64) == 10bv8); + free ensures (memory_load8_le(mem, 4196514bv64) == 0bv8); procedure {:extern} rely_transitive(); modifies Gamma_mem, mem; @@ -110,434 +78,160 @@ procedure {:extern} rely_reflexive(); procedure {:extern} guarantee_reflexive(); modifies Gamma_mem, mem; -procedure FUN_680_1664(); +procedure FUN_400680(); modifies Gamma_R16, Gamma_R17, Gamma_mem, R16, R17, mem; - free requires (memory_load64_le(mem, 2248bv64) == 131073bv64); - free requires (memory_load64_le(mem, 2256bv64) == 8241983568019286100bv64); - free requires (memory_load64_le(mem, 2264bv64) == 748482783423457568bv64); - free requires (memory_load64_le(mem, 2272bv64) == 0bv64); - free requires (memory_load64_le(mem, 2280bv64) == 2338615504306268244bv64); - free requires (memory_load64_le(mem, 2288bv64) == 2924860384375657bv64); - free requires (memory_load64_le(mem, 2296bv64) == 7017575154564032596bv64); - free requires (memory_load64_le(mem, 2304bv64) == 7089063228440191084bv64); - free requires (memory_load64_le(mem, 2312bv64) == 2675202446017455468bv64); - free requires (memory_load8_le(mem, 2320bv64) == 100bv8); - free requires (memory_load8_le(mem, 2321bv64) == 10bv8); - free requires (memory_load8_le(mem, 2322bv64) == 0bv8); - free requires (memory_load64_le(mem, 68992bv64) == 2064bv64); - free requires (memory_load64_le(mem, 69000bv64) == 1984bv64); - free requires (memory_load64_le(mem, 69616bv64) == 2068bv64); - free requires (memory_load64_le(mem, 69640bv64) == 69640bv64); - free ensures (memory_load64_le(mem, 2248bv64) == 131073bv64); - free ensures (memory_load64_le(mem, 2256bv64) == 8241983568019286100bv64); - free ensures (memory_load64_le(mem, 2264bv64) == 748482783423457568bv64); - free ensures (memory_load64_le(mem, 2272bv64) == 0bv64); - free ensures (memory_load64_le(mem, 2280bv64) == 2338615504306268244bv64); - free ensures (memory_load64_le(mem, 2288bv64) == 2924860384375657bv64); - free ensures (memory_load64_le(mem, 2296bv64) == 7017575154564032596bv64); - free ensures (memory_load64_le(mem, 2304bv64) == 7089063228440191084bv64); - free ensures (memory_load64_le(mem, 2312bv64) == 2675202446017455468bv64); - free ensures (memory_load8_le(mem, 2320bv64) == 100bv8); - free ensures (memory_load8_le(mem, 2321bv64) == 10bv8); - free ensures (memory_load8_le(mem, 2322bv64) == 0bv8); - free ensures (memory_load64_le(mem, 68992bv64) == 2064bv64); - free ensures (memory_load64_le(mem, 69000bv64) == 1984bv64); - free ensures (memory_load64_le(mem, 69616bv64) == 2068bv64); - free ensures (memory_load64_le(mem, 69640bv64) == 69640bv64); - -implementation FUN_680_1664() -{ - var Gamma_load13: bool; - var load13: bv64; - FUN_680_1664__0__G9dTDoYvRG25kbHLw1VfkA: - assume {:captureState "FUN_680_1664__0__G9dTDoYvRG25kbHLw1VfkA"} true; - R16, Gamma_R16 := 65536bv64, true; - call rely(); - load13, Gamma_load13 := memory_load64_le(mem, bvadd64(R16, 4008bv64)), (gamma_load64(Gamma_mem, bvadd64(R16, 4008bv64)) || L(mem, bvadd64(R16, 4008bv64))); - R17, Gamma_R17 := load13, Gamma_load13; - R16, Gamma_R16 := bvadd64(R16, 4008bv64), Gamma_R16; - call malloc(); - goto FUN_680_1664_basil_return; - FUN_680_1664_basil_return: - assume {:captureState "FUN_680_1664_basil_return"} true; - return; -} - -procedure FUN_6b0_1712(); - modifies Gamma_R16, Gamma_R17, Gamma_mem, R16, R17, mem; - free requires (memory_load64_le(mem, 2248bv64) == 131073bv64); - free requires (memory_load64_le(mem, 2256bv64) == 8241983568019286100bv64); - free requires (memory_load64_le(mem, 2264bv64) == 748482783423457568bv64); - free requires (memory_load64_le(mem, 2272bv64) == 0bv64); - free requires (memory_load64_le(mem, 2280bv64) == 2338615504306268244bv64); - free requires (memory_load64_le(mem, 2288bv64) == 2924860384375657bv64); - free requires (memory_load64_le(mem, 2296bv64) == 7017575154564032596bv64); - free requires (memory_load64_le(mem, 2304bv64) == 7089063228440191084bv64); - free requires (memory_load64_le(mem, 2312bv64) == 2675202446017455468bv64); - free requires (memory_load8_le(mem, 2320bv64) == 100bv8); - free requires (memory_load8_le(mem, 2321bv64) == 10bv8); - free requires (memory_load8_le(mem, 2322bv64) == 0bv8); - free requires (memory_load64_le(mem, 68992bv64) == 2064bv64); - free requires (memory_load64_le(mem, 69000bv64) == 1984bv64); - free requires (memory_load64_le(mem, 69616bv64) == 2068bv64); - free requires (memory_load64_le(mem, 69640bv64) == 69640bv64); - free ensures (memory_load64_le(mem, 2248bv64) == 131073bv64); - free ensures (memory_load64_le(mem, 2256bv64) == 8241983568019286100bv64); - free ensures (memory_load64_le(mem, 2264bv64) == 748482783423457568bv64); - free ensures (memory_load64_le(mem, 2272bv64) == 0bv64); - free ensures (memory_load64_le(mem, 2280bv64) == 2338615504306268244bv64); - free ensures (memory_load64_le(mem, 2288bv64) == 2924860384375657bv64); - free ensures (memory_load64_le(mem, 2296bv64) == 7017575154564032596bv64); - free ensures (memory_load64_le(mem, 2304bv64) == 7089063228440191084bv64); - free ensures (memory_load64_le(mem, 2312bv64) == 2675202446017455468bv64); - free ensures (memory_load8_le(mem, 2320bv64) == 100bv8); - free ensures (memory_load8_le(mem, 2321bv64) == 10bv8); - free ensures (memory_load8_le(mem, 2322bv64) == 0bv8); - free ensures (memory_load64_le(mem, 68992bv64) == 2064bv64); - free ensures (memory_load64_le(mem, 69000bv64) == 1984bv64); - free ensures (memory_load64_le(mem, 69616bv64) == 2068bv64); - free ensures (memory_load64_le(mem, 69640bv64) == 69640bv64); - -implementation FUN_6b0_1712() + free requires (memory_load64_le(mem, 4196440bv64) == 131073bv64); + free requires (memory_load64_le(mem, 4196448bv64) == 8241983568019286100bv64); + free requires (memory_load64_le(mem, 4196456bv64) == 748482783423457568bv64); + free requires (memory_load64_le(mem, 4196464bv64) == 0bv64); + free requires (memory_load64_le(mem, 4196472bv64) == 2338615504306268244bv64); + free requires (memory_load64_le(mem, 4196480bv64) == 2924860384375657bv64); + free requires (memory_load64_le(mem, 4196488bv64) == 7017575154564032596bv64); + free requires (memory_load64_le(mem, 4196496bv64) == 7089063228440191084bv64); + free requires (memory_load64_le(mem, 4196504bv64) == 2675202446017455468bv64); + free requires (memory_load8_le(mem, 4196512bv64) == 100bv8); + free requires (memory_load8_le(mem, 4196513bv64) == 10bv8); + free requires (memory_load8_le(mem, 4196514bv64) == 0bv8); + free ensures (memory_load64_le(mem, 4196440bv64) == 131073bv64); + free ensures (memory_load64_le(mem, 4196448bv64) == 8241983568019286100bv64); + free ensures (memory_load64_le(mem, 4196456bv64) == 748482783423457568bv64); + free ensures (memory_load64_le(mem, 4196464bv64) == 0bv64); + free ensures (memory_load64_le(mem, 4196472bv64) == 2338615504306268244bv64); + free ensures (memory_load64_le(mem, 4196480bv64) == 2924860384375657bv64); + free ensures (memory_load64_le(mem, 4196488bv64) == 7017575154564032596bv64); + free ensures (memory_load64_le(mem, 4196496bv64) == 7089063228440191084bv64); + free ensures (memory_load64_le(mem, 4196504bv64) == 2675202446017455468bv64); + free ensures (memory_load8_le(mem, 4196512bv64) == 100bv8); + free ensures (memory_load8_le(mem, 4196513bv64) == 10bv8); + free ensures (memory_load8_le(mem, 4196514bv64) == 0bv8); + +implementation FUN_400680() { - var Gamma_load15: bool; - var load15: bv64; - FUN_6b0_1712__0__zCVLckCjR0u8KR3z1jE6GQ: - assume {:captureState "FUN_6b0_1712__0__zCVLckCjR0u8KR3z1jE6GQ"} true; - R16, Gamma_R16 := 65536bv64, true; + var $load11: bv64; + var Gamma_$load11: bool; + $FUN_400680$__0__$i2bc6yURTw~Pq2nxe63pQA: + assume {:captureState "$FUN_400680$__0__$i2bc6yURTw~Pq2nxe63pQA"} true; + R16, Gamma_R16 := 4321280bv64, true; call rely(); - load15, Gamma_load15 := memory_load64_le(mem, bvadd64(R16, 4032bv64)), (gamma_load64(Gamma_mem, bvadd64(R16, 4032bv64)) || L(mem, bvadd64(R16, 4032bv64))); - R17, Gamma_R17 := load15, Gamma_load15; - R16, Gamma_R16 := bvadd64(R16, 4032bv64), Gamma_R16; - call #free(); - goto FUN_6b0_1712_basil_return; - FUN_6b0_1712_basil_return: - assume {:captureState "FUN_6b0_1712_basil_return"} true; - return; -} - -procedure main_2068(); - modifies Gamma_R0, Gamma_R1, Gamma_R16, Gamma_R17, Gamma_R29, Gamma_R30, Gamma_R31, Gamma_mem, Gamma_stack, R0, R1, R16, R17, R29, R30, R31, mem, stack; - free requires (memory_load64_le(mem, 69632bv64) == 0bv64); - free requires (memory_load64_le(mem, 69640bv64) == 69640bv64); - free requires (memory_load64_le(mem, 2248bv64) == 131073bv64); - free requires (memory_load64_le(mem, 2256bv64) == 8241983568019286100bv64); - free requires (memory_load64_le(mem, 2264bv64) == 748482783423457568bv64); - free requires (memory_load64_le(mem, 2272bv64) == 0bv64); - free requires (memory_load64_le(mem, 2280bv64) == 2338615504306268244bv64); - free requires (memory_load64_le(mem, 2288bv64) == 2924860384375657bv64); - free requires (memory_load64_le(mem, 2296bv64) == 7017575154564032596bv64); - free requires (memory_load64_le(mem, 2304bv64) == 7089063228440191084bv64); - free requires (memory_load64_le(mem, 2312bv64) == 2675202446017455468bv64); - free requires (memory_load8_le(mem, 2320bv64) == 100bv8); - free requires (memory_load8_le(mem, 2321bv64) == 10bv8); - free requires (memory_load8_le(mem, 2322bv64) == 0bv8); - free requires (memory_load64_le(mem, 68992bv64) == 2064bv64); - free requires (memory_load64_le(mem, 69000bv64) == 1984bv64); - free requires (memory_load64_le(mem, 69616bv64) == 2068bv64); - free requires (memory_load64_le(mem, 69640bv64) == 69640bv64); + $load11, Gamma_$load11 := memory_load64_le(mem, bvadd64(R16, 4040bv64)), (gamma_load64(Gamma_mem, bvadd64(R16, 4040bv64)) || L(mem, bvadd64(R16, 4040bv64))); + R17, Gamma_R17 := $load11, Gamma_$load11; + R16, Gamma_R16 := bvadd64(R16, 4040bv64), Gamma_R16; + call __printf_chk(); + assume false; +} + +procedure main(); + modifies Gamma_R0, Gamma_R1, Gamma_R16, Gamma_R17, Gamma_R2, Gamma_R29, Gamma_R30, Gamma_R31, Gamma_mem, Gamma_stack, R0, R1, R16, R17, R2, R29, R30, R31, mem, stack; + free requires (memory_load64_le(mem, 4325376bv64) == 0bv64); + free requires (memory_load64_le(mem, 4325384bv64) == 0bv64); + free requires (memory_load64_le(mem, 4196440bv64) == 131073bv64); + free requires (memory_load64_le(mem, 4196448bv64) == 8241983568019286100bv64); + free requires (memory_load64_le(mem, 4196456bv64) == 748482783423457568bv64); + free requires (memory_load64_le(mem, 4196464bv64) == 0bv64); + free requires (memory_load64_le(mem, 4196472bv64) == 2338615504306268244bv64); + free requires (memory_load64_le(mem, 4196480bv64) == 2924860384375657bv64); + free requires (memory_load64_le(mem, 4196488bv64) == 7017575154564032596bv64); + free requires (memory_load64_le(mem, 4196496bv64) == 7089063228440191084bv64); + free requires (memory_load64_le(mem, 4196504bv64) == 2675202446017455468bv64); + free requires (memory_load8_le(mem, 4196512bv64) == 100bv8); + free requires (memory_load8_le(mem, 4196513bv64) == 10bv8); + free requires (memory_load8_le(mem, 4196514bv64) == 0bv8); free ensures (Gamma_R29 == old(Gamma_R29)); free ensures (Gamma_R31 == old(Gamma_R31)); free ensures (R29 == old(R29)); free ensures (R31 == old(R31)); - free ensures (memory_load64_le(mem, 2248bv64) == 131073bv64); - free ensures (memory_load64_le(mem, 2256bv64) == 8241983568019286100bv64); - free ensures (memory_load64_le(mem, 2264bv64) == 748482783423457568bv64); - free ensures (memory_load64_le(mem, 2272bv64) == 0bv64); - free ensures (memory_load64_le(mem, 2280bv64) == 2338615504306268244bv64); - free ensures (memory_load64_le(mem, 2288bv64) == 2924860384375657bv64); - free ensures (memory_load64_le(mem, 2296bv64) == 7017575154564032596bv64); - free ensures (memory_load64_le(mem, 2304bv64) == 7089063228440191084bv64); - free ensures (memory_load64_le(mem, 2312bv64) == 2675202446017455468bv64); - free ensures (memory_load8_le(mem, 2320bv64) == 100bv8); - free ensures (memory_load8_le(mem, 2321bv64) == 10bv8); - free ensures (memory_load8_le(mem, 2322bv64) == 0bv8); - free ensures (memory_load64_le(mem, 68992bv64) == 2064bv64); - free ensures (memory_load64_le(mem, 69000bv64) == 1984bv64); - free ensures (memory_load64_le(mem, 69616bv64) == 2068bv64); - free ensures (memory_load64_le(mem, 69640bv64) == 69640bv64); - -implementation main_2068() + free ensures (memory_load64_le(mem, 4196440bv64) == 131073bv64); + free ensures (memory_load64_le(mem, 4196448bv64) == 8241983568019286100bv64); + free ensures (memory_load64_le(mem, 4196456bv64) == 748482783423457568bv64); + free ensures (memory_load64_le(mem, 4196464bv64) == 0bv64); + free ensures (memory_load64_le(mem, 4196472bv64) == 2338615504306268244bv64); + free ensures (memory_load64_le(mem, 4196480bv64) == 2924860384375657bv64); + free ensures (memory_load64_le(mem, 4196488bv64) == 7017575154564032596bv64); + free ensures (memory_load64_le(mem, 4196496bv64) == 7089063228440191084bv64); + free ensures (memory_load64_le(mem, 4196504bv64) == 2675202446017455468bv64); + free ensures (memory_load8_le(mem, 4196512bv64) == 100bv8); + free ensures (memory_load8_le(mem, 4196513bv64) == 10bv8); + free ensures (memory_load8_le(mem, 4196514bv64) == 0bv8); + +implementation main() { - var Cse0__5_1_0: bv64; - var Gamma_Cse0__5_1_0: bool; - var Gamma_load22: bool; - var Gamma_load23: bool; - var Gamma_load24: bool; - var Gamma_load25: bool; - var Gamma_load26: bool; - var Gamma_load27: bool; - var Gamma_load28: bool; - var Gamma_load29: bool; - var Gamma_load30: bool; - var Gamma_load31: bool; - var Gamma_load32: bool; - var load22: bv32; - var load23: bv64; - var load24: bv64; - var load25: bv64; - var load26: bv64; - var load27: bv64; - var load28: bv64; - var load29: bv64; - var load30: bv8; - var load31: bv64; - var load32: bv32; - main_2068__0__SUJRVtnjRyS2h6Rx4EyZkw: - assume {:captureState "main_2068__0__SUJRVtnjRyS2h6Rx4EyZkw"} true; - Cse0__5_1_0, Gamma_Cse0__5_1_0 := bvadd64(R31, 18446744073709551568bv64), Gamma_R31; - stack, Gamma_stack := memory_store64_le(stack, Cse0__5_1_0, R29), gamma_store64(Gamma_stack, Cse0__5_1_0, Gamma_R29); - assume {:captureState "2068_1"} true; - stack, Gamma_stack := memory_store64_le(stack, bvadd64(Cse0__5_1_0, 8bv64), R30), gamma_store64(Gamma_stack, bvadd64(Cse0__5_1_0, 8bv64), Gamma_R30); - assume {:captureState "2068_2"} true; - R31, Gamma_R31 := Cse0__5_1_0, Gamma_Cse0__5_1_0; + var $load15: bv64; + var $load16: bv64; + var Cse0__5$3$0: bv64; + var Gamma_$load15: bool; + var Gamma_$load16: bool; + var Gamma_Cse0__5$3$0: bool; + $main$__0__$t_6C~3O4SbalxMsQ9Vg3LA: + assume {:captureState "$main$__0__$t_6C~3O4SbalxMsQ9Vg3LA"} true; + Cse0__5$3$0, Gamma_Cse0__5$3$0 := bvadd64(R31, 18446744073709551600bv64), Gamma_R31; + stack, Gamma_stack := memory_store64_le(stack, Cse0__5$3$0, R29), gamma_store64(Gamma_stack, Cse0__5$3$0, Gamma_R29); + assume {:captureState "4196032$1"} true; + stack, Gamma_stack := memory_store64_le(stack, bvadd64(Cse0__5$3$0, 8bv64), R30), gamma_store64(Gamma_stack, bvadd64(Cse0__5$3$0, 8bv64), Gamma_R30); + assume {:captureState "4196032$2"} true; + R31, Gamma_R31 := Cse0__5$3$0, Gamma_Cse0__5$3$0; + R2, Gamma_R2 := 65bv64, true; + R1, Gamma_R1 := 4194304bv64, true; R29, Gamma_R29 := R31, Gamma_R31; - R0, Gamma_R0 := 1bv64, true; - R30, Gamma_R30 := 2084bv64, true; - call FUN_680_1664(); - goto main_2068__1__dXGr9aYyQ8G9hHSr5qB_Fg; - main_2068__1__dXGr9aYyQ8G9hHSr5qB_Fg: - assume {:captureState "main_2068__1__dXGr9aYyQ8G9hHSr5qB_Fg"} true; - stack, Gamma_stack := memory_store64_le(stack, bvadd64(R31, 32bv64), R0), gamma_store64(Gamma_stack, bvadd64(R31, 32bv64), Gamma_R0); - assume {:captureState "2084_0"} true; - R0, Gamma_R0 := 4bv64, true; - R30, Gamma_R30 := 2096bv64, true; - call FUN_680_1664(); - goto main_2068__2__kxvGNkmcRTWZLsX2IG8zQg; - main_2068__2__kxvGNkmcRTWZLsX2IG8zQg: - assume {:captureState "main_2068__2__kxvGNkmcRTWZLsX2IG8zQg"} true; - stack, Gamma_stack := memory_store64_le(stack, bvadd64(R31, 40bv64), R0), gamma_store64(Gamma_stack, bvadd64(R31, 40bv64), Gamma_R0); - assume {:captureState "2096_0"} true; - R0, Gamma_R0 := 10bv64, true; - stack, Gamma_stack := memory_store32_le(stack, bvadd64(R31, 28bv64), R0[32:0]), gamma_store32(Gamma_stack, bvadd64(R31, 28bv64), Gamma_R0); - assume {:captureState "2104_0"} true; - load27, Gamma_load27 := memory_load64_le(stack, bvadd64(R31, 32bv64)), gamma_load64(Gamma_stack, bvadd64(R31, 32bv64)); - R0, Gamma_R0 := load27, Gamma_load27; - R1, Gamma_R1 := 65bv64, true; - call rely(); - assert (L(mem, R0) ==> Gamma_R1); - mem, Gamma_mem := memory_store8_le(mem, R0, R1[8:0]), gamma_store8(Gamma_mem, R0, Gamma_R1); - assume {:captureState "2116_0"} true; - load28, Gamma_load28 := memory_load64_le(stack, bvadd64(R31, 40bv64)), gamma_load64(Gamma_stack, bvadd64(R31, 40bv64)); - R0, Gamma_R0 := load28, Gamma_load28; - R1, Gamma_R1 := 42bv64, true; - call rely(); - assert (L(mem, R0) ==> Gamma_R1); - mem, Gamma_mem := memory_store32_le(mem, R0, R1[32:0]), gamma_store32(Gamma_mem, R0, Gamma_R1); - assume {:captureState "2128_0"} true; - load29, Gamma_load29 := memory_load64_le(stack, bvadd64(R31, 32bv64)), gamma_load64(Gamma_stack, bvadd64(R31, 32bv64)); - R0, Gamma_R0 := load29, Gamma_load29; - call rely(); - load30, Gamma_load30 := memory_load8_le(mem, R0), (gamma_load8(Gamma_mem, R0) || L(mem, R0)); - R0, Gamma_R0 := zero_extend32_32(zero_extend24_8(load30)), Gamma_load30; - R1, Gamma_R1 := zero_extend32_32(R0[32:0]), Gamma_R0; - R0, Gamma_R0 := 0bv64, true; - R0, Gamma_R0 := bvadd64(R0, 2256bv64), Gamma_R0; - R30, Gamma_R30 := 2156bv64, true; - call FUN_6c0_1728(); - goto main_2068__3__KeIk_ZKFT1GwKspywoVEIw; - main_2068__3__KeIk_ZKFT1GwKspywoVEIw: - assume {:captureState "main_2068__3__KeIk_ZKFT1GwKspywoVEIw"} true; - load31, Gamma_load31 := memory_load64_le(stack, bvadd64(R31, 40bv64)), gamma_load64(Gamma_stack, bvadd64(R31, 40bv64)); - R0, Gamma_R0 := load31, Gamma_load31; - call rely(); - load32, Gamma_load32 := memory_load32_le(mem, R0), (gamma_load32(Gamma_mem, R0) || L(mem, R0)); - R0, Gamma_R0 := zero_extend32_32(load32), Gamma_load32; - R1, Gamma_R1 := zero_extend32_32(R0[32:0]), Gamma_R0; - R0, Gamma_R0 := 0bv64, true; - R0, Gamma_R0 := bvadd64(R0, 2280bv64), Gamma_R0; - R30, Gamma_R30 := 2180bv64, true; - call FUN_6c0_1728(); - goto main_2068__4__NWXkJAFcTsylQC0_~kBpIg; - main_2068__4__NWXkJAFcTsylQC0_~kBpIg: - assume {:captureState "main_2068__4__NWXkJAFcTsylQC0_~kBpIg"} true; - load22, Gamma_load22 := memory_load32_le(stack, bvadd64(R31, 28bv64)), gamma_load32(Gamma_stack, bvadd64(R31, 28bv64)); - R1, Gamma_R1 := zero_extend32_32(load22), Gamma_load22; + R1, Gamma_R1 := bvadd64(R1, 2144bv64), Gamma_R1; + R0, Gamma_R0 := 2bv64, true; + R30, Gamma_R30 := 4196060bv64, true; + call FUN_400680(); + goto $main$__1__$8D7O5dmBS1ek~5BDJ9mBtA; + $main$__1__$8D7O5dmBS1ek~5BDJ9mBtA: + assume {:captureState "$main$__1__$8D7O5dmBS1ek~5BDJ9mBtA"} true; + R2, Gamma_R2 := 42bv64, true; + R1, Gamma_R1 := 4194304bv64, true; + R0, Gamma_R0 := 2bv64, true; + R1, Gamma_R1 := bvadd64(R1, 2168bv64), Gamma_R1; + R30, Gamma_R30 := 4196052bv64, true; + call FUN_400680(); + goto $main$__2__$UtkQk4ONSE6hNEuDpZ95RQ; + $main$__2__$UtkQk4ONSE6hNEuDpZ95RQ: + assume {:captureState "$main$__2__$UtkQk4ONSE6hNEuDpZ95RQ"} true; + R2, Gamma_R2 := 10bv64, true; + R1, Gamma_R1 := 4194304bv64, true; + R0, Gamma_R0 := 2bv64, true; + R1, Gamma_R1 := bvadd64(R1, 2184bv64), Gamma_R1; + R30, Gamma_R30 := 4196052bv64, true; + call FUN_400680(); + goto $main$__3__$KTHyjTW0SWiGwqylcMDw6Q; + $main$__3__$KTHyjTW0SWiGwqylcMDw6Q: + assume {:captureState "$main$__3__$KTHyjTW0SWiGwqylcMDw6Q"} true; R0, Gamma_R0 := 0bv64, true; - R0, Gamma_R0 := bvadd64(R0, 2296bv64), Gamma_R0; - R30, Gamma_R30 := 2196bv64, true; - call FUN_6c0_1728(); - goto main_2068__5__HGIidlGjSU~nVJyWDq3sTA; - main_2068__5__HGIidlGjSU~nVJyWDq3sTA: - assume {:captureState "main_2068__5__HGIidlGjSU~nVJyWDq3sTA"} true; - load23, Gamma_load23 := memory_load64_le(stack, bvadd64(R31, 32bv64)), gamma_load64(Gamma_stack, bvadd64(R31, 32bv64)); - R0, Gamma_R0 := load23, Gamma_load23; - R30, Gamma_R30 := 2204bv64, true; - call FUN_6b0_1712(); - goto main_2068__6__oMn7uKPqTSOK6gp7Lrg3TQ; - main_2068__6__oMn7uKPqTSOK6gp7Lrg3TQ: - assume {:captureState "main_2068__6__oMn7uKPqTSOK6gp7Lrg3TQ"} true; - load26, Gamma_load26 := memory_load64_le(stack, bvadd64(R31, 40bv64)), gamma_load64(Gamma_stack, bvadd64(R31, 40bv64)); - R0, Gamma_R0 := load26, Gamma_load26; - R30, Gamma_R30 := 2212bv64, true; - call FUN_6b0_1712(); - goto main_2068__7__1RsW4Nh~QjukdAMYUoDwdg; - main_2068__7__1RsW4Nh~QjukdAMYUoDwdg: - assume {:captureState "main_2068__7__1RsW4Nh~QjukdAMYUoDwdg"} true; - R0, Gamma_R0 := 0bv64, true; - load24, Gamma_load24 := memory_load64_le(stack, R31), gamma_load64(Gamma_stack, R31); - R29, Gamma_R29 := load24, Gamma_load24; - load25, Gamma_load25 := memory_load64_le(stack, bvadd64(R31, 8bv64)), gamma_load64(Gamma_stack, bvadd64(R31, 8bv64)); - R30, Gamma_R30 := load25, Gamma_load25; - R31, Gamma_R31 := bvadd64(R31, 48bv64), Gamma_R31; - goto main_2068_basil_return; - main_2068_basil_return: - assume {:captureState "main_2068_basil_return"} true; + $load15, Gamma_$load15 := memory_load64_le(stack, R31), gamma_load64(Gamma_stack, R31); + R29, Gamma_R29 := $load15, Gamma_$load15; + $load16, Gamma_$load16 := memory_load64_le(stack, bvadd64(R31, 8bv64)), gamma_load64(Gamma_stack, bvadd64(R31, 8bv64)); + R30, Gamma_R30 := $load16, Gamma_$load16; + R31, Gamma_R31 := bvadd64(R31, 16bv64), Gamma_R31; + goto main_basil_return; + main_basil_return: + assume {:captureState "main_basil_return"} true; return; } -procedure FUN_6c0_1728(); - modifies Gamma_R16, Gamma_R17, Gamma_mem, R16, R17, mem; - free requires (memory_load64_le(mem, 2248bv64) == 131073bv64); - free requires (memory_load64_le(mem, 2256bv64) == 8241983568019286100bv64); - free requires (memory_load64_le(mem, 2264bv64) == 748482783423457568bv64); - free requires (memory_load64_le(mem, 2272bv64) == 0bv64); - free requires (memory_load64_le(mem, 2280bv64) == 2338615504306268244bv64); - free requires (memory_load64_le(mem, 2288bv64) == 2924860384375657bv64); - free requires (memory_load64_le(mem, 2296bv64) == 7017575154564032596bv64); - free requires (memory_load64_le(mem, 2304bv64) == 7089063228440191084bv64); - free requires (memory_load64_le(mem, 2312bv64) == 2675202446017455468bv64); - free requires (memory_load8_le(mem, 2320bv64) == 100bv8); - free requires (memory_load8_le(mem, 2321bv64) == 10bv8); - free requires (memory_load8_le(mem, 2322bv64) == 0bv8); - free requires (memory_load64_le(mem, 68992bv64) == 2064bv64); - free requires (memory_load64_le(mem, 69000bv64) == 1984bv64); - free requires (memory_load64_le(mem, 69616bv64) == 2068bv64); - free requires (memory_load64_le(mem, 69640bv64) == 69640bv64); - free ensures (memory_load64_le(mem, 2248bv64) == 131073bv64); - free ensures (memory_load64_le(mem, 2256bv64) == 8241983568019286100bv64); - free ensures (memory_load64_le(mem, 2264bv64) == 748482783423457568bv64); - free ensures (memory_load64_le(mem, 2272bv64) == 0bv64); - free ensures (memory_load64_le(mem, 2280bv64) == 2338615504306268244bv64); - free ensures (memory_load64_le(mem, 2288bv64) == 2924860384375657bv64); - free ensures (memory_load64_le(mem, 2296bv64) == 7017575154564032596bv64); - free ensures (memory_load64_le(mem, 2304bv64) == 7089063228440191084bv64); - free ensures (memory_load64_le(mem, 2312bv64) == 2675202446017455468bv64); - free ensures (memory_load8_le(mem, 2320bv64) == 100bv8); - free ensures (memory_load8_le(mem, 2321bv64) == 10bv8); - free ensures (memory_load8_le(mem, 2322bv64) == 0bv8); - free ensures (memory_load64_le(mem, 68992bv64) == 2064bv64); - free ensures (memory_load64_le(mem, 69000bv64) == 1984bv64); - free ensures (memory_load64_le(mem, 69616bv64) == 2068bv64); - free ensures (memory_load64_le(mem, 69640bv64) == 69640bv64); - -implementation FUN_6c0_1728() -{ - var Gamma_load33: bool; - var load33: bv64; - FUN_6c0_1728__0__z3eRO9k2T_a0u0N1n7WjQg: - assume {:captureState "FUN_6c0_1728__0__z3eRO9k2T_a0u0N1n7WjQg"} true; - R16, Gamma_R16 := 65536bv64, true; - call rely(); - load33, Gamma_load33 := memory_load64_le(mem, bvadd64(R16, 4040bv64)), (gamma_load64(Gamma_mem, bvadd64(R16, 4040bv64)) || L(mem, bvadd64(R16, 4040bv64))); - R17, Gamma_R17 := load33, Gamma_load33; - R16, Gamma_R16 := bvadd64(R16, 4040bv64), Gamma_R16; - call printf(); - goto FUN_6c0_1728_basil_return; - FUN_6c0_1728_basil_return: - assume {:captureState "FUN_6c0_1728_basil_return"} true; - return; -} - -procedure malloc(); - free requires (memory_load64_le(mem, 2248bv64) == 131073bv64); - free requires (memory_load64_le(mem, 2256bv64) == 8241983568019286100bv64); - free requires (memory_load64_le(mem, 2264bv64) == 748482783423457568bv64); - free requires (memory_load64_le(mem, 2272bv64) == 0bv64); - free requires (memory_load64_le(mem, 2280bv64) == 2338615504306268244bv64); - free requires (memory_load64_le(mem, 2288bv64) == 2924860384375657bv64); - free requires (memory_load64_le(mem, 2296bv64) == 7017575154564032596bv64); - free requires (memory_load64_le(mem, 2304bv64) == 7089063228440191084bv64); - free requires (memory_load64_le(mem, 2312bv64) == 2675202446017455468bv64); - free requires (memory_load8_le(mem, 2320bv64) == 100bv8); - free requires (memory_load8_le(mem, 2321bv64) == 10bv8); - free requires (memory_load8_le(mem, 2322bv64) == 0bv8); - free requires (memory_load64_le(mem, 68992bv64) == 2064bv64); - free requires (memory_load64_le(mem, 69000bv64) == 1984bv64); - free requires (memory_load64_le(mem, 69616bv64) == 2068bv64); - free requires (memory_load64_le(mem, 69640bv64) == 69640bv64); - free ensures (memory_load64_le(mem, 2248bv64) == 131073bv64); - free ensures (memory_load64_le(mem, 2256bv64) == 8241983568019286100bv64); - free ensures (memory_load64_le(mem, 2264bv64) == 748482783423457568bv64); - free ensures (memory_load64_le(mem, 2272bv64) == 0bv64); - free ensures (memory_load64_le(mem, 2280bv64) == 2338615504306268244bv64); - free ensures (memory_load64_le(mem, 2288bv64) == 2924860384375657bv64); - free ensures (memory_load64_le(mem, 2296bv64) == 7017575154564032596bv64); - free ensures (memory_load64_le(mem, 2304bv64) == 7089063228440191084bv64); - free ensures (memory_load64_le(mem, 2312bv64) == 2675202446017455468bv64); - free ensures (memory_load8_le(mem, 2320bv64) == 100bv8); - free ensures (memory_load8_le(mem, 2321bv64) == 10bv8); - free ensures (memory_load8_le(mem, 2322bv64) == 0bv8); - free ensures (memory_load64_le(mem, 68992bv64) == 2064bv64); - free ensures (memory_load64_le(mem, 69000bv64) == 1984bv64); - free ensures (memory_load64_le(mem, 69616bv64) == 2068bv64); - free ensures (memory_load64_le(mem, 69640bv64) == 69640bv64); - -procedure #free(); - free requires (memory_load64_le(mem, 2248bv64) == 131073bv64); - free requires (memory_load64_le(mem, 2256bv64) == 8241983568019286100bv64); - free requires (memory_load64_le(mem, 2264bv64) == 748482783423457568bv64); - free requires (memory_load64_le(mem, 2272bv64) == 0bv64); - free requires (memory_load64_le(mem, 2280bv64) == 2338615504306268244bv64); - free requires (memory_load64_le(mem, 2288bv64) == 2924860384375657bv64); - free requires (memory_load64_le(mem, 2296bv64) == 7017575154564032596bv64); - free requires (memory_load64_le(mem, 2304bv64) == 7089063228440191084bv64); - free requires (memory_load64_le(mem, 2312bv64) == 2675202446017455468bv64); - free requires (memory_load8_le(mem, 2320bv64) == 100bv8); - free requires (memory_load8_le(mem, 2321bv64) == 10bv8); - free requires (memory_load8_le(mem, 2322bv64) == 0bv8); - free requires (memory_load64_le(mem, 68992bv64) == 2064bv64); - free requires (memory_load64_le(mem, 69000bv64) == 1984bv64); - free requires (memory_load64_le(mem, 69616bv64) == 2068bv64); - free requires (memory_load64_le(mem, 69640bv64) == 69640bv64); - free ensures (memory_load64_le(mem, 2248bv64) == 131073bv64); - free ensures (memory_load64_le(mem, 2256bv64) == 8241983568019286100bv64); - free ensures (memory_load64_le(mem, 2264bv64) == 748482783423457568bv64); - free ensures (memory_load64_le(mem, 2272bv64) == 0bv64); - free ensures (memory_load64_le(mem, 2280bv64) == 2338615504306268244bv64); - free ensures (memory_load64_le(mem, 2288bv64) == 2924860384375657bv64); - free ensures (memory_load64_le(mem, 2296bv64) == 7017575154564032596bv64); - free ensures (memory_load64_le(mem, 2304bv64) == 7089063228440191084bv64); - free ensures (memory_load64_le(mem, 2312bv64) == 2675202446017455468bv64); - free ensures (memory_load8_le(mem, 2320bv64) == 100bv8); - free ensures (memory_load8_le(mem, 2321bv64) == 10bv8); - free ensures (memory_load8_le(mem, 2322bv64) == 0bv8); - free ensures (memory_load64_le(mem, 68992bv64) == 2064bv64); - free ensures (memory_load64_le(mem, 69000bv64) == 1984bv64); - free ensures (memory_load64_le(mem, 69616bv64) == 2068bv64); - free ensures (memory_load64_le(mem, 69640bv64) == 69640bv64); - -procedure printf(); - free requires (memory_load64_le(mem, 2248bv64) == 131073bv64); - free requires (memory_load64_le(mem, 2256bv64) == 8241983568019286100bv64); - free requires (memory_load64_le(mem, 2264bv64) == 748482783423457568bv64); - free requires (memory_load64_le(mem, 2272bv64) == 0bv64); - free requires (memory_load64_le(mem, 2280bv64) == 2338615504306268244bv64); - free requires (memory_load64_le(mem, 2288bv64) == 2924860384375657bv64); - free requires (memory_load64_le(mem, 2296bv64) == 7017575154564032596bv64); - free requires (memory_load64_le(mem, 2304bv64) == 7089063228440191084bv64); - free requires (memory_load64_le(mem, 2312bv64) == 2675202446017455468bv64); - free requires (memory_load8_le(mem, 2320bv64) == 100bv8); - free requires (memory_load8_le(mem, 2321bv64) == 10bv8); - free requires (memory_load8_le(mem, 2322bv64) == 0bv8); - free requires (memory_load64_le(mem, 68992bv64) == 2064bv64); - free requires (memory_load64_le(mem, 69000bv64) == 1984bv64); - free requires (memory_load64_le(mem, 69616bv64) == 2068bv64); - free requires (memory_load64_le(mem, 69640bv64) == 69640bv64); - free ensures (memory_load64_le(mem, 2248bv64) == 131073bv64); - free ensures (memory_load64_le(mem, 2256bv64) == 8241983568019286100bv64); - free ensures (memory_load64_le(mem, 2264bv64) == 748482783423457568bv64); - free ensures (memory_load64_le(mem, 2272bv64) == 0bv64); - free ensures (memory_load64_le(mem, 2280bv64) == 2338615504306268244bv64); - free ensures (memory_load64_le(mem, 2288bv64) == 2924860384375657bv64); - free ensures (memory_load64_le(mem, 2296bv64) == 7017575154564032596bv64); - free ensures (memory_load64_le(mem, 2304bv64) == 7089063228440191084bv64); - free ensures (memory_load64_le(mem, 2312bv64) == 2675202446017455468bv64); - free ensures (memory_load8_le(mem, 2320bv64) == 100bv8); - free ensures (memory_load8_le(mem, 2321bv64) == 10bv8); - free ensures (memory_load8_le(mem, 2322bv64) == 0bv8); - free ensures (memory_load64_le(mem, 68992bv64) == 2064bv64); - free ensures (memory_load64_le(mem, 69000bv64) == 1984bv64); - free ensures (memory_load64_le(mem, 69616bv64) == 2068bv64); - free ensures (memory_load64_le(mem, 69640bv64) == 69640bv64); +procedure __printf_chk(); + free requires (memory_load64_le(mem, 4196440bv64) == 131073bv64); + free requires (memory_load64_le(mem, 4196448bv64) == 8241983568019286100bv64); + free requires (memory_load64_le(mem, 4196456bv64) == 748482783423457568bv64); + free requires (memory_load64_le(mem, 4196464bv64) == 0bv64); + free requires (memory_load64_le(mem, 4196472bv64) == 2338615504306268244bv64); + free requires (memory_load64_le(mem, 4196480bv64) == 2924860384375657bv64); + free requires (memory_load64_le(mem, 4196488bv64) == 7017575154564032596bv64); + free requires (memory_load64_le(mem, 4196496bv64) == 7089063228440191084bv64); + free requires (memory_load64_le(mem, 4196504bv64) == 2675202446017455468bv64); + free requires (memory_load8_le(mem, 4196512bv64) == 100bv8); + free requires (memory_load8_le(mem, 4196513bv64) == 10bv8); + free requires (memory_load8_le(mem, 4196514bv64) == 0bv8); + free ensures (memory_load64_le(mem, 4196440bv64) == 131073bv64); + free ensures (memory_load64_le(mem, 4196448bv64) == 8241983568019286100bv64); + free ensures (memory_load64_le(mem, 4196456bv64) == 748482783423457568bv64); + free ensures (memory_load64_le(mem, 4196464bv64) == 0bv64); + free ensures (memory_load64_le(mem, 4196472bv64) == 2338615504306268244bv64); + free ensures (memory_load64_le(mem, 4196480bv64) == 2924860384375657bv64); + free ensures (memory_load64_le(mem, 4196488bv64) == 7017575154564032596bv64); + free ensures (memory_load64_le(mem, 4196496bv64) == 7089063228440191084bv64); + free ensures (memory_load64_le(mem, 4196504bv64) == 2675202446017455468bv64); + free ensures (memory_load8_le(mem, 4196512bv64) == 100bv8); + free ensures (memory_load8_le(mem, 4196513bv64) == 10bv8); + free ensures (memory_load8_le(mem, 4196514bv64) == 0bv8); diff --git a/src/test/correct/malloc_with_local/gcc_O2/malloc_with_local.adt b/src/test/correct/malloc_with_local/gcc_O2/malloc_with_local.adt deleted file mode 100644 index e995e5cb8..000000000 --- a/src/test/correct/malloc_with_local/gcc_O2/malloc_with_local.adt +++ /dev/null @@ -1,567 +0,0 @@ -Project(Attrs([Attr("filename","\"gcc_O2/malloc_with_local.out\""), -Attr("image-specification","(declare abi (name str))\n(declare arch (name str))\n(declare base-address (addr int))\n(declare bias (off int))\n(declare bits (size int))\n(declare code-region (addr int) (size int) (off int))\n(declare code-start (addr int))\n(declare entry-point (addr int))\n(declare external-reference (addr int) (name str))\n(declare format (name str))\n(declare is-executable (flag bool))\n(declare is-little-endian (flag bool))\n(declare llvm:base-address (addr int))\n(declare llvm:code-entry (name str) (off int) (size int))\n(declare llvm:coff-import-library (name str))\n(declare llvm:coff-virtual-section-header (name str) (addr int) (size int))\n(declare llvm:elf-program-header (name str) (off int) (size int))\n(declare llvm:elf-program-header-flags (name str) (ld bool) (r bool) \n (w bool) (x bool))\n(declare llvm:elf-virtual-program-header (name str) (addr int) (size int))\n(declare llvm:entry-point (addr int))\n(declare llvm:macho-symbol (name str) (value int))\n(declare llvm:name-reference (at int) (name str))\n(declare llvm:relocation (at int) (addr int))\n(declare llvm:section-entry (name str) (addr int) (size int) (off int))\n(declare llvm:section-flags (name str) (r bool) (w bool) (x bool))\n(declare llvm:segment-command (name str) (off int) (size int))\n(declare llvm:segment-command-flags (name str) (r bool) (w bool) (x bool))\n(declare llvm:symbol-entry (name str) (addr int) (size int) (off int)\n (value int))\n(declare llvm:virtual-segment-command (name str) (addr int) (size int))\n(declare mapped (addr int) (size int) (off int))\n(declare named-region (addr int) (size int) (name str))\n(declare named-symbol (addr int) (name str))\n(declare require (name str))\n(declare section (addr int) (size int))\n(declare segment (addr int) (size int) (r bool) (w bool) (x bool))\n(declare subarch (name str))\n(declare symbol-chunk (addr int) (size int) (root int))\n(declare symbol-value (addr int) (value int))\n(declare system (name str))\n(declare vendor (name str))\n\n(abi unknown)\n(arch aarch64)\n(base-address 0)\n(bias 0)\n(bits 64)\n(code-region 2068 20 2068)\n(code-region 1664 404 1664)\n(code-region 1504 112 1504)\n(code-region 1472 24 1472)\n(code-start 1844)\n(code-start 1792)\n(code-start 1664)\n(entry-point 1792)\n(external-reference 69592 _ITM_deregisterTMCloneTable)\n(external-reference 69600 __cxa_finalize)\n(external-reference 69608 __gmon_start__)\n(external-reference 69624 _ITM_registerTMCloneTable)\n(external-reference 69544 __libc_start_main)\n(external-reference 69552 __cxa_finalize)\n(external-reference 69560 __printf_chk)\n(external-reference 69568 __gmon_start__)\n(external-reference 69576 abort)\n(format elf)\n(is-executable true)\n(is-little-endian true)\n(llvm:base-address 0)\n(llvm:code-entry abort 0 0)\n(llvm:code-entry __printf_chk 0 0)\n(llvm:code-entry __cxa_finalize 0 0)\n(llvm:code-entry __libc_start_main 0 0)\n(llvm:code-entry _init 1472 0)\n(llvm:code-entry main 1664 80)\n(llvm:code-entry _start 1792 52)\n(llvm:code-entry abort@GLIBC_2.17 0 0)\n(llvm:code-entry __printf_chk@GLIBC_2.17 0 0)\n(llvm:code-entry _fini 2068 0)\n(llvm:code-entry __cxa_finalize@GLIBC_2.17 0 0)\n(llvm:code-entry __libc_start_main@GLIBC_2.34 0 0)\n(llvm:code-entry frame_dummy 2064 0)\n(llvm:code-entry __do_global_dtors_aux 1984 0)\n(llvm:code-entry register_tm_clones 1920 0)\n(llvm:code-entry deregister_tm_clones 1872 0)\n(llvm:code-entry call_weak_fn 1844 20)\n(llvm:code-entry .fini 2068 20)\n(llvm:code-entry .text 1664 404)\n(llvm:code-entry .plt 1504 112)\n(llvm:code-entry .init 1472 24)\n(llvm:elf-program-header 08 3472 624)\n(llvm:elf-program-header 07 0 0)\n(llvm:elf-program-header 06 2164 60)\n(llvm:elf-program-header 05 596 68)\n(llvm:elf-program-header 04 3488 496)\n(llvm:elf-program-header 03 3472 640)\n(llvm:elf-program-header 02 0 2396)\n(llvm:elf-program-header 01 568 27)\n(llvm:elf-program-header 00 64 504)\n(llvm:elf-program-header-flags 08 false true false false)\n(llvm:elf-program-header-flags 07 false true true false)\n(llvm:elf-program-header-flags 06 false true false false)\n(llvm:elf-program-header-flags 05 false true false false)\n(llvm:elf-program-header-flags 04 false true true false)\n(llvm:elf-program-header-flags 03 true true true false)\n(llvm:elf-program-header-flags 02 true true false true)\n(llvm:elf-program-header-flags 01 false true false false)\n(llvm:elf-program-header-flags 00 false true false false)\n(llvm:elf-virtual-program-header 08 69008 624)\n(llvm:elf-virtual-program-header 07 0 0)\n(llvm:elf-virtual-program-header 06 2164 60)\n(llvm:elf-virtual-program-header 05 596 68)\n(llvm:elf-virtual-program-header 04 69024 496)\n(llvm:elf-virtual-program-header 03 69008 648)\n(llvm:elf-virtual-program-header 02 0 2396)\n(llvm:elf-virtual-program-header 01 568 27)\n(llvm:elf-virtual-program-header 00 64 504)\n(llvm:entry-point 1792)\n(llvm:name-reference 69576 abort)\n(llvm:name-reference 69568 __gmon_start__)\n(llvm:name-reference 69560 __printf_chk)\n(llvm:name-reference 69552 __cxa_finalize)\n(llvm:name-reference 69544 __libc_start_main)\n(llvm:name-reference 69624 _ITM_registerTMCloneTable)\n(llvm:name-reference 69608 __gmon_start__)\n(llvm:name-reference 69600 __cxa_finalize)\n(llvm:name-reference 69592 _ITM_deregisterTMCloneTable)\n(llvm:section-entry .shstrtab 0 250 6849)\n(llvm:section-entry .strtab 0 577 6272)\n(llvm:section-entry .symtab 0 2112 4160)\n(llvm:section-entry .comment 0 43 4112)\n(llvm:section-entry .bss 69648 8 4112)\n(llvm:section-entry .data 69632 16 4096)\n(llvm:section-entry .got 69520 112 3984)\n(llvm:section-entry .dynamic 69024 496 3488)\n(llvm:section-entry .fini_array 69016 8 3480)\n(llvm:section-entry .init_array 69008 8 3472)\n(llvm:section-entry .eh_frame 2224 172 2224)\n(llvm:section-entry .eh_frame_hdr 2164 60 2164)\n(llvm:section-entry .rodata 2088 75 2088)\n(llvm:section-entry .fini 2068 20 2068)\n(llvm:section-entry .text 1664 404 1664)\n(llvm:section-entry .plt 1504 112 1504)\n(llvm:section-entry .init 1472 24 1472)\n(llvm:section-entry .rela.plt 1352 120 1352)\n(llvm:section-entry .rela.dyn 1160 192 1160)\n(llvm:section-entry .gnu.version_r 1112 48 1112)\n(llvm:section-entry .gnu.version 1090 20 1090)\n(llvm:section-entry .dynstr 936 154 936)\n(llvm:section-entry .dynsym 696 240 696)\n(llvm:section-entry .gnu.hash 664 28 664)\n(llvm:section-entry .note.ABI-tag 632 32 632)\n(llvm:section-entry .note.gnu.build-id 596 36 596)\n(llvm:section-entry .interp 568 27 568)\n(llvm:section-flags .shstrtab true false false)\n(llvm:section-flags .strtab true false false)\n(llvm:section-flags .symtab true false false)\n(llvm:section-flags .comment true false false)\n(llvm:section-flags .bss true true false)\n(llvm:section-flags .data true true false)\n(llvm:section-flags .got true true false)\n(llvm:section-flags .dynamic true true false)\n(llvm:section-flags .fini_array true true false)\n(llvm:section-flags .init_array true true false)\n(llvm:section-flags .eh_frame true false false)\n(llvm:section-flags .eh_frame_hdr true false false)\n(llvm:section-flags .rodata true false false)\n(llvm:section-flags .fini true false true)\n(llvm:section-flags .text true false true)\n(llvm:section-flags .plt true false true)\n(llvm:section-flags .init true false true)\n(llvm:section-flags .rela.plt true false false)\n(llvm:section-flags .rela.dyn true false false)\n(llvm:section-flags .gnu.version_r true false false)\n(llvm:section-flags .gnu.version true false false)\n(llvm:section-flags .dynstr true false false)\n(llvm:section-flags .dynsym true false false)\n(llvm:section-flags .gnu.hash true false false)\n(llvm:section-flags .note.ABI-tag true false false)\n(llvm:section-flags .note.gnu.build-id true false false)\n(llvm:section-flags .interp true false false)\n(llvm:symbol-entry abort 0 0 0 0)\n(llvm:symbol-entry __printf_chk 0 0 0 0)\n(llvm:symbol-entry __cxa_finalize 0 0 0 0)\n(llvm:symbol-entry __libc_start_main 0 0 0 0)\n(llvm:symbol-entry _init 1472 0 1472 1472)\n(llvm:symbol-entry main 1664 80 1664 1664)\n(llvm:symbol-entry _start 1792 52 1792 1792)\n(llvm:symbol-entry abort@GLIBC_2.17 0 0 0 0)\n(llvm:symbol-entry __printf_chk@GLIBC_2.17 0 0 0 0)\n(llvm:symbol-entry _fini 2068 0 2068 2068)\n(llvm:symbol-entry __cxa_finalize@GLIBC_2.17 0 0 0 0)\n(llvm:symbol-entry __libc_start_main@GLIBC_2.34 0 0 0 0)\n(llvm:symbol-entry frame_dummy 2064 0 2064 2064)\n(llvm:symbol-entry __do_global_dtors_aux 1984 0 1984 1984)\n(llvm:symbol-entry register_tm_clones 1920 0 1920 1920)\n(llvm:symbol-entry deregister_tm_clones 1872 0 1872 1872)\n(llvm:symbol-entry call_weak_fn 1844 20 1844 1844)\n(mapped 0 2396 0)\n(mapped 69008 640 3472)\n(named-region 0 2396 02)\n(named-region 69008 648 03)\n(named-region 568 27 .interp)\n(named-region 596 36 .note.gnu.build-id)\n(named-region 632 32 .note.ABI-tag)\n(named-region 664 28 .gnu.hash)\n(named-region 696 240 .dynsym)\n(named-region 936 154 .dynstr)\n(named-region 1090 20 .gnu.version)\n(named-region 1112 48 .gnu.version_r)\n(named-region 1160 192 .rela.dyn)\n(named-region 1352 120 .rela.plt)\n(named-region 1472 24 .init)\n(named-region 1504 112 .plt)\n(named-region 1664 404 .text)\n(named-region 2068 20 .fini)\n(named-region 2088 75 .rodata)\n(named-region 2164 60 .eh_frame_hdr)\n(named-region 2224 172 .eh_frame)\n(named-region 69008 8 .init_array)\n(named-region 69016 8 .fini_array)\n(named-region 69024 496 .dynamic)\n(named-region 69520 112 .got)\n(named-region 69632 16 .data)\n(named-region 69648 8 .bss)\n(named-region 0 43 .comment)\n(named-region 0 2112 .symtab)\n(named-region 0 577 .strtab)\n(named-region 0 250 .shstrtab)\n(named-symbol 1844 call_weak_fn)\n(named-symbol 1872 deregister_tm_clones)\n(named-symbol 1920 register_tm_clones)\n(named-symbol 1984 __do_global_dtors_aux)\n(named-symbol 2064 frame_dummy)\n(named-symbol 0 __libc_start_main@GLIBC_2.34)\n(named-symbol 0 __cxa_finalize@GLIBC_2.17)\n(named-symbol 2068 _fini)\n(named-symbol 0 __printf_chk@GLIBC_2.17)\n(named-symbol 0 abort@GLIBC_2.17)\n(named-symbol 1792 _start)\n(named-symbol 1664 main)\n(named-symbol 1472 _init)\n(named-symbol 0 __libc_start_main)\n(named-symbol 0 __cxa_finalize)\n(named-symbol 0 __printf_chk)\n(named-symbol 0 abort)\n(require libc.so.6)\n(section 568 27)\n(section 596 36)\n(section 632 32)\n(section 664 28)\n(section 696 240)\n(section 936 154)\n(section 1090 20)\n(section 1112 48)\n(section 1160 192)\n(section 1352 120)\n(section 1472 24)\n(section 1504 112)\n(section 1664 404)\n(section 2068 20)\n(section 2088 75)\n(section 2164 60)\n(section 2224 172)\n(section 69008 8)\n(section 69016 8)\n(section 69024 496)\n(section 69520 112)\n(section 69632 16)\n(section 69648 8)\n(section 0 43)\n(section 0 2112)\n(section 0 577)\n(section 0 250)\n(segment 0 2396 true false true)\n(segment 69008 648 true true false)\n(subarch v8)\n(symbol-chunk 1844 20 1844)\n(symbol-chunk 1792 52 1792)\n(symbol-chunk 1664 80 1664)\n(symbol-value 1844 1844)\n(symbol-value 1872 1872)\n(symbol-value 1920 1920)\n(symbol-value 1984 1984)\n(symbol-value 2064 2064)\n(symbol-value 2068 2068)\n(symbol-value 1792 1792)\n(symbol-value 1664 1664)\n(symbol-value 1472 1472)\n(symbol-value 0 0)\n(system \"\")\n(vendor \"\")\n"), -Attr("abi-name","\"aarch64-linux-gnu-elf\"")]), -Sections([Section(".shstrtab", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xc0\x1b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x38\x00\x09\x00\x40\x00\x1c\x00\x1b\x00\x06\x00\x00\x00\x04\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x04\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5c\x09\x00\x00\x00\x00\x00\x00\x5c\x09\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x01\x00\x00\x00\x06\x00\x00\x00\x90\x0d\x00\x00\x00\x00\x00\x00\x90\x0d"), -Section(".strtab", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xc0\x1b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x38\x00\x09\x00\x40\x00\x1c\x00\x1b\x00\x06\x00\x00\x00\x04\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x04\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5c\x09\x00\x00\x00\x00\x00\x00\x5c\x09\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x01\x00\x00\x00\x06\x00\x00\x00\x90\x0d\x00\x00\x00\x00\x00\x00\x90\x0d\x01\x00\x00\x00\x00\x00\x90\x0d\x01\x00\x00\x00\x00\x00\x80\x02\x00\x00\x00\x00\x00\x00\x88\x02\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x02\x00\x00\x00\x06\x00\x00\x00\xa0\x0d\x00\x00\x00\x00\x00\x00\xa0\x0d\x01\x00\x00\x00\x00\x00\xa0\x0d\x01\x00\x00\x00\x00\x00\xf0\x01\x00\x00\x00\x00\x00\x00\xf0\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x04\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x50\xe5\x74\x64\x04\x00\x00\x00\x74\x08\x00\x00\x00\x00\x00\x00\x74\x08\x00\x00\x00\x00\x00\x00\x74\x08\x00\x00\x00\x00\x00\x00\x3c\x00\x00\x00\x00\x00\x00\x00\x3c\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x51\xe5\x74\x64\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x52\xe5\x74\x64\x04\x00\x00\x00\x90\x0d\x00\x00\x00\x00\x00\x00\x90\x0d\x01\x00\x00\x00\x00\x00\x90\x0d\x01\x00\x00\x00\x00\x00\x70\x02\x00\x00\x00\x00\x00\x00\x70\x02\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x2f\x6c\x69\x62\x2f\x6c\x64\x2d\x6c"), -Section(".symtab", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xc0\x1b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x38\x00\x09\x00\x40\x00\x1c\x00\x1b\x00\x06\x00\x00\x00\x04\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x04\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5c\x09\x00\x00\x00\x00\x00\x00\x5c\x09\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x01\x00\x00\x00\x06\x00\x00\x00\x90\x0d\x00\x00\x00\x00\x00\x00\x90\x0d\x01\x00\x00\x00\x00\x00\x90\x0d\x01\x00\x00\x00\x00\x00\x80\x02\x00\x00\x00\x00\x00\x00\x88\x02\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x02\x00\x00\x00\x06\x00\x00\x00\xa0\x0d\x00\x00\x00\x00\x00\x00\xa0\x0d\x01\x00\x00\x00\x00\x00\xa0\x0d\x01\x00\x00\x00\x00\x00\xf0\x01\x00\x00\x00\x00\x00\x00\xf0\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x04\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x50\xe5\x74\x64\x04\x00\x00\x00\x74\x08\x00\x00\x00\x00\x00\x00\x74\x08\x00\x00\x00\x00\x00\x00\x74\x08\x00\x00\x00\x00\x00\x00\x3c\x00\x00\x00\x00\x00\x00\x00\x3c\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x51\xe5\x74\x64\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x52\xe5\x74\x64\x04\x00\x00\x00\x90\x0d\x00\x00\x00\x00\x00\x00\x90\x0d\x01\x00\x00\x00\x00\x00\x90\x0d\x01\x00\x00\x00\x00\x00\x70\x02\x00\x00\x00\x00\x00\x00\x70\x02\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x2f\x6c\x69\x62\x2f\x6c\x64\x2d\x6c\x69\x6e\x75\x78\x2d\x61\x61\x72\x63\x68\x36\x34\x2e\x73\x6f\x2e\x31\x00\x00\x04\x00\x00\x00\x14\x00\x00\x00\x03\x00\x00\x00\x47\x4e\x55\x00\x0b\xf3\xe5\xc7\xbf\x88\xca\x4c\x8d\x55\xeb\xe6\xaa\xff\x44\x72\x99\x52\x7e\x02\x04\x00\x00\x00\x10\x00\x00\x00\x01\x00\x00\x00\x47\x4e\x55\x00\x00\x00\x00\x00\x03\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x01\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x0b\x00\xc0\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x16\x00\x00\x10\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1d\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x55\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x22\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x71\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2f\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x80\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5f\x5f\x63\x78\x61\x5f\x66\x69\x6e\x61\x6c\x69\x7a\x65\x00\x5f\x5f\x70\x72\x69\x6e\x74\x66\x5f\x63\x68\x6b\x00\x5f\x5f\x6c\x69\x62\x63\x5f\x73\x74\x61\x72\x74\x5f\x6d\x61\x69\x6e\x00\x61\x62\x6f\x72\x74\x00\x6c\x69\x62\x63\x2e\x73\x6f\x2e\x36\x00\x47\x4c\x49\x42\x43\x5f\x32\x2e\x31\x37\x00\x47\x4c\x49\x42\x43\x5f\x32\x2e\x33\x34\x00\x5f\x49\x54\x4d\x5f\x64\x65\x72\x65\x67\x69\x73\x74\x65\x72\x54\x4d\x43\x6c\x6f\x6e\x65\x54\x61\x62\x6c\x65\x00\x5f\x5f\x67\x6d\x6f\x6e\x5f\x73\x74\x61\x72\x74\x5f\x5f\x00\x5f\x49\x54\x4d\x5f\x72\x65\x67\x69\x73\x74\x65\x72\x54\x4d\x43\x6c\x6f\x6e\x65\x54\x61\x62\x6c\x65\x00\x00\x00\x00\x00\x00\x00\x02\x00\x01\x00\x03\x00\x03\x00\x01\x00\x03\x00\x01\x00\x00\x00\x01\x00\x02\x00\x35\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x97\x91\x96\x06\x00\x00\x03\x00\x3f\x00\x00\x00\x10\x00\x00\x00\xb4\x91\x96\x06\x00\x00\x02\x00\x4a\x00\x00\x00\x00\x00\x00\x00\x90\x0d\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x10\x08\x00\x00\x00\x00\x00\x00\x98\x0d\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\xc0\x07\x00\x00\x00\x00\x00\x00\xf0\x0f\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x80\x06\x00\x00\x00\x00\x00\x00\x08\x10\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x08\x10\x01\x00\x00\x00\x00\x00\xd8\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe0\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe8\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xf8\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x09\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xa8\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xb0\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xb8\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xc0\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xc8\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1f\x20\x03\xd5\xfd\x7b\xbf\xa9\xfd\x03\x00\x91\x5a\x00\x00\x94\xfd\x7b\xc1\xa8\xc0\x03\x5f\xd6\x00\x00\x00\x00\x00\x00\x00\x00\xf0\x7b\xbf\xa9\x90\x00\x00\x90\x11\xd2\x47\xf9\x10\x82\x3e\x91\x20\x02\x1f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x90\x00\x00\x90\x11\xd6\x47\xf9\x10\xa2\x3e\x91\x20\x02\x1f\xd6\x90\x00\x00\x90\x11\xda\x47\xf9\x10\xc2\x3e\x91\x20\x02\x1f\xd6\x90\x00\x00\x90\x11\xde\x47\xf9\x10\xe2\x3e\x91\x20\x02\x1f\xd6\x90\x00\x00\x90\x11\xe2\x47\xf9\x10\x02\x3f\x91\x20\x02\x1f\xd6\x90\x00\x00\x90\x11\xe6\x47\xf9\x10\x22\x3f\x91\x20\x02\x1f\xd6\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xfd\x7b\xbf\xa9\x22\x08\x80\x52\x01\x00\x00\x90\xfd\x03\x00\x91\x21\xc0\x20\x91\x20\x00\x80\x52\xe2\xff\xff\x97\x42\x05\x80\x52\x01\x00\x00\x90\x20\x00\x80\x52\x21\x20\x21\x91\xdd\xff\xff\x97\x42\x01\x80\x52\x01\x00\x00\x90\x20\x00\x80\x52\x21\x60\x21\x91\xd8\xff\xff\x97\x00\x00\x80\x52\xfd\x7b\xc1\xa8\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1d\x00\x80\xd2\x1e\x00\x80\xd2\xe5\x03\x00\xaa\xe1\x03\x40\xf9\xe2\x23\x00\x91\xe6\x03\x00\x91\x80\x00\x00\x90\x00\xf8\x47\xf9\x03\x00\x80\xd2\x04\x00\x80\xd2\xb5\xff\xff\x97\xc4\xff\xff\x97\x80\x00\x00\x90\x00\xf4\x47\xf9\x40\x00\x00\xb4\xbc\xff\xff\x17\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x80\x00\x00\xb0\x00\x40\x00\x91\x81\x00\x00\xb0\x21\x40\x00\x91\x3f\x00\x00\xeb\xc0\x00\x00\x54\x81\x00\x00\x90\x21\xec\x47\xf9\x61\x00\x00\xb4\xf0\x03\x01\xaa\x00\x02\x1f\xd6\xc0\x03\x5f\xd6\x80\x00\x00\xb0\x00\x40\x00\x91\x81\x00\x00\xb0\x21\x40\x00\x91\x21\x00\x00\xcb\x22\xfc\x7f\xd3\x41\x0c\x81\x8b\x21\xfc\x41\x93\xc1\x00\x00\xb4\x82\x00\x00\x90\x42\xfc\x47\xf9\x62\x00\x00\xb4\xf0\x03\x02\xaa\x00\x02\x1f\xd6\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\xfd\x7b\xbe\xa9\xfd\x03\x00\x91\xf3\x0b\x00\xf9\x93\x00\x00\xb0\x60\x42\x40\x39\x40\x01\x00\x35\x80\x00\x00\x90\x00\xf0\x47\xf9\x80\x00\x00\xb4\x80\x00\x00\xb0\x00\x04\x40\xf9\x89\xff\xff\x97\xd8\xff\xff\x97\x20\x00\x80\x52\x60\x42\x00\x39\xf3\x0b\x40\xf9\xfd\x7b\xc2\xa8\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\xdc\xff\xff\x17\x1f\x20\x03\xd5\xfd\x7b\xbf\xa9\xfd\x03\x00\x91\xfd\x7b\xc1\xa8\xc0\x03\x5f\xd6\x01\x00\x02\x00\x00\x00\x00\x00\x54\x68\x65\x20\x63\x68\x61\x72\x20\x69\x73\x3a\x20\x25\x63\x0a"), -Section(".comment", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xc0\x1b\x00"), -Section(".interp", 0x238, "\x2f\x6c\x69\x62\x2f\x6c\x64\x2d\x6c\x69\x6e\x75\x78\x2d\x61\x61\x72\x63\x68\x36\x34\x2e\x73\x6f\x2e\x31\x00"), -Section(".note.gnu.build-id", 0x254, "\x04\x00\x00\x00\x14\x00\x00\x00\x03\x00\x00\x00\x47\x4e\x55\x00\x0b\xf3\xe5\xc7\xbf\x88\xca\x4c\x8d\x55\xeb\xe6\xaa\xff\x44\x72\x99\x52\x7e\x02"), -Section(".note.ABI-tag", 0x278, "\x04\x00\x00\x00\x10\x00\x00\x00\x01\x00\x00\x00\x47\x4e\x55\x00\x00\x00\x00\x00\x03\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00"), -Section(".gnu.hash", 0x298, "\x01\x00\x00\x00\x01\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".dynsym", 0x2B8, "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x0b\x00\xc0\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x16\x00\x00\x10\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1d\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x55\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x22\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x71\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2f\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x80\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".dynstr", 0x3A8, "\x00\x5f\x5f\x63\x78\x61\x5f\x66\x69\x6e\x61\x6c\x69\x7a\x65\x00\x5f\x5f\x70\x72\x69\x6e\x74\x66\x5f\x63\x68\x6b\x00\x5f\x5f\x6c\x69\x62\x63\x5f\x73\x74\x61\x72\x74\x5f\x6d\x61\x69\x6e\x00\x61\x62\x6f\x72\x74\x00\x6c\x69\x62\x63\x2e\x73\x6f\x2e\x36\x00\x47\x4c\x49\x42\x43\x5f\x32\x2e\x31\x37\x00\x47\x4c\x49\x42\x43\x5f\x32\x2e\x33\x34\x00\x5f\x49\x54\x4d\x5f\x64\x65\x72\x65\x67\x69\x73\x74\x65\x72\x54\x4d\x43\x6c\x6f\x6e\x65\x54\x61\x62\x6c\x65\x00\x5f\x5f\x67\x6d\x6f\x6e\x5f\x73\x74\x61\x72\x74\x5f\x5f\x00\x5f\x49\x54\x4d\x5f\x72\x65\x67\x69\x73\x74\x65\x72\x54\x4d\x43\x6c\x6f\x6e\x65\x54\x61\x62\x6c\x65\x00"), -Section(".gnu.version", 0x442, "\x00\x00\x00\x00\x00\x00\x02\x00\x01\x00\x03\x00\x03\x00\x01\x00\x03\x00\x01\x00"), -Section(".gnu.version_r", 0x458, "\x01\x00\x02\x00\x35\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x97\x91\x96\x06\x00\x00\x03\x00\x3f\x00\x00\x00\x10\x00\x00\x00\xb4\x91\x96\x06\x00\x00\x02\x00\x4a\x00\x00\x00\x00\x00\x00\x00"), -Section(".rela.dyn", 0x488, "\x90\x0d\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x10\x08\x00\x00\x00\x00\x00\x00\x98\x0d\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\xc0\x07\x00\x00\x00\x00\x00\x00\xf0\x0f\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x80\x06\x00\x00\x00\x00\x00\x00\x08\x10\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x08\x10\x01\x00\x00\x00\x00\x00\xd8\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe0\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe8\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xf8\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x09\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".rela.plt", 0x548, "\xa8\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xb0\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xb8\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xc0\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xc8\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".init", 0x5C0, "\x1f\x20\x03\xd5\xfd\x7b\xbf\xa9\xfd\x03\x00\x91\x5a\x00\x00\x94\xfd\x7b\xc1\xa8\xc0\x03\x5f\xd6"), -Section(".plt", 0x5E0, "\xf0\x7b\xbf\xa9\x90\x00\x00\x90\x11\xd2\x47\xf9\x10\x82\x3e\x91\x20\x02\x1f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x90\x00\x00\x90\x11\xd6\x47\xf9\x10\xa2\x3e\x91\x20\x02\x1f\xd6\x90\x00\x00\x90\x11\xda\x47\xf9\x10\xc2\x3e\x91\x20\x02\x1f\xd6\x90\x00\x00\x90\x11\xde\x47\xf9\x10\xe2\x3e\x91\x20\x02\x1f\xd6\x90\x00\x00\x90\x11\xe2\x47\xf9\x10\x02\x3f\x91\x20\x02\x1f\xd6\x90\x00\x00\x90\x11\xe6\x47\xf9\x10\x22\x3f\x91\x20\x02\x1f\xd6"), -Section(".fini", 0x814, "\x1f\x20\x03\xd5\xfd\x7b\xbf\xa9\xfd\x03\x00\x91\xfd\x7b\xc1\xa8\xc0\x03\x5f\xd6"), -Section(".rodata", 0x828, "\x01\x00\x02\x00\x00\x00\x00\x00\x54\x68\x65\x20\x63\x68\x61\x72\x20\x69\x73\x3a\x20\x25\x63\x0a\x00\x00\x00\x00\x00\x00\x00\x00\x54\x68\x65\x20\x69\x6e\x74\x20\x69\x73\x3a\x20\x25\x64\x0a\x00\x54\x68\x65\x20\x6c\x6f\x63\x61\x6c\x20\x76\x61\x72\x69\x61\x62\x6c\x65\x20\x69\x73\x3a\x20\x25\x64\x0a\x00"), -Section(".eh_frame_hdr", 0x874, "\x01\x1b\x03\x3b\x38\x00\x00\x00\x06\x00\x00\x00\x0c\xfe\xff\xff\xc4\x00\x00\x00\x8c\xfe\xff\xff\x50\x00\x00\x00\xdc\xfe\xff\xff\x64\x00\x00\x00\x0c\xff\xff\xff\x78\x00\x00\x00\x4c\xff\xff\xff\x8c\x00\x00\x00\x9c\xff\xff\xff\xb0\x00\x00\x00"), -Section(".eh_frame", 0x8B0, "\x10\x00\x00\x00\x00\x00\x00\x00\x01\x7a\x52\x00\x04\x78\x1e\x01\x1b\x0c\x1f\x00\x10\x00\x00\x00\x18\x00\x00\x00\x34\xfe\xff\xff\x34\x00\x00\x00\x00\x41\x07\x1e\x10\x00\x00\x00\x2c\x00\x00\x00\x70\xfe\xff\xff\x30\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x40\x00\x00\x00\x8c\xfe\xff\xff\x3c\x00\x00\x00\x00\x00\x00\x00\x20\x00\x00\x00\x54\x00\x00\x00\xb8\xfe\xff\xff\x48\x00\x00\x00\x00\x41\x0e\x20\x9d\x04\x9e\x03\x42\x93\x02\x4e\xde\xdd\xd3\x0e\x00\x00\x00\x00\x10\x00\x00\x00\x78\x00\x00\x00\xe4\xfe\xff\xff\x04\x00\x00\x00\x00\x00\x00\x00\x1c\x00\x00\x00\x8c\x00\x00\x00\x40\xfd\xff\xff\x50\x00\x00\x00\x00\x41\x0e\x10\x9d\x02\x9e\x01\x52\xde\xdd\x0e\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".fini_array", 0x10D98, "\xc0\x07\x00\x00\x00\x00\x00\x00"), -Section(".dynamic", 0x10DA0, "\x01\x00\x00\x00\x00\x00\x00\x00\x35\x00\x00\x00\x00\x00\x00\x00\x0c\x00\x00\x00\x00\x00\x00\x00\xc0\x05\x00\x00\x00\x00\x00\x00\x0d\x00\x00\x00\x00\x00\x00\x00\x14\x08\x00\x00\x00\x00\x00\x00\x19\x00\x00\x00\x00\x00\x00\x00\x90\x0d\x01\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x1a\x00\x00\x00\x00\x00\x00\x00\x98\x0d\x01\x00\x00\x00\x00\x00\x1c\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\xf5\xfe\xff\x6f\x00\x00\x00\x00\x98\x02\x00\x00\x00\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\xa8\x03\x00\x00\x00\x00\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\xb8\x02\x00\x00\x00\x00\x00\x00\x0a\x00\x00\x00\x00\x00\x00\x00\x9a\x00\x00\x00\x00\x00\x00\x00\x0b\x00\x00\x00\x00\x00\x00\x00\x18\x00\x00\x00\x00\x00\x00\x00\x15\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x90\x0f\x01\x00\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x78\x00\x00\x00\x00\x00\x00\x00\x14\x00\x00\x00\x00\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x17\x00\x00\x00\x00\x00\x00\x00\x48\x05\x00\x00\x00\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x88\x04\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\xc0\x00\x00\x00\x00\x00\x00\x00\x09\x00\x00\x00\x00\x00\x00\x00\x18\x00\x00\x00\x00\x00\x00\x00\x1e\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\xfb\xff\xff\x6f\x00\x00\x00\x00\x01\x00\x00\x08\x00\x00\x00\x00\xfe\xff\xff\x6f\x00\x00\x00\x00\x58\x04\x00\x00\x00\x00\x00\x00\xff\xff\xff\x6f\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\xf0\xff\xff\x6f\x00\x00\x00\x00\x42\x04\x00\x00\x00\x00\x00\x00\xf9\xff\xff\x6f\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".init_array", 0x10D90, "\x10\x08\x00\x00\x00\x00\x00\x00"), -Section(".got", 0x10F90, "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe0\x05\x00\x00\x00\x00\x00\x00\xe0\x05\x00\x00\x00\x00\x00\x00\xe0\x05\x00\x00\x00\x00\x00\x00\xe0\x05\x00\x00\x00\x00\x00\x00\xe0\x05\x00\x00\x00\x00\x00\x00\xa0\x0d\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x80\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".data", 0x11000, "\x00\x00\x00\x00\x00\x00\x00\x00\x08\x10\x01\x00\x00\x00\x00\x00"), -Section(".text", 0x680, "\xfd\x7b\xbf\xa9\x22\x08\x80\x52\x01\x00\x00\x90\xfd\x03\x00\x91\x21\xc0\x20\x91\x20\x00\x80\x52\xe2\xff\xff\x97\x42\x05\x80\x52\x01\x00\x00\x90\x20\x00\x80\x52\x21\x20\x21\x91\xdd\xff\xff\x97\x42\x01\x80\x52\x01\x00\x00\x90\x20\x00\x80\x52\x21\x60\x21\x91\xd8\xff\xff\x97\x00\x00\x80\x52\xfd\x7b\xc1\xa8\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1d\x00\x80\xd2\x1e\x00\x80\xd2\xe5\x03\x00\xaa\xe1\x03\x40\xf9\xe2\x23\x00\x91\xe6\x03\x00\x91\x80\x00\x00\x90\x00\xf8\x47\xf9\x03\x00\x80\xd2\x04\x00\x80\xd2\xb5\xff\xff\x97\xc4\xff\xff\x97\x80\x00\x00\x90\x00\xf4\x47\xf9\x40\x00\x00\xb4\xbc\xff\xff\x17\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x80\x00\x00\xb0\x00\x40\x00\x91\x81\x00\x00\xb0\x21\x40\x00\x91\x3f\x00\x00\xeb\xc0\x00\x00\x54\x81\x00\x00\x90\x21\xec\x47\xf9\x61\x00\x00\xb4\xf0\x03\x01\xaa\x00\x02\x1f\xd6\xc0\x03\x5f\xd6\x80\x00\x00\xb0\x00\x40\x00\x91\x81\x00\x00\xb0\x21\x40\x00\x91\x21\x00\x00\xcb\x22\xfc\x7f\xd3\x41\x0c\x81\x8b\x21\xfc\x41\x93\xc1\x00\x00\xb4\x82\x00\x00\x90\x42\xfc\x47\xf9\x62\x00\x00\xb4\xf0\x03\x02\xaa\x00\x02\x1f\xd6\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\xfd\x7b\xbe\xa9\xfd\x03\x00\x91\xf3\x0b\x00\xf9\x93\x00\x00\xb0\x60\x42\x40\x39\x40\x01\x00\x35\x80\x00\x00\x90\x00\xf0\x47\xf9\x80\x00\x00\xb4\x80\x00\x00\xb0\x00\x04\x40\xf9\x89\xff\xff\x97\xd8\xff\xff\x97\x20\x00\x80\x52\x60\x42\x00\x39\xf3\x0b\x40\xf9\xfd\x7b\xc2\xa8\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\xdc\xff\xff\x17")]), -Memmap([Annotation(Region(0x0,0x95B), Attr("segment","02 0 2396")), -Annotation(Region(0x680,0x6CF), Attr("symbol","\"main\"")), -Annotation(Region(0x0,0xF9), Attr("section","\".shstrtab\"")), -Annotation(Region(0x0,0x240), Attr("section","\".strtab\"")), -Annotation(Region(0x0,0x83F), Attr("section","\".symtab\"")), -Annotation(Region(0x0,0x2A), Attr("section","\".comment\"")), -Annotation(Region(0x238,0x252), Attr("section","\".interp\"")), -Annotation(Region(0x254,0x277), Attr("section","\".note.gnu.build-id\"")), -Annotation(Region(0x278,0x297), Attr("section","\".note.ABI-tag\"")), -Annotation(Region(0x298,0x2B3), Attr("section","\".gnu.hash\"")), -Annotation(Region(0x2B8,0x3A7), Attr("section","\".dynsym\"")), -Annotation(Region(0x3A8,0x441), Attr("section","\".dynstr\"")), -Annotation(Region(0x442,0x455), Attr("section","\".gnu.version\"")), -Annotation(Region(0x458,0x487), Attr("section","\".gnu.version_r\"")), -Annotation(Region(0x488,0x547), Attr("section","\".rela.dyn\"")), -Annotation(Region(0x548,0x5BF), Attr("section","\".rela.plt\"")), -Annotation(Region(0x5C0,0x5D7), Attr("section","\".init\"")), -Annotation(Region(0x5E0,0x64F), Attr("section","\".plt\"")), -Annotation(Region(0x5C0,0x5D7), Attr("code-region","()")), -Annotation(Region(0x5E0,0x64F), Attr("code-region","()")), -Annotation(Region(0x680,0x6CF), Attr("symbol-info","main 0x680 80")), -Annotation(Region(0x700,0x733), Attr("symbol","\"_start\"")), -Annotation(Region(0x700,0x733), Attr("symbol-info","_start 0x700 52")), -Annotation(Region(0x734,0x747), Attr("symbol","\"call_weak_fn\"")), -Annotation(Region(0x734,0x747), Attr("symbol-info","call_weak_fn 0x734 20")), -Annotation(Region(0x814,0x827), Attr("section","\".fini\"")), -Annotation(Region(0x828,0x872), Attr("section","\".rodata\"")), -Annotation(Region(0x874,0x8AF), Attr("section","\".eh_frame_hdr\"")), -Annotation(Region(0x8B0,0x95B), Attr("section","\".eh_frame\"")), -Annotation(Region(0x10D90,0x1100F), Attr("segment","03 0x10D90 648")), -Annotation(Region(0x10D98,0x10D9F), Attr("section","\".fini_array\"")), -Annotation(Region(0x10DA0,0x10F8F), Attr("section","\".dynamic\"")), -Annotation(Region(0x10D90,0x10D97), Attr("section","\".init_array\"")), -Annotation(Region(0x10F90,0x10FFF), Attr("section","\".got\"")), -Annotation(Region(0x11000,0x1100F), Attr("section","\".data\"")), -Annotation(Region(0x680,0x813), Attr("section","\".text\"")), -Annotation(Region(0x680,0x813), Attr("code-region","()")), -Annotation(Region(0x814,0x827), Attr("code-region","()"))]), -Program(Tid(1_592, "%00000638"), Attrs([]), - Subs([Sub(Tid(1_569, "@__cxa_finalize"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x610"), -Attr("stub","()")]), "__cxa_finalize", Args([Arg(Tid(1_593, "%00000639"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("__cxa_finalize_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(1_028, "@__cxa_finalize"), - Attrs([Attr("address","0x610")]), Phis([]), -Defs([Def(Tid(1_292, "%0000050c"), Attrs([Attr("address","0x610"), -Attr("insn","adrp x16, #65536")]), Var("R16",Imm(64)), Int(65536,64)), -Def(Tid(1_299, "%00000513"), Attrs([Attr("address","0x614"), -Attr("insn","ldr x17, [x16, #0xfb0]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(4016,64)),LittleEndian(),64)), -Def(Tid(1_305, "%00000519"), Attrs([Attr("address","0x618"), -Attr("insn","add x16, x16, #0xfb0")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(4016,64)))]), Jmps([Call(Tid(1_310, "%0000051e"), - Attrs([Attr("address","0x61C"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), -Sub(Tid(1_570, "@__do_global_dtors_aux"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x7C0")]), - "__do_global_dtors_aux", Args([Arg(Tid(1_594, "%0000063a"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("__do_global_dtors_aux_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(881, "@__do_global_dtors_aux"), - Attrs([Attr("address","0x7C0")]), Phis([]), Defs([Def(Tid(885, "%00000375"), - Attrs([Attr("address","0x7C0"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("#4",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(18446744073709551584,64))), -Def(Tid(891, "%0000037b"), Attrs([Attr("address","0x7C0"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("#4",Imm(64)),Var("R29",Imm(64)),LittleEndian(),64)), -Def(Tid(897, "%00000381"), Attrs([Attr("address","0x7C0"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("#4",Imm(64)),Int(8,64)),Var("R30",Imm(64)),LittleEndian(),64)), -Def(Tid(901, "%00000385"), Attrs([Attr("address","0x7C0"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("R31",Imm(64)), -Var("#4",Imm(64))), Def(Tid(907, "%0000038b"), - Attrs([Attr("address","0x7C4"), Attr("insn","mov x29, sp")]), - Var("R29",Imm(64)), Var("R31",Imm(64))), Def(Tid(915, "%00000393"), - Attrs([Attr("address","0x7C8"), Attr("insn","str x19, [sp, #0x10]")]), - Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(16,64)),Var("R19",Imm(64)),LittleEndian(),64)), -Def(Tid(920, "%00000398"), Attrs([Attr("address","0x7CC"), -Attr("insn","adrp x19, #69632")]), Var("R19",Imm(64)), Int(69632,64)), -Def(Tid(927, "%0000039f"), Attrs([Attr("address","0x7D0"), -Attr("insn","ldrb w0, [x19, #0x10]")]), Var("R0",Imm(64)), -UNSIGNED(64,Load(Var("mem",Mem(64,8)),PLUS(Var("R19",Imm(64)),Int(16,64)),LittleEndian(),8)))]), -Jmps([Goto(Tid(934, "%000003a6"), Attrs([Attr("address","0x7D4"), -Attr("insn","cbnz w0, #0x28")]), - NEQ(Extract(31,0,Var("R0",Imm(64))),Int(0,32)), -Direct(Tid(932, "%000003a4"))), Goto(Tid(1_571, "%00000623"), Attrs([]), - Int(1,1), Direct(Tid(973, "%000003cd")))])), Blk(Tid(973, "%000003cd"), - Attrs([Attr("address","0x7D8")]), Phis([]), Defs([Def(Tid(976, "%000003d0"), - Attrs([Attr("address","0x7D8"), Attr("insn","adrp x0, #65536")]), - Var("R0",Imm(64)), Int(65536,64)), Def(Tid(983, "%000003d7"), - Attrs([Attr("address","0x7DC"), Attr("insn","ldr x0, [x0, #0xfe0]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(4064,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(989, "%000003dd"), Attrs([Attr("address","0x7E0"), -Attr("insn","cbz x0, #0x10")]), EQ(Var("R0",Imm(64)),Int(0,64)), -Direct(Tid(987, "%000003db"))), Goto(Tid(1_572, "%00000624"), Attrs([]), - Int(1,1), Direct(Tid(1_012, "%000003f4")))])), Blk(Tid(1_012, "%000003f4"), - Attrs([Attr("address","0x7E4")]), Phis([]), -Defs([Def(Tid(1_015, "%000003f7"), Attrs([Attr("address","0x7E4"), -Attr("insn","adrp x0, #69632")]), Var("R0",Imm(64)), Int(69632,64)), -Def(Tid(1_022, "%000003fe"), Attrs([Attr("address","0x7E8"), -Attr("insn","ldr x0, [x0, #0x8]")]), Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(1_027, "%00000403"), Attrs([Attr("address","0x7EC"), -Attr("insn","bl #-0x1dc")]), Var("R30",Imm(64)), Int(2032,64))]), -Jmps([Call(Tid(1_030, "%00000406"), Attrs([Attr("address","0x7EC"), -Attr("insn","bl #-0x1dc")]), Int(1,1), -(Direct(Tid(1_569, "@__cxa_finalize")),Direct(Tid(987, "%000003db"))))])), -Blk(Tid(987, "%000003db"), Attrs([Attr("address","0x7F0")]), Phis([]), -Defs([Def(Tid(995, "%000003e3"), Attrs([Attr("address","0x7F0"), -Attr("insn","bl #-0xa0")]), Var("R30",Imm(64)), Int(2036,64))]), -Jmps([Call(Tid(997, "%000003e5"), Attrs([Attr("address","0x7F0"), -Attr("insn","bl #-0xa0")]), Int(1,1), -(Direct(Tid(1_584, "@deregister_tm_clones")),Direct(Tid(999, "%000003e7"))))])), -Blk(Tid(999, "%000003e7"), Attrs([Attr("address","0x7F4")]), Phis([]), -Defs([Def(Tid(1_002, "%000003ea"), Attrs([Attr("address","0x7F4"), -Attr("insn","mov w0, #0x1")]), Var("R0",Imm(64)), Int(1,64)), -Def(Tid(1_010, "%000003f2"), Attrs([Attr("address","0x7F8"), -Attr("insn","strb w0, [x19, #0x10]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R19",Imm(64)),Int(16,64)),Extract(7,0,Var("R0",Imm(64))),LittleEndian(),8))]), -Jmps([Goto(Tid(1_573, "%00000625"), Attrs([]), Int(1,1), -Direct(Tid(932, "%000003a4")))])), Blk(Tid(932, "%000003a4"), - Attrs([Attr("address","0x7FC")]), Phis([]), Defs([Def(Tid(942, "%000003ae"), - Attrs([Attr("address","0x7FC"), Attr("insn","ldr x19, [sp, #0x10]")]), - Var("R19",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(16,64)),LittleEndian(),64)), -Def(Tid(949, "%000003b5"), Attrs([Attr("address","0x800"), -Attr("insn","ldp x29, x30, [sp], #0x20")]), Var("R29",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(954, "%000003ba"), Attrs([Attr("address","0x800"), -Attr("insn","ldp x29, x30, [sp], #0x20")]), Var("R30",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(958, "%000003be"), Attrs([Attr("address","0x800"), -Attr("insn","ldp x29, x30, [sp], #0x20")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(32,64)))]), Jmps([Call(Tid(963, "%000003c3"), - Attrs([Attr("address","0x804"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), Sub(Tid(1_574, "@__libc_start_main"), - Attrs([Attr("c.proto","signed (*)(signed (*)(signed , char** , char** );* main, signed , char** , \nvoid* auxv)"), -Attr("address","0x600"), Attr("stub","()")]), "__libc_start_main", - Args([Arg(Tid(1_595, "%0000063b"), - Attrs([Attr("c.layout","**[ : 64]"), -Attr("c.data","Top:u64 ptr ptr"), -Attr("c.type","signed (*)(signed , char** , char** );*")]), - Var("__libc_start_main_main",Imm(64)), Var("R0",Imm(64)), In()), -Arg(Tid(1_596, "%0000063c"), Attrs([Attr("c.layout","[signed : 32]"), -Attr("c.data","Top:u32"), Attr("c.type","signed")]), - Var("__libc_start_main_arg2",Imm(32)), LOW(32,Var("R1",Imm(64))), In()), -Arg(Tid(1_597, "%0000063d"), Attrs([Attr("c.layout","**[char : 8]"), -Attr("c.data","Top:u8 ptr ptr"), Attr("c.type","char**")]), - Var("__libc_start_main_arg3",Imm(64)), Var("R2",Imm(64)), Both()), -Arg(Tid(1_598, "%0000063e"), Attrs([Attr("c.layout","*[ : 8]"), -Attr("c.data","{} ptr"), Attr("c.type","void*")]), - Var("__libc_start_main_auxv",Imm(64)), Var("R3",Imm(64)), Both()), -Arg(Tid(1_599, "%0000063f"), Attrs([Attr("c.layout","[signed : 32]"), -Attr("c.data","Top:u32"), Attr("c.type","signed")]), - Var("__libc_start_main_result",Imm(32)), LOW(32,Var("R0",Imm(64))), -Out())]), Blks([Blk(Tid(714, "@__libc_start_main"), - Attrs([Attr("address","0x600")]), Phis([]), -Defs([Def(Tid(1_270, "%000004f6"), Attrs([Attr("address","0x600"), -Attr("insn","adrp x16, #65536")]), Var("R16",Imm(64)), Int(65536,64)), -Def(Tid(1_277, "%000004fd"), Attrs([Attr("address","0x604"), -Attr("insn","ldr x17, [x16, #0xfa8]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(4008,64)),LittleEndian(),64)), -Def(Tid(1_283, "%00000503"), Attrs([Attr("address","0x608"), -Attr("insn","add x16, x16, #0xfa8")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(4008,64)))]), Jmps([Call(Tid(1_288, "%00000508"), - Attrs([Attr("address","0x60C"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), Sub(Tid(1_575, "@__printf_chk"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x620"), -Attr("stub","()")]), "__printf_chk", Args([Arg(Tid(1_600, "%00000640"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("__printf_chk_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(541, "@__printf_chk"), - Attrs([Attr("address","0x620")]), Phis([]), -Defs([Def(Tid(1_314, "%00000522"), Attrs([Attr("address","0x620"), -Attr("insn","adrp x16, #65536")]), Var("R16",Imm(64)), Int(65536,64)), -Def(Tid(1_321, "%00000529"), Attrs([Attr("address","0x624"), -Attr("insn","ldr x17, [x16, #0xfb8]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(4024,64)),LittleEndian(),64)), -Def(Tid(1_327, "%0000052f"), Attrs([Attr("address","0x628"), -Attr("insn","add x16, x16, #0xfb8")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(4024,64)))]), Jmps([Call(Tid(1_332, "%00000534"), - Attrs([Attr("address","0x62C"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), Sub(Tid(1_576, "@_fini"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x814")]), - "_fini", Args([Arg(Tid(1_601, "%00000641"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("_fini_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(31, "@_fini"), - Attrs([Attr("address","0x814")]), Phis([]), Defs([Def(Tid(37, "%00000025"), - Attrs([Attr("address","0x818"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("#0",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(18446744073709551600,64))), -Def(Tid(43, "%0000002b"), Attrs([Attr("address","0x818"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("#0",Imm(64)),Var("R29",Imm(64)),LittleEndian(),64)), -Def(Tid(49, "%00000031"), Attrs([Attr("address","0x818"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("#0",Imm(64)),Int(8,64)),Var("R30",Imm(64)),LittleEndian(),64)), -Def(Tid(53, "%00000035"), Attrs([Attr("address","0x818"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("R31",Imm(64)), -Var("#0",Imm(64))), Def(Tid(59, "%0000003b"), Attrs([Attr("address","0x81C"), -Attr("insn","mov x29, sp")]), Var("R29",Imm(64)), Var("R31",Imm(64))), -Def(Tid(66, "%00000042"), Attrs([Attr("address","0x820"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R29",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(71, "%00000047"), Attrs([Attr("address","0x820"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R30",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(75, "%0000004b"), Attrs([Attr("address","0x820"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(16,64)))]), Jmps([Call(Tid(80, "%00000050"), - Attrs([Attr("address","0x824"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), Sub(Tid(1_577, "@_init"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x5C0")]), - "_init", Args([Arg(Tid(1_602, "%00000642"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("_init_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(1_404, "@_init"), - Attrs([Attr("address","0x5C0")]), Phis([]), -Defs([Def(Tid(1_410, "%00000582"), Attrs([Attr("address","0x5C4"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("#6",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(18446744073709551600,64))), -Def(Tid(1_416, "%00000588"), Attrs([Attr("address","0x5C4"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("#6",Imm(64)),Var("R29",Imm(64)),LittleEndian(),64)), -Def(Tid(1_422, "%0000058e"), Attrs([Attr("address","0x5C4"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("#6",Imm(64)),Int(8,64)),Var("R30",Imm(64)),LittleEndian(),64)), -Def(Tid(1_426, "%00000592"), Attrs([Attr("address","0x5C4"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("R31",Imm(64)), -Var("#6",Imm(64))), Def(Tid(1_432, "%00000598"), - Attrs([Attr("address","0x5C8"), Attr("insn","mov x29, sp")]), - Var("R29",Imm(64)), Var("R31",Imm(64))), Def(Tid(1_437, "%0000059d"), - Attrs([Attr("address","0x5CC"), Attr("insn","bl #0x168")]), - Var("R30",Imm(64)), Int(1488,64))]), Jmps([Call(Tid(1_439, "%0000059f"), - Attrs([Attr("address","0x5CC"), Attr("insn","bl #0x168")]), Int(1,1), -(Direct(Tid(1_582, "@call_weak_fn")),Direct(Tid(1_441, "%000005a1"))))])), -Blk(Tid(1_441, "%000005a1"), Attrs([Attr("address","0x5D0")]), Phis([]), -Defs([Def(Tid(1_446, "%000005a6"), Attrs([Attr("address","0x5D0"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R29",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(1_451, "%000005ab"), Attrs([Attr("address","0x5D0"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R30",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(1_455, "%000005af"), Attrs([Attr("address","0x5D0"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(16,64)))]), Jmps([Call(Tid(1_460, "%000005b4"), - Attrs([Attr("address","0x5D4"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), Sub(Tid(1_578, "@_start"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x700"), -Attr("entry-point","()")]), "_start", Args([Arg(Tid(1_603, "%00000643"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("_start_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(651, "@_start"), - Attrs([Attr("address","0x700")]), Phis([]), Defs([Def(Tid(656, "%00000290"), - Attrs([Attr("address","0x704"), Attr("insn","mov x29, #0x0")]), - Var("R29",Imm(64)), Int(0,64)), Def(Tid(661, "%00000295"), - Attrs([Attr("address","0x708"), Attr("insn","mov x30, #0x0")]), - Var("R30",Imm(64)), Int(0,64)), Def(Tid(667, "%0000029b"), - Attrs([Attr("address","0x70C"), Attr("insn","mov x5, x0")]), - Var("R5",Imm(64)), Var("R0",Imm(64))), Def(Tid(674, "%000002a2"), - Attrs([Attr("address","0x710"), Attr("insn","ldr x1, [sp]")]), - Var("R1",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(680, "%000002a8"), Attrs([Attr("address","0x714"), -Attr("insn","add x2, sp, #0x8")]), Var("R2",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(8,64))), Def(Tid(686, "%000002ae"), - Attrs([Attr("address","0x718"), Attr("insn","mov x6, sp")]), - Var("R6",Imm(64)), Var("R31",Imm(64))), Def(Tid(691, "%000002b3"), - Attrs([Attr("address","0x71C"), Attr("insn","adrp x0, #65536")]), - Var("R0",Imm(64)), Int(65536,64)), Def(Tid(698, "%000002ba"), - Attrs([Attr("address","0x720"), Attr("insn","ldr x0, [x0, #0xff0]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(4080,64)),LittleEndian(),64)), -Def(Tid(703, "%000002bf"), Attrs([Attr("address","0x724"), -Attr("insn","mov x3, #0x0")]), Var("R3",Imm(64)), Int(0,64)), -Def(Tid(708, "%000002c4"), Attrs([Attr("address","0x728"), -Attr("insn","mov x4, #0x0")]), Var("R4",Imm(64)), Int(0,64)), -Def(Tid(713, "%000002c9"), Attrs([Attr("address","0x72C"), -Attr("insn","bl #-0x12c")]), Var("R30",Imm(64)), Int(1840,64))]), -Jmps([Call(Tid(716, "%000002cc"), Attrs([Attr("address","0x72C"), -Attr("insn","bl #-0x12c")]), Int(1,1), -(Direct(Tid(1_574, "@__libc_start_main")),Direct(Tid(718, "%000002ce"))))])), -Blk(Tid(718, "%000002ce"), Attrs([Attr("address","0x730")]), Phis([]), -Defs([Def(Tid(721, "%000002d1"), Attrs([Attr("address","0x730"), -Attr("insn","bl #-0xf0")]), Var("R30",Imm(64)), Int(1844,64))]), -Jmps([Call(Tid(724, "%000002d4"), Attrs([Attr("address","0x730"), -Attr("insn","bl #-0xf0")]), Int(1,1), -(Direct(Tid(1_581, "@abort")),Direct(Tid(1_579, "%0000062b"))))])), -Blk(Tid(1_579, "%0000062b"), Attrs([]), Phis([]), Defs([]), -Jmps([Call(Tid(1_580, "%0000062c"), Attrs([]), Int(1,1), -(Direct(Tid(1_582, "@call_weak_fn")),))]))])), Sub(Tid(1_581, "@abort"), - Attrs([Attr("noreturn","()"), Attr("c.proto","void (*)(void)"), -Attr("address","0x640"), Attr("stub","()")]), "abort", Args([]), -Blks([Blk(Tid(722, "@abort"), Attrs([Attr("address","0x640")]), Phis([]), -Defs([Def(Tid(1_358, "%0000054e"), Attrs([Attr("address","0x640"), -Attr("insn","adrp x16, #65536")]), Var("R16",Imm(64)), Int(65536,64)), -Def(Tid(1_365, "%00000555"), Attrs([Attr("address","0x644"), -Attr("insn","ldr x17, [x16, #0xfc8]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(4040,64)),LittleEndian(),64)), -Def(Tid(1_371, "%0000055b"), Attrs([Attr("address","0x648"), -Attr("insn","add x16, x16, #0xfc8")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(4040,64)))]), Jmps([Call(Tid(1_376, "%00000560"), - Attrs([Attr("address","0x64C"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), Sub(Tid(1_582, "@call_weak_fn"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x734")]), - "call_weak_fn", Args([Arg(Tid(1_604, "%00000644"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("call_weak_fn_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(726, "@call_weak_fn"), - Attrs([Attr("address","0x734")]), Phis([]), Defs([Def(Tid(729, "%000002d9"), - Attrs([Attr("address","0x734"), Attr("insn","adrp x0, #65536")]), - Var("R0",Imm(64)), Int(65536,64)), Def(Tid(736, "%000002e0"), - Attrs([Attr("address","0x738"), Attr("insn","ldr x0, [x0, #0xfe8]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(4072,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(742, "%000002e6"), Attrs([Attr("address","0x73C"), -Attr("insn","cbz x0, #0x8")]), EQ(Var("R0",Imm(64)),Int(0,64)), -Direct(Tid(740, "%000002e4"))), Goto(Tid(1_583, "%0000062f"), Attrs([]), - Int(1,1), Direct(Tid(1_092, "%00000444")))])), Blk(Tid(740, "%000002e4"), - Attrs([Attr("address","0x744")]), Phis([]), Defs([]), -Jmps([Call(Tid(748, "%000002ec"), Attrs([Attr("address","0x744"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))])), -Blk(Tid(1_092, "%00000444"), Attrs([Attr("address","0x740")]), Phis([]), -Defs([]), Jmps([Goto(Tid(1_095, "%00000447"), Attrs([Attr("address","0x740"), -Attr("insn","b #-0x110")]), Int(1,1), -Direct(Tid(1_093, "@__gmon_start__")))])), Blk(Tid(1_093, "@__gmon_start__"), - Attrs([Attr("address","0x630")]), Phis([]), -Defs([Def(Tid(1_336, "%00000538"), Attrs([Attr("address","0x630"), -Attr("insn","adrp x16, #65536")]), Var("R16",Imm(64)), Int(65536,64)), -Def(Tid(1_343, "%0000053f"), Attrs([Attr("address","0x634"), -Attr("insn","ldr x17, [x16, #0xfc0]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(4032,64)),LittleEndian(),64)), -Def(Tid(1_349, "%00000545"), Attrs([Attr("address","0x638"), -Attr("insn","add x16, x16, #0xfc0")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(4032,64)))]), Jmps([Call(Tid(1_354, "%0000054a"), - Attrs([Attr("address","0x63C"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), -Sub(Tid(1_584, "@deregister_tm_clones"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x750")]), - "deregister_tm_clones", Args([Arg(Tid(1_605, "%00000645"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("deregister_tm_clones_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(754, "@deregister_tm_clones"), - Attrs([Attr("address","0x750")]), Phis([]), Defs([Def(Tid(757, "%000002f5"), - Attrs([Attr("address","0x750"), Attr("insn","adrp x0, #69632")]), - Var("R0",Imm(64)), Int(69632,64)), Def(Tid(763, "%000002fb"), - Attrs([Attr("address","0x754"), Attr("insn","add x0, x0, #0x10")]), - Var("R0",Imm(64)), PLUS(Var("R0",Imm(64)),Int(16,64))), -Def(Tid(768, "%00000300"), Attrs([Attr("address","0x758"), -Attr("insn","adrp x1, #69632")]), Var("R1",Imm(64)), Int(69632,64)), -Def(Tid(774, "%00000306"), Attrs([Attr("address","0x75C"), -Attr("insn","add x1, x1, #0x10")]), Var("R1",Imm(64)), -PLUS(Var("R1",Imm(64)),Int(16,64))), Def(Tid(780, "%0000030c"), - Attrs([Attr("address","0x760"), Attr("insn","cmp x1, x0")]), - Var("#2",Imm(64)), NOT(Var("R0",Imm(64)))), Def(Tid(785, "%00000311"), - Attrs([Attr("address","0x760"), Attr("insn","cmp x1, x0")]), - Var("#3",Imm(64)), PLUS(Var("R1",Imm(64)),NOT(Var("R0",Imm(64))))), -Def(Tid(791, "%00000317"), Attrs([Attr("address","0x760"), -Attr("insn","cmp x1, x0")]), Var("VF",Imm(1)), -NEQ(SIGNED(65,PLUS(Var("#3",Imm(64)),Int(1,64))),PLUS(PLUS(SIGNED(65,Var("R1",Imm(64))),SIGNED(65,Var("#2",Imm(64)))),Int(1,65)))), -Def(Tid(797, "%0000031d"), Attrs([Attr("address","0x760"), -Attr("insn","cmp x1, x0")]), Var("CF",Imm(1)), -NEQ(UNSIGNED(65,PLUS(Var("#3",Imm(64)),Int(1,64))),PLUS(PLUS(UNSIGNED(65,Var("R1",Imm(64))),UNSIGNED(65,Var("#2",Imm(64)))),Int(1,65)))), -Def(Tid(801, "%00000321"), Attrs([Attr("address","0x760"), -Attr("insn","cmp x1, x0")]), Var("ZF",Imm(1)), -EQ(PLUS(Var("#3",Imm(64)),Int(1,64)),Int(0,64))), Def(Tid(805, "%00000325"), - Attrs([Attr("address","0x760"), Attr("insn","cmp x1, x0")]), - Var("NF",Imm(1)), Extract(63,63,PLUS(Var("#3",Imm(64)),Int(1,64))))]), -Jmps([Goto(Tid(811, "%0000032b"), Attrs([Attr("address","0x764"), -Attr("insn","b.eq #0x18")]), EQ(Var("ZF",Imm(1)),Int(1,1)), -Direct(Tid(809, "%00000329"))), Goto(Tid(1_585, "%00000631"), Attrs([]), - Int(1,1), Direct(Tid(1_062, "%00000426")))])), Blk(Tid(1_062, "%00000426"), - Attrs([Attr("address","0x768")]), Phis([]), -Defs([Def(Tid(1_065, "%00000429"), Attrs([Attr("address","0x768"), -Attr("insn","adrp x1, #65536")]), Var("R1",Imm(64)), Int(65536,64)), -Def(Tid(1_072, "%00000430"), Attrs([Attr("address","0x76C"), -Attr("insn","ldr x1, [x1, #0xfd8]")]), Var("R1",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R1",Imm(64)),Int(4056,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(1_077, "%00000435"), Attrs([Attr("address","0x770"), -Attr("insn","cbz x1, #0xc")]), EQ(Var("R1",Imm(64)),Int(0,64)), -Direct(Tid(809, "%00000329"))), Goto(Tid(1_586, "%00000632"), Attrs([]), - Int(1,1), Direct(Tid(1_081, "%00000439")))])), Blk(Tid(809, "%00000329"), - Attrs([Attr("address","0x77C")]), Phis([]), Defs([]), -Jmps([Call(Tid(817, "%00000331"), Attrs([Attr("address","0x77C"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))])), -Blk(Tid(1_081, "%00000439"), Attrs([Attr("address","0x774")]), Phis([]), -Defs([Def(Tid(1_085, "%0000043d"), Attrs([Attr("address","0x774"), -Attr("insn","mov x16, x1")]), Var("R16",Imm(64)), Var("R1",Imm(64)))]), -Jmps([Call(Tid(1_090, "%00000442"), Attrs([Attr("address","0x778"), -Attr("insn","br x16")]), Int(1,1), (Indirect(Var("R16",Imm(64))),))]))])), -Sub(Tid(1_587, "@frame_dummy"), Attrs([Attr("c.proto","signed (*)(void)"), -Attr("address","0x810")]), "frame_dummy", Args([Arg(Tid(1_606, "%00000646"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("frame_dummy_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(969, "@frame_dummy"), - Attrs([Attr("address","0x810")]), Phis([]), Defs([]), -Jmps([Call(Tid(971, "%000003cb"), Attrs([Attr("address","0x810"), -Attr("insn","b #-0x90")]), Int(1,1), -(Direct(Tid(1_589, "@register_tm_clones")),))]))])), Sub(Tid(1_588, "@main"), - Attrs([Attr("c.proto","signed (*)(signed argc, const char** argv)"), -Attr("address","0x680")]), "main", Args([Arg(Tid(1_607, "%00000647"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("main_argc",Imm(32)), -LOW(32,Var("R0",Imm(64))), In()), Arg(Tid(1_608, "%00000648"), - Attrs([Attr("c.layout","**[char : 8]"), Attr("c.data","Top:u8 ptr ptr"), -Attr("c.type"," const char**")]), Var("main_argv",Imm(64)), -Var("R1",Imm(64)), Both()), Arg(Tid(1_609, "%00000649"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("main_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(488, "@main"), - Attrs([Attr("address","0x680")]), Phis([]), Defs([Def(Tid(492, "%000001ec"), - Attrs([Attr("address","0x680"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("#1",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(18446744073709551600,64))), -Def(Tid(498, "%000001f2"), Attrs([Attr("address","0x680"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("#1",Imm(64)),Var("R29",Imm(64)),LittleEndian(),64)), -Def(Tid(504, "%000001f8"), Attrs([Attr("address","0x680"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("#1",Imm(64)),Int(8,64)),Var("R30",Imm(64)),LittleEndian(),64)), -Def(Tid(508, "%000001fc"), Attrs([Attr("address","0x680"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("R31",Imm(64)), -Var("#1",Imm(64))), Def(Tid(513, "%00000201"), - Attrs([Attr("address","0x684"), Attr("insn","mov w2, #0x41")]), - Var("R2",Imm(64)), Int(65,64)), Def(Tid(518, "%00000206"), - Attrs([Attr("address","0x688"), Attr("insn","adrp x1, #0")]), - Var("R1",Imm(64)), Int(0,64)), Def(Tid(524, "%0000020c"), - Attrs([Attr("address","0x68C"), Attr("insn","mov x29, sp")]), - Var("R29",Imm(64)), Var("R31",Imm(64))), Def(Tid(530, "%00000212"), - Attrs([Attr("address","0x690"), Attr("insn","add x1, x1, #0x830")]), - Var("R1",Imm(64)), PLUS(Var("R1",Imm(64)),Int(2096,64))), -Def(Tid(535, "%00000217"), Attrs([Attr("address","0x694"), -Attr("insn","mov w0, #0x1")]), Var("R0",Imm(64)), Int(1,64)), -Def(Tid(540, "%0000021c"), Attrs([Attr("address","0x698"), -Attr("insn","bl #-0x78")]), Var("R30",Imm(64)), Int(1692,64))]), -Jmps([Call(Tid(543, "%0000021f"), Attrs([Attr("address","0x698"), -Attr("insn","bl #-0x78")]), Int(1,1), -(Direct(Tid(1_575, "@__printf_chk")),Direct(Tid(545, "%00000221"))))])), -Blk(Tid(545, "%00000221"), Attrs([Attr("address","0x69C")]), Phis([]), -Defs([Def(Tid(548, "%00000224"), Attrs([Attr("address","0x69C"), -Attr("insn","mov w2, #0x2a")]), Var("R2",Imm(64)), Int(42,64)), -Def(Tid(553, "%00000229"), Attrs([Attr("address","0x6A0"), -Attr("insn","adrp x1, #0")]), Var("R1",Imm(64)), Int(0,64)), -Def(Tid(558, "%0000022e"), Attrs([Attr("address","0x6A4"), -Attr("insn","mov w0, #0x1")]), Var("R0",Imm(64)), Int(1,64)), -Def(Tid(564, "%00000234"), Attrs([Attr("address","0x6A8"), -Attr("insn","add x1, x1, #0x848")]), Var("R1",Imm(64)), -PLUS(Var("R1",Imm(64)),Int(2120,64))), Def(Tid(569, "%00000239"), - Attrs([Attr("address","0x6AC"), Attr("insn","bl #-0x8c")]), - Var("R30",Imm(64)), Int(1712,64))]), Jmps([Call(Tid(571, "%0000023b"), - Attrs([Attr("address","0x6AC"), Attr("insn","bl #-0x8c")]), Int(1,1), -(Direct(Tid(1_575, "@__printf_chk")),Direct(Tid(573, "%0000023d"))))])), -Blk(Tid(573, "%0000023d"), Attrs([Attr("address","0x6B0")]), Phis([]), -Defs([Def(Tid(576, "%00000240"), Attrs([Attr("address","0x6B0"), -Attr("insn","mov w2, #0xa")]), Var("R2",Imm(64)), Int(10,64)), -Def(Tid(581, "%00000245"), Attrs([Attr("address","0x6B4"), -Attr("insn","adrp x1, #0")]), Var("R1",Imm(64)), Int(0,64)), -Def(Tid(586, "%0000024a"), Attrs([Attr("address","0x6B8"), -Attr("insn","mov w0, #0x1")]), Var("R0",Imm(64)), Int(1,64)), -Def(Tid(592, "%00000250"), Attrs([Attr("address","0x6BC"), -Attr("insn","add x1, x1, #0x858")]), Var("R1",Imm(64)), -PLUS(Var("R1",Imm(64)),Int(2136,64))), Def(Tid(597, "%00000255"), - Attrs([Attr("address","0x6C0"), Attr("insn","bl #-0xa0")]), - Var("R30",Imm(64)), Int(1732,64))]), Jmps([Call(Tid(599, "%00000257"), - Attrs([Attr("address","0x6C0"), Attr("insn","bl #-0xa0")]), Int(1,1), -(Direct(Tid(1_575, "@__printf_chk")),Direct(Tid(601, "%00000259"))))])), -Blk(Tid(601, "%00000259"), Attrs([Attr("address","0x6C4")]), Phis([]), -Defs([Def(Tid(604, "%0000025c"), Attrs([Attr("address","0x6C4"), -Attr("insn","mov w0, #0x0")]), Var("R0",Imm(64)), Int(0,64)), -Def(Tid(611, "%00000263"), Attrs([Attr("address","0x6C8"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R29",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(616, "%00000268"), Attrs([Attr("address","0x6C8"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R30",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(620, "%0000026c"), Attrs([Attr("address","0x6C8"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(16,64)))]), Jmps([Call(Tid(625, "%00000271"), - Attrs([Attr("address","0x6CC"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), -Sub(Tid(1_589, "@register_tm_clones"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x780")]), - "register_tm_clones", Args([Arg(Tid(1_610, "%0000064a"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("register_tm_clones_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(819, "@register_tm_clones"), Attrs([Attr("address","0x780")]), - Phis([]), Defs([Def(Tid(822, "%00000336"), Attrs([Attr("address","0x780"), -Attr("insn","adrp x0, #69632")]), Var("R0",Imm(64)), Int(69632,64)), -Def(Tid(828, "%0000033c"), Attrs([Attr("address","0x784"), -Attr("insn","add x0, x0, #0x10")]), Var("R0",Imm(64)), -PLUS(Var("R0",Imm(64)),Int(16,64))), Def(Tid(833, "%00000341"), - Attrs([Attr("address","0x788"), Attr("insn","adrp x1, #69632")]), - Var("R1",Imm(64)), Int(69632,64)), Def(Tid(839, "%00000347"), - Attrs([Attr("address","0x78C"), Attr("insn","add x1, x1, #0x10")]), - Var("R1",Imm(64)), PLUS(Var("R1",Imm(64)),Int(16,64))), -Def(Tid(846, "%0000034e"), Attrs([Attr("address","0x790"), -Attr("insn","sub x1, x1, x0")]), Var("R1",Imm(64)), -PLUS(PLUS(Var("R1",Imm(64)),NOT(Var("R0",Imm(64)))),Int(1,64))), -Def(Tid(852, "%00000354"), Attrs([Attr("address","0x794"), -Attr("insn","lsr x2, x1, #63")]), Var("R2",Imm(64)), -Concat(Int(0,63),Extract(63,63,Var("R1",Imm(64))))), -Def(Tid(859, "%0000035b"), Attrs([Attr("address","0x798"), -Attr("insn","add x1, x2, x1, asr #3")]), Var("R1",Imm(64)), -PLUS(Var("R2",Imm(64)),ARSHIFT(Var("R1",Imm(64)),Int(3,3)))), -Def(Tid(865, "%00000361"), Attrs([Attr("address","0x79C"), -Attr("insn","asr x1, x1, #1")]), Var("R1",Imm(64)), -SIGNED(64,Extract(63,1,Var("R1",Imm(64)))))]), -Jmps([Goto(Tid(871, "%00000367"), Attrs([Attr("address","0x7A0"), -Attr("insn","cbz x1, #0x18")]), EQ(Var("R1",Imm(64)),Int(0,64)), -Direct(Tid(869, "%00000365"))), Goto(Tid(1_590, "%00000636"), Attrs([]), - Int(1,1), Direct(Tid(1_032, "%00000408")))])), Blk(Tid(1_032, "%00000408"), - Attrs([Attr("address","0x7A4")]), Phis([]), -Defs([Def(Tid(1_035, "%0000040b"), Attrs([Attr("address","0x7A4"), -Attr("insn","adrp x2, #65536")]), Var("R2",Imm(64)), Int(65536,64)), -Def(Tid(1_042, "%00000412"), Attrs([Attr("address","0x7A8"), -Attr("insn","ldr x2, [x2, #0xff8]")]), Var("R2",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R2",Imm(64)),Int(4088,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(1_047, "%00000417"), Attrs([Attr("address","0x7AC"), -Attr("insn","cbz x2, #0xc")]), EQ(Var("R2",Imm(64)),Int(0,64)), -Direct(Tid(869, "%00000365"))), Goto(Tid(1_591, "%00000637"), Attrs([]), - Int(1,1), Direct(Tid(1_051, "%0000041b")))])), Blk(Tid(869, "%00000365"), - Attrs([Attr("address","0x7B8")]), Phis([]), Defs([]), -Jmps([Call(Tid(877, "%0000036d"), Attrs([Attr("address","0x7B8"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))])), -Blk(Tid(1_051, "%0000041b"), Attrs([Attr("address","0x7B0")]), Phis([]), -Defs([Def(Tid(1_055, "%0000041f"), Attrs([Attr("address","0x7B0"), -Attr("insn","mov x16, x2")]), Var("R16",Imm(64)), Var("R2",Imm(64)))]), -Jmps([Call(Tid(1_060, "%00000424"), Attrs([Attr("address","0x7B4"), -Attr("insn","br x16")]), Int(1,1), -(Indirect(Var("R16",Imm(64))),))]))]))]))) \ No newline at end of file diff --git a/src/test/correct/malloc_with_local/gcc_O2/malloc_with_local.bir b/src/test/correct/malloc_with_local/gcc_O2/malloc_with_local.bir deleted file mode 100644 index e60c4c0f9..000000000 --- a/src/test/correct/malloc_with_local/gcc_O2/malloc_with_local.bir +++ /dev/null @@ -1,265 +0,0 @@ -00000638: program -00000621: sub __cxa_finalize(__cxa_finalize_result) -00000639: __cxa_finalize_result :: out u32 = low:32[R0] - -00000404: -0000050c: R16 := 0x10000 -00000513: R17 := mem[R16 + 0xFB0, el]:u64 -00000519: R16 := R16 + 0xFB0 -0000051e: call R17 with noreturn - -00000622: sub __do_global_dtors_aux(__do_global_dtors_aux_result) -0000063a: __do_global_dtors_aux_result :: out u32 = low:32[R0] - -00000371: -00000375: #4 := R31 - 0x20 -0000037b: mem := mem with [#4, el]:u64 <- R29 -00000381: mem := mem with [#4 + 8, el]:u64 <- R30 -00000385: R31 := #4 -0000038b: R29 := R31 -00000393: mem := mem with [R31 + 0x10, el]:u64 <- R19 -00000398: R19 := 0x11000 -0000039f: R0 := pad:64[mem[R19 + 0x10]] -000003a6: when 31:0[R0] <> 0 goto %000003a4 -00000623: goto %000003cd - -000003cd: -000003d0: R0 := 0x10000 -000003d7: R0 := mem[R0 + 0xFE0, el]:u64 -000003dd: when R0 = 0 goto %000003db -00000624: goto %000003f4 - -000003f4: -000003f7: R0 := 0x11000 -000003fe: R0 := mem[R0 + 8, el]:u64 -00000403: R30 := 0x7F0 -00000406: call @__cxa_finalize with return %000003db - -000003db: -000003e3: R30 := 0x7F4 -000003e5: call @deregister_tm_clones with return %000003e7 - -000003e7: -000003ea: R0 := 1 -000003f2: mem := mem with [R19 + 0x10] <- 7:0[R0] -00000625: goto %000003a4 - -000003a4: -000003ae: R19 := mem[R31 + 0x10, el]:u64 -000003b5: R29 := mem[R31, el]:u64 -000003ba: R30 := mem[R31 + 8, el]:u64 -000003be: R31 := R31 + 0x20 -000003c3: call R30 with noreturn - -00000626: sub __libc_start_main(__libc_start_main_main, __libc_start_main_arg2, __libc_start_main_arg3, __libc_start_main_auxv, __libc_start_main_result) -0000063b: __libc_start_main_main :: in u64 = R0 -0000063c: __libc_start_main_arg2 :: in u32 = low:32[R1] -0000063d: __libc_start_main_arg3 :: in out u64 = R2 -0000063e: __libc_start_main_auxv :: in out u64 = R3 -0000063f: __libc_start_main_result :: out u32 = low:32[R0] - -000002ca: -000004f6: R16 := 0x10000 -000004fd: R17 := mem[R16 + 0xFA8, el]:u64 -00000503: R16 := R16 + 0xFA8 -00000508: call R17 with noreturn - -00000627: sub __printf_chk(__printf_chk_result) -00000640: __printf_chk_result :: out u32 = low:32[R0] - -0000021d: -00000522: R16 := 0x10000 -00000529: R17 := mem[R16 + 0xFB8, el]:u64 -0000052f: R16 := R16 + 0xFB8 -00000534: call R17 with noreturn - -00000628: sub _fini(_fini_result) -00000641: _fini_result :: out u32 = low:32[R0] - -0000001f: -00000025: #0 := R31 - 0x10 -0000002b: mem := mem with [#0, el]:u64 <- R29 -00000031: mem := mem with [#0 + 8, el]:u64 <- R30 -00000035: R31 := #0 -0000003b: R29 := R31 -00000042: R29 := mem[R31, el]:u64 -00000047: R30 := mem[R31 + 8, el]:u64 -0000004b: R31 := R31 + 0x10 -00000050: call R30 with noreturn - -00000629: sub _init(_init_result) -00000642: _init_result :: out u32 = low:32[R0] - -0000057c: -00000582: #6 := R31 - 0x10 -00000588: mem := mem with [#6, el]:u64 <- R29 -0000058e: mem := mem with [#6 + 8, el]:u64 <- R30 -00000592: R31 := #6 -00000598: R29 := R31 -0000059d: R30 := 0x5D0 -0000059f: call @call_weak_fn with return %000005a1 - -000005a1: -000005a6: R29 := mem[R31, el]:u64 -000005ab: R30 := mem[R31 + 8, el]:u64 -000005af: R31 := R31 + 0x10 -000005b4: call R30 with noreturn - -0000062a: sub _start(_start_result) -00000643: _start_result :: out u32 = low:32[R0] - -0000028b: -00000290: R29 := 0 -00000295: R30 := 0 -0000029b: R5 := R0 -000002a2: R1 := mem[R31, el]:u64 -000002a8: R2 := R31 + 8 -000002ae: R6 := R31 -000002b3: R0 := 0x10000 -000002ba: R0 := mem[R0 + 0xFF0, el]:u64 -000002bf: R3 := 0 -000002c4: R4 := 0 -000002c9: R30 := 0x730 -000002cc: call @__libc_start_main with return %000002ce - -000002ce: -000002d1: R30 := 0x734 -000002d4: call @abort with return %0000062b - -0000062b: -0000062c: call @call_weak_fn with noreturn - -0000062d: sub abort() - - -000002d2: -0000054e: R16 := 0x10000 -00000555: R17 := mem[R16 + 0xFC8, el]:u64 -0000055b: R16 := R16 + 0xFC8 -00000560: call R17 with noreturn - -0000062e: sub call_weak_fn(call_weak_fn_result) -00000644: call_weak_fn_result :: out u32 = low:32[R0] - -000002d6: -000002d9: R0 := 0x10000 -000002e0: R0 := mem[R0 + 0xFE8, el]:u64 -000002e6: when R0 = 0 goto %000002e4 -0000062f: goto %00000444 - -000002e4: -000002ec: call R30 with noreturn - -00000444: -00000447: goto @__gmon_start__ - -00000445: -00000538: R16 := 0x10000 -0000053f: R17 := mem[R16 + 0xFC0, el]:u64 -00000545: R16 := R16 + 0xFC0 -0000054a: call R17 with noreturn - -00000630: sub deregister_tm_clones(deregister_tm_clones_result) -00000645: deregister_tm_clones_result :: out u32 = low:32[R0] - -000002f2: -000002f5: R0 := 0x11000 -000002fb: R0 := R0 + 0x10 -00000300: R1 := 0x11000 -00000306: R1 := R1 + 0x10 -0000030c: #2 := ~R0 -00000311: #3 := R1 + ~R0 -00000317: VF := extend:65[#3 + 1] <> extend:65[R1] + extend:65[#2] + 1 -0000031d: CF := pad:65[#3 + 1] <> pad:65[R1] + pad:65[#2] + 1 -00000321: ZF := #3 + 1 = 0 -00000325: NF := 63:63[#3 + 1] -0000032b: when ZF goto %00000329 -00000631: goto %00000426 - -00000426: -00000429: R1 := 0x10000 -00000430: R1 := mem[R1 + 0xFD8, el]:u64 -00000435: when R1 = 0 goto %00000329 -00000632: goto %00000439 - -00000329: -00000331: call R30 with noreturn - -00000439: -0000043d: R16 := R1 -00000442: call R16 with noreturn - -00000633: sub frame_dummy(frame_dummy_result) -00000646: frame_dummy_result :: out u32 = low:32[R0] - -000003c9: -000003cb: call @register_tm_clones with noreturn - -00000634: sub main(main_argc, main_argv, main_result) -00000647: main_argc :: in u32 = low:32[R0] -00000648: main_argv :: in out u64 = R1 -00000649: main_result :: out u32 = low:32[R0] - -000001e8: -000001ec: #1 := R31 - 0x10 -000001f2: mem := mem with [#1, el]:u64 <- R29 -000001f8: mem := mem with [#1 + 8, el]:u64 <- R30 -000001fc: R31 := #1 -00000201: R2 := 0x41 -00000206: R1 := 0 -0000020c: R29 := R31 -00000212: R1 := R1 + 0x830 -00000217: R0 := 1 -0000021c: R30 := 0x69C -0000021f: call @__printf_chk with return %00000221 - -00000221: -00000224: R2 := 0x2A -00000229: R1 := 0 -0000022e: R0 := 1 -00000234: R1 := R1 + 0x848 -00000239: R30 := 0x6B0 -0000023b: call @__printf_chk with return %0000023d - -0000023d: -00000240: R2 := 0xA -00000245: R1 := 0 -0000024a: R0 := 1 -00000250: R1 := R1 + 0x858 -00000255: R30 := 0x6C4 -00000257: call @__printf_chk with return %00000259 - -00000259: -0000025c: R0 := 0 -00000263: R29 := mem[R31, el]:u64 -00000268: R30 := mem[R31 + 8, el]:u64 -0000026c: R31 := R31 + 0x10 -00000271: call R30 with noreturn - -00000635: sub register_tm_clones(register_tm_clones_result) -0000064a: register_tm_clones_result :: out u32 = low:32[R0] - -00000333: -00000336: R0 := 0x11000 -0000033c: R0 := R0 + 0x10 -00000341: R1 := 0x11000 -00000347: R1 := R1 + 0x10 -0000034e: R1 := R1 + ~R0 + 1 -00000354: R2 := 0.63:63[R1] -0000035b: R1 := R2 + (R1 ~>> 3) -00000361: R1 := extend:64[63:1[R1]] -00000367: when R1 = 0 goto %00000365 -00000636: goto %00000408 - -00000408: -0000040b: R2 := 0x10000 -00000412: R2 := mem[R2 + 0xFF8, el]:u64 -00000417: when R2 = 0 goto %00000365 -00000637: goto %0000041b - -00000365: -0000036d: call R30 with noreturn - -0000041b: -0000041f: R16 := R2 -00000424: call R16 with noreturn diff --git a/src/test/correct/malloc_with_local/gcc_O2/malloc_with_local.expected b/src/test/correct/malloc_with_local/gcc_O2/malloc_with_local.expected index b63b66903..45449f446 100644 --- a/src/test/correct/malloc_with_local/gcc_O2/malloc_with_local.expected +++ b/src/test/correct/malloc_with_local/gcc_O2/malloc_with_local.expected @@ -19,7 +19,7 @@ var {:extern} R31: bv64; var {:extern} mem: [bv64]bv8; var {:extern} stack: [bv64]bv8; const {:extern} $_IO_stdin_used_addr: bv64; -axiom ($_IO_stdin_used_addr == 2088bv64); +axiom ($_IO_stdin_used_addr == 4196440bv64); function {:extern} {:bvbuiltin "bvadd"} bvadd64(bv64, bv64) returns (bv64); function {:extern} gamma_load64(gammaMap: [bv64]bool, index: bv64) returns (bool) { (gammaMap[bvadd64(index, 7bv64)] && (gammaMap[bvadd64(index, 6bv64)] && (gammaMap[bvadd64(index, 5bv64)] && (gammaMap[bvadd64(index, 4bv64)] && (gammaMap[bvadd64(index, 3bv64)] && (gammaMap[bvadd64(index, 2bv64)] && (gammaMap[bvadd64(index, 1bv64)] && gammaMap[index]))))))) @@ -45,22 +45,18 @@ procedure {:extern} rely(); modifies Gamma_mem, mem; ensures (Gamma_mem == old(Gamma_mem)); ensures (mem == old(mem)); - free ensures (memory_load64_le(mem, 2088bv64) == 131073bv64); - free ensures (memory_load64_le(mem, 2096bv64) == 8241983568019286100bv64); - free ensures (memory_load64_le(mem, 2104bv64) == 748482783423457568bv64); - free ensures (memory_load64_le(mem, 2112bv64) == 0bv64); - free ensures (memory_load64_le(mem, 2120bv64) == 2338615504306268244bv64); - free ensures (memory_load64_le(mem, 2128bv64) == 2924860384375657bv64); - free ensures (memory_load64_le(mem, 2136bv64) == 7017575154564032596bv64); - free ensures (memory_load64_le(mem, 2144bv64) == 7089063228440191084bv64); - free ensures (memory_load64_le(mem, 2152bv64) == 2675202446017455468bv64); - free ensures (memory_load8_le(mem, 2160bv64) == 100bv8); - free ensures (memory_load8_le(mem, 2161bv64) == 10bv8); - free ensures (memory_load8_le(mem, 2162bv64) == 0bv8); - free ensures (memory_load64_le(mem, 69008bv64) == 2064bv64); - free ensures (memory_load64_le(mem, 69016bv64) == 1984bv64); - free ensures (memory_load64_le(mem, 69616bv64) == 1664bv64); - free ensures (memory_load64_le(mem, 69640bv64) == 69640bv64); + free ensures (memory_load64_le(mem, 4196440bv64) == 131073bv64); + free ensures (memory_load64_le(mem, 4196448bv64) == 8241983568019286100bv64); + free ensures (memory_load64_le(mem, 4196456bv64) == 748482783423457568bv64); + free ensures (memory_load64_le(mem, 4196464bv64) == 0bv64); + free ensures (memory_load64_le(mem, 4196472bv64) == 2338615504306268244bv64); + free ensures (memory_load64_le(mem, 4196480bv64) == 2924860384375657bv64); + free ensures (memory_load64_le(mem, 4196488bv64) == 7017575154564032596bv64); + free ensures (memory_load64_le(mem, 4196496bv64) == 7089063228440191084bv64); + free ensures (memory_load64_le(mem, 4196504bv64) == 2675202446017455468bv64); + free ensures (memory_load8_le(mem, 4196512bv64) == 100bv8); + free ensures (memory_load8_le(mem, 4196513bv64) == 10bv8); + free ensures (memory_load8_le(mem, 4196514bv64) == 0bv8); procedure {:extern} rely_transitive(); modifies Gamma_mem, mem; @@ -78,135 +74,119 @@ procedure {:extern} rely_reflexive(); procedure {:extern} guarantee_reflexive(); modifies Gamma_mem, mem; -procedure __printf_chk_1568(); +procedure __printf_chk(); modifies Gamma_R16, Gamma_R17, R16, R17; - free requires (memory_load64_le(mem, 2088bv64) == 131073bv64); - free requires (memory_load64_le(mem, 2096bv64) == 8241983568019286100bv64); - free requires (memory_load64_le(mem, 2104bv64) == 748482783423457568bv64); - free requires (memory_load64_le(mem, 2112bv64) == 0bv64); - free requires (memory_load64_le(mem, 2120bv64) == 2338615504306268244bv64); - free requires (memory_load64_le(mem, 2128bv64) == 2924860384375657bv64); - free requires (memory_load64_le(mem, 2136bv64) == 7017575154564032596bv64); - free requires (memory_load64_le(mem, 2144bv64) == 7089063228440191084bv64); - free requires (memory_load64_le(mem, 2152bv64) == 2675202446017455468bv64); - free requires (memory_load8_le(mem, 2160bv64) == 100bv8); - free requires (memory_load8_le(mem, 2161bv64) == 10bv8); - free requires (memory_load8_le(mem, 2162bv64) == 0bv8); - free requires (memory_load64_le(mem, 69008bv64) == 2064bv64); - free requires (memory_load64_le(mem, 69016bv64) == 1984bv64); - free requires (memory_load64_le(mem, 69616bv64) == 1664bv64); - free requires (memory_load64_le(mem, 69640bv64) == 69640bv64); - free ensures (memory_load64_le(mem, 2088bv64) == 131073bv64); - free ensures (memory_load64_le(mem, 2096bv64) == 8241983568019286100bv64); - free ensures (memory_load64_le(mem, 2104bv64) == 748482783423457568bv64); - free ensures (memory_load64_le(mem, 2112bv64) == 0bv64); - free ensures (memory_load64_le(mem, 2120bv64) == 2338615504306268244bv64); - free ensures (memory_load64_le(mem, 2128bv64) == 2924860384375657bv64); - free ensures (memory_load64_le(mem, 2136bv64) == 7017575154564032596bv64); - free ensures (memory_load64_le(mem, 2144bv64) == 7089063228440191084bv64); - free ensures (memory_load64_le(mem, 2152bv64) == 2675202446017455468bv64); - free ensures (memory_load8_le(mem, 2160bv64) == 100bv8); - free ensures (memory_load8_le(mem, 2161bv64) == 10bv8); - free ensures (memory_load8_le(mem, 2162bv64) == 0bv8); - free ensures (memory_load64_le(mem, 69008bv64) == 2064bv64); - free ensures (memory_load64_le(mem, 69016bv64) == 1984bv64); - free ensures (memory_load64_le(mem, 69616bv64) == 1664bv64); - free ensures (memory_load64_le(mem, 69640bv64) == 69640bv64); + free requires (memory_load64_le(mem, 4196440bv64) == 131073bv64); + free requires (memory_load64_le(mem, 4196448bv64) == 8241983568019286100bv64); + free requires (memory_load64_le(mem, 4196456bv64) == 748482783423457568bv64); + free requires (memory_load64_le(mem, 4196464bv64) == 0bv64); + free requires (memory_load64_le(mem, 4196472bv64) == 2338615504306268244bv64); + free requires (memory_load64_le(mem, 4196480bv64) == 2924860384375657bv64); + free requires (memory_load64_le(mem, 4196488bv64) == 7017575154564032596bv64); + free requires (memory_load64_le(mem, 4196496bv64) == 7089063228440191084bv64); + free requires (memory_load64_le(mem, 4196504bv64) == 2675202446017455468bv64); + free requires (memory_load8_le(mem, 4196512bv64) == 100bv8); + free requires (memory_load8_le(mem, 4196513bv64) == 10bv8); + free requires (memory_load8_le(mem, 4196514bv64) == 0bv8); + free ensures (memory_load64_le(mem, 4196440bv64) == 131073bv64); + free ensures (memory_load64_le(mem, 4196448bv64) == 8241983568019286100bv64); + free ensures (memory_load64_le(mem, 4196456bv64) == 748482783423457568bv64); + free ensures (memory_load64_le(mem, 4196464bv64) == 0bv64); + free ensures (memory_load64_le(mem, 4196472bv64) == 2338615504306268244bv64); + free ensures (memory_load64_le(mem, 4196480bv64) == 2924860384375657bv64); + free ensures (memory_load64_le(mem, 4196488bv64) == 7017575154564032596bv64); + free ensures (memory_load64_le(mem, 4196496bv64) == 7089063228440191084bv64); + free ensures (memory_load64_le(mem, 4196504bv64) == 2675202446017455468bv64); + free ensures (memory_load8_le(mem, 4196512bv64) == 100bv8); + free ensures (memory_load8_le(mem, 4196513bv64) == 10bv8); + free ensures (memory_load8_le(mem, 4196514bv64) == 0bv8); -procedure main_1664(); +procedure main(); modifies Gamma_R0, Gamma_R1, Gamma_R16, Gamma_R17, Gamma_R2, Gamma_R29, Gamma_R30, Gamma_R31, Gamma_stack, R0, R1, R16, R17, R2, R29, R30, R31, stack; - free requires (memory_load64_le(mem, 69632bv64) == 0bv64); - free requires (memory_load64_le(mem, 69640bv64) == 69640bv64); - free requires (memory_load64_le(mem, 2088bv64) == 131073bv64); - free requires (memory_load64_le(mem, 2096bv64) == 8241983568019286100bv64); - free requires (memory_load64_le(mem, 2104bv64) == 748482783423457568bv64); - free requires (memory_load64_le(mem, 2112bv64) == 0bv64); - free requires (memory_load64_le(mem, 2120bv64) == 2338615504306268244bv64); - free requires (memory_load64_le(mem, 2128bv64) == 2924860384375657bv64); - free requires (memory_load64_le(mem, 2136bv64) == 7017575154564032596bv64); - free requires (memory_load64_le(mem, 2144bv64) == 7089063228440191084bv64); - free requires (memory_load64_le(mem, 2152bv64) == 2675202446017455468bv64); - free requires (memory_load8_le(mem, 2160bv64) == 100bv8); - free requires (memory_load8_le(mem, 2161bv64) == 10bv8); - free requires (memory_load8_le(mem, 2162bv64) == 0bv8); - free requires (memory_load64_le(mem, 69008bv64) == 2064bv64); - free requires (memory_load64_le(mem, 69016bv64) == 1984bv64); - free requires (memory_load64_le(mem, 69616bv64) == 1664bv64); - free requires (memory_load64_le(mem, 69640bv64) == 69640bv64); + free requires (memory_load64_le(mem, 4325376bv64) == 0bv64); + free requires (memory_load64_le(mem, 4325384bv64) == 0bv64); + free requires (memory_load64_le(mem, 4196440bv64) == 131073bv64); + free requires (memory_load64_le(mem, 4196448bv64) == 8241983568019286100bv64); + free requires (memory_load64_le(mem, 4196456bv64) == 748482783423457568bv64); + free requires (memory_load64_le(mem, 4196464bv64) == 0bv64); + free requires (memory_load64_le(mem, 4196472bv64) == 2338615504306268244bv64); + free requires (memory_load64_le(mem, 4196480bv64) == 2924860384375657bv64); + free requires (memory_load64_le(mem, 4196488bv64) == 7017575154564032596bv64); + free requires (memory_load64_le(mem, 4196496bv64) == 7089063228440191084bv64); + free requires (memory_load64_le(mem, 4196504bv64) == 2675202446017455468bv64); + free requires (memory_load8_le(mem, 4196512bv64) == 100bv8); + free requires (memory_load8_le(mem, 4196513bv64) == 10bv8); + free requires (memory_load8_le(mem, 4196514bv64) == 0bv8); free ensures (Gamma_R29 == old(Gamma_R29)); free ensures (Gamma_R31 == old(Gamma_R31)); free ensures (R29 == old(R29)); free ensures (R31 == old(R31)); - free ensures (memory_load64_le(mem, 2088bv64) == 131073bv64); - free ensures (memory_load64_le(mem, 2096bv64) == 8241983568019286100bv64); - free ensures (memory_load64_le(mem, 2104bv64) == 748482783423457568bv64); - free ensures (memory_load64_le(mem, 2112bv64) == 0bv64); - free ensures (memory_load64_le(mem, 2120bv64) == 2338615504306268244bv64); - free ensures (memory_load64_le(mem, 2128bv64) == 2924860384375657bv64); - free ensures (memory_load64_le(mem, 2136bv64) == 7017575154564032596bv64); - free ensures (memory_load64_le(mem, 2144bv64) == 7089063228440191084bv64); - free ensures (memory_load64_le(mem, 2152bv64) == 2675202446017455468bv64); - free ensures (memory_load8_le(mem, 2160bv64) == 100bv8); - free ensures (memory_load8_le(mem, 2161bv64) == 10bv8); - free ensures (memory_load8_le(mem, 2162bv64) == 0bv8); - free ensures (memory_load64_le(mem, 69008bv64) == 2064bv64); - free ensures (memory_load64_le(mem, 69016bv64) == 1984bv64); - free ensures (memory_load64_le(mem, 69616bv64) == 1664bv64); - free ensures (memory_load64_le(mem, 69640bv64) == 69640bv64); + free ensures (memory_load64_le(mem, 4196440bv64) == 131073bv64); + free ensures (memory_load64_le(mem, 4196448bv64) == 8241983568019286100bv64); + free ensures (memory_load64_le(mem, 4196456bv64) == 748482783423457568bv64); + free ensures (memory_load64_le(mem, 4196464bv64) == 0bv64); + free ensures (memory_load64_le(mem, 4196472bv64) == 2338615504306268244bv64); + free ensures (memory_load64_le(mem, 4196480bv64) == 2924860384375657bv64); + free ensures (memory_load64_le(mem, 4196488bv64) == 7017575154564032596bv64); + free ensures (memory_load64_le(mem, 4196496bv64) == 7089063228440191084bv64); + free ensures (memory_load64_le(mem, 4196504bv64) == 2675202446017455468bv64); + free ensures (memory_load8_le(mem, 4196512bv64) == 100bv8); + free ensures (memory_load8_le(mem, 4196513bv64) == 10bv8); + free ensures (memory_load8_le(mem, 4196514bv64) == 0bv8); -implementation main_1664() +implementation main() { var #1: bv64; + var $load$15: bv64; + var $load$16: bv64; var Gamma_#1: bool; - var Gamma_load19: bool; - var Gamma_load20: bool; - var load19: bv64; - var load20: bv64; + var Gamma_$load$15: bool; + var Gamma_$load$16: bool; lmain: assume {:captureState "lmain"} true; #1, Gamma_#1 := bvadd64(R31, 18446744073709551600bv64), Gamma_R31; stack, Gamma_stack := memory_store64_le(stack, #1, R29), gamma_store64(Gamma_stack, #1, Gamma_R29); - assume {:captureState "%000001f2"} true; + assume {:captureState "%00000268"} true; stack, Gamma_stack := memory_store64_le(stack, bvadd64(#1, 8bv64), R30), gamma_store64(Gamma_stack, bvadd64(#1, 8bv64), Gamma_R30); - assume {:captureState "%000001f8"} true; + assume {:captureState "%0000026c"} true; R31, Gamma_R31 := #1, Gamma_#1; R2, Gamma_R2 := 65bv64, true; - R1, Gamma_R1 := 0bv64, true; + R1, Gamma_R1 := 4194304bv64, true; R29, Gamma_R29 := R31, Gamma_R31; - R1, Gamma_R1 := bvadd64(R1, 2096bv64), Gamma_R1; - R0, Gamma_R0 := 1bv64, true; - R30, Gamma_R30 := 1692bv64, true; - call __printf_chk_1568(); - goto l00000221; - l00000221: - assume {:captureState "l00000221"} true; + R1, Gamma_R1 := bvadd64(R1, 2144bv64), Gamma_R1; + R0, Gamma_R0 := 2bv64, true; + R30, Gamma_R30 := 4196060bv64, true; + call __printf_chk(); + goto l00000290; + l00000290: + assume {:captureState "l00000290"} true; R2, Gamma_R2 := 42bv64, true; - R1, Gamma_R1 := 0bv64, true; - R0, Gamma_R0 := 1bv64, true; - R1, Gamma_R1 := bvadd64(R1, 2120bv64), Gamma_R1; - R30, Gamma_R30 := 1712bv64, true; - call __printf_chk_1568(); - goto l0000023d; - l0000023d: - assume {:captureState "l0000023d"} true; + R1, Gamma_R1 := 4194304bv64, true; + R0, Gamma_R0 := 2bv64, true; + R1, Gamma_R1 := bvadd64(R1, 2168bv64), Gamma_R1; + R30, Gamma_R30 := 4196080bv64, true; + call __printf_chk(); + goto l000002ac; + l000002ac: + assume {:captureState "l000002ac"} true; R2, Gamma_R2 := 10bv64, true; - R1, Gamma_R1 := 0bv64, true; - R0, Gamma_R0 := 1bv64, true; - R1, Gamma_R1 := bvadd64(R1, 2136bv64), Gamma_R1; - R30, Gamma_R30 := 1732bv64, true; - call __printf_chk_1568(); - goto l00000259; - l00000259: - assume {:captureState "l00000259"} true; + R1, Gamma_R1 := 4194304bv64, true; + R0, Gamma_R0 := 2bv64, true; + R1, Gamma_R1 := bvadd64(R1, 2184bv64), Gamma_R1; + R30, Gamma_R30 := 4196100bv64, true; + call __printf_chk(); + goto l000002c8; + l000002c8: + assume {:captureState "l000002c8"} true; R0, Gamma_R0 := 0bv64, true; - load19, Gamma_load19 := memory_load64_le(stack, R31), gamma_load64(Gamma_stack, R31); - R29, Gamma_R29 := load19, Gamma_load19; - load20, Gamma_load20 := memory_load64_le(stack, bvadd64(R31, 8bv64)), gamma_load64(Gamma_stack, bvadd64(R31, 8bv64)); - R30, Gamma_R30 := load20, Gamma_load20; + $load$15, Gamma_$load$15 := memory_load64_le(stack, R31), gamma_load64(Gamma_stack, R31); + R29, Gamma_R29 := $load$15, Gamma_$load$15; + $load$16, Gamma_$load$16 := memory_load64_le(stack, bvadd64(R31, 8bv64)), gamma_load64(Gamma_stack, bvadd64(R31, 8bv64)); + R30, Gamma_R30 := $load$16, Gamma_$load$16; R31, Gamma_R31 := bvadd64(R31, 16bv64), Gamma_R31; - goto main_1664_basil_return; - main_1664_basil_return: - assume {:captureState "main_1664_basil_return"} true; + goto main_basil_return; + main_basil_return: + assume {:captureState "main_basil_return"} true; return; } diff --git a/src/test/correct/malloc_with_local/gcc_O2/malloc_with_local.gts b/src/test/correct/malloc_with_local/gcc_O2/malloc_with_local.gts deleted file mode 100644 index 23759a8b6..000000000 Binary files a/src/test/correct/malloc_with_local/gcc_O2/malloc_with_local.gts and /dev/null differ diff --git a/src/test/correct/malloc_with_local/gcc_O2/malloc_with_local.md5sum b/src/test/correct/malloc_with_local/gcc_O2/malloc_with_local.md5sum new file mode 100644 index 000000000..953d5c6da --- /dev/null +++ b/src/test/correct/malloc_with_local/gcc_O2/malloc_with_local.md5sum @@ -0,0 +1,5 @@ +82c8527d9b82770b7c5aaa76eb67dd54 correct/malloc_with_local/gcc_O2/a.out +9ddc3fec76d38032a0c3c4e289daa20c correct/malloc_with_local/gcc_O2/malloc_with_local.adt +a7b748f3336131baea0cccfdc95f0550 correct/malloc_with_local/gcc_O2/malloc_with_local.bir +ea9cc343fd1aa0688e93610b6f2f2715 correct/malloc_with_local/gcc_O2/malloc_with_local.relf +5e9fd7e108af0aa97549fa0defcb8c3c correct/malloc_with_local/gcc_O2/malloc_with_local.gts diff --git a/src/test/correct/malloc_with_local/gcc_O2/malloc_with_local.relf b/src/test/correct/malloc_with_local/gcc_O2/malloc_with_local.relf deleted file mode 100644 index a8ec4c4c7..000000000 --- a/src/test/correct/malloc_with_local/gcc_O2/malloc_with_local.relf +++ /dev/null @@ -1,123 +0,0 @@ - -Relocation section '.rela.dyn' at offset 0x488 contains 8 entries: - Offset Info Type Symbol's Value Symbol's Name + Addend -0000000000010d90 0000000000000403 R_AARCH64_RELATIVE 810 -0000000000010d98 0000000000000403 R_AARCH64_RELATIVE 7c0 -0000000000010ff0 0000000000000403 R_AARCH64_RELATIVE 680 -0000000000011008 0000000000000403 R_AARCH64_RELATIVE 11008 -0000000000010fd8 0000000400000401 R_AARCH64_GLOB_DAT 0000000000000000 _ITM_deregisterTMCloneTable + 0 -0000000000010fe0 0000000500000401 R_AARCH64_GLOB_DAT 0000000000000000 __cxa_finalize@GLIBC_2.17 + 0 -0000000000010fe8 0000000700000401 R_AARCH64_GLOB_DAT 0000000000000000 __gmon_start__ + 0 -0000000000010ff8 0000000900000401 R_AARCH64_GLOB_DAT 0000000000000000 _ITM_registerTMCloneTable + 0 - -Relocation section '.rela.plt' at offset 0x548 contains 5 entries: - Offset Info Type Symbol's Value Symbol's Name + Addend -0000000000010fa8 0000000300000402 R_AARCH64_JUMP_SLOT 0000000000000000 __libc_start_main@GLIBC_2.34 + 0 -0000000000010fb0 0000000500000402 R_AARCH64_JUMP_SLOT 0000000000000000 __cxa_finalize@GLIBC_2.17 + 0 -0000000000010fb8 0000000600000402 R_AARCH64_JUMP_SLOT 0000000000000000 __printf_chk@GLIBC_2.17 + 0 -0000000000010fc0 0000000700000402 R_AARCH64_JUMP_SLOT 0000000000000000 __gmon_start__ + 0 -0000000000010fc8 0000000800000402 R_AARCH64_JUMP_SLOT 0000000000000000 abort@GLIBC_2.17 + 0 - -Symbol table '.dynsym' contains 10 entries: - Num: Value Size Type Bind Vis Ndx Name - 0: 0000000000000000 0 NOTYPE LOCAL DEFAULT UND - 1: 00000000000005c0 0 SECTION LOCAL DEFAULT 11 .init - 2: 0000000000011000 0 SECTION LOCAL DEFAULT 22 .data - 3: 0000000000000000 0 FUNC GLOBAL DEFAULT UND __libc_start_main@GLIBC_2.34 (2) - 4: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_deregisterTMCloneTable - 5: 0000000000000000 0 FUNC WEAK DEFAULT UND __cxa_finalize@GLIBC_2.17 (3) - 6: 0000000000000000 0 FUNC GLOBAL DEFAULT UND __printf_chk@GLIBC_2.17 (3) - 7: 0000000000000000 0 NOTYPE WEAK DEFAULT UND __gmon_start__ - 8: 0000000000000000 0 FUNC GLOBAL DEFAULT UND abort@GLIBC_2.17 (3) - 9: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_registerTMCloneTable - -Symbol table '.symtab' contains 88 entries: - Num: Value Size Type Bind Vis Ndx Name - 0: 0000000000000000 0 NOTYPE LOCAL DEFAULT UND - 1: 0000000000000238 0 SECTION LOCAL DEFAULT 1 .interp - 2: 0000000000000254 0 SECTION LOCAL DEFAULT 2 .note.gnu.build-id - 3: 0000000000000278 0 SECTION LOCAL DEFAULT 3 .note.ABI-tag - 4: 0000000000000298 0 SECTION LOCAL DEFAULT 4 .gnu.hash - 5: 00000000000002b8 0 SECTION LOCAL DEFAULT 5 .dynsym - 6: 00000000000003a8 0 SECTION LOCAL DEFAULT 6 .dynstr - 7: 0000000000000442 0 SECTION LOCAL DEFAULT 7 .gnu.version - 8: 0000000000000458 0 SECTION LOCAL DEFAULT 8 .gnu.version_r - 9: 0000000000000488 0 SECTION LOCAL DEFAULT 9 .rela.dyn - 10: 0000000000000548 0 SECTION LOCAL DEFAULT 10 .rela.plt - 11: 00000000000005c0 0 SECTION LOCAL DEFAULT 11 .init - 12: 00000000000005e0 0 SECTION LOCAL DEFAULT 12 .plt - 13: 0000000000000680 0 SECTION LOCAL DEFAULT 13 .text - 14: 0000000000000814 0 SECTION LOCAL DEFAULT 14 .fini - 15: 0000000000000828 0 SECTION LOCAL DEFAULT 15 .rodata - 16: 0000000000000874 0 SECTION LOCAL DEFAULT 16 .eh_frame_hdr - 17: 00000000000008b0 0 SECTION LOCAL DEFAULT 17 .eh_frame - 18: 0000000000010d90 0 SECTION LOCAL DEFAULT 18 .init_array - 19: 0000000000010d98 0 SECTION LOCAL DEFAULT 19 .fini_array - 20: 0000000000010da0 0 SECTION LOCAL DEFAULT 20 .dynamic - 21: 0000000000010f90 0 SECTION LOCAL DEFAULT 21 .got - 22: 0000000000011000 0 SECTION LOCAL DEFAULT 22 .data - 23: 0000000000011010 0 SECTION LOCAL DEFAULT 23 .bss - 24: 0000000000000000 0 SECTION LOCAL DEFAULT 24 .comment - 25: 0000000000000000 0 FILE LOCAL DEFAULT ABS Scrt1.o - 26: 0000000000000278 0 NOTYPE LOCAL DEFAULT 3 $d - 27: 0000000000000278 32 OBJECT LOCAL DEFAULT 3 __abi_tag - 28: 0000000000000700 0 NOTYPE LOCAL DEFAULT 13 $x - 29: 00000000000008c4 0 NOTYPE LOCAL DEFAULT 17 $d - 30: 0000000000000828 0 NOTYPE LOCAL DEFAULT 15 $d - 31: 0000000000000000 0 FILE LOCAL DEFAULT ABS crti.o - 32: 0000000000000734 0 NOTYPE LOCAL DEFAULT 13 $x - 33: 0000000000000734 20 FUNC LOCAL DEFAULT 13 call_weak_fn - 34: 00000000000005c0 0 NOTYPE LOCAL DEFAULT 11 $x - 35: 0000000000000814 0 NOTYPE LOCAL DEFAULT 14 $x - 36: 0000000000000000 0 FILE LOCAL DEFAULT ABS crtn.o - 37: 00000000000005d0 0 NOTYPE LOCAL DEFAULT 11 $x - 38: 0000000000000820 0 NOTYPE LOCAL DEFAULT 14 $x - 39: 0000000000000000 0 FILE LOCAL DEFAULT ABS malloc_with_local.c - 40: 0000000000000830 0 NOTYPE LOCAL DEFAULT 15 $d - 41: 0000000000000680 0 NOTYPE LOCAL DEFAULT 13 $x - 42: 0000000000000938 0 NOTYPE LOCAL DEFAULT 17 $d - 43: 0000000000000000 0 FILE LOCAL DEFAULT ABS crtstuff.c - 44: 0000000000000750 0 NOTYPE LOCAL DEFAULT 13 $x - 45: 0000000000000750 0 FUNC LOCAL DEFAULT 13 deregister_tm_clones - 46: 0000000000000780 0 FUNC LOCAL DEFAULT 13 register_tm_clones - 47: 0000000000011008 0 NOTYPE LOCAL DEFAULT 22 $d - 48: 00000000000007c0 0 FUNC LOCAL DEFAULT 13 __do_global_dtors_aux - 49: 0000000000011010 1 OBJECT LOCAL DEFAULT 23 completed.0 - 50: 0000000000010d98 0 NOTYPE LOCAL DEFAULT 19 $d - 51: 0000000000010d98 0 OBJECT LOCAL DEFAULT 19 __do_global_dtors_aux_fini_array_entry - 52: 0000000000000810 0 FUNC LOCAL DEFAULT 13 frame_dummy - 53: 0000000000010d90 0 NOTYPE LOCAL DEFAULT 18 $d - 54: 0000000000010d90 0 OBJECT LOCAL DEFAULT 18 __frame_dummy_init_array_entry - 55: 00000000000008d8 0 NOTYPE LOCAL DEFAULT 17 $d - 56: 0000000000011010 0 NOTYPE LOCAL DEFAULT 23 $d - 57: 0000000000000000 0 FILE LOCAL DEFAULT ABS crtstuff.c - 58: 0000000000000958 0 NOTYPE LOCAL DEFAULT 17 $d - 59: 0000000000000958 0 OBJECT LOCAL DEFAULT 17 __FRAME_END__ - 60: 0000000000000000 0 FILE LOCAL DEFAULT ABS - 61: 0000000000010da0 0 OBJECT LOCAL DEFAULT ABS _DYNAMIC - 62: 0000000000000874 0 NOTYPE LOCAL DEFAULT 16 __GNU_EH_FRAME_HDR - 63: 0000000000010fd0 0 OBJECT LOCAL DEFAULT ABS _GLOBAL_OFFSET_TABLE_ - 64: 00000000000005e0 0 NOTYPE LOCAL DEFAULT 12 $x - 65: 0000000000000000 0 FUNC GLOBAL DEFAULT UND __libc_start_main@GLIBC_2.34 - 66: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_deregisterTMCloneTable - 67: 0000000000011000 0 NOTYPE WEAK DEFAULT 22 data_start - 68: 0000000000011010 0 NOTYPE GLOBAL DEFAULT 23 __bss_start__ - 69: 0000000000000000 0 FUNC WEAK DEFAULT UND __cxa_finalize@GLIBC_2.17 - 70: 0000000000011018 0 NOTYPE GLOBAL DEFAULT 23 _bss_end__ - 71: 0000000000011010 0 NOTYPE GLOBAL DEFAULT 22 _edata - 72: 0000000000000814 0 FUNC GLOBAL HIDDEN 14 _fini - 73: 0000000000011018 0 NOTYPE GLOBAL DEFAULT 23 __bss_end__ - 74: 0000000000000000 0 FUNC GLOBAL DEFAULT UND __printf_chk@GLIBC_2.17 - 75: 0000000000011000 0 NOTYPE GLOBAL DEFAULT 22 __data_start - 76: 0000000000000000 0 NOTYPE WEAK DEFAULT UND __gmon_start__ - 77: 0000000000011008 0 OBJECT GLOBAL HIDDEN 22 __dso_handle - 78: 0000000000000000 0 FUNC GLOBAL DEFAULT UND abort@GLIBC_2.17 - 79: 0000000000000828 4 OBJECT GLOBAL DEFAULT 15 _IO_stdin_used - 80: 0000000000011018 0 NOTYPE GLOBAL DEFAULT 23 _end - 81: 0000000000000700 52 FUNC GLOBAL DEFAULT 13 _start - 82: 0000000000011018 0 NOTYPE GLOBAL DEFAULT 23 __end__ - 83: 0000000000011010 0 NOTYPE GLOBAL DEFAULT 23 __bss_start - 84: 0000000000000680 80 FUNC GLOBAL DEFAULT 13 main - 85: 0000000000011010 0 OBJECT GLOBAL HIDDEN 22 __TMC_END__ - 86: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_registerTMCloneTable - 87: 00000000000005c0 0 FUNC GLOBAL HIDDEN 11 _init diff --git a/src/test/correct/malloc_with_local/gcc_O2/malloc_with_local_gtirb.expected b/src/test/correct/malloc_with_local/gcc_O2/malloc_with_local_gtirb.expected index e0a6e4c5f..8c7fae9b9 100644 --- a/src/test/correct/malloc_with_local/gcc_O2/malloc_with_local_gtirb.expected +++ b/src/test/correct/malloc_with_local/gcc_O2/malloc_with_local_gtirb.expected @@ -19,7 +19,7 @@ var {:extern} R31: bv64; var {:extern} mem: [bv64]bv8; var {:extern} stack: [bv64]bv8; const {:extern} $_IO_stdin_used_addr: bv64; -axiom ($_IO_stdin_used_addr == 2088bv64); +axiom ($_IO_stdin_used_addr == 4196440bv64); function {:extern} L(mem$in: [bv64]bv8, index: bv64) returns (bool) { false } @@ -49,22 +49,18 @@ procedure {:extern} rely(); modifies Gamma_mem, mem; ensures (Gamma_mem == old(Gamma_mem)); ensures (mem == old(mem)); - free ensures (memory_load64_le(mem, 2088bv64) == 131073bv64); - free ensures (memory_load64_le(mem, 2096bv64) == 8241983568019286100bv64); - free ensures (memory_load64_le(mem, 2104bv64) == 748482783423457568bv64); - free ensures (memory_load64_le(mem, 2112bv64) == 0bv64); - free ensures (memory_load64_le(mem, 2120bv64) == 2338615504306268244bv64); - free ensures (memory_load64_le(mem, 2128bv64) == 2924860384375657bv64); - free ensures (memory_load64_le(mem, 2136bv64) == 7017575154564032596bv64); - free ensures (memory_load64_le(mem, 2144bv64) == 7089063228440191084bv64); - free ensures (memory_load64_le(mem, 2152bv64) == 2675202446017455468bv64); - free ensures (memory_load8_le(mem, 2160bv64) == 100bv8); - free ensures (memory_load8_le(mem, 2161bv64) == 10bv8); - free ensures (memory_load8_le(mem, 2162bv64) == 0bv8); - free ensures (memory_load64_le(mem, 69008bv64) == 2064bv64); - free ensures (memory_load64_le(mem, 69016bv64) == 1984bv64); - free ensures (memory_load64_le(mem, 69616bv64) == 1664bv64); - free ensures (memory_load64_le(mem, 69640bv64) == 69640bv64); + free ensures (memory_load64_le(mem, 4196440bv64) == 131073bv64); + free ensures (memory_load64_le(mem, 4196448bv64) == 8241983568019286100bv64); + free ensures (memory_load64_le(mem, 4196456bv64) == 748482783423457568bv64); + free ensures (memory_load64_le(mem, 4196464bv64) == 0bv64); + free ensures (memory_load64_le(mem, 4196472bv64) == 2338615504306268244bv64); + free ensures (memory_load64_le(mem, 4196480bv64) == 2924860384375657bv64); + free ensures (memory_load64_le(mem, 4196488bv64) == 7017575154564032596bv64); + free ensures (memory_load64_le(mem, 4196496bv64) == 7089063228440191084bv64); + free ensures (memory_load64_le(mem, 4196504bv64) == 2675202446017455468bv64); + free ensures (memory_load8_le(mem, 4196512bv64) == 100bv8); + free ensures (memory_load8_le(mem, 4196513bv64) == 10bv8); + free ensures (memory_load8_le(mem, 4196514bv64) == 0bv8); procedure {:extern} rely_transitive(); modifies Gamma_mem, mem; @@ -82,187 +78,160 @@ procedure {:extern} rely_reflexive(); procedure {:extern} guarantee_reflexive(); modifies Gamma_mem, mem; -procedure FUN_620_1568(); +procedure FUN_400680(); modifies Gamma_R16, Gamma_R17, Gamma_mem, R16, R17, mem; - free requires (memory_load64_le(mem, 2088bv64) == 131073bv64); - free requires (memory_load64_le(mem, 2096bv64) == 8241983568019286100bv64); - free requires (memory_load64_le(mem, 2104bv64) == 748482783423457568bv64); - free requires (memory_load64_le(mem, 2112bv64) == 0bv64); - free requires (memory_load64_le(mem, 2120bv64) == 2338615504306268244bv64); - free requires (memory_load64_le(mem, 2128bv64) == 2924860384375657bv64); - free requires (memory_load64_le(mem, 2136bv64) == 7017575154564032596bv64); - free requires (memory_load64_le(mem, 2144bv64) == 7089063228440191084bv64); - free requires (memory_load64_le(mem, 2152bv64) == 2675202446017455468bv64); - free requires (memory_load8_le(mem, 2160bv64) == 100bv8); - free requires (memory_load8_le(mem, 2161bv64) == 10bv8); - free requires (memory_load8_le(mem, 2162bv64) == 0bv8); - free requires (memory_load64_le(mem, 69008bv64) == 2064bv64); - free requires (memory_load64_le(mem, 69016bv64) == 1984bv64); - free requires (memory_load64_le(mem, 69616bv64) == 1664bv64); - free requires (memory_load64_le(mem, 69640bv64) == 69640bv64); - free ensures (memory_load64_le(mem, 2088bv64) == 131073bv64); - free ensures (memory_load64_le(mem, 2096bv64) == 8241983568019286100bv64); - free ensures (memory_load64_le(mem, 2104bv64) == 748482783423457568bv64); - free ensures (memory_load64_le(mem, 2112bv64) == 0bv64); - free ensures (memory_load64_le(mem, 2120bv64) == 2338615504306268244bv64); - free ensures (memory_load64_le(mem, 2128bv64) == 2924860384375657bv64); - free ensures (memory_load64_le(mem, 2136bv64) == 7017575154564032596bv64); - free ensures (memory_load64_le(mem, 2144bv64) == 7089063228440191084bv64); - free ensures (memory_load64_le(mem, 2152bv64) == 2675202446017455468bv64); - free ensures (memory_load8_le(mem, 2160bv64) == 100bv8); - free ensures (memory_load8_le(mem, 2161bv64) == 10bv8); - free ensures (memory_load8_le(mem, 2162bv64) == 0bv8); - free ensures (memory_load64_le(mem, 69008bv64) == 2064bv64); - free ensures (memory_load64_le(mem, 69016bv64) == 1984bv64); - free ensures (memory_load64_le(mem, 69616bv64) == 1664bv64); - free ensures (memory_load64_le(mem, 69640bv64) == 69640bv64); - -implementation FUN_620_1568() + free requires (memory_load64_le(mem, 4196440bv64) == 131073bv64); + free requires (memory_load64_le(mem, 4196448bv64) == 8241983568019286100bv64); + free requires (memory_load64_le(mem, 4196456bv64) == 748482783423457568bv64); + free requires (memory_load64_le(mem, 4196464bv64) == 0bv64); + free requires (memory_load64_le(mem, 4196472bv64) == 2338615504306268244bv64); + free requires (memory_load64_le(mem, 4196480bv64) == 2924860384375657bv64); + free requires (memory_load64_le(mem, 4196488bv64) == 7017575154564032596bv64); + free requires (memory_load64_le(mem, 4196496bv64) == 7089063228440191084bv64); + free requires (memory_load64_le(mem, 4196504bv64) == 2675202446017455468bv64); + free requires (memory_load8_le(mem, 4196512bv64) == 100bv8); + free requires (memory_load8_le(mem, 4196513bv64) == 10bv8); + free requires (memory_load8_le(mem, 4196514bv64) == 0bv8); + free ensures (memory_load64_le(mem, 4196440bv64) == 131073bv64); + free ensures (memory_load64_le(mem, 4196448bv64) == 8241983568019286100bv64); + free ensures (memory_load64_le(mem, 4196456bv64) == 748482783423457568bv64); + free ensures (memory_load64_le(mem, 4196464bv64) == 0bv64); + free ensures (memory_load64_le(mem, 4196472bv64) == 2338615504306268244bv64); + free ensures (memory_load64_le(mem, 4196480bv64) == 2924860384375657bv64); + free ensures (memory_load64_le(mem, 4196488bv64) == 7017575154564032596bv64); + free ensures (memory_load64_le(mem, 4196496bv64) == 7089063228440191084bv64); + free ensures (memory_load64_le(mem, 4196504bv64) == 2675202446017455468bv64); + free ensures (memory_load8_le(mem, 4196512bv64) == 100bv8); + free ensures (memory_load8_le(mem, 4196513bv64) == 10bv8); + free ensures (memory_load8_le(mem, 4196514bv64) == 0bv8); + +implementation FUN_400680() { - var Gamma_load0: bool; - var load0: bv64; - FUN_620_1568__0__qaPbEwmeQ4Or9EH8own00w: - assume {:captureState "FUN_620_1568__0__qaPbEwmeQ4Or9EH8own00w"} true; - R16, Gamma_R16 := 65536bv64, true; + var $load11: bv64; + var Gamma_$load11: bool; + $FUN_400680$__0__$i2bc6yURTw~Pq2nxe63pQA: + assume {:captureState "$FUN_400680$__0__$i2bc6yURTw~Pq2nxe63pQA"} true; + R16, Gamma_R16 := 4321280bv64, true; call rely(); - load0, Gamma_load0 := memory_load64_le(mem, bvadd64(R16, 4024bv64)), (gamma_load64(Gamma_mem, bvadd64(R16, 4024bv64)) || L(mem, bvadd64(R16, 4024bv64))); - R17, Gamma_R17 := load0, Gamma_load0; - R16, Gamma_R16 := bvadd64(R16, 4024bv64), Gamma_R16; + $load11, Gamma_$load11 := memory_load64_le(mem, bvadd64(R16, 4040bv64)), (gamma_load64(Gamma_mem, bvadd64(R16, 4040bv64)) || L(mem, bvadd64(R16, 4040bv64))); + R17, Gamma_R17 := $load11, Gamma_$load11; + R16, Gamma_R16 := bvadd64(R16, 4040bv64), Gamma_R16; call __printf_chk(); - goto FUN_620_1568_basil_return; - FUN_620_1568_basil_return: - assume {:captureState "FUN_620_1568_basil_return"} true; - return; + assume false; } -procedure main_1664(); +procedure main(); modifies Gamma_R0, Gamma_R1, Gamma_R16, Gamma_R17, Gamma_R2, Gamma_R29, Gamma_R30, Gamma_R31, Gamma_mem, Gamma_stack, R0, R1, R16, R17, R2, R29, R30, R31, mem, stack; - free requires (memory_load64_le(mem, 69632bv64) == 0bv64); - free requires (memory_load64_le(mem, 69640bv64) == 69640bv64); - free requires (memory_load64_le(mem, 2088bv64) == 131073bv64); - free requires (memory_load64_le(mem, 2096bv64) == 8241983568019286100bv64); - free requires (memory_load64_le(mem, 2104bv64) == 748482783423457568bv64); - free requires (memory_load64_le(mem, 2112bv64) == 0bv64); - free requires (memory_load64_le(mem, 2120bv64) == 2338615504306268244bv64); - free requires (memory_load64_le(mem, 2128bv64) == 2924860384375657bv64); - free requires (memory_load64_le(mem, 2136bv64) == 7017575154564032596bv64); - free requires (memory_load64_le(mem, 2144bv64) == 7089063228440191084bv64); - free requires (memory_load64_le(mem, 2152bv64) == 2675202446017455468bv64); - free requires (memory_load8_le(mem, 2160bv64) == 100bv8); - free requires (memory_load8_le(mem, 2161bv64) == 10bv8); - free requires (memory_load8_le(mem, 2162bv64) == 0bv8); - free requires (memory_load64_le(mem, 69008bv64) == 2064bv64); - free requires (memory_load64_le(mem, 69016bv64) == 1984bv64); - free requires (memory_load64_le(mem, 69616bv64) == 1664bv64); - free requires (memory_load64_le(mem, 69640bv64) == 69640bv64); + free requires (memory_load64_le(mem, 4325376bv64) == 0bv64); + free requires (memory_load64_le(mem, 4325384bv64) == 0bv64); + free requires (memory_load64_le(mem, 4196440bv64) == 131073bv64); + free requires (memory_load64_le(mem, 4196448bv64) == 8241983568019286100bv64); + free requires (memory_load64_le(mem, 4196456bv64) == 748482783423457568bv64); + free requires (memory_load64_le(mem, 4196464bv64) == 0bv64); + free requires (memory_load64_le(mem, 4196472bv64) == 2338615504306268244bv64); + free requires (memory_load64_le(mem, 4196480bv64) == 2924860384375657bv64); + free requires (memory_load64_le(mem, 4196488bv64) == 7017575154564032596bv64); + free requires (memory_load64_le(mem, 4196496bv64) == 7089063228440191084bv64); + free requires (memory_load64_le(mem, 4196504bv64) == 2675202446017455468bv64); + free requires (memory_load8_le(mem, 4196512bv64) == 100bv8); + free requires (memory_load8_le(mem, 4196513bv64) == 10bv8); + free requires (memory_load8_le(mem, 4196514bv64) == 0bv8); free ensures (Gamma_R29 == old(Gamma_R29)); free ensures (Gamma_R31 == old(Gamma_R31)); free ensures (R29 == old(R29)); free ensures (R31 == old(R31)); - free ensures (memory_load64_le(mem, 2088bv64) == 131073bv64); - free ensures (memory_load64_le(mem, 2096bv64) == 8241983568019286100bv64); - free ensures (memory_load64_le(mem, 2104bv64) == 748482783423457568bv64); - free ensures (memory_load64_le(mem, 2112bv64) == 0bv64); - free ensures (memory_load64_le(mem, 2120bv64) == 2338615504306268244bv64); - free ensures (memory_load64_le(mem, 2128bv64) == 2924860384375657bv64); - free ensures (memory_load64_le(mem, 2136bv64) == 7017575154564032596bv64); - free ensures (memory_load64_le(mem, 2144bv64) == 7089063228440191084bv64); - free ensures (memory_load64_le(mem, 2152bv64) == 2675202446017455468bv64); - free ensures (memory_load8_le(mem, 2160bv64) == 100bv8); - free ensures (memory_load8_le(mem, 2161bv64) == 10bv8); - free ensures (memory_load8_le(mem, 2162bv64) == 0bv8); - free ensures (memory_load64_le(mem, 69008bv64) == 2064bv64); - free ensures (memory_load64_le(mem, 69016bv64) == 1984bv64); - free ensures (memory_load64_le(mem, 69616bv64) == 1664bv64); - free ensures (memory_load64_le(mem, 69640bv64) == 69640bv64); - -implementation main_1664() + free ensures (memory_load64_le(mem, 4196440bv64) == 131073bv64); + free ensures (memory_load64_le(mem, 4196448bv64) == 8241983568019286100bv64); + free ensures (memory_load64_le(mem, 4196456bv64) == 748482783423457568bv64); + free ensures (memory_load64_le(mem, 4196464bv64) == 0bv64); + free ensures (memory_load64_le(mem, 4196472bv64) == 2338615504306268244bv64); + free ensures (memory_load64_le(mem, 4196480bv64) == 2924860384375657bv64); + free ensures (memory_load64_le(mem, 4196488bv64) == 7017575154564032596bv64); + free ensures (memory_load64_le(mem, 4196496bv64) == 7089063228440191084bv64); + free ensures (memory_load64_le(mem, 4196504bv64) == 2675202446017455468bv64); + free ensures (memory_load8_le(mem, 4196512bv64) == 100bv8); + free ensures (memory_load8_le(mem, 4196513bv64) == 10bv8); + free ensures (memory_load8_le(mem, 4196514bv64) == 0bv8); + +implementation main() { - var Cse0__5_2_0: bv64; - var Gamma_Cse0__5_2_0: bool; - var Gamma_load19: bool; - var Gamma_load20: bool; - var load19: bv64; - var load20: bv64; - main_1664__0__ItZEqVtrTPCOwqXa82Hwsg: - assume {:captureState "main_1664__0__ItZEqVtrTPCOwqXa82Hwsg"} true; - Cse0__5_2_0, Gamma_Cse0__5_2_0 := bvadd64(R31, 18446744073709551600bv64), Gamma_R31; - stack, Gamma_stack := memory_store64_le(stack, Cse0__5_2_0, R29), gamma_store64(Gamma_stack, Cse0__5_2_0, Gamma_R29); - assume {:captureState "1664_1"} true; - stack, Gamma_stack := memory_store64_le(stack, bvadd64(Cse0__5_2_0, 8bv64), R30), gamma_store64(Gamma_stack, bvadd64(Cse0__5_2_0, 8bv64), Gamma_R30); - assume {:captureState "1664_2"} true; - R31, Gamma_R31 := Cse0__5_2_0, Gamma_Cse0__5_2_0; + var $load15: bv64; + var $load16: bv64; + var Cse0__5$3$0: bv64; + var Gamma_$load15: bool; + var Gamma_$load16: bool; + var Gamma_Cse0__5$3$0: bool; + $main$__0__$t_6C~3O4SbalxMsQ9Vg3LA: + assume {:captureState "$main$__0__$t_6C~3O4SbalxMsQ9Vg3LA"} true; + Cse0__5$3$0, Gamma_Cse0__5$3$0 := bvadd64(R31, 18446744073709551600bv64), Gamma_R31; + stack, Gamma_stack := memory_store64_le(stack, Cse0__5$3$0, R29), gamma_store64(Gamma_stack, Cse0__5$3$0, Gamma_R29); + assume {:captureState "4196032$1"} true; + stack, Gamma_stack := memory_store64_le(stack, bvadd64(Cse0__5$3$0, 8bv64), R30), gamma_store64(Gamma_stack, bvadd64(Cse0__5$3$0, 8bv64), Gamma_R30); + assume {:captureState "4196032$2"} true; + R31, Gamma_R31 := Cse0__5$3$0, Gamma_Cse0__5$3$0; R2, Gamma_R2 := 65bv64, true; - R1, Gamma_R1 := 0bv64, true; + R1, Gamma_R1 := 4194304bv64, true; R29, Gamma_R29 := R31, Gamma_R31; - R1, Gamma_R1 := bvadd64(R1, 2096bv64), Gamma_R1; - R0, Gamma_R0 := 1bv64, true; - R30, Gamma_R30 := 1692bv64, true; - call FUN_620_1568(); - goto main_1664__1__6_uJfVJBSzy6iG4r9DVpgQ; - main_1664__1__6_uJfVJBSzy6iG4r9DVpgQ: - assume {:captureState "main_1664__1__6_uJfVJBSzy6iG4r9DVpgQ"} true; + R1, Gamma_R1 := bvadd64(R1, 2144bv64), Gamma_R1; + R0, Gamma_R0 := 2bv64, true; + R30, Gamma_R30 := 4196060bv64, true; + call FUN_400680(); + goto $main$__1__$8D7O5dmBS1ek~5BDJ9mBtA; + $main$__1__$8D7O5dmBS1ek~5BDJ9mBtA: + assume {:captureState "$main$__1__$8D7O5dmBS1ek~5BDJ9mBtA"} true; R2, Gamma_R2 := 42bv64, true; - R1, Gamma_R1 := 0bv64, true; - R0, Gamma_R0 := 1bv64, true; - R1, Gamma_R1 := bvadd64(R1, 2120bv64), Gamma_R1; - R30, Gamma_R30 := 1712bv64, true; - call FUN_620_1568(); - goto main_1664__2__fcYUL~TbQFeL~A7mbUFIWQ; - main_1664__2__fcYUL~TbQFeL~A7mbUFIWQ: - assume {:captureState "main_1664__2__fcYUL~TbQFeL~A7mbUFIWQ"} true; + R1, Gamma_R1 := 4194304bv64, true; + R0, Gamma_R0 := 2bv64, true; + R1, Gamma_R1 := bvadd64(R1, 2168bv64), Gamma_R1; + R30, Gamma_R30 := 4196052bv64, true; + call FUN_400680(); + goto $main$__2__$UtkQk4ONSE6hNEuDpZ95RQ; + $main$__2__$UtkQk4ONSE6hNEuDpZ95RQ: + assume {:captureState "$main$__2__$UtkQk4ONSE6hNEuDpZ95RQ"} true; R2, Gamma_R2 := 10bv64, true; - R1, Gamma_R1 := 0bv64, true; - R0, Gamma_R0 := 1bv64, true; - R1, Gamma_R1 := bvadd64(R1, 2136bv64), Gamma_R1; - R30, Gamma_R30 := 1732bv64, true; - call FUN_620_1568(); - goto main_1664__3__Yc641wYvRgyME32XFwFaxw; - main_1664__3__Yc641wYvRgyME32XFwFaxw: - assume {:captureState "main_1664__3__Yc641wYvRgyME32XFwFaxw"} true; + R1, Gamma_R1 := 4194304bv64, true; + R0, Gamma_R0 := 2bv64, true; + R1, Gamma_R1 := bvadd64(R1, 2184bv64), Gamma_R1; + R30, Gamma_R30 := 4196052bv64, true; + call FUN_400680(); + goto $main$__3__$KTHyjTW0SWiGwqylcMDw6Q; + $main$__3__$KTHyjTW0SWiGwqylcMDw6Q: + assume {:captureState "$main$__3__$KTHyjTW0SWiGwqylcMDw6Q"} true; R0, Gamma_R0 := 0bv64, true; - load19, Gamma_load19 := memory_load64_le(stack, R31), gamma_load64(Gamma_stack, R31); - R29, Gamma_R29 := load19, Gamma_load19; - load20, Gamma_load20 := memory_load64_le(stack, bvadd64(R31, 8bv64)), gamma_load64(Gamma_stack, bvadd64(R31, 8bv64)); - R30, Gamma_R30 := load20, Gamma_load20; + $load15, Gamma_$load15 := memory_load64_le(stack, R31), gamma_load64(Gamma_stack, R31); + R29, Gamma_R29 := $load15, Gamma_$load15; + $load16, Gamma_$load16 := memory_load64_le(stack, bvadd64(R31, 8bv64)), gamma_load64(Gamma_stack, bvadd64(R31, 8bv64)); + R30, Gamma_R30 := $load16, Gamma_$load16; R31, Gamma_R31 := bvadd64(R31, 16bv64), Gamma_R31; - goto main_1664_basil_return; - main_1664_basil_return: - assume {:captureState "main_1664_basil_return"} true; + goto main_basil_return; + main_basil_return: + assume {:captureState "main_basil_return"} true; return; } procedure __printf_chk(); - free requires (memory_load64_le(mem, 2088bv64) == 131073bv64); - free requires (memory_load64_le(mem, 2096bv64) == 8241983568019286100bv64); - free requires (memory_load64_le(mem, 2104bv64) == 748482783423457568bv64); - free requires (memory_load64_le(mem, 2112bv64) == 0bv64); - free requires (memory_load64_le(mem, 2120bv64) == 2338615504306268244bv64); - free requires (memory_load64_le(mem, 2128bv64) == 2924860384375657bv64); - free requires (memory_load64_le(mem, 2136bv64) == 7017575154564032596bv64); - free requires (memory_load64_le(mem, 2144bv64) == 7089063228440191084bv64); - free requires (memory_load64_le(mem, 2152bv64) == 2675202446017455468bv64); - free requires (memory_load8_le(mem, 2160bv64) == 100bv8); - free requires (memory_load8_le(mem, 2161bv64) == 10bv8); - free requires (memory_load8_le(mem, 2162bv64) == 0bv8); - free requires (memory_load64_le(mem, 69008bv64) == 2064bv64); - free requires (memory_load64_le(mem, 69016bv64) == 1984bv64); - free requires (memory_load64_le(mem, 69616bv64) == 1664bv64); - free requires (memory_load64_le(mem, 69640bv64) == 69640bv64); - free ensures (memory_load64_le(mem, 2088bv64) == 131073bv64); - free ensures (memory_load64_le(mem, 2096bv64) == 8241983568019286100bv64); - free ensures (memory_load64_le(mem, 2104bv64) == 748482783423457568bv64); - free ensures (memory_load64_le(mem, 2112bv64) == 0bv64); - free ensures (memory_load64_le(mem, 2120bv64) == 2338615504306268244bv64); - free ensures (memory_load64_le(mem, 2128bv64) == 2924860384375657bv64); - free ensures (memory_load64_le(mem, 2136bv64) == 7017575154564032596bv64); - free ensures (memory_load64_le(mem, 2144bv64) == 7089063228440191084bv64); - free ensures (memory_load64_le(mem, 2152bv64) == 2675202446017455468bv64); - free ensures (memory_load8_le(mem, 2160bv64) == 100bv8); - free ensures (memory_load8_le(mem, 2161bv64) == 10bv8); - free ensures (memory_load8_le(mem, 2162bv64) == 0bv8); - free ensures (memory_load64_le(mem, 69008bv64) == 2064bv64); - free ensures (memory_load64_le(mem, 69016bv64) == 1984bv64); - free ensures (memory_load64_le(mem, 69616bv64) == 1664bv64); - free ensures (memory_load64_le(mem, 69640bv64) == 69640bv64); + free requires (memory_load64_le(mem, 4196440bv64) == 131073bv64); + free requires (memory_load64_le(mem, 4196448bv64) == 8241983568019286100bv64); + free requires (memory_load64_le(mem, 4196456bv64) == 748482783423457568bv64); + free requires (memory_load64_le(mem, 4196464bv64) == 0bv64); + free requires (memory_load64_le(mem, 4196472bv64) == 2338615504306268244bv64); + free requires (memory_load64_le(mem, 4196480bv64) == 2924860384375657bv64); + free requires (memory_load64_le(mem, 4196488bv64) == 7017575154564032596bv64); + free requires (memory_load64_le(mem, 4196496bv64) == 7089063228440191084bv64); + free requires (memory_load64_le(mem, 4196504bv64) == 2675202446017455468bv64); + free requires (memory_load8_le(mem, 4196512bv64) == 100bv8); + free requires (memory_load8_le(mem, 4196513bv64) == 10bv8); + free requires (memory_load8_le(mem, 4196514bv64) == 0bv8); + free ensures (memory_load64_le(mem, 4196440bv64) == 131073bv64); + free ensures (memory_load64_le(mem, 4196448bv64) == 8241983568019286100bv64); + free ensures (memory_load64_le(mem, 4196456bv64) == 748482783423457568bv64); + free ensures (memory_load64_le(mem, 4196464bv64) == 0bv64); + free ensures (memory_load64_le(mem, 4196472bv64) == 2338615504306268244bv64); + free ensures (memory_load64_le(mem, 4196480bv64) == 2924860384375657bv64); + free ensures (memory_load64_le(mem, 4196488bv64) == 7017575154564032596bv64); + free ensures (memory_load64_le(mem, 4196496bv64) == 7089063228440191084bv64); + free ensures (memory_load64_le(mem, 4196504bv64) == 2675202446017455468bv64); + free ensures (memory_load8_le(mem, 4196512bv64) == 100bv8); + free ensures (memory_load8_le(mem, 4196513bv64) == 10bv8); + free ensures (memory_load8_le(mem, 4196514bv64) == 0bv8); diff --git a/src/test/correct/malloc_with_local2/clang/malloc_with_local2.adt b/src/test/correct/malloc_with_local2/clang/malloc_with_local2.adt deleted file mode 100644 index 104be9114..000000000 --- a/src/test/correct/malloc_with_local2/clang/malloc_with_local2.adt +++ /dev/null @@ -1,711 +0,0 @@ -Project(Attrs([Attr("filename","\"clang/malloc_with_local2.out\""), -Attr("image-specification","(declare abi (name str))\n(declare arch (name str))\n(declare base-address (addr int))\n(declare bias (off int))\n(declare bits (size int))\n(declare code-region (addr int) (size int) (off int))\n(declare code-start (addr int))\n(declare entry-point (addr int))\n(declare external-reference (addr int) (name str))\n(declare format (name str))\n(declare is-executable (flag bool))\n(declare is-little-endian (flag bool))\n(declare llvm:base-address (addr int))\n(declare llvm:code-entry (name str) (off int) (size int))\n(declare llvm:coff-import-library (name str))\n(declare llvm:coff-virtual-section-header (name str) (addr int) (size int))\n(declare llvm:elf-program-header (name str) (off int) (size int))\n(declare llvm:elf-program-header-flags (name str) (ld bool) (r bool) \n (w bool) (x bool))\n(declare llvm:elf-virtual-program-header (name str) (addr int) (size int))\n(declare llvm:entry-point (addr int))\n(declare llvm:macho-symbol (name str) (value int))\n(declare llvm:name-reference (at int) (name str))\n(declare llvm:relocation (at int) (addr int))\n(declare llvm:section-entry (name str) (addr int) (size int) (off int))\n(declare llvm:section-flags (name str) (r bool) (w bool) (x bool))\n(declare llvm:segment-command (name str) (off int) (size int))\n(declare llvm:segment-command-flags (name str) (r bool) (w bool) (x bool))\n(declare llvm:symbol-entry (name str) (addr int) (size int) (off int)\n (value int))\n(declare llvm:virtual-segment-command (name str) (addr int) (size int))\n(declare mapped (addr int) (size int) (off int))\n(declare named-region (addr int) (size int) (name str))\n(declare named-symbol (addr int) (name str))\n(declare require (name str))\n(declare section (addr int) (size int))\n(declare segment (addr int) (size int) (r bool) (w bool) (x bool))\n(declare subarch (name str))\n(declare symbol-chunk (addr int) (size int) (root int))\n(declare symbol-value (addr int) (value int))\n(declare system (name str))\n(declare vendor (name str))\n\n(abi unknown)\n(arch aarch64)\n(base-address 0)\n(bias 0)\n(bits 64)\n(code-region 2272 20 2272)\n(code-region 1792 480 1792)\n(code-region 1600 144 1600)\n(code-region 1576 24 1576)\n(code-start 1844)\n(code-start 1792)\n(code-start 2068)\n(entry-point 1792)\n(external-reference 69568 _ITM_deregisterTMCloneTable)\n(external-reference 69576 __cxa_finalize)\n(external-reference 69584 __gmon_start__)\n(external-reference 69600 _ITM_registerTMCloneTable)\n(external-reference 69632 __libc_start_main)\n(external-reference 69640 __cxa_finalize)\n(external-reference 69648 malloc)\n(external-reference 69656 __gmon_start__)\n(external-reference 69664 abort)\n(external-reference 69672 free)\n(external-reference 69680 printf)\n(format elf)\n(is-executable true)\n(is-little-endian true)\n(llvm:base-address 0)\n(llvm:code-entry printf 0 0)\n(llvm:code-entry free 0 0)\n(llvm:code-entry abort 0 0)\n(llvm:code-entry malloc 0 0)\n(llvm:code-entry __cxa_finalize 0 0)\n(llvm:code-entry __libc_start_main 0 0)\n(llvm:code-entry _init 1576 0)\n(llvm:code-entry printf@GLIBC_2.17 0 0)\n(llvm:code-entry main 2068 204)\n(llvm:code-entry _start 1792 52)\n(llvm:code-entry free@GLIBC_2.17 0 0)\n(llvm:code-entry abort@GLIBC_2.17 0 0)\n(llvm:code-entry malloc@GLIBC_2.17 0 0)\n(llvm:code-entry _fini 2272 0)\n(llvm:code-entry __cxa_finalize@GLIBC_2.17 0 0)\n(llvm:code-entry __libc_start_main@GLIBC_2.34 0 0)\n(llvm:code-entry frame_dummy 2064 0)\n(llvm:code-entry __do_global_dtors_aux 1984 0)\n(llvm:code-entry register_tm_clones 1920 0)\n(llvm:code-entry deregister_tm_clones 1872 0)\n(llvm:code-entry call_weak_fn 1844 20)\n(llvm:code-entry .fini 2272 20)\n(llvm:code-entry .text 1792 480)\n(llvm:code-entry .plt 1600 144)\n(llvm:code-entry .init 1576 24)\n(llvm:elf-program-header 08 3528 568)\n(llvm:elf-program-header 07 0 0)\n(llvm:elf-program-header 06 2356 60)\n(llvm:elf-program-header 05 596 68)\n(llvm:elf-program-header 04 3544 480)\n(llvm:elf-program-header 03 3528 640)\n(llvm:elf-program-header 02 0 2616)\n(llvm:elf-program-header 01 568 27)\n(llvm:elf-program-header 00 64 504)\n(llvm:elf-program-header-flags 08 false true false false)\n(llvm:elf-program-header-flags 07 false true true false)\n(llvm:elf-program-header-flags 06 false true false false)\n(llvm:elf-program-header-flags 05 false true false false)\n(llvm:elf-program-header-flags 04 false true true false)\n(llvm:elf-program-header-flags 03 true true true false)\n(llvm:elf-program-header-flags 02 true true false true)\n(llvm:elf-program-header-flags 01 false true false false)\n(llvm:elf-program-header-flags 00 false true false false)\n(llvm:elf-virtual-program-header 08 69064 568)\n(llvm:elf-virtual-program-header 07 0 0)\n(llvm:elf-virtual-program-header 06 2356 60)\n(llvm:elf-virtual-program-header 05 596 68)\n(llvm:elf-virtual-program-header 04 69080 480)\n(llvm:elf-virtual-program-header 03 69064 648)\n(llvm:elf-virtual-program-header 02 0 2616)\n(llvm:elf-virtual-program-header 01 568 27)\n(llvm:elf-virtual-program-header 00 64 504)\n(llvm:entry-point 1792)\n(llvm:name-reference 69680 printf)\n(llvm:name-reference 69672 free)\n(llvm:name-reference 69664 abort)\n(llvm:name-reference 69656 __gmon_start__)\n(llvm:name-reference 69648 malloc)\n(llvm:name-reference 69640 __cxa_finalize)\n(llvm:name-reference 69632 __libc_start_main)\n(llvm:name-reference 69600 _ITM_registerTMCloneTable)\n(llvm:name-reference 69584 __gmon_start__)\n(llvm:name-reference 69576 __cxa_finalize)\n(llvm:name-reference 69568 _ITM_deregisterTMCloneTable)\n(llvm:section-entry .shstrtab 0 259 7074)\n(llvm:section-entry .strtab 0 626 6448)\n(llvm:section-entry .symtab 0 2208 4240)\n(llvm:section-entry .comment 0 71 4168)\n(llvm:section-entry .bss 69704 8 4168)\n(llvm:section-entry .data 69688 16 4152)\n(llvm:section-entry .got.plt 69608 80 4072)\n(llvm:section-entry .got 69560 48 4024)\n(llvm:section-entry .dynamic 69080 480 3544)\n(llvm:section-entry .fini_array 69072 8 3536)\n(llvm:section-entry .init_array 69064 8 3528)\n(llvm:section-entry .eh_frame 2416 200 2416)\n(llvm:section-entry .eh_frame_hdr 2356 60 2356)\n(llvm:section-entry .rodata 2292 64 2292)\n(llvm:section-entry .fini 2272 20 2272)\n(llvm:section-entry .text 1792 480 1792)\n(llvm:section-entry .plt 1600 144 1600)\n(llvm:section-entry .init 1576 24 1576)\n(llvm:section-entry .rela.plt 1408 168 1408)\n(llvm:section-entry .rela.dyn 1216 192 1216)\n(llvm:section-entry .gnu.version_r 1168 48 1168)\n(llvm:section-entry .gnu.version 1144 24 1144)\n(llvm:section-entry .dynstr 984 160 984)\n(llvm:section-entry .dynsym 696 288 696)\n(llvm:section-entry .gnu.hash 664 28 664)\n(llvm:section-entry .note.ABI-tag 632 32 632)\n(llvm:section-entry .note.gnu.build-id 596 36 596)\n(llvm:section-entry .interp 568 27 568)\n(llvm:section-flags .shstrtab true false false)\n(llvm:section-flags .strtab true false false)\n(llvm:section-flags .symtab true false false)\n(llvm:section-flags .comment true false false)\n(llvm:section-flags .bss true true false)\n(llvm:section-flags .data true true false)\n(llvm:section-flags .got.plt true true false)\n(llvm:section-flags .got true true false)\n(llvm:section-flags .dynamic true true false)\n(llvm:section-flags .fini_array true true false)\n(llvm:section-flags .init_array true true false)\n(llvm:section-flags .eh_frame true false false)\n(llvm:section-flags .eh_frame_hdr true false false)\n(llvm:section-flags .rodata true false false)\n(llvm:section-flags .fini true false true)\n(llvm:section-flags .text true false true)\n(llvm:section-flags .plt true false true)\n(llvm:section-flags .init true false true)\n(llvm:section-flags .rela.plt true false false)\n(llvm:section-flags .rela.dyn true false false)\n(llvm:section-flags .gnu.version_r true false false)\n(llvm:section-flags .gnu.version true false false)\n(llvm:section-flags .dynstr true false false)\n(llvm:section-flags .dynsym true false false)\n(llvm:section-flags .gnu.hash true false false)\n(llvm:section-flags .note.ABI-tag true false false)\n(llvm:section-flags .note.gnu.build-id true false false)\n(llvm:section-flags .interp true false false)\n(llvm:symbol-entry printf 0 0 0 0)\n(llvm:symbol-entry free 0 0 0 0)\n(llvm:symbol-entry abort 0 0 0 0)\n(llvm:symbol-entry malloc 0 0 0 0)\n(llvm:symbol-entry __cxa_finalize 0 0 0 0)\n(llvm:symbol-entry __libc_start_main 0 0 0 0)\n(llvm:symbol-entry _init 1576 0 1576 1576)\n(llvm:symbol-entry printf@GLIBC_2.17 0 0 0 0)\n(llvm:symbol-entry main 2068 204 2068 2068)\n(llvm:symbol-entry _start 1792 52 1792 1792)\n(llvm:symbol-entry free@GLIBC_2.17 0 0 0 0)\n(llvm:symbol-entry abort@GLIBC_2.17 0 0 0 0)\n(llvm:symbol-entry malloc@GLIBC_2.17 0 0 0 0)\n(llvm:symbol-entry _fini 2272 0 2272 2272)\n(llvm:symbol-entry __cxa_finalize@GLIBC_2.17 0 0 0 0)\n(llvm:symbol-entry __libc_start_main@GLIBC_2.34 0 0 0 0)\n(llvm:symbol-entry frame_dummy 2064 0 2064 2064)\n(llvm:symbol-entry __do_global_dtors_aux 1984 0 1984 1984)\n(llvm:symbol-entry register_tm_clones 1920 0 1920 1920)\n(llvm:symbol-entry deregister_tm_clones 1872 0 1872 1872)\n(llvm:symbol-entry call_weak_fn 1844 20 1844 1844)\n(mapped 0 2616 0)\n(mapped 69064 640 3528)\n(named-region 0 2616 02)\n(named-region 69064 648 03)\n(named-region 568 27 .interp)\n(named-region 596 36 .note.gnu.build-id)\n(named-region 632 32 .note.ABI-tag)\n(named-region 664 28 .gnu.hash)\n(named-region 696 288 .dynsym)\n(named-region 984 160 .dynstr)\n(named-region 1144 24 .gnu.version)\n(named-region 1168 48 .gnu.version_r)\n(named-region 1216 192 .rela.dyn)\n(named-region 1408 168 .rela.plt)\n(named-region 1576 24 .init)\n(named-region 1600 144 .plt)\n(named-region 1792 480 .text)\n(named-region 2272 20 .fini)\n(named-region 2292 64 .rodata)\n(named-region 2356 60 .eh_frame_hdr)\n(named-region 2416 200 .eh_frame)\n(named-region 69064 8 .init_array)\n(named-region 69072 8 .fini_array)\n(named-region 69080 480 .dynamic)\n(named-region 69560 48 .got)\n(named-region 69608 80 .got.plt)\n(named-region 69688 16 .data)\n(named-region 69704 8 .bss)\n(named-region 0 71 .comment)\n(named-region 0 2208 .symtab)\n(named-region 0 626 .strtab)\n(named-region 0 259 .shstrtab)\n(named-symbol 1844 call_weak_fn)\n(named-symbol 1872 deregister_tm_clones)\n(named-symbol 1920 register_tm_clones)\n(named-symbol 1984 __do_global_dtors_aux)\n(named-symbol 2064 frame_dummy)\n(named-symbol 0 __libc_start_main@GLIBC_2.34)\n(named-symbol 0 __cxa_finalize@GLIBC_2.17)\n(named-symbol 2272 _fini)\n(named-symbol 0 malloc@GLIBC_2.17)\n(named-symbol 0 abort@GLIBC_2.17)\n(named-symbol 0 free@GLIBC_2.17)\n(named-symbol 1792 _start)\n(named-symbol 2068 main)\n(named-symbol 0 printf@GLIBC_2.17)\n(named-symbol 1576 _init)\n(named-symbol 0 __libc_start_main)\n(named-symbol 0 __cxa_finalize)\n(named-symbol 0 malloc)\n(named-symbol 0 abort)\n(named-symbol 0 free)\n(named-symbol 0 printf)\n(require libc.so.6)\n(section 568 27)\n(section 596 36)\n(section 632 32)\n(section 664 28)\n(section 696 288)\n(section 984 160)\n(section 1144 24)\n(section 1168 48)\n(section 1216 192)\n(section 1408 168)\n(section 1576 24)\n(section 1600 144)\n(section 1792 480)\n(section 2272 20)\n(section 2292 64)\n(section 2356 60)\n(section 2416 200)\n(section 69064 8)\n(section 69072 8)\n(section 69080 480)\n(section 69560 48)\n(section 69608 80)\n(section 69688 16)\n(section 69704 8)\n(section 0 71)\n(section 0 2208)\n(section 0 626)\n(section 0 259)\n(segment 0 2616 true false true)\n(segment 69064 648 true true false)\n(subarch v8)\n(symbol-chunk 1844 20 1844)\n(symbol-chunk 1792 52 1792)\n(symbol-chunk 2068 204 2068)\n(symbol-value 1844 1844)\n(symbol-value 1872 1872)\n(symbol-value 1920 1920)\n(symbol-value 1984 1984)\n(symbol-value 2064 2064)\n(symbol-value 2272 2272)\n(symbol-value 1792 1792)\n(symbol-value 2068 2068)\n(symbol-value 1576 1576)\n(symbol-value 0 0)\n(system \"\")\n(vendor \"\")\n"), -Attr("abi-name","\"aarch64-linux-gnu-elf\"")]), -Sections([Section(".shstrtab", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xa8\x1c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x38\x00\x09\x00\x40\x00\x1d\x00\x1c\x00\x06\x00\x00\x00\x04\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x04\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x38\x0a\x00\x00\x00\x00\x00\x00\x38\x0a\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x01\x00\x00\x00\x06\x00\x00\x00\xc8\x0d\x00\x00\x00\x00\x00\x00\xc8\x0d\x01\x00\x00\x00\x00\x00\xc8\x0d\x01"), -Section(".strtab", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xa8\x1c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x38\x00\x09\x00\x40\x00\x1d\x00\x1c\x00\x06\x00\x00\x00\x04\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x04\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x38\x0a\x00\x00\x00\x00\x00\x00\x38\x0a\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x01\x00\x00\x00\x06\x00\x00\x00\xc8\x0d\x00\x00\x00\x00\x00\x00\xc8\x0d\x01\x00\x00\x00\x00\x00\xc8\x0d\x01\x00\x00\x00\x00\x00\x80\x02\x00\x00\x00\x00\x00\x00\x88\x02\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x02\x00\x00\x00\x06\x00\x00\x00\xd8\x0d\x00\x00\x00\x00\x00\x00\xd8\x0d\x01\x00\x00\x00\x00\x00\xd8\x0d\x01\x00\x00\x00\x00\x00\xe0\x01\x00\x00\x00\x00\x00\x00\xe0\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x04\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x50\xe5\x74\x64\x04\x00\x00\x00\x34\x09\x00\x00\x00\x00\x00\x00\x34\x09\x00\x00\x00\x00\x00\x00\x34\x09\x00\x00\x00\x00\x00\x00\x3c\x00\x00\x00\x00\x00\x00\x00\x3c\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x51\xe5\x74\x64\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x52\xe5\x74\x64\x04\x00\x00\x00\xc8\x0d\x00\x00\x00\x00\x00\x00\xc8\x0d\x01\x00\x00\x00\x00\x00\xc8\x0d\x01\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x2f\x6c\x69\x62\x2f\x6c\x64\x2d\x6c\x69\x6e\x75\x78\x2d\x61\x61\x72\x63\x68\x36\x34\x2e\x73\x6f\x2e\x31\x00\x00\x04\x00\x00\x00\x14\x00\x00\x00\x03\x00\x00\x00\x47\x4e\x55\x00\xf3\x3d\xf1\x2d\x08\x0a\xb2\x88\x7b\xf0\x03\x1a\x40\x85"), -Section(".symtab", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xa8\x1c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x38\x00\x09\x00\x40\x00\x1d\x00\x1c\x00\x06\x00\x00\x00\x04\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x04\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x38\x0a\x00\x00\x00\x00\x00\x00\x38\x0a\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x01\x00\x00\x00\x06\x00\x00\x00\xc8\x0d\x00\x00\x00\x00\x00\x00\xc8\x0d\x01\x00\x00\x00\x00\x00\xc8\x0d\x01\x00\x00\x00\x00\x00\x80\x02\x00\x00\x00\x00\x00\x00\x88\x02\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x02\x00\x00\x00\x06\x00\x00\x00\xd8\x0d\x00\x00\x00\x00\x00\x00\xd8\x0d\x01\x00\x00\x00\x00\x00\xd8\x0d\x01\x00\x00\x00\x00\x00\xe0\x01\x00\x00\x00\x00\x00\x00\xe0\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x04\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x50\xe5\x74\x64\x04\x00\x00\x00\x34\x09\x00\x00\x00\x00\x00\x00\x34\x09\x00\x00\x00\x00\x00\x00\x34\x09\x00\x00\x00\x00\x00\x00\x3c\x00\x00\x00\x00\x00\x00\x00\x3c\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x51\xe5\x74\x64\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x52\xe5\x74\x64\x04\x00\x00\x00\xc8\x0d\x00\x00\x00\x00\x00\x00\xc8\x0d\x01\x00\x00\x00\x00\x00\xc8\x0d\x01\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x2f\x6c\x69\x62\x2f\x6c\x64\x2d\x6c\x69\x6e\x75\x78\x2d\x61\x61\x72\x63\x68\x36\x34\x2e\x73\x6f\x2e\x31\x00\x00\x04\x00\x00\x00\x14\x00\x00\x00\x03\x00\x00\x00\x47\x4e\x55\x00\xf3\x3d\xf1\x2d\x08\x0a\xb2\x88\x7b\xf0\x03\x1a\x40\x85\xdc\xfb\x23\xde\x20\x55\x04\x00\x00\x00\x10\x00\x00\x00\x01\x00\x00\x00\x47\x4e\x55\x00\x00\x00\x00\x00\x03\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x01\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x0b\x00\x28\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x17\x00\x38\x10\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x17\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5b\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x22\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x77\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2e\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x29\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x86\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x34\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5f\x5f\x63\x78\x61\x5f\x66\x69\x6e\x61\x6c\x69\x7a\x65\x00\x6d\x61\x6c\x6c\x6f\x63\x00\x5f\x5f\x6c\x69\x62\x63\x5f\x73\x74\x61\x72\x74\x5f\x6d\x61\x69\x6e\x00\x66\x72\x65\x65\x00\x61\x62\x6f\x72\x74\x00\x70\x72\x69\x6e\x74\x66\x00\x6c\x69\x62\x63\x2e\x73\x6f\x2e\x36\x00\x47\x4c\x49\x42\x43\x5f\x32\x2e\x31\x37\x00\x47\x4c\x49\x42\x43\x5f\x32\x2e\x33\x34\x00\x5f\x49\x54\x4d\x5f\x64\x65\x72\x65\x67\x69\x73\x74\x65\x72\x54\x4d\x43\x6c\x6f\x6e\x65\x54\x61\x62\x6c\x65\x00\x5f\x5f\x67\x6d\x6f\x6e\x5f\x73\x74\x61\x72\x74\x5f\x5f\x00\x5f\x49\x54\x4d\x5f\x72\x65\x67\x69\x73\x74\x65\x72\x54\x4d\x43\x6c\x6f\x6e\x65\x54\x61\x62\x6c\x65\x00\x00\x00\x00\x00\x00\x00\x02\x00\x01\x00\x03\x00\x03\x00\x01\x00\x03\x00\x03\x00\x01\x00\x03\x00\x01\x00\x02\x00\x3b\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x97\x91\x96\x06\x00\x00\x03\x00\x45\x00\x00\x00\x10\x00\x00\x00\xb4\x91\x96\x06\x00\x00\x02\x00\x50\x00\x00\x00\x00\x00\x00\x00\xc8\x0d\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x10\x08\x00\x00\x00\x00\x00\x00\xd0\x0d\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\xc0\x07\x00\x00\x00\x00\x00\x00\xd8\x0f\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x14\x08\x00\x00\x00\x00\x00\x00\x40\x10\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x40\x10\x01\x00\x00\x00\x00\x00\xc0\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xc8\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xd0\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe0\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x0a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x08\x10\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x10\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x18\x10\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x20\x10\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x28\x10\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x09\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x30\x10\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x0b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1f\x20\x03\xd5\xfd\x7b\xbf\xa9\xfd\x03\x00\x91\x40\x00\x00\x94\xfd\x7b\xc1\xa8\xc0\x03\x5f\xd6\xf0\x7b\xbf\xa9\x90\x00\x00\x90\x11\xfe\x47\xf9\x10\xe2\x3f\x91\x20\x02\x1f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x90\x00\x00\xb0\x11\x02\x40\xf9\x10\x02\x00\x91\x20\x02\x1f\xd6\x90\x00\x00\xb0\x11\x06\x40\xf9\x10\x22\x00\x91\x20\x02\x1f\xd6\x90\x00\x00\xb0\x11\x0a\x40\xf9\x10\x42\x00\x91\x20\x02\x1f\xd6\x90\x00\x00\xb0\x11\x0e\x40\xf9\x10\x62\x00\x91\x20\x02\x1f\xd6\x90\x00\x00\xb0\x11\x12\x40\xf9\x10\x82\x00\x91\x20\x02\x1f\xd6\x90\x00\x00\xb0\x11\x16\x40\xf9\x10\xa2\x00\x91\x20\x02\x1f\xd6\x90\x00\x00\xb0\x11\x1a\x40\xf9\x10\xc2\x00\x91\x20\x02\x1f\xd6\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1f\x20\x03\xd5\x1d\x00\x80\xd2\x1e\x00\x80\xd2\xe5\x03\x00\xaa\xe1\x03\x40\xf9\xe2\x23\x00\x91\xe6\x03\x00\x91\x80\x00\x00\x90\x00\xec\x47\xf9\x03\x00\x80\xd2\x04\x00\x80\xd2\xcd\xff\xff\x97\xdc\xff\xff\x97\x80\x00\x00\x90\x00\xe8\x47\xf9\x40\x00\x00\xb4\xd4\xff\xff\x17\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x80\x00\x00\xb0\x00\x20\x01\x91\x81\x00\x00\xb0\x21\x20\x01\x91\x3f\x00\x00\xeb\xc0\x00\x00\x54\x81\x00\x00\x90\x21\xe0\x47\xf9\x61\x00\x00\xb4\xf0\x03\x01\xaa\x00\x02\x1f\xd6\xc0\x03\x5f\xd6\x80\x00\x00\xb0\x00\x20\x01\x91\x81\x00\x00\xb0\x21\x20\x01\x91\x21\x00\x00\xcb\x22\xfc\x7f\xd3\x41\x0c\x81\x8b\x21\xfc\x41\x93\xc1\x00\x00\xb4\x82\x00\x00\x90\x42\xf0\x47\xf9\x62\x00\x00\xb4\xf0\x03\x02\xaa\x00\x02\x1f\xd6\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\xfd\x7b\xbe\xa9\xfd\x03\x00\x91\xf3\x0b\x00\xf9\x93\x00\x00\xb0\x60\x22\x41\x39\x40\x01\x00\x35\x80\x00\x00\x90\x00\xe4\x47\xf9\x80\x00\x00\xb4\x80\x00\x00\xb0\x00\x20\x40\xf9\xa1\xff\xff\x97\xd8\xff\xff\x97\x20\x00\x80\x52\x60\x22\x01\x39\xf3\x0b\x40\xf9\xfd\x7b\xc2\xa8\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\xdc\xff\xff\x17\xff\x43\x01\xd1\xfd\x7b\x04\xa9\xfd\x03\x01\x91\xe8\x03\x1f\x2a\xe8\x0b\x00\xb9\xbf\xc3\x1f\xb8\x20\x00\x80\xd2\x94\xff\xff\x97\xa0\x03\x1f\xf8\x68\x01\x80\x52\xa8\xc3\x1e\xb8\x80\x00\x80\xd2\xe0\x03\x00\xf9\x8e\xff\xff\x97\xe8\x03\x00\xaa\xe0\x03\x40\xf9\xe8\x13\x00\xf9\x48\x01\x80\x52\xe8\x1f\x00\xb9\x88\xff\xff\x97\xe0\x0b\x00\xf9\x28\x01\x80\x52\xe8\x0f\x00\xb9\xa9\x03\x5f\xf8\x28\x08\x80\x52\x28\x01\x00\x39\xe9\x13\x40\xf9\x48\x05\x80\x52\x28\x01\x00\xb9\xa8\x03\x5f\xf8\x01\x01\x40\x39\x00\x00\x00\x90\x00\xe0\x23\x91\x8a\xff\xff\x97\xe8\x13\x40\xf9"), -Section(".comment", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xa8\x1c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x38\x00\x09\x00\x40\x00\x1d\x00\x1c\x00\x06\x00\x00\x00\x04\x00\x00"), -Section(".interp", 0x238, "\x2f\x6c\x69\x62\x2f\x6c\x64\x2d\x6c\x69\x6e\x75\x78\x2d\x61\x61\x72\x63\x68\x36\x34\x2e\x73\x6f\x2e\x31\x00"), -Section(".note.gnu.build-id", 0x254, "\x04\x00\x00\x00\x14\x00\x00\x00\x03\x00\x00\x00\x47\x4e\x55\x00\xf3\x3d\xf1\x2d\x08\x0a\xb2\x88\x7b\xf0\x03\x1a\x40\x85\xdc\xfb\x23\xde\x20\x55"), -Section(".note.ABI-tag", 0x278, "\x04\x00\x00\x00\x10\x00\x00\x00\x01\x00\x00\x00\x47\x4e\x55\x00\x00\x00\x00\x00\x03\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00"), -Section(".gnu.hash", 0x298, "\x01\x00\x00\x00\x01\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".dynsym", 0x2B8, "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x0b\x00\x28\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x17\x00\x38\x10\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x17\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5b\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x22\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x77\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2e\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x29\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x86\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x34\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".dynstr", 0x3D8, "\x00\x5f\x5f\x63\x78\x61\x5f\x66\x69\x6e\x61\x6c\x69\x7a\x65\x00\x6d\x61\x6c\x6c\x6f\x63\x00\x5f\x5f\x6c\x69\x62\x63\x5f\x73\x74\x61\x72\x74\x5f\x6d\x61\x69\x6e\x00\x66\x72\x65\x65\x00\x61\x62\x6f\x72\x74\x00\x70\x72\x69\x6e\x74\x66\x00\x6c\x69\x62\x63\x2e\x73\x6f\x2e\x36\x00\x47\x4c\x49\x42\x43\x5f\x32\x2e\x31\x37\x00\x47\x4c\x49\x42\x43\x5f\x32\x2e\x33\x34\x00\x5f\x49\x54\x4d\x5f\x64\x65\x72\x65\x67\x69\x73\x74\x65\x72\x54\x4d\x43\x6c\x6f\x6e\x65\x54\x61\x62\x6c\x65\x00\x5f\x5f\x67\x6d\x6f\x6e\x5f\x73\x74\x61\x72\x74\x5f\x5f\x00\x5f\x49\x54\x4d\x5f\x72\x65\x67\x69\x73\x74\x65\x72\x54\x4d\x43\x6c\x6f\x6e\x65\x54\x61\x62\x6c\x65\x00"), -Section(".gnu.version", 0x478, "\x00\x00\x00\x00\x00\x00\x02\x00\x01\x00\x03\x00\x03\x00\x01\x00\x03\x00\x03\x00\x01\x00\x03\x00"), -Section(".gnu.version_r", 0x490, "\x01\x00\x02\x00\x3b\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x97\x91\x96\x06\x00\x00\x03\x00\x45\x00\x00\x00\x10\x00\x00\x00\xb4\x91\x96\x06\x00\x00\x02\x00\x50\x00\x00\x00\x00\x00\x00\x00"), -Section(".rela.dyn", 0x4C0, "\xc8\x0d\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x10\x08\x00\x00\x00\x00\x00\x00\xd0\x0d\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\xc0\x07\x00\x00\x00\x00\x00\x00\xd8\x0f\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x14\x08\x00\x00\x00\x00\x00\x00\x40\x10\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x40\x10\x01\x00\x00\x00\x00\x00\xc0\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xc8\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xd0\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe0\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x0a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".rela.plt", 0x580, "\x00\x10\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x08\x10\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x10\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x18\x10\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x20\x10\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x28\x10\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x09\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x30\x10\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x0b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".init", 0x628, "\x1f\x20\x03\xd5\xfd\x7b\xbf\xa9\xfd\x03\x00\x91\x40\x00\x00\x94\xfd\x7b\xc1\xa8\xc0\x03\x5f\xd6"), -Section(".plt", 0x640, "\xf0\x7b\xbf\xa9\x90\x00\x00\x90\x11\xfe\x47\xf9\x10\xe2\x3f\x91\x20\x02\x1f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x90\x00\x00\xb0\x11\x02\x40\xf9\x10\x02\x00\x91\x20\x02\x1f\xd6\x90\x00\x00\xb0\x11\x06\x40\xf9\x10\x22\x00\x91\x20\x02\x1f\xd6\x90\x00\x00\xb0\x11\x0a\x40\xf9\x10\x42\x00\x91\x20\x02\x1f\xd6\x90\x00\x00\xb0\x11\x0e\x40\xf9\x10\x62\x00\x91\x20\x02\x1f\xd6\x90\x00\x00\xb0\x11\x12\x40\xf9\x10\x82\x00\x91\x20\x02\x1f\xd6\x90\x00\x00\xb0\x11\x16\x40\xf9\x10\xa2\x00\x91\x20\x02\x1f\xd6\x90\x00\x00\xb0\x11\x1a\x40\xf9\x10\xc2\x00\x91\x20\x02\x1f\xd6"), -Section(".fini", 0x8E0, "\x1f\x20\x03\xd5\xfd\x7b\xbf\xa9\xfd\x03\x00\x91\xfd\x7b\xc1\xa8\xc0\x03\x5f\xd6"), -Section(".rodata", 0x8F4, "\x01\x00\x02\x00\x54\x68\x65\x20\x63\x68\x61\x72\x20\x69\x73\x3a\x20\x25\x63\x0a\x00\x54\x68\x65\x20\x69\x6e\x74\x20\x69\x73\x3a\x20\x25\x64\x0a\x00\x54\x68\x65\x20\x6c\x6f\x63\x61\x6c\x20\x76\x61\x72\x69\x61\x62\x6c\x65\x20\x69\x73\x3a\x20\x25\x64\x0a\x00"), -Section(".eh_frame_hdr", 0x934, "\x01\x1b\x03\x3b\x38\x00\x00\x00\x06\x00\x00\x00\xcc\xfd\xff\xff\x50\x00\x00\x00\x1c\xfe\xff\xff\x64\x00\x00\x00\x4c\xfe\xff\xff\x78\x00\x00\x00\x8c\xfe\xff\xff\x8c\x00\x00\x00\xdc\xfe\xff\xff\xb0\x00\x00\x00\xe0\xfe\xff\xff\xd8\x00\x00\x00"), -Section(".eh_frame", 0x970, "\x10\x00\x00\x00\x00\x00\x00\x00\x01\x7a\x52\x00\x04\x78\x1e\x01\x1b\x0c\x1f\x00\x10\x00\x00\x00\x18\x00\x00\x00\x74\xfd\xff\xff\x34\x00\x00\x00\x00\x41\x07\x1e\x10\x00\x00\x00\x2c\x00\x00\x00\xb0\xfd\xff\xff\x30\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x40\x00\x00\x00\xcc\xfd\xff\xff\x3c\x00\x00\x00\x00\x00\x00\x00\x20\x00\x00\x00\x54\x00\x00\x00\xf8\xfd\xff\xff\x48\x00\x00\x00\x00\x41\x0e\x20\x9d\x04\x9e\x03\x42\x93\x02\x4e\xde\xdd\xd3\x0e\x00\x00\x00\x00\x10\x00\x00\x00\x78\x00\x00\x00\x24\xfe\xff\xff\x04\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x01\x7a\x52\x00\x01\x7c\x1e\x01\x1b\x0c\x1f\x00\x24\x00\x00\x00\x18\x00\x00\x00\x00\xfe\xff\xff\xcc\x00\x00\x00\x00\x44\x0e\x50\x48\x0c\x1d\x10\x9e\x02\x9d\x04\x02\xb4\x0c\x1f\x50\x48\x0e\x00\xde\xdd\x00\x00\x00\x00\x00\x00"), -Section(".fini_array", 0x10DD0, "\xc0\x07\x00\x00\x00\x00\x00\x00"), -Section(".dynamic", 0x10DD8, "\x01\x00\x00\x00\x00\x00\x00\x00\x3b\x00\x00\x00\x00\x00\x00\x00\x0c\x00\x00\x00\x00\x00\x00\x00\x28\x06\x00\x00\x00\x00\x00\x00\x0d\x00\x00\x00\x00\x00\x00\x00\xe0\x08\x00\x00\x00\x00\x00\x00\x19\x00\x00\x00\x00\x00\x00\x00\xc8\x0d\x01\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x1a\x00\x00\x00\x00\x00\x00\x00\xd0\x0d\x01\x00\x00\x00\x00\x00\x1c\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\xf5\xfe\xff\x6f\x00\x00\x00\x00\x98\x02\x00\x00\x00\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\xd8\x03\x00\x00\x00\x00\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\xb8\x02\x00\x00\x00\x00\x00\x00\x0a\x00\x00\x00\x00\x00\x00\x00\xa0\x00\x00\x00\x00\x00\x00\x00\x0b\x00\x00\x00\x00\x00\x00\x00\x18\x00\x00\x00\x00\x00\x00\x00\x15\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\xe8\x0f\x01\x00\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\xa8\x00\x00\x00\x00\x00\x00\x00\x14\x00\x00\x00\x00\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x17\x00\x00\x00\x00\x00\x00\x00\x80\x05\x00\x00\x00\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\xc0\x04\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\xc0\x00\x00\x00\x00\x00\x00\x00\x09\x00\x00\x00\x00\x00\x00\x00\x18\x00\x00\x00\x00\x00\x00\x00\xfb\xff\xff\x6f\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\xfe\xff\xff\x6f\x00\x00\x00\x00\x90\x04\x00\x00\x00\x00\x00\x00\xff\xff\xff\x6f\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\xf0\xff\xff\x6f\x00\x00\x00\x00\x78\x04\x00\x00\x00\x00\x00\x00\xf9\xff\xff\x6f\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".init_array", 0x10DC8, "\x10\x08\x00\x00\x00\x00\x00\x00"), -Section(".got", 0x10FB8, "\xd8\x0d\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x14\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".got.plt", 0x10FE8, "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x06\x00\x00\x00\x00\x00\x00\x40\x06\x00\x00\x00\x00\x00\x00\x40\x06\x00\x00\x00\x00\x00\x00\x40\x06\x00\x00\x00\x00\x00\x00\x40\x06\x00\x00\x00\x00\x00\x00\x40\x06\x00\x00\x00\x00\x00\x00\x40\x06\x00\x00\x00\x00\x00\x00"), -Section(".data", 0x11038, "\x00\x00\x00\x00\x00\x00\x00\x00\x40\x10\x01\x00\x00\x00\x00\x00"), -Section(".text", 0x700, "\x1f\x20\x03\xd5\x1d\x00\x80\xd2\x1e\x00\x80\xd2\xe5\x03\x00\xaa\xe1\x03\x40\xf9\xe2\x23\x00\x91\xe6\x03\x00\x91\x80\x00\x00\x90\x00\xec\x47\xf9\x03\x00\x80\xd2\x04\x00\x80\xd2\xcd\xff\xff\x97\xdc\xff\xff\x97\x80\x00\x00\x90\x00\xe8\x47\xf9\x40\x00\x00\xb4\xd4\xff\xff\x17\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x80\x00\x00\xb0\x00\x20\x01\x91\x81\x00\x00\xb0\x21\x20\x01\x91\x3f\x00\x00\xeb\xc0\x00\x00\x54\x81\x00\x00\x90\x21\xe0\x47\xf9\x61\x00\x00\xb4\xf0\x03\x01\xaa\x00\x02\x1f\xd6\xc0\x03\x5f\xd6\x80\x00\x00\xb0\x00\x20\x01\x91\x81\x00\x00\xb0\x21\x20\x01\x91\x21\x00\x00\xcb\x22\xfc\x7f\xd3\x41\x0c\x81\x8b\x21\xfc\x41\x93\xc1\x00\x00\xb4\x82\x00\x00\x90\x42\xf0\x47\xf9\x62\x00\x00\xb4\xf0\x03\x02\xaa\x00\x02\x1f\xd6\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\xfd\x7b\xbe\xa9\xfd\x03\x00\x91\xf3\x0b\x00\xf9\x93\x00\x00\xb0\x60\x22\x41\x39\x40\x01\x00\x35\x80\x00\x00\x90\x00\xe4\x47\xf9\x80\x00\x00\xb4\x80\x00\x00\xb0\x00\x20\x40\xf9\xa1\xff\xff\x97\xd8\xff\xff\x97\x20\x00\x80\x52\x60\x22\x01\x39\xf3\x0b\x40\xf9\xfd\x7b\xc2\xa8\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\xdc\xff\xff\x17\xff\x43\x01\xd1\xfd\x7b\x04\xa9\xfd\x03\x01\x91\xe8\x03\x1f\x2a\xe8\x0b\x00\xb9\xbf\xc3\x1f\xb8\x20\x00\x80\xd2\x94\xff\xff\x97\xa0\x03\x1f\xf8\x68\x01\x80\x52\xa8\xc3\x1e\xb8\x80\x00\x80\xd2\xe0\x03\x00\xf9\x8e\xff\xff\x97\xe8\x03\x00\xaa\xe0\x03\x40\xf9\xe8\x13\x00\xf9\x48\x01\x80\x52\xe8\x1f\x00\xb9\x88\xff\xff\x97\xe0\x0b\x00\xf9\x28\x01\x80\x52\xe8\x0f\x00\xb9\xa9\x03\x5f\xf8\x28\x08\x80\x52\x28\x01\x00\x39\xe9\x13\x40\xf9\x48\x05\x80\x52\x28\x01\x00\xb9\xa8\x03\x5f\xf8\x01\x01\x40\x39\x00\x00\x00\x90\x00\xe0\x23\x91\x8a\xff\xff\x97\xe8\x13\x40\xf9\x01\x01\x40\xb9\x00\x00\x00\x90\x00\x24\x24\x91\x85\xff\xff\x97\xe1\x1f\x40\xb9\x00\x00\x00\x90\x00\x64\x24\x91\x81\xff\xff\x97\xa0\x03\x5f\xf8\x7b\xff\xff\x97\xe0\x13\x40\xf9\x79\xff\xff\x97\xe0\x0b\x40\xb9\xfd\x7b\x44\xa9\xff\x43\x01\x91\xc0\x03\x5f\xd6")]), -Memmap([Annotation(Region(0x0,0xA37), Attr("segment","02 0 2616")), -Annotation(Region(0x700,0x733), Attr("symbol","\"_start\"")), -Annotation(Region(0x0,0x102), Attr("section","\".shstrtab\"")), -Annotation(Region(0x0,0x271), Attr("section","\".strtab\"")), -Annotation(Region(0x0,0x89F), Attr("section","\".symtab\"")), -Annotation(Region(0x0,0x46), Attr("section","\".comment\"")), -Annotation(Region(0x238,0x252), Attr("section","\".interp\"")), -Annotation(Region(0x254,0x277), Attr("section","\".note.gnu.build-id\"")), -Annotation(Region(0x278,0x297), Attr("section","\".note.ABI-tag\"")), -Annotation(Region(0x298,0x2B3), Attr("section","\".gnu.hash\"")), -Annotation(Region(0x2B8,0x3D7), Attr("section","\".dynsym\"")), -Annotation(Region(0x3D8,0x477), Attr("section","\".dynstr\"")), -Annotation(Region(0x478,0x48F), Attr("section","\".gnu.version\"")), -Annotation(Region(0x490,0x4BF), Attr("section","\".gnu.version_r\"")), -Annotation(Region(0x4C0,0x57F), Attr("section","\".rela.dyn\"")), -Annotation(Region(0x580,0x627), Attr("section","\".rela.plt\"")), -Annotation(Region(0x628,0x63F), Attr("section","\".init\"")), -Annotation(Region(0x640,0x6CF), Attr("section","\".plt\"")), -Annotation(Region(0x628,0x63F), Attr("code-region","()")), -Annotation(Region(0x640,0x6CF), Attr("code-region","()")), -Annotation(Region(0x700,0x733), Attr("symbol-info","_start 0x700 52")), -Annotation(Region(0x734,0x747), Attr("symbol","\"call_weak_fn\"")), -Annotation(Region(0x734,0x747), Attr("symbol-info","call_weak_fn 0x734 20")), -Annotation(Region(0x814,0x8DF), Attr("symbol","\"main\"")), -Annotation(Region(0x814,0x8DF), Attr("symbol-info","main 0x814 204")), -Annotation(Region(0x8E0,0x8F3), Attr("section","\".fini\"")), -Annotation(Region(0x8F4,0x933), Attr("section","\".rodata\"")), -Annotation(Region(0x934,0x96F), Attr("section","\".eh_frame_hdr\"")), -Annotation(Region(0x970,0xA37), Attr("section","\".eh_frame\"")), -Annotation(Region(0x10DC8,0x11047), Attr("segment","03 0x10DC8 648")), -Annotation(Region(0x10DD0,0x10DD7), Attr("section","\".fini_array\"")), -Annotation(Region(0x10DD8,0x10FB7), Attr("section","\".dynamic\"")), -Annotation(Region(0x10DC8,0x10DCF), Attr("section","\".init_array\"")), -Annotation(Region(0x10FB8,0x10FE7), Attr("section","\".got\"")), -Annotation(Region(0x10FE8,0x11037), Attr("section","\".got.plt\"")), -Annotation(Region(0x11038,0x11047), Attr("section","\".data\"")), -Annotation(Region(0x700,0x8DF), Attr("section","\".text\"")), -Annotation(Region(0x700,0x8DF), Attr("code-region","()")), -Annotation(Region(0x8E0,0x8F3), Attr("code-region","()"))]), -Program(Tid(1_998, "%000007ce"), Attrs([]), - Subs([Sub(Tid(1_973, "@__cxa_finalize"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x670"), -Attr("stub","()")]), "__cxa_finalize", Args([Arg(Tid(1_999, "%000007cf"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("__cxa_finalize_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(1_300, "@__cxa_finalize"), - Attrs([Attr("address","0x670")]), Phis([]), -Defs([Def(Tid(1_596, "%0000063c"), Attrs([Attr("address","0x670"), -Attr("insn","adrp x16, #69632")]), Var("R16",Imm(64)), Int(69632,64)), -Def(Tid(1_603, "%00000643"), Attrs([Attr("address","0x674"), -Attr("insn","ldr x17, [x16, #0x8]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(1_609, "%00000649"), Attrs([Attr("address","0x678"), -Attr("insn","add x16, x16, #0x8")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(8,64)))]), Jmps([Call(Tid(1_614, "%0000064e"), - Attrs([Attr("address","0x67C"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), -Sub(Tid(1_974, "@__do_global_dtors_aux"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x7C0")]), - "__do_global_dtors_aux", Args([Arg(Tid(2_000, "%000007d0"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("__do_global_dtors_aux_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(794, "@__do_global_dtors_aux"), - Attrs([Attr("address","0x7C0")]), Phis([]), Defs([Def(Tid(798, "%0000031e"), - Attrs([Attr("address","0x7C0"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("#3",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(18446744073709551584,64))), -Def(Tid(804, "%00000324"), Attrs([Attr("address","0x7C0"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("#3",Imm(64)),Var("R29",Imm(64)),LittleEndian(),64)), -Def(Tid(810, "%0000032a"), Attrs([Attr("address","0x7C0"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("#3",Imm(64)),Int(8,64)),Var("R30",Imm(64)),LittleEndian(),64)), -Def(Tid(814, "%0000032e"), Attrs([Attr("address","0x7C0"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("R31",Imm(64)), -Var("#3",Imm(64))), Def(Tid(820, "%00000334"), - Attrs([Attr("address","0x7C4"), Attr("insn","mov x29, sp")]), - Var("R29",Imm(64)), Var("R31",Imm(64))), Def(Tid(828, "%0000033c"), - Attrs([Attr("address","0x7C8"), Attr("insn","str x19, [sp, #0x10]")]), - Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(16,64)),Var("R19",Imm(64)),LittleEndian(),64)), -Def(Tid(833, "%00000341"), Attrs([Attr("address","0x7CC"), -Attr("insn","adrp x19, #69632")]), Var("R19",Imm(64)), Int(69632,64)), -Def(Tid(840, "%00000348"), Attrs([Attr("address","0x7D0"), -Attr("insn","ldrb w0, [x19, #0x48]")]), Var("R0",Imm(64)), -UNSIGNED(64,Load(Var("mem",Mem(64,8)),PLUS(Var("R19",Imm(64)),Int(72,64)),LittleEndian(),8)))]), -Jmps([Goto(Tid(847, "%0000034f"), Attrs([Attr("address","0x7D4"), -Attr("insn","cbnz w0, #0x28")]), - NEQ(Extract(31,0,Var("R0",Imm(64))),Int(0,32)), -Direct(Tid(845, "%0000034d"))), Goto(Tid(1_975, "%000007b7"), Attrs([]), - Int(1,1), Direct(Tid(1_245, "%000004dd")))])), Blk(Tid(1_245, "%000004dd"), - Attrs([Attr("address","0x7D8")]), Phis([]), -Defs([Def(Tid(1_248, "%000004e0"), Attrs([Attr("address","0x7D8"), -Attr("insn","adrp x0, #65536")]), Var("R0",Imm(64)), Int(65536,64)), -Def(Tid(1_255, "%000004e7"), Attrs([Attr("address","0x7DC"), -Attr("insn","ldr x0, [x0, #0xfc8]")]), Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(4040,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(1_261, "%000004ed"), Attrs([Attr("address","0x7E0"), -Attr("insn","cbz x0, #0x10")]), EQ(Var("R0",Imm(64)),Int(0,64)), -Direct(Tid(1_259, "%000004eb"))), Goto(Tid(1_976, "%000007b8"), Attrs([]), - Int(1,1), Direct(Tid(1_284, "%00000504")))])), Blk(Tid(1_284, "%00000504"), - Attrs([Attr("address","0x7E4")]), Phis([]), -Defs([Def(Tid(1_287, "%00000507"), Attrs([Attr("address","0x7E4"), -Attr("insn","adrp x0, #69632")]), Var("R0",Imm(64)), Int(69632,64)), -Def(Tid(1_294, "%0000050e"), Attrs([Attr("address","0x7E8"), -Attr("insn","ldr x0, [x0, #0x40]")]), Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(64,64)),LittleEndian(),64)), -Def(Tid(1_299, "%00000513"), Attrs([Attr("address","0x7EC"), -Attr("insn","bl #-0x17c")]), Var("R30",Imm(64)), Int(2032,64))]), -Jmps([Call(Tid(1_302, "%00000516"), Attrs([Attr("address","0x7EC"), -Attr("insn","bl #-0x17c")]), Int(1,1), -(Direct(Tid(1_973, "@__cxa_finalize")),Direct(Tid(1_259, "%000004eb"))))])), -Blk(Tid(1_259, "%000004eb"), Attrs([Attr("address","0x7F0")]), Phis([]), -Defs([Def(Tid(1_267, "%000004f3"), Attrs([Attr("address","0x7F0"), -Attr("insn","bl #-0xa0")]), Var("R30",Imm(64)), Int(2036,64))]), -Jmps([Call(Tid(1_269, "%000004f5"), Attrs([Attr("address","0x7F0"), -Attr("insn","bl #-0xa0")]), Int(1,1), -(Direct(Tid(1_987, "@deregister_tm_clones")),Direct(Tid(1_271, "%000004f7"))))])), -Blk(Tid(1_271, "%000004f7"), Attrs([Attr("address","0x7F4")]), Phis([]), -Defs([Def(Tid(1_274, "%000004fa"), Attrs([Attr("address","0x7F4"), -Attr("insn","mov w0, #0x1")]), Var("R0",Imm(64)), Int(1,64)), -Def(Tid(1_282, "%00000502"), Attrs([Attr("address","0x7F8"), -Attr("insn","strb w0, [x19, #0x48]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R19",Imm(64)),Int(72,64)),Extract(7,0,Var("R0",Imm(64))),LittleEndian(),8))]), -Jmps([Goto(Tid(1_977, "%000007b9"), Attrs([]), Int(1,1), -Direct(Tid(845, "%0000034d")))])), Blk(Tid(845, "%0000034d"), - Attrs([Attr("address","0x7FC")]), Phis([]), Defs([Def(Tid(855, "%00000357"), - Attrs([Attr("address","0x7FC"), Attr("insn","ldr x19, [sp, #0x10]")]), - Var("R19",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(16,64)),LittleEndian(),64)), -Def(Tid(862, "%0000035e"), Attrs([Attr("address","0x800"), -Attr("insn","ldp x29, x30, [sp], #0x20")]), Var("R29",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(867, "%00000363"), Attrs([Attr("address","0x800"), -Attr("insn","ldp x29, x30, [sp], #0x20")]), Var("R30",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(871, "%00000367"), Attrs([Attr("address","0x800"), -Attr("insn","ldp x29, x30, [sp], #0x20")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(32,64)))]), Jmps([Call(Tid(876, "%0000036c"), - Attrs([Attr("address","0x804"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), Sub(Tid(1_978, "@__libc_start_main"), - Attrs([Attr("c.proto","signed (*)(signed (*)(signed , char** , char** );* main, signed , char** , \nvoid* auxv)"), -Attr("address","0x660"), Attr("stub","()")]), "__libc_start_main", - Args([Arg(Tid(2_001, "%000007d1"), - Attrs([Attr("c.layout","**[ : 64]"), -Attr("c.data","Top:u64 ptr ptr"), -Attr("c.type","signed (*)(signed , char** , char** );*")]), - Var("__libc_start_main_main",Imm(64)), Var("R0",Imm(64)), In()), -Arg(Tid(2_002, "%000007d2"), Attrs([Attr("c.layout","[signed : 32]"), -Attr("c.data","Top:u32"), Attr("c.type","signed")]), - Var("__libc_start_main_arg2",Imm(32)), LOW(32,Var("R1",Imm(64))), In()), -Arg(Tid(2_003, "%000007d3"), Attrs([Attr("c.layout","**[char : 8]"), -Attr("c.data","Top:u8 ptr ptr"), Attr("c.type","char**")]), - Var("__libc_start_main_arg3",Imm(64)), Var("R2",Imm(64)), Both()), -Arg(Tid(2_004, "%000007d4"), Attrs([Attr("c.layout","*[ : 8]"), -Attr("c.data","{} ptr"), Attr("c.type","void*")]), - Var("__libc_start_main_auxv",Imm(64)), Var("R3",Imm(64)), Both()), -Arg(Tid(2_005, "%000007d5"), Attrs([Attr("c.layout","[signed : 32]"), -Attr("c.data","Top:u32"), Attr("c.type","signed")]), - Var("__libc_start_main_result",Imm(32)), LOW(32,Var("R0",Imm(64))), -Out())]), Blks([Blk(Tid(627, "@__libc_start_main"), - Attrs([Attr("address","0x660")]), Phis([]), -Defs([Def(Tid(1_574, "%00000626"), Attrs([Attr("address","0x660"), -Attr("insn","adrp x16, #69632")]), Var("R16",Imm(64)), Int(69632,64)), -Def(Tid(1_581, "%0000062d"), Attrs([Attr("address","0x664"), -Attr("insn","ldr x17, [x16]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R16",Imm(64)),LittleEndian(),64)), -Def(Tid(1_587, "%00000633"), Attrs([Attr("address","0x668"), -Attr("insn","add x16, x16, #0x0")]), Var("R16",Imm(64)), -Var("R16",Imm(64)))]), Jmps([Call(Tid(1_592, "%00000638"), - Attrs([Attr("address","0x66C"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), Sub(Tid(1_979, "@_fini"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x8E0")]), - "_fini", Args([Arg(Tid(2_006, "%000007d6"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("_fini_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(31, "@_fini"), - Attrs([Attr("address","0x8E0")]), Phis([]), Defs([Def(Tid(37, "%00000025"), - Attrs([Attr("address","0x8E4"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("#0",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(18446744073709551600,64))), -Def(Tid(43, "%0000002b"), Attrs([Attr("address","0x8E4"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("#0",Imm(64)),Var("R29",Imm(64)),LittleEndian(),64)), -Def(Tid(49, "%00000031"), Attrs([Attr("address","0x8E4"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("#0",Imm(64)),Int(8,64)),Var("R30",Imm(64)),LittleEndian(),64)), -Def(Tid(53, "%00000035"), Attrs([Attr("address","0x8E4"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("R31",Imm(64)), -Var("#0",Imm(64))), Def(Tid(59, "%0000003b"), Attrs([Attr("address","0x8E8"), -Attr("insn","mov x29, sp")]), Var("R29",Imm(64)), Var("R31",Imm(64))), -Def(Tid(66, "%00000042"), Attrs([Attr("address","0x8EC"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R29",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(71, "%00000047"), Attrs([Attr("address","0x8EC"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R30",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(75, "%0000004b"), Attrs([Attr("address","0x8EC"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(16,64)))]), Jmps([Call(Tid(80, "%00000050"), - Attrs([Attr("address","0x8F0"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), Sub(Tid(1_980, "@_init"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x628")]), - "_init", Args([Arg(Tid(2_007, "%000007d7"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("_init_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(1_752, "@_init"), - Attrs([Attr("address","0x628")]), Phis([]), -Defs([Def(Tid(1_758, "%000006de"), Attrs([Attr("address","0x62C"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("#7",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(18446744073709551600,64))), -Def(Tid(1_764, "%000006e4"), Attrs([Attr("address","0x62C"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("#7",Imm(64)),Var("R29",Imm(64)),LittleEndian(),64)), -Def(Tid(1_770, "%000006ea"), Attrs([Attr("address","0x62C"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("#7",Imm(64)),Int(8,64)),Var("R30",Imm(64)),LittleEndian(),64)), -Def(Tid(1_774, "%000006ee"), Attrs([Attr("address","0x62C"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("R31",Imm(64)), -Var("#7",Imm(64))), Def(Tid(1_780, "%000006f4"), - Attrs([Attr("address","0x630"), Attr("insn","mov x29, sp")]), - Var("R29",Imm(64)), Var("R31",Imm(64))), Def(Tid(1_785, "%000006f9"), - Attrs([Attr("address","0x634"), Attr("insn","bl #0x100")]), - Var("R30",Imm(64)), Int(1592,64))]), Jmps([Call(Tid(1_787, "%000006fb"), - Attrs([Attr("address","0x634"), Attr("insn","bl #0x100")]), Int(1,1), -(Direct(Tid(1_985, "@call_weak_fn")),Direct(Tid(1_789, "%000006fd"))))])), -Blk(Tid(1_789, "%000006fd"), Attrs([Attr("address","0x638")]), Phis([]), -Defs([Def(Tid(1_794, "%00000702"), Attrs([Attr("address","0x638"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R29",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(1_799, "%00000707"), Attrs([Attr("address","0x638"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R30",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(1_803, "%0000070b"), Attrs([Attr("address","0x638"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(16,64)))]), Jmps([Call(Tid(1_808, "%00000710"), - Attrs([Attr("address","0x63C"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), Sub(Tid(1_981, "@_start"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x700"), -Attr("entry-point","()")]), "_start", Args([Arg(Tid(2_008, "%000007d8"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("_start_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(564, "@_start"), - Attrs([Attr("address","0x700")]), Phis([]), Defs([Def(Tid(569, "%00000239"), - Attrs([Attr("address","0x704"), Attr("insn","mov x29, #0x0")]), - Var("R29",Imm(64)), Int(0,64)), Def(Tid(574, "%0000023e"), - Attrs([Attr("address","0x708"), Attr("insn","mov x30, #0x0")]), - Var("R30",Imm(64)), Int(0,64)), Def(Tid(580, "%00000244"), - Attrs([Attr("address","0x70C"), Attr("insn","mov x5, x0")]), - Var("R5",Imm(64)), Var("R0",Imm(64))), Def(Tid(587, "%0000024b"), - Attrs([Attr("address","0x710"), Attr("insn","ldr x1, [sp]")]), - Var("R1",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(593, "%00000251"), Attrs([Attr("address","0x714"), -Attr("insn","add x2, sp, #0x8")]), Var("R2",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(8,64))), Def(Tid(599, "%00000257"), - Attrs([Attr("address","0x718"), Attr("insn","mov x6, sp")]), - Var("R6",Imm(64)), Var("R31",Imm(64))), Def(Tid(604, "%0000025c"), - Attrs([Attr("address","0x71C"), Attr("insn","adrp x0, #65536")]), - Var("R0",Imm(64)), Int(65536,64)), Def(Tid(611, "%00000263"), - Attrs([Attr("address","0x720"), Attr("insn","ldr x0, [x0, #0xfd8]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(4056,64)),LittleEndian(),64)), -Def(Tid(616, "%00000268"), Attrs([Attr("address","0x724"), -Attr("insn","mov x3, #0x0")]), Var("R3",Imm(64)), Int(0,64)), -Def(Tid(621, "%0000026d"), Attrs([Attr("address","0x728"), -Attr("insn","mov x4, #0x0")]), Var("R4",Imm(64)), Int(0,64)), -Def(Tid(626, "%00000272"), Attrs([Attr("address","0x72C"), -Attr("insn","bl #-0xcc")]), Var("R30",Imm(64)), Int(1840,64))]), -Jmps([Call(Tid(629, "%00000275"), Attrs([Attr("address","0x72C"), -Attr("insn","bl #-0xcc")]), Int(1,1), -(Direct(Tid(1_978, "@__libc_start_main")),Direct(Tid(631, "%00000277"))))])), -Blk(Tid(631, "%00000277"), Attrs([Attr("address","0x730")]), Phis([]), -Defs([Def(Tid(634, "%0000027a"), Attrs([Attr("address","0x730"), -Attr("insn","bl #-0x90")]), Var("R30",Imm(64)), Int(1844,64))]), -Jmps([Call(Tid(637, "%0000027d"), Attrs([Attr("address","0x730"), -Attr("insn","bl #-0x90")]), Int(1,1), -(Direct(Tid(1_984, "@abort")),Direct(Tid(1_982, "%000007be"))))])), -Blk(Tid(1_982, "%000007be"), Attrs([]), Phis([]), Defs([]), -Jmps([Call(Tid(1_983, "%000007bf"), Attrs([]), Int(1,1), -(Direct(Tid(1_985, "@call_weak_fn")),))]))])), Sub(Tid(1_984, "@abort"), - Attrs([Attr("noreturn","()"), Attr("c.proto","void (*)(void)"), -Attr("address","0x6A0"), Attr("stub","()")]), "abort", Args([]), -Blks([Blk(Tid(635, "@abort"), Attrs([Attr("address","0x6A0")]), Phis([]), -Defs([Def(Tid(1_662, "%0000067e"), Attrs([Attr("address","0x6A0"), -Attr("insn","adrp x16, #69632")]), Var("R16",Imm(64)), Int(69632,64)), -Def(Tid(1_669, "%00000685"), Attrs([Attr("address","0x6A4"), -Attr("insn","ldr x17, [x16, #0x20]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(32,64)),LittleEndian(),64)), -Def(Tid(1_675, "%0000068b"), Attrs([Attr("address","0x6A8"), -Attr("insn","add x16, x16, #0x20")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(32,64)))]), Jmps([Call(Tid(1_680, "%00000690"), - Attrs([Attr("address","0x6AC"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), Sub(Tid(1_985, "@call_weak_fn"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x734")]), - "call_weak_fn", Args([Arg(Tid(2_009, "%000007d9"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("call_weak_fn_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(639, "@call_weak_fn"), - Attrs([Attr("address","0x734")]), Phis([]), Defs([Def(Tid(642, "%00000282"), - Attrs([Attr("address","0x734"), Attr("insn","adrp x0, #65536")]), - Var("R0",Imm(64)), Int(65536,64)), Def(Tid(649, "%00000289"), - Attrs([Attr("address","0x738"), Attr("insn","ldr x0, [x0, #0xfd0]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(4048,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(655, "%0000028f"), Attrs([Attr("address","0x73C"), -Attr("insn","cbz x0, #0x8")]), EQ(Var("R0",Imm(64)),Int(0,64)), -Direct(Tid(653, "%0000028d"))), Goto(Tid(1_986, "%000007c2"), Attrs([]), - Int(1,1), Direct(Tid(1_364, "%00000554")))])), Blk(Tid(653, "%0000028d"), - Attrs([Attr("address","0x744")]), Phis([]), Defs([]), -Jmps([Call(Tid(661, "%00000295"), Attrs([Attr("address","0x744"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))])), -Blk(Tid(1_364, "%00000554"), Attrs([Attr("address","0x740")]), Phis([]), -Defs([]), Jmps([Goto(Tid(1_367, "%00000557"), Attrs([Attr("address","0x740"), -Attr("insn","b #-0xb0")]), Int(1,1), -Direct(Tid(1_365, "@__gmon_start__")))])), Blk(Tid(1_365, "@__gmon_start__"), - Attrs([Attr("address","0x690")]), Phis([]), -Defs([Def(Tid(1_640, "%00000668"), Attrs([Attr("address","0x690"), -Attr("insn","adrp x16, #69632")]), Var("R16",Imm(64)), Int(69632,64)), -Def(Tid(1_647, "%0000066f"), Attrs([Attr("address","0x694"), -Attr("insn","ldr x17, [x16, #0x18]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(24,64)),LittleEndian(),64)), -Def(Tid(1_653, "%00000675"), Attrs([Attr("address","0x698"), -Attr("insn","add x16, x16, #0x18")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(24,64)))]), Jmps([Call(Tid(1_658, "%0000067a"), - Attrs([Attr("address","0x69C"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), -Sub(Tid(1_987, "@deregister_tm_clones"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x750")]), - "deregister_tm_clones", Args([Arg(Tid(2_010, "%000007da"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("deregister_tm_clones_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(667, "@deregister_tm_clones"), - Attrs([Attr("address","0x750")]), Phis([]), Defs([Def(Tid(670, "%0000029e"), - Attrs([Attr("address","0x750"), Attr("insn","adrp x0, #69632")]), - Var("R0",Imm(64)), Int(69632,64)), Def(Tid(676, "%000002a4"), - Attrs([Attr("address","0x754"), Attr("insn","add x0, x0, #0x48")]), - Var("R0",Imm(64)), PLUS(Var("R0",Imm(64)),Int(72,64))), -Def(Tid(681, "%000002a9"), Attrs([Attr("address","0x758"), -Attr("insn","adrp x1, #69632")]), Var("R1",Imm(64)), Int(69632,64)), -Def(Tid(687, "%000002af"), Attrs([Attr("address","0x75C"), -Attr("insn","add x1, x1, #0x48")]), Var("R1",Imm(64)), -PLUS(Var("R1",Imm(64)),Int(72,64))), Def(Tid(693, "%000002b5"), - Attrs([Attr("address","0x760"), Attr("insn","cmp x1, x0")]), - Var("#1",Imm(64)), NOT(Var("R0",Imm(64)))), Def(Tid(698, "%000002ba"), - Attrs([Attr("address","0x760"), Attr("insn","cmp x1, x0")]), - Var("#2",Imm(64)), PLUS(Var("R1",Imm(64)),NOT(Var("R0",Imm(64))))), -Def(Tid(704, "%000002c0"), Attrs([Attr("address","0x760"), -Attr("insn","cmp x1, x0")]), Var("VF",Imm(1)), -NEQ(SIGNED(65,PLUS(Var("#2",Imm(64)),Int(1,64))),PLUS(PLUS(SIGNED(65,Var("R1",Imm(64))),SIGNED(65,Var("#1",Imm(64)))),Int(1,65)))), -Def(Tid(710, "%000002c6"), Attrs([Attr("address","0x760"), -Attr("insn","cmp x1, x0")]), Var("CF",Imm(1)), -NEQ(UNSIGNED(65,PLUS(Var("#2",Imm(64)),Int(1,64))),PLUS(PLUS(UNSIGNED(65,Var("R1",Imm(64))),UNSIGNED(65,Var("#1",Imm(64)))),Int(1,65)))), -Def(Tid(714, "%000002ca"), Attrs([Attr("address","0x760"), -Attr("insn","cmp x1, x0")]), Var("ZF",Imm(1)), -EQ(PLUS(Var("#2",Imm(64)),Int(1,64)),Int(0,64))), Def(Tid(718, "%000002ce"), - Attrs([Attr("address","0x760"), Attr("insn","cmp x1, x0")]), - Var("NF",Imm(1)), Extract(63,63,PLUS(Var("#2",Imm(64)),Int(1,64))))]), -Jmps([Goto(Tid(724, "%000002d4"), Attrs([Attr("address","0x764"), -Attr("insn","b.eq #0x18")]), EQ(Var("ZF",Imm(1)),Int(1,1)), -Direct(Tid(722, "%000002d2"))), Goto(Tid(1_988, "%000007c4"), Attrs([]), - Int(1,1), Direct(Tid(1_334, "%00000536")))])), Blk(Tid(1_334, "%00000536"), - Attrs([Attr("address","0x768")]), Phis([]), -Defs([Def(Tid(1_337, "%00000539"), Attrs([Attr("address","0x768"), -Attr("insn","adrp x1, #65536")]), Var("R1",Imm(64)), Int(65536,64)), -Def(Tid(1_344, "%00000540"), Attrs([Attr("address","0x76C"), -Attr("insn","ldr x1, [x1, #0xfc0]")]), Var("R1",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R1",Imm(64)),Int(4032,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(1_349, "%00000545"), Attrs([Attr("address","0x770"), -Attr("insn","cbz x1, #0xc")]), EQ(Var("R1",Imm(64)),Int(0,64)), -Direct(Tid(722, "%000002d2"))), Goto(Tid(1_989, "%000007c5"), Attrs([]), - Int(1,1), Direct(Tid(1_353, "%00000549")))])), Blk(Tid(722, "%000002d2"), - Attrs([Attr("address","0x77C")]), Phis([]), Defs([]), -Jmps([Call(Tid(730, "%000002da"), Attrs([Attr("address","0x77C"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))])), -Blk(Tid(1_353, "%00000549"), Attrs([Attr("address","0x774")]), Phis([]), -Defs([Def(Tid(1_357, "%0000054d"), Attrs([Attr("address","0x774"), -Attr("insn","mov x16, x1")]), Var("R16",Imm(64)), Var("R1",Imm(64)))]), -Jmps([Call(Tid(1_362, "%00000552"), Attrs([Attr("address","0x778"), -Attr("insn","br x16")]), Int(1,1), (Indirect(Var("R16",Imm(64))),))]))])), -Sub(Tid(1_990, "@frame_dummy"), Attrs([Attr("c.proto","signed (*)(void)"), -Attr("address","0x810")]), "frame_dummy", Args([Arg(Tid(2_011, "%000007db"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("frame_dummy_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(882, "@frame_dummy"), - Attrs([Attr("address","0x810")]), Phis([]), Defs([]), -Jmps([Call(Tid(884, "%00000374"), Attrs([Attr("address","0x810"), -Attr("insn","b #-0x90")]), Int(1,1), -(Direct(Tid(1_995, "@register_tm_clones")),))]))])), Sub(Tid(1_991, "@free"), - Attrs([Attr("c.proto","void (*)(void* ptr)"), Attr("address","0x6B0"), -Attr("stub","()")]), "free", Args([Arg(Tid(2_012, "%000007dc"), - Attrs([Attr("c.layout","*[ : 8]"), Attr("c.data","{} ptr"), -Attr("c.type","void*")]), Var("free_ptr",Imm(64)), Var("R0",Imm(64)), -Both())]), Blks([Blk(Tid(1_193, "@free"), Attrs([Attr("address","0x6B0")]), - Phis([]), Defs([Def(Tid(1_684, "%00000694"), Attrs([Attr("address","0x6B0"), -Attr("insn","adrp x16, #69632")]), Var("R16",Imm(64)), Int(69632,64)), -Def(Tid(1_691, "%0000069b"), Attrs([Attr("address","0x6B4"), -Attr("insn","ldr x17, [x16, #0x28]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(40,64)),LittleEndian(),64)), -Def(Tid(1_697, "%000006a1"), Attrs([Attr("address","0x6B8"), -Attr("insn","add x16, x16, #0x28")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(40,64)))]), Jmps([Call(Tid(1_702, "%000006a6"), - Attrs([Attr("address","0x6BC"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), Sub(Tid(1_992, "@main"), - Attrs([Attr("c.proto","signed (*)(signed argc, const char** argv)"), -Attr("address","0x814")]), "main", Args([Arg(Tid(2_013, "%000007dd"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("main_argc",Imm(32)), -LOW(32,Var("R0",Imm(64))), In()), Arg(Tid(2_014, "%000007de"), - Attrs([Attr("c.layout","**[char : 8]"), Attr("c.data","Top:u8 ptr ptr"), -Attr("c.type"," const char**")]), Var("main_argv",Imm(64)), -Var("R1",Imm(64)), Both()), Arg(Tid(2_015, "%000007df"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("main_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(886, "@main"), - Attrs([Attr("address","0x814")]), Phis([]), Defs([Def(Tid(890, "%0000037a"), - Attrs([Attr("address","0x814"), Attr("insn","sub sp, sp, #0x50")]), - Var("R31",Imm(64)), PLUS(Var("R31",Imm(64)),Int(18446744073709551536,64))), -Def(Tid(896, "%00000380"), Attrs([Attr("address","0x818"), -Attr("insn","stp x29, x30, [sp, #0x40]")]), Var("#4",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(64,64))), Def(Tid(902, "%00000386"), - Attrs([Attr("address","0x818"), Attr("insn","stp x29, x30, [sp, #0x40]")]), - Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("#4",Imm(64)),Var("R29",Imm(64)),LittleEndian(),64)), -Def(Tid(908, "%0000038c"), Attrs([Attr("address","0x818"), -Attr("insn","stp x29, x30, [sp, #0x40]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("#4",Imm(64)),Int(8,64)),Var("R30",Imm(64)),LittleEndian(),64)), -Def(Tid(914, "%00000392"), Attrs([Attr("address","0x81C"), -Attr("insn","add x29, sp, #0x40")]), Var("R29",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(64,64))), Def(Tid(919, "%00000397"), - Attrs([Attr("address","0x820"), Attr("insn","mov w8, wzr")]), - Var("R8",Imm(64)), Int(0,64)), Def(Tid(927, "%0000039f"), - Attrs([Attr("address","0x824"), Attr("insn","str w8, [sp, #0x8]")]), - Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),Extract(31,0,Var("R8",Imm(64))),LittleEndian(),32)), -Def(Tid(934, "%000003a6"), Attrs([Attr("address","0x828"), -Attr("insn","stur wzr, [x29, #-0x4]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R29",Imm(64)),Int(18446744073709551612,64)),Int(0,32),LittleEndian(),32)), -Def(Tid(939, "%000003ab"), Attrs([Attr("address","0x82C"), -Attr("insn","mov x0, #0x1")]), Var("R0",Imm(64)), Int(1,64)), -Def(Tid(944, "%000003b0"), Attrs([Attr("address","0x830"), -Attr("insn","bl #-0x1b0")]), Var("R30",Imm(64)), Int(2100,64))]), -Jmps([Call(Tid(947, "%000003b3"), Attrs([Attr("address","0x830"), -Attr("insn","bl #-0x1b0")]), Int(1,1), -(Direct(Tid(1_993, "@malloc")),Direct(Tid(949, "%000003b5"))))])), -Blk(Tid(949, "%000003b5"), Attrs([Attr("address","0x834")]), Phis([]), -Defs([Def(Tid(955, "%000003bb"), Attrs([Attr("address","0x834"), -Attr("insn","stur x0, [x29, #-0x10]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R29",Imm(64)),Int(18446744073709551600,64)),Var("R0",Imm(64)),LittleEndian(),64)), -Def(Tid(960, "%000003c0"), Attrs([Attr("address","0x838"), -Attr("insn","mov w8, #0xb")]), Var("R8",Imm(64)), Int(11,64)), -Def(Tid(968, "%000003c8"), Attrs([Attr("address","0x83C"), -Attr("insn","stur w8, [x29, #-0x14]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R29",Imm(64)),Int(18446744073709551596,64)),Extract(31,0,Var("R8",Imm(64))),LittleEndian(),32)), -Def(Tid(973, "%000003cd"), Attrs([Attr("address","0x840"), -Attr("insn","mov x0, #0x4")]), Var("R0",Imm(64)), Int(4,64)), -Def(Tid(981, "%000003d5"), Attrs([Attr("address","0x844"), -Attr("insn","str x0, [sp]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("R31",Imm(64)),Var("R0",Imm(64)),LittleEndian(),64)), -Def(Tid(986, "%000003da"), Attrs([Attr("address","0x848"), -Attr("insn","bl #-0x1c8")]), Var("R30",Imm(64)), Int(2124,64))]), -Jmps([Call(Tid(988, "%000003dc"), Attrs([Attr("address","0x848"), -Attr("insn","bl #-0x1c8")]), Int(1,1), -(Direct(Tid(1_993, "@malloc")),Direct(Tid(990, "%000003de"))))])), -Blk(Tid(990, "%000003de"), Attrs([Attr("address","0x84C")]), Phis([]), -Defs([Def(Tid(994, "%000003e2"), Attrs([Attr("address","0x84C"), -Attr("insn","mov x8, x0")]), Var("R8",Imm(64)), Var("R0",Imm(64))), -Def(Tid(1_001, "%000003e9"), Attrs([Attr("address","0x850"), -Attr("insn","ldr x0, [sp]")]), Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(1_009, "%000003f1"), Attrs([Attr("address","0x854"), -Attr("insn","str x8, [sp, #0x20]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(32,64)),Var("R8",Imm(64)),LittleEndian(),64)), -Def(Tid(1_014, "%000003f6"), Attrs([Attr("address","0x858"), -Attr("insn","mov w8, #0xa")]), Var("R8",Imm(64)), Int(10,64)), -Def(Tid(1_022, "%000003fe"), Attrs([Attr("address","0x85C"), -Attr("insn","str w8, [sp, #0x1c]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(28,64)),Extract(31,0,Var("R8",Imm(64))),LittleEndian(),32)), -Def(Tid(1_027, "%00000403"), Attrs([Attr("address","0x860"), -Attr("insn","bl #-0x1e0")]), Var("R30",Imm(64)), Int(2148,64))]), -Jmps([Call(Tid(1_029, "%00000405"), Attrs([Attr("address","0x860"), -Attr("insn","bl #-0x1e0")]), Int(1,1), -(Direct(Tid(1_993, "@malloc")),Direct(Tid(1_031, "%00000407"))))])), -Blk(Tid(1_031, "%00000407"), Attrs([Attr("address","0x864")]), Phis([]), -Defs([Def(Tid(1_037, "%0000040d"), Attrs([Attr("address","0x864"), -Attr("insn","str x0, [sp, #0x10]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(16,64)),Var("R0",Imm(64)),LittleEndian(),64)), -Def(Tid(1_042, "%00000412"), Attrs([Attr("address","0x868"), -Attr("insn","mov w8, #0x9")]), Var("R8",Imm(64)), Int(9,64)), -Def(Tid(1_050, "%0000041a"), Attrs([Attr("address","0x86C"), -Attr("insn","str w8, [sp, #0xc]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(12,64)),Extract(31,0,Var("R8",Imm(64))),LittleEndian(),32)), -Def(Tid(1_057, "%00000421"), Attrs([Attr("address","0x870"), -Attr("insn","ldur x9, [x29, #-0x10]")]), Var("R9",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R29",Imm(64)),Int(18446744073709551600,64)),LittleEndian(),64)), -Def(Tid(1_062, "%00000426"), Attrs([Attr("address","0x874"), -Attr("insn","mov w8, #0x41")]), Var("R8",Imm(64)), Int(65,64)), -Def(Tid(1_070, "%0000042e"), Attrs([Attr("address","0x878"), -Attr("insn","strb w8, [x9]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("R9",Imm(64)),Extract(7,0,Var("R8",Imm(64))),LittleEndian(),8)), -Def(Tid(1_077, "%00000435"), Attrs([Attr("address","0x87C"), -Attr("insn","ldr x9, [sp, #0x20]")]), Var("R9",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(32,64)),LittleEndian(),64)), -Def(Tid(1_082, "%0000043a"), Attrs([Attr("address","0x880"), -Attr("insn","mov w8, #0x2a")]), Var("R8",Imm(64)), Int(42,64)), -Def(Tid(1_090, "%00000442"), Attrs([Attr("address","0x884"), -Attr("insn","str w8, [x9]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("R9",Imm(64)),Extract(31,0,Var("R8",Imm(64))),LittleEndian(),32)), -Def(Tid(1_097, "%00000449"), Attrs([Attr("address","0x888"), -Attr("insn","ldur x8, [x29, #-0x10]")]), Var("R8",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R29",Imm(64)),Int(18446744073709551600,64)),LittleEndian(),64)), -Def(Tid(1_104, "%00000450"), Attrs([Attr("address","0x88C"), -Attr("insn","ldrb w1, [x8]")]), Var("R1",Imm(64)), -UNSIGNED(64,Load(Var("mem",Mem(64,8)),Var("R8",Imm(64)),LittleEndian(),8))), -Def(Tid(1_109, "%00000455"), Attrs([Attr("address","0x890"), -Attr("insn","adrp x0, #0")]), Var("R0",Imm(64)), Int(0,64)), -Def(Tid(1_115, "%0000045b"), Attrs([Attr("address","0x894"), -Attr("insn","add x0, x0, #0x8f8")]), Var("R0",Imm(64)), -PLUS(Var("R0",Imm(64)),Int(2296,64))), Def(Tid(1_120, "%00000460"), - Attrs([Attr("address","0x898"), Attr("insn","bl #-0x1d8")]), - Var("R30",Imm(64)), Int(2204,64))]), Jmps([Call(Tid(1_123, "%00000463"), - Attrs([Attr("address","0x898"), Attr("insn","bl #-0x1d8")]), Int(1,1), -(Direct(Tid(1_994, "@printf")),Direct(Tid(1_125, "%00000465"))))])), -Blk(Tid(1_125, "%00000465"), Attrs([Attr("address","0x89C")]), Phis([]), -Defs([Def(Tid(1_130, "%0000046a"), Attrs([Attr("address","0x89C"), -Attr("insn","ldr x8, [sp, #0x20]")]), Var("R8",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(32,64)),LittleEndian(),64)), -Def(Tid(1_137, "%00000471"), Attrs([Attr("address","0x8A0"), -Attr("insn","ldr w1, [x8]")]), Var("R1",Imm(64)), -UNSIGNED(64,Load(Var("mem",Mem(64,8)),Var("R8",Imm(64)),LittleEndian(),32))), -Def(Tid(1_142, "%00000476"), Attrs([Attr("address","0x8A4"), -Attr("insn","adrp x0, #0")]), Var("R0",Imm(64)), Int(0,64)), -Def(Tid(1_148, "%0000047c"), Attrs([Attr("address","0x8A8"), -Attr("insn","add x0, x0, #0x909")]), Var("R0",Imm(64)), -PLUS(Var("R0",Imm(64)),Int(2313,64))), Def(Tid(1_153, "%00000481"), - Attrs([Attr("address","0x8AC"), Attr("insn","bl #-0x1ec")]), - Var("R30",Imm(64)), Int(2224,64))]), Jmps([Call(Tid(1_155, "%00000483"), - Attrs([Attr("address","0x8AC"), Attr("insn","bl #-0x1ec")]), Int(1,1), -(Direct(Tid(1_994, "@printf")),Direct(Tid(1_157, "%00000485"))))])), -Blk(Tid(1_157, "%00000485"), Attrs([Attr("address","0x8B0")]), Phis([]), -Defs([Def(Tid(1_162, "%0000048a"), Attrs([Attr("address","0x8B0"), -Attr("insn","ldr w1, [sp, #0x1c]")]), Var("R1",Imm(64)), -UNSIGNED(64,Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(28,64)),LittleEndian(),32))), -Def(Tid(1_167, "%0000048f"), Attrs([Attr("address","0x8B4"), -Attr("insn","adrp x0, #0")]), Var("R0",Imm(64)), Int(0,64)), -Def(Tid(1_173, "%00000495"), Attrs([Attr("address","0x8B8"), -Attr("insn","add x0, x0, #0x919")]), Var("R0",Imm(64)), -PLUS(Var("R0",Imm(64)),Int(2329,64))), Def(Tid(1_178, "%0000049a"), - Attrs([Attr("address","0x8BC"), Attr("insn","bl #-0x1fc")]), - Var("R30",Imm(64)), Int(2240,64))]), Jmps([Call(Tid(1_180, "%0000049c"), - Attrs([Attr("address","0x8BC"), Attr("insn","bl #-0x1fc")]), Int(1,1), -(Direct(Tid(1_994, "@printf")),Direct(Tid(1_182, "%0000049e"))))])), -Blk(Tid(1_182, "%0000049e"), Attrs([Attr("address","0x8C0")]), Phis([]), -Defs([Def(Tid(1_187, "%000004a3"), Attrs([Attr("address","0x8C0"), -Attr("insn","ldur x0, [x29, #-0x10]")]), Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R29",Imm(64)),Int(18446744073709551600,64)),LittleEndian(),64)), -Def(Tid(1_192, "%000004a8"), Attrs([Attr("address","0x8C4"), -Attr("insn","bl #-0x214")]), Var("R30",Imm(64)), Int(2248,64))]), -Jmps([Call(Tid(1_195, "%000004ab"), Attrs([Attr("address","0x8C4"), -Attr("insn","bl #-0x214")]), Int(1,1), -(Direct(Tid(1_991, "@free")),Direct(Tid(1_197, "%000004ad"))))])), -Blk(Tid(1_197, "%000004ad"), Attrs([Attr("address","0x8C8")]), Phis([]), -Defs([Def(Tid(1_202, "%000004b2"), Attrs([Attr("address","0x8C8"), -Attr("insn","ldr x0, [sp, #0x20]")]), Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(32,64)),LittleEndian(),64)), -Def(Tid(1_207, "%000004b7"), Attrs([Attr("address","0x8CC"), -Attr("insn","bl #-0x21c")]), Var("R30",Imm(64)), Int(2256,64))]), -Jmps([Call(Tid(1_209, "%000004b9"), Attrs([Attr("address","0x8CC"), -Attr("insn","bl #-0x21c")]), Int(1,1), -(Direct(Tid(1_991, "@free")),Direct(Tid(1_211, "%000004bb"))))])), -Blk(Tid(1_211, "%000004bb"), Attrs([Attr("address","0x8D0")]), Phis([]), -Defs([Def(Tid(1_216, "%000004c0"), Attrs([Attr("address","0x8D0"), -Attr("insn","ldr w0, [sp, #0x8]")]), Var("R0",Imm(64)), -UNSIGNED(64,Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),LittleEndian(),32))), -Def(Tid(1_222, "%000004c6"), Attrs([Attr("address","0x8D4"), -Attr("insn","ldp x29, x30, [sp, #0x40]")]), Var("#5",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(64,64))), Def(Tid(1_227, "%000004cb"), - Attrs([Attr("address","0x8D4"), Attr("insn","ldp x29, x30, [sp, #0x40]")]), - Var("R29",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("#5",Imm(64)),LittleEndian(),64)), -Def(Tid(1_232, "%000004d0"), Attrs([Attr("address","0x8D4"), -Attr("insn","ldp x29, x30, [sp, #0x40]")]), Var("R30",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("#5",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(1_238, "%000004d6"), Attrs([Attr("address","0x8D8"), -Attr("insn","add sp, sp, #0x50")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(80,64)))]), Jmps([Call(Tid(1_243, "%000004db"), - Attrs([Attr("address","0x8DC"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), Sub(Tid(1_993, "@malloc"), - Attrs([Attr("c.proto","void* (*)(unsigned long size)"), -Attr("address","0x680"), Attr("malloc","()"), Attr("stub","()")]), "malloc", - Args([Arg(Tid(2_016, "%000007e0"), Attrs([Attr("alloc-size","()"), -Attr("c.layout","[unsigned long : 64]"), Attr("c.data","Top:u64"), -Attr("c.type","unsigned long")]), Var("malloc_size",Imm(64)), -Var("R0",Imm(64)), In()), Arg(Tid(2_017, "%000007e1"), - Attrs([Attr("warn-unused","()"), Attr("c.layout","*[ : 8]"), -Attr("c.data","{} ptr"), Attr("c.type","void*")]), - Var("malloc_result",Imm(64)), Var("R0",Imm(64)), Out())]), -Blks([Blk(Tid(945, "@malloc"), Attrs([Attr("address","0x680")]), Phis([]), -Defs([Def(Tid(1_618, "%00000652"), Attrs([Attr("address","0x680"), -Attr("insn","adrp x16, #69632")]), Var("R16",Imm(64)), Int(69632,64)), -Def(Tid(1_625, "%00000659"), Attrs([Attr("address","0x684"), -Attr("insn","ldr x17, [x16, #0x10]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(16,64)),LittleEndian(),64)), -Def(Tid(1_631, "%0000065f"), Attrs([Attr("address","0x688"), -Attr("insn","add x16, x16, #0x10")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(16,64)))]), Jmps([Call(Tid(1_636, "%00000664"), - Attrs([Attr("address","0x68C"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), Sub(Tid(1_994, "@printf"), - Attrs([Attr("c.proto","signed (*)( const char restrict * format, ...)"), -Attr("address","0x6C0"), Attr("stub","()")]), "printf", - Args([Arg(Tid(2_018, "%000007e2"), Attrs([Attr("format","\"printf\""), -Attr("c.layout","*[char : 8]"), Attr("c.data","Top:u8 ptr"), -Attr("c.type"," const char restrict *")]), Var("printf_format",Imm(64)), -Var("R0",Imm(64)), In()), Arg(Tid(2_019, "%000007e3"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("printf_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(1_121, "@printf"), - Attrs([Attr("address","0x6C0")]), Phis([]), -Defs([Def(Tid(1_706, "%000006aa"), Attrs([Attr("address","0x6C0"), -Attr("insn","adrp x16, #69632")]), Var("R16",Imm(64)), Int(69632,64)), -Def(Tid(1_713, "%000006b1"), Attrs([Attr("address","0x6C4"), -Attr("insn","ldr x17, [x16, #0x30]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(48,64)),LittleEndian(),64)), -Def(Tid(1_719, "%000006b7"), Attrs([Attr("address","0x6C8"), -Attr("insn","add x16, x16, #0x30")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(48,64)))]), Jmps([Call(Tid(1_724, "%000006bc"), - Attrs([Attr("address","0x6CC"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), -Sub(Tid(1_995, "@register_tm_clones"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x780")]), - "register_tm_clones", Args([Arg(Tid(2_020, "%000007e4"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("register_tm_clones_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(732, "@register_tm_clones"), Attrs([Attr("address","0x780")]), - Phis([]), Defs([Def(Tid(735, "%000002df"), Attrs([Attr("address","0x780"), -Attr("insn","adrp x0, #69632")]), Var("R0",Imm(64)), Int(69632,64)), -Def(Tid(741, "%000002e5"), Attrs([Attr("address","0x784"), -Attr("insn","add x0, x0, #0x48")]), Var("R0",Imm(64)), -PLUS(Var("R0",Imm(64)),Int(72,64))), Def(Tid(746, "%000002ea"), - Attrs([Attr("address","0x788"), Attr("insn","adrp x1, #69632")]), - Var("R1",Imm(64)), Int(69632,64)), Def(Tid(752, "%000002f0"), - Attrs([Attr("address","0x78C"), Attr("insn","add x1, x1, #0x48")]), - Var("R1",Imm(64)), PLUS(Var("R1",Imm(64)),Int(72,64))), -Def(Tid(759, "%000002f7"), Attrs([Attr("address","0x790"), -Attr("insn","sub x1, x1, x0")]), Var("R1",Imm(64)), -PLUS(PLUS(Var("R1",Imm(64)),NOT(Var("R0",Imm(64)))),Int(1,64))), -Def(Tid(765, "%000002fd"), Attrs([Attr("address","0x794"), -Attr("insn","lsr x2, x1, #63")]), Var("R2",Imm(64)), -Concat(Int(0,63),Extract(63,63,Var("R1",Imm(64))))), -Def(Tid(772, "%00000304"), Attrs([Attr("address","0x798"), -Attr("insn","add x1, x2, x1, asr #3")]), Var("R1",Imm(64)), -PLUS(Var("R2",Imm(64)),ARSHIFT(Var("R1",Imm(64)),Int(3,3)))), -Def(Tid(778, "%0000030a"), Attrs([Attr("address","0x79C"), -Attr("insn","asr x1, x1, #1")]), Var("R1",Imm(64)), -SIGNED(64,Extract(63,1,Var("R1",Imm(64)))))]), -Jmps([Goto(Tid(784, "%00000310"), Attrs([Attr("address","0x7A0"), -Attr("insn","cbz x1, #0x18")]), EQ(Var("R1",Imm(64)),Int(0,64)), -Direct(Tid(782, "%0000030e"))), Goto(Tid(1_996, "%000007cc"), Attrs([]), - Int(1,1), Direct(Tid(1_304, "%00000518")))])), Blk(Tid(1_304, "%00000518"), - Attrs([Attr("address","0x7A4")]), Phis([]), -Defs([Def(Tid(1_307, "%0000051b"), Attrs([Attr("address","0x7A4"), -Attr("insn","adrp x2, #65536")]), Var("R2",Imm(64)), Int(65536,64)), -Def(Tid(1_314, "%00000522"), Attrs([Attr("address","0x7A8"), -Attr("insn","ldr x2, [x2, #0xfe0]")]), Var("R2",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R2",Imm(64)),Int(4064,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(1_319, "%00000527"), Attrs([Attr("address","0x7AC"), -Attr("insn","cbz x2, #0xc")]), EQ(Var("R2",Imm(64)),Int(0,64)), -Direct(Tid(782, "%0000030e"))), Goto(Tid(1_997, "%000007cd"), Attrs([]), - Int(1,1), Direct(Tid(1_323, "%0000052b")))])), Blk(Tid(782, "%0000030e"), - Attrs([Attr("address","0x7B8")]), Phis([]), Defs([]), -Jmps([Call(Tid(790, "%00000316"), Attrs([Attr("address","0x7B8"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))])), -Blk(Tid(1_323, "%0000052b"), Attrs([Attr("address","0x7B0")]), Phis([]), -Defs([Def(Tid(1_327, "%0000052f"), Attrs([Attr("address","0x7B0"), -Attr("insn","mov x16, x2")]), Var("R16",Imm(64)), Var("R2",Imm(64)))]), -Jmps([Call(Tid(1_332, "%00000534"), Attrs([Attr("address","0x7B4"), -Attr("insn","br x16")]), Int(1,1), -(Indirect(Var("R16",Imm(64))),))]))]))]))) \ No newline at end of file diff --git a/src/test/correct/malloc_with_local2/clang/malloc_with_local2.bir b/src/test/correct/malloc_with_local2/clang/malloc_with_local2.bir deleted file mode 100644 index e97c2c087..000000000 --- a/src/test/correct/malloc_with_local2/clang/malloc_with_local2.bir +++ /dev/null @@ -1,330 +0,0 @@ -000007ce: program -000007b5: sub __cxa_finalize(__cxa_finalize_result) -000007cf: __cxa_finalize_result :: out u32 = low:32[R0] - -00000514: -0000063c: R16 := 0x11000 -00000643: R17 := mem[R16 + 8, el]:u64 -00000649: R16 := R16 + 8 -0000064e: call R17 with noreturn - -000007b6: sub __do_global_dtors_aux(__do_global_dtors_aux_result) -000007d0: __do_global_dtors_aux_result :: out u32 = low:32[R0] - -0000031a: -0000031e: #3 := R31 - 0x20 -00000324: mem := mem with [#3, el]:u64 <- R29 -0000032a: mem := mem with [#3 + 8, el]:u64 <- R30 -0000032e: R31 := #3 -00000334: R29 := R31 -0000033c: mem := mem with [R31 + 0x10, el]:u64 <- R19 -00000341: R19 := 0x11000 -00000348: R0 := pad:64[mem[R19 + 0x48]] -0000034f: when 31:0[R0] <> 0 goto %0000034d -000007b7: goto %000004dd - -000004dd: -000004e0: R0 := 0x10000 -000004e7: R0 := mem[R0 + 0xFC8, el]:u64 -000004ed: when R0 = 0 goto %000004eb -000007b8: goto %00000504 - -00000504: -00000507: R0 := 0x11000 -0000050e: R0 := mem[R0 + 0x40, el]:u64 -00000513: R30 := 0x7F0 -00000516: call @__cxa_finalize with return %000004eb - -000004eb: -000004f3: R30 := 0x7F4 -000004f5: call @deregister_tm_clones with return %000004f7 - -000004f7: -000004fa: R0 := 1 -00000502: mem := mem with [R19 + 0x48] <- 7:0[R0] -000007b9: goto %0000034d - -0000034d: -00000357: R19 := mem[R31 + 0x10, el]:u64 -0000035e: R29 := mem[R31, el]:u64 -00000363: R30 := mem[R31 + 8, el]:u64 -00000367: R31 := R31 + 0x20 -0000036c: call R30 with noreturn - -000007ba: sub __libc_start_main(__libc_start_main_main, __libc_start_main_arg2, __libc_start_main_arg3, __libc_start_main_auxv, __libc_start_main_result) -000007d1: __libc_start_main_main :: in u64 = R0 -000007d2: __libc_start_main_arg2 :: in u32 = low:32[R1] -000007d3: __libc_start_main_arg3 :: in out u64 = R2 -000007d4: __libc_start_main_auxv :: in out u64 = R3 -000007d5: __libc_start_main_result :: out u32 = low:32[R0] - -00000273: -00000626: R16 := 0x11000 -0000062d: R17 := mem[R16, el]:u64 -00000633: R16 := R16 -00000638: call R17 with noreturn - -000007bb: sub _fini(_fini_result) -000007d6: _fini_result :: out u32 = low:32[R0] - -0000001f: -00000025: #0 := R31 - 0x10 -0000002b: mem := mem with [#0, el]:u64 <- R29 -00000031: mem := mem with [#0 + 8, el]:u64 <- R30 -00000035: R31 := #0 -0000003b: R29 := R31 -00000042: R29 := mem[R31, el]:u64 -00000047: R30 := mem[R31 + 8, el]:u64 -0000004b: R31 := R31 + 0x10 -00000050: call R30 with noreturn - -000007bc: sub _init(_init_result) -000007d7: _init_result :: out u32 = low:32[R0] - -000006d8: -000006de: #7 := R31 - 0x10 -000006e4: mem := mem with [#7, el]:u64 <- R29 -000006ea: mem := mem with [#7 + 8, el]:u64 <- R30 -000006ee: R31 := #7 -000006f4: R29 := R31 -000006f9: R30 := 0x638 -000006fb: call @call_weak_fn with return %000006fd - -000006fd: -00000702: R29 := mem[R31, el]:u64 -00000707: R30 := mem[R31 + 8, el]:u64 -0000070b: R31 := R31 + 0x10 -00000710: call R30 with noreturn - -000007bd: sub _start(_start_result) -000007d8: _start_result :: out u32 = low:32[R0] - -00000234: -00000239: R29 := 0 -0000023e: R30 := 0 -00000244: R5 := R0 -0000024b: R1 := mem[R31, el]:u64 -00000251: R2 := R31 + 8 -00000257: R6 := R31 -0000025c: R0 := 0x10000 -00000263: R0 := mem[R0 + 0xFD8, el]:u64 -00000268: R3 := 0 -0000026d: R4 := 0 -00000272: R30 := 0x730 -00000275: call @__libc_start_main with return %00000277 - -00000277: -0000027a: R30 := 0x734 -0000027d: call @abort with return %000007be - -000007be: -000007bf: call @call_weak_fn with noreturn - -000007c0: sub abort() - - -0000027b: -0000067e: R16 := 0x11000 -00000685: R17 := mem[R16 + 0x20, el]:u64 -0000068b: R16 := R16 + 0x20 -00000690: call R17 with noreturn - -000007c1: sub call_weak_fn(call_weak_fn_result) -000007d9: call_weak_fn_result :: out u32 = low:32[R0] - -0000027f: -00000282: R0 := 0x10000 -00000289: R0 := mem[R0 + 0xFD0, el]:u64 -0000028f: when R0 = 0 goto %0000028d -000007c2: goto %00000554 - -0000028d: -00000295: call R30 with noreturn - -00000554: -00000557: goto @__gmon_start__ - -00000555: -00000668: R16 := 0x11000 -0000066f: R17 := mem[R16 + 0x18, el]:u64 -00000675: R16 := R16 + 0x18 -0000067a: call R17 with noreturn - -000007c3: sub deregister_tm_clones(deregister_tm_clones_result) -000007da: deregister_tm_clones_result :: out u32 = low:32[R0] - -0000029b: -0000029e: R0 := 0x11000 -000002a4: R0 := R0 + 0x48 -000002a9: R1 := 0x11000 -000002af: R1 := R1 + 0x48 -000002b5: #1 := ~R0 -000002ba: #2 := R1 + ~R0 -000002c0: VF := extend:65[#2 + 1] <> extend:65[R1] + extend:65[#1] + 1 -000002c6: CF := pad:65[#2 + 1] <> pad:65[R1] + pad:65[#1] + 1 -000002ca: ZF := #2 + 1 = 0 -000002ce: NF := 63:63[#2 + 1] -000002d4: when ZF goto %000002d2 -000007c4: goto %00000536 - -00000536: -00000539: R1 := 0x10000 -00000540: R1 := mem[R1 + 0xFC0, el]:u64 -00000545: when R1 = 0 goto %000002d2 -000007c5: goto %00000549 - -000002d2: -000002da: call R30 with noreturn - -00000549: -0000054d: R16 := R1 -00000552: call R16 with noreturn - -000007c6: sub frame_dummy(frame_dummy_result) -000007db: frame_dummy_result :: out u32 = low:32[R0] - -00000372: -00000374: call @register_tm_clones with noreturn - -000007c7: sub free(free_ptr) -000007dc: free_ptr :: in out u64 = R0 - -000004a9: -00000694: R16 := 0x11000 -0000069b: R17 := mem[R16 + 0x28, el]:u64 -000006a1: R16 := R16 + 0x28 -000006a6: call R17 with noreturn - -000007c8: sub main(main_argc, main_argv, main_result) -000007dd: main_argc :: in u32 = low:32[R0] -000007de: main_argv :: in out u64 = R1 -000007df: main_result :: out u32 = low:32[R0] - -00000376: -0000037a: R31 := R31 - 0x50 -00000380: #4 := R31 + 0x40 -00000386: mem := mem with [#4, el]:u64 <- R29 -0000038c: mem := mem with [#4 + 8, el]:u64 <- R30 -00000392: R29 := R31 + 0x40 -00000397: R8 := 0 -0000039f: mem := mem with [R31 + 8, el]:u32 <- 31:0[R8] -000003a6: mem := mem with [R29 - 4, el]:u32 <- 0 -000003ab: R0 := 1 -000003b0: R30 := 0x834 -000003b3: call @malloc with return %000003b5 - -000003b5: -000003bb: mem := mem with [R29 - 0x10, el]:u64 <- R0 -000003c0: R8 := 0xB -000003c8: mem := mem with [R29 - 0x14, el]:u32 <- 31:0[R8] -000003cd: R0 := 4 -000003d5: mem := mem with [R31, el]:u64 <- R0 -000003da: R30 := 0x84C -000003dc: call @malloc with return %000003de - -000003de: -000003e2: R8 := R0 -000003e9: R0 := mem[R31, el]:u64 -000003f1: mem := mem with [R31 + 0x20, el]:u64 <- R8 -000003f6: R8 := 0xA -000003fe: mem := mem with [R31 + 0x1C, el]:u32 <- 31:0[R8] -00000403: R30 := 0x864 -00000405: call @malloc with return %00000407 - -00000407: -0000040d: mem := mem with [R31 + 0x10, el]:u64 <- R0 -00000412: R8 := 9 -0000041a: mem := mem with [R31 + 0xC, el]:u32 <- 31:0[R8] -00000421: R9 := mem[R29 - 0x10, el]:u64 -00000426: R8 := 0x41 -0000042e: mem := mem with [R9] <- 7:0[R8] -00000435: R9 := mem[R31 + 0x20, el]:u64 -0000043a: R8 := 0x2A -00000442: mem := mem with [R9, el]:u32 <- 31:0[R8] -00000449: R8 := mem[R29 - 0x10, el]:u64 -00000450: R1 := pad:64[mem[R8]] -00000455: R0 := 0 -0000045b: R0 := R0 + 0x8F8 -00000460: R30 := 0x89C -00000463: call @printf with return %00000465 - -00000465: -0000046a: R8 := mem[R31 + 0x20, el]:u64 -00000471: R1 := pad:64[mem[R8, el]:u32] -00000476: R0 := 0 -0000047c: R0 := R0 + 0x909 -00000481: R30 := 0x8B0 -00000483: call @printf with return %00000485 - -00000485: -0000048a: R1 := pad:64[mem[R31 + 0x1C, el]:u32] -0000048f: R0 := 0 -00000495: R0 := R0 + 0x919 -0000049a: R30 := 0x8C0 -0000049c: call @printf with return %0000049e - -0000049e: -000004a3: R0 := mem[R29 - 0x10, el]:u64 -000004a8: R30 := 0x8C8 -000004ab: call @free with return %000004ad - -000004ad: -000004b2: R0 := mem[R31 + 0x20, el]:u64 -000004b7: R30 := 0x8D0 -000004b9: call @free with return %000004bb - -000004bb: -000004c0: R0 := pad:64[mem[R31 + 8, el]:u32] -000004c6: #5 := R31 + 0x40 -000004cb: R29 := mem[#5, el]:u64 -000004d0: R30 := mem[#5 + 8, el]:u64 -000004d6: R31 := R31 + 0x50 -000004db: call R30 with noreturn - -000007c9: sub malloc(malloc_size, malloc_result) -000007e0: malloc_size :: in u64 = R0 -000007e1: malloc_result :: out u64 = R0 - -000003b1: -00000652: R16 := 0x11000 -00000659: R17 := mem[R16 + 0x10, el]:u64 -0000065f: R16 := R16 + 0x10 -00000664: call R17 with noreturn - -000007ca: sub printf(printf_format, printf_result) -000007e2: printf_format :: in u64 = R0 -000007e3: printf_result :: out u32 = low:32[R0] - -00000461: -000006aa: R16 := 0x11000 -000006b1: R17 := mem[R16 + 0x30, el]:u64 -000006b7: R16 := R16 + 0x30 -000006bc: call R17 with noreturn - -000007cb: sub register_tm_clones(register_tm_clones_result) -000007e4: register_tm_clones_result :: out u32 = low:32[R0] - -000002dc: -000002df: R0 := 0x11000 -000002e5: R0 := R0 + 0x48 -000002ea: R1 := 0x11000 -000002f0: R1 := R1 + 0x48 -000002f7: R1 := R1 + ~R0 + 1 -000002fd: R2 := 0.63:63[R1] -00000304: R1 := R2 + (R1 ~>> 3) -0000030a: R1 := extend:64[63:1[R1]] -00000310: when R1 = 0 goto %0000030e -000007cc: goto %00000518 - -00000518: -0000051b: R2 := 0x10000 -00000522: R2 := mem[R2 + 0xFE0, el]:u64 -00000527: when R2 = 0 goto %0000030e -000007cd: goto %0000052b - -0000030e: -00000316: call R30 with noreturn - -0000052b: -0000052f: R16 := R2 -00000534: call R16 with noreturn diff --git a/src/test/correct/malloc_with_local2/clang/malloc_with_local2.expected b/src/test/correct/malloc_with_local2/clang/malloc_with_local2.expected index 7854ad783..014b686d8 100644 --- a/src/test/correct/malloc_with_local2/clang/malloc_with_local2.expected +++ b/src/test/correct/malloc_with_local2/clang/malloc_with_local2.expected @@ -117,7 +117,7 @@ procedure {:extern} rely_reflexive(); procedure {:extern} guarantee_reflexive(); modifies Gamma_mem, mem; -procedure #free_1712(); +procedure #free(); modifies Gamma_R16, Gamma_R17, R16, R17; free requires (memory_load8_le(mem, 2292bv64) == 1bv8); free requires (memory_load8_le(mem, 2293bv64) == 0bv8); @@ -158,7 +158,7 @@ procedure #free_1712(); free ensures (memory_load64_le(mem, 69592bv64) == 2068bv64); free ensures (memory_load64_le(mem, 69696bv64) == 69696bv64); -procedure main_2068(); +procedure main(); modifies Gamma_R0, Gamma_R1, Gamma_R16, Gamma_R17, Gamma_R29, Gamma_R30, Gamma_R31, Gamma_R8, Gamma_R9, Gamma_mem, Gamma_stack, R0, R1, R16, R17, R29, R30, R31, R8, R9, mem, stack; free requires (memory_load64_le(mem, 69688bv64) == 0bv64); free requires (memory_load64_le(mem, 69696bv64) == 69696bv64); @@ -205,38 +205,38 @@ procedure main_2068(); free ensures (memory_load64_le(mem, 69592bv64) == 2068bv64); free ensures (memory_load64_le(mem, 69696bv64) == 69696bv64); -implementation main_2068() +implementation main() { var #4: bv64; var #5: bv64; + var $load$19: bv64; + var $load$20: bv64; + var $load$21: bv64; + var $load$22: bv64; + var $load$23: bv8; + var $load$24: bv64; + var $load$25: bv32; + var $load$26: bv32; + var $load$27: bv64; + var $load$28: bv64; + var $load$29: bv32; + var $load$30: bv64; + var $load$31: bv64; var Gamma_#4: bool; var Gamma_#5: bool; - var Gamma_load19: bool; - var Gamma_load20: bool; - var Gamma_load21: bool; - var Gamma_load22: bool; - var Gamma_load23: bool; - var Gamma_load24: bool; - var Gamma_load25: bool; - var Gamma_load26: bool; - var Gamma_load27: bool; - var Gamma_load28: bool; - var Gamma_load29: bool; - var Gamma_load30: bool; - var Gamma_load31: bool; - var load19: bv64; - var load20: bv64; - var load21: bv64; - var load22: bv64; - var load23: bv8; - var load24: bv64; - var load25: bv32; - var load26: bv32; - var load27: bv64; - var load28: bv64; - var load29: bv32; - var load30: bv64; - var load31: bv64; + var Gamma_$load$19: bool; + var Gamma_$load$20: bool; + var Gamma_$load$21: bool; + var Gamma_$load$22: bool; + var Gamma_$load$23: bool; + var Gamma_$load$24: bool; + var Gamma_$load$25: bool; + var Gamma_$load$26: bool; + var Gamma_$load$27: bool; + var Gamma_$load$28: bool; + var Gamma_$load$29: bool; + var Gamma_$load$30: bool; + var Gamma_$load$31: bool; lmain: assume {:captureState "lmain"} true; R31, Gamma_R31 := bvadd64(R31, 18446744073709551536bv64), Gamma_R31; @@ -253,7 +253,7 @@ implementation main_2068() assume {:captureState "%000003a6"} true; R0, Gamma_R0 := 1bv64, true; R30, Gamma_R30 := 2100bv64, true; - call malloc_1664(); + call malloc(); goto l000003b5; l000003b5: assume {:captureState "l000003b5"} true; @@ -266,20 +266,20 @@ implementation main_2068() stack, Gamma_stack := memory_store64_le(stack, R31, R0), gamma_store64(Gamma_stack, R31, Gamma_R0); assume {:captureState "%000003d5"} true; R30, Gamma_R30 := 2124bv64, true; - call malloc_1664(); + call malloc(); goto l000003de; l000003de: assume {:captureState "l000003de"} true; R8, Gamma_R8 := R0, Gamma_R0; - load19, Gamma_load19 := memory_load64_le(stack, R31), gamma_load64(Gamma_stack, R31); - R0, Gamma_R0 := load19, Gamma_load19; + $load$19, Gamma_$load$19 := memory_load64_le(stack, R31), gamma_load64(Gamma_stack, R31); + R0, Gamma_R0 := $load$19, Gamma_$load$19; stack, Gamma_stack := memory_store64_le(stack, bvadd64(R31, 32bv64), R8), gamma_store64(Gamma_stack, bvadd64(R31, 32bv64), Gamma_R8); assume {:captureState "%000003f1"} true; R8, Gamma_R8 := 10bv64, true; stack, Gamma_stack := memory_store32_le(stack, bvadd64(R31, 28bv64), R8[32:0]), gamma_store32(Gamma_stack, bvadd64(R31, 28bv64), Gamma_R8); assume {:captureState "%000003fe"} true; R30, Gamma_R30 := 2148bv64, true; - call malloc_1664(); + call malloc(); goto l00000407; l00000407: assume {:captureState "l00000407"} true; @@ -288,82 +288,82 @@ implementation main_2068() R8, Gamma_R8 := 9bv64, true; stack, Gamma_stack := memory_store32_le(stack, bvadd64(R31, 12bv64), R8[32:0]), gamma_store32(Gamma_stack, bvadd64(R31, 12bv64), Gamma_R8); assume {:captureState "%0000041a"} true; - load20, Gamma_load20 := memory_load64_le(stack, bvadd64(R29, 18446744073709551600bv64)), gamma_load64(Gamma_stack, bvadd64(R29, 18446744073709551600bv64)); - R9, Gamma_R9 := load20, Gamma_load20; + $load$20, Gamma_$load$20 := memory_load64_le(stack, bvadd64(R29, 18446744073709551600bv64)), gamma_load64(Gamma_stack, bvadd64(R29, 18446744073709551600bv64)); + R9, Gamma_R9 := $load$20, Gamma_$load$20; R8, Gamma_R8 := 65bv64, true; call rely(); assert (L(mem, R9) ==> Gamma_R8); mem, Gamma_mem := memory_store8_le(mem, R9, R8[8:0]), gamma_store8(Gamma_mem, R9, Gamma_R8); assume {:captureState "%0000042e"} true; - load21, Gamma_load21 := memory_load64_le(stack, bvadd64(R31, 32bv64)), gamma_load64(Gamma_stack, bvadd64(R31, 32bv64)); - R9, Gamma_R9 := load21, Gamma_load21; + $load$21, Gamma_$load$21 := memory_load64_le(stack, bvadd64(R31, 32bv64)), gamma_load64(Gamma_stack, bvadd64(R31, 32bv64)); + R9, Gamma_R9 := $load$21, Gamma_$load$21; R8, Gamma_R8 := 42bv64, true; call rely(); assert (L(mem, R9) ==> Gamma_R8); mem, Gamma_mem := memory_store32_le(mem, R9, R8[32:0]), gamma_store32(Gamma_mem, R9, Gamma_R8); assume {:captureState "%00000442"} true; - load22, Gamma_load22 := memory_load64_le(stack, bvadd64(R29, 18446744073709551600bv64)), gamma_load64(Gamma_stack, bvadd64(R29, 18446744073709551600bv64)); - R8, Gamma_R8 := load22, Gamma_load22; + $load$22, Gamma_$load$22 := memory_load64_le(stack, bvadd64(R29, 18446744073709551600bv64)), gamma_load64(Gamma_stack, bvadd64(R29, 18446744073709551600bv64)); + R8, Gamma_R8 := $load$22, Gamma_$load$22; call rely(); - load23, Gamma_load23 := memory_load8_le(mem, R8), (gamma_load8(Gamma_mem, R8) || L(mem, R8)); - R1, Gamma_R1 := zero_extend56_8(load23), Gamma_load23; + $load$23, Gamma_$load$23 := memory_load8_le(mem, R8), (gamma_load8(Gamma_mem, R8) || L(mem, R8)); + R1, Gamma_R1 := zero_extend56_8($load$23), Gamma_$load$23; R0, Gamma_R0 := 0bv64, true; R0, Gamma_R0 := bvadd64(R0, 2296bv64), Gamma_R0; R30, Gamma_R30 := 2204bv64, true; - call printf_1728(); + call printf(); goto l00000465; l00000465: assume {:captureState "l00000465"} true; - load24, Gamma_load24 := memory_load64_le(stack, bvadd64(R31, 32bv64)), gamma_load64(Gamma_stack, bvadd64(R31, 32bv64)); - R8, Gamma_R8 := load24, Gamma_load24; + $load$24, Gamma_$load$24 := memory_load64_le(stack, bvadd64(R31, 32bv64)), gamma_load64(Gamma_stack, bvadd64(R31, 32bv64)); + R8, Gamma_R8 := $load$24, Gamma_$load$24; call rely(); - load25, Gamma_load25 := memory_load32_le(mem, R8), (gamma_load32(Gamma_mem, R8) || L(mem, R8)); - R1, Gamma_R1 := zero_extend32_32(load25), Gamma_load25; + $load$25, Gamma_$load$25 := memory_load32_le(mem, R8), (gamma_load32(Gamma_mem, R8) || L(mem, R8)); + R1, Gamma_R1 := zero_extend32_32($load$25), Gamma_$load$25; R0, Gamma_R0 := 0bv64, true; R0, Gamma_R0 := bvadd64(R0, 2313bv64), Gamma_R0; R30, Gamma_R30 := 2224bv64, true; - call printf_1728(); + call printf(); goto l00000485; l00000485: assume {:captureState "l00000485"} true; - load26, Gamma_load26 := memory_load32_le(stack, bvadd64(R31, 28bv64)), gamma_load32(Gamma_stack, bvadd64(R31, 28bv64)); - R1, Gamma_R1 := zero_extend32_32(load26), Gamma_load26; + $load$26, Gamma_$load$26 := memory_load32_le(stack, bvadd64(R31, 28bv64)), gamma_load32(Gamma_stack, bvadd64(R31, 28bv64)); + R1, Gamma_R1 := zero_extend32_32($load$26), Gamma_$load$26; R0, Gamma_R0 := 0bv64, true; R0, Gamma_R0 := bvadd64(R0, 2329bv64), Gamma_R0; R30, Gamma_R30 := 2240bv64, true; - call printf_1728(); + call printf(); goto l0000049e; l0000049e: assume {:captureState "l0000049e"} true; - load27, Gamma_load27 := memory_load64_le(stack, bvadd64(R29, 18446744073709551600bv64)), gamma_load64(Gamma_stack, bvadd64(R29, 18446744073709551600bv64)); - R0, Gamma_R0 := load27, Gamma_load27; + $load$27, Gamma_$load$27 := memory_load64_le(stack, bvadd64(R29, 18446744073709551600bv64)), gamma_load64(Gamma_stack, bvadd64(R29, 18446744073709551600bv64)); + R0, Gamma_R0 := $load$27, Gamma_$load$27; R30, Gamma_R30 := 2248bv64, true; - call #free_1712(); + call #free(); goto l000004ad; l000004ad: assume {:captureState "l000004ad"} true; - load28, Gamma_load28 := memory_load64_le(stack, bvadd64(R31, 32bv64)), gamma_load64(Gamma_stack, bvadd64(R31, 32bv64)); - R0, Gamma_R0 := load28, Gamma_load28; + $load$28, Gamma_$load$28 := memory_load64_le(stack, bvadd64(R31, 32bv64)), gamma_load64(Gamma_stack, bvadd64(R31, 32bv64)); + R0, Gamma_R0 := $load$28, Gamma_$load$28; R30, Gamma_R30 := 2256bv64, true; - call #free_1712(); + call #free(); goto l000004bb; l000004bb: assume {:captureState "l000004bb"} true; - load29, Gamma_load29 := memory_load32_le(stack, bvadd64(R31, 8bv64)), gamma_load32(Gamma_stack, bvadd64(R31, 8bv64)); - R0, Gamma_R0 := zero_extend32_32(load29), Gamma_load29; + $load$29, Gamma_$load$29 := memory_load32_le(stack, bvadd64(R31, 8bv64)), gamma_load32(Gamma_stack, bvadd64(R31, 8bv64)); + R0, Gamma_R0 := zero_extend32_32($load$29), Gamma_$load$29; #5, Gamma_#5 := bvadd64(R31, 64bv64), Gamma_R31; - load30, Gamma_load30 := memory_load64_le(stack, #5), gamma_load64(Gamma_stack, #5); - R29, Gamma_R29 := load30, Gamma_load30; - load31, Gamma_load31 := memory_load64_le(stack, bvadd64(#5, 8bv64)), gamma_load64(Gamma_stack, bvadd64(#5, 8bv64)); - R30, Gamma_R30 := load31, Gamma_load31; + $load$30, Gamma_$load$30 := memory_load64_le(stack, #5), gamma_load64(Gamma_stack, #5); + R29, Gamma_R29 := $load$30, Gamma_$load$30; + $load$31, Gamma_$load$31 := memory_load64_le(stack, bvadd64(#5, 8bv64)), gamma_load64(Gamma_stack, bvadd64(#5, 8bv64)); + R30, Gamma_R30 := $load$31, Gamma_$load$31; R31, Gamma_R31 := bvadd64(R31, 80bv64), Gamma_R31; - goto main_2068_basil_return; - main_2068_basil_return: - assume {:captureState "main_2068_basil_return"} true; + goto main_basil_return; + main_basil_return: + assume {:captureState "main_basil_return"} true; return; } -procedure malloc_1664(); +procedure malloc(); modifies Gamma_R16, Gamma_R17, R16, R17; free requires (memory_load8_le(mem, 2292bv64) == 1bv8); free requires (memory_load8_le(mem, 2293bv64) == 0bv8); @@ -404,7 +404,7 @@ procedure malloc_1664(); free ensures (memory_load64_le(mem, 69592bv64) == 2068bv64); free ensures (memory_load64_le(mem, 69696bv64) == 69696bv64); -procedure printf_1728(); +procedure printf(); modifies Gamma_R16, Gamma_R17, R16, R17; free requires (memory_load8_le(mem, 2292bv64) == 1bv8); free requires (memory_load8_le(mem, 2293bv64) == 0bv8); diff --git a/src/test/correct/malloc_with_local2/clang/malloc_with_local2.gts b/src/test/correct/malloc_with_local2/clang/malloc_with_local2.gts deleted file mode 100644 index cfbd154d6..000000000 Binary files a/src/test/correct/malloc_with_local2/clang/malloc_with_local2.gts and /dev/null differ diff --git a/src/test/correct/malloc_with_local2/clang/malloc_with_local2.md5sum b/src/test/correct/malloc_with_local2/clang/malloc_with_local2.md5sum new file mode 100644 index 000000000..a1ed4b320 --- /dev/null +++ b/src/test/correct/malloc_with_local2/clang/malloc_with_local2.md5sum @@ -0,0 +1,5 @@ +1b6db865b6e78993b61d04443865347f correct/malloc_with_local2/clang/a.out +544bfb3661c6ba26a6d592d8daded9a1 correct/malloc_with_local2/clang/malloc_with_local2.adt +a230de5dbcdf70bcd1b1f1b49ab315b2 correct/malloc_with_local2/clang/malloc_with_local2.bir +d8fbed57fb1c2be31f396bb41120adbf correct/malloc_with_local2/clang/malloc_with_local2.relf +b1cabe8ef757fe675ea28771e2c78018 correct/malloc_with_local2/clang/malloc_with_local2.gts diff --git a/src/test/correct/malloc_with_local2/clang/malloc_with_local2.relf b/src/test/correct/malloc_with_local2/clang/malloc_with_local2.relf deleted file mode 100644 index b3898602f..000000000 --- a/src/test/correct/malloc_with_local2/clang/malloc_with_local2.relf +++ /dev/null @@ -1,131 +0,0 @@ - -Relocation section '.rela.dyn' at offset 0x4c0 contains 8 entries: - Offset Info Type Symbol's Value Symbol's Name + Addend -0000000000010dc8 0000000000000403 R_AARCH64_RELATIVE 810 -0000000000010dd0 0000000000000403 R_AARCH64_RELATIVE 7c0 -0000000000010fd8 0000000000000403 R_AARCH64_RELATIVE 814 -0000000000011040 0000000000000403 R_AARCH64_RELATIVE 11040 -0000000000010fc0 0000000400000401 R_AARCH64_GLOB_DAT 0000000000000000 _ITM_deregisterTMCloneTable + 0 -0000000000010fc8 0000000500000401 R_AARCH64_GLOB_DAT 0000000000000000 __cxa_finalize@GLIBC_2.17 + 0 -0000000000010fd0 0000000700000401 R_AARCH64_GLOB_DAT 0000000000000000 __gmon_start__ + 0 -0000000000010fe0 0000000a00000401 R_AARCH64_GLOB_DAT 0000000000000000 _ITM_registerTMCloneTable + 0 - -Relocation section '.rela.plt' at offset 0x580 contains 7 entries: - Offset Info Type Symbol's Value Symbol's Name + Addend -0000000000011000 0000000300000402 R_AARCH64_JUMP_SLOT 0000000000000000 __libc_start_main@GLIBC_2.34 + 0 -0000000000011008 0000000500000402 R_AARCH64_JUMP_SLOT 0000000000000000 __cxa_finalize@GLIBC_2.17 + 0 -0000000000011010 0000000600000402 R_AARCH64_JUMP_SLOT 0000000000000000 malloc@GLIBC_2.17 + 0 -0000000000011018 0000000700000402 R_AARCH64_JUMP_SLOT 0000000000000000 __gmon_start__ + 0 -0000000000011020 0000000800000402 R_AARCH64_JUMP_SLOT 0000000000000000 abort@GLIBC_2.17 + 0 -0000000000011028 0000000900000402 R_AARCH64_JUMP_SLOT 0000000000000000 free@GLIBC_2.17 + 0 -0000000000011030 0000000b00000402 R_AARCH64_JUMP_SLOT 0000000000000000 printf@GLIBC_2.17 + 0 - -Symbol table '.dynsym' contains 12 entries: - Num: Value Size Type Bind Vis Ndx Name - 0: 0000000000000000 0 NOTYPE LOCAL DEFAULT UND - 1: 0000000000000628 0 SECTION LOCAL DEFAULT 11 .init - 2: 0000000000011038 0 SECTION LOCAL DEFAULT 23 .data - 3: 0000000000000000 0 FUNC GLOBAL DEFAULT UND __libc_start_main@GLIBC_2.34 (2) - 4: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_deregisterTMCloneTable - 5: 0000000000000000 0 FUNC WEAK DEFAULT UND __cxa_finalize@GLIBC_2.17 (3) - 6: 0000000000000000 0 FUNC GLOBAL DEFAULT UND malloc@GLIBC_2.17 (3) - 7: 0000000000000000 0 NOTYPE WEAK DEFAULT UND __gmon_start__ - 8: 0000000000000000 0 FUNC GLOBAL DEFAULT UND abort@GLIBC_2.17 (3) - 9: 0000000000000000 0 FUNC GLOBAL DEFAULT UND free@GLIBC_2.17 (3) - 10: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_registerTMCloneTable - 11: 0000000000000000 0 FUNC GLOBAL DEFAULT UND printf@GLIBC_2.17 (3) - -Symbol table '.symtab' contains 92 entries: - Num: Value Size Type Bind Vis Ndx Name - 0: 0000000000000000 0 NOTYPE LOCAL DEFAULT UND - 1: 0000000000000238 0 SECTION LOCAL DEFAULT 1 .interp - 2: 0000000000000254 0 SECTION LOCAL DEFAULT 2 .note.gnu.build-id - 3: 0000000000000278 0 SECTION LOCAL DEFAULT 3 .note.ABI-tag - 4: 0000000000000298 0 SECTION LOCAL DEFAULT 4 .gnu.hash - 5: 00000000000002b8 0 SECTION LOCAL DEFAULT 5 .dynsym - 6: 00000000000003d8 0 SECTION LOCAL DEFAULT 6 .dynstr - 7: 0000000000000478 0 SECTION LOCAL DEFAULT 7 .gnu.version - 8: 0000000000000490 0 SECTION LOCAL DEFAULT 8 .gnu.version_r - 9: 00000000000004c0 0 SECTION LOCAL DEFAULT 9 .rela.dyn - 10: 0000000000000580 0 SECTION LOCAL DEFAULT 10 .rela.plt - 11: 0000000000000628 0 SECTION LOCAL DEFAULT 11 .init - 12: 0000000000000640 0 SECTION LOCAL DEFAULT 12 .plt - 13: 0000000000000700 0 SECTION LOCAL DEFAULT 13 .text - 14: 00000000000008e0 0 SECTION LOCAL DEFAULT 14 .fini - 15: 00000000000008f4 0 SECTION LOCAL DEFAULT 15 .rodata - 16: 0000000000000934 0 SECTION LOCAL DEFAULT 16 .eh_frame_hdr - 17: 0000000000000970 0 SECTION LOCAL DEFAULT 17 .eh_frame - 18: 0000000000010dc8 0 SECTION LOCAL DEFAULT 18 .init_array - 19: 0000000000010dd0 0 SECTION LOCAL DEFAULT 19 .fini_array - 20: 0000000000010dd8 0 SECTION LOCAL DEFAULT 20 .dynamic - 21: 0000000000010fb8 0 SECTION LOCAL DEFAULT 21 .got - 22: 0000000000010fe8 0 SECTION LOCAL DEFAULT 22 .got.plt - 23: 0000000000011038 0 SECTION LOCAL DEFAULT 23 .data - 24: 0000000000011048 0 SECTION LOCAL DEFAULT 24 .bss - 25: 0000000000000000 0 SECTION LOCAL DEFAULT 25 .comment - 26: 0000000000000000 0 FILE LOCAL DEFAULT ABS Scrt1.o - 27: 0000000000000278 0 NOTYPE LOCAL DEFAULT 3 $d - 28: 0000000000000278 32 OBJECT LOCAL DEFAULT 3 __abi_tag - 29: 0000000000000700 0 NOTYPE LOCAL DEFAULT 13 $x - 30: 0000000000000984 0 NOTYPE LOCAL DEFAULT 17 $d - 31: 00000000000008f4 0 NOTYPE LOCAL DEFAULT 15 $d - 32: 0000000000000000 0 FILE LOCAL DEFAULT ABS crti.o - 33: 0000000000000734 0 NOTYPE LOCAL DEFAULT 13 $x - 34: 0000000000000734 20 FUNC LOCAL DEFAULT 13 call_weak_fn - 35: 0000000000000628 0 NOTYPE LOCAL DEFAULT 11 $x - 36: 00000000000008e0 0 NOTYPE LOCAL DEFAULT 14 $x - 37: 0000000000000000 0 FILE LOCAL DEFAULT ABS crtn.o - 38: 0000000000000638 0 NOTYPE LOCAL DEFAULT 11 $x - 39: 00000000000008ec 0 NOTYPE LOCAL DEFAULT 14 $x - 40: 0000000000000000 0 FILE LOCAL DEFAULT ABS crtstuff.c - 41: 0000000000000750 0 NOTYPE LOCAL DEFAULT 13 $x - 42: 0000000000000750 0 FUNC LOCAL DEFAULT 13 deregister_tm_clones - 43: 0000000000000780 0 FUNC LOCAL DEFAULT 13 register_tm_clones - 44: 0000000000011040 0 NOTYPE LOCAL DEFAULT 23 $d - 45: 00000000000007c0 0 FUNC LOCAL DEFAULT 13 __do_global_dtors_aux - 46: 0000000000011048 1 OBJECT LOCAL DEFAULT 24 completed.0 - 47: 0000000000010dd0 0 NOTYPE LOCAL DEFAULT 19 $d - 48: 0000000000010dd0 0 OBJECT LOCAL DEFAULT 19 __do_global_dtors_aux_fini_array_entry - 49: 0000000000000810 0 FUNC LOCAL DEFAULT 13 frame_dummy - 50: 0000000000010dc8 0 NOTYPE LOCAL DEFAULT 18 $d - 51: 0000000000010dc8 0 OBJECT LOCAL DEFAULT 18 __frame_dummy_init_array_entry - 52: 0000000000000998 0 NOTYPE LOCAL DEFAULT 17 $d - 53: 0000000000011048 0 NOTYPE LOCAL DEFAULT 24 $d - 54: 0000000000000000 0 FILE LOCAL DEFAULT ABS malloc_with_local2.c - 55: 0000000000000814 0 NOTYPE LOCAL DEFAULT 13 $x.0 - 56: 00000000000008f8 0 NOTYPE LOCAL DEFAULT 15 $d.1 - 57: 000000000000002a 0 NOTYPE LOCAL DEFAULT 25 $d.2 - 58: 00000000000009f8 0 NOTYPE LOCAL DEFAULT 17 $d.3 - 59: 0000000000000000 0 FILE LOCAL DEFAULT ABS crtstuff.c - 60: 0000000000000a34 0 NOTYPE LOCAL DEFAULT 17 $d - 61: 0000000000000a34 0 OBJECT LOCAL DEFAULT 17 __FRAME_END__ - 62: 0000000000000000 0 FILE LOCAL DEFAULT ABS - 63: 0000000000010dd8 0 OBJECT LOCAL DEFAULT ABS _DYNAMIC - 64: 0000000000000934 0 NOTYPE LOCAL DEFAULT 16 __GNU_EH_FRAME_HDR - 65: 0000000000010fb8 0 OBJECT LOCAL DEFAULT ABS _GLOBAL_OFFSET_TABLE_ - 66: 0000000000000640 0 NOTYPE LOCAL DEFAULT 12 $x - 67: 0000000000000000 0 FUNC GLOBAL DEFAULT UND __libc_start_main@GLIBC_2.34 - 68: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_deregisterTMCloneTable - 69: 0000000000011038 0 NOTYPE WEAK DEFAULT 23 data_start - 70: 0000000000011048 0 NOTYPE GLOBAL DEFAULT 24 __bss_start__ - 71: 0000000000000000 0 FUNC WEAK DEFAULT UND __cxa_finalize@GLIBC_2.17 - 72: 0000000000011050 0 NOTYPE GLOBAL DEFAULT 24 _bss_end__ - 73: 0000000000011048 0 NOTYPE GLOBAL DEFAULT 23 _edata - 74: 00000000000008e0 0 FUNC GLOBAL HIDDEN 14 _fini - 75: 0000000000011050 0 NOTYPE GLOBAL DEFAULT 24 __bss_end__ - 76: 0000000000000000 0 FUNC GLOBAL DEFAULT UND malloc@GLIBC_2.17 - 77: 0000000000011038 0 NOTYPE GLOBAL DEFAULT 23 __data_start - 78: 0000000000000000 0 NOTYPE WEAK DEFAULT UND __gmon_start__ - 79: 0000000000011040 0 OBJECT GLOBAL HIDDEN 23 __dso_handle - 80: 0000000000000000 0 FUNC GLOBAL DEFAULT UND abort@GLIBC_2.17 - 81: 00000000000008f4 4 OBJECT GLOBAL DEFAULT 15 _IO_stdin_used - 82: 0000000000011050 0 NOTYPE GLOBAL DEFAULT 24 _end - 83: 0000000000000000 0 FUNC GLOBAL DEFAULT UND free@GLIBC_2.17 - 84: 0000000000000700 52 FUNC GLOBAL DEFAULT 13 _start - 85: 0000000000011050 0 NOTYPE GLOBAL DEFAULT 24 __end__ - 86: 0000000000011048 0 NOTYPE GLOBAL DEFAULT 24 __bss_start - 87: 0000000000000814 204 FUNC GLOBAL DEFAULT 13 main - 88: 0000000000011048 0 OBJECT GLOBAL HIDDEN 23 __TMC_END__ - 89: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_registerTMCloneTable - 90: 0000000000000000 0 FUNC GLOBAL DEFAULT UND printf@GLIBC_2.17 - 91: 0000000000000628 0 FUNC GLOBAL HIDDEN 11 _init diff --git a/src/test/correct/malloc_with_local2/clang/malloc_with_local2_gtirb.expected b/src/test/correct/malloc_with_local2/clang/malloc_with_local2_gtirb.expected index 8c2ec9eb0..135bdf797 100644 --- a/src/test/correct/malloc_with_local2/clang/malloc_with_local2_gtirb.expected +++ b/src/test/correct/malloc_with_local2/clang/malloc_with_local2_gtirb.expected @@ -117,7 +117,7 @@ procedure {:extern} rely_reflexive(); procedure {:extern} guarantee_reflexive(); modifies Gamma_mem, mem; -procedure FUN_6c0_1728(); +procedure FUN_6c0(); modifies Gamma_R16, Gamma_R17, Gamma_mem, R16, R17, mem; free requires (memory_load8_le(mem, 2292bv64) == 1bv8); free requires (memory_load8_le(mem, 2293bv64) == 0bv8); @@ -158,25 +158,22 @@ procedure FUN_6c0_1728(); free ensures (memory_load64_le(mem, 69592bv64) == 2068bv64); free ensures (memory_load64_le(mem, 69696bv64) == 69696bv64); -implementation FUN_6c0_1728() +implementation FUN_6c0() { - var Gamma_load0: bool; - var load0: bv64; - FUN_6c0_1728__0___Yurx7rnRDiQIbh1u7Z0dw: - assume {:captureState "FUN_6c0_1728__0___Yurx7rnRDiQIbh1u7Z0dw"} true; + var $load0: bv64; + var Gamma_$load0: bool; + $FUN_6c0$__0__$_Yurx7rnRDiQIbh1u7Z0dw: + assume {:captureState "$FUN_6c0$__0__$_Yurx7rnRDiQIbh1u7Z0dw"} true; R16, Gamma_R16 := 69632bv64, true; call rely(); - load0, Gamma_load0 := memory_load64_le(mem, bvadd64(R16, 48bv64)), (gamma_load64(Gamma_mem, bvadd64(R16, 48bv64)) || L(mem, bvadd64(R16, 48bv64))); - R17, Gamma_R17 := load0, Gamma_load0; + $load0, Gamma_$load0 := memory_load64_le(mem, bvadd64(R16, 48bv64)), (gamma_load64(Gamma_mem, bvadd64(R16, 48bv64)) || L(mem, bvadd64(R16, 48bv64))); + R17, Gamma_R17 := $load0, Gamma_$load0; R16, Gamma_R16 := bvadd64(R16, 48bv64), Gamma_R16; call printf(); - goto FUN_6c0_1728_basil_return; - FUN_6c0_1728_basil_return: - assume {:captureState "FUN_6c0_1728_basil_return"} true; - return; + assume false; } -procedure main_2068(); +procedure main(); modifies Gamma_R0, Gamma_R1, Gamma_R16, Gamma_R17, Gamma_R29, Gamma_R30, Gamma_R31, Gamma_R8, Gamma_R9, Gamma_mem, Gamma_stack, R0, R1, R16, R17, R29, R30, R31, R8, R9, mem, stack; free requires (memory_load64_le(mem, 69688bv64) == 0bv64); free requires (memory_load64_le(mem, 69696bv64) == 69696bv64); @@ -223,165 +220,165 @@ procedure main_2068(); free ensures (memory_load64_le(mem, 69592bv64) == 2068bv64); free ensures (memory_load64_le(mem, 69696bv64) == 69696bv64); -implementation main_2068() +implementation main() { - var Cse0__5_0_1: bv64; - var Cse0__5_1_1: bv64; - var Gamma_Cse0__5_0_1: bool; - var Gamma_Cse0__5_1_1: bool; - var Gamma_load10: bool; - var Gamma_load11: bool; - var Gamma_load12: bool; - var Gamma_load13: bool; - var Gamma_load14: bool; - var Gamma_load15: bool; - var Gamma_load16: bool; - var Gamma_load17: bool; - var Gamma_load18: bool; - var Gamma_load19: bool; - var Gamma_load7: bool; - var Gamma_load8: bool; - var Gamma_load9: bool; - var load10: bv64; - var load11: bv64; - var load12: bv64; - var load13: bv8; - var load14: bv64; - var load15: bv64; - var load16: bv64; - var load17: bv32; - var load18: bv64; - var load19: bv32; - var load7: bv32; - var load8: bv64; - var load9: bv64; - main_2068__0__yN1LokBAR9yRD4RMSXSfxQ: - assume {:captureState "main_2068__0__yN1LokBAR9yRD4RMSXSfxQ"} true; + var $load10: bv64; + var $load11: bv64; + var $load12: bv64; + var $load13: bv8; + var $load14: bv64; + var $load15: bv64; + var $load16: bv64; + var $load17: bv32; + var $load18: bv64; + var $load19: bv32; + var $load7: bv32; + var $load8: bv64; + var $load9: bv64; + var Cse0__5$0$1: bv64; + var Cse0__5$1$1: bv64; + var Gamma_$load10: bool; + var Gamma_$load11: bool; + var Gamma_$load12: bool; + var Gamma_$load13: bool; + var Gamma_$load14: bool; + var Gamma_$load15: bool; + var Gamma_$load16: bool; + var Gamma_$load17: bool; + var Gamma_$load18: bool; + var Gamma_$load19: bool; + var Gamma_$load7: bool; + var Gamma_$load8: bool; + var Gamma_$load9: bool; + var Gamma_Cse0__5$0$1: bool; + var Gamma_Cse0__5$1$1: bool; + $main$__0__$yN1LokBAR9yRD4RMSXSfxQ: + assume {:captureState "$main$__0__$yN1LokBAR9yRD4RMSXSfxQ"} true; R31, Gamma_R31 := bvadd64(R31, 18446744073709551536bv64), Gamma_R31; - Cse0__5_0_1, Gamma_Cse0__5_0_1 := bvadd64(R31, 64bv64), Gamma_R31; - stack, Gamma_stack := memory_store64_le(stack, Cse0__5_0_1, R29), gamma_store64(Gamma_stack, Cse0__5_0_1, Gamma_R29); - assume {:captureState "2072_1"} true; - stack, Gamma_stack := memory_store64_le(stack, bvadd64(Cse0__5_0_1, 8bv64), R30), gamma_store64(Gamma_stack, bvadd64(Cse0__5_0_1, 8bv64), Gamma_R30); - assume {:captureState "2072_2"} true; + Cse0__5$0$1, Gamma_Cse0__5$0$1 := bvadd64(R31, 64bv64), Gamma_R31; + stack, Gamma_stack := memory_store64_le(stack, Cse0__5$0$1, R29), gamma_store64(Gamma_stack, Cse0__5$0$1, Gamma_R29); + assume {:captureState "2072$1"} true; + stack, Gamma_stack := memory_store64_le(stack, bvadd64(Cse0__5$0$1, 8bv64), R30), gamma_store64(Gamma_stack, bvadd64(Cse0__5$0$1, 8bv64), Gamma_R30); + assume {:captureState "2072$2"} true; R29, Gamma_R29 := bvadd64(R31, 64bv64), Gamma_R31; R8, Gamma_R8 := 0bv64, true; stack, Gamma_stack := memory_store32_le(stack, bvadd64(R31, 8bv64), R8[32:0]), gamma_store32(Gamma_stack, bvadd64(R31, 8bv64), Gamma_R8); - assume {:captureState "2084_0"} true; + assume {:captureState "2084$0"} true; stack, Gamma_stack := memory_store32_le(stack, bvadd64(R29, 18446744073709551612bv64), 0bv32), gamma_store32(Gamma_stack, bvadd64(R29, 18446744073709551612bv64), true); - assume {:captureState "2088_0"} true; + assume {:captureState "2088$0"} true; R0, Gamma_R0 := 1bv64, true; R30, Gamma_R30 := 2100bv64, true; - call FUN_680_1664(); - goto main_2068__1__eCR9p3I6QnuW7E2ugOxN7g; - main_2068__1__eCR9p3I6QnuW7E2ugOxN7g: - assume {:captureState "main_2068__1__eCR9p3I6QnuW7E2ugOxN7g"} true; + call FUN_680(); + goto $main$__1__$eCR9p3I6QnuW7E2ugOxN7g; + $main$__1__$eCR9p3I6QnuW7E2ugOxN7g: + assume {:captureState "$main$__1__$eCR9p3I6QnuW7E2ugOxN7g"} true; stack, Gamma_stack := memory_store64_le(stack, bvadd64(R29, 18446744073709551600bv64), R0), gamma_store64(Gamma_stack, bvadd64(R29, 18446744073709551600bv64), Gamma_R0); - assume {:captureState "2100_0"} true; + assume {:captureState "2100$0"} true; R8, Gamma_R8 := 11bv64, true; stack, Gamma_stack := memory_store32_le(stack, bvadd64(R29, 18446744073709551596bv64), R8[32:0]), gamma_store32(Gamma_stack, bvadd64(R29, 18446744073709551596bv64), Gamma_R8); - assume {:captureState "2108_0"} true; + assume {:captureState "2108$0"} true; R0, Gamma_R0 := 4bv64, true; stack, Gamma_stack := memory_store64_le(stack, R31, R0), gamma_store64(Gamma_stack, R31, Gamma_R0); - assume {:captureState "2116_0"} true; + assume {:captureState "2116$0"} true; R30, Gamma_R30 := 2124bv64, true; - call FUN_680_1664(); - goto main_2068__2__FSETkqUYRWuqGvRhnzp0tA; - main_2068__2__FSETkqUYRWuqGvRhnzp0tA: - assume {:captureState "main_2068__2__FSETkqUYRWuqGvRhnzp0tA"} true; + call FUN_680(); + goto $main$__2__$FSETkqUYRWuqGvRhnzp0tA; + $main$__2__$FSETkqUYRWuqGvRhnzp0tA: + assume {:captureState "$main$__2__$FSETkqUYRWuqGvRhnzp0tA"} true; R8, Gamma_R8 := R0, Gamma_R0; - load18, Gamma_load18 := memory_load64_le(stack, R31), gamma_load64(Gamma_stack, R31); - R0, Gamma_R0 := load18, Gamma_load18; + $load18, Gamma_$load18 := memory_load64_le(stack, R31), gamma_load64(Gamma_stack, R31); + R0, Gamma_R0 := $load18, Gamma_$load18; stack, Gamma_stack := memory_store64_le(stack, bvadd64(R31, 32bv64), R8), gamma_store64(Gamma_stack, bvadd64(R31, 32bv64), Gamma_R8); - assume {:captureState "2132_0"} true; + assume {:captureState "2132$0"} true; R8, Gamma_R8 := 10bv64, true; stack, Gamma_stack := memory_store32_le(stack, bvadd64(R31, 28bv64), R8[32:0]), gamma_store32(Gamma_stack, bvadd64(R31, 28bv64), Gamma_R8); - assume {:captureState "2140_0"} true; + assume {:captureState "2140$0"} true; R30, Gamma_R30 := 2148bv64, true; - call FUN_680_1664(); - goto main_2068__3__trREPylQRuWIzMBYpyXfnQ; - main_2068__3__trREPylQRuWIzMBYpyXfnQ: - assume {:captureState "main_2068__3__trREPylQRuWIzMBYpyXfnQ"} true; + call FUN_680(); + goto $main$__3__$trREPylQRuWIzMBYpyXfnQ; + $main$__3__$trREPylQRuWIzMBYpyXfnQ: + assume {:captureState "$main$__3__$trREPylQRuWIzMBYpyXfnQ"} true; stack, Gamma_stack := memory_store64_le(stack, bvadd64(R31, 16bv64), R0), gamma_store64(Gamma_stack, bvadd64(R31, 16bv64), Gamma_R0); - assume {:captureState "2148_0"} true; + assume {:captureState "2148$0"} true; R8, Gamma_R8 := 9bv64, true; stack, Gamma_stack := memory_store32_le(stack, bvadd64(R31, 12bv64), R8[32:0]), gamma_store32(Gamma_stack, bvadd64(R31, 12bv64), Gamma_R8); - assume {:captureState "2156_0"} true; - load10, Gamma_load10 := memory_load64_le(stack, bvadd64(R29, 18446744073709551600bv64)), gamma_load64(Gamma_stack, bvadd64(R29, 18446744073709551600bv64)); - R9, Gamma_R9 := load10, Gamma_load10; + assume {:captureState "2156$0"} true; + $load10, Gamma_$load10 := memory_load64_le(stack, bvadd64(R29, 18446744073709551600bv64)), gamma_load64(Gamma_stack, bvadd64(R29, 18446744073709551600bv64)); + R9, Gamma_R9 := $load10, Gamma_$load10; R8, Gamma_R8 := 65bv64, true; call rely(); assert (L(mem, R9) ==> Gamma_R8); mem, Gamma_mem := memory_store8_le(mem, R9, R8[8:0]), gamma_store8(Gamma_mem, R9, Gamma_R8); - assume {:captureState "2168_0"} true; - load11, Gamma_load11 := memory_load64_le(stack, bvadd64(R31, 32bv64)), gamma_load64(Gamma_stack, bvadd64(R31, 32bv64)); - R9, Gamma_R9 := load11, Gamma_load11; + assume {:captureState "2168$0"} true; + $load11, Gamma_$load11 := memory_load64_le(stack, bvadd64(R31, 32bv64)), gamma_load64(Gamma_stack, bvadd64(R31, 32bv64)); + R9, Gamma_R9 := $load11, Gamma_$load11; R8, Gamma_R8 := 42bv64, true; call rely(); assert (L(mem, R9) ==> Gamma_R8); mem, Gamma_mem := memory_store32_le(mem, R9, R8[32:0]), gamma_store32(Gamma_mem, R9, Gamma_R8); - assume {:captureState "2180_0"} true; - load12, Gamma_load12 := memory_load64_le(stack, bvadd64(R29, 18446744073709551600bv64)), gamma_load64(Gamma_stack, bvadd64(R29, 18446744073709551600bv64)); - R8, Gamma_R8 := load12, Gamma_load12; + assume {:captureState "2180$0"} true; + $load12, Gamma_$load12 := memory_load64_le(stack, bvadd64(R29, 18446744073709551600bv64)), gamma_load64(Gamma_stack, bvadd64(R29, 18446744073709551600bv64)); + R8, Gamma_R8 := $load12, Gamma_$load12; call rely(); - load13, Gamma_load13 := memory_load8_le(mem, R8), (gamma_load8(Gamma_mem, R8) || L(mem, R8)); - R1, Gamma_R1 := zero_extend32_32(zero_extend24_8(load13)), Gamma_load13; + $load13, Gamma_$load13 := memory_load8_le(mem, R8), (gamma_load8(Gamma_mem, R8) || L(mem, R8)); + R1, Gamma_R1 := zero_extend32_32(zero_extend24_8($load13)), Gamma_$load13; R0, Gamma_R0 := 0bv64, true; R0, Gamma_R0 := bvadd64(R0, 2296bv64), Gamma_R0; R30, Gamma_R30 := 2204bv64, true; - call FUN_6c0_1728(); - goto main_2068__4__qWMJh7qWT8yorxt1BpnoAg; - main_2068__4__qWMJh7qWT8yorxt1BpnoAg: - assume {:captureState "main_2068__4__qWMJh7qWT8yorxt1BpnoAg"} true; - load16, Gamma_load16 := memory_load64_le(stack, bvadd64(R31, 32bv64)), gamma_load64(Gamma_stack, bvadd64(R31, 32bv64)); - R8, Gamma_R8 := load16, Gamma_load16; + call FUN_6c0(); + goto $main$__4__$qWMJh7qWT8yorxt1BpnoAg; + $main$__4__$qWMJh7qWT8yorxt1BpnoAg: + assume {:captureState "$main$__4__$qWMJh7qWT8yorxt1BpnoAg"} true; + $load16, Gamma_$load16 := memory_load64_le(stack, bvadd64(R31, 32bv64)), gamma_load64(Gamma_stack, bvadd64(R31, 32bv64)); + R8, Gamma_R8 := $load16, Gamma_$load16; call rely(); - load17, Gamma_load17 := memory_load32_le(mem, R8), (gamma_load32(Gamma_mem, R8) || L(mem, R8)); - R1, Gamma_R1 := zero_extend32_32(load17), Gamma_load17; + $load17, Gamma_$load17 := memory_load32_le(mem, R8), (gamma_load32(Gamma_mem, R8) || L(mem, R8)); + R1, Gamma_R1 := zero_extend32_32($load17), Gamma_$load17; R0, Gamma_R0 := 0bv64, true; R0, Gamma_R0 := bvadd64(R0, 2313bv64), Gamma_R0; R30, Gamma_R30 := 2224bv64, true; - call FUN_6c0_1728(); - goto main_2068__5__XGVqaesVShylRrbOWqzjFw; - main_2068__5__XGVqaesVShylRrbOWqzjFw: - assume {:captureState "main_2068__5__XGVqaesVShylRrbOWqzjFw"} true; - load19, Gamma_load19 := memory_load32_le(stack, bvadd64(R31, 28bv64)), gamma_load32(Gamma_stack, bvadd64(R31, 28bv64)); - R1, Gamma_R1 := zero_extend32_32(load19), Gamma_load19; + call FUN_6c0(); + goto $main$__5__$XGVqaesVShylRrbOWqzjFw; + $main$__5__$XGVqaesVShylRrbOWqzjFw: + assume {:captureState "$main$__5__$XGVqaesVShylRrbOWqzjFw"} true; + $load19, Gamma_$load19 := memory_load32_le(stack, bvadd64(R31, 28bv64)), gamma_load32(Gamma_stack, bvadd64(R31, 28bv64)); + R1, Gamma_R1 := zero_extend32_32($load19), Gamma_$load19; R0, Gamma_R0 := 0bv64, true; R0, Gamma_R0 := bvadd64(R0, 2329bv64), Gamma_R0; R30, Gamma_R30 := 2240bv64, true; - call FUN_6c0_1728(); - goto main_2068__6__KOWJQzAnSc2QejZ1C9Zzjw; - main_2068__6__KOWJQzAnSc2QejZ1C9Zzjw: - assume {:captureState "main_2068__6__KOWJQzAnSc2QejZ1C9Zzjw"} true; - load14, Gamma_load14 := memory_load64_le(stack, bvadd64(R29, 18446744073709551600bv64)), gamma_load64(Gamma_stack, bvadd64(R29, 18446744073709551600bv64)); - R0, Gamma_R0 := load14, Gamma_load14; + call FUN_6c0(); + goto $main$__6__$KOWJQzAnSc2QejZ1C9Zzjw; + $main$__6__$KOWJQzAnSc2QejZ1C9Zzjw: + assume {:captureState "$main$__6__$KOWJQzAnSc2QejZ1C9Zzjw"} true; + $load14, Gamma_$load14 := memory_load64_le(stack, bvadd64(R29, 18446744073709551600bv64)), gamma_load64(Gamma_stack, bvadd64(R29, 18446744073709551600bv64)); + R0, Gamma_R0 := $load14, Gamma_$load14; R30, Gamma_R30 := 2248bv64, true; - call FUN_6b0_1712(); - goto main_2068__7__XxlrxTEbSBSt~FnDRB3sPg; - main_2068__7__XxlrxTEbSBSt~FnDRB3sPg: - assume {:captureState "main_2068__7__XxlrxTEbSBSt~FnDRB3sPg"} true; - load15, Gamma_load15 := memory_load64_le(stack, bvadd64(R31, 32bv64)), gamma_load64(Gamma_stack, bvadd64(R31, 32bv64)); - R0, Gamma_R0 := load15, Gamma_load15; + call FUN_6b0(); + goto $main$__7__$XxlrxTEbSBSt~FnDRB3sPg; + $main$__7__$XxlrxTEbSBSt~FnDRB3sPg: + assume {:captureState "$main$__7__$XxlrxTEbSBSt~FnDRB3sPg"} true; + $load15, Gamma_$load15 := memory_load64_le(stack, bvadd64(R31, 32bv64)), gamma_load64(Gamma_stack, bvadd64(R31, 32bv64)); + R0, Gamma_R0 := $load15, Gamma_$load15; R30, Gamma_R30 := 2256bv64, true; - call FUN_6b0_1712(); - goto main_2068__8__vRLqE2TDSi2s0PYIJ~bRSA; - main_2068__8__vRLqE2TDSi2s0PYIJ~bRSA: - assume {:captureState "main_2068__8__vRLqE2TDSi2s0PYIJ~bRSA"} true; - load7, Gamma_load7 := memory_load32_le(stack, bvadd64(R31, 8bv64)), gamma_load32(Gamma_stack, bvadd64(R31, 8bv64)); - R0, Gamma_R0 := zero_extend32_32(load7), Gamma_load7; - Cse0__5_1_1, Gamma_Cse0__5_1_1 := bvadd64(R31, 64bv64), Gamma_R31; - load8, Gamma_load8 := memory_load64_le(stack, Cse0__5_1_1), gamma_load64(Gamma_stack, Cse0__5_1_1); - R29, Gamma_R29 := load8, Gamma_load8; - load9, Gamma_load9 := memory_load64_le(stack, bvadd64(Cse0__5_1_1, 8bv64)), gamma_load64(Gamma_stack, bvadd64(Cse0__5_1_1, 8bv64)); - R30, Gamma_R30 := load9, Gamma_load9; + call FUN_6b0(); + goto $main$__8__$vRLqE2TDSi2s0PYIJ~bRSA; + $main$__8__$vRLqE2TDSi2s0PYIJ~bRSA: + assume {:captureState "$main$__8__$vRLqE2TDSi2s0PYIJ~bRSA"} true; + $load7, Gamma_$load7 := memory_load32_le(stack, bvadd64(R31, 8bv64)), gamma_load32(Gamma_stack, bvadd64(R31, 8bv64)); + R0, Gamma_R0 := zero_extend32_32($load7), Gamma_$load7; + Cse0__5$1$1, Gamma_Cse0__5$1$1 := bvadd64(R31, 64bv64), Gamma_R31; + $load8, Gamma_$load8 := memory_load64_le(stack, Cse0__5$1$1), gamma_load64(Gamma_stack, Cse0__5$1$1); + R29, Gamma_R29 := $load8, Gamma_$load8; + $load9, Gamma_$load9 := memory_load64_le(stack, bvadd64(Cse0__5$1$1, 8bv64)), gamma_load64(Gamma_stack, bvadd64(Cse0__5$1$1, 8bv64)); + R30, Gamma_R30 := $load9, Gamma_$load9; R31, Gamma_R31 := bvadd64(R31, 80bv64), Gamma_R31; - goto main_2068_basil_return; - main_2068_basil_return: - assume {:captureState "main_2068_basil_return"} true; + goto main_basil_return; + main_basil_return: + assume {:captureState "main_basil_return"} true; return; } -procedure FUN_6b0_1712(); +procedure FUN_6b0(); modifies Gamma_R16, Gamma_R17, Gamma_mem, R16, R17, mem; free requires (memory_load8_le(mem, 2292bv64) == 1bv8); free requires (memory_load8_le(mem, 2293bv64) == 0bv8); @@ -422,25 +419,22 @@ procedure FUN_6b0_1712(); free ensures (memory_load64_le(mem, 69592bv64) == 2068bv64); free ensures (memory_load64_le(mem, 69696bv64) == 69696bv64); -implementation FUN_6b0_1712() +implementation FUN_6b0() { - var Gamma_load30: bool; - var load30: bv64; - FUN_6b0_1712__0__ftC9I58hTr~uInFEjp~qaQ: - assume {:captureState "FUN_6b0_1712__0__ftC9I58hTr~uInFEjp~qaQ"} true; + var $load30: bv64; + var Gamma_$load30: bool; + $FUN_6b0$__0__$ftC9I58hTr~uInFEjp~qaQ: + assume {:captureState "$FUN_6b0$__0__$ftC9I58hTr~uInFEjp~qaQ"} true; R16, Gamma_R16 := 69632bv64, true; call rely(); - load30, Gamma_load30 := memory_load64_le(mem, bvadd64(R16, 40bv64)), (gamma_load64(Gamma_mem, bvadd64(R16, 40bv64)) || L(mem, bvadd64(R16, 40bv64))); - R17, Gamma_R17 := load30, Gamma_load30; + $load30, Gamma_$load30 := memory_load64_le(mem, bvadd64(R16, 40bv64)), (gamma_load64(Gamma_mem, bvadd64(R16, 40bv64)) || L(mem, bvadd64(R16, 40bv64))); + R17, Gamma_R17 := $load30, Gamma_$load30; R16, Gamma_R16 := bvadd64(R16, 40bv64), Gamma_R16; call #free(); - goto FUN_6b0_1712_basil_return; - FUN_6b0_1712_basil_return: - assume {:captureState "FUN_6b0_1712_basil_return"} true; - return; + assume false; } -procedure FUN_680_1664(); +procedure FUN_680(); modifies Gamma_R16, Gamma_R17, Gamma_mem, R16, R17, mem; free requires (memory_load8_le(mem, 2292bv64) == 1bv8); free requires (memory_load8_le(mem, 2293bv64) == 0bv8); @@ -481,22 +475,19 @@ procedure FUN_680_1664(); free ensures (memory_load64_le(mem, 69592bv64) == 2068bv64); free ensures (memory_load64_le(mem, 69696bv64) == 69696bv64); -implementation FUN_680_1664() +implementation FUN_680() { - var Gamma_load33: bool; - var load33: bv64; - FUN_680_1664__0__5~1SMMaYTnC_yOEStjKdRw: - assume {:captureState "FUN_680_1664__0__5~1SMMaYTnC_yOEStjKdRw"} true; + var $load33: bv64; + var Gamma_$load33: bool; + $FUN_680$__0__$5~1SMMaYTnC_yOEStjKdRw: + assume {:captureState "$FUN_680$__0__$5~1SMMaYTnC_yOEStjKdRw"} true; R16, Gamma_R16 := 69632bv64, true; call rely(); - load33, Gamma_load33 := memory_load64_le(mem, bvadd64(R16, 16bv64)), (gamma_load64(Gamma_mem, bvadd64(R16, 16bv64)) || L(mem, bvadd64(R16, 16bv64))); - R17, Gamma_R17 := load33, Gamma_load33; + $load33, Gamma_$load33 := memory_load64_le(mem, bvadd64(R16, 16bv64)), (gamma_load64(Gamma_mem, bvadd64(R16, 16bv64)) || L(mem, bvadd64(R16, 16bv64))); + R17, Gamma_R17 := $load33, Gamma_$load33; R16, Gamma_R16 := bvadd64(R16, 16bv64), Gamma_R16; call malloc(); - goto FUN_680_1664_basil_return; - FUN_680_1664_basil_return: - assume {:captureState "FUN_680_1664_basil_return"} true; - return; + assume false; } procedure printf(); diff --git a/src/test/correct/malloc_with_local2/gcc/malloc_with_local2.adt b/src/test/correct/malloc_with_local2/gcc/malloc_with_local2.adt deleted file mode 100644 index e90f48ab9..000000000 --- a/src/test/correct/malloc_with_local2/gcc/malloc_with_local2.adt +++ /dev/null @@ -1,696 +0,0 @@ -Project(Attrs([Attr("filename","\"gcc/malloc_with_local2.out\""), -Attr("image-specification","(declare abi (name str))\n(declare arch (name str))\n(declare base-address (addr int))\n(declare bias (off int))\n(declare bits (size int))\n(declare code-region (addr int) (size int) (off int))\n(declare code-start (addr int))\n(declare entry-point (addr int))\n(declare external-reference (addr int) (name str))\n(declare format (name str))\n(declare is-executable (flag bool))\n(declare is-little-endian (flag bool))\n(declare llvm:base-address (addr int))\n(declare llvm:code-entry (name str) (off int) (size int))\n(declare llvm:coff-import-library (name str))\n(declare llvm:coff-virtual-section-header (name str) (addr int) (size int))\n(declare llvm:elf-program-header (name str) (off int) (size int))\n(declare llvm:elf-program-header-flags (name str) (ld bool) (r bool) \n (w bool) (x bool))\n(declare llvm:elf-virtual-program-header (name str) (addr int) (size int))\n(declare llvm:entry-point (addr int))\n(declare llvm:macho-symbol (name str) (value int))\n(declare llvm:name-reference (at int) (name str))\n(declare llvm:relocation (at int) (addr int))\n(declare llvm:section-entry (name str) (addr int) (size int) (off int))\n(declare llvm:section-flags (name str) (r bool) (w bool) (x bool))\n(declare llvm:segment-command (name str) (off int) (size int))\n(declare llvm:segment-command-flags (name str) (r bool) (w bool) (x bool))\n(declare llvm:symbol-entry (name str) (addr int) (size int) (off int)\n (value int))\n(declare llvm:virtual-segment-command (name str) (addr int) (size int))\n(declare mapped (addr int) (size int) (off int))\n(declare named-region (addr int) (size int) (name str))\n(declare named-symbol (addr int) (name str))\n(declare require (name str))\n(declare section (addr int) (size int))\n(declare segment (addr int) (size int) (r bool) (w bool) (x bool))\n(declare subarch (name str))\n(declare symbol-chunk (addr int) (size int) (root int))\n(declare symbol-value (addr int) (value int))\n(declare system (name str))\n(declare vendor (name str))\n\n(abi unknown)\n(arch aarch64)\n(base-address 0)\n(bias 0)\n(bits 64)\n(code-region 2252 20 2252)\n(code-region 1792 460 1792)\n(code-region 1600 144 1600)\n(code-region 1576 24 1576)\n(code-start 1844)\n(code-start 1792)\n(code-start 2068)\n(entry-point 1792)\n(external-reference 69592 _ITM_deregisterTMCloneTable)\n(external-reference 69600 __cxa_finalize)\n(external-reference 69608 __gmon_start__)\n(external-reference 69624 _ITM_registerTMCloneTable)\n(external-reference 69528 __libc_start_main)\n(external-reference 69536 __cxa_finalize)\n(external-reference 69544 malloc)\n(external-reference 69552 __gmon_start__)\n(external-reference 69560 abort)\n(external-reference 69568 free)\n(external-reference 69576 printf)\n(format elf)\n(is-executable true)\n(is-little-endian true)\n(llvm:base-address 0)\n(llvm:code-entry printf 0 0)\n(llvm:code-entry free 0 0)\n(llvm:code-entry abort 0 0)\n(llvm:code-entry malloc 0 0)\n(llvm:code-entry __cxa_finalize 0 0)\n(llvm:code-entry __libc_start_main 0 0)\n(llvm:code-entry _init 1576 0)\n(llvm:code-entry printf@GLIBC_2.17 0 0)\n(llvm:code-entry main 2068 184)\n(llvm:code-entry _start 1792 52)\n(llvm:code-entry free@GLIBC_2.17 0 0)\n(llvm:code-entry abort@GLIBC_2.17 0 0)\n(llvm:code-entry malloc@GLIBC_2.17 0 0)\n(llvm:code-entry _fini 2252 0)\n(llvm:code-entry __cxa_finalize@GLIBC_2.17 0 0)\n(llvm:code-entry __libc_start_main@GLIBC_2.34 0 0)\n(llvm:code-entry frame_dummy 2064 0)\n(llvm:code-entry __do_global_dtors_aux 1984 0)\n(llvm:code-entry register_tm_clones 1920 0)\n(llvm:code-entry deregister_tm_clones 1872 0)\n(llvm:code-entry call_weak_fn 1844 20)\n(llvm:code-entry .fini 2252 20)\n(llvm:code-entry .text 1792 460)\n(llvm:code-entry .plt 1600 144)\n(llvm:code-entry .init 1576 24)\n(llvm:elf-program-header 08 3456 640)\n(llvm:elf-program-header 07 0 0)\n(llvm:elf-program-header 06 2348 60)\n(llvm:elf-program-header 05 596 68)\n(llvm:elf-program-header 04 3472 496)\n(llvm:elf-program-header 03 3456 656)\n(llvm:elf-program-header 02 0 2580)\n(llvm:elf-program-header 01 568 27)\n(llvm:elf-program-header 00 64 504)\n(llvm:elf-program-header-flags 08 false true false false)\n(llvm:elf-program-header-flags 07 false true true false)\n(llvm:elf-program-header-flags 06 false true false false)\n(llvm:elf-program-header-flags 05 false true false false)\n(llvm:elf-program-header-flags 04 false true true false)\n(llvm:elf-program-header-flags 03 true true true false)\n(llvm:elf-program-header-flags 02 true true false true)\n(llvm:elf-program-header-flags 01 false true false false)\n(llvm:elf-program-header-flags 00 false true false false)\n(llvm:elf-virtual-program-header 08 68992 640)\n(llvm:elf-virtual-program-header 07 0 0)\n(llvm:elf-virtual-program-header 06 2348 60)\n(llvm:elf-virtual-program-header 05 596 68)\n(llvm:elf-virtual-program-header 04 69008 496)\n(llvm:elf-virtual-program-header 03 68992 664)\n(llvm:elf-virtual-program-header 02 0 2580)\n(llvm:elf-virtual-program-header 01 568 27)\n(llvm:elf-virtual-program-header 00 64 504)\n(llvm:entry-point 1792)\n(llvm:name-reference 69576 printf)\n(llvm:name-reference 69568 free)\n(llvm:name-reference 69560 abort)\n(llvm:name-reference 69552 __gmon_start__)\n(llvm:name-reference 69544 malloc)\n(llvm:name-reference 69536 __cxa_finalize)\n(llvm:name-reference 69528 __libc_start_main)\n(llvm:name-reference 69624 _ITM_registerTMCloneTable)\n(llvm:name-reference 69608 __gmon_start__)\n(llvm:name-reference 69600 __cxa_finalize)\n(llvm:name-reference 69592 _ITM_deregisterTMCloneTable)\n(llvm:section-entry .shstrtab 0 250 6926)\n(llvm:section-entry .strtab 0 606 6320)\n(llvm:section-entry .symtab 0 2160 4160)\n(llvm:section-entry .comment 0 43 4112)\n(llvm:section-entry .bss 69648 8 4112)\n(llvm:section-entry .data 69632 16 4096)\n(llvm:section-entry .got 69504 128 3968)\n(llvm:section-entry .dynamic 69008 496 3472)\n(llvm:section-entry .fini_array 69000 8 3464)\n(llvm:section-entry .init_array 68992 8 3456)\n(llvm:section-entry .eh_frame 2408 172 2408)\n(llvm:section-entry .eh_frame_hdr 2348 60 2348)\n(llvm:section-entry .rodata 2272 75 2272)\n(llvm:section-entry .fini 2252 20 2252)\n(llvm:section-entry .text 1792 460 1792)\n(llvm:section-entry .plt 1600 144 1600)\n(llvm:section-entry .init 1576 24 1576)\n(llvm:section-entry .rela.plt 1408 168 1408)\n(llvm:section-entry .rela.dyn 1216 192 1216)\n(llvm:section-entry .gnu.version_r 1168 48 1168)\n(llvm:section-entry .gnu.version 1144 24 1144)\n(llvm:section-entry .dynstr 984 160 984)\n(llvm:section-entry .dynsym 696 288 696)\n(llvm:section-entry .gnu.hash 664 28 664)\n(llvm:section-entry .note.ABI-tag 632 32 632)\n(llvm:section-entry .note.gnu.build-id 596 36 596)\n(llvm:section-entry .interp 568 27 568)\n(llvm:section-flags .shstrtab true false false)\n(llvm:section-flags .strtab true false false)\n(llvm:section-flags .symtab true false false)\n(llvm:section-flags .comment true false false)\n(llvm:section-flags .bss true true false)\n(llvm:section-flags .data true true false)\n(llvm:section-flags .got true true false)\n(llvm:section-flags .dynamic true true false)\n(llvm:section-flags .fini_array true true false)\n(llvm:section-flags .init_array true true false)\n(llvm:section-flags .eh_frame true false false)\n(llvm:section-flags .eh_frame_hdr true false false)\n(llvm:section-flags .rodata true false false)\n(llvm:section-flags .fini true false true)\n(llvm:section-flags .text true false true)\n(llvm:section-flags .plt true false true)\n(llvm:section-flags .init true false true)\n(llvm:section-flags .rela.plt true false false)\n(llvm:section-flags .rela.dyn true false false)\n(llvm:section-flags .gnu.version_r true false false)\n(llvm:section-flags .gnu.version true false false)\n(llvm:section-flags .dynstr true false false)\n(llvm:section-flags .dynsym true false false)\n(llvm:section-flags .gnu.hash true false false)\n(llvm:section-flags .note.ABI-tag true false false)\n(llvm:section-flags .note.gnu.build-id true false false)\n(llvm:section-flags .interp true false false)\n(llvm:symbol-entry printf 0 0 0 0)\n(llvm:symbol-entry free 0 0 0 0)\n(llvm:symbol-entry abort 0 0 0 0)\n(llvm:symbol-entry malloc 0 0 0 0)\n(llvm:symbol-entry __cxa_finalize 0 0 0 0)\n(llvm:symbol-entry __libc_start_main 0 0 0 0)\n(llvm:symbol-entry _init 1576 0 1576 1576)\n(llvm:symbol-entry printf@GLIBC_2.17 0 0 0 0)\n(llvm:symbol-entry main 2068 184 2068 2068)\n(llvm:symbol-entry _start 1792 52 1792 1792)\n(llvm:symbol-entry free@GLIBC_2.17 0 0 0 0)\n(llvm:symbol-entry abort@GLIBC_2.17 0 0 0 0)\n(llvm:symbol-entry malloc@GLIBC_2.17 0 0 0 0)\n(llvm:symbol-entry _fini 2252 0 2252 2252)\n(llvm:symbol-entry __cxa_finalize@GLIBC_2.17 0 0 0 0)\n(llvm:symbol-entry __libc_start_main@GLIBC_2.34 0 0 0 0)\n(llvm:symbol-entry frame_dummy 2064 0 2064 2064)\n(llvm:symbol-entry __do_global_dtors_aux 1984 0 1984 1984)\n(llvm:symbol-entry register_tm_clones 1920 0 1920 1920)\n(llvm:symbol-entry deregister_tm_clones 1872 0 1872 1872)\n(llvm:symbol-entry call_weak_fn 1844 20 1844 1844)\n(mapped 0 2580 0)\n(mapped 68992 656 3456)\n(named-region 0 2580 02)\n(named-region 68992 664 03)\n(named-region 568 27 .interp)\n(named-region 596 36 .note.gnu.build-id)\n(named-region 632 32 .note.ABI-tag)\n(named-region 664 28 .gnu.hash)\n(named-region 696 288 .dynsym)\n(named-region 984 160 .dynstr)\n(named-region 1144 24 .gnu.version)\n(named-region 1168 48 .gnu.version_r)\n(named-region 1216 192 .rela.dyn)\n(named-region 1408 168 .rela.plt)\n(named-region 1576 24 .init)\n(named-region 1600 144 .plt)\n(named-region 1792 460 .text)\n(named-region 2252 20 .fini)\n(named-region 2272 75 .rodata)\n(named-region 2348 60 .eh_frame_hdr)\n(named-region 2408 172 .eh_frame)\n(named-region 68992 8 .init_array)\n(named-region 69000 8 .fini_array)\n(named-region 69008 496 .dynamic)\n(named-region 69504 128 .got)\n(named-region 69632 16 .data)\n(named-region 69648 8 .bss)\n(named-region 0 43 .comment)\n(named-region 0 2160 .symtab)\n(named-region 0 606 .strtab)\n(named-region 0 250 .shstrtab)\n(named-symbol 1844 call_weak_fn)\n(named-symbol 1872 deregister_tm_clones)\n(named-symbol 1920 register_tm_clones)\n(named-symbol 1984 __do_global_dtors_aux)\n(named-symbol 2064 frame_dummy)\n(named-symbol 0 __libc_start_main@GLIBC_2.34)\n(named-symbol 0 __cxa_finalize@GLIBC_2.17)\n(named-symbol 2252 _fini)\n(named-symbol 0 malloc@GLIBC_2.17)\n(named-symbol 0 abort@GLIBC_2.17)\n(named-symbol 0 free@GLIBC_2.17)\n(named-symbol 1792 _start)\n(named-symbol 2068 main)\n(named-symbol 0 printf@GLIBC_2.17)\n(named-symbol 1576 _init)\n(named-symbol 0 __libc_start_main)\n(named-symbol 0 __cxa_finalize)\n(named-symbol 0 malloc)\n(named-symbol 0 abort)\n(named-symbol 0 free)\n(named-symbol 0 printf)\n(require libc.so.6)\n(section 568 27)\n(section 596 36)\n(section 632 32)\n(section 664 28)\n(section 696 288)\n(section 984 160)\n(section 1144 24)\n(section 1168 48)\n(section 1216 192)\n(section 1408 168)\n(section 1576 24)\n(section 1600 144)\n(section 1792 460)\n(section 2252 20)\n(section 2272 75)\n(section 2348 60)\n(section 2408 172)\n(section 68992 8)\n(section 69000 8)\n(section 69008 496)\n(section 69504 128)\n(section 69632 16)\n(section 69648 8)\n(section 0 43)\n(section 0 2160)\n(section 0 606)\n(section 0 250)\n(segment 0 2580 true false true)\n(segment 68992 664 true true false)\n(subarch v8)\n(symbol-chunk 1844 20 1844)\n(symbol-chunk 1792 52 1792)\n(symbol-chunk 2068 184 2068)\n(symbol-value 1844 1844)\n(symbol-value 1872 1872)\n(symbol-value 1920 1920)\n(symbol-value 1984 1984)\n(symbol-value 2064 2064)\n(symbol-value 2252 2252)\n(symbol-value 1792 1792)\n(symbol-value 2068 2068)\n(symbol-value 1576 1576)\n(symbol-value 0 0)\n(system \"\")\n(vendor \"\")\n"), -Attr("abi-name","\"aarch64-linux-gnu-elf\"")]), -Sections([Section(".shstrtab", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x08\x1c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x38\x00\x09\x00\x40\x00\x1c\x00\x1b\x00\x06\x00\x00\x00\x04\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x04\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x14\x0a\x00\x00\x00\x00\x00\x00\x14\x0a\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x01\x00\x00\x00\x06\x00\x00\x00\x80\x0d\x00\x00\x00\x00\x00\x00\x80\x0d"), -Section(".strtab", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x08\x1c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x38\x00\x09\x00\x40\x00\x1c\x00\x1b\x00\x06\x00\x00\x00\x04\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x04\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x14\x0a\x00\x00\x00\x00\x00\x00\x14\x0a\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x01\x00\x00\x00\x06\x00\x00\x00\x80\x0d\x00\x00\x00\x00\x00\x00\x80\x0d\x01\x00\x00\x00\x00\x00\x80\x0d\x01\x00\x00\x00\x00\x00\x90\x02\x00\x00\x00\x00\x00\x00\x98\x02\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x02\x00\x00\x00\x06\x00\x00\x00\x90\x0d\x00\x00\x00\x00\x00\x00\x90\x0d\x01\x00\x00\x00\x00\x00\x90\x0d\x01\x00\x00\x00\x00\x00\xf0\x01\x00\x00\x00\x00\x00\x00\xf0\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x04\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x50\xe5\x74\x64\x04\x00\x00\x00\x2c\x09\x00\x00\x00\x00\x00\x00\x2c\x09\x00\x00\x00\x00\x00\x00\x2c\x09\x00\x00\x00\x00\x00\x00\x3c\x00\x00\x00\x00\x00\x00\x00\x3c\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x51\xe5\x74\x64\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x52\xe5\x74\x64\x04\x00\x00\x00\x80\x0d\x00\x00\x00\x00\x00\x00\x80\x0d\x01\x00\x00\x00\x00\x00\x80\x0d\x01\x00\x00\x00\x00\x00\x80\x02\x00\x00\x00\x00\x00\x00\x80\x02\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x2f\x6c\x69\x62\x2f\x6c\x64\x2d\x6c\x69\x6e\x75\x78\x2d\x61\x61\x72\x63\x68\x36\x34\x2e\x73\x6f\x2e\x31\x00\x00\x04\x00\x00\x00\x14\x00\x00\x00\x03\x00"), -Section(".symtab", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x08\x1c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x38\x00\x09\x00\x40\x00\x1c\x00\x1b\x00\x06\x00\x00\x00\x04\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x04\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x14\x0a\x00\x00\x00\x00\x00\x00\x14\x0a\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x01\x00\x00\x00\x06\x00\x00\x00\x80\x0d\x00\x00\x00\x00\x00\x00\x80\x0d\x01\x00\x00\x00\x00\x00\x80\x0d\x01\x00\x00\x00\x00\x00\x90\x02\x00\x00\x00\x00\x00\x00\x98\x02\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x02\x00\x00\x00\x06\x00\x00\x00\x90\x0d\x00\x00\x00\x00\x00\x00\x90\x0d\x01\x00\x00\x00\x00\x00\x90\x0d\x01\x00\x00\x00\x00\x00\xf0\x01\x00\x00\x00\x00\x00\x00\xf0\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x04\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x50\xe5\x74\x64\x04\x00\x00\x00\x2c\x09\x00\x00\x00\x00\x00\x00\x2c\x09\x00\x00\x00\x00\x00\x00\x2c\x09\x00\x00\x00\x00\x00\x00\x3c\x00\x00\x00\x00\x00\x00\x00\x3c\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x51\xe5\x74\x64\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x52\xe5\x74\x64\x04\x00\x00\x00\x80\x0d\x00\x00\x00\x00\x00\x00\x80\x0d\x01\x00\x00\x00\x00\x00\x80\x0d\x01\x00\x00\x00\x00\x00\x80\x02\x00\x00\x00\x00\x00\x00\x80\x02\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x2f\x6c\x69\x62\x2f\x6c\x64\x2d\x6c\x69\x6e\x75\x78\x2d\x61\x61\x72\x63\x68\x36\x34\x2e\x73\x6f\x2e\x31\x00\x00\x04\x00\x00\x00\x14\x00\x00\x00\x03\x00\x00\x00\x47\x4e\x55\x00\x66\x39\x4d\x8f\x44\x1f\x66\x65\xe5\xf3\x6b\xaf\x69\x40\xeb\x11\xf0\x38\x66\x11\x04\x00\x00\x00\x10\x00\x00\x00\x01\x00\x00\x00\x47\x4e\x55\x00\x00\x00\x00\x00\x03\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x01\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x0b\x00\x28\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x16\x00\x00\x10\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x17\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5b\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x22\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x77\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2e\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x29\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x86\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x34\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5f\x5f\x63\x78\x61\x5f\x66\x69\x6e\x61\x6c\x69\x7a\x65\x00\x6d\x61\x6c\x6c\x6f\x63\x00\x5f\x5f\x6c\x69\x62\x63\x5f\x73\x74\x61\x72\x74\x5f\x6d\x61\x69\x6e\x00\x66\x72\x65\x65\x00\x61\x62\x6f\x72\x74\x00\x70\x72\x69\x6e\x74\x66\x00\x6c\x69\x62\x63\x2e\x73\x6f\x2e\x36\x00\x47\x4c\x49\x42\x43\x5f\x32\x2e\x31\x37\x00\x47\x4c\x49\x42\x43\x5f\x32\x2e\x33\x34\x00\x5f\x49\x54\x4d\x5f\x64\x65\x72\x65\x67\x69\x73\x74\x65\x72\x54\x4d\x43\x6c\x6f\x6e\x65\x54\x61\x62\x6c\x65\x00\x5f\x5f\x67\x6d\x6f\x6e\x5f\x73\x74\x61\x72\x74\x5f\x5f\x00\x5f\x49\x54\x4d\x5f\x72\x65\x67\x69\x73\x74\x65\x72\x54\x4d\x43\x6c\x6f\x6e\x65\x54\x61\x62\x6c\x65\x00\x00\x00\x00\x00\x00\x00\x02\x00\x01\x00\x03\x00\x03\x00\x01\x00\x03\x00\x03\x00\x01\x00\x03\x00\x01\x00\x02\x00\x3b\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x97\x91\x96\x06\x00\x00\x03\x00\x45\x00\x00\x00\x10\x00\x00\x00\xb4\x91\x96\x06\x00\x00\x02\x00\x50\x00\x00\x00\x00\x00\x00\x00\x80\x0d\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x10\x08\x00\x00\x00\x00\x00\x00\x88\x0d\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\xc0\x07\x00\x00\x00\x00\x00\x00\xf0\x0f\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x14\x08\x00\x00\x00\x00\x00\x00\x08\x10\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x08\x10\x01\x00\x00\x00\x00\x00\xd8\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe0\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe8\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xf8\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x0a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x98\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xa0\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xa8\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xb0\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xb8\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xc0\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x09\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xc8\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x0b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1f\x20\x03\xd5\xfd\x7b\xbf\xa9\xfd\x03\x00\x91\x40\x00\x00\x94\xfd\x7b\xc1\xa8\xc0\x03\x5f\xd6\xf0\x7b\xbf\xa9\x90\x00\x00\x90\x11\xca\x47\xf9\x10\x42\x3e\x91\x20\x02\x1f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x90\x00\x00\x90\x11\xce\x47\xf9\x10\x62\x3e\x91\x20\x02\x1f\xd6\x90\x00\x00\x90\x11\xd2\x47\xf9\x10\x82\x3e\x91\x20\x02\x1f\xd6\x90\x00\x00\x90\x11\xd6\x47\xf9\x10\xa2\x3e\x91\x20\x02\x1f\xd6\x90\x00\x00\x90\x11\xda\x47\xf9\x10\xc2\x3e\x91\x20\x02\x1f\xd6\x90\x00\x00\x90\x11\xde\x47\xf9\x10\xe2\x3e\x91\x20\x02\x1f\xd6\x90\x00\x00\x90\x11\xe2\x47\xf9\x10\x02\x3f\x91\x20\x02\x1f\xd6\x90\x00\x00\x90\x11\xe6\x47\xf9\x10\x22\x3f\x91\x20\x02\x1f\xd6\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1f\x20\x03\xd5\x1d\x00\x80\xd2\x1e\x00\x80\xd2\xe5\x03\x00\xaa\xe1\x03\x40\xf9\xe2\x23\x00\x91\xe6\x03\x00\x91\x80\x00\x00\x90\x00\xf8\x47\xf9\x03\x00\x80\xd2\x04\x00\x80\xd2\xcd\xff\xff\x97\xdc\xff\xff\x97\x80\x00\x00\x90\x00\xf4\x47\xf9\x40\x00\x00\xb4\xd4\xff\xff\x17\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x80\x00\x00\xb0\x00\x40\x00\x91\x81\x00\x00\xb0\x21\x40\x00\x91\x3f\x00\x00\xeb\xc0\x00\x00\x54\x81\x00\x00\x90\x21\xec\x47\xf9\x61\x00\x00\xb4\xf0\x03\x01\xaa\x00\x02\x1f\xd6\xc0\x03\x5f\xd6\x80\x00\x00\xb0\x00\x40\x00\x91\x81\x00\x00\xb0\x21\x40\x00\x91\x21\x00\x00\xcb\x22\xfc\x7f\xd3\x41\x0c\x81\x8b\x21\xfc\x41\x93\xc1\x00\x00\xb4\x82\x00\x00\x90\x42\xfc\x47\xf9\x62\x00\x00\xb4\xf0\x03\x02\xaa\x00\x02\x1f\xd6\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\xfd\x7b\xbe\xa9\xfd\x03\x00\x91\xf3\x0b\x00\xf9\x93\x00\x00\xb0\x60\x42\x40\x39\x40\x01\x00\x35\x80\x00\x00\x90\x00\xf0\x47\xf9\x80\x00\x00\xb4\x80\x00\x00\xb0\x00\x04\x40\xf9\xa1\xff\xff\x97\xd8\xff\xff\x97\x20\x00\x80\x52\x60\x42\x00\x39\xf3\x0b\x40\xf9\xfd\x7b\xc2\xa8\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\xdc\xff\xff\x17\xfd\x7b\xbc\xa9\xfd\x03\x00\x91\x20\x00\x80\xd2\x98\xff\xff\x97\xe0\x17\x00\xf9\x60\x01\x80\x52\xe0\x1f\x00\xb9\x80\x00\x80\xd2\x93\xff\xff\x97\xe0\x1b\x00\xf9\x40\x01\x80\x52\xe0\x23\x00\xb9\x80\x00\x80\xd2\x8e\xff\xff\x97\xe0\x1f\x00\xf9\x20\x01\x80\x52\xe0\x27\x00\xb9\xe0\x17\x40\xf9\x21\x08\x80\x52\x01\x00\x00\x39\xe0\x1b\x40\xf9\x41\x05\x80\x52\x01\x00\x00\xb9"), -Section(".comment", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x08\x1c\x00"), -Section(".interp", 0x238, "\x2f\x6c\x69\x62\x2f\x6c\x64\x2d\x6c\x69\x6e\x75\x78\x2d\x61\x61\x72\x63\x68\x36\x34\x2e\x73\x6f\x2e\x31\x00"), -Section(".note.gnu.build-id", 0x254, "\x04\x00\x00\x00\x14\x00\x00\x00\x03\x00\x00\x00\x47\x4e\x55\x00\x66\x39\x4d\x8f\x44\x1f\x66\x65\xe5\xf3\x6b\xaf\x69\x40\xeb\x11\xf0\x38\x66\x11"), -Section(".note.ABI-tag", 0x278, "\x04\x00\x00\x00\x10\x00\x00\x00\x01\x00\x00\x00\x47\x4e\x55\x00\x00\x00\x00\x00\x03\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00"), -Section(".gnu.hash", 0x298, "\x01\x00\x00\x00\x01\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".dynsym", 0x2B8, "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x0b\x00\x28\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x16\x00\x00\x10\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x17\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5b\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x22\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x77\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2e\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x29\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x86\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x34\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".dynstr", 0x3D8, "\x00\x5f\x5f\x63\x78\x61\x5f\x66\x69\x6e\x61\x6c\x69\x7a\x65\x00\x6d\x61\x6c\x6c\x6f\x63\x00\x5f\x5f\x6c\x69\x62\x63\x5f\x73\x74\x61\x72\x74\x5f\x6d\x61\x69\x6e\x00\x66\x72\x65\x65\x00\x61\x62\x6f\x72\x74\x00\x70\x72\x69\x6e\x74\x66\x00\x6c\x69\x62\x63\x2e\x73\x6f\x2e\x36\x00\x47\x4c\x49\x42\x43\x5f\x32\x2e\x31\x37\x00\x47\x4c\x49\x42\x43\x5f\x32\x2e\x33\x34\x00\x5f\x49\x54\x4d\x5f\x64\x65\x72\x65\x67\x69\x73\x74\x65\x72\x54\x4d\x43\x6c\x6f\x6e\x65\x54\x61\x62\x6c\x65\x00\x5f\x5f\x67\x6d\x6f\x6e\x5f\x73\x74\x61\x72\x74\x5f\x5f\x00\x5f\x49\x54\x4d\x5f\x72\x65\x67\x69\x73\x74\x65\x72\x54\x4d\x43\x6c\x6f\x6e\x65\x54\x61\x62\x6c\x65\x00"), -Section(".gnu.version", 0x478, "\x00\x00\x00\x00\x00\x00\x02\x00\x01\x00\x03\x00\x03\x00\x01\x00\x03\x00\x03\x00\x01\x00\x03\x00"), -Section(".gnu.version_r", 0x490, "\x01\x00\x02\x00\x3b\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x97\x91\x96\x06\x00\x00\x03\x00\x45\x00\x00\x00\x10\x00\x00\x00\xb4\x91\x96\x06\x00\x00\x02\x00\x50\x00\x00\x00\x00\x00\x00\x00"), -Section(".rela.dyn", 0x4C0, "\x80\x0d\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x10\x08\x00\x00\x00\x00\x00\x00\x88\x0d\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\xc0\x07\x00\x00\x00\x00\x00\x00\xf0\x0f\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x14\x08\x00\x00\x00\x00\x00\x00\x08\x10\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x08\x10\x01\x00\x00\x00\x00\x00\xd8\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe0\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe8\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xf8\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x0a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".rela.plt", 0x580, "\x98\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xa0\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xa8\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xb0\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xb8\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xc0\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x09\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xc8\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x0b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".init", 0x628, "\x1f\x20\x03\xd5\xfd\x7b\xbf\xa9\xfd\x03\x00\x91\x40\x00\x00\x94\xfd\x7b\xc1\xa8\xc0\x03\x5f\xd6"), -Section(".plt", 0x640, "\xf0\x7b\xbf\xa9\x90\x00\x00\x90\x11\xca\x47\xf9\x10\x42\x3e\x91\x20\x02\x1f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x90\x00\x00\x90\x11\xce\x47\xf9\x10\x62\x3e\x91\x20\x02\x1f\xd6\x90\x00\x00\x90\x11\xd2\x47\xf9\x10\x82\x3e\x91\x20\x02\x1f\xd6\x90\x00\x00\x90\x11\xd6\x47\xf9\x10\xa2\x3e\x91\x20\x02\x1f\xd6\x90\x00\x00\x90\x11\xda\x47\xf9\x10\xc2\x3e\x91\x20\x02\x1f\xd6\x90\x00\x00\x90\x11\xde\x47\xf9\x10\xe2\x3e\x91\x20\x02\x1f\xd6\x90\x00\x00\x90\x11\xe2\x47\xf9\x10\x02\x3f\x91\x20\x02\x1f\xd6\x90\x00\x00\x90\x11\xe6\x47\xf9\x10\x22\x3f\x91\x20\x02\x1f\xd6"), -Section(".fini", 0x8CC, "\x1f\x20\x03\xd5\xfd\x7b\xbf\xa9\xfd\x03\x00\x91\xfd\x7b\xc1\xa8\xc0\x03\x5f\xd6"), -Section(".rodata", 0x8E0, "\x01\x00\x02\x00\x00\x00\x00\x00\x54\x68\x65\x20\x63\x68\x61\x72\x20\x69\x73\x3a\x20\x25\x63\x0a\x00\x00\x00\x00\x00\x00\x00\x00\x54\x68\x65\x20\x69\x6e\x74\x20\x69\x73\x3a\x20\x25\x64\x0a\x00\x54\x68\x65\x20\x6c\x6f\x63\x61\x6c\x20\x76\x61\x72\x69\x61\x62\x6c\x65\x20\x69\x73\x3a\x20\x25\x64\x0a\x00"), -Section(".eh_frame_hdr", 0x92C, "\x01\x1b\x03\x3b\x38\x00\x00\x00\x06\x00\x00\x00\xd4\xfd\xff\xff\x50\x00\x00\x00\x24\xfe\xff\xff\x64\x00\x00\x00\x54\xfe\xff\xff\x78\x00\x00\x00\x94\xfe\xff\xff\x8c\x00\x00\x00\xe4\xfe\xff\xff\xb0\x00\x00\x00\xe8\xfe\xff\xff\xc4\x00\x00\x00"), -Section(".eh_frame", 0x968, "\x10\x00\x00\x00\x00\x00\x00\x00\x01\x7a\x52\x00\x04\x78\x1e\x01\x1b\x0c\x1f\x00\x10\x00\x00\x00\x18\x00\x00\x00\x7c\xfd\xff\xff\x34\x00\x00\x00\x00\x41\x07\x1e\x10\x00\x00\x00\x2c\x00\x00\x00\xb8\xfd\xff\xff\x30\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x40\x00\x00\x00\xd4\xfd\xff\xff\x3c\x00\x00\x00\x00\x00\x00\x00\x20\x00\x00\x00\x54\x00\x00\x00\x00\xfe\xff\xff\x48\x00\x00\x00\x00\x41\x0e\x20\x9d\x04\x9e\x03\x42\x93\x02\x4e\xde\xdd\xd3\x0e\x00\x00\x00\x00\x10\x00\x00\x00\x78\x00\x00\x00\x2c\xfe\xff\xff\x04\x00\x00\x00\x00\x00\x00\x00\x1c\x00\x00\x00\x8c\x00\x00\x00\x1c\xfe\xff\xff\xb8\x00\x00\x00\x00\x41\x0e\x40\x9d\x08\x9e\x07\x6c\xde\xdd\x0e\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".fini_array", 0x10D88, "\xc0\x07\x00\x00\x00\x00\x00\x00"), -Section(".dynamic", 0x10D90, "\x01\x00\x00\x00\x00\x00\x00\x00\x3b\x00\x00\x00\x00\x00\x00\x00\x0c\x00\x00\x00\x00\x00\x00\x00\x28\x06\x00\x00\x00\x00\x00\x00\x0d\x00\x00\x00\x00\x00\x00\x00\xcc\x08\x00\x00\x00\x00\x00\x00\x19\x00\x00\x00\x00\x00\x00\x00\x80\x0d\x01\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x1a\x00\x00\x00\x00\x00\x00\x00\x88\x0d\x01\x00\x00\x00\x00\x00\x1c\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\xf5\xfe\xff\x6f\x00\x00\x00\x00\x98\x02\x00\x00\x00\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\xd8\x03\x00\x00\x00\x00\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\xb8\x02\x00\x00\x00\x00\x00\x00\x0a\x00\x00\x00\x00\x00\x00\x00\xa0\x00\x00\x00\x00\x00\x00\x00\x0b\x00\x00\x00\x00\x00\x00\x00\x18\x00\x00\x00\x00\x00\x00\x00\x15\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x80\x0f\x01\x00\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\xa8\x00\x00\x00\x00\x00\x00\x00\x14\x00\x00\x00\x00\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x17\x00\x00\x00\x00\x00\x00\x00\x80\x05\x00\x00\x00\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\xc0\x04\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\xc0\x00\x00\x00\x00\x00\x00\x00\x09\x00\x00\x00\x00\x00\x00\x00\x18\x00\x00\x00\x00\x00\x00\x00\x1e\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\xfb\xff\xff\x6f\x00\x00\x00\x00\x01\x00\x00\x08\x00\x00\x00\x00\xfe\xff\xff\x6f\x00\x00\x00\x00\x90\x04\x00\x00\x00\x00\x00\x00\xff\xff\xff\x6f\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\xf0\xff\xff\x6f\x00\x00\x00\x00\x78\x04\x00\x00\x00\x00\x00\x00\xf9\xff\xff\x6f\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".got", 0x10F80, "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x06\x00\x00\x00\x00\x00\x00\x40\x06\x00\x00\x00\x00\x00\x00\x40\x06\x00\x00\x00\x00\x00\x00\x40\x06\x00\x00\x00\x00\x00\x00\x40\x06\x00\x00\x00\x00\x00\x00\x40\x06\x00\x00\x00\x00\x00\x00\x40\x06\x00\x00\x00\x00\x00\x00\x90\x0d\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x14\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".data", 0x11000, "\x00\x00\x00\x00\x00\x00\x00\x00\x08\x10\x01\x00\x00\x00\x00\x00"), -Section(".init_array", 0x10D80, "\x10\x08\x00\x00\x00\x00\x00\x00"), -Section(".text", 0x700, "\x1f\x20\x03\xd5\x1d\x00\x80\xd2\x1e\x00\x80\xd2\xe5\x03\x00\xaa\xe1\x03\x40\xf9\xe2\x23\x00\x91\xe6\x03\x00\x91\x80\x00\x00\x90\x00\xf8\x47\xf9\x03\x00\x80\xd2\x04\x00\x80\xd2\xcd\xff\xff\x97\xdc\xff\xff\x97\x80\x00\x00\x90\x00\xf4\x47\xf9\x40\x00\x00\xb4\xd4\xff\xff\x17\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x80\x00\x00\xb0\x00\x40\x00\x91\x81\x00\x00\xb0\x21\x40\x00\x91\x3f\x00\x00\xeb\xc0\x00\x00\x54\x81\x00\x00\x90\x21\xec\x47\xf9\x61\x00\x00\xb4\xf0\x03\x01\xaa\x00\x02\x1f\xd6\xc0\x03\x5f\xd6\x80\x00\x00\xb0\x00\x40\x00\x91\x81\x00\x00\xb0\x21\x40\x00\x91\x21\x00\x00\xcb\x22\xfc\x7f\xd3\x41\x0c\x81\x8b\x21\xfc\x41\x93\xc1\x00\x00\xb4\x82\x00\x00\x90\x42\xfc\x47\xf9\x62\x00\x00\xb4\xf0\x03\x02\xaa\x00\x02\x1f\xd6\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\xfd\x7b\xbe\xa9\xfd\x03\x00\x91\xf3\x0b\x00\xf9\x93\x00\x00\xb0\x60\x42\x40\x39\x40\x01\x00\x35\x80\x00\x00\x90\x00\xf0\x47\xf9\x80\x00\x00\xb4\x80\x00\x00\xb0\x00\x04\x40\xf9\xa1\xff\xff\x97\xd8\xff\xff\x97\x20\x00\x80\x52\x60\x42\x00\x39\xf3\x0b\x40\xf9\xfd\x7b\xc2\xa8\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\xdc\xff\xff\x17\xfd\x7b\xbc\xa9\xfd\x03\x00\x91\x20\x00\x80\xd2\x98\xff\xff\x97\xe0\x17\x00\xf9\x60\x01\x80\x52\xe0\x1f\x00\xb9\x80\x00\x80\xd2\x93\xff\xff\x97\xe0\x1b\x00\xf9\x40\x01\x80\x52\xe0\x23\x00\xb9\x80\x00\x80\xd2\x8e\xff\xff\x97\xe0\x1f\x00\xf9\x20\x01\x80\x52\xe0\x27\x00\xb9\xe0\x17\x40\xf9\x21\x08\x80\x52\x01\x00\x00\x39\xe0\x1b\x40\xf9\x41\x05\x80\x52\x01\x00\x00\xb9\xe0\x17\x40\xf9\x00\x00\x40\x39\xe1\x03\x00\x2a\x00\x00\x00\x90\x00\xa0\x23\x91\x8f\xff\xff\x97\xe0\x1b\x40\xf9\x00\x00\x40\xb9\xe1\x03\x00\x2a\x00\x00\x00\x90\x00\x00\x24\x91\x89\xff\xff\x97\xe1\x23\x40\xb9\x00\x00\x00\x90\x00\x40\x24\x91\x85\xff\xff\x97\xe0\x17\x40\xf9\x7f\xff\xff\x97\xe0\x1b\x40\xf9\x7d\xff\xff\x97\x00\x00\x80\x52\xfd\x7b\xc4\xa8\xc0\x03\x5f\xd6")]), -Memmap([Annotation(Region(0x0,0xA13), Attr("segment","02 0 2580")), -Annotation(Region(0x700,0x733), Attr("symbol","\"_start\"")), -Annotation(Region(0x0,0xF9), Attr("section","\".shstrtab\"")), -Annotation(Region(0x0,0x25D), Attr("section","\".strtab\"")), -Annotation(Region(0x0,0x86F), Attr("section","\".symtab\"")), -Annotation(Region(0x0,0x2A), Attr("section","\".comment\"")), -Annotation(Region(0x238,0x252), Attr("section","\".interp\"")), -Annotation(Region(0x254,0x277), Attr("section","\".note.gnu.build-id\"")), -Annotation(Region(0x278,0x297), Attr("section","\".note.ABI-tag\"")), -Annotation(Region(0x298,0x2B3), Attr("section","\".gnu.hash\"")), -Annotation(Region(0x2B8,0x3D7), Attr("section","\".dynsym\"")), -Annotation(Region(0x3D8,0x477), Attr("section","\".dynstr\"")), -Annotation(Region(0x478,0x48F), Attr("section","\".gnu.version\"")), -Annotation(Region(0x490,0x4BF), Attr("section","\".gnu.version_r\"")), -Annotation(Region(0x4C0,0x57F), Attr("section","\".rela.dyn\"")), -Annotation(Region(0x580,0x627), Attr("section","\".rela.plt\"")), -Annotation(Region(0x628,0x63F), Attr("section","\".init\"")), -Annotation(Region(0x640,0x6CF), Attr("section","\".plt\"")), -Annotation(Region(0x628,0x63F), Attr("code-region","()")), -Annotation(Region(0x640,0x6CF), Attr("code-region","()")), -Annotation(Region(0x700,0x733), Attr("symbol-info","_start 0x700 52")), -Annotation(Region(0x734,0x747), Attr("symbol","\"call_weak_fn\"")), -Annotation(Region(0x734,0x747), Attr("symbol-info","call_weak_fn 0x734 20")), -Annotation(Region(0x814,0x8CB), Attr("symbol","\"main\"")), -Annotation(Region(0x814,0x8CB), Attr("symbol-info","main 0x814 184")), -Annotation(Region(0x8CC,0x8DF), Attr("section","\".fini\"")), -Annotation(Region(0x8E0,0x92A), Attr("section","\".rodata\"")), -Annotation(Region(0x92C,0x967), Attr("section","\".eh_frame_hdr\"")), -Annotation(Region(0x968,0xA13), Attr("section","\".eh_frame\"")), -Annotation(Region(0x10D80,0x1100F), Attr("segment","03 0x10D80 664")), -Annotation(Region(0x10D88,0x10D8F), Attr("section","\".fini_array\"")), -Annotation(Region(0x10D90,0x10F7F), Attr("section","\".dynamic\"")), -Annotation(Region(0x10F80,0x10FFF), Attr("section","\".got\"")), -Annotation(Region(0x11000,0x1100F), Attr("section","\".data\"")), -Annotation(Region(0x10D80,0x10D87), Attr("section","\".init_array\"")), -Annotation(Region(0x700,0x8CB), Attr("section","\".text\"")), -Annotation(Region(0x700,0x8CB), Attr("code-region","()")), -Annotation(Region(0x8CC,0x8DF), Attr("code-region","()"))]), -Program(Tid(1_939, "%00000793"), Attrs([]), - Subs([Sub(Tid(1_914, "@__cxa_finalize"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x670"), -Attr("stub","()")]), "__cxa_finalize", Args([Arg(Tid(1_940, "%00000794"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("__cxa_finalize_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(1_246, "@__cxa_finalize"), - Attrs([Attr("address","0x670")]), Phis([]), -Defs([Def(Tid(1_542, "%00000606"), Attrs([Attr("address","0x670"), -Attr("insn","adrp x16, #65536")]), Var("R16",Imm(64)), Int(65536,64)), -Def(Tid(1_549, "%0000060d"), Attrs([Attr("address","0x674"), -Attr("insn","ldr x17, [x16, #0xfa0]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(4000,64)),LittleEndian(),64)), -Def(Tid(1_555, "%00000613"), Attrs([Attr("address","0x678"), -Attr("insn","add x16, x16, #0xfa0")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(4000,64)))]), Jmps([Call(Tid(1_560, "%00000618"), - Attrs([Attr("address","0x67C"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), -Sub(Tid(1_915, "@__do_global_dtors_aux"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x7C0")]), - "__do_global_dtors_aux", Args([Arg(Tid(1_941, "%00000795"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("__do_global_dtors_aux_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(774, "@__do_global_dtors_aux"), - Attrs([Attr("address","0x7C0")]), Phis([]), Defs([Def(Tid(778, "%0000030a"), - Attrs([Attr("address","0x7C0"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("#3",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(18446744073709551584,64))), -Def(Tid(784, "%00000310"), Attrs([Attr("address","0x7C0"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("#3",Imm(64)),Var("R29",Imm(64)),LittleEndian(),64)), -Def(Tid(790, "%00000316"), Attrs([Attr("address","0x7C0"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("#3",Imm(64)),Int(8,64)),Var("R30",Imm(64)),LittleEndian(),64)), -Def(Tid(794, "%0000031a"), Attrs([Attr("address","0x7C0"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("R31",Imm(64)), -Var("#3",Imm(64))), Def(Tid(800, "%00000320"), - Attrs([Attr("address","0x7C4"), Attr("insn","mov x29, sp")]), - Var("R29",Imm(64)), Var("R31",Imm(64))), Def(Tid(808, "%00000328"), - Attrs([Attr("address","0x7C8"), Attr("insn","str x19, [sp, #0x10]")]), - Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(16,64)),Var("R19",Imm(64)),LittleEndian(),64)), -Def(Tid(813, "%0000032d"), Attrs([Attr("address","0x7CC"), -Attr("insn","adrp x19, #69632")]), Var("R19",Imm(64)), Int(69632,64)), -Def(Tid(820, "%00000334"), Attrs([Attr("address","0x7D0"), -Attr("insn","ldrb w0, [x19, #0x10]")]), Var("R0",Imm(64)), -UNSIGNED(64,Load(Var("mem",Mem(64,8)),PLUS(Var("R19",Imm(64)),Int(16,64)),LittleEndian(),8)))]), -Jmps([Goto(Tid(827, "%0000033b"), Attrs([Attr("address","0x7D4"), -Attr("insn","cbnz w0, #0x28")]), - NEQ(Extract(31,0,Var("R0",Imm(64))),Int(0,32)), -Direct(Tid(825, "%00000339"))), Goto(Tid(1_916, "%0000077c"), Attrs([]), - Int(1,1), Direct(Tid(1_191, "%000004a7")))])), Blk(Tid(1_191, "%000004a7"), - Attrs([Attr("address","0x7D8")]), Phis([]), -Defs([Def(Tid(1_194, "%000004aa"), Attrs([Attr("address","0x7D8"), -Attr("insn","adrp x0, #65536")]), Var("R0",Imm(64)), Int(65536,64)), -Def(Tid(1_201, "%000004b1"), Attrs([Attr("address","0x7DC"), -Attr("insn","ldr x0, [x0, #0xfe0]")]), Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(4064,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(1_207, "%000004b7"), Attrs([Attr("address","0x7E0"), -Attr("insn","cbz x0, #0x10")]), EQ(Var("R0",Imm(64)),Int(0,64)), -Direct(Tid(1_205, "%000004b5"))), Goto(Tid(1_917, "%0000077d"), Attrs([]), - Int(1,1), Direct(Tid(1_230, "%000004ce")))])), Blk(Tid(1_230, "%000004ce"), - Attrs([Attr("address","0x7E4")]), Phis([]), -Defs([Def(Tid(1_233, "%000004d1"), Attrs([Attr("address","0x7E4"), -Attr("insn","adrp x0, #69632")]), Var("R0",Imm(64)), Int(69632,64)), -Def(Tid(1_240, "%000004d8"), Attrs([Attr("address","0x7E8"), -Attr("insn","ldr x0, [x0, #0x8]")]), Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(1_245, "%000004dd"), Attrs([Attr("address","0x7EC"), -Attr("insn","bl #-0x17c")]), Var("R30",Imm(64)), Int(2032,64))]), -Jmps([Call(Tid(1_248, "%000004e0"), Attrs([Attr("address","0x7EC"), -Attr("insn","bl #-0x17c")]), Int(1,1), -(Direct(Tid(1_914, "@__cxa_finalize")),Direct(Tid(1_205, "%000004b5"))))])), -Blk(Tid(1_205, "%000004b5"), Attrs([Attr("address","0x7F0")]), Phis([]), -Defs([Def(Tid(1_213, "%000004bd"), Attrs([Attr("address","0x7F0"), -Attr("insn","bl #-0xa0")]), Var("R30",Imm(64)), Int(2036,64))]), -Jmps([Call(Tid(1_215, "%000004bf"), Attrs([Attr("address","0x7F0"), -Attr("insn","bl #-0xa0")]), Int(1,1), -(Direct(Tid(1_928, "@deregister_tm_clones")),Direct(Tid(1_217, "%000004c1"))))])), -Blk(Tid(1_217, "%000004c1"), Attrs([Attr("address","0x7F4")]), Phis([]), -Defs([Def(Tid(1_220, "%000004c4"), Attrs([Attr("address","0x7F4"), -Attr("insn","mov w0, #0x1")]), Var("R0",Imm(64)), Int(1,64)), -Def(Tid(1_228, "%000004cc"), Attrs([Attr("address","0x7F8"), -Attr("insn","strb w0, [x19, #0x10]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R19",Imm(64)),Int(16,64)),Extract(7,0,Var("R0",Imm(64))),LittleEndian(),8))]), -Jmps([Goto(Tid(1_918, "%0000077e"), Attrs([]), Int(1,1), -Direct(Tid(825, "%00000339")))])), Blk(Tid(825, "%00000339"), - Attrs([Attr("address","0x7FC")]), Phis([]), Defs([Def(Tid(835, "%00000343"), - Attrs([Attr("address","0x7FC"), Attr("insn","ldr x19, [sp, #0x10]")]), - Var("R19",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(16,64)),LittleEndian(),64)), -Def(Tid(842, "%0000034a"), Attrs([Attr("address","0x800"), -Attr("insn","ldp x29, x30, [sp], #0x20")]), Var("R29",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(847, "%0000034f"), Attrs([Attr("address","0x800"), -Attr("insn","ldp x29, x30, [sp], #0x20")]), Var("R30",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(851, "%00000353"), Attrs([Attr("address","0x800"), -Attr("insn","ldp x29, x30, [sp], #0x20")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(32,64)))]), Jmps([Call(Tid(856, "%00000358"), - Attrs([Attr("address","0x804"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), Sub(Tid(1_919, "@__libc_start_main"), - Attrs([Attr("c.proto","signed (*)(signed (*)(signed , char** , char** );* main, signed , char** , \nvoid* auxv)"), -Attr("address","0x660"), Attr("stub","()")]), "__libc_start_main", - Args([Arg(Tid(1_942, "%00000796"), - Attrs([Attr("c.layout","**[ : 64]"), -Attr("c.data","Top:u64 ptr ptr"), -Attr("c.type","signed (*)(signed , char** , char** );*")]), - Var("__libc_start_main_main",Imm(64)), Var("R0",Imm(64)), In()), -Arg(Tid(1_943, "%00000797"), Attrs([Attr("c.layout","[signed : 32]"), -Attr("c.data","Top:u32"), Attr("c.type","signed")]), - Var("__libc_start_main_arg2",Imm(32)), LOW(32,Var("R1",Imm(64))), In()), -Arg(Tid(1_944, "%00000798"), Attrs([Attr("c.layout","**[char : 8]"), -Attr("c.data","Top:u8 ptr ptr"), Attr("c.type","char**")]), - Var("__libc_start_main_arg3",Imm(64)), Var("R2",Imm(64)), Both()), -Arg(Tid(1_945, "%00000799"), Attrs([Attr("c.layout","*[ : 8]"), -Attr("c.data","{} ptr"), Attr("c.type","void*")]), - Var("__libc_start_main_auxv",Imm(64)), Var("R3",Imm(64)), Both()), -Arg(Tid(1_946, "%0000079a"), Attrs([Attr("c.layout","[signed : 32]"), -Attr("c.data","Top:u32"), Attr("c.type","signed")]), - Var("__libc_start_main_result",Imm(32)), LOW(32,Var("R0",Imm(64))), -Out())]), Blks([Blk(Tid(607, "@__libc_start_main"), - Attrs([Attr("address","0x660")]), Phis([]), -Defs([Def(Tid(1_520, "%000005f0"), Attrs([Attr("address","0x660"), -Attr("insn","adrp x16, #65536")]), Var("R16",Imm(64)), Int(65536,64)), -Def(Tid(1_527, "%000005f7"), Attrs([Attr("address","0x664"), -Attr("insn","ldr x17, [x16, #0xf98]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(3992,64)),LittleEndian(),64)), -Def(Tid(1_533, "%000005fd"), Attrs([Attr("address","0x668"), -Attr("insn","add x16, x16, #0xf98")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(3992,64)))]), Jmps([Call(Tid(1_538, "%00000602"), - Attrs([Attr("address","0x66C"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), Sub(Tid(1_920, "@_fini"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x8CC")]), - "_fini", Args([Arg(Tid(1_947, "%0000079b"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("_fini_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(31, "@_fini"), - Attrs([Attr("address","0x8CC")]), Phis([]), Defs([Def(Tid(37, "%00000025"), - Attrs([Attr("address","0x8D0"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("#0",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(18446744073709551600,64))), -Def(Tid(43, "%0000002b"), Attrs([Attr("address","0x8D0"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("#0",Imm(64)),Var("R29",Imm(64)),LittleEndian(),64)), -Def(Tid(49, "%00000031"), Attrs([Attr("address","0x8D0"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("#0",Imm(64)),Int(8,64)),Var("R30",Imm(64)),LittleEndian(),64)), -Def(Tid(53, "%00000035"), Attrs([Attr("address","0x8D0"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("R31",Imm(64)), -Var("#0",Imm(64))), Def(Tid(59, "%0000003b"), Attrs([Attr("address","0x8D4"), -Attr("insn","mov x29, sp")]), Var("R29",Imm(64)), Var("R31",Imm(64))), -Def(Tid(66, "%00000042"), Attrs([Attr("address","0x8D8"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R29",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(71, "%00000047"), Attrs([Attr("address","0x8D8"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R30",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(75, "%0000004b"), Attrs([Attr("address","0x8D8"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(16,64)))]), Jmps([Call(Tid(80, "%00000050"), - Attrs([Attr("address","0x8DC"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), Sub(Tid(1_921, "@_init"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x628")]), - "_init", Args([Arg(Tid(1_948, "%0000079c"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("_init_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(1_698, "@_init"), - Attrs([Attr("address","0x628")]), Phis([]), -Defs([Def(Tid(1_704, "%000006a8"), Attrs([Attr("address","0x62C"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("#6",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(18446744073709551600,64))), -Def(Tid(1_710, "%000006ae"), Attrs([Attr("address","0x62C"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("#6",Imm(64)),Var("R29",Imm(64)),LittleEndian(),64)), -Def(Tid(1_716, "%000006b4"), Attrs([Attr("address","0x62C"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("#6",Imm(64)),Int(8,64)),Var("R30",Imm(64)),LittleEndian(),64)), -Def(Tid(1_720, "%000006b8"), Attrs([Attr("address","0x62C"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("R31",Imm(64)), -Var("#6",Imm(64))), Def(Tid(1_726, "%000006be"), - Attrs([Attr("address","0x630"), Attr("insn","mov x29, sp")]), - Var("R29",Imm(64)), Var("R31",Imm(64))), Def(Tid(1_731, "%000006c3"), - Attrs([Attr("address","0x634"), Attr("insn","bl #0x100")]), - Var("R30",Imm(64)), Int(1592,64))]), Jmps([Call(Tid(1_733, "%000006c5"), - Attrs([Attr("address","0x634"), Attr("insn","bl #0x100")]), Int(1,1), -(Direct(Tid(1_926, "@call_weak_fn")),Direct(Tid(1_735, "%000006c7"))))])), -Blk(Tid(1_735, "%000006c7"), Attrs([Attr("address","0x638")]), Phis([]), -Defs([Def(Tid(1_740, "%000006cc"), Attrs([Attr("address","0x638"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R29",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(1_745, "%000006d1"), Attrs([Attr("address","0x638"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R30",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(1_749, "%000006d5"), Attrs([Attr("address","0x638"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(16,64)))]), Jmps([Call(Tid(1_754, "%000006da"), - Attrs([Attr("address","0x63C"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), Sub(Tid(1_922, "@_start"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x700"), -Attr("entry-point","()")]), "_start", Args([Arg(Tid(1_949, "%0000079d"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("_start_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(544, "@_start"), - Attrs([Attr("address","0x700")]), Phis([]), Defs([Def(Tid(549, "%00000225"), - Attrs([Attr("address","0x704"), Attr("insn","mov x29, #0x0")]), - Var("R29",Imm(64)), Int(0,64)), Def(Tid(554, "%0000022a"), - Attrs([Attr("address","0x708"), Attr("insn","mov x30, #0x0")]), - Var("R30",Imm(64)), Int(0,64)), Def(Tid(560, "%00000230"), - Attrs([Attr("address","0x70C"), Attr("insn","mov x5, x0")]), - Var("R5",Imm(64)), Var("R0",Imm(64))), Def(Tid(567, "%00000237"), - Attrs([Attr("address","0x710"), Attr("insn","ldr x1, [sp]")]), - Var("R1",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(573, "%0000023d"), Attrs([Attr("address","0x714"), -Attr("insn","add x2, sp, #0x8")]), Var("R2",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(8,64))), Def(Tid(579, "%00000243"), - Attrs([Attr("address","0x718"), Attr("insn","mov x6, sp")]), - Var("R6",Imm(64)), Var("R31",Imm(64))), Def(Tid(584, "%00000248"), - Attrs([Attr("address","0x71C"), Attr("insn","adrp x0, #65536")]), - Var("R0",Imm(64)), Int(65536,64)), Def(Tid(591, "%0000024f"), - Attrs([Attr("address","0x720"), Attr("insn","ldr x0, [x0, #0xff0]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(4080,64)),LittleEndian(),64)), -Def(Tid(596, "%00000254"), Attrs([Attr("address","0x724"), -Attr("insn","mov x3, #0x0")]), Var("R3",Imm(64)), Int(0,64)), -Def(Tid(601, "%00000259"), Attrs([Attr("address","0x728"), -Attr("insn","mov x4, #0x0")]), Var("R4",Imm(64)), Int(0,64)), -Def(Tid(606, "%0000025e"), Attrs([Attr("address","0x72C"), -Attr("insn","bl #-0xcc")]), Var("R30",Imm(64)), Int(1840,64))]), -Jmps([Call(Tid(609, "%00000261"), Attrs([Attr("address","0x72C"), -Attr("insn","bl #-0xcc")]), Int(1,1), -(Direct(Tid(1_919, "@__libc_start_main")),Direct(Tid(611, "%00000263"))))])), -Blk(Tid(611, "%00000263"), Attrs([Attr("address","0x730")]), Phis([]), -Defs([Def(Tid(614, "%00000266"), Attrs([Attr("address","0x730"), -Attr("insn","bl #-0x90")]), Var("R30",Imm(64)), Int(1844,64))]), -Jmps([Call(Tid(617, "%00000269"), Attrs([Attr("address","0x730"), -Attr("insn","bl #-0x90")]), Int(1,1), -(Direct(Tid(1_925, "@abort")),Direct(Tid(1_923, "%00000783"))))])), -Blk(Tid(1_923, "%00000783"), Attrs([]), Phis([]), Defs([]), -Jmps([Call(Tid(1_924, "%00000784"), Attrs([]), Int(1,1), -(Direct(Tid(1_926, "@call_weak_fn")),))]))])), Sub(Tid(1_925, "@abort"), - Attrs([Attr("noreturn","()"), Attr("c.proto","void (*)(void)"), -Attr("address","0x6A0"), Attr("stub","()")]), "abort", Args([]), -Blks([Blk(Tid(615, "@abort"), Attrs([Attr("address","0x6A0")]), Phis([]), -Defs([Def(Tid(1_608, "%00000648"), Attrs([Attr("address","0x6A0"), -Attr("insn","adrp x16, #65536")]), Var("R16",Imm(64)), Int(65536,64)), -Def(Tid(1_615, "%0000064f"), Attrs([Attr("address","0x6A4"), -Attr("insn","ldr x17, [x16, #0xfb8]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(4024,64)),LittleEndian(),64)), -Def(Tid(1_621, "%00000655"), Attrs([Attr("address","0x6A8"), -Attr("insn","add x16, x16, #0xfb8")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(4024,64)))]), Jmps([Call(Tid(1_626, "%0000065a"), - Attrs([Attr("address","0x6AC"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), Sub(Tid(1_926, "@call_weak_fn"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x734")]), - "call_weak_fn", Args([Arg(Tid(1_950, "%0000079e"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("call_weak_fn_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(619, "@call_weak_fn"), - Attrs([Attr("address","0x734")]), Phis([]), Defs([Def(Tid(622, "%0000026e"), - Attrs([Attr("address","0x734"), Attr("insn","adrp x0, #65536")]), - Var("R0",Imm(64)), Int(65536,64)), Def(Tid(629, "%00000275"), - Attrs([Attr("address","0x738"), Attr("insn","ldr x0, [x0, #0xfe8]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(4072,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(635, "%0000027b"), Attrs([Attr("address","0x73C"), -Attr("insn","cbz x0, #0x8")]), EQ(Var("R0",Imm(64)),Int(0,64)), -Direct(Tid(633, "%00000279"))), Goto(Tid(1_927, "%00000787"), Attrs([]), - Int(1,1), Direct(Tid(1_310, "%0000051e")))])), Blk(Tid(633, "%00000279"), - Attrs([Attr("address","0x744")]), Phis([]), Defs([]), -Jmps([Call(Tid(641, "%00000281"), Attrs([Attr("address","0x744"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))])), -Blk(Tid(1_310, "%0000051e"), Attrs([Attr("address","0x740")]), Phis([]), -Defs([]), Jmps([Goto(Tid(1_313, "%00000521"), Attrs([Attr("address","0x740"), -Attr("insn","b #-0xb0")]), Int(1,1), -Direct(Tid(1_311, "@__gmon_start__")))])), Blk(Tid(1_311, "@__gmon_start__"), - Attrs([Attr("address","0x690")]), Phis([]), -Defs([Def(Tid(1_586, "%00000632"), Attrs([Attr("address","0x690"), -Attr("insn","adrp x16, #65536")]), Var("R16",Imm(64)), Int(65536,64)), -Def(Tid(1_593, "%00000639"), Attrs([Attr("address","0x694"), -Attr("insn","ldr x17, [x16, #0xfb0]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(4016,64)),LittleEndian(),64)), -Def(Tid(1_599, "%0000063f"), Attrs([Attr("address","0x698"), -Attr("insn","add x16, x16, #0xfb0")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(4016,64)))]), Jmps([Call(Tid(1_604, "%00000644"), - Attrs([Attr("address","0x69C"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), -Sub(Tid(1_928, "@deregister_tm_clones"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x750")]), - "deregister_tm_clones", Args([Arg(Tid(1_951, "%0000079f"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("deregister_tm_clones_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(647, "@deregister_tm_clones"), - Attrs([Attr("address","0x750")]), Phis([]), Defs([Def(Tid(650, "%0000028a"), - Attrs([Attr("address","0x750"), Attr("insn","adrp x0, #69632")]), - Var("R0",Imm(64)), Int(69632,64)), Def(Tid(656, "%00000290"), - Attrs([Attr("address","0x754"), Attr("insn","add x0, x0, #0x10")]), - Var("R0",Imm(64)), PLUS(Var("R0",Imm(64)),Int(16,64))), -Def(Tid(661, "%00000295"), Attrs([Attr("address","0x758"), -Attr("insn","adrp x1, #69632")]), Var("R1",Imm(64)), Int(69632,64)), -Def(Tid(667, "%0000029b"), Attrs([Attr("address","0x75C"), -Attr("insn","add x1, x1, #0x10")]), Var("R1",Imm(64)), -PLUS(Var("R1",Imm(64)),Int(16,64))), Def(Tid(673, "%000002a1"), - Attrs([Attr("address","0x760"), Attr("insn","cmp x1, x0")]), - Var("#1",Imm(64)), NOT(Var("R0",Imm(64)))), Def(Tid(678, "%000002a6"), - Attrs([Attr("address","0x760"), Attr("insn","cmp x1, x0")]), - Var("#2",Imm(64)), PLUS(Var("R1",Imm(64)),NOT(Var("R0",Imm(64))))), -Def(Tid(684, "%000002ac"), Attrs([Attr("address","0x760"), -Attr("insn","cmp x1, x0")]), Var("VF",Imm(1)), -NEQ(SIGNED(65,PLUS(Var("#2",Imm(64)),Int(1,64))),PLUS(PLUS(SIGNED(65,Var("R1",Imm(64))),SIGNED(65,Var("#1",Imm(64)))),Int(1,65)))), -Def(Tid(690, "%000002b2"), Attrs([Attr("address","0x760"), -Attr("insn","cmp x1, x0")]), Var("CF",Imm(1)), -NEQ(UNSIGNED(65,PLUS(Var("#2",Imm(64)),Int(1,64))),PLUS(PLUS(UNSIGNED(65,Var("R1",Imm(64))),UNSIGNED(65,Var("#1",Imm(64)))),Int(1,65)))), -Def(Tid(694, "%000002b6"), Attrs([Attr("address","0x760"), -Attr("insn","cmp x1, x0")]), Var("ZF",Imm(1)), -EQ(PLUS(Var("#2",Imm(64)),Int(1,64)),Int(0,64))), Def(Tid(698, "%000002ba"), - Attrs([Attr("address","0x760"), Attr("insn","cmp x1, x0")]), - Var("NF",Imm(1)), Extract(63,63,PLUS(Var("#2",Imm(64)),Int(1,64))))]), -Jmps([Goto(Tid(704, "%000002c0"), Attrs([Attr("address","0x764"), -Attr("insn","b.eq #0x18")]), EQ(Var("ZF",Imm(1)),Int(1,1)), -Direct(Tid(702, "%000002be"))), Goto(Tid(1_929, "%00000789"), Attrs([]), - Int(1,1), Direct(Tid(1_280, "%00000500")))])), Blk(Tid(1_280, "%00000500"), - Attrs([Attr("address","0x768")]), Phis([]), -Defs([Def(Tid(1_283, "%00000503"), Attrs([Attr("address","0x768"), -Attr("insn","adrp x1, #65536")]), Var("R1",Imm(64)), Int(65536,64)), -Def(Tid(1_290, "%0000050a"), Attrs([Attr("address","0x76C"), -Attr("insn","ldr x1, [x1, #0xfd8]")]), Var("R1",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R1",Imm(64)),Int(4056,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(1_295, "%0000050f"), Attrs([Attr("address","0x770"), -Attr("insn","cbz x1, #0xc")]), EQ(Var("R1",Imm(64)),Int(0,64)), -Direct(Tid(702, "%000002be"))), Goto(Tid(1_930, "%0000078a"), Attrs([]), - Int(1,1), Direct(Tid(1_299, "%00000513")))])), Blk(Tid(702, "%000002be"), - Attrs([Attr("address","0x77C")]), Phis([]), Defs([]), -Jmps([Call(Tid(710, "%000002c6"), Attrs([Attr("address","0x77C"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))])), -Blk(Tid(1_299, "%00000513"), Attrs([Attr("address","0x774")]), Phis([]), -Defs([Def(Tid(1_303, "%00000517"), Attrs([Attr("address","0x774"), -Attr("insn","mov x16, x1")]), Var("R16",Imm(64)), Var("R1",Imm(64)))]), -Jmps([Call(Tid(1_308, "%0000051c"), Attrs([Attr("address","0x778"), -Attr("insn","br x16")]), Int(1,1), (Indirect(Var("R16",Imm(64))),))]))])), -Sub(Tid(1_931, "@frame_dummy"), Attrs([Attr("c.proto","signed (*)(void)"), -Attr("address","0x810")]), "frame_dummy", Args([Arg(Tid(1_952, "%000007a0"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("frame_dummy_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(862, "@frame_dummy"), - Attrs([Attr("address","0x810")]), Phis([]), Defs([]), -Jmps([Call(Tid(864, "%00000360"), Attrs([Attr("address","0x810"), -Attr("insn","b #-0x90")]), Int(1,1), -(Direct(Tid(1_936, "@register_tm_clones")),))]))])), Sub(Tid(1_932, "@free"), - Attrs([Attr("c.proto","void (*)(void* ptr)"), Attr("address","0x6B0"), -Attr("stub","()")]), "free", Args([Arg(Tid(1_953, "%000007a1"), - Attrs([Attr("c.layout","*[ : 8]"), Attr("c.data","{} ptr"), -Attr("c.type","void*")]), Var("free_ptr",Imm(64)), Var("R0",Imm(64)), -Both())]), Blks([Blk(Tid(1_147, "@free"), Attrs([Attr("address","0x6B0")]), - Phis([]), Defs([Def(Tid(1_630, "%0000065e"), Attrs([Attr("address","0x6B0"), -Attr("insn","adrp x16, #65536")]), Var("R16",Imm(64)), Int(65536,64)), -Def(Tid(1_637, "%00000665"), Attrs([Attr("address","0x6B4"), -Attr("insn","ldr x17, [x16, #0xfc0]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(4032,64)),LittleEndian(),64)), -Def(Tid(1_643, "%0000066b"), Attrs([Attr("address","0x6B8"), -Attr("insn","add x16, x16, #0xfc0")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(4032,64)))]), Jmps([Call(Tid(1_648, "%00000670"), - Attrs([Attr("address","0x6BC"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), Sub(Tid(1_933, "@main"), - Attrs([Attr("c.proto","signed (*)(signed argc, const char** argv)"), -Attr("address","0x814")]), "main", Args([Arg(Tid(1_954, "%000007a2"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("main_argc",Imm(32)), -LOW(32,Var("R0",Imm(64))), In()), Arg(Tid(1_955, "%000007a3"), - Attrs([Attr("c.layout","**[char : 8]"), Attr("c.data","Top:u8 ptr ptr"), -Attr("c.type"," const char**")]), Var("main_argv",Imm(64)), -Var("R1",Imm(64)), Both()), Arg(Tid(1_956, "%000007a4"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("main_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(866, "@main"), - Attrs([Attr("address","0x814")]), Phis([]), Defs([Def(Tid(870, "%00000366"), - Attrs([Attr("address","0x814"), -Attr("insn","stp x29, x30, [sp, #-0x40]!")]), Var("#4",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(18446744073709551552,64))), -Def(Tid(876, "%0000036c"), Attrs([Attr("address","0x814"), -Attr("insn","stp x29, x30, [sp, #-0x40]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("#4",Imm(64)),Var("R29",Imm(64)),LittleEndian(),64)), -Def(Tid(882, "%00000372"), Attrs([Attr("address","0x814"), -Attr("insn","stp x29, x30, [sp, #-0x40]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("#4",Imm(64)),Int(8,64)),Var("R30",Imm(64)),LittleEndian(),64)), -Def(Tid(886, "%00000376"), Attrs([Attr("address","0x814"), -Attr("insn","stp x29, x30, [sp, #-0x40]!")]), Var("R31",Imm(64)), -Var("#4",Imm(64))), Def(Tid(892, "%0000037c"), - Attrs([Attr("address","0x818"), Attr("insn","mov x29, sp")]), - Var("R29",Imm(64)), Var("R31",Imm(64))), Def(Tid(897, "%00000381"), - Attrs([Attr("address","0x81C"), Attr("insn","mov x0, #0x1")]), - Var("R0",Imm(64)), Int(1,64)), Def(Tid(902, "%00000386"), - Attrs([Attr("address","0x820"), Attr("insn","bl #-0x1a0")]), - Var("R30",Imm(64)), Int(2084,64))]), Jmps([Call(Tid(905, "%00000389"), - Attrs([Attr("address","0x820"), Attr("insn","bl #-0x1a0")]), Int(1,1), -(Direct(Tid(1_934, "@malloc")),Direct(Tid(907, "%0000038b"))))])), -Blk(Tid(907, "%0000038b"), Attrs([Attr("address","0x824")]), Phis([]), -Defs([Def(Tid(913, "%00000391"), Attrs([Attr("address","0x824"), -Attr("insn","str x0, [sp, #0x28]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(40,64)),Var("R0",Imm(64)),LittleEndian(),64)), -Def(Tid(918, "%00000396"), Attrs([Attr("address","0x828"), -Attr("insn","mov w0, #0xb")]), Var("R0",Imm(64)), Int(11,64)), -Def(Tid(926, "%0000039e"), Attrs([Attr("address","0x82C"), -Attr("insn","str w0, [sp, #0x1c]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(28,64)),Extract(31,0,Var("R0",Imm(64))),LittleEndian(),32)), -Def(Tid(931, "%000003a3"), Attrs([Attr("address","0x830"), -Attr("insn","mov x0, #0x4")]), Var("R0",Imm(64)), Int(4,64)), -Def(Tid(936, "%000003a8"), Attrs([Attr("address","0x834"), -Attr("insn","bl #-0x1b4")]), Var("R30",Imm(64)), Int(2104,64))]), -Jmps([Call(Tid(938, "%000003aa"), Attrs([Attr("address","0x834"), -Attr("insn","bl #-0x1b4")]), Int(1,1), -(Direct(Tid(1_934, "@malloc")),Direct(Tid(940, "%000003ac"))))])), -Blk(Tid(940, "%000003ac"), Attrs([Attr("address","0x838")]), Phis([]), -Defs([Def(Tid(946, "%000003b2"), Attrs([Attr("address","0x838"), -Attr("insn","str x0, [sp, #0x30]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(48,64)),Var("R0",Imm(64)),LittleEndian(),64)), -Def(Tid(951, "%000003b7"), Attrs([Attr("address","0x83C"), -Attr("insn","mov w0, #0xa")]), Var("R0",Imm(64)), Int(10,64)), -Def(Tid(959, "%000003bf"), Attrs([Attr("address","0x840"), -Attr("insn","str w0, [sp, #0x20]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(32,64)),Extract(31,0,Var("R0",Imm(64))),LittleEndian(),32)), -Def(Tid(964, "%000003c4"), Attrs([Attr("address","0x844"), -Attr("insn","mov x0, #0x4")]), Var("R0",Imm(64)), Int(4,64)), -Def(Tid(969, "%000003c9"), Attrs([Attr("address","0x848"), -Attr("insn","bl #-0x1c8")]), Var("R30",Imm(64)), Int(2124,64))]), -Jmps([Call(Tid(971, "%000003cb"), Attrs([Attr("address","0x848"), -Attr("insn","bl #-0x1c8")]), Int(1,1), -(Direct(Tid(1_934, "@malloc")),Direct(Tid(973, "%000003cd"))))])), -Blk(Tid(973, "%000003cd"), Attrs([Attr("address","0x84C")]), Phis([]), -Defs([Def(Tid(979, "%000003d3"), Attrs([Attr("address","0x84C"), -Attr("insn","str x0, [sp, #0x38]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(56,64)),Var("R0",Imm(64)),LittleEndian(),64)), -Def(Tid(984, "%000003d8"), Attrs([Attr("address","0x850"), -Attr("insn","mov w0, #0x9")]), Var("R0",Imm(64)), Int(9,64)), -Def(Tid(992, "%000003e0"), Attrs([Attr("address","0x854"), -Attr("insn","str w0, [sp, #0x24]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(36,64)),Extract(31,0,Var("R0",Imm(64))),LittleEndian(),32)), -Def(Tid(999, "%000003e7"), Attrs([Attr("address","0x858"), -Attr("insn","ldr x0, [sp, #0x28]")]), Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(40,64)),LittleEndian(),64)), -Def(Tid(1_004, "%000003ec"), Attrs([Attr("address","0x85C"), -Attr("insn","mov w1, #0x41")]), Var("R1",Imm(64)), Int(65,64)), -Def(Tid(1_012, "%000003f4"), Attrs([Attr("address","0x860"), -Attr("insn","strb w1, [x0]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("R0",Imm(64)),Extract(7,0,Var("R1",Imm(64))),LittleEndian(),8)), -Def(Tid(1_019, "%000003fb"), Attrs([Attr("address","0x864"), -Attr("insn","ldr x0, [sp, #0x30]")]), Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(48,64)),LittleEndian(),64)), -Def(Tid(1_024, "%00000400"), Attrs([Attr("address","0x868"), -Attr("insn","mov w1, #0x2a")]), Var("R1",Imm(64)), Int(42,64)), -Def(Tid(1_032, "%00000408"), Attrs([Attr("address","0x86C"), -Attr("insn","str w1, [x0]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("R0",Imm(64)),Extract(31,0,Var("R1",Imm(64))),LittleEndian(),32)), -Def(Tid(1_039, "%0000040f"), Attrs([Attr("address","0x870"), -Attr("insn","ldr x0, [sp, #0x28]")]), Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(40,64)),LittleEndian(),64)), -Def(Tid(1_046, "%00000416"), Attrs([Attr("address","0x874"), -Attr("insn","ldrb w0, [x0]")]), Var("R0",Imm(64)), -UNSIGNED(64,Load(Var("mem",Mem(64,8)),Var("R0",Imm(64)),LittleEndian(),8))), -Def(Tid(1_052, "%0000041c"), Attrs([Attr("address","0x878"), -Attr("insn","mov w1, w0")]), Var("R1",Imm(64)), -UNSIGNED(64,Extract(31,0,Var("R0",Imm(64))))), Def(Tid(1_057, "%00000421"), - Attrs([Attr("address","0x87C"), Attr("insn","adrp x0, #0")]), - Var("R0",Imm(64)), Int(0,64)), Def(Tid(1_063, "%00000427"), - Attrs([Attr("address","0x880"), Attr("insn","add x0, x0, #0x8e8")]), - Var("R0",Imm(64)), PLUS(Var("R0",Imm(64)),Int(2280,64))), -Def(Tid(1_068, "%0000042c"), Attrs([Attr("address","0x884"), -Attr("insn","bl #-0x1c4")]), Var("R30",Imm(64)), Int(2184,64))]), -Jmps([Call(Tid(1_071, "%0000042f"), Attrs([Attr("address","0x884"), -Attr("insn","bl #-0x1c4")]), Int(1,1), -(Direct(Tid(1_935, "@printf")),Direct(Tid(1_073, "%00000431"))))])), -Blk(Tid(1_073, "%00000431"), Attrs([Attr("address","0x888")]), Phis([]), -Defs([Def(Tid(1_078, "%00000436"), Attrs([Attr("address","0x888"), -Attr("insn","ldr x0, [sp, #0x30]")]), Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(48,64)),LittleEndian(),64)), -Def(Tid(1_085, "%0000043d"), Attrs([Attr("address","0x88C"), -Attr("insn","ldr w0, [x0]")]), Var("R0",Imm(64)), -UNSIGNED(64,Load(Var("mem",Mem(64,8)),Var("R0",Imm(64)),LittleEndian(),32))), -Def(Tid(1_091, "%00000443"), Attrs([Attr("address","0x890"), -Attr("insn","mov w1, w0")]), Var("R1",Imm(64)), -UNSIGNED(64,Extract(31,0,Var("R0",Imm(64))))), Def(Tid(1_096, "%00000448"), - Attrs([Attr("address","0x894"), Attr("insn","adrp x0, #0")]), - Var("R0",Imm(64)), Int(0,64)), Def(Tid(1_102, "%0000044e"), - Attrs([Attr("address","0x898"), Attr("insn","add x0, x0, #0x900")]), - Var("R0",Imm(64)), PLUS(Var("R0",Imm(64)),Int(2304,64))), -Def(Tid(1_107, "%00000453"), Attrs([Attr("address","0x89C"), -Attr("insn","bl #-0x1dc")]), Var("R30",Imm(64)), Int(2208,64))]), -Jmps([Call(Tid(1_109, "%00000455"), Attrs([Attr("address","0x89C"), -Attr("insn","bl #-0x1dc")]), Int(1,1), -(Direct(Tid(1_935, "@printf")),Direct(Tid(1_111, "%00000457"))))])), -Blk(Tid(1_111, "%00000457"), Attrs([Attr("address","0x8A0")]), Phis([]), -Defs([Def(Tid(1_116, "%0000045c"), Attrs([Attr("address","0x8A0"), -Attr("insn","ldr w1, [sp, #0x20]")]), Var("R1",Imm(64)), -UNSIGNED(64,Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(32,64)),LittleEndian(),32))), -Def(Tid(1_121, "%00000461"), Attrs([Attr("address","0x8A4"), -Attr("insn","adrp x0, #0")]), Var("R0",Imm(64)), Int(0,64)), -Def(Tid(1_127, "%00000467"), Attrs([Attr("address","0x8A8"), -Attr("insn","add x0, x0, #0x910")]), Var("R0",Imm(64)), -PLUS(Var("R0",Imm(64)),Int(2320,64))), Def(Tid(1_132, "%0000046c"), - Attrs([Attr("address","0x8AC"), Attr("insn","bl #-0x1ec")]), - Var("R30",Imm(64)), Int(2224,64))]), Jmps([Call(Tid(1_134, "%0000046e"), - Attrs([Attr("address","0x8AC"), Attr("insn","bl #-0x1ec")]), Int(1,1), -(Direct(Tid(1_935, "@printf")),Direct(Tid(1_136, "%00000470"))))])), -Blk(Tid(1_136, "%00000470"), Attrs([Attr("address","0x8B0")]), Phis([]), -Defs([Def(Tid(1_141, "%00000475"), Attrs([Attr("address","0x8B0"), -Attr("insn","ldr x0, [sp, #0x28]")]), Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(40,64)),LittleEndian(),64)), -Def(Tid(1_146, "%0000047a"), Attrs([Attr("address","0x8B4"), -Attr("insn","bl #-0x204")]), Var("R30",Imm(64)), Int(2232,64))]), -Jmps([Call(Tid(1_149, "%0000047d"), Attrs([Attr("address","0x8B4"), -Attr("insn","bl #-0x204")]), Int(1,1), -(Direct(Tid(1_932, "@free")),Direct(Tid(1_151, "%0000047f"))))])), -Blk(Tid(1_151, "%0000047f"), Attrs([Attr("address","0x8B8")]), Phis([]), -Defs([Def(Tid(1_156, "%00000484"), Attrs([Attr("address","0x8B8"), -Attr("insn","ldr x0, [sp, #0x30]")]), Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(48,64)),LittleEndian(),64)), -Def(Tid(1_161, "%00000489"), Attrs([Attr("address","0x8BC"), -Attr("insn","bl #-0x20c")]), Var("R30",Imm(64)), Int(2240,64))]), -Jmps([Call(Tid(1_163, "%0000048b"), Attrs([Attr("address","0x8BC"), -Attr("insn","bl #-0x20c")]), Int(1,1), -(Direct(Tid(1_932, "@free")),Direct(Tid(1_165, "%0000048d"))))])), -Blk(Tid(1_165, "%0000048d"), Attrs([Attr("address","0x8C0")]), Phis([]), -Defs([Def(Tid(1_168, "%00000490"), Attrs([Attr("address","0x8C0"), -Attr("insn","mov w0, #0x0")]), Var("R0",Imm(64)), Int(0,64)), -Def(Tid(1_175, "%00000497"), Attrs([Attr("address","0x8C4"), -Attr("insn","ldp x29, x30, [sp], #0x40")]), Var("R29",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(1_180, "%0000049c"), Attrs([Attr("address","0x8C4"), -Attr("insn","ldp x29, x30, [sp], #0x40")]), Var("R30",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(1_184, "%000004a0"), Attrs([Attr("address","0x8C4"), -Attr("insn","ldp x29, x30, [sp], #0x40")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(64,64)))]), Jmps([Call(Tid(1_189, "%000004a5"), - Attrs([Attr("address","0x8C8"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), Sub(Tid(1_934, "@malloc"), - Attrs([Attr("c.proto","void* (*)(unsigned long size)"), -Attr("address","0x680"), Attr("malloc","()"), Attr("stub","()")]), "malloc", - Args([Arg(Tid(1_957, "%000007a5"), Attrs([Attr("alloc-size","()"), -Attr("c.layout","[unsigned long : 64]"), Attr("c.data","Top:u64"), -Attr("c.type","unsigned long")]), Var("malloc_size",Imm(64)), -Var("R0",Imm(64)), In()), Arg(Tid(1_958, "%000007a6"), - Attrs([Attr("warn-unused","()"), Attr("c.layout","*[ : 8]"), -Attr("c.data","{} ptr"), Attr("c.type","void*")]), - Var("malloc_result",Imm(64)), Var("R0",Imm(64)), Out())]), -Blks([Blk(Tid(903, "@malloc"), Attrs([Attr("address","0x680")]), Phis([]), -Defs([Def(Tid(1_564, "%0000061c"), Attrs([Attr("address","0x680"), -Attr("insn","adrp x16, #65536")]), Var("R16",Imm(64)), Int(65536,64)), -Def(Tid(1_571, "%00000623"), Attrs([Attr("address","0x684"), -Attr("insn","ldr x17, [x16, #0xfa8]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(4008,64)),LittleEndian(),64)), -Def(Tid(1_577, "%00000629"), Attrs([Attr("address","0x688"), -Attr("insn","add x16, x16, #0xfa8")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(4008,64)))]), Jmps([Call(Tid(1_582, "%0000062e"), - Attrs([Attr("address","0x68C"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), Sub(Tid(1_935, "@printf"), - Attrs([Attr("c.proto","signed (*)( const char restrict * format, ...)"), -Attr("address","0x6C0"), Attr("stub","()")]), "printf", - Args([Arg(Tid(1_959, "%000007a7"), Attrs([Attr("format","\"printf\""), -Attr("c.layout","*[char : 8]"), Attr("c.data","Top:u8 ptr"), -Attr("c.type"," const char restrict *")]), Var("printf_format",Imm(64)), -Var("R0",Imm(64)), In()), Arg(Tid(1_960, "%000007a8"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("printf_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(1_069, "@printf"), - Attrs([Attr("address","0x6C0")]), Phis([]), -Defs([Def(Tid(1_652, "%00000674"), Attrs([Attr("address","0x6C0"), -Attr("insn","adrp x16, #65536")]), Var("R16",Imm(64)), Int(65536,64)), -Def(Tid(1_659, "%0000067b"), Attrs([Attr("address","0x6C4"), -Attr("insn","ldr x17, [x16, #0xfc8]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(4040,64)),LittleEndian(),64)), -Def(Tid(1_665, "%00000681"), Attrs([Attr("address","0x6C8"), -Attr("insn","add x16, x16, #0xfc8")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(4040,64)))]), Jmps([Call(Tid(1_670, "%00000686"), - Attrs([Attr("address","0x6CC"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), -Sub(Tid(1_936, "@register_tm_clones"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x780")]), - "register_tm_clones", Args([Arg(Tid(1_961, "%000007a9"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("register_tm_clones_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(712, "@register_tm_clones"), Attrs([Attr("address","0x780")]), - Phis([]), Defs([Def(Tid(715, "%000002cb"), Attrs([Attr("address","0x780"), -Attr("insn","adrp x0, #69632")]), Var("R0",Imm(64)), Int(69632,64)), -Def(Tid(721, "%000002d1"), Attrs([Attr("address","0x784"), -Attr("insn","add x0, x0, #0x10")]), Var("R0",Imm(64)), -PLUS(Var("R0",Imm(64)),Int(16,64))), Def(Tid(726, "%000002d6"), - Attrs([Attr("address","0x788"), Attr("insn","adrp x1, #69632")]), - Var("R1",Imm(64)), Int(69632,64)), Def(Tid(732, "%000002dc"), - Attrs([Attr("address","0x78C"), Attr("insn","add x1, x1, #0x10")]), - Var("R1",Imm(64)), PLUS(Var("R1",Imm(64)),Int(16,64))), -Def(Tid(739, "%000002e3"), Attrs([Attr("address","0x790"), -Attr("insn","sub x1, x1, x0")]), Var("R1",Imm(64)), -PLUS(PLUS(Var("R1",Imm(64)),NOT(Var("R0",Imm(64)))),Int(1,64))), -Def(Tid(745, "%000002e9"), Attrs([Attr("address","0x794"), -Attr("insn","lsr x2, x1, #63")]), Var("R2",Imm(64)), -Concat(Int(0,63),Extract(63,63,Var("R1",Imm(64))))), -Def(Tid(752, "%000002f0"), Attrs([Attr("address","0x798"), -Attr("insn","add x1, x2, x1, asr #3")]), Var("R1",Imm(64)), -PLUS(Var("R2",Imm(64)),ARSHIFT(Var("R1",Imm(64)),Int(3,3)))), -Def(Tid(758, "%000002f6"), Attrs([Attr("address","0x79C"), -Attr("insn","asr x1, x1, #1")]), Var("R1",Imm(64)), -SIGNED(64,Extract(63,1,Var("R1",Imm(64)))))]), -Jmps([Goto(Tid(764, "%000002fc"), Attrs([Attr("address","0x7A0"), -Attr("insn","cbz x1, #0x18")]), EQ(Var("R1",Imm(64)),Int(0,64)), -Direct(Tid(762, "%000002fa"))), Goto(Tid(1_937, "%00000791"), Attrs([]), - Int(1,1), Direct(Tid(1_250, "%000004e2")))])), Blk(Tid(1_250, "%000004e2"), - Attrs([Attr("address","0x7A4")]), Phis([]), -Defs([Def(Tid(1_253, "%000004e5"), Attrs([Attr("address","0x7A4"), -Attr("insn","adrp x2, #65536")]), Var("R2",Imm(64)), Int(65536,64)), -Def(Tid(1_260, "%000004ec"), Attrs([Attr("address","0x7A8"), -Attr("insn","ldr x2, [x2, #0xff8]")]), Var("R2",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R2",Imm(64)),Int(4088,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(1_265, "%000004f1"), Attrs([Attr("address","0x7AC"), -Attr("insn","cbz x2, #0xc")]), EQ(Var("R2",Imm(64)),Int(0,64)), -Direct(Tid(762, "%000002fa"))), Goto(Tid(1_938, "%00000792"), Attrs([]), - Int(1,1), Direct(Tid(1_269, "%000004f5")))])), Blk(Tid(762, "%000002fa"), - Attrs([Attr("address","0x7B8")]), Phis([]), Defs([]), -Jmps([Call(Tid(770, "%00000302"), Attrs([Attr("address","0x7B8"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))])), -Blk(Tid(1_269, "%000004f5"), Attrs([Attr("address","0x7B0")]), Phis([]), -Defs([Def(Tid(1_273, "%000004f9"), Attrs([Attr("address","0x7B0"), -Attr("insn","mov x16, x2")]), Var("R16",Imm(64)), Var("R2",Imm(64)))]), -Jmps([Call(Tid(1_278, "%000004fe"), Attrs([Attr("address","0x7B4"), -Attr("insn","br x16")]), Int(1,1), -(Indirect(Var("R16",Imm(64))),))]))]))]))) \ No newline at end of file diff --git a/src/test/correct/malloc_with_local2/gcc/malloc_with_local2.bir b/src/test/correct/malloc_with_local2/gcc/malloc_with_local2.bir deleted file mode 100644 index 2a015f2c7..000000000 --- a/src/test/correct/malloc_with_local2/gcc/malloc_with_local2.bir +++ /dev/null @@ -1,326 +0,0 @@ -00000793: program -0000077a: sub __cxa_finalize(__cxa_finalize_result) -00000794: __cxa_finalize_result :: out u32 = low:32[R0] - -000004de: -00000606: R16 := 0x10000 -0000060d: R17 := mem[R16 + 0xFA0, el]:u64 -00000613: R16 := R16 + 0xFA0 -00000618: call R17 with noreturn - -0000077b: sub __do_global_dtors_aux(__do_global_dtors_aux_result) -00000795: __do_global_dtors_aux_result :: out u32 = low:32[R0] - -00000306: -0000030a: #3 := R31 - 0x20 -00000310: mem := mem with [#3, el]:u64 <- R29 -00000316: mem := mem with [#3 + 8, el]:u64 <- R30 -0000031a: R31 := #3 -00000320: R29 := R31 -00000328: mem := mem with [R31 + 0x10, el]:u64 <- R19 -0000032d: R19 := 0x11000 -00000334: R0 := pad:64[mem[R19 + 0x10]] -0000033b: when 31:0[R0] <> 0 goto %00000339 -0000077c: goto %000004a7 - -000004a7: -000004aa: R0 := 0x10000 -000004b1: R0 := mem[R0 + 0xFE0, el]:u64 -000004b7: when R0 = 0 goto %000004b5 -0000077d: goto %000004ce - -000004ce: -000004d1: R0 := 0x11000 -000004d8: R0 := mem[R0 + 8, el]:u64 -000004dd: R30 := 0x7F0 -000004e0: call @__cxa_finalize with return %000004b5 - -000004b5: -000004bd: R30 := 0x7F4 -000004bf: call @deregister_tm_clones with return %000004c1 - -000004c1: -000004c4: R0 := 1 -000004cc: mem := mem with [R19 + 0x10] <- 7:0[R0] -0000077e: goto %00000339 - -00000339: -00000343: R19 := mem[R31 + 0x10, el]:u64 -0000034a: R29 := mem[R31, el]:u64 -0000034f: R30 := mem[R31 + 8, el]:u64 -00000353: R31 := R31 + 0x20 -00000358: call R30 with noreturn - -0000077f: sub __libc_start_main(__libc_start_main_main, __libc_start_main_arg2, __libc_start_main_arg3, __libc_start_main_auxv, __libc_start_main_result) -00000796: __libc_start_main_main :: in u64 = R0 -00000797: __libc_start_main_arg2 :: in u32 = low:32[R1] -00000798: __libc_start_main_arg3 :: in out u64 = R2 -00000799: __libc_start_main_auxv :: in out u64 = R3 -0000079a: __libc_start_main_result :: out u32 = low:32[R0] - -0000025f: -000005f0: R16 := 0x10000 -000005f7: R17 := mem[R16 + 0xF98, el]:u64 -000005fd: R16 := R16 + 0xF98 -00000602: call R17 with noreturn - -00000780: sub _fini(_fini_result) -0000079b: _fini_result :: out u32 = low:32[R0] - -0000001f: -00000025: #0 := R31 - 0x10 -0000002b: mem := mem with [#0, el]:u64 <- R29 -00000031: mem := mem with [#0 + 8, el]:u64 <- R30 -00000035: R31 := #0 -0000003b: R29 := R31 -00000042: R29 := mem[R31, el]:u64 -00000047: R30 := mem[R31 + 8, el]:u64 -0000004b: R31 := R31 + 0x10 -00000050: call R30 with noreturn - -00000781: sub _init(_init_result) -0000079c: _init_result :: out u32 = low:32[R0] - -000006a2: -000006a8: #6 := R31 - 0x10 -000006ae: mem := mem with [#6, el]:u64 <- R29 -000006b4: mem := mem with [#6 + 8, el]:u64 <- R30 -000006b8: R31 := #6 -000006be: R29 := R31 -000006c3: R30 := 0x638 -000006c5: call @call_weak_fn with return %000006c7 - -000006c7: -000006cc: R29 := mem[R31, el]:u64 -000006d1: R30 := mem[R31 + 8, el]:u64 -000006d5: R31 := R31 + 0x10 -000006da: call R30 with noreturn - -00000782: sub _start(_start_result) -0000079d: _start_result :: out u32 = low:32[R0] - -00000220: -00000225: R29 := 0 -0000022a: R30 := 0 -00000230: R5 := R0 -00000237: R1 := mem[R31, el]:u64 -0000023d: R2 := R31 + 8 -00000243: R6 := R31 -00000248: R0 := 0x10000 -0000024f: R0 := mem[R0 + 0xFF0, el]:u64 -00000254: R3 := 0 -00000259: R4 := 0 -0000025e: R30 := 0x730 -00000261: call @__libc_start_main with return %00000263 - -00000263: -00000266: R30 := 0x734 -00000269: call @abort with return %00000783 - -00000783: -00000784: call @call_weak_fn with noreturn - -00000785: sub abort() - - -00000267: -00000648: R16 := 0x10000 -0000064f: R17 := mem[R16 + 0xFB8, el]:u64 -00000655: R16 := R16 + 0xFB8 -0000065a: call R17 with noreturn - -00000786: sub call_weak_fn(call_weak_fn_result) -0000079e: call_weak_fn_result :: out u32 = low:32[R0] - -0000026b: -0000026e: R0 := 0x10000 -00000275: R0 := mem[R0 + 0xFE8, el]:u64 -0000027b: when R0 = 0 goto %00000279 -00000787: goto %0000051e - -00000279: -00000281: call R30 with noreturn - -0000051e: -00000521: goto @__gmon_start__ - -0000051f: -00000632: R16 := 0x10000 -00000639: R17 := mem[R16 + 0xFB0, el]:u64 -0000063f: R16 := R16 + 0xFB0 -00000644: call R17 with noreturn - -00000788: sub deregister_tm_clones(deregister_tm_clones_result) -0000079f: deregister_tm_clones_result :: out u32 = low:32[R0] - -00000287: -0000028a: R0 := 0x11000 -00000290: R0 := R0 + 0x10 -00000295: R1 := 0x11000 -0000029b: R1 := R1 + 0x10 -000002a1: #1 := ~R0 -000002a6: #2 := R1 + ~R0 -000002ac: VF := extend:65[#2 + 1] <> extend:65[R1] + extend:65[#1] + 1 -000002b2: CF := pad:65[#2 + 1] <> pad:65[R1] + pad:65[#1] + 1 -000002b6: ZF := #2 + 1 = 0 -000002ba: NF := 63:63[#2 + 1] -000002c0: when ZF goto %000002be -00000789: goto %00000500 - -00000500: -00000503: R1 := 0x10000 -0000050a: R1 := mem[R1 + 0xFD8, el]:u64 -0000050f: when R1 = 0 goto %000002be -0000078a: goto %00000513 - -000002be: -000002c6: call R30 with noreturn - -00000513: -00000517: R16 := R1 -0000051c: call R16 with noreturn - -0000078b: sub frame_dummy(frame_dummy_result) -000007a0: frame_dummy_result :: out u32 = low:32[R0] - -0000035e: -00000360: call @register_tm_clones with noreturn - -0000078c: sub free(free_ptr) -000007a1: free_ptr :: in out u64 = R0 - -0000047b: -0000065e: R16 := 0x10000 -00000665: R17 := mem[R16 + 0xFC0, el]:u64 -0000066b: R16 := R16 + 0xFC0 -00000670: call R17 with noreturn - -0000078d: sub main(main_argc, main_argv, main_result) -000007a2: main_argc :: in u32 = low:32[R0] -000007a3: main_argv :: in out u64 = R1 -000007a4: main_result :: out u32 = low:32[R0] - -00000362: -00000366: #4 := R31 - 0x40 -0000036c: mem := mem with [#4, el]:u64 <- R29 -00000372: mem := mem with [#4 + 8, el]:u64 <- R30 -00000376: R31 := #4 -0000037c: R29 := R31 -00000381: R0 := 1 -00000386: R30 := 0x824 -00000389: call @malloc with return %0000038b - -0000038b: -00000391: mem := mem with [R31 + 0x28, el]:u64 <- R0 -00000396: R0 := 0xB -0000039e: mem := mem with [R31 + 0x1C, el]:u32 <- 31:0[R0] -000003a3: R0 := 4 -000003a8: R30 := 0x838 -000003aa: call @malloc with return %000003ac - -000003ac: -000003b2: mem := mem with [R31 + 0x30, el]:u64 <- R0 -000003b7: R0 := 0xA -000003bf: mem := mem with [R31 + 0x20, el]:u32 <- 31:0[R0] -000003c4: R0 := 4 -000003c9: R30 := 0x84C -000003cb: call @malloc with return %000003cd - -000003cd: -000003d3: mem := mem with [R31 + 0x38, el]:u64 <- R0 -000003d8: R0 := 9 -000003e0: mem := mem with [R31 + 0x24, el]:u32 <- 31:0[R0] -000003e7: R0 := mem[R31 + 0x28, el]:u64 -000003ec: R1 := 0x41 -000003f4: mem := mem with [R0] <- 7:0[R1] -000003fb: R0 := mem[R31 + 0x30, el]:u64 -00000400: R1 := 0x2A -00000408: mem := mem with [R0, el]:u32 <- 31:0[R1] -0000040f: R0 := mem[R31 + 0x28, el]:u64 -00000416: R0 := pad:64[mem[R0]] -0000041c: R1 := pad:64[31:0[R0]] -00000421: R0 := 0 -00000427: R0 := R0 + 0x8E8 -0000042c: R30 := 0x888 -0000042f: call @printf with return %00000431 - -00000431: -00000436: R0 := mem[R31 + 0x30, el]:u64 -0000043d: R0 := pad:64[mem[R0, el]:u32] -00000443: R1 := pad:64[31:0[R0]] -00000448: R0 := 0 -0000044e: R0 := R0 + 0x900 -00000453: R30 := 0x8A0 -00000455: call @printf with return %00000457 - -00000457: -0000045c: R1 := pad:64[mem[R31 + 0x20, el]:u32] -00000461: R0 := 0 -00000467: R0 := R0 + 0x910 -0000046c: R30 := 0x8B0 -0000046e: call @printf with return %00000470 - -00000470: -00000475: R0 := mem[R31 + 0x28, el]:u64 -0000047a: R30 := 0x8B8 -0000047d: call @free with return %0000047f - -0000047f: -00000484: R0 := mem[R31 + 0x30, el]:u64 -00000489: R30 := 0x8C0 -0000048b: call @free with return %0000048d - -0000048d: -00000490: R0 := 0 -00000497: R29 := mem[R31, el]:u64 -0000049c: R30 := mem[R31 + 8, el]:u64 -000004a0: R31 := R31 + 0x40 -000004a5: call R30 with noreturn - -0000078e: sub malloc(malloc_size, malloc_result) -000007a5: malloc_size :: in u64 = R0 -000007a6: malloc_result :: out u64 = R0 - -00000387: -0000061c: R16 := 0x10000 -00000623: R17 := mem[R16 + 0xFA8, el]:u64 -00000629: R16 := R16 + 0xFA8 -0000062e: call R17 with noreturn - -0000078f: sub printf(printf_format, printf_result) -000007a7: printf_format :: in u64 = R0 -000007a8: printf_result :: out u32 = low:32[R0] - -0000042d: -00000674: R16 := 0x10000 -0000067b: R17 := mem[R16 + 0xFC8, el]:u64 -00000681: R16 := R16 + 0xFC8 -00000686: call R17 with noreturn - -00000790: sub register_tm_clones(register_tm_clones_result) -000007a9: register_tm_clones_result :: out u32 = low:32[R0] - -000002c8: -000002cb: R0 := 0x11000 -000002d1: R0 := R0 + 0x10 -000002d6: R1 := 0x11000 -000002dc: R1 := R1 + 0x10 -000002e3: R1 := R1 + ~R0 + 1 -000002e9: R2 := 0.63:63[R1] -000002f0: R1 := R2 + (R1 ~>> 3) -000002f6: R1 := extend:64[63:1[R1]] -000002fc: when R1 = 0 goto %000002fa -00000791: goto %000004e2 - -000004e2: -000004e5: R2 := 0x10000 -000004ec: R2 := mem[R2 + 0xFF8, el]:u64 -000004f1: when R2 = 0 goto %000002fa -00000792: goto %000004f5 - -000002fa: -00000302: call R30 with noreturn - -000004f5: -000004f9: R16 := R2 -000004fe: call R16 with noreturn diff --git a/src/test/correct/malloc_with_local2/gcc/malloc_with_local2.expected b/src/test/correct/malloc_with_local2/gcc/malloc_with_local2.expected index 760f32b40..45449f446 100644 --- a/src/test/correct/malloc_with_local2/gcc/malloc_with_local2.expected +++ b/src/test/correct/malloc_with_local2/gcc/malloc_with_local2.expected @@ -2,6 +2,7 @@ var {:extern} Gamma_R0: bool; var {:extern} Gamma_R1: bool; var {:extern} Gamma_R16: bool; var {:extern} Gamma_R17: bool; +var {:extern} Gamma_R2: bool; var {:extern} Gamma_R29: bool; var {:extern} Gamma_R30: bool; var {:extern} Gamma_R31: bool; @@ -11,46 +12,23 @@ var {:extern} R0: bv64; var {:extern} R1: bv64; var {:extern} R16: bv64; var {:extern} R17: bv64; +var {:extern} R2: bv64; var {:extern} R29: bv64; var {:extern} R30: bv64; var {:extern} R31: bv64; var {:extern} mem: [bv64]bv8; var {:extern} stack: [bv64]bv8; const {:extern} $_IO_stdin_used_addr: bv64; -axiom ($_IO_stdin_used_addr == 2272bv64); -function {:extern} L(mem$in: [bv64]bv8, index: bv64) returns (bool) { - false -} - +axiom ($_IO_stdin_used_addr == 4196440bv64); function {:extern} {:bvbuiltin "bvadd"} bvadd64(bv64, bv64) returns (bv64); -function {:extern} gamma_load32(gammaMap: [bv64]bool, index: bv64) returns (bool) { - (gammaMap[bvadd64(index, 3bv64)] && (gammaMap[bvadd64(index, 2bv64)] && (gammaMap[bvadd64(index, 1bv64)] && gammaMap[index]))) -} - function {:extern} gamma_load64(gammaMap: [bv64]bool, index: bv64) returns (bool) { (gammaMap[bvadd64(index, 7bv64)] && (gammaMap[bvadd64(index, 6bv64)] && (gammaMap[bvadd64(index, 5bv64)] && (gammaMap[bvadd64(index, 4bv64)] && (gammaMap[bvadd64(index, 3bv64)] && (gammaMap[bvadd64(index, 2bv64)] && (gammaMap[bvadd64(index, 1bv64)] && gammaMap[index]))))))) } -function {:extern} gamma_load8(gammaMap: [bv64]bool, index: bv64) returns (bool) { - gammaMap[index] -} - -function {:extern} gamma_store32(gammaMap: [bv64]bool, index: bv64, value: bool) returns ([bv64]bool) { - gammaMap[index := value][bvadd64(index, 1bv64) := value][bvadd64(index, 2bv64) := value][bvadd64(index, 3bv64) := value] -} - function {:extern} gamma_store64(gammaMap: [bv64]bool, index: bv64, value: bool) returns ([bv64]bool) { gammaMap[index := value][bvadd64(index, 1bv64) := value][bvadd64(index, 2bv64) := value][bvadd64(index, 3bv64) := value][bvadd64(index, 4bv64) := value][bvadd64(index, 5bv64) := value][bvadd64(index, 6bv64) := value][bvadd64(index, 7bv64) := value] } -function {:extern} gamma_store8(gammaMap: [bv64]bool, index: bv64, value: bool) returns ([bv64]bool) { - gammaMap[index := value] -} - -function {:extern} memory_load32_le(memory: [bv64]bv8, index: bv64) returns (bv32) { - (memory[bvadd64(index, 3bv64)] ++ (memory[bvadd64(index, 2bv64)] ++ (memory[bvadd64(index, 1bv64)] ++ memory[index]))) -} - function {:extern} memory_load64_le(memory: [bv64]bv8, index: bv64) returns (bv64) { (memory[bvadd64(index, 7bv64)] ++ (memory[bvadd64(index, 6bv64)] ++ (memory[bvadd64(index, 5bv64)] ++ (memory[bvadd64(index, 4bv64)] ++ (memory[bvadd64(index, 3bv64)] ++ (memory[bvadd64(index, 2bv64)] ++ (memory[bvadd64(index, 1bv64)] ++ memory[index]))))))) } @@ -59,40 +37,26 @@ function {:extern} memory_load8_le(memory: [bv64]bv8, index: bv64) returns (bv8) memory[index] } -function {:extern} memory_store32_le(memory: [bv64]bv8, index: bv64, value: bv32) returns ([bv64]bv8) { - memory[index := value[8:0]][bvadd64(index, 1bv64) := value[16:8]][bvadd64(index, 2bv64) := value[24:16]][bvadd64(index, 3bv64) := value[32:24]] -} - function {:extern} memory_store64_le(memory: [bv64]bv8, index: bv64, value: bv64) returns ([bv64]bv8) { memory[index := value[8:0]][bvadd64(index, 1bv64) := value[16:8]][bvadd64(index, 2bv64) := value[24:16]][bvadd64(index, 3bv64) := value[32:24]][bvadd64(index, 4bv64) := value[40:32]][bvadd64(index, 5bv64) := value[48:40]][bvadd64(index, 6bv64) := value[56:48]][bvadd64(index, 7bv64) := value[64:56]] } -function {:extern} memory_store8_le(memory: [bv64]bv8, index: bv64, value: bv8) returns ([bv64]bv8) { - memory[index := value[8:0]] -} - -function {:extern} {:bvbuiltin "zero_extend 32"} zero_extend32_32(bv32) returns (bv64); -function {:extern} {:bvbuiltin "zero_extend 56"} zero_extend56_8(bv8) returns (bv64); procedure {:extern} rely(); modifies Gamma_mem, mem; ensures (Gamma_mem == old(Gamma_mem)); ensures (mem == old(mem)); - free ensures (memory_load64_le(mem, 2272bv64) == 131073bv64); - free ensures (memory_load64_le(mem, 2280bv64) == 8241983568019286100bv64); - free ensures (memory_load64_le(mem, 2288bv64) == 748482783423457568bv64); - free ensures (memory_load64_le(mem, 2296bv64) == 0bv64); - free ensures (memory_load64_le(mem, 2304bv64) == 2338615504306268244bv64); - free ensures (memory_load64_le(mem, 2312bv64) == 2924860384375657bv64); - free ensures (memory_load64_le(mem, 2320bv64) == 7017575154564032596bv64); - free ensures (memory_load64_le(mem, 2328bv64) == 7089063228440191084bv64); - free ensures (memory_load64_le(mem, 2336bv64) == 2675202446017455468bv64); - free ensures (memory_load8_le(mem, 2344bv64) == 100bv8); - free ensures (memory_load8_le(mem, 2345bv64) == 10bv8); - free ensures (memory_load8_le(mem, 2346bv64) == 0bv8); - free ensures (memory_load64_le(mem, 68992bv64) == 2064bv64); - free ensures (memory_load64_le(mem, 69000bv64) == 1984bv64); - free ensures (memory_load64_le(mem, 69616bv64) == 2068bv64); - free ensures (memory_load64_le(mem, 69640bv64) == 69640bv64); + free ensures (memory_load64_le(mem, 4196440bv64) == 131073bv64); + free ensures (memory_load64_le(mem, 4196448bv64) == 8241983568019286100bv64); + free ensures (memory_load64_le(mem, 4196456bv64) == 748482783423457568bv64); + free ensures (memory_load64_le(mem, 4196464bv64) == 0bv64); + free ensures (memory_load64_le(mem, 4196472bv64) == 2338615504306268244bv64); + free ensures (memory_load64_le(mem, 4196480bv64) == 2924860384375657bv64); + free ensures (memory_load64_le(mem, 4196488bv64) == 7017575154564032596bv64); + free ensures (memory_load64_le(mem, 4196496bv64) == 7089063228440191084bv64); + free ensures (memory_load64_le(mem, 4196504bv64) == 2675202446017455468bv64); + free ensures (memory_load8_le(mem, 4196512bv64) == 100bv8); + free ensures (memory_load8_le(mem, 4196513bv64) == 10bv8); + free ensures (memory_load8_le(mem, 4196514bv64) == 0bv8); procedure {:extern} rely_transitive(); modifies Gamma_mem, mem; @@ -110,292 +74,119 @@ procedure {:extern} rely_reflexive(); procedure {:extern} guarantee_reflexive(); modifies Gamma_mem, mem; -procedure #free_1712(); +procedure __printf_chk(); modifies Gamma_R16, Gamma_R17, R16, R17; - free requires (memory_load64_le(mem, 2272bv64) == 131073bv64); - free requires (memory_load64_le(mem, 2280bv64) == 8241983568019286100bv64); - free requires (memory_load64_le(mem, 2288bv64) == 748482783423457568bv64); - free requires (memory_load64_le(mem, 2296bv64) == 0bv64); - free requires (memory_load64_le(mem, 2304bv64) == 2338615504306268244bv64); - free requires (memory_load64_le(mem, 2312bv64) == 2924860384375657bv64); - free requires (memory_load64_le(mem, 2320bv64) == 7017575154564032596bv64); - free requires (memory_load64_le(mem, 2328bv64) == 7089063228440191084bv64); - free requires (memory_load64_le(mem, 2336bv64) == 2675202446017455468bv64); - free requires (memory_load8_le(mem, 2344bv64) == 100bv8); - free requires (memory_load8_le(mem, 2345bv64) == 10bv8); - free requires (memory_load8_le(mem, 2346bv64) == 0bv8); - free requires (memory_load64_le(mem, 68992bv64) == 2064bv64); - free requires (memory_load64_le(mem, 69000bv64) == 1984bv64); - free requires (memory_load64_le(mem, 69616bv64) == 2068bv64); - free requires (memory_load64_le(mem, 69640bv64) == 69640bv64); - free ensures (memory_load64_le(mem, 2272bv64) == 131073bv64); - free ensures (memory_load64_le(mem, 2280bv64) == 8241983568019286100bv64); - free ensures (memory_load64_le(mem, 2288bv64) == 748482783423457568bv64); - free ensures (memory_load64_le(mem, 2296bv64) == 0bv64); - free ensures (memory_load64_le(mem, 2304bv64) == 2338615504306268244bv64); - free ensures (memory_load64_le(mem, 2312bv64) == 2924860384375657bv64); - free ensures (memory_load64_le(mem, 2320bv64) == 7017575154564032596bv64); - free ensures (memory_load64_le(mem, 2328bv64) == 7089063228440191084bv64); - free ensures (memory_load64_le(mem, 2336bv64) == 2675202446017455468bv64); - free ensures (memory_load8_le(mem, 2344bv64) == 100bv8); - free ensures (memory_load8_le(mem, 2345bv64) == 10bv8); - free ensures (memory_load8_le(mem, 2346bv64) == 0bv8); - free ensures (memory_load64_le(mem, 68992bv64) == 2064bv64); - free ensures (memory_load64_le(mem, 69000bv64) == 1984bv64); - free ensures (memory_load64_le(mem, 69616bv64) == 2068bv64); - free ensures (memory_load64_le(mem, 69640bv64) == 69640bv64); - -procedure main_2068(); - modifies Gamma_R0, Gamma_R1, Gamma_R16, Gamma_R17, Gamma_R29, Gamma_R30, Gamma_R31, Gamma_mem, Gamma_stack, R0, R1, R16, R17, R29, R30, R31, mem, stack; - free requires (memory_load64_le(mem, 69632bv64) == 0bv64); - free requires (memory_load64_le(mem, 69640bv64) == 69640bv64); - free requires (memory_load64_le(mem, 2272bv64) == 131073bv64); - free requires (memory_load64_le(mem, 2280bv64) == 8241983568019286100bv64); - free requires (memory_load64_le(mem, 2288bv64) == 748482783423457568bv64); - free requires (memory_load64_le(mem, 2296bv64) == 0bv64); - free requires (memory_load64_le(mem, 2304bv64) == 2338615504306268244bv64); - free requires (memory_load64_le(mem, 2312bv64) == 2924860384375657bv64); - free requires (memory_load64_le(mem, 2320bv64) == 7017575154564032596bv64); - free requires (memory_load64_le(mem, 2328bv64) == 7089063228440191084bv64); - free requires (memory_load64_le(mem, 2336bv64) == 2675202446017455468bv64); - free requires (memory_load8_le(mem, 2344bv64) == 100bv8); - free requires (memory_load8_le(mem, 2345bv64) == 10bv8); - free requires (memory_load8_le(mem, 2346bv64) == 0bv8); - free requires (memory_load64_le(mem, 68992bv64) == 2064bv64); - free requires (memory_load64_le(mem, 69000bv64) == 1984bv64); - free requires (memory_load64_le(mem, 69616bv64) == 2068bv64); - free requires (memory_load64_le(mem, 69640bv64) == 69640bv64); + free requires (memory_load64_le(mem, 4196440bv64) == 131073bv64); + free requires (memory_load64_le(mem, 4196448bv64) == 8241983568019286100bv64); + free requires (memory_load64_le(mem, 4196456bv64) == 748482783423457568bv64); + free requires (memory_load64_le(mem, 4196464bv64) == 0bv64); + free requires (memory_load64_le(mem, 4196472bv64) == 2338615504306268244bv64); + free requires (memory_load64_le(mem, 4196480bv64) == 2924860384375657bv64); + free requires (memory_load64_le(mem, 4196488bv64) == 7017575154564032596bv64); + free requires (memory_load64_le(mem, 4196496bv64) == 7089063228440191084bv64); + free requires (memory_load64_le(mem, 4196504bv64) == 2675202446017455468bv64); + free requires (memory_load8_le(mem, 4196512bv64) == 100bv8); + free requires (memory_load8_le(mem, 4196513bv64) == 10bv8); + free requires (memory_load8_le(mem, 4196514bv64) == 0bv8); + free ensures (memory_load64_le(mem, 4196440bv64) == 131073bv64); + free ensures (memory_load64_le(mem, 4196448bv64) == 8241983568019286100bv64); + free ensures (memory_load64_le(mem, 4196456bv64) == 748482783423457568bv64); + free ensures (memory_load64_le(mem, 4196464bv64) == 0bv64); + free ensures (memory_load64_le(mem, 4196472bv64) == 2338615504306268244bv64); + free ensures (memory_load64_le(mem, 4196480bv64) == 2924860384375657bv64); + free ensures (memory_load64_le(mem, 4196488bv64) == 7017575154564032596bv64); + free ensures (memory_load64_le(mem, 4196496bv64) == 7089063228440191084bv64); + free ensures (memory_load64_le(mem, 4196504bv64) == 2675202446017455468bv64); + free ensures (memory_load8_le(mem, 4196512bv64) == 100bv8); + free ensures (memory_load8_le(mem, 4196513bv64) == 10bv8); + free ensures (memory_load8_le(mem, 4196514bv64) == 0bv8); + +procedure main(); + modifies Gamma_R0, Gamma_R1, Gamma_R16, Gamma_R17, Gamma_R2, Gamma_R29, Gamma_R30, Gamma_R31, Gamma_stack, R0, R1, R16, R17, R2, R29, R30, R31, stack; + free requires (memory_load64_le(mem, 4325376bv64) == 0bv64); + free requires (memory_load64_le(mem, 4325384bv64) == 0bv64); + free requires (memory_load64_le(mem, 4196440bv64) == 131073bv64); + free requires (memory_load64_le(mem, 4196448bv64) == 8241983568019286100bv64); + free requires (memory_load64_le(mem, 4196456bv64) == 748482783423457568bv64); + free requires (memory_load64_le(mem, 4196464bv64) == 0bv64); + free requires (memory_load64_le(mem, 4196472bv64) == 2338615504306268244bv64); + free requires (memory_load64_le(mem, 4196480bv64) == 2924860384375657bv64); + free requires (memory_load64_le(mem, 4196488bv64) == 7017575154564032596bv64); + free requires (memory_load64_le(mem, 4196496bv64) == 7089063228440191084bv64); + free requires (memory_load64_le(mem, 4196504bv64) == 2675202446017455468bv64); + free requires (memory_load8_le(mem, 4196512bv64) == 100bv8); + free requires (memory_load8_le(mem, 4196513bv64) == 10bv8); + free requires (memory_load8_le(mem, 4196514bv64) == 0bv8); free ensures (Gamma_R29 == old(Gamma_R29)); free ensures (Gamma_R31 == old(Gamma_R31)); free ensures (R29 == old(R29)); free ensures (R31 == old(R31)); - free ensures (memory_load64_le(mem, 2272bv64) == 131073bv64); - free ensures (memory_load64_le(mem, 2280bv64) == 8241983568019286100bv64); - free ensures (memory_load64_le(mem, 2288bv64) == 748482783423457568bv64); - free ensures (memory_load64_le(mem, 2296bv64) == 0bv64); - free ensures (memory_load64_le(mem, 2304bv64) == 2338615504306268244bv64); - free ensures (memory_load64_le(mem, 2312bv64) == 2924860384375657bv64); - free ensures (memory_load64_le(mem, 2320bv64) == 7017575154564032596bv64); - free ensures (memory_load64_le(mem, 2328bv64) == 7089063228440191084bv64); - free ensures (memory_load64_le(mem, 2336bv64) == 2675202446017455468bv64); - free ensures (memory_load8_le(mem, 2344bv64) == 100bv8); - free ensures (memory_load8_le(mem, 2345bv64) == 10bv8); - free ensures (memory_load8_le(mem, 2346bv64) == 0bv8); - free ensures (memory_load64_le(mem, 68992bv64) == 2064bv64); - free ensures (memory_load64_le(mem, 69000bv64) == 1984bv64); - free ensures (memory_load64_le(mem, 69616bv64) == 2068bv64); - free ensures (memory_load64_le(mem, 69640bv64) == 69640bv64); - -implementation main_2068() + free ensures (memory_load64_le(mem, 4196440bv64) == 131073bv64); + free ensures (memory_load64_le(mem, 4196448bv64) == 8241983568019286100bv64); + free ensures (memory_load64_le(mem, 4196456bv64) == 748482783423457568bv64); + free ensures (memory_load64_le(mem, 4196464bv64) == 0bv64); + free ensures (memory_load64_le(mem, 4196472bv64) == 2338615504306268244bv64); + free ensures (memory_load64_le(mem, 4196480bv64) == 2924860384375657bv64); + free ensures (memory_load64_le(mem, 4196488bv64) == 7017575154564032596bv64); + free ensures (memory_load64_le(mem, 4196496bv64) == 7089063228440191084bv64); + free ensures (memory_load64_le(mem, 4196504bv64) == 2675202446017455468bv64); + free ensures (memory_load8_le(mem, 4196512bv64) == 100bv8); + free ensures (memory_load8_le(mem, 4196513bv64) == 10bv8); + free ensures (memory_load8_le(mem, 4196514bv64) == 0bv8); + +implementation main() { - var #4: bv64; - var Gamma_#4: bool; - var Gamma_load19: bool; - var Gamma_load20: bool; - var Gamma_load21: bool; - var Gamma_load22: bool; - var Gamma_load23: bool; - var Gamma_load24: bool; - var Gamma_load25: bool; - var Gamma_load26: bool; - var Gamma_load27: bool; - var Gamma_load28: bool; - var Gamma_load29: bool; - var load19: bv64; - var load20: bv64; - var load21: bv64; - var load22: bv8; - var load23: bv64; - var load24: bv32; - var load25: bv32; - var load26: bv64; - var load27: bv64; - var load28: bv64; - var load29: bv64; + var #1: bv64; + var $load$15: bv64; + var $load$16: bv64; + var Gamma_#1: bool; + var Gamma_$load$15: bool; + var Gamma_$load$16: bool; lmain: assume {:captureState "lmain"} true; - #4, Gamma_#4 := bvadd64(R31, 18446744073709551552bv64), Gamma_R31; - stack, Gamma_stack := memory_store64_le(stack, #4, R29), gamma_store64(Gamma_stack, #4, Gamma_R29); - assume {:captureState "%0000036c"} true; - stack, Gamma_stack := memory_store64_le(stack, bvadd64(#4, 8bv64), R30), gamma_store64(Gamma_stack, bvadd64(#4, 8bv64), Gamma_R30); - assume {:captureState "%00000372"} true; - R31, Gamma_R31 := #4, Gamma_#4; + #1, Gamma_#1 := bvadd64(R31, 18446744073709551600bv64), Gamma_R31; + stack, Gamma_stack := memory_store64_le(stack, #1, R29), gamma_store64(Gamma_stack, #1, Gamma_R29); + assume {:captureState "%00000268"} true; + stack, Gamma_stack := memory_store64_le(stack, bvadd64(#1, 8bv64), R30), gamma_store64(Gamma_stack, bvadd64(#1, 8bv64), Gamma_R30); + assume {:captureState "%0000026c"} true; + R31, Gamma_R31 := #1, Gamma_#1; + R2, Gamma_R2 := 65bv64, true; + R1, Gamma_R1 := 4194304bv64, true; R29, Gamma_R29 := R31, Gamma_R31; - R0, Gamma_R0 := 1bv64, true; - R30, Gamma_R30 := 2084bv64, true; - call malloc_1664(); - goto l0000038b; - l0000038b: - assume {:captureState "l0000038b"} true; - stack, Gamma_stack := memory_store64_le(stack, bvadd64(R31, 40bv64), R0), gamma_store64(Gamma_stack, bvadd64(R31, 40bv64), Gamma_R0); - assume {:captureState "%00000391"} true; - R0, Gamma_R0 := 11bv64, true; - stack, Gamma_stack := memory_store32_le(stack, bvadd64(R31, 28bv64), R0[32:0]), gamma_store32(Gamma_stack, bvadd64(R31, 28bv64), Gamma_R0); - assume {:captureState "%0000039e"} true; - R0, Gamma_R0 := 4bv64, true; - R30, Gamma_R30 := 2104bv64, true; - call malloc_1664(); - goto l000003ac; - l000003ac: - assume {:captureState "l000003ac"} true; - stack, Gamma_stack := memory_store64_le(stack, bvadd64(R31, 48bv64), R0), gamma_store64(Gamma_stack, bvadd64(R31, 48bv64), Gamma_R0); - assume {:captureState "%000003b2"} true; - R0, Gamma_R0 := 10bv64, true; - stack, Gamma_stack := memory_store32_le(stack, bvadd64(R31, 32bv64), R0[32:0]), gamma_store32(Gamma_stack, bvadd64(R31, 32bv64), Gamma_R0); - assume {:captureState "%000003bf"} true; - R0, Gamma_R0 := 4bv64, true; - R30, Gamma_R30 := 2124bv64, true; - call malloc_1664(); - goto l000003cd; - l000003cd: - assume {:captureState "l000003cd"} true; - stack, Gamma_stack := memory_store64_le(stack, bvadd64(R31, 56bv64), R0), gamma_store64(Gamma_stack, bvadd64(R31, 56bv64), Gamma_R0); - assume {:captureState "%000003d3"} true; - R0, Gamma_R0 := 9bv64, true; - stack, Gamma_stack := memory_store32_le(stack, bvadd64(R31, 36bv64), R0[32:0]), gamma_store32(Gamma_stack, bvadd64(R31, 36bv64), Gamma_R0); - assume {:captureState "%000003e0"} true; - load19, Gamma_load19 := memory_load64_le(stack, bvadd64(R31, 40bv64)), gamma_load64(Gamma_stack, bvadd64(R31, 40bv64)); - R0, Gamma_R0 := load19, Gamma_load19; - R1, Gamma_R1 := 65bv64, true; - call rely(); - assert (L(mem, R0) ==> Gamma_R1); - mem, Gamma_mem := memory_store8_le(mem, R0, R1[8:0]), gamma_store8(Gamma_mem, R0, Gamma_R1); - assume {:captureState "%000003f4"} true; - load20, Gamma_load20 := memory_load64_le(stack, bvadd64(R31, 48bv64)), gamma_load64(Gamma_stack, bvadd64(R31, 48bv64)); - R0, Gamma_R0 := load20, Gamma_load20; - R1, Gamma_R1 := 42bv64, true; - call rely(); - assert (L(mem, R0) ==> Gamma_R1); - mem, Gamma_mem := memory_store32_le(mem, R0, R1[32:0]), gamma_store32(Gamma_mem, R0, Gamma_R1); - assume {:captureState "%00000408"} true; - load21, Gamma_load21 := memory_load64_le(stack, bvadd64(R31, 40bv64)), gamma_load64(Gamma_stack, bvadd64(R31, 40bv64)); - R0, Gamma_R0 := load21, Gamma_load21; - call rely(); - load22, Gamma_load22 := memory_load8_le(mem, R0), (gamma_load8(Gamma_mem, R0) || L(mem, R0)); - R0, Gamma_R0 := zero_extend56_8(load22), Gamma_load22; - R1, Gamma_R1 := zero_extend32_32(R0[32:0]), Gamma_R0; - R0, Gamma_R0 := 0bv64, true; - R0, Gamma_R0 := bvadd64(R0, 2280bv64), Gamma_R0; - R30, Gamma_R30 := 2184bv64, true; - call printf_1728(); - goto l00000431; - l00000431: - assume {:captureState "l00000431"} true; - load23, Gamma_load23 := memory_load64_le(stack, bvadd64(R31, 48bv64)), gamma_load64(Gamma_stack, bvadd64(R31, 48bv64)); - R0, Gamma_R0 := load23, Gamma_load23; - call rely(); - load24, Gamma_load24 := memory_load32_le(mem, R0), (gamma_load32(Gamma_mem, R0) || L(mem, R0)); - R0, Gamma_R0 := zero_extend32_32(load24), Gamma_load24; - R1, Gamma_R1 := zero_extend32_32(R0[32:0]), Gamma_R0; + R1, Gamma_R1 := bvadd64(R1, 2144bv64), Gamma_R1; + R0, Gamma_R0 := 2bv64, true; + R30, Gamma_R30 := 4196060bv64, true; + call __printf_chk(); + goto l00000290; + l00000290: + assume {:captureState "l00000290"} true; + R2, Gamma_R2 := 42bv64, true; + R1, Gamma_R1 := 4194304bv64, true; + R0, Gamma_R0 := 2bv64, true; + R1, Gamma_R1 := bvadd64(R1, 2168bv64), Gamma_R1; + R30, Gamma_R30 := 4196080bv64, true; + call __printf_chk(); + goto l000002ac; + l000002ac: + assume {:captureState "l000002ac"} true; + R2, Gamma_R2 := 10bv64, true; + R1, Gamma_R1 := 4194304bv64, true; + R0, Gamma_R0 := 2bv64, true; + R1, Gamma_R1 := bvadd64(R1, 2184bv64), Gamma_R1; + R30, Gamma_R30 := 4196100bv64, true; + call __printf_chk(); + goto l000002c8; + l000002c8: + assume {:captureState "l000002c8"} true; R0, Gamma_R0 := 0bv64, true; - R0, Gamma_R0 := bvadd64(R0, 2304bv64), Gamma_R0; - R30, Gamma_R30 := 2208bv64, true; - call printf_1728(); - goto l00000457; - l00000457: - assume {:captureState "l00000457"} true; - load25, Gamma_load25 := memory_load32_le(stack, bvadd64(R31, 32bv64)), gamma_load32(Gamma_stack, bvadd64(R31, 32bv64)); - R1, Gamma_R1 := zero_extend32_32(load25), Gamma_load25; - R0, Gamma_R0 := 0bv64, true; - R0, Gamma_R0 := bvadd64(R0, 2320bv64), Gamma_R0; - R30, Gamma_R30 := 2224bv64, true; - call printf_1728(); - goto l00000470; - l00000470: - assume {:captureState "l00000470"} true; - load26, Gamma_load26 := memory_load64_le(stack, bvadd64(R31, 40bv64)), gamma_load64(Gamma_stack, bvadd64(R31, 40bv64)); - R0, Gamma_R0 := load26, Gamma_load26; - R30, Gamma_R30 := 2232bv64, true; - call #free_1712(); - goto l0000047f; - l0000047f: - assume {:captureState "l0000047f"} true; - load27, Gamma_load27 := memory_load64_le(stack, bvadd64(R31, 48bv64)), gamma_load64(Gamma_stack, bvadd64(R31, 48bv64)); - R0, Gamma_R0 := load27, Gamma_load27; - R30, Gamma_R30 := 2240bv64, true; - call #free_1712(); - goto l0000048d; - l0000048d: - assume {:captureState "l0000048d"} true; - R0, Gamma_R0 := 0bv64, true; - load28, Gamma_load28 := memory_load64_le(stack, R31), gamma_load64(Gamma_stack, R31); - R29, Gamma_R29 := load28, Gamma_load28; - load29, Gamma_load29 := memory_load64_le(stack, bvadd64(R31, 8bv64)), gamma_load64(Gamma_stack, bvadd64(R31, 8bv64)); - R30, Gamma_R30 := load29, Gamma_load29; - R31, Gamma_R31 := bvadd64(R31, 64bv64), Gamma_R31; - goto main_2068_basil_return; - main_2068_basil_return: - assume {:captureState "main_2068_basil_return"} true; + $load$15, Gamma_$load$15 := memory_load64_le(stack, R31), gamma_load64(Gamma_stack, R31); + R29, Gamma_R29 := $load$15, Gamma_$load$15; + $load$16, Gamma_$load$16 := memory_load64_le(stack, bvadd64(R31, 8bv64)), gamma_load64(Gamma_stack, bvadd64(R31, 8bv64)); + R30, Gamma_R30 := $load$16, Gamma_$load$16; + R31, Gamma_R31 := bvadd64(R31, 16bv64), Gamma_R31; + goto main_basil_return; + main_basil_return: + assume {:captureState "main_basil_return"} true; return; } -procedure malloc_1664(); - modifies Gamma_R16, Gamma_R17, R16, R17; - free requires (memory_load64_le(mem, 2272bv64) == 131073bv64); - free requires (memory_load64_le(mem, 2280bv64) == 8241983568019286100bv64); - free requires (memory_load64_le(mem, 2288bv64) == 748482783423457568bv64); - free requires (memory_load64_le(mem, 2296bv64) == 0bv64); - free requires (memory_load64_le(mem, 2304bv64) == 2338615504306268244bv64); - free requires (memory_load64_le(mem, 2312bv64) == 2924860384375657bv64); - free requires (memory_load64_le(mem, 2320bv64) == 7017575154564032596bv64); - free requires (memory_load64_le(mem, 2328bv64) == 7089063228440191084bv64); - free requires (memory_load64_le(mem, 2336bv64) == 2675202446017455468bv64); - free requires (memory_load8_le(mem, 2344bv64) == 100bv8); - free requires (memory_load8_le(mem, 2345bv64) == 10bv8); - free requires (memory_load8_le(mem, 2346bv64) == 0bv8); - free requires (memory_load64_le(mem, 68992bv64) == 2064bv64); - free requires (memory_load64_le(mem, 69000bv64) == 1984bv64); - free requires (memory_load64_le(mem, 69616bv64) == 2068bv64); - free requires (memory_load64_le(mem, 69640bv64) == 69640bv64); - free ensures (memory_load64_le(mem, 2272bv64) == 131073bv64); - free ensures (memory_load64_le(mem, 2280bv64) == 8241983568019286100bv64); - free ensures (memory_load64_le(mem, 2288bv64) == 748482783423457568bv64); - free ensures (memory_load64_le(mem, 2296bv64) == 0bv64); - free ensures (memory_load64_le(mem, 2304bv64) == 2338615504306268244bv64); - free ensures (memory_load64_le(mem, 2312bv64) == 2924860384375657bv64); - free ensures (memory_load64_le(mem, 2320bv64) == 7017575154564032596bv64); - free ensures (memory_load64_le(mem, 2328bv64) == 7089063228440191084bv64); - free ensures (memory_load64_le(mem, 2336bv64) == 2675202446017455468bv64); - free ensures (memory_load8_le(mem, 2344bv64) == 100bv8); - free ensures (memory_load8_le(mem, 2345bv64) == 10bv8); - free ensures (memory_load8_le(mem, 2346bv64) == 0bv8); - free ensures (memory_load64_le(mem, 68992bv64) == 2064bv64); - free ensures (memory_load64_le(mem, 69000bv64) == 1984bv64); - free ensures (memory_load64_le(mem, 69616bv64) == 2068bv64); - free ensures (memory_load64_le(mem, 69640bv64) == 69640bv64); - -procedure printf_1728(); - modifies Gamma_R16, Gamma_R17, R16, R17; - free requires (memory_load64_le(mem, 2272bv64) == 131073bv64); - free requires (memory_load64_le(mem, 2280bv64) == 8241983568019286100bv64); - free requires (memory_load64_le(mem, 2288bv64) == 748482783423457568bv64); - free requires (memory_load64_le(mem, 2296bv64) == 0bv64); - free requires (memory_load64_le(mem, 2304bv64) == 2338615504306268244bv64); - free requires (memory_load64_le(mem, 2312bv64) == 2924860384375657bv64); - free requires (memory_load64_le(mem, 2320bv64) == 7017575154564032596bv64); - free requires (memory_load64_le(mem, 2328bv64) == 7089063228440191084bv64); - free requires (memory_load64_le(mem, 2336bv64) == 2675202446017455468bv64); - free requires (memory_load8_le(mem, 2344bv64) == 100bv8); - free requires (memory_load8_le(mem, 2345bv64) == 10bv8); - free requires (memory_load8_le(mem, 2346bv64) == 0bv8); - free requires (memory_load64_le(mem, 68992bv64) == 2064bv64); - free requires (memory_load64_le(mem, 69000bv64) == 1984bv64); - free requires (memory_load64_le(mem, 69616bv64) == 2068bv64); - free requires (memory_load64_le(mem, 69640bv64) == 69640bv64); - free ensures (memory_load64_le(mem, 2272bv64) == 131073bv64); - free ensures (memory_load64_le(mem, 2280bv64) == 8241983568019286100bv64); - free ensures (memory_load64_le(mem, 2288bv64) == 748482783423457568bv64); - free ensures (memory_load64_le(mem, 2296bv64) == 0bv64); - free ensures (memory_load64_le(mem, 2304bv64) == 2338615504306268244bv64); - free ensures (memory_load64_le(mem, 2312bv64) == 2924860384375657bv64); - free ensures (memory_load64_le(mem, 2320bv64) == 7017575154564032596bv64); - free ensures (memory_load64_le(mem, 2328bv64) == 7089063228440191084bv64); - free ensures (memory_load64_le(mem, 2336bv64) == 2675202446017455468bv64); - free ensures (memory_load8_le(mem, 2344bv64) == 100bv8); - free ensures (memory_load8_le(mem, 2345bv64) == 10bv8); - free ensures (memory_load8_le(mem, 2346bv64) == 0bv8); - free ensures (memory_load64_le(mem, 68992bv64) == 2064bv64); - free ensures (memory_load64_le(mem, 69000bv64) == 1984bv64); - free ensures (memory_load64_le(mem, 69616bv64) == 2068bv64); - free ensures (memory_load64_le(mem, 69640bv64) == 69640bv64); - diff --git a/src/test/correct/malloc_with_local2/gcc/malloc_with_local2.gts b/src/test/correct/malloc_with_local2/gcc/malloc_with_local2.gts deleted file mode 100644 index c3048983b..000000000 Binary files a/src/test/correct/malloc_with_local2/gcc/malloc_with_local2.gts and /dev/null differ diff --git a/src/test/correct/malloc_with_local2/gcc/malloc_with_local2.md5sum b/src/test/correct/malloc_with_local2/gcc/malloc_with_local2.md5sum new file mode 100644 index 000000000..6fe773109 --- /dev/null +++ b/src/test/correct/malloc_with_local2/gcc/malloc_with_local2.md5sum @@ -0,0 +1,5 @@ +bba221ee77eb3c6a5f6f9263b0410f75 correct/malloc_with_local2/gcc/a.out +bfafc1ac4253ec13bf95e2176b433e4c correct/malloc_with_local2/gcc/malloc_with_local2.adt +c182d4a77f95e8b081ca6849ea23f9b4 correct/malloc_with_local2/gcc/malloc_with_local2.bir +2c53ee74ebc1821e98952bd471a00afb correct/malloc_with_local2/gcc/malloc_with_local2.relf +338aada94474cfe9dc9a60bbef4328a1 correct/malloc_with_local2/gcc/malloc_with_local2.gts diff --git a/src/test/correct/malloc_with_local2/gcc/malloc_with_local2.relf b/src/test/correct/malloc_with_local2/gcc/malloc_with_local2.relf deleted file mode 100644 index 42bf5dd47..000000000 --- a/src/test/correct/malloc_with_local2/gcc/malloc_with_local2.relf +++ /dev/null @@ -1,129 +0,0 @@ - -Relocation section '.rela.dyn' at offset 0x4c0 contains 8 entries: - Offset Info Type Symbol's Value Symbol's Name + Addend -0000000000010d80 0000000000000403 R_AARCH64_RELATIVE 810 -0000000000010d88 0000000000000403 R_AARCH64_RELATIVE 7c0 -0000000000010ff0 0000000000000403 R_AARCH64_RELATIVE 814 -0000000000011008 0000000000000403 R_AARCH64_RELATIVE 11008 -0000000000010fd8 0000000400000401 R_AARCH64_GLOB_DAT 0000000000000000 _ITM_deregisterTMCloneTable + 0 -0000000000010fe0 0000000500000401 R_AARCH64_GLOB_DAT 0000000000000000 __cxa_finalize@GLIBC_2.17 + 0 -0000000000010fe8 0000000700000401 R_AARCH64_GLOB_DAT 0000000000000000 __gmon_start__ + 0 -0000000000010ff8 0000000a00000401 R_AARCH64_GLOB_DAT 0000000000000000 _ITM_registerTMCloneTable + 0 - -Relocation section '.rela.plt' at offset 0x580 contains 7 entries: - Offset Info Type Symbol's Value Symbol's Name + Addend -0000000000010f98 0000000300000402 R_AARCH64_JUMP_SLOT 0000000000000000 __libc_start_main@GLIBC_2.34 + 0 -0000000000010fa0 0000000500000402 R_AARCH64_JUMP_SLOT 0000000000000000 __cxa_finalize@GLIBC_2.17 + 0 -0000000000010fa8 0000000600000402 R_AARCH64_JUMP_SLOT 0000000000000000 malloc@GLIBC_2.17 + 0 -0000000000010fb0 0000000700000402 R_AARCH64_JUMP_SLOT 0000000000000000 __gmon_start__ + 0 -0000000000010fb8 0000000800000402 R_AARCH64_JUMP_SLOT 0000000000000000 abort@GLIBC_2.17 + 0 -0000000000010fc0 0000000900000402 R_AARCH64_JUMP_SLOT 0000000000000000 free@GLIBC_2.17 + 0 -0000000000010fc8 0000000b00000402 R_AARCH64_JUMP_SLOT 0000000000000000 printf@GLIBC_2.17 + 0 - -Symbol table '.dynsym' contains 12 entries: - Num: Value Size Type Bind Vis Ndx Name - 0: 0000000000000000 0 NOTYPE LOCAL DEFAULT UND - 1: 0000000000000628 0 SECTION LOCAL DEFAULT 11 .init - 2: 0000000000011000 0 SECTION LOCAL DEFAULT 22 .data - 3: 0000000000000000 0 FUNC GLOBAL DEFAULT UND __libc_start_main@GLIBC_2.34 (2) - 4: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_deregisterTMCloneTable - 5: 0000000000000000 0 FUNC WEAK DEFAULT UND __cxa_finalize@GLIBC_2.17 (3) - 6: 0000000000000000 0 FUNC GLOBAL DEFAULT UND malloc@GLIBC_2.17 (3) - 7: 0000000000000000 0 NOTYPE WEAK DEFAULT UND __gmon_start__ - 8: 0000000000000000 0 FUNC GLOBAL DEFAULT UND abort@GLIBC_2.17 (3) - 9: 0000000000000000 0 FUNC GLOBAL DEFAULT UND free@GLIBC_2.17 (3) - 10: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_registerTMCloneTable - 11: 0000000000000000 0 FUNC GLOBAL DEFAULT UND printf@GLIBC_2.17 (3) - -Symbol table '.symtab' contains 90 entries: - Num: Value Size Type Bind Vis Ndx Name - 0: 0000000000000000 0 NOTYPE LOCAL DEFAULT UND - 1: 0000000000000238 0 SECTION LOCAL DEFAULT 1 .interp - 2: 0000000000000254 0 SECTION LOCAL DEFAULT 2 .note.gnu.build-id - 3: 0000000000000278 0 SECTION LOCAL DEFAULT 3 .note.ABI-tag - 4: 0000000000000298 0 SECTION LOCAL DEFAULT 4 .gnu.hash - 5: 00000000000002b8 0 SECTION LOCAL DEFAULT 5 .dynsym - 6: 00000000000003d8 0 SECTION LOCAL DEFAULT 6 .dynstr - 7: 0000000000000478 0 SECTION LOCAL DEFAULT 7 .gnu.version - 8: 0000000000000490 0 SECTION LOCAL DEFAULT 8 .gnu.version_r - 9: 00000000000004c0 0 SECTION LOCAL DEFAULT 9 .rela.dyn - 10: 0000000000000580 0 SECTION LOCAL DEFAULT 10 .rela.plt - 11: 0000000000000628 0 SECTION LOCAL DEFAULT 11 .init - 12: 0000000000000640 0 SECTION LOCAL DEFAULT 12 .plt - 13: 0000000000000700 0 SECTION LOCAL DEFAULT 13 .text - 14: 00000000000008cc 0 SECTION LOCAL DEFAULT 14 .fini - 15: 00000000000008e0 0 SECTION LOCAL DEFAULT 15 .rodata - 16: 000000000000092c 0 SECTION LOCAL DEFAULT 16 .eh_frame_hdr - 17: 0000000000000968 0 SECTION LOCAL DEFAULT 17 .eh_frame - 18: 0000000000010d80 0 SECTION LOCAL DEFAULT 18 .init_array - 19: 0000000000010d88 0 SECTION LOCAL DEFAULT 19 .fini_array - 20: 0000000000010d90 0 SECTION LOCAL DEFAULT 20 .dynamic - 21: 0000000000010f80 0 SECTION LOCAL DEFAULT 21 .got - 22: 0000000000011000 0 SECTION LOCAL DEFAULT 22 .data - 23: 0000000000011010 0 SECTION LOCAL DEFAULT 23 .bss - 24: 0000000000000000 0 SECTION LOCAL DEFAULT 24 .comment - 25: 0000000000000000 0 FILE LOCAL DEFAULT ABS Scrt1.o - 26: 0000000000000278 0 NOTYPE LOCAL DEFAULT 3 $d - 27: 0000000000000278 32 OBJECT LOCAL DEFAULT 3 __abi_tag - 28: 0000000000000700 0 NOTYPE LOCAL DEFAULT 13 $x - 29: 000000000000097c 0 NOTYPE LOCAL DEFAULT 17 $d - 30: 00000000000008e0 0 NOTYPE LOCAL DEFAULT 15 $d - 31: 0000000000000000 0 FILE LOCAL DEFAULT ABS crti.o - 32: 0000000000000734 0 NOTYPE LOCAL DEFAULT 13 $x - 33: 0000000000000734 20 FUNC LOCAL DEFAULT 13 call_weak_fn - 34: 0000000000000628 0 NOTYPE LOCAL DEFAULT 11 $x - 35: 00000000000008cc 0 NOTYPE LOCAL DEFAULT 14 $x - 36: 0000000000000000 0 FILE LOCAL DEFAULT ABS crtn.o - 37: 0000000000000638 0 NOTYPE LOCAL DEFAULT 11 $x - 38: 00000000000008d8 0 NOTYPE LOCAL DEFAULT 14 $x - 39: 0000000000000000 0 FILE LOCAL DEFAULT ABS crtstuff.c - 40: 0000000000000750 0 NOTYPE LOCAL DEFAULT 13 $x - 41: 0000000000000750 0 FUNC LOCAL DEFAULT 13 deregister_tm_clones - 42: 0000000000000780 0 FUNC LOCAL DEFAULT 13 register_tm_clones - 43: 0000000000011008 0 NOTYPE LOCAL DEFAULT 22 $d - 44: 00000000000007c0 0 FUNC LOCAL DEFAULT 13 __do_global_dtors_aux - 45: 0000000000011010 1 OBJECT LOCAL DEFAULT 23 completed.0 - 46: 0000000000010d88 0 NOTYPE LOCAL DEFAULT 19 $d - 47: 0000000000010d88 0 OBJECT LOCAL DEFAULT 19 __do_global_dtors_aux_fini_array_entry - 48: 0000000000000810 0 FUNC LOCAL DEFAULT 13 frame_dummy - 49: 0000000000010d80 0 NOTYPE LOCAL DEFAULT 18 $d - 50: 0000000000010d80 0 OBJECT LOCAL DEFAULT 18 __frame_dummy_init_array_entry - 51: 0000000000000990 0 NOTYPE LOCAL DEFAULT 17 $d - 52: 0000000000011010 0 NOTYPE LOCAL DEFAULT 23 $d - 53: 0000000000000000 0 FILE LOCAL DEFAULT ABS malloc_with_local2.c - 54: 00000000000008e8 0 NOTYPE LOCAL DEFAULT 15 $d - 55: 0000000000000814 0 NOTYPE LOCAL DEFAULT 13 $x - 56: 00000000000009f0 0 NOTYPE LOCAL DEFAULT 17 $d - 57: 0000000000000000 0 FILE LOCAL DEFAULT ABS crtstuff.c - 58: 0000000000000a10 0 NOTYPE LOCAL DEFAULT 17 $d - 59: 0000000000000a10 0 OBJECT LOCAL DEFAULT 17 __FRAME_END__ - 60: 0000000000000000 0 FILE LOCAL DEFAULT ABS - 61: 0000000000010d90 0 OBJECT LOCAL DEFAULT ABS _DYNAMIC - 62: 000000000000092c 0 NOTYPE LOCAL DEFAULT 16 __GNU_EH_FRAME_HDR - 63: 0000000000010fd0 0 OBJECT LOCAL DEFAULT ABS _GLOBAL_OFFSET_TABLE_ - 64: 0000000000000640 0 NOTYPE LOCAL DEFAULT 12 $x - 65: 0000000000000000 0 FUNC GLOBAL DEFAULT UND __libc_start_main@GLIBC_2.34 - 66: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_deregisterTMCloneTable - 67: 0000000000011000 0 NOTYPE WEAK DEFAULT 22 data_start - 68: 0000000000011010 0 NOTYPE GLOBAL DEFAULT 23 __bss_start__ - 69: 0000000000000000 0 FUNC WEAK DEFAULT UND __cxa_finalize@GLIBC_2.17 - 70: 0000000000011018 0 NOTYPE GLOBAL DEFAULT 23 _bss_end__ - 71: 0000000000011010 0 NOTYPE GLOBAL DEFAULT 22 _edata - 72: 00000000000008cc 0 FUNC GLOBAL HIDDEN 14 _fini - 73: 0000000000011018 0 NOTYPE GLOBAL DEFAULT 23 __bss_end__ - 74: 0000000000000000 0 FUNC GLOBAL DEFAULT UND malloc@GLIBC_2.17 - 75: 0000000000011000 0 NOTYPE GLOBAL DEFAULT 22 __data_start - 76: 0000000000000000 0 NOTYPE WEAK DEFAULT UND __gmon_start__ - 77: 0000000000011008 0 OBJECT GLOBAL HIDDEN 22 __dso_handle - 78: 0000000000000000 0 FUNC GLOBAL DEFAULT UND abort@GLIBC_2.17 - 79: 00000000000008e0 4 OBJECT GLOBAL DEFAULT 15 _IO_stdin_used - 80: 0000000000011018 0 NOTYPE GLOBAL DEFAULT 23 _end - 81: 0000000000000000 0 FUNC GLOBAL DEFAULT UND free@GLIBC_2.17 - 82: 0000000000000700 52 FUNC GLOBAL DEFAULT 13 _start - 83: 0000000000011018 0 NOTYPE GLOBAL DEFAULT 23 __end__ - 84: 0000000000011010 0 NOTYPE GLOBAL DEFAULT 23 __bss_start - 85: 0000000000000814 184 FUNC GLOBAL DEFAULT 13 main - 86: 0000000000011010 0 OBJECT GLOBAL HIDDEN 22 __TMC_END__ - 87: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_registerTMCloneTable - 88: 0000000000000000 0 FUNC GLOBAL DEFAULT UND printf@GLIBC_2.17 - 89: 0000000000000628 0 FUNC GLOBAL HIDDEN 11 _init diff --git a/src/test/correct/malloc_with_local2/gcc/malloc_with_local2_gtirb.expected b/src/test/correct/malloc_with_local2/gcc/malloc_with_local2_gtirb.expected index ea368bcbd..8c7fae9b9 100644 --- a/src/test/correct/malloc_with_local2/gcc/malloc_with_local2_gtirb.expected +++ b/src/test/correct/malloc_with_local2/gcc/malloc_with_local2_gtirb.expected @@ -2,6 +2,7 @@ var {:extern} Gamma_R0: bool; var {:extern} Gamma_R1: bool; var {:extern} Gamma_R16: bool; var {:extern} Gamma_R17: bool; +var {:extern} Gamma_R2: bool; var {:extern} Gamma_R29: bool; var {:extern} Gamma_R30: bool; var {:extern} Gamma_R31: bool; @@ -11,46 +12,27 @@ var {:extern} R0: bv64; var {:extern} R1: bv64; var {:extern} R16: bv64; var {:extern} R17: bv64; +var {:extern} R2: bv64; var {:extern} R29: bv64; var {:extern} R30: bv64; var {:extern} R31: bv64; var {:extern} mem: [bv64]bv8; var {:extern} stack: [bv64]bv8; const {:extern} $_IO_stdin_used_addr: bv64; -axiom ($_IO_stdin_used_addr == 2272bv64); +axiom ($_IO_stdin_used_addr == 4196440bv64); function {:extern} L(mem$in: [bv64]bv8, index: bv64) returns (bool) { false } function {:extern} {:bvbuiltin "bvadd"} bvadd64(bv64, bv64) returns (bv64); -function {:extern} gamma_load32(gammaMap: [bv64]bool, index: bv64) returns (bool) { - (gammaMap[bvadd64(index, 3bv64)] && (gammaMap[bvadd64(index, 2bv64)] && (gammaMap[bvadd64(index, 1bv64)] && gammaMap[index]))) -} - function {:extern} gamma_load64(gammaMap: [bv64]bool, index: bv64) returns (bool) { (gammaMap[bvadd64(index, 7bv64)] && (gammaMap[bvadd64(index, 6bv64)] && (gammaMap[bvadd64(index, 5bv64)] && (gammaMap[bvadd64(index, 4bv64)] && (gammaMap[bvadd64(index, 3bv64)] && (gammaMap[bvadd64(index, 2bv64)] && (gammaMap[bvadd64(index, 1bv64)] && gammaMap[index]))))))) } -function {:extern} gamma_load8(gammaMap: [bv64]bool, index: bv64) returns (bool) { - gammaMap[index] -} - -function {:extern} gamma_store32(gammaMap: [bv64]bool, index: bv64, value: bool) returns ([bv64]bool) { - gammaMap[index := value][bvadd64(index, 1bv64) := value][bvadd64(index, 2bv64) := value][bvadd64(index, 3bv64) := value] -} - function {:extern} gamma_store64(gammaMap: [bv64]bool, index: bv64, value: bool) returns ([bv64]bool) { gammaMap[index := value][bvadd64(index, 1bv64) := value][bvadd64(index, 2bv64) := value][bvadd64(index, 3bv64) := value][bvadd64(index, 4bv64) := value][bvadd64(index, 5bv64) := value][bvadd64(index, 6bv64) := value][bvadd64(index, 7bv64) := value] } -function {:extern} gamma_store8(gammaMap: [bv64]bool, index: bv64, value: bool) returns ([bv64]bool) { - gammaMap[index := value] -} - -function {:extern} memory_load32_le(memory: [bv64]bv8, index: bv64) returns (bv32) { - (memory[bvadd64(index, 3bv64)] ++ (memory[bvadd64(index, 2bv64)] ++ (memory[bvadd64(index, 1bv64)] ++ memory[index]))) -} - function {:extern} memory_load64_le(memory: [bv64]bv8, index: bv64) returns (bv64) { (memory[bvadd64(index, 7bv64)] ++ (memory[bvadd64(index, 6bv64)] ++ (memory[bvadd64(index, 5bv64)] ++ (memory[bvadd64(index, 4bv64)] ++ (memory[bvadd64(index, 3bv64)] ++ (memory[bvadd64(index, 2bv64)] ++ (memory[bvadd64(index, 1bv64)] ++ memory[index]))))))) } @@ -59,40 +41,26 @@ function {:extern} memory_load8_le(memory: [bv64]bv8, index: bv64) returns (bv8) memory[index] } -function {:extern} memory_store32_le(memory: [bv64]bv8, index: bv64, value: bv32) returns ([bv64]bv8) { - memory[index := value[8:0]][bvadd64(index, 1bv64) := value[16:8]][bvadd64(index, 2bv64) := value[24:16]][bvadd64(index, 3bv64) := value[32:24]] -} - function {:extern} memory_store64_le(memory: [bv64]bv8, index: bv64, value: bv64) returns ([bv64]bv8) { memory[index := value[8:0]][bvadd64(index, 1bv64) := value[16:8]][bvadd64(index, 2bv64) := value[24:16]][bvadd64(index, 3bv64) := value[32:24]][bvadd64(index, 4bv64) := value[40:32]][bvadd64(index, 5bv64) := value[48:40]][bvadd64(index, 6bv64) := value[56:48]][bvadd64(index, 7bv64) := value[64:56]] } -function {:extern} memory_store8_le(memory: [bv64]bv8, index: bv64, value: bv8) returns ([bv64]bv8) { - memory[index := value[8:0]] -} - -function {:extern} {:bvbuiltin "zero_extend 24"} zero_extend24_8(bv8) returns (bv32); -function {:extern} {:bvbuiltin "zero_extend 32"} zero_extend32_32(bv32) returns (bv64); procedure {:extern} rely(); modifies Gamma_mem, mem; ensures (Gamma_mem == old(Gamma_mem)); ensures (mem == old(mem)); - free ensures (memory_load64_le(mem, 2272bv64) == 131073bv64); - free ensures (memory_load64_le(mem, 2280bv64) == 8241983568019286100bv64); - free ensures (memory_load64_le(mem, 2288bv64) == 748482783423457568bv64); - free ensures (memory_load64_le(mem, 2296bv64) == 0bv64); - free ensures (memory_load64_le(mem, 2304bv64) == 2338615504306268244bv64); - free ensures (memory_load64_le(mem, 2312bv64) == 2924860384375657bv64); - free ensures (memory_load64_le(mem, 2320bv64) == 7017575154564032596bv64); - free ensures (memory_load64_le(mem, 2328bv64) == 7089063228440191084bv64); - free ensures (memory_load64_le(mem, 2336bv64) == 2675202446017455468bv64); - free ensures (memory_load8_le(mem, 2344bv64) == 100bv8); - free ensures (memory_load8_le(mem, 2345bv64) == 10bv8); - free ensures (memory_load8_le(mem, 2346bv64) == 0bv8); - free ensures (memory_load64_le(mem, 68992bv64) == 2064bv64); - free ensures (memory_load64_le(mem, 69000bv64) == 1984bv64); - free ensures (memory_load64_le(mem, 69616bv64) == 2068bv64); - free ensures (memory_load64_le(mem, 69640bv64) == 69640bv64); + free ensures (memory_load64_le(mem, 4196440bv64) == 131073bv64); + free ensures (memory_load64_le(mem, 4196448bv64) == 8241983568019286100bv64); + free ensures (memory_load64_le(mem, 4196456bv64) == 748482783423457568bv64); + free ensures (memory_load64_le(mem, 4196464bv64) == 0bv64); + free ensures (memory_load64_le(mem, 4196472bv64) == 2338615504306268244bv64); + free ensures (memory_load64_le(mem, 4196480bv64) == 2924860384375657bv64); + free ensures (memory_load64_le(mem, 4196488bv64) == 7017575154564032596bv64); + free ensures (memory_load64_le(mem, 4196496bv64) == 7089063228440191084bv64); + free ensures (memory_load64_le(mem, 4196504bv64) == 2675202446017455468bv64); + free ensures (memory_load8_le(mem, 4196512bv64) == 100bv8); + free ensures (memory_load8_le(mem, 4196513bv64) == 10bv8); + free ensures (memory_load8_le(mem, 4196514bv64) == 0bv8); procedure {:extern} rely_transitive(); modifies Gamma_mem, mem; @@ -110,448 +78,160 @@ procedure {:extern} rely_reflexive(); procedure {:extern} guarantee_reflexive(); modifies Gamma_mem, mem; -procedure main_2068(); - modifies Gamma_R0, Gamma_R1, Gamma_R16, Gamma_R17, Gamma_R29, Gamma_R30, Gamma_R31, Gamma_mem, Gamma_stack, R0, R1, R16, R17, R29, R30, R31, mem, stack; - free requires (memory_load64_le(mem, 69632bv64) == 0bv64); - free requires (memory_load64_le(mem, 69640bv64) == 69640bv64); - free requires (memory_load64_le(mem, 2272bv64) == 131073bv64); - free requires (memory_load64_le(mem, 2280bv64) == 8241983568019286100bv64); - free requires (memory_load64_le(mem, 2288bv64) == 748482783423457568bv64); - free requires (memory_load64_le(mem, 2296bv64) == 0bv64); - free requires (memory_load64_le(mem, 2304bv64) == 2338615504306268244bv64); - free requires (memory_load64_le(mem, 2312bv64) == 2924860384375657bv64); - free requires (memory_load64_le(mem, 2320bv64) == 7017575154564032596bv64); - free requires (memory_load64_le(mem, 2328bv64) == 7089063228440191084bv64); - free requires (memory_load64_le(mem, 2336bv64) == 2675202446017455468bv64); - free requires (memory_load8_le(mem, 2344bv64) == 100bv8); - free requires (memory_load8_le(mem, 2345bv64) == 10bv8); - free requires (memory_load8_le(mem, 2346bv64) == 0bv8); - free requires (memory_load64_le(mem, 68992bv64) == 2064bv64); - free requires (memory_load64_le(mem, 69000bv64) == 1984bv64); - free requires (memory_load64_le(mem, 69616bv64) == 2068bv64); - free requires (memory_load64_le(mem, 69640bv64) == 69640bv64); +procedure FUN_400680(); + modifies Gamma_R16, Gamma_R17, Gamma_mem, R16, R17, mem; + free requires (memory_load64_le(mem, 4196440bv64) == 131073bv64); + free requires (memory_load64_le(mem, 4196448bv64) == 8241983568019286100bv64); + free requires (memory_load64_le(mem, 4196456bv64) == 748482783423457568bv64); + free requires (memory_load64_le(mem, 4196464bv64) == 0bv64); + free requires (memory_load64_le(mem, 4196472bv64) == 2338615504306268244bv64); + free requires (memory_load64_le(mem, 4196480bv64) == 2924860384375657bv64); + free requires (memory_load64_le(mem, 4196488bv64) == 7017575154564032596bv64); + free requires (memory_load64_le(mem, 4196496bv64) == 7089063228440191084bv64); + free requires (memory_load64_le(mem, 4196504bv64) == 2675202446017455468bv64); + free requires (memory_load8_le(mem, 4196512bv64) == 100bv8); + free requires (memory_load8_le(mem, 4196513bv64) == 10bv8); + free requires (memory_load8_le(mem, 4196514bv64) == 0bv8); + free ensures (memory_load64_le(mem, 4196440bv64) == 131073bv64); + free ensures (memory_load64_le(mem, 4196448bv64) == 8241983568019286100bv64); + free ensures (memory_load64_le(mem, 4196456bv64) == 748482783423457568bv64); + free ensures (memory_load64_le(mem, 4196464bv64) == 0bv64); + free ensures (memory_load64_le(mem, 4196472bv64) == 2338615504306268244bv64); + free ensures (memory_load64_le(mem, 4196480bv64) == 2924860384375657bv64); + free ensures (memory_load64_le(mem, 4196488bv64) == 7017575154564032596bv64); + free ensures (memory_load64_le(mem, 4196496bv64) == 7089063228440191084bv64); + free ensures (memory_load64_le(mem, 4196504bv64) == 2675202446017455468bv64); + free ensures (memory_load8_le(mem, 4196512bv64) == 100bv8); + free ensures (memory_load8_le(mem, 4196513bv64) == 10bv8); + free ensures (memory_load8_le(mem, 4196514bv64) == 0bv8); + +implementation FUN_400680() +{ + var $load11: bv64; + var Gamma_$load11: bool; + $FUN_400680$__0__$i2bc6yURTw~Pq2nxe63pQA: + assume {:captureState "$FUN_400680$__0__$i2bc6yURTw~Pq2nxe63pQA"} true; + R16, Gamma_R16 := 4321280bv64, true; + call rely(); + $load11, Gamma_$load11 := memory_load64_le(mem, bvadd64(R16, 4040bv64)), (gamma_load64(Gamma_mem, bvadd64(R16, 4040bv64)) || L(mem, bvadd64(R16, 4040bv64))); + R17, Gamma_R17 := $load11, Gamma_$load11; + R16, Gamma_R16 := bvadd64(R16, 4040bv64), Gamma_R16; + call __printf_chk(); + assume false; +} + +procedure main(); + modifies Gamma_R0, Gamma_R1, Gamma_R16, Gamma_R17, Gamma_R2, Gamma_R29, Gamma_R30, Gamma_R31, Gamma_mem, Gamma_stack, R0, R1, R16, R17, R2, R29, R30, R31, mem, stack; + free requires (memory_load64_le(mem, 4325376bv64) == 0bv64); + free requires (memory_load64_le(mem, 4325384bv64) == 0bv64); + free requires (memory_load64_le(mem, 4196440bv64) == 131073bv64); + free requires (memory_load64_le(mem, 4196448bv64) == 8241983568019286100bv64); + free requires (memory_load64_le(mem, 4196456bv64) == 748482783423457568bv64); + free requires (memory_load64_le(mem, 4196464bv64) == 0bv64); + free requires (memory_load64_le(mem, 4196472bv64) == 2338615504306268244bv64); + free requires (memory_load64_le(mem, 4196480bv64) == 2924860384375657bv64); + free requires (memory_load64_le(mem, 4196488bv64) == 7017575154564032596bv64); + free requires (memory_load64_le(mem, 4196496bv64) == 7089063228440191084bv64); + free requires (memory_load64_le(mem, 4196504bv64) == 2675202446017455468bv64); + free requires (memory_load8_le(mem, 4196512bv64) == 100bv8); + free requires (memory_load8_le(mem, 4196513bv64) == 10bv8); + free requires (memory_load8_le(mem, 4196514bv64) == 0bv8); free ensures (Gamma_R29 == old(Gamma_R29)); free ensures (Gamma_R31 == old(Gamma_R31)); free ensures (R29 == old(R29)); free ensures (R31 == old(R31)); - free ensures (memory_load64_le(mem, 2272bv64) == 131073bv64); - free ensures (memory_load64_le(mem, 2280bv64) == 8241983568019286100bv64); - free ensures (memory_load64_le(mem, 2288bv64) == 748482783423457568bv64); - free ensures (memory_load64_le(mem, 2296bv64) == 0bv64); - free ensures (memory_load64_le(mem, 2304bv64) == 2338615504306268244bv64); - free ensures (memory_load64_le(mem, 2312bv64) == 2924860384375657bv64); - free ensures (memory_load64_le(mem, 2320bv64) == 7017575154564032596bv64); - free ensures (memory_load64_le(mem, 2328bv64) == 7089063228440191084bv64); - free ensures (memory_load64_le(mem, 2336bv64) == 2675202446017455468bv64); - free ensures (memory_load8_le(mem, 2344bv64) == 100bv8); - free ensures (memory_load8_le(mem, 2345bv64) == 10bv8); - free ensures (memory_load8_le(mem, 2346bv64) == 0bv8); - free ensures (memory_load64_le(mem, 68992bv64) == 2064bv64); - free ensures (memory_load64_le(mem, 69000bv64) == 1984bv64); - free ensures (memory_load64_le(mem, 69616bv64) == 2068bv64); - free ensures (memory_load64_le(mem, 69640bv64) == 69640bv64); - -implementation main_2068() + free ensures (memory_load64_le(mem, 4196440bv64) == 131073bv64); + free ensures (memory_load64_le(mem, 4196448bv64) == 8241983568019286100bv64); + free ensures (memory_load64_le(mem, 4196456bv64) == 748482783423457568bv64); + free ensures (memory_load64_le(mem, 4196464bv64) == 0bv64); + free ensures (memory_load64_le(mem, 4196472bv64) == 2338615504306268244bv64); + free ensures (memory_load64_le(mem, 4196480bv64) == 2924860384375657bv64); + free ensures (memory_load64_le(mem, 4196488bv64) == 7017575154564032596bv64); + free ensures (memory_load64_le(mem, 4196496bv64) == 7089063228440191084bv64); + free ensures (memory_load64_le(mem, 4196504bv64) == 2675202446017455468bv64); + free ensures (memory_load8_le(mem, 4196512bv64) == 100bv8); + free ensures (memory_load8_le(mem, 4196513bv64) == 10bv8); + free ensures (memory_load8_le(mem, 4196514bv64) == 0bv8); + +implementation main() { - var Cse0__5_8_0: bv64; - var Gamma_Cse0__5_8_0: bool; - var Gamma_load10: bool; - var Gamma_load11: bool; - var Gamma_load12: bool; - var Gamma_load13: bool; - var Gamma_load14: bool; - var Gamma_load15: bool; - var Gamma_load16: bool; - var Gamma_load17: bool; - var Gamma_load7: bool; - var Gamma_load8: bool; - var Gamma_load9: bool; - var load10: bv64; - var load11: bv64; - var load12: bv64; - var load13: bv32; - var load14: bv64; - var load15: bv64; - var load16: bv64; - var load17: bv8; - var load7: bv64; - var load8: bv32; - var load9: bv64; - main_2068__0__AZzshZKtSEuJn8wjRf5oKw: - assume {:captureState "main_2068__0__AZzshZKtSEuJn8wjRf5oKw"} true; - Cse0__5_8_0, Gamma_Cse0__5_8_0 := bvadd64(R31, 18446744073709551552bv64), Gamma_R31; - stack, Gamma_stack := memory_store64_le(stack, Cse0__5_8_0, R29), gamma_store64(Gamma_stack, Cse0__5_8_0, Gamma_R29); - assume {:captureState "2068_1"} true; - stack, Gamma_stack := memory_store64_le(stack, bvadd64(Cse0__5_8_0, 8bv64), R30), gamma_store64(Gamma_stack, bvadd64(Cse0__5_8_0, 8bv64), Gamma_R30); - assume {:captureState "2068_2"} true; - R31, Gamma_R31 := Cse0__5_8_0, Gamma_Cse0__5_8_0; + var $load15: bv64; + var $load16: bv64; + var Cse0__5$3$0: bv64; + var Gamma_$load15: bool; + var Gamma_$load16: bool; + var Gamma_Cse0__5$3$0: bool; + $main$__0__$t_6C~3O4SbalxMsQ9Vg3LA: + assume {:captureState "$main$__0__$t_6C~3O4SbalxMsQ9Vg3LA"} true; + Cse0__5$3$0, Gamma_Cse0__5$3$0 := bvadd64(R31, 18446744073709551600bv64), Gamma_R31; + stack, Gamma_stack := memory_store64_le(stack, Cse0__5$3$0, R29), gamma_store64(Gamma_stack, Cse0__5$3$0, Gamma_R29); + assume {:captureState "4196032$1"} true; + stack, Gamma_stack := memory_store64_le(stack, bvadd64(Cse0__5$3$0, 8bv64), R30), gamma_store64(Gamma_stack, bvadd64(Cse0__5$3$0, 8bv64), Gamma_R30); + assume {:captureState "4196032$2"} true; + R31, Gamma_R31 := Cse0__5$3$0, Gamma_Cse0__5$3$0; + R2, Gamma_R2 := 65bv64, true; + R1, Gamma_R1 := 4194304bv64, true; R29, Gamma_R29 := R31, Gamma_R31; - R0, Gamma_R0 := 1bv64, true; - R30, Gamma_R30 := 2084bv64, true; - call FUN_680_1664(); - goto main_2068__1___Jt_AVu0STa3DsAXddfzmA; - main_2068__1___Jt_AVu0STa3DsAXddfzmA: - assume {:captureState "main_2068__1___Jt_AVu0STa3DsAXddfzmA"} true; - stack, Gamma_stack := memory_store64_le(stack, bvadd64(R31, 40bv64), R0), gamma_store64(Gamma_stack, bvadd64(R31, 40bv64), Gamma_R0); - assume {:captureState "2084_0"} true; - R0, Gamma_R0 := 11bv64, true; - stack, Gamma_stack := memory_store32_le(stack, bvadd64(R31, 28bv64), R0[32:0]), gamma_store32(Gamma_stack, bvadd64(R31, 28bv64), Gamma_R0); - assume {:captureState "2092_0"} true; - R0, Gamma_R0 := 4bv64, true; - R30, Gamma_R30 := 2104bv64, true; - call FUN_680_1664(); - goto main_2068__2__vVSPHAjaRAyVtXo~vTrC7g; - main_2068__2__vVSPHAjaRAyVtXo~vTrC7g: - assume {:captureState "main_2068__2__vVSPHAjaRAyVtXo~vTrC7g"} true; - stack, Gamma_stack := memory_store64_le(stack, bvadd64(R31, 48bv64), R0), gamma_store64(Gamma_stack, bvadd64(R31, 48bv64), Gamma_R0); - assume {:captureState "2104_0"} true; - R0, Gamma_R0 := 10bv64, true; - stack, Gamma_stack := memory_store32_le(stack, bvadd64(R31, 32bv64), R0[32:0]), gamma_store32(Gamma_stack, bvadd64(R31, 32bv64), Gamma_R0); - assume {:captureState "2112_0"} true; - R0, Gamma_R0 := 4bv64, true; - R30, Gamma_R30 := 2124bv64, true; - call FUN_680_1664(); - goto main_2068__3__qo4gHbnYSpa0qcz2RNo4Dw; - main_2068__3__qo4gHbnYSpa0qcz2RNo4Dw: - assume {:captureState "main_2068__3__qo4gHbnYSpa0qcz2RNo4Dw"} true; - stack, Gamma_stack := memory_store64_le(stack, bvadd64(R31, 56bv64), R0), gamma_store64(Gamma_stack, bvadd64(R31, 56bv64), Gamma_R0); - assume {:captureState "2124_0"} true; - R0, Gamma_R0 := 9bv64, true; - stack, Gamma_stack := memory_store32_le(stack, bvadd64(R31, 36bv64), R0[32:0]), gamma_store32(Gamma_stack, bvadd64(R31, 36bv64), Gamma_R0); - assume {:captureState "2132_0"} true; - load14, Gamma_load14 := memory_load64_le(stack, bvadd64(R31, 40bv64)), gamma_load64(Gamma_stack, bvadd64(R31, 40bv64)); - R0, Gamma_R0 := load14, Gamma_load14; - R1, Gamma_R1 := 65bv64, true; - call rely(); - assert (L(mem, R0) ==> Gamma_R1); - mem, Gamma_mem := memory_store8_le(mem, R0, R1[8:0]), gamma_store8(Gamma_mem, R0, Gamma_R1); - assume {:captureState "2144_0"} true; - load15, Gamma_load15 := memory_load64_le(stack, bvadd64(R31, 48bv64)), gamma_load64(Gamma_stack, bvadd64(R31, 48bv64)); - R0, Gamma_R0 := load15, Gamma_load15; - R1, Gamma_R1 := 42bv64, true; - call rely(); - assert (L(mem, R0) ==> Gamma_R1); - mem, Gamma_mem := memory_store32_le(mem, R0, R1[32:0]), gamma_store32(Gamma_mem, R0, Gamma_R1); - assume {:captureState "2156_0"} true; - load16, Gamma_load16 := memory_load64_le(stack, bvadd64(R31, 40bv64)), gamma_load64(Gamma_stack, bvadd64(R31, 40bv64)); - R0, Gamma_R0 := load16, Gamma_load16; - call rely(); - load17, Gamma_load17 := memory_load8_le(mem, R0), (gamma_load8(Gamma_mem, R0) || L(mem, R0)); - R0, Gamma_R0 := zero_extend32_32(zero_extend24_8(load17)), Gamma_load17; - R1, Gamma_R1 := zero_extend32_32(R0[32:0]), Gamma_R0; - R0, Gamma_R0 := 0bv64, true; - R0, Gamma_R0 := bvadd64(R0, 2280bv64), Gamma_R0; - R30, Gamma_R30 := 2184bv64, true; - call FUN_6c0_1728(); - goto main_2068__4__sKQEwpisRC~Deg8htVYDGA; - main_2068__4__sKQEwpisRC~Deg8htVYDGA: - assume {:captureState "main_2068__4__sKQEwpisRC~Deg8htVYDGA"} true; - load7, Gamma_load7 := memory_load64_le(stack, bvadd64(R31, 48bv64)), gamma_load64(Gamma_stack, bvadd64(R31, 48bv64)); - R0, Gamma_R0 := load7, Gamma_load7; - call rely(); - load8, Gamma_load8 := memory_load32_le(mem, R0), (gamma_load32(Gamma_mem, R0) || L(mem, R0)); - R0, Gamma_R0 := zero_extend32_32(load8), Gamma_load8; - R1, Gamma_R1 := zero_extend32_32(R0[32:0]), Gamma_R0; - R0, Gamma_R0 := 0bv64, true; - R0, Gamma_R0 := bvadd64(R0, 2304bv64), Gamma_R0; - R30, Gamma_R30 := 2208bv64, true; - call FUN_6c0_1728(); - goto main_2068__5__UU_sb98JQMuNTccrtfVShA; - main_2068__5__UU_sb98JQMuNTccrtfVShA: - assume {:captureState "main_2068__5__UU_sb98JQMuNTccrtfVShA"} true; - load13, Gamma_load13 := memory_load32_le(stack, bvadd64(R31, 32bv64)), gamma_load32(Gamma_stack, bvadd64(R31, 32bv64)); - R1, Gamma_R1 := zero_extend32_32(load13), Gamma_load13; + R1, Gamma_R1 := bvadd64(R1, 2144bv64), Gamma_R1; + R0, Gamma_R0 := 2bv64, true; + R30, Gamma_R30 := 4196060bv64, true; + call FUN_400680(); + goto $main$__1__$8D7O5dmBS1ek~5BDJ9mBtA; + $main$__1__$8D7O5dmBS1ek~5BDJ9mBtA: + assume {:captureState "$main$__1__$8D7O5dmBS1ek~5BDJ9mBtA"} true; + R2, Gamma_R2 := 42bv64, true; + R1, Gamma_R1 := 4194304bv64, true; + R0, Gamma_R0 := 2bv64, true; + R1, Gamma_R1 := bvadd64(R1, 2168bv64), Gamma_R1; + R30, Gamma_R30 := 4196052bv64, true; + call FUN_400680(); + goto $main$__2__$UtkQk4ONSE6hNEuDpZ95RQ; + $main$__2__$UtkQk4ONSE6hNEuDpZ95RQ: + assume {:captureState "$main$__2__$UtkQk4ONSE6hNEuDpZ95RQ"} true; + R2, Gamma_R2 := 10bv64, true; + R1, Gamma_R1 := 4194304bv64, true; + R0, Gamma_R0 := 2bv64, true; + R1, Gamma_R1 := bvadd64(R1, 2184bv64), Gamma_R1; + R30, Gamma_R30 := 4196052bv64, true; + call FUN_400680(); + goto $main$__3__$KTHyjTW0SWiGwqylcMDw6Q; + $main$__3__$KTHyjTW0SWiGwqylcMDw6Q: + assume {:captureState "$main$__3__$KTHyjTW0SWiGwqylcMDw6Q"} true; R0, Gamma_R0 := 0bv64, true; - R0, Gamma_R0 := bvadd64(R0, 2320bv64), Gamma_R0; - R30, Gamma_R30 := 2224bv64, true; - call FUN_6c0_1728(); - goto main_2068__6__xqmLBBa1TNCvLDxmYyOHcQ; - main_2068__6__xqmLBBa1TNCvLDxmYyOHcQ: - assume {:captureState "main_2068__6__xqmLBBa1TNCvLDxmYyOHcQ"} true; - load9, Gamma_load9 := memory_load64_le(stack, bvadd64(R31, 40bv64)), gamma_load64(Gamma_stack, bvadd64(R31, 40bv64)); - R0, Gamma_R0 := load9, Gamma_load9; - R30, Gamma_R30 := 2232bv64, true; - call FUN_6b0_1712(); - goto main_2068__7__9CEaMIK4TyKPblekpKg8LA; - main_2068__7__9CEaMIK4TyKPblekpKg8LA: - assume {:captureState "main_2068__7__9CEaMIK4TyKPblekpKg8LA"} true; - load10, Gamma_load10 := memory_load64_le(stack, bvadd64(R31, 48bv64)), gamma_load64(Gamma_stack, bvadd64(R31, 48bv64)); - R0, Gamma_R0 := load10, Gamma_load10; - R30, Gamma_R30 := 2240bv64, true; - call FUN_6b0_1712(); - goto main_2068__8__kYgEsvZnR5mgdgIreZDDSA; - main_2068__8__kYgEsvZnR5mgdgIreZDDSA: - assume {:captureState "main_2068__8__kYgEsvZnR5mgdgIreZDDSA"} true; - R0, Gamma_R0 := 0bv64, true; - load11, Gamma_load11 := memory_load64_le(stack, R31), gamma_load64(Gamma_stack, R31); - R29, Gamma_R29 := load11, Gamma_load11; - load12, Gamma_load12 := memory_load64_le(stack, bvadd64(R31, 8bv64)), gamma_load64(Gamma_stack, bvadd64(R31, 8bv64)); - R30, Gamma_R30 := load12, Gamma_load12; - R31, Gamma_R31 := bvadd64(R31, 64bv64), Gamma_R31; - goto main_2068_basil_return; - main_2068_basil_return: - assume {:captureState "main_2068_basil_return"} true; + $load15, Gamma_$load15 := memory_load64_le(stack, R31), gamma_load64(Gamma_stack, R31); + R29, Gamma_R29 := $load15, Gamma_$load15; + $load16, Gamma_$load16 := memory_load64_le(stack, bvadd64(R31, 8bv64)), gamma_load64(Gamma_stack, bvadd64(R31, 8bv64)); + R30, Gamma_R30 := $load16, Gamma_$load16; + R31, Gamma_R31 := bvadd64(R31, 16bv64), Gamma_R31; + goto main_basil_return; + main_basil_return: + assume {:captureState "main_basil_return"} true; return; } -procedure FUN_6b0_1712(); - modifies Gamma_R16, Gamma_R17, Gamma_mem, R16, R17, mem; - free requires (memory_load64_le(mem, 2272bv64) == 131073bv64); - free requires (memory_load64_le(mem, 2280bv64) == 8241983568019286100bv64); - free requires (memory_load64_le(mem, 2288bv64) == 748482783423457568bv64); - free requires (memory_load64_le(mem, 2296bv64) == 0bv64); - free requires (memory_load64_le(mem, 2304bv64) == 2338615504306268244bv64); - free requires (memory_load64_le(mem, 2312bv64) == 2924860384375657bv64); - free requires (memory_load64_le(mem, 2320bv64) == 7017575154564032596bv64); - free requires (memory_load64_le(mem, 2328bv64) == 7089063228440191084bv64); - free requires (memory_load64_le(mem, 2336bv64) == 2675202446017455468bv64); - free requires (memory_load8_le(mem, 2344bv64) == 100bv8); - free requires (memory_load8_le(mem, 2345bv64) == 10bv8); - free requires (memory_load8_le(mem, 2346bv64) == 0bv8); - free requires (memory_load64_le(mem, 68992bv64) == 2064bv64); - free requires (memory_load64_le(mem, 69000bv64) == 1984bv64); - free requires (memory_load64_le(mem, 69616bv64) == 2068bv64); - free requires (memory_load64_le(mem, 69640bv64) == 69640bv64); - free ensures (memory_load64_le(mem, 2272bv64) == 131073bv64); - free ensures (memory_load64_le(mem, 2280bv64) == 8241983568019286100bv64); - free ensures (memory_load64_le(mem, 2288bv64) == 748482783423457568bv64); - free ensures (memory_load64_le(mem, 2296bv64) == 0bv64); - free ensures (memory_load64_le(mem, 2304bv64) == 2338615504306268244bv64); - free ensures (memory_load64_le(mem, 2312bv64) == 2924860384375657bv64); - free ensures (memory_load64_le(mem, 2320bv64) == 7017575154564032596bv64); - free ensures (memory_load64_le(mem, 2328bv64) == 7089063228440191084bv64); - free ensures (memory_load64_le(mem, 2336bv64) == 2675202446017455468bv64); - free ensures (memory_load8_le(mem, 2344bv64) == 100bv8); - free ensures (memory_load8_le(mem, 2345bv64) == 10bv8); - free ensures (memory_load8_le(mem, 2346bv64) == 0bv8); - free ensures (memory_load64_le(mem, 68992bv64) == 2064bv64); - free ensures (memory_load64_le(mem, 69000bv64) == 1984bv64); - free ensures (memory_load64_le(mem, 69616bv64) == 2068bv64); - free ensures (memory_load64_le(mem, 69640bv64) == 69640bv64); - -implementation FUN_6b0_1712() -{ - var Gamma_load21: bool; - var load21: bv64; - FUN_6b0_1712__0__dQPm~3VORAieWEy83BwbqQ: - assume {:captureState "FUN_6b0_1712__0__dQPm~3VORAieWEy83BwbqQ"} true; - R16, Gamma_R16 := 65536bv64, true; - call rely(); - load21, Gamma_load21 := memory_load64_le(mem, bvadd64(R16, 4032bv64)), (gamma_load64(Gamma_mem, bvadd64(R16, 4032bv64)) || L(mem, bvadd64(R16, 4032bv64))); - R17, Gamma_R17 := load21, Gamma_load21; - R16, Gamma_R16 := bvadd64(R16, 4032bv64), Gamma_R16; - call #free(); - goto FUN_6b0_1712_basil_return; - FUN_6b0_1712_basil_return: - assume {:captureState "FUN_6b0_1712_basil_return"} true; - return; -} - -procedure FUN_6c0_1728(); - modifies Gamma_R16, Gamma_R17, Gamma_mem, R16, R17, mem; - free requires (memory_load64_le(mem, 2272bv64) == 131073bv64); - free requires (memory_load64_le(mem, 2280bv64) == 8241983568019286100bv64); - free requires (memory_load64_le(mem, 2288bv64) == 748482783423457568bv64); - free requires (memory_load64_le(mem, 2296bv64) == 0bv64); - free requires (memory_load64_le(mem, 2304bv64) == 2338615504306268244bv64); - free requires (memory_load64_le(mem, 2312bv64) == 2924860384375657bv64); - free requires (memory_load64_le(mem, 2320bv64) == 7017575154564032596bv64); - free requires (memory_load64_le(mem, 2328bv64) == 7089063228440191084bv64); - free requires (memory_load64_le(mem, 2336bv64) == 2675202446017455468bv64); - free requires (memory_load8_le(mem, 2344bv64) == 100bv8); - free requires (memory_load8_le(mem, 2345bv64) == 10bv8); - free requires (memory_load8_le(mem, 2346bv64) == 0bv8); - free requires (memory_load64_le(mem, 68992bv64) == 2064bv64); - free requires (memory_load64_le(mem, 69000bv64) == 1984bv64); - free requires (memory_load64_le(mem, 69616bv64) == 2068bv64); - free requires (memory_load64_le(mem, 69640bv64) == 69640bv64); - free ensures (memory_load64_le(mem, 2272bv64) == 131073bv64); - free ensures (memory_load64_le(mem, 2280bv64) == 8241983568019286100bv64); - free ensures (memory_load64_le(mem, 2288bv64) == 748482783423457568bv64); - free ensures (memory_load64_le(mem, 2296bv64) == 0bv64); - free ensures (memory_load64_le(mem, 2304bv64) == 2338615504306268244bv64); - free ensures (memory_load64_le(mem, 2312bv64) == 2924860384375657bv64); - free ensures (memory_load64_le(mem, 2320bv64) == 7017575154564032596bv64); - free ensures (memory_load64_le(mem, 2328bv64) == 7089063228440191084bv64); - free ensures (memory_load64_le(mem, 2336bv64) == 2675202446017455468bv64); - free ensures (memory_load8_le(mem, 2344bv64) == 100bv8); - free ensures (memory_load8_le(mem, 2345bv64) == 10bv8); - free ensures (memory_load8_le(mem, 2346bv64) == 0bv8); - free ensures (memory_load64_le(mem, 68992bv64) == 2064bv64); - free ensures (memory_load64_le(mem, 69000bv64) == 1984bv64); - free ensures (memory_load64_le(mem, 69616bv64) == 2068bv64); - free ensures (memory_load64_le(mem, 69640bv64) == 69640bv64); - -implementation FUN_6c0_1728() -{ - var Gamma_load24: bool; - var load24: bv64; - FUN_6c0_1728__0__e2Fzppr9TBufcmss~nKX6w: - assume {:captureState "FUN_6c0_1728__0__e2Fzppr9TBufcmss~nKX6w"} true; - R16, Gamma_R16 := 65536bv64, true; - call rely(); - load24, Gamma_load24 := memory_load64_le(mem, bvadd64(R16, 4040bv64)), (gamma_load64(Gamma_mem, bvadd64(R16, 4040bv64)) || L(mem, bvadd64(R16, 4040bv64))); - R17, Gamma_R17 := load24, Gamma_load24; - R16, Gamma_R16 := bvadd64(R16, 4040bv64), Gamma_R16; - call printf(); - goto FUN_6c0_1728_basil_return; - FUN_6c0_1728_basil_return: - assume {:captureState "FUN_6c0_1728_basil_return"} true; - return; -} - -procedure FUN_680_1664(); - modifies Gamma_R16, Gamma_R17, Gamma_mem, R16, R17, mem; - free requires (memory_load64_le(mem, 2272bv64) == 131073bv64); - free requires (memory_load64_le(mem, 2280bv64) == 8241983568019286100bv64); - free requires (memory_load64_le(mem, 2288bv64) == 748482783423457568bv64); - free requires (memory_load64_le(mem, 2296bv64) == 0bv64); - free requires (memory_load64_le(mem, 2304bv64) == 2338615504306268244bv64); - free requires (memory_load64_le(mem, 2312bv64) == 2924860384375657bv64); - free requires (memory_load64_le(mem, 2320bv64) == 7017575154564032596bv64); - free requires (memory_load64_le(mem, 2328bv64) == 7089063228440191084bv64); - free requires (memory_load64_le(mem, 2336bv64) == 2675202446017455468bv64); - free requires (memory_load8_le(mem, 2344bv64) == 100bv8); - free requires (memory_load8_le(mem, 2345bv64) == 10bv8); - free requires (memory_load8_le(mem, 2346bv64) == 0bv8); - free requires (memory_load64_le(mem, 68992bv64) == 2064bv64); - free requires (memory_load64_le(mem, 69000bv64) == 1984bv64); - free requires (memory_load64_le(mem, 69616bv64) == 2068bv64); - free requires (memory_load64_le(mem, 69640bv64) == 69640bv64); - free ensures (memory_load64_le(mem, 2272bv64) == 131073bv64); - free ensures (memory_load64_le(mem, 2280bv64) == 8241983568019286100bv64); - free ensures (memory_load64_le(mem, 2288bv64) == 748482783423457568bv64); - free ensures (memory_load64_le(mem, 2296bv64) == 0bv64); - free ensures (memory_load64_le(mem, 2304bv64) == 2338615504306268244bv64); - free ensures (memory_load64_le(mem, 2312bv64) == 2924860384375657bv64); - free ensures (memory_load64_le(mem, 2320bv64) == 7017575154564032596bv64); - free ensures (memory_load64_le(mem, 2328bv64) == 7089063228440191084bv64); - free ensures (memory_load64_le(mem, 2336bv64) == 2675202446017455468bv64); - free ensures (memory_load8_le(mem, 2344bv64) == 100bv8); - free ensures (memory_load8_le(mem, 2345bv64) == 10bv8); - free ensures (memory_load8_le(mem, 2346bv64) == 0bv8); - free ensures (memory_load64_le(mem, 68992bv64) == 2064bv64); - free ensures (memory_load64_le(mem, 69000bv64) == 1984bv64); - free ensures (memory_load64_le(mem, 69616bv64) == 2068bv64); - free ensures (memory_load64_le(mem, 69640bv64) == 69640bv64); - -implementation FUN_680_1664() -{ - var Gamma_load31: bool; - var load31: bv64; - FUN_680_1664__0__6hxifqk6SUCUrrqeP4IHHw: - assume {:captureState "FUN_680_1664__0__6hxifqk6SUCUrrqeP4IHHw"} true; - R16, Gamma_R16 := 65536bv64, true; - call rely(); - load31, Gamma_load31 := memory_load64_le(mem, bvadd64(R16, 4008bv64)), (gamma_load64(Gamma_mem, bvadd64(R16, 4008bv64)) || L(mem, bvadd64(R16, 4008bv64))); - R17, Gamma_R17 := load31, Gamma_load31; - R16, Gamma_R16 := bvadd64(R16, 4008bv64), Gamma_R16; - call malloc(); - goto FUN_680_1664_basil_return; - FUN_680_1664_basil_return: - assume {:captureState "FUN_680_1664_basil_return"} true; - return; -} - -procedure #free(); - free requires (memory_load64_le(mem, 2272bv64) == 131073bv64); - free requires (memory_load64_le(mem, 2280bv64) == 8241983568019286100bv64); - free requires (memory_load64_le(mem, 2288bv64) == 748482783423457568bv64); - free requires (memory_load64_le(mem, 2296bv64) == 0bv64); - free requires (memory_load64_le(mem, 2304bv64) == 2338615504306268244bv64); - free requires (memory_load64_le(mem, 2312bv64) == 2924860384375657bv64); - free requires (memory_load64_le(mem, 2320bv64) == 7017575154564032596bv64); - free requires (memory_load64_le(mem, 2328bv64) == 7089063228440191084bv64); - free requires (memory_load64_le(mem, 2336bv64) == 2675202446017455468bv64); - free requires (memory_load8_le(mem, 2344bv64) == 100bv8); - free requires (memory_load8_le(mem, 2345bv64) == 10bv8); - free requires (memory_load8_le(mem, 2346bv64) == 0bv8); - free requires (memory_load64_le(mem, 68992bv64) == 2064bv64); - free requires (memory_load64_le(mem, 69000bv64) == 1984bv64); - free requires (memory_load64_le(mem, 69616bv64) == 2068bv64); - free requires (memory_load64_le(mem, 69640bv64) == 69640bv64); - free ensures (memory_load64_le(mem, 2272bv64) == 131073bv64); - free ensures (memory_load64_le(mem, 2280bv64) == 8241983568019286100bv64); - free ensures (memory_load64_le(mem, 2288bv64) == 748482783423457568bv64); - free ensures (memory_load64_le(mem, 2296bv64) == 0bv64); - free ensures (memory_load64_le(mem, 2304bv64) == 2338615504306268244bv64); - free ensures (memory_load64_le(mem, 2312bv64) == 2924860384375657bv64); - free ensures (memory_load64_le(mem, 2320bv64) == 7017575154564032596bv64); - free ensures (memory_load64_le(mem, 2328bv64) == 7089063228440191084bv64); - free ensures (memory_load64_le(mem, 2336bv64) == 2675202446017455468bv64); - free ensures (memory_load8_le(mem, 2344bv64) == 100bv8); - free ensures (memory_load8_le(mem, 2345bv64) == 10bv8); - free ensures (memory_load8_le(mem, 2346bv64) == 0bv8); - free ensures (memory_load64_le(mem, 68992bv64) == 2064bv64); - free ensures (memory_load64_le(mem, 69000bv64) == 1984bv64); - free ensures (memory_load64_le(mem, 69616bv64) == 2068bv64); - free ensures (memory_load64_le(mem, 69640bv64) == 69640bv64); - -procedure printf(); - free requires (memory_load64_le(mem, 2272bv64) == 131073bv64); - free requires (memory_load64_le(mem, 2280bv64) == 8241983568019286100bv64); - free requires (memory_load64_le(mem, 2288bv64) == 748482783423457568bv64); - free requires (memory_load64_le(mem, 2296bv64) == 0bv64); - free requires (memory_load64_le(mem, 2304bv64) == 2338615504306268244bv64); - free requires (memory_load64_le(mem, 2312bv64) == 2924860384375657bv64); - free requires (memory_load64_le(mem, 2320bv64) == 7017575154564032596bv64); - free requires (memory_load64_le(mem, 2328bv64) == 7089063228440191084bv64); - free requires (memory_load64_le(mem, 2336bv64) == 2675202446017455468bv64); - free requires (memory_load8_le(mem, 2344bv64) == 100bv8); - free requires (memory_load8_le(mem, 2345bv64) == 10bv8); - free requires (memory_load8_le(mem, 2346bv64) == 0bv8); - free requires (memory_load64_le(mem, 68992bv64) == 2064bv64); - free requires (memory_load64_le(mem, 69000bv64) == 1984bv64); - free requires (memory_load64_le(mem, 69616bv64) == 2068bv64); - free requires (memory_load64_le(mem, 69640bv64) == 69640bv64); - free ensures (memory_load64_le(mem, 2272bv64) == 131073bv64); - free ensures (memory_load64_le(mem, 2280bv64) == 8241983568019286100bv64); - free ensures (memory_load64_le(mem, 2288bv64) == 748482783423457568bv64); - free ensures (memory_load64_le(mem, 2296bv64) == 0bv64); - free ensures (memory_load64_le(mem, 2304bv64) == 2338615504306268244bv64); - free ensures (memory_load64_le(mem, 2312bv64) == 2924860384375657bv64); - free ensures (memory_load64_le(mem, 2320bv64) == 7017575154564032596bv64); - free ensures (memory_load64_le(mem, 2328bv64) == 7089063228440191084bv64); - free ensures (memory_load64_le(mem, 2336bv64) == 2675202446017455468bv64); - free ensures (memory_load8_le(mem, 2344bv64) == 100bv8); - free ensures (memory_load8_le(mem, 2345bv64) == 10bv8); - free ensures (memory_load8_le(mem, 2346bv64) == 0bv8); - free ensures (memory_load64_le(mem, 68992bv64) == 2064bv64); - free ensures (memory_load64_le(mem, 69000bv64) == 1984bv64); - free ensures (memory_load64_le(mem, 69616bv64) == 2068bv64); - free ensures (memory_load64_le(mem, 69640bv64) == 69640bv64); - -procedure malloc(); - free requires (memory_load64_le(mem, 2272bv64) == 131073bv64); - free requires (memory_load64_le(mem, 2280bv64) == 8241983568019286100bv64); - free requires (memory_load64_le(mem, 2288bv64) == 748482783423457568bv64); - free requires (memory_load64_le(mem, 2296bv64) == 0bv64); - free requires (memory_load64_le(mem, 2304bv64) == 2338615504306268244bv64); - free requires (memory_load64_le(mem, 2312bv64) == 2924860384375657bv64); - free requires (memory_load64_le(mem, 2320bv64) == 7017575154564032596bv64); - free requires (memory_load64_le(mem, 2328bv64) == 7089063228440191084bv64); - free requires (memory_load64_le(mem, 2336bv64) == 2675202446017455468bv64); - free requires (memory_load8_le(mem, 2344bv64) == 100bv8); - free requires (memory_load8_le(mem, 2345bv64) == 10bv8); - free requires (memory_load8_le(mem, 2346bv64) == 0bv8); - free requires (memory_load64_le(mem, 68992bv64) == 2064bv64); - free requires (memory_load64_le(mem, 69000bv64) == 1984bv64); - free requires (memory_load64_le(mem, 69616bv64) == 2068bv64); - free requires (memory_load64_le(mem, 69640bv64) == 69640bv64); - free ensures (memory_load64_le(mem, 2272bv64) == 131073bv64); - free ensures (memory_load64_le(mem, 2280bv64) == 8241983568019286100bv64); - free ensures (memory_load64_le(mem, 2288bv64) == 748482783423457568bv64); - free ensures (memory_load64_le(mem, 2296bv64) == 0bv64); - free ensures (memory_load64_le(mem, 2304bv64) == 2338615504306268244bv64); - free ensures (memory_load64_le(mem, 2312bv64) == 2924860384375657bv64); - free ensures (memory_load64_le(mem, 2320bv64) == 7017575154564032596bv64); - free ensures (memory_load64_le(mem, 2328bv64) == 7089063228440191084bv64); - free ensures (memory_load64_le(mem, 2336bv64) == 2675202446017455468bv64); - free ensures (memory_load8_le(mem, 2344bv64) == 100bv8); - free ensures (memory_load8_le(mem, 2345bv64) == 10bv8); - free ensures (memory_load8_le(mem, 2346bv64) == 0bv8); - free ensures (memory_load64_le(mem, 68992bv64) == 2064bv64); - free ensures (memory_load64_le(mem, 69000bv64) == 1984bv64); - free ensures (memory_load64_le(mem, 69616bv64) == 2068bv64); - free ensures (memory_load64_le(mem, 69640bv64) == 69640bv64); +procedure __printf_chk(); + free requires (memory_load64_le(mem, 4196440bv64) == 131073bv64); + free requires (memory_load64_le(mem, 4196448bv64) == 8241983568019286100bv64); + free requires (memory_load64_le(mem, 4196456bv64) == 748482783423457568bv64); + free requires (memory_load64_le(mem, 4196464bv64) == 0bv64); + free requires (memory_load64_le(mem, 4196472bv64) == 2338615504306268244bv64); + free requires (memory_load64_le(mem, 4196480bv64) == 2924860384375657bv64); + free requires (memory_load64_le(mem, 4196488bv64) == 7017575154564032596bv64); + free requires (memory_load64_le(mem, 4196496bv64) == 7089063228440191084bv64); + free requires (memory_load64_le(mem, 4196504bv64) == 2675202446017455468bv64); + free requires (memory_load8_le(mem, 4196512bv64) == 100bv8); + free requires (memory_load8_le(mem, 4196513bv64) == 10bv8); + free requires (memory_load8_le(mem, 4196514bv64) == 0bv8); + free ensures (memory_load64_le(mem, 4196440bv64) == 131073bv64); + free ensures (memory_load64_le(mem, 4196448bv64) == 8241983568019286100bv64); + free ensures (memory_load64_le(mem, 4196456bv64) == 748482783423457568bv64); + free ensures (memory_load64_le(mem, 4196464bv64) == 0bv64); + free ensures (memory_load64_le(mem, 4196472bv64) == 2338615504306268244bv64); + free ensures (memory_load64_le(mem, 4196480bv64) == 2924860384375657bv64); + free ensures (memory_load64_le(mem, 4196488bv64) == 7017575154564032596bv64); + free ensures (memory_load64_le(mem, 4196496bv64) == 7089063228440191084bv64); + free ensures (memory_load64_le(mem, 4196504bv64) == 2675202446017455468bv64); + free ensures (memory_load8_le(mem, 4196512bv64) == 100bv8); + free ensures (memory_load8_le(mem, 4196513bv64) == 10bv8); + free ensures (memory_load8_le(mem, 4196514bv64) == 0bv8); diff --git a/src/test/correct/malloc_with_local3/clang/malloc_with_local3.adt b/src/test/correct/malloc_with_local3/clang/malloc_with_local3.adt deleted file mode 100644 index 731156d38..000000000 --- a/src/test/correct/malloc_with_local3/clang/malloc_with_local3.adt +++ /dev/null @@ -1,773 +0,0 @@ -Project(Attrs([Attr("filename","\"clang/malloc_with_local3.out\""), -Attr("image-specification","(declare abi (name str))\n(declare arch (name str))\n(declare base-address (addr int))\n(declare bias (off int))\n(declare bits (size int))\n(declare code-region (addr int) (size int) (off int))\n(declare code-start (addr int))\n(declare entry-point (addr int))\n(declare external-reference (addr int) (name str))\n(declare format (name str))\n(declare is-executable (flag bool))\n(declare is-little-endian (flag bool))\n(declare llvm:base-address (addr int))\n(declare llvm:code-entry (name str) (off int) (size int))\n(declare llvm:coff-import-library (name str))\n(declare llvm:coff-virtual-section-header (name str) (addr int) (size int))\n(declare llvm:elf-program-header (name str) (off int) (size int))\n(declare llvm:elf-program-header-flags (name str) (ld bool) (r bool) \n (w bool) (x bool))\n(declare llvm:elf-virtual-program-header (name str) (addr int) (size int))\n(declare llvm:entry-point (addr int))\n(declare llvm:macho-symbol (name str) (value int))\n(declare llvm:name-reference (at int) (name str))\n(declare llvm:relocation (at int) (addr int))\n(declare llvm:section-entry (name str) (addr int) (size int) (off int))\n(declare llvm:section-flags (name str) (r bool) (w bool) (x bool))\n(declare llvm:segment-command (name str) (off int) (size int))\n(declare llvm:segment-command-flags (name str) (r bool) (w bool) (x bool))\n(declare llvm:symbol-entry (name str) (addr int) (size int) (off int)\n (value int))\n(declare llvm:virtual-segment-command (name str) (addr int) (size int))\n(declare mapped (addr int) (size int) (off int))\n(declare named-region (addr int) (size int) (name str))\n(declare named-symbol (addr int) (name str))\n(declare require (name str))\n(declare section (addr int) (size int))\n(declare segment (addr int) (size int) (r bool) (w bool) (x bool))\n(declare subarch (name str))\n(declare symbol-chunk (addr int) (size int) (root int))\n(declare symbol-value (addr int) (value int))\n(declare system (name str))\n(declare vendor (name str))\n\n(abi unknown)\n(arch aarch64)\n(base-address 0)\n(bias 0)\n(bits 64)\n(code-region 2324 20 2324)\n(code-region 1792 532 1792)\n(code-region 1600 144 1600)\n(code-region 1576 24 1576)\n(code-start 1844)\n(code-start 2260)\n(code-start 1792)\n(code-start 2068)\n(entry-point 1792)\n(external-reference 69568 _ITM_deregisterTMCloneTable)\n(external-reference 69576 __cxa_finalize)\n(external-reference 69584 __gmon_start__)\n(external-reference 69600 _ITM_registerTMCloneTable)\n(external-reference 69632 __libc_start_main)\n(external-reference 69640 __cxa_finalize)\n(external-reference 69648 malloc)\n(external-reference 69656 __gmon_start__)\n(external-reference 69664 abort)\n(external-reference 69672 free)\n(external-reference 69680 printf)\n(format elf)\n(is-executable true)\n(is-little-endian true)\n(llvm:base-address 0)\n(llvm:code-entry printf 0 0)\n(llvm:code-entry free 0 0)\n(llvm:code-entry abort 0 0)\n(llvm:code-entry malloc 0 0)\n(llvm:code-entry __cxa_finalize 0 0)\n(llvm:code-entry __libc_start_main 0 0)\n(llvm:code-entry _init 1576 0)\n(llvm:code-entry printf@GLIBC_2.17 0 0)\n(llvm:code-entry main 2068 192)\n(llvm:code-entry _start 1792 52)\n(llvm:code-entry free@GLIBC_2.17 0 0)\n(llvm:code-entry abort@GLIBC_2.17 0 0)\n(llvm:code-entry printCharValue 2260 64)\n(llvm:code-entry malloc@GLIBC_2.17 0 0)\n(llvm:code-entry _fini 2324 0)\n(llvm:code-entry __cxa_finalize@GLIBC_2.17 0 0)\n(llvm:code-entry __libc_start_main@GLIBC_2.34 0 0)\n(llvm:code-entry frame_dummy 2064 0)\n(llvm:code-entry __do_global_dtors_aux 1984 0)\n(llvm:code-entry register_tm_clones 1920 0)\n(llvm:code-entry deregister_tm_clones 1872 0)\n(llvm:code-entry call_weak_fn 1844 20)\n(llvm:code-entry .fini 2324 20)\n(llvm:code-entry .text 1792 532)\n(llvm:code-entry .plt 1600 144)\n(llvm:code-entry .init 1576 24)\n(llvm:elf-program-header 08 3528 568)\n(llvm:elf-program-header 07 0 0)\n(llvm:elf-program-header 06 2416 68)\n(llvm:elf-program-header 05 596 68)\n(llvm:elf-program-header 04 3544 480)\n(llvm:elf-program-header 03 3528 640)\n(llvm:elf-program-header 02 0 2728)\n(llvm:elf-program-header 01 568 27)\n(llvm:elf-program-header 00 64 504)\n(llvm:elf-program-header-flags 08 false true false false)\n(llvm:elf-program-header-flags 07 false true true false)\n(llvm:elf-program-header-flags 06 false true false false)\n(llvm:elf-program-header-flags 05 false true false false)\n(llvm:elf-program-header-flags 04 false true true false)\n(llvm:elf-program-header-flags 03 true true true false)\n(llvm:elf-program-header-flags 02 true true false true)\n(llvm:elf-program-header-flags 01 false true false false)\n(llvm:elf-program-header-flags 00 false true false false)\n(llvm:elf-virtual-program-header 08 69064 568)\n(llvm:elf-virtual-program-header 07 0 0)\n(llvm:elf-virtual-program-header 06 2416 68)\n(llvm:elf-virtual-program-header 05 596 68)\n(llvm:elf-virtual-program-header 04 69080 480)\n(llvm:elf-virtual-program-header 03 69064 648)\n(llvm:elf-virtual-program-header 02 0 2728)\n(llvm:elf-virtual-program-header 01 568 27)\n(llvm:elf-virtual-program-header 00 64 504)\n(llvm:entry-point 1792)\n(llvm:name-reference 69680 printf)\n(llvm:name-reference 69672 free)\n(llvm:name-reference 69664 abort)\n(llvm:name-reference 69656 __gmon_start__)\n(llvm:name-reference 69648 malloc)\n(llvm:name-reference 69640 __cxa_finalize)\n(llvm:name-reference 69632 __libc_start_main)\n(llvm:name-reference 69600 _ITM_registerTMCloneTable)\n(llvm:name-reference 69584 __gmon_start__)\n(llvm:name-reference 69576 __cxa_finalize)\n(llvm:name-reference 69568 _ITM_deregisterTMCloneTable)\n(llvm:section-entry .shstrtab 0 259 7113)\n(llvm:section-entry .strtab 0 641 6472)\n(llvm:section-entry .symtab 0 2232 4240)\n(llvm:section-entry .comment 0 71 4168)\n(llvm:section-entry .bss 69704 8 4168)\n(llvm:section-entry .data 69688 16 4152)\n(llvm:section-entry .got.plt 69608 80 4072)\n(llvm:section-entry .got 69560 48 4024)\n(llvm:section-entry .dynamic 69080 480 3544)\n(llvm:section-entry .fini_array 69072 8 3536)\n(llvm:section-entry .init_array 69064 8 3528)\n(llvm:section-entry .eh_frame 2488 240 2488)\n(llvm:section-entry .eh_frame_hdr 2416 68 2416)\n(llvm:section-entry .rodata 2344 70 2344)\n(llvm:section-entry .fini 2324 20 2324)\n(llvm:section-entry .text 1792 532 1792)\n(llvm:section-entry .plt 1600 144 1600)\n(llvm:section-entry .init 1576 24 1576)\n(llvm:section-entry .rela.plt 1408 168 1408)\n(llvm:section-entry .rela.dyn 1216 192 1216)\n(llvm:section-entry .gnu.version_r 1168 48 1168)\n(llvm:section-entry .gnu.version 1144 24 1144)\n(llvm:section-entry .dynstr 984 160 984)\n(llvm:section-entry .dynsym 696 288 696)\n(llvm:section-entry .gnu.hash 664 28 664)\n(llvm:section-entry .note.ABI-tag 632 32 632)\n(llvm:section-entry .note.gnu.build-id 596 36 596)\n(llvm:section-entry .interp 568 27 568)\n(llvm:section-flags .shstrtab true false false)\n(llvm:section-flags .strtab true false false)\n(llvm:section-flags .symtab true false false)\n(llvm:section-flags .comment true false false)\n(llvm:section-flags .bss true true false)\n(llvm:section-flags .data true true false)\n(llvm:section-flags .got.plt true true false)\n(llvm:section-flags .got true true false)\n(llvm:section-flags .dynamic true true false)\n(llvm:section-flags .fini_array true true false)\n(llvm:section-flags .init_array true true false)\n(llvm:section-flags .eh_frame true false false)\n(llvm:section-flags .eh_frame_hdr true false false)\n(llvm:section-flags .rodata true false false)\n(llvm:section-flags .fini true false true)\n(llvm:section-flags .text true false true)\n(llvm:section-flags .plt true false true)\n(llvm:section-flags .init true false true)\n(llvm:section-flags .rela.plt true false false)\n(llvm:section-flags .rela.dyn true false false)\n(llvm:section-flags .gnu.version_r true false false)\n(llvm:section-flags .gnu.version true false false)\n(llvm:section-flags .dynstr true false false)\n(llvm:section-flags .dynsym true false false)\n(llvm:section-flags .gnu.hash true false false)\n(llvm:section-flags .note.ABI-tag true false false)\n(llvm:section-flags .note.gnu.build-id true false false)\n(llvm:section-flags .interp true false false)\n(llvm:symbol-entry printf 0 0 0 0)\n(llvm:symbol-entry free 0 0 0 0)\n(llvm:symbol-entry abort 0 0 0 0)\n(llvm:symbol-entry malloc 0 0 0 0)\n(llvm:symbol-entry __cxa_finalize 0 0 0 0)\n(llvm:symbol-entry __libc_start_main 0 0 0 0)\n(llvm:symbol-entry _init 1576 0 1576 1576)\n(llvm:symbol-entry printf@GLIBC_2.17 0 0 0 0)\n(llvm:symbol-entry main 2068 192 2068 2068)\n(llvm:symbol-entry _start 1792 52 1792 1792)\n(llvm:symbol-entry free@GLIBC_2.17 0 0 0 0)\n(llvm:symbol-entry abort@GLIBC_2.17 0 0 0 0)\n(llvm:symbol-entry printCharValue 2260 64 2260 2260)\n(llvm:symbol-entry malloc@GLIBC_2.17 0 0 0 0)\n(llvm:symbol-entry _fini 2324 0 2324 2324)\n(llvm:symbol-entry __cxa_finalize@GLIBC_2.17 0 0 0 0)\n(llvm:symbol-entry __libc_start_main@GLIBC_2.34 0 0 0 0)\n(llvm:symbol-entry frame_dummy 2064 0 2064 2064)\n(llvm:symbol-entry __do_global_dtors_aux 1984 0 1984 1984)\n(llvm:symbol-entry register_tm_clones 1920 0 1920 1920)\n(llvm:symbol-entry deregister_tm_clones 1872 0 1872 1872)\n(llvm:symbol-entry call_weak_fn 1844 20 1844 1844)\n(mapped 0 2728 0)\n(mapped 69064 640 3528)\n(named-region 0 2728 02)\n(named-region 69064 648 03)\n(named-region 568 27 .interp)\n(named-region 596 36 .note.gnu.build-id)\n(named-region 632 32 .note.ABI-tag)\n(named-region 664 28 .gnu.hash)\n(named-region 696 288 .dynsym)\n(named-region 984 160 .dynstr)\n(named-region 1144 24 .gnu.version)\n(named-region 1168 48 .gnu.version_r)\n(named-region 1216 192 .rela.dyn)\n(named-region 1408 168 .rela.plt)\n(named-region 1576 24 .init)\n(named-region 1600 144 .plt)\n(named-region 1792 532 .text)\n(named-region 2324 20 .fini)\n(named-region 2344 70 .rodata)\n(named-region 2416 68 .eh_frame_hdr)\n(named-region 2488 240 .eh_frame)\n(named-region 69064 8 .init_array)\n(named-region 69072 8 .fini_array)\n(named-region 69080 480 .dynamic)\n(named-region 69560 48 .got)\n(named-region 69608 80 .got.plt)\n(named-region 69688 16 .data)\n(named-region 69704 8 .bss)\n(named-region 0 71 .comment)\n(named-region 0 2232 .symtab)\n(named-region 0 641 .strtab)\n(named-region 0 259 .shstrtab)\n(named-symbol 1844 call_weak_fn)\n(named-symbol 1872 deregister_tm_clones)\n(named-symbol 1920 register_tm_clones)\n(named-symbol 1984 __do_global_dtors_aux)\n(named-symbol 2064 frame_dummy)\n(named-symbol 0 __libc_start_main@GLIBC_2.34)\n(named-symbol 0 __cxa_finalize@GLIBC_2.17)\n(named-symbol 2324 _fini)\n(named-symbol 0 malloc@GLIBC_2.17)\n(named-symbol 2260 printCharValue)\n(named-symbol 0 abort@GLIBC_2.17)\n(named-symbol 0 free@GLIBC_2.17)\n(named-symbol 1792 _start)\n(named-symbol 2068 main)\n(named-symbol 0 printf@GLIBC_2.17)\n(named-symbol 1576 _init)\n(named-symbol 0 __libc_start_main)\n(named-symbol 0 __cxa_finalize)\n(named-symbol 0 malloc)\n(named-symbol 0 abort)\n(named-symbol 0 free)\n(named-symbol 0 printf)\n(require libc.so.6)\n(section 568 27)\n(section 596 36)\n(section 632 32)\n(section 664 28)\n(section 696 288)\n(section 984 160)\n(section 1144 24)\n(section 1168 48)\n(section 1216 192)\n(section 1408 168)\n(section 1576 24)\n(section 1600 144)\n(section 1792 532)\n(section 2324 20)\n(section 2344 70)\n(section 2416 68)\n(section 2488 240)\n(section 69064 8)\n(section 69072 8)\n(section 69080 480)\n(section 69560 48)\n(section 69608 80)\n(section 69688 16)\n(section 69704 8)\n(section 0 71)\n(section 0 2232)\n(section 0 641)\n(section 0 259)\n(segment 0 2728 true false true)\n(segment 69064 648 true true false)\n(subarch v8)\n(symbol-chunk 1844 20 1844)\n(symbol-chunk 2260 64 2260)\n(symbol-chunk 1792 52 1792)\n(symbol-chunk 2068 192 2068)\n(symbol-value 1844 1844)\n(symbol-value 1872 1872)\n(symbol-value 1920 1920)\n(symbol-value 1984 1984)\n(symbol-value 2064 2064)\n(symbol-value 2324 2324)\n(symbol-value 2260 2260)\n(symbol-value 1792 1792)\n(symbol-value 2068 2068)\n(symbol-value 1576 1576)\n(symbol-value 0 0)\n(system \"\")\n(vendor \"\")\n"), -Attr("abi-name","\"aarch64-linux-gnu-elf\"")]), -Sections([Section(".shstrtab", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xd0\x1c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x38\x00\x09\x00\x40\x00\x1d\x00\x1c\x00\x06\x00\x00\x00\x04\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x04\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xa8\x0a\x00\x00\x00\x00\x00\x00\xa8\x0a\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x01\x00\x00\x00\x06\x00\x00\x00\xc8\x0d\x00\x00\x00\x00\x00\x00\xc8\x0d\x01\x00\x00\x00\x00\x00\xc8\x0d\x01"), -Section(".strtab", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xd0\x1c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x38\x00\x09\x00\x40\x00\x1d\x00\x1c\x00\x06\x00\x00\x00\x04\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x04\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xa8\x0a\x00\x00\x00\x00\x00\x00\xa8\x0a\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x01\x00\x00\x00\x06\x00\x00\x00\xc8\x0d\x00\x00\x00\x00\x00\x00\xc8\x0d\x01\x00\x00\x00\x00\x00\xc8\x0d\x01\x00\x00\x00\x00\x00\x80\x02\x00\x00\x00\x00\x00\x00\x88\x02\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x02\x00\x00\x00\x06\x00\x00\x00\xd8\x0d\x00\x00\x00\x00\x00\x00\xd8\x0d\x01\x00\x00\x00\x00\x00\xd8\x0d\x01\x00\x00\x00\x00\x00\xe0\x01\x00\x00\x00\x00\x00\x00\xe0\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x04\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x50\xe5\x74\x64\x04\x00\x00\x00\x70\x09\x00\x00\x00\x00\x00\x00\x70\x09\x00\x00\x00\x00\x00\x00\x70\x09\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x51\xe5\x74\x64\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x52\xe5\x74\x64\x04\x00\x00\x00\xc8\x0d\x00\x00\x00\x00\x00\x00\xc8\x0d\x01\x00\x00\x00\x00\x00\xc8\x0d\x01\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x2f\x6c\x69\x62\x2f\x6c\x64\x2d\x6c\x69\x6e\x75\x78\x2d\x61\x61\x72\x63\x68\x36\x34\x2e\x73\x6f\x2e\x31\x00\x00\x04\x00\x00\x00\x14\x00\x00\x00\x03\x00\x00\x00\x47\x4e\x55\x00\xc3\x43\xea\x1a\x3b\x0e\x9d\xaf\xb1\x56\x22\x06\x15\x7d\x6d\x87\xb0\x4f\x6a\xec\x04\x00\x00\x00\x10\x00\x00\x00\x01"), -Section(".symtab", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xd0\x1c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x38\x00\x09\x00\x40\x00\x1d\x00\x1c\x00\x06\x00\x00\x00\x04\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x04\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xa8\x0a\x00\x00\x00\x00\x00\x00\xa8\x0a\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x01\x00\x00\x00\x06\x00\x00\x00\xc8\x0d\x00\x00\x00\x00\x00\x00\xc8\x0d\x01\x00\x00\x00\x00\x00\xc8\x0d\x01\x00\x00\x00\x00\x00\x80\x02\x00\x00\x00\x00\x00\x00\x88\x02\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x02\x00\x00\x00\x06\x00\x00\x00\xd8\x0d\x00\x00\x00\x00\x00\x00\xd8\x0d\x01\x00\x00\x00\x00\x00\xd8\x0d\x01\x00\x00\x00\x00\x00\xe0\x01\x00\x00\x00\x00\x00\x00\xe0\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x04\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x50\xe5\x74\x64\x04\x00\x00\x00\x70\x09\x00\x00\x00\x00\x00\x00\x70\x09\x00\x00\x00\x00\x00\x00\x70\x09\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x51\xe5\x74\x64\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x52\xe5\x74\x64\x04\x00\x00\x00\xc8\x0d\x00\x00\x00\x00\x00\x00\xc8\x0d\x01\x00\x00\x00\x00\x00\xc8\x0d\x01\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x2f\x6c\x69\x62\x2f\x6c\x64\x2d\x6c\x69\x6e\x75\x78\x2d\x61\x61\x72\x63\x68\x36\x34\x2e\x73\x6f\x2e\x31\x00\x00\x04\x00\x00\x00\x14\x00\x00\x00\x03\x00\x00\x00\x47\x4e\x55\x00\xc3\x43\xea\x1a\x3b\x0e\x9d\xaf\xb1\x56\x22\x06\x15\x7d\x6d\x87\xb0\x4f\x6a\xec\x04\x00\x00\x00\x10\x00\x00\x00\x01\x00\x00\x00\x47\x4e\x55\x00\x00\x00\x00\x00\x03\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x01\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x0b\x00\x28\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x17\x00\x38\x10\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x17\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5b\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x22\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x77\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2e\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x29\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x86\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x34\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5f\x5f\x63\x78\x61\x5f\x66\x69\x6e\x61\x6c\x69\x7a\x65\x00\x6d\x61\x6c\x6c\x6f\x63\x00\x5f\x5f\x6c\x69\x62\x63\x5f\x73\x74\x61\x72\x74\x5f\x6d\x61\x69\x6e\x00\x66\x72\x65\x65\x00\x61\x62\x6f\x72\x74\x00\x70\x72\x69\x6e\x74\x66\x00\x6c\x69\x62\x63\x2e\x73\x6f\x2e\x36\x00\x47\x4c\x49\x42\x43\x5f\x32\x2e\x31\x37\x00\x47\x4c\x49\x42\x43\x5f\x32\x2e\x33\x34\x00\x5f\x49\x54\x4d\x5f\x64\x65\x72\x65\x67\x69\x73\x74\x65\x72\x54\x4d\x43\x6c\x6f\x6e\x65\x54\x61\x62\x6c\x65\x00\x5f\x5f\x67\x6d\x6f\x6e\x5f\x73\x74\x61\x72\x74\x5f\x5f\x00\x5f\x49\x54\x4d\x5f\x72\x65\x67\x69\x73\x74\x65\x72\x54\x4d\x43\x6c\x6f\x6e\x65\x54\x61\x62\x6c\x65\x00\x00\x00\x00\x00\x00\x00\x02\x00\x01\x00\x03\x00\x03\x00\x01\x00\x03\x00\x03\x00\x01\x00\x03\x00\x01\x00\x02\x00\x3b\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x97\x91\x96\x06\x00\x00\x03\x00\x45\x00\x00\x00\x10\x00\x00\x00\xb4\x91\x96\x06\x00\x00\x02\x00\x50\x00\x00\x00\x00\x00\x00\x00\xc8\x0d\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x10\x08\x00\x00\x00\x00\x00\x00\xd0\x0d\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\xc0\x07\x00\x00\x00\x00\x00\x00\xd8\x0f\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x14\x08\x00\x00\x00\x00\x00\x00\x40\x10\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x40\x10\x01\x00\x00\x00\x00\x00\xc0\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xc8\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xd0\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe0\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x0a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x08\x10\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x10\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x18\x10\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x20\x10\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x28\x10\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x09\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x30\x10\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x0b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1f\x20\x03\xd5\xfd\x7b\xbf\xa9\xfd\x03\x00\x91\x40\x00\x00\x94\xfd\x7b\xc1\xa8\xc0\x03\x5f\xd6\xf0\x7b\xbf\xa9\x90\x00\x00\x90\x11\xfe\x47\xf9\x10\xe2\x3f\x91\x20\x02\x1f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x90\x00\x00\xb0\x11\x02\x40\xf9\x10\x02\x00\x91\x20\x02\x1f\xd6\x90\x00\x00\xb0\x11\x06\x40\xf9\x10\x22\x00\x91\x20\x02\x1f\xd6\x90\x00\x00\xb0\x11\x0a\x40\xf9\x10\x42\x00\x91\x20\x02\x1f\xd6\x90\x00\x00\xb0\x11\x0e\x40\xf9\x10\x62\x00\x91\x20\x02\x1f\xd6\x90\x00\x00\xb0\x11\x12\x40\xf9\x10\x82\x00\x91\x20\x02\x1f\xd6\x90\x00\x00\xb0\x11\x16\x40\xf9\x10\xa2\x00\x91\x20\x02\x1f\xd6\x90\x00\x00\xb0\x11\x1a\x40\xf9\x10\xc2\x00\x91\x20\x02\x1f\xd6\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1f\x20\x03\xd5\x1d\x00\x80\xd2\x1e\x00\x80\xd2\xe5\x03\x00\xaa\xe1\x03\x40\xf9\xe2\x23\x00\x91\xe6\x03\x00\x91\x80\x00\x00\x90\x00\xec\x47\xf9\x03\x00\x80\xd2\x04\x00\x80\xd2\xcd\xff\xff\x97\xdc\xff\xff\x97\x80\x00\x00\x90\x00\xe8\x47\xf9\x40\x00\x00\xb4\xd4\xff\xff\x17\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x80\x00\x00\xb0\x00\x20\x01\x91\x81\x00\x00\xb0\x21\x20\x01\x91\x3f\x00\x00\xeb\xc0\x00\x00\x54\x81\x00\x00\x90\x21\xe0\x47\xf9\x61\x00\x00\xb4\xf0\x03\x01\xaa\x00\x02\x1f\xd6\xc0\x03\x5f\xd6\x80\x00\x00\xb0\x00\x20\x01\x91\x81\x00\x00\xb0\x21\x20\x01\x91\x21\x00\x00\xcb\x22\xfc\x7f\xd3\x41\x0c\x81\x8b\x21\xfc\x41\x93\xc1\x00\x00\xb4\x82\x00\x00\x90\x42\xf0\x47\xf9\x62\x00\x00\xb4\xf0\x03\x02\xaa\x00\x02\x1f\xd6\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\xfd\x7b\xbe\xa9\xfd\x03\x00\x91\xf3\x0b\x00\xf9\x93\x00\x00\xb0\x60\x22\x41\x39\x40\x01\x00\x35\x80\x00\x00\x90\x00\xe4\x47\xf9\x80\x00\x00\xb4\x80\x00\x00\xb0\x00\x20\x40\xf9\xa1\xff\xff\x97\xd8\xff\xff\x97\x20\x00\x80\x52\x60\x22\x01\x39\xf3\x0b\x40\xf9\xfd\x7b\xc2\xa8\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\xdc\xff\xff\x17\xff\x43\x01\xd1\xfd\x7b\x04\xa9\xfd\x03\x01\x91\xe8\x03\x1f\x2a\xe8\x0b\x00\xb9\xbf\xc3\x1f\xb8\x20\x00\x80\xd2\x94\xff\xff\x97\xa0\x03\x1f\xf8\x68\x01\x80\x52\xa8\xc3\x1e\xb8\x80\x00\x80\xd2\xe0\x03\x00\xf9\x8e\xff\xff\x97\xe8\x03\x00\xaa\xe0\x03\x40\xf9\xe8\x13\x00\xf9\x48\x01\x80\x52\xe8\x1f\x00\xb9\x88\xff\xff\x97\xe0\x0b\x00\xf9\x28\x01\x80\x52\xe8\x0f\x00\xb9\xa9\x03\x5f\xf8\x28\x08\x80\x52\x28\x01\x00\x39\xe9\x13\x40\xf9\x48\x05\x80\x52\x28\x01\x00\xb9\xa0\x03\x5f\xf8\x12\x00\x00\x94\xe8\x13\x40\xf9\x01\x01\x40\xb9\x00\x00\x00\x90\x00\xb0\x24\x91\x88\xff\xff\x97\xe1\x1f\x40\xb9\x00\x00\x00\x90\x00\xf0\x24\x91\x84\xff\xff\x97\xa0\x03\x5f\xf8"), -Section(".comment", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xd0\x1c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x38\x00\x09\x00\x40\x00\x1d\x00\x1c\x00\x06\x00\x00\x00\x04\x00\x00"), -Section(".interp", 0x238, "\x2f\x6c\x69\x62\x2f\x6c\x64\x2d\x6c\x69\x6e\x75\x78\x2d\x61\x61\x72\x63\x68\x36\x34\x2e\x73\x6f\x2e\x31\x00"), -Section(".note.gnu.build-id", 0x254, "\x04\x00\x00\x00\x14\x00\x00\x00\x03\x00\x00\x00\x47\x4e\x55\x00\xc3\x43\xea\x1a\x3b\x0e\x9d\xaf\xb1\x56\x22\x06\x15\x7d\x6d\x87\xb0\x4f\x6a\xec"), -Section(".note.ABI-tag", 0x278, "\x04\x00\x00\x00\x10\x00\x00\x00\x01\x00\x00\x00\x47\x4e\x55\x00\x00\x00\x00\x00\x03\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00"), -Section(".gnu.hash", 0x298, "\x01\x00\x00\x00\x01\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".dynsym", 0x2B8, "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x0b\x00\x28\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x17\x00\x38\x10\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x17\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5b\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x22\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x77\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2e\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x29\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x86\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x34\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".dynstr", 0x3D8, "\x00\x5f\x5f\x63\x78\x61\x5f\x66\x69\x6e\x61\x6c\x69\x7a\x65\x00\x6d\x61\x6c\x6c\x6f\x63\x00\x5f\x5f\x6c\x69\x62\x63\x5f\x73\x74\x61\x72\x74\x5f\x6d\x61\x69\x6e\x00\x66\x72\x65\x65\x00\x61\x62\x6f\x72\x74\x00\x70\x72\x69\x6e\x74\x66\x00\x6c\x69\x62\x63\x2e\x73\x6f\x2e\x36\x00\x47\x4c\x49\x42\x43\x5f\x32\x2e\x31\x37\x00\x47\x4c\x49\x42\x43\x5f\x32\x2e\x33\x34\x00\x5f\x49\x54\x4d\x5f\x64\x65\x72\x65\x67\x69\x73\x74\x65\x72\x54\x4d\x43\x6c\x6f\x6e\x65\x54\x61\x62\x6c\x65\x00\x5f\x5f\x67\x6d\x6f\x6e\x5f\x73\x74\x61\x72\x74\x5f\x5f\x00\x5f\x49\x54\x4d\x5f\x72\x65\x67\x69\x73\x74\x65\x72\x54\x4d\x43\x6c\x6f\x6e\x65\x54\x61\x62\x6c\x65\x00"), -Section(".gnu.version", 0x478, "\x00\x00\x00\x00\x00\x00\x02\x00\x01\x00\x03\x00\x03\x00\x01\x00\x03\x00\x03\x00\x01\x00\x03\x00"), -Section(".gnu.version_r", 0x490, "\x01\x00\x02\x00\x3b\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x97\x91\x96\x06\x00\x00\x03\x00\x45\x00\x00\x00\x10\x00\x00\x00\xb4\x91\x96\x06\x00\x00\x02\x00\x50\x00\x00\x00\x00\x00\x00\x00"), -Section(".rela.dyn", 0x4C0, "\xc8\x0d\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x10\x08\x00\x00\x00\x00\x00\x00\xd0\x0d\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\xc0\x07\x00\x00\x00\x00\x00\x00\xd8\x0f\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x14\x08\x00\x00\x00\x00\x00\x00\x40\x10\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x40\x10\x01\x00\x00\x00\x00\x00\xc0\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xc8\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xd0\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe0\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x0a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".rela.plt", 0x580, "\x00\x10\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x08\x10\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x10\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x18\x10\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x20\x10\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x28\x10\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x09\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x30\x10\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x0b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".init", 0x628, "\x1f\x20\x03\xd5\xfd\x7b\xbf\xa9\xfd\x03\x00\x91\x40\x00\x00\x94\xfd\x7b\xc1\xa8\xc0\x03\x5f\xd6"), -Section(".plt", 0x640, "\xf0\x7b\xbf\xa9\x90\x00\x00\x90\x11\xfe\x47\xf9\x10\xe2\x3f\x91\x20\x02\x1f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x90\x00\x00\xb0\x11\x02\x40\xf9\x10\x02\x00\x91\x20\x02\x1f\xd6\x90\x00\x00\xb0\x11\x06\x40\xf9\x10\x22\x00\x91\x20\x02\x1f\xd6\x90\x00\x00\xb0\x11\x0a\x40\xf9\x10\x42\x00\x91\x20\x02\x1f\xd6\x90\x00\x00\xb0\x11\x0e\x40\xf9\x10\x62\x00\x91\x20\x02\x1f\xd6\x90\x00\x00\xb0\x11\x12\x40\xf9\x10\x82\x00\x91\x20\x02\x1f\xd6\x90\x00\x00\xb0\x11\x16\x40\xf9\x10\xa2\x00\x91\x20\x02\x1f\xd6\x90\x00\x00\xb0\x11\x1a\x40\xf9\x10\xc2\x00\x91\x20\x02\x1f\xd6"), -Section(".text", 0x700, "\x1f\x20\x03\xd5\x1d\x00\x80\xd2\x1e\x00\x80\xd2\xe5\x03\x00\xaa\xe1\x03\x40\xf9\xe2\x23\x00\x91\xe6\x03\x00\x91\x80\x00\x00\x90\x00\xec\x47\xf9\x03\x00\x80\xd2\x04\x00\x80\xd2\xcd\xff\xff\x97\xdc\xff\xff\x97\x80\x00\x00\x90\x00\xe8\x47\xf9\x40\x00\x00\xb4\xd4\xff\xff\x17\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x80\x00\x00\xb0\x00\x20\x01\x91\x81\x00\x00\xb0\x21\x20\x01\x91\x3f\x00\x00\xeb\xc0\x00\x00\x54\x81\x00\x00\x90\x21\xe0\x47\xf9\x61\x00\x00\xb4\xf0\x03\x01\xaa\x00\x02\x1f\xd6\xc0\x03\x5f\xd6\x80\x00\x00\xb0\x00\x20\x01\x91\x81\x00\x00\xb0\x21\x20\x01\x91\x21\x00\x00\xcb\x22\xfc\x7f\xd3\x41\x0c\x81\x8b\x21\xfc\x41\x93\xc1\x00\x00\xb4\x82\x00\x00\x90\x42\xf0\x47\xf9\x62\x00\x00\xb4\xf0\x03\x02\xaa\x00\x02\x1f\xd6\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\xfd\x7b\xbe\xa9\xfd\x03\x00\x91\xf3\x0b\x00\xf9\x93\x00\x00\xb0\x60\x22\x41\x39\x40\x01\x00\x35\x80\x00\x00\x90\x00\xe4\x47\xf9\x80\x00\x00\xb4\x80\x00\x00\xb0\x00\x20\x40\xf9\xa1\xff\xff\x97\xd8\xff\xff\x97\x20\x00\x80\x52\x60\x22\x01\x39\xf3\x0b\x40\xf9\xfd\x7b\xc2\xa8\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\xdc\xff\xff\x17\xff\x43\x01\xd1\xfd\x7b\x04\xa9\xfd\x03\x01\x91\xe8\x03\x1f\x2a\xe8\x0b\x00\xb9\xbf\xc3\x1f\xb8\x20\x00\x80\xd2\x94\xff\xff\x97\xa0\x03\x1f\xf8\x68\x01\x80\x52\xa8\xc3\x1e\xb8\x80\x00\x80\xd2\xe0\x03\x00\xf9\x8e\xff\xff\x97\xe8\x03\x00\xaa\xe0\x03\x40\xf9\xe8\x13\x00\xf9\x48\x01\x80\x52\xe8\x1f\x00\xb9\x88\xff\xff\x97\xe0\x0b\x00\xf9\x28\x01\x80\x52\xe8\x0f\x00\xb9\xa9\x03\x5f\xf8\x28\x08\x80\x52\x28\x01\x00\x39\xe9\x13\x40\xf9\x48\x05\x80\x52\x28\x01\x00\xb9\xa0\x03\x5f\xf8\x12\x00\x00\x94\xe8\x13\x40\xf9\x01\x01\x40\xb9\x00\x00\x00\x90\x00\xb0\x24\x91\x88\xff\xff\x97\xe1\x1f\x40\xb9\x00\x00\x00\x90\x00\xf0\x24\x91\x84\xff\xff\x97\xa0\x03\x5f\xf8\x7e\xff\xff\x97\xe0\x13\x40\xf9\x7c\xff\xff\x97\xe0\x0b\x40\xb9\xfd\x7b\x44\xa9\xff\x43\x01\x91\xc0\x03\x5f\xd6\xff\x83\x00\xd1\xfd\x7b\x01\xa9\xfd\x43\x00\x91\xe0\x07\x00\xf9\xe9\x07\x40\xf9\x28\x01\x40\x39\x08\x05\x00\x11\x28\x01\x00\x39\xe8\x07\x40\xf9\x01\x01\x40\x39\x00\x00\x00\x90\x00\x5c\x25\x91\x6f\xff\xff\x97\xfd\x7b\x41\xa9\xff\x83\x00\x91\xc0\x03\x5f\xd6"), -Section(".fini", 0x914, "\x1f\x20\x03\xd5\xfd\x7b\xbf\xa9\xfd\x03\x00\x91\xfd\x7b\xc1\xa8\xc0\x03\x5f\xd6"), -Section(".rodata", 0x928, "\x01\x00\x02\x00\x54\x68\x65\x20\x69\x6e\x74\x20\x69\x73\x3a\x20\x25\x64\x0a\x00\x54\x68\x65\x20\x6c\x6f\x63\x61\x6c\x20\x76\x61\x72\x69\x61\x62\x6c\x65\x20\x69\x73\x3a\x20\x25\x64\x0a\x00\x54\x68\x65\x20\x63\x68\x61\x72\x20\x76\x61\x6c\x75\x65\x20\x69\x73\x3a\x20\x25\x63\x0a\x00"), -Section(".eh_frame_hdr", 0x970, "\x01\x1b\x03\x3b\x44\x00\x00\x00\x07\x00\x00\x00\x90\xfd\xff\xff\x5c\x00\x00\x00\xe0\xfd\xff\xff\x70\x00\x00\x00\x10\xfe\xff\xff\x84\x00\x00\x00\x50\xfe\xff\xff\x98\x00\x00\x00\xa0\xfe\xff\xff\xbc\x00\x00\x00\xa4\xfe\xff\xff\xe4\x00\x00\x00\x64\xff\xff\xff\x0c\x01\x00\x00"), -Section(".eh_frame", 0x9B8, "\x10\x00\x00\x00\x00\x00\x00\x00\x01\x7a\x52\x00\x04\x78\x1e\x01\x1b\x0c\x1f\x00\x10\x00\x00\x00\x18\x00\x00\x00\x2c\xfd\xff\xff\x34\x00\x00\x00\x00\x41\x07\x1e\x10\x00\x00\x00\x2c\x00\x00\x00\x68\xfd\xff\xff\x30\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x40\x00\x00\x00\x84\xfd\xff\xff\x3c\x00\x00\x00\x00\x00\x00\x00\x20\x00\x00\x00\x54\x00\x00\x00\xb0\xfd\xff\xff\x48\x00\x00\x00\x00\x41\x0e\x20\x9d\x04\x9e\x03\x42\x93\x02\x4e\xde\xdd\xd3\x0e\x00\x00\x00\x00\x10\x00\x00\x00\x78\x00\x00\x00\xdc\xfd\xff\xff\x04\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x01\x7a\x52\x00\x01\x7c\x1e\x01\x1b\x0c\x1f\x00\x24\x00\x00\x00\x18\x00\x00\x00\xb8\xfd\xff\xff\xc0\x00\x00\x00\x00\x44\x0e\x50\x48\x0c\x1d\x10\x9e\x02\x9d\x04\x02\xa8\x0c\x1f\x50\x48\x0e\x00\xde\xdd\x00\x00\x24\x00\x00\x00\x40\x00\x00\x00\x50\xfe\xff\xff\x40\x00\x00\x00\x00\x44\x0e\x20\x48\x0c\x1d\x10\x9e\x02\x9d\x04\x68\x0c\x1f\x20\x48\x0e\x00\xde\xdd\x00\x00\x00\x00\x00\x00\x00"), -Section(".fini_array", 0x10DD0, "\xc0\x07\x00\x00\x00\x00\x00\x00"), -Section(".dynamic", 0x10DD8, "\x01\x00\x00\x00\x00\x00\x00\x00\x3b\x00\x00\x00\x00\x00\x00\x00\x0c\x00\x00\x00\x00\x00\x00\x00\x28\x06\x00\x00\x00\x00\x00\x00\x0d\x00\x00\x00\x00\x00\x00\x00\x14\x09\x00\x00\x00\x00\x00\x00\x19\x00\x00\x00\x00\x00\x00\x00\xc8\x0d\x01\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x1a\x00\x00\x00\x00\x00\x00\x00\xd0\x0d\x01\x00\x00\x00\x00\x00\x1c\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\xf5\xfe\xff\x6f\x00\x00\x00\x00\x98\x02\x00\x00\x00\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\xd8\x03\x00\x00\x00\x00\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\xb8\x02\x00\x00\x00\x00\x00\x00\x0a\x00\x00\x00\x00\x00\x00\x00\xa0\x00\x00\x00\x00\x00\x00\x00\x0b\x00\x00\x00\x00\x00\x00\x00\x18\x00\x00\x00\x00\x00\x00\x00\x15\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\xe8\x0f\x01\x00\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\xa8\x00\x00\x00\x00\x00\x00\x00\x14\x00\x00\x00\x00\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x17\x00\x00\x00\x00\x00\x00\x00\x80\x05\x00\x00\x00\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\xc0\x04\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\xc0\x00\x00\x00\x00\x00\x00\x00\x09\x00\x00\x00\x00\x00\x00\x00\x18\x00\x00\x00\x00\x00\x00\x00\xfb\xff\xff\x6f\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\xfe\xff\xff\x6f\x00\x00\x00\x00\x90\x04\x00\x00\x00\x00\x00\x00\xff\xff\xff\x6f\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\xf0\xff\xff\x6f\x00\x00\x00\x00\x78\x04\x00\x00\x00\x00\x00\x00\xf9\xff\xff\x6f\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".got", 0x10FB8, "\xd8\x0d\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x14\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".got.plt", 0x10FE8, "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x06\x00\x00\x00\x00\x00\x00\x40\x06\x00\x00\x00\x00\x00\x00\x40\x06\x00\x00\x00\x00\x00\x00\x40\x06\x00\x00\x00\x00\x00\x00\x40\x06\x00\x00\x00\x00\x00\x00\x40\x06\x00\x00\x00\x00\x00\x00\x40\x06\x00\x00\x00\x00\x00\x00"), -Section(".data", 0x11038, "\x00\x00\x00\x00\x00\x00\x00\x00\x40\x10\x01\x00\x00\x00\x00\x00"), -Section(".init_array", 0x10DC8, "\x10\x08\x00\x00\x00\x00\x00\x00")]), -Memmap([Annotation(Region(0x0,0xAA7), Attr("segment","02 0 2728")), -Annotation(Region(0x700,0x733), Attr("symbol","\"_start\"")), -Annotation(Region(0x0,0x102), Attr("section","\".shstrtab\"")), -Annotation(Region(0x0,0x280), Attr("section","\".strtab\"")), -Annotation(Region(0x0,0x8B7), Attr("section","\".symtab\"")), -Annotation(Region(0x0,0x46), Attr("section","\".comment\"")), -Annotation(Region(0x238,0x252), Attr("section","\".interp\"")), -Annotation(Region(0x254,0x277), Attr("section","\".note.gnu.build-id\"")), -Annotation(Region(0x278,0x297), Attr("section","\".note.ABI-tag\"")), -Annotation(Region(0x298,0x2B3), Attr("section","\".gnu.hash\"")), -Annotation(Region(0x2B8,0x3D7), Attr("section","\".dynsym\"")), -Annotation(Region(0x3D8,0x477), Attr("section","\".dynstr\"")), -Annotation(Region(0x478,0x48F), Attr("section","\".gnu.version\"")), -Annotation(Region(0x490,0x4BF), Attr("section","\".gnu.version_r\"")), -Annotation(Region(0x4C0,0x57F), Attr("section","\".rela.dyn\"")), -Annotation(Region(0x580,0x627), Attr("section","\".rela.plt\"")), -Annotation(Region(0x628,0x63F), Attr("section","\".init\"")), -Annotation(Region(0x640,0x6CF), Attr("section","\".plt\"")), -Annotation(Region(0x628,0x63F), Attr("code-region","()")), -Annotation(Region(0x640,0x6CF), Attr("code-region","()")), -Annotation(Region(0x700,0x733), Attr("symbol-info","_start 0x700 52")), -Annotation(Region(0x734,0x747), Attr("symbol","\"call_weak_fn\"")), -Annotation(Region(0x734,0x747), Attr("symbol-info","call_weak_fn 0x734 20")), -Annotation(Region(0x814,0x8D3), Attr("symbol","\"main\"")), -Annotation(Region(0x700,0x913), Attr("section","\".text\"")), -Annotation(Region(0x700,0x913), Attr("code-region","()")), -Annotation(Region(0x814,0x8D3), Attr("symbol-info","main 0x814 192")), -Annotation(Region(0x8D4,0x913), Attr("symbol","\"printCharValue\"")), -Annotation(Region(0x8D4,0x913), -Attr("symbol-info","printCharValue 0x8D4 64")), -Annotation(Region(0x914,0x927), Attr("section","\".fini\"")), -Annotation(Region(0x914,0x927), Attr("code-region","()")), -Annotation(Region(0x928,0x96D), Attr("section","\".rodata\"")), -Annotation(Region(0x970,0x9B3), Attr("section","\".eh_frame_hdr\"")), -Annotation(Region(0x9B8,0xAA7), Attr("section","\".eh_frame\"")), -Annotation(Region(0x10DC8,0x11047), Attr("segment","03 0x10DC8 648")), -Annotation(Region(0x10DD0,0x10DD7), Attr("section","\".fini_array\"")), -Annotation(Region(0x10DD8,0x10FB7), Attr("section","\".dynamic\"")), -Annotation(Region(0x10FB8,0x10FE7), Attr("section","\".got\"")), -Annotation(Region(0x10FE8,0x11037), Attr("section","\".got.plt\"")), -Annotation(Region(0x11038,0x11047), Attr("section","\".data\"")), -Annotation(Region(0x10DC8,0x10DCF), Attr("section","\".init_array\""))]), -Program(Tid(2_171, "%0000087b"), Attrs([]), - Subs([Sub(Tid(2_145, "@__cxa_finalize"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x670"), -Attr("stub","()")]), "__cxa_finalize", Args([Arg(Tid(2_172, "%0000087c"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("__cxa_finalize_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(1_459, "@__cxa_finalize"), - Attrs([Attr("address","0x670")]), Phis([]), -Defs([Def(Tid(1_755, "%000006db"), Attrs([Attr("address","0x670"), -Attr("insn","adrp x16, #69632")]), Var("R16",Imm(64)), Int(69632,64)), -Def(Tid(1_762, "%000006e2"), Attrs([Attr("address","0x674"), -Attr("insn","ldr x17, [x16, #0x8]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(1_768, "%000006e8"), Attrs([Attr("address","0x678"), -Attr("insn","add x16, x16, #0x8")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(8,64)))]), Jmps([Call(Tid(1_773, "%000006ed"), - Attrs([Attr("address","0x67C"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), -Sub(Tid(2_146, "@__do_global_dtors_aux"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x7C0")]), - "__do_global_dtors_aux", Args([Arg(Tid(2_173, "%0000087d"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("__do_global_dtors_aux_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(846, "@__do_global_dtors_aux"), - Attrs([Attr("address","0x7C0")]), Phis([]), Defs([Def(Tid(850, "%00000352"), - Attrs([Attr("address","0x7C0"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("#3",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(18446744073709551584,64))), -Def(Tid(856, "%00000358"), Attrs([Attr("address","0x7C0"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("#3",Imm(64)),Var("R29",Imm(64)),LittleEndian(),64)), -Def(Tid(862, "%0000035e"), Attrs([Attr("address","0x7C0"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("#3",Imm(64)),Int(8,64)),Var("R30",Imm(64)),LittleEndian(),64)), -Def(Tid(866, "%00000362"), Attrs([Attr("address","0x7C0"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("R31",Imm(64)), -Var("#3",Imm(64))), Def(Tid(872, "%00000368"), - Attrs([Attr("address","0x7C4"), Attr("insn","mov x29, sp")]), - Var("R29",Imm(64)), Var("R31",Imm(64))), Def(Tid(880, "%00000370"), - Attrs([Attr("address","0x7C8"), Attr("insn","str x19, [sp, #0x10]")]), - Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(16,64)),Var("R19",Imm(64)),LittleEndian(),64)), -Def(Tid(885, "%00000375"), Attrs([Attr("address","0x7CC"), -Attr("insn","adrp x19, #69632")]), Var("R19",Imm(64)), Int(69632,64)), -Def(Tid(892, "%0000037c"), Attrs([Attr("address","0x7D0"), -Attr("insn","ldrb w0, [x19, #0x48]")]), Var("R0",Imm(64)), -UNSIGNED(64,Load(Var("mem",Mem(64,8)),PLUS(Var("R19",Imm(64)),Int(72,64)),LittleEndian(),8)))]), -Jmps([Goto(Tid(899, "%00000383"), Attrs([Attr("address","0x7D4"), -Attr("insn","cbnz w0, #0x28")]), - NEQ(Extract(31,0,Var("R0",Imm(64))),Int(0,32)), -Direct(Tid(897, "%00000381"))), Goto(Tid(2_147, "%00000863"), Attrs([]), - Int(1,1), Direct(Tid(1_404, "%0000057c")))])), Blk(Tid(1_404, "%0000057c"), - Attrs([Attr("address","0x7D8")]), Phis([]), -Defs([Def(Tid(1_407, "%0000057f"), Attrs([Attr("address","0x7D8"), -Attr("insn","adrp x0, #65536")]), Var("R0",Imm(64)), Int(65536,64)), -Def(Tid(1_414, "%00000586"), Attrs([Attr("address","0x7DC"), -Attr("insn","ldr x0, [x0, #0xfc8]")]), Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(4040,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(1_420, "%0000058c"), Attrs([Attr("address","0x7E0"), -Attr("insn","cbz x0, #0x10")]), EQ(Var("R0",Imm(64)),Int(0,64)), -Direct(Tid(1_418, "%0000058a"))), Goto(Tid(2_148, "%00000864"), Attrs([]), - Int(1,1), Direct(Tid(1_443, "%000005a3")))])), Blk(Tid(1_443, "%000005a3"), - Attrs([Attr("address","0x7E4")]), Phis([]), -Defs([Def(Tid(1_446, "%000005a6"), Attrs([Attr("address","0x7E4"), -Attr("insn","adrp x0, #69632")]), Var("R0",Imm(64)), Int(69632,64)), -Def(Tid(1_453, "%000005ad"), Attrs([Attr("address","0x7E8"), -Attr("insn","ldr x0, [x0, #0x40]")]), Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(64,64)),LittleEndian(),64)), -Def(Tid(1_458, "%000005b2"), Attrs([Attr("address","0x7EC"), -Attr("insn","bl #-0x17c")]), Var("R30",Imm(64)), Int(2032,64))]), -Jmps([Call(Tid(1_461, "%000005b5"), Attrs([Attr("address","0x7EC"), -Attr("insn","bl #-0x17c")]), Int(1,1), -(Direct(Tid(2_145, "@__cxa_finalize")),Direct(Tid(1_418, "%0000058a"))))])), -Blk(Tid(1_418, "%0000058a"), Attrs([Attr("address","0x7F0")]), Phis([]), -Defs([Def(Tid(1_426, "%00000592"), Attrs([Attr("address","0x7F0"), -Attr("insn","bl #-0xa0")]), Var("R30",Imm(64)), Int(2036,64))]), -Jmps([Call(Tid(1_428, "%00000594"), Attrs([Attr("address","0x7F0"), -Attr("insn","bl #-0xa0")]), Int(1,1), -(Direct(Tid(2_159, "@deregister_tm_clones")),Direct(Tid(1_430, "%00000596"))))])), -Blk(Tid(1_430, "%00000596"), Attrs([Attr("address","0x7F4")]), Phis([]), -Defs([Def(Tid(1_433, "%00000599"), Attrs([Attr("address","0x7F4"), -Attr("insn","mov w0, #0x1")]), Var("R0",Imm(64)), Int(1,64)), -Def(Tid(1_441, "%000005a1"), Attrs([Attr("address","0x7F8"), -Attr("insn","strb w0, [x19, #0x48]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R19",Imm(64)),Int(72,64)),Extract(7,0,Var("R0",Imm(64))),LittleEndian(),8))]), -Jmps([Goto(Tid(2_149, "%00000865"), Attrs([]), Int(1,1), -Direct(Tid(897, "%00000381")))])), Blk(Tid(897, "%00000381"), - Attrs([Attr("address","0x7FC")]), Phis([]), Defs([Def(Tid(907, "%0000038b"), - Attrs([Attr("address","0x7FC"), Attr("insn","ldr x19, [sp, #0x10]")]), - Var("R19",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(16,64)),LittleEndian(),64)), -Def(Tid(914, "%00000392"), Attrs([Attr("address","0x800"), -Attr("insn","ldp x29, x30, [sp], #0x20")]), Var("R29",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(919, "%00000397"), Attrs([Attr("address","0x800"), -Attr("insn","ldp x29, x30, [sp], #0x20")]), Var("R30",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(923, "%0000039b"), Attrs([Attr("address","0x800"), -Attr("insn","ldp x29, x30, [sp], #0x20")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(32,64)))]), Jmps([Call(Tid(928, "%000003a0"), - Attrs([Attr("address","0x804"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), Sub(Tid(2_150, "@__libc_start_main"), - Attrs([Attr("c.proto","signed (*)(signed (*)(signed , char** , char** );* main, signed , char** , \nvoid* auxv)"), -Attr("address","0x660"), Attr("stub","()")]), "__libc_start_main", - Args([Arg(Tid(2_174, "%0000087e"), - Attrs([Attr("c.layout","**[ : 64]"), -Attr("c.data","Top:u64 ptr ptr"), -Attr("c.type","signed (*)(signed , char** , char** );*")]), - Var("__libc_start_main_main",Imm(64)), Var("R0",Imm(64)), In()), -Arg(Tid(2_175, "%0000087f"), Attrs([Attr("c.layout","[signed : 32]"), -Attr("c.data","Top:u32"), Attr("c.type","signed")]), - Var("__libc_start_main_arg2",Imm(32)), LOW(32,Var("R1",Imm(64))), In()), -Arg(Tid(2_176, "%00000880"), Attrs([Attr("c.layout","**[char : 8]"), -Attr("c.data","Top:u8 ptr ptr"), Attr("c.type","char**")]), - Var("__libc_start_main_arg3",Imm(64)), Var("R2",Imm(64)), Both()), -Arg(Tid(2_177, "%00000881"), Attrs([Attr("c.layout","*[ : 8]"), -Attr("c.data","{} ptr"), Attr("c.type","void*")]), - Var("__libc_start_main_auxv",Imm(64)), Var("R3",Imm(64)), Both()), -Arg(Tid(2_178, "%00000882"), Attrs([Attr("c.layout","[signed : 32]"), -Attr("c.data","Top:u32"), Attr("c.type","signed")]), - Var("__libc_start_main_result",Imm(32)), LOW(32,Var("R0",Imm(64))), -Out())]), Blks([Blk(Tid(679, "@__libc_start_main"), - Attrs([Attr("address","0x660")]), Phis([]), -Defs([Def(Tid(1_733, "%000006c5"), Attrs([Attr("address","0x660"), -Attr("insn","adrp x16, #69632")]), Var("R16",Imm(64)), Int(69632,64)), -Def(Tid(1_740, "%000006cc"), Attrs([Attr("address","0x664"), -Attr("insn","ldr x17, [x16]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R16",Imm(64)),LittleEndian(),64)), -Def(Tid(1_746, "%000006d2"), Attrs([Attr("address","0x668"), -Attr("insn","add x16, x16, #0x0")]), Var("R16",Imm(64)), -Var("R16",Imm(64)))]), Jmps([Call(Tid(1_751, "%000006d7"), - Attrs([Attr("address","0x66C"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), Sub(Tid(2_151, "@_fini"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x914")]), - "_fini", Args([Arg(Tid(2_179, "%00000883"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("_fini_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(31, "@_fini"), - Attrs([Attr("address","0x914")]), Phis([]), Defs([Def(Tid(37, "%00000025"), - Attrs([Attr("address","0x918"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("#0",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(18446744073709551600,64))), -Def(Tid(43, "%0000002b"), Attrs([Attr("address","0x918"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("#0",Imm(64)),Var("R29",Imm(64)),LittleEndian(),64)), -Def(Tid(49, "%00000031"), Attrs([Attr("address","0x918"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("#0",Imm(64)),Int(8,64)),Var("R30",Imm(64)),LittleEndian(),64)), -Def(Tid(53, "%00000035"), Attrs([Attr("address","0x918"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("R31",Imm(64)), -Var("#0",Imm(64))), Def(Tid(59, "%0000003b"), Attrs([Attr("address","0x91C"), -Attr("insn","mov x29, sp")]), Var("R29",Imm(64)), Var("R31",Imm(64))), -Def(Tid(66, "%00000042"), Attrs([Attr("address","0x920"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R29",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(71, "%00000047"), Attrs([Attr("address","0x920"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R30",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(75, "%0000004b"), Attrs([Attr("address","0x920"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(16,64)))]), Jmps([Call(Tid(80, "%00000050"), - Attrs([Attr("address","0x924"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), Sub(Tid(2_152, "@_init"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x628")]), - "_init", Args([Arg(Tid(2_180, "%00000884"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("_init_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(1_911, "@_init"), - Attrs([Attr("address","0x628")]), Phis([]), -Defs([Def(Tid(1_917, "%0000077d"), Attrs([Attr("address","0x62C"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("#9",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(18446744073709551600,64))), -Def(Tid(1_923, "%00000783"), Attrs([Attr("address","0x62C"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("#9",Imm(64)),Var("R29",Imm(64)),LittleEndian(),64)), -Def(Tid(1_929, "%00000789"), Attrs([Attr("address","0x62C"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("#9",Imm(64)),Int(8,64)),Var("R30",Imm(64)),LittleEndian(),64)), -Def(Tid(1_933, "%0000078d"), Attrs([Attr("address","0x62C"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("R31",Imm(64)), -Var("#9",Imm(64))), Def(Tid(1_939, "%00000793"), - Attrs([Attr("address","0x630"), Attr("insn","mov x29, sp")]), - Var("R29",Imm(64)), Var("R31",Imm(64))), Def(Tid(1_944, "%00000798"), - Attrs([Attr("address","0x634"), Attr("insn","bl #0x100")]), - Var("R30",Imm(64)), Int(1592,64))]), Jmps([Call(Tid(1_946, "%0000079a"), - Attrs([Attr("address","0x634"), Attr("insn","bl #0x100")]), Int(1,1), -(Direct(Tid(2_157, "@call_weak_fn")),Direct(Tid(1_948, "%0000079c"))))])), -Blk(Tid(1_948, "%0000079c"), Attrs([Attr("address","0x638")]), Phis([]), -Defs([Def(Tid(1_953, "%000007a1"), Attrs([Attr("address","0x638"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R29",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(1_958, "%000007a6"), Attrs([Attr("address","0x638"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R30",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(1_962, "%000007aa"), Attrs([Attr("address","0x638"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(16,64)))]), Jmps([Call(Tid(1_967, "%000007af"), - Attrs([Attr("address","0x63C"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), Sub(Tid(2_153, "@_start"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x700"), -Attr("entry-point","()")]), "_start", Args([Arg(Tid(2_181, "%00000885"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("_start_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(616, "@_start"), - Attrs([Attr("address","0x700")]), Phis([]), Defs([Def(Tid(621, "%0000026d"), - Attrs([Attr("address","0x704"), Attr("insn","mov x29, #0x0")]), - Var("R29",Imm(64)), Int(0,64)), Def(Tid(626, "%00000272"), - Attrs([Attr("address","0x708"), Attr("insn","mov x30, #0x0")]), - Var("R30",Imm(64)), Int(0,64)), Def(Tid(632, "%00000278"), - Attrs([Attr("address","0x70C"), Attr("insn","mov x5, x0")]), - Var("R5",Imm(64)), Var("R0",Imm(64))), Def(Tid(639, "%0000027f"), - Attrs([Attr("address","0x710"), Attr("insn","ldr x1, [sp]")]), - Var("R1",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(645, "%00000285"), Attrs([Attr("address","0x714"), -Attr("insn","add x2, sp, #0x8")]), Var("R2",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(8,64))), Def(Tid(651, "%0000028b"), - Attrs([Attr("address","0x718"), Attr("insn","mov x6, sp")]), - Var("R6",Imm(64)), Var("R31",Imm(64))), Def(Tid(656, "%00000290"), - Attrs([Attr("address","0x71C"), Attr("insn","adrp x0, #65536")]), - Var("R0",Imm(64)), Int(65536,64)), Def(Tid(663, "%00000297"), - Attrs([Attr("address","0x720"), Attr("insn","ldr x0, [x0, #0xfd8]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(4056,64)),LittleEndian(),64)), -Def(Tid(668, "%0000029c"), Attrs([Attr("address","0x724"), -Attr("insn","mov x3, #0x0")]), Var("R3",Imm(64)), Int(0,64)), -Def(Tid(673, "%000002a1"), Attrs([Attr("address","0x728"), -Attr("insn","mov x4, #0x0")]), Var("R4",Imm(64)), Int(0,64)), -Def(Tid(678, "%000002a6"), Attrs([Attr("address","0x72C"), -Attr("insn","bl #-0xcc")]), Var("R30",Imm(64)), Int(1840,64))]), -Jmps([Call(Tid(681, "%000002a9"), Attrs([Attr("address","0x72C"), -Attr("insn","bl #-0xcc")]), Int(1,1), -(Direct(Tid(2_150, "@__libc_start_main")),Direct(Tid(683, "%000002ab"))))])), -Blk(Tid(683, "%000002ab"), Attrs([Attr("address","0x730")]), Phis([]), -Defs([Def(Tid(686, "%000002ae"), Attrs([Attr("address","0x730"), -Attr("insn","bl #-0x90")]), Var("R30",Imm(64)), Int(1844,64))]), -Jmps([Call(Tid(689, "%000002b1"), Attrs([Attr("address","0x730"), -Attr("insn","bl #-0x90")]), Int(1,1), -(Direct(Tid(2_156, "@abort")),Direct(Tid(2_154, "%0000086a"))))])), -Blk(Tid(2_154, "%0000086a"), Attrs([]), Phis([]), Defs([]), -Jmps([Call(Tid(2_155, "%0000086b"), Attrs([]), Int(1,1), -(Direct(Tid(2_157, "@call_weak_fn")),))]))])), Sub(Tid(2_156, "@abort"), - Attrs([Attr("noreturn","()"), Attr("c.proto","void (*)(void)"), -Attr("address","0x6A0"), Attr("stub","()")]), "abort", Args([]), -Blks([Blk(Tid(687, "@abort"), Attrs([Attr("address","0x6A0")]), Phis([]), -Defs([Def(Tid(1_821, "%0000071d"), Attrs([Attr("address","0x6A0"), -Attr("insn","adrp x16, #69632")]), Var("R16",Imm(64)), Int(69632,64)), -Def(Tid(1_828, "%00000724"), Attrs([Attr("address","0x6A4"), -Attr("insn","ldr x17, [x16, #0x20]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(32,64)),LittleEndian(),64)), -Def(Tid(1_834, "%0000072a"), Attrs([Attr("address","0x6A8"), -Attr("insn","add x16, x16, #0x20")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(32,64)))]), Jmps([Call(Tid(1_839, "%0000072f"), - Attrs([Attr("address","0x6AC"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), Sub(Tid(2_157, "@call_weak_fn"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x734")]), - "call_weak_fn", Args([Arg(Tid(2_182, "%00000886"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("call_weak_fn_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(691, "@call_weak_fn"), - Attrs([Attr("address","0x734")]), Phis([]), Defs([Def(Tid(694, "%000002b6"), - Attrs([Attr("address","0x734"), Attr("insn","adrp x0, #65536")]), - Var("R0",Imm(64)), Int(65536,64)), Def(Tid(701, "%000002bd"), - Attrs([Attr("address","0x738"), Attr("insn","ldr x0, [x0, #0xfd0]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(4048,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(707, "%000002c3"), Attrs([Attr("address","0x73C"), -Attr("insn","cbz x0, #0x8")]), EQ(Var("R0",Imm(64)),Int(0,64)), -Direct(Tid(705, "%000002c1"))), Goto(Tid(2_158, "%0000086e"), Attrs([]), - Int(1,1), Direct(Tid(1_523, "%000005f3")))])), Blk(Tid(705, "%000002c1"), - Attrs([Attr("address","0x744")]), Phis([]), Defs([]), -Jmps([Call(Tid(713, "%000002c9"), Attrs([Attr("address","0x744"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))])), -Blk(Tid(1_523, "%000005f3"), Attrs([Attr("address","0x740")]), Phis([]), -Defs([]), Jmps([Goto(Tid(1_526, "%000005f6"), Attrs([Attr("address","0x740"), -Attr("insn","b #-0xb0")]), Int(1,1), -Direct(Tid(1_524, "@__gmon_start__")))])), Blk(Tid(1_524, "@__gmon_start__"), - Attrs([Attr("address","0x690")]), Phis([]), -Defs([Def(Tid(1_799, "%00000707"), Attrs([Attr("address","0x690"), -Attr("insn","adrp x16, #69632")]), Var("R16",Imm(64)), Int(69632,64)), -Def(Tid(1_806, "%0000070e"), Attrs([Attr("address","0x694"), -Attr("insn","ldr x17, [x16, #0x18]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(24,64)),LittleEndian(),64)), -Def(Tid(1_812, "%00000714"), Attrs([Attr("address","0x698"), -Attr("insn","add x16, x16, #0x18")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(24,64)))]), Jmps([Call(Tid(1_817, "%00000719"), - Attrs([Attr("address","0x69C"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), -Sub(Tid(2_159, "@deregister_tm_clones"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x750")]), - "deregister_tm_clones", Args([Arg(Tid(2_183, "%00000887"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("deregister_tm_clones_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(719, "@deregister_tm_clones"), - Attrs([Attr("address","0x750")]), Phis([]), Defs([Def(Tid(722, "%000002d2"), - Attrs([Attr("address","0x750"), Attr("insn","adrp x0, #69632")]), - Var("R0",Imm(64)), Int(69632,64)), Def(Tid(728, "%000002d8"), - Attrs([Attr("address","0x754"), Attr("insn","add x0, x0, #0x48")]), - Var("R0",Imm(64)), PLUS(Var("R0",Imm(64)),Int(72,64))), -Def(Tid(733, "%000002dd"), Attrs([Attr("address","0x758"), -Attr("insn","adrp x1, #69632")]), Var("R1",Imm(64)), Int(69632,64)), -Def(Tid(739, "%000002e3"), Attrs([Attr("address","0x75C"), -Attr("insn","add x1, x1, #0x48")]), Var("R1",Imm(64)), -PLUS(Var("R1",Imm(64)),Int(72,64))), Def(Tid(745, "%000002e9"), - Attrs([Attr("address","0x760"), Attr("insn","cmp x1, x0")]), - Var("#1",Imm(64)), NOT(Var("R0",Imm(64)))), Def(Tid(750, "%000002ee"), - Attrs([Attr("address","0x760"), Attr("insn","cmp x1, x0")]), - Var("#2",Imm(64)), PLUS(Var("R1",Imm(64)),NOT(Var("R0",Imm(64))))), -Def(Tid(756, "%000002f4"), Attrs([Attr("address","0x760"), -Attr("insn","cmp x1, x0")]), Var("VF",Imm(1)), -NEQ(SIGNED(65,PLUS(Var("#2",Imm(64)),Int(1,64))),PLUS(PLUS(SIGNED(65,Var("R1",Imm(64))),SIGNED(65,Var("#1",Imm(64)))),Int(1,65)))), -Def(Tid(762, "%000002fa"), Attrs([Attr("address","0x760"), -Attr("insn","cmp x1, x0")]), Var("CF",Imm(1)), -NEQ(UNSIGNED(65,PLUS(Var("#2",Imm(64)),Int(1,64))),PLUS(PLUS(UNSIGNED(65,Var("R1",Imm(64))),UNSIGNED(65,Var("#1",Imm(64)))),Int(1,65)))), -Def(Tid(766, "%000002fe"), Attrs([Attr("address","0x760"), -Attr("insn","cmp x1, x0")]), Var("ZF",Imm(1)), -EQ(PLUS(Var("#2",Imm(64)),Int(1,64)),Int(0,64))), Def(Tid(770, "%00000302"), - Attrs([Attr("address","0x760"), Attr("insn","cmp x1, x0")]), - Var("NF",Imm(1)), Extract(63,63,PLUS(Var("#2",Imm(64)),Int(1,64))))]), -Jmps([Goto(Tid(776, "%00000308"), Attrs([Attr("address","0x764"), -Attr("insn","b.eq #0x18")]), EQ(Var("ZF",Imm(1)),Int(1,1)), -Direct(Tid(774, "%00000306"))), Goto(Tid(2_160, "%00000870"), Attrs([]), - Int(1,1), Direct(Tid(1_493, "%000005d5")))])), Blk(Tid(1_493, "%000005d5"), - Attrs([Attr("address","0x768")]), Phis([]), -Defs([Def(Tid(1_496, "%000005d8"), Attrs([Attr("address","0x768"), -Attr("insn","adrp x1, #65536")]), Var("R1",Imm(64)), Int(65536,64)), -Def(Tid(1_503, "%000005df"), Attrs([Attr("address","0x76C"), -Attr("insn","ldr x1, [x1, #0xfc0]")]), Var("R1",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R1",Imm(64)),Int(4032,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(1_508, "%000005e4"), Attrs([Attr("address","0x770"), -Attr("insn","cbz x1, #0xc")]), EQ(Var("R1",Imm(64)),Int(0,64)), -Direct(Tid(774, "%00000306"))), Goto(Tid(2_161, "%00000871"), Attrs([]), - Int(1,1), Direct(Tid(1_512, "%000005e8")))])), Blk(Tid(774, "%00000306"), - Attrs([Attr("address","0x77C")]), Phis([]), Defs([]), -Jmps([Call(Tid(782, "%0000030e"), Attrs([Attr("address","0x77C"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))])), -Blk(Tid(1_512, "%000005e8"), Attrs([Attr("address","0x774")]), Phis([]), -Defs([Def(Tid(1_516, "%000005ec"), Attrs([Attr("address","0x774"), -Attr("insn","mov x16, x1")]), Var("R16",Imm(64)), Var("R1",Imm(64)))]), -Jmps([Call(Tid(1_521, "%000005f1"), Attrs([Attr("address","0x778"), -Attr("insn","br x16")]), Int(1,1), (Indirect(Var("R16",Imm(64))),))]))])), -Sub(Tid(2_162, "@frame_dummy"), Attrs([Attr("c.proto","signed (*)(void)"), -Attr("address","0x810")]), "frame_dummy", Args([Arg(Tid(2_184, "%00000888"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("frame_dummy_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(934, "@frame_dummy"), - Attrs([Attr("address","0x810")]), Phis([]), Defs([]), -Jmps([Call(Tid(936, "%000003a8"), Attrs([Attr("address","0x810"), -Attr("insn","b #-0x90")]), Int(1,1), -(Direct(Tid(2_168, "@register_tm_clones")),))]))])), Sub(Tid(2_163, "@free"), - Attrs([Attr("c.proto","void (*)(void* ptr)"), Attr("address","0x6B0"), -Attr("stub","()")]), "free", Args([Arg(Tid(2_185, "%00000889"), - Attrs([Attr("c.layout","*[ : 8]"), Attr("c.data","{} ptr"), -Attr("c.type","void*")]), Var("free_ptr",Imm(64)), Var("R0",Imm(64)), -Both())]), Blks([Blk(Tid(1_352, "@free"), Attrs([Attr("address","0x6B0")]), - Phis([]), Defs([Def(Tid(1_843, "%00000733"), Attrs([Attr("address","0x6B0"), -Attr("insn","adrp x16, #69632")]), Var("R16",Imm(64)), Int(69632,64)), -Def(Tid(1_850, "%0000073a"), Attrs([Attr("address","0x6B4"), -Attr("insn","ldr x17, [x16, #0x28]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(40,64)),LittleEndian(),64)), -Def(Tid(1_856, "%00000740"), Attrs([Attr("address","0x6B8"), -Attr("insn","add x16, x16, #0x28")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(40,64)))]), Jmps([Call(Tid(1_861, "%00000745"), - Attrs([Attr("address","0x6BC"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), Sub(Tid(2_164, "@main"), - Attrs([Attr("c.proto","signed (*)(signed argc, const char** argv)"), -Attr("address","0x814")]), "main", Args([Arg(Tid(2_186, "%0000088a"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("main_argc",Imm(32)), -LOW(32,Var("R0",Imm(64))), In()), Arg(Tid(2_187, "%0000088b"), - Attrs([Attr("c.layout","**[char : 8]"), Attr("c.data","Top:u8 ptr ptr"), -Attr("c.type"," const char**")]), Var("main_argv",Imm(64)), -Var("R1",Imm(64)), Both()), Arg(Tid(2_188, "%0000088c"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("main_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(938, "@main"), - Attrs([Attr("address","0x814")]), Phis([]), Defs([Def(Tid(942, "%000003ae"), - Attrs([Attr("address","0x814"), Attr("insn","sub sp, sp, #0x50")]), - Var("R31",Imm(64)), PLUS(Var("R31",Imm(64)),Int(18446744073709551536,64))), -Def(Tid(948, "%000003b4"), Attrs([Attr("address","0x818"), -Attr("insn","stp x29, x30, [sp, #0x40]")]), Var("#4",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(64,64))), Def(Tid(954, "%000003ba"), - Attrs([Attr("address","0x818"), Attr("insn","stp x29, x30, [sp, #0x40]")]), - Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("#4",Imm(64)),Var("R29",Imm(64)),LittleEndian(),64)), -Def(Tid(960, "%000003c0"), Attrs([Attr("address","0x818"), -Attr("insn","stp x29, x30, [sp, #0x40]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("#4",Imm(64)),Int(8,64)),Var("R30",Imm(64)),LittleEndian(),64)), -Def(Tid(966, "%000003c6"), Attrs([Attr("address","0x81C"), -Attr("insn","add x29, sp, #0x40")]), Var("R29",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(64,64))), Def(Tid(971, "%000003cb"), - Attrs([Attr("address","0x820"), Attr("insn","mov w8, wzr")]), - Var("R8",Imm(64)), Int(0,64)), Def(Tid(979, "%000003d3"), - Attrs([Attr("address","0x824"), Attr("insn","str w8, [sp, #0x8]")]), - Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),Extract(31,0,Var("R8",Imm(64))),LittleEndian(),32)), -Def(Tid(986, "%000003da"), Attrs([Attr("address","0x828"), -Attr("insn","stur wzr, [x29, #-0x4]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R29",Imm(64)),Int(18446744073709551612,64)),Int(0,32),LittleEndian(),32)), -Def(Tid(991, "%000003df"), Attrs([Attr("address","0x82C"), -Attr("insn","mov x0, #0x1")]), Var("R0",Imm(64)), Int(1,64)), -Def(Tid(996, "%000003e4"), Attrs([Attr("address","0x830"), -Attr("insn","bl #-0x1b0")]), Var("R30",Imm(64)), Int(2100,64))]), -Jmps([Call(Tid(999, "%000003e7"), Attrs([Attr("address","0x830"), -Attr("insn","bl #-0x1b0")]), Int(1,1), -(Direct(Tid(2_165, "@malloc")),Direct(Tid(1_001, "%000003e9"))))])), -Blk(Tid(1_001, "%000003e9"), Attrs([Attr("address","0x834")]), Phis([]), -Defs([Def(Tid(1_007, "%000003ef"), Attrs([Attr("address","0x834"), -Attr("insn","stur x0, [x29, #-0x10]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R29",Imm(64)),Int(18446744073709551600,64)),Var("R0",Imm(64)),LittleEndian(),64)), -Def(Tid(1_012, "%000003f4"), Attrs([Attr("address","0x838"), -Attr("insn","mov w8, #0xb")]), Var("R8",Imm(64)), Int(11,64)), -Def(Tid(1_020, "%000003fc"), Attrs([Attr("address","0x83C"), -Attr("insn","stur w8, [x29, #-0x14]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R29",Imm(64)),Int(18446744073709551596,64)),Extract(31,0,Var("R8",Imm(64))),LittleEndian(),32)), -Def(Tid(1_025, "%00000401"), Attrs([Attr("address","0x840"), -Attr("insn","mov x0, #0x4")]), Var("R0",Imm(64)), Int(4,64)), -Def(Tid(1_033, "%00000409"), Attrs([Attr("address","0x844"), -Attr("insn","str x0, [sp]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("R31",Imm(64)),Var("R0",Imm(64)),LittleEndian(),64)), -Def(Tid(1_038, "%0000040e"), Attrs([Attr("address","0x848"), -Attr("insn","bl #-0x1c8")]), Var("R30",Imm(64)), Int(2124,64))]), -Jmps([Call(Tid(1_040, "%00000410"), Attrs([Attr("address","0x848"), -Attr("insn","bl #-0x1c8")]), Int(1,1), -(Direct(Tid(2_165, "@malloc")),Direct(Tid(1_042, "%00000412"))))])), -Blk(Tid(1_042, "%00000412"), Attrs([Attr("address","0x84C")]), Phis([]), -Defs([Def(Tid(1_046, "%00000416"), Attrs([Attr("address","0x84C"), -Attr("insn","mov x8, x0")]), Var("R8",Imm(64)), Var("R0",Imm(64))), -Def(Tid(1_053, "%0000041d"), Attrs([Attr("address","0x850"), -Attr("insn","ldr x0, [sp]")]), Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(1_061, "%00000425"), Attrs([Attr("address","0x854"), -Attr("insn","str x8, [sp, #0x20]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(32,64)),Var("R8",Imm(64)),LittleEndian(),64)), -Def(Tid(1_066, "%0000042a"), Attrs([Attr("address","0x858"), -Attr("insn","mov w8, #0xa")]), Var("R8",Imm(64)), Int(10,64)), -Def(Tid(1_074, "%00000432"), Attrs([Attr("address","0x85C"), -Attr("insn","str w8, [sp, #0x1c]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(28,64)),Extract(31,0,Var("R8",Imm(64))),LittleEndian(),32)), -Def(Tid(1_079, "%00000437"), Attrs([Attr("address","0x860"), -Attr("insn","bl #-0x1e0")]), Var("R30",Imm(64)), Int(2148,64))]), -Jmps([Call(Tid(1_081, "%00000439"), Attrs([Attr("address","0x860"), -Attr("insn","bl #-0x1e0")]), Int(1,1), -(Direct(Tid(2_165, "@malloc")),Direct(Tid(1_083, "%0000043b"))))])), -Blk(Tid(1_083, "%0000043b"), Attrs([Attr("address","0x864")]), Phis([]), -Defs([Def(Tid(1_089, "%00000441"), Attrs([Attr("address","0x864"), -Attr("insn","str x0, [sp, #0x10]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(16,64)),Var("R0",Imm(64)),LittleEndian(),64)), -Def(Tid(1_094, "%00000446"), Attrs([Attr("address","0x868"), -Attr("insn","mov w8, #0x9")]), Var("R8",Imm(64)), Int(9,64)), -Def(Tid(1_102, "%0000044e"), Attrs([Attr("address","0x86C"), -Attr("insn","str w8, [sp, #0xc]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(12,64)),Extract(31,0,Var("R8",Imm(64))),LittleEndian(),32)), -Def(Tid(1_109, "%00000455"), Attrs([Attr("address","0x870"), -Attr("insn","ldur x9, [x29, #-0x10]")]), Var("R9",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R29",Imm(64)),Int(18446744073709551600,64)),LittleEndian(),64)), -Def(Tid(1_114, "%0000045a"), Attrs([Attr("address","0x874"), -Attr("insn","mov w8, #0x41")]), Var("R8",Imm(64)), Int(65,64)), -Def(Tid(1_122, "%00000462"), Attrs([Attr("address","0x878"), -Attr("insn","strb w8, [x9]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("R9",Imm(64)),Extract(7,0,Var("R8",Imm(64))),LittleEndian(),8)), -Def(Tid(1_129, "%00000469"), Attrs([Attr("address","0x87C"), -Attr("insn","ldr x9, [sp, #0x20]")]), Var("R9",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(32,64)),LittleEndian(),64)), -Def(Tid(1_134, "%0000046e"), Attrs([Attr("address","0x880"), -Attr("insn","mov w8, #0x2a")]), Var("R8",Imm(64)), Int(42,64)), -Def(Tid(1_142, "%00000476"), Attrs([Attr("address","0x884"), -Attr("insn","str w8, [x9]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("R9",Imm(64)),Extract(31,0,Var("R8",Imm(64))),LittleEndian(),32)), -Def(Tid(1_149, "%0000047d"), Attrs([Attr("address","0x888"), -Attr("insn","ldur x0, [x29, #-0x10]")]), Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R29",Imm(64)),Int(18446744073709551600,64)),LittleEndian(),64)), -Def(Tid(1_154, "%00000482"), Attrs([Attr("address","0x88C"), -Attr("insn","bl #0x48")]), Var("R30",Imm(64)), Int(2192,64))]), -Jmps([Call(Tid(1_157, "%00000485"), Attrs([Attr("address","0x88C"), -Attr("insn","bl #0x48")]), Int(1,1), -(Direct(Tid(2_166, "@printCharValue")),Direct(Tid(1_284, "%00000504"))))])), -Blk(Tid(1_284, "%00000504"), Attrs([Attr("address","0x890")]), Phis([]), -Defs([Def(Tid(1_289, "%00000509"), Attrs([Attr("address","0x890"), -Attr("insn","ldr x8, [sp, #0x20]")]), Var("R8",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(32,64)),LittleEndian(),64)), -Def(Tid(1_296, "%00000510"), Attrs([Attr("address","0x894"), -Attr("insn","ldr w1, [x8]")]), Var("R1",Imm(64)), -UNSIGNED(64,Load(Var("mem",Mem(64,8)),Var("R8",Imm(64)),LittleEndian(),32))), -Def(Tid(1_301, "%00000515"), Attrs([Attr("address","0x898"), -Attr("insn","adrp x0, #0")]), Var("R0",Imm(64)), Int(0,64)), -Def(Tid(1_307, "%0000051b"), Attrs([Attr("address","0x89C"), -Attr("insn","add x0, x0, #0x92c")]), Var("R0",Imm(64)), -PLUS(Var("R0",Imm(64)),Int(2348,64))), Def(Tid(1_312, "%00000520"), - Attrs([Attr("address","0x8A0"), Attr("insn","bl #-0x1e0")]), - Var("R30",Imm(64)), Int(2212,64))]), Jmps([Call(Tid(1_314, "%00000522"), - Attrs([Attr("address","0x8A0"), Attr("insn","bl #-0x1e0")]), Int(1,1), -(Direct(Tid(2_167, "@printf")),Direct(Tid(1_316, "%00000524"))))])), -Blk(Tid(1_316, "%00000524"), Attrs([Attr("address","0x8A4")]), Phis([]), -Defs([Def(Tid(1_321, "%00000529"), Attrs([Attr("address","0x8A4"), -Attr("insn","ldr w1, [sp, #0x1c]")]), Var("R1",Imm(64)), -UNSIGNED(64,Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(28,64)),LittleEndian(),32))), -Def(Tid(1_326, "%0000052e"), Attrs([Attr("address","0x8A8"), -Attr("insn","adrp x0, #0")]), Var("R0",Imm(64)), Int(0,64)), -Def(Tid(1_332, "%00000534"), Attrs([Attr("address","0x8AC"), -Attr("insn","add x0, x0, #0x93c")]), Var("R0",Imm(64)), -PLUS(Var("R0",Imm(64)),Int(2364,64))), Def(Tid(1_337, "%00000539"), - Attrs([Attr("address","0x8B0"), Attr("insn","bl #-0x1f0")]), - Var("R30",Imm(64)), Int(2228,64))]), Jmps([Call(Tid(1_339, "%0000053b"), - Attrs([Attr("address","0x8B0"), Attr("insn","bl #-0x1f0")]), Int(1,1), -(Direct(Tid(2_167, "@printf")),Direct(Tid(1_341, "%0000053d"))))])), -Blk(Tid(1_341, "%0000053d"), Attrs([Attr("address","0x8B4")]), Phis([]), -Defs([Def(Tid(1_346, "%00000542"), Attrs([Attr("address","0x8B4"), -Attr("insn","ldur x0, [x29, #-0x10]")]), Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R29",Imm(64)),Int(18446744073709551600,64)),LittleEndian(),64)), -Def(Tid(1_351, "%00000547"), Attrs([Attr("address","0x8B8"), -Attr("insn","bl #-0x208")]), Var("R30",Imm(64)), Int(2236,64))]), -Jmps([Call(Tid(1_354, "%0000054a"), Attrs([Attr("address","0x8B8"), -Attr("insn","bl #-0x208")]), Int(1,1), -(Direct(Tid(2_163, "@free")),Direct(Tid(1_356, "%0000054c"))))])), -Blk(Tid(1_356, "%0000054c"), Attrs([Attr("address","0x8BC")]), Phis([]), -Defs([Def(Tid(1_361, "%00000551"), Attrs([Attr("address","0x8BC"), -Attr("insn","ldr x0, [sp, #0x20]")]), Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(32,64)),LittleEndian(),64)), -Def(Tid(1_366, "%00000556"), Attrs([Attr("address","0x8C0"), -Attr("insn","bl #-0x210")]), Var("R30",Imm(64)), Int(2244,64))]), -Jmps([Call(Tid(1_368, "%00000558"), Attrs([Attr("address","0x8C0"), -Attr("insn","bl #-0x210")]), Int(1,1), -(Direct(Tid(2_163, "@free")),Direct(Tid(1_370, "%0000055a"))))])), -Blk(Tid(1_370, "%0000055a"), Attrs([Attr("address","0x8C4")]), Phis([]), -Defs([Def(Tid(1_375, "%0000055f"), Attrs([Attr("address","0x8C4"), -Attr("insn","ldr w0, [sp, #0x8]")]), Var("R0",Imm(64)), -UNSIGNED(64,Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),LittleEndian(),32))), -Def(Tid(1_381, "%00000565"), Attrs([Attr("address","0x8C8"), -Attr("insn","ldp x29, x30, [sp, #0x40]")]), Var("#7",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(64,64))), Def(Tid(1_386, "%0000056a"), - Attrs([Attr("address","0x8C8"), Attr("insn","ldp x29, x30, [sp, #0x40]")]), - Var("R29",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("#7",Imm(64)),LittleEndian(),64)), -Def(Tid(1_391, "%0000056f"), Attrs([Attr("address","0x8C8"), -Attr("insn","ldp x29, x30, [sp, #0x40]")]), Var("R30",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("#7",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(1_397, "%00000575"), Attrs([Attr("address","0x8CC"), -Attr("insn","add sp, sp, #0x50")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(80,64)))]), Jmps([Call(Tid(1_402, "%0000057a"), - Attrs([Attr("address","0x8D0"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), Sub(Tid(2_165, "@malloc"), - Attrs([Attr("c.proto","void* (*)(unsigned long size)"), -Attr("address","0x680"), Attr("malloc","()"), Attr("stub","()")]), "malloc", - Args([Arg(Tid(2_189, "%0000088d"), Attrs([Attr("alloc-size","()"), -Attr("c.layout","[unsigned long : 64]"), Attr("c.data","Top:u64"), -Attr("c.type","unsigned long")]), Var("malloc_size",Imm(64)), -Var("R0",Imm(64)), In()), Arg(Tid(2_190, "%0000088e"), - Attrs([Attr("warn-unused","()"), Attr("c.layout","*[ : 8]"), -Attr("c.data","{} ptr"), Attr("c.type","void*")]), - Var("malloc_result",Imm(64)), Var("R0",Imm(64)), Out())]), -Blks([Blk(Tid(997, "@malloc"), Attrs([Attr("address","0x680")]), Phis([]), -Defs([Def(Tid(1_777, "%000006f1"), Attrs([Attr("address","0x680"), -Attr("insn","adrp x16, #69632")]), Var("R16",Imm(64)), Int(69632,64)), -Def(Tid(1_784, "%000006f8"), Attrs([Attr("address","0x684"), -Attr("insn","ldr x17, [x16, #0x10]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(16,64)),LittleEndian(),64)), -Def(Tid(1_790, "%000006fe"), Attrs([Attr("address","0x688"), -Attr("insn","add x16, x16, #0x10")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(16,64)))]), Jmps([Call(Tid(1_795, "%00000703"), - Attrs([Attr("address","0x68C"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), Sub(Tid(2_166, "@printCharValue"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x8D4")]), - "printCharValue", Args([Arg(Tid(2_191, "%0000088f"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("printCharValue_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(1_155, "@printCharValue"), - Attrs([Attr("address","0x8D4")]), Phis([]), -Defs([Def(Tid(1_162, "%0000048a"), Attrs([Attr("address","0x8D4"), -Attr("insn","sub sp, sp, #0x20")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(18446744073709551584,64))), -Def(Tid(1_168, "%00000490"), Attrs([Attr("address","0x8D8"), -Attr("insn","stp x29, x30, [sp, #0x10]")]), Var("#5",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(16,64))), Def(Tid(1_174, "%00000496"), - Attrs([Attr("address","0x8D8"), Attr("insn","stp x29, x30, [sp, #0x10]")]), - Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("#5",Imm(64)),Var("R29",Imm(64)),LittleEndian(),64)), -Def(Tid(1_180, "%0000049c"), Attrs([Attr("address","0x8D8"), -Attr("insn","stp x29, x30, [sp, #0x10]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("#5",Imm(64)),Int(8,64)),Var("R30",Imm(64)),LittleEndian(),64)), -Def(Tid(1_186, "%000004a2"), Attrs([Attr("address","0x8DC"), -Attr("insn","add x29, sp, #0x10")]), Var("R29",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(16,64))), Def(Tid(1_194, "%000004aa"), - Attrs([Attr("address","0x8E0"), Attr("insn","str x0, [sp, #0x8]")]), - Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),Var("R0",Imm(64)),LittleEndian(),64)), -Def(Tid(1_201, "%000004b1"), Attrs([Attr("address","0x8E4"), -Attr("insn","ldr x9, [sp, #0x8]")]), Var("R9",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(1_208, "%000004b8"), Attrs([Attr("address","0x8E8"), -Attr("insn","ldrb w8, [x9]")]), Var("R8",Imm(64)), -UNSIGNED(64,Load(Var("mem",Mem(64,8)),Var("R9",Imm(64)),LittleEndian(),8))), -Def(Tid(1_214, "%000004be"), Attrs([Attr("address","0x8EC"), -Attr("insn","add w8, w8, #0x1")]), Var("R8",Imm(64)), -UNSIGNED(64,PLUS(Extract(31,0,Var("R8",Imm(64))),Int(1,32)))), -Def(Tid(1_222, "%000004c6"), Attrs([Attr("address","0x8F0"), -Attr("insn","strb w8, [x9]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("R9",Imm(64)),Extract(7,0,Var("R8",Imm(64))),LittleEndian(),8)), -Def(Tid(1_229, "%000004cd"), Attrs([Attr("address","0x8F4"), -Attr("insn","ldr x8, [sp, #0x8]")]), Var("R8",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(1_236, "%000004d4"), Attrs([Attr("address","0x8F8"), -Attr("insn","ldrb w1, [x8]")]), Var("R1",Imm(64)), -UNSIGNED(64,Load(Var("mem",Mem(64,8)),Var("R8",Imm(64)),LittleEndian(),8))), -Def(Tid(1_241, "%000004d9"), Attrs([Attr("address","0x8FC"), -Attr("insn","adrp x0, #0")]), Var("R0",Imm(64)), Int(0,64)), -Def(Tid(1_247, "%000004df"), Attrs([Attr("address","0x900"), -Attr("insn","add x0, x0, #0x957")]), Var("R0",Imm(64)), -PLUS(Var("R0",Imm(64)),Int(2391,64))), Def(Tid(1_252, "%000004e4"), - Attrs([Attr("address","0x904"), Attr("insn","bl #-0x244")]), - Var("R30",Imm(64)), Int(2312,64))]), Jmps([Call(Tid(1_255, "%000004e7"), - Attrs([Attr("address","0x904"), Attr("insn","bl #-0x244")]), Int(1,1), -(Direct(Tid(2_167, "@printf")),Direct(Tid(1_257, "%000004e9"))))])), -Blk(Tid(1_257, "%000004e9"), Attrs([Attr("address","0x908")]), Phis([]), -Defs([Def(Tid(1_261, "%000004ed"), Attrs([Attr("address","0x908"), -Attr("insn","ldp x29, x30, [sp, #0x10]")]), Var("#6",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(16,64))), Def(Tid(1_266, "%000004f2"), - Attrs([Attr("address","0x908"), Attr("insn","ldp x29, x30, [sp, #0x10]")]), - Var("R29",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("#6",Imm(64)),LittleEndian(),64)), -Def(Tid(1_271, "%000004f7"), Attrs([Attr("address","0x908"), -Attr("insn","ldp x29, x30, [sp, #0x10]")]), Var("R30",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("#6",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(1_277, "%000004fd"), Attrs([Attr("address","0x90C"), -Attr("insn","add sp, sp, #0x20")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(32,64)))]), Jmps([Call(Tid(1_282, "%00000502"), - Attrs([Attr("address","0x910"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), Sub(Tid(2_167, "@printf"), - Attrs([Attr("c.proto","signed (*)( const char restrict * format, ...)"), -Attr("address","0x6C0"), Attr("stub","()")]), "printf", - Args([Arg(Tid(2_192, "%00000890"), Attrs([Attr("format","\"printf\""), -Attr("c.layout","*[char : 8]"), Attr("c.data","Top:u8 ptr"), -Attr("c.type"," const char restrict *")]), Var("printf_format",Imm(64)), -Var("R0",Imm(64)), In()), Arg(Tid(2_193, "%00000891"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("printf_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(1_253, "@printf"), - Attrs([Attr("address","0x6C0")]), Phis([]), -Defs([Def(Tid(1_865, "%00000749"), Attrs([Attr("address","0x6C0"), -Attr("insn","adrp x16, #69632")]), Var("R16",Imm(64)), Int(69632,64)), -Def(Tid(1_872, "%00000750"), Attrs([Attr("address","0x6C4"), -Attr("insn","ldr x17, [x16, #0x30]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(48,64)),LittleEndian(),64)), -Def(Tid(1_878, "%00000756"), Attrs([Attr("address","0x6C8"), -Attr("insn","add x16, x16, #0x30")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(48,64)))]), Jmps([Call(Tid(1_883, "%0000075b"), - Attrs([Attr("address","0x6CC"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), -Sub(Tid(2_168, "@register_tm_clones"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x780")]), - "register_tm_clones", Args([Arg(Tid(2_194, "%00000892"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("register_tm_clones_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(784, "@register_tm_clones"), Attrs([Attr("address","0x780")]), - Phis([]), Defs([Def(Tid(787, "%00000313"), Attrs([Attr("address","0x780"), -Attr("insn","adrp x0, #69632")]), Var("R0",Imm(64)), Int(69632,64)), -Def(Tid(793, "%00000319"), Attrs([Attr("address","0x784"), -Attr("insn","add x0, x0, #0x48")]), Var("R0",Imm(64)), -PLUS(Var("R0",Imm(64)),Int(72,64))), Def(Tid(798, "%0000031e"), - Attrs([Attr("address","0x788"), Attr("insn","adrp x1, #69632")]), - Var("R1",Imm(64)), Int(69632,64)), Def(Tid(804, "%00000324"), - Attrs([Attr("address","0x78C"), Attr("insn","add x1, x1, #0x48")]), - Var("R1",Imm(64)), PLUS(Var("R1",Imm(64)),Int(72,64))), -Def(Tid(811, "%0000032b"), Attrs([Attr("address","0x790"), -Attr("insn","sub x1, x1, x0")]), Var("R1",Imm(64)), -PLUS(PLUS(Var("R1",Imm(64)),NOT(Var("R0",Imm(64)))),Int(1,64))), -Def(Tid(817, "%00000331"), Attrs([Attr("address","0x794"), -Attr("insn","lsr x2, x1, #63")]), Var("R2",Imm(64)), -Concat(Int(0,63),Extract(63,63,Var("R1",Imm(64))))), -Def(Tid(824, "%00000338"), Attrs([Attr("address","0x798"), -Attr("insn","add x1, x2, x1, asr #3")]), Var("R1",Imm(64)), -PLUS(Var("R2",Imm(64)),ARSHIFT(Var("R1",Imm(64)),Int(3,3)))), -Def(Tid(830, "%0000033e"), Attrs([Attr("address","0x79C"), -Attr("insn","asr x1, x1, #1")]), Var("R1",Imm(64)), -SIGNED(64,Extract(63,1,Var("R1",Imm(64)))))]), -Jmps([Goto(Tid(836, "%00000344"), Attrs([Attr("address","0x7A0"), -Attr("insn","cbz x1, #0x18")]), EQ(Var("R1",Imm(64)),Int(0,64)), -Direct(Tid(834, "%00000342"))), Goto(Tid(2_169, "%00000879"), Attrs([]), - Int(1,1), Direct(Tid(1_463, "%000005b7")))])), Blk(Tid(1_463, "%000005b7"), - Attrs([Attr("address","0x7A4")]), Phis([]), -Defs([Def(Tid(1_466, "%000005ba"), Attrs([Attr("address","0x7A4"), -Attr("insn","adrp x2, #65536")]), Var("R2",Imm(64)), Int(65536,64)), -Def(Tid(1_473, "%000005c1"), Attrs([Attr("address","0x7A8"), -Attr("insn","ldr x2, [x2, #0xfe0]")]), Var("R2",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R2",Imm(64)),Int(4064,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(1_478, "%000005c6"), Attrs([Attr("address","0x7AC"), -Attr("insn","cbz x2, #0xc")]), EQ(Var("R2",Imm(64)),Int(0,64)), -Direct(Tid(834, "%00000342"))), Goto(Tid(2_170, "%0000087a"), Attrs([]), - Int(1,1), Direct(Tid(1_482, "%000005ca")))])), Blk(Tid(834, "%00000342"), - Attrs([Attr("address","0x7B8")]), Phis([]), Defs([]), -Jmps([Call(Tid(842, "%0000034a"), Attrs([Attr("address","0x7B8"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))])), -Blk(Tid(1_482, "%000005ca"), Attrs([Attr("address","0x7B0")]), Phis([]), -Defs([Def(Tid(1_486, "%000005ce"), Attrs([Attr("address","0x7B0"), -Attr("insn","mov x16, x2")]), Var("R16",Imm(64)), Var("R2",Imm(64)))]), -Jmps([Call(Tid(1_491, "%000005d3"), Attrs([Attr("address","0x7B4"), -Attr("insn","br x16")]), Int(1,1), -(Indirect(Var("R16",Imm(64))),))]))]))]))) \ No newline at end of file diff --git a/src/test/correct/malloc_with_local3/clang/malloc_with_local3.bir b/src/test/correct/malloc_with_local3/clang/malloc_with_local3.bir deleted file mode 100644 index dfacd1bf5..000000000 --- a/src/test/correct/malloc_with_local3/clang/malloc_with_local3.bir +++ /dev/null @@ -1,355 +0,0 @@ -0000087b: program -00000861: sub __cxa_finalize(__cxa_finalize_result) -0000087c: __cxa_finalize_result :: out u32 = low:32[R0] - -000005b3: -000006db: R16 := 0x11000 -000006e2: R17 := mem[R16 + 8, el]:u64 -000006e8: R16 := R16 + 8 -000006ed: call R17 with noreturn - -00000862: sub __do_global_dtors_aux(__do_global_dtors_aux_result) -0000087d: __do_global_dtors_aux_result :: out u32 = low:32[R0] - -0000034e: -00000352: #3 := R31 - 0x20 -00000358: mem := mem with [#3, el]:u64 <- R29 -0000035e: mem := mem with [#3 + 8, el]:u64 <- R30 -00000362: R31 := #3 -00000368: R29 := R31 -00000370: mem := mem with [R31 + 0x10, el]:u64 <- R19 -00000375: R19 := 0x11000 -0000037c: R0 := pad:64[mem[R19 + 0x48]] -00000383: when 31:0[R0] <> 0 goto %00000381 -00000863: goto %0000057c - -0000057c: -0000057f: R0 := 0x10000 -00000586: R0 := mem[R0 + 0xFC8, el]:u64 -0000058c: when R0 = 0 goto %0000058a -00000864: goto %000005a3 - -000005a3: -000005a6: R0 := 0x11000 -000005ad: R0 := mem[R0 + 0x40, el]:u64 -000005b2: R30 := 0x7F0 -000005b5: call @__cxa_finalize with return %0000058a - -0000058a: -00000592: R30 := 0x7F4 -00000594: call @deregister_tm_clones with return %00000596 - -00000596: -00000599: R0 := 1 -000005a1: mem := mem with [R19 + 0x48] <- 7:0[R0] -00000865: goto %00000381 - -00000381: -0000038b: R19 := mem[R31 + 0x10, el]:u64 -00000392: R29 := mem[R31, el]:u64 -00000397: R30 := mem[R31 + 8, el]:u64 -0000039b: R31 := R31 + 0x20 -000003a0: call R30 with noreturn - -00000866: sub __libc_start_main(__libc_start_main_main, __libc_start_main_arg2, __libc_start_main_arg3, __libc_start_main_auxv, __libc_start_main_result) -0000087e: __libc_start_main_main :: in u64 = R0 -0000087f: __libc_start_main_arg2 :: in u32 = low:32[R1] -00000880: __libc_start_main_arg3 :: in out u64 = R2 -00000881: __libc_start_main_auxv :: in out u64 = R3 -00000882: __libc_start_main_result :: out u32 = low:32[R0] - -000002a7: -000006c5: R16 := 0x11000 -000006cc: R17 := mem[R16, el]:u64 -000006d2: R16 := R16 -000006d7: call R17 with noreturn - -00000867: sub _fini(_fini_result) -00000883: _fini_result :: out u32 = low:32[R0] - -0000001f: -00000025: #0 := R31 - 0x10 -0000002b: mem := mem with [#0, el]:u64 <- R29 -00000031: mem := mem with [#0 + 8, el]:u64 <- R30 -00000035: R31 := #0 -0000003b: R29 := R31 -00000042: R29 := mem[R31, el]:u64 -00000047: R30 := mem[R31 + 8, el]:u64 -0000004b: R31 := R31 + 0x10 -00000050: call R30 with noreturn - -00000868: sub _init(_init_result) -00000884: _init_result :: out u32 = low:32[R0] - -00000777: -0000077d: #9 := R31 - 0x10 -00000783: mem := mem with [#9, el]:u64 <- R29 -00000789: mem := mem with [#9 + 8, el]:u64 <- R30 -0000078d: R31 := #9 -00000793: R29 := R31 -00000798: R30 := 0x638 -0000079a: call @call_weak_fn with return %0000079c - -0000079c: -000007a1: R29 := mem[R31, el]:u64 -000007a6: R30 := mem[R31 + 8, el]:u64 -000007aa: R31 := R31 + 0x10 -000007af: call R30 with noreturn - -00000869: sub _start(_start_result) -00000885: _start_result :: out u32 = low:32[R0] - -00000268: -0000026d: R29 := 0 -00000272: R30 := 0 -00000278: R5 := R0 -0000027f: R1 := mem[R31, el]:u64 -00000285: R2 := R31 + 8 -0000028b: R6 := R31 -00000290: R0 := 0x10000 -00000297: R0 := mem[R0 + 0xFD8, el]:u64 -0000029c: R3 := 0 -000002a1: R4 := 0 -000002a6: R30 := 0x730 -000002a9: call @__libc_start_main with return %000002ab - -000002ab: -000002ae: R30 := 0x734 -000002b1: call @abort with return %0000086a - -0000086a: -0000086b: call @call_weak_fn with noreturn - -0000086c: sub abort() - - -000002af: -0000071d: R16 := 0x11000 -00000724: R17 := mem[R16 + 0x20, el]:u64 -0000072a: R16 := R16 + 0x20 -0000072f: call R17 with noreturn - -0000086d: sub call_weak_fn(call_weak_fn_result) -00000886: call_weak_fn_result :: out u32 = low:32[R0] - -000002b3: -000002b6: R0 := 0x10000 -000002bd: R0 := mem[R0 + 0xFD0, el]:u64 -000002c3: when R0 = 0 goto %000002c1 -0000086e: goto %000005f3 - -000002c1: -000002c9: call R30 with noreturn - -000005f3: -000005f6: goto @__gmon_start__ - -000005f4: -00000707: R16 := 0x11000 -0000070e: R17 := mem[R16 + 0x18, el]:u64 -00000714: R16 := R16 + 0x18 -00000719: call R17 with noreturn - -0000086f: sub deregister_tm_clones(deregister_tm_clones_result) -00000887: deregister_tm_clones_result :: out u32 = low:32[R0] - -000002cf: -000002d2: R0 := 0x11000 -000002d8: R0 := R0 + 0x48 -000002dd: R1 := 0x11000 -000002e3: R1 := R1 + 0x48 -000002e9: #1 := ~R0 -000002ee: #2 := R1 + ~R0 -000002f4: VF := extend:65[#2 + 1] <> extend:65[R1] + extend:65[#1] + 1 -000002fa: CF := pad:65[#2 + 1] <> pad:65[R1] + pad:65[#1] + 1 -000002fe: ZF := #2 + 1 = 0 -00000302: NF := 63:63[#2 + 1] -00000308: when ZF goto %00000306 -00000870: goto %000005d5 - -000005d5: -000005d8: R1 := 0x10000 -000005df: R1 := mem[R1 + 0xFC0, el]:u64 -000005e4: when R1 = 0 goto %00000306 -00000871: goto %000005e8 - -00000306: -0000030e: call R30 with noreturn - -000005e8: -000005ec: R16 := R1 -000005f1: call R16 with noreturn - -00000872: sub frame_dummy(frame_dummy_result) -00000888: frame_dummy_result :: out u32 = low:32[R0] - -000003a6: -000003a8: call @register_tm_clones with noreturn - -00000873: sub free(free_ptr) -00000889: free_ptr :: in out u64 = R0 - -00000548: -00000733: R16 := 0x11000 -0000073a: R17 := mem[R16 + 0x28, el]:u64 -00000740: R16 := R16 + 0x28 -00000745: call R17 with noreturn - -00000874: sub main(main_argc, main_argv, main_result) -0000088a: main_argc :: in u32 = low:32[R0] -0000088b: main_argv :: in out u64 = R1 -0000088c: main_result :: out u32 = low:32[R0] - -000003aa: -000003ae: R31 := R31 - 0x50 -000003b4: #4 := R31 + 0x40 -000003ba: mem := mem with [#4, el]:u64 <- R29 -000003c0: mem := mem with [#4 + 8, el]:u64 <- R30 -000003c6: R29 := R31 + 0x40 -000003cb: R8 := 0 -000003d3: mem := mem with [R31 + 8, el]:u32 <- 31:0[R8] -000003da: mem := mem with [R29 - 4, el]:u32 <- 0 -000003df: R0 := 1 -000003e4: R30 := 0x834 -000003e7: call @malloc with return %000003e9 - -000003e9: -000003ef: mem := mem with [R29 - 0x10, el]:u64 <- R0 -000003f4: R8 := 0xB -000003fc: mem := mem with [R29 - 0x14, el]:u32 <- 31:0[R8] -00000401: R0 := 4 -00000409: mem := mem with [R31, el]:u64 <- R0 -0000040e: R30 := 0x84C -00000410: call @malloc with return %00000412 - -00000412: -00000416: R8 := R0 -0000041d: R0 := mem[R31, el]:u64 -00000425: mem := mem with [R31 + 0x20, el]:u64 <- R8 -0000042a: R8 := 0xA -00000432: mem := mem with [R31 + 0x1C, el]:u32 <- 31:0[R8] -00000437: R30 := 0x864 -00000439: call @malloc with return %0000043b - -0000043b: -00000441: mem := mem with [R31 + 0x10, el]:u64 <- R0 -00000446: R8 := 9 -0000044e: mem := mem with [R31 + 0xC, el]:u32 <- 31:0[R8] -00000455: R9 := mem[R29 - 0x10, el]:u64 -0000045a: R8 := 0x41 -00000462: mem := mem with [R9] <- 7:0[R8] -00000469: R9 := mem[R31 + 0x20, el]:u64 -0000046e: R8 := 0x2A -00000476: mem := mem with [R9, el]:u32 <- 31:0[R8] -0000047d: R0 := mem[R29 - 0x10, el]:u64 -00000482: R30 := 0x890 -00000485: call @printCharValue with return %00000504 - -00000504: -00000509: R8 := mem[R31 + 0x20, el]:u64 -00000510: R1 := pad:64[mem[R8, el]:u32] -00000515: R0 := 0 -0000051b: R0 := R0 + 0x92C -00000520: R30 := 0x8A4 -00000522: call @printf with return %00000524 - -00000524: -00000529: R1 := pad:64[mem[R31 + 0x1C, el]:u32] -0000052e: R0 := 0 -00000534: R0 := R0 + 0x93C -00000539: R30 := 0x8B4 -0000053b: call @printf with return %0000053d - -0000053d: -00000542: R0 := mem[R29 - 0x10, el]:u64 -00000547: R30 := 0x8BC -0000054a: call @free with return %0000054c - -0000054c: -00000551: R0 := mem[R31 + 0x20, el]:u64 -00000556: R30 := 0x8C4 -00000558: call @free with return %0000055a - -0000055a: -0000055f: R0 := pad:64[mem[R31 + 8, el]:u32] -00000565: #7 := R31 + 0x40 -0000056a: R29 := mem[#7, el]:u64 -0000056f: R30 := mem[#7 + 8, el]:u64 -00000575: R31 := R31 + 0x50 -0000057a: call R30 with noreturn - -00000875: sub malloc(malloc_size, malloc_result) -0000088d: malloc_size :: in u64 = R0 -0000088e: malloc_result :: out u64 = R0 - -000003e5: -000006f1: R16 := 0x11000 -000006f8: R17 := mem[R16 + 0x10, el]:u64 -000006fe: R16 := R16 + 0x10 -00000703: call R17 with noreturn - -00000876: sub printCharValue(printCharValue_result) -0000088f: printCharValue_result :: out u32 = low:32[R0] - -00000483: -0000048a: R31 := R31 - 0x20 -00000490: #5 := R31 + 0x10 -00000496: mem := mem with [#5, el]:u64 <- R29 -0000049c: mem := mem with [#5 + 8, el]:u64 <- R30 -000004a2: R29 := R31 + 0x10 -000004aa: mem := mem with [R31 + 8, el]:u64 <- R0 -000004b1: R9 := mem[R31 + 8, el]:u64 -000004b8: R8 := pad:64[mem[R9]] -000004be: R8 := pad:64[31:0[R8] + 1] -000004c6: mem := mem with [R9] <- 7:0[R8] -000004cd: R8 := mem[R31 + 8, el]:u64 -000004d4: R1 := pad:64[mem[R8]] -000004d9: R0 := 0 -000004df: R0 := R0 + 0x957 -000004e4: R30 := 0x908 -000004e7: call @printf with return %000004e9 - -000004e9: -000004ed: #6 := R31 + 0x10 -000004f2: R29 := mem[#6, el]:u64 -000004f7: R30 := mem[#6 + 8, el]:u64 -000004fd: R31 := R31 + 0x20 -00000502: call R30 with noreturn - -00000877: sub printf(printf_format, printf_result) -00000890: printf_format :: in u64 = R0 -00000891: printf_result :: out u32 = low:32[R0] - -000004e5: -00000749: R16 := 0x11000 -00000750: R17 := mem[R16 + 0x30, el]:u64 -00000756: R16 := R16 + 0x30 -0000075b: call R17 with noreturn - -00000878: sub register_tm_clones(register_tm_clones_result) -00000892: register_tm_clones_result :: out u32 = low:32[R0] - -00000310: -00000313: R0 := 0x11000 -00000319: R0 := R0 + 0x48 -0000031e: R1 := 0x11000 -00000324: R1 := R1 + 0x48 -0000032b: R1 := R1 + ~R0 + 1 -00000331: R2 := 0.63:63[R1] -00000338: R1 := R2 + (R1 ~>> 3) -0000033e: R1 := extend:64[63:1[R1]] -00000344: when R1 = 0 goto %00000342 -00000879: goto %000005b7 - -000005b7: -000005ba: R2 := 0x10000 -000005c1: R2 := mem[R2 + 0xFE0, el]:u64 -000005c6: when R2 = 0 goto %00000342 -0000087a: goto %000005ca - -00000342: -0000034a: call R30 with noreturn - -000005ca: -000005ce: R16 := R2 -000005d3: call R16 with noreturn diff --git a/src/test/correct/malloc_with_local3/clang/malloc_with_local3.expected b/src/test/correct/malloc_with_local3/clang/malloc_with_local3.expected index a425b7c8e..6b01963f9 100644 --- a/src/test/correct/malloc_with_local3/clang/malloc_with_local3.expected +++ b/src/test/correct/malloc_with_local3/clang/malloc_with_local3.expected @@ -117,7 +117,7 @@ procedure {:extern} rely_reflexive(); procedure {:extern} guarantee_reflexive(); modifies Gamma_mem, mem; -procedure #free_1712(); +procedure #free(); modifies Gamma_R16, Gamma_R17, R16, R17; free requires (memory_load64_le(mem, 2344bv64) == 2334386691848142849bv64); free requires (memory_load64_le(mem, 2352bv64) == 2322295453216173673bv64); @@ -156,7 +156,7 @@ procedure #free_1712(); free ensures (memory_load64_le(mem, 69592bv64) == 2068bv64); free ensures (memory_load64_le(mem, 69696bv64) == 69696bv64); -procedure main_2068(); +procedure main(); modifies Gamma_R0, Gamma_R1, Gamma_R16, Gamma_R17, Gamma_R29, Gamma_R30, Gamma_R31, Gamma_R8, Gamma_R9, Gamma_mem, Gamma_stack, R0, R1, R16, R17, R29, R30, R31, R8, R9, mem, stack; free requires (memory_load64_le(mem, 69688bv64) == 0bv64); free requires (memory_load64_le(mem, 69696bv64) == 69696bv64); @@ -201,36 +201,36 @@ procedure main_2068(); free ensures (memory_load64_le(mem, 69592bv64) == 2068bv64); free ensures (memory_load64_le(mem, 69696bv64) == 69696bv64); -implementation main_2068() +implementation main() { var #4: bv64; var #7: bv64; + var $load$19: bv64; + var $load$20: bv64; + var $load$21: bv64; + var $load$22: bv64; + var $load$23: bv64; + var $load$24: bv32; + var $load$25: bv32; + var $load$26: bv64; + var $load$27: bv64; + var $load$28: bv32; + var $load$29: bv64; + var $load$30: bv64; var Gamma_#4: bool; var Gamma_#7: bool; - var Gamma_load19: bool; - var Gamma_load20: bool; - var Gamma_load21: bool; - var Gamma_load22: bool; - var Gamma_load23: bool; - var Gamma_load24: bool; - var Gamma_load25: bool; - var Gamma_load26: bool; - var Gamma_load27: bool; - var Gamma_load28: bool; - var Gamma_load29: bool; - var Gamma_load30: bool; - var load19: bv64; - var load20: bv64; - var load21: bv64; - var load22: bv64; - var load23: bv64; - var load24: bv32; - var load25: bv32; - var load26: bv64; - var load27: bv64; - var load28: bv32; - var load29: bv64; - var load30: bv64; + var Gamma_$load$19: bool; + var Gamma_$load$20: bool; + var Gamma_$load$21: bool; + var Gamma_$load$22: bool; + var Gamma_$load$23: bool; + var Gamma_$load$24: bool; + var Gamma_$load$25: bool; + var Gamma_$load$26: bool; + var Gamma_$load$27: bool; + var Gamma_$load$28: bool; + var Gamma_$load$29: bool; + var Gamma_$load$30: bool; lmain: assume {:captureState "lmain"} true; R31, Gamma_R31 := bvadd64(R31, 18446744073709551536bv64), Gamma_R31; @@ -247,7 +247,7 @@ implementation main_2068() assume {:captureState "%000003da"} true; R0, Gamma_R0 := 1bv64, true; R30, Gamma_R30 := 2100bv64, true; - call malloc_1664(); + call malloc(); goto l000003e9; l000003e9: assume {:captureState "l000003e9"} true; @@ -260,20 +260,20 @@ implementation main_2068() stack, Gamma_stack := memory_store64_le(stack, R31, R0), gamma_store64(Gamma_stack, R31, Gamma_R0); assume {:captureState "%00000409"} true; R30, Gamma_R30 := 2124bv64, true; - call malloc_1664(); + call malloc(); goto l00000412; l00000412: assume {:captureState "l00000412"} true; R8, Gamma_R8 := R0, Gamma_R0; - load19, Gamma_load19 := memory_load64_le(stack, R31), gamma_load64(Gamma_stack, R31); - R0, Gamma_R0 := load19, Gamma_load19; + $load$19, Gamma_$load$19 := memory_load64_le(stack, R31), gamma_load64(Gamma_stack, R31); + R0, Gamma_R0 := $load$19, Gamma_$load$19; stack, Gamma_stack := memory_store64_le(stack, bvadd64(R31, 32bv64), R8), gamma_store64(Gamma_stack, bvadd64(R31, 32bv64), Gamma_R8); assume {:captureState "%00000425"} true; R8, Gamma_R8 := 10bv64, true; stack, Gamma_stack := memory_store32_le(stack, bvadd64(R31, 28bv64), R8[32:0]), gamma_store32(Gamma_stack, bvadd64(R31, 28bv64), Gamma_R8); assume {:captureState "%00000432"} true; R30, Gamma_R30 := 2148bv64, true; - call malloc_1664(); + call malloc(); goto l0000043b; l0000043b: assume {:captureState "l0000043b"} true; @@ -282,77 +282,77 @@ implementation main_2068() R8, Gamma_R8 := 9bv64, true; stack, Gamma_stack := memory_store32_le(stack, bvadd64(R31, 12bv64), R8[32:0]), gamma_store32(Gamma_stack, bvadd64(R31, 12bv64), Gamma_R8); assume {:captureState "%0000044e"} true; - load20, Gamma_load20 := memory_load64_le(stack, bvadd64(R29, 18446744073709551600bv64)), gamma_load64(Gamma_stack, bvadd64(R29, 18446744073709551600bv64)); - R9, Gamma_R9 := load20, Gamma_load20; + $load$20, Gamma_$load$20 := memory_load64_le(stack, bvadd64(R29, 18446744073709551600bv64)), gamma_load64(Gamma_stack, bvadd64(R29, 18446744073709551600bv64)); + R9, Gamma_R9 := $load$20, Gamma_$load$20; R8, Gamma_R8 := 65bv64, true; call rely(); assert (L(mem, R9) ==> Gamma_R8); mem, Gamma_mem := memory_store8_le(mem, R9, R8[8:0]), gamma_store8(Gamma_mem, R9, Gamma_R8); assume {:captureState "%00000462"} true; - load21, Gamma_load21 := memory_load64_le(stack, bvadd64(R31, 32bv64)), gamma_load64(Gamma_stack, bvadd64(R31, 32bv64)); - R9, Gamma_R9 := load21, Gamma_load21; + $load$21, Gamma_$load$21 := memory_load64_le(stack, bvadd64(R31, 32bv64)), gamma_load64(Gamma_stack, bvadd64(R31, 32bv64)); + R9, Gamma_R9 := $load$21, Gamma_$load$21; R8, Gamma_R8 := 42bv64, true; call rely(); assert (L(mem, R9) ==> Gamma_R8); mem, Gamma_mem := memory_store32_le(mem, R9, R8[32:0]), gamma_store32(Gamma_mem, R9, Gamma_R8); assume {:captureState "%00000476"} true; - load22, Gamma_load22 := memory_load64_le(stack, bvadd64(R29, 18446744073709551600bv64)), gamma_load64(Gamma_stack, bvadd64(R29, 18446744073709551600bv64)); - R0, Gamma_R0 := load22, Gamma_load22; + $load$22, Gamma_$load$22 := memory_load64_le(stack, bvadd64(R29, 18446744073709551600bv64)), gamma_load64(Gamma_stack, bvadd64(R29, 18446744073709551600bv64)); + R0, Gamma_R0 := $load$22, Gamma_$load$22; R30, Gamma_R30 := 2192bv64, true; - call printCharValue_2260(); + call printCharValue(); goto l00000504; l00000504: assume {:captureState "l00000504"} true; - load23, Gamma_load23 := memory_load64_le(stack, bvadd64(R31, 32bv64)), gamma_load64(Gamma_stack, bvadd64(R31, 32bv64)); - R8, Gamma_R8 := load23, Gamma_load23; + $load$23, Gamma_$load$23 := memory_load64_le(stack, bvadd64(R31, 32bv64)), gamma_load64(Gamma_stack, bvadd64(R31, 32bv64)); + R8, Gamma_R8 := $load$23, Gamma_$load$23; call rely(); - load24, Gamma_load24 := memory_load32_le(mem, R8), (gamma_load32(Gamma_mem, R8) || L(mem, R8)); - R1, Gamma_R1 := zero_extend32_32(load24), Gamma_load24; + $load$24, Gamma_$load$24 := memory_load32_le(mem, R8), (gamma_load32(Gamma_mem, R8) || L(mem, R8)); + R1, Gamma_R1 := zero_extend32_32($load$24), Gamma_$load$24; R0, Gamma_R0 := 0bv64, true; R0, Gamma_R0 := bvadd64(R0, 2348bv64), Gamma_R0; R30, Gamma_R30 := 2212bv64, true; - call printf_1728(); + call printf(); goto l00000524; l00000524: assume {:captureState "l00000524"} true; - load25, Gamma_load25 := memory_load32_le(stack, bvadd64(R31, 28bv64)), gamma_load32(Gamma_stack, bvadd64(R31, 28bv64)); - R1, Gamma_R1 := zero_extend32_32(load25), Gamma_load25; + $load$25, Gamma_$load$25 := memory_load32_le(stack, bvadd64(R31, 28bv64)), gamma_load32(Gamma_stack, bvadd64(R31, 28bv64)); + R1, Gamma_R1 := zero_extend32_32($load$25), Gamma_$load$25; R0, Gamma_R0 := 0bv64, true; R0, Gamma_R0 := bvadd64(R0, 2364bv64), Gamma_R0; R30, Gamma_R30 := 2228bv64, true; - call printf_1728(); + call printf(); goto l0000053d; l0000053d: assume {:captureState "l0000053d"} true; - load26, Gamma_load26 := memory_load64_le(stack, bvadd64(R29, 18446744073709551600bv64)), gamma_load64(Gamma_stack, bvadd64(R29, 18446744073709551600bv64)); - R0, Gamma_R0 := load26, Gamma_load26; + $load$26, Gamma_$load$26 := memory_load64_le(stack, bvadd64(R29, 18446744073709551600bv64)), gamma_load64(Gamma_stack, bvadd64(R29, 18446744073709551600bv64)); + R0, Gamma_R0 := $load$26, Gamma_$load$26; R30, Gamma_R30 := 2236bv64, true; - call #free_1712(); + call #free(); goto l0000054c; l0000054c: assume {:captureState "l0000054c"} true; - load27, Gamma_load27 := memory_load64_le(stack, bvadd64(R31, 32bv64)), gamma_load64(Gamma_stack, bvadd64(R31, 32bv64)); - R0, Gamma_R0 := load27, Gamma_load27; + $load$27, Gamma_$load$27 := memory_load64_le(stack, bvadd64(R31, 32bv64)), gamma_load64(Gamma_stack, bvadd64(R31, 32bv64)); + R0, Gamma_R0 := $load$27, Gamma_$load$27; R30, Gamma_R30 := 2244bv64, true; - call #free_1712(); + call #free(); goto l0000055a; l0000055a: assume {:captureState "l0000055a"} true; - load28, Gamma_load28 := memory_load32_le(stack, bvadd64(R31, 8bv64)), gamma_load32(Gamma_stack, bvadd64(R31, 8bv64)); - R0, Gamma_R0 := zero_extend32_32(load28), Gamma_load28; + $load$28, Gamma_$load$28 := memory_load32_le(stack, bvadd64(R31, 8bv64)), gamma_load32(Gamma_stack, bvadd64(R31, 8bv64)); + R0, Gamma_R0 := zero_extend32_32($load$28), Gamma_$load$28; #7, Gamma_#7 := bvadd64(R31, 64bv64), Gamma_R31; - load29, Gamma_load29 := memory_load64_le(stack, #7), gamma_load64(Gamma_stack, #7); - R29, Gamma_R29 := load29, Gamma_load29; - load30, Gamma_load30 := memory_load64_le(stack, bvadd64(#7, 8bv64)), gamma_load64(Gamma_stack, bvadd64(#7, 8bv64)); - R30, Gamma_R30 := load30, Gamma_load30; + $load$29, Gamma_$load$29 := memory_load64_le(stack, #7), gamma_load64(Gamma_stack, #7); + R29, Gamma_R29 := $load$29, Gamma_$load$29; + $load$30, Gamma_$load$30 := memory_load64_le(stack, bvadd64(#7, 8bv64)), gamma_load64(Gamma_stack, bvadd64(#7, 8bv64)); + R30, Gamma_R30 := $load$30, Gamma_$load$30; R31, Gamma_R31 := bvadd64(R31, 80bv64), Gamma_R31; - goto main_2068_basil_return; - main_2068_basil_return: - assume {:captureState "main_2068_basil_return"} true; + goto main_basil_return; + main_basil_return: + assume {:captureState "main_basil_return"} true; return; } -procedure malloc_1664(); +procedure malloc(); modifies Gamma_R16, Gamma_R17, R16, R17; free requires (memory_load64_le(mem, 2344bv64) == 2334386691848142849bv64); free requires (memory_load64_le(mem, 2352bv64) == 2322295453216173673bv64); @@ -391,7 +391,7 @@ procedure malloc_1664(); free ensures (memory_load64_le(mem, 69592bv64) == 2068bv64); free ensures (memory_load64_le(mem, 69696bv64) == 69696bv64); -procedure printCharValue_2260(); +procedure printCharValue(); modifies Gamma_R0, Gamma_R1, Gamma_R16, Gamma_R17, Gamma_R29, Gamma_R30, Gamma_R31, Gamma_R8, Gamma_R9, Gamma_mem, Gamma_stack, R0, R1, R16, R17, R29, R30, R31, R8, R9, mem, stack; free requires (memory_load64_le(mem, 2344bv64) == 2334386691848142849bv64); free requires (memory_load64_le(mem, 2352bv64) == 2322295453216173673bv64); @@ -434,24 +434,24 @@ procedure printCharValue_2260(); free ensures (memory_load64_le(mem, 69592bv64) == 2068bv64); free ensures (memory_load64_le(mem, 69696bv64) == 69696bv64); -implementation printCharValue_2260() +implementation printCharValue() { var #5: bv64; var #6: bv64; + var $load$32: bv64; + var $load$33: bv8; + var $load$34: bv64; + var $load$35: bv8; + var $load$36: bv64; + var $load$37: bv64; var Gamma_#5: bool; var Gamma_#6: bool; - var Gamma_load32: bool; - var Gamma_load33: bool; - var Gamma_load34: bool; - var Gamma_load35: bool; - var Gamma_load36: bool; - var Gamma_load37: bool; - var load32: bv64; - var load33: bv8; - var load34: bv64; - var load35: bv8; - var load36: bv64; - var load37: bv64; + var Gamma_$load$32: bool; + var Gamma_$load$33: bool; + var Gamma_$load$34: bool; + var Gamma_$load$35: bool; + var Gamma_$load$36: bool; + var Gamma_$load$37: bool; lprintCharValue: assume {:captureState "lprintCharValue"} true; R31, Gamma_R31 := bvadd64(R31, 18446744073709551584bv64), Gamma_R31; @@ -463,41 +463,41 @@ implementation printCharValue_2260() R29, Gamma_R29 := bvadd64(R31, 16bv64), Gamma_R31; stack, Gamma_stack := memory_store64_le(stack, bvadd64(R31, 8bv64), R0), gamma_store64(Gamma_stack, bvadd64(R31, 8bv64), Gamma_R0); assume {:captureState "%000004aa"} true; - load32, Gamma_load32 := memory_load64_le(stack, bvadd64(R31, 8bv64)), gamma_load64(Gamma_stack, bvadd64(R31, 8bv64)); - R9, Gamma_R9 := load32, Gamma_load32; + $load$32, Gamma_$load$32 := memory_load64_le(stack, bvadd64(R31, 8bv64)), gamma_load64(Gamma_stack, bvadd64(R31, 8bv64)); + R9, Gamma_R9 := $load$32, Gamma_$load$32; call rely(); - load33, Gamma_load33 := memory_load8_le(mem, R9), (gamma_load8(Gamma_mem, R9) || L(mem, R9)); - R8, Gamma_R8 := zero_extend56_8(load33), Gamma_load33; + $load$33, Gamma_$load$33 := memory_load8_le(mem, R9), (gamma_load8(Gamma_mem, R9) || L(mem, R9)); + R8, Gamma_R8 := zero_extend56_8($load$33), Gamma_$load$33; R8, Gamma_R8 := zero_extend32_32(bvadd32(R8[32:0], 1bv32)), Gamma_R8; call rely(); assert (L(mem, R9) ==> Gamma_R8); mem, Gamma_mem := memory_store8_le(mem, R9, R8[8:0]), gamma_store8(Gamma_mem, R9, Gamma_R8); assume {:captureState "%000004c6"} true; - load34, Gamma_load34 := memory_load64_le(stack, bvadd64(R31, 8bv64)), gamma_load64(Gamma_stack, bvadd64(R31, 8bv64)); - R8, Gamma_R8 := load34, Gamma_load34; + $load$34, Gamma_$load$34 := memory_load64_le(stack, bvadd64(R31, 8bv64)), gamma_load64(Gamma_stack, bvadd64(R31, 8bv64)); + R8, Gamma_R8 := $load$34, Gamma_$load$34; call rely(); - load35, Gamma_load35 := memory_load8_le(mem, R8), (gamma_load8(Gamma_mem, R8) || L(mem, R8)); - R1, Gamma_R1 := zero_extend56_8(load35), Gamma_load35; + $load$35, Gamma_$load$35 := memory_load8_le(mem, R8), (gamma_load8(Gamma_mem, R8) || L(mem, R8)); + R1, Gamma_R1 := zero_extend56_8($load$35), Gamma_$load$35; R0, Gamma_R0 := 0bv64, true; R0, Gamma_R0 := bvadd64(R0, 2391bv64), Gamma_R0; R30, Gamma_R30 := 2312bv64, true; - call printf_1728(); + call printf(); goto l000004e9; l000004e9: assume {:captureState "l000004e9"} true; #6, Gamma_#6 := bvadd64(R31, 16bv64), Gamma_R31; - load36, Gamma_load36 := memory_load64_le(stack, #6), gamma_load64(Gamma_stack, #6); - R29, Gamma_R29 := load36, Gamma_load36; - load37, Gamma_load37 := memory_load64_le(stack, bvadd64(#6, 8bv64)), gamma_load64(Gamma_stack, bvadd64(#6, 8bv64)); - R30, Gamma_R30 := load37, Gamma_load37; + $load$36, Gamma_$load$36 := memory_load64_le(stack, #6), gamma_load64(Gamma_stack, #6); + R29, Gamma_R29 := $load$36, Gamma_$load$36; + $load$37, Gamma_$load$37 := memory_load64_le(stack, bvadd64(#6, 8bv64)), gamma_load64(Gamma_stack, bvadd64(#6, 8bv64)); + R30, Gamma_R30 := $load$37, Gamma_$load$37; R31, Gamma_R31 := bvadd64(R31, 32bv64), Gamma_R31; - goto printCharValue_2260_basil_return; - printCharValue_2260_basil_return: - assume {:captureState "printCharValue_2260_basil_return"} true; + goto printCharValue_basil_return; + printCharValue_basil_return: + assume {:captureState "printCharValue_basil_return"} true; return; } -procedure printf_1728(); +procedure printf(); modifies Gamma_R16, Gamma_R17, R16, R17; free requires (memory_load64_le(mem, 2344bv64) == 2334386691848142849bv64); free requires (memory_load64_le(mem, 2352bv64) == 2322295453216173673bv64); diff --git a/src/test/correct/malloc_with_local3/clang/malloc_with_local3.gts b/src/test/correct/malloc_with_local3/clang/malloc_with_local3.gts deleted file mode 100644 index e9e15d99a..000000000 Binary files a/src/test/correct/malloc_with_local3/clang/malloc_with_local3.gts and /dev/null differ diff --git a/src/test/correct/malloc_with_local3/clang/malloc_with_local3.md5sum b/src/test/correct/malloc_with_local3/clang/malloc_with_local3.md5sum new file mode 100644 index 000000000..8057e95f6 --- /dev/null +++ b/src/test/correct/malloc_with_local3/clang/malloc_with_local3.md5sum @@ -0,0 +1,5 @@ +4467179dad0cf22edf9cb3e89717b6e8 correct/malloc_with_local3/clang/a.out +23ec27ed25fb801e86bf40bb1e874f79 correct/malloc_with_local3/clang/malloc_with_local3.adt +43421b2c494d7000e571314c52ae1f72 correct/malloc_with_local3/clang/malloc_with_local3.bir +466cf3b9e4ad29b27b9dc7ca172fe59f correct/malloc_with_local3/clang/malloc_with_local3.relf +9afa8fe5241cd942a8265470158b47ba correct/malloc_with_local3/clang/malloc_with_local3.gts diff --git a/src/test/correct/malloc_with_local3/clang/malloc_with_local3.relf b/src/test/correct/malloc_with_local3/clang/malloc_with_local3.relf deleted file mode 100644 index b0941c79d..000000000 --- a/src/test/correct/malloc_with_local3/clang/malloc_with_local3.relf +++ /dev/null @@ -1,132 +0,0 @@ - -Relocation section '.rela.dyn' at offset 0x4c0 contains 8 entries: - Offset Info Type Symbol's Value Symbol's Name + Addend -0000000000010dc8 0000000000000403 R_AARCH64_RELATIVE 810 -0000000000010dd0 0000000000000403 R_AARCH64_RELATIVE 7c0 -0000000000010fd8 0000000000000403 R_AARCH64_RELATIVE 814 -0000000000011040 0000000000000403 R_AARCH64_RELATIVE 11040 -0000000000010fc0 0000000400000401 R_AARCH64_GLOB_DAT 0000000000000000 _ITM_deregisterTMCloneTable + 0 -0000000000010fc8 0000000500000401 R_AARCH64_GLOB_DAT 0000000000000000 __cxa_finalize@GLIBC_2.17 + 0 -0000000000010fd0 0000000700000401 R_AARCH64_GLOB_DAT 0000000000000000 __gmon_start__ + 0 -0000000000010fe0 0000000a00000401 R_AARCH64_GLOB_DAT 0000000000000000 _ITM_registerTMCloneTable + 0 - -Relocation section '.rela.plt' at offset 0x580 contains 7 entries: - Offset Info Type Symbol's Value Symbol's Name + Addend -0000000000011000 0000000300000402 R_AARCH64_JUMP_SLOT 0000000000000000 __libc_start_main@GLIBC_2.34 + 0 -0000000000011008 0000000500000402 R_AARCH64_JUMP_SLOT 0000000000000000 __cxa_finalize@GLIBC_2.17 + 0 -0000000000011010 0000000600000402 R_AARCH64_JUMP_SLOT 0000000000000000 malloc@GLIBC_2.17 + 0 -0000000000011018 0000000700000402 R_AARCH64_JUMP_SLOT 0000000000000000 __gmon_start__ + 0 -0000000000011020 0000000800000402 R_AARCH64_JUMP_SLOT 0000000000000000 abort@GLIBC_2.17 + 0 -0000000000011028 0000000900000402 R_AARCH64_JUMP_SLOT 0000000000000000 free@GLIBC_2.17 + 0 -0000000000011030 0000000b00000402 R_AARCH64_JUMP_SLOT 0000000000000000 printf@GLIBC_2.17 + 0 - -Symbol table '.dynsym' contains 12 entries: - Num: Value Size Type Bind Vis Ndx Name - 0: 0000000000000000 0 NOTYPE LOCAL DEFAULT UND - 1: 0000000000000628 0 SECTION LOCAL DEFAULT 11 .init - 2: 0000000000011038 0 SECTION LOCAL DEFAULT 23 .data - 3: 0000000000000000 0 FUNC GLOBAL DEFAULT UND __libc_start_main@GLIBC_2.34 (2) - 4: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_deregisterTMCloneTable - 5: 0000000000000000 0 FUNC WEAK DEFAULT UND __cxa_finalize@GLIBC_2.17 (3) - 6: 0000000000000000 0 FUNC GLOBAL DEFAULT UND malloc@GLIBC_2.17 (3) - 7: 0000000000000000 0 NOTYPE WEAK DEFAULT UND __gmon_start__ - 8: 0000000000000000 0 FUNC GLOBAL DEFAULT UND abort@GLIBC_2.17 (3) - 9: 0000000000000000 0 FUNC GLOBAL DEFAULT UND free@GLIBC_2.17 (3) - 10: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_registerTMCloneTable - 11: 0000000000000000 0 FUNC GLOBAL DEFAULT UND printf@GLIBC_2.17 (3) - -Symbol table '.symtab' contains 93 entries: - Num: Value Size Type Bind Vis Ndx Name - 0: 0000000000000000 0 NOTYPE LOCAL DEFAULT UND - 1: 0000000000000238 0 SECTION LOCAL DEFAULT 1 .interp - 2: 0000000000000254 0 SECTION LOCAL DEFAULT 2 .note.gnu.build-id - 3: 0000000000000278 0 SECTION LOCAL DEFAULT 3 .note.ABI-tag - 4: 0000000000000298 0 SECTION LOCAL DEFAULT 4 .gnu.hash - 5: 00000000000002b8 0 SECTION LOCAL DEFAULT 5 .dynsym - 6: 00000000000003d8 0 SECTION LOCAL DEFAULT 6 .dynstr - 7: 0000000000000478 0 SECTION LOCAL DEFAULT 7 .gnu.version - 8: 0000000000000490 0 SECTION LOCAL DEFAULT 8 .gnu.version_r - 9: 00000000000004c0 0 SECTION LOCAL DEFAULT 9 .rela.dyn - 10: 0000000000000580 0 SECTION LOCAL DEFAULT 10 .rela.plt - 11: 0000000000000628 0 SECTION LOCAL DEFAULT 11 .init - 12: 0000000000000640 0 SECTION LOCAL DEFAULT 12 .plt - 13: 0000000000000700 0 SECTION LOCAL DEFAULT 13 .text - 14: 0000000000000914 0 SECTION LOCAL DEFAULT 14 .fini - 15: 0000000000000928 0 SECTION LOCAL DEFAULT 15 .rodata - 16: 0000000000000970 0 SECTION LOCAL DEFAULT 16 .eh_frame_hdr - 17: 00000000000009b8 0 SECTION LOCAL DEFAULT 17 .eh_frame - 18: 0000000000010dc8 0 SECTION LOCAL DEFAULT 18 .init_array - 19: 0000000000010dd0 0 SECTION LOCAL DEFAULT 19 .fini_array - 20: 0000000000010dd8 0 SECTION LOCAL DEFAULT 20 .dynamic - 21: 0000000000010fb8 0 SECTION LOCAL DEFAULT 21 .got - 22: 0000000000010fe8 0 SECTION LOCAL DEFAULT 22 .got.plt - 23: 0000000000011038 0 SECTION LOCAL DEFAULT 23 .data - 24: 0000000000011048 0 SECTION LOCAL DEFAULT 24 .bss - 25: 0000000000000000 0 SECTION LOCAL DEFAULT 25 .comment - 26: 0000000000000000 0 FILE LOCAL DEFAULT ABS Scrt1.o - 27: 0000000000000278 0 NOTYPE LOCAL DEFAULT 3 $d - 28: 0000000000000278 32 OBJECT LOCAL DEFAULT 3 __abi_tag - 29: 0000000000000700 0 NOTYPE LOCAL DEFAULT 13 $x - 30: 00000000000009cc 0 NOTYPE LOCAL DEFAULT 17 $d - 31: 0000000000000928 0 NOTYPE LOCAL DEFAULT 15 $d - 32: 0000000000000000 0 FILE LOCAL DEFAULT ABS crti.o - 33: 0000000000000734 0 NOTYPE LOCAL DEFAULT 13 $x - 34: 0000000000000734 20 FUNC LOCAL DEFAULT 13 call_weak_fn - 35: 0000000000000628 0 NOTYPE LOCAL DEFAULT 11 $x - 36: 0000000000000914 0 NOTYPE LOCAL DEFAULT 14 $x - 37: 0000000000000000 0 FILE LOCAL DEFAULT ABS crtn.o - 38: 0000000000000638 0 NOTYPE LOCAL DEFAULT 11 $x - 39: 0000000000000920 0 NOTYPE LOCAL DEFAULT 14 $x - 40: 0000000000000000 0 FILE LOCAL DEFAULT ABS crtstuff.c - 41: 0000000000000750 0 NOTYPE LOCAL DEFAULT 13 $x - 42: 0000000000000750 0 FUNC LOCAL DEFAULT 13 deregister_tm_clones - 43: 0000000000000780 0 FUNC LOCAL DEFAULT 13 register_tm_clones - 44: 0000000000011040 0 NOTYPE LOCAL DEFAULT 23 $d - 45: 00000000000007c0 0 FUNC LOCAL DEFAULT 13 __do_global_dtors_aux - 46: 0000000000011048 1 OBJECT LOCAL DEFAULT 24 completed.0 - 47: 0000000000010dd0 0 NOTYPE LOCAL DEFAULT 19 $d - 48: 0000000000010dd0 0 OBJECT LOCAL DEFAULT 19 __do_global_dtors_aux_fini_array_entry - 49: 0000000000000810 0 FUNC LOCAL DEFAULT 13 frame_dummy - 50: 0000000000010dc8 0 NOTYPE LOCAL DEFAULT 18 $d - 51: 0000000000010dc8 0 OBJECT LOCAL DEFAULT 18 __frame_dummy_init_array_entry - 52: 00000000000009e0 0 NOTYPE LOCAL DEFAULT 17 $d - 53: 0000000000011048 0 NOTYPE LOCAL DEFAULT 24 $d - 54: 0000000000000000 0 FILE LOCAL DEFAULT ABS malloc_with_local3.c - 55: 0000000000000814 0 NOTYPE LOCAL DEFAULT 13 $x.0 - 56: 000000000000092c 0 NOTYPE LOCAL DEFAULT 15 $d.1 - 57: 000000000000002a 0 NOTYPE LOCAL DEFAULT 25 $d.2 - 58: 0000000000000a40 0 NOTYPE LOCAL DEFAULT 17 $d.3 - 59: 0000000000000000 0 FILE LOCAL DEFAULT ABS crtstuff.c - 60: 0000000000000aa4 0 NOTYPE LOCAL DEFAULT 17 $d - 61: 0000000000000aa4 0 OBJECT LOCAL DEFAULT 17 __FRAME_END__ - 62: 0000000000000000 0 FILE LOCAL DEFAULT ABS - 63: 0000000000010dd8 0 OBJECT LOCAL DEFAULT ABS _DYNAMIC - 64: 0000000000000970 0 NOTYPE LOCAL DEFAULT 16 __GNU_EH_FRAME_HDR - 65: 0000000000010fb8 0 OBJECT LOCAL DEFAULT ABS _GLOBAL_OFFSET_TABLE_ - 66: 0000000000000640 0 NOTYPE LOCAL DEFAULT 12 $x - 67: 0000000000000000 0 FUNC GLOBAL DEFAULT UND __libc_start_main@GLIBC_2.34 - 68: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_deregisterTMCloneTable - 69: 0000000000011038 0 NOTYPE WEAK DEFAULT 23 data_start - 70: 0000000000011048 0 NOTYPE GLOBAL DEFAULT 24 __bss_start__ - 71: 0000000000000000 0 FUNC WEAK DEFAULT UND __cxa_finalize@GLIBC_2.17 - 72: 0000000000011050 0 NOTYPE GLOBAL DEFAULT 24 _bss_end__ - 73: 0000000000011048 0 NOTYPE GLOBAL DEFAULT 23 _edata - 74: 0000000000000914 0 FUNC GLOBAL HIDDEN 14 _fini - 75: 0000000000011050 0 NOTYPE GLOBAL DEFAULT 24 __bss_end__ - 76: 0000000000000000 0 FUNC GLOBAL DEFAULT UND malloc@GLIBC_2.17 - 77: 0000000000011038 0 NOTYPE GLOBAL DEFAULT 23 __data_start - 78: 0000000000000000 0 NOTYPE WEAK DEFAULT UND __gmon_start__ - 79: 00000000000008d4 64 FUNC GLOBAL DEFAULT 13 printCharValue - 80: 0000000000011040 0 OBJECT GLOBAL HIDDEN 23 __dso_handle - 81: 0000000000000000 0 FUNC GLOBAL DEFAULT UND abort@GLIBC_2.17 - 82: 0000000000000928 4 OBJECT GLOBAL DEFAULT 15 _IO_stdin_used - 83: 0000000000011050 0 NOTYPE GLOBAL DEFAULT 24 _end - 84: 0000000000000000 0 FUNC GLOBAL DEFAULT UND free@GLIBC_2.17 - 85: 0000000000000700 52 FUNC GLOBAL DEFAULT 13 _start - 86: 0000000000011050 0 NOTYPE GLOBAL DEFAULT 24 __end__ - 87: 0000000000011048 0 NOTYPE GLOBAL DEFAULT 24 __bss_start - 88: 0000000000000814 192 FUNC GLOBAL DEFAULT 13 main - 89: 0000000000011048 0 OBJECT GLOBAL HIDDEN 23 __TMC_END__ - 90: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_registerTMCloneTable - 91: 0000000000000000 0 FUNC GLOBAL DEFAULT UND printf@GLIBC_2.17 - 92: 0000000000000628 0 FUNC GLOBAL HIDDEN 11 _init diff --git a/src/test/correct/malloc_with_local3/clang/malloc_with_local3_gtirb.expected b/src/test/correct/malloc_with_local3/clang/malloc_with_local3_gtirb.expected index f08f3c1f1..61f525478 100644 --- a/src/test/correct/malloc_with_local3/clang/malloc_with_local3_gtirb.expected +++ b/src/test/correct/malloc_with_local3/clang/malloc_with_local3_gtirb.expected @@ -117,7 +117,7 @@ procedure {:extern} rely_reflexive(); procedure {:extern} guarantee_reflexive(); modifies Gamma_mem, mem; -procedure FUN_6c0_1728(); +procedure FUN_6c0(); modifies Gamma_R16, Gamma_R17, Gamma_mem, R16, R17, mem; free requires (memory_load64_le(mem, 2344bv64) == 2334386691848142849bv64); free requires (memory_load64_le(mem, 2352bv64) == 2322295453216173673bv64); @@ -156,25 +156,22 @@ procedure FUN_6c0_1728(); free ensures (memory_load64_le(mem, 69592bv64) == 2068bv64); free ensures (memory_load64_le(mem, 69696bv64) == 69696bv64); -implementation FUN_6c0_1728() +implementation FUN_6c0() { - var Gamma_load5: bool; - var load5: bv64; - FUN_6c0_1728__0__me9kzk4bRj6EX~wS6RkzzQ: - assume {:captureState "FUN_6c0_1728__0__me9kzk4bRj6EX~wS6RkzzQ"} true; + var $load5: bv64; + var Gamma_$load5: bool; + $FUN_6c0$__0__$me9kzk4bRj6EX~wS6RkzzQ: + assume {:captureState "$FUN_6c0$__0__$me9kzk4bRj6EX~wS6RkzzQ"} true; R16, Gamma_R16 := 69632bv64, true; call rely(); - load5, Gamma_load5 := memory_load64_le(mem, bvadd64(R16, 48bv64)), (gamma_load64(Gamma_mem, bvadd64(R16, 48bv64)) || L(mem, bvadd64(R16, 48bv64))); - R17, Gamma_R17 := load5, Gamma_load5; + $load5, Gamma_$load5 := memory_load64_le(mem, bvadd64(R16, 48bv64)), (gamma_load64(Gamma_mem, bvadd64(R16, 48bv64)) || L(mem, bvadd64(R16, 48bv64))); + R17, Gamma_R17 := $load5, Gamma_$load5; R16, Gamma_R16 := bvadd64(R16, 48bv64), Gamma_R16; call printf(); - goto FUN_6c0_1728_basil_return; - FUN_6c0_1728_basil_return: - assume {:captureState "FUN_6c0_1728_basil_return"} true; - return; + assume false; } -procedure main_2068(); +procedure main(); modifies Gamma_R0, Gamma_R1, Gamma_R16, Gamma_R17, Gamma_R29, Gamma_R30, Gamma_R31, Gamma_R8, Gamma_R9, Gamma_mem, Gamma_stack, R0, R1, R16, R17, R29, R30, R31, R8, R9, mem, stack; free requires (memory_load64_le(mem, 69688bv64) == 0bv64); free requires (memory_load64_le(mem, 69696bv64) == 69696bv64); @@ -219,158 +216,158 @@ procedure main_2068(); free ensures (memory_load64_le(mem, 69592bv64) == 2068bv64); free ensures (memory_load64_le(mem, 69696bv64) == 69696bv64); -implementation main_2068() +implementation main() { - var Cse0__5_4_1: bv64; - var Cse0__5_5_1: bv64; - var Gamma_Cse0__5_4_1: bool; - var Gamma_Cse0__5_5_1: bool; - var Gamma_load10: bool; - var Gamma_load11: bool; - var Gamma_load12: bool; - var Gamma_load13: bool; - var Gamma_load14: bool; - var Gamma_load15: bool; - var Gamma_load16: bool; - var Gamma_load17: bool; - var Gamma_load6: bool; - var Gamma_load7: bool; - var Gamma_load8: bool; - var Gamma_load9: bool; - var load10: bv64; - var load11: bv64; - var load12: bv32; - var load13: bv64; - var load14: bv64; - var load15: bv64; - var load16: bv32; - var load17: bv64; - var load6: bv64; - var load7: bv64; - var load8: bv64; - var load9: bv32; - main_2068__0__nxS5BBFfTke_CNErRQFGKQ: - assume {:captureState "main_2068__0__nxS5BBFfTke_CNErRQFGKQ"} true; + var $load10: bv64; + var $load11: bv64; + var $load12: bv32; + var $load13: bv64; + var $load14: bv64; + var $load15: bv64; + var $load16: bv32; + var $load17: bv64; + var $load6: bv64; + var $load7: bv64; + var $load8: bv64; + var $load9: bv32; + var Cse0__5$4$1: bv64; + var Cse0__5$5$1: bv64; + var Gamma_$load10: bool; + var Gamma_$load11: bool; + var Gamma_$load12: bool; + var Gamma_$load13: bool; + var Gamma_$load14: bool; + var Gamma_$load15: bool; + var Gamma_$load16: bool; + var Gamma_$load17: bool; + var Gamma_$load6: bool; + var Gamma_$load7: bool; + var Gamma_$load8: bool; + var Gamma_$load9: bool; + var Gamma_Cse0__5$4$1: bool; + var Gamma_Cse0__5$5$1: bool; + $main$__0__$nxS5BBFfTke_CNErRQFGKQ: + assume {:captureState "$main$__0__$nxS5BBFfTke_CNErRQFGKQ"} true; R31, Gamma_R31 := bvadd64(R31, 18446744073709551536bv64), Gamma_R31; - Cse0__5_5_1, Gamma_Cse0__5_5_1 := bvadd64(R31, 64bv64), Gamma_R31; - stack, Gamma_stack := memory_store64_le(stack, Cse0__5_5_1, R29), gamma_store64(Gamma_stack, Cse0__5_5_1, Gamma_R29); - assume {:captureState "2072_1"} true; - stack, Gamma_stack := memory_store64_le(stack, bvadd64(Cse0__5_5_1, 8bv64), R30), gamma_store64(Gamma_stack, bvadd64(Cse0__5_5_1, 8bv64), Gamma_R30); - assume {:captureState "2072_2"} true; + Cse0__5$5$1, Gamma_Cse0__5$5$1 := bvadd64(R31, 64bv64), Gamma_R31; + stack, Gamma_stack := memory_store64_le(stack, Cse0__5$5$1, R29), gamma_store64(Gamma_stack, Cse0__5$5$1, Gamma_R29); + assume {:captureState "2072$1"} true; + stack, Gamma_stack := memory_store64_le(stack, bvadd64(Cse0__5$5$1, 8bv64), R30), gamma_store64(Gamma_stack, bvadd64(Cse0__5$5$1, 8bv64), Gamma_R30); + assume {:captureState "2072$2"} true; R29, Gamma_R29 := bvadd64(R31, 64bv64), Gamma_R31; R8, Gamma_R8 := 0bv64, true; stack, Gamma_stack := memory_store32_le(stack, bvadd64(R31, 8bv64), R8[32:0]), gamma_store32(Gamma_stack, bvadd64(R31, 8bv64), Gamma_R8); - assume {:captureState "2084_0"} true; + assume {:captureState "2084$0"} true; stack, Gamma_stack := memory_store32_le(stack, bvadd64(R29, 18446744073709551612bv64), 0bv32), gamma_store32(Gamma_stack, bvadd64(R29, 18446744073709551612bv64), true); - assume {:captureState "2088_0"} true; + assume {:captureState "2088$0"} true; R0, Gamma_R0 := 1bv64, true; R30, Gamma_R30 := 2100bv64, true; - call FUN_680_1664(); - goto main_2068__1__Ik7a47RJTBa1l1WDXE7X3A; - main_2068__1__Ik7a47RJTBa1l1WDXE7X3A: - assume {:captureState "main_2068__1__Ik7a47RJTBa1l1WDXE7X3A"} true; + call FUN_680(); + goto $main$__1__$Ik7a47RJTBa1l1WDXE7X3A; + $main$__1__$Ik7a47RJTBa1l1WDXE7X3A: + assume {:captureState "$main$__1__$Ik7a47RJTBa1l1WDXE7X3A"} true; stack, Gamma_stack := memory_store64_le(stack, bvadd64(R29, 18446744073709551600bv64), R0), gamma_store64(Gamma_stack, bvadd64(R29, 18446744073709551600bv64), Gamma_R0); - assume {:captureState "2100_0"} true; + assume {:captureState "2100$0"} true; R8, Gamma_R8 := 11bv64, true; stack, Gamma_stack := memory_store32_le(stack, bvadd64(R29, 18446744073709551596bv64), R8[32:0]), gamma_store32(Gamma_stack, bvadd64(R29, 18446744073709551596bv64), Gamma_R8); - assume {:captureState "2108_0"} true; + assume {:captureState "2108$0"} true; R0, Gamma_R0 := 4bv64, true; stack, Gamma_stack := memory_store64_le(stack, R31, R0), gamma_store64(Gamma_stack, R31, Gamma_R0); - assume {:captureState "2116_0"} true; + assume {:captureState "2116$0"} true; R30, Gamma_R30 := 2124bv64, true; - call FUN_680_1664(); - goto main_2068__2__4Qjclk41Sf2Jx7UaAwk5Gw; - main_2068__2__4Qjclk41Sf2Jx7UaAwk5Gw: - assume {:captureState "main_2068__2__4Qjclk41Sf2Jx7UaAwk5Gw"} true; + call FUN_680(); + goto $main$__2__$4Qjclk41Sf2Jx7UaAwk5Gw; + $main$__2__$4Qjclk41Sf2Jx7UaAwk5Gw: + assume {:captureState "$main$__2__$4Qjclk41Sf2Jx7UaAwk5Gw"} true; R8, Gamma_R8 := R0, Gamma_R0; - load17, Gamma_load17 := memory_load64_le(stack, R31), gamma_load64(Gamma_stack, R31); - R0, Gamma_R0 := load17, Gamma_load17; + $load17, Gamma_$load17 := memory_load64_le(stack, R31), gamma_load64(Gamma_stack, R31); + R0, Gamma_R0 := $load17, Gamma_$load17; stack, Gamma_stack := memory_store64_le(stack, bvadd64(R31, 32bv64), R8), gamma_store64(Gamma_stack, bvadd64(R31, 32bv64), Gamma_R8); - assume {:captureState "2132_0"} true; + assume {:captureState "2132$0"} true; R8, Gamma_R8 := 10bv64, true; stack, Gamma_stack := memory_store32_le(stack, bvadd64(R31, 28bv64), R8[32:0]), gamma_store32(Gamma_stack, bvadd64(R31, 28bv64), Gamma_R8); - assume {:captureState "2140_0"} true; + assume {:captureState "2140$0"} true; R30, Gamma_R30 := 2148bv64, true; - call FUN_680_1664(); - goto main_2068__3__jJOoR~rDTuy7U_5U9rR_Gg; - main_2068__3__jJOoR~rDTuy7U_5U9rR_Gg: - assume {:captureState "main_2068__3__jJOoR~rDTuy7U_5U9rR_Gg"} true; + call FUN_680(); + goto $main$__3__$jJOoR~rDTuy7U_5U9rR_Gg; + $main$__3__$jJOoR~rDTuy7U_5U9rR_Gg: + assume {:captureState "$main$__3__$jJOoR~rDTuy7U_5U9rR_Gg"} true; stack, Gamma_stack := memory_store64_le(stack, bvadd64(R31, 16bv64), R0), gamma_store64(Gamma_stack, bvadd64(R31, 16bv64), Gamma_R0); - assume {:captureState "2148_0"} true; + assume {:captureState "2148$0"} true; R8, Gamma_R8 := 9bv64, true; stack, Gamma_stack := memory_store32_le(stack, bvadd64(R31, 12bv64), R8[32:0]), gamma_store32(Gamma_stack, bvadd64(R31, 12bv64), Gamma_R8); - assume {:captureState "2156_0"} true; - load6, Gamma_load6 := memory_load64_le(stack, bvadd64(R29, 18446744073709551600bv64)), gamma_load64(Gamma_stack, bvadd64(R29, 18446744073709551600bv64)); - R9, Gamma_R9 := load6, Gamma_load6; + assume {:captureState "2156$0"} true; + $load6, Gamma_$load6 := memory_load64_le(stack, bvadd64(R29, 18446744073709551600bv64)), gamma_load64(Gamma_stack, bvadd64(R29, 18446744073709551600bv64)); + R9, Gamma_R9 := $load6, Gamma_$load6; R8, Gamma_R8 := 65bv64, true; call rely(); assert (L(mem, R9) ==> Gamma_R8); mem, Gamma_mem := memory_store8_le(mem, R9, R8[8:0]), gamma_store8(Gamma_mem, R9, Gamma_R8); - assume {:captureState "2168_0"} true; - load7, Gamma_load7 := memory_load64_le(stack, bvadd64(R31, 32bv64)), gamma_load64(Gamma_stack, bvadd64(R31, 32bv64)); - R9, Gamma_R9 := load7, Gamma_load7; + assume {:captureState "2168$0"} true; + $load7, Gamma_$load7 := memory_load64_le(stack, bvadd64(R31, 32bv64)), gamma_load64(Gamma_stack, bvadd64(R31, 32bv64)); + R9, Gamma_R9 := $load7, Gamma_$load7; R8, Gamma_R8 := 42bv64, true; call rely(); assert (L(mem, R9) ==> Gamma_R8); mem, Gamma_mem := memory_store32_le(mem, R9, R8[32:0]), gamma_store32(Gamma_mem, R9, Gamma_R8); - assume {:captureState "2180_0"} true; - load8, Gamma_load8 := memory_load64_le(stack, bvadd64(R29, 18446744073709551600bv64)), gamma_load64(Gamma_stack, bvadd64(R29, 18446744073709551600bv64)); - R0, Gamma_R0 := load8, Gamma_load8; + assume {:captureState "2180$0"} true; + $load8, Gamma_$load8 := memory_load64_le(stack, bvadd64(R29, 18446744073709551600bv64)), gamma_load64(Gamma_stack, bvadd64(R29, 18446744073709551600bv64)); + R0, Gamma_R0 := $load8, Gamma_$load8; R30, Gamma_R30 := 2192bv64, true; - call printCharValue_2260(); - goto main_2068__4__Pa4MGsAVS6~tzB83NfXLBg; - main_2068__4__Pa4MGsAVS6~tzB83NfXLBg: - assume {:captureState "main_2068__4__Pa4MGsAVS6~tzB83NfXLBg"} true; - load15, Gamma_load15 := memory_load64_le(stack, bvadd64(R31, 32bv64)), gamma_load64(Gamma_stack, bvadd64(R31, 32bv64)); - R8, Gamma_R8 := load15, Gamma_load15; + call printCharValue(); + goto $main$__4__$Pa4MGsAVS6~tzB83NfXLBg; + $main$__4__$Pa4MGsAVS6~tzB83NfXLBg: + assume {:captureState "$main$__4__$Pa4MGsAVS6~tzB83NfXLBg"} true; + $load15, Gamma_$load15 := memory_load64_le(stack, bvadd64(R31, 32bv64)), gamma_load64(Gamma_stack, bvadd64(R31, 32bv64)); + R8, Gamma_R8 := $load15, Gamma_$load15; call rely(); - load16, Gamma_load16 := memory_load32_le(mem, R8), (gamma_load32(Gamma_mem, R8) || L(mem, R8)); - R1, Gamma_R1 := zero_extend32_32(load16), Gamma_load16; + $load16, Gamma_$load16 := memory_load32_le(mem, R8), (gamma_load32(Gamma_mem, R8) || L(mem, R8)); + R1, Gamma_R1 := zero_extend32_32($load16), Gamma_$load16; R0, Gamma_R0 := 0bv64, true; R0, Gamma_R0 := bvadd64(R0, 2348bv64), Gamma_R0; R30, Gamma_R30 := 2148bv64, true; - call FUN_6c0_1728(); - goto main_2068__5__~SkD5Pe5QqiMlkcFiJItZA; - main_2068__5__~SkD5Pe5QqiMlkcFiJItZA: - assume {:captureState "main_2068__5__~SkD5Pe5QqiMlkcFiJItZA"} true; - load9, Gamma_load9 := memory_load32_le(stack, bvadd64(R31, 28bv64)), gamma_load32(Gamma_stack, bvadd64(R31, 28bv64)); - R1, Gamma_R1 := zero_extend32_32(load9), Gamma_load9; + call FUN_6c0(); + goto $main$__5__$~SkD5Pe5QqiMlkcFiJItZA; + $main$__5__$~SkD5Pe5QqiMlkcFiJItZA: + assume {:captureState "$main$__5__$~SkD5Pe5QqiMlkcFiJItZA"} true; + $load9, Gamma_$load9 := memory_load32_le(stack, bvadd64(R31, 28bv64)), gamma_load32(Gamma_stack, bvadd64(R31, 28bv64)); + R1, Gamma_R1 := zero_extend32_32($load9), Gamma_$load9; R0, Gamma_R0 := 0bv64, true; R0, Gamma_R0 := bvadd64(R0, 2364bv64), Gamma_R0; R30, Gamma_R30 := 2228bv64, true; - call FUN_6c0_1728(); - goto main_2068__6__hzO7zn1JRG~r_d3kLC97VQ; - main_2068__6__hzO7zn1JRG~r_d3kLC97VQ: - assume {:captureState "main_2068__6__hzO7zn1JRG~r_d3kLC97VQ"} true; - load10, Gamma_load10 := memory_load64_le(stack, bvadd64(R29, 18446744073709551600bv64)), gamma_load64(Gamma_stack, bvadd64(R29, 18446744073709551600bv64)); - R0, Gamma_R0 := load10, Gamma_load10; + call FUN_6c0(); + goto $main$__6__$hzO7zn1JRG~r_d3kLC97VQ; + $main$__6__$hzO7zn1JRG~r_d3kLC97VQ: + assume {:captureState "$main$__6__$hzO7zn1JRG~r_d3kLC97VQ"} true; + $load10, Gamma_$load10 := memory_load64_le(stack, bvadd64(R29, 18446744073709551600bv64)), gamma_load64(Gamma_stack, bvadd64(R29, 18446744073709551600bv64)); + R0, Gamma_R0 := $load10, Gamma_$load10; R30, Gamma_R30 := 2236bv64, true; - call FUN_6b0_1712(); - goto main_2068__7__uPLqBGF0TDGfPpIXh_rpzQ; - main_2068__7__uPLqBGF0TDGfPpIXh_rpzQ: - assume {:captureState "main_2068__7__uPLqBGF0TDGfPpIXh_rpzQ"} true; - load11, Gamma_load11 := memory_load64_le(stack, bvadd64(R31, 32bv64)), gamma_load64(Gamma_stack, bvadd64(R31, 32bv64)); - R0, Gamma_R0 := load11, Gamma_load11; + call FUN_6b0(); + goto $main$__7__$uPLqBGF0TDGfPpIXh_rpzQ; + $main$__7__$uPLqBGF0TDGfPpIXh_rpzQ: + assume {:captureState "$main$__7__$uPLqBGF0TDGfPpIXh_rpzQ"} true; + $load11, Gamma_$load11 := memory_load64_le(stack, bvadd64(R31, 32bv64)), gamma_load64(Gamma_stack, bvadd64(R31, 32bv64)); + R0, Gamma_R0 := $load11, Gamma_$load11; R30, Gamma_R30 := 2244bv64, true; - call FUN_6b0_1712(); - goto main_2068__8__9Y41cbd5RxmWaVzl3hmTRA; - main_2068__8__9Y41cbd5RxmWaVzl3hmTRA: - assume {:captureState "main_2068__8__9Y41cbd5RxmWaVzl3hmTRA"} true; - load12, Gamma_load12 := memory_load32_le(stack, bvadd64(R31, 8bv64)), gamma_load32(Gamma_stack, bvadd64(R31, 8bv64)); - R0, Gamma_R0 := zero_extend32_32(load12), Gamma_load12; - Cse0__5_4_1, Gamma_Cse0__5_4_1 := bvadd64(R31, 64bv64), Gamma_R31; - load13, Gamma_load13 := memory_load64_le(stack, Cse0__5_4_1), gamma_load64(Gamma_stack, Cse0__5_4_1); - R29, Gamma_R29 := load13, Gamma_load13; - load14, Gamma_load14 := memory_load64_le(stack, bvadd64(Cse0__5_4_1, 8bv64)), gamma_load64(Gamma_stack, bvadd64(Cse0__5_4_1, 8bv64)); - R30, Gamma_R30 := load14, Gamma_load14; + call FUN_6b0(); + goto $main$__8__$9Y41cbd5RxmWaVzl3hmTRA; + $main$__8__$9Y41cbd5RxmWaVzl3hmTRA: + assume {:captureState "$main$__8__$9Y41cbd5RxmWaVzl3hmTRA"} true; + $load12, Gamma_$load12 := memory_load32_le(stack, bvadd64(R31, 8bv64)), gamma_load32(Gamma_stack, bvadd64(R31, 8bv64)); + R0, Gamma_R0 := zero_extend32_32($load12), Gamma_$load12; + Cse0__5$4$1, Gamma_Cse0__5$4$1 := bvadd64(R31, 64bv64), Gamma_R31; + $load13, Gamma_$load13 := memory_load64_le(stack, Cse0__5$4$1), gamma_load64(Gamma_stack, Cse0__5$4$1); + R29, Gamma_R29 := $load13, Gamma_$load13; + $load14, Gamma_$load14 := memory_load64_le(stack, bvadd64(Cse0__5$4$1, 8bv64)), gamma_load64(Gamma_stack, bvadd64(Cse0__5$4$1, 8bv64)); + R30, Gamma_R30 := $load14, Gamma_$load14; R31, Gamma_R31 := bvadd64(R31, 80bv64), Gamma_R31; - goto main_2068_basil_return; - main_2068_basil_return: - assume {:captureState "main_2068_basil_return"} true; + goto main_basil_return; + main_basil_return: + assume {:captureState "main_basil_return"} true; return; } -procedure FUN_680_1664(); +procedure FUN_680(); modifies Gamma_R16, Gamma_R17, Gamma_mem, R16, R17, mem; free requires (memory_load64_le(mem, 2344bv64) == 2334386691848142849bv64); free requires (memory_load64_le(mem, 2352bv64) == 2322295453216173673bv64); @@ -409,25 +406,22 @@ procedure FUN_680_1664(); free ensures (memory_load64_le(mem, 69592bv64) == 2068bv64); free ensures (memory_load64_le(mem, 69696bv64) == 69696bv64); -implementation FUN_680_1664() +implementation FUN_680() { - var Gamma_load29: bool; - var load29: bv64; - FUN_680_1664__0__q33iZ61pRiq0p_PPlVbZ1g: - assume {:captureState "FUN_680_1664__0__q33iZ61pRiq0p_PPlVbZ1g"} true; + var $load29: bv64; + var Gamma_$load29: bool; + $FUN_680$__0__$q33iZ61pRiq0p_PPlVbZ1g: + assume {:captureState "$FUN_680$__0__$q33iZ61pRiq0p_PPlVbZ1g"} true; R16, Gamma_R16 := 69632bv64, true; call rely(); - load29, Gamma_load29 := memory_load64_le(mem, bvadd64(R16, 16bv64)), (gamma_load64(Gamma_mem, bvadd64(R16, 16bv64)) || L(mem, bvadd64(R16, 16bv64))); - R17, Gamma_R17 := load29, Gamma_load29; + $load29, Gamma_$load29 := memory_load64_le(mem, bvadd64(R16, 16bv64)), (gamma_load64(Gamma_mem, bvadd64(R16, 16bv64)) || L(mem, bvadd64(R16, 16bv64))); + R17, Gamma_R17 := $load29, Gamma_$load29; R16, Gamma_R16 := bvadd64(R16, 16bv64), Gamma_R16; call malloc(); - goto FUN_680_1664_basil_return; - FUN_680_1664_basil_return: - assume {:captureState "FUN_680_1664_basil_return"} true; - return; + assume false; } -procedure FUN_6b0_1712(); +procedure FUN_6b0(); modifies Gamma_R16, Gamma_R17, Gamma_mem, R16, R17, mem; free requires (memory_load64_le(mem, 2344bv64) == 2334386691848142849bv64); free requires (memory_load64_le(mem, 2352bv64) == 2322295453216173673bv64); @@ -466,25 +460,22 @@ procedure FUN_6b0_1712(); free ensures (memory_load64_le(mem, 69592bv64) == 2068bv64); free ensures (memory_load64_le(mem, 69696bv64) == 69696bv64); -implementation FUN_6b0_1712() +implementation FUN_6b0() { - var Gamma_load30: bool; - var load30: bv64; - FUN_6b0_1712__0__RW4J0XkoQ6ao8Rv9r_1Z0Q: - assume {:captureState "FUN_6b0_1712__0__RW4J0XkoQ6ao8Rv9r_1Z0Q"} true; + var $load30: bv64; + var Gamma_$load30: bool; + $FUN_6b0$__0__$RW4J0XkoQ6ao8Rv9r_1Z0Q: + assume {:captureState "$FUN_6b0$__0__$RW4J0XkoQ6ao8Rv9r_1Z0Q"} true; R16, Gamma_R16 := 69632bv64, true; call rely(); - load30, Gamma_load30 := memory_load64_le(mem, bvadd64(R16, 40bv64)), (gamma_load64(Gamma_mem, bvadd64(R16, 40bv64)) || L(mem, bvadd64(R16, 40bv64))); - R17, Gamma_R17 := load30, Gamma_load30; + $load30, Gamma_$load30 := memory_load64_le(mem, bvadd64(R16, 40bv64)), (gamma_load64(Gamma_mem, bvadd64(R16, 40bv64)) || L(mem, bvadd64(R16, 40bv64))); + R17, Gamma_R17 := $load30, Gamma_$load30; R16, Gamma_R16 := bvadd64(R16, 40bv64), Gamma_R16; call #free(); - goto FUN_6b0_1712_basil_return; - FUN_6b0_1712_basil_return: - assume {:captureState "FUN_6b0_1712_basil_return"} true; - return; + assume false; } -procedure printCharValue_2260(); +procedure printCharValue(); modifies Gamma_R0, Gamma_R1, Gamma_R16, Gamma_R17, Gamma_R29, Gamma_R30, Gamma_R31, Gamma_R8, Gamma_R9, Gamma_mem, Gamma_stack, R0, R1, R16, R17, R29, R30, R31, R8, R9, mem, stack; free requires (memory_load64_le(mem, 2344bv64) == 2334386691848142849bv64); free requires (memory_load64_le(mem, 2352bv64) == 2322295453216173673bv64); @@ -527,66 +518,66 @@ procedure printCharValue_2260(); free ensures (memory_load64_le(mem, 69592bv64) == 2068bv64); free ensures (memory_load64_le(mem, 69696bv64) == 69696bv64); -implementation printCharValue_2260() +implementation printCharValue() { - var Cse0__5_0_1: bv64; - var Cse0__5_1_0: bv64; - var Gamma_Cse0__5_0_1: bool; - var Gamma_Cse0__5_1_0: bool; - var Gamma_load34: bool; - var Gamma_load35: bool; - var Gamma_load36: bool; - var Gamma_load37: bool; - var Gamma_load38: bool; - var Gamma_load39: bool; - var load34: bv64; - var load35: bv8; - var load36: bv64; - var load37: bv8; - var load38: bv64; - var load39: bv64; - printCharValue_2260__0__oLhjcPasQ0GRWJmyJMiN1Q: - assume {:captureState "printCharValue_2260__0__oLhjcPasQ0GRWJmyJMiN1Q"} true; + var $load34: bv64; + var $load35: bv8; + var $load36: bv64; + var $load37: bv8; + var $load38: bv64; + var $load39: bv64; + var Cse0__5$0$1: bv64; + var Cse0__5$1$0: bv64; + var Gamma_$load34: bool; + var Gamma_$load35: bool; + var Gamma_$load36: bool; + var Gamma_$load37: bool; + var Gamma_$load38: bool; + var Gamma_$load39: bool; + var Gamma_Cse0__5$0$1: bool; + var Gamma_Cse0__5$1$0: bool; + $printCharValue$__0__$oLhjcPasQ0GRWJmyJMiN1Q: + assume {:captureState "$printCharValue$__0__$oLhjcPasQ0GRWJmyJMiN1Q"} true; R31, Gamma_R31 := bvadd64(R31, 18446744073709551584bv64), Gamma_R31; - Cse0__5_0_1, Gamma_Cse0__5_0_1 := bvadd64(R31, 16bv64), Gamma_R31; - stack, Gamma_stack := memory_store64_le(stack, Cse0__5_0_1, R29), gamma_store64(Gamma_stack, Cse0__5_0_1, Gamma_R29); - assume {:captureState "2264_1"} true; - stack, Gamma_stack := memory_store64_le(stack, bvadd64(Cse0__5_0_1, 8bv64), R30), gamma_store64(Gamma_stack, bvadd64(Cse0__5_0_1, 8bv64), Gamma_R30); - assume {:captureState "2264_2"} true; + Cse0__5$0$1, Gamma_Cse0__5$0$1 := bvadd64(R31, 16bv64), Gamma_R31; + stack, Gamma_stack := memory_store64_le(stack, Cse0__5$0$1, R29), gamma_store64(Gamma_stack, Cse0__5$0$1, Gamma_R29); + assume {:captureState "2264$1"} true; + stack, Gamma_stack := memory_store64_le(stack, bvadd64(Cse0__5$0$1, 8bv64), R30), gamma_store64(Gamma_stack, bvadd64(Cse0__5$0$1, 8bv64), Gamma_R30); + assume {:captureState "2264$2"} true; R29, Gamma_R29 := bvadd64(R31, 16bv64), Gamma_R31; stack, Gamma_stack := memory_store64_le(stack, bvadd64(R31, 8bv64), R0), gamma_store64(Gamma_stack, bvadd64(R31, 8bv64), Gamma_R0); - assume {:captureState "2272_0"} true; - load34, Gamma_load34 := memory_load64_le(stack, bvadd64(R31, 8bv64)), gamma_load64(Gamma_stack, bvadd64(R31, 8bv64)); - R9, Gamma_R9 := load34, Gamma_load34; + assume {:captureState "2272$0"} true; + $load34, Gamma_$load34 := memory_load64_le(stack, bvadd64(R31, 8bv64)), gamma_load64(Gamma_stack, bvadd64(R31, 8bv64)); + R9, Gamma_R9 := $load34, Gamma_$load34; call rely(); - load35, Gamma_load35 := memory_load8_le(mem, R9), (gamma_load8(Gamma_mem, R9) || L(mem, R9)); - R8, Gamma_R8 := zero_extend32_32(zero_extend24_8(load35)), Gamma_load35; + $load35, Gamma_$load35 := memory_load8_le(mem, R9), (gamma_load8(Gamma_mem, R9) || L(mem, R9)); + R8, Gamma_R8 := zero_extend32_32(zero_extend24_8($load35)), Gamma_$load35; R8, Gamma_R8 := zero_extend32_32(bvadd32(R8[32:0], 1bv32)), Gamma_R8; call rely(); assert (L(mem, R9) ==> Gamma_R8); mem, Gamma_mem := memory_store8_le(mem, R9, R8[8:0]), gamma_store8(Gamma_mem, R9, Gamma_R8); - assume {:captureState "2288_0"} true; - load36, Gamma_load36 := memory_load64_le(stack, bvadd64(R31, 8bv64)), gamma_load64(Gamma_stack, bvadd64(R31, 8bv64)); - R8, Gamma_R8 := load36, Gamma_load36; + assume {:captureState "2288$0"} true; + $load36, Gamma_$load36 := memory_load64_le(stack, bvadd64(R31, 8bv64)), gamma_load64(Gamma_stack, bvadd64(R31, 8bv64)); + R8, Gamma_R8 := $load36, Gamma_$load36; call rely(); - load37, Gamma_load37 := memory_load8_le(mem, R8), (gamma_load8(Gamma_mem, R8) || L(mem, R8)); - R1, Gamma_R1 := zero_extend32_32(zero_extend24_8(load37)), Gamma_load37; + $load37, Gamma_$load37 := memory_load8_le(mem, R8), (gamma_load8(Gamma_mem, R8) || L(mem, R8)); + R1, Gamma_R1 := zero_extend32_32(zero_extend24_8($load37)), Gamma_$load37; R0, Gamma_R0 := 0bv64, true; R0, Gamma_R0 := bvadd64(R0, 2391bv64), Gamma_R0; R30, Gamma_R30 := 2312bv64, true; - call FUN_6c0_1728(); - goto printCharValue_2260__1__tdcD~_GVQvixIy4UvVBE1Q; - printCharValue_2260__1__tdcD~_GVQvixIy4UvVBE1Q: - assume {:captureState "printCharValue_2260__1__tdcD~_GVQvixIy4UvVBE1Q"} true; - Cse0__5_1_0, Gamma_Cse0__5_1_0 := bvadd64(R31, 16bv64), Gamma_R31; - load38, Gamma_load38 := memory_load64_le(stack, Cse0__5_1_0), gamma_load64(Gamma_stack, Cse0__5_1_0); - R29, Gamma_R29 := load38, Gamma_load38; - load39, Gamma_load39 := memory_load64_le(stack, bvadd64(Cse0__5_1_0, 8bv64)), gamma_load64(Gamma_stack, bvadd64(Cse0__5_1_0, 8bv64)); - R30, Gamma_R30 := load39, Gamma_load39; + call FUN_6c0(); + goto $printCharValue$__1__$tdcD~_GVQvixIy4UvVBE1Q; + $printCharValue$__1__$tdcD~_GVQvixIy4UvVBE1Q: + assume {:captureState "$printCharValue$__1__$tdcD~_GVQvixIy4UvVBE1Q"} true; + Cse0__5$1$0, Gamma_Cse0__5$1$0 := bvadd64(R31, 16bv64), Gamma_R31; + $load38, Gamma_$load38 := memory_load64_le(stack, Cse0__5$1$0), gamma_load64(Gamma_stack, Cse0__5$1$0); + R29, Gamma_R29 := $load38, Gamma_$load38; + $load39, Gamma_$load39 := memory_load64_le(stack, bvadd64(Cse0__5$1$0, 8bv64)), gamma_load64(Gamma_stack, bvadd64(Cse0__5$1$0, 8bv64)); + R30, Gamma_R30 := $load39, Gamma_$load39; R31, Gamma_R31 := bvadd64(R31, 32bv64), Gamma_R31; - goto printCharValue_2260_basil_return; - printCharValue_2260_basil_return: - assume {:captureState "printCharValue_2260_basil_return"} true; + goto printCharValue_basil_return; + printCharValue_basil_return: + assume {:captureState "printCharValue_basil_return"} true; return; } diff --git a/src/test/correct/malloc_with_local3/gcc/malloc_with_local3.adt b/src/test/correct/malloc_with_local3/gcc/malloc_with_local3.adt deleted file mode 100644 index 45e9e9788..000000000 --- a/src/test/correct/malloc_with_local3/gcc/malloc_with_local3.adt +++ /dev/null @@ -1,760 +0,0 @@ -Project(Attrs([Attr("filename","\"gcc/malloc_with_local3.out\""), -Attr("image-specification","(declare abi (name str))\n(declare arch (name str))\n(declare base-address (addr int))\n(declare bias (off int))\n(declare bits (size int))\n(declare code-region (addr int) (size int) (off int))\n(declare code-start (addr int))\n(declare entry-point (addr int))\n(declare external-reference (addr int) (name str))\n(declare format (name str))\n(declare is-executable (flag bool))\n(declare is-little-endian (flag bool))\n(declare llvm:base-address (addr int))\n(declare llvm:code-entry (name str) (off int) (size int))\n(declare llvm:coff-import-library (name str))\n(declare llvm:coff-virtual-section-header (name str) (addr int) (size int))\n(declare llvm:elf-program-header (name str) (off int) (size int))\n(declare llvm:elf-program-header-flags (name str) (ld bool) (r bool) \n (w bool) (x bool))\n(declare llvm:elf-virtual-program-header (name str) (addr int) (size int))\n(declare llvm:entry-point (addr int))\n(declare llvm:macho-symbol (name str) (value int))\n(declare llvm:name-reference (at int) (name str))\n(declare llvm:relocation (at int) (addr int))\n(declare llvm:section-entry (name str) (addr int) (size int) (off int))\n(declare llvm:section-flags (name str) (r bool) (w bool) (x bool))\n(declare llvm:segment-command (name str) (off int) (size int))\n(declare llvm:segment-command-flags (name str) (r bool) (w bool) (x bool))\n(declare llvm:symbol-entry (name str) (addr int) (size int) (off int)\n (value int))\n(declare llvm:virtual-segment-command (name str) (addr int) (size int))\n(declare mapped (addr int) (size int) (off int))\n(declare named-region (addr int) (size int) (name str))\n(declare named-symbol (addr int) (name str))\n(declare require (name str))\n(declare section (addr int) (size int))\n(declare segment (addr int) (size int) (r bool) (w bool) (x bool))\n(declare subarch (name str))\n(declare symbol-chunk (addr int) (size int) (root int))\n(declare symbol-value (addr int) (value int))\n(declare system (name str))\n(declare vendor (name str))\n\n(abi unknown)\n(arch aarch64)\n(base-address 0)\n(bias 0)\n(bits 64)\n(code-region 2308 20 2308)\n(code-region 1792 516 1792)\n(code-region 1600 144 1600)\n(code-region 1576 24 1576)\n(code-start 1844)\n(code-start 2236)\n(code-start 1792)\n(code-start 2068)\n(entry-point 1792)\n(external-reference 69592 _ITM_deregisterTMCloneTable)\n(external-reference 69600 __cxa_finalize)\n(external-reference 69608 __gmon_start__)\n(external-reference 69624 _ITM_registerTMCloneTable)\n(external-reference 69528 __libc_start_main)\n(external-reference 69536 __cxa_finalize)\n(external-reference 69544 malloc)\n(external-reference 69552 __gmon_start__)\n(external-reference 69560 abort)\n(external-reference 69568 free)\n(external-reference 69576 printf)\n(format elf)\n(is-executable true)\n(is-little-endian true)\n(llvm:base-address 0)\n(llvm:code-entry printf 0 0)\n(llvm:code-entry free 0 0)\n(llvm:code-entry abort 0 0)\n(llvm:code-entry malloc 0 0)\n(llvm:code-entry __cxa_finalize 0 0)\n(llvm:code-entry __libc_start_main 0 0)\n(llvm:code-entry _init 1576 0)\n(llvm:code-entry printf@GLIBC_2.17 0 0)\n(llvm:code-entry main 2068 168)\n(llvm:code-entry _start 1792 52)\n(llvm:code-entry free@GLIBC_2.17 0 0)\n(llvm:code-entry abort@GLIBC_2.17 0 0)\n(llvm:code-entry printCharValue 2236 72)\n(llvm:code-entry malloc@GLIBC_2.17 0 0)\n(llvm:code-entry _fini 2308 0)\n(llvm:code-entry __cxa_finalize@GLIBC_2.17 0 0)\n(llvm:code-entry __libc_start_main@GLIBC_2.34 0 0)\n(llvm:code-entry frame_dummy 2064 0)\n(llvm:code-entry __do_global_dtors_aux 1984 0)\n(llvm:code-entry register_tm_clones 1920 0)\n(llvm:code-entry deregister_tm_clones 1872 0)\n(llvm:code-entry call_weak_fn 1844 20)\n(llvm:code-entry .fini 2308 20)\n(llvm:code-entry .text 1792 516)\n(llvm:code-entry .plt 1600 144)\n(llvm:code-entry .init 1576 24)\n(llvm:elf-program-header 08 3456 640)\n(llvm:elf-program-header 07 0 0)\n(llvm:elf-program-header 06 2408 68)\n(llvm:elf-program-header 05 596 68)\n(llvm:elf-program-header 04 3472 496)\n(llvm:elf-program-header 03 3456 656)\n(llvm:elf-program-header 02 0 2684)\n(llvm:elf-program-header 01 568 27)\n(llvm:elf-program-header 00 64 504)\n(llvm:elf-program-header-flags 08 false true false false)\n(llvm:elf-program-header-flags 07 false true true false)\n(llvm:elf-program-header-flags 06 false true false false)\n(llvm:elf-program-header-flags 05 false true false false)\n(llvm:elf-program-header-flags 04 false true true false)\n(llvm:elf-program-header-flags 03 true true true false)\n(llvm:elf-program-header-flags 02 true true false true)\n(llvm:elf-program-header-flags 01 false true false false)\n(llvm:elf-program-header-flags 00 false true false false)\n(llvm:elf-virtual-program-header 08 68992 640)\n(llvm:elf-virtual-program-header 07 0 0)\n(llvm:elf-virtual-program-header 06 2408 68)\n(llvm:elf-virtual-program-header 05 596 68)\n(llvm:elf-virtual-program-header 04 69008 496)\n(llvm:elf-virtual-program-header 03 68992 664)\n(llvm:elf-virtual-program-header 02 0 2684)\n(llvm:elf-virtual-program-header 01 568 27)\n(llvm:elf-virtual-program-header 00 64 504)\n(llvm:entry-point 1792)\n(llvm:name-reference 69576 printf)\n(llvm:name-reference 69568 free)\n(llvm:name-reference 69560 abort)\n(llvm:name-reference 69552 __gmon_start__)\n(llvm:name-reference 69544 malloc)\n(llvm:name-reference 69536 __cxa_finalize)\n(llvm:name-reference 69528 __libc_start_main)\n(llvm:name-reference 69624 _ITM_registerTMCloneTable)\n(llvm:name-reference 69608 __gmon_start__)\n(llvm:name-reference 69600 __cxa_finalize)\n(llvm:name-reference 69592 _ITM_deregisterTMCloneTable)\n(llvm:section-entry .shstrtab 0 250 6965)\n(llvm:section-entry .strtab 0 621 6344)\n(llvm:section-entry .symtab 0 2184 4160)\n(llvm:section-entry .comment 0 43 4112)\n(llvm:section-entry .bss 69648 8 4112)\n(llvm:section-entry .data 69632 16 4096)\n(llvm:section-entry .got 69504 128 3968)\n(llvm:section-entry .dynamic 69008 496 3472)\n(llvm:section-entry .fini_array 69000 8 3464)\n(llvm:section-entry .init_array 68992 8 3456)\n(llvm:section-entry .eh_frame 2480 204 2480)\n(llvm:section-entry .eh_frame_hdr 2408 68 2408)\n(llvm:section-entry .rodata 2328 79 2328)\n(llvm:section-entry .fini 2308 20 2308)\n(llvm:section-entry .text 1792 516 1792)\n(llvm:section-entry .plt 1600 144 1600)\n(llvm:section-entry .init 1576 24 1576)\n(llvm:section-entry .rela.plt 1408 168 1408)\n(llvm:section-entry .rela.dyn 1216 192 1216)\n(llvm:section-entry .gnu.version_r 1168 48 1168)\n(llvm:section-entry .gnu.version 1144 24 1144)\n(llvm:section-entry .dynstr 984 160 984)\n(llvm:section-entry .dynsym 696 288 696)\n(llvm:section-entry .gnu.hash 664 28 664)\n(llvm:section-entry .note.ABI-tag 632 32 632)\n(llvm:section-entry .note.gnu.build-id 596 36 596)\n(llvm:section-entry .interp 568 27 568)\n(llvm:section-flags .shstrtab true false false)\n(llvm:section-flags .strtab true false false)\n(llvm:section-flags .symtab true false false)\n(llvm:section-flags .comment true false false)\n(llvm:section-flags .bss true true false)\n(llvm:section-flags .data true true false)\n(llvm:section-flags .got true true false)\n(llvm:section-flags .dynamic true true false)\n(llvm:section-flags .fini_array true true false)\n(llvm:section-flags .init_array true true false)\n(llvm:section-flags .eh_frame true false false)\n(llvm:section-flags .eh_frame_hdr true false false)\n(llvm:section-flags .rodata true false false)\n(llvm:section-flags .fini true false true)\n(llvm:section-flags .text true false true)\n(llvm:section-flags .plt true false true)\n(llvm:section-flags .init true false true)\n(llvm:section-flags .rela.plt true false false)\n(llvm:section-flags .rela.dyn true false false)\n(llvm:section-flags .gnu.version_r true false false)\n(llvm:section-flags .gnu.version true false false)\n(llvm:section-flags .dynstr true false false)\n(llvm:section-flags .dynsym true false false)\n(llvm:section-flags .gnu.hash true false false)\n(llvm:section-flags .note.ABI-tag true false false)\n(llvm:section-flags .note.gnu.build-id true false false)\n(llvm:section-flags .interp true false false)\n(llvm:symbol-entry printf 0 0 0 0)\n(llvm:symbol-entry free 0 0 0 0)\n(llvm:symbol-entry abort 0 0 0 0)\n(llvm:symbol-entry malloc 0 0 0 0)\n(llvm:symbol-entry __cxa_finalize 0 0 0 0)\n(llvm:symbol-entry __libc_start_main 0 0 0 0)\n(llvm:symbol-entry _init 1576 0 1576 1576)\n(llvm:symbol-entry printf@GLIBC_2.17 0 0 0 0)\n(llvm:symbol-entry main 2068 168 2068 2068)\n(llvm:symbol-entry _start 1792 52 1792 1792)\n(llvm:symbol-entry free@GLIBC_2.17 0 0 0 0)\n(llvm:symbol-entry abort@GLIBC_2.17 0 0 0 0)\n(llvm:symbol-entry printCharValue 2236 72 2236 2236)\n(llvm:symbol-entry malloc@GLIBC_2.17 0 0 0 0)\n(llvm:symbol-entry _fini 2308 0 2308 2308)\n(llvm:symbol-entry __cxa_finalize@GLIBC_2.17 0 0 0 0)\n(llvm:symbol-entry __libc_start_main@GLIBC_2.34 0 0 0 0)\n(llvm:symbol-entry frame_dummy 2064 0 2064 2064)\n(llvm:symbol-entry __do_global_dtors_aux 1984 0 1984 1984)\n(llvm:symbol-entry register_tm_clones 1920 0 1920 1920)\n(llvm:symbol-entry deregister_tm_clones 1872 0 1872 1872)\n(llvm:symbol-entry call_weak_fn 1844 20 1844 1844)\n(mapped 0 2684 0)\n(mapped 68992 656 3456)\n(named-region 0 2684 02)\n(named-region 68992 664 03)\n(named-region 568 27 .interp)\n(named-region 596 36 .note.gnu.build-id)\n(named-region 632 32 .note.ABI-tag)\n(named-region 664 28 .gnu.hash)\n(named-region 696 288 .dynsym)\n(named-region 984 160 .dynstr)\n(named-region 1144 24 .gnu.version)\n(named-region 1168 48 .gnu.version_r)\n(named-region 1216 192 .rela.dyn)\n(named-region 1408 168 .rela.plt)\n(named-region 1576 24 .init)\n(named-region 1600 144 .plt)\n(named-region 1792 516 .text)\n(named-region 2308 20 .fini)\n(named-region 2328 79 .rodata)\n(named-region 2408 68 .eh_frame_hdr)\n(named-region 2480 204 .eh_frame)\n(named-region 68992 8 .init_array)\n(named-region 69000 8 .fini_array)\n(named-region 69008 496 .dynamic)\n(named-region 69504 128 .got)\n(named-region 69632 16 .data)\n(named-region 69648 8 .bss)\n(named-region 0 43 .comment)\n(named-region 0 2184 .symtab)\n(named-region 0 621 .strtab)\n(named-region 0 250 .shstrtab)\n(named-symbol 1844 call_weak_fn)\n(named-symbol 1872 deregister_tm_clones)\n(named-symbol 1920 register_tm_clones)\n(named-symbol 1984 __do_global_dtors_aux)\n(named-symbol 2064 frame_dummy)\n(named-symbol 0 __libc_start_main@GLIBC_2.34)\n(named-symbol 0 __cxa_finalize@GLIBC_2.17)\n(named-symbol 2308 _fini)\n(named-symbol 0 malloc@GLIBC_2.17)\n(named-symbol 2236 printCharValue)\n(named-symbol 0 abort@GLIBC_2.17)\n(named-symbol 0 free@GLIBC_2.17)\n(named-symbol 1792 _start)\n(named-symbol 2068 main)\n(named-symbol 0 printf@GLIBC_2.17)\n(named-symbol 1576 _init)\n(named-symbol 0 __libc_start_main)\n(named-symbol 0 __cxa_finalize)\n(named-symbol 0 malloc)\n(named-symbol 0 abort)\n(named-symbol 0 free)\n(named-symbol 0 printf)\n(require libc.so.6)\n(section 568 27)\n(section 596 36)\n(section 632 32)\n(section 664 28)\n(section 696 288)\n(section 984 160)\n(section 1144 24)\n(section 1168 48)\n(section 1216 192)\n(section 1408 168)\n(section 1576 24)\n(section 1600 144)\n(section 1792 516)\n(section 2308 20)\n(section 2328 79)\n(section 2408 68)\n(section 2480 204)\n(section 68992 8)\n(section 69000 8)\n(section 69008 496)\n(section 69504 128)\n(section 69632 16)\n(section 69648 8)\n(section 0 43)\n(section 0 2184)\n(section 0 621)\n(section 0 250)\n(segment 0 2684 true false true)\n(segment 68992 664 true true false)\n(subarch v8)\n(symbol-chunk 1844 20 1844)\n(symbol-chunk 2236 72 2236)\n(symbol-chunk 1792 52 1792)\n(symbol-chunk 2068 168 2068)\n(symbol-value 1844 1844)\n(symbol-value 1872 1872)\n(symbol-value 1920 1920)\n(symbol-value 1984 1984)\n(symbol-value 2064 2064)\n(symbol-value 2308 2308)\n(symbol-value 2236 2236)\n(symbol-value 1792 1792)\n(symbol-value 2068 2068)\n(symbol-value 1576 1576)\n(symbol-value 0 0)\n(system \"\")\n(vendor \"\")\n"), -Attr("abi-name","\"aarch64-linux-gnu-elf\"")]), -Sections([Section(".shstrtab", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x30\x1c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x38\x00\x09\x00\x40\x00\x1c\x00\x1b\x00\x06\x00\x00\x00\x04\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x04\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x0a\x00\x00\x00\x00\x00\x00\x7c\x0a\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x01\x00\x00\x00\x06\x00\x00\x00\x80\x0d\x00\x00\x00\x00\x00\x00\x80\x0d"), -Section(".strtab", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x30\x1c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x38\x00\x09\x00\x40\x00\x1c\x00\x1b\x00\x06\x00\x00\x00\x04\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x04\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x0a\x00\x00\x00\x00\x00\x00\x7c\x0a\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x01\x00\x00\x00\x06\x00\x00\x00\x80\x0d\x00\x00\x00\x00\x00\x00\x80\x0d\x01\x00\x00\x00\x00\x00\x80\x0d\x01\x00\x00\x00\x00\x00\x90\x02\x00\x00\x00\x00\x00\x00\x98\x02\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x02\x00\x00\x00\x06\x00\x00\x00\x90\x0d\x00\x00\x00\x00\x00\x00\x90\x0d\x01\x00\x00\x00\x00\x00\x90\x0d\x01\x00\x00\x00\x00\x00\xf0\x01\x00\x00\x00\x00\x00\x00\xf0\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x04\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x50\xe5\x74\x64\x04\x00\x00\x00\x68\x09\x00\x00\x00\x00\x00\x00\x68\x09\x00\x00\x00\x00\x00\x00\x68\x09\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x51\xe5\x74\x64\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x52\xe5\x74\x64\x04\x00\x00\x00\x80\x0d\x00\x00\x00\x00\x00\x00\x80\x0d\x01\x00\x00\x00\x00\x00\x80\x0d\x01\x00\x00\x00\x00\x00\x80\x02\x00\x00\x00\x00\x00\x00\x80\x02\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x2f\x6c\x69\x62\x2f\x6c\x64\x2d\x6c\x69\x6e\x75\x78\x2d\x61\x61\x72\x63\x68\x36\x34\x2e\x73\x6f\x2e\x31\x00\x00\x04\x00\x00\x00\x14\x00\x00\x00\x03\x00\x00\x00\x47\x4e\x55\x00\xd6\x25\x44\x5c\x3e\x7e\xe7\x85\xb6"), -Section(".symtab", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x30\x1c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x38\x00\x09\x00\x40\x00\x1c\x00\x1b\x00\x06\x00\x00\x00\x04\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x04\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x0a\x00\x00\x00\x00\x00\x00\x7c\x0a\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x01\x00\x00\x00\x06\x00\x00\x00\x80\x0d\x00\x00\x00\x00\x00\x00\x80\x0d\x01\x00\x00\x00\x00\x00\x80\x0d\x01\x00\x00\x00\x00\x00\x90\x02\x00\x00\x00\x00\x00\x00\x98\x02\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x02\x00\x00\x00\x06\x00\x00\x00\x90\x0d\x00\x00\x00\x00\x00\x00\x90\x0d\x01\x00\x00\x00\x00\x00\x90\x0d\x01\x00\x00\x00\x00\x00\xf0\x01\x00\x00\x00\x00\x00\x00\xf0\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x04\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x50\xe5\x74\x64\x04\x00\x00\x00\x68\x09\x00\x00\x00\x00\x00\x00\x68\x09\x00\x00\x00\x00\x00\x00\x68\x09\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x51\xe5\x74\x64\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x52\xe5\x74\x64\x04\x00\x00\x00\x80\x0d\x00\x00\x00\x00\x00\x00\x80\x0d\x01\x00\x00\x00\x00\x00\x80\x0d\x01\x00\x00\x00\x00\x00\x80\x02\x00\x00\x00\x00\x00\x00\x80\x02\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x2f\x6c\x69\x62\x2f\x6c\x64\x2d\x6c\x69\x6e\x75\x78\x2d\x61\x61\x72\x63\x68\x36\x34\x2e\x73\x6f\x2e\x31\x00\x00\x04\x00\x00\x00\x14\x00\x00\x00\x03\x00\x00\x00\x47\x4e\x55\x00\xd6\x25\x44\x5c\x3e\x7e\xe7\x85\xb6\xea\xad\x7b\xa6\x1c\x04\xf0\xf2\x07\xbe\x3b\x04\x00\x00\x00\x10\x00\x00\x00\x01\x00\x00\x00\x47\x4e\x55\x00\x00\x00\x00\x00\x03\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x01\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x0b\x00\x28\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x16\x00\x00\x10\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x17\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5b\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x22\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x77\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2e\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x29\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x86\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x34\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5f\x5f\x63\x78\x61\x5f\x66\x69\x6e\x61\x6c\x69\x7a\x65\x00\x6d\x61\x6c\x6c\x6f\x63\x00\x5f\x5f\x6c\x69\x62\x63\x5f\x73\x74\x61\x72\x74\x5f\x6d\x61\x69\x6e\x00\x66\x72\x65\x65\x00\x61\x62\x6f\x72\x74\x00\x70\x72\x69\x6e\x74\x66\x00\x6c\x69\x62\x63\x2e\x73\x6f\x2e\x36\x00\x47\x4c\x49\x42\x43\x5f\x32\x2e\x31\x37\x00\x47\x4c\x49\x42\x43\x5f\x32\x2e\x33\x34\x00\x5f\x49\x54\x4d\x5f\x64\x65\x72\x65\x67\x69\x73\x74\x65\x72\x54\x4d\x43\x6c\x6f\x6e\x65\x54\x61\x62\x6c\x65\x00\x5f\x5f\x67\x6d\x6f\x6e\x5f\x73\x74\x61\x72\x74\x5f\x5f\x00\x5f\x49\x54\x4d\x5f\x72\x65\x67\x69\x73\x74\x65\x72\x54\x4d\x43\x6c\x6f\x6e\x65\x54\x61\x62\x6c\x65\x00\x00\x00\x00\x00\x00\x00\x02\x00\x01\x00\x03\x00\x03\x00\x01\x00\x03\x00\x03\x00\x01\x00\x03\x00\x01\x00\x02\x00\x3b\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x97\x91\x96\x06\x00\x00\x03\x00\x45\x00\x00\x00\x10\x00\x00\x00\xb4\x91\x96\x06\x00\x00\x02\x00\x50\x00\x00\x00\x00\x00\x00\x00\x80\x0d\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x10\x08\x00\x00\x00\x00\x00\x00\x88\x0d\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\xc0\x07\x00\x00\x00\x00\x00\x00\xf0\x0f\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x14\x08\x00\x00\x00\x00\x00\x00\x08\x10\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x08\x10\x01\x00\x00\x00\x00\x00\xd8\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe0\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe8\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xf8\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x0a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x98\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xa0\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xa8\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xb0\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xb8\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xc0\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x09\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xc8\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x0b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1f\x20\x03\xd5\xfd\x7b\xbf\xa9\xfd\x03\x00\x91\x40\x00\x00\x94\xfd\x7b\xc1\xa8\xc0\x03\x5f\xd6\xf0\x7b\xbf\xa9\x90\x00\x00\x90\x11\xca\x47\xf9\x10\x42\x3e\x91\x20\x02\x1f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x90\x00\x00\x90\x11\xce\x47\xf9\x10\x62\x3e\x91\x20\x02\x1f\xd6\x90\x00\x00\x90\x11\xd2\x47\xf9\x10\x82\x3e\x91\x20\x02\x1f\xd6\x90\x00\x00\x90\x11\xd6\x47\xf9\x10\xa2\x3e\x91\x20\x02\x1f\xd6\x90\x00\x00\x90\x11\xda\x47\xf9\x10\xc2\x3e\x91\x20\x02\x1f\xd6\x90\x00\x00\x90\x11\xde\x47\xf9\x10\xe2\x3e\x91\x20\x02\x1f\xd6\x90\x00\x00\x90\x11\xe2\x47\xf9\x10\x02\x3f\x91\x20\x02\x1f\xd6\x90\x00\x00\x90\x11\xe6\x47\xf9\x10\x22\x3f\x91\x20\x02\x1f\xd6\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1f\x20\x03\xd5\x1d\x00\x80\xd2\x1e\x00\x80\xd2\xe5\x03\x00\xaa\xe1\x03\x40\xf9\xe2\x23\x00\x91\xe6\x03\x00\x91\x80\x00\x00\x90\x00\xf8\x47\xf9\x03\x00\x80\xd2\x04\x00\x80\xd2\xcd\xff\xff\x97\xdc\xff\xff\x97\x80\x00\x00\x90\x00\xf4\x47\xf9\x40\x00\x00\xb4\xd4\xff\xff\x17\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x80\x00\x00\xb0\x00\x40\x00\x91\x81\x00\x00\xb0\x21\x40\x00\x91\x3f\x00\x00\xeb\xc0\x00\x00\x54\x81\x00\x00\x90\x21\xec\x47\xf9\x61\x00\x00\xb4\xf0\x03\x01\xaa\x00\x02\x1f\xd6\xc0\x03\x5f\xd6\x80\x00\x00\xb0\x00\x40\x00\x91\x81\x00\x00\xb0\x21\x40\x00\x91\x21\x00\x00\xcb\x22\xfc\x7f\xd3\x41\x0c\x81\x8b\x21\xfc\x41\x93\xc1\x00\x00\xb4\x82\x00\x00\x90\x42\xfc\x47\xf9\x62\x00\x00\xb4\xf0\x03\x02\xaa\x00\x02\x1f\xd6\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\xfd\x7b\xbe\xa9\xfd\x03\x00\x91\xf3\x0b\x00\xf9\x93\x00\x00\xb0\x60\x42\x40\x39\x40\x01\x00\x35\x80\x00\x00\x90\x00\xf0\x47\xf9\x80\x00\x00\xb4\x80\x00\x00\xb0\x00\x04\x40\xf9\xa1\xff\xff\x97\xd8\xff\xff\x97\x20\x00\x80\x52\x60\x42\x00\x39\xf3\x0b\x40\xf9\xfd\x7b\xc2\xa8\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\xdc\xff\xff\x17\xfd\x7b\xbc\xa9\xfd\x03\x00\x91\x20\x00\x80\xd2\x98\xff\xff\x97\xe0\x17\x00\xf9\x60\x01\x80\x52\xe0\x1f\x00\xb9\x80\x00\x80\xd2\x93\xff\xff\x97\xe0\x1b\x00\xf9\x40\x01\x80\x52\xe0\x23\x00\xb9\x80\x00\x80\xd2\x8e\xff\xff\x97\xe0\x1f\x00\xf9\x20\x01\x80\x52\xe0\x27\x00\xb9\xe0\x17\x40\xf9\x21\x08\x80\x52\x01\x00\x00\x39\xe0\x1b\x40\xf9\x41\x05\x80\x52\x01\x00\x00\xb9\xe0\x17\x40\xf9\x12\x00\x00\x94\xe0\x1b\x40\xf9\x00\x00\x40\xb9\xe1\x03\x00\x2a\x00\x00\x00\x90"), -Section(".comment", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x30\x1c\x00"), -Section(".interp", 0x238, "\x2f\x6c\x69\x62\x2f\x6c\x64\x2d\x6c\x69\x6e\x75\x78\x2d\x61\x61\x72\x63\x68\x36\x34\x2e\x73\x6f\x2e\x31\x00"), -Section(".note.gnu.build-id", 0x254, "\x04\x00\x00\x00\x14\x00\x00\x00\x03\x00\x00\x00\x47\x4e\x55\x00\xd6\x25\x44\x5c\x3e\x7e\xe7\x85\xb6\xea\xad\x7b\xa6\x1c\x04\xf0\xf2\x07\xbe\x3b"), -Section(".note.ABI-tag", 0x278, "\x04\x00\x00\x00\x10\x00\x00\x00\x01\x00\x00\x00\x47\x4e\x55\x00\x00\x00\x00\x00\x03\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00"), -Section(".gnu.hash", 0x298, "\x01\x00\x00\x00\x01\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".dynsym", 0x2B8, "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x0b\x00\x28\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x16\x00\x00\x10\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x17\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5b\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x22\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x77\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2e\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x29\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x86\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x34\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".dynstr", 0x3D8, "\x00\x5f\x5f\x63\x78\x61\x5f\x66\x69\x6e\x61\x6c\x69\x7a\x65\x00\x6d\x61\x6c\x6c\x6f\x63\x00\x5f\x5f\x6c\x69\x62\x63\x5f\x73\x74\x61\x72\x74\x5f\x6d\x61\x69\x6e\x00\x66\x72\x65\x65\x00\x61\x62\x6f\x72\x74\x00\x70\x72\x69\x6e\x74\x66\x00\x6c\x69\x62\x63\x2e\x73\x6f\x2e\x36\x00\x47\x4c\x49\x42\x43\x5f\x32\x2e\x31\x37\x00\x47\x4c\x49\x42\x43\x5f\x32\x2e\x33\x34\x00\x5f\x49\x54\x4d\x5f\x64\x65\x72\x65\x67\x69\x73\x74\x65\x72\x54\x4d\x43\x6c\x6f\x6e\x65\x54\x61\x62\x6c\x65\x00\x5f\x5f\x67\x6d\x6f\x6e\x5f\x73\x74\x61\x72\x74\x5f\x5f\x00\x5f\x49\x54\x4d\x5f\x72\x65\x67\x69\x73\x74\x65\x72\x54\x4d\x43\x6c\x6f\x6e\x65\x54\x61\x62\x6c\x65\x00"), -Section(".gnu.version", 0x478, "\x00\x00\x00\x00\x00\x00\x02\x00\x01\x00\x03\x00\x03\x00\x01\x00\x03\x00\x03\x00\x01\x00\x03\x00"), -Section(".gnu.version_r", 0x490, "\x01\x00\x02\x00\x3b\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x97\x91\x96\x06\x00\x00\x03\x00\x45\x00\x00\x00\x10\x00\x00\x00\xb4\x91\x96\x06\x00\x00\x02\x00\x50\x00\x00\x00\x00\x00\x00\x00"), -Section(".rela.dyn", 0x4C0, "\x80\x0d\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x10\x08\x00\x00\x00\x00\x00\x00\x88\x0d\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\xc0\x07\x00\x00\x00\x00\x00\x00\xf0\x0f\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x14\x08\x00\x00\x00\x00\x00\x00\x08\x10\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x08\x10\x01\x00\x00\x00\x00\x00\xd8\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe0\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe8\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xf8\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x0a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".rela.plt", 0x580, "\x98\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xa0\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xa8\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xb0\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xb8\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xc0\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x09\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xc8\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x0b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".init", 0x628, "\x1f\x20\x03\xd5\xfd\x7b\xbf\xa9\xfd\x03\x00\x91\x40\x00\x00\x94\xfd\x7b\xc1\xa8\xc0\x03\x5f\xd6"), -Section(".plt", 0x640, "\xf0\x7b\xbf\xa9\x90\x00\x00\x90\x11\xca\x47\xf9\x10\x42\x3e\x91\x20\x02\x1f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x90\x00\x00\x90\x11\xce\x47\xf9\x10\x62\x3e\x91\x20\x02\x1f\xd6\x90\x00\x00\x90\x11\xd2\x47\xf9\x10\x82\x3e\x91\x20\x02\x1f\xd6\x90\x00\x00\x90\x11\xd6\x47\xf9\x10\xa2\x3e\x91\x20\x02\x1f\xd6\x90\x00\x00\x90\x11\xda\x47\xf9\x10\xc2\x3e\x91\x20\x02\x1f\xd6\x90\x00\x00\x90\x11\xde\x47\xf9\x10\xe2\x3e\x91\x20\x02\x1f\xd6\x90\x00\x00\x90\x11\xe2\x47\xf9\x10\x02\x3f\x91\x20\x02\x1f\xd6\x90\x00\x00\x90\x11\xe6\x47\xf9\x10\x22\x3f\x91\x20\x02\x1f\xd6"), -Section(".text", 0x700, "\x1f\x20\x03\xd5\x1d\x00\x80\xd2\x1e\x00\x80\xd2\xe5\x03\x00\xaa\xe1\x03\x40\xf9\xe2\x23\x00\x91\xe6\x03\x00\x91\x80\x00\x00\x90\x00\xf8\x47\xf9\x03\x00\x80\xd2\x04\x00\x80\xd2\xcd\xff\xff\x97\xdc\xff\xff\x97\x80\x00\x00\x90\x00\xf4\x47\xf9\x40\x00\x00\xb4\xd4\xff\xff\x17\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x80\x00\x00\xb0\x00\x40\x00\x91\x81\x00\x00\xb0\x21\x40\x00\x91\x3f\x00\x00\xeb\xc0\x00\x00\x54\x81\x00\x00\x90\x21\xec\x47\xf9\x61\x00\x00\xb4\xf0\x03\x01\xaa\x00\x02\x1f\xd6\xc0\x03\x5f\xd6\x80\x00\x00\xb0\x00\x40\x00\x91\x81\x00\x00\xb0\x21\x40\x00\x91\x21\x00\x00\xcb\x22\xfc\x7f\xd3\x41\x0c\x81\x8b\x21\xfc\x41\x93\xc1\x00\x00\xb4\x82\x00\x00\x90\x42\xfc\x47\xf9\x62\x00\x00\xb4\xf0\x03\x02\xaa\x00\x02\x1f\xd6\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\xfd\x7b\xbe\xa9\xfd\x03\x00\x91\xf3\x0b\x00\xf9\x93\x00\x00\xb0\x60\x42\x40\x39\x40\x01\x00\x35\x80\x00\x00\x90\x00\xf0\x47\xf9\x80\x00\x00\xb4\x80\x00\x00\xb0\x00\x04\x40\xf9\xa1\xff\xff\x97\xd8\xff\xff\x97\x20\x00\x80\x52\x60\x42\x00\x39\xf3\x0b\x40\xf9\xfd\x7b\xc2\xa8\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\xdc\xff\xff\x17\xfd\x7b\xbc\xa9\xfd\x03\x00\x91\x20\x00\x80\xd2\x98\xff\xff\x97\xe0\x17\x00\xf9\x60\x01\x80\x52\xe0\x1f\x00\xb9\x80\x00\x80\xd2\x93\xff\xff\x97\xe0\x1b\x00\xf9\x40\x01\x80\x52\xe0\x23\x00\xb9\x80\x00\x80\xd2\x8e\xff\xff\x97\xe0\x1f\x00\xf9\x20\x01\x80\x52\xe0\x27\x00\xb9\xe0\x17\x40\xf9\x21\x08\x80\x52\x01\x00\x00\x39\xe0\x1b\x40\xf9\x41\x05\x80\x52\x01\x00\x00\xb9\xe0\x17\x40\xf9\x12\x00\x00\x94\xe0\x1b\x40\xf9\x00\x00\x40\xb9\xe1\x03\x00\x2a\x00\x00\x00\x90\x00\x80\x24\x91\x8d\xff\xff\x97\xe1\x23\x40\xb9\x00\x00\x00\x90\x00\xc0\x24\x91\x89\xff\xff\x97\xe0\x17\x40\xf9\x83\xff\xff\x97\xe0\x1b\x40\xf9\x81\xff\xff\x97\x00\x00\x80\x52\xfd\x7b\xc4\xa8\xc0\x03\x5f\xd6\xfd\x7b\xbe\xa9\xfd\x03\x00\x91\xe0\x0f\x00\xf9\xe0\x0f\x40\xf9\x00\x00\x40\x39\x00\x04\x00\x11\x01\x1c\x00\x12\xe0\x0f\x40\xf9\x01\x00\x00\x39\xe0\x0f\x40\xf9\x00\x00\x40\x39\xe1\x03\x00\x2a\x00\x00\x00\x90\x00\x40\x25\x91\x73\xff\xff\x97\x1f\x20\x03\xd5\xfd\x7b\xc2\xa8\xc0\x03\x5f\xd6"), -Section(".fini", 0x904, "\x1f\x20\x03\xd5\xfd\x7b\xbf\xa9\xfd\x03\x00\x91\xfd\x7b\xc1\xa8\xc0\x03\x5f\xd6"), -Section(".rodata", 0x918, "\x01\x00\x02\x00\x00\x00\x00\x00\x54\x68\x65\x20\x69\x6e\x74\x20\x69\x73\x3a\x20\x25\x64\x0a\x00\x54\x68\x65\x20\x6c\x6f\x63\x61\x6c\x20\x76\x61\x72\x69\x61\x62\x6c\x65\x20\x69\x73\x3a\x20\x25\x64\x0a\x00\x00\x00\x00\x00\x00\x54\x68\x65\x20\x63\x68\x61\x72\x20\x76\x61\x6c\x75\x65\x20\x69\x73\x3a\x20\x25\x63\x0a\x00"), -Section(".eh_frame_hdr", 0x968, "\x01\x1b\x03\x3b\x44\x00\x00\x00\x07\x00\x00\x00\x98\xfd\xff\xff\x5c\x00\x00\x00\xe8\xfd\xff\xff\x70\x00\x00\x00\x18\xfe\xff\xff\x84\x00\x00\x00\x58\xfe\xff\xff\x98\x00\x00\x00\xa8\xfe\xff\xff\xbc\x00\x00\x00\xac\xfe\xff\xff\xd0\x00\x00\x00\x54\xff\xff\xff\xf0\x00\x00\x00"), -Section(".eh_frame", 0x9B0, "\x10\x00\x00\x00\x00\x00\x00\x00\x01\x7a\x52\x00\x04\x78\x1e\x01\x1b\x0c\x1f\x00\x10\x00\x00\x00\x18\x00\x00\x00\x34\xfd\xff\xff\x34\x00\x00\x00\x00\x41\x07\x1e\x10\x00\x00\x00\x2c\x00\x00\x00\x70\xfd\xff\xff\x30\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x40\x00\x00\x00\x8c\xfd\xff\xff\x3c\x00\x00\x00\x00\x00\x00\x00\x20\x00\x00\x00\x54\x00\x00\x00\xb8\xfd\xff\xff\x48\x00\x00\x00\x00\x41\x0e\x20\x9d\x04\x9e\x03\x42\x93\x02\x4e\xde\xdd\xd3\x0e\x00\x00\x00\x00\x10\x00\x00\x00\x78\x00\x00\x00\xe4\xfd\xff\xff\x04\x00\x00\x00\x00\x00\x00\x00\x1c\x00\x00\x00\x8c\x00\x00\x00\xd4\xfd\xff\xff\xa8\x00\x00\x00\x00\x41\x0e\x40\x9d\x08\x9e\x07\x68\xde\xdd\x0e\x00\x00\x00\x00\x1c\x00\x00\x00\xac\x00\x00\x00\x5c\xfe\xff\xff\x48\x00\x00\x00\x00\x41\x0e\x20\x9d\x04\x9e\x03\x50\xde\xdd\x0e\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".fini_array", 0x10D88, "\xc0\x07\x00\x00\x00\x00\x00\x00"), -Section(".dynamic", 0x10D90, "\x01\x00\x00\x00\x00\x00\x00\x00\x3b\x00\x00\x00\x00\x00\x00\x00\x0c\x00\x00\x00\x00\x00\x00\x00\x28\x06\x00\x00\x00\x00\x00\x00\x0d\x00\x00\x00\x00\x00\x00\x00\x04\x09\x00\x00\x00\x00\x00\x00\x19\x00\x00\x00\x00\x00\x00\x00\x80\x0d\x01\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x1a\x00\x00\x00\x00\x00\x00\x00\x88\x0d\x01\x00\x00\x00\x00\x00\x1c\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\xf5\xfe\xff\x6f\x00\x00\x00\x00\x98\x02\x00\x00\x00\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\xd8\x03\x00\x00\x00\x00\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\xb8\x02\x00\x00\x00\x00\x00\x00\x0a\x00\x00\x00\x00\x00\x00\x00\xa0\x00\x00\x00\x00\x00\x00\x00\x0b\x00\x00\x00\x00\x00\x00\x00\x18\x00\x00\x00\x00\x00\x00\x00\x15\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x80\x0f\x01\x00\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\xa8\x00\x00\x00\x00\x00\x00\x00\x14\x00\x00\x00\x00\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x17\x00\x00\x00\x00\x00\x00\x00\x80\x05\x00\x00\x00\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\xc0\x04\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\xc0\x00\x00\x00\x00\x00\x00\x00\x09\x00\x00\x00\x00\x00\x00\x00\x18\x00\x00\x00\x00\x00\x00\x00\x1e\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\xfb\xff\xff\x6f\x00\x00\x00\x00\x01\x00\x00\x08\x00\x00\x00\x00\xfe\xff\xff\x6f\x00\x00\x00\x00\x90\x04\x00\x00\x00\x00\x00\x00\xff\xff\xff\x6f\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\xf0\xff\xff\x6f\x00\x00\x00\x00\x78\x04\x00\x00\x00\x00\x00\x00\xf9\xff\xff\x6f\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".got", 0x10F80, "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x06\x00\x00\x00\x00\x00\x00\x40\x06\x00\x00\x00\x00\x00\x00\x40\x06\x00\x00\x00\x00\x00\x00\x40\x06\x00\x00\x00\x00\x00\x00\x40\x06\x00\x00\x00\x00\x00\x00\x40\x06\x00\x00\x00\x00\x00\x00\x40\x06\x00\x00\x00\x00\x00\x00\x90\x0d\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x14\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".data", 0x11000, "\x00\x00\x00\x00\x00\x00\x00\x00\x08\x10\x01\x00\x00\x00\x00\x00"), -Section(".init_array", 0x10D80, "\x10\x08\x00\x00\x00\x00\x00\x00")]), -Memmap([Annotation(Region(0x0,0xA7B), Attr("segment","02 0 2684")), -Annotation(Region(0x700,0x733), Attr("symbol","\"_start\"")), -Annotation(Region(0x0,0xF9), Attr("section","\".shstrtab\"")), -Annotation(Region(0x0,0x26C), Attr("section","\".strtab\"")), -Annotation(Region(0x0,0x887), Attr("section","\".symtab\"")), -Annotation(Region(0x0,0x2A), Attr("section","\".comment\"")), -Annotation(Region(0x238,0x252), Attr("section","\".interp\"")), -Annotation(Region(0x254,0x277), Attr("section","\".note.gnu.build-id\"")), -Annotation(Region(0x278,0x297), Attr("section","\".note.ABI-tag\"")), -Annotation(Region(0x298,0x2B3), Attr("section","\".gnu.hash\"")), -Annotation(Region(0x2B8,0x3D7), Attr("section","\".dynsym\"")), -Annotation(Region(0x3D8,0x477), Attr("section","\".dynstr\"")), -Annotation(Region(0x478,0x48F), Attr("section","\".gnu.version\"")), -Annotation(Region(0x490,0x4BF), Attr("section","\".gnu.version_r\"")), -Annotation(Region(0x4C0,0x57F), Attr("section","\".rela.dyn\"")), -Annotation(Region(0x580,0x627), Attr("section","\".rela.plt\"")), -Annotation(Region(0x628,0x63F), Attr("section","\".init\"")), -Annotation(Region(0x640,0x6CF), Attr("section","\".plt\"")), -Annotation(Region(0x628,0x63F), Attr("code-region","()")), -Annotation(Region(0x640,0x6CF), Attr("code-region","()")), -Annotation(Region(0x700,0x733), Attr("symbol-info","_start 0x700 52")), -Annotation(Region(0x734,0x747), Attr("symbol","\"call_weak_fn\"")), -Annotation(Region(0x734,0x747), Attr("symbol-info","call_weak_fn 0x734 20")), -Annotation(Region(0x814,0x8BB), Attr("symbol","\"main\"")), -Annotation(Region(0x700,0x903), Attr("section","\".text\"")), -Annotation(Region(0x700,0x903), Attr("code-region","()")), -Annotation(Region(0x814,0x8BB), Attr("symbol-info","main 0x814 168")), -Annotation(Region(0x8BC,0x903), Attr("symbol","\"printCharValue\"")), -Annotation(Region(0x8BC,0x903), -Attr("symbol-info","printCharValue 0x8BC 72")), -Annotation(Region(0x904,0x917), Attr("section","\".fini\"")), -Annotation(Region(0x904,0x917), Attr("code-region","()")), -Annotation(Region(0x918,0x966), Attr("section","\".rodata\"")), -Annotation(Region(0x968,0x9AB), Attr("section","\".eh_frame_hdr\"")), -Annotation(Region(0x9B0,0xA7B), Attr("section","\".eh_frame\"")), -Annotation(Region(0x10D80,0x1100F), Attr("segment","03 0x10D80 664")), -Annotation(Region(0x10D88,0x10D8F), Attr("section","\".fini_array\"")), -Annotation(Region(0x10D90,0x10F7F), Attr("section","\".dynamic\"")), -Annotation(Region(0x10F80,0x10FFF), Attr("section","\".got\"")), -Annotation(Region(0x11000,0x1100F), Attr("section","\".data\"")), -Annotation(Region(0x10D80,0x10D87), Attr("section","\".init_array\""))]), -Program(Tid(2_124, "%0000084c"), Attrs([]), - Subs([Sub(Tid(2_098, "@__cxa_finalize"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x670"), -Attr("stub","()")]), "__cxa_finalize", Args([Arg(Tid(2_125, "%0000084d"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("__cxa_finalize_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(1_416, "@__cxa_finalize"), - Attrs([Attr("address","0x670")]), Phis([]), -Defs([Def(Tid(1_712, "%000006b0"), Attrs([Attr("address","0x670"), -Attr("insn","adrp x16, #65536")]), Var("R16",Imm(64)), Int(65536,64)), -Def(Tid(1_719, "%000006b7"), Attrs([Attr("address","0x674"), -Attr("insn","ldr x17, [x16, #0xfa0]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(4000,64)),LittleEndian(),64)), -Def(Tid(1_725, "%000006bd"), Attrs([Attr("address","0x678"), -Attr("insn","add x16, x16, #0xfa0")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(4000,64)))]), Jmps([Call(Tid(1_730, "%000006c2"), - Attrs([Attr("address","0x67C"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), -Sub(Tid(2_099, "@__do_global_dtors_aux"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x7C0")]), - "__do_global_dtors_aux", Args([Arg(Tid(2_126, "%0000084e"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("__do_global_dtors_aux_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(830, "@__do_global_dtors_aux"), - Attrs([Attr("address","0x7C0")]), Phis([]), Defs([Def(Tid(834, "%00000342"), - Attrs([Attr("address","0x7C0"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("#3",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(18446744073709551584,64))), -Def(Tid(840, "%00000348"), Attrs([Attr("address","0x7C0"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("#3",Imm(64)),Var("R29",Imm(64)),LittleEndian(),64)), -Def(Tid(846, "%0000034e"), Attrs([Attr("address","0x7C0"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("#3",Imm(64)),Int(8,64)),Var("R30",Imm(64)),LittleEndian(),64)), -Def(Tid(850, "%00000352"), Attrs([Attr("address","0x7C0"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("R31",Imm(64)), -Var("#3",Imm(64))), Def(Tid(856, "%00000358"), - Attrs([Attr("address","0x7C4"), Attr("insn","mov x29, sp")]), - Var("R29",Imm(64)), Var("R31",Imm(64))), Def(Tid(864, "%00000360"), - Attrs([Attr("address","0x7C8"), Attr("insn","str x19, [sp, #0x10]")]), - Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(16,64)),Var("R19",Imm(64)),LittleEndian(),64)), -Def(Tid(869, "%00000365"), Attrs([Attr("address","0x7CC"), -Attr("insn","adrp x19, #69632")]), Var("R19",Imm(64)), Int(69632,64)), -Def(Tid(876, "%0000036c"), Attrs([Attr("address","0x7D0"), -Attr("insn","ldrb w0, [x19, #0x10]")]), Var("R0",Imm(64)), -UNSIGNED(64,Load(Var("mem",Mem(64,8)),PLUS(Var("R19",Imm(64)),Int(16,64)),LittleEndian(),8)))]), -Jmps([Goto(Tid(883, "%00000373"), Attrs([Attr("address","0x7D4"), -Attr("insn","cbnz w0, #0x28")]), - NEQ(Extract(31,0,Var("R0",Imm(64))),Int(0,32)), -Direct(Tid(881, "%00000371"))), Goto(Tid(2_100, "%00000834"), Attrs([]), - Int(1,1), Direct(Tid(1_361, "%00000551")))])), Blk(Tid(1_361, "%00000551"), - Attrs([Attr("address","0x7D8")]), Phis([]), -Defs([Def(Tid(1_364, "%00000554"), Attrs([Attr("address","0x7D8"), -Attr("insn","adrp x0, #65536")]), Var("R0",Imm(64)), Int(65536,64)), -Def(Tid(1_371, "%0000055b"), Attrs([Attr("address","0x7DC"), -Attr("insn","ldr x0, [x0, #0xfe0]")]), Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(4064,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(1_377, "%00000561"), Attrs([Attr("address","0x7E0"), -Attr("insn","cbz x0, #0x10")]), EQ(Var("R0",Imm(64)),Int(0,64)), -Direct(Tid(1_375, "%0000055f"))), Goto(Tid(2_101, "%00000835"), Attrs([]), - Int(1,1), Direct(Tid(1_400, "%00000578")))])), Blk(Tid(1_400, "%00000578"), - Attrs([Attr("address","0x7E4")]), Phis([]), -Defs([Def(Tid(1_403, "%0000057b"), Attrs([Attr("address","0x7E4"), -Attr("insn","adrp x0, #69632")]), Var("R0",Imm(64)), Int(69632,64)), -Def(Tid(1_410, "%00000582"), Attrs([Attr("address","0x7E8"), -Attr("insn","ldr x0, [x0, #0x8]")]), Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(1_415, "%00000587"), Attrs([Attr("address","0x7EC"), -Attr("insn","bl #-0x17c")]), Var("R30",Imm(64)), Int(2032,64))]), -Jmps([Call(Tid(1_418, "%0000058a"), Attrs([Attr("address","0x7EC"), -Attr("insn","bl #-0x17c")]), Int(1,1), -(Direct(Tid(2_098, "@__cxa_finalize")),Direct(Tid(1_375, "%0000055f"))))])), -Blk(Tid(1_375, "%0000055f"), Attrs([Attr("address","0x7F0")]), Phis([]), -Defs([Def(Tid(1_383, "%00000567"), Attrs([Attr("address","0x7F0"), -Attr("insn","bl #-0xa0")]), Var("R30",Imm(64)), Int(2036,64))]), -Jmps([Call(Tid(1_385, "%00000569"), Attrs([Attr("address","0x7F0"), -Attr("insn","bl #-0xa0")]), Int(1,1), -(Direct(Tid(2_112, "@deregister_tm_clones")),Direct(Tid(1_387, "%0000056b"))))])), -Blk(Tid(1_387, "%0000056b"), Attrs([Attr("address","0x7F4")]), Phis([]), -Defs([Def(Tid(1_390, "%0000056e"), Attrs([Attr("address","0x7F4"), -Attr("insn","mov w0, #0x1")]), Var("R0",Imm(64)), Int(1,64)), -Def(Tid(1_398, "%00000576"), Attrs([Attr("address","0x7F8"), -Attr("insn","strb w0, [x19, #0x10]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R19",Imm(64)),Int(16,64)),Extract(7,0,Var("R0",Imm(64))),LittleEndian(),8))]), -Jmps([Goto(Tid(2_102, "%00000836"), Attrs([]), Int(1,1), -Direct(Tid(881, "%00000371")))])), Blk(Tid(881, "%00000371"), - Attrs([Attr("address","0x7FC")]), Phis([]), Defs([Def(Tid(891, "%0000037b"), - Attrs([Attr("address","0x7FC"), Attr("insn","ldr x19, [sp, #0x10]")]), - Var("R19",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(16,64)),LittleEndian(),64)), -Def(Tid(898, "%00000382"), Attrs([Attr("address","0x800"), -Attr("insn","ldp x29, x30, [sp], #0x20")]), Var("R29",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(903, "%00000387"), Attrs([Attr("address","0x800"), -Attr("insn","ldp x29, x30, [sp], #0x20")]), Var("R30",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(907, "%0000038b"), Attrs([Attr("address","0x800"), -Attr("insn","ldp x29, x30, [sp], #0x20")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(32,64)))]), Jmps([Call(Tid(912, "%00000390"), - Attrs([Attr("address","0x804"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), Sub(Tid(2_103, "@__libc_start_main"), - Attrs([Attr("c.proto","signed (*)(signed (*)(signed , char** , char** );* main, signed , char** , \nvoid* auxv)"), -Attr("address","0x660"), Attr("stub","()")]), "__libc_start_main", - Args([Arg(Tid(2_127, "%0000084f"), - Attrs([Attr("c.layout","**[ : 64]"), -Attr("c.data","Top:u64 ptr ptr"), -Attr("c.type","signed (*)(signed , char** , char** );*")]), - Var("__libc_start_main_main",Imm(64)), Var("R0",Imm(64)), In()), -Arg(Tid(2_128, "%00000850"), Attrs([Attr("c.layout","[signed : 32]"), -Attr("c.data","Top:u32"), Attr("c.type","signed")]), - Var("__libc_start_main_arg2",Imm(32)), LOW(32,Var("R1",Imm(64))), In()), -Arg(Tid(2_129, "%00000851"), Attrs([Attr("c.layout","**[char : 8]"), -Attr("c.data","Top:u8 ptr ptr"), Attr("c.type","char**")]), - Var("__libc_start_main_arg3",Imm(64)), Var("R2",Imm(64)), Both()), -Arg(Tid(2_130, "%00000852"), Attrs([Attr("c.layout","*[ : 8]"), -Attr("c.data","{} ptr"), Attr("c.type","void*")]), - Var("__libc_start_main_auxv",Imm(64)), Var("R3",Imm(64)), Both()), -Arg(Tid(2_131, "%00000853"), Attrs([Attr("c.layout","[signed : 32]"), -Attr("c.data","Top:u32"), Attr("c.type","signed")]), - Var("__libc_start_main_result",Imm(32)), LOW(32,Var("R0",Imm(64))), -Out())]), Blks([Blk(Tid(663, "@__libc_start_main"), - Attrs([Attr("address","0x660")]), Phis([]), -Defs([Def(Tid(1_690, "%0000069a"), Attrs([Attr("address","0x660"), -Attr("insn","adrp x16, #65536")]), Var("R16",Imm(64)), Int(65536,64)), -Def(Tid(1_697, "%000006a1"), Attrs([Attr("address","0x664"), -Attr("insn","ldr x17, [x16, #0xf98]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(3992,64)),LittleEndian(),64)), -Def(Tid(1_703, "%000006a7"), Attrs([Attr("address","0x668"), -Attr("insn","add x16, x16, #0xf98")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(3992,64)))]), Jmps([Call(Tid(1_708, "%000006ac"), - Attrs([Attr("address","0x66C"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), Sub(Tid(2_104, "@_fini"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x904")]), - "_fini", Args([Arg(Tid(2_132, "%00000854"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("_fini_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(31, "@_fini"), - Attrs([Attr("address","0x904")]), Phis([]), Defs([Def(Tid(37, "%00000025"), - Attrs([Attr("address","0x908"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("#0",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(18446744073709551600,64))), -Def(Tid(43, "%0000002b"), Attrs([Attr("address","0x908"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("#0",Imm(64)),Var("R29",Imm(64)),LittleEndian(),64)), -Def(Tid(49, "%00000031"), Attrs([Attr("address","0x908"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("#0",Imm(64)),Int(8,64)),Var("R30",Imm(64)),LittleEndian(),64)), -Def(Tid(53, "%00000035"), Attrs([Attr("address","0x908"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("R31",Imm(64)), -Var("#0",Imm(64))), Def(Tid(59, "%0000003b"), Attrs([Attr("address","0x90C"), -Attr("insn","mov x29, sp")]), Var("R29",Imm(64)), Var("R31",Imm(64))), -Def(Tid(66, "%00000042"), Attrs([Attr("address","0x910"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R29",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(71, "%00000047"), Attrs([Attr("address","0x910"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R30",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(75, "%0000004b"), Attrs([Attr("address","0x910"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(16,64)))]), Jmps([Call(Tid(80, "%00000050"), - Attrs([Attr("address","0x914"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), Sub(Tid(2_105, "@_init"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x628")]), - "_init", Args([Arg(Tid(2_133, "%00000855"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("_init_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(1_868, "@_init"), - Attrs([Attr("address","0x628")]), Phis([]), -Defs([Def(Tid(1_874, "%00000752"), Attrs([Attr("address","0x62C"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("#7",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(18446744073709551600,64))), -Def(Tid(1_880, "%00000758"), Attrs([Attr("address","0x62C"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("#7",Imm(64)),Var("R29",Imm(64)),LittleEndian(),64)), -Def(Tid(1_886, "%0000075e"), Attrs([Attr("address","0x62C"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("#7",Imm(64)),Int(8,64)),Var("R30",Imm(64)),LittleEndian(),64)), -Def(Tid(1_890, "%00000762"), Attrs([Attr("address","0x62C"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("R31",Imm(64)), -Var("#7",Imm(64))), Def(Tid(1_896, "%00000768"), - Attrs([Attr("address","0x630"), Attr("insn","mov x29, sp")]), - Var("R29",Imm(64)), Var("R31",Imm(64))), Def(Tid(1_901, "%0000076d"), - Attrs([Attr("address","0x634"), Attr("insn","bl #0x100")]), - Var("R30",Imm(64)), Int(1592,64))]), Jmps([Call(Tid(1_903, "%0000076f"), - Attrs([Attr("address","0x634"), Attr("insn","bl #0x100")]), Int(1,1), -(Direct(Tid(2_110, "@call_weak_fn")),Direct(Tid(1_905, "%00000771"))))])), -Blk(Tid(1_905, "%00000771"), Attrs([Attr("address","0x638")]), Phis([]), -Defs([Def(Tid(1_910, "%00000776"), Attrs([Attr("address","0x638"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R29",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(1_915, "%0000077b"), Attrs([Attr("address","0x638"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R30",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(1_919, "%0000077f"), Attrs([Attr("address","0x638"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(16,64)))]), Jmps([Call(Tid(1_924, "%00000784"), - Attrs([Attr("address","0x63C"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), Sub(Tid(2_106, "@_start"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x700"), -Attr("entry-point","()")]), "_start", Args([Arg(Tid(2_134, "%00000856"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("_start_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(600, "@_start"), - Attrs([Attr("address","0x700")]), Phis([]), Defs([Def(Tid(605, "%0000025d"), - Attrs([Attr("address","0x704"), Attr("insn","mov x29, #0x0")]), - Var("R29",Imm(64)), Int(0,64)), Def(Tid(610, "%00000262"), - Attrs([Attr("address","0x708"), Attr("insn","mov x30, #0x0")]), - Var("R30",Imm(64)), Int(0,64)), Def(Tid(616, "%00000268"), - Attrs([Attr("address","0x70C"), Attr("insn","mov x5, x0")]), - Var("R5",Imm(64)), Var("R0",Imm(64))), Def(Tid(623, "%0000026f"), - Attrs([Attr("address","0x710"), Attr("insn","ldr x1, [sp]")]), - Var("R1",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(629, "%00000275"), Attrs([Attr("address","0x714"), -Attr("insn","add x2, sp, #0x8")]), Var("R2",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(8,64))), Def(Tid(635, "%0000027b"), - Attrs([Attr("address","0x718"), Attr("insn","mov x6, sp")]), - Var("R6",Imm(64)), Var("R31",Imm(64))), Def(Tid(640, "%00000280"), - Attrs([Attr("address","0x71C"), Attr("insn","adrp x0, #65536")]), - Var("R0",Imm(64)), Int(65536,64)), Def(Tid(647, "%00000287"), - Attrs([Attr("address","0x720"), Attr("insn","ldr x0, [x0, #0xff0]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(4080,64)),LittleEndian(),64)), -Def(Tid(652, "%0000028c"), Attrs([Attr("address","0x724"), -Attr("insn","mov x3, #0x0")]), Var("R3",Imm(64)), Int(0,64)), -Def(Tid(657, "%00000291"), Attrs([Attr("address","0x728"), -Attr("insn","mov x4, #0x0")]), Var("R4",Imm(64)), Int(0,64)), -Def(Tid(662, "%00000296"), Attrs([Attr("address","0x72C"), -Attr("insn","bl #-0xcc")]), Var("R30",Imm(64)), Int(1840,64))]), -Jmps([Call(Tid(665, "%00000299"), Attrs([Attr("address","0x72C"), -Attr("insn","bl #-0xcc")]), Int(1,1), -(Direct(Tid(2_103, "@__libc_start_main")),Direct(Tid(667, "%0000029b"))))])), -Blk(Tid(667, "%0000029b"), Attrs([Attr("address","0x730")]), Phis([]), -Defs([Def(Tid(670, "%0000029e"), Attrs([Attr("address","0x730"), -Attr("insn","bl #-0x90")]), Var("R30",Imm(64)), Int(1844,64))]), -Jmps([Call(Tid(673, "%000002a1"), Attrs([Attr("address","0x730"), -Attr("insn","bl #-0x90")]), Int(1,1), -(Direct(Tid(2_109, "@abort")),Direct(Tid(2_107, "%0000083b"))))])), -Blk(Tid(2_107, "%0000083b"), Attrs([]), Phis([]), Defs([]), -Jmps([Call(Tid(2_108, "%0000083c"), Attrs([]), Int(1,1), -(Direct(Tid(2_110, "@call_weak_fn")),))]))])), Sub(Tid(2_109, "@abort"), - Attrs([Attr("noreturn","()"), Attr("c.proto","void (*)(void)"), -Attr("address","0x6A0"), Attr("stub","()")]), "abort", Args([]), -Blks([Blk(Tid(671, "@abort"), Attrs([Attr("address","0x6A0")]), Phis([]), -Defs([Def(Tid(1_778, "%000006f2"), Attrs([Attr("address","0x6A0"), -Attr("insn","adrp x16, #65536")]), Var("R16",Imm(64)), Int(65536,64)), -Def(Tid(1_785, "%000006f9"), Attrs([Attr("address","0x6A4"), -Attr("insn","ldr x17, [x16, #0xfb8]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(4024,64)),LittleEndian(),64)), -Def(Tid(1_791, "%000006ff"), Attrs([Attr("address","0x6A8"), -Attr("insn","add x16, x16, #0xfb8")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(4024,64)))]), Jmps([Call(Tid(1_796, "%00000704"), - Attrs([Attr("address","0x6AC"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), Sub(Tid(2_110, "@call_weak_fn"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x734")]), - "call_weak_fn", Args([Arg(Tid(2_135, "%00000857"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("call_weak_fn_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(675, "@call_weak_fn"), - Attrs([Attr("address","0x734")]), Phis([]), Defs([Def(Tid(678, "%000002a6"), - Attrs([Attr("address","0x734"), Attr("insn","adrp x0, #65536")]), - Var("R0",Imm(64)), Int(65536,64)), Def(Tid(685, "%000002ad"), - Attrs([Attr("address","0x738"), Attr("insn","ldr x0, [x0, #0xfe8]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(4072,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(691, "%000002b3"), Attrs([Attr("address","0x73C"), -Attr("insn","cbz x0, #0x8")]), EQ(Var("R0",Imm(64)),Int(0,64)), -Direct(Tid(689, "%000002b1"))), Goto(Tid(2_111, "%0000083f"), Attrs([]), - Int(1,1), Direct(Tid(1_480, "%000005c8")))])), Blk(Tid(689, "%000002b1"), - Attrs([Attr("address","0x744")]), Phis([]), Defs([]), -Jmps([Call(Tid(697, "%000002b9"), Attrs([Attr("address","0x744"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))])), -Blk(Tid(1_480, "%000005c8"), Attrs([Attr("address","0x740")]), Phis([]), -Defs([]), Jmps([Goto(Tid(1_483, "%000005cb"), Attrs([Attr("address","0x740"), -Attr("insn","b #-0xb0")]), Int(1,1), -Direct(Tid(1_481, "@__gmon_start__")))])), Blk(Tid(1_481, "@__gmon_start__"), - Attrs([Attr("address","0x690")]), Phis([]), -Defs([Def(Tid(1_756, "%000006dc"), Attrs([Attr("address","0x690"), -Attr("insn","adrp x16, #65536")]), Var("R16",Imm(64)), Int(65536,64)), -Def(Tid(1_763, "%000006e3"), Attrs([Attr("address","0x694"), -Attr("insn","ldr x17, [x16, #0xfb0]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(4016,64)),LittleEndian(),64)), -Def(Tid(1_769, "%000006e9"), Attrs([Attr("address","0x698"), -Attr("insn","add x16, x16, #0xfb0")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(4016,64)))]), Jmps([Call(Tid(1_774, "%000006ee"), - Attrs([Attr("address","0x69C"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), -Sub(Tid(2_112, "@deregister_tm_clones"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x750")]), - "deregister_tm_clones", Args([Arg(Tid(2_136, "%00000858"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("deregister_tm_clones_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(703, "@deregister_tm_clones"), - Attrs([Attr("address","0x750")]), Phis([]), Defs([Def(Tid(706, "%000002c2"), - Attrs([Attr("address","0x750"), Attr("insn","adrp x0, #69632")]), - Var("R0",Imm(64)), Int(69632,64)), Def(Tid(712, "%000002c8"), - Attrs([Attr("address","0x754"), Attr("insn","add x0, x0, #0x10")]), - Var("R0",Imm(64)), PLUS(Var("R0",Imm(64)),Int(16,64))), -Def(Tid(717, "%000002cd"), Attrs([Attr("address","0x758"), -Attr("insn","adrp x1, #69632")]), Var("R1",Imm(64)), Int(69632,64)), -Def(Tid(723, "%000002d3"), Attrs([Attr("address","0x75C"), -Attr("insn","add x1, x1, #0x10")]), Var("R1",Imm(64)), -PLUS(Var("R1",Imm(64)),Int(16,64))), Def(Tid(729, "%000002d9"), - Attrs([Attr("address","0x760"), Attr("insn","cmp x1, x0")]), - Var("#1",Imm(64)), NOT(Var("R0",Imm(64)))), Def(Tid(734, "%000002de"), - Attrs([Attr("address","0x760"), Attr("insn","cmp x1, x0")]), - Var("#2",Imm(64)), PLUS(Var("R1",Imm(64)),NOT(Var("R0",Imm(64))))), -Def(Tid(740, "%000002e4"), Attrs([Attr("address","0x760"), -Attr("insn","cmp x1, x0")]), Var("VF",Imm(1)), -NEQ(SIGNED(65,PLUS(Var("#2",Imm(64)),Int(1,64))),PLUS(PLUS(SIGNED(65,Var("R1",Imm(64))),SIGNED(65,Var("#1",Imm(64)))),Int(1,65)))), -Def(Tid(746, "%000002ea"), Attrs([Attr("address","0x760"), -Attr("insn","cmp x1, x0")]), Var("CF",Imm(1)), -NEQ(UNSIGNED(65,PLUS(Var("#2",Imm(64)),Int(1,64))),PLUS(PLUS(UNSIGNED(65,Var("R1",Imm(64))),UNSIGNED(65,Var("#1",Imm(64)))),Int(1,65)))), -Def(Tid(750, "%000002ee"), Attrs([Attr("address","0x760"), -Attr("insn","cmp x1, x0")]), Var("ZF",Imm(1)), -EQ(PLUS(Var("#2",Imm(64)),Int(1,64)),Int(0,64))), Def(Tid(754, "%000002f2"), - Attrs([Attr("address","0x760"), Attr("insn","cmp x1, x0")]), - Var("NF",Imm(1)), Extract(63,63,PLUS(Var("#2",Imm(64)),Int(1,64))))]), -Jmps([Goto(Tid(760, "%000002f8"), Attrs([Attr("address","0x764"), -Attr("insn","b.eq #0x18")]), EQ(Var("ZF",Imm(1)),Int(1,1)), -Direct(Tid(758, "%000002f6"))), Goto(Tid(2_113, "%00000841"), Attrs([]), - Int(1,1), Direct(Tid(1_450, "%000005aa")))])), Blk(Tid(1_450, "%000005aa"), - Attrs([Attr("address","0x768")]), Phis([]), -Defs([Def(Tid(1_453, "%000005ad"), Attrs([Attr("address","0x768"), -Attr("insn","adrp x1, #65536")]), Var("R1",Imm(64)), Int(65536,64)), -Def(Tid(1_460, "%000005b4"), Attrs([Attr("address","0x76C"), -Attr("insn","ldr x1, [x1, #0xfd8]")]), Var("R1",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R1",Imm(64)),Int(4056,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(1_465, "%000005b9"), Attrs([Attr("address","0x770"), -Attr("insn","cbz x1, #0xc")]), EQ(Var("R1",Imm(64)),Int(0,64)), -Direct(Tid(758, "%000002f6"))), Goto(Tid(2_114, "%00000842"), Attrs([]), - Int(1,1), Direct(Tid(1_469, "%000005bd")))])), Blk(Tid(758, "%000002f6"), - Attrs([Attr("address","0x77C")]), Phis([]), Defs([]), -Jmps([Call(Tid(766, "%000002fe"), Attrs([Attr("address","0x77C"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))])), -Blk(Tid(1_469, "%000005bd"), Attrs([Attr("address","0x774")]), Phis([]), -Defs([Def(Tid(1_473, "%000005c1"), Attrs([Attr("address","0x774"), -Attr("insn","mov x16, x1")]), Var("R16",Imm(64)), Var("R1",Imm(64)))]), -Jmps([Call(Tid(1_478, "%000005c6"), Attrs([Attr("address","0x778"), -Attr("insn","br x16")]), Int(1,1), (Indirect(Var("R16",Imm(64))),))]))])), -Sub(Tid(2_115, "@frame_dummy"), Attrs([Attr("c.proto","signed (*)(void)"), -Attr("address","0x810")]), "frame_dummy", Args([Arg(Tid(2_137, "%00000859"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("frame_dummy_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(918, "@frame_dummy"), - Attrs([Attr("address","0x810")]), Phis([]), Defs([]), -Jmps([Call(Tid(920, "%00000398"), Attrs([Attr("address","0x810"), -Attr("insn","b #-0x90")]), Int(1,1), -(Direct(Tid(2_121, "@register_tm_clones")),))]))])), Sub(Tid(2_116, "@free"), - Attrs([Attr("c.proto","void (*)(void* ptr)"), Attr("address","0x6B0"), -Attr("stub","()")]), "free", Args([Arg(Tid(2_138, "%0000085a"), - Attrs([Attr("c.layout","*[ : 8]"), Attr("c.data","{} ptr"), -Attr("c.type","void*")]), Var("free_ptr",Imm(64)), Var("R0",Imm(64)), -Both())]), Blks([Blk(Tid(1_317, "@free"), Attrs([Attr("address","0x6B0")]), - Phis([]), Defs([Def(Tid(1_800, "%00000708"), Attrs([Attr("address","0x6B0"), -Attr("insn","adrp x16, #65536")]), Var("R16",Imm(64)), Int(65536,64)), -Def(Tid(1_807, "%0000070f"), Attrs([Attr("address","0x6B4"), -Attr("insn","ldr x17, [x16, #0xfc0]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(4032,64)),LittleEndian(),64)), -Def(Tid(1_813, "%00000715"), Attrs([Attr("address","0x6B8"), -Attr("insn","add x16, x16, #0xfc0")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(4032,64)))]), Jmps([Call(Tid(1_818, "%0000071a"), - Attrs([Attr("address","0x6BC"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), Sub(Tid(2_117, "@main"), - Attrs([Attr("c.proto","signed (*)(signed argc, const char** argv)"), -Attr("address","0x814")]), "main", Args([Arg(Tid(2_139, "%0000085b"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("main_argc",Imm(32)), -LOW(32,Var("R0",Imm(64))), In()), Arg(Tid(2_140, "%0000085c"), - Attrs([Attr("c.layout","**[char : 8]"), Attr("c.data","Top:u8 ptr ptr"), -Attr("c.type"," const char**")]), Var("main_argv",Imm(64)), -Var("R1",Imm(64)), Both()), Arg(Tid(2_141, "%0000085d"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("main_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(922, "@main"), - Attrs([Attr("address","0x814")]), Phis([]), Defs([Def(Tid(926, "%0000039e"), - Attrs([Attr("address","0x814"), -Attr("insn","stp x29, x30, [sp, #-0x40]!")]), Var("#4",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(18446744073709551552,64))), -Def(Tid(932, "%000003a4"), Attrs([Attr("address","0x814"), -Attr("insn","stp x29, x30, [sp, #-0x40]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("#4",Imm(64)),Var("R29",Imm(64)),LittleEndian(),64)), -Def(Tid(938, "%000003aa"), Attrs([Attr("address","0x814"), -Attr("insn","stp x29, x30, [sp, #-0x40]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("#4",Imm(64)),Int(8,64)),Var("R30",Imm(64)),LittleEndian(),64)), -Def(Tid(942, "%000003ae"), Attrs([Attr("address","0x814"), -Attr("insn","stp x29, x30, [sp, #-0x40]!")]), Var("R31",Imm(64)), -Var("#4",Imm(64))), Def(Tid(948, "%000003b4"), - Attrs([Attr("address","0x818"), Attr("insn","mov x29, sp")]), - Var("R29",Imm(64)), Var("R31",Imm(64))), Def(Tid(953, "%000003b9"), - Attrs([Attr("address","0x81C"), Attr("insn","mov x0, #0x1")]), - Var("R0",Imm(64)), Int(1,64)), Def(Tid(958, "%000003be"), - Attrs([Attr("address","0x820"), Attr("insn","bl #-0x1a0")]), - Var("R30",Imm(64)), Int(2084,64))]), Jmps([Call(Tid(961, "%000003c1"), - Attrs([Attr("address","0x820"), Attr("insn","bl #-0x1a0")]), Int(1,1), -(Direct(Tid(2_118, "@malloc")),Direct(Tid(963, "%000003c3"))))])), -Blk(Tid(963, "%000003c3"), Attrs([Attr("address","0x824")]), Phis([]), -Defs([Def(Tid(969, "%000003c9"), Attrs([Attr("address","0x824"), -Attr("insn","str x0, [sp, #0x28]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(40,64)),Var("R0",Imm(64)),LittleEndian(),64)), -Def(Tid(974, "%000003ce"), Attrs([Attr("address","0x828"), -Attr("insn","mov w0, #0xb")]), Var("R0",Imm(64)), Int(11,64)), -Def(Tid(982, "%000003d6"), Attrs([Attr("address","0x82C"), -Attr("insn","str w0, [sp, #0x1c]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(28,64)),Extract(31,0,Var("R0",Imm(64))),LittleEndian(),32)), -Def(Tid(987, "%000003db"), Attrs([Attr("address","0x830"), -Attr("insn","mov x0, #0x4")]), Var("R0",Imm(64)), Int(4,64)), -Def(Tid(992, "%000003e0"), Attrs([Attr("address","0x834"), -Attr("insn","bl #-0x1b4")]), Var("R30",Imm(64)), Int(2104,64))]), -Jmps([Call(Tid(994, "%000003e2"), Attrs([Attr("address","0x834"), -Attr("insn","bl #-0x1b4")]), Int(1,1), -(Direct(Tid(2_118, "@malloc")),Direct(Tid(996, "%000003e4"))))])), -Blk(Tid(996, "%000003e4"), Attrs([Attr("address","0x838")]), Phis([]), -Defs([Def(Tid(1_002, "%000003ea"), Attrs([Attr("address","0x838"), -Attr("insn","str x0, [sp, #0x30]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(48,64)),Var("R0",Imm(64)),LittleEndian(),64)), -Def(Tid(1_007, "%000003ef"), Attrs([Attr("address","0x83C"), -Attr("insn","mov w0, #0xa")]), Var("R0",Imm(64)), Int(10,64)), -Def(Tid(1_015, "%000003f7"), Attrs([Attr("address","0x840"), -Attr("insn","str w0, [sp, #0x20]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(32,64)),Extract(31,0,Var("R0",Imm(64))),LittleEndian(),32)), -Def(Tid(1_020, "%000003fc"), Attrs([Attr("address","0x844"), -Attr("insn","mov x0, #0x4")]), Var("R0",Imm(64)), Int(4,64)), -Def(Tid(1_025, "%00000401"), Attrs([Attr("address","0x848"), -Attr("insn","bl #-0x1c8")]), Var("R30",Imm(64)), Int(2124,64))]), -Jmps([Call(Tid(1_027, "%00000403"), Attrs([Attr("address","0x848"), -Attr("insn","bl #-0x1c8")]), Int(1,1), -(Direct(Tid(2_118, "@malloc")),Direct(Tid(1_029, "%00000405"))))])), -Blk(Tid(1_029, "%00000405"), Attrs([Attr("address","0x84C")]), Phis([]), -Defs([Def(Tid(1_035, "%0000040b"), Attrs([Attr("address","0x84C"), -Attr("insn","str x0, [sp, #0x38]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(56,64)),Var("R0",Imm(64)),LittleEndian(),64)), -Def(Tid(1_040, "%00000410"), Attrs([Attr("address","0x850"), -Attr("insn","mov w0, #0x9")]), Var("R0",Imm(64)), Int(9,64)), -Def(Tid(1_048, "%00000418"), Attrs([Attr("address","0x854"), -Attr("insn","str w0, [sp, #0x24]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(36,64)),Extract(31,0,Var("R0",Imm(64))),LittleEndian(),32)), -Def(Tid(1_055, "%0000041f"), Attrs([Attr("address","0x858"), -Attr("insn","ldr x0, [sp, #0x28]")]), Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(40,64)),LittleEndian(),64)), -Def(Tid(1_060, "%00000424"), Attrs([Attr("address","0x85C"), -Attr("insn","mov w1, #0x41")]), Var("R1",Imm(64)), Int(65,64)), -Def(Tid(1_068, "%0000042c"), Attrs([Attr("address","0x860"), -Attr("insn","strb w1, [x0]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("R0",Imm(64)),Extract(7,0,Var("R1",Imm(64))),LittleEndian(),8)), -Def(Tid(1_075, "%00000433"), Attrs([Attr("address","0x864"), -Attr("insn","ldr x0, [sp, #0x30]")]), Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(48,64)),LittleEndian(),64)), -Def(Tid(1_080, "%00000438"), Attrs([Attr("address","0x868"), -Attr("insn","mov w1, #0x2a")]), Var("R1",Imm(64)), Int(42,64)), -Def(Tid(1_088, "%00000440"), Attrs([Attr("address","0x86C"), -Attr("insn","str w1, [x0]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("R0",Imm(64)),Extract(31,0,Var("R1",Imm(64))),LittleEndian(),32)), -Def(Tid(1_095, "%00000447"), Attrs([Attr("address","0x870"), -Attr("insn","ldr x0, [sp, #0x28]")]), Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(40,64)),LittleEndian(),64)), -Def(Tid(1_100, "%0000044c"), Attrs([Attr("address","0x874"), -Attr("insn","bl #0x48")]), Var("R30",Imm(64)), Int(2168,64))]), -Jmps([Call(Tid(1_103, "%0000044f"), Attrs([Attr("address","0x874"), -Attr("insn","bl #0x48")]), Int(1,1), -(Direct(Tid(2_119, "@printCharValue")),Direct(Tid(1_243, "%000004db"))))])), -Blk(Tid(1_243, "%000004db"), Attrs([Attr("address","0x878")]), Phis([]), -Defs([Def(Tid(1_248, "%000004e0"), Attrs([Attr("address","0x878"), -Attr("insn","ldr x0, [sp, #0x30]")]), Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(48,64)),LittleEndian(),64)), -Def(Tid(1_255, "%000004e7"), Attrs([Attr("address","0x87C"), -Attr("insn","ldr w0, [x0]")]), Var("R0",Imm(64)), -UNSIGNED(64,Load(Var("mem",Mem(64,8)),Var("R0",Imm(64)),LittleEndian(),32))), -Def(Tid(1_261, "%000004ed"), Attrs([Attr("address","0x880"), -Attr("insn","mov w1, w0")]), Var("R1",Imm(64)), -UNSIGNED(64,Extract(31,0,Var("R0",Imm(64))))), Def(Tid(1_266, "%000004f2"), - Attrs([Attr("address","0x884"), Attr("insn","adrp x0, #0")]), - Var("R0",Imm(64)), Int(0,64)), Def(Tid(1_272, "%000004f8"), - Attrs([Attr("address","0x888"), Attr("insn","add x0, x0, #0x920")]), - Var("R0",Imm(64)), PLUS(Var("R0",Imm(64)),Int(2336,64))), -Def(Tid(1_277, "%000004fd"), Attrs([Attr("address","0x88C"), -Attr("insn","bl #-0x1cc")]), Var("R30",Imm(64)), Int(2192,64))]), -Jmps([Call(Tid(1_279, "%000004ff"), Attrs([Attr("address","0x88C"), -Attr("insn","bl #-0x1cc")]), Int(1,1), -(Direct(Tid(2_120, "@printf")),Direct(Tid(1_281, "%00000501"))))])), -Blk(Tid(1_281, "%00000501"), Attrs([Attr("address","0x890")]), Phis([]), -Defs([Def(Tid(1_286, "%00000506"), Attrs([Attr("address","0x890"), -Attr("insn","ldr w1, [sp, #0x20]")]), Var("R1",Imm(64)), -UNSIGNED(64,Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(32,64)),LittleEndian(),32))), -Def(Tid(1_291, "%0000050b"), Attrs([Attr("address","0x894"), -Attr("insn","adrp x0, #0")]), Var("R0",Imm(64)), Int(0,64)), -Def(Tid(1_297, "%00000511"), Attrs([Attr("address","0x898"), -Attr("insn","add x0, x0, #0x930")]), Var("R0",Imm(64)), -PLUS(Var("R0",Imm(64)),Int(2352,64))), Def(Tid(1_302, "%00000516"), - Attrs([Attr("address","0x89C"), Attr("insn","bl #-0x1dc")]), - Var("R30",Imm(64)), Int(2208,64))]), Jmps([Call(Tid(1_304, "%00000518"), - Attrs([Attr("address","0x89C"), Attr("insn","bl #-0x1dc")]), Int(1,1), -(Direct(Tid(2_120, "@printf")),Direct(Tid(1_306, "%0000051a"))))])), -Blk(Tid(1_306, "%0000051a"), Attrs([Attr("address","0x8A0")]), Phis([]), -Defs([Def(Tid(1_311, "%0000051f"), Attrs([Attr("address","0x8A0"), -Attr("insn","ldr x0, [sp, #0x28]")]), Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(40,64)),LittleEndian(),64)), -Def(Tid(1_316, "%00000524"), Attrs([Attr("address","0x8A4"), -Attr("insn","bl #-0x1f4")]), Var("R30",Imm(64)), Int(2216,64))]), -Jmps([Call(Tid(1_319, "%00000527"), Attrs([Attr("address","0x8A4"), -Attr("insn","bl #-0x1f4")]), Int(1,1), -(Direct(Tid(2_116, "@free")),Direct(Tid(1_321, "%00000529"))))])), -Blk(Tid(1_321, "%00000529"), Attrs([Attr("address","0x8A8")]), Phis([]), -Defs([Def(Tid(1_326, "%0000052e"), Attrs([Attr("address","0x8A8"), -Attr("insn","ldr x0, [sp, #0x30]")]), Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(48,64)),LittleEndian(),64)), -Def(Tid(1_331, "%00000533"), Attrs([Attr("address","0x8AC"), -Attr("insn","bl #-0x1fc")]), Var("R30",Imm(64)), Int(2224,64))]), -Jmps([Call(Tid(1_333, "%00000535"), Attrs([Attr("address","0x8AC"), -Attr("insn","bl #-0x1fc")]), Int(1,1), -(Direct(Tid(2_116, "@free")),Direct(Tid(1_335, "%00000537"))))])), -Blk(Tid(1_335, "%00000537"), Attrs([Attr("address","0x8B0")]), Phis([]), -Defs([Def(Tid(1_338, "%0000053a"), Attrs([Attr("address","0x8B0"), -Attr("insn","mov w0, #0x0")]), Var("R0",Imm(64)), Int(0,64)), -Def(Tid(1_345, "%00000541"), Attrs([Attr("address","0x8B4"), -Attr("insn","ldp x29, x30, [sp], #0x40")]), Var("R29",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(1_350, "%00000546"), Attrs([Attr("address","0x8B4"), -Attr("insn","ldp x29, x30, [sp], #0x40")]), Var("R30",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(1_354, "%0000054a"), Attrs([Attr("address","0x8B4"), -Attr("insn","ldp x29, x30, [sp], #0x40")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(64,64)))]), Jmps([Call(Tid(1_359, "%0000054f"), - Attrs([Attr("address","0x8B8"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), Sub(Tid(2_118, "@malloc"), - Attrs([Attr("c.proto","void* (*)(unsigned long size)"), -Attr("address","0x680"), Attr("malloc","()"), Attr("stub","()")]), "malloc", - Args([Arg(Tid(2_142, "%0000085e"), Attrs([Attr("alloc-size","()"), -Attr("c.layout","[unsigned long : 64]"), Attr("c.data","Top:u64"), -Attr("c.type","unsigned long")]), Var("malloc_size",Imm(64)), -Var("R0",Imm(64)), In()), Arg(Tid(2_143, "%0000085f"), - Attrs([Attr("warn-unused","()"), Attr("c.layout","*[ : 8]"), -Attr("c.data","{} ptr"), Attr("c.type","void*")]), - Var("malloc_result",Imm(64)), Var("R0",Imm(64)), Out())]), -Blks([Blk(Tid(959, "@malloc"), Attrs([Attr("address","0x680")]), Phis([]), -Defs([Def(Tid(1_734, "%000006c6"), Attrs([Attr("address","0x680"), -Attr("insn","adrp x16, #65536")]), Var("R16",Imm(64)), Int(65536,64)), -Def(Tid(1_741, "%000006cd"), Attrs([Attr("address","0x684"), -Attr("insn","ldr x17, [x16, #0xfa8]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(4008,64)),LittleEndian(),64)), -Def(Tid(1_747, "%000006d3"), Attrs([Attr("address","0x688"), -Attr("insn","add x16, x16, #0xfa8")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(4008,64)))]), Jmps([Call(Tid(1_752, "%000006d8"), - Attrs([Attr("address","0x68C"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), Sub(Tid(2_119, "@printCharValue"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x8BC")]), - "printCharValue", Args([Arg(Tid(2_144, "%00000860"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("printCharValue_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(1_101, "@printCharValue"), - Attrs([Attr("address","0x8BC")]), Phis([]), -Defs([Def(Tid(1_108, "%00000454"), Attrs([Attr("address","0x8BC"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("#5",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(18446744073709551584,64))), -Def(Tid(1_114, "%0000045a"), Attrs([Attr("address","0x8BC"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("#5",Imm(64)),Var("R29",Imm(64)),LittleEndian(),64)), -Def(Tid(1_120, "%00000460"), Attrs([Attr("address","0x8BC"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("#5",Imm(64)),Int(8,64)),Var("R30",Imm(64)),LittleEndian(),64)), -Def(Tid(1_124, "%00000464"), Attrs([Attr("address","0x8BC"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("R31",Imm(64)), -Var("#5",Imm(64))), Def(Tid(1_130, "%0000046a"), - Attrs([Attr("address","0x8C0"), Attr("insn","mov x29, sp")]), - Var("R29",Imm(64)), Var("R31",Imm(64))), Def(Tid(1_138, "%00000472"), - Attrs([Attr("address","0x8C4"), Attr("insn","str x0, [sp, #0x18]")]), - Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(24,64)),Var("R0",Imm(64)),LittleEndian(),64)), -Def(Tid(1_145, "%00000479"), Attrs([Attr("address","0x8C8"), -Attr("insn","ldr x0, [sp, #0x18]")]), Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(24,64)),LittleEndian(),64)), -Def(Tid(1_152, "%00000480"), Attrs([Attr("address","0x8CC"), -Attr("insn","ldrb w0, [x0]")]), Var("R0",Imm(64)), -UNSIGNED(64,Load(Var("mem",Mem(64,8)),Var("R0",Imm(64)),LittleEndian(),8))), -Def(Tid(1_158, "%00000486"), Attrs([Attr("address","0x8D0"), -Attr("insn","add w0, w0, #0x1")]), Var("R0",Imm(64)), -UNSIGNED(64,PLUS(Extract(31,0,Var("R0",Imm(64))),Int(1,32)))), -Def(Tid(1_164, "%0000048c"), Attrs([Attr("address","0x8D4"), -Attr("insn","and w1, w0, #0xff")]), Var("R1",Imm(64)), -UNSIGNED(64,Concat(Int(0,24),Extract(7,0,Var("R0",Imm(64)))))), -Def(Tid(1_171, "%00000493"), Attrs([Attr("address","0x8D8"), -Attr("insn","ldr x0, [sp, #0x18]")]), Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(24,64)),LittleEndian(),64)), -Def(Tid(1_179, "%0000049b"), Attrs([Attr("address","0x8DC"), -Attr("insn","strb w1, [x0]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("R0",Imm(64)),Extract(7,0,Var("R1",Imm(64))),LittleEndian(),8)), -Def(Tid(1_186, "%000004a2"), Attrs([Attr("address","0x8E0"), -Attr("insn","ldr x0, [sp, #0x18]")]), Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(24,64)),LittleEndian(),64)), -Def(Tid(1_193, "%000004a9"), Attrs([Attr("address","0x8E4"), -Attr("insn","ldrb w0, [x0]")]), Var("R0",Imm(64)), -UNSIGNED(64,Load(Var("mem",Mem(64,8)),Var("R0",Imm(64)),LittleEndian(),8))), -Def(Tid(1_199, "%000004af"), Attrs([Attr("address","0x8E8"), -Attr("insn","mov w1, w0")]), Var("R1",Imm(64)), -UNSIGNED(64,Extract(31,0,Var("R0",Imm(64))))), Def(Tid(1_204, "%000004b4"), - Attrs([Attr("address","0x8EC"), Attr("insn","adrp x0, #0")]), - Var("R0",Imm(64)), Int(0,64)), Def(Tid(1_210, "%000004ba"), - Attrs([Attr("address","0x8F0"), Attr("insn","add x0, x0, #0x950")]), - Var("R0",Imm(64)), PLUS(Var("R0",Imm(64)),Int(2384,64))), -Def(Tid(1_215, "%000004bf"), Attrs([Attr("address","0x8F4"), -Attr("insn","bl #-0x234")]), Var("R30",Imm(64)), Int(2296,64))]), -Jmps([Call(Tid(1_218, "%000004c2"), Attrs([Attr("address","0x8F4"), -Attr("insn","bl #-0x234")]), Int(1,1), -(Direct(Tid(2_120, "@printf")),Direct(Tid(1_220, "%000004c4"))))])), -Blk(Tid(1_220, "%000004c4"), Attrs([Attr("address","0x8F8")]), Phis([]), -Defs([Def(Tid(1_227, "%000004cb"), Attrs([Attr("address","0x8FC"), -Attr("insn","ldp x29, x30, [sp], #0x20")]), Var("R29",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(1_232, "%000004d0"), Attrs([Attr("address","0x8FC"), -Attr("insn","ldp x29, x30, [sp], #0x20")]), Var("R30",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(1_236, "%000004d4"), Attrs([Attr("address","0x8FC"), -Attr("insn","ldp x29, x30, [sp], #0x20")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(32,64)))]), Jmps([Call(Tid(1_241, "%000004d9"), - Attrs([Attr("address","0x900"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), Sub(Tid(2_120, "@printf"), - Attrs([Attr("c.proto","signed (*)( const char restrict * format, ...)"), -Attr("address","0x6C0"), Attr("stub","()")]), "printf", - Args([Arg(Tid(2_145, "%00000861"), Attrs([Attr("format","\"printf\""), -Attr("c.layout","*[char : 8]"), Attr("c.data","Top:u8 ptr"), -Attr("c.type"," const char restrict *")]), Var("printf_format",Imm(64)), -Var("R0",Imm(64)), In()), Arg(Tid(2_146, "%00000862"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("printf_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(1_216, "@printf"), - Attrs([Attr("address","0x6C0")]), Phis([]), -Defs([Def(Tid(1_822, "%0000071e"), Attrs([Attr("address","0x6C0"), -Attr("insn","adrp x16, #65536")]), Var("R16",Imm(64)), Int(65536,64)), -Def(Tid(1_829, "%00000725"), Attrs([Attr("address","0x6C4"), -Attr("insn","ldr x17, [x16, #0xfc8]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(4040,64)),LittleEndian(),64)), -Def(Tid(1_835, "%0000072b"), Attrs([Attr("address","0x6C8"), -Attr("insn","add x16, x16, #0xfc8")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(4040,64)))]), Jmps([Call(Tid(1_840, "%00000730"), - Attrs([Attr("address","0x6CC"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), -Sub(Tid(2_121, "@register_tm_clones"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x780")]), - "register_tm_clones", Args([Arg(Tid(2_147, "%00000863"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("register_tm_clones_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(768, "@register_tm_clones"), Attrs([Attr("address","0x780")]), - Phis([]), Defs([Def(Tid(771, "%00000303"), Attrs([Attr("address","0x780"), -Attr("insn","adrp x0, #69632")]), Var("R0",Imm(64)), Int(69632,64)), -Def(Tid(777, "%00000309"), Attrs([Attr("address","0x784"), -Attr("insn","add x0, x0, #0x10")]), Var("R0",Imm(64)), -PLUS(Var("R0",Imm(64)),Int(16,64))), Def(Tid(782, "%0000030e"), - Attrs([Attr("address","0x788"), Attr("insn","adrp x1, #69632")]), - Var("R1",Imm(64)), Int(69632,64)), Def(Tid(788, "%00000314"), - Attrs([Attr("address","0x78C"), Attr("insn","add x1, x1, #0x10")]), - Var("R1",Imm(64)), PLUS(Var("R1",Imm(64)),Int(16,64))), -Def(Tid(795, "%0000031b"), Attrs([Attr("address","0x790"), -Attr("insn","sub x1, x1, x0")]), Var("R1",Imm(64)), -PLUS(PLUS(Var("R1",Imm(64)),NOT(Var("R0",Imm(64)))),Int(1,64))), -Def(Tid(801, "%00000321"), Attrs([Attr("address","0x794"), -Attr("insn","lsr x2, x1, #63")]), Var("R2",Imm(64)), -Concat(Int(0,63),Extract(63,63,Var("R1",Imm(64))))), -Def(Tid(808, "%00000328"), Attrs([Attr("address","0x798"), -Attr("insn","add x1, x2, x1, asr #3")]), Var("R1",Imm(64)), -PLUS(Var("R2",Imm(64)),ARSHIFT(Var("R1",Imm(64)),Int(3,3)))), -Def(Tid(814, "%0000032e"), Attrs([Attr("address","0x79C"), -Attr("insn","asr x1, x1, #1")]), Var("R1",Imm(64)), -SIGNED(64,Extract(63,1,Var("R1",Imm(64)))))]), -Jmps([Goto(Tid(820, "%00000334"), Attrs([Attr("address","0x7A0"), -Attr("insn","cbz x1, #0x18")]), EQ(Var("R1",Imm(64)),Int(0,64)), -Direct(Tid(818, "%00000332"))), Goto(Tid(2_122, "%0000084a"), Attrs([]), - Int(1,1), Direct(Tid(1_420, "%0000058c")))])), Blk(Tid(1_420, "%0000058c"), - Attrs([Attr("address","0x7A4")]), Phis([]), -Defs([Def(Tid(1_423, "%0000058f"), Attrs([Attr("address","0x7A4"), -Attr("insn","adrp x2, #65536")]), Var("R2",Imm(64)), Int(65536,64)), -Def(Tid(1_430, "%00000596"), Attrs([Attr("address","0x7A8"), -Attr("insn","ldr x2, [x2, #0xff8]")]), Var("R2",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R2",Imm(64)),Int(4088,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(1_435, "%0000059b"), Attrs([Attr("address","0x7AC"), -Attr("insn","cbz x2, #0xc")]), EQ(Var("R2",Imm(64)),Int(0,64)), -Direct(Tid(818, "%00000332"))), Goto(Tid(2_123, "%0000084b"), Attrs([]), - Int(1,1), Direct(Tid(1_439, "%0000059f")))])), Blk(Tid(818, "%00000332"), - Attrs([Attr("address","0x7B8")]), Phis([]), Defs([]), -Jmps([Call(Tid(826, "%0000033a"), Attrs([Attr("address","0x7B8"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))])), -Blk(Tid(1_439, "%0000059f"), Attrs([Attr("address","0x7B0")]), Phis([]), -Defs([Def(Tid(1_443, "%000005a3"), Attrs([Attr("address","0x7B0"), -Attr("insn","mov x16, x2")]), Var("R16",Imm(64)), Var("R2",Imm(64)))]), -Jmps([Call(Tid(1_448, "%000005a8"), Attrs([Attr("address","0x7B4"), -Attr("insn","br x16")]), Int(1,1), -(Indirect(Var("R16",Imm(64))),))]))]))]))) \ No newline at end of file diff --git a/src/test/correct/malloc_with_local3/gcc/malloc_with_local3.bir b/src/test/correct/malloc_with_local3/gcc/malloc_with_local3.bir deleted file mode 100644 index d3245da56..000000000 --- a/src/test/correct/malloc_with_local3/gcc/malloc_with_local3.bir +++ /dev/null @@ -1,352 +0,0 @@ -0000084c: program -00000832: sub __cxa_finalize(__cxa_finalize_result) -0000084d: __cxa_finalize_result :: out u32 = low:32[R0] - -00000588: -000006b0: R16 := 0x10000 -000006b7: R17 := mem[R16 + 0xFA0, el]:u64 -000006bd: R16 := R16 + 0xFA0 -000006c2: call R17 with noreturn - -00000833: sub __do_global_dtors_aux(__do_global_dtors_aux_result) -0000084e: __do_global_dtors_aux_result :: out u32 = low:32[R0] - -0000033e: -00000342: #3 := R31 - 0x20 -00000348: mem := mem with [#3, el]:u64 <- R29 -0000034e: mem := mem with [#3 + 8, el]:u64 <- R30 -00000352: R31 := #3 -00000358: R29 := R31 -00000360: mem := mem with [R31 + 0x10, el]:u64 <- R19 -00000365: R19 := 0x11000 -0000036c: R0 := pad:64[mem[R19 + 0x10]] -00000373: when 31:0[R0] <> 0 goto %00000371 -00000834: goto %00000551 - -00000551: -00000554: R0 := 0x10000 -0000055b: R0 := mem[R0 + 0xFE0, el]:u64 -00000561: when R0 = 0 goto %0000055f -00000835: goto %00000578 - -00000578: -0000057b: R0 := 0x11000 -00000582: R0 := mem[R0 + 8, el]:u64 -00000587: R30 := 0x7F0 -0000058a: call @__cxa_finalize with return %0000055f - -0000055f: -00000567: R30 := 0x7F4 -00000569: call @deregister_tm_clones with return %0000056b - -0000056b: -0000056e: R0 := 1 -00000576: mem := mem with [R19 + 0x10] <- 7:0[R0] -00000836: goto %00000371 - -00000371: -0000037b: R19 := mem[R31 + 0x10, el]:u64 -00000382: R29 := mem[R31, el]:u64 -00000387: R30 := mem[R31 + 8, el]:u64 -0000038b: R31 := R31 + 0x20 -00000390: call R30 with noreturn - -00000837: sub __libc_start_main(__libc_start_main_main, __libc_start_main_arg2, __libc_start_main_arg3, __libc_start_main_auxv, __libc_start_main_result) -0000084f: __libc_start_main_main :: in u64 = R0 -00000850: __libc_start_main_arg2 :: in u32 = low:32[R1] -00000851: __libc_start_main_arg3 :: in out u64 = R2 -00000852: __libc_start_main_auxv :: in out u64 = R3 -00000853: __libc_start_main_result :: out u32 = low:32[R0] - -00000297: -0000069a: R16 := 0x10000 -000006a1: R17 := mem[R16 + 0xF98, el]:u64 -000006a7: R16 := R16 + 0xF98 -000006ac: call R17 with noreturn - -00000838: sub _fini(_fini_result) -00000854: _fini_result :: out u32 = low:32[R0] - -0000001f: -00000025: #0 := R31 - 0x10 -0000002b: mem := mem with [#0, el]:u64 <- R29 -00000031: mem := mem with [#0 + 8, el]:u64 <- R30 -00000035: R31 := #0 -0000003b: R29 := R31 -00000042: R29 := mem[R31, el]:u64 -00000047: R30 := mem[R31 + 8, el]:u64 -0000004b: R31 := R31 + 0x10 -00000050: call R30 with noreturn - -00000839: sub _init(_init_result) -00000855: _init_result :: out u32 = low:32[R0] - -0000074c: -00000752: #7 := R31 - 0x10 -00000758: mem := mem with [#7, el]:u64 <- R29 -0000075e: mem := mem with [#7 + 8, el]:u64 <- R30 -00000762: R31 := #7 -00000768: R29 := R31 -0000076d: R30 := 0x638 -0000076f: call @call_weak_fn with return %00000771 - -00000771: -00000776: R29 := mem[R31, el]:u64 -0000077b: R30 := mem[R31 + 8, el]:u64 -0000077f: R31 := R31 + 0x10 -00000784: call R30 with noreturn - -0000083a: sub _start(_start_result) -00000856: _start_result :: out u32 = low:32[R0] - -00000258: -0000025d: R29 := 0 -00000262: R30 := 0 -00000268: R5 := R0 -0000026f: R1 := mem[R31, el]:u64 -00000275: R2 := R31 + 8 -0000027b: R6 := R31 -00000280: R0 := 0x10000 -00000287: R0 := mem[R0 + 0xFF0, el]:u64 -0000028c: R3 := 0 -00000291: R4 := 0 -00000296: R30 := 0x730 -00000299: call @__libc_start_main with return %0000029b - -0000029b: -0000029e: R30 := 0x734 -000002a1: call @abort with return %0000083b - -0000083b: -0000083c: call @call_weak_fn with noreturn - -0000083d: sub abort() - - -0000029f: -000006f2: R16 := 0x10000 -000006f9: R17 := mem[R16 + 0xFB8, el]:u64 -000006ff: R16 := R16 + 0xFB8 -00000704: call R17 with noreturn - -0000083e: sub call_weak_fn(call_weak_fn_result) -00000857: call_weak_fn_result :: out u32 = low:32[R0] - -000002a3: -000002a6: R0 := 0x10000 -000002ad: R0 := mem[R0 + 0xFE8, el]:u64 -000002b3: when R0 = 0 goto %000002b1 -0000083f: goto %000005c8 - -000002b1: -000002b9: call R30 with noreturn - -000005c8: -000005cb: goto @__gmon_start__ - -000005c9: -000006dc: R16 := 0x10000 -000006e3: R17 := mem[R16 + 0xFB0, el]:u64 -000006e9: R16 := R16 + 0xFB0 -000006ee: call R17 with noreturn - -00000840: sub deregister_tm_clones(deregister_tm_clones_result) -00000858: deregister_tm_clones_result :: out u32 = low:32[R0] - -000002bf: -000002c2: R0 := 0x11000 -000002c8: R0 := R0 + 0x10 -000002cd: R1 := 0x11000 -000002d3: R1 := R1 + 0x10 -000002d9: #1 := ~R0 -000002de: #2 := R1 + ~R0 -000002e4: VF := extend:65[#2 + 1] <> extend:65[R1] + extend:65[#1] + 1 -000002ea: CF := pad:65[#2 + 1] <> pad:65[R1] + pad:65[#1] + 1 -000002ee: ZF := #2 + 1 = 0 -000002f2: NF := 63:63[#2 + 1] -000002f8: when ZF goto %000002f6 -00000841: goto %000005aa - -000005aa: -000005ad: R1 := 0x10000 -000005b4: R1 := mem[R1 + 0xFD8, el]:u64 -000005b9: when R1 = 0 goto %000002f6 -00000842: goto %000005bd - -000002f6: -000002fe: call R30 with noreturn - -000005bd: -000005c1: R16 := R1 -000005c6: call R16 with noreturn - -00000843: sub frame_dummy(frame_dummy_result) -00000859: frame_dummy_result :: out u32 = low:32[R0] - -00000396: -00000398: call @register_tm_clones with noreturn - -00000844: sub free(free_ptr) -0000085a: free_ptr :: in out u64 = R0 - -00000525: -00000708: R16 := 0x10000 -0000070f: R17 := mem[R16 + 0xFC0, el]:u64 -00000715: R16 := R16 + 0xFC0 -0000071a: call R17 with noreturn - -00000845: sub main(main_argc, main_argv, main_result) -0000085b: main_argc :: in u32 = low:32[R0] -0000085c: main_argv :: in out u64 = R1 -0000085d: main_result :: out u32 = low:32[R0] - -0000039a: -0000039e: #4 := R31 - 0x40 -000003a4: mem := mem with [#4, el]:u64 <- R29 -000003aa: mem := mem with [#4 + 8, el]:u64 <- R30 -000003ae: R31 := #4 -000003b4: R29 := R31 -000003b9: R0 := 1 -000003be: R30 := 0x824 -000003c1: call @malloc with return %000003c3 - -000003c3: -000003c9: mem := mem with [R31 + 0x28, el]:u64 <- R0 -000003ce: R0 := 0xB -000003d6: mem := mem with [R31 + 0x1C, el]:u32 <- 31:0[R0] -000003db: R0 := 4 -000003e0: R30 := 0x838 -000003e2: call @malloc with return %000003e4 - -000003e4: -000003ea: mem := mem with [R31 + 0x30, el]:u64 <- R0 -000003ef: R0 := 0xA -000003f7: mem := mem with [R31 + 0x20, el]:u32 <- 31:0[R0] -000003fc: R0 := 4 -00000401: R30 := 0x84C -00000403: call @malloc with return %00000405 - -00000405: -0000040b: mem := mem with [R31 + 0x38, el]:u64 <- R0 -00000410: R0 := 9 -00000418: mem := mem with [R31 + 0x24, el]:u32 <- 31:0[R0] -0000041f: R0 := mem[R31 + 0x28, el]:u64 -00000424: R1 := 0x41 -0000042c: mem := mem with [R0] <- 7:0[R1] -00000433: R0 := mem[R31 + 0x30, el]:u64 -00000438: R1 := 0x2A -00000440: mem := mem with [R0, el]:u32 <- 31:0[R1] -00000447: R0 := mem[R31 + 0x28, el]:u64 -0000044c: R30 := 0x878 -0000044f: call @printCharValue with return %000004db - -000004db: -000004e0: R0 := mem[R31 + 0x30, el]:u64 -000004e7: R0 := pad:64[mem[R0, el]:u32] -000004ed: R1 := pad:64[31:0[R0]] -000004f2: R0 := 0 -000004f8: R0 := R0 + 0x920 -000004fd: R30 := 0x890 -000004ff: call @printf with return %00000501 - -00000501: -00000506: R1 := pad:64[mem[R31 + 0x20, el]:u32] -0000050b: R0 := 0 -00000511: R0 := R0 + 0x930 -00000516: R30 := 0x8A0 -00000518: call @printf with return %0000051a - -0000051a: -0000051f: R0 := mem[R31 + 0x28, el]:u64 -00000524: R30 := 0x8A8 -00000527: call @free with return %00000529 - -00000529: -0000052e: R0 := mem[R31 + 0x30, el]:u64 -00000533: R30 := 0x8B0 -00000535: call @free with return %00000537 - -00000537: -0000053a: R0 := 0 -00000541: R29 := mem[R31, el]:u64 -00000546: R30 := mem[R31 + 8, el]:u64 -0000054a: R31 := R31 + 0x40 -0000054f: call R30 with noreturn - -00000846: sub malloc(malloc_size, malloc_result) -0000085e: malloc_size :: in u64 = R0 -0000085f: malloc_result :: out u64 = R0 - -000003bf: -000006c6: R16 := 0x10000 -000006cd: R17 := mem[R16 + 0xFA8, el]:u64 -000006d3: R16 := R16 + 0xFA8 -000006d8: call R17 with noreturn - -00000847: sub printCharValue(printCharValue_result) -00000860: printCharValue_result :: out u32 = low:32[R0] - -0000044d: -00000454: #5 := R31 - 0x20 -0000045a: mem := mem with [#5, el]:u64 <- R29 -00000460: mem := mem with [#5 + 8, el]:u64 <- R30 -00000464: R31 := #5 -0000046a: R29 := R31 -00000472: mem := mem with [R31 + 0x18, el]:u64 <- R0 -00000479: R0 := mem[R31 + 0x18, el]:u64 -00000480: R0 := pad:64[mem[R0]] -00000486: R0 := pad:64[31:0[R0] + 1] -0000048c: R1 := pad:64[0.7:0[R0]] -00000493: R0 := mem[R31 + 0x18, el]:u64 -0000049b: mem := mem with [R0] <- 7:0[R1] -000004a2: R0 := mem[R31 + 0x18, el]:u64 -000004a9: R0 := pad:64[mem[R0]] -000004af: R1 := pad:64[31:0[R0]] -000004b4: R0 := 0 -000004ba: R0 := R0 + 0x950 -000004bf: R30 := 0x8F8 -000004c2: call @printf with return %000004c4 - -000004c4: -000004cb: R29 := mem[R31, el]:u64 -000004d0: R30 := mem[R31 + 8, el]:u64 -000004d4: R31 := R31 + 0x20 -000004d9: call R30 with noreturn - -00000848: sub printf(printf_format, printf_result) -00000861: printf_format :: in u64 = R0 -00000862: printf_result :: out u32 = low:32[R0] - -000004c0: -0000071e: R16 := 0x10000 -00000725: R17 := mem[R16 + 0xFC8, el]:u64 -0000072b: R16 := R16 + 0xFC8 -00000730: call R17 with noreturn - -00000849: sub register_tm_clones(register_tm_clones_result) -00000863: register_tm_clones_result :: out u32 = low:32[R0] - -00000300: -00000303: R0 := 0x11000 -00000309: R0 := R0 + 0x10 -0000030e: R1 := 0x11000 -00000314: R1 := R1 + 0x10 -0000031b: R1 := R1 + ~R0 + 1 -00000321: R2 := 0.63:63[R1] -00000328: R1 := R2 + (R1 ~>> 3) -0000032e: R1 := extend:64[63:1[R1]] -00000334: when R1 = 0 goto %00000332 -0000084a: goto %0000058c - -0000058c: -0000058f: R2 := 0x10000 -00000596: R2 := mem[R2 + 0xFF8, el]:u64 -0000059b: when R2 = 0 goto %00000332 -0000084b: goto %0000059f - -00000332: -0000033a: call R30 with noreturn - -0000059f: -000005a3: R16 := R2 -000005a8: call R16 with noreturn diff --git a/src/test/correct/malloc_with_local3/gcc/malloc_with_local3.expected b/src/test/correct/malloc_with_local3/gcc/malloc_with_local3.expected index af38a0b1e..4c9e4bc09 100644 --- a/src/test/correct/malloc_with_local3/gcc/malloc_with_local3.expected +++ b/src/test/correct/malloc_with_local3/gcc/malloc_with_local3.expected @@ -2,7 +2,10 @@ var {:extern} Gamma_R0: bool; var {:extern} Gamma_R1: bool; var {:extern} Gamma_R16: bool; var {:extern} Gamma_R17: bool; +var {:extern} Gamma_R19: bool; +var {:extern} Gamma_R2: bool; var {:extern} Gamma_R29: bool; +var {:extern} Gamma_R3: bool; var {:extern} Gamma_R30: bool; var {:extern} Gamma_R31: bool; var {:extern} Gamma_mem: [bv64]bool; @@ -11,23 +14,22 @@ var {:extern} R0: bv64; var {:extern} R1: bv64; var {:extern} R16: bv64; var {:extern} R17: bv64; +var {:extern} R19: bv64; +var {:extern} R2: bv64; var {:extern} R29: bv64; +var {:extern} R3: bv64; var {:extern} R30: bv64; var {:extern} R31: bv64; var {:extern} mem: [bv64]bv8; var {:extern} stack: [bv64]bv8; const {:extern} $_IO_stdin_used_addr: bv64; -axiom ($_IO_stdin_used_addr == 2328bv64); +axiom ($_IO_stdin_used_addr == 4196680bv64); function {:extern} L(mem$in: [bv64]bv8, index: bv64) returns (bool) { false } function {:extern} {:bvbuiltin "bvadd"} bvadd32(bv32, bv32) returns (bv32); function {:extern} {:bvbuiltin "bvadd"} bvadd64(bv64, bv64) returns (bv64); -function {:extern} gamma_load32(gammaMap: [bv64]bool, index: bv64) returns (bool) { - (gammaMap[bvadd64(index, 3bv64)] && (gammaMap[bvadd64(index, 2bv64)] && (gammaMap[bvadd64(index, 1bv64)] && gammaMap[index]))) -} - function {:extern} gamma_load64(gammaMap: [bv64]bool, index: bv64) returns (bool) { (gammaMap[bvadd64(index, 7bv64)] && (gammaMap[bvadd64(index, 6bv64)] && (gammaMap[bvadd64(index, 5bv64)] && (gammaMap[bvadd64(index, 4bv64)] && (gammaMap[bvadd64(index, 3bv64)] && (gammaMap[bvadd64(index, 2bv64)] && (gammaMap[bvadd64(index, 1bv64)] && gammaMap[index]))))))) } @@ -36,10 +38,6 @@ function {:extern} gamma_load8(gammaMap: [bv64]bool, index: bv64) returns (bool) gammaMap[index] } -function {:extern} gamma_store32(gammaMap: [bv64]bool, index: bv64, value: bool) returns ([bv64]bool) { - gammaMap[index := value][bvadd64(index, 1bv64) := value][bvadd64(index, 2bv64) := value][bvadd64(index, 3bv64) := value] -} - function {:extern} gamma_store64(gammaMap: [bv64]bool, index: bv64, value: bool) returns ([bv64]bool) { gammaMap[index := value][bvadd64(index, 1bv64) := value][bvadd64(index, 2bv64) := value][bvadd64(index, 3bv64) := value][bvadd64(index, 4bv64) := value][bvadd64(index, 5bv64) := value][bvadd64(index, 6bv64) := value][bvadd64(index, 7bv64) := value] } @@ -48,10 +46,6 @@ function {:extern} gamma_store8(gammaMap: [bv64]bool, index: bv64, value: bool) gammaMap[index := value] } -function {:extern} memory_load32_le(memory: [bv64]bv8, index: bv64) returns (bv32) { - (memory[bvadd64(index, 3bv64)] ++ (memory[bvadd64(index, 2bv64)] ++ (memory[bvadd64(index, 1bv64)] ++ memory[index]))) -} - function {:extern} memory_load64_le(memory: [bv64]bv8, index: bv64) returns (bv64) { (memory[bvadd64(index, 7bv64)] ++ (memory[bvadd64(index, 6bv64)] ++ (memory[bvadd64(index, 5bv64)] ++ (memory[bvadd64(index, 4bv64)] ++ (memory[bvadd64(index, 3bv64)] ++ (memory[bvadd64(index, 2bv64)] ++ (memory[bvadd64(index, 1bv64)] ++ memory[index]))))))) } @@ -60,10 +54,6 @@ function {:extern} memory_load8_le(memory: [bv64]bv8, index: bv64) returns (bv8) memory[index] } -function {:extern} memory_store32_le(memory: [bv64]bv8, index: bv64, value: bv32) returns ([bv64]bv8) { - memory[index := value[8:0]][bvadd64(index, 1bv64) := value[16:8]][bvadd64(index, 2bv64) := value[24:16]][bvadd64(index, 3bv64) := value[32:24]] -} - function {:extern} memory_store64_le(memory: [bv64]bv8, index: bv64, value: bv64) returns ([bv64]bv8) { memory[index := value[8:0]][bvadd64(index, 1bv64) := value[16:8]][bvadd64(index, 2bv64) := value[24:16]][bvadd64(index, 3bv64) := value[32:24]][bvadd64(index, 4bv64) := value[40:32]][bvadd64(index, 5bv64) := value[48:40]][bvadd64(index, 6bv64) := value[56:48]][bvadd64(index, 7bv64) := value[64:56]] } @@ -78,26 +68,18 @@ procedure {:extern} rely(); modifies Gamma_mem, mem; ensures (Gamma_mem == old(Gamma_mem)); ensures (mem == old(mem)); - free ensures (memory_load64_le(mem, 2328bv64) == 131073bv64); - free ensures (memory_load64_le(mem, 2336bv64) == 2338615504306268244bv64); - free ensures (memory_load64_le(mem, 2344bv64) == 2924860384375657bv64); - free ensures (memory_load64_le(mem, 2352bv64) == 7017575154564032596bv64); - free ensures (memory_load64_le(mem, 2360bv64) == 7089063228440191084bv64); - free ensures (memory_load64_le(mem, 2368bv64) == 2675202446017455468bv64); - free ensures (memory_load64_le(mem, 2376bv64) == 2660bv64); - free ensures (memory_load64_le(mem, 2384bv64) == 8241983568019286100bv64); - free ensures (memory_load64_le(mem, 2392bv64) == 7575166128241079840bv64); - free ensures (memory_load8_le(mem, 2400bv64) == 115bv8); - free ensures (memory_load8_le(mem, 2401bv64) == 58bv8); - free ensures (memory_load8_le(mem, 2402bv64) == 32bv8); - free ensures (memory_load8_le(mem, 2403bv64) == 37bv8); - free ensures (memory_load8_le(mem, 2404bv64) == 99bv8); - free ensures (memory_load8_le(mem, 2405bv64) == 10bv8); - free ensures (memory_load8_le(mem, 2406bv64) == 0bv8); - free ensures (memory_load64_le(mem, 68992bv64) == 2064bv64); - free ensures (memory_load64_le(mem, 69000bv64) == 1984bv64); - free ensures (memory_load64_le(mem, 69616bv64) == 2068bv64); - free ensures (memory_load64_le(mem, 69640bv64) == 69640bv64); + free ensures (memory_load64_le(mem, 4196680bv64) == 131073bv64); + free ensures (memory_load64_le(mem, 4196688bv64) == 8241983568019286100bv64); + free ensures (memory_load64_le(mem, 4196696bv64) == 7575166128241079840bv64); + free ensures (memory_load64_le(mem, 4196704bv64) == 11420940909171bv64); + free ensures (memory_load64_le(mem, 4196712bv64) == 2338615504306268244bv64); + free ensures (memory_load64_le(mem, 4196720bv64) == 2924860384375657bv64); + free ensures (memory_load64_le(mem, 4196728bv64) == 7017575154564032596bv64); + free ensures (memory_load64_le(mem, 4196736bv64) == 7089063228440191084bv64); + free ensures (memory_load64_le(mem, 4196744bv64) == 2675202446017455468bv64); + free ensures (memory_load8_le(mem, 4196752bv64) == 100bv8); + free ensures (memory_load8_le(mem, 4196753bv64) == 10bv8); + free ensures (memory_load8_le(mem, 4196754bv64) == 0bv8); procedure {:extern} rely_transitive(); modifies Gamma_mem, mem; @@ -115,429 +97,245 @@ procedure {:extern} rely_reflexive(); procedure {:extern} guarantee_reflexive(); modifies Gamma_mem, mem; -procedure #free_1712(); +procedure __printf_chk(); modifies Gamma_R16, Gamma_R17, R16, R17; - free requires (memory_load64_le(mem, 2328bv64) == 131073bv64); - free requires (memory_load64_le(mem, 2336bv64) == 2338615504306268244bv64); - free requires (memory_load64_le(mem, 2344bv64) == 2924860384375657bv64); - free requires (memory_load64_le(mem, 2352bv64) == 7017575154564032596bv64); - free requires (memory_load64_le(mem, 2360bv64) == 7089063228440191084bv64); - free requires (memory_load64_le(mem, 2368bv64) == 2675202446017455468bv64); - free requires (memory_load64_le(mem, 2376bv64) == 2660bv64); - free requires (memory_load64_le(mem, 2384bv64) == 8241983568019286100bv64); - free requires (memory_load64_le(mem, 2392bv64) == 7575166128241079840bv64); - free requires (memory_load8_le(mem, 2400bv64) == 115bv8); - free requires (memory_load8_le(mem, 2401bv64) == 58bv8); - free requires (memory_load8_le(mem, 2402bv64) == 32bv8); - free requires (memory_load8_le(mem, 2403bv64) == 37bv8); - free requires (memory_load8_le(mem, 2404bv64) == 99bv8); - free requires (memory_load8_le(mem, 2405bv64) == 10bv8); - free requires (memory_load8_le(mem, 2406bv64) == 0bv8); - free requires (memory_load64_le(mem, 68992bv64) == 2064bv64); - free requires (memory_load64_le(mem, 69000bv64) == 1984bv64); - free requires (memory_load64_le(mem, 69616bv64) == 2068bv64); - free requires (memory_load64_le(mem, 69640bv64) == 69640bv64); - free ensures (memory_load64_le(mem, 2328bv64) == 131073bv64); - free ensures (memory_load64_le(mem, 2336bv64) == 2338615504306268244bv64); - free ensures (memory_load64_le(mem, 2344bv64) == 2924860384375657bv64); - free ensures (memory_load64_le(mem, 2352bv64) == 7017575154564032596bv64); - free ensures (memory_load64_le(mem, 2360bv64) == 7089063228440191084bv64); - free ensures (memory_load64_le(mem, 2368bv64) == 2675202446017455468bv64); - free ensures (memory_load64_le(mem, 2376bv64) == 2660bv64); - free ensures (memory_load64_le(mem, 2384bv64) == 8241983568019286100bv64); - free ensures (memory_load64_le(mem, 2392bv64) == 7575166128241079840bv64); - free ensures (memory_load8_le(mem, 2400bv64) == 115bv8); - free ensures (memory_load8_le(mem, 2401bv64) == 58bv8); - free ensures (memory_load8_le(mem, 2402bv64) == 32bv8); - free ensures (memory_load8_le(mem, 2403bv64) == 37bv8); - free ensures (memory_load8_le(mem, 2404bv64) == 99bv8); - free ensures (memory_load8_le(mem, 2405bv64) == 10bv8); - free ensures (memory_load8_le(mem, 2406bv64) == 0bv8); - free ensures (memory_load64_le(mem, 68992bv64) == 2064bv64); - free ensures (memory_load64_le(mem, 69000bv64) == 1984bv64); - free ensures (memory_load64_le(mem, 69616bv64) == 2068bv64); - free ensures (memory_load64_le(mem, 69640bv64) == 69640bv64); + free requires (memory_load64_le(mem, 4196680bv64) == 131073bv64); + free requires (memory_load64_le(mem, 4196688bv64) == 8241983568019286100bv64); + free requires (memory_load64_le(mem, 4196696bv64) == 7575166128241079840bv64); + free requires (memory_load64_le(mem, 4196704bv64) == 11420940909171bv64); + free requires (memory_load64_le(mem, 4196712bv64) == 2338615504306268244bv64); + free requires (memory_load64_le(mem, 4196720bv64) == 2924860384375657bv64); + free requires (memory_load64_le(mem, 4196728bv64) == 7017575154564032596bv64); + free requires (memory_load64_le(mem, 4196736bv64) == 7089063228440191084bv64); + free requires (memory_load64_le(mem, 4196744bv64) == 2675202446017455468bv64); + free requires (memory_load8_le(mem, 4196752bv64) == 100bv8); + free requires (memory_load8_le(mem, 4196753bv64) == 10bv8); + free requires (memory_load8_le(mem, 4196754bv64) == 0bv8); + free ensures (memory_load64_le(mem, 4196680bv64) == 131073bv64); + free ensures (memory_load64_le(mem, 4196688bv64) == 8241983568019286100bv64); + free ensures (memory_load64_le(mem, 4196696bv64) == 7575166128241079840bv64); + free ensures (memory_load64_le(mem, 4196704bv64) == 11420940909171bv64); + free ensures (memory_load64_le(mem, 4196712bv64) == 2338615504306268244bv64); + free ensures (memory_load64_le(mem, 4196720bv64) == 2924860384375657bv64); + free ensures (memory_load64_le(mem, 4196728bv64) == 7017575154564032596bv64); + free ensures (memory_load64_le(mem, 4196736bv64) == 7089063228440191084bv64); + free ensures (memory_load64_le(mem, 4196744bv64) == 2675202446017455468bv64); + free ensures (memory_load8_le(mem, 4196752bv64) == 100bv8); + free ensures (memory_load8_le(mem, 4196753bv64) == 10bv8); + free ensures (memory_load8_le(mem, 4196754bv64) == 0bv8); -procedure main_2068(); - modifies Gamma_R0, Gamma_R1, Gamma_R16, Gamma_R17, Gamma_R29, Gamma_R30, Gamma_R31, Gamma_mem, Gamma_stack, R0, R1, R16, R17, R29, R30, R31, mem, stack; - free requires (memory_load64_le(mem, 69632bv64) == 0bv64); - free requires (memory_load64_le(mem, 69640bv64) == 69640bv64); - free requires (memory_load64_le(mem, 2328bv64) == 131073bv64); - free requires (memory_load64_le(mem, 2336bv64) == 2338615504306268244bv64); - free requires (memory_load64_le(mem, 2344bv64) == 2924860384375657bv64); - free requires (memory_load64_le(mem, 2352bv64) == 7017575154564032596bv64); - free requires (memory_load64_le(mem, 2360bv64) == 7089063228440191084bv64); - free requires (memory_load64_le(mem, 2368bv64) == 2675202446017455468bv64); - free requires (memory_load64_le(mem, 2376bv64) == 2660bv64); - free requires (memory_load64_le(mem, 2384bv64) == 8241983568019286100bv64); - free requires (memory_load64_le(mem, 2392bv64) == 7575166128241079840bv64); - free requires (memory_load8_le(mem, 2400bv64) == 115bv8); - free requires (memory_load8_le(mem, 2401bv64) == 58bv8); - free requires (memory_load8_le(mem, 2402bv64) == 32bv8); - free requires (memory_load8_le(mem, 2403bv64) == 37bv8); - free requires (memory_load8_le(mem, 2404bv64) == 99bv8); - free requires (memory_load8_le(mem, 2405bv64) == 10bv8); - free requires (memory_load8_le(mem, 2406bv64) == 0bv8); - free requires (memory_load64_le(mem, 68992bv64) == 2064bv64); - free requires (memory_load64_le(mem, 69000bv64) == 1984bv64); - free requires (memory_load64_le(mem, 69616bv64) == 2068bv64); - free requires (memory_load64_le(mem, 69640bv64) == 69640bv64); +procedure #free(); + modifies Gamma_R16, Gamma_R17, R16, R17; + free requires (memory_load64_le(mem, 4196680bv64) == 131073bv64); + free requires (memory_load64_le(mem, 4196688bv64) == 8241983568019286100bv64); + free requires (memory_load64_le(mem, 4196696bv64) == 7575166128241079840bv64); + free requires (memory_load64_le(mem, 4196704bv64) == 11420940909171bv64); + free requires (memory_load64_le(mem, 4196712bv64) == 2338615504306268244bv64); + free requires (memory_load64_le(mem, 4196720bv64) == 2924860384375657bv64); + free requires (memory_load64_le(mem, 4196728bv64) == 7017575154564032596bv64); + free requires (memory_load64_le(mem, 4196736bv64) == 7089063228440191084bv64); + free requires (memory_load64_le(mem, 4196744bv64) == 2675202446017455468bv64); + free requires (memory_load8_le(mem, 4196752bv64) == 100bv8); + free requires (memory_load8_le(mem, 4196753bv64) == 10bv8); + free requires (memory_load8_le(mem, 4196754bv64) == 0bv8); + free ensures (memory_load64_le(mem, 4196680bv64) == 131073bv64); + free ensures (memory_load64_le(mem, 4196688bv64) == 8241983568019286100bv64); + free ensures (memory_load64_le(mem, 4196696bv64) == 7575166128241079840bv64); + free ensures (memory_load64_le(mem, 4196704bv64) == 11420940909171bv64); + free ensures (memory_load64_le(mem, 4196712bv64) == 2338615504306268244bv64); + free ensures (memory_load64_le(mem, 4196720bv64) == 2924860384375657bv64); + free ensures (memory_load64_le(mem, 4196728bv64) == 7017575154564032596bv64); + free ensures (memory_load64_le(mem, 4196736bv64) == 7089063228440191084bv64); + free ensures (memory_load64_le(mem, 4196744bv64) == 2675202446017455468bv64); + free ensures (memory_load8_le(mem, 4196752bv64) == 100bv8); + free ensures (memory_load8_le(mem, 4196753bv64) == 10bv8); + free ensures (memory_load8_le(mem, 4196754bv64) == 0bv8); + +procedure main(); + modifies Gamma_R0, Gamma_R1, Gamma_R16, Gamma_R17, Gamma_R19, Gamma_R2, Gamma_R29, Gamma_R3, Gamma_R30, Gamma_R31, Gamma_mem, Gamma_stack, R0, R1, R16, R17, R19, R2, R29, R3, R30, R31, mem, stack; + free requires (memory_load64_le(mem, 4325376bv64) == 0bv64); + free requires (memory_load64_le(mem, 4325384bv64) == 0bv64); + free requires (memory_load64_le(mem, 4196680bv64) == 131073bv64); + free requires (memory_load64_le(mem, 4196688bv64) == 8241983568019286100bv64); + free requires (memory_load64_le(mem, 4196696bv64) == 7575166128241079840bv64); + free requires (memory_load64_le(mem, 4196704bv64) == 11420940909171bv64); + free requires (memory_load64_le(mem, 4196712bv64) == 2338615504306268244bv64); + free requires (memory_load64_le(mem, 4196720bv64) == 2924860384375657bv64); + free requires (memory_load64_le(mem, 4196728bv64) == 7017575154564032596bv64); + free requires (memory_load64_le(mem, 4196736bv64) == 7089063228440191084bv64); + free requires (memory_load64_le(mem, 4196744bv64) == 2675202446017455468bv64); + free requires (memory_load8_le(mem, 4196752bv64) == 100bv8); + free requires (memory_load8_le(mem, 4196753bv64) == 10bv8); + free requires (memory_load8_le(mem, 4196754bv64) == 0bv8); + free ensures (Gamma_R19 == old(Gamma_R19)); free ensures (Gamma_R29 == old(Gamma_R29)); free ensures (Gamma_R31 == old(Gamma_R31)); + free ensures (R19 == old(R19)); free ensures (R29 == old(R29)); free ensures (R31 == old(R31)); - free ensures (memory_load64_le(mem, 2328bv64) == 131073bv64); - free ensures (memory_load64_le(mem, 2336bv64) == 2338615504306268244bv64); - free ensures (memory_load64_le(mem, 2344bv64) == 2924860384375657bv64); - free ensures (memory_load64_le(mem, 2352bv64) == 7017575154564032596bv64); - free ensures (memory_load64_le(mem, 2360bv64) == 7089063228440191084bv64); - free ensures (memory_load64_le(mem, 2368bv64) == 2675202446017455468bv64); - free ensures (memory_load64_le(mem, 2376bv64) == 2660bv64); - free ensures (memory_load64_le(mem, 2384bv64) == 8241983568019286100bv64); - free ensures (memory_load64_le(mem, 2392bv64) == 7575166128241079840bv64); - free ensures (memory_load8_le(mem, 2400bv64) == 115bv8); - free ensures (memory_load8_le(mem, 2401bv64) == 58bv8); - free ensures (memory_load8_le(mem, 2402bv64) == 32bv8); - free ensures (memory_load8_le(mem, 2403bv64) == 37bv8); - free ensures (memory_load8_le(mem, 2404bv64) == 99bv8); - free ensures (memory_load8_le(mem, 2405bv64) == 10bv8); - free ensures (memory_load8_le(mem, 2406bv64) == 0bv8); - free ensures (memory_load64_le(mem, 68992bv64) == 2064bv64); - free ensures (memory_load64_le(mem, 69000bv64) == 1984bv64); - free ensures (memory_load64_le(mem, 69616bv64) == 2068bv64); - free ensures (memory_load64_le(mem, 69640bv64) == 69640bv64); + free ensures (memory_load64_le(mem, 4196680bv64) == 131073bv64); + free ensures (memory_load64_le(mem, 4196688bv64) == 8241983568019286100bv64); + free ensures (memory_load64_le(mem, 4196696bv64) == 7575166128241079840bv64); + free ensures (memory_load64_le(mem, 4196704bv64) == 11420940909171bv64); + free ensures (memory_load64_le(mem, 4196712bv64) == 2338615504306268244bv64); + free ensures (memory_load64_le(mem, 4196720bv64) == 2924860384375657bv64); + free ensures (memory_load64_le(mem, 4196728bv64) == 7017575154564032596bv64); + free ensures (memory_load64_le(mem, 4196736bv64) == 7089063228440191084bv64); + free ensures (memory_load64_le(mem, 4196744bv64) == 2675202446017455468bv64); + free ensures (memory_load8_le(mem, 4196752bv64) == 100bv8); + free ensures (memory_load8_le(mem, 4196753bv64) == 10bv8); + free ensures (memory_load8_le(mem, 4196754bv64) == 0bv8); -implementation main_2068() +implementation main() { - var #4: bv64; - var Gamma_#4: bool; - var Gamma_load19: bool; - var Gamma_load20: bool; - var Gamma_load21: bool; - var Gamma_load22: bool; - var Gamma_load23: bool; - var Gamma_load24: bool; - var Gamma_load25: bool; - var Gamma_load26: bool; - var Gamma_load27: bool; - var Gamma_load28: bool; - var load19: bv64; - var load20: bv64; - var load21: bv64; - var load22: bv64; - var load23: bv32; - var load24: bv32; - var load25: bv64; - var load26: bv64; - var load27: bv64; - var load28: bv64; + var #1: bv64; + var $load$16: bv64; + var $load$17: bv64; + var $load$18: bv64; + var Gamma_#1: bool; + var Gamma_$load$16: bool; + var Gamma_$load$17: bool; + var Gamma_$load$18: bool; lmain: assume {:captureState "lmain"} true; - #4, Gamma_#4 := bvadd64(R31, 18446744073709551552bv64), Gamma_R31; - stack, Gamma_stack := memory_store64_le(stack, #4, R29), gamma_store64(Gamma_stack, #4, Gamma_R29); - assume {:captureState "%000003a4"} true; - stack, Gamma_stack := memory_store64_le(stack, bvadd64(#4, 8bv64), R30), gamma_store64(Gamma_stack, bvadd64(#4, 8bv64), Gamma_R30); - assume {:captureState "%000003aa"} true; - R31, Gamma_R31 := #4, Gamma_#4; - R29, Gamma_R29 := R31, Gamma_R31; + #1, Gamma_#1 := bvadd64(R31, 18446744073709551584bv64), Gamma_R31; + stack, Gamma_stack := memory_store64_le(stack, #1, R29), gamma_store64(Gamma_stack, #1, Gamma_R29); + assume {:captureState "%00000284"} true; + stack, Gamma_stack := memory_store64_le(stack, bvadd64(#1, 8bv64), R30), gamma_store64(Gamma_stack, bvadd64(#1, 8bv64), Gamma_R30); + assume {:captureState "%00000288"} true; + R31, Gamma_R31 := #1, Gamma_#1; R0, Gamma_R0 := 1bv64, true; - R30, Gamma_R30 := 2084bv64, true; - call malloc_1664(); - goto l000003c3; - l000003c3: - assume {:captureState "l000003c3"} true; - stack, Gamma_stack := memory_store64_le(stack, bvadd64(R31, 40bv64), R0), gamma_store64(Gamma_stack, bvadd64(R31, 40bv64), Gamma_R0); - assume {:captureState "%000003c9"} true; - R0, Gamma_R0 := 11bv64, true; - stack, Gamma_stack := memory_store32_le(stack, bvadd64(R31, 28bv64), R0[32:0]), gamma_store32(Gamma_stack, bvadd64(R31, 28bv64), Gamma_R0); - assume {:captureState "%000003d6"} true; - R0, Gamma_R0 := 4bv64, true; - R30, Gamma_R30 := 2104bv64, true; - call malloc_1664(); - goto l000003e4; - l000003e4: - assume {:captureState "l000003e4"} true; - stack, Gamma_stack := memory_store64_le(stack, bvadd64(R31, 48bv64), R0), gamma_store64(Gamma_stack, bvadd64(R31, 48bv64), Gamma_R0); - assume {:captureState "%000003ea"} true; - R0, Gamma_R0 := 10bv64, true; - stack, Gamma_stack := memory_store32_le(stack, bvadd64(R31, 32bv64), R0[32:0]), gamma_store32(Gamma_stack, bvadd64(R31, 32bv64), Gamma_R0); - assume {:captureState "%000003f7"} true; - R0, Gamma_R0 := 4bv64, true; - R30, Gamma_R30 := 2124bv64, true; - call malloc_1664(); - goto l00000405; - l00000405: - assume {:captureState "l00000405"} true; - stack, Gamma_stack := memory_store64_le(stack, bvadd64(R31, 56bv64), R0), gamma_store64(Gamma_stack, bvadd64(R31, 56bv64), Gamma_R0); - assume {:captureState "%0000040b"} true; - R0, Gamma_R0 := 9bv64, true; - stack, Gamma_stack := memory_store32_le(stack, bvadd64(R31, 36bv64), R0[32:0]), gamma_store32(Gamma_stack, bvadd64(R31, 36bv64), Gamma_R0); - assume {:captureState "%00000418"} true; - load19, Gamma_load19 := memory_load64_le(stack, bvadd64(R31, 40bv64)), gamma_load64(Gamma_stack, bvadd64(R31, 40bv64)); - R0, Gamma_R0 := load19, Gamma_load19; + R29, Gamma_R29 := R31, Gamma_R31; + stack, Gamma_stack := memory_store64_le(stack, bvadd64(R31, 16bv64), R19), gamma_store64(Gamma_stack, bvadd64(R31, 16bv64), Gamma_R19); + assume {:captureState "%00000298"} true; + R30, Gamma_R30 := 4196244bv64, true; + call malloc(); + goto l000002a8; + l000002a8: + assume {:captureState "l000002a8"} true; R1, Gamma_R1 := 65bv64, true; call rely(); assert (L(mem, R0) ==> Gamma_R1); mem, Gamma_mem := memory_store8_le(mem, R0, R1[8:0]), gamma_store8(Gamma_mem, R0, Gamma_R1); - assume {:captureState "%0000042c"} true; - load20, Gamma_load20 := memory_load64_le(stack, bvadd64(R31, 48bv64)), gamma_load64(Gamma_stack, bvadd64(R31, 48bv64)); - R0, Gamma_R0 := load20, Gamma_load20; - R1, Gamma_R1 := 42bv64, true; - call rely(); - assert (L(mem, R0) ==> Gamma_R1); - mem, Gamma_mem := memory_store32_le(mem, R0, R1[32:0]), gamma_store32(Gamma_mem, R0, Gamma_R1); - assume {:captureState "%00000440"} true; - load21, Gamma_load21 := memory_load64_le(stack, bvadd64(R31, 40bv64)), gamma_load64(Gamma_stack, bvadd64(R31, 40bv64)); - R0, Gamma_R0 := load21, Gamma_load21; - R30, Gamma_R30 := 2168bv64, true; - call printCharValue_2236(); - goto l000004db; - l000004db: - assume {:captureState "l000004db"} true; - load22, Gamma_load22 := memory_load64_le(stack, bvadd64(R31, 48bv64)), gamma_load64(Gamma_stack, bvadd64(R31, 48bv64)); - R0, Gamma_R0 := load22, Gamma_load22; - call rely(); - load23, Gamma_load23 := memory_load32_le(mem, R0), (gamma_load32(Gamma_mem, R0) || L(mem, R0)); - R0, Gamma_R0 := zero_extend32_32(load23), Gamma_load23; - R1, Gamma_R1 := zero_extend32_32(R0[32:0]), Gamma_R0; - R0, Gamma_R0 := 0bv64, true; - R0, Gamma_R0 := bvadd64(R0, 2336bv64), Gamma_R0; - R30, Gamma_R30 := 2192bv64, true; - call printf_1728(); - goto l00000501; - l00000501: - assume {:captureState "l00000501"} true; - load24, Gamma_load24 := memory_load32_le(stack, bvadd64(R31, 32bv64)), gamma_load32(Gamma_stack, bvadd64(R31, 32bv64)); - R1, Gamma_R1 := zero_extend32_32(load24), Gamma_load24; + assume {:captureState "%000002b0"} true; + R19, Gamma_R19 := R0, Gamma_R0; + R30, Gamma_R30 := 4196260bv64, true; + call printCharValue(); + goto l000002c4; + l000002c4: + assume {:captureState "l000002c4"} true; + R2, Gamma_R2 := 42bv64, true; + R1, Gamma_R1 := 4194304bv64, true; + R0, Gamma_R0 := 2bv64, true; + R1, Gamma_R1 := bvadd64(R1, 2408bv64), Gamma_R1; + R30, Gamma_R30 := 4196280bv64, true; + call __printf_chk(); + goto l000002e0; + l000002e0: + assume {:captureState "l000002e0"} true; + R1, Gamma_R1 := 4194304bv64, true; + R1, Gamma_R1 := bvadd64(R1, 2424bv64), Gamma_R1; + R2, Gamma_R2 := 10bv64, true; + R0, Gamma_R0 := 2bv64, true; + R30, Gamma_R30 := 4196300bv64, true; + call __printf_chk(); + goto l000002fc; + l000002fc: + assume {:captureState "l000002fc"} true; + R0, Gamma_R0 := R19, Gamma_R19; + R30, Gamma_R30 := 4196308bv64, true; + call #free(); + goto l0000030c; + l0000030c: + assume {:captureState "l0000030c"} true; + $load$16, Gamma_$load$16 := memory_load64_le(stack, bvadd64(R31, 16bv64)), gamma_load64(Gamma_stack, bvadd64(R31, 16bv64)); + R19, Gamma_R19 := $load$16, Gamma_$load$16; R0, Gamma_R0 := 0bv64, true; - R0, Gamma_R0 := bvadd64(R0, 2352bv64), Gamma_R0; - R30, Gamma_R30 := 2208bv64, true; - call printf_1728(); - goto l0000051a; - l0000051a: - assume {:captureState "l0000051a"} true; - load25, Gamma_load25 := memory_load64_le(stack, bvadd64(R31, 40bv64)), gamma_load64(Gamma_stack, bvadd64(R31, 40bv64)); - R0, Gamma_R0 := load25, Gamma_load25; - R30, Gamma_R30 := 2216bv64, true; - call #free_1712(); - goto l00000529; - l00000529: - assume {:captureState "l00000529"} true; - load26, Gamma_load26 := memory_load64_le(stack, bvadd64(R31, 48bv64)), gamma_load64(Gamma_stack, bvadd64(R31, 48bv64)); - R0, Gamma_R0 := load26, Gamma_load26; - R30, Gamma_R30 := 2224bv64, true; - call #free_1712(); - goto l00000537; - l00000537: - assume {:captureState "l00000537"} true; - R0, Gamma_R0 := 0bv64, true; - load27, Gamma_load27 := memory_load64_le(stack, R31), gamma_load64(Gamma_stack, R31); - R29, Gamma_R29 := load27, Gamma_load27; - load28, Gamma_load28 := memory_load64_le(stack, bvadd64(R31, 8bv64)), gamma_load64(Gamma_stack, bvadd64(R31, 8bv64)); - R30, Gamma_R30 := load28, Gamma_load28; - R31, Gamma_R31 := bvadd64(R31, 64bv64), Gamma_R31; - goto main_2068_basil_return; - main_2068_basil_return: - assume {:captureState "main_2068_basil_return"} true; + $load$17, Gamma_$load$17 := memory_load64_le(stack, R31), gamma_load64(Gamma_stack, R31); + R29, Gamma_R29 := $load$17, Gamma_$load$17; + $load$18, Gamma_$load$18 := memory_load64_le(stack, bvadd64(R31, 8bv64)), gamma_load64(Gamma_stack, bvadd64(R31, 8bv64)); + R30, Gamma_R30 := $load$18, Gamma_$load$18; + R31, Gamma_R31 := bvadd64(R31, 32bv64), Gamma_R31; + goto main_basil_return; + main_basil_return: + assume {:captureState "main_basil_return"} true; return; } -procedure malloc_1664(); +procedure malloc(); modifies Gamma_R16, Gamma_R17, R16, R17; - free requires (memory_load64_le(mem, 2328bv64) == 131073bv64); - free requires (memory_load64_le(mem, 2336bv64) == 2338615504306268244bv64); - free requires (memory_load64_le(mem, 2344bv64) == 2924860384375657bv64); - free requires (memory_load64_le(mem, 2352bv64) == 7017575154564032596bv64); - free requires (memory_load64_le(mem, 2360bv64) == 7089063228440191084bv64); - free requires (memory_load64_le(mem, 2368bv64) == 2675202446017455468bv64); - free requires (memory_load64_le(mem, 2376bv64) == 2660bv64); - free requires (memory_load64_le(mem, 2384bv64) == 8241983568019286100bv64); - free requires (memory_load64_le(mem, 2392bv64) == 7575166128241079840bv64); - free requires (memory_load8_le(mem, 2400bv64) == 115bv8); - free requires (memory_load8_le(mem, 2401bv64) == 58bv8); - free requires (memory_load8_le(mem, 2402bv64) == 32bv8); - free requires (memory_load8_le(mem, 2403bv64) == 37bv8); - free requires (memory_load8_le(mem, 2404bv64) == 99bv8); - free requires (memory_load8_le(mem, 2405bv64) == 10bv8); - free requires (memory_load8_le(mem, 2406bv64) == 0bv8); - free requires (memory_load64_le(mem, 68992bv64) == 2064bv64); - free requires (memory_load64_le(mem, 69000bv64) == 1984bv64); - free requires (memory_load64_le(mem, 69616bv64) == 2068bv64); - free requires (memory_load64_le(mem, 69640bv64) == 69640bv64); - free ensures (memory_load64_le(mem, 2328bv64) == 131073bv64); - free ensures (memory_load64_le(mem, 2336bv64) == 2338615504306268244bv64); - free ensures (memory_load64_le(mem, 2344bv64) == 2924860384375657bv64); - free ensures (memory_load64_le(mem, 2352bv64) == 7017575154564032596bv64); - free ensures (memory_load64_le(mem, 2360bv64) == 7089063228440191084bv64); - free ensures (memory_load64_le(mem, 2368bv64) == 2675202446017455468bv64); - free ensures (memory_load64_le(mem, 2376bv64) == 2660bv64); - free ensures (memory_load64_le(mem, 2384bv64) == 8241983568019286100bv64); - free ensures (memory_load64_le(mem, 2392bv64) == 7575166128241079840bv64); - free ensures (memory_load8_le(mem, 2400bv64) == 115bv8); - free ensures (memory_load8_le(mem, 2401bv64) == 58bv8); - free ensures (memory_load8_le(mem, 2402bv64) == 32bv8); - free ensures (memory_load8_le(mem, 2403bv64) == 37bv8); - free ensures (memory_load8_le(mem, 2404bv64) == 99bv8); - free ensures (memory_load8_le(mem, 2405bv64) == 10bv8); - free ensures (memory_load8_le(mem, 2406bv64) == 0bv8); - free ensures (memory_load64_le(mem, 68992bv64) == 2064bv64); - free ensures (memory_load64_le(mem, 69000bv64) == 1984bv64); - free ensures (memory_load64_le(mem, 69616bv64) == 2068bv64); - free ensures (memory_load64_le(mem, 69640bv64) == 69640bv64); + free requires (memory_load64_le(mem, 4196680bv64) == 131073bv64); + free requires (memory_load64_le(mem, 4196688bv64) == 8241983568019286100bv64); + free requires (memory_load64_le(mem, 4196696bv64) == 7575166128241079840bv64); + free requires (memory_load64_le(mem, 4196704bv64) == 11420940909171bv64); + free requires (memory_load64_le(mem, 4196712bv64) == 2338615504306268244bv64); + free requires (memory_load64_le(mem, 4196720bv64) == 2924860384375657bv64); + free requires (memory_load64_le(mem, 4196728bv64) == 7017575154564032596bv64); + free requires (memory_load64_le(mem, 4196736bv64) == 7089063228440191084bv64); + free requires (memory_load64_le(mem, 4196744bv64) == 2675202446017455468bv64); + free requires (memory_load8_le(mem, 4196752bv64) == 100bv8); + free requires (memory_load8_le(mem, 4196753bv64) == 10bv8); + free requires (memory_load8_le(mem, 4196754bv64) == 0bv8); + free ensures (memory_load64_le(mem, 4196680bv64) == 131073bv64); + free ensures (memory_load64_le(mem, 4196688bv64) == 8241983568019286100bv64); + free ensures (memory_load64_le(mem, 4196696bv64) == 7575166128241079840bv64); + free ensures (memory_load64_le(mem, 4196704bv64) == 11420940909171bv64); + free ensures (memory_load64_le(mem, 4196712bv64) == 2338615504306268244bv64); + free ensures (memory_load64_le(mem, 4196720bv64) == 2924860384375657bv64); + free ensures (memory_load64_le(mem, 4196728bv64) == 7017575154564032596bv64); + free ensures (memory_load64_le(mem, 4196736bv64) == 7089063228440191084bv64); + free ensures (memory_load64_le(mem, 4196744bv64) == 2675202446017455468bv64); + free ensures (memory_load8_le(mem, 4196752bv64) == 100bv8); + free ensures (memory_load8_le(mem, 4196753bv64) == 10bv8); + free ensures (memory_load8_le(mem, 4196754bv64) == 0bv8); -procedure printCharValue_2236(); - modifies Gamma_R0, Gamma_R1, Gamma_R16, Gamma_R17, Gamma_R29, Gamma_R30, Gamma_R31, Gamma_mem, Gamma_stack, R0, R1, R16, R17, R29, R30, R31, mem, stack; - free requires (memory_load64_le(mem, 2328bv64) == 131073bv64); - free requires (memory_load64_le(mem, 2336bv64) == 2338615504306268244bv64); - free requires (memory_load64_le(mem, 2344bv64) == 2924860384375657bv64); - free requires (memory_load64_le(mem, 2352bv64) == 7017575154564032596bv64); - free requires (memory_load64_le(mem, 2360bv64) == 7089063228440191084bv64); - free requires (memory_load64_le(mem, 2368bv64) == 2675202446017455468bv64); - free requires (memory_load64_le(mem, 2376bv64) == 2660bv64); - free requires (memory_load64_le(mem, 2384bv64) == 8241983568019286100bv64); - free requires (memory_load64_le(mem, 2392bv64) == 7575166128241079840bv64); - free requires (memory_load8_le(mem, 2400bv64) == 115bv8); - free requires (memory_load8_le(mem, 2401bv64) == 58bv8); - free requires (memory_load8_le(mem, 2402bv64) == 32bv8); - free requires (memory_load8_le(mem, 2403bv64) == 37bv8); - free requires (memory_load8_le(mem, 2404bv64) == 99bv8); - free requires (memory_load8_le(mem, 2405bv64) == 10bv8); - free requires (memory_load8_le(mem, 2406bv64) == 0bv8); - free requires (memory_load64_le(mem, 68992bv64) == 2064bv64); - free requires (memory_load64_le(mem, 69000bv64) == 1984bv64); - free requires (memory_load64_le(mem, 69616bv64) == 2068bv64); - free requires (memory_load64_le(mem, 69640bv64) == 69640bv64); - free ensures (Gamma_R29 == old(Gamma_R29)); - free ensures (Gamma_R31 == old(Gamma_R31)); - free ensures (R29 == old(R29)); - free ensures (R31 == old(R31)); - free ensures (memory_load64_le(mem, 2328bv64) == 131073bv64); - free ensures (memory_load64_le(mem, 2336bv64) == 2338615504306268244bv64); - free ensures (memory_load64_le(mem, 2344bv64) == 2924860384375657bv64); - free ensures (memory_load64_le(mem, 2352bv64) == 7017575154564032596bv64); - free ensures (memory_load64_le(mem, 2360bv64) == 7089063228440191084bv64); - free ensures (memory_load64_le(mem, 2368bv64) == 2675202446017455468bv64); - free ensures (memory_load64_le(mem, 2376bv64) == 2660bv64); - free ensures (memory_load64_le(mem, 2384bv64) == 8241983568019286100bv64); - free ensures (memory_load64_le(mem, 2392bv64) == 7575166128241079840bv64); - free ensures (memory_load8_le(mem, 2400bv64) == 115bv8); - free ensures (memory_load8_le(mem, 2401bv64) == 58bv8); - free ensures (memory_load8_le(mem, 2402bv64) == 32bv8); - free ensures (memory_load8_le(mem, 2403bv64) == 37bv8); - free ensures (memory_load8_le(mem, 2404bv64) == 99bv8); - free ensures (memory_load8_le(mem, 2405bv64) == 10bv8); - free ensures (memory_load8_le(mem, 2406bv64) == 0bv8); - free ensures (memory_load64_le(mem, 68992bv64) == 2064bv64); - free ensures (memory_load64_le(mem, 69000bv64) == 1984bv64); - free ensures (memory_load64_le(mem, 69616bv64) == 2068bv64); - free ensures (memory_load64_le(mem, 69640bv64) == 69640bv64); +procedure printCharValue(); + modifies Gamma_R0, Gamma_R1, Gamma_R16, Gamma_R17, Gamma_R2, Gamma_R3, Gamma_mem, R0, R1, R16, R17, R2, R3, mem; + free requires (memory_load64_le(mem, 4196680bv64) == 131073bv64); + free requires (memory_load64_le(mem, 4196688bv64) == 8241983568019286100bv64); + free requires (memory_load64_le(mem, 4196696bv64) == 7575166128241079840bv64); + free requires (memory_load64_le(mem, 4196704bv64) == 11420940909171bv64); + free requires (memory_load64_le(mem, 4196712bv64) == 2338615504306268244bv64); + free requires (memory_load64_le(mem, 4196720bv64) == 2924860384375657bv64); + free requires (memory_load64_le(mem, 4196728bv64) == 7017575154564032596bv64); + free requires (memory_load64_le(mem, 4196736bv64) == 7089063228440191084bv64); + free requires (memory_load64_le(mem, 4196744bv64) == 2675202446017455468bv64); + free requires (memory_load8_le(mem, 4196752bv64) == 100bv8); + free requires (memory_load8_le(mem, 4196753bv64) == 10bv8); + free requires (memory_load8_le(mem, 4196754bv64) == 0bv8); + free ensures (memory_load64_le(mem, 4196680bv64) == 131073bv64); + free ensures (memory_load64_le(mem, 4196688bv64) == 8241983568019286100bv64); + free ensures (memory_load64_le(mem, 4196696bv64) == 7575166128241079840bv64); + free ensures (memory_load64_le(mem, 4196704bv64) == 11420940909171bv64); + free ensures (memory_load64_le(mem, 4196712bv64) == 2338615504306268244bv64); + free ensures (memory_load64_le(mem, 4196720bv64) == 2924860384375657bv64); + free ensures (memory_load64_le(mem, 4196728bv64) == 7017575154564032596bv64); + free ensures (memory_load64_le(mem, 4196736bv64) == 7089063228440191084bv64); + free ensures (memory_load64_le(mem, 4196744bv64) == 2675202446017455468bv64); + free ensures (memory_load8_le(mem, 4196752bv64) == 100bv8); + free ensures (memory_load8_le(mem, 4196753bv64) == 10bv8); + free ensures (memory_load8_le(mem, 4196754bv64) == 0bv8); -implementation printCharValue_2236() +implementation printCharValue() { - var #5: bv64; - var Gamma_#5: bool; - var Gamma_load30: bool; - var Gamma_load31: bool; - var Gamma_load32: bool; - var Gamma_load33: bool; - var Gamma_load34: bool; - var Gamma_load35: bool; - var Gamma_load36: bool; - var load30: bv64; - var load31: bv8; - var load32: bv64; - var load33: bv64; - var load34: bv8; - var load35: bv64; - var load36: bv64; + var $load$20: bv8; + var Gamma_$load$20: bool; lprintCharValue: assume {:captureState "lprintCharValue"} true; - #5, Gamma_#5 := bvadd64(R31, 18446744073709551584bv64), Gamma_R31; - stack, Gamma_stack := memory_store64_le(stack, #5, R29), gamma_store64(Gamma_stack, #5, Gamma_R29); - assume {:captureState "%0000045a"} true; - stack, Gamma_stack := memory_store64_le(stack, bvadd64(#5, 8bv64), R30), gamma_store64(Gamma_stack, bvadd64(#5, 8bv64), Gamma_R30); - assume {:captureState "%00000460"} true; - R31, Gamma_R31 := #5, Gamma_#5; - R29, Gamma_R29 := R31, Gamma_R31; - stack, Gamma_stack := memory_store64_le(stack, bvadd64(R31, 24bv64), R0), gamma_store64(Gamma_stack, bvadd64(R31, 24bv64), Gamma_R0); - assume {:captureState "%00000472"} true; - load30, Gamma_load30 := memory_load64_le(stack, bvadd64(R31, 24bv64)), gamma_load64(Gamma_stack, bvadd64(R31, 24bv64)); - R0, Gamma_R0 := load30, Gamma_load30; + R3, Gamma_R3 := R0, Gamma_R0; + R1, Gamma_R1 := 4194304bv64, true; + R0, Gamma_R0 := 2bv64, true; + R1, Gamma_R1 := bvadd64(R1, 2384bv64), Gamma_R1; call rely(); - load31, Gamma_load31 := memory_load8_le(mem, R0), (gamma_load8(Gamma_mem, R0) || L(mem, R0)); - R0, Gamma_R0 := zero_extend56_8(load31), Gamma_load31; - R0, Gamma_R0 := zero_extend32_32(bvadd32(R0[32:0], 1bv32)), Gamma_R0; - R1, Gamma_R1 := zero_extend32_32((0bv24 ++ R0[8:0])), Gamma_R0; - load32, Gamma_load32 := memory_load64_le(stack, bvadd64(R31, 24bv64)), gamma_load64(Gamma_stack, bvadd64(R31, 24bv64)); - R0, Gamma_R0 := load32, Gamma_load32; + $load$20, Gamma_$load$20 := memory_load8_le(mem, R3), (gamma_load8(Gamma_mem, R3) || L(mem, R3)); + R2, Gamma_R2 := zero_extend56_8($load$20), Gamma_$load$20; + R2, Gamma_R2 := zero_extend32_32(bvadd32(R2[32:0], 1bv32)), Gamma_R2; + R2, Gamma_R2 := zero_extend56_8(R2[8:0]), Gamma_R2; call rely(); - assert (L(mem, R0) ==> Gamma_R1); - mem, Gamma_mem := memory_store8_le(mem, R0, R1[8:0]), gamma_store8(Gamma_mem, R0, Gamma_R1); - assume {:captureState "%0000049b"} true; - load33, Gamma_load33 := memory_load64_le(stack, bvadd64(R31, 24bv64)), gamma_load64(Gamma_stack, bvadd64(R31, 24bv64)); - R0, Gamma_R0 := load33, Gamma_load33; - call rely(); - load34, Gamma_load34 := memory_load8_le(mem, R0), (gamma_load8(Gamma_mem, R0) || L(mem, R0)); - R0, Gamma_R0 := zero_extend56_8(load34), Gamma_load34; - R1, Gamma_R1 := zero_extend32_32(R0[32:0]), Gamma_R0; - R0, Gamma_R0 := 0bv64, true; - R0, Gamma_R0 := bvadd64(R0, 2384bv64), Gamma_R0; - R30, Gamma_R30 := 2296bv64, true; - call printf_1728(); - goto l000004c4; - l000004c4: - assume {:captureState "l000004c4"} true; - load35, Gamma_load35 := memory_load64_le(stack, R31), gamma_load64(Gamma_stack, R31); - R29, Gamma_R29 := load35, Gamma_load35; - load36, Gamma_load36 := memory_load64_le(stack, bvadd64(R31, 8bv64)), gamma_load64(Gamma_stack, bvadd64(R31, 8bv64)); - R30, Gamma_R30 := load36, Gamma_load36; - R31, Gamma_R31 := bvadd64(R31, 32bv64), Gamma_R31; - goto printCharValue_2236_basil_return; - printCharValue_2236_basil_return: - assume {:captureState "printCharValue_2236_basil_return"} true; - return; + assert (L(mem, R3) ==> Gamma_R2); + mem, Gamma_mem := memory_store8_le(mem, R3, R2[8:0]), gamma_store8(Gamma_mem, R3, Gamma_R2); + assume {:captureState "%00000368"} true; + call __printf_chk(); + assume false; } -procedure printf_1728(); - modifies Gamma_R16, Gamma_R17, R16, R17; - free requires (memory_load64_le(mem, 2328bv64) == 131073bv64); - free requires (memory_load64_le(mem, 2336bv64) == 2338615504306268244bv64); - free requires (memory_load64_le(mem, 2344bv64) == 2924860384375657bv64); - free requires (memory_load64_le(mem, 2352bv64) == 7017575154564032596bv64); - free requires (memory_load64_le(mem, 2360bv64) == 7089063228440191084bv64); - free requires (memory_load64_le(mem, 2368bv64) == 2675202446017455468bv64); - free requires (memory_load64_le(mem, 2376bv64) == 2660bv64); - free requires (memory_load64_le(mem, 2384bv64) == 8241983568019286100bv64); - free requires (memory_load64_le(mem, 2392bv64) == 7575166128241079840bv64); - free requires (memory_load8_le(mem, 2400bv64) == 115bv8); - free requires (memory_load8_le(mem, 2401bv64) == 58bv8); - free requires (memory_load8_le(mem, 2402bv64) == 32bv8); - free requires (memory_load8_le(mem, 2403bv64) == 37bv8); - free requires (memory_load8_le(mem, 2404bv64) == 99bv8); - free requires (memory_load8_le(mem, 2405bv64) == 10bv8); - free requires (memory_load8_le(mem, 2406bv64) == 0bv8); - free requires (memory_load64_le(mem, 68992bv64) == 2064bv64); - free requires (memory_load64_le(mem, 69000bv64) == 1984bv64); - free requires (memory_load64_le(mem, 69616bv64) == 2068bv64); - free requires (memory_load64_le(mem, 69640bv64) == 69640bv64); - free ensures (memory_load64_le(mem, 2328bv64) == 131073bv64); - free ensures (memory_load64_le(mem, 2336bv64) == 2338615504306268244bv64); - free ensures (memory_load64_le(mem, 2344bv64) == 2924860384375657bv64); - free ensures (memory_load64_le(mem, 2352bv64) == 7017575154564032596bv64); - free ensures (memory_load64_le(mem, 2360bv64) == 7089063228440191084bv64); - free ensures (memory_load64_le(mem, 2368bv64) == 2675202446017455468bv64); - free ensures (memory_load64_le(mem, 2376bv64) == 2660bv64); - free ensures (memory_load64_le(mem, 2384bv64) == 8241983568019286100bv64); - free ensures (memory_load64_le(mem, 2392bv64) == 7575166128241079840bv64); - free ensures (memory_load8_le(mem, 2400bv64) == 115bv8); - free ensures (memory_load8_le(mem, 2401bv64) == 58bv8); - free ensures (memory_load8_le(mem, 2402bv64) == 32bv8); - free ensures (memory_load8_le(mem, 2403bv64) == 37bv8); - free ensures (memory_load8_le(mem, 2404bv64) == 99bv8); - free ensures (memory_load8_le(mem, 2405bv64) == 10bv8); - free ensures (memory_load8_le(mem, 2406bv64) == 0bv8); - free ensures (memory_load64_le(mem, 68992bv64) == 2064bv64); - free ensures (memory_load64_le(mem, 69000bv64) == 1984bv64); - free ensures (memory_load64_le(mem, 69616bv64) == 2068bv64); - free ensures (memory_load64_le(mem, 69640bv64) == 69640bv64); - diff --git a/src/test/correct/malloc_with_local3/gcc/malloc_with_local3.gts b/src/test/correct/malloc_with_local3/gcc/malloc_with_local3.gts deleted file mode 100644 index b113f81d5..000000000 Binary files a/src/test/correct/malloc_with_local3/gcc/malloc_with_local3.gts and /dev/null differ diff --git a/src/test/correct/malloc_with_local3/gcc/malloc_with_local3.md5sum b/src/test/correct/malloc_with_local3/gcc/malloc_with_local3.md5sum new file mode 100644 index 000000000..b2dd54443 --- /dev/null +++ b/src/test/correct/malloc_with_local3/gcc/malloc_with_local3.md5sum @@ -0,0 +1,5 @@ +aaacddb9eebfb8346d7e7c9e632d52a7 correct/malloc_with_local3/gcc/a.out +40b7d25aed3385621e11e657ddab86eb correct/malloc_with_local3/gcc/malloc_with_local3.adt +93a48b93d2272ca660ae06a33166df05 correct/malloc_with_local3/gcc/malloc_with_local3.bir +534c049bacef690db52f530432a94858 correct/malloc_with_local3/gcc/malloc_with_local3.relf +66e55208fbefb879f1a6e7688850121f correct/malloc_with_local3/gcc/malloc_with_local3.gts diff --git a/src/test/correct/malloc_with_local3/gcc/malloc_with_local3.relf b/src/test/correct/malloc_with_local3/gcc/malloc_with_local3.relf deleted file mode 100644 index c69e65924..000000000 --- a/src/test/correct/malloc_with_local3/gcc/malloc_with_local3.relf +++ /dev/null @@ -1,130 +0,0 @@ - -Relocation section '.rela.dyn' at offset 0x4c0 contains 8 entries: - Offset Info Type Symbol's Value Symbol's Name + Addend -0000000000010d80 0000000000000403 R_AARCH64_RELATIVE 810 -0000000000010d88 0000000000000403 R_AARCH64_RELATIVE 7c0 -0000000000010ff0 0000000000000403 R_AARCH64_RELATIVE 814 -0000000000011008 0000000000000403 R_AARCH64_RELATIVE 11008 -0000000000010fd8 0000000400000401 R_AARCH64_GLOB_DAT 0000000000000000 _ITM_deregisterTMCloneTable + 0 -0000000000010fe0 0000000500000401 R_AARCH64_GLOB_DAT 0000000000000000 __cxa_finalize@GLIBC_2.17 + 0 -0000000000010fe8 0000000700000401 R_AARCH64_GLOB_DAT 0000000000000000 __gmon_start__ + 0 -0000000000010ff8 0000000a00000401 R_AARCH64_GLOB_DAT 0000000000000000 _ITM_registerTMCloneTable + 0 - -Relocation section '.rela.plt' at offset 0x580 contains 7 entries: - Offset Info Type Symbol's Value Symbol's Name + Addend -0000000000010f98 0000000300000402 R_AARCH64_JUMP_SLOT 0000000000000000 __libc_start_main@GLIBC_2.34 + 0 -0000000000010fa0 0000000500000402 R_AARCH64_JUMP_SLOT 0000000000000000 __cxa_finalize@GLIBC_2.17 + 0 -0000000000010fa8 0000000600000402 R_AARCH64_JUMP_SLOT 0000000000000000 malloc@GLIBC_2.17 + 0 -0000000000010fb0 0000000700000402 R_AARCH64_JUMP_SLOT 0000000000000000 __gmon_start__ + 0 -0000000000010fb8 0000000800000402 R_AARCH64_JUMP_SLOT 0000000000000000 abort@GLIBC_2.17 + 0 -0000000000010fc0 0000000900000402 R_AARCH64_JUMP_SLOT 0000000000000000 free@GLIBC_2.17 + 0 -0000000000010fc8 0000000b00000402 R_AARCH64_JUMP_SLOT 0000000000000000 printf@GLIBC_2.17 + 0 - -Symbol table '.dynsym' contains 12 entries: - Num: Value Size Type Bind Vis Ndx Name - 0: 0000000000000000 0 NOTYPE LOCAL DEFAULT UND - 1: 0000000000000628 0 SECTION LOCAL DEFAULT 11 .init - 2: 0000000000011000 0 SECTION LOCAL DEFAULT 22 .data - 3: 0000000000000000 0 FUNC GLOBAL DEFAULT UND __libc_start_main@GLIBC_2.34 (2) - 4: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_deregisterTMCloneTable - 5: 0000000000000000 0 FUNC WEAK DEFAULT UND __cxa_finalize@GLIBC_2.17 (3) - 6: 0000000000000000 0 FUNC GLOBAL DEFAULT UND malloc@GLIBC_2.17 (3) - 7: 0000000000000000 0 NOTYPE WEAK DEFAULT UND __gmon_start__ - 8: 0000000000000000 0 FUNC GLOBAL DEFAULT UND abort@GLIBC_2.17 (3) - 9: 0000000000000000 0 FUNC GLOBAL DEFAULT UND free@GLIBC_2.17 (3) - 10: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_registerTMCloneTable - 11: 0000000000000000 0 FUNC GLOBAL DEFAULT UND printf@GLIBC_2.17 (3) - -Symbol table '.symtab' contains 91 entries: - Num: Value Size Type Bind Vis Ndx Name - 0: 0000000000000000 0 NOTYPE LOCAL DEFAULT UND - 1: 0000000000000238 0 SECTION LOCAL DEFAULT 1 .interp - 2: 0000000000000254 0 SECTION LOCAL DEFAULT 2 .note.gnu.build-id - 3: 0000000000000278 0 SECTION LOCAL DEFAULT 3 .note.ABI-tag - 4: 0000000000000298 0 SECTION LOCAL DEFAULT 4 .gnu.hash - 5: 00000000000002b8 0 SECTION LOCAL DEFAULT 5 .dynsym - 6: 00000000000003d8 0 SECTION LOCAL DEFAULT 6 .dynstr - 7: 0000000000000478 0 SECTION LOCAL DEFAULT 7 .gnu.version - 8: 0000000000000490 0 SECTION LOCAL DEFAULT 8 .gnu.version_r - 9: 00000000000004c0 0 SECTION LOCAL DEFAULT 9 .rela.dyn - 10: 0000000000000580 0 SECTION LOCAL DEFAULT 10 .rela.plt - 11: 0000000000000628 0 SECTION LOCAL DEFAULT 11 .init - 12: 0000000000000640 0 SECTION LOCAL DEFAULT 12 .plt - 13: 0000000000000700 0 SECTION LOCAL DEFAULT 13 .text - 14: 0000000000000904 0 SECTION LOCAL DEFAULT 14 .fini - 15: 0000000000000918 0 SECTION LOCAL DEFAULT 15 .rodata - 16: 0000000000000968 0 SECTION LOCAL DEFAULT 16 .eh_frame_hdr - 17: 00000000000009b0 0 SECTION LOCAL DEFAULT 17 .eh_frame - 18: 0000000000010d80 0 SECTION LOCAL DEFAULT 18 .init_array - 19: 0000000000010d88 0 SECTION LOCAL DEFAULT 19 .fini_array - 20: 0000000000010d90 0 SECTION LOCAL DEFAULT 20 .dynamic - 21: 0000000000010f80 0 SECTION LOCAL DEFAULT 21 .got - 22: 0000000000011000 0 SECTION LOCAL DEFAULT 22 .data - 23: 0000000000011010 0 SECTION LOCAL DEFAULT 23 .bss - 24: 0000000000000000 0 SECTION LOCAL DEFAULT 24 .comment - 25: 0000000000000000 0 FILE LOCAL DEFAULT ABS Scrt1.o - 26: 0000000000000278 0 NOTYPE LOCAL DEFAULT 3 $d - 27: 0000000000000278 32 OBJECT LOCAL DEFAULT 3 __abi_tag - 28: 0000000000000700 0 NOTYPE LOCAL DEFAULT 13 $x - 29: 00000000000009c4 0 NOTYPE LOCAL DEFAULT 17 $d - 30: 0000000000000918 0 NOTYPE LOCAL DEFAULT 15 $d - 31: 0000000000000000 0 FILE LOCAL DEFAULT ABS crti.o - 32: 0000000000000734 0 NOTYPE LOCAL DEFAULT 13 $x - 33: 0000000000000734 20 FUNC LOCAL DEFAULT 13 call_weak_fn - 34: 0000000000000628 0 NOTYPE LOCAL DEFAULT 11 $x - 35: 0000000000000904 0 NOTYPE LOCAL DEFAULT 14 $x - 36: 0000000000000000 0 FILE LOCAL DEFAULT ABS crtn.o - 37: 0000000000000638 0 NOTYPE LOCAL DEFAULT 11 $x - 38: 0000000000000910 0 NOTYPE LOCAL DEFAULT 14 $x - 39: 0000000000000000 0 FILE LOCAL DEFAULT ABS crtstuff.c - 40: 0000000000000750 0 NOTYPE LOCAL DEFAULT 13 $x - 41: 0000000000000750 0 FUNC LOCAL DEFAULT 13 deregister_tm_clones - 42: 0000000000000780 0 FUNC LOCAL DEFAULT 13 register_tm_clones - 43: 0000000000011008 0 NOTYPE LOCAL DEFAULT 22 $d - 44: 00000000000007c0 0 FUNC LOCAL DEFAULT 13 __do_global_dtors_aux - 45: 0000000000011010 1 OBJECT LOCAL DEFAULT 23 completed.0 - 46: 0000000000010d88 0 NOTYPE LOCAL DEFAULT 19 $d - 47: 0000000000010d88 0 OBJECT LOCAL DEFAULT 19 __do_global_dtors_aux_fini_array_entry - 48: 0000000000000810 0 FUNC LOCAL DEFAULT 13 frame_dummy - 49: 0000000000010d80 0 NOTYPE LOCAL DEFAULT 18 $d - 50: 0000000000010d80 0 OBJECT LOCAL DEFAULT 18 __frame_dummy_init_array_entry - 51: 00000000000009d8 0 NOTYPE LOCAL DEFAULT 17 $d - 52: 0000000000011010 0 NOTYPE LOCAL DEFAULT 23 $d - 53: 0000000000000000 0 FILE LOCAL DEFAULT ABS malloc_with_local3.c - 54: 0000000000000920 0 NOTYPE LOCAL DEFAULT 15 $d - 55: 0000000000000814 0 NOTYPE LOCAL DEFAULT 13 $x - 56: 0000000000000a38 0 NOTYPE LOCAL DEFAULT 17 $d - 57: 0000000000000000 0 FILE LOCAL DEFAULT ABS crtstuff.c - 58: 0000000000000a78 0 NOTYPE LOCAL DEFAULT 17 $d - 59: 0000000000000a78 0 OBJECT LOCAL DEFAULT 17 __FRAME_END__ - 60: 0000000000000000 0 FILE LOCAL DEFAULT ABS - 61: 0000000000010d90 0 OBJECT LOCAL DEFAULT ABS _DYNAMIC - 62: 0000000000000968 0 NOTYPE LOCAL DEFAULT 16 __GNU_EH_FRAME_HDR - 63: 0000000000010fd0 0 OBJECT LOCAL DEFAULT ABS _GLOBAL_OFFSET_TABLE_ - 64: 0000000000000640 0 NOTYPE LOCAL DEFAULT 12 $x - 65: 0000000000000000 0 FUNC GLOBAL DEFAULT UND __libc_start_main@GLIBC_2.34 - 66: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_deregisterTMCloneTable - 67: 0000000000011000 0 NOTYPE WEAK DEFAULT 22 data_start - 68: 0000000000011010 0 NOTYPE GLOBAL DEFAULT 23 __bss_start__ - 69: 0000000000000000 0 FUNC WEAK DEFAULT UND __cxa_finalize@GLIBC_2.17 - 70: 0000000000011018 0 NOTYPE GLOBAL DEFAULT 23 _bss_end__ - 71: 0000000000011010 0 NOTYPE GLOBAL DEFAULT 22 _edata - 72: 0000000000000904 0 FUNC GLOBAL HIDDEN 14 _fini - 73: 0000000000011018 0 NOTYPE GLOBAL DEFAULT 23 __bss_end__ - 74: 0000000000000000 0 FUNC GLOBAL DEFAULT UND malloc@GLIBC_2.17 - 75: 0000000000011000 0 NOTYPE GLOBAL DEFAULT 22 __data_start - 76: 0000000000000000 0 NOTYPE WEAK DEFAULT UND __gmon_start__ - 77: 00000000000008bc 72 FUNC GLOBAL DEFAULT 13 printCharValue - 78: 0000000000011008 0 OBJECT GLOBAL HIDDEN 22 __dso_handle - 79: 0000000000000000 0 FUNC GLOBAL DEFAULT UND abort@GLIBC_2.17 - 80: 0000000000000918 4 OBJECT GLOBAL DEFAULT 15 _IO_stdin_used - 81: 0000000000011018 0 NOTYPE GLOBAL DEFAULT 23 _end - 82: 0000000000000000 0 FUNC GLOBAL DEFAULT UND free@GLIBC_2.17 - 83: 0000000000000700 52 FUNC GLOBAL DEFAULT 13 _start - 84: 0000000000011018 0 NOTYPE GLOBAL DEFAULT 23 __end__ - 85: 0000000000011010 0 NOTYPE GLOBAL DEFAULT 23 __bss_start - 86: 0000000000000814 168 FUNC GLOBAL DEFAULT 13 main - 87: 0000000000011010 0 OBJECT GLOBAL HIDDEN 22 __TMC_END__ - 88: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_registerTMCloneTable - 89: 0000000000000000 0 FUNC GLOBAL DEFAULT UND printf@GLIBC_2.17 - 90: 0000000000000628 0 FUNC GLOBAL HIDDEN 11 _init diff --git a/src/test/correct/malloc_with_local3/gcc/malloc_with_local3_gtirb.expected b/src/test/correct/malloc_with_local3/gcc/malloc_with_local3_gtirb.expected index 1f2e3397d..3279fe647 100644 --- a/src/test/correct/malloc_with_local3/gcc/malloc_with_local3_gtirb.expected +++ b/src/test/correct/malloc_with_local3/gcc/malloc_with_local3_gtirb.expected @@ -2,7 +2,10 @@ var {:extern} Gamma_R0: bool; var {:extern} Gamma_R1: bool; var {:extern} Gamma_R16: bool; var {:extern} Gamma_R17: bool; +var {:extern} Gamma_R19: bool; +var {:extern} Gamma_R2: bool; var {:extern} Gamma_R29: bool; +var {:extern} Gamma_R3: bool; var {:extern} Gamma_R30: bool; var {:extern} Gamma_R31: bool; var {:extern} Gamma_mem: [bv64]bool; @@ -11,23 +14,22 @@ var {:extern} R0: bv64; var {:extern} R1: bv64; var {:extern} R16: bv64; var {:extern} R17: bv64; +var {:extern} R19: bv64; +var {:extern} R2: bv64; var {:extern} R29: bv64; +var {:extern} R3: bv64; var {:extern} R30: bv64; var {:extern} R31: bv64; var {:extern} mem: [bv64]bv8; var {:extern} stack: [bv64]bv8; const {:extern} $_IO_stdin_used_addr: bv64; -axiom ($_IO_stdin_used_addr == 2328bv64); +axiom ($_IO_stdin_used_addr == 4196680bv64); function {:extern} L(mem$in: [bv64]bv8, index: bv64) returns (bool) { false } function {:extern} {:bvbuiltin "bvadd"} bvadd32(bv32, bv32) returns (bv32); function {:extern} {:bvbuiltin "bvadd"} bvadd64(bv64, bv64) returns (bv64); -function {:extern} gamma_load32(gammaMap: [bv64]bool, index: bv64) returns (bool) { - (gammaMap[bvadd64(index, 3bv64)] && (gammaMap[bvadd64(index, 2bv64)] && (gammaMap[bvadd64(index, 1bv64)] && gammaMap[index]))) -} - function {:extern} gamma_load64(gammaMap: [bv64]bool, index: bv64) returns (bool) { (gammaMap[bvadd64(index, 7bv64)] && (gammaMap[bvadd64(index, 6bv64)] && (gammaMap[bvadd64(index, 5bv64)] && (gammaMap[bvadd64(index, 4bv64)] && (gammaMap[bvadd64(index, 3bv64)] && (gammaMap[bvadd64(index, 2bv64)] && (gammaMap[bvadd64(index, 1bv64)] && gammaMap[index]))))))) } @@ -36,10 +38,6 @@ function {:extern} gamma_load8(gammaMap: [bv64]bool, index: bv64) returns (bool) gammaMap[index] } -function {:extern} gamma_store32(gammaMap: [bv64]bool, index: bv64, value: bool) returns ([bv64]bool) { - gammaMap[index := value][bvadd64(index, 1bv64) := value][bvadd64(index, 2bv64) := value][bvadd64(index, 3bv64) := value] -} - function {:extern} gamma_store64(gammaMap: [bv64]bool, index: bv64, value: bool) returns ([bv64]bool) { gammaMap[index := value][bvadd64(index, 1bv64) := value][bvadd64(index, 2bv64) := value][bvadd64(index, 3bv64) := value][bvadd64(index, 4bv64) := value][bvadd64(index, 5bv64) := value][bvadd64(index, 6bv64) := value][bvadd64(index, 7bv64) := value] } @@ -48,10 +46,6 @@ function {:extern} gamma_store8(gammaMap: [bv64]bool, index: bv64, value: bool) gammaMap[index := value] } -function {:extern} memory_load32_le(memory: [bv64]bv8, index: bv64) returns (bv32) { - (memory[bvadd64(index, 3bv64)] ++ (memory[bvadd64(index, 2bv64)] ++ (memory[bvadd64(index, 1bv64)] ++ memory[index]))) -} - function {:extern} memory_load64_le(memory: [bv64]bv8, index: bv64) returns (bv64) { (memory[bvadd64(index, 7bv64)] ++ (memory[bvadd64(index, 6bv64)] ++ (memory[bvadd64(index, 5bv64)] ++ (memory[bvadd64(index, 4bv64)] ++ (memory[bvadd64(index, 3bv64)] ++ (memory[bvadd64(index, 2bv64)] ++ (memory[bvadd64(index, 1bv64)] ++ memory[index]))))))) } @@ -60,10 +54,6 @@ function {:extern} memory_load8_le(memory: [bv64]bv8, index: bv64) returns (bv8) memory[index] } -function {:extern} memory_store32_le(memory: [bv64]bv8, index: bv64, value: bv32) returns ([bv64]bv8) { - memory[index := value[8:0]][bvadd64(index, 1bv64) := value[16:8]][bvadd64(index, 2bv64) := value[24:16]][bvadd64(index, 3bv64) := value[32:24]] -} - function {:extern} memory_store64_le(memory: [bv64]bv8, index: bv64, value: bv64) returns ([bv64]bv8) { memory[index := value[8:0]][bvadd64(index, 1bv64) := value[16:8]][bvadd64(index, 2bv64) := value[24:16]][bvadd64(index, 3bv64) := value[32:24]][bvadd64(index, 4bv64) := value[40:32]][bvadd64(index, 5bv64) := value[48:40]][bvadd64(index, 6bv64) := value[56:48]][bvadd64(index, 7bv64) := value[64:56]] } @@ -78,26 +68,18 @@ procedure {:extern} rely(); modifies Gamma_mem, mem; ensures (Gamma_mem == old(Gamma_mem)); ensures (mem == old(mem)); - free ensures (memory_load64_le(mem, 2328bv64) == 131073bv64); - free ensures (memory_load64_le(mem, 2336bv64) == 2338615504306268244bv64); - free ensures (memory_load64_le(mem, 2344bv64) == 2924860384375657bv64); - free ensures (memory_load64_le(mem, 2352bv64) == 7017575154564032596bv64); - free ensures (memory_load64_le(mem, 2360bv64) == 7089063228440191084bv64); - free ensures (memory_load64_le(mem, 2368bv64) == 2675202446017455468bv64); - free ensures (memory_load64_le(mem, 2376bv64) == 2660bv64); - free ensures (memory_load64_le(mem, 2384bv64) == 8241983568019286100bv64); - free ensures (memory_load64_le(mem, 2392bv64) == 7575166128241079840bv64); - free ensures (memory_load8_le(mem, 2400bv64) == 115bv8); - free ensures (memory_load8_le(mem, 2401bv64) == 58bv8); - free ensures (memory_load8_le(mem, 2402bv64) == 32bv8); - free ensures (memory_load8_le(mem, 2403bv64) == 37bv8); - free ensures (memory_load8_le(mem, 2404bv64) == 99bv8); - free ensures (memory_load8_le(mem, 2405bv64) == 10bv8); - free ensures (memory_load8_le(mem, 2406bv64) == 0bv8); - free ensures (memory_load64_le(mem, 68992bv64) == 2064bv64); - free ensures (memory_load64_le(mem, 69000bv64) == 1984bv64); - free ensures (memory_load64_le(mem, 69616bv64) == 2068bv64); - free ensures (memory_load64_le(mem, 69640bv64) == 69640bv64); + free ensures (memory_load64_le(mem, 4196680bv64) == 131073bv64); + free ensures (memory_load64_le(mem, 4196688bv64) == 8241983568019286100bv64); + free ensures (memory_load64_le(mem, 4196696bv64) == 7575166128241079840bv64); + free ensures (memory_load64_le(mem, 4196704bv64) == 11420940909171bv64); + free ensures (memory_load64_le(mem, 4196712bv64) == 2338615504306268244bv64); + free ensures (memory_load64_le(mem, 4196720bv64) == 2924860384375657bv64); + free ensures (memory_load64_le(mem, 4196728bv64) == 7017575154564032596bv64); + free ensures (memory_load64_le(mem, 4196736bv64) == 7089063228440191084bv64); + free ensures (memory_load64_le(mem, 4196744bv64) == 2675202446017455468bv64); + free ensures (memory_load8_le(mem, 4196752bv64) == 100bv8); + free ensures (memory_load8_le(mem, 4196753bv64) == 10bv8); + free ensures (memory_load8_le(mem, 4196754bv64) == 0bv8); procedure {:extern} rely_transitive(); modifies Gamma_mem, mem; @@ -115,609 +97,368 @@ procedure {:extern} rely_reflexive(); procedure {:extern} guarantee_reflexive(); modifies Gamma_mem, mem; -procedure FUN_680_1664(); +procedure printCharValue(); + modifies Gamma_R0, Gamma_R1, Gamma_R16, Gamma_R17, Gamma_R2, Gamma_R3, Gamma_mem, R0, R1, R16, R17, R2, R3, mem; + free requires (memory_load64_le(mem, 4196680bv64) == 131073bv64); + free requires (memory_load64_le(mem, 4196688bv64) == 8241983568019286100bv64); + free requires (memory_load64_le(mem, 4196696bv64) == 7575166128241079840bv64); + free requires (memory_load64_le(mem, 4196704bv64) == 11420940909171bv64); + free requires (memory_load64_le(mem, 4196712bv64) == 2338615504306268244bv64); + free requires (memory_load64_le(mem, 4196720bv64) == 2924860384375657bv64); + free requires (memory_load64_le(mem, 4196728bv64) == 7017575154564032596bv64); + free requires (memory_load64_le(mem, 4196736bv64) == 7089063228440191084bv64); + free requires (memory_load64_le(mem, 4196744bv64) == 2675202446017455468bv64); + free requires (memory_load8_le(mem, 4196752bv64) == 100bv8); + free requires (memory_load8_le(mem, 4196753bv64) == 10bv8); + free requires (memory_load8_le(mem, 4196754bv64) == 0bv8); + free ensures (memory_load64_le(mem, 4196680bv64) == 131073bv64); + free ensures (memory_load64_le(mem, 4196688bv64) == 8241983568019286100bv64); + free ensures (memory_load64_le(mem, 4196696bv64) == 7575166128241079840bv64); + free ensures (memory_load64_le(mem, 4196704bv64) == 11420940909171bv64); + free ensures (memory_load64_le(mem, 4196712bv64) == 2338615504306268244bv64); + free ensures (memory_load64_le(mem, 4196720bv64) == 2924860384375657bv64); + free ensures (memory_load64_le(mem, 4196728bv64) == 7017575154564032596bv64); + free ensures (memory_load64_le(mem, 4196736bv64) == 7089063228440191084bv64); + free ensures (memory_load64_le(mem, 4196744bv64) == 2675202446017455468bv64); + free ensures (memory_load8_le(mem, 4196752bv64) == 100bv8); + free ensures (memory_load8_le(mem, 4196753bv64) == 10bv8); + free ensures (memory_load8_le(mem, 4196754bv64) == 0bv8); + +implementation printCharValue() +{ + var $load4: bv8; + var Gamma_$load4: bool; + $printCharValue$__0__$H7LPJaZbQvWx~VL~kBk__Q: + assume {:captureState "$printCharValue$__0__$H7LPJaZbQvWx~VL~kBk__Q"} true; + R3, Gamma_R3 := R0, Gamma_R0; + R1, Gamma_R1 := 4194304bv64, true; + R0, Gamma_R0 := 2bv64, true; + R1, Gamma_R1 := bvadd64(R1, 2384bv64), Gamma_R1; + call rely(); + $load4, Gamma_$load4 := memory_load8_le(mem, R3), (gamma_load8(Gamma_mem, R3) || L(mem, R3)); + R2, Gamma_R2 := zero_extend32_32(zero_extend24_8($load4)), Gamma_$load4; + R2, Gamma_R2 := zero_extend32_32(bvadd32(R2[32:0], 1bv32)), Gamma_R2; + R2, Gamma_R2 := zero_extend32_32(zero_extend24_8(R2[8:0])), Gamma_R2; + call rely(); + assert (L(mem, R3) ==> Gamma_R2); + mem, Gamma_mem := memory_store8_le(mem, R3, R2[8:0]), gamma_store8(Gamma_mem, R3, Gamma_R2); + assume {:captureState "4196652$0"} true; + call FUN_400710(); + assume false; +} + +procedure FUN_400700(); modifies Gamma_R16, Gamma_R17, Gamma_mem, R16, R17, mem; - free requires (memory_load64_le(mem, 2328bv64) == 131073bv64); - free requires (memory_load64_le(mem, 2336bv64) == 2338615504306268244bv64); - free requires (memory_load64_le(mem, 2344bv64) == 2924860384375657bv64); - free requires (memory_load64_le(mem, 2352bv64) == 7017575154564032596bv64); - free requires (memory_load64_le(mem, 2360bv64) == 7089063228440191084bv64); - free requires (memory_load64_le(mem, 2368bv64) == 2675202446017455468bv64); - free requires (memory_load64_le(mem, 2376bv64) == 2660bv64); - free requires (memory_load64_le(mem, 2384bv64) == 8241983568019286100bv64); - free requires (memory_load64_le(mem, 2392bv64) == 7575166128241079840bv64); - free requires (memory_load8_le(mem, 2400bv64) == 115bv8); - free requires (memory_load8_le(mem, 2401bv64) == 58bv8); - free requires (memory_load8_le(mem, 2402bv64) == 32bv8); - free requires (memory_load8_le(mem, 2403bv64) == 37bv8); - free requires (memory_load8_le(mem, 2404bv64) == 99bv8); - free requires (memory_load8_le(mem, 2405bv64) == 10bv8); - free requires (memory_load8_le(mem, 2406bv64) == 0bv8); - free requires (memory_load64_le(mem, 68992bv64) == 2064bv64); - free requires (memory_load64_le(mem, 69000bv64) == 1984bv64); - free requires (memory_load64_le(mem, 69616bv64) == 2068bv64); - free requires (memory_load64_le(mem, 69640bv64) == 69640bv64); - free ensures (memory_load64_le(mem, 2328bv64) == 131073bv64); - free ensures (memory_load64_le(mem, 2336bv64) == 2338615504306268244bv64); - free ensures (memory_load64_le(mem, 2344bv64) == 2924860384375657bv64); - free ensures (memory_load64_le(mem, 2352bv64) == 7017575154564032596bv64); - free ensures (memory_load64_le(mem, 2360bv64) == 7089063228440191084bv64); - free ensures (memory_load64_le(mem, 2368bv64) == 2675202446017455468bv64); - free ensures (memory_load64_le(mem, 2376bv64) == 2660bv64); - free ensures (memory_load64_le(mem, 2384bv64) == 8241983568019286100bv64); - free ensures (memory_load64_le(mem, 2392bv64) == 7575166128241079840bv64); - free ensures (memory_load8_le(mem, 2400bv64) == 115bv8); - free ensures (memory_load8_le(mem, 2401bv64) == 58bv8); - free ensures (memory_load8_le(mem, 2402bv64) == 32bv8); - free ensures (memory_load8_le(mem, 2403bv64) == 37bv8); - free ensures (memory_load8_le(mem, 2404bv64) == 99bv8); - free ensures (memory_load8_le(mem, 2405bv64) == 10bv8); - free ensures (memory_load8_le(mem, 2406bv64) == 0bv8); - free ensures (memory_load64_le(mem, 68992bv64) == 2064bv64); - free ensures (memory_load64_le(mem, 69000bv64) == 1984bv64); - free ensures (memory_load64_le(mem, 69616bv64) == 2068bv64); - free ensures (memory_load64_le(mem, 69640bv64) == 69640bv64); + free requires (memory_load64_le(mem, 4196680bv64) == 131073bv64); + free requires (memory_load64_le(mem, 4196688bv64) == 8241983568019286100bv64); + free requires (memory_load64_le(mem, 4196696bv64) == 7575166128241079840bv64); + free requires (memory_load64_le(mem, 4196704bv64) == 11420940909171bv64); + free requires (memory_load64_le(mem, 4196712bv64) == 2338615504306268244bv64); + free requires (memory_load64_le(mem, 4196720bv64) == 2924860384375657bv64); + free requires (memory_load64_le(mem, 4196728bv64) == 7017575154564032596bv64); + free requires (memory_load64_le(mem, 4196736bv64) == 7089063228440191084bv64); + free requires (memory_load64_le(mem, 4196744bv64) == 2675202446017455468bv64); + free requires (memory_load8_le(mem, 4196752bv64) == 100bv8); + free requires (memory_load8_le(mem, 4196753bv64) == 10bv8); + free requires (memory_load8_le(mem, 4196754bv64) == 0bv8); + free ensures (memory_load64_le(mem, 4196680bv64) == 131073bv64); + free ensures (memory_load64_le(mem, 4196688bv64) == 8241983568019286100bv64); + free ensures (memory_load64_le(mem, 4196696bv64) == 7575166128241079840bv64); + free ensures (memory_load64_le(mem, 4196704bv64) == 11420940909171bv64); + free ensures (memory_load64_le(mem, 4196712bv64) == 2338615504306268244bv64); + free ensures (memory_load64_le(mem, 4196720bv64) == 2924860384375657bv64); + free ensures (memory_load64_le(mem, 4196728bv64) == 7017575154564032596bv64); + free ensures (memory_load64_le(mem, 4196736bv64) == 7089063228440191084bv64); + free ensures (memory_load64_le(mem, 4196744bv64) == 2675202446017455468bv64); + free ensures (memory_load8_le(mem, 4196752bv64) == 100bv8); + free ensures (memory_load8_le(mem, 4196753bv64) == 10bv8); + free ensures (memory_load8_le(mem, 4196754bv64) == 0bv8); -implementation FUN_680_1664() +implementation FUN_400700() { - var Gamma_load4: bool; - var load4: bv64; - FUN_680_1664__0__fmUrfOHbTziivIh1CtAkdg: - assume {:captureState "FUN_680_1664__0__fmUrfOHbTziivIh1CtAkdg"} true; - R16, Gamma_R16 := 65536bv64, true; + var $load5: bv64; + var Gamma_$load5: bool; + $FUN_400700$__0__$fxMAJl44TWOTA8IHVD8V7Q: + assume {:captureState "$FUN_400700$__0__$fxMAJl44TWOTA8IHVD8V7Q"} true; + R16, Gamma_R16 := 4321280bv64, true; call rely(); - load4, Gamma_load4 := memory_load64_le(mem, bvadd64(R16, 4008bv64)), (gamma_load64(Gamma_mem, bvadd64(R16, 4008bv64)) || L(mem, bvadd64(R16, 4008bv64))); - R17, Gamma_R17 := load4, Gamma_load4; - R16, Gamma_R16 := bvadd64(R16, 4008bv64), Gamma_R16; + $load5, Gamma_$load5 := memory_load64_le(mem, bvadd64(R16, 4024bv64)), (gamma_load64(Gamma_mem, bvadd64(R16, 4024bv64)) || L(mem, bvadd64(R16, 4024bv64))); + R17, Gamma_R17 := $load5, Gamma_$load5; + R16, Gamma_R16 := bvadd64(R16, 4024bv64), Gamma_R16; call malloc(); - goto FUN_680_1664_basil_return; - FUN_680_1664_basil_return: - assume {:captureState "FUN_680_1664_basil_return"} true; - return; + assume false; } -procedure printCharValue_2236(); - modifies Gamma_R0, Gamma_R1, Gamma_R16, Gamma_R17, Gamma_R29, Gamma_R30, Gamma_R31, Gamma_mem, Gamma_stack, R0, R1, R16, R17, R29, R30, R31, mem, stack; - free requires (memory_load64_le(mem, 2328bv64) == 131073bv64); - free requires (memory_load64_le(mem, 2336bv64) == 2338615504306268244bv64); - free requires (memory_load64_le(mem, 2344bv64) == 2924860384375657bv64); - free requires (memory_load64_le(mem, 2352bv64) == 7017575154564032596bv64); - free requires (memory_load64_le(mem, 2360bv64) == 7089063228440191084bv64); - free requires (memory_load64_le(mem, 2368bv64) == 2675202446017455468bv64); - free requires (memory_load64_le(mem, 2376bv64) == 2660bv64); - free requires (memory_load64_le(mem, 2384bv64) == 8241983568019286100bv64); - free requires (memory_load64_le(mem, 2392bv64) == 7575166128241079840bv64); - free requires (memory_load8_le(mem, 2400bv64) == 115bv8); - free requires (memory_load8_le(mem, 2401bv64) == 58bv8); - free requires (memory_load8_le(mem, 2402bv64) == 32bv8); - free requires (memory_load8_le(mem, 2403bv64) == 37bv8); - free requires (memory_load8_le(mem, 2404bv64) == 99bv8); - free requires (memory_load8_le(mem, 2405bv64) == 10bv8); - free requires (memory_load8_le(mem, 2406bv64) == 0bv8); - free requires (memory_load64_le(mem, 68992bv64) == 2064bv64); - free requires (memory_load64_le(mem, 69000bv64) == 1984bv64); - free requires (memory_load64_le(mem, 69616bv64) == 2068bv64); - free requires (memory_load64_le(mem, 69640bv64) == 69640bv64); +procedure main(); + modifies Gamma_R0, Gamma_R1, Gamma_R16, Gamma_R17, Gamma_R19, Gamma_R2, Gamma_R29, Gamma_R3, Gamma_R30, Gamma_R31, Gamma_mem, Gamma_stack, R0, R1, R16, R17, R19, R2, R29, R3, R30, R31, mem, stack; + free requires (memory_load64_le(mem, 4325376bv64) == 0bv64); + free requires (memory_load64_le(mem, 4325384bv64) == 0bv64); + free requires (memory_load64_le(mem, 4196680bv64) == 131073bv64); + free requires (memory_load64_le(mem, 4196688bv64) == 8241983568019286100bv64); + free requires (memory_load64_le(mem, 4196696bv64) == 7575166128241079840bv64); + free requires (memory_load64_le(mem, 4196704bv64) == 11420940909171bv64); + free requires (memory_load64_le(mem, 4196712bv64) == 2338615504306268244bv64); + free requires (memory_load64_le(mem, 4196720bv64) == 2924860384375657bv64); + free requires (memory_load64_le(mem, 4196728bv64) == 7017575154564032596bv64); + free requires (memory_load64_le(mem, 4196736bv64) == 7089063228440191084bv64); + free requires (memory_load64_le(mem, 4196744bv64) == 2675202446017455468bv64); + free requires (memory_load8_le(mem, 4196752bv64) == 100bv8); + free requires (memory_load8_le(mem, 4196753bv64) == 10bv8); + free requires (memory_load8_le(mem, 4196754bv64) == 0bv8); + free ensures (Gamma_R19 == old(Gamma_R19)); free ensures (Gamma_R29 == old(Gamma_R29)); free ensures (Gamma_R31 == old(Gamma_R31)); + free ensures (R19 == old(R19)); free ensures (R29 == old(R29)); free ensures (R31 == old(R31)); - free ensures (memory_load64_le(mem, 2328bv64) == 131073bv64); - free ensures (memory_load64_le(mem, 2336bv64) == 2338615504306268244bv64); - free ensures (memory_load64_le(mem, 2344bv64) == 2924860384375657bv64); - free ensures (memory_load64_le(mem, 2352bv64) == 7017575154564032596bv64); - free ensures (memory_load64_le(mem, 2360bv64) == 7089063228440191084bv64); - free ensures (memory_load64_le(mem, 2368bv64) == 2675202446017455468bv64); - free ensures (memory_load64_le(mem, 2376bv64) == 2660bv64); - free ensures (memory_load64_le(mem, 2384bv64) == 8241983568019286100bv64); - free ensures (memory_load64_le(mem, 2392bv64) == 7575166128241079840bv64); - free ensures (memory_load8_le(mem, 2400bv64) == 115bv8); - free ensures (memory_load8_le(mem, 2401bv64) == 58bv8); - free ensures (memory_load8_le(mem, 2402bv64) == 32bv8); - free ensures (memory_load8_le(mem, 2403bv64) == 37bv8); - free ensures (memory_load8_le(mem, 2404bv64) == 99bv8); - free ensures (memory_load8_le(mem, 2405bv64) == 10bv8); - free ensures (memory_load8_le(mem, 2406bv64) == 0bv8); - free ensures (memory_load64_le(mem, 68992bv64) == 2064bv64); - free ensures (memory_load64_le(mem, 69000bv64) == 1984bv64); - free ensures (memory_load64_le(mem, 69616bv64) == 2068bv64); - free ensures (memory_load64_le(mem, 69640bv64) == 69640bv64); + free ensures (memory_load64_le(mem, 4196680bv64) == 131073bv64); + free ensures (memory_load64_le(mem, 4196688bv64) == 8241983568019286100bv64); + free ensures (memory_load64_le(mem, 4196696bv64) == 7575166128241079840bv64); + free ensures (memory_load64_le(mem, 4196704bv64) == 11420940909171bv64); + free ensures (memory_load64_le(mem, 4196712bv64) == 2338615504306268244bv64); + free ensures (memory_load64_le(mem, 4196720bv64) == 2924860384375657bv64); + free ensures (memory_load64_le(mem, 4196728bv64) == 7017575154564032596bv64); + free ensures (memory_load64_le(mem, 4196736bv64) == 7089063228440191084bv64); + free ensures (memory_load64_le(mem, 4196744bv64) == 2675202446017455468bv64); + free ensures (memory_load8_le(mem, 4196752bv64) == 100bv8); + free ensures (memory_load8_le(mem, 4196753bv64) == 10bv8); + free ensures (memory_load8_le(mem, 4196754bv64) == 0bv8); -implementation printCharValue_2236() +implementation main() { - var Cse0__5_1_0: bv64; - var Gamma_Cse0__5_1_0: bool; - var Gamma_load10: bool; - var Gamma_load11: bool; - var Gamma_load5: bool; - var Gamma_load6: bool; - var Gamma_load7: bool; - var Gamma_load8: bool; - var Gamma_load9: bool; - var load10: bv64; - var load11: bv8; - var load5: bv64; - var load6: bv64; - var load7: bv64; - var load8: bv8; - var load9: bv64; - printCharValue_2236__0__jkKHMcI6QseLTh14pX_pkA: - assume {:captureState "printCharValue_2236__0__jkKHMcI6QseLTh14pX_pkA"} true; - Cse0__5_1_0, Gamma_Cse0__5_1_0 := bvadd64(R31, 18446744073709551584bv64), Gamma_R31; - stack, Gamma_stack := memory_store64_le(stack, Cse0__5_1_0, R29), gamma_store64(Gamma_stack, Cse0__5_1_0, Gamma_R29); - assume {:captureState "2236_1"} true; - stack, Gamma_stack := memory_store64_le(stack, bvadd64(Cse0__5_1_0, 8bv64), R30), gamma_store64(Gamma_stack, bvadd64(Cse0__5_1_0, 8bv64), Gamma_R30); - assume {:captureState "2236_2"} true; - R31, Gamma_R31 := Cse0__5_1_0, Gamma_Cse0__5_1_0; + var $load10: bv64; + var $load8: bv64; + var $load9: bv64; + var Cse0__5$5$0: bv64; + var Gamma_$load10: bool; + var Gamma_$load8: bool; + var Gamma_$load9: bool; + var Gamma_Cse0__5$5$0: bool; + $main$__0__$cdQ2GS2~QhaOa7OUvPWMRQ: + assume {:captureState "$main$__0__$cdQ2GS2~QhaOa7OUvPWMRQ"} true; + Cse0__5$5$0, Gamma_Cse0__5$5$0 := bvadd64(R31, 18446744073709551584bv64), Gamma_R31; + stack, Gamma_stack := memory_store64_le(stack, Cse0__5$5$0, R29), gamma_store64(Gamma_stack, Cse0__5$5$0, Gamma_R29); + assume {:captureState "4196224$1"} true; + stack, Gamma_stack := memory_store64_le(stack, bvadd64(Cse0__5$5$0, 8bv64), R30), gamma_store64(Gamma_stack, bvadd64(Cse0__5$5$0, 8bv64), Gamma_R30); + assume {:captureState "4196224$2"} true; + R31, Gamma_R31 := Cse0__5$5$0, Gamma_Cse0__5$5$0; + R0, Gamma_R0 := 1bv64, true; R29, Gamma_R29 := R31, Gamma_R31; - stack, Gamma_stack := memory_store64_le(stack, bvadd64(R31, 24bv64), R0), gamma_store64(Gamma_stack, bvadd64(R31, 24bv64), Gamma_R0); - assume {:captureState "2244_0"} true; - load7, Gamma_load7 := memory_load64_le(stack, bvadd64(R31, 24bv64)), gamma_load64(Gamma_stack, bvadd64(R31, 24bv64)); - R0, Gamma_R0 := load7, Gamma_load7; - call rely(); - load8, Gamma_load8 := memory_load8_le(mem, R0), (gamma_load8(Gamma_mem, R0) || L(mem, R0)); - R0, Gamma_R0 := zero_extend32_32(zero_extend24_8(load8)), Gamma_load8; - R0, Gamma_R0 := zero_extend32_32(bvadd32(R0[32:0], 1bv32)), Gamma_R0; - R1, Gamma_R1 := zero_extend32_32((0bv24 ++ R0[8:0])), Gamma_R0; - load9, Gamma_load9 := memory_load64_le(stack, bvadd64(R31, 24bv64)), gamma_load64(Gamma_stack, bvadd64(R31, 24bv64)); - R0, Gamma_R0 := load9, Gamma_load9; + stack, Gamma_stack := memory_store64_le(stack, bvadd64(R31, 16bv64), R19), gamma_store64(Gamma_stack, bvadd64(R31, 16bv64), Gamma_R19); + assume {:captureState "4196236$0"} true; + R30, Gamma_R30 := 4196244bv64, true; + call FUN_400700(); + goto $main$__1__$rIlbG4jGSTydaFqMhxCKWw; + $main$__1__$rIlbG4jGSTydaFqMhxCKWw: + assume {:captureState "$main$__1__$rIlbG4jGSTydaFqMhxCKWw"} true; + R1, Gamma_R1 := 65bv64, true; call rely(); assert (L(mem, R0) ==> Gamma_R1); mem, Gamma_mem := memory_store8_le(mem, R0, R1[8:0]), gamma_store8(Gamma_mem, R0, Gamma_R1); - assume {:captureState "2268_0"} true; - load10, Gamma_load10 := memory_load64_le(stack, bvadd64(R31, 24bv64)), gamma_load64(Gamma_stack, bvadd64(R31, 24bv64)); - R0, Gamma_R0 := load10, Gamma_load10; - call rely(); - load11, Gamma_load11 := memory_load8_le(mem, R0), (gamma_load8(Gamma_mem, R0) || L(mem, R0)); - R0, Gamma_R0 := zero_extend32_32(zero_extend24_8(load11)), Gamma_load11; - R1, Gamma_R1 := zero_extend32_32(R0[32:0]), Gamma_R0; + assume {:captureState "4196248$0"} true; + R19, Gamma_R19 := R0, Gamma_R0; + R30, Gamma_R30 := 4196240bv64, true; + call printCharValue(); + goto $main$__2__$tXIOhSQ~R1WA_9VL5~6KQQ; + $main$__2__$tXIOhSQ~R1WA_9VL5~6KQQ: + assume {:captureState "$main$__2__$tXIOhSQ~R1WA_9VL5~6KQQ"} true; + R2, Gamma_R2 := 42bv64, true; + R1, Gamma_R1 := 4194304bv64, true; + R0, Gamma_R0 := 2bv64, true; + R1, Gamma_R1 := bvadd64(R1, 2408bv64), Gamma_R1; + R30, Gamma_R30 := 4196244bv64, true; + call FUN_400710(); + goto $main$__3__$oqiqdATZTc6MDOYJqL9Aew; + $main$__3__$oqiqdATZTc6MDOYJqL9Aew: + assume {:captureState "$main$__3__$oqiqdATZTc6MDOYJqL9Aew"} true; + R1, Gamma_R1 := 4194304bv64, true; + R1, Gamma_R1 := bvadd64(R1, 2424bv64), Gamma_R1; + R2, Gamma_R2 := 10bv64, true; + R0, Gamma_R0 := 2bv64, true; + R30, Gamma_R30 := 4196244bv64, true; + call FUN_400710(); + goto $main$__4__$IkNYmV06TxC75h8A4NM3wA; + $main$__4__$IkNYmV06TxC75h8A4NM3wA: + assume {:captureState "$main$__4__$IkNYmV06TxC75h8A4NM3wA"} true; + R0, Gamma_R0 := R19, Gamma_R19; + R30, Gamma_R30 := 4196232bv64, true; + call FUN_400740(); + goto $main$__5__$D9t2gNJrSmyMH3GAVRe3IQ; + $main$__5__$D9t2gNJrSmyMH3GAVRe3IQ: + assume {:captureState "$main$__5__$D9t2gNJrSmyMH3GAVRe3IQ"} true; + $load8, Gamma_$load8 := memory_load64_le(stack, bvadd64(R31, 16bv64)), gamma_load64(Gamma_stack, bvadd64(R31, 16bv64)); + R19, Gamma_R19 := $load8, Gamma_$load8; R0, Gamma_R0 := 0bv64, true; - R0, Gamma_R0 := bvadd64(R0, 2384bv64), Gamma_R0; - R30, Gamma_R30 := 2296bv64, true; - call FUN_6c0_1728(); - goto printCharValue_2236__1__SXzrMILSR1~X131kBRFqew; - printCharValue_2236__1__SXzrMILSR1~X131kBRFqew: - assume {:captureState "printCharValue_2236__1__SXzrMILSR1~X131kBRFqew"} true; - load5, Gamma_load5 := memory_load64_le(stack, R31), gamma_load64(Gamma_stack, R31); - R29, Gamma_R29 := load5, Gamma_load5; - load6, Gamma_load6 := memory_load64_le(stack, bvadd64(R31, 8bv64)), gamma_load64(Gamma_stack, bvadd64(R31, 8bv64)); - R30, Gamma_R30 := load6, Gamma_load6; + $load9, Gamma_$load9 := memory_load64_le(stack, R31), gamma_load64(Gamma_stack, R31); + R29, Gamma_R29 := $load9, Gamma_$load9; + $load10, Gamma_$load10 := memory_load64_le(stack, bvadd64(R31, 8bv64)), gamma_load64(Gamma_stack, bvadd64(R31, 8bv64)); + R30, Gamma_R30 := $load10, Gamma_$load10; R31, Gamma_R31 := bvadd64(R31, 32bv64), Gamma_R31; - goto printCharValue_2236_basil_return; - printCharValue_2236_basil_return: - assume {:captureState "printCharValue_2236_basil_return"} true; + goto main_basil_return; + main_basil_return: + assume {:captureState "main_basil_return"} true; return; } -procedure FUN_6c0_1728(); +procedure FUN_400710(); modifies Gamma_R16, Gamma_R17, Gamma_mem, R16, R17, mem; - free requires (memory_load64_le(mem, 2328bv64) == 131073bv64); - free requires (memory_load64_le(mem, 2336bv64) == 2338615504306268244bv64); - free requires (memory_load64_le(mem, 2344bv64) == 2924860384375657bv64); - free requires (memory_load64_le(mem, 2352bv64) == 7017575154564032596bv64); - free requires (memory_load64_le(mem, 2360bv64) == 7089063228440191084bv64); - free requires (memory_load64_le(mem, 2368bv64) == 2675202446017455468bv64); - free requires (memory_load64_le(mem, 2376bv64) == 2660bv64); - free requires (memory_load64_le(mem, 2384bv64) == 8241983568019286100bv64); - free requires (memory_load64_le(mem, 2392bv64) == 7575166128241079840bv64); - free requires (memory_load8_le(mem, 2400bv64) == 115bv8); - free requires (memory_load8_le(mem, 2401bv64) == 58bv8); - free requires (memory_load8_le(mem, 2402bv64) == 32bv8); - free requires (memory_load8_le(mem, 2403bv64) == 37bv8); - free requires (memory_load8_le(mem, 2404bv64) == 99bv8); - free requires (memory_load8_le(mem, 2405bv64) == 10bv8); - free requires (memory_load8_le(mem, 2406bv64) == 0bv8); - free requires (memory_load64_le(mem, 68992bv64) == 2064bv64); - free requires (memory_load64_le(mem, 69000bv64) == 1984bv64); - free requires (memory_load64_le(mem, 69616bv64) == 2068bv64); - free requires (memory_load64_le(mem, 69640bv64) == 69640bv64); - free ensures (memory_load64_le(mem, 2328bv64) == 131073bv64); - free ensures (memory_load64_le(mem, 2336bv64) == 2338615504306268244bv64); - free ensures (memory_load64_le(mem, 2344bv64) == 2924860384375657bv64); - free ensures (memory_load64_le(mem, 2352bv64) == 7017575154564032596bv64); - free ensures (memory_load64_le(mem, 2360bv64) == 7089063228440191084bv64); - free ensures (memory_load64_le(mem, 2368bv64) == 2675202446017455468bv64); - free ensures (memory_load64_le(mem, 2376bv64) == 2660bv64); - free ensures (memory_load64_le(mem, 2384bv64) == 8241983568019286100bv64); - free ensures (memory_load64_le(mem, 2392bv64) == 7575166128241079840bv64); - free ensures (memory_load8_le(mem, 2400bv64) == 115bv8); - free ensures (memory_load8_le(mem, 2401bv64) == 58bv8); - free ensures (memory_load8_le(mem, 2402bv64) == 32bv8); - free ensures (memory_load8_le(mem, 2403bv64) == 37bv8); - free ensures (memory_load8_le(mem, 2404bv64) == 99bv8); - free ensures (memory_load8_le(mem, 2405bv64) == 10bv8); - free ensures (memory_load8_le(mem, 2406bv64) == 0bv8); - free ensures (memory_load64_le(mem, 68992bv64) == 2064bv64); - free ensures (memory_load64_le(mem, 69000bv64) == 1984bv64); - free ensures (memory_load64_le(mem, 69616bv64) == 2068bv64); - free ensures (memory_load64_le(mem, 69640bv64) == 69640bv64); + free requires (memory_load64_le(mem, 4196680bv64) == 131073bv64); + free requires (memory_load64_le(mem, 4196688bv64) == 8241983568019286100bv64); + free requires (memory_load64_le(mem, 4196696bv64) == 7575166128241079840bv64); + free requires (memory_load64_le(mem, 4196704bv64) == 11420940909171bv64); + free requires (memory_load64_le(mem, 4196712bv64) == 2338615504306268244bv64); + free requires (memory_load64_le(mem, 4196720bv64) == 2924860384375657bv64); + free requires (memory_load64_le(mem, 4196728bv64) == 7017575154564032596bv64); + free requires (memory_load64_le(mem, 4196736bv64) == 7089063228440191084bv64); + free requires (memory_load64_le(mem, 4196744bv64) == 2675202446017455468bv64); + free requires (memory_load8_le(mem, 4196752bv64) == 100bv8); + free requires (memory_load8_le(mem, 4196753bv64) == 10bv8); + free requires (memory_load8_le(mem, 4196754bv64) == 0bv8); + free ensures (memory_load64_le(mem, 4196680bv64) == 131073bv64); + free ensures (memory_load64_le(mem, 4196688bv64) == 8241983568019286100bv64); + free ensures (memory_load64_le(mem, 4196696bv64) == 7575166128241079840bv64); + free ensures (memory_load64_le(mem, 4196704bv64) == 11420940909171bv64); + free ensures (memory_load64_le(mem, 4196712bv64) == 2338615504306268244bv64); + free ensures (memory_load64_le(mem, 4196720bv64) == 2924860384375657bv64); + free ensures (memory_load64_le(mem, 4196728bv64) == 7017575154564032596bv64); + free ensures (memory_load64_le(mem, 4196736bv64) == 7089063228440191084bv64); + free ensures (memory_load64_le(mem, 4196744bv64) == 2675202446017455468bv64); + free ensures (memory_load8_le(mem, 4196752bv64) == 100bv8); + free ensures (memory_load8_le(mem, 4196753bv64) == 10bv8); + free ensures (memory_load8_le(mem, 4196754bv64) == 0bv8); -implementation FUN_6c0_1728() +implementation FUN_400710() { - var Gamma_load12: bool; - var load12: bv64; - FUN_6c0_1728__0__1dgk8kyGRWulXZar~5y0Vg: - assume {:captureState "FUN_6c0_1728__0__1dgk8kyGRWulXZar~5y0Vg"} true; - R16, Gamma_R16 := 65536bv64, true; + var $load15: bv64; + var Gamma_$load15: bool; + $FUN_400710$__0__$yQ1z8A~IRoSs4MRYTbbghg: + assume {:captureState "$FUN_400710$__0__$yQ1z8A~IRoSs4MRYTbbghg"} true; + R16, Gamma_R16 := 4321280bv64, true; call rely(); - load12, Gamma_load12 := memory_load64_le(mem, bvadd64(R16, 4040bv64)), (gamma_load64(Gamma_mem, bvadd64(R16, 4040bv64)) || L(mem, bvadd64(R16, 4040bv64))); - R17, Gamma_R17 := load12, Gamma_load12; - R16, Gamma_R16 := bvadd64(R16, 4040bv64), Gamma_R16; - call printf(); - goto FUN_6c0_1728_basil_return; - FUN_6c0_1728_basil_return: - assume {:captureState "FUN_6c0_1728_basil_return"} true; - return; + $load15, Gamma_$load15 := memory_load64_le(mem, bvadd64(R16, 4032bv64)), (gamma_load64(Gamma_mem, bvadd64(R16, 4032bv64)) || L(mem, bvadd64(R16, 4032bv64))); + R17, Gamma_R17 := $load15, Gamma_$load15; + R16, Gamma_R16 := bvadd64(R16, 4032bv64), Gamma_R16; + call __printf_chk(); + assume false; } -procedure FUN_6b0_1712(); +procedure FUN_400740(); modifies Gamma_R16, Gamma_R17, Gamma_mem, R16, R17, mem; - free requires (memory_load64_le(mem, 2328bv64) == 131073bv64); - free requires (memory_load64_le(mem, 2336bv64) == 2338615504306268244bv64); - free requires (memory_load64_le(mem, 2344bv64) == 2924860384375657bv64); - free requires (memory_load64_le(mem, 2352bv64) == 7017575154564032596bv64); - free requires (memory_load64_le(mem, 2360bv64) == 7089063228440191084bv64); - free requires (memory_load64_le(mem, 2368bv64) == 2675202446017455468bv64); - free requires (memory_load64_le(mem, 2376bv64) == 2660bv64); - free requires (memory_load64_le(mem, 2384bv64) == 8241983568019286100bv64); - free requires (memory_load64_le(mem, 2392bv64) == 7575166128241079840bv64); - free requires (memory_load8_le(mem, 2400bv64) == 115bv8); - free requires (memory_load8_le(mem, 2401bv64) == 58bv8); - free requires (memory_load8_le(mem, 2402bv64) == 32bv8); - free requires (memory_load8_le(mem, 2403bv64) == 37bv8); - free requires (memory_load8_le(mem, 2404bv64) == 99bv8); - free requires (memory_load8_le(mem, 2405bv64) == 10bv8); - free requires (memory_load8_le(mem, 2406bv64) == 0bv8); - free requires (memory_load64_le(mem, 68992bv64) == 2064bv64); - free requires (memory_load64_le(mem, 69000bv64) == 1984bv64); - free requires (memory_load64_le(mem, 69616bv64) == 2068bv64); - free requires (memory_load64_le(mem, 69640bv64) == 69640bv64); - free ensures (memory_load64_le(mem, 2328bv64) == 131073bv64); - free ensures (memory_load64_le(mem, 2336bv64) == 2338615504306268244bv64); - free ensures (memory_load64_le(mem, 2344bv64) == 2924860384375657bv64); - free ensures (memory_load64_le(mem, 2352bv64) == 7017575154564032596bv64); - free ensures (memory_load64_le(mem, 2360bv64) == 7089063228440191084bv64); - free ensures (memory_load64_le(mem, 2368bv64) == 2675202446017455468bv64); - free ensures (memory_load64_le(mem, 2376bv64) == 2660bv64); - free ensures (memory_load64_le(mem, 2384bv64) == 8241983568019286100bv64); - free ensures (memory_load64_le(mem, 2392bv64) == 7575166128241079840bv64); - free ensures (memory_load8_le(mem, 2400bv64) == 115bv8); - free ensures (memory_load8_le(mem, 2401bv64) == 58bv8); - free ensures (memory_load8_le(mem, 2402bv64) == 32bv8); - free ensures (memory_load8_le(mem, 2403bv64) == 37bv8); - free ensures (memory_load8_le(mem, 2404bv64) == 99bv8); - free ensures (memory_load8_le(mem, 2405bv64) == 10bv8); - free ensures (memory_load8_le(mem, 2406bv64) == 0bv8); - free ensures (memory_load64_le(mem, 68992bv64) == 2064bv64); - free ensures (memory_load64_le(mem, 69000bv64) == 1984bv64); - free ensures (memory_load64_le(mem, 69616bv64) == 2068bv64); - free ensures (memory_load64_le(mem, 69640bv64) == 69640bv64); + free requires (memory_load64_le(mem, 4196680bv64) == 131073bv64); + free requires (memory_load64_le(mem, 4196688bv64) == 8241983568019286100bv64); + free requires (memory_load64_le(mem, 4196696bv64) == 7575166128241079840bv64); + free requires (memory_load64_le(mem, 4196704bv64) == 11420940909171bv64); + free requires (memory_load64_le(mem, 4196712bv64) == 2338615504306268244bv64); + free requires (memory_load64_le(mem, 4196720bv64) == 2924860384375657bv64); + free requires (memory_load64_le(mem, 4196728bv64) == 7017575154564032596bv64); + free requires (memory_load64_le(mem, 4196736bv64) == 7089063228440191084bv64); + free requires (memory_load64_le(mem, 4196744bv64) == 2675202446017455468bv64); + free requires (memory_load8_le(mem, 4196752bv64) == 100bv8); + free requires (memory_load8_le(mem, 4196753bv64) == 10bv8); + free requires (memory_load8_le(mem, 4196754bv64) == 0bv8); + free ensures (memory_load64_le(mem, 4196680bv64) == 131073bv64); + free ensures (memory_load64_le(mem, 4196688bv64) == 8241983568019286100bv64); + free ensures (memory_load64_le(mem, 4196696bv64) == 7575166128241079840bv64); + free ensures (memory_load64_le(mem, 4196704bv64) == 11420940909171bv64); + free ensures (memory_load64_le(mem, 4196712bv64) == 2338615504306268244bv64); + free ensures (memory_load64_le(mem, 4196720bv64) == 2924860384375657bv64); + free ensures (memory_load64_le(mem, 4196728bv64) == 7017575154564032596bv64); + free ensures (memory_load64_le(mem, 4196736bv64) == 7089063228440191084bv64); + free ensures (memory_load64_le(mem, 4196744bv64) == 2675202446017455468bv64); + free ensures (memory_load8_le(mem, 4196752bv64) == 100bv8); + free ensures (memory_load8_le(mem, 4196753bv64) == 10bv8); + free ensures (memory_load8_le(mem, 4196754bv64) == 0bv8); -implementation FUN_6b0_1712() +implementation FUN_400740() { - var Gamma_load24: bool; - var load24: bv64; - FUN_6b0_1712__0__ro0bVXILQkORwyd0nThiUA: - assume {:captureState "FUN_6b0_1712__0__ro0bVXILQkORwyd0nThiUA"} true; - R16, Gamma_R16 := 65536bv64, true; + var $load20: bv64; + var Gamma_$load20: bool; + $FUN_400740$__0__$NfWWPq4PTwyv0VapVhBGag: + assume {:captureState "$FUN_400740$__0__$NfWWPq4PTwyv0VapVhBGag"} true; + R16, Gamma_R16 := 4321280bv64, true; call rely(); - load24, Gamma_load24 := memory_load64_le(mem, bvadd64(R16, 4032bv64)), (gamma_load64(Gamma_mem, bvadd64(R16, 4032bv64)) || L(mem, bvadd64(R16, 4032bv64))); - R17, Gamma_R17 := load24, Gamma_load24; - R16, Gamma_R16 := bvadd64(R16, 4032bv64), Gamma_R16; + $load20, Gamma_$load20 := memory_load64_le(mem, bvadd64(R16, 4056bv64)), (gamma_load64(Gamma_mem, bvadd64(R16, 4056bv64)) || L(mem, bvadd64(R16, 4056bv64))); + R17, Gamma_R17 := $load20, Gamma_$load20; + R16, Gamma_R16 := bvadd64(R16, 4056bv64), Gamma_R16; call #free(); - goto FUN_6b0_1712_basil_return; - FUN_6b0_1712_basil_return: - assume {:captureState "FUN_6b0_1712_basil_return"} true; - return; -} - -procedure main_2068(); - modifies Gamma_R0, Gamma_R1, Gamma_R16, Gamma_R17, Gamma_R29, Gamma_R30, Gamma_R31, Gamma_mem, Gamma_stack, R0, R1, R16, R17, R29, R30, R31, mem, stack; - free requires (memory_load64_le(mem, 69632bv64) == 0bv64); - free requires (memory_load64_le(mem, 69640bv64) == 69640bv64); - free requires (memory_load64_le(mem, 2328bv64) == 131073bv64); - free requires (memory_load64_le(mem, 2336bv64) == 2338615504306268244bv64); - free requires (memory_load64_le(mem, 2344bv64) == 2924860384375657bv64); - free requires (memory_load64_le(mem, 2352bv64) == 7017575154564032596bv64); - free requires (memory_load64_le(mem, 2360bv64) == 7089063228440191084bv64); - free requires (memory_load64_le(mem, 2368bv64) == 2675202446017455468bv64); - free requires (memory_load64_le(mem, 2376bv64) == 2660bv64); - free requires (memory_load64_le(mem, 2384bv64) == 8241983568019286100bv64); - free requires (memory_load64_le(mem, 2392bv64) == 7575166128241079840bv64); - free requires (memory_load8_le(mem, 2400bv64) == 115bv8); - free requires (memory_load8_le(mem, 2401bv64) == 58bv8); - free requires (memory_load8_le(mem, 2402bv64) == 32bv8); - free requires (memory_load8_le(mem, 2403bv64) == 37bv8); - free requires (memory_load8_le(mem, 2404bv64) == 99bv8); - free requires (memory_load8_le(mem, 2405bv64) == 10bv8); - free requires (memory_load8_le(mem, 2406bv64) == 0bv8); - free requires (memory_load64_le(mem, 68992bv64) == 2064bv64); - free requires (memory_load64_le(mem, 69000bv64) == 1984bv64); - free requires (memory_load64_le(mem, 69616bv64) == 2068bv64); - free requires (memory_load64_le(mem, 69640bv64) == 69640bv64); - free ensures (Gamma_R29 == old(Gamma_R29)); - free ensures (Gamma_R31 == old(Gamma_R31)); - free ensures (R29 == old(R29)); - free ensures (R31 == old(R31)); - free ensures (memory_load64_le(mem, 2328bv64) == 131073bv64); - free ensures (memory_load64_le(mem, 2336bv64) == 2338615504306268244bv64); - free ensures (memory_load64_le(mem, 2344bv64) == 2924860384375657bv64); - free ensures (memory_load64_le(mem, 2352bv64) == 7017575154564032596bv64); - free ensures (memory_load64_le(mem, 2360bv64) == 7089063228440191084bv64); - free ensures (memory_load64_le(mem, 2368bv64) == 2675202446017455468bv64); - free ensures (memory_load64_le(mem, 2376bv64) == 2660bv64); - free ensures (memory_load64_le(mem, 2384bv64) == 8241983568019286100bv64); - free ensures (memory_load64_le(mem, 2392bv64) == 7575166128241079840bv64); - free ensures (memory_load8_le(mem, 2400bv64) == 115bv8); - free ensures (memory_load8_le(mem, 2401bv64) == 58bv8); - free ensures (memory_load8_le(mem, 2402bv64) == 32bv8); - free ensures (memory_load8_le(mem, 2403bv64) == 37bv8); - free ensures (memory_load8_le(mem, 2404bv64) == 99bv8); - free ensures (memory_load8_le(mem, 2405bv64) == 10bv8); - free ensures (memory_load8_le(mem, 2406bv64) == 0bv8); - free ensures (memory_load64_le(mem, 68992bv64) == 2064bv64); - free ensures (memory_load64_le(mem, 69000bv64) == 1984bv64); - free ensures (memory_load64_le(mem, 69616bv64) == 2068bv64); - free ensures (memory_load64_le(mem, 69640bv64) == 69640bv64); - -implementation main_2068() -{ - var Cse0__5_1_0: bv64; - var Gamma_Cse0__5_1_0: bool; - var Gamma_load25: bool; - var Gamma_load26: bool; - var Gamma_load27: bool; - var Gamma_load28: bool; - var Gamma_load29: bool; - var Gamma_load30: bool; - var Gamma_load31: bool; - var Gamma_load32: bool; - var Gamma_load33: bool; - var Gamma_load34: bool; - var load25: bv64; - var load26: bv64; - var load27: bv64; - var load28: bv64; - var load29: bv64; - var load30: bv64; - var load31: bv64; - var load32: bv64; - var load33: bv32; - var load34: bv32; - main_2068__0__Rrgu9bwQROy_ybbFoniuZw: - assume {:captureState "main_2068__0__Rrgu9bwQROy_ybbFoniuZw"} true; - Cse0__5_1_0, Gamma_Cse0__5_1_0 := bvadd64(R31, 18446744073709551552bv64), Gamma_R31; - stack, Gamma_stack := memory_store64_le(stack, Cse0__5_1_0, R29), gamma_store64(Gamma_stack, Cse0__5_1_0, Gamma_R29); - assume {:captureState "2068_1"} true; - stack, Gamma_stack := memory_store64_le(stack, bvadd64(Cse0__5_1_0, 8bv64), R30), gamma_store64(Gamma_stack, bvadd64(Cse0__5_1_0, 8bv64), Gamma_R30); - assume {:captureState "2068_2"} true; - R31, Gamma_R31 := Cse0__5_1_0, Gamma_Cse0__5_1_0; - R29, Gamma_R29 := R31, Gamma_R31; - R0, Gamma_R0 := 1bv64, true; - R30, Gamma_R30 := 2084bv64, true; - call FUN_680_1664(); - goto main_2068__1__~QYw5PpOTImctI5IIXThPA; - main_2068__1__~QYw5PpOTImctI5IIXThPA: - assume {:captureState "main_2068__1__~QYw5PpOTImctI5IIXThPA"} true; - stack, Gamma_stack := memory_store64_le(stack, bvadd64(R31, 40bv64), R0), gamma_store64(Gamma_stack, bvadd64(R31, 40bv64), Gamma_R0); - assume {:captureState "2084_0"} true; - R0, Gamma_R0 := 11bv64, true; - stack, Gamma_stack := memory_store32_le(stack, bvadd64(R31, 28bv64), R0[32:0]), gamma_store32(Gamma_stack, bvadd64(R31, 28bv64), Gamma_R0); - assume {:captureState "2092_0"} true; - R0, Gamma_R0 := 4bv64, true; - R30, Gamma_R30 := 2104bv64, true; - call FUN_680_1664(); - goto main_2068__2__SxiuTMn9TQuPWr33qVC1ig; - main_2068__2__SxiuTMn9TQuPWr33qVC1ig: - assume {:captureState "main_2068__2__SxiuTMn9TQuPWr33qVC1ig"} true; - stack, Gamma_stack := memory_store64_le(stack, bvadd64(R31, 48bv64), R0), gamma_store64(Gamma_stack, bvadd64(R31, 48bv64), Gamma_R0); - assume {:captureState "2104_0"} true; - R0, Gamma_R0 := 10bv64, true; - stack, Gamma_stack := memory_store32_le(stack, bvadd64(R31, 32bv64), R0[32:0]), gamma_store32(Gamma_stack, bvadd64(R31, 32bv64), Gamma_R0); - assume {:captureState "2112_0"} true; - R0, Gamma_R0 := 4bv64, true; - R30, Gamma_R30 := 2124bv64, true; - call FUN_680_1664(); - goto main_2068__3__fN0A9b3HQhuiC36Xy0_rHA; - main_2068__3__fN0A9b3HQhuiC36Xy0_rHA: - assume {:captureState "main_2068__3__fN0A9b3HQhuiC36Xy0_rHA"} true; - stack, Gamma_stack := memory_store64_le(stack, bvadd64(R31, 56bv64), R0), gamma_store64(Gamma_stack, bvadd64(R31, 56bv64), Gamma_R0); - assume {:captureState "2124_0"} true; - R0, Gamma_R0 := 9bv64, true; - stack, Gamma_stack := memory_store32_le(stack, bvadd64(R31, 36bv64), R0[32:0]), gamma_store32(Gamma_stack, bvadd64(R31, 36bv64), Gamma_R0); - assume {:captureState "2132_0"} true; - load26, Gamma_load26 := memory_load64_le(stack, bvadd64(R31, 40bv64)), gamma_load64(Gamma_stack, bvadd64(R31, 40bv64)); - R0, Gamma_R0 := load26, Gamma_load26; - R1, Gamma_R1 := 65bv64, true; - call rely(); - assert (L(mem, R0) ==> Gamma_R1); - mem, Gamma_mem := memory_store8_le(mem, R0, R1[8:0]), gamma_store8(Gamma_mem, R0, Gamma_R1); - assume {:captureState "2144_0"} true; - load27, Gamma_load27 := memory_load64_le(stack, bvadd64(R31, 48bv64)), gamma_load64(Gamma_stack, bvadd64(R31, 48bv64)); - R0, Gamma_R0 := load27, Gamma_load27; - R1, Gamma_R1 := 42bv64, true; - call rely(); - assert (L(mem, R0) ==> Gamma_R1); - mem, Gamma_mem := memory_store32_le(mem, R0, R1[32:0]), gamma_store32(Gamma_mem, R0, Gamma_R1); - assume {:captureState "2156_0"} true; - load28, Gamma_load28 := memory_load64_le(stack, bvadd64(R31, 40bv64)), gamma_load64(Gamma_stack, bvadd64(R31, 40bv64)); - R0, Gamma_R0 := load28, Gamma_load28; - R30, Gamma_R30 := 2168bv64, true; - call printCharValue_2236(); - goto main_2068__4__BE~PRGMvSjG9MvttQyQE0g; - main_2068__4__BE~PRGMvSjG9MvttQyQE0g: - assume {:captureState "main_2068__4__BE~PRGMvSjG9MvttQyQE0g"} true; - load32, Gamma_load32 := memory_load64_le(stack, bvadd64(R31, 48bv64)), gamma_load64(Gamma_stack, bvadd64(R31, 48bv64)); - R0, Gamma_R0 := load32, Gamma_load32; - call rely(); - load33, Gamma_load33 := memory_load32_le(mem, R0), (gamma_load32(Gamma_mem, R0) || L(mem, R0)); - R0, Gamma_R0 := zero_extend32_32(load33), Gamma_load33; - R1, Gamma_R1 := zero_extend32_32(R0[32:0]), Gamma_R0; - R0, Gamma_R0 := 0bv64, true; - R0, Gamma_R0 := bvadd64(R0, 2336bv64), Gamma_R0; - R30, Gamma_R30 := 2192bv64, true; - call FUN_6c0_1728(); - goto main_2068__5__D4s2Co1KQ~Ky~M5w0gLHPQ; - main_2068__5__D4s2Co1KQ~Ky~M5w0gLHPQ: - assume {:captureState "main_2068__5__D4s2Co1KQ~Ky~M5w0gLHPQ"} true; - load34, Gamma_load34 := memory_load32_le(stack, bvadd64(R31, 32bv64)), gamma_load32(Gamma_stack, bvadd64(R31, 32bv64)); - R1, Gamma_R1 := zero_extend32_32(load34), Gamma_load34; - R0, Gamma_R0 := 0bv64, true; - R0, Gamma_R0 := bvadd64(R0, 2352bv64), Gamma_R0; - R30, Gamma_R30 := 2208bv64, true; - call FUN_6c0_1728(); - goto main_2068__6__p5nsnxjyQKOrSPmPj~5GAQ; - main_2068__6__p5nsnxjyQKOrSPmPj~5GAQ: - assume {:captureState "main_2068__6__p5nsnxjyQKOrSPmPj~5GAQ"} true; - load31, Gamma_load31 := memory_load64_le(stack, bvadd64(R31, 40bv64)), gamma_load64(Gamma_stack, bvadd64(R31, 40bv64)); - R0, Gamma_R0 := load31, Gamma_load31; - R30, Gamma_R30 := 2216bv64, true; - call FUN_6b0_1712(); - goto main_2068__7__bVpViQZjRLKY7mskQ1PnAQ; - main_2068__7__bVpViQZjRLKY7mskQ1PnAQ: - assume {:captureState "main_2068__7__bVpViQZjRLKY7mskQ1PnAQ"} true; - load25, Gamma_load25 := memory_load64_le(stack, bvadd64(R31, 48bv64)), gamma_load64(Gamma_stack, bvadd64(R31, 48bv64)); - R0, Gamma_R0 := load25, Gamma_load25; - R30, Gamma_R30 := 2224bv64, true; - call FUN_6b0_1712(); - goto main_2068__8__ZGCusIYzRSyjeisM9blzeQ; - main_2068__8__ZGCusIYzRSyjeisM9blzeQ: - assume {:captureState "main_2068__8__ZGCusIYzRSyjeisM9blzeQ"} true; - R0, Gamma_R0 := 0bv64, true; - load29, Gamma_load29 := memory_load64_le(stack, R31), gamma_load64(Gamma_stack, R31); - R29, Gamma_R29 := load29, Gamma_load29; - load30, Gamma_load30 := memory_load64_le(stack, bvadd64(R31, 8bv64)), gamma_load64(Gamma_stack, bvadd64(R31, 8bv64)); - R30, Gamma_R30 := load30, Gamma_load30; - R31, Gamma_R31 := bvadd64(R31, 64bv64), Gamma_R31; - goto main_2068_basil_return; - main_2068_basil_return: - assume {:captureState "main_2068_basil_return"} true; - return; + assume false; } procedure malloc(); - free requires (memory_load64_le(mem, 2328bv64) == 131073bv64); - free requires (memory_load64_le(mem, 2336bv64) == 2338615504306268244bv64); - free requires (memory_load64_le(mem, 2344bv64) == 2924860384375657bv64); - free requires (memory_load64_le(mem, 2352bv64) == 7017575154564032596bv64); - free requires (memory_load64_le(mem, 2360bv64) == 7089063228440191084bv64); - free requires (memory_load64_le(mem, 2368bv64) == 2675202446017455468bv64); - free requires (memory_load64_le(mem, 2376bv64) == 2660bv64); - free requires (memory_load64_le(mem, 2384bv64) == 8241983568019286100bv64); - free requires (memory_load64_le(mem, 2392bv64) == 7575166128241079840bv64); - free requires (memory_load8_le(mem, 2400bv64) == 115bv8); - free requires (memory_load8_le(mem, 2401bv64) == 58bv8); - free requires (memory_load8_le(mem, 2402bv64) == 32bv8); - free requires (memory_load8_le(mem, 2403bv64) == 37bv8); - free requires (memory_load8_le(mem, 2404bv64) == 99bv8); - free requires (memory_load8_le(mem, 2405bv64) == 10bv8); - free requires (memory_load8_le(mem, 2406bv64) == 0bv8); - free requires (memory_load64_le(mem, 68992bv64) == 2064bv64); - free requires (memory_load64_le(mem, 69000bv64) == 1984bv64); - free requires (memory_load64_le(mem, 69616bv64) == 2068bv64); - free requires (memory_load64_le(mem, 69640bv64) == 69640bv64); - free ensures (memory_load64_le(mem, 2328bv64) == 131073bv64); - free ensures (memory_load64_le(mem, 2336bv64) == 2338615504306268244bv64); - free ensures (memory_load64_le(mem, 2344bv64) == 2924860384375657bv64); - free ensures (memory_load64_le(mem, 2352bv64) == 7017575154564032596bv64); - free ensures (memory_load64_le(mem, 2360bv64) == 7089063228440191084bv64); - free ensures (memory_load64_le(mem, 2368bv64) == 2675202446017455468bv64); - free ensures (memory_load64_le(mem, 2376bv64) == 2660bv64); - free ensures (memory_load64_le(mem, 2384bv64) == 8241983568019286100bv64); - free ensures (memory_load64_le(mem, 2392bv64) == 7575166128241079840bv64); - free ensures (memory_load8_le(mem, 2400bv64) == 115bv8); - free ensures (memory_load8_le(mem, 2401bv64) == 58bv8); - free ensures (memory_load8_le(mem, 2402bv64) == 32bv8); - free ensures (memory_load8_le(mem, 2403bv64) == 37bv8); - free ensures (memory_load8_le(mem, 2404bv64) == 99bv8); - free ensures (memory_load8_le(mem, 2405bv64) == 10bv8); - free ensures (memory_load8_le(mem, 2406bv64) == 0bv8); - free ensures (memory_load64_le(mem, 68992bv64) == 2064bv64); - free ensures (memory_load64_le(mem, 69000bv64) == 1984bv64); - free ensures (memory_load64_le(mem, 69616bv64) == 2068bv64); - free ensures (memory_load64_le(mem, 69640bv64) == 69640bv64); + free requires (memory_load64_le(mem, 4196680bv64) == 131073bv64); + free requires (memory_load64_le(mem, 4196688bv64) == 8241983568019286100bv64); + free requires (memory_load64_le(mem, 4196696bv64) == 7575166128241079840bv64); + free requires (memory_load64_le(mem, 4196704bv64) == 11420940909171bv64); + free requires (memory_load64_le(mem, 4196712bv64) == 2338615504306268244bv64); + free requires (memory_load64_le(mem, 4196720bv64) == 2924860384375657bv64); + free requires (memory_load64_le(mem, 4196728bv64) == 7017575154564032596bv64); + free requires (memory_load64_le(mem, 4196736bv64) == 7089063228440191084bv64); + free requires (memory_load64_le(mem, 4196744bv64) == 2675202446017455468bv64); + free requires (memory_load8_le(mem, 4196752bv64) == 100bv8); + free requires (memory_load8_le(mem, 4196753bv64) == 10bv8); + free requires (memory_load8_le(mem, 4196754bv64) == 0bv8); + free ensures (memory_load64_le(mem, 4196680bv64) == 131073bv64); + free ensures (memory_load64_le(mem, 4196688bv64) == 8241983568019286100bv64); + free ensures (memory_load64_le(mem, 4196696bv64) == 7575166128241079840bv64); + free ensures (memory_load64_le(mem, 4196704bv64) == 11420940909171bv64); + free ensures (memory_load64_le(mem, 4196712bv64) == 2338615504306268244bv64); + free ensures (memory_load64_le(mem, 4196720bv64) == 2924860384375657bv64); + free ensures (memory_load64_le(mem, 4196728bv64) == 7017575154564032596bv64); + free ensures (memory_load64_le(mem, 4196736bv64) == 7089063228440191084bv64); + free ensures (memory_load64_le(mem, 4196744bv64) == 2675202446017455468bv64); + free ensures (memory_load8_le(mem, 4196752bv64) == 100bv8); + free ensures (memory_load8_le(mem, 4196753bv64) == 10bv8); + free ensures (memory_load8_le(mem, 4196754bv64) == 0bv8); -procedure printf(); - free requires (memory_load64_le(mem, 2328bv64) == 131073bv64); - free requires (memory_load64_le(mem, 2336bv64) == 2338615504306268244bv64); - free requires (memory_load64_le(mem, 2344bv64) == 2924860384375657bv64); - free requires (memory_load64_le(mem, 2352bv64) == 7017575154564032596bv64); - free requires (memory_load64_le(mem, 2360bv64) == 7089063228440191084bv64); - free requires (memory_load64_le(mem, 2368bv64) == 2675202446017455468bv64); - free requires (memory_load64_le(mem, 2376bv64) == 2660bv64); - free requires (memory_load64_le(mem, 2384bv64) == 8241983568019286100bv64); - free requires (memory_load64_le(mem, 2392bv64) == 7575166128241079840bv64); - free requires (memory_load8_le(mem, 2400bv64) == 115bv8); - free requires (memory_load8_le(mem, 2401bv64) == 58bv8); - free requires (memory_load8_le(mem, 2402bv64) == 32bv8); - free requires (memory_load8_le(mem, 2403bv64) == 37bv8); - free requires (memory_load8_le(mem, 2404bv64) == 99bv8); - free requires (memory_load8_le(mem, 2405bv64) == 10bv8); - free requires (memory_load8_le(mem, 2406bv64) == 0bv8); - free requires (memory_load64_le(mem, 68992bv64) == 2064bv64); - free requires (memory_load64_le(mem, 69000bv64) == 1984bv64); - free requires (memory_load64_le(mem, 69616bv64) == 2068bv64); - free requires (memory_load64_le(mem, 69640bv64) == 69640bv64); - free ensures (memory_load64_le(mem, 2328bv64) == 131073bv64); - free ensures (memory_load64_le(mem, 2336bv64) == 2338615504306268244bv64); - free ensures (memory_load64_le(mem, 2344bv64) == 2924860384375657bv64); - free ensures (memory_load64_le(mem, 2352bv64) == 7017575154564032596bv64); - free ensures (memory_load64_le(mem, 2360bv64) == 7089063228440191084bv64); - free ensures (memory_load64_le(mem, 2368bv64) == 2675202446017455468bv64); - free ensures (memory_load64_le(mem, 2376bv64) == 2660bv64); - free ensures (memory_load64_le(mem, 2384bv64) == 8241983568019286100bv64); - free ensures (memory_load64_le(mem, 2392bv64) == 7575166128241079840bv64); - free ensures (memory_load8_le(mem, 2400bv64) == 115bv8); - free ensures (memory_load8_le(mem, 2401bv64) == 58bv8); - free ensures (memory_load8_le(mem, 2402bv64) == 32bv8); - free ensures (memory_load8_le(mem, 2403bv64) == 37bv8); - free ensures (memory_load8_le(mem, 2404bv64) == 99bv8); - free ensures (memory_load8_le(mem, 2405bv64) == 10bv8); - free ensures (memory_load8_le(mem, 2406bv64) == 0bv8); - free ensures (memory_load64_le(mem, 68992bv64) == 2064bv64); - free ensures (memory_load64_le(mem, 69000bv64) == 1984bv64); - free ensures (memory_load64_le(mem, 69616bv64) == 2068bv64); - free ensures (memory_load64_le(mem, 69640bv64) == 69640bv64); +procedure __printf_chk(); + free requires (memory_load64_le(mem, 4196680bv64) == 131073bv64); + free requires (memory_load64_le(mem, 4196688bv64) == 8241983568019286100bv64); + free requires (memory_load64_le(mem, 4196696bv64) == 7575166128241079840bv64); + free requires (memory_load64_le(mem, 4196704bv64) == 11420940909171bv64); + free requires (memory_load64_le(mem, 4196712bv64) == 2338615504306268244bv64); + free requires (memory_load64_le(mem, 4196720bv64) == 2924860384375657bv64); + free requires (memory_load64_le(mem, 4196728bv64) == 7017575154564032596bv64); + free requires (memory_load64_le(mem, 4196736bv64) == 7089063228440191084bv64); + free requires (memory_load64_le(mem, 4196744bv64) == 2675202446017455468bv64); + free requires (memory_load8_le(mem, 4196752bv64) == 100bv8); + free requires (memory_load8_le(mem, 4196753bv64) == 10bv8); + free requires (memory_load8_le(mem, 4196754bv64) == 0bv8); + free ensures (memory_load64_le(mem, 4196680bv64) == 131073bv64); + free ensures (memory_load64_le(mem, 4196688bv64) == 8241983568019286100bv64); + free ensures (memory_load64_le(mem, 4196696bv64) == 7575166128241079840bv64); + free ensures (memory_load64_le(mem, 4196704bv64) == 11420940909171bv64); + free ensures (memory_load64_le(mem, 4196712bv64) == 2338615504306268244bv64); + free ensures (memory_load64_le(mem, 4196720bv64) == 2924860384375657bv64); + free ensures (memory_load64_le(mem, 4196728bv64) == 7017575154564032596bv64); + free ensures (memory_load64_le(mem, 4196736bv64) == 7089063228440191084bv64); + free ensures (memory_load64_le(mem, 4196744bv64) == 2675202446017455468bv64); + free ensures (memory_load8_le(mem, 4196752bv64) == 100bv8); + free ensures (memory_load8_le(mem, 4196753bv64) == 10bv8); + free ensures (memory_load8_le(mem, 4196754bv64) == 0bv8); procedure #free(); - free requires (memory_load64_le(mem, 2328bv64) == 131073bv64); - free requires (memory_load64_le(mem, 2336bv64) == 2338615504306268244bv64); - free requires (memory_load64_le(mem, 2344bv64) == 2924860384375657bv64); - free requires (memory_load64_le(mem, 2352bv64) == 7017575154564032596bv64); - free requires (memory_load64_le(mem, 2360bv64) == 7089063228440191084bv64); - free requires (memory_load64_le(mem, 2368bv64) == 2675202446017455468bv64); - free requires (memory_load64_le(mem, 2376bv64) == 2660bv64); - free requires (memory_load64_le(mem, 2384bv64) == 8241983568019286100bv64); - free requires (memory_load64_le(mem, 2392bv64) == 7575166128241079840bv64); - free requires (memory_load8_le(mem, 2400bv64) == 115bv8); - free requires (memory_load8_le(mem, 2401bv64) == 58bv8); - free requires (memory_load8_le(mem, 2402bv64) == 32bv8); - free requires (memory_load8_le(mem, 2403bv64) == 37bv8); - free requires (memory_load8_le(mem, 2404bv64) == 99bv8); - free requires (memory_load8_le(mem, 2405bv64) == 10bv8); - free requires (memory_load8_le(mem, 2406bv64) == 0bv8); - free requires (memory_load64_le(mem, 68992bv64) == 2064bv64); - free requires (memory_load64_le(mem, 69000bv64) == 1984bv64); - free requires (memory_load64_le(mem, 69616bv64) == 2068bv64); - free requires (memory_load64_le(mem, 69640bv64) == 69640bv64); - free ensures (memory_load64_le(mem, 2328bv64) == 131073bv64); - free ensures (memory_load64_le(mem, 2336bv64) == 2338615504306268244bv64); - free ensures (memory_load64_le(mem, 2344bv64) == 2924860384375657bv64); - free ensures (memory_load64_le(mem, 2352bv64) == 7017575154564032596bv64); - free ensures (memory_load64_le(mem, 2360bv64) == 7089063228440191084bv64); - free ensures (memory_load64_le(mem, 2368bv64) == 2675202446017455468bv64); - free ensures (memory_load64_le(mem, 2376bv64) == 2660bv64); - free ensures (memory_load64_le(mem, 2384bv64) == 8241983568019286100bv64); - free ensures (memory_load64_le(mem, 2392bv64) == 7575166128241079840bv64); - free ensures (memory_load8_le(mem, 2400bv64) == 115bv8); - free ensures (memory_load8_le(mem, 2401bv64) == 58bv8); - free ensures (memory_load8_le(mem, 2402bv64) == 32bv8); - free ensures (memory_load8_le(mem, 2403bv64) == 37bv8); - free ensures (memory_load8_le(mem, 2404bv64) == 99bv8); - free ensures (memory_load8_le(mem, 2405bv64) == 10bv8); - free ensures (memory_load8_le(mem, 2406bv64) == 0bv8); - free ensures (memory_load64_le(mem, 68992bv64) == 2064bv64); - free ensures (memory_load64_le(mem, 69000bv64) == 1984bv64); - free ensures (memory_load64_le(mem, 69616bv64) == 2068bv64); - free ensures (memory_load64_le(mem, 69640bv64) == 69640bv64); + free requires (memory_load64_le(mem, 4196680bv64) == 131073bv64); + free requires (memory_load64_le(mem, 4196688bv64) == 8241983568019286100bv64); + free requires (memory_load64_le(mem, 4196696bv64) == 7575166128241079840bv64); + free requires (memory_load64_le(mem, 4196704bv64) == 11420940909171bv64); + free requires (memory_load64_le(mem, 4196712bv64) == 2338615504306268244bv64); + free requires (memory_load64_le(mem, 4196720bv64) == 2924860384375657bv64); + free requires (memory_load64_le(mem, 4196728bv64) == 7017575154564032596bv64); + free requires (memory_load64_le(mem, 4196736bv64) == 7089063228440191084bv64); + free requires (memory_load64_le(mem, 4196744bv64) == 2675202446017455468bv64); + free requires (memory_load8_le(mem, 4196752bv64) == 100bv8); + free requires (memory_load8_le(mem, 4196753bv64) == 10bv8); + free requires (memory_load8_le(mem, 4196754bv64) == 0bv8); + free ensures (memory_load64_le(mem, 4196680bv64) == 131073bv64); + free ensures (memory_load64_le(mem, 4196688bv64) == 8241983568019286100bv64); + free ensures (memory_load64_le(mem, 4196696bv64) == 7575166128241079840bv64); + free ensures (memory_load64_le(mem, 4196704bv64) == 11420940909171bv64); + free ensures (memory_load64_le(mem, 4196712bv64) == 2338615504306268244bv64); + free ensures (memory_load64_le(mem, 4196720bv64) == 2924860384375657bv64); + free ensures (memory_load64_le(mem, 4196728bv64) == 7017575154564032596bv64); + free ensures (memory_load64_le(mem, 4196736bv64) == 7089063228440191084bv64); + free ensures (memory_load64_le(mem, 4196744bv64) == 2675202446017455468bv64); + free ensures (memory_load8_le(mem, 4196752bv64) == 100bv8); + free ensures (memory_load8_le(mem, 4196753bv64) == 10bv8); + free ensures (memory_load8_le(mem, 4196754bv64) == 0bv8); diff --git a/src/test/correct/malloc_with_local3/gcc_O2/malloc_with_local3.adt b/src/test/correct/malloc_with_local3/gcc_O2/malloc_with_local3.adt deleted file mode 100644 index 9c34c2d51..000000000 --- a/src/test/correct/malloc_with_local3/gcc_O2/malloc_with_local3.adt +++ /dev/null @@ -1,655 +0,0 @@ -Project(Attrs([Attr("filename","\"gcc_O2/malloc_with_local3.out\""), -Attr("image-specification","(declare abi (name str))\n(declare arch (name str))\n(declare base-address (addr int))\n(declare bias (off int))\n(declare bits (size int))\n(declare code-region (addr int) (size int) (off int))\n(declare code-start (addr int))\n(declare entry-point (addr int))\n(declare external-reference (addr int) (name str))\n(declare format (name str))\n(declare is-executable (flag bool))\n(declare is-little-endian (flag bool))\n(declare llvm:base-address (addr int))\n(declare llvm:code-entry (name str) (off int) (size int))\n(declare llvm:coff-import-library (name str))\n(declare llvm:coff-virtual-section-header (name str) (addr int) (size int))\n(declare llvm:elf-program-header (name str) (off int) (size int))\n(declare llvm:elf-program-header-flags (name str) (ld bool) (r bool) \n (w bool) (x bool))\n(declare llvm:elf-virtual-program-header (name str) (addr int) (size int))\n(declare llvm:entry-point (addr int))\n(declare llvm:macho-symbol (name str) (value int))\n(declare llvm:name-reference (at int) (name str))\n(declare llvm:relocation (at int) (addr int))\n(declare llvm:section-entry (name str) (addr int) (size int) (off int))\n(declare llvm:section-flags (name str) (r bool) (w bool) (x bool))\n(declare llvm:segment-command (name str) (off int) (size int))\n(declare llvm:segment-command-flags (name str) (r bool) (w bool) (x bool))\n(declare llvm:symbol-entry (name str) (addr int) (size int) (off int)\n (value int))\n(declare llvm:virtual-segment-command (name str) (addr int) (size int))\n(declare mapped (addr int) (size int) (off int))\n(declare named-region (addr int) (size int) (name str))\n(declare named-symbol (addr int) (name str))\n(declare require (name str))\n(declare section (addr int) (size int))\n(declare segment (addr int) (size int) (r bool) (w bool) (x bool))\n(declare subarch (name str))\n(declare symbol-chunk (addr int) (size int) (root int))\n(declare symbol-value (addr int) (value int))\n(declare system (name str))\n(declare vendor (name str))\n\n(abi unknown)\n(arch aarch64)\n(base-address 0)\n(bias 0)\n(bits 64)\n(code-region 2244 20 2244)\n(code-region 1792 452 1792)\n(code-region 1616 144 1616)\n(code-region 1584 24 1584)\n(code-start 1972)\n(code-start 2208)\n(code-start 1920)\n(code-start 1792)\n(entry-point 1920)\n(external-reference 69592 _ITM_deregisterTMCloneTable)\n(external-reference 69600 __cxa_finalize)\n(external-reference 69608 __gmon_start__)\n(external-reference 69624 _ITM_registerTMCloneTable)\n(external-reference 69528 __libc_start_main)\n(external-reference 69536 __cxa_finalize)\n(external-reference 69544 malloc)\n(external-reference 69552 __printf_chk)\n(external-reference 69560 __gmon_start__)\n(external-reference 69568 abort)\n(external-reference 69576 free)\n(format elf)\n(is-executable true)\n(is-little-endian true)\n(llvm:base-address 0)\n(llvm:code-entry free 0 0)\n(llvm:code-entry abort 0 0)\n(llvm:code-entry __printf_chk 0 0)\n(llvm:code-entry malloc 0 0)\n(llvm:code-entry __cxa_finalize 0 0)\n(llvm:code-entry __libc_start_main 0 0)\n(llvm:code-entry _init 1584 0)\n(llvm:code-entry main 1792 100)\n(llvm:code-entry _start 1920 52)\n(llvm:code-entry free@GLIBC_2.17 0 0)\n(llvm:code-entry abort@GLIBC_2.17 0 0)\n(llvm:code-entry printCharValue 2208 36)\n(llvm:code-entry __printf_chk@GLIBC_2.17 0 0)\n(llvm:code-entry malloc@GLIBC_2.17 0 0)\n(llvm:code-entry _fini 2244 0)\n(llvm:code-entry __cxa_finalize@GLIBC_2.17 0 0)\n(llvm:code-entry __libc_start_main@GLIBC_2.34 0 0)\n(llvm:code-entry frame_dummy 2192 0)\n(llvm:code-entry __do_global_dtors_aux 2112 0)\n(llvm:code-entry register_tm_clones 2048 0)\n(llvm:code-entry deregister_tm_clones 2000 0)\n(llvm:code-entry call_weak_fn 1972 20)\n(llvm:code-entry .fini 2244 20)\n(llvm:code-entry .text 1792 452)\n(llvm:code-entry .plt 1616 144)\n(llvm:code-entry .init 1584 24)\n(llvm:elf-program-header 08 3456 640)\n(llvm:elf-program-header 07 0 0)\n(llvm:elf-program-header 06 2340 68)\n(llvm:elf-program-header 05 596 68)\n(llvm:elf-program-header 04 3472 496)\n(llvm:elf-program-header 03 3456 656)\n(llvm:elf-program-header 02 0 2604)\n(llvm:elf-program-header 01 568 27)\n(llvm:elf-program-header 00 64 504)\n(llvm:elf-program-header-flags 08 false true false false)\n(llvm:elf-program-header-flags 07 false true true false)\n(llvm:elf-program-header-flags 06 false true false false)\n(llvm:elf-program-header-flags 05 false true false false)\n(llvm:elf-program-header-flags 04 false true true false)\n(llvm:elf-program-header-flags 03 true true true false)\n(llvm:elf-program-header-flags 02 true true false true)\n(llvm:elf-program-header-flags 01 false true false false)\n(llvm:elf-program-header-flags 00 false true false false)\n(llvm:elf-virtual-program-header 08 68992 640)\n(llvm:elf-virtual-program-header 07 0 0)\n(llvm:elf-virtual-program-header 06 2340 68)\n(llvm:elf-virtual-program-header 05 596 68)\n(llvm:elf-virtual-program-header 04 69008 496)\n(llvm:elf-virtual-program-header 03 68992 664)\n(llvm:elf-virtual-program-header 02 0 2604)\n(llvm:elf-virtual-program-header 01 568 27)\n(llvm:elf-virtual-program-header 00 64 504)\n(llvm:entry-point 1920)\n(llvm:name-reference 69576 free)\n(llvm:name-reference 69568 abort)\n(llvm:name-reference 69560 __gmon_start__)\n(llvm:name-reference 69552 __printf_chk)\n(llvm:name-reference 69544 malloc)\n(llvm:name-reference 69536 __cxa_finalize)\n(llvm:name-reference 69528 __libc_start_main)\n(llvm:name-reference 69624 _ITM_registerTMCloneTable)\n(llvm:name-reference 69608 __gmon_start__)\n(llvm:name-reference 69600 __cxa_finalize)\n(llvm:name-reference 69592 _ITM_deregisterTMCloneTable)\n(llvm:section-entry .shstrtab 0 250 6995)\n(llvm:section-entry .strtab 0 627 6368)\n(llvm:section-entry .symtab 0 2208 4160)\n(llvm:section-entry .comment 0 43 4112)\n(llvm:section-entry .bss 69648 8 4112)\n(llvm:section-entry .data 69632 16 4096)\n(llvm:section-entry .got 69504 128 3968)\n(llvm:section-entry .dynamic 69008 496 3472)\n(llvm:section-entry .fini_array 69000 8 3464)\n(llvm:section-entry .init_array 68992 8 3456)\n(llvm:section-entry .eh_frame 2408 196 2408)\n(llvm:section-entry .eh_frame_hdr 2340 68 2340)\n(llvm:section-entry .rodata 2264 75 2264)\n(llvm:section-entry .fini 2244 20 2244)\n(llvm:section-entry .text 1792 452 1792)\n(llvm:section-entry .plt 1616 144 1616)\n(llvm:section-entry .init 1584 24 1584)\n(llvm:section-entry .rela.plt 1416 168 1416)\n(llvm:section-entry .rela.dyn 1224 192 1224)\n(llvm:section-entry .gnu.version_r 1176 48 1176)\n(llvm:section-entry .gnu.version 1150 24 1150)\n(llvm:section-entry .dynstr 984 166 984)\n(llvm:section-entry .dynsym 696 288 696)\n(llvm:section-entry .gnu.hash 664 28 664)\n(llvm:section-entry .note.ABI-tag 632 32 632)\n(llvm:section-entry .note.gnu.build-id 596 36 596)\n(llvm:section-entry .interp 568 27 568)\n(llvm:section-flags .shstrtab true false false)\n(llvm:section-flags .strtab true false false)\n(llvm:section-flags .symtab true false false)\n(llvm:section-flags .comment true false false)\n(llvm:section-flags .bss true true false)\n(llvm:section-flags .data true true false)\n(llvm:section-flags .got true true false)\n(llvm:section-flags .dynamic true true false)\n(llvm:section-flags .fini_array true true false)\n(llvm:section-flags .init_array true true false)\n(llvm:section-flags .eh_frame true false false)\n(llvm:section-flags .eh_frame_hdr true false false)\n(llvm:section-flags .rodata true false false)\n(llvm:section-flags .fini true false true)\n(llvm:section-flags .text true false true)\n(llvm:section-flags .plt true false true)\n(llvm:section-flags .init true false true)\n(llvm:section-flags .rela.plt true false false)\n(llvm:section-flags .rela.dyn true false false)\n(llvm:section-flags .gnu.version_r true false false)\n(llvm:section-flags .gnu.version true false false)\n(llvm:section-flags .dynstr true false false)\n(llvm:section-flags .dynsym true false false)\n(llvm:section-flags .gnu.hash true false false)\n(llvm:section-flags .note.ABI-tag true false false)\n(llvm:section-flags .note.gnu.build-id true false false)\n(llvm:section-flags .interp true false false)\n(llvm:symbol-entry free 0 0 0 0)\n(llvm:symbol-entry abort 0 0 0 0)\n(llvm:symbol-entry __printf_chk 0 0 0 0)\n(llvm:symbol-entry malloc 0 0 0 0)\n(llvm:symbol-entry __cxa_finalize 0 0 0 0)\n(llvm:symbol-entry __libc_start_main 0 0 0 0)\n(llvm:symbol-entry _init 1584 0 1584 1584)\n(llvm:symbol-entry main 1792 100 1792 1792)\n(llvm:symbol-entry _start 1920 52 1920 1920)\n(llvm:symbol-entry free@GLIBC_2.17 0 0 0 0)\n(llvm:symbol-entry abort@GLIBC_2.17 0 0 0 0)\n(llvm:symbol-entry printCharValue 2208 36 2208 2208)\n(llvm:symbol-entry __printf_chk@GLIBC_2.17 0 0 0 0)\n(llvm:symbol-entry malloc@GLIBC_2.17 0 0 0 0)\n(llvm:symbol-entry _fini 2244 0 2244 2244)\n(llvm:symbol-entry __cxa_finalize@GLIBC_2.17 0 0 0 0)\n(llvm:symbol-entry __libc_start_main@GLIBC_2.34 0 0 0 0)\n(llvm:symbol-entry frame_dummy 2192 0 2192 2192)\n(llvm:symbol-entry __do_global_dtors_aux 2112 0 2112 2112)\n(llvm:symbol-entry register_tm_clones 2048 0 2048 2048)\n(llvm:symbol-entry deregister_tm_clones 2000 0 2000 2000)\n(llvm:symbol-entry call_weak_fn 1972 20 1972 1972)\n(mapped 0 2604 0)\n(mapped 68992 656 3456)\n(named-region 0 2604 02)\n(named-region 68992 664 03)\n(named-region 568 27 .interp)\n(named-region 596 36 .note.gnu.build-id)\n(named-region 632 32 .note.ABI-tag)\n(named-region 664 28 .gnu.hash)\n(named-region 696 288 .dynsym)\n(named-region 984 166 .dynstr)\n(named-region 1150 24 .gnu.version)\n(named-region 1176 48 .gnu.version_r)\n(named-region 1224 192 .rela.dyn)\n(named-region 1416 168 .rela.plt)\n(named-region 1584 24 .init)\n(named-region 1616 144 .plt)\n(named-region 1792 452 .text)\n(named-region 2244 20 .fini)\n(named-region 2264 75 .rodata)\n(named-region 2340 68 .eh_frame_hdr)\n(named-region 2408 196 .eh_frame)\n(named-region 68992 8 .init_array)\n(named-region 69000 8 .fini_array)\n(named-region 69008 496 .dynamic)\n(named-region 69504 128 .got)\n(named-region 69632 16 .data)\n(named-region 69648 8 .bss)\n(named-region 0 43 .comment)\n(named-region 0 2208 .symtab)\n(named-region 0 627 .strtab)\n(named-region 0 250 .shstrtab)\n(named-symbol 1972 call_weak_fn)\n(named-symbol 2000 deregister_tm_clones)\n(named-symbol 2048 register_tm_clones)\n(named-symbol 2112 __do_global_dtors_aux)\n(named-symbol 2192 frame_dummy)\n(named-symbol 0 __libc_start_main@GLIBC_2.34)\n(named-symbol 0 __cxa_finalize@GLIBC_2.17)\n(named-symbol 2244 _fini)\n(named-symbol 0 malloc@GLIBC_2.17)\n(named-symbol 0 __printf_chk@GLIBC_2.17)\n(named-symbol 2208 printCharValue)\n(named-symbol 0 abort@GLIBC_2.17)\n(named-symbol 0 free@GLIBC_2.17)\n(named-symbol 1920 _start)\n(named-symbol 1792 main)\n(named-symbol 1584 _init)\n(named-symbol 0 __libc_start_main)\n(named-symbol 0 __cxa_finalize)\n(named-symbol 0 malloc)\n(named-symbol 0 __printf_chk)\n(named-symbol 0 abort)\n(named-symbol 0 free)\n(require libc.so.6)\n(section 568 27)\n(section 596 36)\n(section 632 32)\n(section 664 28)\n(section 696 288)\n(section 984 166)\n(section 1150 24)\n(section 1176 48)\n(section 1224 192)\n(section 1416 168)\n(section 1584 24)\n(section 1616 144)\n(section 1792 452)\n(section 2244 20)\n(section 2264 75)\n(section 2340 68)\n(section 2408 196)\n(section 68992 8)\n(section 69000 8)\n(section 69008 496)\n(section 69504 128)\n(section 69632 16)\n(section 69648 8)\n(section 0 43)\n(section 0 2208)\n(section 0 627)\n(section 0 250)\n(segment 0 2604 true false true)\n(segment 68992 664 true true false)\n(subarch v8)\n(symbol-chunk 1972 20 1972)\n(symbol-chunk 2208 36 2208)\n(symbol-chunk 1920 52 1920)\n(symbol-chunk 1792 100 1792)\n(symbol-value 1972 1972)\n(symbol-value 2000 2000)\n(symbol-value 2048 2048)\n(symbol-value 2112 2112)\n(symbol-value 2192 2192)\n(symbol-value 2244 2244)\n(symbol-value 2208 2208)\n(symbol-value 1920 1920)\n(symbol-value 1792 1792)\n(symbol-value 1584 1584)\n(symbol-value 0 0)\n(system \"\")\n(vendor \"\")\n"), -Attr("abi-name","\"aarch64-linux-gnu-elf\"")]), -Sections([Section(".shstrtab", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x80\x07\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x50\x1c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x38\x00\x09\x00\x40\x00\x1c\x00\x1b\x00\x06\x00\x00\x00\x04\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x04\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2c\x0a\x00\x00\x00\x00\x00\x00\x2c\x0a\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x01\x00\x00\x00\x06\x00\x00\x00\x80\x0d\x00\x00\x00\x00\x00\x00\x80\x0d"), -Section(".strtab", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x80\x07\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x50\x1c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x38\x00\x09\x00\x40\x00\x1c\x00\x1b\x00\x06\x00\x00\x00\x04\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x04\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2c\x0a\x00\x00\x00\x00\x00\x00\x2c\x0a\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x01\x00\x00\x00\x06\x00\x00\x00\x80\x0d\x00\x00\x00\x00\x00\x00\x80\x0d\x01\x00\x00\x00\x00\x00\x80\x0d\x01\x00\x00\x00\x00\x00\x90\x02\x00\x00\x00\x00\x00\x00\x98\x02\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x02\x00\x00\x00\x06\x00\x00\x00\x90\x0d\x00\x00\x00\x00\x00\x00\x90\x0d\x01\x00\x00\x00\x00\x00\x90\x0d\x01\x00\x00\x00\x00\x00\xf0\x01\x00\x00\x00\x00\x00\x00\xf0\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x04\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x50\xe5\x74\x64\x04\x00\x00\x00\x24\x09\x00\x00\x00\x00\x00\x00\x24\x09\x00\x00\x00\x00\x00\x00\x24\x09\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x51\xe5\x74\x64\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x52\xe5\x74\x64\x04\x00\x00\x00\x80\x0d\x00\x00\x00\x00\x00\x00\x80\x0d\x01\x00\x00\x00\x00\x00\x80\x0d\x01\x00\x00\x00\x00\x00\x80\x02\x00\x00\x00\x00\x00\x00\x80\x02\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x2f\x6c\x69\x62\x2f\x6c\x64\x2d\x6c\x69\x6e\x75\x78\x2d\x61\x61\x72\x63\x68\x36\x34\x2e\x73\x6f\x2e\x31\x00\x00\x04\x00\x00\x00\x14\x00\x00\x00\x03\x00\x00\x00\x47\x4e\x55\x00\x6e\xf6\x43\x92\x6a\x49\x0d\x24\x03\xb9\x57\x8b\xa9\xe0\xab"), -Section(".symtab", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x80\x07\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x50\x1c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x38\x00\x09\x00\x40\x00\x1c\x00\x1b\x00\x06\x00\x00\x00\x04\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x04\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2c\x0a\x00\x00\x00\x00\x00\x00\x2c\x0a\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x01\x00\x00\x00\x06\x00\x00\x00\x80\x0d\x00\x00\x00\x00\x00\x00\x80\x0d\x01\x00\x00\x00\x00\x00\x80\x0d\x01\x00\x00\x00\x00\x00\x90\x02\x00\x00\x00\x00\x00\x00\x98\x02\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x02\x00\x00\x00\x06\x00\x00\x00\x90\x0d\x00\x00\x00\x00\x00\x00\x90\x0d\x01\x00\x00\x00\x00\x00\x90\x0d\x01\x00\x00\x00\x00\x00\xf0\x01\x00\x00\x00\x00\x00\x00\xf0\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x04\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x50\xe5\x74\x64\x04\x00\x00\x00\x24\x09\x00\x00\x00\x00\x00\x00\x24\x09\x00\x00\x00\x00\x00\x00\x24\x09\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x51\xe5\x74\x64\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x52\xe5\x74\x64\x04\x00\x00\x00\x80\x0d\x00\x00\x00\x00\x00\x00\x80\x0d\x01\x00\x00\x00\x00\x00\x80\x0d\x01\x00\x00\x00\x00\x00\x80\x02\x00\x00\x00\x00\x00\x00\x80\x02\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x2f\x6c\x69\x62\x2f\x6c\x64\x2d\x6c\x69\x6e\x75\x78\x2d\x61\x61\x72\x63\x68\x36\x34\x2e\x73\x6f\x2e\x31\x00\x00\x04\x00\x00\x00\x14\x00\x00\x00\x03\x00\x00\x00\x47\x4e\x55\x00\x6e\xf6\x43\x92\x6a\x49\x0d\x24\x03\xb9\x57\x8b\xa9\xe0\xab\x56\x26\x1c\x29\xf6\x04\x00\x00\x00\x10\x00\x00\x00\x01\x00\x00\x00\x47\x4e\x55\x00\x00\x00\x00\x00\x03\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x01\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x0b\x00\x30\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x16\x00\x00\x10\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x24\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x61\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x22\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1d\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7d\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x3b\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x36\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x8c\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5f\x5f\x63\x78\x61\x5f\x66\x69\x6e\x61\x6c\x69\x7a\x65\x00\x5f\x5f\x70\x72\x69\x6e\x74\x66\x5f\x63\x68\x6b\x00\x6d\x61\x6c\x6c\x6f\x63\x00\x5f\x5f\x6c\x69\x62\x63\x5f\x73\x74\x61\x72\x74\x5f\x6d\x61\x69\x6e\x00\x66\x72\x65\x65\x00\x61\x62\x6f\x72\x74\x00\x6c\x69\x62\x63\x2e\x73\x6f\x2e\x36\x00\x47\x4c\x49\x42\x43\x5f\x32\x2e\x31\x37\x00\x47\x4c\x49\x42\x43\x5f\x32\x2e\x33\x34\x00\x5f\x49\x54\x4d\x5f\x64\x65\x72\x65\x67\x69\x73\x74\x65\x72\x54\x4d\x43\x6c\x6f\x6e\x65\x54\x61\x62\x6c\x65\x00\x5f\x5f\x67\x6d\x6f\x6e\x5f\x73\x74\x61\x72\x74\x5f\x5f\x00\x5f\x49\x54\x4d\x5f\x72\x65\x67\x69\x73\x74\x65\x72\x54\x4d\x43\x6c\x6f\x6e\x65\x54\x61\x62\x6c\x65\x00\x00\x00\x00\x00\x00\x00\x02\x00\x01\x00\x03\x00\x03\x00\x03\x00\x01\x00\x03\x00\x03\x00\x01\x00\x00\x00\x01\x00\x02\x00\x41\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x97\x91\x96\x06\x00\x00\x03\x00\x4b\x00\x00\x00\x10\x00\x00\x00\xb4\x91\x96\x06\x00\x00\x02\x00\x56\x00\x00\x00\x00\x00\x00\x00\x80\x0d\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x90\x08\x00\x00\x00\x00\x00\x00\x88\x0d\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x40\x08\x00\x00\x00\x00\x00\x00\xf0\x0f\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x08\x10\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x08\x10\x01\x00\x00\x00\x00\x00\xd8\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe0\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe8\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xf8\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x0b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x98\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xa0\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xa8\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xb0\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xb8\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xc0\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x09\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xc8\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x0a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1f\x20\x03\xd5\xfd\x7b\xbf\xa9\xfd\x03\x00\x91\x5e\x00\x00\x94\xfd\x7b\xc1\xa8\xc0\x03\x5f\xd6\x00\x00\x00\x00\x00\x00\x00\x00\xf0\x7b\xbf\xa9\x90\x00\x00\x90\x11\xca\x47\xf9\x10\x42\x3e\x91\x20\x02\x1f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x90\x00\x00\x90\x11\xce\x47\xf9\x10\x62\x3e\x91\x20\x02\x1f\xd6\x90\x00\x00\x90\x11\xd2\x47\xf9\x10\x82\x3e\x91\x20\x02\x1f\xd6\x90\x00\x00\x90\x11\xd6\x47\xf9\x10\xa2\x3e\x91\x20\x02\x1f\xd6\x90\x00\x00\x90\x11\xda\x47\xf9\x10\xc2\x3e\x91\x20\x02\x1f\xd6\x90\x00\x00\x90\x11\xde\x47\xf9\x10\xe2\x3e\x91\x20\x02\x1f\xd6\x90\x00\x00\x90\x11\xe2\x47\xf9\x10\x02\x3f\x91\x20\x02\x1f\xd6\x90\x00\x00\x90\x11\xe6\x47\xf9\x10\x22\x3f\x91\x20\x02\x1f\xd6\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xfd\x7b\xbe\xa9\x20\x00\x80\xd2\xfd\x03\x00\x91\xf3\x0b\x00\xf9\xe0\xff\xff\x97\x21\x08\x80\x52\x01\x00\x00\x39\xf3\x03\x00\xaa\x60\x00\x00\x94\x42\x05\x80\x52\x01\x00\x00\x90\x20\x00\x80\x52\x21\xe0\x23\x91\xdb\xff\xff\x97\x01\x00\x00\x90\x21\x20\x24\x91\x42\x01\x80\x52\x20\x00\x80\x52\xd6\xff\xff\x97\xe0\x03\x13\xaa\xe0\xff\xff\x97\x00\x00\x80\x52\xf3\x0b\x40\xf9\xfd\x7b\xc2\xa8\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1d\x00\x80\xd2\x1e\x00\x80\xd2\xe5\x03\x00\xaa\xe1\x03\x40\xf9\xe2\x23\x00\x91\xe6\x03\x00\x91\x80\x00\x00\x90\x00\xf8\x47\xf9\x03\x00\x80\xd2\x04\x00\x80\xd2\xb1\xff\xff\x97\xc4\xff\xff\x97\x80\x00\x00\x90\x00\xf4\x47\xf9\x40\x00\x00\xb4\xbc\xff\xff\x17\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x80\x00\x00\xb0\x00\x40\x00\x91\x81\x00\x00\xb0\x21\x40\x00\x91\x3f\x00\x00\xeb\xc0\x00\x00\x54\x81\x00\x00\x90\x21\xec\x47\xf9\x61\x00\x00\xb4\xf0\x03\x01\xaa\x00\x02\x1f\xd6\xc0\x03\x5f\xd6\x80\x00\x00\xb0\x00\x40\x00\x91\x81\x00\x00\xb0\x21\x40\x00\x91\x21\x00\x00\xcb\x22\xfc\x7f\xd3\x41\x0c\x81\x8b\x21\xfc\x41\x93\xc1\x00\x00\xb4\x82\x00\x00\x90\x42\xfc\x47\xf9\x62\x00\x00\xb4\xf0\x03\x02\xaa\x00\x02\x1f\xd6\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\xfd\x7b\xbe\xa9\xfd\x03\x00\x91\xf3\x0b\x00\xf9\x93\x00\x00\xb0\x60\x42\x40\x39\x40\x01\x00\x35\x80\x00\x00\x90\x00\xf0\x47\xf9\x80\x00\x00\xb4\x80\x00\x00\xb0\x00\x04\x40\xf9\x85\xff\xff\x97\xd8\xff\xff\x97\x20\x00\x80\x52\x60\x42\x00\x39\xf3\x0b\x40\xf9\xfd\x7b\xc2\xa8\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\xdc\xff\xff\x17\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5"), -Section(".comment", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x80\x07\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x50\x1c\x00"), -Section(".interp", 0x238, "\x2f\x6c\x69\x62\x2f\x6c\x64\x2d\x6c\x69\x6e\x75\x78\x2d\x61\x61\x72\x63\x68\x36\x34\x2e\x73\x6f\x2e\x31\x00"), -Section(".note.gnu.build-id", 0x254, "\x04\x00\x00\x00\x14\x00\x00\x00\x03\x00\x00\x00\x47\x4e\x55\x00\x6e\xf6\x43\x92\x6a\x49\x0d\x24\x03\xb9\x57\x8b\xa9\xe0\xab\x56\x26\x1c\x29\xf6"), -Section(".note.ABI-tag", 0x278, "\x04\x00\x00\x00\x10\x00\x00\x00\x01\x00\x00\x00\x47\x4e\x55\x00\x00\x00\x00\x00\x03\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00"), -Section(".gnu.hash", 0x298, "\x01\x00\x00\x00\x01\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".dynsym", 0x2B8, "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x0b\x00\x30\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x16\x00\x00\x10\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x24\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x61\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x22\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1d\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7d\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x3b\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x36\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x8c\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".dynstr", 0x3D8, "\x00\x5f\x5f\x63\x78\x61\x5f\x66\x69\x6e\x61\x6c\x69\x7a\x65\x00\x5f\x5f\x70\x72\x69\x6e\x74\x66\x5f\x63\x68\x6b\x00\x6d\x61\x6c\x6c\x6f\x63\x00\x5f\x5f\x6c\x69\x62\x63\x5f\x73\x74\x61\x72\x74\x5f\x6d\x61\x69\x6e\x00\x66\x72\x65\x65\x00\x61\x62\x6f\x72\x74\x00\x6c\x69\x62\x63\x2e\x73\x6f\x2e\x36\x00\x47\x4c\x49\x42\x43\x5f\x32\x2e\x31\x37\x00\x47\x4c\x49\x42\x43\x5f\x32\x2e\x33\x34\x00\x5f\x49\x54\x4d\x5f\x64\x65\x72\x65\x67\x69\x73\x74\x65\x72\x54\x4d\x43\x6c\x6f\x6e\x65\x54\x61\x62\x6c\x65\x00\x5f\x5f\x67\x6d\x6f\x6e\x5f\x73\x74\x61\x72\x74\x5f\x5f\x00\x5f\x49\x54\x4d\x5f\x72\x65\x67\x69\x73\x74\x65\x72\x54\x4d\x43\x6c\x6f\x6e\x65\x54\x61\x62\x6c\x65\x00"), -Section(".gnu.version", 0x47E, "\x00\x00\x00\x00\x00\x00\x02\x00\x01\x00\x03\x00\x03\x00\x03\x00\x01\x00\x03\x00\x03\x00\x01\x00"), -Section(".gnu.version_r", 0x498, "\x01\x00\x02\x00\x41\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x97\x91\x96\x06\x00\x00\x03\x00\x4b\x00\x00\x00\x10\x00\x00\x00\xb4\x91\x96\x06\x00\x00\x02\x00\x56\x00\x00\x00\x00\x00\x00\x00"), -Section(".rela.dyn", 0x4C8, "\x80\x0d\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x90\x08\x00\x00\x00\x00\x00\x00\x88\x0d\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x40\x08\x00\x00\x00\x00\x00\x00\xf0\x0f\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x08\x10\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x08\x10\x01\x00\x00\x00\x00\x00\xd8\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe0\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe8\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xf8\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x0b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".rela.plt", 0x588, "\x98\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xa0\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xa8\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xb0\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xb8\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xc0\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x09\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xc8\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x0a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".init", 0x630, "\x1f\x20\x03\xd5\xfd\x7b\xbf\xa9\xfd\x03\x00\x91\x5e\x00\x00\x94\xfd\x7b\xc1\xa8\xc0\x03\x5f\xd6"), -Section(".plt", 0x650, "\xf0\x7b\xbf\xa9\x90\x00\x00\x90\x11\xca\x47\xf9\x10\x42\x3e\x91\x20\x02\x1f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x90\x00\x00\x90\x11\xce\x47\xf9\x10\x62\x3e\x91\x20\x02\x1f\xd6\x90\x00\x00\x90\x11\xd2\x47\xf9\x10\x82\x3e\x91\x20\x02\x1f\xd6\x90\x00\x00\x90\x11\xd6\x47\xf9\x10\xa2\x3e\x91\x20\x02\x1f\xd6\x90\x00\x00\x90\x11\xda\x47\xf9\x10\xc2\x3e\x91\x20\x02\x1f\xd6\x90\x00\x00\x90\x11\xde\x47\xf9\x10\xe2\x3e\x91\x20\x02\x1f\xd6\x90\x00\x00\x90\x11\xe2\x47\xf9\x10\x02\x3f\x91\x20\x02\x1f\xd6\x90\x00\x00\x90\x11\xe6\x47\xf9\x10\x22\x3f\x91\x20\x02\x1f\xd6"), -Section(".fini", 0x8C4, "\x1f\x20\x03\xd5\xfd\x7b\xbf\xa9\xfd\x03\x00\x91\xfd\x7b\xc1\xa8\xc0\x03\x5f\xd6"), -Section(".rodata", 0x8D8, "\x01\x00\x02\x00\x00\x00\x00\x00\x54\x68\x65\x20\x63\x68\x61\x72\x20\x76\x61\x6c\x75\x65\x20\x69\x73\x3a\x20\x25\x63\x0a\x00\x00\x54\x68\x65\x20\x69\x6e\x74\x20\x69\x73\x3a\x20\x25\x64\x0a\x00\x54\x68\x65\x20\x6c\x6f\x63\x61\x6c\x20\x76\x61\x72\x69\x61\x62\x6c\x65\x20\x69\x73\x3a\x20\x25\x64\x0a\x00"), -Section(".eh_frame_hdr", 0x924, "\x01\x1b\x03\x3b\x40\x00\x00\x00\x07\x00\x00\x00\xdc\xfd\xff\xff\xe0\x00\x00\x00\x5c\xfe\xff\xff\x58\x00\x00\x00\xac\xfe\xff\xff\x6c\x00\x00\x00\xdc\xfe\xff\xff\x80\x00\x00\x00\x1c\xff\xff\xff\x94\x00\x00\x00\x6c\xff\xff\xff\xb8\x00\x00\x00\x7c\xff\xff\xff\xcc\x00\x00\x00"), -Section(".eh_frame", 0x968, "\x10\x00\x00\x00\x00\x00\x00\x00\x01\x7a\x52\x00\x04\x78\x1e\x01\x1b\x0c\x1f\x00\x10\x00\x00\x00\x18\x00\x00\x00\xfc\xfd\xff\xff\x34\x00\x00\x00\x00\x41\x07\x1e\x10\x00\x00\x00\x2c\x00\x00\x00\x38\xfe\xff\xff\x30\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x40\x00\x00\x00\x54\xfe\xff\xff\x3c\x00\x00\x00\x00\x00\x00\x00\x20\x00\x00\x00\x54\x00\x00\x00\x80\xfe\xff\xff\x48\x00\x00\x00\x00\x41\x0e\x20\x9d\x04\x9e\x03\x42\x93\x02\x4e\xde\xdd\xd3\x0e\x00\x00\x00\x00\x10\x00\x00\x00\x78\x00\x00\x00\xac\xfe\xff\xff\x04\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x8c\x00\x00\x00\xa8\xfe\xff\xff\x24\x00\x00\x00\x00\x00\x00\x00\x20\x00\x00\x00\xa0\x00\x00\x00\xf4\xfc\xff\xff\x64\x00\x00\x00\x00\x41\x0e\x20\x9d\x04\x9e\x03\x43\x93\x02\x54\xde\xdd\xd3\x0e\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".fini_array", 0x10D88, "\x40\x08\x00\x00\x00\x00\x00\x00"), -Section(".dynamic", 0x10D90, "\x01\x00\x00\x00\x00\x00\x00\x00\x41\x00\x00\x00\x00\x00\x00\x00\x0c\x00\x00\x00\x00\x00\x00\x00\x30\x06\x00\x00\x00\x00\x00\x00\x0d\x00\x00\x00\x00\x00\x00\x00\xc4\x08\x00\x00\x00\x00\x00\x00\x19\x00\x00\x00\x00\x00\x00\x00\x80\x0d\x01\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x1a\x00\x00\x00\x00\x00\x00\x00\x88\x0d\x01\x00\x00\x00\x00\x00\x1c\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\xf5\xfe\xff\x6f\x00\x00\x00\x00\x98\x02\x00\x00\x00\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\xd8\x03\x00\x00\x00\x00\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\xb8\x02\x00\x00\x00\x00\x00\x00\x0a\x00\x00\x00\x00\x00\x00\x00\xa6\x00\x00\x00\x00\x00\x00\x00\x0b\x00\x00\x00\x00\x00\x00\x00\x18\x00\x00\x00\x00\x00\x00\x00\x15\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x80\x0f\x01\x00\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\xa8\x00\x00\x00\x00\x00\x00\x00\x14\x00\x00\x00\x00\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x17\x00\x00\x00\x00\x00\x00\x00\x88\x05\x00\x00\x00\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\xc8\x04\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\xc0\x00\x00\x00\x00\x00\x00\x00\x09\x00\x00\x00\x00\x00\x00\x00\x18\x00\x00\x00\x00\x00\x00\x00\x1e\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\xfb\xff\xff\x6f\x00\x00\x00\x00\x01\x00\x00\x08\x00\x00\x00\x00\xfe\xff\xff\x6f\x00\x00\x00\x00\x98\x04\x00\x00\x00\x00\x00\x00\xff\xff\xff\x6f\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\xf0\xff\xff\x6f\x00\x00\x00\x00\x7e\x04\x00\x00\x00\x00\x00\x00\xf9\xff\xff\x6f\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".got", 0x10F80, "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x50\x06\x00\x00\x00\x00\x00\x00\x50\x06\x00\x00\x00\x00\x00\x00\x50\x06\x00\x00\x00\x00\x00\x00\x50\x06\x00\x00\x00\x00\x00\x00\x50\x06\x00\x00\x00\x00\x00\x00\x50\x06\x00\x00\x00\x00\x00\x00\x50\x06\x00\x00\x00\x00\x00\x00\x90\x0d\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".data", 0x11000, "\x00\x00\x00\x00\x00\x00\x00\x00\x08\x10\x01\x00\x00\x00\x00\x00"), -Section(".init_array", 0x10D80, "\x90\x08\x00\x00\x00\x00\x00\x00"), -Section(".text", 0x700, "\xfd\x7b\xbe\xa9\x20\x00\x80\xd2\xfd\x03\x00\x91\xf3\x0b\x00\xf9\xe0\xff\xff\x97\x21\x08\x80\x52\x01\x00\x00\x39\xf3\x03\x00\xaa\x60\x00\x00\x94\x42\x05\x80\x52\x01\x00\x00\x90\x20\x00\x80\x52\x21\xe0\x23\x91\xdb\xff\xff\x97\x01\x00\x00\x90\x21\x20\x24\x91\x42\x01\x80\x52\x20\x00\x80\x52\xd6\xff\xff\x97\xe0\x03\x13\xaa\xe0\xff\xff\x97\x00\x00\x80\x52\xf3\x0b\x40\xf9\xfd\x7b\xc2\xa8\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1d\x00\x80\xd2\x1e\x00\x80\xd2\xe5\x03\x00\xaa\xe1\x03\x40\xf9\xe2\x23\x00\x91\xe6\x03\x00\x91\x80\x00\x00\x90\x00\xf8\x47\xf9\x03\x00\x80\xd2\x04\x00\x80\xd2\xb1\xff\xff\x97\xc4\xff\xff\x97\x80\x00\x00\x90\x00\xf4\x47\xf9\x40\x00\x00\xb4\xbc\xff\xff\x17\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x80\x00\x00\xb0\x00\x40\x00\x91\x81\x00\x00\xb0\x21\x40\x00\x91\x3f\x00\x00\xeb\xc0\x00\x00\x54\x81\x00\x00\x90\x21\xec\x47\xf9\x61\x00\x00\xb4\xf0\x03\x01\xaa\x00\x02\x1f\xd6\xc0\x03\x5f\xd6\x80\x00\x00\xb0\x00\x40\x00\x91\x81\x00\x00\xb0\x21\x40\x00\x91\x21\x00\x00\xcb\x22\xfc\x7f\xd3\x41\x0c\x81\x8b\x21\xfc\x41\x93\xc1\x00\x00\xb4\x82\x00\x00\x90\x42\xfc\x47\xf9\x62\x00\x00\xb4\xf0\x03\x02\xaa\x00\x02\x1f\xd6\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\xfd\x7b\xbe\xa9\xfd\x03\x00\x91\xf3\x0b\x00\xf9\x93\x00\x00\xb0\x60\x42\x40\x39\x40\x01\x00\x35\x80\x00\x00\x90\x00\xf0\x47\xf9\x80\x00\x00\xb4\x80\x00\x00\xb0\x00\x04\x40\xf9\x85\xff\xff\x97\xd8\xff\xff\x97\x20\x00\x80\x52\x60\x42\x00\x39\xf3\x0b\x40\xf9\xfd\x7b\xc2\xa8\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\xdc\xff\xff\x17\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\xe3\x03\x00\xaa\x20\x00\x80\x52\x01\x00\x00\x90\x21\x80\x23\x91\x62\x00\x40\x39\x42\x00\x00\x0b\x42\x1c\x00\x12\x62\x00\x00\x39\x78\xff\xff\x17")]), -Memmap([Annotation(Region(0x0,0xA2B), Attr("segment","02 0 2604")), -Annotation(Region(0x700,0x763), Attr("symbol","\"main\"")), -Annotation(Region(0x0,0xF9), Attr("section","\".shstrtab\"")), -Annotation(Region(0x0,0x272), Attr("section","\".strtab\"")), -Annotation(Region(0x0,0x89F), Attr("section","\".symtab\"")), -Annotation(Region(0x0,0x2A), Attr("section","\".comment\"")), -Annotation(Region(0x238,0x252), Attr("section","\".interp\"")), -Annotation(Region(0x254,0x277), Attr("section","\".note.gnu.build-id\"")), -Annotation(Region(0x278,0x297), Attr("section","\".note.ABI-tag\"")), -Annotation(Region(0x298,0x2B3), Attr("section","\".gnu.hash\"")), -Annotation(Region(0x2B8,0x3D7), Attr("section","\".dynsym\"")), -Annotation(Region(0x3D8,0x47D), Attr("section","\".dynstr\"")), -Annotation(Region(0x47E,0x495), Attr("section","\".gnu.version\"")), -Annotation(Region(0x498,0x4C7), Attr("section","\".gnu.version_r\"")), -Annotation(Region(0x4C8,0x587), Attr("section","\".rela.dyn\"")), -Annotation(Region(0x588,0x62F), Attr("section","\".rela.plt\"")), -Annotation(Region(0x630,0x647), Attr("section","\".init\"")), -Annotation(Region(0x650,0x6DF), Attr("section","\".plt\"")), -Annotation(Region(0x630,0x647), Attr("code-region","()")), -Annotation(Region(0x650,0x6DF), Attr("code-region","()")), -Annotation(Region(0x700,0x763), Attr("symbol-info","main 0x700 100")), -Annotation(Region(0x780,0x7B3), Attr("symbol","\"_start\"")), -Annotation(Region(0x780,0x7B3), Attr("symbol-info","_start 0x780 52")), -Annotation(Region(0x7B4,0x7C7), Attr("symbol","\"call_weak_fn\"")), -Annotation(Region(0x7B4,0x7C7), Attr("symbol-info","call_weak_fn 0x7B4 20")), -Annotation(Region(0x700,0x8C3), Attr("code-region","()")), -Annotation(Region(0x8A0,0x8C3), Attr("symbol","\"printCharValue\"")), -Annotation(Region(0x8A0,0x8C3), -Attr("symbol-info","printCharValue 0x8A0 36")), -Annotation(Region(0x8C4,0x8D7), Attr("section","\".fini\"")), -Annotation(Region(0x8D8,0x922), Attr("section","\".rodata\"")), -Annotation(Region(0x924,0x967), Attr("section","\".eh_frame_hdr\"")), -Annotation(Region(0x968,0xA2B), Attr("section","\".eh_frame\"")), -Annotation(Region(0x10D80,0x1100F), Attr("segment","03 0x10D80 664")), -Annotation(Region(0x10D88,0x10D8F), Attr("section","\".fini_array\"")), -Annotation(Region(0x10D90,0x10F7F), Attr("section","\".dynamic\"")), -Annotation(Region(0x10F80,0x10FFF), Attr("section","\".got\"")), -Annotation(Region(0x11000,0x1100F), Attr("section","\".data\"")), -Annotation(Region(0x10D80,0x10D87), Attr("section","\".init_array\"")), -Annotation(Region(0x700,0x8C3), Attr("section","\".text\"")), -Annotation(Region(0x8C4,0x8D7), Attr("code-region","()"))]), -Program(Tid(1_821, "%0000071d"), Attrs([]), - Subs([Sub(Tid(1_795, "@__cxa_finalize"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x680"), -Attr("stub","()")]), "__cxa_finalize", Args([Arg(Tid(1_822, "%0000071e"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("__cxa_finalize_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(1_166, "@__cxa_finalize"), - Attrs([Attr("address","0x680")]), Phis([]), -Defs([Def(Tid(1_462, "%000005b6"), Attrs([Attr("address","0x680"), -Attr("insn","adrp x16, #65536")]), Var("R16",Imm(64)), Int(65536,64)), -Def(Tid(1_469, "%000005bd"), Attrs([Attr("address","0x684"), -Attr("insn","ldr x17, [x16, #0xfa0]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(4000,64)),LittleEndian(),64)), -Def(Tid(1_475, "%000005c3"), Attrs([Attr("address","0x688"), -Attr("insn","add x16, x16, #0xfa0")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(4000,64)))]), Jmps([Call(Tid(1_480, "%000005c8"), - Attrs([Attr("address","0x68C"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), -Sub(Tid(1_796, "@__do_global_dtors_aux"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x840")]), - "__do_global_dtors_aux", Args([Arg(Tid(1_823, "%0000071f"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("__do_global_dtors_aux_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(1_013, "@__do_global_dtors_aux"), - Attrs([Attr("address","0x840")]), Phis([]), -Defs([Def(Tid(1_017, "%000003f9"), Attrs([Attr("address","0x840"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("#4",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(18446744073709551584,64))), -Def(Tid(1_023, "%000003ff"), Attrs([Attr("address","0x840"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("#4",Imm(64)),Var("R29",Imm(64)),LittleEndian(),64)), -Def(Tid(1_029, "%00000405"), Attrs([Attr("address","0x840"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("#4",Imm(64)),Int(8,64)),Var("R30",Imm(64)),LittleEndian(),64)), -Def(Tid(1_033, "%00000409"), Attrs([Attr("address","0x840"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("R31",Imm(64)), -Var("#4",Imm(64))), Def(Tid(1_039, "%0000040f"), - Attrs([Attr("address","0x844"), Attr("insn","mov x29, sp")]), - Var("R29",Imm(64)), Var("R31",Imm(64))), Def(Tid(1_047, "%00000417"), - Attrs([Attr("address","0x848"), Attr("insn","str x19, [sp, #0x10]")]), - Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(16,64)),Var("R19",Imm(64)),LittleEndian(),64)), -Def(Tid(1_052, "%0000041c"), Attrs([Attr("address","0x84C"), -Attr("insn","adrp x19, #69632")]), Var("R19",Imm(64)), Int(69632,64)), -Def(Tid(1_059, "%00000423"), Attrs([Attr("address","0x850"), -Attr("insn","ldrb w0, [x19, #0x10]")]), Var("R0",Imm(64)), -UNSIGNED(64,Load(Var("mem",Mem(64,8)),PLUS(Var("R19",Imm(64)),Int(16,64)),LittleEndian(),8)))]), -Jmps([Goto(Tid(1_066, "%0000042a"), Attrs([Attr("address","0x854"), -Attr("insn","cbnz w0, #0x28")]), - NEQ(Extract(31,0,Var("R0",Imm(64))),Int(0,32)), -Direct(Tid(1_064, "%00000428"))), Goto(Tid(1_797, "%00000705"), Attrs([]), - Int(1,1), Direct(Tid(1_111, "%00000457")))])), Blk(Tid(1_111, "%00000457"), - Attrs([Attr("address","0x858")]), Phis([]), -Defs([Def(Tid(1_114, "%0000045a"), Attrs([Attr("address","0x858"), -Attr("insn","adrp x0, #65536")]), Var("R0",Imm(64)), Int(65536,64)), -Def(Tid(1_121, "%00000461"), Attrs([Attr("address","0x85C"), -Attr("insn","ldr x0, [x0, #0xfe0]")]), Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(4064,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(1_127, "%00000467"), Attrs([Attr("address","0x860"), -Attr("insn","cbz x0, #0x10")]), EQ(Var("R0",Imm(64)),Int(0,64)), -Direct(Tid(1_125, "%00000465"))), Goto(Tid(1_798, "%00000706"), Attrs([]), - Int(1,1), Direct(Tid(1_150, "%0000047e")))])), Blk(Tid(1_150, "%0000047e"), - Attrs([Attr("address","0x864")]), Phis([]), -Defs([Def(Tid(1_153, "%00000481"), Attrs([Attr("address","0x864"), -Attr("insn","adrp x0, #69632")]), Var("R0",Imm(64)), Int(69632,64)), -Def(Tid(1_160, "%00000488"), Attrs([Attr("address","0x868"), -Attr("insn","ldr x0, [x0, #0x8]")]), Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(1_165, "%0000048d"), Attrs([Attr("address","0x86C"), -Attr("insn","bl #-0x1ec")]), Var("R30",Imm(64)), Int(2160,64))]), -Jmps([Call(Tid(1_168, "%00000490"), Attrs([Attr("address","0x86C"), -Attr("insn","bl #-0x1ec")]), Int(1,1), -(Direct(Tid(1_795, "@__cxa_finalize")),Direct(Tid(1_125, "%00000465"))))])), -Blk(Tid(1_125, "%00000465"), Attrs([Attr("address","0x870")]), Phis([]), -Defs([Def(Tid(1_133, "%0000046d"), Attrs([Attr("address","0x870"), -Attr("insn","bl #-0xa0")]), Var("R30",Imm(64)), Int(2164,64))]), -Jmps([Call(Tid(1_135, "%0000046f"), Attrs([Attr("address","0x870"), -Attr("insn","bl #-0xa0")]), Int(1,1), -(Direct(Tid(1_810, "@deregister_tm_clones")),Direct(Tid(1_137, "%00000471"))))])), -Blk(Tid(1_137, "%00000471"), Attrs([Attr("address","0x874")]), Phis([]), -Defs([Def(Tid(1_140, "%00000474"), Attrs([Attr("address","0x874"), -Attr("insn","mov w0, #0x1")]), Var("R0",Imm(64)), Int(1,64)), -Def(Tid(1_148, "%0000047c"), Attrs([Attr("address","0x878"), -Attr("insn","strb w0, [x19, #0x10]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R19",Imm(64)),Int(16,64)),Extract(7,0,Var("R0",Imm(64))),LittleEndian(),8))]), -Jmps([Goto(Tid(1_799, "%00000707"), Attrs([]), Int(1,1), -Direct(Tid(1_064, "%00000428")))])), Blk(Tid(1_064, "%00000428"), - Attrs([Attr("address","0x87C")]), Phis([]), -Defs([Def(Tid(1_074, "%00000432"), Attrs([Attr("address","0x87C"), -Attr("insn","ldr x19, [sp, #0x10]")]), Var("R19",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(16,64)),LittleEndian(),64)), -Def(Tid(1_081, "%00000439"), Attrs([Attr("address","0x880"), -Attr("insn","ldp x29, x30, [sp], #0x20")]), Var("R29",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(1_086, "%0000043e"), Attrs([Attr("address","0x880"), -Attr("insn","ldp x29, x30, [sp], #0x20")]), Var("R30",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(1_090, "%00000442"), Attrs([Attr("address","0x880"), -Attr("insn","ldp x29, x30, [sp], #0x20")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(32,64)))]), Jmps([Call(Tid(1_095, "%00000447"), - Attrs([Attr("address","0x884"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), Sub(Tid(1_800, "@__libc_start_main"), - Attrs([Attr("c.proto","signed (*)(signed (*)(signed , char** , char** );* main, signed , char** , \nvoid* auxv)"), -Attr("address","0x670"), Attr("stub","()")]), "__libc_start_main", - Args([Arg(Tid(1_824, "%00000720"), - Attrs([Attr("c.layout","**[ : 64]"), -Attr("c.data","Top:u64 ptr ptr"), -Attr("c.type","signed (*)(signed , char** , char** );*")]), - Var("__libc_start_main_main",Imm(64)), Var("R0",Imm(64)), In()), -Arg(Tid(1_825, "%00000721"), Attrs([Attr("c.layout","[signed : 32]"), -Attr("c.data","Top:u32"), Attr("c.type","signed")]), - Var("__libc_start_main_arg2",Imm(32)), LOW(32,Var("R1",Imm(64))), In()), -Arg(Tid(1_826, "%00000722"), Attrs([Attr("c.layout","**[char : 8]"), -Attr("c.data","Top:u8 ptr ptr"), Attr("c.type","char**")]), - Var("__libc_start_main_arg3",Imm(64)), Var("R2",Imm(64)), Both()), -Arg(Tid(1_827, "%00000723"), Attrs([Attr("c.layout","*[ : 8]"), -Attr("c.data","{} ptr"), Attr("c.type","void*")]), - Var("__libc_start_main_auxv",Imm(64)), Var("R3",Imm(64)), Both()), -Arg(Tid(1_828, "%00000724"), Attrs([Attr("c.layout","[signed : 32]"), -Attr("c.data","Top:u32"), Attr("c.type","signed")]), - Var("__libc_start_main_result",Imm(32)), LOW(32,Var("R0",Imm(64))), -Out())]), Blks([Blk(Tid(846, "@__libc_start_main"), - Attrs([Attr("address","0x670")]), Phis([]), -Defs([Def(Tid(1_440, "%000005a0"), Attrs([Attr("address","0x670"), -Attr("insn","adrp x16, #65536")]), Var("R16",Imm(64)), Int(65536,64)), -Def(Tid(1_447, "%000005a7"), Attrs([Attr("address","0x674"), -Attr("insn","ldr x17, [x16, #0xf98]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(3992,64)),LittleEndian(),64)), -Def(Tid(1_453, "%000005ad"), Attrs([Attr("address","0x678"), -Attr("insn","add x16, x16, #0xf98")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(3992,64)))]), Jmps([Call(Tid(1_458, "%000005b2"), - Attrs([Attr("address","0x67C"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), Sub(Tid(1_801, "@__printf_chk"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x6A0"), -Attr("stub","()")]), "__printf_chk", Args([Arg(Tid(1_829, "%00000725"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("__printf_chk_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(662, "@__printf_chk"), - Attrs([Attr("address","0x6A0")]), Phis([]), -Defs([Def(Tid(1_506, "%000005e2"), Attrs([Attr("address","0x6A0"), -Attr("insn","adrp x16, #65536")]), Var("R16",Imm(64)), Int(65536,64)), -Def(Tid(1_513, "%000005e9"), Attrs([Attr("address","0x6A4"), -Attr("insn","ldr x17, [x16, #0xfb0]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(4016,64)),LittleEndian(),64)), -Def(Tid(1_519, "%000005ef"), Attrs([Attr("address","0x6A8"), -Attr("insn","add x16, x16, #0xfb0")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(4016,64)))]), Jmps([Call(Tid(1_524, "%000005f4"), - Attrs([Attr("address","0x6AC"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), Sub(Tid(1_802, "@_fini"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x8C4")]), - "_fini", Args([Arg(Tid(1_830, "%00000726"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("_fini_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(31, "@_fini"), - Attrs([Attr("address","0x8C4")]), Phis([]), Defs([Def(Tid(37, "%00000025"), - Attrs([Attr("address","0x8C8"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("#0",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(18446744073709551600,64))), -Def(Tid(43, "%0000002b"), Attrs([Attr("address","0x8C8"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("#0",Imm(64)),Var("R29",Imm(64)),LittleEndian(),64)), -Def(Tid(49, "%00000031"), Attrs([Attr("address","0x8C8"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("#0",Imm(64)),Int(8,64)),Var("R30",Imm(64)),LittleEndian(),64)), -Def(Tid(53, "%00000035"), Attrs([Attr("address","0x8C8"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("R31",Imm(64)), -Var("#0",Imm(64))), Def(Tid(59, "%0000003b"), Attrs([Attr("address","0x8CC"), -Attr("insn","mov x29, sp")]), Var("R29",Imm(64)), Var("R31",Imm(64))), -Def(Tid(66, "%00000042"), Attrs([Attr("address","0x8D0"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R29",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(71, "%00000047"), Attrs([Attr("address","0x8D0"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R30",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(75, "%0000004b"), Attrs([Attr("address","0x8D0"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(16,64)))]), Jmps([Call(Tid(80, "%00000050"), - Attrs([Attr("address","0x8D4"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), Sub(Tid(1_803, "@_init"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x630")]), - "_init", Args([Arg(Tid(1_831, "%00000727"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("_init_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(1_618, "@_init"), - Attrs([Attr("address","0x630")]), Phis([]), -Defs([Def(Tid(1_624, "%00000658"), Attrs([Attr("address","0x634"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("#6",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(18446744073709551600,64))), -Def(Tid(1_630, "%0000065e"), Attrs([Attr("address","0x634"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("#6",Imm(64)),Var("R29",Imm(64)),LittleEndian(),64)), -Def(Tid(1_636, "%00000664"), Attrs([Attr("address","0x634"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("#6",Imm(64)),Int(8,64)),Var("R30",Imm(64)),LittleEndian(),64)), -Def(Tid(1_640, "%00000668"), Attrs([Attr("address","0x634"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("R31",Imm(64)), -Var("#6",Imm(64))), Def(Tid(1_646, "%0000066e"), - Attrs([Attr("address","0x638"), Attr("insn","mov x29, sp")]), - Var("R29",Imm(64)), Var("R31",Imm(64))), Def(Tid(1_651, "%00000673"), - Attrs([Attr("address","0x63C"), Attr("insn","bl #0x178")]), - Var("R30",Imm(64)), Int(1600,64))]), Jmps([Call(Tid(1_653, "%00000675"), - Attrs([Attr("address","0x63C"), Attr("insn","bl #0x178")]), Int(1,1), -(Direct(Tid(1_808, "@call_weak_fn")),Direct(Tid(1_655, "%00000677"))))])), -Blk(Tid(1_655, "%00000677"), Attrs([Attr("address","0x640")]), Phis([]), -Defs([Def(Tid(1_660, "%0000067c"), Attrs([Attr("address","0x640"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R29",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(1_665, "%00000681"), Attrs([Attr("address","0x640"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R30",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(1_669, "%00000685"), Attrs([Attr("address","0x640"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(16,64)))]), Jmps([Call(Tid(1_674, "%0000068a"), - Attrs([Attr("address","0x644"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), Sub(Tid(1_804, "@_start"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x780"), -Attr("entry-point","()")]), "_start", Args([Arg(Tid(1_832, "%00000728"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("_start_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(783, "@_start"), - Attrs([Attr("address","0x780")]), Phis([]), Defs([Def(Tid(788, "%00000314"), - Attrs([Attr("address","0x784"), Attr("insn","mov x29, #0x0")]), - Var("R29",Imm(64)), Int(0,64)), Def(Tid(793, "%00000319"), - Attrs([Attr("address","0x788"), Attr("insn","mov x30, #0x0")]), - Var("R30",Imm(64)), Int(0,64)), Def(Tid(799, "%0000031f"), - Attrs([Attr("address","0x78C"), Attr("insn","mov x5, x0")]), - Var("R5",Imm(64)), Var("R0",Imm(64))), Def(Tid(806, "%00000326"), - Attrs([Attr("address","0x790"), Attr("insn","ldr x1, [sp]")]), - Var("R1",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(812, "%0000032c"), Attrs([Attr("address","0x794"), -Attr("insn","add x2, sp, #0x8")]), Var("R2",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(8,64))), Def(Tid(818, "%00000332"), - Attrs([Attr("address","0x798"), Attr("insn","mov x6, sp")]), - Var("R6",Imm(64)), Var("R31",Imm(64))), Def(Tid(823, "%00000337"), - Attrs([Attr("address","0x79C"), Attr("insn","adrp x0, #65536")]), - Var("R0",Imm(64)), Int(65536,64)), Def(Tid(830, "%0000033e"), - Attrs([Attr("address","0x7A0"), Attr("insn","ldr x0, [x0, #0xff0]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(4080,64)),LittleEndian(),64)), -Def(Tid(835, "%00000343"), Attrs([Attr("address","0x7A4"), -Attr("insn","mov x3, #0x0")]), Var("R3",Imm(64)), Int(0,64)), -Def(Tid(840, "%00000348"), Attrs([Attr("address","0x7A8"), -Attr("insn","mov x4, #0x0")]), Var("R4",Imm(64)), Int(0,64)), -Def(Tid(845, "%0000034d"), Attrs([Attr("address","0x7AC"), -Attr("insn","bl #-0x13c")]), Var("R30",Imm(64)), Int(1968,64))]), -Jmps([Call(Tid(848, "%00000350"), Attrs([Attr("address","0x7AC"), -Attr("insn","bl #-0x13c")]), Int(1,1), -(Direct(Tid(1_800, "@__libc_start_main")),Direct(Tid(850, "%00000352"))))])), -Blk(Tid(850, "%00000352"), Attrs([Attr("address","0x7B0")]), Phis([]), -Defs([Def(Tid(853, "%00000355"), Attrs([Attr("address","0x7B0"), -Attr("insn","bl #-0xf0")]), Var("R30",Imm(64)), Int(1972,64))]), -Jmps([Call(Tid(856, "%00000358"), Attrs([Attr("address","0x7B0"), -Attr("insn","bl #-0xf0")]), Int(1,1), -(Direct(Tid(1_807, "@abort")),Direct(Tid(1_805, "%0000070d"))))])), -Blk(Tid(1_805, "%0000070d"), Attrs([]), Phis([]), Defs([]), -Jmps([Call(Tid(1_806, "%0000070e"), Attrs([]), Int(1,1), -(Direct(Tid(1_808, "@call_weak_fn")),))]))])), Sub(Tid(1_807, "@abort"), - Attrs([Attr("noreturn","()"), Attr("c.proto","void (*)(void)"), -Attr("address","0x6C0"), Attr("stub","()")]), "abort", Args([]), -Blks([Blk(Tid(854, "@abort"), Attrs([Attr("address","0x6C0")]), Phis([]), -Defs([Def(Tid(1_550, "%0000060e"), Attrs([Attr("address","0x6C0"), -Attr("insn","adrp x16, #65536")]), Var("R16",Imm(64)), Int(65536,64)), -Def(Tid(1_557, "%00000615"), Attrs([Attr("address","0x6C4"), -Attr("insn","ldr x17, [x16, #0xfc0]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(4032,64)),LittleEndian(),64)), -Def(Tid(1_563, "%0000061b"), Attrs([Attr("address","0x6C8"), -Attr("insn","add x16, x16, #0xfc0")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(4032,64)))]), Jmps([Call(Tid(1_568, "%00000620"), - Attrs([Attr("address","0x6CC"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), Sub(Tid(1_808, "@call_weak_fn"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x7B4")]), - "call_weak_fn", Args([Arg(Tid(1_833, "%00000729"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("call_weak_fn_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(858, "@call_weak_fn"), - Attrs([Attr("address","0x7B4")]), Phis([]), Defs([Def(Tid(861, "%0000035d"), - Attrs([Attr("address","0x7B4"), Attr("insn","adrp x0, #65536")]), - Var("R0",Imm(64)), Int(65536,64)), Def(Tid(868, "%00000364"), - Attrs([Attr("address","0x7B8"), Attr("insn","ldr x0, [x0, #0xfe8]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(4072,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(874, "%0000036a"), Attrs([Attr("address","0x7BC"), -Attr("insn","cbz x0, #0x8")]), EQ(Var("R0",Imm(64)),Int(0,64)), -Direct(Tid(872, "%00000368"))), Goto(Tid(1_809, "%00000711"), Attrs([]), - Int(1,1), Direct(Tid(1_230, "%000004ce")))])), Blk(Tid(872, "%00000368"), - Attrs([Attr("address","0x7C4")]), Phis([]), Defs([]), -Jmps([Call(Tid(880, "%00000370"), Attrs([Attr("address","0x7C4"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))])), -Blk(Tid(1_230, "%000004ce"), Attrs([Attr("address","0x7C0")]), Phis([]), -Defs([]), Jmps([Goto(Tid(1_233, "%000004d1"), Attrs([Attr("address","0x7C0"), -Attr("insn","b #-0x110")]), Int(1,1), -Direct(Tid(1_231, "@__gmon_start__")))])), Blk(Tid(1_231, "@__gmon_start__"), - Attrs([Attr("address","0x6B0")]), Phis([]), -Defs([Def(Tid(1_528, "%000005f8"), Attrs([Attr("address","0x6B0"), -Attr("insn","adrp x16, #65536")]), Var("R16",Imm(64)), Int(65536,64)), -Def(Tid(1_535, "%000005ff"), Attrs([Attr("address","0x6B4"), -Attr("insn","ldr x17, [x16, #0xfb8]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(4024,64)),LittleEndian(),64)), -Def(Tid(1_541, "%00000605"), Attrs([Attr("address","0x6B8"), -Attr("insn","add x16, x16, #0xfb8")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(4024,64)))]), Jmps([Call(Tid(1_546, "%0000060a"), - Attrs([Attr("address","0x6BC"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), -Sub(Tid(1_810, "@deregister_tm_clones"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x7D0")]), - "deregister_tm_clones", Args([Arg(Tid(1_834, "%0000072a"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("deregister_tm_clones_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(886, "@deregister_tm_clones"), - Attrs([Attr("address","0x7D0")]), Phis([]), Defs([Def(Tid(889, "%00000379"), - Attrs([Attr("address","0x7D0"), Attr("insn","adrp x0, #69632")]), - Var("R0",Imm(64)), Int(69632,64)), Def(Tid(895, "%0000037f"), - Attrs([Attr("address","0x7D4"), Attr("insn","add x0, x0, #0x10")]), - Var("R0",Imm(64)), PLUS(Var("R0",Imm(64)),Int(16,64))), -Def(Tid(900, "%00000384"), Attrs([Attr("address","0x7D8"), -Attr("insn","adrp x1, #69632")]), Var("R1",Imm(64)), Int(69632,64)), -Def(Tid(906, "%0000038a"), Attrs([Attr("address","0x7DC"), -Attr("insn","add x1, x1, #0x10")]), Var("R1",Imm(64)), -PLUS(Var("R1",Imm(64)),Int(16,64))), Def(Tid(912, "%00000390"), - Attrs([Attr("address","0x7E0"), Attr("insn","cmp x1, x0")]), - Var("#2",Imm(64)), NOT(Var("R0",Imm(64)))), Def(Tid(917, "%00000395"), - Attrs([Attr("address","0x7E0"), Attr("insn","cmp x1, x0")]), - Var("#3",Imm(64)), PLUS(Var("R1",Imm(64)),NOT(Var("R0",Imm(64))))), -Def(Tid(923, "%0000039b"), Attrs([Attr("address","0x7E0"), -Attr("insn","cmp x1, x0")]), Var("VF",Imm(1)), -NEQ(SIGNED(65,PLUS(Var("#3",Imm(64)),Int(1,64))),PLUS(PLUS(SIGNED(65,Var("R1",Imm(64))),SIGNED(65,Var("#2",Imm(64)))),Int(1,65)))), -Def(Tid(929, "%000003a1"), Attrs([Attr("address","0x7E0"), -Attr("insn","cmp x1, x0")]), Var("CF",Imm(1)), -NEQ(UNSIGNED(65,PLUS(Var("#3",Imm(64)),Int(1,64))),PLUS(PLUS(UNSIGNED(65,Var("R1",Imm(64))),UNSIGNED(65,Var("#2",Imm(64)))),Int(1,65)))), -Def(Tid(933, "%000003a5"), Attrs([Attr("address","0x7E0"), -Attr("insn","cmp x1, x0")]), Var("ZF",Imm(1)), -EQ(PLUS(Var("#3",Imm(64)),Int(1,64)),Int(0,64))), Def(Tid(937, "%000003a9"), - Attrs([Attr("address","0x7E0"), Attr("insn","cmp x1, x0")]), - Var("NF",Imm(1)), Extract(63,63,PLUS(Var("#3",Imm(64)),Int(1,64))))]), -Jmps([Goto(Tid(943, "%000003af"), Attrs([Attr("address","0x7E4"), -Attr("insn","b.eq #0x18")]), EQ(Var("ZF",Imm(1)),Int(1,1)), -Direct(Tid(941, "%000003ad"))), Goto(Tid(1_811, "%00000713"), Attrs([]), - Int(1,1), Direct(Tid(1_200, "%000004b0")))])), Blk(Tid(1_200, "%000004b0"), - Attrs([Attr("address","0x7E8")]), Phis([]), -Defs([Def(Tid(1_203, "%000004b3"), Attrs([Attr("address","0x7E8"), -Attr("insn","adrp x1, #65536")]), Var("R1",Imm(64)), Int(65536,64)), -Def(Tid(1_210, "%000004ba"), Attrs([Attr("address","0x7EC"), -Attr("insn","ldr x1, [x1, #0xfd8]")]), Var("R1",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R1",Imm(64)),Int(4056,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(1_215, "%000004bf"), Attrs([Attr("address","0x7F0"), -Attr("insn","cbz x1, #0xc")]), EQ(Var("R1",Imm(64)),Int(0,64)), -Direct(Tid(941, "%000003ad"))), Goto(Tid(1_812, "%00000714"), Attrs([]), - Int(1,1), Direct(Tid(1_219, "%000004c3")))])), Blk(Tid(941, "%000003ad"), - Attrs([Attr("address","0x7FC")]), Phis([]), Defs([]), -Jmps([Call(Tid(949, "%000003b5"), Attrs([Attr("address","0x7FC"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))])), -Blk(Tid(1_219, "%000004c3"), Attrs([Attr("address","0x7F4")]), Phis([]), -Defs([Def(Tid(1_223, "%000004c7"), Attrs([Attr("address","0x7F4"), -Attr("insn","mov x16, x1")]), Var("R16",Imm(64)), Var("R1",Imm(64)))]), -Jmps([Call(Tid(1_228, "%000004cc"), Attrs([Attr("address","0x7F8"), -Attr("insn","br x16")]), Int(1,1), (Indirect(Var("R16",Imm(64))),))]))])), -Sub(Tid(1_813, "@frame_dummy"), Attrs([Attr("c.proto","signed (*)(void)"), -Attr("address","0x890")]), "frame_dummy", Args([Arg(Tid(1_835, "%0000072b"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("frame_dummy_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(1_101, "@frame_dummy"), - Attrs([Attr("address","0x890")]), Phis([]), Defs([]), -Jmps([Call(Tid(1_103, "%0000044f"), Attrs([Attr("address","0x890"), -Attr("insn","b #-0x90")]), Int(1,1), -(Direct(Tid(1_818, "@register_tm_clones")),))]))])), Sub(Tid(1_814, "@free"), - Attrs([Attr("c.proto","void (*)(void* ptr)"), Attr("address","0x6D0"), -Attr("stub","()")]), "free", Args([Arg(Tid(1_836, "%0000072c"), - Attrs([Attr("c.layout","*[ : 8]"), Attr("c.data","{} ptr"), -Attr("c.type","void*")]), Var("free_ptr",Imm(64)), Var("R0",Imm(64)), -Both())]), Blks([Blk(Tid(732, "@free"), Attrs([Attr("address","0x6D0")]), - Phis([]), Defs([Def(Tid(1_572, "%00000624"), Attrs([Attr("address","0x6D0"), -Attr("insn","adrp x16, #65536")]), Var("R16",Imm(64)), Int(65536,64)), -Def(Tid(1_579, "%0000062b"), Attrs([Attr("address","0x6D4"), -Attr("insn","ldr x17, [x16, #0xfc8]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(4040,64)),LittleEndian(),64)), -Def(Tid(1_585, "%00000631"), Attrs([Attr("address","0x6D8"), -Attr("insn","add x16, x16, #0xfc8")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(4040,64)))]), Jmps([Call(Tid(1_590, "%00000636"), - Attrs([Attr("address","0x6DC"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), Sub(Tid(1_815, "@main"), - Attrs([Attr("c.proto","signed (*)(signed argc, const char** argv)"), -Attr("address","0x700")]), "main", Args([Arg(Tid(1_837, "%0000072d"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("main_argc",Imm(32)), -LOW(32,Var("R0",Imm(64))), In()), Arg(Tid(1_838, "%0000072e"), - Attrs([Attr("c.layout","**[char : 8]"), Attr("c.data","Top:u8 ptr ptr"), -Attr("c.type"," const char**")]), Var("main_argv",Imm(64)), -Var("R1",Imm(64)), Both()), Arg(Tid(1_839, "%0000072f"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("main_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(536, "@main"), - Attrs([Attr("address","0x700")]), Phis([]), Defs([Def(Tid(540, "%0000021c"), - Attrs([Attr("address","0x700"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("#1",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(18446744073709551584,64))), -Def(Tid(546, "%00000222"), Attrs([Attr("address","0x700"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("#1",Imm(64)),Var("R29",Imm(64)),LittleEndian(),64)), -Def(Tid(552, "%00000228"), Attrs([Attr("address","0x700"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("#1",Imm(64)),Int(8,64)),Var("R30",Imm(64)),LittleEndian(),64)), -Def(Tid(556, "%0000022c"), Attrs([Attr("address","0x700"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("R31",Imm(64)), -Var("#1",Imm(64))), Def(Tid(561, "%00000231"), - Attrs([Attr("address","0x704"), Attr("insn","mov x0, #0x1")]), - Var("R0",Imm(64)), Int(1,64)), Def(Tid(567, "%00000237"), - Attrs([Attr("address","0x708"), Attr("insn","mov x29, sp")]), - Var("R29",Imm(64)), Var("R31",Imm(64))), Def(Tid(575, "%0000023f"), - Attrs([Attr("address","0x70C"), Attr("insn","str x19, [sp, #0x10]")]), - Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(16,64)),Var("R19",Imm(64)),LittleEndian(),64)), -Def(Tid(580, "%00000244"), Attrs([Attr("address","0x710"), -Attr("insn","bl #-0x80")]), Var("R30",Imm(64)), Int(1812,64))]), -Jmps([Call(Tid(583, "%00000247"), Attrs([Attr("address","0x710"), -Attr("insn","bl #-0x80")]), Int(1,1), -(Direct(Tid(1_816, "@malloc")),Direct(Tid(585, "%00000249"))))])), -Blk(Tid(585, "%00000249"), Attrs([Attr("address","0x714")]), Phis([]), -Defs([Def(Tid(588, "%0000024c"), Attrs([Attr("address","0x714"), -Attr("insn","mov w1, #0x41")]), Var("R1",Imm(64)), Int(65,64)), -Def(Tid(596, "%00000254"), Attrs([Attr("address","0x718"), -Attr("insn","strb w1, [x0]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("R0",Imm(64)),Extract(7,0,Var("R1",Imm(64))),LittleEndian(),8)), -Def(Tid(602, "%0000025a"), Attrs([Attr("address","0x71C"), -Attr("insn","mov x19, x0")]), Var("R19",Imm(64)), Var("R0",Imm(64))), -Def(Tid(607, "%0000025f"), Attrs([Attr("address","0x720"), -Attr("insn","bl #0x180")]), Var("R30",Imm(64)), Int(1828,64))]), -Jmps([Call(Tid(610, "%00000262"), Attrs([Attr("address","0x720"), -Attr("insn","bl #0x180")]), Int(1,1), -(Direct(Tid(1_817, "@printCharValue")),Direct(Tid(666, "%0000029a"))))])), -Blk(Tid(666, "%0000029a"), Attrs([Attr("address","0x724")]), Phis([]), -Defs([Def(Tid(669, "%0000029d"), Attrs([Attr("address","0x724"), -Attr("insn","mov w2, #0x2a")]), Var("R2",Imm(64)), Int(42,64)), -Def(Tid(674, "%000002a2"), Attrs([Attr("address","0x728"), -Attr("insn","adrp x1, #0")]), Var("R1",Imm(64)), Int(0,64)), -Def(Tid(679, "%000002a7"), Attrs([Attr("address","0x72C"), -Attr("insn","mov w0, #0x1")]), Var("R0",Imm(64)), Int(1,64)), -Def(Tid(685, "%000002ad"), Attrs([Attr("address","0x730"), -Attr("insn","add x1, x1, #0x8f8")]), Var("R1",Imm(64)), -PLUS(Var("R1",Imm(64)),Int(2296,64))), Def(Tid(690, "%000002b2"), - Attrs([Attr("address","0x734"), Attr("insn","bl #-0x94")]), - Var("R30",Imm(64)), Int(1848,64))]), Jmps([Call(Tid(692, "%000002b4"), - Attrs([Attr("address","0x734"), Attr("insn","bl #-0x94")]), Int(1,1), -(Direct(Tid(1_801, "@__printf_chk")),Direct(Tid(694, "%000002b6"))))])), -Blk(Tid(694, "%000002b6"), Attrs([Attr("address","0x738")]), Phis([]), -Defs([Def(Tid(697, "%000002b9"), Attrs([Attr("address","0x738"), -Attr("insn","adrp x1, #0")]), Var("R1",Imm(64)), Int(0,64)), -Def(Tid(703, "%000002bf"), Attrs([Attr("address","0x73C"), -Attr("insn","add x1, x1, #0x908")]), Var("R1",Imm(64)), -PLUS(Var("R1",Imm(64)),Int(2312,64))), Def(Tid(708, "%000002c4"), - Attrs([Attr("address","0x740"), Attr("insn","mov w2, #0xa")]), - Var("R2",Imm(64)), Int(10,64)), Def(Tid(713, "%000002c9"), - Attrs([Attr("address","0x744"), Attr("insn","mov w0, #0x1")]), - Var("R0",Imm(64)), Int(1,64)), Def(Tid(718, "%000002ce"), - Attrs([Attr("address","0x748"), Attr("insn","bl #-0xa8")]), - Var("R30",Imm(64)), Int(1868,64))]), Jmps([Call(Tid(720, "%000002d0"), - Attrs([Attr("address","0x748"), Attr("insn","bl #-0xa8")]), Int(1,1), -(Direct(Tid(1_801, "@__printf_chk")),Direct(Tid(722, "%000002d2"))))])), -Blk(Tid(722, "%000002d2"), Attrs([Attr("address","0x74C")]), Phis([]), -Defs([Def(Tid(726, "%000002d6"), Attrs([Attr("address","0x74C"), -Attr("insn","mov x0, x19")]), Var("R0",Imm(64)), Var("R19",Imm(64))), -Def(Tid(731, "%000002db"), Attrs([Attr("address","0x750"), -Attr("insn","bl #-0x80")]), Var("R30",Imm(64)), Int(1876,64))]), -Jmps([Call(Tid(734, "%000002de"), Attrs([Attr("address","0x750"), -Attr("insn","bl #-0x80")]), Int(1,1), -(Direct(Tid(1_814, "@free")),Direct(Tid(736, "%000002e0"))))])), -Blk(Tid(736, "%000002e0"), Attrs([Attr("address","0x754")]), Phis([]), -Defs([Def(Tid(739, "%000002e3"), Attrs([Attr("address","0x754"), -Attr("insn","mov w0, #0x0")]), Var("R0",Imm(64)), Int(0,64)), -Def(Tid(746, "%000002ea"), Attrs([Attr("address","0x758"), -Attr("insn","ldr x19, [sp, #0x10]")]), Var("R19",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(16,64)),LittleEndian(),64)), -Def(Tid(753, "%000002f1"), Attrs([Attr("address","0x75C"), -Attr("insn","ldp x29, x30, [sp], #0x20")]), Var("R29",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(758, "%000002f6"), Attrs([Attr("address","0x75C"), -Attr("insn","ldp x29, x30, [sp], #0x20")]), Var("R30",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(762, "%000002fa"), Attrs([Attr("address","0x75C"), -Attr("insn","ldp x29, x30, [sp], #0x20")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(32,64)))]), Jmps([Call(Tid(767, "%000002ff"), - Attrs([Attr("address","0x760"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), Sub(Tid(1_816, "@malloc"), - Attrs([Attr("c.proto","void* (*)(unsigned long size)"), -Attr("address","0x690"), Attr("malloc","()"), Attr("stub","()")]), "malloc", - Args([Arg(Tid(1_840, "%00000730"), Attrs([Attr("alloc-size","()"), -Attr("c.layout","[unsigned long : 64]"), Attr("c.data","Top:u64"), -Attr("c.type","unsigned long")]), Var("malloc_size",Imm(64)), -Var("R0",Imm(64)), In()), Arg(Tid(1_841, "%00000731"), - Attrs([Attr("warn-unused","()"), Attr("c.layout","*[ : 8]"), -Attr("c.data","{} ptr"), Attr("c.type","void*")]), - Var("malloc_result",Imm(64)), Var("R0",Imm(64)), Out())]), -Blks([Blk(Tid(581, "@malloc"), Attrs([Attr("address","0x690")]), Phis([]), -Defs([Def(Tid(1_484, "%000005cc"), Attrs([Attr("address","0x690"), -Attr("insn","adrp x16, #65536")]), Var("R16",Imm(64)), Int(65536,64)), -Def(Tid(1_491, "%000005d3"), Attrs([Attr("address","0x694"), -Attr("insn","ldr x17, [x16, #0xfa8]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(4008,64)),LittleEndian(),64)), -Def(Tid(1_497, "%000005d9"), Attrs([Attr("address","0x698"), -Attr("insn","add x16, x16, #0xfa8")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(4008,64)))]), Jmps([Call(Tid(1_502, "%000005de"), - Attrs([Attr("address","0x69C"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), Sub(Tid(1_817, "@printCharValue"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x8A0")]), - "printCharValue", Args([Arg(Tid(1_842, "%00000732"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("printCharValue_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(608, "@printCharValue"), - Attrs([Attr("address","0x8A0")]), Phis([]), Defs([Def(Tid(615, "%00000267"), - Attrs([Attr("address","0x8A0"), Attr("insn","mov x3, x0")]), - Var("R3",Imm(64)), Var("R0",Imm(64))), Def(Tid(620, "%0000026c"), - Attrs([Attr("address","0x8A4"), Attr("insn","mov w0, #0x1")]), - Var("R0",Imm(64)), Int(1,64)), Def(Tid(625, "%00000271"), - Attrs([Attr("address","0x8A8"), Attr("insn","adrp x1, #0")]), - Var("R1",Imm(64)), Int(0,64)), Def(Tid(631, "%00000277"), - Attrs([Attr("address","0x8AC"), Attr("insn","add x1, x1, #0x8e0")]), - Var("R1",Imm(64)), PLUS(Var("R1",Imm(64)),Int(2272,64))), -Def(Tid(638, "%0000027e"), Attrs([Attr("address","0x8B0"), -Attr("insn","ldrb w2, [x3]")]), Var("R2",Imm(64)), -UNSIGNED(64,Load(Var("mem",Mem(64,8)),Var("R3",Imm(64)),LittleEndian(),8))), -Def(Tid(645, "%00000285"), Attrs([Attr("address","0x8B4"), -Attr("insn","add w2, w2, w0")]), Var("R2",Imm(64)), -UNSIGNED(64,PLUS(Extract(31,0,Var("R2",Imm(64))),Extract(31,0,Var("R0",Imm(64)))))), -Def(Tid(651, "%0000028b"), Attrs([Attr("address","0x8B8"), -Attr("insn","and w2, w2, #0xff")]), Var("R2",Imm(64)), -UNSIGNED(64,Concat(Int(0,24),Extract(7,0,Var("R2",Imm(64)))))), -Def(Tid(659, "%00000293"), Attrs([Attr("address","0x8BC"), -Attr("insn","strb w2, [x3]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("R3",Imm(64)),Extract(7,0,Var("R2",Imm(64))),LittleEndian(),8))]), -Jmps([Call(Tid(664, "%00000298"), Attrs([Attr("address","0x8C0"), -Attr("insn","b #-0x220")]), Int(1,1), -(Direct(Tid(1_801, "@__printf_chk")),))]))])), -Sub(Tid(1_818, "@register_tm_clones"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x800")]), - "register_tm_clones", Args([Arg(Tid(1_843, "%00000733"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("register_tm_clones_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(951, "@register_tm_clones"), Attrs([Attr("address","0x800")]), - Phis([]), Defs([Def(Tid(954, "%000003ba"), Attrs([Attr("address","0x800"), -Attr("insn","adrp x0, #69632")]), Var("R0",Imm(64)), Int(69632,64)), -Def(Tid(960, "%000003c0"), Attrs([Attr("address","0x804"), -Attr("insn","add x0, x0, #0x10")]), Var("R0",Imm(64)), -PLUS(Var("R0",Imm(64)),Int(16,64))), Def(Tid(965, "%000003c5"), - Attrs([Attr("address","0x808"), Attr("insn","adrp x1, #69632")]), - Var("R1",Imm(64)), Int(69632,64)), Def(Tid(971, "%000003cb"), - Attrs([Attr("address","0x80C"), Attr("insn","add x1, x1, #0x10")]), - Var("R1",Imm(64)), PLUS(Var("R1",Imm(64)),Int(16,64))), -Def(Tid(978, "%000003d2"), Attrs([Attr("address","0x810"), -Attr("insn","sub x1, x1, x0")]), Var("R1",Imm(64)), -PLUS(PLUS(Var("R1",Imm(64)),NOT(Var("R0",Imm(64)))),Int(1,64))), -Def(Tid(984, "%000003d8"), Attrs([Attr("address","0x814"), -Attr("insn","lsr x2, x1, #63")]), Var("R2",Imm(64)), -Concat(Int(0,63),Extract(63,63,Var("R1",Imm(64))))), -Def(Tid(991, "%000003df"), Attrs([Attr("address","0x818"), -Attr("insn","add x1, x2, x1, asr #3")]), Var("R1",Imm(64)), -PLUS(Var("R2",Imm(64)),ARSHIFT(Var("R1",Imm(64)),Int(3,3)))), -Def(Tid(997, "%000003e5"), Attrs([Attr("address","0x81C"), -Attr("insn","asr x1, x1, #1")]), Var("R1",Imm(64)), -SIGNED(64,Extract(63,1,Var("R1",Imm(64)))))]), -Jmps([Goto(Tid(1_003, "%000003eb"), Attrs([Attr("address","0x820"), -Attr("insn","cbz x1, #0x18")]), EQ(Var("R1",Imm(64)),Int(0,64)), -Direct(Tid(1_001, "%000003e9"))), Goto(Tid(1_819, "%0000071b"), Attrs([]), - Int(1,1), Direct(Tid(1_170, "%00000492")))])), Blk(Tid(1_170, "%00000492"), - Attrs([Attr("address","0x824")]), Phis([]), -Defs([Def(Tid(1_173, "%00000495"), Attrs([Attr("address","0x824"), -Attr("insn","adrp x2, #65536")]), Var("R2",Imm(64)), Int(65536,64)), -Def(Tid(1_180, "%0000049c"), Attrs([Attr("address","0x828"), -Attr("insn","ldr x2, [x2, #0xff8]")]), Var("R2",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R2",Imm(64)),Int(4088,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(1_185, "%000004a1"), Attrs([Attr("address","0x82C"), -Attr("insn","cbz x2, #0xc")]), EQ(Var("R2",Imm(64)),Int(0,64)), -Direct(Tid(1_001, "%000003e9"))), Goto(Tid(1_820, "%0000071c"), Attrs([]), - Int(1,1), Direct(Tid(1_189, "%000004a5")))])), Blk(Tid(1_001, "%000003e9"), - Attrs([Attr("address","0x838")]), Phis([]), Defs([]), -Jmps([Call(Tid(1_009, "%000003f1"), Attrs([Attr("address","0x838"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))])), -Blk(Tid(1_189, "%000004a5"), Attrs([Attr("address","0x830")]), Phis([]), -Defs([Def(Tid(1_193, "%000004a9"), Attrs([Attr("address","0x830"), -Attr("insn","mov x16, x2")]), Var("R16",Imm(64)), Var("R2",Imm(64)))]), -Jmps([Call(Tid(1_198, "%000004ae"), Attrs([Attr("address","0x834"), -Attr("insn","br x16")]), Int(1,1), -(Indirect(Var("R16",Imm(64))),))]))]))]))) \ No newline at end of file diff --git a/src/test/correct/malloc_with_local3/gcc_O2/malloc_with_local3.bir b/src/test/correct/malloc_with_local3/gcc_O2/malloc_with_local3.bir deleted file mode 100644 index 431b156db..000000000 --- a/src/test/correct/malloc_with_local3/gcc_O2/malloc_with_local3.bir +++ /dev/null @@ -1,309 +0,0 @@ -0000071d: program -00000703: sub __cxa_finalize(__cxa_finalize_result) -0000071e: __cxa_finalize_result :: out u32 = low:32[R0] - -0000048e: -000005b6: R16 := 0x10000 -000005bd: R17 := mem[R16 + 0xFA0, el]:u64 -000005c3: R16 := R16 + 0xFA0 -000005c8: call R17 with noreturn - -00000704: sub __do_global_dtors_aux(__do_global_dtors_aux_result) -0000071f: __do_global_dtors_aux_result :: out u32 = low:32[R0] - -000003f5: -000003f9: #4 := R31 - 0x20 -000003ff: mem := mem with [#4, el]:u64 <- R29 -00000405: mem := mem with [#4 + 8, el]:u64 <- R30 -00000409: R31 := #4 -0000040f: R29 := R31 -00000417: mem := mem with [R31 + 0x10, el]:u64 <- R19 -0000041c: R19 := 0x11000 -00000423: R0 := pad:64[mem[R19 + 0x10]] -0000042a: when 31:0[R0] <> 0 goto %00000428 -00000705: goto %00000457 - -00000457: -0000045a: R0 := 0x10000 -00000461: R0 := mem[R0 + 0xFE0, el]:u64 -00000467: when R0 = 0 goto %00000465 -00000706: goto %0000047e - -0000047e: -00000481: R0 := 0x11000 -00000488: R0 := mem[R0 + 8, el]:u64 -0000048d: R30 := 0x870 -00000490: call @__cxa_finalize with return %00000465 - -00000465: -0000046d: R30 := 0x874 -0000046f: call @deregister_tm_clones with return %00000471 - -00000471: -00000474: R0 := 1 -0000047c: mem := mem with [R19 + 0x10] <- 7:0[R0] -00000707: goto %00000428 - -00000428: -00000432: R19 := mem[R31 + 0x10, el]:u64 -00000439: R29 := mem[R31, el]:u64 -0000043e: R30 := mem[R31 + 8, el]:u64 -00000442: R31 := R31 + 0x20 -00000447: call R30 with noreturn - -00000708: sub __libc_start_main(__libc_start_main_main, __libc_start_main_arg2, __libc_start_main_arg3, __libc_start_main_auxv, __libc_start_main_result) -00000720: __libc_start_main_main :: in u64 = R0 -00000721: __libc_start_main_arg2 :: in u32 = low:32[R1] -00000722: __libc_start_main_arg3 :: in out u64 = R2 -00000723: __libc_start_main_auxv :: in out u64 = R3 -00000724: __libc_start_main_result :: out u32 = low:32[R0] - -0000034e: -000005a0: R16 := 0x10000 -000005a7: R17 := mem[R16 + 0xF98, el]:u64 -000005ad: R16 := R16 + 0xF98 -000005b2: call R17 with noreturn - -00000709: sub __printf_chk(__printf_chk_result) -00000725: __printf_chk_result :: out u32 = low:32[R0] - -00000296: -000005e2: R16 := 0x10000 -000005e9: R17 := mem[R16 + 0xFB0, el]:u64 -000005ef: R16 := R16 + 0xFB0 -000005f4: call R17 with noreturn - -0000070a: sub _fini(_fini_result) -00000726: _fini_result :: out u32 = low:32[R0] - -0000001f: -00000025: #0 := R31 - 0x10 -0000002b: mem := mem with [#0, el]:u64 <- R29 -00000031: mem := mem with [#0 + 8, el]:u64 <- R30 -00000035: R31 := #0 -0000003b: R29 := R31 -00000042: R29 := mem[R31, el]:u64 -00000047: R30 := mem[R31 + 8, el]:u64 -0000004b: R31 := R31 + 0x10 -00000050: call R30 with noreturn - -0000070b: sub _init(_init_result) -00000727: _init_result :: out u32 = low:32[R0] - -00000652: -00000658: #6 := R31 - 0x10 -0000065e: mem := mem with [#6, el]:u64 <- R29 -00000664: mem := mem with [#6 + 8, el]:u64 <- R30 -00000668: R31 := #6 -0000066e: R29 := R31 -00000673: R30 := 0x640 -00000675: call @call_weak_fn with return %00000677 - -00000677: -0000067c: R29 := mem[R31, el]:u64 -00000681: R30 := mem[R31 + 8, el]:u64 -00000685: R31 := R31 + 0x10 -0000068a: call R30 with noreturn - -0000070c: sub _start(_start_result) -00000728: _start_result :: out u32 = low:32[R0] - -0000030f: -00000314: R29 := 0 -00000319: R30 := 0 -0000031f: R5 := R0 -00000326: R1 := mem[R31, el]:u64 -0000032c: R2 := R31 + 8 -00000332: R6 := R31 -00000337: R0 := 0x10000 -0000033e: R0 := mem[R0 + 0xFF0, el]:u64 -00000343: R3 := 0 -00000348: R4 := 0 -0000034d: R30 := 0x7B0 -00000350: call @__libc_start_main with return %00000352 - -00000352: -00000355: R30 := 0x7B4 -00000358: call @abort with return %0000070d - -0000070d: -0000070e: call @call_weak_fn with noreturn - -0000070f: sub abort() - - -00000356: -0000060e: R16 := 0x10000 -00000615: R17 := mem[R16 + 0xFC0, el]:u64 -0000061b: R16 := R16 + 0xFC0 -00000620: call R17 with noreturn - -00000710: sub call_weak_fn(call_weak_fn_result) -00000729: call_weak_fn_result :: out u32 = low:32[R0] - -0000035a: -0000035d: R0 := 0x10000 -00000364: R0 := mem[R0 + 0xFE8, el]:u64 -0000036a: when R0 = 0 goto %00000368 -00000711: goto %000004ce - -00000368: -00000370: call R30 with noreturn - -000004ce: -000004d1: goto @__gmon_start__ - -000004cf: -000005f8: R16 := 0x10000 -000005ff: R17 := mem[R16 + 0xFB8, el]:u64 -00000605: R16 := R16 + 0xFB8 -0000060a: call R17 with noreturn - -00000712: sub deregister_tm_clones(deregister_tm_clones_result) -0000072a: deregister_tm_clones_result :: out u32 = low:32[R0] - -00000376: -00000379: R0 := 0x11000 -0000037f: R0 := R0 + 0x10 -00000384: R1 := 0x11000 -0000038a: R1 := R1 + 0x10 -00000390: #2 := ~R0 -00000395: #3 := R1 + ~R0 -0000039b: VF := extend:65[#3 + 1] <> extend:65[R1] + extend:65[#2] + 1 -000003a1: CF := pad:65[#3 + 1] <> pad:65[R1] + pad:65[#2] + 1 -000003a5: ZF := #3 + 1 = 0 -000003a9: NF := 63:63[#3 + 1] -000003af: when ZF goto %000003ad -00000713: goto %000004b0 - -000004b0: -000004b3: R1 := 0x10000 -000004ba: R1 := mem[R1 + 0xFD8, el]:u64 -000004bf: when R1 = 0 goto %000003ad -00000714: goto %000004c3 - -000003ad: -000003b5: call R30 with noreturn - -000004c3: -000004c7: R16 := R1 -000004cc: call R16 with noreturn - -00000715: sub frame_dummy(frame_dummy_result) -0000072b: frame_dummy_result :: out u32 = low:32[R0] - -0000044d: -0000044f: call @register_tm_clones with noreturn - -00000716: sub free(free_ptr) -0000072c: free_ptr :: in out u64 = R0 - -000002dc: -00000624: R16 := 0x10000 -0000062b: R17 := mem[R16 + 0xFC8, el]:u64 -00000631: R16 := R16 + 0xFC8 -00000636: call R17 with noreturn - -00000717: sub main(main_argc, main_argv, main_result) -0000072d: main_argc :: in u32 = low:32[R0] -0000072e: main_argv :: in out u64 = R1 -0000072f: main_result :: out u32 = low:32[R0] - -00000218: -0000021c: #1 := R31 - 0x20 -00000222: mem := mem with [#1, el]:u64 <- R29 -00000228: mem := mem with [#1 + 8, el]:u64 <- R30 -0000022c: R31 := #1 -00000231: R0 := 1 -00000237: R29 := R31 -0000023f: mem := mem with [R31 + 0x10, el]:u64 <- R19 -00000244: R30 := 0x714 -00000247: call @malloc with return %00000249 - -00000249: -0000024c: R1 := 0x41 -00000254: mem := mem with [R0] <- 7:0[R1] -0000025a: R19 := R0 -0000025f: R30 := 0x724 -00000262: call @printCharValue with return %0000029a - -0000029a: -0000029d: R2 := 0x2A -000002a2: R1 := 0 -000002a7: R0 := 1 -000002ad: R1 := R1 + 0x8F8 -000002b2: R30 := 0x738 -000002b4: call @__printf_chk with return %000002b6 - -000002b6: -000002b9: R1 := 0 -000002bf: R1 := R1 + 0x908 -000002c4: R2 := 0xA -000002c9: R0 := 1 -000002ce: R30 := 0x74C -000002d0: call @__printf_chk with return %000002d2 - -000002d2: -000002d6: R0 := R19 -000002db: R30 := 0x754 -000002de: call @free with return %000002e0 - -000002e0: -000002e3: R0 := 0 -000002ea: R19 := mem[R31 + 0x10, el]:u64 -000002f1: R29 := mem[R31, el]:u64 -000002f6: R30 := mem[R31 + 8, el]:u64 -000002fa: R31 := R31 + 0x20 -000002ff: call R30 with noreturn - -00000718: sub malloc(malloc_size, malloc_result) -00000730: malloc_size :: in u64 = R0 -00000731: malloc_result :: out u64 = R0 - -00000245: -000005cc: R16 := 0x10000 -000005d3: R17 := mem[R16 + 0xFA8, el]:u64 -000005d9: R16 := R16 + 0xFA8 -000005de: call R17 with noreturn - -00000719: sub printCharValue(printCharValue_result) -00000732: printCharValue_result :: out u32 = low:32[R0] - -00000260: -00000267: R3 := R0 -0000026c: R0 := 1 -00000271: R1 := 0 -00000277: R1 := R1 + 0x8E0 -0000027e: R2 := pad:64[mem[R3]] -00000285: R2 := pad:64[31:0[R2] + 31:0[R0]] -0000028b: R2 := pad:64[0.7:0[R2]] -00000293: mem := mem with [R3] <- 7:0[R2] -00000298: call @__printf_chk with noreturn - -0000071a: sub register_tm_clones(register_tm_clones_result) -00000733: register_tm_clones_result :: out u32 = low:32[R0] - -000003b7: -000003ba: R0 := 0x11000 -000003c0: R0 := R0 + 0x10 -000003c5: R1 := 0x11000 -000003cb: R1 := R1 + 0x10 -000003d2: R1 := R1 + ~R0 + 1 -000003d8: R2 := 0.63:63[R1] -000003df: R1 := R2 + (R1 ~>> 3) -000003e5: R1 := extend:64[63:1[R1]] -000003eb: when R1 = 0 goto %000003e9 -0000071b: goto %00000492 - -00000492: -00000495: R2 := 0x10000 -0000049c: R2 := mem[R2 + 0xFF8, el]:u64 -000004a1: when R2 = 0 goto %000003e9 -0000071c: goto %000004a5 - -000003e9: -000003f1: call R30 with noreturn - -000004a5: -000004a9: R16 := R2 -000004ae: call R16 with noreturn diff --git a/src/test/correct/malloc_with_local3/gcc_O2/malloc_with_local3.expected b/src/test/correct/malloc_with_local3/gcc_O2/malloc_with_local3.expected index e83308d78..4c9e4bc09 100644 --- a/src/test/correct/malloc_with_local3/gcc_O2/malloc_with_local3.expected +++ b/src/test/correct/malloc_with_local3/gcc_O2/malloc_with_local3.expected @@ -23,7 +23,7 @@ var {:extern} R31: bv64; var {:extern} mem: [bv64]bv8; var {:extern} stack: [bv64]bv8; const {:extern} $_IO_stdin_used_addr: bv64; -axiom ($_IO_stdin_used_addr == 2264bv64); +axiom ($_IO_stdin_used_addr == 4196680bv64); function {:extern} L(mem$in: [bv64]bv8, index: bv64) returns (bool) { false } @@ -68,22 +68,18 @@ procedure {:extern} rely(); modifies Gamma_mem, mem; ensures (Gamma_mem == old(Gamma_mem)); ensures (mem == old(mem)); - free ensures (memory_load64_le(mem, 2264bv64) == 131073bv64); - free ensures (memory_load64_le(mem, 2272bv64) == 8241983568019286100bv64); - free ensures (memory_load64_le(mem, 2280bv64) == 7575166128241079840bv64); - free ensures (memory_load64_le(mem, 2288bv64) == 11420940909171bv64); - free ensures (memory_load64_le(mem, 2296bv64) == 2338615504306268244bv64); - free ensures (memory_load64_le(mem, 2304bv64) == 2924860384375657bv64); - free ensures (memory_load64_le(mem, 2312bv64) == 7017575154564032596bv64); - free ensures (memory_load64_le(mem, 2320bv64) == 7089063228440191084bv64); - free ensures (memory_load64_le(mem, 2328bv64) == 2675202446017455468bv64); - free ensures (memory_load8_le(mem, 2336bv64) == 100bv8); - free ensures (memory_load8_le(mem, 2337bv64) == 10bv8); - free ensures (memory_load8_le(mem, 2338bv64) == 0bv8); - free ensures (memory_load64_le(mem, 68992bv64) == 2192bv64); - free ensures (memory_load64_le(mem, 69000bv64) == 2112bv64); - free ensures (memory_load64_le(mem, 69616bv64) == 1792bv64); - free ensures (memory_load64_le(mem, 69640bv64) == 69640bv64); + free ensures (memory_load64_le(mem, 4196680bv64) == 131073bv64); + free ensures (memory_load64_le(mem, 4196688bv64) == 8241983568019286100bv64); + free ensures (memory_load64_le(mem, 4196696bv64) == 7575166128241079840bv64); + free ensures (memory_load64_le(mem, 4196704bv64) == 11420940909171bv64); + free ensures (memory_load64_le(mem, 4196712bv64) == 2338615504306268244bv64); + free ensures (memory_load64_le(mem, 4196720bv64) == 2924860384375657bv64); + free ensures (memory_load64_le(mem, 4196728bv64) == 7017575154564032596bv64); + free ensures (memory_load64_le(mem, 4196736bv64) == 7089063228440191084bv64); + free ensures (memory_load64_le(mem, 4196744bv64) == 2675202446017455468bv64); + free ensures (memory_load8_le(mem, 4196752bv64) == 100bv8); + free ensures (memory_load8_le(mem, 4196753bv64) == 10bv8); + free ensures (memory_load8_le(mem, 4196754bv64) == 0bv8); procedure {:extern} rely_transitive(); modifies Gamma_mem, mem; @@ -101,288 +97,245 @@ procedure {:extern} rely_reflexive(); procedure {:extern} guarantee_reflexive(); modifies Gamma_mem, mem; -procedure __printf_chk_1696(); +procedure __printf_chk(); modifies Gamma_R16, Gamma_R17, R16, R17; - free requires (memory_load64_le(mem, 2264bv64) == 131073bv64); - free requires (memory_load64_le(mem, 2272bv64) == 8241983568019286100bv64); - free requires (memory_load64_le(mem, 2280bv64) == 7575166128241079840bv64); - free requires (memory_load64_le(mem, 2288bv64) == 11420940909171bv64); - free requires (memory_load64_le(mem, 2296bv64) == 2338615504306268244bv64); - free requires (memory_load64_le(mem, 2304bv64) == 2924860384375657bv64); - free requires (memory_load64_le(mem, 2312bv64) == 7017575154564032596bv64); - free requires (memory_load64_le(mem, 2320bv64) == 7089063228440191084bv64); - free requires (memory_load64_le(mem, 2328bv64) == 2675202446017455468bv64); - free requires (memory_load8_le(mem, 2336bv64) == 100bv8); - free requires (memory_load8_le(mem, 2337bv64) == 10bv8); - free requires (memory_load8_le(mem, 2338bv64) == 0bv8); - free requires (memory_load64_le(mem, 68992bv64) == 2192bv64); - free requires (memory_load64_le(mem, 69000bv64) == 2112bv64); - free requires (memory_load64_le(mem, 69616bv64) == 1792bv64); - free requires (memory_load64_le(mem, 69640bv64) == 69640bv64); - free ensures (memory_load64_le(mem, 2264bv64) == 131073bv64); - free ensures (memory_load64_le(mem, 2272bv64) == 8241983568019286100bv64); - free ensures (memory_load64_le(mem, 2280bv64) == 7575166128241079840bv64); - free ensures (memory_load64_le(mem, 2288bv64) == 11420940909171bv64); - free ensures (memory_load64_le(mem, 2296bv64) == 2338615504306268244bv64); - free ensures (memory_load64_le(mem, 2304bv64) == 2924860384375657bv64); - free ensures (memory_load64_le(mem, 2312bv64) == 7017575154564032596bv64); - free ensures (memory_load64_le(mem, 2320bv64) == 7089063228440191084bv64); - free ensures (memory_load64_le(mem, 2328bv64) == 2675202446017455468bv64); - free ensures (memory_load8_le(mem, 2336bv64) == 100bv8); - free ensures (memory_load8_le(mem, 2337bv64) == 10bv8); - free ensures (memory_load8_le(mem, 2338bv64) == 0bv8); - free ensures (memory_load64_le(mem, 68992bv64) == 2192bv64); - free ensures (memory_load64_le(mem, 69000bv64) == 2112bv64); - free ensures (memory_load64_le(mem, 69616bv64) == 1792bv64); - free ensures (memory_load64_le(mem, 69640bv64) == 69640bv64); + free requires (memory_load64_le(mem, 4196680bv64) == 131073bv64); + free requires (memory_load64_le(mem, 4196688bv64) == 8241983568019286100bv64); + free requires (memory_load64_le(mem, 4196696bv64) == 7575166128241079840bv64); + free requires (memory_load64_le(mem, 4196704bv64) == 11420940909171bv64); + free requires (memory_load64_le(mem, 4196712bv64) == 2338615504306268244bv64); + free requires (memory_load64_le(mem, 4196720bv64) == 2924860384375657bv64); + free requires (memory_load64_le(mem, 4196728bv64) == 7017575154564032596bv64); + free requires (memory_load64_le(mem, 4196736bv64) == 7089063228440191084bv64); + free requires (memory_load64_le(mem, 4196744bv64) == 2675202446017455468bv64); + free requires (memory_load8_le(mem, 4196752bv64) == 100bv8); + free requires (memory_load8_le(mem, 4196753bv64) == 10bv8); + free requires (memory_load8_le(mem, 4196754bv64) == 0bv8); + free ensures (memory_load64_le(mem, 4196680bv64) == 131073bv64); + free ensures (memory_load64_le(mem, 4196688bv64) == 8241983568019286100bv64); + free ensures (memory_load64_le(mem, 4196696bv64) == 7575166128241079840bv64); + free ensures (memory_load64_le(mem, 4196704bv64) == 11420940909171bv64); + free ensures (memory_load64_le(mem, 4196712bv64) == 2338615504306268244bv64); + free ensures (memory_load64_le(mem, 4196720bv64) == 2924860384375657bv64); + free ensures (memory_load64_le(mem, 4196728bv64) == 7017575154564032596bv64); + free ensures (memory_load64_le(mem, 4196736bv64) == 7089063228440191084bv64); + free ensures (memory_load64_le(mem, 4196744bv64) == 2675202446017455468bv64); + free ensures (memory_load8_le(mem, 4196752bv64) == 100bv8); + free ensures (memory_load8_le(mem, 4196753bv64) == 10bv8); + free ensures (memory_load8_le(mem, 4196754bv64) == 0bv8); -procedure #free_1744(); +procedure #free(); modifies Gamma_R16, Gamma_R17, R16, R17; - free requires (memory_load64_le(mem, 2264bv64) == 131073bv64); - free requires (memory_load64_le(mem, 2272bv64) == 8241983568019286100bv64); - free requires (memory_load64_le(mem, 2280bv64) == 7575166128241079840bv64); - free requires (memory_load64_le(mem, 2288bv64) == 11420940909171bv64); - free requires (memory_load64_le(mem, 2296bv64) == 2338615504306268244bv64); - free requires (memory_load64_le(mem, 2304bv64) == 2924860384375657bv64); - free requires (memory_load64_le(mem, 2312bv64) == 7017575154564032596bv64); - free requires (memory_load64_le(mem, 2320bv64) == 7089063228440191084bv64); - free requires (memory_load64_le(mem, 2328bv64) == 2675202446017455468bv64); - free requires (memory_load8_le(mem, 2336bv64) == 100bv8); - free requires (memory_load8_le(mem, 2337bv64) == 10bv8); - free requires (memory_load8_le(mem, 2338bv64) == 0bv8); - free requires (memory_load64_le(mem, 68992bv64) == 2192bv64); - free requires (memory_load64_le(mem, 69000bv64) == 2112bv64); - free requires (memory_load64_le(mem, 69616bv64) == 1792bv64); - free requires (memory_load64_le(mem, 69640bv64) == 69640bv64); - free ensures (memory_load64_le(mem, 2264bv64) == 131073bv64); - free ensures (memory_load64_le(mem, 2272bv64) == 8241983568019286100bv64); - free ensures (memory_load64_le(mem, 2280bv64) == 7575166128241079840bv64); - free ensures (memory_load64_le(mem, 2288bv64) == 11420940909171bv64); - free ensures (memory_load64_le(mem, 2296bv64) == 2338615504306268244bv64); - free ensures (memory_load64_le(mem, 2304bv64) == 2924860384375657bv64); - free ensures (memory_load64_le(mem, 2312bv64) == 7017575154564032596bv64); - free ensures (memory_load64_le(mem, 2320bv64) == 7089063228440191084bv64); - free ensures (memory_load64_le(mem, 2328bv64) == 2675202446017455468bv64); - free ensures (memory_load8_le(mem, 2336bv64) == 100bv8); - free ensures (memory_load8_le(mem, 2337bv64) == 10bv8); - free ensures (memory_load8_le(mem, 2338bv64) == 0bv8); - free ensures (memory_load64_le(mem, 68992bv64) == 2192bv64); - free ensures (memory_load64_le(mem, 69000bv64) == 2112bv64); - free ensures (memory_load64_le(mem, 69616bv64) == 1792bv64); - free ensures (memory_load64_le(mem, 69640bv64) == 69640bv64); + free requires (memory_load64_le(mem, 4196680bv64) == 131073bv64); + free requires (memory_load64_le(mem, 4196688bv64) == 8241983568019286100bv64); + free requires (memory_load64_le(mem, 4196696bv64) == 7575166128241079840bv64); + free requires (memory_load64_le(mem, 4196704bv64) == 11420940909171bv64); + free requires (memory_load64_le(mem, 4196712bv64) == 2338615504306268244bv64); + free requires (memory_load64_le(mem, 4196720bv64) == 2924860384375657bv64); + free requires (memory_load64_le(mem, 4196728bv64) == 7017575154564032596bv64); + free requires (memory_load64_le(mem, 4196736bv64) == 7089063228440191084bv64); + free requires (memory_load64_le(mem, 4196744bv64) == 2675202446017455468bv64); + free requires (memory_load8_le(mem, 4196752bv64) == 100bv8); + free requires (memory_load8_le(mem, 4196753bv64) == 10bv8); + free requires (memory_load8_le(mem, 4196754bv64) == 0bv8); + free ensures (memory_load64_le(mem, 4196680bv64) == 131073bv64); + free ensures (memory_load64_le(mem, 4196688bv64) == 8241983568019286100bv64); + free ensures (memory_load64_le(mem, 4196696bv64) == 7575166128241079840bv64); + free ensures (memory_load64_le(mem, 4196704bv64) == 11420940909171bv64); + free ensures (memory_load64_le(mem, 4196712bv64) == 2338615504306268244bv64); + free ensures (memory_load64_le(mem, 4196720bv64) == 2924860384375657bv64); + free ensures (memory_load64_le(mem, 4196728bv64) == 7017575154564032596bv64); + free ensures (memory_load64_le(mem, 4196736bv64) == 7089063228440191084bv64); + free ensures (memory_load64_le(mem, 4196744bv64) == 2675202446017455468bv64); + free ensures (memory_load8_le(mem, 4196752bv64) == 100bv8); + free ensures (memory_load8_le(mem, 4196753bv64) == 10bv8); + free ensures (memory_load8_le(mem, 4196754bv64) == 0bv8); -procedure main_1792(); +procedure main(); modifies Gamma_R0, Gamma_R1, Gamma_R16, Gamma_R17, Gamma_R19, Gamma_R2, Gamma_R29, Gamma_R3, Gamma_R30, Gamma_R31, Gamma_mem, Gamma_stack, R0, R1, R16, R17, R19, R2, R29, R3, R30, R31, mem, stack; - free requires (memory_load64_le(mem, 69632bv64) == 0bv64); - free requires (memory_load64_le(mem, 69640bv64) == 69640bv64); - free requires (memory_load64_le(mem, 2264bv64) == 131073bv64); - free requires (memory_load64_le(mem, 2272bv64) == 8241983568019286100bv64); - free requires (memory_load64_le(mem, 2280bv64) == 7575166128241079840bv64); - free requires (memory_load64_le(mem, 2288bv64) == 11420940909171bv64); - free requires (memory_load64_le(mem, 2296bv64) == 2338615504306268244bv64); - free requires (memory_load64_le(mem, 2304bv64) == 2924860384375657bv64); - free requires (memory_load64_le(mem, 2312bv64) == 7017575154564032596bv64); - free requires (memory_load64_le(mem, 2320bv64) == 7089063228440191084bv64); - free requires (memory_load64_le(mem, 2328bv64) == 2675202446017455468bv64); - free requires (memory_load8_le(mem, 2336bv64) == 100bv8); - free requires (memory_load8_le(mem, 2337bv64) == 10bv8); - free requires (memory_load8_le(mem, 2338bv64) == 0bv8); - free requires (memory_load64_le(mem, 68992bv64) == 2192bv64); - free requires (memory_load64_le(mem, 69000bv64) == 2112bv64); - free requires (memory_load64_le(mem, 69616bv64) == 1792bv64); - free requires (memory_load64_le(mem, 69640bv64) == 69640bv64); + free requires (memory_load64_le(mem, 4325376bv64) == 0bv64); + free requires (memory_load64_le(mem, 4325384bv64) == 0bv64); + free requires (memory_load64_le(mem, 4196680bv64) == 131073bv64); + free requires (memory_load64_le(mem, 4196688bv64) == 8241983568019286100bv64); + free requires (memory_load64_le(mem, 4196696bv64) == 7575166128241079840bv64); + free requires (memory_load64_le(mem, 4196704bv64) == 11420940909171bv64); + free requires (memory_load64_le(mem, 4196712bv64) == 2338615504306268244bv64); + free requires (memory_load64_le(mem, 4196720bv64) == 2924860384375657bv64); + free requires (memory_load64_le(mem, 4196728bv64) == 7017575154564032596bv64); + free requires (memory_load64_le(mem, 4196736bv64) == 7089063228440191084bv64); + free requires (memory_load64_le(mem, 4196744bv64) == 2675202446017455468bv64); + free requires (memory_load8_le(mem, 4196752bv64) == 100bv8); + free requires (memory_load8_le(mem, 4196753bv64) == 10bv8); + free requires (memory_load8_le(mem, 4196754bv64) == 0bv8); free ensures (Gamma_R19 == old(Gamma_R19)); free ensures (Gamma_R29 == old(Gamma_R29)); free ensures (Gamma_R31 == old(Gamma_R31)); free ensures (R19 == old(R19)); free ensures (R29 == old(R29)); free ensures (R31 == old(R31)); - free ensures (memory_load64_le(mem, 2264bv64) == 131073bv64); - free ensures (memory_load64_le(mem, 2272bv64) == 8241983568019286100bv64); - free ensures (memory_load64_le(mem, 2280bv64) == 7575166128241079840bv64); - free ensures (memory_load64_le(mem, 2288bv64) == 11420940909171bv64); - free ensures (memory_load64_le(mem, 2296bv64) == 2338615504306268244bv64); - free ensures (memory_load64_le(mem, 2304bv64) == 2924860384375657bv64); - free ensures (memory_load64_le(mem, 2312bv64) == 7017575154564032596bv64); - free ensures (memory_load64_le(mem, 2320bv64) == 7089063228440191084bv64); - free ensures (memory_load64_le(mem, 2328bv64) == 2675202446017455468bv64); - free ensures (memory_load8_le(mem, 2336bv64) == 100bv8); - free ensures (memory_load8_le(mem, 2337bv64) == 10bv8); - free ensures (memory_load8_le(mem, 2338bv64) == 0bv8); - free ensures (memory_load64_le(mem, 68992bv64) == 2192bv64); - free ensures (memory_load64_le(mem, 69000bv64) == 2112bv64); - free ensures (memory_load64_le(mem, 69616bv64) == 1792bv64); - free ensures (memory_load64_le(mem, 69640bv64) == 69640bv64); + free ensures (memory_load64_le(mem, 4196680bv64) == 131073bv64); + free ensures (memory_load64_le(mem, 4196688bv64) == 8241983568019286100bv64); + free ensures (memory_load64_le(mem, 4196696bv64) == 7575166128241079840bv64); + free ensures (memory_load64_le(mem, 4196704bv64) == 11420940909171bv64); + free ensures (memory_load64_le(mem, 4196712bv64) == 2338615504306268244bv64); + free ensures (memory_load64_le(mem, 4196720bv64) == 2924860384375657bv64); + free ensures (memory_load64_le(mem, 4196728bv64) == 7017575154564032596bv64); + free ensures (memory_load64_le(mem, 4196736bv64) == 7089063228440191084bv64); + free ensures (memory_load64_le(mem, 4196744bv64) == 2675202446017455468bv64); + free ensures (memory_load8_le(mem, 4196752bv64) == 100bv8); + free ensures (memory_load8_le(mem, 4196753bv64) == 10bv8); + free ensures (memory_load8_le(mem, 4196754bv64) == 0bv8); -implementation main_1792() +implementation main() { var #1: bv64; + var $load$16: bv64; + var $load$17: bv64; + var $load$18: bv64; var Gamma_#1: bool; - var Gamma_load20: bool; - var Gamma_load21: bool; - var Gamma_load22: bool; - var load20: bv64; - var load21: bv64; - var load22: bv64; + var Gamma_$load$16: bool; + var Gamma_$load$17: bool; + var Gamma_$load$18: bool; lmain: assume {:captureState "lmain"} true; #1, Gamma_#1 := bvadd64(R31, 18446744073709551584bv64), Gamma_R31; stack, Gamma_stack := memory_store64_le(stack, #1, R29), gamma_store64(Gamma_stack, #1, Gamma_R29); - assume {:captureState "%00000222"} true; + assume {:captureState "%00000284"} true; stack, Gamma_stack := memory_store64_le(stack, bvadd64(#1, 8bv64), R30), gamma_store64(Gamma_stack, bvadd64(#1, 8bv64), Gamma_R30); - assume {:captureState "%00000228"} true; + assume {:captureState "%00000288"} true; R31, Gamma_R31 := #1, Gamma_#1; R0, Gamma_R0 := 1bv64, true; R29, Gamma_R29 := R31, Gamma_R31; stack, Gamma_stack := memory_store64_le(stack, bvadd64(R31, 16bv64), R19), gamma_store64(Gamma_stack, bvadd64(R31, 16bv64), Gamma_R19); - assume {:captureState "%0000023f"} true; - R30, Gamma_R30 := 1812bv64, true; - call malloc_1680(); - goto l00000249; - l00000249: - assume {:captureState "l00000249"} true; + assume {:captureState "%00000298"} true; + R30, Gamma_R30 := 4196244bv64, true; + call malloc(); + goto l000002a8; + l000002a8: + assume {:captureState "l000002a8"} true; R1, Gamma_R1 := 65bv64, true; call rely(); assert (L(mem, R0) ==> Gamma_R1); mem, Gamma_mem := memory_store8_le(mem, R0, R1[8:0]), gamma_store8(Gamma_mem, R0, Gamma_R1); - assume {:captureState "%00000254"} true; + assume {:captureState "%000002b0"} true; R19, Gamma_R19 := R0, Gamma_R0; - R30, Gamma_R30 := 1828bv64, true; - call printCharValue_2208(); - goto l0000029a; - l0000029a: - assume {:captureState "l0000029a"} true; + R30, Gamma_R30 := 4196260bv64, true; + call printCharValue(); + goto l000002c4; + l000002c4: + assume {:captureState "l000002c4"} true; R2, Gamma_R2 := 42bv64, true; - R1, Gamma_R1 := 0bv64, true; - R0, Gamma_R0 := 1bv64, true; - R1, Gamma_R1 := bvadd64(R1, 2296bv64), Gamma_R1; - R30, Gamma_R30 := 1848bv64, true; - call __printf_chk_1696(); - goto l000002b6; - l000002b6: - assume {:captureState "l000002b6"} true; - R1, Gamma_R1 := 0bv64, true; - R1, Gamma_R1 := bvadd64(R1, 2312bv64), Gamma_R1; - R2, Gamma_R2 := 10bv64, true; - R0, Gamma_R0 := 1bv64, true; - R30, Gamma_R30 := 1868bv64, true; - call __printf_chk_1696(); - goto l000002d2; - l000002d2: - assume {:captureState "l000002d2"} true; - R0, Gamma_R0 := R19, Gamma_R19; - R30, Gamma_R30 := 1876bv64, true; - call #free_1744(); + R1, Gamma_R1 := 4194304bv64, true; + R0, Gamma_R0 := 2bv64, true; + R1, Gamma_R1 := bvadd64(R1, 2408bv64), Gamma_R1; + R30, Gamma_R30 := 4196280bv64, true; + call __printf_chk(); goto l000002e0; l000002e0: assume {:captureState "l000002e0"} true; + R1, Gamma_R1 := 4194304bv64, true; + R1, Gamma_R1 := bvadd64(R1, 2424bv64), Gamma_R1; + R2, Gamma_R2 := 10bv64, true; + R0, Gamma_R0 := 2bv64, true; + R30, Gamma_R30 := 4196300bv64, true; + call __printf_chk(); + goto l000002fc; + l000002fc: + assume {:captureState "l000002fc"} true; + R0, Gamma_R0 := R19, Gamma_R19; + R30, Gamma_R30 := 4196308bv64, true; + call #free(); + goto l0000030c; + l0000030c: + assume {:captureState "l0000030c"} true; + $load$16, Gamma_$load$16 := memory_load64_le(stack, bvadd64(R31, 16bv64)), gamma_load64(Gamma_stack, bvadd64(R31, 16bv64)); + R19, Gamma_R19 := $load$16, Gamma_$load$16; R0, Gamma_R0 := 0bv64, true; - load20, Gamma_load20 := memory_load64_le(stack, bvadd64(R31, 16bv64)), gamma_load64(Gamma_stack, bvadd64(R31, 16bv64)); - R19, Gamma_R19 := load20, Gamma_load20; - load21, Gamma_load21 := memory_load64_le(stack, R31), gamma_load64(Gamma_stack, R31); - R29, Gamma_R29 := load21, Gamma_load21; - load22, Gamma_load22 := memory_load64_le(stack, bvadd64(R31, 8bv64)), gamma_load64(Gamma_stack, bvadd64(R31, 8bv64)); - R30, Gamma_R30 := load22, Gamma_load22; + $load$17, Gamma_$load$17 := memory_load64_le(stack, R31), gamma_load64(Gamma_stack, R31); + R29, Gamma_R29 := $load$17, Gamma_$load$17; + $load$18, Gamma_$load$18 := memory_load64_le(stack, bvadd64(R31, 8bv64)), gamma_load64(Gamma_stack, bvadd64(R31, 8bv64)); + R30, Gamma_R30 := $load$18, Gamma_$load$18; R31, Gamma_R31 := bvadd64(R31, 32bv64), Gamma_R31; - goto main_1792_basil_return; - main_1792_basil_return: - assume {:captureState "main_1792_basil_return"} true; + goto main_basil_return; + main_basil_return: + assume {:captureState "main_basil_return"} true; return; } -procedure malloc_1680(); +procedure malloc(); modifies Gamma_R16, Gamma_R17, R16, R17; - free requires (memory_load64_le(mem, 2264bv64) == 131073bv64); - free requires (memory_load64_le(mem, 2272bv64) == 8241983568019286100bv64); - free requires (memory_load64_le(mem, 2280bv64) == 7575166128241079840bv64); - free requires (memory_load64_le(mem, 2288bv64) == 11420940909171bv64); - free requires (memory_load64_le(mem, 2296bv64) == 2338615504306268244bv64); - free requires (memory_load64_le(mem, 2304bv64) == 2924860384375657bv64); - free requires (memory_load64_le(mem, 2312bv64) == 7017575154564032596bv64); - free requires (memory_load64_le(mem, 2320bv64) == 7089063228440191084bv64); - free requires (memory_load64_le(mem, 2328bv64) == 2675202446017455468bv64); - free requires (memory_load8_le(mem, 2336bv64) == 100bv8); - free requires (memory_load8_le(mem, 2337bv64) == 10bv8); - free requires (memory_load8_le(mem, 2338bv64) == 0bv8); - free requires (memory_load64_le(mem, 68992bv64) == 2192bv64); - free requires (memory_load64_le(mem, 69000bv64) == 2112bv64); - free requires (memory_load64_le(mem, 69616bv64) == 1792bv64); - free requires (memory_load64_le(mem, 69640bv64) == 69640bv64); - free ensures (memory_load64_le(mem, 2264bv64) == 131073bv64); - free ensures (memory_load64_le(mem, 2272bv64) == 8241983568019286100bv64); - free ensures (memory_load64_le(mem, 2280bv64) == 7575166128241079840bv64); - free ensures (memory_load64_le(mem, 2288bv64) == 11420940909171bv64); - free ensures (memory_load64_le(mem, 2296bv64) == 2338615504306268244bv64); - free ensures (memory_load64_le(mem, 2304bv64) == 2924860384375657bv64); - free ensures (memory_load64_le(mem, 2312bv64) == 7017575154564032596bv64); - free ensures (memory_load64_le(mem, 2320bv64) == 7089063228440191084bv64); - free ensures (memory_load64_le(mem, 2328bv64) == 2675202446017455468bv64); - free ensures (memory_load8_le(mem, 2336bv64) == 100bv8); - free ensures (memory_load8_le(mem, 2337bv64) == 10bv8); - free ensures (memory_load8_le(mem, 2338bv64) == 0bv8); - free ensures (memory_load64_le(mem, 68992bv64) == 2192bv64); - free ensures (memory_load64_le(mem, 69000bv64) == 2112bv64); - free ensures (memory_load64_le(mem, 69616bv64) == 1792bv64); - free ensures (memory_load64_le(mem, 69640bv64) == 69640bv64); + free requires (memory_load64_le(mem, 4196680bv64) == 131073bv64); + free requires (memory_load64_le(mem, 4196688bv64) == 8241983568019286100bv64); + free requires (memory_load64_le(mem, 4196696bv64) == 7575166128241079840bv64); + free requires (memory_load64_le(mem, 4196704bv64) == 11420940909171bv64); + free requires (memory_load64_le(mem, 4196712bv64) == 2338615504306268244bv64); + free requires (memory_load64_le(mem, 4196720bv64) == 2924860384375657bv64); + free requires (memory_load64_le(mem, 4196728bv64) == 7017575154564032596bv64); + free requires (memory_load64_le(mem, 4196736bv64) == 7089063228440191084bv64); + free requires (memory_load64_le(mem, 4196744bv64) == 2675202446017455468bv64); + free requires (memory_load8_le(mem, 4196752bv64) == 100bv8); + free requires (memory_load8_le(mem, 4196753bv64) == 10bv8); + free requires (memory_load8_le(mem, 4196754bv64) == 0bv8); + free ensures (memory_load64_le(mem, 4196680bv64) == 131073bv64); + free ensures (memory_load64_le(mem, 4196688bv64) == 8241983568019286100bv64); + free ensures (memory_load64_le(mem, 4196696bv64) == 7575166128241079840bv64); + free ensures (memory_load64_le(mem, 4196704bv64) == 11420940909171bv64); + free ensures (memory_load64_le(mem, 4196712bv64) == 2338615504306268244bv64); + free ensures (memory_load64_le(mem, 4196720bv64) == 2924860384375657bv64); + free ensures (memory_load64_le(mem, 4196728bv64) == 7017575154564032596bv64); + free ensures (memory_load64_le(mem, 4196736bv64) == 7089063228440191084bv64); + free ensures (memory_load64_le(mem, 4196744bv64) == 2675202446017455468bv64); + free ensures (memory_load8_le(mem, 4196752bv64) == 100bv8); + free ensures (memory_load8_le(mem, 4196753bv64) == 10bv8); + free ensures (memory_load8_le(mem, 4196754bv64) == 0bv8); -procedure printCharValue_2208(); +procedure printCharValue(); modifies Gamma_R0, Gamma_R1, Gamma_R16, Gamma_R17, Gamma_R2, Gamma_R3, Gamma_mem, R0, R1, R16, R17, R2, R3, mem; - free requires (memory_load64_le(mem, 2264bv64) == 131073bv64); - free requires (memory_load64_le(mem, 2272bv64) == 8241983568019286100bv64); - free requires (memory_load64_le(mem, 2280bv64) == 7575166128241079840bv64); - free requires (memory_load64_le(mem, 2288bv64) == 11420940909171bv64); - free requires (memory_load64_le(mem, 2296bv64) == 2338615504306268244bv64); - free requires (memory_load64_le(mem, 2304bv64) == 2924860384375657bv64); - free requires (memory_load64_le(mem, 2312bv64) == 7017575154564032596bv64); - free requires (memory_load64_le(mem, 2320bv64) == 7089063228440191084bv64); - free requires (memory_load64_le(mem, 2328bv64) == 2675202446017455468bv64); - free requires (memory_load8_le(mem, 2336bv64) == 100bv8); - free requires (memory_load8_le(mem, 2337bv64) == 10bv8); - free requires (memory_load8_le(mem, 2338bv64) == 0bv8); - free requires (memory_load64_le(mem, 68992bv64) == 2192bv64); - free requires (memory_load64_le(mem, 69000bv64) == 2112bv64); - free requires (memory_load64_le(mem, 69616bv64) == 1792bv64); - free requires (memory_load64_le(mem, 69640bv64) == 69640bv64); - free ensures (memory_load64_le(mem, 2264bv64) == 131073bv64); - free ensures (memory_load64_le(mem, 2272bv64) == 8241983568019286100bv64); - free ensures (memory_load64_le(mem, 2280bv64) == 7575166128241079840bv64); - free ensures (memory_load64_le(mem, 2288bv64) == 11420940909171bv64); - free ensures (memory_load64_le(mem, 2296bv64) == 2338615504306268244bv64); - free ensures (memory_load64_le(mem, 2304bv64) == 2924860384375657bv64); - free ensures (memory_load64_le(mem, 2312bv64) == 7017575154564032596bv64); - free ensures (memory_load64_le(mem, 2320bv64) == 7089063228440191084bv64); - free ensures (memory_load64_le(mem, 2328bv64) == 2675202446017455468bv64); - free ensures (memory_load8_le(mem, 2336bv64) == 100bv8); - free ensures (memory_load8_le(mem, 2337bv64) == 10bv8); - free ensures (memory_load8_le(mem, 2338bv64) == 0bv8); - free ensures (memory_load64_le(mem, 68992bv64) == 2192bv64); - free ensures (memory_load64_le(mem, 69000bv64) == 2112bv64); - free ensures (memory_load64_le(mem, 69616bv64) == 1792bv64); - free ensures (memory_load64_le(mem, 69640bv64) == 69640bv64); + free requires (memory_load64_le(mem, 4196680bv64) == 131073bv64); + free requires (memory_load64_le(mem, 4196688bv64) == 8241983568019286100bv64); + free requires (memory_load64_le(mem, 4196696bv64) == 7575166128241079840bv64); + free requires (memory_load64_le(mem, 4196704bv64) == 11420940909171bv64); + free requires (memory_load64_le(mem, 4196712bv64) == 2338615504306268244bv64); + free requires (memory_load64_le(mem, 4196720bv64) == 2924860384375657bv64); + free requires (memory_load64_le(mem, 4196728bv64) == 7017575154564032596bv64); + free requires (memory_load64_le(mem, 4196736bv64) == 7089063228440191084bv64); + free requires (memory_load64_le(mem, 4196744bv64) == 2675202446017455468bv64); + free requires (memory_load8_le(mem, 4196752bv64) == 100bv8); + free requires (memory_load8_le(mem, 4196753bv64) == 10bv8); + free requires (memory_load8_le(mem, 4196754bv64) == 0bv8); + free ensures (memory_load64_le(mem, 4196680bv64) == 131073bv64); + free ensures (memory_load64_le(mem, 4196688bv64) == 8241983568019286100bv64); + free ensures (memory_load64_le(mem, 4196696bv64) == 7575166128241079840bv64); + free ensures (memory_load64_le(mem, 4196704bv64) == 11420940909171bv64); + free ensures (memory_load64_le(mem, 4196712bv64) == 2338615504306268244bv64); + free ensures (memory_load64_le(mem, 4196720bv64) == 2924860384375657bv64); + free ensures (memory_load64_le(mem, 4196728bv64) == 7017575154564032596bv64); + free ensures (memory_load64_le(mem, 4196736bv64) == 7089063228440191084bv64); + free ensures (memory_load64_le(mem, 4196744bv64) == 2675202446017455468bv64); + free ensures (memory_load8_le(mem, 4196752bv64) == 100bv8); + free ensures (memory_load8_le(mem, 4196753bv64) == 10bv8); + free ensures (memory_load8_le(mem, 4196754bv64) == 0bv8); -implementation printCharValue_2208() +implementation printCharValue() { - var Gamma_load24: bool; - var load24: bv8; + var $load$20: bv8; + var Gamma_$load$20: bool; lprintCharValue: assume {:captureState "lprintCharValue"} true; R3, Gamma_R3 := R0, Gamma_R0; - R0, Gamma_R0 := 1bv64, true; - R1, Gamma_R1 := 0bv64, true; - R1, Gamma_R1 := bvadd64(R1, 2272bv64), Gamma_R1; + R1, Gamma_R1 := 4194304bv64, true; + R0, Gamma_R0 := 2bv64, true; + R1, Gamma_R1 := bvadd64(R1, 2384bv64), Gamma_R1; call rely(); - load24, Gamma_load24 := memory_load8_le(mem, R3), (gamma_load8(Gamma_mem, R3) || L(mem, R3)); - R2, Gamma_R2 := zero_extend56_8(load24), Gamma_load24; - R2, Gamma_R2 := zero_extend32_32(bvadd32(R2[32:0], R0[32:0])), (Gamma_R0 && Gamma_R2); - R2, Gamma_R2 := zero_extend32_32((0bv24 ++ R2[8:0])), Gamma_R2; + $load$20, Gamma_$load$20 := memory_load8_le(mem, R3), (gamma_load8(Gamma_mem, R3) || L(mem, R3)); + R2, Gamma_R2 := zero_extend56_8($load$20), Gamma_$load$20; + R2, Gamma_R2 := zero_extend32_32(bvadd32(R2[32:0], 1bv32)), Gamma_R2; + R2, Gamma_R2 := zero_extend56_8(R2[8:0]), Gamma_R2; call rely(); assert (L(mem, R3) ==> Gamma_R2); mem, Gamma_mem := memory_store8_le(mem, R3, R2[8:0]), gamma_store8(Gamma_mem, R3, Gamma_R2); - assume {:captureState "%00000293"} true; - call __printf_chk_1696(); - goto printCharValue_2208_basil_return; - printCharValue_2208_basil_return: - assume {:captureState "printCharValue_2208_basil_return"} true; - return; + assume {:captureState "%00000368"} true; + call __printf_chk(); + assume false; } diff --git a/src/test/correct/malloc_with_local3/gcc_O2/malloc_with_local3.gts b/src/test/correct/malloc_with_local3/gcc_O2/malloc_with_local3.gts deleted file mode 100644 index e0022e6b8..000000000 Binary files a/src/test/correct/malloc_with_local3/gcc_O2/malloc_with_local3.gts and /dev/null differ diff --git a/src/test/correct/malloc_with_local3/gcc_O2/malloc_with_local3.md5sum b/src/test/correct/malloc_with_local3/gcc_O2/malloc_with_local3.md5sum new file mode 100644 index 000000000..093dbe9d2 --- /dev/null +++ b/src/test/correct/malloc_with_local3/gcc_O2/malloc_with_local3.md5sum @@ -0,0 +1,5 @@ +3adc7052467f43e92078d56993c150e5 correct/malloc_with_local3/gcc_O2/a.out +dce9ba056bb2d92a50f00bfa98c80a4c correct/malloc_with_local3/gcc_O2/malloc_with_local3.adt +eb8cc41b63eada523b27082c8ee123cc correct/malloc_with_local3/gcc_O2/malloc_with_local3.bir +55f45d5db50efe74071065ba7ee02dc3 correct/malloc_with_local3/gcc_O2/malloc_with_local3.relf +113862711695c287b20c98f29643d9c2 correct/malloc_with_local3/gcc_O2/malloc_with_local3.gts diff --git a/src/test/correct/malloc_with_local3/gcc_O2/malloc_with_local3.relf b/src/test/correct/malloc_with_local3/gcc_O2/malloc_with_local3.relf deleted file mode 100644 index cae516479..000000000 --- a/src/test/correct/malloc_with_local3/gcc_O2/malloc_with_local3.relf +++ /dev/null @@ -1,131 +0,0 @@ - -Relocation section '.rela.dyn' at offset 0x4c8 contains 8 entries: - Offset Info Type Symbol's Value Symbol's Name + Addend -0000000000010d80 0000000000000403 R_AARCH64_RELATIVE 890 -0000000000010d88 0000000000000403 R_AARCH64_RELATIVE 840 -0000000000010ff0 0000000000000403 R_AARCH64_RELATIVE 700 -0000000000011008 0000000000000403 R_AARCH64_RELATIVE 11008 -0000000000010fd8 0000000400000401 R_AARCH64_GLOB_DAT 0000000000000000 _ITM_deregisterTMCloneTable + 0 -0000000000010fe0 0000000500000401 R_AARCH64_GLOB_DAT 0000000000000000 __cxa_finalize@GLIBC_2.17 + 0 -0000000000010fe8 0000000800000401 R_AARCH64_GLOB_DAT 0000000000000000 __gmon_start__ + 0 -0000000000010ff8 0000000b00000401 R_AARCH64_GLOB_DAT 0000000000000000 _ITM_registerTMCloneTable + 0 - -Relocation section '.rela.plt' at offset 0x588 contains 7 entries: - Offset Info Type Symbol's Value Symbol's Name + Addend -0000000000010f98 0000000300000402 R_AARCH64_JUMP_SLOT 0000000000000000 __libc_start_main@GLIBC_2.34 + 0 -0000000000010fa0 0000000500000402 R_AARCH64_JUMP_SLOT 0000000000000000 __cxa_finalize@GLIBC_2.17 + 0 -0000000000010fa8 0000000600000402 R_AARCH64_JUMP_SLOT 0000000000000000 malloc@GLIBC_2.17 + 0 -0000000000010fb0 0000000700000402 R_AARCH64_JUMP_SLOT 0000000000000000 __printf_chk@GLIBC_2.17 + 0 -0000000000010fb8 0000000800000402 R_AARCH64_JUMP_SLOT 0000000000000000 __gmon_start__ + 0 -0000000000010fc0 0000000900000402 R_AARCH64_JUMP_SLOT 0000000000000000 abort@GLIBC_2.17 + 0 -0000000000010fc8 0000000a00000402 R_AARCH64_JUMP_SLOT 0000000000000000 free@GLIBC_2.17 + 0 - -Symbol table '.dynsym' contains 12 entries: - Num: Value Size Type Bind Vis Ndx Name - 0: 0000000000000000 0 NOTYPE LOCAL DEFAULT UND - 1: 0000000000000630 0 SECTION LOCAL DEFAULT 11 .init - 2: 0000000000011000 0 SECTION LOCAL DEFAULT 22 .data - 3: 0000000000000000 0 FUNC GLOBAL DEFAULT UND __libc_start_main@GLIBC_2.34 (2) - 4: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_deregisterTMCloneTable - 5: 0000000000000000 0 FUNC WEAK DEFAULT UND __cxa_finalize@GLIBC_2.17 (3) - 6: 0000000000000000 0 FUNC GLOBAL DEFAULT UND malloc@GLIBC_2.17 (3) - 7: 0000000000000000 0 FUNC GLOBAL DEFAULT UND __printf_chk@GLIBC_2.17 (3) - 8: 0000000000000000 0 NOTYPE WEAK DEFAULT UND __gmon_start__ - 9: 0000000000000000 0 FUNC GLOBAL DEFAULT UND abort@GLIBC_2.17 (3) - 10: 0000000000000000 0 FUNC GLOBAL DEFAULT UND free@GLIBC_2.17 (3) - 11: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_registerTMCloneTable - -Symbol table '.symtab' contains 92 entries: - Num: Value Size Type Bind Vis Ndx Name - 0: 0000000000000000 0 NOTYPE LOCAL DEFAULT UND - 1: 0000000000000238 0 SECTION LOCAL DEFAULT 1 .interp - 2: 0000000000000254 0 SECTION LOCAL DEFAULT 2 .note.gnu.build-id - 3: 0000000000000278 0 SECTION LOCAL DEFAULT 3 .note.ABI-tag - 4: 0000000000000298 0 SECTION LOCAL DEFAULT 4 .gnu.hash - 5: 00000000000002b8 0 SECTION LOCAL DEFAULT 5 .dynsym - 6: 00000000000003d8 0 SECTION LOCAL DEFAULT 6 .dynstr - 7: 000000000000047e 0 SECTION LOCAL DEFAULT 7 .gnu.version - 8: 0000000000000498 0 SECTION LOCAL DEFAULT 8 .gnu.version_r - 9: 00000000000004c8 0 SECTION LOCAL DEFAULT 9 .rela.dyn - 10: 0000000000000588 0 SECTION LOCAL DEFAULT 10 .rela.plt - 11: 0000000000000630 0 SECTION LOCAL DEFAULT 11 .init - 12: 0000000000000650 0 SECTION LOCAL DEFAULT 12 .plt - 13: 0000000000000700 0 SECTION LOCAL DEFAULT 13 .text - 14: 00000000000008c4 0 SECTION LOCAL DEFAULT 14 .fini - 15: 00000000000008d8 0 SECTION LOCAL DEFAULT 15 .rodata - 16: 0000000000000924 0 SECTION LOCAL DEFAULT 16 .eh_frame_hdr - 17: 0000000000000968 0 SECTION LOCAL DEFAULT 17 .eh_frame - 18: 0000000000010d80 0 SECTION LOCAL DEFAULT 18 .init_array - 19: 0000000000010d88 0 SECTION LOCAL DEFAULT 19 .fini_array - 20: 0000000000010d90 0 SECTION LOCAL DEFAULT 20 .dynamic - 21: 0000000000010f80 0 SECTION LOCAL DEFAULT 21 .got - 22: 0000000000011000 0 SECTION LOCAL DEFAULT 22 .data - 23: 0000000000011010 0 SECTION LOCAL DEFAULT 23 .bss - 24: 0000000000000000 0 SECTION LOCAL DEFAULT 24 .comment - 25: 0000000000000000 0 FILE LOCAL DEFAULT ABS Scrt1.o - 26: 0000000000000278 0 NOTYPE LOCAL DEFAULT 3 $d - 27: 0000000000000278 32 OBJECT LOCAL DEFAULT 3 __abi_tag - 28: 0000000000000780 0 NOTYPE LOCAL DEFAULT 13 $x - 29: 000000000000097c 0 NOTYPE LOCAL DEFAULT 17 $d - 30: 00000000000008d8 0 NOTYPE LOCAL DEFAULT 15 $d - 31: 0000000000000000 0 FILE LOCAL DEFAULT ABS crti.o - 32: 00000000000007b4 0 NOTYPE LOCAL DEFAULT 13 $x - 33: 00000000000007b4 20 FUNC LOCAL DEFAULT 13 call_weak_fn - 34: 0000000000000630 0 NOTYPE LOCAL DEFAULT 11 $x - 35: 00000000000008c4 0 NOTYPE LOCAL DEFAULT 14 $x - 36: 0000000000000000 0 FILE LOCAL DEFAULT ABS crtn.o - 37: 0000000000000640 0 NOTYPE LOCAL DEFAULT 11 $x - 38: 00000000000008d0 0 NOTYPE LOCAL DEFAULT 14 $x - 39: 0000000000000000 0 FILE LOCAL DEFAULT ABS malloc_with_local3.c - 40: 00000000000008e0 0 NOTYPE LOCAL DEFAULT 15 $d - 41: 00000000000008a0 0 NOTYPE LOCAL DEFAULT 13 $x - 42: 0000000000000700 0 NOTYPE LOCAL DEFAULT 13 $x - 43: 00000000000009f0 0 NOTYPE LOCAL DEFAULT 17 $d - 44: 0000000000000000 0 FILE LOCAL DEFAULT ABS crtstuff.c - 45: 00000000000007d0 0 NOTYPE LOCAL DEFAULT 13 $x - 46: 00000000000007d0 0 FUNC LOCAL DEFAULT 13 deregister_tm_clones - 47: 0000000000000800 0 FUNC LOCAL DEFAULT 13 register_tm_clones - 48: 0000000000011008 0 NOTYPE LOCAL DEFAULT 22 $d - 49: 0000000000000840 0 FUNC LOCAL DEFAULT 13 __do_global_dtors_aux - 50: 0000000000011010 1 OBJECT LOCAL DEFAULT 23 completed.0 - 51: 0000000000010d88 0 NOTYPE LOCAL DEFAULT 19 $d - 52: 0000000000010d88 0 OBJECT LOCAL DEFAULT 19 __do_global_dtors_aux_fini_array_entry - 53: 0000000000000890 0 FUNC LOCAL DEFAULT 13 frame_dummy - 54: 0000000000010d80 0 NOTYPE LOCAL DEFAULT 18 $d - 55: 0000000000010d80 0 OBJECT LOCAL DEFAULT 18 __frame_dummy_init_array_entry - 56: 0000000000000990 0 NOTYPE LOCAL DEFAULT 17 $d - 57: 0000000000011010 0 NOTYPE LOCAL DEFAULT 23 $d - 58: 0000000000000000 0 FILE LOCAL DEFAULT ABS crtstuff.c - 59: 0000000000000a28 0 NOTYPE LOCAL DEFAULT 17 $d - 60: 0000000000000a28 0 OBJECT LOCAL DEFAULT 17 __FRAME_END__ - 61: 0000000000000000 0 FILE LOCAL DEFAULT ABS - 62: 0000000000010d90 0 OBJECT LOCAL DEFAULT ABS _DYNAMIC - 63: 0000000000000924 0 NOTYPE LOCAL DEFAULT 16 __GNU_EH_FRAME_HDR - 64: 0000000000010fd0 0 OBJECT LOCAL DEFAULT ABS _GLOBAL_OFFSET_TABLE_ - 65: 0000000000000650 0 NOTYPE LOCAL DEFAULT 12 $x - 66: 0000000000000000 0 FUNC GLOBAL DEFAULT UND __libc_start_main@GLIBC_2.34 - 67: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_deregisterTMCloneTable - 68: 0000000000011000 0 NOTYPE WEAK DEFAULT 22 data_start - 69: 0000000000011010 0 NOTYPE GLOBAL DEFAULT 23 __bss_start__ - 70: 0000000000000000 0 FUNC WEAK DEFAULT UND __cxa_finalize@GLIBC_2.17 - 71: 0000000000011018 0 NOTYPE GLOBAL DEFAULT 23 _bss_end__ - 72: 0000000000011010 0 NOTYPE GLOBAL DEFAULT 22 _edata - 73: 00000000000008c4 0 FUNC GLOBAL HIDDEN 14 _fini - 74: 0000000000011018 0 NOTYPE GLOBAL DEFAULT 23 __bss_end__ - 75: 0000000000000000 0 FUNC GLOBAL DEFAULT UND malloc@GLIBC_2.17 - 76: 0000000000000000 0 FUNC GLOBAL DEFAULT UND __printf_chk@GLIBC_2.17 - 77: 0000000000011000 0 NOTYPE GLOBAL DEFAULT 22 __data_start - 78: 0000000000000000 0 NOTYPE WEAK DEFAULT UND __gmon_start__ - 79: 00000000000008a0 36 FUNC GLOBAL DEFAULT 13 printCharValue - 80: 0000000000011008 0 OBJECT GLOBAL HIDDEN 22 __dso_handle - 81: 0000000000000000 0 FUNC GLOBAL DEFAULT UND abort@GLIBC_2.17 - 82: 00000000000008d8 4 OBJECT GLOBAL DEFAULT 15 _IO_stdin_used - 83: 0000000000011018 0 NOTYPE GLOBAL DEFAULT 23 _end - 84: 0000000000000000 0 FUNC GLOBAL DEFAULT UND free@GLIBC_2.17 - 85: 0000000000000780 52 FUNC GLOBAL DEFAULT 13 _start - 86: 0000000000011018 0 NOTYPE GLOBAL DEFAULT 23 __end__ - 87: 0000000000011010 0 NOTYPE GLOBAL DEFAULT 23 __bss_start - 88: 0000000000000700 100 FUNC GLOBAL DEFAULT 13 main - 89: 0000000000011010 0 OBJECT GLOBAL HIDDEN 22 __TMC_END__ - 90: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_registerTMCloneTable - 91: 0000000000000630 0 FUNC GLOBAL HIDDEN 11 _init diff --git a/src/test/correct/malloc_with_local3/gcc_O2/malloc_with_local3_gtirb.expected b/src/test/correct/malloc_with_local3/gcc_O2/malloc_with_local3_gtirb.expected index 0c22ccd0b..3279fe647 100644 --- a/src/test/correct/malloc_with_local3/gcc_O2/malloc_with_local3_gtirb.expected +++ b/src/test/correct/malloc_with_local3/gcc_O2/malloc_with_local3_gtirb.expected @@ -23,7 +23,7 @@ var {:extern} R31: bv64; var {:extern} mem: [bv64]bv8; var {:extern} stack: [bv64]bv8; const {:extern} $_IO_stdin_used_addr: bv64; -axiom ($_IO_stdin_used_addr == 2264bv64); +axiom ($_IO_stdin_used_addr == 4196680bv64); function {:extern} L(mem$in: [bv64]bv8, index: bv64) returns (bool) { false } @@ -68,22 +68,18 @@ procedure {:extern} rely(); modifies Gamma_mem, mem; ensures (Gamma_mem == old(Gamma_mem)); ensures (mem == old(mem)); - free ensures (memory_load64_le(mem, 2264bv64) == 131073bv64); - free ensures (memory_load64_le(mem, 2272bv64) == 8241983568019286100bv64); - free ensures (memory_load64_le(mem, 2280bv64) == 7575166128241079840bv64); - free ensures (memory_load64_le(mem, 2288bv64) == 11420940909171bv64); - free ensures (memory_load64_le(mem, 2296bv64) == 2338615504306268244bv64); - free ensures (memory_load64_le(mem, 2304bv64) == 2924860384375657bv64); - free ensures (memory_load64_le(mem, 2312bv64) == 7017575154564032596bv64); - free ensures (memory_load64_le(mem, 2320bv64) == 7089063228440191084bv64); - free ensures (memory_load64_le(mem, 2328bv64) == 2675202446017455468bv64); - free ensures (memory_load8_le(mem, 2336bv64) == 100bv8); - free ensures (memory_load8_le(mem, 2337bv64) == 10bv8); - free ensures (memory_load8_le(mem, 2338bv64) == 0bv8); - free ensures (memory_load64_le(mem, 68992bv64) == 2192bv64); - free ensures (memory_load64_le(mem, 69000bv64) == 2112bv64); - free ensures (memory_load64_le(mem, 69616bv64) == 1792bv64); - free ensures (memory_load64_le(mem, 69640bv64) == 69640bv64); + free ensures (memory_load64_le(mem, 4196680bv64) == 131073bv64); + free ensures (memory_load64_le(mem, 4196688bv64) == 8241983568019286100bv64); + free ensures (memory_load64_le(mem, 4196696bv64) == 7575166128241079840bv64); + free ensures (memory_load64_le(mem, 4196704bv64) == 11420940909171bv64); + free ensures (memory_load64_le(mem, 4196712bv64) == 2338615504306268244bv64); + free ensures (memory_load64_le(mem, 4196720bv64) == 2924860384375657bv64); + free ensures (memory_load64_le(mem, 4196728bv64) == 7017575154564032596bv64); + free ensures (memory_load64_le(mem, 4196736bv64) == 7089063228440191084bv64); + free ensures (memory_load64_le(mem, 4196744bv64) == 2675202446017455468bv64); + free ensures (memory_load8_le(mem, 4196752bv64) == 100bv8); + free ensures (memory_load8_le(mem, 4196753bv64) == 10bv8); + free ensures (memory_load8_le(mem, 4196754bv64) == 0bv8); procedure {:extern} rely_transitive(); modifies Gamma_mem, mem; @@ -101,444 +97,368 @@ procedure {:extern} rely_reflexive(); procedure {:extern} guarantee_reflexive(); modifies Gamma_mem, mem; -procedure FUN_690_1680(); - modifies Gamma_R16, Gamma_R17, Gamma_mem, R16, R17, mem; - free requires (memory_load64_le(mem, 2264bv64) == 131073bv64); - free requires (memory_load64_le(mem, 2272bv64) == 8241983568019286100bv64); - free requires (memory_load64_le(mem, 2280bv64) == 7575166128241079840bv64); - free requires (memory_load64_le(mem, 2288bv64) == 11420940909171bv64); - free requires (memory_load64_le(mem, 2296bv64) == 2338615504306268244bv64); - free requires (memory_load64_le(mem, 2304bv64) == 2924860384375657bv64); - free requires (memory_load64_le(mem, 2312bv64) == 7017575154564032596bv64); - free requires (memory_load64_le(mem, 2320bv64) == 7089063228440191084bv64); - free requires (memory_load64_le(mem, 2328bv64) == 2675202446017455468bv64); - free requires (memory_load8_le(mem, 2336bv64) == 100bv8); - free requires (memory_load8_le(mem, 2337bv64) == 10bv8); - free requires (memory_load8_le(mem, 2338bv64) == 0bv8); - free requires (memory_load64_le(mem, 68992bv64) == 2192bv64); - free requires (memory_load64_le(mem, 69000bv64) == 2112bv64); - free requires (memory_load64_le(mem, 69616bv64) == 1792bv64); - free requires (memory_load64_le(mem, 69640bv64) == 69640bv64); - free ensures (memory_load64_le(mem, 2264bv64) == 131073bv64); - free ensures (memory_load64_le(mem, 2272bv64) == 8241983568019286100bv64); - free ensures (memory_load64_le(mem, 2280bv64) == 7575166128241079840bv64); - free ensures (memory_load64_le(mem, 2288bv64) == 11420940909171bv64); - free ensures (memory_load64_le(mem, 2296bv64) == 2338615504306268244bv64); - free ensures (memory_load64_le(mem, 2304bv64) == 2924860384375657bv64); - free ensures (memory_load64_le(mem, 2312bv64) == 7017575154564032596bv64); - free ensures (memory_load64_le(mem, 2320bv64) == 7089063228440191084bv64); - free ensures (memory_load64_le(mem, 2328bv64) == 2675202446017455468bv64); - free ensures (memory_load8_le(mem, 2336bv64) == 100bv8); - free ensures (memory_load8_le(mem, 2337bv64) == 10bv8); - free ensures (memory_load8_le(mem, 2338bv64) == 0bv8); - free ensures (memory_load64_le(mem, 68992bv64) == 2192bv64); - free ensures (memory_load64_le(mem, 69000bv64) == 2112bv64); - free ensures (memory_load64_le(mem, 69616bv64) == 1792bv64); - free ensures (memory_load64_le(mem, 69640bv64) == 69640bv64); +procedure printCharValue(); + modifies Gamma_R0, Gamma_R1, Gamma_R16, Gamma_R17, Gamma_R2, Gamma_R3, Gamma_mem, R0, R1, R16, R17, R2, R3, mem; + free requires (memory_load64_le(mem, 4196680bv64) == 131073bv64); + free requires (memory_load64_le(mem, 4196688bv64) == 8241983568019286100bv64); + free requires (memory_load64_le(mem, 4196696bv64) == 7575166128241079840bv64); + free requires (memory_load64_le(mem, 4196704bv64) == 11420940909171bv64); + free requires (memory_load64_le(mem, 4196712bv64) == 2338615504306268244bv64); + free requires (memory_load64_le(mem, 4196720bv64) == 2924860384375657bv64); + free requires (memory_load64_le(mem, 4196728bv64) == 7017575154564032596bv64); + free requires (memory_load64_le(mem, 4196736bv64) == 7089063228440191084bv64); + free requires (memory_load64_le(mem, 4196744bv64) == 2675202446017455468bv64); + free requires (memory_load8_le(mem, 4196752bv64) == 100bv8); + free requires (memory_load8_le(mem, 4196753bv64) == 10bv8); + free requires (memory_load8_le(mem, 4196754bv64) == 0bv8); + free ensures (memory_load64_le(mem, 4196680bv64) == 131073bv64); + free ensures (memory_load64_le(mem, 4196688bv64) == 8241983568019286100bv64); + free ensures (memory_load64_le(mem, 4196696bv64) == 7575166128241079840bv64); + free ensures (memory_load64_le(mem, 4196704bv64) == 11420940909171bv64); + free ensures (memory_load64_le(mem, 4196712bv64) == 2338615504306268244bv64); + free ensures (memory_load64_le(mem, 4196720bv64) == 2924860384375657bv64); + free ensures (memory_load64_le(mem, 4196728bv64) == 7017575154564032596bv64); + free ensures (memory_load64_le(mem, 4196736bv64) == 7089063228440191084bv64); + free ensures (memory_load64_le(mem, 4196744bv64) == 2675202446017455468bv64); + free ensures (memory_load8_le(mem, 4196752bv64) == 100bv8); + free ensures (memory_load8_le(mem, 4196753bv64) == 10bv8); + free ensures (memory_load8_le(mem, 4196754bv64) == 0bv8); -implementation FUN_690_1680() +implementation printCharValue() { - var Gamma_load1: bool; - var load1: bv64; - FUN_690_1680__0__mY9s1Q7ERri98AKVPtsmww: - assume {:captureState "FUN_690_1680__0__mY9s1Q7ERri98AKVPtsmww"} true; - R16, Gamma_R16 := 65536bv64, true; + var $load4: bv8; + var Gamma_$load4: bool; + $printCharValue$__0__$H7LPJaZbQvWx~VL~kBk__Q: + assume {:captureState "$printCharValue$__0__$H7LPJaZbQvWx~VL~kBk__Q"} true; + R3, Gamma_R3 := R0, Gamma_R0; + R1, Gamma_R1 := 4194304bv64, true; + R0, Gamma_R0 := 2bv64, true; + R1, Gamma_R1 := bvadd64(R1, 2384bv64), Gamma_R1; call rely(); - load1, Gamma_load1 := memory_load64_le(mem, bvadd64(R16, 4008bv64)), (gamma_load64(Gamma_mem, bvadd64(R16, 4008bv64)) || L(mem, bvadd64(R16, 4008bv64))); - R17, Gamma_R17 := load1, Gamma_load1; - R16, Gamma_R16 := bvadd64(R16, 4008bv64), Gamma_R16; - call malloc(); - goto FUN_690_1680_basil_return; - FUN_690_1680_basil_return: - assume {:captureState "FUN_690_1680_basil_return"} true; - return; -} - -procedure FUN_6d0_1744(); - modifies Gamma_R16, Gamma_R17, Gamma_mem, R16, R17, mem; - free requires (memory_load64_le(mem, 2264bv64) == 131073bv64); - free requires (memory_load64_le(mem, 2272bv64) == 8241983568019286100bv64); - free requires (memory_load64_le(mem, 2280bv64) == 7575166128241079840bv64); - free requires (memory_load64_le(mem, 2288bv64) == 11420940909171bv64); - free requires (memory_load64_le(mem, 2296bv64) == 2338615504306268244bv64); - free requires (memory_load64_le(mem, 2304bv64) == 2924860384375657bv64); - free requires (memory_load64_le(mem, 2312bv64) == 7017575154564032596bv64); - free requires (memory_load64_le(mem, 2320bv64) == 7089063228440191084bv64); - free requires (memory_load64_le(mem, 2328bv64) == 2675202446017455468bv64); - free requires (memory_load8_le(mem, 2336bv64) == 100bv8); - free requires (memory_load8_le(mem, 2337bv64) == 10bv8); - free requires (memory_load8_le(mem, 2338bv64) == 0bv8); - free requires (memory_load64_le(mem, 68992bv64) == 2192bv64); - free requires (memory_load64_le(mem, 69000bv64) == 2112bv64); - free requires (memory_load64_le(mem, 69616bv64) == 1792bv64); - free requires (memory_load64_le(mem, 69640bv64) == 69640bv64); - free ensures (memory_load64_le(mem, 2264bv64) == 131073bv64); - free ensures (memory_load64_le(mem, 2272bv64) == 8241983568019286100bv64); - free ensures (memory_load64_le(mem, 2280bv64) == 7575166128241079840bv64); - free ensures (memory_load64_le(mem, 2288bv64) == 11420940909171bv64); - free ensures (memory_load64_le(mem, 2296bv64) == 2338615504306268244bv64); - free ensures (memory_load64_le(mem, 2304bv64) == 2924860384375657bv64); - free ensures (memory_load64_le(mem, 2312bv64) == 7017575154564032596bv64); - free ensures (memory_load64_le(mem, 2320bv64) == 7089063228440191084bv64); - free ensures (memory_load64_le(mem, 2328bv64) == 2675202446017455468bv64); - free ensures (memory_load8_le(mem, 2336bv64) == 100bv8); - free ensures (memory_load8_le(mem, 2337bv64) == 10bv8); - free ensures (memory_load8_le(mem, 2338bv64) == 0bv8); - free ensures (memory_load64_le(mem, 68992bv64) == 2192bv64); - free ensures (memory_load64_le(mem, 69000bv64) == 2112bv64); - free ensures (memory_load64_le(mem, 69616bv64) == 1792bv64); - free ensures (memory_load64_le(mem, 69640bv64) == 69640bv64); - -implementation FUN_6d0_1744() -{ - var Gamma_load2: bool; - var load2: bv64; - FUN_6d0_1744__0__TBxeE0XrQd~VB7pBlFfEjQ: - assume {:captureState "FUN_6d0_1744__0__TBxeE0XrQd~VB7pBlFfEjQ"} true; - R16, Gamma_R16 := 65536bv64, true; + $load4, Gamma_$load4 := memory_load8_le(mem, R3), (gamma_load8(Gamma_mem, R3) || L(mem, R3)); + R2, Gamma_R2 := zero_extend32_32(zero_extend24_8($load4)), Gamma_$load4; + R2, Gamma_R2 := zero_extend32_32(bvadd32(R2[32:0], 1bv32)), Gamma_R2; + R2, Gamma_R2 := zero_extend32_32(zero_extend24_8(R2[8:0])), Gamma_R2; call rely(); - load2, Gamma_load2 := memory_load64_le(mem, bvadd64(R16, 4040bv64)), (gamma_load64(Gamma_mem, bvadd64(R16, 4040bv64)) || L(mem, bvadd64(R16, 4040bv64))); - R17, Gamma_R17 := load2, Gamma_load2; - R16, Gamma_R16 := bvadd64(R16, 4040bv64), Gamma_R16; - call #free(); - goto FUN_6d0_1744_basil_return; - FUN_6d0_1744_basil_return: - assume {:captureState "FUN_6d0_1744_basil_return"} true; - return; + assert (L(mem, R3) ==> Gamma_R2); + mem, Gamma_mem := memory_store8_le(mem, R3, R2[8:0]), gamma_store8(Gamma_mem, R3, Gamma_R2); + assume {:captureState "4196652$0"} true; + call FUN_400710(); + assume false; } -procedure FUN_6a0_1696(); +procedure FUN_400700(); modifies Gamma_R16, Gamma_R17, Gamma_mem, R16, R17, mem; - free requires (memory_load64_le(mem, 2264bv64) == 131073bv64); - free requires (memory_load64_le(mem, 2272bv64) == 8241983568019286100bv64); - free requires (memory_load64_le(mem, 2280bv64) == 7575166128241079840bv64); - free requires (memory_load64_le(mem, 2288bv64) == 11420940909171bv64); - free requires (memory_load64_le(mem, 2296bv64) == 2338615504306268244bv64); - free requires (memory_load64_le(mem, 2304bv64) == 2924860384375657bv64); - free requires (memory_load64_le(mem, 2312bv64) == 7017575154564032596bv64); - free requires (memory_load64_le(mem, 2320bv64) == 7089063228440191084bv64); - free requires (memory_load64_le(mem, 2328bv64) == 2675202446017455468bv64); - free requires (memory_load8_le(mem, 2336bv64) == 100bv8); - free requires (memory_load8_le(mem, 2337bv64) == 10bv8); - free requires (memory_load8_le(mem, 2338bv64) == 0bv8); - free requires (memory_load64_le(mem, 68992bv64) == 2192bv64); - free requires (memory_load64_le(mem, 69000bv64) == 2112bv64); - free requires (memory_load64_le(mem, 69616bv64) == 1792bv64); - free requires (memory_load64_le(mem, 69640bv64) == 69640bv64); - free ensures (memory_load64_le(mem, 2264bv64) == 131073bv64); - free ensures (memory_load64_le(mem, 2272bv64) == 8241983568019286100bv64); - free ensures (memory_load64_le(mem, 2280bv64) == 7575166128241079840bv64); - free ensures (memory_load64_le(mem, 2288bv64) == 11420940909171bv64); - free ensures (memory_load64_le(mem, 2296bv64) == 2338615504306268244bv64); - free ensures (memory_load64_le(mem, 2304bv64) == 2924860384375657bv64); - free ensures (memory_load64_le(mem, 2312bv64) == 7017575154564032596bv64); - free ensures (memory_load64_le(mem, 2320bv64) == 7089063228440191084bv64); - free ensures (memory_load64_le(mem, 2328bv64) == 2675202446017455468bv64); - free ensures (memory_load8_le(mem, 2336bv64) == 100bv8); - free ensures (memory_load8_le(mem, 2337bv64) == 10bv8); - free ensures (memory_load8_le(mem, 2338bv64) == 0bv8); - free ensures (memory_load64_le(mem, 68992bv64) == 2192bv64); - free ensures (memory_load64_le(mem, 69000bv64) == 2112bv64); - free ensures (memory_load64_le(mem, 69616bv64) == 1792bv64); - free ensures (memory_load64_le(mem, 69640bv64) == 69640bv64); + free requires (memory_load64_le(mem, 4196680bv64) == 131073bv64); + free requires (memory_load64_le(mem, 4196688bv64) == 8241983568019286100bv64); + free requires (memory_load64_le(mem, 4196696bv64) == 7575166128241079840bv64); + free requires (memory_load64_le(mem, 4196704bv64) == 11420940909171bv64); + free requires (memory_load64_le(mem, 4196712bv64) == 2338615504306268244bv64); + free requires (memory_load64_le(mem, 4196720bv64) == 2924860384375657bv64); + free requires (memory_load64_le(mem, 4196728bv64) == 7017575154564032596bv64); + free requires (memory_load64_le(mem, 4196736bv64) == 7089063228440191084bv64); + free requires (memory_load64_le(mem, 4196744bv64) == 2675202446017455468bv64); + free requires (memory_load8_le(mem, 4196752bv64) == 100bv8); + free requires (memory_load8_le(mem, 4196753bv64) == 10bv8); + free requires (memory_load8_le(mem, 4196754bv64) == 0bv8); + free ensures (memory_load64_le(mem, 4196680bv64) == 131073bv64); + free ensures (memory_load64_le(mem, 4196688bv64) == 8241983568019286100bv64); + free ensures (memory_load64_le(mem, 4196696bv64) == 7575166128241079840bv64); + free ensures (memory_load64_le(mem, 4196704bv64) == 11420940909171bv64); + free ensures (memory_load64_le(mem, 4196712bv64) == 2338615504306268244bv64); + free ensures (memory_load64_le(mem, 4196720bv64) == 2924860384375657bv64); + free ensures (memory_load64_le(mem, 4196728bv64) == 7017575154564032596bv64); + free ensures (memory_load64_le(mem, 4196736bv64) == 7089063228440191084bv64); + free ensures (memory_load64_le(mem, 4196744bv64) == 2675202446017455468bv64); + free ensures (memory_load8_le(mem, 4196752bv64) == 100bv8); + free ensures (memory_load8_le(mem, 4196753bv64) == 10bv8); + free ensures (memory_load8_le(mem, 4196754bv64) == 0bv8); -implementation FUN_6a0_1696() +implementation FUN_400700() { - var Gamma_load8: bool; - var load8: bv64; - FUN_6a0_1696__0__O00NhqclR_SCVHbvubgdHA: - assume {:captureState "FUN_6a0_1696__0__O00NhqclR_SCVHbvubgdHA"} true; - R16, Gamma_R16 := 65536bv64, true; + var $load5: bv64; + var Gamma_$load5: bool; + $FUN_400700$__0__$fxMAJl44TWOTA8IHVD8V7Q: + assume {:captureState "$FUN_400700$__0__$fxMAJl44TWOTA8IHVD8V7Q"} true; + R16, Gamma_R16 := 4321280bv64, true; call rely(); - load8, Gamma_load8 := memory_load64_le(mem, bvadd64(R16, 4016bv64)), (gamma_load64(Gamma_mem, bvadd64(R16, 4016bv64)) || L(mem, bvadd64(R16, 4016bv64))); - R17, Gamma_R17 := load8, Gamma_load8; - R16, Gamma_R16 := bvadd64(R16, 4016bv64), Gamma_R16; - call __printf_chk(); - goto FUN_6a0_1696_basil_return; - FUN_6a0_1696_basil_return: - assume {:captureState "FUN_6a0_1696_basil_return"} true; - return; + $load5, Gamma_$load5 := memory_load64_le(mem, bvadd64(R16, 4024bv64)), (gamma_load64(Gamma_mem, bvadd64(R16, 4024bv64)) || L(mem, bvadd64(R16, 4024bv64))); + R17, Gamma_R17 := $load5, Gamma_$load5; + R16, Gamma_R16 := bvadd64(R16, 4024bv64), Gamma_R16; + call malloc(); + assume false; } -procedure main_1792(); +procedure main(); modifies Gamma_R0, Gamma_R1, Gamma_R16, Gamma_R17, Gamma_R19, Gamma_R2, Gamma_R29, Gamma_R3, Gamma_R30, Gamma_R31, Gamma_mem, Gamma_stack, R0, R1, R16, R17, R19, R2, R29, R3, R30, R31, mem, stack; - free requires (memory_load64_le(mem, 69632bv64) == 0bv64); - free requires (memory_load64_le(mem, 69640bv64) == 69640bv64); - free requires (memory_load64_le(mem, 2264bv64) == 131073bv64); - free requires (memory_load64_le(mem, 2272bv64) == 8241983568019286100bv64); - free requires (memory_load64_le(mem, 2280bv64) == 7575166128241079840bv64); - free requires (memory_load64_le(mem, 2288bv64) == 11420940909171bv64); - free requires (memory_load64_le(mem, 2296bv64) == 2338615504306268244bv64); - free requires (memory_load64_le(mem, 2304bv64) == 2924860384375657bv64); - free requires (memory_load64_le(mem, 2312bv64) == 7017575154564032596bv64); - free requires (memory_load64_le(mem, 2320bv64) == 7089063228440191084bv64); - free requires (memory_load64_le(mem, 2328bv64) == 2675202446017455468bv64); - free requires (memory_load8_le(mem, 2336bv64) == 100bv8); - free requires (memory_load8_le(mem, 2337bv64) == 10bv8); - free requires (memory_load8_le(mem, 2338bv64) == 0bv8); - free requires (memory_load64_le(mem, 68992bv64) == 2192bv64); - free requires (memory_load64_le(mem, 69000bv64) == 2112bv64); - free requires (memory_load64_le(mem, 69616bv64) == 1792bv64); - free requires (memory_load64_le(mem, 69640bv64) == 69640bv64); + free requires (memory_load64_le(mem, 4325376bv64) == 0bv64); + free requires (memory_load64_le(mem, 4325384bv64) == 0bv64); + free requires (memory_load64_le(mem, 4196680bv64) == 131073bv64); + free requires (memory_load64_le(mem, 4196688bv64) == 8241983568019286100bv64); + free requires (memory_load64_le(mem, 4196696bv64) == 7575166128241079840bv64); + free requires (memory_load64_le(mem, 4196704bv64) == 11420940909171bv64); + free requires (memory_load64_le(mem, 4196712bv64) == 2338615504306268244bv64); + free requires (memory_load64_le(mem, 4196720bv64) == 2924860384375657bv64); + free requires (memory_load64_le(mem, 4196728bv64) == 7017575154564032596bv64); + free requires (memory_load64_le(mem, 4196736bv64) == 7089063228440191084bv64); + free requires (memory_load64_le(mem, 4196744bv64) == 2675202446017455468bv64); + free requires (memory_load8_le(mem, 4196752bv64) == 100bv8); + free requires (memory_load8_le(mem, 4196753bv64) == 10bv8); + free requires (memory_load8_le(mem, 4196754bv64) == 0bv8); free ensures (Gamma_R19 == old(Gamma_R19)); free ensures (Gamma_R29 == old(Gamma_R29)); free ensures (Gamma_R31 == old(Gamma_R31)); free ensures (R19 == old(R19)); free ensures (R29 == old(R29)); free ensures (R31 == old(R31)); - free ensures (memory_load64_le(mem, 2264bv64) == 131073bv64); - free ensures (memory_load64_le(mem, 2272bv64) == 8241983568019286100bv64); - free ensures (memory_load64_le(mem, 2280bv64) == 7575166128241079840bv64); - free ensures (memory_load64_le(mem, 2288bv64) == 11420940909171bv64); - free ensures (memory_load64_le(mem, 2296bv64) == 2338615504306268244bv64); - free ensures (memory_load64_le(mem, 2304bv64) == 2924860384375657bv64); - free ensures (memory_load64_le(mem, 2312bv64) == 7017575154564032596bv64); - free ensures (memory_load64_le(mem, 2320bv64) == 7089063228440191084bv64); - free ensures (memory_load64_le(mem, 2328bv64) == 2675202446017455468bv64); - free ensures (memory_load8_le(mem, 2336bv64) == 100bv8); - free ensures (memory_load8_le(mem, 2337bv64) == 10bv8); - free ensures (memory_load8_le(mem, 2338bv64) == 0bv8); - free ensures (memory_load64_le(mem, 68992bv64) == 2192bv64); - free ensures (memory_load64_le(mem, 69000bv64) == 2112bv64); - free ensures (memory_load64_le(mem, 69616bv64) == 1792bv64); - free ensures (memory_load64_le(mem, 69640bv64) == 69640bv64); + free ensures (memory_load64_le(mem, 4196680bv64) == 131073bv64); + free ensures (memory_load64_le(mem, 4196688bv64) == 8241983568019286100bv64); + free ensures (memory_load64_le(mem, 4196696bv64) == 7575166128241079840bv64); + free ensures (memory_load64_le(mem, 4196704bv64) == 11420940909171bv64); + free ensures (memory_load64_le(mem, 4196712bv64) == 2338615504306268244bv64); + free ensures (memory_load64_le(mem, 4196720bv64) == 2924860384375657bv64); + free ensures (memory_load64_le(mem, 4196728bv64) == 7017575154564032596bv64); + free ensures (memory_load64_le(mem, 4196736bv64) == 7089063228440191084bv64); + free ensures (memory_load64_le(mem, 4196744bv64) == 2675202446017455468bv64); + free ensures (memory_load8_le(mem, 4196752bv64) == 100bv8); + free ensures (memory_load8_le(mem, 4196753bv64) == 10bv8); + free ensures (memory_load8_le(mem, 4196754bv64) == 0bv8); -implementation main_1792() +implementation main() { - var Cse0__5_2_0: bv64; - var Gamma_Cse0__5_2_0: bool; - var Gamma_load15: bool; - var Gamma_load16: bool; - var Gamma_load17: bool; - var load15: bv64; - var load16: bv64; - var load17: bv64; - main_1792__0__EGWpjBzGR2uGhrMJAyG~3g: - assume {:captureState "main_1792__0__EGWpjBzGR2uGhrMJAyG~3g"} true; - Cse0__5_2_0, Gamma_Cse0__5_2_0 := bvadd64(R31, 18446744073709551584bv64), Gamma_R31; - stack, Gamma_stack := memory_store64_le(stack, Cse0__5_2_0, R29), gamma_store64(Gamma_stack, Cse0__5_2_0, Gamma_R29); - assume {:captureState "1792_1"} true; - stack, Gamma_stack := memory_store64_le(stack, bvadd64(Cse0__5_2_0, 8bv64), R30), gamma_store64(Gamma_stack, bvadd64(Cse0__5_2_0, 8bv64), Gamma_R30); - assume {:captureState "1792_2"} true; - R31, Gamma_R31 := Cse0__5_2_0, Gamma_Cse0__5_2_0; + var $load10: bv64; + var $load8: bv64; + var $load9: bv64; + var Cse0__5$5$0: bv64; + var Gamma_$load10: bool; + var Gamma_$load8: bool; + var Gamma_$load9: bool; + var Gamma_Cse0__5$5$0: bool; + $main$__0__$cdQ2GS2~QhaOa7OUvPWMRQ: + assume {:captureState "$main$__0__$cdQ2GS2~QhaOa7OUvPWMRQ"} true; + Cse0__5$5$0, Gamma_Cse0__5$5$0 := bvadd64(R31, 18446744073709551584bv64), Gamma_R31; + stack, Gamma_stack := memory_store64_le(stack, Cse0__5$5$0, R29), gamma_store64(Gamma_stack, Cse0__5$5$0, Gamma_R29); + assume {:captureState "4196224$1"} true; + stack, Gamma_stack := memory_store64_le(stack, bvadd64(Cse0__5$5$0, 8bv64), R30), gamma_store64(Gamma_stack, bvadd64(Cse0__5$5$0, 8bv64), Gamma_R30); + assume {:captureState "4196224$2"} true; + R31, Gamma_R31 := Cse0__5$5$0, Gamma_Cse0__5$5$0; R0, Gamma_R0 := 1bv64, true; R29, Gamma_R29 := R31, Gamma_R31; stack, Gamma_stack := memory_store64_le(stack, bvadd64(R31, 16bv64), R19), gamma_store64(Gamma_stack, bvadd64(R31, 16bv64), Gamma_R19); - assume {:captureState "1804_0"} true; - R30, Gamma_R30 := 1812bv64, true; - call FUN_690_1680(); - goto main_1792__1__1G3_7a3~SsmqJyDUhqAFGg; - main_1792__1__1G3_7a3~SsmqJyDUhqAFGg: - assume {:captureState "main_1792__1__1G3_7a3~SsmqJyDUhqAFGg"} true; + assume {:captureState "4196236$0"} true; + R30, Gamma_R30 := 4196244bv64, true; + call FUN_400700(); + goto $main$__1__$rIlbG4jGSTydaFqMhxCKWw; + $main$__1__$rIlbG4jGSTydaFqMhxCKWw: + assume {:captureState "$main$__1__$rIlbG4jGSTydaFqMhxCKWw"} true; R1, Gamma_R1 := 65bv64, true; call rely(); assert (L(mem, R0) ==> Gamma_R1); mem, Gamma_mem := memory_store8_le(mem, R0, R1[8:0]), gamma_store8(Gamma_mem, R0, Gamma_R1); - assume {:captureState "1816_0"} true; + assume {:captureState "4196248$0"} true; R19, Gamma_R19 := R0, Gamma_R0; - R30, Gamma_R30 := 1828bv64, true; - call printCharValue_2208(); - goto main_1792__2__rV0qH7AUTYCipfKaroPpAw; - main_1792__2__rV0qH7AUTYCipfKaroPpAw: - assume {:captureState "main_1792__2__rV0qH7AUTYCipfKaroPpAw"} true; + R30, Gamma_R30 := 4196240bv64, true; + call printCharValue(); + goto $main$__2__$tXIOhSQ~R1WA_9VL5~6KQQ; + $main$__2__$tXIOhSQ~R1WA_9VL5~6KQQ: + assume {:captureState "$main$__2__$tXIOhSQ~R1WA_9VL5~6KQQ"} true; R2, Gamma_R2 := 42bv64, true; - R1, Gamma_R1 := 0bv64, true; - R0, Gamma_R0 := 1bv64, true; - R1, Gamma_R1 := bvadd64(R1, 2296bv64), Gamma_R1; - R30, Gamma_R30 := 1848bv64, true; - call FUN_6a0_1696(); - goto main_1792__3__IxBBXD6FTfupEp7ajNK8uA; - main_1792__3__IxBBXD6FTfupEp7ajNK8uA: - assume {:captureState "main_1792__3__IxBBXD6FTfupEp7ajNK8uA"} true; - R1, Gamma_R1 := 0bv64, true; - R1, Gamma_R1 := bvadd64(R1, 2312bv64), Gamma_R1; + R1, Gamma_R1 := 4194304bv64, true; + R0, Gamma_R0 := 2bv64, true; + R1, Gamma_R1 := bvadd64(R1, 2408bv64), Gamma_R1; + R30, Gamma_R30 := 4196244bv64, true; + call FUN_400710(); + goto $main$__3__$oqiqdATZTc6MDOYJqL9Aew; + $main$__3__$oqiqdATZTc6MDOYJqL9Aew: + assume {:captureState "$main$__3__$oqiqdATZTc6MDOYJqL9Aew"} true; + R1, Gamma_R1 := 4194304bv64, true; + R1, Gamma_R1 := bvadd64(R1, 2424bv64), Gamma_R1; R2, Gamma_R2 := 10bv64, true; - R0, Gamma_R0 := 1bv64, true; - R30, Gamma_R30 := 1868bv64, true; - call FUN_6a0_1696(); - goto main_1792__4__aEiQ_BI9RcCTTmScF~6KKw; - main_1792__4__aEiQ_BI9RcCTTmScF~6KKw: - assume {:captureState "main_1792__4__aEiQ_BI9RcCTTmScF~6KKw"} true; + R0, Gamma_R0 := 2bv64, true; + R30, Gamma_R30 := 4196244bv64, true; + call FUN_400710(); + goto $main$__4__$IkNYmV06TxC75h8A4NM3wA; + $main$__4__$IkNYmV06TxC75h8A4NM3wA: + assume {:captureState "$main$__4__$IkNYmV06TxC75h8A4NM3wA"} true; R0, Gamma_R0 := R19, Gamma_R19; - R30, Gamma_R30 := 1812bv64, true; - call FUN_6d0_1744(); - goto main_1792__5__WNzpebfFQGeh7VGQ52Mh0w; - main_1792__5__WNzpebfFQGeh7VGQ52Mh0w: - assume {:captureState "main_1792__5__WNzpebfFQGeh7VGQ52Mh0w"} true; + R30, Gamma_R30 := 4196232bv64, true; + call FUN_400740(); + goto $main$__5__$D9t2gNJrSmyMH3GAVRe3IQ; + $main$__5__$D9t2gNJrSmyMH3GAVRe3IQ: + assume {:captureState "$main$__5__$D9t2gNJrSmyMH3GAVRe3IQ"} true; + $load8, Gamma_$load8 := memory_load64_le(stack, bvadd64(R31, 16bv64)), gamma_load64(Gamma_stack, bvadd64(R31, 16bv64)); + R19, Gamma_R19 := $load8, Gamma_$load8; R0, Gamma_R0 := 0bv64, true; - load15, Gamma_load15 := memory_load64_le(stack, bvadd64(R31, 16bv64)), gamma_load64(Gamma_stack, bvadd64(R31, 16bv64)); - R19, Gamma_R19 := load15, Gamma_load15; - load16, Gamma_load16 := memory_load64_le(stack, R31), gamma_load64(Gamma_stack, R31); - R29, Gamma_R29 := load16, Gamma_load16; - load17, Gamma_load17 := memory_load64_le(stack, bvadd64(R31, 8bv64)), gamma_load64(Gamma_stack, bvadd64(R31, 8bv64)); - R30, Gamma_R30 := load17, Gamma_load17; + $load9, Gamma_$load9 := memory_load64_le(stack, R31), gamma_load64(Gamma_stack, R31); + R29, Gamma_R29 := $load9, Gamma_$load9; + $load10, Gamma_$load10 := memory_load64_le(stack, bvadd64(R31, 8bv64)), gamma_load64(Gamma_stack, bvadd64(R31, 8bv64)); + R30, Gamma_R30 := $load10, Gamma_$load10; R31, Gamma_R31 := bvadd64(R31, 32bv64), Gamma_R31; - goto main_1792_basil_return; - main_1792_basil_return: - assume {:captureState "main_1792_basil_return"} true; + goto main_basil_return; + main_basil_return: + assume {:captureState "main_basil_return"} true; return; } -procedure printCharValue_2208(); - modifies Gamma_R0, Gamma_R1, Gamma_R16, Gamma_R17, Gamma_R2, Gamma_R3, Gamma_mem, R0, R1, R16, R17, R2, R3, mem; - free requires (memory_load64_le(mem, 2264bv64) == 131073bv64); - free requires (memory_load64_le(mem, 2272bv64) == 8241983568019286100bv64); - free requires (memory_load64_le(mem, 2280bv64) == 7575166128241079840bv64); - free requires (memory_load64_le(mem, 2288bv64) == 11420940909171bv64); - free requires (memory_load64_le(mem, 2296bv64) == 2338615504306268244bv64); - free requires (memory_load64_le(mem, 2304bv64) == 2924860384375657bv64); - free requires (memory_load64_le(mem, 2312bv64) == 7017575154564032596bv64); - free requires (memory_load64_le(mem, 2320bv64) == 7089063228440191084bv64); - free requires (memory_load64_le(mem, 2328bv64) == 2675202446017455468bv64); - free requires (memory_load8_le(mem, 2336bv64) == 100bv8); - free requires (memory_load8_le(mem, 2337bv64) == 10bv8); - free requires (memory_load8_le(mem, 2338bv64) == 0bv8); - free requires (memory_load64_le(mem, 68992bv64) == 2192bv64); - free requires (memory_load64_le(mem, 69000bv64) == 2112bv64); - free requires (memory_load64_le(mem, 69616bv64) == 1792bv64); - free requires (memory_load64_le(mem, 69640bv64) == 69640bv64); - free ensures (memory_load64_le(mem, 2264bv64) == 131073bv64); - free ensures (memory_load64_le(mem, 2272bv64) == 8241983568019286100bv64); - free ensures (memory_load64_le(mem, 2280bv64) == 7575166128241079840bv64); - free ensures (memory_load64_le(mem, 2288bv64) == 11420940909171bv64); - free ensures (memory_load64_le(mem, 2296bv64) == 2338615504306268244bv64); - free ensures (memory_load64_le(mem, 2304bv64) == 2924860384375657bv64); - free ensures (memory_load64_le(mem, 2312bv64) == 7017575154564032596bv64); - free ensures (memory_load64_le(mem, 2320bv64) == 7089063228440191084bv64); - free ensures (memory_load64_le(mem, 2328bv64) == 2675202446017455468bv64); - free ensures (memory_load8_le(mem, 2336bv64) == 100bv8); - free ensures (memory_load8_le(mem, 2337bv64) == 10bv8); - free ensures (memory_load8_le(mem, 2338bv64) == 0bv8); - free ensures (memory_load64_le(mem, 68992bv64) == 2192bv64); - free ensures (memory_load64_le(mem, 69000bv64) == 2112bv64); - free ensures (memory_load64_le(mem, 69616bv64) == 1792bv64); - free ensures (memory_load64_le(mem, 69640bv64) == 69640bv64); +procedure FUN_400710(); + modifies Gamma_R16, Gamma_R17, Gamma_mem, R16, R17, mem; + free requires (memory_load64_le(mem, 4196680bv64) == 131073bv64); + free requires (memory_load64_le(mem, 4196688bv64) == 8241983568019286100bv64); + free requires (memory_load64_le(mem, 4196696bv64) == 7575166128241079840bv64); + free requires (memory_load64_le(mem, 4196704bv64) == 11420940909171bv64); + free requires (memory_load64_le(mem, 4196712bv64) == 2338615504306268244bv64); + free requires (memory_load64_le(mem, 4196720bv64) == 2924860384375657bv64); + free requires (memory_load64_le(mem, 4196728bv64) == 7017575154564032596bv64); + free requires (memory_load64_le(mem, 4196736bv64) == 7089063228440191084bv64); + free requires (memory_load64_le(mem, 4196744bv64) == 2675202446017455468bv64); + free requires (memory_load8_le(mem, 4196752bv64) == 100bv8); + free requires (memory_load8_le(mem, 4196753bv64) == 10bv8); + free requires (memory_load8_le(mem, 4196754bv64) == 0bv8); + free ensures (memory_load64_le(mem, 4196680bv64) == 131073bv64); + free ensures (memory_load64_le(mem, 4196688bv64) == 8241983568019286100bv64); + free ensures (memory_load64_le(mem, 4196696bv64) == 7575166128241079840bv64); + free ensures (memory_load64_le(mem, 4196704bv64) == 11420940909171bv64); + free ensures (memory_load64_le(mem, 4196712bv64) == 2338615504306268244bv64); + free ensures (memory_load64_le(mem, 4196720bv64) == 2924860384375657bv64); + free ensures (memory_load64_le(mem, 4196728bv64) == 7017575154564032596bv64); + free ensures (memory_load64_le(mem, 4196736bv64) == 7089063228440191084bv64); + free ensures (memory_load64_le(mem, 4196744bv64) == 2675202446017455468bv64); + free ensures (memory_load8_le(mem, 4196752bv64) == 100bv8); + free ensures (memory_load8_le(mem, 4196753bv64) == 10bv8); + free ensures (memory_load8_le(mem, 4196754bv64) == 0bv8); -implementation printCharValue_2208() +implementation FUN_400710() { - var Gamma_load23: bool; - var load23: bv8; - printCharValue_2208__0__PI~q8_8oRjGuRvGwgENEcw: - assume {:captureState "printCharValue_2208__0__PI~q8_8oRjGuRvGwgENEcw"} true; - R3, Gamma_R3 := R0, Gamma_R0; - R0, Gamma_R0 := 1bv64, true; - R1, Gamma_R1 := 0bv64, true; - R1, Gamma_R1 := bvadd64(R1, 2272bv64), Gamma_R1; + var $load15: bv64; + var Gamma_$load15: bool; + $FUN_400710$__0__$yQ1z8A~IRoSs4MRYTbbghg: + assume {:captureState "$FUN_400710$__0__$yQ1z8A~IRoSs4MRYTbbghg"} true; + R16, Gamma_R16 := 4321280bv64, true; call rely(); - load23, Gamma_load23 := memory_load8_le(mem, R3), (gamma_load8(Gamma_mem, R3) || L(mem, R3)); - R2, Gamma_R2 := zero_extend32_32(zero_extend24_8(load23)), Gamma_load23; - R2, Gamma_R2 := zero_extend32_32(bvadd32(R2[32:0], R0[32:0])), (Gamma_R0 && Gamma_R2); - R2, Gamma_R2 := zero_extend32_32((0bv24 ++ R2[8:0])), Gamma_R2; + $load15, Gamma_$load15 := memory_load64_le(mem, bvadd64(R16, 4032bv64)), (gamma_load64(Gamma_mem, bvadd64(R16, 4032bv64)) || L(mem, bvadd64(R16, 4032bv64))); + R17, Gamma_R17 := $load15, Gamma_$load15; + R16, Gamma_R16 := bvadd64(R16, 4032bv64), Gamma_R16; + call __printf_chk(); + assume false; +} + +procedure FUN_400740(); + modifies Gamma_R16, Gamma_R17, Gamma_mem, R16, R17, mem; + free requires (memory_load64_le(mem, 4196680bv64) == 131073bv64); + free requires (memory_load64_le(mem, 4196688bv64) == 8241983568019286100bv64); + free requires (memory_load64_le(mem, 4196696bv64) == 7575166128241079840bv64); + free requires (memory_load64_le(mem, 4196704bv64) == 11420940909171bv64); + free requires (memory_load64_le(mem, 4196712bv64) == 2338615504306268244bv64); + free requires (memory_load64_le(mem, 4196720bv64) == 2924860384375657bv64); + free requires (memory_load64_le(mem, 4196728bv64) == 7017575154564032596bv64); + free requires (memory_load64_le(mem, 4196736bv64) == 7089063228440191084bv64); + free requires (memory_load64_le(mem, 4196744bv64) == 2675202446017455468bv64); + free requires (memory_load8_le(mem, 4196752bv64) == 100bv8); + free requires (memory_load8_le(mem, 4196753bv64) == 10bv8); + free requires (memory_load8_le(mem, 4196754bv64) == 0bv8); + free ensures (memory_load64_le(mem, 4196680bv64) == 131073bv64); + free ensures (memory_load64_le(mem, 4196688bv64) == 8241983568019286100bv64); + free ensures (memory_load64_le(mem, 4196696bv64) == 7575166128241079840bv64); + free ensures (memory_load64_le(mem, 4196704bv64) == 11420940909171bv64); + free ensures (memory_load64_le(mem, 4196712bv64) == 2338615504306268244bv64); + free ensures (memory_load64_le(mem, 4196720bv64) == 2924860384375657bv64); + free ensures (memory_load64_le(mem, 4196728bv64) == 7017575154564032596bv64); + free ensures (memory_load64_le(mem, 4196736bv64) == 7089063228440191084bv64); + free ensures (memory_load64_le(mem, 4196744bv64) == 2675202446017455468bv64); + free ensures (memory_load8_le(mem, 4196752bv64) == 100bv8); + free ensures (memory_load8_le(mem, 4196753bv64) == 10bv8); + free ensures (memory_load8_le(mem, 4196754bv64) == 0bv8); + +implementation FUN_400740() +{ + var $load20: bv64; + var Gamma_$load20: bool; + $FUN_400740$__0__$NfWWPq4PTwyv0VapVhBGag: + assume {:captureState "$FUN_400740$__0__$NfWWPq4PTwyv0VapVhBGag"} true; + R16, Gamma_R16 := 4321280bv64, true; call rely(); - assert (L(mem, R3) ==> Gamma_R2); - mem, Gamma_mem := memory_store8_le(mem, R3, R2[8:0]), gamma_store8(Gamma_mem, R3, Gamma_R2); - assume {:captureState "2236_0"} true; - call FUN_6a0_1696(); - goto printCharValue_2208_basil_return; - printCharValue_2208_basil_return: - assume {:captureState "printCharValue_2208_basil_return"} true; - return; + $load20, Gamma_$load20 := memory_load64_le(mem, bvadd64(R16, 4056bv64)), (gamma_load64(Gamma_mem, bvadd64(R16, 4056bv64)) || L(mem, bvadd64(R16, 4056bv64))); + R17, Gamma_R17 := $load20, Gamma_$load20; + R16, Gamma_R16 := bvadd64(R16, 4056bv64), Gamma_R16; + call #free(); + assume false; } procedure malloc(); - free requires (memory_load64_le(mem, 2264bv64) == 131073bv64); - free requires (memory_load64_le(mem, 2272bv64) == 8241983568019286100bv64); - free requires (memory_load64_le(mem, 2280bv64) == 7575166128241079840bv64); - free requires (memory_load64_le(mem, 2288bv64) == 11420940909171bv64); - free requires (memory_load64_le(mem, 2296bv64) == 2338615504306268244bv64); - free requires (memory_load64_le(mem, 2304bv64) == 2924860384375657bv64); - free requires (memory_load64_le(mem, 2312bv64) == 7017575154564032596bv64); - free requires (memory_load64_le(mem, 2320bv64) == 7089063228440191084bv64); - free requires (memory_load64_le(mem, 2328bv64) == 2675202446017455468bv64); - free requires (memory_load8_le(mem, 2336bv64) == 100bv8); - free requires (memory_load8_le(mem, 2337bv64) == 10bv8); - free requires (memory_load8_le(mem, 2338bv64) == 0bv8); - free requires (memory_load64_le(mem, 68992bv64) == 2192bv64); - free requires (memory_load64_le(mem, 69000bv64) == 2112bv64); - free requires (memory_load64_le(mem, 69616bv64) == 1792bv64); - free requires (memory_load64_le(mem, 69640bv64) == 69640bv64); - free ensures (memory_load64_le(mem, 2264bv64) == 131073bv64); - free ensures (memory_load64_le(mem, 2272bv64) == 8241983568019286100bv64); - free ensures (memory_load64_le(mem, 2280bv64) == 7575166128241079840bv64); - free ensures (memory_load64_le(mem, 2288bv64) == 11420940909171bv64); - free ensures (memory_load64_le(mem, 2296bv64) == 2338615504306268244bv64); - free ensures (memory_load64_le(mem, 2304bv64) == 2924860384375657bv64); - free ensures (memory_load64_le(mem, 2312bv64) == 7017575154564032596bv64); - free ensures (memory_load64_le(mem, 2320bv64) == 7089063228440191084bv64); - free ensures (memory_load64_le(mem, 2328bv64) == 2675202446017455468bv64); - free ensures (memory_load8_le(mem, 2336bv64) == 100bv8); - free ensures (memory_load8_le(mem, 2337bv64) == 10bv8); - free ensures (memory_load8_le(mem, 2338bv64) == 0bv8); - free ensures (memory_load64_le(mem, 68992bv64) == 2192bv64); - free ensures (memory_load64_le(mem, 69000bv64) == 2112bv64); - free ensures (memory_load64_le(mem, 69616bv64) == 1792bv64); - free ensures (memory_load64_le(mem, 69640bv64) == 69640bv64); - -procedure #free(); - free requires (memory_load64_le(mem, 2264bv64) == 131073bv64); - free requires (memory_load64_le(mem, 2272bv64) == 8241983568019286100bv64); - free requires (memory_load64_le(mem, 2280bv64) == 7575166128241079840bv64); - free requires (memory_load64_le(mem, 2288bv64) == 11420940909171bv64); - free requires (memory_load64_le(mem, 2296bv64) == 2338615504306268244bv64); - free requires (memory_load64_le(mem, 2304bv64) == 2924860384375657bv64); - free requires (memory_load64_le(mem, 2312bv64) == 7017575154564032596bv64); - free requires (memory_load64_le(mem, 2320bv64) == 7089063228440191084bv64); - free requires (memory_load64_le(mem, 2328bv64) == 2675202446017455468bv64); - free requires (memory_load8_le(mem, 2336bv64) == 100bv8); - free requires (memory_load8_le(mem, 2337bv64) == 10bv8); - free requires (memory_load8_le(mem, 2338bv64) == 0bv8); - free requires (memory_load64_le(mem, 68992bv64) == 2192bv64); - free requires (memory_load64_le(mem, 69000bv64) == 2112bv64); - free requires (memory_load64_le(mem, 69616bv64) == 1792bv64); - free requires (memory_load64_le(mem, 69640bv64) == 69640bv64); - free ensures (memory_load64_le(mem, 2264bv64) == 131073bv64); - free ensures (memory_load64_le(mem, 2272bv64) == 8241983568019286100bv64); - free ensures (memory_load64_le(mem, 2280bv64) == 7575166128241079840bv64); - free ensures (memory_load64_le(mem, 2288bv64) == 11420940909171bv64); - free ensures (memory_load64_le(mem, 2296bv64) == 2338615504306268244bv64); - free ensures (memory_load64_le(mem, 2304bv64) == 2924860384375657bv64); - free ensures (memory_load64_le(mem, 2312bv64) == 7017575154564032596bv64); - free ensures (memory_load64_le(mem, 2320bv64) == 7089063228440191084bv64); - free ensures (memory_load64_le(mem, 2328bv64) == 2675202446017455468bv64); - free ensures (memory_load8_le(mem, 2336bv64) == 100bv8); - free ensures (memory_load8_le(mem, 2337bv64) == 10bv8); - free ensures (memory_load8_le(mem, 2338bv64) == 0bv8); - free ensures (memory_load64_le(mem, 68992bv64) == 2192bv64); - free ensures (memory_load64_le(mem, 69000bv64) == 2112bv64); - free ensures (memory_load64_le(mem, 69616bv64) == 1792bv64); - free ensures (memory_load64_le(mem, 69640bv64) == 69640bv64); + free requires (memory_load64_le(mem, 4196680bv64) == 131073bv64); + free requires (memory_load64_le(mem, 4196688bv64) == 8241983568019286100bv64); + free requires (memory_load64_le(mem, 4196696bv64) == 7575166128241079840bv64); + free requires (memory_load64_le(mem, 4196704bv64) == 11420940909171bv64); + free requires (memory_load64_le(mem, 4196712bv64) == 2338615504306268244bv64); + free requires (memory_load64_le(mem, 4196720bv64) == 2924860384375657bv64); + free requires (memory_load64_le(mem, 4196728bv64) == 7017575154564032596bv64); + free requires (memory_load64_le(mem, 4196736bv64) == 7089063228440191084bv64); + free requires (memory_load64_le(mem, 4196744bv64) == 2675202446017455468bv64); + free requires (memory_load8_le(mem, 4196752bv64) == 100bv8); + free requires (memory_load8_le(mem, 4196753bv64) == 10bv8); + free requires (memory_load8_le(mem, 4196754bv64) == 0bv8); + free ensures (memory_load64_le(mem, 4196680bv64) == 131073bv64); + free ensures (memory_load64_le(mem, 4196688bv64) == 8241983568019286100bv64); + free ensures (memory_load64_le(mem, 4196696bv64) == 7575166128241079840bv64); + free ensures (memory_load64_le(mem, 4196704bv64) == 11420940909171bv64); + free ensures (memory_load64_le(mem, 4196712bv64) == 2338615504306268244bv64); + free ensures (memory_load64_le(mem, 4196720bv64) == 2924860384375657bv64); + free ensures (memory_load64_le(mem, 4196728bv64) == 7017575154564032596bv64); + free ensures (memory_load64_le(mem, 4196736bv64) == 7089063228440191084bv64); + free ensures (memory_load64_le(mem, 4196744bv64) == 2675202446017455468bv64); + free ensures (memory_load8_le(mem, 4196752bv64) == 100bv8); + free ensures (memory_load8_le(mem, 4196753bv64) == 10bv8); + free ensures (memory_load8_le(mem, 4196754bv64) == 0bv8); procedure __printf_chk(); - free requires (memory_load64_le(mem, 2264bv64) == 131073bv64); - free requires (memory_load64_le(mem, 2272bv64) == 8241983568019286100bv64); - free requires (memory_load64_le(mem, 2280bv64) == 7575166128241079840bv64); - free requires (memory_load64_le(mem, 2288bv64) == 11420940909171bv64); - free requires (memory_load64_le(mem, 2296bv64) == 2338615504306268244bv64); - free requires (memory_load64_le(mem, 2304bv64) == 2924860384375657bv64); - free requires (memory_load64_le(mem, 2312bv64) == 7017575154564032596bv64); - free requires (memory_load64_le(mem, 2320bv64) == 7089063228440191084bv64); - free requires (memory_load64_le(mem, 2328bv64) == 2675202446017455468bv64); - free requires (memory_load8_le(mem, 2336bv64) == 100bv8); - free requires (memory_load8_le(mem, 2337bv64) == 10bv8); - free requires (memory_load8_le(mem, 2338bv64) == 0bv8); - free requires (memory_load64_le(mem, 68992bv64) == 2192bv64); - free requires (memory_load64_le(mem, 69000bv64) == 2112bv64); - free requires (memory_load64_le(mem, 69616bv64) == 1792bv64); - free requires (memory_load64_le(mem, 69640bv64) == 69640bv64); - free ensures (memory_load64_le(mem, 2264bv64) == 131073bv64); - free ensures (memory_load64_le(mem, 2272bv64) == 8241983568019286100bv64); - free ensures (memory_load64_le(mem, 2280bv64) == 7575166128241079840bv64); - free ensures (memory_load64_le(mem, 2288bv64) == 11420940909171bv64); - free ensures (memory_load64_le(mem, 2296bv64) == 2338615504306268244bv64); - free ensures (memory_load64_le(mem, 2304bv64) == 2924860384375657bv64); - free ensures (memory_load64_le(mem, 2312bv64) == 7017575154564032596bv64); - free ensures (memory_load64_le(mem, 2320bv64) == 7089063228440191084bv64); - free ensures (memory_load64_le(mem, 2328bv64) == 2675202446017455468bv64); - free ensures (memory_load8_le(mem, 2336bv64) == 100bv8); - free ensures (memory_load8_le(mem, 2337bv64) == 10bv8); - free ensures (memory_load8_le(mem, 2338bv64) == 0bv8); - free ensures (memory_load64_le(mem, 68992bv64) == 2192bv64); - free ensures (memory_load64_le(mem, 69000bv64) == 2112bv64); - free ensures (memory_load64_le(mem, 69616bv64) == 1792bv64); - free ensures (memory_load64_le(mem, 69640bv64) == 69640bv64); + free requires (memory_load64_le(mem, 4196680bv64) == 131073bv64); + free requires (memory_load64_le(mem, 4196688bv64) == 8241983568019286100bv64); + free requires (memory_load64_le(mem, 4196696bv64) == 7575166128241079840bv64); + free requires (memory_load64_le(mem, 4196704bv64) == 11420940909171bv64); + free requires (memory_load64_le(mem, 4196712bv64) == 2338615504306268244bv64); + free requires (memory_load64_le(mem, 4196720bv64) == 2924860384375657bv64); + free requires (memory_load64_le(mem, 4196728bv64) == 7017575154564032596bv64); + free requires (memory_load64_le(mem, 4196736bv64) == 7089063228440191084bv64); + free requires (memory_load64_le(mem, 4196744bv64) == 2675202446017455468bv64); + free requires (memory_load8_le(mem, 4196752bv64) == 100bv8); + free requires (memory_load8_le(mem, 4196753bv64) == 10bv8); + free requires (memory_load8_le(mem, 4196754bv64) == 0bv8); + free ensures (memory_load64_le(mem, 4196680bv64) == 131073bv64); + free ensures (memory_load64_le(mem, 4196688bv64) == 8241983568019286100bv64); + free ensures (memory_load64_le(mem, 4196696bv64) == 7575166128241079840bv64); + free ensures (memory_load64_le(mem, 4196704bv64) == 11420940909171bv64); + free ensures (memory_load64_le(mem, 4196712bv64) == 2338615504306268244bv64); + free ensures (memory_load64_le(mem, 4196720bv64) == 2924860384375657bv64); + free ensures (memory_load64_le(mem, 4196728bv64) == 7017575154564032596bv64); + free ensures (memory_load64_le(mem, 4196736bv64) == 7089063228440191084bv64); + free ensures (memory_load64_le(mem, 4196744bv64) == 2675202446017455468bv64); + free ensures (memory_load8_le(mem, 4196752bv64) == 100bv8); + free ensures (memory_load8_le(mem, 4196753bv64) == 10bv8); + free ensures (memory_load8_le(mem, 4196754bv64) == 0bv8); + +procedure #free(); + free requires (memory_load64_le(mem, 4196680bv64) == 131073bv64); + free requires (memory_load64_le(mem, 4196688bv64) == 8241983568019286100bv64); + free requires (memory_load64_le(mem, 4196696bv64) == 7575166128241079840bv64); + free requires (memory_load64_le(mem, 4196704bv64) == 11420940909171bv64); + free requires (memory_load64_le(mem, 4196712bv64) == 2338615504306268244bv64); + free requires (memory_load64_le(mem, 4196720bv64) == 2924860384375657bv64); + free requires (memory_load64_le(mem, 4196728bv64) == 7017575154564032596bv64); + free requires (memory_load64_le(mem, 4196736bv64) == 7089063228440191084bv64); + free requires (memory_load64_le(mem, 4196744bv64) == 2675202446017455468bv64); + free requires (memory_load8_le(mem, 4196752bv64) == 100bv8); + free requires (memory_load8_le(mem, 4196753bv64) == 10bv8); + free requires (memory_load8_le(mem, 4196754bv64) == 0bv8); + free ensures (memory_load64_le(mem, 4196680bv64) == 131073bv64); + free ensures (memory_load64_le(mem, 4196688bv64) == 8241983568019286100bv64); + free ensures (memory_load64_le(mem, 4196696bv64) == 7575166128241079840bv64); + free ensures (memory_load64_le(mem, 4196704bv64) == 11420940909171bv64); + free ensures (memory_load64_le(mem, 4196712bv64) == 2338615504306268244bv64); + free ensures (memory_load64_le(mem, 4196720bv64) == 2924860384375657bv64); + free ensures (memory_load64_le(mem, 4196728bv64) == 7017575154564032596bv64); + free ensures (memory_load64_le(mem, 4196736bv64) == 7089063228440191084bv64); + free ensures (memory_load64_le(mem, 4196744bv64) == 2675202446017455468bv64); + free ensures (memory_load8_le(mem, 4196752bv64) == 100bv8); + free ensures (memory_load8_le(mem, 4196753bv64) == 10bv8); + free ensures (memory_load8_le(mem, 4196754bv64) == 0bv8); diff --git a/src/test/correct/multi_malloc/clang/multi_malloc.adt b/src/test/correct/multi_malloc/clang/multi_malloc.adt deleted file mode 100644 index f3bb7fe68..000000000 --- a/src/test/correct/multi_malloc/clang/multi_malloc.adt +++ /dev/null @@ -1,666 +0,0 @@ -Project(Attrs([Attr("filename","\"clang/multi_malloc.out\""), -Attr("image-specification","(declare abi (name str))\n(declare arch (name str))\n(declare base-address (addr int))\n(declare bias (off int))\n(declare bits (size int))\n(declare code-region (addr int) (size int) (off int))\n(declare code-start (addr int))\n(declare entry-point (addr int))\n(declare external-reference (addr int) (name str))\n(declare format (name str))\n(declare is-executable (flag bool))\n(declare is-little-endian (flag bool))\n(declare llvm:base-address (addr int))\n(declare llvm:code-entry (name str) (off int) (size int))\n(declare llvm:coff-import-library (name str))\n(declare llvm:coff-virtual-section-header (name str) (addr int) (size int))\n(declare llvm:elf-program-header (name str) (off int) (size int))\n(declare llvm:elf-program-header-flags (name str) (ld bool) (r bool) \n (w bool) (x bool))\n(declare llvm:elf-virtual-program-header (name str) (addr int) (size int))\n(declare llvm:entry-point (addr int))\n(declare llvm:macho-symbol (name str) (value int))\n(declare llvm:name-reference (at int) (name str))\n(declare llvm:relocation (at int) (addr int))\n(declare llvm:section-entry (name str) (addr int) (size int) (off int))\n(declare llvm:section-flags (name str) (r bool) (w bool) (x bool))\n(declare llvm:segment-command (name str) (off int) (size int))\n(declare llvm:segment-command-flags (name str) (r bool) (w bool) (x bool))\n(declare llvm:symbol-entry (name str) (addr int) (size int) (off int)\n (value int))\n(declare llvm:virtual-segment-command (name str) (addr int) (size int))\n(declare mapped (addr int) (size int) (off int))\n(declare named-region (addr int) (size int) (name str))\n(declare named-symbol (addr int) (name str))\n(declare require (name str))\n(declare section (addr int) (size int))\n(declare segment (addr int) (size int) (r bool) (w bool) (x bool))\n(declare subarch (name str))\n(declare symbol-chunk (addr int) (size int) (root int))\n(declare symbol-value (addr int) (value int))\n(declare system (name str))\n(declare vendor (name str))\n\n(abi unknown)\n(arch aarch64)\n(base-address 0)\n(bias 0)\n(bits 64)\n(code-region 2212 20 2212)\n(code-region 1792 420 1792)\n(code-region 1600 144 1600)\n(code-region 1576 24 1576)\n(code-start 1844)\n(code-start 1792)\n(code-start 2068)\n(entry-point 1792)\n(external-reference 69568 _ITM_deregisterTMCloneTable)\n(external-reference 69576 __cxa_finalize)\n(external-reference 69584 __gmon_start__)\n(external-reference 69600 _ITM_registerTMCloneTable)\n(external-reference 69632 __libc_start_main)\n(external-reference 69640 __cxa_finalize)\n(external-reference 69648 malloc)\n(external-reference 69656 __gmon_start__)\n(external-reference 69664 abort)\n(external-reference 69672 free)\n(external-reference 69680 printf)\n(format elf)\n(is-executable true)\n(is-little-endian true)\n(llvm:base-address 0)\n(llvm:code-entry printf 0 0)\n(llvm:code-entry free 0 0)\n(llvm:code-entry abort 0 0)\n(llvm:code-entry malloc 0 0)\n(llvm:code-entry __cxa_finalize 0 0)\n(llvm:code-entry __libc_start_main 0 0)\n(llvm:code-entry _init 1576 0)\n(llvm:code-entry printf@GLIBC_2.17 0 0)\n(llvm:code-entry main 2068 144)\n(llvm:code-entry _start 1792 52)\n(llvm:code-entry free@GLIBC_2.17 0 0)\n(llvm:code-entry abort@GLIBC_2.17 0 0)\n(llvm:code-entry malloc@GLIBC_2.17 0 0)\n(llvm:code-entry _fini 2212 0)\n(llvm:code-entry __cxa_finalize@GLIBC_2.17 0 0)\n(llvm:code-entry __libc_start_main@GLIBC_2.34 0 0)\n(llvm:code-entry frame_dummy 2064 0)\n(llvm:code-entry __do_global_dtors_aux 1984 0)\n(llvm:code-entry register_tm_clones 1920 0)\n(llvm:code-entry deregister_tm_clones 1872 0)\n(llvm:code-entry call_weak_fn 1844 20)\n(llvm:code-entry .fini 2212 20)\n(llvm:code-entry .text 1792 420)\n(llvm:code-entry .plt 1600 144)\n(llvm:code-entry .init 1576 24)\n(llvm:elf-program-header 08 3528 568)\n(llvm:elf-program-header 07 0 0)\n(llvm:elf-program-header 06 2272 60)\n(llvm:elf-program-header 05 596 68)\n(llvm:elf-program-header 04 3544 480)\n(llvm:elf-program-header 03 3528 640)\n(llvm:elf-program-header 02 0 2536)\n(llvm:elf-program-header 01 568 27)\n(llvm:elf-program-header 00 64 504)\n(llvm:elf-program-header-flags 08 false true false false)\n(llvm:elf-program-header-flags 07 false true true false)\n(llvm:elf-program-header-flags 06 false true false false)\n(llvm:elf-program-header-flags 05 false true false false)\n(llvm:elf-program-header-flags 04 false true true false)\n(llvm:elf-program-header-flags 03 true true true false)\n(llvm:elf-program-header-flags 02 true true false true)\n(llvm:elf-program-header-flags 01 false true false false)\n(llvm:elf-program-header-flags 00 false true false false)\n(llvm:elf-virtual-program-header 08 69064 568)\n(llvm:elf-virtual-program-header 07 0 0)\n(llvm:elf-virtual-program-header 06 2272 60)\n(llvm:elf-virtual-program-header 05 596 68)\n(llvm:elf-virtual-program-header 04 69080 480)\n(llvm:elf-virtual-program-header 03 69064 648)\n(llvm:elf-virtual-program-header 02 0 2536)\n(llvm:elf-virtual-program-header 01 568 27)\n(llvm:elf-virtual-program-header 00 64 504)\n(llvm:entry-point 1792)\n(llvm:name-reference 69680 printf)\n(llvm:name-reference 69672 free)\n(llvm:name-reference 69664 abort)\n(llvm:name-reference 69656 __gmon_start__)\n(llvm:name-reference 69648 malloc)\n(llvm:name-reference 69640 __cxa_finalize)\n(llvm:name-reference 69632 __libc_start_main)\n(llvm:name-reference 69600 _ITM_registerTMCloneTable)\n(llvm:name-reference 69584 __gmon_start__)\n(llvm:name-reference 69576 __cxa_finalize)\n(llvm:name-reference 69568 _ITM_deregisterTMCloneTable)\n(llvm:section-entry .shstrtab 0 259 7068)\n(llvm:section-entry .strtab 0 620 6448)\n(llvm:section-entry .symtab 0 2208 4240)\n(llvm:section-entry .comment 0 71 4168)\n(llvm:section-entry .bss 69704 8 4168)\n(llvm:section-entry .data 69688 16 4152)\n(llvm:section-entry .got.plt 69608 80 4072)\n(llvm:section-entry .got 69560 48 4024)\n(llvm:section-entry .dynamic 69080 480 3544)\n(llvm:section-entry .fini_array 69072 8 3536)\n(llvm:section-entry .init_array 69064 8 3528)\n(llvm:section-entry .eh_frame 2336 200 2336)\n(llvm:section-entry .eh_frame_hdr 2272 60 2272)\n(llvm:section-entry .rodata 2232 37 2232)\n(llvm:section-entry .fini 2212 20 2212)\n(llvm:section-entry .text 1792 420 1792)\n(llvm:section-entry .plt 1600 144 1600)\n(llvm:section-entry .init 1576 24 1576)\n(llvm:section-entry .rela.plt 1408 168 1408)\n(llvm:section-entry .rela.dyn 1216 192 1216)\n(llvm:section-entry .gnu.version_r 1168 48 1168)\n(llvm:section-entry .gnu.version 1144 24 1144)\n(llvm:section-entry .dynstr 984 160 984)\n(llvm:section-entry .dynsym 696 288 696)\n(llvm:section-entry .gnu.hash 664 28 664)\n(llvm:section-entry .note.ABI-tag 632 32 632)\n(llvm:section-entry .note.gnu.build-id 596 36 596)\n(llvm:section-entry .interp 568 27 568)\n(llvm:section-flags .shstrtab true false false)\n(llvm:section-flags .strtab true false false)\n(llvm:section-flags .symtab true false false)\n(llvm:section-flags .comment true false false)\n(llvm:section-flags .bss true true false)\n(llvm:section-flags .data true true false)\n(llvm:section-flags .got.plt true true false)\n(llvm:section-flags .got true true false)\n(llvm:section-flags .dynamic true true false)\n(llvm:section-flags .fini_array true true false)\n(llvm:section-flags .init_array true true false)\n(llvm:section-flags .eh_frame true false false)\n(llvm:section-flags .eh_frame_hdr true false false)\n(llvm:section-flags .rodata true false false)\n(llvm:section-flags .fini true false true)\n(llvm:section-flags .text true false true)\n(llvm:section-flags .plt true false true)\n(llvm:section-flags .init true false true)\n(llvm:section-flags .rela.plt true false false)\n(llvm:section-flags .rela.dyn true false false)\n(llvm:section-flags .gnu.version_r true false false)\n(llvm:section-flags .gnu.version true false false)\n(llvm:section-flags .dynstr true false false)\n(llvm:section-flags .dynsym true false false)\n(llvm:section-flags .gnu.hash true false false)\n(llvm:section-flags .note.ABI-tag true false false)\n(llvm:section-flags .note.gnu.build-id true false false)\n(llvm:section-flags .interp true false false)\n(llvm:symbol-entry printf 0 0 0 0)\n(llvm:symbol-entry free 0 0 0 0)\n(llvm:symbol-entry abort 0 0 0 0)\n(llvm:symbol-entry malloc 0 0 0 0)\n(llvm:symbol-entry __cxa_finalize 0 0 0 0)\n(llvm:symbol-entry __libc_start_main 0 0 0 0)\n(llvm:symbol-entry _init 1576 0 1576 1576)\n(llvm:symbol-entry printf@GLIBC_2.17 0 0 0 0)\n(llvm:symbol-entry main 2068 144 2068 2068)\n(llvm:symbol-entry _start 1792 52 1792 1792)\n(llvm:symbol-entry free@GLIBC_2.17 0 0 0 0)\n(llvm:symbol-entry abort@GLIBC_2.17 0 0 0 0)\n(llvm:symbol-entry malloc@GLIBC_2.17 0 0 0 0)\n(llvm:symbol-entry _fini 2212 0 2212 2212)\n(llvm:symbol-entry __cxa_finalize@GLIBC_2.17 0 0 0 0)\n(llvm:symbol-entry __libc_start_main@GLIBC_2.34 0 0 0 0)\n(llvm:symbol-entry frame_dummy 2064 0 2064 2064)\n(llvm:symbol-entry __do_global_dtors_aux 1984 0 1984 1984)\n(llvm:symbol-entry register_tm_clones 1920 0 1920 1920)\n(llvm:symbol-entry deregister_tm_clones 1872 0 1872 1872)\n(llvm:symbol-entry call_weak_fn 1844 20 1844 1844)\n(mapped 0 2536 0)\n(mapped 69064 640 3528)\n(named-region 0 2536 02)\n(named-region 69064 648 03)\n(named-region 568 27 .interp)\n(named-region 596 36 .note.gnu.build-id)\n(named-region 632 32 .note.ABI-tag)\n(named-region 664 28 .gnu.hash)\n(named-region 696 288 .dynsym)\n(named-region 984 160 .dynstr)\n(named-region 1144 24 .gnu.version)\n(named-region 1168 48 .gnu.version_r)\n(named-region 1216 192 .rela.dyn)\n(named-region 1408 168 .rela.plt)\n(named-region 1576 24 .init)\n(named-region 1600 144 .plt)\n(named-region 1792 420 .text)\n(named-region 2212 20 .fini)\n(named-region 2232 37 .rodata)\n(named-region 2272 60 .eh_frame_hdr)\n(named-region 2336 200 .eh_frame)\n(named-region 69064 8 .init_array)\n(named-region 69072 8 .fini_array)\n(named-region 69080 480 .dynamic)\n(named-region 69560 48 .got)\n(named-region 69608 80 .got.plt)\n(named-region 69688 16 .data)\n(named-region 69704 8 .bss)\n(named-region 0 71 .comment)\n(named-region 0 2208 .symtab)\n(named-region 0 620 .strtab)\n(named-region 0 259 .shstrtab)\n(named-symbol 1844 call_weak_fn)\n(named-symbol 1872 deregister_tm_clones)\n(named-symbol 1920 register_tm_clones)\n(named-symbol 1984 __do_global_dtors_aux)\n(named-symbol 2064 frame_dummy)\n(named-symbol 0 __libc_start_main@GLIBC_2.34)\n(named-symbol 0 __cxa_finalize@GLIBC_2.17)\n(named-symbol 2212 _fini)\n(named-symbol 0 malloc@GLIBC_2.17)\n(named-symbol 0 abort@GLIBC_2.17)\n(named-symbol 0 free@GLIBC_2.17)\n(named-symbol 1792 _start)\n(named-symbol 2068 main)\n(named-symbol 0 printf@GLIBC_2.17)\n(named-symbol 1576 _init)\n(named-symbol 0 __libc_start_main)\n(named-symbol 0 __cxa_finalize)\n(named-symbol 0 malloc)\n(named-symbol 0 abort)\n(named-symbol 0 free)\n(named-symbol 0 printf)\n(require libc.so.6)\n(section 568 27)\n(section 596 36)\n(section 632 32)\n(section 664 28)\n(section 696 288)\n(section 984 160)\n(section 1144 24)\n(section 1168 48)\n(section 1216 192)\n(section 1408 168)\n(section 1576 24)\n(section 1600 144)\n(section 1792 420)\n(section 2212 20)\n(section 2232 37)\n(section 2272 60)\n(section 2336 200)\n(section 69064 8)\n(section 69072 8)\n(section 69080 480)\n(section 69560 48)\n(section 69608 80)\n(section 69688 16)\n(section 69704 8)\n(section 0 71)\n(section 0 2208)\n(section 0 620)\n(section 0 259)\n(segment 0 2536 true false true)\n(segment 69064 648 true true false)\n(subarch v8)\n(symbol-chunk 1844 20 1844)\n(symbol-chunk 1792 52 1792)\n(symbol-chunk 2068 144 2068)\n(symbol-value 1844 1844)\n(symbol-value 1872 1872)\n(symbol-value 1920 1920)\n(symbol-value 1984 1984)\n(symbol-value 2064 2064)\n(symbol-value 2212 2212)\n(symbol-value 1792 1792)\n(symbol-value 2068 2068)\n(symbol-value 1576 1576)\n(symbol-value 0 0)\n(system \"\")\n(vendor \"\")\n"), -Attr("abi-name","\"aarch64-linux-gnu-elf\"")]), -Sections([Section(".shstrtab", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xa0\x1c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x38\x00\x09\x00\x40\x00\x1d\x00\x1c\x00\x06\x00\x00\x00\x04\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x04\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe8\x09\x00\x00\x00\x00\x00\x00\xe8\x09\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x01\x00\x00\x00\x06\x00\x00\x00\xc8\x0d\x00\x00\x00\x00\x00\x00\xc8\x0d\x01\x00\x00\x00\x00\x00\xc8\x0d\x01"), -Section(".strtab", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xa0\x1c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x38\x00\x09\x00\x40\x00\x1d\x00\x1c\x00\x06\x00\x00\x00\x04\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x04\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe8\x09\x00\x00\x00\x00\x00\x00\xe8\x09\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x01\x00\x00\x00\x06\x00\x00\x00\xc8\x0d\x00\x00\x00\x00\x00\x00\xc8\x0d\x01\x00\x00\x00\x00\x00\xc8\x0d\x01\x00\x00\x00\x00\x00\x80\x02\x00\x00\x00\x00\x00\x00\x88\x02\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x02\x00\x00\x00\x06\x00\x00\x00\xd8\x0d\x00\x00\x00\x00\x00\x00\xd8\x0d\x01\x00\x00\x00\x00\x00\xd8\x0d\x01\x00\x00\x00\x00\x00\xe0\x01\x00\x00\x00\x00\x00\x00\xe0\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x04\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x50\xe5\x74\x64\x04\x00\x00\x00\xe0\x08\x00\x00\x00\x00\x00\x00\xe0\x08\x00\x00\x00\x00\x00\x00\xe0\x08\x00\x00\x00\x00\x00\x00\x3c\x00\x00\x00\x00\x00\x00\x00\x3c\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x51\xe5\x74\x64\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x52\xe5\x74\x64\x04\x00\x00\x00\xc8\x0d\x00\x00\x00\x00\x00\x00\xc8\x0d\x01\x00\x00\x00\x00\x00\xc8\x0d\x01\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x2f\x6c\x69\x62\x2f\x6c\x64\x2d\x6c\x69\x6e\x75\x78\x2d\x61\x61\x72\x63\x68\x36\x34\x2e\x73\x6f\x2e\x31\x00\x00\x04\x00\x00\x00\x14\x00\x00\x00\x03\x00\x00\x00\x47\x4e\x55\x00\x07\x02\x4e\x61\x24\x50\x2d\x9f"), -Section(".symtab", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xa0\x1c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x38\x00\x09\x00\x40\x00\x1d\x00\x1c\x00\x06\x00\x00\x00\x04\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x04\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe8\x09\x00\x00\x00\x00\x00\x00\xe8\x09\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x01\x00\x00\x00\x06\x00\x00\x00\xc8\x0d\x00\x00\x00\x00\x00\x00\xc8\x0d\x01\x00\x00\x00\x00\x00\xc8\x0d\x01\x00\x00\x00\x00\x00\x80\x02\x00\x00\x00\x00\x00\x00\x88\x02\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x02\x00\x00\x00\x06\x00\x00\x00\xd8\x0d\x00\x00\x00\x00\x00\x00\xd8\x0d\x01\x00\x00\x00\x00\x00\xd8\x0d\x01\x00\x00\x00\x00\x00\xe0\x01\x00\x00\x00\x00\x00\x00\xe0\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x04\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x50\xe5\x74\x64\x04\x00\x00\x00\xe0\x08\x00\x00\x00\x00\x00\x00\xe0\x08\x00\x00\x00\x00\x00\x00\xe0\x08\x00\x00\x00\x00\x00\x00\x3c\x00\x00\x00\x00\x00\x00\x00\x3c\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x51\xe5\x74\x64\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x52\xe5\x74\x64\x04\x00\x00\x00\xc8\x0d\x00\x00\x00\x00\x00\x00\xc8\x0d\x01\x00\x00\x00\x00\x00\xc8\x0d\x01\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x2f\x6c\x69\x62\x2f\x6c\x64\x2d\x6c\x69\x6e\x75\x78\x2d\x61\x61\x72\x63\x68\x36\x34\x2e\x73\x6f\x2e\x31\x00\x00\x04\x00\x00\x00\x14\x00\x00\x00\x03\x00\x00\x00\x47\x4e\x55\x00\x07\x02\x4e\x61\x24\x50\x2d\x9f\xfb\x9d\xef\xc2\x52\x05\x8f\x29\x38\xd0\xe4\x94\x04\x00\x00\x00\x10\x00\x00\x00\x01\x00\x00\x00\x47\x4e\x55\x00\x00\x00\x00\x00\x03\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x01\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x0b\x00\x28\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x17\x00\x38\x10\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x17\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5b\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x22\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x77\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2e\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x29\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x86\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x34\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5f\x5f\x63\x78\x61\x5f\x66\x69\x6e\x61\x6c\x69\x7a\x65\x00\x6d\x61\x6c\x6c\x6f\x63\x00\x5f\x5f\x6c\x69\x62\x63\x5f\x73\x74\x61\x72\x74\x5f\x6d\x61\x69\x6e\x00\x66\x72\x65\x65\x00\x61\x62\x6f\x72\x74\x00\x70\x72\x69\x6e\x74\x66\x00\x6c\x69\x62\x63\x2e\x73\x6f\x2e\x36\x00\x47\x4c\x49\x42\x43\x5f\x32\x2e\x31\x37\x00\x47\x4c\x49\x42\x43\x5f\x32\x2e\x33\x34\x00\x5f\x49\x54\x4d\x5f\x64\x65\x72\x65\x67\x69\x73\x74\x65\x72\x54\x4d\x43\x6c\x6f\x6e\x65\x54\x61\x62\x6c\x65\x00\x5f\x5f\x67\x6d\x6f\x6e\x5f\x73\x74\x61\x72\x74\x5f\x5f\x00\x5f\x49\x54\x4d\x5f\x72\x65\x67\x69\x73\x74\x65\x72\x54\x4d\x43\x6c\x6f\x6e\x65\x54\x61\x62\x6c\x65\x00\x00\x00\x00\x00\x00\x00\x02\x00\x01\x00\x03\x00\x03\x00\x01\x00\x03\x00\x03\x00\x01\x00\x03\x00\x01\x00\x02\x00\x3b\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x97\x91\x96\x06\x00\x00\x03\x00\x45\x00\x00\x00\x10\x00\x00\x00\xb4\x91\x96\x06\x00\x00\x02\x00\x50\x00\x00\x00\x00\x00\x00\x00\xc8\x0d\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x10\x08\x00\x00\x00\x00\x00\x00\xd0\x0d\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\xc0\x07\x00\x00\x00\x00\x00\x00\xd8\x0f\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x14\x08\x00\x00\x00\x00\x00\x00\x40\x10\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x40\x10\x01\x00\x00\x00\x00\x00\xc0\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xc8\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xd0\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe0\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x0a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x08\x10\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x10\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x18\x10\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x20\x10\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x28\x10\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x09\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x30\x10\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x0b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1f\x20\x03\xd5\xfd\x7b\xbf\xa9\xfd\x03\x00\x91\x40\x00\x00\x94\xfd\x7b\xc1\xa8\xc0\x03\x5f\xd6\xf0\x7b\xbf\xa9\x90\x00\x00\x90\x11\xfe\x47\xf9\x10\xe2\x3f\x91\x20\x02\x1f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x90\x00\x00\xb0\x11\x02\x40\xf9\x10\x02\x00\x91\x20\x02\x1f\xd6\x90\x00\x00\xb0\x11\x06\x40\xf9\x10\x22\x00\x91\x20\x02\x1f\xd6\x90\x00\x00\xb0\x11\x0a\x40\xf9\x10\x42\x00\x91\x20\x02\x1f\xd6\x90\x00\x00\xb0\x11\x0e\x40\xf9\x10\x62\x00\x91\x20\x02\x1f\xd6\x90\x00\x00\xb0\x11\x12\x40\xf9\x10\x82\x00\x91\x20\x02\x1f\xd6\x90\x00\x00\xb0\x11\x16\x40\xf9\x10\xa2\x00\x91\x20\x02\x1f\xd6\x90\x00\x00\xb0\x11\x1a\x40\xf9\x10\xc2\x00\x91\x20\x02\x1f\xd6\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1f\x20\x03\xd5\x1d\x00\x80\xd2\x1e\x00\x80\xd2\xe5\x03\x00\xaa\xe1\x03\x40\xf9\xe2\x23\x00\x91\xe6\x03\x00\x91\x80\x00\x00\x90\x00\xec\x47\xf9\x03\x00\x80\xd2\x04\x00\x80\xd2\xcd\xff\xff\x97\xdc\xff\xff\x97\x80\x00\x00\x90\x00\xe8\x47\xf9\x40\x00\x00\xb4\xd4\xff\xff\x17\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x80\x00\x00\xb0\x00\x20\x01\x91\x81\x00\x00\xb0\x21\x20\x01\x91\x3f\x00\x00\xeb\xc0\x00\x00\x54\x81\x00\x00\x90\x21\xe0\x47\xf9\x61\x00\x00\xb4\xf0\x03\x01\xaa\x00\x02\x1f\xd6\xc0\x03\x5f\xd6\x80\x00\x00\xb0\x00\x20\x01\x91\x81\x00\x00\xb0\x21\x20\x01\x91\x21\x00\x00\xcb\x22\xfc\x7f\xd3\x41\x0c\x81\x8b\x21\xfc\x41\x93\xc1\x00\x00\xb4\x82\x00\x00\x90\x42\xf0\x47\xf9\x62\x00\x00\xb4\xf0\x03\x02\xaa\x00\x02\x1f\xd6\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\xfd\x7b\xbe\xa9\xfd\x03\x00\x91\xf3\x0b\x00\xf9\x93\x00\x00\xb0\x60\x22\x41\x39\x40\x01\x00\x35\x80\x00\x00\x90\x00\xe4\x47\xf9\x80\x00\x00\xb4\x80\x00\x00\xb0\x00\x20\x40\xf9\xa1\xff\xff\x97\xd8\xff\xff\x97\x20\x00\x80\x52\x60\x22\x01\x39\xf3\x0b\x40\xf9\xfd\x7b\xc2\xa8\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\xdc\xff\xff\x17\xff\xc3\x00\xd1\xfd\x7b\x02\xa9\xfd\x83\x00\x91\xe8\x03\x1f\x2a\xe8\x07\x00\xb9\xbf\xc3\x1f\xb8\x20\x00\x80\xd2\x94\xff\xff\x97\xe0\x0b\x00\xf9\x80\x00\x80\xd2\x91\xff\xff\x97\xe0\x07\x00\xf9\xe9\x0b\x40\xf9\x28\x08\x80\x52\x28\x01\x00\x39\xe9\x07\x40\xf9\x48\x05\x80\x52\x28\x01\x00\xb9\xe8\x0b\x40\xf9\x01\x01\x40\x39\x00\x00\x00\x90\x00\xf0\x22\x91\x95\xff\xff\x97\xe8\x07\x40\xf9\x01\x01\x40\xb9\x00\x00\x00\x90\x00\x34\x23\x91\x90\xff\xff\x97\xe0\x0b\x40\xf9\x8a\xff\xff\x97\xe0\x07\x40\xf9\x88\xff\xff\x97\xe0\x07\x40\xb9\xfd\x7b\x42\xa9\xff\xc3\x00\x91"), -Section(".comment", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xa0\x1c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x38\x00\x09\x00\x40\x00\x1d\x00\x1c\x00\x06\x00\x00\x00\x04\x00\x00"), -Section(".interp", 0x238, "\x2f\x6c\x69\x62\x2f\x6c\x64\x2d\x6c\x69\x6e\x75\x78\x2d\x61\x61\x72\x63\x68\x36\x34\x2e\x73\x6f\x2e\x31\x00"), -Section(".note.gnu.build-id", 0x254, "\x04\x00\x00\x00\x14\x00\x00\x00\x03\x00\x00\x00\x47\x4e\x55\x00\x07\x02\x4e\x61\x24\x50\x2d\x9f\xfb\x9d\xef\xc2\x52\x05\x8f\x29\x38\xd0\xe4\x94"), -Section(".note.ABI-tag", 0x278, "\x04\x00\x00\x00\x10\x00\x00\x00\x01\x00\x00\x00\x47\x4e\x55\x00\x00\x00\x00\x00\x03\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00"), -Section(".gnu.hash", 0x298, "\x01\x00\x00\x00\x01\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".dynsym", 0x2B8, "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x0b\x00\x28\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x17\x00\x38\x10\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x17\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5b\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x22\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x77\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2e\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x29\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x86\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x34\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".dynstr", 0x3D8, "\x00\x5f\x5f\x63\x78\x61\x5f\x66\x69\x6e\x61\x6c\x69\x7a\x65\x00\x6d\x61\x6c\x6c\x6f\x63\x00\x5f\x5f\x6c\x69\x62\x63\x5f\x73\x74\x61\x72\x74\x5f\x6d\x61\x69\x6e\x00\x66\x72\x65\x65\x00\x61\x62\x6f\x72\x74\x00\x70\x72\x69\x6e\x74\x66\x00\x6c\x69\x62\x63\x2e\x73\x6f\x2e\x36\x00\x47\x4c\x49\x42\x43\x5f\x32\x2e\x31\x37\x00\x47\x4c\x49\x42\x43\x5f\x32\x2e\x33\x34\x00\x5f\x49\x54\x4d\x5f\x64\x65\x72\x65\x67\x69\x73\x74\x65\x72\x54\x4d\x43\x6c\x6f\x6e\x65\x54\x61\x62\x6c\x65\x00\x5f\x5f\x67\x6d\x6f\x6e\x5f\x73\x74\x61\x72\x74\x5f\x5f\x00\x5f\x49\x54\x4d\x5f\x72\x65\x67\x69\x73\x74\x65\x72\x54\x4d\x43\x6c\x6f\x6e\x65\x54\x61\x62\x6c\x65\x00"), -Section(".gnu.version", 0x478, "\x00\x00\x00\x00\x00\x00\x02\x00\x01\x00\x03\x00\x03\x00\x01\x00\x03\x00\x03\x00\x01\x00\x03\x00"), -Section(".gnu.version_r", 0x490, "\x01\x00\x02\x00\x3b\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x97\x91\x96\x06\x00\x00\x03\x00\x45\x00\x00\x00\x10\x00\x00\x00\xb4\x91\x96\x06\x00\x00\x02\x00\x50\x00\x00\x00\x00\x00\x00\x00"), -Section(".rela.dyn", 0x4C0, "\xc8\x0d\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x10\x08\x00\x00\x00\x00\x00\x00\xd0\x0d\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\xc0\x07\x00\x00\x00\x00\x00\x00\xd8\x0f\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x14\x08\x00\x00\x00\x00\x00\x00\x40\x10\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x40\x10\x01\x00\x00\x00\x00\x00\xc0\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xc8\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xd0\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe0\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x0a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".rela.plt", 0x580, "\x00\x10\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x08\x10\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x10\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x18\x10\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x20\x10\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x28\x10\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x09\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x30\x10\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x0b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".init", 0x628, "\x1f\x20\x03\xd5\xfd\x7b\xbf\xa9\xfd\x03\x00\x91\x40\x00\x00\x94\xfd\x7b\xc1\xa8\xc0\x03\x5f\xd6"), -Section(".plt", 0x640, "\xf0\x7b\xbf\xa9\x90\x00\x00\x90\x11\xfe\x47\xf9\x10\xe2\x3f\x91\x20\x02\x1f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x90\x00\x00\xb0\x11\x02\x40\xf9\x10\x02\x00\x91\x20\x02\x1f\xd6\x90\x00\x00\xb0\x11\x06\x40\xf9\x10\x22\x00\x91\x20\x02\x1f\xd6\x90\x00\x00\xb0\x11\x0a\x40\xf9\x10\x42\x00\x91\x20\x02\x1f\xd6\x90\x00\x00\xb0\x11\x0e\x40\xf9\x10\x62\x00\x91\x20\x02\x1f\xd6\x90\x00\x00\xb0\x11\x12\x40\xf9\x10\x82\x00\x91\x20\x02\x1f\xd6\x90\x00\x00\xb0\x11\x16\x40\xf9\x10\xa2\x00\x91\x20\x02\x1f\xd6\x90\x00\x00\xb0\x11\x1a\x40\xf9\x10\xc2\x00\x91\x20\x02\x1f\xd6"), -Section(".fini", 0x8A4, "\x1f\x20\x03\xd5\xfd\x7b\xbf\xa9\xfd\x03\x00\x91\xfd\x7b\xc1\xa8\xc0\x03\x5f\xd6"), -Section(".rodata", 0x8B8, "\x01\x00\x02\x00\x54\x68\x65\x20\x63\x68\x61\x72\x20\x69\x73\x3a\x20\x25\x63\x0a\x00\x54\x68\x65\x20\x69\x6e\x74\x20\x69\x73\x3a\x20\x25\x64\x0a\x00"), -Section(".eh_frame_hdr", 0x8E0, "\x01\x1b\x03\x3b\x3c\x00\x00\x00\x06\x00\x00\x00\x20\xfe\xff\xff\x54\x00\x00\x00\x70\xfe\xff\xff\x68\x00\x00\x00\xa0\xfe\xff\xff\x7c\x00\x00\x00\xe0\xfe\xff\xff\x90\x00\x00\x00\x30\xff\xff\xff\xb4\x00\x00\x00\x34\xff\xff\xff\xdc\x00\x00\x00"), -Section(".eh_frame", 0x920, "\x10\x00\x00\x00\x00\x00\x00\x00\x01\x7a\x52\x00\x04\x78\x1e\x01\x1b\x0c\x1f\x00\x10\x00\x00\x00\x18\x00\x00\x00\xc4\xfd\xff\xff\x34\x00\x00\x00\x00\x41\x07\x1e\x10\x00\x00\x00\x2c\x00\x00\x00\x00\xfe\xff\xff\x30\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x40\x00\x00\x00\x1c\xfe\xff\xff\x3c\x00\x00\x00\x00\x00\x00\x00\x20\x00\x00\x00\x54\x00\x00\x00\x48\xfe\xff\xff\x48\x00\x00\x00\x00\x41\x0e\x20\x9d\x04\x9e\x03\x42\x93\x02\x4e\xde\xdd\xd3\x0e\x00\x00\x00\x00\x10\x00\x00\x00\x78\x00\x00\x00\x74\xfe\xff\xff\x04\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x01\x7a\x52\x00\x01\x7c\x1e\x01\x1b\x0c\x1f\x00\x24\x00\x00\x00\x18\x00\x00\x00\x50\xfe\xff\xff\x90\x00\x00\x00\x00\x44\x0e\x30\x48\x0c\x1d\x10\x9e\x02\x9d\x04\x02\x78\x0c\x1f\x30\x48\x0e\x00\xde\xdd\x00\x00\x00\x00\x00\x00"), -Section(".fini_array", 0x10DD0, "\xc0\x07\x00\x00\x00\x00\x00\x00"), -Section(".dynamic", 0x10DD8, "\x01\x00\x00\x00\x00\x00\x00\x00\x3b\x00\x00\x00\x00\x00\x00\x00\x0c\x00\x00\x00\x00\x00\x00\x00\x28\x06\x00\x00\x00\x00\x00\x00\x0d\x00\x00\x00\x00\x00\x00\x00\xa4\x08\x00\x00\x00\x00\x00\x00\x19\x00\x00\x00\x00\x00\x00\x00\xc8\x0d\x01\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x1a\x00\x00\x00\x00\x00\x00\x00\xd0\x0d\x01\x00\x00\x00\x00\x00\x1c\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\xf5\xfe\xff\x6f\x00\x00\x00\x00\x98\x02\x00\x00\x00\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\xd8\x03\x00\x00\x00\x00\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\xb8\x02\x00\x00\x00\x00\x00\x00\x0a\x00\x00\x00\x00\x00\x00\x00\xa0\x00\x00\x00\x00\x00\x00\x00\x0b\x00\x00\x00\x00\x00\x00\x00\x18\x00\x00\x00\x00\x00\x00\x00\x15\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\xe8\x0f\x01\x00\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\xa8\x00\x00\x00\x00\x00\x00\x00\x14\x00\x00\x00\x00\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x17\x00\x00\x00\x00\x00\x00\x00\x80\x05\x00\x00\x00\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\xc0\x04\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\xc0\x00\x00\x00\x00\x00\x00\x00\x09\x00\x00\x00\x00\x00\x00\x00\x18\x00\x00\x00\x00\x00\x00\x00\xfb\xff\xff\x6f\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\xfe\xff\xff\x6f\x00\x00\x00\x00\x90\x04\x00\x00\x00\x00\x00\x00\xff\xff\xff\x6f\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\xf0\xff\xff\x6f\x00\x00\x00\x00\x78\x04\x00\x00\x00\x00\x00\x00\xf9\xff\xff\x6f\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".init_array", 0x10DC8, "\x10\x08\x00\x00\x00\x00\x00\x00"), -Section(".got", 0x10FB8, "\xd8\x0d\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x14\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".got.plt", 0x10FE8, "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x06\x00\x00\x00\x00\x00\x00\x40\x06\x00\x00\x00\x00\x00\x00\x40\x06\x00\x00\x00\x00\x00\x00\x40\x06\x00\x00\x00\x00\x00\x00\x40\x06\x00\x00\x00\x00\x00\x00\x40\x06\x00\x00\x00\x00\x00\x00\x40\x06\x00\x00\x00\x00\x00\x00"), -Section(".data", 0x11038, "\x00\x00\x00\x00\x00\x00\x00\x00\x40\x10\x01\x00\x00\x00\x00\x00"), -Section(".text", 0x700, "\x1f\x20\x03\xd5\x1d\x00\x80\xd2\x1e\x00\x80\xd2\xe5\x03\x00\xaa\xe1\x03\x40\xf9\xe2\x23\x00\x91\xe6\x03\x00\x91\x80\x00\x00\x90\x00\xec\x47\xf9\x03\x00\x80\xd2\x04\x00\x80\xd2\xcd\xff\xff\x97\xdc\xff\xff\x97\x80\x00\x00\x90\x00\xe8\x47\xf9\x40\x00\x00\xb4\xd4\xff\xff\x17\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x80\x00\x00\xb0\x00\x20\x01\x91\x81\x00\x00\xb0\x21\x20\x01\x91\x3f\x00\x00\xeb\xc0\x00\x00\x54\x81\x00\x00\x90\x21\xe0\x47\xf9\x61\x00\x00\xb4\xf0\x03\x01\xaa\x00\x02\x1f\xd6\xc0\x03\x5f\xd6\x80\x00\x00\xb0\x00\x20\x01\x91\x81\x00\x00\xb0\x21\x20\x01\x91\x21\x00\x00\xcb\x22\xfc\x7f\xd3\x41\x0c\x81\x8b\x21\xfc\x41\x93\xc1\x00\x00\xb4\x82\x00\x00\x90\x42\xf0\x47\xf9\x62\x00\x00\xb4\xf0\x03\x02\xaa\x00\x02\x1f\xd6\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\xfd\x7b\xbe\xa9\xfd\x03\x00\x91\xf3\x0b\x00\xf9\x93\x00\x00\xb0\x60\x22\x41\x39\x40\x01\x00\x35\x80\x00\x00\x90\x00\xe4\x47\xf9\x80\x00\x00\xb4\x80\x00\x00\xb0\x00\x20\x40\xf9\xa1\xff\xff\x97\xd8\xff\xff\x97\x20\x00\x80\x52\x60\x22\x01\x39\xf3\x0b\x40\xf9\xfd\x7b\xc2\xa8\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\xdc\xff\xff\x17\xff\xc3\x00\xd1\xfd\x7b\x02\xa9\xfd\x83\x00\x91\xe8\x03\x1f\x2a\xe8\x07\x00\xb9\xbf\xc3\x1f\xb8\x20\x00\x80\xd2\x94\xff\xff\x97\xe0\x0b\x00\xf9\x80\x00\x80\xd2\x91\xff\xff\x97\xe0\x07\x00\xf9\xe9\x0b\x40\xf9\x28\x08\x80\x52\x28\x01\x00\x39\xe9\x07\x40\xf9\x48\x05\x80\x52\x28\x01\x00\xb9\xe8\x0b\x40\xf9\x01\x01\x40\x39\x00\x00\x00\x90\x00\xf0\x22\x91\x95\xff\xff\x97\xe8\x07\x40\xf9\x01\x01\x40\xb9\x00\x00\x00\x90\x00\x34\x23\x91\x90\xff\xff\x97\xe0\x0b\x40\xf9\x8a\xff\xff\x97\xe0\x07\x40\xf9\x88\xff\xff\x97\xe0\x07\x40\xb9\xfd\x7b\x42\xa9\xff\xc3\x00\x91\xc0\x03\x5f\xd6")]), -Memmap([Annotation(Region(0x0,0x9E7), Attr("segment","02 0 2536")), -Annotation(Region(0x700,0x733), Attr("symbol","\"_start\"")), -Annotation(Region(0x0,0x102), Attr("section","\".shstrtab\"")), -Annotation(Region(0x0,0x26B), Attr("section","\".strtab\"")), -Annotation(Region(0x0,0x89F), Attr("section","\".symtab\"")), -Annotation(Region(0x0,0x46), Attr("section","\".comment\"")), -Annotation(Region(0x238,0x252), Attr("section","\".interp\"")), -Annotation(Region(0x254,0x277), Attr("section","\".note.gnu.build-id\"")), -Annotation(Region(0x278,0x297), Attr("section","\".note.ABI-tag\"")), -Annotation(Region(0x298,0x2B3), Attr("section","\".gnu.hash\"")), -Annotation(Region(0x2B8,0x3D7), Attr("section","\".dynsym\"")), -Annotation(Region(0x3D8,0x477), Attr("section","\".dynstr\"")), -Annotation(Region(0x478,0x48F), Attr("section","\".gnu.version\"")), -Annotation(Region(0x490,0x4BF), Attr("section","\".gnu.version_r\"")), -Annotation(Region(0x4C0,0x57F), Attr("section","\".rela.dyn\"")), -Annotation(Region(0x580,0x627), Attr("section","\".rela.plt\"")), -Annotation(Region(0x628,0x63F), Attr("section","\".init\"")), -Annotation(Region(0x640,0x6CF), Attr("section","\".plt\"")), -Annotation(Region(0x628,0x63F), Attr("code-region","()")), -Annotation(Region(0x640,0x6CF), Attr("code-region","()")), -Annotation(Region(0x700,0x733), Attr("symbol-info","_start 0x700 52")), -Annotation(Region(0x734,0x747), Attr("symbol","\"call_weak_fn\"")), -Annotation(Region(0x734,0x747), Attr("symbol-info","call_weak_fn 0x734 20")), -Annotation(Region(0x814,0x8A3), Attr("symbol","\"main\"")), -Annotation(Region(0x814,0x8A3), Attr("symbol-info","main 0x814 144")), -Annotation(Region(0x8A4,0x8B7), Attr("section","\".fini\"")), -Annotation(Region(0x8B8,0x8DC), Attr("section","\".rodata\"")), -Annotation(Region(0x8E0,0x91B), Attr("section","\".eh_frame_hdr\"")), -Annotation(Region(0x920,0x9E7), Attr("section","\".eh_frame\"")), -Annotation(Region(0x10DC8,0x11047), Attr("segment","03 0x10DC8 648")), -Annotation(Region(0x10DD0,0x10DD7), Attr("section","\".fini_array\"")), -Annotation(Region(0x10DD8,0x10FB7), Attr("section","\".dynamic\"")), -Annotation(Region(0x10DC8,0x10DCF), Attr("section","\".init_array\"")), -Annotation(Region(0x10FB8,0x10FE7), Attr("section","\".got\"")), -Annotation(Region(0x10FE8,0x11037), Attr("section","\".got.plt\"")), -Annotation(Region(0x11038,0x11047), Attr("section","\".data\"")), -Annotation(Region(0x700,0x8A3), Attr("section","\".text\"")), -Annotation(Region(0x700,0x8A3), Attr("code-region","()")), -Annotation(Region(0x8A4,0x8B7), Attr("code-region","()"))]), -Program(Tid(1_823, "%0000071f"), Attrs([]), - Subs([Sub(Tid(1_798, "@__cxa_finalize"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x670"), -Attr("stub","()")]), "__cxa_finalize", Args([Arg(Tid(1_824, "%00000720"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("__cxa_finalize_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(1_140, "@__cxa_finalize"), - Attrs([Attr("address","0x670")]), Phis([]), -Defs([Def(Tid(1_436, "%0000059c"), Attrs([Attr("address","0x670"), -Attr("insn","adrp x16, #69632")]), Var("R16",Imm(64)), Int(69632,64)), -Def(Tid(1_443, "%000005a3"), Attrs([Attr("address","0x674"), -Attr("insn","ldr x17, [x16, #0x8]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(1_449, "%000005a9"), Attrs([Attr("address","0x678"), -Attr("insn","add x16, x16, #0x8")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(8,64)))]), Jmps([Call(Tid(1_454, "%000005ae"), - Attrs([Attr("address","0x67C"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), -Sub(Tid(1_799, "@__do_global_dtors_aux"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x7C0")]), - "__do_global_dtors_aux", Args([Arg(Tid(1_825, "%00000721"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("__do_global_dtors_aux_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(734, "@__do_global_dtors_aux"), - Attrs([Attr("address","0x7C0")]), Phis([]), Defs([Def(Tid(738, "%000002e2"), - Attrs([Attr("address","0x7C0"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("#3",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(18446744073709551584,64))), -Def(Tid(744, "%000002e8"), Attrs([Attr("address","0x7C0"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("#3",Imm(64)),Var("R29",Imm(64)),LittleEndian(),64)), -Def(Tid(750, "%000002ee"), Attrs([Attr("address","0x7C0"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("#3",Imm(64)),Int(8,64)),Var("R30",Imm(64)),LittleEndian(),64)), -Def(Tid(754, "%000002f2"), Attrs([Attr("address","0x7C0"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("R31",Imm(64)), -Var("#3",Imm(64))), Def(Tid(760, "%000002f8"), - Attrs([Attr("address","0x7C4"), Attr("insn","mov x29, sp")]), - Var("R29",Imm(64)), Var("R31",Imm(64))), Def(Tid(768, "%00000300"), - Attrs([Attr("address","0x7C8"), Attr("insn","str x19, [sp, #0x10]")]), - Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(16,64)),Var("R19",Imm(64)),LittleEndian(),64)), -Def(Tid(773, "%00000305"), Attrs([Attr("address","0x7CC"), -Attr("insn","adrp x19, #69632")]), Var("R19",Imm(64)), Int(69632,64)), -Def(Tid(780, "%0000030c"), Attrs([Attr("address","0x7D0"), -Attr("insn","ldrb w0, [x19, #0x48]")]), Var("R0",Imm(64)), -UNSIGNED(64,Load(Var("mem",Mem(64,8)),PLUS(Var("R19",Imm(64)),Int(72,64)),LittleEndian(),8)))]), -Jmps([Goto(Tid(787, "%00000313"), Attrs([Attr("address","0x7D4"), -Attr("insn","cbnz w0, #0x28")]), - NEQ(Extract(31,0,Var("R0",Imm(64))),Int(0,32)), -Direct(Tid(785, "%00000311"))), Goto(Tid(1_800, "%00000708"), Attrs([]), - Int(1,1), Direct(Tid(1_085, "%0000043d")))])), Blk(Tid(1_085, "%0000043d"), - Attrs([Attr("address","0x7D8")]), Phis([]), -Defs([Def(Tid(1_088, "%00000440"), Attrs([Attr("address","0x7D8"), -Attr("insn","adrp x0, #65536")]), Var("R0",Imm(64)), Int(65536,64)), -Def(Tid(1_095, "%00000447"), Attrs([Attr("address","0x7DC"), -Attr("insn","ldr x0, [x0, #0xfc8]")]), Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(4040,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(1_101, "%0000044d"), Attrs([Attr("address","0x7E0"), -Attr("insn","cbz x0, #0x10")]), EQ(Var("R0",Imm(64)),Int(0,64)), -Direct(Tid(1_099, "%0000044b"))), Goto(Tid(1_801, "%00000709"), Attrs([]), - Int(1,1), Direct(Tid(1_124, "%00000464")))])), Blk(Tid(1_124, "%00000464"), - Attrs([Attr("address","0x7E4")]), Phis([]), -Defs([Def(Tid(1_127, "%00000467"), Attrs([Attr("address","0x7E4"), -Attr("insn","adrp x0, #69632")]), Var("R0",Imm(64)), Int(69632,64)), -Def(Tid(1_134, "%0000046e"), Attrs([Attr("address","0x7E8"), -Attr("insn","ldr x0, [x0, #0x40]")]), Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(64,64)),LittleEndian(),64)), -Def(Tid(1_139, "%00000473"), Attrs([Attr("address","0x7EC"), -Attr("insn","bl #-0x17c")]), Var("R30",Imm(64)), Int(2032,64))]), -Jmps([Call(Tid(1_142, "%00000476"), Attrs([Attr("address","0x7EC"), -Attr("insn","bl #-0x17c")]), Int(1,1), -(Direct(Tid(1_798, "@__cxa_finalize")),Direct(Tid(1_099, "%0000044b"))))])), -Blk(Tid(1_099, "%0000044b"), Attrs([Attr("address","0x7F0")]), Phis([]), -Defs([Def(Tid(1_107, "%00000453"), Attrs([Attr("address","0x7F0"), -Attr("insn","bl #-0xa0")]), Var("R30",Imm(64)), Int(2036,64))]), -Jmps([Call(Tid(1_109, "%00000455"), Attrs([Attr("address","0x7F0"), -Attr("insn","bl #-0xa0")]), Int(1,1), -(Direct(Tid(1_812, "@deregister_tm_clones")),Direct(Tid(1_111, "%00000457"))))])), -Blk(Tid(1_111, "%00000457"), Attrs([Attr("address","0x7F4")]), Phis([]), -Defs([Def(Tid(1_114, "%0000045a"), Attrs([Attr("address","0x7F4"), -Attr("insn","mov w0, #0x1")]), Var("R0",Imm(64)), Int(1,64)), -Def(Tid(1_122, "%00000462"), Attrs([Attr("address","0x7F8"), -Attr("insn","strb w0, [x19, #0x48]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R19",Imm(64)),Int(72,64)),Extract(7,0,Var("R0",Imm(64))),LittleEndian(),8))]), -Jmps([Goto(Tid(1_802, "%0000070a"), Attrs([]), Int(1,1), -Direct(Tid(785, "%00000311")))])), Blk(Tid(785, "%00000311"), - Attrs([Attr("address","0x7FC")]), Phis([]), Defs([Def(Tid(795, "%0000031b"), - Attrs([Attr("address","0x7FC"), Attr("insn","ldr x19, [sp, #0x10]")]), - Var("R19",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(16,64)),LittleEndian(),64)), -Def(Tid(802, "%00000322"), Attrs([Attr("address","0x800"), -Attr("insn","ldp x29, x30, [sp], #0x20")]), Var("R29",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(807, "%00000327"), Attrs([Attr("address","0x800"), -Attr("insn","ldp x29, x30, [sp], #0x20")]), Var("R30",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(811, "%0000032b"), Attrs([Attr("address","0x800"), -Attr("insn","ldp x29, x30, [sp], #0x20")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(32,64)))]), Jmps([Call(Tid(816, "%00000330"), - Attrs([Attr("address","0x804"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), Sub(Tid(1_803, "@__libc_start_main"), - Attrs([Attr("c.proto","signed (*)(signed (*)(signed , char** , char** );* main, signed , char** , \nvoid* auxv)"), -Attr("address","0x660"), Attr("stub","()")]), "__libc_start_main", - Args([Arg(Tid(1_826, "%00000722"), - Attrs([Attr("c.layout","**[ : 64]"), -Attr("c.data","Top:u64 ptr ptr"), -Attr("c.type","signed (*)(signed , char** , char** );*")]), - Var("__libc_start_main_main",Imm(64)), Var("R0",Imm(64)), In()), -Arg(Tid(1_827, "%00000723"), Attrs([Attr("c.layout","[signed : 32]"), -Attr("c.data","Top:u32"), Attr("c.type","signed")]), - Var("__libc_start_main_arg2",Imm(32)), LOW(32,Var("R1",Imm(64))), In()), -Arg(Tid(1_828, "%00000724"), Attrs([Attr("c.layout","**[char : 8]"), -Attr("c.data","Top:u8 ptr ptr"), Attr("c.type","char**")]), - Var("__libc_start_main_arg3",Imm(64)), Var("R2",Imm(64)), Both()), -Arg(Tid(1_829, "%00000725"), Attrs([Attr("c.layout","*[ : 8]"), -Attr("c.data","{} ptr"), Attr("c.type","void*")]), - Var("__libc_start_main_auxv",Imm(64)), Var("R3",Imm(64)), Both()), -Arg(Tid(1_830, "%00000726"), Attrs([Attr("c.layout","[signed : 32]"), -Attr("c.data","Top:u32"), Attr("c.type","signed")]), - Var("__libc_start_main_result",Imm(32)), LOW(32,Var("R0",Imm(64))), -Out())]), Blks([Blk(Tid(567, "@__libc_start_main"), - Attrs([Attr("address","0x660")]), Phis([]), -Defs([Def(Tid(1_414, "%00000586"), Attrs([Attr("address","0x660"), -Attr("insn","adrp x16, #69632")]), Var("R16",Imm(64)), Int(69632,64)), -Def(Tid(1_421, "%0000058d"), Attrs([Attr("address","0x664"), -Attr("insn","ldr x17, [x16]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R16",Imm(64)),LittleEndian(),64)), -Def(Tid(1_427, "%00000593"), Attrs([Attr("address","0x668"), -Attr("insn","add x16, x16, #0x0")]), Var("R16",Imm(64)), -Var("R16",Imm(64)))]), Jmps([Call(Tid(1_432, "%00000598"), - Attrs([Attr("address","0x66C"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), Sub(Tid(1_804, "@_fini"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x8A4")]), - "_fini", Args([Arg(Tid(1_831, "%00000727"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("_fini_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(31, "@_fini"), - Attrs([Attr("address","0x8A4")]), Phis([]), Defs([Def(Tid(37, "%00000025"), - Attrs([Attr("address","0x8A8"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("#0",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(18446744073709551600,64))), -Def(Tid(43, "%0000002b"), Attrs([Attr("address","0x8A8"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("#0",Imm(64)),Var("R29",Imm(64)),LittleEndian(),64)), -Def(Tid(49, "%00000031"), Attrs([Attr("address","0x8A8"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("#0",Imm(64)),Int(8,64)),Var("R30",Imm(64)),LittleEndian(),64)), -Def(Tid(53, "%00000035"), Attrs([Attr("address","0x8A8"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("R31",Imm(64)), -Var("#0",Imm(64))), Def(Tid(59, "%0000003b"), Attrs([Attr("address","0x8AC"), -Attr("insn","mov x29, sp")]), Var("R29",Imm(64)), Var("R31",Imm(64))), -Def(Tid(66, "%00000042"), Attrs([Attr("address","0x8B0"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R29",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(71, "%00000047"), Attrs([Attr("address","0x8B0"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R30",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(75, "%0000004b"), Attrs([Attr("address","0x8B0"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(16,64)))]), Jmps([Call(Tid(80, "%00000050"), - Attrs([Attr("address","0x8B4"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), Sub(Tid(1_805, "@_init"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x628")]), - "_init", Args([Arg(Tid(1_832, "%00000728"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("_init_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(1_592, "@_init"), - Attrs([Attr("address","0x628")]), Phis([]), -Defs([Def(Tid(1_598, "%0000063e"), Attrs([Attr("address","0x62C"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("#7",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(18446744073709551600,64))), -Def(Tid(1_604, "%00000644"), Attrs([Attr("address","0x62C"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("#7",Imm(64)),Var("R29",Imm(64)),LittleEndian(),64)), -Def(Tid(1_610, "%0000064a"), Attrs([Attr("address","0x62C"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("#7",Imm(64)),Int(8,64)),Var("R30",Imm(64)),LittleEndian(),64)), -Def(Tid(1_614, "%0000064e"), Attrs([Attr("address","0x62C"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("R31",Imm(64)), -Var("#7",Imm(64))), Def(Tid(1_620, "%00000654"), - Attrs([Attr("address","0x630"), Attr("insn","mov x29, sp")]), - Var("R29",Imm(64)), Var("R31",Imm(64))), Def(Tid(1_625, "%00000659"), - Attrs([Attr("address","0x634"), Attr("insn","bl #0x100")]), - Var("R30",Imm(64)), Int(1592,64))]), Jmps([Call(Tid(1_627, "%0000065b"), - Attrs([Attr("address","0x634"), Attr("insn","bl #0x100")]), Int(1,1), -(Direct(Tid(1_810, "@call_weak_fn")),Direct(Tid(1_629, "%0000065d"))))])), -Blk(Tid(1_629, "%0000065d"), Attrs([Attr("address","0x638")]), Phis([]), -Defs([Def(Tid(1_634, "%00000662"), Attrs([Attr("address","0x638"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R29",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(1_639, "%00000667"), Attrs([Attr("address","0x638"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R30",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(1_643, "%0000066b"), Attrs([Attr("address","0x638"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(16,64)))]), Jmps([Call(Tid(1_648, "%00000670"), - Attrs([Attr("address","0x63C"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), Sub(Tid(1_806, "@_start"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x700"), -Attr("entry-point","()")]), "_start", Args([Arg(Tid(1_833, "%00000729"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("_start_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(504, "@_start"), - Attrs([Attr("address","0x700")]), Phis([]), Defs([Def(Tid(509, "%000001fd"), - Attrs([Attr("address","0x704"), Attr("insn","mov x29, #0x0")]), - Var("R29",Imm(64)), Int(0,64)), Def(Tid(514, "%00000202"), - Attrs([Attr("address","0x708"), Attr("insn","mov x30, #0x0")]), - Var("R30",Imm(64)), Int(0,64)), Def(Tid(520, "%00000208"), - Attrs([Attr("address","0x70C"), Attr("insn","mov x5, x0")]), - Var("R5",Imm(64)), Var("R0",Imm(64))), Def(Tid(527, "%0000020f"), - Attrs([Attr("address","0x710"), Attr("insn","ldr x1, [sp]")]), - Var("R1",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(533, "%00000215"), Attrs([Attr("address","0x714"), -Attr("insn","add x2, sp, #0x8")]), Var("R2",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(8,64))), Def(Tid(539, "%0000021b"), - Attrs([Attr("address","0x718"), Attr("insn","mov x6, sp")]), - Var("R6",Imm(64)), Var("R31",Imm(64))), Def(Tid(544, "%00000220"), - Attrs([Attr("address","0x71C"), Attr("insn","adrp x0, #65536")]), - Var("R0",Imm(64)), Int(65536,64)), Def(Tid(551, "%00000227"), - Attrs([Attr("address","0x720"), Attr("insn","ldr x0, [x0, #0xfd8]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(4056,64)),LittleEndian(),64)), -Def(Tid(556, "%0000022c"), Attrs([Attr("address","0x724"), -Attr("insn","mov x3, #0x0")]), Var("R3",Imm(64)), Int(0,64)), -Def(Tid(561, "%00000231"), Attrs([Attr("address","0x728"), -Attr("insn","mov x4, #0x0")]), Var("R4",Imm(64)), Int(0,64)), -Def(Tid(566, "%00000236"), Attrs([Attr("address","0x72C"), -Attr("insn","bl #-0xcc")]), Var("R30",Imm(64)), Int(1840,64))]), -Jmps([Call(Tid(569, "%00000239"), Attrs([Attr("address","0x72C"), -Attr("insn","bl #-0xcc")]), Int(1,1), -(Direct(Tid(1_803, "@__libc_start_main")),Direct(Tid(571, "%0000023b"))))])), -Blk(Tid(571, "%0000023b"), Attrs([Attr("address","0x730")]), Phis([]), -Defs([Def(Tid(574, "%0000023e"), Attrs([Attr("address","0x730"), -Attr("insn","bl #-0x90")]), Var("R30",Imm(64)), Int(1844,64))]), -Jmps([Call(Tid(577, "%00000241"), Attrs([Attr("address","0x730"), -Attr("insn","bl #-0x90")]), Int(1,1), -(Direct(Tid(1_809, "@abort")),Direct(Tid(1_807, "%0000070f"))))])), -Blk(Tid(1_807, "%0000070f"), Attrs([]), Phis([]), Defs([]), -Jmps([Call(Tid(1_808, "%00000710"), Attrs([]), Int(1,1), -(Direct(Tid(1_810, "@call_weak_fn")),))]))])), Sub(Tid(1_809, "@abort"), - Attrs([Attr("noreturn","()"), Attr("c.proto","void (*)(void)"), -Attr("address","0x6A0"), Attr("stub","()")]), "abort", Args([]), -Blks([Blk(Tid(575, "@abort"), Attrs([Attr("address","0x6A0")]), Phis([]), -Defs([Def(Tid(1_502, "%000005de"), Attrs([Attr("address","0x6A0"), -Attr("insn","adrp x16, #69632")]), Var("R16",Imm(64)), Int(69632,64)), -Def(Tid(1_509, "%000005e5"), Attrs([Attr("address","0x6A4"), -Attr("insn","ldr x17, [x16, #0x20]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(32,64)),LittleEndian(),64)), -Def(Tid(1_515, "%000005eb"), Attrs([Attr("address","0x6A8"), -Attr("insn","add x16, x16, #0x20")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(32,64)))]), Jmps([Call(Tid(1_520, "%000005f0"), - Attrs([Attr("address","0x6AC"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), Sub(Tid(1_810, "@call_weak_fn"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x734")]), - "call_weak_fn", Args([Arg(Tid(1_834, "%0000072a"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("call_weak_fn_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(579, "@call_weak_fn"), - Attrs([Attr("address","0x734")]), Phis([]), Defs([Def(Tid(582, "%00000246"), - Attrs([Attr("address","0x734"), Attr("insn","adrp x0, #65536")]), - Var("R0",Imm(64)), Int(65536,64)), Def(Tid(589, "%0000024d"), - Attrs([Attr("address","0x738"), Attr("insn","ldr x0, [x0, #0xfd0]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(4048,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(595, "%00000253"), Attrs([Attr("address","0x73C"), -Attr("insn","cbz x0, #0x8")]), EQ(Var("R0",Imm(64)),Int(0,64)), -Direct(Tid(593, "%00000251"))), Goto(Tid(1_811, "%00000713"), Attrs([]), - Int(1,1), Direct(Tid(1_204, "%000004b4")))])), Blk(Tid(593, "%00000251"), - Attrs([Attr("address","0x744")]), Phis([]), Defs([]), -Jmps([Call(Tid(601, "%00000259"), Attrs([Attr("address","0x744"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))])), -Blk(Tid(1_204, "%000004b4"), Attrs([Attr("address","0x740")]), Phis([]), -Defs([]), Jmps([Goto(Tid(1_207, "%000004b7"), Attrs([Attr("address","0x740"), -Attr("insn","b #-0xb0")]), Int(1,1), -Direct(Tid(1_205, "@__gmon_start__")))])), Blk(Tid(1_205, "@__gmon_start__"), - Attrs([Attr("address","0x690")]), Phis([]), -Defs([Def(Tid(1_480, "%000005c8"), Attrs([Attr("address","0x690"), -Attr("insn","adrp x16, #69632")]), Var("R16",Imm(64)), Int(69632,64)), -Def(Tid(1_487, "%000005cf"), Attrs([Attr("address","0x694"), -Attr("insn","ldr x17, [x16, #0x18]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(24,64)),LittleEndian(),64)), -Def(Tid(1_493, "%000005d5"), Attrs([Attr("address","0x698"), -Attr("insn","add x16, x16, #0x18")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(24,64)))]), Jmps([Call(Tid(1_498, "%000005da"), - Attrs([Attr("address","0x69C"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), -Sub(Tid(1_812, "@deregister_tm_clones"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x750")]), - "deregister_tm_clones", Args([Arg(Tid(1_835, "%0000072b"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("deregister_tm_clones_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(607, "@deregister_tm_clones"), - Attrs([Attr("address","0x750")]), Phis([]), Defs([Def(Tid(610, "%00000262"), - Attrs([Attr("address","0x750"), Attr("insn","adrp x0, #69632")]), - Var("R0",Imm(64)), Int(69632,64)), Def(Tid(616, "%00000268"), - Attrs([Attr("address","0x754"), Attr("insn","add x0, x0, #0x48")]), - Var("R0",Imm(64)), PLUS(Var("R0",Imm(64)),Int(72,64))), -Def(Tid(621, "%0000026d"), Attrs([Attr("address","0x758"), -Attr("insn","adrp x1, #69632")]), Var("R1",Imm(64)), Int(69632,64)), -Def(Tid(627, "%00000273"), Attrs([Attr("address","0x75C"), -Attr("insn","add x1, x1, #0x48")]), Var("R1",Imm(64)), -PLUS(Var("R1",Imm(64)),Int(72,64))), Def(Tid(633, "%00000279"), - Attrs([Attr("address","0x760"), Attr("insn","cmp x1, x0")]), - Var("#1",Imm(64)), NOT(Var("R0",Imm(64)))), Def(Tid(638, "%0000027e"), - Attrs([Attr("address","0x760"), Attr("insn","cmp x1, x0")]), - Var("#2",Imm(64)), PLUS(Var("R1",Imm(64)),NOT(Var("R0",Imm(64))))), -Def(Tid(644, "%00000284"), Attrs([Attr("address","0x760"), -Attr("insn","cmp x1, x0")]), Var("VF",Imm(1)), -NEQ(SIGNED(65,PLUS(Var("#2",Imm(64)),Int(1,64))),PLUS(PLUS(SIGNED(65,Var("R1",Imm(64))),SIGNED(65,Var("#1",Imm(64)))),Int(1,65)))), -Def(Tid(650, "%0000028a"), Attrs([Attr("address","0x760"), -Attr("insn","cmp x1, x0")]), Var("CF",Imm(1)), -NEQ(UNSIGNED(65,PLUS(Var("#2",Imm(64)),Int(1,64))),PLUS(PLUS(UNSIGNED(65,Var("R1",Imm(64))),UNSIGNED(65,Var("#1",Imm(64)))),Int(1,65)))), -Def(Tid(654, "%0000028e"), Attrs([Attr("address","0x760"), -Attr("insn","cmp x1, x0")]), Var("ZF",Imm(1)), -EQ(PLUS(Var("#2",Imm(64)),Int(1,64)),Int(0,64))), Def(Tid(658, "%00000292"), - Attrs([Attr("address","0x760"), Attr("insn","cmp x1, x0")]), - Var("NF",Imm(1)), Extract(63,63,PLUS(Var("#2",Imm(64)),Int(1,64))))]), -Jmps([Goto(Tid(664, "%00000298"), Attrs([Attr("address","0x764"), -Attr("insn","b.eq #0x18")]), EQ(Var("ZF",Imm(1)),Int(1,1)), -Direct(Tid(662, "%00000296"))), Goto(Tid(1_813, "%00000715"), Attrs([]), - Int(1,1), Direct(Tid(1_174, "%00000496")))])), Blk(Tid(1_174, "%00000496"), - Attrs([Attr("address","0x768")]), Phis([]), -Defs([Def(Tid(1_177, "%00000499"), Attrs([Attr("address","0x768"), -Attr("insn","adrp x1, #65536")]), Var("R1",Imm(64)), Int(65536,64)), -Def(Tid(1_184, "%000004a0"), Attrs([Attr("address","0x76C"), -Attr("insn","ldr x1, [x1, #0xfc0]")]), Var("R1",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R1",Imm(64)),Int(4032,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(1_189, "%000004a5"), Attrs([Attr("address","0x770"), -Attr("insn","cbz x1, #0xc")]), EQ(Var("R1",Imm(64)),Int(0,64)), -Direct(Tid(662, "%00000296"))), Goto(Tid(1_814, "%00000716"), Attrs([]), - Int(1,1), Direct(Tid(1_193, "%000004a9")))])), Blk(Tid(662, "%00000296"), - Attrs([Attr("address","0x77C")]), Phis([]), Defs([]), -Jmps([Call(Tid(670, "%0000029e"), Attrs([Attr("address","0x77C"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))])), -Blk(Tid(1_193, "%000004a9"), Attrs([Attr("address","0x774")]), Phis([]), -Defs([Def(Tid(1_197, "%000004ad"), Attrs([Attr("address","0x774"), -Attr("insn","mov x16, x1")]), Var("R16",Imm(64)), Var("R1",Imm(64)))]), -Jmps([Call(Tid(1_202, "%000004b2"), Attrs([Attr("address","0x778"), -Attr("insn","br x16")]), Int(1,1), (Indirect(Var("R16",Imm(64))),))]))])), -Sub(Tid(1_815, "@frame_dummy"), Attrs([Attr("c.proto","signed (*)(void)"), -Attr("address","0x810")]), "frame_dummy", Args([Arg(Tid(1_836, "%0000072c"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("frame_dummy_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(822, "@frame_dummy"), - Attrs([Attr("address","0x810")]), Phis([]), Defs([]), -Jmps([Call(Tid(824, "%00000338"), Attrs([Attr("address","0x810"), -Attr("insn","b #-0x90")]), Int(1,1), -(Direct(Tid(1_820, "@register_tm_clones")),))]))])), Sub(Tid(1_816, "@free"), - Attrs([Attr("c.proto","void (*)(void* ptr)"), Attr("address","0x6B0"), -Attr("stub","()")]), "free", Args([Arg(Tid(1_837, "%0000072d"), - Attrs([Attr("c.layout","*[ : 8]"), Attr("c.data","{} ptr"), -Attr("c.type","void*")]), Var("free_ptr",Imm(64)), Var("R0",Imm(64)), -Both())]), Blks([Blk(Tid(1_033, "@free"), Attrs([Attr("address","0x6B0")]), - Phis([]), Defs([Def(Tid(1_524, "%000005f4"), Attrs([Attr("address","0x6B0"), -Attr("insn","adrp x16, #69632")]), Var("R16",Imm(64)), Int(69632,64)), -Def(Tid(1_531, "%000005fb"), Attrs([Attr("address","0x6B4"), -Attr("insn","ldr x17, [x16, #0x28]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(40,64)),LittleEndian(),64)), -Def(Tid(1_537, "%00000601"), Attrs([Attr("address","0x6B8"), -Attr("insn","add x16, x16, #0x28")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(40,64)))]), Jmps([Call(Tid(1_542, "%00000606"), - Attrs([Attr("address","0x6BC"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), Sub(Tid(1_817, "@main"), - Attrs([Attr("c.proto","signed (*)(signed argc, const char** argv)"), -Attr("address","0x814")]), "main", Args([Arg(Tid(1_838, "%0000072e"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("main_argc",Imm(32)), -LOW(32,Var("R0",Imm(64))), In()), Arg(Tid(1_839, "%0000072f"), - Attrs([Attr("c.layout","**[char : 8]"), Attr("c.data","Top:u8 ptr ptr"), -Attr("c.type"," const char**")]), Var("main_argv",Imm(64)), -Var("R1",Imm(64)), Both()), Arg(Tid(1_840, "%00000730"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("main_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(826, "@main"), - Attrs([Attr("address","0x814")]), Phis([]), Defs([Def(Tid(830, "%0000033e"), - Attrs([Attr("address","0x814"), Attr("insn","sub sp, sp, #0x30")]), - Var("R31",Imm(64)), PLUS(Var("R31",Imm(64)),Int(18446744073709551568,64))), -Def(Tid(836, "%00000344"), Attrs([Attr("address","0x818"), -Attr("insn","stp x29, x30, [sp, #0x20]")]), Var("#4",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(32,64))), Def(Tid(842, "%0000034a"), - Attrs([Attr("address","0x818"), Attr("insn","stp x29, x30, [sp, #0x20]")]), - Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("#4",Imm(64)),Var("R29",Imm(64)),LittleEndian(),64)), -Def(Tid(848, "%00000350"), Attrs([Attr("address","0x818"), -Attr("insn","stp x29, x30, [sp, #0x20]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("#4",Imm(64)),Int(8,64)),Var("R30",Imm(64)),LittleEndian(),64)), -Def(Tid(854, "%00000356"), Attrs([Attr("address","0x81C"), -Attr("insn","add x29, sp, #0x20")]), Var("R29",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(32,64))), Def(Tid(859, "%0000035b"), - Attrs([Attr("address","0x820"), Attr("insn","mov w8, wzr")]), - Var("R8",Imm(64)), Int(0,64)), Def(Tid(867, "%00000363"), - Attrs([Attr("address","0x824"), Attr("insn","str w8, [sp, #0x4]")]), - Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(4,64)),Extract(31,0,Var("R8",Imm(64))),LittleEndian(),32)), -Def(Tid(874, "%0000036a"), Attrs([Attr("address","0x828"), -Attr("insn","stur wzr, [x29, #-0x4]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R29",Imm(64)),Int(18446744073709551612,64)),Int(0,32),LittleEndian(),32)), -Def(Tid(879, "%0000036f"), Attrs([Attr("address","0x82C"), -Attr("insn","mov x0, #0x1")]), Var("R0",Imm(64)), Int(1,64)), -Def(Tid(884, "%00000374"), Attrs([Attr("address","0x830"), -Attr("insn","bl #-0x1b0")]), Var("R30",Imm(64)), Int(2100,64))]), -Jmps([Call(Tid(887, "%00000377"), Attrs([Attr("address","0x830"), -Attr("insn","bl #-0x1b0")]), Int(1,1), -(Direct(Tid(1_818, "@malloc")),Direct(Tid(889, "%00000379"))))])), -Blk(Tid(889, "%00000379"), Attrs([Attr("address","0x834")]), Phis([]), -Defs([Def(Tid(895, "%0000037f"), Attrs([Attr("address","0x834"), -Attr("insn","str x0, [sp, #0x10]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(16,64)),Var("R0",Imm(64)),LittleEndian(),64)), -Def(Tid(900, "%00000384"), Attrs([Attr("address","0x838"), -Attr("insn","mov x0, #0x4")]), Var("R0",Imm(64)), Int(4,64)), -Def(Tid(905, "%00000389"), Attrs([Attr("address","0x83C"), -Attr("insn","bl #-0x1bc")]), Var("R30",Imm(64)), Int(2112,64))]), -Jmps([Call(Tid(907, "%0000038b"), Attrs([Attr("address","0x83C"), -Attr("insn","bl #-0x1bc")]), Int(1,1), -(Direct(Tid(1_818, "@malloc")),Direct(Tid(909, "%0000038d"))))])), -Blk(Tid(909, "%0000038d"), Attrs([Attr("address","0x840")]), Phis([]), -Defs([Def(Tid(915, "%00000393"), Attrs([Attr("address","0x840"), -Attr("insn","str x0, [sp, #0x8]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),Var("R0",Imm(64)),LittleEndian(),64)), -Def(Tid(922, "%0000039a"), Attrs([Attr("address","0x844"), -Attr("insn","ldr x9, [sp, #0x10]")]), Var("R9",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(16,64)),LittleEndian(),64)), -Def(Tid(927, "%0000039f"), Attrs([Attr("address","0x848"), -Attr("insn","mov w8, #0x41")]), Var("R8",Imm(64)), Int(65,64)), -Def(Tid(935, "%000003a7"), Attrs([Attr("address","0x84C"), -Attr("insn","strb w8, [x9]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("R9",Imm(64)),Extract(7,0,Var("R8",Imm(64))),LittleEndian(),8)), -Def(Tid(942, "%000003ae"), Attrs([Attr("address","0x850"), -Attr("insn","ldr x9, [sp, #0x8]")]), Var("R9",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(947, "%000003b3"), Attrs([Attr("address","0x854"), -Attr("insn","mov w8, #0x2a")]), Var("R8",Imm(64)), Int(42,64)), -Def(Tid(955, "%000003bb"), Attrs([Attr("address","0x858"), -Attr("insn","str w8, [x9]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("R9",Imm(64)),Extract(31,0,Var("R8",Imm(64))),LittleEndian(),32)), -Def(Tid(962, "%000003c2"), Attrs([Attr("address","0x85C"), -Attr("insn","ldr x8, [sp, #0x10]")]), Var("R8",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(16,64)),LittleEndian(),64)), -Def(Tid(969, "%000003c9"), Attrs([Attr("address","0x860"), -Attr("insn","ldrb w1, [x8]")]), Var("R1",Imm(64)), -UNSIGNED(64,Load(Var("mem",Mem(64,8)),Var("R8",Imm(64)),LittleEndian(),8))), -Def(Tid(974, "%000003ce"), Attrs([Attr("address","0x864"), -Attr("insn","adrp x0, #0")]), Var("R0",Imm(64)), Int(0,64)), -Def(Tid(980, "%000003d4"), Attrs([Attr("address","0x868"), -Attr("insn","add x0, x0, #0x8bc")]), Var("R0",Imm(64)), -PLUS(Var("R0",Imm(64)),Int(2236,64))), Def(Tid(985, "%000003d9"), - Attrs([Attr("address","0x86C"), Attr("insn","bl #-0x1ac")]), - Var("R30",Imm(64)), Int(2160,64))]), Jmps([Call(Tid(988, "%000003dc"), - Attrs([Attr("address","0x86C"), Attr("insn","bl #-0x1ac")]), Int(1,1), -(Direct(Tid(1_819, "@printf")),Direct(Tid(990, "%000003de"))))])), -Blk(Tid(990, "%000003de"), Attrs([Attr("address","0x870")]), Phis([]), -Defs([Def(Tid(995, "%000003e3"), Attrs([Attr("address","0x870"), -Attr("insn","ldr x8, [sp, #0x8]")]), Var("R8",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(1_002, "%000003ea"), Attrs([Attr("address","0x874"), -Attr("insn","ldr w1, [x8]")]), Var("R1",Imm(64)), -UNSIGNED(64,Load(Var("mem",Mem(64,8)),Var("R8",Imm(64)),LittleEndian(),32))), -Def(Tid(1_007, "%000003ef"), Attrs([Attr("address","0x878"), -Attr("insn","adrp x0, #0")]), Var("R0",Imm(64)), Int(0,64)), -Def(Tid(1_013, "%000003f5"), Attrs([Attr("address","0x87C"), -Attr("insn","add x0, x0, #0x8cd")]), Var("R0",Imm(64)), -PLUS(Var("R0",Imm(64)),Int(2253,64))), Def(Tid(1_018, "%000003fa"), - Attrs([Attr("address","0x880"), Attr("insn","bl #-0x1c0")]), - Var("R30",Imm(64)), Int(2180,64))]), Jmps([Call(Tid(1_020, "%000003fc"), - Attrs([Attr("address","0x880"), Attr("insn","bl #-0x1c0")]), Int(1,1), -(Direct(Tid(1_819, "@printf")),Direct(Tid(1_022, "%000003fe"))))])), -Blk(Tid(1_022, "%000003fe"), Attrs([Attr("address","0x884")]), Phis([]), -Defs([Def(Tid(1_027, "%00000403"), Attrs([Attr("address","0x884"), -Attr("insn","ldr x0, [sp, #0x10]")]), Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(16,64)),LittleEndian(),64)), -Def(Tid(1_032, "%00000408"), Attrs([Attr("address","0x888"), -Attr("insn","bl #-0x1d8")]), Var("R30",Imm(64)), Int(2188,64))]), -Jmps([Call(Tid(1_035, "%0000040b"), Attrs([Attr("address","0x888"), -Attr("insn","bl #-0x1d8")]), Int(1,1), -(Direct(Tid(1_816, "@free")),Direct(Tid(1_037, "%0000040d"))))])), -Blk(Tid(1_037, "%0000040d"), Attrs([Attr("address","0x88C")]), Phis([]), -Defs([Def(Tid(1_042, "%00000412"), Attrs([Attr("address","0x88C"), -Attr("insn","ldr x0, [sp, #0x8]")]), Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(1_047, "%00000417"), Attrs([Attr("address","0x890"), -Attr("insn","bl #-0x1e0")]), Var("R30",Imm(64)), Int(2196,64))]), -Jmps([Call(Tid(1_049, "%00000419"), Attrs([Attr("address","0x890"), -Attr("insn","bl #-0x1e0")]), Int(1,1), -(Direct(Tid(1_816, "@free")),Direct(Tid(1_051, "%0000041b"))))])), -Blk(Tid(1_051, "%0000041b"), Attrs([Attr("address","0x894")]), Phis([]), -Defs([Def(Tid(1_056, "%00000420"), Attrs([Attr("address","0x894"), -Attr("insn","ldr w0, [sp, #0x4]")]), Var("R0",Imm(64)), -UNSIGNED(64,Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(4,64)),LittleEndian(),32))), -Def(Tid(1_062, "%00000426"), Attrs([Attr("address","0x898"), -Attr("insn","ldp x29, x30, [sp, #0x20]")]), Var("#5",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(32,64))), Def(Tid(1_067, "%0000042b"), - Attrs([Attr("address","0x898"), Attr("insn","ldp x29, x30, [sp, #0x20]")]), - Var("R29",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("#5",Imm(64)),LittleEndian(),64)), -Def(Tid(1_072, "%00000430"), Attrs([Attr("address","0x898"), -Attr("insn","ldp x29, x30, [sp, #0x20]")]), Var("R30",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("#5",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(1_078, "%00000436"), Attrs([Attr("address","0x89C"), -Attr("insn","add sp, sp, #0x30")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(48,64)))]), Jmps([Call(Tid(1_083, "%0000043b"), - Attrs([Attr("address","0x8A0"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), Sub(Tid(1_818, "@malloc"), - Attrs([Attr("c.proto","void* (*)(unsigned long size)"), -Attr("address","0x680"), Attr("malloc","()"), Attr("stub","()")]), "malloc", - Args([Arg(Tid(1_841, "%00000731"), Attrs([Attr("alloc-size","()"), -Attr("c.layout","[unsigned long : 64]"), Attr("c.data","Top:u64"), -Attr("c.type","unsigned long")]), Var("malloc_size",Imm(64)), -Var("R0",Imm(64)), In()), Arg(Tid(1_842, "%00000732"), - Attrs([Attr("warn-unused","()"), Attr("c.layout","*[ : 8]"), -Attr("c.data","{} ptr"), Attr("c.type","void*")]), - Var("malloc_result",Imm(64)), Var("R0",Imm(64)), Out())]), -Blks([Blk(Tid(885, "@malloc"), Attrs([Attr("address","0x680")]), Phis([]), -Defs([Def(Tid(1_458, "%000005b2"), Attrs([Attr("address","0x680"), -Attr("insn","adrp x16, #69632")]), Var("R16",Imm(64)), Int(69632,64)), -Def(Tid(1_465, "%000005b9"), Attrs([Attr("address","0x684"), -Attr("insn","ldr x17, [x16, #0x10]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(16,64)),LittleEndian(),64)), -Def(Tid(1_471, "%000005bf"), Attrs([Attr("address","0x688"), -Attr("insn","add x16, x16, #0x10")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(16,64)))]), Jmps([Call(Tid(1_476, "%000005c4"), - Attrs([Attr("address","0x68C"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), Sub(Tid(1_819, "@printf"), - Attrs([Attr("c.proto","signed (*)( const char restrict * format, ...)"), -Attr("address","0x6C0"), Attr("stub","()")]), "printf", - Args([Arg(Tid(1_843, "%00000733"), Attrs([Attr("format","\"printf\""), -Attr("c.layout","*[char : 8]"), Attr("c.data","Top:u8 ptr"), -Attr("c.type"," const char restrict *")]), Var("printf_format",Imm(64)), -Var("R0",Imm(64)), In()), Arg(Tid(1_844, "%00000734"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("printf_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(986, "@printf"), - Attrs([Attr("address","0x6C0")]), Phis([]), -Defs([Def(Tid(1_546, "%0000060a"), Attrs([Attr("address","0x6C0"), -Attr("insn","adrp x16, #69632")]), Var("R16",Imm(64)), Int(69632,64)), -Def(Tid(1_553, "%00000611"), Attrs([Attr("address","0x6C4"), -Attr("insn","ldr x17, [x16, #0x30]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(48,64)),LittleEndian(),64)), -Def(Tid(1_559, "%00000617"), Attrs([Attr("address","0x6C8"), -Attr("insn","add x16, x16, #0x30")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(48,64)))]), Jmps([Call(Tid(1_564, "%0000061c"), - Attrs([Attr("address","0x6CC"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), -Sub(Tid(1_820, "@register_tm_clones"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x780")]), - "register_tm_clones", Args([Arg(Tid(1_845, "%00000735"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("register_tm_clones_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(672, "@register_tm_clones"), Attrs([Attr("address","0x780")]), - Phis([]), Defs([Def(Tid(675, "%000002a3"), Attrs([Attr("address","0x780"), -Attr("insn","adrp x0, #69632")]), Var("R0",Imm(64)), Int(69632,64)), -Def(Tid(681, "%000002a9"), Attrs([Attr("address","0x784"), -Attr("insn","add x0, x0, #0x48")]), Var("R0",Imm(64)), -PLUS(Var("R0",Imm(64)),Int(72,64))), Def(Tid(686, "%000002ae"), - Attrs([Attr("address","0x788"), Attr("insn","adrp x1, #69632")]), - Var("R1",Imm(64)), Int(69632,64)), Def(Tid(692, "%000002b4"), - Attrs([Attr("address","0x78C"), Attr("insn","add x1, x1, #0x48")]), - Var("R1",Imm(64)), PLUS(Var("R1",Imm(64)),Int(72,64))), -Def(Tid(699, "%000002bb"), Attrs([Attr("address","0x790"), -Attr("insn","sub x1, x1, x0")]), Var("R1",Imm(64)), -PLUS(PLUS(Var("R1",Imm(64)),NOT(Var("R0",Imm(64)))),Int(1,64))), -Def(Tid(705, "%000002c1"), Attrs([Attr("address","0x794"), -Attr("insn","lsr x2, x1, #63")]), Var("R2",Imm(64)), -Concat(Int(0,63),Extract(63,63,Var("R1",Imm(64))))), -Def(Tid(712, "%000002c8"), Attrs([Attr("address","0x798"), -Attr("insn","add x1, x2, x1, asr #3")]), Var("R1",Imm(64)), -PLUS(Var("R2",Imm(64)),ARSHIFT(Var("R1",Imm(64)),Int(3,3)))), -Def(Tid(718, "%000002ce"), Attrs([Attr("address","0x79C"), -Attr("insn","asr x1, x1, #1")]), Var("R1",Imm(64)), -SIGNED(64,Extract(63,1,Var("R1",Imm(64)))))]), -Jmps([Goto(Tid(724, "%000002d4"), Attrs([Attr("address","0x7A0"), -Attr("insn","cbz x1, #0x18")]), EQ(Var("R1",Imm(64)),Int(0,64)), -Direct(Tid(722, "%000002d2"))), Goto(Tid(1_821, "%0000071d"), Attrs([]), - Int(1,1), Direct(Tid(1_144, "%00000478")))])), Blk(Tid(1_144, "%00000478"), - Attrs([Attr("address","0x7A4")]), Phis([]), -Defs([Def(Tid(1_147, "%0000047b"), Attrs([Attr("address","0x7A4"), -Attr("insn","adrp x2, #65536")]), Var("R2",Imm(64)), Int(65536,64)), -Def(Tid(1_154, "%00000482"), Attrs([Attr("address","0x7A8"), -Attr("insn","ldr x2, [x2, #0xfe0]")]), Var("R2",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R2",Imm(64)),Int(4064,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(1_159, "%00000487"), Attrs([Attr("address","0x7AC"), -Attr("insn","cbz x2, #0xc")]), EQ(Var("R2",Imm(64)),Int(0,64)), -Direct(Tid(722, "%000002d2"))), Goto(Tid(1_822, "%0000071e"), Attrs([]), - Int(1,1), Direct(Tid(1_163, "%0000048b")))])), Blk(Tid(722, "%000002d2"), - Attrs([Attr("address","0x7B8")]), Phis([]), Defs([]), -Jmps([Call(Tid(730, "%000002da"), Attrs([Attr("address","0x7B8"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))])), -Blk(Tid(1_163, "%0000048b"), Attrs([Attr("address","0x7B0")]), Phis([]), -Defs([Def(Tid(1_167, "%0000048f"), Attrs([Attr("address","0x7B0"), -Attr("insn","mov x16, x2")]), Var("R16",Imm(64)), Var("R2",Imm(64)))]), -Jmps([Call(Tid(1_172, "%00000494"), Attrs([Attr("address","0x7B4"), -Attr("insn","br x16")]), Int(1,1), -(Indirect(Var("R16",Imm(64))),))]))]))]))) \ No newline at end of file diff --git a/src/test/correct/multi_malloc/clang/multi_malloc.bir b/src/test/correct/multi_malloc/clang/multi_malloc.bir deleted file mode 100644 index ed65bb566..000000000 --- a/src/test/correct/multi_malloc/clang/multi_malloc.bir +++ /dev/null @@ -1,309 +0,0 @@ -0000071f: program -00000706: sub __cxa_finalize(__cxa_finalize_result) -00000720: __cxa_finalize_result :: out u32 = low:32[R0] - -00000474: -0000059c: R16 := 0x11000 -000005a3: R17 := mem[R16 + 8, el]:u64 -000005a9: R16 := R16 + 8 -000005ae: call R17 with noreturn - -00000707: sub __do_global_dtors_aux(__do_global_dtors_aux_result) -00000721: __do_global_dtors_aux_result :: out u32 = low:32[R0] - -000002de: -000002e2: #3 := R31 - 0x20 -000002e8: mem := mem with [#3, el]:u64 <- R29 -000002ee: mem := mem with [#3 + 8, el]:u64 <- R30 -000002f2: R31 := #3 -000002f8: R29 := R31 -00000300: mem := mem with [R31 + 0x10, el]:u64 <- R19 -00000305: R19 := 0x11000 -0000030c: R0 := pad:64[mem[R19 + 0x48]] -00000313: when 31:0[R0] <> 0 goto %00000311 -00000708: goto %0000043d - -0000043d: -00000440: R0 := 0x10000 -00000447: R0 := mem[R0 + 0xFC8, el]:u64 -0000044d: when R0 = 0 goto %0000044b -00000709: goto %00000464 - -00000464: -00000467: R0 := 0x11000 -0000046e: R0 := mem[R0 + 0x40, el]:u64 -00000473: R30 := 0x7F0 -00000476: call @__cxa_finalize with return %0000044b - -0000044b: -00000453: R30 := 0x7F4 -00000455: call @deregister_tm_clones with return %00000457 - -00000457: -0000045a: R0 := 1 -00000462: mem := mem with [R19 + 0x48] <- 7:0[R0] -0000070a: goto %00000311 - -00000311: -0000031b: R19 := mem[R31 + 0x10, el]:u64 -00000322: R29 := mem[R31, el]:u64 -00000327: R30 := mem[R31 + 8, el]:u64 -0000032b: R31 := R31 + 0x20 -00000330: call R30 with noreturn - -0000070b: sub __libc_start_main(__libc_start_main_main, __libc_start_main_arg2, __libc_start_main_arg3, __libc_start_main_auxv, __libc_start_main_result) -00000722: __libc_start_main_main :: in u64 = R0 -00000723: __libc_start_main_arg2 :: in u32 = low:32[R1] -00000724: __libc_start_main_arg3 :: in out u64 = R2 -00000725: __libc_start_main_auxv :: in out u64 = R3 -00000726: __libc_start_main_result :: out u32 = low:32[R0] - -00000237: -00000586: R16 := 0x11000 -0000058d: R17 := mem[R16, el]:u64 -00000593: R16 := R16 -00000598: call R17 with noreturn - -0000070c: sub _fini(_fini_result) -00000727: _fini_result :: out u32 = low:32[R0] - -0000001f: -00000025: #0 := R31 - 0x10 -0000002b: mem := mem with [#0, el]:u64 <- R29 -00000031: mem := mem with [#0 + 8, el]:u64 <- R30 -00000035: R31 := #0 -0000003b: R29 := R31 -00000042: R29 := mem[R31, el]:u64 -00000047: R30 := mem[R31 + 8, el]:u64 -0000004b: R31 := R31 + 0x10 -00000050: call R30 with noreturn - -0000070d: sub _init(_init_result) -00000728: _init_result :: out u32 = low:32[R0] - -00000638: -0000063e: #7 := R31 - 0x10 -00000644: mem := mem with [#7, el]:u64 <- R29 -0000064a: mem := mem with [#7 + 8, el]:u64 <- R30 -0000064e: R31 := #7 -00000654: R29 := R31 -00000659: R30 := 0x638 -0000065b: call @call_weak_fn with return %0000065d - -0000065d: -00000662: R29 := mem[R31, el]:u64 -00000667: R30 := mem[R31 + 8, el]:u64 -0000066b: R31 := R31 + 0x10 -00000670: call R30 with noreturn - -0000070e: sub _start(_start_result) -00000729: _start_result :: out u32 = low:32[R0] - -000001f8: -000001fd: R29 := 0 -00000202: R30 := 0 -00000208: R5 := R0 -0000020f: R1 := mem[R31, el]:u64 -00000215: R2 := R31 + 8 -0000021b: R6 := R31 -00000220: R0 := 0x10000 -00000227: R0 := mem[R0 + 0xFD8, el]:u64 -0000022c: R3 := 0 -00000231: R4 := 0 -00000236: R30 := 0x730 -00000239: call @__libc_start_main with return %0000023b - -0000023b: -0000023e: R30 := 0x734 -00000241: call @abort with return %0000070f - -0000070f: -00000710: call @call_weak_fn with noreturn - -00000711: sub abort() - - -0000023f: -000005de: R16 := 0x11000 -000005e5: R17 := mem[R16 + 0x20, el]:u64 -000005eb: R16 := R16 + 0x20 -000005f0: call R17 with noreturn - -00000712: sub call_weak_fn(call_weak_fn_result) -0000072a: call_weak_fn_result :: out u32 = low:32[R0] - -00000243: -00000246: R0 := 0x10000 -0000024d: R0 := mem[R0 + 0xFD0, el]:u64 -00000253: when R0 = 0 goto %00000251 -00000713: goto %000004b4 - -00000251: -00000259: call R30 with noreturn - -000004b4: -000004b7: goto @__gmon_start__ - -000004b5: -000005c8: R16 := 0x11000 -000005cf: R17 := mem[R16 + 0x18, el]:u64 -000005d5: R16 := R16 + 0x18 -000005da: call R17 with noreturn - -00000714: sub deregister_tm_clones(deregister_tm_clones_result) -0000072b: deregister_tm_clones_result :: out u32 = low:32[R0] - -0000025f: -00000262: R0 := 0x11000 -00000268: R0 := R0 + 0x48 -0000026d: R1 := 0x11000 -00000273: R1 := R1 + 0x48 -00000279: #1 := ~R0 -0000027e: #2 := R1 + ~R0 -00000284: VF := extend:65[#2 + 1] <> extend:65[R1] + extend:65[#1] + 1 -0000028a: CF := pad:65[#2 + 1] <> pad:65[R1] + pad:65[#1] + 1 -0000028e: ZF := #2 + 1 = 0 -00000292: NF := 63:63[#2 + 1] -00000298: when ZF goto %00000296 -00000715: goto %00000496 - -00000496: -00000499: R1 := 0x10000 -000004a0: R1 := mem[R1 + 0xFC0, el]:u64 -000004a5: when R1 = 0 goto %00000296 -00000716: goto %000004a9 - -00000296: -0000029e: call R30 with noreturn - -000004a9: -000004ad: R16 := R1 -000004b2: call R16 with noreturn - -00000717: sub frame_dummy(frame_dummy_result) -0000072c: frame_dummy_result :: out u32 = low:32[R0] - -00000336: -00000338: call @register_tm_clones with noreturn - -00000718: sub free(free_ptr) -0000072d: free_ptr :: in out u64 = R0 - -00000409: -000005f4: R16 := 0x11000 -000005fb: R17 := mem[R16 + 0x28, el]:u64 -00000601: R16 := R16 + 0x28 -00000606: call R17 with noreturn - -00000719: sub main(main_argc, main_argv, main_result) -0000072e: main_argc :: in u32 = low:32[R0] -0000072f: main_argv :: in out u64 = R1 -00000730: main_result :: out u32 = low:32[R0] - -0000033a: -0000033e: R31 := R31 - 0x30 -00000344: #4 := R31 + 0x20 -0000034a: mem := mem with [#4, el]:u64 <- R29 -00000350: mem := mem with [#4 + 8, el]:u64 <- R30 -00000356: R29 := R31 + 0x20 -0000035b: R8 := 0 -00000363: mem := mem with [R31 + 4, el]:u32 <- 31:0[R8] -0000036a: mem := mem with [R29 - 4, el]:u32 <- 0 -0000036f: R0 := 1 -00000374: R30 := 0x834 -00000377: call @malloc with return %00000379 - -00000379: -0000037f: mem := mem with [R31 + 0x10, el]:u64 <- R0 -00000384: R0 := 4 -00000389: R30 := 0x840 -0000038b: call @malloc with return %0000038d - -0000038d: -00000393: mem := mem with [R31 + 8, el]:u64 <- R0 -0000039a: R9 := mem[R31 + 0x10, el]:u64 -0000039f: R8 := 0x41 -000003a7: mem := mem with [R9] <- 7:0[R8] -000003ae: R9 := mem[R31 + 8, el]:u64 -000003b3: R8 := 0x2A -000003bb: mem := mem with [R9, el]:u32 <- 31:0[R8] -000003c2: R8 := mem[R31 + 0x10, el]:u64 -000003c9: R1 := pad:64[mem[R8]] -000003ce: R0 := 0 -000003d4: R0 := R0 + 0x8BC -000003d9: R30 := 0x870 -000003dc: call @printf with return %000003de - -000003de: -000003e3: R8 := mem[R31 + 8, el]:u64 -000003ea: R1 := pad:64[mem[R8, el]:u32] -000003ef: R0 := 0 -000003f5: R0 := R0 + 0x8CD -000003fa: R30 := 0x884 -000003fc: call @printf with return %000003fe - -000003fe: -00000403: R0 := mem[R31 + 0x10, el]:u64 -00000408: R30 := 0x88C -0000040b: call @free with return %0000040d - -0000040d: -00000412: R0 := mem[R31 + 8, el]:u64 -00000417: R30 := 0x894 -00000419: call @free with return %0000041b - -0000041b: -00000420: R0 := pad:64[mem[R31 + 4, el]:u32] -00000426: #5 := R31 + 0x20 -0000042b: R29 := mem[#5, el]:u64 -00000430: R30 := mem[#5 + 8, el]:u64 -00000436: R31 := R31 + 0x30 -0000043b: call R30 with noreturn - -0000071a: sub malloc(malloc_size, malloc_result) -00000731: malloc_size :: in u64 = R0 -00000732: malloc_result :: out u64 = R0 - -00000375: -000005b2: R16 := 0x11000 -000005b9: R17 := mem[R16 + 0x10, el]:u64 -000005bf: R16 := R16 + 0x10 -000005c4: call R17 with noreturn - -0000071b: sub printf(printf_format, printf_result) -00000733: printf_format :: in u64 = R0 -00000734: printf_result :: out u32 = low:32[R0] - -000003da: -0000060a: R16 := 0x11000 -00000611: R17 := mem[R16 + 0x30, el]:u64 -00000617: R16 := R16 + 0x30 -0000061c: call R17 with noreturn - -0000071c: sub register_tm_clones(register_tm_clones_result) -00000735: register_tm_clones_result :: out u32 = low:32[R0] - -000002a0: -000002a3: R0 := 0x11000 -000002a9: R0 := R0 + 0x48 -000002ae: R1 := 0x11000 -000002b4: R1 := R1 + 0x48 -000002bb: R1 := R1 + ~R0 + 1 -000002c1: R2 := 0.63:63[R1] -000002c8: R1 := R2 + (R1 ~>> 3) -000002ce: R1 := extend:64[63:1[R1]] -000002d4: when R1 = 0 goto %000002d2 -0000071d: goto %00000478 - -00000478: -0000047b: R2 := 0x10000 -00000482: R2 := mem[R2 + 0xFE0, el]:u64 -00000487: when R2 = 0 goto %000002d2 -0000071e: goto %0000048b - -000002d2: -000002da: call R30 with noreturn - -0000048b: -0000048f: R16 := R2 -00000494: call R16 with noreturn diff --git a/src/test/correct/multi_malloc/clang/multi_malloc.expected b/src/test/correct/multi_malloc/clang/multi_malloc.expected index 0e46b0abc..306ec77fa 100644 --- a/src/test/correct/multi_malloc/clang/multi_malloc.expected +++ b/src/test/correct/multi_malloc/clang/multi_malloc.expected @@ -111,7 +111,7 @@ procedure {:extern} rely_reflexive(); procedure {:extern} guarantee_reflexive(); modifies Gamma_mem, mem; -procedure #free_1712(); +procedure #free(); modifies Gamma_R16, Gamma_R17, R16, R17; free requires (memory_load64_le(mem, 2232bv64) == 2334386691848142849bv64); free requires (memory_load64_le(mem, 2240bv64) == 4211825664600402019bv64); @@ -140,7 +140,7 @@ procedure #free_1712(); free ensures (memory_load64_le(mem, 69592bv64) == 2068bv64); free ensures (memory_load64_le(mem, 69696bv64) == 69696bv64); -procedure main_2068(); +procedure main(); modifies Gamma_R0, Gamma_R1, Gamma_R16, Gamma_R17, Gamma_R29, Gamma_R30, Gamma_R31, Gamma_R8, Gamma_R9, Gamma_mem, Gamma_stack, R0, R1, R16, R17, R29, R30, R31, R8, R9, mem, stack; free requires (memory_load64_le(mem, 69688bv64) == 0bv64); free requires (memory_load64_le(mem, 69696bv64) == 69696bv64); @@ -175,34 +175,34 @@ procedure main_2068(); free ensures (memory_load64_le(mem, 69592bv64) == 2068bv64); free ensures (memory_load64_le(mem, 69696bv64) == 69696bv64); -implementation main_2068() +implementation main() { var #4: bv64; var #5: bv64; + var $load$19: bv64; + var $load$20: bv64; + var $load$21: bv64; + var $load$22: bv8; + var $load$23: bv64; + var $load$24: bv32; + var $load$25: bv64; + var $load$26: bv64; + var $load$27: bv32; + var $load$28: bv64; + var $load$29: bv64; var Gamma_#4: bool; var Gamma_#5: bool; - var Gamma_load19: bool; - var Gamma_load20: bool; - var Gamma_load21: bool; - var Gamma_load22: bool; - var Gamma_load23: bool; - var Gamma_load24: bool; - var Gamma_load25: bool; - var Gamma_load26: bool; - var Gamma_load27: bool; - var Gamma_load28: bool; - var Gamma_load29: bool; - var load19: bv64; - var load20: bv64; - var load21: bv64; - var load22: bv8; - var load23: bv64; - var load24: bv32; - var load25: bv64; - var load26: bv64; - var load27: bv32; - var load28: bv64; - var load29: bv64; + var Gamma_$load$19: bool; + var Gamma_$load$20: bool; + var Gamma_$load$21: bool; + var Gamma_$load$22: bool; + var Gamma_$load$23: bool; + var Gamma_$load$24: bool; + var Gamma_$load$25: bool; + var Gamma_$load$26: bool; + var Gamma_$load$27: bool; + var Gamma_$load$28: bool; + var Gamma_$load$29: bool; lmain: assume {:captureState "lmain"} true; R31, Gamma_R31 := bvadd64(R31, 18446744073709551568bv64), Gamma_R31; @@ -219,7 +219,7 @@ implementation main_2068() assume {:captureState "%0000036a"} true; R0, Gamma_R0 := 1bv64, true; R30, Gamma_R30 := 2100bv64, true; - call malloc_1664(); + call malloc(); goto l00000379; l00000379: assume {:captureState "l00000379"} true; @@ -227,79 +227,79 @@ implementation main_2068() assume {:captureState "%0000037f"} true; R0, Gamma_R0 := 4bv64, true; R30, Gamma_R30 := 2112bv64, true; - call malloc_1664(); + call malloc(); goto l0000038d; l0000038d: assume {:captureState "l0000038d"} true; stack, Gamma_stack := memory_store64_le(stack, bvadd64(R31, 8bv64), R0), gamma_store64(Gamma_stack, bvadd64(R31, 8bv64), Gamma_R0); assume {:captureState "%00000393"} true; - load19, Gamma_load19 := memory_load64_le(stack, bvadd64(R31, 16bv64)), gamma_load64(Gamma_stack, bvadd64(R31, 16bv64)); - R9, Gamma_R9 := load19, Gamma_load19; + $load$19, Gamma_$load$19 := memory_load64_le(stack, bvadd64(R31, 16bv64)), gamma_load64(Gamma_stack, bvadd64(R31, 16bv64)); + R9, Gamma_R9 := $load$19, Gamma_$load$19; R8, Gamma_R8 := 65bv64, true; call rely(); assert (L(mem, R9) ==> Gamma_R8); mem, Gamma_mem := memory_store8_le(mem, R9, R8[8:0]), gamma_store8(Gamma_mem, R9, Gamma_R8); assume {:captureState "%000003a7"} true; - load20, Gamma_load20 := memory_load64_le(stack, bvadd64(R31, 8bv64)), gamma_load64(Gamma_stack, bvadd64(R31, 8bv64)); - R9, Gamma_R9 := load20, Gamma_load20; + $load$20, Gamma_$load$20 := memory_load64_le(stack, bvadd64(R31, 8bv64)), gamma_load64(Gamma_stack, bvadd64(R31, 8bv64)); + R9, Gamma_R9 := $load$20, Gamma_$load$20; R8, Gamma_R8 := 42bv64, true; call rely(); assert (L(mem, R9) ==> Gamma_R8); mem, Gamma_mem := memory_store32_le(mem, R9, R8[32:0]), gamma_store32(Gamma_mem, R9, Gamma_R8); assume {:captureState "%000003bb"} true; - load21, Gamma_load21 := memory_load64_le(stack, bvadd64(R31, 16bv64)), gamma_load64(Gamma_stack, bvadd64(R31, 16bv64)); - R8, Gamma_R8 := load21, Gamma_load21; + $load$21, Gamma_$load$21 := memory_load64_le(stack, bvadd64(R31, 16bv64)), gamma_load64(Gamma_stack, bvadd64(R31, 16bv64)); + R8, Gamma_R8 := $load$21, Gamma_$load$21; call rely(); - load22, Gamma_load22 := memory_load8_le(mem, R8), (gamma_load8(Gamma_mem, R8) || L(mem, R8)); - R1, Gamma_R1 := zero_extend56_8(load22), Gamma_load22; + $load$22, Gamma_$load$22 := memory_load8_le(mem, R8), (gamma_load8(Gamma_mem, R8) || L(mem, R8)); + R1, Gamma_R1 := zero_extend56_8($load$22), Gamma_$load$22; R0, Gamma_R0 := 0bv64, true; R0, Gamma_R0 := bvadd64(R0, 2236bv64), Gamma_R0; R30, Gamma_R30 := 2160bv64, true; - call printf_1728(); + call printf(); goto l000003de; l000003de: assume {:captureState "l000003de"} true; - load23, Gamma_load23 := memory_load64_le(stack, bvadd64(R31, 8bv64)), gamma_load64(Gamma_stack, bvadd64(R31, 8bv64)); - R8, Gamma_R8 := load23, Gamma_load23; + $load$23, Gamma_$load$23 := memory_load64_le(stack, bvadd64(R31, 8bv64)), gamma_load64(Gamma_stack, bvadd64(R31, 8bv64)); + R8, Gamma_R8 := $load$23, Gamma_$load$23; call rely(); - load24, Gamma_load24 := memory_load32_le(mem, R8), (gamma_load32(Gamma_mem, R8) || L(mem, R8)); - R1, Gamma_R1 := zero_extend32_32(load24), Gamma_load24; + $load$24, Gamma_$load$24 := memory_load32_le(mem, R8), (gamma_load32(Gamma_mem, R8) || L(mem, R8)); + R1, Gamma_R1 := zero_extend32_32($load$24), Gamma_$load$24; R0, Gamma_R0 := 0bv64, true; R0, Gamma_R0 := bvadd64(R0, 2253bv64), Gamma_R0; R30, Gamma_R30 := 2180bv64, true; - call printf_1728(); + call printf(); goto l000003fe; l000003fe: assume {:captureState "l000003fe"} true; - load25, Gamma_load25 := memory_load64_le(stack, bvadd64(R31, 16bv64)), gamma_load64(Gamma_stack, bvadd64(R31, 16bv64)); - R0, Gamma_R0 := load25, Gamma_load25; + $load$25, Gamma_$load$25 := memory_load64_le(stack, bvadd64(R31, 16bv64)), gamma_load64(Gamma_stack, bvadd64(R31, 16bv64)); + R0, Gamma_R0 := $load$25, Gamma_$load$25; R30, Gamma_R30 := 2188bv64, true; - call #free_1712(); + call #free(); goto l0000040d; l0000040d: assume {:captureState "l0000040d"} true; - load26, Gamma_load26 := memory_load64_le(stack, bvadd64(R31, 8bv64)), gamma_load64(Gamma_stack, bvadd64(R31, 8bv64)); - R0, Gamma_R0 := load26, Gamma_load26; + $load$26, Gamma_$load$26 := memory_load64_le(stack, bvadd64(R31, 8bv64)), gamma_load64(Gamma_stack, bvadd64(R31, 8bv64)); + R0, Gamma_R0 := $load$26, Gamma_$load$26; R30, Gamma_R30 := 2196bv64, true; - call #free_1712(); + call #free(); goto l0000041b; l0000041b: assume {:captureState "l0000041b"} true; - load27, Gamma_load27 := memory_load32_le(stack, bvadd64(R31, 4bv64)), gamma_load32(Gamma_stack, bvadd64(R31, 4bv64)); - R0, Gamma_R0 := zero_extend32_32(load27), Gamma_load27; + $load$27, Gamma_$load$27 := memory_load32_le(stack, bvadd64(R31, 4bv64)), gamma_load32(Gamma_stack, bvadd64(R31, 4bv64)); + R0, Gamma_R0 := zero_extend32_32($load$27), Gamma_$load$27; #5, Gamma_#5 := bvadd64(R31, 32bv64), Gamma_R31; - load28, Gamma_load28 := memory_load64_le(stack, #5), gamma_load64(Gamma_stack, #5); - R29, Gamma_R29 := load28, Gamma_load28; - load29, Gamma_load29 := memory_load64_le(stack, bvadd64(#5, 8bv64)), gamma_load64(Gamma_stack, bvadd64(#5, 8bv64)); - R30, Gamma_R30 := load29, Gamma_load29; + $load$28, Gamma_$load$28 := memory_load64_le(stack, #5), gamma_load64(Gamma_stack, #5); + R29, Gamma_R29 := $load$28, Gamma_$load$28; + $load$29, Gamma_$load$29 := memory_load64_le(stack, bvadd64(#5, 8bv64)), gamma_load64(Gamma_stack, bvadd64(#5, 8bv64)); + R30, Gamma_R30 := $load$29, Gamma_$load$29; R31, Gamma_R31 := bvadd64(R31, 48bv64), Gamma_R31; - goto main_2068_basil_return; - main_2068_basil_return: - assume {:captureState "main_2068_basil_return"} true; + goto main_basil_return; + main_basil_return: + assume {:captureState "main_basil_return"} true; return; } -procedure malloc_1664(); +procedure malloc(); modifies Gamma_R16, Gamma_R17, R16, R17; free requires (memory_load64_le(mem, 2232bv64) == 2334386691848142849bv64); free requires (memory_load64_le(mem, 2240bv64) == 4211825664600402019bv64); @@ -328,7 +328,7 @@ procedure malloc_1664(); free ensures (memory_load64_le(mem, 69592bv64) == 2068bv64); free ensures (memory_load64_le(mem, 69696bv64) == 69696bv64); -procedure printf_1728(); +procedure printf(); modifies Gamma_R16, Gamma_R17, R16, R17; free requires (memory_load64_le(mem, 2232bv64) == 2334386691848142849bv64); free requires (memory_load64_le(mem, 2240bv64) == 4211825664600402019bv64); diff --git a/src/test/correct/multi_malloc/clang/multi_malloc.gts b/src/test/correct/multi_malloc/clang/multi_malloc.gts deleted file mode 100644 index 9d1053dd9..000000000 Binary files a/src/test/correct/multi_malloc/clang/multi_malloc.gts and /dev/null differ diff --git a/src/test/correct/multi_malloc/clang/multi_malloc.md5sum b/src/test/correct/multi_malloc/clang/multi_malloc.md5sum new file mode 100644 index 000000000..1db11e6bc --- /dev/null +++ b/src/test/correct/multi_malloc/clang/multi_malloc.md5sum @@ -0,0 +1,5 @@ +a03bff5ed6881c111ecaf96709be4d51 correct/multi_malloc/clang/a.out +58514e8679921af5760c237c93cdb420 correct/multi_malloc/clang/multi_malloc.adt +89ba03731a24461b447fa9b5ef1277b8 correct/multi_malloc/clang/multi_malloc.bir +08726337fe0113be4e6ea0284f9ef095 correct/multi_malloc/clang/multi_malloc.relf +e4a3345591458535c15006c7c103b84e correct/multi_malloc/clang/multi_malloc.gts diff --git a/src/test/correct/multi_malloc/clang/multi_malloc.relf b/src/test/correct/multi_malloc/clang/multi_malloc.relf deleted file mode 100644 index 9c77d0468..000000000 --- a/src/test/correct/multi_malloc/clang/multi_malloc.relf +++ /dev/null @@ -1,131 +0,0 @@ - -Relocation section '.rela.dyn' at offset 0x4c0 contains 8 entries: - Offset Info Type Symbol's Value Symbol's Name + Addend -0000000000010dc8 0000000000000403 R_AARCH64_RELATIVE 810 -0000000000010dd0 0000000000000403 R_AARCH64_RELATIVE 7c0 -0000000000010fd8 0000000000000403 R_AARCH64_RELATIVE 814 -0000000000011040 0000000000000403 R_AARCH64_RELATIVE 11040 -0000000000010fc0 0000000400000401 R_AARCH64_GLOB_DAT 0000000000000000 _ITM_deregisterTMCloneTable + 0 -0000000000010fc8 0000000500000401 R_AARCH64_GLOB_DAT 0000000000000000 __cxa_finalize@GLIBC_2.17 + 0 -0000000000010fd0 0000000700000401 R_AARCH64_GLOB_DAT 0000000000000000 __gmon_start__ + 0 -0000000000010fe0 0000000a00000401 R_AARCH64_GLOB_DAT 0000000000000000 _ITM_registerTMCloneTable + 0 - -Relocation section '.rela.plt' at offset 0x580 contains 7 entries: - Offset Info Type Symbol's Value Symbol's Name + Addend -0000000000011000 0000000300000402 R_AARCH64_JUMP_SLOT 0000000000000000 __libc_start_main@GLIBC_2.34 + 0 -0000000000011008 0000000500000402 R_AARCH64_JUMP_SLOT 0000000000000000 __cxa_finalize@GLIBC_2.17 + 0 -0000000000011010 0000000600000402 R_AARCH64_JUMP_SLOT 0000000000000000 malloc@GLIBC_2.17 + 0 -0000000000011018 0000000700000402 R_AARCH64_JUMP_SLOT 0000000000000000 __gmon_start__ + 0 -0000000000011020 0000000800000402 R_AARCH64_JUMP_SLOT 0000000000000000 abort@GLIBC_2.17 + 0 -0000000000011028 0000000900000402 R_AARCH64_JUMP_SLOT 0000000000000000 free@GLIBC_2.17 + 0 -0000000000011030 0000000b00000402 R_AARCH64_JUMP_SLOT 0000000000000000 printf@GLIBC_2.17 + 0 - -Symbol table '.dynsym' contains 12 entries: - Num: Value Size Type Bind Vis Ndx Name - 0: 0000000000000000 0 NOTYPE LOCAL DEFAULT UND - 1: 0000000000000628 0 SECTION LOCAL DEFAULT 11 .init - 2: 0000000000011038 0 SECTION LOCAL DEFAULT 23 .data - 3: 0000000000000000 0 FUNC GLOBAL DEFAULT UND __libc_start_main@GLIBC_2.34 (2) - 4: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_deregisterTMCloneTable - 5: 0000000000000000 0 FUNC WEAK DEFAULT UND __cxa_finalize@GLIBC_2.17 (3) - 6: 0000000000000000 0 FUNC GLOBAL DEFAULT UND malloc@GLIBC_2.17 (3) - 7: 0000000000000000 0 NOTYPE WEAK DEFAULT UND __gmon_start__ - 8: 0000000000000000 0 FUNC GLOBAL DEFAULT UND abort@GLIBC_2.17 (3) - 9: 0000000000000000 0 FUNC GLOBAL DEFAULT UND free@GLIBC_2.17 (3) - 10: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_registerTMCloneTable - 11: 0000000000000000 0 FUNC GLOBAL DEFAULT UND printf@GLIBC_2.17 (3) - -Symbol table '.symtab' contains 92 entries: - Num: Value Size Type Bind Vis Ndx Name - 0: 0000000000000000 0 NOTYPE LOCAL DEFAULT UND - 1: 0000000000000238 0 SECTION LOCAL DEFAULT 1 .interp - 2: 0000000000000254 0 SECTION LOCAL DEFAULT 2 .note.gnu.build-id - 3: 0000000000000278 0 SECTION LOCAL DEFAULT 3 .note.ABI-tag - 4: 0000000000000298 0 SECTION LOCAL DEFAULT 4 .gnu.hash - 5: 00000000000002b8 0 SECTION LOCAL DEFAULT 5 .dynsym - 6: 00000000000003d8 0 SECTION LOCAL DEFAULT 6 .dynstr - 7: 0000000000000478 0 SECTION LOCAL DEFAULT 7 .gnu.version - 8: 0000000000000490 0 SECTION LOCAL DEFAULT 8 .gnu.version_r - 9: 00000000000004c0 0 SECTION LOCAL DEFAULT 9 .rela.dyn - 10: 0000000000000580 0 SECTION LOCAL DEFAULT 10 .rela.plt - 11: 0000000000000628 0 SECTION LOCAL DEFAULT 11 .init - 12: 0000000000000640 0 SECTION LOCAL DEFAULT 12 .plt - 13: 0000000000000700 0 SECTION LOCAL DEFAULT 13 .text - 14: 00000000000008a4 0 SECTION LOCAL DEFAULT 14 .fini - 15: 00000000000008b8 0 SECTION LOCAL DEFAULT 15 .rodata - 16: 00000000000008e0 0 SECTION LOCAL DEFAULT 16 .eh_frame_hdr - 17: 0000000000000920 0 SECTION LOCAL DEFAULT 17 .eh_frame - 18: 0000000000010dc8 0 SECTION LOCAL DEFAULT 18 .init_array - 19: 0000000000010dd0 0 SECTION LOCAL DEFAULT 19 .fini_array - 20: 0000000000010dd8 0 SECTION LOCAL DEFAULT 20 .dynamic - 21: 0000000000010fb8 0 SECTION LOCAL DEFAULT 21 .got - 22: 0000000000010fe8 0 SECTION LOCAL DEFAULT 22 .got.plt - 23: 0000000000011038 0 SECTION LOCAL DEFAULT 23 .data - 24: 0000000000011048 0 SECTION LOCAL DEFAULT 24 .bss - 25: 0000000000000000 0 SECTION LOCAL DEFAULT 25 .comment - 26: 0000000000000000 0 FILE LOCAL DEFAULT ABS Scrt1.o - 27: 0000000000000278 0 NOTYPE LOCAL DEFAULT 3 $d - 28: 0000000000000278 32 OBJECT LOCAL DEFAULT 3 __abi_tag - 29: 0000000000000700 0 NOTYPE LOCAL DEFAULT 13 $x - 30: 0000000000000934 0 NOTYPE LOCAL DEFAULT 17 $d - 31: 00000000000008b8 0 NOTYPE LOCAL DEFAULT 15 $d - 32: 0000000000000000 0 FILE LOCAL DEFAULT ABS crti.o - 33: 0000000000000734 0 NOTYPE LOCAL DEFAULT 13 $x - 34: 0000000000000734 20 FUNC LOCAL DEFAULT 13 call_weak_fn - 35: 0000000000000628 0 NOTYPE LOCAL DEFAULT 11 $x - 36: 00000000000008a4 0 NOTYPE LOCAL DEFAULT 14 $x - 37: 0000000000000000 0 FILE LOCAL DEFAULT ABS crtn.o - 38: 0000000000000638 0 NOTYPE LOCAL DEFAULT 11 $x - 39: 00000000000008b0 0 NOTYPE LOCAL DEFAULT 14 $x - 40: 0000000000000000 0 FILE LOCAL DEFAULT ABS crtstuff.c - 41: 0000000000000750 0 NOTYPE LOCAL DEFAULT 13 $x - 42: 0000000000000750 0 FUNC LOCAL DEFAULT 13 deregister_tm_clones - 43: 0000000000000780 0 FUNC LOCAL DEFAULT 13 register_tm_clones - 44: 0000000000011040 0 NOTYPE LOCAL DEFAULT 23 $d - 45: 00000000000007c0 0 FUNC LOCAL DEFAULT 13 __do_global_dtors_aux - 46: 0000000000011048 1 OBJECT LOCAL DEFAULT 24 completed.0 - 47: 0000000000010dd0 0 NOTYPE LOCAL DEFAULT 19 $d - 48: 0000000000010dd0 0 OBJECT LOCAL DEFAULT 19 __do_global_dtors_aux_fini_array_entry - 49: 0000000000000810 0 FUNC LOCAL DEFAULT 13 frame_dummy - 50: 0000000000010dc8 0 NOTYPE LOCAL DEFAULT 18 $d - 51: 0000000000010dc8 0 OBJECT LOCAL DEFAULT 18 __frame_dummy_init_array_entry - 52: 0000000000000948 0 NOTYPE LOCAL DEFAULT 17 $d - 53: 0000000000011048 0 NOTYPE LOCAL DEFAULT 24 $d - 54: 0000000000000000 0 FILE LOCAL DEFAULT ABS multi_malloc.c - 55: 0000000000000814 0 NOTYPE LOCAL DEFAULT 13 $x.0 - 56: 00000000000008bc 0 NOTYPE LOCAL DEFAULT 15 $d.1 - 57: 000000000000002a 0 NOTYPE LOCAL DEFAULT 25 $d.2 - 58: 00000000000009a8 0 NOTYPE LOCAL DEFAULT 17 $d.3 - 59: 0000000000000000 0 FILE LOCAL DEFAULT ABS crtstuff.c - 60: 00000000000009e4 0 NOTYPE LOCAL DEFAULT 17 $d - 61: 00000000000009e4 0 OBJECT LOCAL DEFAULT 17 __FRAME_END__ - 62: 0000000000000000 0 FILE LOCAL DEFAULT ABS - 63: 0000000000010dd8 0 OBJECT LOCAL DEFAULT ABS _DYNAMIC - 64: 00000000000008e0 0 NOTYPE LOCAL DEFAULT 16 __GNU_EH_FRAME_HDR - 65: 0000000000010fb8 0 OBJECT LOCAL DEFAULT ABS _GLOBAL_OFFSET_TABLE_ - 66: 0000000000000640 0 NOTYPE LOCAL DEFAULT 12 $x - 67: 0000000000000000 0 FUNC GLOBAL DEFAULT UND __libc_start_main@GLIBC_2.34 - 68: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_deregisterTMCloneTable - 69: 0000000000011038 0 NOTYPE WEAK DEFAULT 23 data_start - 70: 0000000000011048 0 NOTYPE GLOBAL DEFAULT 24 __bss_start__ - 71: 0000000000000000 0 FUNC WEAK DEFAULT UND __cxa_finalize@GLIBC_2.17 - 72: 0000000000011050 0 NOTYPE GLOBAL DEFAULT 24 _bss_end__ - 73: 0000000000011048 0 NOTYPE GLOBAL DEFAULT 23 _edata - 74: 00000000000008a4 0 FUNC GLOBAL HIDDEN 14 _fini - 75: 0000000000011050 0 NOTYPE GLOBAL DEFAULT 24 __bss_end__ - 76: 0000000000000000 0 FUNC GLOBAL DEFAULT UND malloc@GLIBC_2.17 - 77: 0000000000011038 0 NOTYPE GLOBAL DEFAULT 23 __data_start - 78: 0000000000000000 0 NOTYPE WEAK DEFAULT UND __gmon_start__ - 79: 0000000000011040 0 OBJECT GLOBAL HIDDEN 23 __dso_handle - 80: 0000000000000000 0 FUNC GLOBAL DEFAULT UND abort@GLIBC_2.17 - 81: 00000000000008b8 4 OBJECT GLOBAL DEFAULT 15 _IO_stdin_used - 82: 0000000000011050 0 NOTYPE GLOBAL DEFAULT 24 _end - 83: 0000000000000000 0 FUNC GLOBAL DEFAULT UND free@GLIBC_2.17 - 84: 0000000000000700 52 FUNC GLOBAL DEFAULT 13 _start - 85: 0000000000011050 0 NOTYPE GLOBAL DEFAULT 24 __end__ - 86: 0000000000011048 0 NOTYPE GLOBAL DEFAULT 24 __bss_start - 87: 0000000000000814 144 FUNC GLOBAL DEFAULT 13 main - 88: 0000000000011048 0 OBJECT GLOBAL HIDDEN 23 __TMC_END__ - 89: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_registerTMCloneTable - 90: 0000000000000000 0 FUNC GLOBAL DEFAULT UND printf@GLIBC_2.17 - 91: 0000000000000628 0 FUNC GLOBAL HIDDEN 11 _init diff --git a/src/test/correct/multi_malloc/clang/multi_malloc_gtirb.expected b/src/test/correct/multi_malloc/clang/multi_malloc_gtirb.expected index 5d39571f6..a19143356 100644 --- a/src/test/correct/multi_malloc/clang/multi_malloc_gtirb.expected +++ b/src/test/correct/multi_malloc/clang/multi_malloc_gtirb.expected @@ -111,7 +111,7 @@ procedure {:extern} rely_reflexive(); procedure {:extern} guarantee_reflexive(); modifies Gamma_mem, mem; -procedure main_2068(); +procedure main(); modifies Gamma_R0, Gamma_R1, Gamma_R16, Gamma_R17, Gamma_R29, Gamma_R30, Gamma_R31, Gamma_R8, Gamma_R9, Gamma_mem, Gamma_stack, R0, R1, R16, R17, R29, R30, R31, R8, R9, mem, stack; free requires (memory_load64_le(mem, 69688bv64) == 0bv64); free requires (memory_load64_le(mem, 69696bv64) == 69696bv64); @@ -146,131 +146,131 @@ procedure main_2068(); free ensures (memory_load64_le(mem, 69592bv64) == 2068bv64); free ensures (memory_load64_le(mem, 69696bv64) == 69696bv64); -implementation main_2068() +implementation main() { - var Cse0__5_3_1: bv64; - var Cse0__5_5_1: bv64; - var Gamma_Cse0__5_3_1: bool; - var Gamma_Cse0__5_5_1: bool; - var Gamma_load10: bool; - var Gamma_load11: bool; - var Gamma_load12: bool; - var Gamma_load13: bool; - var Gamma_load14: bool; - var Gamma_load15: bool; - var Gamma_load16: bool; - var Gamma_load17: bool; - var Gamma_load18: bool; - var Gamma_load8: bool; - var Gamma_load9: bool; - var load10: bv64; - var load11: bv8; - var load12: bv64; - var load13: bv64; - var load14: bv32; - var load15: bv64; - var load16: bv64; - var load17: bv64; - var load18: bv32; - var load8: bv64; - var load9: bv64; - main_2068__0__rJrwEHH7Q82yFH8R8ikgag: - assume {:captureState "main_2068__0__rJrwEHH7Q82yFH8R8ikgag"} true; + var $load10: bv64; + var $load11: bv8; + var $load12: bv64; + var $load13: bv64; + var $load14: bv32; + var $load15: bv64; + var $load16: bv64; + var $load17: bv64; + var $load18: bv32; + var $load8: bv64; + var $load9: bv64; + var Cse0__5$3$1: bv64; + var Cse0__5$5$1: bv64; + var Gamma_$load10: bool; + var Gamma_$load11: bool; + var Gamma_$load12: bool; + var Gamma_$load13: bool; + var Gamma_$load14: bool; + var Gamma_$load15: bool; + var Gamma_$load16: bool; + var Gamma_$load17: bool; + var Gamma_$load18: bool; + var Gamma_$load8: bool; + var Gamma_$load9: bool; + var Gamma_Cse0__5$3$1: bool; + var Gamma_Cse0__5$5$1: bool; + $main$__0__$rJrwEHH7Q82yFH8R8ikgag: + assume {:captureState "$main$__0__$rJrwEHH7Q82yFH8R8ikgag"} true; R31, Gamma_R31 := bvadd64(R31, 18446744073709551568bv64), Gamma_R31; - Cse0__5_3_1, Gamma_Cse0__5_3_1 := bvadd64(R31, 32bv64), Gamma_R31; - stack, Gamma_stack := memory_store64_le(stack, Cse0__5_3_1, R29), gamma_store64(Gamma_stack, Cse0__5_3_1, Gamma_R29); - assume {:captureState "2072_1"} true; - stack, Gamma_stack := memory_store64_le(stack, bvadd64(Cse0__5_3_1, 8bv64), R30), gamma_store64(Gamma_stack, bvadd64(Cse0__5_3_1, 8bv64), Gamma_R30); - assume {:captureState "2072_2"} true; + Cse0__5$3$1, Gamma_Cse0__5$3$1 := bvadd64(R31, 32bv64), Gamma_R31; + stack, Gamma_stack := memory_store64_le(stack, Cse0__5$3$1, R29), gamma_store64(Gamma_stack, Cse0__5$3$1, Gamma_R29); + assume {:captureState "2072$1"} true; + stack, Gamma_stack := memory_store64_le(stack, bvadd64(Cse0__5$3$1, 8bv64), R30), gamma_store64(Gamma_stack, bvadd64(Cse0__5$3$1, 8bv64), Gamma_R30); + assume {:captureState "2072$2"} true; R29, Gamma_R29 := bvadd64(R31, 32bv64), Gamma_R31; R8, Gamma_R8 := 0bv64, true; stack, Gamma_stack := memory_store32_le(stack, bvadd64(R31, 4bv64), R8[32:0]), gamma_store32(Gamma_stack, bvadd64(R31, 4bv64), Gamma_R8); - assume {:captureState "2084_0"} true; + assume {:captureState "2084$0"} true; stack, Gamma_stack := memory_store32_le(stack, bvadd64(R29, 18446744073709551612bv64), 0bv32), gamma_store32(Gamma_stack, bvadd64(R29, 18446744073709551612bv64), true); - assume {:captureState "2088_0"} true; + assume {:captureState "2088$0"} true; R0, Gamma_R0 := 1bv64, true; R30, Gamma_R30 := 2100bv64, true; - call FUN_680_1664(); - goto main_2068__1__tUCvozcRRoOvSNkfyBzGow; - main_2068__1__tUCvozcRRoOvSNkfyBzGow: - assume {:captureState "main_2068__1__tUCvozcRRoOvSNkfyBzGow"} true; + call FUN_680(); + goto $main$__1__$tUCvozcRRoOvSNkfyBzGow; + $main$__1__$tUCvozcRRoOvSNkfyBzGow: + assume {:captureState "$main$__1__$tUCvozcRRoOvSNkfyBzGow"} true; stack, Gamma_stack := memory_store64_le(stack, bvadd64(R31, 16bv64), R0), gamma_store64(Gamma_stack, bvadd64(R31, 16bv64), Gamma_R0); - assume {:captureState "2100_0"} true; + assume {:captureState "2100$0"} true; R0, Gamma_R0 := 4bv64, true; R30, Gamma_R30 := 2112bv64, true; - call FUN_680_1664(); - goto main_2068__2__~rbIOEybSQ2ZVy7pglbk3Q; - main_2068__2__~rbIOEybSQ2ZVy7pglbk3Q: - assume {:captureState "main_2068__2__~rbIOEybSQ2ZVy7pglbk3Q"} true; + call FUN_680(); + goto $main$__2__$~rbIOEybSQ2ZVy7pglbk3Q; + $main$__2__$~rbIOEybSQ2ZVy7pglbk3Q: + assume {:captureState "$main$__2__$~rbIOEybSQ2ZVy7pglbk3Q"} true; stack, Gamma_stack := memory_store64_le(stack, bvadd64(R31, 8bv64), R0), gamma_store64(Gamma_stack, bvadd64(R31, 8bv64), Gamma_R0); - assume {:captureState "2112_0"} true; - load8, Gamma_load8 := memory_load64_le(stack, bvadd64(R31, 16bv64)), gamma_load64(Gamma_stack, bvadd64(R31, 16bv64)); - R9, Gamma_R9 := load8, Gamma_load8; + assume {:captureState "2112$0"} true; + $load8, Gamma_$load8 := memory_load64_le(stack, bvadd64(R31, 16bv64)), gamma_load64(Gamma_stack, bvadd64(R31, 16bv64)); + R9, Gamma_R9 := $load8, Gamma_$load8; R8, Gamma_R8 := 65bv64, true; call rely(); assert (L(mem, R9) ==> Gamma_R8); mem, Gamma_mem := memory_store8_le(mem, R9, R8[8:0]), gamma_store8(Gamma_mem, R9, Gamma_R8); - assume {:captureState "2124_0"} true; - load9, Gamma_load9 := memory_load64_le(stack, bvadd64(R31, 8bv64)), gamma_load64(Gamma_stack, bvadd64(R31, 8bv64)); - R9, Gamma_R9 := load9, Gamma_load9; + assume {:captureState "2124$0"} true; + $load9, Gamma_$load9 := memory_load64_le(stack, bvadd64(R31, 8bv64)), gamma_load64(Gamma_stack, bvadd64(R31, 8bv64)); + R9, Gamma_R9 := $load9, Gamma_$load9; R8, Gamma_R8 := 42bv64, true; call rely(); assert (L(mem, R9) ==> Gamma_R8); mem, Gamma_mem := memory_store32_le(mem, R9, R8[32:0]), gamma_store32(Gamma_mem, R9, Gamma_R8); - assume {:captureState "2136_0"} true; - load10, Gamma_load10 := memory_load64_le(stack, bvadd64(R31, 16bv64)), gamma_load64(Gamma_stack, bvadd64(R31, 16bv64)); - R8, Gamma_R8 := load10, Gamma_load10; + assume {:captureState "2136$0"} true; + $load10, Gamma_$load10 := memory_load64_le(stack, bvadd64(R31, 16bv64)), gamma_load64(Gamma_stack, bvadd64(R31, 16bv64)); + R8, Gamma_R8 := $load10, Gamma_$load10; call rely(); - load11, Gamma_load11 := memory_load8_le(mem, R8), (gamma_load8(Gamma_mem, R8) || L(mem, R8)); - R1, Gamma_R1 := zero_extend32_32(zero_extend24_8(load11)), Gamma_load11; + $load11, Gamma_$load11 := memory_load8_le(mem, R8), (gamma_load8(Gamma_mem, R8) || L(mem, R8)); + R1, Gamma_R1 := zero_extend32_32(zero_extend24_8($load11)), Gamma_$load11; R0, Gamma_R0 := 0bv64, true; R0, Gamma_R0 := bvadd64(R0, 2236bv64), Gamma_R0; R30, Gamma_R30 := 2160bv64, true; - call FUN_6c0_1728(); - goto main_2068__3__ioncN2xEQpKeAoUViDvFEQ; - main_2068__3__ioncN2xEQpKeAoUViDvFEQ: - assume {:captureState "main_2068__3__ioncN2xEQpKeAoUViDvFEQ"} true; - load17, Gamma_load17 := memory_load64_le(stack, bvadd64(R31, 8bv64)), gamma_load64(Gamma_stack, bvadd64(R31, 8bv64)); - R8, Gamma_R8 := load17, Gamma_load17; + call FUN_6c0(); + goto $main$__3__$ioncN2xEQpKeAoUViDvFEQ; + $main$__3__$ioncN2xEQpKeAoUViDvFEQ: + assume {:captureState "$main$__3__$ioncN2xEQpKeAoUViDvFEQ"} true; + $load17, Gamma_$load17 := memory_load64_le(stack, bvadd64(R31, 8bv64)), gamma_load64(Gamma_stack, bvadd64(R31, 8bv64)); + R8, Gamma_R8 := $load17, Gamma_$load17; call rely(); - load18, Gamma_load18 := memory_load32_le(mem, R8), (gamma_load32(Gamma_mem, R8) || L(mem, R8)); - R1, Gamma_R1 := zero_extend32_32(load18), Gamma_load18; + $load18, Gamma_$load18 := memory_load32_le(mem, R8), (gamma_load32(Gamma_mem, R8) || L(mem, R8)); + R1, Gamma_R1 := zero_extend32_32($load18), Gamma_$load18; R0, Gamma_R0 := 0bv64, true; R0, Gamma_R0 := bvadd64(R0, 2253bv64), Gamma_R0; R30, Gamma_R30 := 2180bv64, true; - call FUN_6c0_1728(); - goto main_2068__4__RDsizvM6Rs2uP1PoNQRqUw; - main_2068__4__RDsizvM6Rs2uP1PoNQRqUw: - assume {:captureState "main_2068__4__RDsizvM6Rs2uP1PoNQRqUw"} true; - load13, Gamma_load13 := memory_load64_le(stack, bvadd64(R31, 16bv64)), gamma_load64(Gamma_stack, bvadd64(R31, 16bv64)); - R0, Gamma_R0 := load13, Gamma_load13; + call FUN_6c0(); + goto $main$__4__$RDsizvM6Rs2uP1PoNQRqUw; + $main$__4__$RDsizvM6Rs2uP1PoNQRqUw: + assume {:captureState "$main$__4__$RDsizvM6Rs2uP1PoNQRqUw"} true; + $load13, Gamma_$load13 := memory_load64_le(stack, bvadd64(R31, 16bv64)), gamma_load64(Gamma_stack, bvadd64(R31, 16bv64)); + R0, Gamma_R0 := $load13, Gamma_$load13; R30, Gamma_R30 := 2188bv64, true; - call FUN_6b0_1712(); - goto main_2068__5__XLbDejiVSoaQEuwh3~~Wuw; - main_2068__5__XLbDejiVSoaQEuwh3~~Wuw: - assume {:captureState "main_2068__5__XLbDejiVSoaQEuwh3~~Wuw"} true; - load12, Gamma_load12 := memory_load64_le(stack, bvadd64(R31, 8bv64)), gamma_load64(Gamma_stack, bvadd64(R31, 8bv64)); - R0, Gamma_R0 := load12, Gamma_load12; + call FUN_6b0(); + goto $main$__5__$XLbDejiVSoaQEuwh3~~Wuw; + $main$__5__$XLbDejiVSoaQEuwh3~~Wuw: + assume {:captureState "$main$__5__$XLbDejiVSoaQEuwh3~~Wuw"} true; + $load12, Gamma_$load12 := memory_load64_le(stack, bvadd64(R31, 8bv64)), gamma_load64(Gamma_stack, bvadd64(R31, 8bv64)); + R0, Gamma_R0 := $load12, Gamma_$load12; R30, Gamma_R30 := 2196bv64, true; - call FUN_6b0_1712(); - goto main_2068__6___atEl4xoTOCpT5EUBgYVEg; - main_2068__6___atEl4xoTOCpT5EUBgYVEg: - assume {:captureState "main_2068__6___atEl4xoTOCpT5EUBgYVEg"} true; - load14, Gamma_load14 := memory_load32_le(stack, bvadd64(R31, 4bv64)), gamma_load32(Gamma_stack, bvadd64(R31, 4bv64)); - R0, Gamma_R0 := zero_extend32_32(load14), Gamma_load14; - Cse0__5_5_1, Gamma_Cse0__5_5_1 := bvadd64(R31, 32bv64), Gamma_R31; - load15, Gamma_load15 := memory_load64_le(stack, Cse0__5_5_1), gamma_load64(Gamma_stack, Cse0__5_5_1); - R29, Gamma_R29 := load15, Gamma_load15; - load16, Gamma_load16 := memory_load64_le(stack, bvadd64(Cse0__5_5_1, 8bv64)), gamma_load64(Gamma_stack, bvadd64(Cse0__5_5_1, 8bv64)); - R30, Gamma_R30 := load16, Gamma_load16; + call FUN_6b0(); + goto $main$__6__$_atEl4xoTOCpT5EUBgYVEg; + $main$__6__$_atEl4xoTOCpT5EUBgYVEg: + assume {:captureState "$main$__6__$_atEl4xoTOCpT5EUBgYVEg"} true; + $load14, Gamma_$load14 := memory_load32_le(stack, bvadd64(R31, 4bv64)), gamma_load32(Gamma_stack, bvadd64(R31, 4bv64)); + R0, Gamma_R0 := zero_extend32_32($load14), Gamma_$load14; + Cse0__5$5$1, Gamma_Cse0__5$5$1 := bvadd64(R31, 32bv64), Gamma_R31; + $load15, Gamma_$load15 := memory_load64_le(stack, Cse0__5$5$1), gamma_load64(Gamma_stack, Cse0__5$5$1); + R29, Gamma_R29 := $load15, Gamma_$load15; + $load16, Gamma_$load16 := memory_load64_le(stack, bvadd64(Cse0__5$5$1, 8bv64)), gamma_load64(Gamma_stack, bvadd64(Cse0__5$5$1, 8bv64)); + R30, Gamma_R30 := $load16, Gamma_$load16; R31, Gamma_R31 := bvadd64(R31, 48bv64), Gamma_R31; - goto main_2068_basil_return; - main_2068_basil_return: - assume {:captureState "main_2068_basil_return"} true; + goto main_basil_return; + main_basil_return: + assume {:captureState "main_basil_return"} true; return; } -procedure FUN_6b0_1712(); +procedure FUN_6b0(); modifies Gamma_R16, Gamma_R17, Gamma_mem, R16, R17, mem; free requires (memory_load64_le(mem, 2232bv64) == 2334386691848142849bv64); free requires (memory_load64_le(mem, 2240bv64) == 4211825664600402019bv64); @@ -299,25 +299,22 @@ procedure FUN_6b0_1712(); free ensures (memory_load64_le(mem, 69592bv64) == 2068bv64); free ensures (memory_load64_le(mem, 69696bv64) == 69696bv64); -implementation FUN_6b0_1712() +implementation FUN_6b0() { - var Gamma_load28: bool; - var load28: bv64; - FUN_6b0_1712__0__anzTk9j8RqWD4tIwhKfzRQ: - assume {:captureState "FUN_6b0_1712__0__anzTk9j8RqWD4tIwhKfzRQ"} true; + var $load28: bv64; + var Gamma_$load28: bool; + $FUN_6b0$__0__$anzTk9j8RqWD4tIwhKfzRQ: + assume {:captureState "$FUN_6b0$__0__$anzTk9j8RqWD4tIwhKfzRQ"} true; R16, Gamma_R16 := 69632bv64, true; call rely(); - load28, Gamma_load28 := memory_load64_le(mem, bvadd64(R16, 40bv64)), (gamma_load64(Gamma_mem, bvadd64(R16, 40bv64)) || L(mem, bvadd64(R16, 40bv64))); - R17, Gamma_R17 := load28, Gamma_load28; + $load28, Gamma_$load28 := memory_load64_le(mem, bvadd64(R16, 40bv64)), (gamma_load64(Gamma_mem, bvadd64(R16, 40bv64)) || L(mem, bvadd64(R16, 40bv64))); + R17, Gamma_R17 := $load28, Gamma_$load28; R16, Gamma_R16 := bvadd64(R16, 40bv64), Gamma_R16; call #free(); - goto FUN_6b0_1712_basil_return; - FUN_6b0_1712_basil_return: - assume {:captureState "FUN_6b0_1712_basil_return"} true; - return; + assume false; } -procedure FUN_680_1664(); +procedure FUN_680(); modifies Gamma_R16, Gamma_R17, Gamma_mem, R16, R17, mem; free requires (memory_load64_le(mem, 2232bv64) == 2334386691848142849bv64); free requires (memory_load64_le(mem, 2240bv64) == 4211825664600402019bv64); @@ -346,25 +343,22 @@ procedure FUN_680_1664(); free ensures (memory_load64_le(mem, 69592bv64) == 2068bv64); free ensures (memory_load64_le(mem, 69696bv64) == 69696bv64); -implementation FUN_680_1664() +implementation FUN_680() { - var Gamma_load31: bool; - var load31: bv64; - FUN_680_1664__0__tdGxah9RStWBBxOs4YOZUA: - assume {:captureState "FUN_680_1664__0__tdGxah9RStWBBxOs4YOZUA"} true; + var $load31: bv64; + var Gamma_$load31: bool; + $FUN_680$__0__$tdGxah9RStWBBxOs4YOZUA: + assume {:captureState "$FUN_680$__0__$tdGxah9RStWBBxOs4YOZUA"} true; R16, Gamma_R16 := 69632bv64, true; call rely(); - load31, Gamma_load31 := memory_load64_le(mem, bvadd64(R16, 16bv64)), (gamma_load64(Gamma_mem, bvadd64(R16, 16bv64)) || L(mem, bvadd64(R16, 16bv64))); - R17, Gamma_R17 := load31, Gamma_load31; + $load31, Gamma_$load31 := memory_load64_le(mem, bvadd64(R16, 16bv64)), (gamma_load64(Gamma_mem, bvadd64(R16, 16bv64)) || L(mem, bvadd64(R16, 16bv64))); + R17, Gamma_R17 := $load31, Gamma_$load31; R16, Gamma_R16 := bvadd64(R16, 16bv64), Gamma_R16; call malloc(); - goto FUN_680_1664_basil_return; - FUN_680_1664_basil_return: - assume {:captureState "FUN_680_1664_basil_return"} true; - return; + assume false; } -procedure FUN_6c0_1728(); +procedure FUN_6c0(); modifies Gamma_R16, Gamma_R17, Gamma_mem, R16, R17, mem; free requires (memory_load64_le(mem, 2232bv64) == 2334386691848142849bv64); free requires (memory_load64_le(mem, 2240bv64) == 4211825664600402019bv64); @@ -393,22 +387,19 @@ procedure FUN_6c0_1728(); free ensures (memory_load64_le(mem, 69592bv64) == 2068bv64); free ensures (memory_load64_le(mem, 69696bv64) == 69696bv64); -implementation FUN_6c0_1728() +implementation FUN_6c0() { - var Gamma_load33: bool; - var load33: bv64; - FUN_6c0_1728__0__Buk7BXt9RGSvhsDcbjEctg: - assume {:captureState "FUN_6c0_1728__0__Buk7BXt9RGSvhsDcbjEctg"} true; + var $load33: bv64; + var Gamma_$load33: bool; + $FUN_6c0$__0__$Buk7BXt9RGSvhsDcbjEctg: + assume {:captureState "$FUN_6c0$__0__$Buk7BXt9RGSvhsDcbjEctg"} true; R16, Gamma_R16 := 69632bv64, true; call rely(); - load33, Gamma_load33 := memory_load64_le(mem, bvadd64(R16, 48bv64)), (gamma_load64(Gamma_mem, bvadd64(R16, 48bv64)) || L(mem, bvadd64(R16, 48bv64))); - R17, Gamma_R17 := load33, Gamma_load33; + $load33, Gamma_$load33 := memory_load64_le(mem, bvadd64(R16, 48bv64)), (gamma_load64(Gamma_mem, bvadd64(R16, 48bv64)) || L(mem, bvadd64(R16, 48bv64))); + R17, Gamma_R17 := $load33, Gamma_$load33; R16, Gamma_R16 := bvadd64(R16, 48bv64), Gamma_R16; call printf(); - goto FUN_6c0_1728_basil_return; - FUN_6c0_1728_basil_return: - assume {:captureState "FUN_6c0_1728_basil_return"} true; - return; + assume false; } procedure #free(); diff --git a/src/test/correct/multi_malloc/gcc/multi_malloc.adt b/src/test/correct/multi_malloc/gcc/multi_malloc.adt deleted file mode 100644 index c29ba992c..000000000 --- a/src/test/correct/multi_malloc/gcc/multi_malloc.adt +++ /dev/null @@ -1,657 +0,0 @@ -Project(Attrs([Attr("filename","\"gcc/multi_malloc.out\""), -Attr("image-specification","(declare abi (name str))\n(declare arch (name str))\n(declare base-address (addr int))\n(declare bias (off int))\n(declare bits (size int))\n(declare code-region (addr int) (size int) (off int))\n(declare code-start (addr int))\n(declare entry-point (addr int))\n(declare external-reference (addr int) (name str))\n(declare format (name str))\n(declare is-executable (flag bool))\n(declare is-little-endian (flag bool))\n(declare llvm:base-address (addr int))\n(declare llvm:code-entry (name str) (off int) (size int))\n(declare llvm:coff-import-library (name str))\n(declare llvm:coff-virtual-section-header (name str) (addr int) (size int))\n(declare llvm:elf-program-header (name str) (off int) (size int))\n(declare llvm:elf-program-header-flags (name str) (ld bool) (r bool) \n (w bool) (x bool))\n(declare llvm:elf-virtual-program-header (name str) (addr int) (size int))\n(declare llvm:entry-point (addr int))\n(declare llvm:macho-symbol (name str) (value int))\n(declare llvm:name-reference (at int) (name str))\n(declare llvm:relocation (at int) (addr int))\n(declare llvm:section-entry (name str) (addr int) (size int) (off int))\n(declare llvm:section-flags (name str) (r bool) (w bool) (x bool))\n(declare llvm:segment-command (name str) (off int) (size int))\n(declare llvm:segment-command-flags (name str) (r bool) (w bool) (x bool))\n(declare llvm:symbol-entry (name str) (addr int) (size int) (off int)\n (value int))\n(declare llvm:virtual-segment-command (name str) (addr int) (size int))\n(declare mapped (addr int) (size int) (off int))\n(declare named-region (addr int) (size int) (name str))\n(declare named-symbol (addr int) (name str))\n(declare require (name str))\n(declare section (addr int) (size int))\n(declare segment (addr int) (size int) (r bool) (w bool) (x bool))\n(declare subarch (name str))\n(declare symbol-chunk (addr int) (size int) (root int))\n(declare symbol-value (addr int) (value int))\n(declare system (name str))\n(declare vendor (name str))\n\n(abi unknown)\n(arch aarch64)\n(base-address 0)\n(bias 0)\n(bits 64)\n(code-region 2200 20 2200)\n(code-region 1792 408 1792)\n(code-region 1600 144 1600)\n(code-region 1576 24 1576)\n(code-start 1844)\n(code-start 1792)\n(code-start 2068)\n(entry-point 1792)\n(external-reference 69592 _ITM_deregisterTMCloneTable)\n(external-reference 69600 __cxa_finalize)\n(external-reference 69608 __gmon_start__)\n(external-reference 69624 _ITM_registerTMCloneTable)\n(external-reference 69528 __libc_start_main)\n(external-reference 69536 __cxa_finalize)\n(external-reference 69544 malloc)\n(external-reference 69552 __gmon_start__)\n(external-reference 69560 abort)\n(external-reference 69568 free)\n(external-reference 69576 printf)\n(format elf)\n(is-executable true)\n(is-little-endian true)\n(llvm:base-address 0)\n(llvm:code-entry printf 0 0)\n(llvm:code-entry free 0 0)\n(llvm:code-entry abort 0 0)\n(llvm:code-entry malloc 0 0)\n(llvm:code-entry __cxa_finalize 0 0)\n(llvm:code-entry __libc_start_main 0 0)\n(llvm:code-entry _init 1576 0)\n(llvm:code-entry printf@GLIBC_2.17 0 0)\n(llvm:code-entry main 2068 132)\n(llvm:code-entry _start 1792 52)\n(llvm:code-entry free@GLIBC_2.17 0 0)\n(llvm:code-entry abort@GLIBC_2.17 0 0)\n(llvm:code-entry malloc@GLIBC_2.17 0 0)\n(llvm:code-entry _fini 2200 0)\n(llvm:code-entry __cxa_finalize@GLIBC_2.17 0 0)\n(llvm:code-entry __libc_start_main@GLIBC_2.34 0 0)\n(llvm:code-entry frame_dummy 2064 0)\n(llvm:code-entry __do_global_dtors_aux 1984 0)\n(llvm:code-entry register_tm_clones 1920 0)\n(llvm:code-entry deregister_tm_clones 1872 0)\n(llvm:code-entry call_weak_fn 1844 20)\n(llvm:code-entry .fini 2200 20)\n(llvm:code-entry .text 1792 408)\n(llvm:code-entry .plt 1600 144)\n(llvm:code-entry .init 1576 24)\n(llvm:elf-program-header 08 3456 640)\n(llvm:elf-program-header 07 0 0)\n(llvm:elf-program-header 06 2272 60)\n(llvm:elf-program-header 05 596 68)\n(llvm:elf-program-header 04 3472 496)\n(llvm:elf-program-header 03 3456 656)\n(llvm:elf-program-header 02 0 2508)\n(llvm:elf-program-header 01 568 27)\n(llvm:elf-program-header 00 64 504)\n(llvm:elf-program-header-flags 08 false true false false)\n(llvm:elf-program-header-flags 07 false true true false)\n(llvm:elf-program-header-flags 06 false true false false)\n(llvm:elf-program-header-flags 05 false true false false)\n(llvm:elf-program-header-flags 04 false true true false)\n(llvm:elf-program-header-flags 03 true true true false)\n(llvm:elf-program-header-flags 02 true true false true)\n(llvm:elf-program-header-flags 01 false true false false)\n(llvm:elf-program-header-flags 00 false true false false)\n(llvm:elf-virtual-program-header 08 68992 640)\n(llvm:elf-virtual-program-header 07 0 0)\n(llvm:elf-virtual-program-header 06 2272 60)\n(llvm:elf-virtual-program-header 05 596 68)\n(llvm:elf-virtual-program-header 04 69008 496)\n(llvm:elf-virtual-program-header 03 68992 664)\n(llvm:elf-virtual-program-header 02 0 2508)\n(llvm:elf-virtual-program-header 01 568 27)\n(llvm:elf-virtual-program-header 00 64 504)\n(llvm:entry-point 1792)\n(llvm:name-reference 69576 printf)\n(llvm:name-reference 69568 free)\n(llvm:name-reference 69560 abort)\n(llvm:name-reference 69552 __gmon_start__)\n(llvm:name-reference 69544 malloc)\n(llvm:name-reference 69536 __cxa_finalize)\n(llvm:name-reference 69528 __libc_start_main)\n(llvm:name-reference 69624 _ITM_registerTMCloneTable)\n(llvm:name-reference 69608 __gmon_start__)\n(llvm:name-reference 69600 __cxa_finalize)\n(llvm:name-reference 69592 _ITM_deregisterTMCloneTable)\n(llvm:section-entry .shstrtab 0 250 6920)\n(llvm:section-entry .strtab 0 600 6320)\n(llvm:section-entry .symtab 0 2160 4160)\n(llvm:section-entry .comment 0 43 4112)\n(llvm:section-entry .bss 69648 8 4112)\n(llvm:section-entry .data 69632 16 4096)\n(llvm:section-entry .got 69504 128 3968)\n(llvm:section-entry .dynamic 69008 496 3472)\n(llvm:section-entry .fini_array 69000 8 3464)\n(llvm:section-entry .init_array 68992 8 3456)\n(llvm:section-entry .eh_frame 2336 172 2336)\n(llvm:section-entry .eh_frame_hdr 2272 60 2272)\n(llvm:section-entry .rodata 2224 48 2224)\n(llvm:section-entry .fini 2200 20 2200)\n(llvm:section-entry .text 1792 408 1792)\n(llvm:section-entry .plt 1600 144 1600)\n(llvm:section-entry .init 1576 24 1576)\n(llvm:section-entry .rela.plt 1408 168 1408)\n(llvm:section-entry .rela.dyn 1216 192 1216)\n(llvm:section-entry .gnu.version_r 1168 48 1168)\n(llvm:section-entry .gnu.version 1144 24 1144)\n(llvm:section-entry .dynstr 984 160 984)\n(llvm:section-entry .dynsym 696 288 696)\n(llvm:section-entry .gnu.hash 664 28 664)\n(llvm:section-entry .note.ABI-tag 632 32 632)\n(llvm:section-entry .note.gnu.build-id 596 36 596)\n(llvm:section-entry .interp 568 27 568)\n(llvm:section-flags .shstrtab true false false)\n(llvm:section-flags .strtab true false false)\n(llvm:section-flags .symtab true false false)\n(llvm:section-flags .comment true false false)\n(llvm:section-flags .bss true true false)\n(llvm:section-flags .data true true false)\n(llvm:section-flags .got true true false)\n(llvm:section-flags .dynamic true true false)\n(llvm:section-flags .fini_array true true false)\n(llvm:section-flags .init_array true true false)\n(llvm:section-flags .eh_frame true false false)\n(llvm:section-flags .eh_frame_hdr true false false)\n(llvm:section-flags .rodata true false false)\n(llvm:section-flags .fini true false true)\n(llvm:section-flags .text true false true)\n(llvm:section-flags .plt true false true)\n(llvm:section-flags .init true false true)\n(llvm:section-flags .rela.plt true false false)\n(llvm:section-flags .rela.dyn true false false)\n(llvm:section-flags .gnu.version_r true false false)\n(llvm:section-flags .gnu.version true false false)\n(llvm:section-flags .dynstr true false false)\n(llvm:section-flags .dynsym true false false)\n(llvm:section-flags .gnu.hash true false false)\n(llvm:section-flags .note.ABI-tag true false false)\n(llvm:section-flags .note.gnu.build-id true false false)\n(llvm:section-flags .interp true false false)\n(llvm:symbol-entry printf 0 0 0 0)\n(llvm:symbol-entry free 0 0 0 0)\n(llvm:symbol-entry abort 0 0 0 0)\n(llvm:symbol-entry malloc 0 0 0 0)\n(llvm:symbol-entry __cxa_finalize 0 0 0 0)\n(llvm:symbol-entry __libc_start_main 0 0 0 0)\n(llvm:symbol-entry _init 1576 0 1576 1576)\n(llvm:symbol-entry printf@GLIBC_2.17 0 0 0 0)\n(llvm:symbol-entry main 2068 132 2068 2068)\n(llvm:symbol-entry _start 1792 52 1792 1792)\n(llvm:symbol-entry free@GLIBC_2.17 0 0 0 0)\n(llvm:symbol-entry abort@GLIBC_2.17 0 0 0 0)\n(llvm:symbol-entry malloc@GLIBC_2.17 0 0 0 0)\n(llvm:symbol-entry _fini 2200 0 2200 2200)\n(llvm:symbol-entry __cxa_finalize@GLIBC_2.17 0 0 0 0)\n(llvm:symbol-entry __libc_start_main@GLIBC_2.34 0 0 0 0)\n(llvm:symbol-entry frame_dummy 2064 0 2064 2064)\n(llvm:symbol-entry __do_global_dtors_aux 1984 0 1984 1984)\n(llvm:symbol-entry register_tm_clones 1920 0 1920 1920)\n(llvm:symbol-entry deregister_tm_clones 1872 0 1872 1872)\n(llvm:symbol-entry call_weak_fn 1844 20 1844 1844)\n(mapped 0 2508 0)\n(mapped 68992 656 3456)\n(named-region 0 2508 02)\n(named-region 68992 664 03)\n(named-region 568 27 .interp)\n(named-region 596 36 .note.gnu.build-id)\n(named-region 632 32 .note.ABI-tag)\n(named-region 664 28 .gnu.hash)\n(named-region 696 288 .dynsym)\n(named-region 984 160 .dynstr)\n(named-region 1144 24 .gnu.version)\n(named-region 1168 48 .gnu.version_r)\n(named-region 1216 192 .rela.dyn)\n(named-region 1408 168 .rela.plt)\n(named-region 1576 24 .init)\n(named-region 1600 144 .plt)\n(named-region 1792 408 .text)\n(named-region 2200 20 .fini)\n(named-region 2224 48 .rodata)\n(named-region 2272 60 .eh_frame_hdr)\n(named-region 2336 172 .eh_frame)\n(named-region 68992 8 .init_array)\n(named-region 69000 8 .fini_array)\n(named-region 69008 496 .dynamic)\n(named-region 69504 128 .got)\n(named-region 69632 16 .data)\n(named-region 69648 8 .bss)\n(named-region 0 43 .comment)\n(named-region 0 2160 .symtab)\n(named-region 0 600 .strtab)\n(named-region 0 250 .shstrtab)\n(named-symbol 1844 call_weak_fn)\n(named-symbol 1872 deregister_tm_clones)\n(named-symbol 1920 register_tm_clones)\n(named-symbol 1984 __do_global_dtors_aux)\n(named-symbol 2064 frame_dummy)\n(named-symbol 0 __libc_start_main@GLIBC_2.34)\n(named-symbol 0 __cxa_finalize@GLIBC_2.17)\n(named-symbol 2200 _fini)\n(named-symbol 0 malloc@GLIBC_2.17)\n(named-symbol 0 abort@GLIBC_2.17)\n(named-symbol 0 free@GLIBC_2.17)\n(named-symbol 1792 _start)\n(named-symbol 2068 main)\n(named-symbol 0 printf@GLIBC_2.17)\n(named-symbol 1576 _init)\n(named-symbol 0 __libc_start_main)\n(named-symbol 0 __cxa_finalize)\n(named-symbol 0 malloc)\n(named-symbol 0 abort)\n(named-symbol 0 free)\n(named-symbol 0 printf)\n(require libc.so.6)\n(section 568 27)\n(section 596 36)\n(section 632 32)\n(section 664 28)\n(section 696 288)\n(section 984 160)\n(section 1144 24)\n(section 1168 48)\n(section 1216 192)\n(section 1408 168)\n(section 1576 24)\n(section 1600 144)\n(section 1792 408)\n(section 2200 20)\n(section 2224 48)\n(section 2272 60)\n(section 2336 172)\n(section 68992 8)\n(section 69000 8)\n(section 69008 496)\n(section 69504 128)\n(section 69632 16)\n(section 69648 8)\n(section 0 43)\n(section 0 2160)\n(section 0 600)\n(section 0 250)\n(segment 0 2508 true false true)\n(segment 68992 664 true true false)\n(subarch v8)\n(symbol-chunk 1844 20 1844)\n(symbol-chunk 1792 52 1792)\n(symbol-chunk 2068 132 2068)\n(symbol-value 1844 1844)\n(symbol-value 1872 1872)\n(symbol-value 1920 1920)\n(symbol-value 1984 1984)\n(symbol-value 2064 2064)\n(symbol-value 2200 2200)\n(symbol-value 1792 1792)\n(symbol-value 2068 2068)\n(symbol-value 1576 1576)\n(symbol-value 0 0)\n(system \"\")\n(vendor \"\")\n"), -Attr("abi-name","\"aarch64-linux-gnu-elf\"")]), -Sections([Section(".shstrtab", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x08\x1c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x38\x00\x09\x00\x40\x00\x1c\x00\x1b\x00\x06\x00\x00\x00\x04\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x04\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xcc\x09\x00\x00\x00\x00\x00\x00\xcc\x09\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x01\x00\x00\x00\x06\x00\x00\x00\x80\x0d\x00\x00\x00\x00\x00\x00\x80\x0d"), -Section(".strtab", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x08\x1c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x38\x00\x09\x00\x40\x00\x1c\x00\x1b\x00\x06\x00\x00\x00\x04\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x04\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xcc\x09\x00\x00\x00\x00\x00\x00\xcc\x09\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x01\x00\x00\x00\x06\x00\x00\x00\x80\x0d\x00\x00\x00\x00\x00\x00\x80\x0d\x01\x00\x00\x00\x00\x00\x80\x0d\x01\x00\x00\x00\x00\x00\x90\x02\x00\x00\x00\x00\x00\x00\x98\x02\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x02\x00\x00\x00\x06\x00\x00\x00\x90\x0d\x00\x00\x00\x00\x00\x00\x90\x0d\x01\x00\x00\x00\x00\x00\x90\x0d\x01\x00\x00\x00\x00\x00\xf0\x01\x00\x00\x00\x00\x00\x00\xf0\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x04\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x50\xe5\x74\x64\x04\x00\x00\x00\xe0\x08\x00\x00\x00\x00\x00\x00\xe0\x08\x00\x00\x00\x00\x00\x00\xe0\x08\x00\x00\x00\x00\x00\x00\x3c\x00\x00\x00\x00\x00\x00\x00\x3c\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x51\xe5\x74\x64\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x52\xe5\x74\x64\x04\x00\x00\x00\x80\x0d\x00\x00\x00\x00\x00\x00\x80\x0d\x01\x00\x00\x00\x00\x00\x80\x0d\x01\x00\x00\x00\x00\x00\x80\x02\x00\x00\x00\x00\x00\x00\x80\x02\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x2f\x6c\x69\x62\x2f\x6c\x64\x2d\x6c\x69\x6e\x75\x78\x2d\x61\x61\x72\x63\x68\x36\x34\x2e\x73\x6f\x2e\x31\x00\x00\x04\x00\x00\x00"), -Section(".symtab", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x08\x1c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x38\x00\x09\x00\x40\x00\x1c\x00\x1b\x00\x06\x00\x00\x00\x04\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x04\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xcc\x09\x00\x00\x00\x00\x00\x00\xcc\x09\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x01\x00\x00\x00\x06\x00\x00\x00\x80\x0d\x00\x00\x00\x00\x00\x00\x80\x0d\x01\x00\x00\x00\x00\x00\x80\x0d\x01\x00\x00\x00\x00\x00\x90\x02\x00\x00\x00\x00\x00\x00\x98\x02\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x02\x00\x00\x00\x06\x00\x00\x00\x90\x0d\x00\x00\x00\x00\x00\x00\x90\x0d\x01\x00\x00\x00\x00\x00\x90\x0d\x01\x00\x00\x00\x00\x00\xf0\x01\x00\x00\x00\x00\x00\x00\xf0\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x04\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x50\xe5\x74\x64\x04\x00\x00\x00\xe0\x08\x00\x00\x00\x00\x00\x00\xe0\x08\x00\x00\x00\x00\x00\x00\xe0\x08\x00\x00\x00\x00\x00\x00\x3c\x00\x00\x00\x00\x00\x00\x00\x3c\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x51\xe5\x74\x64\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x52\xe5\x74\x64\x04\x00\x00\x00\x80\x0d\x00\x00\x00\x00\x00\x00\x80\x0d\x01\x00\x00\x00\x00\x00\x80\x0d\x01\x00\x00\x00\x00\x00\x80\x02\x00\x00\x00\x00\x00\x00\x80\x02\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x2f\x6c\x69\x62\x2f\x6c\x64\x2d\x6c\x69\x6e\x75\x78\x2d\x61\x61\x72\x63\x68\x36\x34\x2e\x73\x6f\x2e\x31\x00\x00\x04\x00\x00\x00\x14\x00\x00\x00\x03\x00\x00\x00\x47\x4e\x55\x00\x26\x99\x9b\x19\x23\x1c\x35\x3a\x1e\x79\x53\x38\xb8\x5d\xf4\x81\xe1\x2b\x55\xaf\x04\x00\x00\x00\x10\x00\x00\x00\x01\x00\x00\x00\x47\x4e\x55\x00\x00\x00\x00\x00\x03\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x01\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x0b\x00\x28\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x16\x00\x00\x10\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x17\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5b\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x22\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x77\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2e\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x29\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x86\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x34\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5f\x5f\x63\x78\x61\x5f\x66\x69\x6e\x61\x6c\x69\x7a\x65\x00\x6d\x61\x6c\x6c\x6f\x63\x00\x5f\x5f\x6c\x69\x62\x63\x5f\x73\x74\x61\x72\x74\x5f\x6d\x61\x69\x6e\x00\x66\x72\x65\x65\x00\x61\x62\x6f\x72\x74\x00\x70\x72\x69\x6e\x74\x66\x00\x6c\x69\x62\x63\x2e\x73\x6f\x2e\x36\x00\x47\x4c\x49\x42\x43\x5f\x32\x2e\x31\x37\x00\x47\x4c\x49\x42\x43\x5f\x32\x2e\x33\x34\x00\x5f\x49\x54\x4d\x5f\x64\x65\x72\x65\x67\x69\x73\x74\x65\x72\x54\x4d\x43\x6c\x6f\x6e\x65\x54\x61\x62\x6c\x65\x00\x5f\x5f\x67\x6d\x6f\x6e\x5f\x73\x74\x61\x72\x74\x5f\x5f\x00\x5f\x49\x54\x4d\x5f\x72\x65\x67\x69\x73\x74\x65\x72\x54\x4d\x43\x6c\x6f\x6e\x65\x54\x61\x62\x6c\x65\x00\x00\x00\x00\x00\x00\x00\x02\x00\x01\x00\x03\x00\x03\x00\x01\x00\x03\x00\x03\x00\x01\x00\x03\x00\x01\x00\x02\x00\x3b\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x97\x91\x96\x06\x00\x00\x03\x00\x45\x00\x00\x00\x10\x00\x00\x00\xb4\x91\x96\x06\x00\x00\x02\x00\x50\x00\x00\x00\x00\x00\x00\x00\x80\x0d\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x10\x08\x00\x00\x00\x00\x00\x00\x88\x0d\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\xc0\x07\x00\x00\x00\x00\x00\x00\xf0\x0f\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x14\x08\x00\x00\x00\x00\x00\x00\x08\x10\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x08\x10\x01\x00\x00\x00\x00\x00\xd8\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe0\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe8\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xf8\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x0a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x98\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xa0\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xa8\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xb0\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xb8\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xc0\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x09\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xc8\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x0b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1f\x20\x03\xd5\xfd\x7b\xbf\xa9\xfd\x03\x00\x91\x40\x00\x00\x94\xfd\x7b\xc1\xa8\xc0\x03\x5f\xd6\xf0\x7b\xbf\xa9\x90\x00\x00\x90\x11\xca\x47\xf9\x10\x42\x3e\x91\x20\x02\x1f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x90\x00\x00\x90\x11\xce\x47\xf9\x10\x62\x3e\x91\x20\x02\x1f\xd6\x90\x00\x00\x90\x11\xd2\x47\xf9\x10\x82\x3e\x91\x20\x02\x1f\xd6\x90\x00\x00\x90\x11\xd6\x47\xf9\x10\xa2\x3e\x91\x20\x02\x1f\xd6\x90\x00\x00\x90\x11\xda\x47\xf9\x10\xc2\x3e\x91\x20\x02\x1f\xd6\x90\x00\x00\x90\x11\xde\x47\xf9\x10\xe2\x3e\x91\x20\x02\x1f\xd6\x90\x00\x00\x90\x11\xe2\x47\xf9\x10\x02\x3f\x91\x20\x02\x1f\xd6\x90\x00\x00\x90\x11\xe6\x47\xf9\x10\x22\x3f\x91\x20\x02\x1f\xd6\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1f\x20\x03\xd5\x1d\x00\x80\xd2\x1e\x00\x80\xd2\xe5\x03\x00\xaa\xe1\x03\x40\xf9\xe2\x23\x00\x91\xe6\x03\x00\x91\x80\x00\x00\x90\x00\xf8\x47\xf9\x03\x00\x80\xd2\x04\x00\x80\xd2\xcd\xff\xff\x97\xdc\xff\xff\x97\x80\x00\x00\x90\x00\xf4\x47\xf9\x40\x00\x00\xb4\xd4\xff\xff\x17\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x80\x00\x00\xb0\x00\x40\x00\x91\x81\x00\x00\xb0\x21\x40\x00\x91\x3f\x00\x00\xeb\xc0\x00\x00\x54\x81\x00\x00\x90\x21\xec\x47\xf9\x61\x00\x00\xb4\xf0\x03\x01\xaa\x00\x02\x1f\xd6\xc0\x03\x5f\xd6\x80\x00\x00\xb0\x00\x40\x00\x91\x81\x00\x00\xb0\x21\x40\x00\x91\x21\x00\x00\xcb\x22\xfc\x7f\xd3\x41\x0c\x81\x8b\x21\xfc\x41\x93\xc1\x00\x00\xb4\x82\x00\x00\x90\x42\xfc\x47\xf9\x62\x00\x00\xb4\xf0\x03\x02\xaa\x00\x02\x1f\xd6\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\xfd\x7b\xbe\xa9\xfd\x03\x00\x91\xf3\x0b\x00\xf9\x93\x00\x00\xb0\x60\x42\x40\x39\x40\x01\x00\x35\x80\x00\x00\x90\x00\xf0\x47\xf9\x80\x00\x00\xb4\x80\x00\x00\xb0\x00\x04\x40\xf9\xa1\xff\xff\x97\xd8\xff\xff\x97\x20\x00\x80\x52\x60\x42\x00\x39\xf3\x0b\x40\xf9\xfd\x7b\xc2\xa8\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\xdc\xff\xff\x17\xfd\x7b\xbe\xa9\xfd\x03\x00\x91\x20\x00\x80\xd2\x98\xff\xff\x97\xe0\x0b\x00\xf9\x80\x00\x80\xd2\x95\xff\xff\x97\xe0\x0f\x00\xf9\xe0\x0b\x40\xf9\x21\x08\x80\x52\x01\x00\x00\x39\xe0\x0f\x40\xf9\x41\x05\x80\x52\x01\x00\x00\xb9\xe0\x0b\x40\xf9\x00\x00\x40\x39\xe1\x03\x00\x2a\x00\x00\x00\x90\x00\xe0\x22\x91\x98\xff\xff\x97\xe0\x0f\x40\xf9\x00\x00\x40\xb9\xe1\x03\x00\x2a"), -Section(".comment", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x08\x1c\x00"), -Section(".interp", 0x238, "\x2f\x6c\x69\x62\x2f\x6c\x64\x2d\x6c\x69\x6e\x75\x78\x2d\x61\x61\x72\x63\x68\x36\x34\x2e\x73\x6f\x2e\x31\x00"), -Section(".note.gnu.build-id", 0x254, "\x04\x00\x00\x00\x14\x00\x00\x00\x03\x00\x00\x00\x47\x4e\x55\x00\x26\x99\x9b\x19\x23\x1c\x35\x3a\x1e\x79\x53\x38\xb8\x5d\xf4\x81\xe1\x2b\x55\xaf"), -Section(".note.ABI-tag", 0x278, "\x04\x00\x00\x00\x10\x00\x00\x00\x01\x00\x00\x00\x47\x4e\x55\x00\x00\x00\x00\x00\x03\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00"), -Section(".gnu.hash", 0x298, "\x01\x00\x00\x00\x01\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".dynsym", 0x2B8, "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x0b\x00\x28\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x16\x00\x00\x10\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x17\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5b\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x22\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x77\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2e\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x29\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x86\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x34\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".dynstr", 0x3D8, "\x00\x5f\x5f\x63\x78\x61\x5f\x66\x69\x6e\x61\x6c\x69\x7a\x65\x00\x6d\x61\x6c\x6c\x6f\x63\x00\x5f\x5f\x6c\x69\x62\x63\x5f\x73\x74\x61\x72\x74\x5f\x6d\x61\x69\x6e\x00\x66\x72\x65\x65\x00\x61\x62\x6f\x72\x74\x00\x70\x72\x69\x6e\x74\x66\x00\x6c\x69\x62\x63\x2e\x73\x6f\x2e\x36\x00\x47\x4c\x49\x42\x43\x5f\x32\x2e\x31\x37\x00\x47\x4c\x49\x42\x43\x5f\x32\x2e\x33\x34\x00\x5f\x49\x54\x4d\x5f\x64\x65\x72\x65\x67\x69\x73\x74\x65\x72\x54\x4d\x43\x6c\x6f\x6e\x65\x54\x61\x62\x6c\x65\x00\x5f\x5f\x67\x6d\x6f\x6e\x5f\x73\x74\x61\x72\x74\x5f\x5f\x00\x5f\x49\x54\x4d\x5f\x72\x65\x67\x69\x73\x74\x65\x72\x54\x4d\x43\x6c\x6f\x6e\x65\x54\x61\x62\x6c\x65\x00"), -Section(".gnu.version", 0x478, "\x00\x00\x00\x00\x00\x00\x02\x00\x01\x00\x03\x00\x03\x00\x01\x00\x03\x00\x03\x00\x01\x00\x03\x00"), -Section(".gnu.version_r", 0x490, "\x01\x00\x02\x00\x3b\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x97\x91\x96\x06\x00\x00\x03\x00\x45\x00\x00\x00\x10\x00\x00\x00\xb4\x91\x96\x06\x00\x00\x02\x00\x50\x00\x00\x00\x00\x00\x00\x00"), -Section(".rela.dyn", 0x4C0, "\x80\x0d\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x10\x08\x00\x00\x00\x00\x00\x00\x88\x0d\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\xc0\x07\x00\x00\x00\x00\x00\x00\xf0\x0f\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x14\x08\x00\x00\x00\x00\x00\x00\x08\x10\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x08\x10\x01\x00\x00\x00\x00\x00\xd8\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe0\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe8\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xf8\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x0a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".rela.plt", 0x580, "\x98\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xa0\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xa8\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xb0\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xb8\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xc0\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x09\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xc8\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x0b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".init", 0x628, "\x1f\x20\x03\xd5\xfd\x7b\xbf\xa9\xfd\x03\x00\x91\x40\x00\x00\x94\xfd\x7b\xc1\xa8\xc0\x03\x5f\xd6"), -Section(".plt", 0x640, "\xf0\x7b\xbf\xa9\x90\x00\x00\x90\x11\xca\x47\xf9\x10\x42\x3e\x91\x20\x02\x1f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x90\x00\x00\x90\x11\xce\x47\xf9\x10\x62\x3e\x91\x20\x02\x1f\xd6\x90\x00\x00\x90\x11\xd2\x47\xf9\x10\x82\x3e\x91\x20\x02\x1f\xd6\x90\x00\x00\x90\x11\xd6\x47\xf9\x10\xa2\x3e\x91\x20\x02\x1f\xd6\x90\x00\x00\x90\x11\xda\x47\xf9\x10\xc2\x3e\x91\x20\x02\x1f\xd6\x90\x00\x00\x90\x11\xde\x47\xf9\x10\xe2\x3e\x91\x20\x02\x1f\xd6\x90\x00\x00\x90\x11\xe2\x47\xf9\x10\x02\x3f\x91\x20\x02\x1f\xd6\x90\x00\x00\x90\x11\xe6\x47\xf9\x10\x22\x3f\x91\x20\x02\x1f\xd6"), -Section(".fini", 0x898, "\x1f\x20\x03\xd5\xfd\x7b\xbf\xa9\xfd\x03\x00\x91\xfd\x7b\xc1\xa8\xc0\x03\x5f\xd6"), -Section(".rodata", 0x8B0, "\x01\x00\x02\x00\x00\x00\x00\x00\x54\x68\x65\x20\x63\x68\x61\x72\x20\x69\x73\x3a\x20\x25\x63\x0a\x00\x00\x00\x00\x00\x00\x00\x00\x54\x68\x65\x20\x69\x6e\x74\x20\x69\x73\x3a\x20\x25\x64\x0a\x00"), -Section(".eh_frame_hdr", 0x8E0, "\x01\x1b\x03\x3b\x3c\x00\x00\x00\x06\x00\x00\x00\x20\xfe\xff\xff\x54\x00\x00\x00\x70\xfe\xff\xff\x68\x00\x00\x00\xa0\xfe\xff\xff\x7c\x00\x00\x00\xe0\xfe\xff\xff\x90\x00\x00\x00\x30\xff\xff\xff\xb4\x00\x00\x00\x34\xff\xff\xff\xc8\x00\x00\x00"), -Section(".eh_frame", 0x920, "\x10\x00\x00\x00\x00\x00\x00\x00\x01\x7a\x52\x00\x04\x78\x1e\x01\x1b\x0c\x1f\x00\x10\x00\x00\x00\x18\x00\x00\x00\xc4\xfd\xff\xff\x34\x00\x00\x00\x00\x41\x07\x1e\x10\x00\x00\x00\x2c\x00\x00\x00\x00\xfe\xff\xff\x30\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x40\x00\x00\x00\x1c\xfe\xff\xff\x3c\x00\x00\x00\x00\x00\x00\x00\x20\x00\x00\x00\x54\x00\x00\x00\x48\xfe\xff\xff\x48\x00\x00\x00\x00\x41\x0e\x20\x9d\x04\x9e\x03\x42\x93\x02\x4e\xde\xdd\xd3\x0e\x00\x00\x00\x00\x10\x00\x00\x00\x78\x00\x00\x00\x74\xfe\xff\xff\x04\x00\x00\x00\x00\x00\x00\x00\x1c\x00\x00\x00\x8c\x00\x00\x00\x64\xfe\xff\xff\x84\x00\x00\x00\x00\x41\x0e\x20\x9d\x04\x9e\x03\x5f\xde\xdd\x0e\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".fini_array", 0x10D88, "\xc0\x07\x00\x00\x00\x00\x00\x00"), -Section(".dynamic", 0x10D90, "\x01\x00\x00\x00\x00\x00\x00\x00\x3b\x00\x00\x00\x00\x00\x00\x00\x0c\x00\x00\x00\x00\x00\x00\x00\x28\x06\x00\x00\x00\x00\x00\x00\x0d\x00\x00\x00\x00\x00\x00\x00\x98\x08\x00\x00\x00\x00\x00\x00\x19\x00\x00\x00\x00\x00\x00\x00\x80\x0d\x01\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x1a\x00\x00\x00\x00\x00\x00\x00\x88\x0d\x01\x00\x00\x00\x00\x00\x1c\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\xf5\xfe\xff\x6f\x00\x00\x00\x00\x98\x02\x00\x00\x00\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\xd8\x03\x00\x00\x00\x00\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\xb8\x02\x00\x00\x00\x00\x00\x00\x0a\x00\x00\x00\x00\x00\x00\x00\xa0\x00\x00\x00\x00\x00\x00\x00\x0b\x00\x00\x00\x00\x00\x00\x00\x18\x00\x00\x00\x00\x00\x00\x00\x15\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x80\x0f\x01\x00\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\xa8\x00\x00\x00\x00\x00\x00\x00\x14\x00\x00\x00\x00\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x17\x00\x00\x00\x00\x00\x00\x00\x80\x05\x00\x00\x00\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\xc0\x04\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\xc0\x00\x00\x00\x00\x00\x00\x00\x09\x00\x00\x00\x00\x00\x00\x00\x18\x00\x00\x00\x00\x00\x00\x00\x1e\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\xfb\xff\xff\x6f\x00\x00\x00\x00\x01\x00\x00\x08\x00\x00\x00\x00\xfe\xff\xff\x6f\x00\x00\x00\x00\x90\x04\x00\x00\x00\x00\x00\x00\xff\xff\xff\x6f\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\xf0\xff\xff\x6f\x00\x00\x00\x00\x78\x04\x00\x00\x00\x00\x00\x00\xf9\xff\xff\x6f\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".got", 0x10F80, "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x06\x00\x00\x00\x00\x00\x00\x40\x06\x00\x00\x00\x00\x00\x00\x40\x06\x00\x00\x00\x00\x00\x00\x40\x06\x00\x00\x00\x00\x00\x00\x40\x06\x00\x00\x00\x00\x00\x00\x40\x06\x00\x00\x00\x00\x00\x00\x40\x06\x00\x00\x00\x00\x00\x00\x90\x0d\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x14\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".data", 0x11000, "\x00\x00\x00\x00\x00\x00\x00\x00\x08\x10\x01\x00\x00\x00\x00\x00"), -Section(".init_array", 0x10D80, "\x10\x08\x00\x00\x00\x00\x00\x00"), -Section(".text", 0x700, "\x1f\x20\x03\xd5\x1d\x00\x80\xd2\x1e\x00\x80\xd2\xe5\x03\x00\xaa\xe1\x03\x40\xf9\xe2\x23\x00\x91\xe6\x03\x00\x91\x80\x00\x00\x90\x00\xf8\x47\xf9\x03\x00\x80\xd2\x04\x00\x80\xd2\xcd\xff\xff\x97\xdc\xff\xff\x97\x80\x00\x00\x90\x00\xf4\x47\xf9\x40\x00\x00\xb4\xd4\xff\xff\x17\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x80\x00\x00\xb0\x00\x40\x00\x91\x81\x00\x00\xb0\x21\x40\x00\x91\x3f\x00\x00\xeb\xc0\x00\x00\x54\x81\x00\x00\x90\x21\xec\x47\xf9\x61\x00\x00\xb4\xf0\x03\x01\xaa\x00\x02\x1f\xd6\xc0\x03\x5f\xd6\x80\x00\x00\xb0\x00\x40\x00\x91\x81\x00\x00\xb0\x21\x40\x00\x91\x21\x00\x00\xcb\x22\xfc\x7f\xd3\x41\x0c\x81\x8b\x21\xfc\x41\x93\xc1\x00\x00\xb4\x82\x00\x00\x90\x42\xfc\x47\xf9\x62\x00\x00\xb4\xf0\x03\x02\xaa\x00\x02\x1f\xd6\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\xfd\x7b\xbe\xa9\xfd\x03\x00\x91\xf3\x0b\x00\xf9\x93\x00\x00\xb0\x60\x42\x40\x39\x40\x01\x00\x35\x80\x00\x00\x90\x00\xf0\x47\xf9\x80\x00\x00\xb4\x80\x00\x00\xb0\x00\x04\x40\xf9\xa1\xff\xff\x97\xd8\xff\xff\x97\x20\x00\x80\x52\x60\x42\x00\x39\xf3\x0b\x40\xf9\xfd\x7b\xc2\xa8\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\xdc\xff\xff\x17\xfd\x7b\xbe\xa9\xfd\x03\x00\x91\x20\x00\x80\xd2\x98\xff\xff\x97\xe0\x0b\x00\xf9\x80\x00\x80\xd2\x95\xff\xff\x97\xe0\x0f\x00\xf9\xe0\x0b\x40\xf9\x21\x08\x80\x52\x01\x00\x00\x39\xe0\x0f\x40\xf9\x41\x05\x80\x52\x01\x00\x00\xb9\xe0\x0b\x40\xf9\x00\x00\x40\x39\xe1\x03\x00\x2a\x00\x00\x00\x90\x00\xe0\x22\x91\x98\xff\xff\x97\xe0\x0f\x40\xf9\x00\x00\x40\xb9\xe1\x03\x00\x2a\x00\x00\x00\x90\x00\x40\x23\x91\x92\xff\xff\x97\xe0\x0b\x40\xf9\x8c\xff\xff\x97\xe0\x0f\x40\xf9\x8a\xff\xff\x97\x00\x00\x80\x52\xfd\x7b\xc2\xa8\xc0\x03\x5f\xd6")]), -Memmap([Annotation(Region(0x0,0x9CB), Attr("segment","02 0 2508")), -Annotation(Region(0x700,0x733), Attr("symbol","\"_start\"")), -Annotation(Region(0x0,0xF9), Attr("section","\".shstrtab\"")), -Annotation(Region(0x0,0x257), Attr("section","\".strtab\"")), -Annotation(Region(0x0,0x86F), Attr("section","\".symtab\"")), -Annotation(Region(0x0,0x2A), Attr("section","\".comment\"")), -Annotation(Region(0x238,0x252), Attr("section","\".interp\"")), -Annotation(Region(0x254,0x277), Attr("section","\".note.gnu.build-id\"")), -Annotation(Region(0x278,0x297), Attr("section","\".note.ABI-tag\"")), -Annotation(Region(0x298,0x2B3), Attr("section","\".gnu.hash\"")), -Annotation(Region(0x2B8,0x3D7), Attr("section","\".dynsym\"")), -Annotation(Region(0x3D8,0x477), Attr("section","\".dynstr\"")), -Annotation(Region(0x478,0x48F), Attr("section","\".gnu.version\"")), -Annotation(Region(0x490,0x4BF), Attr("section","\".gnu.version_r\"")), -Annotation(Region(0x4C0,0x57F), Attr("section","\".rela.dyn\"")), -Annotation(Region(0x580,0x627), Attr("section","\".rela.plt\"")), -Annotation(Region(0x628,0x63F), Attr("section","\".init\"")), -Annotation(Region(0x640,0x6CF), Attr("section","\".plt\"")), -Annotation(Region(0x628,0x63F), Attr("code-region","()")), -Annotation(Region(0x640,0x6CF), Attr("code-region","()")), -Annotation(Region(0x700,0x733), Attr("symbol-info","_start 0x700 52")), -Annotation(Region(0x734,0x747), Attr("symbol","\"call_weak_fn\"")), -Annotation(Region(0x734,0x747), Attr("symbol-info","call_weak_fn 0x734 20")), -Annotation(Region(0x814,0x897), Attr("symbol","\"main\"")), -Annotation(Region(0x814,0x897), Attr("symbol-info","main 0x814 132")), -Annotation(Region(0x898,0x8AB), Attr("section","\".fini\"")), -Annotation(Region(0x8B0,0x8DF), Attr("section","\".rodata\"")), -Annotation(Region(0x8E0,0x91B), Attr("section","\".eh_frame_hdr\"")), -Annotation(Region(0x920,0x9CB), Attr("section","\".eh_frame\"")), -Annotation(Region(0x10D80,0x1100F), Attr("segment","03 0x10D80 664")), -Annotation(Region(0x10D88,0x10D8F), Attr("section","\".fini_array\"")), -Annotation(Region(0x10D90,0x10F7F), Attr("section","\".dynamic\"")), -Annotation(Region(0x10F80,0x10FFF), Attr("section","\".got\"")), -Annotation(Region(0x11000,0x1100F), Attr("section","\".data\"")), -Annotation(Region(0x10D80,0x10D87), Attr("section","\".init_array\"")), -Annotation(Region(0x700,0x897), Attr("section","\".text\"")), -Annotation(Region(0x700,0x897), Attr("code-region","()")), -Annotation(Region(0x898,0x8AB), Attr("code-region","()"))]), -Program(Tid(1_790, "%000006fe"), Attrs([]), - Subs([Sub(Tid(1_765, "@__cxa_finalize"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x670"), -Attr("stub","()")]), "__cxa_finalize", Args([Arg(Tid(1_791, "%000006ff"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("__cxa_finalize_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(1_110, "@__cxa_finalize"), - Attrs([Attr("address","0x670")]), Phis([]), -Defs([Def(Tid(1_406, "%0000057e"), Attrs([Attr("address","0x670"), -Attr("insn","adrp x16, #65536")]), Var("R16",Imm(64)), Int(65536,64)), -Def(Tid(1_413, "%00000585"), Attrs([Attr("address","0x674"), -Attr("insn","ldr x17, [x16, #0xfa0]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(4000,64)),LittleEndian(),64)), -Def(Tid(1_419, "%0000058b"), Attrs([Attr("address","0x678"), -Attr("insn","add x16, x16, #0xfa0")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(4000,64)))]), Jmps([Call(Tid(1_424, "%00000590"), - Attrs([Attr("address","0x67C"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), -Sub(Tid(1_766, "@__do_global_dtors_aux"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x7C0")]), - "__do_global_dtors_aux", Args([Arg(Tid(1_792, "%00000700"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("__do_global_dtors_aux_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(722, "@__do_global_dtors_aux"), - Attrs([Attr("address","0x7C0")]), Phis([]), Defs([Def(Tid(726, "%000002d6"), - Attrs([Attr("address","0x7C0"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("#3",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(18446744073709551584,64))), -Def(Tid(732, "%000002dc"), Attrs([Attr("address","0x7C0"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("#3",Imm(64)),Var("R29",Imm(64)),LittleEndian(),64)), -Def(Tid(738, "%000002e2"), Attrs([Attr("address","0x7C0"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("#3",Imm(64)),Int(8,64)),Var("R30",Imm(64)),LittleEndian(),64)), -Def(Tid(742, "%000002e6"), Attrs([Attr("address","0x7C0"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("R31",Imm(64)), -Var("#3",Imm(64))), Def(Tid(748, "%000002ec"), - Attrs([Attr("address","0x7C4"), Attr("insn","mov x29, sp")]), - Var("R29",Imm(64)), Var("R31",Imm(64))), Def(Tid(756, "%000002f4"), - Attrs([Attr("address","0x7C8"), Attr("insn","str x19, [sp, #0x10]")]), - Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(16,64)),Var("R19",Imm(64)),LittleEndian(),64)), -Def(Tid(761, "%000002f9"), Attrs([Attr("address","0x7CC"), -Attr("insn","adrp x19, #69632")]), Var("R19",Imm(64)), Int(69632,64)), -Def(Tid(768, "%00000300"), Attrs([Attr("address","0x7D0"), -Attr("insn","ldrb w0, [x19, #0x10]")]), Var("R0",Imm(64)), -UNSIGNED(64,Load(Var("mem",Mem(64,8)),PLUS(Var("R19",Imm(64)),Int(16,64)),LittleEndian(),8)))]), -Jmps([Goto(Tid(775, "%00000307"), Attrs([Attr("address","0x7D4"), -Attr("insn","cbnz w0, #0x28")]), - NEQ(Extract(31,0,Var("R0",Imm(64))),Int(0,32)), -Direct(Tid(773, "%00000305"))), Goto(Tid(1_767, "%000006e7"), Attrs([]), - Int(1,1), Direct(Tid(1_055, "%0000041f")))])), Blk(Tid(1_055, "%0000041f"), - Attrs([Attr("address","0x7D8")]), Phis([]), -Defs([Def(Tid(1_058, "%00000422"), Attrs([Attr("address","0x7D8"), -Attr("insn","adrp x0, #65536")]), Var("R0",Imm(64)), Int(65536,64)), -Def(Tid(1_065, "%00000429"), Attrs([Attr("address","0x7DC"), -Attr("insn","ldr x0, [x0, #0xfe0]")]), Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(4064,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(1_071, "%0000042f"), Attrs([Attr("address","0x7E0"), -Attr("insn","cbz x0, #0x10")]), EQ(Var("R0",Imm(64)),Int(0,64)), -Direct(Tid(1_069, "%0000042d"))), Goto(Tid(1_768, "%000006e8"), Attrs([]), - Int(1,1), Direct(Tid(1_094, "%00000446")))])), Blk(Tid(1_094, "%00000446"), - Attrs([Attr("address","0x7E4")]), Phis([]), -Defs([Def(Tid(1_097, "%00000449"), Attrs([Attr("address","0x7E4"), -Attr("insn","adrp x0, #69632")]), Var("R0",Imm(64)), Int(69632,64)), -Def(Tid(1_104, "%00000450"), Attrs([Attr("address","0x7E8"), -Attr("insn","ldr x0, [x0, #0x8]")]), Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(1_109, "%00000455"), Attrs([Attr("address","0x7EC"), -Attr("insn","bl #-0x17c")]), Var("R30",Imm(64)), Int(2032,64))]), -Jmps([Call(Tid(1_112, "%00000458"), Attrs([Attr("address","0x7EC"), -Attr("insn","bl #-0x17c")]), Int(1,1), -(Direct(Tid(1_765, "@__cxa_finalize")),Direct(Tid(1_069, "%0000042d"))))])), -Blk(Tid(1_069, "%0000042d"), Attrs([Attr("address","0x7F0")]), Phis([]), -Defs([Def(Tid(1_077, "%00000435"), Attrs([Attr("address","0x7F0"), -Attr("insn","bl #-0xa0")]), Var("R30",Imm(64)), Int(2036,64))]), -Jmps([Call(Tid(1_079, "%00000437"), Attrs([Attr("address","0x7F0"), -Attr("insn","bl #-0xa0")]), Int(1,1), -(Direct(Tid(1_779, "@deregister_tm_clones")),Direct(Tid(1_081, "%00000439"))))])), -Blk(Tid(1_081, "%00000439"), Attrs([Attr("address","0x7F4")]), Phis([]), -Defs([Def(Tid(1_084, "%0000043c"), Attrs([Attr("address","0x7F4"), -Attr("insn","mov w0, #0x1")]), Var("R0",Imm(64)), Int(1,64)), -Def(Tid(1_092, "%00000444"), Attrs([Attr("address","0x7F8"), -Attr("insn","strb w0, [x19, #0x10]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R19",Imm(64)),Int(16,64)),Extract(7,0,Var("R0",Imm(64))),LittleEndian(),8))]), -Jmps([Goto(Tid(1_769, "%000006e9"), Attrs([]), Int(1,1), -Direct(Tid(773, "%00000305")))])), Blk(Tid(773, "%00000305"), - Attrs([Attr("address","0x7FC")]), Phis([]), Defs([Def(Tid(783, "%0000030f"), - Attrs([Attr("address","0x7FC"), Attr("insn","ldr x19, [sp, #0x10]")]), - Var("R19",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(16,64)),LittleEndian(),64)), -Def(Tid(790, "%00000316"), Attrs([Attr("address","0x800"), -Attr("insn","ldp x29, x30, [sp], #0x20")]), Var("R29",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(795, "%0000031b"), Attrs([Attr("address","0x800"), -Attr("insn","ldp x29, x30, [sp], #0x20")]), Var("R30",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(799, "%0000031f"), Attrs([Attr("address","0x800"), -Attr("insn","ldp x29, x30, [sp], #0x20")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(32,64)))]), Jmps([Call(Tid(804, "%00000324"), - Attrs([Attr("address","0x804"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), Sub(Tid(1_770, "@__libc_start_main"), - Attrs([Attr("c.proto","signed (*)(signed (*)(signed , char** , char** );* main, signed , char** , \nvoid* auxv)"), -Attr("address","0x660"), Attr("stub","()")]), "__libc_start_main", - Args([Arg(Tid(1_793, "%00000701"), - Attrs([Attr("c.layout","**[ : 64]"), -Attr("c.data","Top:u64 ptr ptr"), -Attr("c.type","signed (*)(signed , char** , char** );*")]), - Var("__libc_start_main_main",Imm(64)), Var("R0",Imm(64)), In()), -Arg(Tid(1_794, "%00000702"), Attrs([Attr("c.layout","[signed : 32]"), -Attr("c.data","Top:u32"), Attr("c.type","signed")]), - Var("__libc_start_main_arg2",Imm(32)), LOW(32,Var("R1",Imm(64))), In()), -Arg(Tid(1_795, "%00000703"), Attrs([Attr("c.layout","**[char : 8]"), -Attr("c.data","Top:u8 ptr ptr"), Attr("c.type","char**")]), - Var("__libc_start_main_arg3",Imm(64)), Var("R2",Imm(64)), Both()), -Arg(Tid(1_796, "%00000704"), Attrs([Attr("c.layout","*[ : 8]"), -Attr("c.data","{} ptr"), Attr("c.type","void*")]), - Var("__libc_start_main_auxv",Imm(64)), Var("R3",Imm(64)), Both()), -Arg(Tid(1_797, "%00000705"), Attrs([Attr("c.layout","[signed : 32]"), -Attr("c.data","Top:u32"), Attr("c.type","signed")]), - Var("__libc_start_main_result",Imm(32)), LOW(32,Var("R0",Imm(64))), -Out())]), Blks([Blk(Tid(555, "@__libc_start_main"), - Attrs([Attr("address","0x660")]), Phis([]), -Defs([Def(Tid(1_384, "%00000568"), Attrs([Attr("address","0x660"), -Attr("insn","adrp x16, #65536")]), Var("R16",Imm(64)), Int(65536,64)), -Def(Tid(1_391, "%0000056f"), Attrs([Attr("address","0x664"), -Attr("insn","ldr x17, [x16, #0xf98]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(3992,64)),LittleEndian(),64)), -Def(Tid(1_397, "%00000575"), Attrs([Attr("address","0x668"), -Attr("insn","add x16, x16, #0xf98")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(3992,64)))]), Jmps([Call(Tid(1_402, "%0000057a"), - Attrs([Attr("address","0x66C"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), Sub(Tid(1_771, "@_fini"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x898")]), - "_fini", Args([Arg(Tid(1_798, "%00000706"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("_fini_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(31, "@_fini"), - Attrs([Attr("address","0x898")]), Phis([]), Defs([Def(Tid(37, "%00000025"), - Attrs([Attr("address","0x89C"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("#0",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(18446744073709551600,64))), -Def(Tid(43, "%0000002b"), Attrs([Attr("address","0x89C"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("#0",Imm(64)),Var("R29",Imm(64)),LittleEndian(),64)), -Def(Tid(49, "%00000031"), Attrs([Attr("address","0x89C"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("#0",Imm(64)),Int(8,64)),Var("R30",Imm(64)),LittleEndian(),64)), -Def(Tid(53, "%00000035"), Attrs([Attr("address","0x89C"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("R31",Imm(64)), -Var("#0",Imm(64))), Def(Tid(59, "%0000003b"), Attrs([Attr("address","0x8A0"), -Attr("insn","mov x29, sp")]), Var("R29",Imm(64)), Var("R31",Imm(64))), -Def(Tid(66, "%00000042"), Attrs([Attr("address","0x8A4"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R29",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(71, "%00000047"), Attrs([Attr("address","0x8A4"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R30",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(75, "%0000004b"), Attrs([Attr("address","0x8A4"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(16,64)))]), Jmps([Call(Tid(80, "%00000050"), - Attrs([Attr("address","0x8A8"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), Sub(Tid(1_772, "@_init"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x628")]), - "_init", Args([Arg(Tid(1_799, "%00000707"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("_init_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(1_562, "@_init"), - Attrs([Attr("address","0x628")]), Phis([]), -Defs([Def(Tid(1_568, "%00000620"), Attrs([Attr("address","0x62C"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("#6",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(18446744073709551600,64))), -Def(Tid(1_574, "%00000626"), Attrs([Attr("address","0x62C"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("#6",Imm(64)),Var("R29",Imm(64)),LittleEndian(),64)), -Def(Tid(1_580, "%0000062c"), Attrs([Attr("address","0x62C"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("#6",Imm(64)),Int(8,64)),Var("R30",Imm(64)),LittleEndian(),64)), -Def(Tid(1_584, "%00000630"), Attrs([Attr("address","0x62C"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("R31",Imm(64)), -Var("#6",Imm(64))), Def(Tid(1_590, "%00000636"), - Attrs([Attr("address","0x630"), Attr("insn","mov x29, sp")]), - Var("R29",Imm(64)), Var("R31",Imm(64))), Def(Tid(1_595, "%0000063b"), - Attrs([Attr("address","0x634"), Attr("insn","bl #0x100")]), - Var("R30",Imm(64)), Int(1592,64))]), Jmps([Call(Tid(1_597, "%0000063d"), - Attrs([Attr("address","0x634"), Attr("insn","bl #0x100")]), Int(1,1), -(Direct(Tid(1_777, "@call_weak_fn")),Direct(Tid(1_599, "%0000063f"))))])), -Blk(Tid(1_599, "%0000063f"), Attrs([Attr("address","0x638")]), Phis([]), -Defs([Def(Tid(1_604, "%00000644"), Attrs([Attr("address","0x638"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R29",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(1_609, "%00000649"), Attrs([Attr("address","0x638"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R30",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(1_613, "%0000064d"), Attrs([Attr("address","0x638"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(16,64)))]), Jmps([Call(Tid(1_618, "%00000652"), - Attrs([Attr("address","0x63C"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), Sub(Tid(1_773, "@_start"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x700"), -Attr("entry-point","()")]), "_start", Args([Arg(Tid(1_800, "%00000708"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("_start_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(492, "@_start"), - Attrs([Attr("address","0x700")]), Phis([]), Defs([Def(Tid(497, "%000001f1"), - Attrs([Attr("address","0x704"), Attr("insn","mov x29, #0x0")]), - Var("R29",Imm(64)), Int(0,64)), Def(Tid(502, "%000001f6"), - Attrs([Attr("address","0x708"), Attr("insn","mov x30, #0x0")]), - Var("R30",Imm(64)), Int(0,64)), Def(Tid(508, "%000001fc"), - Attrs([Attr("address","0x70C"), Attr("insn","mov x5, x0")]), - Var("R5",Imm(64)), Var("R0",Imm(64))), Def(Tid(515, "%00000203"), - Attrs([Attr("address","0x710"), Attr("insn","ldr x1, [sp]")]), - Var("R1",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(521, "%00000209"), Attrs([Attr("address","0x714"), -Attr("insn","add x2, sp, #0x8")]), Var("R2",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(8,64))), Def(Tid(527, "%0000020f"), - Attrs([Attr("address","0x718"), Attr("insn","mov x6, sp")]), - Var("R6",Imm(64)), Var("R31",Imm(64))), Def(Tid(532, "%00000214"), - Attrs([Attr("address","0x71C"), Attr("insn","adrp x0, #65536")]), - Var("R0",Imm(64)), Int(65536,64)), Def(Tid(539, "%0000021b"), - Attrs([Attr("address","0x720"), Attr("insn","ldr x0, [x0, #0xff0]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(4080,64)),LittleEndian(),64)), -Def(Tid(544, "%00000220"), Attrs([Attr("address","0x724"), -Attr("insn","mov x3, #0x0")]), Var("R3",Imm(64)), Int(0,64)), -Def(Tid(549, "%00000225"), Attrs([Attr("address","0x728"), -Attr("insn","mov x4, #0x0")]), Var("R4",Imm(64)), Int(0,64)), -Def(Tid(554, "%0000022a"), Attrs([Attr("address","0x72C"), -Attr("insn","bl #-0xcc")]), Var("R30",Imm(64)), Int(1840,64))]), -Jmps([Call(Tid(557, "%0000022d"), Attrs([Attr("address","0x72C"), -Attr("insn","bl #-0xcc")]), Int(1,1), -(Direct(Tid(1_770, "@__libc_start_main")),Direct(Tid(559, "%0000022f"))))])), -Blk(Tid(559, "%0000022f"), Attrs([Attr("address","0x730")]), Phis([]), -Defs([Def(Tid(562, "%00000232"), Attrs([Attr("address","0x730"), -Attr("insn","bl #-0x90")]), Var("R30",Imm(64)), Int(1844,64))]), -Jmps([Call(Tid(565, "%00000235"), Attrs([Attr("address","0x730"), -Attr("insn","bl #-0x90")]), Int(1,1), -(Direct(Tid(1_776, "@abort")),Direct(Tid(1_774, "%000006ee"))))])), -Blk(Tid(1_774, "%000006ee"), Attrs([]), Phis([]), Defs([]), -Jmps([Call(Tid(1_775, "%000006ef"), Attrs([]), Int(1,1), -(Direct(Tid(1_777, "@call_weak_fn")),))]))])), Sub(Tid(1_776, "@abort"), - Attrs([Attr("noreturn","()"), Attr("c.proto","void (*)(void)"), -Attr("address","0x6A0"), Attr("stub","()")]), "abort", Args([]), -Blks([Blk(Tid(563, "@abort"), Attrs([Attr("address","0x6A0")]), Phis([]), -Defs([Def(Tid(1_472, "%000005c0"), Attrs([Attr("address","0x6A0"), -Attr("insn","adrp x16, #65536")]), Var("R16",Imm(64)), Int(65536,64)), -Def(Tid(1_479, "%000005c7"), Attrs([Attr("address","0x6A4"), -Attr("insn","ldr x17, [x16, #0xfb8]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(4024,64)),LittleEndian(),64)), -Def(Tid(1_485, "%000005cd"), Attrs([Attr("address","0x6A8"), -Attr("insn","add x16, x16, #0xfb8")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(4024,64)))]), Jmps([Call(Tid(1_490, "%000005d2"), - Attrs([Attr("address","0x6AC"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), Sub(Tid(1_777, "@call_weak_fn"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x734")]), - "call_weak_fn", Args([Arg(Tid(1_801, "%00000709"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("call_weak_fn_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(567, "@call_weak_fn"), - Attrs([Attr("address","0x734")]), Phis([]), Defs([Def(Tid(570, "%0000023a"), - Attrs([Attr("address","0x734"), Attr("insn","adrp x0, #65536")]), - Var("R0",Imm(64)), Int(65536,64)), Def(Tid(577, "%00000241"), - Attrs([Attr("address","0x738"), Attr("insn","ldr x0, [x0, #0xfe8]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(4072,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(583, "%00000247"), Attrs([Attr("address","0x73C"), -Attr("insn","cbz x0, #0x8")]), EQ(Var("R0",Imm(64)),Int(0,64)), -Direct(Tid(581, "%00000245"))), Goto(Tid(1_778, "%000006f2"), Attrs([]), - Int(1,1), Direct(Tid(1_174, "%00000496")))])), Blk(Tid(581, "%00000245"), - Attrs([Attr("address","0x744")]), Phis([]), Defs([]), -Jmps([Call(Tid(589, "%0000024d"), Attrs([Attr("address","0x744"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))])), -Blk(Tid(1_174, "%00000496"), Attrs([Attr("address","0x740")]), Phis([]), -Defs([]), Jmps([Goto(Tid(1_177, "%00000499"), Attrs([Attr("address","0x740"), -Attr("insn","b #-0xb0")]), Int(1,1), -Direct(Tid(1_175, "@__gmon_start__")))])), Blk(Tid(1_175, "@__gmon_start__"), - Attrs([Attr("address","0x690")]), Phis([]), -Defs([Def(Tid(1_450, "%000005aa"), Attrs([Attr("address","0x690"), -Attr("insn","adrp x16, #65536")]), Var("R16",Imm(64)), Int(65536,64)), -Def(Tid(1_457, "%000005b1"), Attrs([Attr("address","0x694"), -Attr("insn","ldr x17, [x16, #0xfb0]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(4016,64)),LittleEndian(),64)), -Def(Tid(1_463, "%000005b7"), Attrs([Attr("address","0x698"), -Attr("insn","add x16, x16, #0xfb0")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(4016,64)))]), Jmps([Call(Tid(1_468, "%000005bc"), - Attrs([Attr("address","0x69C"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), -Sub(Tid(1_779, "@deregister_tm_clones"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x750")]), - "deregister_tm_clones", Args([Arg(Tid(1_802, "%0000070a"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("deregister_tm_clones_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(595, "@deregister_tm_clones"), - Attrs([Attr("address","0x750")]), Phis([]), Defs([Def(Tid(598, "%00000256"), - Attrs([Attr("address","0x750"), Attr("insn","adrp x0, #69632")]), - Var("R0",Imm(64)), Int(69632,64)), Def(Tid(604, "%0000025c"), - Attrs([Attr("address","0x754"), Attr("insn","add x0, x0, #0x10")]), - Var("R0",Imm(64)), PLUS(Var("R0",Imm(64)),Int(16,64))), -Def(Tid(609, "%00000261"), Attrs([Attr("address","0x758"), -Attr("insn","adrp x1, #69632")]), Var("R1",Imm(64)), Int(69632,64)), -Def(Tid(615, "%00000267"), Attrs([Attr("address","0x75C"), -Attr("insn","add x1, x1, #0x10")]), Var("R1",Imm(64)), -PLUS(Var("R1",Imm(64)),Int(16,64))), Def(Tid(621, "%0000026d"), - Attrs([Attr("address","0x760"), Attr("insn","cmp x1, x0")]), - Var("#1",Imm(64)), NOT(Var("R0",Imm(64)))), Def(Tid(626, "%00000272"), - Attrs([Attr("address","0x760"), Attr("insn","cmp x1, x0")]), - Var("#2",Imm(64)), PLUS(Var("R1",Imm(64)),NOT(Var("R0",Imm(64))))), -Def(Tid(632, "%00000278"), Attrs([Attr("address","0x760"), -Attr("insn","cmp x1, x0")]), Var("VF",Imm(1)), -NEQ(SIGNED(65,PLUS(Var("#2",Imm(64)),Int(1,64))),PLUS(PLUS(SIGNED(65,Var("R1",Imm(64))),SIGNED(65,Var("#1",Imm(64)))),Int(1,65)))), -Def(Tid(638, "%0000027e"), Attrs([Attr("address","0x760"), -Attr("insn","cmp x1, x0")]), Var("CF",Imm(1)), -NEQ(UNSIGNED(65,PLUS(Var("#2",Imm(64)),Int(1,64))),PLUS(PLUS(UNSIGNED(65,Var("R1",Imm(64))),UNSIGNED(65,Var("#1",Imm(64)))),Int(1,65)))), -Def(Tid(642, "%00000282"), Attrs([Attr("address","0x760"), -Attr("insn","cmp x1, x0")]), Var("ZF",Imm(1)), -EQ(PLUS(Var("#2",Imm(64)),Int(1,64)),Int(0,64))), Def(Tid(646, "%00000286"), - Attrs([Attr("address","0x760"), Attr("insn","cmp x1, x0")]), - Var("NF",Imm(1)), Extract(63,63,PLUS(Var("#2",Imm(64)),Int(1,64))))]), -Jmps([Goto(Tid(652, "%0000028c"), Attrs([Attr("address","0x764"), -Attr("insn","b.eq #0x18")]), EQ(Var("ZF",Imm(1)),Int(1,1)), -Direct(Tid(650, "%0000028a"))), Goto(Tid(1_780, "%000006f4"), Attrs([]), - Int(1,1), Direct(Tid(1_144, "%00000478")))])), Blk(Tid(1_144, "%00000478"), - Attrs([Attr("address","0x768")]), Phis([]), -Defs([Def(Tid(1_147, "%0000047b"), Attrs([Attr("address","0x768"), -Attr("insn","adrp x1, #65536")]), Var("R1",Imm(64)), Int(65536,64)), -Def(Tid(1_154, "%00000482"), Attrs([Attr("address","0x76C"), -Attr("insn","ldr x1, [x1, #0xfd8]")]), Var("R1",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R1",Imm(64)),Int(4056,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(1_159, "%00000487"), Attrs([Attr("address","0x770"), -Attr("insn","cbz x1, #0xc")]), EQ(Var("R1",Imm(64)),Int(0,64)), -Direct(Tid(650, "%0000028a"))), Goto(Tid(1_781, "%000006f5"), Attrs([]), - Int(1,1), Direct(Tid(1_163, "%0000048b")))])), Blk(Tid(650, "%0000028a"), - Attrs([Attr("address","0x77C")]), Phis([]), Defs([]), -Jmps([Call(Tid(658, "%00000292"), Attrs([Attr("address","0x77C"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))])), -Blk(Tid(1_163, "%0000048b"), Attrs([Attr("address","0x774")]), Phis([]), -Defs([Def(Tid(1_167, "%0000048f"), Attrs([Attr("address","0x774"), -Attr("insn","mov x16, x1")]), Var("R16",Imm(64)), Var("R1",Imm(64)))]), -Jmps([Call(Tid(1_172, "%00000494"), Attrs([Attr("address","0x778"), -Attr("insn","br x16")]), Int(1,1), (Indirect(Var("R16",Imm(64))),))]))])), -Sub(Tid(1_782, "@frame_dummy"), Attrs([Attr("c.proto","signed (*)(void)"), -Attr("address","0x810")]), "frame_dummy", Args([Arg(Tid(1_803, "%0000070b"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("frame_dummy_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(810, "@frame_dummy"), - Attrs([Attr("address","0x810")]), Phis([]), Defs([]), -Jmps([Call(Tid(812, "%0000032c"), Attrs([Attr("address","0x810"), -Attr("insn","b #-0x90")]), Int(1,1), -(Direct(Tid(1_787, "@register_tm_clones")),))]))])), Sub(Tid(1_783, "@free"), - Attrs([Attr("c.proto","void (*)(void* ptr)"), Attr("address","0x6B0"), -Attr("stub","()")]), "free", Args([Arg(Tid(1_804, "%0000070c"), - Attrs([Attr("c.layout","*[ : 8]"), Attr("c.data","{} ptr"), -Attr("c.type","void*")]), Var("free_ptr",Imm(64)), Var("R0",Imm(64)), -Both())]), Blks([Blk(Tid(1_011, "@free"), Attrs([Attr("address","0x6B0")]), - Phis([]), Defs([Def(Tid(1_494, "%000005d6"), Attrs([Attr("address","0x6B0"), -Attr("insn","adrp x16, #65536")]), Var("R16",Imm(64)), Int(65536,64)), -Def(Tid(1_501, "%000005dd"), Attrs([Attr("address","0x6B4"), -Attr("insn","ldr x17, [x16, #0xfc0]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(4032,64)),LittleEndian(),64)), -Def(Tid(1_507, "%000005e3"), Attrs([Attr("address","0x6B8"), -Attr("insn","add x16, x16, #0xfc0")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(4032,64)))]), Jmps([Call(Tid(1_512, "%000005e8"), - Attrs([Attr("address","0x6BC"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), Sub(Tid(1_784, "@main"), - Attrs([Attr("c.proto","signed (*)(signed argc, const char** argv)"), -Attr("address","0x814")]), "main", Args([Arg(Tid(1_805, "%0000070d"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("main_argc",Imm(32)), -LOW(32,Var("R0",Imm(64))), In()), Arg(Tid(1_806, "%0000070e"), - Attrs([Attr("c.layout","**[char : 8]"), Attr("c.data","Top:u8 ptr ptr"), -Attr("c.type"," const char**")]), Var("main_argv",Imm(64)), -Var("R1",Imm(64)), Both()), Arg(Tid(1_807, "%0000070f"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("main_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(814, "@main"), - Attrs([Attr("address","0x814")]), Phis([]), Defs([Def(Tid(818, "%00000332"), - Attrs([Attr("address","0x814"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("#4",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(18446744073709551584,64))), -Def(Tid(824, "%00000338"), Attrs([Attr("address","0x814"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("#4",Imm(64)),Var("R29",Imm(64)),LittleEndian(),64)), -Def(Tid(830, "%0000033e"), Attrs([Attr("address","0x814"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("#4",Imm(64)),Int(8,64)),Var("R30",Imm(64)),LittleEndian(),64)), -Def(Tid(834, "%00000342"), Attrs([Attr("address","0x814"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("R31",Imm(64)), -Var("#4",Imm(64))), Def(Tid(840, "%00000348"), - Attrs([Attr("address","0x818"), Attr("insn","mov x29, sp")]), - Var("R29",Imm(64)), Var("R31",Imm(64))), Def(Tid(845, "%0000034d"), - Attrs([Attr("address","0x81C"), Attr("insn","mov x0, #0x1")]), - Var("R0",Imm(64)), Int(1,64)), Def(Tid(850, "%00000352"), - Attrs([Attr("address","0x820"), Attr("insn","bl #-0x1a0")]), - Var("R30",Imm(64)), Int(2084,64))]), Jmps([Call(Tid(853, "%00000355"), - Attrs([Attr("address","0x820"), Attr("insn","bl #-0x1a0")]), Int(1,1), -(Direct(Tid(1_785, "@malloc")),Direct(Tid(855, "%00000357"))))])), -Blk(Tid(855, "%00000357"), Attrs([Attr("address","0x824")]), Phis([]), -Defs([Def(Tid(861, "%0000035d"), Attrs([Attr("address","0x824"), -Attr("insn","str x0, [sp, #0x10]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(16,64)),Var("R0",Imm(64)),LittleEndian(),64)), -Def(Tid(866, "%00000362"), Attrs([Attr("address","0x828"), -Attr("insn","mov x0, #0x4")]), Var("R0",Imm(64)), Int(4,64)), -Def(Tid(871, "%00000367"), Attrs([Attr("address","0x82C"), -Attr("insn","bl #-0x1ac")]), Var("R30",Imm(64)), Int(2096,64))]), -Jmps([Call(Tid(873, "%00000369"), Attrs([Attr("address","0x82C"), -Attr("insn","bl #-0x1ac")]), Int(1,1), -(Direct(Tid(1_785, "@malloc")),Direct(Tid(875, "%0000036b"))))])), -Blk(Tid(875, "%0000036b"), Attrs([Attr("address","0x830")]), Phis([]), -Defs([Def(Tid(881, "%00000371"), Attrs([Attr("address","0x830"), -Attr("insn","str x0, [sp, #0x18]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(24,64)),Var("R0",Imm(64)),LittleEndian(),64)), -Def(Tid(888, "%00000378"), Attrs([Attr("address","0x834"), -Attr("insn","ldr x0, [sp, #0x10]")]), Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(16,64)),LittleEndian(),64)), -Def(Tid(893, "%0000037d"), Attrs([Attr("address","0x838"), -Attr("insn","mov w1, #0x41")]), Var("R1",Imm(64)), Int(65,64)), -Def(Tid(901, "%00000385"), Attrs([Attr("address","0x83C"), -Attr("insn","strb w1, [x0]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("R0",Imm(64)),Extract(7,0,Var("R1",Imm(64))),LittleEndian(),8)), -Def(Tid(908, "%0000038c"), Attrs([Attr("address","0x840"), -Attr("insn","ldr x0, [sp, #0x18]")]), Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(24,64)),LittleEndian(),64)), -Def(Tid(913, "%00000391"), Attrs([Attr("address","0x844"), -Attr("insn","mov w1, #0x2a")]), Var("R1",Imm(64)), Int(42,64)), -Def(Tid(921, "%00000399"), Attrs([Attr("address","0x848"), -Attr("insn","str w1, [x0]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("R0",Imm(64)),Extract(31,0,Var("R1",Imm(64))),LittleEndian(),32)), -Def(Tid(928, "%000003a0"), Attrs([Attr("address","0x84C"), -Attr("insn","ldr x0, [sp, #0x10]")]), Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(16,64)),LittleEndian(),64)), -Def(Tid(935, "%000003a7"), Attrs([Attr("address","0x850"), -Attr("insn","ldrb w0, [x0]")]), Var("R0",Imm(64)), -UNSIGNED(64,Load(Var("mem",Mem(64,8)),Var("R0",Imm(64)),LittleEndian(),8))), -Def(Tid(941, "%000003ad"), Attrs([Attr("address","0x854"), -Attr("insn","mov w1, w0")]), Var("R1",Imm(64)), -UNSIGNED(64,Extract(31,0,Var("R0",Imm(64))))), Def(Tid(946, "%000003b2"), - Attrs([Attr("address","0x858"), Attr("insn","adrp x0, #0")]), - Var("R0",Imm(64)), Int(0,64)), Def(Tid(952, "%000003b8"), - Attrs([Attr("address","0x85C"), Attr("insn","add x0, x0, #0x8b8")]), - Var("R0",Imm(64)), PLUS(Var("R0",Imm(64)),Int(2232,64))), -Def(Tid(957, "%000003bd"), Attrs([Attr("address","0x860"), -Attr("insn","bl #-0x1a0")]), Var("R30",Imm(64)), Int(2148,64))]), -Jmps([Call(Tid(960, "%000003c0"), Attrs([Attr("address","0x860"), -Attr("insn","bl #-0x1a0")]), Int(1,1), -(Direct(Tid(1_786, "@printf")),Direct(Tid(962, "%000003c2"))))])), -Blk(Tid(962, "%000003c2"), Attrs([Attr("address","0x864")]), Phis([]), -Defs([Def(Tid(967, "%000003c7"), Attrs([Attr("address","0x864"), -Attr("insn","ldr x0, [sp, #0x18]")]), Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(24,64)),LittleEndian(),64)), -Def(Tid(974, "%000003ce"), Attrs([Attr("address","0x868"), -Attr("insn","ldr w0, [x0]")]), Var("R0",Imm(64)), -UNSIGNED(64,Load(Var("mem",Mem(64,8)),Var("R0",Imm(64)),LittleEndian(),32))), -Def(Tid(980, "%000003d4"), Attrs([Attr("address","0x86C"), -Attr("insn","mov w1, w0")]), Var("R1",Imm(64)), -UNSIGNED(64,Extract(31,0,Var("R0",Imm(64))))), Def(Tid(985, "%000003d9"), - Attrs([Attr("address","0x870"), Attr("insn","adrp x0, #0")]), - Var("R0",Imm(64)), Int(0,64)), Def(Tid(991, "%000003df"), - Attrs([Attr("address","0x874"), Attr("insn","add x0, x0, #0x8d0")]), - Var("R0",Imm(64)), PLUS(Var("R0",Imm(64)),Int(2256,64))), -Def(Tid(996, "%000003e4"), Attrs([Attr("address","0x878"), -Attr("insn","bl #-0x1b8")]), Var("R30",Imm(64)), Int(2172,64))]), -Jmps([Call(Tid(998, "%000003e6"), Attrs([Attr("address","0x878"), -Attr("insn","bl #-0x1b8")]), Int(1,1), -(Direct(Tid(1_786, "@printf")),Direct(Tid(1_000, "%000003e8"))))])), -Blk(Tid(1_000, "%000003e8"), Attrs([Attr("address","0x87C")]), Phis([]), -Defs([Def(Tid(1_005, "%000003ed"), Attrs([Attr("address","0x87C"), -Attr("insn","ldr x0, [sp, #0x10]")]), Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(16,64)),LittleEndian(),64)), -Def(Tid(1_010, "%000003f2"), Attrs([Attr("address","0x880"), -Attr("insn","bl #-0x1d0")]), Var("R30",Imm(64)), Int(2180,64))]), -Jmps([Call(Tid(1_013, "%000003f5"), Attrs([Attr("address","0x880"), -Attr("insn","bl #-0x1d0")]), Int(1,1), -(Direct(Tid(1_783, "@free")),Direct(Tid(1_015, "%000003f7"))))])), -Blk(Tid(1_015, "%000003f7"), Attrs([Attr("address","0x884")]), Phis([]), -Defs([Def(Tid(1_020, "%000003fc"), Attrs([Attr("address","0x884"), -Attr("insn","ldr x0, [sp, #0x18]")]), Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(24,64)),LittleEndian(),64)), -Def(Tid(1_025, "%00000401"), Attrs([Attr("address","0x888"), -Attr("insn","bl #-0x1d8")]), Var("R30",Imm(64)), Int(2188,64))]), -Jmps([Call(Tid(1_027, "%00000403"), Attrs([Attr("address","0x888"), -Attr("insn","bl #-0x1d8")]), Int(1,1), -(Direct(Tid(1_783, "@free")),Direct(Tid(1_029, "%00000405"))))])), -Blk(Tid(1_029, "%00000405"), Attrs([Attr("address","0x88C")]), Phis([]), -Defs([Def(Tid(1_032, "%00000408"), Attrs([Attr("address","0x88C"), -Attr("insn","mov w0, #0x0")]), Var("R0",Imm(64)), Int(0,64)), -Def(Tid(1_039, "%0000040f"), Attrs([Attr("address","0x890"), -Attr("insn","ldp x29, x30, [sp], #0x20")]), Var("R29",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(1_044, "%00000414"), Attrs([Attr("address","0x890"), -Attr("insn","ldp x29, x30, [sp], #0x20")]), Var("R30",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(1_048, "%00000418"), Attrs([Attr("address","0x890"), -Attr("insn","ldp x29, x30, [sp], #0x20")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(32,64)))]), Jmps([Call(Tid(1_053, "%0000041d"), - Attrs([Attr("address","0x894"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), Sub(Tid(1_785, "@malloc"), - Attrs([Attr("c.proto","void* (*)(unsigned long size)"), -Attr("address","0x680"), Attr("malloc","()"), Attr("stub","()")]), "malloc", - Args([Arg(Tid(1_808, "%00000710"), Attrs([Attr("alloc-size","()"), -Attr("c.layout","[unsigned long : 64]"), Attr("c.data","Top:u64"), -Attr("c.type","unsigned long")]), Var("malloc_size",Imm(64)), -Var("R0",Imm(64)), In()), Arg(Tid(1_809, "%00000711"), - Attrs([Attr("warn-unused","()"), Attr("c.layout","*[ : 8]"), -Attr("c.data","{} ptr"), Attr("c.type","void*")]), - Var("malloc_result",Imm(64)), Var("R0",Imm(64)), Out())]), -Blks([Blk(Tid(851, "@malloc"), Attrs([Attr("address","0x680")]), Phis([]), -Defs([Def(Tid(1_428, "%00000594"), Attrs([Attr("address","0x680"), -Attr("insn","adrp x16, #65536")]), Var("R16",Imm(64)), Int(65536,64)), -Def(Tid(1_435, "%0000059b"), Attrs([Attr("address","0x684"), -Attr("insn","ldr x17, [x16, #0xfa8]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(4008,64)),LittleEndian(),64)), -Def(Tid(1_441, "%000005a1"), Attrs([Attr("address","0x688"), -Attr("insn","add x16, x16, #0xfa8")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(4008,64)))]), Jmps([Call(Tid(1_446, "%000005a6"), - Attrs([Attr("address","0x68C"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), Sub(Tid(1_786, "@printf"), - Attrs([Attr("c.proto","signed (*)( const char restrict * format, ...)"), -Attr("address","0x6C0"), Attr("stub","()")]), "printf", - Args([Arg(Tid(1_810, "%00000712"), Attrs([Attr("format","\"printf\""), -Attr("c.layout","*[char : 8]"), Attr("c.data","Top:u8 ptr"), -Attr("c.type"," const char restrict *")]), Var("printf_format",Imm(64)), -Var("R0",Imm(64)), In()), Arg(Tid(1_811, "%00000713"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("printf_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(958, "@printf"), - Attrs([Attr("address","0x6C0")]), Phis([]), -Defs([Def(Tid(1_516, "%000005ec"), Attrs([Attr("address","0x6C0"), -Attr("insn","adrp x16, #65536")]), Var("R16",Imm(64)), Int(65536,64)), -Def(Tid(1_523, "%000005f3"), Attrs([Attr("address","0x6C4"), -Attr("insn","ldr x17, [x16, #0xfc8]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(4040,64)),LittleEndian(),64)), -Def(Tid(1_529, "%000005f9"), Attrs([Attr("address","0x6C8"), -Attr("insn","add x16, x16, #0xfc8")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(4040,64)))]), Jmps([Call(Tid(1_534, "%000005fe"), - Attrs([Attr("address","0x6CC"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), -Sub(Tid(1_787, "@register_tm_clones"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x780")]), - "register_tm_clones", Args([Arg(Tid(1_812, "%00000714"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("register_tm_clones_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(660, "@register_tm_clones"), Attrs([Attr("address","0x780")]), - Phis([]), Defs([Def(Tid(663, "%00000297"), Attrs([Attr("address","0x780"), -Attr("insn","adrp x0, #69632")]), Var("R0",Imm(64)), Int(69632,64)), -Def(Tid(669, "%0000029d"), Attrs([Attr("address","0x784"), -Attr("insn","add x0, x0, #0x10")]), Var("R0",Imm(64)), -PLUS(Var("R0",Imm(64)),Int(16,64))), Def(Tid(674, "%000002a2"), - Attrs([Attr("address","0x788"), Attr("insn","adrp x1, #69632")]), - Var("R1",Imm(64)), Int(69632,64)), Def(Tid(680, "%000002a8"), - Attrs([Attr("address","0x78C"), Attr("insn","add x1, x1, #0x10")]), - Var("R1",Imm(64)), PLUS(Var("R1",Imm(64)),Int(16,64))), -Def(Tid(687, "%000002af"), Attrs([Attr("address","0x790"), -Attr("insn","sub x1, x1, x0")]), Var("R1",Imm(64)), -PLUS(PLUS(Var("R1",Imm(64)),NOT(Var("R0",Imm(64)))),Int(1,64))), -Def(Tid(693, "%000002b5"), Attrs([Attr("address","0x794"), -Attr("insn","lsr x2, x1, #63")]), Var("R2",Imm(64)), -Concat(Int(0,63),Extract(63,63,Var("R1",Imm(64))))), -Def(Tid(700, "%000002bc"), Attrs([Attr("address","0x798"), -Attr("insn","add x1, x2, x1, asr #3")]), Var("R1",Imm(64)), -PLUS(Var("R2",Imm(64)),ARSHIFT(Var("R1",Imm(64)),Int(3,3)))), -Def(Tid(706, "%000002c2"), Attrs([Attr("address","0x79C"), -Attr("insn","asr x1, x1, #1")]), Var("R1",Imm(64)), -SIGNED(64,Extract(63,1,Var("R1",Imm(64)))))]), -Jmps([Goto(Tid(712, "%000002c8"), Attrs([Attr("address","0x7A0"), -Attr("insn","cbz x1, #0x18")]), EQ(Var("R1",Imm(64)),Int(0,64)), -Direct(Tid(710, "%000002c6"))), Goto(Tid(1_788, "%000006fc"), Attrs([]), - Int(1,1), Direct(Tid(1_114, "%0000045a")))])), Blk(Tid(1_114, "%0000045a"), - Attrs([Attr("address","0x7A4")]), Phis([]), -Defs([Def(Tid(1_117, "%0000045d"), Attrs([Attr("address","0x7A4"), -Attr("insn","adrp x2, #65536")]), Var("R2",Imm(64)), Int(65536,64)), -Def(Tid(1_124, "%00000464"), Attrs([Attr("address","0x7A8"), -Attr("insn","ldr x2, [x2, #0xff8]")]), Var("R2",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R2",Imm(64)),Int(4088,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(1_129, "%00000469"), Attrs([Attr("address","0x7AC"), -Attr("insn","cbz x2, #0xc")]), EQ(Var("R2",Imm(64)),Int(0,64)), -Direct(Tid(710, "%000002c6"))), Goto(Tid(1_789, "%000006fd"), Attrs([]), - Int(1,1), Direct(Tid(1_133, "%0000046d")))])), Blk(Tid(710, "%000002c6"), - Attrs([Attr("address","0x7B8")]), Phis([]), Defs([]), -Jmps([Call(Tid(718, "%000002ce"), Attrs([Attr("address","0x7B8"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))])), -Blk(Tid(1_133, "%0000046d"), Attrs([Attr("address","0x7B0")]), Phis([]), -Defs([Def(Tid(1_137, "%00000471"), Attrs([Attr("address","0x7B0"), -Attr("insn","mov x16, x2")]), Var("R16",Imm(64)), Var("R2",Imm(64)))]), -Jmps([Call(Tid(1_142, "%00000476"), Attrs([Attr("address","0x7B4"), -Attr("insn","br x16")]), Int(1,1), -(Indirect(Var("R16",Imm(64))),))]))]))]))) \ No newline at end of file diff --git a/src/test/correct/multi_malloc/gcc/multi_malloc.bir b/src/test/correct/multi_malloc/gcc/multi_malloc.bir deleted file mode 100644 index c8d7afdf3..000000000 --- a/src/test/correct/multi_malloc/gcc/multi_malloc.bir +++ /dev/null @@ -1,307 +0,0 @@ -000006fe: program -000006e5: sub __cxa_finalize(__cxa_finalize_result) -000006ff: __cxa_finalize_result :: out u32 = low:32[R0] - -00000456: -0000057e: R16 := 0x10000 -00000585: R17 := mem[R16 + 0xFA0, el]:u64 -0000058b: R16 := R16 + 0xFA0 -00000590: call R17 with noreturn - -000006e6: sub __do_global_dtors_aux(__do_global_dtors_aux_result) -00000700: __do_global_dtors_aux_result :: out u32 = low:32[R0] - -000002d2: -000002d6: #3 := R31 - 0x20 -000002dc: mem := mem with [#3, el]:u64 <- R29 -000002e2: mem := mem with [#3 + 8, el]:u64 <- R30 -000002e6: R31 := #3 -000002ec: R29 := R31 -000002f4: mem := mem with [R31 + 0x10, el]:u64 <- R19 -000002f9: R19 := 0x11000 -00000300: R0 := pad:64[mem[R19 + 0x10]] -00000307: when 31:0[R0] <> 0 goto %00000305 -000006e7: goto %0000041f - -0000041f: -00000422: R0 := 0x10000 -00000429: R0 := mem[R0 + 0xFE0, el]:u64 -0000042f: when R0 = 0 goto %0000042d -000006e8: goto %00000446 - -00000446: -00000449: R0 := 0x11000 -00000450: R0 := mem[R0 + 8, el]:u64 -00000455: R30 := 0x7F0 -00000458: call @__cxa_finalize with return %0000042d - -0000042d: -00000435: R30 := 0x7F4 -00000437: call @deregister_tm_clones with return %00000439 - -00000439: -0000043c: R0 := 1 -00000444: mem := mem with [R19 + 0x10] <- 7:0[R0] -000006e9: goto %00000305 - -00000305: -0000030f: R19 := mem[R31 + 0x10, el]:u64 -00000316: R29 := mem[R31, el]:u64 -0000031b: R30 := mem[R31 + 8, el]:u64 -0000031f: R31 := R31 + 0x20 -00000324: call R30 with noreturn - -000006ea: sub __libc_start_main(__libc_start_main_main, __libc_start_main_arg2, __libc_start_main_arg3, __libc_start_main_auxv, __libc_start_main_result) -00000701: __libc_start_main_main :: in u64 = R0 -00000702: __libc_start_main_arg2 :: in u32 = low:32[R1] -00000703: __libc_start_main_arg3 :: in out u64 = R2 -00000704: __libc_start_main_auxv :: in out u64 = R3 -00000705: __libc_start_main_result :: out u32 = low:32[R0] - -0000022b: -00000568: R16 := 0x10000 -0000056f: R17 := mem[R16 + 0xF98, el]:u64 -00000575: R16 := R16 + 0xF98 -0000057a: call R17 with noreturn - -000006eb: sub _fini(_fini_result) -00000706: _fini_result :: out u32 = low:32[R0] - -0000001f: -00000025: #0 := R31 - 0x10 -0000002b: mem := mem with [#0, el]:u64 <- R29 -00000031: mem := mem with [#0 + 8, el]:u64 <- R30 -00000035: R31 := #0 -0000003b: R29 := R31 -00000042: R29 := mem[R31, el]:u64 -00000047: R30 := mem[R31 + 8, el]:u64 -0000004b: R31 := R31 + 0x10 -00000050: call R30 with noreturn - -000006ec: sub _init(_init_result) -00000707: _init_result :: out u32 = low:32[R0] - -0000061a: -00000620: #6 := R31 - 0x10 -00000626: mem := mem with [#6, el]:u64 <- R29 -0000062c: mem := mem with [#6 + 8, el]:u64 <- R30 -00000630: R31 := #6 -00000636: R29 := R31 -0000063b: R30 := 0x638 -0000063d: call @call_weak_fn with return %0000063f - -0000063f: -00000644: R29 := mem[R31, el]:u64 -00000649: R30 := mem[R31 + 8, el]:u64 -0000064d: R31 := R31 + 0x10 -00000652: call R30 with noreturn - -000006ed: sub _start(_start_result) -00000708: _start_result :: out u32 = low:32[R0] - -000001ec: -000001f1: R29 := 0 -000001f6: R30 := 0 -000001fc: R5 := R0 -00000203: R1 := mem[R31, el]:u64 -00000209: R2 := R31 + 8 -0000020f: R6 := R31 -00000214: R0 := 0x10000 -0000021b: R0 := mem[R0 + 0xFF0, el]:u64 -00000220: R3 := 0 -00000225: R4 := 0 -0000022a: R30 := 0x730 -0000022d: call @__libc_start_main with return %0000022f - -0000022f: -00000232: R30 := 0x734 -00000235: call @abort with return %000006ee - -000006ee: -000006ef: call @call_weak_fn with noreturn - -000006f0: sub abort() - - -00000233: -000005c0: R16 := 0x10000 -000005c7: R17 := mem[R16 + 0xFB8, el]:u64 -000005cd: R16 := R16 + 0xFB8 -000005d2: call R17 with noreturn - -000006f1: sub call_weak_fn(call_weak_fn_result) -00000709: call_weak_fn_result :: out u32 = low:32[R0] - -00000237: -0000023a: R0 := 0x10000 -00000241: R0 := mem[R0 + 0xFE8, el]:u64 -00000247: when R0 = 0 goto %00000245 -000006f2: goto %00000496 - -00000245: -0000024d: call R30 with noreturn - -00000496: -00000499: goto @__gmon_start__ - -00000497: -000005aa: R16 := 0x10000 -000005b1: R17 := mem[R16 + 0xFB0, el]:u64 -000005b7: R16 := R16 + 0xFB0 -000005bc: call R17 with noreturn - -000006f3: sub deregister_tm_clones(deregister_tm_clones_result) -0000070a: deregister_tm_clones_result :: out u32 = low:32[R0] - -00000253: -00000256: R0 := 0x11000 -0000025c: R0 := R0 + 0x10 -00000261: R1 := 0x11000 -00000267: R1 := R1 + 0x10 -0000026d: #1 := ~R0 -00000272: #2 := R1 + ~R0 -00000278: VF := extend:65[#2 + 1] <> extend:65[R1] + extend:65[#1] + 1 -0000027e: CF := pad:65[#2 + 1] <> pad:65[R1] + pad:65[#1] + 1 -00000282: ZF := #2 + 1 = 0 -00000286: NF := 63:63[#2 + 1] -0000028c: when ZF goto %0000028a -000006f4: goto %00000478 - -00000478: -0000047b: R1 := 0x10000 -00000482: R1 := mem[R1 + 0xFD8, el]:u64 -00000487: when R1 = 0 goto %0000028a -000006f5: goto %0000048b - -0000028a: -00000292: call R30 with noreturn - -0000048b: -0000048f: R16 := R1 -00000494: call R16 with noreturn - -000006f6: sub frame_dummy(frame_dummy_result) -0000070b: frame_dummy_result :: out u32 = low:32[R0] - -0000032a: -0000032c: call @register_tm_clones with noreturn - -000006f7: sub free(free_ptr) -0000070c: free_ptr :: in out u64 = R0 - -000003f3: -000005d6: R16 := 0x10000 -000005dd: R17 := mem[R16 + 0xFC0, el]:u64 -000005e3: R16 := R16 + 0xFC0 -000005e8: call R17 with noreturn - -000006f8: sub main(main_argc, main_argv, main_result) -0000070d: main_argc :: in u32 = low:32[R0] -0000070e: main_argv :: in out u64 = R1 -0000070f: main_result :: out u32 = low:32[R0] - -0000032e: -00000332: #4 := R31 - 0x20 -00000338: mem := mem with [#4, el]:u64 <- R29 -0000033e: mem := mem with [#4 + 8, el]:u64 <- R30 -00000342: R31 := #4 -00000348: R29 := R31 -0000034d: R0 := 1 -00000352: R30 := 0x824 -00000355: call @malloc with return %00000357 - -00000357: -0000035d: mem := mem with [R31 + 0x10, el]:u64 <- R0 -00000362: R0 := 4 -00000367: R30 := 0x830 -00000369: call @malloc with return %0000036b - -0000036b: -00000371: mem := mem with [R31 + 0x18, el]:u64 <- R0 -00000378: R0 := mem[R31 + 0x10, el]:u64 -0000037d: R1 := 0x41 -00000385: mem := mem with [R0] <- 7:0[R1] -0000038c: R0 := mem[R31 + 0x18, el]:u64 -00000391: R1 := 0x2A -00000399: mem := mem with [R0, el]:u32 <- 31:0[R1] -000003a0: R0 := mem[R31 + 0x10, el]:u64 -000003a7: R0 := pad:64[mem[R0]] -000003ad: R1 := pad:64[31:0[R0]] -000003b2: R0 := 0 -000003b8: R0 := R0 + 0x8B8 -000003bd: R30 := 0x864 -000003c0: call @printf with return %000003c2 - -000003c2: -000003c7: R0 := mem[R31 + 0x18, el]:u64 -000003ce: R0 := pad:64[mem[R0, el]:u32] -000003d4: R1 := pad:64[31:0[R0]] -000003d9: R0 := 0 -000003df: R0 := R0 + 0x8D0 -000003e4: R30 := 0x87C -000003e6: call @printf with return %000003e8 - -000003e8: -000003ed: R0 := mem[R31 + 0x10, el]:u64 -000003f2: R30 := 0x884 -000003f5: call @free with return %000003f7 - -000003f7: -000003fc: R0 := mem[R31 + 0x18, el]:u64 -00000401: R30 := 0x88C -00000403: call @free with return %00000405 - -00000405: -00000408: R0 := 0 -0000040f: R29 := mem[R31, el]:u64 -00000414: R30 := mem[R31 + 8, el]:u64 -00000418: R31 := R31 + 0x20 -0000041d: call R30 with noreturn - -000006f9: sub malloc(malloc_size, malloc_result) -00000710: malloc_size :: in u64 = R0 -00000711: malloc_result :: out u64 = R0 - -00000353: -00000594: R16 := 0x10000 -0000059b: R17 := mem[R16 + 0xFA8, el]:u64 -000005a1: R16 := R16 + 0xFA8 -000005a6: call R17 with noreturn - -000006fa: sub printf(printf_format, printf_result) -00000712: printf_format :: in u64 = R0 -00000713: printf_result :: out u32 = low:32[R0] - -000003be: -000005ec: R16 := 0x10000 -000005f3: R17 := mem[R16 + 0xFC8, el]:u64 -000005f9: R16 := R16 + 0xFC8 -000005fe: call R17 with noreturn - -000006fb: sub register_tm_clones(register_tm_clones_result) -00000714: register_tm_clones_result :: out u32 = low:32[R0] - -00000294: -00000297: R0 := 0x11000 -0000029d: R0 := R0 + 0x10 -000002a2: R1 := 0x11000 -000002a8: R1 := R1 + 0x10 -000002af: R1 := R1 + ~R0 + 1 -000002b5: R2 := 0.63:63[R1] -000002bc: R1 := R2 + (R1 ~>> 3) -000002c2: R1 := extend:64[63:1[R1]] -000002c8: when R1 = 0 goto %000002c6 -000006fc: goto %0000045a - -0000045a: -0000045d: R2 := 0x10000 -00000464: R2 := mem[R2 + 0xFF8, el]:u64 -00000469: when R2 = 0 goto %000002c6 -000006fd: goto %0000046d - -000002c6: -000002ce: call R30 with noreturn - -0000046d: -00000471: R16 := R2 -00000476: call R16 with noreturn diff --git a/src/test/correct/multi_malloc/gcc/multi_malloc.expected b/src/test/correct/multi_malloc/gcc/multi_malloc.expected index 54bcdb93e..ed1ba42f2 100644 --- a/src/test/correct/multi_malloc/gcc/multi_malloc.expected +++ b/src/test/correct/multi_malloc/gcc/multi_malloc.expected @@ -2,6 +2,7 @@ var {:extern} Gamma_R0: bool; var {:extern} Gamma_R1: bool; var {:extern} Gamma_R16: bool; var {:extern} Gamma_R17: bool; +var {:extern} Gamma_R2: bool; var {:extern} Gamma_R29: bool; var {:extern} Gamma_R30: bool; var {:extern} Gamma_R31: bool; @@ -11,82 +12,41 @@ var {:extern} R0: bv64; var {:extern} R1: bv64; var {:extern} R16: bv64; var {:extern} R17: bv64; +var {:extern} R2: bv64; var {:extern} R29: bv64; var {:extern} R30: bv64; var {:extern} R31: bv64; var {:extern} mem: [bv64]bv8; var {:extern} stack: [bv64]bv8; const {:extern} $_IO_stdin_used_addr: bv64; -axiom ($_IO_stdin_used_addr == 2224bv64); -function {:extern} L(mem$in: [bv64]bv8, index: bv64) returns (bool) { - false -} - +axiom ($_IO_stdin_used_addr == 4196376bv64); function {:extern} {:bvbuiltin "bvadd"} bvadd64(bv64, bv64) returns (bv64); -function {:extern} gamma_load32(gammaMap: [bv64]bool, index: bv64) returns (bool) { - (gammaMap[bvadd64(index, 3bv64)] && (gammaMap[bvadd64(index, 2bv64)] && (gammaMap[bvadd64(index, 1bv64)] && gammaMap[index]))) -} - function {:extern} gamma_load64(gammaMap: [bv64]bool, index: bv64) returns (bool) { (gammaMap[bvadd64(index, 7bv64)] && (gammaMap[bvadd64(index, 6bv64)] && (gammaMap[bvadd64(index, 5bv64)] && (gammaMap[bvadd64(index, 4bv64)] && (gammaMap[bvadd64(index, 3bv64)] && (gammaMap[bvadd64(index, 2bv64)] && (gammaMap[bvadd64(index, 1bv64)] && gammaMap[index]))))))) } -function {:extern} gamma_load8(gammaMap: [bv64]bool, index: bv64) returns (bool) { - gammaMap[index] -} - -function {:extern} gamma_store32(gammaMap: [bv64]bool, index: bv64, value: bool) returns ([bv64]bool) { - gammaMap[index := value][bvadd64(index, 1bv64) := value][bvadd64(index, 2bv64) := value][bvadd64(index, 3bv64) := value] -} - function {:extern} gamma_store64(gammaMap: [bv64]bool, index: bv64, value: bool) returns ([bv64]bool) { gammaMap[index := value][bvadd64(index, 1bv64) := value][bvadd64(index, 2bv64) := value][bvadd64(index, 3bv64) := value][bvadd64(index, 4bv64) := value][bvadd64(index, 5bv64) := value][bvadd64(index, 6bv64) := value][bvadd64(index, 7bv64) := value] } -function {:extern} gamma_store8(gammaMap: [bv64]bool, index: bv64, value: bool) returns ([bv64]bool) { - gammaMap[index := value] -} - -function {:extern} memory_load32_le(memory: [bv64]bv8, index: bv64) returns (bv32) { - (memory[bvadd64(index, 3bv64)] ++ (memory[bvadd64(index, 2bv64)] ++ (memory[bvadd64(index, 1bv64)] ++ memory[index]))) -} - function {:extern} memory_load64_le(memory: [bv64]bv8, index: bv64) returns (bv64) { (memory[bvadd64(index, 7bv64)] ++ (memory[bvadd64(index, 6bv64)] ++ (memory[bvadd64(index, 5bv64)] ++ (memory[bvadd64(index, 4bv64)] ++ (memory[bvadd64(index, 3bv64)] ++ (memory[bvadd64(index, 2bv64)] ++ (memory[bvadd64(index, 1bv64)] ++ memory[index]))))))) } -function {:extern} memory_load8_le(memory: [bv64]bv8, index: bv64) returns (bv8) { - memory[index] -} - -function {:extern} memory_store32_le(memory: [bv64]bv8, index: bv64, value: bv32) returns ([bv64]bv8) { - memory[index := value[8:0]][bvadd64(index, 1bv64) := value[16:8]][bvadd64(index, 2bv64) := value[24:16]][bvadd64(index, 3bv64) := value[32:24]] -} - function {:extern} memory_store64_le(memory: [bv64]bv8, index: bv64, value: bv64) returns ([bv64]bv8) { memory[index := value[8:0]][bvadd64(index, 1bv64) := value[16:8]][bvadd64(index, 2bv64) := value[24:16]][bvadd64(index, 3bv64) := value[32:24]][bvadd64(index, 4bv64) := value[40:32]][bvadd64(index, 5bv64) := value[48:40]][bvadd64(index, 6bv64) := value[56:48]][bvadd64(index, 7bv64) := value[64:56]] } -function {:extern} memory_store8_le(memory: [bv64]bv8, index: bv64, value: bv8) returns ([bv64]bv8) { - memory[index := value[8:0]] -} - -function {:extern} {:bvbuiltin "zero_extend 32"} zero_extend32_32(bv32) returns (bv64); -function {:extern} {:bvbuiltin "zero_extend 56"} zero_extend56_8(bv8) returns (bv64); procedure {:extern} rely(); modifies Gamma_mem, mem; ensures (Gamma_mem == old(Gamma_mem)); ensures (mem == old(mem)); - free ensures (memory_load64_le(mem, 2224bv64) == 131073bv64); - free ensures (memory_load64_le(mem, 2232bv64) == 8241983568019286100bv64); - free ensures (memory_load64_le(mem, 2240bv64) == 748482783423457568bv64); - free ensures (memory_load64_le(mem, 2248bv64) == 0bv64); - free ensures (memory_load64_le(mem, 2256bv64) == 2338615504306268244bv64); - free ensures (memory_load64_le(mem, 2264bv64) == 2924860384375657bv64); - free ensures (memory_load64_le(mem, 68992bv64) == 2064bv64); - free ensures (memory_load64_le(mem, 69000bv64) == 1984bv64); - free ensures (memory_load64_le(mem, 69616bv64) == 2068bv64); - free ensures (memory_load64_le(mem, 69640bv64) == 69640bv64); + free ensures (memory_load64_le(mem, 4196376bv64) == 131073bv64); + free ensures (memory_load64_le(mem, 4196384bv64) == 8241983568019286100bv64); + free ensures (memory_load64_le(mem, 4196392bv64) == 748482783423457568bv64); + free ensures (memory_load64_le(mem, 4196400bv64) == 0bv64); + free ensures (memory_load64_le(mem, 4196408bv64) == 2338615504306268244bv64); + free ensures (memory_load64_le(mem, 4196416bv64) == 2924860384375657bv64); procedure {:extern} rely_transitive(); modifies Gamma_mem, mem; @@ -104,216 +64,86 @@ procedure {:extern} rely_reflexive(); procedure {:extern} guarantee_reflexive(); modifies Gamma_mem, mem; -procedure #free_1712(); +procedure __printf_chk(); modifies Gamma_R16, Gamma_R17, R16, R17; - free requires (memory_load64_le(mem, 2224bv64) == 131073bv64); - free requires (memory_load64_le(mem, 2232bv64) == 8241983568019286100bv64); - free requires (memory_load64_le(mem, 2240bv64) == 748482783423457568bv64); - free requires (memory_load64_le(mem, 2248bv64) == 0bv64); - free requires (memory_load64_le(mem, 2256bv64) == 2338615504306268244bv64); - free requires (memory_load64_le(mem, 2264bv64) == 2924860384375657bv64); - free requires (memory_load64_le(mem, 68992bv64) == 2064bv64); - free requires (memory_load64_le(mem, 69000bv64) == 1984bv64); - free requires (memory_load64_le(mem, 69616bv64) == 2068bv64); - free requires (memory_load64_le(mem, 69640bv64) == 69640bv64); - free ensures (memory_load64_le(mem, 2224bv64) == 131073bv64); - free ensures (memory_load64_le(mem, 2232bv64) == 8241983568019286100bv64); - free ensures (memory_load64_le(mem, 2240bv64) == 748482783423457568bv64); - free ensures (memory_load64_le(mem, 2248bv64) == 0bv64); - free ensures (memory_load64_le(mem, 2256bv64) == 2338615504306268244bv64); - free ensures (memory_load64_le(mem, 2264bv64) == 2924860384375657bv64); - free ensures (memory_load64_le(mem, 68992bv64) == 2064bv64); - free ensures (memory_load64_le(mem, 69000bv64) == 1984bv64); - free ensures (memory_load64_le(mem, 69616bv64) == 2068bv64); - free ensures (memory_load64_le(mem, 69640bv64) == 69640bv64); - -procedure main_2068(); - modifies Gamma_R0, Gamma_R1, Gamma_R16, Gamma_R17, Gamma_R29, Gamma_R30, Gamma_R31, Gamma_mem, Gamma_stack, R0, R1, R16, R17, R29, R30, R31, mem, stack; - free requires (memory_load64_le(mem, 69632bv64) == 0bv64); - free requires (memory_load64_le(mem, 69640bv64) == 69640bv64); - free requires (memory_load64_le(mem, 2224bv64) == 131073bv64); - free requires (memory_load64_le(mem, 2232bv64) == 8241983568019286100bv64); - free requires (memory_load64_le(mem, 2240bv64) == 748482783423457568bv64); - free requires (memory_load64_le(mem, 2248bv64) == 0bv64); - free requires (memory_load64_le(mem, 2256bv64) == 2338615504306268244bv64); - free requires (memory_load64_le(mem, 2264bv64) == 2924860384375657bv64); - free requires (memory_load64_le(mem, 68992bv64) == 2064bv64); - free requires (memory_load64_le(mem, 69000bv64) == 1984bv64); - free requires (memory_load64_le(mem, 69616bv64) == 2068bv64); - free requires (memory_load64_le(mem, 69640bv64) == 69640bv64); + free requires (memory_load64_le(mem, 4196376bv64) == 131073bv64); + free requires (memory_load64_le(mem, 4196384bv64) == 8241983568019286100bv64); + free requires (memory_load64_le(mem, 4196392bv64) == 748482783423457568bv64); + free requires (memory_load64_le(mem, 4196400bv64) == 0bv64); + free requires (memory_load64_le(mem, 4196408bv64) == 2338615504306268244bv64); + free requires (memory_load64_le(mem, 4196416bv64) == 2924860384375657bv64); + free ensures (memory_load64_le(mem, 4196376bv64) == 131073bv64); + free ensures (memory_load64_le(mem, 4196384bv64) == 8241983568019286100bv64); + free ensures (memory_load64_le(mem, 4196392bv64) == 748482783423457568bv64); + free ensures (memory_load64_le(mem, 4196400bv64) == 0bv64); + free ensures (memory_load64_le(mem, 4196408bv64) == 2338615504306268244bv64); + free ensures (memory_load64_le(mem, 4196416bv64) == 2924860384375657bv64); + +procedure main(); + modifies Gamma_R0, Gamma_R1, Gamma_R16, Gamma_R17, Gamma_R2, Gamma_R29, Gamma_R30, Gamma_R31, Gamma_stack, R0, R1, R16, R17, R2, R29, R30, R31, stack; + free requires (memory_load64_le(mem, 4325376bv64) == 0bv64); + free requires (memory_load64_le(mem, 4325384bv64) == 0bv64); + free requires (memory_load64_le(mem, 4196376bv64) == 131073bv64); + free requires (memory_load64_le(mem, 4196384bv64) == 8241983568019286100bv64); + free requires (memory_load64_le(mem, 4196392bv64) == 748482783423457568bv64); + free requires (memory_load64_le(mem, 4196400bv64) == 0bv64); + free requires (memory_load64_le(mem, 4196408bv64) == 2338615504306268244bv64); + free requires (memory_load64_le(mem, 4196416bv64) == 2924860384375657bv64); free ensures (Gamma_R29 == old(Gamma_R29)); free ensures (Gamma_R31 == old(Gamma_R31)); free ensures (R29 == old(R29)); free ensures (R31 == old(R31)); - free ensures (memory_load64_le(mem, 2224bv64) == 131073bv64); - free ensures (memory_load64_le(mem, 2232bv64) == 8241983568019286100bv64); - free ensures (memory_load64_le(mem, 2240bv64) == 748482783423457568bv64); - free ensures (memory_load64_le(mem, 2248bv64) == 0bv64); - free ensures (memory_load64_le(mem, 2256bv64) == 2338615504306268244bv64); - free ensures (memory_load64_le(mem, 2264bv64) == 2924860384375657bv64); - free ensures (memory_load64_le(mem, 68992bv64) == 2064bv64); - free ensures (memory_load64_le(mem, 69000bv64) == 1984bv64); - free ensures (memory_load64_le(mem, 69616bv64) == 2068bv64); - free ensures (memory_load64_le(mem, 69640bv64) == 69640bv64); - -implementation main_2068() + free ensures (memory_load64_le(mem, 4196376bv64) == 131073bv64); + free ensures (memory_load64_le(mem, 4196384bv64) == 8241983568019286100bv64); + free ensures (memory_load64_le(mem, 4196392bv64) == 748482783423457568bv64); + free ensures (memory_load64_le(mem, 4196400bv64) == 0bv64); + free ensures (memory_load64_le(mem, 4196408bv64) == 2338615504306268244bv64); + free ensures (memory_load64_le(mem, 4196416bv64) == 2924860384375657bv64); + +implementation main() { - var #4: bv64; - var Gamma_#4: bool; - var Gamma_load19: bool; - var Gamma_load20: bool; - var Gamma_load21: bool; - var Gamma_load22: bool; - var Gamma_load23: bool; - var Gamma_load24: bool; - var Gamma_load25: bool; - var Gamma_load26: bool; - var Gamma_load27: bool; - var Gamma_load28: bool; - var load19: bv64; - var load20: bv64; - var load21: bv64; - var load22: bv8; - var load23: bv64; - var load24: bv32; - var load25: bv64; - var load26: bv64; - var load27: bv64; - var load28: bv64; + var #1: bv64; + var $load$15: bv64; + var $load$16: bv64; + var Gamma_#1: bool; + var Gamma_$load$15: bool; + var Gamma_$load$16: bool; lmain: assume {:captureState "lmain"} true; - #4, Gamma_#4 := bvadd64(R31, 18446744073709551584bv64), Gamma_R31; - stack, Gamma_stack := memory_store64_le(stack, #4, R29), gamma_store64(Gamma_stack, #4, Gamma_R29); - assume {:captureState "%00000338"} true; - stack, Gamma_stack := memory_store64_le(stack, bvadd64(#4, 8bv64), R30), gamma_store64(Gamma_stack, bvadd64(#4, 8bv64), Gamma_R30); - assume {:captureState "%0000033e"} true; - R31, Gamma_R31 := #4, Gamma_#4; + #1, Gamma_#1 := bvadd64(R31, 18446744073709551600bv64), Gamma_R31; + stack, Gamma_stack := memory_store64_le(stack, #1, R29), gamma_store64(Gamma_stack, #1, Gamma_R29); + assume {:captureState "%00000268"} true; + stack, Gamma_stack := memory_store64_le(stack, bvadd64(#1, 8bv64), R30), gamma_store64(Gamma_stack, bvadd64(#1, 8bv64), Gamma_R30); + assume {:captureState "%0000026c"} true; + R31, Gamma_R31 := #1, Gamma_#1; + R2, Gamma_R2 := 65bv64, true; + R1, Gamma_R1 := 4194304bv64, true; R29, Gamma_R29 := R31, Gamma_R31; - R0, Gamma_R0 := 1bv64, true; - R30, Gamma_R30 := 2084bv64, true; - call malloc_1664(); - goto l00000357; - l00000357: - assume {:captureState "l00000357"} true; - stack, Gamma_stack := memory_store64_le(stack, bvadd64(R31, 16bv64), R0), gamma_store64(Gamma_stack, bvadd64(R31, 16bv64), Gamma_R0); - assume {:captureState "%0000035d"} true; - R0, Gamma_R0 := 4bv64, true; - R30, Gamma_R30 := 2096bv64, true; - call malloc_1664(); - goto l0000036b; - l0000036b: - assume {:captureState "l0000036b"} true; - stack, Gamma_stack := memory_store64_le(stack, bvadd64(R31, 24bv64), R0), gamma_store64(Gamma_stack, bvadd64(R31, 24bv64), Gamma_R0); - assume {:captureState "%00000371"} true; - load19, Gamma_load19 := memory_load64_le(stack, bvadd64(R31, 16bv64)), gamma_load64(Gamma_stack, bvadd64(R31, 16bv64)); - R0, Gamma_R0 := load19, Gamma_load19; - R1, Gamma_R1 := 65bv64, true; - call rely(); - assert (L(mem, R0) ==> Gamma_R1); - mem, Gamma_mem := memory_store8_le(mem, R0, R1[8:0]), gamma_store8(Gamma_mem, R0, Gamma_R1); - assume {:captureState "%00000385"} true; - load20, Gamma_load20 := memory_load64_le(stack, bvadd64(R31, 24bv64)), gamma_load64(Gamma_stack, bvadd64(R31, 24bv64)); - R0, Gamma_R0 := load20, Gamma_load20; - R1, Gamma_R1 := 42bv64, true; - call rely(); - assert (L(mem, R0) ==> Gamma_R1); - mem, Gamma_mem := memory_store32_le(mem, R0, R1[32:0]), gamma_store32(Gamma_mem, R0, Gamma_R1); - assume {:captureState "%00000399"} true; - load21, Gamma_load21 := memory_load64_le(stack, bvadd64(R31, 16bv64)), gamma_load64(Gamma_stack, bvadd64(R31, 16bv64)); - R0, Gamma_R0 := load21, Gamma_load21; - call rely(); - load22, Gamma_load22 := memory_load8_le(mem, R0), (gamma_load8(Gamma_mem, R0) || L(mem, R0)); - R0, Gamma_R0 := zero_extend56_8(load22), Gamma_load22; - R1, Gamma_R1 := zero_extend32_32(R0[32:0]), Gamma_R0; + R1, Gamma_R1 := bvadd64(R1, 2080bv64), Gamma_R1; + R0, Gamma_R0 := 2bv64, true; + R30, Gamma_R30 := 4196060bv64, true; + call __printf_chk(); + goto l00000290; + l00000290: + assume {:captureState "l00000290"} true; + R2, Gamma_R2 := 42bv64, true; + R1, Gamma_R1 := 4194304bv64, true; + R0, Gamma_R0 := 2bv64, true; + R1, Gamma_R1 := bvadd64(R1, 2104bv64), Gamma_R1; + R30, Gamma_R30 := 4196080bv64, true; + call __printf_chk(); + goto l000002ac; + l000002ac: + assume {:captureState "l000002ac"} true; R0, Gamma_R0 := 0bv64, true; - R0, Gamma_R0 := bvadd64(R0, 2232bv64), Gamma_R0; - R30, Gamma_R30 := 2148bv64, true; - call printf_1728(); - goto l000003c2; - l000003c2: - assume {:captureState "l000003c2"} true; - load23, Gamma_load23 := memory_load64_le(stack, bvadd64(R31, 24bv64)), gamma_load64(Gamma_stack, bvadd64(R31, 24bv64)); - R0, Gamma_R0 := load23, Gamma_load23; - call rely(); - load24, Gamma_load24 := memory_load32_le(mem, R0), (gamma_load32(Gamma_mem, R0) || L(mem, R0)); - R0, Gamma_R0 := zero_extend32_32(load24), Gamma_load24; - R1, Gamma_R1 := zero_extend32_32(R0[32:0]), Gamma_R0; - R0, Gamma_R0 := 0bv64, true; - R0, Gamma_R0 := bvadd64(R0, 2256bv64), Gamma_R0; - R30, Gamma_R30 := 2172bv64, true; - call printf_1728(); - goto l000003e8; - l000003e8: - assume {:captureState "l000003e8"} true; - load25, Gamma_load25 := memory_load64_le(stack, bvadd64(R31, 16bv64)), gamma_load64(Gamma_stack, bvadd64(R31, 16bv64)); - R0, Gamma_R0 := load25, Gamma_load25; - R30, Gamma_R30 := 2180bv64, true; - call #free_1712(); - goto l000003f7; - l000003f7: - assume {:captureState "l000003f7"} true; - load26, Gamma_load26 := memory_load64_le(stack, bvadd64(R31, 24bv64)), gamma_load64(Gamma_stack, bvadd64(R31, 24bv64)); - R0, Gamma_R0 := load26, Gamma_load26; - R30, Gamma_R30 := 2188bv64, true; - call #free_1712(); - goto l00000405; - l00000405: - assume {:captureState "l00000405"} true; - R0, Gamma_R0 := 0bv64, true; - load27, Gamma_load27 := memory_load64_le(stack, R31), gamma_load64(Gamma_stack, R31); - R29, Gamma_R29 := load27, Gamma_load27; - load28, Gamma_load28 := memory_load64_le(stack, bvadd64(R31, 8bv64)), gamma_load64(Gamma_stack, bvadd64(R31, 8bv64)); - R30, Gamma_R30 := load28, Gamma_load28; - R31, Gamma_R31 := bvadd64(R31, 32bv64), Gamma_R31; - goto main_2068_basil_return; - main_2068_basil_return: - assume {:captureState "main_2068_basil_return"} true; + $load$15, Gamma_$load$15 := memory_load64_le(stack, R31), gamma_load64(Gamma_stack, R31); + R29, Gamma_R29 := $load$15, Gamma_$load$15; + $load$16, Gamma_$load$16 := memory_load64_le(stack, bvadd64(R31, 8bv64)), gamma_load64(Gamma_stack, bvadd64(R31, 8bv64)); + R30, Gamma_R30 := $load$16, Gamma_$load$16; + R31, Gamma_R31 := bvadd64(R31, 16bv64), Gamma_R31; + goto main_basil_return; + main_basil_return: + assume {:captureState "main_basil_return"} true; return; } -procedure malloc_1664(); - modifies Gamma_R16, Gamma_R17, R16, R17; - free requires (memory_load64_le(mem, 2224bv64) == 131073bv64); - free requires (memory_load64_le(mem, 2232bv64) == 8241983568019286100bv64); - free requires (memory_load64_le(mem, 2240bv64) == 748482783423457568bv64); - free requires (memory_load64_le(mem, 2248bv64) == 0bv64); - free requires (memory_load64_le(mem, 2256bv64) == 2338615504306268244bv64); - free requires (memory_load64_le(mem, 2264bv64) == 2924860384375657bv64); - free requires (memory_load64_le(mem, 68992bv64) == 2064bv64); - free requires (memory_load64_le(mem, 69000bv64) == 1984bv64); - free requires (memory_load64_le(mem, 69616bv64) == 2068bv64); - free requires (memory_load64_le(mem, 69640bv64) == 69640bv64); - free ensures (memory_load64_le(mem, 2224bv64) == 131073bv64); - free ensures (memory_load64_le(mem, 2232bv64) == 8241983568019286100bv64); - free ensures (memory_load64_le(mem, 2240bv64) == 748482783423457568bv64); - free ensures (memory_load64_le(mem, 2248bv64) == 0bv64); - free ensures (memory_load64_le(mem, 2256bv64) == 2338615504306268244bv64); - free ensures (memory_load64_le(mem, 2264bv64) == 2924860384375657bv64); - free ensures (memory_load64_le(mem, 68992bv64) == 2064bv64); - free ensures (memory_load64_le(mem, 69000bv64) == 1984bv64); - free ensures (memory_load64_le(mem, 69616bv64) == 2068bv64); - free ensures (memory_load64_le(mem, 69640bv64) == 69640bv64); - -procedure printf_1728(); - modifies Gamma_R16, Gamma_R17, R16, R17; - free requires (memory_load64_le(mem, 2224bv64) == 131073bv64); - free requires (memory_load64_le(mem, 2232bv64) == 8241983568019286100bv64); - free requires (memory_load64_le(mem, 2240bv64) == 748482783423457568bv64); - free requires (memory_load64_le(mem, 2248bv64) == 0bv64); - free requires (memory_load64_le(mem, 2256bv64) == 2338615504306268244bv64); - free requires (memory_load64_le(mem, 2264bv64) == 2924860384375657bv64); - free requires (memory_load64_le(mem, 68992bv64) == 2064bv64); - free requires (memory_load64_le(mem, 69000bv64) == 1984bv64); - free requires (memory_load64_le(mem, 69616bv64) == 2068bv64); - free requires (memory_load64_le(mem, 69640bv64) == 69640bv64); - free ensures (memory_load64_le(mem, 2224bv64) == 131073bv64); - free ensures (memory_load64_le(mem, 2232bv64) == 8241983568019286100bv64); - free ensures (memory_load64_le(mem, 2240bv64) == 748482783423457568bv64); - free ensures (memory_load64_le(mem, 2248bv64) == 0bv64); - free ensures (memory_load64_le(mem, 2256bv64) == 2338615504306268244bv64); - free ensures (memory_load64_le(mem, 2264bv64) == 2924860384375657bv64); - free ensures (memory_load64_le(mem, 68992bv64) == 2064bv64); - free ensures (memory_load64_le(mem, 69000bv64) == 1984bv64); - free ensures (memory_load64_le(mem, 69616bv64) == 2068bv64); - free ensures (memory_load64_le(mem, 69640bv64) == 69640bv64); - diff --git a/src/test/correct/multi_malloc/gcc/multi_malloc.gts b/src/test/correct/multi_malloc/gcc/multi_malloc.gts deleted file mode 100644 index 5e09612e1..000000000 Binary files a/src/test/correct/multi_malloc/gcc/multi_malloc.gts and /dev/null differ diff --git a/src/test/correct/multi_malloc/gcc/multi_malloc.md5sum b/src/test/correct/multi_malloc/gcc/multi_malloc.md5sum new file mode 100644 index 000000000..3fae8fd44 --- /dev/null +++ b/src/test/correct/multi_malloc/gcc/multi_malloc.md5sum @@ -0,0 +1,5 @@ +9ee6996bd8c83411088ffdbec1a2d2f9 correct/multi_malloc/gcc/a.out +9772eec4658448b24d6f08f1efa93206 correct/multi_malloc/gcc/multi_malloc.adt +8fb9e2a2dca6c84fe729ff75dbc9536f correct/multi_malloc/gcc/multi_malloc.bir +be53dc98db4abe9847cdbdc6313582e2 correct/multi_malloc/gcc/multi_malloc.relf +d72cdc91826b856891814ace49b44b0f correct/multi_malloc/gcc/multi_malloc.gts diff --git a/src/test/correct/multi_malloc/gcc/multi_malloc.relf b/src/test/correct/multi_malloc/gcc/multi_malloc.relf deleted file mode 100644 index a8f39ad91..000000000 --- a/src/test/correct/multi_malloc/gcc/multi_malloc.relf +++ /dev/null @@ -1,129 +0,0 @@ - -Relocation section '.rela.dyn' at offset 0x4c0 contains 8 entries: - Offset Info Type Symbol's Value Symbol's Name + Addend -0000000000010d80 0000000000000403 R_AARCH64_RELATIVE 810 -0000000000010d88 0000000000000403 R_AARCH64_RELATIVE 7c0 -0000000000010ff0 0000000000000403 R_AARCH64_RELATIVE 814 -0000000000011008 0000000000000403 R_AARCH64_RELATIVE 11008 -0000000000010fd8 0000000400000401 R_AARCH64_GLOB_DAT 0000000000000000 _ITM_deregisterTMCloneTable + 0 -0000000000010fe0 0000000500000401 R_AARCH64_GLOB_DAT 0000000000000000 __cxa_finalize@GLIBC_2.17 + 0 -0000000000010fe8 0000000700000401 R_AARCH64_GLOB_DAT 0000000000000000 __gmon_start__ + 0 -0000000000010ff8 0000000a00000401 R_AARCH64_GLOB_DAT 0000000000000000 _ITM_registerTMCloneTable + 0 - -Relocation section '.rela.plt' at offset 0x580 contains 7 entries: - Offset Info Type Symbol's Value Symbol's Name + Addend -0000000000010f98 0000000300000402 R_AARCH64_JUMP_SLOT 0000000000000000 __libc_start_main@GLIBC_2.34 + 0 -0000000000010fa0 0000000500000402 R_AARCH64_JUMP_SLOT 0000000000000000 __cxa_finalize@GLIBC_2.17 + 0 -0000000000010fa8 0000000600000402 R_AARCH64_JUMP_SLOT 0000000000000000 malloc@GLIBC_2.17 + 0 -0000000000010fb0 0000000700000402 R_AARCH64_JUMP_SLOT 0000000000000000 __gmon_start__ + 0 -0000000000010fb8 0000000800000402 R_AARCH64_JUMP_SLOT 0000000000000000 abort@GLIBC_2.17 + 0 -0000000000010fc0 0000000900000402 R_AARCH64_JUMP_SLOT 0000000000000000 free@GLIBC_2.17 + 0 -0000000000010fc8 0000000b00000402 R_AARCH64_JUMP_SLOT 0000000000000000 printf@GLIBC_2.17 + 0 - -Symbol table '.dynsym' contains 12 entries: - Num: Value Size Type Bind Vis Ndx Name - 0: 0000000000000000 0 NOTYPE LOCAL DEFAULT UND - 1: 0000000000000628 0 SECTION LOCAL DEFAULT 11 .init - 2: 0000000000011000 0 SECTION LOCAL DEFAULT 22 .data - 3: 0000000000000000 0 FUNC GLOBAL DEFAULT UND __libc_start_main@GLIBC_2.34 (2) - 4: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_deregisterTMCloneTable - 5: 0000000000000000 0 FUNC WEAK DEFAULT UND __cxa_finalize@GLIBC_2.17 (3) - 6: 0000000000000000 0 FUNC GLOBAL DEFAULT UND malloc@GLIBC_2.17 (3) - 7: 0000000000000000 0 NOTYPE WEAK DEFAULT UND __gmon_start__ - 8: 0000000000000000 0 FUNC GLOBAL DEFAULT UND abort@GLIBC_2.17 (3) - 9: 0000000000000000 0 FUNC GLOBAL DEFAULT UND free@GLIBC_2.17 (3) - 10: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_registerTMCloneTable - 11: 0000000000000000 0 FUNC GLOBAL DEFAULT UND printf@GLIBC_2.17 (3) - -Symbol table '.symtab' contains 90 entries: - Num: Value Size Type Bind Vis Ndx Name - 0: 0000000000000000 0 NOTYPE LOCAL DEFAULT UND - 1: 0000000000000238 0 SECTION LOCAL DEFAULT 1 .interp - 2: 0000000000000254 0 SECTION LOCAL DEFAULT 2 .note.gnu.build-id - 3: 0000000000000278 0 SECTION LOCAL DEFAULT 3 .note.ABI-tag - 4: 0000000000000298 0 SECTION LOCAL DEFAULT 4 .gnu.hash - 5: 00000000000002b8 0 SECTION LOCAL DEFAULT 5 .dynsym - 6: 00000000000003d8 0 SECTION LOCAL DEFAULT 6 .dynstr - 7: 0000000000000478 0 SECTION LOCAL DEFAULT 7 .gnu.version - 8: 0000000000000490 0 SECTION LOCAL DEFAULT 8 .gnu.version_r - 9: 00000000000004c0 0 SECTION LOCAL DEFAULT 9 .rela.dyn - 10: 0000000000000580 0 SECTION LOCAL DEFAULT 10 .rela.plt - 11: 0000000000000628 0 SECTION LOCAL DEFAULT 11 .init - 12: 0000000000000640 0 SECTION LOCAL DEFAULT 12 .plt - 13: 0000000000000700 0 SECTION LOCAL DEFAULT 13 .text - 14: 0000000000000898 0 SECTION LOCAL DEFAULT 14 .fini - 15: 00000000000008b0 0 SECTION LOCAL DEFAULT 15 .rodata - 16: 00000000000008e0 0 SECTION LOCAL DEFAULT 16 .eh_frame_hdr - 17: 0000000000000920 0 SECTION LOCAL DEFAULT 17 .eh_frame - 18: 0000000000010d80 0 SECTION LOCAL DEFAULT 18 .init_array - 19: 0000000000010d88 0 SECTION LOCAL DEFAULT 19 .fini_array - 20: 0000000000010d90 0 SECTION LOCAL DEFAULT 20 .dynamic - 21: 0000000000010f80 0 SECTION LOCAL DEFAULT 21 .got - 22: 0000000000011000 0 SECTION LOCAL DEFAULT 22 .data - 23: 0000000000011010 0 SECTION LOCAL DEFAULT 23 .bss - 24: 0000000000000000 0 SECTION LOCAL DEFAULT 24 .comment - 25: 0000000000000000 0 FILE LOCAL DEFAULT ABS Scrt1.o - 26: 0000000000000278 0 NOTYPE LOCAL DEFAULT 3 $d - 27: 0000000000000278 32 OBJECT LOCAL DEFAULT 3 __abi_tag - 28: 0000000000000700 0 NOTYPE LOCAL DEFAULT 13 $x - 29: 0000000000000934 0 NOTYPE LOCAL DEFAULT 17 $d - 30: 00000000000008b0 0 NOTYPE LOCAL DEFAULT 15 $d - 31: 0000000000000000 0 FILE LOCAL DEFAULT ABS crti.o - 32: 0000000000000734 0 NOTYPE LOCAL DEFAULT 13 $x - 33: 0000000000000734 20 FUNC LOCAL DEFAULT 13 call_weak_fn - 34: 0000000000000628 0 NOTYPE LOCAL DEFAULT 11 $x - 35: 0000000000000898 0 NOTYPE LOCAL DEFAULT 14 $x - 36: 0000000000000000 0 FILE LOCAL DEFAULT ABS crtn.o - 37: 0000000000000638 0 NOTYPE LOCAL DEFAULT 11 $x - 38: 00000000000008a4 0 NOTYPE LOCAL DEFAULT 14 $x - 39: 0000000000000000 0 FILE LOCAL DEFAULT ABS crtstuff.c - 40: 0000000000000750 0 NOTYPE LOCAL DEFAULT 13 $x - 41: 0000000000000750 0 FUNC LOCAL DEFAULT 13 deregister_tm_clones - 42: 0000000000000780 0 FUNC LOCAL DEFAULT 13 register_tm_clones - 43: 0000000000011008 0 NOTYPE LOCAL DEFAULT 22 $d - 44: 00000000000007c0 0 FUNC LOCAL DEFAULT 13 __do_global_dtors_aux - 45: 0000000000011010 1 OBJECT LOCAL DEFAULT 23 completed.0 - 46: 0000000000010d88 0 NOTYPE LOCAL DEFAULT 19 $d - 47: 0000000000010d88 0 OBJECT LOCAL DEFAULT 19 __do_global_dtors_aux_fini_array_entry - 48: 0000000000000810 0 FUNC LOCAL DEFAULT 13 frame_dummy - 49: 0000000000010d80 0 NOTYPE LOCAL DEFAULT 18 $d - 50: 0000000000010d80 0 OBJECT LOCAL DEFAULT 18 __frame_dummy_init_array_entry - 51: 0000000000000948 0 NOTYPE LOCAL DEFAULT 17 $d - 52: 0000000000011010 0 NOTYPE LOCAL DEFAULT 23 $d - 53: 0000000000000000 0 FILE LOCAL DEFAULT ABS multi_malloc.c - 54: 00000000000008b8 0 NOTYPE LOCAL DEFAULT 15 $d - 55: 0000000000000814 0 NOTYPE LOCAL DEFAULT 13 $x - 56: 00000000000009a8 0 NOTYPE LOCAL DEFAULT 17 $d - 57: 0000000000000000 0 FILE LOCAL DEFAULT ABS crtstuff.c - 58: 00000000000009c8 0 NOTYPE LOCAL DEFAULT 17 $d - 59: 00000000000009c8 0 OBJECT LOCAL DEFAULT 17 __FRAME_END__ - 60: 0000000000000000 0 FILE LOCAL DEFAULT ABS - 61: 0000000000010d90 0 OBJECT LOCAL DEFAULT ABS _DYNAMIC - 62: 00000000000008e0 0 NOTYPE LOCAL DEFAULT 16 __GNU_EH_FRAME_HDR - 63: 0000000000010fd0 0 OBJECT LOCAL DEFAULT ABS _GLOBAL_OFFSET_TABLE_ - 64: 0000000000000640 0 NOTYPE LOCAL DEFAULT 12 $x - 65: 0000000000000000 0 FUNC GLOBAL DEFAULT UND __libc_start_main@GLIBC_2.34 - 66: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_deregisterTMCloneTable - 67: 0000000000011000 0 NOTYPE WEAK DEFAULT 22 data_start - 68: 0000000000011010 0 NOTYPE GLOBAL DEFAULT 23 __bss_start__ - 69: 0000000000000000 0 FUNC WEAK DEFAULT UND __cxa_finalize@GLIBC_2.17 - 70: 0000000000011018 0 NOTYPE GLOBAL DEFAULT 23 _bss_end__ - 71: 0000000000011010 0 NOTYPE GLOBAL DEFAULT 22 _edata - 72: 0000000000000898 0 FUNC GLOBAL HIDDEN 14 _fini - 73: 0000000000011018 0 NOTYPE GLOBAL DEFAULT 23 __bss_end__ - 74: 0000000000000000 0 FUNC GLOBAL DEFAULT UND malloc@GLIBC_2.17 - 75: 0000000000011000 0 NOTYPE GLOBAL DEFAULT 22 __data_start - 76: 0000000000000000 0 NOTYPE WEAK DEFAULT UND __gmon_start__ - 77: 0000000000011008 0 OBJECT GLOBAL HIDDEN 22 __dso_handle - 78: 0000000000000000 0 FUNC GLOBAL DEFAULT UND abort@GLIBC_2.17 - 79: 00000000000008b0 4 OBJECT GLOBAL DEFAULT 15 _IO_stdin_used - 80: 0000000000011018 0 NOTYPE GLOBAL DEFAULT 23 _end - 81: 0000000000000000 0 FUNC GLOBAL DEFAULT UND free@GLIBC_2.17 - 82: 0000000000000700 52 FUNC GLOBAL DEFAULT 13 _start - 83: 0000000000011018 0 NOTYPE GLOBAL DEFAULT 23 __end__ - 84: 0000000000011010 0 NOTYPE GLOBAL DEFAULT 23 __bss_start - 85: 0000000000000814 132 FUNC GLOBAL DEFAULT 13 main - 86: 0000000000011010 0 OBJECT GLOBAL HIDDEN 22 __TMC_END__ - 87: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_registerTMCloneTable - 88: 0000000000000000 0 FUNC GLOBAL DEFAULT UND printf@GLIBC_2.17 - 89: 0000000000000628 0 FUNC GLOBAL HIDDEN 11 _init diff --git a/src/test/correct/multi_malloc/gcc/multi_malloc_gtirb.expected b/src/test/correct/multi_malloc/gcc/multi_malloc_gtirb.expected index 2d811488f..cc684bf9f 100644 --- a/src/test/correct/multi_malloc/gcc/multi_malloc_gtirb.expected +++ b/src/test/correct/multi_malloc/gcc/multi_malloc_gtirb.expected @@ -2,6 +2,7 @@ var {:extern} Gamma_R0: bool; var {:extern} Gamma_R1: bool; var {:extern} Gamma_R16: bool; var {:extern} Gamma_R17: bool; +var {:extern} Gamma_R2: bool; var {:extern} Gamma_R29: bool; var {:extern} Gamma_R30: bool; var {:extern} Gamma_R31: bool; @@ -11,82 +12,45 @@ var {:extern} R0: bv64; var {:extern} R1: bv64; var {:extern} R16: bv64; var {:extern} R17: bv64; +var {:extern} R2: bv64; var {:extern} R29: bv64; var {:extern} R30: bv64; var {:extern} R31: bv64; var {:extern} mem: [bv64]bv8; var {:extern} stack: [bv64]bv8; const {:extern} $_IO_stdin_used_addr: bv64; -axiom ($_IO_stdin_used_addr == 2224bv64); +axiom ($_IO_stdin_used_addr == 4196376bv64); function {:extern} L(mem$in: [bv64]bv8, index: bv64) returns (bool) { false } function {:extern} {:bvbuiltin "bvadd"} bvadd64(bv64, bv64) returns (bv64); -function {:extern} gamma_load32(gammaMap: [bv64]bool, index: bv64) returns (bool) { - (gammaMap[bvadd64(index, 3bv64)] && (gammaMap[bvadd64(index, 2bv64)] && (gammaMap[bvadd64(index, 1bv64)] && gammaMap[index]))) -} - function {:extern} gamma_load64(gammaMap: [bv64]bool, index: bv64) returns (bool) { (gammaMap[bvadd64(index, 7bv64)] && (gammaMap[bvadd64(index, 6bv64)] && (gammaMap[bvadd64(index, 5bv64)] && (gammaMap[bvadd64(index, 4bv64)] && (gammaMap[bvadd64(index, 3bv64)] && (gammaMap[bvadd64(index, 2bv64)] && (gammaMap[bvadd64(index, 1bv64)] && gammaMap[index]))))))) } -function {:extern} gamma_load8(gammaMap: [bv64]bool, index: bv64) returns (bool) { - gammaMap[index] -} - -function {:extern} gamma_store32(gammaMap: [bv64]bool, index: bv64, value: bool) returns ([bv64]bool) { - gammaMap[index := value][bvadd64(index, 1bv64) := value][bvadd64(index, 2bv64) := value][bvadd64(index, 3bv64) := value] -} - function {:extern} gamma_store64(gammaMap: [bv64]bool, index: bv64, value: bool) returns ([bv64]bool) { gammaMap[index := value][bvadd64(index, 1bv64) := value][bvadd64(index, 2bv64) := value][bvadd64(index, 3bv64) := value][bvadd64(index, 4bv64) := value][bvadd64(index, 5bv64) := value][bvadd64(index, 6bv64) := value][bvadd64(index, 7bv64) := value] } -function {:extern} gamma_store8(gammaMap: [bv64]bool, index: bv64, value: bool) returns ([bv64]bool) { - gammaMap[index := value] -} - -function {:extern} memory_load32_le(memory: [bv64]bv8, index: bv64) returns (bv32) { - (memory[bvadd64(index, 3bv64)] ++ (memory[bvadd64(index, 2bv64)] ++ (memory[bvadd64(index, 1bv64)] ++ memory[index]))) -} - function {:extern} memory_load64_le(memory: [bv64]bv8, index: bv64) returns (bv64) { (memory[bvadd64(index, 7bv64)] ++ (memory[bvadd64(index, 6bv64)] ++ (memory[bvadd64(index, 5bv64)] ++ (memory[bvadd64(index, 4bv64)] ++ (memory[bvadd64(index, 3bv64)] ++ (memory[bvadd64(index, 2bv64)] ++ (memory[bvadd64(index, 1bv64)] ++ memory[index]))))))) } -function {:extern} memory_load8_le(memory: [bv64]bv8, index: bv64) returns (bv8) { - memory[index] -} - -function {:extern} memory_store32_le(memory: [bv64]bv8, index: bv64, value: bv32) returns ([bv64]bv8) { - memory[index := value[8:0]][bvadd64(index, 1bv64) := value[16:8]][bvadd64(index, 2bv64) := value[24:16]][bvadd64(index, 3bv64) := value[32:24]] -} - function {:extern} memory_store64_le(memory: [bv64]bv8, index: bv64, value: bv64) returns ([bv64]bv8) { memory[index := value[8:0]][bvadd64(index, 1bv64) := value[16:8]][bvadd64(index, 2bv64) := value[24:16]][bvadd64(index, 3bv64) := value[32:24]][bvadd64(index, 4bv64) := value[40:32]][bvadd64(index, 5bv64) := value[48:40]][bvadd64(index, 6bv64) := value[56:48]][bvadd64(index, 7bv64) := value[64:56]] } -function {:extern} memory_store8_le(memory: [bv64]bv8, index: bv64, value: bv8) returns ([bv64]bv8) { - memory[index := value[8:0]] -} - -function {:extern} {:bvbuiltin "zero_extend 24"} zero_extend24_8(bv8) returns (bv32); -function {:extern} {:bvbuiltin "zero_extend 32"} zero_extend32_32(bv32) returns (bv64); procedure {:extern} rely(); modifies Gamma_mem, mem; ensures (Gamma_mem == old(Gamma_mem)); ensures (mem == old(mem)); - free ensures (memory_load64_le(mem, 2224bv64) == 131073bv64); - free ensures (memory_load64_le(mem, 2232bv64) == 8241983568019286100bv64); - free ensures (memory_load64_le(mem, 2240bv64) == 748482783423457568bv64); - free ensures (memory_load64_le(mem, 2248bv64) == 0bv64); - free ensures (memory_load64_le(mem, 2256bv64) == 2338615504306268244bv64); - free ensures (memory_load64_le(mem, 2264bv64) == 2924860384375657bv64); - free ensures (memory_load64_le(mem, 68992bv64) == 2064bv64); - free ensures (memory_load64_le(mem, 69000bv64) == 1984bv64); - free ensures (memory_load64_le(mem, 69616bv64) == 2068bv64); - free ensures (memory_load64_le(mem, 69640bv64) == 69640bv64); + free ensures (memory_load64_le(mem, 4196376bv64) == 131073bv64); + free ensures (memory_load64_le(mem, 4196384bv64) == 8241983568019286100bv64); + free ensures (memory_load64_le(mem, 4196392bv64) == 748482783423457568bv64); + free ensures (memory_load64_le(mem, 4196400bv64) == 0bv64); + free ensures (memory_load64_le(mem, 4196408bv64) == 2338615504306268244bv64); + free ensures (memory_load64_le(mem, 4196416bv64) == 2924860384375657bv64); procedure {:extern} rely_transitive(); modifies Gamma_mem, mem; @@ -104,336 +68,115 @@ procedure {:extern} rely_reflexive(); procedure {:extern} guarantee_reflexive(); modifies Gamma_mem, mem; -procedure main_2068(); - modifies Gamma_R0, Gamma_R1, Gamma_R16, Gamma_R17, Gamma_R29, Gamma_R30, Gamma_R31, Gamma_mem, Gamma_stack, R0, R1, R16, R17, R29, R30, R31, mem, stack; - free requires (memory_load64_le(mem, 69632bv64) == 0bv64); - free requires (memory_load64_le(mem, 69640bv64) == 69640bv64); - free requires (memory_load64_le(mem, 2224bv64) == 131073bv64); - free requires (memory_load64_le(mem, 2232bv64) == 8241983568019286100bv64); - free requires (memory_load64_le(mem, 2240bv64) == 748482783423457568bv64); - free requires (memory_load64_le(mem, 2248bv64) == 0bv64); - free requires (memory_load64_le(mem, 2256bv64) == 2338615504306268244bv64); - free requires (memory_load64_le(mem, 2264bv64) == 2924860384375657bv64); - free requires (memory_load64_le(mem, 68992bv64) == 2064bv64); - free requires (memory_load64_le(mem, 69000bv64) == 1984bv64); - free requires (memory_load64_le(mem, 69616bv64) == 2068bv64); - free requires (memory_load64_le(mem, 69640bv64) == 69640bv64); +procedure FUN_400680(); + modifies Gamma_R16, Gamma_R17, Gamma_mem, R16, R17, mem; + free requires (memory_load64_le(mem, 4196376bv64) == 131073bv64); + free requires (memory_load64_le(mem, 4196384bv64) == 8241983568019286100bv64); + free requires (memory_load64_le(mem, 4196392bv64) == 748482783423457568bv64); + free requires (memory_load64_le(mem, 4196400bv64) == 0bv64); + free requires (memory_load64_le(mem, 4196408bv64) == 2338615504306268244bv64); + free requires (memory_load64_le(mem, 4196416bv64) == 2924860384375657bv64); + free ensures (memory_load64_le(mem, 4196376bv64) == 131073bv64); + free ensures (memory_load64_le(mem, 4196384bv64) == 8241983568019286100bv64); + free ensures (memory_load64_le(mem, 4196392bv64) == 748482783423457568bv64); + free ensures (memory_load64_le(mem, 4196400bv64) == 0bv64); + free ensures (memory_load64_le(mem, 4196408bv64) == 2338615504306268244bv64); + free ensures (memory_load64_le(mem, 4196416bv64) == 2924860384375657bv64); + +implementation FUN_400680() +{ + var $load0: bv64; + var Gamma_$load0: bool; + $FUN_400680$__0__$YmNxI7RsS_6TZy3HTKzvWg: + assume {:captureState "$FUN_400680$__0__$YmNxI7RsS_6TZy3HTKzvWg"} true; + R16, Gamma_R16 := 4321280bv64, true; + call rely(); + $load0, Gamma_$load0 := memory_load64_le(mem, bvadd64(R16, 4040bv64)), (gamma_load64(Gamma_mem, bvadd64(R16, 4040bv64)) || L(mem, bvadd64(R16, 4040bv64))); + R17, Gamma_R17 := $load0, Gamma_$load0; + R16, Gamma_R16 := bvadd64(R16, 4040bv64), Gamma_R16; + call __printf_chk(); + assume false; +} + +procedure main(); + modifies Gamma_R0, Gamma_R1, Gamma_R16, Gamma_R17, Gamma_R2, Gamma_R29, Gamma_R30, Gamma_R31, Gamma_mem, Gamma_stack, R0, R1, R16, R17, R2, R29, R30, R31, mem, stack; + free requires (memory_load64_le(mem, 4325376bv64) == 0bv64); + free requires (memory_load64_le(mem, 4325384bv64) == 0bv64); + free requires (memory_load64_le(mem, 4196376bv64) == 131073bv64); + free requires (memory_load64_le(mem, 4196384bv64) == 8241983568019286100bv64); + free requires (memory_load64_le(mem, 4196392bv64) == 748482783423457568bv64); + free requires (memory_load64_le(mem, 4196400bv64) == 0bv64); + free requires (memory_load64_le(mem, 4196408bv64) == 2338615504306268244bv64); + free requires (memory_load64_le(mem, 4196416bv64) == 2924860384375657bv64); free ensures (Gamma_R29 == old(Gamma_R29)); free ensures (Gamma_R31 == old(Gamma_R31)); free ensures (R29 == old(R29)); free ensures (R31 == old(R31)); - free ensures (memory_load64_le(mem, 2224bv64) == 131073bv64); - free ensures (memory_load64_le(mem, 2232bv64) == 8241983568019286100bv64); - free ensures (memory_load64_le(mem, 2240bv64) == 748482783423457568bv64); - free ensures (memory_load64_le(mem, 2248bv64) == 0bv64); - free ensures (memory_load64_le(mem, 2256bv64) == 2338615504306268244bv64); - free ensures (memory_load64_le(mem, 2264bv64) == 2924860384375657bv64); - free ensures (memory_load64_le(mem, 68992bv64) == 2064bv64); - free ensures (memory_load64_le(mem, 69000bv64) == 1984bv64); - free ensures (memory_load64_le(mem, 69616bv64) == 2068bv64); - free ensures (memory_load64_le(mem, 69640bv64) == 69640bv64); - -implementation main_2068() + free ensures (memory_load64_le(mem, 4196376bv64) == 131073bv64); + free ensures (memory_load64_le(mem, 4196384bv64) == 8241983568019286100bv64); + free ensures (memory_load64_le(mem, 4196392bv64) == 748482783423457568bv64); + free ensures (memory_load64_le(mem, 4196400bv64) == 0bv64); + free ensures (memory_load64_le(mem, 4196408bv64) == 2338615504306268244bv64); + free ensures (memory_load64_le(mem, 4196416bv64) == 2924860384375657bv64); + +implementation main() { - var Cse0__5_1_0: bv64; - var Gamma_Cse0__5_1_0: bool; - var Gamma_load10: bool; - var Gamma_load11: bool; - var Gamma_load12: bool; - var Gamma_load3: bool; - var Gamma_load4: bool; - var Gamma_load5: bool; - var Gamma_load6: bool; - var Gamma_load7: bool; - var Gamma_load8: bool; - var Gamma_load9: bool; - var load10: bv8; - var load11: bv64; - var load12: bv64; - var load3: bv64; - var load4: bv32; - var load5: bv64; - var load6: bv64; - var load7: bv64; - var load8: bv64; - var load9: bv64; - main_2068__0__dwzLCyR~Qf6ppIpcnfBeyw: - assume {:captureState "main_2068__0__dwzLCyR~Qf6ppIpcnfBeyw"} true; - Cse0__5_1_0, Gamma_Cse0__5_1_0 := bvadd64(R31, 18446744073709551584bv64), Gamma_R31; - stack, Gamma_stack := memory_store64_le(stack, Cse0__5_1_0, R29), gamma_store64(Gamma_stack, Cse0__5_1_0, Gamma_R29); - assume {:captureState "2068_1"} true; - stack, Gamma_stack := memory_store64_le(stack, bvadd64(Cse0__5_1_0, 8bv64), R30), gamma_store64(Gamma_stack, bvadd64(Cse0__5_1_0, 8bv64), Gamma_R30); - assume {:captureState "2068_2"} true; - R31, Gamma_R31 := Cse0__5_1_0, Gamma_Cse0__5_1_0; + var $load17: bv64; + var $load18: bv64; + var Cse0__5$2$0: bv64; + var Gamma_$load17: bool; + var Gamma_$load18: bool; + var Gamma_Cse0__5$2$0: bool; + $main$__0__$xdHqi8HzTJ~zBYVemlzAtg: + assume {:captureState "$main$__0__$xdHqi8HzTJ~zBYVemlzAtg"} true; + Cse0__5$2$0, Gamma_Cse0__5$2$0 := bvadd64(R31, 18446744073709551600bv64), Gamma_R31; + stack, Gamma_stack := memory_store64_le(stack, Cse0__5$2$0, R29), gamma_store64(Gamma_stack, Cse0__5$2$0, Gamma_R29); + assume {:captureState "4196032$1"} true; + stack, Gamma_stack := memory_store64_le(stack, bvadd64(Cse0__5$2$0, 8bv64), R30), gamma_store64(Gamma_stack, bvadd64(Cse0__5$2$0, 8bv64), Gamma_R30); + assume {:captureState "4196032$2"} true; + R31, Gamma_R31 := Cse0__5$2$0, Gamma_Cse0__5$2$0; + R2, Gamma_R2 := 65bv64, true; + R1, Gamma_R1 := 4194304bv64, true; R29, Gamma_R29 := R31, Gamma_R31; - R0, Gamma_R0 := 1bv64, true; - R30, Gamma_R30 := 2084bv64, true; - call FUN_680_1664(); - goto main_2068__1__qq0fnVWHRfSzM76qEY54cg; - main_2068__1__qq0fnVWHRfSzM76qEY54cg: - assume {:captureState "main_2068__1__qq0fnVWHRfSzM76qEY54cg"} true; - stack, Gamma_stack := memory_store64_le(stack, bvadd64(R31, 16bv64), R0), gamma_store64(Gamma_stack, bvadd64(R31, 16bv64), Gamma_R0); - assume {:captureState "2084_0"} true; - R0, Gamma_R0 := 4bv64, true; - R30, Gamma_R30 := 2096bv64, true; - call FUN_680_1664(); - goto main_2068__2__OIRkzI73QCm6jl9JBTWOFw; - main_2068__2__OIRkzI73QCm6jl9JBTWOFw: - assume {:captureState "main_2068__2__OIRkzI73QCm6jl9JBTWOFw"} true; - stack, Gamma_stack := memory_store64_le(stack, bvadd64(R31, 24bv64), R0), gamma_store64(Gamma_stack, bvadd64(R31, 24bv64), Gamma_R0); - assume {:captureState "2096_0"} true; - load7, Gamma_load7 := memory_load64_le(stack, bvadd64(R31, 16bv64)), gamma_load64(Gamma_stack, bvadd64(R31, 16bv64)); - R0, Gamma_R0 := load7, Gamma_load7; - R1, Gamma_R1 := 65bv64, true; - call rely(); - assert (L(mem, R0) ==> Gamma_R1); - mem, Gamma_mem := memory_store8_le(mem, R0, R1[8:0]), gamma_store8(Gamma_mem, R0, Gamma_R1); - assume {:captureState "2108_0"} true; - load8, Gamma_load8 := memory_load64_le(stack, bvadd64(R31, 24bv64)), gamma_load64(Gamma_stack, bvadd64(R31, 24bv64)); - R0, Gamma_R0 := load8, Gamma_load8; - R1, Gamma_R1 := 42bv64, true; - call rely(); - assert (L(mem, R0) ==> Gamma_R1); - mem, Gamma_mem := memory_store32_le(mem, R0, R1[32:0]), gamma_store32(Gamma_mem, R0, Gamma_R1); - assume {:captureState "2120_0"} true; - load9, Gamma_load9 := memory_load64_le(stack, bvadd64(R31, 16bv64)), gamma_load64(Gamma_stack, bvadd64(R31, 16bv64)); - R0, Gamma_R0 := load9, Gamma_load9; - call rely(); - load10, Gamma_load10 := memory_load8_le(mem, R0), (gamma_load8(Gamma_mem, R0) || L(mem, R0)); - R0, Gamma_R0 := zero_extend32_32(zero_extend24_8(load10)), Gamma_load10; - R1, Gamma_R1 := zero_extend32_32(R0[32:0]), Gamma_R0; - R0, Gamma_R0 := 0bv64, true; - R0, Gamma_R0 := bvadd64(R0, 2232bv64), Gamma_R0; - R30, Gamma_R30 := 2084bv64, true; - call FUN_6c0_1728(); - goto main_2068__3__DLqleMKWShKLuDEFd2d5wA; - main_2068__3__DLqleMKWShKLuDEFd2d5wA: - assume {:captureState "main_2068__3__DLqleMKWShKLuDEFd2d5wA"} true; - load3, Gamma_load3 := memory_load64_le(stack, bvadd64(R31, 24bv64)), gamma_load64(Gamma_stack, bvadd64(R31, 24bv64)); - R0, Gamma_R0 := load3, Gamma_load3; - call rely(); - load4, Gamma_load4 := memory_load32_le(mem, R0), (gamma_load32(Gamma_mem, R0) || L(mem, R0)); - R0, Gamma_R0 := zero_extend32_32(load4), Gamma_load4; - R1, Gamma_R1 := zero_extend32_32(R0[32:0]), Gamma_R0; + R1, Gamma_R1 := bvadd64(R1, 2080bv64), Gamma_R1; + R0, Gamma_R0 := 2bv64, true; + R30, Gamma_R30 := 4196060bv64, true; + call FUN_400680(); + goto $main$__1__$t_6C~3O4SbalxMsQ9Vg3LA; + $main$__1__$t_6C~3O4SbalxMsQ9Vg3LA: + assume {:captureState "$main$__1__$t_6C~3O4SbalxMsQ9Vg3LA"} true; + R2, Gamma_R2 := 42bv64, true; + R1, Gamma_R1 := 4194304bv64, true; + R0, Gamma_R0 := 2bv64, true; + R1, Gamma_R1 := bvadd64(R1, 2104bv64), Gamma_R1; + R30, Gamma_R30 := 4196052bv64, true; + call FUN_400680(); + goto $main$__2__$8D7O5dmBS1ek~5BDJ9mBtA; + $main$__2__$8D7O5dmBS1ek~5BDJ9mBtA: + assume {:captureState "$main$__2__$8D7O5dmBS1ek~5BDJ9mBtA"} true; R0, Gamma_R0 := 0bv64, true; - R0, Gamma_R0 := bvadd64(R0, 2256bv64), Gamma_R0; - R30, Gamma_R30 := 2172bv64, true; - call FUN_6c0_1728(); - goto main_2068__4__VxlFjKprQLyiMLIhbUhZNw; - main_2068__4__VxlFjKprQLyiMLIhbUhZNw: - assume {:captureState "main_2068__4__VxlFjKprQLyiMLIhbUhZNw"} true; - load11, Gamma_load11 := memory_load64_le(stack, bvadd64(R31, 16bv64)), gamma_load64(Gamma_stack, bvadd64(R31, 16bv64)); - R0, Gamma_R0 := load11, Gamma_load11; - R30, Gamma_R30 := 2180bv64, true; - call FUN_6b0_1712(); - goto main_2068__5__lPC5PztFQmelpi1yHg437g; - main_2068__5__lPC5PztFQmelpi1yHg437g: - assume {:captureState "main_2068__5__lPC5PztFQmelpi1yHg437g"} true; - load12, Gamma_load12 := memory_load64_le(stack, bvadd64(R31, 24bv64)), gamma_load64(Gamma_stack, bvadd64(R31, 24bv64)); - R0, Gamma_R0 := load12, Gamma_load12; - R30, Gamma_R30 := 2188bv64, true; - call FUN_6b0_1712(); - goto main_2068__6__mc7RYY6OQ9i3XnFy_bGwqA; - main_2068__6__mc7RYY6OQ9i3XnFy_bGwqA: - assume {:captureState "main_2068__6__mc7RYY6OQ9i3XnFy_bGwqA"} true; - R0, Gamma_R0 := 0bv64, true; - load5, Gamma_load5 := memory_load64_le(stack, R31), gamma_load64(Gamma_stack, R31); - R29, Gamma_R29 := load5, Gamma_load5; - load6, Gamma_load6 := memory_load64_le(stack, bvadd64(R31, 8bv64)), gamma_load64(Gamma_stack, bvadd64(R31, 8bv64)); - R30, Gamma_R30 := load6, Gamma_load6; - R31, Gamma_R31 := bvadd64(R31, 32bv64), Gamma_R31; - goto main_2068_basil_return; - main_2068_basil_return: - assume {:captureState "main_2068_basil_return"} true; + $load17, Gamma_$load17 := memory_load64_le(stack, R31), gamma_load64(Gamma_stack, R31); + R29, Gamma_R29 := $load17, Gamma_$load17; + $load18, Gamma_$load18 := memory_load64_le(stack, bvadd64(R31, 8bv64)), gamma_load64(Gamma_stack, bvadd64(R31, 8bv64)); + R30, Gamma_R30 := $load18, Gamma_$load18; + R31, Gamma_R31 := bvadd64(R31, 16bv64), Gamma_R31; + goto main_basil_return; + main_basil_return: + assume {:captureState "main_basil_return"} true; return; } -procedure FUN_6c0_1728(); - modifies Gamma_R16, Gamma_R17, Gamma_mem, R16, R17, mem; - free requires (memory_load64_le(mem, 2224bv64) == 131073bv64); - free requires (memory_load64_le(mem, 2232bv64) == 8241983568019286100bv64); - free requires (memory_load64_le(mem, 2240bv64) == 748482783423457568bv64); - free requires (memory_load64_le(mem, 2248bv64) == 0bv64); - free requires (memory_load64_le(mem, 2256bv64) == 2338615504306268244bv64); - free requires (memory_load64_le(mem, 2264bv64) == 2924860384375657bv64); - free requires (memory_load64_le(mem, 68992bv64) == 2064bv64); - free requires (memory_load64_le(mem, 69000bv64) == 1984bv64); - free requires (memory_load64_le(mem, 69616bv64) == 2068bv64); - free requires (memory_load64_le(mem, 69640bv64) == 69640bv64); - free ensures (memory_load64_le(mem, 2224bv64) == 131073bv64); - free ensures (memory_load64_le(mem, 2232bv64) == 8241983568019286100bv64); - free ensures (memory_load64_le(mem, 2240bv64) == 748482783423457568bv64); - free ensures (memory_load64_le(mem, 2248bv64) == 0bv64); - free ensures (memory_load64_le(mem, 2256bv64) == 2338615504306268244bv64); - free ensures (memory_load64_le(mem, 2264bv64) == 2924860384375657bv64); - free ensures (memory_load64_le(mem, 68992bv64) == 2064bv64); - free ensures (memory_load64_le(mem, 69000bv64) == 1984bv64); - free ensures (memory_load64_le(mem, 69616bv64) == 2068bv64); - free ensures (memory_load64_le(mem, 69640bv64) == 69640bv64); - -implementation FUN_6c0_1728() -{ - var Gamma_load13: bool; - var load13: bv64; - FUN_6c0_1728__0__krJLwhrcTQ2f7LDo~OEQzg: - assume {:captureState "FUN_6c0_1728__0__krJLwhrcTQ2f7LDo~OEQzg"} true; - R16, Gamma_R16 := 65536bv64, true; - call rely(); - load13, Gamma_load13 := memory_load64_le(mem, bvadd64(R16, 4040bv64)), (gamma_load64(Gamma_mem, bvadd64(R16, 4040bv64)) || L(mem, bvadd64(R16, 4040bv64))); - R17, Gamma_R17 := load13, Gamma_load13; - R16, Gamma_R16 := bvadd64(R16, 4040bv64), Gamma_R16; - call printf(); - goto FUN_6c0_1728_basil_return; - FUN_6c0_1728_basil_return: - assume {:captureState "FUN_6c0_1728_basil_return"} true; - return; -} - -procedure FUN_680_1664(); - modifies Gamma_R16, Gamma_R17, Gamma_mem, R16, R17, mem; - free requires (memory_load64_le(mem, 2224bv64) == 131073bv64); - free requires (memory_load64_le(mem, 2232bv64) == 8241983568019286100bv64); - free requires (memory_load64_le(mem, 2240bv64) == 748482783423457568bv64); - free requires (memory_load64_le(mem, 2248bv64) == 0bv64); - free requires (memory_load64_le(mem, 2256bv64) == 2338615504306268244bv64); - free requires (memory_load64_le(mem, 2264bv64) == 2924860384375657bv64); - free requires (memory_load64_le(mem, 68992bv64) == 2064bv64); - free requires (memory_load64_le(mem, 69000bv64) == 1984bv64); - free requires (memory_load64_le(mem, 69616bv64) == 2068bv64); - free requires (memory_load64_le(mem, 69640bv64) == 69640bv64); - free ensures (memory_load64_le(mem, 2224bv64) == 131073bv64); - free ensures (memory_load64_le(mem, 2232bv64) == 8241983568019286100bv64); - free ensures (memory_load64_le(mem, 2240bv64) == 748482783423457568bv64); - free ensures (memory_load64_le(mem, 2248bv64) == 0bv64); - free ensures (memory_load64_le(mem, 2256bv64) == 2338615504306268244bv64); - free ensures (memory_load64_le(mem, 2264bv64) == 2924860384375657bv64); - free ensures (memory_load64_le(mem, 68992bv64) == 2064bv64); - free ensures (memory_load64_le(mem, 69000bv64) == 1984bv64); - free ensures (memory_load64_le(mem, 69616bv64) == 2068bv64); - free ensures (memory_load64_le(mem, 69640bv64) == 69640bv64); - -implementation FUN_680_1664() -{ - var Gamma_load23: bool; - var load23: bv64; - FUN_680_1664__0__Wajo05XJRzmPtHyIXXM3SA: - assume {:captureState "FUN_680_1664__0__Wajo05XJRzmPtHyIXXM3SA"} true; - R16, Gamma_R16 := 65536bv64, true; - call rely(); - load23, Gamma_load23 := memory_load64_le(mem, bvadd64(R16, 4008bv64)), (gamma_load64(Gamma_mem, bvadd64(R16, 4008bv64)) || L(mem, bvadd64(R16, 4008bv64))); - R17, Gamma_R17 := load23, Gamma_load23; - R16, Gamma_R16 := bvadd64(R16, 4008bv64), Gamma_R16; - call malloc(); - goto FUN_680_1664_basil_return; - FUN_680_1664_basil_return: - assume {:captureState "FUN_680_1664_basil_return"} true; - return; -} - -procedure FUN_6b0_1712(); - modifies Gamma_R16, Gamma_R17, Gamma_mem, R16, R17, mem; - free requires (memory_load64_le(mem, 2224bv64) == 131073bv64); - free requires (memory_load64_le(mem, 2232bv64) == 8241983568019286100bv64); - free requires (memory_load64_le(mem, 2240bv64) == 748482783423457568bv64); - free requires (memory_load64_le(mem, 2248bv64) == 0bv64); - free requires (memory_load64_le(mem, 2256bv64) == 2338615504306268244bv64); - free requires (memory_load64_le(mem, 2264bv64) == 2924860384375657bv64); - free requires (memory_load64_le(mem, 68992bv64) == 2064bv64); - free requires (memory_load64_le(mem, 69000bv64) == 1984bv64); - free requires (memory_load64_le(mem, 69616bv64) == 2068bv64); - free requires (memory_load64_le(mem, 69640bv64) == 69640bv64); - free ensures (memory_load64_le(mem, 2224bv64) == 131073bv64); - free ensures (memory_load64_le(mem, 2232bv64) == 8241983568019286100bv64); - free ensures (memory_load64_le(mem, 2240bv64) == 748482783423457568bv64); - free ensures (memory_load64_le(mem, 2248bv64) == 0bv64); - free ensures (memory_load64_le(mem, 2256bv64) == 2338615504306268244bv64); - free ensures (memory_load64_le(mem, 2264bv64) == 2924860384375657bv64); - free ensures (memory_load64_le(mem, 68992bv64) == 2064bv64); - free ensures (memory_load64_le(mem, 69000bv64) == 1984bv64); - free ensures (memory_load64_le(mem, 69616bv64) == 2068bv64); - free ensures (memory_load64_le(mem, 69640bv64) == 69640bv64); - -implementation FUN_6b0_1712() -{ - var Gamma_load25: bool; - var load25: bv64; - FUN_6b0_1712__0__f179eReyRKeTLiqzJB4ZdQ: - assume {:captureState "FUN_6b0_1712__0__f179eReyRKeTLiqzJB4ZdQ"} true; - R16, Gamma_R16 := 65536bv64, true; - call rely(); - load25, Gamma_load25 := memory_load64_le(mem, bvadd64(R16, 4032bv64)), (gamma_load64(Gamma_mem, bvadd64(R16, 4032bv64)) || L(mem, bvadd64(R16, 4032bv64))); - R17, Gamma_R17 := load25, Gamma_load25; - R16, Gamma_R16 := bvadd64(R16, 4032bv64), Gamma_R16; - call #free(); - goto FUN_6b0_1712_basil_return; - FUN_6b0_1712_basil_return: - assume {:captureState "FUN_6b0_1712_basil_return"} true; - return; -} - -procedure printf(); - free requires (memory_load64_le(mem, 2224bv64) == 131073bv64); - free requires (memory_load64_le(mem, 2232bv64) == 8241983568019286100bv64); - free requires (memory_load64_le(mem, 2240bv64) == 748482783423457568bv64); - free requires (memory_load64_le(mem, 2248bv64) == 0bv64); - free requires (memory_load64_le(mem, 2256bv64) == 2338615504306268244bv64); - free requires (memory_load64_le(mem, 2264bv64) == 2924860384375657bv64); - free requires (memory_load64_le(mem, 68992bv64) == 2064bv64); - free requires (memory_load64_le(mem, 69000bv64) == 1984bv64); - free requires (memory_load64_le(mem, 69616bv64) == 2068bv64); - free requires (memory_load64_le(mem, 69640bv64) == 69640bv64); - free ensures (memory_load64_le(mem, 2224bv64) == 131073bv64); - free ensures (memory_load64_le(mem, 2232bv64) == 8241983568019286100bv64); - free ensures (memory_load64_le(mem, 2240bv64) == 748482783423457568bv64); - free ensures (memory_load64_le(mem, 2248bv64) == 0bv64); - free ensures (memory_load64_le(mem, 2256bv64) == 2338615504306268244bv64); - free ensures (memory_load64_le(mem, 2264bv64) == 2924860384375657bv64); - free ensures (memory_load64_le(mem, 68992bv64) == 2064bv64); - free ensures (memory_load64_le(mem, 69000bv64) == 1984bv64); - free ensures (memory_load64_le(mem, 69616bv64) == 2068bv64); - free ensures (memory_load64_le(mem, 69640bv64) == 69640bv64); - -procedure malloc(); - free requires (memory_load64_le(mem, 2224bv64) == 131073bv64); - free requires (memory_load64_le(mem, 2232bv64) == 8241983568019286100bv64); - free requires (memory_load64_le(mem, 2240bv64) == 748482783423457568bv64); - free requires (memory_load64_le(mem, 2248bv64) == 0bv64); - free requires (memory_load64_le(mem, 2256bv64) == 2338615504306268244bv64); - free requires (memory_load64_le(mem, 2264bv64) == 2924860384375657bv64); - free requires (memory_load64_le(mem, 68992bv64) == 2064bv64); - free requires (memory_load64_le(mem, 69000bv64) == 1984bv64); - free requires (memory_load64_le(mem, 69616bv64) == 2068bv64); - free requires (memory_load64_le(mem, 69640bv64) == 69640bv64); - free ensures (memory_load64_le(mem, 2224bv64) == 131073bv64); - free ensures (memory_load64_le(mem, 2232bv64) == 8241983568019286100bv64); - free ensures (memory_load64_le(mem, 2240bv64) == 748482783423457568bv64); - free ensures (memory_load64_le(mem, 2248bv64) == 0bv64); - free ensures (memory_load64_le(mem, 2256bv64) == 2338615504306268244bv64); - free ensures (memory_load64_le(mem, 2264bv64) == 2924860384375657bv64); - free ensures (memory_load64_le(mem, 68992bv64) == 2064bv64); - free ensures (memory_load64_le(mem, 69000bv64) == 1984bv64); - free ensures (memory_load64_le(mem, 69616bv64) == 2068bv64); - free ensures (memory_load64_le(mem, 69640bv64) == 69640bv64); - -procedure #free(); - free requires (memory_load64_le(mem, 2224bv64) == 131073bv64); - free requires (memory_load64_le(mem, 2232bv64) == 8241983568019286100bv64); - free requires (memory_load64_le(mem, 2240bv64) == 748482783423457568bv64); - free requires (memory_load64_le(mem, 2248bv64) == 0bv64); - free requires (memory_load64_le(mem, 2256bv64) == 2338615504306268244bv64); - free requires (memory_load64_le(mem, 2264bv64) == 2924860384375657bv64); - free requires (memory_load64_le(mem, 68992bv64) == 2064bv64); - free requires (memory_load64_le(mem, 69000bv64) == 1984bv64); - free requires (memory_load64_le(mem, 69616bv64) == 2068bv64); - free requires (memory_load64_le(mem, 69640bv64) == 69640bv64); - free ensures (memory_load64_le(mem, 2224bv64) == 131073bv64); - free ensures (memory_load64_le(mem, 2232bv64) == 8241983568019286100bv64); - free ensures (memory_load64_le(mem, 2240bv64) == 748482783423457568bv64); - free ensures (memory_load64_le(mem, 2248bv64) == 0bv64); - free ensures (memory_load64_le(mem, 2256bv64) == 2338615504306268244bv64); - free ensures (memory_load64_le(mem, 2264bv64) == 2924860384375657bv64); - free ensures (memory_load64_le(mem, 68992bv64) == 2064bv64); - free ensures (memory_load64_le(mem, 69000bv64) == 1984bv64); - free ensures (memory_load64_le(mem, 69616bv64) == 2068bv64); - free ensures (memory_load64_le(mem, 69640bv64) == 69640bv64); +procedure __printf_chk(); + free requires (memory_load64_le(mem, 4196376bv64) == 131073bv64); + free requires (memory_load64_le(mem, 4196384bv64) == 8241983568019286100bv64); + free requires (memory_load64_le(mem, 4196392bv64) == 748482783423457568bv64); + free requires (memory_load64_le(mem, 4196400bv64) == 0bv64); + free requires (memory_load64_le(mem, 4196408bv64) == 2338615504306268244bv64); + free requires (memory_load64_le(mem, 4196416bv64) == 2924860384375657bv64); + free ensures (memory_load64_le(mem, 4196376bv64) == 131073bv64); + free ensures (memory_load64_le(mem, 4196384bv64) == 8241983568019286100bv64); + free ensures (memory_load64_le(mem, 4196392bv64) == 748482783423457568bv64); + free ensures (memory_load64_le(mem, 4196400bv64) == 0bv64); + free ensures (memory_load64_le(mem, 4196408bv64) == 2338615504306268244bv64); + free ensures (memory_load64_le(mem, 4196416bv64) == 2924860384375657bv64); diff --git a/src/test/correct/no_interference_update_x/clang/no_interference_update_x.adt b/src/test/correct/no_interference_update_x/clang/no_interference_update_x.adt deleted file mode 100644 index a00697c9a..000000000 --- a/src/test/correct/no_interference_update_x/clang/no_interference_update_x.adt +++ /dev/null @@ -1,492 +0,0 @@ -Project(Attrs([Attr("filename","\"clang/no_interference_update_x.out\""), -Attr("image-specification","(declare abi (name str))\n(declare arch (name str))\n(declare base-address (addr int))\n(declare bias (off int))\n(declare bits (size int))\n(declare code-region (addr int) (size int) (off int))\n(declare code-start (addr int))\n(declare entry-point (addr int))\n(declare external-reference (addr int) (name str))\n(declare format (name str))\n(declare is-executable (flag bool))\n(declare is-little-endian (flag bool))\n(declare llvm:base-address (addr int))\n(declare llvm:code-entry (name str) (off int) (size int))\n(declare llvm:coff-import-library (name str))\n(declare llvm:coff-virtual-section-header (name str) (addr int) (size int))\n(declare llvm:elf-program-header (name str) (off int) (size int))\n(declare llvm:elf-program-header-flags (name str) (ld bool) (r bool) \n (w bool) (x bool))\n(declare llvm:elf-virtual-program-header (name str) (addr int) (size int))\n(declare llvm:entry-point (addr int))\n(declare llvm:macho-symbol (name str) (value int))\n(declare llvm:name-reference (at int) (name str))\n(declare llvm:relocation (at int) (addr int))\n(declare llvm:section-entry (name str) (addr int) (size int) (off int))\n(declare llvm:section-flags (name str) (r bool) (w bool) (x bool))\n(declare llvm:segment-command (name str) (off int) (size int))\n(declare llvm:segment-command-flags (name str) (r bool) (w bool) (x bool))\n(declare llvm:symbol-entry (name str) (addr int) (size int) (off int)\n (value int))\n(declare llvm:virtual-segment-command (name str) (addr int) (size int))\n(declare mapped (addr int) (size int) (off int))\n(declare named-region (addr int) (size int) (name str))\n(declare named-symbol (addr int) (name str))\n(declare require (name str))\n(declare section (addr int) (size int))\n(declare segment (addr int) (size int) (r bool) (w bool) (x bool))\n(declare subarch (name str))\n(declare symbol-chunk (addr int) (size int) (root int))\n(declare symbol-value (addr int) (value int))\n(declare system (name str))\n(declare vendor (name str))\n\n(abi unknown)\n(arch aarch64)\n(base-address 0)\n(bias 0)\n(bits 64)\n(code-region 1832 20 1832)\n(code-region 1536 296 1536)\n(code-region 1440 96 1440)\n(code-region 1408 24 1408)\n(code-start 1588)\n(code-start 1536)\n(code-start 1812)\n(entry-point 1536)\n(external-reference 69568 _ITM_deregisterTMCloneTable)\n(external-reference 69576 __cxa_finalize)\n(external-reference 69584 __gmon_start__)\n(external-reference 69600 _ITM_registerTMCloneTable)\n(external-reference 69632 __libc_start_main)\n(external-reference 69640 __cxa_finalize)\n(external-reference 69648 __gmon_start__)\n(external-reference 69656 abort)\n(format elf)\n(is-executable true)\n(is-little-endian true)\n(llvm:base-address 0)\n(llvm:code-entry abort 0 0)\n(llvm:code-entry __cxa_finalize 0 0)\n(llvm:code-entry __libc_start_main 0 0)\n(llvm:code-entry _init 1408 0)\n(llvm:code-entry main 1812 20)\n(llvm:code-entry _start 1536 52)\n(llvm:code-entry abort@GLIBC_2.17 0 0)\n(llvm:code-entry _fini 1832 0)\n(llvm:code-entry __cxa_finalize@GLIBC_2.17 0 0)\n(llvm:code-entry __libc_start_main@GLIBC_2.34 0 0)\n(llvm:code-entry frame_dummy 1808 0)\n(llvm:code-entry __do_global_dtors_aux 1728 0)\n(llvm:code-entry register_tm_clones 1664 0)\n(llvm:code-entry deregister_tm_clones 1616 0)\n(llvm:code-entry call_weak_fn 1588 20)\n(llvm:code-entry .fini 1832 20)\n(llvm:code-entry .text 1536 296)\n(llvm:code-entry .plt 1440 96)\n(llvm:code-entry .init 1408 24)\n(llvm:elf-program-header 08 3528 568)\n(llvm:elf-program-header 07 0 0)\n(llvm:elf-program-header 06 1856 60)\n(llvm:elf-program-header 05 596 68)\n(llvm:elf-program-header 04 3544 480)\n(llvm:elf-program-header 03 3528 616)\n(llvm:elf-program-header 02 0 2100)\n(llvm:elf-program-header 01 568 27)\n(llvm:elf-program-header 00 64 504)\n(llvm:elf-program-header-flags 08 false true false false)\n(llvm:elf-program-header-flags 07 false true true false)\n(llvm:elf-program-header-flags 06 false true false false)\n(llvm:elf-program-header-flags 05 false true false false)\n(llvm:elf-program-header-flags 04 false true true false)\n(llvm:elf-program-header-flags 03 true true true false)\n(llvm:elf-program-header-flags 02 true true false true)\n(llvm:elf-program-header-flags 01 false true false false)\n(llvm:elf-program-header-flags 00 false true false false)\n(llvm:elf-virtual-program-header 08 69064 568)\n(llvm:elf-virtual-program-header 07 0 0)\n(llvm:elf-virtual-program-header 06 1856 60)\n(llvm:elf-virtual-program-header 05 596 68)\n(llvm:elf-virtual-program-header 04 69080 480)\n(llvm:elf-virtual-program-header 03 69064 632)\n(llvm:elf-virtual-program-header 02 0 2100)\n(llvm:elf-virtual-program-header 01 568 27)\n(llvm:elf-virtual-program-header 00 64 504)\n(llvm:entry-point 1536)\n(llvm:name-reference 69656 abort)\n(llvm:name-reference 69648 __gmon_start__)\n(llvm:name-reference 69640 __cxa_finalize)\n(llvm:name-reference 69632 __libc_start_main)\n(llvm:name-reference 69600 _ITM_registerTMCloneTable)\n(llvm:name-reference 69584 __gmon_start__)\n(llvm:name-reference 69576 __cxa_finalize)\n(llvm:name-reference 69568 _ITM_deregisterTMCloneTable)\n(llvm:section-entry .shstrtab 0 259 6980)\n(llvm:section-entry .strtab 0 580 6400)\n(llvm:section-entry .symtab 0 2184 4216)\n(llvm:section-entry .comment 0 71 4144)\n(llvm:section-entry .bss 69680 16 4144)\n(llvm:section-entry .data 69664 16 4128)\n(llvm:section-entry .got.plt 69608 56 4072)\n(llvm:section-entry .got 69560 48 4024)\n(llvm:section-entry .dynamic 69080 480 3544)\n(llvm:section-entry .fini_array 69072 8 3536)\n(llvm:section-entry .init_array 69064 8 3528)\n(llvm:section-entry .eh_frame 1920 180 1920)\n(llvm:section-entry .eh_frame_hdr 1856 60 1856)\n(llvm:section-entry .rodata 1852 4 1852)\n(llvm:section-entry .fini 1832 20 1832)\n(llvm:section-entry .text 1536 296 1536)\n(llvm:section-entry .plt 1440 96 1440)\n(llvm:section-entry .init 1408 24 1408)\n(llvm:section-entry .rela.plt 1312 96 1312)\n(llvm:section-entry .rela.dyn 1120 192 1120)\n(llvm:section-entry .gnu.version_r 1072 48 1072)\n(llvm:section-entry .gnu.version 1054 18 1054)\n(llvm:section-entry .dynstr 912 141 912)\n(llvm:section-entry .dynsym 696 216 696)\n(llvm:section-entry .gnu.hash 664 28 664)\n(llvm:section-entry .note.ABI-tag 632 32 632)\n(llvm:section-entry .note.gnu.build-id 596 36 596)\n(llvm:section-entry .interp 568 27 568)\n(llvm:section-flags .shstrtab true false false)\n(llvm:section-flags .strtab true false false)\n(llvm:section-flags .symtab true false false)\n(llvm:section-flags .comment true false false)\n(llvm:section-flags .bss true true false)\n(llvm:section-flags .data true true false)\n(llvm:section-flags .got.plt true true false)\n(llvm:section-flags .got true true false)\n(llvm:section-flags .dynamic true true false)\n(llvm:section-flags .fini_array true true false)\n(llvm:section-flags .init_array true true false)\n(llvm:section-flags .eh_frame true false false)\n(llvm:section-flags .eh_frame_hdr true false false)\n(llvm:section-flags .rodata true false false)\n(llvm:section-flags .fini true false true)\n(llvm:section-flags .text true false true)\n(llvm:section-flags .plt true false true)\n(llvm:section-flags .init true false true)\n(llvm:section-flags .rela.plt true false false)\n(llvm:section-flags .rela.dyn true false false)\n(llvm:section-flags .gnu.version_r true false false)\n(llvm:section-flags .gnu.version true false false)\n(llvm:section-flags .dynstr true false false)\n(llvm:section-flags .dynsym true false false)\n(llvm:section-flags .gnu.hash true false false)\n(llvm:section-flags .note.ABI-tag true false false)\n(llvm:section-flags .note.gnu.build-id true false false)\n(llvm:section-flags .interp true false false)\n(llvm:symbol-entry abort 0 0 0 0)\n(llvm:symbol-entry __cxa_finalize 0 0 0 0)\n(llvm:symbol-entry __libc_start_main 0 0 0 0)\n(llvm:symbol-entry _init 1408 0 1408 1408)\n(llvm:symbol-entry main 1812 20 1812 1812)\n(llvm:symbol-entry _start 1536 52 1536 1536)\n(llvm:symbol-entry abort@GLIBC_2.17 0 0 0 0)\n(llvm:symbol-entry _fini 1832 0 1832 1832)\n(llvm:symbol-entry __cxa_finalize@GLIBC_2.17 0 0 0 0)\n(llvm:symbol-entry __libc_start_main@GLIBC_2.34 0 0 0 0)\n(llvm:symbol-entry frame_dummy 1808 0 1808 1808)\n(llvm:symbol-entry __do_global_dtors_aux 1728 0 1728 1728)\n(llvm:symbol-entry register_tm_clones 1664 0 1664 1664)\n(llvm:symbol-entry deregister_tm_clones 1616 0 1616 1616)\n(llvm:symbol-entry call_weak_fn 1588 20 1588 1588)\n(mapped 0 2100 0)\n(mapped 69064 616 3528)\n(named-region 0 2100 02)\n(named-region 69064 632 03)\n(named-region 568 27 .interp)\n(named-region 596 36 .note.gnu.build-id)\n(named-region 632 32 .note.ABI-tag)\n(named-region 664 28 .gnu.hash)\n(named-region 696 216 .dynsym)\n(named-region 912 141 .dynstr)\n(named-region 1054 18 .gnu.version)\n(named-region 1072 48 .gnu.version_r)\n(named-region 1120 192 .rela.dyn)\n(named-region 1312 96 .rela.plt)\n(named-region 1408 24 .init)\n(named-region 1440 96 .plt)\n(named-region 1536 296 .text)\n(named-region 1832 20 .fini)\n(named-region 1852 4 .rodata)\n(named-region 1856 60 .eh_frame_hdr)\n(named-region 1920 180 .eh_frame)\n(named-region 69064 8 .init_array)\n(named-region 69072 8 .fini_array)\n(named-region 69080 480 .dynamic)\n(named-region 69560 48 .got)\n(named-region 69608 56 .got.plt)\n(named-region 69664 16 .data)\n(named-region 69680 16 .bss)\n(named-region 0 71 .comment)\n(named-region 0 2184 .symtab)\n(named-region 0 580 .strtab)\n(named-region 0 259 .shstrtab)\n(named-symbol 1588 call_weak_fn)\n(named-symbol 1616 deregister_tm_clones)\n(named-symbol 1664 register_tm_clones)\n(named-symbol 1728 __do_global_dtors_aux)\n(named-symbol 1808 frame_dummy)\n(named-symbol 0 __libc_start_main@GLIBC_2.34)\n(named-symbol 0 __cxa_finalize@GLIBC_2.17)\n(named-symbol 1832 _fini)\n(named-symbol 0 abort@GLIBC_2.17)\n(named-symbol 1536 _start)\n(named-symbol 1812 main)\n(named-symbol 1408 _init)\n(named-symbol 0 __libc_start_main)\n(named-symbol 0 __cxa_finalize)\n(named-symbol 0 abort)\n(require libc.so.6)\n(section 568 27)\n(section 596 36)\n(section 632 32)\n(section 664 28)\n(section 696 216)\n(section 912 141)\n(section 1054 18)\n(section 1072 48)\n(section 1120 192)\n(section 1312 96)\n(section 1408 24)\n(section 1440 96)\n(section 1536 296)\n(section 1832 20)\n(section 1852 4)\n(section 1856 60)\n(section 1920 180)\n(section 69064 8)\n(section 69072 8)\n(section 69080 480)\n(section 69560 48)\n(section 69608 56)\n(section 69664 16)\n(section 69680 16)\n(section 0 71)\n(section 0 2184)\n(section 0 580)\n(section 0 259)\n(segment 0 2100 true false true)\n(segment 69064 632 true true false)\n(subarch v8)\n(symbol-chunk 1588 20 1588)\n(symbol-chunk 1536 52 1536)\n(symbol-chunk 1812 20 1812)\n(symbol-value 1588 1588)\n(symbol-value 1616 1616)\n(symbol-value 1664 1664)\n(symbol-value 1728 1728)\n(symbol-value 1808 1808)\n(symbol-value 1832 1832)\n(symbol-value 1536 1536)\n(symbol-value 1812 1812)\n(symbol-value 1408 1408)\n(symbol-value 0 0)\n(system \"\")\n(vendor \"\")\n"), -Attr("abi-name","\"aarch64-linux-gnu-elf\"")]), -Sections([Section(".shstrtab", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x00\x06\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x48\x1c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x38\x00\x09\x00\x40\x00\x1d\x00\x1c\x00\x06\x00\x00\x00\x04\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x04\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x34\x08\x00\x00\x00\x00\x00\x00\x34\x08\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x01\x00\x00\x00\x06\x00\x00\x00\xc8\x0d\x00\x00\x00\x00\x00\x00\xc8\x0d\x01\x00\x00\x00\x00\x00\xc8\x0d\x01"), -Section(".strtab", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x00\x06\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x48\x1c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x38\x00\x09\x00\x40\x00\x1d\x00\x1c\x00\x06\x00\x00\x00\x04\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x04\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x34\x08\x00\x00\x00\x00\x00\x00\x34\x08\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x01\x00\x00\x00\x06\x00\x00\x00\xc8\x0d\x00\x00\x00\x00\x00\x00\xc8\x0d\x01\x00\x00\x00\x00\x00\xc8\x0d\x01\x00\x00\x00\x00\x00\x68\x02\x00\x00\x00\x00\x00\x00\x78\x02\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x02\x00\x00\x00\x06\x00\x00\x00\xd8\x0d\x00\x00\x00\x00\x00\x00\xd8\x0d\x01\x00\x00\x00\x00\x00\xd8\x0d\x01\x00\x00\x00\x00\x00\xe0\x01\x00\x00\x00\x00\x00\x00\xe0\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x04\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x50\xe5\x74\x64\x04\x00\x00\x00\x40\x07\x00\x00\x00\x00\x00\x00\x40\x07\x00\x00\x00\x00\x00\x00\x40\x07\x00\x00\x00\x00\x00\x00\x3c\x00\x00\x00\x00\x00\x00\x00\x3c\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x51\xe5\x74\x64\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x52\xe5\x74\x64\x04\x00\x00\x00\xc8\x0d\x00\x00\x00\x00\x00\x00\xc8\x0d\x01\x00\x00\x00\x00\x00\xc8\x0d\x01\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x2f\x6c\x69\x62\x2f\x6c\x64\x2d\x6c\x69\x6e\x75"), -Section(".comment", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x00\x06\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x48\x1c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x38\x00\x09\x00\x40\x00\x1d\x00\x1c\x00\x06\x00\x00\x00\x04\x00\x00"), -Section(".interp", 0x238, "\x2f\x6c\x69\x62\x2f\x6c\x64\x2d\x6c\x69\x6e\x75\x78\x2d\x61\x61\x72\x63\x68\x36\x34\x2e\x73\x6f\x2e\x31\x00"), -Section(".note.gnu.build-id", 0x254, "\x04\x00\x00\x00\x14\x00\x00\x00\x03\x00\x00\x00\x47\x4e\x55\x00\x2c\xab\x28\x45\xd4\x31\xdb\x8b\x85\xb2\x83\x72\xdf\xdc\x87\x98\x5f\xdf\x77\x75"), -Section(".note.ABI-tag", 0x278, "\x04\x00\x00\x00\x10\x00\x00\x00\x01\x00\x00\x00\x47\x4e\x55\x00\x00\x00\x00\x00\x03\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00"), -Section(".gnu.hash", 0x298, "\x01\x00\x00\x00\x01\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".dynsym", 0x2B8, "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x0b\x00\x80\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x17\x00\x20\x10\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x48\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x22\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x22\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x73\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".dynstr", 0x390, "\x00\x5f\x5f\x63\x78\x61\x5f\x66\x69\x6e\x61\x6c\x69\x7a\x65\x00\x5f\x5f\x6c\x69\x62\x63\x5f\x73\x74\x61\x72\x74\x5f\x6d\x61\x69\x6e\x00\x61\x62\x6f\x72\x74\x00\x6c\x69\x62\x63\x2e\x73\x6f\x2e\x36\x00\x47\x4c\x49\x42\x43\x5f\x32\x2e\x31\x37\x00\x47\x4c\x49\x42\x43\x5f\x32\x2e\x33\x34\x00\x5f\x49\x54\x4d\x5f\x64\x65\x72\x65\x67\x69\x73\x74\x65\x72\x54\x4d\x43\x6c\x6f\x6e\x65\x54\x61\x62\x6c\x65\x00\x5f\x5f\x67\x6d\x6f\x6e\x5f\x73\x74\x61\x72\x74\x5f\x5f\x00\x5f\x49\x54\x4d\x5f\x72\x65\x67\x69\x73\x74\x65\x72\x54\x4d\x43\x6c\x6f\x6e\x65\x54\x61\x62\x6c\x65\x00"), -Section(".gnu.version", 0x41E, "\x00\x00\x00\x00\x00\x00\x02\x00\x01\x00\x03\x00\x01\x00\x03\x00\x01\x00"), -Section(".gnu.version_r", 0x430, "\x01\x00\x02\x00\x28\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x97\x91\x96\x06\x00\x00\x03\x00\x32\x00\x00\x00\x10\x00\x00\x00\xb4\x91\x96\x06\x00\x00\x02\x00\x3d\x00\x00\x00\x00\x00\x00\x00"), -Section(".rela.dyn", 0x460, "\xc8\x0d\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x10\x07\x00\x00\x00\x00\x00\x00\xd0\x0d\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\xc0\x06\x00\x00\x00\x00\x00\x00\xd8\x0f\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x14\x07\x00\x00\x00\x00\x00\x00\x28\x10\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x28\x10\x01\x00\x00\x00\x00\x00\xc0\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xc8\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xd0\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe0\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".rela.plt", 0x520, "\x00\x10\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x08\x10\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x10\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x18\x10\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".init", 0x580, "\x1f\x20\x03\xd5\xfd\x7b\xbf\xa9\xfd\x03\x00\x91\x2a\x00\x00\x94\xfd\x7b\xc1\xa8\xc0\x03\x5f\xd6"), -Section(".plt", 0x5A0, "\xf0\x7b\xbf\xa9\x90\x00\x00\x90\x11\xfe\x47\xf9\x10\xe2\x3f\x91\x20\x02\x1f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x90\x00\x00\xb0\x11\x02\x40\xf9\x10\x02\x00\x91\x20\x02\x1f\xd6\x90\x00\x00\xb0\x11\x06\x40\xf9\x10\x22\x00\x91\x20\x02\x1f\xd6\x90\x00\x00\xb0\x11\x0a\x40\xf9\x10\x42\x00\x91\x20\x02\x1f\xd6\x90\x00\x00\xb0\x11\x0e\x40\xf9\x10\x62\x00\x91\x20\x02\x1f\xd6"), -Section(".text", 0x600, "\x1f\x20\x03\xd5\x1d\x00\x80\xd2\x1e\x00\x80\xd2\xe5\x03\x00\xaa\xe1\x03\x40\xf9\xe2\x23\x00\x91\xe6\x03\x00\x91\x80\x00\x00\x90\x00\xec\x47\xf9\x03\x00\x80\xd2\x04\x00\x80\xd2\xe5\xff\xff\x97\xf0\xff\xff\x97\x80\x00\x00\x90\x00\xe8\x47\xf9\x40\x00\x00\xb4\xe8\xff\xff\x17\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x80\x00\x00\xb0\x00\xc0\x00\x91\x81\x00\x00\xb0\x21\xc0\x00\x91\x3f\x00\x00\xeb\xc0\x00\x00\x54\x81\x00\x00\x90\x21\xe0\x47\xf9\x61\x00\x00\xb4\xf0\x03\x01\xaa\x00\x02\x1f\xd6\xc0\x03\x5f\xd6\x80\x00\x00\xb0\x00\xc0\x00\x91\x81\x00\x00\xb0\x21\xc0\x00\x91\x21\x00\x00\xcb\x22\xfc\x7f\xd3\x41\x0c\x81\x8b\x21\xfc\x41\x93\xc1\x00\x00\xb4\x82\x00\x00\x90\x42\xf0\x47\xf9\x62\x00\x00\xb4\xf0\x03\x02\xaa\x00\x02\x1f\xd6\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\xfd\x7b\xbe\xa9\xfd\x03\x00\x91\xf3\x0b\x00\xf9\x93\x00\x00\xb0\x60\xc2\x40\x39\x40\x01\x00\x35\x80\x00\x00\x90\x00\xe4\x47\xf9\x80\x00\x00\xb4\x80\x00\x00\xb0\x00\x14\x40\xf9\xb9\xff\xff\x97\xd8\xff\xff\x97\x20\x00\x80\x52\x60\xc2\x00\x39\xf3\x0b\x40\xf9\xfd\x7b\xc2\xa8\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\xdc\xff\xff\x17\x89\x00\x00\xb0\x28\x00\x80\x52\x28\x35\x00\xb9\xe0\x03\x1f\x2a\xc0\x03\x5f\xd6"), -Section(".fini", 0x728, "\x1f\x20\x03\xd5\xfd\x7b\xbf\xa9\xfd\x03\x00\x91\xfd\x7b\xc1\xa8\xc0\x03\x5f\xd6"), -Section(".rodata", 0x73C, "\x01\x00\x02\x00"), -Section(".eh_frame_hdr", 0x740, "\x01\x1b\x03\x3b\x3c\x00\x00\x00\x06\x00\x00\x00\xc0\xfe\xff\xff\x54\x00\x00\x00\x10\xff\xff\xff\x68\x00\x00\x00\x40\xff\xff\xff\x7c\x00\x00\x00\x80\xff\xff\xff\x90\x00\x00\x00\xd0\xff\xff\xff\xb4\x00\x00\x00\xd4\xff\xff\xff\xdc\x00\x00\x00"), -Section(".eh_frame", 0x780, "\x10\x00\x00\x00\x00\x00\x00\x00\x01\x7a\x52\x00\x04\x78\x1e\x01\x1b\x0c\x1f\x00\x10\x00\x00\x00\x18\x00\x00\x00\x64\xfe\xff\xff\x34\x00\x00\x00\x00\x41\x07\x1e\x10\x00\x00\x00\x2c\x00\x00\x00\xa0\xfe\xff\xff\x30\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x40\x00\x00\x00\xbc\xfe\xff\xff\x3c\x00\x00\x00\x00\x00\x00\x00\x20\x00\x00\x00\x54\x00\x00\x00\xe8\xfe\xff\xff\x48\x00\x00\x00\x00\x41\x0e\x20\x9d\x04\x9e\x03\x42\x93\x02\x4e\xde\xdd\xd3\x0e\x00\x00\x00\x00\x10\x00\x00\x00\x78\x00\x00\x00\x14\xff\xff\xff\x04\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x01\x7a\x52\x00\x01\x7c\x1e\x01\x1b\x0c\x1f\x00\x10\x00\x00\x00\x18\x00\x00\x00\xf0\xfe\xff\xff\x14\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".fini_array", 0x10DD0, "\xc0\x06\x00\x00\x00\x00\x00\x00"), -Section(".dynamic", 0x10DD8, "\x01\x00\x00\x00\x00\x00\x00\x00\x28\x00\x00\x00\x00\x00\x00\x00\x0c\x00\x00\x00\x00\x00\x00\x00\x80\x05\x00\x00\x00\x00\x00\x00\x0d\x00\x00\x00\x00\x00\x00\x00\x28\x07\x00\x00\x00\x00\x00\x00\x19\x00\x00\x00\x00\x00\x00\x00\xc8\x0d\x01\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x1a\x00\x00\x00\x00\x00\x00\x00\xd0\x0d\x01\x00\x00\x00\x00\x00\x1c\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\xf5\xfe\xff\x6f\x00\x00\x00\x00\x98\x02\x00\x00\x00\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x90\x03\x00\x00\x00\x00\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\xb8\x02\x00\x00\x00\x00\x00\x00\x0a\x00\x00\x00\x00\x00\x00\x00\x8d\x00\x00\x00\x00\x00\x00\x00\x0b\x00\x00\x00\x00\x00\x00\x00\x18\x00\x00\x00\x00\x00\x00\x00\x15\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\xe8\x0f\x01\x00\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x60\x00\x00\x00\x00\x00\x00\x00\x14\x00\x00\x00\x00\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x17\x00\x00\x00\x00\x00\x00\x00\x20\x05\x00\x00\x00\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x60\x04\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\xc0\x00\x00\x00\x00\x00\x00\x00\x09\x00\x00\x00\x00\x00\x00\x00\x18\x00\x00\x00\x00\x00\x00\x00\xfb\xff\xff\x6f\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\xfe\xff\xff\x6f\x00\x00\x00\x00\x30\x04\x00\x00\x00\x00\x00\x00\xff\xff\xff\x6f\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\xf0\xff\xff\x6f\x00\x00\x00\x00\x1e\x04\x00\x00\x00\x00\x00\x00\xf9\xff\xff\x6f\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".init_array", 0x10DC8, "\x10\x07\x00\x00\x00\x00\x00\x00"), -Section(".got", 0x10FB8, "\xd8\x0d\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x14\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".got.plt", 0x10FE8, "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xa0\x05\x00\x00\x00\x00\x00\x00\xa0\x05\x00\x00\x00\x00\x00\x00\xa0\x05\x00\x00\x00\x00\x00\x00\xa0\x05\x00\x00\x00\x00\x00\x00"), -Section(".data", 0x11020, "\x00\x00\x00\x00\x00\x00\x00\x00\x28\x10\x01\x00\x00\x00\x00\x00")]), -Memmap([Annotation(Region(0x0,0x833), Attr("segment","02 0 2100")), -Annotation(Region(0x600,0x633), Attr("symbol","\"_start\"")), -Annotation(Region(0x0,0x102), Attr("section","\".shstrtab\"")), -Annotation(Region(0x0,0x243), Attr("section","\".strtab\"")), -Annotation(Region(0x0,0x46), Attr("section","\".comment\"")), -Annotation(Region(0x238,0x252), Attr("section","\".interp\"")), -Annotation(Region(0x254,0x277), Attr("section","\".note.gnu.build-id\"")), -Annotation(Region(0x278,0x297), Attr("section","\".note.ABI-tag\"")), -Annotation(Region(0x298,0x2B3), Attr("section","\".gnu.hash\"")), -Annotation(Region(0x2B8,0x38F), Attr("section","\".dynsym\"")), -Annotation(Region(0x390,0x41C), Attr("section","\".dynstr\"")), -Annotation(Region(0x41E,0x42F), Attr("section","\".gnu.version\"")), -Annotation(Region(0x430,0x45F), Attr("section","\".gnu.version_r\"")), -Annotation(Region(0x460,0x51F), Attr("section","\".rela.dyn\"")), -Annotation(Region(0x520,0x57F), Attr("section","\".rela.plt\"")), -Annotation(Region(0x580,0x597), Attr("section","\".init\"")), -Annotation(Region(0x5A0,0x5FF), Attr("section","\".plt\"")), -Annotation(Region(0x580,0x597), Attr("code-region","()")), -Annotation(Region(0x5A0,0x5FF), Attr("code-region","()")), -Annotation(Region(0x600,0x633), Attr("symbol-info","_start 0x600 52")), -Annotation(Region(0x634,0x647), Attr("symbol","\"call_weak_fn\"")), -Annotation(Region(0x634,0x647), Attr("symbol-info","call_weak_fn 0x634 20")), -Annotation(Region(0x600,0x727), Attr("section","\".text\"")), -Annotation(Region(0x600,0x727), Attr("code-region","()")), -Annotation(Region(0x714,0x727), Attr("symbol","\"main\"")), -Annotation(Region(0x714,0x727), Attr("symbol-info","main 0x714 20")), -Annotation(Region(0x728,0x73B), Attr("section","\".fini\"")), -Annotation(Region(0x728,0x73B), Attr("code-region","()")), -Annotation(Region(0x73C,0x73F), Attr("section","\".rodata\"")), -Annotation(Region(0x740,0x77B), Attr("section","\".eh_frame_hdr\"")), -Annotation(Region(0x780,0x833), Attr("section","\".eh_frame\"")), -Annotation(Region(0x10DC8,0x1102F), Attr("segment","03 0x10DC8 632")), -Annotation(Region(0x10DD0,0x10DD7), Attr("section","\".fini_array\"")), -Annotation(Region(0x10DD8,0x10FB7), Attr("section","\".dynamic\"")), -Annotation(Region(0x10DC8,0x10DCF), Attr("section","\".init_array\"")), -Annotation(Region(0x10FB8,0x10FE7), Attr("section","\".got\"")), -Annotation(Region(0x10FE8,0x1101F), Attr("section","\".got.plt\"")), -Annotation(Region(0x11020,0x1102F), Attr("section","\".data\""))]), -Program(Tid(1_417, "%00000589"), Attrs([]), - Subs([Sub(Tid(1_367, "@__cxa_finalize"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x5D0"), -Attr("stub","()")]), "__cxa_finalize", Args([Arg(Tid(1_418, "%0000058a"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("__cxa_finalize_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(785, "@__cxa_finalize"), - Attrs([Attr("address","0x5D0")]), Phis([]), -Defs([Def(Tid(1_033, "%00000409"), Attrs([Attr("address","0x5D0"), -Attr("insn","adrp x16, #69632")]), Var("R16",Imm(64)), Int(69632,64)), -Def(Tid(1_040, "%00000410"), Attrs([Attr("address","0x5D4"), -Attr("insn","ldr x17, [x16, #0x8]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(1_046, "%00000416"), Attrs([Attr("address","0x5D8"), -Attr("insn","add x16, x16, #0x8")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(8,64)))]), Jmps([Call(Tid(1_051, "%0000041b"), - Attrs([Attr("address","0x5DC"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), -Sub(Tid(1_368, "@__do_global_dtors_aux"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x6C0")]), - "__do_global_dtors_aux", Args([Arg(Tid(1_419, "%0000058b"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("__do_global_dtors_aux_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(610, "@__do_global_dtors_aux"), - Attrs([Attr("address","0x6C0")]), Phis([]), Defs([Def(Tid(614, "%00000266"), - Attrs([Attr("address","0x6C0"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("#3",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(18446744073709551584,64))), -Def(Tid(620, "%0000026c"), Attrs([Attr("address","0x6C0"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("#3",Imm(64)),Var("R29",Imm(64)),LittleEndian(),64)), -Def(Tid(626, "%00000272"), Attrs([Attr("address","0x6C0"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("#3",Imm(64)),Int(8,64)),Var("R30",Imm(64)),LittleEndian(),64)), -Def(Tid(630, "%00000276"), Attrs([Attr("address","0x6C0"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("R31",Imm(64)), -Var("#3",Imm(64))), Def(Tid(636, "%0000027c"), - Attrs([Attr("address","0x6C4"), Attr("insn","mov x29, sp")]), - Var("R29",Imm(64)), Var("R31",Imm(64))), Def(Tid(644, "%00000284"), - Attrs([Attr("address","0x6C8"), Attr("insn","str x19, [sp, #0x10]")]), - Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(16,64)),Var("R19",Imm(64)),LittleEndian(),64)), -Def(Tid(649, "%00000289"), Attrs([Attr("address","0x6CC"), -Attr("insn","adrp x19, #69632")]), Var("R19",Imm(64)), Int(69632,64)), -Def(Tid(656, "%00000290"), Attrs([Attr("address","0x6D0"), -Attr("insn","ldrb w0, [x19, #0x30]")]), Var("R0",Imm(64)), -UNSIGNED(64,Load(Var("mem",Mem(64,8)),PLUS(Var("R19",Imm(64)),Int(48,64)),LittleEndian(),8)))]), -Jmps([Goto(Tid(663, "%00000297"), Attrs([Attr("address","0x6D4"), -Attr("insn","cbnz w0, #0x28")]), - NEQ(Extract(31,0,Var("R0",Imm(64))),Int(0,32)), -Direct(Tid(661, "%00000295"))), Goto(Tid(1_407, "%0000057f"), Attrs([]), - Int(1,1), Direct(Tid(730, "%000002da")))])), Blk(Tid(730, "%000002da"), - Attrs([Attr("address","0x6D8")]), Phis([]), Defs([Def(Tid(733, "%000002dd"), - Attrs([Attr("address","0x6D8"), Attr("insn","adrp x0, #65536")]), - Var("R0",Imm(64)), Int(65536,64)), Def(Tid(740, "%000002e4"), - Attrs([Attr("address","0x6DC"), Attr("insn","ldr x0, [x0, #0xfc8]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(4040,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(746, "%000002ea"), Attrs([Attr("address","0x6E0"), -Attr("insn","cbz x0, #0x10")]), EQ(Var("R0",Imm(64)),Int(0,64)), -Direct(Tid(744, "%000002e8"))), Goto(Tid(1_408, "%00000580"), Attrs([]), - Int(1,1), Direct(Tid(769, "%00000301")))])), Blk(Tid(769, "%00000301"), - Attrs([Attr("address","0x6E4")]), Phis([]), Defs([Def(Tid(772, "%00000304"), - Attrs([Attr("address","0x6E4"), Attr("insn","adrp x0, #69632")]), - Var("R0",Imm(64)), Int(69632,64)), Def(Tid(779, "%0000030b"), - Attrs([Attr("address","0x6E8"), Attr("insn","ldr x0, [x0, #0x28]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(40,64)),LittleEndian(),64)), -Def(Tid(784, "%00000310"), Attrs([Attr("address","0x6EC"), -Attr("insn","bl #-0x11c")]), Var("R30",Imm(64)), Int(1776,64))]), -Jmps([Call(Tid(787, "%00000313"), Attrs([Attr("address","0x6EC"), -Attr("insn","bl #-0x11c")]), Int(1,1), -(Direct(Tid(1_367, "@__cxa_finalize")),Direct(Tid(744, "%000002e8"))))])), -Blk(Tid(744, "%000002e8"), Attrs([Attr("address","0x6F0")]), Phis([]), -Defs([Def(Tid(752, "%000002f0"), Attrs([Attr("address","0x6F0"), -Attr("insn","bl #-0xa0")]), Var("R30",Imm(64)), Int(1780,64))]), -Jmps([Call(Tid(754, "%000002f2"), Attrs([Attr("address","0x6F0"), -Attr("insn","bl #-0xa0")]), Int(1,1), -(Direct(Tid(1_381, "@deregister_tm_clones")),Direct(Tid(756, "%000002f4"))))])), -Blk(Tid(756, "%000002f4"), Attrs([Attr("address","0x6F4")]), Phis([]), -Defs([Def(Tid(759, "%000002f7"), Attrs([Attr("address","0x6F4"), -Attr("insn","mov w0, #0x1")]), Var("R0",Imm(64)), Int(1,64)), -Def(Tid(767, "%000002ff"), Attrs([Attr("address","0x6F8"), -Attr("insn","strb w0, [x19, #0x30]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R19",Imm(64)),Int(48,64)),Extract(7,0,Var("R0",Imm(64))),LittleEndian(),8))]), -Jmps([Goto(Tid(1_409, "%00000581"), Attrs([]), Int(1,1), -Direct(Tid(661, "%00000295")))])), Blk(Tid(661, "%00000295"), - Attrs([Attr("address","0x6FC")]), Phis([]), Defs([Def(Tid(671, "%0000029f"), - Attrs([Attr("address","0x6FC"), Attr("insn","ldr x19, [sp, #0x10]")]), - Var("R19",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(16,64)),LittleEndian(),64)), -Def(Tid(678, "%000002a6"), Attrs([Attr("address","0x700"), -Attr("insn","ldp x29, x30, [sp], #0x20")]), Var("R29",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(683, "%000002ab"), Attrs([Attr("address","0x700"), -Attr("insn","ldp x29, x30, [sp], #0x20")]), Var("R30",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(687, "%000002af"), Attrs([Attr("address","0x700"), -Attr("insn","ldp x29, x30, [sp], #0x20")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(32,64)))]), Jmps([Call(Tid(692, "%000002b4"), - Attrs([Attr("address","0x704"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), Sub(Tid(1_372, "@__libc_start_main"), - Attrs([Attr("c.proto","signed (*)(signed (*)(signed , char** , char** );* main, signed , char** , \nvoid* auxv)"), -Attr("address","0x5C0"), Attr("stub","()")]), "__libc_start_main", - Args([Arg(Tid(1_420, "%0000058c"), - Attrs([Attr("c.layout","**[ : 64]"), -Attr("c.data","Top:u64 ptr ptr"), -Attr("c.type","signed (*)(signed , char** , char** );*")]), - Var("__libc_start_main_main",Imm(64)), Var("R0",Imm(64)), In()), -Arg(Tid(1_421, "%0000058d"), Attrs([Attr("c.layout","[signed : 32]"), -Attr("c.data","Top:u32"), Attr("c.type","signed")]), - Var("__libc_start_main_arg2",Imm(32)), LOW(32,Var("R1",Imm(64))), In()), -Arg(Tid(1_422, "%0000058e"), Attrs([Attr("c.layout","**[char : 8]"), -Attr("c.data","Top:u8 ptr ptr"), Attr("c.type","char**")]), - Var("__libc_start_main_arg3",Imm(64)), Var("R2",Imm(64)), Both()), -Arg(Tid(1_423, "%0000058f"), Attrs([Attr("c.layout","*[ : 8]"), -Attr("c.data","{} ptr"), Attr("c.type","void*")]), - Var("__libc_start_main_auxv",Imm(64)), Var("R3",Imm(64)), Both()), -Arg(Tid(1_424, "%00000590"), Attrs([Attr("c.layout","[signed : 32]"), -Attr("c.data","Top:u32"), Attr("c.type","signed")]), - Var("__libc_start_main_result",Imm(32)), LOW(32,Var("R0",Imm(64))), -Out())]), Blks([Blk(Tid(443, "@__libc_start_main"), - Attrs([Attr("address","0x5C0")]), Phis([]), -Defs([Def(Tid(1_011, "%000003f3"), Attrs([Attr("address","0x5C0"), -Attr("insn","adrp x16, #69632")]), Var("R16",Imm(64)), Int(69632,64)), -Def(Tid(1_018, "%000003fa"), Attrs([Attr("address","0x5C4"), -Attr("insn","ldr x17, [x16]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R16",Imm(64)),LittleEndian(),64)), -Def(Tid(1_024, "%00000400"), Attrs([Attr("address","0x5C8"), -Attr("insn","add x16, x16, #0x0")]), Var("R16",Imm(64)), -Var("R16",Imm(64)))]), Jmps([Call(Tid(1_029, "%00000405"), - Attrs([Attr("address","0x5CC"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), Sub(Tid(1_373, "@_fini"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x728")]), - "_fini", Args([Arg(Tid(1_425, "%00000591"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("_fini_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(31, "@_fini"), - Attrs([Attr("address","0x728")]), Phis([]), Defs([Def(Tid(37, "%00000025"), - Attrs([Attr("address","0x72C"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("#0",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(18446744073709551600,64))), -Def(Tid(43, "%0000002b"), Attrs([Attr("address","0x72C"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("#0",Imm(64)),Var("R29",Imm(64)),LittleEndian(),64)), -Def(Tid(49, "%00000031"), Attrs([Attr("address","0x72C"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("#0",Imm(64)),Int(8,64)),Var("R30",Imm(64)),LittleEndian(),64)), -Def(Tid(53, "%00000035"), Attrs([Attr("address","0x72C"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("R31",Imm(64)), -Var("#0",Imm(64))), Def(Tid(59, "%0000003b"), Attrs([Attr("address","0x730"), -Attr("insn","mov x29, sp")]), Var("R29",Imm(64)), Var("R31",Imm(64))), -Def(Tid(66, "%00000042"), Attrs([Attr("address","0x734"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R29",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(71, "%00000047"), Attrs([Attr("address","0x734"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R30",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(75, "%0000004b"), Attrs([Attr("address","0x734"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(16,64)))]), Jmps([Call(Tid(80, "%00000050"), - Attrs([Attr("address","0x738"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), Sub(Tid(1_374, "@_init"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x580")]), - "_init", Args([Arg(Tid(1_426, "%00000592"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("_init_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(1_204, "@_init"), - Attrs([Attr("address","0x580")]), Phis([]), -Defs([Def(Tid(1_210, "%000004ba"), Attrs([Attr("address","0x584"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("#5",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(18446744073709551600,64))), -Def(Tid(1_216, "%000004c0"), Attrs([Attr("address","0x584"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("#5",Imm(64)),Var("R29",Imm(64)),LittleEndian(),64)), -Def(Tid(1_222, "%000004c6"), Attrs([Attr("address","0x584"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("#5",Imm(64)),Int(8,64)),Var("R30",Imm(64)),LittleEndian(),64)), -Def(Tid(1_226, "%000004ca"), Attrs([Attr("address","0x584"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("R31",Imm(64)), -Var("#5",Imm(64))), Def(Tid(1_232, "%000004d0"), - Attrs([Attr("address","0x588"), Attr("insn","mov x29, sp")]), - Var("R29",Imm(64)), Var("R31",Imm(64))), Def(Tid(1_237, "%000004d5"), - Attrs([Attr("address","0x58C"), Attr("insn","bl #0xa8")]), - Var("R30",Imm(64)), Int(1424,64))]), Jmps([Call(Tid(1_239, "%000004d7"), - Attrs([Attr("address","0x58C"), Attr("insn","bl #0xa8")]), Int(1,1), -(Direct(Tid(1_379, "@call_weak_fn")),Direct(Tid(1_241, "%000004d9"))))])), -Blk(Tid(1_241, "%000004d9"), Attrs([Attr("address","0x590")]), Phis([]), -Defs([Def(Tid(1_246, "%000004de"), Attrs([Attr("address","0x590"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R29",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(1_251, "%000004e3"), Attrs([Attr("address","0x590"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R30",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(1_255, "%000004e7"), Attrs([Attr("address","0x590"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(16,64)))]), Jmps([Call(Tid(1_260, "%000004ec"), - Attrs([Attr("address","0x594"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), Sub(Tid(1_375, "@_start"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x600"), -Attr("stub","()"), Attr("entry-point","()")]), "_start", - Args([Arg(Tid(1_427, "%00000593"), Attrs([Attr("c.layout","[signed : 32]"), -Attr("c.data","Top:u32"), Attr("c.type","signed")]), - Var("_start_result",Imm(32)), LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(380, "@_start"), Attrs([Attr("address","0x600")]), Phis([]), -Defs([Def(Tid(385, "%00000181"), Attrs([Attr("address","0x604"), -Attr("insn","mov x29, #0x0")]), Var("R29",Imm(64)), Int(0,64)), -Def(Tid(390, "%00000186"), Attrs([Attr("address","0x608"), -Attr("insn","mov x30, #0x0")]), Var("R30",Imm(64)), Int(0,64)), -Def(Tid(396, "%0000018c"), Attrs([Attr("address","0x60C"), -Attr("insn","mov x5, x0")]), Var("R5",Imm(64)), Var("R0",Imm(64))), -Def(Tid(403, "%00000193"), Attrs([Attr("address","0x610"), -Attr("insn","ldr x1, [sp]")]), Var("R1",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(409, "%00000199"), Attrs([Attr("address","0x614"), -Attr("insn","add x2, sp, #0x8")]), Var("R2",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(8,64))), Def(Tid(415, "%0000019f"), - Attrs([Attr("address","0x618"), Attr("insn","mov x6, sp")]), - Var("R6",Imm(64)), Var("R31",Imm(64))), Def(Tid(420, "%000001a4"), - Attrs([Attr("address","0x61C"), Attr("insn","adrp x0, #65536")]), - Var("R0",Imm(64)), Int(65536,64)), Def(Tid(427, "%000001ab"), - Attrs([Attr("address","0x620"), Attr("insn","ldr x0, [x0, #0xfd8]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(4056,64)),LittleEndian(),64)), -Def(Tid(432, "%000001b0"), Attrs([Attr("address","0x624"), -Attr("insn","mov x3, #0x0")]), Var("R3",Imm(64)), Int(0,64)), -Def(Tid(437, "%000001b5"), Attrs([Attr("address","0x628"), -Attr("insn","mov x4, #0x0")]), Var("R4",Imm(64)), Int(0,64)), -Def(Tid(442, "%000001ba"), Attrs([Attr("address","0x62C"), -Attr("insn","bl #-0x6c")]), Var("R30",Imm(64)), Int(1584,64))]), -Jmps([Call(Tid(445, "%000001bd"), Attrs([Attr("address","0x62C"), -Attr("insn","bl #-0x6c")]), Int(1,1), -(Direct(Tid(1_372, "@__libc_start_main")),Direct(Tid(447, "%000001bf"))))])), -Blk(Tid(447, "%000001bf"), Attrs([Attr("address","0x630")]), Phis([]), -Defs([Def(Tid(450, "%000001c2"), Attrs([Attr("address","0x630"), -Attr("insn","bl #-0x40")]), Var("R30",Imm(64)), Int(1588,64))]), -Jmps([Call(Tid(453, "%000001c5"), Attrs([Attr("address","0x630"), -Attr("insn","bl #-0x40")]), Int(1,1), -(Direct(Tid(1_378, "@abort")),Direct(Tid(1_410, "%00000582"))))])), -Blk(Tid(1_410, "%00000582"), Attrs([]), Phis([]), Defs([]), -Jmps([Call(Tid(1_411, "%00000583"), Attrs([]), Int(1,1), -(Direct(Tid(1_379, "@call_weak_fn")),))]))])), Sub(Tid(1_378, "@abort"), - Attrs([Attr("noreturn","()"), Attr("c.proto","void (*)(void)"), -Attr("address","0x5F0"), Attr("stub","()")]), "abort", Args([]), -Blks([Blk(Tid(451, "@abort"), Attrs([Attr("address","0x5F0")]), Phis([]), -Defs([Def(Tid(1_077, "%00000435"), Attrs([Attr("address","0x5F0"), -Attr("insn","adrp x16, #69632")]), Var("R16",Imm(64)), Int(69632,64)), -Def(Tid(1_084, "%0000043c"), Attrs([Attr("address","0x5F4"), -Attr("insn","ldr x17, [x16, #0x18]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(24,64)),LittleEndian(),64)), -Def(Tid(1_090, "%00000442"), Attrs([Attr("address","0x5F8"), -Attr("insn","add x16, x16, #0x18")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(24,64)))]), Jmps([Call(Tid(1_095, "%00000447"), - Attrs([Attr("address","0x5FC"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), Sub(Tid(1_379, "@call_weak_fn"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x634")]), - "call_weak_fn", Args([Arg(Tid(1_428, "%00000594"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("call_weak_fn_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(455, "@call_weak_fn"), - Attrs([Attr("address","0x634")]), Phis([]), Defs([Def(Tid(458, "%000001ca"), - Attrs([Attr("address","0x634"), Attr("insn","adrp x0, #65536")]), - Var("R0",Imm(64)), Int(65536,64)), Def(Tid(465, "%000001d1"), - Attrs([Attr("address","0x638"), Attr("insn","ldr x0, [x0, #0xfd0]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(4048,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(471, "%000001d7"), Attrs([Attr("address","0x63C"), -Attr("insn","cbz x0, #0x8")]), EQ(Var("R0",Imm(64)),Int(0,64)), -Direct(Tid(469, "%000001d5"))), Goto(Tid(1_412, "%00000584"), Attrs([]), - Int(1,1), Direct(Tid(849, "%00000351")))])), Blk(Tid(469, "%000001d5"), - Attrs([Attr("address","0x644")]), Phis([]), Defs([]), -Jmps([Call(Tid(477, "%000001dd"), Attrs([Attr("address","0x644"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))])), -Blk(Tid(849, "%00000351"), Attrs([Attr("address","0x640")]), Phis([]), -Defs([]), Jmps([Goto(Tid(852, "%00000354"), Attrs([Attr("address","0x640"), -Attr("insn","b #-0x60")]), Int(1,1), Direct(Tid(850, "@__gmon_start__")))])), -Blk(Tid(850, "@__gmon_start__"), Attrs([Attr("address","0x5E0")]), Phis([]), -Defs([Def(Tid(1_055, "%0000041f"), Attrs([Attr("address","0x5E0"), -Attr("insn","adrp x16, #69632")]), Var("R16",Imm(64)), Int(69632,64)), -Def(Tid(1_062, "%00000426"), Attrs([Attr("address","0x5E4"), -Attr("insn","ldr x17, [x16, #0x10]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(16,64)),LittleEndian(),64)), -Def(Tid(1_068, "%0000042c"), Attrs([Attr("address","0x5E8"), -Attr("insn","add x16, x16, #0x10")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(16,64)))]), Jmps([Call(Tid(1_073, "%00000431"), - Attrs([Attr("address","0x5EC"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), -Sub(Tid(1_381, "@deregister_tm_clones"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x650")]), - "deregister_tm_clones", Args([Arg(Tid(1_429, "%00000595"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("deregister_tm_clones_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(483, "@deregister_tm_clones"), - Attrs([Attr("address","0x650")]), Phis([]), Defs([Def(Tid(486, "%000001e6"), - Attrs([Attr("address","0x650"), Attr("insn","adrp x0, #69632")]), - Var("R0",Imm(64)), Int(69632,64)), Def(Tid(492, "%000001ec"), - Attrs([Attr("address","0x654"), Attr("insn","add x0, x0, #0x30")]), - Var("R0",Imm(64)), PLUS(Var("R0",Imm(64)),Int(48,64))), -Def(Tid(497, "%000001f1"), Attrs([Attr("address","0x658"), -Attr("insn","adrp x1, #69632")]), Var("R1",Imm(64)), Int(69632,64)), -Def(Tid(503, "%000001f7"), Attrs([Attr("address","0x65C"), -Attr("insn","add x1, x1, #0x30")]), Var("R1",Imm(64)), -PLUS(Var("R1",Imm(64)),Int(48,64))), Def(Tid(509, "%000001fd"), - Attrs([Attr("address","0x660"), Attr("insn","cmp x1, x0")]), - Var("#1",Imm(64)), NOT(Var("R0",Imm(64)))), Def(Tid(514, "%00000202"), - Attrs([Attr("address","0x660"), Attr("insn","cmp x1, x0")]), - Var("#2",Imm(64)), PLUS(Var("R1",Imm(64)),NOT(Var("R0",Imm(64))))), -Def(Tid(520, "%00000208"), Attrs([Attr("address","0x660"), -Attr("insn","cmp x1, x0")]), Var("VF",Imm(1)), -NEQ(SIGNED(65,PLUS(Var("#2",Imm(64)),Int(1,64))),PLUS(PLUS(SIGNED(65,Var("R1",Imm(64))),SIGNED(65,Var("#1",Imm(64)))),Int(1,65)))), -Def(Tid(526, "%0000020e"), Attrs([Attr("address","0x660"), -Attr("insn","cmp x1, x0")]), Var("CF",Imm(1)), -NEQ(UNSIGNED(65,PLUS(Var("#2",Imm(64)),Int(1,64))),PLUS(PLUS(UNSIGNED(65,Var("R1",Imm(64))),UNSIGNED(65,Var("#1",Imm(64)))),Int(1,65)))), -Def(Tid(530, "%00000212"), Attrs([Attr("address","0x660"), -Attr("insn","cmp x1, x0")]), Var("ZF",Imm(1)), -EQ(PLUS(Var("#2",Imm(64)),Int(1,64)),Int(0,64))), Def(Tid(534, "%00000216"), - Attrs([Attr("address","0x660"), Attr("insn","cmp x1, x0")]), - Var("NF",Imm(1)), Extract(63,63,PLUS(Var("#2",Imm(64)),Int(1,64))))]), -Jmps([Goto(Tid(540, "%0000021c"), Attrs([Attr("address","0x664"), -Attr("insn","b.eq #0x18")]), EQ(Var("ZF",Imm(1)),Int(1,1)), -Direct(Tid(538, "%0000021a"))), Goto(Tid(1_413, "%00000585"), Attrs([]), - Int(1,1), Direct(Tid(819, "%00000333")))])), Blk(Tid(819, "%00000333"), - Attrs([Attr("address","0x668")]), Phis([]), Defs([Def(Tid(822, "%00000336"), - Attrs([Attr("address","0x668"), Attr("insn","adrp x1, #65536")]), - Var("R1",Imm(64)), Int(65536,64)), Def(Tid(829, "%0000033d"), - Attrs([Attr("address","0x66C"), Attr("insn","ldr x1, [x1, #0xfc0]")]), - Var("R1",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R1",Imm(64)),Int(4032,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(834, "%00000342"), Attrs([Attr("address","0x670"), -Attr("insn","cbz x1, #0xc")]), EQ(Var("R1",Imm(64)),Int(0,64)), -Direct(Tid(538, "%0000021a"))), Goto(Tid(1_414, "%00000586"), Attrs([]), - Int(1,1), Direct(Tid(838, "%00000346")))])), Blk(Tid(538, "%0000021a"), - Attrs([Attr("address","0x67C")]), Phis([]), Defs([]), -Jmps([Call(Tid(546, "%00000222"), Attrs([Attr("address","0x67C"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))])), -Blk(Tid(838, "%00000346"), Attrs([Attr("address","0x674")]), Phis([]), -Defs([Def(Tid(842, "%0000034a"), Attrs([Attr("address","0x674"), -Attr("insn","mov x16, x1")]), Var("R16",Imm(64)), Var("R1",Imm(64)))]), -Jmps([Call(Tid(847, "%0000034f"), Attrs([Attr("address","0x678"), -Attr("insn","br x16")]), Int(1,1), (Indirect(Var("R16",Imm(64))),))]))])), -Sub(Tid(1_384, "@frame_dummy"), Attrs([Attr("c.proto","signed (*)(void)"), -Attr("address","0x710")]), "frame_dummy", Args([Arg(Tid(1_430, "%00000596"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("frame_dummy_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(698, "@frame_dummy"), - Attrs([Attr("address","0x710")]), Phis([]), Defs([]), -Jmps([Call(Tid(700, "%000002bc"), Attrs([Attr("address","0x710"), -Attr("insn","b #-0x90")]), Int(1,1), -(Direct(Tid(1_386, "@register_tm_clones")),))]))])), Sub(Tid(1_385, "@main"), - Attrs([Attr("c.proto","signed (*)(signed argc, const char** argv)"), -Attr("address","0x714")]), "main", Args([Arg(Tid(1_431, "%00000597"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("main_argc",Imm(32)), -LOW(32,Var("R0",Imm(64))), In()), Arg(Tid(1_432, "%00000598"), - Attrs([Attr("c.layout","**[char : 8]"), Attr("c.data","Top:u8 ptr ptr"), -Attr("c.type"," const char**")]), Var("main_argv",Imm(64)), -Var("R1",Imm(64)), Both()), Arg(Tid(1_433, "%00000599"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("main_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(702, "@main"), - Attrs([Attr("address","0x714")]), Phis([]), Defs([Def(Tid(705, "%000002c1"), - Attrs([Attr("address","0x714"), Attr("insn","adrp x9, #69632")]), - Var("R9",Imm(64)), Int(69632,64)), Def(Tid(710, "%000002c6"), - Attrs([Attr("address","0x718"), Attr("insn","mov w8, #0x1")]), - Var("R8",Imm(64)), Int(1,64)), Def(Tid(718, "%000002ce"), - Attrs([Attr("address","0x71C"), Attr("insn","str w8, [x9, #0x34]")]), - Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R9",Imm(64)),Int(52,64)),Extract(31,0,Var("R8",Imm(64))),LittleEndian(),32)), -Def(Tid(723, "%000002d3"), Attrs([Attr("address","0x720"), -Attr("insn","mov w0, wzr")]), Var("R0",Imm(64)), Int(0,64))]), -Jmps([Call(Tid(728, "%000002d8"), Attrs([Attr("address","0x724"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))]))])), -Sub(Tid(1_386, "@register_tm_clones"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x680")]), - "register_tm_clones", Args([Arg(Tid(1_434, "%0000059a"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("register_tm_clones_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(548, "@register_tm_clones"), Attrs([Attr("address","0x680")]), - Phis([]), Defs([Def(Tid(551, "%00000227"), Attrs([Attr("address","0x680"), -Attr("insn","adrp x0, #69632")]), Var("R0",Imm(64)), Int(69632,64)), -Def(Tid(557, "%0000022d"), Attrs([Attr("address","0x684"), -Attr("insn","add x0, x0, #0x30")]), Var("R0",Imm(64)), -PLUS(Var("R0",Imm(64)),Int(48,64))), Def(Tid(562, "%00000232"), - Attrs([Attr("address","0x688"), Attr("insn","adrp x1, #69632")]), - Var("R1",Imm(64)), Int(69632,64)), Def(Tid(568, "%00000238"), - Attrs([Attr("address","0x68C"), Attr("insn","add x1, x1, #0x30")]), - Var("R1",Imm(64)), PLUS(Var("R1",Imm(64)),Int(48,64))), -Def(Tid(575, "%0000023f"), Attrs([Attr("address","0x690"), -Attr("insn","sub x1, x1, x0")]), Var("R1",Imm(64)), -PLUS(PLUS(Var("R1",Imm(64)),NOT(Var("R0",Imm(64)))),Int(1,64))), -Def(Tid(581, "%00000245"), Attrs([Attr("address","0x694"), -Attr("insn","lsr x2, x1, #63")]), Var("R2",Imm(64)), -Concat(Int(0,63),Extract(63,63,Var("R1",Imm(64))))), -Def(Tid(588, "%0000024c"), Attrs([Attr("address","0x698"), -Attr("insn","add x1, x2, x1, asr #3")]), Var("R1",Imm(64)), -PLUS(Var("R2",Imm(64)),ARSHIFT(Var("R1",Imm(64)),Int(3,3)))), -Def(Tid(594, "%00000252"), Attrs([Attr("address","0x69C"), -Attr("insn","asr x1, x1, #1")]), Var("R1",Imm(64)), -SIGNED(64,Extract(63,1,Var("R1",Imm(64)))))]), -Jmps([Goto(Tid(600, "%00000258"), Attrs([Attr("address","0x6A0"), -Attr("insn","cbz x1, #0x18")]), EQ(Var("R1",Imm(64)),Int(0,64)), -Direct(Tid(598, "%00000256"))), Goto(Tid(1_415, "%00000587"), Attrs([]), - Int(1,1), Direct(Tid(789, "%00000315")))])), Blk(Tid(789, "%00000315"), - Attrs([Attr("address","0x6A4")]), Phis([]), Defs([Def(Tid(792, "%00000318"), - Attrs([Attr("address","0x6A4"), Attr("insn","adrp x2, #65536")]), - Var("R2",Imm(64)), Int(65536,64)), Def(Tid(799, "%0000031f"), - Attrs([Attr("address","0x6A8"), Attr("insn","ldr x2, [x2, #0xfe0]")]), - Var("R2",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R2",Imm(64)),Int(4064,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(804, "%00000324"), Attrs([Attr("address","0x6AC"), -Attr("insn","cbz x2, #0xc")]), EQ(Var("R2",Imm(64)),Int(0,64)), -Direct(Tid(598, "%00000256"))), Goto(Tid(1_416, "%00000588"), Attrs([]), - Int(1,1), Direct(Tid(808, "%00000328")))])), Blk(Tid(598, "%00000256"), - Attrs([Attr("address","0x6B8")]), Phis([]), Defs([]), -Jmps([Call(Tid(606, "%0000025e"), Attrs([Attr("address","0x6B8"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))])), -Blk(Tid(808, "%00000328"), Attrs([Attr("address","0x6B0")]), Phis([]), -Defs([Def(Tid(812, "%0000032c"), Attrs([Attr("address","0x6B0"), -Attr("insn","mov x16, x2")]), Var("R16",Imm(64)), Var("R2",Imm(64)))]), -Jmps([Call(Tid(817, "%00000331"), Attrs([Attr("address","0x6B4"), -Attr("insn","br x16")]), Int(1,1), -(Indirect(Var("R16",Imm(64))),))]))]))]))) \ No newline at end of file diff --git a/src/test/correct/no_interference_update_x/clang/no_interference_update_x.bir b/src/test/correct/no_interference_update_x/clang/no_interference_update_x.bir deleted file mode 100644 index 56a1128db..000000000 --- a/src/test/correct/no_interference_update_x/clang/no_interference_update_x.bir +++ /dev/null @@ -1,227 +0,0 @@ -00000589: program -00000557: sub __cxa_finalize(__cxa_finalize_result) -0000058a: __cxa_finalize_result :: out u32 = low:32[R0] - -00000311: -00000409: R16 := 0x11000 -00000410: R17 := mem[R16 + 8, el]:u64 -00000416: R16 := R16 + 8 -0000041b: call R17 with noreturn - -00000558: sub __do_global_dtors_aux(__do_global_dtors_aux_result) -0000058b: __do_global_dtors_aux_result :: out u32 = low:32[R0] - -00000262: -00000266: #3 := R31 - 0x20 -0000026c: mem := mem with [#3, el]:u64 <- R29 -00000272: mem := mem with [#3 + 8, el]:u64 <- R30 -00000276: R31 := #3 -0000027c: R29 := R31 -00000284: mem := mem with [R31 + 0x10, el]:u64 <- R19 -00000289: R19 := 0x11000 -00000290: R0 := pad:64[mem[R19 + 0x30]] -00000297: when 31:0[R0] <> 0 goto %00000295 -0000057f: goto %000002da - -000002da: -000002dd: R0 := 0x10000 -000002e4: R0 := mem[R0 + 0xFC8, el]:u64 -000002ea: when R0 = 0 goto %000002e8 -00000580: goto %00000301 - -00000301: -00000304: R0 := 0x11000 -0000030b: R0 := mem[R0 + 0x28, el]:u64 -00000310: R30 := 0x6F0 -00000313: call @__cxa_finalize with return %000002e8 - -000002e8: -000002f0: R30 := 0x6F4 -000002f2: call @deregister_tm_clones with return %000002f4 - -000002f4: -000002f7: R0 := 1 -000002ff: mem := mem with [R19 + 0x30] <- 7:0[R0] -00000581: goto %00000295 - -00000295: -0000029f: R19 := mem[R31 + 0x10, el]:u64 -000002a6: R29 := mem[R31, el]:u64 -000002ab: R30 := mem[R31 + 8, el]:u64 -000002af: R31 := R31 + 0x20 -000002b4: call R30 with noreturn - -0000055c: sub __libc_start_main(__libc_start_main_main, __libc_start_main_arg2, __libc_start_main_arg3, __libc_start_main_auxv, __libc_start_main_result) -0000058c: __libc_start_main_main :: in u64 = R0 -0000058d: __libc_start_main_arg2 :: in u32 = low:32[R1] -0000058e: __libc_start_main_arg3 :: in out u64 = R2 -0000058f: __libc_start_main_auxv :: in out u64 = R3 -00000590: __libc_start_main_result :: out u32 = low:32[R0] - -000001bb: -000003f3: R16 := 0x11000 -000003fa: R17 := mem[R16, el]:u64 -00000400: R16 := R16 -00000405: call R17 with noreturn - -0000055d: sub _fini(_fini_result) -00000591: _fini_result :: out u32 = low:32[R0] - -0000001f: -00000025: #0 := R31 - 0x10 -0000002b: mem := mem with [#0, el]:u64 <- R29 -00000031: mem := mem with [#0 + 8, el]:u64 <- R30 -00000035: R31 := #0 -0000003b: R29 := R31 -00000042: R29 := mem[R31, el]:u64 -00000047: R30 := mem[R31 + 8, el]:u64 -0000004b: R31 := R31 + 0x10 -00000050: call R30 with noreturn - -0000055e: sub _init(_init_result) -00000592: _init_result :: out u32 = low:32[R0] - -000004b4: -000004ba: #5 := R31 - 0x10 -000004c0: mem := mem with [#5, el]:u64 <- R29 -000004c6: mem := mem with [#5 + 8, el]:u64 <- R30 -000004ca: R31 := #5 -000004d0: R29 := R31 -000004d5: R30 := 0x590 -000004d7: call @call_weak_fn with return %000004d9 - -000004d9: -000004de: R29 := mem[R31, el]:u64 -000004e3: R30 := mem[R31 + 8, el]:u64 -000004e7: R31 := R31 + 0x10 -000004ec: call R30 with noreturn - -0000055f: sub _start(_start_result) -00000593: _start_result :: out u32 = low:32[R0] - -0000017c: -00000181: R29 := 0 -00000186: R30 := 0 -0000018c: R5 := R0 -00000193: R1 := mem[R31, el]:u64 -00000199: R2 := R31 + 8 -0000019f: R6 := R31 -000001a4: R0 := 0x10000 -000001ab: R0 := mem[R0 + 0xFD8, el]:u64 -000001b0: R3 := 0 -000001b5: R4 := 0 -000001ba: R30 := 0x630 -000001bd: call @__libc_start_main with return %000001bf - -000001bf: -000001c2: R30 := 0x634 -000001c5: call @abort with return %00000582 - -00000582: -00000583: call @call_weak_fn with noreturn - -00000562: sub abort() - - -000001c3: -00000435: R16 := 0x11000 -0000043c: R17 := mem[R16 + 0x18, el]:u64 -00000442: R16 := R16 + 0x18 -00000447: call R17 with noreturn - -00000563: sub call_weak_fn(call_weak_fn_result) -00000594: call_weak_fn_result :: out u32 = low:32[R0] - -000001c7: -000001ca: R0 := 0x10000 -000001d1: R0 := mem[R0 + 0xFD0, el]:u64 -000001d7: when R0 = 0 goto %000001d5 -00000584: goto %00000351 - -000001d5: -000001dd: call R30 with noreturn - -00000351: -00000354: goto @__gmon_start__ - -00000352: -0000041f: R16 := 0x11000 -00000426: R17 := mem[R16 + 0x10, el]:u64 -0000042c: R16 := R16 + 0x10 -00000431: call R17 with noreturn - -00000565: sub deregister_tm_clones(deregister_tm_clones_result) -00000595: deregister_tm_clones_result :: out u32 = low:32[R0] - -000001e3: -000001e6: R0 := 0x11000 -000001ec: R0 := R0 + 0x30 -000001f1: R1 := 0x11000 -000001f7: R1 := R1 + 0x30 -000001fd: #1 := ~R0 -00000202: #2 := R1 + ~R0 -00000208: VF := extend:65[#2 + 1] <> extend:65[R1] + extend:65[#1] + 1 -0000020e: CF := pad:65[#2 + 1] <> pad:65[R1] + pad:65[#1] + 1 -00000212: ZF := #2 + 1 = 0 -00000216: NF := 63:63[#2 + 1] -0000021c: when ZF goto %0000021a -00000585: goto %00000333 - -00000333: -00000336: R1 := 0x10000 -0000033d: R1 := mem[R1 + 0xFC0, el]:u64 -00000342: when R1 = 0 goto %0000021a -00000586: goto %00000346 - -0000021a: -00000222: call R30 with noreturn - -00000346: -0000034a: R16 := R1 -0000034f: call R16 with noreturn - -00000568: sub frame_dummy(frame_dummy_result) -00000596: frame_dummy_result :: out u32 = low:32[R0] - -000002ba: -000002bc: call @register_tm_clones with noreturn - -00000569: sub main(main_argc, main_argv, main_result) -00000597: main_argc :: in u32 = low:32[R0] -00000598: main_argv :: in out u64 = R1 -00000599: main_result :: out u32 = low:32[R0] - -000002be: -000002c1: R9 := 0x11000 -000002c6: R8 := 1 -000002ce: mem := mem with [R9 + 0x34, el]:u32 <- 31:0[R8] -000002d3: R0 := 0 -000002d8: call R30 with noreturn - -0000056a: sub register_tm_clones(register_tm_clones_result) -0000059a: register_tm_clones_result :: out u32 = low:32[R0] - -00000224: -00000227: R0 := 0x11000 -0000022d: R0 := R0 + 0x30 -00000232: R1 := 0x11000 -00000238: R1 := R1 + 0x30 -0000023f: R1 := R1 + ~R0 + 1 -00000245: R2 := 0.63:63[R1] -0000024c: R1 := R2 + (R1 ~>> 3) -00000252: R1 := extend:64[63:1[R1]] -00000258: when R1 = 0 goto %00000256 -00000587: goto %00000315 - -00000315: -00000318: R2 := 0x10000 -0000031f: R2 := mem[R2 + 0xFE0, el]:u64 -00000324: when R2 = 0 goto %00000256 -00000588: goto %00000328 - -00000256: -0000025e: call R30 with noreturn - -00000328: -0000032c: R16 := R2 -00000331: call R16 with noreturn diff --git a/src/test/correct/no_interference_update_x/clang/no_interference_update_x.expected b/src/test/correct/no_interference_update_x/clang/no_interference_update_x.expected index 4855acf42..9978fda98 100644 --- a/src/test/correct/no_interference_update_x/clang/no_interference_update_x.expected +++ b/src/test/correct/no_interference_update_x/clang/no_interference_update_x.expected @@ -7,14 +7,18 @@ var {:extern} R8: bv64; var {:extern} R9: bv64; var {:extern} mem: [bv64]bv8; const {:extern} $x_addr: bv64; -axiom ($x_addr == 69684bv64); +axiom ($x_addr == 131092bv64); const {:extern} $y_addr: bv64; -axiom ($y_addr == 69688bv64); +axiom ($y_addr == 131096bv64); function {:extern} L(mem$in: [bv64]bv8, index: bv64) returns (bool) { (if (index == $y_addr) then true else (if (index == $x_addr) then true else false)) } function {:extern} {:bvbuiltin "bvadd"} bvadd64(bv64, bv64) returns (bv64); +function {:extern} gamma_load64(gammaMap: [bv64]bool, index: bv64) returns (bool) { + (gammaMap[bvadd64(index, 7bv64)] && (gammaMap[bvadd64(index, 6bv64)] && (gammaMap[bvadd64(index, 5bv64)] && (gammaMap[bvadd64(index, 4bv64)] && (gammaMap[bvadd64(index, 3bv64)] && (gammaMap[bvadd64(index, 2bv64)] && (gammaMap[bvadd64(index, 1bv64)] && gammaMap[index]))))))) +} + function {:extern} gamma_store32(gammaMap: [bv64]bool, index: bv64, value: bool) returns ([bv64]bool) { gammaMap[index := value][bvadd64(index, 1bv64) := value][bvadd64(index, 2bv64) := value][bvadd64(index, 3bv64) := value] } @@ -35,11 +39,12 @@ procedure {:extern} rely(); modifies Gamma_mem, mem; ensures (forall i: bv64 :: (((mem[i] == old(mem[i])) ==> (Gamma_mem[i] == old(Gamma_mem[i]))))); ensures (memory_load32_le(mem, $x_addr) == old(memory_load32_le(mem, $x_addr))); - free ensures (memory_load32_le(mem, 1852bv64) == 131073bv32); - free ensures (memory_load64_le(mem, 69064bv64) == 1808bv64); - free ensures (memory_load64_le(mem, 69072bv64) == 1728bv64); - free ensures (memory_load64_le(mem, 69592bv64) == 1812bv64); - free ensures (memory_load64_le(mem, 69672bv64) == 69672bv64); + free ensures (memory_load32_le(mem, 2304bv64) == 131073bv32); + free ensures (memory_load64_le(mem, 130432bv64) == 2256bv64); + free ensures (memory_load64_le(mem, 130440bv64) == 2176bv64); + free ensures (memory_load64_le(mem, 131040bv64) == 131092bv64); + free ensures (memory_load64_le(mem, 131056bv64) == 2260bv64); + free ensures (memory_load64_le(mem, 131080bv64) == 131080bv64); procedure {:extern} rely_transitive(); modifies Gamma_mem, mem; @@ -66,39 +71,46 @@ implementation {:extern} guarantee_reflexive() assert (memory_load32_le(mem, $y_addr) == memory_load32_le(mem, $y_addr)); } -procedure main_1812(); +procedure main(); modifies Gamma_R0, Gamma_R8, Gamma_R9, Gamma_mem, R0, R8, R9, mem; - free requires (memory_load64_le(mem, 69664bv64) == 0bv64); - free requires (memory_load64_le(mem, 69672bv64) == 69672bv64); - free requires (memory_load32_le(mem, 1852bv64) == 131073bv32); - free requires (memory_load64_le(mem, 69064bv64) == 1808bv64); - free requires (memory_load64_le(mem, 69072bv64) == 1728bv64); - free requires (memory_load64_le(mem, 69592bv64) == 1812bv64); - free requires (memory_load64_le(mem, 69672bv64) == 69672bv64); + free requires (memory_load64_le(mem, 131072bv64) == 0bv64); + free requires (memory_load64_le(mem, 131080bv64) == 131080bv64); + free requires (memory_load32_le(mem, 2304bv64) == 131073bv32); + free requires (memory_load64_le(mem, 130432bv64) == 2256bv64); + free requires (memory_load64_le(mem, 130440bv64) == 2176bv64); + free requires (memory_load64_le(mem, 131040bv64) == 131092bv64); + free requires (memory_load64_le(mem, 131056bv64) == 2260bv64); + free requires (memory_load64_le(mem, 131080bv64) == 131080bv64); ensures (memory_load32_le(mem, $x_addr) == 1bv32); - free ensures (memory_load32_le(mem, 1852bv64) == 131073bv32); - free ensures (memory_load64_le(mem, 69064bv64) == 1808bv64); - free ensures (memory_load64_le(mem, 69072bv64) == 1728bv64); - free ensures (memory_load64_le(mem, 69592bv64) == 1812bv64); - free ensures (memory_load64_le(mem, 69672bv64) == 69672bv64); + free ensures (memory_load32_le(mem, 2304bv64) == 131073bv32); + free ensures (memory_load64_le(mem, 130432bv64) == 2256bv64); + free ensures (memory_load64_le(mem, 130440bv64) == 2176bv64); + free ensures (memory_load64_le(mem, 131040bv64) == 131092bv64); + free ensures (memory_load64_le(mem, 131056bv64) == 2260bv64); + free ensures (memory_load64_le(mem, 131080bv64) == 131080bv64); -implementation main_1812() +implementation main() { + var $load$18: bv64; + var Gamma_$load$18: bool; var y_old: bv32; lmain: assume {:captureState "lmain"} true; - R9, Gamma_R9 := 69632bv64, true; - R8, Gamma_R8 := 1bv64, true; + R8, Gamma_R8 := 126976bv64, true; + R9, Gamma_R9 := 1bv64, true; + R0, Gamma_R0 := 0bv64, true; call rely(); + $load$18, Gamma_$load$18 := memory_load64_le(mem, bvadd64(R8, 4064bv64)), (gamma_load64(Gamma_mem, bvadd64(R8, 4064bv64)) || L(mem, bvadd64(R8, 4064bv64))); + R8, Gamma_R8 := $load$18, Gamma_$load$18; + call rely(); + assert (L(mem, R8) ==> Gamma_R9); y_old := memory_load32_le(mem, $y_addr); - assert (L(mem, bvadd64(R9, 52bv64)) ==> Gamma_R8); - mem, Gamma_mem := memory_store32_le(mem, bvadd64(R9, 52bv64), R8[32:0]), gamma_store32(Gamma_mem, bvadd64(R9, 52bv64), Gamma_R8); + mem, Gamma_mem := memory_store32_le(mem, R8, R9[32:0]), gamma_store32(Gamma_mem, R8, Gamma_R9); assert (memory_load32_le(mem, $y_addr) == y_old); - assume {:captureState "%000002ce"} true; - R0, Gamma_R0 := 0bv64, true; - goto main_1812_basil_return; - main_1812_basil_return: - assume {:captureState "main_1812_basil_return"} true; + assume {:captureState "%0000028c"} true; + goto main_basil_return; + main_basil_return: + assume {:captureState "main_basil_return"} true; return; } diff --git a/src/test/correct/no_interference_update_x/clang/no_interference_update_x.gts b/src/test/correct/no_interference_update_x/clang/no_interference_update_x.gts deleted file mode 100644 index 0ab727d7f..000000000 Binary files a/src/test/correct/no_interference_update_x/clang/no_interference_update_x.gts and /dev/null differ diff --git a/src/test/correct/no_interference_update_x/clang/no_interference_update_x.md5sum b/src/test/correct/no_interference_update_x/clang/no_interference_update_x.md5sum new file mode 100644 index 000000000..0a4b5e5fd --- /dev/null +++ b/src/test/correct/no_interference_update_x/clang/no_interference_update_x.md5sum @@ -0,0 +1,5 @@ +1678c19459f78f1f412eebbc82a18909 correct/no_interference_update_x/clang/a.out +ffecbd8fc23689dbcdee8510297e7fc9 correct/no_interference_update_x/clang/no_interference_update_x.adt +abf21c2d30e976783d9a3a2c745722d0 correct/no_interference_update_x/clang/no_interference_update_x.bir +751de96c2bb2581ceaa8672a6565aa28 correct/no_interference_update_x/clang/no_interference_update_x.relf +26f79c9e8076ae32559cc0437d9ea6ec correct/no_interference_update_x/clang/no_interference_update_x.gts diff --git a/src/test/correct/no_interference_update_x/clang/no_interference_update_x.relf b/src/test/correct/no_interference_update_x/clang/no_interference_update_x.relf deleted file mode 100644 index 37c146fd6..000000000 --- a/src/test/correct/no_interference_update_x/clang/no_interference_update_x.relf +++ /dev/null @@ -1,124 +0,0 @@ - -Relocation section '.rela.dyn' at offset 0x460 contains 8 entries: - Offset Info Type Symbol's Value Symbol's Name + Addend -0000000000010dc8 0000000000000403 R_AARCH64_RELATIVE 710 -0000000000010dd0 0000000000000403 R_AARCH64_RELATIVE 6c0 -0000000000010fd8 0000000000000403 R_AARCH64_RELATIVE 714 -0000000000011028 0000000000000403 R_AARCH64_RELATIVE 11028 -0000000000010fc0 0000000400000401 R_AARCH64_GLOB_DAT 0000000000000000 _ITM_deregisterTMCloneTable + 0 -0000000000010fc8 0000000500000401 R_AARCH64_GLOB_DAT 0000000000000000 __cxa_finalize@GLIBC_2.17 + 0 -0000000000010fd0 0000000600000401 R_AARCH64_GLOB_DAT 0000000000000000 __gmon_start__ + 0 -0000000000010fe0 0000000800000401 R_AARCH64_GLOB_DAT 0000000000000000 _ITM_registerTMCloneTable + 0 - -Relocation section '.rela.plt' at offset 0x520 contains 4 entries: - Offset Info Type Symbol's Value Symbol's Name + Addend -0000000000011000 0000000300000402 R_AARCH64_JUMP_SLOT 0000000000000000 __libc_start_main@GLIBC_2.34 + 0 -0000000000011008 0000000500000402 R_AARCH64_JUMP_SLOT 0000000000000000 __cxa_finalize@GLIBC_2.17 + 0 -0000000000011010 0000000600000402 R_AARCH64_JUMP_SLOT 0000000000000000 __gmon_start__ + 0 -0000000000011018 0000000700000402 R_AARCH64_JUMP_SLOT 0000000000000000 abort@GLIBC_2.17 + 0 - -Symbol table '.dynsym' contains 9 entries: - Num: Value Size Type Bind Vis Ndx Name - 0: 0000000000000000 0 NOTYPE LOCAL DEFAULT UND - 1: 0000000000000580 0 SECTION LOCAL DEFAULT 11 .init - 2: 0000000000011020 0 SECTION LOCAL DEFAULT 23 .data - 3: 0000000000000000 0 FUNC GLOBAL DEFAULT UND __libc_start_main@GLIBC_2.34 (2) - 4: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_deregisterTMCloneTable - 5: 0000000000000000 0 FUNC WEAK DEFAULT UND __cxa_finalize@GLIBC_2.17 (3) - 6: 0000000000000000 0 NOTYPE WEAK DEFAULT UND __gmon_start__ - 7: 0000000000000000 0 FUNC GLOBAL DEFAULT UND abort@GLIBC_2.17 (3) - 8: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_registerTMCloneTable - -Symbol table '.symtab' contains 91 entries: - Num: Value Size Type Bind Vis Ndx Name - 0: 0000000000000000 0 NOTYPE LOCAL DEFAULT UND - 1: 0000000000000238 0 SECTION LOCAL DEFAULT 1 .interp - 2: 0000000000000254 0 SECTION LOCAL DEFAULT 2 .note.gnu.build-id - 3: 0000000000000278 0 SECTION LOCAL DEFAULT 3 .note.ABI-tag - 4: 0000000000000298 0 SECTION LOCAL DEFAULT 4 .gnu.hash - 5: 00000000000002b8 0 SECTION LOCAL DEFAULT 5 .dynsym - 6: 0000000000000390 0 SECTION LOCAL DEFAULT 6 .dynstr - 7: 000000000000041e 0 SECTION LOCAL DEFAULT 7 .gnu.version - 8: 0000000000000430 0 SECTION LOCAL DEFAULT 8 .gnu.version_r - 9: 0000000000000460 0 SECTION LOCAL DEFAULT 9 .rela.dyn - 10: 0000000000000520 0 SECTION LOCAL DEFAULT 10 .rela.plt - 11: 0000000000000580 0 SECTION LOCAL DEFAULT 11 .init - 12: 00000000000005a0 0 SECTION LOCAL DEFAULT 12 .plt - 13: 0000000000000600 0 SECTION LOCAL DEFAULT 13 .text - 14: 0000000000000728 0 SECTION LOCAL DEFAULT 14 .fini - 15: 000000000000073c 0 SECTION LOCAL DEFAULT 15 .rodata - 16: 0000000000000740 0 SECTION LOCAL DEFAULT 16 .eh_frame_hdr - 17: 0000000000000780 0 SECTION LOCAL DEFAULT 17 .eh_frame - 18: 0000000000010dc8 0 SECTION LOCAL DEFAULT 18 .init_array - 19: 0000000000010dd0 0 SECTION LOCAL DEFAULT 19 .fini_array - 20: 0000000000010dd8 0 SECTION LOCAL DEFAULT 20 .dynamic - 21: 0000000000010fb8 0 SECTION LOCAL DEFAULT 21 .got - 22: 0000000000010fe8 0 SECTION LOCAL DEFAULT 22 .got.plt - 23: 0000000000011020 0 SECTION LOCAL DEFAULT 23 .data - 24: 0000000000011030 0 SECTION LOCAL DEFAULT 24 .bss - 25: 0000000000000000 0 SECTION LOCAL DEFAULT 25 .comment - 26: 0000000000000000 0 FILE LOCAL DEFAULT ABS Scrt1.o - 27: 0000000000000278 0 NOTYPE LOCAL DEFAULT 3 $d - 28: 0000000000000278 32 OBJECT LOCAL DEFAULT 3 __abi_tag - 29: 0000000000000600 0 NOTYPE LOCAL DEFAULT 13 $x - 30: 0000000000000794 0 NOTYPE LOCAL DEFAULT 17 $d - 31: 000000000000073c 0 NOTYPE LOCAL DEFAULT 15 $d - 32: 0000000000000000 0 FILE LOCAL DEFAULT ABS crti.o - 33: 0000000000000634 0 NOTYPE LOCAL DEFAULT 13 $x - 34: 0000000000000634 20 FUNC LOCAL DEFAULT 13 call_weak_fn - 35: 0000000000000580 0 NOTYPE LOCAL DEFAULT 11 $x - 36: 0000000000000728 0 NOTYPE LOCAL DEFAULT 14 $x - 37: 0000000000000000 0 FILE LOCAL DEFAULT ABS crtn.o - 38: 0000000000000590 0 NOTYPE LOCAL DEFAULT 11 $x - 39: 0000000000000734 0 NOTYPE LOCAL DEFAULT 14 $x - 40: 0000000000000000 0 FILE LOCAL DEFAULT ABS crtstuff.c - 41: 0000000000000650 0 NOTYPE LOCAL DEFAULT 13 $x - 42: 0000000000000650 0 FUNC LOCAL DEFAULT 13 deregister_tm_clones - 43: 0000000000000680 0 FUNC LOCAL DEFAULT 13 register_tm_clones - 44: 0000000000011028 0 NOTYPE LOCAL DEFAULT 23 $d - 45: 00000000000006c0 0 FUNC LOCAL DEFAULT 13 __do_global_dtors_aux - 46: 0000000000011030 1 OBJECT LOCAL DEFAULT 24 completed.0 - 47: 0000000000010dd0 0 NOTYPE LOCAL DEFAULT 19 $d - 48: 0000000000010dd0 0 OBJECT LOCAL DEFAULT 19 __do_global_dtors_aux_fini_array_entry - 49: 0000000000000710 0 FUNC LOCAL DEFAULT 13 frame_dummy - 50: 0000000000010dc8 0 NOTYPE LOCAL DEFAULT 18 $d - 51: 0000000000010dc8 0 OBJECT LOCAL DEFAULT 18 __frame_dummy_init_array_entry - 52: 00000000000007a8 0 NOTYPE LOCAL DEFAULT 17 $d - 53: 0000000000011030 0 NOTYPE LOCAL DEFAULT 24 $d - 54: 0000000000000000 0 FILE LOCAL DEFAULT ABS no_interference_update_x.c - 55: 0000000000000714 0 NOTYPE LOCAL DEFAULT 13 $x.0 - 56: 0000000000011034 0 NOTYPE LOCAL DEFAULT 24 $d.1 - 57: 000000000000002a 0 NOTYPE LOCAL DEFAULT 25 $d.2 - 58: 0000000000000808 0 NOTYPE LOCAL DEFAULT 17 $d.3 - 59: 0000000000000000 0 FILE LOCAL DEFAULT ABS crtstuff.c - 60: 0000000000000830 0 NOTYPE LOCAL DEFAULT 17 $d - 61: 0000000000000830 0 OBJECT LOCAL DEFAULT 17 __FRAME_END__ - 62: 0000000000000000 0 FILE LOCAL DEFAULT ABS - 63: 0000000000010dd8 0 OBJECT LOCAL DEFAULT ABS _DYNAMIC - 64: 0000000000000740 0 NOTYPE LOCAL DEFAULT 16 __GNU_EH_FRAME_HDR - 65: 0000000000010fb8 0 OBJECT LOCAL DEFAULT ABS _GLOBAL_OFFSET_TABLE_ - 66: 00000000000005a0 0 NOTYPE LOCAL DEFAULT 12 $x - 67: 0000000000000000 0 FUNC GLOBAL DEFAULT UND __libc_start_main@GLIBC_2.34 - 68: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_deregisterTMCloneTable - 69: 0000000000011020 0 NOTYPE WEAK DEFAULT 23 data_start - 70: 0000000000011030 0 NOTYPE GLOBAL DEFAULT 24 __bss_start__ - 71: 0000000000000000 0 FUNC WEAK DEFAULT UND __cxa_finalize@GLIBC_2.17 - 72: 0000000000011040 0 NOTYPE GLOBAL DEFAULT 24 _bss_end__ - 73: 0000000000011030 0 NOTYPE GLOBAL DEFAULT 23 _edata - 74: 0000000000011034 4 OBJECT GLOBAL DEFAULT 24 x - 75: 0000000000000728 0 FUNC GLOBAL HIDDEN 14 _fini - 76: 0000000000011040 0 NOTYPE GLOBAL DEFAULT 24 __bss_end__ - 77: 0000000000011020 0 NOTYPE GLOBAL DEFAULT 23 __data_start - 78: 0000000000000000 0 NOTYPE WEAK DEFAULT UND __gmon_start__ - 79: 0000000000011028 0 OBJECT GLOBAL HIDDEN 23 __dso_handle - 80: 0000000000000000 0 FUNC GLOBAL DEFAULT UND abort@GLIBC_2.17 - 81: 000000000000073c 4 OBJECT GLOBAL DEFAULT 15 _IO_stdin_used - 82: 0000000000011040 0 NOTYPE GLOBAL DEFAULT 24 _end - 83: 0000000000000600 52 FUNC GLOBAL DEFAULT 13 _start - 84: 0000000000011040 0 NOTYPE GLOBAL DEFAULT 24 __end__ - 85: 0000000000011038 4 OBJECT GLOBAL DEFAULT 24 y - 86: 0000000000011030 0 NOTYPE GLOBAL DEFAULT 24 __bss_start - 87: 0000000000000714 20 FUNC GLOBAL DEFAULT 13 main - 88: 0000000000011030 0 OBJECT GLOBAL HIDDEN 23 __TMC_END__ - 89: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_registerTMCloneTable - 90: 0000000000000580 0 FUNC GLOBAL HIDDEN 11 _init diff --git a/src/test/correct/no_interference_update_x/clang/no_interference_update_x_gtirb.expected b/src/test/correct/no_interference_update_x/clang/no_interference_update_x_gtirb.expected index 357e49f39..5a1e4de21 100644 --- a/src/test/correct/no_interference_update_x/clang/no_interference_update_x_gtirb.expected +++ b/src/test/correct/no_interference_update_x/clang/no_interference_update_x_gtirb.expected @@ -7,14 +7,18 @@ var {:extern} R8: bv64; var {:extern} R9: bv64; var {:extern} mem: [bv64]bv8; const {:extern} $x_addr: bv64; -axiom ($x_addr == 69684bv64); +axiom ($x_addr == 131092bv64); const {:extern} $y_addr: bv64; -axiom ($y_addr == 69688bv64); +axiom ($y_addr == 131096bv64); function {:extern} L(mem$in: [bv64]bv8, index: bv64) returns (bool) { (if (index == $y_addr) then true else (if (index == $x_addr) then true else false)) } function {:extern} {:bvbuiltin "bvadd"} bvadd64(bv64, bv64) returns (bv64); +function {:extern} gamma_load64(gammaMap: [bv64]bool, index: bv64) returns (bool) { + (gammaMap[bvadd64(index, 7bv64)] && (gammaMap[bvadd64(index, 6bv64)] && (gammaMap[bvadd64(index, 5bv64)] && (gammaMap[bvadd64(index, 4bv64)] && (gammaMap[bvadd64(index, 3bv64)] && (gammaMap[bvadd64(index, 2bv64)] && (gammaMap[bvadd64(index, 1bv64)] && gammaMap[index]))))))) +} + function {:extern} gamma_store32(gammaMap: [bv64]bool, index: bv64, value: bool) returns ([bv64]bool) { gammaMap[index := value][bvadd64(index, 1bv64) := value][bvadd64(index, 2bv64) := value][bvadd64(index, 3bv64) := value] } @@ -35,11 +39,12 @@ procedure {:extern} rely(); modifies Gamma_mem, mem; ensures (forall i: bv64 :: (((mem[i] == old(mem[i])) ==> (Gamma_mem[i] == old(Gamma_mem[i]))))); ensures (memory_load32_le(mem, $x_addr) == old(memory_load32_le(mem, $x_addr))); - free ensures (memory_load32_le(mem, 1852bv64) == 131073bv32); - free ensures (memory_load64_le(mem, 69064bv64) == 1808bv64); - free ensures (memory_load64_le(mem, 69072bv64) == 1728bv64); - free ensures (memory_load64_le(mem, 69592bv64) == 1812bv64); - free ensures (memory_load64_le(mem, 69672bv64) == 69672bv64); + free ensures (memory_load32_le(mem, 2304bv64) == 131073bv32); + free ensures (memory_load64_le(mem, 130432bv64) == 2256bv64); + free ensures (memory_load64_le(mem, 130440bv64) == 2176bv64); + free ensures (memory_load64_le(mem, 131040bv64) == 131092bv64); + free ensures (memory_load64_le(mem, 131056bv64) == 2260bv64); + free ensures (memory_load64_le(mem, 131080bv64) == 131080bv64); procedure {:extern} rely_transitive(); modifies Gamma_mem, mem; @@ -66,39 +71,46 @@ implementation {:extern} guarantee_reflexive() assert (memory_load32_le(mem, $y_addr) == memory_load32_le(mem, $y_addr)); } -procedure main_1812(); +procedure main(); modifies Gamma_R0, Gamma_R8, Gamma_R9, Gamma_mem, R0, R8, R9, mem; - free requires (memory_load64_le(mem, 69664bv64) == 0bv64); - free requires (memory_load64_le(mem, 69672bv64) == 69672bv64); - free requires (memory_load32_le(mem, 1852bv64) == 131073bv32); - free requires (memory_load64_le(mem, 69064bv64) == 1808bv64); - free requires (memory_load64_le(mem, 69072bv64) == 1728bv64); - free requires (memory_load64_le(mem, 69592bv64) == 1812bv64); - free requires (memory_load64_le(mem, 69672bv64) == 69672bv64); + free requires (memory_load64_le(mem, 131072bv64) == 0bv64); + free requires (memory_load64_le(mem, 131080bv64) == 131080bv64); + free requires (memory_load32_le(mem, 2304bv64) == 131073bv32); + free requires (memory_load64_le(mem, 130432bv64) == 2256bv64); + free requires (memory_load64_le(mem, 130440bv64) == 2176bv64); + free requires (memory_load64_le(mem, 131040bv64) == 131092bv64); + free requires (memory_load64_le(mem, 131056bv64) == 2260bv64); + free requires (memory_load64_le(mem, 131080bv64) == 131080bv64); ensures (memory_load32_le(mem, $x_addr) == 1bv32); - free ensures (memory_load32_le(mem, 1852bv64) == 131073bv32); - free ensures (memory_load64_le(mem, 69064bv64) == 1808bv64); - free ensures (memory_load64_le(mem, 69072bv64) == 1728bv64); - free ensures (memory_load64_le(mem, 69592bv64) == 1812bv64); - free ensures (memory_load64_le(mem, 69672bv64) == 69672bv64); + free ensures (memory_load32_le(mem, 2304bv64) == 131073bv32); + free ensures (memory_load64_le(mem, 130432bv64) == 2256bv64); + free ensures (memory_load64_le(mem, 130440bv64) == 2176bv64); + free ensures (memory_load64_le(mem, 131040bv64) == 131092bv64); + free ensures (memory_load64_le(mem, 131056bv64) == 2260bv64); + free ensures (memory_load64_le(mem, 131080bv64) == 131080bv64); -implementation main_1812() +implementation main() { + var $load19: bv64; + var Gamma_$load19: bool; var y_old: bv32; - main_1812__0__QAlkNCjET2GXdH1~AtPR1g: - assume {:captureState "main_1812__0__QAlkNCjET2GXdH1~AtPR1g"} true; - R9, Gamma_R9 := 69632bv64, true; - R8, Gamma_R8 := 1bv64, true; + $main$__0__$IkNYmV06TxC75h8A4NM3wA: + assume {:captureState "$main$__0__$IkNYmV06TxC75h8A4NM3wA"} true; + R8, Gamma_R8 := 126976bv64, true; + R9, Gamma_R9 := 1bv64, true; + R0, Gamma_R0 := 0bv64, true; call rely(); + $load19, Gamma_$load19 := memory_load64_le(mem, bvadd64(R8, 4064bv64)), (gamma_load64(Gamma_mem, bvadd64(R8, 4064bv64)) || L(mem, bvadd64(R8, 4064bv64))); + R8, Gamma_R8 := $load19, Gamma_$load19; + call rely(); + assert (L(mem, R8) ==> Gamma_R9); y_old := memory_load32_le(mem, $y_addr); - assert (L(mem, bvadd64(R9, 52bv64)) ==> Gamma_R8); - mem, Gamma_mem := memory_store32_le(mem, bvadd64(R9, 52bv64), R8[32:0]), gamma_store32(Gamma_mem, bvadd64(R9, 52bv64), Gamma_R8); + mem, Gamma_mem := memory_store32_le(mem, R8, R9[32:0]), gamma_store32(Gamma_mem, R8, Gamma_R9); assert (memory_load32_le(mem, $y_addr) == y_old); - assume {:captureState "1820_0"} true; - R0, Gamma_R0 := 0bv64, true; - goto main_1812_basil_return; - main_1812_basil_return: - assume {:captureState "main_1812_basil_return"} true; + assume {:captureState "2276$0"} true; + goto main_basil_return; + main_basil_return: + assume {:captureState "main_basil_return"} true; return; } diff --git a/src/test/correct/no_interference_update_x/clang_pic/no_interference_update_x.adt b/src/test/correct/no_interference_update_x/clang_pic/no_interference_update_x.adt deleted file mode 100644 index 1f8098970..000000000 --- a/src/test/correct/no_interference_update_x/clang_pic/no_interference_update_x.adt +++ /dev/null @@ -1,495 +0,0 @@ -Project(Attrs([Attr("filename","\"clang_pic/no_interference_update_x.out\""), -Attr("image-specification","(declare abi (name str))\n(declare arch (name str))\n(declare base-address (addr int))\n(declare bias (off int))\n(declare bits (size int))\n(declare code-region (addr int) (size int) (off int))\n(declare code-start (addr int))\n(declare entry-point (addr int))\n(declare external-reference (addr int) (name str))\n(declare format (name str))\n(declare is-executable (flag bool))\n(declare is-little-endian (flag bool))\n(declare llvm:base-address (addr int))\n(declare llvm:code-entry (name str) (off int) (size int))\n(declare llvm:coff-import-library (name str))\n(declare llvm:coff-virtual-section-header (name str) (addr int) (size int))\n(declare llvm:elf-program-header (name str) (off int) (size int))\n(declare llvm:elf-program-header-flags (name str) (ld bool) (r bool) \n (w bool) (x bool))\n(declare llvm:elf-virtual-program-header (name str) (addr int) (size int))\n(declare llvm:entry-point (addr int))\n(declare llvm:macho-symbol (name str) (value int))\n(declare llvm:name-reference (at int) (name str))\n(declare llvm:relocation (at int) (addr int))\n(declare llvm:section-entry (name str) (addr int) (size int) (off int))\n(declare llvm:section-flags (name str) (r bool) (w bool) (x bool))\n(declare llvm:segment-command (name str) (off int) (size int))\n(declare llvm:segment-command-flags (name str) (r bool) (w bool) (x bool))\n(declare llvm:symbol-entry (name str) (addr int) (size int) (off int)\n (value int))\n(declare llvm:virtual-segment-command (name str) (addr int) (size int))\n(declare mapped (addr int) (size int) (off int))\n(declare named-region (addr int) (size int) (name str))\n(declare named-symbol (addr int) (name str))\n(declare require (name str))\n(declare section (addr int) (size int))\n(declare segment (addr int) (size int) (r bool) (w bool) (x bool))\n(declare subarch (name str))\n(declare symbol-chunk (addr int) (size int) (root int))\n(declare symbol-value (addr int) (value int))\n(declare system (name str))\n(declare vendor (name str))\n\n(abi unknown)\n(arch aarch64)\n(base-address 0)\n(bias 0)\n(bits 64)\n(code-region 1900 20 1900)\n(code-region 1600 300 1600)\n(code-region 1456 96 1456)\n(code-region 1432 24 1432)\n(code-start 1652)\n(code-start 1600)\n(code-start 1876)\n(entry-point 1600)\n(external-reference 69560 _ITM_deregisterTMCloneTable)\n(external-reference 69568 __cxa_finalize)\n(external-reference 69584 __gmon_start__)\n(external-reference 69600 _ITM_registerTMCloneTable)\n(external-reference 69632 __libc_start_main)\n(external-reference 69640 __cxa_finalize)\n(external-reference 69648 __gmon_start__)\n(external-reference 69656 abort)\n(format elf)\n(is-executable true)\n(is-little-endian true)\n(llvm:base-address 0)\n(llvm:code-entry abort 0 0)\n(llvm:code-entry __cxa_finalize 0 0)\n(llvm:code-entry __libc_start_main 0 0)\n(llvm:code-entry _init 1432 0)\n(llvm:code-entry main 1876 24)\n(llvm:code-entry _start 1600 52)\n(llvm:code-entry abort@GLIBC_2.17 0 0)\n(llvm:code-entry _fini 1900 0)\n(llvm:code-entry __cxa_finalize@GLIBC_2.17 0 0)\n(llvm:code-entry __libc_start_main@GLIBC_2.34 0 0)\n(llvm:code-entry frame_dummy 1872 0)\n(llvm:code-entry __do_global_dtors_aux 1792 0)\n(llvm:code-entry register_tm_clones 1728 0)\n(llvm:code-entry deregister_tm_clones 1680 0)\n(llvm:code-entry call_weak_fn 1652 20)\n(llvm:code-entry .fini 1900 20)\n(llvm:code-entry .text 1600 300)\n(llvm:code-entry .plt 1456 96)\n(llvm:code-entry .init 1432 24)\n(llvm:elf-program-header 08 3520 576)\n(llvm:elf-program-header 07 0 0)\n(llvm:elf-program-header 06 1924 60)\n(llvm:elf-program-header 05 596 68)\n(llvm:elf-program-header 04 3536 480)\n(llvm:elf-program-header 03 3520 624)\n(llvm:elf-program-header 02 0 2164)\n(llvm:elf-program-header 01 568 27)\n(llvm:elf-program-header 00 64 504)\n(llvm:elf-program-header-flags 08 false true false false)\n(llvm:elf-program-header-flags 07 false true true false)\n(llvm:elf-program-header-flags 06 false true false false)\n(llvm:elf-program-header-flags 05 false true false false)\n(llvm:elf-program-header-flags 04 false true true false)\n(llvm:elf-program-header-flags 03 true true true false)\n(llvm:elf-program-header-flags 02 true true false true)\n(llvm:elf-program-header-flags 01 false true false false)\n(llvm:elf-program-header-flags 00 false true false false)\n(llvm:elf-virtual-program-header 08 69056 576)\n(llvm:elf-virtual-program-header 07 0 0)\n(llvm:elf-virtual-program-header 06 1924 60)\n(llvm:elf-virtual-program-header 05 596 68)\n(llvm:elf-virtual-program-header 04 69072 480)\n(llvm:elf-virtual-program-header 03 69056 640)\n(llvm:elf-virtual-program-header 02 0 2164)\n(llvm:elf-virtual-program-header 01 568 27)\n(llvm:elf-virtual-program-header 00 64 504)\n(llvm:entry-point 1600)\n(llvm:name-reference 69656 abort)\n(llvm:name-reference 69648 __gmon_start__)\n(llvm:name-reference 69640 __cxa_finalize)\n(llvm:name-reference 69632 __libc_start_main)\n(llvm:name-reference 69600 _ITM_registerTMCloneTable)\n(llvm:name-reference 69584 __gmon_start__)\n(llvm:name-reference 69568 __cxa_finalize)\n(llvm:name-reference 69560 _ITM_deregisterTMCloneTable)\n(llvm:section-entry .shstrtab 0 259 6980)\n(llvm:section-entry .strtab 0 580 6400)\n(llvm:section-entry .symtab 0 2184 4216)\n(llvm:section-entry .comment 0 71 4144)\n(llvm:section-entry .bss 69680 16 4144)\n(llvm:section-entry .data 69664 16 4128)\n(llvm:section-entry .got.plt 69608 56 4072)\n(llvm:section-entry .got 69552 56 4016)\n(llvm:section-entry .dynamic 69072 480 3536)\n(llvm:section-entry .fini_array 69064 8 3528)\n(llvm:section-entry .init_array 69056 8 3520)\n(llvm:section-entry .eh_frame 1984 180 1984)\n(llvm:section-entry .eh_frame_hdr 1924 60 1924)\n(llvm:section-entry .rodata 1920 4 1920)\n(llvm:section-entry .fini 1900 20 1900)\n(llvm:section-entry .text 1600 300 1600)\n(llvm:section-entry .plt 1456 96 1456)\n(llvm:section-entry .init 1432 24 1432)\n(llvm:section-entry .rela.plt 1336 96 1336)\n(llvm:section-entry .rela.dyn 1120 216 1120)\n(llvm:section-entry .gnu.version_r 1072 48 1072)\n(llvm:section-entry .gnu.version 1054 18 1054)\n(llvm:section-entry .dynstr 912 141 912)\n(llvm:section-entry .dynsym 696 216 696)\n(llvm:section-entry .gnu.hash 664 28 664)\n(llvm:section-entry .note.ABI-tag 632 32 632)\n(llvm:section-entry .note.gnu.build-id 596 36 596)\n(llvm:section-entry .interp 568 27 568)\n(llvm:section-flags .shstrtab true false false)\n(llvm:section-flags .strtab true false false)\n(llvm:section-flags .symtab true false false)\n(llvm:section-flags .comment true false false)\n(llvm:section-flags .bss true true false)\n(llvm:section-flags .data true true false)\n(llvm:section-flags .got.plt true true false)\n(llvm:section-flags .got true true false)\n(llvm:section-flags .dynamic true true false)\n(llvm:section-flags .fini_array true true false)\n(llvm:section-flags .init_array true true false)\n(llvm:section-flags .eh_frame true false false)\n(llvm:section-flags .eh_frame_hdr true false false)\n(llvm:section-flags .rodata true false false)\n(llvm:section-flags .fini true false true)\n(llvm:section-flags .text true false true)\n(llvm:section-flags .plt true false true)\n(llvm:section-flags .init true false true)\n(llvm:section-flags .rela.plt true false false)\n(llvm:section-flags .rela.dyn true false false)\n(llvm:section-flags .gnu.version_r true false false)\n(llvm:section-flags .gnu.version true false false)\n(llvm:section-flags .dynstr true false false)\n(llvm:section-flags .dynsym true false false)\n(llvm:section-flags .gnu.hash true false false)\n(llvm:section-flags .note.ABI-tag true false false)\n(llvm:section-flags .note.gnu.build-id true false false)\n(llvm:section-flags .interp true false false)\n(llvm:symbol-entry abort 0 0 0 0)\n(llvm:symbol-entry __cxa_finalize 0 0 0 0)\n(llvm:symbol-entry __libc_start_main 0 0 0 0)\n(llvm:symbol-entry _init 1432 0 1432 1432)\n(llvm:symbol-entry main 1876 24 1876 1876)\n(llvm:symbol-entry _start 1600 52 1600 1600)\n(llvm:symbol-entry abort@GLIBC_2.17 0 0 0 0)\n(llvm:symbol-entry _fini 1900 0 1900 1900)\n(llvm:symbol-entry __cxa_finalize@GLIBC_2.17 0 0 0 0)\n(llvm:symbol-entry __libc_start_main@GLIBC_2.34 0 0 0 0)\n(llvm:symbol-entry frame_dummy 1872 0 1872 1872)\n(llvm:symbol-entry __do_global_dtors_aux 1792 0 1792 1792)\n(llvm:symbol-entry register_tm_clones 1728 0 1728 1728)\n(llvm:symbol-entry deregister_tm_clones 1680 0 1680 1680)\n(llvm:symbol-entry call_weak_fn 1652 20 1652 1652)\n(mapped 0 2164 0)\n(mapped 69056 624 3520)\n(named-region 0 2164 02)\n(named-region 69056 640 03)\n(named-region 568 27 .interp)\n(named-region 596 36 .note.gnu.build-id)\n(named-region 632 32 .note.ABI-tag)\n(named-region 664 28 .gnu.hash)\n(named-region 696 216 .dynsym)\n(named-region 912 141 .dynstr)\n(named-region 1054 18 .gnu.version)\n(named-region 1072 48 .gnu.version_r)\n(named-region 1120 216 .rela.dyn)\n(named-region 1336 96 .rela.plt)\n(named-region 1432 24 .init)\n(named-region 1456 96 .plt)\n(named-region 1600 300 .text)\n(named-region 1900 20 .fini)\n(named-region 1920 4 .rodata)\n(named-region 1924 60 .eh_frame_hdr)\n(named-region 1984 180 .eh_frame)\n(named-region 69056 8 .init_array)\n(named-region 69064 8 .fini_array)\n(named-region 69072 480 .dynamic)\n(named-region 69552 56 .got)\n(named-region 69608 56 .got.plt)\n(named-region 69664 16 .data)\n(named-region 69680 16 .bss)\n(named-region 0 71 .comment)\n(named-region 0 2184 .symtab)\n(named-region 0 580 .strtab)\n(named-region 0 259 .shstrtab)\n(named-symbol 1652 call_weak_fn)\n(named-symbol 1680 deregister_tm_clones)\n(named-symbol 1728 register_tm_clones)\n(named-symbol 1792 __do_global_dtors_aux)\n(named-symbol 1872 frame_dummy)\n(named-symbol 0 __libc_start_main@GLIBC_2.34)\n(named-symbol 0 __cxa_finalize@GLIBC_2.17)\n(named-symbol 1900 _fini)\n(named-symbol 0 abort@GLIBC_2.17)\n(named-symbol 1600 _start)\n(named-symbol 1876 main)\n(named-symbol 1432 _init)\n(named-symbol 0 __libc_start_main)\n(named-symbol 0 __cxa_finalize)\n(named-symbol 0 abort)\n(require libc.so.6)\n(section 568 27)\n(section 596 36)\n(section 632 32)\n(section 664 28)\n(section 696 216)\n(section 912 141)\n(section 1054 18)\n(section 1072 48)\n(section 1120 216)\n(section 1336 96)\n(section 1432 24)\n(section 1456 96)\n(section 1600 300)\n(section 1900 20)\n(section 1920 4)\n(section 1924 60)\n(section 1984 180)\n(section 69056 8)\n(section 69064 8)\n(section 69072 480)\n(section 69552 56)\n(section 69608 56)\n(section 69664 16)\n(section 69680 16)\n(section 0 71)\n(section 0 2184)\n(section 0 580)\n(section 0 259)\n(segment 0 2164 true false true)\n(segment 69056 640 true true false)\n(subarch v8)\n(symbol-chunk 1652 20 1652)\n(symbol-chunk 1600 52 1600)\n(symbol-chunk 1876 24 1876)\n(symbol-value 1652 1652)\n(symbol-value 1680 1680)\n(symbol-value 1728 1728)\n(symbol-value 1792 1792)\n(symbol-value 1872 1872)\n(symbol-value 1900 1900)\n(symbol-value 1600 1600)\n(symbol-value 1876 1876)\n(symbol-value 1432 1432)\n(symbol-value 0 0)\n(system \"\")\n(vendor \"\")\n"), -Attr("abi-name","\"aarch64-linux-gnu-elf\"")]), -Sections([Section(".shstrtab", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x40\x06\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x48\x1c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x38\x00\x09\x00\x40\x00\x1d\x00\x1c\x00\x06\x00\x00\x00\x04\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x04\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x74\x08\x00\x00\x00\x00\x00\x00\x74\x08\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x01\x00\x00\x00\x06\x00\x00\x00\xc0\x0d\x00\x00\x00\x00\x00\x00\xc0\x0d\x01\x00\x00\x00\x00\x00\xc0\x0d\x01"), -Section(".strtab", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x40\x06\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x48\x1c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x38\x00\x09\x00\x40\x00\x1d\x00\x1c\x00\x06\x00\x00\x00\x04\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x04\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x74\x08\x00\x00\x00\x00\x00\x00\x74\x08\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x01\x00\x00\x00\x06\x00\x00\x00\xc0\x0d\x00\x00\x00\x00\x00\x00\xc0\x0d\x01\x00\x00\x00\x00\x00\xc0\x0d\x01\x00\x00\x00\x00\x00\x70\x02\x00\x00\x00\x00\x00\x00\x80\x02\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x02\x00\x00\x00\x06\x00\x00\x00\xd0\x0d\x00\x00\x00\x00\x00\x00\xd0\x0d\x01\x00\x00\x00\x00\x00\xd0\x0d\x01\x00\x00\x00\x00\x00\xe0\x01\x00\x00\x00\x00\x00\x00\xe0\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x04\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x50\xe5\x74\x64\x04\x00\x00\x00\x84\x07\x00\x00\x00\x00\x00\x00\x84\x07\x00\x00\x00\x00\x00\x00\x84\x07\x00\x00\x00\x00\x00\x00\x3c\x00\x00\x00\x00\x00\x00\x00\x3c\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x51\xe5\x74\x64\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x52\xe5\x74\x64\x04\x00\x00\x00\xc0\x0d\x00\x00\x00\x00\x00\x00\xc0\x0d\x01\x00\x00\x00\x00\x00\xc0\x0d\x01\x00\x00\x00\x00\x00\x40\x02\x00\x00\x00\x00\x00\x00\x40\x02\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x2f\x6c\x69\x62\x2f\x6c\x64\x2d\x6c\x69\x6e\x75"), -Section(".comment", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x40\x06\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x48\x1c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x38\x00\x09\x00\x40\x00\x1d\x00\x1c\x00\x06\x00\x00\x00\x04\x00\x00"), -Section(".interp", 0x238, "\x2f\x6c\x69\x62\x2f\x6c\x64\x2d\x6c\x69\x6e\x75\x78\x2d\x61\x61\x72\x63\x68\x36\x34\x2e\x73\x6f\x2e\x31\x00"), -Section(".note.gnu.build-id", 0x254, "\x04\x00\x00\x00\x14\x00\x00\x00\x03\x00\x00\x00\x47\x4e\x55\x00\xc6\xb2\xa9\x6d\xe5\xb4\x42\x88\x02\x7b\xb5\x41\x2a\x79\xae\xe9\xb4\x95\x63\x9a"), -Section(".note.ABI-tag", 0x278, "\x04\x00\x00\x00\x10\x00\x00\x00\x01\x00\x00\x00\x47\x4e\x55\x00\x00\x00\x00\x00\x03\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00"), -Section(".gnu.hash", 0x298, "\x01\x00\x00\x00\x01\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".dynsym", 0x2B8, "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x0b\x00\x98\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x17\x00\x20\x10\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x48\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x22\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x22\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x73\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".dynstr", 0x390, "\x00\x5f\x5f\x63\x78\x61\x5f\x66\x69\x6e\x61\x6c\x69\x7a\x65\x00\x5f\x5f\x6c\x69\x62\x63\x5f\x73\x74\x61\x72\x74\x5f\x6d\x61\x69\x6e\x00\x61\x62\x6f\x72\x74\x00\x6c\x69\x62\x63\x2e\x73\x6f\x2e\x36\x00\x47\x4c\x49\x42\x43\x5f\x32\x2e\x31\x37\x00\x47\x4c\x49\x42\x43\x5f\x32\x2e\x33\x34\x00\x5f\x49\x54\x4d\x5f\x64\x65\x72\x65\x67\x69\x73\x74\x65\x72\x54\x4d\x43\x6c\x6f\x6e\x65\x54\x61\x62\x6c\x65\x00\x5f\x5f\x67\x6d\x6f\x6e\x5f\x73\x74\x61\x72\x74\x5f\x5f\x00\x5f\x49\x54\x4d\x5f\x72\x65\x67\x69\x73\x74\x65\x72\x54\x4d\x43\x6c\x6f\x6e\x65\x54\x61\x62\x6c\x65\x00"), -Section(".gnu.version", 0x41E, "\x00\x00\x00\x00\x00\x00\x02\x00\x01\x00\x03\x00\x01\x00\x03\x00\x01\x00"), -Section(".gnu.version_r", 0x430, "\x01\x00\x02\x00\x28\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x97\x91\x96\x06\x00\x00\x03\x00\x32\x00\x00\x00\x10\x00\x00\x00\xb4\x91\x96\x06\x00\x00\x02\x00\x3d\x00\x00\x00\x00\x00\x00\x00"), -Section(".rela.dyn", 0x460, "\xc0\x0d\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x50\x07\x00\x00\x00\x00\x00\x00\xc8\x0d\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\xc8\x0f\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x34\x10\x01\x00\x00\x00\x00\x00\xd8\x0f\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x54\x07\x00\x00\x00\x00\x00\x00\x28\x10\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x28\x10\x01\x00\x00\x00\x00\x00\xb8\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xc0\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xd0\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe0\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".rela.plt", 0x538, "\x00\x10\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x08\x10\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x10\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x18\x10\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".init", 0x598, "\x1f\x20\x03\xd5\xfd\x7b\xbf\xa9\xfd\x03\x00\x91\x34\x00\x00\x94\xfd\x7b\xc1\xa8\xc0\x03\x5f\xd6"), -Section(".plt", 0x5B0, "\xf0\x7b\xbf\xa9\x90\x00\x00\x90\x11\xfe\x47\xf9\x10\xe2\x3f\x91\x20\x02\x1f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x90\x00\x00\xb0\x11\x02\x40\xf9\x10\x02\x00\x91\x20\x02\x1f\xd6\x90\x00\x00\xb0\x11\x06\x40\xf9\x10\x22\x00\x91\x20\x02\x1f\xd6\x90\x00\x00\xb0\x11\x0a\x40\xf9\x10\x42\x00\x91\x20\x02\x1f\xd6\x90\x00\x00\xb0\x11\x0e\x40\xf9\x10\x62\x00\x91\x20\x02\x1f\xd6"), -Section(".text", 0x640, "\x1f\x20\x03\xd5\x1d\x00\x80\xd2\x1e\x00\x80\xd2\xe5\x03\x00\xaa\xe1\x03\x40\xf9\xe2\x23\x00\x91\xe6\x03\x00\x91\x80\x00\x00\x90\x00\xec\x47\xf9\x03\x00\x80\xd2\x04\x00\x80\xd2\xd9\xff\xff\x97\xe4\xff\xff\x97\x80\x00\x00\x90\x00\xe8\x47\xf9\x40\x00\x00\xb4\xdc\xff\xff\x17\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x80\x00\x00\xb0\x00\xc0\x00\x91\x81\x00\x00\xb0\x21\xc0\x00\x91\x3f\x00\x00\xeb\xc0\x00\x00\x54\x81\x00\x00\x90\x21\xdc\x47\xf9\x61\x00\x00\xb4\xf0\x03\x01\xaa\x00\x02\x1f\xd6\xc0\x03\x5f\xd6\x80\x00\x00\xb0\x00\xc0\x00\x91\x81\x00\x00\xb0\x21\xc0\x00\x91\x21\x00\x00\xcb\x22\xfc\x7f\xd3\x41\x0c\x81\x8b\x21\xfc\x41\x93\xc1\x00\x00\xb4\x82\x00\x00\x90\x42\xf0\x47\xf9\x62\x00\x00\xb4\xf0\x03\x02\xaa\x00\x02\x1f\xd6\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\xfd\x7b\xbe\xa9\xfd\x03\x00\x91\xf3\x0b\x00\xf9\x93\x00\x00\xb0\x60\xc2\x40\x39\x40\x01\x00\x35\x80\x00\x00\x90\x00\xe0\x47\xf9\x80\x00\x00\xb4\x80\x00\x00\xb0\x00\x14\x40\xf9\xad\xff\xff\x97\xd8\xff\xff\x97\x20\x00\x80\x52\x60\xc2\x00\x39\xf3\x0b\x40\xf9\xfd\x7b\xc2\xa8\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\xdc\xff\xff\x17\x89\x00\x00\x90\x29\xe5\x47\xf9\x28\x00\x80\x52\x28\x01\x00\xb9\xe0\x03\x1f\x2a\xc0\x03\x5f\xd6"), -Section(".fini", 0x76C, "\x1f\x20\x03\xd5\xfd\x7b\xbf\xa9\xfd\x03\x00\x91\xfd\x7b\xc1\xa8\xc0\x03\x5f\xd6"), -Section(".rodata", 0x780, "\x01\x00\x02\x00"), -Section(".eh_frame_hdr", 0x784, "\x01\x1b\x03\x3b\x38\x00\x00\x00\x06\x00\x00\x00\xbc\xfe\xff\xff\x50\x00\x00\x00\x0c\xff\xff\xff\x64\x00\x00\x00\x3c\xff\xff\xff\x78\x00\x00\x00\x7c\xff\xff\xff\x8c\x00\x00\x00\xcc\xff\xff\xff\xb0\x00\x00\x00\xd0\xff\xff\xff\xd8\x00\x00\x00"), -Section(".eh_frame", 0x7C0, "\x10\x00\x00\x00\x00\x00\x00\x00\x01\x7a\x52\x00\x04\x78\x1e\x01\x1b\x0c\x1f\x00\x10\x00\x00\x00\x18\x00\x00\x00\x64\xfe\xff\xff\x34\x00\x00\x00\x00\x41\x07\x1e\x10\x00\x00\x00\x2c\x00\x00\x00\xa0\xfe\xff\xff\x30\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x40\x00\x00\x00\xbc\xfe\xff\xff\x3c\x00\x00\x00\x00\x00\x00\x00\x20\x00\x00\x00\x54\x00\x00\x00\xe8\xfe\xff\xff\x48\x00\x00\x00\x00\x41\x0e\x20\x9d\x04\x9e\x03\x42\x93\x02\x4e\xde\xdd\xd3\x0e\x00\x00\x00\x00\x10\x00\x00\x00\x78\x00\x00\x00\x14\xff\xff\xff\x04\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x01\x7a\x52\x00\x01\x7c\x1e\x01\x1b\x0c\x1f\x00\x10\x00\x00\x00\x18\x00\x00\x00\xf0\xfe\xff\xff\x18\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".fini_array", 0x10DC8, "\x00\x07\x00\x00\x00\x00\x00\x00"), -Section(".dynamic", 0x10DD0, "\x01\x00\x00\x00\x00\x00\x00\x00\x28\x00\x00\x00\x00\x00\x00\x00\x0c\x00\x00\x00\x00\x00\x00\x00\x98\x05\x00\x00\x00\x00\x00\x00\x0d\x00\x00\x00\x00\x00\x00\x00\x6c\x07\x00\x00\x00\x00\x00\x00\x19\x00\x00\x00\x00\x00\x00\x00\xc0\x0d\x01\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x1a\x00\x00\x00\x00\x00\x00\x00\xc8\x0d\x01\x00\x00\x00\x00\x00\x1c\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\xf5\xfe\xff\x6f\x00\x00\x00\x00\x98\x02\x00\x00\x00\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x90\x03\x00\x00\x00\x00\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\xb8\x02\x00\x00\x00\x00\x00\x00\x0a\x00\x00\x00\x00\x00\x00\x00\x8d\x00\x00\x00\x00\x00\x00\x00\x0b\x00\x00\x00\x00\x00\x00\x00\x18\x00\x00\x00\x00\x00\x00\x00\x15\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\xe8\x0f\x01\x00\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x60\x00\x00\x00\x00\x00\x00\x00\x14\x00\x00\x00\x00\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x17\x00\x00\x00\x00\x00\x00\x00\x38\x05\x00\x00\x00\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x60\x04\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\xd8\x00\x00\x00\x00\x00\x00\x00\x09\x00\x00\x00\x00\x00\x00\x00\x18\x00\x00\x00\x00\x00\x00\x00\xfb\xff\xff\x6f\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\xfe\xff\xff\x6f\x00\x00\x00\x00\x30\x04\x00\x00\x00\x00\x00\x00\xff\xff\xff\x6f\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\xf0\xff\xff\x6f\x00\x00\x00\x00\x1e\x04\x00\x00\x00\x00\x00\x00\xf9\xff\xff\x6f\x00\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".init_array", 0x10DC0, "\x50\x07\x00\x00\x00\x00\x00\x00"), -Section(".got", 0x10FB0, "\xd0\x0d\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x34\x10\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x54\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".got.plt", 0x10FE8, "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xb0\x05\x00\x00\x00\x00\x00\x00\xb0\x05\x00\x00\x00\x00\x00\x00\xb0\x05\x00\x00\x00\x00\x00\x00\xb0\x05\x00\x00\x00\x00\x00\x00"), -Section(".data", 0x11020, "\x00\x00\x00\x00\x00\x00\x00\x00\x28\x10\x01\x00\x00\x00\x00\x00")]), -Memmap([Annotation(Region(0x0,0x873), Attr("segment","02 0 2164")), -Annotation(Region(0x640,0x673), Attr("symbol","\"_start\"")), -Annotation(Region(0x0,0x102), Attr("section","\".shstrtab\"")), -Annotation(Region(0x0,0x243), Attr("section","\".strtab\"")), -Annotation(Region(0x0,0x46), Attr("section","\".comment\"")), -Annotation(Region(0x238,0x252), Attr("section","\".interp\"")), -Annotation(Region(0x254,0x277), Attr("section","\".note.gnu.build-id\"")), -Annotation(Region(0x278,0x297), Attr("section","\".note.ABI-tag\"")), -Annotation(Region(0x298,0x2B3), Attr("section","\".gnu.hash\"")), -Annotation(Region(0x2B8,0x38F), Attr("section","\".dynsym\"")), -Annotation(Region(0x390,0x41C), Attr("section","\".dynstr\"")), -Annotation(Region(0x41E,0x42F), Attr("section","\".gnu.version\"")), -Annotation(Region(0x430,0x45F), Attr("section","\".gnu.version_r\"")), -Annotation(Region(0x460,0x537), Attr("section","\".rela.dyn\"")), -Annotation(Region(0x538,0x597), Attr("section","\".rela.plt\"")), -Annotation(Region(0x598,0x5AF), Attr("section","\".init\"")), -Annotation(Region(0x5B0,0x60F), Attr("section","\".plt\"")), -Annotation(Region(0x598,0x5AF), Attr("code-region","()")), -Annotation(Region(0x5B0,0x60F), Attr("code-region","()")), -Annotation(Region(0x640,0x673), Attr("symbol-info","_start 0x640 52")), -Annotation(Region(0x674,0x687), Attr("symbol","\"call_weak_fn\"")), -Annotation(Region(0x674,0x687), Attr("symbol-info","call_weak_fn 0x674 20")), -Annotation(Region(0x640,0x76B), Attr("section","\".text\"")), -Annotation(Region(0x640,0x76B), Attr("code-region","()")), -Annotation(Region(0x754,0x76B), Attr("symbol","\"main\"")), -Annotation(Region(0x754,0x76B), Attr("symbol-info","main 0x754 24")), -Annotation(Region(0x76C,0x77F), Attr("section","\".fini\"")), -Annotation(Region(0x76C,0x77F), Attr("code-region","()")), -Annotation(Region(0x780,0x783), Attr("section","\".rodata\"")), -Annotation(Region(0x784,0x7BF), Attr("section","\".eh_frame_hdr\"")), -Annotation(Region(0x7C0,0x873), Attr("section","\".eh_frame\"")), -Annotation(Region(0x10DC0,0x1102F), Attr("segment","03 0x10DC0 640")), -Annotation(Region(0x10DC8,0x10DCF), Attr("section","\".fini_array\"")), -Annotation(Region(0x10DD0,0x10FAF), Attr("section","\".dynamic\"")), -Annotation(Region(0x10DC0,0x10DC7), Attr("section","\".init_array\"")), -Annotation(Region(0x10FB0,0x10FE7), Attr("section","\".got\"")), -Annotation(Region(0x10FE8,0x1101F), Attr("section","\".got.plt\"")), -Annotation(Region(0x11020,0x1102F), Attr("section","\".data\""))]), -Program(Tid(1_348, "%00000544"), Attrs([]), - Subs([Sub(Tid(1_298, "@__cxa_finalize"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x5E0"), -Attr("stub","()")]), "__cxa_finalize", Args([Arg(Tid(1_349, "%00000545"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("__cxa_finalize_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(796, "@__cxa_finalize"), - Attrs([Attr("address","0x5E0")]), Phis([]), -Defs([Def(Tid(1_044, "%00000414"), Attrs([Attr("address","0x5E0"), -Attr("insn","adrp x16, #69632")]), Var("R16",Imm(64)), Int(69632,64)), -Def(Tid(1_051, "%0000041b"), Attrs([Attr("address","0x5E4"), -Attr("insn","ldr x17, [x16, #0x8]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(1_057, "%00000421"), Attrs([Attr("address","0x5E8"), -Attr("insn","add x16, x16, #0x8")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(8,64)))]), Jmps([Call(Tid(1_062, "%00000426"), - Attrs([Attr("address","0x5EC"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), -Sub(Tid(1_299, "@__do_global_dtors_aux"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x700")]), - "__do_global_dtors_aux", Args([Arg(Tid(1_350, "%00000546"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("__do_global_dtors_aux_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(614, "@__do_global_dtors_aux"), - Attrs([Attr("address","0x700")]), Phis([]), Defs([Def(Tid(618, "%0000026a"), - Attrs([Attr("address","0x700"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("#3",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(18446744073709551584,64))), -Def(Tid(624, "%00000270"), Attrs([Attr("address","0x700"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("#3",Imm(64)),Var("R29",Imm(64)),LittleEndian(),64)), -Def(Tid(630, "%00000276"), Attrs([Attr("address","0x700"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("#3",Imm(64)),Int(8,64)),Var("R30",Imm(64)),LittleEndian(),64)), -Def(Tid(634, "%0000027a"), Attrs([Attr("address","0x700"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("R31",Imm(64)), -Var("#3",Imm(64))), Def(Tid(640, "%00000280"), - Attrs([Attr("address","0x704"), Attr("insn","mov x29, sp")]), - Var("R29",Imm(64)), Var("R31",Imm(64))), Def(Tid(648, "%00000288"), - Attrs([Attr("address","0x708"), Attr("insn","str x19, [sp, #0x10]")]), - Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(16,64)),Var("R19",Imm(64)),LittleEndian(),64)), -Def(Tid(653, "%0000028d"), Attrs([Attr("address","0x70C"), -Attr("insn","adrp x19, #69632")]), Var("R19",Imm(64)), Int(69632,64)), -Def(Tid(660, "%00000294"), Attrs([Attr("address","0x710"), -Attr("insn","ldrb w0, [x19, #0x30]")]), Var("R0",Imm(64)), -UNSIGNED(64,Load(Var("mem",Mem(64,8)),PLUS(Var("R19",Imm(64)),Int(48,64)),LittleEndian(),8)))]), -Jmps([Goto(Tid(667, "%0000029b"), Attrs([Attr("address","0x714"), -Attr("insn","cbnz w0, #0x28")]), - NEQ(Extract(31,0,Var("R0",Imm(64))),Int(0,32)), -Direct(Tid(665, "%00000299"))), Goto(Tid(1_338, "%0000053a"), Attrs([]), - Int(1,1), Direct(Tid(741, "%000002e5")))])), Blk(Tid(741, "%000002e5"), - Attrs([Attr("address","0x718")]), Phis([]), Defs([Def(Tid(744, "%000002e8"), - Attrs([Attr("address","0x718"), Attr("insn","adrp x0, #65536")]), - Var("R0",Imm(64)), Int(65536,64)), Def(Tid(751, "%000002ef"), - Attrs([Attr("address","0x71C"), Attr("insn","ldr x0, [x0, #0xfc0]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(4032,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(757, "%000002f5"), Attrs([Attr("address","0x720"), -Attr("insn","cbz x0, #0x10")]), EQ(Var("R0",Imm(64)),Int(0,64)), -Direct(Tid(755, "%000002f3"))), Goto(Tid(1_339, "%0000053b"), Attrs([]), - Int(1,1), Direct(Tid(780, "%0000030c")))])), Blk(Tid(780, "%0000030c"), - Attrs([Attr("address","0x724")]), Phis([]), Defs([Def(Tid(783, "%0000030f"), - Attrs([Attr("address","0x724"), Attr("insn","adrp x0, #69632")]), - Var("R0",Imm(64)), Int(69632,64)), Def(Tid(790, "%00000316"), - Attrs([Attr("address","0x728"), Attr("insn","ldr x0, [x0, #0x28]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(40,64)),LittleEndian(),64)), -Def(Tid(795, "%0000031b"), Attrs([Attr("address","0x72C"), -Attr("insn","bl #-0x14c")]), Var("R30",Imm(64)), Int(1840,64))]), -Jmps([Call(Tid(798, "%0000031e"), Attrs([Attr("address","0x72C"), -Attr("insn","bl #-0x14c")]), Int(1,1), -(Direct(Tid(1_298, "@__cxa_finalize")),Direct(Tid(755, "%000002f3"))))])), -Blk(Tid(755, "%000002f3"), Attrs([Attr("address","0x730")]), Phis([]), -Defs([Def(Tid(763, "%000002fb"), Attrs([Attr("address","0x730"), -Attr("insn","bl #-0xa0")]), Var("R30",Imm(64)), Int(1844,64))]), -Jmps([Call(Tid(765, "%000002fd"), Attrs([Attr("address","0x730"), -Attr("insn","bl #-0xa0")]), Int(1,1), -(Direct(Tid(1_312, "@deregister_tm_clones")),Direct(Tid(767, "%000002ff"))))])), -Blk(Tid(767, "%000002ff"), Attrs([Attr("address","0x734")]), Phis([]), -Defs([Def(Tid(770, "%00000302"), Attrs([Attr("address","0x734"), -Attr("insn","mov w0, #0x1")]), Var("R0",Imm(64)), Int(1,64)), -Def(Tid(778, "%0000030a"), Attrs([Attr("address","0x738"), -Attr("insn","strb w0, [x19, #0x30]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R19",Imm(64)),Int(48,64)),Extract(7,0,Var("R0",Imm(64))),LittleEndian(),8))]), -Jmps([Goto(Tid(1_340, "%0000053c"), Attrs([]), Int(1,1), -Direct(Tid(665, "%00000299")))])), Blk(Tid(665, "%00000299"), - Attrs([Attr("address","0x73C")]), Phis([]), Defs([Def(Tid(675, "%000002a3"), - Attrs([Attr("address","0x73C"), Attr("insn","ldr x19, [sp, #0x10]")]), - Var("R19",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(16,64)),LittleEndian(),64)), -Def(Tid(682, "%000002aa"), Attrs([Attr("address","0x740"), -Attr("insn","ldp x29, x30, [sp], #0x20")]), Var("R29",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(687, "%000002af"), Attrs([Attr("address","0x740"), -Attr("insn","ldp x29, x30, [sp], #0x20")]), Var("R30",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(691, "%000002b3"), Attrs([Attr("address","0x740"), -Attr("insn","ldp x29, x30, [sp], #0x20")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(32,64)))]), Jmps([Call(Tid(696, "%000002b8"), - Attrs([Attr("address","0x744"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), Sub(Tid(1_303, "@__libc_start_main"), - Attrs([Attr("c.proto","signed (*)(signed (*)(signed , char** , char** );* main, signed , char** , \nvoid* auxv)"), -Attr("address","0x5D0"), Attr("stub","()")]), "__libc_start_main", - Args([Arg(Tid(1_351, "%00000547"), - Attrs([Attr("c.layout","**[ : 64]"), -Attr("c.data","Top:u64 ptr ptr"), -Attr("c.type","signed (*)(signed , char** , char** );*")]), - Var("__libc_start_main_main",Imm(64)), Var("R0",Imm(64)), In()), -Arg(Tid(1_352, "%00000548"), Attrs([Attr("c.layout","[signed : 32]"), -Attr("c.data","Top:u32"), Attr("c.type","signed")]), - Var("__libc_start_main_arg2",Imm(32)), LOW(32,Var("R1",Imm(64))), In()), -Arg(Tid(1_353, "%00000549"), Attrs([Attr("c.layout","**[char : 8]"), -Attr("c.data","Top:u8 ptr ptr"), Attr("c.type","char**")]), - Var("__libc_start_main_arg3",Imm(64)), Var("R2",Imm(64)), Both()), -Arg(Tid(1_354, "%0000054a"), Attrs([Attr("c.layout","*[ : 8]"), -Attr("c.data","{} ptr"), Attr("c.type","void*")]), - Var("__libc_start_main_auxv",Imm(64)), Var("R3",Imm(64)), Both()), -Arg(Tid(1_355, "%0000054b"), Attrs([Attr("c.layout","[signed : 32]"), -Attr("c.data","Top:u32"), Attr("c.type","signed")]), - Var("__libc_start_main_result",Imm(32)), LOW(32,Var("R0",Imm(64))), -Out())]), Blks([Blk(Tid(447, "@__libc_start_main"), - Attrs([Attr("address","0x5D0")]), Phis([]), -Defs([Def(Tid(1_022, "%000003fe"), Attrs([Attr("address","0x5D0"), -Attr("insn","adrp x16, #69632")]), Var("R16",Imm(64)), Int(69632,64)), -Def(Tid(1_029, "%00000405"), Attrs([Attr("address","0x5D4"), -Attr("insn","ldr x17, [x16]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R16",Imm(64)),LittleEndian(),64)), -Def(Tid(1_035, "%0000040b"), Attrs([Attr("address","0x5D8"), -Attr("insn","add x16, x16, #0x0")]), Var("R16",Imm(64)), -Var("R16",Imm(64)))]), Jmps([Call(Tid(1_040, "%00000410"), - Attrs([Attr("address","0x5DC"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), Sub(Tid(1_304, "@_fini"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x76C")]), - "_fini", Args([Arg(Tid(1_356, "%0000054c"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("_fini_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(31, "@_fini"), - Attrs([Attr("address","0x76C")]), Phis([]), Defs([Def(Tid(37, "%00000025"), - Attrs([Attr("address","0x770"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("#0",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(18446744073709551600,64))), -Def(Tid(43, "%0000002b"), Attrs([Attr("address","0x770"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("#0",Imm(64)),Var("R29",Imm(64)),LittleEndian(),64)), -Def(Tid(49, "%00000031"), Attrs([Attr("address","0x770"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("#0",Imm(64)),Int(8,64)),Var("R30",Imm(64)),LittleEndian(),64)), -Def(Tid(53, "%00000035"), Attrs([Attr("address","0x770"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("R31",Imm(64)), -Var("#0",Imm(64))), Def(Tid(59, "%0000003b"), Attrs([Attr("address","0x774"), -Attr("insn","mov x29, sp")]), Var("R29",Imm(64)), Var("R31",Imm(64))), -Def(Tid(66, "%00000042"), Attrs([Attr("address","0x778"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R29",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(71, "%00000047"), Attrs([Attr("address","0x778"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R30",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(75, "%0000004b"), Attrs([Attr("address","0x778"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(16,64)))]), Jmps([Call(Tid(80, "%00000050"), - Attrs([Attr("address","0x77C"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), Sub(Tid(1_305, "@_init"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x598")]), - "_init", Args([Arg(Tid(1_357, "%0000054d"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("_init_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(1_134, "@_init"), - Attrs([Attr("address","0x598")]), Phis([]), -Defs([Def(Tid(1_140, "%00000474"), Attrs([Attr("address","0x59C"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("#5",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(18446744073709551600,64))), -Def(Tid(1_146, "%0000047a"), Attrs([Attr("address","0x59C"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("#5",Imm(64)),Var("R29",Imm(64)),LittleEndian(),64)), -Def(Tid(1_152, "%00000480"), Attrs([Attr("address","0x59C"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("#5",Imm(64)),Int(8,64)),Var("R30",Imm(64)),LittleEndian(),64)), -Def(Tid(1_156, "%00000484"), Attrs([Attr("address","0x59C"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("R31",Imm(64)), -Var("#5",Imm(64))), Def(Tid(1_162, "%0000048a"), - Attrs([Attr("address","0x5A0"), Attr("insn","mov x29, sp")]), - Var("R29",Imm(64)), Var("R31",Imm(64))), Def(Tid(1_167, "%0000048f"), - Attrs([Attr("address","0x5A4"), Attr("insn","bl #0xd0")]), - Var("R30",Imm(64)), Int(1448,64))]), Jmps([Call(Tid(1_169, "%00000491"), - Attrs([Attr("address","0x5A4"), Attr("insn","bl #0xd0")]), Int(1,1), -(Direct(Tid(1_310, "@call_weak_fn")),Direct(Tid(1_171, "%00000493"))))])), -Blk(Tid(1_171, "%00000493"), Attrs([Attr("address","0x5A8")]), Phis([]), -Defs([Def(Tid(1_176, "%00000498"), Attrs([Attr("address","0x5A8"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R29",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(1_181, "%0000049d"), Attrs([Attr("address","0x5A8"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R30",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(1_185, "%000004a1"), Attrs([Attr("address","0x5A8"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(16,64)))]), Jmps([Call(Tid(1_190, "%000004a6"), - Attrs([Attr("address","0x5AC"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), Sub(Tid(1_306, "@_start"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x640"), -Attr("entry-point","()")]), "_start", Args([Arg(Tid(1_358, "%0000054e"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("_start_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(384, "@_start"), - Attrs([Attr("address","0x640")]), Phis([]), Defs([Def(Tid(389, "%00000185"), - Attrs([Attr("address","0x644"), Attr("insn","mov x29, #0x0")]), - Var("R29",Imm(64)), Int(0,64)), Def(Tid(394, "%0000018a"), - Attrs([Attr("address","0x648"), Attr("insn","mov x30, #0x0")]), - Var("R30",Imm(64)), Int(0,64)), Def(Tid(400, "%00000190"), - Attrs([Attr("address","0x64C"), Attr("insn","mov x5, x0")]), - Var("R5",Imm(64)), Var("R0",Imm(64))), Def(Tid(407, "%00000197"), - Attrs([Attr("address","0x650"), Attr("insn","ldr x1, [sp]")]), - Var("R1",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(413, "%0000019d"), Attrs([Attr("address","0x654"), -Attr("insn","add x2, sp, #0x8")]), Var("R2",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(8,64))), Def(Tid(419, "%000001a3"), - Attrs([Attr("address","0x658"), Attr("insn","mov x6, sp")]), - Var("R6",Imm(64)), Var("R31",Imm(64))), Def(Tid(424, "%000001a8"), - Attrs([Attr("address","0x65C"), Attr("insn","adrp x0, #65536")]), - Var("R0",Imm(64)), Int(65536,64)), Def(Tid(431, "%000001af"), - Attrs([Attr("address","0x660"), Attr("insn","ldr x0, [x0, #0xfd8]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(4056,64)),LittleEndian(),64)), -Def(Tid(436, "%000001b4"), Attrs([Attr("address","0x664"), -Attr("insn","mov x3, #0x0")]), Var("R3",Imm(64)), Int(0,64)), -Def(Tid(441, "%000001b9"), Attrs([Attr("address","0x668"), -Attr("insn","mov x4, #0x0")]), Var("R4",Imm(64)), Int(0,64)), -Def(Tid(446, "%000001be"), Attrs([Attr("address","0x66C"), -Attr("insn","bl #-0x9c")]), Var("R30",Imm(64)), Int(1648,64))]), -Jmps([Call(Tid(449, "%000001c1"), Attrs([Attr("address","0x66C"), -Attr("insn","bl #-0x9c")]), Int(1,1), -(Direct(Tid(1_303, "@__libc_start_main")),Direct(Tid(451, "%000001c3"))))])), -Blk(Tid(451, "%000001c3"), Attrs([Attr("address","0x670")]), Phis([]), -Defs([Def(Tid(454, "%000001c6"), Attrs([Attr("address","0x670"), -Attr("insn","bl #-0x70")]), Var("R30",Imm(64)), Int(1652,64))]), -Jmps([Call(Tid(457, "%000001c9"), Attrs([Attr("address","0x670"), -Attr("insn","bl #-0x70")]), Int(1,1), -(Direct(Tid(1_309, "@abort")),Direct(Tid(1_341, "%0000053d"))))])), -Blk(Tid(1_341, "%0000053d"), Attrs([]), Phis([]), Defs([]), -Jmps([Call(Tid(1_342, "%0000053e"), Attrs([]), Int(1,1), -(Direct(Tid(1_310, "@call_weak_fn")),))]))])), Sub(Tid(1_309, "@abort"), - Attrs([Attr("noreturn","()"), Attr("c.proto","void (*)(void)"), -Attr("address","0x600"), Attr("stub","()")]), "abort", Args([]), -Blks([Blk(Tid(455, "@abort"), Attrs([Attr("address","0x600")]), Phis([]), -Defs([Def(Tid(1_088, "%00000440"), Attrs([Attr("address","0x600"), -Attr("insn","adrp x16, #69632")]), Var("R16",Imm(64)), Int(69632,64)), -Def(Tid(1_095, "%00000447"), Attrs([Attr("address","0x604"), -Attr("insn","ldr x17, [x16, #0x18]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(24,64)),LittleEndian(),64)), -Def(Tid(1_101, "%0000044d"), Attrs([Attr("address","0x608"), -Attr("insn","add x16, x16, #0x18")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(24,64)))]), Jmps([Call(Tid(1_106, "%00000452"), - Attrs([Attr("address","0x60C"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), Sub(Tid(1_310, "@call_weak_fn"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x674")]), - "call_weak_fn", Args([Arg(Tid(1_359, "%0000054f"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("call_weak_fn_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(459, "@call_weak_fn"), - Attrs([Attr("address","0x674")]), Phis([]), Defs([Def(Tid(462, "%000001ce"), - Attrs([Attr("address","0x674"), Attr("insn","adrp x0, #65536")]), - Var("R0",Imm(64)), Int(65536,64)), Def(Tid(469, "%000001d5"), - Attrs([Attr("address","0x678"), Attr("insn","ldr x0, [x0, #0xfd0]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(4048,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(475, "%000001db"), Attrs([Attr("address","0x67C"), -Attr("insn","cbz x0, #0x8")]), EQ(Var("R0",Imm(64)),Int(0,64)), -Direct(Tid(473, "%000001d9"))), Goto(Tid(1_343, "%0000053f"), Attrs([]), - Int(1,1), Direct(Tid(860, "%0000035c")))])), Blk(Tid(473, "%000001d9"), - Attrs([Attr("address","0x684")]), Phis([]), Defs([]), -Jmps([Call(Tid(481, "%000001e1"), Attrs([Attr("address","0x684"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))])), -Blk(Tid(860, "%0000035c"), Attrs([Attr("address","0x680")]), Phis([]), -Defs([]), Jmps([Goto(Tid(863, "%0000035f"), Attrs([Attr("address","0x680"), -Attr("insn","b #-0x90")]), Int(1,1), Direct(Tid(861, "@__gmon_start__")))])), -Blk(Tid(861, "@__gmon_start__"), Attrs([Attr("address","0x5F0")]), Phis([]), -Defs([Def(Tid(1_066, "%0000042a"), Attrs([Attr("address","0x5F0"), -Attr("insn","adrp x16, #69632")]), Var("R16",Imm(64)), Int(69632,64)), -Def(Tid(1_073, "%00000431"), Attrs([Attr("address","0x5F4"), -Attr("insn","ldr x17, [x16, #0x10]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(16,64)),LittleEndian(),64)), -Def(Tid(1_079, "%00000437"), Attrs([Attr("address","0x5F8"), -Attr("insn","add x16, x16, #0x10")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(16,64)))]), Jmps([Call(Tid(1_084, "%0000043c"), - Attrs([Attr("address","0x5FC"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), -Sub(Tid(1_312, "@deregister_tm_clones"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x690")]), - "deregister_tm_clones", Args([Arg(Tid(1_360, "%00000550"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("deregister_tm_clones_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(487, "@deregister_tm_clones"), - Attrs([Attr("address","0x690")]), Phis([]), Defs([Def(Tid(490, "%000001ea"), - Attrs([Attr("address","0x690"), Attr("insn","adrp x0, #69632")]), - Var("R0",Imm(64)), Int(69632,64)), Def(Tid(496, "%000001f0"), - Attrs([Attr("address","0x694"), Attr("insn","add x0, x0, #0x30")]), - Var("R0",Imm(64)), PLUS(Var("R0",Imm(64)),Int(48,64))), -Def(Tid(501, "%000001f5"), Attrs([Attr("address","0x698"), -Attr("insn","adrp x1, #69632")]), Var("R1",Imm(64)), Int(69632,64)), -Def(Tid(507, "%000001fb"), Attrs([Attr("address","0x69C"), -Attr("insn","add x1, x1, #0x30")]), Var("R1",Imm(64)), -PLUS(Var("R1",Imm(64)),Int(48,64))), Def(Tid(513, "%00000201"), - Attrs([Attr("address","0x6A0"), Attr("insn","cmp x1, x0")]), - Var("#1",Imm(64)), NOT(Var("R0",Imm(64)))), Def(Tid(518, "%00000206"), - Attrs([Attr("address","0x6A0"), Attr("insn","cmp x1, x0")]), - Var("#2",Imm(64)), PLUS(Var("R1",Imm(64)),NOT(Var("R0",Imm(64))))), -Def(Tid(524, "%0000020c"), Attrs([Attr("address","0x6A0"), -Attr("insn","cmp x1, x0")]), Var("VF",Imm(1)), -NEQ(SIGNED(65,PLUS(Var("#2",Imm(64)),Int(1,64))),PLUS(PLUS(SIGNED(65,Var("R1",Imm(64))),SIGNED(65,Var("#1",Imm(64)))),Int(1,65)))), -Def(Tid(530, "%00000212"), Attrs([Attr("address","0x6A0"), -Attr("insn","cmp x1, x0")]), Var("CF",Imm(1)), -NEQ(UNSIGNED(65,PLUS(Var("#2",Imm(64)),Int(1,64))),PLUS(PLUS(UNSIGNED(65,Var("R1",Imm(64))),UNSIGNED(65,Var("#1",Imm(64)))),Int(1,65)))), -Def(Tid(534, "%00000216"), Attrs([Attr("address","0x6A0"), -Attr("insn","cmp x1, x0")]), Var("ZF",Imm(1)), -EQ(PLUS(Var("#2",Imm(64)),Int(1,64)),Int(0,64))), Def(Tid(538, "%0000021a"), - Attrs([Attr("address","0x6A0"), Attr("insn","cmp x1, x0")]), - Var("NF",Imm(1)), Extract(63,63,PLUS(Var("#2",Imm(64)),Int(1,64))))]), -Jmps([Goto(Tid(544, "%00000220"), Attrs([Attr("address","0x6A4"), -Attr("insn","b.eq #0x18")]), EQ(Var("ZF",Imm(1)),Int(1,1)), -Direct(Tid(542, "%0000021e"))), Goto(Tid(1_344, "%00000540"), Attrs([]), - Int(1,1), Direct(Tid(830, "%0000033e")))])), Blk(Tid(830, "%0000033e"), - Attrs([Attr("address","0x6A8")]), Phis([]), Defs([Def(Tid(833, "%00000341"), - Attrs([Attr("address","0x6A8"), Attr("insn","adrp x1, #65536")]), - Var("R1",Imm(64)), Int(65536,64)), Def(Tid(840, "%00000348"), - Attrs([Attr("address","0x6AC"), Attr("insn","ldr x1, [x1, #0xfb8]")]), - Var("R1",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R1",Imm(64)),Int(4024,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(845, "%0000034d"), Attrs([Attr("address","0x6B0"), -Attr("insn","cbz x1, #0xc")]), EQ(Var("R1",Imm(64)),Int(0,64)), -Direct(Tid(542, "%0000021e"))), Goto(Tid(1_345, "%00000541"), Attrs([]), - Int(1,1), Direct(Tid(849, "%00000351")))])), Blk(Tid(542, "%0000021e"), - Attrs([Attr("address","0x6BC")]), Phis([]), Defs([]), -Jmps([Call(Tid(550, "%00000226"), Attrs([Attr("address","0x6BC"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))])), -Blk(Tid(849, "%00000351"), Attrs([Attr("address","0x6B4")]), Phis([]), -Defs([Def(Tid(853, "%00000355"), Attrs([Attr("address","0x6B4"), -Attr("insn","mov x16, x1")]), Var("R16",Imm(64)), Var("R1",Imm(64)))]), -Jmps([Call(Tid(858, "%0000035a"), Attrs([Attr("address","0x6B8"), -Attr("insn","br x16")]), Int(1,1), (Indirect(Var("R16",Imm(64))),))]))])), -Sub(Tid(1_315, "@frame_dummy"), Attrs([Attr("c.proto","signed (*)(void)"), -Attr("address","0x750")]), "frame_dummy", Args([Arg(Tid(1_361, "%00000551"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("frame_dummy_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(702, "@frame_dummy"), - Attrs([Attr("address","0x750")]), Phis([]), Defs([]), -Jmps([Call(Tid(704, "%000002c0"), Attrs([Attr("address","0x750"), -Attr("insn","b #-0x90")]), Int(1,1), -(Direct(Tid(1_317, "@register_tm_clones")),))]))])), Sub(Tid(1_316, "@main"), - Attrs([Attr("c.proto","signed (*)(signed argc, const char** argv)"), -Attr("address","0x754")]), "main", Args([Arg(Tid(1_362, "%00000552"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("main_argc",Imm(32)), -LOW(32,Var("R0",Imm(64))), In()), Arg(Tid(1_363, "%00000553"), - Attrs([Attr("c.layout","**[char : 8]"), Attr("c.data","Top:u8 ptr ptr"), -Attr("c.type"," const char**")]), Var("main_argv",Imm(64)), -Var("R1",Imm(64)), Both()), Arg(Tid(1_364, "%00000554"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("main_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(706, "@main"), - Attrs([Attr("address","0x754")]), Phis([]), Defs([Def(Tid(709, "%000002c5"), - Attrs([Attr("address","0x754"), Attr("insn","adrp x9, #65536")]), - Var("R9",Imm(64)), Int(65536,64)), Def(Tid(716, "%000002cc"), - Attrs([Attr("address","0x758"), Attr("insn","ldr x9, [x9, #0xfc8]")]), - Var("R9",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R9",Imm(64)),Int(4040,64)),LittleEndian(),64)), -Def(Tid(721, "%000002d1"), Attrs([Attr("address","0x75C"), -Attr("insn","mov w8, #0x1")]), Var("R8",Imm(64)), Int(1,64)), -Def(Tid(729, "%000002d9"), Attrs([Attr("address","0x760"), -Attr("insn","str w8, [x9]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("R9",Imm(64)),Extract(31,0,Var("R8",Imm(64))),LittleEndian(),32)), -Def(Tid(734, "%000002de"), Attrs([Attr("address","0x764"), -Attr("insn","mov w0, wzr")]), Var("R0",Imm(64)), Int(0,64))]), -Jmps([Call(Tid(739, "%000002e3"), Attrs([Attr("address","0x768"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))]))])), -Sub(Tid(1_317, "@register_tm_clones"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x6C0")]), - "register_tm_clones", Args([Arg(Tid(1_365, "%00000555"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("register_tm_clones_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(552, "@register_tm_clones"), Attrs([Attr("address","0x6C0")]), - Phis([]), Defs([Def(Tid(555, "%0000022b"), Attrs([Attr("address","0x6C0"), -Attr("insn","adrp x0, #69632")]), Var("R0",Imm(64)), Int(69632,64)), -Def(Tid(561, "%00000231"), Attrs([Attr("address","0x6C4"), -Attr("insn","add x0, x0, #0x30")]), Var("R0",Imm(64)), -PLUS(Var("R0",Imm(64)),Int(48,64))), Def(Tid(566, "%00000236"), - Attrs([Attr("address","0x6C8"), Attr("insn","adrp x1, #69632")]), - Var("R1",Imm(64)), Int(69632,64)), Def(Tid(572, "%0000023c"), - Attrs([Attr("address","0x6CC"), Attr("insn","add x1, x1, #0x30")]), - Var("R1",Imm(64)), PLUS(Var("R1",Imm(64)),Int(48,64))), -Def(Tid(579, "%00000243"), Attrs([Attr("address","0x6D0"), -Attr("insn","sub x1, x1, x0")]), Var("R1",Imm(64)), -PLUS(PLUS(Var("R1",Imm(64)),NOT(Var("R0",Imm(64)))),Int(1,64))), -Def(Tid(585, "%00000249"), Attrs([Attr("address","0x6D4"), -Attr("insn","lsr x2, x1, #63")]), Var("R2",Imm(64)), -Concat(Int(0,63),Extract(63,63,Var("R1",Imm(64))))), -Def(Tid(592, "%00000250"), Attrs([Attr("address","0x6D8"), -Attr("insn","add x1, x2, x1, asr #3")]), Var("R1",Imm(64)), -PLUS(Var("R2",Imm(64)),ARSHIFT(Var("R1",Imm(64)),Int(3,3)))), -Def(Tid(598, "%00000256"), Attrs([Attr("address","0x6DC"), -Attr("insn","asr x1, x1, #1")]), Var("R1",Imm(64)), -SIGNED(64,Extract(63,1,Var("R1",Imm(64)))))]), -Jmps([Goto(Tid(604, "%0000025c"), Attrs([Attr("address","0x6E0"), -Attr("insn","cbz x1, #0x18")]), EQ(Var("R1",Imm(64)),Int(0,64)), -Direct(Tid(602, "%0000025a"))), Goto(Tid(1_346, "%00000542"), Attrs([]), - Int(1,1), Direct(Tid(800, "%00000320")))])), Blk(Tid(800, "%00000320"), - Attrs([Attr("address","0x6E4")]), Phis([]), Defs([Def(Tid(803, "%00000323"), - Attrs([Attr("address","0x6E4"), Attr("insn","adrp x2, #65536")]), - Var("R2",Imm(64)), Int(65536,64)), Def(Tid(810, "%0000032a"), - Attrs([Attr("address","0x6E8"), Attr("insn","ldr x2, [x2, #0xfe0]")]), - Var("R2",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R2",Imm(64)),Int(4064,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(815, "%0000032f"), Attrs([Attr("address","0x6EC"), -Attr("insn","cbz x2, #0xc")]), EQ(Var("R2",Imm(64)),Int(0,64)), -Direct(Tid(602, "%0000025a"))), Goto(Tid(1_347, "%00000543"), Attrs([]), - Int(1,1), Direct(Tid(819, "%00000333")))])), Blk(Tid(602, "%0000025a"), - Attrs([Attr("address","0x6F8")]), Phis([]), Defs([]), -Jmps([Call(Tid(610, "%00000262"), Attrs([Attr("address","0x6F8"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))])), -Blk(Tid(819, "%00000333"), Attrs([Attr("address","0x6F0")]), Phis([]), -Defs([Def(Tid(823, "%00000337"), Attrs([Attr("address","0x6F0"), -Attr("insn","mov x16, x2")]), Var("R16",Imm(64)), Var("R2",Imm(64)))]), -Jmps([Call(Tid(828, "%0000033c"), Attrs([Attr("address","0x6F4"), -Attr("insn","br x16")]), Int(1,1), -(Indirect(Var("R16",Imm(64))),))]))]))]))) \ No newline at end of file diff --git a/src/test/correct/no_interference_update_x/clang_pic/no_interference_update_x.bir b/src/test/correct/no_interference_update_x/clang_pic/no_interference_update_x.bir deleted file mode 100644 index 3cf712ad4..000000000 --- a/src/test/correct/no_interference_update_x/clang_pic/no_interference_update_x.bir +++ /dev/null @@ -1,228 +0,0 @@ -00000544: program -00000512: sub __cxa_finalize(__cxa_finalize_result) -00000545: __cxa_finalize_result :: out u32 = low:32[R0] - -0000031c: -00000414: R16 := 0x11000 -0000041b: R17 := mem[R16 + 8, el]:u64 -00000421: R16 := R16 + 8 -00000426: call R17 with noreturn - -00000513: sub __do_global_dtors_aux(__do_global_dtors_aux_result) -00000546: __do_global_dtors_aux_result :: out u32 = low:32[R0] - -00000266: -0000026a: #3 := R31 - 0x20 -00000270: mem := mem with [#3, el]:u64 <- R29 -00000276: mem := mem with [#3 + 8, el]:u64 <- R30 -0000027a: R31 := #3 -00000280: R29 := R31 -00000288: mem := mem with [R31 + 0x10, el]:u64 <- R19 -0000028d: R19 := 0x11000 -00000294: R0 := pad:64[mem[R19 + 0x30]] -0000029b: when 31:0[R0] <> 0 goto %00000299 -0000053a: goto %000002e5 - -000002e5: -000002e8: R0 := 0x10000 -000002ef: R0 := mem[R0 + 0xFC0, el]:u64 -000002f5: when R0 = 0 goto %000002f3 -0000053b: goto %0000030c - -0000030c: -0000030f: R0 := 0x11000 -00000316: R0 := mem[R0 + 0x28, el]:u64 -0000031b: R30 := 0x730 -0000031e: call @__cxa_finalize with return %000002f3 - -000002f3: -000002fb: R30 := 0x734 -000002fd: call @deregister_tm_clones with return %000002ff - -000002ff: -00000302: R0 := 1 -0000030a: mem := mem with [R19 + 0x30] <- 7:0[R0] -0000053c: goto %00000299 - -00000299: -000002a3: R19 := mem[R31 + 0x10, el]:u64 -000002aa: R29 := mem[R31, el]:u64 -000002af: R30 := mem[R31 + 8, el]:u64 -000002b3: R31 := R31 + 0x20 -000002b8: call R30 with noreturn - -00000517: sub __libc_start_main(__libc_start_main_main, __libc_start_main_arg2, __libc_start_main_arg3, __libc_start_main_auxv, __libc_start_main_result) -00000547: __libc_start_main_main :: in u64 = R0 -00000548: __libc_start_main_arg2 :: in u32 = low:32[R1] -00000549: __libc_start_main_arg3 :: in out u64 = R2 -0000054a: __libc_start_main_auxv :: in out u64 = R3 -0000054b: __libc_start_main_result :: out u32 = low:32[R0] - -000001bf: -000003fe: R16 := 0x11000 -00000405: R17 := mem[R16, el]:u64 -0000040b: R16 := R16 -00000410: call R17 with noreturn - -00000518: sub _fini(_fini_result) -0000054c: _fini_result :: out u32 = low:32[R0] - -0000001f: -00000025: #0 := R31 - 0x10 -0000002b: mem := mem with [#0, el]:u64 <- R29 -00000031: mem := mem with [#0 + 8, el]:u64 <- R30 -00000035: R31 := #0 -0000003b: R29 := R31 -00000042: R29 := mem[R31, el]:u64 -00000047: R30 := mem[R31 + 8, el]:u64 -0000004b: R31 := R31 + 0x10 -00000050: call R30 with noreturn - -00000519: sub _init(_init_result) -0000054d: _init_result :: out u32 = low:32[R0] - -0000046e: -00000474: #5 := R31 - 0x10 -0000047a: mem := mem with [#5, el]:u64 <- R29 -00000480: mem := mem with [#5 + 8, el]:u64 <- R30 -00000484: R31 := #5 -0000048a: R29 := R31 -0000048f: R30 := 0x5A8 -00000491: call @call_weak_fn with return %00000493 - -00000493: -00000498: R29 := mem[R31, el]:u64 -0000049d: R30 := mem[R31 + 8, el]:u64 -000004a1: R31 := R31 + 0x10 -000004a6: call R30 with noreturn - -0000051a: sub _start(_start_result) -0000054e: _start_result :: out u32 = low:32[R0] - -00000180: -00000185: R29 := 0 -0000018a: R30 := 0 -00000190: R5 := R0 -00000197: R1 := mem[R31, el]:u64 -0000019d: R2 := R31 + 8 -000001a3: R6 := R31 -000001a8: R0 := 0x10000 -000001af: R0 := mem[R0 + 0xFD8, el]:u64 -000001b4: R3 := 0 -000001b9: R4 := 0 -000001be: R30 := 0x670 -000001c1: call @__libc_start_main with return %000001c3 - -000001c3: -000001c6: R30 := 0x674 -000001c9: call @abort with return %0000053d - -0000053d: -0000053e: call @call_weak_fn with noreturn - -0000051d: sub abort() - - -000001c7: -00000440: R16 := 0x11000 -00000447: R17 := mem[R16 + 0x18, el]:u64 -0000044d: R16 := R16 + 0x18 -00000452: call R17 with noreturn - -0000051e: sub call_weak_fn(call_weak_fn_result) -0000054f: call_weak_fn_result :: out u32 = low:32[R0] - -000001cb: -000001ce: R0 := 0x10000 -000001d5: R0 := mem[R0 + 0xFD0, el]:u64 -000001db: when R0 = 0 goto %000001d9 -0000053f: goto %0000035c - -000001d9: -000001e1: call R30 with noreturn - -0000035c: -0000035f: goto @__gmon_start__ - -0000035d: -0000042a: R16 := 0x11000 -00000431: R17 := mem[R16 + 0x10, el]:u64 -00000437: R16 := R16 + 0x10 -0000043c: call R17 with noreturn - -00000520: sub deregister_tm_clones(deregister_tm_clones_result) -00000550: deregister_tm_clones_result :: out u32 = low:32[R0] - -000001e7: -000001ea: R0 := 0x11000 -000001f0: R0 := R0 + 0x30 -000001f5: R1 := 0x11000 -000001fb: R1 := R1 + 0x30 -00000201: #1 := ~R0 -00000206: #2 := R1 + ~R0 -0000020c: VF := extend:65[#2 + 1] <> extend:65[R1] + extend:65[#1] + 1 -00000212: CF := pad:65[#2 + 1] <> pad:65[R1] + pad:65[#1] + 1 -00000216: ZF := #2 + 1 = 0 -0000021a: NF := 63:63[#2 + 1] -00000220: when ZF goto %0000021e -00000540: goto %0000033e - -0000033e: -00000341: R1 := 0x10000 -00000348: R1 := mem[R1 + 0xFB8, el]:u64 -0000034d: when R1 = 0 goto %0000021e -00000541: goto %00000351 - -0000021e: -00000226: call R30 with noreturn - -00000351: -00000355: R16 := R1 -0000035a: call R16 with noreturn - -00000523: sub frame_dummy(frame_dummy_result) -00000551: frame_dummy_result :: out u32 = low:32[R0] - -000002be: -000002c0: call @register_tm_clones with noreturn - -00000524: sub main(main_argc, main_argv, main_result) -00000552: main_argc :: in u32 = low:32[R0] -00000553: main_argv :: in out u64 = R1 -00000554: main_result :: out u32 = low:32[R0] - -000002c2: -000002c5: R9 := 0x10000 -000002cc: R9 := mem[R9 + 0xFC8, el]:u64 -000002d1: R8 := 1 -000002d9: mem := mem with [R9, el]:u32 <- 31:0[R8] -000002de: R0 := 0 -000002e3: call R30 with noreturn - -00000525: sub register_tm_clones(register_tm_clones_result) -00000555: register_tm_clones_result :: out u32 = low:32[R0] - -00000228: -0000022b: R0 := 0x11000 -00000231: R0 := R0 + 0x30 -00000236: R1 := 0x11000 -0000023c: R1 := R1 + 0x30 -00000243: R1 := R1 + ~R0 + 1 -00000249: R2 := 0.63:63[R1] -00000250: R1 := R2 + (R1 ~>> 3) -00000256: R1 := extend:64[63:1[R1]] -0000025c: when R1 = 0 goto %0000025a -00000542: goto %00000320 - -00000320: -00000323: R2 := 0x10000 -0000032a: R2 := mem[R2 + 0xFE0, el]:u64 -0000032f: when R2 = 0 goto %0000025a -00000543: goto %00000333 - -0000025a: -00000262: call R30 with noreturn - -00000333: -00000337: R16 := R2 -0000033c: call R16 with noreturn diff --git a/src/test/correct/no_interference_update_x/clang_pic/no_interference_update_x.expected b/src/test/correct/no_interference_update_x/clang_pic/no_interference_update_x.expected index 4b1314c6f..9978fda98 100644 --- a/src/test/correct/no_interference_update_x/clang_pic/no_interference_update_x.expected +++ b/src/test/correct/no_interference_update_x/clang_pic/no_interference_update_x.expected @@ -7,9 +7,9 @@ var {:extern} R8: bv64; var {:extern} R9: bv64; var {:extern} mem: [bv64]bv8; const {:extern} $x_addr: bv64; -axiom ($x_addr == 69684bv64); +axiom ($x_addr == 131092bv64); const {:extern} $y_addr: bv64; -axiom ($y_addr == 69688bv64); +axiom ($y_addr == 131096bv64); function {:extern} L(mem$in: [bv64]bv8, index: bv64) returns (bool) { (if (index == $y_addr) then true else (if (index == $x_addr) then true else false)) } @@ -39,12 +39,12 @@ procedure {:extern} rely(); modifies Gamma_mem, mem; ensures (forall i: bv64 :: (((mem[i] == old(mem[i])) ==> (Gamma_mem[i] == old(Gamma_mem[i]))))); ensures (memory_load32_le(mem, $x_addr) == old(memory_load32_le(mem, $x_addr))); - free ensures (memory_load32_le(mem, 1920bv64) == 131073bv32); - free ensures (memory_load64_le(mem, 69056bv64) == 1872bv64); - free ensures (memory_load64_le(mem, 69064bv64) == 1792bv64); - free ensures (memory_load64_le(mem, 69576bv64) == 69684bv64); - free ensures (memory_load64_le(mem, 69592bv64) == 1876bv64); - free ensures (memory_load64_le(mem, 69672bv64) == 69672bv64); + free ensures (memory_load32_le(mem, 2304bv64) == 131073bv32); + free ensures (memory_load64_le(mem, 130432bv64) == 2256bv64); + free ensures (memory_load64_le(mem, 130440bv64) == 2176bv64); + free ensures (memory_load64_le(mem, 131040bv64) == 131092bv64); + free ensures (memory_load64_le(mem, 131056bv64) == 2260bv64); + free ensures (memory_load64_le(mem, 131080bv64) == 131080bv64); procedure {:extern} rely_transitive(); modifies Gamma_mem, mem; @@ -71,46 +71,46 @@ implementation {:extern} guarantee_reflexive() assert (memory_load32_le(mem, $y_addr) == memory_load32_le(mem, $y_addr)); } -procedure main_1876(); +procedure main(); modifies Gamma_R0, Gamma_R8, Gamma_R9, Gamma_mem, R0, R8, R9, mem; - free requires (memory_load64_le(mem, 69664bv64) == 0bv64); - free requires (memory_load64_le(mem, 69672bv64) == 69672bv64); - free requires (memory_load32_le(mem, 1920bv64) == 131073bv32); - free requires (memory_load64_le(mem, 69056bv64) == 1872bv64); - free requires (memory_load64_le(mem, 69064bv64) == 1792bv64); - free requires (memory_load64_le(mem, 69576bv64) == 69684bv64); - free requires (memory_load64_le(mem, 69592bv64) == 1876bv64); - free requires (memory_load64_le(mem, 69672bv64) == 69672bv64); + free requires (memory_load64_le(mem, 131072bv64) == 0bv64); + free requires (memory_load64_le(mem, 131080bv64) == 131080bv64); + free requires (memory_load32_le(mem, 2304bv64) == 131073bv32); + free requires (memory_load64_le(mem, 130432bv64) == 2256bv64); + free requires (memory_load64_le(mem, 130440bv64) == 2176bv64); + free requires (memory_load64_le(mem, 131040bv64) == 131092bv64); + free requires (memory_load64_le(mem, 131056bv64) == 2260bv64); + free requires (memory_load64_le(mem, 131080bv64) == 131080bv64); ensures (memory_load32_le(mem, $x_addr) == 1bv32); - free ensures (memory_load32_le(mem, 1920bv64) == 131073bv32); - free ensures (memory_load64_le(mem, 69056bv64) == 1872bv64); - free ensures (memory_load64_le(mem, 69064bv64) == 1792bv64); - free ensures (memory_load64_le(mem, 69576bv64) == 69684bv64); - free ensures (memory_load64_le(mem, 69592bv64) == 1876bv64); - free ensures (memory_load64_le(mem, 69672bv64) == 69672bv64); + free ensures (memory_load32_le(mem, 2304bv64) == 131073bv32); + free ensures (memory_load64_le(mem, 130432bv64) == 2256bv64); + free ensures (memory_load64_le(mem, 130440bv64) == 2176bv64); + free ensures (memory_load64_le(mem, 131040bv64) == 131092bv64); + free ensures (memory_load64_le(mem, 131056bv64) == 2260bv64); + free ensures (memory_load64_le(mem, 131080bv64) == 131080bv64); -implementation main_1876() +implementation main() { - var Gamma_load18: bool; - var load18: bv64; + var $load$18: bv64; + var Gamma_$load$18: bool; var y_old: bv32; lmain: assume {:captureState "lmain"} true; - R9, Gamma_R9 := 65536bv64, true; + R8, Gamma_R8 := 126976bv64, true; + R9, Gamma_R9 := 1bv64, true; + R0, Gamma_R0 := 0bv64, true; call rely(); - load18, Gamma_load18 := memory_load64_le(mem, bvadd64(R9, 4040bv64)), (gamma_load64(Gamma_mem, bvadd64(R9, 4040bv64)) || L(mem, bvadd64(R9, 4040bv64))); - R9, Gamma_R9 := load18, Gamma_load18; - R8, Gamma_R8 := 1bv64, true; + $load$18, Gamma_$load$18 := memory_load64_le(mem, bvadd64(R8, 4064bv64)), (gamma_load64(Gamma_mem, bvadd64(R8, 4064bv64)) || L(mem, bvadd64(R8, 4064bv64))); + R8, Gamma_R8 := $load$18, Gamma_$load$18; call rely(); + assert (L(mem, R8) ==> Gamma_R9); y_old := memory_load32_le(mem, $y_addr); - assert (L(mem, R9) ==> Gamma_R8); - mem, Gamma_mem := memory_store32_le(mem, R9, R8[32:0]), gamma_store32(Gamma_mem, R9, Gamma_R8); + mem, Gamma_mem := memory_store32_le(mem, R8, R9[32:0]), gamma_store32(Gamma_mem, R8, Gamma_R9); assert (memory_load32_le(mem, $y_addr) == y_old); - assume {:captureState "%000002d9"} true; - R0, Gamma_R0 := 0bv64, true; - goto main_1876_basil_return; - main_1876_basil_return: - assume {:captureState "main_1876_basil_return"} true; + assume {:captureState "%0000028c"} true; + goto main_basil_return; + main_basil_return: + assume {:captureState "main_basil_return"} true; return; } diff --git a/src/test/correct/no_interference_update_x/clang_pic/no_interference_update_x.gts b/src/test/correct/no_interference_update_x/clang_pic/no_interference_update_x.gts deleted file mode 100644 index 879a0d2a8..000000000 Binary files a/src/test/correct/no_interference_update_x/clang_pic/no_interference_update_x.gts and /dev/null differ diff --git a/src/test/correct/no_interference_update_x/clang_pic/no_interference_update_x.md5sum b/src/test/correct/no_interference_update_x/clang_pic/no_interference_update_x.md5sum new file mode 100644 index 000000000..72268f300 --- /dev/null +++ b/src/test/correct/no_interference_update_x/clang_pic/no_interference_update_x.md5sum @@ -0,0 +1,5 @@ +9b3040f919e299a9f231176d773adf91 correct/no_interference_update_x/clang_pic/a.out +55b5ee7a2bf23195ddcec40c77e01e6e correct/no_interference_update_x/clang_pic/no_interference_update_x.adt +9903aa54693487f43b2a1f5a89bd0fe6 correct/no_interference_update_x/clang_pic/no_interference_update_x.bir +06cfe049057990d4949c77289ec1a6ca correct/no_interference_update_x/clang_pic/no_interference_update_x.relf +26be2c27fe4eb7bf88c88f6683ae8e2b correct/no_interference_update_x/clang_pic/no_interference_update_x.gts diff --git a/src/test/correct/no_interference_update_x/clang_pic/no_interference_update_x.relf b/src/test/correct/no_interference_update_x/clang_pic/no_interference_update_x.relf deleted file mode 100644 index 0dcbead70..000000000 --- a/src/test/correct/no_interference_update_x/clang_pic/no_interference_update_x.relf +++ /dev/null @@ -1,125 +0,0 @@ - -Relocation section '.rela.dyn' at offset 0x460 contains 9 entries: - Offset Info Type Symbol's Value Symbol's Name + Addend -0000000000010dc0 0000000000000403 R_AARCH64_RELATIVE 750 -0000000000010dc8 0000000000000403 R_AARCH64_RELATIVE 700 -0000000000010fc8 0000000000000403 R_AARCH64_RELATIVE 11034 -0000000000010fd8 0000000000000403 R_AARCH64_RELATIVE 754 -0000000000011028 0000000000000403 R_AARCH64_RELATIVE 11028 -0000000000010fb8 0000000400000401 R_AARCH64_GLOB_DAT 0000000000000000 _ITM_deregisterTMCloneTable + 0 -0000000000010fc0 0000000500000401 R_AARCH64_GLOB_DAT 0000000000000000 __cxa_finalize@GLIBC_2.17 + 0 -0000000000010fd0 0000000600000401 R_AARCH64_GLOB_DAT 0000000000000000 __gmon_start__ + 0 -0000000000010fe0 0000000800000401 R_AARCH64_GLOB_DAT 0000000000000000 _ITM_registerTMCloneTable + 0 - -Relocation section '.rela.plt' at offset 0x538 contains 4 entries: - Offset Info Type Symbol's Value Symbol's Name + Addend -0000000000011000 0000000300000402 R_AARCH64_JUMP_SLOT 0000000000000000 __libc_start_main@GLIBC_2.34 + 0 -0000000000011008 0000000500000402 R_AARCH64_JUMP_SLOT 0000000000000000 __cxa_finalize@GLIBC_2.17 + 0 -0000000000011010 0000000600000402 R_AARCH64_JUMP_SLOT 0000000000000000 __gmon_start__ + 0 -0000000000011018 0000000700000402 R_AARCH64_JUMP_SLOT 0000000000000000 abort@GLIBC_2.17 + 0 - -Symbol table '.dynsym' contains 9 entries: - Num: Value Size Type Bind Vis Ndx Name - 0: 0000000000000000 0 NOTYPE LOCAL DEFAULT UND - 1: 0000000000000598 0 SECTION LOCAL DEFAULT 11 .init - 2: 0000000000011020 0 SECTION LOCAL DEFAULT 23 .data - 3: 0000000000000000 0 FUNC GLOBAL DEFAULT UND __libc_start_main@GLIBC_2.34 (2) - 4: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_deregisterTMCloneTable - 5: 0000000000000000 0 FUNC WEAK DEFAULT UND __cxa_finalize@GLIBC_2.17 (3) - 6: 0000000000000000 0 NOTYPE WEAK DEFAULT UND __gmon_start__ - 7: 0000000000000000 0 FUNC GLOBAL DEFAULT UND abort@GLIBC_2.17 (3) - 8: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_registerTMCloneTable - -Symbol table '.symtab' contains 91 entries: - Num: Value Size Type Bind Vis Ndx Name - 0: 0000000000000000 0 NOTYPE LOCAL DEFAULT UND - 1: 0000000000000238 0 SECTION LOCAL DEFAULT 1 .interp - 2: 0000000000000254 0 SECTION LOCAL DEFAULT 2 .note.gnu.build-id - 3: 0000000000000278 0 SECTION LOCAL DEFAULT 3 .note.ABI-tag - 4: 0000000000000298 0 SECTION LOCAL DEFAULT 4 .gnu.hash - 5: 00000000000002b8 0 SECTION LOCAL DEFAULT 5 .dynsym - 6: 0000000000000390 0 SECTION LOCAL DEFAULT 6 .dynstr - 7: 000000000000041e 0 SECTION LOCAL DEFAULT 7 .gnu.version - 8: 0000000000000430 0 SECTION LOCAL DEFAULT 8 .gnu.version_r - 9: 0000000000000460 0 SECTION LOCAL DEFAULT 9 .rela.dyn - 10: 0000000000000538 0 SECTION LOCAL DEFAULT 10 .rela.plt - 11: 0000000000000598 0 SECTION LOCAL DEFAULT 11 .init - 12: 00000000000005b0 0 SECTION LOCAL DEFAULT 12 .plt - 13: 0000000000000640 0 SECTION LOCAL DEFAULT 13 .text - 14: 000000000000076c 0 SECTION LOCAL DEFAULT 14 .fini - 15: 0000000000000780 0 SECTION LOCAL DEFAULT 15 .rodata - 16: 0000000000000784 0 SECTION LOCAL DEFAULT 16 .eh_frame_hdr - 17: 00000000000007c0 0 SECTION LOCAL DEFAULT 17 .eh_frame - 18: 0000000000010dc0 0 SECTION LOCAL DEFAULT 18 .init_array - 19: 0000000000010dc8 0 SECTION LOCAL DEFAULT 19 .fini_array - 20: 0000000000010dd0 0 SECTION LOCAL DEFAULT 20 .dynamic - 21: 0000000000010fb0 0 SECTION LOCAL DEFAULT 21 .got - 22: 0000000000010fe8 0 SECTION LOCAL DEFAULT 22 .got.plt - 23: 0000000000011020 0 SECTION LOCAL DEFAULT 23 .data - 24: 0000000000011030 0 SECTION LOCAL DEFAULT 24 .bss - 25: 0000000000000000 0 SECTION LOCAL DEFAULT 25 .comment - 26: 0000000000000000 0 FILE LOCAL DEFAULT ABS Scrt1.o - 27: 0000000000000278 0 NOTYPE LOCAL DEFAULT 3 $d - 28: 0000000000000278 32 OBJECT LOCAL DEFAULT 3 __abi_tag - 29: 0000000000000640 0 NOTYPE LOCAL DEFAULT 13 $x - 30: 00000000000007d4 0 NOTYPE LOCAL DEFAULT 17 $d - 31: 0000000000000780 0 NOTYPE LOCAL DEFAULT 15 $d - 32: 0000000000000000 0 FILE LOCAL DEFAULT ABS crti.o - 33: 0000000000000674 0 NOTYPE LOCAL DEFAULT 13 $x - 34: 0000000000000674 20 FUNC LOCAL DEFAULT 13 call_weak_fn - 35: 0000000000000598 0 NOTYPE LOCAL DEFAULT 11 $x - 36: 000000000000076c 0 NOTYPE LOCAL DEFAULT 14 $x - 37: 0000000000000000 0 FILE LOCAL DEFAULT ABS crtn.o - 38: 00000000000005a8 0 NOTYPE LOCAL DEFAULT 11 $x - 39: 0000000000000778 0 NOTYPE LOCAL DEFAULT 14 $x - 40: 0000000000000000 0 FILE LOCAL DEFAULT ABS crtstuff.c - 41: 0000000000000690 0 NOTYPE LOCAL DEFAULT 13 $x - 42: 0000000000000690 0 FUNC LOCAL DEFAULT 13 deregister_tm_clones - 43: 00000000000006c0 0 FUNC LOCAL DEFAULT 13 register_tm_clones - 44: 0000000000011028 0 NOTYPE LOCAL DEFAULT 23 $d - 45: 0000000000000700 0 FUNC LOCAL DEFAULT 13 __do_global_dtors_aux - 46: 0000000000011030 1 OBJECT LOCAL DEFAULT 24 completed.0 - 47: 0000000000010dc8 0 NOTYPE LOCAL DEFAULT 19 $d - 48: 0000000000010dc8 0 OBJECT LOCAL DEFAULT 19 __do_global_dtors_aux_fini_array_entry - 49: 0000000000000750 0 FUNC LOCAL DEFAULT 13 frame_dummy - 50: 0000000000010dc0 0 NOTYPE LOCAL DEFAULT 18 $d - 51: 0000000000010dc0 0 OBJECT LOCAL DEFAULT 18 __frame_dummy_init_array_entry - 52: 00000000000007e8 0 NOTYPE LOCAL DEFAULT 17 $d - 53: 0000000000011030 0 NOTYPE LOCAL DEFAULT 24 $d - 54: 0000000000000000 0 FILE LOCAL DEFAULT ABS no_interference_update_x.c - 55: 0000000000000754 0 NOTYPE LOCAL DEFAULT 13 $x.0 - 56: 0000000000011034 0 NOTYPE LOCAL DEFAULT 24 $d.1 - 57: 000000000000002a 0 NOTYPE LOCAL DEFAULT 25 $d.2 - 58: 0000000000000848 0 NOTYPE LOCAL DEFAULT 17 $d.3 - 59: 0000000000000000 0 FILE LOCAL DEFAULT ABS crtstuff.c - 60: 0000000000000870 0 NOTYPE LOCAL DEFAULT 17 $d - 61: 0000000000000870 0 OBJECT LOCAL DEFAULT 17 __FRAME_END__ - 62: 0000000000000000 0 FILE LOCAL DEFAULT ABS - 63: 0000000000010dd0 0 OBJECT LOCAL DEFAULT ABS _DYNAMIC - 64: 0000000000000784 0 NOTYPE LOCAL DEFAULT 16 __GNU_EH_FRAME_HDR - 65: 0000000000010fb0 0 OBJECT LOCAL DEFAULT ABS _GLOBAL_OFFSET_TABLE_ - 66: 00000000000005b0 0 NOTYPE LOCAL DEFAULT 12 $x - 67: 0000000000000000 0 FUNC GLOBAL DEFAULT UND __libc_start_main@GLIBC_2.34 - 68: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_deregisterTMCloneTable - 69: 0000000000011020 0 NOTYPE WEAK DEFAULT 23 data_start - 70: 0000000000011030 0 NOTYPE GLOBAL DEFAULT 24 __bss_start__ - 71: 0000000000000000 0 FUNC WEAK DEFAULT UND __cxa_finalize@GLIBC_2.17 - 72: 0000000000011040 0 NOTYPE GLOBAL DEFAULT 24 _bss_end__ - 73: 0000000000011030 0 NOTYPE GLOBAL DEFAULT 23 _edata - 74: 0000000000011034 4 OBJECT GLOBAL DEFAULT 24 x - 75: 000000000000076c 0 FUNC GLOBAL HIDDEN 14 _fini - 76: 0000000000011040 0 NOTYPE GLOBAL DEFAULT 24 __bss_end__ - 77: 0000000000011020 0 NOTYPE GLOBAL DEFAULT 23 __data_start - 78: 0000000000000000 0 NOTYPE WEAK DEFAULT UND __gmon_start__ - 79: 0000000000011028 0 OBJECT GLOBAL HIDDEN 23 __dso_handle - 80: 0000000000000000 0 FUNC GLOBAL DEFAULT UND abort@GLIBC_2.17 - 81: 0000000000000780 4 OBJECT GLOBAL DEFAULT 15 _IO_stdin_used - 82: 0000000000011040 0 NOTYPE GLOBAL DEFAULT 24 _end - 83: 0000000000000640 52 FUNC GLOBAL DEFAULT 13 _start - 84: 0000000000011040 0 NOTYPE GLOBAL DEFAULT 24 __end__ - 85: 0000000000011038 4 OBJECT GLOBAL DEFAULT 24 y - 86: 0000000000011030 0 NOTYPE GLOBAL DEFAULT 24 __bss_start - 87: 0000000000000754 24 FUNC GLOBAL DEFAULT 13 main - 88: 0000000000011030 0 OBJECT GLOBAL HIDDEN 23 __TMC_END__ - 89: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_registerTMCloneTable - 90: 0000000000000598 0 FUNC GLOBAL HIDDEN 11 _init diff --git a/src/test/correct/no_interference_update_x/clang_pic/no_interference_update_x_gtirb.expected b/src/test/correct/no_interference_update_x/clang_pic/no_interference_update_x_gtirb.expected index 7fec057ae..5a1e4de21 100644 --- a/src/test/correct/no_interference_update_x/clang_pic/no_interference_update_x_gtirb.expected +++ b/src/test/correct/no_interference_update_x/clang_pic/no_interference_update_x_gtirb.expected @@ -7,9 +7,9 @@ var {:extern} R8: bv64; var {:extern} R9: bv64; var {:extern} mem: [bv64]bv8; const {:extern} $x_addr: bv64; -axiom ($x_addr == 69684bv64); +axiom ($x_addr == 131092bv64); const {:extern} $y_addr: bv64; -axiom ($y_addr == 69688bv64); +axiom ($y_addr == 131096bv64); function {:extern} L(mem$in: [bv64]bv8, index: bv64) returns (bool) { (if (index == $y_addr) then true else (if (index == $x_addr) then true else false)) } @@ -39,12 +39,12 @@ procedure {:extern} rely(); modifies Gamma_mem, mem; ensures (forall i: bv64 :: (((mem[i] == old(mem[i])) ==> (Gamma_mem[i] == old(Gamma_mem[i]))))); ensures (memory_load32_le(mem, $x_addr) == old(memory_load32_le(mem, $x_addr))); - free ensures (memory_load32_le(mem, 1920bv64) == 131073bv32); - free ensures (memory_load64_le(mem, 69056bv64) == 1872bv64); - free ensures (memory_load64_le(mem, 69064bv64) == 1792bv64); - free ensures (memory_load64_le(mem, 69576bv64) == 69684bv64); - free ensures (memory_load64_le(mem, 69592bv64) == 1876bv64); - free ensures (memory_load64_le(mem, 69672bv64) == 69672bv64); + free ensures (memory_load32_le(mem, 2304bv64) == 131073bv32); + free ensures (memory_load64_le(mem, 130432bv64) == 2256bv64); + free ensures (memory_load64_le(mem, 130440bv64) == 2176bv64); + free ensures (memory_load64_le(mem, 131040bv64) == 131092bv64); + free ensures (memory_load64_le(mem, 131056bv64) == 2260bv64); + free ensures (memory_load64_le(mem, 131080bv64) == 131080bv64); procedure {:extern} rely_transitive(); modifies Gamma_mem, mem; @@ -71,46 +71,46 @@ implementation {:extern} guarantee_reflexive() assert (memory_load32_le(mem, $y_addr) == memory_load32_le(mem, $y_addr)); } -procedure main_1876(); +procedure main(); modifies Gamma_R0, Gamma_R8, Gamma_R9, Gamma_mem, R0, R8, R9, mem; - free requires (memory_load64_le(mem, 69664bv64) == 0bv64); - free requires (memory_load64_le(mem, 69672bv64) == 69672bv64); - free requires (memory_load32_le(mem, 1920bv64) == 131073bv32); - free requires (memory_load64_le(mem, 69056bv64) == 1872bv64); - free requires (memory_load64_le(mem, 69064bv64) == 1792bv64); - free requires (memory_load64_le(mem, 69576bv64) == 69684bv64); - free requires (memory_load64_le(mem, 69592bv64) == 1876bv64); - free requires (memory_load64_le(mem, 69672bv64) == 69672bv64); + free requires (memory_load64_le(mem, 131072bv64) == 0bv64); + free requires (memory_load64_le(mem, 131080bv64) == 131080bv64); + free requires (memory_load32_le(mem, 2304bv64) == 131073bv32); + free requires (memory_load64_le(mem, 130432bv64) == 2256bv64); + free requires (memory_load64_le(mem, 130440bv64) == 2176bv64); + free requires (memory_load64_le(mem, 131040bv64) == 131092bv64); + free requires (memory_load64_le(mem, 131056bv64) == 2260bv64); + free requires (memory_load64_le(mem, 131080bv64) == 131080bv64); ensures (memory_load32_le(mem, $x_addr) == 1bv32); - free ensures (memory_load32_le(mem, 1920bv64) == 131073bv32); - free ensures (memory_load64_le(mem, 69056bv64) == 1872bv64); - free ensures (memory_load64_le(mem, 69064bv64) == 1792bv64); - free ensures (memory_load64_le(mem, 69576bv64) == 69684bv64); - free ensures (memory_load64_le(mem, 69592bv64) == 1876bv64); - free ensures (memory_load64_le(mem, 69672bv64) == 69672bv64); + free ensures (memory_load32_le(mem, 2304bv64) == 131073bv32); + free ensures (memory_load64_le(mem, 130432bv64) == 2256bv64); + free ensures (memory_load64_le(mem, 130440bv64) == 2176bv64); + free ensures (memory_load64_le(mem, 131040bv64) == 131092bv64); + free ensures (memory_load64_le(mem, 131056bv64) == 2260bv64); + free ensures (memory_load64_le(mem, 131080bv64) == 131080bv64); -implementation main_1876() +implementation main() { - var Gamma_load2: bool; - var load2: bv64; + var $load19: bv64; + var Gamma_$load19: bool; var y_old: bv32; - main_1876__0__uD5wQok2QlKmkwPvtjvpMQ: - assume {:captureState "main_1876__0__uD5wQok2QlKmkwPvtjvpMQ"} true; - R9, Gamma_R9 := 65536bv64, true; + $main$__0__$IkNYmV06TxC75h8A4NM3wA: + assume {:captureState "$main$__0__$IkNYmV06TxC75h8A4NM3wA"} true; + R8, Gamma_R8 := 126976bv64, true; + R9, Gamma_R9 := 1bv64, true; + R0, Gamma_R0 := 0bv64, true; call rely(); - load2, Gamma_load2 := memory_load64_le(mem, bvadd64(R9, 4040bv64)), (gamma_load64(Gamma_mem, bvadd64(R9, 4040bv64)) || L(mem, bvadd64(R9, 4040bv64))); - R9, Gamma_R9 := load2, Gamma_load2; - R8, Gamma_R8 := 1bv64, true; + $load19, Gamma_$load19 := memory_load64_le(mem, bvadd64(R8, 4064bv64)), (gamma_load64(Gamma_mem, bvadd64(R8, 4064bv64)) || L(mem, bvadd64(R8, 4064bv64))); + R8, Gamma_R8 := $load19, Gamma_$load19; call rely(); + assert (L(mem, R8) ==> Gamma_R9); y_old := memory_load32_le(mem, $y_addr); - assert (L(mem, R9) ==> Gamma_R8); - mem, Gamma_mem := memory_store32_le(mem, R9, R8[32:0]), gamma_store32(Gamma_mem, R9, Gamma_R8); + mem, Gamma_mem := memory_store32_le(mem, R8, R9[32:0]), gamma_store32(Gamma_mem, R8, Gamma_R9); assert (memory_load32_le(mem, $y_addr) == y_old); - assume {:captureState "1888_0"} true; - R0, Gamma_R0 := 0bv64, true; - goto main_1876_basil_return; - main_1876_basil_return: - assume {:captureState "main_1876_basil_return"} true; + assume {:captureState "2276$0"} true; + goto main_basil_return; + main_basil_return: + assume {:captureState "main_basil_return"} true; return; } diff --git a/src/test/correct/no_interference_update_x/gcc/no_interference_update_x.adt b/src/test/correct/no_interference_update_x/gcc/no_interference_update_x.adt deleted file mode 100644 index fccfa31d0..000000000 --- a/src/test/correct/no_interference_update_x/gcc/no_interference_update_x.adt +++ /dev/null @@ -1,492 +0,0 @@ -Project(Attrs([Attr("filename","\"gcc/no_interference_update_x.out\""), -Attr("image-specification","(declare abi (name str))\n(declare arch (name str))\n(declare base-address (addr int))\n(declare bias (off int))\n(declare bits (size int))\n(declare code-region (addr int) (size int) (off int))\n(declare code-start (addr int))\n(declare entry-point (addr int))\n(declare external-reference (addr int) (name str))\n(declare format (name str))\n(declare is-executable (flag bool))\n(declare is-little-endian (flag bool))\n(declare llvm:base-address (addr int))\n(declare llvm:code-entry (name str) (off int) (size int))\n(declare llvm:coff-import-library (name str))\n(declare llvm:coff-virtual-section-header (name str) (addr int) (size int))\n(declare llvm:elf-program-header (name str) (off int) (size int))\n(declare llvm:elf-program-header-flags (name str) (ld bool) (r bool) \n (w bool) (x bool))\n(declare llvm:elf-virtual-program-header (name str) (addr int) (size int))\n(declare llvm:entry-point (addr int))\n(declare llvm:macho-symbol (name str) (value int))\n(declare llvm:name-reference (at int) (name str))\n(declare llvm:relocation (at int) (addr int))\n(declare llvm:section-entry (name str) (addr int) (size int) (off int))\n(declare llvm:section-flags (name str) (r bool) (w bool) (x bool))\n(declare llvm:segment-command (name str) (off int) (size int))\n(declare llvm:segment-command-flags (name str) (r bool) (w bool) (x bool))\n(declare llvm:symbol-entry (name str) (addr int) (size int) (off int)\n (value int))\n(declare llvm:virtual-segment-command (name str) (addr int) (size int))\n(declare mapped (addr int) (size int) (off int))\n(declare named-region (addr int) (size int) (name str))\n(declare named-symbol (addr int) (name str))\n(declare require (name str))\n(declare section (addr int) (size int))\n(declare segment (addr int) (size int) (r bool) (w bool) (x bool))\n(declare subarch (name str))\n(declare symbol-chunk (addr int) (size int) (root int))\n(declare symbol-value (addr int) (value int))\n(declare system (name str))\n(declare vendor (name str))\n\n(abi unknown)\n(arch aarch64)\n(base-address 0)\n(bias 0)\n(bits 64)\n(code-region 1836 20 1836)\n(code-region 1536 300 1536)\n(code-region 1440 96 1440)\n(code-region 1408 24 1408)\n(code-start 1588)\n(code-start 1536)\n(code-start 1812)\n(entry-point 1536)\n(external-reference 69592 _ITM_deregisterTMCloneTable)\n(external-reference 69600 __cxa_finalize)\n(external-reference 69608 __gmon_start__)\n(external-reference 69624 _ITM_registerTMCloneTable)\n(external-reference 69552 __libc_start_main)\n(external-reference 69560 __cxa_finalize)\n(external-reference 69568 __gmon_start__)\n(external-reference 69576 abort)\n(format elf)\n(is-executable true)\n(is-little-endian true)\n(llvm:base-address 0)\n(llvm:code-entry abort 0 0)\n(llvm:code-entry __cxa_finalize 0 0)\n(llvm:code-entry __libc_start_main 0 0)\n(llvm:code-entry _init 1408 0)\n(llvm:code-entry main 1812 24)\n(llvm:code-entry _start 1536 52)\n(llvm:code-entry abort@GLIBC_2.17 0 0)\n(llvm:code-entry _fini 1836 0)\n(llvm:code-entry __cxa_finalize@GLIBC_2.17 0 0)\n(llvm:code-entry __libc_start_main@GLIBC_2.34 0 0)\n(llvm:code-entry frame_dummy 1808 0)\n(llvm:code-entry __do_global_dtors_aux 1728 0)\n(llvm:code-entry register_tm_clones 1664 0)\n(llvm:code-entry deregister_tm_clones 1616 0)\n(llvm:code-entry call_weak_fn 1588 20)\n(llvm:code-entry .fini 1836 20)\n(llvm:code-entry .text 1536 300)\n(llvm:code-entry .plt 1440 96)\n(llvm:code-entry .init 1408 24)\n(llvm:elf-program-header 08 3480 616)\n(llvm:elf-program-header 07 0 0)\n(llvm:elf-program-header 06 1860 60)\n(llvm:elf-program-header 05 596 68)\n(llvm:elf-program-header 04 3496 496)\n(llvm:elf-program-header 03 3480 632)\n(llvm:elf-program-header 02 0 2080)\n(llvm:elf-program-header 01 568 27)\n(llvm:elf-program-header 00 64 504)\n(llvm:elf-program-header-flags 08 false true false false)\n(llvm:elf-program-header-flags 07 false true true false)\n(llvm:elf-program-header-flags 06 false true false false)\n(llvm:elf-program-header-flags 05 false true false false)\n(llvm:elf-program-header-flags 04 false true true false)\n(llvm:elf-program-header-flags 03 true true true false)\n(llvm:elf-program-header-flags 02 true true false true)\n(llvm:elf-program-header-flags 01 false true false false)\n(llvm:elf-program-header-flags 00 false true false false)\n(llvm:elf-virtual-program-header 08 69016 616)\n(llvm:elf-virtual-program-header 07 0 0)\n(llvm:elf-virtual-program-header 06 1860 60)\n(llvm:elf-virtual-program-header 05 596 68)\n(llvm:elf-virtual-program-header 04 69032 496)\n(llvm:elf-virtual-program-header 03 69016 648)\n(llvm:elf-virtual-program-header 02 0 2080)\n(llvm:elf-virtual-program-header 01 568 27)\n(llvm:elf-virtual-program-header 00 64 504)\n(llvm:entry-point 1536)\n(llvm:name-reference 69576 abort)\n(llvm:name-reference 69568 __gmon_start__)\n(llvm:name-reference 69560 __cxa_finalize)\n(llvm:name-reference 69552 __libc_start_main)\n(llvm:name-reference 69624 _ITM_registerTMCloneTable)\n(llvm:name-reference 69608 __gmon_start__)\n(llvm:name-reference 69600 __cxa_finalize)\n(llvm:name-reference 69592 _ITM_deregisterTMCloneTable)\n(llvm:section-entry .shstrtab 0 250 6856)\n(llvm:section-entry .strtab 0 560 6296)\n(llvm:section-entry .symtab 0 2136 4160)\n(llvm:section-entry .comment 0 43 4112)\n(llvm:section-entry .bss 69648 16 4112)\n(llvm:section-entry .data 69632 16 4096)\n(llvm:section-entry .got 69528 104 3992)\n(llvm:section-entry .dynamic 69032 496 3496)\n(llvm:section-entry .fini_array 69024 8 3488)\n(llvm:section-entry .init_array 69016 8 3480)\n(llvm:section-entry .eh_frame 1920 160 1920)\n(llvm:section-entry .eh_frame_hdr 1860 60 1860)\n(llvm:section-entry .rodata 1856 4 1856)\n(llvm:section-entry .fini 1836 20 1836)\n(llvm:section-entry .text 1536 300 1536)\n(llvm:section-entry .plt 1440 96 1440)\n(llvm:section-entry .init 1408 24 1408)\n(llvm:section-entry .rela.plt 1312 96 1312)\n(llvm:section-entry .rela.dyn 1120 192 1120)\n(llvm:section-entry .gnu.version_r 1072 48 1072)\n(llvm:section-entry .gnu.version 1054 18 1054)\n(llvm:section-entry .dynstr 912 141 912)\n(llvm:section-entry .dynsym 696 216 696)\n(llvm:section-entry .gnu.hash 664 28 664)\n(llvm:section-entry .note.ABI-tag 632 32 632)\n(llvm:section-entry .note.gnu.build-id 596 36 596)\n(llvm:section-entry .interp 568 27 568)\n(llvm:section-flags .shstrtab true false false)\n(llvm:section-flags .strtab true false false)\n(llvm:section-flags .symtab true false false)\n(llvm:section-flags .comment true false false)\n(llvm:section-flags .bss true true false)\n(llvm:section-flags .data true true false)\n(llvm:section-flags .got true true false)\n(llvm:section-flags .dynamic true true false)\n(llvm:section-flags .fini_array true true false)\n(llvm:section-flags .init_array true true false)\n(llvm:section-flags .eh_frame true false false)\n(llvm:section-flags .eh_frame_hdr true false false)\n(llvm:section-flags .rodata true false false)\n(llvm:section-flags .fini true false true)\n(llvm:section-flags .text true false true)\n(llvm:section-flags .plt true false true)\n(llvm:section-flags .init true false true)\n(llvm:section-flags .rela.plt true false false)\n(llvm:section-flags .rela.dyn true false false)\n(llvm:section-flags .gnu.version_r true false false)\n(llvm:section-flags .gnu.version true false false)\n(llvm:section-flags .dynstr true false false)\n(llvm:section-flags .dynsym true false false)\n(llvm:section-flags .gnu.hash true false false)\n(llvm:section-flags .note.ABI-tag true false false)\n(llvm:section-flags .note.gnu.build-id true false false)\n(llvm:section-flags .interp true false false)\n(llvm:symbol-entry abort 0 0 0 0)\n(llvm:symbol-entry __cxa_finalize 0 0 0 0)\n(llvm:symbol-entry __libc_start_main 0 0 0 0)\n(llvm:symbol-entry _init 1408 0 1408 1408)\n(llvm:symbol-entry main 1812 24 1812 1812)\n(llvm:symbol-entry _start 1536 52 1536 1536)\n(llvm:symbol-entry abort@GLIBC_2.17 0 0 0 0)\n(llvm:symbol-entry _fini 1836 0 1836 1836)\n(llvm:symbol-entry __cxa_finalize@GLIBC_2.17 0 0 0 0)\n(llvm:symbol-entry __libc_start_main@GLIBC_2.34 0 0 0 0)\n(llvm:symbol-entry frame_dummy 1808 0 1808 1808)\n(llvm:symbol-entry __do_global_dtors_aux 1728 0 1728 1728)\n(llvm:symbol-entry register_tm_clones 1664 0 1664 1664)\n(llvm:symbol-entry deregister_tm_clones 1616 0 1616 1616)\n(llvm:symbol-entry call_weak_fn 1588 20 1588 1588)\n(mapped 0 2080 0)\n(mapped 69016 632 3480)\n(named-region 0 2080 02)\n(named-region 69016 648 03)\n(named-region 568 27 .interp)\n(named-region 596 36 .note.gnu.build-id)\n(named-region 632 32 .note.ABI-tag)\n(named-region 664 28 .gnu.hash)\n(named-region 696 216 .dynsym)\n(named-region 912 141 .dynstr)\n(named-region 1054 18 .gnu.version)\n(named-region 1072 48 .gnu.version_r)\n(named-region 1120 192 .rela.dyn)\n(named-region 1312 96 .rela.plt)\n(named-region 1408 24 .init)\n(named-region 1440 96 .plt)\n(named-region 1536 300 .text)\n(named-region 1836 20 .fini)\n(named-region 1856 4 .rodata)\n(named-region 1860 60 .eh_frame_hdr)\n(named-region 1920 160 .eh_frame)\n(named-region 69016 8 .init_array)\n(named-region 69024 8 .fini_array)\n(named-region 69032 496 .dynamic)\n(named-region 69528 104 .got)\n(named-region 69632 16 .data)\n(named-region 69648 16 .bss)\n(named-region 0 43 .comment)\n(named-region 0 2136 .symtab)\n(named-region 0 560 .strtab)\n(named-region 0 250 .shstrtab)\n(named-symbol 1588 call_weak_fn)\n(named-symbol 1616 deregister_tm_clones)\n(named-symbol 1664 register_tm_clones)\n(named-symbol 1728 __do_global_dtors_aux)\n(named-symbol 1808 frame_dummy)\n(named-symbol 0 __libc_start_main@GLIBC_2.34)\n(named-symbol 0 __cxa_finalize@GLIBC_2.17)\n(named-symbol 1836 _fini)\n(named-symbol 0 abort@GLIBC_2.17)\n(named-symbol 1536 _start)\n(named-symbol 1812 main)\n(named-symbol 1408 _init)\n(named-symbol 0 __libc_start_main)\n(named-symbol 0 __cxa_finalize)\n(named-symbol 0 abort)\n(require libc.so.6)\n(section 568 27)\n(section 596 36)\n(section 632 32)\n(section 664 28)\n(section 696 216)\n(section 912 141)\n(section 1054 18)\n(section 1072 48)\n(section 1120 192)\n(section 1312 96)\n(section 1408 24)\n(section 1440 96)\n(section 1536 300)\n(section 1836 20)\n(section 1856 4)\n(section 1860 60)\n(section 1920 160)\n(section 69016 8)\n(section 69024 8)\n(section 69032 496)\n(section 69528 104)\n(section 69632 16)\n(section 69648 16)\n(section 0 43)\n(section 0 2136)\n(section 0 560)\n(section 0 250)\n(segment 0 2080 true false true)\n(segment 69016 648 true true false)\n(subarch v8)\n(symbol-chunk 1588 20 1588)\n(symbol-chunk 1536 52 1536)\n(symbol-chunk 1812 24 1812)\n(symbol-value 1588 1588)\n(symbol-value 1616 1616)\n(symbol-value 1664 1664)\n(symbol-value 1728 1728)\n(symbol-value 1808 1808)\n(symbol-value 1836 1836)\n(symbol-value 1536 1536)\n(symbol-value 1812 1812)\n(symbol-value 1408 1408)\n(symbol-value 0 0)\n(system \"\")\n(vendor \"\")\n"), -Attr("abi-name","\"aarch64-linux-gnu-elf\"")]), -Sections([Section(".shstrtab", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x00\x06\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xc8\x1b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x38\x00\x09\x00\x40\x00\x1c\x00\x1b\x00\x06\x00\x00\x00\x04\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x04\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x20\x08\x00\x00\x00\x00\x00\x00\x20\x08\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x01\x00\x00\x00\x06\x00\x00\x00\x98\x0d\x00\x00\x00\x00\x00\x00\x98\x0d"), -Section(".strtab", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x00\x06\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xc8\x1b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x38\x00\x09\x00\x40\x00\x1c\x00\x1b\x00\x06\x00\x00\x00\x04\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x04\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x20\x08\x00\x00\x00\x00\x00\x00\x20\x08\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x01\x00\x00\x00\x06\x00\x00\x00\x98\x0d\x00\x00\x00\x00\x00\x00\x98\x0d\x01\x00\x00\x00\x00\x00\x98\x0d\x01\x00\x00\x00\x00\x00\x78\x02\x00\x00\x00\x00\x00\x00\x88\x02\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x02\x00\x00\x00\x06\x00\x00\x00\xa8\x0d\x00\x00\x00\x00\x00\x00\xa8\x0d\x01\x00\x00\x00\x00\x00\xa8\x0d\x01\x00\x00\x00\x00\x00\xf0\x01\x00\x00\x00\x00\x00\x00\xf0\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x04\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x50\xe5\x74\x64\x04\x00\x00\x00\x44\x07\x00\x00\x00\x00\x00\x00\x44\x07\x00\x00\x00\x00\x00\x00\x44\x07\x00\x00\x00\x00\x00\x00\x3c\x00\x00\x00\x00\x00\x00\x00\x3c\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x51\xe5\x74\x64\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x52\xe5\x74\x64\x04\x00\x00\x00\x98\x0d\x00\x00\x00\x00\x00\x00\x98\x0d\x01\x00\x00\x00\x00\x00\x98\x0d\x01\x00\x00\x00\x00\x00\x68\x02\x00\x00\x00\x00\x00\x00\x68\x02\x00\x00\x00\x00\x00\x00"), -Section(".comment", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x00\x06\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xc8\x1b\x00"), -Section(".interp", 0x238, "\x2f\x6c\x69\x62\x2f\x6c\x64\x2d\x6c\x69\x6e\x75\x78\x2d\x61\x61\x72\x63\x68\x36\x34\x2e\x73\x6f\x2e\x31\x00"), -Section(".note.gnu.build-id", 0x254, "\x04\x00\x00\x00\x14\x00\x00\x00\x03\x00\x00\x00\x47\x4e\x55\x00\x41\x01\xc2\x9d\x1e\x1b\xd1\xf7\x87\x38\xb4\x5a\xf7\x8e\x6e\x25\x98\x6e\xfc\x86"), -Section(".note.ABI-tag", 0x278, "\x04\x00\x00\x00\x10\x00\x00\x00\x01\x00\x00\x00\x47\x4e\x55\x00\x00\x00\x00\x00\x03\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00"), -Section(".gnu.hash", 0x298, "\x01\x00\x00\x00\x01\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".dynsym", 0x2B8, "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x0b\x00\x80\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x16\x00\x00\x10\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x48\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x22\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x22\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x73\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".dynstr", 0x390, "\x00\x5f\x5f\x63\x78\x61\x5f\x66\x69\x6e\x61\x6c\x69\x7a\x65\x00\x5f\x5f\x6c\x69\x62\x63\x5f\x73\x74\x61\x72\x74\x5f\x6d\x61\x69\x6e\x00\x61\x62\x6f\x72\x74\x00\x6c\x69\x62\x63\x2e\x73\x6f\x2e\x36\x00\x47\x4c\x49\x42\x43\x5f\x32\x2e\x31\x37\x00\x47\x4c\x49\x42\x43\x5f\x32\x2e\x33\x34\x00\x5f\x49\x54\x4d\x5f\x64\x65\x72\x65\x67\x69\x73\x74\x65\x72\x54\x4d\x43\x6c\x6f\x6e\x65\x54\x61\x62\x6c\x65\x00\x5f\x5f\x67\x6d\x6f\x6e\x5f\x73\x74\x61\x72\x74\x5f\x5f\x00\x5f\x49\x54\x4d\x5f\x72\x65\x67\x69\x73\x74\x65\x72\x54\x4d\x43\x6c\x6f\x6e\x65\x54\x61\x62\x6c\x65\x00"), -Section(".gnu.version", 0x41E, "\x00\x00\x00\x00\x00\x00\x02\x00\x01\x00\x03\x00\x01\x00\x03\x00\x01\x00"), -Section(".gnu.version_r", 0x430, "\x01\x00\x02\x00\x28\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x97\x91\x96\x06\x00\x00\x03\x00\x32\x00\x00\x00\x10\x00\x00\x00\xb4\x91\x96\x06\x00\x00\x02\x00\x3d\x00\x00\x00\x00\x00\x00\x00"), -Section(".rela.dyn", 0x460, "\x98\x0d\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x10\x07\x00\x00\x00\x00\x00\x00\xa0\x0d\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\xc0\x06\x00\x00\x00\x00\x00\x00\xf0\x0f\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x14\x07\x00\x00\x00\x00\x00\x00\x08\x10\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x08\x10\x01\x00\x00\x00\x00\x00\xd8\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe0\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe8\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xf8\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".rela.plt", 0x520, "\xb0\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xb8\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xc0\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xc8\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".init", 0x580, "\x1f\x20\x03\xd5\xfd\x7b\xbf\xa9\xfd\x03\x00\x91\x2a\x00\x00\x94\xfd\x7b\xc1\xa8\xc0\x03\x5f\xd6"), -Section(".plt", 0x5A0, "\xf0\x7b\xbf\xa9\x90\x00\x00\x90\x11\xd6\x47\xf9\x10\xa2\x3e\x91\x20\x02\x1f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x90\x00\x00\x90\x11\xda\x47\xf9\x10\xc2\x3e\x91\x20\x02\x1f\xd6\x90\x00\x00\x90\x11\xde\x47\xf9\x10\xe2\x3e\x91\x20\x02\x1f\xd6\x90\x00\x00\x90\x11\xe2\x47\xf9\x10\x02\x3f\x91\x20\x02\x1f\xd6\x90\x00\x00\x90\x11\xe6\x47\xf9\x10\x22\x3f\x91\x20\x02\x1f\xd6"), -Section(".text", 0x600, "\x1f\x20\x03\xd5\x1d\x00\x80\xd2\x1e\x00\x80\xd2\xe5\x03\x00\xaa\xe1\x03\x40\xf9\xe2\x23\x00\x91\xe6\x03\x00\x91\x80\x00\x00\x90\x00\xf8\x47\xf9\x03\x00\x80\xd2\x04\x00\x80\xd2\xe5\xff\xff\x97\xf0\xff\xff\x97\x80\x00\x00\x90\x00\xf4\x47\xf9\x40\x00\x00\xb4\xe8\xff\xff\x17\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x80\x00\x00\xb0\x00\x40\x00\x91\x81\x00\x00\xb0\x21\x40\x00\x91\x3f\x00\x00\xeb\xc0\x00\x00\x54\x81\x00\x00\x90\x21\xec\x47\xf9\x61\x00\x00\xb4\xf0\x03\x01\xaa\x00\x02\x1f\xd6\xc0\x03\x5f\xd6\x80\x00\x00\xb0\x00\x40\x00\x91\x81\x00\x00\xb0\x21\x40\x00\x91\x21\x00\x00\xcb\x22\xfc\x7f\xd3\x41\x0c\x81\x8b\x21\xfc\x41\x93\xc1\x00\x00\xb4\x82\x00\x00\x90\x42\xfc\x47\xf9\x62\x00\x00\xb4\xf0\x03\x02\xaa\x00\x02\x1f\xd6\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\xfd\x7b\xbe\xa9\xfd\x03\x00\x91\xf3\x0b\x00\xf9\x93\x00\x00\xb0\x60\x42\x40\x39\x40\x01\x00\x35\x80\x00\x00\x90\x00\xf0\x47\xf9\x80\x00\x00\xb4\x80\x00\x00\xb0\x00\x04\x40\xf9\xb9\xff\xff\x97\xd8\xff\xff\x97\x20\x00\x80\x52\x60\x42\x00\x39\xf3\x0b\x40\xf9\xfd\x7b\xc2\xa8\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\xdc\xff\xff\x17\x80\x00\x00\xb0\x00\x50\x00\x91\x21\x00\x80\x52\x01\x00\x00\xb9\x00\x00\x80\x52\xc0\x03\x5f\xd6"), -Section(".fini", 0x72C, "\x1f\x20\x03\xd5\xfd\x7b\xbf\xa9\xfd\x03\x00\x91\xfd\x7b\xc1\xa8\xc0\x03\x5f\xd6"), -Section(".rodata", 0x740, "\x01\x00\x02\x00"), -Section(".eh_frame_hdr", 0x744, "\x01\x1b\x03\x3b\x38\x00\x00\x00\x06\x00\x00\x00\xbc\xfe\xff\xff\x50\x00\x00\x00\x0c\xff\xff\xff\x64\x00\x00\x00\x3c\xff\xff\xff\x78\x00\x00\x00\x7c\xff\xff\xff\x8c\x00\x00\x00\xcc\xff\xff\xff\xb0\x00\x00\x00\xd0\xff\xff\xff\xc4\x00\x00\x00"), -Section(".eh_frame", 0x780, "\x10\x00\x00\x00\x00\x00\x00\x00\x01\x7a\x52\x00\x04\x78\x1e\x01\x1b\x0c\x1f\x00\x10\x00\x00\x00\x18\x00\x00\x00\x64\xfe\xff\xff\x34\x00\x00\x00\x00\x41\x07\x1e\x10\x00\x00\x00\x2c\x00\x00\x00\xa0\xfe\xff\xff\x30\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x40\x00\x00\x00\xbc\xfe\xff\xff\x3c\x00\x00\x00\x00\x00\x00\x00\x20\x00\x00\x00\x54\x00\x00\x00\xe8\xfe\xff\xff\x48\x00\x00\x00\x00\x41\x0e\x20\x9d\x04\x9e\x03\x42\x93\x02\x4e\xde\xdd\xd3\x0e\x00\x00\x00\x00\x10\x00\x00\x00\x78\x00\x00\x00\x14\xff\xff\xff\x04\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x8c\x00\x00\x00\x04\xff\xff\xff\x18\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".fini_array", 0x10DA0, "\xc0\x06\x00\x00\x00\x00\x00\x00"), -Section(".dynamic", 0x10DA8, "\x01\x00\x00\x00\x00\x00\x00\x00\x28\x00\x00\x00\x00\x00\x00\x00\x0c\x00\x00\x00\x00\x00\x00\x00\x80\x05\x00\x00\x00\x00\x00\x00\x0d\x00\x00\x00\x00\x00\x00\x00\x2c\x07\x00\x00\x00\x00\x00\x00\x19\x00\x00\x00\x00\x00\x00\x00\x98\x0d\x01\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x1a\x00\x00\x00\x00\x00\x00\x00\xa0\x0d\x01\x00\x00\x00\x00\x00\x1c\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\xf5\xfe\xff\x6f\x00\x00\x00\x00\x98\x02\x00\x00\x00\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x90\x03\x00\x00\x00\x00\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\xb8\x02\x00\x00\x00\x00\x00\x00\x0a\x00\x00\x00\x00\x00\x00\x00\x8d\x00\x00\x00\x00\x00\x00\x00\x0b\x00\x00\x00\x00\x00\x00\x00\x18\x00\x00\x00\x00\x00\x00\x00\x15\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x98\x0f\x01\x00\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x60\x00\x00\x00\x00\x00\x00\x00\x14\x00\x00\x00\x00\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x17\x00\x00\x00\x00\x00\x00\x00\x20\x05\x00\x00\x00\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x60\x04\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\xc0\x00\x00\x00\x00\x00\x00\x00\x09\x00\x00\x00\x00\x00\x00\x00\x18\x00\x00\x00\x00\x00\x00\x00\x1e\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\xfb\xff\xff\x6f\x00\x00\x00\x00\x01\x00\x00\x08\x00\x00\x00\x00\xfe\xff\xff\x6f\x00\x00\x00\x00\x30\x04\x00\x00\x00\x00\x00\x00\xff\xff\xff\x6f\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\xf0\xff\xff\x6f\x00\x00\x00\x00\x1e\x04\x00\x00\x00\x00\x00\x00\xf9\xff\xff\x6f\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".got", 0x10F98, "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xa0\x05\x00\x00\x00\x00\x00\x00\xa0\x05\x00\x00\x00\x00\x00\x00\xa0\x05\x00\x00\x00\x00\x00\x00\xa0\x05\x00\x00\x00\x00\x00\x00\xa8\x0d\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x14\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".data", 0x11000, "\x00\x00\x00\x00\x00\x00\x00\x00\x08\x10\x01\x00\x00\x00\x00\x00"), -Section(".init_array", 0x10D98, "\x10\x07\x00\x00\x00\x00\x00\x00")]), -Memmap([Annotation(Region(0x0,0x81F), Attr("segment","02 0 2080")), -Annotation(Region(0x600,0x633), Attr("symbol","\"_start\"")), -Annotation(Region(0x0,0xF9), Attr("section","\".shstrtab\"")), -Annotation(Region(0x0,0x22F), Attr("section","\".strtab\"")), -Annotation(Region(0x0,0x2A), Attr("section","\".comment\"")), -Annotation(Region(0x238,0x252), Attr("section","\".interp\"")), -Annotation(Region(0x254,0x277), Attr("section","\".note.gnu.build-id\"")), -Annotation(Region(0x278,0x297), Attr("section","\".note.ABI-tag\"")), -Annotation(Region(0x298,0x2B3), Attr("section","\".gnu.hash\"")), -Annotation(Region(0x2B8,0x38F), Attr("section","\".dynsym\"")), -Annotation(Region(0x390,0x41C), Attr("section","\".dynstr\"")), -Annotation(Region(0x41E,0x42F), Attr("section","\".gnu.version\"")), -Annotation(Region(0x430,0x45F), Attr("section","\".gnu.version_r\"")), -Annotation(Region(0x460,0x51F), Attr("section","\".rela.dyn\"")), -Annotation(Region(0x520,0x57F), Attr("section","\".rela.plt\"")), -Annotation(Region(0x580,0x597), Attr("section","\".init\"")), -Annotation(Region(0x5A0,0x5FF), Attr("section","\".plt\"")), -Annotation(Region(0x580,0x597), Attr("code-region","()")), -Annotation(Region(0x5A0,0x5FF), Attr("code-region","()")), -Annotation(Region(0x600,0x633), Attr("symbol-info","_start 0x600 52")), -Annotation(Region(0x634,0x647), Attr("symbol","\"call_weak_fn\"")), -Annotation(Region(0x634,0x647), Attr("symbol-info","call_weak_fn 0x634 20")), -Annotation(Region(0x600,0x72B), Attr("section","\".text\"")), -Annotation(Region(0x600,0x72B), Attr("code-region","()")), -Annotation(Region(0x714,0x72B), Attr("symbol","\"main\"")), -Annotation(Region(0x714,0x72B), Attr("symbol-info","main 0x714 24")), -Annotation(Region(0x72C,0x73F), Attr("section","\".fini\"")), -Annotation(Region(0x72C,0x73F), Attr("code-region","()")), -Annotation(Region(0x740,0x743), Attr("section","\".rodata\"")), -Annotation(Region(0x744,0x77F), Attr("section","\".eh_frame_hdr\"")), -Annotation(Region(0x780,0x81F), Attr("section","\".eh_frame\"")), -Annotation(Region(0x10D98,0x1100F), Attr("segment","03 0x10D98 648")), -Annotation(Region(0x10DA0,0x10DA7), Attr("section","\".fini_array\"")), -Annotation(Region(0x10DA8,0x10F97), Attr("section","\".dynamic\"")), -Annotation(Region(0x10F98,0x10FFF), Attr("section","\".got\"")), -Annotation(Region(0x11000,0x1100F), Attr("section","\".data\"")), -Annotation(Region(0x10D98,0x10D9F), Attr("section","\".init_array\""))]), -Program(Tid(1_429, "%00000595"), Attrs([]), - Subs([Sub(Tid(1_379, "@__cxa_finalize"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x5D0"), -Attr("stub","()")]), "__cxa_finalize", Args([Arg(Tid(1_430, "%00000596"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("__cxa_finalize_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(795, "@__cxa_finalize"), - Attrs([Attr("address","0x5D0")]), Phis([]), -Defs([Def(Tid(1_043, "%00000413"), Attrs([Attr("address","0x5D0"), -Attr("insn","adrp x16, #65536")]), Var("R16",Imm(64)), Int(65536,64)), -Def(Tid(1_050, "%0000041a"), Attrs([Attr("address","0x5D4"), -Attr("insn","ldr x17, [x16, #0xfb8]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(4024,64)),LittleEndian(),64)), -Def(Tid(1_056, "%00000420"), Attrs([Attr("address","0x5D8"), -Attr("insn","add x16, x16, #0xfb8")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(4024,64)))]), Jmps([Call(Tid(1_061, "%00000425"), - Attrs([Attr("address","0x5DC"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), -Sub(Tid(1_380, "@__do_global_dtors_aux"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x6C0")]), - "__do_global_dtors_aux", Args([Arg(Tid(1_431, "%00000597"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("__do_global_dtors_aux_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(614, "@__do_global_dtors_aux"), - Attrs([Attr("address","0x6C0")]), Phis([]), Defs([Def(Tid(618, "%0000026a"), - Attrs([Attr("address","0x6C0"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("#3",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(18446744073709551584,64))), -Def(Tid(624, "%00000270"), Attrs([Attr("address","0x6C0"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("#3",Imm(64)),Var("R29",Imm(64)),LittleEndian(),64)), -Def(Tid(630, "%00000276"), Attrs([Attr("address","0x6C0"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("#3",Imm(64)),Int(8,64)),Var("R30",Imm(64)),LittleEndian(),64)), -Def(Tid(634, "%0000027a"), Attrs([Attr("address","0x6C0"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("R31",Imm(64)), -Var("#3",Imm(64))), Def(Tid(640, "%00000280"), - Attrs([Attr("address","0x6C4"), Attr("insn","mov x29, sp")]), - Var("R29",Imm(64)), Var("R31",Imm(64))), Def(Tid(648, "%00000288"), - Attrs([Attr("address","0x6C8"), Attr("insn","str x19, [sp, #0x10]")]), - Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(16,64)),Var("R19",Imm(64)),LittleEndian(),64)), -Def(Tid(653, "%0000028d"), Attrs([Attr("address","0x6CC"), -Attr("insn","adrp x19, #69632")]), Var("R19",Imm(64)), Int(69632,64)), -Def(Tid(660, "%00000294"), Attrs([Attr("address","0x6D0"), -Attr("insn","ldrb w0, [x19, #0x10]")]), Var("R0",Imm(64)), -UNSIGNED(64,Load(Var("mem",Mem(64,8)),PLUS(Var("R19",Imm(64)),Int(16,64)),LittleEndian(),8)))]), -Jmps([Goto(Tid(667, "%0000029b"), Attrs([Attr("address","0x6D4"), -Attr("insn","cbnz w0, #0x28")]), - NEQ(Extract(31,0,Var("R0",Imm(64))),Int(0,32)), -Direct(Tid(665, "%00000299"))), Goto(Tid(1_419, "%0000058b"), Attrs([]), - Int(1,1), Direct(Tid(740, "%000002e4")))])), Blk(Tid(740, "%000002e4"), - Attrs([Attr("address","0x6D8")]), Phis([]), Defs([Def(Tid(743, "%000002e7"), - Attrs([Attr("address","0x6D8"), Attr("insn","adrp x0, #65536")]), - Var("R0",Imm(64)), Int(65536,64)), Def(Tid(750, "%000002ee"), - Attrs([Attr("address","0x6DC"), Attr("insn","ldr x0, [x0, #0xfe0]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(4064,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(756, "%000002f4"), Attrs([Attr("address","0x6E0"), -Attr("insn","cbz x0, #0x10")]), EQ(Var("R0",Imm(64)),Int(0,64)), -Direct(Tid(754, "%000002f2"))), Goto(Tid(1_420, "%0000058c"), Attrs([]), - Int(1,1), Direct(Tid(779, "%0000030b")))])), Blk(Tid(779, "%0000030b"), - Attrs([Attr("address","0x6E4")]), Phis([]), Defs([Def(Tid(782, "%0000030e"), - Attrs([Attr("address","0x6E4"), Attr("insn","adrp x0, #69632")]), - Var("R0",Imm(64)), Int(69632,64)), Def(Tid(789, "%00000315"), - Attrs([Attr("address","0x6E8"), Attr("insn","ldr x0, [x0, #0x8]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(794, "%0000031a"), Attrs([Attr("address","0x6EC"), -Attr("insn","bl #-0x11c")]), Var("R30",Imm(64)), Int(1776,64))]), -Jmps([Call(Tid(797, "%0000031d"), Attrs([Attr("address","0x6EC"), -Attr("insn","bl #-0x11c")]), Int(1,1), -(Direct(Tid(1_379, "@__cxa_finalize")),Direct(Tid(754, "%000002f2"))))])), -Blk(Tid(754, "%000002f2"), Attrs([Attr("address","0x6F0")]), Phis([]), -Defs([Def(Tid(762, "%000002fa"), Attrs([Attr("address","0x6F0"), -Attr("insn","bl #-0xa0")]), Var("R30",Imm(64)), Int(1780,64))]), -Jmps([Call(Tid(764, "%000002fc"), Attrs([Attr("address","0x6F0"), -Attr("insn","bl #-0xa0")]), Int(1,1), -(Direct(Tid(1_393, "@deregister_tm_clones")),Direct(Tid(766, "%000002fe"))))])), -Blk(Tid(766, "%000002fe"), Attrs([Attr("address","0x6F4")]), Phis([]), -Defs([Def(Tid(769, "%00000301"), Attrs([Attr("address","0x6F4"), -Attr("insn","mov w0, #0x1")]), Var("R0",Imm(64)), Int(1,64)), -Def(Tid(777, "%00000309"), Attrs([Attr("address","0x6F8"), -Attr("insn","strb w0, [x19, #0x10]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R19",Imm(64)),Int(16,64)),Extract(7,0,Var("R0",Imm(64))),LittleEndian(),8))]), -Jmps([Goto(Tid(1_421, "%0000058d"), Attrs([]), Int(1,1), -Direct(Tid(665, "%00000299")))])), Blk(Tid(665, "%00000299"), - Attrs([Attr("address","0x6FC")]), Phis([]), Defs([Def(Tid(675, "%000002a3"), - Attrs([Attr("address","0x6FC"), Attr("insn","ldr x19, [sp, #0x10]")]), - Var("R19",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(16,64)),LittleEndian(),64)), -Def(Tid(682, "%000002aa"), Attrs([Attr("address","0x700"), -Attr("insn","ldp x29, x30, [sp], #0x20")]), Var("R29",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(687, "%000002af"), Attrs([Attr("address","0x700"), -Attr("insn","ldp x29, x30, [sp], #0x20")]), Var("R30",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(691, "%000002b3"), Attrs([Attr("address","0x700"), -Attr("insn","ldp x29, x30, [sp], #0x20")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(32,64)))]), Jmps([Call(Tid(696, "%000002b8"), - Attrs([Attr("address","0x704"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), Sub(Tid(1_384, "@__libc_start_main"), - Attrs([Attr("c.proto","signed (*)(signed (*)(signed , char** , char** );* main, signed , char** , \nvoid* auxv)"), -Attr("address","0x5C0"), Attr("stub","()")]), "__libc_start_main", - Args([Arg(Tid(1_432, "%00000598"), - Attrs([Attr("c.layout","**[ : 64]"), -Attr("c.data","Top:u64 ptr ptr"), -Attr("c.type","signed (*)(signed , char** , char** );*")]), - Var("__libc_start_main_main",Imm(64)), Var("R0",Imm(64)), In()), -Arg(Tid(1_433, "%00000599"), Attrs([Attr("c.layout","[signed : 32]"), -Attr("c.data","Top:u32"), Attr("c.type","signed")]), - Var("__libc_start_main_arg2",Imm(32)), LOW(32,Var("R1",Imm(64))), In()), -Arg(Tid(1_434, "%0000059a"), Attrs([Attr("c.layout","**[char : 8]"), -Attr("c.data","Top:u8 ptr ptr"), Attr("c.type","char**")]), - Var("__libc_start_main_arg3",Imm(64)), Var("R2",Imm(64)), Both()), -Arg(Tid(1_435, "%0000059b"), Attrs([Attr("c.layout","*[ : 8]"), -Attr("c.data","{} ptr"), Attr("c.type","void*")]), - Var("__libc_start_main_auxv",Imm(64)), Var("R3",Imm(64)), Both()), -Arg(Tid(1_436, "%0000059c"), Attrs([Attr("c.layout","[signed : 32]"), -Attr("c.data","Top:u32"), Attr("c.type","signed")]), - Var("__libc_start_main_result",Imm(32)), LOW(32,Var("R0",Imm(64))), -Out())]), Blks([Blk(Tid(447, "@__libc_start_main"), - Attrs([Attr("address","0x5C0")]), Phis([]), -Defs([Def(Tid(1_021, "%000003fd"), Attrs([Attr("address","0x5C0"), -Attr("insn","adrp x16, #65536")]), Var("R16",Imm(64)), Int(65536,64)), -Def(Tid(1_028, "%00000404"), Attrs([Attr("address","0x5C4"), -Attr("insn","ldr x17, [x16, #0xfb0]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(4016,64)),LittleEndian(),64)), -Def(Tid(1_034, "%0000040a"), Attrs([Attr("address","0x5C8"), -Attr("insn","add x16, x16, #0xfb0")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(4016,64)))]), Jmps([Call(Tid(1_039, "%0000040f"), - Attrs([Attr("address","0x5CC"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), Sub(Tid(1_385, "@_fini"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x72C")]), - "_fini", Args([Arg(Tid(1_437, "%0000059d"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("_fini_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(31, "@_fini"), - Attrs([Attr("address","0x72C")]), Phis([]), Defs([Def(Tid(37, "%00000025"), - Attrs([Attr("address","0x730"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("#0",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(18446744073709551600,64))), -Def(Tid(43, "%0000002b"), Attrs([Attr("address","0x730"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("#0",Imm(64)),Var("R29",Imm(64)),LittleEndian(),64)), -Def(Tid(49, "%00000031"), Attrs([Attr("address","0x730"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("#0",Imm(64)),Int(8,64)),Var("R30",Imm(64)),LittleEndian(),64)), -Def(Tid(53, "%00000035"), Attrs([Attr("address","0x730"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("R31",Imm(64)), -Var("#0",Imm(64))), Def(Tid(59, "%0000003b"), Attrs([Attr("address","0x734"), -Attr("insn","mov x29, sp")]), Var("R29",Imm(64)), Var("R31",Imm(64))), -Def(Tid(66, "%00000042"), Attrs([Attr("address","0x738"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R29",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(71, "%00000047"), Attrs([Attr("address","0x738"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R30",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(75, "%0000004b"), Attrs([Attr("address","0x738"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(16,64)))]), Jmps([Call(Tid(80, "%00000050"), - Attrs([Attr("address","0x73C"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), Sub(Tid(1_386, "@_init"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x580")]), - "_init", Args([Arg(Tid(1_438, "%0000059e"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("_init_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(1_215, "@_init"), - Attrs([Attr("address","0x580")]), Phis([]), -Defs([Def(Tid(1_221, "%000004c5"), Attrs([Attr("address","0x584"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("#5",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(18446744073709551600,64))), -Def(Tid(1_227, "%000004cb"), Attrs([Attr("address","0x584"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("#5",Imm(64)),Var("R29",Imm(64)),LittleEndian(),64)), -Def(Tid(1_233, "%000004d1"), Attrs([Attr("address","0x584"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("#5",Imm(64)),Int(8,64)),Var("R30",Imm(64)),LittleEndian(),64)), -Def(Tid(1_237, "%000004d5"), Attrs([Attr("address","0x584"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("R31",Imm(64)), -Var("#5",Imm(64))), Def(Tid(1_243, "%000004db"), - Attrs([Attr("address","0x588"), Attr("insn","mov x29, sp")]), - Var("R29",Imm(64)), Var("R31",Imm(64))), Def(Tid(1_248, "%000004e0"), - Attrs([Attr("address","0x58C"), Attr("insn","bl #0xa8")]), - Var("R30",Imm(64)), Int(1424,64))]), Jmps([Call(Tid(1_250, "%000004e2"), - Attrs([Attr("address","0x58C"), Attr("insn","bl #0xa8")]), Int(1,1), -(Direct(Tid(1_391, "@call_weak_fn")),Direct(Tid(1_252, "%000004e4"))))])), -Blk(Tid(1_252, "%000004e4"), Attrs([Attr("address","0x590")]), Phis([]), -Defs([Def(Tid(1_257, "%000004e9"), Attrs([Attr("address","0x590"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R29",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(1_262, "%000004ee"), Attrs([Attr("address","0x590"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R30",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(1_266, "%000004f2"), Attrs([Attr("address","0x590"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(16,64)))]), Jmps([Call(Tid(1_271, "%000004f7"), - Attrs([Attr("address","0x594"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), Sub(Tid(1_387, "@_start"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x600"), -Attr("stub","()"), Attr("entry-point","()")]), "_start", - Args([Arg(Tid(1_439, "%0000059f"), Attrs([Attr("c.layout","[signed : 32]"), -Attr("c.data","Top:u32"), Attr("c.type","signed")]), - Var("_start_result",Imm(32)), LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(384, "@_start"), Attrs([Attr("address","0x600")]), Phis([]), -Defs([Def(Tid(389, "%00000185"), Attrs([Attr("address","0x604"), -Attr("insn","mov x29, #0x0")]), Var("R29",Imm(64)), Int(0,64)), -Def(Tid(394, "%0000018a"), Attrs([Attr("address","0x608"), -Attr("insn","mov x30, #0x0")]), Var("R30",Imm(64)), Int(0,64)), -Def(Tid(400, "%00000190"), Attrs([Attr("address","0x60C"), -Attr("insn","mov x5, x0")]), Var("R5",Imm(64)), Var("R0",Imm(64))), -Def(Tid(407, "%00000197"), Attrs([Attr("address","0x610"), -Attr("insn","ldr x1, [sp]")]), Var("R1",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(413, "%0000019d"), Attrs([Attr("address","0x614"), -Attr("insn","add x2, sp, #0x8")]), Var("R2",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(8,64))), Def(Tid(419, "%000001a3"), - Attrs([Attr("address","0x618"), Attr("insn","mov x6, sp")]), - Var("R6",Imm(64)), Var("R31",Imm(64))), Def(Tid(424, "%000001a8"), - Attrs([Attr("address","0x61C"), Attr("insn","adrp x0, #65536")]), - Var("R0",Imm(64)), Int(65536,64)), Def(Tid(431, "%000001af"), - Attrs([Attr("address","0x620"), Attr("insn","ldr x0, [x0, #0xff0]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(4080,64)),LittleEndian(),64)), -Def(Tid(436, "%000001b4"), Attrs([Attr("address","0x624"), -Attr("insn","mov x3, #0x0")]), Var("R3",Imm(64)), Int(0,64)), -Def(Tid(441, "%000001b9"), Attrs([Attr("address","0x628"), -Attr("insn","mov x4, #0x0")]), Var("R4",Imm(64)), Int(0,64)), -Def(Tid(446, "%000001be"), Attrs([Attr("address","0x62C"), -Attr("insn","bl #-0x6c")]), Var("R30",Imm(64)), Int(1584,64))]), -Jmps([Call(Tid(449, "%000001c1"), Attrs([Attr("address","0x62C"), -Attr("insn","bl #-0x6c")]), Int(1,1), -(Direct(Tid(1_384, "@__libc_start_main")),Direct(Tid(451, "%000001c3"))))])), -Blk(Tid(451, "%000001c3"), Attrs([Attr("address","0x630")]), Phis([]), -Defs([Def(Tid(454, "%000001c6"), Attrs([Attr("address","0x630"), -Attr("insn","bl #-0x40")]), Var("R30",Imm(64)), Int(1588,64))]), -Jmps([Call(Tid(457, "%000001c9"), Attrs([Attr("address","0x630"), -Attr("insn","bl #-0x40")]), Int(1,1), -(Direct(Tid(1_390, "@abort")),Direct(Tid(1_422, "%0000058e"))))])), -Blk(Tid(1_422, "%0000058e"), Attrs([]), Phis([]), Defs([]), -Jmps([Call(Tid(1_423, "%0000058f"), Attrs([]), Int(1,1), -(Direct(Tid(1_391, "@call_weak_fn")),))]))])), Sub(Tid(1_390, "@abort"), - Attrs([Attr("noreturn","()"), Attr("c.proto","void (*)(void)"), -Attr("address","0x5F0"), Attr("stub","()")]), "abort", Args([]), -Blks([Blk(Tid(455, "@abort"), Attrs([Attr("address","0x5F0")]), Phis([]), -Defs([Def(Tid(1_087, "%0000043f"), Attrs([Attr("address","0x5F0"), -Attr("insn","adrp x16, #65536")]), Var("R16",Imm(64)), Int(65536,64)), -Def(Tid(1_094, "%00000446"), Attrs([Attr("address","0x5F4"), -Attr("insn","ldr x17, [x16, #0xfc8]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(4040,64)),LittleEndian(),64)), -Def(Tid(1_100, "%0000044c"), Attrs([Attr("address","0x5F8"), -Attr("insn","add x16, x16, #0xfc8")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(4040,64)))]), Jmps([Call(Tid(1_105, "%00000451"), - Attrs([Attr("address","0x5FC"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), Sub(Tid(1_391, "@call_weak_fn"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x634")]), - "call_weak_fn", Args([Arg(Tid(1_440, "%000005a0"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("call_weak_fn_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(459, "@call_weak_fn"), - Attrs([Attr("address","0x634")]), Phis([]), Defs([Def(Tid(462, "%000001ce"), - Attrs([Attr("address","0x634"), Attr("insn","adrp x0, #65536")]), - Var("R0",Imm(64)), Int(65536,64)), Def(Tid(469, "%000001d5"), - Attrs([Attr("address","0x638"), Attr("insn","ldr x0, [x0, #0xfe8]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(4072,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(475, "%000001db"), Attrs([Attr("address","0x63C"), -Attr("insn","cbz x0, #0x8")]), EQ(Var("R0",Imm(64)),Int(0,64)), -Direct(Tid(473, "%000001d9"))), Goto(Tid(1_424, "%00000590"), Attrs([]), - Int(1,1), Direct(Tid(859, "%0000035b")))])), Blk(Tid(473, "%000001d9"), - Attrs([Attr("address","0x644")]), Phis([]), Defs([]), -Jmps([Call(Tid(481, "%000001e1"), Attrs([Attr("address","0x644"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))])), -Blk(Tid(859, "%0000035b"), Attrs([Attr("address","0x640")]), Phis([]), -Defs([]), Jmps([Goto(Tid(862, "%0000035e"), Attrs([Attr("address","0x640"), -Attr("insn","b #-0x60")]), Int(1,1), Direct(Tid(860, "@__gmon_start__")))])), -Blk(Tid(860, "@__gmon_start__"), Attrs([Attr("address","0x5E0")]), Phis([]), -Defs([Def(Tid(1_065, "%00000429"), Attrs([Attr("address","0x5E0"), -Attr("insn","adrp x16, #65536")]), Var("R16",Imm(64)), Int(65536,64)), -Def(Tid(1_072, "%00000430"), Attrs([Attr("address","0x5E4"), -Attr("insn","ldr x17, [x16, #0xfc0]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(4032,64)),LittleEndian(),64)), -Def(Tid(1_078, "%00000436"), Attrs([Attr("address","0x5E8"), -Attr("insn","add x16, x16, #0xfc0")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(4032,64)))]), Jmps([Call(Tid(1_083, "%0000043b"), - Attrs([Attr("address","0x5EC"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), -Sub(Tid(1_393, "@deregister_tm_clones"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x650")]), - "deregister_tm_clones", Args([Arg(Tid(1_441, "%000005a1"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("deregister_tm_clones_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(487, "@deregister_tm_clones"), - Attrs([Attr("address","0x650")]), Phis([]), Defs([Def(Tid(490, "%000001ea"), - Attrs([Attr("address","0x650"), Attr("insn","adrp x0, #69632")]), - Var("R0",Imm(64)), Int(69632,64)), Def(Tid(496, "%000001f0"), - Attrs([Attr("address","0x654"), Attr("insn","add x0, x0, #0x10")]), - Var("R0",Imm(64)), PLUS(Var("R0",Imm(64)),Int(16,64))), -Def(Tid(501, "%000001f5"), Attrs([Attr("address","0x658"), -Attr("insn","adrp x1, #69632")]), Var("R1",Imm(64)), Int(69632,64)), -Def(Tid(507, "%000001fb"), Attrs([Attr("address","0x65C"), -Attr("insn","add x1, x1, #0x10")]), Var("R1",Imm(64)), -PLUS(Var("R1",Imm(64)),Int(16,64))), Def(Tid(513, "%00000201"), - Attrs([Attr("address","0x660"), Attr("insn","cmp x1, x0")]), - Var("#1",Imm(64)), NOT(Var("R0",Imm(64)))), Def(Tid(518, "%00000206"), - Attrs([Attr("address","0x660"), Attr("insn","cmp x1, x0")]), - Var("#2",Imm(64)), PLUS(Var("R1",Imm(64)),NOT(Var("R0",Imm(64))))), -Def(Tid(524, "%0000020c"), Attrs([Attr("address","0x660"), -Attr("insn","cmp x1, x0")]), Var("VF",Imm(1)), -NEQ(SIGNED(65,PLUS(Var("#2",Imm(64)),Int(1,64))),PLUS(PLUS(SIGNED(65,Var("R1",Imm(64))),SIGNED(65,Var("#1",Imm(64)))),Int(1,65)))), -Def(Tid(530, "%00000212"), Attrs([Attr("address","0x660"), -Attr("insn","cmp x1, x0")]), Var("CF",Imm(1)), -NEQ(UNSIGNED(65,PLUS(Var("#2",Imm(64)),Int(1,64))),PLUS(PLUS(UNSIGNED(65,Var("R1",Imm(64))),UNSIGNED(65,Var("#1",Imm(64)))),Int(1,65)))), -Def(Tid(534, "%00000216"), Attrs([Attr("address","0x660"), -Attr("insn","cmp x1, x0")]), Var("ZF",Imm(1)), -EQ(PLUS(Var("#2",Imm(64)),Int(1,64)),Int(0,64))), Def(Tid(538, "%0000021a"), - Attrs([Attr("address","0x660"), Attr("insn","cmp x1, x0")]), - Var("NF",Imm(1)), Extract(63,63,PLUS(Var("#2",Imm(64)),Int(1,64))))]), -Jmps([Goto(Tid(544, "%00000220"), Attrs([Attr("address","0x664"), -Attr("insn","b.eq #0x18")]), EQ(Var("ZF",Imm(1)),Int(1,1)), -Direct(Tid(542, "%0000021e"))), Goto(Tid(1_425, "%00000591"), Attrs([]), - Int(1,1), Direct(Tid(829, "%0000033d")))])), Blk(Tid(829, "%0000033d"), - Attrs([Attr("address","0x668")]), Phis([]), Defs([Def(Tid(832, "%00000340"), - Attrs([Attr("address","0x668"), Attr("insn","adrp x1, #65536")]), - Var("R1",Imm(64)), Int(65536,64)), Def(Tid(839, "%00000347"), - Attrs([Attr("address","0x66C"), Attr("insn","ldr x1, [x1, #0xfd8]")]), - Var("R1",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R1",Imm(64)),Int(4056,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(844, "%0000034c"), Attrs([Attr("address","0x670"), -Attr("insn","cbz x1, #0xc")]), EQ(Var("R1",Imm(64)),Int(0,64)), -Direct(Tid(542, "%0000021e"))), Goto(Tid(1_426, "%00000592"), Attrs([]), - Int(1,1), Direct(Tid(848, "%00000350")))])), Blk(Tid(542, "%0000021e"), - Attrs([Attr("address","0x67C")]), Phis([]), Defs([]), -Jmps([Call(Tid(550, "%00000226"), Attrs([Attr("address","0x67C"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))])), -Blk(Tid(848, "%00000350"), Attrs([Attr("address","0x674")]), Phis([]), -Defs([Def(Tid(852, "%00000354"), Attrs([Attr("address","0x674"), -Attr("insn","mov x16, x1")]), Var("R16",Imm(64)), Var("R1",Imm(64)))]), -Jmps([Call(Tid(857, "%00000359"), Attrs([Attr("address","0x678"), -Attr("insn","br x16")]), Int(1,1), (Indirect(Var("R16",Imm(64))),))]))])), -Sub(Tid(1_396, "@frame_dummy"), Attrs([Attr("c.proto","signed (*)(void)"), -Attr("address","0x710")]), "frame_dummy", Args([Arg(Tid(1_442, "%000005a2"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("frame_dummy_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(702, "@frame_dummy"), - Attrs([Attr("address","0x710")]), Phis([]), Defs([]), -Jmps([Call(Tid(704, "%000002c0"), Attrs([Attr("address","0x710"), -Attr("insn","b #-0x90")]), Int(1,1), -(Direct(Tid(1_398, "@register_tm_clones")),))]))])), Sub(Tid(1_397, "@main"), - Attrs([Attr("c.proto","signed (*)(signed argc, const char** argv)"), -Attr("address","0x714")]), "main", Args([Arg(Tid(1_443, "%000005a3"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("main_argc",Imm(32)), -LOW(32,Var("R0",Imm(64))), In()), Arg(Tid(1_444, "%000005a4"), - Attrs([Attr("c.layout","**[char : 8]"), Attr("c.data","Top:u8 ptr ptr"), -Attr("c.type"," const char**")]), Var("main_argv",Imm(64)), -Var("R1",Imm(64)), Both()), Arg(Tid(1_445, "%000005a5"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("main_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(706, "@main"), - Attrs([Attr("address","0x714")]), Phis([]), Defs([Def(Tid(709, "%000002c5"), - Attrs([Attr("address","0x714"), Attr("insn","adrp x0, #69632")]), - Var("R0",Imm(64)), Int(69632,64)), Def(Tid(715, "%000002cb"), - Attrs([Attr("address","0x718"), Attr("insn","add x0, x0, #0x14")]), - Var("R0",Imm(64)), PLUS(Var("R0",Imm(64)),Int(20,64))), -Def(Tid(720, "%000002d0"), Attrs([Attr("address","0x71C"), -Attr("insn","mov w1, #0x1")]), Var("R1",Imm(64)), Int(1,64)), -Def(Tid(728, "%000002d8"), Attrs([Attr("address","0x720"), -Attr("insn","str w1, [x0]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("R0",Imm(64)),Extract(31,0,Var("R1",Imm(64))),LittleEndian(),32)), -Def(Tid(733, "%000002dd"), Attrs([Attr("address","0x724"), -Attr("insn","mov w0, #0x0")]), Var("R0",Imm(64)), Int(0,64))]), -Jmps([Call(Tid(738, "%000002e2"), Attrs([Attr("address","0x728"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))]))])), -Sub(Tid(1_398, "@register_tm_clones"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x680")]), - "register_tm_clones", Args([Arg(Tid(1_446, "%000005a6"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("register_tm_clones_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(552, "@register_tm_clones"), Attrs([Attr("address","0x680")]), - Phis([]), Defs([Def(Tid(555, "%0000022b"), Attrs([Attr("address","0x680"), -Attr("insn","adrp x0, #69632")]), Var("R0",Imm(64)), Int(69632,64)), -Def(Tid(561, "%00000231"), Attrs([Attr("address","0x684"), -Attr("insn","add x0, x0, #0x10")]), Var("R0",Imm(64)), -PLUS(Var("R0",Imm(64)),Int(16,64))), Def(Tid(566, "%00000236"), - Attrs([Attr("address","0x688"), Attr("insn","adrp x1, #69632")]), - Var("R1",Imm(64)), Int(69632,64)), Def(Tid(572, "%0000023c"), - Attrs([Attr("address","0x68C"), Attr("insn","add x1, x1, #0x10")]), - Var("R1",Imm(64)), PLUS(Var("R1",Imm(64)),Int(16,64))), -Def(Tid(579, "%00000243"), Attrs([Attr("address","0x690"), -Attr("insn","sub x1, x1, x0")]), Var("R1",Imm(64)), -PLUS(PLUS(Var("R1",Imm(64)),NOT(Var("R0",Imm(64)))),Int(1,64))), -Def(Tid(585, "%00000249"), Attrs([Attr("address","0x694"), -Attr("insn","lsr x2, x1, #63")]), Var("R2",Imm(64)), -Concat(Int(0,63),Extract(63,63,Var("R1",Imm(64))))), -Def(Tid(592, "%00000250"), Attrs([Attr("address","0x698"), -Attr("insn","add x1, x2, x1, asr #3")]), Var("R1",Imm(64)), -PLUS(Var("R2",Imm(64)),ARSHIFT(Var("R1",Imm(64)),Int(3,3)))), -Def(Tid(598, "%00000256"), Attrs([Attr("address","0x69C"), -Attr("insn","asr x1, x1, #1")]), Var("R1",Imm(64)), -SIGNED(64,Extract(63,1,Var("R1",Imm(64)))))]), -Jmps([Goto(Tid(604, "%0000025c"), Attrs([Attr("address","0x6A0"), -Attr("insn","cbz x1, #0x18")]), EQ(Var("R1",Imm(64)),Int(0,64)), -Direct(Tid(602, "%0000025a"))), Goto(Tid(1_427, "%00000593"), Attrs([]), - Int(1,1), Direct(Tid(799, "%0000031f")))])), Blk(Tid(799, "%0000031f"), - Attrs([Attr("address","0x6A4")]), Phis([]), Defs([Def(Tid(802, "%00000322"), - Attrs([Attr("address","0x6A4"), Attr("insn","adrp x2, #65536")]), - Var("R2",Imm(64)), Int(65536,64)), Def(Tid(809, "%00000329"), - Attrs([Attr("address","0x6A8"), Attr("insn","ldr x2, [x2, #0xff8]")]), - Var("R2",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R2",Imm(64)),Int(4088,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(814, "%0000032e"), Attrs([Attr("address","0x6AC"), -Attr("insn","cbz x2, #0xc")]), EQ(Var("R2",Imm(64)),Int(0,64)), -Direct(Tid(602, "%0000025a"))), Goto(Tid(1_428, "%00000594"), Attrs([]), - Int(1,1), Direct(Tid(818, "%00000332")))])), Blk(Tid(602, "%0000025a"), - Attrs([Attr("address","0x6B8")]), Phis([]), Defs([]), -Jmps([Call(Tid(610, "%00000262"), Attrs([Attr("address","0x6B8"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))])), -Blk(Tid(818, "%00000332"), Attrs([Attr("address","0x6B0")]), Phis([]), -Defs([Def(Tid(822, "%00000336"), Attrs([Attr("address","0x6B0"), -Attr("insn","mov x16, x2")]), Var("R16",Imm(64)), Var("R2",Imm(64)))]), -Jmps([Call(Tid(827, "%0000033b"), Attrs([Attr("address","0x6B4"), -Attr("insn","br x16")]), Int(1,1), -(Indirect(Var("R16",Imm(64))),))]))]))]))) \ No newline at end of file diff --git a/src/test/correct/no_interference_update_x/gcc/no_interference_update_x.bir b/src/test/correct/no_interference_update_x/gcc/no_interference_update_x.bir deleted file mode 100644 index 50b6c47f6..000000000 --- a/src/test/correct/no_interference_update_x/gcc/no_interference_update_x.bir +++ /dev/null @@ -1,228 +0,0 @@ -00000595: program -00000563: sub __cxa_finalize(__cxa_finalize_result) -00000596: __cxa_finalize_result :: out u32 = low:32[R0] - -0000031b: -00000413: R16 := 0x10000 -0000041a: R17 := mem[R16 + 0xFB8, el]:u64 -00000420: R16 := R16 + 0xFB8 -00000425: call R17 with noreturn - -00000564: sub __do_global_dtors_aux(__do_global_dtors_aux_result) -00000597: __do_global_dtors_aux_result :: out u32 = low:32[R0] - -00000266: -0000026a: #3 := R31 - 0x20 -00000270: mem := mem with [#3, el]:u64 <- R29 -00000276: mem := mem with [#3 + 8, el]:u64 <- R30 -0000027a: R31 := #3 -00000280: R29 := R31 -00000288: mem := mem with [R31 + 0x10, el]:u64 <- R19 -0000028d: R19 := 0x11000 -00000294: R0 := pad:64[mem[R19 + 0x10]] -0000029b: when 31:0[R0] <> 0 goto %00000299 -0000058b: goto %000002e4 - -000002e4: -000002e7: R0 := 0x10000 -000002ee: R0 := mem[R0 + 0xFE0, el]:u64 -000002f4: when R0 = 0 goto %000002f2 -0000058c: goto %0000030b - -0000030b: -0000030e: R0 := 0x11000 -00000315: R0 := mem[R0 + 8, el]:u64 -0000031a: R30 := 0x6F0 -0000031d: call @__cxa_finalize with return %000002f2 - -000002f2: -000002fa: R30 := 0x6F4 -000002fc: call @deregister_tm_clones with return %000002fe - -000002fe: -00000301: R0 := 1 -00000309: mem := mem with [R19 + 0x10] <- 7:0[R0] -0000058d: goto %00000299 - -00000299: -000002a3: R19 := mem[R31 + 0x10, el]:u64 -000002aa: R29 := mem[R31, el]:u64 -000002af: R30 := mem[R31 + 8, el]:u64 -000002b3: R31 := R31 + 0x20 -000002b8: call R30 with noreturn - -00000568: sub __libc_start_main(__libc_start_main_main, __libc_start_main_arg2, __libc_start_main_arg3, __libc_start_main_auxv, __libc_start_main_result) -00000598: __libc_start_main_main :: in u64 = R0 -00000599: __libc_start_main_arg2 :: in u32 = low:32[R1] -0000059a: __libc_start_main_arg3 :: in out u64 = R2 -0000059b: __libc_start_main_auxv :: in out u64 = R3 -0000059c: __libc_start_main_result :: out u32 = low:32[R0] - -000001bf: -000003fd: R16 := 0x10000 -00000404: R17 := mem[R16 + 0xFB0, el]:u64 -0000040a: R16 := R16 + 0xFB0 -0000040f: call R17 with noreturn - -00000569: sub _fini(_fini_result) -0000059d: _fini_result :: out u32 = low:32[R0] - -0000001f: -00000025: #0 := R31 - 0x10 -0000002b: mem := mem with [#0, el]:u64 <- R29 -00000031: mem := mem with [#0 + 8, el]:u64 <- R30 -00000035: R31 := #0 -0000003b: R29 := R31 -00000042: R29 := mem[R31, el]:u64 -00000047: R30 := mem[R31 + 8, el]:u64 -0000004b: R31 := R31 + 0x10 -00000050: call R30 with noreturn - -0000056a: sub _init(_init_result) -0000059e: _init_result :: out u32 = low:32[R0] - -000004bf: -000004c5: #5 := R31 - 0x10 -000004cb: mem := mem with [#5, el]:u64 <- R29 -000004d1: mem := mem with [#5 + 8, el]:u64 <- R30 -000004d5: R31 := #5 -000004db: R29 := R31 -000004e0: R30 := 0x590 -000004e2: call @call_weak_fn with return %000004e4 - -000004e4: -000004e9: R29 := mem[R31, el]:u64 -000004ee: R30 := mem[R31 + 8, el]:u64 -000004f2: R31 := R31 + 0x10 -000004f7: call R30 with noreturn - -0000056b: sub _start(_start_result) -0000059f: _start_result :: out u32 = low:32[R0] - -00000180: -00000185: R29 := 0 -0000018a: R30 := 0 -00000190: R5 := R0 -00000197: R1 := mem[R31, el]:u64 -0000019d: R2 := R31 + 8 -000001a3: R6 := R31 -000001a8: R0 := 0x10000 -000001af: R0 := mem[R0 + 0xFF0, el]:u64 -000001b4: R3 := 0 -000001b9: R4 := 0 -000001be: R30 := 0x630 -000001c1: call @__libc_start_main with return %000001c3 - -000001c3: -000001c6: R30 := 0x634 -000001c9: call @abort with return %0000058e - -0000058e: -0000058f: call @call_weak_fn with noreturn - -0000056e: sub abort() - - -000001c7: -0000043f: R16 := 0x10000 -00000446: R17 := mem[R16 + 0xFC8, el]:u64 -0000044c: R16 := R16 + 0xFC8 -00000451: call R17 with noreturn - -0000056f: sub call_weak_fn(call_weak_fn_result) -000005a0: call_weak_fn_result :: out u32 = low:32[R0] - -000001cb: -000001ce: R0 := 0x10000 -000001d5: R0 := mem[R0 + 0xFE8, el]:u64 -000001db: when R0 = 0 goto %000001d9 -00000590: goto %0000035b - -000001d9: -000001e1: call R30 with noreturn - -0000035b: -0000035e: goto @__gmon_start__ - -0000035c: -00000429: R16 := 0x10000 -00000430: R17 := mem[R16 + 0xFC0, el]:u64 -00000436: R16 := R16 + 0xFC0 -0000043b: call R17 with noreturn - -00000571: sub deregister_tm_clones(deregister_tm_clones_result) -000005a1: deregister_tm_clones_result :: out u32 = low:32[R0] - -000001e7: -000001ea: R0 := 0x11000 -000001f0: R0 := R0 + 0x10 -000001f5: R1 := 0x11000 -000001fb: R1 := R1 + 0x10 -00000201: #1 := ~R0 -00000206: #2 := R1 + ~R0 -0000020c: VF := extend:65[#2 + 1] <> extend:65[R1] + extend:65[#1] + 1 -00000212: CF := pad:65[#2 + 1] <> pad:65[R1] + pad:65[#1] + 1 -00000216: ZF := #2 + 1 = 0 -0000021a: NF := 63:63[#2 + 1] -00000220: when ZF goto %0000021e -00000591: goto %0000033d - -0000033d: -00000340: R1 := 0x10000 -00000347: R1 := mem[R1 + 0xFD8, el]:u64 -0000034c: when R1 = 0 goto %0000021e -00000592: goto %00000350 - -0000021e: -00000226: call R30 with noreturn - -00000350: -00000354: R16 := R1 -00000359: call R16 with noreturn - -00000574: sub frame_dummy(frame_dummy_result) -000005a2: frame_dummy_result :: out u32 = low:32[R0] - -000002be: -000002c0: call @register_tm_clones with noreturn - -00000575: sub main(main_argc, main_argv, main_result) -000005a3: main_argc :: in u32 = low:32[R0] -000005a4: main_argv :: in out u64 = R1 -000005a5: main_result :: out u32 = low:32[R0] - -000002c2: -000002c5: R0 := 0x11000 -000002cb: R0 := R0 + 0x14 -000002d0: R1 := 1 -000002d8: mem := mem with [R0, el]:u32 <- 31:0[R1] -000002dd: R0 := 0 -000002e2: call R30 with noreturn - -00000576: sub register_tm_clones(register_tm_clones_result) -000005a6: register_tm_clones_result :: out u32 = low:32[R0] - -00000228: -0000022b: R0 := 0x11000 -00000231: R0 := R0 + 0x10 -00000236: R1 := 0x11000 -0000023c: R1 := R1 + 0x10 -00000243: R1 := R1 + ~R0 + 1 -00000249: R2 := 0.63:63[R1] -00000250: R1 := R2 + (R1 ~>> 3) -00000256: R1 := extend:64[63:1[R1]] -0000025c: when R1 = 0 goto %0000025a -00000593: goto %0000031f - -0000031f: -00000322: R2 := 0x10000 -00000329: R2 := mem[R2 + 0xFF8, el]:u64 -0000032e: when R2 = 0 goto %0000025a -00000594: goto %00000332 - -0000025a: -00000262: call R30 with noreturn - -00000332: -00000336: R16 := R2 -0000033b: call R16 with noreturn diff --git a/src/test/correct/no_interference_update_x/gcc/no_interference_update_x.expected b/src/test/correct/no_interference_update_x/gcc/no_interference_update_x.expected index 81290fe00..e88a5a93e 100644 --- a/src/test/correct/no_interference_update_x/gcc/no_interference_update_x.expected +++ b/src/test/correct/no_interference_update_x/gcc/no_interference_update_x.expected @@ -64,7 +64,7 @@ implementation {:extern} guarantee_reflexive() assert (memory_load32_le(mem, $y_addr) == memory_load32_le(mem, $y_addr)); } -procedure main_1812(); +procedure main(); modifies Gamma_R0, Gamma_R1, Gamma_mem, R0, R1, mem; free requires (memory_load64_le(mem, 69632bv64) == 0bv64); free requires (memory_load64_le(mem, 69640bv64) == 69640bv64); @@ -80,7 +80,7 @@ procedure main_1812(); free ensures (memory_load64_le(mem, 69616bv64) == 1812bv64); free ensures (memory_load64_le(mem, 69640bv64) == 69640bv64); -implementation main_1812() +implementation main() { var y_old: bv32; lmain: @@ -89,15 +89,15 @@ implementation main_1812() R0, Gamma_R0 := bvadd64(R0, 20bv64), Gamma_R0; R1, Gamma_R1 := 1bv64, true; call rely(); - y_old := memory_load32_le(mem, $y_addr); assert (L(mem, R0) ==> Gamma_R1); + y_old := memory_load32_le(mem, $y_addr); mem, Gamma_mem := memory_store32_le(mem, R0, R1[32:0]), gamma_store32(Gamma_mem, R0, Gamma_R1); assert (memory_load32_le(mem, $y_addr) == y_old); assume {:captureState "%000002d8"} true; R0, Gamma_R0 := 0bv64, true; - goto main_1812_basil_return; - main_1812_basil_return: - assume {:captureState "main_1812_basil_return"} true; + goto main_basil_return; + main_basil_return: + assume {:captureState "main_basil_return"} true; return; } diff --git a/src/test/correct/no_interference_update_x/gcc/no_interference_update_x.gts b/src/test/correct/no_interference_update_x/gcc/no_interference_update_x.gts deleted file mode 100644 index 63b0d03c7..000000000 Binary files a/src/test/correct/no_interference_update_x/gcc/no_interference_update_x.gts and /dev/null differ diff --git a/src/test/correct/no_interference_update_x/gcc/no_interference_update_x.md5sum b/src/test/correct/no_interference_update_x/gcc/no_interference_update_x.md5sum new file mode 100644 index 000000000..076428b4b --- /dev/null +++ b/src/test/correct/no_interference_update_x/gcc/no_interference_update_x.md5sum @@ -0,0 +1,5 @@ +8f803dcdee791746d88ba438b7f67958 correct/no_interference_update_x/gcc/a.out +4f34aff46fda0fdb19563eb04f4f0066 correct/no_interference_update_x/gcc/no_interference_update_x.adt +8d4cb1a4be235cf0cf15e39ffc7e4432 correct/no_interference_update_x/gcc/no_interference_update_x.bir +7a81cca71e84da3885de716aa3695567 correct/no_interference_update_x/gcc/no_interference_update_x.relf +71700c4d1e6accb06c1b506dcbbba074 correct/no_interference_update_x/gcc/no_interference_update_x.gts diff --git a/src/test/correct/no_interference_update_x/gcc/no_interference_update_x.relf b/src/test/correct/no_interference_update_x/gcc/no_interference_update_x.relf deleted file mode 100644 index a8e0b1a2d..000000000 --- a/src/test/correct/no_interference_update_x/gcc/no_interference_update_x.relf +++ /dev/null @@ -1,122 +0,0 @@ - -Relocation section '.rela.dyn' at offset 0x460 contains 8 entries: - Offset Info Type Symbol's Value Symbol's Name + Addend -0000000000010d98 0000000000000403 R_AARCH64_RELATIVE 710 -0000000000010da0 0000000000000403 R_AARCH64_RELATIVE 6c0 -0000000000010ff0 0000000000000403 R_AARCH64_RELATIVE 714 -0000000000011008 0000000000000403 R_AARCH64_RELATIVE 11008 -0000000000010fd8 0000000400000401 R_AARCH64_GLOB_DAT 0000000000000000 _ITM_deregisterTMCloneTable + 0 -0000000000010fe0 0000000500000401 R_AARCH64_GLOB_DAT 0000000000000000 __cxa_finalize@GLIBC_2.17 + 0 -0000000000010fe8 0000000600000401 R_AARCH64_GLOB_DAT 0000000000000000 __gmon_start__ + 0 -0000000000010ff8 0000000800000401 R_AARCH64_GLOB_DAT 0000000000000000 _ITM_registerTMCloneTable + 0 - -Relocation section '.rela.plt' at offset 0x520 contains 4 entries: - Offset Info Type Symbol's Value Symbol's Name + Addend -0000000000010fb0 0000000300000402 R_AARCH64_JUMP_SLOT 0000000000000000 __libc_start_main@GLIBC_2.34 + 0 -0000000000010fb8 0000000500000402 R_AARCH64_JUMP_SLOT 0000000000000000 __cxa_finalize@GLIBC_2.17 + 0 -0000000000010fc0 0000000600000402 R_AARCH64_JUMP_SLOT 0000000000000000 __gmon_start__ + 0 -0000000000010fc8 0000000700000402 R_AARCH64_JUMP_SLOT 0000000000000000 abort@GLIBC_2.17 + 0 - -Symbol table '.dynsym' contains 9 entries: - Num: Value Size Type Bind Vis Ndx Name - 0: 0000000000000000 0 NOTYPE LOCAL DEFAULT UND - 1: 0000000000000580 0 SECTION LOCAL DEFAULT 11 .init - 2: 0000000000011000 0 SECTION LOCAL DEFAULT 22 .data - 3: 0000000000000000 0 FUNC GLOBAL DEFAULT UND __libc_start_main@GLIBC_2.34 (2) - 4: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_deregisterTMCloneTable - 5: 0000000000000000 0 FUNC WEAK DEFAULT UND __cxa_finalize@GLIBC_2.17 (3) - 6: 0000000000000000 0 NOTYPE WEAK DEFAULT UND __gmon_start__ - 7: 0000000000000000 0 FUNC GLOBAL DEFAULT UND abort@GLIBC_2.17 (3) - 8: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_registerTMCloneTable - -Symbol table '.symtab' contains 89 entries: - Num: Value Size Type Bind Vis Ndx Name - 0: 0000000000000000 0 NOTYPE LOCAL DEFAULT UND - 1: 0000000000000238 0 SECTION LOCAL DEFAULT 1 .interp - 2: 0000000000000254 0 SECTION LOCAL DEFAULT 2 .note.gnu.build-id - 3: 0000000000000278 0 SECTION LOCAL DEFAULT 3 .note.ABI-tag - 4: 0000000000000298 0 SECTION LOCAL DEFAULT 4 .gnu.hash - 5: 00000000000002b8 0 SECTION LOCAL DEFAULT 5 .dynsym - 6: 0000000000000390 0 SECTION LOCAL DEFAULT 6 .dynstr - 7: 000000000000041e 0 SECTION LOCAL DEFAULT 7 .gnu.version - 8: 0000000000000430 0 SECTION LOCAL DEFAULT 8 .gnu.version_r - 9: 0000000000000460 0 SECTION LOCAL DEFAULT 9 .rela.dyn - 10: 0000000000000520 0 SECTION LOCAL DEFAULT 10 .rela.plt - 11: 0000000000000580 0 SECTION LOCAL DEFAULT 11 .init - 12: 00000000000005a0 0 SECTION LOCAL DEFAULT 12 .plt - 13: 0000000000000600 0 SECTION LOCAL DEFAULT 13 .text - 14: 000000000000072c 0 SECTION LOCAL DEFAULT 14 .fini - 15: 0000000000000740 0 SECTION LOCAL DEFAULT 15 .rodata - 16: 0000000000000744 0 SECTION LOCAL DEFAULT 16 .eh_frame_hdr - 17: 0000000000000780 0 SECTION LOCAL DEFAULT 17 .eh_frame - 18: 0000000000010d98 0 SECTION LOCAL DEFAULT 18 .init_array - 19: 0000000000010da0 0 SECTION LOCAL DEFAULT 19 .fini_array - 20: 0000000000010da8 0 SECTION LOCAL DEFAULT 20 .dynamic - 21: 0000000000010f98 0 SECTION LOCAL DEFAULT 21 .got - 22: 0000000000011000 0 SECTION LOCAL DEFAULT 22 .data - 23: 0000000000011010 0 SECTION LOCAL DEFAULT 23 .bss - 24: 0000000000000000 0 SECTION LOCAL DEFAULT 24 .comment - 25: 0000000000000000 0 FILE LOCAL DEFAULT ABS Scrt1.o - 26: 0000000000000278 0 NOTYPE LOCAL DEFAULT 3 $d - 27: 0000000000000278 32 OBJECT LOCAL DEFAULT 3 __abi_tag - 28: 0000000000000600 0 NOTYPE LOCAL DEFAULT 13 $x - 29: 0000000000000794 0 NOTYPE LOCAL DEFAULT 17 $d - 30: 0000000000000740 0 NOTYPE LOCAL DEFAULT 15 $d - 31: 0000000000000000 0 FILE LOCAL DEFAULT ABS crti.o - 32: 0000000000000634 0 NOTYPE LOCAL DEFAULT 13 $x - 33: 0000000000000634 20 FUNC LOCAL DEFAULT 13 call_weak_fn - 34: 0000000000000580 0 NOTYPE LOCAL DEFAULT 11 $x - 35: 000000000000072c 0 NOTYPE LOCAL DEFAULT 14 $x - 36: 0000000000000000 0 FILE LOCAL DEFAULT ABS crtn.o - 37: 0000000000000590 0 NOTYPE LOCAL DEFAULT 11 $x - 38: 0000000000000738 0 NOTYPE LOCAL DEFAULT 14 $x - 39: 0000000000000000 0 FILE LOCAL DEFAULT ABS crtstuff.c - 40: 0000000000000650 0 NOTYPE LOCAL DEFAULT 13 $x - 41: 0000000000000650 0 FUNC LOCAL DEFAULT 13 deregister_tm_clones - 42: 0000000000000680 0 FUNC LOCAL DEFAULT 13 register_tm_clones - 43: 0000000000011008 0 NOTYPE LOCAL DEFAULT 22 $d - 44: 00000000000006c0 0 FUNC LOCAL DEFAULT 13 __do_global_dtors_aux - 45: 0000000000011010 1 OBJECT LOCAL DEFAULT 23 completed.0 - 46: 0000000000010da0 0 NOTYPE LOCAL DEFAULT 19 $d - 47: 0000000000010da0 0 OBJECT LOCAL DEFAULT 19 __do_global_dtors_aux_fini_array_entry - 48: 0000000000000710 0 FUNC LOCAL DEFAULT 13 frame_dummy - 49: 0000000000010d98 0 NOTYPE LOCAL DEFAULT 18 $d - 50: 0000000000010d98 0 OBJECT LOCAL DEFAULT 18 __frame_dummy_init_array_entry - 51: 00000000000007a8 0 NOTYPE LOCAL DEFAULT 17 $d - 52: 0000000000011010 0 NOTYPE LOCAL DEFAULT 23 $d - 53: 0000000000000000 0 FILE LOCAL DEFAULT ABS no_interference_update_x.c - 54: 0000000000011014 0 NOTYPE LOCAL DEFAULT 23 $d - 55: 0000000000000714 0 NOTYPE LOCAL DEFAULT 13 $x - 56: 0000000000000808 0 NOTYPE LOCAL DEFAULT 17 $d - 57: 0000000000000000 0 FILE LOCAL DEFAULT ABS crtstuff.c - 58: 000000000000081c 0 NOTYPE LOCAL DEFAULT 17 $d - 59: 000000000000081c 0 OBJECT LOCAL DEFAULT 17 __FRAME_END__ - 60: 0000000000000000 0 FILE LOCAL DEFAULT ABS - 61: 0000000000010da8 0 OBJECT LOCAL DEFAULT ABS _DYNAMIC - 62: 0000000000000744 0 NOTYPE LOCAL DEFAULT 16 __GNU_EH_FRAME_HDR - 63: 0000000000010fd0 0 OBJECT LOCAL DEFAULT ABS _GLOBAL_OFFSET_TABLE_ - 64: 00000000000005a0 0 NOTYPE LOCAL DEFAULT 12 $x - 65: 0000000000000000 0 FUNC GLOBAL DEFAULT UND __libc_start_main@GLIBC_2.34 - 66: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_deregisterTMCloneTable - 67: 0000000000011000 0 NOTYPE WEAK DEFAULT 22 data_start - 68: 0000000000011010 0 NOTYPE GLOBAL DEFAULT 23 __bss_start__ - 69: 0000000000000000 0 FUNC WEAK DEFAULT UND __cxa_finalize@GLIBC_2.17 - 70: 0000000000011020 0 NOTYPE GLOBAL DEFAULT 23 _bss_end__ - 71: 0000000000011010 0 NOTYPE GLOBAL DEFAULT 22 _edata - 72: 0000000000011014 4 OBJECT GLOBAL DEFAULT 23 x - 73: 000000000000072c 0 FUNC GLOBAL HIDDEN 14 _fini - 74: 0000000000011020 0 NOTYPE GLOBAL DEFAULT 23 __bss_end__ - 75: 0000000000011000 0 NOTYPE GLOBAL DEFAULT 22 __data_start - 76: 0000000000000000 0 NOTYPE WEAK DEFAULT UND __gmon_start__ - 77: 0000000000011008 0 OBJECT GLOBAL HIDDEN 22 __dso_handle - 78: 0000000000000000 0 FUNC GLOBAL DEFAULT UND abort@GLIBC_2.17 - 79: 0000000000000740 4 OBJECT GLOBAL DEFAULT 15 _IO_stdin_used - 80: 0000000000011020 0 NOTYPE GLOBAL DEFAULT 23 _end - 81: 0000000000000600 52 FUNC GLOBAL DEFAULT 13 _start - 82: 0000000000011020 0 NOTYPE GLOBAL DEFAULT 23 __end__ - 83: 0000000000011018 4 OBJECT GLOBAL DEFAULT 23 y - 84: 0000000000011010 0 NOTYPE GLOBAL DEFAULT 23 __bss_start - 85: 0000000000000714 24 FUNC GLOBAL DEFAULT 13 main - 86: 0000000000011010 0 OBJECT GLOBAL HIDDEN 22 __TMC_END__ - 87: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_registerTMCloneTable - 88: 0000000000000580 0 FUNC GLOBAL HIDDEN 11 _init diff --git a/src/test/correct/no_interference_update_x/gcc/no_interference_update_x_gtirb.expected b/src/test/correct/no_interference_update_x/gcc/no_interference_update_x_gtirb.expected index 0e925d5d0..a0f5daea6 100644 --- a/src/test/correct/no_interference_update_x/gcc/no_interference_update_x_gtirb.expected +++ b/src/test/correct/no_interference_update_x/gcc/no_interference_update_x_gtirb.expected @@ -64,7 +64,7 @@ implementation {:extern} guarantee_reflexive() assert (memory_load32_le(mem, $y_addr) == memory_load32_le(mem, $y_addr)); } -procedure main_1812(); +procedure main(); modifies Gamma_R0, Gamma_R1, Gamma_mem, R0, R1, mem; free requires (memory_load64_le(mem, 69632bv64) == 0bv64); free requires (memory_load64_le(mem, 69640bv64) == 69640bv64); @@ -80,24 +80,24 @@ procedure main_1812(); free ensures (memory_load64_le(mem, 69616bv64) == 1812bv64); free ensures (memory_load64_le(mem, 69640bv64) == 69640bv64); -implementation main_1812() +implementation main() { var y_old: bv32; - main_1812__0__nl5V_SraR2KNW_76ZHI0eQ: - assume {:captureState "main_1812__0__nl5V_SraR2KNW_76ZHI0eQ"} true; + $main$__0__$nl5V_SraR2KNW_76ZHI0eQ: + assume {:captureState "$main$__0__$nl5V_SraR2KNW_76ZHI0eQ"} true; R0, Gamma_R0 := 69632bv64, true; R0, Gamma_R0 := bvadd64(R0, 20bv64), Gamma_R0; R1, Gamma_R1 := 1bv64, true; call rely(); - y_old := memory_load32_le(mem, $y_addr); assert (L(mem, R0) ==> Gamma_R1); + y_old := memory_load32_le(mem, $y_addr); mem, Gamma_mem := memory_store32_le(mem, R0, R1[32:0]), gamma_store32(Gamma_mem, R0, Gamma_R1); assert (memory_load32_le(mem, $y_addr) == y_old); - assume {:captureState "1824_0"} true; + assume {:captureState "1824$0"} true; R0, Gamma_R0 := 0bv64, true; - goto main_1812_basil_return; - main_1812_basil_return: - assume {:captureState "main_1812_basil_return"} true; + goto main_basil_return; + main_basil_return: + assume {:captureState "main_basil_return"} true; return; } diff --git a/src/test/correct/no_interference_update_x/gcc_O2/no_interference_update_x.adt b/src/test/correct/no_interference_update_x/gcc_O2/no_interference_update_x.adt deleted file mode 100644 index e5870b470..000000000 --- a/src/test/correct/no_interference_update_x/gcc_O2/no_interference_update_x.adt +++ /dev/null @@ -1,490 +0,0 @@ -Project(Attrs([Attr("filename","\"gcc_O2/no_interference_update_x.out\""), -Attr("image-specification","(declare abi (name str))\n(declare arch (name str))\n(declare base-address (addr int))\n(declare bias (off int))\n(declare bits (size int))\n(declare code-region (addr int) (size int) (off int))\n(declare code-start (addr int))\n(declare entry-point (addr int))\n(declare external-reference (addr int) (name str))\n(declare format (name str))\n(declare is-executable (flag bool))\n(declare is-little-endian (flag bool))\n(declare llvm:base-address (addr int))\n(declare llvm:code-entry (name str) (off int) (size int))\n(declare llvm:coff-import-library (name str))\n(declare llvm:coff-virtual-section-header (name str) (addr int) (size int))\n(declare llvm:elf-program-header (name str) (off int) (size int))\n(declare llvm:elf-program-header-flags (name str) (ld bool) (r bool) \n (w bool) (x bool))\n(declare llvm:elf-virtual-program-header (name str) (addr int) (size int))\n(declare llvm:entry-point (addr int))\n(declare llvm:macho-symbol (name str) (value int))\n(declare llvm:name-reference (at int) (name str))\n(declare llvm:relocation (at int) (addr int))\n(declare llvm:section-entry (name str) (addr int) (size int) (off int))\n(declare llvm:section-flags (name str) (r bool) (w bool) (x bool))\n(declare llvm:segment-command (name str) (off int) (size int))\n(declare llvm:segment-command-flags (name str) (r bool) (w bool) (x bool))\n(declare llvm:symbol-entry (name str) (addr int) (size int) (off int)\n (value int))\n(declare llvm:virtual-segment-command (name str) (addr int) (size int))\n(declare mapped (addr int) (size int) (off int))\n(declare named-region (addr int) (size int) (name str))\n(declare named-symbol (addr int) (name str))\n(declare require (name str))\n(declare section (addr int) (size int))\n(declare segment (addr int) (size int) (r bool) (w bool) (x bool))\n(declare subarch (name str))\n(declare symbol-chunk (addr int) (size int) (root int))\n(declare symbol-value (addr int) (value int))\n(declare system (name str))\n(declare vendor (name str))\n\n(abi unknown)\n(arch aarch64)\n(base-address 0)\n(bias 0)\n(bits 64)\n(code-region 1876 20 1876)\n(code-region 1536 340 1536)\n(code-region 1440 96 1440)\n(code-region 1408 24 1408)\n(code-start 1652)\n(code-start 1600)\n(code-start 1536)\n(entry-point 1600)\n(external-reference 69592 _ITM_deregisterTMCloneTable)\n(external-reference 69600 __cxa_finalize)\n(external-reference 69608 __gmon_start__)\n(external-reference 69624 _ITM_registerTMCloneTable)\n(external-reference 69552 __libc_start_main)\n(external-reference 69560 __cxa_finalize)\n(external-reference 69568 __gmon_start__)\n(external-reference 69576 abort)\n(format elf)\n(is-executable true)\n(is-little-endian true)\n(llvm:base-address 0)\n(llvm:code-entry abort 0 0)\n(llvm:code-entry __cxa_finalize 0 0)\n(llvm:code-entry __libc_start_main 0 0)\n(llvm:code-entry _init 1408 0)\n(llvm:code-entry main 1536 20)\n(llvm:code-entry _start 1600 52)\n(llvm:code-entry abort@GLIBC_2.17 0 0)\n(llvm:code-entry _fini 1876 0)\n(llvm:code-entry __cxa_finalize@GLIBC_2.17 0 0)\n(llvm:code-entry __libc_start_main@GLIBC_2.34 0 0)\n(llvm:code-entry frame_dummy 1872 0)\n(llvm:code-entry __do_global_dtors_aux 1792 0)\n(llvm:code-entry register_tm_clones 1728 0)\n(llvm:code-entry deregister_tm_clones 1680 0)\n(llvm:code-entry call_weak_fn 1652 20)\n(llvm:code-entry .fini 1876 20)\n(llvm:code-entry .text 1536 340)\n(llvm:code-entry .plt 1440 96)\n(llvm:code-entry .init 1408 24)\n(llvm:elf-program-header 08 3480 616)\n(llvm:elf-program-header 07 0 0)\n(llvm:elf-program-header 06 1900 60)\n(llvm:elf-program-header 05 596 68)\n(llvm:elf-program-header 04 3496 496)\n(llvm:elf-program-header 03 3480 632)\n(llvm:elf-program-header 02 0 2120)\n(llvm:elf-program-header 01 568 27)\n(llvm:elf-program-header 00 64 504)\n(llvm:elf-program-header-flags 08 false true false false)\n(llvm:elf-program-header-flags 07 false true true false)\n(llvm:elf-program-header-flags 06 false true false false)\n(llvm:elf-program-header-flags 05 false true false false)\n(llvm:elf-program-header-flags 04 false true true false)\n(llvm:elf-program-header-flags 03 true true true false)\n(llvm:elf-program-header-flags 02 true true false true)\n(llvm:elf-program-header-flags 01 false true false false)\n(llvm:elf-program-header-flags 00 false true false false)\n(llvm:elf-virtual-program-header 08 69016 616)\n(llvm:elf-virtual-program-header 07 0 0)\n(llvm:elf-virtual-program-header 06 1900 60)\n(llvm:elf-virtual-program-header 05 596 68)\n(llvm:elf-virtual-program-header 04 69032 496)\n(llvm:elf-virtual-program-header 03 69016 648)\n(llvm:elf-virtual-program-header 02 0 2120)\n(llvm:elf-virtual-program-header 01 568 27)\n(llvm:elf-virtual-program-header 00 64 504)\n(llvm:entry-point 1600)\n(llvm:name-reference 69576 abort)\n(llvm:name-reference 69568 __gmon_start__)\n(llvm:name-reference 69560 __cxa_finalize)\n(llvm:name-reference 69552 __libc_start_main)\n(llvm:name-reference 69624 _ITM_registerTMCloneTable)\n(llvm:name-reference 69608 __gmon_start__)\n(llvm:name-reference 69600 __cxa_finalize)\n(llvm:name-reference 69592 _ITM_deregisterTMCloneTable)\n(llvm:section-entry .shstrtab 0 250 6856)\n(llvm:section-entry .strtab 0 560 6296)\n(llvm:section-entry .symtab 0 2136 4160)\n(llvm:section-entry .comment 0 43 4112)\n(llvm:section-entry .bss 69648 16 4112)\n(llvm:section-entry .data 69632 16 4096)\n(llvm:section-entry .got 69528 104 3992)\n(llvm:section-entry .dynamic 69032 496 3496)\n(llvm:section-entry .fini_array 69024 8 3488)\n(llvm:section-entry .init_array 69016 8 3480)\n(llvm:section-entry .eh_frame 1960 160 1960)\n(llvm:section-entry .eh_frame_hdr 1900 60 1900)\n(llvm:section-entry .rodata 1896 4 1896)\n(llvm:section-entry .fini 1876 20 1876)\n(llvm:section-entry .text 1536 340 1536)\n(llvm:section-entry .plt 1440 96 1440)\n(llvm:section-entry .init 1408 24 1408)\n(llvm:section-entry .rela.plt 1312 96 1312)\n(llvm:section-entry .rela.dyn 1120 192 1120)\n(llvm:section-entry .gnu.version_r 1072 48 1072)\n(llvm:section-entry .gnu.version 1054 18 1054)\n(llvm:section-entry .dynstr 912 141 912)\n(llvm:section-entry .dynsym 696 216 696)\n(llvm:section-entry .gnu.hash 664 28 664)\n(llvm:section-entry .note.ABI-tag 632 32 632)\n(llvm:section-entry .note.gnu.build-id 596 36 596)\n(llvm:section-entry .interp 568 27 568)\n(llvm:section-flags .shstrtab true false false)\n(llvm:section-flags .strtab true false false)\n(llvm:section-flags .symtab true false false)\n(llvm:section-flags .comment true false false)\n(llvm:section-flags .bss true true false)\n(llvm:section-flags .data true true false)\n(llvm:section-flags .got true true false)\n(llvm:section-flags .dynamic true true false)\n(llvm:section-flags .fini_array true true false)\n(llvm:section-flags .init_array true true false)\n(llvm:section-flags .eh_frame true false false)\n(llvm:section-flags .eh_frame_hdr true false false)\n(llvm:section-flags .rodata true false false)\n(llvm:section-flags .fini true false true)\n(llvm:section-flags .text true false true)\n(llvm:section-flags .plt true false true)\n(llvm:section-flags .init true false true)\n(llvm:section-flags .rela.plt true false false)\n(llvm:section-flags .rela.dyn true false false)\n(llvm:section-flags .gnu.version_r true false false)\n(llvm:section-flags .gnu.version true false false)\n(llvm:section-flags .dynstr true false false)\n(llvm:section-flags .dynsym true false false)\n(llvm:section-flags .gnu.hash true false false)\n(llvm:section-flags .note.ABI-tag true false false)\n(llvm:section-flags .note.gnu.build-id true false false)\n(llvm:section-flags .interp true false false)\n(llvm:symbol-entry abort 0 0 0 0)\n(llvm:symbol-entry __cxa_finalize 0 0 0 0)\n(llvm:symbol-entry __libc_start_main 0 0 0 0)\n(llvm:symbol-entry _init 1408 0 1408 1408)\n(llvm:symbol-entry main 1536 20 1536 1536)\n(llvm:symbol-entry _start 1600 52 1600 1600)\n(llvm:symbol-entry abort@GLIBC_2.17 0 0 0 0)\n(llvm:symbol-entry _fini 1876 0 1876 1876)\n(llvm:symbol-entry __cxa_finalize@GLIBC_2.17 0 0 0 0)\n(llvm:symbol-entry __libc_start_main@GLIBC_2.34 0 0 0 0)\n(llvm:symbol-entry frame_dummy 1872 0 1872 1872)\n(llvm:symbol-entry __do_global_dtors_aux 1792 0 1792 1792)\n(llvm:symbol-entry register_tm_clones 1728 0 1728 1728)\n(llvm:symbol-entry deregister_tm_clones 1680 0 1680 1680)\n(llvm:symbol-entry call_weak_fn 1652 20 1652 1652)\n(mapped 0 2120 0)\n(mapped 69016 632 3480)\n(named-region 0 2120 02)\n(named-region 69016 648 03)\n(named-region 568 27 .interp)\n(named-region 596 36 .note.gnu.build-id)\n(named-region 632 32 .note.ABI-tag)\n(named-region 664 28 .gnu.hash)\n(named-region 696 216 .dynsym)\n(named-region 912 141 .dynstr)\n(named-region 1054 18 .gnu.version)\n(named-region 1072 48 .gnu.version_r)\n(named-region 1120 192 .rela.dyn)\n(named-region 1312 96 .rela.plt)\n(named-region 1408 24 .init)\n(named-region 1440 96 .plt)\n(named-region 1536 340 .text)\n(named-region 1876 20 .fini)\n(named-region 1896 4 .rodata)\n(named-region 1900 60 .eh_frame_hdr)\n(named-region 1960 160 .eh_frame)\n(named-region 69016 8 .init_array)\n(named-region 69024 8 .fini_array)\n(named-region 69032 496 .dynamic)\n(named-region 69528 104 .got)\n(named-region 69632 16 .data)\n(named-region 69648 16 .bss)\n(named-region 0 43 .comment)\n(named-region 0 2136 .symtab)\n(named-region 0 560 .strtab)\n(named-region 0 250 .shstrtab)\n(named-symbol 1652 call_weak_fn)\n(named-symbol 1680 deregister_tm_clones)\n(named-symbol 1728 register_tm_clones)\n(named-symbol 1792 __do_global_dtors_aux)\n(named-symbol 1872 frame_dummy)\n(named-symbol 0 __libc_start_main@GLIBC_2.34)\n(named-symbol 0 __cxa_finalize@GLIBC_2.17)\n(named-symbol 1876 _fini)\n(named-symbol 0 abort@GLIBC_2.17)\n(named-symbol 1600 _start)\n(named-symbol 1536 main)\n(named-symbol 1408 _init)\n(named-symbol 0 __libc_start_main)\n(named-symbol 0 __cxa_finalize)\n(named-symbol 0 abort)\n(require libc.so.6)\n(section 568 27)\n(section 596 36)\n(section 632 32)\n(section 664 28)\n(section 696 216)\n(section 912 141)\n(section 1054 18)\n(section 1072 48)\n(section 1120 192)\n(section 1312 96)\n(section 1408 24)\n(section 1440 96)\n(section 1536 340)\n(section 1876 20)\n(section 1896 4)\n(section 1900 60)\n(section 1960 160)\n(section 69016 8)\n(section 69024 8)\n(section 69032 496)\n(section 69528 104)\n(section 69632 16)\n(section 69648 16)\n(section 0 43)\n(section 0 2136)\n(section 0 560)\n(section 0 250)\n(segment 0 2120 true false true)\n(segment 69016 648 true true false)\n(subarch v8)\n(symbol-chunk 1652 20 1652)\n(symbol-chunk 1600 52 1600)\n(symbol-chunk 1536 20 1536)\n(symbol-value 1652 1652)\n(symbol-value 1680 1680)\n(symbol-value 1728 1728)\n(symbol-value 1792 1792)\n(symbol-value 1872 1872)\n(symbol-value 1876 1876)\n(symbol-value 1600 1600)\n(symbol-value 1536 1536)\n(symbol-value 1408 1408)\n(symbol-value 0 0)\n(system \"\")\n(vendor \"\")\n"), -Attr("abi-name","\"aarch64-linux-gnu-elf\"")]), -Sections([Section(".shstrtab", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x40\x06\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xc8\x1b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x38\x00\x09\x00\x40\x00\x1c\x00\x1b\x00\x06\x00\x00\x00\x04\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x04\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x48\x08\x00\x00\x00\x00\x00\x00\x48\x08\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x01\x00\x00\x00\x06\x00\x00\x00\x98\x0d\x00\x00\x00\x00\x00\x00\x98\x0d"), -Section(".strtab", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x40\x06\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xc8\x1b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x38\x00\x09\x00\x40\x00\x1c\x00\x1b\x00\x06\x00\x00\x00\x04\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x04\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x48\x08\x00\x00\x00\x00\x00\x00\x48\x08\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x01\x00\x00\x00\x06\x00\x00\x00\x98\x0d\x00\x00\x00\x00\x00\x00\x98\x0d\x01\x00\x00\x00\x00\x00\x98\x0d\x01\x00\x00\x00\x00\x00\x78\x02\x00\x00\x00\x00\x00\x00\x88\x02\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x02\x00\x00\x00\x06\x00\x00\x00\xa8\x0d\x00\x00\x00\x00\x00\x00\xa8\x0d\x01\x00\x00\x00\x00\x00\xa8\x0d\x01\x00\x00\x00\x00\x00\xf0\x01\x00\x00\x00\x00\x00\x00\xf0\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x04\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x50\xe5\x74\x64\x04\x00\x00\x00\x6c\x07\x00\x00\x00\x00\x00\x00\x6c\x07\x00\x00\x00\x00\x00\x00\x6c\x07\x00\x00\x00\x00\x00\x00\x3c\x00\x00\x00\x00\x00\x00\x00\x3c\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x51\xe5\x74\x64\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x52\xe5\x74\x64\x04\x00\x00\x00\x98\x0d\x00\x00\x00\x00\x00\x00\x98\x0d\x01\x00\x00\x00\x00\x00\x98\x0d\x01\x00\x00\x00\x00\x00\x68\x02\x00\x00\x00\x00\x00\x00\x68\x02\x00\x00\x00\x00\x00\x00"), -Section(".comment", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x40\x06\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xc8\x1b\x00"), -Section(".interp", 0x238, "\x2f\x6c\x69\x62\x2f\x6c\x64\x2d\x6c\x69\x6e\x75\x78\x2d\x61\x61\x72\x63\x68\x36\x34\x2e\x73\x6f\x2e\x31\x00"), -Section(".note.gnu.build-id", 0x254, "\x04\x00\x00\x00\x14\x00\x00\x00\x03\x00\x00\x00\x47\x4e\x55\x00\x2a\x88\x26\x3f\xcc\x61\x20\x18\x6c\x1e\x3e\x20\xf1\x02\x59\x73\x73\xc3\x99\xa8"), -Section(".note.ABI-tag", 0x278, "\x04\x00\x00\x00\x10\x00\x00\x00\x01\x00\x00\x00\x47\x4e\x55\x00\x00\x00\x00\x00\x03\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00"), -Section(".gnu.hash", 0x298, "\x01\x00\x00\x00\x01\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".dynsym", 0x2B8, "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x0b\x00\x80\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x16\x00\x00\x10\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x48\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x22\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x22\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x73\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".dynstr", 0x390, "\x00\x5f\x5f\x63\x78\x61\x5f\x66\x69\x6e\x61\x6c\x69\x7a\x65\x00\x5f\x5f\x6c\x69\x62\x63\x5f\x73\x74\x61\x72\x74\x5f\x6d\x61\x69\x6e\x00\x61\x62\x6f\x72\x74\x00\x6c\x69\x62\x63\x2e\x73\x6f\x2e\x36\x00\x47\x4c\x49\x42\x43\x5f\x32\x2e\x31\x37\x00\x47\x4c\x49\x42\x43\x5f\x32\x2e\x33\x34\x00\x5f\x49\x54\x4d\x5f\x64\x65\x72\x65\x67\x69\x73\x74\x65\x72\x54\x4d\x43\x6c\x6f\x6e\x65\x54\x61\x62\x6c\x65\x00\x5f\x5f\x67\x6d\x6f\x6e\x5f\x73\x74\x61\x72\x74\x5f\x5f\x00\x5f\x49\x54\x4d\x5f\x72\x65\x67\x69\x73\x74\x65\x72\x54\x4d\x43\x6c\x6f\x6e\x65\x54\x61\x62\x6c\x65\x00"), -Section(".gnu.version", 0x41E, "\x00\x00\x00\x00\x00\x00\x02\x00\x01\x00\x03\x00\x01\x00\x03\x00\x01\x00"), -Section(".gnu.version_r", 0x430, "\x01\x00\x02\x00\x28\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x97\x91\x96\x06\x00\x00\x03\x00\x32\x00\x00\x00\x10\x00\x00\x00\xb4\x91\x96\x06\x00\x00\x02\x00\x3d\x00\x00\x00\x00\x00\x00\x00"), -Section(".rela.dyn", 0x460, "\x98\x0d\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x50\x07\x00\x00\x00\x00\x00\x00\xa0\x0d\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\xf0\x0f\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x00\x06\x00\x00\x00\x00\x00\x00\x08\x10\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x08\x10\x01\x00\x00\x00\x00\x00\xd8\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe0\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe8\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xf8\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".rela.plt", 0x520, "\xb0\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xb8\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xc0\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xc8\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".init", 0x580, "\x1f\x20\x03\xd5\xfd\x7b\xbf\xa9\xfd\x03\x00\x91\x3a\x00\x00\x94\xfd\x7b\xc1\xa8\xc0\x03\x5f\xd6"), -Section(".plt", 0x5A0, "\xf0\x7b\xbf\xa9\x90\x00\x00\x90\x11\xd6\x47\xf9\x10\xa2\x3e\x91\x20\x02\x1f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x90\x00\x00\x90\x11\xda\x47\xf9\x10\xc2\x3e\x91\x20\x02\x1f\xd6\x90\x00\x00\x90\x11\xde\x47\xf9\x10\xe2\x3e\x91\x20\x02\x1f\xd6\x90\x00\x00\x90\x11\xe2\x47\xf9\x10\x02\x3f\x91\x20\x02\x1f\xd6\x90\x00\x00\x90\x11\xe6\x47\xf9\x10\x22\x3f\x91\x20\x02\x1f\xd6"), -Section(".fini", 0x754, "\x1f\x20\x03\xd5\xfd\x7b\xbf\xa9\xfd\x03\x00\x91\xfd\x7b\xc1\xa8\xc0\x03\x5f\xd6"), -Section(".rodata", 0x768, "\x01\x00\x02\x00"), -Section(".eh_frame_hdr", 0x76C, "\x01\x1b\x03\x3b\x38\x00\x00\x00\x06\x00\x00\x00\x94\xfe\xff\xff\xc4\x00\x00\x00\xd4\xfe\xff\xff\x50\x00\x00\x00\x24\xff\xff\xff\x64\x00\x00\x00\x54\xff\xff\xff\x78\x00\x00\x00\x94\xff\xff\xff\x8c\x00\x00\x00\xe4\xff\xff\xff\xb0\x00\x00\x00"), -Section(".eh_frame", 0x7A8, "\x10\x00\x00\x00\x00\x00\x00\x00\x01\x7a\x52\x00\x04\x78\x1e\x01\x1b\x0c\x1f\x00\x10\x00\x00\x00\x18\x00\x00\x00\x7c\xfe\xff\xff\x34\x00\x00\x00\x00\x41\x07\x1e\x10\x00\x00\x00\x2c\x00\x00\x00\xb8\xfe\xff\xff\x30\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x40\x00\x00\x00\xd4\xfe\xff\xff\x3c\x00\x00\x00\x00\x00\x00\x00\x20\x00\x00\x00\x54\x00\x00\x00\x00\xff\xff\xff\x48\x00\x00\x00\x00\x41\x0e\x20\x9d\x04\x9e\x03\x42\x93\x02\x4e\xde\xdd\xd3\x0e\x00\x00\x00\x00\x10\x00\x00\x00\x78\x00\x00\x00\x2c\xff\xff\xff\x04\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x8c\x00\x00\x00\xc8\xfd\xff\xff\x14\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".fini_array", 0x10DA0, "\x00\x07\x00\x00\x00\x00\x00\x00"), -Section(".dynamic", 0x10DA8, "\x01\x00\x00\x00\x00\x00\x00\x00\x28\x00\x00\x00\x00\x00\x00\x00\x0c\x00\x00\x00\x00\x00\x00\x00\x80\x05\x00\x00\x00\x00\x00\x00\x0d\x00\x00\x00\x00\x00\x00\x00\x54\x07\x00\x00\x00\x00\x00\x00\x19\x00\x00\x00\x00\x00\x00\x00\x98\x0d\x01\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x1a\x00\x00\x00\x00\x00\x00\x00\xa0\x0d\x01\x00\x00\x00\x00\x00\x1c\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\xf5\xfe\xff\x6f\x00\x00\x00\x00\x98\x02\x00\x00\x00\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x90\x03\x00\x00\x00\x00\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\xb8\x02\x00\x00\x00\x00\x00\x00\x0a\x00\x00\x00\x00\x00\x00\x00\x8d\x00\x00\x00\x00\x00\x00\x00\x0b\x00\x00\x00\x00\x00\x00\x00\x18\x00\x00\x00\x00\x00\x00\x00\x15\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x98\x0f\x01\x00\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x60\x00\x00\x00\x00\x00\x00\x00\x14\x00\x00\x00\x00\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x17\x00\x00\x00\x00\x00\x00\x00\x20\x05\x00\x00\x00\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x60\x04\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\xc0\x00\x00\x00\x00\x00\x00\x00\x09\x00\x00\x00\x00\x00\x00\x00\x18\x00\x00\x00\x00\x00\x00\x00\x1e\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\xfb\xff\xff\x6f\x00\x00\x00\x00\x01\x00\x00\x08\x00\x00\x00\x00\xfe\xff\xff\x6f\x00\x00\x00\x00\x30\x04\x00\x00\x00\x00\x00\x00\xff\xff\xff\x6f\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\xf0\xff\xff\x6f\x00\x00\x00\x00\x1e\x04\x00\x00\x00\x00\x00\x00\xf9\xff\xff\x6f\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".init_array", 0x10D98, "\x50\x07\x00\x00\x00\x00\x00\x00"), -Section(".got", 0x10F98, "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xa0\x05\x00\x00\x00\x00\x00\x00\xa0\x05\x00\x00\x00\x00\x00\x00\xa0\x05\x00\x00\x00\x00\x00\x00\xa0\x05\x00\x00\x00\x00\x00\x00\xa8\x0d\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".data", 0x11000, "\x00\x00\x00\x00\x00\x00\x00\x00\x08\x10\x01\x00\x00\x00\x00\x00"), -Section(".text", 0x600, "\x81\x00\x00\xb0\x22\x00\x80\x52\x00\x00\x80\x52\x22\x14\x00\xb9\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1d\x00\x80\xd2\x1e\x00\x80\xd2\xe5\x03\x00\xaa\xe1\x03\x40\xf9\xe2\x23\x00\x91\xe6\x03\x00\x91\x80\x00\x00\x90\x00\xf8\x47\xf9\x03\x00\x80\xd2\x04\x00\x80\xd2\xd5\xff\xff\x97\xe0\xff\xff\x97\x80\x00\x00\x90\x00\xf4\x47\xf9\x40\x00\x00\xb4\xd8\xff\xff\x17\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x80\x00\x00\xb0\x00\x40\x00\x91\x81\x00\x00\xb0\x21\x40\x00\x91\x3f\x00\x00\xeb\xc0\x00\x00\x54\x81\x00\x00\x90\x21\xec\x47\xf9\x61\x00\x00\xb4\xf0\x03\x01\xaa\x00\x02\x1f\xd6\xc0\x03\x5f\xd6\x80\x00\x00\xb0\x00\x40\x00\x91\x81\x00\x00\xb0\x21\x40\x00\x91\x21\x00\x00\xcb\x22\xfc\x7f\xd3\x41\x0c\x81\x8b\x21\xfc\x41\x93\xc1\x00\x00\xb4\x82\x00\x00\x90\x42\xfc\x47\xf9\x62\x00\x00\xb4\xf0\x03\x02\xaa\x00\x02\x1f\xd6\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\xfd\x7b\xbe\xa9\xfd\x03\x00\x91\xf3\x0b\x00\xf9\x93\x00\x00\xb0\x60\x42\x40\x39\x40\x01\x00\x35\x80\x00\x00\x90\x00\xf0\x47\xf9\x80\x00\x00\xb4\x80\x00\x00\xb0\x00\x04\x40\xf9\xa9\xff\xff\x97\xd8\xff\xff\x97\x20\x00\x80\x52\x60\x42\x00\x39\xf3\x0b\x40\xf9\xfd\x7b\xc2\xa8\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\xdc\xff\xff\x17")]), -Memmap([Annotation(Region(0x0,0x847), Attr("segment","02 0 2120")), -Annotation(Region(0x600,0x613), Attr("symbol","\"main\"")), -Annotation(Region(0x0,0xF9), Attr("section","\".shstrtab\"")), -Annotation(Region(0x0,0x22F), Attr("section","\".strtab\"")), -Annotation(Region(0x0,0x2A), Attr("section","\".comment\"")), -Annotation(Region(0x238,0x252), Attr("section","\".interp\"")), -Annotation(Region(0x254,0x277), Attr("section","\".note.gnu.build-id\"")), -Annotation(Region(0x278,0x297), Attr("section","\".note.ABI-tag\"")), -Annotation(Region(0x298,0x2B3), Attr("section","\".gnu.hash\"")), -Annotation(Region(0x2B8,0x38F), Attr("section","\".dynsym\"")), -Annotation(Region(0x390,0x41C), Attr("section","\".dynstr\"")), -Annotation(Region(0x41E,0x42F), Attr("section","\".gnu.version\"")), -Annotation(Region(0x430,0x45F), Attr("section","\".gnu.version_r\"")), -Annotation(Region(0x460,0x51F), Attr("section","\".rela.dyn\"")), -Annotation(Region(0x520,0x57F), Attr("section","\".rela.plt\"")), -Annotation(Region(0x580,0x597), Attr("section","\".init\"")), -Annotation(Region(0x5A0,0x5FF), Attr("section","\".plt\"")), -Annotation(Region(0x580,0x597), Attr("code-region","()")), -Annotation(Region(0x5A0,0x5FF), Attr("code-region","()")), -Annotation(Region(0x600,0x613), Attr("symbol-info","main 0x600 20")), -Annotation(Region(0x640,0x673), Attr("symbol","\"_start\"")), -Annotation(Region(0x640,0x673), Attr("symbol-info","_start 0x640 52")), -Annotation(Region(0x674,0x687), Attr("symbol","\"call_weak_fn\"")), -Annotation(Region(0x674,0x687), Attr("symbol-info","call_weak_fn 0x674 20")), -Annotation(Region(0x754,0x767), Attr("section","\".fini\"")), -Annotation(Region(0x768,0x76B), Attr("section","\".rodata\"")), -Annotation(Region(0x76C,0x7A7), Attr("section","\".eh_frame_hdr\"")), -Annotation(Region(0x7A8,0x847), Attr("section","\".eh_frame\"")), -Annotation(Region(0x10D98,0x1100F), Attr("segment","03 0x10D98 648")), -Annotation(Region(0x10DA0,0x10DA7), Attr("section","\".fini_array\"")), -Annotation(Region(0x10DA8,0x10F97), Attr("section","\".dynamic\"")), -Annotation(Region(0x10D98,0x10D9F), Attr("section","\".init_array\"")), -Annotation(Region(0x10F98,0x10FFF), Attr("section","\".got\"")), -Annotation(Region(0x11000,0x1100F), Attr("section","\".data\"")), -Annotation(Region(0x600,0x753), Attr("section","\".text\"")), -Annotation(Region(0x600,0x753), Attr("code-region","()")), -Annotation(Region(0x754,0x767), Attr("code-region","()"))]), -Program(Tid(1_505, "%000005e1"), Attrs([]), - Subs([Sub(Tid(1_455, "@__cxa_finalize"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x5D0"), -Attr("stub","()")]), "__cxa_finalize", Args([Arg(Tid(1_506, "%000005e2"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("__cxa_finalize_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(851, "@__cxa_finalize"), - Attrs([Attr("address","0x5D0")]), Phis([]), -Defs([Def(Tid(1_099, "%0000044b"), Attrs([Attr("address","0x5D0"), -Attr("insn","adrp x16, #65536")]), Var("R16",Imm(64)), Int(65536,64)), -Def(Tid(1_106, "%00000452"), Attrs([Attr("address","0x5D4"), -Attr("insn","ldr x17, [x16, #0xfb8]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(4024,64)),LittleEndian(),64)), -Def(Tid(1_112, "%00000458"), Attrs([Attr("address","0x5D8"), -Attr("insn","add x16, x16, #0xfb8")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(4024,64)))]), Jmps([Call(Tid(1_117, "%0000045d"), - Attrs([Attr("address","0x5DC"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), -Sub(Tid(1_456, "@__do_global_dtors_aux"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x700")]), - "__do_global_dtors_aux", Args([Arg(Tid(1_507, "%000005e3"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("__do_global_dtors_aux_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(704, "@__do_global_dtors_aux"), - Attrs([Attr("address","0x700")]), Phis([]), Defs([Def(Tid(708, "%000002c4"), - Attrs([Attr("address","0x700"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("#3",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(18446744073709551584,64))), -Def(Tid(714, "%000002ca"), Attrs([Attr("address","0x700"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("#3",Imm(64)),Var("R29",Imm(64)),LittleEndian(),64)), -Def(Tid(720, "%000002d0"), Attrs([Attr("address","0x700"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("#3",Imm(64)),Int(8,64)),Var("R30",Imm(64)),LittleEndian(),64)), -Def(Tid(724, "%000002d4"), Attrs([Attr("address","0x700"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("R31",Imm(64)), -Var("#3",Imm(64))), Def(Tid(730, "%000002da"), - Attrs([Attr("address","0x704"), Attr("insn","mov x29, sp")]), - Var("R29",Imm(64)), Var("R31",Imm(64))), Def(Tid(738, "%000002e2"), - Attrs([Attr("address","0x708"), Attr("insn","str x19, [sp, #0x10]")]), - Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(16,64)),Var("R19",Imm(64)),LittleEndian(),64)), -Def(Tid(743, "%000002e7"), Attrs([Attr("address","0x70C"), -Attr("insn","adrp x19, #69632")]), Var("R19",Imm(64)), Int(69632,64)), -Def(Tid(750, "%000002ee"), Attrs([Attr("address","0x710"), -Attr("insn","ldrb w0, [x19, #0x10]")]), Var("R0",Imm(64)), -UNSIGNED(64,Load(Var("mem",Mem(64,8)),PLUS(Var("R19",Imm(64)),Int(16,64)),LittleEndian(),8)))]), -Jmps([Goto(Tid(757, "%000002f5"), Attrs([Attr("address","0x714"), -Attr("insn","cbnz w0, #0x28")]), - NEQ(Extract(31,0,Var("R0",Imm(64))),Int(0,32)), -Direct(Tid(755, "%000002f3"))), Goto(Tid(1_495, "%000005d7"), Attrs([]), - Int(1,1), Direct(Tid(796, "%0000031c")))])), Blk(Tid(796, "%0000031c"), - Attrs([Attr("address","0x718")]), Phis([]), Defs([Def(Tid(799, "%0000031f"), - Attrs([Attr("address","0x718"), Attr("insn","adrp x0, #65536")]), - Var("R0",Imm(64)), Int(65536,64)), Def(Tid(806, "%00000326"), - Attrs([Attr("address","0x71C"), Attr("insn","ldr x0, [x0, #0xfe0]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(4064,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(812, "%0000032c"), Attrs([Attr("address","0x720"), -Attr("insn","cbz x0, #0x10")]), EQ(Var("R0",Imm(64)),Int(0,64)), -Direct(Tid(810, "%0000032a"))), Goto(Tid(1_496, "%000005d8"), Attrs([]), - Int(1,1), Direct(Tid(835, "%00000343")))])), Blk(Tid(835, "%00000343"), - Attrs([Attr("address","0x724")]), Phis([]), Defs([Def(Tid(838, "%00000346"), - Attrs([Attr("address","0x724"), Attr("insn","adrp x0, #69632")]), - Var("R0",Imm(64)), Int(69632,64)), Def(Tid(845, "%0000034d"), - Attrs([Attr("address","0x728"), Attr("insn","ldr x0, [x0, #0x8]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(850, "%00000352"), Attrs([Attr("address","0x72C"), -Attr("insn","bl #-0x15c")]), Var("R30",Imm(64)), Int(1840,64))]), -Jmps([Call(Tid(853, "%00000355"), Attrs([Attr("address","0x72C"), -Attr("insn","bl #-0x15c")]), Int(1,1), -(Direct(Tid(1_455, "@__cxa_finalize")),Direct(Tid(810, "%0000032a"))))])), -Blk(Tid(810, "%0000032a"), Attrs([Attr("address","0x730")]), Phis([]), -Defs([Def(Tid(818, "%00000332"), Attrs([Attr("address","0x730"), -Attr("insn","bl #-0xa0")]), Var("R30",Imm(64)), Int(1844,64))]), -Jmps([Call(Tid(820, "%00000334"), Attrs([Attr("address","0x730"), -Attr("insn","bl #-0xa0")]), Int(1,1), -(Direct(Tid(1_469, "@deregister_tm_clones")),Direct(Tid(822, "%00000336"))))])), -Blk(Tid(822, "%00000336"), Attrs([Attr("address","0x734")]), Phis([]), -Defs([Def(Tid(825, "%00000339"), Attrs([Attr("address","0x734"), -Attr("insn","mov w0, #0x1")]), Var("R0",Imm(64)), Int(1,64)), -Def(Tid(833, "%00000341"), Attrs([Attr("address","0x738"), -Attr("insn","strb w0, [x19, #0x10]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R19",Imm(64)),Int(16,64)),Extract(7,0,Var("R0",Imm(64))),LittleEndian(),8))]), -Jmps([Goto(Tid(1_497, "%000005d9"), Attrs([]), Int(1,1), -Direct(Tid(755, "%000002f3")))])), Blk(Tid(755, "%000002f3"), - Attrs([Attr("address","0x73C")]), Phis([]), Defs([Def(Tid(765, "%000002fd"), - Attrs([Attr("address","0x73C"), Attr("insn","ldr x19, [sp, #0x10]")]), - Var("R19",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(16,64)),LittleEndian(),64)), -Def(Tid(772, "%00000304"), Attrs([Attr("address","0x740"), -Attr("insn","ldp x29, x30, [sp], #0x20")]), Var("R29",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(777, "%00000309"), Attrs([Attr("address","0x740"), -Attr("insn","ldp x29, x30, [sp], #0x20")]), Var("R30",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(781, "%0000030d"), Attrs([Attr("address","0x740"), -Attr("insn","ldp x29, x30, [sp], #0x20")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(32,64)))]), Jmps([Call(Tid(786, "%00000312"), - Attrs([Attr("address","0x744"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), Sub(Tid(1_460, "@__libc_start_main"), - Attrs([Attr("c.proto","signed (*)(signed (*)(signed , char** , char** );* main, signed , char** , \nvoid* auxv)"), -Attr("address","0x5C0"), Attr("stub","()")]), "__libc_start_main", - Args([Arg(Tid(1_508, "%000005e4"), - Attrs([Attr("c.layout","**[ : 64]"), -Attr("c.data","Top:u64 ptr ptr"), -Attr("c.type","signed (*)(signed , char** , char** );*")]), - Var("__libc_start_main_main",Imm(64)), Var("R0",Imm(64)), In()), -Arg(Tid(1_509, "%000005e5"), Attrs([Attr("c.layout","[signed : 32]"), -Attr("c.data","Top:u32"), Attr("c.type","signed")]), - Var("__libc_start_main_arg2",Imm(32)), LOW(32,Var("R1",Imm(64))), In()), -Arg(Tid(1_510, "%000005e6"), Attrs([Attr("c.layout","**[char : 8]"), -Attr("c.data","Top:u8 ptr ptr"), Attr("c.type","char**")]), - Var("__libc_start_main_arg3",Imm(64)), Var("R2",Imm(64)), Both()), -Arg(Tid(1_511, "%000005e7"), Attrs([Attr("c.layout","*[ : 8]"), -Attr("c.data","{} ptr"), Attr("c.type","void*")]), - Var("__libc_start_main_auxv",Imm(64)), Var("R3",Imm(64)), Both()), -Arg(Tid(1_512, "%000005e8"), Attrs([Attr("c.layout","[signed : 32]"), -Attr("c.data","Top:u32"), Attr("c.type","signed")]), - Var("__libc_start_main_result",Imm(32)), LOW(32,Var("R0",Imm(64))), -Out())]), Blks([Blk(Tid(537, "@__libc_start_main"), - Attrs([Attr("address","0x5C0")]), Phis([]), -Defs([Def(Tid(1_077, "%00000435"), Attrs([Attr("address","0x5C0"), -Attr("insn","adrp x16, #65536")]), Var("R16",Imm(64)), Int(65536,64)), -Def(Tid(1_084, "%0000043c"), Attrs([Attr("address","0x5C4"), -Attr("insn","ldr x17, [x16, #0xfb0]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(4016,64)),LittleEndian(),64)), -Def(Tid(1_090, "%00000442"), Attrs([Attr("address","0x5C8"), -Attr("insn","add x16, x16, #0xfb0")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(4016,64)))]), Jmps([Call(Tid(1_095, "%00000447"), - Attrs([Attr("address","0x5CC"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), Sub(Tid(1_461, "@_fini"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x754")]), - "_fini", Args([Arg(Tid(1_513, "%000005e9"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("_fini_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(31, "@_fini"), - Attrs([Attr("address","0x754")]), Phis([]), Defs([Def(Tid(37, "%00000025"), - Attrs([Attr("address","0x758"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("#0",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(18446744073709551600,64))), -Def(Tid(43, "%0000002b"), Attrs([Attr("address","0x758"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("#0",Imm(64)),Var("R29",Imm(64)),LittleEndian(),64)), -Def(Tid(49, "%00000031"), Attrs([Attr("address","0x758"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("#0",Imm(64)),Int(8,64)),Var("R30",Imm(64)),LittleEndian(),64)), -Def(Tid(53, "%00000035"), Attrs([Attr("address","0x758"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("R31",Imm(64)), -Var("#0",Imm(64))), Def(Tid(59, "%0000003b"), Attrs([Attr("address","0x75C"), -Attr("insn","mov x29, sp")]), Var("R29",Imm(64)), Var("R31",Imm(64))), -Def(Tid(66, "%00000042"), Attrs([Attr("address","0x760"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R29",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(71, "%00000047"), Attrs([Attr("address","0x760"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R30",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(75, "%0000004b"), Attrs([Attr("address","0x760"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(16,64)))]), Jmps([Call(Tid(80, "%00000050"), - Attrs([Attr("address","0x764"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), Sub(Tid(1_462, "@_init"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x580")]), - "_init", Args([Arg(Tid(1_514, "%000005ea"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("_init_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(1_281, "@_init"), - Attrs([Attr("address","0x580")]), Phis([]), -Defs([Def(Tid(1_287, "%00000507"), Attrs([Attr("address","0x584"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("#5",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(18446744073709551600,64))), -Def(Tid(1_293, "%0000050d"), Attrs([Attr("address","0x584"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("#5",Imm(64)),Var("R29",Imm(64)),LittleEndian(),64)), -Def(Tid(1_299, "%00000513"), Attrs([Attr("address","0x584"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("#5",Imm(64)),Int(8,64)),Var("R30",Imm(64)),LittleEndian(),64)), -Def(Tid(1_303, "%00000517"), Attrs([Attr("address","0x584"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("R31",Imm(64)), -Var("#5",Imm(64))), Def(Tid(1_309, "%0000051d"), - Attrs([Attr("address","0x588"), Attr("insn","mov x29, sp")]), - Var("R29",Imm(64)), Var("R31",Imm(64))), Def(Tid(1_314, "%00000522"), - Attrs([Attr("address","0x58C"), Attr("insn","bl #0xe8")]), - Var("R30",Imm(64)), Int(1424,64))]), Jmps([Call(Tid(1_316, "%00000524"), - Attrs([Attr("address","0x58C"), Attr("insn","bl #0xe8")]), Int(1,1), -(Direct(Tid(1_467, "@call_weak_fn")),Direct(Tid(1_318, "%00000526"))))])), -Blk(Tid(1_318, "%00000526"), Attrs([Attr("address","0x590")]), Phis([]), -Defs([Def(Tid(1_323, "%0000052b"), Attrs([Attr("address","0x590"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R29",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(1_328, "%00000530"), Attrs([Attr("address","0x590"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R30",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(1_332, "%00000534"), Attrs([Attr("address","0x590"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(16,64)))]), Jmps([Call(Tid(1_337, "%00000539"), - Attrs([Attr("address","0x594"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), Sub(Tid(1_463, "@_start"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x640"), -Attr("entry-point","()")]), "_start", Args([Arg(Tid(1_515, "%000005eb"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("_start_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(474, "@_start"), - Attrs([Attr("address","0x640")]), Phis([]), Defs([Def(Tid(479, "%000001df"), - Attrs([Attr("address","0x644"), Attr("insn","mov x29, #0x0")]), - Var("R29",Imm(64)), Int(0,64)), Def(Tid(484, "%000001e4"), - Attrs([Attr("address","0x648"), Attr("insn","mov x30, #0x0")]), - Var("R30",Imm(64)), Int(0,64)), Def(Tid(490, "%000001ea"), - Attrs([Attr("address","0x64C"), Attr("insn","mov x5, x0")]), - Var("R5",Imm(64)), Var("R0",Imm(64))), Def(Tid(497, "%000001f1"), - Attrs([Attr("address","0x650"), Attr("insn","ldr x1, [sp]")]), - Var("R1",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(503, "%000001f7"), Attrs([Attr("address","0x654"), -Attr("insn","add x2, sp, #0x8")]), Var("R2",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(8,64))), Def(Tid(509, "%000001fd"), - Attrs([Attr("address","0x658"), Attr("insn","mov x6, sp")]), - Var("R6",Imm(64)), Var("R31",Imm(64))), Def(Tid(514, "%00000202"), - Attrs([Attr("address","0x65C"), Attr("insn","adrp x0, #65536")]), - Var("R0",Imm(64)), Int(65536,64)), Def(Tid(521, "%00000209"), - Attrs([Attr("address","0x660"), Attr("insn","ldr x0, [x0, #0xff0]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(4080,64)),LittleEndian(),64)), -Def(Tid(526, "%0000020e"), Attrs([Attr("address","0x664"), -Attr("insn","mov x3, #0x0")]), Var("R3",Imm(64)), Int(0,64)), -Def(Tid(531, "%00000213"), Attrs([Attr("address","0x668"), -Attr("insn","mov x4, #0x0")]), Var("R4",Imm(64)), Int(0,64)), -Def(Tid(536, "%00000218"), Attrs([Attr("address","0x66C"), -Attr("insn","bl #-0xac")]), Var("R30",Imm(64)), Int(1648,64))]), -Jmps([Call(Tid(539, "%0000021b"), Attrs([Attr("address","0x66C"), -Attr("insn","bl #-0xac")]), Int(1,1), -(Direct(Tid(1_460, "@__libc_start_main")),Direct(Tid(541, "%0000021d"))))])), -Blk(Tid(541, "%0000021d"), Attrs([Attr("address","0x670")]), Phis([]), -Defs([Def(Tid(544, "%00000220"), Attrs([Attr("address","0x670"), -Attr("insn","bl #-0x80")]), Var("R30",Imm(64)), Int(1652,64))]), -Jmps([Call(Tid(547, "%00000223"), Attrs([Attr("address","0x670"), -Attr("insn","bl #-0x80")]), Int(1,1), -(Direct(Tid(1_466, "@abort")),Direct(Tid(1_498, "%000005da"))))])), -Blk(Tid(1_498, "%000005da"), Attrs([]), Phis([]), Defs([]), -Jmps([Call(Tid(1_499, "%000005db"), Attrs([]), Int(1,1), -(Direct(Tid(1_467, "@call_weak_fn")),))]))])), Sub(Tid(1_466, "@abort"), - Attrs([Attr("noreturn","()"), Attr("c.proto","void (*)(void)"), -Attr("address","0x5F0"), Attr("stub","()")]), "abort", Args([]), -Blks([Blk(Tid(545, "@abort"), Attrs([Attr("address","0x5F0")]), Phis([]), -Defs([Def(Tid(1_143, "%00000477"), Attrs([Attr("address","0x5F0"), -Attr("insn","adrp x16, #65536")]), Var("R16",Imm(64)), Int(65536,64)), -Def(Tid(1_150, "%0000047e"), Attrs([Attr("address","0x5F4"), -Attr("insn","ldr x17, [x16, #0xfc8]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(4040,64)),LittleEndian(),64)), -Def(Tid(1_156, "%00000484"), Attrs([Attr("address","0x5F8"), -Attr("insn","add x16, x16, #0xfc8")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(4040,64)))]), Jmps([Call(Tid(1_161, "%00000489"), - Attrs([Attr("address","0x5FC"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), Sub(Tid(1_467, "@call_weak_fn"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x674")]), - "call_weak_fn", Args([Arg(Tid(1_516, "%000005ec"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("call_weak_fn_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(549, "@call_weak_fn"), - Attrs([Attr("address","0x674")]), Phis([]), Defs([Def(Tid(552, "%00000228"), - Attrs([Attr("address","0x674"), Attr("insn","adrp x0, #65536")]), - Var("R0",Imm(64)), Int(65536,64)), Def(Tid(559, "%0000022f"), - Attrs([Attr("address","0x678"), Attr("insn","ldr x0, [x0, #0xfe8]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(4072,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(565, "%00000235"), Attrs([Attr("address","0x67C"), -Attr("insn","cbz x0, #0x8")]), EQ(Var("R0",Imm(64)),Int(0,64)), -Direct(Tid(563, "%00000233"))), Goto(Tid(1_500, "%000005dc"), Attrs([]), - Int(1,1), Direct(Tid(915, "%00000393")))])), Blk(Tid(563, "%00000233"), - Attrs([Attr("address","0x684")]), Phis([]), Defs([]), -Jmps([Call(Tid(571, "%0000023b"), Attrs([Attr("address","0x684"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))])), -Blk(Tid(915, "%00000393"), Attrs([Attr("address","0x680")]), Phis([]), -Defs([]), Jmps([Goto(Tid(918, "%00000396"), Attrs([Attr("address","0x680"), -Attr("insn","b #-0xa0")]), Int(1,1), Direct(Tid(916, "@__gmon_start__")))])), -Blk(Tid(916, "@__gmon_start__"), Attrs([Attr("address","0x5E0")]), Phis([]), -Defs([Def(Tid(1_121, "%00000461"), Attrs([Attr("address","0x5E0"), -Attr("insn","adrp x16, #65536")]), Var("R16",Imm(64)), Int(65536,64)), -Def(Tid(1_128, "%00000468"), Attrs([Attr("address","0x5E4"), -Attr("insn","ldr x17, [x16, #0xfc0]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(4032,64)),LittleEndian(),64)), -Def(Tid(1_134, "%0000046e"), Attrs([Attr("address","0x5E8"), -Attr("insn","add x16, x16, #0xfc0")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(4032,64)))]), Jmps([Call(Tid(1_139, "%00000473"), - Attrs([Attr("address","0x5EC"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), -Sub(Tid(1_469, "@deregister_tm_clones"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x690")]), - "deregister_tm_clones", Args([Arg(Tid(1_517, "%000005ed"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("deregister_tm_clones_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(577, "@deregister_tm_clones"), - Attrs([Attr("address","0x690")]), Phis([]), Defs([Def(Tid(580, "%00000244"), - Attrs([Attr("address","0x690"), Attr("insn","adrp x0, #69632")]), - Var("R0",Imm(64)), Int(69632,64)), Def(Tid(586, "%0000024a"), - Attrs([Attr("address","0x694"), Attr("insn","add x0, x0, #0x10")]), - Var("R0",Imm(64)), PLUS(Var("R0",Imm(64)),Int(16,64))), -Def(Tid(591, "%0000024f"), Attrs([Attr("address","0x698"), -Attr("insn","adrp x1, #69632")]), Var("R1",Imm(64)), Int(69632,64)), -Def(Tid(597, "%00000255"), Attrs([Attr("address","0x69C"), -Attr("insn","add x1, x1, #0x10")]), Var("R1",Imm(64)), -PLUS(Var("R1",Imm(64)),Int(16,64))), Def(Tid(603, "%0000025b"), - Attrs([Attr("address","0x6A0"), Attr("insn","cmp x1, x0")]), - Var("#1",Imm(64)), NOT(Var("R0",Imm(64)))), Def(Tid(608, "%00000260"), - Attrs([Attr("address","0x6A0"), Attr("insn","cmp x1, x0")]), - Var("#2",Imm(64)), PLUS(Var("R1",Imm(64)),NOT(Var("R0",Imm(64))))), -Def(Tid(614, "%00000266"), Attrs([Attr("address","0x6A0"), -Attr("insn","cmp x1, x0")]), Var("VF",Imm(1)), -NEQ(SIGNED(65,PLUS(Var("#2",Imm(64)),Int(1,64))),PLUS(PLUS(SIGNED(65,Var("R1",Imm(64))),SIGNED(65,Var("#1",Imm(64)))),Int(1,65)))), -Def(Tid(620, "%0000026c"), Attrs([Attr("address","0x6A0"), -Attr("insn","cmp x1, x0")]), Var("CF",Imm(1)), -NEQ(UNSIGNED(65,PLUS(Var("#2",Imm(64)),Int(1,64))),PLUS(PLUS(UNSIGNED(65,Var("R1",Imm(64))),UNSIGNED(65,Var("#1",Imm(64)))),Int(1,65)))), -Def(Tid(624, "%00000270"), Attrs([Attr("address","0x6A0"), -Attr("insn","cmp x1, x0")]), Var("ZF",Imm(1)), -EQ(PLUS(Var("#2",Imm(64)),Int(1,64)),Int(0,64))), Def(Tid(628, "%00000274"), - Attrs([Attr("address","0x6A0"), Attr("insn","cmp x1, x0")]), - Var("NF",Imm(1)), Extract(63,63,PLUS(Var("#2",Imm(64)),Int(1,64))))]), -Jmps([Goto(Tid(634, "%0000027a"), Attrs([Attr("address","0x6A4"), -Attr("insn","b.eq #0x18")]), EQ(Var("ZF",Imm(1)),Int(1,1)), -Direct(Tid(632, "%00000278"))), Goto(Tid(1_501, "%000005dd"), Attrs([]), - Int(1,1), Direct(Tid(885, "%00000375")))])), Blk(Tid(885, "%00000375"), - Attrs([Attr("address","0x6A8")]), Phis([]), Defs([Def(Tid(888, "%00000378"), - Attrs([Attr("address","0x6A8"), Attr("insn","adrp x1, #65536")]), - Var("R1",Imm(64)), Int(65536,64)), Def(Tid(895, "%0000037f"), - Attrs([Attr("address","0x6AC"), Attr("insn","ldr x1, [x1, #0xfd8]")]), - Var("R1",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R1",Imm(64)),Int(4056,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(900, "%00000384"), Attrs([Attr("address","0x6B0"), -Attr("insn","cbz x1, #0xc")]), EQ(Var("R1",Imm(64)),Int(0,64)), -Direct(Tid(632, "%00000278"))), Goto(Tid(1_502, "%000005de"), Attrs([]), - Int(1,1), Direct(Tid(904, "%00000388")))])), Blk(Tid(632, "%00000278"), - Attrs([Attr("address","0x6BC")]), Phis([]), Defs([]), -Jmps([Call(Tid(640, "%00000280"), Attrs([Attr("address","0x6BC"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))])), -Blk(Tid(904, "%00000388"), Attrs([Attr("address","0x6B4")]), Phis([]), -Defs([Def(Tid(908, "%0000038c"), Attrs([Attr("address","0x6B4"), -Attr("insn","mov x16, x1")]), Var("R16",Imm(64)), Var("R1",Imm(64)))]), -Jmps([Call(Tid(913, "%00000391"), Attrs([Attr("address","0x6B8"), -Attr("insn","br x16")]), Int(1,1), (Indirect(Var("R16",Imm(64))),))]))])), -Sub(Tid(1_472, "@frame_dummy"), Attrs([Attr("c.proto","signed (*)(void)"), -Attr("address","0x750")]), "frame_dummy", Args([Arg(Tid(1_518, "%000005ee"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("frame_dummy_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(792, "@frame_dummy"), - Attrs([Attr("address","0x750")]), Phis([]), Defs([]), -Jmps([Call(Tid(794, "%0000031a"), Attrs([Attr("address","0x750"), -Attr("insn","b #-0x90")]), Int(1,1), -(Direct(Tid(1_474, "@register_tm_clones")),))]))])), Sub(Tid(1_473, "@main"), - Attrs([Attr("c.proto","signed (*)(signed argc, const char** argv)"), -Attr("address","0x600"), Attr("stub","()")]), "main", - Args([Arg(Tid(1_519, "%000005ef"), Attrs([Attr("c.layout","[signed : 32]"), -Attr("c.data","Top:u32"), Attr("c.type","signed")]), - Var("main_argc",Imm(32)), LOW(32,Var("R0",Imm(64))), In()), -Arg(Tid(1_520, "%000005f0"), Attrs([Attr("c.layout","**[char : 8]"), -Attr("c.data","Top:u8 ptr ptr"), Attr("c.type"," const char**")]), - Var("main_argv",Imm(64)), Var("R1",Imm(64)), Both()), -Arg(Tid(1_521, "%000005f1"), Attrs([Attr("c.layout","[signed : 32]"), -Attr("c.data","Top:u32"), Attr("c.type","signed")]), - Var("main_result",Imm(32)), LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(424, "@main"), Attrs([Attr("address","0x600")]), Phis([]), -Defs([Def(Tid(427, "%000001ab"), Attrs([Attr("address","0x600"), -Attr("insn","adrp x1, #69632")]), Var("R1",Imm(64)), Int(69632,64)), -Def(Tid(432, "%000001b0"), Attrs([Attr("address","0x604"), -Attr("insn","mov w2, #0x1")]), Var("R2",Imm(64)), Int(1,64)), -Def(Tid(437, "%000001b5"), Attrs([Attr("address","0x608"), -Attr("insn","mov w0, #0x0")]), Var("R0",Imm(64)), Int(0,64)), -Def(Tid(445, "%000001bd"), Attrs([Attr("address","0x60C"), -Attr("insn","str w2, [x1, #0x14]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R1",Imm(64)),Int(20,64)),Extract(31,0,Var("R2",Imm(64))),LittleEndian(),32))]), -Jmps([Call(Tid(450, "%000001c2"), Attrs([Attr("address","0x610"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))]))])), -Sub(Tid(1_474, "@register_tm_clones"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x6C0")]), - "register_tm_clones", Args([Arg(Tid(1_522, "%000005f2"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("register_tm_clones_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(642, "@register_tm_clones"), Attrs([Attr("address","0x6C0")]), - Phis([]), Defs([Def(Tid(645, "%00000285"), Attrs([Attr("address","0x6C0"), -Attr("insn","adrp x0, #69632")]), Var("R0",Imm(64)), Int(69632,64)), -Def(Tid(651, "%0000028b"), Attrs([Attr("address","0x6C4"), -Attr("insn","add x0, x0, #0x10")]), Var("R0",Imm(64)), -PLUS(Var("R0",Imm(64)),Int(16,64))), Def(Tid(656, "%00000290"), - Attrs([Attr("address","0x6C8"), Attr("insn","adrp x1, #69632")]), - Var("R1",Imm(64)), Int(69632,64)), Def(Tid(662, "%00000296"), - Attrs([Attr("address","0x6CC"), Attr("insn","add x1, x1, #0x10")]), - Var("R1",Imm(64)), PLUS(Var("R1",Imm(64)),Int(16,64))), -Def(Tid(669, "%0000029d"), Attrs([Attr("address","0x6D0"), -Attr("insn","sub x1, x1, x0")]), Var("R1",Imm(64)), -PLUS(PLUS(Var("R1",Imm(64)),NOT(Var("R0",Imm(64)))),Int(1,64))), -Def(Tid(675, "%000002a3"), Attrs([Attr("address","0x6D4"), -Attr("insn","lsr x2, x1, #63")]), Var("R2",Imm(64)), -Concat(Int(0,63),Extract(63,63,Var("R1",Imm(64))))), -Def(Tid(682, "%000002aa"), Attrs([Attr("address","0x6D8"), -Attr("insn","add x1, x2, x1, asr #3")]), Var("R1",Imm(64)), -PLUS(Var("R2",Imm(64)),ARSHIFT(Var("R1",Imm(64)),Int(3,3)))), -Def(Tid(688, "%000002b0"), Attrs([Attr("address","0x6DC"), -Attr("insn","asr x1, x1, #1")]), Var("R1",Imm(64)), -SIGNED(64,Extract(63,1,Var("R1",Imm(64)))))]), -Jmps([Goto(Tid(694, "%000002b6"), Attrs([Attr("address","0x6E0"), -Attr("insn","cbz x1, #0x18")]), EQ(Var("R1",Imm(64)),Int(0,64)), -Direct(Tid(692, "%000002b4"))), Goto(Tid(1_503, "%000005df"), Attrs([]), - Int(1,1), Direct(Tid(855, "%00000357")))])), Blk(Tid(855, "%00000357"), - Attrs([Attr("address","0x6E4")]), Phis([]), Defs([Def(Tid(858, "%0000035a"), - Attrs([Attr("address","0x6E4"), Attr("insn","adrp x2, #65536")]), - Var("R2",Imm(64)), Int(65536,64)), Def(Tid(865, "%00000361"), - Attrs([Attr("address","0x6E8"), Attr("insn","ldr x2, [x2, #0xff8]")]), - Var("R2",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R2",Imm(64)),Int(4088,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(870, "%00000366"), Attrs([Attr("address","0x6EC"), -Attr("insn","cbz x2, #0xc")]), EQ(Var("R2",Imm(64)),Int(0,64)), -Direct(Tid(692, "%000002b4"))), Goto(Tid(1_504, "%000005e0"), Attrs([]), - Int(1,1), Direct(Tid(874, "%0000036a")))])), Blk(Tid(692, "%000002b4"), - Attrs([Attr("address","0x6F8")]), Phis([]), Defs([]), -Jmps([Call(Tid(700, "%000002bc"), Attrs([Attr("address","0x6F8"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))])), -Blk(Tid(874, "%0000036a"), Attrs([Attr("address","0x6F0")]), Phis([]), -Defs([Def(Tid(878, "%0000036e"), Attrs([Attr("address","0x6F0"), -Attr("insn","mov x16, x2")]), Var("R16",Imm(64)), Var("R2",Imm(64)))]), -Jmps([Call(Tid(883, "%00000373"), Attrs([Attr("address","0x6F4"), -Attr("insn","br x16")]), Int(1,1), -(Indirect(Var("R16",Imm(64))),))]))]))]))) \ No newline at end of file diff --git a/src/test/correct/no_interference_update_x/gcc_O2/no_interference_update_x.bir b/src/test/correct/no_interference_update_x/gcc_O2/no_interference_update_x.bir deleted file mode 100644 index d74cdd8e2..000000000 --- a/src/test/correct/no_interference_update_x/gcc_O2/no_interference_update_x.bir +++ /dev/null @@ -1,227 +0,0 @@ -000005e1: program -000005af: sub __cxa_finalize(__cxa_finalize_result) -000005e2: __cxa_finalize_result :: out u32 = low:32[R0] - -00000353: -0000044b: R16 := 0x10000 -00000452: R17 := mem[R16 + 0xFB8, el]:u64 -00000458: R16 := R16 + 0xFB8 -0000045d: call R17 with noreturn - -000005b0: sub __do_global_dtors_aux(__do_global_dtors_aux_result) -000005e3: __do_global_dtors_aux_result :: out u32 = low:32[R0] - -000002c0: -000002c4: #3 := R31 - 0x20 -000002ca: mem := mem with [#3, el]:u64 <- R29 -000002d0: mem := mem with [#3 + 8, el]:u64 <- R30 -000002d4: R31 := #3 -000002da: R29 := R31 -000002e2: mem := mem with [R31 + 0x10, el]:u64 <- R19 -000002e7: R19 := 0x11000 -000002ee: R0 := pad:64[mem[R19 + 0x10]] -000002f5: when 31:0[R0] <> 0 goto %000002f3 -000005d7: goto %0000031c - -0000031c: -0000031f: R0 := 0x10000 -00000326: R0 := mem[R0 + 0xFE0, el]:u64 -0000032c: when R0 = 0 goto %0000032a -000005d8: goto %00000343 - -00000343: -00000346: R0 := 0x11000 -0000034d: R0 := mem[R0 + 8, el]:u64 -00000352: R30 := 0x730 -00000355: call @__cxa_finalize with return %0000032a - -0000032a: -00000332: R30 := 0x734 -00000334: call @deregister_tm_clones with return %00000336 - -00000336: -00000339: R0 := 1 -00000341: mem := mem with [R19 + 0x10] <- 7:0[R0] -000005d9: goto %000002f3 - -000002f3: -000002fd: R19 := mem[R31 + 0x10, el]:u64 -00000304: R29 := mem[R31, el]:u64 -00000309: R30 := mem[R31 + 8, el]:u64 -0000030d: R31 := R31 + 0x20 -00000312: call R30 with noreturn - -000005b4: sub __libc_start_main(__libc_start_main_main, __libc_start_main_arg2, __libc_start_main_arg3, __libc_start_main_auxv, __libc_start_main_result) -000005e4: __libc_start_main_main :: in u64 = R0 -000005e5: __libc_start_main_arg2 :: in u32 = low:32[R1] -000005e6: __libc_start_main_arg3 :: in out u64 = R2 -000005e7: __libc_start_main_auxv :: in out u64 = R3 -000005e8: __libc_start_main_result :: out u32 = low:32[R0] - -00000219: -00000435: R16 := 0x10000 -0000043c: R17 := mem[R16 + 0xFB0, el]:u64 -00000442: R16 := R16 + 0xFB0 -00000447: call R17 with noreturn - -000005b5: sub _fini(_fini_result) -000005e9: _fini_result :: out u32 = low:32[R0] - -0000001f: -00000025: #0 := R31 - 0x10 -0000002b: mem := mem with [#0, el]:u64 <- R29 -00000031: mem := mem with [#0 + 8, el]:u64 <- R30 -00000035: R31 := #0 -0000003b: R29 := R31 -00000042: R29 := mem[R31, el]:u64 -00000047: R30 := mem[R31 + 8, el]:u64 -0000004b: R31 := R31 + 0x10 -00000050: call R30 with noreturn - -000005b6: sub _init(_init_result) -000005ea: _init_result :: out u32 = low:32[R0] - -00000501: -00000507: #5 := R31 - 0x10 -0000050d: mem := mem with [#5, el]:u64 <- R29 -00000513: mem := mem with [#5 + 8, el]:u64 <- R30 -00000517: R31 := #5 -0000051d: R29 := R31 -00000522: R30 := 0x590 -00000524: call @call_weak_fn with return %00000526 - -00000526: -0000052b: R29 := mem[R31, el]:u64 -00000530: R30 := mem[R31 + 8, el]:u64 -00000534: R31 := R31 + 0x10 -00000539: call R30 with noreturn - -000005b7: sub _start(_start_result) -000005eb: _start_result :: out u32 = low:32[R0] - -000001da: -000001df: R29 := 0 -000001e4: R30 := 0 -000001ea: R5 := R0 -000001f1: R1 := mem[R31, el]:u64 -000001f7: R2 := R31 + 8 -000001fd: R6 := R31 -00000202: R0 := 0x10000 -00000209: R0 := mem[R0 + 0xFF0, el]:u64 -0000020e: R3 := 0 -00000213: R4 := 0 -00000218: R30 := 0x670 -0000021b: call @__libc_start_main with return %0000021d - -0000021d: -00000220: R30 := 0x674 -00000223: call @abort with return %000005da - -000005da: -000005db: call @call_weak_fn with noreturn - -000005ba: sub abort() - - -00000221: -00000477: R16 := 0x10000 -0000047e: R17 := mem[R16 + 0xFC8, el]:u64 -00000484: R16 := R16 + 0xFC8 -00000489: call R17 with noreturn - -000005bb: sub call_weak_fn(call_weak_fn_result) -000005ec: call_weak_fn_result :: out u32 = low:32[R0] - -00000225: -00000228: R0 := 0x10000 -0000022f: R0 := mem[R0 + 0xFE8, el]:u64 -00000235: when R0 = 0 goto %00000233 -000005dc: goto %00000393 - -00000233: -0000023b: call R30 with noreturn - -00000393: -00000396: goto @__gmon_start__ - -00000394: -00000461: R16 := 0x10000 -00000468: R17 := mem[R16 + 0xFC0, el]:u64 -0000046e: R16 := R16 + 0xFC0 -00000473: call R17 with noreturn - -000005bd: sub deregister_tm_clones(deregister_tm_clones_result) -000005ed: deregister_tm_clones_result :: out u32 = low:32[R0] - -00000241: -00000244: R0 := 0x11000 -0000024a: R0 := R0 + 0x10 -0000024f: R1 := 0x11000 -00000255: R1 := R1 + 0x10 -0000025b: #1 := ~R0 -00000260: #2 := R1 + ~R0 -00000266: VF := extend:65[#2 + 1] <> extend:65[R1] + extend:65[#1] + 1 -0000026c: CF := pad:65[#2 + 1] <> pad:65[R1] + pad:65[#1] + 1 -00000270: ZF := #2 + 1 = 0 -00000274: NF := 63:63[#2 + 1] -0000027a: when ZF goto %00000278 -000005dd: goto %00000375 - -00000375: -00000378: R1 := 0x10000 -0000037f: R1 := mem[R1 + 0xFD8, el]:u64 -00000384: when R1 = 0 goto %00000278 -000005de: goto %00000388 - -00000278: -00000280: call R30 with noreturn - -00000388: -0000038c: R16 := R1 -00000391: call R16 with noreturn - -000005c0: sub frame_dummy(frame_dummy_result) -000005ee: frame_dummy_result :: out u32 = low:32[R0] - -00000318: -0000031a: call @register_tm_clones with noreturn - -000005c1: sub main(main_argc, main_argv, main_result) -000005ef: main_argc :: in u32 = low:32[R0] -000005f0: main_argv :: in out u64 = R1 -000005f1: main_result :: out u32 = low:32[R0] - -000001a8: -000001ab: R1 := 0x11000 -000001b0: R2 := 1 -000001b5: R0 := 0 -000001bd: mem := mem with [R1 + 0x14, el]:u32 <- 31:0[R2] -000001c2: call R30 with noreturn - -000005c2: sub register_tm_clones(register_tm_clones_result) -000005f2: register_tm_clones_result :: out u32 = low:32[R0] - -00000282: -00000285: R0 := 0x11000 -0000028b: R0 := R0 + 0x10 -00000290: R1 := 0x11000 -00000296: R1 := R1 + 0x10 -0000029d: R1 := R1 + ~R0 + 1 -000002a3: R2 := 0.63:63[R1] -000002aa: R1 := R2 + (R1 ~>> 3) -000002b0: R1 := extend:64[63:1[R1]] -000002b6: when R1 = 0 goto %000002b4 -000005df: goto %00000357 - -00000357: -0000035a: R2 := 0x10000 -00000361: R2 := mem[R2 + 0xFF8, el]:u64 -00000366: when R2 = 0 goto %000002b4 -000005e0: goto %0000036a - -000002b4: -000002bc: call R30 with noreturn - -0000036a: -0000036e: R16 := R2 -00000373: call R16 with noreturn diff --git a/src/test/correct/no_interference_update_x/gcc_O2/no_interference_update_x.expected b/src/test/correct/no_interference_update_x/gcc_O2/no_interference_update_x.expected index 596613f52..4979c392b 100644 --- a/src/test/correct/no_interference_update_x/gcc_O2/no_interference_update_x.expected +++ b/src/test/correct/no_interference_update_x/gcc_O2/no_interference_update_x.expected @@ -66,7 +66,7 @@ implementation {:extern} guarantee_reflexive() assert (memory_load32_le(mem, $y_addr) == memory_load32_le(mem, $y_addr)); } -procedure main_1536(); +procedure main(); modifies Gamma_R0, Gamma_R1, Gamma_R2, Gamma_mem, R0, R1, R2, mem; free requires (memory_load64_le(mem, 69632bv64) == 0bv64); free requires (memory_load64_le(mem, 69640bv64) == 69640bv64); @@ -82,7 +82,7 @@ procedure main_1536(); free ensures (memory_load64_le(mem, 69616bv64) == 1536bv64); free ensures (memory_load64_le(mem, 69640bv64) == 69640bv64); -implementation main_1536() +implementation main() { var y_old: bv32; lmain: @@ -91,14 +91,14 @@ implementation main_1536() R2, Gamma_R2 := 1bv64, true; R0, Gamma_R0 := 0bv64, true; call rely(); - y_old := memory_load32_le(mem, $y_addr); assert (L(mem, bvadd64(R1, 20bv64)) ==> Gamma_R2); + y_old := memory_load32_le(mem, $y_addr); mem, Gamma_mem := memory_store32_le(mem, bvadd64(R1, 20bv64), R2[32:0]), gamma_store32(Gamma_mem, bvadd64(R1, 20bv64), Gamma_R2); assert (memory_load32_le(mem, $y_addr) == y_old); assume {:captureState "%000001bd"} true; - goto main_1536_basil_return; - main_1536_basil_return: - assume {:captureState "main_1536_basil_return"} true; + goto main_basil_return; + main_basil_return: + assume {:captureState "main_basil_return"} true; return; } diff --git a/src/test/correct/no_interference_update_x/gcc_O2/no_interference_update_x.gts b/src/test/correct/no_interference_update_x/gcc_O2/no_interference_update_x.gts deleted file mode 100644 index 3313e911b..000000000 Binary files a/src/test/correct/no_interference_update_x/gcc_O2/no_interference_update_x.gts and /dev/null differ diff --git a/src/test/correct/no_interference_update_x/gcc_O2/no_interference_update_x.md5sum b/src/test/correct/no_interference_update_x/gcc_O2/no_interference_update_x.md5sum new file mode 100644 index 000000000..198047fce --- /dev/null +++ b/src/test/correct/no_interference_update_x/gcc_O2/no_interference_update_x.md5sum @@ -0,0 +1,5 @@ +3c9c87894cd620438ca1f1ee7e22e75b correct/no_interference_update_x/gcc_O2/a.out +e9d8145ed52769608e520f1762d08002 correct/no_interference_update_x/gcc_O2/no_interference_update_x.adt +59355aca43df0f24dafd3fe145e941e4 correct/no_interference_update_x/gcc_O2/no_interference_update_x.bir +3e54a7136bc456c4235393cf0f223a80 correct/no_interference_update_x/gcc_O2/no_interference_update_x.relf +0a720387556384b9d9f87babebda4542 correct/no_interference_update_x/gcc_O2/no_interference_update_x.gts diff --git a/src/test/correct/no_interference_update_x/gcc_O2/no_interference_update_x.relf b/src/test/correct/no_interference_update_x/gcc_O2/no_interference_update_x.relf deleted file mode 100644 index c960e3540..000000000 --- a/src/test/correct/no_interference_update_x/gcc_O2/no_interference_update_x.relf +++ /dev/null @@ -1,122 +0,0 @@ - -Relocation section '.rela.dyn' at offset 0x460 contains 8 entries: - Offset Info Type Symbol's Value Symbol's Name + Addend -0000000000010d98 0000000000000403 R_AARCH64_RELATIVE 750 -0000000000010da0 0000000000000403 R_AARCH64_RELATIVE 700 -0000000000010ff0 0000000000000403 R_AARCH64_RELATIVE 600 -0000000000011008 0000000000000403 R_AARCH64_RELATIVE 11008 -0000000000010fd8 0000000400000401 R_AARCH64_GLOB_DAT 0000000000000000 _ITM_deregisterTMCloneTable + 0 -0000000000010fe0 0000000500000401 R_AARCH64_GLOB_DAT 0000000000000000 __cxa_finalize@GLIBC_2.17 + 0 -0000000000010fe8 0000000600000401 R_AARCH64_GLOB_DAT 0000000000000000 __gmon_start__ + 0 -0000000000010ff8 0000000800000401 R_AARCH64_GLOB_DAT 0000000000000000 _ITM_registerTMCloneTable + 0 - -Relocation section '.rela.plt' at offset 0x520 contains 4 entries: - Offset Info Type Symbol's Value Symbol's Name + Addend -0000000000010fb0 0000000300000402 R_AARCH64_JUMP_SLOT 0000000000000000 __libc_start_main@GLIBC_2.34 + 0 -0000000000010fb8 0000000500000402 R_AARCH64_JUMP_SLOT 0000000000000000 __cxa_finalize@GLIBC_2.17 + 0 -0000000000010fc0 0000000600000402 R_AARCH64_JUMP_SLOT 0000000000000000 __gmon_start__ + 0 -0000000000010fc8 0000000700000402 R_AARCH64_JUMP_SLOT 0000000000000000 abort@GLIBC_2.17 + 0 - -Symbol table '.dynsym' contains 9 entries: - Num: Value Size Type Bind Vis Ndx Name - 0: 0000000000000000 0 NOTYPE LOCAL DEFAULT UND - 1: 0000000000000580 0 SECTION LOCAL DEFAULT 11 .init - 2: 0000000000011000 0 SECTION LOCAL DEFAULT 22 .data - 3: 0000000000000000 0 FUNC GLOBAL DEFAULT UND __libc_start_main@GLIBC_2.34 (2) - 4: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_deregisterTMCloneTable - 5: 0000000000000000 0 FUNC WEAK DEFAULT UND __cxa_finalize@GLIBC_2.17 (3) - 6: 0000000000000000 0 NOTYPE WEAK DEFAULT UND __gmon_start__ - 7: 0000000000000000 0 FUNC GLOBAL DEFAULT UND abort@GLIBC_2.17 (3) - 8: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_registerTMCloneTable - -Symbol table '.symtab' contains 89 entries: - Num: Value Size Type Bind Vis Ndx Name - 0: 0000000000000000 0 NOTYPE LOCAL DEFAULT UND - 1: 0000000000000238 0 SECTION LOCAL DEFAULT 1 .interp - 2: 0000000000000254 0 SECTION LOCAL DEFAULT 2 .note.gnu.build-id - 3: 0000000000000278 0 SECTION LOCAL DEFAULT 3 .note.ABI-tag - 4: 0000000000000298 0 SECTION LOCAL DEFAULT 4 .gnu.hash - 5: 00000000000002b8 0 SECTION LOCAL DEFAULT 5 .dynsym - 6: 0000000000000390 0 SECTION LOCAL DEFAULT 6 .dynstr - 7: 000000000000041e 0 SECTION LOCAL DEFAULT 7 .gnu.version - 8: 0000000000000430 0 SECTION LOCAL DEFAULT 8 .gnu.version_r - 9: 0000000000000460 0 SECTION LOCAL DEFAULT 9 .rela.dyn - 10: 0000000000000520 0 SECTION LOCAL DEFAULT 10 .rela.plt - 11: 0000000000000580 0 SECTION LOCAL DEFAULT 11 .init - 12: 00000000000005a0 0 SECTION LOCAL DEFAULT 12 .plt - 13: 0000000000000600 0 SECTION LOCAL DEFAULT 13 .text - 14: 0000000000000754 0 SECTION LOCAL DEFAULT 14 .fini - 15: 0000000000000768 0 SECTION LOCAL DEFAULT 15 .rodata - 16: 000000000000076c 0 SECTION LOCAL DEFAULT 16 .eh_frame_hdr - 17: 00000000000007a8 0 SECTION LOCAL DEFAULT 17 .eh_frame - 18: 0000000000010d98 0 SECTION LOCAL DEFAULT 18 .init_array - 19: 0000000000010da0 0 SECTION LOCAL DEFAULT 19 .fini_array - 20: 0000000000010da8 0 SECTION LOCAL DEFAULT 20 .dynamic - 21: 0000000000010f98 0 SECTION LOCAL DEFAULT 21 .got - 22: 0000000000011000 0 SECTION LOCAL DEFAULT 22 .data - 23: 0000000000011010 0 SECTION LOCAL DEFAULT 23 .bss - 24: 0000000000000000 0 SECTION LOCAL DEFAULT 24 .comment - 25: 0000000000000000 0 FILE LOCAL DEFAULT ABS Scrt1.o - 26: 0000000000000278 0 NOTYPE LOCAL DEFAULT 3 $d - 27: 0000000000000278 32 OBJECT LOCAL DEFAULT 3 __abi_tag - 28: 0000000000000640 0 NOTYPE LOCAL DEFAULT 13 $x - 29: 00000000000007bc 0 NOTYPE LOCAL DEFAULT 17 $d - 30: 0000000000000768 0 NOTYPE LOCAL DEFAULT 15 $d - 31: 0000000000000000 0 FILE LOCAL DEFAULT ABS crti.o - 32: 0000000000000674 0 NOTYPE LOCAL DEFAULT 13 $x - 33: 0000000000000674 20 FUNC LOCAL DEFAULT 13 call_weak_fn - 34: 0000000000000580 0 NOTYPE LOCAL DEFAULT 11 $x - 35: 0000000000000754 0 NOTYPE LOCAL DEFAULT 14 $x - 36: 0000000000000000 0 FILE LOCAL DEFAULT ABS crtn.o - 37: 0000000000000590 0 NOTYPE LOCAL DEFAULT 11 $x - 38: 0000000000000760 0 NOTYPE LOCAL DEFAULT 14 $x - 39: 0000000000000000 0 FILE LOCAL DEFAULT ABS no_interference_update_x.c - 40: 0000000000000600 0 NOTYPE LOCAL DEFAULT 13 $x - 41: 0000000000011014 0 NOTYPE LOCAL DEFAULT 23 $d - 42: 0000000000000830 0 NOTYPE LOCAL DEFAULT 17 $d - 43: 0000000000000000 0 FILE LOCAL DEFAULT ABS crtstuff.c - 44: 0000000000000690 0 NOTYPE LOCAL DEFAULT 13 $x - 45: 0000000000000690 0 FUNC LOCAL DEFAULT 13 deregister_tm_clones - 46: 00000000000006c0 0 FUNC LOCAL DEFAULT 13 register_tm_clones - 47: 0000000000011008 0 NOTYPE LOCAL DEFAULT 22 $d - 48: 0000000000000700 0 FUNC LOCAL DEFAULT 13 __do_global_dtors_aux - 49: 0000000000011010 1 OBJECT LOCAL DEFAULT 23 completed.0 - 50: 0000000000010da0 0 NOTYPE LOCAL DEFAULT 19 $d - 51: 0000000000010da0 0 OBJECT LOCAL DEFAULT 19 __do_global_dtors_aux_fini_array_entry - 52: 0000000000000750 0 FUNC LOCAL DEFAULT 13 frame_dummy - 53: 0000000000010d98 0 NOTYPE LOCAL DEFAULT 18 $d - 54: 0000000000010d98 0 OBJECT LOCAL DEFAULT 18 __frame_dummy_init_array_entry - 55: 00000000000007d0 0 NOTYPE LOCAL DEFAULT 17 $d - 56: 0000000000011010 0 NOTYPE LOCAL DEFAULT 23 $d - 57: 0000000000000000 0 FILE LOCAL DEFAULT ABS crtstuff.c - 58: 0000000000000844 0 NOTYPE LOCAL DEFAULT 17 $d - 59: 0000000000000844 0 OBJECT LOCAL DEFAULT 17 __FRAME_END__ - 60: 0000000000000000 0 FILE LOCAL DEFAULT ABS - 61: 0000000000010da8 0 OBJECT LOCAL DEFAULT ABS _DYNAMIC - 62: 000000000000076c 0 NOTYPE LOCAL DEFAULT 16 __GNU_EH_FRAME_HDR - 63: 0000000000010fd0 0 OBJECT LOCAL DEFAULT ABS _GLOBAL_OFFSET_TABLE_ - 64: 00000000000005a0 0 NOTYPE LOCAL DEFAULT 12 $x - 65: 0000000000000000 0 FUNC GLOBAL DEFAULT UND __libc_start_main@GLIBC_2.34 - 66: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_deregisterTMCloneTable - 67: 0000000000011000 0 NOTYPE WEAK DEFAULT 22 data_start - 68: 0000000000011010 0 NOTYPE GLOBAL DEFAULT 23 __bss_start__ - 69: 0000000000000000 0 FUNC WEAK DEFAULT UND __cxa_finalize@GLIBC_2.17 - 70: 0000000000011020 0 NOTYPE GLOBAL DEFAULT 23 _bss_end__ - 71: 0000000000011010 0 NOTYPE GLOBAL DEFAULT 22 _edata - 72: 0000000000011014 4 OBJECT GLOBAL DEFAULT 23 x - 73: 0000000000000754 0 FUNC GLOBAL HIDDEN 14 _fini - 74: 0000000000011020 0 NOTYPE GLOBAL DEFAULT 23 __bss_end__ - 75: 0000000000011000 0 NOTYPE GLOBAL DEFAULT 22 __data_start - 76: 0000000000000000 0 NOTYPE WEAK DEFAULT UND __gmon_start__ - 77: 0000000000011008 0 OBJECT GLOBAL HIDDEN 22 __dso_handle - 78: 0000000000000000 0 FUNC GLOBAL DEFAULT UND abort@GLIBC_2.17 - 79: 0000000000000768 4 OBJECT GLOBAL DEFAULT 15 _IO_stdin_used - 80: 0000000000011020 0 NOTYPE GLOBAL DEFAULT 23 _end - 81: 0000000000000640 52 FUNC GLOBAL DEFAULT 13 _start - 82: 0000000000011020 0 NOTYPE GLOBAL DEFAULT 23 __end__ - 83: 0000000000011018 4 OBJECT GLOBAL DEFAULT 23 y - 84: 0000000000011010 0 NOTYPE GLOBAL DEFAULT 23 __bss_start - 85: 0000000000000600 20 FUNC GLOBAL DEFAULT 13 main - 86: 0000000000011010 0 OBJECT GLOBAL HIDDEN 22 __TMC_END__ - 87: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_registerTMCloneTable - 88: 0000000000000580 0 FUNC GLOBAL HIDDEN 11 _init diff --git a/src/test/correct/no_interference_update_x/gcc_O2/no_interference_update_x_gtirb.expected b/src/test/correct/no_interference_update_x/gcc_O2/no_interference_update_x_gtirb.expected index 51f33f546..e53c49059 100644 --- a/src/test/correct/no_interference_update_x/gcc_O2/no_interference_update_x_gtirb.expected +++ b/src/test/correct/no_interference_update_x/gcc_O2/no_interference_update_x_gtirb.expected @@ -66,7 +66,7 @@ implementation {:extern} guarantee_reflexive() assert (memory_load32_le(mem, $y_addr) == memory_load32_le(mem, $y_addr)); } -procedure main_1536(); +procedure main(); modifies Gamma_R0, Gamma_R1, Gamma_R2, Gamma_mem, R0, R1, R2, mem; free requires (memory_load64_le(mem, 69632bv64) == 0bv64); free requires (memory_load64_le(mem, 69640bv64) == 69640bv64); @@ -82,23 +82,23 @@ procedure main_1536(); free ensures (memory_load64_le(mem, 69616bv64) == 1536bv64); free ensures (memory_load64_le(mem, 69640bv64) == 69640bv64); -implementation main_1536() +implementation main() { var y_old: bv32; - main_1536__0__RLJgOu_IRpaLPAvA5PJYnQ: - assume {:captureState "main_1536__0__RLJgOu_IRpaLPAvA5PJYnQ"} true; + $main$__0__$RLJgOu_IRpaLPAvA5PJYnQ: + assume {:captureState "$main$__0__$RLJgOu_IRpaLPAvA5PJYnQ"} true; R1, Gamma_R1 := 69632bv64, true; R2, Gamma_R2 := 1bv64, true; R0, Gamma_R0 := 0bv64, true; call rely(); - y_old := memory_load32_le(mem, $y_addr); assert (L(mem, bvadd64(R1, 20bv64)) ==> Gamma_R2); + y_old := memory_load32_le(mem, $y_addr); mem, Gamma_mem := memory_store32_le(mem, bvadd64(R1, 20bv64), R2[32:0]), gamma_store32(Gamma_mem, bvadd64(R1, 20bv64), Gamma_R2); assert (memory_load32_le(mem, $y_addr) == y_old); - assume {:captureState "1548_0"} true; - goto main_1536_basil_return; - main_1536_basil_return: - assume {:captureState "main_1536_basil_return"} true; + assume {:captureState "1548$0"} true; + goto main_basil_return; + main_basil_return: + assume {:captureState "main_basil_return"} true; return; } diff --git a/src/test/correct/no_interference_update_x/gcc_pic/no_interference_update_x.adt b/src/test/correct/no_interference_update_x/gcc_pic/no_interference_update_x.adt deleted file mode 100644 index fdd87cca8..000000000 --- a/src/test/correct/no_interference_update_x/gcc_pic/no_interference_update_x.adt +++ /dev/null @@ -1,495 +0,0 @@ -Project(Attrs([Attr("filename","\"gcc_pic/no_interference_update_x.out\""), -Attr("image-specification","(declare abi (name str))\n(declare arch (name str))\n(declare base-address (addr int))\n(declare bias (off int))\n(declare bits (size int))\n(declare code-region (addr int) (size int) (off int))\n(declare code-start (addr int))\n(declare entry-point (addr int))\n(declare external-reference (addr int) (name str))\n(declare format (name str))\n(declare is-executable (flag bool))\n(declare is-little-endian (flag bool))\n(declare llvm:base-address (addr int))\n(declare llvm:code-entry (name str) (off int) (size int))\n(declare llvm:coff-import-library (name str))\n(declare llvm:coff-virtual-section-header (name str) (addr int) (size int))\n(declare llvm:elf-program-header (name str) (off int) (size int))\n(declare llvm:elf-program-header-flags (name str) (ld bool) (r bool) \n (w bool) (x bool))\n(declare llvm:elf-virtual-program-header (name str) (addr int) (size int))\n(declare llvm:entry-point (addr int))\n(declare llvm:macho-symbol (name str) (value int))\n(declare llvm:name-reference (at int) (name str))\n(declare llvm:relocation (at int) (addr int))\n(declare llvm:section-entry (name str) (addr int) (size int) (off int))\n(declare llvm:section-flags (name str) (r bool) (w bool) (x bool))\n(declare llvm:segment-command (name str) (off int) (size int))\n(declare llvm:segment-command-flags (name str) (r bool) (w bool) (x bool))\n(declare llvm:symbol-entry (name str) (addr int) (size int) (off int)\n (value int))\n(declare llvm:virtual-segment-command (name str) (addr int) (size int))\n(declare mapped (addr int) (size int) (off int))\n(declare named-region (addr int) (size int) (name str))\n(declare named-symbol (addr int) (name str))\n(declare require (name str))\n(declare section (addr int) (size int))\n(declare segment (addr int) (size int) (r bool) (w bool) (x bool))\n(declare subarch (name str))\n(declare symbol-chunk (addr int) (size int) (root int))\n(declare symbol-value (addr int) (value int))\n(declare system (name str))\n(declare vendor (name str))\n\n(abi unknown)\n(arch aarch64)\n(base-address 0)\n(bias 0)\n(bits 64)\n(code-region 1900 20 1900)\n(code-region 1600 300 1600)\n(code-region 1456 96 1456)\n(code-region 1432 24 1432)\n(code-start 1652)\n(code-start 1600)\n(code-start 1876)\n(entry-point 1600)\n(external-reference 69584 _ITM_deregisterTMCloneTable)\n(external-reference 69592 __cxa_finalize)\n(external-reference 69608 __gmon_start__)\n(external-reference 69624 _ITM_registerTMCloneTable)\n(external-reference 69544 __libc_start_main)\n(external-reference 69552 __cxa_finalize)\n(external-reference 69560 __gmon_start__)\n(external-reference 69568 abort)\n(format elf)\n(is-executable true)\n(is-little-endian true)\n(llvm:base-address 0)\n(llvm:code-entry abort 0 0)\n(llvm:code-entry __cxa_finalize 0 0)\n(llvm:code-entry __libc_start_main 0 0)\n(llvm:code-entry _init 1432 0)\n(llvm:code-entry main 1876 24)\n(llvm:code-entry _start 1600 52)\n(llvm:code-entry abort@GLIBC_2.17 0 0)\n(llvm:code-entry _fini 1900 0)\n(llvm:code-entry __cxa_finalize@GLIBC_2.17 0 0)\n(llvm:code-entry __libc_start_main@GLIBC_2.34 0 0)\n(llvm:code-entry frame_dummy 1872 0)\n(llvm:code-entry __do_global_dtors_aux 1792 0)\n(llvm:code-entry register_tm_clones 1728 0)\n(llvm:code-entry deregister_tm_clones 1680 0)\n(llvm:code-entry call_weak_fn 1652 20)\n(llvm:code-entry .fini 1900 20)\n(llvm:code-entry .text 1600 300)\n(llvm:code-entry .plt 1456 96)\n(llvm:code-entry .init 1432 24)\n(llvm:elf-program-header 08 3472 624)\n(llvm:elf-program-header 07 0 0)\n(llvm:elf-program-header 06 1924 60)\n(llvm:elf-program-header 05 596 68)\n(llvm:elf-program-header 04 3488 496)\n(llvm:elf-program-header 03 3472 640)\n(llvm:elf-program-header 02 0 2144)\n(llvm:elf-program-header 01 568 27)\n(llvm:elf-program-header 00 64 504)\n(llvm:elf-program-header-flags 08 false true false false)\n(llvm:elf-program-header-flags 07 false true true false)\n(llvm:elf-program-header-flags 06 false true false false)\n(llvm:elf-program-header-flags 05 false true false false)\n(llvm:elf-program-header-flags 04 false true true false)\n(llvm:elf-program-header-flags 03 true true true false)\n(llvm:elf-program-header-flags 02 true true false true)\n(llvm:elf-program-header-flags 01 false true false false)\n(llvm:elf-program-header-flags 00 false true false false)\n(llvm:elf-virtual-program-header 08 69008 624)\n(llvm:elf-virtual-program-header 07 0 0)\n(llvm:elf-virtual-program-header 06 1924 60)\n(llvm:elf-virtual-program-header 05 596 68)\n(llvm:elf-virtual-program-header 04 69024 496)\n(llvm:elf-virtual-program-header 03 69008 656)\n(llvm:elf-virtual-program-header 02 0 2144)\n(llvm:elf-virtual-program-header 01 568 27)\n(llvm:elf-virtual-program-header 00 64 504)\n(llvm:entry-point 1600)\n(llvm:name-reference 69568 abort)\n(llvm:name-reference 69560 __gmon_start__)\n(llvm:name-reference 69552 __cxa_finalize)\n(llvm:name-reference 69544 __libc_start_main)\n(llvm:name-reference 69624 _ITM_registerTMCloneTable)\n(llvm:name-reference 69608 __gmon_start__)\n(llvm:name-reference 69592 __cxa_finalize)\n(llvm:name-reference 69584 _ITM_deregisterTMCloneTable)\n(llvm:section-entry .shstrtab 0 250 6856)\n(llvm:section-entry .strtab 0 560 6296)\n(llvm:section-entry .symtab 0 2136 4160)\n(llvm:section-entry .comment 0 43 4112)\n(llvm:section-entry .bss 69648 16 4112)\n(llvm:section-entry .data 69632 16 4096)\n(llvm:section-entry .got 69520 112 3984)\n(llvm:section-entry .dynamic 69024 496 3488)\n(llvm:section-entry .fini_array 69016 8 3480)\n(llvm:section-entry .init_array 69008 8 3472)\n(llvm:section-entry .eh_frame 1984 160 1984)\n(llvm:section-entry .eh_frame_hdr 1924 60 1924)\n(llvm:section-entry .rodata 1920 4 1920)\n(llvm:section-entry .fini 1900 20 1900)\n(llvm:section-entry .text 1600 300 1600)\n(llvm:section-entry .plt 1456 96 1456)\n(llvm:section-entry .init 1432 24 1432)\n(llvm:section-entry .rela.plt 1336 96 1336)\n(llvm:section-entry .rela.dyn 1120 216 1120)\n(llvm:section-entry .gnu.version_r 1072 48 1072)\n(llvm:section-entry .gnu.version 1054 18 1054)\n(llvm:section-entry .dynstr 912 141 912)\n(llvm:section-entry .dynsym 696 216 696)\n(llvm:section-entry .gnu.hash 664 28 664)\n(llvm:section-entry .note.ABI-tag 632 32 632)\n(llvm:section-entry .note.gnu.build-id 596 36 596)\n(llvm:section-entry .interp 568 27 568)\n(llvm:section-flags .shstrtab true false false)\n(llvm:section-flags .strtab true false false)\n(llvm:section-flags .symtab true false false)\n(llvm:section-flags .comment true false false)\n(llvm:section-flags .bss true true false)\n(llvm:section-flags .data true true false)\n(llvm:section-flags .got true true false)\n(llvm:section-flags .dynamic true true false)\n(llvm:section-flags .fini_array true true false)\n(llvm:section-flags .init_array true true false)\n(llvm:section-flags .eh_frame true false false)\n(llvm:section-flags .eh_frame_hdr true false false)\n(llvm:section-flags .rodata true false false)\n(llvm:section-flags .fini true false true)\n(llvm:section-flags .text true false true)\n(llvm:section-flags .plt true false true)\n(llvm:section-flags .init true false true)\n(llvm:section-flags .rela.plt true false false)\n(llvm:section-flags .rela.dyn true false false)\n(llvm:section-flags .gnu.version_r true false false)\n(llvm:section-flags .gnu.version true false false)\n(llvm:section-flags .dynstr true false false)\n(llvm:section-flags .dynsym true false false)\n(llvm:section-flags .gnu.hash true false false)\n(llvm:section-flags .note.ABI-tag true false false)\n(llvm:section-flags .note.gnu.build-id true false false)\n(llvm:section-flags .interp true false false)\n(llvm:symbol-entry abort 0 0 0 0)\n(llvm:symbol-entry __cxa_finalize 0 0 0 0)\n(llvm:symbol-entry __libc_start_main 0 0 0 0)\n(llvm:symbol-entry _init 1432 0 1432 1432)\n(llvm:symbol-entry main 1876 24 1876 1876)\n(llvm:symbol-entry _start 1600 52 1600 1600)\n(llvm:symbol-entry abort@GLIBC_2.17 0 0 0 0)\n(llvm:symbol-entry _fini 1900 0 1900 1900)\n(llvm:symbol-entry __cxa_finalize@GLIBC_2.17 0 0 0 0)\n(llvm:symbol-entry __libc_start_main@GLIBC_2.34 0 0 0 0)\n(llvm:symbol-entry frame_dummy 1872 0 1872 1872)\n(llvm:symbol-entry __do_global_dtors_aux 1792 0 1792 1792)\n(llvm:symbol-entry register_tm_clones 1728 0 1728 1728)\n(llvm:symbol-entry deregister_tm_clones 1680 0 1680 1680)\n(llvm:symbol-entry call_weak_fn 1652 20 1652 1652)\n(mapped 0 2144 0)\n(mapped 69008 640 3472)\n(named-region 0 2144 02)\n(named-region 69008 656 03)\n(named-region 568 27 .interp)\n(named-region 596 36 .note.gnu.build-id)\n(named-region 632 32 .note.ABI-tag)\n(named-region 664 28 .gnu.hash)\n(named-region 696 216 .dynsym)\n(named-region 912 141 .dynstr)\n(named-region 1054 18 .gnu.version)\n(named-region 1072 48 .gnu.version_r)\n(named-region 1120 216 .rela.dyn)\n(named-region 1336 96 .rela.plt)\n(named-region 1432 24 .init)\n(named-region 1456 96 .plt)\n(named-region 1600 300 .text)\n(named-region 1900 20 .fini)\n(named-region 1920 4 .rodata)\n(named-region 1924 60 .eh_frame_hdr)\n(named-region 1984 160 .eh_frame)\n(named-region 69008 8 .init_array)\n(named-region 69016 8 .fini_array)\n(named-region 69024 496 .dynamic)\n(named-region 69520 112 .got)\n(named-region 69632 16 .data)\n(named-region 69648 16 .bss)\n(named-region 0 43 .comment)\n(named-region 0 2136 .symtab)\n(named-region 0 560 .strtab)\n(named-region 0 250 .shstrtab)\n(named-symbol 1652 call_weak_fn)\n(named-symbol 1680 deregister_tm_clones)\n(named-symbol 1728 register_tm_clones)\n(named-symbol 1792 __do_global_dtors_aux)\n(named-symbol 1872 frame_dummy)\n(named-symbol 0 __libc_start_main@GLIBC_2.34)\n(named-symbol 0 __cxa_finalize@GLIBC_2.17)\n(named-symbol 1900 _fini)\n(named-symbol 0 abort@GLIBC_2.17)\n(named-symbol 1600 _start)\n(named-symbol 1876 main)\n(named-symbol 1432 _init)\n(named-symbol 0 __libc_start_main)\n(named-symbol 0 __cxa_finalize)\n(named-symbol 0 abort)\n(require libc.so.6)\n(section 568 27)\n(section 596 36)\n(section 632 32)\n(section 664 28)\n(section 696 216)\n(section 912 141)\n(section 1054 18)\n(section 1072 48)\n(section 1120 216)\n(section 1336 96)\n(section 1432 24)\n(section 1456 96)\n(section 1600 300)\n(section 1900 20)\n(section 1920 4)\n(section 1924 60)\n(section 1984 160)\n(section 69008 8)\n(section 69016 8)\n(section 69024 496)\n(section 69520 112)\n(section 69632 16)\n(section 69648 16)\n(section 0 43)\n(section 0 2136)\n(section 0 560)\n(section 0 250)\n(segment 0 2144 true false true)\n(segment 69008 656 true true false)\n(subarch v8)\n(symbol-chunk 1652 20 1652)\n(symbol-chunk 1600 52 1600)\n(symbol-chunk 1876 24 1876)\n(symbol-value 1652 1652)\n(symbol-value 1680 1680)\n(symbol-value 1728 1728)\n(symbol-value 1792 1792)\n(symbol-value 1872 1872)\n(symbol-value 1900 1900)\n(symbol-value 1600 1600)\n(symbol-value 1876 1876)\n(symbol-value 1432 1432)\n(symbol-value 0 0)\n(system \"\")\n(vendor \"\")\n"), -Attr("abi-name","\"aarch64-linux-gnu-elf\"")]), -Sections([Section(".shstrtab", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x40\x06\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xc8\x1b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x38\x00\x09\x00\x40\x00\x1c\x00\x1b\x00\x06\x00\x00\x00\x04\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x04\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x60\x08\x00\x00\x00\x00\x00\x00\x60\x08\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x01\x00\x00\x00\x06\x00\x00\x00\x90\x0d\x00\x00\x00\x00\x00\x00\x90\x0d"), -Section(".strtab", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x40\x06\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xc8\x1b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x38\x00\x09\x00\x40\x00\x1c\x00\x1b\x00\x06\x00\x00\x00\x04\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x04\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x60\x08\x00\x00\x00\x00\x00\x00\x60\x08\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x01\x00\x00\x00\x06\x00\x00\x00\x90\x0d\x00\x00\x00\x00\x00\x00\x90\x0d\x01\x00\x00\x00\x00\x00\x90\x0d\x01\x00\x00\x00\x00\x00\x80\x02\x00\x00\x00\x00\x00\x00\x90\x02\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x02\x00\x00\x00\x06\x00\x00\x00\xa0\x0d\x00\x00\x00\x00\x00\x00\xa0\x0d\x01\x00\x00\x00\x00\x00\xa0\x0d\x01\x00\x00\x00\x00\x00\xf0\x01\x00\x00\x00\x00\x00\x00\xf0\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x04\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x50\xe5\x74\x64\x04\x00\x00\x00\x84\x07\x00\x00\x00\x00\x00\x00\x84\x07\x00\x00\x00\x00\x00\x00\x84\x07\x00\x00\x00\x00\x00\x00\x3c\x00\x00\x00\x00\x00\x00\x00\x3c\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x51\xe5\x74\x64\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x52\xe5\x74\x64\x04\x00\x00\x00\x90\x0d\x00\x00\x00\x00\x00\x00\x90\x0d\x01\x00\x00\x00\x00\x00\x90\x0d\x01\x00\x00\x00\x00\x00\x70\x02\x00\x00\x00\x00\x00\x00\x70\x02\x00\x00\x00\x00\x00\x00"), -Section(".symtab", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x40\x06\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xc8\x1b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x38\x00\x09\x00\x40\x00\x1c\x00\x1b\x00\x06\x00\x00\x00\x04\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x04\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x60\x08\x00\x00\x00\x00\x00\x00\x60\x08\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x01\x00\x00\x00\x06\x00\x00\x00\x90\x0d\x00\x00\x00\x00\x00\x00\x90\x0d\x01\x00\x00\x00\x00\x00\x90\x0d\x01\x00\x00\x00\x00\x00\x80\x02\x00\x00\x00\x00\x00\x00\x90\x02\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x02\x00\x00\x00\x06\x00\x00\x00\xa0\x0d\x00\x00\x00\x00\x00\x00\xa0\x0d\x01\x00\x00\x00\x00\x00\xa0\x0d\x01\x00\x00\x00\x00\x00\xf0\x01\x00\x00\x00\x00\x00\x00\xf0\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x04\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x50\xe5\x74\x64\x04\x00\x00\x00\x84\x07\x00\x00\x00\x00\x00\x00\x84\x07\x00\x00\x00\x00\x00\x00\x84\x07\x00\x00\x00\x00\x00\x00\x3c\x00\x00\x00\x00\x00\x00\x00\x3c\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x51\xe5\x74\x64\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x52\xe5\x74\x64\x04\x00\x00\x00\x90\x0d\x00\x00\x00\x00\x00\x00\x90\x0d\x01\x00\x00\x00\x00\x00\x90\x0d\x01\x00\x00\x00\x00\x00\x70\x02\x00\x00\x00\x00\x00\x00\x70\x02\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x2f\x6c\x69\x62\x2f\x6c\x64\x2d\x6c\x69\x6e\x75\x78\x2d\x61\x61\x72\x63\x68\x36\x34\x2e\x73\x6f\x2e\x31\x00\x00\x04\x00\x00\x00\x14\x00\x00\x00\x03\x00\x00\x00\x47\x4e\x55\x00\x08\x5f\x5a\x0d\xf2\xf7\x4d\xca\x6e\xe5\xd9\x47\x9f\x1d\x58\xde\x49\xd3\x1c\x2c\x04\x00\x00\x00\x10\x00\x00\x00\x01\x00\x00\x00\x47\x4e\x55\x00\x00\x00\x00\x00\x03\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x01\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x0b\x00\x98\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x16\x00\x00\x10\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x48\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x22\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x22\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x73\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5f\x5f\x63\x78\x61\x5f\x66\x69\x6e\x61\x6c\x69\x7a\x65\x00\x5f\x5f\x6c\x69\x62\x63\x5f\x73\x74\x61\x72\x74\x5f\x6d\x61\x69\x6e\x00\x61\x62\x6f\x72\x74\x00\x6c\x69\x62\x63\x2e\x73\x6f\x2e\x36\x00\x47\x4c\x49\x42\x43\x5f\x32\x2e\x31\x37\x00\x47\x4c\x49\x42\x43\x5f\x32\x2e\x33\x34\x00\x5f\x49\x54\x4d\x5f\x64\x65\x72\x65\x67\x69\x73\x74\x65\x72\x54\x4d\x43\x6c\x6f\x6e\x65\x54\x61\x62\x6c\x65\x00\x5f\x5f\x67\x6d\x6f\x6e\x5f\x73\x74\x61\x72\x74\x5f\x5f\x00\x5f\x49\x54\x4d\x5f\x72\x65\x67\x69\x73\x74\x65\x72\x54\x4d\x43\x6c\x6f\x6e\x65\x54\x61\x62\x6c\x65\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x01\x00\x03\x00\x01\x00\x03\x00\x01\x00\x01\x00\x02\x00\x28\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x97\x91\x96\x06\x00\x00\x03\x00\x32\x00\x00\x00\x10\x00\x00\x00\xb4\x91\x96\x06\x00\x00\x02\x00\x3d\x00\x00\x00\x00\x00\x00\x00\x90\x0d\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x50\x07\x00\x00\x00\x00\x00\x00\x98\x0d\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\xe0\x0f\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x14\x10\x01\x00\x00\x00\x00\x00\xf0\x0f\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x54\x07\x00\x00\x00\x00\x00\x00\x08\x10\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x08\x10\x01\x00\x00\x00\x00\x00\xd0\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xd8\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe8\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xf8\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xa8\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xb0\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xb8\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xc0\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1f\x20\x03\xd5\xfd\x7b\xbf\xa9\xfd\x03\x00\x91\x34\x00\x00\x94\xfd\x7b\xc1\xa8\xc0\x03\x5f\xd6\xf0\x7b\xbf\xa9\x90\x00\x00\x90\x11\xd2\x47\xf9\x10\x82\x3e\x91\x20\x02\x1f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x90\x00\x00\x90\x11\xd6\x47\xf9\x10\xa2\x3e\x91\x20\x02\x1f\xd6\x90\x00\x00\x90\x11\xda\x47\xf9\x10\xc2\x3e\x91\x20\x02\x1f\xd6\x90\x00\x00\x90\x11\xde\x47\xf9\x10\xe2\x3e\x91\x20\x02\x1f\xd6\x90\x00\x00\x90\x11\xe2\x47\xf9\x10\x02\x3f\x91\x20\x02\x1f\xd6\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1f\x20\x03\xd5\x1d\x00\x80\xd2\x1e\x00\x80\xd2\xe5\x03\x00\xaa\xe1\x03\x40\xf9\xe2\x23\x00\x91\xe6\x03\x00\x91\x80\x00\x00\x90\x00\xf8\x47\xf9\x03\x00\x80\xd2\x04\x00\x80\xd2\xd9\xff\xff\x97\xe4\xff\xff\x97\x80\x00\x00\x90\x00\xf4\x47\xf9\x40\x00\x00\xb4\xdc\xff\xff\x17\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x80\x00\x00\xb0\x00\x40\x00\x91\x81\x00\x00\xb0\x21\x40\x00\x91\x3f\x00\x00\xeb\xc0\x00\x00\x54\x81\x00\x00\x90\x21\xe8\x47\xf9\x61\x00\x00\xb4\xf0\x03\x01\xaa\x00\x02\x1f\xd6\xc0\x03\x5f\xd6\x80\x00\x00\xb0\x00\x40\x00\x91\x81\x00\x00\xb0\x21\x40\x00\x91\x21\x00\x00\xcb\x22\xfc\x7f\xd3\x41\x0c\x81\x8b\x21\xfc\x41\x93\xc1\x00\x00\xb4\x82\x00\x00\x90\x42\xfc\x47\xf9\x62\x00\x00\xb4\xf0\x03\x02\xaa\x00\x02\x1f\xd6\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\xfd\x7b\xbe\xa9\xfd\x03\x00\x91\xf3\x0b\x00\xf9\x93\x00\x00\xb0\x60\x42\x40\x39\x40\x01\x00\x35\x80\x00\x00\x90\x00\xec\x47\xf9\x80\x00\x00\xb4\x80\x00\x00\xb0\x00\x04\x40\xf9\xad\xff\xff\x97\xd8\xff\xff\x97\x20\x00\x80\x52\x60\x42\x00\x39\xf3\x0b\x40\xf9\xfd\x7b\xc2\xa8\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\xdc\xff\xff\x17\x80\x00\x00\x90\x00\xf0\x47\xf9\x21\x00\x80\x52\x01\x00\x00\xb9\x00\x00\x80\x52\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\xfd\x7b\xbf\xa9\xfd\x03\x00\x91\xfd\x7b\xc1\xa8\xc0\x03\x5f\xd6\x01\x00\x02\x00\x01\x1b\x03\x3b\x38\x00\x00\x00\x06\x00\x00\x00\xbc\xfe\xff\xff\x50\x00\x00\x00\x0c\xff\xff\xff\x64\x00\x00\x00\x3c\xff\xff\xff\x78\x00\x00\x00\x7c\xff\xff\xff\x8c\x00\x00\x00\xcc\xff\xff\xff\xb0\x00\x00\x00\xd0\xff\xff\xff\xc4\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x01\x7a\x52\x00\x04\x78\x1e\x01\x1b\x0c\x1f\x00\x10\x00\x00\x00\x18\x00\x00\x00\x64\xfe\xff\xff\x34\x00\x00\x00\x00\x41\x07\x1e\x10\x00\x00\x00\x2c\x00\x00\x00\xa0\xfe\xff\xff\x30\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x40\x00\x00\x00\xbc\xfe\xff\xff\x3c\x00\x00\x00\x00\x00\x00\x00\x20\x00\x00\x00\x54\x00\x00\x00\xe8\xfe\xff\xff\x48\x00\x00\x00\x00\x41\x0e\x20\x9d\x04\x9e\x03\x42\x93\x02\x4e\xde\xdd\xd3\x0e\x00\x00\x00\x00\x10\x00\x00\x00\x78\x00\x00\x00\x14\xff\xff\xff\x04\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x8c\x00\x00\x00\x04\xff\xff\xff\x18\x00\x00\x00"), -Section(".comment", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x40\x06\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xc8\x1b\x00"), -Section(".interp", 0x238, "\x2f\x6c\x69\x62\x2f\x6c\x64\x2d\x6c\x69\x6e\x75\x78\x2d\x61\x61\x72\x63\x68\x36\x34\x2e\x73\x6f\x2e\x31\x00"), -Section(".note.gnu.build-id", 0x254, "\x04\x00\x00\x00\x14\x00\x00\x00\x03\x00\x00\x00\x47\x4e\x55\x00\x08\x5f\x5a\x0d\xf2\xf7\x4d\xca\x6e\xe5\xd9\x47\x9f\x1d\x58\xde\x49\xd3\x1c\x2c"), -Section(".note.ABI-tag", 0x278, "\x04\x00\x00\x00\x10\x00\x00\x00\x01\x00\x00\x00\x47\x4e\x55\x00\x00\x00\x00\x00\x03\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00"), -Section(".gnu.hash", 0x298, "\x01\x00\x00\x00\x01\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".dynsym", 0x2B8, "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x0b\x00\x98\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x16\x00\x00\x10\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x48\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x22\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x22\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x73\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".dynstr", 0x390, "\x00\x5f\x5f\x63\x78\x61\x5f\x66\x69\x6e\x61\x6c\x69\x7a\x65\x00\x5f\x5f\x6c\x69\x62\x63\x5f\x73\x74\x61\x72\x74\x5f\x6d\x61\x69\x6e\x00\x61\x62\x6f\x72\x74\x00\x6c\x69\x62\x63\x2e\x73\x6f\x2e\x36\x00\x47\x4c\x49\x42\x43\x5f\x32\x2e\x31\x37\x00\x47\x4c\x49\x42\x43\x5f\x32\x2e\x33\x34\x00\x5f\x49\x54\x4d\x5f\x64\x65\x72\x65\x67\x69\x73\x74\x65\x72\x54\x4d\x43\x6c\x6f\x6e\x65\x54\x61\x62\x6c\x65\x00\x5f\x5f\x67\x6d\x6f\x6e\x5f\x73\x74\x61\x72\x74\x5f\x5f\x00\x5f\x49\x54\x4d\x5f\x72\x65\x67\x69\x73\x74\x65\x72\x54\x4d\x43\x6c\x6f\x6e\x65\x54\x61\x62\x6c\x65\x00"), -Section(".gnu.version", 0x41E, "\x00\x00\x00\x00\x00\x00\x02\x00\x01\x00\x03\x00\x01\x00\x03\x00\x01\x00"), -Section(".gnu.version_r", 0x430, "\x01\x00\x02\x00\x28\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x97\x91\x96\x06\x00\x00\x03\x00\x32\x00\x00\x00\x10\x00\x00\x00\xb4\x91\x96\x06\x00\x00\x02\x00\x3d\x00\x00\x00\x00\x00\x00\x00"), -Section(".rela.dyn", 0x460, "\x90\x0d\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x50\x07\x00\x00\x00\x00\x00\x00\x98\x0d\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\xe0\x0f\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x14\x10\x01\x00\x00\x00\x00\x00\xf0\x0f\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x54\x07\x00\x00\x00\x00\x00\x00\x08\x10\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x08\x10\x01\x00\x00\x00\x00\x00\xd0\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xd8\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe8\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xf8\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".rela.plt", 0x538, "\xa8\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xb0\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xb8\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xc0\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".init", 0x598, "\x1f\x20\x03\xd5\xfd\x7b\xbf\xa9\xfd\x03\x00\x91\x34\x00\x00\x94\xfd\x7b\xc1\xa8\xc0\x03\x5f\xd6"), -Section(".plt", 0x5B0, "\xf0\x7b\xbf\xa9\x90\x00\x00\x90\x11\xd2\x47\xf9\x10\x82\x3e\x91\x20\x02\x1f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x90\x00\x00\x90\x11\xd6\x47\xf9\x10\xa2\x3e\x91\x20\x02\x1f\xd6\x90\x00\x00\x90\x11\xda\x47\xf9\x10\xc2\x3e\x91\x20\x02\x1f\xd6\x90\x00\x00\x90\x11\xde\x47\xf9\x10\xe2\x3e\x91\x20\x02\x1f\xd6\x90\x00\x00\x90\x11\xe2\x47\xf9\x10\x02\x3f\x91\x20\x02\x1f\xd6"), -Section(".fini", 0x76C, "\x1f\x20\x03\xd5\xfd\x7b\xbf\xa9\xfd\x03\x00\x91\xfd\x7b\xc1\xa8\xc0\x03\x5f\xd6"), -Section(".rodata", 0x780, "\x01\x00\x02\x00"), -Section(".eh_frame_hdr", 0x784, "\x01\x1b\x03\x3b\x38\x00\x00\x00\x06\x00\x00\x00\xbc\xfe\xff\xff\x50\x00\x00\x00\x0c\xff\xff\xff\x64\x00\x00\x00\x3c\xff\xff\xff\x78\x00\x00\x00\x7c\xff\xff\xff\x8c\x00\x00\x00\xcc\xff\xff\xff\xb0\x00\x00\x00\xd0\xff\xff\xff\xc4\x00\x00\x00"), -Section(".eh_frame", 0x7C0, "\x10\x00\x00\x00\x00\x00\x00\x00\x01\x7a\x52\x00\x04\x78\x1e\x01\x1b\x0c\x1f\x00\x10\x00\x00\x00\x18\x00\x00\x00\x64\xfe\xff\xff\x34\x00\x00\x00\x00\x41\x07\x1e\x10\x00\x00\x00\x2c\x00\x00\x00\xa0\xfe\xff\xff\x30\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x40\x00\x00\x00\xbc\xfe\xff\xff\x3c\x00\x00\x00\x00\x00\x00\x00\x20\x00\x00\x00\x54\x00\x00\x00\xe8\xfe\xff\xff\x48\x00\x00\x00\x00\x41\x0e\x20\x9d\x04\x9e\x03\x42\x93\x02\x4e\xde\xdd\xd3\x0e\x00\x00\x00\x00\x10\x00\x00\x00\x78\x00\x00\x00\x14\xff\xff\xff\x04\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x8c\x00\x00\x00\x04\xff\xff\xff\x18\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".fini_array", 0x10D98, "\x00\x07\x00\x00\x00\x00\x00\x00"), -Section(".dynamic", 0x10DA0, "\x01\x00\x00\x00\x00\x00\x00\x00\x28\x00\x00\x00\x00\x00\x00\x00\x0c\x00\x00\x00\x00\x00\x00\x00\x98\x05\x00\x00\x00\x00\x00\x00\x0d\x00\x00\x00\x00\x00\x00\x00\x6c\x07\x00\x00\x00\x00\x00\x00\x19\x00\x00\x00\x00\x00\x00\x00\x90\x0d\x01\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x1a\x00\x00\x00\x00\x00\x00\x00\x98\x0d\x01\x00\x00\x00\x00\x00\x1c\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\xf5\xfe\xff\x6f\x00\x00\x00\x00\x98\x02\x00\x00\x00\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x90\x03\x00\x00\x00\x00\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\xb8\x02\x00\x00\x00\x00\x00\x00\x0a\x00\x00\x00\x00\x00\x00\x00\x8d\x00\x00\x00\x00\x00\x00\x00\x0b\x00\x00\x00\x00\x00\x00\x00\x18\x00\x00\x00\x00\x00\x00\x00\x15\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x90\x0f\x01\x00\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x60\x00\x00\x00\x00\x00\x00\x00\x14\x00\x00\x00\x00\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x17\x00\x00\x00\x00\x00\x00\x00\x38\x05\x00\x00\x00\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x60\x04\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\xd8\x00\x00\x00\x00\x00\x00\x00\x09\x00\x00\x00\x00\x00\x00\x00\x18\x00\x00\x00\x00\x00\x00\x00\x1e\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\xfb\xff\xff\x6f\x00\x00\x00\x00\x01\x00\x00\x08\x00\x00\x00\x00\xfe\xff\xff\x6f\x00\x00\x00\x00\x30\x04\x00\x00\x00\x00\x00\x00\xff\xff\xff\x6f\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\xf0\xff\xff\x6f\x00\x00\x00\x00\x1e\x04\x00\x00\x00\x00\x00\x00\xf9\xff\xff\x6f\x00\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".got", 0x10F90, "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xb0\x05\x00\x00\x00\x00\x00\x00\xb0\x05\x00\x00\x00\x00\x00\x00\xb0\x05\x00\x00\x00\x00\x00\x00\xb0\x05\x00\x00\x00\x00\x00\x00\xa0\x0d\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x14\x10\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x54\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".data", 0x11000, "\x00\x00\x00\x00\x00\x00\x00\x00\x08\x10\x01\x00\x00\x00\x00\x00"), -Section(".init_array", 0x10D90, "\x50\x07\x00\x00\x00\x00\x00\x00"), -Section(".text", 0x640, "\x1f\x20\x03\xd5\x1d\x00\x80\xd2\x1e\x00\x80\xd2\xe5\x03\x00\xaa\xe1\x03\x40\xf9\xe2\x23\x00\x91\xe6\x03\x00\x91\x80\x00\x00\x90\x00\xf8\x47\xf9\x03\x00\x80\xd2\x04\x00\x80\xd2\xd9\xff\xff\x97\xe4\xff\xff\x97\x80\x00\x00\x90\x00\xf4\x47\xf9\x40\x00\x00\xb4\xdc\xff\xff\x17\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x80\x00\x00\xb0\x00\x40\x00\x91\x81\x00\x00\xb0\x21\x40\x00\x91\x3f\x00\x00\xeb\xc0\x00\x00\x54\x81\x00\x00\x90\x21\xe8\x47\xf9\x61\x00\x00\xb4\xf0\x03\x01\xaa\x00\x02\x1f\xd6\xc0\x03\x5f\xd6\x80\x00\x00\xb0\x00\x40\x00\x91\x81\x00\x00\xb0\x21\x40\x00\x91\x21\x00\x00\xcb\x22\xfc\x7f\xd3\x41\x0c\x81\x8b\x21\xfc\x41\x93\xc1\x00\x00\xb4\x82\x00\x00\x90\x42\xfc\x47\xf9\x62\x00\x00\xb4\xf0\x03\x02\xaa\x00\x02\x1f\xd6\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\xfd\x7b\xbe\xa9\xfd\x03\x00\x91\xf3\x0b\x00\xf9\x93\x00\x00\xb0\x60\x42\x40\x39\x40\x01\x00\x35\x80\x00\x00\x90\x00\xec\x47\xf9\x80\x00\x00\xb4\x80\x00\x00\xb0\x00\x04\x40\xf9\xad\xff\xff\x97\xd8\xff\xff\x97\x20\x00\x80\x52\x60\x42\x00\x39\xf3\x0b\x40\xf9\xfd\x7b\xc2\xa8\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\xdc\xff\xff\x17\x80\x00\x00\x90\x00\xf0\x47\xf9\x21\x00\x80\x52\x01\x00\x00\xb9\x00\x00\x80\x52\xc0\x03\x5f\xd6")]), -Memmap([Annotation(Region(0x0,0x85F), Attr("segment","02 0 2144")), -Annotation(Region(0x640,0x673), Attr("symbol","\"_start\"")), -Annotation(Region(0x0,0xF9), Attr("section","\".shstrtab\"")), -Annotation(Region(0x0,0x22F), Attr("section","\".strtab\"")), -Annotation(Region(0x0,0x857), Attr("section","\".symtab\"")), -Annotation(Region(0x0,0x2A), Attr("section","\".comment\"")), -Annotation(Region(0x238,0x252), Attr("section","\".interp\"")), -Annotation(Region(0x254,0x277), Attr("section","\".note.gnu.build-id\"")), -Annotation(Region(0x278,0x297), Attr("section","\".note.ABI-tag\"")), -Annotation(Region(0x298,0x2B3), Attr("section","\".gnu.hash\"")), -Annotation(Region(0x2B8,0x38F), Attr("section","\".dynsym\"")), -Annotation(Region(0x390,0x41C), Attr("section","\".dynstr\"")), -Annotation(Region(0x41E,0x42F), Attr("section","\".gnu.version\"")), -Annotation(Region(0x430,0x45F), Attr("section","\".gnu.version_r\"")), -Annotation(Region(0x460,0x537), Attr("section","\".rela.dyn\"")), -Annotation(Region(0x538,0x597), Attr("section","\".rela.plt\"")), -Annotation(Region(0x598,0x5AF), Attr("section","\".init\"")), -Annotation(Region(0x5B0,0x60F), Attr("section","\".plt\"")), -Annotation(Region(0x598,0x5AF), Attr("code-region","()")), -Annotation(Region(0x5B0,0x60F), Attr("code-region","()")), -Annotation(Region(0x640,0x673), Attr("symbol-info","_start 0x640 52")), -Annotation(Region(0x674,0x687), Attr("symbol","\"call_weak_fn\"")), -Annotation(Region(0x674,0x687), Attr("symbol-info","call_weak_fn 0x674 20")), -Annotation(Region(0x754,0x76B), Attr("symbol","\"main\"")), -Annotation(Region(0x754,0x76B), Attr("symbol-info","main 0x754 24")), -Annotation(Region(0x76C,0x77F), Attr("section","\".fini\"")), -Annotation(Region(0x780,0x783), Attr("section","\".rodata\"")), -Annotation(Region(0x784,0x7BF), Attr("section","\".eh_frame_hdr\"")), -Annotation(Region(0x7C0,0x85F), Attr("section","\".eh_frame\"")), -Annotation(Region(0x10D90,0x1100F), Attr("segment","03 0x10D90 656")), -Annotation(Region(0x10D98,0x10D9F), Attr("section","\".fini_array\"")), -Annotation(Region(0x10DA0,0x10F8F), Attr("section","\".dynamic\"")), -Annotation(Region(0x10F90,0x10FFF), Attr("section","\".got\"")), -Annotation(Region(0x11000,0x1100F), Attr("section","\".data\"")), -Annotation(Region(0x10D90,0x10D97), Attr("section","\".init_array\"")), -Annotation(Region(0x640,0x76B), Attr("section","\".text\"")), -Annotation(Region(0x640,0x76B), Attr("code-region","()")), -Annotation(Region(0x76C,0x77F), Attr("code-region","()"))]), -Program(Tid(1_348, "%00000544"), Attrs([]), - Subs([Sub(Tid(1_298, "@__cxa_finalize"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x5E0"), -Attr("stub","()")]), "__cxa_finalize", Args([Arg(Tid(1_349, "%00000545"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("__cxa_finalize_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(796, "@__cxa_finalize"), - Attrs([Attr("address","0x5E0")]), Phis([]), -Defs([Def(Tid(1_044, "%00000414"), Attrs([Attr("address","0x5E0"), -Attr("insn","adrp x16, #65536")]), Var("R16",Imm(64)), Int(65536,64)), -Def(Tid(1_051, "%0000041b"), Attrs([Attr("address","0x5E4"), -Attr("insn","ldr x17, [x16, #0xfb0]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(4016,64)),LittleEndian(),64)), -Def(Tid(1_057, "%00000421"), Attrs([Attr("address","0x5E8"), -Attr("insn","add x16, x16, #0xfb0")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(4016,64)))]), Jmps([Call(Tid(1_062, "%00000426"), - Attrs([Attr("address","0x5EC"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), -Sub(Tid(1_299, "@__do_global_dtors_aux"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x700")]), - "__do_global_dtors_aux", Args([Arg(Tid(1_350, "%00000546"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("__do_global_dtors_aux_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(614, "@__do_global_dtors_aux"), - Attrs([Attr("address","0x700")]), Phis([]), Defs([Def(Tid(618, "%0000026a"), - Attrs([Attr("address","0x700"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("#3",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(18446744073709551584,64))), -Def(Tid(624, "%00000270"), Attrs([Attr("address","0x700"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("#3",Imm(64)),Var("R29",Imm(64)),LittleEndian(),64)), -Def(Tid(630, "%00000276"), Attrs([Attr("address","0x700"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("#3",Imm(64)),Int(8,64)),Var("R30",Imm(64)),LittleEndian(),64)), -Def(Tid(634, "%0000027a"), Attrs([Attr("address","0x700"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("R31",Imm(64)), -Var("#3",Imm(64))), Def(Tid(640, "%00000280"), - Attrs([Attr("address","0x704"), Attr("insn","mov x29, sp")]), - Var("R29",Imm(64)), Var("R31",Imm(64))), Def(Tid(648, "%00000288"), - Attrs([Attr("address","0x708"), Attr("insn","str x19, [sp, #0x10]")]), - Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(16,64)),Var("R19",Imm(64)),LittleEndian(),64)), -Def(Tid(653, "%0000028d"), Attrs([Attr("address","0x70C"), -Attr("insn","adrp x19, #69632")]), Var("R19",Imm(64)), Int(69632,64)), -Def(Tid(660, "%00000294"), Attrs([Attr("address","0x710"), -Attr("insn","ldrb w0, [x19, #0x10]")]), Var("R0",Imm(64)), -UNSIGNED(64,Load(Var("mem",Mem(64,8)),PLUS(Var("R19",Imm(64)),Int(16,64)),LittleEndian(),8)))]), -Jmps([Goto(Tid(667, "%0000029b"), Attrs([Attr("address","0x714"), -Attr("insn","cbnz w0, #0x28")]), - NEQ(Extract(31,0,Var("R0",Imm(64))),Int(0,32)), -Direct(Tid(665, "%00000299"))), Goto(Tid(1_338, "%0000053a"), Attrs([]), - Int(1,1), Direct(Tid(741, "%000002e5")))])), Blk(Tid(741, "%000002e5"), - Attrs([Attr("address","0x718")]), Phis([]), Defs([Def(Tid(744, "%000002e8"), - Attrs([Attr("address","0x718"), Attr("insn","adrp x0, #65536")]), - Var("R0",Imm(64)), Int(65536,64)), Def(Tid(751, "%000002ef"), - Attrs([Attr("address","0x71C"), Attr("insn","ldr x0, [x0, #0xfd8]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(4056,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(757, "%000002f5"), Attrs([Attr("address","0x720"), -Attr("insn","cbz x0, #0x10")]), EQ(Var("R0",Imm(64)),Int(0,64)), -Direct(Tid(755, "%000002f3"))), Goto(Tid(1_339, "%0000053b"), Attrs([]), - Int(1,1), Direct(Tid(780, "%0000030c")))])), Blk(Tid(780, "%0000030c"), - Attrs([Attr("address","0x724")]), Phis([]), Defs([Def(Tid(783, "%0000030f"), - Attrs([Attr("address","0x724"), Attr("insn","adrp x0, #69632")]), - Var("R0",Imm(64)), Int(69632,64)), Def(Tid(790, "%00000316"), - Attrs([Attr("address","0x728"), Attr("insn","ldr x0, [x0, #0x8]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(795, "%0000031b"), Attrs([Attr("address","0x72C"), -Attr("insn","bl #-0x14c")]), Var("R30",Imm(64)), Int(1840,64))]), -Jmps([Call(Tid(798, "%0000031e"), Attrs([Attr("address","0x72C"), -Attr("insn","bl #-0x14c")]), Int(1,1), -(Direct(Tid(1_298, "@__cxa_finalize")),Direct(Tid(755, "%000002f3"))))])), -Blk(Tid(755, "%000002f3"), Attrs([Attr("address","0x730")]), Phis([]), -Defs([Def(Tid(763, "%000002fb"), Attrs([Attr("address","0x730"), -Attr("insn","bl #-0xa0")]), Var("R30",Imm(64)), Int(1844,64))]), -Jmps([Call(Tid(765, "%000002fd"), Attrs([Attr("address","0x730"), -Attr("insn","bl #-0xa0")]), Int(1,1), -(Direct(Tid(1_312, "@deregister_tm_clones")),Direct(Tid(767, "%000002ff"))))])), -Blk(Tid(767, "%000002ff"), Attrs([Attr("address","0x734")]), Phis([]), -Defs([Def(Tid(770, "%00000302"), Attrs([Attr("address","0x734"), -Attr("insn","mov w0, #0x1")]), Var("R0",Imm(64)), Int(1,64)), -Def(Tid(778, "%0000030a"), Attrs([Attr("address","0x738"), -Attr("insn","strb w0, [x19, #0x10]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R19",Imm(64)),Int(16,64)),Extract(7,0,Var("R0",Imm(64))),LittleEndian(),8))]), -Jmps([Goto(Tid(1_340, "%0000053c"), Attrs([]), Int(1,1), -Direct(Tid(665, "%00000299")))])), Blk(Tid(665, "%00000299"), - Attrs([Attr("address","0x73C")]), Phis([]), Defs([Def(Tid(675, "%000002a3"), - Attrs([Attr("address","0x73C"), Attr("insn","ldr x19, [sp, #0x10]")]), - Var("R19",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(16,64)),LittleEndian(),64)), -Def(Tid(682, "%000002aa"), Attrs([Attr("address","0x740"), -Attr("insn","ldp x29, x30, [sp], #0x20")]), Var("R29",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(687, "%000002af"), Attrs([Attr("address","0x740"), -Attr("insn","ldp x29, x30, [sp], #0x20")]), Var("R30",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(691, "%000002b3"), Attrs([Attr("address","0x740"), -Attr("insn","ldp x29, x30, [sp], #0x20")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(32,64)))]), Jmps([Call(Tid(696, "%000002b8"), - Attrs([Attr("address","0x744"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), Sub(Tid(1_303, "@__libc_start_main"), - Attrs([Attr("c.proto","signed (*)(signed (*)(signed , char** , char** );* main, signed , char** , \nvoid* auxv)"), -Attr("address","0x5D0"), Attr("stub","()")]), "__libc_start_main", - Args([Arg(Tid(1_351, "%00000547"), - Attrs([Attr("c.layout","**[ : 64]"), -Attr("c.data","Top:u64 ptr ptr"), -Attr("c.type","signed (*)(signed , char** , char** );*")]), - Var("__libc_start_main_main",Imm(64)), Var("R0",Imm(64)), In()), -Arg(Tid(1_352, "%00000548"), Attrs([Attr("c.layout","[signed : 32]"), -Attr("c.data","Top:u32"), Attr("c.type","signed")]), - Var("__libc_start_main_arg2",Imm(32)), LOW(32,Var("R1",Imm(64))), In()), -Arg(Tid(1_353, "%00000549"), Attrs([Attr("c.layout","**[char : 8]"), -Attr("c.data","Top:u8 ptr ptr"), Attr("c.type","char**")]), - Var("__libc_start_main_arg3",Imm(64)), Var("R2",Imm(64)), Both()), -Arg(Tid(1_354, "%0000054a"), Attrs([Attr("c.layout","*[ : 8]"), -Attr("c.data","{} ptr"), Attr("c.type","void*")]), - Var("__libc_start_main_auxv",Imm(64)), Var("R3",Imm(64)), Both()), -Arg(Tid(1_355, "%0000054b"), Attrs([Attr("c.layout","[signed : 32]"), -Attr("c.data","Top:u32"), Attr("c.type","signed")]), - Var("__libc_start_main_result",Imm(32)), LOW(32,Var("R0",Imm(64))), -Out())]), Blks([Blk(Tid(447, "@__libc_start_main"), - Attrs([Attr("address","0x5D0")]), Phis([]), -Defs([Def(Tid(1_022, "%000003fe"), Attrs([Attr("address","0x5D0"), -Attr("insn","adrp x16, #65536")]), Var("R16",Imm(64)), Int(65536,64)), -Def(Tid(1_029, "%00000405"), Attrs([Attr("address","0x5D4"), -Attr("insn","ldr x17, [x16, #0xfa8]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(4008,64)),LittleEndian(),64)), -Def(Tid(1_035, "%0000040b"), Attrs([Attr("address","0x5D8"), -Attr("insn","add x16, x16, #0xfa8")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(4008,64)))]), Jmps([Call(Tid(1_040, "%00000410"), - Attrs([Attr("address","0x5DC"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), Sub(Tid(1_304, "@_fini"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x76C")]), - "_fini", Args([Arg(Tid(1_356, "%0000054c"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("_fini_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(31, "@_fini"), - Attrs([Attr("address","0x76C")]), Phis([]), Defs([Def(Tid(37, "%00000025"), - Attrs([Attr("address","0x770"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("#0",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(18446744073709551600,64))), -Def(Tid(43, "%0000002b"), Attrs([Attr("address","0x770"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("#0",Imm(64)),Var("R29",Imm(64)),LittleEndian(),64)), -Def(Tid(49, "%00000031"), Attrs([Attr("address","0x770"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("#0",Imm(64)),Int(8,64)),Var("R30",Imm(64)),LittleEndian(),64)), -Def(Tid(53, "%00000035"), Attrs([Attr("address","0x770"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("R31",Imm(64)), -Var("#0",Imm(64))), Def(Tid(59, "%0000003b"), Attrs([Attr("address","0x774"), -Attr("insn","mov x29, sp")]), Var("R29",Imm(64)), Var("R31",Imm(64))), -Def(Tid(66, "%00000042"), Attrs([Attr("address","0x778"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R29",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(71, "%00000047"), Attrs([Attr("address","0x778"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R30",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(75, "%0000004b"), Attrs([Attr("address","0x778"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(16,64)))]), Jmps([Call(Tid(80, "%00000050"), - Attrs([Attr("address","0x77C"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), Sub(Tid(1_305, "@_init"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x598")]), - "_init", Args([Arg(Tid(1_357, "%0000054d"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("_init_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(1_134, "@_init"), - Attrs([Attr("address","0x598")]), Phis([]), -Defs([Def(Tid(1_140, "%00000474"), Attrs([Attr("address","0x59C"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("#5",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(18446744073709551600,64))), -Def(Tid(1_146, "%0000047a"), Attrs([Attr("address","0x59C"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("#5",Imm(64)),Var("R29",Imm(64)),LittleEndian(),64)), -Def(Tid(1_152, "%00000480"), Attrs([Attr("address","0x59C"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("#5",Imm(64)),Int(8,64)),Var("R30",Imm(64)),LittleEndian(),64)), -Def(Tid(1_156, "%00000484"), Attrs([Attr("address","0x59C"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("R31",Imm(64)), -Var("#5",Imm(64))), Def(Tid(1_162, "%0000048a"), - Attrs([Attr("address","0x5A0"), Attr("insn","mov x29, sp")]), - Var("R29",Imm(64)), Var("R31",Imm(64))), Def(Tid(1_167, "%0000048f"), - Attrs([Attr("address","0x5A4"), Attr("insn","bl #0xd0")]), - Var("R30",Imm(64)), Int(1448,64))]), Jmps([Call(Tid(1_169, "%00000491"), - Attrs([Attr("address","0x5A4"), Attr("insn","bl #0xd0")]), Int(1,1), -(Direct(Tid(1_310, "@call_weak_fn")),Direct(Tid(1_171, "%00000493"))))])), -Blk(Tid(1_171, "%00000493"), Attrs([Attr("address","0x5A8")]), Phis([]), -Defs([Def(Tid(1_176, "%00000498"), Attrs([Attr("address","0x5A8"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R29",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(1_181, "%0000049d"), Attrs([Attr("address","0x5A8"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R30",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(1_185, "%000004a1"), Attrs([Attr("address","0x5A8"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(16,64)))]), Jmps([Call(Tid(1_190, "%000004a6"), - Attrs([Attr("address","0x5AC"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), Sub(Tid(1_306, "@_start"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x640"), -Attr("entry-point","()")]), "_start", Args([Arg(Tid(1_358, "%0000054e"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("_start_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(384, "@_start"), - Attrs([Attr("address","0x640")]), Phis([]), Defs([Def(Tid(389, "%00000185"), - Attrs([Attr("address","0x644"), Attr("insn","mov x29, #0x0")]), - Var("R29",Imm(64)), Int(0,64)), Def(Tid(394, "%0000018a"), - Attrs([Attr("address","0x648"), Attr("insn","mov x30, #0x0")]), - Var("R30",Imm(64)), Int(0,64)), Def(Tid(400, "%00000190"), - Attrs([Attr("address","0x64C"), Attr("insn","mov x5, x0")]), - Var("R5",Imm(64)), Var("R0",Imm(64))), Def(Tid(407, "%00000197"), - Attrs([Attr("address","0x650"), Attr("insn","ldr x1, [sp]")]), - Var("R1",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(413, "%0000019d"), Attrs([Attr("address","0x654"), -Attr("insn","add x2, sp, #0x8")]), Var("R2",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(8,64))), Def(Tid(419, "%000001a3"), - Attrs([Attr("address","0x658"), Attr("insn","mov x6, sp")]), - Var("R6",Imm(64)), Var("R31",Imm(64))), Def(Tid(424, "%000001a8"), - Attrs([Attr("address","0x65C"), Attr("insn","adrp x0, #65536")]), - Var("R0",Imm(64)), Int(65536,64)), Def(Tid(431, "%000001af"), - Attrs([Attr("address","0x660"), Attr("insn","ldr x0, [x0, #0xff0]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(4080,64)),LittleEndian(),64)), -Def(Tid(436, "%000001b4"), Attrs([Attr("address","0x664"), -Attr("insn","mov x3, #0x0")]), Var("R3",Imm(64)), Int(0,64)), -Def(Tid(441, "%000001b9"), Attrs([Attr("address","0x668"), -Attr("insn","mov x4, #0x0")]), Var("R4",Imm(64)), Int(0,64)), -Def(Tid(446, "%000001be"), Attrs([Attr("address","0x66C"), -Attr("insn","bl #-0x9c")]), Var("R30",Imm(64)), Int(1648,64))]), -Jmps([Call(Tid(449, "%000001c1"), Attrs([Attr("address","0x66C"), -Attr("insn","bl #-0x9c")]), Int(1,1), -(Direct(Tid(1_303, "@__libc_start_main")),Direct(Tid(451, "%000001c3"))))])), -Blk(Tid(451, "%000001c3"), Attrs([Attr("address","0x670")]), Phis([]), -Defs([Def(Tid(454, "%000001c6"), Attrs([Attr("address","0x670"), -Attr("insn","bl #-0x70")]), Var("R30",Imm(64)), Int(1652,64))]), -Jmps([Call(Tid(457, "%000001c9"), Attrs([Attr("address","0x670"), -Attr("insn","bl #-0x70")]), Int(1,1), -(Direct(Tid(1_309, "@abort")),Direct(Tid(1_341, "%0000053d"))))])), -Blk(Tid(1_341, "%0000053d"), Attrs([]), Phis([]), Defs([]), -Jmps([Call(Tid(1_342, "%0000053e"), Attrs([]), Int(1,1), -(Direct(Tid(1_310, "@call_weak_fn")),))]))])), Sub(Tid(1_309, "@abort"), - Attrs([Attr("noreturn","()"), Attr("c.proto","void (*)(void)"), -Attr("address","0x600"), Attr("stub","()")]), "abort", Args([]), -Blks([Blk(Tid(455, "@abort"), Attrs([Attr("address","0x600")]), Phis([]), -Defs([Def(Tid(1_088, "%00000440"), Attrs([Attr("address","0x600"), -Attr("insn","adrp x16, #65536")]), Var("R16",Imm(64)), Int(65536,64)), -Def(Tid(1_095, "%00000447"), Attrs([Attr("address","0x604"), -Attr("insn","ldr x17, [x16, #0xfc0]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(4032,64)),LittleEndian(),64)), -Def(Tid(1_101, "%0000044d"), Attrs([Attr("address","0x608"), -Attr("insn","add x16, x16, #0xfc0")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(4032,64)))]), Jmps([Call(Tid(1_106, "%00000452"), - Attrs([Attr("address","0x60C"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), Sub(Tid(1_310, "@call_weak_fn"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x674")]), - "call_weak_fn", Args([Arg(Tid(1_359, "%0000054f"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("call_weak_fn_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(459, "@call_weak_fn"), - Attrs([Attr("address","0x674")]), Phis([]), Defs([Def(Tid(462, "%000001ce"), - Attrs([Attr("address","0x674"), Attr("insn","adrp x0, #65536")]), - Var("R0",Imm(64)), Int(65536,64)), Def(Tid(469, "%000001d5"), - Attrs([Attr("address","0x678"), Attr("insn","ldr x0, [x0, #0xfe8]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(4072,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(475, "%000001db"), Attrs([Attr("address","0x67C"), -Attr("insn","cbz x0, #0x8")]), EQ(Var("R0",Imm(64)),Int(0,64)), -Direct(Tid(473, "%000001d9"))), Goto(Tid(1_343, "%0000053f"), Attrs([]), - Int(1,1), Direct(Tid(860, "%0000035c")))])), Blk(Tid(473, "%000001d9"), - Attrs([Attr("address","0x684")]), Phis([]), Defs([]), -Jmps([Call(Tid(481, "%000001e1"), Attrs([Attr("address","0x684"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))])), -Blk(Tid(860, "%0000035c"), Attrs([Attr("address","0x680")]), Phis([]), -Defs([]), Jmps([Goto(Tid(863, "%0000035f"), Attrs([Attr("address","0x680"), -Attr("insn","b #-0x90")]), Int(1,1), Direct(Tid(861, "@__gmon_start__")))])), -Blk(Tid(861, "@__gmon_start__"), Attrs([Attr("address","0x5F0")]), Phis([]), -Defs([Def(Tid(1_066, "%0000042a"), Attrs([Attr("address","0x5F0"), -Attr("insn","adrp x16, #65536")]), Var("R16",Imm(64)), Int(65536,64)), -Def(Tid(1_073, "%00000431"), Attrs([Attr("address","0x5F4"), -Attr("insn","ldr x17, [x16, #0xfb8]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(4024,64)),LittleEndian(),64)), -Def(Tid(1_079, "%00000437"), Attrs([Attr("address","0x5F8"), -Attr("insn","add x16, x16, #0xfb8")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(4024,64)))]), Jmps([Call(Tid(1_084, "%0000043c"), - Attrs([Attr("address","0x5FC"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), -Sub(Tid(1_312, "@deregister_tm_clones"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x690")]), - "deregister_tm_clones", Args([Arg(Tid(1_360, "%00000550"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("deregister_tm_clones_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(487, "@deregister_tm_clones"), - Attrs([Attr("address","0x690")]), Phis([]), Defs([Def(Tid(490, "%000001ea"), - Attrs([Attr("address","0x690"), Attr("insn","adrp x0, #69632")]), - Var("R0",Imm(64)), Int(69632,64)), Def(Tid(496, "%000001f0"), - Attrs([Attr("address","0x694"), Attr("insn","add x0, x0, #0x10")]), - Var("R0",Imm(64)), PLUS(Var("R0",Imm(64)),Int(16,64))), -Def(Tid(501, "%000001f5"), Attrs([Attr("address","0x698"), -Attr("insn","adrp x1, #69632")]), Var("R1",Imm(64)), Int(69632,64)), -Def(Tid(507, "%000001fb"), Attrs([Attr("address","0x69C"), -Attr("insn","add x1, x1, #0x10")]), Var("R1",Imm(64)), -PLUS(Var("R1",Imm(64)),Int(16,64))), Def(Tid(513, "%00000201"), - Attrs([Attr("address","0x6A0"), Attr("insn","cmp x1, x0")]), - Var("#1",Imm(64)), NOT(Var("R0",Imm(64)))), Def(Tid(518, "%00000206"), - Attrs([Attr("address","0x6A0"), Attr("insn","cmp x1, x0")]), - Var("#2",Imm(64)), PLUS(Var("R1",Imm(64)),NOT(Var("R0",Imm(64))))), -Def(Tid(524, "%0000020c"), Attrs([Attr("address","0x6A0"), -Attr("insn","cmp x1, x0")]), Var("VF",Imm(1)), -NEQ(SIGNED(65,PLUS(Var("#2",Imm(64)),Int(1,64))),PLUS(PLUS(SIGNED(65,Var("R1",Imm(64))),SIGNED(65,Var("#1",Imm(64)))),Int(1,65)))), -Def(Tid(530, "%00000212"), Attrs([Attr("address","0x6A0"), -Attr("insn","cmp x1, x0")]), Var("CF",Imm(1)), -NEQ(UNSIGNED(65,PLUS(Var("#2",Imm(64)),Int(1,64))),PLUS(PLUS(UNSIGNED(65,Var("R1",Imm(64))),UNSIGNED(65,Var("#1",Imm(64)))),Int(1,65)))), -Def(Tid(534, "%00000216"), Attrs([Attr("address","0x6A0"), -Attr("insn","cmp x1, x0")]), Var("ZF",Imm(1)), -EQ(PLUS(Var("#2",Imm(64)),Int(1,64)),Int(0,64))), Def(Tid(538, "%0000021a"), - Attrs([Attr("address","0x6A0"), Attr("insn","cmp x1, x0")]), - Var("NF",Imm(1)), Extract(63,63,PLUS(Var("#2",Imm(64)),Int(1,64))))]), -Jmps([Goto(Tid(544, "%00000220"), Attrs([Attr("address","0x6A4"), -Attr("insn","b.eq #0x18")]), EQ(Var("ZF",Imm(1)),Int(1,1)), -Direct(Tid(542, "%0000021e"))), Goto(Tid(1_344, "%00000540"), Attrs([]), - Int(1,1), Direct(Tid(830, "%0000033e")))])), Blk(Tid(830, "%0000033e"), - Attrs([Attr("address","0x6A8")]), Phis([]), Defs([Def(Tid(833, "%00000341"), - Attrs([Attr("address","0x6A8"), Attr("insn","adrp x1, #65536")]), - Var("R1",Imm(64)), Int(65536,64)), Def(Tid(840, "%00000348"), - Attrs([Attr("address","0x6AC"), Attr("insn","ldr x1, [x1, #0xfd0]")]), - Var("R1",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R1",Imm(64)),Int(4048,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(845, "%0000034d"), Attrs([Attr("address","0x6B0"), -Attr("insn","cbz x1, #0xc")]), EQ(Var("R1",Imm(64)),Int(0,64)), -Direct(Tid(542, "%0000021e"))), Goto(Tid(1_345, "%00000541"), Attrs([]), - Int(1,1), Direct(Tid(849, "%00000351")))])), Blk(Tid(542, "%0000021e"), - Attrs([Attr("address","0x6BC")]), Phis([]), Defs([]), -Jmps([Call(Tid(550, "%00000226"), Attrs([Attr("address","0x6BC"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))])), -Blk(Tid(849, "%00000351"), Attrs([Attr("address","0x6B4")]), Phis([]), -Defs([Def(Tid(853, "%00000355"), Attrs([Attr("address","0x6B4"), -Attr("insn","mov x16, x1")]), Var("R16",Imm(64)), Var("R1",Imm(64)))]), -Jmps([Call(Tid(858, "%0000035a"), Attrs([Attr("address","0x6B8"), -Attr("insn","br x16")]), Int(1,1), (Indirect(Var("R16",Imm(64))),))]))])), -Sub(Tid(1_315, "@frame_dummy"), Attrs([Attr("c.proto","signed (*)(void)"), -Attr("address","0x750")]), "frame_dummy", Args([Arg(Tid(1_361, "%00000551"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("frame_dummy_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(702, "@frame_dummy"), - Attrs([Attr("address","0x750")]), Phis([]), Defs([]), -Jmps([Call(Tid(704, "%000002c0"), Attrs([Attr("address","0x750"), -Attr("insn","b #-0x90")]), Int(1,1), -(Direct(Tid(1_317, "@register_tm_clones")),))]))])), Sub(Tid(1_316, "@main"), - Attrs([Attr("c.proto","signed (*)(signed argc, const char** argv)"), -Attr("address","0x754")]), "main", Args([Arg(Tid(1_362, "%00000552"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("main_argc",Imm(32)), -LOW(32,Var("R0",Imm(64))), In()), Arg(Tid(1_363, "%00000553"), - Attrs([Attr("c.layout","**[char : 8]"), Attr("c.data","Top:u8 ptr ptr"), -Attr("c.type"," const char**")]), Var("main_argv",Imm(64)), -Var("R1",Imm(64)), Both()), Arg(Tid(1_364, "%00000554"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("main_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(706, "@main"), - Attrs([Attr("address","0x754")]), Phis([]), Defs([Def(Tid(709, "%000002c5"), - Attrs([Attr("address","0x754"), Attr("insn","adrp x0, #65536")]), - Var("R0",Imm(64)), Int(65536,64)), Def(Tid(716, "%000002cc"), - Attrs([Attr("address","0x758"), Attr("insn","ldr x0, [x0, #0xfe0]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(4064,64)),LittleEndian(),64)), -Def(Tid(721, "%000002d1"), Attrs([Attr("address","0x75C"), -Attr("insn","mov w1, #0x1")]), Var("R1",Imm(64)), Int(1,64)), -Def(Tid(729, "%000002d9"), Attrs([Attr("address","0x760"), -Attr("insn","str w1, [x0]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("R0",Imm(64)),Extract(31,0,Var("R1",Imm(64))),LittleEndian(),32)), -Def(Tid(734, "%000002de"), Attrs([Attr("address","0x764"), -Attr("insn","mov w0, #0x0")]), Var("R0",Imm(64)), Int(0,64))]), -Jmps([Call(Tid(739, "%000002e3"), Attrs([Attr("address","0x768"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))]))])), -Sub(Tid(1_317, "@register_tm_clones"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x6C0")]), - "register_tm_clones", Args([Arg(Tid(1_365, "%00000555"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("register_tm_clones_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(552, "@register_tm_clones"), Attrs([Attr("address","0x6C0")]), - Phis([]), Defs([Def(Tid(555, "%0000022b"), Attrs([Attr("address","0x6C0"), -Attr("insn","adrp x0, #69632")]), Var("R0",Imm(64)), Int(69632,64)), -Def(Tid(561, "%00000231"), Attrs([Attr("address","0x6C4"), -Attr("insn","add x0, x0, #0x10")]), Var("R0",Imm(64)), -PLUS(Var("R0",Imm(64)),Int(16,64))), Def(Tid(566, "%00000236"), - Attrs([Attr("address","0x6C8"), Attr("insn","adrp x1, #69632")]), - Var("R1",Imm(64)), Int(69632,64)), Def(Tid(572, "%0000023c"), - Attrs([Attr("address","0x6CC"), Attr("insn","add x1, x1, #0x10")]), - Var("R1",Imm(64)), PLUS(Var("R1",Imm(64)),Int(16,64))), -Def(Tid(579, "%00000243"), Attrs([Attr("address","0x6D0"), -Attr("insn","sub x1, x1, x0")]), Var("R1",Imm(64)), -PLUS(PLUS(Var("R1",Imm(64)),NOT(Var("R0",Imm(64)))),Int(1,64))), -Def(Tid(585, "%00000249"), Attrs([Attr("address","0x6D4"), -Attr("insn","lsr x2, x1, #63")]), Var("R2",Imm(64)), -Concat(Int(0,63),Extract(63,63,Var("R1",Imm(64))))), -Def(Tid(592, "%00000250"), Attrs([Attr("address","0x6D8"), -Attr("insn","add x1, x2, x1, asr #3")]), Var("R1",Imm(64)), -PLUS(Var("R2",Imm(64)),ARSHIFT(Var("R1",Imm(64)),Int(3,3)))), -Def(Tid(598, "%00000256"), Attrs([Attr("address","0x6DC"), -Attr("insn","asr x1, x1, #1")]), Var("R1",Imm(64)), -SIGNED(64,Extract(63,1,Var("R1",Imm(64)))))]), -Jmps([Goto(Tid(604, "%0000025c"), Attrs([Attr("address","0x6E0"), -Attr("insn","cbz x1, #0x18")]), EQ(Var("R1",Imm(64)),Int(0,64)), -Direct(Tid(602, "%0000025a"))), Goto(Tid(1_346, "%00000542"), Attrs([]), - Int(1,1), Direct(Tid(800, "%00000320")))])), Blk(Tid(800, "%00000320"), - Attrs([Attr("address","0x6E4")]), Phis([]), Defs([Def(Tid(803, "%00000323"), - Attrs([Attr("address","0x6E4"), Attr("insn","adrp x2, #65536")]), - Var("R2",Imm(64)), Int(65536,64)), Def(Tid(810, "%0000032a"), - Attrs([Attr("address","0x6E8"), Attr("insn","ldr x2, [x2, #0xff8]")]), - Var("R2",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R2",Imm(64)),Int(4088,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(815, "%0000032f"), Attrs([Attr("address","0x6EC"), -Attr("insn","cbz x2, #0xc")]), EQ(Var("R2",Imm(64)),Int(0,64)), -Direct(Tid(602, "%0000025a"))), Goto(Tid(1_347, "%00000543"), Attrs([]), - Int(1,1), Direct(Tid(819, "%00000333")))])), Blk(Tid(602, "%0000025a"), - Attrs([Attr("address","0x6F8")]), Phis([]), Defs([]), -Jmps([Call(Tid(610, "%00000262"), Attrs([Attr("address","0x6F8"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))])), -Blk(Tid(819, "%00000333"), Attrs([Attr("address","0x6F0")]), Phis([]), -Defs([Def(Tid(823, "%00000337"), Attrs([Attr("address","0x6F0"), -Attr("insn","mov x16, x2")]), Var("R16",Imm(64)), Var("R2",Imm(64)))]), -Jmps([Call(Tid(828, "%0000033c"), Attrs([Attr("address","0x6F4"), -Attr("insn","br x16")]), Int(1,1), -(Indirect(Var("R16",Imm(64))),))]))]))]))) \ No newline at end of file diff --git a/src/test/correct/no_interference_update_x/gcc_pic/no_interference_update_x.bir b/src/test/correct/no_interference_update_x/gcc_pic/no_interference_update_x.bir deleted file mode 100644 index a118f55cb..000000000 --- a/src/test/correct/no_interference_update_x/gcc_pic/no_interference_update_x.bir +++ /dev/null @@ -1,228 +0,0 @@ -00000544: program -00000512: sub __cxa_finalize(__cxa_finalize_result) -00000545: __cxa_finalize_result :: out u32 = low:32[R0] - -0000031c: -00000414: R16 := 0x10000 -0000041b: R17 := mem[R16 + 0xFB0, el]:u64 -00000421: R16 := R16 + 0xFB0 -00000426: call R17 with noreturn - -00000513: sub __do_global_dtors_aux(__do_global_dtors_aux_result) -00000546: __do_global_dtors_aux_result :: out u32 = low:32[R0] - -00000266: -0000026a: #3 := R31 - 0x20 -00000270: mem := mem with [#3, el]:u64 <- R29 -00000276: mem := mem with [#3 + 8, el]:u64 <- R30 -0000027a: R31 := #3 -00000280: R29 := R31 -00000288: mem := mem with [R31 + 0x10, el]:u64 <- R19 -0000028d: R19 := 0x11000 -00000294: R0 := pad:64[mem[R19 + 0x10]] -0000029b: when 31:0[R0] <> 0 goto %00000299 -0000053a: goto %000002e5 - -000002e5: -000002e8: R0 := 0x10000 -000002ef: R0 := mem[R0 + 0xFD8, el]:u64 -000002f5: when R0 = 0 goto %000002f3 -0000053b: goto %0000030c - -0000030c: -0000030f: R0 := 0x11000 -00000316: R0 := mem[R0 + 8, el]:u64 -0000031b: R30 := 0x730 -0000031e: call @__cxa_finalize with return %000002f3 - -000002f3: -000002fb: R30 := 0x734 -000002fd: call @deregister_tm_clones with return %000002ff - -000002ff: -00000302: R0 := 1 -0000030a: mem := mem with [R19 + 0x10] <- 7:0[R0] -0000053c: goto %00000299 - -00000299: -000002a3: R19 := mem[R31 + 0x10, el]:u64 -000002aa: R29 := mem[R31, el]:u64 -000002af: R30 := mem[R31 + 8, el]:u64 -000002b3: R31 := R31 + 0x20 -000002b8: call R30 with noreturn - -00000517: sub __libc_start_main(__libc_start_main_main, __libc_start_main_arg2, __libc_start_main_arg3, __libc_start_main_auxv, __libc_start_main_result) -00000547: __libc_start_main_main :: in u64 = R0 -00000548: __libc_start_main_arg2 :: in u32 = low:32[R1] -00000549: __libc_start_main_arg3 :: in out u64 = R2 -0000054a: __libc_start_main_auxv :: in out u64 = R3 -0000054b: __libc_start_main_result :: out u32 = low:32[R0] - -000001bf: -000003fe: R16 := 0x10000 -00000405: R17 := mem[R16 + 0xFA8, el]:u64 -0000040b: R16 := R16 + 0xFA8 -00000410: call R17 with noreturn - -00000518: sub _fini(_fini_result) -0000054c: _fini_result :: out u32 = low:32[R0] - -0000001f: -00000025: #0 := R31 - 0x10 -0000002b: mem := mem with [#0, el]:u64 <- R29 -00000031: mem := mem with [#0 + 8, el]:u64 <- R30 -00000035: R31 := #0 -0000003b: R29 := R31 -00000042: R29 := mem[R31, el]:u64 -00000047: R30 := mem[R31 + 8, el]:u64 -0000004b: R31 := R31 + 0x10 -00000050: call R30 with noreturn - -00000519: sub _init(_init_result) -0000054d: _init_result :: out u32 = low:32[R0] - -0000046e: -00000474: #5 := R31 - 0x10 -0000047a: mem := mem with [#5, el]:u64 <- R29 -00000480: mem := mem with [#5 + 8, el]:u64 <- R30 -00000484: R31 := #5 -0000048a: R29 := R31 -0000048f: R30 := 0x5A8 -00000491: call @call_weak_fn with return %00000493 - -00000493: -00000498: R29 := mem[R31, el]:u64 -0000049d: R30 := mem[R31 + 8, el]:u64 -000004a1: R31 := R31 + 0x10 -000004a6: call R30 with noreturn - -0000051a: sub _start(_start_result) -0000054e: _start_result :: out u32 = low:32[R0] - -00000180: -00000185: R29 := 0 -0000018a: R30 := 0 -00000190: R5 := R0 -00000197: R1 := mem[R31, el]:u64 -0000019d: R2 := R31 + 8 -000001a3: R6 := R31 -000001a8: R0 := 0x10000 -000001af: R0 := mem[R0 + 0xFF0, el]:u64 -000001b4: R3 := 0 -000001b9: R4 := 0 -000001be: R30 := 0x670 -000001c1: call @__libc_start_main with return %000001c3 - -000001c3: -000001c6: R30 := 0x674 -000001c9: call @abort with return %0000053d - -0000053d: -0000053e: call @call_weak_fn with noreturn - -0000051d: sub abort() - - -000001c7: -00000440: R16 := 0x10000 -00000447: R17 := mem[R16 + 0xFC0, el]:u64 -0000044d: R16 := R16 + 0xFC0 -00000452: call R17 with noreturn - -0000051e: sub call_weak_fn(call_weak_fn_result) -0000054f: call_weak_fn_result :: out u32 = low:32[R0] - -000001cb: -000001ce: R0 := 0x10000 -000001d5: R0 := mem[R0 + 0xFE8, el]:u64 -000001db: when R0 = 0 goto %000001d9 -0000053f: goto %0000035c - -000001d9: -000001e1: call R30 with noreturn - -0000035c: -0000035f: goto @__gmon_start__ - -0000035d: -0000042a: R16 := 0x10000 -00000431: R17 := mem[R16 + 0xFB8, el]:u64 -00000437: R16 := R16 + 0xFB8 -0000043c: call R17 with noreturn - -00000520: sub deregister_tm_clones(deregister_tm_clones_result) -00000550: deregister_tm_clones_result :: out u32 = low:32[R0] - -000001e7: -000001ea: R0 := 0x11000 -000001f0: R0 := R0 + 0x10 -000001f5: R1 := 0x11000 -000001fb: R1 := R1 + 0x10 -00000201: #1 := ~R0 -00000206: #2 := R1 + ~R0 -0000020c: VF := extend:65[#2 + 1] <> extend:65[R1] + extend:65[#1] + 1 -00000212: CF := pad:65[#2 + 1] <> pad:65[R1] + pad:65[#1] + 1 -00000216: ZF := #2 + 1 = 0 -0000021a: NF := 63:63[#2 + 1] -00000220: when ZF goto %0000021e -00000540: goto %0000033e - -0000033e: -00000341: R1 := 0x10000 -00000348: R1 := mem[R1 + 0xFD0, el]:u64 -0000034d: when R1 = 0 goto %0000021e -00000541: goto %00000351 - -0000021e: -00000226: call R30 with noreturn - -00000351: -00000355: R16 := R1 -0000035a: call R16 with noreturn - -00000523: sub frame_dummy(frame_dummy_result) -00000551: frame_dummy_result :: out u32 = low:32[R0] - -000002be: -000002c0: call @register_tm_clones with noreturn - -00000524: sub main(main_argc, main_argv, main_result) -00000552: main_argc :: in u32 = low:32[R0] -00000553: main_argv :: in out u64 = R1 -00000554: main_result :: out u32 = low:32[R0] - -000002c2: -000002c5: R0 := 0x10000 -000002cc: R0 := mem[R0 + 0xFE0, el]:u64 -000002d1: R1 := 1 -000002d9: mem := mem with [R0, el]:u32 <- 31:0[R1] -000002de: R0 := 0 -000002e3: call R30 with noreturn - -00000525: sub register_tm_clones(register_tm_clones_result) -00000555: register_tm_clones_result :: out u32 = low:32[R0] - -00000228: -0000022b: R0 := 0x11000 -00000231: R0 := R0 + 0x10 -00000236: R1 := 0x11000 -0000023c: R1 := R1 + 0x10 -00000243: R1 := R1 + ~R0 + 1 -00000249: R2 := 0.63:63[R1] -00000250: R1 := R2 + (R1 ~>> 3) -00000256: R1 := extend:64[63:1[R1]] -0000025c: when R1 = 0 goto %0000025a -00000542: goto %00000320 - -00000320: -00000323: R2 := 0x10000 -0000032a: R2 := mem[R2 + 0xFF8, el]:u64 -0000032f: when R2 = 0 goto %0000025a -00000543: goto %00000333 - -0000025a: -00000262: call R30 with noreturn - -00000333: -00000337: R16 := R2 -0000033c: call R16 with noreturn diff --git a/src/test/correct/no_interference_update_x/gcc_pic/no_interference_update_x.expected b/src/test/correct/no_interference_update_x/gcc_pic/no_interference_update_x.expected index 1e69c9c4c..6eebd683c 100644 --- a/src/test/correct/no_interference_update_x/gcc_pic/no_interference_update_x.expected +++ b/src/test/correct/no_interference_update_x/gcc_pic/no_interference_update_x.expected @@ -69,7 +69,7 @@ implementation {:extern} guarantee_reflexive() assert (memory_load32_le(mem, $y_addr) == memory_load32_le(mem, $y_addr)); } -procedure main_1876(); +procedure main(); modifies Gamma_R0, Gamma_R1, Gamma_mem, R0, R1, mem; free requires (memory_load64_le(mem, 69632bv64) == 0bv64); free requires (memory_load64_le(mem, 69640bv64) == 69640bv64); @@ -87,28 +87,28 @@ procedure main_1876(); free ensures (memory_load64_le(mem, 69616bv64) == 1876bv64); free ensures (memory_load64_le(mem, 69640bv64) == 69640bv64); -implementation main_1876() +implementation main() { - var Gamma_load18: bool; - var load18: bv64; + var $load$18: bv64; + var Gamma_$load$18: bool; var y_old: bv32; lmain: assume {:captureState "lmain"} true; R0, Gamma_R0 := 65536bv64, true; call rely(); - load18, Gamma_load18 := memory_load64_le(mem, bvadd64(R0, 4064bv64)), (gamma_load64(Gamma_mem, bvadd64(R0, 4064bv64)) || L(mem, bvadd64(R0, 4064bv64))); - R0, Gamma_R0 := load18, Gamma_load18; + $load$18, Gamma_$load$18 := memory_load64_le(mem, bvadd64(R0, 4064bv64)), (gamma_load64(Gamma_mem, bvadd64(R0, 4064bv64)) || L(mem, bvadd64(R0, 4064bv64))); + R0, Gamma_R0 := $load$18, Gamma_$load$18; R1, Gamma_R1 := 1bv64, true; call rely(); - y_old := memory_load32_le(mem, $y_addr); assert (L(mem, R0) ==> Gamma_R1); + y_old := memory_load32_le(mem, $y_addr); mem, Gamma_mem := memory_store32_le(mem, R0, R1[32:0]), gamma_store32(Gamma_mem, R0, Gamma_R1); assert (memory_load32_le(mem, $y_addr) == y_old); assume {:captureState "%000002d9"} true; R0, Gamma_R0 := 0bv64, true; - goto main_1876_basil_return; - main_1876_basil_return: - assume {:captureState "main_1876_basil_return"} true; + goto main_basil_return; + main_basil_return: + assume {:captureState "main_basil_return"} true; return; } diff --git a/src/test/correct/no_interference_update_x/gcc_pic/no_interference_update_x.gts b/src/test/correct/no_interference_update_x/gcc_pic/no_interference_update_x.gts deleted file mode 100644 index 221d8080c..000000000 Binary files a/src/test/correct/no_interference_update_x/gcc_pic/no_interference_update_x.gts and /dev/null differ diff --git a/src/test/correct/no_interference_update_x/gcc_pic/no_interference_update_x.md5sum b/src/test/correct/no_interference_update_x/gcc_pic/no_interference_update_x.md5sum new file mode 100644 index 000000000..bc41b9ac2 --- /dev/null +++ b/src/test/correct/no_interference_update_x/gcc_pic/no_interference_update_x.md5sum @@ -0,0 +1,5 @@ +e1ce38571657d3697fb6f5151e9f3042 correct/no_interference_update_x/gcc_pic/a.out +2b7d1a8167a5b520a0d82514aed59a64 correct/no_interference_update_x/gcc_pic/no_interference_update_x.adt +f4a408dcc3cff7a3a0b2c872a912e097 correct/no_interference_update_x/gcc_pic/no_interference_update_x.bir +b8aac752a7424974c54be7e1cf21f428 correct/no_interference_update_x/gcc_pic/no_interference_update_x.relf +41d73f65560fde3c03dcb108b365e4b5 correct/no_interference_update_x/gcc_pic/no_interference_update_x.gts diff --git a/src/test/correct/no_interference_update_x/gcc_pic/no_interference_update_x.relf b/src/test/correct/no_interference_update_x/gcc_pic/no_interference_update_x.relf deleted file mode 100644 index f12e40bd7..000000000 --- a/src/test/correct/no_interference_update_x/gcc_pic/no_interference_update_x.relf +++ /dev/null @@ -1,123 +0,0 @@ - -Relocation section '.rela.dyn' at offset 0x460 contains 9 entries: - Offset Info Type Symbol's Value Symbol's Name + Addend -0000000000010d90 0000000000000403 R_AARCH64_RELATIVE 750 -0000000000010d98 0000000000000403 R_AARCH64_RELATIVE 700 -0000000000010fe0 0000000000000403 R_AARCH64_RELATIVE 11014 -0000000000010ff0 0000000000000403 R_AARCH64_RELATIVE 754 -0000000000011008 0000000000000403 R_AARCH64_RELATIVE 11008 -0000000000010fd0 0000000400000401 R_AARCH64_GLOB_DAT 0000000000000000 _ITM_deregisterTMCloneTable + 0 -0000000000010fd8 0000000500000401 R_AARCH64_GLOB_DAT 0000000000000000 __cxa_finalize@GLIBC_2.17 + 0 -0000000000010fe8 0000000600000401 R_AARCH64_GLOB_DAT 0000000000000000 __gmon_start__ + 0 -0000000000010ff8 0000000800000401 R_AARCH64_GLOB_DAT 0000000000000000 _ITM_registerTMCloneTable + 0 - -Relocation section '.rela.plt' at offset 0x538 contains 4 entries: - Offset Info Type Symbol's Value Symbol's Name + Addend -0000000000010fa8 0000000300000402 R_AARCH64_JUMP_SLOT 0000000000000000 __libc_start_main@GLIBC_2.34 + 0 -0000000000010fb0 0000000500000402 R_AARCH64_JUMP_SLOT 0000000000000000 __cxa_finalize@GLIBC_2.17 + 0 -0000000000010fb8 0000000600000402 R_AARCH64_JUMP_SLOT 0000000000000000 __gmon_start__ + 0 -0000000000010fc0 0000000700000402 R_AARCH64_JUMP_SLOT 0000000000000000 abort@GLIBC_2.17 + 0 - -Symbol table '.dynsym' contains 9 entries: - Num: Value Size Type Bind Vis Ndx Name - 0: 0000000000000000 0 NOTYPE LOCAL DEFAULT UND - 1: 0000000000000598 0 SECTION LOCAL DEFAULT 11 .init - 2: 0000000000011000 0 SECTION LOCAL DEFAULT 22 .data - 3: 0000000000000000 0 FUNC GLOBAL DEFAULT UND __libc_start_main@GLIBC_2.34 (2) - 4: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_deregisterTMCloneTable - 5: 0000000000000000 0 FUNC WEAK DEFAULT UND __cxa_finalize@GLIBC_2.17 (3) - 6: 0000000000000000 0 NOTYPE WEAK DEFAULT UND __gmon_start__ - 7: 0000000000000000 0 FUNC GLOBAL DEFAULT UND abort@GLIBC_2.17 (3) - 8: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_registerTMCloneTable - -Symbol table '.symtab' contains 89 entries: - Num: Value Size Type Bind Vis Ndx Name - 0: 0000000000000000 0 NOTYPE LOCAL DEFAULT UND - 1: 0000000000000238 0 SECTION LOCAL DEFAULT 1 .interp - 2: 0000000000000254 0 SECTION LOCAL DEFAULT 2 .note.gnu.build-id - 3: 0000000000000278 0 SECTION LOCAL DEFAULT 3 .note.ABI-tag - 4: 0000000000000298 0 SECTION LOCAL DEFAULT 4 .gnu.hash - 5: 00000000000002b8 0 SECTION LOCAL DEFAULT 5 .dynsym - 6: 0000000000000390 0 SECTION LOCAL DEFAULT 6 .dynstr - 7: 000000000000041e 0 SECTION LOCAL DEFAULT 7 .gnu.version - 8: 0000000000000430 0 SECTION LOCAL DEFAULT 8 .gnu.version_r - 9: 0000000000000460 0 SECTION LOCAL DEFAULT 9 .rela.dyn - 10: 0000000000000538 0 SECTION LOCAL DEFAULT 10 .rela.plt - 11: 0000000000000598 0 SECTION LOCAL DEFAULT 11 .init - 12: 00000000000005b0 0 SECTION LOCAL DEFAULT 12 .plt - 13: 0000000000000640 0 SECTION LOCAL DEFAULT 13 .text - 14: 000000000000076c 0 SECTION LOCAL DEFAULT 14 .fini - 15: 0000000000000780 0 SECTION LOCAL DEFAULT 15 .rodata - 16: 0000000000000784 0 SECTION LOCAL DEFAULT 16 .eh_frame_hdr - 17: 00000000000007c0 0 SECTION LOCAL DEFAULT 17 .eh_frame - 18: 0000000000010d90 0 SECTION LOCAL DEFAULT 18 .init_array - 19: 0000000000010d98 0 SECTION LOCAL DEFAULT 19 .fini_array - 20: 0000000000010da0 0 SECTION LOCAL DEFAULT 20 .dynamic - 21: 0000000000010f90 0 SECTION LOCAL DEFAULT 21 .got - 22: 0000000000011000 0 SECTION LOCAL DEFAULT 22 .data - 23: 0000000000011010 0 SECTION LOCAL DEFAULT 23 .bss - 24: 0000000000000000 0 SECTION LOCAL DEFAULT 24 .comment - 25: 0000000000000000 0 FILE LOCAL DEFAULT ABS Scrt1.o - 26: 0000000000000278 0 NOTYPE LOCAL DEFAULT 3 $d - 27: 0000000000000278 32 OBJECT LOCAL DEFAULT 3 __abi_tag - 28: 0000000000000640 0 NOTYPE LOCAL DEFAULT 13 $x - 29: 00000000000007d4 0 NOTYPE LOCAL DEFAULT 17 $d - 30: 0000000000000780 0 NOTYPE LOCAL DEFAULT 15 $d - 31: 0000000000000000 0 FILE LOCAL DEFAULT ABS crti.o - 32: 0000000000000674 0 NOTYPE LOCAL DEFAULT 13 $x - 33: 0000000000000674 20 FUNC LOCAL DEFAULT 13 call_weak_fn - 34: 0000000000000598 0 NOTYPE LOCAL DEFAULT 11 $x - 35: 000000000000076c 0 NOTYPE LOCAL DEFAULT 14 $x - 36: 0000000000000000 0 FILE LOCAL DEFAULT ABS crtn.o - 37: 00000000000005a8 0 NOTYPE LOCAL DEFAULT 11 $x - 38: 0000000000000778 0 NOTYPE LOCAL DEFAULT 14 $x - 39: 0000000000000000 0 FILE LOCAL DEFAULT ABS crtstuff.c - 40: 0000000000000690 0 NOTYPE LOCAL DEFAULT 13 $x - 41: 0000000000000690 0 FUNC LOCAL DEFAULT 13 deregister_tm_clones - 42: 00000000000006c0 0 FUNC LOCAL DEFAULT 13 register_tm_clones - 43: 0000000000011008 0 NOTYPE LOCAL DEFAULT 22 $d - 44: 0000000000000700 0 FUNC LOCAL DEFAULT 13 __do_global_dtors_aux - 45: 0000000000011010 1 OBJECT LOCAL DEFAULT 23 completed.0 - 46: 0000000000010d98 0 NOTYPE LOCAL DEFAULT 19 $d - 47: 0000000000010d98 0 OBJECT LOCAL DEFAULT 19 __do_global_dtors_aux_fini_array_entry - 48: 0000000000000750 0 FUNC LOCAL DEFAULT 13 frame_dummy - 49: 0000000000010d90 0 NOTYPE LOCAL DEFAULT 18 $d - 50: 0000000000010d90 0 OBJECT LOCAL DEFAULT 18 __frame_dummy_init_array_entry - 51: 00000000000007e8 0 NOTYPE LOCAL DEFAULT 17 $d - 52: 0000000000011010 0 NOTYPE LOCAL DEFAULT 23 $d - 53: 0000000000000000 0 FILE LOCAL DEFAULT ABS no_interference_update_x.c - 54: 0000000000011014 0 NOTYPE LOCAL DEFAULT 23 $d - 55: 0000000000000754 0 NOTYPE LOCAL DEFAULT 13 $x - 56: 0000000000000848 0 NOTYPE LOCAL DEFAULT 17 $d - 57: 0000000000000000 0 FILE LOCAL DEFAULT ABS crtstuff.c - 58: 000000000000085c 0 NOTYPE LOCAL DEFAULT 17 $d - 59: 000000000000085c 0 OBJECT LOCAL DEFAULT 17 __FRAME_END__ - 60: 0000000000000000 0 FILE LOCAL DEFAULT ABS - 61: 0000000000010da0 0 OBJECT LOCAL DEFAULT ABS _DYNAMIC - 62: 0000000000000784 0 NOTYPE LOCAL DEFAULT 16 __GNU_EH_FRAME_HDR - 63: 0000000000010fc8 0 OBJECT LOCAL DEFAULT ABS _GLOBAL_OFFSET_TABLE_ - 64: 00000000000005b0 0 NOTYPE LOCAL DEFAULT 12 $x - 65: 0000000000000000 0 FUNC GLOBAL DEFAULT UND __libc_start_main@GLIBC_2.34 - 66: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_deregisterTMCloneTable - 67: 0000000000011000 0 NOTYPE WEAK DEFAULT 22 data_start - 68: 0000000000011010 0 NOTYPE GLOBAL DEFAULT 23 __bss_start__ - 69: 0000000000000000 0 FUNC WEAK DEFAULT UND __cxa_finalize@GLIBC_2.17 - 70: 0000000000011020 0 NOTYPE GLOBAL DEFAULT 23 _bss_end__ - 71: 0000000000011010 0 NOTYPE GLOBAL DEFAULT 22 _edata - 72: 0000000000011014 4 OBJECT GLOBAL DEFAULT 23 x - 73: 000000000000076c 0 FUNC GLOBAL HIDDEN 14 _fini - 74: 0000000000011020 0 NOTYPE GLOBAL DEFAULT 23 __bss_end__ - 75: 0000000000011000 0 NOTYPE GLOBAL DEFAULT 22 __data_start - 76: 0000000000000000 0 NOTYPE WEAK DEFAULT UND __gmon_start__ - 77: 0000000000011008 0 OBJECT GLOBAL HIDDEN 22 __dso_handle - 78: 0000000000000000 0 FUNC GLOBAL DEFAULT UND abort@GLIBC_2.17 - 79: 0000000000000780 4 OBJECT GLOBAL DEFAULT 15 _IO_stdin_used - 80: 0000000000011020 0 NOTYPE GLOBAL DEFAULT 23 _end - 81: 0000000000000640 52 FUNC GLOBAL DEFAULT 13 _start - 82: 0000000000011020 0 NOTYPE GLOBAL DEFAULT 23 __end__ - 83: 0000000000011018 4 OBJECT GLOBAL DEFAULT 23 y - 84: 0000000000011010 0 NOTYPE GLOBAL DEFAULT 23 __bss_start - 85: 0000000000000754 24 FUNC GLOBAL DEFAULT 13 main - 86: 0000000000011010 0 OBJECT GLOBAL HIDDEN 22 __TMC_END__ - 87: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_registerTMCloneTable - 88: 0000000000000598 0 FUNC GLOBAL HIDDEN 11 _init diff --git a/src/test/correct/no_interference_update_x/gcc_pic/no_interference_update_x_gtirb.expected b/src/test/correct/no_interference_update_x/gcc_pic/no_interference_update_x_gtirb.expected index ed6cb07cd..ae4593ae2 100644 --- a/src/test/correct/no_interference_update_x/gcc_pic/no_interference_update_x_gtirb.expected +++ b/src/test/correct/no_interference_update_x/gcc_pic/no_interference_update_x_gtirb.expected @@ -69,7 +69,7 @@ implementation {:extern} guarantee_reflexive() assert (memory_load32_le(mem, $y_addr) == memory_load32_le(mem, $y_addr)); } -procedure main_1876(); +procedure main(); modifies Gamma_R0, Gamma_R1, Gamma_mem, R0, R1, mem; free requires (memory_load64_le(mem, 69632bv64) == 0bv64); free requires (memory_load64_le(mem, 69640bv64) == 69640bv64); @@ -87,28 +87,28 @@ procedure main_1876(); free ensures (memory_load64_le(mem, 69616bv64) == 1876bv64); free ensures (memory_load64_le(mem, 69640bv64) == 69640bv64); -implementation main_1876() +implementation main() { - var Gamma_load20: bool; - var load20: bv64; + var $load20: bv64; + var Gamma_$load20: bool; var y_old: bv32; - main_1876__0__jTPw4UUhRdSFa8LhwZUbcQ: - assume {:captureState "main_1876__0__jTPw4UUhRdSFa8LhwZUbcQ"} true; + $main$__0__$jTPw4UUhRdSFa8LhwZUbcQ: + assume {:captureState "$main$__0__$jTPw4UUhRdSFa8LhwZUbcQ"} true; R0, Gamma_R0 := 65536bv64, true; call rely(); - load20, Gamma_load20 := memory_load64_le(mem, bvadd64(R0, 4064bv64)), (gamma_load64(Gamma_mem, bvadd64(R0, 4064bv64)) || L(mem, bvadd64(R0, 4064bv64))); - R0, Gamma_R0 := load20, Gamma_load20; + $load20, Gamma_$load20 := memory_load64_le(mem, bvadd64(R0, 4064bv64)), (gamma_load64(Gamma_mem, bvadd64(R0, 4064bv64)) || L(mem, bvadd64(R0, 4064bv64))); + R0, Gamma_R0 := $load20, Gamma_$load20; R1, Gamma_R1 := 1bv64, true; call rely(); - y_old := memory_load32_le(mem, $y_addr); assert (L(mem, R0) ==> Gamma_R1); + y_old := memory_load32_le(mem, $y_addr); mem, Gamma_mem := memory_store32_le(mem, R0, R1[32:0]), gamma_store32(Gamma_mem, R0, Gamma_R1); assert (memory_load32_le(mem, $y_addr) == y_old); - assume {:captureState "1888_0"} true; + assume {:captureState "1888$0"} true; R0, Gamma_R0 := 0bv64, true; - goto main_1876_basil_return; - main_1876_basil_return: - assume {:captureState "main_1876_basil_return"} true; + goto main_basil_return; + main_basil_return: + assume {:captureState "main_basil_return"} true; return; } diff --git a/src/test/correct/no_interference_update_y/clang/no_interference_update_y.adt b/src/test/correct/no_interference_update_y/clang/no_interference_update_y.adt deleted file mode 100644 index aebc8a91d..000000000 --- a/src/test/correct/no_interference_update_y/clang/no_interference_update_y.adt +++ /dev/null @@ -1,492 +0,0 @@ -Project(Attrs([Attr("filename","\"clang/no_interference_update_y.out\""), -Attr("image-specification","(declare abi (name str))\n(declare arch (name str))\n(declare base-address (addr int))\n(declare bias (off int))\n(declare bits (size int))\n(declare code-region (addr int) (size int) (off int))\n(declare code-start (addr int))\n(declare entry-point (addr int))\n(declare external-reference (addr int) (name str))\n(declare format (name str))\n(declare is-executable (flag bool))\n(declare is-little-endian (flag bool))\n(declare llvm:base-address (addr int))\n(declare llvm:code-entry (name str) (off int) (size int))\n(declare llvm:coff-import-library (name str))\n(declare llvm:coff-virtual-section-header (name str) (addr int) (size int))\n(declare llvm:elf-program-header (name str) (off int) (size int))\n(declare llvm:elf-program-header-flags (name str) (ld bool) (r bool) \n (w bool) (x bool))\n(declare llvm:elf-virtual-program-header (name str) (addr int) (size int))\n(declare llvm:entry-point (addr int))\n(declare llvm:macho-symbol (name str) (value int))\n(declare llvm:name-reference (at int) (name str))\n(declare llvm:relocation (at int) (addr int))\n(declare llvm:section-entry (name str) (addr int) (size int) (off int))\n(declare llvm:section-flags (name str) (r bool) (w bool) (x bool))\n(declare llvm:segment-command (name str) (off int) (size int))\n(declare llvm:segment-command-flags (name str) (r bool) (w bool) (x bool))\n(declare llvm:symbol-entry (name str) (addr int) (size int) (off int)\n (value int))\n(declare llvm:virtual-segment-command (name str) (addr int) (size int))\n(declare mapped (addr int) (size int) (off int))\n(declare named-region (addr int) (size int) (name str))\n(declare named-symbol (addr int) (name str))\n(declare require (name str))\n(declare section (addr int) (size int))\n(declare segment (addr int) (size int) (r bool) (w bool) (x bool))\n(declare subarch (name str))\n(declare symbol-chunk (addr int) (size int) (root int))\n(declare symbol-value (addr int) (value int))\n(declare system (name str))\n(declare vendor (name str))\n\n(abi unknown)\n(arch aarch64)\n(base-address 0)\n(bias 0)\n(bits 64)\n(code-region 1832 20 1832)\n(code-region 1536 296 1536)\n(code-region 1440 96 1440)\n(code-region 1408 24 1408)\n(code-start 1588)\n(code-start 1536)\n(code-start 1812)\n(entry-point 1536)\n(external-reference 69568 _ITM_deregisterTMCloneTable)\n(external-reference 69576 __cxa_finalize)\n(external-reference 69584 __gmon_start__)\n(external-reference 69600 _ITM_registerTMCloneTable)\n(external-reference 69632 __libc_start_main)\n(external-reference 69640 __cxa_finalize)\n(external-reference 69648 __gmon_start__)\n(external-reference 69656 abort)\n(format elf)\n(is-executable true)\n(is-little-endian true)\n(llvm:base-address 0)\n(llvm:code-entry abort 0 0)\n(llvm:code-entry __cxa_finalize 0 0)\n(llvm:code-entry __libc_start_main 0 0)\n(llvm:code-entry _init 1408 0)\n(llvm:code-entry main 1812 20)\n(llvm:code-entry _start 1536 52)\n(llvm:code-entry abort@GLIBC_2.17 0 0)\n(llvm:code-entry _fini 1832 0)\n(llvm:code-entry __cxa_finalize@GLIBC_2.17 0 0)\n(llvm:code-entry __libc_start_main@GLIBC_2.34 0 0)\n(llvm:code-entry frame_dummy 1808 0)\n(llvm:code-entry __do_global_dtors_aux 1728 0)\n(llvm:code-entry register_tm_clones 1664 0)\n(llvm:code-entry deregister_tm_clones 1616 0)\n(llvm:code-entry call_weak_fn 1588 20)\n(llvm:code-entry .fini 1832 20)\n(llvm:code-entry .text 1536 296)\n(llvm:code-entry .plt 1440 96)\n(llvm:code-entry .init 1408 24)\n(llvm:elf-program-header 08 3528 568)\n(llvm:elf-program-header 07 0 0)\n(llvm:elf-program-header 06 1856 60)\n(llvm:elf-program-header 05 596 68)\n(llvm:elf-program-header 04 3544 480)\n(llvm:elf-program-header 03 3528 616)\n(llvm:elf-program-header 02 0 2100)\n(llvm:elf-program-header 01 568 27)\n(llvm:elf-program-header 00 64 504)\n(llvm:elf-program-header-flags 08 false true false false)\n(llvm:elf-program-header-flags 07 false true true false)\n(llvm:elf-program-header-flags 06 false true false false)\n(llvm:elf-program-header-flags 05 false true false false)\n(llvm:elf-program-header-flags 04 false true true false)\n(llvm:elf-program-header-flags 03 true true true false)\n(llvm:elf-program-header-flags 02 true true false true)\n(llvm:elf-program-header-flags 01 false true false false)\n(llvm:elf-program-header-flags 00 false true false false)\n(llvm:elf-virtual-program-header 08 69064 568)\n(llvm:elf-virtual-program-header 07 0 0)\n(llvm:elf-virtual-program-header 06 1856 60)\n(llvm:elf-virtual-program-header 05 596 68)\n(llvm:elf-virtual-program-header 04 69080 480)\n(llvm:elf-virtual-program-header 03 69064 632)\n(llvm:elf-virtual-program-header 02 0 2100)\n(llvm:elf-virtual-program-header 01 568 27)\n(llvm:elf-virtual-program-header 00 64 504)\n(llvm:entry-point 1536)\n(llvm:name-reference 69656 abort)\n(llvm:name-reference 69648 __gmon_start__)\n(llvm:name-reference 69640 __cxa_finalize)\n(llvm:name-reference 69632 __libc_start_main)\n(llvm:name-reference 69600 _ITM_registerTMCloneTable)\n(llvm:name-reference 69584 __gmon_start__)\n(llvm:name-reference 69576 __cxa_finalize)\n(llvm:name-reference 69568 _ITM_deregisterTMCloneTable)\n(llvm:section-entry .shstrtab 0 259 6980)\n(llvm:section-entry .strtab 0 580 6400)\n(llvm:section-entry .symtab 0 2184 4216)\n(llvm:section-entry .comment 0 71 4144)\n(llvm:section-entry .bss 69680 16 4144)\n(llvm:section-entry .data 69664 16 4128)\n(llvm:section-entry .got.plt 69608 56 4072)\n(llvm:section-entry .got 69560 48 4024)\n(llvm:section-entry .dynamic 69080 480 3544)\n(llvm:section-entry .fini_array 69072 8 3536)\n(llvm:section-entry .init_array 69064 8 3528)\n(llvm:section-entry .eh_frame 1920 180 1920)\n(llvm:section-entry .eh_frame_hdr 1856 60 1856)\n(llvm:section-entry .rodata 1852 4 1852)\n(llvm:section-entry .fini 1832 20 1832)\n(llvm:section-entry .text 1536 296 1536)\n(llvm:section-entry .plt 1440 96 1440)\n(llvm:section-entry .init 1408 24 1408)\n(llvm:section-entry .rela.plt 1312 96 1312)\n(llvm:section-entry .rela.dyn 1120 192 1120)\n(llvm:section-entry .gnu.version_r 1072 48 1072)\n(llvm:section-entry .gnu.version 1054 18 1054)\n(llvm:section-entry .dynstr 912 141 912)\n(llvm:section-entry .dynsym 696 216 696)\n(llvm:section-entry .gnu.hash 664 28 664)\n(llvm:section-entry .note.ABI-tag 632 32 632)\n(llvm:section-entry .note.gnu.build-id 596 36 596)\n(llvm:section-entry .interp 568 27 568)\n(llvm:section-flags .shstrtab true false false)\n(llvm:section-flags .strtab true false false)\n(llvm:section-flags .symtab true false false)\n(llvm:section-flags .comment true false false)\n(llvm:section-flags .bss true true false)\n(llvm:section-flags .data true true false)\n(llvm:section-flags .got.plt true true false)\n(llvm:section-flags .got true true false)\n(llvm:section-flags .dynamic true true false)\n(llvm:section-flags .fini_array true true false)\n(llvm:section-flags .init_array true true false)\n(llvm:section-flags .eh_frame true false false)\n(llvm:section-flags .eh_frame_hdr true false false)\n(llvm:section-flags .rodata true false false)\n(llvm:section-flags .fini true false true)\n(llvm:section-flags .text true false true)\n(llvm:section-flags .plt true false true)\n(llvm:section-flags .init true false true)\n(llvm:section-flags .rela.plt true false false)\n(llvm:section-flags .rela.dyn true false false)\n(llvm:section-flags .gnu.version_r true false false)\n(llvm:section-flags .gnu.version true false false)\n(llvm:section-flags .dynstr true false false)\n(llvm:section-flags .dynsym true false false)\n(llvm:section-flags .gnu.hash true false false)\n(llvm:section-flags .note.ABI-tag true false false)\n(llvm:section-flags .note.gnu.build-id true false false)\n(llvm:section-flags .interp true false false)\n(llvm:symbol-entry abort 0 0 0 0)\n(llvm:symbol-entry __cxa_finalize 0 0 0 0)\n(llvm:symbol-entry __libc_start_main 0 0 0 0)\n(llvm:symbol-entry _init 1408 0 1408 1408)\n(llvm:symbol-entry main 1812 20 1812 1812)\n(llvm:symbol-entry _start 1536 52 1536 1536)\n(llvm:symbol-entry abort@GLIBC_2.17 0 0 0 0)\n(llvm:symbol-entry _fini 1832 0 1832 1832)\n(llvm:symbol-entry __cxa_finalize@GLIBC_2.17 0 0 0 0)\n(llvm:symbol-entry __libc_start_main@GLIBC_2.34 0 0 0 0)\n(llvm:symbol-entry frame_dummy 1808 0 1808 1808)\n(llvm:symbol-entry __do_global_dtors_aux 1728 0 1728 1728)\n(llvm:symbol-entry register_tm_clones 1664 0 1664 1664)\n(llvm:symbol-entry deregister_tm_clones 1616 0 1616 1616)\n(llvm:symbol-entry call_weak_fn 1588 20 1588 1588)\n(mapped 0 2100 0)\n(mapped 69064 616 3528)\n(named-region 0 2100 02)\n(named-region 69064 632 03)\n(named-region 568 27 .interp)\n(named-region 596 36 .note.gnu.build-id)\n(named-region 632 32 .note.ABI-tag)\n(named-region 664 28 .gnu.hash)\n(named-region 696 216 .dynsym)\n(named-region 912 141 .dynstr)\n(named-region 1054 18 .gnu.version)\n(named-region 1072 48 .gnu.version_r)\n(named-region 1120 192 .rela.dyn)\n(named-region 1312 96 .rela.plt)\n(named-region 1408 24 .init)\n(named-region 1440 96 .plt)\n(named-region 1536 296 .text)\n(named-region 1832 20 .fini)\n(named-region 1852 4 .rodata)\n(named-region 1856 60 .eh_frame_hdr)\n(named-region 1920 180 .eh_frame)\n(named-region 69064 8 .init_array)\n(named-region 69072 8 .fini_array)\n(named-region 69080 480 .dynamic)\n(named-region 69560 48 .got)\n(named-region 69608 56 .got.plt)\n(named-region 69664 16 .data)\n(named-region 69680 16 .bss)\n(named-region 0 71 .comment)\n(named-region 0 2184 .symtab)\n(named-region 0 580 .strtab)\n(named-region 0 259 .shstrtab)\n(named-symbol 1588 call_weak_fn)\n(named-symbol 1616 deregister_tm_clones)\n(named-symbol 1664 register_tm_clones)\n(named-symbol 1728 __do_global_dtors_aux)\n(named-symbol 1808 frame_dummy)\n(named-symbol 0 __libc_start_main@GLIBC_2.34)\n(named-symbol 0 __cxa_finalize@GLIBC_2.17)\n(named-symbol 1832 _fini)\n(named-symbol 0 abort@GLIBC_2.17)\n(named-symbol 1536 _start)\n(named-symbol 1812 main)\n(named-symbol 1408 _init)\n(named-symbol 0 __libc_start_main)\n(named-symbol 0 __cxa_finalize)\n(named-symbol 0 abort)\n(require libc.so.6)\n(section 568 27)\n(section 596 36)\n(section 632 32)\n(section 664 28)\n(section 696 216)\n(section 912 141)\n(section 1054 18)\n(section 1072 48)\n(section 1120 192)\n(section 1312 96)\n(section 1408 24)\n(section 1440 96)\n(section 1536 296)\n(section 1832 20)\n(section 1852 4)\n(section 1856 60)\n(section 1920 180)\n(section 69064 8)\n(section 69072 8)\n(section 69080 480)\n(section 69560 48)\n(section 69608 56)\n(section 69664 16)\n(section 69680 16)\n(section 0 71)\n(section 0 2184)\n(section 0 580)\n(section 0 259)\n(segment 0 2100 true false true)\n(segment 69064 632 true true false)\n(subarch v8)\n(symbol-chunk 1588 20 1588)\n(symbol-chunk 1536 52 1536)\n(symbol-chunk 1812 20 1812)\n(symbol-value 1588 1588)\n(symbol-value 1616 1616)\n(symbol-value 1664 1664)\n(symbol-value 1728 1728)\n(symbol-value 1808 1808)\n(symbol-value 1832 1832)\n(symbol-value 1536 1536)\n(symbol-value 1812 1812)\n(symbol-value 1408 1408)\n(symbol-value 0 0)\n(system \"\")\n(vendor \"\")\n"), -Attr("abi-name","\"aarch64-linux-gnu-elf\"")]), -Sections([Section(".shstrtab", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x00\x06\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x48\x1c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x38\x00\x09\x00\x40\x00\x1d\x00\x1c\x00\x06\x00\x00\x00\x04\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x04\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x34\x08\x00\x00\x00\x00\x00\x00\x34\x08\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x01\x00\x00\x00\x06\x00\x00\x00\xc8\x0d\x00\x00\x00\x00\x00\x00\xc8\x0d\x01\x00\x00\x00\x00\x00\xc8\x0d\x01"), -Section(".strtab", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x00\x06\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x48\x1c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x38\x00\x09\x00\x40\x00\x1d\x00\x1c\x00\x06\x00\x00\x00\x04\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x04\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x34\x08\x00\x00\x00\x00\x00\x00\x34\x08\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x01\x00\x00\x00\x06\x00\x00\x00\xc8\x0d\x00\x00\x00\x00\x00\x00\xc8\x0d\x01\x00\x00\x00\x00\x00\xc8\x0d\x01\x00\x00\x00\x00\x00\x68\x02\x00\x00\x00\x00\x00\x00\x78\x02\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x02\x00\x00\x00\x06\x00\x00\x00\xd8\x0d\x00\x00\x00\x00\x00\x00\xd8\x0d\x01\x00\x00\x00\x00\x00\xd8\x0d\x01\x00\x00\x00\x00\x00\xe0\x01\x00\x00\x00\x00\x00\x00\xe0\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x04\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x50\xe5\x74\x64\x04\x00\x00\x00\x40\x07\x00\x00\x00\x00\x00\x00\x40\x07\x00\x00\x00\x00\x00\x00\x40\x07\x00\x00\x00\x00\x00\x00\x3c\x00\x00\x00\x00\x00\x00\x00\x3c\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x51\xe5\x74\x64\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x52\xe5\x74\x64\x04\x00\x00\x00\xc8\x0d\x00\x00\x00\x00\x00\x00\xc8\x0d\x01\x00\x00\x00\x00\x00\xc8\x0d\x01\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x2f\x6c\x69\x62\x2f\x6c\x64\x2d\x6c\x69\x6e\x75"), -Section(".comment", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x00\x06\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x48\x1c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x38\x00\x09\x00\x40\x00\x1d\x00\x1c\x00\x06\x00\x00\x00\x04\x00\x00"), -Section(".interp", 0x238, "\x2f\x6c\x69\x62\x2f\x6c\x64\x2d\x6c\x69\x6e\x75\x78\x2d\x61\x61\x72\x63\x68\x36\x34\x2e\x73\x6f\x2e\x31\x00"), -Section(".note.gnu.build-id", 0x254, "\x04\x00\x00\x00\x14\x00\x00\x00\x03\x00\x00\x00\x47\x4e\x55\x00\x2c\xab\x28\x45\xd4\x31\xdb\x8b\x85\xb2\x83\x72\xdf\xdc\x87\x98\x5f\xdf\x77\x75"), -Section(".note.ABI-tag", 0x278, "\x04\x00\x00\x00\x10\x00\x00\x00\x01\x00\x00\x00\x47\x4e\x55\x00\x00\x00\x00\x00\x03\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00"), -Section(".gnu.hash", 0x298, "\x01\x00\x00\x00\x01\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".dynsym", 0x2B8, "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x0b\x00\x80\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x17\x00\x20\x10\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x48\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x22\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x22\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x73\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".dynstr", 0x390, "\x00\x5f\x5f\x63\x78\x61\x5f\x66\x69\x6e\x61\x6c\x69\x7a\x65\x00\x5f\x5f\x6c\x69\x62\x63\x5f\x73\x74\x61\x72\x74\x5f\x6d\x61\x69\x6e\x00\x61\x62\x6f\x72\x74\x00\x6c\x69\x62\x63\x2e\x73\x6f\x2e\x36\x00\x47\x4c\x49\x42\x43\x5f\x32\x2e\x31\x37\x00\x47\x4c\x49\x42\x43\x5f\x32\x2e\x33\x34\x00\x5f\x49\x54\x4d\x5f\x64\x65\x72\x65\x67\x69\x73\x74\x65\x72\x54\x4d\x43\x6c\x6f\x6e\x65\x54\x61\x62\x6c\x65\x00\x5f\x5f\x67\x6d\x6f\x6e\x5f\x73\x74\x61\x72\x74\x5f\x5f\x00\x5f\x49\x54\x4d\x5f\x72\x65\x67\x69\x73\x74\x65\x72\x54\x4d\x43\x6c\x6f\x6e\x65\x54\x61\x62\x6c\x65\x00"), -Section(".gnu.version", 0x41E, "\x00\x00\x00\x00\x00\x00\x02\x00\x01\x00\x03\x00\x01\x00\x03\x00\x01\x00"), -Section(".gnu.version_r", 0x430, "\x01\x00\x02\x00\x28\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x97\x91\x96\x06\x00\x00\x03\x00\x32\x00\x00\x00\x10\x00\x00\x00\xb4\x91\x96\x06\x00\x00\x02\x00\x3d\x00\x00\x00\x00\x00\x00\x00"), -Section(".rela.dyn", 0x460, "\xc8\x0d\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x10\x07\x00\x00\x00\x00\x00\x00\xd0\x0d\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\xc0\x06\x00\x00\x00\x00\x00\x00\xd8\x0f\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x14\x07\x00\x00\x00\x00\x00\x00\x28\x10\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x28\x10\x01\x00\x00\x00\x00\x00\xc0\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xc8\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xd0\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe0\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".rela.plt", 0x520, "\x00\x10\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x08\x10\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x10\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x18\x10\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".init", 0x580, "\x1f\x20\x03\xd5\xfd\x7b\xbf\xa9\xfd\x03\x00\x91\x2a\x00\x00\x94\xfd\x7b\xc1\xa8\xc0\x03\x5f\xd6"), -Section(".plt", 0x5A0, "\xf0\x7b\xbf\xa9\x90\x00\x00\x90\x11\xfe\x47\xf9\x10\xe2\x3f\x91\x20\x02\x1f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x90\x00\x00\xb0\x11\x02\x40\xf9\x10\x02\x00\x91\x20\x02\x1f\xd6\x90\x00\x00\xb0\x11\x06\x40\xf9\x10\x22\x00\x91\x20\x02\x1f\xd6\x90\x00\x00\xb0\x11\x0a\x40\xf9\x10\x42\x00\x91\x20\x02\x1f\xd6\x90\x00\x00\xb0\x11\x0e\x40\xf9\x10\x62\x00\x91\x20\x02\x1f\xd6"), -Section(".text", 0x600, "\x1f\x20\x03\xd5\x1d\x00\x80\xd2\x1e\x00\x80\xd2\xe5\x03\x00\xaa\xe1\x03\x40\xf9\xe2\x23\x00\x91\xe6\x03\x00\x91\x80\x00\x00\x90\x00\xec\x47\xf9\x03\x00\x80\xd2\x04\x00\x80\xd2\xe5\xff\xff\x97\xf0\xff\xff\x97\x80\x00\x00\x90\x00\xe8\x47\xf9\x40\x00\x00\xb4\xe8\xff\xff\x17\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x80\x00\x00\xb0\x00\xc0\x00\x91\x81\x00\x00\xb0\x21\xc0\x00\x91\x3f\x00\x00\xeb\xc0\x00\x00\x54\x81\x00\x00\x90\x21\xe0\x47\xf9\x61\x00\x00\xb4\xf0\x03\x01\xaa\x00\x02\x1f\xd6\xc0\x03\x5f\xd6\x80\x00\x00\xb0\x00\xc0\x00\x91\x81\x00\x00\xb0\x21\xc0\x00\x91\x21\x00\x00\xcb\x22\xfc\x7f\xd3\x41\x0c\x81\x8b\x21\xfc\x41\x93\xc1\x00\x00\xb4\x82\x00\x00\x90\x42\xf0\x47\xf9\x62\x00\x00\xb4\xf0\x03\x02\xaa\x00\x02\x1f\xd6\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\xfd\x7b\xbe\xa9\xfd\x03\x00\x91\xf3\x0b\x00\xf9\x93\x00\x00\xb0\x60\xc2\x40\x39\x40\x01\x00\x35\x80\x00\x00\x90\x00\xe4\x47\xf9\x80\x00\x00\xb4\x80\x00\x00\xb0\x00\x14\x40\xf9\xb9\xff\xff\x97\xd8\xff\xff\x97\x20\x00\x80\x52\x60\xc2\x00\x39\xf3\x0b\x40\xf9\xfd\x7b\xc2\xa8\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\xdc\xff\xff\x17\x89\x00\x00\xb0\x28\x00\x80\x52\x28\x35\x00\xb9\xe0\x03\x1f\x2a\xc0\x03\x5f\xd6"), -Section(".fini", 0x728, "\x1f\x20\x03\xd5\xfd\x7b\xbf\xa9\xfd\x03\x00\x91\xfd\x7b\xc1\xa8\xc0\x03\x5f\xd6"), -Section(".rodata", 0x73C, "\x01\x00\x02\x00"), -Section(".eh_frame_hdr", 0x740, "\x01\x1b\x03\x3b\x3c\x00\x00\x00\x06\x00\x00\x00\xc0\xfe\xff\xff\x54\x00\x00\x00\x10\xff\xff\xff\x68\x00\x00\x00\x40\xff\xff\xff\x7c\x00\x00\x00\x80\xff\xff\xff\x90\x00\x00\x00\xd0\xff\xff\xff\xb4\x00\x00\x00\xd4\xff\xff\xff\xdc\x00\x00\x00"), -Section(".eh_frame", 0x780, "\x10\x00\x00\x00\x00\x00\x00\x00\x01\x7a\x52\x00\x04\x78\x1e\x01\x1b\x0c\x1f\x00\x10\x00\x00\x00\x18\x00\x00\x00\x64\xfe\xff\xff\x34\x00\x00\x00\x00\x41\x07\x1e\x10\x00\x00\x00\x2c\x00\x00\x00\xa0\xfe\xff\xff\x30\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x40\x00\x00\x00\xbc\xfe\xff\xff\x3c\x00\x00\x00\x00\x00\x00\x00\x20\x00\x00\x00\x54\x00\x00\x00\xe8\xfe\xff\xff\x48\x00\x00\x00\x00\x41\x0e\x20\x9d\x04\x9e\x03\x42\x93\x02\x4e\xde\xdd\xd3\x0e\x00\x00\x00\x00\x10\x00\x00\x00\x78\x00\x00\x00\x14\xff\xff\xff\x04\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x01\x7a\x52\x00\x01\x7c\x1e\x01\x1b\x0c\x1f\x00\x10\x00\x00\x00\x18\x00\x00\x00\xf0\xfe\xff\xff\x14\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".fini_array", 0x10DD0, "\xc0\x06\x00\x00\x00\x00\x00\x00"), -Section(".dynamic", 0x10DD8, "\x01\x00\x00\x00\x00\x00\x00\x00\x28\x00\x00\x00\x00\x00\x00\x00\x0c\x00\x00\x00\x00\x00\x00\x00\x80\x05\x00\x00\x00\x00\x00\x00\x0d\x00\x00\x00\x00\x00\x00\x00\x28\x07\x00\x00\x00\x00\x00\x00\x19\x00\x00\x00\x00\x00\x00\x00\xc8\x0d\x01\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x1a\x00\x00\x00\x00\x00\x00\x00\xd0\x0d\x01\x00\x00\x00\x00\x00\x1c\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\xf5\xfe\xff\x6f\x00\x00\x00\x00\x98\x02\x00\x00\x00\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x90\x03\x00\x00\x00\x00\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\xb8\x02\x00\x00\x00\x00\x00\x00\x0a\x00\x00\x00\x00\x00\x00\x00\x8d\x00\x00\x00\x00\x00\x00\x00\x0b\x00\x00\x00\x00\x00\x00\x00\x18\x00\x00\x00\x00\x00\x00\x00\x15\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\xe8\x0f\x01\x00\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x60\x00\x00\x00\x00\x00\x00\x00\x14\x00\x00\x00\x00\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x17\x00\x00\x00\x00\x00\x00\x00\x20\x05\x00\x00\x00\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x60\x04\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\xc0\x00\x00\x00\x00\x00\x00\x00\x09\x00\x00\x00\x00\x00\x00\x00\x18\x00\x00\x00\x00\x00\x00\x00\xfb\xff\xff\x6f\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\xfe\xff\xff\x6f\x00\x00\x00\x00\x30\x04\x00\x00\x00\x00\x00\x00\xff\xff\xff\x6f\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\xf0\xff\xff\x6f\x00\x00\x00\x00\x1e\x04\x00\x00\x00\x00\x00\x00\xf9\xff\xff\x6f\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".init_array", 0x10DC8, "\x10\x07\x00\x00\x00\x00\x00\x00"), -Section(".got", 0x10FB8, "\xd8\x0d\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x14\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".got.plt", 0x10FE8, "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xa0\x05\x00\x00\x00\x00\x00\x00\xa0\x05\x00\x00\x00\x00\x00\x00\xa0\x05\x00\x00\x00\x00\x00\x00\xa0\x05\x00\x00\x00\x00\x00\x00"), -Section(".data", 0x11020, "\x00\x00\x00\x00\x00\x00\x00\x00\x28\x10\x01\x00\x00\x00\x00\x00")]), -Memmap([Annotation(Region(0x0,0x833), Attr("segment","02 0 2100")), -Annotation(Region(0x600,0x633), Attr("symbol","\"_start\"")), -Annotation(Region(0x0,0x102), Attr("section","\".shstrtab\"")), -Annotation(Region(0x0,0x243), Attr("section","\".strtab\"")), -Annotation(Region(0x0,0x46), Attr("section","\".comment\"")), -Annotation(Region(0x238,0x252), Attr("section","\".interp\"")), -Annotation(Region(0x254,0x277), Attr("section","\".note.gnu.build-id\"")), -Annotation(Region(0x278,0x297), Attr("section","\".note.ABI-tag\"")), -Annotation(Region(0x298,0x2B3), Attr("section","\".gnu.hash\"")), -Annotation(Region(0x2B8,0x38F), Attr("section","\".dynsym\"")), -Annotation(Region(0x390,0x41C), Attr("section","\".dynstr\"")), -Annotation(Region(0x41E,0x42F), Attr("section","\".gnu.version\"")), -Annotation(Region(0x430,0x45F), Attr("section","\".gnu.version_r\"")), -Annotation(Region(0x460,0x51F), Attr("section","\".rela.dyn\"")), -Annotation(Region(0x520,0x57F), Attr("section","\".rela.plt\"")), -Annotation(Region(0x580,0x597), Attr("section","\".init\"")), -Annotation(Region(0x5A0,0x5FF), Attr("section","\".plt\"")), -Annotation(Region(0x580,0x597), Attr("code-region","()")), -Annotation(Region(0x5A0,0x5FF), Attr("code-region","()")), -Annotation(Region(0x600,0x633), Attr("symbol-info","_start 0x600 52")), -Annotation(Region(0x634,0x647), Attr("symbol","\"call_weak_fn\"")), -Annotation(Region(0x634,0x647), Attr("symbol-info","call_weak_fn 0x634 20")), -Annotation(Region(0x600,0x727), Attr("section","\".text\"")), -Annotation(Region(0x600,0x727), Attr("code-region","()")), -Annotation(Region(0x714,0x727), Attr("symbol","\"main\"")), -Annotation(Region(0x714,0x727), Attr("symbol-info","main 0x714 20")), -Annotation(Region(0x728,0x73B), Attr("section","\".fini\"")), -Annotation(Region(0x728,0x73B), Attr("code-region","()")), -Annotation(Region(0x73C,0x73F), Attr("section","\".rodata\"")), -Annotation(Region(0x740,0x77B), Attr("section","\".eh_frame_hdr\"")), -Annotation(Region(0x780,0x833), Attr("section","\".eh_frame\"")), -Annotation(Region(0x10DC8,0x1102F), Attr("segment","03 0x10DC8 632")), -Annotation(Region(0x10DD0,0x10DD7), Attr("section","\".fini_array\"")), -Annotation(Region(0x10DD8,0x10FB7), Attr("section","\".dynamic\"")), -Annotation(Region(0x10DC8,0x10DCF), Attr("section","\".init_array\"")), -Annotation(Region(0x10FB8,0x10FE7), Attr("section","\".got\"")), -Annotation(Region(0x10FE8,0x1101F), Attr("section","\".got.plt\"")), -Annotation(Region(0x11020,0x1102F), Attr("section","\".data\""))]), -Program(Tid(1_417, "%00000589"), Attrs([]), - Subs([Sub(Tid(1_367, "@__cxa_finalize"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x5D0"), -Attr("stub","()")]), "__cxa_finalize", Args([Arg(Tid(1_418, "%0000058a"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("__cxa_finalize_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(785, "@__cxa_finalize"), - Attrs([Attr("address","0x5D0")]), Phis([]), -Defs([Def(Tid(1_033, "%00000409"), Attrs([Attr("address","0x5D0"), -Attr("insn","adrp x16, #69632")]), Var("R16",Imm(64)), Int(69632,64)), -Def(Tid(1_040, "%00000410"), Attrs([Attr("address","0x5D4"), -Attr("insn","ldr x17, [x16, #0x8]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(1_046, "%00000416"), Attrs([Attr("address","0x5D8"), -Attr("insn","add x16, x16, #0x8")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(8,64)))]), Jmps([Call(Tid(1_051, "%0000041b"), - Attrs([Attr("address","0x5DC"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), -Sub(Tid(1_368, "@__do_global_dtors_aux"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x6C0")]), - "__do_global_dtors_aux", Args([Arg(Tid(1_419, "%0000058b"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("__do_global_dtors_aux_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(610, "@__do_global_dtors_aux"), - Attrs([Attr("address","0x6C0")]), Phis([]), Defs([Def(Tid(614, "%00000266"), - Attrs([Attr("address","0x6C0"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("#3",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(18446744073709551584,64))), -Def(Tid(620, "%0000026c"), Attrs([Attr("address","0x6C0"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("#3",Imm(64)),Var("R29",Imm(64)),LittleEndian(),64)), -Def(Tid(626, "%00000272"), Attrs([Attr("address","0x6C0"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("#3",Imm(64)),Int(8,64)),Var("R30",Imm(64)),LittleEndian(),64)), -Def(Tid(630, "%00000276"), Attrs([Attr("address","0x6C0"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("R31",Imm(64)), -Var("#3",Imm(64))), Def(Tid(636, "%0000027c"), - Attrs([Attr("address","0x6C4"), Attr("insn","mov x29, sp")]), - Var("R29",Imm(64)), Var("R31",Imm(64))), Def(Tid(644, "%00000284"), - Attrs([Attr("address","0x6C8"), Attr("insn","str x19, [sp, #0x10]")]), - Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(16,64)),Var("R19",Imm(64)),LittleEndian(),64)), -Def(Tid(649, "%00000289"), Attrs([Attr("address","0x6CC"), -Attr("insn","adrp x19, #69632")]), Var("R19",Imm(64)), Int(69632,64)), -Def(Tid(656, "%00000290"), Attrs([Attr("address","0x6D0"), -Attr("insn","ldrb w0, [x19, #0x30]")]), Var("R0",Imm(64)), -UNSIGNED(64,Load(Var("mem",Mem(64,8)),PLUS(Var("R19",Imm(64)),Int(48,64)),LittleEndian(),8)))]), -Jmps([Goto(Tid(663, "%00000297"), Attrs([Attr("address","0x6D4"), -Attr("insn","cbnz w0, #0x28")]), - NEQ(Extract(31,0,Var("R0",Imm(64))),Int(0,32)), -Direct(Tid(661, "%00000295"))), Goto(Tid(1_407, "%0000057f"), Attrs([]), - Int(1,1), Direct(Tid(730, "%000002da")))])), Blk(Tid(730, "%000002da"), - Attrs([Attr("address","0x6D8")]), Phis([]), Defs([Def(Tid(733, "%000002dd"), - Attrs([Attr("address","0x6D8"), Attr("insn","adrp x0, #65536")]), - Var("R0",Imm(64)), Int(65536,64)), Def(Tid(740, "%000002e4"), - Attrs([Attr("address","0x6DC"), Attr("insn","ldr x0, [x0, #0xfc8]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(4040,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(746, "%000002ea"), Attrs([Attr("address","0x6E0"), -Attr("insn","cbz x0, #0x10")]), EQ(Var("R0",Imm(64)),Int(0,64)), -Direct(Tid(744, "%000002e8"))), Goto(Tid(1_408, "%00000580"), Attrs([]), - Int(1,1), Direct(Tid(769, "%00000301")))])), Blk(Tid(769, "%00000301"), - Attrs([Attr("address","0x6E4")]), Phis([]), Defs([Def(Tid(772, "%00000304"), - Attrs([Attr("address","0x6E4"), Attr("insn","adrp x0, #69632")]), - Var("R0",Imm(64)), Int(69632,64)), Def(Tid(779, "%0000030b"), - Attrs([Attr("address","0x6E8"), Attr("insn","ldr x0, [x0, #0x28]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(40,64)),LittleEndian(),64)), -Def(Tid(784, "%00000310"), Attrs([Attr("address","0x6EC"), -Attr("insn","bl #-0x11c")]), Var("R30",Imm(64)), Int(1776,64))]), -Jmps([Call(Tid(787, "%00000313"), Attrs([Attr("address","0x6EC"), -Attr("insn","bl #-0x11c")]), Int(1,1), -(Direct(Tid(1_367, "@__cxa_finalize")),Direct(Tid(744, "%000002e8"))))])), -Blk(Tid(744, "%000002e8"), Attrs([Attr("address","0x6F0")]), Phis([]), -Defs([Def(Tid(752, "%000002f0"), Attrs([Attr("address","0x6F0"), -Attr("insn","bl #-0xa0")]), Var("R30",Imm(64)), Int(1780,64))]), -Jmps([Call(Tid(754, "%000002f2"), Attrs([Attr("address","0x6F0"), -Attr("insn","bl #-0xa0")]), Int(1,1), -(Direct(Tid(1_381, "@deregister_tm_clones")),Direct(Tid(756, "%000002f4"))))])), -Blk(Tid(756, "%000002f4"), Attrs([Attr("address","0x6F4")]), Phis([]), -Defs([Def(Tid(759, "%000002f7"), Attrs([Attr("address","0x6F4"), -Attr("insn","mov w0, #0x1")]), Var("R0",Imm(64)), Int(1,64)), -Def(Tid(767, "%000002ff"), Attrs([Attr("address","0x6F8"), -Attr("insn","strb w0, [x19, #0x30]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R19",Imm(64)),Int(48,64)),Extract(7,0,Var("R0",Imm(64))),LittleEndian(),8))]), -Jmps([Goto(Tid(1_409, "%00000581"), Attrs([]), Int(1,1), -Direct(Tid(661, "%00000295")))])), Blk(Tid(661, "%00000295"), - Attrs([Attr("address","0x6FC")]), Phis([]), Defs([Def(Tid(671, "%0000029f"), - Attrs([Attr("address","0x6FC"), Attr("insn","ldr x19, [sp, #0x10]")]), - Var("R19",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(16,64)),LittleEndian(),64)), -Def(Tid(678, "%000002a6"), Attrs([Attr("address","0x700"), -Attr("insn","ldp x29, x30, [sp], #0x20")]), Var("R29",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(683, "%000002ab"), Attrs([Attr("address","0x700"), -Attr("insn","ldp x29, x30, [sp], #0x20")]), Var("R30",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(687, "%000002af"), Attrs([Attr("address","0x700"), -Attr("insn","ldp x29, x30, [sp], #0x20")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(32,64)))]), Jmps([Call(Tid(692, "%000002b4"), - Attrs([Attr("address","0x704"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), Sub(Tid(1_372, "@__libc_start_main"), - Attrs([Attr("c.proto","signed (*)(signed (*)(signed , char** , char** );* main, signed , char** , \nvoid* auxv)"), -Attr("address","0x5C0"), Attr("stub","()")]), "__libc_start_main", - Args([Arg(Tid(1_420, "%0000058c"), - Attrs([Attr("c.layout","**[ : 64]"), -Attr("c.data","Top:u64 ptr ptr"), -Attr("c.type","signed (*)(signed , char** , char** );*")]), - Var("__libc_start_main_main",Imm(64)), Var("R0",Imm(64)), In()), -Arg(Tid(1_421, "%0000058d"), Attrs([Attr("c.layout","[signed : 32]"), -Attr("c.data","Top:u32"), Attr("c.type","signed")]), - Var("__libc_start_main_arg2",Imm(32)), LOW(32,Var("R1",Imm(64))), In()), -Arg(Tid(1_422, "%0000058e"), Attrs([Attr("c.layout","**[char : 8]"), -Attr("c.data","Top:u8 ptr ptr"), Attr("c.type","char**")]), - Var("__libc_start_main_arg3",Imm(64)), Var("R2",Imm(64)), Both()), -Arg(Tid(1_423, "%0000058f"), Attrs([Attr("c.layout","*[ : 8]"), -Attr("c.data","{} ptr"), Attr("c.type","void*")]), - Var("__libc_start_main_auxv",Imm(64)), Var("R3",Imm(64)), Both()), -Arg(Tid(1_424, "%00000590"), Attrs([Attr("c.layout","[signed : 32]"), -Attr("c.data","Top:u32"), Attr("c.type","signed")]), - Var("__libc_start_main_result",Imm(32)), LOW(32,Var("R0",Imm(64))), -Out())]), Blks([Blk(Tid(443, "@__libc_start_main"), - Attrs([Attr("address","0x5C0")]), Phis([]), -Defs([Def(Tid(1_011, "%000003f3"), Attrs([Attr("address","0x5C0"), -Attr("insn","adrp x16, #69632")]), Var("R16",Imm(64)), Int(69632,64)), -Def(Tid(1_018, "%000003fa"), Attrs([Attr("address","0x5C4"), -Attr("insn","ldr x17, [x16]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R16",Imm(64)),LittleEndian(),64)), -Def(Tid(1_024, "%00000400"), Attrs([Attr("address","0x5C8"), -Attr("insn","add x16, x16, #0x0")]), Var("R16",Imm(64)), -Var("R16",Imm(64)))]), Jmps([Call(Tid(1_029, "%00000405"), - Attrs([Attr("address","0x5CC"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), Sub(Tid(1_373, "@_fini"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x728")]), - "_fini", Args([Arg(Tid(1_425, "%00000591"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("_fini_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(31, "@_fini"), - Attrs([Attr("address","0x728")]), Phis([]), Defs([Def(Tid(37, "%00000025"), - Attrs([Attr("address","0x72C"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("#0",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(18446744073709551600,64))), -Def(Tid(43, "%0000002b"), Attrs([Attr("address","0x72C"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("#0",Imm(64)),Var("R29",Imm(64)),LittleEndian(),64)), -Def(Tid(49, "%00000031"), Attrs([Attr("address","0x72C"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("#0",Imm(64)),Int(8,64)),Var("R30",Imm(64)),LittleEndian(),64)), -Def(Tid(53, "%00000035"), Attrs([Attr("address","0x72C"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("R31",Imm(64)), -Var("#0",Imm(64))), Def(Tid(59, "%0000003b"), Attrs([Attr("address","0x730"), -Attr("insn","mov x29, sp")]), Var("R29",Imm(64)), Var("R31",Imm(64))), -Def(Tid(66, "%00000042"), Attrs([Attr("address","0x734"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R29",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(71, "%00000047"), Attrs([Attr("address","0x734"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R30",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(75, "%0000004b"), Attrs([Attr("address","0x734"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(16,64)))]), Jmps([Call(Tid(80, "%00000050"), - Attrs([Attr("address","0x738"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), Sub(Tid(1_374, "@_init"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x580")]), - "_init", Args([Arg(Tid(1_426, "%00000592"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("_init_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(1_204, "@_init"), - Attrs([Attr("address","0x580")]), Phis([]), -Defs([Def(Tid(1_210, "%000004ba"), Attrs([Attr("address","0x584"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("#5",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(18446744073709551600,64))), -Def(Tid(1_216, "%000004c0"), Attrs([Attr("address","0x584"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("#5",Imm(64)),Var("R29",Imm(64)),LittleEndian(),64)), -Def(Tid(1_222, "%000004c6"), Attrs([Attr("address","0x584"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("#5",Imm(64)),Int(8,64)),Var("R30",Imm(64)),LittleEndian(),64)), -Def(Tid(1_226, "%000004ca"), Attrs([Attr("address","0x584"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("R31",Imm(64)), -Var("#5",Imm(64))), Def(Tid(1_232, "%000004d0"), - Attrs([Attr("address","0x588"), Attr("insn","mov x29, sp")]), - Var("R29",Imm(64)), Var("R31",Imm(64))), Def(Tid(1_237, "%000004d5"), - Attrs([Attr("address","0x58C"), Attr("insn","bl #0xa8")]), - Var("R30",Imm(64)), Int(1424,64))]), Jmps([Call(Tid(1_239, "%000004d7"), - Attrs([Attr("address","0x58C"), Attr("insn","bl #0xa8")]), Int(1,1), -(Direct(Tid(1_379, "@call_weak_fn")),Direct(Tid(1_241, "%000004d9"))))])), -Blk(Tid(1_241, "%000004d9"), Attrs([Attr("address","0x590")]), Phis([]), -Defs([Def(Tid(1_246, "%000004de"), Attrs([Attr("address","0x590"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R29",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(1_251, "%000004e3"), Attrs([Attr("address","0x590"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R30",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(1_255, "%000004e7"), Attrs([Attr("address","0x590"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(16,64)))]), Jmps([Call(Tid(1_260, "%000004ec"), - Attrs([Attr("address","0x594"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), Sub(Tid(1_375, "@_start"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x600"), -Attr("stub","()"), Attr("entry-point","()")]), "_start", - Args([Arg(Tid(1_427, "%00000593"), Attrs([Attr("c.layout","[signed : 32]"), -Attr("c.data","Top:u32"), Attr("c.type","signed")]), - Var("_start_result",Imm(32)), LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(380, "@_start"), Attrs([Attr("address","0x600")]), Phis([]), -Defs([Def(Tid(385, "%00000181"), Attrs([Attr("address","0x604"), -Attr("insn","mov x29, #0x0")]), Var("R29",Imm(64)), Int(0,64)), -Def(Tid(390, "%00000186"), Attrs([Attr("address","0x608"), -Attr("insn","mov x30, #0x0")]), Var("R30",Imm(64)), Int(0,64)), -Def(Tid(396, "%0000018c"), Attrs([Attr("address","0x60C"), -Attr("insn","mov x5, x0")]), Var("R5",Imm(64)), Var("R0",Imm(64))), -Def(Tid(403, "%00000193"), Attrs([Attr("address","0x610"), -Attr("insn","ldr x1, [sp]")]), Var("R1",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(409, "%00000199"), Attrs([Attr("address","0x614"), -Attr("insn","add x2, sp, #0x8")]), Var("R2",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(8,64))), Def(Tid(415, "%0000019f"), - Attrs([Attr("address","0x618"), Attr("insn","mov x6, sp")]), - Var("R6",Imm(64)), Var("R31",Imm(64))), Def(Tid(420, "%000001a4"), - Attrs([Attr("address","0x61C"), Attr("insn","adrp x0, #65536")]), - Var("R0",Imm(64)), Int(65536,64)), Def(Tid(427, "%000001ab"), - Attrs([Attr("address","0x620"), Attr("insn","ldr x0, [x0, #0xfd8]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(4056,64)),LittleEndian(),64)), -Def(Tid(432, "%000001b0"), Attrs([Attr("address","0x624"), -Attr("insn","mov x3, #0x0")]), Var("R3",Imm(64)), Int(0,64)), -Def(Tid(437, "%000001b5"), Attrs([Attr("address","0x628"), -Attr("insn","mov x4, #0x0")]), Var("R4",Imm(64)), Int(0,64)), -Def(Tid(442, "%000001ba"), Attrs([Attr("address","0x62C"), -Attr("insn","bl #-0x6c")]), Var("R30",Imm(64)), Int(1584,64))]), -Jmps([Call(Tid(445, "%000001bd"), Attrs([Attr("address","0x62C"), -Attr("insn","bl #-0x6c")]), Int(1,1), -(Direct(Tid(1_372, "@__libc_start_main")),Direct(Tid(447, "%000001bf"))))])), -Blk(Tid(447, "%000001bf"), Attrs([Attr("address","0x630")]), Phis([]), -Defs([Def(Tid(450, "%000001c2"), Attrs([Attr("address","0x630"), -Attr("insn","bl #-0x40")]), Var("R30",Imm(64)), Int(1588,64))]), -Jmps([Call(Tid(453, "%000001c5"), Attrs([Attr("address","0x630"), -Attr("insn","bl #-0x40")]), Int(1,1), -(Direct(Tid(1_378, "@abort")),Direct(Tid(1_410, "%00000582"))))])), -Blk(Tid(1_410, "%00000582"), Attrs([]), Phis([]), Defs([]), -Jmps([Call(Tid(1_411, "%00000583"), Attrs([]), Int(1,1), -(Direct(Tid(1_379, "@call_weak_fn")),))]))])), Sub(Tid(1_378, "@abort"), - Attrs([Attr("noreturn","()"), Attr("c.proto","void (*)(void)"), -Attr("address","0x5F0"), Attr("stub","()")]), "abort", Args([]), -Blks([Blk(Tid(451, "@abort"), Attrs([Attr("address","0x5F0")]), Phis([]), -Defs([Def(Tid(1_077, "%00000435"), Attrs([Attr("address","0x5F0"), -Attr("insn","adrp x16, #69632")]), Var("R16",Imm(64)), Int(69632,64)), -Def(Tid(1_084, "%0000043c"), Attrs([Attr("address","0x5F4"), -Attr("insn","ldr x17, [x16, #0x18]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(24,64)),LittleEndian(),64)), -Def(Tid(1_090, "%00000442"), Attrs([Attr("address","0x5F8"), -Attr("insn","add x16, x16, #0x18")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(24,64)))]), Jmps([Call(Tid(1_095, "%00000447"), - Attrs([Attr("address","0x5FC"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), Sub(Tid(1_379, "@call_weak_fn"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x634")]), - "call_weak_fn", Args([Arg(Tid(1_428, "%00000594"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("call_weak_fn_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(455, "@call_weak_fn"), - Attrs([Attr("address","0x634")]), Phis([]), Defs([Def(Tid(458, "%000001ca"), - Attrs([Attr("address","0x634"), Attr("insn","adrp x0, #65536")]), - Var("R0",Imm(64)), Int(65536,64)), Def(Tid(465, "%000001d1"), - Attrs([Attr("address","0x638"), Attr("insn","ldr x0, [x0, #0xfd0]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(4048,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(471, "%000001d7"), Attrs([Attr("address","0x63C"), -Attr("insn","cbz x0, #0x8")]), EQ(Var("R0",Imm(64)),Int(0,64)), -Direct(Tid(469, "%000001d5"))), Goto(Tid(1_412, "%00000584"), Attrs([]), - Int(1,1), Direct(Tid(849, "%00000351")))])), Blk(Tid(469, "%000001d5"), - Attrs([Attr("address","0x644")]), Phis([]), Defs([]), -Jmps([Call(Tid(477, "%000001dd"), Attrs([Attr("address","0x644"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))])), -Blk(Tid(849, "%00000351"), Attrs([Attr("address","0x640")]), Phis([]), -Defs([]), Jmps([Goto(Tid(852, "%00000354"), Attrs([Attr("address","0x640"), -Attr("insn","b #-0x60")]), Int(1,1), Direct(Tid(850, "@__gmon_start__")))])), -Blk(Tid(850, "@__gmon_start__"), Attrs([Attr("address","0x5E0")]), Phis([]), -Defs([Def(Tid(1_055, "%0000041f"), Attrs([Attr("address","0x5E0"), -Attr("insn","adrp x16, #69632")]), Var("R16",Imm(64)), Int(69632,64)), -Def(Tid(1_062, "%00000426"), Attrs([Attr("address","0x5E4"), -Attr("insn","ldr x17, [x16, #0x10]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(16,64)),LittleEndian(),64)), -Def(Tid(1_068, "%0000042c"), Attrs([Attr("address","0x5E8"), -Attr("insn","add x16, x16, #0x10")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(16,64)))]), Jmps([Call(Tid(1_073, "%00000431"), - Attrs([Attr("address","0x5EC"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), -Sub(Tid(1_381, "@deregister_tm_clones"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x650")]), - "deregister_tm_clones", Args([Arg(Tid(1_429, "%00000595"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("deregister_tm_clones_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(483, "@deregister_tm_clones"), - Attrs([Attr("address","0x650")]), Phis([]), Defs([Def(Tid(486, "%000001e6"), - Attrs([Attr("address","0x650"), Attr("insn","adrp x0, #69632")]), - Var("R0",Imm(64)), Int(69632,64)), Def(Tid(492, "%000001ec"), - Attrs([Attr("address","0x654"), Attr("insn","add x0, x0, #0x30")]), - Var("R0",Imm(64)), PLUS(Var("R0",Imm(64)),Int(48,64))), -Def(Tid(497, "%000001f1"), Attrs([Attr("address","0x658"), -Attr("insn","adrp x1, #69632")]), Var("R1",Imm(64)), Int(69632,64)), -Def(Tid(503, "%000001f7"), Attrs([Attr("address","0x65C"), -Attr("insn","add x1, x1, #0x30")]), Var("R1",Imm(64)), -PLUS(Var("R1",Imm(64)),Int(48,64))), Def(Tid(509, "%000001fd"), - Attrs([Attr("address","0x660"), Attr("insn","cmp x1, x0")]), - Var("#1",Imm(64)), NOT(Var("R0",Imm(64)))), Def(Tid(514, "%00000202"), - Attrs([Attr("address","0x660"), Attr("insn","cmp x1, x0")]), - Var("#2",Imm(64)), PLUS(Var("R1",Imm(64)),NOT(Var("R0",Imm(64))))), -Def(Tid(520, "%00000208"), Attrs([Attr("address","0x660"), -Attr("insn","cmp x1, x0")]), Var("VF",Imm(1)), -NEQ(SIGNED(65,PLUS(Var("#2",Imm(64)),Int(1,64))),PLUS(PLUS(SIGNED(65,Var("R1",Imm(64))),SIGNED(65,Var("#1",Imm(64)))),Int(1,65)))), -Def(Tid(526, "%0000020e"), Attrs([Attr("address","0x660"), -Attr("insn","cmp x1, x0")]), Var("CF",Imm(1)), -NEQ(UNSIGNED(65,PLUS(Var("#2",Imm(64)),Int(1,64))),PLUS(PLUS(UNSIGNED(65,Var("R1",Imm(64))),UNSIGNED(65,Var("#1",Imm(64)))),Int(1,65)))), -Def(Tid(530, "%00000212"), Attrs([Attr("address","0x660"), -Attr("insn","cmp x1, x0")]), Var("ZF",Imm(1)), -EQ(PLUS(Var("#2",Imm(64)),Int(1,64)),Int(0,64))), Def(Tid(534, "%00000216"), - Attrs([Attr("address","0x660"), Attr("insn","cmp x1, x0")]), - Var("NF",Imm(1)), Extract(63,63,PLUS(Var("#2",Imm(64)),Int(1,64))))]), -Jmps([Goto(Tid(540, "%0000021c"), Attrs([Attr("address","0x664"), -Attr("insn","b.eq #0x18")]), EQ(Var("ZF",Imm(1)),Int(1,1)), -Direct(Tid(538, "%0000021a"))), Goto(Tid(1_413, "%00000585"), Attrs([]), - Int(1,1), Direct(Tid(819, "%00000333")))])), Blk(Tid(819, "%00000333"), - Attrs([Attr("address","0x668")]), Phis([]), Defs([Def(Tid(822, "%00000336"), - Attrs([Attr("address","0x668"), Attr("insn","adrp x1, #65536")]), - Var("R1",Imm(64)), Int(65536,64)), Def(Tid(829, "%0000033d"), - Attrs([Attr("address","0x66C"), Attr("insn","ldr x1, [x1, #0xfc0]")]), - Var("R1",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R1",Imm(64)),Int(4032,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(834, "%00000342"), Attrs([Attr("address","0x670"), -Attr("insn","cbz x1, #0xc")]), EQ(Var("R1",Imm(64)),Int(0,64)), -Direct(Tid(538, "%0000021a"))), Goto(Tid(1_414, "%00000586"), Attrs([]), - Int(1,1), Direct(Tid(838, "%00000346")))])), Blk(Tid(538, "%0000021a"), - Attrs([Attr("address","0x67C")]), Phis([]), Defs([]), -Jmps([Call(Tid(546, "%00000222"), Attrs([Attr("address","0x67C"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))])), -Blk(Tid(838, "%00000346"), Attrs([Attr("address","0x674")]), Phis([]), -Defs([Def(Tid(842, "%0000034a"), Attrs([Attr("address","0x674"), -Attr("insn","mov x16, x1")]), Var("R16",Imm(64)), Var("R1",Imm(64)))]), -Jmps([Call(Tid(847, "%0000034f"), Attrs([Attr("address","0x678"), -Attr("insn","br x16")]), Int(1,1), (Indirect(Var("R16",Imm(64))),))]))])), -Sub(Tid(1_384, "@frame_dummy"), Attrs([Attr("c.proto","signed (*)(void)"), -Attr("address","0x710")]), "frame_dummy", Args([Arg(Tid(1_430, "%00000596"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("frame_dummy_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(698, "@frame_dummy"), - Attrs([Attr("address","0x710")]), Phis([]), Defs([]), -Jmps([Call(Tid(700, "%000002bc"), Attrs([Attr("address","0x710"), -Attr("insn","b #-0x90")]), Int(1,1), -(Direct(Tid(1_386, "@register_tm_clones")),))]))])), Sub(Tid(1_385, "@main"), - Attrs([Attr("c.proto","signed (*)(signed argc, const char** argv)"), -Attr("address","0x714")]), "main", Args([Arg(Tid(1_431, "%00000597"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("main_argc",Imm(32)), -LOW(32,Var("R0",Imm(64))), In()), Arg(Tid(1_432, "%00000598"), - Attrs([Attr("c.layout","**[char : 8]"), Attr("c.data","Top:u8 ptr ptr"), -Attr("c.type"," const char**")]), Var("main_argv",Imm(64)), -Var("R1",Imm(64)), Both()), Arg(Tid(1_433, "%00000599"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("main_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(702, "@main"), - Attrs([Attr("address","0x714")]), Phis([]), Defs([Def(Tid(705, "%000002c1"), - Attrs([Attr("address","0x714"), Attr("insn","adrp x9, #69632")]), - Var("R9",Imm(64)), Int(69632,64)), Def(Tid(710, "%000002c6"), - Attrs([Attr("address","0x718"), Attr("insn","mov w8, #0x1")]), - Var("R8",Imm(64)), Int(1,64)), Def(Tid(718, "%000002ce"), - Attrs([Attr("address","0x71C"), Attr("insn","str w8, [x9, #0x34]")]), - Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R9",Imm(64)),Int(52,64)),Extract(31,0,Var("R8",Imm(64))),LittleEndian(),32)), -Def(Tid(723, "%000002d3"), Attrs([Attr("address","0x720"), -Attr("insn","mov w0, wzr")]), Var("R0",Imm(64)), Int(0,64))]), -Jmps([Call(Tid(728, "%000002d8"), Attrs([Attr("address","0x724"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))]))])), -Sub(Tid(1_386, "@register_tm_clones"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x680")]), - "register_tm_clones", Args([Arg(Tid(1_434, "%0000059a"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("register_tm_clones_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(548, "@register_tm_clones"), Attrs([Attr("address","0x680")]), - Phis([]), Defs([Def(Tid(551, "%00000227"), Attrs([Attr("address","0x680"), -Attr("insn","adrp x0, #69632")]), Var("R0",Imm(64)), Int(69632,64)), -Def(Tid(557, "%0000022d"), Attrs([Attr("address","0x684"), -Attr("insn","add x0, x0, #0x30")]), Var("R0",Imm(64)), -PLUS(Var("R0",Imm(64)),Int(48,64))), Def(Tid(562, "%00000232"), - Attrs([Attr("address","0x688"), Attr("insn","adrp x1, #69632")]), - Var("R1",Imm(64)), Int(69632,64)), Def(Tid(568, "%00000238"), - Attrs([Attr("address","0x68C"), Attr("insn","add x1, x1, #0x30")]), - Var("R1",Imm(64)), PLUS(Var("R1",Imm(64)),Int(48,64))), -Def(Tid(575, "%0000023f"), Attrs([Attr("address","0x690"), -Attr("insn","sub x1, x1, x0")]), Var("R1",Imm(64)), -PLUS(PLUS(Var("R1",Imm(64)),NOT(Var("R0",Imm(64)))),Int(1,64))), -Def(Tid(581, "%00000245"), Attrs([Attr("address","0x694"), -Attr("insn","lsr x2, x1, #63")]), Var("R2",Imm(64)), -Concat(Int(0,63),Extract(63,63,Var("R1",Imm(64))))), -Def(Tid(588, "%0000024c"), Attrs([Attr("address","0x698"), -Attr("insn","add x1, x2, x1, asr #3")]), Var("R1",Imm(64)), -PLUS(Var("R2",Imm(64)),ARSHIFT(Var("R1",Imm(64)),Int(3,3)))), -Def(Tid(594, "%00000252"), Attrs([Attr("address","0x69C"), -Attr("insn","asr x1, x1, #1")]), Var("R1",Imm(64)), -SIGNED(64,Extract(63,1,Var("R1",Imm(64)))))]), -Jmps([Goto(Tid(600, "%00000258"), Attrs([Attr("address","0x6A0"), -Attr("insn","cbz x1, #0x18")]), EQ(Var("R1",Imm(64)),Int(0,64)), -Direct(Tid(598, "%00000256"))), Goto(Tid(1_415, "%00000587"), Attrs([]), - Int(1,1), Direct(Tid(789, "%00000315")))])), Blk(Tid(789, "%00000315"), - Attrs([Attr("address","0x6A4")]), Phis([]), Defs([Def(Tid(792, "%00000318"), - Attrs([Attr("address","0x6A4"), Attr("insn","adrp x2, #65536")]), - Var("R2",Imm(64)), Int(65536,64)), Def(Tid(799, "%0000031f"), - Attrs([Attr("address","0x6A8"), Attr("insn","ldr x2, [x2, #0xfe0]")]), - Var("R2",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R2",Imm(64)),Int(4064,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(804, "%00000324"), Attrs([Attr("address","0x6AC"), -Attr("insn","cbz x2, #0xc")]), EQ(Var("R2",Imm(64)),Int(0,64)), -Direct(Tid(598, "%00000256"))), Goto(Tid(1_416, "%00000588"), Attrs([]), - Int(1,1), Direct(Tid(808, "%00000328")))])), Blk(Tid(598, "%00000256"), - Attrs([Attr("address","0x6B8")]), Phis([]), Defs([]), -Jmps([Call(Tid(606, "%0000025e"), Attrs([Attr("address","0x6B8"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))])), -Blk(Tid(808, "%00000328"), Attrs([Attr("address","0x6B0")]), Phis([]), -Defs([Def(Tid(812, "%0000032c"), Attrs([Attr("address","0x6B0"), -Attr("insn","mov x16, x2")]), Var("R16",Imm(64)), Var("R2",Imm(64)))]), -Jmps([Call(Tid(817, "%00000331"), Attrs([Attr("address","0x6B4"), -Attr("insn","br x16")]), Int(1,1), -(Indirect(Var("R16",Imm(64))),))]))]))]))) \ No newline at end of file diff --git a/src/test/correct/no_interference_update_y/clang/no_interference_update_y.bir b/src/test/correct/no_interference_update_y/clang/no_interference_update_y.bir deleted file mode 100644 index 56a1128db..000000000 --- a/src/test/correct/no_interference_update_y/clang/no_interference_update_y.bir +++ /dev/null @@ -1,227 +0,0 @@ -00000589: program -00000557: sub __cxa_finalize(__cxa_finalize_result) -0000058a: __cxa_finalize_result :: out u32 = low:32[R0] - -00000311: -00000409: R16 := 0x11000 -00000410: R17 := mem[R16 + 8, el]:u64 -00000416: R16 := R16 + 8 -0000041b: call R17 with noreturn - -00000558: sub __do_global_dtors_aux(__do_global_dtors_aux_result) -0000058b: __do_global_dtors_aux_result :: out u32 = low:32[R0] - -00000262: -00000266: #3 := R31 - 0x20 -0000026c: mem := mem with [#3, el]:u64 <- R29 -00000272: mem := mem with [#3 + 8, el]:u64 <- R30 -00000276: R31 := #3 -0000027c: R29 := R31 -00000284: mem := mem with [R31 + 0x10, el]:u64 <- R19 -00000289: R19 := 0x11000 -00000290: R0 := pad:64[mem[R19 + 0x30]] -00000297: when 31:0[R0] <> 0 goto %00000295 -0000057f: goto %000002da - -000002da: -000002dd: R0 := 0x10000 -000002e4: R0 := mem[R0 + 0xFC8, el]:u64 -000002ea: when R0 = 0 goto %000002e8 -00000580: goto %00000301 - -00000301: -00000304: R0 := 0x11000 -0000030b: R0 := mem[R0 + 0x28, el]:u64 -00000310: R30 := 0x6F0 -00000313: call @__cxa_finalize with return %000002e8 - -000002e8: -000002f0: R30 := 0x6F4 -000002f2: call @deregister_tm_clones with return %000002f4 - -000002f4: -000002f7: R0 := 1 -000002ff: mem := mem with [R19 + 0x30] <- 7:0[R0] -00000581: goto %00000295 - -00000295: -0000029f: R19 := mem[R31 + 0x10, el]:u64 -000002a6: R29 := mem[R31, el]:u64 -000002ab: R30 := mem[R31 + 8, el]:u64 -000002af: R31 := R31 + 0x20 -000002b4: call R30 with noreturn - -0000055c: sub __libc_start_main(__libc_start_main_main, __libc_start_main_arg2, __libc_start_main_arg3, __libc_start_main_auxv, __libc_start_main_result) -0000058c: __libc_start_main_main :: in u64 = R0 -0000058d: __libc_start_main_arg2 :: in u32 = low:32[R1] -0000058e: __libc_start_main_arg3 :: in out u64 = R2 -0000058f: __libc_start_main_auxv :: in out u64 = R3 -00000590: __libc_start_main_result :: out u32 = low:32[R0] - -000001bb: -000003f3: R16 := 0x11000 -000003fa: R17 := mem[R16, el]:u64 -00000400: R16 := R16 -00000405: call R17 with noreturn - -0000055d: sub _fini(_fini_result) -00000591: _fini_result :: out u32 = low:32[R0] - -0000001f: -00000025: #0 := R31 - 0x10 -0000002b: mem := mem with [#0, el]:u64 <- R29 -00000031: mem := mem with [#0 + 8, el]:u64 <- R30 -00000035: R31 := #0 -0000003b: R29 := R31 -00000042: R29 := mem[R31, el]:u64 -00000047: R30 := mem[R31 + 8, el]:u64 -0000004b: R31 := R31 + 0x10 -00000050: call R30 with noreturn - -0000055e: sub _init(_init_result) -00000592: _init_result :: out u32 = low:32[R0] - -000004b4: -000004ba: #5 := R31 - 0x10 -000004c0: mem := mem with [#5, el]:u64 <- R29 -000004c6: mem := mem with [#5 + 8, el]:u64 <- R30 -000004ca: R31 := #5 -000004d0: R29 := R31 -000004d5: R30 := 0x590 -000004d7: call @call_weak_fn with return %000004d9 - -000004d9: -000004de: R29 := mem[R31, el]:u64 -000004e3: R30 := mem[R31 + 8, el]:u64 -000004e7: R31 := R31 + 0x10 -000004ec: call R30 with noreturn - -0000055f: sub _start(_start_result) -00000593: _start_result :: out u32 = low:32[R0] - -0000017c: -00000181: R29 := 0 -00000186: R30 := 0 -0000018c: R5 := R0 -00000193: R1 := mem[R31, el]:u64 -00000199: R2 := R31 + 8 -0000019f: R6 := R31 -000001a4: R0 := 0x10000 -000001ab: R0 := mem[R0 + 0xFD8, el]:u64 -000001b0: R3 := 0 -000001b5: R4 := 0 -000001ba: R30 := 0x630 -000001bd: call @__libc_start_main with return %000001bf - -000001bf: -000001c2: R30 := 0x634 -000001c5: call @abort with return %00000582 - -00000582: -00000583: call @call_weak_fn with noreturn - -00000562: sub abort() - - -000001c3: -00000435: R16 := 0x11000 -0000043c: R17 := mem[R16 + 0x18, el]:u64 -00000442: R16 := R16 + 0x18 -00000447: call R17 with noreturn - -00000563: sub call_weak_fn(call_weak_fn_result) -00000594: call_weak_fn_result :: out u32 = low:32[R0] - -000001c7: -000001ca: R0 := 0x10000 -000001d1: R0 := mem[R0 + 0xFD0, el]:u64 -000001d7: when R0 = 0 goto %000001d5 -00000584: goto %00000351 - -000001d5: -000001dd: call R30 with noreturn - -00000351: -00000354: goto @__gmon_start__ - -00000352: -0000041f: R16 := 0x11000 -00000426: R17 := mem[R16 + 0x10, el]:u64 -0000042c: R16 := R16 + 0x10 -00000431: call R17 with noreturn - -00000565: sub deregister_tm_clones(deregister_tm_clones_result) -00000595: deregister_tm_clones_result :: out u32 = low:32[R0] - -000001e3: -000001e6: R0 := 0x11000 -000001ec: R0 := R0 + 0x30 -000001f1: R1 := 0x11000 -000001f7: R1 := R1 + 0x30 -000001fd: #1 := ~R0 -00000202: #2 := R1 + ~R0 -00000208: VF := extend:65[#2 + 1] <> extend:65[R1] + extend:65[#1] + 1 -0000020e: CF := pad:65[#2 + 1] <> pad:65[R1] + pad:65[#1] + 1 -00000212: ZF := #2 + 1 = 0 -00000216: NF := 63:63[#2 + 1] -0000021c: when ZF goto %0000021a -00000585: goto %00000333 - -00000333: -00000336: R1 := 0x10000 -0000033d: R1 := mem[R1 + 0xFC0, el]:u64 -00000342: when R1 = 0 goto %0000021a -00000586: goto %00000346 - -0000021a: -00000222: call R30 with noreturn - -00000346: -0000034a: R16 := R1 -0000034f: call R16 with noreturn - -00000568: sub frame_dummy(frame_dummy_result) -00000596: frame_dummy_result :: out u32 = low:32[R0] - -000002ba: -000002bc: call @register_tm_clones with noreturn - -00000569: sub main(main_argc, main_argv, main_result) -00000597: main_argc :: in u32 = low:32[R0] -00000598: main_argv :: in out u64 = R1 -00000599: main_result :: out u32 = low:32[R0] - -000002be: -000002c1: R9 := 0x11000 -000002c6: R8 := 1 -000002ce: mem := mem with [R9 + 0x34, el]:u32 <- 31:0[R8] -000002d3: R0 := 0 -000002d8: call R30 with noreturn - -0000056a: sub register_tm_clones(register_tm_clones_result) -0000059a: register_tm_clones_result :: out u32 = low:32[R0] - -00000224: -00000227: R0 := 0x11000 -0000022d: R0 := R0 + 0x30 -00000232: R1 := 0x11000 -00000238: R1 := R1 + 0x30 -0000023f: R1 := R1 + ~R0 + 1 -00000245: R2 := 0.63:63[R1] -0000024c: R1 := R2 + (R1 ~>> 3) -00000252: R1 := extend:64[63:1[R1]] -00000258: when R1 = 0 goto %00000256 -00000587: goto %00000315 - -00000315: -00000318: R2 := 0x10000 -0000031f: R2 := mem[R2 + 0xFE0, el]:u64 -00000324: when R2 = 0 goto %00000256 -00000588: goto %00000328 - -00000256: -0000025e: call R30 with noreturn - -00000328: -0000032c: R16 := R2 -00000331: call R16 with noreturn diff --git a/src/test/correct/no_interference_update_y/clang/no_interference_update_y.expected b/src/test/correct/no_interference_update_y/clang/no_interference_update_y.expected index 9f3970825..162022290 100644 --- a/src/test/correct/no_interference_update_y/clang/no_interference_update_y.expected +++ b/src/test/correct/no_interference_update_y/clang/no_interference_update_y.expected @@ -7,14 +7,18 @@ var {:extern} R8: bv64; var {:extern} R9: bv64; var {:extern} mem: [bv64]bv8; const {:extern} $x_addr: bv64; -axiom ($x_addr == 69688bv64); +axiom ($x_addr == 131096bv64); const {:extern} $y_addr: bv64; -axiom ($y_addr == 69684bv64); +axiom ($y_addr == 131092bv64); function {:extern} L(mem$in: [bv64]bv8, index: bv64) returns (bool) { (if (index == $y_addr) then true else (if (index == $x_addr) then true else false)) } function {:extern} {:bvbuiltin "bvadd"} bvadd64(bv64, bv64) returns (bv64); +function {:extern} gamma_load64(gammaMap: [bv64]bool, index: bv64) returns (bool) { + (gammaMap[bvadd64(index, 7bv64)] && (gammaMap[bvadd64(index, 6bv64)] && (gammaMap[bvadd64(index, 5bv64)] && (gammaMap[bvadd64(index, 4bv64)] && (gammaMap[bvadd64(index, 3bv64)] && (gammaMap[bvadd64(index, 2bv64)] && (gammaMap[bvadd64(index, 1bv64)] && gammaMap[index]))))))) +} + function {:extern} gamma_store32(gammaMap: [bv64]bool, index: bv64, value: bool) returns ([bv64]bool) { gammaMap[index := value][bvadd64(index, 1bv64) := value][bvadd64(index, 2bv64) := value][bvadd64(index, 3bv64) := value] } @@ -35,11 +39,12 @@ procedure {:extern} rely(); modifies Gamma_mem, mem; ensures (forall i: bv64 :: (((mem[i] == old(mem[i])) ==> (Gamma_mem[i] == old(Gamma_mem[i]))))); ensures (memory_load32_le(mem, $y_addr) == old(memory_load32_le(mem, $y_addr))); - free ensures (memory_load32_le(mem, 1852bv64) == 131073bv32); - free ensures (memory_load64_le(mem, 69064bv64) == 1808bv64); - free ensures (memory_load64_le(mem, 69072bv64) == 1728bv64); - free ensures (memory_load64_le(mem, 69592bv64) == 1812bv64); - free ensures (memory_load64_le(mem, 69672bv64) == 69672bv64); + free ensures (memory_load32_le(mem, 2304bv64) == 131073bv32); + free ensures (memory_load64_le(mem, 130432bv64) == 2256bv64); + free ensures (memory_load64_le(mem, 130440bv64) == 2176bv64); + free ensures (memory_load64_le(mem, 131048bv64) == 131092bv64); + free ensures (memory_load64_le(mem, 131056bv64) == 2260bv64); + free ensures (memory_load64_le(mem, 131080bv64) == 131080bv64); procedure {:extern} rely_transitive(); modifies Gamma_mem, mem; @@ -66,39 +71,46 @@ implementation {:extern} guarantee_reflexive() assert (memory_load32_le(mem, $x_addr) == memory_load32_le(mem, $x_addr)); } -procedure main_1812(); +procedure main(); modifies Gamma_R0, Gamma_R8, Gamma_R9, Gamma_mem, R0, R8, R9, mem; - free requires (memory_load64_le(mem, 69664bv64) == 0bv64); - free requires (memory_load64_le(mem, 69672bv64) == 69672bv64); - free requires (memory_load32_le(mem, 1852bv64) == 131073bv32); - free requires (memory_load64_le(mem, 69064bv64) == 1808bv64); - free requires (memory_load64_le(mem, 69072bv64) == 1728bv64); - free requires (memory_load64_le(mem, 69592bv64) == 1812bv64); - free requires (memory_load64_le(mem, 69672bv64) == 69672bv64); + free requires (memory_load64_le(mem, 131072bv64) == 0bv64); + free requires (memory_load64_le(mem, 131080bv64) == 131080bv64); + free requires (memory_load32_le(mem, 2304bv64) == 131073bv32); + free requires (memory_load64_le(mem, 130432bv64) == 2256bv64); + free requires (memory_load64_le(mem, 130440bv64) == 2176bv64); + free requires (memory_load64_le(mem, 131048bv64) == 131092bv64); + free requires (memory_load64_le(mem, 131056bv64) == 2260bv64); + free requires (memory_load64_le(mem, 131080bv64) == 131080bv64); ensures (memory_load32_le(mem, $y_addr) == 1bv32); - free ensures (memory_load32_le(mem, 1852bv64) == 131073bv32); - free ensures (memory_load64_le(mem, 69064bv64) == 1808bv64); - free ensures (memory_load64_le(mem, 69072bv64) == 1728bv64); - free ensures (memory_load64_le(mem, 69592bv64) == 1812bv64); - free ensures (memory_load64_le(mem, 69672bv64) == 69672bv64); + free ensures (memory_load32_le(mem, 2304bv64) == 131073bv32); + free ensures (memory_load64_le(mem, 130432bv64) == 2256bv64); + free ensures (memory_load64_le(mem, 130440bv64) == 2176bv64); + free ensures (memory_load64_le(mem, 131048bv64) == 131092bv64); + free ensures (memory_load64_le(mem, 131056bv64) == 2260bv64); + free ensures (memory_load64_le(mem, 131080bv64) == 131080bv64); -implementation main_1812() +implementation main() { + var $load$18: bv64; + var Gamma_$load$18: bool; var x_old: bv32; lmain: assume {:captureState "lmain"} true; - R9, Gamma_R9 := 69632bv64, true; - R8, Gamma_R8 := 1bv64, true; + R8, Gamma_R8 := 126976bv64, true; + R9, Gamma_R9 := 1bv64, true; + R0, Gamma_R0 := 0bv64, true; call rely(); + $load$18, Gamma_$load$18 := memory_load64_le(mem, bvadd64(R8, 4072bv64)), (gamma_load64(Gamma_mem, bvadd64(R8, 4072bv64)) || L(mem, bvadd64(R8, 4072bv64))); + R8, Gamma_R8 := $load$18, Gamma_$load$18; + call rely(); + assert (L(mem, R8) ==> Gamma_R9); x_old := memory_load32_le(mem, $x_addr); - assert (L(mem, bvadd64(R9, 52bv64)) ==> Gamma_R8); - mem, Gamma_mem := memory_store32_le(mem, bvadd64(R9, 52bv64), R8[32:0]), gamma_store32(Gamma_mem, bvadd64(R9, 52bv64), Gamma_R8); + mem, Gamma_mem := memory_store32_le(mem, R8, R9[32:0]), gamma_store32(Gamma_mem, R8, Gamma_R9); assert (memory_load32_le(mem, $x_addr) == x_old); - assume {:captureState "%000002ce"} true; - R0, Gamma_R0 := 0bv64, true; - goto main_1812_basil_return; - main_1812_basil_return: - assume {:captureState "main_1812_basil_return"} true; + assume {:captureState "%0000028c"} true; + goto main_basil_return; + main_basil_return: + assume {:captureState "main_basil_return"} true; return; } diff --git a/src/test/correct/no_interference_update_y/clang/no_interference_update_y.gts b/src/test/correct/no_interference_update_y/clang/no_interference_update_y.gts deleted file mode 100644 index 9755c0a43..000000000 Binary files a/src/test/correct/no_interference_update_y/clang/no_interference_update_y.gts and /dev/null differ diff --git a/src/test/correct/no_interference_update_y/clang/no_interference_update_y.md5sum b/src/test/correct/no_interference_update_y/clang/no_interference_update_y.md5sum new file mode 100644 index 000000000..7f41fb36f --- /dev/null +++ b/src/test/correct/no_interference_update_y/clang/no_interference_update_y.md5sum @@ -0,0 +1,5 @@ +d977427d062972ddb070152f51cbdbb4 correct/no_interference_update_y/clang/a.out +ffecbd8fc23689dbcdee8510297e7fc9 correct/no_interference_update_y/clang/no_interference_update_y.adt +abf21c2d30e976783d9a3a2c745722d0 correct/no_interference_update_y/clang/no_interference_update_y.bir +73879667a9a816be334872b1b563d440 correct/no_interference_update_y/clang/no_interference_update_y.relf +b2521b1801d8f25518f77ffe2f51bc73 correct/no_interference_update_y/clang/no_interference_update_y.gts diff --git a/src/test/correct/no_interference_update_y/clang/no_interference_update_y.relf b/src/test/correct/no_interference_update_y/clang/no_interference_update_y.relf deleted file mode 100644 index b41854406..000000000 --- a/src/test/correct/no_interference_update_y/clang/no_interference_update_y.relf +++ /dev/null @@ -1,124 +0,0 @@ - -Relocation section '.rela.dyn' at offset 0x460 contains 8 entries: - Offset Info Type Symbol's Value Symbol's Name + Addend -0000000000010dc8 0000000000000403 R_AARCH64_RELATIVE 710 -0000000000010dd0 0000000000000403 R_AARCH64_RELATIVE 6c0 -0000000000010fd8 0000000000000403 R_AARCH64_RELATIVE 714 -0000000000011028 0000000000000403 R_AARCH64_RELATIVE 11028 -0000000000010fc0 0000000400000401 R_AARCH64_GLOB_DAT 0000000000000000 _ITM_deregisterTMCloneTable + 0 -0000000000010fc8 0000000500000401 R_AARCH64_GLOB_DAT 0000000000000000 __cxa_finalize@GLIBC_2.17 + 0 -0000000000010fd0 0000000600000401 R_AARCH64_GLOB_DAT 0000000000000000 __gmon_start__ + 0 -0000000000010fe0 0000000800000401 R_AARCH64_GLOB_DAT 0000000000000000 _ITM_registerTMCloneTable + 0 - -Relocation section '.rela.plt' at offset 0x520 contains 4 entries: - Offset Info Type Symbol's Value Symbol's Name + Addend -0000000000011000 0000000300000402 R_AARCH64_JUMP_SLOT 0000000000000000 __libc_start_main@GLIBC_2.34 + 0 -0000000000011008 0000000500000402 R_AARCH64_JUMP_SLOT 0000000000000000 __cxa_finalize@GLIBC_2.17 + 0 -0000000000011010 0000000600000402 R_AARCH64_JUMP_SLOT 0000000000000000 __gmon_start__ + 0 -0000000000011018 0000000700000402 R_AARCH64_JUMP_SLOT 0000000000000000 abort@GLIBC_2.17 + 0 - -Symbol table '.dynsym' contains 9 entries: - Num: Value Size Type Bind Vis Ndx Name - 0: 0000000000000000 0 NOTYPE LOCAL DEFAULT UND - 1: 0000000000000580 0 SECTION LOCAL DEFAULT 11 .init - 2: 0000000000011020 0 SECTION LOCAL DEFAULT 23 .data - 3: 0000000000000000 0 FUNC GLOBAL DEFAULT UND __libc_start_main@GLIBC_2.34 (2) - 4: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_deregisterTMCloneTable - 5: 0000000000000000 0 FUNC WEAK DEFAULT UND __cxa_finalize@GLIBC_2.17 (3) - 6: 0000000000000000 0 NOTYPE WEAK DEFAULT UND __gmon_start__ - 7: 0000000000000000 0 FUNC GLOBAL DEFAULT UND abort@GLIBC_2.17 (3) - 8: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_registerTMCloneTable - -Symbol table '.symtab' contains 91 entries: - Num: Value Size Type Bind Vis Ndx Name - 0: 0000000000000000 0 NOTYPE LOCAL DEFAULT UND - 1: 0000000000000238 0 SECTION LOCAL DEFAULT 1 .interp - 2: 0000000000000254 0 SECTION LOCAL DEFAULT 2 .note.gnu.build-id - 3: 0000000000000278 0 SECTION LOCAL DEFAULT 3 .note.ABI-tag - 4: 0000000000000298 0 SECTION LOCAL DEFAULT 4 .gnu.hash - 5: 00000000000002b8 0 SECTION LOCAL DEFAULT 5 .dynsym - 6: 0000000000000390 0 SECTION LOCAL DEFAULT 6 .dynstr - 7: 000000000000041e 0 SECTION LOCAL DEFAULT 7 .gnu.version - 8: 0000000000000430 0 SECTION LOCAL DEFAULT 8 .gnu.version_r - 9: 0000000000000460 0 SECTION LOCAL DEFAULT 9 .rela.dyn - 10: 0000000000000520 0 SECTION LOCAL DEFAULT 10 .rela.plt - 11: 0000000000000580 0 SECTION LOCAL DEFAULT 11 .init - 12: 00000000000005a0 0 SECTION LOCAL DEFAULT 12 .plt - 13: 0000000000000600 0 SECTION LOCAL DEFAULT 13 .text - 14: 0000000000000728 0 SECTION LOCAL DEFAULT 14 .fini - 15: 000000000000073c 0 SECTION LOCAL DEFAULT 15 .rodata - 16: 0000000000000740 0 SECTION LOCAL DEFAULT 16 .eh_frame_hdr - 17: 0000000000000780 0 SECTION LOCAL DEFAULT 17 .eh_frame - 18: 0000000000010dc8 0 SECTION LOCAL DEFAULT 18 .init_array - 19: 0000000000010dd0 0 SECTION LOCAL DEFAULT 19 .fini_array - 20: 0000000000010dd8 0 SECTION LOCAL DEFAULT 20 .dynamic - 21: 0000000000010fb8 0 SECTION LOCAL DEFAULT 21 .got - 22: 0000000000010fe8 0 SECTION LOCAL DEFAULT 22 .got.plt - 23: 0000000000011020 0 SECTION LOCAL DEFAULT 23 .data - 24: 0000000000011030 0 SECTION LOCAL DEFAULT 24 .bss - 25: 0000000000000000 0 SECTION LOCAL DEFAULT 25 .comment - 26: 0000000000000000 0 FILE LOCAL DEFAULT ABS Scrt1.o - 27: 0000000000000278 0 NOTYPE LOCAL DEFAULT 3 $d - 28: 0000000000000278 32 OBJECT LOCAL DEFAULT 3 __abi_tag - 29: 0000000000000600 0 NOTYPE LOCAL DEFAULT 13 $x - 30: 0000000000000794 0 NOTYPE LOCAL DEFAULT 17 $d - 31: 000000000000073c 0 NOTYPE LOCAL DEFAULT 15 $d - 32: 0000000000000000 0 FILE LOCAL DEFAULT ABS crti.o - 33: 0000000000000634 0 NOTYPE LOCAL DEFAULT 13 $x - 34: 0000000000000634 20 FUNC LOCAL DEFAULT 13 call_weak_fn - 35: 0000000000000580 0 NOTYPE LOCAL DEFAULT 11 $x - 36: 0000000000000728 0 NOTYPE LOCAL DEFAULT 14 $x - 37: 0000000000000000 0 FILE LOCAL DEFAULT ABS crtn.o - 38: 0000000000000590 0 NOTYPE LOCAL DEFAULT 11 $x - 39: 0000000000000734 0 NOTYPE LOCAL DEFAULT 14 $x - 40: 0000000000000000 0 FILE LOCAL DEFAULT ABS crtstuff.c - 41: 0000000000000650 0 NOTYPE LOCAL DEFAULT 13 $x - 42: 0000000000000650 0 FUNC LOCAL DEFAULT 13 deregister_tm_clones - 43: 0000000000000680 0 FUNC LOCAL DEFAULT 13 register_tm_clones - 44: 0000000000011028 0 NOTYPE LOCAL DEFAULT 23 $d - 45: 00000000000006c0 0 FUNC LOCAL DEFAULT 13 __do_global_dtors_aux - 46: 0000000000011030 1 OBJECT LOCAL DEFAULT 24 completed.0 - 47: 0000000000010dd0 0 NOTYPE LOCAL DEFAULT 19 $d - 48: 0000000000010dd0 0 OBJECT LOCAL DEFAULT 19 __do_global_dtors_aux_fini_array_entry - 49: 0000000000000710 0 FUNC LOCAL DEFAULT 13 frame_dummy - 50: 0000000000010dc8 0 NOTYPE LOCAL DEFAULT 18 $d - 51: 0000000000010dc8 0 OBJECT LOCAL DEFAULT 18 __frame_dummy_init_array_entry - 52: 00000000000007a8 0 NOTYPE LOCAL DEFAULT 17 $d - 53: 0000000000011030 0 NOTYPE LOCAL DEFAULT 24 $d - 54: 0000000000000000 0 FILE LOCAL DEFAULT ABS no_interference_update_y.c - 55: 0000000000000714 0 NOTYPE LOCAL DEFAULT 13 $x.0 - 56: 0000000000011034 0 NOTYPE LOCAL DEFAULT 24 $d.1 - 57: 000000000000002a 0 NOTYPE LOCAL DEFAULT 25 $d.2 - 58: 0000000000000808 0 NOTYPE LOCAL DEFAULT 17 $d.3 - 59: 0000000000000000 0 FILE LOCAL DEFAULT ABS crtstuff.c - 60: 0000000000000830 0 NOTYPE LOCAL DEFAULT 17 $d - 61: 0000000000000830 0 OBJECT LOCAL DEFAULT 17 __FRAME_END__ - 62: 0000000000000000 0 FILE LOCAL DEFAULT ABS - 63: 0000000000010dd8 0 OBJECT LOCAL DEFAULT ABS _DYNAMIC - 64: 0000000000000740 0 NOTYPE LOCAL DEFAULT 16 __GNU_EH_FRAME_HDR - 65: 0000000000010fb8 0 OBJECT LOCAL DEFAULT ABS _GLOBAL_OFFSET_TABLE_ - 66: 00000000000005a0 0 NOTYPE LOCAL DEFAULT 12 $x - 67: 0000000000000000 0 FUNC GLOBAL DEFAULT UND __libc_start_main@GLIBC_2.34 - 68: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_deregisterTMCloneTable - 69: 0000000000011020 0 NOTYPE WEAK DEFAULT 23 data_start - 70: 0000000000011030 0 NOTYPE GLOBAL DEFAULT 24 __bss_start__ - 71: 0000000000000000 0 FUNC WEAK DEFAULT UND __cxa_finalize@GLIBC_2.17 - 72: 0000000000011040 0 NOTYPE GLOBAL DEFAULT 24 _bss_end__ - 73: 0000000000011030 0 NOTYPE GLOBAL DEFAULT 23 _edata - 74: 0000000000011038 4 OBJECT GLOBAL DEFAULT 24 x - 75: 0000000000000728 0 FUNC GLOBAL HIDDEN 14 _fini - 76: 0000000000011040 0 NOTYPE GLOBAL DEFAULT 24 __bss_end__ - 77: 0000000000011020 0 NOTYPE GLOBAL DEFAULT 23 __data_start - 78: 0000000000000000 0 NOTYPE WEAK DEFAULT UND __gmon_start__ - 79: 0000000000011028 0 OBJECT GLOBAL HIDDEN 23 __dso_handle - 80: 0000000000000000 0 FUNC GLOBAL DEFAULT UND abort@GLIBC_2.17 - 81: 000000000000073c 4 OBJECT GLOBAL DEFAULT 15 _IO_stdin_used - 82: 0000000000011040 0 NOTYPE GLOBAL DEFAULT 24 _end - 83: 0000000000000600 52 FUNC GLOBAL DEFAULT 13 _start - 84: 0000000000011040 0 NOTYPE GLOBAL DEFAULT 24 __end__ - 85: 0000000000011034 4 OBJECT GLOBAL DEFAULT 24 y - 86: 0000000000011030 0 NOTYPE GLOBAL DEFAULT 24 __bss_start - 87: 0000000000000714 20 FUNC GLOBAL DEFAULT 13 main - 88: 0000000000011030 0 OBJECT GLOBAL HIDDEN 23 __TMC_END__ - 89: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_registerTMCloneTable - 90: 0000000000000580 0 FUNC GLOBAL HIDDEN 11 _init diff --git a/src/test/correct/no_interference_update_y/clang/no_interference_update_y_gtirb.expected b/src/test/correct/no_interference_update_y/clang/no_interference_update_y_gtirb.expected index 475e74ccd..b6ad538fb 100644 --- a/src/test/correct/no_interference_update_y/clang/no_interference_update_y_gtirb.expected +++ b/src/test/correct/no_interference_update_y/clang/no_interference_update_y_gtirb.expected @@ -7,14 +7,18 @@ var {:extern} R8: bv64; var {:extern} R9: bv64; var {:extern} mem: [bv64]bv8; const {:extern} $x_addr: bv64; -axiom ($x_addr == 69688bv64); +axiom ($x_addr == 131096bv64); const {:extern} $y_addr: bv64; -axiom ($y_addr == 69684bv64); +axiom ($y_addr == 131092bv64); function {:extern} L(mem$in: [bv64]bv8, index: bv64) returns (bool) { (if (index == $y_addr) then true else (if (index == $x_addr) then true else false)) } function {:extern} {:bvbuiltin "bvadd"} bvadd64(bv64, bv64) returns (bv64); +function {:extern} gamma_load64(gammaMap: [bv64]bool, index: bv64) returns (bool) { + (gammaMap[bvadd64(index, 7bv64)] && (gammaMap[bvadd64(index, 6bv64)] && (gammaMap[bvadd64(index, 5bv64)] && (gammaMap[bvadd64(index, 4bv64)] && (gammaMap[bvadd64(index, 3bv64)] && (gammaMap[bvadd64(index, 2bv64)] && (gammaMap[bvadd64(index, 1bv64)] && gammaMap[index]))))))) +} + function {:extern} gamma_store32(gammaMap: [bv64]bool, index: bv64, value: bool) returns ([bv64]bool) { gammaMap[index := value][bvadd64(index, 1bv64) := value][bvadd64(index, 2bv64) := value][bvadd64(index, 3bv64) := value] } @@ -35,11 +39,12 @@ procedure {:extern} rely(); modifies Gamma_mem, mem; ensures (forall i: bv64 :: (((mem[i] == old(mem[i])) ==> (Gamma_mem[i] == old(Gamma_mem[i]))))); ensures (memory_load32_le(mem, $y_addr) == old(memory_load32_le(mem, $y_addr))); - free ensures (memory_load32_le(mem, 1852bv64) == 131073bv32); - free ensures (memory_load64_le(mem, 69064bv64) == 1808bv64); - free ensures (memory_load64_le(mem, 69072bv64) == 1728bv64); - free ensures (memory_load64_le(mem, 69592bv64) == 1812bv64); - free ensures (memory_load64_le(mem, 69672bv64) == 69672bv64); + free ensures (memory_load32_le(mem, 2304bv64) == 131073bv32); + free ensures (memory_load64_le(mem, 130432bv64) == 2256bv64); + free ensures (memory_load64_le(mem, 130440bv64) == 2176bv64); + free ensures (memory_load64_le(mem, 131048bv64) == 131092bv64); + free ensures (memory_load64_le(mem, 131056bv64) == 2260bv64); + free ensures (memory_load64_le(mem, 131080bv64) == 131080bv64); procedure {:extern} rely_transitive(); modifies Gamma_mem, mem; @@ -66,39 +71,46 @@ implementation {:extern} guarantee_reflexive() assert (memory_load32_le(mem, $x_addr) == memory_load32_le(mem, $x_addr)); } -procedure main_1812(); +procedure main(); modifies Gamma_R0, Gamma_R8, Gamma_R9, Gamma_mem, R0, R8, R9, mem; - free requires (memory_load64_le(mem, 69664bv64) == 0bv64); - free requires (memory_load64_le(mem, 69672bv64) == 69672bv64); - free requires (memory_load32_le(mem, 1852bv64) == 131073bv32); - free requires (memory_load64_le(mem, 69064bv64) == 1808bv64); - free requires (memory_load64_le(mem, 69072bv64) == 1728bv64); - free requires (memory_load64_le(mem, 69592bv64) == 1812bv64); - free requires (memory_load64_le(mem, 69672bv64) == 69672bv64); + free requires (memory_load64_le(mem, 131072bv64) == 0bv64); + free requires (memory_load64_le(mem, 131080bv64) == 131080bv64); + free requires (memory_load32_le(mem, 2304bv64) == 131073bv32); + free requires (memory_load64_le(mem, 130432bv64) == 2256bv64); + free requires (memory_load64_le(mem, 130440bv64) == 2176bv64); + free requires (memory_load64_le(mem, 131048bv64) == 131092bv64); + free requires (memory_load64_le(mem, 131056bv64) == 2260bv64); + free requires (memory_load64_le(mem, 131080bv64) == 131080bv64); ensures (memory_load32_le(mem, $y_addr) == 1bv32); - free ensures (memory_load32_le(mem, 1852bv64) == 131073bv32); - free ensures (memory_load64_le(mem, 69064bv64) == 1808bv64); - free ensures (memory_load64_le(mem, 69072bv64) == 1728bv64); - free ensures (memory_load64_le(mem, 69592bv64) == 1812bv64); - free ensures (memory_load64_le(mem, 69672bv64) == 69672bv64); + free ensures (memory_load32_le(mem, 2304bv64) == 131073bv32); + free ensures (memory_load64_le(mem, 130432bv64) == 2256bv64); + free ensures (memory_load64_le(mem, 130440bv64) == 2176bv64); + free ensures (memory_load64_le(mem, 131048bv64) == 131092bv64); + free ensures (memory_load64_le(mem, 131056bv64) == 2260bv64); + free ensures (memory_load64_le(mem, 131080bv64) == 131080bv64); -implementation main_1812() +implementation main() { + var $load19: bv64; + var Gamma_$load19: bool; var x_old: bv32; - main_1812__0__g7pcuBFbQH~Jw8saI~uAQA: - assume {:captureState "main_1812__0__g7pcuBFbQH~Jw8saI~uAQA"} true; - R9, Gamma_R9 := 69632bv64, true; - R8, Gamma_R8 := 1bv64, true; + $main$__0__$IkNYmV06TxC75h8A4NM3wA: + assume {:captureState "$main$__0__$IkNYmV06TxC75h8A4NM3wA"} true; + R8, Gamma_R8 := 126976bv64, true; + R9, Gamma_R9 := 1bv64, true; + R0, Gamma_R0 := 0bv64, true; call rely(); + $load19, Gamma_$load19 := memory_load64_le(mem, bvadd64(R8, 4072bv64)), (gamma_load64(Gamma_mem, bvadd64(R8, 4072bv64)) || L(mem, bvadd64(R8, 4072bv64))); + R8, Gamma_R8 := $load19, Gamma_$load19; + call rely(); + assert (L(mem, R8) ==> Gamma_R9); x_old := memory_load32_le(mem, $x_addr); - assert (L(mem, bvadd64(R9, 52bv64)) ==> Gamma_R8); - mem, Gamma_mem := memory_store32_le(mem, bvadd64(R9, 52bv64), R8[32:0]), gamma_store32(Gamma_mem, bvadd64(R9, 52bv64), Gamma_R8); + mem, Gamma_mem := memory_store32_le(mem, R8, R9[32:0]), gamma_store32(Gamma_mem, R8, Gamma_R9); assert (memory_load32_le(mem, $x_addr) == x_old); - assume {:captureState "1820_0"} true; - R0, Gamma_R0 := 0bv64, true; - goto main_1812_basil_return; - main_1812_basil_return: - assume {:captureState "main_1812_basil_return"} true; + assume {:captureState "2276$0"} true; + goto main_basil_return; + main_basil_return: + assume {:captureState "main_basil_return"} true; return; } diff --git a/src/test/correct/no_interference_update_y/clang_pic/no_interference_update_y.adt b/src/test/correct/no_interference_update_y/clang_pic/no_interference_update_y.adt deleted file mode 100644 index 0255aff31..000000000 --- a/src/test/correct/no_interference_update_y/clang_pic/no_interference_update_y.adt +++ /dev/null @@ -1,495 +0,0 @@ -Project(Attrs([Attr("filename","\"clang_pic/no_interference_update_y.out\""), -Attr("image-specification","(declare abi (name str))\n(declare arch (name str))\n(declare base-address (addr int))\n(declare bias (off int))\n(declare bits (size int))\n(declare code-region (addr int) (size int) (off int))\n(declare code-start (addr int))\n(declare entry-point (addr int))\n(declare external-reference (addr int) (name str))\n(declare format (name str))\n(declare is-executable (flag bool))\n(declare is-little-endian (flag bool))\n(declare llvm:base-address (addr int))\n(declare llvm:code-entry (name str) (off int) (size int))\n(declare llvm:coff-import-library (name str))\n(declare llvm:coff-virtual-section-header (name str) (addr int) (size int))\n(declare llvm:elf-program-header (name str) (off int) (size int))\n(declare llvm:elf-program-header-flags (name str) (ld bool) (r bool) \n (w bool) (x bool))\n(declare llvm:elf-virtual-program-header (name str) (addr int) (size int))\n(declare llvm:entry-point (addr int))\n(declare llvm:macho-symbol (name str) (value int))\n(declare llvm:name-reference (at int) (name str))\n(declare llvm:relocation (at int) (addr int))\n(declare llvm:section-entry (name str) (addr int) (size int) (off int))\n(declare llvm:section-flags (name str) (r bool) (w bool) (x bool))\n(declare llvm:segment-command (name str) (off int) (size int))\n(declare llvm:segment-command-flags (name str) (r bool) (w bool) (x bool))\n(declare llvm:symbol-entry (name str) (addr int) (size int) (off int)\n (value int))\n(declare llvm:virtual-segment-command (name str) (addr int) (size int))\n(declare mapped (addr int) (size int) (off int))\n(declare named-region (addr int) (size int) (name str))\n(declare named-symbol (addr int) (name str))\n(declare require (name str))\n(declare section (addr int) (size int))\n(declare segment (addr int) (size int) (r bool) (w bool) (x bool))\n(declare subarch (name str))\n(declare symbol-chunk (addr int) (size int) (root int))\n(declare symbol-value (addr int) (value int))\n(declare system (name str))\n(declare vendor (name str))\n\n(abi unknown)\n(arch aarch64)\n(base-address 0)\n(bias 0)\n(bits 64)\n(code-region 1900 20 1900)\n(code-region 1600 300 1600)\n(code-region 1456 96 1456)\n(code-region 1432 24 1432)\n(code-start 1652)\n(code-start 1600)\n(code-start 1876)\n(entry-point 1600)\n(external-reference 69560 _ITM_deregisterTMCloneTable)\n(external-reference 69568 __cxa_finalize)\n(external-reference 69576 __gmon_start__)\n(external-reference 69600 _ITM_registerTMCloneTable)\n(external-reference 69632 __libc_start_main)\n(external-reference 69640 __cxa_finalize)\n(external-reference 69648 __gmon_start__)\n(external-reference 69656 abort)\n(format elf)\n(is-executable true)\n(is-little-endian true)\n(llvm:base-address 0)\n(llvm:code-entry abort 0 0)\n(llvm:code-entry __cxa_finalize 0 0)\n(llvm:code-entry __libc_start_main 0 0)\n(llvm:code-entry _init 1432 0)\n(llvm:code-entry main 1876 24)\n(llvm:code-entry _start 1600 52)\n(llvm:code-entry abort@GLIBC_2.17 0 0)\n(llvm:code-entry _fini 1900 0)\n(llvm:code-entry __cxa_finalize@GLIBC_2.17 0 0)\n(llvm:code-entry __libc_start_main@GLIBC_2.34 0 0)\n(llvm:code-entry frame_dummy 1872 0)\n(llvm:code-entry __do_global_dtors_aux 1792 0)\n(llvm:code-entry register_tm_clones 1728 0)\n(llvm:code-entry deregister_tm_clones 1680 0)\n(llvm:code-entry call_weak_fn 1652 20)\n(llvm:code-entry .fini 1900 20)\n(llvm:code-entry .text 1600 300)\n(llvm:code-entry .plt 1456 96)\n(llvm:code-entry .init 1432 24)\n(llvm:elf-program-header 08 3520 576)\n(llvm:elf-program-header 07 0 0)\n(llvm:elf-program-header 06 1924 60)\n(llvm:elf-program-header 05 596 68)\n(llvm:elf-program-header 04 3536 480)\n(llvm:elf-program-header 03 3520 624)\n(llvm:elf-program-header 02 0 2164)\n(llvm:elf-program-header 01 568 27)\n(llvm:elf-program-header 00 64 504)\n(llvm:elf-program-header-flags 08 false true false false)\n(llvm:elf-program-header-flags 07 false true true false)\n(llvm:elf-program-header-flags 06 false true false false)\n(llvm:elf-program-header-flags 05 false true false false)\n(llvm:elf-program-header-flags 04 false true true false)\n(llvm:elf-program-header-flags 03 true true true false)\n(llvm:elf-program-header-flags 02 true true false true)\n(llvm:elf-program-header-flags 01 false true false false)\n(llvm:elf-program-header-flags 00 false true false false)\n(llvm:elf-virtual-program-header 08 69056 576)\n(llvm:elf-virtual-program-header 07 0 0)\n(llvm:elf-virtual-program-header 06 1924 60)\n(llvm:elf-virtual-program-header 05 596 68)\n(llvm:elf-virtual-program-header 04 69072 480)\n(llvm:elf-virtual-program-header 03 69056 640)\n(llvm:elf-virtual-program-header 02 0 2164)\n(llvm:elf-virtual-program-header 01 568 27)\n(llvm:elf-virtual-program-header 00 64 504)\n(llvm:entry-point 1600)\n(llvm:name-reference 69656 abort)\n(llvm:name-reference 69648 __gmon_start__)\n(llvm:name-reference 69640 __cxa_finalize)\n(llvm:name-reference 69632 __libc_start_main)\n(llvm:name-reference 69600 _ITM_registerTMCloneTable)\n(llvm:name-reference 69576 __gmon_start__)\n(llvm:name-reference 69568 __cxa_finalize)\n(llvm:name-reference 69560 _ITM_deregisterTMCloneTable)\n(llvm:section-entry .shstrtab 0 259 6980)\n(llvm:section-entry .strtab 0 580 6400)\n(llvm:section-entry .symtab 0 2184 4216)\n(llvm:section-entry .comment 0 71 4144)\n(llvm:section-entry .bss 69680 16 4144)\n(llvm:section-entry .data 69664 16 4128)\n(llvm:section-entry .got.plt 69608 56 4072)\n(llvm:section-entry .got 69552 56 4016)\n(llvm:section-entry .dynamic 69072 480 3536)\n(llvm:section-entry .fini_array 69064 8 3528)\n(llvm:section-entry .init_array 69056 8 3520)\n(llvm:section-entry .eh_frame 1984 180 1984)\n(llvm:section-entry .eh_frame_hdr 1924 60 1924)\n(llvm:section-entry .rodata 1920 4 1920)\n(llvm:section-entry .fini 1900 20 1900)\n(llvm:section-entry .text 1600 300 1600)\n(llvm:section-entry .plt 1456 96 1456)\n(llvm:section-entry .init 1432 24 1432)\n(llvm:section-entry .rela.plt 1336 96 1336)\n(llvm:section-entry .rela.dyn 1120 216 1120)\n(llvm:section-entry .gnu.version_r 1072 48 1072)\n(llvm:section-entry .gnu.version 1054 18 1054)\n(llvm:section-entry .dynstr 912 141 912)\n(llvm:section-entry .dynsym 696 216 696)\n(llvm:section-entry .gnu.hash 664 28 664)\n(llvm:section-entry .note.ABI-tag 632 32 632)\n(llvm:section-entry .note.gnu.build-id 596 36 596)\n(llvm:section-entry .interp 568 27 568)\n(llvm:section-flags .shstrtab true false false)\n(llvm:section-flags .strtab true false false)\n(llvm:section-flags .symtab true false false)\n(llvm:section-flags .comment true false false)\n(llvm:section-flags .bss true true false)\n(llvm:section-flags .data true true false)\n(llvm:section-flags .got.plt true true false)\n(llvm:section-flags .got true true false)\n(llvm:section-flags .dynamic true true false)\n(llvm:section-flags .fini_array true true false)\n(llvm:section-flags .init_array true true false)\n(llvm:section-flags .eh_frame true false false)\n(llvm:section-flags .eh_frame_hdr true false false)\n(llvm:section-flags .rodata true false false)\n(llvm:section-flags .fini true false true)\n(llvm:section-flags .text true false true)\n(llvm:section-flags .plt true false true)\n(llvm:section-flags .init true false true)\n(llvm:section-flags .rela.plt true false false)\n(llvm:section-flags .rela.dyn true false false)\n(llvm:section-flags .gnu.version_r true false false)\n(llvm:section-flags .gnu.version true false false)\n(llvm:section-flags .dynstr true false false)\n(llvm:section-flags .dynsym true false false)\n(llvm:section-flags .gnu.hash true false false)\n(llvm:section-flags .note.ABI-tag true false false)\n(llvm:section-flags .note.gnu.build-id true false false)\n(llvm:section-flags .interp true false false)\n(llvm:symbol-entry abort 0 0 0 0)\n(llvm:symbol-entry __cxa_finalize 0 0 0 0)\n(llvm:symbol-entry __libc_start_main 0 0 0 0)\n(llvm:symbol-entry _init 1432 0 1432 1432)\n(llvm:symbol-entry main 1876 24 1876 1876)\n(llvm:symbol-entry _start 1600 52 1600 1600)\n(llvm:symbol-entry abort@GLIBC_2.17 0 0 0 0)\n(llvm:symbol-entry _fini 1900 0 1900 1900)\n(llvm:symbol-entry __cxa_finalize@GLIBC_2.17 0 0 0 0)\n(llvm:symbol-entry __libc_start_main@GLIBC_2.34 0 0 0 0)\n(llvm:symbol-entry frame_dummy 1872 0 1872 1872)\n(llvm:symbol-entry __do_global_dtors_aux 1792 0 1792 1792)\n(llvm:symbol-entry register_tm_clones 1728 0 1728 1728)\n(llvm:symbol-entry deregister_tm_clones 1680 0 1680 1680)\n(llvm:symbol-entry call_weak_fn 1652 20 1652 1652)\n(mapped 0 2164 0)\n(mapped 69056 624 3520)\n(named-region 0 2164 02)\n(named-region 69056 640 03)\n(named-region 568 27 .interp)\n(named-region 596 36 .note.gnu.build-id)\n(named-region 632 32 .note.ABI-tag)\n(named-region 664 28 .gnu.hash)\n(named-region 696 216 .dynsym)\n(named-region 912 141 .dynstr)\n(named-region 1054 18 .gnu.version)\n(named-region 1072 48 .gnu.version_r)\n(named-region 1120 216 .rela.dyn)\n(named-region 1336 96 .rela.plt)\n(named-region 1432 24 .init)\n(named-region 1456 96 .plt)\n(named-region 1600 300 .text)\n(named-region 1900 20 .fini)\n(named-region 1920 4 .rodata)\n(named-region 1924 60 .eh_frame_hdr)\n(named-region 1984 180 .eh_frame)\n(named-region 69056 8 .init_array)\n(named-region 69064 8 .fini_array)\n(named-region 69072 480 .dynamic)\n(named-region 69552 56 .got)\n(named-region 69608 56 .got.plt)\n(named-region 69664 16 .data)\n(named-region 69680 16 .bss)\n(named-region 0 71 .comment)\n(named-region 0 2184 .symtab)\n(named-region 0 580 .strtab)\n(named-region 0 259 .shstrtab)\n(named-symbol 1652 call_weak_fn)\n(named-symbol 1680 deregister_tm_clones)\n(named-symbol 1728 register_tm_clones)\n(named-symbol 1792 __do_global_dtors_aux)\n(named-symbol 1872 frame_dummy)\n(named-symbol 0 __libc_start_main@GLIBC_2.34)\n(named-symbol 0 __cxa_finalize@GLIBC_2.17)\n(named-symbol 1900 _fini)\n(named-symbol 0 abort@GLIBC_2.17)\n(named-symbol 1600 _start)\n(named-symbol 1876 main)\n(named-symbol 1432 _init)\n(named-symbol 0 __libc_start_main)\n(named-symbol 0 __cxa_finalize)\n(named-symbol 0 abort)\n(require libc.so.6)\n(section 568 27)\n(section 596 36)\n(section 632 32)\n(section 664 28)\n(section 696 216)\n(section 912 141)\n(section 1054 18)\n(section 1072 48)\n(section 1120 216)\n(section 1336 96)\n(section 1432 24)\n(section 1456 96)\n(section 1600 300)\n(section 1900 20)\n(section 1920 4)\n(section 1924 60)\n(section 1984 180)\n(section 69056 8)\n(section 69064 8)\n(section 69072 480)\n(section 69552 56)\n(section 69608 56)\n(section 69664 16)\n(section 69680 16)\n(section 0 71)\n(section 0 2184)\n(section 0 580)\n(section 0 259)\n(segment 0 2164 true false true)\n(segment 69056 640 true true false)\n(subarch v8)\n(symbol-chunk 1652 20 1652)\n(symbol-chunk 1600 52 1600)\n(symbol-chunk 1876 24 1876)\n(symbol-value 1652 1652)\n(symbol-value 1680 1680)\n(symbol-value 1728 1728)\n(symbol-value 1792 1792)\n(symbol-value 1872 1872)\n(symbol-value 1900 1900)\n(symbol-value 1600 1600)\n(symbol-value 1876 1876)\n(symbol-value 1432 1432)\n(symbol-value 0 0)\n(system \"\")\n(vendor \"\")\n"), -Attr("abi-name","\"aarch64-linux-gnu-elf\"")]), -Sections([Section(".shstrtab", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x40\x06\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x48\x1c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x38\x00\x09\x00\x40\x00\x1d\x00\x1c\x00\x06\x00\x00\x00\x04\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x04\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x74\x08\x00\x00\x00\x00\x00\x00\x74\x08\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x01\x00\x00\x00\x06\x00\x00\x00\xc0\x0d\x00\x00\x00\x00\x00\x00\xc0\x0d\x01\x00\x00\x00\x00\x00\xc0\x0d\x01"), -Section(".strtab", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x40\x06\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x48\x1c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x38\x00\x09\x00\x40\x00\x1d\x00\x1c\x00\x06\x00\x00\x00\x04\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x04\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x74\x08\x00\x00\x00\x00\x00\x00\x74\x08\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x01\x00\x00\x00\x06\x00\x00\x00\xc0\x0d\x00\x00\x00\x00\x00\x00\xc0\x0d\x01\x00\x00\x00\x00\x00\xc0\x0d\x01\x00\x00\x00\x00\x00\x70\x02\x00\x00\x00\x00\x00\x00\x80\x02\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x02\x00\x00\x00\x06\x00\x00\x00\xd0\x0d\x00\x00\x00\x00\x00\x00\xd0\x0d\x01\x00\x00\x00\x00\x00\xd0\x0d\x01\x00\x00\x00\x00\x00\xe0\x01\x00\x00\x00\x00\x00\x00\xe0\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x04\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x50\xe5\x74\x64\x04\x00\x00\x00\x84\x07\x00\x00\x00\x00\x00\x00\x84\x07\x00\x00\x00\x00\x00\x00\x84\x07\x00\x00\x00\x00\x00\x00\x3c\x00\x00\x00\x00\x00\x00\x00\x3c\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x51\xe5\x74\x64\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x52\xe5\x74\x64\x04\x00\x00\x00\xc0\x0d\x00\x00\x00\x00\x00\x00\xc0\x0d\x01\x00\x00\x00\x00\x00\xc0\x0d\x01\x00\x00\x00\x00\x00\x40\x02\x00\x00\x00\x00\x00\x00\x40\x02\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x2f\x6c\x69\x62\x2f\x6c\x64\x2d\x6c\x69\x6e\x75"), -Section(".comment", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x40\x06\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x48\x1c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x38\x00\x09\x00\x40\x00\x1d\x00\x1c\x00\x06\x00\x00\x00\x04\x00\x00"), -Section(".interp", 0x238, "\x2f\x6c\x69\x62\x2f\x6c\x64\x2d\x6c\x69\x6e\x75\x78\x2d\x61\x61\x72\x63\x68\x36\x34\x2e\x73\x6f\x2e\x31\x00"), -Section(".note.gnu.build-id", 0x254, "\x04\x00\x00\x00\x14\x00\x00\x00\x03\x00\x00\x00\x47\x4e\x55\x00\x06\xa9\x38\x86\x14\xc3\xbb\xd6\x08\xf1\x6a\x15\x1a\x25\xdd\x1a\xbd\xbf\x7f\x6e"), -Section(".note.ABI-tag", 0x278, "\x04\x00\x00\x00\x10\x00\x00\x00\x01\x00\x00\x00\x47\x4e\x55\x00\x00\x00\x00\x00\x03\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00"), -Section(".gnu.hash", 0x298, "\x01\x00\x00\x00\x01\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".dynsym", 0x2B8, "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x0b\x00\x98\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x17\x00\x20\x10\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x48\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x22\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x22\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x73\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".dynstr", 0x390, "\x00\x5f\x5f\x63\x78\x61\x5f\x66\x69\x6e\x61\x6c\x69\x7a\x65\x00\x5f\x5f\x6c\x69\x62\x63\x5f\x73\x74\x61\x72\x74\x5f\x6d\x61\x69\x6e\x00\x61\x62\x6f\x72\x74\x00\x6c\x69\x62\x63\x2e\x73\x6f\x2e\x36\x00\x47\x4c\x49\x42\x43\x5f\x32\x2e\x31\x37\x00\x47\x4c\x49\x42\x43\x5f\x32\x2e\x33\x34\x00\x5f\x49\x54\x4d\x5f\x64\x65\x72\x65\x67\x69\x73\x74\x65\x72\x54\x4d\x43\x6c\x6f\x6e\x65\x54\x61\x62\x6c\x65\x00\x5f\x5f\x67\x6d\x6f\x6e\x5f\x73\x74\x61\x72\x74\x5f\x5f\x00\x5f\x49\x54\x4d\x5f\x72\x65\x67\x69\x73\x74\x65\x72\x54\x4d\x43\x6c\x6f\x6e\x65\x54\x61\x62\x6c\x65\x00"), -Section(".gnu.version", 0x41E, "\x00\x00\x00\x00\x00\x00\x02\x00\x01\x00\x03\x00\x01\x00\x03\x00\x01\x00"), -Section(".gnu.version_r", 0x430, "\x01\x00\x02\x00\x28\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x97\x91\x96\x06\x00\x00\x03\x00\x32\x00\x00\x00\x10\x00\x00\x00\xb4\x91\x96\x06\x00\x00\x02\x00\x3d\x00\x00\x00\x00\x00\x00\x00"), -Section(".rela.dyn", 0x460, "\xc0\x0d\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x50\x07\x00\x00\x00\x00\x00\x00\xc8\x0d\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\xd0\x0f\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x34\x10\x01\x00\x00\x00\x00\x00\xd8\x0f\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x54\x07\x00\x00\x00\x00\x00\x00\x28\x10\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x28\x10\x01\x00\x00\x00\x00\x00\xb8\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xc0\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xc8\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe0\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".rela.plt", 0x538, "\x00\x10\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x08\x10\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x10\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x18\x10\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".init", 0x598, "\x1f\x20\x03\xd5\xfd\x7b\xbf\xa9\xfd\x03\x00\x91\x34\x00\x00\x94\xfd\x7b\xc1\xa8\xc0\x03\x5f\xd6"), -Section(".plt", 0x5B0, "\xf0\x7b\xbf\xa9\x90\x00\x00\x90\x11\xfe\x47\xf9\x10\xe2\x3f\x91\x20\x02\x1f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x90\x00\x00\xb0\x11\x02\x40\xf9\x10\x02\x00\x91\x20\x02\x1f\xd6\x90\x00\x00\xb0\x11\x06\x40\xf9\x10\x22\x00\x91\x20\x02\x1f\xd6\x90\x00\x00\xb0\x11\x0a\x40\xf9\x10\x42\x00\x91\x20\x02\x1f\xd6\x90\x00\x00\xb0\x11\x0e\x40\xf9\x10\x62\x00\x91\x20\x02\x1f\xd6"), -Section(".text", 0x640, "\x1f\x20\x03\xd5\x1d\x00\x80\xd2\x1e\x00\x80\xd2\xe5\x03\x00\xaa\xe1\x03\x40\xf9\xe2\x23\x00\x91\xe6\x03\x00\x91\x80\x00\x00\x90\x00\xec\x47\xf9\x03\x00\x80\xd2\x04\x00\x80\xd2\xd9\xff\xff\x97\xe4\xff\xff\x97\x80\x00\x00\x90\x00\xe4\x47\xf9\x40\x00\x00\xb4\xdc\xff\xff\x17\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x80\x00\x00\xb0\x00\xc0\x00\x91\x81\x00\x00\xb0\x21\xc0\x00\x91\x3f\x00\x00\xeb\xc0\x00\x00\x54\x81\x00\x00\x90\x21\xdc\x47\xf9\x61\x00\x00\xb4\xf0\x03\x01\xaa\x00\x02\x1f\xd6\xc0\x03\x5f\xd6\x80\x00\x00\xb0\x00\xc0\x00\x91\x81\x00\x00\xb0\x21\xc0\x00\x91\x21\x00\x00\xcb\x22\xfc\x7f\xd3\x41\x0c\x81\x8b\x21\xfc\x41\x93\xc1\x00\x00\xb4\x82\x00\x00\x90\x42\xf0\x47\xf9\x62\x00\x00\xb4\xf0\x03\x02\xaa\x00\x02\x1f\xd6\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\xfd\x7b\xbe\xa9\xfd\x03\x00\x91\xf3\x0b\x00\xf9\x93\x00\x00\xb0\x60\xc2\x40\x39\x40\x01\x00\x35\x80\x00\x00\x90\x00\xe0\x47\xf9\x80\x00\x00\xb4\x80\x00\x00\xb0\x00\x14\x40\xf9\xad\xff\xff\x97\xd8\xff\xff\x97\x20\x00\x80\x52\x60\xc2\x00\x39\xf3\x0b\x40\xf9\xfd\x7b\xc2\xa8\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\xdc\xff\xff\x17\x89\x00\x00\x90\x29\xe9\x47\xf9\x28\x00\x80\x52\x28\x01\x00\xb9\xe0\x03\x1f\x2a\xc0\x03\x5f\xd6"), -Section(".fini", 0x76C, "\x1f\x20\x03\xd5\xfd\x7b\xbf\xa9\xfd\x03\x00\x91\xfd\x7b\xc1\xa8\xc0\x03\x5f\xd6"), -Section(".rodata", 0x780, "\x01\x00\x02\x00"), -Section(".eh_frame_hdr", 0x784, "\x01\x1b\x03\x3b\x38\x00\x00\x00\x06\x00\x00\x00\xbc\xfe\xff\xff\x50\x00\x00\x00\x0c\xff\xff\xff\x64\x00\x00\x00\x3c\xff\xff\xff\x78\x00\x00\x00\x7c\xff\xff\xff\x8c\x00\x00\x00\xcc\xff\xff\xff\xb0\x00\x00\x00\xd0\xff\xff\xff\xd8\x00\x00\x00"), -Section(".eh_frame", 0x7C0, "\x10\x00\x00\x00\x00\x00\x00\x00\x01\x7a\x52\x00\x04\x78\x1e\x01\x1b\x0c\x1f\x00\x10\x00\x00\x00\x18\x00\x00\x00\x64\xfe\xff\xff\x34\x00\x00\x00\x00\x41\x07\x1e\x10\x00\x00\x00\x2c\x00\x00\x00\xa0\xfe\xff\xff\x30\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x40\x00\x00\x00\xbc\xfe\xff\xff\x3c\x00\x00\x00\x00\x00\x00\x00\x20\x00\x00\x00\x54\x00\x00\x00\xe8\xfe\xff\xff\x48\x00\x00\x00\x00\x41\x0e\x20\x9d\x04\x9e\x03\x42\x93\x02\x4e\xde\xdd\xd3\x0e\x00\x00\x00\x00\x10\x00\x00\x00\x78\x00\x00\x00\x14\xff\xff\xff\x04\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x01\x7a\x52\x00\x01\x7c\x1e\x01\x1b\x0c\x1f\x00\x10\x00\x00\x00\x18\x00\x00\x00\xf0\xfe\xff\xff\x18\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".fini_array", 0x10DC8, "\x00\x07\x00\x00\x00\x00\x00\x00"), -Section(".dynamic", 0x10DD0, "\x01\x00\x00\x00\x00\x00\x00\x00\x28\x00\x00\x00\x00\x00\x00\x00\x0c\x00\x00\x00\x00\x00\x00\x00\x98\x05\x00\x00\x00\x00\x00\x00\x0d\x00\x00\x00\x00\x00\x00\x00\x6c\x07\x00\x00\x00\x00\x00\x00\x19\x00\x00\x00\x00\x00\x00\x00\xc0\x0d\x01\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x1a\x00\x00\x00\x00\x00\x00\x00\xc8\x0d\x01\x00\x00\x00\x00\x00\x1c\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\xf5\xfe\xff\x6f\x00\x00\x00\x00\x98\x02\x00\x00\x00\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x90\x03\x00\x00\x00\x00\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\xb8\x02\x00\x00\x00\x00\x00\x00\x0a\x00\x00\x00\x00\x00\x00\x00\x8d\x00\x00\x00\x00\x00\x00\x00\x0b\x00\x00\x00\x00\x00\x00\x00\x18\x00\x00\x00\x00\x00\x00\x00\x15\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\xe8\x0f\x01\x00\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x60\x00\x00\x00\x00\x00\x00\x00\x14\x00\x00\x00\x00\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x17\x00\x00\x00\x00\x00\x00\x00\x38\x05\x00\x00\x00\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x60\x04\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\xd8\x00\x00\x00\x00\x00\x00\x00\x09\x00\x00\x00\x00\x00\x00\x00\x18\x00\x00\x00\x00\x00\x00\x00\xfb\xff\xff\x6f\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\xfe\xff\xff\x6f\x00\x00\x00\x00\x30\x04\x00\x00\x00\x00\x00\x00\xff\xff\xff\x6f\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\xf0\xff\xff\x6f\x00\x00\x00\x00\x1e\x04\x00\x00\x00\x00\x00\x00\xf9\xff\xff\x6f\x00\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".init_array", 0x10DC0, "\x50\x07\x00\x00\x00\x00\x00\x00"), -Section(".got", 0x10FB0, "\xd0\x0d\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x34\x10\x01\x00\x00\x00\x00\x00\x54\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".got.plt", 0x10FE8, "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xb0\x05\x00\x00\x00\x00\x00\x00\xb0\x05\x00\x00\x00\x00\x00\x00\xb0\x05\x00\x00\x00\x00\x00\x00\xb0\x05\x00\x00\x00\x00\x00\x00"), -Section(".data", 0x11020, "\x00\x00\x00\x00\x00\x00\x00\x00\x28\x10\x01\x00\x00\x00\x00\x00")]), -Memmap([Annotation(Region(0x0,0x873), Attr("segment","02 0 2164")), -Annotation(Region(0x640,0x673), Attr("symbol","\"_start\"")), -Annotation(Region(0x0,0x102), Attr("section","\".shstrtab\"")), -Annotation(Region(0x0,0x243), Attr("section","\".strtab\"")), -Annotation(Region(0x0,0x46), Attr("section","\".comment\"")), -Annotation(Region(0x238,0x252), Attr("section","\".interp\"")), -Annotation(Region(0x254,0x277), Attr("section","\".note.gnu.build-id\"")), -Annotation(Region(0x278,0x297), Attr("section","\".note.ABI-tag\"")), -Annotation(Region(0x298,0x2B3), Attr("section","\".gnu.hash\"")), -Annotation(Region(0x2B8,0x38F), Attr("section","\".dynsym\"")), -Annotation(Region(0x390,0x41C), Attr("section","\".dynstr\"")), -Annotation(Region(0x41E,0x42F), Attr("section","\".gnu.version\"")), -Annotation(Region(0x430,0x45F), Attr("section","\".gnu.version_r\"")), -Annotation(Region(0x460,0x537), Attr("section","\".rela.dyn\"")), -Annotation(Region(0x538,0x597), Attr("section","\".rela.plt\"")), -Annotation(Region(0x598,0x5AF), Attr("section","\".init\"")), -Annotation(Region(0x5B0,0x60F), Attr("section","\".plt\"")), -Annotation(Region(0x598,0x5AF), Attr("code-region","()")), -Annotation(Region(0x5B0,0x60F), Attr("code-region","()")), -Annotation(Region(0x640,0x673), Attr("symbol-info","_start 0x640 52")), -Annotation(Region(0x674,0x687), Attr("symbol","\"call_weak_fn\"")), -Annotation(Region(0x674,0x687), Attr("symbol-info","call_weak_fn 0x674 20")), -Annotation(Region(0x640,0x76B), Attr("section","\".text\"")), -Annotation(Region(0x640,0x76B), Attr("code-region","()")), -Annotation(Region(0x754,0x76B), Attr("symbol","\"main\"")), -Annotation(Region(0x754,0x76B), Attr("symbol-info","main 0x754 24")), -Annotation(Region(0x76C,0x77F), Attr("section","\".fini\"")), -Annotation(Region(0x76C,0x77F), Attr("code-region","()")), -Annotation(Region(0x780,0x783), Attr("section","\".rodata\"")), -Annotation(Region(0x784,0x7BF), Attr("section","\".eh_frame_hdr\"")), -Annotation(Region(0x7C0,0x873), Attr("section","\".eh_frame\"")), -Annotation(Region(0x10DC0,0x1102F), Attr("segment","03 0x10DC0 640")), -Annotation(Region(0x10DC8,0x10DCF), Attr("section","\".fini_array\"")), -Annotation(Region(0x10DD0,0x10FAF), Attr("section","\".dynamic\"")), -Annotation(Region(0x10DC0,0x10DC7), Attr("section","\".init_array\"")), -Annotation(Region(0x10FB0,0x10FE7), Attr("section","\".got\"")), -Annotation(Region(0x10FE8,0x1101F), Attr("section","\".got.plt\"")), -Annotation(Region(0x11020,0x1102F), Attr("section","\".data\""))]), -Program(Tid(1_348, "%00000544"), Attrs([]), - Subs([Sub(Tid(1_298, "@__cxa_finalize"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x5E0"), -Attr("stub","()")]), "__cxa_finalize", Args([Arg(Tid(1_349, "%00000545"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("__cxa_finalize_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(796, "@__cxa_finalize"), - Attrs([Attr("address","0x5E0")]), Phis([]), -Defs([Def(Tid(1_044, "%00000414"), Attrs([Attr("address","0x5E0"), -Attr("insn","adrp x16, #69632")]), Var("R16",Imm(64)), Int(69632,64)), -Def(Tid(1_051, "%0000041b"), Attrs([Attr("address","0x5E4"), -Attr("insn","ldr x17, [x16, #0x8]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(1_057, "%00000421"), Attrs([Attr("address","0x5E8"), -Attr("insn","add x16, x16, #0x8")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(8,64)))]), Jmps([Call(Tid(1_062, "%00000426"), - Attrs([Attr("address","0x5EC"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), -Sub(Tid(1_299, "@__do_global_dtors_aux"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x700")]), - "__do_global_dtors_aux", Args([Arg(Tid(1_350, "%00000546"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("__do_global_dtors_aux_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(614, "@__do_global_dtors_aux"), - Attrs([Attr("address","0x700")]), Phis([]), Defs([Def(Tid(618, "%0000026a"), - Attrs([Attr("address","0x700"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("#3",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(18446744073709551584,64))), -Def(Tid(624, "%00000270"), Attrs([Attr("address","0x700"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("#3",Imm(64)),Var("R29",Imm(64)),LittleEndian(),64)), -Def(Tid(630, "%00000276"), Attrs([Attr("address","0x700"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("#3",Imm(64)),Int(8,64)),Var("R30",Imm(64)),LittleEndian(),64)), -Def(Tid(634, "%0000027a"), Attrs([Attr("address","0x700"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("R31",Imm(64)), -Var("#3",Imm(64))), Def(Tid(640, "%00000280"), - Attrs([Attr("address","0x704"), Attr("insn","mov x29, sp")]), - Var("R29",Imm(64)), Var("R31",Imm(64))), Def(Tid(648, "%00000288"), - Attrs([Attr("address","0x708"), Attr("insn","str x19, [sp, #0x10]")]), - Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(16,64)),Var("R19",Imm(64)),LittleEndian(),64)), -Def(Tid(653, "%0000028d"), Attrs([Attr("address","0x70C"), -Attr("insn","adrp x19, #69632")]), Var("R19",Imm(64)), Int(69632,64)), -Def(Tid(660, "%00000294"), Attrs([Attr("address","0x710"), -Attr("insn","ldrb w0, [x19, #0x30]")]), Var("R0",Imm(64)), -UNSIGNED(64,Load(Var("mem",Mem(64,8)),PLUS(Var("R19",Imm(64)),Int(48,64)),LittleEndian(),8)))]), -Jmps([Goto(Tid(667, "%0000029b"), Attrs([Attr("address","0x714"), -Attr("insn","cbnz w0, #0x28")]), - NEQ(Extract(31,0,Var("R0",Imm(64))),Int(0,32)), -Direct(Tid(665, "%00000299"))), Goto(Tid(1_338, "%0000053a"), Attrs([]), - Int(1,1), Direct(Tid(741, "%000002e5")))])), Blk(Tid(741, "%000002e5"), - Attrs([Attr("address","0x718")]), Phis([]), Defs([Def(Tid(744, "%000002e8"), - Attrs([Attr("address","0x718"), Attr("insn","adrp x0, #65536")]), - Var("R0",Imm(64)), Int(65536,64)), Def(Tid(751, "%000002ef"), - Attrs([Attr("address","0x71C"), Attr("insn","ldr x0, [x0, #0xfc0]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(4032,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(757, "%000002f5"), Attrs([Attr("address","0x720"), -Attr("insn","cbz x0, #0x10")]), EQ(Var("R0",Imm(64)),Int(0,64)), -Direct(Tid(755, "%000002f3"))), Goto(Tid(1_339, "%0000053b"), Attrs([]), - Int(1,1), Direct(Tid(780, "%0000030c")))])), Blk(Tid(780, "%0000030c"), - Attrs([Attr("address","0x724")]), Phis([]), Defs([Def(Tid(783, "%0000030f"), - Attrs([Attr("address","0x724"), Attr("insn","adrp x0, #69632")]), - Var("R0",Imm(64)), Int(69632,64)), Def(Tid(790, "%00000316"), - Attrs([Attr("address","0x728"), Attr("insn","ldr x0, [x0, #0x28]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(40,64)),LittleEndian(),64)), -Def(Tid(795, "%0000031b"), Attrs([Attr("address","0x72C"), -Attr("insn","bl #-0x14c")]), Var("R30",Imm(64)), Int(1840,64))]), -Jmps([Call(Tid(798, "%0000031e"), Attrs([Attr("address","0x72C"), -Attr("insn","bl #-0x14c")]), Int(1,1), -(Direct(Tid(1_298, "@__cxa_finalize")),Direct(Tid(755, "%000002f3"))))])), -Blk(Tid(755, "%000002f3"), Attrs([Attr("address","0x730")]), Phis([]), -Defs([Def(Tid(763, "%000002fb"), Attrs([Attr("address","0x730"), -Attr("insn","bl #-0xa0")]), Var("R30",Imm(64)), Int(1844,64))]), -Jmps([Call(Tid(765, "%000002fd"), Attrs([Attr("address","0x730"), -Attr("insn","bl #-0xa0")]), Int(1,1), -(Direct(Tid(1_312, "@deregister_tm_clones")),Direct(Tid(767, "%000002ff"))))])), -Blk(Tid(767, "%000002ff"), Attrs([Attr("address","0x734")]), Phis([]), -Defs([Def(Tid(770, "%00000302"), Attrs([Attr("address","0x734"), -Attr("insn","mov w0, #0x1")]), Var("R0",Imm(64)), Int(1,64)), -Def(Tid(778, "%0000030a"), Attrs([Attr("address","0x738"), -Attr("insn","strb w0, [x19, #0x30]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R19",Imm(64)),Int(48,64)),Extract(7,0,Var("R0",Imm(64))),LittleEndian(),8))]), -Jmps([Goto(Tid(1_340, "%0000053c"), Attrs([]), Int(1,1), -Direct(Tid(665, "%00000299")))])), Blk(Tid(665, "%00000299"), - Attrs([Attr("address","0x73C")]), Phis([]), Defs([Def(Tid(675, "%000002a3"), - Attrs([Attr("address","0x73C"), Attr("insn","ldr x19, [sp, #0x10]")]), - Var("R19",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(16,64)),LittleEndian(),64)), -Def(Tid(682, "%000002aa"), Attrs([Attr("address","0x740"), -Attr("insn","ldp x29, x30, [sp], #0x20")]), Var("R29",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(687, "%000002af"), Attrs([Attr("address","0x740"), -Attr("insn","ldp x29, x30, [sp], #0x20")]), Var("R30",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(691, "%000002b3"), Attrs([Attr("address","0x740"), -Attr("insn","ldp x29, x30, [sp], #0x20")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(32,64)))]), Jmps([Call(Tid(696, "%000002b8"), - Attrs([Attr("address","0x744"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), Sub(Tid(1_303, "@__libc_start_main"), - Attrs([Attr("c.proto","signed (*)(signed (*)(signed , char** , char** );* main, signed , char** , \nvoid* auxv)"), -Attr("address","0x5D0"), Attr("stub","()")]), "__libc_start_main", - Args([Arg(Tid(1_351, "%00000547"), - Attrs([Attr("c.layout","**[ : 64]"), -Attr("c.data","Top:u64 ptr ptr"), -Attr("c.type","signed (*)(signed , char** , char** );*")]), - Var("__libc_start_main_main",Imm(64)), Var("R0",Imm(64)), In()), -Arg(Tid(1_352, "%00000548"), Attrs([Attr("c.layout","[signed : 32]"), -Attr("c.data","Top:u32"), Attr("c.type","signed")]), - Var("__libc_start_main_arg2",Imm(32)), LOW(32,Var("R1",Imm(64))), In()), -Arg(Tid(1_353, "%00000549"), Attrs([Attr("c.layout","**[char : 8]"), -Attr("c.data","Top:u8 ptr ptr"), Attr("c.type","char**")]), - Var("__libc_start_main_arg3",Imm(64)), Var("R2",Imm(64)), Both()), -Arg(Tid(1_354, "%0000054a"), Attrs([Attr("c.layout","*[ : 8]"), -Attr("c.data","{} ptr"), Attr("c.type","void*")]), - Var("__libc_start_main_auxv",Imm(64)), Var("R3",Imm(64)), Both()), -Arg(Tid(1_355, "%0000054b"), Attrs([Attr("c.layout","[signed : 32]"), -Attr("c.data","Top:u32"), Attr("c.type","signed")]), - Var("__libc_start_main_result",Imm(32)), LOW(32,Var("R0",Imm(64))), -Out())]), Blks([Blk(Tid(447, "@__libc_start_main"), - Attrs([Attr("address","0x5D0")]), Phis([]), -Defs([Def(Tid(1_022, "%000003fe"), Attrs([Attr("address","0x5D0"), -Attr("insn","adrp x16, #69632")]), Var("R16",Imm(64)), Int(69632,64)), -Def(Tid(1_029, "%00000405"), Attrs([Attr("address","0x5D4"), -Attr("insn","ldr x17, [x16]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R16",Imm(64)),LittleEndian(),64)), -Def(Tid(1_035, "%0000040b"), Attrs([Attr("address","0x5D8"), -Attr("insn","add x16, x16, #0x0")]), Var("R16",Imm(64)), -Var("R16",Imm(64)))]), Jmps([Call(Tid(1_040, "%00000410"), - Attrs([Attr("address","0x5DC"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), Sub(Tid(1_304, "@_fini"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x76C")]), - "_fini", Args([Arg(Tid(1_356, "%0000054c"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("_fini_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(31, "@_fini"), - Attrs([Attr("address","0x76C")]), Phis([]), Defs([Def(Tid(37, "%00000025"), - Attrs([Attr("address","0x770"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("#0",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(18446744073709551600,64))), -Def(Tid(43, "%0000002b"), Attrs([Attr("address","0x770"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("#0",Imm(64)),Var("R29",Imm(64)),LittleEndian(),64)), -Def(Tid(49, "%00000031"), Attrs([Attr("address","0x770"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("#0",Imm(64)),Int(8,64)),Var("R30",Imm(64)),LittleEndian(),64)), -Def(Tid(53, "%00000035"), Attrs([Attr("address","0x770"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("R31",Imm(64)), -Var("#0",Imm(64))), Def(Tid(59, "%0000003b"), Attrs([Attr("address","0x774"), -Attr("insn","mov x29, sp")]), Var("R29",Imm(64)), Var("R31",Imm(64))), -Def(Tid(66, "%00000042"), Attrs([Attr("address","0x778"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R29",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(71, "%00000047"), Attrs([Attr("address","0x778"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R30",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(75, "%0000004b"), Attrs([Attr("address","0x778"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(16,64)))]), Jmps([Call(Tid(80, "%00000050"), - Attrs([Attr("address","0x77C"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), Sub(Tid(1_305, "@_init"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x598")]), - "_init", Args([Arg(Tid(1_357, "%0000054d"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("_init_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(1_134, "@_init"), - Attrs([Attr("address","0x598")]), Phis([]), -Defs([Def(Tid(1_140, "%00000474"), Attrs([Attr("address","0x59C"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("#5",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(18446744073709551600,64))), -Def(Tid(1_146, "%0000047a"), Attrs([Attr("address","0x59C"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("#5",Imm(64)),Var("R29",Imm(64)),LittleEndian(),64)), -Def(Tid(1_152, "%00000480"), Attrs([Attr("address","0x59C"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("#5",Imm(64)),Int(8,64)),Var("R30",Imm(64)),LittleEndian(),64)), -Def(Tid(1_156, "%00000484"), Attrs([Attr("address","0x59C"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("R31",Imm(64)), -Var("#5",Imm(64))), Def(Tid(1_162, "%0000048a"), - Attrs([Attr("address","0x5A0"), Attr("insn","mov x29, sp")]), - Var("R29",Imm(64)), Var("R31",Imm(64))), Def(Tid(1_167, "%0000048f"), - Attrs([Attr("address","0x5A4"), Attr("insn","bl #0xd0")]), - Var("R30",Imm(64)), Int(1448,64))]), Jmps([Call(Tid(1_169, "%00000491"), - Attrs([Attr("address","0x5A4"), Attr("insn","bl #0xd0")]), Int(1,1), -(Direct(Tid(1_310, "@call_weak_fn")),Direct(Tid(1_171, "%00000493"))))])), -Blk(Tid(1_171, "%00000493"), Attrs([Attr("address","0x5A8")]), Phis([]), -Defs([Def(Tid(1_176, "%00000498"), Attrs([Attr("address","0x5A8"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R29",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(1_181, "%0000049d"), Attrs([Attr("address","0x5A8"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R30",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(1_185, "%000004a1"), Attrs([Attr("address","0x5A8"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(16,64)))]), Jmps([Call(Tid(1_190, "%000004a6"), - Attrs([Attr("address","0x5AC"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), Sub(Tid(1_306, "@_start"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x640"), -Attr("entry-point","()")]), "_start", Args([Arg(Tid(1_358, "%0000054e"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("_start_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(384, "@_start"), - Attrs([Attr("address","0x640")]), Phis([]), Defs([Def(Tid(389, "%00000185"), - Attrs([Attr("address","0x644"), Attr("insn","mov x29, #0x0")]), - Var("R29",Imm(64)), Int(0,64)), Def(Tid(394, "%0000018a"), - Attrs([Attr("address","0x648"), Attr("insn","mov x30, #0x0")]), - Var("R30",Imm(64)), Int(0,64)), Def(Tid(400, "%00000190"), - Attrs([Attr("address","0x64C"), Attr("insn","mov x5, x0")]), - Var("R5",Imm(64)), Var("R0",Imm(64))), Def(Tid(407, "%00000197"), - Attrs([Attr("address","0x650"), Attr("insn","ldr x1, [sp]")]), - Var("R1",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(413, "%0000019d"), Attrs([Attr("address","0x654"), -Attr("insn","add x2, sp, #0x8")]), Var("R2",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(8,64))), Def(Tid(419, "%000001a3"), - Attrs([Attr("address","0x658"), Attr("insn","mov x6, sp")]), - Var("R6",Imm(64)), Var("R31",Imm(64))), Def(Tid(424, "%000001a8"), - Attrs([Attr("address","0x65C"), Attr("insn","adrp x0, #65536")]), - Var("R0",Imm(64)), Int(65536,64)), Def(Tid(431, "%000001af"), - Attrs([Attr("address","0x660"), Attr("insn","ldr x0, [x0, #0xfd8]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(4056,64)),LittleEndian(),64)), -Def(Tid(436, "%000001b4"), Attrs([Attr("address","0x664"), -Attr("insn","mov x3, #0x0")]), Var("R3",Imm(64)), Int(0,64)), -Def(Tid(441, "%000001b9"), Attrs([Attr("address","0x668"), -Attr("insn","mov x4, #0x0")]), Var("R4",Imm(64)), Int(0,64)), -Def(Tid(446, "%000001be"), Attrs([Attr("address","0x66C"), -Attr("insn","bl #-0x9c")]), Var("R30",Imm(64)), Int(1648,64))]), -Jmps([Call(Tid(449, "%000001c1"), Attrs([Attr("address","0x66C"), -Attr("insn","bl #-0x9c")]), Int(1,1), -(Direct(Tid(1_303, "@__libc_start_main")),Direct(Tid(451, "%000001c3"))))])), -Blk(Tid(451, "%000001c3"), Attrs([Attr("address","0x670")]), Phis([]), -Defs([Def(Tid(454, "%000001c6"), Attrs([Attr("address","0x670"), -Attr("insn","bl #-0x70")]), Var("R30",Imm(64)), Int(1652,64))]), -Jmps([Call(Tid(457, "%000001c9"), Attrs([Attr("address","0x670"), -Attr("insn","bl #-0x70")]), Int(1,1), -(Direct(Tid(1_309, "@abort")),Direct(Tid(1_341, "%0000053d"))))])), -Blk(Tid(1_341, "%0000053d"), Attrs([]), Phis([]), Defs([]), -Jmps([Call(Tid(1_342, "%0000053e"), Attrs([]), Int(1,1), -(Direct(Tid(1_310, "@call_weak_fn")),))]))])), Sub(Tid(1_309, "@abort"), - Attrs([Attr("noreturn","()"), Attr("c.proto","void (*)(void)"), -Attr("address","0x600"), Attr("stub","()")]), "abort", Args([]), -Blks([Blk(Tid(455, "@abort"), Attrs([Attr("address","0x600")]), Phis([]), -Defs([Def(Tid(1_088, "%00000440"), Attrs([Attr("address","0x600"), -Attr("insn","adrp x16, #69632")]), Var("R16",Imm(64)), Int(69632,64)), -Def(Tid(1_095, "%00000447"), Attrs([Attr("address","0x604"), -Attr("insn","ldr x17, [x16, #0x18]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(24,64)),LittleEndian(),64)), -Def(Tid(1_101, "%0000044d"), Attrs([Attr("address","0x608"), -Attr("insn","add x16, x16, #0x18")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(24,64)))]), Jmps([Call(Tid(1_106, "%00000452"), - Attrs([Attr("address","0x60C"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), Sub(Tid(1_310, "@call_weak_fn"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x674")]), - "call_weak_fn", Args([Arg(Tid(1_359, "%0000054f"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("call_weak_fn_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(459, "@call_weak_fn"), - Attrs([Attr("address","0x674")]), Phis([]), Defs([Def(Tid(462, "%000001ce"), - Attrs([Attr("address","0x674"), Attr("insn","adrp x0, #65536")]), - Var("R0",Imm(64)), Int(65536,64)), Def(Tid(469, "%000001d5"), - Attrs([Attr("address","0x678"), Attr("insn","ldr x0, [x0, #0xfc8]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(4040,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(475, "%000001db"), Attrs([Attr("address","0x67C"), -Attr("insn","cbz x0, #0x8")]), EQ(Var("R0",Imm(64)),Int(0,64)), -Direct(Tid(473, "%000001d9"))), Goto(Tid(1_343, "%0000053f"), Attrs([]), - Int(1,1), Direct(Tid(860, "%0000035c")))])), Blk(Tid(473, "%000001d9"), - Attrs([Attr("address","0x684")]), Phis([]), Defs([]), -Jmps([Call(Tid(481, "%000001e1"), Attrs([Attr("address","0x684"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))])), -Blk(Tid(860, "%0000035c"), Attrs([Attr("address","0x680")]), Phis([]), -Defs([]), Jmps([Goto(Tid(863, "%0000035f"), Attrs([Attr("address","0x680"), -Attr("insn","b #-0x90")]), Int(1,1), Direct(Tid(861, "@__gmon_start__")))])), -Blk(Tid(861, "@__gmon_start__"), Attrs([Attr("address","0x5F0")]), Phis([]), -Defs([Def(Tid(1_066, "%0000042a"), Attrs([Attr("address","0x5F0"), -Attr("insn","adrp x16, #69632")]), Var("R16",Imm(64)), Int(69632,64)), -Def(Tid(1_073, "%00000431"), Attrs([Attr("address","0x5F4"), -Attr("insn","ldr x17, [x16, #0x10]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(16,64)),LittleEndian(),64)), -Def(Tid(1_079, "%00000437"), Attrs([Attr("address","0x5F8"), -Attr("insn","add x16, x16, #0x10")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(16,64)))]), Jmps([Call(Tid(1_084, "%0000043c"), - Attrs([Attr("address","0x5FC"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), -Sub(Tid(1_312, "@deregister_tm_clones"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x690")]), - "deregister_tm_clones", Args([Arg(Tid(1_360, "%00000550"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("deregister_tm_clones_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(487, "@deregister_tm_clones"), - Attrs([Attr("address","0x690")]), Phis([]), Defs([Def(Tid(490, "%000001ea"), - Attrs([Attr("address","0x690"), Attr("insn","adrp x0, #69632")]), - Var("R0",Imm(64)), Int(69632,64)), Def(Tid(496, "%000001f0"), - Attrs([Attr("address","0x694"), Attr("insn","add x0, x0, #0x30")]), - Var("R0",Imm(64)), PLUS(Var("R0",Imm(64)),Int(48,64))), -Def(Tid(501, "%000001f5"), Attrs([Attr("address","0x698"), -Attr("insn","adrp x1, #69632")]), Var("R1",Imm(64)), Int(69632,64)), -Def(Tid(507, "%000001fb"), Attrs([Attr("address","0x69C"), -Attr("insn","add x1, x1, #0x30")]), Var("R1",Imm(64)), -PLUS(Var("R1",Imm(64)),Int(48,64))), Def(Tid(513, "%00000201"), - Attrs([Attr("address","0x6A0"), Attr("insn","cmp x1, x0")]), - Var("#1",Imm(64)), NOT(Var("R0",Imm(64)))), Def(Tid(518, "%00000206"), - Attrs([Attr("address","0x6A0"), Attr("insn","cmp x1, x0")]), - Var("#2",Imm(64)), PLUS(Var("R1",Imm(64)),NOT(Var("R0",Imm(64))))), -Def(Tid(524, "%0000020c"), Attrs([Attr("address","0x6A0"), -Attr("insn","cmp x1, x0")]), Var("VF",Imm(1)), -NEQ(SIGNED(65,PLUS(Var("#2",Imm(64)),Int(1,64))),PLUS(PLUS(SIGNED(65,Var("R1",Imm(64))),SIGNED(65,Var("#1",Imm(64)))),Int(1,65)))), -Def(Tid(530, "%00000212"), Attrs([Attr("address","0x6A0"), -Attr("insn","cmp x1, x0")]), Var("CF",Imm(1)), -NEQ(UNSIGNED(65,PLUS(Var("#2",Imm(64)),Int(1,64))),PLUS(PLUS(UNSIGNED(65,Var("R1",Imm(64))),UNSIGNED(65,Var("#1",Imm(64)))),Int(1,65)))), -Def(Tid(534, "%00000216"), Attrs([Attr("address","0x6A0"), -Attr("insn","cmp x1, x0")]), Var("ZF",Imm(1)), -EQ(PLUS(Var("#2",Imm(64)),Int(1,64)),Int(0,64))), Def(Tid(538, "%0000021a"), - Attrs([Attr("address","0x6A0"), Attr("insn","cmp x1, x0")]), - Var("NF",Imm(1)), Extract(63,63,PLUS(Var("#2",Imm(64)),Int(1,64))))]), -Jmps([Goto(Tid(544, "%00000220"), Attrs([Attr("address","0x6A4"), -Attr("insn","b.eq #0x18")]), EQ(Var("ZF",Imm(1)),Int(1,1)), -Direct(Tid(542, "%0000021e"))), Goto(Tid(1_344, "%00000540"), Attrs([]), - Int(1,1), Direct(Tid(830, "%0000033e")))])), Blk(Tid(830, "%0000033e"), - Attrs([Attr("address","0x6A8")]), Phis([]), Defs([Def(Tid(833, "%00000341"), - Attrs([Attr("address","0x6A8"), Attr("insn","adrp x1, #65536")]), - Var("R1",Imm(64)), Int(65536,64)), Def(Tid(840, "%00000348"), - Attrs([Attr("address","0x6AC"), Attr("insn","ldr x1, [x1, #0xfb8]")]), - Var("R1",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R1",Imm(64)),Int(4024,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(845, "%0000034d"), Attrs([Attr("address","0x6B0"), -Attr("insn","cbz x1, #0xc")]), EQ(Var("R1",Imm(64)),Int(0,64)), -Direct(Tid(542, "%0000021e"))), Goto(Tid(1_345, "%00000541"), Attrs([]), - Int(1,1), Direct(Tid(849, "%00000351")))])), Blk(Tid(542, "%0000021e"), - Attrs([Attr("address","0x6BC")]), Phis([]), Defs([]), -Jmps([Call(Tid(550, "%00000226"), Attrs([Attr("address","0x6BC"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))])), -Blk(Tid(849, "%00000351"), Attrs([Attr("address","0x6B4")]), Phis([]), -Defs([Def(Tid(853, "%00000355"), Attrs([Attr("address","0x6B4"), -Attr("insn","mov x16, x1")]), Var("R16",Imm(64)), Var("R1",Imm(64)))]), -Jmps([Call(Tid(858, "%0000035a"), Attrs([Attr("address","0x6B8"), -Attr("insn","br x16")]), Int(1,1), (Indirect(Var("R16",Imm(64))),))]))])), -Sub(Tid(1_315, "@frame_dummy"), Attrs([Attr("c.proto","signed (*)(void)"), -Attr("address","0x750")]), "frame_dummy", Args([Arg(Tid(1_361, "%00000551"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("frame_dummy_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(702, "@frame_dummy"), - Attrs([Attr("address","0x750")]), Phis([]), Defs([]), -Jmps([Call(Tid(704, "%000002c0"), Attrs([Attr("address","0x750"), -Attr("insn","b #-0x90")]), Int(1,1), -(Direct(Tid(1_317, "@register_tm_clones")),))]))])), Sub(Tid(1_316, "@main"), - Attrs([Attr("c.proto","signed (*)(signed argc, const char** argv)"), -Attr("address","0x754")]), "main", Args([Arg(Tid(1_362, "%00000552"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("main_argc",Imm(32)), -LOW(32,Var("R0",Imm(64))), In()), Arg(Tid(1_363, "%00000553"), - Attrs([Attr("c.layout","**[char : 8]"), Attr("c.data","Top:u8 ptr ptr"), -Attr("c.type"," const char**")]), Var("main_argv",Imm(64)), -Var("R1",Imm(64)), Both()), Arg(Tid(1_364, "%00000554"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("main_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(706, "@main"), - Attrs([Attr("address","0x754")]), Phis([]), Defs([Def(Tid(709, "%000002c5"), - Attrs([Attr("address","0x754"), Attr("insn","adrp x9, #65536")]), - Var("R9",Imm(64)), Int(65536,64)), Def(Tid(716, "%000002cc"), - Attrs([Attr("address","0x758"), Attr("insn","ldr x9, [x9, #0xfd0]")]), - Var("R9",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R9",Imm(64)),Int(4048,64)),LittleEndian(),64)), -Def(Tid(721, "%000002d1"), Attrs([Attr("address","0x75C"), -Attr("insn","mov w8, #0x1")]), Var("R8",Imm(64)), Int(1,64)), -Def(Tid(729, "%000002d9"), Attrs([Attr("address","0x760"), -Attr("insn","str w8, [x9]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("R9",Imm(64)),Extract(31,0,Var("R8",Imm(64))),LittleEndian(),32)), -Def(Tid(734, "%000002de"), Attrs([Attr("address","0x764"), -Attr("insn","mov w0, wzr")]), Var("R0",Imm(64)), Int(0,64))]), -Jmps([Call(Tid(739, "%000002e3"), Attrs([Attr("address","0x768"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))]))])), -Sub(Tid(1_317, "@register_tm_clones"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x6C0")]), - "register_tm_clones", Args([Arg(Tid(1_365, "%00000555"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("register_tm_clones_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(552, "@register_tm_clones"), Attrs([Attr("address","0x6C0")]), - Phis([]), Defs([Def(Tid(555, "%0000022b"), Attrs([Attr("address","0x6C0"), -Attr("insn","adrp x0, #69632")]), Var("R0",Imm(64)), Int(69632,64)), -Def(Tid(561, "%00000231"), Attrs([Attr("address","0x6C4"), -Attr("insn","add x0, x0, #0x30")]), Var("R0",Imm(64)), -PLUS(Var("R0",Imm(64)),Int(48,64))), Def(Tid(566, "%00000236"), - Attrs([Attr("address","0x6C8"), Attr("insn","adrp x1, #69632")]), - Var("R1",Imm(64)), Int(69632,64)), Def(Tid(572, "%0000023c"), - Attrs([Attr("address","0x6CC"), Attr("insn","add x1, x1, #0x30")]), - Var("R1",Imm(64)), PLUS(Var("R1",Imm(64)),Int(48,64))), -Def(Tid(579, "%00000243"), Attrs([Attr("address","0x6D0"), -Attr("insn","sub x1, x1, x0")]), Var("R1",Imm(64)), -PLUS(PLUS(Var("R1",Imm(64)),NOT(Var("R0",Imm(64)))),Int(1,64))), -Def(Tid(585, "%00000249"), Attrs([Attr("address","0x6D4"), -Attr("insn","lsr x2, x1, #63")]), Var("R2",Imm(64)), -Concat(Int(0,63),Extract(63,63,Var("R1",Imm(64))))), -Def(Tid(592, "%00000250"), Attrs([Attr("address","0x6D8"), -Attr("insn","add x1, x2, x1, asr #3")]), Var("R1",Imm(64)), -PLUS(Var("R2",Imm(64)),ARSHIFT(Var("R1",Imm(64)),Int(3,3)))), -Def(Tid(598, "%00000256"), Attrs([Attr("address","0x6DC"), -Attr("insn","asr x1, x1, #1")]), Var("R1",Imm(64)), -SIGNED(64,Extract(63,1,Var("R1",Imm(64)))))]), -Jmps([Goto(Tid(604, "%0000025c"), Attrs([Attr("address","0x6E0"), -Attr("insn","cbz x1, #0x18")]), EQ(Var("R1",Imm(64)),Int(0,64)), -Direct(Tid(602, "%0000025a"))), Goto(Tid(1_346, "%00000542"), Attrs([]), - Int(1,1), Direct(Tid(800, "%00000320")))])), Blk(Tid(800, "%00000320"), - Attrs([Attr("address","0x6E4")]), Phis([]), Defs([Def(Tid(803, "%00000323"), - Attrs([Attr("address","0x6E4"), Attr("insn","adrp x2, #65536")]), - Var("R2",Imm(64)), Int(65536,64)), Def(Tid(810, "%0000032a"), - Attrs([Attr("address","0x6E8"), Attr("insn","ldr x2, [x2, #0xfe0]")]), - Var("R2",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R2",Imm(64)),Int(4064,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(815, "%0000032f"), Attrs([Attr("address","0x6EC"), -Attr("insn","cbz x2, #0xc")]), EQ(Var("R2",Imm(64)),Int(0,64)), -Direct(Tid(602, "%0000025a"))), Goto(Tid(1_347, "%00000543"), Attrs([]), - Int(1,1), Direct(Tid(819, "%00000333")))])), Blk(Tid(602, "%0000025a"), - Attrs([Attr("address","0x6F8")]), Phis([]), Defs([]), -Jmps([Call(Tid(610, "%00000262"), Attrs([Attr("address","0x6F8"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))])), -Blk(Tid(819, "%00000333"), Attrs([Attr("address","0x6F0")]), Phis([]), -Defs([Def(Tid(823, "%00000337"), Attrs([Attr("address","0x6F0"), -Attr("insn","mov x16, x2")]), Var("R16",Imm(64)), Var("R2",Imm(64)))]), -Jmps([Call(Tid(828, "%0000033c"), Attrs([Attr("address","0x6F4"), -Attr("insn","br x16")]), Int(1,1), -(Indirect(Var("R16",Imm(64))),))]))]))]))) \ No newline at end of file diff --git a/src/test/correct/no_interference_update_y/clang_pic/no_interference_update_y.bir b/src/test/correct/no_interference_update_y/clang_pic/no_interference_update_y.bir deleted file mode 100644 index 9830182dd..000000000 --- a/src/test/correct/no_interference_update_y/clang_pic/no_interference_update_y.bir +++ /dev/null @@ -1,228 +0,0 @@ -00000544: program -00000512: sub __cxa_finalize(__cxa_finalize_result) -00000545: __cxa_finalize_result :: out u32 = low:32[R0] - -0000031c: -00000414: R16 := 0x11000 -0000041b: R17 := mem[R16 + 8, el]:u64 -00000421: R16 := R16 + 8 -00000426: call R17 with noreturn - -00000513: sub __do_global_dtors_aux(__do_global_dtors_aux_result) -00000546: __do_global_dtors_aux_result :: out u32 = low:32[R0] - -00000266: -0000026a: #3 := R31 - 0x20 -00000270: mem := mem with [#3, el]:u64 <- R29 -00000276: mem := mem with [#3 + 8, el]:u64 <- R30 -0000027a: R31 := #3 -00000280: R29 := R31 -00000288: mem := mem with [R31 + 0x10, el]:u64 <- R19 -0000028d: R19 := 0x11000 -00000294: R0 := pad:64[mem[R19 + 0x30]] -0000029b: when 31:0[R0] <> 0 goto %00000299 -0000053a: goto %000002e5 - -000002e5: -000002e8: R0 := 0x10000 -000002ef: R0 := mem[R0 + 0xFC0, el]:u64 -000002f5: when R0 = 0 goto %000002f3 -0000053b: goto %0000030c - -0000030c: -0000030f: R0 := 0x11000 -00000316: R0 := mem[R0 + 0x28, el]:u64 -0000031b: R30 := 0x730 -0000031e: call @__cxa_finalize with return %000002f3 - -000002f3: -000002fb: R30 := 0x734 -000002fd: call @deregister_tm_clones with return %000002ff - -000002ff: -00000302: R0 := 1 -0000030a: mem := mem with [R19 + 0x30] <- 7:0[R0] -0000053c: goto %00000299 - -00000299: -000002a3: R19 := mem[R31 + 0x10, el]:u64 -000002aa: R29 := mem[R31, el]:u64 -000002af: R30 := mem[R31 + 8, el]:u64 -000002b3: R31 := R31 + 0x20 -000002b8: call R30 with noreturn - -00000517: sub __libc_start_main(__libc_start_main_main, __libc_start_main_arg2, __libc_start_main_arg3, __libc_start_main_auxv, __libc_start_main_result) -00000547: __libc_start_main_main :: in u64 = R0 -00000548: __libc_start_main_arg2 :: in u32 = low:32[R1] -00000549: __libc_start_main_arg3 :: in out u64 = R2 -0000054a: __libc_start_main_auxv :: in out u64 = R3 -0000054b: __libc_start_main_result :: out u32 = low:32[R0] - -000001bf: -000003fe: R16 := 0x11000 -00000405: R17 := mem[R16, el]:u64 -0000040b: R16 := R16 -00000410: call R17 with noreturn - -00000518: sub _fini(_fini_result) -0000054c: _fini_result :: out u32 = low:32[R0] - -0000001f: -00000025: #0 := R31 - 0x10 -0000002b: mem := mem with [#0, el]:u64 <- R29 -00000031: mem := mem with [#0 + 8, el]:u64 <- R30 -00000035: R31 := #0 -0000003b: R29 := R31 -00000042: R29 := mem[R31, el]:u64 -00000047: R30 := mem[R31 + 8, el]:u64 -0000004b: R31 := R31 + 0x10 -00000050: call R30 with noreturn - -00000519: sub _init(_init_result) -0000054d: _init_result :: out u32 = low:32[R0] - -0000046e: -00000474: #5 := R31 - 0x10 -0000047a: mem := mem with [#5, el]:u64 <- R29 -00000480: mem := mem with [#5 + 8, el]:u64 <- R30 -00000484: R31 := #5 -0000048a: R29 := R31 -0000048f: R30 := 0x5A8 -00000491: call @call_weak_fn with return %00000493 - -00000493: -00000498: R29 := mem[R31, el]:u64 -0000049d: R30 := mem[R31 + 8, el]:u64 -000004a1: R31 := R31 + 0x10 -000004a6: call R30 with noreturn - -0000051a: sub _start(_start_result) -0000054e: _start_result :: out u32 = low:32[R0] - -00000180: -00000185: R29 := 0 -0000018a: R30 := 0 -00000190: R5 := R0 -00000197: R1 := mem[R31, el]:u64 -0000019d: R2 := R31 + 8 -000001a3: R6 := R31 -000001a8: R0 := 0x10000 -000001af: R0 := mem[R0 + 0xFD8, el]:u64 -000001b4: R3 := 0 -000001b9: R4 := 0 -000001be: R30 := 0x670 -000001c1: call @__libc_start_main with return %000001c3 - -000001c3: -000001c6: R30 := 0x674 -000001c9: call @abort with return %0000053d - -0000053d: -0000053e: call @call_weak_fn with noreturn - -0000051d: sub abort() - - -000001c7: -00000440: R16 := 0x11000 -00000447: R17 := mem[R16 + 0x18, el]:u64 -0000044d: R16 := R16 + 0x18 -00000452: call R17 with noreturn - -0000051e: sub call_weak_fn(call_weak_fn_result) -0000054f: call_weak_fn_result :: out u32 = low:32[R0] - -000001cb: -000001ce: R0 := 0x10000 -000001d5: R0 := mem[R0 + 0xFC8, el]:u64 -000001db: when R0 = 0 goto %000001d9 -0000053f: goto %0000035c - -000001d9: -000001e1: call R30 with noreturn - -0000035c: -0000035f: goto @__gmon_start__ - -0000035d: -0000042a: R16 := 0x11000 -00000431: R17 := mem[R16 + 0x10, el]:u64 -00000437: R16 := R16 + 0x10 -0000043c: call R17 with noreturn - -00000520: sub deregister_tm_clones(deregister_tm_clones_result) -00000550: deregister_tm_clones_result :: out u32 = low:32[R0] - -000001e7: -000001ea: R0 := 0x11000 -000001f0: R0 := R0 + 0x30 -000001f5: R1 := 0x11000 -000001fb: R1 := R1 + 0x30 -00000201: #1 := ~R0 -00000206: #2 := R1 + ~R0 -0000020c: VF := extend:65[#2 + 1] <> extend:65[R1] + extend:65[#1] + 1 -00000212: CF := pad:65[#2 + 1] <> pad:65[R1] + pad:65[#1] + 1 -00000216: ZF := #2 + 1 = 0 -0000021a: NF := 63:63[#2 + 1] -00000220: when ZF goto %0000021e -00000540: goto %0000033e - -0000033e: -00000341: R1 := 0x10000 -00000348: R1 := mem[R1 + 0xFB8, el]:u64 -0000034d: when R1 = 0 goto %0000021e -00000541: goto %00000351 - -0000021e: -00000226: call R30 with noreturn - -00000351: -00000355: R16 := R1 -0000035a: call R16 with noreturn - -00000523: sub frame_dummy(frame_dummy_result) -00000551: frame_dummy_result :: out u32 = low:32[R0] - -000002be: -000002c0: call @register_tm_clones with noreturn - -00000524: sub main(main_argc, main_argv, main_result) -00000552: main_argc :: in u32 = low:32[R0] -00000553: main_argv :: in out u64 = R1 -00000554: main_result :: out u32 = low:32[R0] - -000002c2: -000002c5: R9 := 0x10000 -000002cc: R9 := mem[R9 + 0xFD0, el]:u64 -000002d1: R8 := 1 -000002d9: mem := mem with [R9, el]:u32 <- 31:0[R8] -000002de: R0 := 0 -000002e3: call R30 with noreturn - -00000525: sub register_tm_clones(register_tm_clones_result) -00000555: register_tm_clones_result :: out u32 = low:32[R0] - -00000228: -0000022b: R0 := 0x11000 -00000231: R0 := R0 + 0x30 -00000236: R1 := 0x11000 -0000023c: R1 := R1 + 0x30 -00000243: R1 := R1 + ~R0 + 1 -00000249: R2 := 0.63:63[R1] -00000250: R1 := R2 + (R1 ~>> 3) -00000256: R1 := extend:64[63:1[R1]] -0000025c: when R1 = 0 goto %0000025a -00000542: goto %00000320 - -00000320: -00000323: R2 := 0x10000 -0000032a: R2 := mem[R2 + 0xFE0, el]:u64 -0000032f: when R2 = 0 goto %0000025a -00000543: goto %00000333 - -0000025a: -00000262: call R30 with noreturn - -00000333: -00000337: R16 := R2 -0000033c: call R16 with noreturn diff --git a/src/test/correct/no_interference_update_y/clang_pic/no_interference_update_y.expected b/src/test/correct/no_interference_update_y/clang_pic/no_interference_update_y.expected index 4a96f8cc9..162022290 100644 --- a/src/test/correct/no_interference_update_y/clang_pic/no_interference_update_y.expected +++ b/src/test/correct/no_interference_update_y/clang_pic/no_interference_update_y.expected @@ -7,9 +7,9 @@ var {:extern} R8: bv64; var {:extern} R9: bv64; var {:extern} mem: [bv64]bv8; const {:extern} $x_addr: bv64; -axiom ($x_addr == 69688bv64); +axiom ($x_addr == 131096bv64); const {:extern} $y_addr: bv64; -axiom ($y_addr == 69684bv64); +axiom ($y_addr == 131092bv64); function {:extern} L(mem$in: [bv64]bv8, index: bv64) returns (bool) { (if (index == $y_addr) then true else (if (index == $x_addr) then true else false)) } @@ -39,12 +39,12 @@ procedure {:extern} rely(); modifies Gamma_mem, mem; ensures (forall i: bv64 :: (((mem[i] == old(mem[i])) ==> (Gamma_mem[i] == old(Gamma_mem[i]))))); ensures (memory_load32_le(mem, $y_addr) == old(memory_load32_le(mem, $y_addr))); - free ensures (memory_load32_le(mem, 1920bv64) == 131073bv32); - free ensures (memory_load64_le(mem, 69056bv64) == 1872bv64); - free ensures (memory_load64_le(mem, 69064bv64) == 1792bv64); - free ensures (memory_load64_le(mem, 69584bv64) == 69684bv64); - free ensures (memory_load64_le(mem, 69592bv64) == 1876bv64); - free ensures (memory_load64_le(mem, 69672bv64) == 69672bv64); + free ensures (memory_load32_le(mem, 2304bv64) == 131073bv32); + free ensures (memory_load64_le(mem, 130432bv64) == 2256bv64); + free ensures (memory_load64_le(mem, 130440bv64) == 2176bv64); + free ensures (memory_load64_le(mem, 131048bv64) == 131092bv64); + free ensures (memory_load64_le(mem, 131056bv64) == 2260bv64); + free ensures (memory_load64_le(mem, 131080bv64) == 131080bv64); procedure {:extern} rely_transitive(); modifies Gamma_mem, mem; @@ -71,46 +71,46 @@ implementation {:extern} guarantee_reflexive() assert (memory_load32_le(mem, $x_addr) == memory_load32_le(mem, $x_addr)); } -procedure main_1876(); +procedure main(); modifies Gamma_R0, Gamma_R8, Gamma_R9, Gamma_mem, R0, R8, R9, mem; - free requires (memory_load64_le(mem, 69664bv64) == 0bv64); - free requires (memory_load64_le(mem, 69672bv64) == 69672bv64); - free requires (memory_load32_le(mem, 1920bv64) == 131073bv32); - free requires (memory_load64_le(mem, 69056bv64) == 1872bv64); - free requires (memory_load64_le(mem, 69064bv64) == 1792bv64); - free requires (memory_load64_le(mem, 69584bv64) == 69684bv64); - free requires (memory_load64_le(mem, 69592bv64) == 1876bv64); - free requires (memory_load64_le(mem, 69672bv64) == 69672bv64); + free requires (memory_load64_le(mem, 131072bv64) == 0bv64); + free requires (memory_load64_le(mem, 131080bv64) == 131080bv64); + free requires (memory_load32_le(mem, 2304bv64) == 131073bv32); + free requires (memory_load64_le(mem, 130432bv64) == 2256bv64); + free requires (memory_load64_le(mem, 130440bv64) == 2176bv64); + free requires (memory_load64_le(mem, 131048bv64) == 131092bv64); + free requires (memory_load64_le(mem, 131056bv64) == 2260bv64); + free requires (memory_load64_le(mem, 131080bv64) == 131080bv64); ensures (memory_load32_le(mem, $y_addr) == 1bv32); - free ensures (memory_load32_le(mem, 1920bv64) == 131073bv32); - free ensures (memory_load64_le(mem, 69056bv64) == 1872bv64); - free ensures (memory_load64_le(mem, 69064bv64) == 1792bv64); - free ensures (memory_load64_le(mem, 69584bv64) == 69684bv64); - free ensures (memory_load64_le(mem, 69592bv64) == 1876bv64); - free ensures (memory_load64_le(mem, 69672bv64) == 69672bv64); + free ensures (memory_load32_le(mem, 2304bv64) == 131073bv32); + free ensures (memory_load64_le(mem, 130432bv64) == 2256bv64); + free ensures (memory_load64_le(mem, 130440bv64) == 2176bv64); + free ensures (memory_load64_le(mem, 131048bv64) == 131092bv64); + free ensures (memory_load64_le(mem, 131056bv64) == 2260bv64); + free ensures (memory_load64_le(mem, 131080bv64) == 131080bv64); -implementation main_1876() +implementation main() { - var Gamma_load18: bool; - var load18: bv64; + var $load$18: bv64; + var Gamma_$load$18: bool; var x_old: bv32; lmain: assume {:captureState "lmain"} true; - R9, Gamma_R9 := 65536bv64, true; + R8, Gamma_R8 := 126976bv64, true; + R9, Gamma_R9 := 1bv64, true; + R0, Gamma_R0 := 0bv64, true; call rely(); - load18, Gamma_load18 := memory_load64_le(mem, bvadd64(R9, 4048bv64)), (gamma_load64(Gamma_mem, bvadd64(R9, 4048bv64)) || L(mem, bvadd64(R9, 4048bv64))); - R9, Gamma_R9 := load18, Gamma_load18; - R8, Gamma_R8 := 1bv64, true; + $load$18, Gamma_$load$18 := memory_load64_le(mem, bvadd64(R8, 4072bv64)), (gamma_load64(Gamma_mem, bvadd64(R8, 4072bv64)) || L(mem, bvadd64(R8, 4072bv64))); + R8, Gamma_R8 := $load$18, Gamma_$load$18; call rely(); + assert (L(mem, R8) ==> Gamma_R9); x_old := memory_load32_le(mem, $x_addr); - assert (L(mem, R9) ==> Gamma_R8); - mem, Gamma_mem := memory_store32_le(mem, R9, R8[32:0]), gamma_store32(Gamma_mem, R9, Gamma_R8); + mem, Gamma_mem := memory_store32_le(mem, R8, R9[32:0]), gamma_store32(Gamma_mem, R8, Gamma_R9); assert (memory_load32_le(mem, $x_addr) == x_old); - assume {:captureState "%000002d9"} true; - R0, Gamma_R0 := 0bv64, true; - goto main_1876_basil_return; - main_1876_basil_return: - assume {:captureState "main_1876_basil_return"} true; + assume {:captureState "%0000028c"} true; + goto main_basil_return; + main_basil_return: + assume {:captureState "main_basil_return"} true; return; } diff --git a/src/test/correct/no_interference_update_y/clang_pic/no_interference_update_y.gts b/src/test/correct/no_interference_update_y/clang_pic/no_interference_update_y.gts deleted file mode 100644 index 024104af3..000000000 Binary files a/src/test/correct/no_interference_update_y/clang_pic/no_interference_update_y.gts and /dev/null differ diff --git a/src/test/correct/no_interference_update_y/clang_pic/no_interference_update_y.md5sum b/src/test/correct/no_interference_update_y/clang_pic/no_interference_update_y.md5sum new file mode 100644 index 000000000..d9f5b2b02 --- /dev/null +++ b/src/test/correct/no_interference_update_y/clang_pic/no_interference_update_y.md5sum @@ -0,0 +1,5 @@ +f1e6a7d4d89b9aff403f45b916a34667 correct/no_interference_update_y/clang_pic/a.out +15b43865e2343d78b4b979af468607b2 correct/no_interference_update_y/clang_pic/no_interference_update_y.adt +7bb6589fcbf99947ae7937e9f2f4a140 correct/no_interference_update_y/clang_pic/no_interference_update_y.bir +f2c120a81411c191b9d85f0d479d9b90 correct/no_interference_update_y/clang_pic/no_interference_update_y.relf +5f75327d7dd3d64f0fdaf03d497cbd77 correct/no_interference_update_y/clang_pic/no_interference_update_y.gts diff --git a/src/test/correct/no_interference_update_y/clang_pic/no_interference_update_y.relf b/src/test/correct/no_interference_update_y/clang_pic/no_interference_update_y.relf deleted file mode 100644 index 8c2901ff0..000000000 --- a/src/test/correct/no_interference_update_y/clang_pic/no_interference_update_y.relf +++ /dev/null @@ -1,125 +0,0 @@ - -Relocation section '.rela.dyn' at offset 0x460 contains 9 entries: - Offset Info Type Symbol's Value Symbol's Name + Addend -0000000000010dc0 0000000000000403 R_AARCH64_RELATIVE 750 -0000000000010dc8 0000000000000403 R_AARCH64_RELATIVE 700 -0000000000010fd0 0000000000000403 R_AARCH64_RELATIVE 11034 -0000000000010fd8 0000000000000403 R_AARCH64_RELATIVE 754 -0000000000011028 0000000000000403 R_AARCH64_RELATIVE 11028 -0000000000010fb8 0000000400000401 R_AARCH64_GLOB_DAT 0000000000000000 _ITM_deregisterTMCloneTable + 0 -0000000000010fc0 0000000500000401 R_AARCH64_GLOB_DAT 0000000000000000 __cxa_finalize@GLIBC_2.17 + 0 -0000000000010fc8 0000000600000401 R_AARCH64_GLOB_DAT 0000000000000000 __gmon_start__ + 0 -0000000000010fe0 0000000800000401 R_AARCH64_GLOB_DAT 0000000000000000 _ITM_registerTMCloneTable + 0 - -Relocation section '.rela.plt' at offset 0x538 contains 4 entries: - Offset Info Type Symbol's Value Symbol's Name + Addend -0000000000011000 0000000300000402 R_AARCH64_JUMP_SLOT 0000000000000000 __libc_start_main@GLIBC_2.34 + 0 -0000000000011008 0000000500000402 R_AARCH64_JUMP_SLOT 0000000000000000 __cxa_finalize@GLIBC_2.17 + 0 -0000000000011010 0000000600000402 R_AARCH64_JUMP_SLOT 0000000000000000 __gmon_start__ + 0 -0000000000011018 0000000700000402 R_AARCH64_JUMP_SLOT 0000000000000000 abort@GLIBC_2.17 + 0 - -Symbol table '.dynsym' contains 9 entries: - Num: Value Size Type Bind Vis Ndx Name - 0: 0000000000000000 0 NOTYPE LOCAL DEFAULT UND - 1: 0000000000000598 0 SECTION LOCAL DEFAULT 11 .init - 2: 0000000000011020 0 SECTION LOCAL DEFAULT 23 .data - 3: 0000000000000000 0 FUNC GLOBAL DEFAULT UND __libc_start_main@GLIBC_2.34 (2) - 4: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_deregisterTMCloneTable - 5: 0000000000000000 0 FUNC WEAK DEFAULT UND __cxa_finalize@GLIBC_2.17 (3) - 6: 0000000000000000 0 NOTYPE WEAK DEFAULT UND __gmon_start__ - 7: 0000000000000000 0 FUNC GLOBAL DEFAULT UND abort@GLIBC_2.17 (3) - 8: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_registerTMCloneTable - -Symbol table '.symtab' contains 91 entries: - Num: Value Size Type Bind Vis Ndx Name - 0: 0000000000000000 0 NOTYPE LOCAL DEFAULT UND - 1: 0000000000000238 0 SECTION LOCAL DEFAULT 1 .interp - 2: 0000000000000254 0 SECTION LOCAL DEFAULT 2 .note.gnu.build-id - 3: 0000000000000278 0 SECTION LOCAL DEFAULT 3 .note.ABI-tag - 4: 0000000000000298 0 SECTION LOCAL DEFAULT 4 .gnu.hash - 5: 00000000000002b8 0 SECTION LOCAL DEFAULT 5 .dynsym - 6: 0000000000000390 0 SECTION LOCAL DEFAULT 6 .dynstr - 7: 000000000000041e 0 SECTION LOCAL DEFAULT 7 .gnu.version - 8: 0000000000000430 0 SECTION LOCAL DEFAULT 8 .gnu.version_r - 9: 0000000000000460 0 SECTION LOCAL DEFAULT 9 .rela.dyn - 10: 0000000000000538 0 SECTION LOCAL DEFAULT 10 .rela.plt - 11: 0000000000000598 0 SECTION LOCAL DEFAULT 11 .init - 12: 00000000000005b0 0 SECTION LOCAL DEFAULT 12 .plt - 13: 0000000000000640 0 SECTION LOCAL DEFAULT 13 .text - 14: 000000000000076c 0 SECTION LOCAL DEFAULT 14 .fini - 15: 0000000000000780 0 SECTION LOCAL DEFAULT 15 .rodata - 16: 0000000000000784 0 SECTION LOCAL DEFAULT 16 .eh_frame_hdr - 17: 00000000000007c0 0 SECTION LOCAL DEFAULT 17 .eh_frame - 18: 0000000000010dc0 0 SECTION LOCAL DEFAULT 18 .init_array - 19: 0000000000010dc8 0 SECTION LOCAL DEFAULT 19 .fini_array - 20: 0000000000010dd0 0 SECTION LOCAL DEFAULT 20 .dynamic - 21: 0000000000010fb0 0 SECTION LOCAL DEFAULT 21 .got - 22: 0000000000010fe8 0 SECTION LOCAL DEFAULT 22 .got.plt - 23: 0000000000011020 0 SECTION LOCAL DEFAULT 23 .data - 24: 0000000000011030 0 SECTION LOCAL DEFAULT 24 .bss - 25: 0000000000000000 0 SECTION LOCAL DEFAULT 25 .comment - 26: 0000000000000000 0 FILE LOCAL DEFAULT ABS Scrt1.o - 27: 0000000000000278 0 NOTYPE LOCAL DEFAULT 3 $d - 28: 0000000000000278 32 OBJECT LOCAL DEFAULT 3 __abi_tag - 29: 0000000000000640 0 NOTYPE LOCAL DEFAULT 13 $x - 30: 00000000000007d4 0 NOTYPE LOCAL DEFAULT 17 $d - 31: 0000000000000780 0 NOTYPE LOCAL DEFAULT 15 $d - 32: 0000000000000000 0 FILE LOCAL DEFAULT ABS crti.o - 33: 0000000000000674 0 NOTYPE LOCAL DEFAULT 13 $x - 34: 0000000000000674 20 FUNC LOCAL DEFAULT 13 call_weak_fn - 35: 0000000000000598 0 NOTYPE LOCAL DEFAULT 11 $x - 36: 000000000000076c 0 NOTYPE LOCAL DEFAULT 14 $x - 37: 0000000000000000 0 FILE LOCAL DEFAULT ABS crtn.o - 38: 00000000000005a8 0 NOTYPE LOCAL DEFAULT 11 $x - 39: 0000000000000778 0 NOTYPE LOCAL DEFAULT 14 $x - 40: 0000000000000000 0 FILE LOCAL DEFAULT ABS crtstuff.c - 41: 0000000000000690 0 NOTYPE LOCAL DEFAULT 13 $x - 42: 0000000000000690 0 FUNC LOCAL DEFAULT 13 deregister_tm_clones - 43: 00000000000006c0 0 FUNC LOCAL DEFAULT 13 register_tm_clones - 44: 0000000000011028 0 NOTYPE LOCAL DEFAULT 23 $d - 45: 0000000000000700 0 FUNC LOCAL DEFAULT 13 __do_global_dtors_aux - 46: 0000000000011030 1 OBJECT LOCAL DEFAULT 24 completed.0 - 47: 0000000000010dc8 0 NOTYPE LOCAL DEFAULT 19 $d - 48: 0000000000010dc8 0 OBJECT LOCAL DEFAULT 19 __do_global_dtors_aux_fini_array_entry - 49: 0000000000000750 0 FUNC LOCAL DEFAULT 13 frame_dummy - 50: 0000000000010dc0 0 NOTYPE LOCAL DEFAULT 18 $d - 51: 0000000000010dc0 0 OBJECT LOCAL DEFAULT 18 __frame_dummy_init_array_entry - 52: 00000000000007e8 0 NOTYPE LOCAL DEFAULT 17 $d - 53: 0000000000011030 0 NOTYPE LOCAL DEFAULT 24 $d - 54: 0000000000000000 0 FILE LOCAL DEFAULT ABS no_interference_update_y.c - 55: 0000000000000754 0 NOTYPE LOCAL DEFAULT 13 $x.0 - 56: 0000000000011034 0 NOTYPE LOCAL DEFAULT 24 $d.1 - 57: 000000000000002a 0 NOTYPE LOCAL DEFAULT 25 $d.2 - 58: 0000000000000848 0 NOTYPE LOCAL DEFAULT 17 $d.3 - 59: 0000000000000000 0 FILE LOCAL DEFAULT ABS crtstuff.c - 60: 0000000000000870 0 NOTYPE LOCAL DEFAULT 17 $d - 61: 0000000000000870 0 OBJECT LOCAL DEFAULT 17 __FRAME_END__ - 62: 0000000000000000 0 FILE LOCAL DEFAULT ABS - 63: 0000000000010dd0 0 OBJECT LOCAL DEFAULT ABS _DYNAMIC - 64: 0000000000000784 0 NOTYPE LOCAL DEFAULT 16 __GNU_EH_FRAME_HDR - 65: 0000000000010fb0 0 OBJECT LOCAL DEFAULT ABS _GLOBAL_OFFSET_TABLE_ - 66: 00000000000005b0 0 NOTYPE LOCAL DEFAULT 12 $x - 67: 0000000000000000 0 FUNC GLOBAL DEFAULT UND __libc_start_main@GLIBC_2.34 - 68: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_deregisterTMCloneTable - 69: 0000000000011020 0 NOTYPE WEAK DEFAULT 23 data_start - 70: 0000000000011030 0 NOTYPE GLOBAL DEFAULT 24 __bss_start__ - 71: 0000000000000000 0 FUNC WEAK DEFAULT UND __cxa_finalize@GLIBC_2.17 - 72: 0000000000011040 0 NOTYPE GLOBAL DEFAULT 24 _bss_end__ - 73: 0000000000011030 0 NOTYPE GLOBAL DEFAULT 23 _edata - 74: 0000000000011038 4 OBJECT GLOBAL DEFAULT 24 x - 75: 000000000000076c 0 FUNC GLOBAL HIDDEN 14 _fini - 76: 0000000000011040 0 NOTYPE GLOBAL DEFAULT 24 __bss_end__ - 77: 0000000000011020 0 NOTYPE GLOBAL DEFAULT 23 __data_start - 78: 0000000000000000 0 NOTYPE WEAK DEFAULT UND __gmon_start__ - 79: 0000000000011028 0 OBJECT GLOBAL HIDDEN 23 __dso_handle - 80: 0000000000000000 0 FUNC GLOBAL DEFAULT UND abort@GLIBC_2.17 - 81: 0000000000000780 4 OBJECT GLOBAL DEFAULT 15 _IO_stdin_used - 82: 0000000000011040 0 NOTYPE GLOBAL DEFAULT 24 _end - 83: 0000000000000640 52 FUNC GLOBAL DEFAULT 13 _start - 84: 0000000000011040 0 NOTYPE GLOBAL DEFAULT 24 __end__ - 85: 0000000000011034 4 OBJECT GLOBAL DEFAULT 24 y - 86: 0000000000011030 0 NOTYPE GLOBAL DEFAULT 24 __bss_start - 87: 0000000000000754 24 FUNC GLOBAL DEFAULT 13 main - 88: 0000000000011030 0 OBJECT GLOBAL HIDDEN 23 __TMC_END__ - 89: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_registerTMCloneTable - 90: 0000000000000598 0 FUNC GLOBAL HIDDEN 11 _init diff --git a/src/test/correct/no_interference_update_y/clang_pic/no_interference_update_y_gtirb.expected b/src/test/correct/no_interference_update_y/clang_pic/no_interference_update_y_gtirb.expected index 9ee827e79..b6ad538fb 100644 --- a/src/test/correct/no_interference_update_y/clang_pic/no_interference_update_y_gtirb.expected +++ b/src/test/correct/no_interference_update_y/clang_pic/no_interference_update_y_gtirb.expected @@ -7,9 +7,9 @@ var {:extern} R8: bv64; var {:extern} R9: bv64; var {:extern} mem: [bv64]bv8; const {:extern} $x_addr: bv64; -axiom ($x_addr == 69688bv64); +axiom ($x_addr == 131096bv64); const {:extern} $y_addr: bv64; -axiom ($y_addr == 69684bv64); +axiom ($y_addr == 131092bv64); function {:extern} L(mem$in: [bv64]bv8, index: bv64) returns (bool) { (if (index == $y_addr) then true else (if (index == $x_addr) then true else false)) } @@ -39,12 +39,12 @@ procedure {:extern} rely(); modifies Gamma_mem, mem; ensures (forall i: bv64 :: (((mem[i] == old(mem[i])) ==> (Gamma_mem[i] == old(Gamma_mem[i]))))); ensures (memory_load32_le(mem, $y_addr) == old(memory_load32_le(mem, $y_addr))); - free ensures (memory_load32_le(mem, 1920bv64) == 131073bv32); - free ensures (memory_load64_le(mem, 69056bv64) == 1872bv64); - free ensures (memory_load64_le(mem, 69064bv64) == 1792bv64); - free ensures (memory_load64_le(mem, 69584bv64) == 69684bv64); - free ensures (memory_load64_le(mem, 69592bv64) == 1876bv64); - free ensures (memory_load64_le(mem, 69672bv64) == 69672bv64); + free ensures (memory_load32_le(mem, 2304bv64) == 131073bv32); + free ensures (memory_load64_le(mem, 130432bv64) == 2256bv64); + free ensures (memory_load64_le(mem, 130440bv64) == 2176bv64); + free ensures (memory_load64_le(mem, 131048bv64) == 131092bv64); + free ensures (memory_load64_le(mem, 131056bv64) == 2260bv64); + free ensures (memory_load64_le(mem, 131080bv64) == 131080bv64); procedure {:extern} rely_transitive(); modifies Gamma_mem, mem; @@ -71,46 +71,46 @@ implementation {:extern} guarantee_reflexive() assert (memory_load32_le(mem, $x_addr) == memory_load32_le(mem, $x_addr)); } -procedure main_1876(); +procedure main(); modifies Gamma_R0, Gamma_R8, Gamma_R9, Gamma_mem, R0, R8, R9, mem; - free requires (memory_load64_le(mem, 69664bv64) == 0bv64); - free requires (memory_load64_le(mem, 69672bv64) == 69672bv64); - free requires (memory_load32_le(mem, 1920bv64) == 131073bv32); - free requires (memory_load64_le(mem, 69056bv64) == 1872bv64); - free requires (memory_load64_le(mem, 69064bv64) == 1792bv64); - free requires (memory_load64_le(mem, 69584bv64) == 69684bv64); - free requires (memory_load64_le(mem, 69592bv64) == 1876bv64); - free requires (memory_load64_le(mem, 69672bv64) == 69672bv64); + free requires (memory_load64_le(mem, 131072bv64) == 0bv64); + free requires (memory_load64_le(mem, 131080bv64) == 131080bv64); + free requires (memory_load32_le(mem, 2304bv64) == 131073bv32); + free requires (memory_load64_le(mem, 130432bv64) == 2256bv64); + free requires (memory_load64_le(mem, 130440bv64) == 2176bv64); + free requires (memory_load64_le(mem, 131048bv64) == 131092bv64); + free requires (memory_load64_le(mem, 131056bv64) == 2260bv64); + free requires (memory_load64_le(mem, 131080bv64) == 131080bv64); ensures (memory_load32_le(mem, $y_addr) == 1bv32); - free ensures (memory_load32_le(mem, 1920bv64) == 131073bv32); - free ensures (memory_load64_le(mem, 69056bv64) == 1872bv64); - free ensures (memory_load64_le(mem, 69064bv64) == 1792bv64); - free ensures (memory_load64_le(mem, 69584bv64) == 69684bv64); - free ensures (memory_load64_le(mem, 69592bv64) == 1876bv64); - free ensures (memory_load64_le(mem, 69672bv64) == 69672bv64); + free ensures (memory_load32_le(mem, 2304bv64) == 131073bv32); + free ensures (memory_load64_le(mem, 130432bv64) == 2256bv64); + free ensures (memory_load64_le(mem, 130440bv64) == 2176bv64); + free ensures (memory_load64_le(mem, 131048bv64) == 131092bv64); + free ensures (memory_load64_le(mem, 131056bv64) == 2260bv64); + free ensures (memory_load64_le(mem, 131080bv64) == 131080bv64); -implementation main_1876() +implementation main() { - var Gamma_load2: bool; - var load2: bv64; + var $load19: bv64; + var Gamma_$load19: bool; var x_old: bv32; - main_1876__0__G8iEx~cVQd2oIfccjCjY1g: - assume {:captureState "main_1876__0__G8iEx~cVQd2oIfccjCjY1g"} true; - R9, Gamma_R9 := 65536bv64, true; + $main$__0__$IkNYmV06TxC75h8A4NM3wA: + assume {:captureState "$main$__0__$IkNYmV06TxC75h8A4NM3wA"} true; + R8, Gamma_R8 := 126976bv64, true; + R9, Gamma_R9 := 1bv64, true; + R0, Gamma_R0 := 0bv64, true; call rely(); - load2, Gamma_load2 := memory_load64_le(mem, bvadd64(R9, 4048bv64)), (gamma_load64(Gamma_mem, bvadd64(R9, 4048bv64)) || L(mem, bvadd64(R9, 4048bv64))); - R9, Gamma_R9 := load2, Gamma_load2; - R8, Gamma_R8 := 1bv64, true; + $load19, Gamma_$load19 := memory_load64_le(mem, bvadd64(R8, 4072bv64)), (gamma_load64(Gamma_mem, bvadd64(R8, 4072bv64)) || L(mem, bvadd64(R8, 4072bv64))); + R8, Gamma_R8 := $load19, Gamma_$load19; call rely(); + assert (L(mem, R8) ==> Gamma_R9); x_old := memory_load32_le(mem, $x_addr); - assert (L(mem, R9) ==> Gamma_R8); - mem, Gamma_mem := memory_store32_le(mem, R9, R8[32:0]), gamma_store32(Gamma_mem, R9, Gamma_R8); + mem, Gamma_mem := memory_store32_le(mem, R8, R9[32:0]), gamma_store32(Gamma_mem, R8, Gamma_R9); assert (memory_load32_le(mem, $x_addr) == x_old); - assume {:captureState "1888_0"} true; - R0, Gamma_R0 := 0bv64, true; - goto main_1876_basil_return; - main_1876_basil_return: - assume {:captureState "main_1876_basil_return"} true; + assume {:captureState "2276$0"} true; + goto main_basil_return; + main_basil_return: + assume {:captureState "main_basil_return"} true; return; } diff --git a/src/test/correct/no_interference_update_y/gcc/no_interference_update_y.adt b/src/test/correct/no_interference_update_y/gcc/no_interference_update_y.adt deleted file mode 100644 index a8f1e9568..000000000 --- a/src/test/correct/no_interference_update_y/gcc/no_interference_update_y.adt +++ /dev/null @@ -1,492 +0,0 @@ -Project(Attrs([Attr("filename","\"gcc/no_interference_update_y.out\""), -Attr("image-specification","(declare abi (name str))\n(declare arch (name str))\n(declare base-address (addr int))\n(declare bias (off int))\n(declare bits (size int))\n(declare code-region (addr int) (size int) (off int))\n(declare code-start (addr int))\n(declare entry-point (addr int))\n(declare external-reference (addr int) (name str))\n(declare format (name str))\n(declare is-executable (flag bool))\n(declare is-little-endian (flag bool))\n(declare llvm:base-address (addr int))\n(declare llvm:code-entry (name str) (off int) (size int))\n(declare llvm:coff-import-library (name str))\n(declare llvm:coff-virtual-section-header (name str) (addr int) (size int))\n(declare llvm:elf-program-header (name str) (off int) (size int))\n(declare llvm:elf-program-header-flags (name str) (ld bool) (r bool) \n (w bool) (x bool))\n(declare llvm:elf-virtual-program-header (name str) (addr int) (size int))\n(declare llvm:entry-point (addr int))\n(declare llvm:macho-symbol (name str) (value int))\n(declare llvm:name-reference (at int) (name str))\n(declare llvm:relocation (at int) (addr int))\n(declare llvm:section-entry (name str) (addr int) (size int) (off int))\n(declare llvm:section-flags (name str) (r bool) (w bool) (x bool))\n(declare llvm:segment-command (name str) (off int) (size int))\n(declare llvm:segment-command-flags (name str) (r bool) (w bool) (x bool))\n(declare llvm:symbol-entry (name str) (addr int) (size int) (off int)\n (value int))\n(declare llvm:virtual-segment-command (name str) (addr int) (size int))\n(declare mapped (addr int) (size int) (off int))\n(declare named-region (addr int) (size int) (name str))\n(declare named-symbol (addr int) (name str))\n(declare require (name str))\n(declare section (addr int) (size int))\n(declare segment (addr int) (size int) (r bool) (w bool) (x bool))\n(declare subarch (name str))\n(declare symbol-chunk (addr int) (size int) (root int))\n(declare symbol-value (addr int) (value int))\n(declare system (name str))\n(declare vendor (name str))\n\n(abi unknown)\n(arch aarch64)\n(base-address 0)\n(bias 0)\n(bits 64)\n(code-region 1836 20 1836)\n(code-region 1536 300 1536)\n(code-region 1440 96 1440)\n(code-region 1408 24 1408)\n(code-start 1588)\n(code-start 1536)\n(code-start 1812)\n(entry-point 1536)\n(external-reference 69592 _ITM_deregisterTMCloneTable)\n(external-reference 69600 __cxa_finalize)\n(external-reference 69608 __gmon_start__)\n(external-reference 69624 _ITM_registerTMCloneTable)\n(external-reference 69552 __libc_start_main)\n(external-reference 69560 __cxa_finalize)\n(external-reference 69568 __gmon_start__)\n(external-reference 69576 abort)\n(format elf)\n(is-executable true)\n(is-little-endian true)\n(llvm:base-address 0)\n(llvm:code-entry abort 0 0)\n(llvm:code-entry __cxa_finalize 0 0)\n(llvm:code-entry __libc_start_main 0 0)\n(llvm:code-entry _init 1408 0)\n(llvm:code-entry main 1812 24)\n(llvm:code-entry _start 1536 52)\n(llvm:code-entry abort@GLIBC_2.17 0 0)\n(llvm:code-entry _fini 1836 0)\n(llvm:code-entry __cxa_finalize@GLIBC_2.17 0 0)\n(llvm:code-entry __libc_start_main@GLIBC_2.34 0 0)\n(llvm:code-entry frame_dummy 1808 0)\n(llvm:code-entry __do_global_dtors_aux 1728 0)\n(llvm:code-entry register_tm_clones 1664 0)\n(llvm:code-entry deregister_tm_clones 1616 0)\n(llvm:code-entry call_weak_fn 1588 20)\n(llvm:code-entry .fini 1836 20)\n(llvm:code-entry .text 1536 300)\n(llvm:code-entry .plt 1440 96)\n(llvm:code-entry .init 1408 24)\n(llvm:elf-program-header 08 3480 616)\n(llvm:elf-program-header 07 0 0)\n(llvm:elf-program-header 06 1860 60)\n(llvm:elf-program-header 05 596 68)\n(llvm:elf-program-header 04 3496 496)\n(llvm:elf-program-header 03 3480 632)\n(llvm:elf-program-header 02 0 2080)\n(llvm:elf-program-header 01 568 27)\n(llvm:elf-program-header 00 64 504)\n(llvm:elf-program-header-flags 08 false true false false)\n(llvm:elf-program-header-flags 07 false true true false)\n(llvm:elf-program-header-flags 06 false true false false)\n(llvm:elf-program-header-flags 05 false true false false)\n(llvm:elf-program-header-flags 04 false true true false)\n(llvm:elf-program-header-flags 03 true true true false)\n(llvm:elf-program-header-flags 02 true true false true)\n(llvm:elf-program-header-flags 01 false true false false)\n(llvm:elf-program-header-flags 00 false true false false)\n(llvm:elf-virtual-program-header 08 69016 616)\n(llvm:elf-virtual-program-header 07 0 0)\n(llvm:elf-virtual-program-header 06 1860 60)\n(llvm:elf-virtual-program-header 05 596 68)\n(llvm:elf-virtual-program-header 04 69032 496)\n(llvm:elf-virtual-program-header 03 69016 648)\n(llvm:elf-virtual-program-header 02 0 2080)\n(llvm:elf-virtual-program-header 01 568 27)\n(llvm:elf-virtual-program-header 00 64 504)\n(llvm:entry-point 1536)\n(llvm:name-reference 69576 abort)\n(llvm:name-reference 69568 __gmon_start__)\n(llvm:name-reference 69560 __cxa_finalize)\n(llvm:name-reference 69552 __libc_start_main)\n(llvm:name-reference 69624 _ITM_registerTMCloneTable)\n(llvm:name-reference 69608 __gmon_start__)\n(llvm:name-reference 69600 __cxa_finalize)\n(llvm:name-reference 69592 _ITM_deregisterTMCloneTable)\n(llvm:section-entry .shstrtab 0 250 6856)\n(llvm:section-entry .strtab 0 560 6296)\n(llvm:section-entry .symtab 0 2136 4160)\n(llvm:section-entry .comment 0 43 4112)\n(llvm:section-entry .bss 69648 16 4112)\n(llvm:section-entry .data 69632 16 4096)\n(llvm:section-entry .got 69528 104 3992)\n(llvm:section-entry .dynamic 69032 496 3496)\n(llvm:section-entry .fini_array 69024 8 3488)\n(llvm:section-entry .init_array 69016 8 3480)\n(llvm:section-entry .eh_frame 1920 160 1920)\n(llvm:section-entry .eh_frame_hdr 1860 60 1860)\n(llvm:section-entry .rodata 1856 4 1856)\n(llvm:section-entry .fini 1836 20 1836)\n(llvm:section-entry .text 1536 300 1536)\n(llvm:section-entry .plt 1440 96 1440)\n(llvm:section-entry .init 1408 24 1408)\n(llvm:section-entry .rela.plt 1312 96 1312)\n(llvm:section-entry .rela.dyn 1120 192 1120)\n(llvm:section-entry .gnu.version_r 1072 48 1072)\n(llvm:section-entry .gnu.version 1054 18 1054)\n(llvm:section-entry .dynstr 912 141 912)\n(llvm:section-entry .dynsym 696 216 696)\n(llvm:section-entry .gnu.hash 664 28 664)\n(llvm:section-entry .note.ABI-tag 632 32 632)\n(llvm:section-entry .note.gnu.build-id 596 36 596)\n(llvm:section-entry .interp 568 27 568)\n(llvm:section-flags .shstrtab true false false)\n(llvm:section-flags .strtab true false false)\n(llvm:section-flags .symtab true false false)\n(llvm:section-flags .comment true false false)\n(llvm:section-flags .bss true true false)\n(llvm:section-flags .data true true false)\n(llvm:section-flags .got true true false)\n(llvm:section-flags .dynamic true true false)\n(llvm:section-flags .fini_array true true false)\n(llvm:section-flags .init_array true true false)\n(llvm:section-flags .eh_frame true false false)\n(llvm:section-flags .eh_frame_hdr true false false)\n(llvm:section-flags .rodata true false false)\n(llvm:section-flags .fini true false true)\n(llvm:section-flags .text true false true)\n(llvm:section-flags .plt true false true)\n(llvm:section-flags .init true false true)\n(llvm:section-flags .rela.plt true false false)\n(llvm:section-flags .rela.dyn true false false)\n(llvm:section-flags .gnu.version_r true false false)\n(llvm:section-flags .gnu.version true false false)\n(llvm:section-flags .dynstr true false false)\n(llvm:section-flags .dynsym true false false)\n(llvm:section-flags .gnu.hash true false false)\n(llvm:section-flags .note.ABI-tag true false false)\n(llvm:section-flags .note.gnu.build-id true false false)\n(llvm:section-flags .interp true false false)\n(llvm:symbol-entry abort 0 0 0 0)\n(llvm:symbol-entry __cxa_finalize 0 0 0 0)\n(llvm:symbol-entry __libc_start_main 0 0 0 0)\n(llvm:symbol-entry _init 1408 0 1408 1408)\n(llvm:symbol-entry main 1812 24 1812 1812)\n(llvm:symbol-entry _start 1536 52 1536 1536)\n(llvm:symbol-entry abort@GLIBC_2.17 0 0 0 0)\n(llvm:symbol-entry _fini 1836 0 1836 1836)\n(llvm:symbol-entry __cxa_finalize@GLIBC_2.17 0 0 0 0)\n(llvm:symbol-entry __libc_start_main@GLIBC_2.34 0 0 0 0)\n(llvm:symbol-entry frame_dummy 1808 0 1808 1808)\n(llvm:symbol-entry __do_global_dtors_aux 1728 0 1728 1728)\n(llvm:symbol-entry register_tm_clones 1664 0 1664 1664)\n(llvm:symbol-entry deregister_tm_clones 1616 0 1616 1616)\n(llvm:symbol-entry call_weak_fn 1588 20 1588 1588)\n(mapped 0 2080 0)\n(mapped 69016 632 3480)\n(named-region 0 2080 02)\n(named-region 69016 648 03)\n(named-region 568 27 .interp)\n(named-region 596 36 .note.gnu.build-id)\n(named-region 632 32 .note.ABI-tag)\n(named-region 664 28 .gnu.hash)\n(named-region 696 216 .dynsym)\n(named-region 912 141 .dynstr)\n(named-region 1054 18 .gnu.version)\n(named-region 1072 48 .gnu.version_r)\n(named-region 1120 192 .rela.dyn)\n(named-region 1312 96 .rela.plt)\n(named-region 1408 24 .init)\n(named-region 1440 96 .plt)\n(named-region 1536 300 .text)\n(named-region 1836 20 .fini)\n(named-region 1856 4 .rodata)\n(named-region 1860 60 .eh_frame_hdr)\n(named-region 1920 160 .eh_frame)\n(named-region 69016 8 .init_array)\n(named-region 69024 8 .fini_array)\n(named-region 69032 496 .dynamic)\n(named-region 69528 104 .got)\n(named-region 69632 16 .data)\n(named-region 69648 16 .bss)\n(named-region 0 43 .comment)\n(named-region 0 2136 .symtab)\n(named-region 0 560 .strtab)\n(named-region 0 250 .shstrtab)\n(named-symbol 1588 call_weak_fn)\n(named-symbol 1616 deregister_tm_clones)\n(named-symbol 1664 register_tm_clones)\n(named-symbol 1728 __do_global_dtors_aux)\n(named-symbol 1808 frame_dummy)\n(named-symbol 0 __libc_start_main@GLIBC_2.34)\n(named-symbol 0 __cxa_finalize@GLIBC_2.17)\n(named-symbol 1836 _fini)\n(named-symbol 0 abort@GLIBC_2.17)\n(named-symbol 1536 _start)\n(named-symbol 1812 main)\n(named-symbol 1408 _init)\n(named-symbol 0 __libc_start_main)\n(named-symbol 0 __cxa_finalize)\n(named-symbol 0 abort)\n(require libc.so.6)\n(section 568 27)\n(section 596 36)\n(section 632 32)\n(section 664 28)\n(section 696 216)\n(section 912 141)\n(section 1054 18)\n(section 1072 48)\n(section 1120 192)\n(section 1312 96)\n(section 1408 24)\n(section 1440 96)\n(section 1536 300)\n(section 1836 20)\n(section 1856 4)\n(section 1860 60)\n(section 1920 160)\n(section 69016 8)\n(section 69024 8)\n(section 69032 496)\n(section 69528 104)\n(section 69632 16)\n(section 69648 16)\n(section 0 43)\n(section 0 2136)\n(section 0 560)\n(section 0 250)\n(segment 0 2080 true false true)\n(segment 69016 648 true true false)\n(subarch v8)\n(symbol-chunk 1588 20 1588)\n(symbol-chunk 1536 52 1536)\n(symbol-chunk 1812 24 1812)\n(symbol-value 1588 1588)\n(symbol-value 1616 1616)\n(symbol-value 1664 1664)\n(symbol-value 1728 1728)\n(symbol-value 1808 1808)\n(symbol-value 1836 1836)\n(symbol-value 1536 1536)\n(symbol-value 1812 1812)\n(symbol-value 1408 1408)\n(symbol-value 0 0)\n(system \"\")\n(vendor \"\")\n"), -Attr("abi-name","\"aarch64-linux-gnu-elf\"")]), -Sections([Section(".shstrtab", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x00\x06\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xc8\x1b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x38\x00\x09\x00\x40\x00\x1c\x00\x1b\x00\x06\x00\x00\x00\x04\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x04\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x20\x08\x00\x00\x00\x00\x00\x00\x20\x08\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x01\x00\x00\x00\x06\x00\x00\x00\x98\x0d\x00\x00\x00\x00\x00\x00\x98\x0d"), -Section(".strtab", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x00\x06\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xc8\x1b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x38\x00\x09\x00\x40\x00\x1c\x00\x1b\x00\x06\x00\x00\x00\x04\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x04\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x20\x08\x00\x00\x00\x00\x00\x00\x20\x08\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x01\x00\x00\x00\x06\x00\x00\x00\x98\x0d\x00\x00\x00\x00\x00\x00\x98\x0d\x01\x00\x00\x00\x00\x00\x98\x0d\x01\x00\x00\x00\x00\x00\x78\x02\x00\x00\x00\x00\x00\x00\x88\x02\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x02\x00\x00\x00\x06\x00\x00\x00\xa8\x0d\x00\x00\x00\x00\x00\x00\xa8\x0d\x01\x00\x00\x00\x00\x00\xa8\x0d\x01\x00\x00\x00\x00\x00\xf0\x01\x00\x00\x00\x00\x00\x00\xf0\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x04\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x50\xe5\x74\x64\x04\x00\x00\x00\x44\x07\x00\x00\x00\x00\x00\x00\x44\x07\x00\x00\x00\x00\x00\x00\x44\x07\x00\x00\x00\x00\x00\x00\x3c\x00\x00\x00\x00\x00\x00\x00\x3c\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x51\xe5\x74\x64\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x52\xe5\x74\x64\x04\x00\x00\x00\x98\x0d\x00\x00\x00\x00\x00\x00\x98\x0d\x01\x00\x00\x00\x00\x00\x98\x0d\x01\x00\x00\x00\x00\x00\x68\x02\x00\x00\x00\x00\x00\x00\x68\x02\x00\x00\x00\x00\x00\x00"), -Section(".comment", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x00\x06\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xc8\x1b\x00"), -Section(".interp", 0x238, "\x2f\x6c\x69\x62\x2f\x6c\x64\x2d\x6c\x69\x6e\x75\x78\x2d\x61\x61\x72\x63\x68\x36\x34\x2e\x73\x6f\x2e\x31\x00"), -Section(".note.gnu.build-id", 0x254, "\x04\x00\x00\x00\x14\x00\x00\x00\x03\x00\x00\x00\x47\x4e\x55\x00\x9e\x48\xb2\xa5\x51\x16\x5e\x35\x8c\x61\xe8\x33\x4f\xf3\x2f\x76\x6c\xbf\x2a\xb4"), -Section(".note.ABI-tag", 0x278, "\x04\x00\x00\x00\x10\x00\x00\x00\x01\x00\x00\x00\x47\x4e\x55\x00\x00\x00\x00\x00\x03\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00"), -Section(".gnu.hash", 0x298, "\x01\x00\x00\x00\x01\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".dynsym", 0x2B8, "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x0b\x00\x80\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x16\x00\x00\x10\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x48\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x22\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x22\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x73\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".dynstr", 0x390, "\x00\x5f\x5f\x63\x78\x61\x5f\x66\x69\x6e\x61\x6c\x69\x7a\x65\x00\x5f\x5f\x6c\x69\x62\x63\x5f\x73\x74\x61\x72\x74\x5f\x6d\x61\x69\x6e\x00\x61\x62\x6f\x72\x74\x00\x6c\x69\x62\x63\x2e\x73\x6f\x2e\x36\x00\x47\x4c\x49\x42\x43\x5f\x32\x2e\x31\x37\x00\x47\x4c\x49\x42\x43\x5f\x32\x2e\x33\x34\x00\x5f\x49\x54\x4d\x5f\x64\x65\x72\x65\x67\x69\x73\x74\x65\x72\x54\x4d\x43\x6c\x6f\x6e\x65\x54\x61\x62\x6c\x65\x00\x5f\x5f\x67\x6d\x6f\x6e\x5f\x73\x74\x61\x72\x74\x5f\x5f\x00\x5f\x49\x54\x4d\x5f\x72\x65\x67\x69\x73\x74\x65\x72\x54\x4d\x43\x6c\x6f\x6e\x65\x54\x61\x62\x6c\x65\x00"), -Section(".gnu.version", 0x41E, "\x00\x00\x00\x00\x00\x00\x02\x00\x01\x00\x03\x00\x01\x00\x03\x00\x01\x00"), -Section(".gnu.version_r", 0x430, "\x01\x00\x02\x00\x28\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x97\x91\x96\x06\x00\x00\x03\x00\x32\x00\x00\x00\x10\x00\x00\x00\xb4\x91\x96\x06\x00\x00\x02\x00\x3d\x00\x00\x00\x00\x00\x00\x00"), -Section(".rela.dyn", 0x460, "\x98\x0d\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x10\x07\x00\x00\x00\x00\x00\x00\xa0\x0d\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\xc0\x06\x00\x00\x00\x00\x00\x00\xf0\x0f\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x14\x07\x00\x00\x00\x00\x00\x00\x08\x10\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x08\x10\x01\x00\x00\x00\x00\x00\xd8\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe0\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe8\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xf8\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".rela.plt", 0x520, "\xb0\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xb8\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xc0\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xc8\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".init", 0x580, "\x1f\x20\x03\xd5\xfd\x7b\xbf\xa9\xfd\x03\x00\x91\x2a\x00\x00\x94\xfd\x7b\xc1\xa8\xc0\x03\x5f\xd6"), -Section(".plt", 0x5A0, "\xf0\x7b\xbf\xa9\x90\x00\x00\x90\x11\xd6\x47\xf9\x10\xa2\x3e\x91\x20\x02\x1f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x90\x00\x00\x90\x11\xda\x47\xf9\x10\xc2\x3e\x91\x20\x02\x1f\xd6\x90\x00\x00\x90\x11\xde\x47\xf9\x10\xe2\x3e\x91\x20\x02\x1f\xd6\x90\x00\x00\x90\x11\xe2\x47\xf9\x10\x02\x3f\x91\x20\x02\x1f\xd6\x90\x00\x00\x90\x11\xe6\x47\xf9\x10\x22\x3f\x91\x20\x02\x1f\xd6"), -Section(".text", 0x600, "\x1f\x20\x03\xd5\x1d\x00\x80\xd2\x1e\x00\x80\xd2\xe5\x03\x00\xaa\xe1\x03\x40\xf9\xe2\x23\x00\x91\xe6\x03\x00\x91\x80\x00\x00\x90\x00\xf8\x47\xf9\x03\x00\x80\xd2\x04\x00\x80\xd2\xe5\xff\xff\x97\xf0\xff\xff\x97\x80\x00\x00\x90\x00\xf4\x47\xf9\x40\x00\x00\xb4\xe8\xff\xff\x17\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x80\x00\x00\xb0\x00\x40\x00\x91\x81\x00\x00\xb0\x21\x40\x00\x91\x3f\x00\x00\xeb\xc0\x00\x00\x54\x81\x00\x00\x90\x21\xec\x47\xf9\x61\x00\x00\xb4\xf0\x03\x01\xaa\x00\x02\x1f\xd6\xc0\x03\x5f\xd6\x80\x00\x00\xb0\x00\x40\x00\x91\x81\x00\x00\xb0\x21\x40\x00\x91\x21\x00\x00\xcb\x22\xfc\x7f\xd3\x41\x0c\x81\x8b\x21\xfc\x41\x93\xc1\x00\x00\xb4\x82\x00\x00\x90\x42\xfc\x47\xf9\x62\x00\x00\xb4\xf0\x03\x02\xaa\x00\x02\x1f\xd6\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\xfd\x7b\xbe\xa9\xfd\x03\x00\x91\xf3\x0b\x00\xf9\x93\x00\x00\xb0\x60\x42\x40\x39\x40\x01\x00\x35\x80\x00\x00\x90\x00\xf0\x47\xf9\x80\x00\x00\xb4\x80\x00\x00\xb0\x00\x04\x40\xf9\xb9\xff\xff\x97\xd8\xff\xff\x97\x20\x00\x80\x52\x60\x42\x00\x39\xf3\x0b\x40\xf9\xfd\x7b\xc2\xa8\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\xdc\xff\xff\x17\x80\x00\x00\xb0\x00\x60\x00\x91\x21\x00\x80\x52\x01\x00\x00\xb9\x00\x00\x80\x52\xc0\x03\x5f\xd6"), -Section(".fini", 0x72C, "\x1f\x20\x03\xd5\xfd\x7b\xbf\xa9\xfd\x03\x00\x91\xfd\x7b\xc1\xa8\xc0\x03\x5f\xd6"), -Section(".rodata", 0x740, "\x01\x00\x02\x00"), -Section(".eh_frame_hdr", 0x744, "\x01\x1b\x03\x3b\x38\x00\x00\x00\x06\x00\x00\x00\xbc\xfe\xff\xff\x50\x00\x00\x00\x0c\xff\xff\xff\x64\x00\x00\x00\x3c\xff\xff\xff\x78\x00\x00\x00\x7c\xff\xff\xff\x8c\x00\x00\x00\xcc\xff\xff\xff\xb0\x00\x00\x00\xd0\xff\xff\xff\xc4\x00\x00\x00"), -Section(".eh_frame", 0x780, "\x10\x00\x00\x00\x00\x00\x00\x00\x01\x7a\x52\x00\x04\x78\x1e\x01\x1b\x0c\x1f\x00\x10\x00\x00\x00\x18\x00\x00\x00\x64\xfe\xff\xff\x34\x00\x00\x00\x00\x41\x07\x1e\x10\x00\x00\x00\x2c\x00\x00\x00\xa0\xfe\xff\xff\x30\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x40\x00\x00\x00\xbc\xfe\xff\xff\x3c\x00\x00\x00\x00\x00\x00\x00\x20\x00\x00\x00\x54\x00\x00\x00\xe8\xfe\xff\xff\x48\x00\x00\x00\x00\x41\x0e\x20\x9d\x04\x9e\x03\x42\x93\x02\x4e\xde\xdd\xd3\x0e\x00\x00\x00\x00\x10\x00\x00\x00\x78\x00\x00\x00\x14\xff\xff\xff\x04\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x8c\x00\x00\x00\x04\xff\xff\xff\x18\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".fini_array", 0x10DA0, "\xc0\x06\x00\x00\x00\x00\x00\x00"), -Section(".dynamic", 0x10DA8, "\x01\x00\x00\x00\x00\x00\x00\x00\x28\x00\x00\x00\x00\x00\x00\x00\x0c\x00\x00\x00\x00\x00\x00\x00\x80\x05\x00\x00\x00\x00\x00\x00\x0d\x00\x00\x00\x00\x00\x00\x00\x2c\x07\x00\x00\x00\x00\x00\x00\x19\x00\x00\x00\x00\x00\x00\x00\x98\x0d\x01\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x1a\x00\x00\x00\x00\x00\x00\x00\xa0\x0d\x01\x00\x00\x00\x00\x00\x1c\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\xf5\xfe\xff\x6f\x00\x00\x00\x00\x98\x02\x00\x00\x00\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x90\x03\x00\x00\x00\x00\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\xb8\x02\x00\x00\x00\x00\x00\x00\x0a\x00\x00\x00\x00\x00\x00\x00\x8d\x00\x00\x00\x00\x00\x00\x00\x0b\x00\x00\x00\x00\x00\x00\x00\x18\x00\x00\x00\x00\x00\x00\x00\x15\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x98\x0f\x01\x00\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x60\x00\x00\x00\x00\x00\x00\x00\x14\x00\x00\x00\x00\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x17\x00\x00\x00\x00\x00\x00\x00\x20\x05\x00\x00\x00\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x60\x04\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\xc0\x00\x00\x00\x00\x00\x00\x00\x09\x00\x00\x00\x00\x00\x00\x00\x18\x00\x00\x00\x00\x00\x00\x00\x1e\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\xfb\xff\xff\x6f\x00\x00\x00\x00\x01\x00\x00\x08\x00\x00\x00\x00\xfe\xff\xff\x6f\x00\x00\x00\x00\x30\x04\x00\x00\x00\x00\x00\x00\xff\xff\xff\x6f\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\xf0\xff\xff\x6f\x00\x00\x00\x00\x1e\x04\x00\x00\x00\x00\x00\x00\xf9\xff\xff\x6f\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".got", 0x10F98, "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xa0\x05\x00\x00\x00\x00\x00\x00\xa0\x05\x00\x00\x00\x00\x00\x00\xa0\x05\x00\x00\x00\x00\x00\x00\xa0\x05\x00\x00\x00\x00\x00\x00\xa8\x0d\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x14\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".data", 0x11000, "\x00\x00\x00\x00\x00\x00\x00\x00\x08\x10\x01\x00\x00\x00\x00\x00"), -Section(".init_array", 0x10D98, "\x10\x07\x00\x00\x00\x00\x00\x00")]), -Memmap([Annotation(Region(0x0,0x81F), Attr("segment","02 0 2080")), -Annotation(Region(0x600,0x633), Attr("symbol","\"_start\"")), -Annotation(Region(0x0,0xF9), Attr("section","\".shstrtab\"")), -Annotation(Region(0x0,0x22F), Attr("section","\".strtab\"")), -Annotation(Region(0x0,0x2A), Attr("section","\".comment\"")), -Annotation(Region(0x238,0x252), Attr("section","\".interp\"")), -Annotation(Region(0x254,0x277), Attr("section","\".note.gnu.build-id\"")), -Annotation(Region(0x278,0x297), Attr("section","\".note.ABI-tag\"")), -Annotation(Region(0x298,0x2B3), Attr("section","\".gnu.hash\"")), -Annotation(Region(0x2B8,0x38F), Attr("section","\".dynsym\"")), -Annotation(Region(0x390,0x41C), Attr("section","\".dynstr\"")), -Annotation(Region(0x41E,0x42F), Attr("section","\".gnu.version\"")), -Annotation(Region(0x430,0x45F), Attr("section","\".gnu.version_r\"")), -Annotation(Region(0x460,0x51F), Attr("section","\".rela.dyn\"")), -Annotation(Region(0x520,0x57F), Attr("section","\".rela.plt\"")), -Annotation(Region(0x580,0x597), Attr("section","\".init\"")), -Annotation(Region(0x5A0,0x5FF), Attr("section","\".plt\"")), -Annotation(Region(0x580,0x597), Attr("code-region","()")), -Annotation(Region(0x5A0,0x5FF), Attr("code-region","()")), -Annotation(Region(0x600,0x633), Attr("symbol-info","_start 0x600 52")), -Annotation(Region(0x634,0x647), Attr("symbol","\"call_weak_fn\"")), -Annotation(Region(0x634,0x647), Attr("symbol-info","call_weak_fn 0x634 20")), -Annotation(Region(0x600,0x72B), Attr("section","\".text\"")), -Annotation(Region(0x600,0x72B), Attr("code-region","()")), -Annotation(Region(0x714,0x72B), Attr("symbol","\"main\"")), -Annotation(Region(0x714,0x72B), Attr("symbol-info","main 0x714 24")), -Annotation(Region(0x72C,0x73F), Attr("section","\".fini\"")), -Annotation(Region(0x72C,0x73F), Attr("code-region","()")), -Annotation(Region(0x740,0x743), Attr("section","\".rodata\"")), -Annotation(Region(0x744,0x77F), Attr("section","\".eh_frame_hdr\"")), -Annotation(Region(0x780,0x81F), Attr("section","\".eh_frame\"")), -Annotation(Region(0x10D98,0x1100F), Attr("segment","03 0x10D98 648")), -Annotation(Region(0x10DA0,0x10DA7), Attr("section","\".fini_array\"")), -Annotation(Region(0x10DA8,0x10F97), Attr("section","\".dynamic\"")), -Annotation(Region(0x10F98,0x10FFF), Attr("section","\".got\"")), -Annotation(Region(0x11000,0x1100F), Attr("section","\".data\"")), -Annotation(Region(0x10D98,0x10D9F), Attr("section","\".init_array\""))]), -Program(Tid(1_429, "%00000595"), Attrs([]), - Subs([Sub(Tid(1_379, "@__cxa_finalize"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x5D0"), -Attr("stub","()")]), "__cxa_finalize", Args([Arg(Tid(1_430, "%00000596"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("__cxa_finalize_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(795, "@__cxa_finalize"), - Attrs([Attr("address","0x5D0")]), Phis([]), -Defs([Def(Tid(1_043, "%00000413"), Attrs([Attr("address","0x5D0"), -Attr("insn","adrp x16, #65536")]), Var("R16",Imm(64)), Int(65536,64)), -Def(Tid(1_050, "%0000041a"), Attrs([Attr("address","0x5D4"), -Attr("insn","ldr x17, [x16, #0xfb8]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(4024,64)),LittleEndian(),64)), -Def(Tid(1_056, "%00000420"), Attrs([Attr("address","0x5D8"), -Attr("insn","add x16, x16, #0xfb8")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(4024,64)))]), Jmps([Call(Tid(1_061, "%00000425"), - Attrs([Attr("address","0x5DC"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), -Sub(Tid(1_380, "@__do_global_dtors_aux"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x6C0")]), - "__do_global_dtors_aux", Args([Arg(Tid(1_431, "%00000597"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("__do_global_dtors_aux_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(614, "@__do_global_dtors_aux"), - Attrs([Attr("address","0x6C0")]), Phis([]), Defs([Def(Tid(618, "%0000026a"), - Attrs([Attr("address","0x6C0"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("#3",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(18446744073709551584,64))), -Def(Tid(624, "%00000270"), Attrs([Attr("address","0x6C0"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("#3",Imm(64)),Var("R29",Imm(64)),LittleEndian(),64)), -Def(Tid(630, "%00000276"), Attrs([Attr("address","0x6C0"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("#3",Imm(64)),Int(8,64)),Var("R30",Imm(64)),LittleEndian(),64)), -Def(Tid(634, "%0000027a"), Attrs([Attr("address","0x6C0"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("R31",Imm(64)), -Var("#3",Imm(64))), Def(Tid(640, "%00000280"), - Attrs([Attr("address","0x6C4"), Attr("insn","mov x29, sp")]), - Var("R29",Imm(64)), Var("R31",Imm(64))), Def(Tid(648, "%00000288"), - Attrs([Attr("address","0x6C8"), Attr("insn","str x19, [sp, #0x10]")]), - Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(16,64)),Var("R19",Imm(64)),LittleEndian(),64)), -Def(Tid(653, "%0000028d"), Attrs([Attr("address","0x6CC"), -Attr("insn","adrp x19, #69632")]), Var("R19",Imm(64)), Int(69632,64)), -Def(Tid(660, "%00000294"), Attrs([Attr("address","0x6D0"), -Attr("insn","ldrb w0, [x19, #0x10]")]), Var("R0",Imm(64)), -UNSIGNED(64,Load(Var("mem",Mem(64,8)),PLUS(Var("R19",Imm(64)),Int(16,64)),LittleEndian(),8)))]), -Jmps([Goto(Tid(667, "%0000029b"), Attrs([Attr("address","0x6D4"), -Attr("insn","cbnz w0, #0x28")]), - NEQ(Extract(31,0,Var("R0",Imm(64))),Int(0,32)), -Direct(Tid(665, "%00000299"))), Goto(Tid(1_419, "%0000058b"), Attrs([]), - Int(1,1), Direct(Tid(740, "%000002e4")))])), Blk(Tid(740, "%000002e4"), - Attrs([Attr("address","0x6D8")]), Phis([]), Defs([Def(Tid(743, "%000002e7"), - Attrs([Attr("address","0x6D8"), Attr("insn","adrp x0, #65536")]), - Var("R0",Imm(64)), Int(65536,64)), Def(Tid(750, "%000002ee"), - Attrs([Attr("address","0x6DC"), Attr("insn","ldr x0, [x0, #0xfe0]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(4064,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(756, "%000002f4"), Attrs([Attr("address","0x6E0"), -Attr("insn","cbz x0, #0x10")]), EQ(Var("R0",Imm(64)),Int(0,64)), -Direct(Tid(754, "%000002f2"))), Goto(Tid(1_420, "%0000058c"), Attrs([]), - Int(1,1), Direct(Tid(779, "%0000030b")))])), Blk(Tid(779, "%0000030b"), - Attrs([Attr("address","0x6E4")]), Phis([]), Defs([Def(Tid(782, "%0000030e"), - Attrs([Attr("address","0x6E4"), Attr("insn","adrp x0, #69632")]), - Var("R0",Imm(64)), Int(69632,64)), Def(Tid(789, "%00000315"), - Attrs([Attr("address","0x6E8"), Attr("insn","ldr x0, [x0, #0x8]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(794, "%0000031a"), Attrs([Attr("address","0x6EC"), -Attr("insn","bl #-0x11c")]), Var("R30",Imm(64)), Int(1776,64))]), -Jmps([Call(Tid(797, "%0000031d"), Attrs([Attr("address","0x6EC"), -Attr("insn","bl #-0x11c")]), Int(1,1), -(Direct(Tid(1_379, "@__cxa_finalize")),Direct(Tid(754, "%000002f2"))))])), -Blk(Tid(754, "%000002f2"), Attrs([Attr("address","0x6F0")]), Phis([]), -Defs([Def(Tid(762, "%000002fa"), Attrs([Attr("address","0x6F0"), -Attr("insn","bl #-0xa0")]), Var("R30",Imm(64)), Int(1780,64))]), -Jmps([Call(Tid(764, "%000002fc"), Attrs([Attr("address","0x6F0"), -Attr("insn","bl #-0xa0")]), Int(1,1), -(Direct(Tid(1_393, "@deregister_tm_clones")),Direct(Tid(766, "%000002fe"))))])), -Blk(Tid(766, "%000002fe"), Attrs([Attr("address","0x6F4")]), Phis([]), -Defs([Def(Tid(769, "%00000301"), Attrs([Attr("address","0x6F4"), -Attr("insn","mov w0, #0x1")]), Var("R0",Imm(64)), Int(1,64)), -Def(Tid(777, "%00000309"), Attrs([Attr("address","0x6F8"), -Attr("insn","strb w0, [x19, #0x10]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R19",Imm(64)),Int(16,64)),Extract(7,0,Var("R0",Imm(64))),LittleEndian(),8))]), -Jmps([Goto(Tid(1_421, "%0000058d"), Attrs([]), Int(1,1), -Direct(Tid(665, "%00000299")))])), Blk(Tid(665, "%00000299"), - Attrs([Attr("address","0x6FC")]), Phis([]), Defs([Def(Tid(675, "%000002a3"), - Attrs([Attr("address","0x6FC"), Attr("insn","ldr x19, [sp, #0x10]")]), - Var("R19",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(16,64)),LittleEndian(),64)), -Def(Tid(682, "%000002aa"), Attrs([Attr("address","0x700"), -Attr("insn","ldp x29, x30, [sp], #0x20")]), Var("R29",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(687, "%000002af"), Attrs([Attr("address","0x700"), -Attr("insn","ldp x29, x30, [sp], #0x20")]), Var("R30",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(691, "%000002b3"), Attrs([Attr("address","0x700"), -Attr("insn","ldp x29, x30, [sp], #0x20")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(32,64)))]), Jmps([Call(Tid(696, "%000002b8"), - Attrs([Attr("address","0x704"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), Sub(Tid(1_384, "@__libc_start_main"), - Attrs([Attr("c.proto","signed (*)(signed (*)(signed , char** , char** );* main, signed , char** , \nvoid* auxv)"), -Attr("address","0x5C0"), Attr("stub","()")]), "__libc_start_main", - Args([Arg(Tid(1_432, "%00000598"), - Attrs([Attr("c.layout","**[ : 64]"), -Attr("c.data","Top:u64 ptr ptr"), -Attr("c.type","signed (*)(signed , char** , char** );*")]), - Var("__libc_start_main_main",Imm(64)), Var("R0",Imm(64)), In()), -Arg(Tid(1_433, "%00000599"), Attrs([Attr("c.layout","[signed : 32]"), -Attr("c.data","Top:u32"), Attr("c.type","signed")]), - Var("__libc_start_main_arg2",Imm(32)), LOW(32,Var("R1",Imm(64))), In()), -Arg(Tid(1_434, "%0000059a"), Attrs([Attr("c.layout","**[char : 8]"), -Attr("c.data","Top:u8 ptr ptr"), Attr("c.type","char**")]), - Var("__libc_start_main_arg3",Imm(64)), Var("R2",Imm(64)), Both()), -Arg(Tid(1_435, "%0000059b"), Attrs([Attr("c.layout","*[ : 8]"), -Attr("c.data","{} ptr"), Attr("c.type","void*")]), - Var("__libc_start_main_auxv",Imm(64)), Var("R3",Imm(64)), Both()), -Arg(Tid(1_436, "%0000059c"), Attrs([Attr("c.layout","[signed : 32]"), -Attr("c.data","Top:u32"), Attr("c.type","signed")]), - Var("__libc_start_main_result",Imm(32)), LOW(32,Var("R0",Imm(64))), -Out())]), Blks([Blk(Tid(447, "@__libc_start_main"), - Attrs([Attr("address","0x5C0")]), Phis([]), -Defs([Def(Tid(1_021, "%000003fd"), Attrs([Attr("address","0x5C0"), -Attr("insn","adrp x16, #65536")]), Var("R16",Imm(64)), Int(65536,64)), -Def(Tid(1_028, "%00000404"), Attrs([Attr("address","0x5C4"), -Attr("insn","ldr x17, [x16, #0xfb0]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(4016,64)),LittleEndian(),64)), -Def(Tid(1_034, "%0000040a"), Attrs([Attr("address","0x5C8"), -Attr("insn","add x16, x16, #0xfb0")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(4016,64)))]), Jmps([Call(Tid(1_039, "%0000040f"), - Attrs([Attr("address","0x5CC"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), Sub(Tid(1_385, "@_fini"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x72C")]), - "_fini", Args([Arg(Tid(1_437, "%0000059d"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("_fini_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(31, "@_fini"), - Attrs([Attr("address","0x72C")]), Phis([]), Defs([Def(Tid(37, "%00000025"), - Attrs([Attr("address","0x730"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("#0",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(18446744073709551600,64))), -Def(Tid(43, "%0000002b"), Attrs([Attr("address","0x730"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("#0",Imm(64)),Var("R29",Imm(64)),LittleEndian(),64)), -Def(Tid(49, "%00000031"), Attrs([Attr("address","0x730"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("#0",Imm(64)),Int(8,64)),Var("R30",Imm(64)),LittleEndian(),64)), -Def(Tid(53, "%00000035"), Attrs([Attr("address","0x730"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("R31",Imm(64)), -Var("#0",Imm(64))), Def(Tid(59, "%0000003b"), Attrs([Attr("address","0x734"), -Attr("insn","mov x29, sp")]), Var("R29",Imm(64)), Var("R31",Imm(64))), -Def(Tid(66, "%00000042"), Attrs([Attr("address","0x738"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R29",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(71, "%00000047"), Attrs([Attr("address","0x738"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R30",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(75, "%0000004b"), Attrs([Attr("address","0x738"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(16,64)))]), Jmps([Call(Tid(80, "%00000050"), - Attrs([Attr("address","0x73C"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), Sub(Tid(1_386, "@_init"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x580")]), - "_init", Args([Arg(Tid(1_438, "%0000059e"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("_init_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(1_215, "@_init"), - Attrs([Attr("address","0x580")]), Phis([]), -Defs([Def(Tid(1_221, "%000004c5"), Attrs([Attr("address","0x584"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("#5",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(18446744073709551600,64))), -Def(Tid(1_227, "%000004cb"), Attrs([Attr("address","0x584"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("#5",Imm(64)),Var("R29",Imm(64)),LittleEndian(),64)), -Def(Tid(1_233, "%000004d1"), Attrs([Attr("address","0x584"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("#5",Imm(64)),Int(8,64)),Var("R30",Imm(64)),LittleEndian(),64)), -Def(Tid(1_237, "%000004d5"), Attrs([Attr("address","0x584"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("R31",Imm(64)), -Var("#5",Imm(64))), Def(Tid(1_243, "%000004db"), - Attrs([Attr("address","0x588"), Attr("insn","mov x29, sp")]), - Var("R29",Imm(64)), Var("R31",Imm(64))), Def(Tid(1_248, "%000004e0"), - Attrs([Attr("address","0x58C"), Attr("insn","bl #0xa8")]), - Var("R30",Imm(64)), Int(1424,64))]), Jmps([Call(Tid(1_250, "%000004e2"), - Attrs([Attr("address","0x58C"), Attr("insn","bl #0xa8")]), Int(1,1), -(Direct(Tid(1_391, "@call_weak_fn")),Direct(Tid(1_252, "%000004e4"))))])), -Blk(Tid(1_252, "%000004e4"), Attrs([Attr("address","0x590")]), Phis([]), -Defs([Def(Tid(1_257, "%000004e9"), Attrs([Attr("address","0x590"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R29",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(1_262, "%000004ee"), Attrs([Attr("address","0x590"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R30",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(1_266, "%000004f2"), Attrs([Attr("address","0x590"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(16,64)))]), Jmps([Call(Tid(1_271, "%000004f7"), - Attrs([Attr("address","0x594"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), Sub(Tid(1_387, "@_start"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x600"), -Attr("stub","()"), Attr("entry-point","()")]), "_start", - Args([Arg(Tid(1_439, "%0000059f"), Attrs([Attr("c.layout","[signed : 32]"), -Attr("c.data","Top:u32"), Attr("c.type","signed")]), - Var("_start_result",Imm(32)), LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(384, "@_start"), Attrs([Attr("address","0x600")]), Phis([]), -Defs([Def(Tid(389, "%00000185"), Attrs([Attr("address","0x604"), -Attr("insn","mov x29, #0x0")]), Var("R29",Imm(64)), Int(0,64)), -Def(Tid(394, "%0000018a"), Attrs([Attr("address","0x608"), -Attr("insn","mov x30, #0x0")]), Var("R30",Imm(64)), Int(0,64)), -Def(Tid(400, "%00000190"), Attrs([Attr("address","0x60C"), -Attr("insn","mov x5, x0")]), Var("R5",Imm(64)), Var("R0",Imm(64))), -Def(Tid(407, "%00000197"), Attrs([Attr("address","0x610"), -Attr("insn","ldr x1, [sp]")]), Var("R1",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(413, "%0000019d"), Attrs([Attr("address","0x614"), -Attr("insn","add x2, sp, #0x8")]), Var("R2",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(8,64))), Def(Tid(419, "%000001a3"), - Attrs([Attr("address","0x618"), Attr("insn","mov x6, sp")]), - Var("R6",Imm(64)), Var("R31",Imm(64))), Def(Tid(424, "%000001a8"), - Attrs([Attr("address","0x61C"), Attr("insn","adrp x0, #65536")]), - Var("R0",Imm(64)), Int(65536,64)), Def(Tid(431, "%000001af"), - Attrs([Attr("address","0x620"), Attr("insn","ldr x0, [x0, #0xff0]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(4080,64)),LittleEndian(),64)), -Def(Tid(436, "%000001b4"), Attrs([Attr("address","0x624"), -Attr("insn","mov x3, #0x0")]), Var("R3",Imm(64)), Int(0,64)), -Def(Tid(441, "%000001b9"), Attrs([Attr("address","0x628"), -Attr("insn","mov x4, #0x0")]), Var("R4",Imm(64)), Int(0,64)), -Def(Tid(446, "%000001be"), Attrs([Attr("address","0x62C"), -Attr("insn","bl #-0x6c")]), Var("R30",Imm(64)), Int(1584,64))]), -Jmps([Call(Tid(449, "%000001c1"), Attrs([Attr("address","0x62C"), -Attr("insn","bl #-0x6c")]), Int(1,1), -(Direct(Tid(1_384, "@__libc_start_main")),Direct(Tid(451, "%000001c3"))))])), -Blk(Tid(451, "%000001c3"), Attrs([Attr("address","0x630")]), Phis([]), -Defs([Def(Tid(454, "%000001c6"), Attrs([Attr("address","0x630"), -Attr("insn","bl #-0x40")]), Var("R30",Imm(64)), Int(1588,64))]), -Jmps([Call(Tid(457, "%000001c9"), Attrs([Attr("address","0x630"), -Attr("insn","bl #-0x40")]), Int(1,1), -(Direct(Tid(1_390, "@abort")),Direct(Tid(1_422, "%0000058e"))))])), -Blk(Tid(1_422, "%0000058e"), Attrs([]), Phis([]), Defs([]), -Jmps([Call(Tid(1_423, "%0000058f"), Attrs([]), Int(1,1), -(Direct(Tid(1_391, "@call_weak_fn")),))]))])), Sub(Tid(1_390, "@abort"), - Attrs([Attr("noreturn","()"), Attr("c.proto","void (*)(void)"), -Attr("address","0x5F0"), Attr("stub","()")]), "abort", Args([]), -Blks([Blk(Tid(455, "@abort"), Attrs([Attr("address","0x5F0")]), Phis([]), -Defs([Def(Tid(1_087, "%0000043f"), Attrs([Attr("address","0x5F0"), -Attr("insn","adrp x16, #65536")]), Var("R16",Imm(64)), Int(65536,64)), -Def(Tid(1_094, "%00000446"), Attrs([Attr("address","0x5F4"), -Attr("insn","ldr x17, [x16, #0xfc8]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(4040,64)),LittleEndian(),64)), -Def(Tid(1_100, "%0000044c"), Attrs([Attr("address","0x5F8"), -Attr("insn","add x16, x16, #0xfc8")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(4040,64)))]), Jmps([Call(Tid(1_105, "%00000451"), - Attrs([Attr("address","0x5FC"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), Sub(Tid(1_391, "@call_weak_fn"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x634")]), - "call_weak_fn", Args([Arg(Tid(1_440, "%000005a0"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("call_weak_fn_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(459, "@call_weak_fn"), - Attrs([Attr("address","0x634")]), Phis([]), Defs([Def(Tid(462, "%000001ce"), - Attrs([Attr("address","0x634"), Attr("insn","adrp x0, #65536")]), - Var("R0",Imm(64)), Int(65536,64)), Def(Tid(469, "%000001d5"), - Attrs([Attr("address","0x638"), Attr("insn","ldr x0, [x0, #0xfe8]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(4072,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(475, "%000001db"), Attrs([Attr("address","0x63C"), -Attr("insn","cbz x0, #0x8")]), EQ(Var("R0",Imm(64)),Int(0,64)), -Direct(Tid(473, "%000001d9"))), Goto(Tid(1_424, "%00000590"), Attrs([]), - Int(1,1), Direct(Tid(859, "%0000035b")))])), Blk(Tid(473, "%000001d9"), - Attrs([Attr("address","0x644")]), Phis([]), Defs([]), -Jmps([Call(Tid(481, "%000001e1"), Attrs([Attr("address","0x644"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))])), -Blk(Tid(859, "%0000035b"), Attrs([Attr("address","0x640")]), Phis([]), -Defs([]), Jmps([Goto(Tid(862, "%0000035e"), Attrs([Attr("address","0x640"), -Attr("insn","b #-0x60")]), Int(1,1), Direct(Tid(860, "@__gmon_start__")))])), -Blk(Tid(860, "@__gmon_start__"), Attrs([Attr("address","0x5E0")]), Phis([]), -Defs([Def(Tid(1_065, "%00000429"), Attrs([Attr("address","0x5E0"), -Attr("insn","adrp x16, #65536")]), Var("R16",Imm(64)), Int(65536,64)), -Def(Tid(1_072, "%00000430"), Attrs([Attr("address","0x5E4"), -Attr("insn","ldr x17, [x16, #0xfc0]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(4032,64)),LittleEndian(),64)), -Def(Tid(1_078, "%00000436"), Attrs([Attr("address","0x5E8"), -Attr("insn","add x16, x16, #0xfc0")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(4032,64)))]), Jmps([Call(Tid(1_083, "%0000043b"), - Attrs([Attr("address","0x5EC"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), -Sub(Tid(1_393, "@deregister_tm_clones"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x650")]), - "deregister_tm_clones", Args([Arg(Tid(1_441, "%000005a1"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("deregister_tm_clones_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(487, "@deregister_tm_clones"), - Attrs([Attr("address","0x650")]), Phis([]), Defs([Def(Tid(490, "%000001ea"), - Attrs([Attr("address","0x650"), Attr("insn","adrp x0, #69632")]), - Var("R0",Imm(64)), Int(69632,64)), Def(Tid(496, "%000001f0"), - Attrs([Attr("address","0x654"), Attr("insn","add x0, x0, #0x10")]), - Var("R0",Imm(64)), PLUS(Var("R0",Imm(64)),Int(16,64))), -Def(Tid(501, "%000001f5"), Attrs([Attr("address","0x658"), -Attr("insn","adrp x1, #69632")]), Var("R1",Imm(64)), Int(69632,64)), -Def(Tid(507, "%000001fb"), Attrs([Attr("address","0x65C"), -Attr("insn","add x1, x1, #0x10")]), Var("R1",Imm(64)), -PLUS(Var("R1",Imm(64)),Int(16,64))), Def(Tid(513, "%00000201"), - Attrs([Attr("address","0x660"), Attr("insn","cmp x1, x0")]), - Var("#1",Imm(64)), NOT(Var("R0",Imm(64)))), Def(Tid(518, "%00000206"), - Attrs([Attr("address","0x660"), Attr("insn","cmp x1, x0")]), - Var("#2",Imm(64)), PLUS(Var("R1",Imm(64)),NOT(Var("R0",Imm(64))))), -Def(Tid(524, "%0000020c"), Attrs([Attr("address","0x660"), -Attr("insn","cmp x1, x0")]), Var("VF",Imm(1)), -NEQ(SIGNED(65,PLUS(Var("#2",Imm(64)),Int(1,64))),PLUS(PLUS(SIGNED(65,Var("R1",Imm(64))),SIGNED(65,Var("#1",Imm(64)))),Int(1,65)))), -Def(Tid(530, "%00000212"), Attrs([Attr("address","0x660"), -Attr("insn","cmp x1, x0")]), Var("CF",Imm(1)), -NEQ(UNSIGNED(65,PLUS(Var("#2",Imm(64)),Int(1,64))),PLUS(PLUS(UNSIGNED(65,Var("R1",Imm(64))),UNSIGNED(65,Var("#1",Imm(64)))),Int(1,65)))), -Def(Tid(534, "%00000216"), Attrs([Attr("address","0x660"), -Attr("insn","cmp x1, x0")]), Var("ZF",Imm(1)), -EQ(PLUS(Var("#2",Imm(64)),Int(1,64)),Int(0,64))), Def(Tid(538, "%0000021a"), - Attrs([Attr("address","0x660"), Attr("insn","cmp x1, x0")]), - Var("NF",Imm(1)), Extract(63,63,PLUS(Var("#2",Imm(64)),Int(1,64))))]), -Jmps([Goto(Tid(544, "%00000220"), Attrs([Attr("address","0x664"), -Attr("insn","b.eq #0x18")]), EQ(Var("ZF",Imm(1)),Int(1,1)), -Direct(Tid(542, "%0000021e"))), Goto(Tid(1_425, "%00000591"), Attrs([]), - Int(1,1), Direct(Tid(829, "%0000033d")))])), Blk(Tid(829, "%0000033d"), - Attrs([Attr("address","0x668")]), Phis([]), Defs([Def(Tid(832, "%00000340"), - Attrs([Attr("address","0x668"), Attr("insn","adrp x1, #65536")]), - Var("R1",Imm(64)), Int(65536,64)), Def(Tid(839, "%00000347"), - Attrs([Attr("address","0x66C"), Attr("insn","ldr x1, [x1, #0xfd8]")]), - Var("R1",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R1",Imm(64)),Int(4056,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(844, "%0000034c"), Attrs([Attr("address","0x670"), -Attr("insn","cbz x1, #0xc")]), EQ(Var("R1",Imm(64)),Int(0,64)), -Direct(Tid(542, "%0000021e"))), Goto(Tid(1_426, "%00000592"), Attrs([]), - Int(1,1), Direct(Tid(848, "%00000350")))])), Blk(Tid(542, "%0000021e"), - Attrs([Attr("address","0x67C")]), Phis([]), Defs([]), -Jmps([Call(Tid(550, "%00000226"), Attrs([Attr("address","0x67C"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))])), -Blk(Tid(848, "%00000350"), Attrs([Attr("address","0x674")]), Phis([]), -Defs([Def(Tid(852, "%00000354"), Attrs([Attr("address","0x674"), -Attr("insn","mov x16, x1")]), Var("R16",Imm(64)), Var("R1",Imm(64)))]), -Jmps([Call(Tid(857, "%00000359"), Attrs([Attr("address","0x678"), -Attr("insn","br x16")]), Int(1,1), (Indirect(Var("R16",Imm(64))),))]))])), -Sub(Tid(1_396, "@frame_dummy"), Attrs([Attr("c.proto","signed (*)(void)"), -Attr("address","0x710")]), "frame_dummy", Args([Arg(Tid(1_442, "%000005a2"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("frame_dummy_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(702, "@frame_dummy"), - Attrs([Attr("address","0x710")]), Phis([]), Defs([]), -Jmps([Call(Tid(704, "%000002c0"), Attrs([Attr("address","0x710"), -Attr("insn","b #-0x90")]), Int(1,1), -(Direct(Tid(1_398, "@register_tm_clones")),))]))])), Sub(Tid(1_397, "@main"), - Attrs([Attr("c.proto","signed (*)(signed argc, const char** argv)"), -Attr("address","0x714")]), "main", Args([Arg(Tid(1_443, "%000005a3"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("main_argc",Imm(32)), -LOW(32,Var("R0",Imm(64))), In()), Arg(Tid(1_444, "%000005a4"), - Attrs([Attr("c.layout","**[char : 8]"), Attr("c.data","Top:u8 ptr ptr"), -Attr("c.type"," const char**")]), Var("main_argv",Imm(64)), -Var("R1",Imm(64)), Both()), Arg(Tid(1_445, "%000005a5"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("main_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(706, "@main"), - Attrs([Attr("address","0x714")]), Phis([]), Defs([Def(Tid(709, "%000002c5"), - Attrs([Attr("address","0x714"), Attr("insn","adrp x0, #69632")]), - Var("R0",Imm(64)), Int(69632,64)), Def(Tid(715, "%000002cb"), - Attrs([Attr("address","0x718"), Attr("insn","add x0, x0, #0x18")]), - Var("R0",Imm(64)), PLUS(Var("R0",Imm(64)),Int(24,64))), -Def(Tid(720, "%000002d0"), Attrs([Attr("address","0x71C"), -Attr("insn","mov w1, #0x1")]), Var("R1",Imm(64)), Int(1,64)), -Def(Tid(728, "%000002d8"), Attrs([Attr("address","0x720"), -Attr("insn","str w1, [x0]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("R0",Imm(64)),Extract(31,0,Var("R1",Imm(64))),LittleEndian(),32)), -Def(Tid(733, "%000002dd"), Attrs([Attr("address","0x724"), -Attr("insn","mov w0, #0x0")]), Var("R0",Imm(64)), Int(0,64))]), -Jmps([Call(Tid(738, "%000002e2"), Attrs([Attr("address","0x728"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))]))])), -Sub(Tid(1_398, "@register_tm_clones"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x680")]), - "register_tm_clones", Args([Arg(Tid(1_446, "%000005a6"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("register_tm_clones_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(552, "@register_tm_clones"), Attrs([Attr("address","0x680")]), - Phis([]), Defs([Def(Tid(555, "%0000022b"), Attrs([Attr("address","0x680"), -Attr("insn","adrp x0, #69632")]), Var("R0",Imm(64)), Int(69632,64)), -Def(Tid(561, "%00000231"), Attrs([Attr("address","0x684"), -Attr("insn","add x0, x0, #0x10")]), Var("R0",Imm(64)), -PLUS(Var("R0",Imm(64)),Int(16,64))), Def(Tid(566, "%00000236"), - Attrs([Attr("address","0x688"), Attr("insn","adrp x1, #69632")]), - Var("R1",Imm(64)), Int(69632,64)), Def(Tid(572, "%0000023c"), - Attrs([Attr("address","0x68C"), Attr("insn","add x1, x1, #0x10")]), - Var("R1",Imm(64)), PLUS(Var("R1",Imm(64)),Int(16,64))), -Def(Tid(579, "%00000243"), Attrs([Attr("address","0x690"), -Attr("insn","sub x1, x1, x0")]), Var("R1",Imm(64)), -PLUS(PLUS(Var("R1",Imm(64)),NOT(Var("R0",Imm(64)))),Int(1,64))), -Def(Tid(585, "%00000249"), Attrs([Attr("address","0x694"), -Attr("insn","lsr x2, x1, #63")]), Var("R2",Imm(64)), -Concat(Int(0,63),Extract(63,63,Var("R1",Imm(64))))), -Def(Tid(592, "%00000250"), Attrs([Attr("address","0x698"), -Attr("insn","add x1, x2, x1, asr #3")]), Var("R1",Imm(64)), -PLUS(Var("R2",Imm(64)),ARSHIFT(Var("R1",Imm(64)),Int(3,3)))), -Def(Tid(598, "%00000256"), Attrs([Attr("address","0x69C"), -Attr("insn","asr x1, x1, #1")]), Var("R1",Imm(64)), -SIGNED(64,Extract(63,1,Var("R1",Imm(64)))))]), -Jmps([Goto(Tid(604, "%0000025c"), Attrs([Attr("address","0x6A0"), -Attr("insn","cbz x1, #0x18")]), EQ(Var("R1",Imm(64)),Int(0,64)), -Direct(Tid(602, "%0000025a"))), Goto(Tid(1_427, "%00000593"), Attrs([]), - Int(1,1), Direct(Tid(799, "%0000031f")))])), Blk(Tid(799, "%0000031f"), - Attrs([Attr("address","0x6A4")]), Phis([]), Defs([Def(Tid(802, "%00000322"), - Attrs([Attr("address","0x6A4"), Attr("insn","adrp x2, #65536")]), - Var("R2",Imm(64)), Int(65536,64)), Def(Tid(809, "%00000329"), - Attrs([Attr("address","0x6A8"), Attr("insn","ldr x2, [x2, #0xff8]")]), - Var("R2",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R2",Imm(64)),Int(4088,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(814, "%0000032e"), Attrs([Attr("address","0x6AC"), -Attr("insn","cbz x2, #0xc")]), EQ(Var("R2",Imm(64)),Int(0,64)), -Direct(Tid(602, "%0000025a"))), Goto(Tid(1_428, "%00000594"), Attrs([]), - Int(1,1), Direct(Tid(818, "%00000332")))])), Blk(Tid(602, "%0000025a"), - Attrs([Attr("address","0x6B8")]), Phis([]), Defs([]), -Jmps([Call(Tid(610, "%00000262"), Attrs([Attr("address","0x6B8"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))])), -Blk(Tid(818, "%00000332"), Attrs([Attr("address","0x6B0")]), Phis([]), -Defs([Def(Tid(822, "%00000336"), Attrs([Attr("address","0x6B0"), -Attr("insn","mov x16, x2")]), Var("R16",Imm(64)), Var("R2",Imm(64)))]), -Jmps([Call(Tid(827, "%0000033b"), Attrs([Attr("address","0x6B4"), -Attr("insn","br x16")]), Int(1,1), -(Indirect(Var("R16",Imm(64))),))]))]))]))) \ No newline at end of file diff --git a/src/test/correct/no_interference_update_y/gcc/no_interference_update_y.bir b/src/test/correct/no_interference_update_y/gcc/no_interference_update_y.bir deleted file mode 100644 index 4ec72e984..000000000 --- a/src/test/correct/no_interference_update_y/gcc/no_interference_update_y.bir +++ /dev/null @@ -1,228 +0,0 @@ -00000595: program -00000563: sub __cxa_finalize(__cxa_finalize_result) -00000596: __cxa_finalize_result :: out u32 = low:32[R0] - -0000031b: -00000413: R16 := 0x10000 -0000041a: R17 := mem[R16 + 0xFB8, el]:u64 -00000420: R16 := R16 + 0xFB8 -00000425: call R17 with noreturn - -00000564: sub __do_global_dtors_aux(__do_global_dtors_aux_result) -00000597: __do_global_dtors_aux_result :: out u32 = low:32[R0] - -00000266: -0000026a: #3 := R31 - 0x20 -00000270: mem := mem with [#3, el]:u64 <- R29 -00000276: mem := mem with [#3 + 8, el]:u64 <- R30 -0000027a: R31 := #3 -00000280: R29 := R31 -00000288: mem := mem with [R31 + 0x10, el]:u64 <- R19 -0000028d: R19 := 0x11000 -00000294: R0 := pad:64[mem[R19 + 0x10]] -0000029b: when 31:0[R0] <> 0 goto %00000299 -0000058b: goto %000002e4 - -000002e4: -000002e7: R0 := 0x10000 -000002ee: R0 := mem[R0 + 0xFE0, el]:u64 -000002f4: when R0 = 0 goto %000002f2 -0000058c: goto %0000030b - -0000030b: -0000030e: R0 := 0x11000 -00000315: R0 := mem[R0 + 8, el]:u64 -0000031a: R30 := 0x6F0 -0000031d: call @__cxa_finalize with return %000002f2 - -000002f2: -000002fa: R30 := 0x6F4 -000002fc: call @deregister_tm_clones with return %000002fe - -000002fe: -00000301: R0 := 1 -00000309: mem := mem with [R19 + 0x10] <- 7:0[R0] -0000058d: goto %00000299 - -00000299: -000002a3: R19 := mem[R31 + 0x10, el]:u64 -000002aa: R29 := mem[R31, el]:u64 -000002af: R30 := mem[R31 + 8, el]:u64 -000002b3: R31 := R31 + 0x20 -000002b8: call R30 with noreturn - -00000568: sub __libc_start_main(__libc_start_main_main, __libc_start_main_arg2, __libc_start_main_arg3, __libc_start_main_auxv, __libc_start_main_result) -00000598: __libc_start_main_main :: in u64 = R0 -00000599: __libc_start_main_arg2 :: in u32 = low:32[R1] -0000059a: __libc_start_main_arg3 :: in out u64 = R2 -0000059b: __libc_start_main_auxv :: in out u64 = R3 -0000059c: __libc_start_main_result :: out u32 = low:32[R0] - -000001bf: -000003fd: R16 := 0x10000 -00000404: R17 := mem[R16 + 0xFB0, el]:u64 -0000040a: R16 := R16 + 0xFB0 -0000040f: call R17 with noreturn - -00000569: sub _fini(_fini_result) -0000059d: _fini_result :: out u32 = low:32[R0] - -0000001f: -00000025: #0 := R31 - 0x10 -0000002b: mem := mem with [#0, el]:u64 <- R29 -00000031: mem := mem with [#0 + 8, el]:u64 <- R30 -00000035: R31 := #0 -0000003b: R29 := R31 -00000042: R29 := mem[R31, el]:u64 -00000047: R30 := mem[R31 + 8, el]:u64 -0000004b: R31 := R31 + 0x10 -00000050: call R30 with noreturn - -0000056a: sub _init(_init_result) -0000059e: _init_result :: out u32 = low:32[R0] - -000004bf: -000004c5: #5 := R31 - 0x10 -000004cb: mem := mem with [#5, el]:u64 <- R29 -000004d1: mem := mem with [#5 + 8, el]:u64 <- R30 -000004d5: R31 := #5 -000004db: R29 := R31 -000004e0: R30 := 0x590 -000004e2: call @call_weak_fn with return %000004e4 - -000004e4: -000004e9: R29 := mem[R31, el]:u64 -000004ee: R30 := mem[R31 + 8, el]:u64 -000004f2: R31 := R31 + 0x10 -000004f7: call R30 with noreturn - -0000056b: sub _start(_start_result) -0000059f: _start_result :: out u32 = low:32[R0] - -00000180: -00000185: R29 := 0 -0000018a: R30 := 0 -00000190: R5 := R0 -00000197: R1 := mem[R31, el]:u64 -0000019d: R2 := R31 + 8 -000001a3: R6 := R31 -000001a8: R0 := 0x10000 -000001af: R0 := mem[R0 + 0xFF0, el]:u64 -000001b4: R3 := 0 -000001b9: R4 := 0 -000001be: R30 := 0x630 -000001c1: call @__libc_start_main with return %000001c3 - -000001c3: -000001c6: R30 := 0x634 -000001c9: call @abort with return %0000058e - -0000058e: -0000058f: call @call_weak_fn with noreturn - -0000056e: sub abort() - - -000001c7: -0000043f: R16 := 0x10000 -00000446: R17 := mem[R16 + 0xFC8, el]:u64 -0000044c: R16 := R16 + 0xFC8 -00000451: call R17 with noreturn - -0000056f: sub call_weak_fn(call_weak_fn_result) -000005a0: call_weak_fn_result :: out u32 = low:32[R0] - -000001cb: -000001ce: R0 := 0x10000 -000001d5: R0 := mem[R0 + 0xFE8, el]:u64 -000001db: when R0 = 0 goto %000001d9 -00000590: goto %0000035b - -000001d9: -000001e1: call R30 with noreturn - -0000035b: -0000035e: goto @__gmon_start__ - -0000035c: -00000429: R16 := 0x10000 -00000430: R17 := mem[R16 + 0xFC0, el]:u64 -00000436: R16 := R16 + 0xFC0 -0000043b: call R17 with noreturn - -00000571: sub deregister_tm_clones(deregister_tm_clones_result) -000005a1: deregister_tm_clones_result :: out u32 = low:32[R0] - -000001e7: -000001ea: R0 := 0x11000 -000001f0: R0 := R0 + 0x10 -000001f5: R1 := 0x11000 -000001fb: R1 := R1 + 0x10 -00000201: #1 := ~R0 -00000206: #2 := R1 + ~R0 -0000020c: VF := extend:65[#2 + 1] <> extend:65[R1] + extend:65[#1] + 1 -00000212: CF := pad:65[#2 + 1] <> pad:65[R1] + pad:65[#1] + 1 -00000216: ZF := #2 + 1 = 0 -0000021a: NF := 63:63[#2 + 1] -00000220: when ZF goto %0000021e -00000591: goto %0000033d - -0000033d: -00000340: R1 := 0x10000 -00000347: R1 := mem[R1 + 0xFD8, el]:u64 -0000034c: when R1 = 0 goto %0000021e -00000592: goto %00000350 - -0000021e: -00000226: call R30 with noreturn - -00000350: -00000354: R16 := R1 -00000359: call R16 with noreturn - -00000574: sub frame_dummy(frame_dummy_result) -000005a2: frame_dummy_result :: out u32 = low:32[R0] - -000002be: -000002c0: call @register_tm_clones with noreturn - -00000575: sub main(main_argc, main_argv, main_result) -000005a3: main_argc :: in u32 = low:32[R0] -000005a4: main_argv :: in out u64 = R1 -000005a5: main_result :: out u32 = low:32[R0] - -000002c2: -000002c5: R0 := 0x11000 -000002cb: R0 := R0 + 0x18 -000002d0: R1 := 1 -000002d8: mem := mem with [R0, el]:u32 <- 31:0[R1] -000002dd: R0 := 0 -000002e2: call R30 with noreturn - -00000576: sub register_tm_clones(register_tm_clones_result) -000005a6: register_tm_clones_result :: out u32 = low:32[R0] - -00000228: -0000022b: R0 := 0x11000 -00000231: R0 := R0 + 0x10 -00000236: R1 := 0x11000 -0000023c: R1 := R1 + 0x10 -00000243: R1 := R1 + ~R0 + 1 -00000249: R2 := 0.63:63[R1] -00000250: R1 := R2 + (R1 ~>> 3) -00000256: R1 := extend:64[63:1[R1]] -0000025c: when R1 = 0 goto %0000025a -00000593: goto %0000031f - -0000031f: -00000322: R2 := 0x10000 -00000329: R2 := mem[R2 + 0xFF8, el]:u64 -0000032e: when R2 = 0 goto %0000025a -00000594: goto %00000332 - -0000025a: -00000262: call R30 with noreturn - -00000332: -00000336: R16 := R2 -0000033b: call R16 with noreturn diff --git a/src/test/correct/no_interference_update_y/gcc/no_interference_update_y.expected b/src/test/correct/no_interference_update_y/gcc/no_interference_update_y.expected index 71abf5910..707922203 100644 --- a/src/test/correct/no_interference_update_y/gcc/no_interference_update_y.expected +++ b/src/test/correct/no_interference_update_y/gcc/no_interference_update_y.expected @@ -64,7 +64,7 @@ implementation {:extern} guarantee_reflexive() assert (memory_load32_le(mem, $x_addr) == memory_load32_le(mem, $x_addr)); } -procedure main_1812(); +procedure main(); modifies Gamma_R0, Gamma_R1, Gamma_mem, R0, R1, mem; free requires (memory_load64_le(mem, 69632bv64) == 0bv64); free requires (memory_load64_le(mem, 69640bv64) == 69640bv64); @@ -80,7 +80,7 @@ procedure main_1812(); free ensures (memory_load64_le(mem, 69616bv64) == 1812bv64); free ensures (memory_load64_le(mem, 69640bv64) == 69640bv64); -implementation main_1812() +implementation main() { var x_old: bv32; lmain: @@ -89,15 +89,15 @@ implementation main_1812() R0, Gamma_R0 := bvadd64(R0, 24bv64), Gamma_R0; R1, Gamma_R1 := 1bv64, true; call rely(); - x_old := memory_load32_le(mem, $x_addr); assert (L(mem, R0) ==> Gamma_R1); + x_old := memory_load32_le(mem, $x_addr); mem, Gamma_mem := memory_store32_le(mem, R0, R1[32:0]), gamma_store32(Gamma_mem, R0, Gamma_R1); assert (memory_load32_le(mem, $x_addr) == x_old); assume {:captureState "%000002d8"} true; R0, Gamma_R0 := 0bv64, true; - goto main_1812_basil_return; - main_1812_basil_return: - assume {:captureState "main_1812_basil_return"} true; + goto main_basil_return; + main_basil_return: + assume {:captureState "main_basil_return"} true; return; } diff --git a/src/test/correct/no_interference_update_y/gcc/no_interference_update_y.gts b/src/test/correct/no_interference_update_y/gcc/no_interference_update_y.gts deleted file mode 100644 index 4eaadb272..000000000 Binary files a/src/test/correct/no_interference_update_y/gcc/no_interference_update_y.gts and /dev/null differ diff --git a/src/test/correct/no_interference_update_y/gcc/no_interference_update_y.md5sum b/src/test/correct/no_interference_update_y/gcc/no_interference_update_y.md5sum new file mode 100644 index 000000000..3a75657a6 --- /dev/null +++ b/src/test/correct/no_interference_update_y/gcc/no_interference_update_y.md5sum @@ -0,0 +1,5 @@ +3f15921edf33747b6f65b33f8445a00d correct/no_interference_update_y/gcc/a.out +3cf9c36098c9be4e7180a47b9957904c correct/no_interference_update_y/gcc/no_interference_update_y.adt +f42d1772bed691600dc01ae2aa5726b9 correct/no_interference_update_y/gcc/no_interference_update_y.bir +d576bf613221940fcc116301abe0a4e3 correct/no_interference_update_y/gcc/no_interference_update_y.relf +455355ec4bed66d49f207aa9d78ce590 correct/no_interference_update_y/gcc/no_interference_update_y.gts diff --git a/src/test/correct/no_interference_update_y/gcc/no_interference_update_y.relf b/src/test/correct/no_interference_update_y/gcc/no_interference_update_y.relf deleted file mode 100644 index ece355045..000000000 --- a/src/test/correct/no_interference_update_y/gcc/no_interference_update_y.relf +++ /dev/null @@ -1,122 +0,0 @@ - -Relocation section '.rela.dyn' at offset 0x460 contains 8 entries: - Offset Info Type Symbol's Value Symbol's Name + Addend -0000000000010d98 0000000000000403 R_AARCH64_RELATIVE 710 -0000000000010da0 0000000000000403 R_AARCH64_RELATIVE 6c0 -0000000000010ff0 0000000000000403 R_AARCH64_RELATIVE 714 -0000000000011008 0000000000000403 R_AARCH64_RELATIVE 11008 -0000000000010fd8 0000000400000401 R_AARCH64_GLOB_DAT 0000000000000000 _ITM_deregisterTMCloneTable + 0 -0000000000010fe0 0000000500000401 R_AARCH64_GLOB_DAT 0000000000000000 __cxa_finalize@GLIBC_2.17 + 0 -0000000000010fe8 0000000600000401 R_AARCH64_GLOB_DAT 0000000000000000 __gmon_start__ + 0 -0000000000010ff8 0000000800000401 R_AARCH64_GLOB_DAT 0000000000000000 _ITM_registerTMCloneTable + 0 - -Relocation section '.rela.plt' at offset 0x520 contains 4 entries: - Offset Info Type Symbol's Value Symbol's Name + Addend -0000000000010fb0 0000000300000402 R_AARCH64_JUMP_SLOT 0000000000000000 __libc_start_main@GLIBC_2.34 + 0 -0000000000010fb8 0000000500000402 R_AARCH64_JUMP_SLOT 0000000000000000 __cxa_finalize@GLIBC_2.17 + 0 -0000000000010fc0 0000000600000402 R_AARCH64_JUMP_SLOT 0000000000000000 __gmon_start__ + 0 -0000000000010fc8 0000000700000402 R_AARCH64_JUMP_SLOT 0000000000000000 abort@GLIBC_2.17 + 0 - -Symbol table '.dynsym' contains 9 entries: - Num: Value Size Type Bind Vis Ndx Name - 0: 0000000000000000 0 NOTYPE LOCAL DEFAULT UND - 1: 0000000000000580 0 SECTION LOCAL DEFAULT 11 .init - 2: 0000000000011000 0 SECTION LOCAL DEFAULT 22 .data - 3: 0000000000000000 0 FUNC GLOBAL DEFAULT UND __libc_start_main@GLIBC_2.34 (2) - 4: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_deregisterTMCloneTable - 5: 0000000000000000 0 FUNC WEAK DEFAULT UND __cxa_finalize@GLIBC_2.17 (3) - 6: 0000000000000000 0 NOTYPE WEAK DEFAULT UND __gmon_start__ - 7: 0000000000000000 0 FUNC GLOBAL DEFAULT UND abort@GLIBC_2.17 (3) - 8: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_registerTMCloneTable - -Symbol table '.symtab' contains 89 entries: - Num: Value Size Type Bind Vis Ndx Name - 0: 0000000000000000 0 NOTYPE LOCAL DEFAULT UND - 1: 0000000000000238 0 SECTION LOCAL DEFAULT 1 .interp - 2: 0000000000000254 0 SECTION LOCAL DEFAULT 2 .note.gnu.build-id - 3: 0000000000000278 0 SECTION LOCAL DEFAULT 3 .note.ABI-tag - 4: 0000000000000298 0 SECTION LOCAL DEFAULT 4 .gnu.hash - 5: 00000000000002b8 0 SECTION LOCAL DEFAULT 5 .dynsym - 6: 0000000000000390 0 SECTION LOCAL DEFAULT 6 .dynstr - 7: 000000000000041e 0 SECTION LOCAL DEFAULT 7 .gnu.version - 8: 0000000000000430 0 SECTION LOCAL DEFAULT 8 .gnu.version_r - 9: 0000000000000460 0 SECTION LOCAL DEFAULT 9 .rela.dyn - 10: 0000000000000520 0 SECTION LOCAL DEFAULT 10 .rela.plt - 11: 0000000000000580 0 SECTION LOCAL DEFAULT 11 .init - 12: 00000000000005a0 0 SECTION LOCAL DEFAULT 12 .plt - 13: 0000000000000600 0 SECTION LOCAL DEFAULT 13 .text - 14: 000000000000072c 0 SECTION LOCAL DEFAULT 14 .fini - 15: 0000000000000740 0 SECTION LOCAL DEFAULT 15 .rodata - 16: 0000000000000744 0 SECTION LOCAL DEFAULT 16 .eh_frame_hdr - 17: 0000000000000780 0 SECTION LOCAL DEFAULT 17 .eh_frame - 18: 0000000000010d98 0 SECTION LOCAL DEFAULT 18 .init_array - 19: 0000000000010da0 0 SECTION LOCAL DEFAULT 19 .fini_array - 20: 0000000000010da8 0 SECTION LOCAL DEFAULT 20 .dynamic - 21: 0000000000010f98 0 SECTION LOCAL DEFAULT 21 .got - 22: 0000000000011000 0 SECTION LOCAL DEFAULT 22 .data - 23: 0000000000011010 0 SECTION LOCAL DEFAULT 23 .bss - 24: 0000000000000000 0 SECTION LOCAL DEFAULT 24 .comment - 25: 0000000000000000 0 FILE LOCAL DEFAULT ABS Scrt1.o - 26: 0000000000000278 0 NOTYPE LOCAL DEFAULT 3 $d - 27: 0000000000000278 32 OBJECT LOCAL DEFAULT 3 __abi_tag - 28: 0000000000000600 0 NOTYPE LOCAL DEFAULT 13 $x - 29: 0000000000000794 0 NOTYPE LOCAL DEFAULT 17 $d - 30: 0000000000000740 0 NOTYPE LOCAL DEFAULT 15 $d - 31: 0000000000000000 0 FILE LOCAL DEFAULT ABS crti.o - 32: 0000000000000634 0 NOTYPE LOCAL DEFAULT 13 $x - 33: 0000000000000634 20 FUNC LOCAL DEFAULT 13 call_weak_fn - 34: 0000000000000580 0 NOTYPE LOCAL DEFAULT 11 $x - 35: 000000000000072c 0 NOTYPE LOCAL DEFAULT 14 $x - 36: 0000000000000000 0 FILE LOCAL DEFAULT ABS crtn.o - 37: 0000000000000590 0 NOTYPE LOCAL DEFAULT 11 $x - 38: 0000000000000738 0 NOTYPE LOCAL DEFAULT 14 $x - 39: 0000000000000000 0 FILE LOCAL DEFAULT ABS crtstuff.c - 40: 0000000000000650 0 NOTYPE LOCAL DEFAULT 13 $x - 41: 0000000000000650 0 FUNC LOCAL DEFAULT 13 deregister_tm_clones - 42: 0000000000000680 0 FUNC LOCAL DEFAULT 13 register_tm_clones - 43: 0000000000011008 0 NOTYPE LOCAL DEFAULT 22 $d - 44: 00000000000006c0 0 FUNC LOCAL DEFAULT 13 __do_global_dtors_aux - 45: 0000000000011010 1 OBJECT LOCAL DEFAULT 23 completed.0 - 46: 0000000000010da0 0 NOTYPE LOCAL DEFAULT 19 $d - 47: 0000000000010da0 0 OBJECT LOCAL DEFAULT 19 __do_global_dtors_aux_fini_array_entry - 48: 0000000000000710 0 FUNC LOCAL DEFAULT 13 frame_dummy - 49: 0000000000010d98 0 NOTYPE LOCAL DEFAULT 18 $d - 50: 0000000000010d98 0 OBJECT LOCAL DEFAULT 18 __frame_dummy_init_array_entry - 51: 00000000000007a8 0 NOTYPE LOCAL DEFAULT 17 $d - 52: 0000000000011010 0 NOTYPE LOCAL DEFAULT 23 $d - 53: 0000000000000000 0 FILE LOCAL DEFAULT ABS no_interference_update_y.c - 54: 0000000000011014 0 NOTYPE LOCAL DEFAULT 23 $d - 55: 0000000000000714 0 NOTYPE LOCAL DEFAULT 13 $x - 56: 0000000000000808 0 NOTYPE LOCAL DEFAULT 17 $d - 57: 0000000000000000 0 FILE LOCAL DEFAULT ABS crtstuff.c - 58: 000000000000081c 0 NOTYPE LOCAL DEFAULT 17 $d - 59: 000000000000081c 0 OBJECT LOCAL DEFAULT 17 __FRAME_END__ - 60: 0000000000000000 0 FILE LOCAL DEFAULT ABS - 61: 0000000000010da8 0 OBJECT LOCAL DEFAULT ABS _DYNAMIC - 62: 0000000000000744 0 NOTYPE LOCAL DEFAULT 16 __GNU_EH_FRAME_HDR - 63: 0000000000010fd0 0 OBJECT LOCAL DEFAULT ABS _GLOBAL_OFFSET_TABLE_ - 64: 00000000000005a0 0 NOTYPE LOCAL DEFAULT 12 $x - 65: 0000000000000000 0 FUNC GLOBAL DEFAULT UND __libc_start_main@GLIBC_2.34 - 66: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_deregisterTMCloneTable - 67: 0000000000011000 0 NOTYPE WEAK DEFAULT 22 data_start - 68: 0000000000011010 0 NOTYPE GLOBAL DEFAULT 23 __bss_start__ - 69: 0000000000000000 0 FUNC WEAK DEFAULT UND __cxa_finalize@GLIBC_2.17 - 70: 0000000000011020 0 NOTYPE GLOBAL DEFAULT 23 _bss_end__ - 71: 0000000000011010 0 NOTYPE GLOBAL DEFAULT 22 _edata - 72: 0000000000011014 4 OBJECT GLOBAL DEFAULT 23 x - 73: 000000000000072c 0 FUNC GLOBAL HIDDEN 14 _fini - 74: 0000000000011020 0 NOTYPE GLOBAL DEFAULT 23 __bss_end__ - 75: 0000000000011000 0 NOTYPE GLOBAL DEFAULT 22 __data_start - 76: 0000000000000000 0 NOTYPE WEAK DEFAULT UND __gmon_start__ - 77: 0000000000011008 0 OBJECT GLOBAL HIDDEN 22 __dso_handle - 78: 0000000000000000 0 FUNC GLOBAL DEFAULT UND abort@GLIBC_2.17 - 79: 0000000000000740 4 OBJECT GLOBAL DEFAULT 15 _IO_stdin_used - 80: 0000000000011020 0 NOTYPE GLOBAL DEFAULT 23 _end - 81: 0000000000000600 52 FUNC GLOBAL DEFAULT 13 _start - 82: 0000000000011020 0 NOTYPE GLOBAL DEFAULT 23 __end__ - 83: 0000000000011018 4 OBJECT GLOBAL DEFAULT 23 y - 84: 0000000000011010 0 NOTYPE GLOBAL DEFAULT 23 __bss_start - 85: 0000000000000714 24 FUNC GLOBAL DEFAULT 13 main - 86: 0000000000011010 0 OBJECT GLOBAL HIDDEN 22 __TMC_END__ - 87: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_registerTMCloneTable - 88: 0000000000000580 0 FUNC GLOBAL HIDDEN 11 _init diff --git a/src/test/correct/no_interference_update_y/gcc/no_interference_update_y_gtirb.expected b/src/test/correct/no_interference_update_y/gcc/no_interference_update_y_gtirb.expected index e012b55f9..046da73bd 100644 --- a/src/test/correct/no_interference_update_y/gcc/no_interference_update_y_gtirb.expected +++ b/src/test/correct/no_interference_update_y/gcc/no_interference_update_y_gtirb.expected @@ -64,7 +64,7 @@ implementation {:extern} guarantee_reflexive() assert (memory_load32_le(mem, $x_addr) == memory_load32_le(mem, $x_addr)); } -procedure main_1812(); +procedure main(); modifies Gamma_R0, Gamma_R1, Gamma_mem, R0, R1, mem; free requires (memory_load64_le(mem, 69632bv64) == 0bv64); free requires (memory_load64_le(mem, 69640bv64) == 69640bv64); @@ -80,24 +80,24 @@ procedure main_1812(); free ensures (memory_load64_le(mem, 69616bv64) == 1812bv64); free ensures (memory_load64_le(mem, 69640bv64) == 69640bv64); -implementation main_1812() +implementation main() { var x_old: bv32; - main_1812__0__Wy8teY__S~m6dNMhY03xKA: - assume {:captureState "main_1812__0__Wy8teY__S~m6dNMhY03xKA"} true; + $main$__0__$Wy8teY__S~m6dNMhY03xKA: + assume {:captureState "$main$__0__$Wy8teY__S~m6dNMhY03xKA"} true; R0, Gamma_R0 := 69632bv64, true; R0, Gamma_R0 := bvadd64(R0, 24bv64), Gamma_R0; R1, Gamma_R1 := 1bv64, true; call rely(); - x_old := memory_load32_le(mem, $x_addr); assert (L(mem, R0) ==> Gamma_R1); + x_old := memory_load32_le(mem, $x_addr); mem, Gamma_mem := memory_store32_le(mem, R0, R1[32:0]), gamma_store32(Gamma_mem, R0, Gamma_R1); assert (memory_load32_le(mem, $x_addr) == x_old); - assume {:captureState "1824_0"} true; + assume {:captureState "1824$0"} true; R0, Gamma_R0 := 0bv64, true; - goto main_1812_basil_return; - main_1812_basil_return: - assume {:captureState "main_1812_basil_return"} true; + goto main_basil_return; + main_basil_return: + assume {:captureState "main_basil_return"} true; return; } diff --git a/src/test/correct/no_interference_update_y/gcc_O2/no_interference_update_y.adt b/src/test/correct/no_interference_update_y/gcc_O2/no_interference_update_y.adt deleted file mode 100644 index 1dcc782a5..000000000 --- a/src/test/correct/no_interference_update_y/gcc_O2/no_interference_update_y.adt +++ /dev/null @@ -1,490 +0,0 @@ -Project(Attrs([Attr("filename","\"gcc_O2/no_interference_update_y.out\""), -Attr("image-specification","(declare abi (name str))\n(declare arch (name str))\n(declare base-address (addr int))\n(declare bias (off int))\n(declare bits (size int))\n(declare code-region (addr int) (size int) (off int))\n(declare code-start (addr int))\n(declare entry-point (addr int))\n(declare external-reference (addr int) (name str))\n(declare format (name str))\n(declare is-executable (flag bool))\n(declare is-little-endian (flag bool))\n(declare llvm:base-address (addr int))\n(declare llvm:code-entry (name str) (off int) (size int))\n(declare llvm:coff-import-library (name str))\n(declare llvm:coff-virtual-section-header (name str) (addr int) (size int))\n(declare llvm:elf-program-header (name str) (off int) (size int))\n(declare llvm:elf-program-header-flags (name str) (ld bool) (r bool) \n (w bool) (x bool))\n(declare llvm:elf-virtual-program-header (name str) (addr int) (size int))\n(declare llvm:entry-point (addr int))\n(declare llvm:macho-symbol (name str) (value int))\n(declare llvm:name-reference (at int) (name str))\n(declare llvm:relocation (at int) (addr int))\n(declare llvm:section-entry (name str) (addr int) (size int) (off int))\n(declare llvm:section-flags (name str) (r bool) (w bool) (x bool))\n(declare llvm:segment-command (name str) (off int) (size int))\n(declare llvm:segment-command-flags (name str) (r bool) (w bool) (x bool))\n(declare llvm:symbol-entry (name str) (addr int) (size int) (off int)\n (value int))\n(declare llvm:virtual-segment-command (name str) (addr int) (size int))\n(declare mapped (addr int) (size int) (off int))\n(declare named-region (addr int) (size int) (name str))\n(declare named-symbol (addr int) (name str))\n(declare require (name str))\n(declare section (addr int) (size int))\n(declare segment (addr int) (size int) (r bool) (w bool) (x bool))\n(declare subarch (name str))\n(declare symbol-chunk (addr int) (size int) (root int))\n(declare symbol-value (addr int) (value int))\n(declare system (name str))\n(declare vendor (name str))\n\n(abi unknown)\n(arch aarch64)\n(base-address 0)\n(bias 0)\n(bits 64)\n(code-region 1876 20 1876)\n(code-region 1536 340 1536)\n(code-region 1440 96 1440)\n(code-region 1408 24 1408)\n(code-start 1652)\n(code-start 1600)\n(code-start 1536)\n(entry-point 1600)\n(external-reference 69592 _ITM_deregisterTMCloneTable)\n(external-reference 69600 __cxa_finalize)\n(external-reference 69608 __gmon_start__)\n(external-reference 69624 _ITM_registerTMCloneTable)\n(external-reference 69552 __libc_start_main)\n(external-reference 69560 __cxa_finalize)\n(external-reference 69568 __gmon_start__)\n(external-reference 69576 abort)\n(format elf)\n(is-executable true)\n(is-little-endian true)\n(llvm:base-address 0)\n(llvm:code-entry abort 0 0)\n(llvm:code-entry __cxa_finalize 0 0)\n(llvm:code-entry __libc_start_main 0 0)\n(llvm:code-entry _init 1408 0)\n(llvm:code-entry main 1536 20)\n(llvm:code-entry _start 1600 52)\n(llvm:code-entry abort@GLIBC_2.17 0 0)\n(llvm:code-entry _fini 1876 0)\n(llvm:code-entry __cxa_finalize@GLIBC_2.17 0 0)\n(llvm:code-entry __libc_start_main@GLIBC_2.34 0 0)\n(llvm:code-entry frame_dummy 1872 0)\n(llvm:code-entry __do_global_dtors_aux 1792 0)\n(llvm:code-entry register_tm_clones 1728 0)\n(llvm:code-entry deregister_tm_clones 1680 0)\n(llvm:code-entry call_weak_fn 1652 20)\n(llvm:code-entry .fini 1876 20)\n(llvm:code-entry .text 1536 340)\n(llvm:code-entry .plt 1440 96)\n(llvm:code-entry .init 1408 24)\n(llvm:elf-program-header 08 3480 616)\n(llvm:elf-program-header 07 0 0)\n(llvm:elf-program-header 06 1900 60)\n(llvm:elf-program-header 05 596 68)\n(llvm:elf-program-header 04 3496 496)\n(llvm:elf-program-header 03 3480 632)\n(llvm:elf-program-header 02 0 2120)\n(llvm:elf-program-header 01 568 27)\n(llvm:elf-program-header 00 64 504)\n(llvm:elf-program-header-flags 08 false true false false)\n(llvm:elf-program-header-flags 07 false true true false)\n(llvm:elf-program-header-flags 06 false true false false)\n(llvm:elf-program-header-flags 05 false true false false)\n(llvm:elf-program-header-flags 04 false true true false)\n(llvm:elf-program-header-flags 03 true true true false)\n(llvm:elf-program-header-flags 02 true true false true)\n(llvm:elf-program-header-flags 01 false true false false)\n(llvm:elf-program-header-flags 00 false true false false)\n(llvm:elf-virtual-program-header 08 69016 616)\n(llvm:elf-virtual-program-header 07 0 0)\n(llvm:elf-virtual-program-header 06 1900 60)\n(llvm:elf-virtual-program-header 05 596 68)\n(llvm:elf-virtual-program-header 04 69032 496)\n(llvm:elf-virtual-program-header 03 69016 648)\n(llvm:elf-virtual-program-header 02 0 2120)\n(llvm:elf-virtual-program-header 01 568 27)\n(llvm:elf-virtual-program-header 00 64 504)\n(llvm:entry-point 1600)\n(llvm:name-reference 69576 abort)\n(llvm:name-reference 69568 __gmon_start__)\n(llvm:name-reference 69560 __cxa_finalize)\n(llvm:name-reference 69552 __libc_start_main)\n(llvm:name-reference 69624 _ITM_registerTMCloneTable)\n(llvm:name-reference 69608 __gmon_start__)\n(llvm:name-reference 69600 __cxa_finalize)\n(llvm:name-reference 69592 _ITM_deregisterTMCloneTable)\n(llvm:section-entry .shstrtab 0 250 6856)\n(llvm:section-entry .strtab 0 560 6296)\n(llvm:section-entry .symtab 0 2136 4160)\n(llvm:section-entry .comment 0 43 4112)\n(llvm:section-entry .bss 69648 16 4112)\n(llvm:section-entry .data 69632 16 4096)\n(llvm:section-entry .got 69528 104 3992)\n(llvm:section-entry .dynamic 69032 496 3496)\n(llvm:section-entry .fini_array 69024 8 3488)\n(llvm:section-entry .init_array 69016 8 3480)\n(llvm:section-entry .eh_frame 1960 160 1960)\n(llvm:section-entry .eh_frame_hdr 1900 60 1900)\n(llvm:section-entry .rodata 1896 4 1896)\n(llvm:section-entry .fini 1876 20 1876)\n(llvm:section-entry .text 1536 340 1536)\n(llvm:section-entry .plt 1440 96 1440)\n(llvm:section-entry .init 1408 24 1408)\n(llvm:section-entry .rela.plt 1312 96 1312)\n(llvm:section-entry .rela.dyn 1120 192 1120)\n(llvm:section-entry .gnu.version_r 1072 48 1072)\n(llvm:section-entry .gnu.version 1054 18 1054)\n(llvm:section-entry .dynstr 912 141 912)\n(llvm:section-entry .dynsym 696 216 696)\n(llvm:section-entry .gnu.hash 664 28 664)\n(llvm:section-entry .note.ABI-tag 632 32 632)\n(llvm:section-entry .note.gnu.build-id 596 36 596)\n(llvm:section-entry .interp 568 27 568)\n(llvm:section-flags .shstrtab true false false)\n(llvm:section-flags .strtab true false false)\n(llvm:section-flags .symtab true false false)\n(llvm:section-flags .comment true false false)\n(llvm:section-flags .bss true true false)\n(llvm:section-flags .data true true false)\n(llvm:section-flags .got true true false)\n(llvm:section-flags .dynamic true true false)\n(llvm:section-flags .fini_array true true false)\n(llvm:section-flags .init_array true true false)\n(llvm:section-flags .eh_frame true false false)\n(llvm:section-flags .eh_frame_hdr true false false)\n(llvm:section-flags .rodata true false false)\n(llvm:section-flags .fini true false true)\n(llvm:section-flags .text true false true)\n(llvm:section-flags .plt true false true)\n(llvm:section-flags .init true false true)\n(llvm:section-flags .rela.plt true false false)\n(llvm:section-flags .rela.dyn true false false)\n(llvm:section-flags .gnu.version_r true false false)\n(llvm:section-flags .gnu.version true false false)\n(llvm:section-flags .dynstr true false false)\n(llvm:section-flags .dynsym true false false)\n(llvm:section-flags .gnu.hash true false false)\n(llvm:section-flags .note.ABI-tag true false false)\n(llvm:section-flags .note.gnu.build-id true false false)\n(llvm:section-flags .interp true false false)\n(llvm:symbol-entry abort 0 0 0 0)\n(llvm:symbol-entry __cxa_finalize 0 0 0 0)\n(llvm:symbol-entry __libc_start_main 0 0 0 0)\n(llvm:symbol-entry _init 1408 0 1408 1408)\n(llvm:symbol-entry main 1536 20 1536 1536)\n(llvm:symbol-entry _start 1600 52 1600 1600)\n(llvm:symbol-entry abort@GLIBC_2.17 0 0 0 0)\n(llvm:symbol-entry _fini 1876 0 1876 1876)\n(llvm:symbol-entry __cxa_finalize@GLIBC_2.17 0 0 0 0)\n(llvm:symbol-entry __libc_start_main@GLIBC_2.34 0 0 0 0)\n(llvm:symbol-entry frame_dummy 1872 0 1872 1872)\n(llvm:symbol-entry __do_global_dtors_aux 1792 0 1792 1792)\n(llvm:symbol-entry register_tm_clones 1728 0 1728 1728)\n(llvm:symbol-entry deregister_tm_clones 1680 0 1680 1680)\n(llvm:symbol-entry call_weak_fn 1652 20 1652 1652)\n(mapped 0 2120 0)\n(mapped 69016 632 3480)\n(named-region 0 2120 02)\n(named-region 69016 648 03)\n(named-region 568 27 .interp)\n(named-region 596 36 .note.gnu.build-id)\n(named-region 632 32 .note.ABI-tag)\n(named-region 664 28 .gnu.hash)\n(named-region 696 216 .dynsym)\n(named-region 912 141 .dynstr)\n(named-region 1054 18 .gnu.version)\n(named-region 1072 48 .gnu.version_r)\n(named-region 1120 192 .rela.dyn)\n(named-region 1312 96 .rela.plt)\n(named-region 1408 24 .init)\n(named-region 1440 96 .plt)\n(named-region 1536 340 .text)\n(named-region 1876 20 .fini)\n(named-region 1896 4 .rodata)\n(named-region 1900 60 .eh_frame_hdr)\n(named-region 1960 160 .eh_frame)\n(named-region 69016 8 .init_array)\n(named-region 69024 8 .fini_array)\n(named-region 69032 496 .dynamic)\n(named-region 69528 104 .got)\n(named-region 69632 16 .data)\n(named-region 69648 16 .bss)\n(named-region 0 43 .comment)\n(named-region 0 2136 .symtab)\n(named-region 0 560 .strtab)\n(named-region 0 250 .shstrtab)\n(named-symbol 1652 call_weak_fn)\n(named-symbol 1680 deregister_tm_clones)\n(named-symbol 1728 register_tm_clones)\n(named-symbol 1792 __do_global_dtors_aux)\n(named-symbol 1872 frame_dummy)\n(named-symbol 0 __libc_start_main@GLIBC_2.34)\n(named-symbol 0 __cxa_finalize@GLIBC_2.17)\n(named-symbol 1876 _fini)\n(named-symbol 0 abort@GLIBC_2.17)\n(named-symbol 1600 _start)\n(named-symbol 1536 main)\n(named-symbol 1408 _init)\n(named-symbol 0 __libc_start_main)\n(named-symbol 0 __cxa_finalize)\n(named-symbol 0 abort)\n(require libc.so.6)\n(section 568 27)\n(section 596 36)\n(section 632 32)\n(section 664 28)\n(section 696 216)\n(section 912 141)\n(section 1054 18)\n(section 1072 48)\n(section 1120 192)\n(section 1312 96)\n(section 1408 24)\n(section 1440 96)\n(section 1536 340)\n(section 1876 20)\n(section 1896 4)\n(section 1900 60)\n(section 1960 160)\n(section 69016 8)\n(section 69024 8)\n(section 69032 496)\n(section 69528 104)\n(section 69632 16)\n(section 69648 16)\n(section 0 43)\n(section 0 2136)\n(section 0 560)\n(section 0 250)\n(segment 0 2120 true false true)\n(segment 69016 648 true true false)\n(subarch v8)\n(symbol-chunk 1652 20 1652)\n(symbol-chunk 1600 52 1600)\n(symbol-chunk 1536 20 1536)\n(symbol-value 1652 1652)\n(symbol-value 1680 1680)\n(symbol-value 1728 1728)\n(symbol-value 1792 1792)\n(symbol-value 1872 1872)\n(symbol-value 1876 1876)\n(symbol-value 1600 1600)\n(symbol-value 1536 1536)\n(symbol-value 1408 1408)\n(symbol-value 0 0)\n(system \"\")\n(vendor \"\")\n"), -Attr("abi-name","\"aarch64-linux-gnu-elf\"")]), -Sections([Section(".shstrtab", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x40\x06\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xc8\x1b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x38\x00\x09\x00\x40\x00\x1c\x00\x1b\x00\x06\x00\x00\x00\x04\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x04\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x48\x08\x00\x00\x00\x00\x00\x00\x48\x08\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x01\x00\x00\x00\x06\x00\x00\x00\x98\x0d\x00\x00\x00\x00\x00\x00\x98\x0d"), -Section(".strtab", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x40\x06\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xc8\x1b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x38\x00\x09\x00\x40\x00\x1c\x00\x1b\x00\x06\x00\x00\x00\x04\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x04\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x48\x08\x00\x00\x00\x00\x00\x00\x48\x08\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x01\x00\x00\x00\x06\x00\x00\x00\x98\x0d\x00\x00\x00\x00\x00\x00\x98\x0d\x01\x00\x00\x00\x00\x00\x98\x0d\x01\x00\x00\x00\x00\x00\x78\x02\x00\x00\x00\x00\x00\x00\x88\x02\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x02\x00\x00\x00\x06\x00\x00\x00\xa8\x0d\x00\x00\x00\x00\x00\x00\xa8\x0d\x01\x00\x00\x00\x00\x00\xa8\x0d\x01\x00\x00\x00\x00\x00\xf0\x01\x00\x00\x00\x00\x00\x00\xf0\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x04\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x50\xe5\x74\x64\x04\x00\x00\x00\x6c\x07\x00\x00\x00\x00\x00\x00\x6c\x07\x00\x00\x00\x00\x00\x00\x6c\x07\x00\x00\x00\x00\x00\x00\x3c\x00\x00\x00\x00\x00\x00\x00\x3c\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x51\xe5\x74\x64\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x52\xe5\x74\x64\x04\x00\x00\x00\x98\x0d\x00\x00\x00\x00\x00\x00\x98\x0d\x01\x00\x00\x00\x00\x00\x98\x0d\x01\x00\x00\x00\x00\x00\x68\x02\x00\x00\x00\x00\x00\x00\x68\x02\x00\x00\x00\x00\x00\x00"), -Section(".comment", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x40\x06\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xc8\x1b\x00"), -Section(".interp", 0x238, "\x2f\x6c\x69\x62\x2f\x6c\x64\x2d\x6c\x69\x6e\x75\x78\x2d\x61\x61\x72\x63\x68\x36\x34\x2e\x73\x6f\x2e\x31\x00"), -Section(".note.gnu.build-id", 0x254, "\x04\x00\x00\x00\x14\x00\x00\x00\x03\x00\x00\x00\x47\x4e\x55\x00\x2a\x88\x26\x3f\xcc\x61\x20\x18\x6c\x1e\x3e\x20\xf1\x02\x59\x73\x73\xc3\x99\xa8"), -Section(".note.ABI-tag", 0x278, "\x04\x00\x00\x00\x10\x00\x00\x00\x01\x00\x00\x00\x47\x4e\x55\x00\x00\x00\x00\x00\x03\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00"), -Section(".gnu.hash", 0x298, "\x01\x00\x00\x00\x01\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".dynsym", 0x2B8, "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x0b\x00\x80\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x16\x00\x00\x10\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x48\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x22\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x22\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x73\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".dynstr", 0x390, "\x00\x5f\x5f\x63\x78\x61\x5f\x66\x69\x6e\x61\x6c\x69\x7a\x65\x00\x5f\x5f\x6c\x69\x62\x63\x5f\x73\x74\x61\x72\x74\x5f\x6d\x61\x69\x6e\x00\x61\x62\x6f\x72\x74\x00\x6c\x69\x62\x63\x2e\x73\x6f\x2e\x36\x00\x47\x4c\x49\x42\x43\x5f\x32\x2e\x31\x37\x00\x47\x4c\x49\x42\x43\x5f\x32\x2e\x33\x34\x00\x5f\x49\x54\x4d\x5f\x64\x65\x72\x65\x67\x69\x73\x74\x65\x72\x54\x4d\x43\x6c\x6f\x6e\x65\x54\x61\x62\x6c\x65\x00\x5f\x5f\x67\x6d\x6f\x6e\x5f\x73\x74\x61\x72\x74\x5f\x5f\x00\x5f\x49\x54\x4d\x5f\x72\x65\x67\x69\x73\x74\x65\x72\x54\x4d\x43\x6c\x6f\x6e\x65\x54\x61\x62\x6c\x65\x00"), -Section(".gnu.version", 0x41E, "\x00\x00\x00\x00\x00\x00\x02\x00\x01\x00\x03\x00\x01\x00\x03\x00\x01\x00"), -Section(".gnu.version_r", 0x430, "\x01\x00\x02\x00\x28\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x97\x91\x96\x06\x00\x00\x03\x00\x32\x00\x00\x00\x10\x00\x00\x00\xb4\x91\x96\x06\x00\x00\x02\x00\x3d\x00\x00\x00\x00\x00\x00\x00"), -Section(".rela.dyn", 0x460, "\x98\x0d\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x50\x07\x00\x00\x00\x00\x00\x00\xa0\x0d\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\xf0\x0f\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x00\x06\x00\x00\x00\x00\x00\x00\x08\x10\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x08\x10\x01\x00\x00\x00\x00\x00\xd8\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe0\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe8\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xf8\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".rela.plt", 0x520, "\xb0\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xb8\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xc0\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xc8\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".init", 0x580, "\x1f\x20\x03\xd5\xfd\x7b\xbf\xa9\xfd\x03\x00\x91\x3a\x00\x00\x94\xfd\x7b\xc1\xa8\xc0\x03\x5f\xd6"), -Section(".plt", 0x5A0, "\xf0\x7b\xbf\xa9\x90\x00\x00\x90\x11\xd6\x47\xf9\x10\xa2\x3e\x91\x20\x02\x1f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x90\x00\x00\x90\x11\xda\x47\xf9\x10\xc2\x3e\x91\x20\x02\x1f\xd6\x90\x00\x00\x90\x11\xde\x47\xf9\x10\xe2\x3e\x91\x20\x02\x1f\xd6\x90\x00\x00\x90\x11\xe2\x47\xf9\x10\x02\x3f\x91\x20\x02\x1f\xd6\x90\x00\x00\x90\x11\xe6\x47\xf9\x10\x22\x3f\x91\x20\x02\x1f\xd6"), -Section(".fini", 0x754, "\x1f\x20\x03\xd5\xfd\x7b\xbf\xa9\xfd\x03\x00\x91\xfd\x7b\xc1\xa8\xc0\x03\x5f\xd6"), -Section(".rodata", 0x768, "\x01\x00\x02\x00"), -Section(".eh_frame_hdr", 0x76C, "\x01\x1b\x03\x3b\x38\x00\x00\x00\x06\x00\x00\x00\x94\xfe\xff\xff\xc4\x00\x00\x00\xd4\xfe\xff\xff\x50\x00\x00\x00\x24\xff\xff\xff\x64\x00\x00\x00\x54\xff\xff\xff\x78\x00\x00\x00\x94\xff\xff\xff\x8c\x00\x00\x00\xe4\xff\xff\xff\xb0\x00\x00\x00"), -Section(".eh_frame", 0x7A8, "\x10\x00\x00\x00\x00\x00\x00\x00\x01\x7a\x52\x00\x04\x78\x1e\x01\x1b\x0c\x1f\x00\x10\x00\x00\x00\x18\x00\x00\x00\x7c\xfe\xff\xff\x34\x00\x00\x00\x00\x41\x07\x1e\x10\x00\x00\x00\x2c\x00\x00\x00\xb8\xfe\xff\xff\x30\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x40\x00\x00\x00\xd4\xfe\xff\xff\x3c\x00\x00\x00\x00\x00\x00\x00\x20\x00\x00\x00\x54\x00\x00\x00\x00\xff\xff\xff\x48\x00\x00\x00\x00\x41\x0e\x20\x9d\x04\x9e\x03\x42\x93\x02\x4e\xde\xdd\xd3\x0e\x00\x00\x00\x00\x10\x00\x00\x00\x78\x00\x00\x00\x2c\xff\xff\xff\x04\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x8c\x00\x00\x00\xc8\xfd\xff\xff\x14\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".fini_array", 0x10DA0, "\x00\x07\x00\x00\x00\x00\x00\x00"), -Section(".dynamic", 0x10DA8, "\x01\x00\x00\x00\x00\x00\x00\x00\x28\x00\x00\x00\x00\x00\x00\x00\x0c\x00\x00\x00\x00\x00\x00\x00\x80\x05\x00\x00\x00\x00\x00\x00\x0d\x00\x00\x00\x00\x00\x00\x00\x54\x07\x00\x00\x00\x00\x00\x00\x19\x00\x00\x00\x00\x00\x00\x00\x98\x0d\x01\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x1a\x00\x00\x00\x00\x00\x00\x00\xa0\x0d\x01\x00\x00\x00\x00\x00\x1c\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\xf5\xfe\xff\x6f\x00\x00\x00\x00\x98\x02\x00\x00\x00\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x90\x03\x00\x00\x00\x00\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\xb8\x02\x00\x00\x00\x00\x00\x00\x0a\x00\x00\x00\x00\x00\x00\x00\x8d\x00\x00\x00\x00\x00\x00\x00\x0b\x00\x00\x00\x00\x00\x00\x00\x18\x00\x00\x00\x00\x00\x00\x00\x15\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x98\x0f\x01\x00\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x60\x00\x00\x00\x00\x00\x00\x00\x14\x00\x00\x00\x00\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x17\x00\x00\x00\x00\x00\x00\x00\x20\x05\x00\x00\x00\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x60\x04\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\xc0\x00\x00\x00\x00\x00\x00\x00\x09\x00\x00\x00\x00\x00\x00\x00\x18\x00\x00\x00\x00\x00\x00\x00\x1e\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\xfb\xff\xff\x6f\x00\x00\x00\x00\x01\x00\x00\x08\x00\x00\x00\x00\xfe\xff\xff\x6f\x00\x00\x00\x00\x30\x04\x00\x00\x00\x00\x00\x00\xff\xff\xff\x6f\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\xf0\xff\xff\x6f\x00\x00\x00\x00\x1e\x04\x00\x00\x00\x00\x00\x00\xf9\xff\xff\x6f\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".init_array", 0x10D98, "\x50\x07\x00\x00\x00\x00\x00\x00"), -Section(".got", 0x10F98, "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xa0\x05\x00\x00\x00\x00\x00\x00\xa0\x05\x00\x00\x00\x00\x00\x00\xa0\x05\x00\x00\x00\x00\x00\x00\xa0\x05\x00\x00\x00\x00\x00\x00\xa8\x0d\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".data", 0x11000, "\x00\x00\x00\x00\x00\x00\x00\x00\x08\x10\x01\x00\x00\x00\x00\x00"), -Section(".text", 0x600, "\x81\x00\x00\xb0\x22\x00\x80\x52\x00\x00\x80\x52\x22\x14\x00\xb9\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1d\x00\x80\xd2\x1e\x00\x80\xd2\xe5\x03\x00\xaa\xe1\x03\x40\xf9\xe2\x23\x00\x91\xe6\x03\x00\x91\x80\x00\x00\x90\x00\xf8\x47\xf9\x03\x00\x80\xd2\x04\x00\x80\xd2\xd5\xff\xff\x97\xe0\xff\xff\x97\x80\x00\x00\x90\x00\xf4\x47\xf9\x40\x00\x00\xb4\xd8\xff\xff\x17\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x80\x00\x00\xb0\x00\x40\x00\x91\x81\x00\x00\xb0\x21\x40\x00\x91\x3f\x00\x00\xeb\xc0\x00\x00\x54\x81\x00\x00\x90\x21\xec\x47\xf9\x61\x00\x00\xb4\xf0\x03\x01\xaa\x00\x02\x1f\xd6\xc0\x03\x5f\xd6\x80\x00\x00\xb0\x00\x40\x00\x91\x81\x00\x00\xb0\x21\x40\x00\x91\x21\x00\x00\xcb\x22\xfc\x7f\xd3\x41\x0c\x81\x8b\x21\xfc\x41\x93\xc1\x00\x00\xb4\x82\x00\x00\x90\x42\xfc\x47\xf9\x62\x00\x00\xb4\xf0\x03\x02\xaa\x00\x02\x1f\xd6\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\xfd\x7b\xbe\xa9\xfd\x03\x00\x91\xf3\x0b\x00\xf9\x93\x00\x00\xb0\x60\x42\x40\x39\x40\x01\x00\x35\x80\x00\x00\x90\x00\xf0\x47\xf9\x80\x00\x00\xb4\x80\x00\x00\xb0\x00\x04\x40\xf9\xa9\xff\xff\x97\xd8\xff\xff\x97\x20\x00\x80\x52\x60\x42\x00\x39\xf3\x0b\x40\xf9\xfd\x7b\xc2\xa8\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\xdc\xff\xff\x17")]), -Memmap([Annotation(Region(0x0,0x847), Attr("segment","02 0 2120")), -Annotation(Region(0x600,0x613), Attr("symbol","\"main\"")), -Annotation(Region(0x0,0xF9), Attr("section","\".shstrtab\"")), -Annotation(Region(0x0,0x22F), Attr("section","\".strtab\"")), -Annotation(Region(0x0,0x2A), Attr("section","\".comment\"")), -Annotation(Region(0x238,0x252), Attr("section","\".interp\"")), -Annotation(Region(0x254,0x277), Attr("section","\".note.gnu.build-id\"")), -Annotation(Region(0x278,0x297), Attr("section","\".note.ABI-tag\"")), -Annotation(Region(0x298,0x2B3), Attr("section","\".gnu.hash\"")), -Annotation(Region(0x2B8,0x38F), Attr("section","\".dynsym\"")), -Annotation(Region(0x390,0x41C), Attr("section","\".dynstr\"")), -Annotation(Region(0x41E,0x42F), Attr("section","\".gnu.version\"")), -Annotation(Region(0x430,0x45F), Attr("section","\".gnu.version_r\"")), -Annotation(Region(0x460,0x51F), Attr("section","\".rela.dyn\"")), -Annotation(Region(0x520,0x57F), Attr("section","\".rela.plt\"")), -Annotation(Region(0x580,0x597), Attr("section","\".init\"")), -Annotation(Region(0x5A0,0x5FF), Attr("section","\".plt\"")), -Annotation(Region(0x580,0x597), Attr("code-region","()")), -Annotation(Region(0x5A0,0x5FF), Attr("code-region","()")), -Annotation(Region(0x600,0x613), Attr("symbol-info","main 0x600 20")), -Annotation(Region(0x640,0x673), Attr("symbol","\"_start\"")), -Annotation(Region(0x640,0x673), Attr("symbol-info","_start 0x640 52")), -Annotation(Region(0x674,0x687), Attr("symbol","\"call_weak_fn\"")), -Annotation(Region(0x674,0x687), Attr("symbol-info","call_weak_fn 0x674 20")), -Annotation(Region(0x754,0x767), Attr("section","\".fini\"")), -Annotation(Region(0x768,0x76B), Attr("section","\".rodata\"")), -Annotation(Region(0x76C,0x7A7), Attr("section","\".eh_frame_hdr\"")), -Annotation(Region(0x7A8,0x847), Attr("section","\".eh_frame\"")), -Annotation(Region(0x10D98,0x1100F), Attr("segment","03 0x10D98 648")), -Annotation(Region(0x10DA0,0x10DA7), Attr("section","\".fini_array\"")), -Annotation(Region(0x10DA8,0x10F97), Attr("section","\".dynamic\"")), -Annotation(Region(0x10D98,0x10D9F), Attr("section","\".init_array\"")), -Annotation(Region(0x10F98,0x10FFF), Attr("section","\".got\"")), -Annotation(Region(0x11000,0x1100F), Attr("section","\".data\"")), -Annotation(Region(0x600,0x753), Attr("section","\".text\"")), -Annotation(Region(0x600,0x753), Attr("code-region","()")), -Annotation(Region(0x754,0x767), Attr("code-region","()"))]), -Program(Tid(1_505, "%000005e1"), Attrs([]), - Subs([Sub(Tid(1_455, "@__cxa_finalize"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x5D0"), -Attr("stub","()")]), "__cxa_finalize", Args([Arg(Tid(1_506, "%000005e2"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("__cxa_finalize_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(851, "@__cxa_finalize"), - Attrs([Attr("address","0x5D0")]), Phis([]), -Defs([Def(Tid(1_099, "%0000044b"), Attrs([Attr("address","0x5D0"), -Attr("insn","adrp x16, #65536")]), Var("R16",Imm(64)), Int(65536,64)), -Def(Tid(1_106, "%00000452"), Attrs([Attr("address","0x5D4"), -Attr("insn","ldr x17, [x16, #0xfb8]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(4024,64)),LittleEndian(),64)), -Def(Tid(1_112, "%00000458"), Attrs([Attr("address","0x5D8"), -Attr("insn","add x16, x16, #0xfb8")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(4024,64)))]), Jmps([Call(Tid(1_117, "%0000045d"), - Attrs([Attr("address","0x5DC"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), -Sub(Tid(1_456, "@__do_global_dtors_aux"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x700")]), - "__do_global_dtors_aux", Args([Arg(Tid(1_507, "%000005e3"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("__do_global_dtors_aux_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(704, "@__do_global_dtors_aux"), - Attrs([Attr("address","0x700")]), Phis([]), Defs([Def(Tid(708, "%000002c4"), - Attrs([Attr("address","0x700"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("#3",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(18446744073709551584,64))), -Def(Tid(714, "%000002ca"), Attrs([Attr("address","0x700"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("#3",Imm(64)),Var("R29",Imm(64)),LittleEndian(),64)), -Def(Tid(720, "%000002d0"), Attrs([Attr("address","0x700"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("#3",Imm(64)),Int(8,64)),Var("R30",Imm(64)),LittleEndian(),64)), -Def(Tid(724, "%000002d4"), Attrs([Attr("address","0x700"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("R31",Imm(64)), -Var("#3",Imm(64))), Def(Tid(730, "%000002da"), - Attrs([Attr("address","0x704"), Attr("insn","mov x29, sp")]), - Var("R29",Imm(64)), Var("R31",Imm(64))), Def(Tid(738, "%000002e2"), - Attrs([Attr("address","0x708"), Attr("insn","str x19, [sp, #0x10]")]), - Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(16,64)),Var("R19",Imm(64)),LittleEndian(),64)), -Def(Tid(743, "%000002e7"), Attrs([Attr("address","0x70C"), -Attr("insn","adrp x19, #69632")]), Var("R19",Imm(64)), Int(69632,64)), -Def(Tid(750, "%000002ee"), Attrs([Attr("address","0x710"), -Attr("insn","ldrb w0, [x19, #0x10]")]), Var("R0",Imm(64)), -UNSIGNED(64,Load(Var("mem",Mem(64,8)),PLUS(Var("R19",Imm(64)),Int(16,64)),LittleEndian(),8)))]), -Jmps([Goto(Tid(757, "%000002f5"), Attrs([Attr("address","0x714"), -Attr("insn","cbnz w0, #0x28")]), - NEQ(Extract(31,0,Var("R0",Imm(64))),Int(0,32)), -Direct(Tid(755, "%000002f3"))), Goto(Tid(1_495, "%000005d7"), Attrs([]), - Int(1,1), Direct(Tid(796, "%0000031c")))])), Blk(Tid(796, "%0000031c"), - Attrs([Attr("address","0x718")]), Phis([]), Defs([Def(Tid(799, "%0000031f"), - Attrs([Attr("address","0x718"), Attr("insn","adrp x0, #65536")]), - Var("R0",Imm(64)), Int(65536,64)), Def(Tid(806, "%00000326"), - Attrs([Attr("address","0x71C"), Attr("insn","ldr x0, [x0, #0xfe0]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(4064,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(812, "%0000032c"), Attrs([Attr("address","0x720"), -Attr("insn","cbz x0, #0x10")]), EQ(Var("R0",Imm(64)),Int(0,64)), -Direct(Tid(810, "%0000032a"))), Goto(Tid(1_496, "%000005d8"), Attrs([]), - Int(1,1), Direct(Tid(835, "%00000343")))])), Blk(Tid(835, "%00000343"), - Attrs([Attr("address","0x724")]), Phis([]), Defs([Def(Tid(838, "%00000346"), - Attrs([Attr("address","0x724"), Attr("insn","adrp x0, #69632")]), - Var("R0",Imm(64)), Int(69632,64)), Def(Tid(845, "%0000034d"), - Attrs([Attr("address","0x728"), Attr("insn","ldr x0, [x0, #0x8]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(850, "%00000352"), Attrs([Attr("address","0x72C"), -Attr("insn","bl #-0x15c")]), Var("R30",Imm(64)), Int(1840,64))]), -Jmps([Call(Tid(853, "%00000355"), Attrs([Attr("address","0x72C"), -Attr("insn","bl #-0x15c")]), Int(1,1), -(Direct(Tid(1_455, "@__cxa_finalize")),Direct(Tid(810, "%0000032a"))))])), -Blk(Tid(810, "%0000032a"), Attrs([Attr("address","0x730")]), Phis([]), -Defs([Def(Tid(818, "%00000332"), Attrs([Attr("address","0x730"), -Attr("insn","bl #-0xa0")]), Var("R30",Imm(64)), Int(1844,64))]), -Jmps([Call(Tid(820, "%00000334"), Attrs([Attr("address","0x730"), -Attr("insn","bl #-0xa0")]), Int(1,1), -(Direct(Tid(1_469, "@deregister_tm_clones")),Direct(Tid(822, "%00000336"))))])), -Blk(Tid(822, "%00000336"), Attrs([Attr("address","0x734")]), Phis([]), -Defs([Def(Tid(825, "%00000339"), Attrs([Attr("address","0x734"), -Attr("insn","mov w0, #0x1")]), Var("R0",Imm(64)), Int(1,64)), -Def(Tid(833, "%00000341"), Attrs([Attr("address","0x738"), -Attr("insn","strb w0, [x19, #0x10]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R19",Imm(64)),Int(16,64)),Extract(7,0,Var("R0",Imm(64))),LittleEndian(),8))]), -Jmps([Goto(Tid(1_497, "%000005d9"), Attrs([]), Int(1,1), -Direct(Tid(755, "%000002f3")))])), Blk(Tid(755, "%000002f3"), - Attrs([Attr("address","0x73C")]), Phis([]), Defs([Def(Tid(765, "%000002fd"), - Attrs([Attr("address","0x73C"), Attr("insn","ldr x19, [sp, #0x10]")]), - Var("R19",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(16,64)),LittleEndian(),64)), -Def(Tid(772, "%00000304"), Attrs([Attr("address","0x740"), -Attr("insn","ldp x29, x30, [sp], #0x20")]), Var("R29",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(777, "%00000309"), Attrs([Attr("address","0x740"), -Attr("insn","ldp x29, x30, [sp], #0x20")]), Var("R30",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(781, "%0000030d"), Attrs([Attr("address","0x740"), -Attr("insn","ldp x29, x30, [sp], #0x20")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(32,64)))]), Jmps([Call(Tid(786, "%00000312"), - Attrs([Attr("address","0x744"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), Sub(Tid(1_460, "@__libc_start_main"), - Attrs([Attr("c.proto","signed (*)(signed (*)(signed , char** , char** );* main, signed , char** , \nvoid* auxv)"), -Attr("address","0x5C0"), Attr("stub","()")]), "__libc_start_main", - Args([Arg(Tid(1_508, "%000005e4"), - Attrs([Attr("c.layout","**[ : 64]"), -Attr("c.data","Top:u64 ptr ptr"), -Attr("c.type","signed (*)(signed , char** , char** );*")]), - Var("__libc_start_main_main",Imm(64)), Var("R0",Imm(64)), In()), -Arg(Tid(1_509, "%000005e5"), Attrs([Attr("c.layout","[signed : 32]"), -Attr("c.data","Top:u32"), Attr("c.type","signed")]), - Var("__libc_start_main_arg2",Imm(32)), LOW(32,Var("R1",Imm(64))), In()), -Arg(Tid(1_510, "%000005e6"), Attrs([Attr("c.layout","**[char : 8]"), -Attr("c.data","Top:u8 ptr ptr"), Attr("c.type","char**")]), - Var("__libc_start_main_arg3",Imm(64)), Var("R2",Imm(64)), Both()), -Arg(Tid(1_511, "%000005e7"), Attrs([Attr("c.layout","*[ : 8]"), -Attr("c.data","{} ptr"), Attr("c.type","void*")]), - Var("__libc_start_main_auxv",Imm(64)), Var("R3",Imm(64)), Both()), -Arg(Tid(1_512, "%000005e8"), Attrs([Attr("c.layout","[signed : 32]"), -Attr("c.data","Top:u32"), Attr("c.type","signed")]), - Var("__libc_start_main_result",Imm(32)), LOW(32,Var("R0",Imm(64))), -Out())]), Blks([Blk(Tid(537, "@__libc_start_main"), - Attrs([Attr("address","0x5C0")]), Phis([]), -Defs([Def(Tid(1_077, "%00000435"), Attrs([Attr("address","0x5C0"), -Attr("insn","adrp x16, #65536")]), Var("R16",Imm(64)), Int(65536,64)), -Def(Tid(1_084, "%0000043c"), Attrs([Attr("address","0x5C4"), -Attr("insn","ldr x17, [x16, #0xfb0]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(4016,64)),LittleEndian(),64)), -Def(Tid(1_090, "%00000442"), Attrs([Attr("address","0x5C8"), -Attr("insn","add x16, x16, #0xfb0")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(4016,64)))]), Jmps([Call(Tid(1_095, "%00000447"), - Attrs([Attr("address","0x5CC"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), Sub(Tid(1_461, "@_fini"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x754")]), - "_fini", Args([Arg(Tid(1_513, "%000005e9"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("_fini_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(31, "@_fini"), - Attrs([Attr("address","0x754")]), Phis([]), Defs([Def(Tid(37, "%00000025"), - Attrs([Attr("address","0x758"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("#0",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(18446744073709551600,64))), -Def(Tid(43, "%0000002b"), Attrs([Attr("address","0x758"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("#0",Imm(64)),Var("R29",Imm(64)),LittleEndian(),64)), -Def(Tid(49, "%00000031"), Attrs([Attr("address","0x758"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("#0",Imm(64)),Int(8,64)),Var("R30",Imm(64)),LittleEndian(),64)), -Def(Tid(53, "%00000035"), Attrs([Attr("address","0x758"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("R31",Imm(64)), -Var("#0",Imm(64))), Def(Tid(59, "%0000003b"), Attrs([Attr("address","0x75C"), -Attr("insn","mov x29, sp")]), Var("R29",Imm(64)), Var("R31",Imm(64))), -Def(Tid(66, "%00000042"), Attrs([Attr("address","0x760"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R29",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(71, "%00000047"), Attrs([Attr("address","0x760"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R30",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(75, "%0000004b"), Attrs([Attr("address","0x760"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(16,64)))]), Jmps([Call(Tid(80, "%00000050"), - Attrs([Attr("address","0x764"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), Sub(Tid(1_462, "@_init"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x580")]), - "_init", Args([Arg(Tid(1_514, "%000005ea"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("_init_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(1_281, "@_init"), - Attrs([Attr("address","0x580")]), Phis([]), -Defs([Def(Tid(1_287, "%00000507"), Attrs([Attr("address","0x584"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("#5",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(18446744073709551600,64))), -Def(Tid(1_293, "%0000050d"), Attrs([Attr("address","0x584"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("#5",Imm(64)),Var("R29",Imm(64)),LittleEndian(),64)), -Def(Tid(1_299, "%00000513"), Attrs([Attr("address","0x584"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("#5",Imm(64)),Int(8,64)),Var("R30",Imm(64)),LittleEndian(),64)), -Def(Tid(1_303, "%00000517"), Attrs([Attr("address","0x584"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("R31",Imm(64)), -Var("#5",Imm(64))), Def(Tid(1_309, "%0000051d"), - Attrs([Attr("address","0x588"), Attr("insn","mov x29, sp")]), - Var("R29",Imm(64)), Var("R31",Imm(64))), Def(Tid(1_314, "%00000522"), - Attrs([Attr("address","0x58C"), Attr("insn","bl #0xe8")]), - Var("R30",Imm(64)), Int(1424,64))]), Jmps([Call(Tid(1_316, "%00000524"), - Attrs([Attr("address","0x58C"), Attr("insn","bl #0xe8")]), Int(1,1), -(Direct(Tid(1_467, "@call_weak_fn")),Direct(Tid(1_318, "%00000526"))))])), -Blk(Tid(1_318, "%00000526"), Attrs([Attr("address","0x590")]), Phis([]), -Defs([Def(Tid(1_323, "%0000052b"), Attrs([Attr("address","0x590"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R29",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(1_328, "%00000530"), Attrs([Attr("address","0x590"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R30",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(1_332, "%00000534"), Attrs([Attr("address","0x590"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(16,64)))]), Jmps([Call(Tid(1_337, "%00000539"), - Attrs([Attr("address","0x594"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), Sub(Tid(1_463, "@_start"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x640"), -Attr("entry-point","()")]), "_start", Args([Arg(Tid(1_515, "%000005eb"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("_start_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(474, "@_start"), - Attrs([Attr("address","0x640")]), Phis([]), Defs([Def(Tid(479, "%000001df"), - Attrs([Attr("address","0x644"), Attr("insn","mov x29, #0x0")]), - Var("R29",Imm(64)), Int(0,64)), Def(Tid(484, "%000001e4"), - Attrs([Attr("address","0x648"), Attr("insn","mov x30, #0x0")]), - Var("R30",Imm(64)), Int(0,64)), Def(Tid(490, "%000001ea"), - Attrs([Attr("address","0x64C"), Attr("insn","mov x5, x0")]), - Var("R5",Imm(64)), Var("R0",Imm(64))), Def(Tid(497, "%000001f1"), - Attrs([Attr("address","0x650"), Attr("insn","ldr x1, [sp]")]), - Var("R1",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(503, "%000001f7"), Attrs([Attr("address","0x654"), -Attr("insn","add x2, sp, #0x8")]), Var("R2",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(8,64))), Def(Tid(509, "%000001fd"), - Attrs([Attr("address","0x658"), Attr("insn","mov x6, sp")]), - Var("R6",Imm(64)), Var("R31",Imm(64))), Def(Tid(514, "%00000202"), - Attrs([Attr("address","0x65C"), Attr("insn","adrp x0, #65536")]), - Var("R0",Imm(64)), Int(65536,64)), Def(Tid(521, "%00000209"), - Attrs([Attr("address","0x660"), Attr("insn","ldr x0, [x0, #0xff0]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(4080,64)),LittleEndian(),64)), -Def(Tid(526, "%0000020e"), Attrs([Attr("address","0x664"), -Attr("insn","mov x3, #0x0")]), Var("R3",Imm(64)), Int(0,64)), -Def(Tid(531, "%00000213"), Attrs([Attr("address","0x668"), -Attr("insn","mov x4, #0x0")]), Var("R4",Imm(64)), Int(0,64)), -Def(Tid(536, "%00000218"), Attrs([Attr("address","0x66C"), -Attr("insn","bl #-0xac")]), Var("R30",Imm(64)), Int(1648,64))]), -Jmps([Call(Tid(539, "%0000021b"), Attrs([Attr("address","0x66C"), -Attr("insn","bl #-0xac")]), Int(1,1), -(Direct(Tid(1_460, "@__libc_start_main")),Direct(Tid(541, "%0000021d"))))])), -Blk(Tid(541, "%0000021d"), Attrs([Attr("address","0x670")]), Phis([]), -Defs([Def(Tid(544, "%00000220"), Attrs([Attr("address","0x670"), -Attr("insn","bl #-0x80")]), Var("R30",Imm(64)), Int(1652,64))]), -Jmps([Call(Tid(547, "%00000223"), Attrs([Attr("address","0x670"), -Attr("insn","bl #-0x80")]), Int(1,1), -(Direct(Tid(1_466, "@abort")),Direct(Tid(1_498, "%000005da"))))])), -Blk(Tid(1_498, "%000005da"), Attrs([]), Phis([]), Defs([]), -Jmps([Call(Tid(1_499, "%000005db"), Attrs([]), Int(1,1), -(Direct(Tid(1_467, "@call_weak_fn")),))]))])), Sub(Tid(1_466, "@abort"), - Attrs([Attr("noreturn","()"), Attr("c.proto","void (*)(void)"), -Attr("address","0x5F0"), Attr("stub","()")]), "abort", Args([]), -Blks([Blk(Tid(545, "@abort"), Attrs([Attr("address","0x5F0")]), Phis([]), -Defs([Def(Tid(1_143, "%00000477"), Attrs([Attr("address","0x5F0"), -Attr("insn","adrp x16, #65536")]), Var("R16",Imm(64)), Int(65536,64)), -Def(Tid(1_150, "%0000047e"), Attrs([Attr("address","0x5F4"), -Attr("insn","ldr x17, [x16, #0xfc8]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(4040,64)),LittleEndian(),64)), -Def(Tid(1_156, "%00000484"), Attrs([Attr("address","0x5F8"), -Attr("insn","add x16, x16, #0xfc8")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(4040,64)))]), Jmps([Call(Tid(1_161, "%00000489"), - Attrs([Attr("address","0x5FC"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), Sub(Tid(1_467, "@call_weak_fn"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x674")]), - "call_weak_fn", Args([Arg(Tid(1_516, "%000005ec"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("call_weak_fn_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(549, "@call_weak_fn"), - Attrs([Attr("address","0x674")]), Phis([]), Defs([Def(Tid(552, "%00000228"), - Attrs([Attr("address","0x674"), Attr("insn","adrp x0, #65536")]), - Var("R0",Imm(64)), Int(65536,64)), Def(Tid(559, "%0000022f"), - Attrs([Attr("address","0x678"), Attr("insn","ldr x0, [x0, #0xfe8]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(4072,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(565, "%00000235"), Attrs([Attr("address","0x67C"), -Attr("insn","cbz x0, #0x8")]), EQ(Var("R0",Imm(64)),Int(0,64)), -Direct(Tid(563, "%00000233"))), Goto(Tid(1_500, "%000005dc"), Attrs([]), - Int(1,1), Direct(Tid(915, "%00000393")))])), Blk(Tid(563, "%00000233"), - Attrs([Attr("address","0x684")]), Phis([]), Defs([]), -Jmps([Call(Tid(571, "%0000023b"), Attrs([Attr("address","0x684"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))])), -Blk(Tid(915, "%00000393"), Attrs([Attr("address","0x680")]), Phis([]), -Defs([]), Jmps([Goto(Tid(918, "%00000396"), Attrs([Attr("address","0x680"), -Attr("insn","b #-0xa0")]), Int(1,1), Direct(Tid(916, "@__gmon_start__")))])), -Blk(Tid(916, "@__gmon_start__"), Attrs([Attr("address","0x5E0")]), Phis([]), -Defs([Def(Tid(1_121, "%00000461"), Attrs([Attr("address","0x5E0"), -Attr("insn","adrp x16, #65536")]), Var("R16",Imm(64)), Int(65536,64)), -Def(Tid(1_128, "%00000468"), Attrs([Attr("address","0x5E4"), -Attr("insn","ldr x17, [x16, #0xfc0]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(4032,64)),LittleEndian(),64)), -Def(Tid(1_134, "%0000046e"), Attrs([Attr("address","0x5E8"), -Attr("insn","add x16, x16, #0xfc0")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(4032,64)))]), Jmps([Call(Tid(1_139, "%00000473"), - Attrs([Attr("address","0x5EC"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), -Sub(Tid(1_469, "@deregister_tm_clones"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x690")]), - "deregister_tm_clones", Args([Arg(Tid(1_517, "%000005ed"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("deregister_tm_clones_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(577, "@deregister_tm_clones"), - Attrs([Attr("address","0x690")]), Phis([]), Defs([Def(Tid(580, "%00000244"), - Attrs([Attr("address","0x690"), Attr("insn","adrp x0, #69632")]), - Var("R0",Imm(64)), Int(69632,64)), Def(Tid(586, "%0000024a"), - Attrs([Attr("address","0x694"), Attr("insn","add x0, x0, #0x10")]), - Var("R0",Imm(64)), PLUS(Var("R0",Imm(64)),Int(16,64))), -Def(Tid(591, "%0000024f"), Attrs([Attr("address","0x698"), -Attr("insn","adrp x1, #69632")]), Var("R1",Imm(64)), Int(69632,64)), -Def(Tid(597, "%00000255"), Attrs([Attr("address","0x69C"), -Attr("insn","add x1, x1, #0x10")]), Var("R1",Imm(64)), -PLUS(Var("R1",Imm(64)),Int(16,64))), Def(Tid(603, "%0000025b"), - Attrs([Attr("address","0x6A0"), Attr("insn","cmp x1, x0")]), - Var("#1",Imm(64)), NOT(Var("R0",Imm(64)))), Def(Tid(608, "%00000260"), - Attrs([Attr("address","0x6A0"), Attr("insn","cmp x1, x0")]), - Var("#2",Imm(64)), PLUS(Var("R1",Imm(64)),NOT(Var("R0",Imm(64))))), -Def(Tid(614, "%00000266"), Attrs([Attr("address","0x6A0"), -Attr("insn","cmp x1, x0")]), Var("VF",Imm(1)), -NEQ(SIGNED(65,PLUS(Var("#2",Imm(64)),Int(1,64))),PLUS(PLUS(SIGNED(65,Var("R1",Imm(64))),SIGNED(65,Var("#1",Imm(64)))),Int(1,65)))), -Def(Tid(620, "%0000026c"), Attrs([Attr("address","0x6A0"), -Attr("insn","cmp x1, x0")]), Var("CF",Imm(1)), -NEQ(UNSIGNED(65,PLUS(Var("#2",Imm(64)),Int(1,64))),PLUS(PLUS(UNSIGNED(65,Var("R1",Imm(64))),UNSIGNED(65,Var("#1",Imm(64)))),Int(1,65)))), -Def(Tid(624, "%00000270"), Attrs([Attr("address","0x6A0"), -Attr("insn","cmp x1, x0")]), Var("ZF",Imm(1)), -EQ(PLUS(Var("#2",Imm(64)),Int(1,64)),Int(0,64))), Def(Tid(628, "%00000274"), - Attrs([Attr("address","0x6A0"), Attr("insn","cmp x1, x0")]), - Var("NF",Imm(1)), Extract(63,63,PLUS(Var("#2",Imm(64)),Int(1,64))))]), -Jmps([Goto(Tid(634, "%0000027a"), Attrs([Attr("address","0x6A4"), -Attr("insn","b.eq #0x18")]), EQ(Var("ZF",Imm(1)),Int(1,1)), -Direct(Tid(632, "%00000278"))), Goto(Tid(1_501, "%000005dd"), Attrs([]), - Int(1,1), Direct(Tid(885, "%00000375")))])), Blk(Tid(885, "%00000375"), - Attrs([Attr("address","0x6A8")]), Phis([]), Defs([Def(Tid(888, "%00000378"), - Attrs([Attr("address","0x6A8"), Attr("insn","adrp x1, #65536")]), - Var("R1",Imm(64)), Int(65536,64)), Def(Tid(895, "%0000037f"), - Attrs([Attr("address","0x6AC"), Attr("insn","ldr x1, [x1, #0xfd8]")]), - Var("R1",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R1",Imm(64)),Int(4056,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(900, "%00000384"), Attrs([Attr("address","0x6B0"), -Attr("insn","cbz x1, #0xc")]), EQ(Var("R1",Imm(64)),Int(0,64)), -Direct(Tid(632, "%00000278"))), Goto(Tid(1_502, "%000005de"), Attrs([]), - Int(1,1), Direct(Tid(904, "%00000388")))])), Blk(Tid(632, "%00000278"), - Attrs([Attr("address","0x6BC")]), Phis([]), Defs([]), -Jmps([Call(Tid(640, "%00000280"), Attrs([Attr("address","0x6BC"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))])), -Blk(Tid(904, "%00000388"), Attrs([Attr("address","0x6B4")]), Phis([]), -Defs([Def(Tid(908, "%0000038c"), Attrs([Attr("address","0x6B4"), -Attr("insn","mov x16, x1")]), Var("R16",Imm(64)), Var("R1",Imm(64)))]), -Jmps([Call(Tid(913, "%00000391"), Attrs([Attr("address","0x6B8"), -Attr("insn","br x16")]), Int(1,1), (Indirect(Var("R16",Imm(64))),))]))])), -Sub(Tid(1_472, "@frame_dummy"), Attrs([Attr("c.proto","signed (*)(void)"), -Attr("address","0x750")]), "frame_dummy", Args([Arg(Tid(1_518, "%000005ee"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("frame_dummy_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(792, "@frame_dummy"), - Attrs([Attr("address","0x750")]), Phis([]), Defs([]), -Jmps([Call(Tid(794, "%0000031a"), Attrs([Attr("address","0x750"), -Attr("insn","b #-0x90")]), Int(1,1), -(Direct(Tid(1_474, "@register_tm_clones")),))]))])), Sub(Tid(1_473, "@main"), - Attrs([Attr("c.proto","signed (*)(signed argc, const char** argv)"), -Attr("address","0x600"), Attr("stub","()")]), "main", - Args([Arg(Tid(1_519, "%000005ef"), Attrs([Attr("c.layout","[signed : 32]"), -Attr("c.data","Top:u32"), Attr("c.type","signed")]), - Var("main_argc",Imm(32)), LOW(32,Var("R0",Imm(64))), In()), -Arg(Tid(1_520, "%000005f0"), Attrs([Attr("c.layout","**[char : 8]"), -Attr("c.data","Top:u8 ptr ptr"), Attr("c.type"," const char**")]), - Var("main_argv",Imm(64)), Var("R1",Imm(64)), Both()), -Arg(Tid(1_521, "%000005f1"), Attrs([Attr("c.layout","[signed : 32]"), -Attr("c.data","Top:u32"), Attr("c.type","signed")]), - Var("main_result",Imm(32)), LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(424, "@main"), Attrs([Attr("address","0x600")]), Phis([]), -Defs([Def(Tid(427, "%000001ab"), Attrs([Attr("address","0x600"), -Attr("insn","adrp x1, #69632")]), Var("R1",Imm(64)), Int(69632,64)), -Def(Tid(432, "%000001b0"), Attrs([Attr("address","0x604"), -Attr("insn","mov w2, #0x1")]), Var("R2",Imm(64)), Int(1,64)), -Def(Tid(437, "%000001b5"), Attrs([Attr("address","0x608"), -Attr("insn","mov w0, #0x0")]), Var("R0",Imm(64)), Int(0,64)), -Def(Tid(445, "%000001bd"), Attrs([Attr("address","0x60C"), -Attr("insn","str w2, [x1, #0x14]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R1",Imm(64)),Int(20,64)),Extract(31,0,Var("R2",Imm(64))),LittleEndian(),32))]), -Jmps([Call(Tid(450, "%000001c2"), Attrs([Attr("address","0x610"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))]))])), -Sub(Tid(1_474, "@register_tm_clones"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x6C0")]), - "register_tm_clones", Args([Arg(Tid(1_522, "%000005f2"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("register_tm_clones_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(642, "@register_tm_clones"), Attrs([Attr("address","0x6C0")]), - Phis([]), Defs([Def(Tid(645, "%00000285"), Attrs([Attr("address","0x6C0"), -Attr("insn","adrp x0, #69632")]), Var("R0",Imm(64)), Int(69632,64)), -Def(Tid(651, "%0000028b"), Attrs([Attr("address","0x6C4"), -Attr("insn","add x0, x0, #0x10")]), Var("R0",Imm(64)), -PLUS(Var("R0",Imm(64)),Int(16,64))), Def(Tid(656, "%00000290"), - Attrs([Attr("address","0x6C8"), Attr("insn","adrp x1, #69632")]), - Var("R1",Imm(64)), Int(69632,64)), Def(Tid(662, "%00000296"), - Attrs([Attr("address","0x6CC"), Attr("insn","add x1, x1, #0x10")]), - Var("R1",Imm(64)), PLUS(Var("R1",Imm(64)),Int(16,64))), -Def(Tid(669, "%0000029d"), Attrs([Attr("address","0x6D0"), -Attr("insn","sub x1, x1, x0")]), Var("R1",Imm(64)), -PLUS(PLUS(Var("R1",Imm(64)),NOT(Var("R0",Imm(64)))),Int(1,64))), -Def(Tid(675, "%000002a3"), Attrs([Attr("address","0x6D4"), -Attr("insn","lsr x2, x1, #63")]), Var("R2",Imm(64)), -Concat(Int(0,63),Extract(63,63,Var("R1",Imm(64))))), -Def(Tid(682, "%000002aa"), Attrs([Attr("address","0x6D8"), -Attr("insn","add x1, x2, x1, asr #3")]), Var("R1",Imm(64)), -PLUS(Var("R2",Imm(64)),ARSHIFT(Var("R1",Imm(64)),Int(3,3)))), -Def(Tid(688, "%000002b0"), Attrs([Attr("address","0x6DC"), -Attr("insn","asr x1, x1, #1")]), Var("R1",Imm(64)), -SIGNED(64,Extract(63,1,Var("R1",Imm(64)))))]), -Jmps([Goto(Tid(694, "%000002b6"), Attrs([Attr("address","0x6E0"), -Attr("insn","cbz x1, #0x18")]), EQ(Var("R1",Imm(64)),Int(0,64)), -Direct(Tid(692, "%000002b4"))), Goto(Tid(1_503, "%000005df"), Attrs([]), - Int(1,1), Direct(Tid(855, "%00000357")))])), Blk(Tid(855, "%00000357"), - Attrs([Attr("address","0x6E4")]), Phis([]), Defs([Def(Tid(858, "%0000035a"), - Attrs([Attr("address","0x6E4"), Attr("insn","adrp x2, #65536")]), - Var("R2",Imm(64)), Int(65536,64)), Def(Tid(865, "%00000361"), - Attrs([Attr("address","0x6E8"), Attr("insn","ldr x2, [x2, #0xff8]")]), - Var("R2",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R2",Imm(64)),Int(4088,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(870, "%00000366"), Attrs([Attr("address","0x6EC"), -Attr("insn","cbz x2, #0xc")]), EQ(Var("R2",Imm(64)),Int(0,64)), -Direct(Tid(692, "%000002b4"))), Goto(Tid(1_504, "%000005e0"), Attrs([]), - Int(1,1), Direct(Tid(874, "%0000036a")))])), Blk(Tid(692, "%000002b4"), - Attrs([Attr("address","0x6F8")]), Phis([]), Defs([]), -Jmps([Call(Tid(700, "%000002bc"), Attrs([Attr("address","0x6F8"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))])), -Blk(Tid(874, "%0000036a"), Attrs([Attr("address","0x6F0")]), Phis([]), -Defs([Def(Tid(878, "%0000036e"), Attrs([Attr("address","0x6F0"), -Attr("insn","mov x16, x2")]), Var("R16",Imm(64)), Var("R2",Imm(64)))]), -Jmps([Call(Tid(883, "%00000373"), Attrs([Attr("address","0x6F4"), -Attr("insn","br x16")]), Int(1,1), -(Indirect(Var("R16",Imm(64))),))]))]))]))) \ No newline at end of file diff --git a/src/test/correct/no_interference_update_y/gcc_O2/no_interference_update_y.bir b/src/test/correct/no_interference_update_y/gcc_O2/no_interference_update_y.bir deleted file mode 100644 index d74cdd8e2..000000000 --- a/src/test/correct/no_interference_update_y/gcc_O2/no_interference_update_y.bir +++ /dev/null @@ -1,227 +0,0 @@ -000005e1: program -000005af: sub __cxa_finalize(__cxa_finalize_result) -000005e2: __cxa_finalize_result :: out u32 = low:32[R0] - -00000353: -0000044b: R16 := 0x10000 -00000452: R17 := mem[R16 + 0xFB8, el]:u64 -00000458: R16 := R16 + 0xFB8 -0000045d: call R17 with noreturn - -000005b0: sub __do_global_dtors_aux(__do_global_dtors_aux_result) -000005e3: __do_global_dtors_aux_result :: out u32 = low:32[R0] - -000002c0: -000002c4: #3 := R31 - 0x20 -000002ca: mem := mem with [#3, el]:u64 <- R29 -000002d0: mem := mem with [#3 + 8, el]:u64 <- R30 -000002d4: R31 := #3 -000002da: R29 := R31 -000002e2: mem := mem with [R31 + 0x10, el]:u64 <- R19 -000002e7: R19 := 0x11000 -000002ee: R0 := pad:64[mem[R19 + 0x10]] -000002f5: when 31:0[R0] <> 0 goto %000002f3 -000005d7: goto %0000031c - -0000031c: -0000031f: R0 := 0x10000 -00000326: R0 := mem[R0 + 0xFE0, el]:u64 -0000032c: when R0 = 0 goto %0000032a -000005d8: goto %00000343 - -00000343: -00000346: R0 := 0x11000 -0000034d: R0 := mem[R0 + 8, el]:u64 -00000352: R30 := 0x730 -00000355: call @__cxa_finalize with return %0000032a - -0000032a: -00000332: R30 := 0x734 -00000334: call @deregister_tm_clones with return %00000336 - -00000336: -00000339: R0 := 1 -00000341: mem := mem with [R19 + 0x10] <- 7:0[R0] -000005d9: goto %000002f3 - -000002f3: -000002fd: R19 := mem[R31 + 0x10, el]:u64 -00000304: R29 := mem[R31, el]:u64 -00000309: R30 := mem[R31 + 8, el]:u64 -0000030d: R31 := R31 + 0x20 -00000312: call R30 with noreturn - -000005b4: sub __libc_start_main(__libc_start_main_main, __libc_start_main_arg2, __libc_start_main_arg3, __libc_start_main_auxv, __libc_start_main_result) -000005e4: __libc_start_main_main :: in u64 = R0 -000005e5: __libc_start_main_arg2 :: in u32 = low:32[R1] -000005e6: __libc_start_main_arg3 :: in out u64 = R2 -000005e7: __libc_start_main_auxv :: in out u64 = R3 -000005e8: __libc_start_main_result :: out u32 = low:32[R0] - -00000219: -00000435: R16 := 0x10000 -0000043c: R17 := mem[R16 + 0xFB0, el]:u64 -00000442: R16 := R16 + 0xFB0 -00000447: call R17 with noreturn - -000005b5: sub _fini(_fini_result) -000005e9: _fini_result :: out u32 = low:32[R0] - -0000001f: -00000025: #0 := R31 - 0x10 -0000002b: mem := mem with [#0, el]:u64 <- R29 -00000031: mem := mem with [#0 + 8, el]:u64 <- R30 -00000035: R31 := #0 -0000003b: R29 := R31 -00000042: R29 := mem[R31, el]:u64 -00000047: R30 := mem[R31 + 8, el]:u64 -0000004b: R31 := R31 + 0x10 -00000050: call R30 with noreturn - -000005b6: sub _init(_init_result) -000005ea: _init_result :: out u32 = low:32[R0] - -00000501: -00000507: #5 := R31 - 0x10 -0000050d: mem := mem with [#5, el]:u64 <- R29 -00000513: mem := mem with [#5 + 8, el]:u64 <- R30 -00000517: R31 := #5 -0000051d: R29 := R31 -00000522: R30 := 0x590 -00000524: call @call_weak_fn with return %00000526 - -00000526: -0000052b: R29 := mem[R31, el]:u64 -00000530: R30 := mem[R31 + 8, el]:u64 -00000534: R31 := R31 + 0x10 -00000539: call R30 with noreturn - -000005b7: sub _start(_start_result) -000005eb: _start_result :: out u32 = low:32[R0] - -000001da: -000001df: R29 := 0 -000001e4: R30 := 0 -000001ea: R5 := R0 -000001f1: R1 := mem[R31, el]:u64 -000001f7: R2 := R31 + 8 -000001fd: R6 := R31 -00000202: R0 := 0x10000 -00000209: R0 := mem[R0 + 0xFF0, el]:u64 -0000020e: R3 := 0 -00000213: R4 := 0 -00000218: R30 := 0x670 -0000021b: call @__libc_start_main with return %0000021d - -0000021d: -00000220: R30 := 0x674 -00000223: call @abort with return %000005da - -000005da: -000005db: call @call_weak_fn with noreturn - -000005ba: sub abort() - - -00000221: -00000477: R16 := 0x10000 -0000047e: R17 := mem[R16 + 0xFC8, el]:u64 -00000484: R16 := R16 + 0xFC8 -00000489: call R17 with noreturn - -000005bb: sub call_weak_fn(call_weak_fn_result) -000005ec: call_weak_fn_result :: out u32 = low:32[R0] - -00000225: -00000228: R0 := 0x10000 -0000022f: R0 := mem[R0 + 0xFE8, el]:u64 -00000235: when R0 = 0 goto %00000233 -000005dc: goto %00000393 - -00000233: -0000023b: call R30 with noreturn - -00000393: -00000396: goto @__gmon_start__ - -00000394: -00000461: R16 := 0x10000 -00000468: R17 := mem[R16 + 0xFC0, el]:u64 -0000046e: R16 := R16 + 0xFC0 -00000473: call R17 with noreturn - -000005bd: sub deregister_tm_clones(deregister_tm_clones_result) -000005ed: deregister_tm_clones_result :: out u32 = low:32[R0] - -00000241: -00000244: R0 := 0x11000 -0000024a: R0 := R0 + 0x10 -0000024f: R1 := 0x11000 -00000255: R1 := R1 + 0x10 -0000025b: #1 := ~R0 -00000260: #2 := R1 + ~R0 -00000266: VF := extend:65[#2 + 1] <> extend:65[R1] + extend:65[#1] + 1 -0000026c: CF := pad:65[#2 + 1] <> pad:65[R1] + pad:65[#1] + 1 -00000270: ZF := #2 + 1 = 0 -00000274: NF := 63:63[#2 + 1] -0000027a: when ZF goto %00000278 -000005dd: goto %00000375 - -00000375: -00000378: R1 := 0x10000 -0000037f: R1 := mem[R1 + 0xFD8, el]:u64 -00000384: when R1 = 0 goto %00000278 -000005de: goto %00000388 - -00000278: -00000280: call R30 with noreturn - -00000388: -0000038c: R16 := R1 -00000391: call R16 with noreturn - -000005c0: sub frame_dummy(frame_dummy_result) -000005ee: frame_dummy_result :: out u32 = low:32[R0] - -00000318: -0000031a: call @register_tm_clones with noreturn - -000005c1: sub main(main_argc, main_argv, main_result) -000005ef: main_argc :: in u32 = low:32[R0] -000005f0: main_argv :: in out u64 = R1 -000005f1: main_result :: out u32 = low:32[R0] - -000001a8: -000001ab: R1 := 0x11000 -000001b0: R2 := 1 -000001b5: R0 := 0 -000001bd: mem := mem with [R1 + 0x14, el]:u32 <- 31:0[R2] -000001c2: call R30 with noreturn - -000005c2: sub register_tm_clones(register_tm_clones_result) -000005f2: register_tm_clones_result :: out u32 = low:32[R0] - -00000282: -00000285: R0 := 0x11000 -0000028b: R0 := R0 + 0x10 -00000290: R1 := 0x11000 -00000296: R1 := R1 + 0x10 -0000029d: R1 := R1 + ~R0 + 1 -000002a3: R2 := 0.63:63[R1] -000002aa: R1 := R2 + (R1 ~>> 3) -000002b0: R1 := extend:64[63:1[R1]] -000002b6: when R1 = 0 goto %000002b4 -000005df: goto %00000357 - -00000357: -0000035a: R2 := 0x10000 -00000361: R2 := mem[R2 + 0xFF8, el]:u64 -00000366: when R2 = 0 goto %000002b4 -000005e0: goto %0000036a - -000002b4: -000002bc: call R30 with noreturn - -0000036a: -0000036e: R16 := R2 -00000373: call R16 with noreturn diff --git a/src/test/correct/no_interference_update_y/gcc_O2/no_interference_update_y.expected b/src/test/correct/no_interference_update_y/gcc_O2/no_interference_update_y.expected index 7a8999afc..2985f6029 100644 --- a/src/test/correct/no_interference_update_y/gcc_O2/no_interference_update_y.expected +++ b/src/test/correct/no_interference_update_y/gcc_O2/no_interference_update_y.expected @@ -66,7 +66,7 @@ implementation {:extern} guarantee_reflexive() assert (memory_load32_le(mem, $x_addr) == memory_load32_le(mem, $x_addr)); } -procedure main_1536(); +procedure main(); modifies Gamma_R0, Gamma_R1, Gamma_R2, Gamma_mem, R0, R1, R2, mem; free requires (memory_load64_le(mem, 69632bv64) == 0bv64); free requires (memory_load64_le(mem, 69640bv64) == 69640bv64); @@ -82,7 +82,7 @@ procedure main_1536(); free ensures (memory_load64_le(mem, 69616bv64) == 1536bv64); free ensures (memory_load64_le(mem, 69640bv64) == 69640bv64); -implementation main_1536() +implementation main() { var x_old: bv32; lmain: @@ -91,14 +91,14 @@ implementation main_1536() R2, Gamma_R2 := 1bv64, true; R0, Gamma_R0 := 0bv64, true; call rely(); - x_old := memory_load32_le(mem, $x_addr); assert (L(mem, bvadd64(R1, 20bv64)) ==> Gamma_R2); + x_old := memory_load32_le(mem, $x_addr); mem, Gamma_mem := memory_store32_le(mem, bvadd64(R1, 20bv64), R2[32:0]), gamma_store32(Gamma_mem, bvadd64(R1, 20bv64), Gamma_R2); assert (memory_load32_le(mem, $x_addr) == x_old); assume {:captureState "%000001bd"} true; - goto main_1536_basil_return; - main_1536_basil_return: - assume {:captureState "main_1536_basil_return"} true; + goto main_basil_return; + main_basil_return: + assume {:captureState "main_basil_return"} true; return; } diff --git a/src/test/correct/no_interference_update_y/gcc_O2/no_interference_update_y.gts b/src/test/correct/no_interference_update_y/gcc_O2/no_interference_update_y.gts deleted file mode 100644 index 0ad92b602..000000000 Binary files a/src/test/correct/no_interference_update_y/gcc_O2/no_interference_update_y.gts and /dev/null differ diff --git a/src/test/correct/no_interference_update_y/gcc_O2/no_interference_update_y.md5sum b/src/test/correct/no_interference_update_y/gcc_O2/no_interference_update_y.md5sum new file mode 100644 index 000000000..4519f9360 --- /dev/null +++ b/src/test/correct/no_interference_update_y/gcc_O2/no_interference_update_y.md5sum @@ -0,0 +1,5 @@ +3c8c5e6049417d0cb1bd03b2e69454fb correct/no_interference_update_y/gcc_O2/a.out +e9d8145ed52769608e520f1762d08002 correct/no_interference_update_y/gcc_O2/no_interference_update_y.adt +59355aca43df0f24dafd3fe145e941e4 correct/no_interference_update_y/gcc_O2/no_interference_update_y.bir +67837e255765fcf1e8ea22c28be24e0e correct/no_interference_update_y/gcc_O2/no_interference_update_y.relf +774641ef2af35e7f210620019cdbfa68 correct/no_interference_update_y/gcc_O2/no_interference_update_y.gts diff --git a/src/test/correct/no_interference_update_y/gcc_O2/no_interference_update_y.relf b/src/test/correct/no_interference_update_y/gcc_O2/no_interference_update_y.relf deleted file mode 100644 index 461aed257..000000000 --- a/src/test/correct/no_interference_update_y/gcc_O2/no_interference_update_y.relf +++ /dev/null @@ -1,122 +0,0 @@ - -Relocation section '.rela.dyn' at offset 0x460 contains 8 entries: - Offset Info Type Symbol's Value Symbol's Name + Addend -0000000000010d98 0000000000000403 R_AARCH64_RELATIVE 750 -0000000000010da0 0000000000000403 R_AARCH64_RELATIVE 700 -0000000000010ff0 0000000000000403 R_AARCH64_RELATIVE 600 -0000000000011008 0000000000000403 R_AARCH64_RELATIVE 11008 -0000000000010fd8 0000000400000401 R_AARCH64_GLOB_DAT 0000000000000000 _ITM_deregisterTMCloneTable + 0 -0000000000010fe0 0000000500000401 R_AARCH64_GLOB_DAT 0000000000000000 __cxa_finalize@GLIBC_2.17 + 0 -0000000000010fe8 0000000600000401 R_AARCH64_GLOB_DAT 0000000000000000 __gmon_start__ + 0 -0000000000010ff8 0000000800000401 R_AARCH64_GLOB_DAT 0000000000000000 _ITM_registerTMCloneTable + 0 - -Relocation section '.rela.plt' at offset 0x520 contains 4 entries: - Offset Info Type Symbol's Value Symbol's Name + Addend -0000000000010fb0 0000000300000402 R_AARCH64_JUMP_SLOT 0000000000000000 __libc_start_main@GLIBC_2.34 + 0 -0000000000010fb8 0000000500000402 R_AARCH64_JUMP_SLOT 0000000000000000 __cxa_finalize@GLIBC_2.17 + 0 -0000000000010fc0 0000000600000402 R_AARCH64_JUMP_SLOT 0000000000000000 __gmon_start__ + 0 -0000000000010fc8 0000000700000402 R_AARCH64_JUMP_SLOT 0000000000000000 abort@GLIBC_2.17 + 0 - -Symbol table '.dynsym' contains 9 entries: - Num: Value Size Type Bind Vis Ndx Name - 0: 0000000000000000 0 NOTYPE LOCAL DEFAULT UND - 1: 0000000000000580 0 SECTION LOCAL DEFAULT 11 .init - 2: 0000000000011000 0 SECTION LOCAL DEFAULT 22 .data - 3: 0000000000000000 0 FUNC GLOBAL DEFAULT UND __libc_start_main@GLIBC_2.34 (2) - 4: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_deregisterTMCloneTable - 5: 0000000000000000 0 FUNC WEAK DEFAULT UND __cxa_finalize@GLIBC_2.17 (3) - 6: 0000000000000000 0 NOTYPE WEAK DEFAULT UND __gmon_start__ - 7: 0000000000000000 0 FUNC GLOBAL DEFAULT UND abort@GLIBC_2.17 (3) - 8: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_registerTMCloneTable - -Symbol table '.symtab' contains 89 entries: - Num: Value Size Type Bind Vis Ndx Name - 0: 0000000000000000 0 NOTYPE LOCAL DEFAULT UND - 1: 0000000000000238 0 SECTION LOCAL DEFAULT 1 .interp - 2: 0000000000000254 0 SECTION LOCAL DEFAULT 2 .note.gnu.build-id - 3: 0000000000000278 0 SECTION LOCAL DEFAULT 3 .note.ABI-tag - 4: 0000000000000298 0 SECTION LOCAL DEFAULT 4 .gnu.hash - 5: 00000000000002b8 0 SECTION LOCAL DEFAULT 5 .dynsym - 6: 0000000000000390 0 SECTION LOCAL DEFAULT 6 .dynstr - 7: 000000000000041e 0 SECTION LOCAL DEFAULT 7 .gnu.version - 8: 0000000000000430 0 SECTION LOCAL DEFAULT 8 .gnu.version_r - 9: 0000000000000460 0 SECTION LOCAL DEFAULT 9 .rela.dyn - 10: 0000000000000520 0 SECTION LOCAL DEFAULT 10 .rela.plt - 11: 0000000000000580 0 SECTION LOCAL DEFAULT 11 .init - 12: 00000000000005a0 0 SECTION LOCAL DEFAULT 12 .plt - 13: 0000000000000600 0 SECTION LOCAL DEFAULT 13 .text - 14: 0000000000000754 0 SECTION LOCAL DEFAULT 14 .fini - 15: 0000000000000768 0 SECTION LOCAL DEFAULT 15 .rodata - 16: 000000000000076c 0 SECTION LOCAL DEFAULT 16 .eh_frame_hdr - 17: 00000000000007a8 0 SECTION LOCAL DEFAULT 17 .eh_frame - 18: 0000000000010d98 0 SECTION LOCAL DEFAULT 18 .init_array - 19: 0000000000010da0 0 SECTION LOCAL DEFAULT 19 .fini_array - 20: 0000000000010da8 0 SECTION LOCAL DEFAULT 20 .dynamic - 21: 0000000000010f98 0 SECTION LOCAL DEFAULT 21 .got - 22: 0000000000011000 0 SECTION LOCAL DEFAULT 22 .data - 23: 0000000000011010 0 SECTION LOCAL DEFAULT 23 .bss - 24: 0000000000000000 0 SECTION LOCAL DEFAULT 24 .comment - 25: 0000000000000000 0 FILE LOCAL DEFAULT ABS Scrt1.o - 26: 0000000000000278 0 NOTYPE LOCAL DEFAULT 3 $d - 27: 0000000000000278 32 OBJECT LOCAL DEFAULT 3 __abi_tag - 28: 0000000000000640 0 NOTYPE LOCAL DEFAULT 13 $x - 29: 00000000000007bc 0 NOTYPE LOCAL DEFAULT 17 $d - 30: 0000000000000768 0 NOTYPE LOCAL DEFAULT 15 $d - 31: 0000000000000000 0 FILE LOCAL DEFAULT ABS crti.o - 32: 0000000000000674 0 NOTYPE LOCAL DEFAULT 13 $x - 33: 0000000000000674 20 FUNC LOCAL DEFAULT 13 call_weak_fn - 34: 0000000000000580 0 NOTYPE LOCAL DEFAULT 11 $x - 35: 0000000000000754 0 NOTYPE LOCAL DEFAULT 14 $x - 36: 0000000000000000 0 FILE LOCAL DEFAULT ABS crtn.o - 37: 0000000000000590 0 NOTYPE LOCAL DEFAULT 11 $x - 38: 0000000000000760 0 NOTYPE LOCAL DEFAULT 14 $x - 39: 0000000000000000 0 FILE LOCAL DEFAULT ABS no_interference_update_y.c - 40: 0000000000000600 0 NOTYPE LOCAL DEFAULT 13 $x - 41: 0000000000011014 0 NOTYPE LOCAL DEFAULT 23 $d - 42: 0000000000000830 0 NOTYPE LOCAL DEFAULT 17 $d - 43: 0000000000000000 0 FILE LOCAL DEFAULT ABS crtstuff.c - 44: 0000000000000690 0 NOTYPE LOCAL DEFAULT 13 $x - 45: 0000000000000690 0 FUNC LOCAL DEFAULT 13 deregister_tm_clones - 46: 00000000000006c0 0 FUNC LOCAL DEFAULT 13 register_tm_clones - 47: 0000000000011008 0 NOTYPE LOCAL DEFAULT 22 $d - 48: 0000000000000700 0 FUNC LOCAL DEFAULT 13 __do_global_dtors_aux - 49: 0000000000011010 1 OBJECT LOCAL DEFAULT 23 completed.0 - 50: 0000000000010da0 0 NOTYPE LOCAL DEFAULT 19 $d - 51: 0000000000010da0 0 OBJECT LOCAL DEFAULT 19 __do_global_dtors_aux_fini_array_entry - 52: 0000000000000750 0 FUNC LOCAL DEFAULT 13 frame_dummy - 53: 0000000000010d98 0 NOTYPE LOCAL DEFAULT 18 $d - 54: 0000000000010d98 0 OBJECT LOCAL DEFAULT 18 __frame_dummy_init_array_entry - 55: 00000000000007d0 0 NOTYPE LOCAL DEFAULT 17 $d - 56: 0000000000011010 0 NOTYPE LOCAL DEFAULT 23 $d - 57: 0000000000000000 0 FILE LOCAL DEFAULT ABS crtstuff.c - 58: 0000000000000844 0 NOTYPE LOCAL DEFAULT 17 $d - 59: 0000000000000844 0 OBJECT LOCAL DEFAULT 17 __FRAME_END__ - 60: 0000000000000000 0 FILE LOCAL DEFAULT ABS - 61: 0000000000010da8 0 OBJECT LOCAL DEFAULT ABS _DYNAMIC - 62: 000000000000076c 0 NOTYPE LOCAL DEFAULT 16 __GNU_EH_FRAME_HDR - 63: 0000000000010fd0 0 OBJECT LOCAL DEFAULT ABS _GLOBAL_OFFSET_TABLE_ - 64: 00000000000005a0 0 NOTYPE LOCAL DEFAULT 12 $x - 65: 0000000000000000 0 FUNC GLOBAL DEFAULT UND __libc_start_main@GLIBC_2.34 - 66: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_deregisterTMCloneTable - 67: 0000000000011000 0 NOTYPE WEAK DEFAULT 22 data_start - 68: 0000000000011010 0 NOTYPE GLOBAL DEFAULT 23 __bss_start__ - 69: 0000000000000000 0 FUNC WEAK DEFAULT UND __cxa_finalize@GLIBC_2.17 - 70: 0000000000011020 0 NOTYPE GLOBAL DEFAULT 23 _bss_end__ - 71: 0000000000011010 0 NOTYPE GLOBAL DEFAULT 22 _edata - 72: 0000000000011018 4 OBJECT GLOBAL DEFAULT 23 x - 73: 0000000000000754 0 FUNC GLOBAL HIDDEN 14 _fini - 74: 0000000000011020 0 NOTYPE GLOBAL DEFAULT 23 __bss_end__ - 75: 0000000000011000 0 NOTYPE GLOBAL DEFAULT 22 __data_start - 76: 0000000000000000 0 NOTYPE WEAK DEFAULT UND __gmon_start__ - 77: 0000000000011008 0 OBJECT GLOBAL HIDDEN 22 __dso_handle - 78: 0000000000000000 0 FUNC GLOBAL DEFAULT UND abort@GLIBC_2.17 - 79: 0000000000000768 4 OBJECT GLOBAL DEFAULT 15 _IO_stdin_used - 80: 0000000000011020 0 NOTYPE GLOBAL DEFAULT 23 _end - 81: 0000000000000640 52 FUNC GLOBAL DEFAULT 13 _start - 82: 0000000000011020 0 NOTYPE GLOBAL DEFAULT 23 __end__ - 83: 0000000000011014 4 OBJECT GLOBAL DEFAULT 23 y - 84: 0000000000011010 0 NOTYPE GLOBAL DEFAULT 23 __bss_start - 85: 0000000000000600 20 FUNC GLOBAL DEFAULT 13 main - 86: 0000000000011010 0 OBJECT GLOBAL HIDDEN 22 __TMC_END__ - 87: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_registerTMCloneTable - 88: 0000000000000580 0 FUNC GLOBAL HIDDEN 11 _init diff --git a/src/test/correct/no_interference_update_y/gcc_O2/no_interference_update_y_gtirb.expected b/src/test/correct/no_interference_update_y/gcc_O2/no_interference_update_y_gtirb.expected index 437e80a4c..1b0e1ce61 100644 --- a/src/test/correct/no_interference_update_y/gcc_O2/no_interference_update_y_gtirb.expected +++ b/src/test/correct/no_interference_update_y/gcc_O2/no_interference_update_y_gtirb.expected @@ -66,7 +66,7 @@ implementation {:extern} guarantee_reflexive() assert (memory_load32_le(mem, $x_addr) == memory_load32_le(mem, $x_addr)); } -procedure main_1536(); +procedure main(); modifies Gamma_R0, Gamma_R1, Gamma_R2, Gamma_mem, R0, R1, R2, mem; free requires (memory_load64_le(mem, 69632bv64) == 0bv64); free requires (memory_load64_le(mem, 69640bv64) == 69640bv64); @@ -82,23 +82,23 @@ procedure main_1536(); free ensures (memory_load64_le(mem, 69616bv64) == 1536bv64); free ensures (memory_load64_le(mem, 69640bv64) == 69640bv64); -implementation main_1536() +implementation main() { var x_old: bv32; - main_1536__0__jEeH_W1PQjO_BGqBl3CzIA: - assume {:captureState "main_1536__0__jEeH_W1PQjO_BGqBl3CzIA"} true; + $main$__0__$jEeH_W1PQjO_BGqBl3CzIA: + assume {:captureState "$main$__0__$jEeH_W1PQjO_BGqBl3CzIA"} true; R1, Gamma_R1 := 69632bv64, true; R2, Gamma_R2 := 1bv64, true; R0, Gamma_R0 := 0bv64, true; call rely(); - x_old := memory_load32_le(mem, $x_addr); assert (L(mem, bvadd64(R1, 20bv64)) ==> Gamma_R2); + x_old := memory_load32_le(mem, $x_addr); mem, Gamma_mem := memory_store32_le(mem, bvadd64(R1, 20bv64), R2[32:0]), gamma_store32(Gamma_mem, bvadd64(R1, 20bv64), Gamma_R2); assert (memory_load32_le(mem, $x_addr) == x_old); - assume {:captureState "1548_0"} true; - goto main_1536_basil_return; - main_1536_basil_return: - assume {:captureState "main_1536_basil_return"} true; + assume {:captureState "1548$0"} true; + goto main_basil_return; + main_basil_return: + assume {:captureState "main_basil_return"} true; return; } diff --git a/src/test/correct/no_interference_update_y/gcc_pic/no_interference_update_y.adt b/src/test/correct/no_interference_update_y/gcc_pic/no_interference_update_y.adt deleted file mode 100644 index 20ffb016d..000000000 --- a/src/test/correct/no_interference_update_y/gcc_pic/no_interference_update_y.adt +++ /dev/null @@ -1,495 +0,0 @@ -Project(Attrs([Attr("filename","\"gcc_pic/no_interference_update_y.out\""), -Attr("image-specification","(declare abi (name str))\n(declare arch (name str))\n(declare base-address (addr int))\n(declare bias (off int))\n(declare bits (size int))\n(declare code-region (addr int) (size int) (off int))\n(declare code-start (addr int))\n(declare entry-point (addr int))\n(declare external-reference (addr int) (name str))\n(declare format (name str))\n(declare is-executable (flag bool))\n(declare is-little-endian (flag bool))\n(declare llvm:base-address (addr int))\n(declare llvm:code-entry (name str) (off int) (size int))\n(declare llvm:coff-import-library (name str))\n(declare llvm:coff-virtual-section-header (name str) (addr int) (size int))\n(declare llvm:elf-program-header (name str) (off int) (size int))\n(declare llvm:elf-program-header-flags (name str) (ld bool) (r bool) \n (w bool) (x bool))\n(declare llvm:elf-virtual-program-header (name str) (addr int) (size int))\n(declare llvm:entry-point (addr int))\n(declare llvm:macho-symbol (name str) (value int))\n(declare llvm:name-reference (at int) (name str))\n(declare llvm:relocation (at int) (addr int))\n(declare llvm:section-entry (name str) (addr int) (size int) (off int))\n(declare llvm:section-flags (name str) (r bool) (w bool) (x bool))\n(declare llvm:segment-command (name str) (off int) (size int))\n(declare llvm:segment-command-flags (name str) (r bool) (w bool) (x bool))\n(declare llvm:symbol-entry (name str) (addr int) (size int) (off int)\n (value int))\n(declare llvm:virtual-segment-command (name str) (addr int) (size int))\n(declare mapped (addr int) (size int) (off int))\n(declare named-region (addr int) (size int) (name str))\n(declare named-symbol (addr int) (name str))\n(declare require (name str))\n(declare section (addr int) (size int))\n(declare segment (addr int) (size int) (r bool) (w bool) (x bool))\n(declare subarch (name str))\n(declare symbol-chunk (addr int) (size int) (root int))\n(declare symbol-value (addr int) (value int))\n(declare system (name str))\n(declare vendor (name str))\n\n(abi unknown)\n(arch aarch64)\n(base-address 0)\n(bias 0)\n(bits 64)\n(code-region 1900 20 1900)\n(code-region 1600 300 1600)\n(code-region 1456 96 1456)\n(code-region 1432 24 1432)\n(code-start 1652)\n(code-start 1600)\n(code-start 1876)\n(entry-point 1600)\n(external-reference 69584 _ITM_deregisterTMCloneTable)\n(external-reference 69592 __cxa_finalize)\n(external-reference 69600 __gmon_start__)\n(external-reference 69624 _ITM_registerTMCloneTable)\n(external-reference 69544 __libc_start_main)\n(external-reference 69552 __cxa_finalize)\n(external-reference 69560 __gmon_start__)\n(external-reference 69568 abort)\n(format elf)\n(is-executable true)\n(is-little-endian true)\n(llvm:base-address 0)\n(llvm:code-entry abort 0 0)\n(llvm:code-entry __cxa_finalize 0 0)\n(llvm:code-entry __libc_start_main 0 0)\n(llvm:code-entry _init 1432 0)\n(llvm:code-entry main 1876 24)\n(llvm:code-entry _start 1600 52)\n(llvm:code-entry abort@GLIBC_2.17 0 0)\n(llvm:code-entry _fini 1900 0)\n(llvm:code-entry __cxa_finalize@GLIBC_2.17 0 0)\n(llvm:code-entry __libc_start_main@GLIBC_2.34 0 0)\n(llvm:code-entry frame_dummy 1872 0)\n(llvm:code-entry __do_global_dtors_aux 1792 0)\n(llvm:code-entry register_tm_clones 1728 0)\n(llvm:code-entry deregister_tm_clones 1680 0)\n(llvm:code-entry call_weak_fn 1652 20)\n(llvm:code-entry .fini 1900 20)\n(llvm:code-entry .text 1600 300)\n(llvm:code-entry .plt 1456 96)\n(llvm:code-entry .init 1432 24)\n(llvm:elf-program-header 08 3472 624)\n(llvm:elf-program-header 07 0 0)\n(llvm:elf-program-header 06 1924 60)\n(llvm:elf-program-header 05 596 68)\n(llvm:elf-program-header 04 3488 496)\n(llvm:elf-program-header 03 3472 640)\n(llvm:elf-program-header 02 0 2144)\n(llvm:elf-program-header 01 568 27)\n(llvm:elf-program-header 00 64 504)\n(llvm:elf-program-header-flags 08 false true false false)\n(llvm:elf-program-header-flags 07 false true true false)\n(llvm:elf-program-header-flags 06 false true false false)\n(llvm:elf-program-header-flags 05 false true false false)\n(llvm:elf-program-header-flags 04 false true true false)\n(llvm:elf-program-header-flags 03 true true true false)\n(llvm:elf-program-header-flags 02 true true false true)\n(llvm:elf-program-header-flags 01 false true false false)\n(llvm:elf-program-header-flags 00 false true false false)\n(llvm:elf-virtual-program-header 08 69008 624)\n(llvm:elf-virtual-program-header 07 0 0)\n(llvm:elf-virtual-program-header 06 1924 60)\n(llvm:elf-virtual-program-header 05 596 68)\n(llvm:elf-virtual-program-header 04 69024 496)\n(llvm:elf-virtual-program-header 03 69008 656)\n(llvm:elf-virtual-program-header 02 0 2144)\n(llvm:elf-virtual-program-header 01 568 27)\n(llvm:elf-virtual-program-header 00 64 504)\n(llvm:entry-point 1600)\n(llvm:name-reference 69568 abort)\n(llvm:name-reference 69560 __gmon_start__)\n(llvm:name-reference 69552 __cxa_finalize)\n(llvm:name-reference 69544 __libc_start_main)\n(llvm:name-reference 69624 _ITM_registerTMCloneTable)\n(llvm:name-reference 69600 __gmon_start__)\n(llvm:name-reference 69592 __cxa_finalize)\n(llvm:name-reference 69584 _ITM_deregisterTMCloneTable)\n(llvm:section-entry .shstrtab 0 250 6856)\n(llvm:section-entry .strtab 0 560 6296)\n(llvm:section-entry .symtab 0 2136 4160)\n(llvm:section-entry .comment 0 43 4112)\n(llvm:section-entry .bss 69648 16 4112)\n(llvm:section-entry .data 69632 16 4096)\n(llvm:section-entry .got 69520 112 3984)\n(llvm:section-entry .dynamic 69024 496 3488)\n(llvm:section-entry .fini_array 69016 8 3480)\n(llvm:section-entry .init_array 69008 8 3472)\n(llvm:section-entry .eh_frame 1984 160 1984)\n(llvm:section-entry .eh_frame_hdr 1924 60 1924)\n(llvm:section-entry .rodata 1920 4 1920)\n(llvm:section-entry .fini 1900 20 1900)\n(llvm:section-entry .text 1600 300 1600)\n(llvm:section-entry .plt 1456 96 1456)\n(llvm:section-entry .init 1432 24 1432)\n(llvm:section-entry .rela.plt 1336 96 1336)\n(llvm:section-entry .rela.dyn 1120 216 1120)\n(llvm:section-entry .gnu.version_r 1072 48 1072)\n(llvm:section-entry .gnu.version 1054 18 1054)\n(llvm:section-entry .dynstr 912 141 912)\n(llvm:section-entry .dynsym 696 216 696)\n(llvm:section-entry .gnu.hash 664 28 664)\n(llvm:section-entry .note.ABI-tag 632 32 632)\n(llvm:section-entry .note.gnu.build-id 596 36 596)\n(llvm:section-entry .interp 568 27 568)\n(llvm:section-flags .shstrtab true false false)\n(llvm:section-flags .strtab true false false)\n(llvm:section-flags .symtab true false false)\n(llvm:section-flags .comment true false false)\n(llvm:section-flags .bss true true false)\n(llvm:section-flags .data true true false)\n(llvm:section-flags .got true true false)\n(llvm:section-flags .dynamic true true false)\n(llvm:section-flags .fini_array true true false)\n(llvm:section-flags .init_array true true false)\n(llvm:section-flags .eh_frame true false false)\n(llvm:section-flags .eh_frame_hdr true false false)\n(llvm:section-flags .rodata true false false)\n(llvm:section-flags .fini true false true)\n(llvm:section-flags .text true false true)\n(llvm:section-flags .plt true false true)\n(llvm:section-flags .init true false true)\n(llvm:section-flags .rela.plt true false false)\n(llvm:section-flags .rela.dyn true false false)\n(llvm:section-flags .gnu.version_r true false false)\n(llvm:section-flags .gnu.version true false false)\n(llvm:section-flags .dynstr true false false)\n(llvm:section-flags .dynsym true false false)\n(llvm:section-flags .gnu.hash true false false)\n(llvm:section-flags .note.ABI-tag true false false)\n(llvm:section-flags .note.gnu.build-id true false false)\n(llvm:section-flags .interp true false false)\n(llvm:symbol-entry abort 0 0 0 0)\n(llvm:symbol-entry __cxa_finalize 0 0 0 0)\n(llvm:symbol-entry __libc_start_main 0 0 0 0)\n(llvm:symbol-entry _init 1432 0 1432 1432)\n(llvm:symbol-entry main 1876 24 1876 1876)\n(llvm:symbol-entry _start 1600 52 1600 1600)\n(llvm:symbol-entry abort@GLIBC_2.17 0 0 0 0)\n(llvm:symbol-entry _fini 1900 0 1900 1900)\n(llvm:symbol-entry __cxa_finalize@GLIBC_2.17 0 0 0 0)\n(llvm:symbol-entry __libc_start_main@GLIBC_2.34 0 0 0 0)\n(llvm:symbol-entry frame_dummy 1872 0 1872 1872)\n(llvm:symbol-entry __do_global_dtors_aux 1792 0 1792 1792)\n(llvm:symbol-entry register_tm_clones 1728 0 1728 1728)\n(llvm:symbol-entry deregister_tm_clones 1680 0 1680 1680)\n(llvm:symbol-entry call_weak_fn 1652 20 1652 1652)\n(mapped 0 2144 0)\n(mapped 69008 640 3472)\n(named-region 0 2144 02)\n(named-region 69008 656 03)\n(named-region 568 27 .interp)\n(named-region 596 36 .note.gnu.build-id)\n(named-region 632 32 .note.ABI-tag)\n(named-region 664 28 .gnu.hash)\n(named-region 696 216 .dynsym)\n(named-region 912 141 .dynstr)\n(named-region 1054 18 .gnu.version)\n(named-region 1072 48 .gnu.version_r)\n(named-region 1120 216 .rela.dyn)\n(named-region 1336 96 .rela.plt)\n(named-region 1432 24 .init)\n(named-region 1456 96 .plt)\n(named-region 1600 300 .text)\n(named-region 1900 20 .fini)\n(named-region 1920 4 .rodata)\n(named-region 1924 60 .eh_frame_hdr)\n(named-region 1984 160 .eh_frame)\n(named-region 69008 8 .init_array)\n(named-region 69016 8 .fini_array)\n(named-region 69024 496 .dynamic)\n(named-region 69520 112 .got)\n(named-region 69632 16 .data)\n(named-region 69648 16 .bss)\n(named-region 0 43 .comment)\n(named-region 0 2136 .symtab)\n(named-region 0 560 .strtab)\n(named-region 0 250 .shstrtab)\n(named-symbol 1652 call_weak_fn)\n(named-symbol 1680 deregister_tm_clones)\n(named-symbol 1728 register_tm_clones)\n(named-symbol 1792 __do_global_dtors_aux)\n(named-symbol 1872 frame_dummy)\n(named-symbol 0 __libc_start_main@GLIBC_2.34)\n(named-symbol 0 __cxa_finalize@GLIBC_2.17)\n(named-symbol 1900 _fini)\n(named-symbol 0 abort@GLIBC_2.17)\n(named-symbol 1600 _start)\n(named-symbol 1876 main)\n(named-symbol 1432 _init)\n(named-symbol 0 __libc_start_main)\n(named-symbol 0 __cxa_finalize)\n(named-symbol 0 abort)\n(require libc.so.6)\n(section 568 27)\n(section 596 36)\n(section 632 32)\n(section 664 28)\n(section 696 216)\n(section 912 141)\n(section 1054 18)\n(section 1072 48)\n(section 1120 216)\n(section 1336 96)\n(section 1432 24)\n(section 1456 96)\n(section 1600 300)\n(section 1900 20)\n(section 1920 4)\n(section 1924 60)\n(section 1984 160)\n(section 69008 8)\n(section 69016 8)\n(section 69024 496)\n(section 69520 112)\n(section 69632 16)\n(section 69648 16)\n(section 0 43)\n(section 0 2136)\n(section 0 560)\n(section 0 250)\n(segment 0 2144 true false true)\n(segment 69008 656 true true false)\n(subarch v8)\n(symbol-chunk 1652 20 1652)\n(symbol-chunk 1600 52 1600)\n(symbol-chunk 1876 24 1876)\n(symbol-value 1652 1652)\n(symbol-value 1680 1680)\n(symbol-value 1728 1728)\n(symbol-value 1792 1792)\n(symbol-value 1872 1872)\n(symbol-value 1900 1900)\n(symbol-value 1600 1600)\n(symbol-value 1876 1876)\n(symbol-value 1432 1432)\n(symbol-value 0 0)\n(system \"\")\n(vendor \"\")\n"), -Attr("abi-name","\"aarch64-linux-gnu-elf\"")]), -Sections([Section(".shstrtab", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x40\x06\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xc8\x1b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x38\x00\x09\x00\x40\x00\x1c\x00\x1b\x00\x06\x00\x00\x00\x04\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x04\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x60\x08\x00\x00\x00\x00\x00\x00\x60\x08\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x01\x00\x00\x00\x06\x00\x00\x00\x90\x0d\x00\x00\x00\x00\x00\x00\x90\x0d"), -Section(".strtab", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x40\x06\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xc8\x1b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x38\x00\x09\x00\x40\x00\x1c\x00\x1b\x00\x06\x00\x00\x00\x04\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x04\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x60\x08\x00\x00\x00\x00\x00\x00\x60\x08\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x01\x00\x00\x00\x06\x00\x00\x00\x90\x0d\x00\x00\x00\x00\x00\x00\x90\x0d\x01\x00\x00\x00\x00\x00\x90\x0d\x01\x00\x00\x00\x00\x00\x80\x02\x00\x00\x00\x00\x00\x00\x90\x02\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x02\x00\x00\x00\x06\x00\x00\x00\xa0\x0d\x00\x00\x00\x00\x00\x00\xa0\x0d\x01\x00\x00\x00\x00\x00\xa0\x0d\x01\x00\x00\x00\x00\x00\xf0\x01\x00\x00\x00\x00\x00\x00\xf0\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x04\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x50\xe5\x74\x64\x04\x00\x00\x00\x84\x07\x00\x00\x00\x00\x00\x00\x84\x07\x00\x00\x00\x00\x00\x00\x84\x07\x00\x00\x00\x00\x00\x00\x3c\x00\x00\x00\x00\x00\x00\x00\x3c\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x51\xe5\x74\x64\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x52\xe5\x74\x64\x04\x00\x00\x00\x90\x0d\x00\x00\x00\x00\x00\x00\x90\x0d\x01\x00\x00\x00\x00\x00\x90\x0d\x01\x00\x00\x00\x00\x00\x70\x02\x00\x00\x00\x00\x00\x00\x70\x02\x00\x00\x00\x00\x00\x00"), -Section(".symtab", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x40\x06\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xc8\x1b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x38\x00\x09\x00\x40\x00\x1c\x00\x1b\x00\x06\x00\x00\x00\x04\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x04\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x60\x08\x00\x00\x00\x00\x00\x00\x60\x08\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x01\x00\x00\x00\x06\x00\x00\x00\x90\x0d\x00\x00\x00\x00\x00\x00\x90\x0d\x01\x00\x00\x00\x00\x00\x90\x0d\x01\x00\x00\x00\x00\x00\x80\x02\x00\x00\x00\x00\x00\x00\x90\x02\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x02\x00\x00\x00\x06\x00\x00\x00\xa0\x0d\x00\x00\x00\x00\x00\x00\xa0\x0d\x01\x00\x00\x00\x00\x00\xa0\x0d\x01\x00\x00\x00\x00\x00\xf0\x01\x00\x00\x00\x00\x00\x00\xf0\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x04\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x50\xe5\x74\x64\x04\x00\x00\x00\x84\x07\x00\x00\x00\x00\x00\x00\x84\x07\x00\x00\x00\x00\x00\x00\x84\x07\x00\x00\x00\x00\x00\x00\x3c\x00\x00\x00\x00\x00\x00\x00\x3c\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x51\xe5\x74\x64\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x52\xe5\x74\x64\x04\x00\x00\x00\x90\x0d\x00\x00\x00\x00\x00\x00\x90\x0d\x01\x00\x00\x00\x00\x00\x90\x0d\x01\x00\x00\x00\x00\x00\x70\x02\x00\x00\x00\x00\x00\x00\x70\x02\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x2f\x6c\x69\x62\x2f\x6c\x64\x2d\x6c\x69\x6e\x75\x78\x2d\x61\x61\x72\x63\x68\x36\x34\x2e\x73\x6f\x2e\x31\x00\x00\x04\x00\x00\x00\x14\x00\x00\x00\x03\x00\x00\x00\x47\x4e\x55\x00\xeb\x07\xcf\x8c\xfc\xb6\x5e\x34\xf6\x3b\x74\x49\xfa\xed\x53\x53\x6a\xf0\x72\xc3\x04\x00\x00\x00\x10\x00\x00\x00\x01\x00\x00\x00\x47\x4e\x55\x00\x00\x00\x00\x00\x03\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x01\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x0b\x00\x98\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x16\x00\x00\x10\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x48\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x22\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x22\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x73\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5f\x5f\x63\x78\x61\x5f\x66\x69\x6e\x61\x6c\x69\x7a\x65\x00\x5f\x5f\x6c\x69\x62\x63\x5f\x73\x74\x61\x72\x74\x5f\x6d\x61\x69\x6e\x00\x61\x62\x6f\x72\x74\x00\x6c\x69\x62\x63\x2e\x73\x6f\x2e\x36\x00\x47\x4c\x49\x42\x43\x5f\x32\x2e\x31\x37\x00\x47\x4c\x49\x42\x43\x5f\x32\x2e\x33\x34\x00\x5f\x49\x54\x4d\x5f\x64\x65\x72\x65\x67\x69\x73\x74\x65\x72\x54\x4d\x43\x6c\x6f\x6e\x65\x54\x61\x62\x6c\x65\x00\x5f\x5f\x67\x6d\x6f\x6e\x5f\x73\x74\x61\x72\x74\x5f\x5f\x00\x5f\x49\x54\x4d\x5f\x72\x65\x67\x69\x73\x74\x65\x72\x54\x4d\x43\x6c\x6f\x6e\x65\x54\x61\x62\x6c\x65\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x01\x00\x03\x00\x01\x00\x03\x00\x01\x00\x01\x00\x02\x00\x28\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x97\x91\x96\x06\x00\x00\x03\x00\x32\x00\x00\x00\x10\x00\x00\x00\xb4\x91\x96\x06\x00\x00\x02\x00\x3d\x00\x00\x00\x00\x00\x00\x00\x90\x0d\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x50\x07\x00\x00\x00\x00\x00\x00\x98\x0d\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\xe8\x0f\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x18\x10\x01\x00\x00\x00\x00\x00\xf0\x0f\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x54\x07\x00\x00\x00\x00\x00\x00\x08\x10\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x08\x10\x01\x00\x00\x00\x00\x00\xd0\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xd8\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe0\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xf8\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xa8\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xb0\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xb8\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xc0\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1f\x20\x03\xd5\xfd\x7b\xbf\xa9\xfd\x03\x00\x91\x34\x00\x00\x94\xfd\x7b\xc1\xa8\xc0\x03\x5f\xd6\xf0\x7b\xbf\xa9\x90\x00\x00\x90\x11\xd2\x47\xf9\x10\x82\x3e\x91\x20\x02\x1f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x90\x00\x00\x90\x11\xd6\x47\xf9\x10\xa2\x3e\x91\x20\x02\x1f\xd6\x90\x00\x00\x90\x11\xda\x47\xf9\x10\xc2\x3e\x91\x20\x02\x1f\xd6\x90\x00\x00\x90\x11\xde\x47\xf9\x10\xe2\x3e\x91\x20\x02\x1f\xd6\x90\x00\x00\x90\x11\xe2\x47\xf9\x10\x02\x3f\x91\x20\x02\x1f\xd6\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1f\x20\x03\xd5\x1d\x00\x80\xd2\x1e\x00\x80\xd2\xe5\x03\x00\xaa\xe1\x03\x40\xf9\xe2\x23\x00\x91\xe6\x03\x00\x91\x80\x00\x00\x90\x00\xf8\x47\xf9\x03\x00\x80\xd2\x04\x00\x80\xd2\xd9\xff\xff\x97\xe4\xff\xff\x97\x80\x00\x00\x90\x00\xf0\x47\xf9\x40\x00\x00\xb4\xdc\xff\xff\x17\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x80\x00\x00\xb0\x00\x40\x00\x91\x81\x00\x00\xb0\x21\x40\x00\x91\x3f\x00\x00\xeb\xc0\x00\x00\x54\x81\x00\x00\x90\x21\xe8\x47\xf9\x61\x00\x00\xb4\xf0\x03\x01\xaa\x00\x02\x1f\xd6\xc0\x03\x5f\xd6\x80\x00\x00\xb0\x00\x40\x00\x91\x81\x00\x00\xb0\x21\x40\x00\x91\x21\x00\x00\xcb\x22\xfc\x7f\xd3\x41\x0c\x81\x8b\x21\xfc\x41\x93\xc1\x00\x00\xb4\x82\x00\x00\x90\x42\xfc\x47\xf9\x62\x00\x00\xb4\xf0\x03\x02\xaa\x00\x02\x1f\xd6\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\xfd\x7b\xbe\xa9\xfd\x03\x00\x91\xf3\x0b\x00\xf9\x93\x00\x00\xb0\x60\x42\x40\x39\x40\x01\x00\x35\x80\x00\x00\x90\x00\xec\x47\xf9\x80\x00\x00\xb4\x80\x00\x00\xb0\x00\x04\x40\xf9\xad\xff\xff\x97\xd8\xff\xff\x97\x20\x00\x80\x52\x60\x42\x00\x39\xf3\x0b\x40\xf9\xfd\x7b\xc2\xa8\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\xdc\xff\xff\x17\x80\x00\x00\x90\x00\xf4\x47\xf9\x21\x00\x80\x52\x01\x00\x00\xb9\x00\x00\x80\x52\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\xfd\x7b\xbf\xa9\xfd\x03\x00\x91\xfd\x7b\xc1\xa8\xc0\x03\x5f\xd6\x01\x00\x02\x00\x01\x1b\x03\x3b\x38\x00\x00\x00\x06\x00\x00\x00\xbc\xfe\xff\xff\x50\x00\x00\x00\x0c\xff\xff\xff\x64\x00\x00\x00\x3c\xff\xff\xff\x78\x00\x00\x00\x7c\xff\xff\xff\x8c\x00\x00\x00\xcc\xff\xff\xff\xb0\x00\x00\x00\xd0\xff\xff\xff\xc4\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x01\x7a\x52\x00\x04\x78\x1e\x01\x1b\x0c\x1f\x00\x10\x00\x00\x00\x18\x00\x00\x00\x64\xfe\xff\xff\x34\x00\x00\x00\x00\x41\x07\x1e\x10\x00\x00\x00\x2c\x00\x00\x00\xa0\xfe\xff\xff\x30\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x40\x00\x00\x00\xbc\xfe\xff\xff\x3c\x00\x00\x00\x00\x00\x00\x00\x20\x00\x00\x00\x54\x00\x00\x00\xe8\xfe\xff\xff\x48\x00\x00\x00\x00\x41\x0e\x20\x9d\x04\x9e\x03\x42\x93\x02\x4e\xde\xdd\xd3\x0e\x00\x00\x00\x00\x10\x00\x00\x00\x78\x00\x00\x00\x14\xff\xff\xff\x04\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x8c\x00\x00\x00\x04\xff\xff\xff\x18\x00\x00\x00"), -Section(".comment", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x40\x06\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xc8\x1b\x00"), -Section(".interp", 0x238, "\x2f\x6c\x69\x62\x2f\x6c\x64\x2d\x6c\x69\x6e\x75\x78\x2d\x61\x61\x72\x63\x68\x36\x34\x2e\x73\x6f\x2e\x31\x00"), -Section(".note.gnu.build-id", 0x254, "\x04\x00\x00\x00\x14\x00\x00\x00\x03\x00\x00\x00\x47\x4e\x55\x00\xeb\x07\xcf\x8c\xfc\xb6\x5e\x34\xf6\x3b\x74\x49\xfa\xed\x53\x53\x6a\xf0\x72\xc3"), -Section(".note.ABI-tag", 0x278, "\x04\x00\x00\x00\x10\x00\x00\x00\x01\x00\x00\x00\x47\x4e\x55\x00\x00\x00\x00\x00\x03\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00"), -Section(".gnu.hash", 0x298, "\x01\x00\x00\x00\x01\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".dynsym", 0x2B8, "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x0b\x00\x98\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x16\x00\x00\x10\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x48\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x22\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x22\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x73\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".dynstr", 0x390, "\x00\x5f\x5f\x63\x78\x61\x5f\x66\x69\x6e\x61\x6c\x69\x7a\x65\x00\x5f\x5f\x6c\x69\x62\x63\x5f\x73\x74\x61\x72\x74\x5f\x6d\x61\x69\x6e\x00\x61\x62\x6f\x72\x74\x00\x6c\x69\x62\x63\x2e\x73\x6f\x2e\x36\x00\x47\x4c\x49\x42\x43\x5f\x32\x2e\x31\x37\x00\x47\x4c\x49\x42\x43\x5f\x32\x2e\x33\x34\x00\x5f\x49\x54\x4d\x5f\x64\x65\x72\x65\x67\x69\x73\x74\x65\x72\x54\x4d\x43\x6c\x6f\x6e\x65\x54\x61\x62\x6c\x65\x00\x5f\x5f\x67\x6d\x6f\x6e\x5f\x73\x74\x61\x72\x74\x5f\x5f\x00\x5f\x49\x54\x4d\x5f\x72\x65\x67\x69\x73\x74\x65\x72\x54\x4d\x43\x6c\x6f\x6e\x65\x54\x61\x62\x6c\x65\x00"), -Section(".gnu.version", 0x41E, "\x00\x00\x00\x00\x00\x00\x02\x00\x01\x00\x03\x00\x01\x00\x03\x00\x01\x00"), -Section(".gnu.version_r", 0x430, "\x01\x00\x02\x00\x28\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x97\x91\x96\x06\x00\x00\x03\x00\x32\x00\x00\x00\x10\x00\x00\x00\xb4\x91\x96\x06\x00\x00\x02\x00\x3d\x00\x00\x00\x00\x00\x00\x00"), -Section(".rela.dyn", 0x460, "\x90\x0d\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x50\x07\x00\x00\x00\x00\x00\x00\x98\x0d\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\xe8\x0f\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x18\x10\x01\x00\x00\x00\x00\x00\xf0\x0f\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x54\x07\x00\x00\x00\x00\x00\x00\x08\x10\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x08\x10\x01\x00\x00\x00\x00\x00\xd0\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xd8\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe0\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xf8\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".rela.plt", 0x538, "\xa8\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xb0\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xb8\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xc0\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".init", 0x598, "\x1f\x20\x03\xd5\xfd\x7b\xbf\xa9\xfd\x03\x00\x91\x34\x00\x00\x94\xfd\x7b\xc1\xa8\xc0\x03\x5f\xd6"), -Section(".plt", 0x5B0, "\xf0\x7b\xbf\xa9\x90\x00\x00\x90\x11\xd2\x47\xf9\x10\x82\x3e\x91\x20\x02\x1f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x90\x00\x00\x90\x11\xd6\x47\xf9\x10\xa2\x3e\x91\x20\x02\x1f\xd6\x90\x00\x00\x90\x11\xda\x47\xf9\x10\xc2\x3e\x91\x20\x02\x1f\xd6\x90\x00\x00\x90\x11\xde\x47\xf9\x10\xe2\x3e\x91\x20\x02\x1f\xd6\x90\x00\x00\x90\x11\xe2\x47\xf9\x10\x02\x3f\x91\x20\x02\x1f\xd6"), -Section(".fini", 0x76C, "\x1f\x20\x03\xd5\xfd\x7b\xbf\xa9\xfd\x03\x00\x91\xfd\x7b\xc1\xa8\xc0\x03\x5f\xd6"), -Section(".rodata", 0x780, "\x01\x00\x02\x00"), -Section(".eh_frame_hdr", 0x784, "\x01\x1b\x03\x3b\x38\x00\x00\x00\x06\x00\x00\x00\xbc\xfe\xff\xff\x50\x00\x00\x00\x0c\xff\xff\xff\x64\x00\x00\x00\x3c\xff\xff\xff\x78\x00\x00\x00\x7c\xff\xff\xff\x8c\x00\x00\x00\xcc\xff\xff\xff\xb0\x00\x00\x00\xd0\xff\xff\xff\xc4\x00\x00\x00"), -Section(".eh_frame", 0x7C0, "\x10\x00\x00\x00\x00\x00\x00\x00\x01\x7a\x52\x00\x04\x78\x1e\x01\x1b\x0c\x1f\x00\x10\x00\x00\x00\x18\x00\x00\x00\x64\xfe\xff\xff\x34\x00\x00\x00\x00\x41\x07\x1e\x10\x00\x00\x00\x2c\x00\x00\x00\xa0\xfe\xff\xff\x30\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x40\x00\x00\x00\xbc\xfe\xff\xff\x3c\x00\x00\x00\x00\x00\x00\x00\x20\x00\x00\x00\x54\x00\x00\x00\xe8\xfe\xff\xff\x48\x00\x00\x00\x00\x41\x0e\x20\x9d\x04\x9e\x03\x42\x93\x02\x4e\xde\xdd\xd3\x0e\x00\x00\x00\x00\x10\x00\x00\x00\x78\x00\x00\x00\x14\xff\xff\xff\x04\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x8c\x00\x00\x00\x04\xff\xff\xff\x18\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".fini_array", 0x10D98, "\x00\x07\x00\x00\x00\x00\x00\x00"), -Section(".dynamic", 0x10DA0, "\x01\x00\x00\x00\x00\x00\x00\x00\x28\x00\x00\x00\x00\x00\x00\x00\x0c\x00\x00\x00\x00\x00\x00\x00\x98\x05\x00\x00\x00\x00\x00\x00\x0d\x00\x00\x00\x00\x00\x00\x00\x6c\x07\x00\x00\x00\x00\x00\x00\x19\x00\x00\x00\x00\x00\x00\x00\x90\x0d\x01\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x1a\x00\x00\x00\x00\x00\x00\x00\x98\x0d\x01\x00\x00\x00\x00\x00\x1c\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\xf5\xfe\xff\x6f\x00\x00\x00\x00\x98\x02\x00\x00\x00\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x90\x03\x00\x00\x00\x00\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\xb8\x02\x00\x00\x00\x00\x00\x00\x0a\x00\x00\x00\x00\x00\x00\x00\x8d\x00\x00\x00\x00\x00\x00\x00\x0b\x00\x00\x00\x00\x00\x00\x00\x18\x00\x00\x00\x00\x00\x00\x00\x15\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x90\x0f\x01\x00\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x60\x00\x00\x00\x00\x00\x00\x00\x14\x00\x00\x00\x00\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x17\x00\x00\x00\x00\x00\x00\x00\x38\x05\x00\x00\x00\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x60\x04\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\xd8\x00\x00\x00\x00\x00\x00\x00\x09\x00\x00\x00\x00\x00\x00\x00\x18\x00\x00\x00\x00\x00\x00\x00\x1e\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\xfb\xff\xff\x6f\x00\x00\x00\x00\x01\x00\x00\x08\x00\x00\x00\x00\xfe\xff\xff\x6f\x00\x00\x00\x00\x30\x04\x00\x00\x00\x00\x00\x00\xff\xff\xff\x6f\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\xf0\xff\xff\x6f\x00\x00\x00\x00\x1e\x04\x00\x00\x00\x00\x00\x00\xf9\xff\xff\x6f\x00\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".got", 0x10F90, "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xb0\x05\x00\x00\x00\x00\x00\x00\xb0\x05\x00\x00\x00\x00\x00\x00\xb0\x05\x00\x00\x00\x00\x00\x00\xb0\x05\x00\x00\x00\x00\x00\x00\xa0\x0d\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x18\x10\x01\x00\x00\x00\x00\x00\x54\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".data", 0x11000, "\x00\x00\x00\x00\x00\x00\x00\x00\x08\x10\x01\x00\x00\x00\x00\x00"), -Section(".init_array", 0x10D90, "\x50\x07\x00\x00\x00\x00\x00\x00"), -Section(".text", 0x640, "\x1f\x20\x03\xd5\x1d\x00\x80\xd2\x1e\x00\x80\xd2\xe5\x03\x00\xaa\xe1\x03\x40\xf9\xe2\x23\x00\x91\xe6\x03\x00\x91\x80\x00\x00\x90\x00\xf8\x47\xf9\x03\x00\x80\xd2\x04\x00\x80\xd2\xd9\xff\xff\x97\xe4\xff\xff\x97\x80\x00\x00\x90\x00\xf0\x47\xf9\x40\x00\x00\xb4\xdc\xff\xff\x17\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x80\x00\x00\xb0\x00\x40\x00\x91\x81\x00\x00\xb0\x21\x40\x00\x91\x3f\x00\x00\xeb\xc0\x00\x00\x54\x81\x00\x00\x90\x21\xe8\x47\xf9\x61\x00\x00\xb4\xf0\x03\x01\xaa\x00\x02\x1f\xd6\xc0\x03\x5f\xd6\x80\x00\x00\xb0\x00\x40\x00\x91\x81\x00\x00\xb0\x21\x40\x00\x91\x21\x00\x00\xcb\x22\xfc\x7f\xd3\x41\x0c\x81\x8b\x21\xfc\x41\x93\xc1\x00\x00\xb4\x82\x00\x00\x90\x42\xfc\x47\xf9\x62\x00\x00\xb4\xf0\x03\x02\xaa\x00\x02\x1f\xd6\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\xfd\x7b\xbe\xa9\xfd\x03\x00\x91\xf3\x0b\x00\xf9\x93\x00\x00\xb0\x60\x42\x40\x39\x40\x01\x00\x35\x80\x00\x00\x90\x00\xec\x47\xf9\x80\x00\x00\xb4\x80\x00\x00\xb0\x00\x04\x40\xf9\xad\xff\xff\x97\xd8\xff\xff\x97\x20\x00\x80\x52\x60\x42\x00\x39\xf3\x0b\x40\xf9\xfd\x7b\xc2\xa8\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\xdc\xff\xff\x17\x80\x00\x00\x90\x00\xf4\x47\xf9\x21\x00\x80\x52\x01\x00\x00\xb9\x00\x00\x80\x52\xc0\x03\x5f\xd6")]), -Memmap([Annotation(Region(0x0,0x85F), Attr("segment","02 0 2144")), -Annotation(Region(0x640,0x673), Attr("symbol","\"_start\"")), -Annotation(Region(0x0,0xF9), Attr("section","\".shstrtab\"")), -Annotation(Region(0x0,0x22F), Attr("section","\".strtab\"")), -Annotation(Region(0x0,0x857), Attr("section","\".symtab\"")), -Annotation(Region(0x0,0x2A), Attr("section","\".comment\"")), -Annotation(Region(0x238,0x252), Attr("section","\".interp\"")), -Annotation(Region(0x254,0x277), Attr("section","\".note.gnu.build-id\"")), -Annotation(Region(0x278,0x297), Attr("section","\".note.ABI-tag\"")), -Annotation(Region(0x298,0x2B3), Attr("section","\".gnu.hash\"")), -Annotation(Region(0x2B8,0x38F), Attr("section","\".dynsym\"")), -Annotation(Region(0x390,0x41C), Attr("section","\".dynstr\"")), -Annotation(Region(0x41E,0x42F), Attr("section","\".gnu.version\"")), -Annotation(Region(0x430,0x45F), Attr("section","\".gnu.version_r\"")), -Annotation(Region(0x460,0x537), Attr("section","\".rela.dyn\"")), -Annotation(Region(0x538,0x597), Attr("section","\".rela.plt\"")), -Annotation(Region(0x598,0x5AF), Attr("section","\".init\"")), -Annotation(Region(0x5B0,0x60F), Attr("section","\".plt\"")), -Annotation(Region(0x598,0x5AF), Attr("code-region","()")), -Annotation(Region(0x5B0,0x60F), Attr("code-region","()")), -Annotation(Region(0x640,0x673), Attr("symbol-info","_start 0x640 52")), -Annotation(Region(0x674,0x687), Attr("symbol","\"call_weak_fn\"")), -Annotation(Region(0x674,0x687), Attr("symbol-info","call_weak_fn 0x674 20")), -Annotation(Region(0x754,0x76B), Attr("symbol","\"main\"")), -Annotation(Region(0x754,0x76B), Attr("symbol-info","main 0x754 24")), -Annotation(Region(0x76C,0x77F), Attr("section","\".fini\"")), -Annotation(Region(0x780,0x783), Attr("section","\".rodata\"")), -Annotation(Region(0x784,0x7BF), Attr("section","\".eh_frame_hdr\"")), -Annotation(Region(0x7C0,0x85F), Attr("section","\".eh_frame\"")), -Annotation(Region(0x10D90,0x1100F), Attr("segment","03 0x10D90 656")), -Annotation(Region(0x10D98,0x10D9F), Attr("section","\".fini_array\"")), -Annotation(Region(0x10DA0,0x10F8F), Attr("section","\".dynamic\"")), -Annotation(Region(0x10F90,0x10FFF), Attr("section","\".got\"")), -Annotation(Region(0x11000,0x1100F), Attr("section","\".data\"")), -Annotation(Region(0x10D90,0x10D97), Attr("section","\".init_array\"")), -Annotation(Region(0x640,0x76B), Attr("section","\".text\"")), -Annotation(Region(0x640,0x76B), Attr("code-region","()")), -Annotation(Region(0x76C,0x77F), Attr("code-region","()"))]), -Program(Tid(1_348, "%00000544"), Attrs([]), - Subs([Sub(Tid(1_298, "@__cxa_finalize"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x5E0"), -Attr("stub","()")]), "__cxa_finalize", Args([Arg(Tid(1_349, "%00000545"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("__cxa_finalize_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(796, "@__cxa_finalize"), - Attrs([Attr("address","0x5E0")]), Phis([]), -Defs([Def(Tid(1_044, "%00000414"), Attrs([Attr("address","0x5E0"), -Attr("insn","adrp x16, #65536")]), Var("R16",Imm(64)), Int(65536,64)), -Def(Tid(1_051, "%0000041b"), Attrs([Attr("address","0x5E4"), -Attr("insn","ldr x17, [x16, #0xfb0]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(4016,64)),LittleEndian(),64)), -Def(Tid(1_057, "%00000421"), Attrs([Attr("address","0x5E8"), -Attr("insn","add x16, x16, #0xfb0")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(4016,64)))]), Jmps([Call(Tid(1_062, "%00000426"), - Attrs([Attr("address","0x5EC"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), -Sub(Tid(1_299, "@__do_global_dtors_aux"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x700")]), - "__do_global_dtors_aux", Args([Arg(Tid(1_350, "%00000546"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("__do_global_dtors_aux_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(614, "@__do_global_dtors_aux"), - Attrs([Attr("address","0x700")]), Phis([]), Defs([Def(Tid(618, "%0000026a"), - Attrs([Attr("address","0x700"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("#3",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(18446744073709551584,64))), -Def(Tid(624, "%00000270"), Attrs([Attr("address","0x700"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("#3",Imm(64)),Var("R29",Imm(64)),LittleEndian(),64)), -Def(Tid(630, "%00000276"), Attrs([Attr("address","0x700"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("#3",Imm(64)),Int(8,64)),Var("R30",Imm(64)),LittleEndian(),64)), -Def(Tid(634, "%0000027a"), Attrs([Attr("address","0x700"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("R31",Imm(64)), -Var("#3",Imm(64))), Def(Tid(640, "%00000280"), - Attrs([Attr("address","0x704"), Attr("insn","mov x29, sp")]), - Var("R29",Imm(64)), Var("R31",Imm(64))), Def(Tid(648, "%00000288"), - Attrs([Attr("address","0x708"), Attr("insn","str x19, [sp, #0x10]")]), - Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(16,64)),Var("R19",Imm(64)),LittleEndian(),64)), -Def(Tid(653, "%0000028d"), Attrs([Attr("address","0x70C"), -Attr("insn","adrp x19, #69632")]), Var("R19",Imm(64)), Int(69632,64)), -Def(Tid(660, "%00000294"), Attrs([Attr("address","0x710"), -Attr("insn","ldrb w0, [x19, #0x10]")]), Var("R0",Imm(64)), -UNSIGNED(64,Load(Var("mem",Mem(64,8)),PLUS(Var("R19",Imm(64)),Int(16,64)),LittleEndian(),8)))]), -Jmps([Goto(Tid(667, "%0000029b"), Attrs([Attr("address","0x714"), -Attr("insn","cbnz w0, #0x28")]), - NEQ(Extract(31,0,Var("R0",Imm(64))),Int(0,32)), -Direct(Tid(665, "%00000299"))), Goto(Tid(1_338, "%0000053a"), Attrs([]), - Int(1,1), Direct(Tid(741, "%000002e5")))])), Blk(Tid(741, "%000002e5"), - Attrs([Attr("address","0x718")]), Phis([]), Defs([Def(Tid(744, "%000002e8"), - Attrs([Attr("address","0x718"), Attr("insn","adrp x0, #65536")]), - Var("R0",Imm(64)), Int(65536,64)), Def(Tid(751, "%000002ef"), - Attrs([Attr("address","0x71C"), Attr("insn","ldr x0, [x0, #0xfd8]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(4056,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(757, "%000002f5"), Attrs([Attr("address","0x720"), -Attr("insn","cbz x0, #0x10")]), EQ(Var("R0",Imm(64)),Int(0,64)), -Direct(Tid(755, "%000002f3"))), Goto(Tid(1_339, "%0000053b"), Attrs([]), - Int(1,1), Direct(Tid(780, "%0000030c")))])), Blk(Tid(780, "%0000030c"), - Attrs([Attr("address","0x724")]), Phis([]), Defs([Def(Tid(783, "%0000030f"), - Attrs([Attr("address","0x724"), Attr("insn","adrp x0, #69632")]), - Var("R0",Imm(64)), Int(69632,64)), Def(Tid(790, "%00000316"), - Attrs([Attr("address","0x728"), Attr("insn","ldr x0, [x0, #0x8]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(795, "%0000031b"), Attrs([Attr("address","0x72C"), -Attr("insn","bl #-0x14c")]), Var("R30",Imm(64)), Int(1840,64))]), -Jmps([Call(Tid(798, "%0000031e"), Attrs([Attr("address","0x72C"), -Attr("insn","bl #-0x14c")]), Int(1,1), -(Direct(Tid(1_298, "@__cxa_finalize")),Direct(Tid(755, "%000002f3"))))])), -Blk(Tid(755, "%000002f3"), Attrs([Attr("address","0x730")]), Phis([]), -Defs([Def(Tid(763, "%000002fb"), Attrs([Attr("address","0x730"), -Attr("insn","bl #-0xa0")]), Var("R30",Imm(64)), Int(1844,64))]), -Jmps([Call(Tid(765, "%000002fd"), Attrs([Attr("address","0x730"), -Attr("insn","bl #-0xa0")]), Int(1,1), -(Direct(Tid(1_312, "@deregister_tm_clones")),Direct(Tid(767, "%000002ff"))))])), -Blk(Tid(767, "%000002ff"), Attrs([Attr("address","0x734")]), Phis([]), -Defs([Def(Tid(770, "%00000302"), Attrs([Attr("address","0x734"), -Attr("insn","mov w0, #0x1")]), Var("R0",Imm(64)), Int(1,64)), -Def(Tid(778, "%0000030a"), Attrs([Attr("address","0x738"), -Attr("insn","strb w0, [x19, #0x10]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R19",Imm(64)),Int(16,64)),Extract(7,0,Var("R0",Imm(64))),LittleEndian(),8))]), -Jmps([Goto(Tid(1_340, "%0000053c"), Attrs([]), Int(1,1), -Direct(Tid(665, "%00000299")))])), Blk(Tid(665, "%00000299"), - Attrs([Attr("address","0x73C")]), Phis([]), Defs([Def(Tid(675, "%000002a3"), - Attrs([Attr("address","0x73C"), Attr("insn","ldr x19, [sp, #0x10]")]), - Var("R19",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(16,64)),LittleEndian(),64)), -Def(Tid(682, "%000002aa"), Attrs([Attr("address","0x740"), -Attr("insn","ldp x29, x30, [sp], #0x20")]), Var("R29",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(687, "%000002af"), Attrs([Attr("address","0x740"), -Attr("insn","ldp x29, x30, [sp], #0x20")]), Var("R30",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(691, "%000002b3"), Attrs([Attr("address","0x740"), -Attr("insn","ldp x29, x30, [sp], #0x20")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(32,64)))]), Jmps([Call(Tid(696, "%000002b8"), - Attrs([Attr("address","0x744"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), Sub(Tid(1_303, "@__libc_start_main"), - Attrs([Attr("c.proto","signed (*)(signed (*)(signed , char** , char** );* main, signed , char** , \nvoid* auxv)"), -Attr("address","0x5D0"), Attr("stub","()")]), "__libc_start_main", - Args([Arg(Tid(1_351, "%00000547"), - Attrs([Attr("c.layout","**[ : 64]"), -Attr("c.data","Top:u64 ptr ptr"), -Attr("c.type","signed (*)(signed , char** , char** );*")]), - Var("__libc_start_main_main",Imm(64)), Var("R0",Imm(64)), In()), -Arg(Tid(1_352, "%00000548"), Attrs([Attr("c.layout","[signed : 32]"), -Attr("c.data","Top:u32"), Attr("c.type","signed")]), - Var("__libc_start_main_arg2",Imm(32)), LOW(32,Var("R1",Imm(64))), In()), -Arg(Tid(1_353, "%00000549"), Attrs([Attr("c.layout","**[char : 8]"), -Attr("c.data","Top:u8 ptr ptr"), Attr("c.type","char**")]), - Var("__libc_start_main_arg3",Imm(64)), Var("R2",Imm(64)), Both()), -Arg(Tid(1_354, "%0000054a"), Attrs([Attr("c.layout","*[ : 8]"), -Attr("c.data","{} ptr"), Attr("c.type","void*")]), - Var("__libc_start_main_auxv",Imm(64)), Var("R3",Imm(64)), Both()), -Arg(Tid(1_355, "%0000054b"), Attrs([Attr("c.layout","[signed : 32]"), -Attr("c.data","Top:u32"), Attr("c.type","signed")]), - Var("__libc_start_main_result",Imm(32)), LOW(32,Var("R0",Imm(64))), -Out())]), Blks([Blk(Tid(447, "@__libc_start_main"), - Attrs([Attr("address","0x5D0")]), Phis([]), -Defs([Def(Tid(1_022, "%000003fe"), Attrs([Attr("address","0x5D0"), -Attr("insn","adrp x16, #65536")]), Var("R16",Imm(64)), Int(65536,64)), -Def(Tid(1_029, "%00000405"), Attrs([Attr("address","0x5D4"), -Attr("insn","ldr x17, [x16, #0xfa8]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(4008,64)),LittleEndian(),64)), -Def(Tid(1_035, "%0000040b"), Attrs([Attr("address","0x5D8"), -Attr("insn","add x16, x16, #0xfa8")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(4008,64)))]), Jmps([Call(Tid(1_040, "%00000410"), - Attrs([Attr("address","0x5DC"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), Sub(Tid(1_304, "@_fini"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x76C")]), - "_fini", Args([Arg(Tid(1_356, "%0000054c"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("_fini_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(31, "@_fini"), - Attrs([Attr("address","0x76C")]), Phis([]), Defs([Def(Tid(37, "%00000025"), - Attrs([Attr("address","0x770"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("#0",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(18446744073709551600,64))), -Def(Tid(43, "%0000002b"), Attrs([Attr("address","0x770"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("#0",Imm(64)),Var("R29",Imm(64)),LittleEndian(),64)), -Def(Tid(49, "%00000031"), Attrs([Attr("address","0x770"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("#0",Imm(64)),Int(8,64)),Var("R30",Imm(64)),LittleEndian(),64)), -Def(Tid(53, "%00000035"), Attrs([Attr("address","0x770"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("R31",Imm(64)), -Var("#0",Imm(64))), Def(Tid(59, "%0000003b"), Attrs([Attr("address","0x774"), -Attr("insn","mov x29, sp")]), Var("R29",Imm(64)), Var("R31",Imm(64))), -Def(Tid(66, "%00000042"), Attrs([Attr("address","0x778"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R29",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(71, "%00000047"), Attrs([Attr("address","0x778"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R30",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(75, "%0000004b"), Attrs([Attr("address","0x778"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(16,64)))]), Jmps([Call(Tid(80, "%00000050"), - Attrs([Attr("address","0x77C"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), Sub(Tid(1_305, "@_init"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x598")]), - "_init", Args([Arg(Tid(1_357, "%0000054d"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("_init_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(1_134, "@_init"), - Attrs([Attr("address","0x598")]), Phis([]), -Defs([Def(Tid(1_140, "%00000474"), Attrs([Attr("address","0x59C"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("#5",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(18446744073709551600,64))), -Def(Tid(1_146, "%0000047a"), Attrs([Attr("address","0x59C"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("#5",Imm(64)),Var("R29",Imm(64)),LittleEndian(),64)), -Def(Tid(1_152, "%00000480"), Attrs([Attr("address","0x59C"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("#5",Imm(64)),Int(8,64)),Var("R30",Imm(64)),LittleEndian(),64)), -Def(Tid(1_156, "%00000484"), Attrs([Attr("address","0x59C"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("R31",Imm(64)), -Var("#5",Imm(64))), Def(Tid(1_162, "%0000048a"), - Attrs([Attr("address","0x5A0"), Attr("insn","mov x29, sp")]), - Var("R29",Imm(64)), Var("R31",Imm(64))), Def(Tid(1_167, "%0000048f"), - Attrs([Attr("address","0x5A4"), Attr("insn","bl #0xd0")]), - Var("R30",Imm(64)), Int(1448,64))]), Jmps([Call(Tid(1_169, "%00000491"), - Attrs([Attr("address","0x5A4"), Attr("insn","bl #0xd0")]), Int(1,1), -(Direct(Tid(1_310, "@call_weak_fn")),Direct(Tid(1_171, "%00000493"))))])), -Blk(Tid(1_171, "%00000493"), Attrs([Attr("address","0x5A8")]), Phis([]), -Defs([Def(Tid(1_176, "%00000498"), Attrs([Attr("address","0x5A8"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R29",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(1_181, "%0000049d"), Attrs([Attr("address","0x5A8"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R30",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(1_185, "%000004a1"), Attrs([Attr("address","0x5A8"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(16,64)))]), Jmps([Call(Tid(1_190, "%000004a6"), - Attrs([Attr("address","0x5AC"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), Sub(Tid(1_306, "@_start"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x640"), -Attr("entry-point","()")]), "_start", Args([Arg(Tid(1_358, "%0000054e"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("_start_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(384, "@_start"), - Attrs([Attr("address","0x640")]), Phis([]), Defs([Def(Tid(389, "%00000185"), - Attrs([Attr("address","0x644"), Attr("insn","mov x29, #0x0")]), - Var("R29",Imm(64)), Int(0,64)), Def(Tid(394, "%0000018a"), - Attrs([Attr("address","0x648"), Attr("insn","mov x30, #0x0")]), - Var("R30",Imm(64)), Int(0,64)), Def(Tid(400, "%00000190"), - Attrs([Attr("address","0x64C"), Attr("insn","mov x5, x0")]), - Var("R5",Imm(64)), Var("R0",Imm(64))), Def(Tid(407, "%00000197"), - Attrs([Attr("address","0x650"), Attr("insn","ldr x1, [sp]")]), - Var("R1",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(413, "%0000019d"), Attrs([Attr("address","0x654"), -Attr("insn","add x2, sp, #0x8")]), Var("R2",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(8,64))), Def(Tid(419, "%000001a3"), - Attrs([Attr("address","0x658"), Attr("insn","mov x6, sp")]), - Var("R6",Imm(64)), Var("R31",Imm(64))), Def(Tid(424, "%000001a8"), - Attrs([Attr("address","0x65C"), Attr("insn","adrp x0, #65536")]), - Var("R0",Imm(64)), Int(65536,64)), Def(Tid(431, "%000001af"), - Attrs([Attr("address","0x660"), Attr("insn","ldr x0, [x0, #0xff0]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(4080,64)),LittleEndian(),64)), -Def(Tid(436, "%000001b4"), Attrs([Attr("address","0x664"), -Attr("insn","mov x3, #0x0")]), Var("R3",Imm(64)), Int(0,64)), -Def(Tid(441, "%000001b9"), Attrs([Attr("address","0x668"), -Attr("insn","mov x4, #0x0")]), Var("R4",Imm(64)), Int(0,64)), -Def(Tid(446, "%000001be"), Attrs([Attr("address","0x66C"), -Attr("insn","bl #-0x9c")]), Var("R30",Imm(64)), Int(1648,64))]), -Jmps([Call(Tid(449, "%000001c1"), Attrs([Attr("address","0x66C"), -Attr("insn","bl #-0x9c")]), Int(1,1), -(Direct(Tid(1_303, "@__libc_start_main")),Direct(Tid(451, "%000001c3"))))])), -Blk(Tid(451, "%000001c3"), Attrs([Attr("address","0x670")]), Phis([]), -Defs([Def(Tid(454, "%000001c6"), Attrs([Attr("address","0x670"), -Attr("insn","bl #-0x70")]), Var("R30",Imm(64)), Int(1652,64))]), -Jmps([Call(Tid(457, "%000001c9"), Attrs([Attr("address","0x670"), -Attr("insn","bl #-0x70")]), Int(1,1), -(Direct(Tid(1_309, "@abort")),Direct(Tid(1_341, "%0000053d"))))])), -Blk(Tid(1_341, "%0000053d"), Attrs([]), Phis([]), Defs([]), -Jmps([Call(Tid(1_342, "%0000053e"), Attrs([]), Int(1,1), -(Direct(Tid(1_310, "@call_weak_fn")),))]))])), Sub(Tid(1_309, "@abort"), - Attrs([Attr("noreturn","()"), Attr("c.proto","void (*)(void)"), -Attr("address","0x600"), Attr("stub","()")]), "abort", Args([]), -Blks([Blk(Tid(455, "@abort"), Attrs([Attr("address","0x600")]), Phis([]), -Defs([Def(Tid(1_088, "%00000440"), Attrs([Attr("address","0x600"), -Attr("insn","adrp x16, #65536")]), Var("R16",Imm(64)), Int(65536,64)), -Def(Tid(1_095, "%00000447"), Attrs([Attr("address","0x604"), -Attr("insn","ldr x17, [x16, #0xfc0]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(4032,64)),LittleEndian(),64)), -Def(Tid(1_101, "%0000044d"), Attrs([Attr("address","0x608"), -Attr("insn","add x16, x16, #0xfc0")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(4032,64)))]), Jmps([Call(Tid(1_106, "%00000452"), - Attrs([Attr("address","0x60C"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), Sub(Tid(1_310, "@call_weak_fn"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x674")]), - "call_weak_fn", Args([Arg(Tid(1_359, "%0000054f"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("call_weak_fn_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(459, "@call_weak_fn"), - Attrs([Attr("address","0x674")]), Phis([]), Defs([Def(Tid(462, "%000001ce"), - Attrs([Attr("address","0x674"), Attr("insn","adrp x0, #65536")]), - Var("R0",Imm(64)), Int(65536,64)), Def(Tid(469, "%000001d5"), - Attrs([Attr("address","0x678"), Attr("insn","ldr x0, [x0, #0xfe0]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(4064,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(475, "%000001db"), Attrs([Attr("address","0x67C"), -Attr("insn","cbz x0, #0x8")]), EQ(Var("R0",Imm(64)),Int(0,64)), -Direct(Tid(473, "%000001d9"))), Goto(Tid(1_343, "%0000053f"), Attrs([]), - Int(1,1), Direct(Tid(860, "%0000035c")))])), Blk(Tid(473, "%000001d9"), - Attrs([Attr("address","0x684")]), Phis([]), Defs([]), -Jmps([Call(Tid(481, "%000001e1"), Attrs([Attr("address","0x684"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))])), -Blk(Tid(860, "%0000035c"), Attrs([Attr("address","0x680")]), Phis([]), -Defs([]), Jmps([Goto(Tid(863, "%0000035f"), Attrs([Attr("address","0x680"), -Attr("insn","b #-0x90")]), Int(1,1), Direct(Tid(861, "@__gmon_start__")))])), -Blk(Tid(861, "@__gmon_start__"), Attrs([Attr("address","0x5F0")]), Phis([]), -Defs([Def(Tid(1_066, "%0000042a"), Attrs([Attr("address","0x5F0"), -Attr("insn","adrp x16, #65536")]), Var("R16",Imm(64)), Int(65536,64)), -Def(Tid(1_073, "%00000431"), Attrs([Attr("address","0x5F4"), -Attr("insn","ldr x17, [x16, #0xfb8]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(4024,64)),LittleEndian(),64)), -Def(Tid(1_079, "%00000437"), Attrs([Attr("address","0x5F8"), -Attr("insn","add x16, x16, #0xfb8")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(4024,64)))]), Jmps([Call(Tid(1_084, "%0000043c"), - Attrs([Attr("address","0x5FC"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), -Sub(Tid(1_312, "@deregister_tm_clones"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x690")]), - "deregister_tm_clones", Args([Arg(Tid(1_360, "%00000550"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("deregister_tm_clones_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(487, "@deregister_tm_clones"), - Attrs([Attr("address","0x690")]), Phis([]), Defs([Def(Tid(490, "%000001ea"), - Attrs([Attr("address","0x690"), Attr("insn","adrp x0, #69632")]), - Var("R0",Imm(64)), Int(69632,64)), Def(Tid(496, "%000001f0"), - Attrs([Attr("address","0x694"), Attr("insn","add x0, x0, #0x10")]), - Var("R0",Imm(64)), PLUS(Var("R0",Imm(64)),Int(16,64))), -Def(Tid(501, "%000001f5"), Attrs([Attr("address","0x698"), -Attr("insn","adrp x1, #69632")]), Var("R1",Imm(64)), Int(69632,64)), -Def(Tid(507, "%000001fb"), Attrs([Attr("address","0x69C"), -Attr("insn","add x1, x1, #0x10")]), Var("R1",Imm(64)), -PLUS(Var("R1",Imm(64)),Int(16,64))), Def(Tid(513, "%00000201"), - Attrs([Attr("address","0x6A0"), Attr("insn","cmp x1, x0")]), - Var("#1",Imm(64)), NOT(Var("R0",Imm(64)))), Def(Tid(518, "%00000206"), - Attrs([Attr("address","0x6A0"), Attr("insn","cmp x1, x0")]), - Var("#2",Imm(64)), PLUS(Var("R1",Imm(64)),NOT(Var("R0",Imm(64))))), -Def(Tid(524, "%0000020c"), Attrs([Attr("address","0x6A0"), -Attr("insn","cmp x1, x0")]), Var("VF",Imm(1)), -NEQ(SIGNED(65,PLUS(Var("#2",Imm(64)),Int(1,64))),PLUS(PLUS(SIGNED(65,Var("R1",Imm(64))),SIGNED(65,Var("#1",Imm(64)))),Int(1,65)))), -Def(Tid(530, "%00000212"), Attrs([Attr("address","0x6A0"), -Attr("insn","cmp x1, x0")]), Var("CF",Imm(1)), -NEQ(UNSIGNED(65,PLUS(Var("#2",Imm(64)),Int(1,64))),PLUS(PLUS(UNSIGNED(65,Var("R1",Imm(64))),UNSIGNED(65,Var("#1",Imm(64)))),Int(1,65)))), -Def(Tid(534, "%00000216"), Attrs([Attr("address","0x6A0"), -Attr("insn","cmp x1, x0")]), Var("ZF",Imm(1)), -EQ(PLUS(Var("#2",Imm(64)),Int(1,64)),Int(0,64))), Def(Tid(538, "%0000021a"), - Attrs([Attr("address","0x6A0"), Attr("insn","cmp x1, x0")]), - Var("NF",Imm(1)), Extract(63,63,PLUS(Var("#2",Imm(64)),Int(1,64))))]), -Jmps([Goto(Tid(544, "%00000220"), Attrs([Attr("address","0x6A4"), -Attr("insn","b.eq #0x18")]), EQ(Var("ZF",Imm(1)),Int(1,1)), -Direct(Tid(542, "%0000021e"))), Goto(Tid(1_344, "%00000540"), Attrs([]), - Int(1,1), Direct(Tid(830, "%0000033e")))])), Blk(Tid(830, "%0000033e"), - Attrs([Attr("address","0x6A8")]), Phis([]), Defs([Def(Tid(833, "%00000341"), - Attrs([Attr("address","0x6A8"), Attr("insn","adrp x1, #65536")]), - Var("R1",Imm(64)), Int(65536,64)), Def(Tid(840, "%00000348"), - Attrs([Attr("address","0x6AC"), Attr("insn","ldr x1, [x1, #0xfd0]")]), - Var("R1",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R1",Imm(64)),Int(4048,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(845, "%0000034d"), Attrs([Attr("address","0x6B0"), -Attr("insn","cbz x1, #0xc")]), EQ(Var("R1",Imm(64)),Int(0,64)), -Direct(Tid(542, "%0000021e"))), Goto(Tid(1_345, "%00000541"), Attrs([]), - Int(1,1), Direct(Tid(849, "%00000351")))])), Blk(Tid(542, "%0000021e"), - Attrs([Attr("address","0x6BC")]), Phis([]), Defs([]), -Jmps([Call(Tid(550, "%00000226"), Attrs([Attr("address","0x6BC"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))])), -Blk(Tid(849, "%00000351"), Attrs([Attr("address","0x6B4")]), Phis([]), -Defs([Def(Tid(853, "%00000355"), Attrs([Attr("address","0x6B4"), -Attr("insn","mov x16, x1")]), Var("R16",Imm(64)), Var("R1",Imm(64)))]), -Jmps([Call(Tid(858, "%0000035a"), Attrs([Attr("address","0x6B8"), -Attr("insn","br x16")]), Int(1,1), (Indirect(Var("R16",Imm(64))),))]))])), -Sub(Tid(1_315, "@frame_dummy"), Attrs([Attr("c.proto","signed (*)(void)"), -Attr("address","0x750")]), "frame_dummy", Args([Arg(Tid(1_361, "%00000551"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("frame_dummy_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(702, "@frame_dummy"), - Attrs([Attr("address","0x750")]), Phis([]), Defs([]), -Jmps([Call(Tid(704, "%000002c0"), Attrs([Attr("address","0x750"), -Attr("insn","b #-0x90")]), Int(1,1), -(Direct(Tid(1_317, "@register_tm_clones")),))]))])), Sub(Tid(1_316, "@main"), - Attrs([Attr("c.proto","signed (*)(signed argc, const char** argv)"), -Attr("address","0x754")]), "main", Args([Arg(Tid(1_362, "%00000552"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("main_argc",Imm(32)), -LOW(32,Var("R0",Imm(64))), In()), Arg(Tid(1_363, "%00000553"), - Attrs([Attr("c.layout","**[char : 8]"), Attr("c.data","Top:u8 ptr ptr"), -Attr("c.type"," const char**")]), Var("main_argv",Imm(64)), -Var("R1",Imm(64)), Both()), Arg(Tid(1_364, "%00000554"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("main_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(706, "@main"), - Attrs([Attr("address","0x754")]), Phis([]), Defs([Def(Tid(709, "%000002c5"), - Attrs([Attr("address","0x754"), Attr("insn","adrp x0, #65536")]), - Var("R0",Imm(64)), Int(65536,64)), Def(Tid(716, "%000002cc"), - Attrs([Attr("address","0x758"), Attr("insn","ldr x0, [x0, #0xfe8]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(4072,64)),LittleEndian(),64)), -Def(Tid(721, "%000002d1"), Attrs([Attr("address","0x75C"), -Attr("insn","mov w1, #0x1")]), Var("R1",Imm(64)), Int(1,64)), -Def(Tid(729, "%000002d9"), Attrs([Attr("address","0x760"), -Attr("insn","str w1, [x0]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("R0",Imm(64)),Extract(31,0,Var("R1",Imm(64))),LittleEndian(),32)), -Def(Tid(734, "%000002de"), Attrs([Attr("address","0x764"), -Attr("insn","mov w0, #0x0")]), Var("R0",Imm(64)), Int(0,64))]), -Jmps([Call(Tid(739, "%000002e3"), Attrs([Attr("address","0x768"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))]))])), -Sub(Tid(1_317, "@register_tm_clones"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x6C0")]), - "register_tm_clones", Args([Arg(Tid(1_365, "%00000555"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("register_tm_clones_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(552, "@register_tm_clones"), Attrs([Attr("address","0x6C0")]), - Phis([]), Defs([Def(Tid(555, "%0000022b"), Attrs([Attr("address","0x6C0"), -Attr("insn","adrp x0, #69632")]), Var("R0",Imm(64)), Int(69632,64)), -Def(Tid(561, "%00000231"), Attrs([Attr("address","0x6C4"), -Attr("insn","add x0, x0, #0x10")]), Var("R0",Imm(64)), -PLUS(Var("R0",Imm(64)),Int(16,64))), Def(Tid(566, "%00000236"), - Attrs([Attr("address","0x6C8"), Attr("insn","adrp x1, #69632")]), - Var("R1",Imm(64)), Int(69632,64)), Def(Tid(572, "%0000023c"), - Attrs([Attr("address","0x6CC"), Attr("insn","add x1, x1, #0x10")]), - Var("R1",Imm(64)), PLUS(Var("R1",Imm(64)),Int(16,64))), -Def(Tid(579, "%00000243"), Attrs([Attr("address","0x6D0"), -Attr("insn","sub x1, x1, x0")]), Var("R1",Imm(64)), -PLUS(PLUS(Var("R1",Imm(64)),NOT(Var("R0",Imm(64)))),Int(1,64))), -Def(Tid(585, "%00000249"), Attrs([Attr("address","0x6D4"), -Attr("insn","lsr x2, x1, #63")]), Var("R2",Imm(64)), -Concat(Int(0,63),Extract(63,63,Var("R1",Imm(64))))), -Def(Tid(592, "%00000250"), Attrs([Attr("address","0x6D8"), -Attr("insn","add x1, x2, x1, asr #3")]), Var("R1",Imm(64)), -PLUS(Var("R2",Imm(64)),ARSHIFT(Var("R1",Imm(64)),Int(3,3)))), -Def(Tid(598, "%00000256"), Attrs([Attr("address","0x6DC"), -Attr("insn","asr x1, x1, #1")]), Var("R1",Imm(64)), -SIGNED(64,Extract(63,1,Var("R1",Imm(64)))))]), -Jmps([Goto(Tid(604, "%0000025c"), Attrs([Attr("address","0x6E0"), -Attr("insn","cbz x1, #0x18")]), EQ(Var("R1",Imm(64)),Int(0,64)), -Direct(Tid(602, "%0000025a"))), Goto(Tid(1_346, "%00000542"), Attrs([]), - Int(1,1), Direct(Tid(800, "%00000320")))])), Blk(Tid(800, "%00000320"), - Attrs([Attr("address","0x6E4")]), Phis([]), Defs([Def(Tid(803, "%00000323"), - Attrs([Attr("address","0x6E4"), Attr("insn","adrp x2, #65536")]), - Var("R2",Imm(64)), Int(65536,64)), Def(Tid(810, "%0000032a"), - Attrs([Attr("address","0x6E8"), Attr("insn","ldr x2, [x2, #0xff8]")]), - Var("R2",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R2",Imm(64)),Int(4088,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(815, "%0000032f"), Attrs([Attr("address","0x6EC"), -Attr("insn","cbz x2, #0xc")]), EQ(Var("R2",Imm(64)),Int(0,64)), -Direct(Tid(602, "%0000025a"))), Goto(Tid(1_347, "%00000543"), Attrs([]), - Int(1,1), Direct(Tid(819, "%00000333")))])), Blk(Tid(602, "%0000025a"), - Attrs([Attr("address","0x6F8")]), Phis([]), Defs([]), -Jmps([Call(Tid(610, "%00000262"), Attrs([Attr("address","0x6F8"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))])), -Blk(Tid(819, "%00000333"), Attrs([Attr("address","0x6F0")]), Phis([]), -Defs([Def(Tid(823, "%00000337"), Attrs([Attr("address","0x6F0"), -Attr("insn","mov x16, x2")]), Var("R16",Imm(64)), Var("R2",Imm(64)))]), -Jmps([Call(Tid(828, "%0000033c"), Attrs([Attr("address","0x6F4"), -Attr("insn","br x16")]), Int(1,1), -(Indirect(Var("R16",Imm(64))),))]))]))]))) \ No newline at end of file diff --git a/src/test/correct/no_interference_update_y/gcc_pic/no_interference_update_y.bir b/src/test/correct/no_interference_update_y/gcc_pic/no_interference_update_y.bir deleted file mode 100644 index 72f2d2730..000000000 --- a/src/test/correct/no_interference_update_y/gcc_pic/no_interference_update_y.bir +++ /dev/null @@ -1,228 +0,0 @@ -00000544: program -00000512: sub __cxa_finalize(__cxa_finalize_result) -00000545: __cxa_finalize_result :: out u32 = low:32[R0] - -0000031c: -00000414: R16 := 0x10000 -0000041b: R17 := mem[R16 + 0xFB0, el]:u64 -00000421: R16 := R16 + 0xFB0 -00000426: call R17 with noreturn - -00000513: sub __do_global_dtors_aux(__do_global_dtors_aux_result) -00000546: __do_global_dtors_aux_result :: out u32 = low:32[R0] - -00000266: -0000026a: #3 := R31 - 0x20 -00000270: mem := mem with [#3, el]:u64 <- R29 -00000276: mem := mem with [#3 + 8, el]:u64 <- R30 -0000027a: R31 := #3 -00000280: R29 := R31 -00000288: mem := mem with [R31 + 0x10, el]:u64 <- R19 -0000028d: R19 := 0x11000 -00000294: R0 := pad:64[mem[R19 + 0x10]] -0000029b: when 31:0[R0] <> 0 goto %00000299 -0000053a: goto %000002e5 - -000002e5: -000002e8: R0 := 0x10000 -000002ef: R0 := mem[R0 + 0xFD8, el]:u64 -000002f5: when R0 = 0 goto %000002f3 -0000053b: goto %0000030c - -0000030c: -0000030f: R0 := 0x11000 -00000316: R0 := mem[R0 + 8, el]:u64 -0000031b: R30 := 0x730 -0000031e: call @__cxa_finalize with return %000002f3 - -000002f3: -000002fb: R30 := 0x734 -000002fd: call @deregister_tm_clones with return %000002ff - -000002ff: -00000302: R0 := 1 -0000030a: mem := mem with [R19 + 0x10] <- 7:0[R0] -0000053c: goto %00000299 - -00000299: -000002a3: R19 := mem[R31 + 0x10, el]:u64 -000002aa: R29 := mem[R31, el]:u64 -000002af: R30 := mem[R31 + 8, el]:u64 -000002b3: R31 := R31 + 0x20 -000002b8: call R30 with noreturn - -00000517: sub __libc_start_main(__libc_start_main_main, __libc_start_main_arg2, __libc_start_main_arg3, __libc_start_main_auxv, __libc_start_main_result) -00000547: __libc_start_main_main :: in u64 = R0 -00000548: __libc_start_main_arg2 :: in u32 = low:32[R1] -00000549: __libc_start_main_arg3 :: in out u64 = R2 -0000054a: __libc_start_main_auxv :: in out u64 = R3 -0000054b: __libc_start_main_result :: out u32 = low:32[R0] - -000001bf: -000003fe: R16 := 0x10000 -00000405: R17 := mem[R16 + 0xFA8, el]:u64 -0000040b: R16 := R16 + 0xFA8 -00000410: call R17 with noreturn - -00000518: sub _fini(_fini_result) -0000054c: _fini_result :: out u32 = low:32[R0] - -0000001f: -00000025: #0 := R31 - 0x10 -0000002b: mem := mem with [#0, el]:u64 <- R29 -00000031: mem := mem with [#0 + 8, el]:u64 <- R30 -00000035: R31 := #0 -0000003b: R29 := R31 -00000042: R29 := mem[R31, el]:u64 -00000047: R30 := mem[R31 + 8, el]:u64 -0000004b: R31 := R31 + 0x10 -00000050: call R30 with noreturn - -00000519: sub _init(_init_result) -0000054d: _init_result :: out u32 = low:32[R0] - -0000046e: -00000474: #5 := R31 - 0x10 -0000047a: mem := mem with [#5, el]:u64 <- R29 -00000480: mem := mem with [#5 + 8, el]:u64 <- R30 -00000484: R31 := #5 -0000048a: R29 := R31 -0000048f: R30 := 0x5A8 -00000491: call @call_weak_fn with return %00000493 - -00000493: -00000498: R29 := mem[R31, el]:u64 -0000049d: R30 := mem[R31 + 8, el]:u64 -000004a1: R31 := R31 + 0x10 -000004a6: call R30 with noreturn - -0000051a: sub _start(_start_result) -0000054e: _start_result :: out u32 = low:32[R0] - -00000180: -00000185: R29 := 0 -0000018a: R30 := 0 -00000190: R5 := R0 -00000197: R1 := mem[R31, el]:u64 -0000019d: R2 := R31 + 8 -000001a3: R6 := R31 -000001a8: R0 := 0x10000 -000001af: R0 := mem[R0 + 0xFF0, el]:u64 -000001b4: R3 := 0 -000001b9: R4 := 0 -000001be: R30 := 0x670 -000001c1: call @__libc_start_main with return %000001c3 - -000001c3: -000001c6: R30 := 0x674 -000001c9: call @abort with return %0000053d - -0000053d: -0000053e: call @call_weak_fn with noreturn - -0000051d: sub abort() - - -000001c7: -00000440: R16 := 0x10000 -00000447: R17 := mem[R16 + 0xFC0, el]:u64 -0000044d: R16 := R16 + 0xFC0 -00000452: call R17 with noreturn - -0000051e: sub call_weak_fn(call_weak_fn_result) -0000054f: call_weak_fn_result :: out u32 = low:32[R0] - -000001cb: -000001ce: R0 := 0x10000 -000001d5: R0 := mem[R0 + 0xFE0, el]:u64 -000001db: when R0 = 0 goto %000001d9 -0000053f: goto %0000035c - -000001d9: -000001e1: call R30 with noreturn - -0000035c: -0000035f: goto @__gmon_start__ - -0000035d: -0000042a: R16 := 0x10000 -00000431: R17 := mem[R16 + 0xFB8, el]:u64 -00000437: R16 := R16 + 0xFB8 -0000043c: call R17 with noreturn - -00000520: sub deregister_tm_clones(deregister_tm_clones_result) -00000550: deregister_tm_clones_result :: out u32 = low:32[R0] - -000001e7: -000001ea: R0 := 0x11000 -000001f0: R0 := R0 + 0x10 -000001f5: R1 := 0x11000 -000001fb: R1 := R1 + 0x10 -00000201: #1 := ~R0 -00000206: #2 := R1 + ~R0 -0000020c: VF := extend:65[#2 + 1] <> extend:65[R1] + extend:65[#1] + 1 -00000212: CF := pad:65[#2 + 1] <> pad:65[R1] + pad:65[#1] + 1 -00000216: ZF := #2 + 1 = 0 -0000021a: NF := 63:63[#2 + 1] -00000220: when ZF goto %0000021e -00000540: goto %0000033e - -0000033e: -00000341: R1 := 0x10000 -00000348: R1 := mem[R1 + 0xFD0, el]:u64 -0000034d: when R1 = 0 goto %0000021e -00000541: goto %00000351 - -0000021e: -00000226: call R30 with noreturn - -00000351: -00000355: R16 := R1 -0000035a: call R16 with noreturn - -00000523: sub frame_dummy(frame_dummy_result) -00000551: frame_dummy_result :: out u32 = low:32[R0] - -000002be: -000002c0: call @register_tm_clones with noreturn - -00000524: sub main(main_argc, main_argv, main_result) -00000552: main_argc :: in u32 = low:32[R0] -00000553: main_argv :: in out u64 = R1 -00000554: main_result :: out u32 = low:32[R0] - -000002c2: -000002c5: R0 := 0x10000 -000002cc: R0 := mem[R0 + 0xFE8, el]:u64 -000002d1: R1 := 1 -000002d9: mem := mem with [R0, el]:u32 <- 31:0[R1] -000002de: R0 := 0 -000002e3: call R30 with noreturn - -00000525: sub register_tm_clones(register_tm_clones_result) -00000555: register_tm_clones_result :: out u32 = low:32[R0] - -00000228: -0000022b: R0 := 0x11000 -00000231: R0 := R0 + 0x10 -00000236: R1 := 0x11000 -0000023c: R1 := R1 + 0x10 -00000243: R1 := R1 + ~R0 + 1 -00000249: R2 := 0.63:63[R1] -00000250: R1 := R2 + (R1 ~>> 3) -00000256: R1 := extend:64[63:1[R1]] -0000025c: when R1 = 0 goto %0000025a -00000542: goto %00000320 - -00000320: -00000323: R2 := 0x10000 -0000032a: R2 := mem[R2 + 0xFF8, el]:u64 -0000032f: when R2 = 0 goto %0000025a -00000543: goto %00000333 - -0000025a: -00000262: call R30 with noreturn - -00000333: -00000337: R16 := R2 -0000033c: call R16 with noreturn diff --git a/src/test/correct/no_interference_update_y/gcc_pic/no_interference_update_y.expected b/src/test/correct/no_interference_update_y/gcc_pic/no_interference_update_y.expected index 090cf865a..c11fe58ec 100644 --- a/src/test/correct/no_interference_update_y/gcc_pic/no_interference_update_y.expected +++ b/src/test/correct/no_interference_update_y/gcc_pic/no_interference_update_y.expected @@ -69,7 +69,7 @@ implementation {:extern} guarantee_reflexive() assert (memory_load32_le(mem, $x_addr) == memory_load32_le(mem, $x_addr)); } -procedure main_1876(); +procedure main(); modifies Gamma_R0, Gamma_R1, Gamma_mem, R0, R1, mem; free requires (memory_load64_le(mem, 69632bv64) == 0bv64); free requires (memory_load64_le(mem, 69640bv64) == 69640bv64); @@ -87,28 +87,28 @@ procedure main_1876(); free ensures (memory_load64_le(mem, 69616bv64) == 1876bv64); free ensures (memory_load64_le(mem, 69640bv64) == 69640bv64); -implementation main_1876() +implementation main() { - var Gamma_load18: bool; - var load18: bv64; + var $load$18: bv64; + var Gamma_$load$18: bool; var x_old: bv32; lmain: assume {:captureState "lmain"} true; R0, Gamma_R0 := 65536bv64, true; call rely(); - load18, Gamma_load18 := memory_load64_le(mem, bvadd64(R0, 4072bv64)), (gamma_load64(Gamma_mem, bvadd64(R0, 4072bv64)) || L(mem, bvadd64(R0, 4072bv64))); - R0, Gamma_R0 := load18, Gamma_load18; + $load$18, Gamma_$load$18 := memory_load64_le(mem, bvadd64(R0, 4072bv64)), (gamma_load64(Gamma_mem, bvadd64(R0, 4072bv64)) || L(mem, bvadd64(R0, 4072bv64))); + R0, Gamma_R0 := $load$18, Gamma_$load$18; R1, Gamma_R1 := 1bv64, true; call rely(); - x_old := memory_load32_le(mem, $x_addr); assert (L(mem, R0) ==> Gamma_R1); + x_old := memory_load32_le(mem, $x_addr); mem, Gamma_mem := memory_store32_le(mem, R0, R1[32:0]), gamma_store32(Gamma_mem, R0, Gamma_R1); assert (memory_load32_le(mem, $x_addr) == x_old); assume {:captureState "%000002d9"} true; R0, Gamma_R0 := 0bv64, true; - goto main_1876_basil_return; - main_1876_basil_return: - assume {:captureState "main_1876_basil_return"} true; + goto main_basil_return; + main_basil_return: + assume {:captureState "main_basil_return"} true; return; } diff --git a/src/test/correct/no_interference_update_y/gcc_pic/no_interference_update_y.gts b/src/test/correct/no_interference_update_y/gcc_pic/no_interference_update_y.gts deleted file mode 100644 index 69a42e5f0..000000000 Binary files a/src/test/correct/no_interference_update_y/gcc_pic/no_interference_update_y.gts and /dev/null differ diff --git a/src/test/correct/no_interference_update_y/gcc_pic/no_interference_update_y.md5sum b/src/test/correct/no_interference_update_y/gcc_pic/no_interference_update_y.md5sum new file mode 100644 index 000000000..bd6068ae2 --- /dev/null +++ b/src/test/correct/no_interference_update_y/gcc_pic/no_interference_update_y.md5sum @@ -0,0 +1,5 @@ +07e0d5170908b20bf9f5b4ab71f791c4 correct/no_interference_update_y/gcc_pic/a.out +c3baebb23b6b9d27e5c409073c2ea0ab correct/no_interference_update_y/gcc_pic/no_interference_update_y.adt +aae71f2d853687e9d1342005db95e75e correct/no_interference_update_y/gcc_pic/no_interference_update_y.bir +6ecf28a648486e1fab847148b1cfec87 correct/no_interference_update_y/gcc_pic/no_interference_update_y.relf +ca0156cc026484efed2f93686560eaa3 correct/no_interference_update_y/gcc_pic/no_interference_update_y.gts diff --git a/src/test/correct/no_interference_update_y/gcc_pic/no_interference_update_y.relf b/src/test/correct/no_interference_update_y/gcc_pic/no_interference_update_y.relf deleted file mode 100644 index 077f8a808..000000000 --- a/src/test/correct/no_interference_update_y/gcc_pic/no_interference_update_y.relf +++ /dev/null @@ -1,123 +0,0 @@ - -Relocation section '.rela.dyn' at offset 0x460 contains 9 entries: - Offset Info Type Symbol's Value Symbol's Name + Addend -0000000000010d90 0000000000000403 R_AARCH64_RELATIVE 750 -0000000000010d98 0000000000000403 R_AARCH64_RELATIVE 700 -0000000000010fe8 0000000000000403 R_AARCH64_RELATIVE 11018 -0000000000010ff0 0000000000000403 R_AARCH64_RELATIVE 754 -0000000000011008 0000000000000403 R_AARCH64_RELATIVE 11008 -0000000000010fd0 0000000400000401 R_AARCH64_GLOB_DAT 0000000000000000 _ITM_deregisterTMCloneTable + 0 -0000000000010fd8 0000000500000401 R_AARCH64_GLOB_DAT 0000000000000000 __cxa_finalize@GLIBC_2.17 + 0 -0000000000010fe0 0000000600000401 R_AARCH64_GLOB_DAT 0000000000000000 __gmon_start__ + 0 -0000000000010ff8 0000000800000401 R_AARCH64_GLOB_DAT 0000000000000000 _ITM_registerTMCloneTable + 0 - -Relocation section '.rela.plt' at offset 0x538 contains 4 entries: - Offset Info Type Symbol's Value Symbol's Name + Addend -0000000000010fa8 0000000300000402 R_AARCH64_JUMP_SLOT 0000000000000000 __libc_start_main@GLIBC_2.34 + 0 -0000000000010fb0 0000000500000402 R_AARCH64_JUMP_SLOT 0000000000000000 __cxa_finalize@GLIBC_2.17 + 0 -0000000000010fb8 0000000600000402 R_AARCH64_JUMP_SLOT 0000000000000000 __gmon_start__ + 0 -0000000000010fc0 0000000700000402 R_AARCH64_JUMP_SLOT 0000000000000000 abort@GLIBC_2.17 + 0 - -Symbol table '.dynsym' contains 9 entries: - Num: Value Size Type Bind Vis Ndx Name - 0: 0000000000000000 0 NOTYPE LOCAL DEFAULT UND - 1: 0000000000000598 0 SECTION LOCAL DEFAULT 11 .init - 2: 0000000000011000 0 SECTION LOCAL DEFAULT 22 .data - 3: 0000000000000000 0 FUNC GLOBAL DEFAULT UND __libc_start_main@GLIBC_2.34 (2) - 4: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_deregisterTMCloneTable - 5: 0000000000000000 0 FUNC WEAK DEFAULT UND __cxa_finalize@GLIBC_2.17 (3) - 6: 0000000000000000 0 NOTYPE WEAK DEFAULT UND __gmon_start__ - 7: 0000000000000000 0 FUNC GLOBAL DEFAULT UND abort@GLIBC_2.17 (3) - 8: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_registerTMCloneTable - -Symbol table '.symtab' contains 89 entries: - Num: Value Size Type Bind Vis Ndx Name - 0: 0000000000000000 0 NOTYPE LOCAL DEFAULT UND - 1: 0000000000000238 0 SECTION LOCAL DEFAULT 1 .interp - 2: 0000000000000254 0 SECTION LOCAL DEFAULT 2 .note.gnu.build-id - 3: 0000000000000278 0 SECTION LOCAL DEFAULT 3 .note.ABI-tag - 4: 0000000000000298 0 SECTION LOCAL DEFAULT 4 .gnu.hash - 5: 00000000000002b8 0 SECTION LOCAL DEFAULT 5 .dynsym - 6: 0000000000000390 0 SECTION LOCAL DEFAULT 6 .dynstr - 7: 000000000000041e 0 SECTION LOCAL DEFAULT 7 .gnu.version - 8: 0000000000000430 0 SECTION LOCAL DEFAULT 8 .gnu.version_r - 9: 0000000000000460 0 SECTION LOCAL DEFAULT 9 .rela.dyn - 10: 0000000000000538 0 SECTION LOCAL DEFAULT 10 .rela.plt - 11: 0000000000000598 0 SECTION LOCAL DEFAULT 11 .init - 12: 00000000000005b0 0 SECTION LOCAL DEFAULT 12 .plt - 13: 0000000000000640 0 SECTION LOCAL DEFAULT 13 .text - 14: 000000000000076c 0 SECTION LOCAL DEFAULT 14 .fini - 15: 0000000000000780 0 SECTION LOCAL DEFAULT 15 .rodata - 16: 0000000000000784 0 SECTION LOCAL DEFAULT 16 .eh_frame_hdr - 17: 00000000000007c0 0 SECTION LOCAL DEFAULT 17 .eh_frame - 18: 0000000000010d90 0 SECTION LOCAL DEFAULT 18 .init_array - 19: 0000000000010d98 0 SECTION LOCAL DEFAULT 19 .fini_array - 20: 0000000000010da0 0 SECTION LOCAL DEFAULT 20 .dynamic - 21: 0000000000010f90 0 SECTION LOCAL DEFAULT 21 .got - 22: 0000000000011000 0 SECTION LOCAL DEFAULT 22 .data - 23: 0000000000011010 0 SECTION LOCAL DEFAULT 23 .bss - 24: 0000000000000000 0 SECTION LOCAL DEFAULT 24 .comment - 25: 0000000000000000 0 FILE LOCAL DEFAULT ABS Scrt1.o - 26: 0000000000000278 0 NOTYPE LOCAL DEFAULT 3 $d - 27: 0000000000000278 32 OBJECT LOCAL DEFAULT 3 __abi_tag - 28: 0000000000000640 0 NOTYPE LOCAL DEFAULT 13 $x - 29: 00000000000007d4 0 NOTYPE LOCAL DEFAULT 17 $d - 30: 0000000000000780 0 NOTYPE LOCAL DEFAULT 15 $d - 31: 0000000000000000 0 FILE LOCAL DEFAULT ABS crti.o - 32: 0000000000000674 0 NOTYPE LOCAL DEFAULT 13 $x - 33: 0000000000000674 20 FUNC LOCAL DEFAULT 13 call_weak_fn - 34: 0000000000000598 0 NOTYPE LOCAL DEFAULT 11 $x - 35: 000000000000076c 0 NOTYPE LOCAL DEFAULT 14 $x - 36: 0000000000000000 0 FILE LOCAL DEFAULT ABS crtn.o - 37: 00000000000005a8 0 NOTYPE LOCAL DEFAULT 11 $x - 38: 0000000000000778 0 NOTYPE LOCAL DEFAULT 14 $x - 39: 0000000000000000 0 FILE LOCAL DEFAULT ABS crtstuff.c - 40: 0000000000000690 0 NOTYPE LOCAL DEFAULT 13 $x - 41: 0000000000000690 0 FUNC LOCAL DEFAULT 13 deregister_tm_clones - 42: 00000000000006c0 0 FUNC LOCAL DEFAULT 13 register_tm_clones - 43: 0000000000011008 0 NOTYPE LOCAL DEFAULT 22 $d - 44: 0000000000000700 0 FUNC LOCAL DEFAULT 13 __do_global_dtors_aux - 45: 0000000000011010 1 OBJECT LOCAL DEFAULT 23 completed.0 - 46: 0000000000010d98 0 NOTYPE LOCAL DEFAULT 19 $d - 47: 0000000000010d98 0 OBJECT LOCAL DEFAULT 19 __do_global_dtors_aux_fini_array_entry - 48: 0000000000000750 0 FUNC LOCAL DEFAULT 13 frame_dummy - 49: 0000000000010d90 0 NOTYPE LOCAL DEFAULT 18 $d - 50: 0000000000010d90 0 OBJECT LOCAL DEFAULT 18 __frame_dummy_init_array_entry - 51: 00000000000007e8 0 NOTYPE LOCAL DEFAULT 17 $d - 52: 0000000000011010 0 NOTYPE LOCAL DEFAULT 23 $d - 53: 0000000000000000 0 FILE LOCAL DEFAULT ABS no_interference_update_y.c - 54: 0000000000011014 0 NOTYPE LOCAL DEFAULT 23 $d - 55: 0000000000000754 0 NOTYPE LOCAL DEFAULT 13 $x - 56: 0000000000000848 0 NOTYPE LOCAL DEFAULT 17 $d - 57: 0000000000000000 0 FILE LOCAL DEFAULT ABS crtstuff.c - 58: 000000000000085c 0 NOTYPE LOCAL DEFAULT 17 $d - 59: 000000000000085c 0 OBJECT LOCAL DEFAULT 17 __FRAME_END__ - 60: 0000000000000000 0 FILE LOCAL DEFAULT ABS - 61: 0000000000010da0 0 OBJECT LOCAL DEFAULT ABS _DYNAMIC - 62: 0000000000000784 0 NOTYPE LOCAL DEFAULT 16 __GNU_EH_FRAME_HDR - 63: 0000000000010fc8 0 OBJECT LOCAL DEFAULT ABS _GLOBAL_OFFSET_TABLE_ - 64: 00000000000005b0 0 NOTYPE LOCAL DEFAULT 12 $x - 65: 0000000000000000 0 FUNC GLOBAL DEFAULT UND __libc_start_main@GLIBC_2.34 - 66: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_deregisterTMCloneTable - 67: 0000000000011000 0 NOTYPE WEAK DEFAULT 22 data_start - 68: 0000000000011010 0 NOTYPE GLOBAL DEFAULT 23 __bss_start__ - 69: 0000000000000000 0 FUNC WEAK DEFAULT UND __cxa_finalize@GLIBC_2.17 - 70: 0000000000011020 0 NOTYPE GLOBAL DEFAULT 23 _bss_end__ - 71: 0000000000011010 0 NOTYPE GLOBAL DEFAULT 22 _edata - 72: 0000000000011014 4 OBJECT GLOBAL DEFAULT 23 x - 73: 000000000000076c 0 FUNC GLOBAL HIDDEN 14 _fini - 74: 0000000000011020 0 NOTYPE GLOBAL DEFAULT 23 __bss_end__ - 75: 0000000000011000 0 NOTYPE GLOBAL DEFAULT 22 __data_start - 76: 0000000000000000 0 NOTYPE WEAK DEFAULT UND __gmon_start__ - 77: 0000000000011008 0 OBJECT GLOBAL HIDDEN 22 __dso_handle - 78: 0000000000000000 0 FUNC GLOBAL DEFAULT UND abort@GLIBC_2.17 - 79: 0000000000000780 4 OBJECT GLOBAL DEFAULT 15 _IO_stdin_used - 80: 0000000000011020 0 NOTYPE GLOBAL DEFAULT 23 _end - 81: 0000000000000640 52 FUNC GLOBAL DEFAULT 13 _start - 82: 0000000000011020 0 NOTYPE GLOBAL DEFAULT 23 __end__ - 83: 0000000000011018 4 OBJECT GLOBAL DEFAULT 23 y - 84: 0000000000011010 0 NOTYPE GLOBAL DEFAULT 23 __bss_start - 85: 0000000000000754 24 FUNC GLOBAL DEFAULT 13 main - 86: 0000000000011010 0 OBJECT GLOBAL HIDDEN 22 __TMC_END__ - 87: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_registerTMCloneTable - 88: 0000000000000598 0 FUNC GLOBAL HIDDEN 11 _init diff --git a/src/test/correct/no_interference_update_y/gcc_pic/no_interference_update_y_gtirb.expected b/src/test/correct/no_interference_update_y/gcc_pic/no_interference_update_y_gtirb.expected index 0d4ebe91a..bfcf9a19a 100644 --- a/src/test/correct/no_interference_update_y/gcc_pic/no_interference_update_y_gtirb.expected +++ b/src/test/correct/no_interference_update_y/gcc_pic/no_interference_update_y_gtirb.expected @@ -69,7 +69,7 @@ implementation {:extern} guarantee_reflexive() assert (memory_load32_le(mem, $x_addr) == memory_load32_le(mem, $x_addr)); } -procedure main_1876(); +procedure main(); modifies Gamma_R0, Gamma_R1, Gamma_mem, R0, R1, mem; free requires (memory_load64_le(mem, 69632bv64) == 0bv64); free requires (memory_load64_le(mem, 69640bv64) == 69640bv64); @@ -87,28 +87,28 @@ procedure main_1876(); free ensures (memory_load64_le(mem, 69616bv64) == 1876bv64); free ensures (memory_load64_le(mem, 69640bv64) == 69640bv64); -implementation main_1876() +implementation main() { - var Gamma_load4: bool; - var load4: bv64; + var $load4: bv64; + var Gamma_$load4: bool; var x_old: bv32; - main_1876__0__5FgihppzTHuH09MtdD5bbg: - assume {:captureState "main_1876__0__5FgihppzTHuH09MtdD5bbg"} true; + $main$__0__$5FgihppzTHuH09MtdD5bbg: + assume {:captureState "$main$__0__$5FgihppzTHuH09MtdD5bbg"} true; R0, Gamma_R0 := 65536bv64, true; call rely(); - load4, Gamma_load4 := memory_load64_le(mem, bvadd64(R0, 4072bv64)), (gamma_load64(Gamma_mem, bvadd64(R0, 4072bv64)) || L(mem, bvadd64(R0, 4072bv64))); - R0, Gamma_R0 := load4, Gamma_load4; + $load4, Gamma_$load4 := memory_load64_le(mem, bvadd64(R0, 4072bv64)), (gamma_load64(Gamma_mem, bvadd64(R0, 4072bv64)) || L(mem, bvadd64(R0, 4072bv64))); + R0, Gamma_R0 := $load4, Gamma_$load4; R1, Gamma_R1 := 1bv64, true; call rely(); - x_old := memory_load32_le(mem, $x_addr); assert (L(mem, R0) ==> Gamma_R1); + x_old := memory_load32_le(mem, $x_addr); mem, Gamma_mem := memory_store32_le(mem, R0, R1[32:0]), gamma_store32(Gamma_mem, R0, Gamma_R1); assert (memory_load32_le(mem, $x_addr) == x_old); - assume {:captureState "1888_0"} true; + assume {:captureState "1888$0"} true; R0, Gamma_R0 := 0bv64, true; - goto main_1876_basil_return; - main_1876_basil_return: - assume {:captureState "main_1876_basil_return"} true; + goto main_basil_return; + main_basil_return: + assume {:captureState "main_basil_return"} true; return; } diff --git a/src/test/correct/secret_write/clang/secret_write.adt b/src/test/correct/secret_write/clang/secret_write.adt deleted file mode 100644 index b858762d0..000000000 --- a/src/test/correct/secret_write/clang/secret_write.adt +++ /dev/null @@ -1,521 +0,0 @@ -Project(Attrs([Attr("filename","\"clang/secret_write.out\""), -Attr("image-specification","(declare abi (name str))\n(declare arch (name str))\n(declare base-address (addr int))\n(declare bias (off int))\n(declare bits (size int))\n(declare code-region (addr int) (size int) (off int))\n(declare code-start (addr int))\n(declare entry-point (addr int))\n(declare external-reference (addr int) (name str))\n(declare format (name str))\n(declare is-executable (flag bool))\n(declare is-little-endian (flag bool))\n(declare llvm:base-address (addr int))\n(declare llvm:code-entry (name str) (off int) (size int))\n(declare llvm:coff-import-library (name str))\n(declare llvm:coff-virtual-section-header (name str) (addr int) (size int))\n(declare llvm:elf-program-header (name str) (off int) (size int))\n(declare llvm:elf-program-header-flags (name str) (ld bool) (r bool) \n (w bool) (x bool))\n(declare llvm:elf-virtual-program-header (name str) (addr int) (size int))\n(declare llvm:entry-point (addr int))\n(declare llvm:macho-symbol (name str) (value int))\n(declare llvm:name-reference (at int) (name str))\n(declare llvm:relocation (at int) (addr int))\n(declare llvm:section-entry (name str) (addr int) (size int) (off int))\n(declare llvm:section-flags (name str) (r bool) (w bool) (x bool))\n(declare llvm:segment-command (name str) (off int) (size int))\n(declare llvm:segment-command-flags (name str) (r bool) (w bool) (x bool))\n(declare llvm:symbol-entry (name str) (addr int) (size int) (off int)\n (value int))\n(declare llvm:virtual-segment-command (name str) (addr int) (size int))\n(declare mapped (addr int) (size int) (off int))\n(declare named-region (addr int) (size int) (name str))\n(declare named-symbol (addr int) (name str))\n(declare require (name str))\n(declare section (addr int) (size int))\n(declare segment (addr int) (size int) (r bool) (w bool) (x bool))\n(declare subarch (name str))\n(declare symbol-chunk (addr int) (size int) (root int))\n(declare symbol-value (addr int) (value int))\n(declare system (name str))\n(declare vendor (name str))\n\n(abi unknown)\n(arch aarch64)\n(base-address 0)\n(bias 0)\n(bits 64)\n(code-region 1872 20 1872)\n(code-region 1536 336 1536)\n(code-region 1440 96 1440)\n(code-region 1408 24 1408)\n(code-start 1588)\n(code-start 1536)\n(code-start 1812)\n(entry-point 1536)\n(external-reference 69568 _ITM_deregisterTMCloneTable)\n(external-reference 69576 __cxa_finalize)\n(external-reference 69584 __gmon_start__)\n(external-reference 69600 _ITM_registerTMCloneTable)\n(external-reference 69632 __libc_start_main)\n(external-reference 69640 __cxa_finalize)\n(external-reference 69648 __gmon_start__)\n(external-reference 69656 abort)\n(format elf)\n(is-executable true)\n(is-little-endian true)\n(llvm:base-address 0)\n(llvm:code-entry abort 0 0)\n(llvm:code-entry __cxa_finalize 0 0)\n(llvm:code-entry __libc_start_main 0 0)\n(llvm:code-entry _init 1408 0)\n(llvm:code-entry main 1812 60)\n(llvm:code-entry _start 1536 52)\n(llvm:code-entry abort@GLIBC_2.17 0 0)\n(llvm:code-entry _fini 1872 0)\n(llvm:code-entry __cxa_finalize@GLIBC_2.17 0 0)\n(llvm:code-entry __libc_start_main@GLIBC_2.34 0 0)\n(llvm:code-entry frame_dummy 1808 0)\n(llvm:code-entry __do_global_dtors_aux 1728 0)\n(llvm:code-entry register_tm_clones 1664 0)\n(llvm:code-entry deregister_tm_clones 1616 0)\n(llvm:code-entry call_weak_fn 1588 20)\n(llvm:code-entry .fini 1872 20)\n(llvm:code-entry .text 1536 336)\n(llvm:code-entry .plt 1440 96)\n(llvm:code-entry .init 1408 24)\n(llvm:elf-program-header 08 3528 568)\n(llvm:elf-program-header 07 0 0)\n(llvm:elf-program-header 06 1896 60)\n(llvm:elf-program-header 05 596 68)\n(llvm:elf-program-header 04 3544 480)\n(llvm:elf-program-header 03 3528 616)\n(llvm:elf-program-header 02 0 2140)\n(llvm:elf-program-header 01 568 27)\n(llvm:elf-program-header 00 64 504)\n(llvm:elf-program-header-flags 08 false true false false)\n(llvm:elf-program-header-flags 07 false true true false)\n(llvm:elf-program-header-flags 06 false true false false)\n(llvm:elf-program-header-flags 05 false true false false)\n(llvm:elf-program-header-flags 04 false true true false)\n(llvm:elf-program-header-flags 03 true true true false)\n(llvm:elf-program-header-flags 02 true true false true)\n(llvm:elf-program-header-flags 01 false true false false)\n(llvm:elf-program-header-flags 00 false true false false)\n(llvm:elf-virtual-program-header 08 69064 568)\n(llvm:elf-virtual-program-header 07 0 0)\n(llvm:elf-virtual-program-header 06 1896 60)\n(llvm:elf-virtual-program-header 05 596 68)\n(llvm:elf-virtual-program-header 04 69080 480)\n(llvm:elf-virtual-program-header 03 69064 632)\n(llvm:elf-virtual-program-header 02 0 2140)\n(llvm:elf-virtual-program-header 01 568 27)\n(llvm:elf-virtual-program-header 00 64 504)\n(llvm:entry-point 1536)\n(llvm:name-reference 69656 abort)\n(llvm:name-reference 69648 __gmon_start__)\n(llvm:name-reference 69640 __cxa_finalize)\n(llvm:name-reference 69632 __libc_start_main)\n(llvm:name-reference 69600 _ITM_registerTMCloneTable)\n(llvm:name-reference 69584 __gmon_start__)\n(llvm:name-reference 69576 __cxa_finalize)\n(llvm:name-reference 69568 _ITM_deregisterTMCloneTable)\n(llvm:section-entry .shstrtab 0 259 7001)\n(llvm:section-entry .strtab 0 577 6424)\n(llvm:section-entry .symtab 0 2208 4216)\n(llvm:section-entry .comment 0 71 4144)\n(llvm:section-entry .bss 69680 16 4144)\n(llvm:section-entry .data 69664 16 4128)\n(llvm:section-entry .got.plt 69608 56 4072)\n(llvm:section-entry .got 69560 48 4024)\n(llvm:section-entry .dynamic 69080 480 3544)\n(llvm:section-entry .fini_array 69072 8 3536)\n(llvm:section-entry .init_array 69064 8 3528)\n(llvm:section-entry .eh_frame 1960 180 1960)\n(llvm:section-entry .eh_frame_hdr 1896 60 1896)\n(llvm:section-entry .rodata 1892 4 1892)\n(llvm:section-entry .fini 1872 20 1872)\n(llvm:section-entry .text 1536 336 1536)\n(llvm:section-entry .plt 1440 96 1440)\n(llvm:section-entry .init 1408 24 1408)\n(llvm:section-entry .rela.plt 1312 96 1312)\n(llvm:section-entry .rela.dyn 1120 192 1120)\n(llvm:section-entry .gnu.version_r 1072 48 1072)\n(llvm:section-entry .gnu.version 1054 18 1054)\n(llvm:section-entry .dynstr 912 141 912)\n(llvm:section-entry .dynsym 696 216 696)\n(llvm:section-entry .gnu.hash 664 28 664)\n(llvm:section-entry .note.ABI-tag 632 32 632)\n(llvm:section-entry .note.gnu.build-id 596 36 596)\n(llvm:section-entry .interp 568 27 568)\n(llvm:section-flags .shstrtab true false false)\n(llvm:section-flags .strtab true false false)\n(llvm:section-flags .symtab true false false)\n(llvm:section-flags .comment true false false)\n(llvm:section-flags .bss true true false)\n(llvm:section-flags .data true true false)\n(llvm:section-flags .got.plt true true false)\n(llvm:section-flags .got true true false)\n(llvm:section-flags .dynamic true true false)\n(llvm:section-flags .fini_array true true false)\n(llvm:section-flags .init_array true true false)\n(llvm:section-flags .eh_frame true false false)\n(llvm:section-flags .eh_frame_hdr true false false)\n(llvm:section-flags .rodata true false false)\n(llvm:section-flags .fini true false true)\n(llvm:section-flags .text true false true)\n(llvm:section-flags .plt true false true)\n(llvm:section-flags .init true false true)\n(llvm:section-flags .rela.plt true false false)\n(llvm:section-flags .rela.dyn true false false)\n(llvm:section-flags .gnu.version_r true false false)\n(llvm:section-flags .gnu.version true false false)\n(llvm:section-flags .dynstr true false false)\n(llvm:section-flags .dynsym true false false)\n(llvm:section-flags .gnu.hash true false false)\n(llvm:section-flags .note.ABI-tag true false false)\n(llvm:section-flags .note.gnu.build-id true false false)\n(llvm:section-flags .interp true false false)\n(llvm:symbol-entry abort 0 0 0 0)\n(llvm:symbol-entry __cxa_finalize 0 0 0 0)\n(llvm:symbol-entry __libc_start_main 0 0 0 0)\n(llvm:symbol-entry _init 1408 0 1408 1408)\n(llvm:symbol-entry main 1812 60 1812 1812)\n(llvm:symbol-entry _start 1536 52 1536 1536)\n(llvm:symbol-entry abort@GLIBC_2.17 0 0 0 0)\n(llvm:symbol-entry _fini 1872 0 1872 1872)\n(llvm:symbol-entry __cxa_finalize@GLIBC_2.17 0 0 0 0)\n(llvm:symbol-entry __libc_start_main@GLIBC_2.34 0 0 0 0)\n(llvm:symbol-entry frame_dummy 1808 0 1808 1808)\n(llvm:symbol-entry __do_global_dtors_aux 1728 0 1728 1728)\n(llvm:symbol-entry register_tm_clones 1664 0 1664 1664)\n(llvm:symbol-entry deregister_tm_clones 1616 0 1616 1616)\n(llvm:symbol-entry call_weak_fn 1588 20 1588 1588)\n(mapped 0 2140 0)\n(mapped 69064 616 3528)\n(named-region 0 2140 02)\n(named-region 69064 632 03)\n(named-region 568 27 .interp)\n(named-region 596 36 .note.gnu.build-id)\n(named-region 632 32 .note.ABI-tag)\n(named-region 664 28 .gnu.hash)\n(named-region 696 216 .dynsym)\n(named-region 912 141 .dynstr)\n(named-region 1054 18 .gnu.version)\n(named-region 1072 48 .gnu.version_r)\n(named-region 1120 192 .rela.dyn)\n(named-region 1312 96 .rela.plt)\n(named-region 1408 24 .init)\n(named-region 1440 96 .plt)\n(named-region 1536 336 .text)\n(named-region 1872 20 .fini)\n(named-region 1892 4 .rodata)\n(named-region 1896 60 .eh_frame_hdr)\n(named-region 1960 180 .eh_frame)\n(named-region 69064 8 .init_array)\n(named-region 69072 8 .fini_array)\n(named-region 69080 480 .dynamic)\n(named-region 69560 48 .got)\n(named-region 69608 56 .got.plt)\n(named-region 69664 16 .data)\n(named-region 69680 16 .bss)\n(named-region 0 71 .comment)\n(named-region 0 2208 .symtab)\n(named-region 0 577 .strtab)\n(named-region 0 259 .shstrtab)\n(named-symbol 1588 call_weak_fn)\n(named-symbol 1616 deregister_tm_clones)\n(named-symbol 1664 register_tm_clones)\n(named-symbol 1728 __do_global_dtors_aux)\n(named-symbol 1808 frame_dummy)\n(named-symbol 0 __libc_start_main@GLIBC_2.34)\n(named-symbol 0 __cxa_finalize@GLIBC_2.17)\n(named-symbol 1872 _fini)\n(named-symbol 0 abort@GLIBC_2.17)\n(named-symbol 1536 _start)\n(named-symbol 1812 main)\n(named-symbol 1408 _init)\n(named-symbol 0 __libc_start_main)\n(named-symbol 0 __cxa_finalize)\n(named-symbol 0 abort)\n(require libc.so.6)\n(section 568 27)\n(section 596 36)\n(section 632 32)\n(section 664 28)\n(section 696 216)\n(section 912 141)\n(section 1054 18)\n(section 1072 48)\n(section 1120 192)\n(section 1312 96)\n(section 1408 24)\n(section 1440 96)\n(section 1536 336)\n(section 1872 20)\n(section 1892 4)\n(section 1896 60)\n(section 1960 180)\n(section 69064 8)\n(section 69072 8)\n(section 69080 480)\n(section 69560 48)\n(section 69608 56)\n(section 69664 16)\n(section 69680 16)\n(section 0 71)\n(section 0 2208)\n(section 0 577)\n(section 0 259)\n(segment 0 2140 true false true)\n(segment 69064 632 true true false)\n(subarch v8)\n(symbol-chunk 1588 20 1588)\n(symbol-chunk 1536 52 1536)\n(symbol-chunk 1812 60 1812)\n(symbol-value 1588 1588)\n(symbol-value 1616 1616)\n(symbol-value 1664 1664)\n(symbol-value 1728 1728)\n(symbol-value 1808 1808)\n(symbol-value 1872 1872)\n(symbol-value 1536 1536)\n(symbol-value 1812 1812)\n(symbol-value 1408 1408)\n(symbol-value 0 0)\n(system \"\")\n(vendor \"\")\n"), -Attr("abi-name","\"aarch64-linux-gnu-elf\"")]), -Sections([Section(".shstrtab", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x00\x06\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x60\x1c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x38\x00\x09\x00\x40\x00\x1d\x00\x1c\x00\x06\x00\x00\x00\x04\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x04\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5c\x08\x00\x00\x00\x00\x00\x00\x5c\x08\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x01\x00\x00\x00\x06\x00\x00\x00\xc8\x0d\x00\x00\x00\x00\x00\x00\xc8\x0d\x01\x00\x00\x00\x00\x00\xc8\x0d\x01"), -Section(".strtab", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x00\x06\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x60\x1c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x38\x00\x09\x00\x40\x00\x1d\x00\x1c\x00\x06\x00\x00\x00\x04\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x04\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5c\x08\x00\x00\x00\x00\x00\x00\x5c\x08\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x01\x00\x00\x00\x06\x00\x00\x00\xc8\x0d\x00\x00\x00\x00\x00\x00\xc8\x0d\x01\x00\x00\x00\x00\x00\xc8\x0d\x01\x00\x00\x00\x00\x00\x68\x02\x00\x00\x00\x00\x00\x00\x78\x02\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x02\x00\x00\x00\x06\x00\x00\x00\xd8\x0d\x00\x00\x00\x00\x00\x00\xd8\x0d\x01\x00\x00\x00\x00\x00\xd8\x0d\x01\x00\x00\x00\x00\x00\xe0\x01\x00\x00\x00\x00\x00\x00\xe0\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x04\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x50\xe5\x74\x64\x04\x00\x00\x00\x68\x07\x00\x00\x00\x00\x00\x00\x68\x07\x00\x00\x00\x00\x00\x00\x68\x07\x00\x00\x00\x00\x00\x00\x3c\x00\x00\x00\x00\x00\x00\x00\x3c\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x51\xe5\x74\x64\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x52\xe5\x74\x64\x04\x00\x00\x00\xc8\x0d\x00\x00\x00\x00\x00\x00\xc8\x0d\x01\x00\x00\x00\x00\x00\xc8\x0d\x01\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x2f\x6c\x69\x62\x2f\x6c\x64\x2d\x6c"), -Section(".comment", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x00\x06\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x60\x1c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x38\x00\x09\x00\x40\x00\x1d\x00\x1c\x00\x06\x00\x00\x00\x04\x00\x00"), -Section(".interp", 0x238, "\x2f\x6c\x69\x62\x2f\x6c\x64\x2d\x6c\x69\x6e\x75\x78\x2d\x61\x61\x72\x63\x68\x36\x34\x2e\x73\x6f\x2e\x31\x00"), -Section(".note.gnu.build-id", 0x254, "\x04\x00\x00\x00\x14\x00\x00\x00\x03\x00\x00\x00\x47\x4e\x55\x00\x66\x13\x13\x7b\x60\x76\xe3\x1a\x0f\x62\x1c\x4e\x88\x3e\x0c\xa5\x8d\x2c\xe2\x5d"), -Section(".note.ABI-tag", 0x278, "\x04\x00\x00\x00\x10\x00\x00\x00\x01\x00\x00\x00\x47\x4e\x55\x00\x00\x00\x00\x00\x03\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00"), -Section(".gnu.hash", 0x298, "\x01\x00\x00\x00\x01\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".dynsym", 0x2B8, "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x0b\x00\x80\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x17\x00\x20\x10\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x48\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x22\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x22\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x73\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".dynstr", 0x390, "\x00\x5f\x5f\x63\x78\x61\x5f\x66\x69\x6e\x61\x6c\x69\x7a\x65\x00\x5f\x5f\x6c\x69\x62\x63\x5f\x73\x74\x61\x72\x74\x5f\x6d\x61\x69\x6e\x00\x61\x62\x6f\x72\x74\x00\x6c\x69\x62\x63\x2e\x73\x6f\x2e\x36\x00\x47\x4c\x49\x42\x43\x5f\x32\x2e\x31\x37\x00\x47\x4c\x49\x42\x43\x5f\x32\x2e\x33\x34\x00\x5f\x49\x54\x4d\x5f\x64\x65\x72\x65\x67\x69\x73\x74\x65\x72\x54\x4d\x43\x6c\x6f\x6e\x65\x54\x61\x62\x6c\x65\x00\x5f\x5f\x67\x6d\x6f\x6e\x5f\x73\x74\x61\x72\x74\x5f\x5f\x00\x5f\x49\x54\x4d\x5f\x72\x65\x67\x69\x73\x74\x65\x72\x54\x4d\x43\x6c\x6f\x6e\x65\x54\x61\x62\x6c\x65\x00"), -Section(".gnu.version", 0x41E, "\x00\x00\x00\x00\x00\x00\x02\x00\x01\x00\x03\x00\x01\x00\x03\x00\x01\x00"), -Section(".gnu.version_r", 0x430, "\x01\x00\x02\x00\x28\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x97\x91\x96\x06\x00\x00\x03\x00\x32\x00\x00\x00\x10\x00\x00\x00\xb4\x91\x96\x06\x00\x00\x02\x00\x3d\x00\x00\x00\x00\x00\x00\x00"), -Section(".rela.dyn", 0x460, "\xc8\x0d\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x10\x07\x00\x00\x00\x00\x00\x00\xd0\x0d\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\xc0\x06\x00\x00\x00\x00\x00\x00\xd8\x0f\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x14\x07\x00\x00\x00\x00\x00\x00\x28\x10\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x28\x10\x01\x00\x00\x00\x00\x00\xc0\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xc8\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xd0\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe0\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".rela.plt", 0x520, "\x00\x10\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x08\x10\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x10\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x18\x10\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".init", 0x580, "\x1f\x20\x03\xd5\xfd\x7b\xbf\xa9\xfd\x03\x00\x91\x2a\x00\x00\x94\xfd\x7b\xc1\xa8\xc0\x03\x5f\xd6"), -Section(".plt", 0x5A0, "\xf0\x7b\xbf\xa9\x90\x00\x00\x90\x11\xfe\x47\xf9\x10\xe2\x3f\x91\x20\x02\x1f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x90\x00\x00\xb0\x11\x02\x40\xf9\x10\x02\x00\x91\x20\x02\x1f\xd6\x90\x00\x00\xb0\x11\x06\x40\xf9\x10\x22\x00\x91\x20\x02\x1f\xd6\x90\x00\x00\xb0\x11\x0a\x40\xf9\x10\x42\x00\x91\x20\x02\x1f\xd6\x90\x00\x00\xb0\x11\x0e\x40\xf9\x10\x62\x00\x91\x20\x02\x1f\xd6"), -Section(".text", 0x600, "\x1f\x20\x03\xd5\x1d\x00\x80\xd2\x1e\x00\x80\xd2\xe5\x03\x00\xaa\xe1\x03\x40\xf9\xe2\x23\x00\x91\xe6\x03\x00\x91\x80\x00\x00\x90\x00\xec\x47\xf9\x03\x00\x80\xd2\x04\x00\x80\xd2\xe5\xff\xff\x97\xf0\xff\xff\x97\x80\x00\x00\x90\x00\xe8\x47\xf9\x40\x00\x00\xb4\xe8\xff\xff\x17\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x80\x00\x00\xb0\x00\xc0\x00\x91\x81\x00\x00\xb0\x21\xc0\x00\x91\x3f\x00\x00\xeb\xc0\x00\x00\x54\x81\x00\x00\x90\x21\xe0\x47\xf9\x61\x00\x00\xb4\xf0\x03\x01\xaa\x00\x02\x1f\xd6\xc0\x03\x5f\xd6\x80\x00\x00\xb0\x00\xc0\x00\x91\x81\x00\x00\xb0\x21\xc0\x00\x91\x21\x00\x00\xcb\x22\xfc\x7f\xd3\x41\x0c\x81\x8b\x21\xfc\x41\x93\xc1\x00\x00\xb4\x82\x00\x00\x90\x42\xf0\x47\xf9\x62\x00\x00\xb4\xf0\x03\x02\xaa\x00\x02\x1f\xd6\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\xfd\x7b\xbe\xa9\xfd\x03\x00\x91\xf3\x0b\x00\xf9\x93\x00\x00\xb0\x60\xc2\x40\x39\x40\x01\x00\x35\x80\x00\x00\x90\x00\xe4\x47\xf9\x80\x00\x00\xb4\x80\x00\x00\xb0\x00\x14\x40\xf9\xb9\xff\xff\x97\xd8\xff\xff\x97\x20\x00\x80\x52\x60\xc2\x00\x39\xf3\x0b\x40\xf9\xfd\x7b\xc2\xa8\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\xdc\xff\xff\x17\x89\x00\x00\xb0\xe0\x03\x1f\x2a\x3f\x35\x00\xb9\x28\x35\x40\xb9\x08\x05\x00\x11\x28\x35\x00\xb9\x88\x00\x00\xb0\x0a\x39\x40\xb9\x88\x00\x00\xb0\x0a\x3d\x00\xb9\x1f\x3d\x00\xb9\x28\x35\x40\xb9\x08\x05\x00\x11\x28\x35\x00\xb9\xc0\x03\x5f\xd6"), -Section(".fini", 0x750, "\x1f\x20\x03\xd5\xfd\x7b\xbf\xa9\xfd\x03\x00\x91\xfd\x7b\xc1\xa8\xc0\x03\x5f\xd6"), -Section(".rodata", 0x764, "\x01\x00\x02\x00"), -Section(".eh_frame_hdr", 0x768, "\x01\x1b\x03\x3b\x3c\x00\x00\x00\x06\x00\x00\x00\x98\xfe\xff\xff\x54\x00\x00\x00\xe8\xfe\xff\xff\x68\x00\x00\x00\x18\xff\xff\xff\x7c\x00\x00\x00\x58\xff\xff\xff\x90\x00\x00\x00\xa8\xff\xff\xff\xb4\x00\x00\x00\xac\xff\xff\xff\xdc\x00\x00\x00"), -Section(".eh_frame", 0x7A8, "\x10\x00\x00\x00\x00\x00\x00\x00\x01\x7a\x52\x00\x04\x78\x1e\x01\x1b\x0c\x1f\x00\x10\x00\x00\x00\x18\x00\x00\x00\x3c\xfe\xff\xff\x34\x00\x00\x00\x00\x41\x07\x1e\x10\x00\x00\x00\x2c\x00\x00\x00\x78\xfe\xff\xff\x30\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x40\x00\x00\x00\x94\xfe\xff\xff\x3c\x00\x00\x00\x00\x00\x00\x00\x20\x00\x00\x00\x54\x00\x00\x00\xc0\xfe\xff\xff\x48\x00\x00\x00\x00\x41\x0e\x20\x9d\x04\x9e\x03\x42\x93\x02\x4e\xde\xdd\xd3\x0e\x00\x00\x00\x00\x10\x00\x00\x00\x78\x00\x00\x00\xec\xfe\xff\xff\x04\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x01\x7a\x52\x00\x01\x7c\x1e\x01\x1b\x0c\x1f\x00\x10\x00\x00\x00\x18\x00\x00\x00\xc8\xfe\xff\xff\x3c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".fini_array", 0x10DD0, "\xc0\x06\x00\x00\x00\x00\x00\x00"), -Section(".dynamic", 0x10DD8, "\x01\x00\x00\x00\x00\x00\x00\x00\x28\x00\x00\x00\x00\x00\x00\x00\x0c\x00\x00\x00\x00\x00\x00\x00\x80\x05\x00\x00\x00\x00\x00\x00\x0d\x00\x00\x00\x00\x00\x00\x00\x50\x07\x00\x00\x00\x00\x00\x00\x19\x00\x00\x00\x00\x00\x00\x00\xc8\x0d\x01\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x1a\x00\x00\x00\x00\x00\x00\x00\xd0\x0d\x01\x00\x00\x00\x00\x00\x1c\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\xf5\xfe\xff\x6f\x00\x00\x00\x00\x98\x02\x00\x00\x00\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x90\x03\x00\x00\x00\x00\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\xb8\x02\x00\x00\x00\x00\x00\x00\x0a\x00\x00\x00\x00\x00\x00\x00\x8d\x00\x00\x00\x00\x00\x00\x00\x0b\x00\x00\x00\x00\x00\x00\x00\x18\x00\x00\x00\x00\x00\x00\x00\x15\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\xe8\x0f\x01\x00\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x60\x00\x00\x00\x00\x00\x00\x00\x14\x00\x00\x00\x00\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x17\x00\x00\x00\x00\x00\x00\x00\x20\x05\x00\x00\x00\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x60\x04\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\xc0\x00\x00\x00\x00\x00\x00\x00\x09\x00\x00\x00\x00\x00\x00\x00\x18\x00\x00\x00\x00\x00\x00\x00\xfb\xff\xff\x6f\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\xfe\xff\xff\x6f\x00\x00\x00\x00\x30\x04\x00\x00\x00\x00\x00\x00\xff\xff\xff\x6f\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\xf0\xff\xff\x6f\x00\x00\x00\x00\x1e\x04\x00\x00\x00\x00\x00\x00\xf9\xff\xff\x6f\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".init_array", 0x10DC8, "\x10\x07\x00\x00\x00\x00\x00\x00"), -Section(".got", 0x10FB8, "\xd8\x0d\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x14\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".got.plt", 0x10FE8, "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xa0\x05\x00\x00\x00\x00\x00\x00\xa0\x05\x00\x00\x00\x00\x00\x00\xa0\x05\x00\x00\x00\x00\x00\x00\xa0\x05\x00\x00\x00\x00\x00\x00"), -Section(".data", 0x11020, "\x00\x00\x00\x00\x00\x00\x00\x00\x28\x10\x01\x00\x00\x00\x00\x00")]), -Memmap([Annotation(Region(0x0,0x85B), Attr("segment","02 0 2140")), -Annotation(Region(0x600,0x633), Attr("symbol","\"_start\"")), -Annotation(Region(0x0,0x102), Attr("section","\".shstrtab\"")), -Annotation(Region(0x0,0x240), Attr("section","\".strtab\"")), -Annotation(Region(0x0,0x46), Attr("section","\".comment\"")), -Annotation(Region(0x238,0x252), Attr("section","\".interp\"")), -Annotation(Region(0x254,0x277), Attr("section","\".note.gnu.build-id\"")), -Annotation(Region(0x278,0x297), Attr("section","\".note.ABI-tag\"")), -Annotation(Region(0x298,0x2B3), Attr("section","\".gnu.hash\"")), -Annotation(Region(0x2B8,0x38F), Attr("section","\".dynsym\"")), -Annotation(Region(0x390,0x41C), Attr("section","\".dynstr\"")), -Annotation(Region(0x41E,0x42F), Attr("section","\".gnu.version\"")), -Annotation(Region(0x430,0x45F), Attr("section","\".gnu.version_r\"")), -Annotation(Region(0x460,0x51F), Attr("section","\".rela.dyn\"")), -Annotation(Region(0x520,0x57F), Attr("section","\".rela.plt\"")), -Annotation(Region(0x580,0x597), Attr("section","\".init\"")), -Annotation(Region(0x5A0,0x5FF), Attr("section","\".plt\"")), -Annotation(Region(0x580,0x597), Attr("code-region","()")), -Annotation(Region(0x5A0,0x5FF), Attr("code-region","()")), -Annotation(Region(0x600,0x633), Attr("symbol-info","_start 0x600 52")), -Annotation(Region(0x634,0x647), Attr("symbol","\"call_weak_fn\"")), -Annotation(Region(0x634,0x647), Attr("symbol-info","call_weak_fn 0x634 20")), -Annotation(Region(0x600,0x74F), Attr("section","\".text\"")), -Annotation(Region(0x600,0x74F), Attr("code-region","()")), -Annotation(Region(0x714,0x74F), Attr("symbol","\"main\"")), -Annotation(Region(0x714,0x74F), Attr("symbol-info","main 0x714 60")), -Annotation(Region(0x750,0x763), Attr("section","\".fini\"")), -Annotation(Region(0x750,0x763), Attr("code-region","()")), -Annotation(Region(0x764,0x767), Attr("section","\".rodata\"")), -Annotation(Region(0x768,0x7A3), Attr("section","\".eh_frame_hdr\"")), -Annotation(Region(0x7A8,0x85B), Attr("section","\".eh_frame\"")), -Annotation(Region(0x10DC8,0x1102F), Attr("segment","03 0x10DC8 632")), -Annotation(Region(0x10DD0,0x10DD7), Attr("section","\".fini_array\"")), -Annotation(Region(0x10DD8,0x10FB7), Attr("section","\".dynamic\"")), -Annotation(Region(0x10DC8,0x10DCF), Attr("section","\".init_array\"")), -Annotation(Region(0x10FB8,0x10FE7), Attr("section","\".got\"")), -Annotation(Region(0x10FE8,0x1101F), Attr("section","\".got.plt\"")), -Annotation(Region(0x11020,0x1102F), Attr("section","\".data\""))]), -Program(Tid(1_545, "%00000609"), Attrs([]), - Subs([Sub(Tid(1_495, "@__cxa_finalize"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x5D0"), -Attr("stub","()")]), "__cxa_finalize", Args([Arg(Tid(1_546, "%0000060a"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("__cxa_finalize_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(893, "@__cxa_finalize"), - Attrs([Attr("address","0x5D0")]), Phis([]), -Defs([Def(Tid(1_141, "%00000475"), Attrs([Attr("address","0x5D0"), -Attr("insn","adrp x16, #69632")]), Var("R16",Imm(64)), Int(69632,64)), -Def(Tid(1_148, "%0000047c"), Attrs([Attr("address","0x5D4"), -Attr("insn","ldr x17, [x16, #0x8]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(1_154, "%00000482"), Attrs([Attr("address","0x5D8"), -Attr("insn","add x16, x16, #0x8")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(8,64)))]), Jmps([Call(Tid(1_159, "%00000487"), - Attrs([Attr("address","0x5DC"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), -Sub(Tid(1_496, "@__do_global_dtors_aux"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x6C0")]), - "__do_global_dtors_aux", Args([Arg(Tid(1_547, "%0000060b"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("__do_global_dtors_aux_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(650, "@__do_global_dtors_aux"), - Attrs([Attr("address","0x6C0")]), Phis([]), Defs([Def(Tid(654, "%0000028e"), - Attrs([Attr("address","0x6C0"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("#3",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(18446744073709551584,64))), -Def(Tid(660, "%00000294"), Attrs([Attr("address","0x6C0"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("#3",Imm(64)),Var("R29",Imm(64)),LittleEndian(),64)), -Def(Tid(666, "%0000029a"), Attrs([Attr("address","0x6C0"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("#3",Imm(64)),Int(8,64)),Var("R30",Imm(64)),LittleEndian(),64)), -Def(Tid(670, "%0000029e"), Attrs([Attr("address","0x6C0"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("R31",Imm(64)), -Var("#3",Imm(64))), Def(Tid(676, "%000002a4"), - Attrs([Attr("address","0x6C4"), Attr("insn","mov x29, sp")]), - Var("R29",Imm(64)), Var("R31",Imm(64))), Def(Tid(684, "%000002ac"), - Attrs([Attr("address","0x6C8"), Attr("insn","str x19, [sp, #0x10]")]), - Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(16,64)),Var("R19",Imm(64)),LittleEndian(),64)), -Def(Tid(689, "%000002b1"), Attrs([Attr("address","0x6CC"), -Attr("insn","adrp x19, #69632")]), Var("R19",Imm(64)), Int(69632,64)), -Def(Tid(696, "%000002b8"), Attrs([Attr("address","0x6D0"), -Attr("insn","ldrb w0, [x19, #0x30]")]), Var("R0",Imm(64)), -UNSIGNED(64,Load(Var("mem",Mem(64,8)),PLUS(Var("R19",Imm(64)),Int(48,64)),LittleEndian(),8)))]), -Jmps([Goto(Tid(703, "%000002bf"), Attrs([Attr("address","0x6D4"), -Attr("insn","cbnz w0, #0x28")]), - NEQ(Extract(31,0,Var("R0",Imm(64))),Int(0,32)), -Direct(Tid(701, "%000002bd"))), Goto(Tid(1_535, "%000005ff"), Attrs([]), - Int(1,1), Direct(Tid(838, "%00000346")))])), Blk(Tid(838, "%00000346"), - Attrs([Attr("address","0x6D8")]), Phis([]), Defs([Def(Tid(841, "%00000349"), - Attrs([Attr("address","0x6D8"), Attr("insn","adrp x0, #65536")]), - Var("R0",Imm(64)), Int(65536,64)), Def(Tid(848, "%00000350"), - Attrs([Attr("address","0x6DC"), Attr("insn","ldr x0, [x0, #0xfc8]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(4040,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(854, "%00000356"), Attrs([Attr("address","0x6E0"), -Attr("insn","cbz x0, #0x10")]), EQ(Var("R0",Imm(64)),Int(0,64)), -Direct(Tid(852, "%00000354"))), Goto(Tid(1_536, "%00000600"), Attrs([]), - Int(1,1), Direct(Tid(877, "%0000036d")))])), Blk(Tid(877, "%0000036d"), - Attrs([Attr("address","0x6E4")]), Phis([]), Defs([Def(Tid(880, "%00000370"), - Attrs([Attr("address","0x6E4"), Attr("insn","adrp x0, #69632")]), - Var("R0",Imm(64)), Int(69632,64)), Def(Tid(887, "%00000377"), - Attrs([Attr("address","0x6E8"), Attr("insn","ldr x0, [x0, #0x28]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(40,64)),LittleEndian(),64)), -Def(Tid(892, "%0000037c"), Attrs([Attr("address","0x6EC"), -Attr("insn","bl #-0x11c")]), Var("R30",Imm(64)), Int(1776,64))]), -Jmps([Call(Tid(895, "%0000037f"), Attrs([Attr("address","0x6EC"), -Attr("insn","bl #-0x11c")]), Int(1,1), -(Direct(Tid(1_495, "@__cxa_finalize")),Direct(Tid(852, "%00000354"))))])), -Blk(Tid(852, "%00000354"), Attrs([Attr("address","0x6F0")]), Phis([]), -Defs([Def(Tid(860, "%0000035c"), Attrs([Attr("address","0x6F0"), -Attr("insn","bl #-0xa0")]), Var("R30",Imm(64)), Int(1780,64))]), -Jmps([Call(Tid(862, "%0000035e"), Attrs([Attr("address","0x6F0"), -Attr("insn","bl #-0xa0")]), Int(1,1), -(Direct(Tid(1_509, "@deregister_tm_clones")),Direct(Tid(864, "%00000360"))))])), -Blk(Tid(864, "%00000360"), Attrs([Attr("address","0x6F4")]), Phis([]), -Defs([Def(Tid(867, "%00000363"), Attrs([Attr("address","0x6F4"), -Attr("insn","mov w0, #0x1")]), Var("R0",Imm(64)), Int(1,64)), -Def(Tid(875, "%0000036b"), Attrs([Attr("address","0x6F8"), -Attr("insn","strb w0, [x19, #0x30]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R19",Imm(64)),Int(48,64)),Extract(7,0,Var("R0",Imm(64))),LittleEndian(),8))]), -Jmps([Goto(Tid(1_537, "%00000601"), Attrs([]), Int(1,1), -Direct(Tid(701, "%000002bd")))])), Blk(Tid(701, "%000002bd"), - Attrs([Attr("address","0x6FC")]), Phis([]), Defs([Def(Tid(711, "%000002c7"), - Attrs([Attr("address","0x6FC"), Attr("insn","ldr x19, [sp, #0x10]")]), - Var("R19",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(16,64)),LittleEndian(),64)), -Def(Tid(718, "%000002ce"), Attrs([Attr("address","0x700"), -Attr("insn","ldp x29, x30, [sp], #0x20")]), Var("R29",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(723, "%000002d3"), Attrs([Attr("address","0x700"), -Attr("insn","ldp x29, x30, [sp], #0x20")]), Var("R30",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(727, "%000002d7"), Attrs([Attr("address","0x700"), -Attr("insn","ldp x29, x30, [sp], #0x20")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(32,64)))]), Jmps([Call(Tid(732, "%000002dc"), - Attrs([Attr("address","0x704"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), Sub(Tid(1_500, "@__libc_start_main"), - Attrs([Attr("c.proto","signed (*)(signed (*)(signed , char** , char** );* main, signed , char** , \nvoid* auxv)"), -Attr("address","0x5C0"), Attr("stub","()")]), "__libc_start_main", - Args([Arg(Tid(1_548, "%0000060c"), - Attrs([Attr("c.layout","**[ : 64]"), -Attr("c.data","Top:u64 ptr ptr"), -Attr("c.type","signed (*)(signed , char** , char** );*")]), - Var("__libc_start_main_main",Imm(64)), Var("R0",Imm(64)), In()), -Arg(Tid(1_549, "%0000060d"), Attrs([Attr("c.layout","[signed : 32]"), -Attr("c.data","Top:u32"), Attr("c.type","signed")]), - Var("__libc_start_main_arg2",Imm(32)), LOW(32,Var("R1",Imm(64))), In()), -Arg(Tid(1_550, "%0000060e"), Attrs([Attr("c.layout","**[char : 8]"), -Attr("c.data","Top:u8 ptr ptr"), Attr("c.type","char**")]), - Var("__libc_start_main_arg3",Imm(64)), Var("R2",Imm(64)), Both()), -Arg(Tid(1_551, "%0000060f"), Attrs([Attr("c.layout","*[ : 8]"), -Attr("c.data","{} ptr"), Attr("c.type","void*")]), - Var("__libc_start_main_auxv",Imm(64)), Var("R3",Imm(64)), Both()), -Arg(Tid(1_552, "%00000610"), Attrs([Attr("c.layout","[signed : 32]"), -Attr("c.data","Top:u32"), Attr("c.type","signed")]), - Var("__libc_start_main_result",Imm(32)), LOW(32,Var("R0",Imm(64))), -Out())]), Blks([Blk(Tid(483, "@__libc_start_main"), - Attrs([Attr("address","0x5C0")]), Phis([]), -Defs([Def(Tid(1_119, "%0000045f"), Attrs([Attr("address","0x5C0"), -Attr("insn","adrp x16, #69632")]), Var("R16",Imm(64)), Int(69632,64)), -Def(Tid(1_126, "%00000466"), Attrs([Attr("address","0x5C4"), -Attr("insn","ldr x17, [x16]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R16",Imm(64)),LittleEndian(),64)), -Def(Tid(1_132, "%0000046c"), Attrs([Attr("address","0x5C8"), -Attr("insn","add x16, x16, #0x0")]), Var("R16",Imm(64)), -Var("R16",Imm(64)))]), Jmps([Call(Tid(1_137, "%00000471"), - Attrs([Attr("address","0x5CC"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), Sub(Tid(1_501, "@_fini"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x750")]), - "_fini", Args([Arg(Tid(1_553, "%00000611"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("_fini_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(31, "@_fini"), - Attrs([Attr("address","0x750")]), Phis([]), Defs([Def(Tid(37, "%00000025"), - Attrs([Attr("address","0x754"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("#0",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(18446744073709551600,64))), -Def(Tid(43, "%0000002b"), Attrs([Attr("address","0x754"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("#0",Imm(64)),Var("R29",Imm(64)),LittleEndian(),64)), -Def(Tid(49, "%00000031"), Attrs([Attr("address","0x754"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("#0",Imm(64)),Int(8,64)),Var("R30",Imm(64)),LittleEndian(),64)), -Def(Tid(53, "%00000035"), Attrs([Attr("address","0x754"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("R31",Imm(64)), -Var("#0",Imm(64))), Def(Tid(59, "%0000003b"), Attrs([Attr("address","0x758"), -Attr("insn","mov x29, sp")]), Var("R29",Imm(64)), Var("R31",Imm(64))), -Def(Tid(66, "%00000042"), Attrs([Attr("address","0x75C"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R29",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(71, "%00000047"), Attrs([Attr("address","0x75C"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R30",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(75, "%0000004b"), Attrs([Attr("address","0x75C"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(16,64)))]), Jmps([Call(Tid(80, "%00000050"), - Attrs([Attr("address","0x760"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), Sub(Tid(1_502, "@_init"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x580")]), - "_init", Args([Arg(Tid(1_554, "%00000612"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("_init_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(1_322, "@_init"), - Attrs([Attr("address","0x580")]), Phis([]), -Defs([Def(Tid(1_328, "%00000530"), Attrs([Attr("address","0x584"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("#5",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(18446744073709551600,64))), -Def(Tid(1_334, "%00000536"), Attrs([Attr("address","0x584"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("#5",Imm(64)),Var("R29",Imm(64)),LittleEndian(),64)), -Def(Tid(1_340, "%0000053c"), Attrs([Attr("address","0x584"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("#5",Imm(64)),Int(8,64)),Var("R30",Imm(64)),LittleEndian(),64)), -Def(Tid(1_344, "%00000540"), Attrs([Attr("address","0x584"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("R31",Imm(64)), -Var("#5",Imm(64))), Def(Tid(1_350, "%00000546"), - Attrs([Attr("address","0x588"), Attr("insn","mov x29, sp")]), - Var("R29",Imm(64)), Var("R31",Imm(64))), Def(Tid(1_355, "%0000054b"), - Attrs([Attr("address","0x58C"), Attr("insn","bl #0xa8")]), - Var("R30",Imm(64)), Int(1424,64))]), Jmps([Call(Tid(1_357, "%0000054d"), - Attrs([Attr("address","0x58C"), Attr("insn","bl #0xa8")]), Int(1,1), -(Direct(Tid(1_507, "@call_weak_fn")),Direct(Tid(1_359, "%0000054f"))))])), -Blk(Tid(1_359, "%0000054f"), Attrs([Attr("address","0x590")]), Phis([]), -Defs([Def(Tid(1_364, "%00000554"), Attrs([Attr("address","0x590"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R29",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(1_369, "%00000559"), Attrs([Attr("address","0x590"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R30",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(1_373, "%0000055d"), Attrs([Attr("address","0x590"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(16,64)))]), Jmps([Call(Tid(1_378, "%00000562"), - Attrs([Attr("address","0x594"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), Sub(Tid(1_503, "@_start"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x600"), -Attr("stub","()"), Attr("entry-point","()")]), "_start", - Args([Arg(Tid(1_555, "%00000613"), Attrs([Attr("c.layout","[signed : 32]"), -Attr("c.data","Top:u32"), Attr("c.type","signed")]), - Var("_start_result",Imm(32)), LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(420, "@_start"), Attrs([Attr("address","0x600")]), Phis([]), -Defs([Def(Tid(425, "%000001a9"), Attrs([Attr("address","0x604"), -Attr("insn","mov x29, #0x0")]), Var("R29",Imm(64)), Int(0,64)), -Def(Tid(430, "%000001ae"), Attrs([Attr("address","0x608"), -Attr("insn","mov x30, #0x0")]), Var("R30",Imm(64)), Int(0,64)), -Def(Tid(436, "%000001b4"), Attrs([Attr("address","0x60C"), -Attr("insn","mov x5, x0")]), Var("R5",Imm(64)), Var("R0",Imm(64))), -Def(Tid(443, "%000001bb"), Attrs([Attr("address","0x610"), -Attr("insn","ldr x1, [sp]")]), Var("R1",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(449, "%000001c1"), Attrs([Attr("address","0x614"), -Attr("insn","add x2, sp, #0x8")]), Var("R2",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(8,64))), Def(Tid(455, "%000001c7"), - Attrs([Attr("address","0x618"), Attr("insn","mov x6, sp")]), - Var("R6",Imm(64)), Var("R31",Imm(64))), Def(Tid(460, "%000001cc"), - Attrs([Attr("address","0x61C"), Attr("insn","adrp x0, #65536")]), - Var("R0",Imm(64)), Int(65536,64)), Def(Tid(467, "%000001d3"), - Attrs([Attr("address","0x620"), Attr("insn","ldr x0, [x0, #0xfd8]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(4056,64)),LittleEndian(),64)), -Def(Tid(472, "%000001d8"), Attrs([Attr("address","0x624"), -Attr("insn","mov x3, #0x0")]), Var("R3",Imm(64)), Int(0,64)), -Def(Tid(477, "%000001dd"), Attrs([Attr("address","0x628"), -Attr("insn","mov x4, #0x0")]), Var("R4",Imm(64)), Int(0,64)), -Def(Tid(482, "%000001e2"), Attrs([Attr("address","0x62C"), -Attr("insn","bl #-0x6c")]), Var("R30",Imm(64)), Int(1584,64))]), -Jmps([Call(Tid(485, "%000001e5"), Attrs([Attr("address","0x62C"), -Attr("insn","bl #-0x6c")]), Int(1,1), -(Direct(Tid(1_500, "@__libc_start_main")),Direct(Tid(487, "%000001e7"))))])), -Blk(Tid(487, "%000001e7"), Attrs([Attr("address","0x630")]), Phis([]), -Defs([Def(Tid(490, "%000001ea"), Attrs([Attr("address","0x630"), -Attr("insn","bl #-0x40")]), Var("R30",Imm(64)), Int(1588,64))]), -Jmps([Call(Tid(493, "%000001ed"), Attrs([Attr("address","0x630"), -Attr("insn","bl #-0x40")]), Int(1,1), -(Direct(Tid(1_506, "@abort")),Direct(Tid(1_538, "%00000602"))))])), -Blk(Tid(1_538, "%00000602"), Attrs([]), Phis([]), Defs([]), -Jmps([Call(Tid(1_539, "%00000603"), Attrs([]), Int(1,1), -(Direct(Tid(1_507, "@call_weak_fn")),))]))])), Sub(Tid(1_506, "@abort"), - Attrs([Attr("noreturn","()"), Attr("c.proto","void (*)(void)"), -Attr("address","0x5F0"), Attr("stub","()")]), "abort", Args([]), -Blks([Blk(Tid(491, "@abort"), Attrs([Attr("address","0x5F0")]), Phis([]), -Defs([Def(Tid(1_185, "%000004a1"), Attrs([Attr("address","0x5F0"), -Attr("insn","adrp x16, #69632")]), Var("R16",Imm(64)), Int(69632,64)), -Def(Tid(1_192, "%000004a8"), Attrs([Attr("address","0x5F4"), -Attr("insn","ldr x17, [x16, #0x18]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(24,64)),LittleEndian(),64)), -Def(Tid(1_198, "%000004ae"), Attrs([Attr("address","0x5F8"), -Attr("insn","add x16, x16, #0x18")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(24,64)))]), Jmps([Call(Tid(1_203, "%000004b3"), - Attrs([Attr("address","0x5FC"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), Sub(Tid(1_507, "@call_weak_fn"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x634")]), - "call_weak_fn", Args([Arg(Tid(1_556, "%00000614"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("call_weak_fn_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(495, "@call_weak_fn"), - Attrs([Attr("address","0x634")]), Phis([]), Defs([Def(Tid(498, "%000001f2"), - Attrs([Attr("address","0x634"), Attr("insn","adrp x0, #65536")]), - Var("R0",Imm(64)), Int(65536,64)), Def(Tid(505, "%000001f9"), - Attrs([Attr("address","0x638"), Attr("insn","ldr x0, [x0, #0xfd0]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(4048,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(511, "%000001ff"), Attrs([Attr("address","0x63C"), -Attr("insn","cbz x0, #0x8")]), EQ(Var("R0",Imm(64)),Int(0,64)), -Direct(Tid(509, "%000001fd"))), Goto(Tid(1_540, "%00000604"), Attrs([]), - Int(1,1), Direct(Tid(957, "%000003bd")))])), Blk(Tid(509, "%000001fd"), - Attrs([Attr("address","0x644")]), Phis([]), Defs([]), -Jmps([Call(Tid(517, "%00000205"), Attrs([Attr("address","0x644"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))])), -Blk(Tid(957, "%000003bd"), Attrs([Attr("address","0x640")]), Phis([]), -Defs([]), Jmps([Goto(Tid(960, "%000003c0"), Attrs([Attr("address","0x640"), -Attr("insn","b #-0x60")]), Int(1,1), Direct(Tid(958, "@__gmon_start__")))])), -Blk(Tid(958, "@__gmon_start__"), Attrs([Attr("address","0x5E0")]), Phis([]), -Defs([Def(Tid(1_163, "%0000048b"), Attrs([Attr("address","0x5E0"), -Attr("insn","adrp x16, #69632")]), Var("R16",Imm(64)), Int(69632,64)), -Def(Tid(1_170, "%00000492"), Attrs([Attr("address","0x5E4"), -Attr("insn","ldr x17, [x16, #0x10]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(16,64)),LittleEndian(),64)), -Def(Tid(1_176, "%00000498"), Attrs([Attr("address","0x5E8"), -Attr("insn","add x16, x16, #0x10")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(16,64)))]), Jmps([Call(Tid(1_181, "%0000049d"), - Attrs([Attr("address","0x5EC"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), -Sub(Tid(1_509, "@deregister_tm_clones"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x650")]), - "deregister_tm_clones", Args([Arg(Tid(1_557, "%00000615"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("deregister_tm_clones_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(523, "@deregister_tm_clones"), - Attrs([Attr("address","0x650")]), Phis([]), Defs([Def(Tid(526, "%0000020e"), - Attrs([Attr("address","0x650"), Attr("insn","adrp x0, #69632")]), - Var("R0",Imm(64)), Int(69632,64)), Def(Tid(532, "%00000214"), - Attrs([Attr("address","0x654"), Attr("insn","add x0, x0, #0x30")]), - Var("R0",Imm(64)), PLUS(Var("R0",Imm(64)),Int(48,64))), -Def(Tid(537, "%00000219"), Attrs([Attr("address","0x658"), -Attr("insn","adrp x1, #69632")]), Var("R1",Imm(64)), Int(69632,64)), -Def(Tid(543, "%0000021f"), Attrs([Attr("address","0x65C"), -Attr("insn","add x1, x1, #0x30")]), Var("R1",Imm(64)), -PLUS(Var("R1",Imm(64)),Int(48,64))), Def(Tid(549, "%00000225"), - Attrs([Attr("address","0x660"), Attr("insn","cmp x1, x0")]), - Var("#1",Imm(64)), NOT(Var("R0",Imm(64)))), Def(Tid(554, "%0000022a"), - Attrs([Attr("address","0x660"), Attr("insn","cmp x1, x0")]), - Var("#2",Imm(64)), PLUS(Var("R1",Imm(64)),NOT(Var("R0",Imm(64))))), -Def(Tid(560, "%00000230"), Attrs([Attr("address","0x660"), -Attr("insn","cmp x1, x0")]), Var("VF",Imm(1)), -NEQ(SIGNED(65,PLUS(Var("#2",Imm(64)),Int(1,64))),PLUS(PLUS(SIGNED(65,Var("R1",Imm(64))),SIGNED(65,Var("#1",Imm(64)))),Int(1,65)))), -Def(Tid(566, "%00000236"), Attrs([Attr("address","0x660"), -Attr("insn","cmp x1, x0")]), Var("CF",Imm(1)), -NEQ(UNSIGNED(65,PLUS(Var("#2",Imm(64)),Int(1,64))),PLUS(PLUS(UNSIGNED(65,Var("R1",Imm(64))),UNSIGNED(65,Var("#1",Imm(64)))),Int(1,65)))), -Def(Tid(570, "%0000023a"), Attrs([Attr("address","0x660"), -Attr("insn","cmp x1, x0")]), Var("ZF",Imm(1)), -EQ(PLUS(Var("#2",Imm(64)),Int(1,64)),Int(0,64))), Def(Tid(574, "%0000023e"), - Attrs([Attr("address","0x660"), Attr("insn","cmp x1, x0")]), - Var("NF",Imm(1)), Extract(63,63,PLUS(Var("#2",Imm(64)),Int(1,64))))]), -Jmps([Goto(Tid(580, "%00000244"), Attrs([Attr("address","0x664"), -Attr("insn","b.eq #0x18")]), EQ(Var("ZF",Imm(1)),Int(1,1)), -Direct(Tid(578, "%00000242"))), Goto(Tid(1_541, "%00000605"), Attrs([]), - Int(1,1), Direct(Tid(927, "%0000039f")))])), Blk(Tid(927, "%0000039f"), - Attrs([Attr("address","0x668")]), Phis([]), Defs([Def(Tid(930, "%000003a2"), - Attrs([Attr("address","0x668"), Attr("insn","adrp x1, #65536")]), - Var("R1",Imm(64)), Int(65536,64)), Def(Tid(937, "%000003a9"), - Attrs([Attr("address","0x66C"), Attr("insn","ldr x1, [x1, #0xfc0]")]), - Var("R1",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R1",Imm(64)),Int(4032,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(942, "%000003ae"), Attrs([Attr("address","0x670"), -Attr("insn","cbz x1, #0xc")]), EQ(Var("R1",Imm(64)),Int(0,64)), -Direct(Tid(578, "%00000242"))), Goto(Tid(1_542, "%00000606"), Attrs([]), - Int(1,1), Direct(Tid(946, "%000003b2")))])), Blk(Tid(578, "%00000242"), - Attrs([Attr("address","0x67C")]), Phis([]), Defs([]), -Jmps([Call(Tid(586, "%0000024a"), Attrs([Attr("address","0x67C"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))])), -Blk(Tid(946, "%000003b2"), Attrs([Attr("address","0x674")]), Phis([]), -Defs([Def(Tid(950, "%000003b6"), Attrs([Attr("address","0x674"), -Attr("insn","mov x16, x1")]), Var("R16",Imm(64)), Var("R1",Imm(64)))]), -Jmps([Call(Tid(955, "%000003bb"), Attrs([Attr("address","0x678"), -Attr("insn","br x16")]), Int(1,1), (Indirect(Var("R16",Imm(64))),))]))])), -Sub(Tid(1_512, "@frame_dummy"), Attrs([Attr("c.proto","signed (*)(void)"), -Attr("address","0x710")]), "frame_dummy", Args([Arg(Tid(1_558, "%00000616"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("frame_dummy_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(738, "@frame_dummy"), - Attrs([Attr("address","0x710")]), Phis([]), Defs([]), -Jmps([Call(Tid(740, "%000002e4"), Attrs([Attr("address","0x710"), -Attr("insn","b #-0x90")]), Int(1,1), -(Direct(Tid(1_514, "@register_tm_clones")),))]))])), Sub(Tid(1_513, "@main"), - Attrs([Attr("c.proto","signed (*)(signed argc, const char** argv)"), -Attr("address","0x714")]), "main", Args([Arg(Tid(1_559, "%00000617"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("main_argc",Imm(32)), -LOW(32,Var("R0",Imm(64))), In()), Arg(Tid(1_560, "%00000618"), - Attrs([Attr("c.layout","**[char : 8]"), Attr("c.data","Top:u8 ptr ptr"), -Attr("c.type"," const char**")]), Var("main_argv",Imm(64)), -Var("R1",Imm(64)), Both()), Arg(Tid(1_561, "%00000619"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("main_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(742, "@main"), - Attrs([Attr("address","0x714")]), Phis([]), Defs([Def(Tid(745, "%000002e9"), - Attrs([Attr("address","0x714"), Attr("insn","adrp x9, #69632")]), - Var("R9",Imm(64)), Int(69632,64)), Def(Tid(750, "%000002ee"), - Attrs([Attr("address","0x718"), Attr("insn","mov w0, wzr")]), - Var("R0",Imm(64)), Int(0,64)), Def(Tid(757, "%000002f5"), - Attrs([Attr("address","0x71C"), Attr("insn","str wzr, [x9, #0x34]")]), - Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R9",Imm(64)),Int(52,64)),Int(0,32),LittleEndian(),32)), -Def(Tid(764, "%000002fc"), Attrs([Attr("address","0x720"), -Attr("insn","ldr w8, [x9, #0x34]")]), Var("R8",Imm(64)), -UNSIGNED(64,Load(Var("mem",Mem(64,8)),PLUS(Var("R9",Imm(64)),Int(52,64)),LittleEndian(),32))), -Def(Tid(770, "%00000302"), Attrs([Attr("address","0x724"), -Attr("insn","add w8, w8, #0x1")]), Var("R8",Imm(64)), -UNSIGNED(64,PLUS(Extract(31,0,Var("R8",Imm(64))),Int(1,32)))), -Def(Tid(778, "%0000030a"), Attrs([Attr("address","0x728"), -Attr("insn","str w8, [x9, #0x34]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R9",Imm(64)),Int(52,64)),Extract(31,0,Var("R8",Imm(64))),LittleEndian(),32)), -Def(Tid(783, "%0000030f"), Attrs([Attr("address","0x72C"), -Attr("insn","adrp x8, #69632")]), Var("R8",Imm(64)), Int(69632,64)), -Def(Tid(790, "%00000316"), Attrs([Attr("address","0x730"), -Attr("insn","ldr w10, [x8, #0x38]")]), Var("R10",Imm(64)), -UNSIGNED(64,Load(Var("mem",Mem(64,8)),PLUS(Var("R8",Imm(64)),Int(56,64)),LittleEndian(),32))), -Def(Tid(795, "%0000031b"), Attrs([Attr("address","0x734"), -Attr("insn","adrp x8, #69632")]), Var("R8",Imm(64)), Int(69632,64)), -Def(Tid(803, "%00000323"), Attrs([Attr("address","0x738"), -Attr("insn","str w10, [x8, #0x3c]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R8",Imm(64)),Int(60,64)),Extract(31,0,Var("R10",Imm(64))),LittleEndian(),32)), -Def(Tid(810, "%0000032a"), Attrs([Attr("address","0x73C"), -Attr("insn","str wzr, [x8, #0x3c]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R8",Imm(64)),Int(60,64)),Int(0,32),LittleEndian(),32)), -Def(Tid(817, "%00000331"), Attrs([Attr("address","0x740"), -Attr("insn","ldr w8, [x9, #0x34]")]), Var("R8",Imm(64)), -UNSIGNED(64,Load(Var("mem",Mem(64,8)),PLUS(Var("R9",Imm(64)),Int(52,64)),LittleEndian(),32))), -Def(Tid(823, "%00000337"), Attrs([Attr("address","0x744"), -Attr("insn","add w8, w8, #0x1")]), Var("R8",Imm(64)), -UNSIGNED(64,PLUS(Extract(31,0,Var("R8",Imm(64))),Int(1,32)))), -Def(Tid(831, "%0000033f"), Attrs([Attr("address","0x748"), -Attr("insn","str w8, [x9, #0x34]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R9",Imm(64)),Int(52,64)),Extract(31,0,Var("R8",Imm(64))),LittleEndian(),32))]), -Jmps([Call(Tid(836, "%00000344"), Attrs([Attr("address","0x74C"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))]))])), -Sub(Tid(1_514, "@register_tm_clones"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x680")]), - "register_tm_clones", Args([Arg(Tid(1_562, "%0000061a"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("register_tm_clones_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(588, "@register_tm_clones"), Attrs([Attr("address","0x680")]), - Phis([]), Defs([Def(Tid(591, "%0000024f"), Attrs([Attr("address","0x680"), -Attr("insn","adrp x0, #69632")]), Var("R0",Imm(64)), Int(69632,64)), -Def(Tid(597, "%00000255"), Attrs([Attr("address","0x684"), -Attr("insn","add x0, x0, #0x30")]), Var("R0",Imm(64)), -PLUS(Var("R0",Imm(64)),Int(48,64))), Def(Tid(602, "%0000025a"), - Attrs([Attr("address","0x688"), Attr("insn","adrp x1, #69632")]), - Var("R1",Imm(64)), Int(69632,64)), Def(Tid(608, "%00000260"), - Attrs([Attr("address","0x68C"), Attr("insn","add x1, x1, #0x30")]), - Var("R1",Imm(64)), PLUS(Var("R1",Imm(64)),Int(48,64))), -Def(Tid(615, "%00000267"), Attrs([Attr("address","0x690"), -Attr("insn","sub x1, x1, x0")]), Var("R1",Imm(64)), -PLUS(PLUS(Var("R1",Imm(64)),NOT(Var("R0",Imm(64)))),Int(1,64))), -Def(Tid(621, "%0000026d"), Attrs([Attr("address","0x694"), -Attr("insn","lsr x2, x1, #63")]), Var("R2",Imm(64)), -Concat(Int(0,63),Extract(63,63,Var("R1",Imm(64))))), -Def(Tid(628, "%00000274"), Attrs([Attr("address","0x698"), -Attr("insn","add x1, x2, x1, asr #3")]), Var("R1",Imm(64)), -PLUS(Var("R2",Imm(64)),ARSHIFT(Var("R1",Imm(64)),Int(3,3)))), -Def(Tid(634, "%0000027a"), Attrs([Attr("address","0x69C"), -Attr("insn","asr x1, x1, #1")]), Var("R1",Imm(64)), -SIGNED(64,Extract(63,1,Var("R1",Imm(64)))))]), -Jmps([Goto(Tid(640, "%00000280"), Attrs([Attr("address","0x6A0"), -Attr("insn","cbz x1, #0x18")]), EQ(Var("R1",Imm(64)),Int(0,64)), -Direct(Tid(638, "%0000027e"))), Goto(Tid(1_543, "%00000607"), Attrs([]), - Int(1,1), Direct(Tid(897, "%00000381")))])), Blk(Tid(897, "%00000381"), - Attrs([Attr("address","0x6A4")]), Phis([]), Defs([Def(Tid(900, "%00000384"), - Attrs([Attr("address","0x6A4"), Attr("insn","adrp x2, #65536")]), - Var("R2",Imm(64)), Int(65536,64)), Def(Tid(907, "%0000038b"), - Attrs([Attr("address","0x6A8"), Attr("insn","ldr x2, [x2, #0xfe0]")]), - Var("R2",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R2",Imm(64)),Int(4064,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(912, "%00000390"), Attrs([Attr("address","0x6AC"), -Attr("insn","cbz x2, #0xc")]), EQ(Var("R2",Imm(64)),Int(0,64)), -Direct(Tid(638, "%0000027e"))), Goto(Tid(1_544, "%00000608"), Attrs([]), - Int(1,1), Direct(Tid(916, "%00000394")))])), Blk(Tid(638, "%0000027e"), - Attrs([Attr("address","0x6B8")]), Phis([]), Defs([]), -Jmps([Call(Tid(646, "%00000286"), Attrs([Attr("address","0x6B8"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))])), -Blk(Tid(916, "%00000394"), Attrs([Attr("address","0x6B0")]), Phis([]), -Defs([Def(Tid(920, "%00000398"), Attrs([Attr("address","0x6B0"), -Attr("insn","mov x16, x2")]), Var("R16",Imm(64)), Var("R2",Imm(64)))]), -Jmps([Call(Tid(925, "%0000039d"), Attrs([Attr("address","0x6B4"), -Attr("insn","br x16")]), Int(1,1), -(Indirect(Var("R16",Imm(64))),))]))]))]))) \ No newline at end of file diff --git a/src/test/correct/secret_write/clang/secret_write.bir b/src/test/correct/secret_write/clang/secret_write.bir deleted file mode 100644 index 5f7682e0c..000000000 --- a/src/test/correct/secret_write/clang/secret_write.bir +++ /dev/null @@ -1,237 +0,0 @@ -00000609: program -000005d7: sub __cxa_finalize(__cxa_finalize_result) -0000060a: __cxa_finalize_result :: out u32 = low:32[R0] - -0000037d: -00000475: R16 := 0x11000 -0000047c: R17 := mem[R16 + 8, el]:u64 -00000482: R16 := R16 + 8 -00000487: call R17 with noreturn - -000005d8: sub __do_global_dtors_aux(__do_global_dtors_aux_result) -0000060b: __do_global_dtors_aux_result :: out u32 = low:32[R0] - -0000028a: -0000028e: #3 := R31 - 0x20 -00000294: mem := mem with [#3, el]:u64 <- R29 -0000029a: mem := mem with [#3 + 8, el]:u64 <- R30 -0000029e: R31 := #3 -000002a4: R29 := R31 -000002ac: mem := mem with [R31 + 0x10, el]:u64 <- R19 -000002b1: R19 := 0x11000 -000002b8: R0 := pad:64[mem[R19 + 0x30]] -000002bf: when 31:0[R0] <> 0 goto %000002bd -000005ff: goto %00000346 - -00000346: -00000349: R0 := 0x10000 -00000350: R0 := mem[R0 + 0xFC8, el]:u64 -00000356: when R0 = 0 goto %00000354 -00000600: goto %0000036d - -0000036d: -00000370: R0 := 0x11000 -00000377: R0 := mem[R0 + 0x28, el]:u64 -0000037c: R30 := 0x6F0 -0000037f: call @__cxa_finalize with return %00000354 - -00000354: -0000035c: R30 := 0x6F4 -0000035e: call @deregister_tm_clones with return %00000360 - -00000360: -00000363: R0 := 1 -0000036b: mem := mem with [R19 + 0x30] <- 7:0[R0] -00000601: goto %000002bd - -000002bd: -000002c7: R19 := mem[R31 + 0x10, el]:u64 -000002ce: R29 := mem[R31, el]:u64 -000002d3: R30 := mem[R31 + 8, el]:u64 -000002d7: R31 := R31 + 0x20 -000002dc: call R30 with noreturn - -000005dc: sub __libc_start_main(__libc_start_main_main, __libc_start_main_arg2, __libc_start_main_arg3, __libc_start_main_auxv, __libc_start_main_result) -0000060c: __libc_start_main_main :: in u64 = R0 -0000060d: __libc_start_main_arg2 :: in u32 = low:32[R1] -0000060e: __libc_start_main_arg3 :: in out u64 = R2 -0000060f: __libc_start_main_auxv :: in out u64 = R3 -00000610: __libc_start_main_result :: out u32 = low:32[R0] - -000001e3: -0000045f: R16 := 0x11000 -00000466: R17 := mem[R16, el]:u64 -0000046c: R16 := R16 -00000471: call R17 with noreturn - -000005dd: sub _fini(_fini_result) -00000611: _fini_result :: out u32 = low:32[R0] - -0000001f: -00000025: #0 := R31 - 0x10 -0000002b: mem := mem with [#0, el]:u64 <- R29 -00000031: mem := mem with [#0 + 8, el]:u64 <- R30 -00000035: R31 := #0 -0000003b: R29 := R31 -00000042: R29 := mem[R31, el]:u64 -00000047: R30 := mem[R31 + 8, el]:u64 -0000004b: R31 := R31 + 0x10 -00000050: call R30 with noreturn - -000005de: sub _init(_init_result) -00000612: _init_result :: out u32 = low:32[R0] - -0000052a: -00000530: #5 := R31 - 0x10 -00000536: mem := mem with [#5, el]:u64 <- R29 -0000053c: mem := mem with [#5 + 8, el]:u64 <- R30 -00000540: R31 := #5 -00000546: R29 := R31 -0000054b: R30 := 0x590 -0000054d: call @call_weak_fn with return %0000054f - -0000054f: -00000554: R29 := mem[R31, el]:u64 -00000559: R30 := mem[R31 + 8, el]:u64 -0000055d: R31 := R31 + 0x10 -00000562: call R30 with noreturn - -000005df: sub _start(_start_result) -00000613: _start_result :: out u32 = low:32[R0] - -000001a4: -000001a9: R29 := 0 -000001ae: R30 := 0 -000001b4: R5 := R0 -000001bb: R1 := mem[R31, el]:u64 -000001c1: R2 := R31 + 8 -000001c7: R6 := R31 -000001cc: R0 := 0x10000 -000001d3: R0 := mem[R0 + 0xFD8, el]:u64 -000001d8: R3 := 0 -000001dd: R4 := 0 -000001e2: R30 := 0x630 -000001e5: call @__libc_start_main with return %000001e7 - -000001e7: -000001ea: R30 := 0x634 -000001ed: call @abort with return %00000602 - -00000602: -00000603: call @call_weak_fn with noreturn - -000005e2: sub abort() - - -000001eb: -000004a1: R16 := 0x11000 -000004a8: R17 := mem[R16 + 0x18, el]:u64 -000004ae: R16 := R16 + 0x18 -000004b3: call R17 with noreturn - -000005e3: sub call_weak_fn(call_weak_fn_result) -00000614: call_weak_fn_result :: out u32 = low:32[R0] - -000001ef: -000001f2: R0 := 0x10000 -000001f9: R0 := mem[R0 + 0xFD0, el]:u64 -000001ff: when R0 = 0 goto %000001fd -00000604: goto %000003bd - -000001fd: -00000205: call R30 with noreturn - -000003bd: -000003c0: goto @__gmon_start__ - -000003be: -0000048b: R16 := 0x11000 -00000492: R17 := mem[R16 + 0x10, el]:u64 -00000498: R16 := R16 + 0x10 -0000049d: call R17 with noreturn - -000005e5: sub deregister_tm_clones(deregister_tm_clones_result) -00000615: deregister_tm_clones_result :: out u32 = low:32[R0] - -0000020b: -0000020e: R0 := 0x11000 -00000214: R0 := R0 + 0x30 -00000219: R1 := 0x11000 -0000021f: R1 := R1 + 0x30 -00000225: #1 := ~R0 -0000022a: #2 := R1 + ~R0 -00000230: VF := extend:65[#2 + 1] <> extend:65[R1] + extend:65[#1] + 1 -00000236: CF := pad:65[#2 + 1] <> pad:65[R1] + pad:65[#1] + 1 -0000023a: ZF := #2 + 1 = 0 -0000023e: NF := 63:63[#2 + 1] -00000244: when ZF goto %00000242 -00000605: goto %0000039f - -0000039f: -000003a2: R1 := 0x10000 -000003a9: R1 := mem[R1 + 0xFC0, el]:u64 -000003ae: when R1 = 0 goto %00000242 -00000606: goto %000003b2 - -00000242: -0000024a: call R30 with noreturn - -000003b2: -000003b6: R16 := R1 -000003bb: call R16 with noreturn - -000005e8: sub frame_dummy(frame_dummy_result) -00000616: frame_dummy_result :: out u32 = low:32[R0] - -000002e2: -000002e4: call @register_tm_clones with noreturn - -000005e9: sub main(main_argc, main_argv, main_result) -00000617: main_argc :: in u32 = low:32[R0] -00000618: main_argv :: in out u64 = R1 -00000619: main_result :: out u32 = low:32[R0] - -000002e6: -000002e9: R9 := 0x11000 -000002ee: R0 := 0 -000002f5: mem := mem with [R9 + 0x34, el]:u32 <- 0 -000002fc: R8 := pad:64[mem[R9 + 0x34, el]:u32] -00000302: R8 := pad:64[31:0[R8] + 1] -0000030a: mem := mem with [R9 + 0x34, el]:u32 <- 31:0[R8] -0000030f: R8 := 0x11000 -00000316: R10 := pad:64[mem[R8 + 0x38, el]:u32] -0000031b: R8 := 0x11000 -00000323: mem := mem with [R8 + 0x3C, el]:u32 <- 31:0[R10] -0000032a: mem := mem with [R8 + 0x3C, el]:u32 <- 0 -00000331: R8 := pad:64[mem[R9 + 0x34, el]:u32] -00000337: R8 := pad:64[31:0[R8] + 1] -0000033f: mem := mem with [R9 + 0x34, el]:u32 <- 31:0[R8] -00000344: call R30 with noreturn - -000005ea: sub register_tm_clones(register_tm_clones_result) -0000061a: register_tm_clones_result :: out u32 = low:32[R0] - -0000024c: -0000024f: R0 := 0x11000 -00000255: R0 := R0 + 0x30 -0000025a: R1 := 0x11000 -00000260: R1 := R1 + 0x30 -00000267: R1 := R1 + ~R0 + 1 -0000026d: R2 := 0.63:63[R1] -00000274: R1 := R2 + (R1 ~>> 3) -0000027a: R1 := extend:64[63:1[R1]] -00000280: when R1 = 0 goto %0000027e -00000607: goto %00000381 - -00000381: -00000384: R2 := 0x10000 -0000038b: R2 := mem[R2 + 0xFE0, el]:u64 -00000390: when R2 = 0 goto %0000027e -00000608: goto %00000394 - -0000027e: -00000286: call R30 with noreturn - -00000394: -00000398: R16 := R2 -0000039d: call R16 with noreturn diff --git a/src/test/correct/secret_write/clang/secret_write.expected b/src/test/correct/secret_write/clang/secret_write.expected index acda0db06..6fdfc9ed7 100644 --- a/src/test/correct/secret_write/clang/secret_write.expected +++ b/src/test/correct/secret_write/clang/secret_write.expected @@ -9,16 +9,15 @@ var {:extern} R8: bv64; var {:extern} R9: bv64; var {:extern} mem: [bv64]bv8; const {:extern} $secret_addr: bv64; -axiom ($secret_addr == 69688bv64); +axiom ($secret_addr == 131096bv64); const {:extern} $x_addr: bv64; -axiom ($x_addr == 69692bv64); +axiom ($x_addr == 131100bv64); const {:extern} $z_addr: bv64; -axiom ($z_addr == 69684bv64); +axiom ($z_addr == 131092bv64); function {:extern} L(mem$in: [bv64]bv8, index: bv64) returns (bool) { (if (index == $secret_addr) then false else (if (index == $x_addr) then (bvsmod32(memory_load32_le(mem$in, $z_addr), 2bv32) == 0bv32) else (if (index == $z_addr) then true else false))) } -function {:extern} {:bvbuiltin "bvadd"} bvadd32(bv32, bv32) returns (bv32); function {:extern} {:bvbuiltin "bvadd"} bvadd64(bv64, bv64) returns (bv64); function {:extern} {:bvbuiltin "bvsge"} bvsge32(bv32, bv32) returns (bool); function {:extern} {:bvbuiltin "bvsmod"} bvsmod32(bv32, bv32) returns (bv32); @@ -26,6 +25,10 @@ function {:extern} gamma_load32(gammaMap: [bv64]bool, index: bv64) returns (bool (gammaMap[bvadd64(index, 3bv64)] && (gammaMap[bvadd64(index, 2bv64)] && (gammaMap[bvadd64(index, 1bv64)] && gammaMap[index]))) } +function {:extern} gamma_load64(gammaMap: [bv64]bool, index: bv64) returns (bool) { + (gammaMap[bvadd64(index, 7bv64)] && (gammaMap[bvadd64(index, 6bv64)] && (gammaMap[bvadd64(index, 5bv64)] && (gammaMap[bvadd64(index, 4bv64)] && (gammaMap[bvadd64(index, 3bv64)] && (gammaMap[bvadd64(index, 2bv64)] && (gammaMap[bvadd64(index, 1bv64)] && gammaMap[index]))))))) +} + function {:extern} gamma_store32(gammaMap: [bv64]bool, index: bv64, value: bool) returns ([bv64]bool) { gammaMap[index := value][bvadd64(index, 1bv64) := value][bvadd64(index, 2bv64) := value][bvadd64(index, 3bv64) := value] } @@ -42,17 +45,18 @@ function {:extern} memory_store32_le(memory: [bv64]bv8, index: bv64, value: bv32 memory[index := value[8:0]][bvadd64(index, 1bv64) := value[16:8]][bvadd64(index, 2bv64) := value[24:16]][bvadd64(index, 3bv64) := value[32:24]] } -function {:extern} {:bvbuiltin "zero_extend 32"} zero_extend32_32(bv32) returns (bv64); procedure {:extern} rely(); modifies Gamma_mem, mem; ensures (forall i: bv64 :: (((mem[i] == old(mem[i])) ==> (Gamma_mem[i] == old(Gamma_mem[i]))))); ensures (memory_load32_le(mem, $z_addr) == old(memory_load32_le(mem, $z_addr))); ensures (old(gamma_load32(Gamma_mem, $x_addr)) ==> gamma_load32(Gamma_mem, $x_addr)); - free ensures (memory_load32_le(mem, 1892bv64) == 131073bv32); - free ensures (memory_load64_le(mem, 69064bv64) == 1808bv64); - free ensures (memory_load64_le(mem, 69072bv64) == 1728bv64); - free ensures (memory_load64_le(mem, 69592bv64) == 1812bv64); - free ensures (memory_load64_le(mem, 69672bv64) == 69672bv64); + free ensures (memory_load32_le(mem, 2316bv64) == 131073bv32); + free ensures (memory_load64_le(mem, 130424bv64) == 2256bv64); + free ensures (memory_load64_le(mem, 130432bv64) == 2176bv64); + free ensures (memory_load64_le(mem, 131032bv64) == 131092bv64); + free ensures (memory_load64_le(mem, 131040bv64) == 131100bv64); + free ensures (memory_load64_le(mem, 131056bv64) == 2260bv64); + free ensures (memory_load64_le(mem, 131080bv64) == 131080bv64); procedure {:extern} rely_transitive(); modifies Gamma_mem, mem; @@ -81,95 +85,68 @@ implementation {:extern} guarantee_reflexive() assert bvsge32(memory_load32_le(mem, $z_addr), memory_load32_le(mem, $z_addr)); } -procedure main_1812(); +procedure main(); modifies Gamma_R0, Gamma_R10, Gamma_R8, Gamma_R9, Gamma_mem, R0, R10, R8, R9, mem; requires (gamma_load32(Gamma_mem, $x_addr) == true); requires (gamma_load32(Gamma_mem, $z_addr) == true); requires (gamma_load32(Gamma_mem, $secret_addr) == false); requires (memory_load32_le(mem, $z_addr) == 0bv32); - free requires (memory_load64_le(mem, 69664bv64) == 0bv64); - free requires (memory_load64_le(mem, 69672bv64) == 69672bv64); - free requires (memory_load32_le(mem, 1892bv64) == 131073bv32); - free requires (memory_load64_le(mem, 69064bv64) == 1808bv64); - free requires (memory_load64_le(mem, 69072bv64) == 1728bv64); - free requires (memory_load64_le(mem, 69592bv64) == 1812bv64); - free requires (memory_load64_le(mem, 69672bv64) == 69672bv64); - free ensures (memory_load32_le(mem, 1892bv64) == 131073bv32); - free ensures (memory_load64_le(mem, 69064bv64) == 1808bv64); - free ensures (memory_load64_le(mem, 69072bv64) == 1728bv64); - free ensures (memory_load64_le(mem, 69592bv64) == 1812bv64); - free ensures (memory_load64_le(mem, 69672bv64) == 69672bv64); - -implementation main_1812() + free requires (memory_load64_le(mem, 131072bv64) == 0bv64); + free requires (memory_load64_le(mem, 131080bv64) == 131080bv64); + free requires (memory_load32_le(mem, 2316bv64) == 131073bv32); + free requires (memory_load64_le(mem, 130424bv64) == 2256bv64); + free requires (memory_load64_le(mem, 130432bv64) == 2176bv64); + free requires (memory_load64_le(mem, 131032bv64) == 131092bv64); + free requires (memory_load64_le(mem, 131040bv64) == 131100bv64); + free requires (memory_load64_le(mem, 131056bv64) == 2260bv64); + free requires (memory_load64_le(mem, 131080bv64) == 131080bv64); + free ensures (memory_load32_le(mem, 2316bv64) == 131073bv32); + free ensures (memory_load64_le(mem, 130424bv64) == 2256bv64); + free ensures (memory_load64_le(mem, 130432bv64) == 2176bv64); + free ensures (memory_load64_le(mem, 131032bv64) == 131092bv64); + free ensures (memory_load64_le(mem, 131040bv64) == 131100bv64); + free ensures (memory_load64_le(mem, 131056bv64) == 2260bv64); + free ensures (memory_load64_le(mem, 131080bv64) == 131080bv64); + +implementation main() { - var Gamma_load18: bool; - var Gamma_load19: bool; - var Gamma_load20: bool; + var $load$18: bv64; + var $load$19: bv64; + var Gamma_$load$18: bool; + var Gamma_$load$19: bool; var Gamma_x_old: bool; - var load18: bv32; - var load19: bv32; - var load20: bv32; var z_old: bv32; lmain: assume {:captureState "lmain"} true; - R9, Gamma_R9 := 69632bv64, true; + R8, Gamma_R8 := 126976bv64, true; + R9, Gamma_R9 := 126976bv64, true; R0, Gamma_R0 := 0bv64, true; call rely(); - z_old := memory_load32_le(mem, $z_addr); - Gamma_x_old := (gamma_load32(Gamma_mem, $x_addr) || L(mem, $x_addr)); - assert (L(mem, bvadd64(R9, 52bv64)) ==> true); - mem, Gamma_mem := memory_store32_le(mem, bvadd64(R9, 52bv64), 0bv32), gamma_store32(Gamma_mem, bvadd64(R9, 52bv64), true); - assert ((bvadd64(R9, 52bv64) == $z_addr) ==> (L(mem, $x_addr) ==> Gamma_x_old)); - assert bvsge32(memory_load32_le(mem, $z_addr), z_old); - assume {:captureState "%000002f5"} true; - call rely(); - load18, Gamma_load18 := memory_load32_le(mem, bvadd64(R9, 52bv64)), (gamma_load32(Gamma_mem, bvadd64(R9, 52bv64)) || L(mem, bvadd64(R9, 52bv64))); - R8, Gamma_R8 := zero_extend32_32(load18), Gamma_load18; - R8, Gamma_R8 := zero_extend32_32(bvadd32(R8[32:0], 1bv32)), Gamma_R8; - call rely(); - z_old := memory_load32_le(mem, $z_addr); - Gamma_x_old := (gamma_load32(Gamma_mem, $x_addr) || L(mem, $x_addr)); - assert (L(mem, bvadd64(R9, 52bv64)) ==> Gamma_R8); - mem, Gamma_mem := memory_store32_le(mem, bvadd64(R9, 52bv64), R8[32:0]), gamma_store32(Gamma_mem, bvadd64(R9, 52bv64), Gamma_R8); - assert ((bvadd64(R9, 52bv64) == $z_addr) ==> (L(mem, $x_addr) ==> Gamma_x_old)); - assert bvsge32(memory_load32_le(mem, $z_addr), z_old); - assume {:captureState "%0000030a"} true; - R8, Gamma_R8 := 69632bv64, true; - call rely(); - load19, Gamma_load19 := memory_load32_le(mem, bvadd64(R8, 56bv64)), (gamma_load32(Gamma_mem, bvadd64(R8, 56bv64)) || L(mem, bvadd64(R8, 56bv64))); - R10, Gamma_R10 := zero_extend32_32(load19), Gamma_load19; - R8, Gamma_R8 := 69632bv64, true; + $load$18, Gamma_$load$18 := memory_load64_le(mem, bvadd64(R8, 4064bv64)), (gamma_load64(Gamma_mem, bvadd64(R8, 4064bv64)) || L(mem, bvadd64(R8, 4064bv64))); + R8, Gamma_R8 := $load$18, Gamma_$load$18; call rely(); - z_old := memory_load32_le(mem, $z_addr); - Gamma_x_old := (gamma_load32(Gamma_mem, $x_addr) || L(mem, $x_addr)); - assert (L(mem, bvadd64(R8, 60bv64)) ==> Gamma_R10); - mem, Gamma_mem := memory_store32_le(mem, bvadd64(R8, 60bv64), R10[32:0]), gamma_store32(Gamma_mem, bvadd64(R8, 60bv64), Gamma_R10); - assert ((bvadd64(R8, 60bv64) == $z_addr) ==> (L(mem, $x_addr) ==> Gamma_x_old)); - assert bvsge32(memory_load32_le(mem, $z_addr), z_old); - assume {:captureState "%00000323"} true; + $load$19, Gamma_$load$19 := memory_load64_le(mem, bvadd64(R9, 4056bv64)), (gamma_load64(Gamma_mem, bvadd64(R9, 4056bv64)) || L(mem, bvadd64(R9, 4056bv64))); + R9, Gamma_R9 := $load$19, Gamma_$load$19; + R10, Gamma_R10 := 2bv64, true; call rely(); + assert (L(mem, R8) ==> true); z_old := memory_load32_le(mem, $z_addr); Gamma_x_old := (gamma_load32(Gamma_mem, $x_addr) || L(mem, $x_addr)); - assert (L(mem, bvadd64(R8, 60bv64)) ==> true); - mem, Gamma_mem := memory_store32_le(mem, bvadd64(R8, 60bv64), 0bv32), gamma_store32(Gamma_mem, bvadd64(R8, 60bv64), true); - assert ((bvadd64(R8, 60bv64) == $z_addr) ==> (L(mem, $x_addr) ==> Gamma_x_old)); + mem, Gamma_mem := memory_store32_le(mem, R8, 0bv32), gamma_store32(Gamma_mem, R8, true); + assert ((R8 == $z_addr) ==> (L(mem, $x_addr) ==> Gamma_x_old)); assert bvsge32(memory_load32_le(mem, $z_addr), z_old); - assume {:captureState "%0000032a"} true; - call rely(); - load20, Gamma_load20 := memory_load32_le(mem, bvadd64(R9, 52bv64)), (gamma_load32(Gamma_mem, bvadd64(R9, 52bv64)) || L(mem, bvadd64(R9, 52bv64))); - R8, Gamma_R8 := zero_extend32_32(load20), Gamma_load20; - R8, Gamma_R8 := zero_extend32_32(bvadd32(R8[32:0], 1bv32)), Gamma_R8; + assume {:captureState "%00000294"} true; call rely(); + assert (L(mem, R9) ==> Gamma_R10); z_old := memory_load32_le(mem, $z_addr); Gamma_x_old := (gamma_load32(Gamma_mem, $x_addr) || L(mem, $x_addr)); - assert (L(mem, bvadd64(R9, 52bv64)) ==> Gamma_R8); - mem, Gamma_mem := memory_store32_le(mem, bvadd64(R9, 52bv64), R8[32:0]), gamma_store32(Gamma_mem, bvadd64(R9, 52bv64), Gamma_R8); - assert ((bvadd64(R9, 52bv64) == $z_addr) ==> (L(mem, $x_addr) ==> Gamma_x_old)); + mem, Gamma_mem := memory_store32_le(mem, R9, R10[32:0]), gamma_store32(Gamma_mem, R9, Gamma_R10); + assert ((R9 == $z_addr) ==> (L(mem, $x_addr) ==> Gamma_x_old)); assert bvsge32(memory_load32_le(mem, $z_addr), z_old); - assume {:captureState "%0000033f"} true; - goto main_1812_basil_return; - main_1812_basil_return: - assume {:captureState "main_1812_basil_return"} true; + assume {:captureState "%00000298"} true; + goto main_basil_return; + main_basil_return: + assume {:captureState "main_basil_return"} true; return; } diff --git a/src/test/correct/secret_write/clang/secret_write.gts b/src/test/correct/secret_write/clang/secret_write.gts deleted file mode 100644 index 831325964..000000000 Binary files a/src/test/correct/secret_write/clang/secret_write.gts and /dev/null differ diff --git a/src/test/correct/secret_write/clang/secret_write.md5sum b/src/test/correct/secret_write/clang/secret_write.md5sum new file mode 100644 index 000000000..5d3d2dc4d --- /dev/null +++ b/src/test/correct/secret_write/clang/secret_write.md5sum @@ -0,0 +1,5 @@ +2ed7511db22cffbe227f39ad6fb0f268 correct/secret_write/clang/a.out +eff1b39b7260913edec013021591a651 correct/secret_write/clang/secret_write.adt +f1d855cf4744531ff79bf510ce991f36 correct/secret_write/clang/secret_write.bir +fa904d4895e9029003754e551de16acb correct/secret_write/clang/secret_write.relf +e30984e42e59fcefe0ba154d682946c3 correct/secret_write/clang/secret_write.gts diff --git a/src/test/correct/secret_write/clang/secret_write.relf b/src/test/correct/secret_write/clang/secret_write.relf deleted file mode 100644 index eb760de8a..000000000 --- a/src/test/correct/secret_write/clang/secret_write.relf +++ /dev/null @@ -1,125 +0,0 @@ - -Relocation section '.rela.dyn' at offset 0x460 contains 8 entries: - Offset Info Type Symbol's Value Symbol's Name + Addend -0000000000010dc8 0000000000000403 R_AARCH64_RELATIVE 710 -0000000000010dd0 0000000000000403 R_AARCH64_RELATIVE 6c0 -0000000000010fd8 0000000000000403 R_AARCH64_RELATIVE 714 -0000000000011028 0000000000000403 R_AARCH64_RELATIVE 11028 -0000000000010fc0 0000000400000401 R_AARCH64_GLOB_DAT 0000000000000000 _ITM_deregisterTMCloneTable + 0 -0000000000010fc8 0000000500000401 R_AARCH64_GLOB_DAT 0000000000000000 __cxa_finalize@GLIBC_2.17 + 0 -0000000000010fd0 0000000600000401 R_AARCH64_GLOB_DAT 0000000000000000 __gmon_start__ + 0 -0000000000010fe0 0000000800000401 R_AARCH64_GLOB_DAT 0000000000000000 _ITM_registerTMCloneTable + 0 - -Relocation section '.rela.plt' at offset 0x520 contains 4 entries: - Offset Info Type Symbol's Value Symbol's Name + Addend -0000000000011000 0000000300000402 R_AARCH64_JUMP_SLOT 0000000000000000 __libc_start_main@GLIBC_2.34 + 0 -0000000000011008 0000000500000402 R_AARCH64_JUMP_SLOT 0000000000000000 __cxa_finalize@GLIBC_2.17 + 0 -0000000000011010 0000000600000402 R_AARCH64_JUMP_SLOT 0000000000000000 __gmon_start__ + 0 -0000000000011018 0000000700000402 R_AARCH64_JUMP_SLOT 0000000000000000 abort@GLIBC_2.17 + 0 - -Symbol table '.dynsym' contains 9 entries: - Num: Value Size Type Bind Vis Ndx Name - 0: 0000000000000000 0 NOTYPE LOCAL DEFAULT UND - 1: 0000000000000580 0 SECTION LOCAL DEFAULT 11 .init - 2: 0000000000011020 0 SECTION LOCAL DEFAULT 23 .data - 3: 0000000000000000 0 FUNC GLOBAL DEFAULT UND __libc_start_main@GLIBC_2.34 (2) - 4: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_deregisterTMCloneTable - 5: 0000000000000000 0 FUNC WEAK DEFAULT UND __cxa_finalize@GLIBC_2.17 (3) - 6: 0000000000000000 0 NOTYPE WEAK DEFAULT UND __gmon_start__ - 7: 0000000000000000 0 FUNC GLOBAL DEFAULT UND abort@GLIBC_2.17 (3) - 8: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_registerTMCloneTable - -Symbol table '.symtab' contains 92 entries: - Num: Value Size Type Bind Vis Ndx Name - 0: 0000000000000000 0 NOTYPE LOCAL DEFAULT UND - 1: 0000000000000238 0 SECTION LOCAL DEFAULT 1 .interp - 2: 0000000000000254 0 SECTION LOCAL DEFAULT 2 .note.gnu.build-id - 3: 0000000000000278 0 SECTION LOCAL DEFAULT 3 .note.ABI-tag - 4: 0000000000000298 0 SECTION LOCAL DEFAULT 4 .gnu.hash - 5: 00000000000002b8 0 SECTION LOCAL DEFAULT 5 .dynsym - 6: 0000000000000390 0 SECTION LOCAL DEFAULT 6 .dynstr - 7: 000000000000041e 0 SECTION LOCAL DEFAULT 7 .gnu.version - 8: 0000000000000430 0 SECTION LOCAL DEFAULT 8 .gnu.version_r - 9: 0000000000000460 0 SECTION LOCAL DEFAULT 9 .rela.dyn - 10: 0000000000000520 0 SECTION LOCAL DEFAULT 10 .rela.plt - 11: 0000000000000580 0 SECTION LOCAL DEFAULT 11 .init - 12: 00000000000005a0 0 SECTION LOCAL DEFAULT 12 .plt - 13: 0000000000000600 0 SECTION LOCAL DEFAULT 13 .text - 14: 0000000000000750 0 SECTION LOCAL DEFAULT 14 .fini - 15: 0000000000000764 0 SECTION LOCAL DEFAULT 15 .rodata - 16: 0000000000000768 0 SECTION LOCAL DEFAULT 16 .eh_frame_hdr - 17: 00000000000007a8 0 SECTION LOCAL DEFAULT 17 .eh_frame - 18: 0000000000010dc8 0 SECTION LOCAL DEFAULT 18 .init_array - 19: 0000000000010dd0 0 SECTION LOCAL DEFAULT 19 .fini_array - 20: 0000000000010dd8 0 SECTION LOCAL DEFAULT 20 .dynamic - 21: 0000000000010fb8 0 SECTION LOCAL DEFAULT 21 .got - 22: 0000000000010fe8 0 SECTION LOCAL DEFAULT 22 .got.plt - 23: 0000000000011020 0 SECTION LOCAL DEFAULT 23 .data - 24: 0000000000011030 0 SECTION LOCAL DEFAULT 24 .bss - 25: 0000000000000000 0 SECTION LOCAL DEFAULT 25 .comment - 26: 0000000000000000 0 FILE LOCAL DEFAULT ABS Scrt1.o - 27: 0000000000000278 0 NOTYPE LOCAL DEFAULT 3 $d - 28: 0000000000000278 32 OBJECT LOCAL DEFAULT 3 __abi_tag - 29: 0000000000000600 0 NOTYPE LOCAL DEFAULT 13 $x - 30: 00000000000007bc 0 NOTYPE LOCAL DEFAULT 17 $d - 31: 0000000000000764 0 NOTYPE LOCAL DEFAULT 15 $d - 32: 0000000000000000 0 FILE LOCAL DEFAULT ABS crti.o - 33: 0000000000000634 0 NOTYPE LOCAL DEFAULT 13 $x - 34: 0000000000000634 20 FUNC LOCAL DEFAULT 13 call_weak_fn - 35: 0000000000000580 0 NOTYPE LOCAL DEFAULT 11 $x - 36: 0000000000000750 0 NOTYPE LOCAL DEFAULT 14 $x - 37: 0000000000000000 0 FILE LOCAL DEFAULT ABS crtn.o - 38: 0000000000000590 0 NOTYPE LOCAL DEFAULT 11 $x - 39: 000000000000075c 0 NOTYPE LOCAL DEFAULT 14 $x - 40: 0000000000000000 0 FILE LOCAL DEFAULT ABS crtstuff.c - 41: 0000000000000650 0 NOTYPE LOCAL DEFAULT 13 $x - 42: 0000000000000650 0 FUNC LOCAL DEFAULT 13 deregister_tm_clones - 43: 0000000000000680 0 FUNC LOCAL DEFAULT 13 register_tm_clones - 44: 0000000000011028 0 NOTYPE LOCAL DEFAULT 23 $d - 45: 00000000000006c0 0 FUNC LOCAL DEFAULT 13 __do_global_dtors_aux - 46: 0000000000011030 1 OBJECT LOCAL DEFAULT 24 completed.0 - 47: 0000000000010dd0 0 NOTYPE LOCAL DEFAULT 19 $d - 48: 0000000000010dd0 0 OBJECT LOCAL DEFAULT 19 __do_global_dtors_aux_fini_array_entry - 49: 0000000000000710 0 FUNC LOCAL DEFAULT 13 frame_dummy - 50: 0000000000010dc8 0 NOTYPE LOCAL DEFAULT 18 $d - 51: 0000000000010dc8 0 OBJECT LOCAL DEFAULT 18 __frame_dummy_init_array_entry - 52: 00000000000007d0 0 NOTYPE LOCAL DEFAULT 17 $d - 53: 0000000000011030 0 NOTYPE LOCAL DEFAULT 24 $d - 54: 0000000000000000 0 FILE LOCAL DEFAULT ABS secret_write.c - 55: 0000000000000714 0 NOTYPE LOCAL DEFAULT 13 $x.0 - 56: 0000000000011034 0 NOTYPE LOCAL DEFAULT 24 $d.1 - 57: 000000000000002a 0 NOTYPE LOCAL DEFAULT 25 $d.2 - 58: 0000000000000830 0 NOTYPE LOCAL DEFAULT 17 $d.3 - 59: 0000000000000000 0 FILE LOCAL DEFAULT ABS crtstuff.c - 60: 0000000000000858 0 NOTYPE LOCAL DEFAULT 17 $d - 61: 0000000000000858 0 OBJECT LOCAL DEFAULT 17 __FRAME_END__ - 62: 0000000000000000 0 FILE LOCAL DEFAULT ABS - 63: 0000000000010dd8 0 OBJECT LOCAL DEFAULT ABS _DYNAMIC - 64: 0000000000000768 0 NOTYPE LOCAL DEFAULT 16 __GNU_EH_FRAME_HDR - 65: 0000000000010fb8 0 OBJECT LOCAL DEFAULT ABS _GLOBAL_OFFSET_TABLE_ - 66: 00000000000005a0 0 NOTYPE LOCAL DEFAULT 12 $x - 67: 0000000000000000 0 FUNC GLOBAL DEFAULT UND __libc_start_main@GLIBC_2.34 - 68: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_deregisterTMCloneTable - 69: 0000000000011020 0 NOTYPE WEAK DEFAULT 23 data_start - 70: 0000000000011030 0 NOTYPE GLOBAL DEFAULT 24 __bss_start__ - 71: 0000000000000000 0 FUNC WEAK DEFAULT UND __cxa_finalize@GLIBC_2.17 - 72: 0000000000011040 0 NOTYPE GLOBAL DEFAULT 24 _bss_end__ - 73: 0000000000011030 0 NOTYPE GLOBAL DEFAULT 23 _edata - 74: 0000000000011034 4 OBJECT GLOBAL DEFAULT 24 z - 75: 000000000001103c 4 OBJECT GLOBAL DEFAULT 24 x - 76: 0000000000000750 0 FUNC GLOBAL HIDDEN 14 _fini - 77: 0000000000011040 0 NOTYPE GLOBAL DEFAULT 24 __bss_end__ - 78: 0000000000011020 0 NOTYPE GLOBAL DEFAULT 23 __data_start - 79: 0000000000000000 0 NOTYPE WEAK DEFAULT UND __gmon_start__ - 80: 0000000000011028 0 OBJECT GLOBAL HIDDEN 23 __dso_handle - 81: 0000000000000000 0 FUNC GLOBAL DEFAULT UND abort@GLIBC_2.17 - 82: 0000000000000764 4 OBJECT GLOBAL DEFAULT 15 _IO_stdin_used - 83: 0000000000011038 4 OBJECT GLOBAL DEFAULT 24 secret - 84: 0000000000011040 0 NOTYPE GLOBAL DEFAULT 24 _end - 85: 0000000000000600 52 FUNC GLOBAL DEFAULT 13 _start - 86: 0000000000011040 0 NOTYPE GLOBAL DEFAULT 24 __end__ - 87: 0000000000011030 0 NOTYPE GLOBAL DEFAULT 24 __bss_start - 88: 0000000000000714 60 FUNC GLOBAL DEFAULT 13 main - 89: 0000000000011030 0 OBJECT GLOBAL HIDDEN 23 __TMC_END__ - 90: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_registerTMCloneTable - 91: 0000000000000580 0 FUNC GLOBAL HIDDEN 11 _init diff --git a/src/test/correct/secret_write/clang/secret_write_gtirb.expected b/src/test/correct/secret_write/clang/secret_write_gtirb.expected index f69cd4ef5..9adb05fb7 100644 --- a/src/test/correct/secret_write/clang/secret_write_gtirb.expected +++ b/src/test/correct/secret_write/clang/secret_write_gtirb.expected @@ -9,16 +9,15 @@ var {:extern} R8: bv64; var {:extern} R9: bv64; var {:extern} mem: [bv64]bv8; const {:extern} $secret_addr: bv64; -axiom ($secret_addr == 69688bv64); +axiom ($secret_addr == 131096bv64); const {:extern} $x_addr: bv64; -axiom ($x_addr == 69692bv64); +axiom ($x_addr == 131100bv64); const {:extern} $z_addr: bv64; -axiom ($z_addr == 69684bv64); +axiom ($z_addr == 131092bv64); function {:extern} L(mem$in: [bv64]bv8, index: bv64) returns (bool) { (if (index == $secret_addr) then false else (if (index == $x_addr) then (bvsmod32(memory_load32_le(mem$in, $z_addr), 2bv32) == 0bv32) else (if (index == $z_addr) then true else false))) } -function {:extern} {:bvbuiltin "bvadd"} bvadd32(bv32, bv32) returns (bv32); function {:extern} {:bvbuiltin "bvadd"} bvadd64(bv64, bv64) returns (bv64); function {:extern} {:bvbuiltin "bvsge"} bvsge32(bv32, bv32) returns (bool); function {:extern} {:bvbuiltin "bvsmod"} bvsmod32(bv32, bv32) returns (bv32); @@ -26,6 +25,10 @@ function {:extern} gamma_load32(gammaMap: [bv64]bool, index: bv64) returns (bool (gammaMap[bvadd64(index, 3bv64)] && (gammaMap[bvadd64(index, 2bv64)] && (gammaMap[bvadd64(index, 1bv64)] && gammaMap[index]))) } +function {:extern} gamma_load64(gammaMap: [bv64]bool, index: bv64) returns (bool) { + (gammaMap[bvadd64(index, 7bv64)] && (gammaMap[bvadd64(index, 6bv64)] && (gammaMap[bvadd64(index, 5bv64)] && (gammaMap[bvadd64(index, 4bv64)] && (gammaMap[bvadd64(index, 3bv64)] && (gammaMap[bvadd64(index, 2bv64)] && (gammaMap[bvadd64(index, 1bv64)] && gammaMap[index]))))))) +} + function {:extern} gamma_store32(gammaMap: [bv64]bool, index: bv64, value: bool) returns ([bv64]bool) { gammaMap[index := value][bvadd64(index, 1bv64) := value][bvadd64(index, 2bv64) := value][bvadd64(index, 3bv64) := value] } @@ -42,17 +45,18 @@ function {:extern} memory_store32_le(memory: [bv64]bv8, index: bv64, value: bv32 memory[index := value[8:0]][bvadd64(index, 1bv64) := value[16:8]][bvadd64(index, 2bv64) := value[24:16]][bvadd64(index, 3bv64) := value[32:24]] } -function {:extern} {:bvbuiltin "zero_extend 32"} zero_extend32_32(bv32) returns (bv64); procedure {:extern} rely(); modifies Gamma_mem, mem; ensures (forall i: bv64 :: (((mem[i] == old(mem[i])) ==> (Gamma_mem[i] == old(Gamma_mem[i]))))); ensures (memory_load32_le(mem, $z_addr) == old(memory_load32_le(mem, $z_addr))); ensures (old(gamma_load32(Gamma_mem, $x_addr)) ==> gamma_load32(Gamma_mem, $x_addr)); - free ensures (memory_load32_le(mem, 1892bv64) == 131073bv32); - free ensures (memory_load64_le(mem, 69064bv64) == 1808bv64); - free ensures (memory_load64_le(mem, 69072bv64) == 1728bv64); - free ensures (memory_load64_le(mem, 69592bv64) == 1812bv64); - free ensures (memory_load64_le(mem, 69672bv64) == 69672bv64); + free ensures (memory_load32_le(mem, 2316bv64) == 131073bv32); + free ensures (memory_load64_le(mem, 130424bv64) == 2256bv64); + free ensures (memory_load64_le(mem, 130432bv64) == 2176bv64); + free ensures (memory_load64_le(mem, 131032bv64) == 131092bv64); + free ensures (memory_load64_le(mem, 131040bv64) == 131100bv64); + free ensures (memory_load64_le(mem, 131056bv64) == 2260bv64); + free ensures (memory_load64_le(mem, 131080bv64) == 131080bv64); procedure {:extern} rely_transitive(); modifies Gamma_mem, mem; @@ -81,95 +85,68 @@ implementation {:extern} guarantee_reflexive() assert bvsge32(memory_load32_le(mem, $z_addr), memory_load32_le(mem, $z_addr)); } -procedure main_1812(); +procedure main(); modifies Gamma_R0, Gamma_R10, Gamma_R8, Gamma_R9, Gamma_mem, R0, R10, R8, R9, mem; requires (gamma_load32(Gamma_mem, $x_addr) == true); requires (gamma_load32(Gamma_mem, $z_addr) == true); requires (gamma_load32(Gamma_mem, $secret_addr) == false); requires (memory_load32_le(mem, $z_addr) == 0bv32); - free requires (memory_load64_le(mem, 69664bv64) == 0bv64); - free requires (memory_load64_le(mem, 69672bv64) == 69672bv64); - free requires (memory_load32_le(mem, 1892bv64) == 131073bv32); - free requires (memory_load64_le(mem, 69064bv64) == 1808bv64); - free requires (memory_load64_le(mem, 69072bv64) == 1728bv64); - free requires (memory_load64_le(mem, 69592bv64) == 1812bv64); - free requires (memory_load64_le(mem, 69672bv64) == 69672bv64); - free ensures (memory_load32_le(mem, 1892bv64) == 131073bv32); - free ensures (memory_load64_le(mem, 69064bv64) == 1808bv64); - free ensures (memory_load64_le(mem, 69072bv64) == 1728bv64); - free ensures (memory_load64_le(mem, 69592bv64) == 1812bv64); - free ensures (memory_load64_le(mem, 69672bv64) == 69672bv64); - -implementation main_1812() + free requires (memory_load64_le(mem, 131072bv64) == 0bv64); + free requires (memory_load64_le(mem, 131080bv64) == 131080bv64); + free requires (memory_load32_le(mem, 2316bv64) == 131073bv32); + free requires (memory_load64_le(mem, 130424bv64) == 2256bv64); + free requires (memory_load64_le(mem, 130432bv64) == 2176bv64); + free requires (memory_load64_le(mem, 131032bv64) == 131092bv64); + free requires (memory_load64_le(mem, 131040bv64) == 131100bv64); + free requires (memory_load64_le(mem, 131056bv64) == 2260bv64); + free requires (memory_load64_le(mem, 131080bv64) == 131080bv64); + free ensures (memory_load32_le(mem, 2316bv64) == 131073bv32); + free ensures (memory_load64_le(mem, 130424bv64) == 2256bv64); + free ensures (memory_load64_le(mem, 130432bv64) == 2176bv64); + free ensures (memory_load64_le(mem, 131032bv64) == 131092bv64); + free ensures (memory_load64_le(mem, 131040bv64) == 131100bv64); + free ensures (memory_load64_le(mem, 131056bv64) == 2260bv64); + free ensures (memory_load64_le(mem, 131080bv64) == 131080bv64); + +implementation main() { - var Gamma_load1: bool; - var Gamma_load2: bool; - var Gamma_load3: bool; + var $load6: bv64; + var $load7: bv64; + var Gamma_$load6: bool; + var Gamma_$load7: bool; var Gamma_x_old: bool; - var load1: bv32; - var load2: bv32; - var load3: bv32; var z_old: bv32; - main_1812__0__xS~orUUNTR22OV8RB7tSjw: - assume {:captureState "main_1812__0__xS~orUUNTR22OV8RB7tSjw"} true; - R9, Gamma_R9 := 69632bv64, true; + $main$__0__$lwyID0MJQb6vgyjzPFtz8Q: + assume {:captureState "$main$__0__$lwyID0MJQb6vgyjzPFtz8Q"} true; + R8, Gamma_R8 := 126976bv64, true; + R9, Gamma_R9 := 126976bv64, true; R0, Gamma_R0 := 0bv64, true; call rely(); - z_old := memory_load32_le(mem, $z_addr); - Gamma_x_old := (gamma_load32(Gamma_mem, $x_addr) || L(mem, $x_addr)); - assert (L(mem, bvadd64(R9, 52bv64)) ==> true); - mem, Gamma_mem := memory_store32_le(mem, bvadd64(R9, 52bv64), 0bv32), gamma_store32(Gamma_mem, bvadd64(R9, 52bv64), true); - assert ((bvadd64(R9, 52bv64) == $z_addr) ==> (L(mem, $x_addr) ==> Gamma_x_old)); - assert bvsge32(memory_load32_le(mem, $z_addr), z_old); - assume {:captureState "1820_0"} true; - call rely(); - load1, Gamma_load1 := memory_load32_le(mem, bvadd64(R9, 52bv64)), (gamma_load32(Gamma_mem, bvadd64(R9, 52bv64)) || L(mem, bvadd64(R9, 52bv64))); - R8, Gamma_R8 := zero_extend32_32(load1), Gamma_load1; - R8, Gamma_R8 := zero_extend32_32(bvadd32(R8[32:0], 1bv32)), Gamma_R8; - call rely(); - z_old := memory_load32_le(mem, $z_addr); - Gamma_x_old := (gamma_load32(Gamma_mem, $x_addr) || L(mem, $x_addr)); - assert (L(mem, bvadd64(R9, 52bv64)) ==> Gamma_R8); - mem, Gamma_mem := memory_store32_le(mem, bvadd64(R9, 52bv64), R8[32:0]), gamma_store32(Gamma_mem, bvadd64(R9, 52bv64), Gamma_R8); - assert ((bvadd64(R9, 52bv64) == $z_addr) ==> (L(mem, $x_addr) ==> Gamma_x_old)); - assert bvsge32(memory_load32_le(mem, $z_addr), z_old); - assume {:captureState "1832_0"} true; - R8, Gamma_R8 := 69632bv64, true; - call rely(); - load2, Gamma_load2 := memory_load32_le(mem, bvadd64(R8, 56bv64)), (gamma_load32(Gamma_mem, bvadd64(R8, 56bv64)) || L(mem, bvadd64(R8, 56bv64))); - R10, Gamma_R10 := zero_extend32_32(load2), Gamma_load2; - R8, Gamma_R8 := 69632bv64, true; + $load6, Gamma_$load6 := memory_load64_le(mem, bvadd64(R8, 4064bv64)), (gamma_load64(Gamma_mem, bvadd64(R8, 4064bv64)) || L(mem, bvadd64(R8, 4064bv64))); + R8, Gamma_R8 := $load6, Gamma_$load6; call rely(); - z_old := memory_load32_le(mem, $z_addr); - Gamma_x_old := (gamma_load32(Gamma_mem, $x_addr) || L(mem, $x_addr)); - assert (L(mem, bvadd64(R8, 60bv64)) ==> Gamma_R10); - mem, Gamma_mem := memory_store32_le(mem, bvadd64(R8, 60bv64), R10[32:0]), gamma_store32(Gamma_mem, bvadd64(R8, 60bv64), Gamma_R10); - assert ((bvadd64(R8, 60bv64) == $z_addr) ==> (L(mem, $x_addr) ==> Gamma_x_old)); - assert bvsge32(memory_load32_le(mem, $z_addr), z_old); - assume {:captureState "1848_0"} true; + $load7, Gamma_$load7 := memory_load64_le(mem, bvadd64(R9, 4056bv64)), (gamma_load64(Gamma_mem, bvadd64(R9, 4056bv64)) || L(mem, bvadd64(R9, 4056bv64))); + R9, Gamma_R9 := $load7, Gamma_$load7; + R10, Gamma_R10 := 2bv64, true; call rely(); + assert (L(mem, R8) ==> true); z_old := memory_load32_le(mem, $z_addr); Gamma_x_old := (gamma_load32(Gamma_mem, $x_addr) || L(mem, $x_addr)); - assert (L(mem, bvadd64(R8, 60bv64)) ==> true); - mem, Gamma_mem := memory_store32_le(mem, bvadd64(R8, 60bv64), 0bv32), gamma_store32(Gamma_mem, bvadd64(R8, 60bv64), true); - assert ((bvadd64(R8, 60bv64) == $z_addr) ==> (L(mem, $x_addr) ==> Gamma_x_old)); + mem, Gamma_mem := memory_store32_le(mem, R8, 0bv32), gamma_store32(Gamma_mem, R8, true); + assert ((R8 == $z_addr) ==> (L(mem, $x_addr) ==> Gamma_x_old)); assert bvsge32(memory_load32_le(mem, $z_addr), z_old); - assume {:captureState "1852_0"} true; - call rely(); - load3, Gamma_load3 := memory_load32_le(mem, bvadd64(R9, 52bv64)), (gamma_load32(Gamma_mem, bvadd64(R9, 52bv64)) || L(mem, bvadd64(R9, 52bv64))); - R8, Gamma_R8 := zero_extend32_32(load3), Gamma_load3; - R8, Gamma_R8 := zero_extend32_32(bvadd32(R8[32:0], 1bv32)), Gamma_R8; + assume {:captureState "2284$0"} true; call rely(); + assert (L(mem, R9) ==> Gamma_R10); z_old := memory_load32_le(mem, $z_addr); Gamma_x_old := (gamma_load32(Gamma_mem, $x_addr) || L(mem, $x_addr)); - assert (L(mem, bvadd64(R9, 52bv64)) ==> Gamma_R8); - mem, Gamma_mem := memory_store32_le(mem, bvadd64(R9, 52bv64), R8[32:0]), gamma_store32(Gamma_mem, bvadd64(R9, 52bv64), Gamma_R8); - assert ((bvadd64(R9, 52bv64) == $z_addr) ==> (L(mem, $x_addr) ==> Gamma_x_old)); + mem, Gamma_mem := memory_store32_le(mem, R9, R10[32:0]), gamma_store32(Gamma_mem, R9, Gamma_R10); + assert ((R9 == $z_addr) ==> (L(mem, $x_addr) ==> Gamma_x_old)); assert bvsge32(memory_load32_le(mem, $z_addr), z_old); - assume {:captureState "1864_0"} true; - goto main_1812_basil_return; - main_1812_basil_return: - assume {:captureState "main_1812_basil_return"} true; + assume {:captureState "2288$0"} true; + goto main_basil_return; + main_basil_return: + assume {:captureState "main_basil_return"} true; return; } diff --git a/src/test/correct/secret_write/clang_O2/secret_write.adt b/src/test/correct/secret_write/clang_O2/secret_write.adt deleted file mode 100644 index 5efb3d2ed..000000000 --- a/src/test/correct/secret_write/clang_O2/secret_write.adt +++ /dev/null @@ -1,497 +0,0 @@ -Project(Attrs([Attr("filename","\"clang_O2/secret_write.out\""), -Attr("image-specification","(declare abi (name str))\n(declare arch (name str))\n(declare base-address (addr int))\n(declare bias (off int))\n(declare bits (size int))\n(declare code-region (addr int) (size int) (off int))\n(declare code-start (addr int))\n(declare entry-point (addr int))\n(declare external-reference (addr int) (name str))\n(declare format (name str))\n(declare is-executable (flag bool))\n(declare is-little-endian (flag bool))\n(declare llvm:base-address (addr int))\n(declare llvm:code-entry (name str) (off int) (size int))\n(declare llvm:coff-import-library (name str))\n(declare llvm:coff-virtual-section-header (name str) (addr int) (size int))\n(declare llvm:elf-program-header (name str) (off int) (size int))\n(declare llvm:elf-program-header-flags (name str) (ld bool) (r bool) \n (w bool) (x bool))\n(declare llvm:elf-virtual-program-header (name str) (addr int) (size int))\n(declare llvm:entry-point (addr int))\n(declare llvm:macho-symbol (name str) (value int))\n(declare llvm:name-reference (at int) (name str))\n(declare llvm:relocation (at int) (addr int))\n(declare llvm:section-entry (name str) (addr int) (size int) (off int))\n(declare llvm:section-flags (name str) (r bool) (w bool) (x bool))\n(declare llvm:segment-command (name str) (off int) (size int))\n(declare llvm:segment-command-flags (name str) (r bool) (w bool) (x bool))\n(declare llvm:symbol-entry (name str) (addr int) (size int) (off int)\n (value int))\n(declare llvm:virtual-segment-command (name str) (addr int) (size int))\n(declare mapped (addr int) (size int) (off int))\n(declare named-region (addr int) (size int) (name str))\n(declare named-symbol (addr int) (name str))\n(declare require (name str))\n(declare section (addr int) (size int))\n(declare segment (addr int) (size int) (r bool) (w bool) (x bool))\n(declare subarch (name str))\n(declare symbol-chunk (addr int) (size int) (root int))\n(declare symbol-value (addr int) (value int))\n(declare system (name str))\n(declare vendor (name str))\n\n(abi unknown)\n(arch aarch64)\n(base-address 0)\n(bias 0)\n(bits 64)\n(code-region 1840 20 1840)\n(code-region 1536 304 1536)\n(code-region 1440 96 1440)\n(code-region 1408 24 1408)\n(code-start 1588)\n(code-start 1536)\n(code-start 1812)\n(entry-point 1536)\n(external-reference 69568 _ITM_deregisterTMCloneTable)\n(external-reference 69576 __cxa_finalize)\n(external-reference 69584 __gmon_start__)\n(external-reference 69600 _ITM_registerTMCloneTable)\n(external-reference 69632 __libc_start_main)\n(external-reference 69640 __cxa_finalize)\n(external-reference 69648 __gmon_start__)\n(external-reference 69656 abort)\n(format elf)\n(is-executable true)\n(is-little-endian true)\n(llvm:base-address 0)\n(llvm:code-entry abort 0 0)\n(llvm:code-entry __cxa_finalize 0 0)\n(llvm:code-entry __libc_start_main 0 0)\n(llvm:code-entry _init 1408 0)\n(llvm:code-entry main 1812 28)\n(llvm:code-entry _start 1536 52)\n(llvm:code-entry abort@GLIBC_2.17 0 0)\n(llvm:code-entry _fini 1840 0)\n(llvm:code-entry __cxa_finalize@GLIBC_2.17 0 0)\n(llvm:code-entry __libc_start_main@GLIBC_2.34 0 0)\n(llvm:code-entry frame_dummy 1808 0)\n(llvm:code-entry __do_global_dtors_aux 1728 0)\n(llvm:code-entry register_tm_clones 1664 0)\n(llvm:code-entry deregister_tm_clones 1616 0)\n(llvm:code-entry call_weak_fn 1588 20)\n(llvm:code-entry .fini 1840 20)\n(llvm:code-entry .text 1536 304)\n(llvm:code-entry .plt 1440 96)\n(llvm:code-entry .init 1408 24)\n(llvm:elf-program-header 08 3528 568)\n(llvm:elf-program-header 07 0 0)\n(llvm:elf-program-header 06 1864 60)\n(llvm:elf-program-header 05 596 68)\n(llvm:elf-program-header 04 3544 480)\n(llvm:elf-program-header 03 3528 616)\n(llvm:elf-program-header 02 0 2108)\n(llvm:elf-program-header 01 568 27)\n(llvm:elf-program-header 00 64 504)\n(llvm:elf-program-header-flags 08 false true false false)\n(llvm:elf-program-header-flags 07 false true true false)\n(llvm:elf-program-header-flags 06 false true false false)\n(llvm:elf-program-header-flags 05 false true false false)\n(llvm:elf-program-header-flags 04 false true true false)\n(llvm:elf-program-header-flags 03 true true true false)\n(llvm:elf-program-header-flags 02 true true false true)\n(llvm:elf-program-header-flags 01 false true false false)\n(llvm:elf-program-header-flags 00 false true false false)\n(llvm:elf-virtual-program-header 08 69064 568)\n(llvm:elf-virtual-program-header 07 0 0)\n(llvm:elf-virtual-program-header 06 1864 60)\n(llvm:elf-virtual-program-header 05 596 68)\n(llvm:elf-virtual-program-header 04 69080 480)\n(llvm:elf-virtual-program-header 03 69064 632)\n(llvm:elf-virtual-program-header 02 0 2108)\n(llvm:elf-virtual-program-header 01 568 27)\n(llvm:elf-virtual-program-header 00 64 504)\n(llvm:entry-point 1536)\n(llvm:name-reference 69656 abort)\n(llvm:name-reference 69648 __gmon_start__)\n(llvm:name-reference 69640 __cxa_finalize)\n(llvm:name-reference 69632 __libc_start_main)\n(llvm:name-reference 69600 _ITM_registerTMCloneTable)\n(llvm:name-reference 69584 __gmon_start__)\n(llvm:name-reference 69576 __cxa_finalize)\n(llvm:name-reference 69568 _ITM_deregisterTMCloneTable)\n(llvm:section-entry .shstrtab 0 259 7001)\n(llvm:section-entry .strtab 0 577 6424)\n(llvm:section-entry .symtab 0 2208 4216)\n(llvm:section-entry .comment 0 71 4144)\n(llvm:section-entry .bss 69680 16 4144)\n(llvm:section-entry .data 69664 16 4128)\n(llvm:section-entry .got.plt 69608 56 4072)\n(llvm:section-entry .got 69560 48 4024)\n(llvm:section-entry .dynamic 69080 480 3544)\n(llvm:section-entry .fini_array 69072 8 3536)\n(llvm:section-entry .init_array 69064 8 3528)\n(llvm:section-entry .eh_frame 1928 180 1928)\n(llvm:section-entry .eh_frame_hdr 1864 60 1864)\n(llvm:section-entry .rodata 1860 4 1860)\n(llvm:section-entry .fini 1840 20 1840)\n(llvm:section-entry .text 1536 304 1536)\n(llvm:section-entry .plt 1440 96 1440)\n(llvm:section-entry .init 1408 24 1408)\n(llvm:section-entry .rela.plt 1312 96 1312)\n(llvm:section-entry .rela.dyn 1120 192 1120)\n(llvm:section-entry .gnu.version_r 1072 48 1072)\n(llvm:section-entry .gnu.version 1054 18 1054)\n(llvm:section-entry .dynstr 912 141 912)\n(llvm:section-entry .dynsym 696 216 696)\n(llvm:section-entry .gnu.hash 664 28 664)\n(llvm:section-entry .note.ABI-tag 632 32 632)\n(llvm:section-entry .note.gnu.build-id 596 36 596)\n(llvm:section-entry .interp 568 27 568)\n(llvm:section-flags .shstrtab true false false)\n(llvm:section-flags .strtab true false false)\n(llvm:section-flags .symtab true false false)\n(llvm:section-flags .comment true false false)\n(llvm:section-flags .bss true true false)\n(llvm:section-flags .data true true false)\n(llvm:section-flags .got.plt true true false)\n(llvm:section-flags .got true true false)\n(llvm:section-flags .dynamic true true false)\n(llvm:section-flags .fini_array true true false)\n(llvm:section-flags .init_array true true false)\n(llvm:section-flags .eh_frame true false false)\n(llvm:section-flags .eh_frame_hdr true false false)\n(llvm:section-flags .rodata true false false)\n(llvm:section-flags .fini true false true)\n(llvm:section-flags .text true false true)\n(llvm:section-flags .plt true false true)\n(llvm:section-flags .init true false true)\n(llvm:section-flags .rela.plt true false false)\n(llvm:section-flags .rela.dyn true false false)\n(llvm:section-flags .gnu.version_r true false false)\n(llvm:section-flags .gnu.version true false false)\n(llvm:section-flags .dynstr true false false)\n(llvm:section-flags .dynsym true false false)\n(llvm:section-flags .gnu.hash true false false)\n(llvm:section-flags .note.ABI-tag true false false)\n(llvm:section-flags .note.gnu.build-id true false false)\n(llvm:section-flags .interp true false false)\n(llvm:symbol-entry abort 0 0 0 0)\n(llvm:symbol-entry __cxa_finalize 0 0 0 0)\n(llvm:symbol-entry __libc_start_main 0 0 0 0)\n(llvm:symbol-entry _init 1408 0 1408 1408)\n(llvm:symbol-entry main 1812 28 1812 1812)\n(llvm:symbol-entry _start 1536 52 1536 1536)\n(llvm:symbol-entry abort@GLIBC_2.17 0 0 0 0)\n(llvm:symbol-entry _fini 1840 0 1840 1840)\n(llvm:symbol-entry __cxa_finalize@GLIBC_2.17 0 0 0 0)\n(llvm:symbol-entry __libc_start_main@GLIBC_2.34 0 0 0 0)\n(llvm:symbol-entry frame_dummy 1808 0 1808 1808)\n(llvm:symbol-entry __do_global_dtors_aux 1728 0 1728 1728)\n(llvm:symbol-entry register_tm_clones 1664 0 1664 1664)\n(llvm:symbol-entry deregister_tm_clones 1616 0 1616 1616)\n(llvm:symbol-entry call_weak_fn 1588 20 1588 1588)\n(mapped 0 2108 0)\n(mapped 69064 616 3528)\n(named-region 0 2108 02)\n(named-region 69064 632 03)\n(named-region 568 27 .interp)\n(named-region 596 36 .note.gnu.build-id)\n(named-region 632 32 .note.ABI-tag)\n(named-region 664 28 .gnu.hash)\n(named-region 696 216 .dynsym)\n(named-region 912 141 .dynstr)\n(named-region 1054 18 .gnu.version)\n(named-region 1072 48 .gnu.version_r)\n(named-region 1120 192 .rela.dyn)\n(named-region 1312 96 .rela.plt)\n(named-region 1408 24 .init)\n(named-region 1440 96 .plt)\n(named-region 1536 304 .text)\n(named-region 1840 20 .fini)\n(named-region 1860 4 .rodata)\n(named-region 1864 60 .eh_frame_hdr)\n(named-region 1928 180 .eh_frame)\n(named-region 69064 8 .init_array)\n(named-region 69072 8 .fini_array)\n(named-region 69080 480 .dynamic)\n(named-region 69560 48 .got)\n(named-region 69608 56 .got.plt)\n(named-region 69664 16 .data)\n(named-region 69680 16 .bss)\n(named-region 0 71 .comment)\n(named-region 0 2208 .symtab)\n(named-region 0 577 .strtab)\n(named-region 0 259 .shstrtab)\n(named-symbol 1588 call_weak_fn)\n(named-symbol 1616 deregister_tm_clones)\n(named-symbol 1664 register_tm_clones)\n(named-symbol 1728 __do_global_dtors_aux)\n(named-symbol 1808 frame_dummy)\n(named-symbol 0 __libc_start_main@GLIBC_2.34)\n(named-symbol 0 __cxa_finalize@GLIBC_2.17)\n(named-symbol 1840 _fini)\n(named-symbol 0 abort@GLIBC_2.17)\n(named-symbol 1536 _start)\n(named-symbol 1812 main)\n(named-symbol 1408 _init)\n(named-symbol 0 __libc_start_main)\n(named-symbol 0 __cxa_finalize)\n(named-symbol 0 abort)\n(require libc.so.6)\n(section 568 27)\n(section 596 36)\n(section 632 32)\n(section 664 28)\n(section 696 216)\n(section 912 141)\n(section 1054 18)\n(section 1072 48)\n(section 1120 192)\n(section 1312 96)\n(section 1408 24)\n(section 1440 96)\n(section 1536 304)\n(section 1840 20)\n(section 1860 4)\n(section 1864 60)\n(section 1928 180)\n(section 69064 8)\n(section 69072 8)\n(section 69080 480)\n(section 69560 48)\n(section 69608 56)\n(section 69664 16)\n(section 69680 16)\n(section 0 71)\n(section 0 2208)\n(section 0 577)\n(section 0 259)\n(segment 0 2108 true false true)\n(segment 69064 632 true true false)\n(subarch v8)\n(symbol-chunk 1588 20 1588)\n(symbol-chunk 1536 52 1536)\n(symbol-chunk 1812 28 1812)\n(symbol-value 1588 1588)\n(symbol-value 1616 1616)\n(symbol-value 1664 1664)\n(symbol-value 1728 1728)\n(symbol-value 1808 1808)\n(symbol-value 1840 1840)\n(symbol-value 1536 1536)\n(symbol-value 1812 1812)\n(symbol-value 1408 1408)\n(symbol-value 0 0)\n(system \"\")\n(vendor \"\")\n"), -Attr("abi-name","\"aarch64-linux-gnu-elf\"")]), -Sections([Section(".shstrtab", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x00\x06\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x60\x1c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x38\x00\x09\x00\x40\x00\x1d\x00\x1c\x00\x06\x00\x00\x00\x04\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x04\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x3c\x08\x00\x00\x00\x00\x00\x00\x3c\x08\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x01\x00\x00\x00\x06\x00\x00\x00\xc8\x0d\x00\x00\x00\x00\x00\x00\xc8\x0d\x01\x00\x00\x00\x00\x00\xc8\x0d\x01"), -Section(".strtab", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x00\x06\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x60\x1c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x38\x00\x09\x00\x40\x00\x1d\x00\x1c\x00\x06\x00\x00\x00\x04\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x04\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x3c\x08\x00\x00\x00\x00\x00\x00\x3c\x08\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x01\x00\x00\x00\x06\x00\x00\x00\xc8\x0d\x00\x00\x00\x00\x00\x00\xc8\x0d\x01\x00\x00\x00\x00\x00\xc8\x0d\x01\x00\x00\x00\x00\x00\x68\x02\x00\x00\x00\x00\x00\x00\x78\x02\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x02\x00\x00\x00\x06\x00\x00\x00\xd8\x0d\x00\x00\x00\x00\x00\x00\xd8\x0d\x01\x00\x00\x00\x00\x00\xd8\x0d\x01\x00\x00\x00\x00\x00\xe0\x01\x00\x00\x00\x00\x00\x00\xe0\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x04\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x50\xe5\x74\x64\x04\x00\x00\x00\x48\x07\x00\x00\x00\x00\x00\x00\x48\x07\x00\x00\x00\x00\x00\x00\x48\x07\x00\x00\x00\x00\x00\x00\x3c\x00\x00\x00\x00\x00\x00\x00\x3c\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x51\xe5\x74\x64\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x52\xe5\x74\x64\x04\x00\x00\x00\xc8\x0d\x00\x00\x00\x00\x00\x00\xc8\x0d\x01\x00\x00\x00\x00\x00\xc8\x0d\x01\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x2f\x6c\x69\x62\x2f\x6c\x64\x2d\x6c"), -Section(".comment", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x00\x06\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x60\x1c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x38\x00\x09\x00\x40\x00\x1d\x00\x1c\x00\x06\x00\x00\x00\x04\x00\x00"), -Section(".interp", 0x238, "\x2f\x6c\x69\x62\x2f\x6c\x64\x2d\x6c\x69\x6e\x75\x78\x2d\x61\x61\x72\x63\x68\x36\x34\x2e\x73\x6f\x2e\x31\x00"), -Section(".note.gnu.build-id", 0x254, "\x04\x00\x00\x00\x14\x00\x00\x00\x03\x00\x00\x00\x47\x4e\x55\x00\x5e\x39\xa6\xe6\xe9\x31\x93\xd0\xc1\x4b\x64\xd0\x38\x2b\x3f\x56\x4f\xbf\xe9\xbf"), -Section(".note.ABI-tag", 0x278, "\x04\x00\x00\x00\x10\x00\x00\x00\x01\x00\x00\x00\x47\x4e\x55\x00\x00\x00\x00\x00\x03\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00"), -Section(".gnu.hash", 0x298, "\x01\x00\x00\x00\x01\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".dynsym", 0x2B8, "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x0b\x00\x80\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x17\x00\x20\x10\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x48\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x22\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x22\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x73\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".dynstr", 0x390, "\x00\x5f\x5f\x63\x78\x61\x5f\x66\x69\x6e\x61\x6c\x69\x7a\x65\x00\x5f\x5f\x6c\x69\x62\x63\x5f\x73\x74\x61\x72\x74\x5f\x6d\x61\x69\x6e\x00\x61\x62\x6f\x72\x74\x00\x6c\x69\x62\x63\x2e\x73\x6f\x2e\x36\x00\x47\x4c\x49\x42\x43\x5f\x32\x2e\x31\x37\x00\x47\x4c\x49\x42\x43\x5f\x32\x2e\x33\x34\x00\x5f\x49\x54\x4d\x5f\x64\x65\x72\x65\x67\x69\x73\x74\x65\x72\x54\x4d\x43\x6c\x6f\x6e\x65\x54\x61\x62\x6c\x65\x00\x5f\x5f\x67\x6d\x6f\x6e\x5f\x73\x74\x61\x72\x74\x5f\x5f\x00\x5f\x49\x54\x4d\x5f\x72\x65\x67\x69\x73\x74\x65\x72\x54\x4d\x43\x6c\x6f\x6e\x65\x54\x61\x62\x6c\x65\x00"), -Section(".gnu.version", 0x41E, "\x00\x00\x00\x00\x00\x00\x02\x00\x01\x00\x03\x00\x01\x00\x03\x00\x01\x00"), -Section(".gnu.version_r", 0x430, "\x01\x00\x02\x00\x28\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x97\x91\x96\x06\x00\x00\x03\x00\x32\x00\x00\x00\x10\x00\x00\x00\xb4\x91\x96\x06\x00\x00\x02\x00\x3d\x00\x00\x00\x00\x00\x00\x00"), -Section(".rela.dyn", 0x460, "\xc8\x0d\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x10\x07\x00\x00\x00\x00\x00\x00\xd0\x0d\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\xc0\x06\x00\x00\x00\x00\x00\x00\xd8\x0f\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x14\x07\x00\x00\x00\x00\x00\x00\x28\x10\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x28\x10\x01\x00\x00\x00\x00\x00\xc0\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xc8\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xd0\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe0\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".rela.plt", 0x520, "\x00\x10\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x08\x10\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x10\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x18\x10\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".init", 0x580, "\x1f\x20\x03\xd5\xfd\x7b\xbf\xa9\xfd\x03\x00\x91\x2a\x00\x00\x94\xfd\x7b\xc1\xa8\xc0\x03\x5f\xd6"), -Section(".plt", 0x5A0, "\xf0\x7b\xbf\xa9\x90\x00\x00\x90\x11\xfe\x47\xf9\x10\xe2\x3f\x91\x20\x02\x1f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x90\x00\x00\xb0\x11\x02\x40\xf9\x10\x02\x00\x91\x20\x02\x1f\xd6\x90\x00\x00\xb0\x11\x06\x40\xf9\x10\x22\x00\x91\x20\x02\x1f\xd6\x90\x00\x00\xb0\x11\x0a\x40\xf9\x10\x42\x00\x91\x20\x02\x1f\xd6\x90\x00\x00\xb0\x11\x0e\x40\xf9\x10\x62\x00\x91\x20\x02\x1f\xd6"), -Section(".text", 0x600, "\x1f\x20\x03\xd5\x1d\x00\x80\xd2\x1e\x00\x80\xd2\xe5\x03\x00\xaa\xe1\x03\x40\xf9\xe2\x23\x00\x91\xe6\x03\x00\x91\x80\x00\x00\x90\x00\xec\x47\xf9\x03\x00\x80\xd2\x04\x00\x80\xd2\xe5\xff\xff\x97\xf0\xff\xff\x97\x80\x00\x00\x90\x00\xe8\x47\xf9\x40\x00\x00\xb4\xe8\xff\xff\x17\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x80\x00\x00\xb0\x00\xc0\x00\x91\x81\x00\x00\xb0\x21\xc0\x00\x91\x3f\x00\x00\xeb\xc0\x00\x00\x54\x81\x00\x00\x90\x21\xe0\x47\xf9\x61\x00\x00\xb4\xf0\x03\x01\xaa\x00\x02\x1f\xd6\xc0\x03\x5f\xd6\x80\x00\x00\xb0\x00\xc0\x00\x91\x81\x00\x00\xb0\x21\xc0\x00\x91\x21\x00\x00\xcb\x22\xfc\x7f\xd3\x41\x0c\x81\x8b\x21\xfc\x41\x93\xc1\x00\x00\xb4\x82\x00\x00\x90\x42\xf0\x47\xf9\x62\x00\x00\xb4\xf0\x03\x02\xaa\x00\x02\x1f\xd6\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\xfd\x7b\xbe\xa9\xfd\x03\x00\x91\xf3\x0b\x00\xf9\x93\x00\x00\xb0\x60\xc2\x40\x39\x40\x01\x00\x35\x80\x00\x00\x90\x00\xe4\x47\xf9\x80\x00\x00\xb4\x80\x00\x00\xb0\x00\x14\x40\xf9\xb9\xff\xff\x97\xd8\xff\xff\x97\x20\x00\x80\x52\x60\xc2\x00\x39\xf3\x0b\x40\xf9\xfd\x7b\xc2\xa8\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\xdc\xff\xff\x17\xe0\x03\x1f\x2a\x88\x00\x00\xb0\x89\x00\x00\xb0\x4a\x00\x80\x52\x1f\x3d\x00\xb9\x2a\x35\x00\xb9\xc0\x03\x5f\xd6"), -Section(".fini", 0x730, "\x1f\x20\x03\xd5\xfd\x7b\xbf\xa9\xfd\x03\x00\x91\xfd\x7b\xc1\xa8\xc0\x03\x5f\xd6"), -Section(".rodata", 0x744, "\x01\x00\x02\x00"), -Section(".eh_frame_hdr", 0x748, "\x01\x1b\x03\x3b\x3c\x00\x00\x00\x06\x00\x00\x00\xb8\xfe\xff\xff\x54\x00\x00\x00\x08\xff\xff\xff\x68\x00\x00\x00\x38\xff\xff\xff\x7c\x00\x00\x00\x78\xff\xff\xff\x90\x00\x00\x00\xc8\xff\xff\xff\xb4\x00\x00\x00\xcc\xff\xff\xff\xdc\x00\x00\x00"), -Section(".eh_frame", 0x788, "\x10\x00\x00\x00\x00\x00\x00\x00\x01\x7a\x52\x00\x04\x78\x1e\x01\x1b\x0c\x1f\x00\x10\x00\x00\x00\x18\x00\x00\x00\x5c\xfe\xff\xff\x34\x00\x00\x00\x00\x41\x07\x1e\x10\x00\x00\x00\x2c\x00\x00\x00\x98\xfe\xff\xff\x30\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x40\x00\x00\x00\xb4\xfe\xff\xff\x3c\x00\x00\x00\x00\x00\x00\x00\x20\x00\x00\x00\x54\x00\x00\x00\xe0\xfe\xff\xff\x48\x00\x00\x00\x00\x41\x0e\x20\x9d\x04\x9e\x03\x42\x93\x02\x4e\xde\xdd\xd3\x0e\x00\x00\x00\x00\x10\x00\x00\x00\x78\x00\x00\x00\x0c\xff\xff\xff\x04\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x01\x7a\x52\x00\x01\x7c\x1e\x01\x1b\x0c\x1f\x00\x10\x00\x00\x00\x18\x00\x00\x00\xe8\xfe\xff\xff\x1c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".fini_array", 0x10DD0, "\xc0\x06\x00\x00\x00\x00\x00\x00"), -Section(".dynamic", 0x10DD8, "\x01\x00\x00\x00\x00\x00\x00\x00\x28\x00\x00\x00\x00\x00\x00\x00\x0c\x00\x00\x00\x00\x00\x00\x00\x80\x05\x00\x00\x00\x00\x00\x00\x0d\x00\x00\x00\x00\x00\x00\x00\x30\x07\x00\x00\x00\x00\x00\x00\x19\x00\x00\x00\x00\x00\x00\x00\xc8\x0d\x01\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x1a\x00\x00\x00\x00\x00\x00\x00\xd0\x0d\x01\x00\x00\x00\x00\x00\x1c\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\xf5\xfe\xff\x6f\x00\x00\x00\x00\x98\x02\x00\x00\x00\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x90\x03\x00\x00\x00\x00\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\xb8\x02\x00\x00\x00\x00\x00\x00\x0a\x00\x00\x00\x00\x00\x00\x00\x8d\x00\x00\x00\x00\x00\x00\x00\x0b\x00\x00\x00\x00\x00\x00\x00\x18\x00\x00\x00\x00\x00\x00\x00\x15\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\xe8\x0f\x01\x00\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x60\x00\x00\x00\x00\x00\x00\x00\x14\x00\x00\x00\x00\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x17\x00\x00\x00\x00\x00\x00\x00\x20\x05\x00\x00\x00\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x60\x04\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\xc0\x00\x00\x00\x00\x00\x00\x00\x09\x00\x00\x00\x00\x00\x00\x00\x18\x00\x00\x00\x00\x00\x00\x00\xfb\xff\xff\x6f\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\xfe\xff\xff\x6f\x00\x00\x00\x00\x30\x04\x00\x00\x00\x00\x00\x00\xff\xff\xff\x6f\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\xf0\xff\xff\x6f\x00\x00\x00\x00\x1e\x04\x00\x00\x00\x00\x00\x00\xf9\xff\xff\x6f\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".init_array", 0x10DC8, "\x10\x07\x00\x00\x00\x00\x00\x00"), -Section(".got", 0x10FB8, "\xd8\x0d\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x14\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".got.plt", 0x10FE8, "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xa0\x05\x00\x00\x00\x00\x00\x00\xa0\x05\x00\x00\x00\x00\x00\x00\xa0\x05\x00\x00\x00\x00\x00\x00\xa0\x05\x00\x00\x00\x00\x00\x00"), -Section(".data", 0x11020, "\x00\x00\x00\x00\x00\x00\x00\x00\x28\x10\x01\x00\x00\x00\x00\x00")]), -Memmap([Annotation(Region(0x0,0x83B), Attr("segment","02 0 2108")), -Annotation(Region(0x600,0x633), Attr("symbol","\"_start\"")), -Annotation(Region(0x0,0x102), Attr("section","\".shstrtab\"")), -Annotation(Region(0x0,0x240), Attr("section","\".strtab\"")), -Annotation(Region(0x0,0x46), Attr("section","\".comment\"")), -Annotation(Region(0x238,0x252), Attr("section","\".interp\"")), -Annotation(Region(0x254,0x277), Attr("section","\".note.gnu.build-id\"")), -Annotation(Region(0x278,0x297), Attr("section","\".note.ABI-tag\"")), -Annotation(Region(0x298,0x2B3), Attr("section","\".gnu.hash\"")), -Annotation(Region(0x2B8,0x38F), Attr("section","\".dynsym\"")), -Annotation(Region(0x390,0x41C), Attr("section","\".dynstr\"")), -Annotation(Region(0x41E,0x42F), Attr("section","\".gnu.version\"")), -Annotation(Region(0x430,0x45F), Attr("section","\".gnu.version_r\"")), -Annotation(Region(0x460,0x51F), Attr("section","\".rela.dyn\"")), -Annotation(Region(0x520,0x57F), Attr("section","\".rela.plt\"")), -Annotation(Region(0x580,0x597), Attr("section","\".init\"")), -Annotation(Region(0x5A0,0x5FF), Attr("section","\".plt\"")), -Annotation(Region(0x580,0x597), Attr("code-region","()")), -Annotation(Region(0x5A0,0x5FF), Attr("code-region","()")), -Annotation(Region(0x600,0x633), Attr("symbol-info","_start 0x600 52")), -Annotation(Region(0x634,0x647), Attr("symbol","\"call_weak_fn\"")), -Annotation(Region(0x634,0x647), Attr("symbol-info","call_weak_fn 0x634 20")), -Annotation(Region(0x600,0x72F), Attr("section","\".text\"")), -Annotation(Region(0x600,0x72F), Attr("code-region","()")), -Annotation(Region(0x714,0x72F), Attr("symbol","\"main\"")), -Annotation(Region(0x714,0x72F), Attr("symbol-info","main 0x714 28")), -Annotation(Region(0x730,0x743), Attr("section","\".fini\"")), -Annotation(Region(0x730,0x743), Attr("code-region","()")), -Annotation(Region(0x744,0x747), Attr("section","\".rodata\"")), -Annotation(Region(0x748,0x783), Attr("section","\".eh_frame_hdr\"")), -Annotation(Region(0x788,0x83B), Attr("section","\".eh_frame\"")), -Annotation(Region(0x10DC8,0x1102F), Attr("segment","03 0x10DC8 632")), -Annotation(Region(0x10DD0,0x10DD7), Attr("section","\".fini_array\"")), -Annotation(Region(0x10DD8,0x10FB7), Attr("section","\".dynamic\"")), -Annotation(Region(0x10DC8,0x10DCF), Attr("section","\".init_array\"")), -Annotation(Region(0x10FB8,0x10FE7), Attr("section","\".got\"")), -Annotation(Region(0x10FE8,0x1101F), Attr("section","\".got.plt\"")), -Annotation(Region(0x11020,0x1102F), Attr("section","\".data\""))]), -Program(Tid(1_441, "%000005a1"), Attrs([]), - Subs([Sub(Tid(1_391, "@__cxa_finalize"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x5D0"), -Attr("stub","()")]), "__cxa_finalize", Args([Arg(Tid(1_442, "%000005a2"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("__cxa_finalize_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(805, "@__cxa_finalize"), - Attrs([Attr("address","0x5D0")]), Phis([]), -Defs([Def(Tid(1_053, "%0000041d"), Attrs([Attr("address","0x5D0"), -Attr("insn","adrp x16, #69632")]), Var("R16",Imm(64)), Int(69632,64)), -Def(Tid(1_060, "%00000424"), Attrs([Attr("address","0x5D4"), -Attr("insn","ldr x17, [x16, #0x8]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(1_066, "%0000042a"), Attrs([Attr("address","0x5D8"), -Attr("insn","add x16, x16, #0x8")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(8,64)))]), Jmps([Call(Tid(1_071, "%0000042f"), - Attrs([Attr("address","0x5DC"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), -Sub(Tid(1_392, "@__do_global_dtors_aux"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x6C0")]), - "__do_global_dtors_aux", Args([Arg(Tid(1_443, "%000005a3"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("__do_global_dtors_aux_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(618, "@__do_global_dtors_aux"), - Attrs([Attr("address","0x6C0")]), Phis([]), Defs([Def(Tid(622, "%0000026e"), - Attrs([Attr("address","0x6C0"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("#3",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(18446744073709551584,64))), -Def(Tid(628, "%00000274"), Attrs([Attr("address","0x6C0"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("#3",Imm(64)),Var("R29",Imm(64)),LittleEndian(),64)), -Def(Tid(634, "%0000027a"), Attrs([Attr("address","0x6C0"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("#3",Imm(64)),Int(8,64)),Var("R30",Imm(64)),LittleEndian(),64)), -Def(Tid(638, "%0000027e"), Attrs([Attr("address","0x6C0"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("R31",Imm(64)), -Var("#3",Imm(64))), Def(Tid(644, "%00000284"), - Attrs([Attr("address","0x6C4"), Attr("insn","mov x29, sp")]), - Var("R29",Imm(64)), Var("R31",Imm(64))), Def(Tid(652, "%0000028c"), - Attrs([Attr("address","0x6C8"), Attr("insn","str x19, [sp, #0x10]")]), - Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(16,64)),Var("R19",Imm(64)),LittleEndian(),64)), -Def(Tid(657, "%00000291"), Attrs([Attr("address","0x6CC"), -Attr("insn","adrp x19, #69632")]), Var("R19",Imm(64)), Int(69632,64)), -Def(Tid(664, "%00000298"), Attrs([Attr("address","0x6D0"), -Attr("insn","ldrb w0, [x19, #0x30]")]), Var("R0",Imm(64)), -UNSIGNED(64,Load(Var("mem",Mem(64,8)),PLUS(Var("R19",Imm(64)),Int(48,64)),LittleEndian(),8)))]), -Jmps([Goto(Tid(671, "%0000029f"), Attrs([Attr("address","0x6D4"), -Attr("insn","cbnz w0, #0x28")]), - NEQ(Extract(31,0,Var("R0",Imm(64))),Int(0,32)), -Direct(Tid(669, "%0000029d"))), Goto(Tid(1_431, "%00000597"), Attrs([]), - Int(1,1), Direct(Tid(750, "%000002ee")))])), Blk(Tid(750, "%000002ee"), - Attrs([Attr("address","0x6D8")]), Phis([]), Defs([Def(Tid(753, "%000002f1"), - Attrs([Attr("address","0x6D8"), Attr("insn","adrp x0, #65536")]), - Var("R0",Imm(64)), Int(65536,64)), Def(Tid(760, "%000002f8"), - Attrs([Attr("address","0x6DC"), Attr("insn","ldr x0, [x0, #0xfc8]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(4040,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(766, "%000002fe"), Attrs([Attr("address","0x6E0"), -Attr("insn","cbz x0, #0x10")]), EQ(Var("R0",Imm(64)),Int(0,64)), -Direct(Tid(764, "%000002fc"))), Goto(Tid(1_432, "%00000598"), Attrs([]), - Int(1,1), Direct(Tid(789, "%00000315")))])), Blk(Tid(789, "%00000315"), - Attrs([Attr("address","0x6E4")]), Phis([]), Defs([Def(Tid(792, "%00000318"), - Attrs([Attr("address","0x6E4"), Attr("insn","adrp x0, #69632")]), - Var("R0",Imm(64)), Int(69632,64)), Def(Tid(799, "%0000031f"), - Attrs([Attr("address","0x6E8"), Attr("insn","ldr x0, [x0, #0x28]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(40,64)),LittleEndian(),64)), -Def(Tid(804, "%00000324"), Attrs([Attr("address","0x6EC"), -Attr("insn","bl #-0x11c")]), Var("R30",Imm(64)), Int(1776,64))]), -Jmps([Call(Tid(807, "%00000327"), Attrs([Attr("address","0x6EC"), -Attr("insn","bl #-0x11c")]), Int(1,1), -(Direct(Tid(1_391, "@__cxa_finalize")),Direct(Tid(764, "%000002fc"))))])), -Blk(Tid(764, "%000002fc"), Attrs([Attr("address","0x6F0")]), Phis([]), -Defs([Def(Tid(772, "%00000304"), Attrs([Attr("address","0x6F0"), -Attr("insn","bl #-0xa0")]), Var("R30",Imm(64)), Int(1780,64))]), -Jmps([Call(Tid(774, "%00000306"), Attrs([Attr("address","0x6F0"), -Attr("insn","bl #-0xa0")]), Int(1,1), -(Direct(Tid(1_405, "@deregister_tm_clones")),Direct(Tid(776, "%00000308"))))])), -Blk(Tid(776, "%00000308"), Attrs([Attr("address","0x6F4")]), Phis([]), -Defs([Def(Tid(779, "%0000030b"), Attrs([Attr("address","0x6F4"), -Attr("insn","mov w0, #0x1")]), Var("R0",Imm(64)), Int(1,64)), -Def(Tid(787, "%00000313"), Attrs([Attr("address","0x6F8"), -Attr("insn","strb w0, [x19, #0x30]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R19",Imm(64)),Int(48,64)),Extract(7,0,Var("R0",Imm(64))),LittleEndian(),8))]), -Jmps([Goto(Tid(1_433, "%00000599"), Attrs([]), Int(1,1), -Direct(Tid(669, "%0000029d")))])), Blk(Tid(669, "%0000029d"), - Attrs([Attr("address","0x6FC")]), Phis([]), Defs([Def(Tid(679, "%000002a7"), - Attrs([Attr("address","0x6FC"), Attr("insn","ldr x19, [sp, #0x10]")]), - Var("R19",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(16,64)),LittleEndian(),64)), -Def(Tid(686, "%000002ae"), Attrs([Attr("address","0x700"), -Attr("insn","ldp x29, x30, [sp], #0x20")]), Var("R29",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(691, "%000002b3"), Attrs([Attr("address","0x700"), -Attr("insn","ldp x29, x30, [sp], #0x20")]), Var("R30",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(695, "%000002b7"), Attrs([Attr("address","0x700"), -Attr("insn","ldp x29, x30, [sp], #0x20")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(32,64)))]), Jmps([Call(Tid(700, "%000002bc"), - Attrs([Attr("address","0x704"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), Sub(Tid(1_396, "@__libc_start_main"), - Attrs([Attr("c.proto","signed (*)(signed (*)(signed , char** , char** );* main, signed , char** , \nvoid* auxv)"), -Attr("address","0x5C0"), Attr("stub","()")]), "__libc_start_main", - Args([Arg(Tid(1_444, "%000005a4"), - Attrs([Attr("c.layout","**[ : 64]"), -Attr("c.data","Top:u64 ptr ptr"), -Attr("c.type","signed (*)(signed , char** , char** );*")]), - Var("__libc_start_main_main",Imm(64)), Var("R0",Imm(64)), In()), -Arg(Tid(1_445, "%000005a5"), Attrs([Attr("c.layout","[signed : 32]"), -Attr("c.data","Top:u32"), Attr("c.type","signed")]), - Var("__libc_start_main_arg2",Imm(32)), LOW(32,Var("R1",Imm(64))), In()), -Arg(Tid(1_446, "%000005a6"), Attrs([Attr("c.layout","**[char : 8]"), -Attr("c.data","Top:u8 ptr ptr"), Attr("c.type","char**")]), - Var("__libc_start_main_arg3",Imm(64)), Var("R2",Imm(64)), Both()), -Arg(Tid(1_447, "%000005a7"), Attrs([Attr("c.layout","*[ : 8]"), -Attr("c.data","{} ptr"), Attr("c.type","void*")]), - Var("__libc_start_main_auxv",Imm(64)), Var("R3",Imm(64)), Both()), -Arg(Tid(1_448, "%000005a8"), Attrs([Attr("c.layout","[signed : 32]"), -Attr("c.data","Top:u32"), Attr("c.type","signed")]), - Var("__libc_start_main_result",Imm(32)), LOW(32,Var("R0",Imm(64))), -Out())]), Blks([Blk(Tid(451, "@__libc_start_main"), - Attrs([Attr("address","0x5C0")]), Phis([]), -Defs([Def(Tid(1_031, "%00000407"), Attrs([Attr("address","0x5C0"), -Attr("insn","adrp x16, #69632")]), Var("R16",Imm(64)), Int(69632,64)), -Def(Tid(1_038, "%0000040e"), Attrs([Attr("address","0x5C4"), -Attr("insn","ldr x17, [x16]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R16",Imm(64)),LittleEndian(),64)), -Def(Tid(1_044, "%00000414"), Attrs([Attr("address","0x5C8"), -Attr("insn","add x16, x16, #0x0")]), Var("R16",Imm(64)), -Var("R16",Imm(64)))]), Jmps([Call(Tid(1_049, "%00000419"), - Attrs([Attr("address","0x5CC"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), Sub(Tid(1_397, "@_fini"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x730")]), - "_fini", Args([Arg(Tid(1_449, "%000005a9"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("_fini_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(31, "@_fini"), - Attrs([Attr("address","0x730")]), Phis([]), Defs([Def(Tid(37, "%00000025"), - Attrs([Attr("address","0x734"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("#0",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(18446744073709551600,64))), -Def(Tid(43, "%0000002b"), Attrs([Attr("address","0x734"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("#0",Imm(64)),Var("R29",Imm(64)),LittleEndian(),64)), -Def(Tid(49, "%00000031"), Attrs([Attr("address","0x734"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("#0",Imm(64)),Int(8,64)),Var("R30",Imm(64)),LittleEndian(),64)), -Def(Tid(53, "%00000035"), Attrs([Attr("address","0x734"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("R31",Imm(64)), -Var("#0",Imm(64))), Def(Tid(59, "%0000003b"), Attrs([Attr("address","0x738"), -Attr("insn","mov x29, sp")]), Var("R29",Imm(64)), Var("R31",Imm(64))), -Def(Tid(66, "%00000042"), Attrs([Attr("address","0x73C"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R29",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(71, "%00000047"), Attrs([Attr("address","0x73C"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R30",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(75, "%0000004b"), Attrs([Attr("address","0x73C"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(16,64)))]), Jmps([Call(Tid(80, "%00000050"), - Attrs([Attr("address","0x740"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), Sub(Tid(1_398, "@_init"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x580")]), - "_init", Args([Arg(Tid(1_450, "%000005aa"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("_init_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(1_226, "@_init"), - Attrs([Attr("address","0x580")]), Phis([]), -Defs([Def(Tid(1_232, "%000004d0"), Attrs([Attr("address","0x584"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("#5",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(18446744073709551600,64))), -Def(Tid(1_238, "%000004d6"), Attrs([Attr("address","0x584"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("#5",Imm(64)),Var("R29",Imm(64)),LittleEndian(),64)), -Def(Tid(1_244, "%000004dc"), Attrs([Attr("address","0x584"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("#5",Imm(64)),Int(8,64)),Var("R30",Imm(64)),LittleEndian(),64)), -Def(Tid(1_248, "%000004e0"), Attrs([Attr("address","0x584"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("R31",Imm(64)), -Var("#5",Imm(64))), Def(Tid(1_254, "%000004e6"), - Attrs([Attr("address","0x588"), Attr("insn","mov x29, sp")]), - Var("R29",Imm(64)), Var("R31",Imm(64))), Def(Tid(1_259, "%000004eb"), - Attrs([Attr("address","0x58C"), Attr("insn","bl #0xa8")]), - Var("R30",Imm(64)), Int(1424,64))]), Jmps([Call(Tid(1_261, "%000004ed"), - Attrs([Attr("address","0x58C"), Attr("insn","bl #0xa8")]), Int(1,1), -(Direct(Tid(1_403, "@call_weak_fn")),Direct(Tid(1_263, "%000004ef"))))])), -Blk(Tid(1_263, "%000004ef"), Attrs([Attr("address","0x590")]), Phis([]), -Defs([Def(Tid(1_268, "%000004f4"), Attrs([Attr("address","0x590"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R29",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(1_273, "%000004f9"), Attrs([Attr("address","0x590"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R30",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(1_277, "%000004fd"), Attrs([Attr("address","0x590"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(16,64)))]), Jmps([Call(Tid(1_282, "%00000502"), - Attrs([Attr("address","0x594"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), Sub(Tid(1_399, "@_start"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x600"), -Attr("stub","()"), Attr("entry-point","()")]), "_start", - Args([Arg(Tid(1_451, "%000005ab"), Attrs([Attr("c.layout","[signed : 32]"), -Attr("c.data","Top:u32"), Attr("c.type","signed")]), - Var("_start_result",Imm(32)), LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(388, "@_start"), Attrs([Attr("address","0x600")]), Phis([]), -Defs([Def(Tid(393, "%00000189"), Attrs([Attr("address","0x604"), -Attr("insn","mov x29, #0x0")]), Var("R29",Imm(64)), Int(0,64)), -Def(Tid(398, "%0000018e"), Attrs([Attr("address","0x608"), -Attr("insn","mov x30, #0x0")]), Var("R30",Imm(64)), Int(0,64)), -Def(Tid(404, "%00000194"), Attrs([Attr("address","0x60C"), -Attr("insn","mov x5, x0")]), Var("R5",Imm(64)), Var("R0",Imm(64))), -Def(Tid(411, "%0000019b"), Attrs([Attr("address","0x610"), -Attr("insn","ldr x1, [sp]")]), Var("R1",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(417, "%000001a1"), Attrs([Attr("address","0x614"), -Attr("insn","add x2, sp, #0x8")]), Var("R2",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(8,64))), Def(Tid(423, "%000001a7"), - Attrs([Attr("address","0x618"), Attr("insn","mov x6, sp")]), - Var("R6",Imm(64)), Var("R31",Imm(64))), Def(Tid(428, "%000001ac"), - Attrs([Attr("address","0x61C"), Attr("insn","adrp x0, #65536")]), - Var("R0",Imm(64)), Int(65536,64)), Def(Tid(435, "%000001b3"), - Attrs([Attr("address","0x620"), Attr("insn","ldr x0, [x0, #0xfd8]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(4056,64)),LittleEndian(),64)), -Def(Tid(440, "%000001b8"), Attrs([Attr("address","0x624"), -Attr("insn","mov x3, #0x0")]), Var("R3",Imm(64)), Int(0,64)), -Def(Tid(445, "%000001bd"), Attrs([Attr("address","0x628"), -Attr("insn","mov x4, #0x0")]), Var("R4",Imm(64)), Int(0,64)), -Def(Tid(450, "%000001c2"), Attrs([Attr("address","0x62C"), -Attr("insn","bl #-0x6c")]), Var("R30",Imm(64)), Int(1584,64))]), -Jmps([Call(Tid(453, "%000001c5"), Attrs([Attr("address","0x62C"), -Attr("insn","bl #-0x6c")]), Int(1,1), -(Direct(Tid(1_396, "@__libc_start_main")),Direct(Tid(455, "%000001c7"))))])), -Blk(Tid(455, "%000001c7"), Attrs([Attr("address","0x630")]), Phis([]), -Defs([Def(Tid(458, "%000001ca"), Attrs([Attr("address","0x630"), -Attr("insn","bl #-0x40")]), Var("R30",Imm(64)), Int(1588,64))]), -Jmps([Call(Tid(461, "%000001cd"), Attrs([Attr("address","0x630"), -Attr("insn","bl #-0x40")]), Int(1,1), -(Direct(Tid(1_402, "@abort")),Direct(Tid(1_434, "%0000059a"))))])), -Blk(Tid(1_434, "%0000059a"), Attrs([]), Phis([]), Defs([]), -Jmps([Call(Tid(1_435, "%0000059b"), Attrs([]), Int(1,1), -(Direct(Tid(1_403, "@call_weak_fn")),))]))])), Sub(Tid(1_402, "@abort"), - Attrs([Attr("noreturn","()"), Attr("c.proto","void (*)(void)"), -Attr("address","0x5F0"), Attr("stub","()")]), "abort", Args([]), -Blks([Blk(Tid(459, "@abort"), Attrs([Attr("address","0x5F0")]), Phis([]), -Defs([Def(Tid(1_097, "%00000449"), Attrs([Attr("address","0x5F0"), -Attr("insn","adrp x16, #69632")]), Var("R16",Imm(64)), Int(69632,64)), -Def(Tid(1_104, "%00000450"), Attrs([Attr("address","0x5F4"), -Attr("insn","ldr x17, [x16, #0x18]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(24,64)),LittleEndian(),64)), -Def(Tid(1_110, "%00000456"), Attrs([Attr("address","0x5F8"), -Attr("insn","add x16, x16, #0x18")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(24,64)))]), Jmps([Call(Tid(1_115, "%0000045b"), - Attrs([Attr("address","0x5FC"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), Sub(Tid(1_403, "@call_weak_fn"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x634")]), - "call_weak_fn", Args([Arg(Tid(1_452, "%000005ac"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("call_weak_fn_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(463, "@call_weak_fn"), - Attrs([Attr("address","0x634")]), Phis([]), Defs([Def(Tid(466, "%000001d2"), - Attrs([Attr("address","0x634"), Attr("insn","adrp x0, #65536")]), - Var("R0",Imm(64)), Int(65536,64)), Def(Tid(473, "%000001d9"), - Attrs([Attr("address","0x638"), Attr("insn","ldr x0, [x0, #0xfd0]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(4048,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(479, "%000001df"), Attrs([Attr("address","0x63C"), -Attr("insn","cbz x0, #0x8")]), EQ(Var("R0",Imm(64)),Int(0,64)), -Direct(Tid(477, "%000001dd"))), Goto(Tid(1_436, "%0000059c"), Attrs([]), - Int(1,1), Direct(Tid(869, "%00000365")))])), Blk(Tid(477, "%000001dd"), - Attrs([Attr("address","0x644")]), Phis([]), Defs([]), -Jmps([Call(Tid(485, "%000001e5"), Attrs([Attr("address","0x644"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))])), -Blk(Tid(869, "%00000365"), Attrs([Attr("address","0x640")]), Phis([]), -Defs([]), Jmps([Goto(Tid(872, "%00000368"), Attrs([Attr("address","0x640"), -Attr("insn","b #-0x60")]), Int(1,1), Direct(Tid(870, "@__gmon_start__")))])), -Blk(Tid(870, "@__gmon_start__"), Attrs([Attr("address","0x5E0")]), Phis([]), -Defs([Def(Tid(1_075, "%00000433"), Attrs([Attr("address","0x5E0"), -Attr("insn","adrp x16, #69632")]), Var("R16",Imm(64)), Int(69632,64)), -Def(Tid(1_082, "%0000043a"), Attrs([Attr("address","0x5E4"), -Attr("insn","ldr x17, [x16, #0x10]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(16,64)),LittleEndian(),64)), -Def(Tid(1_088, "%00000440"), Attrs([Attr("address","0x5E8"), -Attr("insn","add x16, x16, #0x10")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(16,64)))]), Jmps([Call(Tid(1_093, "%00000445"), - Attrs([Attr("address","0x5EC"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), -Sub(Tid(1_405, "@deregister_tm_clones"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x650")]), - "deregister_tm_clones", Args([Arg(Tid(1_453, "%000005ad"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("deregister_tm_clones_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(491, "@deregister_tm_clones"), - Attrs([Attr("address","0x650")]), Phis([]), Defs([Def(Tid(494, "%000001ee"), - Attrs([Attr("address","0x650"), Attr("insn","adrp x0, #69632")]), - Var("R0",Imm(64)), Int(69632,64)), Def(Tid(500, "%000001f4"), - Attrs([Attr("address","0x654"), Attr("insn","add x0, x0, #0x30")]), - Var("R0",Imm(64)), PLUS(Var("R0",Imm(64)),Int(48,64))), -Def(Tid(505, "%000001f9"), Attrs([Attr("address","0x658"), -Attr("insn","adrp x1, #69632")]), Var("R1",Imm(64)), Int(69632,64)), -Def(Tid(511, "%000001ff"), Attrs([Attr("address","0x65C"), -Attr("insn","add x1, x1, #0x30")]), Var("R1",Imm(64)), -PLUS(Var("R1",Imm(64)),Int(48,64))), Def(Tid(517, "%00000205"), - Attrs([Attr("address","0x660"), Attr("insn","cmp x1, x0")]), - Var("#1",Imm(64)), NOT(Var("R0",Imm(64)))), Def(Tid(522, "%0000020a"), - Attrs([Attr("address","0x660"), Attr("insn","cmp x1, x0")]), - Var("#2",Imm(64)), PLUS(Var("R1",Imm(64)),NOT(Var("R0",Imm(64))))), -Def(Tid(528, "%00000210"), Attrs([Attr("address","0x660"), -Attr("insn","cmp x1, x0")]), Var("VF",Imm(1)), -NEQ(SIGNED(65,PLUS(Var("#2",Imm(64)),Int(1,64))),PLUS(PLUS(SIGNED(65,Var("R1",Imm(64))),SIGNED(65,Var("#1",Imm(64)))),Int(1,65)))), -Def(Tid(534, "%00000216"), Attrs([Attr("address","0x660"), -Attr("insn","cmp x1, x0")]), Var("CF",Imm(1)), -NEQ(UNSIGNED(65,PLUS(Var("#2",Imm(64)),Int(1,64))),PLUS(PLUS(UNSIGNED(65,Var("R1",Imm(64))),UNSIGNED(65,Var("#1",Imm(64)))),Int(1,65)))), -Def(Tid(538, "%0000021a"), Attrs([Attr("address","0x660"), -Attr("insn","cmp x1, x0")]), Var("ZF",Imm(1)), -EQ(PLUS(Var("#2",Imm(64)),Int(1,64)),Int(0,64))), Def(Tid(542, "%0000021e"), - Attrs([Attr("address","0x660"), Attr("insn","cmp x1, x0")]), - Var("NF",Imm(1)), Extract(63,63,PLUS(Var("#2",Imm(64)),Int(1,64))))]), -Jmps([Goto(Tid(548, "%00000224"), Attrs([Attr("address","0x664"), -Attr("insn","b.eq #0x18")]), EQ(Var("ZF",Imm(1)),Int(1,1)), -Direct(Tid(546, "%00000222"))), Goto(Tid(1_437, "%0000059d"), Attrs([]), - Int(1,1), Direct(Tid(839, "%00000347")))])), Blk(Tid(839, "%00000347"), - Attrs([Attr("address","0x668")]), Phis([]), Defs([Def(Tid(842, "%0000034a"), - Attrs([Attr("address","0x668"), Attr("insn","adrp x1, #65536")]), - Var("R1",Imm(64)), Int(65536,64)), Def(Tid(849, "%00000351"), - Attrs([Attr("address","0x66C"), Attr("insn","ldr x1, [x1, #0xfc0]")]), - Var("R1",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R1",Imm(64)),Int(4032,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(854, "%00000356"), Attrs([Attr("address","0x670"), -Attr("insn","cbz x1, #0xc")]), EQ(Var("R1",Imm(64)),Int(0,64)), -Direct(Tid(546, "%00000222"))), Goto(Tid(1_438, "%0000059e"), Attrs([]), - Int(1,1), Direct(Tid(858, "%0000035a")))])), Blk(Tid(546, "%00000222"), - Attrs([Attr("address","0x67C")]), Phis([]), Defs([]), -Jmps([Call(Tid(554, "%0000022a"), Attrs([Attr("address","0x67C"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))])), -Blk(Tid(858, "%0000035a"), Attrs([Attr("address","0x674")]), Phis([]), -Defs([Def(Tid(862, "%0000035e"), Attrs([Attr("address","0x674"), -Attr("insn","mov x16, x1")]), Var("R16",Imm(64)), Var("R1",Imm(64)))]), -Jmps([Call(Tid(867, "%00000363"), Attrs([Attr("address","0x678"), -Attr("insn","br x16")]), Int(1,1), (Indirect(Var("R16",Imm(64))),))]))])), -Sub(Tid(1_408, "@frame_dummy"), Attrs([Attr("c.proto","signed (*)(void)"), -Attr("address","0x710")]), "frame_dummy", Args([Arg(Tid(1_454, "%000005ae"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("frame_dummy_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(706, "@frame_dummy"), - Attrs([Attr("address","0x710")]), Phis([]), Defs([]), -Jmps([Call(Tid(708, "%000002c4"), Attrs([Attr("address","0x710"), -Attr("insn","b #-0x90")]), Int(1,1), -(Direct(Tid(1_410, "@register_tm_clones")),))]))])), Sub(Tid(1_409, "@main"), - Attrs([Attr("c.proto","signed (*)(signed argc, const char** argv)"), -Attr("address","0x714")]), "main", Args([Arg(Tid(1_455, "%000005af"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("main_argc",Imm(32)), -LOW(32,Var("R0",Imm(64))), In()), Arg(Tid(1_456, "%000005b0"), - Attrs([Attr("c.layout","**[char : 8]"), Attr("c.data","Top:u8 ptr ptr"), -Attr("c.type"," const char**")]), Var("main_argv",Imm(64)), -Var("R1",Imm(64)), Both()), Arg(Tid(1_457, "%000005b1"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("main_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(710, "@main"), - Attrs([Attr("address","0x714")]), Phis([]), Defs([Def(Tid(713, "%000002c9"), - Attrs([Attr("address","0x714"), Attr("insn","mov w0, wzr")]), - Var("R0",Imm(64)), Int(0,64)), Def(Tid(718, "%000002ce"), - Attrs([Attr("address","0x718"), Attr("insn","adrp x8, #69632")]), - Var("R8",Imm(64)), Int(69632,64)), Def(Tid(723, "%000002d3"), - Attrs([Attr("address","0x71C"), Attr("insn","adrp x9, #69632")]), - Var("R9",Imm(64)), Int(69632,64)), Def(Tid(728, "%000002d8"), - Attrs([Attr("address","0x720"), Attr("insn","mov w10, #0x2")]), - Var("R10",Imm(64)), Int(2,64)), Def(Tid(735, "%000002df"), - Attrs([Attr("address","0x724"), Attr("insn","str wzr, [x8, #0x3c]")]), - Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R8",Imm(64)),Int(60,64)),Int(0,32),LittleEndian(),32)), -Def(Tid(743, "%000002e7"), Attrs([Attr("address","0x728"), -Attr("insn","str w10, [x9, #0x34]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R9",Imm(64)),Int(52,64)),Extract(31,0,Var("R10",Imm(64))),LittleEndian(),32))]), -Jmps([Call(Tid(748, "%000002ec"), Attrs([Attr("address","0x72C"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))]))])), -Sub(Tid(1_410, "@register_tm_clones"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x680")]), - "register_tm_clones", Args([Arg(Tid(1_458, "%000005b2"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("register_tm_clones_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(556, "@register_tm_clones"), Attrs([Attr("address","0x680")]), - Phis([]), Defs([Def(Tid(559, "%0000022f"), Attrs([Attr("address","0x680"), -Attr("insn","adrp x0, #69632")]), Var("R0",Imm(64)), Int(69632,64)), -Def(Tid(565, "%00000235"), Attrs([Attr("address","0x684"), -Attr("insn","add x0, x0, #0x30")]), Var("R0",Imm(64)), -PLUS(Var("R0",Imm(64)),Int(48,64))), Def(Tid(570, "%0000023a"), - Attrs([Attr("address","0x688"), Attr("insn","adrp x1, #69632")]), - Var("R1",Imm(64)), Int(69632,64)), Def(Tid(576, "%00000240"), - Attrs([Attr("address","0x68C"), Attr("insn","add x1, x1, #0x30")]), - Var("R1",Imm(64)), PLUS(Var("R1",Imm(64)),Int(48,64))), -Def(Tid(583, "%00000247"), Attrs([Attr("address","0x690"), -Attr("insn","sub x1, x1, x0")]), Var("R1",Imm(64)), -PLUS(PLUS(Var("R1",Imm(64)),NOT(Var("R0",Imm(64)))),Int(1,64))), -Def(Tid(589, "%0000024d"), Attrs([Attr("address","0x694"), -Attr("insn","lsr x2, x1, #63")]), Var("R2",Imm(64)), -Concat(Int(0,63),Extract(63,63,Var("R1",Imm(64))))), -Def(Tid(596, "%00000254"), Attrs([Attr("address","0x698"), -Attr("insn","add x1, x2, x1, asr #3")]), Var("R1",Imm(64)), -PLUS(Var("R2",Imm(64)),ARSHIFT(Var("R1",Imm(64)),Int(3,3)))), -Def(Tid(602, "%0000025a"), Attrs([Attr("address","0x69C"), -Attr("insn","asr x1, x1, #1")]), Var("R1",Imm(64)), -SIGNED(64,Extract(63,1,Var("R1",Imm(64)))))]), -Jmps([Goto(Tid(608, "%00000260"), Attrs([Attr("address","0x6A0"), -Attr("insn","cbz x1, #0x18")]), EQ(Var("R1",Imm(64)),Int(0,64)), -Direct(Tid(606, "%0000025e"))), Goto(Tid(1_439, "%0000059f"), Attrs([]), - Int(1,1), Direct(Tid(809, "%00000329")))])), Blk(Tid(809, "%00000329"), - Attrs([Attr("address","0x6A4")]), Phis([]), Defs([Def(Tid(812, "%0000032c"), - Attrs([Attr("address","0x6A4"), Attr("insn","adrp x2, #65536")]), - Var("R2",Imm(64)), Int(65536,64)), Def(Tid(819, "%00000333"), - Attrs([Attr("address","0x6A8"), Attr("insn","ldr x2, [x2, #0xfe0]")]), - Var("R2",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R2",Imm(64)),Int(4064,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(824, "%00000338"), Attrs([Attr("address","0x6AC"), -Attr("insn","cbz x2, #0xc")]), EQ(Var("R2",Imm(64)),Int(0,64)), -Direct(Tid(606, "%0000025e"))), Goto(Tid(1_440, "%000005a0"), Attrs([]), - Int(1,1), Direct(Tid(828, "%0000033c")))])), Blk(Tid(606, "%0000025e"), - Attrs([Attr("address","0x6B8")]), Phis([]), Defs([]), -Jmps([Call(Tid(614, "%00000266"), Attrs([Attr("address","0x6B8"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))])), -Blk(Tid(828, "%0000033c"), Attrs([Attr("address","0x6B0")]), Phis([]), -Defs([Def(Tid(832, "%00000340"), Attrs([Attr("address","0x6B0"), -Attr("insn","mov x16, x2")]), Var("R16",Imm(64)), Var("R2",Imm(64)))]), -Jmps([Call(Tid(837, "%00000345"), Attrs([Attr("address","0x6B4"), -Attr("insn","br x16")]), Int(1,1), -(Indirect(Var("R16",Imm(64))),))]))]))]))) \ No newline at end of file diff --git a/src/test/correct/secret_write/clang_O2/secret_write.bir b/src/test/correct/secret_write/clang_O2/secret_write.bir deleted file mode 100644 index c7a835953..000000000 --- a/src/test/correct/secret_write/clang_O2/secret_write.bir +++ /dev/null @@ -1,229 +0,0 @@ -000005a1: program -0000056f: sub __cxa_finalize(__cxa_finalize_result) -000005a2: __cxa_finalize_result :: out u32 = low:32[R0] - -00000325: -0000041d: R16 := 0x11000 -00000424: R17 := mem[R16 + 8, el]:u64 -0000042a: R16 := R16 + 8 -0000042f: call R17 with noreturn - -00000570: sub __do_global_dtors_aux(__do_global_dtors_aux_result) -000005a3: __do_global_dtors_aux_result :: out u32 = low:32[R0] - -0000026a: -0000026e: #3 := R31 - 0x20 -00000274: mem := mem with [#3, el]:u64 <- R29 -0000027a: mem := mem with [#3 + 8, el]:u64 <- R30 -0000027e: R31 := #3 -00000284: R29 := R31 -0000028c: mem := mem with [R31 + 0x10, el]:u64 <- R19 -00000291: R19 := 0x11000 -00000298: R0 := pad:64[mem[R19 + 0x30]] -0000029f: when 31:0[R0] <> 0 goto %0000029d -00000597: goto %000002ee - -000002ee: -000002f1: R0 := 0x10000 -000002f8: R0 := mem[R0 + 0xFC8, el]:u64 -000002fe: when R0 = 0 goto %000002fc -00000598: goto %00000315 - -00000315: -00000318: R0 := 0x11000 -0000031f: R0 := mem[R0 + 0x28, el]:u64 -00000324: R30 := 0x6F0 -00000327: call @__cxa_finalize with return %000002fc - -000002fc: -00000304: R30 := 0x6F4 -00000306: call @deregister_tm_clones with return %00000308 - -00000308: -0000030b: R0 := 1 -00000313: mem := mem with [R19 + 0x30] <- 7:0[R0] -00000599: goto %0000029d - -0000029d: -000002a7: R19 := mem[R31 + 0x10, el]:u64 -000002ae: R29 := mem[R31, el]:u64 -000002b3: R30 := mem[R31 + 8, el]:u64 -000002b7: R31 := R31 + 0x20 -000002bc: call R30 with noreturn - -00000574: sub __libc_start_main(__libc_start_main_main, __libc_start_main_arg2, __libc_start_main_arg3, __libc_start_main_auxv, __libc_start_main_result) -000005a4: __libc_start_main_main :: in u64 = R0 -000005a5: __libc_start_main_arg2 :: in u32 = low:32[R1] -000005a6: __libc_start_main_arg3 :: in out u64 = R2 -000005a7: __libc_start_main_auxv :: in out u64 = R3 -000005a8: __libc_start_main_result :: out u32 = low:32[R0] - -000001c3: -00000407: R16 := 0x11000 -0000040e: R17 := mem[R16, el]:u64 -00000414: R16 := R16 -00000419: call R17 with noreturn - -00000575: sub _fini(_fini_result) -000005a9: _fini_result :: out u32 = low:32[R0] - -0000001f: -00000025: #0 := R31 - 0x10 -0000002b: mem := mem with [#0, el]:u64 <- R29 -00000031: mem := mem with [#0 + 8, el]:u64 <- R30 -00000035: R31 := #0 -0000003b: R29 := R31 -00000042: R29 := mem[R31, el]:u64 -00000047: R30 := mem[R31 + 8, el]:u64 -0000004b: R31 := R31 + 0x10 -00000050: call R30 with noreturn - -00000576: sub _init(_init_result) -000005aa: _init_result :: out u32 = low:32[R0] - -000004ca: -000004d0: #5 := R31 - 0x10 -000004d6: mem := mem with [#5, el]:u64 <- R29 -000004dc: mem := mem with [#5 + 8, el]:u64 <- R30 -000004e0: R31 := #5 -000004e6: R29 := R31 -000004eb: R30 := 0x590 -000004ed: call @call_weak_fn with return %000004ef - -000004ef: -000004f4: R29 := mem[R31, el]:u64 -000004f9: R30 := mem[R31 + 8, el]:u64 -000004fd: R31 := R31 + 0x10 -00000502: call R30 with noreturn - -00000577: sub _start(_start_result) -000005ab: _start_result :: out u32 = low:32[R0] - -00000184: -00000189: R29 := 0 -0000018e: R30 := 0 -00000194: R5 := R0 -0000019b: R1 := mem[R31, el]:u64 -000001a1: R2 := R31 + 8 -000001a7: R6 := R31 -000001ac: R0 := 0x10000 -000001b3: R0 := mem[R0 + 0xFD8, el]:u64 -000001b8: R3 := 0 -000001bd: R4 := 0 -000001c2: R30 := 0x630 -000001c5: call @__libc_start_main with return %000001c7 - -000001c7: -000001ca: R30 := 0x634 -000001cd: call @abort with return %0000059a - -0000059a: -0000059b: call @call_weak_fn with noreturn - -0000057a: sub abort() - - -000001cb: -00000449: R16 := 0x11000 -00000450: R17 := mem[R16 + 0x18, el]:u64 -00000456: R16 := R16 + 0x18 -0000045b: call R17 with noreturn - -0000057b: sub call_weak_fn(call_weak_fn_result) -000005ac: call_weak_fn_result :: out u32 = low:32[R0] - -000001cf: -000001d2: R0 := 0x10000 -000001d9: R0 := mem[R0 + 0xFD0, el]:u64 -000001df: when R0 = 0 goto %000001dd -0000059c: goto %00000365 - -000001dd: -000001e5: call R30 with noreturn - -00000365: -00000368: goto @__gmon_start__ - -00000366: -00000433: R16 := 0x11000 -0000043a: R17 := mem[R16 + 0x10, el]:u64 -00000440: R16 := R16 + 0x10 -00000445: call R17 with noreturn - -0000057d: sub deregister_tm_clones(deregister_tm_clones_result) -000005ad: deregister_tm_clones_result :: out u32 = low:32[R0] - -000001eb: -000001ee: R0 := 0x11000 -000001f4: R0 := R0 + 0x30 -000001f9: R1 := 0x11000 -000001ff: R1 := R1 + 0x30 -00000205: #1 := ~R0 -0000020a: #2 := R1 + ~R0 -00000210: VF := extend:65[#2 + 1] <> extend:65[R1] + extend:65[#1] + 1 -00000216: CF := pad:65[#2 + 1] <> pad:65[R1] + pad:65[#1] + 1 -0000021a: ZF := #2 + 1 = 0 -0000021e: NF := 63:63[#2 + 1] -00000224: when ZF goto %00000222 -0000059d: goto %00000347 - -00000347: -0000034a: R1 := 0x10000 -00000351: R1 := mem[R1 + 0xFC0, el]:u64 -00000356: when R1 = 0 goto %00000222 -0000059e: goto %0000035a - -00000222: -0000022a: call R30 with noreturn - -0000035a: -0000035e: R16 := R1 -00000363: call R16 with noreturn - -00000580: sub frame_dummy(frame_dummy_result) -000005ae: frame_dummy_result :: out u32 = low:32[R0] - -000002c2: -000002c4: call @register_tm_clones with noreturn - -00000581: sub main(main_argc, main_argv, main_result) -000005af: main_argc :: in u32 = low:32[R0] -000005b0: main_argv :: in out u64 = R1 -000005b1: main_result :: out u32 = low:32[R0] - -000002c6: -000002c9: R0 := 0 -000002ce: R8 := 0x11000 -000002d3: R9 := 0x11000 -000002d8: R10 := 2 -000002df: mem := mem with [R8 + 0x3C, el]:u32 <- 0 -000002e7: mem := mem with [R9 + 0x34, el]:u32 <- 31:0[R10] -000002ec: call R30 with noreturn - -00000582: sub register_tm_clones(register_tm_clones_result) -000005b2: register_tm_clones_result :: out u32 = low:32[R0] - -0000022c: -0000022f: R0 := 0x11000 -00000235: R0 := R0 + 0x30 -0000023a: R1 := 0x11000 -00000240: R1 := R1 + 0x30 -00000247: R1 := R1 + ~R0 + 1 -0000024d: R2 := 0.63:63[R1] -00000254: R1 := R2 + (R1 ~>> 3) -0000025a: R1 := extend:64[63:1[R1]] -00000260: when R1 = 0 goto %0000025e -0000059f: goto %00000329 - -00000329: -0000032c: R2 := 0x10000 -00000333: R2 := mem[R2 + 0xFE0, el]:u64 -00000338: when R2 = 0 goto %0000025e -000005a0: goto %0000033c - -0000025e: -00000266: call R30 with noreturn - -0000033c: -00000340: R16 := R2 -00000345: call R16 with noreturn diff --git a/src/test/correct/secret_write/clang_O2/secret_write.expected b/src/test/correct/secret_write/clang_O2/secret_write.expected index e6769bfef..6fdfc9ed7 100644 --- a/src/test/correct/secret_write/clang_O2/secret_write.expected +++ b/src/test/correct/secret_write/clang_O2/secret_write.expected @@ -9,11 +9,11 @@ var {:extern} R8: bv64; var {:extern} R9: bv64; var {:extern} mem: [bv64]bv8; const {:extern} $secret_addr: bv64; -axiom ($secret_addr == 69688bv64); +axiom ($secret_addr == 131096bv64); const {:extern} $x_addr: bv64; -axiom ($x_addr == 69692bv64); +axiom ($x_addr == 131100bv64); const {:extern} $z_addr: bv64; -axiom ($z_addr == 69684bv64); +axiom ($z_addr == 131092bv64); function {:extern} L(mem$in: [bv64]bv8, index: bv64) returns (bool) { (if (index == $secret_addr) then false else (if (index == $x_addr) then (bvsmod32(memory_load32_le(mem$in, $z_addr), 2bv32) == 0bv32) else (if (index == $z_addr) then true else false))) } @@ -25,6 +25,10 @@ function {:extern} gamma_load32(gammaMap: [bv64]bool, index: bv64) returns (bool (gammaMap[bvadd64(index, 3bv64)] && (gammaMap[bvadd64(index, 2bv64)] && (gammaMap[bvadd64(index, 1bv64)] && gammaMap[index]))) } +function {:extern} gamma_load64(gammaMap: [bv64]bool, index: bv64) returns (bool) { + (gammaMap[bvadd64(index, 7bv64)] && (gammaMap[bvadd64(index, 6bv64)] && (gammaMap[bvadd64(index, 5bv64)] && (gammaMap[bvadd64(index, 4bv64)] && (gammaMap[bvadd64(index, 3bv64)] && (gammaMap[bvadd64(index, 2bv64)] && (gammaMap[bvadd64(index, 1bv64)] && gammaMap[index]))))))) +} + function {:extern} gamma_store32(gammaMap: [bv64]bool, index: bv64, value: bool) returns ([bv64]bool) { gammaMap[index := value][bvadd64(index, 1bv64) := value][bvadd64(index, 2bv64) := value][bvadd64(index, 3bv64) := value] } @@ -46,11 +50,13 @@ procedure {:extern} rely(); ensures (forall i: bv64 :: (((mem[i] == old(mem[i])) ==> (Gamma_mem[i] == old(Gamma_mem[i]))))); ensures (memory_load32_le(mem, $z_addr) == old(memory_load32_le(mem, $z_addr))); ensures (old(gamma_load32(Gamma_mem, $x_addr)) ==> gamma_load32(Gamma_mem, $x_addr)); - free ensures (memory_load32_le(mem, 1860bv64) == 131073bv32); - free ensures (memory_load64_le(mem, 69064bv64) == 1808bv64); - free ensures (memory_load64_le(mem, 69072bv64) == 1728bv64); - free ensures (memory_load64_le(mem, 69592bv64) == 1812bv64); - free ensures (memory_load64_le(mem, 69672bv64) == 69672bv64); + free ensures (memory_load32_le(mem, 2316bv64) == 131073bv32); + free ensures (memory_load64_le(mem, 130424bv64) == 2256bv64); + free ensures (memory_load64_le(mem, 130432bv64) == 2176bv64); + free ensures (memory_load64_le(mem, 131032bv64) == 131092bv64); + free ensures (memory_load64_le(mem, 131040bv64) == 131100bv64); + free ensures (memory_load64_le(mem, 131056bv64) == 2260bv64); + free ensures (memory_load64_le(mem, 131080bv64) == 131080bv64); procedure {:extern} rely_transitive(); modifies Gamma_mem, mem; @@ -79,54 +85,68 @@ implementation {:extern} guarantee_reflexive() assert bvsge32(memory_load32_le(mem, $z_addr), memory_load32_le(mem, $z_addr)); } -procedure main_1812(); +procedure main(); modifies Gamma_R0, Gamma_R10, Gamma_R8, Gamma_R9, Gamma_mem, R0, R10, R8, R9, mem; requires (gamma_load32(Gamma_mem, $x_addr) == true); requires (gamma_load32(Gamma_mem, $z_addr) == true); requires (gamma_load32(Gamma_mem, $secret_addr) == false); requires (memory_load32_le(mem, $z_addr) == 0bv32); - free requires (memory_load64_le(mem, 69664bv64) == 0bv64); - free requires (memory_load64_le(mem, 69672bv64) == 69672bv64); - free requires (memory_load32_le(mem, 1860bv64) == 131073bv32); - free requires (memory_load64_le(mem, 69064bv64) == 1808bv64); - free requires (memory_load64_le(mem, 69072bv64) == 1728bv64); - free requires (memory_load64_le(mem, 69592bv64) == 1812bv64); - free requires (memory_load64_le(mem, 69672bv64) == 69672bv64); - free ensures (memory_load32_le(mem, 1860bv64) == 131073bv32); - free ensures (memory_load64_le(mem, 69064bv64) == 1808bv64); - free ensures (memory_load64_le(mem, 69072bv64) == 1728bv64); - free ensures (memory_load64_le(mem, 69592bv64) == 1812bv64); - free ensures (memory_load64_le(mem, 69672bv64) == 69672bv64); - -implementation main_1812() + free requires (memory_load64_le(mem, 131072bv64) == 0bv64); + free requires (memory_load64_le(mem, 131080bv64) == 131080bv64); + free requires (memory_load32_le(mem, 2316bv64) == 131073bv32); + free requires (memory_load64_le(mem, 130424bv64) == 2256bv64); + free requires (memory_load64_le(mem, 130432bv64) == 2176bv64); + free requires (memory_load64_le(mem, 131032bv64) == 131092bv64); + free requires (memory_load64_le(mem, 131040bv64) == 131100bv64); + free requires (memory_load64_le(mem, 131056bv64) == 2260bv64); + free requires (memory_load64_le(mem, 131080bv64) == 131080bv64); + free ensures (memory_load32_le(mem, 2316bv64) == 131073bv32); + free ensures (memory_load64_le(mem, 130424bv64) == 2256bv64); + free ensures (memory_load64_le(mem, 130432bv64) == 2176bv64); + free ensures (memory_load64_le(mem, 131032bv64) == 131092bv64); + free ensures (memory_load64_le(mem, 131040bv64) == 131100bv64); + free ensures (memory_load64_le(mem, 131056bv64) == 2260bv64); + free ensures (memory_load64_le(mem, 131080bv64) == 131080bv64); + +implementation main() { + var $load$18: bv64; + var $load$19: bv64; + var Gamma_$load$18: bool; + var Gamma_$load$19: bool; var Gamma_x_old: bool; var z_old: bv32; lmain: assume {:captureState "lmain"} true; + R8, Gamma_R8 := 126976bv64, true; + R9, Gamma_R9 := 126976bv64, true; R0, Gamma_R0 := 0bv64, true; - R8, Gamma_R8 := 69632bv64, true; - R9, Gamma_R9 := 69632bv64, true; + call rely(); + $load$18, Gamma_$load$18 := memory_load64_le(mem, bvadd64(R8, 4064bv64)), (gamma_load64(Gamma_mem, bvadd64(R8, 4064bv64)) || L(mem, bvadd64(R8, 4064bv64))); + R8, Gamma_R8 := $load$18, Gamma_$load$18; + call rely(); + $load$19, Gamma_$load$19 := memory_load64_le(mem, bvadd64(R9, 4056bv64)), (gamma_load64(Gamma_mem, bvadd64(R9, 4056bv64)) || L(mem, bvadd64(R9, 4056bv64))); + R9, Gamma_R9 := $load$19, Gamma_$load$19; R10, Gamma_R10 := 2bv64, true; call rely(); + assert (L(mem, R8) ==> true); z_old := memory_load32_le(mem, $z_addr); Gamma_x_old := (gamma_load32(Gamma_mem, $x_addr) || L(mem, $x_addr)); - assert (L(mem, bvadd64(R8, 60bv64)) ==> true); - mem, Gamma_mem := memory_store32_le(mem, bvadd64(R8, 60bv64), 0bv32), gamma_store32(Gamma_mem, bvadd64(R8, 60bv64), true); - assert ((bvadd64(R8, 60bv64) == $z_addr) ==> (L(mem, $x_addr) ==> Gamma_x_old)); + mem, Gamma_mem := memory_store32_le(mem, R8, 0bv32), gamma_store32(Gamma_mem, R8, true); + assert ((R8 == $z_addr) ==> (L(mem, $x_addr) ==> Gamma_x_old)); assert bvsge32(memory_load32_le(mem, $z_addr), z_old); - assume {:captureState "%000002df"} true; + assume {:captureState "%00000294"} true; call rely(); + assert (L(mem, R9) ==> Gamma_R10); z_old := memory_load32_le(mem, $z_addr); Gamma_x_old := (gamma_load32(Gamma_mem, $x_addr) || L(mem, $x_addr)); - assert (L(mem, bvadd64(R9, 52bv64)) ==> Gamma_R10); - mem, Gamma_mem := memory_store32_le(mem, bvadd64(R9, 52bv64), R10[32:0]), gamma_store32(Gamma_mem, bvadd64(R9, 52bv64), Gamma_R10); - assert ((bvadd64(R9, 52bv64) == $z_addr) ==> (L(mem, $x_addr) ==> Gamma_x_old)); + mem, Gamma_mem := memory_store32_le(mem, R9, R10[32:0]), gamma_store32(Gamma_mem, R9, Gamma_R10); + assert ((R9 == $z_addr) ==> (L(mem, $x_addr) ==> Gamma_x_old)); assert bvsge32(memory_load32_le(mem, $z_addr), z_old); - assume {:captureState "%000002e7"} true; - goto main_1812_basil_return; - main_1812_basil_return: - assume {:captureState "main_1812_basil_return"} true; + assume {:captureState "%00000298"} true; + goto main_basil_return; + main_basil_return: + assume {:captureState "main_basil_return"} true; return; } diff --git a/src/test/correct/secret_write/clang_O2/secret_write.gts b/src/test/correct/secret_write/clang_O2/secret_write.gts deleted file mode 100644 index ebb8a6935..000000000 Binary files a/src/test/correct/secret_write/clang_O2/secret_write.gts and /dev/null differ diff --git a/src/test/correct/secret_write/clang_O2/secret_write.md5sum b/src/test/correct/secret_write/clang_O2/secret_write.md5sum new file mode 100644 index 000000000..0a4b8d020 --- /dev/null +++ b/src/test/correct/secret_write/clang_O2/secret_write.md5sum @@ -0,0 +1,5 @@ +b6c7611e1bfd8a0a8fa1e7af0f1e00eb correct/secret_write/clang_O2/a.out +32c112c782a51832305b7fafe19f9b27 correct/secret_write/clang_O2/secret_write.adt +dc97e3dd201bd1ce59af1f1fdb89bcf2 correct/secret_write/clang_O2/secret_write.bir +22f686c97dcd03c84468312523fbe3f4 correct/secret_write/clang_O2/secret_write.relf +95d40713c5eb22dd3129991e6c6d60e6 correct/secret_write/clang_O2/secret_write.gts diff --git a/src/test/correct/secret_write/clang_O2/secret_write.relf b/src/test/correct/secret_write/clang_O2/secret_write.relf deleted file mode 100644 index 25959495a..000000000 --- a/src/test/correct/secret_write/clang_O2/secret_write.relf +++ /dev/null @@ -1,125 +0,0 @@ - -Relocation section '.rela.dyn' at offset 0x460 contains 8 entries: - Offset Info Type Symbol's Value Symbol's Name + Addend -0000000000010dc8 0000000000000403 R_AARCH64_RELATIVE 710 -0000000000010dd0 0000000000000403 R_AARCH64_RELATIVE 6c0 -0000000000010fd8 0000000000000403 R_AARCH64_RELATIVE 714 -0000000000011028 0000000000000403 R_AARCH64_RELATIVE 11028 -0000000000010fc0 0000000400000401 R_AARCH64_GLOB_DAT 0000000000000000 _ITM_deregisterTMCloneTable + 0 -0000000000010fc8 0000000500000401 R_AARCH64_GLOB_DAT 0000000000000000 __cxa_finalize@GLIBC_2.17 + 0 -0000000000010fd0 0000000600000401 R_AARCH64_GLOB_DAT 0000000000000000 __gmon_start__ + 0 -0000000000010fe0 0000000800000401 R_AARCH64_GLOB_DAT 0000000000000000 _ITM_registerTMCloneTable + 0 - -Relocation section '.rela.plt' at offset 0x520 contains 4 entries: - Offset Info Type Symbol's Value Symbol's Name + Addend -0000000000011000 0000000300000402 R_AARCH64_JUMP_SLOT 0000000000000000 __libc_start_main@GLIBC_2.34 + 0 -0000000000011008 0000000500000402 R_AARCH64_JUMP_SLOT 0000000000000000 __cxa_finalize@GLIBC_2.17 + 0 -0000000000011010 0000000600000402 R_AARCH64_JUMP_SLOT 0000000000000000 __gmon_start__ + 0 -0000000000011018 0000000700000402 R_AARCH64_JUMP_SLOT 0000000000000000 abort@GLIBC_2.17 + 0 - -Symbol table '.dynsym' contains 9 entries: - Num: Value Size Type Bind Vis Ndx Name - 0: 0000000000000000 0 NOTYPE LOCAL DEFAULT UND - 1: 0000000000000580 0 SECTION LOCAL DEFAULT 11 .init - 2: 0000000000011020 0 SECTION LOCAL DEFAULT 23 .data - 3: 0000000000000000 0 FUNC GLOBAL DEFAULT UND __libc_start_main@GLIBC_2.34 (2) - 4: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_deregisterTMCloneTable - 5: 0000000000000000 0 FUNC WEAK DEFAULT UND __cxa_finalize@GLIBC_2.17 (3) - 6: 0000000000000000 0 NOTYPE WEAK DEFAULT UND __gmon_start__ - 7: 0000000000000000 0 FUNC GLOBAL DEFAULT UND abort@GLIBC_2.17 (3) - 8: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_registerTMCloneTable - -Symbol table '.symtab' contains 92 entries: - Num: Value Size Type Bind Vis Ndx Name - 0: 0000000000000000 0 NOTYPE LOCAL DEFAULT UND - 1: 0000000000000238 0 SECTION LOCAL DEFAULT 1 .interp - 2: 0000000000000254 0 SECTION LOCAL DEFAULT 2 .note.gnu.build-id - 3: 0000000000000278 0 SECTION LOCAL DEFAULT 3 .note.ABI-tag - 4: 0000000000000298 0 SECTION LOCAL DEFAULT 4 .gnu.hash - 5: 00000000000002b8 0 SECTION LOCAL DEFAULT 5 .dynsym - 6: 0000000000000390 0 SECTION LOCAL DEFAULT 6 .dynstr - 7: 000000000000041e 0 SECTION LOCAL DEFAULT 7 .gnu.version - 8: 0000000000000430 0 SECTION LOCAL DEFAULT 8 .gnu.version_r - 9: 0000000000000460 0 SECTION LOCAL DEFAULT 9 .rela.dyn - 10: 0000000000000520 0 SECTION LOCAL DEFAULT 10 .rela.plt - 11: 0000000000000580 0 SECTION LOCAL DEFAULT 11 .init - 12: 00000000000005a0 0 SECTION LOCAL DEFAULT 12 .plt - 13: 0000000000000600 0 SECTION LOCAL DEFAULT 13 .text - 14: 0000000000000730 0 SECTION LOCAL DEFAULT 14 .fini - 15: 0000000000000744 0 SECTION LOCAL DEFAULT 15 .rodata - 16: 0000000000000748 0 SECTION LOCAL DEFAULT 16 .eh_frame_hdr - 17: 0000000000000788 0 SECTION LOCAL DEFAULT 17 .eh_frame - 18: 0000000000010dc8 0 SECTION LOCAL DEFAULT 18 .init_array - 19: 0000000000010dd0 0 SECTION LOCAL DEFAULT 19 .fini_array - 20: 0000000000010dd8 0 SECTION LOCAL DEFAULT 20 .dynamic - 21: 0000000000010fb8 0 SECTION LOCAL DEFAULT 21 .got - 22: 0000000000010fe8 0 SECTION LOCAL DEFAULT 22 .got.plt - 23: 0000000000011020 0 SECTION LOCAL DEFAULT 23 .data - 24: 0000000000011030 0 SECTION LOCAL DEFAULT 24 .bss - 25: 0000000000000000 0 SECTION LOCAL DEFAULT 25 .comment - 26: 0000000000000000 0 FILE LOCAL DEFAULT ABS Scrt1.o - 27: 0000000000000278 0 NOTYPE LOCAL DEFAULT 3 $d - 28: 0000000000000278 32 OBJECT LOCAL DEFAULT 3 __abi_tag - 29: 0000000000000600 0 NOTYPE LOCAL DEFAULT 13 $x - 30: 000000000000079c 0 NOTYPE LOCAL DEFAULT 17 $d - 31: 0000000000000744 0 NOTYPE LOCAL DEFAULT 15 $d - 32: 0000000000000000 0 FILE LOCAL DEFAULT ABS crti.o - 33: 0000000000000634 0 NOTYPE LOCAL DEFAULT 13 $x - 34: 0000000000000634 20 FUNC LOCAL DEFAULT 13 call_weak_fn - 35: 0000000000000580 0 NOTYPE LOCAL DEFAULT 11 $x - 36: 0000000000000730 0 NOTYPE LOCAL DEFAULT 14 $x - 37: 0000000000000000 0 FILE LOCAL DEFAULT ABS crtn.o - 38: 0000000000000590 0 NOTYPE LOCAL DEFAULT 11 $x - 39: 000000000000073c 0 NOTYPE LOCAL DEFAULT 14 $x - 40: 0000000000000000 0 FILE LOCAL DEFAULT ABS crtstuff.c - 41: 0000000000000650 0 NOTYPE LOCAL DEFAULT 13 $x - 42: 0000000000000650 0 FUNC LOCAL DEFAULT 13 deregister_tm_clones - 43: 0000000000000680 0 FUNC LOCAL DEFAULT 13 register_tm_clones - 44: 0000000000011028 0 NOTYPE LOCAL DEFAULT 23 $d - 45: 00000000000006c0 0 FUNC LOCAL DEFAULT 13 __do_global_dtors_aux - 46: 0000000000011030 1 OBJECT LOCAL DEFAULT 24 completed.0 - 47: 0000000000010dd0 0 NOTYPE LOCAL DEFAULT 19 $d - 48: 0000000000010dd0 0 OBJECT LOCAL DEFAULT 19 __do_global_dtors_aux_fini_array_entry - 49: 0000000000000710 0 FUNC LOCAL DEFAULT 13 frame_dummy - 50: 0000000000010dc8 0 NOTYPE LOCAL DEFAULT 18 $d - 51: 0000000000010dc8 0 OBJECT LOCAL DEFAULT 18 __frame_dummy_init_array_entry - 52: 00000000000007b0 0 NOTYPE LOCAL DEFAULT 17 $d - 53: 0000000000011030 0 NOTYPE LOCAL DEFAULT 24 $d - 54: 0000000000000000 0 FILE LOCAL DEFAULT ABS secret_write.c - 55: 0000000000000714 0 NOTYPE LOCAL DEFAULT 13 $x.0 - 56: 0000000000011034 0 NOTYPE LOCAL DEFAULT 24 $d.1 - 57: 000000000000002a 0 NOTYPE LOCAL DEFAULT 25 $d.2 - 58: 0000000000000810 0 NOTYPE LOCAL DEFAULT 17 $d.3 - 59: 0000000000000000 0 FILE LOCAL DEFAULT ABS crtstuff.c - 60: 0000000000000838 0 NOTYPE LOCAL DEFAULT 17 $d - 61: 0000000000000838 0 OBJECT LOCAL DEFAULT 17 __FRAME_END__ - 62: 0000000000000000 0 FILE LOCAL DEFAULT ABS - 63: 0000000000010dd8 0 OBJECT LOCAL DEFAULT ABS _DYNAMIC - 64: 0000000000000748 0 NOTYPE LOCAL DEFAULT 16 __GNU_EH_FRAME_HDR - 65: 0000000000010fb8 0 OBJECT LOCAL DEFAULT ABS _GLOBAL_OFFSET_TABLE_ - 66: 00000000000005a0 0 NOTYPE LOCAL DEFAULT 12 $x - 67: 0000000000000000 0 FUNC GLOBAL DEFAULT UND __libc_start_main@GLIBC_2.34 - 68: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_deregisterTMCloneTable - 69: 0000000000011020 0 NOTYPE WEAK DEFAULT 23 data_start - 70: 0000000000011030 0 NOTYPE GLOBAL DEFAULT 24 __bss_start__ - 71: 0000000000000000 0 FUNC WEAK DEFAULT UND __cxa_finalize@GLIBC_2.17 - 72: 0000000000011040 0 NOTYPE GLOBAL DEFAULT 24 _bss_end__ - 73: 0000000000011030 0 NOTYPE GLOBAL DEFAULT 23 _edata - 74: 0000000000011034 4 OBJECT GLOBAL DEFAULT 24 z - 75: 000000000001103c 4 OBJECT GLOBAL DEFAULT 24 x - 76: 0000000000000730 0 FUNC GLOBAL HIDDEN 14 _fini - 77: 0000000000011040 0 NOTYPE GLOBAL DEFAULT 24 __bss_end__ - 78: 0000000000011020 0 NOTYPE GLOBAL DEFAULT 23 __data_start - 79: 0000000000000000 0 NOTYPE WEAK DEFAULT UND __gmon_start__ - 80: 0000000000011028 0 OBJECT GLOBAL HIDDEN 23 __dso_handle - 81: 0000000000000000 0 FUNC GLOBAL DEFAULT UND abort@GLIBC_2.17 - 82: 0000000000000744 4 OBJECT GLOBAL DEFAULT 15 _IO_stdin_used - 83: 0000000000011038 4 OBJECT GLOBAL DEFAULT 24 secret - 84: 0000000000011040 0 NOTYPE GLOBAL DEFAULT 24 _end - 85: 0000000000000600 52 FUNC GLOBAL DEFAULT 13 _start - 86: 0000000000011040 0 NOTYPE GLOBAL DEFAULT 24 __end__ - 87: 0000000000011030 0 NOTYPE GLOBAL DEFAULT 24 __bss_start - 88: 0000000000000714 28 FUNC GLOBAL DEFAULT 13 main - 89: 0000000000011030 0 OBJECT GLOBAL HIDDEN 23 __TMC_END__ - 90: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_registerTMCloneTable - 91: 0000000000000580 0 FUNC GLOBAL HIDDEN 11 _init diff --git a/src/test/correct/secret_write/clang_O2/secret_write_gtirb.expected b/src/test/correct/secret_write/clang_O2/secret_write_gtirb.expected index ad0ca0dfe..9adb05fb7 100644 --- a/src/test/correct/secret_write/clang_O2/secret_write_gtirb.expected +++ b/src/test/correct/secret_write/clang_O2/secret_write_gtirb.expected @@ -9,11 +9,11 @@ var {:extern} R8: bv64; var {:extern} R9: bv64; var {:extern} mem: [bv64]bv8; const {:extern} $secret_addr: bv64; -axiom ($secret_addr == 69688bv64); +axiom ($secret_addr == 131096bv64); const {:extern} $x_addr: bv64; -axiom ($x_addr == 69692bv64); +axiom ($x_addr == 131100bv64); const {:extern} $z_addr: bv64; -axiom ($z_addr == 69684bv64); +axiom ($z_addr == 131092bv64); function {:extern} L(mem$in: [bv64]bv8, index: bv64) returns (bool) { (if (index == $secret_addr) then false else (if (index == $x_addr) then (bvsmod32(memory_load32_le(mem$in, $z_addr), 2bv32) == 0bv32) else (if (index == $z_addr) then true else false))) } @@ -25,6 +25,10 @@ function {:extern} gamma_load32(gammaMap: [bv64]bool, index: bv64) returns (bool (gammaMap[bvadd64(index, 3bv64)] && (gammaMap[bvadd64(index, 2bv64)] && (gammaMap[bvadd64(index, 1bv64)] && gammaMap[index]))) } +function {:extern} gamma_load64(gammaMap: [bv64]bool, index: bv64) returns (bool) { + (gammaMap[bvadd64(index, 7bv64)] && (gammaMap[bvadd64(index, 6bv64)] && (gammaMap[bvadd64(index, 5bv64)] && (gammaMap[bvadd64(index, 4bv64)] && (gammaMap[bvadd64(index, 3bv64)] && (gammaMap[bvadd64(index, 2bv64)] && (gammaMap[bvadd64(index, 1bv64)] && gammaMap[index]))))))) +} + function {:extern} gamma_store32(gammaMap: [bv64]bool, index: bv64, value: bool) returns ([bv64]bool) { gammaMap[index := value][bvadd64(index, 1bv64) := value][bvadd64(index, 2bv64) := value][bvadd64(index, 3bv64) := value] } @@ -46,11 +50,13 @@ procedure {:extern} rely(); ensures (forall i: bv64 :: (((mem[i] == old(mem[i])) ==> (Gamma_mem[i] == old(Gamma_mem[i]))))); ensures (memory_load32_le(mem, $z_addr) == old(memory_load32_le(mem, $z_addr))); ensures (old(gamma_load32(Gamma_mem, $x_addr)) ==> gamma_load32(Gamma_mem, $x_addr)); - free ensures (memory_load32_le(mem, 1860bv64) == 131073bv32); - free ensures (memory_load64_le(mem, 69064bv64) == 1808bv64); - free ensures (memory_load64_le(mem, 69072bv64) == 1728bv64); - free ensures (memory_load64_le(mem, 69592bv64) == 1812bv64); - free ensures (memory_load64_le(mem, 69672bv64) == 69672bv64); + free ensures (memory_load32_le(mem, 2316bv64) == 131073bv32); + free ensures (memory_load64_le(mem, 130424bv64) == 2256bv64); + free ensures (memory_load64_le(mem, 130432bv64) == 2176bv64); + free ensures (memory_load64_le(mem, 131032bv64) == 131092bv64); + free ensures (memory_load64_le(mem, 131040bv64) == 131100bv64); + free ensures (memory_load64_le(mem, 131056bv64) == 2260bv64); + free ensures (memory_load64_le(mem, 131080bv64) == 131080bv64); procedure {:extern} rely_transitive(); modifies Gamma_mem, mem; @@ -79,54 +85,68 @@ implementation {:extern} guarantee_reflexive() assert bvsge32(memory_load32_le(mem, $z_addr), memory_load32_le(mem, $z_addr)); } -procedure main_1812(); +procedure main(); modifies Gamma_R0, Gamma_R10, Gamma_R8, Gamma_R9, Gamma_mem, R0, R10, R8, R9, mem; requires (gamma_load32(Gamma_mem, $x_addr) == true); requires (gamma_load32(Gamma_mem, $z_addr) == true); requires (gamma_load32(Gamma_mem, $secret_addr) == false); requires (memory_load32_le(mem, $z_addr) == 0bv32); - free requires (memory_load64_le(mem, 69664bv64) == 0bv64); - free requires (memory_load64_le(mem, 69672bv64) == 69672bv64); - free requires (memory_load32_le(mem, 1860bv64) == 131073bv32); - free requires (memory_load64_le(mem, 69064bv64) == 1808bv64); - free requires (memory_load64_le(mem, 69072bv64) == 1728bv64); - free requires (memory_load64_le(mem, 69592bv64) == 1812bv64); - free requires (memory_load64_le(mem, 69672bv64) == 69672bv64); - free ensures (memory_load32_le(mem, 1860bv64) == 131073bv32); - free ensures (memory_load64_le(mem, 69064bv64) == 1808bv64); - free ensures (memory_load64_le(mem, 69072bv64) == 1728bv64); - free ensures (memory_load64_le(mem, 69592bv64) == 1812bv64); - free ensures (memory_load64_le(mem, 69672bv64) == 69672bv64); - -implementation main_1812() + free requires (memory_load64_le(mem, 131072bv64) == 0bv64); + free requires (memory_load64_le(mem, 131080bv64) == 131080bv64); + free requires (memory_load32_le(mem, 2316bv64) == 131073bv32); + free requires (memory_load64_le(mem, 130424bv64) == 2256bv64); + free requires (memory_load64_le(mem, 130432bv64) == 2176bv64); + free requires (memory_load64_le(mem, 131032bv64) == 131092bv64); + free requires (memory_load64_le(mem, 131040bv64) == 131100bv64); + free requires (memory_load64_le(mem, 131056bv64) == 2260bv64); + free requires (memory_load64_le(mem, 131080bv64) == 131080bv64); + free ensures (memory_load32_le(mem, 2316bv64) == 131073bv32); + free ensures (memory_load64_le(mem, 130424bv64) == 2256bv64); + free ensures (memory_load64_le(mem, 130432bv64) == 2176bv64); + free ensures (memory_load64_le(mem, 131032bv64) == 131092bv64); + free ensures (memory_load64_le(mem, 131040bv64) == 131100bv64); + free ensures (memory_load64_le(mem, 131056bv64) == 2260bv64); + free ensures (memory_load64_le(mem, 131080bv64) == 131080bv64); + +implementation main() { + var $load6: bv64; + var $load7: bv64; + var Gamma_$load6: bool; + var Gamma_$load7: bool; var Gamma_x_old: bool; var z_old: bv32; - main_1812__0__aSiaHsE5TDyirZoC~C78XA: - assume {:captureState "main_1812__0__aSiaHsE5TDyirZoC~C78XA"} true; + $main$__0__$lwyID0MJQb6vgyjzPFtz8Q: + assume {:captureState "$main$__0__$lwyID0MJQb6vgyjzPFtz8Q"} true; + R8, Gamma_R8 := 126976bv64, true; + R9, Gamma_R9 := 126976bv64, true; R0, Gamma_R0 := 0bv64, true; - R8, Gamma_R8 := 69632bv64, true; - R9, Gamma_R9 := 69632bv64, true; + call rely(); + $load6, Gamma_$load6 := memory_load64_le(mem, bvadd64(R8, 4064bv64)), (gamma_load64(Gamma_mem, bvadd64(R8, 4064bv64)) || L(mem, bvadd64(R8, 4064bv64))); + R8, Gamma_R8 := $load6, Gamma_$load6; + call rely(); + $load7, Gamma_$load7 := memory_load64_le(mem, bvadd64(R9, 4056bv64)), (gamma_load64(Gamma_mem, bvadd64(R9, 4056bv64)) || L(mem, bvadd64(R9, 4056bv64))); + R9, Gamma_R9 := $load7, Gamma_$load7; R10, Gamma_R10 := 2bv64, true; call rely(); + assert (L(mem, R8) ==> true); z_old := memory_load32_le(mem, $z_addr); Gamma_x_old := (gamma_load32(Gamma_mem, $x_addr) || L(mem, $x_addr)); - assert (L(mem, bvadd64(R8, 60bv64)) ==> true); - mem, Gamma_mem := memory_store32_le(mem, bvadd64(R8, 60bv64), 0bv32), gamma_store32(Gamma_mem, bvadd64(R8, 60bv64), true); - assert ((bvadd64(R8, 60bv64) == $z_addr) ==> (L(mem, $x_addr) ==> Gamma_x_old)); + mem, Gamma_mem := memory_store32_le(mem, R8, 0bv32), gamma_store32(Gamma_mem, R8, true); + assert ((R8 == $z_addr) ==> (L(mem, $x_addr) ==> Gamma_x_old)); assert bvsge32(memory_load32_le(mem, $z_addr), z_old); - assume {:captureState "1828_0"} true; + assume {:captureState "2284$0"} true; call rely(); + assert (L(mem, R9) ==> Gamma_R10); z_old := memory_load32_le(mem, $z_addr); Gamma_x_old := (gamma_load32(Gamma_mem, $x_addr) || L(mem, $x_addr)); - assert (L(mem, bvadd64(R9, 52bv64)) ==> Gamma_R10); - mem, Gamma_mem := memory_store32_le(mem, bvadd64(R9, 52bv64), R10[32:0]), gamma_store32(Gamma_mem, bvadd64(R9, 52bv64), Gamma_R10); - assert ((bvadd64(R9, 52bv64) == $z_addr) ==> (L(mem, $x_addr) ==> Gamma_x_old)); + mem, Gamma_mem := memory_store32_le(mem, R9, R10[32:0]), gamma_store32(Gamma_mem, R9, Gamma_R10); + assert ((R9 == $z_addr) ==> (L(mem, $x_addr) ==> Gamma_x_old)); assert bvsge32(memory_load32_le(mem, $z_addr), z_old); - assume {:captureState "1832_0"} true; - goto main_1812_basil_return; - main_1812_basil_return: - assume {:captureState "main_1812_basil_return"} true; + assume {:captureState "2288$0"} true; + goto main_basil_return; + main_basil_return: + assume {:captureState "main_basil_return"} true; return; } diff --git a/src/test/correct/secret_write/clang_pic/secret_write.adt b/src/test/correct/secret_write/clang_pic/secret_write.adt deleted file mode 100644 index 8e47c539b..000000000 --- a/src/test/correct/secret_write/clang_pic/secret_write.adt +++ /dev/null @@ -1,532 +0,0 @@ -Project(Attrs([Attr("filename","\"clang_pic/secret_write.out\""), -Attr("image-specification","(declare abi (name str))\n(declare arch (name str))\n(declare base-address (addr int))\n(declare bias (off int))\n(declare bits (size int))\n(declare code-region (addr int) (size int) (off int))\n(declare code-start (addr int))\n(declare entry-point (addr int))\n(declare external-reference (addr int) (name str))\n(declare format (name str))\n(declare is-executable (flag bool))\n(declare is-little-endian (flag bool))\n(declare llvm:base-address (addr int))\n(declare llvm:code-entry (name str) (off int) (size int))\n(declare llvm:coff-import-library (name str))\n(declare llvm:coff-virtual-section-header (name str) (addr int) (size int))\n(declare llvm:elf-program-header (name str) (off int) (size int))\n(declare llvm:elf-program-header-flags (name str) (ld bool) (r bool) \n (w bool) (x bool))\n(declare llvm:elf-virtual-program-header (name str) (addr int) (size int))\n(declare llvm:entry-point (addr int))\n(declare llvm:macho-symbol (name str) (value int))\n(declare llvm:name-reference (at int) (name str))\n(declare llvm:relocation (at int) (addr int))\n(declare llvm:section-entry (name str) (addr int) (size int) (off int))\n(declare llvm:section-flags (name str) (r bool) (w bool) (x bool))\n(declare llvm:segment-command (name str) (off int) (size int))\n(declare llvm:segment-command-flags (name str) (r bool) (w bool) (x bool))\n(declare llvm:symbol-entry (name str) (addr int) (size int) (off int)\n (value int))\n(declare llvm:virtual-segment-command (name str) (addr int) (size int))\n(declare mapped (addr int) (size int) (off int))\n(declare named-region (addr int) (size int) (name str))\n(declare named-symbol (addr int) (name str))\n(declare require (name str))\n(declare section (addr int) (size int))\n(declare segment (addr int) (size int) (r bool) (w bool) (x bool))\n(declare subarch (name str))\n(declare symbol-chunk (addr int) (size int) (root int))\n(declare symbol-value (addr int) (value int))\n(declare system (name str))\n(declare vendor (name str))\n\n(abi unknown)\n(arch aarch64)\n(base-address 0)\n(bias 0)\n(bits 64)\n(code-region 1948 20 1948)\n(code-region 1600 348 1600)\n(code-region 1504 96 1504)\n(code-region 1480 24 1480)\n(code-start 1652)\n(code-start 1600)\n(code-start 1876)\n(entry-point 1600)\n(external-reference 69544 _ITM_deregisterTMCloneTable)\n(external-reference 69552 __cxa_finalize)\n(external-reference 69576 __gmon_start__)\n(external-reference 69600 _ITM_registerTMCloneTable)\n(external-reference 69632 __libc_start_main)\n(external-reference 69640 __cxa_finalize)\n(external-reference 69648 __gmon_start__)\n(external-reference 69656 abort)\n(format elf)\n(is-executable true)\n(is-little-endian true)\n(llvm:base-address 0)\n(llvm:code-entry abort 0 0)\n(llvm:code-entry __cxa_finalize 0 0)\n(llvm:code-entry __libc_start_main 0 0)\n(llvm:code-entry _init 1480 0)\n(llvm:code-entry main 1876 72)\n(llvm:code-entry _start 1600 52)\n(llvm:code-entry abort@GLIBC_2.17 0 0)\n(llvm:code-entry _fini 1948 0)\n(llvm:code-entry __cxa_finalize@GLIBC_2.17 0 0)\n(llvm:code-entry __libc_start_main@GLIBC_2.34 0 0)\n(llvm:code-entry frame_dummy 1872 0)\n(llvm:code-entry __do_global_dtors_aux 1792 0)\n(llvm:code-entry register_tm_clones 1728 0)\n(llvm:code-entry deregister_tm_clones 1680 0)\n(llvm:code-entry call_weak_fn 1652 20)\n(llvm:code-entry .fini 1948 20)\n(llvm:code-entry .text 1600 348)\n(llvm:code-entry .plt 1504 96)\n(llvm:code-entry .init 1480 24)\n(llvm:elf-program-header 08 3504 592)\n(llvm:elf-program-header 07 0 0)\n(llvm:elf-program-header 06 1972 60)\n(llvm:elf-program-header 05 596 68)\n(llvm:elf-program-header 04 3520 480)\n(llvm:elf-program-header 03 3504 640)\n(llvm:elf-program-header 02 0 2212)\n(llvm:elf-program-header 01 568 27)\n(llvm:elf-program-header 00 64 504)\n(llvm:elf-program-header-flags 08 false true false false)\n(llvm:elf-program-header-flags 07 false true true false)\n(llvm:elf-program-header-flags 06 false true false false)\n(llvm:elf-program-header-flags 05 false true false false)\n(llvm:elf-program-header-flags 04 false true true false)\n(llvm:elf-program-header-flags 03 true true true false)\n(llvm:elf-program-header-flags 02 true true false true)\n(llvm:elf-program-header-flags 01 false true false false)\n(llvm:elf-program-header-flags 00 false true false false)\n(llvm:elf-virtual-program-header 08 69040 592)\n(llvm:elf-virtual-program-header 07 0 0)\n(llvm:elf-virtual-program-header 06 1972 60)\n(llvm:elf-virtual-program-header 05 596 68)\n(llvm:elf-virtual-program-header 04 69056 480)\n(llvm:elf-virtual-program-header 03 69040 656)\n(llvm:elf-virtual-program-header 02 0 2212)\n(llvm:elf-virtual-program-header 01 568 27)\n(llvm:elf-virtual-program-header 00 64 504)\n(llvm:entry-point 1600)\n(llvm:name-reference 69656 abort)\n(llvm:name-reference 69648 __gmon_start__)\n(llvm:name-reference 69640 __cxa_finalize)\n(llvm:name-reference 69632 __libc_start_main)\n(llvm:name-reference 69600 _ITM_registerTMCloneTable)\n(llvm:name-reference 69576 __gmon_start__)\n(llvm:name-reference 69552 __cxa_finalize)\n(llvm:name-reference 69544 _ITM_deregisterTMCloneTable)\n(llvm:section-entry .shstrtab 0 259 7001)\n(llvm:section-entry .strtab 0 577 6424)\n(llvm:section-entry .symtab 0 2208 4216)\n(llvm:section-entry .comment 0 71 4144)\n(llvm:section-entry .bss 69680 16 4144)\n(llvm:section-entry .data 69664 16 4128)\n(llvm:section-entry .got.plt 69608 56 4072)\n(llvm:section-entry .got 69536 72 4000)\n(llvm:section-entry .dynamic 69056 480 3520)\n(llvm:section-entry .fini_array 69048 8 3512)\n(llvm:section-entry .init_array 69040 8 3504)\n(llvm:section-entry .eh_frame 2032 180 2032)\n(llvm:section-entry .eh_frame_hdr 1972 60 1972)\n(llvm:section-entry .rodata 1968 4 1968)\n(llvm:section-entry .fini 1948 20 1948)\n(llvm:section-entry .text 1600 348 1600)\n(llvm:section-entry .plt 1504 96 1504)\n(llvm:section-entry .init 1480 24 1480)\n(llvm:section-entry .rela.plt 1384 96 1384)\n(llvm:section-entry .rela.dyn 1120 264 1120)\n(llvm:section-entry .gnu.version_r 1072 48 1072)\n(llvm:section-entry .gnu.version 1054 18 1054)\n(llvm:section-entry .dynstr 912 141 912)\n(llvm:section-entry .dynsym 696 216 696)\n(llvm:section-entry .gnu.hash 664 28 664)\n(llvm:section-entry .note.ABI-tag 632 32 632)\n(llvm:section-entry .note.gnu.build-id 596 36 596)\n(llvm:section-entry .interp 568 27 568)\n(llvm:section-flags .shstrtab true false false)\n(llvm:section-flags .strtab true false false)\n(llvm:section-flags .symtab true false false)\n(llvm:section-flags .comment true false false)\n(llvm:section-flags .bss true true false)\n(llvm:section-flags .data true true false)\n(llvm:section-flags .got.plt true true false)\n(llvm:section-flags .got true true false)\n(llvm:section-flags .dynamic true true false)\n(llvm:section-flags .fini_array true true false)\n(llvm:section-flags .init_array true true false)\n(llvm:section-flags .eh_frame true false false)\n(llvm:section-flags .eh_frame_hdr true false false)\n(llvm:section-flags .rodata true false false)\n(llvm:section-flags .fini true false true)\n(llvm:section-flags .text true false true)\n(llvm:section-flags .plt true false true)\n(llvm:section-flags .init true false true)\n(llvm:section-flags .rela.plt true false false)\n(llvm:section-flags .rela.dyn true false false)\n(llvm:section-flags .gnu.version_r true false false)\n(llvm:section-flags .gnu.version true false false)\n(llvm:section-flags .dynstr true false false)\n(llvm:section-flags .dynsym true false false)\n(llvm:section-flags .gnu.hash true false false)\n(llvm:section-flags .note.ABI-tag true false false)\n(llvm:section-flags .note.gnu.build-id true false false)\n(llvm:section-flags .interp true false false)\n(llvm:symbol-entry abort 0 0 0 0)\n(llvm:symbol-entry __cxa_finalize 0 0 0 0)\n(llvm:symbol-entry __libc_start_main 0 0 0 0)\n(llvm:symbol-entry _init 1480 0 1480 1480)\n(llvm:symbol-entry main 1876 72 1876 1876)\n(llvm:symbol-entry _start 1600 52 1600 1600)\n(llvm:symbol-entry abort@GLIBC_2.17 0 0 0 0)\n(llvm:symbol-entry _fini 1948 0 1948 1948)\n(llvm:symbol-entry __cxa_finalize@GLIBC_2.17 0 0 0 0)\n(llvm:symbol-entry __libc_start_main@GLIBC_2.34 0 0 0 0)\n(llvm:symbol-entry frame_dummy 1872 0 1872 1872)\n(llvm:symbol-entry __do_global_dtors_aux 1792 0 1792 1792)\n(llvm:symbol-entry register_tm_clones 1728 0 1728 1728)\n(llvm:symbol-entry deregister_tm_clones 1680 0 1680 1680)\n(llvm:symbol-entry call_weak_fn 1652 20 1652 1652)\n(mapped 0 2212 0)\n(mapped 69040 640 3504)\n(named-region 0 2212 02)\n(named-region 69040 656 03)\n(named-region 568 27 .interp)\n(named-region 596 36 .note.gnu.build-id)\n(named-region 632 32 .note.ABI-tag)\n(named-region 664 28 .gnu.hash)\n(named-region 696 216 .dynsym)\n(named-region 912 141 .dynstr)\n(named-region 1054 18 .gnu.version)\n(named-region 1072 48 .gnu.version_r)\n(named-region 1120 264 .rela.dyn)\n(named-region 1384 96 .rela.plt)\n(named-region 1480 24 .init)\n(named-region 1504 96 .plt)\n(named-region 1600 348 .text)\n(named-region 1948 20 .fini)\n(named-region 1968 4 .rodata)\n(named-region 1972 60 .eh_frame_hdr)\n(named-region 2032 180 .eh_frame)\n(named-region 69040 8 .init_array)\n(named-region 69048 8 .fini_array)\n(named-region 69056 480 .dynamic)\n(named-region 69536 72 .got)\n(named-region 69608 56 .got.plt)\n(named-region 69664 16 .data)\n(named-region 69680 16 .bss)\n(named-region 0 71 .comment)\n(named-region 0 2208 .symtab)\n(named-region 0 577 .strtab)\n(named-region 0 259 .shstrtab)\n(named-symbol 1652 call_weak_fn)\n(named-symbol 1680 deregister_tm_clones)\n(named-symbol 1728 register_tm_clones)\n(named-symbol 1792 __do_global_dtors_aux)\n(named-symbol 1872 frame_dummy)\n(named-symbol 0 __libc_start_main@GLIBC_2.34)\n(named-symbol 0 __cxa_finalize@GLIBC_2.17)\n(named-symbol 1948 _fini)\n(named-symbol 0 abort@GLIBC_2.17)\n(named-symbol 1600 _start)\n(named-symbol 1876 main)\n(named-symbol 1480 _init)\n(named-symbol 0 __libc_start_main)\n(named-symbol 0 __cxa_finalize)\n(named-symbol 0 abort)\n(require libc.so.6)\n(section 568 27)\n(section 596 36)\n(section 632 32)\n(section 664 28)\n(section 696 216)\n(section 912 141)\n(section 1054 18)\n(section 1072 48)\n(section 1120 264)\n(section 1384 96)\n(section 1480 24)\n(section 1504 96)\n(section 1600 348)\n(section 1948 20)\n(section 1968 4)\n(section 1972 60)\n(section 2032 180)\n(section 69040 8)\n(section 69048 8)\n(section 69056 480)\n(section 69536 72)\n(section 69608 56)\n(section 69664 16)\n(section 69680 16)\n(section 0 71)\n(section 0 2208)\n(section 0 577)\n(section 0 259)\n(segment 0 2212 true false true)\n(segment 69040 656 true true false)\n(subarch v8)\n(symbol-chunk 1652 20 1652)\n(symbol-chunk 1600 52 1600)\n(symbol-chunk 1876 72 1876)\n(symbol-value 1652 1652)\n(symbol-value 1680 1680)\n(symbol-value 1728 1728)\n(symbol-value 1792 1792)\n(symbol-value 1872 1872)\n(symbol-value 1948 1948)\n(symbol-value 1600 1600)\n(symbol-value 1876 1876)\n(symbol-value 1480 1480)\n(symbol-value 0 0)\n(system \"\")\n(vendor \"\")\n"), -Attr("abi-name","\"aarch64-linux-gnu-elf\"")]), -Sections([Section(".shstrtab", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x40\x06\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x60\x1c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x38\x00\x09\x00\x40\x00\x1d\x00\x1c\x00\x06\x00\x00\x00\x04\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x04\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xa4\x08\x00\x00\x00\x00\x00\x00\xa4\x08\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x01\x00\x00\x00\x06\x00\x00\x00\xb0\x0d\x00\x00\x00\x00\x00\x00\xb0\x0d\x01\x00\x00\x00\x00\x00\xb0\x0d\x01"), -Section(".strtab", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x40\x06\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x60\x1c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x38\x00\x09\x00\x40\x00\x1d\x00\x1c\x00\x06\x00\x00\x00\x04\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x04\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xa4\x08\x00\x00\x00\x00\x00\x00\xa4\x08\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x01\x00\x00\x00\x06\x00\x00\x00\xb0\x0d\x00\x00\x00\x00\x00\x00\xb0\x0d\x01\x00\x00\x00\x00\x00\xb0\x0d\x01\x00\x00\x00\x00\x00\x80\x02\x00\x00\x00\x00\x00\x00\x90\x02\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x02\x00\x00\x00\x06\x00\x00\x00\xc0\x0d\x00\x00\x00\x00\x00\x00\xc0\x0d\x01\x00\x00\x00\x00\x00\xc0\x0d\x01\x00\x00\x00\x00\x00\xe0\x01\x00\x00\x00\x00\x00\x00\xe0\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x04\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x50\xe5\x74\x64\x04\x00\x00\x00\xb4\x07\x00\x00\x00\x00\x00\x00\xb4\x07\x00\x00\x00\x00\x00\x00\xb4\x07\x00\x00\x00\x00\x00\x00\x3c\x00\x00\x00\x00\x00\x00\x00\x3c\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x51\xe5\x74\x64\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x52\xe5\x74\x64\x04\x00\x00\x00\xb0\x0d\x00\x00\x00\x00\x00\x00\xb0\x0d\x01\x00\x00\x00\x00\x00\xb0\x0d\x01\x00\x00\x00\x00\x00\x50\x02\x00\x00\x00\x00\x00\x00\x50\x02\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x2f\x6c\x69\x62\x2f\x6c\x64\x2d\x6c"), -Section(".symtab", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x40\x06\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x60\x1c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x38\x00\x09\x00\x40\x00\x1d\x00\x1c\x00\x06\x00\x00\x00\x04\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x04\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xa4\x08\x00\x00\x00\x00\x00\x00\xa4\x08\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x01\x00\x00\x00\x06\x00\x00\x00\xb0\x0d\x00\x00\x00\x00\x00\x00\xb0\x0d\x01\x00\x00\x00\x00\x00\xb0\x0d\x01\x00\x00\x00\x00\x00\x80\x02\x00\x00\x00\x00\x00\x00\x90\x02\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x02\x00\x00\x00\x06\x00\x00\x00\xc0\x0d\x00\x00\x00\x00\x00\x00\xc0\x0d\x01\x00\x00\x00\x00\x00\xc0\x0d\x01\x00\x00\x00\x00\x00\xe0\x01\x00\x00\x00\x00\x00\x00\xe0\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x04\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x50\xe5\x74\x64\x04\x00\x00\x00\xb4\x07\x00\x00\x00\x00\x00\x00\xb4\x07\x00\x00\x00\x00\x00\x00\xb4\x07\x00\x00\x00\x00\x00\x00\x3c\x00\x00\x00\x00\x00\x00\x00\x3c\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x51\xe5\x74\x64\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x52\xe5\x74\x64\x04\x00\x00\x00\xb0\x0d\x00\x00\x00\x00\x00\x00\xb0\x0d\x01\x00\x00\x00\x00\x00\xb0\x0d\x01\x00\x00\x00\x00\x00\x50\x02\x00\x00\x00\x00\x00\x00\x50\x02\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x2f\x6c\x69\x62\x2f\x6c\x64\x2d\x6c\x69\x6e\x75\x78\x2d\x61\x61\x72\x63\x68\x36\x34\x2e\x73\x6f\x2e\x31\x00\x00\x04\x00\x00\x00\x14\x00\x00\x00\x03\x00\x00\x00\x47\x4e\x55\x00\xcf\x58\xc2\x79\xad\xe1\x5c\xbe\xa9\xc7\x6f\x32\x45\xf6\xb6\x73\xd6\x89\x6e\x70\x04\x00\x00\x00\x10\x00\x00\x00\x01\x00\x00\x00\x47\x4e\x55\x00\x00\x00\x00\x00\x03\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x01\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x0b\x00\xc8\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x17\x00\x20\x10\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x48\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x22\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x22\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x73\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5f\x5f\x63\x78\x61\x5f\x66\x69\x6e\x61\x6c\x69\x7a\x65\x00\x5f\x5f\x6c\x69\x62\x63\x5f\x73\x74\x61\x72\x74\x5f\x6d\x61\x69\x6e\x00\x61\x62\x6f\x72\x74\x00\x6c\x69\x62\x63\x2e\x73\x6f\x2e\x36\x00\x47\x4c\x49\x42\x43\x5f\x32\x2e\x31\x37\x00\x47\x4c\x49\x42\x43\x5f\x32\x2e\x33\x34\x00\x5f\x49\x54\x4d\x5f\x64\x65\x72\x65\x67\x69\x73\x74\x65\x72\x54\x4d\x43\x6c\x6f\x6e\x65\x54\x61\x62\x6c\x65\x00\x5f\x5f\x67\x6d\x6f\x6e\x5f\x73\x74\x61\x72\x74\x5f\x5f\x00\x5f\x49\x54\x4d\x5f\x72\x65\x67\x69\x73\x74\x65\x72\x54\x4d\x43\x6c\x6f\x6e\x65\x54\x61\x62\x6c\x65\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x01\x00\x03\x00\x01\x00\x03\x00\x01\x00\x01\x00\x02\x00\x28\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x97\x91\x96\x06\x00\x00\x03\x00\x32\x00\x00\x00\x10\x00\x00\x00\xb4\x91\x96\x06\x00\x00\x02\x00\x3d\x00\x00\x00\x00\x00\x00\x00\xb0\x0d\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x50\x07\x00\x00\x00\x00\x00\x00\xb8\x0d\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\xb8\x0f\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x34\x10\x01\x00\x00\x00\x00\x00\xc0\x0f\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x3c\x10\x01\x00\x00\x00\x00\x00\xd0\x0f\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x38\x10\x01\x00\x00\x00\x00\x00\xd8\x0f\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x54\x07\x00\x00\x00\x00\x00\x00\x28\x10\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x28\x10\x01\x00\x00\x00\x00\x00\xa8\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xb0\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xc8\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe0\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x08\x10\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x10\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x18\x10\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1f\x20\x03\xd5\xfd\x7b\xbf\xa9\xfd\x03\x00\x91\x28\x00\x00\x94\xfd\x7b\xc1\xa8\xc0\x03\x5f\xd6\xf0\x7b\xbf\xa9\x90\x00\x00\x90\x11\xfe\x47\xf9\x10\xe2\x3f\x91\x20\x02\x1f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x90\x00\x00\xb0\x11\x02\x40\xf9\x10\x02\x00\x91\x20\x02\x1f\xd6\x90\x00\x00\xb0\x11\x06\x40\xf9\x10\x22\x00\x91\x20\x02\x1f\xd6\x90\x00\x00\xb0\x11\x0a\x40\xf9\x10\x42\x00\x91\x20\x02\x1f\xd6\x90\x00\x00\xb0\x11\x0e\x40\xf9\x10\x62\x00\x91\x20\x02\x1f\xd6\x1f\x20\x03\xd5\x1d\x00\x80\xd2\x1e\x00\x80\xd2\xe5\x03\x00\xaa\xe1\x03\x40\xf9\xe2\x23\x00\x91\xe6\x03\x00\x91\x80\x00\x00\x90\x00\xec\x47\xf9\x03\x00\x80\xd2\x04\x00\x80\xd2\xe5\xff\xff\x97\xf0\xff\xff\x97\x80\x00\x00\x90\x00\xe4\x47\xf9\x40\x00\x00\xb4\xe8\xff\xff\x17\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x80\x00\x00\xb0\x00\xc0\x00\x91\x81\x00\x00\xb0\x21\xc0\x00\x91\x3f\x00\x00\xeb\xc0\x00\x00\x54\x81\x00\x00\x90\x21\xd4\x47\xf9\x61\x00\x00\xb4\xf0\x03\x01\xaa\x00\x02\x1f\xd6\xc0\x03\x5f\xd6\x80\x00\x00\xb0\x00\xc0\x00\x91\x81\x00\x00\xb0\x21\xc0\x00\x91\x21\x00\x00\xcb\x22\xfc\x7f\xd3\x41\x0c\x81\x8b\x21\xfc\x41\x93\xc1\x00\x00\xb4\x82\x00\x00\x90\x42\xf0\x47\xf9\x62\x00\x00\xb4\xf0\x03\x02\xaa\x00\x02\x1f\xd6\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\xfd\x7b\xbe\xa9\xfd\x03\x00\x91\xf3\x0b\x00\xf9\x93\x00\x00\xb0\x60\xc2\x40\x39\x40\x01\x00\x35\x80\x00\x00\x90\x00\xd8\x47\xf9\x80\x00\x00\xb4\x80\x00\x00\xb0\x00\x14\x40\xf9\xb9\xff\xff\x97\xd8\xff\xff\x97\x20\x00\x80\x52\x60\xc2\x00\x39\xf3\x0b\x40\xf9\xfd\x7b\xc2\xa8\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\xdc\xff\xff\x17\x89\x00\x00\x90\x29\xdd\x47\xf9\xe0\x03\x1f\x2a\x3f\x01\x00\xb9\x28\x01\x40\xb9\x08\x05\x00\x11\x28\x01\x00\xb9\x88\x00\x00\x90\x08\xe9\x47\xf9\x0a\x01\x40\xb9\x88\x00\x00\x90\x08\xe1\x47\xf9\x0a\x01\x00\xb9\x1f\x01\x00\xb9\x28\x01\x40\xb9\x08\x05\x00\x11\x28\x01\x00\xb9\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\xfd\x7b\xbf\xa9\xfd\x03\x00\x91\xfd\x7b\xc1\xa8\xc0\x03\x5f\xd6\x01\x00\x02\x00\x01\x1b\x03\x3b\x38\x00\x00\x00\x06\x00\x00\x00\x8c\xfe\xff\xff\x50\x00\x00\x00\xdc\xfe\xff\xff\x64\x00\x00\x00\x0c\xff\xff\xff\x78\x00\x00\x00\x4c\xff\xff\xff\x8c\x00\x00\x00\x9c\xff\xff\xff\xb0\x00\x00\x00\xa0\xff\xff\xff\xd8\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x01\x7a\x52\x00\x04\x78\x1e\x01\x1b\x0c\x1f\x00\x10\x00\x00\x00\x18\x00\x00\x00\x34\xfe\xff\xff\x34\x00\x00\x00\x00\x41\x07\x1e\x10\x00\x00\x00\x2c\x00\x00\x00\x70\xfe\xff\xff\x30\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x40\x00\x00\x00\x8c\xfe\xff\xff\x3c\x00\x00\x00\x00\x00\x00\x00\x20\x00\x00\x00\x54\x00\x00\x00\xb8\xfe\xff\xff\x48\x00\x00\x00\x00\x41\x0e\x20\x9d\x04\x9e\x03\x42\x93\x02\x4e\xde\xdd\xd3\x0e\x00\x00\x00\x00\x10\x00\x00\x00\x78\x00\x00\x00\xe4\xfe\xff\xff\x04\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x01\x7a\x52\x00\x01\x7c\x1e\x01\x1b\x0c\x1f\x00\x10\x00\x00\x00\x18\x00\x00\x00\xc0\xfe\xff\xff\x48\x00\x00\x00\x00\x00\x00\x00"), -Section(".comment", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x40\x06\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x60\x1c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x38\x00\x09\x00\x40\x00\x1d\x00\x1c\x00\x06\x00\x00\x00\x04\x00\x00"), -Section(".interp", 0x238, "\x2f\x6c\x69\x62\x2f\x6c\x64\x2d\x6c\x69\x6e\x75\x78\x2d\x61\x61\x72\x63\x68\x36\x34\x2e\x73\x6f\x2e\x31\x00"), -Section(".note.gnu.build-id", 0x254, "\x04\x00\x00\x00\x14\x00\x00\x00\x03\x00\x00\x00\x47\x4e\x55\x00\xcf\x58\xc2\x79\xad\xe1\x5c\xbe\xa9\xc7\x6f\x32\x45\xf6\xb6\x73\xd6\x89\x6e\x70"), -Section(".note.ABI-tag", 0x278, "\x04\x00\x00\x00\x10\x00\x00\x00\x01\x00\x00\x00\x47\x4e\x55\x00\x00\x00\x00\x00\x03\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00"), -Section(".gnu.hash", 0x298, "\x01\x00\x00\x00\x01\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".dynsym", 0x2B8, "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x0b\x00\xc8\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x17\x00\x20\x10\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x48\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x22\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x22\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x73\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".dynstr", 0x390, "\x00\x5f\x5f\x63\x78\x61\x5f\x66\x69\x6e\x61\x6c\x69\x7a\x65\x00\x5f\x5f\x6c\x69\x62\x63\x5f\x73\x74\x61\x72\x74\x5f\x6d\x61\x69\x6e\x00\x61\x62\x6f\x72\x74\x00\x6c\x69\x62\x63\x2e\x73\x6f\x2e\x36\x00\x47\x4c\x49\x42\x43\x5f\x32\x2e\x31\x37\x00\x47\x4c\x49\x42\x43\x5f\x32\x2e\x33\x34\x00\x5f\x49\x54\x4d\x5f\x64\x65\x72\x65\x67\x69\x73\x74\x65\x72\x54\x4d\x43\x6c\x6f\x6e\x65\x54\x61\x62\x6c\x65\x00\x5f\x5f\x67\x6d\x6f\x6e\x5f\x73\x74\x61\x72\x74\x5f\x5f\x00\x5f\x49\x54\x4d\x5f\x72\x65\x67\x69\x73\x74\x65\x72\x54\x4d\x43\x6c\x6f\x6e\x65\x54\x61\x62\x6c\x65\x00"), -Section(".gnu.version", 0x41E, "\x00\x00\x00\x00\x00\x00\x02\x00\x01\x00\x03\x00\x01\x00\x03\x00\x01\x00"), -Section(".gnu.version_r", 0x430, "\x01\x00\x02\x00\x28\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x97\x91\x96\x06\x00\x00\x03\x00\x32\x00\x00\x00\x10\x00\x00\x00\xb4\x91\x96\x06\x00\x00\x02\x00\x3d\x00\x00\x00\x00\x00\x00\x00"), -Section(".rela.dyn", 0x460, "\xb0\x0d\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x50\x07\x00\x00\x00\x00\x00\x00\xb8\x0d\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\xb8\x0f\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x34\x10\x01\x00\x00\x00\x00\x00\xc0\x0f\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x3c\x10\x01\x00\x00\x00\x00\x00\xd0\x0f\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x38\x10\x01\x00\x00\x00\x00\x00\xd8\x0f\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x54\x07\x00\x00\x00\x00\x00\x00\x28\x10\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x28\x10\x01\x00\x00\x00\x00\x00\xa8\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xb0\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xc8\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe0\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".rela.plt", 0x568, "\x00\x10\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x08\x10\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x10\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x18\x10\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".init", 0x5C8, "\x1f\x20\x03\xd5\xfd\x7b\xbf\xa9\xfd\x03\x00\x91\x28\x00\x00\x94\xfd\x7b\xc1\xa8\xc0\x03\x5f\xd6"), -Section(".plt", 0x5E0, "\xf0\x7b\xbf\xa9\x90\x00\x00\x90\x11\xfe\x47\xf9\x10\xe2\x3f\x91\x20\x02\x1f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x90\x00\x00\xb0\x11\x02\x40\xf9\x10\x02\x00\x91\x20\x02\x1f\xd6\x90\x00\x00\xb0\x11\x06\x40\xf9\x10\x22\x00\x91\x20\x02\x1f\xd6\x90\x00\x00\xb0\x11\x0a\x40\xf9\x10\x42\x00\x91\x20\x02\x1f\xd6\x90\x00\x00\xb0\x11\x0e\x40\xf9\x10\x62\x00\x91\x20\x02\x1f\xd6"), -Section(".fini", 0x79C, "\x1f\x20\x03\xd5\xfd\x7b\xbf\xa9\xfd\x03\x00\x91\xfd\x7b\xc1\xa8\xc0\x03\x5f\xd6"), -Section(".rodata", 0x7B0, "\x01\x00\x02\x00"), -Section(".eh_frame_hdr", 0x7B4, "\x01\x1b\x03\x3b\x38\x00\x00\x00\x06\x00\x00\x00\x8c\xfe\xff\xff\x50\x00\x00\x00\xdc\xfe\xff\xff\x64\x00\x00\x00\x0c\xff\xff\xff\x78\x00\x00\x00\x4c\xff\xff\xff\x8c\x00\x00\x00\x9c\xff\xff\xff\xb0\x00\x00\x00\xa0\xff\xff\xff\xd8\x00\x00\x00"), -Section(".eh_frame", 0x7F0, "\x10\x00\x00\x00\x00\x00\x00\x00\x01\x7a\x52\x00\x04\x78\x1e\x01\x1b\x0c\x1f\x00\x10\x00\x00\x00\x18\x00\x00\x00\x34\xfe\xff\xff\x34\x00\x00\x00\x00\x41\x07\x1e\x10\x00\x00\x00\x2c\x00\x00\x00\x70\xfe\xff\xff\x30\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x40\x00\x00\x00\x8c\xfe\xff\xff\x3c\x00\x00\x00\x00\x00\x00\x00\x20\x00\x00\x00\x54\x00\x00\x00\xb8\xfe\xff\xff\x48\x00\x00\x00\x00\x41\x0e\x20\x9d\x04\x9e\x03\x42\x93\x02\x4e\xde\xdd\xd3\x0e\x00\x00\x00\x00\x10\x00\x00\x00\x78\x00\x00\x00\xe4\xfe\xff\xff\x04\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x01\x7a\x52\x00\x01\x7c\x1e\x01\x1b\x0c\x1f\x00\x10\x00\x00\x00\x18\x00\x00\x00\xc0\xfe\xff\xff\x48\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".fini_array", 0x10DB8, "\x00\x07\x00\x00\x00\x00\x00\x00"), -Section(".dynamic", 0x10DC0, "\x01\x00\x00\x00\x00\x00\x00\x00\x28\x00\x00\x00\x00\x00\x00\x00\x0c\x00\x00\x00\x00\x00\x00\x00\xc8\x05\x00\x00\x00\x00\x00\x00\x0d\x00\x00\x00\x00\x00\x00\x00\x9c\x07\x00\x00\x00\x00\x00\x00\x19\x00\x00\x00\x00\x00\x00\x00\xb0\x0d\x01\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x1a\x00\x00\x00\x00\x00\x00\x00\xb8\x0d\x01\x00\x00\x00\x00\x00\x1c\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\xf5\xfe\xff\x6f\x00\x00\x00\x00\x98\x02\x00\x00\x00\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x90\x03\x00\x00\x00\x00\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\xb8\x02\x00\x00\x00\x00\x00\x00\x0a\x00\x00\x00\x00\x00\x00\x00\x8d\x00\x00\x00\x00\x00\x00\x00\x0b\x00\x00\x00\x00\x00\x00\x00\x18\x00\x00\x00\x00\x00\x00\x00\x15\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\xe8\x0f\x01\x00\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x60\x00\x00\x00\x00\x00\x00\x00\x14\x00\x00\x00\x00\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x17\x00\x00\x00\x00\x00\x00\x00\x68\x05\x00\x00\x00\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x60\x04\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x08\x01\x00\x00\x00\x00\x00\x00\x09\x00\x00\x00\x00\x00\x00\x00\x18\x00\x00\x00\x00\x00\x00\x00\xfb\xff\xff\x6f\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\xfe\xff\xff\x6f\x00\x00\x00\x00\x30\x04\x00\x00\x00\x00\x00\x00\xff\xff\xff\x6f\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\xf0\xff\xff\x6f\x00\x00\x00\x00\x1e\x04\x00\x00\x00\x00\x00\x00\xf9\xff\xff\x6f\x00\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".init_array", 0x10DB0, "\x50\x07\x00\x00\x00\x00\x00\x00"), -Section(".got", 0x10FA0, "\xc0\x0d\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x34\x10\x01\x00\x00\x00\x00\x00\x3c\x10\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x38\x10\x01\x00\x00\x00\x00\x00\x54\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".got.plt", 0x10FE8, "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe0\x05\x00\x00\x00\x00\x00\x00\xe0\x05\x00\x00\x00\x00\x00\x00\xe0\x05\x00\x00\x00\x00\x00\x00\xe0\x05\x00\x00\x00\x00\x00\x00"), -Section(".data", 0x11020, "\x00\x00\x00\x00\x00\x00\x00\x00\x28\x10\x01\x00\x00\x00\x00\x00"), -Section(".text", 0x640, "\x1f\x20\x03\xd5\x1d\x00\x80\xd2\x1e\x00\x80\xd2\xe5\x03\x00\xaa\xe1\x03\x40\xf9\xe2\x23\x00\x91\xe6\x03\x00\x91\x80\x00\x00\x90\x00\xec\x47\xf9\x03\x00\x80\xd2\x04\x00\x80\xd2\xe5\xff\xff\x97\xf0\xff\xff\x97\x80\x00\x00\x90\x00\xe4\x47\xf9\x40\x00\x00\xb4\xe8\xff\xff\x17\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x80\x00\x00\xb0\x00\xc0\x00\x91\x81\x00\x00\xb0\x21\xc0\x00\x91\x3f\x00\x00\xeb\xc0\x00\x00\x54\x81\x00\x00\x90\x21\xd4\x47\xf9\x61\x00\x00\xb4\xf0\x03\x01\xaa\x00\x02\x1f\xd6\xc0\x03\x5f\xd6\x80\x00\x00\xb0\x00\xc0\x00\x91\x81\x00\x00\xb0\x21\xc0\x00\x91\x21\x00\x00\xcb\x22\xfc\x7f\xd3\x41\x0c\x81\x8b\x21\xfc\x41\x93\xc1\x00\x00\xb4\x82\x00\x00\x90\x42\xf0\x47\xf9\x62\x00\x00\xb4\xf0\x03\x02\xaa\x00\x02\x1f\xd6\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\xfd\x7b\xbe\xa9\xfd\x03\x00\x91\xf3\x0b\x00\xf9\x93\x00\x00\xb0\x60\xc2\x40\x39\x40\x01\x00\x35\x80\x00\x00\x90\x00\xd8\x47\xf9\x80\x00\x00\xb4\x80\x00\x00\xb0\x00\x14\x40\xf9\xb9\xff\xff\x97\xd8\xff\xff\x97\x20\x00\x80\x52\x60\xc2\x00\x39\xf3\x0b\x40\xf9\xfd\x7b\xc2\xa8\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\xdc\xff\xff\x17\x89\x00\x00\x90\x29\xdd\x47\xf9\xe0\x03\x1f\x2a\x3f\x01\x00\xb9\x28\x01\x40\xb9\x08\x05\x00\x11\x28\x01\x00\xb9\x88\x00\x00\x90\x08\xe9\x47\xf9\x0a\x01\x40\xb9\x88\x00\x00\x90\x08\xe1\x47\xf9\x0a\x01\x00\xb9\x1f\x01\x00\xb9\x28\x01\x40\xb9\x08\x05\x00\x11\x28\x01\x00\xb9\xc0\x03\x5f\xd6")]), -Memmap([Annotation(Region(0x0,0x8A3), Attr("segment","02 0 2212")), -Annotation(Region(0x640,0x673), Attr("symbol","\"_start\"")), -Annotation(Region(0x0,0x102), Attr("section","\".shstrtab\"")), -Annotation(Region(0x0,0x240), Attr("section","\".strtab\"")), -Annotation(Region(0x0,0x89F), Attr("section","\".symtab\"")), -Annotation(Region(0x0,0x46), Attr("section","\".comment\"")), -Annotation(Region(0x238,0x252), Attr("section","\".interp\"")), -Annotation(Region(0x254,0x277), Attr("section","\".note.gnu.build-id\"")), -Annotation(Region(0x278,0x297), Attr("section","\".note.ABI-tag\"")), -Annotation(Region(0x298,0x2B3), Attr("section","\".gnu.hash\"")), -Annotation(Region(0x2B8,0x38F), Attr("section","\".dynsym\"")), -Annotation(Region(0x390,0x41C), Attr("section","\".dynstr\"")), -Annotation(Region(0x41E,0x42F), Attr("section","\".gnu.version\"")), -Annotation(Region(0x430,0x45F), Attr("section","\".gnu.version_r\"")), -Annotation(Region(0x460,0x567), Attr("section","\".rela.dyn\"")), -Annotation(Region(0x568,0x5C7), Attr("section","\".rela.plt\"")), -Annotation(Region(0x5C8,0x5DF), Attr("section","\".init\"")), -Annotation(Region(0x5E0,0x63F), Attr("section","\".plt\"")), -Annotation(Region(0x5C8,0x5DF), Attr("code-region","()")), -Annotation(Region(0x5E0,0x63F), Attr("code-region","()")), -Annotation(Region(0x640,0x673), Attr("symbol-info","_start 0x640 52")), -Annotation(Region(0x674,0x687), Attr("symbol","\"call_weak_fn\"")), -Annotation(Region(0x674,0x687), Attr("symbol-info","call_weak_fn 0x674 20")), -Annotation(Region(0x754,0x79B), Attr("symbol","\"main\"")), -Annotation(Region(0x754,0x79B), Attr("symbol-info","main 0x754 72")), -Annotation(Region(0x79C,0x7AF), Attr("section","\".fini\"")), -Annotation(Region(0x7B0,0x7B3), Attr("section","\".rodata\"")), -Annotation(Region(0x7B4,0x7EF), Attr("section","\".eh_frame_hdr\"")), -Annotation(Region(0x7F0,0x8A3), Attr("section","\".eh_frame\"")), -Annotation(Region(0x10DB0,0x1102F), Attr("segment","03 0x10DB0 656")), -Annotation(Region(0x10DB8,0x10DBF), Attr("section","\".fini_array\"")), -Annotation(Region(0x10DC0,0x10F9F), Attr("section","\".dynamic\"")), -Annotation(Region(0x10DB0,0x10DB7), Attr("section","\".init_array\"")), -Annotation(Region(0x10FA0,0x10FE7), Attr("section","\".got\"")), -Annotation(Region(0x10FE8,0x1101F), Attr("section","\".got.plt\"")), -Annotation(Region(0x11020,0x1102F), Attr("section","\".data\"")), -Annotation(Region(0x640,0x79B), Attr("section","\".text\"")), -Annotation(Region(0x640,0x79B), Attr("code-region","()")), -Annotation(Region(0x79C,0x7AF), Attr("code-region","()"))]), -Program(Tid(1_584, "%00000630"), Attrs([]), - Subs([Sub(Tid(1_534, "@__cxa_finalize"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x610"), -Attr("stub","()")]), "__cxa_finalize", Args([Arg(Tid(1_585, "%00000631"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("__cxa_finalize_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(926, "@__cxa_finalize"), - Attrs([Attr("address","0x610")]), Phis([]), -Defs([Def(Tid(1_174, "%00000496"), Attrs([Attr("address","0x610"), -Attr("insn","adrp x16, #69632")]), Var("R16",Imm(64)), Int(69632,64)), -Def(Tid(1_181, "%0000049d"), Attrs([Attr("address","0x614"), -Attr("insn","ldr x17, [x16, #0x8]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(1_187, "%000004a3"), Attrs([Attr("address","0x618"), -Attr("insn","add x16, x16, #0x8")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(8,64)))]), Jmps([Call(Tid(1_192, "%000004a8"), - Attrs([Attr("address","0x61C"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), -Sub(Tid(1_535, "@__do_global_dtors_aux"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x700")]), - "__do_global_dtors_aux", Args([Arg(Tid(1_586, "%00000632"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("__do_global_dtors_aux_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(662, "@__do_global_dtors_aux"), - Attrs([Attr("address","0x700")]), Phis([]), Defs([Def(Tid(666, "%0000029a"), - Attrs([Attr("address","0x700"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("#3",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(18446744073709551584,64))), -Def(Tid(672, "%000002a0"), Attrs([Attr("address","0x700"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("#3",Imm(64)),Var("R29",Imm(64)),LittleEndian(),64)), -Def(Tid(678, "%000002a6"), Attrs([Attr("address","0x700"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("#3",Imm(64)),Int(8,64)),Var("R30",Imm(64)),LittleEndian(),64)), -Def(Tid(682, "%000002aa"), Attrs([Attr("address","0x700"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("R31",Imm(64)), -Var("#3",Imm(64))), Def(Tid(688, "%000002b0"), - Attrs([Attr("address","0x704"), Attr("insn","mov x29, sp")]), - Var("R29",Imm(64)), Var("R31",Imm(64))), Def(Tid(696, "%000002b8"), - Attrs([Attr("address","0x708"), Attr("insn","str x19, [sp, #0x10]")]), - Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(16,64)),Var("R19",Imm(64)),LittleEndian(),64)), -Def(Tid(701, "%000002bd"), Attrs([Attr("address","0x70C"), -Attr("insn","adrp x19, #69632")]), Var("R19",Imm(64)), Int(69632,64)), -Def(Tid(708, "%000002c4"), Attrs([Attr("address","0x710"), -Attr("insn","ldrb w0, [x19, #0x30]")]), Var("R0",Imm(64)), -UNSIGNED(64,Load(Var("mem",Mem(64,8)),PLUS(Var("R19",Imm(64)),Int(48,64)),LittleEndian(),8)))]), -Jmps([Goto(Tid(715, "%000002cb"), Attrs([Attr("address","0x714"), -Attr("insn","cbnz w0, #0x28")]), - NEQ(Extract(31,0,Var("R0",Imm(64))),Int(0,32)), -Direct(Tid(713, "%000002c9"))), Goto(Tid(1_574, "%00000626"), Attrs([]), - Int(1,1), Direct(Tid(871, "%00000367")))])), Blk(Tid(871, "%00000367"), - Attrs([Attr("address","0x718")]), Phis([]), Defs([Def(Tid(874, "%0000036a"), - Attrs([Attr("address","0x718"), Attr("insn","adrp x0, #65536")]), - Var("R0",Imm(64)), Int(65536,64)), Def(Tid(881, "%00000371"), - Attrs([Attr("address","0x71C"), Attr("insn","ldr x0, [x0, #0xfb0]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(4016,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(887, "%00000377"), Attrs([Attr("address","0x720"), -Attr("insn","cbz x0, #0x10")]), EQ(Var("R0",Imm(64)),Int(0,64)), -Direct(Tid(885, "%00000375"))), Goto(Tid(1_575, "%00000627"), Attrs([]), - Int(1,1), Direct(Tid(910, "%0000038e")))])), Blk(Tid(910, "%0000038e"), - Attrs([Attr("address","0x724")]), Phis([]), Defs([Def(Tid(913, "%00000391"), - Attrs([Attr("address","0x724"), Attr("insn","adrp x0, #69632")]), - Var("R0",Imm(64)), Int(69632,64)), Def(Tid(920, "%00000398"), - Attrs([Attr("address","0x728"), Attr("insn","ldr x0, [x0, #0x28]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(40,64)),LittleEndian(),64)), -Def(Tid(925, "%0000039d"), Attrs([Attr("address","0x72C"), -Attr("insn","bl #-0x11c")]), Var("R30",Imm(64)), Int(1840,64))]), -Jmps([Call(Tid(928, "%000003a0"), Attrs([Attr("address","0x72C"), -Attr("insn","bl #-0x11c")]), Int(1,1), -(Direct(Tid(1_534, "@__cxa_finalize")),Direct(Tid(885, "%00000375"))))])), -Blk(Tid(885, "%00000375"), Attrs([Attr("address","0x730")]), Phis([]), -Defs([Def(Tid(893, "%0000037d"), Attrs([Attr("address","0x730"), -Attr("insn","bl #-0xa0")]), Var("R30",Imm(64)), Int(1844,64))]), -Jmps([Call(Tid(895, "%0000037f"), Attrs([Attr("address","0x730"), -Attr("insn","bl #-0xa0")]), Int(1,1), -(Direct(Tid(1_548, "@deregister_tm_clones")),Direct(Tid(897, "%00000381"))))])), -Blk(Tid(897, "%00000381"), Attrs([Attr("address","0x734")]), Phis([]), -Defs([Def(Tid(900, "%00000384"), Attrs([Attr("address","0x734"), -Attr("insn","mov w0, #0x1")]), Var("R0",Imm(64)), Int(1,64)), -Def(Tid(908, "%0000038c"), Attrs([Attr("address","0x738"), -Attr("insn","strb w0, [x19, #0x30]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R19",Imm(64)),Int(48,64)),Extract(7,0,Var("R0",Imm(64))),LittleEndian(),8))]), -Jmps([Goto(Tid(1_576, "%00000628"), Attrs([]), Int(1,1), -Direct(Tid(713, "%000002c9")))])), Blk(Tid(713, "%000002c9"), - Attrs([Attr("address","0x73C")]), Phis([]), Defs([Def(Tid(723, "%000002d3"), - Attrs([Attr("address","0x73C"), Attr("insn","ldr x19, [sp, #0x10]")]), - Var("R19",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(16,64)),LittleEndian(),64)), -Def(Tid(730, "%000002da"), Attrs([Attr("address","0x740"), -Attr("insn","ldp x29, x30, [sp], #0x20")]), Var("R29",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(735, "%000002df"), Attrs([Attr("address","0x740"), -Attr("insn","ldp x29, x30, [sp], #0x20")]), Var("R30",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(739, "%000002e3"), Attrs([Attr("address","0x740"), -Attr("insn","ldp x29, x30, [sp], #0x20")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(32,64)))]), Jmps([Call(Tid(744, "%000002e8"), - Attrs([Attr("address","0x744"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), Sub(Tid(1_539, "@__libc_start_main"), - Attrs([Attr("c.proto","signed (*)(signed (*)(signed , char** , char** );* main, signed , char** , \nvoid* auxv)"), -Attr("address","0x600"), Attr("stub","()")]), "__libc_start_main", - Args([Arg(Tid(1_587, "%00000633"), - Attrs([Attr("c.layout","**[ : 64]"), -Attr("c.data","Top:u64 ptr ptr"), -Attr("c.type","signed (*)(signed , char** , char** );*")]), - Var("__libc_start_main_main",Imm(64)), Var("R0",Imm(64)), In()), -Arg(Tid(1_588, "%00000634"), Attrs([Attr("c.layout","[signed : 32]"), -Attr("c.data","Top:u32"), Attr("c.type","signed")]), - Var("__libc_start_main_arg2",Imm(32)), LOW(32,Var("R1",Imm(64))), In()), -Arg(Tid(1_589, "%00000635"), Attrs([Attr("c.layout","**[char : 8]"), -Attr("c.data","Top:u8 ptr ptr"), Attr("c.type","char**")]), - Var("__libc_start_main_arg3",Imm(64)), Var("R2",Imm(64)), Both()), -Arg(Tid(1_590, "%00000636"), Attrs([Attr("c.layout","*[ : 8]"), -Attr("c.data","{} ptr"), Attr("c.type","void*")]), - Var("__libc_start_main_auxv",Imm(64)), Var("R3",Imm(64)), Both()), -Arg(Tid(1_591, "%00000637"), Attrs([Attr("c.layout","[signed : 32]"), -Attr("c.data","Top:u32"), Attr("c.type","signed")]), - Var("__libc_start_main_result",Imm(32)), LOW(32,Var("R0",Imm(64))), -Out())]), Blks([Blk(Tid(495, "@__libc_start_main"), - Attrs([Attr("address","0x600")]), Phis([]), -Defs([Def(Tid(1_152, "%00000480"), Attrs([Attr("address","0x600"), -Attr("insn","adrp x16, #69632")]), Var("R16",Imm(64)), Int(69632,64)), -Def(Tid(1_159, "%00000487"), Attrs([Attr("address","0x604"), -Attr("insn","ldr x17, [x16]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R16",Imm(64)),LittleEndian(),64)), -Def(Tid(1_165, "%0000048d"), Attrs([Attr("address","0x608"), -Attr("insn","add x16, x16, #0x0")]), Var("R16",Imm(64)), -Var("R16",Imm(64)))]), Jmps([Call(Tid(1_170, "%00000492"), - Attrs([Attr("address","0x60C"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), Sub(Tid(1_540, "@_fini"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x79C")]), - "_fini", Args([Arg(Tid(1_592, "%00000638"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("_fini_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(31, "@_fini"), - Attrs([Attr("address","0x79C")]), Phis([]), Defs([Def(Tid(37, "%00000025"), - Attrs([Attr("address","0x7A0"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("#0",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(18446744073709551600,64))), -Def(Tid(43, "%0000002b"), Attrs([Attr("address","0x7A0"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("#0",Imm(64)),Var("R29",Imm(64)),LittleEndian(),64)), -Def(Tid(49, "%00000031"), Attrs([Attr("address","0x7A0"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("#0",Imm(64)),Int(8,64)),Var("R30",Imm(64)),LittleEndian(),64)), -Def(Tid(53, "%00000035"), Attrs([Attr("address","0x7A0"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("R31",Imm(64)), -Var("#0",Imm(64))), Def(Tid(59, "%0000003b"), Attrs([Attr("address","0x7A4"), -Attr("insn","mov x29, sp")]), Var("R29",Imm(64)), Var("R31",Imm(64))), -Def(Tid(66, "%00000042"), Attrs([Attr("address","0x7A8"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R29",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(71, "%00000047"), Attrs([Attr("address","0x7A8"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R30",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(75, "%0000004b"), Attrs([Attr("address","0x7A8"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(16,64)))]), Jmps([Call(Tid(80, "%00000050"), - Attrs([Attr("address","0x7AC"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), Sub(Tid(1_541, "@_init"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x5C8")]), - "_init", Args([Arg(Tid(1_593, "%00000639"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("_init_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(1_358, "@_init"), - Attrs([Attr("address","0x5C8")]), Phis([]), -Defs([Def(Tid(1_364, "%00000554"), Attrs([Attr("address","0x5CC"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("#5",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(18446744073709551600,64))), -Def(Tid(1_370, "%0000055a"), Attrs([Attr("address","0x5CC"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("#5",Imm(64)),Var("R29",Imm(64)),LittleEndian(),64)), -Def(Tid(1_376, "%00000560"), Attrs([Attr("address","0x5CC"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("#5",Imm(64)),Int(8,64)),Var("R30",Imm(64)),LittleEndian(),64)), -Def(Tid(1_380, "%00000564"), Attrs([Attr("address","0x5CC"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("R31",Imm(64)), -Var("#5",Imm(64))), Def(Tid(1_386, "%0000056a"), - Attrs([Attr("address","0x5D0"), Attr("insn","mov x29, sp")]), - Var("R29",Imm(64)), Var("R31",Imm(64))), Def(Tid(1_391, "%0000056f"), - Attrs([Attr("address","0x5D4"), Attr("insn","bl #0xa0")]), - Var("R30",Imm(64)), Int(1496,64))]), Jmps([Call(Tid(1_393, "%00000571"), - Attrs([Attr("address","0x5D4"), Attr("insn","bl #0xa0")]), Int(1,1), -(Direct(Tid(1_546, "@call_weak_fn")),Direct(Tid(1_395, "%00000573"))))])), -Blk(Tid(1_395, "%00000573"), Attrs([Attr("address","0x5D8")]), Phis([]), -Defs([Def(Tid(1_400, "%00000578"), Attrs([Attr("address","0x5D8"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R29",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(1_405, "%0000057d"), Attrs([Attr("address","0x5D8"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R30",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(1_409, "%00000581"), Attrs([Attr("address","0x5D8"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(16,64)))]), Jmps([Call(Tid(1_414, "%00000586"), - Attrs([Attr("address","0x5DC"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), Sub(Tid(1_542, "@_start"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x640"), -Attr("stub","()"), Attr("entry-point","()")]), "_start", - Args([Arg(Tid(1_594, "%0000063a"), Attrs([Attr("c.layout","[signed : 32]"), -Attr("c.data","Top:u32"), Attr("c.type","signed")]), - Var("_start_result",Imm(32)), LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(432, "@_start"), Attrs([Attr("address","0x640")]), Phis([]), -Defs([Def(Tid(437, "%000001b5"), Attrs([Attr("address","0x644"), -Attr("insn","mov x29, #0x0")]), Var("R29",Imm(64)), Int(0,64)), -Def(Tid(442, "%000001ba"), Attrs([Attr("address","0x648"), -Attr("insn","mov x30, #0x0")]), Var("R30",Imm(64)), Int(0,64)), -Def(Tid(448, "%000001c0"), Attrs([Attr("address","0x64C"), -Attr("insn","mov x5, x0")]), Var("R5",Imm(64)), Var("R0",Imm(64))), -Def(Tid(455, "%000001c7"), Attrs([Attr("address","0x650"), -Attr("insn","ldr x1, [sp]")]), Var("R1",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(461, "%000001cd"), Attrs([Attr("address","0x654"), -Attr("insn","add x2, sp, #0x8")]), Var("R2",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(8,64))), Def(Tid(467, "%000001d3"), - Attrs([Attr("address","0x658"), Attr("insn","mov x6, sp")]), - Var("R6",Imm(64)), Var("R31",Imm(64))), Def(Tid(472, "%000001d8"), - Attrs([Attr("address","0x65C"), Attr("insn","adrp x0, #65536")]), - Var("R0",Imm(64)), Int(65536,64)), Def(Tid(479, "%000001df"), - Attrs([Attr("address","0x660"), Attr("insn","ldr x0, [x0, #0xfd8]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(4056,64)),LittleEndian(),64)), -Def(Tid(484, "%000001e4"), Attrs([Attr("address","0x664"), -Attr("insn","mov x3, #0x0")]), Var("R3",Imm(64)), Int(0,64)), -Def(Tid(489, "%000001e9"), Attrs([Attr("address","0x668"), -Attr("insn","mov x4, #0x0")]), Var("R4",Imm(64)), Int(0,64)), -Def(Tid(494, "%000001ee"), Attrs([Attr("address","0x66C"), -Attr("insn","bl #-0x6c")]), Var("R30",Imm(64)), Int(1648,64))]), -Jmps([Call(Tid(497, "%000001f1"), Attrs([Attr("address","0x66C"), -Attr("insn","bl #-0x6c")]), Int(1,1), -(Direct(Tid(1_539, "@__libc_start_main")),Direct(Tid(499, "%000001f3"))))])), -Blk(Tid(499, "%000001f3"), Attrs([Attr("address","0x670")]), Phis([]), -Defs([Def(Tid(502, "%000001f6"), Attrs([Attr("address","0x670"), -Attr("insn","bl #-0x40")]), Var("R30",Imm(64)), Int(1652,64))]), -Jmps([Call(Tid(505, "%000001f9"), Attrs([Attr("address","0x670"), -Attr("insn","bl #-0x40")]), Int(1,1), -(Direct(Tid(1_545, "@abort")),Direct(Tid(1_577, "%00000629"))))])), -Blk(Tid(1_577, "%00000629"), Attrs([]), Phis([]), Defs([]), -Jmps([Call(Tid(1_578, "%0000062a"), Attrs([]), Int(1,1), -(Direct(Tid(1_546, "@call_weak_fn")),))]))])), Sub(Tid(1_545, "@abort"), - Attrs([Attr("noreturn","()"), Attr("c.proto","void (*)(void)"), -Attr("address","0x630"), Attr("stub","()")]), "abort", Args([]), -Blks([Blk(Tid(503, "@abort"), Attrs([Attr("address","0x630")]), Phis([]), -Defs([Def(Tid(1_218, "%000004c2"), Attrs([Attr("address","0x630"), -Attr("insn","adrp x16, #69632")]), Var("R16",Imm(64)), Int(69632,64)), -Def(Tid(1_225, "%000004c9"), Attrs([Attr("address","0x634"), -Attr("insn","ldr x17, [x16, #0x18]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(24,64)),LittleEndian(),64)), -Def(Tid(1_231, "%000004cf"), Attrs([Attr("address","0x638"), -Attr("insn","add x16, x16, #0x18")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(24,64)))]), Jmps([Call(Tid(1_236, "%000004d4"), - Attrs([Attr("address","0x63C"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), Sub(Tid(1_546, "@call_weak_fn"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x674")]), - "call_weak_fn", Args([Arg(Tid(1_595, "%0000063b"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("call_weak_fn_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(507, "@call_weak_fn"), - Attrs([Attr("address","0x674")]), Phis([]), Defs([Def(Tid(510, "%000001fe"), - Attrs([Attr("address","0x674"), Attr("insn","adrp x0, #65536")]), - Var("R0",Imm(64)), Int(65536,64)), Def(Tid(517, "%00000205"), - Attrs([Attr("address","0x678"), Attr("insn","ldr x0, [x0, #0xfc8]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(4040,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(523, "%0000020b"), Attrs([Attr("address","0x67C"), -Attr("insn","cbz x0, #0x8")]), EQ(Var("R0",Imm(64)),Int(0,64)), -Direct(Tid(521, "%00000209"))), Goto(Tid(1_579, "%0000062b"), Attrs([]), - Int(1,1), Direct(Tid(990, "%000003de")))])), Blk(Tid(521, "%00000209"), - Attrs([Attr("address","0x684")]), Phis([]), Defs([]), -Jmps([Call(Tid(529, "%00000211"), Attrs([Attr("address","0x684"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))])), -Blk(Tid(990, "%000003de"), Attrs([Attr("address","0x680")]), Phis([]), -Defs([]), Jmps([Goto(Tid(993, "%000003e1"), Attrs([Attr("address","0x680"), -Attr("insn","b #-0x60")]), Int(1,1), Direct(Tid(991, "@__gmon_start__")))])), -Blk(Tid(991, "@__gmon_start__"), Attrs([Attr("address","0x620")]), Phis([]), -Defs([Def(Tid(1_196, "%000004ac"), Attrs([Attr("address","0x620"), -Attr("insn","adrp x16, #69632")]), Var("R16",Imm(64)), Int(69632,64)), -Def(Tid(1_203, "%000004b3"), Attrs([Attr("address","0x624"), -Attr("insn","ldr x17, [x16, #0x10]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(16,64)),LittleEndian(),64)), -Def(Tid(1_209, "%000004b9"), Attrs([Attr("address","0x628"), -Attr("insn","add x16, x16, #0x10")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(16,64)))]), Jmps([Call(Tid(1_214, "%000004be"), - Attrs([Attr("address","0x62C"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), -Sub(Tid(1_548, "@deregister_tm_clones"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x690")]), - "deregister_tm_clones", Args([Arg(Tid(1_596, "%0000063c"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("deregister_tm_clones_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(535, "@deregister_tm_clones"), - Attrs([Attr("address","0x690")]), Phis([]), Defs([Def(Tid(538, "%0000021a"), - Attrs([Attr("address","0x690"), Attr("insn","adrp x0, #69632")]), - Var("R0",Imm(64)), Int(69632,64)), Def(Tid(544, "%00000220"), - Attrs([Attr("address","0x694"), Attr("insn","add x0, x0, #0x30")]), - Var("R0",Imm(64)), PLUS(Var("R0",Imm(64)),Int(48,64))), -Def(Tid(549, "%00000225"), Attrs([Attr("address","0x698"), -Attr("insn","adrp x1, #69632")]), Var("R1",Imm(64)), Int(69632,64)), -Def(Tid(555, "%0000022b"), Attrs([Attr("address","0x69C"), -Attr("insn","add x1, x1, #0x30")]), Var("R1",Imm(64)), -PLUS(Var("R1",Imm(64)),Int(48,64))), Def(Tid(561, "%00000231"), - Attrs([Attr("address","0x6A0"), Attr("insn","cmp x1, x0")]), - Var("#1",Imm(64)), NOT(Var("R0",Imm(64)))), Def(Tid(566, "%00000236"), - Attrs([Attr("address","0x6A0"), Attr("insn","cmp x1, x0")]), - Var("#2",Imm(64)), PLUS(Var("R1",Imm(64)),NOT(Var("R0",Imm(64))))), -Def(Tid(572, "%0000023c"), Attrs([Attr("address","0x6A0"), -Attr("insn","cmp x1, x0")]), Var("VF",Imm(1)), -NEQ(SIGNED(65,PLUS(Var("#2",Imm(64)),Int(1,64))),PLUS(PLUS(SIGNED(65,Var("R1",Imm(64))),SIGNED(65,Var("#1",Imm(64)))),Int(1,65)))), -Def(Tid(578, "%00000242"), Attrs([Attr("address","0x6A0"), -Attr("insn","cmp x1, x0")]), Var("CF",Imm(1)), -NEQ(UNSIGNED(65,PLUS(Var("#2",Imm(64)),Int(1,64))),PLUS(PLUS(UNSIGNED(65,Var("R1",Imm(64))),UNSIGNED(65,Var("#1",Imm(64)))),Int(1,65)))), -Def(Tid(582, "%00000246"), Attrs([Attr("address","0x6A0"), -Attr("insn","cmp x1, x0")]), Var("ZF",Imm(1)), -EQ(PLUS(Var("#2",Imm(64)),Int(1,64)),Int(0,64))), Def(Tid(586, "%0000024a"), - Attrs([Attr("address","0x6A0"), Attr("insn","cmp x1, x0")]), - Var("NF",Imm(1)), Extract(63,63,PLUS(Var("#2",Imm(64)),Int(1,64))))]), -Jmps([Goto(Tid(592, "%00000250"), Attrs([Attr("address","0x6A4"), -Attr("insn","b.eq #0x18")]), EQ(Var("ZF",Imm(1)),Int(1,1)), -Direct(Tid(590, "%0000024e"))), Goto(Tid(1_580, "%0000062c"), Attrs([]), - Int(1,1), Direct(Tid(960, "%000003c0")))])), Blk(Tid(960, "%000003c0"), - Attrs([Attr("address","0x6A8")]), Phis([]), Defs([Def(Tid(963, "%000003c3"), - Attrs([Attr("address","0x6A8"), Attr("insn","adrp x1, #65536")]), - Var("R1",Imm(64)), Int(65536,64)), Def(Tid(970, "%000003ca"), - Attrs([Attr("address","0x6AC"), Attr("insn","ldr x1, [x1, #0xfa8]")]), - Var("R1",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R1",Imm(64)),Int(4008,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(975, "%000003cf"), Attrs([Attr("address","0x6B0"), -Attr("insn","cbz x1, #0xc")]), EQ(Var("R1",Imm(64)),Int(0,64)), -Direct(Tid(590, "%0000024e"))), Goto(Tid(1_581, "%0000062d"), Attrs([]), - Int(1,1), Direct(Tid(979, "%000003d3")))])), Blk(Tid(590, "%0000024e"), - Attrs([Attr("address","0x6BC")]), Phis([]), Defs([]), -Jmps([Call(Tid(598, "%00000256"), Attrs([Attr("address","0x6BC"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))])), -Blk(Tid(979, "%000003d3"), Attrs([Attr("address","0x6B4")]), Phis([]), -Defs([Def(Tid(983, "%000003d7"), Attrs([Attr("address","0x6B4"), -Attr("insn","mov x16, x1")]), Var("R16",Imm(64)), Var("R1",Imm(64)))]), -Jmps([Call(Tid(988, "%000003dc"), Attrs([Attr("address","0x6B8"), -Attr("insn","br x16")]), Int(1,1), (Indirect(Var("R16",Imm(64))),))]))])), -Sub(Tid(1_551, "@frame_dummy"), Attrs([Attr("c.proto","signed (*)(void)"), -Attr("address","0x750")]), "frame_dummy", Args([Arg(Tid(1_597, "%0000063d"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("frame_dummy_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(750, "@frame_dummy"), - Attrs([Attr("address","0x750")]), Phis([]), Defs([]), -Jmps([Call(Tid(752, "%000002f0"), Attrs([Attr("address","0x750"), -Attr("insn","b #-0x90")]), Int(1,1), -(Direct(Tid(1_553, "@register_tm_clones")),))]))])), Sub(Tid(1_552, "@main"), - Attrs([Attr("c.proto","signed (*)(signed argc, const char** argv)"), -Attr("address","0x754")]), "main", Args([Arg(Tid(1_598, "%0000063e"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("main_argc",Imm(32)), -LOW(32,Var("R0",Imm(64))), In()), Arg(Tid(1_599, "%0000063f"), - Attrs([Attr("c.layout","**[char : 8]"), Attr("c.data","Top:u8 ptr ptr"), -Attr("c.type"," const char**")]), Var("main_argv",Imm(64)), -Var("R1",Imm(64)), Both()), Arg(Tid(1_600, "%00000640"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("main_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(754, "@main"), - Attrs([Attr("address","0x754")]), Phis([]), Defs([Def(Tid(757, "%000002f5"), - Attrs([Attr("address","0x754"), Attr("insn","adrp x9, #65536")]), - Var("R9",Imm(64)), Int(65536,64)), Def(Tid(764, "%000002fc"), - Attrs([Attr("address","0x758"), Attr("insn","ldr x9, [x9, #0xfb8]")]), - Var("R9",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R9",Imm(64)),Int(4024,64)),LittleEndian(),64)), -Def(Tid(769, "%00000301"), Attrs([Attr("address","0x75C"), -Attr("insn","mov w0, wzr")]), Var("R0",Imm(64)), Int(0,64)), -Def(Tid(776, "%00000308"), Attrs([Attr("address","0x760"), -Attr("insn","str wzr, [x9]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("R9",Imm(64)),Int(0,32),LittleEndian(),32)), -Def(Tid(783, "%0000030f"), Attrs([Attr("address","0x764"), -Attr("insn","ldr w8, [x9]")]), Var("R8",Imm(64)), -UNSIGNED(64,Load(Var("mem",Mem(64,8)),Var("R9",Imm(64)),LittleEndian(),32))), -Def(Tid(789, "%00000315"), Attrs([Attr("address","0x768"), -Attr("insn","add w8, w8, #0x1")]), Var("R8",Imm(64)), -UNSIGNED(64,PLUS(Extract(31,0,Var("R8",Imm(64))),Int(1,32)))), -Def(Tid(797, "%0000031d"), Attrs([Attr("address","0x76C"), -Attr("insn","str w8, [x9]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("R9",Imm(64)),Extract(31,0,Var("R8",Imm(64))),LittleEndian(),32)), -Def(Tid(802, "%00000322"), Attrs([Attr("address","0x770"), -Attr("insn","adrp x8, #65536")]), Var("R8",Imm(64)), Int(65536,64)), -Def(Tid(809, "%00000329"), Attrs([Attr("address","0x774"), -Attr("insn","ldr x8, [x8, #0xfd0]")]), Var("R8",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R8",Imm(64)),Int(4048,64)),LittleEndian(),64)), -Def(Tid(816, "%00000330"), Attrs([Attr("address","0x778"), -Attr("insn","ldr w10, [x8]")]), Var("R10",Imm(64)), -UNSIGNED(64,Load(Var("mem",Mem(64,8)),Var("R8",Imm(64)),LittleEndian(),32))), -Def(Tid(821, "%00000335"), Attrs([Attr("address","0x77C"), -Attr("insn","adrp x8, #65536")]), Var("R8",Imm(64)), Int(65536,64)), -Def(Tid(828, "%0000033c"), Attrs([Attr("address","0x780"), -Attr("insn","ldr x8, [x8, #0xfc0]")]), Var("R8",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R8",Imm(64)),Int(4032,64)),LittleEndian(),64)), -Def(Tid(836, "%00000344"), Attrs([Attr("address","0x784"), -Attr("insn","str w10, [x8]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("R8",Imm(64)),Extract(31,0,Var("R10",Imm(64))),LittleEndian(),32)), -Def(Tid(843, "%0000034b"), Attrs([Attr("address","0x788"), -Attr("insn","str wzr, [x8]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("R8",Imm(64)),Int(0,32),LittleEndian(),32)), -Def(Tid(850, "%00000352"), Attrs([Attr("address","0x78C"), -Attr("insn","ldr w8, [x9]")]), Var("R8",Imm(64)), -UNSIGNED(64,Load(Var("mem",Mem(64,8)),Var("R9",Imm(64)),LittleEndian(),32))), -Def(Tid(856, "%00000358"), Attrs([Attr("address","0x790"), -Attr("insn","add w8, w8, #0x1")]), Var("R8",Imm(64)), -UNSIGNED(64,PLUS(Extract(31,0,Var("R8",Imm(64))),Int(1,32)))), -Def(Tid(864, "%00000360"), Attrs([Attr("address","0x794"), -Attr("insn","str w8, [x9]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("R9",Imm(64)),Extract(31,0,Var("R8",Imm(64))),LittleEndian(),32))]), -Jmps([Call(Tid(869, "%00000365"), Attrs([Attr("address","0x798"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))]))])), -Sub(Tid(1_553, "@register_tm_clones"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x6C0")]), - "register_tm_clones", Args([Arg(Tid(1_601, "%00000641"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("register_tm_clones_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(600, "@register_tm_clones"), Attrs([Attr("address","0x6C0")]), - Phis([]), Defs([Def(Tid(603, "%0000025b"), Attrs([Attr("address","0x6C0"), -Attr("insn","adrp x0, #69632")]), Var("R0",Imm(64)), Int(69632,64)), -Def(Tid(609, "%00000261"), Attrs([Attr("address","0x6C4"), -Attr("insn","add x0, x0, #0x30")]), Var("R0",Imm(64)), -PLUS(Var("R0",Imm(64)),Int(48,64))), Def(Tid(614, "%00000266"), - Attrs([Attr("address","0x6C8"), Attr("insn","adrp x1, #69632")]), - Var("R1",Imm(64)), Int(69632,64)), Def(Tid(620, "%0000026c"), - Attrs([Attr("address","0x6CC"), Attr("insn","add x1, x1, #0x30")]), - Var("R1",Imm(64)), PLUS(Var("R1",Imm(64)),Int(48,64))), -Def(Tid(627, "%00000273"), Attrs([Attr("address","0x6D0"), -Attr("insn","sub x1, x1, x0")]), Var("R1",Imm(64)), -PLUS(PLUS(Var("R1",Imm(64)),NOT(Var("R0",Imm(64)))),Int(1,64))), -Def(Tid(633, "%00000279"), Attrs([Attr("address","0x6D4"), -Attr("insn","lsr x2, x1, #63")]), Var("R2",Imm(64)), -Concat(Int(0,63),Extract(63,63,Var("R1",Imm(64))))), -Def(Tid(640, "%00000280"), Attrs([Attr("address","0x6D8"), -Attr("insn","add x1, x2, x1, asr #3")]), Var("R1",Imm(64)), -PLUS(Var("R2",Imm(64)),ARSHIFT(Var("R1",Imm(64)),Int(3,3)))), -Def(Tid(646, "%00000286"), Attrs([Attr("address","0x6DC"), -Attr("insn","asr x1, x1, #1")]), Var("R1",Imm(64)), -SIGNED(64,Extract(63,1,Var("R1",Imm(64)))))]), -Jmps([Goto(Tid(652, "%0000028c"), Attrs([Attr("address","0x6E0"), -Attr("insn","cbz x1, #0x18")]), EQ(Var("R1",Imm(64)),Int(0,64)), -Direct(Tid(650, "%0000028a"))), Goto(Tid(1_582, "%0000062e"), Attrs([]), - Int(1,1), Direct(Tid(930, "%000003a2")))])), Blk(Tid(930, "%000003a2"), - Attrs([Attr("address","0x6E4")]), Phis([]), Defs([Def(Tid(933, "%000003a5"), - Attrs([Attr("address","0x6E4"), Attr("insn","adrp x2, #65536")]), - Var("R2",Imm(64)), Int(65536,64)), Def(Tid(940, "%000003ac"), - Attrs([Attr("address","0x6E8"), Attr("insn","ldr x2, [x2, #0xfe0]")]), - Var("R2",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R2",Imm(64)),Int(4064,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(945, "%000003b1"), Attrs([Attr("address","0x6EC"), -Attr("insn","cbz x2, #0xc")]), EQ(Var("R2",Imm(64)),Int(0,64)), -Direct(Tid(650, "%0000028a"))), Goto(Tid(1_583, "%0000062f"), Attrs([]), - Int(1,1), Direct(Tid(949, "%000003b5")))])), Blk(Tid(650, "%0000028a"), - Attrs([Attr("address","0x6F8")]), Phis([]), Defs([]), -Jmps([Call(Tid(658, "%00000292"), Attrs([Attr("address","0x6F8"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))])), -Blk(Tid(949, "%000003b5"), Attrs([Attr("address","0x6F0")]), Phis([]), -Defs([Def(Tid(953, "%000003b9"), Attrs([Attr("address","0x6F0"), -Attr("insn","mov x16, x2")]), Var("R16",Imm(64)), Var("R2",Imm(64)))]), -Jmps([Call(Tid(958, "%000003be"), Attrs([Attr("address","0x6F4"), -Attr("insn","br x16")]), Int(1,1), -(Indirect(Var("R16",Imm(64))),))]))]))]))) \ No newline at end of file diff --git a/src/test/correct/secret_write/clang_pic/secret_write.bir b/src/test/correct/secret_write/clang_pic/secret_write.bir deleted file mode 100644 index 323956626..000000000 --- a/src/test/correct/secret_write/clang_pic/secret_write.bir +++ /dev/null @@ -1,240 +0,0 @@ -00000630: program -000005fe: sub __cxa_finalize(__cxa_finalize_result) -00000631: __cxa_finalize_result :: out u32 = low:32[R0] - -0000039e: -00000496: R16 := 0x11000 -0000049d: R17 := mem[R16 + 8, el]:u64 -000004a3: R16 := R16 + 8 -000004a8: call R17 with noreturn - -000005ff: sub __do_global_dtors_aux(__do_global_dtors_aux_result) -00000632: __do_global_dtors_aux_result :: out u32 = low:32[R0] - -00000296: -0000029a: #3 := R31 - 0x20 -000002a0: mem := mem with [#3, el]:u64 <- R29 -000002a6: mem := mem with [#3 + 8, el]:u64 <- R30 -000002aa: R31 := #3 -000002b0: R29 := R31 -000002b8: mem := mem with [R31 + 0x10, el]:u64 <- R19 -000002bd: R19 := 0x11000 -000002c4: R0 := pad:64[mem[R19 + 0x30]] -000002cb: when 31:0[R0] <> 0 goto %000002c9 -00000626: goto %00000367 - -00000367: -0000036a: R0 := 0x10000 -00000371: R0 := mem[R0 + 0xFB0, el]:u64 -00000377: when R0 = 0 goto %00000375 -00000627: goto %0000038e - -0000038e: -00000391: R0 := 0x11000 -00000398: R0 := mem[R0 + 0x28, el]:u64 -0000039d: R30 := 0x730 -000003a0: call @__cxa_finalize with return %00000375 - -00000375: -0000037d: R30 := 0x734 -0000037f: call @deregister_tm_clones with return %00000381 - -00000381: -00000384: R0 := 1 -0000038c: mem := mem with [R19 + 0x30] <- 7:0[R0] -00000628: goto %000002c9 - -000002c9: -000002d3: R19 := mem[R31 + 0x10, el]:u64 -000002da: R29 := mem[R31, el]:u64 -000002df: R30 := mem[R31 + 8, el]:u64 -000002e3: R31 := R31 + 0x20 -000002e8: call R30 with noreturn - -00000603: sub __libc_start_main(__libc_start_main_main, __libc_start_main_arg2, __libc_start_main_arg3, __libc_start_main_auxv, __libc_start_main_result) -00000633: __libc_start_main_main :: in u64 = R0 -00000634: __libc_start_main_arg2 :: in u32 = low:32[R1] -00000635: __libc_start_main_arg3 :: in out u64 = R2 -00000636: __libc_start_main_auxv :: in out u64 = R3 -00000637: __libc_start_main_result :: out u32 = low:32[R0] - -000001ef: -00000480: R16 := 0x11000 -00000487: R17 := mem[R16, el]:u64 -0000048d: R16 := R16 -00000492: call R17 with noreturn - -00000604: sub _fini(_fini_result) -00000638: _fini_result :: out u32 = low:32[R0] - -0000001f: -00000025: #0 := R31 - 0x10 -0000002b: mem := mem with [#0, el]:u64 <- R29 -00000031: mem := mem with [#0 + 8, el]:u64 <- R30 -00000035: R31 := #0 -0000003b: R29 := R31 -00000042: R29 := mem[R31, el]:u64 -00000047: R30 := mem[R31 + 8, el]:u64 -0000004b: R31 := R31 + 0x10 -00000050: call R30 with noreturn - -00000605: sub _init(_init_result) -00000639: _init_result :: out u32 = low:32[R0] - -0000054e: -00000554: #5 := R31 - 0x10 -0000055a: mem := mem with [#5, el]:u64 <- R29 -00000560: mem := mem with [#5 + 8, el]:u64 <- R30 -00000564: R31 := #5 -0000056a: R29 := R31 -0000056f: R30 := 0x5D8 -00000571: call @call_weak_fn with return %00000573 - -00000573: -00000578: R29 := mem[R31, el]:u64 -0000057d: R30 := mem[R31 + 8, el]:u64 -00000581: R31 := R31 + 0x10 -00000586: call R30 with noreturn - -00000606: sub _start(_start_result) -0000063a: _start_result :: out u32 = low:32[R0] - -000001b0: -000001b5: R29 := 0 -000001ba: R30 := 0 -000001c0: R5 := R0 -000001c7: R1 := mem[R31, el]:u64 -000001cd: R2 := R31 + 8 -000001d3: R6 := R31 -000001d8: R0 := 0x10000 -000001df: R0 := mem[R0 + 0xFD8, el]:u64 -000001e4: R3 := 0 -000001e9: R4 := 0 -000001ee: R30 := 0x670 -000001f1: call @__libc_start_main with return %000001f3 - -000001f3: -000001f6: R30 := 0x674 -000001f9: call @abort with return %00000629 - -00000629: -0000062a: call @call_weak_fn with noreturn - -00000609: sub abort() - - -000001f7: -000004c2: R16 := 0x11000 -000004c9: R17 := mem[R16 + 0x18, el]:u64 -000004cf: R16 := R16 + 0x18 -000004d4: call R17 with noreturn - -0000060a: sub call_weak_fn(call_weak_fn_result) -0000063b: call_weak_fn_result :: out u32 = low:32[R0] - -000001fb: -000001fe: R0 := 0x10000 -00000205: R0 := mem[R0 + 0xFC8, el]:u64 -0000020b: when R0 = 0 goto %00000209 -0000062b: goto %000003de - -00000209: -00000211: call R30 with noreturn - -000003de: -000003e1: goto @__gmon_start__ - -000003df: -000004ac: R16 := 0x11000 -000004b3: R17 := mem[R16 + 0x10, el]:u64 -000004b9: R16 := R16 + 0x10 -000004be: call R17 with noreturn - -0000060c: sub deregister_tm_clones(deregister_tm_clones_result) -0000063c: deregister_tm_clones_result :: out u32 = low:32[R0] - -00000217: -0000021a: R0 := 0x11000 -00000220: R0 := R0 + 0x30 -00000225: R1 := 0x11000 -0000022b: R1 := R1 + 0x30 -00000231: #1 := ~R0 -00000236: #2 := R1 + ~R0 -0000023c: VF := extend:65[#2 + 1] <> extend:65[R1] + extend:65[#1] + 1 -00000242: CF := pad:65[#2 + 1] <> pad:65[R1] + pad:65[#1] + 1 -00000246: ZF := #2 + 1 = 0 -0000024a: NF := 63:63[#2 + 1] -00000250: when ZF goto %0000024e -0000062c: goto %000003c0 - -000003c0: -000003c3: R1 := 0x10000 -000003ca: R1 := mem[R1 + 0xFA8, el]:u64 -000003cf: when R1 = 0 goto %0000024e -0000062d: goto %000003d3 - -0000024e: -00000256: call R30 with noreturn - -000003d3: -000003d7: R16 := R1 -000003dc: call R16 with noreturn - -0000060f: sub frame_dummy(frame_dummy_result) -0000063d: frame_dummy_result :: out u32 = low:32[R0] - -000002ee: -000002f0: call @register_tm_clones with noreturn - -00000610: sub main(main_argc, main_argv, main_result) -0000063e: main_argc :: in u32 = low:32[R0] -0000063f: main_argv :: in out u64 = R1 -00000640: main_result :: out u32 = low:32[R0] - -000002f2: -000002f5: R9 := 0x10000 -000002fc: R9 := mem[R9 + 0xFB8, el]:u64 -00000301: R0 := 0 -00000308: mem := mem with [R9, el]:u32 <- 0 -0000030f: R8 := pad:64[mem[R9, el]:u32] -00000315: R8 := pad:64[31:0[R8] + 1] -0000031d: mem := mem with [R9, el]:u32 <- 31:0[R8] -00000322: R8 := 0x10000 -00000329: R8 := mem[R8 + 0xFD0, el]:u64 -00000330: R10 := pad:64[mem[R8, el]:u32] -00000335: R8 := 0x10000 -0000033c: R8 := mem[R8 + 0xFC0, el]:u64 -00000344: mem := mem with [R8, el]:u32 <- 31:0[R10] -0000034b: mem := mem with [R8, el]:u32 <- 0 -00000352: R8 := pad:64[mem[R9, el]:u32] -00000358: R8 := pad:64[31:0[R8] + 1] -00000360: mem := mem with [R9, el]:u32 <- 31:0[R8] -00000365: call R30 with noreturn - -00000611: sub register_tm_clones(register_tm_clones_result) -00000641: register_tm_clones_result :: out u32 = low:32[R0] - -00000258: -0000025b: R0 := 0x11000 -00000261: R0 := R0 + 0x30 -00000266: R1 := 0x11000 -0000026c: R1 := R1 + 0x30 -00000273: R1 := R1 + ~R0 + 1 -00000279: R2 := 0.63:63[R1] -00000280: R1 := R2 + (R1 ~>> 3) -00000286: R1 := extend:64[63:1[R1]] -0000028c: when R1 = 0 goto %0000028a -0000062e: goto %000003a2 - -000003a2: -000003a5: R2 := 0x10000 -000003ac: R2 := mem[R2 + 0xFE0, el]:u64 -000003b1: when R2 = 0 goto %0000028a -0000062f: goto %000003b5 - -0000028a: -00000292: call R30 with noreturn - -000003b5: -000003b9: R16 := R2 -000003be: call R16 with noreturn diff --git a/src/test/correct/secret_write/clang_pic/secret_write.expected b/src/test/correct/secret_write/clang_pic/secret_write.expected index fb6ddcb6a..6fdfc9ed7 100644 --- a/src/test/correct/secret_write/clang_pic/secret_write.expected +++ b/src/test/correct/secret_write/clang_pic/secret_write.expected @@ -9,16 +9,15 @@ var {:extern} R8: bv64; var {:extern} R9: bv64; var {:extern} mem: [bv64]bv8; const {:extern} $secret_addr: bv64; -axiom ($secret_addr == 69688bv64); +axiom ($secret_addr == 131096bv64); const {:extern} $x_addr: bv64; -axiom ($x_addr == 69692bv64); +axiom ($x_addr == 131100bv64); const {:extern} $z_addr: bv64; -axiom ($z_addr == 69684bv64); +axiom ($z_addr == 131092bv64); function {:extern} L(mem$in: [bv64]bv8, index: bv64) returns (bool) { (if (index == $secret_addr) then false else (if (index == $x_addr) then (bvsmod32(memory_load32_le(mem$in, $z_addr), 2bv32) == 0bv32) else (if (index == $z_addr) then true else false))) } -function {:extern} {:bvbuiltin "bvadd"} bvadd32(bv32, bv32) returns (bv32); function {:extern} {:bvbuiltin "bvadd"} bvadd64(bv64, bv64) returns (bv64); function {:extern} {:bvbuiltin "bvsge"} bvsge32(bv32, bv32) returns (bool); function {:extern} {:bvbuiltin "bvsmod"} bvsmod32(bv32, bv32) returns (bv32); @@ -46,20 +45,18 @@ function {:extern} memory_store32_le(memory: [bv64]bv8, index: bv64, value: bv32 memory[index := value[8:0]][bvadd64(index, 1bv64) := value[16:8]][bvadd64(index, 2bv64) := value[24:16]][bvadd64(index, 3bv64) := value[32:24]] } -function {:extern} {:bvbuiltin "zero_extend 32"} zero_extend32_32(bv32) returns (bv64); procedure {:extern} rely(); modifies Gamma_mem, mem; ensures (forall i: bv64 :: (((mem[i] == old(mem[i])) ==> (Gamma_mem[i] == old(Gamma_mem[i]))))); ensures (memory_load32_le(mem, $z_addr) == old(memory_load32_le(mem, $z_addr))); ensures (old(gamma_load32(Gamma_mem, $x_addr)) ==> gamma_load32(Gamma_mem, $x_addr)); - free ensures (memory_load32_le(mem, 1968bv64) == 131073bv32); - free ensures (memory_load64_le(mem, 69040bv64) == 1872bv64); - free ensures (memory_load64_le(mem, 69048bv64) == 1792bv64); - free ensures (memory_load64_le(mem, 69560bv64) == 69684bv64); - free ensures (memory_load64_le(mem, 69568bv64) == 69692bv64); - free ensures (memory_load64_le(mem, 69584bv64) == 69688bv64); - free ensures (memory_load64_le(mem, 69592bv64) == 1876bv64); - free ensures (memory_load64_le(mem, 69672bv64) == 69672bv64); + free ensures (memory_load32_le(mem, 2316bv64) == 131073bv32); + free ensures (memory_load64_le(mem, 130424bv64) == 2256bv64); + free ensures (memory_load64_le(mem, 130432bv64) == 2176bv64); + free ensures (memory_load64_le(mem, 131032bv64) == 131092bv64); + free ensures (memory_load64_le(mem, 131040bv64) == 131100bv64); + free ensures (memory_load64_le(mem, 131056bv64) == 2260bv64); + free ensures (memory_load64_le(mem, 131080bv64) == 131080bv64); procedure {:extern} rely_transitive(); modifies Gamma_mem, mem; @@ -88,116 +85,68 @@ implementation {:extern} guarantee_reflexive() assert bvsge32(memory_load32_le(mem, $z_addr), memory_load32_le(mem, $z_addr)); } -procedure main_1876(); +procedure main(); modifies Gamma_R0, Gamma_R10, Gamma_R8, Gamma_R9, Gamma_mem, R0, R10, R8, R9, mem; requires (gamma_load32(Gamma_mem, $x_addr) == true); requires (gamma_load32(Gamma_mem, $z_addr) == true); requires (gamma_load32(Gamma_mem, $secret_addr) == false); requires (memory_load32_le(mem, $z_addr) == 0bv32); - free requires (memory_load64_le(mem, 69664bv64) == 0bv64); - free requires (memory_load64_le(mem, 69672bv64) == 69672bv64); - free requires (memory_load32_le(mem, 1968bv64) == 131073bv32); - free requires (memory_load64_le(mem, 69040bv64) == 1872bv64); - free requires (memory_load64_le(mem, 69048bv64) == 1792bv64); - free requires (memory_load64_le(mem, 69560bv64) == 69684bv64); - free requires (memory_load64_le(mem, 69568bv64) == 69692bv64); - free requires (memory_load64_le(mem, 69584bv64) == 69688bv64); - free requires (memory_load64_le(mem, 69592bv64) == 1876bv64); - free requires (memory_load64_le(mem, 69672bv64) == 69672bv64); - free ensures (memory_load32_le(mem, 1968bv64) == 131073bv32); - free ensures (memory_load64_le(mem, 69040bv64) == 1872bv64); - free ensures (memory_load64_le(mem, 69048bv64) == 1792bv64); - free ensures (memory_load64_le(mem, 69560bv64) == 69684bv64); - free ensures (memory_load64_le(mem, 69568bv64) == 69692bv64); - free ensures (memory_load64_le(mem, 69584bv64) == 69688bv64); - free ensures (memory_load64_le(mem, 69592bv64) == 1876bv64); - free ensures (memory_load64_le(mem, 69672bv64) == 69672bv64); - -implementation main_1876() + free requires (memory_load64_le(mem, 131072bv64) == 0bv64); + free requires (memory_load64_le(mem, 131080bv64) == 131080bv64); + free requires (memory_load32_le(mem, 2316bv64) == 131073bv32); + free requires (memory_load64_le(mem, 130424bv64) == 2256bv64); + free requires (memory_load64_le(mem, 130432bv64) == 2176bv64); + free requires (memory_load64_le(mem, 131032bv64) == 131092bv64); + free requires (memory_load64_le(mem, 131040bv64) == 131100bv64); + free requires (memory_load64_le(mem, 131056bv64) == 2260bv64); + free requires (memory_load64_le(mem, 131080bv64) == 131080bv64); + free ensures (memory_load32_le(mem, 2316bv64) == 131073bv32); + free ensures (memory_load64_le(mem, 130424bv64) == 2256bv64); + free ensures (memory_load64_le(mem, 130432bv64) == 2176bv64); + free ensures (memory_load64_le(mem, 131032bv64) == 131092bv64); + free ensures (memory_load64_le(mem, 131040bv64) == 131100bv64); + free ensures (memory_load64_le(mem, 131056bv64) == 2260bv64); + free ensures (memory_load64_le(mem, 131080bv64) == 131080bv64); + +implementation main() { - var Gamma_load18: bool; - var Gamma_load19: bool; - var Gamma_load20: bool; - var Gamma_load21: bool; - var Gamma_load22: bool; - var Gamma_load23: bool; + var $load$18: bv64; + var $load$19: bv64; + var Gamma_$load$18: bool; + var Gamma_$load$19: bool; var Gamma_x_old: bool; - var load18: bv64; - var load19: bv32; - var load20: bv64; - var load21: bv32; - var load22: bv64; - var load23: bv32; var z_old: bv32; lmain: assume {:captureState "lmain"} true; - R9, Gamma_R9 := 65536bv64, true; - call rely(); - load18, Gamma_load18 := memory_load64_le(mem, bvadd64(R9, 4024bv64)), (gamma_load64(Gamma_mem, bvadd64(R9, 4024bv64)) || L(mem, bvadd64(R9, 4024bv64))); - R9, Gamma_R9 := load18, Gamma_load18; + R8, Gamma_R8 := 126976bv64, true; + R9, Gamma_R9 := 126976bv64, true; R0, Gamma_R0 := 0bv64, true; call rely(); - z_old := memory_load32_le(mem, $z_addr); - Gamma_x_old := (gamma_load32(Gamma_mem, $x_addr) || L(mem, $x_addr)); - assert (L(mem, R9) ==> true); - mem, Gamma_mem := memory_store32_le(mem, R9, 0bv32), gamma_store32(Gamma_mem, R9, true); - assert ((R9 == $z_addr) ==> (L(mem, $x_addr) ==> Gamma_x_old)); - assert bvsge32(memory_load32_le(mem, $z_addr), z_old); - assume {:captureState "%00000308"} true; - call rely(); - load19, Gamma_load19 := memory_load32_le(mem, R9), (gamma_load32(Gamma_mem, R9) || L(mem, R9)); - R8, Gamma_R8 := zero_extend32_32(load19), Gamma_load19; - R8, Gamma_R8 := zero_extend32_32(bvadd32(R8[32:0], 1bv32)), Gamma_R8; - call rely(); - z_old := memory_load32_le(mem, $z_addr); - Gamma_x_old := (gamma_load32(Gamma_mem, $x_addr) || L(mem, $x_addr)); - assert (L(mem, R9) ==> Gamma_R8); - mem, Gamma_mem := memory_store32_le(mem, R9, R8[32:0]), gamma_store32(Gamma_mem, R9, Gamma_R8); - assert ((R9 == $z_addr) ==> (L(mem, $x_addr) ==> Gamma_x_old)); - assert bvsge32(memory_load32_le(mem, $z_addr), z_old); - assume {:captureState "%0000031d"} true; - R8, Gamma_R8 := 65536bv64, true; + $load$18, Gamma_$load$18 := memory_load64_le(mem, bvadd64(R8, 4064bv64)), (gamma_load64(Gamma_mem, bvadd64(R8, 4064bv64)) || L(mem, bvadd64(R8, 4064bv64))); + R8, Gamma_R8 := $load$18, Gamma_$load$18; call rely(); - load20, Gamma_load20 := memory_load64_le(mem, bvadd64(R8, 4048bv64)), (gamma_load64(Gamma_mem, bvadd64(R8, 4048bv64)) || L(mem, bvadd64(R8, 4048bv64))); - R8, Gamma_R8 := load20, Gamma_load20; - call rely(); - load21, Gamma_load21 := memory_load32_le(mem, R8), (gamma_load32(Gamma_mem, R8) || L(mem, R8)); - R10, Gamma_R10 := zero_extend32_32(load21), Gamma_load21; - R8, Gamma_R8 := 65536bv64, true; - call rely(); - load22, Gamma_load22 := memory_load64_le(mem, bvadd64(R8, 4032bv64)), (gamma_load64(Gamma_mem, bvadd64(R8, 4032bv64)) || L(mem, bvadd64(R8, 4032bv64))); - R8, Gamma_R8 := load22, Gamma_load22; - call rely(); - z_old := memory_load32_le(mem, $z_addr); - Gamma_x_old := (gamma_load32(Gamma_mem, $x_addr) || L(mem, $x_addr)); - assert (L(mem, R8) ==> Gamma_R10); - mem, Gamma_mem := memory_store32_le(mem, R8, R10[32:0]), gamma_store32(Gamma_mem, R8, Gamma_R10); - assert ((R8 == $z_addr) ==> (L(mem, $x_addr) ==> Gamma_x_old)); - assert bvsge32(memory_load32_le(mem, $z_addr), z_old); - assume {:captureState "%00000344"} true; + $load$19, Gamma_$load$19 := memory_load64_le(mem, bvadd64(R9, 4056bv64)), (gamma_load64(Gamma_mem, bvadd64(R9, 4056bv64)) || L(mem, bvadd64(R9, 4056bv64))); + R9, Gamma_R9 := $load$19, Gamma_$load$19; + R10, Gamma_R10 := 2bv64, true; call rely(); + assert (L(mem, R8) ==> true); z_old := memory_load32_le(mem, $z_addr); Gamma_x_old := (gamma_load32(Gamma_mem, $x_addr) || L(mem, $x_addr)); - assert (L(mem, R8) ==> true); mem, Gamma_mem := memory_store32_le(mem, R8, 0bv32), gamma_store32(Gamma_mem, R8, true); assert ((R8 == $z_addr) ==> (L(mem, $x_addr) ==> Gamma_x_old)); assert bvsge32(memory_load32_le(mem, $z_addr), z_old); - assume {:captureState "%0000034b"} true; - call rely(); - load23, Gamma_load23 := memory_load32_le(mem, R9), (gamma_load32(Gamma_mem, R9) || L(mem, R9)); - R8, Gamma_R8 := zero_extend32_32(load23), Gamma_load23; - R8, Gamma_R8 := zero_extend32_32(bvadd32(R8[32:0], 1bv32)), Gamma_R8; + assume {:captureState "%00000294"} true; call rely(); + assert (L(mem, R9) ==> Gamma_R10); z_old := memory_load32_le(mem, $z_addr); Gamma_x_old := (gamma_load32(Gamma_mem, $x_addr) || L(mem, $x_addr)); - assert (L(mem, R9) ==> Gamma_R8); - mem, Gamma_mem := memory_store32_le(mem, R9, R8[32:0]), gamma_store32(Gamma_mem, R9, Gamma_R8); + mem, Gamma_mem := memory_store32_le(mem, R9, R10[32:0]), gamma_store32(Gamma_mem, R9, Gamma_R10); assert ((R9 == $z_addr) ==> (L(mem, $x_addr) ==> Gamma_x_old)); assert bvsge32(memory_load32_le(mem, $z_addr), z_old); - assume {:captureState "%00000360"} true; - goto main_1876_basil_return; - main_1876_basil_return: - assume {:captureState "main_1876_basil_return"} true; + assume {:captureState "%00000298"} true; + goto main_basil_return; + main_basil_return: + assume {:captureState "main_basil_return"} true; return; } diff --git a/src/test/correct/secret_write/clang_pic/secret_write.gts b/src/test/correct/secret_write/clang_pic/secret_write.gts deleted file mode 100644 index 9bfdc1d84..000000000 Binary files a/src/test/correct/secret_write/clang_pic/secret_write.gts and /dev/null differ diff --git a/src/test/correct/secret_write/clang_pic/secret_write.md5sum b/src/test/correct/secret_write/clang_pic/secret_write.md5sum new file mode 100644 index 000000000..01944f202 --- /dev/null +++ b/src/test/correct/secret_write/clang_pic/secret_write.md5sum @@ -0,0 +1,5 @@ +775dc3ba50643de99f4e83144e04280b correct/secret_write/clang_pic/a.out +517de547b219ea37001cd5940c387df9 correct/secret_write/clang_pic/secret_write.adt +6a5b6902feb6a58ee0ab1cb69a218881 correct/secret_write/clang_pic/secret_write.bir +18e4b53191530c3398762f6aede1a1f9 correct/secret_write/clang_pic/secret_write.relf +5e14108bf6e56dc7879549271f979768 correct/secret_write/clang_pic/secret_write.gts diff --git a/src/test/correct/secret_write/clang_pic/secret_write.relf b/src/test/correct/secret_write/clang_pic/secret_write.relf deleted file mode 100644 index 8d41dd993..000000000 --- a/src/test/correct/secret_write/clang_pic/secret_write.relf +++ /dev/null @@ -1,128 +0,0 @@ - -Relocation section '.rela.dyn' at offset 0x460 contains 11 entries: - Offset Info Type Symbol's Value Symbol's Name + Addend -0000000000010db0 0000000000000403 R_AARCH64_RELATIVE 750 -0000000000010db8 0000000000000403 R_AARCH64_RELATIVE 700 -0000000000010fb8 0000000000000403 R_AARCH64_RELATIVE 11034 -0000000000010fc0 0000000000000403 R_AARCH64_RELATIVE 1103c -0000000000010fd0 0000000000000403 R_AARCH64_RELATIVE 11038 -0000000000010fd8 0000000000000403 R_AARCH64_RELATIVE 754 -0000000000011028 0000000000000403 R_AARCH64_RELATIVE 11028 -0000000000010fa8 0000000400000401 R_AARCH64_GLOB_DAT 0000000000000000 _ITM_deregisterTMCloneTable + 0 -0000000000010fb0 0000000500000401 R_AARCH64_GLOB_DAT 0000000000000000 __cxa_finalize@GLIBC_2.17 + 0 -0000000000010fc8 0000000600000401 R_AARCH64_GLOB_DAT 0000000000000000 __gmon_start__ + 0 -0000000000010fe0 0000000800000401 R_AARCH64_GLOB_DAT 0000000000000000 _ITM_registerTMCloneTable + 0 - -Relocation section '.rela.plt' at offset 0x568 contains 4 entries: - Offset Info Type Symbol's Value Symbol's Name + Addend -0000000000011000 0000000300000402 R_AARCH64_JUMP_SLOT 0000000000000000 __libc_start_main@GLIBC_2.34 + 0 -0000000000011008 0000000500000402 R_AARCH64_JUMP_SLOT 0000000000000000 __cxa_finalize@GLIBC_2.17 + 0 -0000000000011010 0000000600000402 R_AARCH64_JUMP_SLOT 0000000000000000 __gmon_start__ + 0 -0000000000011018 0000000700000402 R_AARCH64_JUMP_SLOT 0000000000000000 abort@GLIBC_2.17 + 0 - -Symbol table '.dynsym' contains 9 entries: - Num: Value Size Type Bind Vis Ndx Name - 0: 0000000000000000 0 NOTYPE LOCAL DEFAULT UND - 1: 00000000000005c8 0 SECTION LOCAL DEFAULT 11 .init - 2: 0000000000011020 0 SECTION LOCAL DEFAULT 23 .data - 3: 0000000000000000 0 FUNC GLOBAL DEFAULT UND __libc_start_main@GLIBC_2.34 (2) - 4: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_deregisterTMCloneTable - 5: 0000000000000000 0 FUNC WEAK DEFAULT UND __cxa_finalize@GLIBC_2.17 (3) - 6: 0000000000000000 0 NOTYPE WEAK DEFAULT UND __gmon_start__ - 7: 0000000000000000 0 FUNC GLOBAL DEFAULT UND abort@GLIBC_2.17 (3) - 8: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_registerTMCloneTable - -Symbol table '.symtab' contains 92 entries: - Num: Value Size Type Bind Vis Ndx Name - 0: 0000000000000000 0 NOTYPE LOCAL DEFAULT UND - 1: 0000000000000238 0 SECTION LOCAL DEFAULT 1 .interp - 2: 0000000000000254 0 SECTION LOCAL DEFAULT 2 .note.gnu.build-id - 3: 0000000000000278 0 SECTION LOCAL DEFAULT 3 .note.ABI-tag - 4: 0000000000000298 0 SECTION LOCAL DEFAULT 4 .gnu.hash - 5: 00000000000002b8 0 SECTION LOCAL DEFAULT 5 .dynsym - 6: 0000000000000390 0 SECTION LOCAL DEFAULT 6 .dynstr - 7: 000000000000041e 0 SECTION LOCAL DEFAULT 7 .gnu.version - 8: 0000000000000430 0 SECTION LOCAL DEFAULT 8 .gnu.version_r - 9: 0000000000000460 0 SECTION LOCAL DEFAULT 9 .rela.dyn - 10: 0000000000000568 0 SECTION LOCAL DEFAULT 10 .rela.plt - 11: 00000000000005c8 0 SECTION LOCAL DEFAULT 11 .init - 12: 00000000000005e0 0 SECTION LOCAL DEFAULT 12 .plt - 13: 0000000000000640 0 SECTION LOCAL DEFAULT 13 .text - 14: 000000000000079c 0 SECTION LOCAL DEFAULT 14 .fini - 15: 00000000000007b0 0 SECTION LOCAL DEFAULT 15 .rodata - 16: 00000000000007b4 0 SECTION LOCAL DEFAULT 16 .eh_frame_hdr - 17: 00000000000007f0 0 SECTION LOCAL DEFAULT 17 .eh_frame - 18: 0000000000010db0 0 SECTION LOCAL DEFAULT 18 .init_array - 19: 0000000000010db8 0 SECTION LOCAL DEFAULT 19 .fini_array - 20: 0000000000010dc0 0 SECTION LOCAL DEFAULT 20 .dynamic - 21: 0000000000010fa0 0 SECTION LOCAL DEFAULT 21 .got - 22: 0000000000010fe8 0 SECTION LOCAL DEFAULT 22 .got.plt - 23: 0000000000011020 0 SECTION LOCAL DEFAULT 23 .data - 24: 0000000000011030 0 SECTION LOCAL DEFAULT 24 .bss - 25: 0000000000000000 0 SECTION LOCAL DEFAULT 25 .comment - 26: 0000000000000000 0 FILE LOCAL DEFAULT ABS Scrt1.o - 27: 0000000000000278 0 NOTYPE LOCAL DEFAULT 3 $d - 28: 0000000000000278 32 OBJECT LOCAL DEFAULT 3 __abi_tag - 29: 0000000000000640 0 NOTYPE LOCAL DEFAULT 13 $x - 30: 0000000000000804 0 NOTYPE LOCAL DEFAULT 17 $d - 31: 00000000000007b0 0 NOTYPE LOCAL DEFAULT 15 $d - 32: 0000000000000000 0 FILE LOCAL DEFAULT ABS crti.o - 33: 0000000000000674 0 NOTYPE LOCAL DEFAULT 13 $x - 34: 0000000000000674 20 FUNC LOCAL DEFAULT 13 call_weak_fn - 35: 00000000000005c8 0 NOTYPE LOCAL DEFAULT 11 $x - 36: 000000000000079c 0 NOTYPE LOCAL DEFAULT 14 $x - 37: 0000000000000000 0 FILE LOCAL DEFAULT ABS crtn.o - 38: 00000000000005d8 0 NOTYPE LOCAL DEFAULT 11 $x - 39: 00000000000007a8 0 NOTYPE LOCAL DEFAULT 14 $x - 40: 0000000000000000 0 FILE LOCAL DEFAULT ABS crtstuff.c - 41: 0000000000000690 0 NOTYPE LOCAL DEFAULT 13 $x - 42: 0000000000000690 0 FUNC LOCAL DEFAULT 13 deregister_tm_clones - 43: 00000000000006c0 0 FUNC LOCAL DEFAULT 13 register_tm_clones - 44: 0000000000011028 0 NOTYPE LOCAL DEFAULT 23 $d - 45: 0000000000000700 0 FUNC LOCAL DEFAULT 13 __do_global_dtors_aux - 46: 0000000000011030 1 OBJECT LOCAL DEFAULT 24 completed.0 - 47: 0000000000010db8 0 NOTYPE LOCAL DEFAULT 19 $d - 48: 0000000000010db8 0 OBJECT LOCAL DEFAULT 19 __do_global_dtors_aux_fini_array_entry - 49: 0000000000000750 0 FUNC LOCAL DEFAULT 13 frame_dummy - 50: 0000000000010db0 0 NOTYPE LOCAL DEFAULT 18 $d - 51: 0000000000010db0 0 OBJECT LOCAL DEFAULT 18 __frame_dummy_init_array_entry - 52: 0000000000000818 0 NOTYPE LOCAL DEFAULT 17 $d - 53: 0000000000011030 0 NOTYPE LOCAL DEFAULT 24 $d - 54: 0000000000000000 0 FILE LOCAL DEFAULT ABS secret_write.c - 55: 0000000000000754 0 NOTYPE LOCAL DEFAULT 13 $x.0 - 56: 0000000000011034 0 NOTYPE LOCAL DEFAULT 24 $d.1 - 57: 000000000000002a 0 NOTYPE LOCAL DEFAULT 25 $d.2 - 58: 0000000000000878 0 NOTYPE LOCAL DEFAULT 17 $d.3 - 59: 0000000000000000 0 FILE LOCAL DEFAULT ABS crtstuff.c - 60: 00000000000008a0 0 NOTYPE LOCAL DEFAULT 17 $d - 61: 00000000000008a0 0 OBJECT LOCAL DEFAULT 17 __FRAME_END__ - 62: 0000000000000000 0 FILE LOCAL DEFAULT ABS - 63: 0000000000010dc0 0 OBJECT LOCAL DEFAULT ABS _DYNAMIC - 64: 00000000000007b4 0 NOTYPE LOCAL DEFAULT 16 __GNU_EH_FRAME_HDR - 65: 0000000000010fa0 0 OBJECT LOCAL DEFAULT ABS _GLOBAL_OFFSET_TABLE_ - 66: 00000000000005e0 0 NOTYPE LOCAL DEFAULT 12 $x - 67: 0000000000000000 0 FUNC GLOBAL DEFAULT UND __libc_start_main@GLIBC_2.34 - 68: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_deregisterTMCloneTable - 69: 0000000000011020 0 NOTYPE WEAK DEFAULT 23 data_start - 70: 0000000000011030 0 NOTYPE GLOBAL DEFAULT 24 __bss_start__ - 71: 0000000000000000 0 FUNC WEAK DEFAULT UND __cxa_finalize@GLIBC_2.17 - 72: 0000000000011040 0 NOTYPE GLOBAL DEFAULT 24 _bss_end__ - 73: 0000000000011030 0 NOTYPE GLOBAL DEFAULT 23 _edata - 74: 0000000000011034 4 OBJECT GLOBAL DEFAULT 24 z - 75: 000000000001103c 4 OBJECT GLOBAL DEFAULT 24 x - 76: 000000000000079c 0 FUNC GLOBAL HIDDEN 14 _fini - 77: 0000000000011040 0 NOTYPE GLOBAL DEFAULT 24 __bss_end__ - 78: 0000000000011020 0 NOTYPE GLOBAL DEFAULT 23 __data_start - 79: 0000000000000000 0 NOTYPE WEAK DEFAULT UND __gmon_start__ - 80: 0000000000011028 0 OBJECT GLOBAL HIDDEN 23 __dso_handle - 81: 0000000000000000 0 FUNC GLOBAL DEFAULT UND abort@GLIBC_2.17 - 82: 00000000000007b0 4 OBJECT GLOBAL DEFAULT 15 _IO_stdin_used - 83: 0000000000011038 4 OBJECT GLOBAL DEFAULT 24 secret - 84: 0000000000011040 0 NOTYPE GLOBAL DEFAULT 24 _end - 85: 0000000000000640 52 FUNC GLOBAL DEFAULT 13 _start - 86: 0000000000011040 0 NOTYPE GLOBAL DEFAULT 24 __end__ - 87: 0000000000011030 0 NOTYPE GLOBAL DEFAULT 24 __bss_start - 88: 0000000000000754 72 FUNC GLOBAL DEFAULT 13 main - 89: 0000000000011030 0 OBJECT GLOBAL HIDDEN 23 __TMC_END__ - 90: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_registerTMCloneTable - 91: 00000000000005c8 0 FUNC GLOBAL HIDDEN 11 _init diff --git a/src/test/correct/secret_write/clang_pic/secret_write_gtirb.expected b/src/test/correct/secret_write/clang_pic/secret_write_gtirb.expected index 234abe468..9adb05fb7 100644 --- a/src/test/correct/secret_write/clang_pic/secret_write_gtirb.expected +++ b/src/test/correct/secret_write/clang_pic/secret_write_gtirb.expected @@ -9,16 +9,15 @@ var {:extern} R8: bv64; var {:extern} R9: bv64; var {:extern} mem: [bv64]bv8; const {:extern} $secret_addr: bv64; -axiom ($secret_addr == 69688bv64); +axiom ($secret_addr == 131096bv64); const {:extern} $x_addr: bv64; -axiom ($x_addr == 69692bv64); +axiom ($x_addr == 131100bv64); const {:extern} $z_addr: bv64; -axiom ($z_addr == 69684bv64); +axiom ($z_addr == 131092bv64); function {:extern} L(mem$in: [bv64]bv8, index: bv64) returns (bool) { (if (index == $secret_addr) then false else (if (index == $x_addr) then (bvsmod32(memory_load32_le(mem$in, $z_addr), 2bv32) == 0bv32) else (if (index == $z_addr) then true else false))) } -function {:extern} {:bvbuiltin "bvadd"} bvadd32(bv32, bv32) returns (bv32); function {:extern} {:bvbuiltin "bvadd"} bvadd64(bv64, bv64) returns (bv64); function {:extern} {:bvbuiltin "bvsge"} bvsge32(bv32, bv32) returns (bool); function {:extern} {:bvbuiltin "bvsmod"} bvsmod32(bv32, bv32) returns (bv32); @@ -46,20 +45,18 @@ function {:extern} memory_store32_le(memory: [bv64]bv8, index: bv64, value: bv32 memory[index := value[8:0]][bvadd64(index, 1bv64) := value[16:8]][bvadd64(index, 2bv64) := value[24:16]][bvadd64(index, 3bv64) := value[32:24]] } -function {:extern} {:bvbuiltin "zero_extend 32"} zero_extend32_32(bv32) returns (bv64); procedure {:extern} rely(); modifies Gamma_mem, mem; ensures (forall i: bv64 :: (((mem[i] == old(mem[i])) ==> (Gamma_mem[i] == old(Gamma_mem[i]))))); ensures (memory_load32_le(mem, $z_addr) == old(memory_load32_le(mem, $z_addr))); ensures (old(gamma_load32(Gamma_mem, $x_addr)) ==> gamma_load32(Gamma_mem, $x_addr)); - free ensures (memory_load32_le(mem, 1968bv64) == 131073bv32); - free ensures (memory_load64_le(mem, 69040bv64) == 1872bv64); - free ensures (memory_load64_le(mem, 69048bv64) == 1792bv64); - free ensures (memory_load64_le(mem, 69560bv64) == 69684bv64); - free ensures (memory_load64_le(mem, 69568bv64) == 69692bv64); - free ensures (memory_load64_le(mem, 69584bv64) == 69688bv64); - free ensures (memory_load64_le(mem, 69592bv64) == 1876bv64); - free ensures (memory_load64_le(mem, 69672bv64) == 69672bv64); + free ensures (memory_load32_le(mem, 2316bv64) == 131073bv32); + free ensures (memory_load64_le(mem, 130424bv64) == 2256bv64); + free ensures (memory_load64_le(mem, 130432bv64) == 2176bv64); + free ensures (memory_load64_le(mem, 131032bv64) == 131092bv64); + free ensures (memory_load64_le(mem, 131040bv64) == 131100bv64); + free ensures (memory_load64_le(mem, 131056bv64) == 2260bv64); + free ensures (memory_load64_le(mem, 131080bv64) == 131080bv64); procedure {:extern} rely_transitive(); modifies Gamma_mem, mem; @@ -88,116 +85,68 @@ implementation {:extern} guarantee_reflexive() assert bvsge32(memory_load32_le(mem, $z_addr), memory_load32_le(mem, $z_addr)); } -procedure main_1876(); +procedure main(); modifies Gamma_R0, Gamma_R10, Gamma_R8, Gamma_R9, Gamma_mem, R0, R10, R8, R9, mem; requires (gamma_load32(Gamma_mem, $x_addr) == true); requires (gamma_load32(Gamma_mem, $z_addr) == true); requires (gamma_load32(Gamma_mem, $secret_addr) == false); requires (memory_load32_le(mem, $z_addr) == 0bv32); - free requires (memory_load64_le(mem, 69664bv64) == 0bv64); - free requires (memory_load64_le(mem, 69672bv64) == 69672bv64); - free requires (memory_load32_le(mem, 1968bv64) == 131073bv32); - free requires (memory_load64_le(mem, 69040bv64) == 1872bv64); - free requires (memory_load64_le(mem, 69048bv64) == 1792bv64); - free requires (memory_load64_le(mem, 69560bv64) == 69684bv64); - free requires (memory_load64_le(mem, 69568bv64) == 69692bv64); - free requires (memory_load64_le(mem, 69584bv64) == 69688bv64); - free requires (memory_load64_le(mem, 69592bv64) == 1876bv64); - free requires (memory_load64_le(mem, 69672bv64) == 69672bv64); - free ensures (memory_load32_le(mem, 1968bv64) == 131073bv32); - free ensures (memory_load64_le(mem, 69040bv64) == 1872bv64); - free ensures (memory_load64_le(mem, 69048bv64) == 1792bv64); - free ensures (memory_load64_le(mem, 69560bv64) == 69684bv64); - free ensures (memory_load64_le(mem, 69568bv64) == 69692bv64); - free ensures (memory_load64_le(mem, 69584bv64) == 69688bv64); - free ensures (memory_load64_le(mem, 69592bv64) == 1876bv64); - free ensures (memory_load64_le(mem, 69672bv64) == 69672bv64); - -implementation main_1876() + free requires (memory_load64_le(mem, 131072bv64) == 0bv64); + free requires (memory_load64_le(mem, 131080bv64) == 131080bv64); + free requires (memory_load32_le(mem, 2316bv64) == 131073bv32); + free requires (memory_load64_le(mem, 130424bv64) == 2256bv64); + free requires (memory_load64_le(mem, 130432bv64) == 2176bv64); + free requires (memory_load64_le(mem, 131032bv64) == 131092bv64); + free requires (memory_load64_le(mem, 131040bv64) == 131100bv64); + free requires (memory_load64_le(mem, 131056bv64) == 2260bv64); + free requires (memory_load64_le(mem, 131080bv64) == 131080bv64); + free ensures (memory_load32_le(mem, 2316bv64) == 131073bv32); + free ensures (memory_load64_le(mem, 130424bv64) == 2256bv64); + free ensures (memory_load64_le(mem, 130432bv64) == 2176bv64); + free ensures (memory_load64_le(mem, 131032bv64) == 131092bv64); + free ensures (memory_load64_le(mem, 131040bv64) == 131100bv64); + free ensures (memory_load64_le(mem, 131056bv64) == 2260bv64); + free ensures (memory_load64_le(mem, 131080bv64) == 131080bv64); + +implementation main() { - var Gamma_load3: bool; - var Gamma_load4: bool; - var Gamma_load5: bool; - var Gamma_load6: bool; - var Gamma_load7: bool; - var Gamma_load8: bool; + var $load6: bv64; + var $load7: bv64; + var Gamma_$load6: bool; + var Gamma_$load7: bool; var Gamma_x_old: bool; - var load3: bv64; - var load4: bv32; - var load5: bv64; - var load6: bv32; - var load7: bv64; - var load8: bv32; var z_old: bv32; - main_1876__0__OCJPxV7kTAqIa7P9NrZAQg: - assume {:captureState "main_1876__0__OCJPxV7kTAqIa7P9NrZAQg"} true; - R9, Gamma_R9 := 65536bv64, true; - call rely(); - load3, Gamma_load3 := memory_load64_le(mem, bvadd64(R9, 4024bv64)), (gamma_load64(Gamma_mem, bvadd64(R9, 4024bv64)) || L(mem, bvadd64(R9, 4024bv64))); - R9, Gamma_R9 := load3, Gamma_load3; + $main$__0__$lwyID0MJQb6vgyjzPFtz8Q: + assume {:captureState "$main$__0__$lwyID0MJQb6vgyjzPFtz8Q"} true; + R8, Gamma_R8 := 126976bv64, true; + R9, Gamma_R9 := 126976bv64, true; R0, Gamma_R0 := 0bv64, true; call rely(); - z_old := memory_load32_le(mem, $z_addr); - Gamma_x_old := (gamma_load32(Gamma_mem, $x_addr) || L(mem, $x_addr)); - assert (L(mem, R9) ==> true); - mem, Gamma_mem := memory_store32_le(mem, R9, 0bv32), gamma_store32(Gamma_mem, R9, true); - assert ((R9 == $z_addr) ==> (L(mem, $x_addr) ==> Gamma_x_old)); - assert bvsge32(memory_load32_le(mem, $z_addr), z_old); - assume {:captureState "1888_0"} true; - call rely(); - load4, Gamma_load4 := memory_load32_le(mem, R9), (gamma_load32(Gamma_mem, R9) || L(mem, R9)); - R8, Gamma_R8 := zero_extend32_32(load4), Gamma_load4; - R8, Gamma_R8 := zero_extend32_32(bvadd32(R8[32:0], 1bv32)), Gamma_R8; - call rely(); - z_old := memory_load32_le(mem, $z_addr); - Gamma_x_old := (gamma_load32(Gamma_mem, $x_addr) || L(mem, $x_addr)); - assert (L(mem, R9) ==> Gamma_R8); - mem, Gamma_mem := memory_store32_le(mem, R9, R8[32:0]), gamma_store32(Gamma_mem, R9, Gamma_R8); - assert ((R9 == $z_addr) ==> (L(mem, $x_addr) ==> Gamma_x_old)); - assert bvsge32(memory_load32_le(mem, $z_addr), z_old); - assume {:captureState "1900_0"} true; - R8, Gamma_R8 := 65536bv64, true; + $load6, Gamma_$load6 := memory_load64_le(mem, bvadd64(R8, 4064bv64)), (gamma_load64(Gamma_mem, bvadd64(R8, 4064bv64)) || L(mem, bvadd64(R8, 4064bv64))); + R8, Gamma_R8 := $load6, Gamma_$load6; call rely(); - load5, Gamma_load5 := memory_load64_le(mem, bvadd64(R8, 4048bv64)), (gamma_load64(Gamma_mem, bvadd64(R8, 4048bv64)) || L(mem, bvadd64(R8, 4048bv64))); - R8, Gamma_R8 := load5, Gamma_load5; - call rely(); - load6, Gamma_load6 := memory_load32_le(mem, R8), (gamma_load32(Gamma_mem, R8) || L(mem, R8)); - R10, Gamma_R10 := zero_extend32_32(load6), Gamma_load6; - R8, Gamma_R8 := 65536bv64, true; - call rely(); - load7, Gamma_load7 := memory_load64_le(mem, bvadd64(R8, 4032bv64)), (gamma_load64(Gamma_mem, bvadd64(R8, 4032bv64)) || L(mem, bvadd64(R8, 4032bv64))); - R8, Gamma_R8 := load7, Gamma_load7; - call rely(); - z_old := memory_load32_le(mem, $z_addr); - Gamma_x_old := (gamma_load32(Gamma_mem, $x_addr) || L(mem, $x_addr)); - assert (L(mem, R8) ==> Gamma_R10); - mem, Gamma_mem := memory_store32_le(mem, R8, R10[32:0]), gamma_store32(Gamma_mem, R8, Gamma_R10); - assert ((R8 == $z_addr) ==> (L(mem, $x_addr) ==> Gamma_x_old)); - assert bvsge32(memory_load32_le(mem, $z_addr), z_old); - assume {:captureState "1924_0"} true; + $load7, Gamma_$load7 := memory_load64_le(mem, bvadd64(R9, 4056bv64)), (gamma_load64(Gamma_mem, bvadd64(R9, 4056bv64)) || L(mem, bvadd64(R9, 4056bv64))); + R9, Gamma_R9 := $load7, Gamma_$load7; + R10, Gamma_R10 := 2bv64, true; call rely(); + assert (L(mem, R8) ==> true); z_old := memory_load32_le(mem, $z_addr); Gamma_x_old := (gamma_load32(Gamma_mem, $x_addr) || L(mem, $x_addr)); - assert (L(mem, R8) ==> true); mem, Gamma_mem := memory_store32_le(mem, R8, 0bv32), gamma_store32(Gamma_mem, R8, true); assert ((R8 == $z_addr) ==> (L(mem, $x_addr) ==> Gamma_x_old)); assert bvsge32(memory_load32_le(mem, $z_addr), z_old); - assume {:captureState "1928_0"} true; - call rely(); - load8, Gamma_load8 := memory_load32_le(mem, R9), (gamma_load32(Gamma_mem, R9) || L(mem, R9)); - R8, Gamma_R8 := zero_extend32_32(load8), Gamma_load8; - R8, Gamma_R8 := zero_extend32_32(bvadd32(R8[32:0], 1bv32)), Gamma_R8; + assume {:captureState "2284$0"} true; call rely(); + assert (L(mem, R9) ==> Gamma_R10); z_old := memory_load32_le(mem, $z_addr); Gamma_x_old := (gamma_load32(Gamma_mem, $x_addr) || L(mem, $x_addr)); - assert (L(mem, R9) ==> Gamma_R8); - mem, Gamma_mem := memory_store32_le(mem, R9, R8[32:0]), gamma_store32(Gamma_mem, R9, Gamma_R8); + mem, Gamma_mem := memory_store32_le(mem, R9, R10[32:0]), gamma_store32(Gamma_mem, R9, Gamma_R10); assert ((R9 == $z_addr) ==> (L(mem, $x_addr) ==> Gamma_x_old)); assert bvsge32(memory_load32_le(mem, $z_addr), z_old); - assume {:captureState "1940_0"} true; - goto main_1876_basil_return; - main_1876_basil_return: - assume {:captureState "main_1876_basil_return"} true; + assume {:captureState "2288$0"} true; + goto main_basil_return; + main_basil_return: + assume {:captureState "main_basil_return"} true; return; } diff --git a/src/test/correct/secret_write/gcc/secret_write.adt b/src/test/correct/secret_write/gcc/secret_write.adt deleted file mode 100644 index 547046307..000000000 --- a/src/test/correct/secret_write/gcc/secret_write.adt +++ /dev/null @@ -1,555 +0,0 @@ -Project(Attrs([Attr("filename","\"gcc/secret_write.out\""), -Attr("image-specification","(declare abi (name str))\n(declare arch (name str))\n(declare base-address (addr int))\n(declare bias (off int))\n(declare bits (size int))\n(declare code-region (addr int) (size int) (off int))\n(declare code-start (addr int))\n(declare entry-point (addr int))\n(declare external-reference (addr int) (name str))\n(declare format (name str))\n(declare is-executable (flag bool))\n(declare is-little-endian (flag bool))\n(declare llvm:base-address (addr int))\n(declare llvm:code-entry (name str) (off int) (size int))\n(declare llvm:coff-import-library (name str))\n(declare llvm:coff-virtual-section-header (name str) (addr int) (size int))\n(declare llvm:elf-program-header (name str) (off int) (size int))\n(declare llvm:elf-program-header-flags (name str) (ld bool) (r bool) \n (w bool) (x bool))\n(declare llvm:elf-virtual-program-header (name str) (addr int) (size int))\n(declare llvm:entry-point (addr int))\n(declare llvm:macho-symbol (name str) (value int))\n(declare llvm:name-reference (at int) (name str))\n(declare llvm:relocation (at int) (addr int))\n(declare llvm:section-entry (name str) (addr int) (size int) (off int))\n(declare llvm:section-flags (name str) (r bool) (w bool) (x bool))\n(declare llvm:segment-command (name str) (off int) (size int))\n(declare llvm:segment-command-flags (name str) (r bool) (w bool) (x bool))\n(declare llvm:symbol-entry (name str) (addr int) (size int) (off int)\n (value int))\n(declare llvm:virtual-segment-command (name str) (addr int) (size int))\n(declare mapped (addr int) (size int) (off int))\n(declare named-region (addr int) (size int) (name str))\n(declare named-symbol (addr int) (name str))\n(declare require (name str))\n(declare section (addr int) (size int))\n(declare segment (addr int) (size int) (r bool) (w bool) (x bool))\n(declare subarch (name str))\n(declare symbol-chunk (addr int) (size int) (root int))\n(declare symbol-value (addr int) (value int))\n(declare system (name str))\n(declare vendor (name str))\n\n(abi unknown)\n(arch aarch64)\n(base-address 0)\n(bias 0)\n(bits 64)\n(code-region 1924 20 1924)\n(code-region 1536 388 1536)\n(code-region 1440 96 1440)\n(code-region 1408 24 1408)\n(code-start 1588)\n(code-start 1536)\n(code-start 1812)\n(entry-point 1536)\n(external-reference 69592 _ITM_deregisterTMCloneTable)\n(external-reference 69600 __cxa_finalize)\n(external-reference 69608 __gmon_start__)\n(external-reference 69624 _ITM_registerTMCloneTable)\n(external-reference 69552 __libc_start_main)\n(external-reference 69560 __cxa_finalize)\n(external-reference 69568 __gmon_start__)\n(external-reference 69576 abort)\n(format elf)\n(is-executable true)\n(is-little-endian true)\n(llvm:base-address 0)\n(llvm:code-entry abort 0 0)\n(llvm:code-entry __cxa_finalize 0 0)\n(llvm:code-entry __libc_start_main 0 0)\n(llvm:code-entry _init 1408 0)\n(llvm:code-entry main 1812 112)\n(llvm:code-entry _start 1536 52)\n(llvm:code-entry abort@GLIBC_2.17 0 0)\n(llvm:code-entry _fini 1924 0)\n(llvm:code-entry __cxa_finalize@GLIBC_2.17 0 0)\n(llvm:code-entry __libc_start_main@GLIBC_2.34 0 0)\n(llvm:code-entry frame_dummy 1808 0)\n(llvm:code-entry __do_global_dtors_aux 1728 0)\n(llvm:code-entry register_tm_clones 1664 0)\n(llvm:code-entry deregister_tm_clones 1616 0)\n(llvm:code-entry call_weak_fn 1588 20)\n(llvm:code-entry .fini 1924 20)\n(llvm:code-entry .text 1536 388)\n(llvm:code-entry .plt 1440 96)\n(llvm:code-entry .init 1408 24)\n(llvm:elf-program-header 08 3480 616)\n(llvm:elf-program-header 07 0 0)\n(llvm:elf-program-header 06 1948 60)\n(llvm:elf-program-header 05 596 68)\n(llvm:elf-program-header 04 3496 496)\n(llvm:elf-program-header 03 3480 632)\n(llvm:elf-program-header 02 0 2168)\n(llvm:elf-program-header 01 568 27)\n(llvm:elf-program-header 00 64 504)\n(llvm:elf-program-header-flags 08 false true false false)\n(llvm:elf-program-header-flags 07 false true true false)\n(llvm:elf-program-header-flags 06 false true false false)\n(llvm:elf-program-header-flags 05 false true false false)\n(llvm:elf-program-header-flags 04 false true true false)\n(llvm:elf-program-header-flags 03 true true true false)\n(llvm:elf-program-header-flags 02 true true false true)\n(llvm:elf-program-header-flags 01 false true false false)\n(llvm:elf-program-header-flags 00 false true false false)\n(llvm:elf-virtual-program-header 08 69016 616)\n(llvm:elf-virtual-program-header 07 0 0)\n(llvm:elf-virtual-program-header 06 1948 60)\n(llvm:elf-virtual-program-header 05 596 68)\n(llvm:elf-virtual-program-header 04 69032 496)\n(llvm:elf-virtual-program-header 03 69016 648)\n(llvm:elf-virtual-program-header 02 0 2168)\n(llvm:elf-virtual-program-header 01 568 27)\n(llvm:elf-virtual-program-header 00 64 504)\n(llvm:entry-point 1536)\n(llvm:name-reference 69576 abort)\n(llvm:name-reference 69568 __gmon_start__)\n(llvm:name-reference 69560 __cxa_finalize)\n(llvm:name-reference 69552 __libc_start_main)\n(llvm:name-reference 69624 _ITM_registerTMCloneTable)\n(llvm:name-reference 69608 __gmon_start__)\n(llvm:name-reference 69600 __cxa_finalize)\n(llvm:name-reference 69592 _ITM_deregisterTMCloneTable)\n(llvm:section-entry .shstrtab 0 250 6877)\n(llvm:section-entry .strtab 0 557 6320)\n(llvm:section-entry .symtab 0 2160 4160)\n(llvm:section-entry .comment 0 43 4112)\n(llvm:section-entry .bss 69648 16 4112)\n(llvm:section-entry .data 69632 16 4096)\n(llvm:section-entry .got 69528 104 3992)\n(llvm:section-entry .dynamic 69032 496 3496)\n(llvm:section-entry .fini_array 69024 8 3488)\n(llvm:section-entry .init_array 69016 8 3480)\n(llvm:section-entry .eh_frame 2008 160 2008)\n(llvm:section-entry .eh_frame_hdr 1948 60 1948)\n(llvm:section-entry .rodata 1944 4 1944)\n(llvm:section-entry .fini 1924 20 1924)\n(llvm:section-entry .text 1536 388 1536)\n(llvm:section-entry .plt 1440 96 1440)\n(llvm:section-entry .init 1408 24 1408)\n(llvm:section-entry .rela.plt 1312 96 1312)\n(llvm:section-entry .rela.dyn 1120 192 1120)\n(llvm:section-entry .gnu.version_r 1072 48 1072)\n(llvm:section-entry .gnu.version 1054 18 1054)\n(llvm:section-entry .dynstr 912 141 912)\n(llvm:section-entry .dynsym 696 216 696)\n(llvm:section-entry .gnu.hash 664 28 664)\n(llvm:section-entry .note.ABI-tag 632 32 632)\n(llvm:section-entry .note.gnu.build-id 596 36 596)\n(llvm:section-entry .interp 568 27 568)\n(llvm:section-flags .shstrtab true false false)\n(llvm:section-flags .strtab true false false)\n(llvm:section-flags .symtab true false false)\n(llvm:section-flags .comment true false false)\n(llvm:section-flags .bss true true false)\n(llvm:section-flags .data true true false)\n(llvm:section-flags .got true true false)\n(llvm:section-flags .dynamic true true false)\n(llvm:section-flags .fini_array true true false)\n(llvm:section-flags .init_array true true false)\n(llvm:section-flags .eh_frame true false false)\n(llvm:section-flags .eh_frame_hdr true false false)\n(llvm:section-flags .rodata true false false)\n(llvm:section-flags .fini true false true)\n(llvm:section-flags .text true false true)\n(llvm:section-flags .plt true false true)\n(llvm:section-flags .init true false true)\n(llvm:section-flags .rela.plt true false false)\n(llvm:section-flags .rela.dyn true false false)\n(llvm:section-flags .gnu.version_r true false false)\n(llvm:section-flags .gnu.version true false false)\n(llvm:section-flags .dynstr true false false)\n(llvm:section-flags .dynsym true false false)\n(llvm:section-flags .gnu.hash true false false)\n(llvm:section-flags .note.ABI-tag true false false)\n(llvm:section-flags .note.gnu.build-id true false false)\n(llvm:section-flags .interp true false false)\n(llvm:symbol-entry abort 0 0 0 0)\n(llvm:symbol-entry __cxa_finalize 0 0 0 0)\n(llvm:symbol-entry __libc_start_main 0 0 0 0)\n(llvm:symbol-entry _init 1408 0 1408 1408)\n(llvm:symbol-entry main 1812 112 1812 1812)\n(llvm:symbol-entry _start 1536 52 1536 1536)\n(llvm:symbol-entry abort@GLIBC_2.17 0 0 0 0)\n(llvm:symbol-entry _fini 1924 0 1924 1924)\n(llvm:symbol-entry __cxa_finalize@GLIBC_2.17 0 0 0 0)\n(llvm:symbol-entry __libc_start_main@GLIBC_2.34 0 0 0 0)\n(llvm:symbol-entry frame_dummy 1808 0 1808 1808)\n(llvm:symbol-entry __do_global_dtors_aux 1728 0 1728 1728)\n(llvm:symbol-entry register_tm_clones 1664 0 1664 1664)\n(llvm:symbol-entry deregister_tm_clones 1616 0 1616 1616)\n(llvm:symbol-entry call_weak_fn 1588 20 1588 1588)\n(mapped 0 2168 0)\n(mapped 69016 632 3480)\n(named-region 0 2168 02)\n(named-region 69016 648 03)\n(named-region 568 27 .interp)\n(named-region 596 36 .note.gnu.build-id)\n(named-region 632 32 .note.ABI-tag)\n(named-region 664 28 .gnu.hash)\n(named-region 696 216 .dynsym)\n(named-region 912 141 .dynstr)\n(named-region 1054 18 .gnu.version)\n(named-region 1072 48 .gnu.version_r)\n(named-region 1120 192 .rela.dyn)\n(named-region 1312 96 .rela.plt)\n(named-region 1408 24 .init)\n(named-region 1440 96 .plt)\n(named-region 1536 388 .text)\n(named-region 1924 20 .fini)\n(named-region 1944 4 .rodata)\n(named-region 1948 60 .eh_frame_hdr)\n(named-region 2008 160 .eh_frame)\n(named-region 69016 8 .init_array)\n(named-region 69024 8 .fini_array)\n(named-region 69032 496 .dynamic)\n(named-region 69528 104 .got)\n(named-region 69632 16 .data)\n(named-region 69648 16 .bss)\n(named-region 0 43 .comment)\n(named-region 0 2160 .symtab)\n(named-region 0 557 .strtab)\n(named-region 0 250 .shstrtab)\n(named-symbol 1588 call_weak_fn)\n(named-symbol 1616 deregister_tm_clones)\n(named-symbol 1664 register_tm_clones)\n(named-symbol 1728 __do_global_dtors_aux)\n(named-symbol 1808 frame_dummy)\n(named-symbol 0 __libc_start_main@GLIBC_2.34)\n(named-symbol 0 __cxa_finalize@GLIBC_2.17)\n(named-symbol 1924 _fini)\n(named-symbol 0 abort@GLIBC_2.17)\n(named-symbol 1536 _start)\n(named-symbol 1812 main)\n(named-symbol 1408 _init)\n(named-symbol 0 __libc_start_main)\n(named-symbol 0 __cxa_finalize)\n(named-symbol 0 abort)\n(require libc.so.6)\n(section 568 27)\n(section 596 36)\n(section 632 32)\n(section 664 28)\n(section 696 216)\n(section 912 141)\n(section 1054 18)\n(section 1072 48)\n(section 1120 192)\n(section 1312 96)\n(section 1408 24)\n(section 1440 96)\n(section 1536 388)\n(section 1924 20)\n(section 1944 4)\n(section 1948 60)\n(section 2008 160)\n(section 69016 8)\n(section 69024 8)\n(section 69032 496)\n(section 69528 104)\n(section 69632 16)\n(section 69648 16)\n(section 0 43)\n(section 0 2160)\n(section 0 557)\n(section 0 250)\n(segment 0 2168 true false true)\n(segment 69016 648 true true false)\n(subarch v8)\n(symbol-chunk 1588 20 1588)\n(symbol-chunk 1536 52 1536)\n(symbol-chunk 1812 112 1812)\n(symbol-value 1588 1588)\n(symbol-value 1616 1616)\n(symbol-value 1664 1664)\n(symbol-value 1728 1728)\n(symbol-value 1808 1808)\n(symbol-value 1924 1924)\n(symbol-value 1536 1536)\n(symbol-value 1812 1812)\n(symbol-value 1408 1408)\n(symbol-value 0 0)\n(system \"\")\n(vendor \"\")\n"), -Attr("abi-name","\"aarch64-linux-gnu-elf\"")]), -Sections([Section(".shstrtab", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x00\x06\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xd8\x1b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x38\x00\x09\x00\x40\x00\x1c\x00\x1b\x00\x06\x00\x00\x00\x04\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x04\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x78\x08\x00\x00\x00\x00\x00\x00\x78\x08\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x01\x00\x00\x00\x06\x00\x00\x00\x98\x0d\x00\x00\x00\x00\x00\x00\x98\x0d"), -Section(".strtab", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x00\x06\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xd8\x1b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x38\x00\x09\x00\x40\x00\x1c\x00\x1b\x00\x06\x00\x00\x00\x04\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x04\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x78\x08\x00\x00\x00\x00\x00\x00\x78\x08\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x01\x00\x00\x00\x06\x00\x00\x00\x98\x0d\x00\x00\x00\x00\x00\x00\x98\x0d\x01\x00\x00\x00\x00\x00\x98\x0d\x01\x00\x00\x00\x00\x00\x78\x02\x00\x00\x00\x00\x00\x00\x88\x02\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x02\x00\x00\x00\x06\x00\x00\x00\xa8\x0d\x00\x00\x00\x00\x00\x00\xa8\x0d\x01\x00\x00\x00\x00\x00\xa8\x0d\x01\x00\x00\x00\x00\x00\xf0\x01\x00\x00\x00\x00\x00\x00\xf0\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x04\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x50\xe5\x74\x64\x04\x00\x00\x00\x9c\x07\x00\x00\x00\x00\x00\x00\x9c\x07\x00\x00\x00\x00\x00\x00\x9c\x07\x00\x00\x00\x00\x00\x00\x3c\x00\x00\x00\x00\x00\x00\x00\x3c\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x51\xe5\x74\x64\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x52\xe5\x74\x64\x04\x00\x00\x00\x98\x0d\x00\x00\x00\x00\x00\x00\x98\x0d\x01\x00\x00\x00\x00\x00\x98\x0d\x01\x00\x00\x00\x00\x00\x68\x02\x00\x00\x00\x00\x00\x00\x68\x02\x00\x00\x00"), -Section(".symtab", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x00\x06\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xd8\x1b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x38\x00\x09\x00\x40\x00\x1c\x00\x1b\x00\x06\x00\x00\x00\x04\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x04\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x78\x08\x00\x00\x00\x00\x00\x00\x78\x08\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x01\x00\x00\x00\x06\x00\x00\x00\x98\x0d\x00\x00\x00\x00\x00\x00\x98\x0d\x01\x00\x00\x00\x00\x00\x98\x0d\x01\x00\x00\x00\x00\x00\x78\x02\x00\x00\x00\x00\x00\x00\x88\x02\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x02\x00\x00\x00\x06\x00\x00\x00\xa8\x0d\x00\x00\x00\x00\x00\x00\xa8\x0d\x01\x00\x00\x00\x00\x00\xa8\x0d\x01\x00\x00\x00\x00\x00\xf0\x01\x00\x00\x00\x00\x00\x00\xf0\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x04\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x50\xe5\x74\x64\x04\x00\x00\x00\x9c\x07\x00\x00\x00\x00\x00\x00\x9c\x07\x00\x00\x00\x00\x00\x00\x9c\x07\x00\x00\x00\x00\x00\x00\x3c\x00\x00\x00\x00\x00\x00\x00\x3c\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x51\xe5\x74\x64\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x52\xe5\x74\x64\x04\x00\x00\x00\x98\x0d\x00\x00\x00\x00\x00\x00\x98\x0d\x01\x00\x00\x00\x00\x00\x98\x0d\x01\x00\x00\x00\x00\x00\x68\x02\x00\x00\x00\x00\x00\x00\x68\x02\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x2f\x6c\x69\x62\x2f\x6c\x64\x2d\x6c\x69\x6e\x75\x78\x2d\x61\x61\x72\x63\x68\x36\x34\x2e\x73\x6f\x2e\x31\x00\x00\x04\x00\x00\x00\x14\x00\x00\x00\x03\x00\x00\x00\x47\x4e\x55\x00\xd0\x77\x1b\xbe\xe3\x3d\x84\x47\xf5\x17\x89\x58\x70\xcc\x8b\xff\xbe\x62\x12\x95\x04\x00\x00\x00\x10\x00\x00\x00\x01\x00\x00\x00\x47\x4e\x55\x00\x00\x00\x00\x00\x03\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x01\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x0b\x00\x80\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x16\x00\x00\x10\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x48\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x22\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x22\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x73\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5f\x5f\x63\x78\x61\x5f\x66\x69\x6e\x61\x6c\x69\x7a\x65\x00\x5f\x5f\x6c\x69\x62\x63\x5f\x73\x74\x61\x72\x74\x5f\x6d\x61\x69\x6e\x00\x61\x62\x6f\x72\x74\x00\x6c\x69\x62\x63\x2e\x73\x6f\x2e\x36\x00\x47\x4c\x49\x42\x43\x5f\x32\x2e\x31\x37\x00\x47\x4c\x49\x42\x43\x5f\x32\x2e\x33\x34\x00\x5f\x49\x54\x4d\x5f\x64\x65\x72\x65\x67\x69\x73\x74\x65\x72\x54\x4d\x43\x6c\x6f\x6e\x65\x54\x61\x62\x6c\x65\x00\x5f\x5f\x67\x6d\x6f\x6e\x5f\x73\x74\x61\x72\x74\x5f\x5f\x00\x5f\x49\x54\x4d\x5f\x72\x65\x67\x69\x73\x74\x65\x72\x54\x4d\x43\x6c\x6f\x6e\x65\x54\x61\x62\x6c\x65\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x01\x00\x03\x00\x01\x00\x03\x00\x01\x00\x01\x00\x02\x00\x28\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x97\x91\x96\x06\x00\x00\x03\x00\x32\x00\x00\x00\x10\x00\x00\x00\xb4\x91\x96\x06\x00\x00\x02\x00\x3d\x00\x00\x00\x00\x00\x00\x00\x98\x0d\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x10\x07\x00\x00\x00\x00\x00\x00\xa0\x0d\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\xc0\x06\x00\x00\x00\x00\x00\x00\xf0\x0f\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x14\x07\x00\x00\x00\x00\x00\x00\x08\x10\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x08\x10\x01\x00\x00\x00\x00\x00\xd8\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe0\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe8\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xf8\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xb0\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xb8\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xc0\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xc8\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1f\x20\x03\xd5\xfd\x7b\xbf\xa9\xfd\x03\x00\x91\x2a\x00\x00\x94\xfd\x7b\xc1\xa8\xc0\x03\x5f\xd6\x00\x00\x00\x00\x00\x00\x00\x00\xf0\x7b\xbf\xa9\x90\x00\x00\x90\x11\xd6\x47\xf9\x10\xa2\x3e\x91\x20\x02\x1f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x90\x00\x00\x90\x11\xda\x47\xf9\x10\xc2\x3e\x91\x20\x02\x1f\xd6\x90\x00\x00\x90\x11\xde\x47\xf9\x10\xe2\x3e\x91\x20\x02\x1f\xd6\x90\x00\x00\x90\x11\xe2\x47\xf9\x10\x02\x3f\x91\x20\x02\x1f\xd6\x90\x00\x00\x90\x11\xe6\x47\xf9\x10\x22\x3f\x91\x20\x02\x1f\xd6\x1f\x20\x03\xd5\x1d\x00\x80\xd2\x1e\x00\x80\xd2\xe5\x03\x00\xaa\xe1\x03\x40\xf9\xe2\x23\x00\x91\xe6\x03\x00\x91\x80\x00\x00\x90\x00\xf8\x47\xf9\x03\x00\x80\xd2\x04\x00\x80\xd2\xe5\xff\xff\x97\xf0\xff\xff\x97\x80\x00\x00\x90\x00\xf4\x47\xf9\x40\x00\x00\xb4\xe8\xff\xff\x17\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x80\x00\x00\xb0\x00\x40\x00\x91\x81\x00\x00\xb0\x21\x40\x00\x91\x3f\x00\x00\xeb\xc0\x00\x00\x54\x81\x00\x00\x90\x21\xec\x47\xf9\x61\x00\x00\xb4\xf0\x03\x01\xaa\x00\x02\x1f\xd6\xc0\x03\x5f\xd6\x80\x00\x00\xb0\x00\x40\x00\x91\x81\x00\x00\xb0\x21\x40\x00\x91\x21\x00\x00\xcb\x22\xfc\x7f\xd3\x41\x0c\x81\x8b\x21\xfc\x41\x93\xc1\x00\x00\xb4\x82\x00\x00\x90\x42\xfc\x47\xf9\x62\x00\x00\xb4\xf0\x03\x02\xaa\x00\x02\x1f\xd6\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\xfd\x7b\xbe\xa9\xfd\x03\x00\x91\xf3\x0b\x00\xf9\x93\x00\x00\xb0\x60\x42\x40\x39\x40\x01\x00\x35\x80\x00\x00\x90\x00\xf0\x47\xf9\x80\x00\x00\xb4\x80\x00\x00\xb0\x00\x04\x40\xf9\xb9\xff\xff\x97\xd8\xff\xff\x97\x20\x00\x80\x52\x60\x42\x00\x39\xf3\x0b\x40\xf9\xfd\x7b\xc2\xa8\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\xdc\xff\xff\x17\x80\x00\x00\xb0\x00\x50\x00\x91\x1f\x00\x00\xb9\x80\x00\x00\xb0\x00\x50\x00\x91\x00\x00\x40\xb9\x01\x04\x00\x11\x80\x00\x00\xb0\x00\x50\x00\x91\x01\x00\x00\xb9\x80\x00\x00\xb0\x00\x70\x00\x91\x01\x00\x40\xb9\x80\x00\x00\xb0\x00\x60\x00\x91\x01\x00\x00\xb9\x80\x00\x00\xb0\x00\x60\x00\x91\x1f\x00\x00\xb9\x80\x00\x00\xb0\x00\x50\x00\x91\x00\x00\x40\xb9\x01\x04\x00\x11\x80\x00\x00\xb0\x00\x50\x00\x91\x01\x00\x00\xb9\x00\x00\x80\x52\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\xfd\x7b\xbf\xa9\xfd\x03\x00\x91\xfd\x7b\xc1\xa8\xc0\x03\x5f\xd6\x01\x00\x02\x00\x01\x1b\x03\x3b\x38\x00\x00\x00\x06\x00\x00\x00\x64\xfe\xff\xff\x50\x00\x00\x00\xb4\xfe\xff\xff\x64\x00\x00\x00\xe4\xfe\xff\xff\x78\x00\x00\x00\x24\xff\xff\xff\x8c\x00\x00\x00\x74\xff\xff\xff\xb0\x00\x00\x00\x78\xff\xff\xff\xc4\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x01\x7a\x52\x00\x04\x78\x1e\x01\x1b\x0c\x1f\x00\x10\x00\x00\x00\x18\x00\x00\x00\x0c\xfe\xff\xff\x34\x00\x00\x00\x00\x41\x07\x1e\x10\x00\x00\x00\x2c\x00\x00\x00\x48\xfe\xff\xff\x30\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x40\x00\x00\x00\x64\xfe\xff\xff\x3c\x00\x00\x00\x00\x00\x00\x00\x20\x00\x00\x00\x54\x00\x00\x00\x90\xfe\xff\xff\x48\x00\x00\x00\x00\x41\x0e\x20\x9d\x04\x9e\x03\x42\x93\x02\x4e\xde\xdd\xd3\x0e\x00\x00\x00\x00\x10\x00\x00\x00\x78\x00\x00\x00\xbc\xfe\xff\xff\x04\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x8c\x00\x00\x00\xac\xfe\xff\xff\x70\x00\x00\x00"), -Section(".comment", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x00\x06\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xd8\x1b\x00"), -Section(".interp", 0x238, "\x2f\x6c\x69\x62\x2f\x6c\x64\x2d\x6c\x69\x6e\x75\x78\x2d\x61\x61\x72\x63\x68\x36\x34\x2e\x73\x6f\x2e\x31\x00"), -Section(".note.gnu.build-id", 0x254, "\x04\x00\x00\x00\x14\x00\x00\x00\x03\x00\x00\x00\x47\x4e\x55\x00\xd0\x77\x1b\xbe\xe3\x3d\x84\x47\xf5\x17\x89\x58\x70\xcc\x8b\xff\xbe\x62\x12\x95"), -Section(".note.ABI-tag", 0x278, "\x04\x00\x00\x00\x10\x00\x00\x00\x01\x00\x00\x00\x47\x4e\x55\x00\x00\x00\x00\x00\x03\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00"), -Section(".gnu.hash", 0x298, "\x01\x00\x00\x00\x01\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".dynsym", 0x2B8, "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x0b\x00\x80\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x16\x00\x00\x10\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x48\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x22\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x22\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x73\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".dynstr", 0x390, "\x00\x5f\x5f\x63\x78\x61\x5f\x66\x69\x6e\x61\x6c\x69\x7a\x65\x00\x5f\x5f\x6c\x69\x62\x63\x5f\x73\x74\x61\x72\x74\x5f\x6d\x61\x69\x6e\x00\x61\x62\x6f\x72\x74\x00\x6c\x69\x62\x63\x2e\x73\x6f\x2e\x36\x00\x47\x4c\x49\x42\x43\x5f\x32\x2e\x31\x37\x00\x47\x4c\x49\x42\x43\x5f\x32\x2e\x33\x34\x00\x5f\x49\x54\x4d\x5f\x64\x65\x72\x65\x67\x69\x73\x74\x65\x72\x54\x4d\x43\x6c\x6f\x6e\x65\x54\x61\x62\x6c\x65\x00\x5f\x5f\x67\x6d\x6f\x6e\x5f\x73\x74\x61\x72\x74\x5f\x5f\x00\x5f\x49\x54\x4d\x5f\x72\x65\x67\x69\x73\x74\x65\x72\x54\x4d\x43\x6c\x6f\x6e\x65\x54\x61\x62\x6c\x65\x00"), -Section(".gnu.version", 0x41E, "\x00\x00\x00\x00\x00\x00\x02\x00\x01\x00\x03\x00\x01\x00\x03\x00\x01\x00"), -Section(".gnu.version_r", 0x430, "\x01\x00\x02\x00\x28\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x97\x91\x96\x06\x00\x00\x03\x00\x32\x00\x00\x00\x10\x00\x00\x00\xb4\x91\x96\x06\x00\x00\x02\x00\x3d\x00\x00\x00\x00\x00\x00\x00"), -Section(".rela.dyn", 0x460, "\x98\x0d\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x10\x07\x00\x00\x00\x00\x00\x00\xa0\x0d\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\xc0\x06\x00\x00\x00\x00\x00\x00\xf0\x0f\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x14\x07\x00\x00\x00\x00\x00\x00\x08\x10\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x08\x10\x01\x00\x00\x00\x00\x00\xd8\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe0\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe8\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xf8\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".rela.plt", 0x520, "\xb0\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xb8\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xc0\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xc8\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".init", 0x580, "\x1f\x20\x03\xd5\xfd\x7b\xbf\xa9\xfd\x03\x00\x91\x2a\x00\x00\x94\xfd\x7b\xc1\xa8\xc0\x03\x5f\xd6"), -Section(".plt", 0x5A0, "\xf0\x7b\xbf\xa9\x90\x00\x00\x90\x11\xd6\x47\xf9\x10\xa2\x3e\x91\x20\x02\x1f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x90\x00\x00\x90\x11\xda\x47\xf9\x10\xc2\x3e\x91\x20\x02\x1f\xd6\x90\x00\x00\x90\x11\xde\x47\xf9\x10\xe2\x3e\x91\x20\x02\x1f\xd6\x90\x00\x00\x90\x11\xe2\x47\xf9\x10\x02\x3f\x91\x20\x02\x1f\xd6\x90\x00\x00\x90\x11\xe6\x47\xf9\x10\x22\x3f\x91\x20\x02\x1f\xd6"), -Section(".fini", 0x784, "\x1f\x20\x03\xd5\xfd\x7b\xbf\xa9\xfd\x03\x00\x91\xfd\x7b\xc1\xa8\xc0\x03\x5f\xd6"), -Section(".rodata", 0x798, "\x01\x00\x02\x00"), -Section(".eh_frame_hdr", 0x79C, "\x01\x1b\x03\x3b\x38\x00\x00\x00\x06\x00\x00\x00\x64\xfe\xff\xff\x50\x00\x00\x00\xb4\xfe\xff\xff\x64\x00\x00\x00\xe4\xfe\xff\xff\x78\x00\x00\x00\x24\xff\xff\xff\x8c\x00\x00\x00\x74\xff\xff\xff\xb0\x00\x00\x00\x78\xff\xff\xff\xc4\x00\x00\x00"), -Section(".eh_frame", 0x7D8, "\x10\x00\x00\x00\x00\x00\x00\x00\x01\x7a\x52\x00\x04\x78\x1e\x01\x1b\x0c\x1f\x00\x10\x00\x00\x00\x18\x00\x00\x00\x0c\xfe\xff\xff\x34\x00\x00\x00\x00\x41\x07\x1e\x10\x00\x00\x00\x2c\x00\x00\x00\x48\xfe\xff\xff\x30\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x40\x00\x00\x00\x64\xfe\xff\xff\x3c\x00\x00\x00\x00\x00\x00\x00\x20\x00\x00\x00\x54\x00\x00\x00\x90\xfe\xff\xff\x48\x00\x00\x00\x00\x41\x0e\x20\x9d\x04\x9e\x03\x42\x93\x02\x4e\xde\xdd\xd3\x0e\x00\x00\x00\x00\x10\x00\x00\x00\x78\x00\x00\x00\xbc\xfe\xff\xff\x04\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x8c\x00\x00\x00\xac\xfe\xff\xff\x70\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".fini_array", 0x10DA0, "\xc0\x06\x00\x00\x00\x00\x00\x00"), -Section(".dynamic", 0x10DA8, "\x01\x00\x00\x00\x00\x00\x00\x00\x28\x00\x00\x00\x00\x00\x00\x00\x0c\x00\x00\x00\x00\x00\x00\x00\x80\x05\x00\x00\x00\x00\x00\x00\x0d\x00\x00\x00\x00\x00\x00\x00\x84\x07\x00\x00\x00\x00\x00\x00\x19\x00\x00\x00\x00\x00\x00\x00\x98\x0d\x01\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x1a\x00\x00\x00\x00\x00\x00\x00\xa0\x0d\x01\x00\x00\x00\x00\x00\x1c\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\xf5\xfe\xff\x6f\x00\x00\x00\x00\x98\x02\x00\x00\x00\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x90\x03\x00\x00\x00\x00\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\xb8\x02\x00\x00\x00\x00\x00\x00\x0a\x00\x00\x00\x00\x00\x00\x00\x8d\x00\x00\x00\x00\x00\x00\x00\x0b\x00\x00\x00\x00\x00\x00\x00\x18\x00\x00\x00\x00\x00\x00\x00\x15\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x98\x0f\x01\x00\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x60\x00\x00\x00\x00\x00\x00\x00\x14\x00\x00\x00\x00\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x17\x00\x00\x00\x00\x00\x00\x00\x20\x05\x00\x00\x00\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x60\x04\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\xc0\x00\x00\x00\x00\x00\x00\x00\x09\x00\x00\x00\x00\x00\x00\x00\x18\x00\x00\x00\x00\x00\x00\x00\x1e\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\xfb\xff\xff\x6f\x00\x00\x00\x00\x01\x00\x00\x08\x00\x00\x00\x00\xfe\xff\xff\x6f\x00\x00\x00\x00\x30\x04\x00\x00\x00\x00\x00\x00\xff\xff\xff\x6f\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\xf0\xff\xff\x6f\x00\x00\x00\x00\x1e\x04\x00\x00\x00\x00\x00\x00\xf9\xff\xff\x6f\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".got", 0x10F98, "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xa0\x05\x00\x00\x00\x00\x00\x00\xa0\x05\x00\x00\x00\x00\x00\x00\xa0\x05\x00\x00\x00\x00\x00\x00\xa0\x05\x00\x00\x00\x00\x00\x00\xa8\x0d\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x14\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".data", 0x11000, "\x00\x00\x00\x00\x00\x00\x00\x00\x08\x10\x01\x00\x00\x00\x00\x00"), -Section(".init_array", 0x10D98, "\x10\x07\x00\x00\x00\x00\x00\x00"), -Section(".text", 0x600, "\x1f\x20\x03\xd5\x1d\x00\x80\xd2\x1e\x00\x80\xd2\xe5\x03\x00\xaa\xe1\x03\x40\xf9\xe2\x23\x00\x91\xe6\x03\x00\x91\x80\x00\x00\x90\x00\xf8\x47\xf9\x03\x00\x80\xd2\x04\x00\x80\xd2\xe5\xff\xff\x97\xf0\xff\xff\x97\x80\x00\x00\x90\x00\xf4\x47\xf9\x40\x00\x00\xb4\xe8\xff\xff\x17\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x80\x00\x00\xb0\x00\x40\x00\x91\x81\x00\x00\xb0\x21\x40\x00\x91\x3f\x00\x00\xeb\xc0\x00\x00\x54\x81\x00\x00\x90\x21\xec\x47\xf9\x61\x00\x00\xb4\xf0\x03\x01\xaa\x00\x02\x1f\xd6\xc0\x03\x5f\xd6\x80\x00\x00\xb0\x00\x40\x00\x91\x81\x00\x00\xb0\x21\x40\x00\x91\x21\x00\x00\xcb\x22\xfc\x7f\xd3\x41\x0c\x81\x8b\x21\xfc\x41\x93\xc1\x00\x00\xb4\x82\x00\x00\x90\x42\xfc\x47\xf9\x62\x00\x00\xb4\xf0\x03\x02\xaa\x00\x02\x1f\xd6\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\xfd\x7b\xbe\xa9\xfd\x03\x00\x91\xf3\x0b\x00\xf9\x93\x00\x00\xb0\x60\x42\x40\x39\x40\x01\x00\x35\x80\x00\x00\x90\x00\xf0\x47\xf9\x80\x00\x00\xb4\x80\x00\x00\xb0\x00\x04\x40\xf9\xb9\xff\xff\x97\xd8\xff\xff\x97\x20\x00\x80\x52\x60\x42\x00\x39\xf3\x0b\x40\xf9\xfd\x7b\xc2\xa8\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\xdc\xff\xff\x17\x80\x00\x00\xb0\x00\x50\x00\x91\x1f\x00\x00\xb9\x80\x00\x00\xb0\x00\x50\x00\x91\x00\x00\x40\xb9\x01\x04\x00\x11\x80\x00\x00\xb0\x00\x50\x00\x91\x01\x00\x00\xb9\x80\x00\x00\xb0\x00\x70\x00\x91\x01\x00\x40\xb9\x80\x00\x00\xb0\x00\x60\x00\x91\x01\x00\x00\xb9\x80\x00\x00\xb0\x00\x60\x00\x91\x1f\x00\x00\xb9\x80\x00\x00\xb0\x00\x50\x00\x91\x00\x00\x40\xb9\x01\x04\x00\x11\x80\x00\x00\xb0\x00\x50\x00\x91\x01\x00\x00\xb9\x00\x00\x80\x52\xc0\x03\x5f\xd6")]), -Memmap([Annotation(Region(0x0,0x877), Attr("segment","02 0 2168")), -Annotation(Region(0x600,0x633), Attr("symbol","\"_start\"")), -Annotation(Region(0x0,0xF9), Attr("section","\".shstrtab\"")), -Annotation(Region(0x0,0x22C), Attr("section","\".strtab\"")), -Annotation(Region(0x0,0x86F), Attr("section","\".symtab\"")), -Annotation(Region(0x0,0x2A), Attr("section","\".comment\"")), -Annotation(Region(0x238,0x252), Attr("section","\".interp\"")), -Annotation(Region(0x254,0x277), Attr("section","\".note.gnu.build-id\"")), -Annotation(Region(0x278,0x297), Attr("section","\".note.ABI-tag\"")), -Annotation(Region(0x298,0x2B3), Attr("section","\".gnu.hash\"")), -Annotation(Region(0x2B8,0x38F), Attr("section","\".dynsym\"")), -Annotation(Region(0x390,0x41C), Attr("section","\".dynstr\"")), -Annotation(Region(0x41E,0x42F), Attr("section","\".gnu.version\"")), -Annotation(Region(0x430,0x45F), Attr("section","\".gnu.version_r\"")), -Annotation(Region(0x460,0x51F), Attr("section","\".rela.dyn\"")), -Annotation(Region(0x520,0x57F), Attr("section","\".rela.plt\"")), -Annotation(Region(0x580,0x597), Attr("section","\".init\"")), -Annotation(Region(0x5A0,0x5FF), Attr("section","\".plt\"")), -Annotation(Region(0x580,0x597), Attr("code-region","()")), -Annotation(Region(0x5A0,0x5FF), Attr("code-region","()")), -Annotation(Region(0x600,0x633), Attr("symbol-info","_start 0x600 52")), -Annotation(Region(0x634,0x647), Attr("symbol","\"call_weak_fn\"")), -Annotation(Region(0x634,0x647), Attr("symbol-info","call_weak_fn 0x634 20")), -Annotation(Region(0x714,0x783), Attr("symbol","\"main\"")), -Annotation(Region(0x714,0x783), Attr("symbol-info","main 0x714 112")), -Annotation(Region(0x784,0x797), Attr("section","\".fini\"")), -Annotation(Region(0x798,0x79B), Attr("section","\".rodata\"")), -Annotation(Region(0x79C,0x7D7), Attr("section","\".eh_frame_hdr\"")), -Annotation(Region(0x7D8,0x877), Attr("section","\".eh_frame\"")), -Annotation(Region(0x10D98,0x1100F), Attr("segment","03 0x10D98 648")), -Annotation(Region(0x10DA0,0x10DA7), Attr("section","\".fini_array\"")), -Annotation(Region(0x10DA8,0x10F97), Attr("section","\".dynamic\"")), -Annotation(Region(0x10F98,0x10FFF), Attr("section","\".got\"")), -Annotation(Region(0x11000,0x1100F), Attr("section","\".data\"")), -Annotation(Region(0x10D98,0x10D9F), Attr("section","\".init_array\"")), -Annotation(Region(0x600,0x783), Attr("section","\".text\"")), -Annotation(Region(0x600,0x783), Attr("code-region","()")), -Annotation(Region(0x784,0x797), Attr("code-region","()"))]), -Program(Tid(1_696, "%000006a0"), Attrs([]), - Subs([Sub(Tid(1_646, "@__cxa_finalize"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x5D0"), -Attr("stub","()")]), "__cxa_finalize", Args([Arg(Tid(1_697, "%000006a1"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("__cxa_finalize_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(1_018, "@__cxa_finalize"), - Attrs([Attr("address","0x5D0")]), Phis([]), -Defs([Def(Tid(1_266, "%000004f2"), Attrs([Attr("address","0x5D0"), -Attr("insn","adrp x16, #65536")]), Var("R16",Imm(64)), Int(65536,64)), -Def(Tid(1_273, "%000004f9"), Attrs([Attr("address","0x5D4"), -Attr("insn","ldr x17, [x16, #0xfb8]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(4024,64)),LittleEndian(),64)), -Def(Tid(1_279, "%000004ff"), Attrs([Attr("address","0x5D8"), -Attr("insn","add x16, x16, #0xfb8")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(4024,64)))]), Jmps([Call(Tid(1_284, "%00000504"), - Attrs([Attr("address","0x5DC"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), -Sub(Tid(1_647, "@__do_global_dtors_aux"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x6C0")]), - "__do_global_dtors_aux", Args([Arg(Tid(1_698, "%000006a2"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("__do_global_dtors_aux_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(702, "@__do_global_dtors_aux"), - Attrs([Attr("address","0x6C0")]), Phis([]), Defs([Def(Tid(706, "%000002c2"), - Attrs([Attr("address","0x6C0"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("#3",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(18446744073709551584,64))), -Def(Tid(712, "%000002c8"), Attrs([Attr("address","0x6C0"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("#3",Imm(64)),Var("R29",Imm(64)),LittleEndian(),64)), -Def(Tid(718, "%000002ce"), Attrs([Attr("address","0x6C0"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("#3",Imm(64)),Int(8,64)),Var("R30",Imm(64)),LittleEndian(),64)), -Def(Tid(722, "%000002d2"), Attrs([Attr("address","0x6C0"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("R31",Imm(64)), -Var("#3",Imm(64))), Def(Tid(728, "%000002d8"), - Attrs([Attr("address","0x6C4"), Attr("insn","mov x29, sp")]), - Var("R29",Imm(64)), Var("R31",Imm(64))), Def(Tid(736, "%000002e0"), - Attrs([Attr("address","0x6C8"), Attr("insn","str x19, [sp, #0x10]")]), - Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(16,64)),Var("R19",Imm(64)),LittleEndian(),64)), -Def(Tid(741, "%000002e5"), Attrs([Attr("address","0x6CC"), -Attr("insn","adrp x19, #69632")]), Var("R19",Imm(64)), Int(69632,64)), -Def(Tid(748, "%000002ec"), Attrs([Attr("address","0x6D0"), -Attr("insn","ldrb w0, [x19, #0x10]")]), Var("R0",Imm(64)), -UNSIGNED(64,Load(Var("mem",Mem(64,8)),PLUS(Var("R19",Imm(64)),Int(16,64)),LittleEndian(),8)))]), -Jmps([Goto(Tid(755, "%000002f3"), Attrs([Attr("address","0x6D4"), -Attr("insn","cbnz w0, #0x28")]), - NEQ(Extract(31,0,Var("R0",Imm(64))),Int(0,32)), -Direct(Tid(753, "%000002f1"))), Goto(Tid(1_686, "%00000696"), Attrs([]), - Int(1,1), Direct(Tid(963, "%000003c3")))])), Blk(Tid(963, "%000003c3"), - Attrs([Attr("address","0x6D8")]), Phis([]), Defs([Def(Tid(966, "%000003c6"), - Attrs([Attr("address","0x6D8"), Attr("insn","adrp x0, #65536")]), - Var("R0",Imm(64)), Int(65536,64)), Def(Tid(973, "%000003cd"), - Attrs([Attr("address","0x6DC"), Attr("insn","ldr x0, [x0, #0xfe0]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(4064,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(979, "%000003d3"), Attrs([Attr("address","0x6E0"), -Attr("insn","cbz x0, #0x10")]), EQ(Var("R0",Imm(64)),Int(0,64)), -Direct(Tid(977, "%000003d1"))), Goto(Tid(1_687, "%00000697"), Attrs([]), - Int(1,1), Direct(Tid(1_002, "%000003ea")))])), Blk(Tid(1_002, "%000003ea"), - Attrs([Attr("address","0x6E4")]), Phis([]), -Defs([Def(Tid(1_005, "%000003ed"), Attrs([Attr("address","0x6E4"), -Attr("insn","adrp x0, #69632")]), Var("R0",Imm(64)), Int(69632,64)), -Def(Tid(1_012, "%000003f4"), Attrs([Attr("address","0x6E8"), -Attr("insn","ldr x0, [x0, #0x8]")]), Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(1_017, "%000003f9"), Attrs([Attr("address","0x6EC"), -Attr("insn","bl #-0x11c")]), Var("R30",Imm(64)), Int(1776,64))]), -Jmps([Call(Tid(1_020, "%000003fc"), Attrs([Attr("address","0x6EC"), -Attr("insn","bl #-0x11c")]), Int(1,1), -(Direct(Tid(1_646, "@__cxa_finalize")),Direct(Tid(977, "%000003d1"))))])), -Blk(Tid(977, "%000003d1"), Attrs([Attr("address","0x6F0")]), Phis([]), -Defs([Def(Tid(985, "%000003d9"), Attrs([Attr("address","0x6F0"), -Attr("insn","bl #-0xa0")]), Var("R30",Imm(64)), Int(1780,64))]), -Jmps([Call(Tid(987, "%000003db"), Attrs([Attr("address","0x6F0"), -Attr("insn","bl #-0xa0")]), Int(1,1), -(Direct(Tid(1_660, "@deregister_tm_clones")),Direct(Tid(989, "%000003dd"))))])), -Blk(Tid(989, "%000003dd"), Attrs([Attr("address","0x6F4")]), Phis([]), -Defs([Def(Tid(992, "%000003e0"), Attrs([Attr("address","0x6F4"), -Attr("insn","mov w0, #0x1")]), Var("R0",Imm(64)), Int(1,64)), -Def(Tid(1_000, "%000003e8"), Attrs([Attr("address","0x6F8"), -Attr("insn","strb w0, [x19, #0x10]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R19",Imm(64)),Int(16,64)),Extract(7,0,Var("R0",Imm(64))),LittleEndian(),8))]), -Jmps([Goto(Tid(1_688, "%00000698"), Attrs([]), Int(1,1), -Direct(Tid(753, "%000002f1")))])), Blk(Tid(753, "%000002f1"), - Attrs([Attr("address","0x6FC")]), Phis([]), Defs([Def(Tid(763, "%000002fb"), - Attrs([Attr("address","0x6FC"), Attr("insn","ldr x19, [sp, #0x10]")]), - Var("R19",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(16,64)),LittleEndian(),64)), -Def(Tid(770, "%00000302"), Attrs([Attr("address","0x700"), -Attr("insn","ldp x29, x30, [sp], #0x20")]), Var("R29",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(775, "%00000307"), Attrs([Attr("address","0x700"), -Attr("insn","ldp x29, x30, [sp], #0x20")]), Var("R30",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(779, "%0000030b"), Attrs([Attr("address","0x700"), -Attr("insn","ldp x29, x30, [sp], #0x20")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(32,64)))]), Jmps([Call(Tid(784, "%00000310"), - Attrs([Attr("address","0x704"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), Sub(Tid(1_651, "@__libc_start_main"), - Attrs([Attr("c.proto","signed (*)(signed (*)(signed , char** , char** );* main, signed , char** , \nvoid* auxv)"), -Attr("address","0x5C0"), Attr("stub","()")]), "__libc_start_main", - Args([Arg(Tid(1_699, "%000006a3"), - Attrs([Attr("c.layout","**[ : 64]"), -Attr("c.data","Top:u64 ptr ptr"), -Attr("c.type","signed (*)(signed , char** , char** );*")]), - Var("__libc_start_main_main",Imm(64)), Var("R0",Imm(64)), In()), -Arg(Tid(1_700, "%000006a4"), Attrs([Attr("c.layout","[signed : 32]"), -Attr("c.data","Top:u32"), Attr("c.type","signed")]), - Var("__libc_start_main_arg2",Imm(32)), LOW(32,Var("R1",Imm(64))), In()), -Arg(Tid(1_701, "%000006a5"), Attrs([Attr("c.layout","**[char : 8]"), -Attr("c.data","Top:u8 ptr ptr"), Attr("c.type","char**")]), - Var("__libc_start_main_arg3",Imm(64)), Var("R2",Imm(64)), Both()), -Arg(Tid(1_702, "%000006a6"), Attrs([Attr("c.layout","*[ : 8]"), -Attr("c.data","{} ptr"), Attr("c.type","void*")]), - Var("__libc_start_main_auxv",Imm(64)), Var("R3",Imm(64)), Both()), -Arg(Tid(1_703, "%000006a7"), Attrs([Attr("c.layout","[signed : 32]"), -Attr("c.data","Top:u32"), Attr("c.type","signed")]), - Var("__libc_start_main_result",Imm(32)), LOW(32,Var("R0",Imm(64))), -Out())]), Blks([Blk(Tid(535, "@__libc_start_main"), - Attrs([Attr("address","0x5C0")]), Phis([]), -Defs([Def(Tid(1_244, "%000004dc"), Attrs([Attr("address","0x5C0"), -Attr("insn","adrp x16, #65536")]), Var("R16",Imm(64)), Int(65536,64)), -Def(Tid(1_251, "%000004e3"), Attrs([Attr("address","0x5C4"), -Attr("insn","ldr x17, [x16, #0xfb0]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(4016,64)),LittleEndian(),64)), -Def(Tid(1_257, "%000004e9"), Attrs([Attr("address","0x5C8"), -Attr("insn","add x16, x16, #0xfb0")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(4016,64)))]), Jmps([Call(Tid(1_262, "%000004ee"), - Attrs([Attr("address","0x5CC"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), Sub(Tid(1_652, "@_fini"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x784")]), - "_fini", Args([Arg(Tid(1_704, "%000006a8"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("_fini_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(31, "@_fini"), - Attrs([Attr("address","0x784")]), Phis([]), Defs([Def(Tid(37, "%00000025"), - Attrs([Attr("address","0x788"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("#0",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(18446744073709551600,64))), -Def(Tid(43, "%0000002b"), Attrs([Attr("address","0x788"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("#0",Imm(64)),Var("R29",Imm(64)),LittleEndian(),64)), -Def(Tid(49, "%00000031"), Attrs([Attr("address","0x788"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("#0",Imm(64)),Int(8,64)),Var("R30",Imm(64)),LittleEndian(),64)), -Def(Tid(53, "%00000035"), Attrs([Attr("address","0x788"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("R31",Imm(64)), -Var("#0",Imm(64))), Def(Tid(59, "%0000003b"), Attrs([Attr("address","0x78C"), -Attr("insn","mov x29, sp")]), Var("R29",Imm(64)), Var("R31",Imm(64))), -Def(Tid(66, "%00000042"), Attrs([Attr("address","0x790"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R29",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(71, "%00000047"), Attrs([Attr("address","0x790"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R30",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(75, "%0000004b"), Attrs([Attr("address","0x790"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(16,64)))]), Jmps([Call(Tid(80, "%00000050"), - Attrs([Attr("address","0x794"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), Sub(Tid(1_653, "@_init"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x580")]), - "_init", Args([Arg(Tid(1_705, "%000006a9"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("_init_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(1_460, "@_init"), - Attrs([Attr("address","0x580")]), Phis([]), -Defs([Def(Tid(1_466, "%000005ba"), Attrs([Attr("address","0x584"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("#5",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(18446744073709551600,64))), -Def(Tid(1_472, "%000005c0"), Attrs([Attr("address","0x584"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("#5",Imm(64)),Var("R29",Imm(64)),LittleEndian(),64)), -Def(Tid(1_478, "%000005c6"), Attrs([Attr("address","0x584"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("#5",Imm(64)),Int(8,64)),Var("R30",Imm(64)),LittleEndian(),64)), -Def(Tid(1_482, "%000005ca"), Attrs([Attr("address","0x584"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("R31",Imm(64)), -Var("#5",Imm(64))), Def(Tid(1_488, "%000005d0"), - Attrs([Attr("address","0x588"), Attr("insn","mov x29, sp")]), - Var("R29",Imm(64)), Var("R31",Imm(64))), Def(Tid(1_493, "%000005d5"), - Attrs([Attr("address","0x58C"), Attr("insn","bl #0xa8")]), - Var("R30",Imm(64)), Int(1424,64))]), Jmps([Call(Tid(1_495, "%000005d7"), - Attrs([Attr("address","0x58C"), Attr("insn","bl #0xa8")]), Int(1,1), -(Direct(Tid(1_658, "@call_weak_fn")),Direct(Tid(1_497, "%000005d9"))))])), -Blk(Tid(1_497, "%000005d9"), Attrs([Attr("address","0x590")]), Phis([]), -Defs([Def(Tid(1_502, "%000005de"), Attrs([Attr("address","0x590"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R29",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(1_507, "%000005e3"), Attrs([Attr("address","0x590"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R30",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(1_511, "%000005e7"), Attrs([Attr("address","0x590"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(16,64)))]), Jmps([Call(Tid(1_516, "%000005ec"), - Attrs([Attr("address","0x594"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), Sub(Tid(1_654, "@_start"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x600"), -Attr("stub","()"), Attr("entry-point","()")]), "_start", - Args([Arg(Tid(1_706, "%000006aa"), Attrs([Attr("c.layout","[signed : 32]"), -Attr("c.data","Top:u32"), Attr("c.type","signed")]), - Var("_start_result",Imm(32)), LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(472, "@_start"), Attrs([Attr("address","0x600")]), Phis([]), -Defs([Def(Tid(477, "%000001dd"), Attrs([Attr("address","0x604"), -Attr("insn","mov x29, #0x0")]), Var("R29",Imm(64)), Int(0,64)), -Def(Tid(482, "%000001e2"), Attrs([Attr("address","0x608"), -Attr("insn","mov x30, #0x0")]), Var("R30",Imm(64)), Int(0,64)), -Def(Tid(488, "%000001e8"), Attrs([Attr("address","0x60C"), -Attr("insn","mov x5, x0")]), Var("R5",Imm(64)), Var("R0",Imm(64))), -Def(Tid(495, "%000001ef"), Attrs([Attr("address","0x610"), -Attr("insn","ldr x1, [sp]")]), Var("R1",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(501, "%000001f5"), Attrs([Attr("address","0x614"), -Attr("insn","add x2, sp, #0x8")]), Var("R2",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(8,64))), Def(Tid(507, "%000001fb"), - Attrs([Attr("address","0x618"), Attr("insn","mov x6, sp")]), - Var("R6",Imm(64)), Var("R31",Imm(64))), Def(Tid(512, "%00000200"), - Attrs([Attr("address","0x61C"), Attr("insn","adrp x0, #65536")]), - Var("R0",Imm(64)), Int(65536,64)), Def(Tid(519, "%00000207"), - Attrs([Attr("address","0x620"), Attr("insn","ldr x0, [x0, #0xff0]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(4080,64)),LittleEndian(),64)), -Def(Tid(524, "%0000020c"), Attrs([Attr("address","0x624"), -Attr("insn","mov x3, #0x0")]), Var("R3",Imm(64)), Int(0,64)), -Def(Tid(529, "%00000211"), Attrs([Attr("address","0x628"), -Attr("insn","mov x4, #0x0")]), Var("R4",Imm(64)), Int(0,64)), -Def(Tid(534, "%00000216"), Attrs([Attr("address","0x62C"), -Attr("insn","bl #-0x6c")]), Var("R30",Imm(64)), Int(1584,64))]), -Jmps([Call(Tid(537, "%00000219"), Attrs([Attr("address","0x62C"), -Attr("insn","bl #-0x6c")]), Int(1,1), -(Direct(Tid(1_651, "@__libc_start_main")),Direct(Tid(539, "%0000021b"))))])), -Blk(Tid(539, "%0000021b"), Attrs([Attr("address","0x630")]), Phis([]), -Defs([Def(Tid(542, "%0000021e"), Attrs([Attr("address","0x630"), -Attr("insn","bl #-0x40")]), Var("R30",Imm(64)), Int(1588,64))]), -Jmps([Call(Tid(545, "%00000221"), Attrs([Attr("address","0x630"), -Attr("insn","bl #-0x40")]), Int(1,1), -(Direct(Tid(1_657, "@abort")),Direct(Tid(1_689, "%00000699"))))])), -Blk(Tid(1_689, "%00000699"), Attrs([]), Phis([]), Defs([]), -Jmps([Call(Tid(1_690, "%0000069a"), Attrs([]), Int(1,1), -(Direct(Tid(1_658, "@call_weak_fn")),))]))])), Sub(Tid(1_657, "@abort"), - Attrs([Attr("noreturn","()"), Attr("c.proto","void (*)(void)"), -Attr("address","0x5F0"), Attr("stub","()")]), "abort", Args([]), -Blks([Blk(Tid(543, "@abort"), Attrs([Attr("address","0x5F0")]), Phis([]), -Defs([Def(Tid(1_310, "%0000051e"), Attrs([Attr("address","0x5F0"), -Attr("insn","adrp x16, #65536")]), Var("R16",Imm(64)), Int(65536,64)), -Def(Tid(1_317, "%00000525"), Attrs([Attr("address","0x5F4"), -Attr("insn","ldr x17, [x16, #0xfc8]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(4040,64)),LittleEndian(),64)), -Def(Tid(1_323, "%0000052b"), Attrs([Attr("address","0x5F8"), -Attr("insn","add x16, x16, #0xfc8")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(4040,64)))]), Jmps([Call(Tid(1_328, "%00000530"), - Attrs([Attr("address","0x5FC"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), Sub(Tid(1_658, "@call_weak_fn"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x634")]), - "call_weak_fn", Args([Arg(Tid(1_707, "%000006ab"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("call_weak_fn_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(547, "@call_weak_fn"), - Attrs([Attr("address","0x634")]), Phis([]), Defs([Def(Tid(550, "%00000226"), - Attrs([Attr("address","0x634"), Attr("insn","adrp x0, #65536")]), - Var("R0",Imm(64)), Int(65536,64)), Def(Tid(557, "%0000022d"), - Attrs([Attr("address","0x638"), Attr("insn","ldr x0, [x0, #0xfe8]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(4072,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(563, "%00000233"), Attrs([Attr("address","0x63C"), -Attr("insn","cbz x0, #0x8")]), EQ(Var("R0",Imm(64)),Int(0,64)), -Direct(Tid(561, "%00000231"))), Goto(Tid(1_691, "%0000069b"), Attrs([]), - Int(1,1), Direct(Tid(1_082, "%0000043a")))])), Blk(Tid(561, "%00000231"), - Attrs([Attr("address","0x644")]), Phis([]), Defs([]), -Jmps([Call(Tid(569, "%00000239"), Attrs([Attr("address","0x644"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))])), -Blk(Tid(1_082, "%0000043a"), Attrs([Attr("address","0x640")]), Phis([]), -Defs([]), Jmps([Goto(Tid(1_085, "%0000043d"), Attrs([Attr("address","0x640"), -Attr("insn","b #-0x60")]), Int(1,1), -Direct(Tid(1_083, "@__gmon_start__")))])), Blk(Tid(1_083, "@__gmon_start__"), - Attrs([Attr("address","0x5E0")]), Phis([]), -Defs([Def(Tid(1_288, "%00000508"), Attrs([Attr("address","0x5E0"), -Attr("insn","adrp x16, #65536")]), Var("R16",Imm(64)), Int(65536,64)), -Def(Tid(1_295, "%0000050f"), Attrs([Attr("address","0x5E4"), -Attr("insn","ldr x17, [x16, #0xfc0]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(4032,64)),LittleEndian(),64)), -Def(Tid(1_301, "%00000515"), Attrs([Attr("address","0x5E8"), -Attr("insn","add x16, x16, #0xfc0")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(4032,64)))]), Jmps([Call(Tid(1_306, "%0000051a"), - Attrs([Attr("address","0x5EC"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), -Sub(Tid(1_660, "@deregister_tm_clones"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x650")]), - "deregister_tm_clones", Args([Arg(Tid(1_708, "%000006ac"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("deregister_tm_clones_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(575, "@deregister_tm_clones"), - Attrs([Attr("address","0x650")]), Phis([]), Defs([Def(Tid(578, "%00000242"), - Attrs([Attr("address","0x650"), Attr("insn","adrp x0, #69632")]), - Var("R0",Imm(64)), Int(69632,64)), Def(Tid(584, "%00000248"), - Attrs([Attr("address","0x654"), Attr("insn","add x0, x0, #0x10")]), - Var("R0",Imm(64)), PLUS(Var("R0",Imm(64)),Int(16,64))), -Def(Tid(589, "%0000024d"), Attrs([Attr("address","0x658"), -Attr("insn","adrp x1, #69632")]), Var("R1",Imm(64)), Int(69632,64)), -Def(Tid(595, "%00000253"), Attrs([Attr("address","0x65C"), -Attr("insn","add x1, x1, #0x10")]), Var("R1",Imm(64)), -PLUS(Var("R1",Imm(64)),Int(16,64))), Def(Tid(601, "%00000259"), - Attrs([Attr("address","0x660"), Attr("insn","cmp x1, x0")]), - Var("#1",Imm(64)), NOT(Var("R0",Imm(64)))), Def(Tid(606, "%0000025e"), - Attrs([Attr("address","0x660"), Attr("insn","cmp x1, x0")]), - Var("#2",Imm(64)), PLUS(Var("R1",Imm(64)),NOT(Var("R0",Imm(64))))), -Def(Tid(612, "%00000264"), Attrs([Attr("address","0x660"), -Attr("insn","cmp x1, x0")]), Var("VF",Imm(1)), -NEQ(SIGNED(65,PLUS(Var("#2",Imm(64)),Int(1,64))),PLUS(PLUS(SIGNED(65,Var("R1",Imm(64))),SIGNED(65,Var("#1",Imm(64)))),Int(1,65)))), -Def(Tid(618, "%0000026a"), Attrs([Attr("address","0x660"), -Attr("insn","cmp x1, x0")]), Var("CF",Imm(1)), -NEQ(UNSIGNED(65,PLUS(Var("#2",Imm(64)),Int(1,64))),PLUS(PLUS(UNSIGNED(65,Var("R1",Imm(64))),UNSIGNED(65,Var("#1",Imm(64)))),Int(1,65)))), -Def(Tid(622, "%0000026e"), Attrs([Attr("address","0x660"), -Attr("insn","cmp x1, x0")]), Var("ZF",Imm(1)), -EQ(PLUS(Var("#2",Imm(64)),Int(1,64)),Int(0,64))), Def(Tid(626, "%00000272"), - Attrs([Attr("address","0x660"), Attr("insn","cmp x1, x0")]), - Var("NF",Imm(1)), Extract(63,63,PLUS(Var("#2",Imm(64)),Int(1,64))))]), -Jmps([Goto(Tid(632, "%00000278"), Attrs([Attr("address","0x664"), -Attr("insn","b.eq #0x18")]), EQ(Var("ZF",Imm(1)),Int(1,1)), -Direct(Tid(630, "%00000276"))), Goto(Tid(1_692, "%0000069c"), Attrs([]), - Int(1,1), Direct(Tid(1_052, "%0000041c")))])), Blk(Tid(1_052, "%0000041c"), - Attrs([Attr("address","0x668")]), Phis([]), -Defs([Def(Tid(1_055, "%0000041f"), Attrs([Attr("address","0x668"), -Attr("insn","adrp x1, #65536")]), Var("R1",Imm(64)), Int(65536,64)), -Def(Tid(1_062, "%00000426"), Attrs([Attr("address","0x66C"), -Attr("insn","ldr x1, [x1, #0xfd8]")]), Var("R1",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R1",Imm(64)),Int(4056,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(1_067, "%0000042b"), Attrs([Attr("address","0x670"), -Attr("insn","cbz x1, #0xc")]), EQ(Var("R1",Imm(64)),Int(0,64)), -Direct(Tid(630, "%00000276"))), Goto(Tid(1_693, "%0000069d"), Attrs([]), - Int(1,1), Direct(Tid(1_071, "%0000042f")))])), Blk(Tid(630, "%00000276"), - Attrs([Attr("address","0x67C")]), Phis([]), Defs([]), -Jmps([Call(Tid(638, "%0000027e"), Attrs([Attr("address","0x67C"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))])), -Blk(Tid(1_071, "%0000042f"), Attrs([Attr("address","0x674")]), Phis([]), -Defs([Def(Tid(1_075, "%00000433"), Attrs([Attr("address","0x674"), -Attr("insn","mov x16, x1")]), Var("R16",Imm(64)), Var("R1",Imm(64)))]), -Jmps([Call(Tid(1_080, "%00000438"), Attrs([Attr("address","0x678"), -Attr("insn","br x16")]), Int(1,1), (Indirect(Var("R16",Imm(64))),))]))])), -Sub(Tid(1_663, "@frame_dummy"), Attrs([Attr("c.proto","signed (*)(void)"), -Attr("address","0x710")]), "frame_dummy", Args([Arg(Tid(1_709, "%000006ad"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("frame_dummy_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(790, "@frame_dummy"), - Attrs([Attr("address","0x710")]), Phis([]), Defs([]), -Jmps([Call(Tid(792, "%00000318"), Attrs([Attr("address","0x710"), -Attr("insn","b #-0x90")]), Int(1,1), -(Direct(Tid(1_665, "@register_tm_clones")),))]))])), Sub(Tid(1_664, "@main"), - Attrs([Attr("c.proto","signed (*)(signed argc, const char** argv)"), -Attr("address","0x714")]), "main", Args([Arg(Tid(1_710, "%000006ae"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("main_argc",Imm(32)), -LOW(32,Var("R0",Imm(64))), In()), Arg(Tid(1_711, "%000006af"), - Attrs([Attr("c.layout","**[char : 8]"), Attr("c.data","Top:u8 ptr ptr"), -Attr("c.type"," const char**")]), Var("main_argv",Imm(64)), -Var("R1",Imm(64)), Both()), Arg(Tid(1_712, "%000006b0"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("main_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(794, "@main"), - Attrs([Attr("address","0x714")]), Phis([]), Defs([Def(Tid(797, "%0000031d"), - Attrs([Attr("address","0x714"), Attr("insn","adrp x0, #69632")]), - Var("R0",Imm(64)), Int(69632,64)), Def(Tid(803, "%00000323"), - Attrs([Attr("address","0x718"), Attr("insn","add x0, x0, #0x14")]), - Var("R0",Imm(64)), PLUS(Var("R0",Imm(64)),Int(20,64))), -Def(Tid(810, "%0000032a"), Attrs([Attr("address","0x71C"), -Attr("insn","str wzr, [x0]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("R0",Imm(64)),Int(0,32),LittleEndian(),32)), -Def(Tid(815, "%0000032f"), Attrs([Attr("address","0x720"), -Attr("insn","adrp x0, #69632")]), Var("R0",Imm(64)), Int(69632,64)), -Def(Tid(821, "%00000335"), Attrs([Attr("address","0x724"), -Attr("insn","add x0, x0, #0x14")]), Var("R0",Imm(64)), -PLUS(Var("R0",Imm(64)),Int(20,64))), Def(Tid(828, "%0000033c"), - Attrs([Attr("address","0x728"), Attr("insn","ldr w0, [x0]")]), - Var("R0",Imm(64)), -UNSIGNED(64,Load(Var("mem",Mem(64,8)),Var("R0",Imm(64)),LittleEndian(),32))), -Def(Tid(834, "%00000342"), Attrs([Attr("address","0x72C"), -Attr("insn","add w1, w0, #0x1")]), Var("R1",Imm(64)), -UNSIGNED(64,PLUS(Extract(31,0,Var("R0",Imm(64))),Int(1,32)))), -Def(Tid(839, "%00000347"), Attrs([Attr("address","0x730"), -Attr("insn","adrp x0, #69632")]), Var("R0",Imm(64)), Int(69632,64)), -Def(Tid(845, "%0000034d"), Attrs([Attr("address","0x734"), -Attr("insn","add x0, x0, #0x14")]), Var("R0",Imm(64)), -PLUS(Var("R0",Imm(64)),Int(20,64))), Def(Tid(853, "%00000355"), - Attrs([Attr("address","0x738"), Attr("insn","str w1, [x0]")]), - Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("R0",Imm(64)),Extract(31,0,Var("R1",Imm(64))),LittleEndian(),32)), -Def(Tid(858, "%0000035a"), Attrs([Attr("address","0x73C"), -Attr("insn","adrp x0, #69632")]), Var("R0",Imm(64)), Int(69632,64)), -Def(Tid(864, "%00000360"), Attrs([Attr("address","0x740"), -Attr("insn","add x0, x0, #0x1c")]), Var("R0",Imm(64)), -PLUS(Var("R0",Imm(64)),Int(28,64))), Def(Tid(871, "%00000367"), - Attrs([Attr("address","0x744"), Attr("insn","ldr w1, [x0]")]), - Var("R1",Imm(64)), -UNSIGNED(64,Load(Var("mem",Mem(64,8)),Var("R0",Imm(64)),LittleEndian(),32))), -Def(Tid(876, "%0000036c"), Attrs([Attr("address","0x748"), -Attr("insn","adrp x0, #69632")]), Var("R0",Imm(64)), Int(69632,64)), -Def(Tid(882, "%00000372"), Attrs([Attr("address","0x74C"), -Attr("insn","add x0, x0, #0x18")]), Var("R0",Imm(64)), -PLUS(Var("R0",Imm(64)),Int(24,64))), Def(Tid(890, "%0000037a"), - Attrs([Attr("address","0x750"), Attr("insn","str w1, [x0]")]), - Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("R0",Imm(64)),Extract(31,0,Var("R1",Imm(64))),LittleEndian(),32)), -Def(Tid(895, "%0000037f"), Attrs([Attr("address","0x754"), -Attr("insn","adrp x0, #69632")]), Var("R0",Imm(64)), Int(69632,64)), -Def(Tid(901, "%00000385"), Attrs([Attr("address","0x758"), -Attr("insn","add x0, x0, #0x18")]), Var("R0",Imm(64)), -PLUS(Var("R0",Imm(64)),Int(24,64))), Def(Tid(908, "%0000038c"), - Attrs([Attr("address","0x75C"), Attr("insn","str wzr, [x0]")]), - Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("R0",Imm(64)),Int(0,32),LittleEndian(),32)), -Def(Tid(913, "%00000391"), Attrs([Attr("address","0x760"), -Attr("insn","adrp x0, #69632")]), Var("R0",Imm(64)), Int(69632,64)), -Def(Tid(919, "%00000397"), Attrs([Attr("address","0x764"), -Attr("insn","add x0, x0, #0x14")]), Var("R0",Imm(64)), -PLUS(Var("R0",Imm(64)),Int(20,64))), Def(Tid(926, "%0000039e"), - Attrs([Attr("address","0x768"), Attr("insn","ldr w0, [x0]")]), - Var("R0",Imm(64)), -UNSIGNED(64,Load(Var("mem",Mem(64,8)),Var("R0",Imm(64)),LittleEndian(),32))), -Def(Tid(932, "%000003a4"), Attrs([Attr("address","0x76C"), -Attr("insn","add w1, w0, #0x1")]), Var("R1",Imm(64)), -UNSIGNED(64,PLUS(Extract(31,0,Var("R0",Imm(64))),Int(1,32)))), -Def(Tid(937, "%000003a9"), Attrs([Attr("address","0x770"), -Attr("insn","adrp x0, #69632")]), Var("R0",Imm(64)), Int(69632,64)), -Def(Tid(943, "%000003af"), Attrs([Attr("address","0x774"), -Attr("insn","add x0, x0, #0x14")]), Var("R0",Imm(64)), -PLUS(Var("R0",Imm(64)),Int(20,64))), Def(Tid(951, "%000003b7"), - Attrs([Attr("address","0x778"), Attr("insn","str w1, [x0]")]), - Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("R0",Imm(64)),Extract(31,0,Var("R1",Imm(64))),LittleEndian(),32)), -Def(Tid(956, "%000003bc"), Attrs([Attr("address","0x77C"), -Attr("insn","mov w0, #0x0")]), Var("R0",Imm(64)), Int(0,64))]), -Jmps([Call(Tid(961, "%000003c1"), Attrs([Attr("address","0x780"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))]))])), -Sub(Tid(1_665, "@register_tm_clones"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x680")]), - "register_tm_clones", Args([Arg(Tid(1_713, "%000006b1"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("register_tm_clones_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(640, "@register_tm_clones"), Attrs([Attr("address","0x680")]), - Phis([]), Defs([Def(Tid(643, "%00000283"), Attrs([Attr("address","0x680"), -Attr("insn","adrp x0, #69632")]), Var("R0",Imm(64)), Int(69632,64)), -Def(Tid(649, "%00000289"), Attrs([Attr("address","0x684"), -Attr("insn","add x0, x0, #0x10")]), Var("R0",Imm(64)), -PLUS(Var("R0",Imm(64)),Int(16,64))), Def(Tid(654, "%0000028e"), - Attrs([Attr("address","0x688"), Attr("insn","adrp x1, #69632")]), - Var("R1",Imm(64)), Int(69632,64)), Def(Tid(660, "%00000294"), - Attrs([Attr("address","0x68C"), Attr("insn","add x1, x1, #0x10")]), - Var("R1",Imm(64)), PLUS(Var("R1",Imm(64)),Int(16,64))), -Def(Tid(667, "%0000029b"), Attrs([Attr("address","0x690"), -Attr("insn","sub x1, x1, x0")]), Var("R1",Imm(64)), -PLUS(PLUS(Var("R1",Imm(64)),NOT(Var("R0",Imm(64)))),Int(1,64))), -Def(Tid(673, "%000002a1"), Attrs([Attr("address","0x694"), -Attr("insn","lsr x2, x1, #63")]), Var("R2",Imm(64)), -Concat(Int(0,63),Extract(63,63,Var("R1",Imm(64))))), -Def(Tid(680, "%000002a8"), Attrs([Attr("address","0x698"), -Attr("insn","add x1, x2, x1, asr #3")]), Var("R1",Imm(64)), -PLUS(Var("R2",Imm(64)),ARSHIFT(Var("R1",Imm(64)),Int(3,3)))), -Def(Tid(686, "%000002ae"), Attrs([Attr("address","0x69C"), -Attr("insn","asr x1, x1, #1")]), Var("R1",Imm(64)), -SIGNED(64,Extract(63,1,Var("R1",Imm(64)))))]), -Jmps([Goto(Tid(692, "%000002b4"), Attrs([Attr("address","0x6A0"), -Attr("insn","cbz x1, #0x18")]), EQ(Var("R1",Imm(64)),Int(0,64)), -Direct(Tid(690, "%000002b2"))), Goto(Tid(1_694, "%0000069e"), Attrs([]), - Int(1,1), Direct(Tid(1_022, "%000003fe")))])), Blk(Tid(1_022, "%000003fe"), - Attrs([Attr("address","0x6A4")]), Phis([]), -Defs([Def(Tid(1_025, "%00000401"), Attrs([Attr("address","0x6A4"), -Attr("insn","adrp x2, #65536")]), Var("R2",Imm(64)), Int(65536,64)), -Def(Tid(1_032, "%00000408"), Attrs([Attr("address","0x6A8"), -Attr("insn","ldr x2, [x2, #0xff8]")]), Var("R2",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R2",Imm(64)),Int(4088,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(1_037, "%0000040d"), Attrs([Attr("address","0x6AC"), -Attr("insn","cbz x2, #0xc")]), EQ(Var("R2",Imm(64)),Int(0,64)), -Direct(Tid(690, "%000002b2"))), Goto(Tid(1_695, "%0000069f"), Attrs([]), - Int(1,1), Direct(Tid(1_041, "%00000411")))])), Blk(Tid(690, "%000002b2"), - Attrs([Attr("address","0x6B8")]), Phis([]), Defs([]), -Jmps([Call(Tid(698, "%000002ba"), Attrs([Attr("address","0x6B8"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))])), -Blk(Tid(1_041, "%00000411"), Attrs([Attr("address","0x6B0")]), Phis([]), -Defs([Def(Tid(1_045, "%00000415"), Attrs([Attr("address","0x6B0"), -Attr("insn","mov x16, x2")]), Var("R16",Imm(64)), Var("R2",Imm(64)))]), -Jmps([Call(Tid(1_050, "%0000041a"), Attrs([Attr("address","0x6B4"), -Attr("insn","br x16")]), Int(1,1), -(Indirect(Var("R16",Imm(64))),))]))]))]))) \ No newline at end of file diff --git a/src/test/correct/secret_write/gcc/secret_write.bir b/src/test/correct/secret_write/gcc/secret_write.bir deleted file mode 100644 index ac45ae5ea..000000000 --- a/src/test/correct/secret_write/gcc/secret_write.bir +++ /dev/null @@ -1,250 +0,0 @@ -000006a0: program -0000066e: sub __cxa_finalize(__cxa_finalize_result) -000006a1: __cxa_finalize_result :: out u32 = low:32[R0] - -000003fa: -000004f2: R16 := 0x10000 -000004f9: R17 := mem[R16 + 0xFB8, el]:u64 -000004ff: R16 := R16 + 0xFB8 -00000504: call R17 with noreturn - -0000066f: sub __do_global_dtors_aux(__do_global_dtors_aux_result) -000006a2: __do_global_dtors_aux_result :: out u32 = low:32[R0] - -000002be: -000002c2: #3 := R31 - 0x20 -000002c8: mem := mem with [#3, el]:u64 <- R29 -000002ce: mem := mem with [#3 + 8, el]:u64 <- R30 -000002d2: R31 := #3 -000002d8: R29 := R31 -000002e0: mem := mem with [R31 + 0x10, el]:u64 <- R19 -000002e5: R19 := 0x11000 -000002ec: R0 := pad:64[mem[R19 + 0x10]] -000002f3: when 31:0[R0] <> 0 goto %000002f1 -00000696: goto %000003c3 - -000003c3: -000003c6: R0 := 0x10000 -000003cd: R0 := mem[R0 + 0xFE0, el]:u64 -000003d3: when R0 = 0 goto %000003d1 -00000697: goto %000003ea - -000003ea: -000003ed: R0 := 0x11000 -000003f4: R0 := mem[R0 + 8, el]:u64 -000003f9: R30 := 0x6F0 -000003fc: call @__cxa_finalize with return %000003d1 - -000003d1: -000003d9: R30 := 0x6F4 -000003db: call @deregister_tm_clones with return %000003dd - -000003dd: -000003e0: R0 := 1 -000003e8: mem := mem with [R19 + 0x10] <- 7:0[R0] -00000698: goto %000002f1 - -000002f1: -000002fb: R19 := mem[R31 + 0x10, el]:u64 -00000302: R29 := mem[R31, el]:u64 -00000307: R30 := mem[R31 + 8, el]:u64 -0000030b: R31 := R31 + 0x20 -00000310: call R30 with noreturn - -00000673: sub __libc_start_main(__libc_start_main_main, __libc_start_main_arg2, __libc_start_main_arg3, __libc_start_main_auxv, __libc_start_main_result) -000006a3: __libc_start_main_main :: in u64 = R0 -000006a4: __libc_start_main_arg2 :: in u32 = low:32[R1] -000006a5: __libc_start_main_arg3 :: in out u64 = R2 -000006a6: __libc_start_main_auxv :: in out u64 = R3 -000006a7: __libc_start_main_result :: out u32 = low:32[R0] - -00000217: -000004dc: R16 := 0x10000 -000004e3: R17 := mem[R16 + 0xFB0, el]:u64 -000004e9: R16 := R16 + 0xFB0 -000004ee: call R17 with noreturn - -00000674: sub _fini(_fini_result) -000006a8: _fini_result :: out u32 = low:32[R0] - -0000001f: -00000025: #0 := R31 - 0x10 -0000002b: mem := mem with [#0, el]:u64 <- R29 -00000031: mem := mem with [#0 + 8, el]:u64 <- R30 -00000035: R31 := #0 -0000003b: R29 := R31 -00000042: R29 := mem[R31, el]:u64 -00000047: R30 := mem[R31 + 8, el]:u64 -0000004b: R31 := R31 + 0x10 -00000050: call R30 with noreturn - -00000675: sub _init(_init_result) -000006a9: _init_result :: out u32 = low:32[R0] - -000005b4: -000005ba: #5 := R31 - 0x10 -000005c0: mem := mem with [#5, el]:u64 <- R29 -000005c6: mem := mem with [#5 + 8, el]:u64 <- R30 -000005ca: R31 := #5 -000005d0: R29 := R31 -000005d5: R30 := 0x590 -000005d7: call @call_weak_fn with return %000005d9 - -000005d9: -000005de: R29 := mem[R31, el]:u64 -000005e3: R30 := mem[R31 + 8, el]:u64 -000005e7: R31 := R31 + 0x10 -000005ec: call R30 with noreturn - -00000676: sub _start(_start_result) -000006aa: _start_result :: out u32 = low:32[R0] - -000001d8: -000001dd: R29 := 0 -000001e2: R30 := 0 -000001e8: R5 := R0 -000001ef: R1 := mem[R31, el]:u64 -000001f5: R2 := R31 + 8 -000001fb: R6 := R31 -00000200: R0 := 0x10000 -00000207: R0 := mem[R0 + 0xFF0, el]:u64 -0000020c: R3 := 0 -00000211: R4 := 0 -00000216: R30 := 0x630 -00000219: call @__libc_start_main with return %0000021b - -0000021b: -0000021e: R30 := 0x634 -00000221: call @abort with return %00000699 - -00000699: -0000069a: call @call_weak_fn with noreturn - -00000679: sub abort() - - -0000021f: -0000051e: R16 := 0x10000 -00000525: R17 := mem[R16 + 0xFC8, el]:u64 -0000052b: R16 := R16 + 0xFC8 -00000530: call R17 with noreturn - -0000067a: sub call_weak_fn(call_weak_fn_result) -000006ab: call_weak_fn_result :: out u32 = low:32[R0] - -00000223: -00000226: R0 := 0x10000 -0000022d: R0 := mem[R0 + 0xFE8, el]:u64 -00000233: when R0 = 0 goto %00000231 -0000069b: goto %0000043a - -00000231: -00000239: call R30 with noreturn - -0000043a: -0000043d: goto @__gmon_start__ - -0000043b: -00000508: R16 := 0x10000 -0000050f: R17 := mem[R16 + 0xFC0, el]:u64 -00000515: R16 := R16 + 0xFC0 -0000051a: call R17 with noreturn - -0000067c: sub deregister_tm_clones(deregister_tm_clones_result) -000006ac: deregister_tm_clones_result :: out u32 = low:32[R0] - -0000023f: -00000242: R0 := 0x11000 -00000248: R0 := R0 + 0x10 -0000024d: R1 := 0x11000 -00000253: R1 := R1 + 0x10 -00000259: #1 := ~R0 -0000025e: #2 := R1 + ~R0 -00000264: VF := extend:65[#2 + 1] <> extend:65[R1] + extend:65[#1] + 1 -0000026a: CF := pad:65[#2 + 1] <> pad:65[R1] + pad:65[#1] + 1 -0000026e: ZF := #2 + 1 = 0 -00000272: NF := 63:63[#2 + 1] -00000278: when ZF goto %00000276 -0000069c: goto %0000041c - -0000041c: -0000041f: R1 := 0x10000 -00000426: R1 := mem[R1 + 0xFD8, el]:u64 -0000042b: when R1 = 0 goto %00000276 -0000069d: goto %0000042f - -00000276: -0000027e: call R30 with noreturn - -0000042f: -00000433: R16 := R1 -00000438: call R16 with noreturn - -0000067f: sub frame_dummy(frame_dummy_result) -000006ad: frame_dummy_result :: out u32 = low:32[R0] - -00000316: -00000318: call @register_tm_clones with noreturn - -00000680: sub main(main_argc, main_argv, main_result) -000006ae: main_argc :: in u32 = low:32[R0] -000006af: main_argv :: in out u64 = R1 -000006b0: main_result :: out u32 = low:32[R0] - -0000031a: -0000031d: R0 := 0x11000 -00000323: R0 := R0 + 0x14 -0000032a: mem := mem with [R0, el]:u32 <- 0 -0000032f: R0 := 0x11000 -00000335: R0 := R0 + 0x14 -0000033c: R0 := pad:64[mem[R0, el]:u32] -00000342: R1 := pad:64[31:0[R0] + 1] -00000347: R0 := 0x11000 -0000034d: R0 := R0 + 0x14 -00000355: mem := mem with [R0, el]:u32 <- 31:0[R1] -0000035a: R0 := 0x11000 -00000360: R0 := R0 + 0x1C -00000367: R1 := pad:64[mem[R0, el]:u32] -0000036c: R0 := 0x11000 -00000372: R0 := R0 + 0x18 -0000037a: mem := mem with [R0, el]:u32 <- 31:0[R1] -0000037f: R0 := 0x11000 -00000385: R0 := R0 + 0x18 -0000038c: mem := mem with [R0, el]:u32 <- 0 -00000391: R0 := 0x11000 -00000397: R0 := R0 + 0x14 -0000039e: R0 := pad:64[mem[R0, el]:u32] -000003a4: R1 := pad:64[31:0[R0] + 1] -000003a9: R0 := 0x11000 -000003af: R0 := R0 + 0x14 -000003b7: mem := mem with [R0, el]:u32 <- 31:0[R1] -000003bc: R0 := 0 -000003c1: call R30 with noreturn - -00000681: sub register_tm_clones(register_tm_clones_result) -000006b1: register_tm_clones_result :: out u32 = low:32[R0] - -00000280: -00000283: R0 := 0x11000 -00000289: R0 := R0 + 0x10 -0000028e: R1 := 0x11000 -00000294: R1 := R1 + 0x10 -0000029b: R1 := R1 + ~R0 + 1 -000002a1: R2 := 0.63:63[R1] -000002a8: R1 := R2 + (R1 ~>> 3) -000002ae: R1 := extend:64[63:1[R1]] -000002b4: when R1 = 0 goto %000002b2 -0000069e: goto %000003fe - -000003fe: -00000401: R2 := 0x10000 -00000408: R2 := mem[R2 + 0xFF8, el]:u64 -0000040d: when R2 = 0 goto %000002b2 -0000069f: goto %00000411 - -000002b2: -000002ba: call R30 with noreturn - -00000411: -00000415: R16 := R2 -0000041a: call R16 with noreturn diff --git a/src/test/correct/secret_write/gcc/secret_write.expected b/src/test/correct/secret_write/gcc/secret_write.expected index 333d80b3c..b3d7d57be 100644 --- a/src/test/correct/secret_write/gcc/secret_write.expected +++ b/src/test/correct/secret_write/gcc/secret_write.expected @@ -1,20 +1,23 @@ var {:extern} Gamma_R0: bool; var {:extern} Gamma_R1: bool; +var {:extern} Gamma_R2: bool; +var {:extern} Gamma_R3: bool; var {:extern} Gamma_mem: [bv64]bool; var {:extern} R0: bv64; var {:extern} R1: bv64; +var {:extern} R2: bv64; +var {:extern} R3: bv64; var {:extern} mem: [bv64]bv8; const {:extern} $secret_addr: bv64; -axiom ($secret_addr == 69660bv64); +axiom ($secret_addr == 4325396bv64); const {:extern} $x_addr: bv64; -axiom ($x_addr == 69656bv64); +axiom ($x_addr == 4325400bv64); const {:extern} $z_addr: bv64; -axiom ($z_addr == 69652bv64); +axiom ($z_addr == 4325404bv64); function {:extern} L(mem$in: [bv64]bv8, index: bv64) returns (bool) { (if (index == $secret_addr) then false else (if (index == $x_addr) then (bvsmod32(memory_load32_le(mem$in, $z_addr), 2bv32) == 0bv32) else (if (index == $z_addr) then true else false))) } -function {:extern} {:bvbuiltin "bvadd"} bvadd32(bv32, bv32) returns (bv32); function {:extern} {:bvbuiltin "bvadd"} bvadd64(bv64, bv64) returns (bv64); function {:extern} {:bvbuiltin "bvsge"} bvsge32(bv32, bv32) returns (bool); function {:extern} {:bvbuiltin "bvsmod"} bvsmod32(bv32, bv32) returns (bv32); @@ -22,6 +25,10 @@ function {:extern} gamma_load32(gammaMap: [bv64]bool, index: bv64) returns (bool (gammaMap[bvadd64(index, 3bv64)] && (gammaMap[bvadd64(index, 2bv64)] && (gammaMap[bvadd64(index, 1bv64)] && gammaMap[index]))) } +function {:extern} gamma_load64(gammaMap: [bv64]bool, index: bv64) returns (bool) { + (gammaMap[bvadd64(index, 7bv64)] && (gammaMap[bvadd64(index, 6bv64)] && (gammaMap[bvadd64(index, 5bv64)] && (gammaMap[bvadd64(index, 4bv64)] && (gammaMap[bvadd64(index, 3bv64)] && (gammaMap[bvadd64(index, 2bv64)] && (gammaMap[bvadd64(index, 1bv64)] && gammaMap[index]))))))) +} + function {:extern} gamma_store32(gammaMap: [bv64]bool, index: bv64, value: bool) returns ([bv64]bool) { gammaMap[index := value][bvadd64(index, 1bv64) := value][bvadd64(index, 2bv64) := value][bvadd64(index, 3bv64) := value] } @@ -38,17 +45,12 @@ function {:extern} memory_store32_le(memory: [bv64]bv8, index: bv64, value: bv32 memory[index := value[8:0]][bvadd64(index, 1bv64) := value[16:8]][bvadd64(index, 2bv64) := value[24:16]][bvadd64(index, 3bv64) := value[32:24]] } -function {:extern} {:bvbuiltin "zero_extend 32"} zero_extend32_32(bv32) returns (bv64); procedure {:extern} rely(); modifies Gamma_mem, mem; ensures (forall i: bv64 :: (((mem[i] == old(mem[i])) ==> (Gamma_mem[i] == old(Gamma_mem[i]))))); ensures (memory_load32_le(mem, $z_addr) == old(memory_load32_le(mem, $z_addr))); ensures (old(gamma_load32(Gamma_mem, $x_addr)) ==> gamma_load32(Gamma_mem, $x_addr)); - free ensures (memory_load32_le(mem, 1944bv64) == 131073bv32); - free ensures (memory_load64_le(mem, 69016bv64) == 1808bv64); - free ensures (memory_load64_le(mem, 69024bv64) == 1728bv64); - free ensures (memory_load64_le(mem, 69616bv64) == 1812bv64); - free ensures (memory_load64_le(mem, 69640bv64) == 69640bv64); + free ensures (memory_load32_le(mem, 4196312bv64) == 131073bv32); procedure {:extern} rely_transitive(); modifies Gamma_mem, mem; @@ -77,108 +79,56 @@ implementation {:extern} guarantee_reflexive() assert bvsge32(memory_load32_le(mem, $z_addr), memory_load32_le(mem, $z_addr)); } -procedure main_1812(); - modifies Gamma_R0, Gamma_R1, Gamma_mem, R0, R1, mem; +procedure main(); + modifies Gamma_R0, Gamma_R1, Gamma_R2, Gamma_R3, Gamma_mem, R0, R1, R2, R3, mem; requires (gamma_load32(Gamma_mem, $x_addr) == true); requires (gamma_load32(Gamma_mem, $z_addr) == true); requires (gamma_load32(Gamma_mem, $secret_addr) == false); requires (memory_load32_le(mem, $z_addr) == 0bv32); - free requires (memory_load64_le(mem, 69632bv64) == 0bv64); - free requires (memory_load64_le(mem, 69640bv64) == 69640bv64); - free requires (memory_load32_le(mem, 1944bv64) == 131073bv32); - free requires (memory_load64_le(mem, 69016bv64) == 1808bv64); - free requires (memory_load64_le(mem, 69024bv64) == 1728bv64); - free requires (memory_load64_le(mem, 69616bv64) == 1812bv64); - free requires (memory_load64_le(mem, 69640bv64) == 69640bv64); - free ensures (memory_load32_le(mem, 1944bv64) == 131073bv32); - free ensures (memory_load64_le(mem, 69016bv64) == 1808bv64); - free ensures (memory_load64_le(mem, 69024bv64) == 1728bv64); - free ensures (memory_load64_le(mem, 69616bv64) == 1812bv64); - free ensures (memory_load64_le(mem, 69640bv64) == 69640bv64); - -implementation main_1812() + free requires (memory_load64_le(mem, 4325376bv64) == 0bv64); + free requires (memory_load64_le(mem, 4325384bv64) == 0bv64); + free requires (memory_load32_le(mem, 4196312bv64) == 131073bv32); + free ensures (memory_load32_le(mem, 4196312bv64) == 131073bv32); + +implementation main() { - var Gamma_load18: bool; - var Gamma_load19: bool; - var Gamma_load20: bool; + var $load$14: bv64; + var $load$15: bv64; + var Gamma_$load$14: bool; + var Gamma_$load$15: bool; var Gamma_x_old: bool; - var load18: bv32; - var load19: bv32; - var load20: bv32; var z_old: bv32; lmain: assume {:captureState "lmain"} true; - R0, Gamma_R0 := 69632bv64, true; - R0, Gamma_R0 := bvadd64(R0, 20bv64), Gamma_R0; - call rely(); - z_old := memory_load32_le(mem, $z_addr); - Gamma_x_old := (gamma_load32(Gamma_mem, $x_addr) || L(mem, $x_addr)); - assert (L(mem, R0) ==> true); - mem, Gamma_mem := memory_store32_le(mem, R0, 0bv32), gamma_store32(Gamma_mem, R0, true); - assert ((R0 == $z_addr) ==> (L(mem, $x_addr) ==> Gamma_x_old)); - assert bvsge32(memory_load32_le(mem, $z_addr), z_old); - assume {:captureState "%0000032a"} true; - R0, Gamma_R0 := 69632bv64, true; - R0, Gamma_R0 := bvadd64(R0, 20bv64), Gamma_R0; - call rely(); - load18, Gamma_load18 := memory_load32_le(mem, R0), (gamma_load32(Gamma_mem, R0) || L(mem, R0)); - R0, Gamma_R0 := zero_extend32_32(load18), Gamma_load18; - R1, Gamma_R1 := zero_extend32_32(bvadd32(R0[32:0], 1bv32)), Gamma_R0; - R0, Gamma_R0 := 69632bv64, true; - R0, Gamma_R0 := bvadd64(R0, 20bv64), Gamma_R0; - call rely(); - z_old := memory_load32_le(mem, $z_addr); - Gamma_x_old := (gamma_load32(Gamma_mem, $x_addr) || L(mem, $x_addr)); - assert (L(mem, R0) ==> Gamma_R1); - mem, Gamma_mem := memory_store32_le(mem, R0, R1[32:0]), gamma_store32(Gamma_mem, R0, Gamma_R1); - assert ((R0 == $z_addr) ==> (L(mem, $x_addr) ==> Gamma_x_old)); - assert bvsge32(memory_load32_le(mem, $z_addr), z_old); - assume {:captureState "%00000355"} true; - R0, Gamma_R0 := 69632bv64, true; - R0, Gamma_R0 := bvadd64(R0, 28bv64), Gamma_R0; + R2, Gamma_R2 := 4321280bv64, true; call rely(); - load19, Gamma_load19 := memory_load32_le(mem, R0), (gamma_load32(Gamma_mem, R0) || L(mem, R0)); - R1, Gamma_R1 := zero_extend32_32(load19), Gamma_load19; - R0, Gamma_R0 := 69632bv64, true; - R0, Gamma_R0 := bvadd64(R0, 24bv64), Gamma_R0; + $load$14, Gamma_$load$14 := memory_load64_le(mem, bvadd64(R2, 4072bv64)), (gamma_load64(Gamma_mem, bvadd64(R2, 4072bv64)) || L(mem, bvadd64(R2, 4072bv64))); + R2, Gamma_R2 := $load$14, Gamma_$load$14; + R3, Gamma_R3 := 2bv64, true; + R1, Gamma_R1 := 4321280bv64, true; call rely(); - z_old := memory_load32_le(mem, $z_addr); - Gamma_x_old := (gamma_load32(Gamma_mem, $x_addr) || L(mem, $x_addr)); - assert (L(mem, R0) ==> Gamma_R1); - mem, Gamma_mem := memory_store32_le(mem, R0, R1[32:0]), gamma_store32(Gamma_mem, R0, Gamma_R1); - assert ((R0 == $z_addr) ==> (L(mem, $x_addr) ==> Gamma_x_old)); - assert bvsge32(memory_load32_le(mem, $z_addr), z_old); - assume {:captureState "%0000037a"} true; - R0, Gamma_R0 := 69632bv64, true; - R0, Gamma_R0 := bvadd64(R0, 24bv64), Gamma_R0; + $load$15, Gamma_$load$15 := memory_load64_le(mem, bvadd64(R1, 4064bv64)), (gamma_load64(Gamma_mem, bvadd64(R1, 4064bv64)) || L(mem, bvadd64(R1, 4064bv64))); + R1, Gamma_R1 := $load$15, Gamma_$load$15; + R0, Gamma_R0 := 0bv64, true; call rely(); + assert (L(mem, R2) ==> true); z_old := memory_load32_le(mem, $z_addr); Gamma_x_old := (gamma_load32(Gamma_mem, $x_addr) || L(mem, $x_addr)); - assert (L(mem, R0) ==> true); - mem, Gamma_mem := memory_store32_le(mem, R0, 0bv32), gamma_store32(Gamma_mem, R0, true); - assert ((R0 == $z_addr) ==> (L(mem, $x_addr) ==> Gamma_x_old)); + mem, Gamma_mem := memory_store32_le(mem, R2, 0bv32), gamma_store32(Gamma_mem, R2, true); + assert ((R2 == $z_addr) ==> (L(mem, $x_addr) ==> Gamma_x_old)); assert bvsge32(memory_load32_le(mem, $z_addr), z_old); - assume {:captureState "%0000038c"} true; - R0, Gamma_R0 := 69632bv64, true; - R0, Gamma_R0 := bvadd64(R0, 20bv64), Gamma_R0; - call rely(); - load20, Gamma_load20 := memory_load32_le(mem, R0), (gamma_load32(Gamma_mem, R0) || L(mem, R0)); - R0, Gamma_R0 := zero_extend32_32(load20), Gamma_load20; - R1, Gamma_R1 := zero_extend32_32(bvadd32(R0[32:0], 1bv32)), Gamma_R0; - R0, Gamma_R0 := 69632bv64, true; - R0, Gamma_R0 := bvadd64(R0, 20bv64), Gamma_R0; + assume {:captureState "%00000260"} true; call rely(); + assert (L(mem, R1) ==> Gamma_R3); z_old := memory_load32_le(mem, $z_addr); Gamma_x_old := (gamma_load32(Gamma_mem, $x_addr) || L(mem, $x_addr)); - assert (L(mem, R0) ==> Gamma_R1); - mem, Gamma_mem := memory_store32_le(mem, R0, R1[32:0]), gamma_store32(Gamma_mem, R0, Gamma_R1); - assert ((R0 == $z_addr) ==> (L(mem, $x_addr) ==> Gamma_x_old)); + mem, Gamma_mem := memory_store32_le(mem, R1, R3[32:0]), gamma_store32(Gamma_mem, R1, Gamma_R3); + assert ((R1 == $z_addr) ==> (L(mem, $x_addr) ==> Gamma_x_old)); assert bvsge32(memory_load32_le(mem, $z_addr), z_old); - assume {:captureState "%000003b7"} true; - R0, Gamma_R0 := 0bv64, true; - goto main_1812_basil_return; - main_1812_basil_return: - assume {:captureState "main_1812_basil_return"} true; + assume {:captureState "%00000264"} true; + goto main_basil_return; + main_basil_return: + assume {:captureState "main_basil_return"} true; return; } diff --git a/src/test/correct/secret_write/gcc/secret_write.gts b/src/test/correct/secret_write/gcc/secret_write.gts deleted file mode 100644 index 55cf99496..000000000 Binary files a/src/test/correct/secret_write/gcc/secret_write.gts and /dev/null differ diff --git a/src/test/correct/secret_write/gcc/secret_write.md5sum b/src/test/correct/secret_write/gcc/secret_write.md5sum new file mode 100644 index 000000000..df227440d --- /dev/null +++ b/src/test/correct/secret_write/gcc/secret_write.md5sum @@ -0,0 +1,5 @@ +604e4f725b6a5c8fb10db400aa14ce7f correct/secret_write/gcc/a.out +cfae0dd6f5898626d75d631a9633fccb correct/secret_write/gcc/secret_write.adt +0a7b7fa140adbe25dd4080ee16372652 correct/secret_write/gcc/secret_write.bir +bc3a74246fb98f97d8b532b465fd26a8 correct/secret_write/gcc/secret_write.relf +8fe73b699ca7730206aba4adb12d9fb6 correct/secret_write/gcc/secret_write.gts diff --git a/src/test/correct/secret_write/gcc/secret_write.relf b/src/test/correct/secret_write/gcc/secret_write.relf deleted file mode 100644 index 4336d2f46..000000000 --- a/src/test/correct/secret_write/gcc/secret_write.relf +++ /dev/null @@ -1,123 +0,0 @@ - -Relocation section '.rela.dyn' at offset 0x460 contains 8 entries: - Offset Info Type Symbol's Value Symbol's Name + Addend -0000000000010d98 0000000000000403 R_AARCH64_RELATIVE 710 -0000000000010da0 0000000000000403 R_AARCH64_RELATIVE 6c0 -0000000000010ff0 0000000000000403 R_AARCH64_RELATIVE 714 -0000000000011008 0000000000000403 R_AARCH64_RELATIVE 11008 -0000000000010fd8 0000000400000401 R_AARCH64_GLOB_DAT 0000000000000000 _ITM_deregisterTMCloneTable + 0 -0000000000010fe0 0000000500000401 R_AARCH64_GLOB_DAT 0000000000000000 __cxa_finalize@GLIBC_2.17 + 0 -0000000000010fe8 0000000600000401 R_AARCH64_GLOB_DAT 0000000000000000 __gmon_start__ + 0 -0000000000010ff8 0000000800000401 R_AARCH64_GLOB_DAT 0000000000000000 _ITM_registerTMCloneTable + 0 - -Relocation section '.rela.plt' at offset 0x520 contains 4 entries: - Offset Info Type Symbol's Value Symbol's Name + Addend -0000000000010fb0 0000000300000402 R_AARCH64_JUMP_SLOT 0000000000000000 __libc_start_main@GLIBC_2.34 + 0 -0000000000010fb8 0000000500000402 R_AARCH64_JUMP_SLOT 0000000000000000 __cxa_finalize@GLIBC_2.17 + 0 -0000000000010fc0 0000000600000402 R_AARCH64_JUMP_SLOT 0000000000000000 __gmon_start__ + 0 -0000000000010fc8 0000000700000402 R_AARCH64_JUMP_SLOT 0000000000000000 abort@GLIBC_2.17 + 0 - -Symbol table '.dynsym' contains 9 entries: - Num: Value Size Type Bind Vis Ndx Name - 0: 0000000000000000 0 NOTYPE LOCAL DEFAULT UND - 1: 0000000000000580 0 SECTION LOCAL DEFAULT 11 .init - 2: 0000000000011000 0 SECTION LOCAL DEFAULT 22 .data - 3: 0000000000000000 0 FUNC GLOBAL DEFAULT UND __libc_start_main@GLIBC_2.34 (2) - 4: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_deregisterTMCloneTable - 5: 0000000000000000 0 FUNC WEAK DEFAULT UND __cxa_finalize@GLIBC_2.17 (3) - 6: 0000000000000000 0 NOTYPE WEAK DEFAULT UND __gmon_start__ - 7: 0000000000000000 0 FUNC GLOBAL DEFAULT UND abort@GLIBC_2.17 (3) - 8: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_registerTMCloneTable - -Symbol table '.symtab' contains 90 entries: - Num: Value Size Type Bind Vis Ndx Name - 0: 0000000000000000 0 NOTYPE LOCAL DEFAULT UND - 1: 0000000000000238 0 SECTION LOCAL DEFAULT 1 .interp - 2: 0000000000000254 0 SECTION LOCAL DEFAULT 2 .note.gnu.build-id - 3: 0000000000000278 0 SECTION LOCAL DEFAULT 3 .note.ABI-tag - 4: 0000000000000298 0 SECTION LOCAL DEFAULT 4 .gnu.hash - 5: 00000000000002b8 0 SECTION LOCAL DEFAULT 5 .dynsym - 6: 0000000000000390 0 SECTION LOCAL DEFAULT 6 .dynstr - 7: 000000000000041e 0 SECTION LOCAL DEFAULT 7 .gnu.version - 8: 0000000000000430 0 SECTION LOCAL DEFAULT 8 .gnu.version_r - 9: 0000000000000460 0 SECTION LOCAL DEFAULT 9 .rela.dyn - 10: 0000000000000520 0 SECTION LOCAL DEFAULT 10 .rela.plt - 11: 0000000000000580 0 SECTION LOCAL DEFAULT 11 .init - 12: 00000000000005a0 0 SECTION LOCAL DEFAULT 12 .plt - 13: 0000000000000600 0 SECTION LOCAL DEFAULT 13 .text - 14: 0000000000000784 0 SECTION LOCAL DEFAULT 14 .fini - 15: 0000000000000798 0 SECTION LOCAL DEFAULT 15 .rodata - 16: 000000000000079c 0 SECTION LOCAL DEFAULT 16 .eh_frame_hdr - 17: 00000000000007d8 0 SECTION LOCAL DEFAULT 17 .eh_frame - 18: 0000000000010d98 0 SECTION LOCAL DEFAULT 18 .init_array - 19: 0000000000010da0 0 SECTION LOCAL DEFAULT 19 .fini_array - 20: 0000000000010da8 0 SECTION LOCAL DEFAULT 20 .dynamic - 21: 0000000000010f98 0 SECTION LOCAL DEFAULT 21 .got - 22: 0000000000011000 0 SECTION LOCAL DEFAULT 22 .data - 23: 0000000000011010 0 SECTION LOCAL DEFAULT 23 .bss - 24: 0000000000000000 0 SECTION LOCAL DEFAULT 24 .comment - 25: 0000000000000000 0 FILE LOCAL DEFAULT ABS Scrt1.o - 26: 0000000000000278 0 NOTYPE LOCAL DEFAULT 3 $d - 27: 0000000000000278 32 OBJECT LOCAL DEFAULT 3 __abi_tag - 28: 0000000000000600 0 NOTYPE LOCAL DEFAULT 13 $x - 29: 00000000000007ec 0 NOTYPE LOCAL DEFAULT 17 $d - 30: 0000000000000798 0 NOTYPE LOCAL DEFAULT 15 $d - 31: 0000000000000000 0 FILE LOCAL DEFAULT ABS crti.o - 32: 0000000000000634 0 NOTYPE LOCAL DEFAULT 13 $x - 33: 0000000000000634 20 FUNC LOCAL DEFAULT 13 call_weak_fn - 34: 0000000000000580 0 NOTYPE LOCAL DEFAULT 11 $x - 35: 0000000000000784 0 NOTYPE LOCAL DEFAULT 14 $x - 36: 0000000000000000 0 FILE LOCAL DEFAULT ABS crtn.o - 37: 0000000000000590 0 NOTYPE LOCAL DEFAULT 11 $x - 38: 0000000000000790 0 NOTYPE LOCAL DEFAULT 14 $x - 39: 0000000000000000 0 FILE LOCAL DEFAULT ABS crtstuff.c - 40: 0000000000000650 0 NOTYPE LOCAL DEFAULT 13 $x - 41: 0000000000000650 0 FUNC LOCAL DEFAULT 13 deregister_tm_clones - 42: 0000000000000680 0 FUNC LOCAL DEFAULT 13 register_tm_clones - 43: 0000000000011008 0 NOTYPE LOCAL DEFAULT 22 $d - 44: 00000000000006c0 0 FUNC LOCAL DEFAULT 13 __do_global_dtors_aux - 45: 0000000000011010 1 OBJECT LOCAL DEFAULT 23 completed.0 - 46: 0000000000010da0 0 NOTYPE LOCAL DEFAULT 19 $d - 47: 0000000000010da0 0 OBJECT LOCAL DEFAULT 19 __do_global_dtors_aux_fini_array_entry - 48: 0000000000000710 0 FUNC LOCAL DEFAULT 13 frame_dummy - 49: 0000000000010d98 0 NOTYPE LOCAL DEFAULT 18 $d - 50: 0000000000010d98 0 OBJECT LOCAL DEFAULT 18 __frame_dummy_init_array_entry - 51: 0000000000000800 0 NOTYPE LOCAL DEFAULT 17 $d - 52: 0000000000011010 0 NOTYPE LOCAL DEFAULT 23 $d - 53: 0000000000000000 0 FILE LOCAL DEFAULT ABS secret_write.c - 54: 0000000000011014 0 NOTYPE LOCAL DEFAULT 23 $d - 55: 0000000000000714 0 NOTYPE LOCAL DEFAULT 13 $x - 56: 0000000000000860 0 NOTYPE LOCAL DEFAULT 17 $d - 57: 0000000000000000 0 FILE LOCAL DEFAULT ABS crtstuff.c - 58: 0000000000000874 0 NOTYPE LOCAL DEFAULT 17 $d - 59: 0000000000000874 0 OBJECT LOCAL DEFAULT 17 __FRAME_END__ - 60: 0000000000000000 0 FILE LOCAL DEFAULT ABS - 61: 0000000000010da8 0 OBJECT LOCAL DEFAULT ABS _DYNAMIC - 62: 000000000000079c 0 NOTYPE LOCAL DEFAULT 16 __GNU_EH_FRAME_HDR - 63: 0000000000010fd0 0 OBJECT LOCAL DEFAULT ABS _GLOBAL_OFFSET_TABLE_ - 64: 00000000000005a0 0 NOTYPE LOCAL DEFAULT 12 $x - 65: 0000000000000000 0 FUNC GLOBAL DEFAULT UND __libc_start_main@GLIBC_2.34 - 66: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_deregisterTMCloneTable - 67: 0000000000011000 0 NOTYPE WEAK DEFAULT 22 data_start - 68: 0000000000011010 0 NOTYPE GLOBAL DEFAULT 23 __bss_start__ - 69: 0000000000000000 0 FUNC WEAK DEFAULT UND __cxa_finalize@GLIBC_2.17 - 70: 0000000000011020 0 NOTYPE GLOBAL DEFAULT 23 _bss_end__ - 71: 0000000000011010 0 NOTYPE GLOBAL DEFAULT 22 _edata - 72: 0000000000011014 4 OBJECT GLOBAL DEFAULT 23 z - 73: 0000000000011018 4 OBJECT GLOBAL DEFAULT 23 x - 74: 0000000000000784 0 FUNC GLOBAL HIDDEN 14 _fini - 75: 0000000000011020 0 NOTYPE GLOBAL DEFAULT 23 __bss_end__ - 76: 0000000000011000 0 NOTYPE GLOBAL DEFAULT 22 __data_start - 77: 0000000000000000 0 NOTYPE WEAK DEFAULT UND __gmon_start__ - 78: 0000000000011008 0 OBJECT GLOBAL HIDDEN 22 __dso_handle - 79: 0000000000000000 0 FUNC GLOBAL DEFAULT UND abort@GLIBC_2.17 - 80: 0000000000000798 4 OBJECT GLOBAL DEFAULT 15 _IO_stdin_used - 81: 000000000001101c 4 OBJECT GLOBAL DEFAULT 23 secret - 82: 0000000000011020 0 NOTYPE GLOBAL DEFAULT 23 _end - 83: 0000000000000600 52 FUNC GLOBAL DEFAULT 13 _start - 84: 0000000000011020 0 NOTYPE GLOBAL DEFAULT 23 __end__ - 85: 0000000000011010 0 NOTYPE GLOBAL DEFAULT 23 __bss_start - 86: 0000000000000714 112 FUNC GLOBAL DEFAULT 13 main - 87: 0000000000011010 0 OBJECT GLOBAL HIDDEN 22 __TMC_END__ - 88: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_registerTMCloneTable - 89: 0000000000000580 0 FUNC GLOBAL HIDDEN 11 _init diff --git a/src/test/correct/secret_write/gcc/secret_write_gtirb.expected b/src/test/correct/secret_write/gcc/secret_write_gtirb.expected index ad54c9381..aa9895d69 100644 --- a/src/test/correct/secret_write/gcc/secret_write_gtirb.expected +++ b/src/test/correct/secret_write/gcc/secret_write_gtirb.expected @@ -1,20 +1,23 @@ var {:extern} Gamma_R0: bool; var {:extern} Gamma_R1: bool; +var {:extern} Gamma_R2: bool; +var {:extern} Gamma_R3: bool; var {:extern} Gamma_mem: [bv64]bool; var {:extern} R0: bv64; var {:extern} R1: bv64; +var {:extern} R2: bv64; +var {:extern} R3: bv64; var {:extern} mem: [bv64]bv8; const {:extern} $secret_addr: bv64; -axiom ($secret_addr == 69660bv64); +axiom ($secret_addr == 4325396bv64); const {:extern} $x_addr: bv64; -axiom ($x_addr == 69656bv64); +axiom ($x_addr == 4325400bv64); const {:extern} $z_addr: bv64; -axiom ($z_addr == 69652bv64); +axiom ($z_addr == 4325404bv64); function {:extern} L(mem$in: [bv64]bv8, index: bv64) returns (bool) { (if (index == $secret_addr) then false else (if (index == $x_addr) then (bvsmod32(memory_load32_le(mem$in, $z_addr), 2bv32) == 0bv32) else (if (index == $z_addr) then true else false))) } -function {:extern} {:bvbuiltin "bvadd"} bvadd32(bv32, bv32) returns (bv32); function {:extern} {:bvbuiltin "bvadd"} bvadd64(bv64, bv64) returns (bv64); function {:extern} {:bvbuiltin "bvsge"} bvsge32(bv32, bv32) returns (bool); function {:extern} {:bvbuiltin "bvsmod"} bvsmod32(bv32, bv32) returns (bv32); @@ -22,6 +25,10 @@ function {:extern} gamma_load32(gammaMap: [bv64]bool, index: bv64) returns (bool (gammaMap[bvadd64(index, 3bv64)] && (gammaMap[bvadd64(index, 2bv64)] && (gammaMap[bvadd64(index, 1bv64)] && gammaMap[index]))) } +function {:extern} gamma_load64(gammaMap: [bv64]bool, index: bv64) returns (bool) { + (gammaMap[bvadd64(index, 7bv64)] && (gammaMap[bvadd64(index, 6bv64)] && (gammaMap[bvadd64(index, 5bv64)] && (gammaMap[bvadd64(index, 4bv64)] && (gammaMap[bvadd64(index, 3bv64)] && (gammaMap[bvadd64(index, 2bv64)] && (gammaMap[bvadd64(index, 1bv64)] && gammaMap[index]))))))) +} + function {:extern} gamma_store32(gammaMap: [bv64]bool, index: bv64, value: bool) returns ([bv64]bool) { gammaMap[index := value][bvadd64(index, 1bv64) := value][bvadd64(index, 2bv64) := value][bvadd64(index, 3bv64) := value] } @@ -38,17 +45,12 @@ function {:extern} memory_store32_le(memory: [bv64]bv8, index: bv64, value: bv32 memory[index := value[8:0]][bvadd64(index, 1bv64) := value[16:8]][bvadd64(index, 2bv64) := value[24:16]][bvadd64(index, 3bv64) := value[32:24]] } -function {:extern} {:bvbuiltin "zero_extend 32"} zero_extend32_32(bv32) returns (bv64); procedure {:extern} rely(); modifies Gamma_mem, mem; ensures (forall i: bv64 :: (((mem[i] == old(mem[i])) ==> (Gamma_mem[i] == old(Gamma_mem[i]))))); ensures (memory_load32_le(mem, $z_addr) == old(memory_load32_le(mem, $z_addr))); ensures (old(gamma_load32(Gamma_mem, $x_addr)) ==> gamma_load32(Gamma_mem, $x_addr)); - free ensures (memory_load32_le(mem, 1944bv64) == 131073bv32); - free ensures (memory_load64_le(mem, 69016bv64) == 1808bv64); - free ensures (memory_load64_le(mem, 69024bv64) == 1728bv64); - free ensures (memory_load64_le(mem, 69616bv64) == 1812bv64); - free ensures (memory_load64_le(mem, 69640bv64) == 69640bv64); + free ensures (memory_load32_le(mem, 4196312bv64) == 131073bv32); procedure {:extern} rely_transitive(); modifies Gamma_mem, mem; @@ -77,108 +79,56 @@ implementation {:extern} guarantee_reflexive() assert bvsge32(memory_load32_le(mem, $z_addr), memory_load32_le(mem, $z_addr)); } -procedure main_1812(); - modifies Gamma_R0, Gamma_R1, Gamma_mem, R0, R1, mem; +procedure main(); + modifies Gamma_R0, Gamma_R1, Gamma_R2, Gamma_R3, Gamma_mem, R0, R1, R2, R3, mem; requires (gamma_load32(Gamma_mem, $x_addr) == true); requires (gamma_load32(Gamma_mem, $z_addr) == true); requires (gamma_load32(Gamma_mem, $secret_addr) == false); requires (memory_load32_le(mem, $z_addr) == 0bv32); - free requires (memory_load64_le(mem, 69632bv64) == 0bv64); - free requires (memory_load64_le(mem, 69640bv64) == 69640bv64); - free requires (memory_load32_le(mem, 1944bv64) == 131073bv32); - free requires (memory_load64_le(mem, 69016bv64) == 1808bv64); - free requires (memory_load64_le(mem, 69024bv64) == 1728bv64); - free requires (memory_load64_le(mem, 69616bv64) == 1812bv64); - free requires (memory_load64_le(mem, 69640bv64) == 69640bv64); - free ensures (memory_load32_le(mem, 1944bv64) == 131073bv32); - free ensures (memory_load64_le(mem, 69016bv64) == 1808bv64); - free ensures (memory_load64_le(mem, 69024bv64) == 1728bv64); - free ensures (memory_load64_le(mem, 69616bv64) == 1812bv64); - free ensures (memory_load64_le(mem, 69640bv64) == 69640bv64); - -implementation main_1812() + free requires (memory_load64_le(mem, 4325376bv64) == 0bv64); + free requires (memory_load64_le(mem, 4325384bv64) == 0bv64); + free requires (memory_load32_le(mem, 4196312bv64) == 131073bv32); + free ensures (memory_load32_le(mem, 4196312bv64) == 131073bv32); + +implementation main() { - var Gamma_load20: bool; - var Gamma_load21: bool; - var Gamma_load22: bool; + var $load16: bv64; + var $load17: bv64; + var Gamma_$load16: bool; + var Gamma_$load17: bool; var Gamma_x_old: bool; - var load20: bv32; - var load21: bv32; - var load22: bv32; var z_old: bv32; - main_1812__0__KpvN4unOQSe6fvbZnP4O3Q: - assume {:captureState "main_1812__0__KpvN4unOQSe6fvbZnP4O3Q"} true; - R0, Gamma_R0 := 69632bv64, true; - R0, Gamma_R0 := bvadd64(R0, 20bv64), Gamma_R0; - call rely(); - z_old := memory_load32_le(mem, $z_addr); - Gamma_x_old := (gamma_load32(Gamma_mem, $x_addr) || L(mem, $x_addr)); - assert (L(mem, R0) ==> true); - mem, Gamma_mem := memory_store32_le(mem, R0, 0bv32), gamma_store32(Gamma_mem, R0, true); - assert ((R0 == $z_addr) ==> (L(mem, $x_addr) ==> Gamma_x_old)); - assert bvsge32(memory_load32_le(mem, $z_addr), z_old); - assume {:captureState "1820_0"} true; - R0, Gamma_R0 := 69632bv64, true; - R0, Gamma_R0 := bvadd64(R0, 20bv64), Gamma_R0; - call rely(); - load20, Gamma_load20 := memory_load32_le(mem, R0), (gamma_load32(Gamma_mem, R0) || L(mem, R0)); - R0, Gamma_R0 := zero_extend32_32(load20), Gamma_load20; - R1, Gamma_R1 := zero_extend32_32(bvadd32(R0[32:0], 1bv32)), Gamma_R0; - R0, Gamma_R0 := 69632bv64, true; - R0, Gamma_R0 := bvadd64(R0, 20bv64), Gamma_R0; - call rely(); - z_old := memory_load32_le(mem, $z_addr); - Gamma_x_old := (gamma_load32(Gamma_mem, $x_addr) || L(mem, $x_addr)); - assert (L(mem, R0) ==> Gamma_R1); - mem, Gamma_mem := memory_store32_le(mem, R0, R1[32:0]), gamma_store32(Gamma_mem, R0, Gamma_R1); - assert ((R0 == $z_addr) ==> (L(mem, $x_addr) ==> Gamma_x_old)); - assert bvsge32(memory_load32_le(mem, $z_addr), z_old); - assume {:captureState "1848_0"} true; - R0, Gamma_R0 := 69632bv64, true; - R0, Gamma_R0 := bvadd64(R0, 28bv64), Gamma_R0; + $main$__0__$iedVtPHmSjuLgqSxHgXOuw: + assume {:captureState "$main$__0__$iedVtPHmSjuLgqSxHgXOuw"} true; + R2, Gamma_R2 := 4321280bv64, true; call rely(); - load21, Gamma_load21 := memory_load32_le(mem, R0), (gamma_load32(Gamma_mem, R0) || L(mem, R0)); - R1, Gamma_R1 := zero_extend32_32(load21), Gamma_load21; - R0, Gamma_R0 := 69632bv64, true; - R0, Gamma_R0 := bvadd64(R0, 24bv64), Gamma_R0; + $load16, Gamma_$load16 := memory_load64_le(mem, bvadd64(R2, 4072bv64)), (gamma_load64(Gamma_mem, bvadd64(R2, 4072bv64)) || L(mem, bvadd64(R2, 4072bv64))); + R2, Gamma_R2 := $load16, Gamma_$load16; + R3, Gamma_R3 := 2bv64, true; + R1, Gamma_R1 := 4321280bv64, true; call rely(); - z_old := memory_load32_le(mem, $z_addr); - Gamma_x_old := (gamma_load32(Gamma_mem, $x_addr) || L(mem, $x_addr)); - assert (L(mem, R0) ==> Gamma_R1); - mem, Gamma_mem := memory_store32_le(mem, R0, R1[32:0]), gamma_store32(Gamma_mem, R0, Gamma_R1); - assert ((R0 == $z_addr) ==> (L(mem, $x_addr) ==> Gamma_x_old)); - assert bvsge32(memory_load32_le(mem, $z_addr), z_old); - assume {:captureState "1872_0"} true; - R0, Gamma_R0 := 69632bv64, true; - R0, Gamma_R0 := bvadd64(R0, 24bv64), Gamma_R0; + $load17, Gamma_$load17 := memory_load64_le(mem, bvadd64(R1, 4064bv64)), (gamma_load64(Gamma_mem, bvadd64(R1, 4064bv64)) || L(mem, bvadd64(R1, 4064bv64))); + R1, Gamma_R1 := $load17, Gamma_$load17; + R0, Gamma_R0 := 0bv64, true; call rely(); + assert (L(mem, R2) ==> true); z_old := memory_load32_le(mem, $z_addr); Gamma_x_old := (gamma_load32(Gamma_mem, $x_addr) || L(mem, $x_addr)); - assert (L(mem, R0) ==> true); - mem, Gamma_mem := memory_store32_le(mem, R0, 0bv32), gamma_store32(Gamma_mem, R0, true); - assert ((R0 == $z_addr) ==> (L(mem, $x_addr) ==> Gamma_x_old)); + mem, Gamma_mem := memory_store32_le(mem, R2, 0bv32), gamma_store32(Gamma_mem, R2, true); + assert ((R2 == $z_addr) ==> (L(mem, $x_addr) ==> Gamma_x_old)); assert bvsge32(memory_load32_le(mem, $z_addr), z_old); - assume {:captureState "1884_0"} true; - R0, Gamma_R0 := 69632bv64, true; - R0, Gamma_R0 := bvadd64(R0, 20bv64), Gamma_R0; - call rely(); - load22, Gamma_load22 := memory_load32_le(mem, R0), (gamma_load32(Gamma_mem, R0) || L(mem, R0)); - R0, Gamma_R0 := zero_extend32_32(load22), Gamma_load22; - R1, Gamma_R1 := zero_extend32_32(bvadd32(R0[32:0], 1bv32)), Gamma_R0; - R0, Gamma_R0 := 69632bv64, true; - R0, Gamma_R0 := bvadd64(R0, 20bv64), Gamma_R0; + assume {:captureState "4195992$0"} true; call rely(); + assert (L(mem, R1) ==> Gamma_R3); z_old := memory_load32_le(mem, $z_addr); Gamma_x_old := (gamma_load32(Gamma_mem, $x_addr) || L(mem, $x_addr)); - assert (L(mem, R0) ==> Gamma_R1); - mem, Gamma_mem := memory_store32_le(mem, R0, R1[32:0]), gamma_store32(Gamma_mem, R0, Gamma_R1); - assert ((R0 == $z_addr) ==> (L(mem, $x_addr) ==> Gamma_x_old)); + mem, Gamma_mem := memory_store32_le(mem, R1, R3[32:0]), gamma_store32(Gamma_mem, R1, Gamma_R3); + assert ((R1 == $z_addr) ==> (L(mem, $x_addr) ==> Gamma_x_old)); assert bvsge32(memory_load32_le(mem, $z_addr), z_old); - assume {:captureState "1912_0"} true; - R0, Gamma_R0 := 0bv64, true; - goto main_1812_basil_return; - main_1812_basil_return: - assume {:captureState "main_1812_basil_return"} true; + assume {:captureState "4195996$0"} true; + goto main_basil_return; + main_basil_return: + assume {:captureState "main_basil_return"} true; return; } diff --git a/src/test/correct/secret_write/gcc_O2/secret_write.adt b/src/test/correct/secret_write/gcc_O2/secret_write.adt deleted file mode 100644 index e6ab276b9..000000000 --- a/src/test/correct/secret_write/gcc_O2/secret_write.adt +++ /dev/null @@ -1,496 +0,0 @@ -Project(Attrs([Attr("filename","\"gcc_O2/secret_write.out\""), -Attr("image-specification","(declare abi (name str))\n(declare arch (name str))\n(declare base-address (addr int))\n(declare bias (off int))\n(declare bits (size int))\n(declare code-region (addr int) (size int) (off int))\n(declare code-start (addr int))\n(declare entry-point (addr int))\n(declare external-reference (addr int) (name str))\n(declare format (name str))\n(declare is-executable (flag bool))\n(declare is-little-endian (flag bool))\n(declare llvm:base-address (addr int))\n(declare llvm:code-entry (name str) (off int) (size int))\n(declare llvm:coff-import-library (name str))\n(declare llvm:coff-virtual-section-header (name str) (addr int) (size int))\n(declare llvm:elf-program-header (name str) (off int) (size int))\n(declare llvm:elf-program-header-flags (name str) (ld bool) (r bool) \n (w bool) (x bool))\n(declare llvm:elf-virtual-program-header (name str) (addr int) (size int))\n(declare llvm:entry-point (addr int))\n(declare llvm:macho-symbol (name str) (value int))\n(declare llvm:name-reference (at int) (name str))\n(declare llvm:relocation (at int) (addr int))\n(declare llvm:section-entry (name str) (addr int) (size int) (off int))\n(declare llvm:section-flags (name str) (r bool) (w bool) (x bool))\n(declare llvm:segment-command (name str) (off int) (size int))\n(declare llvm:segment-command-flags (name str) (r bool) (w bool) (x bool))\n(declare llvm:symbol-entry (name str) (addr int) (size int) (off int)\n (value int))\n(declare llvm:virtual-segment-command (name str) (addr int) (size int))\n(declare mapped (addr int) (size int) (off int))\n(declare named-region (addr int) (size int) (name str))\n(declare named-symbol (addr int) (name str))\n(declare require (name str))\n(declare section (addr int) (size int))\n(declare segment (addr int) (size int) (r bool) (w bool) (x bool))\n(declare subarch (name str))\n(declare symbol-chunk (addr int) (size int) (root int))\n(declare symbol-value (addr int) (value int))\n(declare system (name str))\n(declare vendor (name str))\n\n(abi unknown)\n(arch aarch64)\n(base-address 0)\n(bias 0)\n(bits 64)\n(code-region 1876 20 1876)\n(code-region 1536 340 1536)\n(code-region 1440 96 1440)\n(code-region 1408 24 1408)\n(code-start 1652)\n(code-start 1600)\n(code-start 1536)\n(entry-point 1600)\n(external-reference 69592 _ITM_deregisterTMCloneTable)\n(external-reference 69600 __cxa_finalize)\n(external-reference 69608 __gmon_start__)\n(external-reference 69624 _ITM_registerTMCloneTable)\n(external-reference 69552 __libc_start_main)\n(external-reference 69560 __cxa_finalize)\n(external-reference 69568 __gmon_start__)\n(external-reference 69576 abort)\n(format elf)\n(is-executable true)\n(is-little-endian true)\n(llvm:base-address 0)\n(llvm:code-entry abort 0 0)\n(llvm:code-entry __cxa_finalize 0 0)\n(llvm:code-entry __libc_start_main 0 0)\n(llvm:code-entry _init 1408 0)\n(llvm:code-entry main 1536 28)\n(llvm:code-entry _start 1600 52)\n(llvm:code-entry abort@GLIBC_2.17 0 0)\n(llvm:code-entry _fini 1876 0)\n(llvm:code-entry __cxa_finalize@GLIBC_2.17 0 0)\n(llvm:code-entry __libc_start_main@GLIBC_2.34 0 0)\n(llvm:code-entry frame_dummy 1872 0)\n(llvm:code-entry __do_global_dtors_aux 1792 0)\n(llvm:code-entry register_tm_clones 1728 0)\n(llvm:code-entry deregister_tm_clones 1680 0)\n(llvm:code-entry call_weak_fn 1652 20)\n(llvm:code-entry .fini 1876 20)\n(llvm:code-entry .text 1536 340)\n(llvm:code-entry .plt 1440 96)\n(llvm:code-entry .init 1408 24)\n(llvm:elf-program-header 08 3480 616)\n(llvm:elf-program-header 07 0 0)\n(llvm:elf-program-header 06 1900 60)\n(llvm:elf-program-header 05 596 68)\n(llvm:elf-program-header 04 3496 496)\n(llvm:elf-program-header 03 3480 632)\n(llvm:elf-program-header 02 0 2120)\n(llvm:elf-program-header 01 568 27)\n(llvm:elf-program-header 00 64 504)\n(llvm:elf-program-header-flags 08 false true false false)\n(llvm:elf-program-header-flags 07 false true true false)\n(llvm:elf-program-header-flags 06 false true false false)\n(llvm:elf-program-header-flags 05 false true false false)\n(llvm:elf-program-header-flags 04 false true true false)\n(llvm:elf-program-header-flags 03 true true true false)\n(llvm:elf-program-header-flags 02 true true false true)\n(llvm:elf-program-header-flags 01 false true false false)\n(llvm:elf-program-header-flags 00 false true false false)\n(llvm:elf-virtual-program-header 08 69016 616)\n(llvm:elf-virtual-program-header 07 0 0)\n(llvm:elf-virtual-program-header 06 1900 60)\n(llvm:elf-virtual-program-header 05 596 68)\n(llvm:elf-virtual-program-header 04 69032 496)\n(llvm:elf-virtual-program-header 03 69016 648)\n(llvm:elf-virtual-program-header 02 0 2120)\n(llvm:elf-virtual-program-header 01 568 27)\n(llvm:elf-virtual-program-header 00 64 504)\n(llvm:entry-point 1600)\n(llvm:name-reference 69576 abort)\n(llvm:name-reference 69568 __gmon_start__)\n(llvm:name-reference 69560 __cxa_finalize)\n(llvm:name-reference 69552 __libc_start_main)\n(llvm:name-reference 69624 _ITM_registerTMCloneTable)\n(llvm:name-reference 69608 __gmon_start__)\n(llvm:name-reference 69600 __cxa_finalize)\n(llvm:name-reference 69592 _ITM_deregisterTMCloneTable)\n(llvm:section-entry .shstrtab 0 250 6877)\n(llvm:section-entry .strtab 0 557 6320)\n(llvm:section-entry .symtab 0 2160 4160)\n(llvm:section-entry .comment 0 43 4112)\n(llvm:section-entry .bss 69648 16 4112)\n(llvm:section-entry .data 69632 16 4096)\n(llvm:section-entry .got 69528 104 3992)\n(llvm:section-entry .dynamic 69032 496 3496)\n(llvm:section-entry .fini_array 69024 8 3488)\n(llvm:section-entry .init_array 69016 8 3480)\n(llvm:section-entry .eh_frame 1960 160 1960)\n(llvm:section-entry .eh_frame_hdr 1900 60 1900)\n(llvm:section-entry .rodata 1896 4 1896)\n(llvm:section-entry .fini 1876 20 1876)\n(llvm:section-entry .text 1536 340 1536)\n(llvm:section-entry .plt 1440 96 1440)\n(llvm:section-entry .init 1408 24 1408)\n(llvm:section-entry .rela.plt 1312 96 1312)\n(llvm:section-entry .rela.dyn 1120 192 1120)\n(llvm:section-entry .gnu.version_r 1072 48 1072)\n(llvm:section-entry .gnu.version 1054 18 1054)\n(llvm:section-entry .dynstr 912 141 912)\n(llvm:section-entry .dynsym 696 216 696)\n(llvm:section-entry .gnu.hash 664 28 664)\n(llvm:section-entry .note.ABI-tag 632 32 632)\n(llvm:section-entry .note.gnu.build-id 596 36 596)\n(llvm:section-entry .interp 568 27 568)\n(llvm:section-flags .shstrtab true false false)\n(llvm:section-flags .strtab true false false)\n(llvm:section-flags .symtab true false false)\n(llvm:section-flags .comment true false false)\n(llvm:section-flags .bss true true false)\n(llvm:section-flags .data true true false)\n(llvm:section-flags .got true true false)\n(llvm:section-flags .dynamic true true false)\n(llvm:section-flags .fini_array true true false)\n(llvm:section-flags .init_array true true false)\n(llvm:section-flags .eh_frame true false false)\n(llvm:section-flags .eh_frame_hdr true false false)\n(llvm:section-flags .rodata true false false)\n(llvm:section-flags .fini true false true)\n(llvm:section-flags .text true false true)\n(llvm:section-flags .plt true false true)\n(llvm:section-flags .init true false true)\n(llvm:section-flags .rela.plt true false false)\n(llvm:section-flags .rela.dyn true false false)\n(llvm:section-flags .gnu.version_r true false false)\n(llvm:section-flags .gnu.version true false false)\n(llvm:section-flags .dynstr true false false)\n(llvm:section-flags .dynsym true false false)\n(llvm:section-flags .gnu.hash true false false)\n(llvm:section-flags .note.ABI-tag true false false)\n(llvm:section-flags .note.gnu.build-id true false false)\n(llvm:section-flags .interp true false false)\n(llvm:symbol-entry abort 0 0 0 0)\n(llvm:symbol-entry __cxa_finalize 0 0 0 0)\n(llvm:symbol-entry __libc_start_main 0 0 0 0)\n(llvm:symbol-entry _init 1408 0 1408 1408)\n(llvm:symbol-entry main 1536 28 1536 1536)\n(llvm:symbol-entry _start 1600 52 1600 1600)\n(llvm:symbol-entry abort@GLIBC_2.17 0 0 0 0)\n(llvm:symbol-entry _fini 1876 0 1876 1876)\n(llvm:symbol-entry __cxa_finalize@GLIBC_2.17 0 0 0 0)\n(llvm:symbol-entry __libc_start_main@GLIBC_2.34 0 0 0 0)\n(llvm:symbol-entry frame_dummy 1872 0 1872 1872)\n(llvm:symbol-entry __do_global_dtors_aux 1792 0 1792 1792)\n(llvm:symbol-entry register_tm_clones 1728 0 1728 1728)\n(llvm:symbol-entry deregister_tm_clones 1680 0 1680 1680)\n(llvm:symbol-entry call_weak_fn 1652 20 1652 1652)\n(mapped 0 2120 0)\n(mapped 69016 632 3480)\n(named-region 0 2120 02)\n(named-region 69016 648 03)\n(named-region 568 27 .interp)\n(named-region 596 36 .note.gnu.build-id)\n(named-region 632 32 .note.ABI-tag)\n(named-region 664 28 .gnu.hash)\n(named-region 696 216 .dynsym)\n(named-region 912 141 .dynstr)\n(named-region 1054 18 .gnu.version)\n(named-region 1072 48 .gnu.version_r)\n(named-region 1120 192 .rela.dyn)\n(named-region 1312 96 .rela.plt)\n(named-region 1408 24 .init)\n(named-region 1440 96 .plt)\n(named-region 1536 340 .text)\n(named-region 1876 20 .fini)\n(named-region 1896 4 .rodata)\n(named-region 1900 60 .eh_frame_hdr)\n(named-region 1960 160 .eh_frame)\n(named-region 69016 8 .init_array)\n(named-region 69024 8 .fini_array)\n(named-region 69032 496 .dynamic)\n(named-region 69528 104 .got)\n(named-region 69632 16 .data)\n(named-region 69648 16 .bss)\n(named-region 0 43 .comment)\n(named-region 0 2160 .symtab)\n(named-region 0 557 .strtab)\n(named-region 0 250 .shstrtab)\n(named-symbol 1652 call_weak_fn)\n(named-symbol 1680 deregister_tm_clones)\n(named-symbol 1728 register_tm_clones)\n(named-symbol 1792 __do_global_dtors_aux)\n(named-symbol 1872 frame_dummy)\n(named-symbol 0 __libc_start_main@GLIBC_2.34)\n(named-symbol 0 __cxa_finalize@GLIBC_2.17)\n(named-symbol 1876 _fini)\n(named-symbol 0 abort@GLIBC_2.17)\n(named-symbol 1600 _start)\n(named-symbol 1536 main)\n(named-symbol 1408 _init)\n(named-symbol 0 __libc_start_main)\n(named-symbol 0 __cxa_finalize)\n(named-symbol 0 abort)\n(require libc.so.6)\n(section 568 27)\n(section 596 36)\n(section 632 32)\n(section 664 28)\n(section 696 216)\n(section 912 141)\n(section 1054 18)\n(section 1072 48)\n(section 1120 192)\n(section 1312 96)\n(section 1408 24)\n(section 1440 96)\n(section 1536 340)\n(section 1876 20)\n(section 1896 4)\n(section 1900 60)\n(section 1960 160)\n(section 69016 8)\n(section 69024 8)\n(section 69032 496)\n(section 69528 104)\n(section 69632 16)\n(section 69648 16)\n(section 0 43)\n(section 0 2160)\n(section 0 557)\n(section 0 250)\n(segment 0 2120 true false true)\n(segment 69016 648 true true false)\n(subarch v8)\n(symbol-chunk 1652 20 1652)\n(symbol-chunk 1600 52 1600)\n(symbol-chunk 1536 28 1536)\n(symbol-value 1652 1652)\n(symbol-value 1680 1680)\n(symbol-value 1728 1728)\n(symbol-value 1792 1792)\n(symbol-value 1872 1872)\n(symbol-value 1876 1876)\n(symbol-value 1600 1600)\n(symbol-value 1536 1536)\n(symbol-value 1408 1408)\n(symbol-value 0 0)\n(system \"\")\n(vendor \"\")\n"), -Attr("abi-name","\"aarch64-linux-gnu-elf\"")]), -Sections([Section(".shstrtab", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x40\x06\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xd8\x1b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x38\x00\x09\x00\x40\x00\x1c\x00\x1b\x00\x06\x00\x00\x00\x04\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x04\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x48\x08\x00\x00\x00\x00\x00\x00\x48\x08\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x01\x00\x00\x00\x06\x00\x00\x00\x98\x0d\x00\x00\x00\x00\x00\x00\x98\x0d"), -Section(".strtab", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x40\x06\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xd8\x1b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x38\x00\x09\x00\x40\x00\x1c\x00\x1b\x00\x06\x00\x00\x00\x04\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x04\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x48\x08\x00\x00\x00\x00\x00\x00\x48\x08\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x01\x00\x00\x00\x06\x00\x00\x00\x98\x0d\x00\x00\x00\x00\x00\x00\x98\x0d\x01\x00\x00\x00\x00\x00\x98\x0d\x01\x00\x00\x00\x00\x00\x78\x02\x00\x00\x00\x00\x00\x00\x88\x02\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x02\x00\x00\x00\x06\x00\x00\x00\xa8\x0d\x00\x00\x00\x00\x00\x00\xa8\x0d\x01\x00\x00\x00\x00\x00\xa8\x0d\x01\x00\x00\x00\x00\x00\xf0\x01\x00\x00\x00\x00\x00\x00\xf0\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x04\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x50\xe5\x74\x64\x04\x00\x00\x00\x6c\x07\x00\x00\x00\x00\x00\x00\x6c\x07\x00\x00\x00\x00\x00\x00\x6c\x07\x00\x00\x00\x00\x00\x00\x3c\x00\x00\x00\x00\x00\x00\x00\x3c\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x51\xe5\x74\x64\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x52\xe5\x74\x64\x04\x00\x00\x00\x98\x0d\x00\x00\x00\x00\x00\x00\x98\x0d\x01\x00\x00\x00\x00\x00\x98\x0d\x01\x00\x00\x00\x00\x00\x68\x02\x00\x00\x00\x00\x00\x00\x68\x02\x00\x00\x00"), -Section(".comment", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x40\x06\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xd8\x1b\x00"), -Section(".interp", 0x238, "\x2f\x6c\x69\x62\x2f\x6c\x64\x2d\x6c\x69\x6e\x75\x78\x2d\x61\x61\x72\x63\x68\x36\x34\x2e\x73\x6f\x2e\x31\x00"), -Section(".note.gnu.build-id", 0x254, "\x04\x00\x00\x00\x14\x00\x00\x00\x03\x00\x00\x00\x47\x4e\x55\x00\xaf\xe4\x1d\x1f\x2a\x99\x02\x3d\x61\x84\xa0\x8c\x63\xb5\x51\x1b\x34\x51\xb7\x76"), -Section(".note.ABI-tag", 0x278, "\x04\x00\x00\x00\x10\x00\x00\x00\x01\x00\x00\x00\x47\x4e\x55\x00\x00\x00\x00\x00\x03\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00"), -Section(".gnu.hash", 0x298, "\x01\x00\x00\x00\x01\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".dynsym", 0x2B8, "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x0b\x00\x80\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x16\x00\x00\x10\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x48\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x22\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x22\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x73\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".dynstr", 0x390, "\x00\x5f\x5f\x63\x78\x61\x5f\x66\x69\x6e\x61\x6c\x69\x7a\x65\x00\x5f\x5f\x6c\x69\x62\x63\x5f\x73\x74\x61\x72\x74\x5f\x6d\x61\x69\x6e\x00\x61\x62\x6f\x72\x74\x00\x6c\x69\x62\x63\x2e\x73\x6f\x2e\x36\x00\x47\x4c\x49\x42\x43\x5f\x32\x2e\x31\x37\x00\x47\x4c\x49\x42\x43\x5f\x32\x2e\x33\x34\x00\x5f\x49\x54\x4d\x5f\x64\x65\x72\x65\x67\x69\x73\x74\x65\x72\x54\x4d\x43\x6c\x6f\x6e\x65\x54\x61\x62\x6c\x65\x00\x5f\x5f\x67\x6d\x6f\x6e\x5f\x73\x74\x61\x72\x74\x5f\x5f\x00\x5f\x49\x54\x4d\x5f\x72\x65\x67\x69\x73\x74\x65\x72\x54\x4d\x43\x6c\x6f\x6e\x65\x54\x61\x62\x6c\x65\x00"), -Section(".gnu.version", 0x41E, "\x00\x00\x00\x00\x00\x00\x02\x00\x01\x00\x03\x00\x01\x00\x03\x00\x01\x00"), -Section(".gnu.version_r", 0x430, "\x01\x00\x02\x00\x28\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x97\x91\x96\x06\x00\x00\x03\x00\x32\x00\x00\x00\x10\x00\x00\x00\xb4\x91\x96\x06\x00\x00\x02\x00\x3d\x00\x00\x00\x00\x00\x00\x00"), -Section(".rela.dyn", 0x460, "\x98\x0d\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x50\x07\x00\x00\x00\x00\x00\x00\xa0\x0d\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\xf0\x0f\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x00\x06\x00\x00\x00\x00\x00\x00\x08\x10\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x08\x10\x01\x00\x00\x00\x00\x00\xd8\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe0\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe8\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xf8\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".rela.plt", 0x520, "\xb0\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xb8\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xc0\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xc8\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".init", 0x580, "\x1f\x20\x03\xd5\xfd\x7b\xbf\xa9\xfd\x03\x00\x91\x3a\x00\x00\x94\xfd\x7b\xc1\xa8\xc0\x03\x5f\xd6"), -Section(".plt", 0x5A0, "\xf0\x7b\xbf\xa9\x90\x00\x00\x90\x11\xd6\x47\xf9\x10\xa2\x3e\x91\x20\x02\x1f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x90\x00\x00\x90\x11\xda\x47\xf9\x10\xc2\x3e\x91\x20\x02\x1f\xd6\x90\x00\x00\x90\x11\xde\x47\xf9\x10\xe2\x3e\x91\x20\x02\x1f\xd6\x90\x00\x00\x90\x11\xe2\x47\xf9\x10\x02\x3f\x91\x20\x02\x1f\xd6\x90\x00\x00\x90\x11\xe6\x47\xf9\x10\x22\x3f\x91\x20\x02\x1f\xd6"), -Section(".fini", 0x754, "\x1f\x20\x03\xd5\xfd\x7b\xbf\xa9\xfd\x03\x00\x91\xfd\x7b\xc1\xa8\xc0\x03\x5f\xd6"), -Section(".rodata", 0x768, "\x01\x00\x02\x00"), -Section(".eh_frame_hdr", 0x76C, "\x01\x1b\x03\x3b\x38\x00\x00\x00\x06\x00\x00\x00\x94\xfe\xff\xff\xc4\x00\x00\x00\xd4\xfe\xff\xff\x50\x00\x00\x00\x24\xff\xff\xff\x64\x00\x00\x00\x54\xff\xff\xff\x78\x00\x00\x00\x94\xff\xff\xff\x8c\x00\x00\x00\xe4\xff\xff\xff\xb0\x00\x00\x00"), -Section(".eh_frame", 0x7A8, "\x10\x00\x00\x00\x00\x00\x00\x00\x01\x7a\x52\x00\x04\x78\x1e\x01\x1b\x0c\x1f\x00\x10\x00\x00\x00\x18\x00\x00\x00\x7c\xfe\xff\xff\x34\x00\x00\x00\x00\x41\x07\x1e\x10\x00\x00\x00\x2c\x00\x00\x00\xb8\xfe\xff\xff\x30\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x40\x00\x00\x00\xd4\xfe\xff\xff\x3c\x00\x00\x00\x00\x00\x00\x00\x20\x00\x00\x00\x54\x00\x00\x00\x00\xff\xff\xff\x48\x00\x00\x00\x00\x41\x0e\x20\x9d\x04\x9e\x03\x42\x93\x02\x4e\xde\xdd\xd3\x0e\x00\x00\x00\x00\x10\x00\x00\x00\x78\x00\x00\x00\x2c\xff\xff\xff\x04\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x8c\x00\x00\x00\xc8\xfd\xff\xff\x1c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".fini_array", 0x10DA0, "\x00\x07\x00\x00\x00\x00\x00\x00"), -Section(".dynamic", 0x10DA8, "\x01\x00\x00\x00\x00\x00\x00\x00\x28\x00\x00\x00\x00\x00\x00\x00\x0c\x00\x00\x00\x00\x00\x00\x00\x80\x05\x00\x00\x00\x00\x00\x00\x0d\x00\x00\x00\x00\x00\x00\x00\x54\x07\x00\x00\x00\x00\x00\x00\x19\x00\x00\x00\x00\x00\x00\x00\x98\x0d\x01\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x1a\x00\x00\x00\x00\x00\x00\x00\xa0\x0d\x01\x00\x00\x00\x00\x00\x1c\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\xf5\xfe\xff\x6f\x00\x00\x00\x00\x98\x02\x00\x00\x00\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x90\x03\x00\x00\x00\x00\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\xb8\x02\x00\x00\x00\x00\x00\x00\x0a\x00\x00\x00\x00\x00\x00\x00\x8d\x00\x00\x00\x00\x00\x00\x00\x0b\x00\x00\x00\x00\x00\x00\x00\x18\x00\x00\x00\x00\x00\x00\x00\x15\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x98\x0f\x01\x00\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x60\x00\x00\x00\x00\x00\x00\x00\x14\x00\x00\x00\x00\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x17\x00\x00\x00\x00\x00\x00\x00\x20\x05\x00\x00\x00\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x60\x04\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\xc0\x00\x00\x00\x00\x00\x00\x00\x09\x00\x00\x00\x00\x00\x00\x00\x18\x00\x00\x00\x00\x00\x00\x00\x1e\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\xfb\xff\xff\x6f\x00\x00\x00\x00\x01\x00\x00\x08\x00\x00\x00\x00\xfe\xff\xff\x6f\x00\x00\x00\x00\x30\x04\x00\x00\x00\x00\x00\x00\xff\xff\xff\x6f\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\xf0\xff\xff\x6f\x00\x00\x00\x00\x1e\x04\x00\x00\x00\x00\x00\x00\xf9\xff\xff\x6f\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".init_array", 0x10D98, "\x50\x07\x00\x00\x00\x00\x00\x00"), -Section(".got", 0x10F98, "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xa0\x05\x00\x00\x00\x00\x00\x00\xa0\x05\x00\x00\x00\x00\x00\x00\xa0\x05\x00\x00\x00\x00\x00\x00\xa0\x05\x00\x00\x00\x00\x00\x00\xa8\x0d\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".data", 0x11000, "\x00\x00\x00\x00\x00\x00\x00\x00\x08\x10\x01\x00\x00\x00\x00\x00"), -Section(".text", 0x600, "\x81\x00\x00\xb0\x22\x50\x00\x91\x43\x00\x80\x52\x00\x00\x80\x52\x3f\x14\x00\xb9\x43\x04\x00\xb9\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1d\x00\x80\xd2\x1e\x00\x80\xd2\xe5\x03\x00\xaa\xe1\x03\x40\xf9\xe2\x23\x00\x91\xe6\x03\x00\x91\x80\x00\x00\x90\x00\xf8\x47\xf9\x03\x00\x80\xd2\x04\x00\x80\xd2\xd5\xff\xff\x97\xe0\xff\xff\x97\x80\x00\x00\x90\x00\xf4\x47\xf9\x40\x00\x00\xb4\xd8\xff\xff\x17\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x80\x00\x00\xb0\x00\x40\x00\x91\x81\x00\x00\xb0\x21\x40\x00\x91\x3f\x00\x00\xeb\xc0\x00\x00\x54\x81\x00\x00\x90\x21\xec\x47\xf9\x61\x00\x00\xb4\xf0\x03\x01\xaa\x00\x02\x1f\xd6\xc0\x03\x5f\xd6\x80\x00\x00\xb0\x00\x40\x00\x91\x81\x00\x00\xb0\x21\x40\x00\x91\x21\x00\x00\xcb\x22\xfc\x7f\xd3\x41\x0c\x81\x8b\x21\xfc\x41\x93\xc1\x00\x00\xb4\x82\x00\x00\x90\x42\xfc\x47\xf9\x62\x00\x00\xb4\xf0\x03\x02\xaa\x00\x02\x1f\xd6\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\xfd\x7b\xbe\xa9\xfd\x03\x00\x91\xf3\x0b\x00\xf9\x93\x00\x00\xb0\x60\x42\x40\x39\x40\x01\x00\x35\x80\x00\x00\x90\x00\xf0\x47\xf9\x80\x00\x00\xb4\x80\x00\x00\xb0\x00\x04\x40\xf9\xa9\xff\xff\x97\xd8\xff\xff\x97\x20\x00\x80\x52\x60\x42\x00\x39\xf3\x0b\x40\xf9\xfd\x7b\xc2\xa8\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\xdc\xff\xff\x17")]), -Memmap([Annotation(Region(0x0,0x847), Attr("segment","02 0 2120")), -Annotation(Region(0x600,0x61B), Attr("symbol","\"main\"")), -Annotation(Region(0x0,0xF9), Attr("section","\".shstrtab\"")), -Annotation(Region(0x0,0x22C), Attr("section","\".strtab\"")), -Annotation(Region(0x0,0x2A), Attr("section","\".comment\"")), -Annotation(Region(0x238,0x252), Attr("section","\".interp\"")), -Annotation(Region(0x254,0x277), Attr("section","\".note.gnu.build-id\"")), -Annotation(Region(0x278,0x297), Attr("section","\".note.ABI-tag\"")), -Annotation(Region(0x298,0x2B3), Attr("section","\".gnu.hash\"")), -Annotation(Region(0x2B8,0x38F), Attr("section","\".dynsym\"")), -Annotation(Region(0x390,0x41C), Attr("section","\".dynstr\"")), -Annotation(Region(0x41E,0x42F), Attr("section","\".gnu.version\"")), -Annotation(Region(0x430,0x45F), Attr("section","\".gnu.version_r\"")), -Annotation(Region(0x460,0x51F), Attr("section","\".rela.dyn\"")), -Annotation(Region(0x520,0x57F), Attr("section","\".rela.plt\"")), -Annotation(Region(0x580,0x597), Attr("section","\".init\"")), -Annotation(Region(0x5A0,0x5FF), Attr("section","\".plt\"")), -Annotation(Region(0x580,0x597), Attr("code-region","()")), -Annotation(Region(0x5A0,0x5FF), Attr("code-region","()")), -Annotation(Region(0x600,0x61B), Attr("symbol-info","main 0x600 28")), -Annotation(Region(0x640,0x673), Attr("symbol","\"_start\"")), -Annotation(Region(0x640,0x673), Attr("symbol-info","_start 0x640 52")), -Annotation(Region(0x674,0x687), Attr("symbol","\"call_weak_fn\"")), -Annotation(Region(0x674,0x687), Attr("symbol-info","call_weak_fn 0x674 20")), -Annotation(Region(0x754,0x767), Attr("section","\".fini\"")), -Annotation(Region(0x768,0x76B), Attr("section","\".rodata\"")), -Annotation(Region(0x76C,0x7A7), Attr("section","\".eh_frame_hdr\"")), -Annotation(Region(0x7A8,0x847), Attr("section","\".eh_frame\"")), -Annotation(Region(0x10D98,0x1100F), Attr("segment","03 0x10D98 648")), -Annotation(Region(0x10DA0,0x10DA7), Attr("section","\".fini_array\"")), -Annotation(Region(0x10DA8,0x10F97), Attr("section","\".dynamic\"")), -Annotation(Region(0x10D98,0x10D9F), Attr("section","\".init_array\"")), -Annotation(Region(0x10F98,0x10FFF), Attr("section","\".got\"")), -Annotation(Region(0x11000,0x1100F), Attr("section","\".data\"")), -Annotation(Region(0x600,0x753), Attr("section","\".text\"")), -Annotation(Region(0x600,0x753), Attr("code-region","()")), -Annotation(Region(0x754,0x767), Attr("code-region","()"))]), -Program(Tid(1_514, "%000005ea"), Attrs([]), - Subs([Sub(Tid(1_464, "@__cxa_finalize"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x5D0"), -Attr("stub","()")]), "__cxa_finalize", Args([Arg(Tid(1_515, "%000005eb"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("__cxa_finalize_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(860, "@__cxa_finalize"), - Attrs([Attr("address","0x5D0")]), Phis([]), -Defs([Def(Tid(1_108, "%00000454"), Attrs([Attr("address","0x5D0"), -Attr("insn","adrp x16, #65536")]), Var("R16",Imm(64)), Int(65536,64)), -Def(Tid(1_115, "%0000045b"), Attrs([Attr("address","0x5D4"), -Attr("insn","ldr x17, [x16, #0xfb8]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(4024,64)),LittleEndian(),64)), -Def(Tid(1_121, "%00000461"), Attrs([Attr("address","0x5D8"), -Attr("insn","add x16, x16, #0xfb8")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(4024,64)))]), Jmps([Call(Tid(1_126, "%00000466"), - Attrs([Attr("address","0x5DC"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), -Sub(Tid(1_465, "@__do_global_dtors_aux"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x700")]), - "__do_global_dtors_aux", Args([Arg(Tid(1_516, "%000005ec"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("__do_global_dtors_aux_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(713, "@__do_global_dtors_aux"), - Attrs([Attr("address","0x700")]), Phis([]), Defs([Def(Tid(717, "%000002cd"), - Attrs([Attr("address","0x700"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("#3",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(18446744073709551584,64))), -Def(Tid(723, "%000002d3"), Attrs([Attr("address","0x700"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("#3",Imm(64)),Var("R29",Imm(64)),LittleEndian(),64)), -Def(Tid(729, "%000002d9"), Attrs([Attr("address","0x700"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("#3",Imm(64)),Int(8,64)),Var("R30",Imm(64)),LittleEndian(),64)), -Def(Tid(733, "%000002dd"), Attrs([Attr("address","0x700"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("R31",Imm(64)), -Var("#3",Imm(64))), Def(Tid(739, "%000002e3"), - Attrs([Attr("address","0x704"), Attr("insn","mov x29, sp")]), - Var("R29",Imm(64)), Var("R31",Imm(64))), Def(Tid(747, "%000002eb"), - Attrs([Attr("address","0x708"), Attr("insn","str x19, [sp, #0x10]")]), - Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(16,64)),Var("R19",Imm(64)),LittleEndian(),64)), -Def(Tid(752, "%000002f0"), Attrs([Attr("address","0x70C"), -Attr("insn","adrp x19, #69632")]), Var("R19",Imm(64)), Int(69632,64)), -Def(Tid(759, "%000002f7"), Attrs([Attr("address","0x710"), -Attr("insn","ldrb w0, [x19, #0x10]")]), Var("R0",Imm(64)), -UNSIGNED(64,Load(Var("mem",Mem(64,8)),PLUS(Var("R19",Imm(64)),Int(16,64)),LittleEndian(),8)))]), -Jmps([Goto(Tid(766, "%000002fe"), Attrs([Attr("address","0x714"), -Attr("insn","cbnz w0, #0x28")]), - NEQ(Extract(31,0,Var("R0",Imm(64))),Int(0,32)), -Direct(Tid(764, "%000002fc"))), Goto(Tid(1_504, "%000005e0"), Attrs([]), - Int(1,1), Direct(Tid(805, "%00000325")))])), Blk(Tid(805, "%00000325"), - Attrs([Attr("address","0x718")]), Phis([]), Defs([Def(Tid(808, "%00000328"), - Attrs([Attr("address","0x718"), Attr("insn","adrp x0, #65536")]), - Var("R0",Imm(64)), Int(65536,64)), Def(Tid(815, "%0000032f"), - Attrs([Attr("address","0x71C"), Attr("insn","ldr x0, [x0, #0xfe0]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(4064,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(821, "%00000335"), Attrs([Attr("address","0x720"), -Attr("insn","cbz x0, #0x10")]), EQ(Var("R0",Imm(64)),Int(0,64)), -Direct(Tid(819, "%00000333"))), Goto(Tid(1_505, "%000005e1"), Attrs([]), - Int(1,1), Direct(Tid(844, "%0000034c")))])), Blk(Tid(844, "%0000034c"), - Attrs([Attr("address","0x724")]), Phis([]), Defs([Def(Tid(847, "%0000034f"), - Attrs([Attr("address","0x724"), Attr("insn","adrp x0, #69632")]), - Var("R0",Imm(64)), Int(69632,64)), Def(Tid(854, "%00000356"), - Attrs([Attr("address","0x728"), Attr("insn","ldr x0, [x0, #0x8]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(859, "%0000035b"), Attrs([Attr("address","0x72C"), -Attr("insn","bl #-0x15c")]), Var("R30",Imm(64)), Int(1840,64))]), -Jmps([Call(Tid(862, "%0000035e"), Attrs([Attr("address","0x72C"), -Attr("insn","bl #-0x15c")]), Int(1,1), -(Direct(Tid(1_464, "@__cxa_finalize")),Direct(Tid(819, "%00000333"))))])), -Blk(Tid(819, "%00000333"), Attrs([Attr("address","0x730")]), Phis([]), -Defs([Def(Tid(827, "%0000033b"), Attrs([Attr("address","0x730"), -Attr("insn","bl #-0xa0")]), Var("R30",Imm(64)), Int(1844,64))]), -Jmps([Call(Tid(829, "%0000033d"), Attrs([Attr("address","0x730"), -Attr("insn","bl #-0xa0")]), Int(1,1), -(Direct(Tid(1_478, "@deregister_tm_clones")),Direct(Tid(831, "%0000033f"))))])), -Blk(Tid(831, "%0000033f"), Attrs([Attr("address","0x734")]), Phis([]), -Defs([Def(Tid(834, "%00000342"), Attrs([Attr("address","0x734"), -Attr("insn","mov w0, #0x1")]), Var("R0",Imm(64)), Int(1,64)), -Def(Tid(842, "%0000034a"), Attrs([Attr("address","0x738"), -Attr("insn","strb w0, [x19, #0x10]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R19",Imm(64)),Int(16,64)),Extract(7,0,Var("R0",Imm(64))),LittleEndian(),8))]), -Jmps([Goto(Tid(1_506, "%000005e2"), Attrs([]), Int(1,1), -Direct(Tid(764, "%000002fc")))])), Blk(Tid(764, "%000002fc"), - Attrs([Attr("address","0x73C")]), Phis([]), Defs([Def(Tid(774, "%00000306"), - Attrs([Attr("address","0x73C"), Attr("insn","ldr x19, [sp, #0x10]")]), - Var("R19",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(16,64)),LittleEndian(),64)), -Def(Tid(781, "%0000030d"), Attrs([Attr("address","0x740"), -Attr("insn","ldp x29, x30, [sp], #0x20")]), Var("R29",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(786, "%00000312"), Attrs([Attr("address","0x740"), -Attr("insn","ldp x29, x30, [sp], #0x20")]), Var("R30",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(790, "%00000316"), Attrs([Attr("address","0x740"), -Attr("insn","ldp x29, x30, [sp], #0x20")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(32,64)))]), Jmps([Call(Tid(795, "%0000031b"), - Attrs([Attr("address","0x744"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), Sub(Tid(1_469, "@__libc_start_main"), - Attrs([Attr("c.proto","signed (*)(signed (*)(signed , char** , char** );* main, signed , char** , \nvoid* auxv)"), -Attr("address","0x5C0"), Attr("stub","()")]), "__libc_start_main", - Args([Arg(Tid(1_517, "%000005ed"), - Attrs([Attr("c.layout","**[ : 64]"), -Attr("c.data","Top:u64 ptr ptr"), -Attr("c.type","signed (*)(signed , char** , char** );*")]), - Var("__libc_start_main_main",Imm(64)), Var("R0",Imm(64)), In()), -Arg(Tid(1_518, "%000005ee"), Attrs([Attr("c.layout","[signed : 32]"), -Attr("c.data","Top:u32"), Attr("c.type","signed")]), - Var("__libc_start_main_arg2",Imm(32)), LOW(32,Var("R1",Imm(64))), In()), -Arg(Tid(1_519, "%000005ef"), Attrs([Attr("c.layout","**[char : 8]"), -Attr("c.data","Top:u8 ptr ptr"), Attr("c.type","char**")]), - Var("__libc_start_main_arg3",Imm(64)), Var("R2",Imm(64)), Both()), -Arg(Tid(1_520, "%000005f0"), Attrs([Attr("c.layout","*[ : 8]"), -Attr("c.data","{} ptr"), Attr("c.type","void*")]), - Var("__libc_start_main_auxv",Imm(64)), Var("R3",Imm(64)), Both()), -Arg(Tid(1_521, "%000005f1"), Attrs([Attr("c.layout","[signed : 32]"), -Attr("c.data","Top:u32"), Attr("c.type","signed")]), - Var("__libc_start_main_result",Imm(32)), LOW(32,Var("R0",Imm(64))), -Out())]), Blks([Blk(Tid(546, "@__libc_start_main"), - Attrs([Attr("address","0x5C0")]), Phis([]), -Defs([Def(Tid(1_086, "%0000043e"), Attrs([Attr("address","0x5C0"), -Attr("insn","adrp x16, #65536")]), Var("R16",Imm(64)), Int(65536,64)), -Def(Tid(1_093, "%00000445"), Attrs([Attr("address","0x5C4"), -Attr("insn","ldr x17, [x16, #0xfb0]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(4016,64)),LittleEndian(),64)), -Def(Tid(1_099, "%0000044b"), Attrs([Attr("address","0x5C8"), -Attr("insn","add x16, x16, #0xfb0")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(4016,64)))]), Jmps([Call(Tid(1_104, "%00000450"), - Attrs([Attr("address","0x5CC"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), Sub(Tid(1_470, "@_fini"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x754")]), - "_fini", Args([Arg(Tid(1_522, "%000005f2"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("_fini_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(31, "@_fini"), - Attrs([Attr("address","0x754")]), Phis([]), Defs([Def(Tid(37, "%00000025"), - Attrs([Attr("address","0x758"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("#0",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(18446744073709551600,64))), -Def(Tid(43, "%0000002b"), Attrs([Attr("address","0x758"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("#0",Imm(64)),Var("R29",Imm(64)),LittleEndian(),64)), -Def(Tid(49, "%00000031"), Attrs([Attr("address","0x758"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("#0",Imm(64)),Int(8,64)),Var("R30",Imm(64)),LittleEndian(),64)), -Def(Tid(53, "%00000035"), Attrs([Attr("address","0x758"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("R31",Imm(64)), -Var("#0",Imm(64))), Def(Tid(59, "%0000003b"), Attrs([Attr("address","0x75C"), -Attr("insn","mov x29, sp")]), Var("R29",Imm(64)), Var("R31",Imm(64))), -Def(Tid(66, "%00000042"), Attrs([Attr("address","0x760"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R29",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(71, "%00000047"), Attrs([Attr("address","0x760"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R30",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(75, "%0000004b"), Attrs([Attr("address","0x760"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(16,64)))]), Jmps([Call(Tid(80, "%00000050"), - Attrs([Attr("address","0x764"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), Sub(Tid(1_471, "@_init"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x580")]), - "_init", Args([Arg(Tid(1_523, "%000005f3"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("_init_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(1_290, "@_init"), - Attrs([Attr("address","0x580")]), Phis([]), -Defs([Def(Tid(1_296, "%00000510"), Attrs([Attr("address","0x584"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("#5",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(18446744073709551600,64))), -Def(Tid(1_302, "%00000516"), Attrs([Attr("address","0x584"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("#5",Imm(64)),Var("R29",Imm(64)),LittleEndian(),64)), -Def(Tid(1_308, "%0000051c"), Attrs([Attr("address","0x584"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("#5",Imm(64)),Int(8,64)),Var("R30",Imm(64)),LittleEndian(),64)), -Def(Tid(1_312, "%00000520"), Attrs([Attr("address","0x584"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("R31",Imm(64)), -Var("#5",Imm(64))), Def(Tid(1_318, "%00000526"), - Attrs([Attr("address","0x588"), Attr("insn","mov x29, sp")]), - Var("R29",Imm(64)), Var("R31",Imm(64))), Def(Tid(1_323, "%0000052b"), - Attrs([Attr("address","0x58C"), Attr("insn","bl #0xe8")]), - Var("R30",Imm(64)), Int(1424,64))]), Jmps([Call(Tid(1_325, "%0000052d"), - Attrs([Attr("address","0x58C"), Attr("insn","bl #0xe8")]), Int(1,1), -(Direct(Tid(1_476, "@call_weak_fn")),Direct(Tid(1_327, "%0000052f"))))])), -Blk(Tid(1_327, "%0000052f"), Attrs([Attr("address","0x590")]), Phis([]), -Defs([Def(Tid(1_332, "%00000534"), Attrs([Attr("address","0x590"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R29",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(1_337, "%00000539"), Attrs([Attr("address","0x590"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R30",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(1_341, "%0000053d"), Attrs([Attr("address","0x590"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(16,64)))]), Jmps([Call(Tid(1_346, "%00000542"), - Attrs([Attr("address","0x594"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), Sub(Tid(1_472, "@_start"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x640"), -Attr("entry-point","()")]), "_start", Args([Arg(Tid(1_524, "%000005f4"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("_start_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(483, "@_start"), - Attrs([Attr("address","0x640")]), Phis([]), Defs([Def(Tid(488, "%000001e8"), - Attrs([Attr("address","0x644"), Attr("insn","mov x29, #0x0")]), - Var("R29",Imm(64)), Int(0,64)), Def(Tid(493, "%000001ed"), - Attrs([Attr("address","0x648"), Attr("insn","mov x30, #0x0")]), - Var("R30",Imm(64)), Int(0,64)), Def(Tid(499, "%000001f3"), - Attrs([Attr("address","0x64C"), Attr("insn","mov x5, x0")]), - Var("R5",Imm(64)), Var("R0",Imm(64))), Def(Tid(506, "%000001fa"), - Attrs([Attr("address","0x650"), Attr("insn","ldr x1, [sp]")]), - Var("R1",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(512, "%00000200"), Attrs([Attr("address","0x654"), -Attr("insn","add x2, sp, #0x8")]), Var("R2",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(8,64))), Def(Tid(518, "%00000206"), - Attrs([Attr("address","0x658"), Attr("insn","mov x6, sp")]), - Var("R6",Imm(64)), Var("R31",Imm(64))), Def(Tid(523, "%0000020b"), - Attrs([Attr("address","0x65C"), Attr("insn","adrp x0, #65536")]), - Var("R0",Imm(64)), Int(65536,64)), Def(Tid(530, "%00000212"), - Attrs([Attr("address","0x660"), Attr("insn","ldr x0, [x0, #0xff0]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(4080,64)),LittleEndian(),64)), -Def(Tid(535, "%00000217"), Attrs([Attr("address","0x664"), -Attr("insn","mov x3, #0x0")]), Var("R3",Imm(64)), Int(0,64)), -Def(Tid(540, "%0000021c"), Attrs([Attr("address","0x668"), -Attr("insn","mov x4, #0x0")]), Var("R4",Imm(64)), Int(0,64)), -Def(Tid(545, "%00000221"), Attrs([Attr("address","0x66C"), -Attr("insn","bl #-0xac")]), Var("R30",Imm(64)), Int(1648,64))]), -Jmps([Call(Tid(548, "%00000224"), Attrs([Attr("address","0x66C"), -Attr("insn","bl #-0xac")]), Int(1,1), -(Direct(Tid(1_469, "@__libc_start_main")),Direct(Tid(550, "%00000226"))))])), -Blk(Tid(550, "%00000226"), Attrs([Attr("address","0x670")]), Phis([]), -Defs([Def(Tid(553, "%00000229"), Attrs([Attr("address","0x670"), -Attr("insn","bl #-0x80")]), Var("R30",Imm(64)), Int(1652,64))]), -Jmps([Call(Tid(556, "%0000022c"), Attrs([Attr("address","0x670"), -Attr("insn","bl #-0x80")]), Int(1,1), -(Direct(Tid(1_475, "@abort")),Direct(Tid(1_507, "%000005e3"))))])), -Blk(Tid(1_507, "%000005e3"), Attrs([]), Phis([]), Defs([]), -Jmps([Call(Tid(1_508, "%000005e4"), Attrs([]), Int(1,1), -(Direct(Tid(1_476, "@call_weak_fn")),))]))])), Sub(Tid(1_475, "@abort"), - Attrs([Attr("noreturn","()"), Attr("c.proto","void (*)(void)"), -Attr("address","0x5F0"), Attr("stub","()")]), "abort", Args([]), -Blks([Blk(Tid(554, "@abort"), Attrs([Attr("address","0x5F0")]), Phis([]), -Defs([Def(Tid(1_152, "%00000480"), Attrs([Attr("address","0x5F0"), -Attr("insn","adrp x16, #65536")]), Var("R16",Imm(64)), Int(65536,64)), -Def(Tid(1_159, "%00000487"), Attrs([Attr("address","0x5F4"), -Attr("insn","ldr x17, [x16, #0xfc8]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(4040,64)),LittleEndian(),64)), -Def(Tid(1_165, "%0000048d"), Attrs([Attr("address","0x5F8"), -Attr("insn","add x16, x16, #0xfc8")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(4040,64)))]), Jmps([Call(Tid(1_170, "%00000492"), - Attrs([Attr("address","0x5FC"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), Sub(Tid(1_476, "@call_weak_fn"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x674")]), - "call_weak_fn", Args([Arg(Tid(1_525, "%000005f5"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("call_weak_fn_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(558, "@call_weak_fn"), - Attrs([Attr("address","0x674")]), Phis([]), Defs([Def(Tid(561, "%00000231"), - Attrs([Attr("address","0x674"), Attr("insn","adrp x0, #65536")]), - Var("R0",Imm(64)), Int(65536,64)), Def(Tid(568, "%00000238"), - Attrs([Attr("address","0x678"), Attr("insn","ldr x0, [x0, #0xfe8]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(4072,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(574, "%0000023e"), Attrs([Attr("address","0x67C"), -Attr("insn","cbz x0, #0x8")]), EQ(Var("R0",Imm(64)),Int(0,64)), -Direct(Tid(572, "%0000023c"))), Goto(Tid(1_509, "%000005e5"), Attrs([]), - Int(1,1), Direct(Tid(924, "%0000039c")))])), Blk(Tid(572, "%0000023c"), - Attrs([Attr("address","0x684")]), Phis([]), Defs([]), -Jmps([Call(Tid(580, "%00000244"), Attrs([Attr("address","0x684"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))])), -Blk(Tid(924, "%0000039c"), Attrs([Attr("address","0x680")]), Phis([]), -Defs([]), Jmps([Goto(Tid(927, "%0000039f"), Attrs([Attr("address","0x680"), -Attr("insn","b #-0xa0")]), Int(1,1), Direct(Tid(925, "@__gmon_start__")))])), -Blk(Tid(925, "@__gmon_start__"), Attrs([Attr("address","0x5E0")]), Phis([]), -Defs([Def(Tid(1_130, "%0000046a"), Attrs([Attr("address","0x5E0"), -Attr("insn","adrp x16, #65536")]), Var("R16",Imm(64)), Int(65536,64)), -Def(Tid(1_137, "%00000471"), Attrs([Attr("address","0x5E4"), -Attr("insn","ldr x17, [x16, #0xfc0]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(4032,64)),LittleEndian(),64)), -Def(Tid(1_143, "%00000477"), Attrs([Attr("address","0x5E8"), -Attr("insn","add x16, x16, #0xfc0")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(4032,64)))]), Jmps([Call(Tid(1_148, "%0000047c"), - Attrs([Attr("address","0x5EC"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), -Sub(Tid(1_478, "@deregister_tm_clones"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x690")]), - "deregister_tm_clones", Args([Arg(Tid(1_526, "%000005f6"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("deregister_tm_clones_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(586, "@deregister_tm_clones"), - Attrs([Attr("address","0x690")]), Phis([]), Defs([Def(Tid(589, "%0000024d"), - Attrs([Attr("address","0x690"), Attr("insn","adrp x0, #69632")]), - Var("R0",Imm(64)), Int(69632,64)), Def(Tid(595, "%00000253"), - Attrs([Attr("address","0x694"), Attr("insn","add x0, x0, #0x10")]), - Var("R0",Imm(64)), PLUS(Var("R0",Imm(64)),Int(16,64))), -Def(Tid(600, "%00000258"), Attrs([Attr("address","0x698"), -Attr("insn","adrp x1, #69632")]), Var("R1",Imm(64)), Int(69632,64)), -Def(Tid(606, "%0000025e"), Attrs([Attr("address","0x69C"), -Attr("insn","add x1, x1, #0x10")]), Var("R1",Imm(64)), -PLUS(Var("R1",Imm(64)),Int(16,64))), Def(Tid(612, "%00000264"), - Attrs([Attr("address","0x6A0"), Attr("insn","cmp x1, x0")]), - Var("#1",Imm(64)), NOT(Var("R0",Imm(64)))), Def(Tid(617, "%00000269"), - Attrs([Attr("address","0x6A0"), Attr("insn","cmp x1, x0")]), - Var("#2",Imm(64)), PLUS(Var("R1",Imm(64)),NOT(Var("R0",Imm(64))))), -Def(Tid(623, "%0000026f"), Attrs([Attr("address","0x6A0"), -Attr("insn","cmp x1, x0")]), Var("VF",Imm(1)), -NEQ(SIGNED(65,PLUS(Var("#2",Imm(64)),Int(1,64))),PLUS(PLUS(SIGNED(65,Var("R1",Imm(64))),SIGNED(65,Var("#1",Imm(64)))),Int(1,65)))), -Def(Tid(629, "%00000275"), Attrs([Attr("address","0x6A0"), -Attr("insn","cmp x1, x0")]), Var("CF",Imm(1)), -NEQ(UNSIGNED(65,PLUS(Var("#2",Imm(64)),Int(1,64))),PLUS(PLUS(UNSIGNED(65,Var("R1",Imm(64))),UNSIGNED(65,Var("#1",Imm(64)))),Int(1,65)))), -Def(Tid(633, "%00000279"), Attrs([Attr("address","0x6A0"), -Attr("insn","cmp x1, x0")]), Var("ZF",Imm(1)), -EQ(PLUS(Var("#2",Imm(64)),Int(1,64)),Int(0,64))), Def(Tid(637, "%0000027d"), - Attrs([Attr("address","0x6A0"), Attr("insn","cmp x1, x0")]), - Var("NF",Imm(1)), Extract(63,63,PLUS(Var("#2",Imm(64)),Int(1,64))))]), -Jmps([Goto(Tid(643, "%00000283"), Attrs([Attr("address","0x6A4"), -Attr("insn","b.eq #0x18")]), EQ(Var("ZF",Imm(1)),Int(1,1)), -Direct(Tid(641, "%00000281"))), Goto(Tid(1_510, "%000005e6"), Attrs([]), - Int(1,1), Direct(Tid(894, "%0000037e")))])), Blk(Tid(894, "%0000037e"), - Attrs([Attr("address","0x6A8")]), Phis([]), Defs([Def(Tid(897, "%00000381"), - Attrs([Attr("address","0x6A8"), Attr("insn","adrp x1, #65536")]), - Var("R1",Imm(64)), Int(65536,64)), Def(Tid(904, "%00000388"), - Attrs([Attr("address","0x6AC"), Attr("insn","ldr x1, [x1, #0xfd8]")]), - Var("R1",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R1",Imm(64)),Int(4056,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(909, "%0000038d"), Attrs([Attr("address","0x6B0"), -Attr("insn","cbz x1, #0xc")]), EQ(Var("R1",Imm(64)),Int(0,64)), -Direct(Tid(641, "%00000281"))), Goto(Tid(1_511, "%000005e7"), Attrs([]), - Int(1,1), Direct(Tid(913, "%00000391")))])), Blk(Tid(641, "%00000281"), - Attrs([Attr("address","0x6BC")]), Phis([]), Defs([]), -Jmps([Call(Tid(649, "%00000289"), Attrs([Attr("address","0x6BC"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))])), -Blk(Tid(913, "%00000391"), Attrs([Attr("address","0x6B4")]), Phis([]), -Defs([Def(Tid(917, "%00000395"), Attrs([Attr("address","0x6B4"), -Attr("insn","mov x16, x1")]), Var("R16",Imm(64)), Var("R1",Imm(64)))]), -Jmps([Call(Tid(922, "%0000039a"), Attrs([Attr("address","0x6B8"), -Attr("insn","br x16")]), Int(1,1), (Indirect(Var("R16",Imm(64))),))]))])), -Sub(Tid(1_481, "@frame_dummy"), Attrs([Attr("c.proto","signed (*)(void)"), -Attr("address","0x750")]), "frame_dummy", Args([Arg(Tid(1_527, "%000005f7"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("frame_dummy_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(801, "@frame_dummy"), - Attrs([Attr("address","0x750")]), Phis([]), Defs([]), -Jmps([Call(Tid(803, "%00000323"), Attrs([Attr("address","0x750"), -Attr("insn","b #-0x90")]), Int(1,1), -(Direct(Tid(1_483, "@register_tm_clones")),))]))])), Sub(Tid(1_482, "@main"), - Attrs([Attr("c.proto","signed (*)(signed argc, const char** argv)"), -Attr("address","0x600"), Attr("stub","()")]), "main", - Args([Arg(Tid(1_528, "%000005f8"), Attrs([Attr("c.layout","[signed : 32]"), -Attr("c.data","Top:u32"), Attr("c.type","signed")]), - Var("main_argc",Imm(32)), LOW(32,Var("R0",Imm(64))), In()), -Arg(Tid(1_529, "%000005f9"), Attrs([Attr("c.layout","**[char : 8]"), -Attr("c.data","Top:u8 ptr ptr"), Attr("c.type"," const char**")]), - Var("main_argv",Imm(64)), Var("R1",Imm(64)), Both()), -Arg(Tid(1_530, "%000005fa"), Attrs([Attr("c.layout","[signed : 32]"), -Attr("c.data","Top:u32"), Attr("c.type","signed")]), - Var("main_result",Imm(32)), LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(424, "@main"), Attrs([Attr("address","0x600")]), Phis([]), -Defs([Def(Tid(427, "%000001ab"), Attrs([Attr("address","0x600"), -Attr("insn","adrp x1, #69632")]), Var("R1",Imm(64)), Int(69632,64)), -Def(Tid(433, "%000001b1"), Attrs([Attr("address","0x604"), -Attr("insn","add x2, x1, #0x14")]), Var("R2",Imm(64)), -PLUS(Var("R1",Imm(64)),Int(20,64))), Def(Tid(438, "%000001b6"), - Attrs([Attr("address","0x608"), Attr("insn","mov w3, #0x2")]), - Var("R3",Imm(64)), Int(2,64)), Def(Tid(443, "%000001bb"), - Attrs([Attr("address","0x60C"), Attr("insn","mov w0, #0x0")]), - Var("R0",Imm(64)), Int(0,64)), Def(Tid(450, "%000001c2"), - Attrs([Attr("address","0x610"), Attr("insn","str wzr, [x1, #0x14]")]), - Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R1",Imm(64)),Int(20,64)),Int(0,32),LittleEndian(),32)), -Def(Tid(458, "%000001ca"), Attrs([Attr("address","0x614"), -Attr("insn","str w3, [x2, #0x4]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R2",Imm(64)),Int(4,64)),Extract(31,0,Var("R3",Imm(64))),LittleEndian(),32))]), -Jmps([Call(Tid(463, "%000001cf"), Attrs([Attr("address","0x618"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))]))])), -Sub(Tid(1_483, "@register_tm_clones"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x6C0")]), - "register_tm_clones", Args([Arg(Tid(1_531, "%000005fb"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("register_tm_clones_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(651, "@register_tm_clones"), Attrs([Attr("address","0x6C0")]), - Phis([]), Defs([Def(Tid(654, "%0000028e"), Attrs([Attr("address","0x6C0"), -Attr("insn","adrp x0, #69632")]), Var("R0",Imm(64)), Int(69632,64)), -Def(Tid(660, "%00000294"), Attrs([Attr("address","0x6C4"), -Attr("insn","add x0, x0, #0x10")]), Var("R0",Imm(64)), -PLUS(Var("R0",Imm(64)),Int(16,64))), Def(Tid(665, "%00000299"), - Attrs([Attr("address","0x6C8"), Attr("insn","adrp x1, #69632")]), - Var("R1",Imm(64)), Int(69632,64)), Def(Tid(671, "%0000029f"), - Attrs([Attr("address","0x6CC"), Attr("insn","add x1, x1, #0x10")]), - Var("R1",Imm(64)), PLUS(Var("R1",Imm(64)),Int(16,64))), -Def(Tid(678, "%000002a6"), Attrs([Attr("address","0x6D0"), -Attr("insn","sub x1, x1, x0")]), Var("R1",Imm(64)), -PLUS(PLUS(Var("R1",Imm(64)),NOT(Var("R0",Imm(64)))),Int(1,64))), -Def(Tid(684, "%000002ac"), Attrs([Attr("address","0x6D4"), -Attr("insn","lsr x2, x1, #63")]), Var("R2",Imm(64)), -Concat(Int(0,63),Extract(63,63,Var("R1",Imm(64))))), -Def(Tid(691, "%000002b3"), Attrs([Attr("address","0x6D8"), -Attr("insn","add x1, x2, x1, asr #3")]), Var("R1",Imm(64)), -PLUS(Var("R2",Imm(64)),ARSHIFT(Var("R1",Imm(64)),Int(3,3)))), -Def(Tid(697, "%000002b9"), Attrs([Attr("address","0x6DC"), -Attr("insn","asr x1, x1, #1")]), Var("R1",Imm(64)), -SIGNED(64,Extract(63,1,Var("R1",Imm(64)))))]), -Jmps([Goto(Tid(703, "%000002bf"), Attrs([Attr("address","0x6E0"), -Attr("insn","cbz x1, #0x18")]), EQ(Var("R1",Imm(64)),Int(0,64)), -Direct(Tid(701, "%000002bd"))), Goto(Tid(1_512, "%000005e8"), Attrs([]), - Int(1,1), Direct(Tid(864, "%00000360")))])), Blk(Tid(864, "%00000360"), - Attrs([Attr("address","0x6E4")]), Phis([]), Defs([Def(Tid(867, "%00000363"), - Attrs([Attr("address","0x6E4"), Attr("insn","adrp x2, #65536")]), - Var("R2",Imm(64)), Int(65536,64)), Def(Tid(874, "%0000036a"), - Attrs([Attr("address","0x6E8"), Attr("insn","ldr x2, [x2, #0xff8]")]), - Var("R2",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R2",Imm(64)),Int(4088,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(879, "%0000036f"), Attrs([Attr("address","0x6EC"), -Attr("insn","cbz x2, #0xc")]), EQ(Var("R2",Imm(64)),Int(0,64)), -Direct(Tid(701, "%000002bd"))), Goto(Tid(1_513, "%000005e9"), Attrs([]), - Int(1,1), Direct(Tid(883, "%00000373")))])), Blk(Tid(701, "%000002bd"), - Attrs([Attr("address","0x6F8")]), Phis([]), Defs([]), -Jmps([Call(Tid(709, "%000002c5"), Attrs([Attr("address","0x6F8"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))])), -Blk(Tid(883, "%00000373"), Attrs([Attr("address","0x6F0")]), Phis([]), -Defs([Def(Tid(887, "%00000377"), Attrs([Attr("address","0x6F0"), -Attr("insn","mov x16, x2")]), Var("R16",Imm(64)), Var("R2",Imm(64)))]), -Jmps([Call(Tid(892, "%0000037c"), Attrs([Attr("address","0x6F4"), -Attr("insn","br x16")]), Int(1,1), -(Indirect(Var("R16",Imm(64))),))]))]))]))) \ No newline at end of file diff --git a/src/test/correct/secret_write/gcc_O2/secret_write.bir b/src/test/correct/secret_write/gcc_O2/secret_write.bir deleted file mode 100644 index b9b40e586..000000000 --- a/src/test/correct/secret_write/gcc_O2/secret_write.bir +++ /dev/null @@ -1,229 +0,0 @@ -000005ea: program -000005b8: sub __cxa_finalize(__cxa_finalize_result) -000005eb: __cxa_finalize_result :: out u32 = low:32[R0] - -0000035c: -00000454: R16 := 0x10000 -0000045b: R17 := mem[R16 + 0xFB8, el]:u64 -00000461: R16 := R16 + 0xFB8 -00000466: call R17 with noreturn - -000005b9: sub __do_global_dtors_aux(__do_global_dtors_aux_result) -000005ec: __do_global_dtors_aux_result :: out u32 = low:32[R0] - -000002c9: -000002cd: #3 := R31 - 0x20 -000002d3: mem := mem with [#3, el]:u64 <- R29 -000002d9: mem := mem with [#3 + 8, el]:u64 <- R30 -000002dd: R31 := #3 -000002e3: R29 := R31 -000002eb: mem := mem with [R31 + 0x10, el]:u64 <- R19 -000002f0: R19 := 0x11000 -000002f7: R0 := pad:64[mem[R19 + 0x10]] -000002fe: when 31:0[R0] <> 0 goto %000002fc -000005e0: goto %00000325 - -00000325: -00000328: R0 := 0x10000 -0000032f: R0 := mem[R0 + 0xFE0, el]:u64 -00000335: when R0 = 0 goto %00000333 -000005e1: goto %0000034c - -0000034c: -0000034f: R0 := 0x11000 -00000356: R0 := mem[R0 + 8, el]:u64 -0000035b: R30 := 0x730 -0000035e: call @__cxa_finalize with return %00000333 - -00000333: -0000033b: R30 := 0x734 -0000033d: call @deregister_tm_clones with return %0000033f - -0000033f: -00000342: R0 := 1 -0000034a: mem := mem with [R19 + 0x10] <- 7:0[R0] -000005e2: goto %000002fc - -000002fc: -00000306: R19 := mem[R31 + 0x10, el]:u64 -0000030d: R29 := mem[R31, el]:u64 -00000312: R30 := mem[R31 + 8, el]:u64 -00000316: R31 := R31 + 0x20 -0000031b: call R30 with noreturn - -000005bd: sub __libc_start_main(__libc_start_main_main, __libc_start_main_arg2, __libc_start_main_arg3, __libc_start_main_auxv, __libc_start_main_result) -000005ed: __libc_start_main_main :: in u64 = R0 -000005ee: __libc_start_main_arg2 :: in u32 = low:32[R1] -000005ef: __libc_start_main_arg3 :: in out u64 = R2 -000005f0: __libc_start_main_auxv :: in out u64 = R3 -000005f1: __libc_start_main_result :: out u32 = low:32[R0] - -00000222: -0000043e: R16 := 0x10000 -00000445: R17 := mem[R16 + 0xFB0, el]:u64 -0000044b: R16 := R16 + 0xFB0 -00000450: call R17 with noreturn - -000005be: sub _fini(_fini_result) -000005f2: _fini_result :: out u32 = low:32[R0] - -0000001f: -00000025: #0 := R31 - 0x10 -0000002b: mem := mem with [#0, el]:u64 <- R29 -00000031: mem := mem with [#0 + 8, el]:u64 <- R30 -00000035: R31 := #0 -0000003b: R29 := R31 -00000042: R29 := mem[R31, el]:u64 -00000047: R30 := mem[R31 + 8, el]:u64 -0000004b: R31 := R31 + 0x10 -00000050: call R30 with noreturn - -000005bf: sub _init(_init_result) -000005f3: _init_result :: out u32 = low:32[R0] - -0000050a: -00000510: #5 := R31 - 0x10 -00000516: mem := mem with [#5, el]:u64 <- R29 -0000051c: mem := mem with [#5 + 8, el]:u64 <- R30 -00000520: R31 := #5 -00000526: R29 := R31 -0000052b: R30 := 0x590 -0000052d: call @call_weak_fn with return %0000052f - -0000052f: -00000534: R29 := mem[R31, el]:u64 -00000539: R30 := mem[R31 + 8, el]:u64 -0000053d: R31 := R31 + 0x10 -00000542: call R30 with noreturn - -000005c0: sub _start(_start_result) -000005f4: _start_result :: out u32 = low:32[R0] - -000001e3: -000001e8: R29 := 0 -000001ed: R30 := 0 -000001f3: R5 := R0 -000001fa: R1 := mem[R31, el]:u64 -00000200: R2 := R31 + 8 -00000206: R6 := R31 -0000020b: R0 := 0x10000 -00000212: R0 := mem[R0 + 0xFF0, el]:u64 -00000217: R3 := 0 -0000021c: R4 := 0 -00000221: R30 := 0x670 -00000224: call @__libc_start_main with return %00000226 - -00000226: -00000229: R30 := 0x674 -0000022c: call @abort with return %000005e3 - -000005e3: -000005e4: call @call_weak_fn with noreturn - -000005c3: sub abort() - - -0000022a: -00000480: R16 := 0x10000 -00000487: R17 := mem[R16 + 0xFC8, el]:u64 -0000048d: R16 := R16 + 0xFC8 -00000492: call R17 with noreturn - -000005c4: sub call_weak_fn(call_weak_fn_result) -000005f5: call_weak_fn_result :: out u32 = low:32[R0] - -0000022e: -00000231: R0 := 0x10000 -00000238: R0 := mem[R0 + 0xFE8, el]:u64 -0000023e: when R0 = 0 goto %0000023c -000005e5: goto %0000039c - -0000023c: -00000244: call R30 with noreturn - -0000039c: -0000039f: goto @__gmon_start__ - -0000039d: -0000046a: R16 := 0x10000 -00000471: R17 := mem[R16 + 0xFC0, el]:u64 -00000477: R16 := R16 + 0xFC0 -0000047c: call R17 with noreturn - -000005c6: sub deregister_tm_clones(deregister_tm_clones_result) -000005f6: deregister_tm_clones_result :: out u32 = low:32[R0] - -0000024a: -0000024d: R0 := 0x11000 -00000253: R0 := R0 + 0x10 -00000258: R1 := 0x11000 -0000025e: R1 := R1 + 0x10 -00000264: #1 := ~R0 -00000269: #2 := R1 + ~R0 -0000026f: VF := extend:65[#2 + 1] <> extend:65[R1] + extend:65[#1] + 1 -00000275: CF := pad:65[#2 + 1] <> pad:65[R1] + pad:65[#1] + 1 -00000279: ZF := #2 + 1 = 0 -0000027d: NF := 63:63[#2 + 1] -00000283: when ZF goto %00000281 -000005e6: goto %0000037e - -0000037e: -00000381: R1 := 0x10000 -00000388: R1 := mem[R1 + 0xFD8, el]:u64 -0000038d: when R1 = 0 goto %00000281 -000005e7: goto %00000391 - -00000281: -00000289: call R30 with noreturn - -00000391: -00000395: R16 := R1 -0000039a: call R16 with noreturn - -000005c9: sub frame_dummy(frame_dummy_result) -000005f7: frame_dummy_result :: out u32 = low:32[R0] - -00000321: -00000323: call @register_tm_clones with noreturn - -000005ca: sub main(main_argc, main_argv, main_result) -000005f8: main_argc :: in u32 = low:32[R0] -000005f9: main_argv :: in out u64 = R1 -000005fa: main_result :: out u32 = low:32[R0] - -000001a8: -000001ab: R1 := 0x11000 -000001b1: R2 := R1 + 0x14 -000001b6: R3 := 2 -000001bb: R0 := 0 -000001c2: mem := mem with [R1 + 0x14, el]:u32 <- 0 -000001ca: mem := mem with [R2 + 4, el]:u32 <- 31:0[R3] -000001cf: call R30 with noreturn - -000005cb: sub register_tm_clones(register_tm_clones_result) -000005fb: register_tm_clones_result :: out u32 = low:32[R0] - -0000028b: -0000028e: R0 := 0x11000 -00000294: R0 := R0 + 0x10 -00000299: R1 := 0x11000 -0000029f: R1 := R1 + 0x10 -000002a6: R1 := R1 + ~R0 + 1 -000002ac: R2 := 0.63:63[R1] -000002b3: R1 := R2 + (R1 ~>> 3) -000002b9: R1 := extend:64[63:1[R1]] -000002bf: when R1 = 0 goto %000002bd -000005e8: goto %00000360 - -00000360: -00000363: R2 := 0x10000 -0000036a: R2 := mem[R2 + 0xFF8, el]:u64 -0000036f: when R2 = 0 goto %000002bd -000005e9: goto %00000373 - -000002bd: -000002c5: call R30 with noreturn - -00000373: -00000377: R16 := R2 -0000037c: call R16 with noreturn diff --git a/src/test/correct/secret_write/gcc_O2/secret_write.expected b/src/test/correct/secret_write/gcc_O2/secret_write.expected index daeecddaa..b3d7d57be 100644 --- a/src/test/correct/secret_write/gcc_O2/secret_write.expected +++ b/src/test/correct/secret_write/gcc_O2/secret_write.expected @@ -9,11 +9,11 @@ var {:extern} R2: bv64; var {:extern} R3: bv64; var {:extern} mem: [bv64]bv8; const {:extern} $secret_addr: bv64; -axiom ($secret_addr == 69660bv64); +axiom ($secret_addr == 4325396bv64); const {:extern} $x_addr: bv64; -axiom ($x_addr == 69652bv64); +axiom ($x_addr == 4325400bv64); const {:extern} $z_addr: bv64; -axiom ($z_addr == 69656bv64); +axiom ($z_addr == 4325404bv64); function {:extern} L(mem$in: [bv64]bv8, index: bv64) returns (bool) { (if (index == $secret_addr) then false else (if (index == $x_addr) then (bvsmod32(memory_load32_le(mem$in, $z_addr), 2bv32) == 0bv32) else (if (index == $z_addr) then true else false))) } @@ -25,6 +25,10 @@ function {:extern} gamma_load32(gammaMap: [bv64]bool, index: bv64) returns (bool (gammaMap[bvadd64(index, 3bv64)] && (gammaMap[bvadd64(index, 2bv64)] && (gammaMap[bvadd64(index, 1bv64)] && gammaMap[index]))) } +function {:extern} gamma_load64(gammaMap: [bv64]bool, index: bv64) returns (bool) { + (gammaMap[bvadd64(index, 7bv64)] && (gammaMap[bvadd64(index, 6bv64)] && (gammaMap[bvadd64(index, 5bv64)] && (gammaMap[bvadd64(index, 4bv64)] && (gammaMap[bvadd64(index, 3bv64)] && (gammaMap[bvadd64(index, 2bv64)] && (gammaMap[bvadd64(index, 1bv64)] && gammaMap[index]))))))) +} + function {:extern} gamma_store32(gammaMap: [bv64]bool, index: bv64, value: bool) returns ([bv64]bool) { gammaMap[index := value][bvadd64(index, 1bv64) := value][bvadd64(index, 2bv64) := value][bvadd64(index, 3bv64) := value] } @@ -46,11 +50,7 @@ procedure {:extern} rely(); ensures (forall i: bv64 :: (((mem[i] == old(mem[i])) ==> (Gamma_mem[i] == old(Gamma_mem[i]))))); ensures (memory_load32_le(mem, $z_addr) == old(memory_load32_le(mem, $z_addr))); ensures (old(gamma_load32(Gamma_mem, $x_addr)) ==> gamma_load32(Gamma_mem, $x_addr)); - free ensures (memory_load32_le(mem, 1896bv64) == 131073bv32); - free ensures (memory_load64_le(mem, 69016bv64) == 1872bv64); - free ensures (memory_load64_le(mem, 69024bv64) == 1792bv64); - free ensures (memory_load64_le(mem, 69616bv64) == 1536bv64); - free ensures (memory_load64_le(mem, 69640bv64) == 69640bv64); + free ensures (memory_load32_le(mem, 4196312bv64) == 131073bv32); procedure {:extern} rely_transitive(); modifies Gamma_mem, mem; @@ -79,54 +79,56 @@ implementation {:extern} guarantee_reflexive() assert bvsge32(memory_load32_le(mem, $z_addr), memory_load32_le(mem, $z_addr)); } -procedure main_1536(); +procedure main(); modifies Gamma_R0, Gamma_R1, Gamma_R2, Gamma_R3, Gamma_mem, R0, R1, R2, R3, mem; requires (gamma_load32(Gamma_mem, $x_addr) == true); requires (gamma_load32(Gamma_mem, $z_addr) == true); requires (gamma_load32(Gamma_mem, $secret_addr) == false); requires (memory_load32_le(mem, $z_addr) == 0bv32); - free requires (memory_load64_le(mem, 69632bv64) == 0bv64); - free requires (memory_load64_le(mem, 69640bv64) == 69640bv64); - free requires (memory_load32_le(mem, 1896bv64) == 131073bv32); - free requires (memory_load64_le(mem, 69016bv64) == 1872bv64); - free requires (memory_load64_le(mem, 69024bv64) == 1792bv64); - free requires (memory_load64_le(mem, 69616bv64) == 1536bv64); - free requires (memory_load64_le(mem, 69640bv64) == 69640bv64); - free ensures (memory_load32_le(mem, 1896bv64) == 131073bv32); - free ensures (memory_load64_le(mem, 69016bv64) == 1872bv64); - free ensures (memory_load64_le(mem, 69024bv64) == 1792bv64); - free ensures (memory_load64_le(mem, 69616bv64) == 1536bv64); - free ensures (memory_load64_le(mem, 69640bv64) == 69640bv64); - -implementation main_1536() + free requires (memory_load64_le(mem, 4325376bv64) == 0bv64); + free requires (memory_load64_le(mem, 4325384bv64) == 0bv64); + free requires (memory_load32_le(mem, 4196312bv64) == 131073bv32); + free ensures (memory_load32_le(mem, 4196312bv64) == 131073bv32); + +implementation main() { + var $load$14: bv64; + var $load$15: bv64; + var Gamma_$load$14: bool; + var Gamma_$load$15: bool; var Gamma_x_old: bool; var z_old: bv32; lmain: assume {:captureState "lmain"} true; - R1, Gamma_R1 := 69632bv64, true; - R2, Gamma_R2 := bvadd64(R1, 20bv64), Gamma_R1; + R2, Gamma_R2 := 4321280bv64, true; + call rely(); + $load$14, Gamma_$load$14 := memory_load64_le(mem, bvadd64(R2, 4072bv64)), (gamma_load64(Gamma_mem, bvadd64(R2, 4072bv64)) || L(mem, bvadd64(R2, 4072bv64))); + R2, Gamma_R2 := $load$14, Gamma_$load$14; R3, Gamma_R3 := 2bv64, true; + R1, Gamma_R1 := 4321280bv64, true; + call rely(); + $load$15, Gamma_$load$15 := memory_load64_le(mem, bvadd64(R1, 4064bv64)), (gamma_load64(Gamma_mem, bvadd64(R1, 4064bv64)) || L(mem, bvadd64(R1, 4064bv64))); + R1, Gamma_R1 := $load$15, Gamma_$load$15; R0, Gamma_R0 := 0bv64, true; call rely(); + assert (L(mem, R2) ==> true); z_old := memory_load32_le(mem, $z_addr); Gamma_x_old := (gamma_load32(Gamma_mem, $x_addr) || L(mem, $x_addr)); - assert (L(mem, bvadd64(R1, 20bv64)) ==> true); - mem, Gamma_mem := memory_store32_le(mem, bvadd64(R1, 20bv64), 0bv32), gamma_store32(Gamma_mem, bvadd64(R1, 20bv64), true); - assert ((bvadd64(R1, 20bv64) == $z_addr) ==> (L(mem, $x_addr) ==> Gamma_x_old)); + mem, Gamma_mem := memory_store32_le(mem, R2, 0bv32), gamma_store32(Gamma_mem, R2, true); + assert ((R2 == $z_addr) ==> (L(mem, $x_addr) ==> Gamma_x_old)); assert bvsge32(memory_load32_le(mem, $z_addr), z_old); - assume {:captureState "%000001c2"} true; + assume {:captureState "%00000260"} true; call rely(); + assert (L(mem, R1) ==> Gamma_R3); z_old := memory_load32_le(mem, $z_addr); Gamma_x_old := (gamma_load32(Gamma_mem, $x_addr) || L(mem, $x_addr)); - assert (L(mem, bvadd64(R2, 4bv64)) ==> Gamma_R3); - mem, Gamma_mem := memory_store32_le(mem, bvadd64(R2, 4bv64), R3[32:0]), gamma_store32(Gamma_mem, bvadd64(R2, 4bv64), Gamma_R3); - assert ((bvadd64(R2, 4bv64) == $z_addr) ==> (L(mem, $x_addr) ==> Gamma_x_old)); + mem, Gamma_mem := memory_store32_le(mem, R1, R3[32:0]), gamma_store32(Gamma_mem, R1, Gamma_R3); + assert ((R1 == $z_addr) ==> (L(mem, $x_addr) ==> Gamma_x_old)); assert bvsge32(memory_load32_le(mem, $z_addr), z_old); - assume {:captureState "%000001ca"} true; - goto main_1536_basil_return; - main_1536_basil_return: - assume {:captureState "main_1536_basil_return"} true; + assume {:captureState "%00000264"} true; + goto main_basil_return; + main_basil_return: + assume {:captureState "main_basil_return"} true; return; } diff --git a/src/test/correct/secret_write/gcc_O2/secret_write.gts b/src/test/correct/secret_write/gcc_O2/secret_write.gts deleted file mode 100644 index 23c3c10e3..000000000 Binary files a/src/test/correct/secret_write/gcc_O2/secret_write.gts and /dev/null differ diff --git a/src/test/correct/secret_write/gcc_O2/secret_write.md5sum b/src/test/correct/secret_write/gcc_O2/secret_write.md5sum new file mode 100644 index 000000000..e398a9bb2 --- /dev/null +++ b/src/test/correct/secret_write/gcc_O2/secret_write.md5sum @@ -0,0 +1,5 @@ +7937cdf0d3a4aba6f96576ff8ab5029a correct/secret_write/gcc_O2/a.out +674a5444ffa30fdbf4c50c8f1c5f5bd3 correct/secret_write/gcc_O2/secret_write.adt +9fb4b5fd347c52a6bdbfd59904e00e95 correct/secret_write/gcc_O2/secret_write.bir +e6449219eb8f71ee65aec685bed0139b correct/secret_write/gcc_O2/secret_write.relf +ad627fdc999bfee51710edcc24718686 correct/secret_write/gcc_O2/secret_write.gts diff --git a/src/test/correct/secret_write/gcc_O2/secret_write.relf b/src/test/correct/secret_write/gcc_O2/secret_write.relf deleted file mode 100644 index b50aeadab..000000000 --- a/src/test/correct/secret_write/gcc_O2/secret_write.relf +++ /dev/null @@ -1,123 +0,0 @@ - -Relocation section '.rela.dyn' at offset 0x460 contains 8 entries: - Offset Info Type Symbol's Value Symbol's Name + Addend -0000000000010d98 0000000000000403 R_AARCH64_RELATIVE 750 -0000000000010da0 0000000000000403 R_AARCH64_RELATIVE 700 -0000000000010ff0 0000000000000403 R_AARCH64_RELATIVE 600 -0000000000011008 0000000000000403 R_AARCH64_RELATIVE 11008 -0000000000010fd8 0000000400000401 R_AARCH64_GLOB_DAT 0000000000000000 _ITM_deregisterTMCloneTable + 0 -0000000000010fe0 0000000500000401 R_AARCH64_GLOB_DAT 0000000000000000 __cxa_finalize@GLIBC_2.17 + 0 -0000000000010fe8 0000000600000401 R_AARCH64_GLOB_DAT 0000000000000000 __gmon_start__ + 0 -0000000000010ff8 0000000800000401 R_AARCH64_GLOB_DAT 0000000000000000 _ITM_registerTMCloneTable + 0 - -Relocation section '.rela.plt' at offset 0x520 contains 4 entries: - Offset Info Type Symbol's Value Symbol's Name + Addend -0000000000010fb0 0000000300000402 R_AARCH64_JUMP_SLOT 0000000000000000 __libc_start_main@GLIBC_2.34 + 0 -0000000000010fb8 0000000500000402 R_AARCH64_JUMP_SLOT 0000000000000000 __cxa_finalize@GLIBC_2.17 + 0 -0000000000010fc0 0000000600000402 R_AARCH64_JUMP_SLOT 0000000000000000 __gmon_start__ + 0 -0000000000010fc8 0000000700000402 R_AARCH64_JUMP_SLOT 0000000000000000 abort@GLIBC_2.17 + 0 - -Symbol table '.dynsym' contains 9 entries: - Num: Value Size Type Bind Vis Ndx Name - 0: 0000000000000000 0 NOTYPE LOCAL DEFAULT UND - 1: 0000000000000580 0 SECTION LOCAL DEFAULT 11 .init - 2: 0000000000011000 0 SECTION LOCAL DEFAULT 22 .data - 3: 0000000000000000 0 FUNC GLOBAL DEFAULT UND __libc_start_main@GLIBC_2.34 (2) - 4: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_deregisterTMCloneTable - 5: 0000000000000000 0 FUNC WEAK DEFAULT UND __cxa_finalize@GLIBC_2.17 (3) - 6: 0000000000000000 0 NOTYPE WEAK DEFAULT UND __gmon_start__ - 7: 0000000000000000 0 FUNC GLOBAL DEFAULT UND abort@GLIBC_2.17 (3) - 8: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_registerTMCloneTable - -Symbol table '.symtab' contains 90 entries: - Num: Value Size Type Bind Vis Ndx Name - 0: 0000000000000000 0 NOTYPE LOCAL DEFAULT UND - 1: 0000000000000238 0 SECTION LOCAL DEFAULT 1 .interp - 2: 0000000000000254 0 SECTION LOCAL DEFAULT 2 .note.gnu.build-id - 3: 0000000000000278 0 SECTION LOCAL DEFAULT 3 .note.ABI-tag - 4: 0000000000000298 0 SECTION LOCAL DEFAULT 4 .gnu.hash - 5: 00000000000002b8 0 SECTION LOCAL DEFAULT 5 .dynsym - 6: 0000000000000390 0 SECTION LOCAL DEFAULT 6 .dynstr - 7: 000000000000041e 0 SECTION LOCAL DEFAULT 7 .gnu.version - 8: 0000000000000430 0 SECTION LOCAL DEFAULT 8 .gnu.version_r - 9: 0000000000000460 0 SECTION LOCAL DEFAULT 9 .rela.dyn - 10: 0000000000000520 0 SECTION LOCAL DEFAULT 10 .rela.plt - 11: 0000000000000580 0 SECTION LOCAL DEFAULT 11 .init - 12: 00000000000005a0 0 SECTION LOCAL DEFAULT 12 .plt - 13: 0000000000000600 0 SECTION LOCAL DEFAULT 13 .text - 14: 0000000000000754 0 SECTION LOCAL DEFAULT 14 .fini - 15: 0000000000000768 0 SECTION LOCAL DEFAULT 15 .rodata - 16: 000000000000076c 0 SECTION LOCAL DEFAULT 16 .eh_frame_hdr - 17: 00000000000007a8 0 SECTION LOCAL DEFAULT 17 .eh_frame - 18: 0000000000010d98 0 SECTION LOCAL DEFAULT 18 .init_array - 19: 0000000000010da0 0 SECTION LOCAL DEFAULT 19 .fini_array - 20: 0000000000010da8 0 SECTION LOCAL DEFAULT 20 .dynamic - 21: 0000000000010f98 0 SECTION LOCAL DEFAULT 21 .got - 22: 0000000000011000 0 SECTION LOCAL DEFAULT 22 .data - 23: 0000000000011010 0 SECTION LOCAL DEFAULT 23 .bss - 24: 0000000000000000 0 SECTION LOCAL DEFAULT 24 .comment - 25: 0000000000000000 0 FILE LOCAL DEFAULT ABS Scrt1.o - 26: 0000000000000278 0 NOTYPE LOCAL DEFAULT 3 $d - 27: 0000000000000278 32 OBJECT LOCAL DEFAULT 3 __abi_tag - 28: 0000000000000640 0 NOTYPE LOCAL DEFAULT 13 $x - 29: 00000000000007bc 0 NOTYPE LOCAL DEFAULT 17 $d - 30: 0000000000000768 0 NOTYPE LOCAL DEFAULT 15 $d - 31: 0000000000000000 0 FILE LOCAL DEFAULT ABS crti.o - 32: 0000000000000674 0 NOTYPE LOCAL DEFAULT 13 $x - 33: 0000000000000674 20 FUNC LOCAL DEFAULT 13 call_weak_fn - 34: 0000000000000580 0 NOTYPE LOCAL DEFAULT 11 $x - 35: 0000000000000754 0 NOTYPE LOCAL DEFAULT 14 $x - 36: 0000000000000000 0 FILE LOCAL DEFAULT ABS crtn.o - 37: 0000000000000590 0 NOTYPE LOCAL DEFAULT 11 $x - 38: 0000000000000760 0 NOTYPE LOCAL DEFAULT 14 $x - 39: 0000000000000000 0 FILE LOCAL DEFAULT ABS secret_write.c - 40: 0000000000000600 0 NOTYPE LOCAL DEFAULT 13 $x - 41: 0000000000011014 0 NOTYPE LOCAL DEFAULT 23 $d - 42: 0000000000000830 0 NOTYPE LOCAL DEFAULT 17 $d - 43: 0000000000000000 0 FILE LOCAL DEFAULT ABS crtstuff.c - 44: 0000000000000690 0 NOTYPE LOCAL DEFAULT 13 $x - 45: 0000000000000690 0 FUNC LOCAL DEFAULT 13 deregister_tm_clones - 46: 00000000000006c0 0 FUNC LOCAL DEFAULT 13 register_tm_clones - 47: 0000000000011008 0 NOTYPE LOCAL DEFAULT 22 $d - 48: 0000000000000700 0 FUNC LOCAL DEFAULT 13 __do_global_dtors_aux - 49: 0000000000011010 1 OBJECT LOCAL DEFAULT 23 completed.0 - 50: 0000000000010da0 0 NOTYPE LOCAL DEFAULT 19 $d - 51: 0000000000010da0 0 OBJECT LOCAL DEFAULT 19 __do_global_dtors_aux_fini_array_entry - 52: 0000000000000750 0 FUNC LOCAL DEFAULT 13 frame_dummy - 53: 0000000000010d98 0 NOTYPE LOCAL DEFAULT 18 $d - 54: 0000000000010d98 0 OBJECT LOCAL DEFAULT 18 __frame_dummy_init_array_entry - 55: 00000000000007d0 0 NOTYPE LOCAL DEFAULT 17 $d - 56: 0000000000011010 0 NOTYPE LOCAL DEFAULT 23 $d - 57: 0000000000000000 0 FILE LOCAL DEFAULT ABS crtstuff.c - 58: 0000000000000844 0 NOTYPE LOCAL DEFAULT 17 $d - 59: 0000000000000844 0 OBJECT LOCAL DEFAULT 17 __FRAME_END__ - 60: 0000000000000000 0 FILE LOCAL DEFAULT ABS - 61: 0000000000010da8 0 OBJECT LOCAL DEFAULT ABS _DYNAMIC - 62: 000000000000076c 0 NOTYPE LOCAL DEFAULT 16 __GNU_EH_FRAME_HDR - 63: 0000000000010fd0 0 OBJECT LOCAL DEFAULT ABS _GLOBAL_OFFSET_TABLE_ - 64: 00000000000005a0 0 NOTYPE LOCAL DEFAULT 12 $x - 65: 0000000000000000 0 FUNC GLOBAL DEFAULT UND __libc_start_main@GLIBC_2.34 - 66: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_deregisterTMCloneTable - 67: 0000000000011000 0 NOTYPE WEAK DEFAULT 22 data_start - 68: 0000000000011010 0 NOTYPE GLOBAL DEFAULT 23 __bss_start__ - 69: 0000000000000000 0 FUNC WEAK DEFAULT UND __cxa_finalize@GLIBC_2.17 - 70: 0000000000011020 0 NOTYPE GLOBAL DEFAULT 23 _bss_end__ - 71: 0000000000011010 0 NOTYPE GLOBAL DEFAULT 22 _edata - 72: 0000000000011018 4 OBJECT GLOBAL DEFAULT 23 z - 73: 0000000000011014 4 OBJECT GLOBAL DEFAULT 23 x - 74: 0000000000000754 0 FUNC GLOBAL HIDDEN 14 _fini - 75: 0000000000011020 0 NOTYPE GLOBAL DEFAULT 23 __bss_end__ - 76: 0000000000011000 0 NOTYPE GLOBAL DEFAULT 22 __data_start - 77: 0000000000000000 0 NOTYPE WEAK DEFAULT UND __gmon_start__ - 78: 0000000000011008 0 OBJECT GLOBAL HIDDEN 22 __dso_handle - 79: 0000000000000000 0 FUNC GLOBAL DEFAULT UND abort@GLIBC_2.17 - 80: 0000000000000768 4 OBJECT GLOBAL DEFAULT 15 _IO_stdin_used - 81: 000000000001101c 4 OBJECT GLOBAL DEFAULT 23 secret - 82: 0000000000011020 0 NOTYPE GLOBAL DEFAULT 23 _end - 83: 0000000000000640 52 FUNC GLOBAL DEFAULT 13 _start - 84: 0000000000011020 0 NOTYPE GLOBAL DEFAULT 23 __end__ - 85: 0000000000011010 0 NOTYPE GLOBAL DEFAULT 23 __bss_start - 86: 0000000000000600 28 FUNC GLOBAL DEFAULT 13 main - 87: 0000000000011010 0 OBJECT GLOBAL HIDDEN 22 __TMC_END__ - 88: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_registerTMCloneTable - 89: 0000000000000580 0 FUNC GLOBAL HIDDEN 11 _init diff --git a/src/test/correct/secret_write/gcc_O2/secret_write_gtirb.expected b/src/test/correct/secret_write/gcc_O2/secret_write_gtirb.expected index d5821304b..aa9895d69 100644 --- a/src/test/correct/secret_write/gcc_O2/secret_write_gtirb.expected +++ b/src/test/correct/secret_write/gcc_O2/secret_write_gtirb.expected @@ -9,11 +9,11 @@ var {:extern} R2: bv64; var {:extern} R3: bv64; var {:extern} mem: [bv64]bv8; const {:extern} $secret_addr: bv64; -axiom ($secret_addr == 69660bv64); +axiom ($secret_addr == 4325396bv64); const {:extern} $x_addr: bv64; -axiom ($x_addr == 69652bv64); +axiom ($x_addr == 4325400bv64); const {:extern} $z_addr: bv64; -axiom ($z_addr == 69656bv64); +axiom ($z_addr == 4325404bv64); function {:extern} L(mem$in: [bv64]bv8, index: bv64) returns (bool) { (if (index == $secret_addr) then false else (if (index == $x_addr) then (bvsmod32(memory_load32_le(mem$in, $z_addr), 2bv32) == 0bv32) else (if (index == $z_addr) then true else false))) } @@ -25,6 +25,10 @@ function {:extern} gamma_load32(gammaMap: [bv64]bool, index: bv64) returns (bool (gammaMap[bvadd64(index, 3bv64)] && (gammaMap[bvadd64(index, 2bv64)] && (gammaMap[bvadd64(index, 1bv64)] && gammaMap[index]))) } +function {:extern} gamma_load64(gammaMap: [bv64]bool, index: bv64) returns (bool) { + (gammaMap[bvadd64(index, 7bv64)] && (gammaMap[bvadd64(index, 6bv64)] && (gammaMap[bvadd64(index, 5bv64)] && (gammaMap[bvadd64(index, 4bv64)] && (gammaMap[bvadd64(index, 3bv64)] && (gammaMap[bvadd64(index, 2bv64)] && (gammaMap[bvadd64(index, 1bv64)] && gammaMap[index]))))))) +} + function {:extern} gamma_store32(gammaMap: [bv64]bool, index: bv64, value: bool) returns ([bv64]bool) { gammaMap[index := value][bvadd64(index, 1bv64) := value][bvadd64(index, 2bv64) := value][bvadd64(index, 3bv64) := value] } @@ -46,11 +50,7 @@ procedure {:extern} rely(); ensures (forall i: bv64 :: (((mem[i] == old(mem[i])) ==> (Gamma_mem[i] == old(Gamma_mem[i]))))); ensures (memory_load32_le(mem, $z_addr) == old(memory_load32_le(mem, $z_addr))); ensures (old(gamma_load32(Gamma_mem, $x_addr)) ==> gamma_load32(Gamma_mem, $x_addr)); - free ensures (memory_load32_le(mem, 1896bv64) == 131073bv32); - free ensures (memory_load64_le(mem, 69016bv64) == 1872bv64); - free ensures (memory_load64_le(mem, 69024bv64) == 1792bv64); - free ensures (memory_load64_le(mem, 69616bv64) == 1536bv64); - free ensures (memory_load64_le(mem, 69640bv64) == 69640bv64); + free ensures (memory_load32_le(mem, 4196312bv64) == 131073bv32); procedure {:extern} rely_transitive(); modifies Gamma_mem, mem; @@ -79,54 +79,56 @@ implementation {:extern} guarantee_reflexive() assert bvsge32(memory_load32_le(mem, $z_addr), memory_load32_le(mem, $z_addr)); } -procedure main_1536(); +procedure main(); modifies Gamma_R0, Gamma_R1, Gamma_R2, Gamma_R3, Gamma_mem, R0, R1, R2, R3, mem; requires (gamma_load32(Gamma_mem, $x_addr) == true); requires (gamma_load32(Gamma_mem, $z_addr) == true); requires (gamma_load32(Gamma_mem, $secret_addr) == false); requires (memory_load32_le(mem, $z_addr) == 0bv32); - free requires (memory_load64_le(mem, 69632bv64) == 0bv64); - free requires (memory_load64_le(mem, 69640bv64) == 69640bv64); - free requires (memory_load32_le(mem, 1896bv64) == 131073bv32); - free requires (memory_load64_le(mem, 69016bv64) == 1872bv64); - free requires (memory_load64_le(mem, 69024bv64) == 1792bv64); - free requires (memory_load64_le(mem, 69616bv64) == 1536bv64); - free requires (memory_load64_le(mem, 69640bv64) == 69640bv64); - free ensures (memory_load32_le(mem, 1896bv64) == 131073bv32); - free ensures (memory_load64_le(mem, 69016bv64) == 1872bv64); - free ensures (memory_load64_le(mem, 69024bv64) == 1792bv64); - free ensures (memory_load64_le(mem, 69616bv64) == 1536bv64); - free ensures (memory_load64_le(mem, 69640bv64) == 69640bv64); - -implementation main_1536() + free requires (memory_load64_le(mem, 4325376bv64) == 0bv64); + free requires (memory_load64_le(mem, 4325384bv64) == 0bv64); + free requires (memory_load32_le(mem, 4196312bv64) == 131073bv32); + free ensures (memory_load32_le(mem, 4196312bv64) == 131073bv32); + +implementation main() { + var $load16: bv64; + var $load17: bv64; + var Gamma_$load16: bool; + var Gamma_$load17: bool; var Gamma_x_old: bool; var z_old: bv32; - main_1536__0__1CqTVg9ZT1uFZwqE_OAzfA: - assume {:captureState "main_1536__0__1CqTVg9ZT1uFZwqE_OAzfA"} true; - R1, Gamma_R1 := 69632bv64, true; - R2, Gamma_R2 := bvadd64(R1, 20bv64), Gamma_R1; + $main$__0__$iedVtPHmSjuLgqSxHgXOuw: + assume {:captureState "$main$__0__$iedVtPHmSjuLgqSxHgXOuw"} true; + R2, Gamma_R2 := 4321280bv64, true; + call rely(); + $load16, Gamma_$load16 := memory_load64_le(mem, bvadd64(R2, 4072bv64)), (gamma_load64(Gamma_mem, bvadd64(R2, 4072bv64)) || L(mem, bvadd64(R2, 4072bv64))); + R2, Gamma_R2 := $load16, Gamma_$load16; R3, Gamma_R3 := 2bv64, true; + R1, Gamma_R1 := 4321280bv64, true; + call rely(); + $load17, Gamma_$load17 := memory_load64_le(mem, bvadd64(R1, 4064bv64)), (gamma_load64(Gamma_mem, bvadd64(R1, 4064bv64)) || L(mem, bvadd64(R1, 4064bv64))); + R1, Gamma_R1 := $load17, Gamma_$load17; R0, Gamma_R0 := 0bv64, true; call rely(); + assert (L(mem, R2) ==> true); z_old := memory_load32_le(mem, $z_addr); Gamma_x_old := (gamma_load32(Gamma_mem, $x_addr) || L(mem, $x_addr)); - assert (L(mem, bvadd64(R1, 20bv64)) ==> true); - mem, Gamma_mem := memory_store32_le(mem, bvadd64(R1, 20bv64), 0bv32), gamma_store32(Gamma_mem, bvadd64(R1, 20bv64), true); - assert ((bvadd64(R1, 20bv64) == $z_addr) ==> (L(mem, $x_addr) ==> Gamma_x_old)); + mem, Gamma_mem := memory_store32_le(mem, R2, 0bv32), gamma_store32(Gamma_mem, R2, true); + assert ((R2 == $z_addr) ==> (L(mem, $x_addr) ==> Gamma_x_old)); assert bvsge32(memory_load32_le(mem, $z_addr), z_old); - assume {:captureState "1552_0"} true; + assume {:captureState "4195992$0"} true; call rely(); + assert (L(mem, R1) ==> Gamma_R3); z_old := memory_load32_le(mem, $z_addr); Gamma_x_old := (gamma_load32(Gamma_mem, $x_addr) || L(mem, $x_addr)); - assert (L(mem, bvadd64(R2, 4bv64)) ==> Gamma_R3); - mem, Gamma_mem := memory_store32_le(mem, bvadd64(R2, 4bv64), R3[32:0]), gamma_store32(Gamma_mem, bvadd64(R2, 4bv64), Gamma_R3); - assert ((bvadd64(R2, 4bv64) == $z_addr) ==> (L(mem, $x_addr) ==> Gamma_x_old)); + mem, Gamma_mem := memory_store32_le(mem, R1, R3[32:0]), gamma_store32(Gamma_mem, R1, Gamma_R3); + assert ((R1 == $z_addr) ==> (L(mem, $x_addr) ==> Gamma_x_old)); assert bvsge32(memory_load32_le(mem, $z_addr), z_old); - assume {:captureState "1556_0"} true; - goto main_1536_basil_return; - main_1536_basil_return: - assume {:captureState "main_1536_basil_return"} true; + assume {:captureState "4195996$0"} true; + goto main_basil_return; + main_basil_return: + assume {:captureState "main_basil_return"} true; return; } diff --git a/src/test/correct/secret_write/gcc_pic/secret_write.adt b/src/test/correct/secret_write/gcc_pic/secret_write.adt deleted file mode 100644 index 45639a08e..000000000 --- a/src/test/correct/secret_write/gcc_pic/secret_write.adt +++ /dev/null @@ -1,556 +0,0 @@ -Project(Attrs([Attr("filename","\"gcc_pic/secret_write.out\""), -Attr("image-specification","(declare abi (name str))\n(declare arch (name str))\n(declare base-address (addr int))\n(declare bias (off int))\n(declare bits (size int))\n(declare code-region (addr int) (size int) (off int))\n(declare code-start (addr int))\n(declare entry-point (addr int))\n(declare external-reference (addr int) (name str))\n(declare format (name str))\n(declare is-executable (flag bool))\n(declare is-little-endian (flag bool))\n(declare llvm:base-address (addr int))\n(declare llvm:code-entry (name str) (off int) (size int))\n(declare llvm:coff-import-library (name str))\n(declare llvm:coff-virtual-section-header (name str) (addr int) (size int))\n(declare llvm:elf-program-header (name str) (off int) (size int))\n(declare llvm:elf-program-header-flags (name str) (ld bool) (r bool) \n (w bool) (x bool))\n(declare llvm:elf-virtual-program-header (name str) (addr int) (size int))\n(declare llvm:entry-point (addr int))\n(declare llvm:macho-symbol (name str) (value int))\n(declare llvm:name-reference (at int) (name str))\n(declare llvm:relocation (at int) (addr int))\n(declare llvm:section-entry (name str) (addr int) (size int) (off int))\n(declare llvm:section-flags (name str) (r bool) (w bool) (x bool))\n(declare llvm:segment-command (name str) (off int) (size int))\n(declare llvm:segment-command-flags (name str) (r bool) (w bool) (x bool))\n(declare llvm:symbol-entry (name str) (addr int) (size int) (off int)\n (value int))\n(declare llvm:virtual-segment-command (name str) (addr int) (size int))\n(declare mapped (addr int) (size int) (off int))\n(declare named-region (addr int) (size int) (name str))\n(declare named-symbol (addr int) (name str))\n(declare require (name str))\n(declare section (addr int) (size int))\n(declare segment (addr int) (size int) (r bool) (w bool) (x bool))\n(declare subarch (name str))\n(declare symbol-chunk (addr int) (size int) (root int))\n(declare symbol-value (addr int) (value int))\n(declare system (name str))\n(declare vendor (name str))\n\n(abi unknown)\n(arch aarch64)\n(base-address 0)\n(bias 0)\n(bits 64)\n(code-region 1988 20 1988)\n(code-region 1600 388 1600)\n(code-region 1504 96 1504)\n(code-region 1480 24 1480)\n(code-start 1652)\n(code-start 1600)\n(code-start 1876)\n(entry-point 1600)\n(external-reference 69568 _ITM_deregisterTMCloneTable)\n(external-reference 69576 __cxa_finalize)\n(external-reference 69600 __gmon_start__)\n(external-reference 69624 _ITM_registerTMCloneTable)\n(external-reference 69528 __libc_start_main)\n(external-reference 69536 __cxa_finalize)\n(external-reference 69544 __gmon_start__)\n(external-reference 69552 abort)\n(format elf)\n(is-executable true)\n(is-little-endian true)\n(llvm:base-address 0)\n(llvm:code-entry abort 0 0)\n(llvm:code-entry __cxa_finalize 0 0)\n(llvm:code-entry __libc_start_main 0 0)\n(llvm:code-entry _init 1480 0)\n(llvm:code-entry main 1876 112)\n(llvm:code-entry _start 1600 52)\n(llvm:code-entry abort@GLIBC_2.17 0 0)\n(llvm:code-entry _fini 1988 0)\n(llvm:code-entry __cxa_finalize@GLIBC_2.17 0 0)\n(llvm:code-entry __libc_start_main@GLIBC_2.34 0 0)\n(llvm:code-entry frame_dummy 1872 0)\n(llvm:code-entry __do_global_dtors_aux 1792 0)\n(llvm:code-entry register_tm_clones 1728 0)\n(llvm:code-entry deregister_tm_clones 1680 0)\n(llvm:code-entry call_weak_fn 1652 20)\n(llvm:code-entry .fini 1988 20)\n(llvm:code-entry .text 1600 388)\n(llvm:code-entry .plt 1504 96)\n(llvm:code-entry .init 1480 24)\n(llvm:elf-program-header 08 3456 640)\n(llvm:elf-program-header 07 0 0)\n(llvm:elf-program-header 06 2012 60)\n(llvm:elf-program-header 05 596 68)\n(llvm:elf-program-header 04 3472 496)\n(llvm:elf-program-header 03 3456 656)\n(llvm:elf-program-header 02 0 2232)\n(llvm:elf-program-header 01 568 27)\n(llvm:elf-program-header 00 64 504)\n(llvm:elf-program-header-flags 08 false true false false)\n(llvm:elf-program-header-flags 07 false true true false)\n(llvm:elf-program-header-flags 06 false true false false)\n(llvm:elf-program-header-flags 05 false true false false)\n(llvm:elf-program-header-flags 04 false true true false)\n(llvm:elf-program-header-flags 03 true true true false)\n(llvm:elf-program-header-flags 02 true true false true)\n(llvm:elf-program-header-flags 01 false true false false)\n(llvm:elf-program-header-flags 00 false true false false)\n(llvm:elf-virtual-program-header 08 68992 640)\n(llvm:elf-virtual-program-header 07 0 0)\n(llvm:elf-virtual-program-header 06 2012 60)\n(llvm:elf-virtual-program-header 05 596 68)\n(llvm:elf-virtual-program-header 04 69008 496)\n(llvm:elf-virtual-program-header 03 68992 672)\n(llvm:elf-virtual-program-header 02 0 2232)\n(llvm:elf-virtual-program-header 01 568 27)\n(llvm:elf-virtual-program-header 00 64 504)\n(llvm:entry-point 1600)\n(llvm:name-reference 69552 abort)\n(llvm:name-reference 69544 __gmon_start__)\n(llvm:name-reference 69536 __cxa_finalize)\n(llvm:name-reference 69528 __libc_start_main)\n(llvm:name-reference 69624 _ITM_registerTMCloneTable)\n(llvm:name-reference 69600 __gmon_start__)\n(llvm:name-reference 69576 __cxa_finalize)\n(llvm:name-reference 69568 _ITM_deregisterTMCloneTable)\n(llvm:section-entry .shstrtab 0 250 6877)\n(llvm:section-entry .strtab 0 557 6320)\n(llvm:section-entry .symtab 0 2160 4160)\n(llvm:section-entry .comment 0 43 4112)\n(llvm:section-entry .bss 69648 16 4112)\n(llvm:section-entry .data 69632 16 4096)\n(llvm:section-entry .got 69504 128 3968)\n(llvm:section-entry .dynamic 69008 496 3472)\n(llvm:section-entry .fini_array 69000 8 3464)\n(llvm:section-entry .init_array 68992 8 3456)\n(llvm:section-entry .eh_frame 2072 160 2072)\n(llvm:section-entry .eh_frame_hdr 2012 60 2012)\n(llvm:section-entry .rodata 2008 4 2008)\n(llvm:section-entry .fini 1988 20 1988)\n(llvm:section-entry .text 1600 388 1600)\n(llvm:section-entry .plt 1504 96 1504)\n(llvm:section-entry .init 1480 24 1480)\n(llvm:section-entry .rela.plt 1384 96 1384)\n(llvm:section-entry .rela.dyn 1120 264 1120)\n(llvm:section-entry .gnu.version_r 1072 48 1072)\n(llvm:section-entry .gnu.version 1054 18 1054)\n(llvm:section-entry .dynstr 912 141 912)\n(llvm:section-entry .dynsym 696 216 696)\n(llvm:section-entry .gnu.hash 664 28 664)\n(llvm:section-entry .note.ABI-tag 632 32 632)\n(llvm:section-entry .note.gnu.build-id 596 36 596)\n(llvm:section-entry .interp 568 27 568)\n(llvm:section-flags .shstrtab true false false)\n(llvm:section-flags .strtab true false false)\n(llvm:section-flags .symtab true false false)\n(llvm:section-flags .comment true false false)\n(llvm:section-flags .bss true true false)\n(llvm:section-flags .data true true false)\n(llvm:section-flags .got true true false)\n(llvm:section-flags .dynamic true true false)\n(llvm:section-flags .fini_array true true false)\n(llvm:section-flags .init_array true true false)\n(llvm:section-flags .eh_frame true false false)\n(llvm:section-flags .eh_frame_hdr true false false)\n(llvm:section-flags .rodata true false false)\n(llvm:section-flags .fini true false true)\n(llvm:section-flags .text true false true)\n(llvm:section-flags .plt true false true)\n(llvm:section-flags .init true false true)\n(llvm:section-flags .rela.plt true false false)\n(llvm:section-flags .rela.dyn true false false)\n(llvm:section-flags .gnu.version_r true false false)\n(llvm:section-flags .gnu.version true false false)\n(llvm:section-flags .dynstr true false false)\n(llvm:section-flags .dynsym true false false)\n(llvm:section-flags .gnu.hash true false false)\n(llvm:section-flags .note.ABI-tag true false false)\n(llvm:section-flags .note.gnu.build-id true false false)\n(llvm:section-flags .interp true false false)\n(llvm:symbol-entry abort 0 0 0 0)\n(llvm:symbol-entry __cxa_finalize 0 0 0 0)\n(llvm:symbol-entry __libc_start_main 0 0 0 0)\n(llvm:symbol-entry _init 1480 0 1480 1480)\n(llvm:symbol-entry main 1876 112 1876 1876)\n(llvm:symbol-entry _start 1600 52 1600 1600)\n(llvm:symbol-entry abort@GLIBC_2.17 0 0 0 0)\n(llvm:symbol-entry _fini 1988 0 1988 1988)\n(llvm:symbol-entry __cxa_finalize@GLIBC_2.17 0 0 0 0)\n(llvm:symbol-entry __libc_start_main@GLIBC_2.34 0 0 0 0)\n(llvm:symbol-entry frame_dummy 1872 0 1872 1872)\n(llvm:symbol-entry __do_global_dtors_aux 1792 0 1792 1792)\n(llvm:symbol-entry register_tm_clones 1728 0 1728 1728)\n(llvm:symbol-entry deregister_tm_clones 1680 0 1680 1680)\n(llvm:symbol-entry call_weak_fn 1652 20 1652 1652)\n(mapped 0 2232 0)\n(mapped 68992 656 3456)\n(named-region 0 2232 02)\n(named-region 68992 672 03)\n(named-region 568 27 .interp)\n(named-region 596 36 .note.gnu.build-id)\n(named-region 632 32 .note.ABI-tag)\n(named-region 664 28 .gnu.hash)\n(named-region 696 216 .dynsym)\n(named-region 912 141 .dynstr)\n(named-region 1054 18 .gnu.version)\n(named-region 1072 48 .gnu.version_r)\n(named-region 1120 264 .rela.dyn)\n(named-region 1384 96 .rela.plt)\n(named-region 1480 24 .init)\n(named-region 1504 96 .plt)\n(named-region 1600 388 .text)\n(named-region 1988 20 .fini)\n(named-region 2008 4 .rodata)\n(named-region 2012 60 .eh_frame_hdr)\n(named-region 2072 160 .eh_frame)\n(named-region 68992 8 .init_array)\n(named-region 69000 8 .fini_array)\n(named-region 69008 496 .dynamic)\n(named-region 69504 128 .got)\n(named-region 69632 16 .data)\n(named-region 69648 16 .bss)\n(named-region 0 43 .comment)\n(named-region 0 2160 .symtab)\n(named-region 0 557 .strtab)\n(named-region 0 250 .shstrtab)\n(named-symbol 1652 call_weak_fn)\n(named-symbol 1680 deregister_tm_clones)\n(named-symbol 1728 register_tm_clones)\n(named-symbol 1792 __do_global_dtors_aux)\n(named-symbol 1872 frame_dummy)\n(named-symbol 0 __libc_start_main@GLIBC_2.34)\n(named-symbol 0 __cxa_finalize@GLIBC_2.17)\n(named-symbol 1988 _fini)\n(named-symbol 0 abort@GLIBC_2.17)\n(named-symbol 1600 _start)\n(named-symbol 1876 main)\n(named-symbol 1480 _init)\n(named-symbol 0 __libc_start_main)\n(named-symbol 0 __cxa_finalize)\n(named-symbol 0 abort)\n(require libc.so.6)\n(section 568 27)\n(section 596 36)\n(section 632 32)\n(section 664 28)\n(section 696 216)\n(section 912 141)\n(section 1054 18)\n(section 1072 48)\n(section 1120 264)\n(section 1384 96)\n(section 1480 24)\n(section 1504 96)\n(section 1600 388)\n(section 1988 20)\n(section 2008 4)\n(section 2012 60)\n(section 2072 160)\n(section 68992 8)\n(section 69000 8)\n(section 69008 496)\n(section 69504 128)\n(section 69632 16)\n(section 69648 16)\n(section 0 43)\n(section 0 2160)\n(section 0 557)\n(section 0 250)\n(segment 0 2232 true false true)\n(segment 68992 672 true true false)\n(subarch v8)\n(symbol-chunk 1652 20 1652)\n(symbol-chunk 1600 52 1600)\n(symbol-chunk 1876 112 1876)\n(symbol-value 1652 1652)\n(symbol-value 1680 1680)\n(symbol-value 1728 1728)\n(symbol-value 1792 1792)\n(symbol-value 1872 1872)\n(symbol-value 1988 1988)\n(symbol-value 1600 1600)\n(symbol-value 1876 1876)\n(symbol-value 1480 1480)\n(symbol-value 0 0)\n(system \"\")\n(vendor \"\")\n"), -Attr("abi-name","\"aarch64-linux-gnu-elf\"")]), -Sections([Section(".shstrtab", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x40\x06\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xd8\x1b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x38\x00\x09\x00\x40\x00\x1c\x00\x1b\x00\x06\x00\x00\x00\x04\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x04\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xb8\x08\x00\x00\x00\x00\x00\x00\xb8\x08\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x01\x00\x00\x00\x06\x00\x00\x00\x80\x0d\x00\x00\x00\x00\x00\x00\x80\x0d"), -Section(".strtab", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x40\x06\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xd8\x1b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x38\x00\x09\x00\x40\x00\x1c\x00\x1b\x00\x06\x00\x00\x00\x04\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x04\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xb8\x08\x00\x00\x00\x00\x00\x00\xb8\x08\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x01\x00\x00\x00\x06\x00\x00\x00\x80\x0d\x00\x00\x00\x00\x00\x00\x80\x0d\x01\x00\x00\x00\x00\x00\x80\x0d\x01\x00\x00\x00\x00\x00\x90\x02\x00\x00\x00\x00\x00\x00\xa0\x02\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x02\x00\x00\x00\x06\x00\x00\x00\x90\x0d\x00\x00\x00\x00\x00\x00\x90\x0d\x01\x00\x00\x00\x00\x00\x90\x0d\x01\x00\x00\x00\x00\x00\xf0\x01\x00\x00\x00\x00\x00\x00\xf0\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x04\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x50\xe5\x74\x64\x04\x00\x00\x00\xdc\x07\x00\x00\x00\x00\x00\x00\xdc\x07\x00\x00\x00\x00\x00\x00\xdc\x07\x00\x00\x00\x00\x00\x00\x3c\x00\x00\x00\x00\x00\x00\x00\x3c\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x51\xe5\x74\x64\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x52\xe5\x74\x64\x04\x00\x00\x00\x80\x0d\x00\x00\x00\x00\x00\x00\x80\x0d\x01\x00\x00\x00\x00\x00\x80\x0d\x01\x00\x00\x00\x00\x00\x80\x02\x00\x00\x00\x00\x00\x00\x80\x02\x00\x00\x00"), -Section(".symtab", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x40\x06\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xd8\x1b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x38\x00\x09\x00\x40\x00\x1c\x00\x1b\x00\x06\x00\x00\x00\x04\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x04\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xb8\x08\x00\x00\x00\x00\x00\x00\xb8\x08\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x01\x00\x00\x00\x06\x00\x00\x00\x80\x0d\x00\x00\x00\x00\x00\x00\x80\x0d\x01\x00\x00\x00\x00\x00\x80\x0d\x01\x00\x00\x00\x00\x00\x90\x02\x00\x00\x00\x00\x00\x00\xa0\x02\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x02\x00\x00\x00\x06\x00\x00\x00\x90\x0d\x00\x00\x00\x00\x00\x00\x90\x0d\x01\x00\x00\x00\x00\x00\x90\x0d\x01\x00\x00\x00\x00\x00\xf0\x01\x00\x00\x00\x00\x00\x00\xf0\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x04\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x50\xe5\x74\x64\x04\x00\x00\x00\xdc\x07\x00\x00\x00\x00\x00\x00\xdc\x07\x00\x00\x00\x00\x00\x00\xdc\x07\x00\x00\x00\x00\x00\x00\x3c\x00\x00\x00\x00\x00\x00\x00\x3c\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x51\xe5\x74\x64\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x52\xe5\x74\x64\x04\x00\x00\x00\x80\x0d\x00\x00\x00\x00\x00\x00\x80\x0d\x01\x00\x00\x00\x00\x00\x80\x0d\x01\x00\x00\x00\x00\x00\x80\x02\x00\x00\x00\x00\x00\x00\x80\x02\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x2f\x6c\x69\x62\x2f\x6c\x64\x2d\x6c\x69\x6e\x75\x78\x2d\x61\x61\x72\x63\x68\x36\x34\x2e\x73\x6f\x2e\x31\x00\x00\x04\x00\x00\x00\x14\x00\x00\x00\x03\x00\x00\x00\x47\x4e\x55\x00\xd4\xf3\xba\x40\x90\xbd\xe5\x96\x1a\x71\xe3\x18\x29\x22\x5d\x7e\x2b\x45\x6b\x4a\x04\x00\x00\x00\x10\x00\x00\x00\x01\x00\x00\x00\x47\x4e\x55\x00\x00\x00\x00\x00\x03\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x01\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x0b\x00\xc8\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x16\x00\x00\x10\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x48\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x22\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x22\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x73\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5f\x5f\x63\x78\x61\x5f\x66\x69\x6e\x61\x6c\x69\x7a\x65\x00\x5f\x5f\x6c\x69\x62\x63\x5f\x73\x74\x61\x72\x74\x5f\x6d\x61\x69\x6e\x00\x61\x62\x6f\x72\x74\x00\x6c\x69\x62\x63\x2e\x73\x6f\x2e\x36\x00\x47\x4c\x49\x42\x43\x5f\x32\x2e\x31\x37\x00\x47\x4c\x49\x42\x43\x5f\x32\x2e\x33\x34\x00\x5f\x49\x54\x4d\x5f\x64\x65\x72\x65\x67\x69\x73\x74\x65\x72\x54\x4d\x43\x6c\x6f\x6e\x65\x54\x61\x62\x6c\x65\x00\x5f\x5f\x67\x6d\x6f\x6e\x5f\x73\x74\x61\x72\x74\x5f\x5f\x00\x5f\x49\x54\x4d\x5f\x72\x65\x67\x69\x73\x74\x65\x72\x54\x4d\x43\x6c\x6f\x6e\x65\x54\x61\x62\x6c\x65\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x01\x00\x03\x00\x01\x00\x03\x00\x01\x00\x01\x00\x02\x00\x28\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x97\x91\x96\x06\x00\x00\x03\x00\x32\x00\x00\x00\x10\x00\x00\x00\xb4\x91\x96\x06\x00\x00\x02\x00\x3d\x00\x00\x00\x00\x00\x00\x00\x80\x0d\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x50\x07\x00\x00\x00\x00\x00\x00\x88\x0d\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\xd0\x0f\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x14\x10\x01\x00\x00\x00\x00\x00\xd8\x0f\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x18\x10\x01\x00\x00\x00\x00\x00\xe8\x0f\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x1c\x10\x01\x00\x00\x00\x00\x00\xf0\x0f\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x54\x07\x00\x00\x00\x00\x00\x00\x08\x10\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x08\x10\x01\x00\x00\x00\x00\x00\xc0\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xc8\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe0\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xf8\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x98\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xa0\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xa8\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xb0\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1f\x20\x03\xd5\xfd\x7b\xbf\xa9\xfd\x03\x00\x91\x28\x00\x00\x94\xfd\x7b\xc1\xa8\xc0\x03\x5f\xd6\xf0\x7b\xbf\xa9\x90\x00\x00\x90\x11\xca\x47\xf9\x10\x42\x3e\x91\x20\x02\x1f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x90\x00\x00\x90\x11\xce\x47\xf9\x10\x62\x3e\x91\x20\x02\x1f\xd6\x90\x00\x00\x90\x11\xd2\x47\xf9\x10\x82\x3e\x91\x20\x02\x1f\xd6\x90\x00\x00\x90\x11\xd6\x47\xf9\x10\xa2\x3e\x91\x20\x02\x1f\xd6\x90\x00\x00\x90\x11\xda\x47\xf9\x10\xc2\x3e\x91\x20\x02\x1f\xd6\x1f\x20\x03\xd5\x1d\x00\x80\xd2\x1e\x00\x80\xd2\xe5\x03\x00\xaa\xe1\x03\x40\xf9\xe2\x23\x00\x91\xe6\x03\x00\x91\x80\x00\x00\x90\x00\xf8\x47\xf9\x03\x00\x80\xd2\x04\x00\x80\xd2\xe5\xff\xff\x97\xf0\xff\xff\x97\x80\x00\x00\x90\x00\xf0\x47\xf9\x40\x00\x00\xb4\xe8\xff\xff\x17\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x80\x00\x00\xb0\x00\x40\x00\x91\x81\x00\x00\xb0\x21\x40\x00\x91\x3f\x00\x00\xeb\xc0\x00\x00\x54\x81\x00\x00\x90\x21\xe0\x47\xf9\x61\x00\x00\xb4\xf0\x03\x01\xaa\x00\x02\x1f\xd6\xc0\x03\x5f\xd6\x80\x00\x00\xb0\x00\x40\x00\x91\x81\x00\x00\xb0\x21\x40\x00\x91\x21\x00\x00\xcb\x22\xfc\x7f\xd3\x41\x0c\x81\x8b\x21\xfc\x41\x93\xc1\x00\x00\xb4\x82\x00\x00\x90\x42\xfc\x47\xf9\x62\x00\x00\xb4\xf0\x03\x02\xaa\x00\x02\x1f\xd6\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\xfd\x7b\xbe\xa9\xfd\x03\x00\x91\xf3\x0b\x00\xf9\x93\x00\x00\xb0\x60\x42\x40\x39\x40\x01\x00\x35\x80\x00\x00\x90\x00\xe4\x47\xf9\x80\x00\x00\xb4\x80\x00\x00\xb0\x00\x04\x40\xf9\xb9\xff\xff\x97\xd8\xff\xff\x97\x20\x00\x80\x52\x60\x42\x00\x39\xf3\x0b\x40\xf9\xfd\x7b\xc2\xa8\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\xdc\xff\xff\x17\x80\x00\x00\x90\x00\xe8\x47\xf9\x1f\x00\x00\xb9\x80\x00\x00\x90\x00\xe8\x47\xf9\x00\x00\x40\xb9\x01\x04\x00\x11\x80\x00\x00\x90\x00\xe8\x47\xf9\x01\x00\x00\xb9\x80\x00\x00\x90\x00\xf4\x47\xf9\x01\x00\x40\xb9\x80\x00\x00\x90\x00\xec\x47\xf9\x01\x00\x00\xb9\x80\x00\x00\x90\x00\xec\x47\xf9\x1f\x00\x00\xb9\x80\x00\x00\x90\x00\xe8\x47\xf9\x00\x00\x40\xb9\x01\x04\x00\x11\x80\x00\x00\x90\x00\xe8\x47\xf9\x01\x00\x00\xb9\x00\x00\x80\x52\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\xfd\x7b\xbf\xa9\xfd\x03\x00\x91\xfd\x7b\xc1\xa8\xc0\x03\x5f\xd6\x01\x00\x02\x00\x01\x1b\x03\x3b\x38\x00\x00\x00\x06\x00\x00\x00\x64\xfe\xff\xff\x50\x00\x00\x00\xb4\xfe\xff\xff\x64\x00\x00\x00\xe4\xfe\xff\xff\x78\x00\x00\x00\x24\xff\xff\xff\x8c\x00\x00\x00\x74\xff\xff\xff\xb0\x00\x00\x00\x78\xff\xff\xff\xc4\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x01\x7a\x52\x00\x04\x78\x1e\x01\x1b\x0c\x1f\x00\x10\x00\x00\x00\x18\x00\x00\x00\x0c\xfe\xff\xff\x34\x00\x00\x00\x00\x41\x07\x1e\x10\x00\x00\x00\x2c\x00\x00\x00\x48\xfe\xff\xff\x30\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x40\x00\x00\x00\x64\xfe\xff\xff\x3c\x00\x00\x00\x00\x00\x00\x00\x20\x00\x00\x00\x54\x00\x00\x00"), -Section(".comment", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x40\x06\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xd8\x1b\x00"), -Section(".interp", 0x238, "\x2f\x6c\x69\x62\x2f\x6c\x64\x2d\x6c\x69\x6e\x75\x78\x2d\x61\x61\x72\x63\x68\x36\x34\x2e\x73\x6f\x2e\x31\x00"), -Section(".note.gnu.build-id", 0x254, "\x04\x00\x00\x00\x14\x00\x00\x00\x03\x00\x00\x00\x47\x4e\x55\x00\xd4\xf3\xba\x40\x90\xbd\xe5\x96\x1a\x71\xe3\x18\x29\x22\x5d\x7e\x2b\x45\x6b\x4a"), -Section(".note.ABI-tag", 0x278, "\x04\x00\x00\x00\x10\x00\x00\x00\x01\x00\x00\x00\x47\x4e\x55\x00\x00\x00\x00\x00\x03\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00"), -Section(".gnu.hash", 0x298, "\x01\x00\x00\x00\x01\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".dynsym", 0x2B8, "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x0b\x00\xc8\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x16\x00\x00\x10\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x48\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x22\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x22\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x73\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".dynstr", 0x390, "\x00\x5f\x5f\x63\x78\x61\x5f\x66\x69\x6e\x61\x6c\x69\x7a\x65\x00\x5f\x5f\x6c\x69\x62\x63\x5f\x73\x74\x61\x72\x74\x5f\x6d\x61\x69\x6e\x00\x61\x62\x6f\x72\x74\x00\x6c\x69\x62\x63\x2e\x73\x6f\x2e\x36\x00\x47\x4c\x49\x42\x43\x5f\x32\x2e\x31\x37\x00\x47\x4c\x49\x42\x43\x5f\x32\x2e\x33\x34\x00\x5f\x49\x54\x4d\x5f\x64\x65\x72\x65\x67\x69\x73\x74\x65\x72\x54\x4d\x43\x6c\x6f\x6e\x65\x54\x61\x62\x6c\x65\x00\x5f\x5f\x67\x6d\x6f\x6e\x5f\x73\x74\x61\x72\x74\x5f\x5f\x00\x5f\x49\x54\x4d\x5f\x72\x65\x67\x69\x73\x74\x65\x72\x54\x4d\x43\x6c\x6f\x6e\x65\x54\x61\x62\x6c\x65\x00"), -Section(".gnu.version", 0x41E, "\x00\x00\x00\x00\x00\x00\x02\x00\x01\x00\x03\x00\x01\x00\x03\x00\x01\x00"), -Section(".gnu.version_r", 0x430, "\x01\x00\x02\x00\x28\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x97\x91\x96\x06\x00\x00\x03\x00\x32\x00\x00\x00\x10\x00\x00\x00\xb4\x91\x96\x06\x00\x00\x02\x00\x3d\x00\x00\x00\x00\x00\x00\x00"), -Section(".rela.dyn", 0x460, "\x80\x0d\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x50\x07\x00\x00\x00\x00\x00\x00\x88\x0d\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\xd0\x0f\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x14\x10\x01\x00\x00\x00\x00\x00\xd8\x0f\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x18\x10\x01\x00\x00\x00\x00\x00\xe8\x0f\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x1c\x10\x01\x00\x00\x00\x00\x00\xf0\x0f\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x54\x07\x00\x00\x00\x00\x00\x00\x08\x10\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x08\x10\x01\x00\x00\x00\x00\x00\xc0\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xc8\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe0\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xf8\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".rela.plt", 0x568, "\x98\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xa0\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xa8\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xb0\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".init", 0x5C8, "\x1f\x20\x03\xd5\xfd\x7b\xbf\xa9\xfd\x03\x00\x91\x28\x00\x00\x94\xfd\x7b\xc1\xa8\xc0\x03\x5f\xd6"), -Section(".plt", 0x5E0, "\xf0\x7b\xbf\xa9\x90\x00\x00\x90\x11\xca\x47\xf9\x10\x42\x3e\x91\x20\x02\x1f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x90\x00\x00\x90\x11\xce\x47\xf9\x10\x62\x3e\x91\x20\x02\x1f\xd6\x90\x00\x00\x90\x11\xd2\x47\xf9\x10\x82\x3e\x91\x20\x02\x1f\xd6\x90\x00\x00\x90\x11\xd6\x47\xf9\x10\xa2\x3e\x91\x20\x02\x1f\xd6\x90\x00\x00\x90\x11\xda\x47\xf9\x10\xc2\x3e\x91\x20\x02\x1f\xd6"), -Section(".fini", 0x7C4, "\x1f\x20\x03\xd5\xfd\x7b\xbf\xa9\xfd\x03\x00\x91\xfd\x7b\xc1\xa8\xc0\x03\x5f\xd6"), -Section(".rodata", 0x7D8, "\x01\x00\x02\x00"), -Section(".eh_frame_hdr", 0x7DC, "\x01\x1b\x03\x3b\x38\x00\x00\x00\x06\x00\x00\x00\x64\xfe\xff\xff\x50\x00\x00\x00\xb4\xfe\xff\xff\x64\x00\x00\x00\xe4\xfe\xff\xff\x78\x00\x00\x00\x24\xff\xff\xff\x8c\x00\x00\x00\x74\xff\xff\xff\xb0\x00\x00\x00\x78\xff\xff\xff\xc4\x00\x00\x00"), -Section(".eh_frame", 0x818, "\x10\x00\x00\x00\x00\x00\x00\x00\x01\x7a\x52\x00\x04\x78\x1e\x01\x1b\x0c\x1f\x00\x10\x00\x00\x00\x18\x00\x00\x00\x0c\xfe\xff\xff\x34\x00\x00\x00\x00\x41\x07\x1e\x10\x00\x00\x00\x2c\x00\x00\x00\x48\xfe\xff\xff\x30\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x40\x00\x00\x00\x64\xfe\xff\xff\x3c\x00\x00\x00\x00\x00\x00\x00\x20\x00\x00\x00\x54\x00\x00\x00\x90\xfe\xff\xff\x48\x00\x00\x00\x00\x41\x0e\x20\x9d\x04\x9e\x03\x42\x93\x02\x4e\xde\xdd\xd3\x0e\x00\x00\x00\x00\x10\x00\x00\x00\x78\x00\x00\x00\xbc\xfe\xff\xff\x04\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x8c\x00\x00\x00\xac\xfe\xff\xff\x70\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".fini_array", 0x10D88, "\x00\x07\x00\x00\x00\x00\x00\x00"), -Section(".dynamic", 0x10D90, "\x01\x00\x00\x00\x00\x00\x00\x00\x28\x00\x00\x00\x00\x00\x00\x00\x0c\x00\x00\x00\x00\x00\x00\x00\xc8\x05\x00\x00\x00\x00\x00\x00\x0d\x00\x00\x00\x00\x00\x00\x00\xc4\x07\x00\x00\x00\x00\x00\x00\x19\x00\x00\x00\x00\x00\x00\x00\x80\x0d\x01\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x1a\x00\x00\x00\x00\x00\x00\x00\x88\x0d\x01\x00\x00\x00\x00\x00\x1c\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\xf5\xfe\xff\x6f\x00\x00\x00\x00\x98\x02\x00\x00\x00\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x90\x03\x00\x00\x00\x00\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\xb8\x02\x00\x00\x00\x00\x00\x00\x0a\x00\x00\x00\x00\x00\x00\x00\x8d\x00\x00\x00\x00\x00\x00\x00\x0b\x00\x00\x00\x00\x00\x00\x00\x18\x00\x00\x00\x00\x00\x00\x00\x15\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x80\x0f\x01\x00\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x60\x00\x00\x00\x00\x00\x00\x00\x14\x00\x00\x00\x00\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x17\x00\x00\x00\x00\x00\x00\x00\x68\x05\x00\x00\x00\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x60\x04\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x08\x01\x00\x00\x00\x00\x00\x00\x09\x00\x00\x00\x00\x00\x00\x00\x18\x00\x00\x00\x00\x00\x00\x00\x1e\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\xfb\xff\xff\x6f\x00\x00\x00\x00\x01\x00\x00\x08\x00\x00\x00\x00\xfe\xff\xff\x6f\x00\x00\x00\x00\x30\x04\x00\x00\x00\x00\x00\x00\xff\xff\xff\x6f\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\xf0\xff\xff\x6f\x00\x00\x00\x00\x1e\x04\x00\x00\x00\x00\x00\x00\xf9\xff\xff\x6f\x00\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".got", 0x10F80, "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe0\x05\x00\x00\x00\x00\x00\x00\xe0\x05\x00\x00\x00\x00\x00\x00\xe0\x05\x00\x00\x00\x00\x00\x00\xe0\x05\x00\x00\x00\x00\x00\x00\x90\x0d\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x14\x10\x01\x00\x00\x00\x00\x00\x18\x10\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1c\x10\x01\x00\x00\x00\x00\x00\x54\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".data", 0x11000, "\x00\x00\x00\x00\x00\x00\x00\x00\x08\x10\x01\x00\x00\x00\x00\x00"), -Section(".init_array", 0x10D80, "\x50\x07\x00\x00\x00\x00\x00\x00"), -Section(".text", 0x640, "\x1f\x20\x03\xd5\x1d\x00\x80\xd2\x1e\x00\x80\xd2\xe5\x03\x00\xaa\xe1\x03\x40\xf9\xe2\x23\x00\x91\xe6\x03\x00\x91\x80\x00\x00\x90\x00\xf8\x47\xf9\x03\x00\x80\xd2\x04\x00\x80\xd2\xe5\xff\xff\x97\xf0\xff\xff\x97\x80\x00\x00\x90\x00\xf0\x47\xf9\x40\x00\x00\xb4\xe8\xff\xff\x17\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x80\x00\x00\xb0\x00\x40\x00\x91\x81\x00\x00\xb0\x21\x40\x00\x91\x3f\x00\x00\xeb\xc0\x00\x00\x54\x81\x00\x00\x90\x21\xe0\x47\xf9\x61\x00\x00\xb4\xf0\x03\x01\xaa\x00\x02\x1f\xd6\xc0\x03\x5f\xd6\x80\x00\x00\xb0\x00\x40\x00\x91\x81\x00\x00\xb0\x21\x40\x00\x91\x21\x00\x00\xcb\x22\xfc\x7f\xd3\x41\x0c\x81\x8b\x21\xfc\x41\x93\xc1\x00\x00\xb4\x82\x00\x00\x90\x42\xfc\x47\xf9\x62\x00\x00\xb4\xf0\x03\x02\xaa\x00\x02\x1f\xd6\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\xfd\x7b\xbe\xa9\xfd\x03\x00\x91\xf3\x0b\x00\xf9\x93\x00\x00\xb0\x60\x42\x40\x39\x40\x01\x00\x35\x80\x00\x00\x90\x00\xe4\x47\xf9\x80\x00\x00\xb4\x80\x00\x00\xb0\x00\x04\x40\xf9\xb9\xff\xff\x97\xd8\xff\xff\x97\x20\x00\x80\x52\x60\x42\x00\x39\xf3\x0b\x40\xf9\xfd\x7b\xc2\xa8\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\xdc\xff\xff\x17\x80\x00\x00\x90\x00\xe8\x47\xf9\x1f\x00\x00\xb9\x80\x00\x00\x90\x00\xe8\x47\xf9\x00\x00\x40\xb9\x01\x04\x00\x11\x80\x00\x00\x90\x00\xe8\x47\xf9\x01\x00\x00\xb9\x80\x00\x00\x90\x00\xf4\x47\xf9\x01\x00\x40\xb9\x80\x00\x00\x90\x00\xec\x47\xf9\x01\x00\x00\xb9\x80\x00\x00\x90\x00\xec\x47\xf9\x1f\x00\x00\xb9\x80\x00\x00\x90\x00\xe8\x47\xf9\x00\x00\x40\xb9\x01\x04\x00\x11\x80\x00\x00\x90\x00\xe8\x47\xf9\x01\x00\x00\xb9\x00\x00\x80\x52\xc0\x03\x5f\xd6")]), -Memmap([Annotation(Region(0x0,0x8B7), Attr("segment","02 0 2232")), -Annotation(Region(0x640,0x673), Attr("symbol","\"_start\"")), -Annotation(Region(0x0,0xF9), Attr("section","\".shstrtab\"")), -Annotation(Region(0x0,0x22C), Attr("section","\".strtab\"")), -Annotation(Region(0x0,0x86F), Attr("section","\".symtab\"")), -Annotation(Region(0x0,0x2A), Attr("section","\".comment\"")), -Annotation(Region(0x238,0x252), Attr("section","\".interp\"")), -Annotation(Region(0x254,0x277), Attr("section","\".note.gnu.build-id\"")), -Annotation(Region(0x278,0x297), Attr("section","\".note.ABI-tag\"")), -Annotation(Region(0x298,0x2B3), Attr("section","\".gnu.hash\"")), -Annotation(Region(0x2B8,0x38F), Attr("section","\".dynsym\"")), -Annotation(Region(0x390,0x41C), Attr("section","\".dynstr\"")), -Annotation(Region(0x41E,0x42F), Attr("section","\".gnu.version\"")), -Annotation(Region(0x430,0x45F), Attr("section","\".gnu.version_r\"")), -Annotation(Region(0x460,0x567), Attr("section","\".rela.dyn\"")), -Annotation(Region(0x568,0x5C7), Attr("section","\".rela.plt\"")), -Annotation(Region(0x5C8,0x5DF), Attr("section","\".init\"")), -Annotation(Region(0x5E0,0x63F), Attr("section","\".plt\"")), -Annotation(Region(0x5C8,0x5DF), Attr("code-region","()")), -Annotation(Region(0x5E0,0x63F), Attr("code-region","()")), -Annotation(Region(0x640,0x673), Attr("symbol-info","_start 0x640 52")), -Annotation(Region(0x674,0x687), Attr("symbol","\"call_weak_fn\"")), -Annotation(Region(0x674,0x687), Attr("symbol-info","call_weak_fn 0x674 20")), -Annotation(Region(0x754,0x7C3), Attr("symbol","\"main\"")), -Annotation(Region(0x754,0x7C3), Attr("symbol-info","main 0x754 112")), -Annotation(Region(0x7C4,0x7D7), Attr("section","\".fini\"")), -Annotation(Region(0x7D8,0x7DB), Attr("section","\".rodata\"")), -Annotation(Region(0x7DC,0x817), Attr("section","\".eh_frame_hdr\"")), -Annotation(Region(0x818,0x8B7), Attr("section","\".eh_frame\"")), -Annotation(Region(0x10D80,0x1100F), Attr("segment","03 0x10D80 672")), -Annotation(Region(0x10D88,0x10D8F), Attr("section","\".fini_array\"")), -Annotation(Region(0x10D90,0x10F7F), Attr("section","\".dynamic\"")), -Annotation(Region(0x10F80,0x10FFF), Attr("section","\".got\"")), -Annotation(Region(0x11000,0x1100F), Attr("section","\".data\"")), -Annotation(Region(0x10D80,0x10D87), Attr("section","\".init_array\"")), -Annotation(Region(0x640,0x7C3), Attr("section","\".text\"")), -Annotation(Region(0x640,0x7C3), Attr("code-region","()")), -Annotation(Region(0x7C4,0x7D7), Attr("code-region","()"))]), -Program(Tid(1_704, "%000006a8"), Attrs([]), - Subs([Sub(Tid(1_654, "@__cxa_finalize"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x610"), -Attr("stub","()")]), "__cxa_finalize", Args([Arg(Tid(1_705, "%000006a9"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("__cxa_finalize_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(1_026, "@__cxa_finalize"), - Attrs([Attr("address","0x610")]), Phis([]), -Defs([Def(Tid(1_274, "%000004fa"), Attrs([Attr("address","0x610"), -Attr("insn","adrp x16, #65536")]), Var("R16",Imm(64)), Int(65536,64)), -Def(Tid(1_281, "%00000501"), Attrs([Attr("address","0x614"), -Attr("insn","ldr x17, [x16, #0xfa0]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(4000,64)),LittleEndian(),64)), -Def(Tid(1_287, "%00000507"), Attrs([Attr("address","0x618"), -Attr("insn","add x16, x16, #0xfa0")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(4000,64)))]), Jmps([Call(Tid(1_292, "%0000050c"), - Attrs([Attr("address","0x61C"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), -Sub(Tid(1_655, "@__do_global_dtors_aux"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x700")]), - "__do_global_dtors_aux", Args([Arg(Tid(1_706, "%000006aa"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("__do_global_dtors_aux_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(702, "@__do_global_dtors_aux"), - Attrs([Attr("address","0x700")]), Phis([]), Defs([Def(Tid(706, "%000002c2"), - Attrs([Attr("address","0x700"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("#3",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(18446744073709551584,64))), -Def(Tid(712, "%000002c8"), Attrs([Attr("address","0x700"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("#3",Imm(64)),Var("R29",Imm(64)),LittleEndian(),64)), -Def(Tid(718, "%000002ce"), Attrs([Attr("address","0x700"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("#3",Imm(64)),Int(8,64)),Var("R30",Imm(64)),LittleEndian(),64)), -Def(Tid(722, "%000002d2"), Attrs([Attr("address","0x700"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("R31",Imm(64)), -Var("#3",Imm(64))), Def(Tid(728, "%000002d8"), - Attrs([Attr("address","0x704"), Attr("insn","mov x29, sp")]), - Var("R29",Imm(64)), Var("R31",Imm(64))), Def(Tid(736, "%000002e0"), - Attrs([Attr("address","0x708"), Attr("insn","str x19, [sp, #0x10]")]), - Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(16,64)),Var("R19",Imm(64)),LittleEndian(),64)), -Def(Tid(741, "%000002e5"), Attrs([Attr("address","0x70C"), -Attr("insn","adrp x19, #69632")]), Var("R19",Imm(64)), Int(69632,64)), -Def(Tid(748, "%000002ec"), Attrs([Attr("address","0x710"), -Attr("insn","ldrb w0, [x19, #0x10]")]), Var("R0",Imm(64)), -UNSIGNED(64,Load(Var("mem",Mem(64,8)),PLUS(Var("R19",Imm(64)),Int(16,64)),LittleEndian(),8)))]), -Jmps([Goto(Tid(755, "%000002f3"), Attrs([Attr("address","0x714"), -Attr("insn","cbnz w0, #0x28")]), - NEQ(Extract(31,0,Var("R0",Imm(64))),Int(0,32)), -Direct(Tid(753, "%000002f1"))), Goto(Tid(1_694, "%0000069e"), Attrs([]), - Int(1,1), Direct(Tid(971, "%000003cb")))])), Blk(Tid(971, "%000003cb"), - Attrs([Attr("address","0x718")]), Phis([]), Defs([Def(Tid(974, "%000003ce"), - Attrs([Attr("address","0x718"), Attr("insn","adrp x0, #65536")]), - Var("R0",Imm(64)), Int(65536,64)), Def(Tid(981, "%000003d5"), - Attrs([Attr("address","0x71C"), Attr("insn","ldr x0, [x0, #0xfc8]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(4040,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(987, "%000003db"), Attrs([Attr("address","0x720"), -Attr("insn","cbz x0, #0x10")]), EQ(Var("R0",Imm(64)),Int(0,64)), -Direct(Tid(985, "%000003d9"))), Goto(Tid(1_695, "%0000069f"), Attrs([]), - Int(1,1), Direct(Tid(1_010, "%000003f2")))])), Blk(Tid(1_010, "%000003f2"), - Attrs([Attr("address","0x724")]), Phis([]), -Defs([Def(Tid(1_013, "%000003f5"), Attrs([Attr("address","0x724"), -Attr("insn","adrp x0, #69632")]), Var("R0",Imm(64)), Int(69632,64)), -Def(Tid(1_020, "%000003fc"), Attrs([Attr("address","0x728"), -Attr("insn","ldr x0, [x0, #0x8]")]), Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(1_025, "%00000401"), Attrs([Attr("address","0x72C"), -Attr("insn","bl #-0x11c")]), Var("R30",Imm(64)), Int(1840,64))]), -Jmps([Call(Tid(1_028, "%00000404"), Attrs([Attr("address","0x72C"), -Attr("insn","bl #-0x11c")]), Int(1,1), -(Direct(Tid(1_654, "@__cxa_finalize")),Direct(Tid(985, "%000003d9"))))])), -Blk(Tid(985, "%000003d9"), Attrs([Attr("address","0x730")]), Phis([]), -Defs([Def(Tid(993, "%000003e1"), Attrs([Attr("address","0x730"), -Attr("insn","bl #-0xa0")]), Var("R30",Imm(64)), Int(1844,64))]), -Jmps([Call(Tid(995, "%000003e3"), Attrs([Attr("address","0x730"), -Attr("insn","bl #-0xa0")]), Int(1,1), -(Direct(Tid(1_668, "@deregister_tm_clones")),Direct(Tid(997, "%000003e5"))))])), -Blk(Tid(997, "%000003e5"), Attrs([Attr("address","0x734")]), Phis([]), -Defs([Def(Tid(1_000, "%000003e8"), Attrs([Attr("address","0x734"), -Attr("insn","mov w0, #0x1")]), Var("R0",Imm(64)), Int(1,64)), -Def(Tid(1_008, "%000003f0"), Attrs([Attr("address","0x738"), -Attr("insn","strb w0, [x19, #0x10]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R19",Imm(64)),Int(16,64)),Extract(7,0,Var("R0",Imm(64))),LittleEndian(),8))]), -Jmps([Goto(Tid(1_696, "%000006a0"), Attrs([]), Int(1,1), -Direct(Tid(753, "%000002f1")))])), Blk(Tid(753, "%000002f1"), - Attrs([Attr("address","0x73C")]), Phis([]), Defs([Def(Tid(763, "%000002fb"), - Attrs([Attr("address","0x73C"), Attr("insn","ldr x19, [sp, #0x10]")]), - Var("R19",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(16,64)),LittleEndian(),64)), -Def(Tid(770, "%00000302"), Attrs([Attr("address","0x740"), -Attr("insn","ldp x29, x30, [sp], #0x20")]), Var("R29",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(775, "%00000307"), Attrs([Attr("address","0x740"), -Attr("insn","ldp x29, x30, [sp], #0x20")]), Var("R30",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(779, "%0000030b"), Attrs([Attr("address","0x740"), -Attr("insn","ldp x29, x30, [sp], #0x20")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(32,64)))]), Jmps([Call(Tid(784, "%00000310"), - Attrs([Attr("address","0x744"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), Sub(Tid(1_659, "@__libc_start_main"), - Attrs([Attr("c.proto","signed (*)(signed (*)(signed , char** , char** );* main, signed , char** , \nvoid* auxv)"), -Attr("address","0x600"), Attr("stub","()")]), "__libc_start_main", - Args([Arg(Tid(1_707, "%000006ab"), - Attrs([Attr("c.layout","**[ : 64]"), -Attr("c.data","Top:u64 ptr ptr"), -Attr("c.type","signed (*)(signed , char** , char** );*")]), - Var("__libc_start_main_main",Imm(64)), Var("R0",Imm(64)), In()), -Arg(Tid(1_708, "%000006ac"), Attrs([Attr("c.layout","[signed : 32]"), -Attr("c.data","Top:u32"), Attr("c.type","signed")]), - Var("__libc_start_main_arg2",Imm(32)), LOW(32,Var("R1",Imm(64))), In()), -Arg(Tid(1_709, "%000006ad"), Attrs([Attr("c.layout","**[char : 8]"), -Attr("c.data","Top:u8 ptr ptr"), Attr("c.type","char**")]), - Var("__libc_start_main_arg3",Imm(64)), Var("R2",Imm(64)), Both()), -Arg(Tid(1_710, "%000006ae"), Attrs([Attr("c.layout","*[ : 8]"), -Attr("c.data","{} ptr"), Attr("c.type","void*")]), - Var("__libc_start_main_auxv",Imm(64)), Var("R3",Imm(64)), Both()), -Arg(Tid(1_711, "%000006af"), Attrs([Attr("c.layout","[signed : 32]"), -Attr("c.data","Top:u32"), Attr("c.type","signed")]), - Var("__libc_start_main_result",Imm(32)), LOW(32,Var("R0",Imm(64))), -Out())]), Blks([Blk(Tid(535, "@__libc_start_main"), - Attrs([Attr("address","0x600")]), Phis([]), -Defs([Def(Tid(1_252, "%000004e4"), Attrs([Attr("address","0x600"), -Attr("insn","adrp x16, #65536")]), Var("R16",Imm(64)), Int(65536,64)), -Def(Tid(1_259, "%000004eb"), Attrs([Attr("address","0x604"), -Attr("insn","ldr x17, [x16, #0xf98]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(3992,64)),LittleEndian(),64)), -Def(Tid(1_265, "%000004f1"), Attrs([Attr("address","0x608"), -Attr("insn","add x16, x16, #0xf98")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(3992,64)))]), Jmps([Call(Tid(1_270, "%000004f6"), - Attrs([Attr("address","0x60C"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), Sub(Tid(1_660, "@_fini"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x7C4")]), - "_fini", Args([Arg(Tid(1_712, "%000006b0"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("_fini_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(31, "@_fini"), - Attrs([Attr("address","0x7C4")]), Phis([]), Defs([Def(Tid(37, "%00000025"), - Attrs([Attr("address","0x7C8"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("#0",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(18446744073709551600,64))), -Def(Tid(43, "%0000002b"), Attrs([Attr("address","0x7C8"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("#0",Imm(64)),Var("R29",Imm(64)),LittleEndian(),64)), -Def(Tid(49, "%00000031"), Attrs([Attr("address","0x7C8"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("#0",Imm(64)),Int(8,64)),Var("R30",Imm(64)),LittleEndian(),64)), -Def(Tid(53, "%00000035"), Attrs([Attr("address","0x7C8"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("R31",Imm(64)), -Var("#0",Imm(64))), Def(Tid(59, "%0000003b"), Attrs([Attr("address","0x7CC"), -Attr("insn","mov x29, sp")]), Var("R29",Imm(64)), Var("R31",Imm(64))), -Def(Tid(66, "%00000042"), Attrs([Attr("address","0x7D0"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R29",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(71, "%00000047"), Attrs([Attr("address","0x7D0"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R30",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(75, "%0000004b"), Attrs([Attr("address","0x7D0"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(16,64)))]), Jmps([Call(Tid(80, "%00000050"), - Attrs([Attr("address","0x7D4"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), Sub(Tid(1_661, "@_init"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x5C8")]), - "_init", Args([Arg(Tid(1_713, "%000006b1"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("_init_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(1_468, "@_init"), - Attrs([Attr("address","0x5C8")]), Phis([]), -Defs([Def(Tid(1_474, "%000005c2"), Attrs([Attr("address","0x5CC"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("#5",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(18446744073709551600,64))), -Def(Tid(1_480, "%000005c8"), Attrs([Attr("address","0x5CC"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("#5",Imm(64)),Var("R29",Imm(64)),LittleEndian(),64)), -Def(Tid(1_486, "%000005ce"), Attrs([Attr("address","0x5CC"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("#5",Imm(64)),Int(8,64)),Var("R30",Imm(64)),LittleEndian(),64)), -Def(Tid(1_490, "%000005d2"), Attrs([Attr("address","0x5CC"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("R31",Imm(64)), -Var("#5",Imm(64))), Def(Tid(1_496, "%000005d8"), - Attrs([Attr("address","0x5D0"), Attr("insn","mov x29, sp")]), - Var("R29",Imm(64)), Var("R31",Imm(64))), Def(Tid(1_501, "%000005dd"), - Attrs([Attr("address","0x5D4"), Attr("insn","bl #0xa0")]), - Var("R30",Imm(64)), Int(1496,64))]), Jmps([Call(Tid(1_503, "%000005df"), - Attrs([Attr("address","0x5D4"), Attr("insn","bl #0xa0")]), Int(1,1), -(Direct(Tid(1_666, "@call_weak_fn")),Direct(Tid(1_505, "%000005e1"))))])), -Blk(Tid(1_505, "%000005e1"), Attrs([Attr("address","0x5D8")]), Phis([]), -Defs([Def(Tid(1_510, "%000005e6"), Attrs([Attr("address","0x5D8"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R29",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(1_515, "%000005eb"), Attrs([Attr("address","0x5D8"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R30",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(1_519, "%000005ef"), Attrs([Attr("address","0x5D8"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(16,64)))]), Jmps([Call(Tid(1_524, "%000005f4"), - Attrs([Attr("address","0x5DC"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), Sub(Tid(1_662, "@_start"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x640"), -Attr("stub","()"), Attr("entry-point","()")]), "_start", - Args([Arg(Tid(1_714, "%000006b2"), Attrs([Attr("c.layout","[signed : 32]"), -Attr("c.data","Top:u32"), Attr("c.type","signed")]), - Var("_start_result",Imm(32)), LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(472, "@_start"), Attrs([Attr("address","0x640")]), Phis([]), -Defs([Def(Tid(477, "%000001dd"), Attrs([Attr("address","0x644"), -Attr("insn","mov x29, #0x0")]), Var("R29",Imm(64)), Int(0,64)), -Def(Tid(482, "%000001e2"), Attrs([Attr("address","0x648"), -Attr("insn","mov x30, #0x0")]), Var("R30",Imm(64)), Int(0,64)), -Def(Tid(488, "%000001e8"), Attrs([Attr("address","0x64C"), -Attr("insn","mov x5, x0")]), Var("R5",Imm(64)), Var("R0",Imm(64))), -Def(Tid(495, "%000001ef"), Attrs([Attr("address","0x650"), -Attr("insn","ldr x1, [sp]")]), Var("R1",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(501, "%000001f5"), Attrs([Attr("address","0x654"), -Attr("insn","add x2, sp, #0x8")]), Var("R2",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(8,64))), Def(Tid(507, "%000001fb"), - Attrs([Attr("address","0x658"), Attr("insn","mov x6, sp")]), - Var("R6",Imm(64)), Var("R31",Imm(64))), Def(Tid(512, "%00000200"), - Attrs([Attr("address","0x65C"), Attr("insn","adrp x0, #65536")]), - Var("R0",Imm(64)), Int(65536,64)), Def(Tid(519, "%00000207"), - Attrs([Attr("address","0x660"), Attr("insn","ldr x0, [x0, #0xff0]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(4080,64)),LittleEndian(),64)), -Def(Tid(524, "%0000020c"), Attrs([Attr("address","0x664"), -Attr("insn","mov x3, #0x0")]), Var("R3",Imm(64)), Int(0,64)), -Def(Tid(529, "%00000211"), Attrs([Attr("address","0x668"), -Attr("insn","mov x4, #0x0")]), Var("R4",Imm(64)), Int(0,64)), -Def(Tid(534, "%00000216"), Attrs([Attr("address","0x66C"), -Attr("insn","bl #-0x6c")]), Var("R30",Imm(64)), Int(1648,64))]), -Jmps([Call(Tid(537, "%00000219"), Attrs([Attr("address","0x66C"), -Attr("insn","bl #-0x6c")]), Int(1,1), -(Direct(Tid(1_659, "@__libc_start_main")),Direct(Tid(539, "%0000021b"))))])), -Blk(Tid(539, "%0000021b"), Attrs([Attr("address","0x670")]), Phis([]), -Defs([Def(Tid(542, "%0000021e"), Attrs([Attr("address","0x670"), -Attr("insn","bl #-0x40")]), Var("R30",Imm(64)), Int(1652,64))]), -Jmps([Call(Tid(545, "%00000221"), Attrs([Attr("address","0x670"), -Attr("insn","bl #-0x40")]), Int(1,1), -(Direct(Tid(1_665, "@abort")),Direct(Tid(1_697, "%000006a1"))))])), -Blk(Tid(1_697, "%000006a1"), Attrs([]), Phis([]), Defs([]), -Jmps([Call(Tid(1_698, "%000006a2"), Attrs([]), Int(1,1), -(Direct(Tid(1_666, "@call_weak_fn")),))]))])), Sub(Tid(1_665, "@abort"), - Attrs([Attr("noreturn","()"), Attr("c.proto","void (*)(void)"), -Attr("address","0x630"), Attr("stub","()")]), "abort", Args([]), -Blks([Blk(Tid(543, "@abort"), Attrs([Attr("address","0x630")]), Phis([]), -Defs([Def(Tid(1_318, "%00000526"), Attrs([Attr("address","0x630"), -Attr("insn","adrp x16, #65536")]), Var("R16",Imm(64)), Int(65536,64)), -Def(Tid(1_325, "%0000052d"), Attrs([Attr("address","0x634"), -Attr("insn","ldr x17, [x16, #0xfb0]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(4016,64)),LittleEndian(),64)), -Def(Tid(1_331, "%00000533"), Attrs([Attr("address","0x638"), -Attr("insn","add x16, x16, #0xfb0")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(4016,64)))]), Jmps([Call(Tid(1_336, "%00000538"), - Attrs([Attr("address","0x63C"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), Sub(Tid(1_666, "@call_weak_fn"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x674")]), - "call_weak_fn", Args([Arg(Tid(1_715, "%000006b3"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("call_weak_fn_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(547, "@call_weak_fn"), - Attrs([Attr("address","0x674")]), Phis([]), Defs([Def(Tid(550, "%00000226"), - Attrs([Attr("address","0x674"), Attr("insn","adrp x0, #65536")]), - Var("R0",Imm(64)), Int(65536,64)), Def(Tid(557, "%0000022d"), - Attrs([Attr("address","0x678"), Attr("insn","ldr x0, [x0, #0xfe0]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(4064,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(563, "%00000233"), Attrs([Attr("address","0x67C"), -Attr("insn","cbz x0, #0x8")]), EQ(Var("R0",Imm(64)),Int(0,64)), -Direct(Tid(561, "%00000231"))), Goto(Tid(1_699, "%000006a3"), Attrs([]), - Int(1,1), Direct(Tid(1_090, "%00000442")))])), Blk(Tid(561, "%00000231"), - Attrs([Attr("address","0x684")]), Phis([]), Defs([]), -Jmps([Call(Tid(569, "%00000239"), Attrs([Attr("address","0x684"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))])), -Blk(Tid(1_090, "%00000442"), Attrs([Attr("address","0x680")]), Phis([]), -Defs([]), Jmps([Goto(Tid(1_093, "%00000445"), Attrs([Attr("address","0x680"), -Attr("insn","b #-0x60")]), Int(1,1), -Direct(Tid(1_091, "@__gmon_start__")))])), Blk(Tid(1_091, "@__gmon_start__"), - Attrs([Attr("address","0x620")]), Phis([]), -Defs([Def(Tid(1_296, "%00000510"), Attrs([Attr("address","0x620"), -Attr("insn","adrp x16, #65536")]), Var("R16",Imm(64)), Int(65536,64)), -Def(Tid(1_303, "%00000517"), Attrs([Attr("address","0x624"), -Attr("insn","ldr x17, [x16, #0xfa8]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(4008,64)),LittleEndian(),64)), -Def(Tid(1_309, "%0000051d"), Attrs([Attr("address","0x628"), -Attr("insn","add x16, x16, #0xfa8")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(4008,64)))]), Jmps([Call(Tid(1_314, "%00000522"), - Attrs([Attr("address","0x62C"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), -Sub(Tid(1_668, "@deregister_tm_clones"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x690")]), - "deregister_tm_clones", Args([Arg(Tid(1_716, "%000006b4"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("deregister_tm_clones_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(575, "@deregister_tm_clones"), - Attrs([Attr("address","0x690")]), Phis([]), Defs([Def(Tid(578, "%00000242"), - Attrs([Attr("address","0x690"), Attr("insn","adrp x0, #69632")]), - Var("R0",Imm(64)), Int(69632,64)), Def(Tid(584, "%00000248"), - Attrs([Attr("address","0x694"), Attr("insn","add x0, x0, #0x10")]), - Var("R0",Imm(64)), PLUS(Var("R0",Imm(64)),Int(16,64))), -Def(Tid(589, "%0000024d"), Attrs([Attr("address","0x698"), -Attr("insn","adrp x1, #69632")]), Var("R1",Imm(64)), Int(69632,64)), -Def(Tid(595, "%00000253"), Attrs([Attr("address","0x69C"), -Attr("insn","add x1, x1, #0x10")]), Var("R1",Imm(64)), -PLUS(Var("R1",Imm(64)),Int(16,64))), Def(Tid(601, "%00000259"), - Attrs([Attr("address","0x6A0"), Attr("insn","cmp x1, x0")]), - Var("#1",Imm(64)), NOT(Var("R0",Imm(64)))), Def(Tid(606, "%0000025e"), - Attrs([Attr("address","0x6A0"), Attr("insn","cmp x1, x0")]), - Var("#2",Imm(64)), PLUS(Var("R1",Imm(64)),NOT(Var("R0",Imm(64))))), -Def(Tid(612, "%00000264"), Attrs([Attr("address","0x6A0"), -Attr("insn","cmp x1, x0")]), Var("VF",Imm(1)), -NEQ(SIGNED(65,PLUS(Var("#2",Imm(64)),Int(1,64))),PLUS(PLUS(SIGNED(65,Var("R1",Imm(64))),SIGNED(65,Var("#1",Imm(64)))),Int(1,65)))), -Def(Tid(618, "%0000026a"), Attrs([Attr("address","0x6A0"), -Attr("insn","cmp x1, x0")]), Var("CF",Imm(1)), -NEQ(UNSIGNED(65,PLUS(Var("#2",Imm(64)),Int(1,64))),PLUS(PLUS(UNSIGNED(65,Var("R1",Imm(64))),UNSIGNED(65,Var("#1",Imm(64)))),Int(1,65)))), -Def(Tid(622, "%0000026e"), Attrs([Attr("address","0x6A0"), -Attr("insn","cmp x1, x0")]), Var("ZF",Imm(1)), -EQ(PLUS(Var("#2",Imm(64)),Int(1,64)),Int(0,64))), Def(Tid(626, "%00000272"), - Attrs([Attr("address","0x6A0"), Attr("insn","cmp x1, x0")]), - Var("NF",Imm(1)), Extract(63,63,PLUS(Var("#2",Imm(64)),Int(1,64))))]), -Jmps([Goto(Tid(632, "%00000278"), Attrs([Attr("address","0x6A4"), -Attr("insn","b.eq #0x18")]), EQ(Var("ZF",Imm(1)),Int(1,1)), -Direct(Tid(630, "%00000276"))), Goto(Tid(1_700, "%000006a4"), Attrs([]), - Int(1,1), Direct(Tid(1_060, "%00000424")))])), Blk(Tid(1_060, "%00000424"), - Attrs([Attr("address","0x6A8")]), Phis([]), -Defs([Def(Tid(1_063, "%00000427"), Attrs([Attr("address","0x6A8"), -Attr("insn","adrp x1, #65536")]), Var("R1",Imm(64)), Int(65536,64)), -Def(Tid(1_070, "%0000042e"), Attrs([Attr("address","0x6AC"), -Attr("insn","ldr x1, [x1, #0xfc0]")]), Var("R1",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R1",Imm(64)),Int(4032,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(1_075, "%00000433"), Attrs([Attr("address","0x6B0"), -Attr("insn","cbz x1, #0xc")]), EQ(Var("R1",Imm(64)),Int(0,64)), -Direct(Tid(630, "%00000276"))), Goto(Tid(1_701, "%000006a5"), Attrs([]), - Int(1,1), Direct(Tid(1_079, "%00000437")))])), Blk(Tid(630, "%00000276"), - Attrs([Attr("address","0x6BC")]), Phis([]), Defs([]), -Jmps([Call(Tid(638, "%0000027e"), Attrs([Attr("address","0x6BC"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))])), -Blk(Tid(1_079, "%00000437"), Attrs([Attr("address","0x6B4")]), Phis([]), -Defs([Def(Tid(1_083, "%0000043b"), Attrs([Attr("address","0x6B4"), -Attr("insn","mov x16, x1")]), Var("R16",Imm(64)), Var("R1",Imm(64)))]), -Jmps([Call(Tid(1_088, "%00000440"), Attrs([Attr("address","0x6B8"), -Attr("insn","br x16")]), Int(1,1), (Indirect(Var("R16",Imm(64))),))]))])), -Sub(Tid(1_671, "@frame_dummy"), Attrs([Attr("c.proto","signed (*)(void)"), -Attr("address","0x750")]), "frame_dummy", Args([Arg(Tid(1_717, "%000006b5"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("frame_dummy_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(790, "@frame_dummy"), - Attrs([Attr("address","0x750")]), Phis([]), Defs([]), -Jmps([Call(Tid(792, "%00000318"), Attrs([Attr("address","0x750"), -Attr("insn","b #-0x90")]), Int(1,1), -(Direct(Tid(1_673, "@register_tm_clones")),))]))])), Sub(Tid(1_672, "@main"), - Attrs([Attr("c.proto","signed (*)(signed argc, const char** argv)"), -Attr("address","0x754")]), "main", Args([Arg(Tid(1_718, "%000006b6"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("main_argc",Imm(32)), -LOW(32,Var("R0",Imm(64))), In()), Arg(Tid(1_719, "%000006b7"), - Attrs([Attr("c.layout","**[char : 8]"), Attr("c.data","Top:u8 ptr ptr"), -Attr("c.type"," const char**")]), Var("main_argv",Imm(64)), -Var("R1",Imm(64)), Both()), Arg(Tid(1_720, "%000006b8"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("main_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(794, "@main"), - Attrs([Attr("address","0x754")]), Phis([]), Defs([Def(Tid(797, "%0000031d"), - Attrs([Attr("address","0x754"), Attr("insn","adrp x0, #65536")]), - Var("R0",Imm(64)), Int(65536,64)), Def(Tid(804, "%00000324"), - Attrs([Attr("address","0x758"), Attr("insn","ldr x0, [x0, #0xfd0]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(4048,64)),LittleEndian(),64)), -Def(Tid(811, "%0000032b"), Attrs([Attr("address","0x75C"), -Attr("insn","str wzr, [x0]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("R0",Imm(64)),Int(0,32),LittleEndian(),32)), -Def(Tid(816, "%00000330"), Attrs([Attr("address","0x760"), -Attr("insn","adrp x0, #65536")]), Var("R0",Imm(64)), Int(65536,64)), -Def(Tid(823, "%00000337"), Attrs([Attr("address","0x764"), -Attr("insn","ldr x0, [x0, #0xfd0]")]), Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(4048,64)),LittleEndian(),64)), -Def(Tid(830, "%0000033e"), Attrs([Attr("address","0x768"), -Attr("insn","ldr w0, [x0]")]), Var("R0",Imm(64)), -UNSIGNED(64,Load(Var("mem",Mem(64,8)),Var("R0",Imm(64)),LittleEndian(),32))), -Def(Tid(836, "%00000344"), Attrs([Attr("address","0x76C"), -Attr("insn","add w1, w0, #0x1")]), Var("R1",Imm(64)), -UNSIGNED(64,PLUS(Extract(31,0,Var("R0",Imm(64))),Int(1,32)))), -Def(Tid(841, "%00000349"), Attrs([Attr("address","0x770"), -Attr("insn","adrp x0, #65536")]), Var("R0",Imm(64)), Int(65536,64)), -Def(Tid(848, "%00000350"), Attrs([Attr("address","0x774"), -Attr("insn","ldr x0, [x0, #0xfd0]")]), Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(4048,64)),LittleEndian(),64)), -Def(Tid(856, "%00000358"), Attrs([Attr("address","0x778"), -Attr("insn","str w1, [x0]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("R0",Imm(64)),Extract(31,0,Var("R1",Imm(64))),LittleEndian(),32)), -Def(Tid(861, "%0000035d"), Attrs([Attr("address","0x77C"), -Attr("insn","adrp x0, #65536")]), Var("R0",Imm(64)), Int(65536,64)), -Def(Tid(868, "%00000364"), Attrs([Attr("address","0x780"), -Attr("insn","ldr x0, [x0, #0xfe8]")]), Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(4072,64)),LittleEndian(),64)), -Def(Tid(875, "%0000036b"), Attrs([Attr("address","0x784"), -Attr("insn","ldr w1, [x0]")]), Var("R1",Imm(64)), -UNSIGNED(64,Load(Var("mem",Mem(64,8)),Var("R0",Imm(64)),LittleEndian(),32))), -Def(Tid(880, "%00000370"), Attrs([Attr("address","0x788"), -Attr("insn","adrp x0, #65536")]), Var("R0",Imm(64)), Int(65536,64)), -Def(Tid(887, "%00000377"), Attrs([Attr("address","0x78C"), -Attr("insn","ldr x0, [x0, #0xfd8]")]), Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(4056,64)),LittleEndian(),64)), -Def(Tid(895, "%0000037f"), Attrs([Attr("address","0x790"), -Attr("insn","str w1, [x0]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("R0",Imm(64)),Extract(31,0,Var("R1",Imm(64))),LittleEndian(),32)), -Def(Tid(900, "%00000384"), Attrs([Attr("address","0x794"), -Attr("insn","adrp x0, #65536")]), Var("R0",Imm(64)), Int(65536,64)), -Def(Tid(907, "%0000038b"), Attrs([Attr("address","0x798"), -Attr("insn","ldr x0, [x0, #0xfd8]")]), Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(4056,64)),LittleEndian(),64)), -Def(Tid(914, "%00000392"), Attrs([Attr("address","0x79C"), -Attr("insn","str wzr, [x0]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("R0",Imm(64)),Int(0,32),LittleEndian(),32)), -Def(Tid(919, "%00000397"), Attrs([Attr("address","0x7A0"), -Attr("insn","adrp x0, #65536")]), Var("R0",Imm(64)), Int(65536,64)), -Def(Tid(926, "%0000039e"), Attrs([Attr("address","0x7A4"), -Attr("insn","ldr x0, [x0, #0xfd0]")]), Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(4048,64)),LittleEndian(),64)), -Def(Tid(933, "%000003a5"), Attrs([Attr("address","0x7A8"), -Attr("insn","ldr w0, [x0]")]), Var("R0",Imm(64)), -UNSIGNED(64,Load(Var("mem",Mem(64,8)),Var("R0",Imm(64)),LittleEndian(),32))), -Def(Tid(939, "%000003ab"), Attrs([Attr("address","0x7AC"), -Attr("insn","add w1, w0, #0x1")]), Var("R1",Imm(64)), -UNSIGNED(64,PLUS(Extract(31,0,Var("R0",Imm(64))),Int(1,32)))), -Def(Tid(944, "%000003b0"), Attrs([Attr("address","0x7B0"), -Attr("insn","adrp x0, #65536")]), Var("R0",Imm(64)), Int(65536,64)), -Def(Tid(951, "%000003b7"), Attrs([Attr("address","0x7B4"), -Attr("insn","ldr x0, [x0, #0xfd0]")]), Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(4048,64)),LittleEndian(),64)), -Def(Tid(959, "%000003bf"), Attrs([Attr("address","0x7B8"), -Attr("insn","str w1, [x0]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("R0",Imm(64)),Extract(31,0,Var("R1",Imm(64))),LittleEndian(),32)), -Def(Tid(964, "%000003c4"), Attrs([Attr("address","0x7BC"), -Attr("insn","mov w0, #0x0")]), Var("R0",Imm(64)), Int(0,64))]), -Jmps([Call(Tid(969, "%000003c9"), Attrs([Attr("address","0x7C0"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))]))])), -Sub(Tid(1_673, "@register_tm_clones"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x6C0")]), - "register_tm_clones", Args([Arg(Tid(1_721, "%000006b9"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("register_tm_clones_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(640, "@register_tm_clones"), Attrs([Attr("address","0x6C0")]), - Phis([]), Defs([Def(Tid(643, "%00000283"), Attrs([Attr("address","0x6C0"), -Attr("insn","adrp x0, #69632")]), Var("R0",Imm(64)), Int(69632,64)), -Def(Tid(649, "%00000289"), Attrs([Attr("address","0x6C4"), -Attr("insn","add x0, x0, #0x10")]), Var("R0",Imm(64)), -PLUS(Var("R0",Imm(64)),Int(16,64))), Def(Tid(654, "%0000028e"), - Attrs([Attr("address","0x6C8"), Attr("insn","adrp x1, #69632")]), - Var("R1",Imm(64)), Int(69632,64)), Def(Tid(660, "%00000294"), - Attrs([Attr("address","0x6CC"), Attr("insn","add x1, x1, #0x10")]), - Var("R1",Imm(64)), PLUS(Var("R1",Imm(64)),Int(16,64))), -Def(Tid(667, "%0000029b"), Attrs([Attr("address","0x6D0"), -Attr("insn","sub x1, x1, x0")]), Var("R1",Imm(64)), -PLUS(PLUS(Var("R1",Imm(64)),NOT(Var("R0",Imm(64)))),Int(1,64))), -Def(Tid(673, "%000002a1"), Attrs([Attr("address","0x6D4"), -Attr("insn","lsr x2, x1, #63")]), Var("R2",Imm(64)), -Concat(Int(0,63),Extract(63,63,Var("R1",Imm(64))))), -Def(Tid(680, "%000002a8"), Attrs([Attr("address","0x6D8"), -Attr("insn","add x1, x2, x1, asr #3")]), Var("R1",Imm(64)), -PLUS(Var("R2",Imm(64)),ARSHIFT(Var("R1",Imm(64)),Int(3,3)))), -Def(Tid(686, "%000002ae"), Attrs([Attr("address","0x6DC"), -Attr("insn","asr x1, x1, #1")]), Var("R1",Imm(64)), -SIGNED(64,Extract(63,1,Var("R1",Imm(64)))))]), -Jmps([Goto(Tid(692, "%000002b4"), Attrs([Attr("address","0x6E0"), -Attr("insn","cbz x1, #0x18")]), EQ(Var("R1",Imm(64)),Int(0,64)), -Direct(Tid(690, "%000002b2"))), Goto(Tid(1_702, "%000006a6"), Attrs([]), - Int(1,1), Direct(Tid(1_030, "%00000406")))])), Blk(Tid(1_030, "%00000406"), - Attrs([Attr("address","0x6E4")]), Phis([]), -Defs([Def(Tid(1_033, "%00000409"), Attrs([Attr("address","0x6E4"), -Attr("insn","adrp x2, #65536")]), Var("R2",Imm(64)), Int(65536,64)), -Def(Tid(1_040, "%00000410"), Attrs([Attr("address","0x6E8"), -Attr("insn","ldr x2, [x2, #0xff8]")]), Var("R2",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R2",Imm(64)),Int(4088,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(1_045, "%00000415"), Attrs([Attr("address","0x6EC"), -Attr("insn","cbz x2, #0xc")]), EQ(Var("R2",Imm(64)),Int(0,64)), -Direct(Tid(690, "%000002b2"))), Goto(Tid(1_703, "%000006a7"), Attrs([]), - Int(1,1), Direct(Tid(1_049, "%00000419")))])), Blk(Tid(690, "%000002b2"), - Attrs([Attr("address","0x6F8")]), Phis([]), Defs([]), -Jmps([Call(Tid(698, "%000002ba"), Attrs([Attr("address","0x6F8"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))])), -Blk(Tid(1_049, "%00000419"), Attrs([Attr("address","0x6F0")]), Phis([]), -Defs([Def(Tid(1_053, "%0000041d"), Attrs([Attr("address","0x6F0"), -Attr("insn","mov x16, x2")]), Var("R16",Imm(64)), Var("R2",Imm(64)))]), -Jmps([Call(Tid(1_058, "%00000422"), Attrs([Attr("address","0x6F4"), -Attr("insn","br x16")]), Int(1,1), -(Indirect(Var("R16",Imm(64))),))]))]))]))) \ No newline at end of file diff --git a/src/test/correct/secret_write/gcc_pic/secret_write.bir b/src/test/correct/secret_write/gcc_pic/secret_write.bir deleted file mode 100644 index 85ab0a8bd..000000000 --- a/src/test/correct/secret_write/gcc_pic/secret_write.bir +++ /dev/null @@ -1,250 +0,0 @@ -000006a8: program -00000676: sub __cxa_finalize(__cxa_finalize_result) -000006a9: __cxa_finalize_result :: out u32 = low:32[R0] - -00000402: -000004fa: R16 := 0x10000 -00000501: R17 := mem[R16 + 0xFA0, el]:u64 -00000507: R16 := R16 + 0xFA0 -0000050c: call R17 with noreturn - -00000677: sub __do_global_dtors_aux(__do_global_dtors_aux_result) -000006aa: __do_global_dtors_aux_result :: out u32 = low:32[R0] - -000002be: -000002c2: #3 := R31 - 0x20 -000002c8: mem := mem with [#3, el]:u64 <- R29 -000002ce: mem := mem with [#3 + 8, el]:u64 <- R30 -000002d2: R31 := #3 -000002d8: R29 := R31 -000002e0: mem := mem with [R31 + 0x10, el]:u64 <- R19 -000002e5: R19 := 0x11000 -000002ec: R0 := pad:64[mem[R19 + 0x10]] -000002f3: when 31:0[R0] <> 0 goto %000002f1 -0000069e: goto %000003cb - -000003cb: -000003ce: R0 := 0x10000 -000003d5: R0 := mem[R0 + 0xFC8, el]:u64 -000003db: when R0 = 0 goto %000003d9 -0000069f: goto %000003f2 - -000003f2: -000003f5: R0 := 0x11000 -000003fc: R0 := mem[R0 + 8, el]:u64 -00000401: R30 := 0x730 -00000404: call @__cxa_finalize with return %000003d9 - -000003d9: -000003e1: R30 := 0x734 -000003e3: call @deregister_tm_clones with return %000003e5 - -000003e5: -000003e8: R0 := 1 -000003f0: mem := mem with [R19 + 0x10] <- 7:0[R0] -000006a0: goto %000002f1 - -000002f1: -000002fb: R19 := mem[R31 + 0x10, el]:u64 -00000302: R29 := mem[R31, el]:u64 -00000307: R30 := mem[R31 + 8, el]:u64 -0000030b: R31 := R31 + 0x20 -00000310: call R30 with noreturn - -0000067b: sub __libc_start_main(__libc_start_main_main, __libc_start_main_arg2, __libc_start_main_arg3, __libc_start_main_auxv, __libc_start_main_result) -000006ab: __libc_start_main_main :: in u64 = R0 -000006ac: __libc_start_main_arg2 :: in u32 = low:32[R1] -000006ad: __libc_start_main_arg3 :: in out u64 = R2 -000006ae: __libc_start_main_auxv :: in out u64 = R3 -000006af: __libc_start_main_result :: out u32 = low:32[R0] - -00000217: -000004e4: R16 := 0x10000 -000004eb: R17 := mem[R16 + 0xF98, el]:u64 -000004f1: R16 := R16 + 0xF98 -000004f6: call R17 with noreturn - -0000067c: sub _fini(_fini_result) -000006b0: _fini_result :: out u32 = low:32[R0] - -0000001f: -00000025: #0 := R31 - 0x10 -0000002b: mem := mem with [#0, el]:u64 <- R29 -00000031: mem := mem with [#0 + 8, el]:u64 <- R30 -00000035: R31 := #0 -0000003b: R29 := R31 -00000042: R29 := mem[R31, el]:u64 -00000047: R30 := mem[R31 + 8, el]:u64 -0000004b: R31 := R31 + 0x10 -00000050: call R30 with noreturn - -0000067d: sub _init(_init_result) -000006b1: _init_result :: out u32 = low:32[R0] - -000005bc: -000005c2: #5 := R31 - 0x10 -000005c8: mem := mem with [#5, el]:u64 <- R29 -000005ce: mem := mem with [#5 + 8, el]:u64 <- R30 -000005d2: R31 := #5 -000005d8: R29 := R31 -000005dd: R30 := 0x5D8 -000005df: call @call_weak_fn with return %000005e1 - -000005e1: -000005e6: R29 := mem[R31, el]:u64 -000005eb: R30 := mem[R31 + 8, el]:u64 -000005ef: R31 := R31 + 0x10 -000005f4: call R30 with noreturn - -0000067e: sub _start(_start_result) -000006b2: _start_result :: out u32 = low:32[R0] - -000001d8: -000001dd: R29 := 0 -000001e2: R30 := 0 -000001e8: R5 := R0 -000001ef: R1 := mem[R31, el]:u64 -000001f5: R2 := R31 + 8 -000001fb: R6 := R31 -00000200: R0 := 0x10000 -00000207: R0 := mem[R0 + 0xFF0, el]:u64 -0000020c: R3 := 0 -00000211: R4 := 0 -00000216: R30 := 0x670 -00000219: call @__libc_start_main with return %0000021b - -0000021b: -0000021e: R30 := 0x674 -00000221: call @abort with return %000006a1 - -000006a1: -000006a2: call @call_weak_fn with noreturn - -00000681: sub abort() - - -0000021f: -00000526: R16 := 0x10000 -0000052d: R17 := mem[R16 + 0xFB0, el]:u64 -00000533: R16 := R16 + 0xFB0 -00000538: call R17 with noreturn - -00000682: sub call_weak_fn(call_weak_fn_result) -000006b3: call_weak_fn_result :: out u32 = low:32[R0] - -00000223: -00000226: R0 := 0x10000 -0000022d: R0 := mem[R0 + 0xFE0, el]:u64 -00000233: when R0 = 0 goto %00000231 -000006a3: goto %00000442 - -00000231: -00000239: call R30 with noreturn - -00000442: -00000445: goto @__gmon_start__ - -00000443: -00000510: R16 := 0x10000 -00000517: R17 := mem[R16 + 0xFA8, el]:u64 -0000051d: R16 := R16 + 0xFA8 -00000522: call R17 with noreturn - -00000684: sub deregister_tm_clones(deregister_tm_clones_result) -000006b4: deregister_tm_clones_result :: out u32 = low:32[R0] - -0000023f: -00000242: R0 := 0x11000 -00000248: R0 := R0 + 0x10 -0000024d: R1 := 0x11000 -00000253: R1 := R1 + 0x10 -00000259: #1 := ~R0 -0000025e: #2 := R1 + ~R0 -00000264: VF := extend:65[#2 + 1] <> extend:65[R1] + extend:65[#1] + 1 -0000026a: CF := pad:65[#2 + 1] <> pad:65[R1] + pad:65[#1] + 1 -0000026e: ZF := #2 + 1 = 0 -00000272: NF := 63:63[#2 + 1] -00000278: when ZF goto %00000276 -000006a4: goto %00000424 - -00000424: -00000427: R1 := 0x10000 -0000042e: R1 := mem[R1 + 0xFC0, el]:u64 -00000433: when R1 = 0 goto %00000276 -000006a5: goto %00000437 - -00000276: -0000027e: call R30 with noreturn - -00000437: -0000043b: R16 := R1 -00000440: call R16 with noreturn - -00000687: sub frame_dummy(frame_dummy_result) -000006b5: frame_dummy_result :: out u32 = low:32[R0] - -00000316: -00000318: call @register_tm_clones with noreturn - -00000688: sub main(main_argc, main_argv, main_result) -000006b6: main_argc :: in u32 = low:32[R0] -000006b7: main_argv :: in out u64 = R1 -000006b8: main_result :: out u32 = low:32[R0] - -0000031a: -0000031d: R0 := 0x10000 -00000324: R0 := mem[R0 + 0xFD0, el]:u64 -0000032b: mem := mem with [R0, el]:u32 <- 0 -00000330: R0 := 0x10000 -00000337: R0 := mem[R0 + 0xFD0, el]:u64 -0000033e: R0 := pad:64[mem[R0, el]:u32] -00000344: R1 := pad:64[31:0[R0] + 1] -00000349: R0 := 0x10000 -00000350: R0 := mem[R0 + 0xFD0, el]:u64 -00000358: mem := mem with [R0, el]:u32 <- 31:0[R1] -0000035d: R0 := 0x10000 -00000364: R0 := mem[R0 + 0xFE8, el]:u64 -0000036b: R1 := pad:64[mem[R0, el]:u32] -00000370: R0 := 0x10000 -00000377: R0 := mem[R0 + 0xFD8, el]:u64 -0000037f: mem := mem with [R0, el]:u32 <- 31:0[R1] -00000384: R0 := 0x10000 -0000038b: R0 := mem[R0 + 0xFD8, el]:u64 -00000392: mem := mem with [R0, el]:u32 <- 0 -00000397: R0 := 0x10000 -0000039e: R0 := mem[R0 + 0xFD0, el]:u64 -000003a5: R0 := pad:64[mem[R0, el]:u32] -000003ab: R1 := pad:64[31:0[R0] + 1] -000003b0: R0 := 0x10000 -000003b7: R0 := mem[R0 + 0xFD0, el]:u64 -000003bf: mem := mem with [R0, el]:u32 <- 31:0[R1] -000003c4: R0 := 0 -000003c9: call R30 with noreturn - -00000689: sub register_tm_clones(register_tm_clones_result) -000006b9: register_tm_clones_result :: out u32 = low:32[R0] - -00000280: -00000283: R0 := 0x11000 -00000289: R0 := R0 + 0x10 -0000028e: R1 := 0x11000 -00000294: R1 := R1 + 0x10 -0000029b: R1 := R1 + ~R0 + 1 -000002a1: R2 := 0.63:63[R1] -000002a8: R1 := R2 + (R1 ~>> 3) -000002ae: R1 := extend:64[63:1[R1]] -000002b4: when R1 = 0 goto %000002b2 -000006a6: goto %00000406 - -00000406: -00000409: R2 := 0x10000 -00000410: R2 := mem[R2 + 0xFF8, el]:u64 -00000415: when R2 = 0 goto %000002b2 -000006a7: goto %00000419 - -000002b2: -000002ba: call R30 with noreturn - -00000419: -0000041d: R16 := R2 -00000422: call R16 with noreturn diff --git a/src/test/correct/secret_write/gcc_pic/secret_write.expected b/src/test/correct/secret_write/gcc_pic/secret_write.expected index 023390eb7..92acdc9b5 100644 --- a/src/test/correct/secret_write/gcc_pic/secret_write.expected +++ b/src/test/correct/secret_write/gcc_pic/secret_write.expected @@ -1,20 +1,23 @@ var {:extern} Gamma_R0: bool; var {:extern} Gamma_R1: bool; +var {:extern} Gamma_R2: bool; +var {:extern} Gamma_R3: bool; var {:extern} Gamma_mem: [bv64]bool; var {:extern} R0: bv64; var {:extern} R1: bv64; +var {:extern} R2: bv64; +var {:extern} R3: bv64; var {:extern} mem: [bv64]bv8; const {:extern} $secret_addr: bv64; -axiom ($secret_addr == 69660bv64); +axiom ($secret_addr == 4325396bv64); const {:extern} $x_addr: bv64; -axiom ($x_addr == 69656bv64); +axiom ($x_addr == 4325400bv64); const {:extern} $z_addr: bv64; -axiom ($z_addr == 69652bv64); +axiom ($z_addr == 4325404bv64); function {:extern} L(mem$in: [bv64]bv8, index: bv64) returns (bool) { (if (index == $secret_addr) then false else (if (index == $x_addr) then (bvsmod32(memory_load32_le(mem$in, $z_addr), 2bv32) == 0bv32) else (if (index == $z_addr) then true else false))) } -function {:extern} {:bvbuiltin "bvadd"} bvadd32(bv32, bv32) returns (bv32); function {:extern} {:bvbuiltin "bvadd"} bvadd64(bv64, bv64) returns (bv64); function {:extern} {:bvbuiltin "bvsge"} bvsge32(bv32, bv32) returns (bool); function {:extern} {:bvbuiltin "bvsmod"} bvsmod32(bv32, bv32) returns (bv32); @@ -42,20 +45,12 @@ function {:extern} memory_store32_le(memory: [bv64]bv8, index: bv64, value: bv32 memory[index := value[8:0]][bvadd64(index, 1bv64) := value[16:8]][bvadd64(index, 2bv64) := value[24:16]][bvadd64(index, 3bv64) := value[32:24]] } -function {:extern} {:bvbuiltin "zero_extend 32"} zero_extend32_32(bv32) returns (bv64); procedure {:extern} rely(); modifies Gamma_mem, mem; ensures (forall i: bv64 :: (((mem[i] == old(mem[i])) ==> (Gamma_mem[i] == old(Gamma_mem[i]))))); ensures (memory_load32_le(mem, $z_addr) == old(memory_load32_le(mem, $z_addr))); ensures (old(gamma_load32(Gamma_mem, $x_addr)) ==> gamma_load32(Gamma_mem, $x_addr)); - free ensures (memory_load32_le(mem, 2008bv64) == 131073bv32); - free ensures (memory_load64_le(mem, 68992bv64) == 1872bv64); - free ensures (memory_load64_le(mem, 69000bv64) == 1792bv64); - free ensures (memory_load64_le(mem, 69584bv64) == 69652bv64); - free ensures (memory_load64_le(mem, 69592bv64) == 69656bv64); - free ensures (memory_load64_le(mem, 69608bv64) == 69660bv64); - free ensures (memory_load64_le(mem, 69616bv64) == 1876bv64); - free ensures (memory_load64_le(mem, 69640bv64) == 69640bv64); + free ensures (memory_load32_le(mem, 4196312bv64) == 131073bv32); procedure {:extern} rely_transitive(); modifies Gamma_mem, mem; @@ -84,146 +79,55 @@ implementation {:extern} guarantee_reflexive() assert bvsge32(memory_load32_le(mem, $z_addr), memory_load32_le(mem, $z_addr)); } -procedure main_1876(); - modifies Gamma_R0, Gamma_R1, Gamma_mem, R0, R1, mem; +procedure main(); + modifies Gamma_R0, Gamma_R1, Gamma_R2, Gamma_R3, Gamma_mem, R0, R1, R2, R3, mem; requires (gamma_load32(Gamma_mem, $x_addr) == true); requires (gamma_load32(Gamma_mem, $z_addr) == true); requires (gamma_load32(Gamma_mem, $secret_addr) == false); requires (memory_load32_le(mem, $z_addr) == 0bv32); - free requires (memory_load64_le(mem, 69632bv64) == 0bv64); - free requires (memory_load64_le(mem, 69640bv64) == 69640bv64); - free requires (memory_load32_le(mem, 2008bv64) == 131073bv32); - free requires (memory_load64_le(mem, 68992bv64) == 1872bv64); - free requires (memory_load64_le(mem, 69000bv64) == 1792bv64); - free requires (memory_load64_le(mem, 69584bv64) == 69652bv64); - free requires (memory_load64_le(mem, 69592bv64) == 69656bv64); - free requires (memory_load64_le(mem, 69608bv64) == 69660bv64); - free requires (memory_load64_le(mem, 69616bv64) == 1876bv64); - free requires (memory_load64_le(mem, 69640bv64) == 69640bv64); - free ensures (memory_load32_le(mem, 2008bv64) == 131073bv32); - free ensures (memory_load64_le(mem, 68992bv64) == 1872bv64); - free ensures (memory_load64_le(mem, 69000bv64) == 1792bv64); - free ensures (memory_load64_le(mem, 69584bv64) == 69652bv64); - free ensures (memory_load64_le(mem, 69592bv64) == 69656bv64); - free ensures (memory_load64_le(mem, 69608bv64) == 69660bv64); - free ensures (memory_load64_le(mem, 69616bv64) == 1876bv64); - free ensures (memory_load64_le(mem, 69640bv64) == 69640bv64); - -implementation main_1876() + free requires (memory_load64_le(mem, 4325376bv64) == 0bv64); + free requires (memory_load64_le(mem, 4325384bv64) == 0bv64); + free requires (memory_load32_le(mem, 4196312bv64) == 131073bv32); + free ensures (memory_load32_le(mem, 4196312bv64) == 131073bv32); + +implementation main() { - var Gamma_load18: bool; - var Gamma_load19: bool; - var Gamma_load20: bool; - var Gamma_load21: bool; - var Gamma_load22: bool; - var Gamma_load23: bool; - var Gamma_load24: bool; - var Gamma_load25: bool; - var Gamma_load26: bool; - var Gamma_load27: bool; - var Gamma_load28: bool; + var $load$14: bv64; + var $load$15: bv64; + var Gamma_$load$14: bool; + var Gamma_$load$15: bool; var Gamma_x_old: bool; - var load18: bv64; - var load19: bv64; - var load20: bv32; - var load21: bv64; - var load22: bv64; - var load23: bv32; - var load24: bv64; - var load25: bv64; - var load26: bv64; - var load27: bv32; - var load28: bv64; var z_old: bv32; lmain: assume {:captureState "lmain"} true; - R0, Gamma_R0 := 65536bv64, true; - call rely(); - load18, Gamma_load18 := memory_load64_le(mem, bvadd64(R0, 4048bv64)), (gamma_load64(Gamma_mem, bvadd64(R0, 4048bv64)) || L(mem, bvadd64(R0, 4048bv64))); - R0, Gamma_R0 := load18, Gamma_load18; - call rely(); - z_old := memory_load32_le(mem, $z_addr); - Gamma_x_old := (gamma_load32(Gamma_mem, $x_addr) || L(mem, $x_addr)); - assert (L(mem, R0) ==> true); - mem, Gamma_mem := memory_store32_le(mem, R0, 0bv32), gamma_store32(Gamma_mem, R0, true); - assert ((R0 == $z_addr) ==> (L(mem, $x_addr) ==> Gamma_x_old)); - assert bvsge32(memory_load32_le(mem, $z_addr), z_old); - assume {:captureState "%0000032b"} true; - R0, Gamma_R0 := 65536bv64, true; - call rely(); - load19, Gamma_load19 := memory_load64_le(mem, bvadd64(R0, 4048bv64)), (gamma_load64(Gamma_mem, bvadd64(R0, 4048bv64)) || L(mem, bvadd64(R0, 4048bv64))); - R0, Gamma_R0 := load19, Gamma_load19; - call rely(); - load20, Gamma_load20 := memory_load32_le(mem, R0), (gamma_load32(Gamma_mem, R0) || L(mem, R0)); - R0, Gamma_R0 := zero_extend32_32(load20), Gamma_load20; - R1, Gamma_R1 := zero_extend32_32(bvadd32(R0[32:0], 1bv32)), Gamma_R0; - R0, Gamma_R0 := 65536bv64, true; - call rely(); - load21, Gamma_load21 := memory_load64_le(mem, bvadd64(R0, 4048bv64)), (gamma_load64(Gamma_mem, bvadd64(R0, 4048bv64)) || L(mem, bvadd64(R0, 4048bv64))); - R0, Gamma_R0 := load21, Gamma_load21; - call rely(); - z_old := memory_load32_le(mem, $z_addr); - Gamma_x_old := (gamma_load32(Gamma_mem, $x_addr) || L(mem, $x_addr)); - assert (L(mem, R0) ==> Gamma_R1); - mem, Gamma_mem := memory_store32_le(mem, R0, R1[32:0]), gamma_store32(Gamma_mem, R0, Gamma_R1); - assert ((R0 == $z_addr) ==> (L(mem, $x_addr) ==> Gamma_x_old)); - assert bvsge32(memory_load32_le(mem, $z_addr), z_old); - assume {:captureState "%00000358"} true; - R0, Gamma_R0 := 65536bv64, true; - call rely(); - load22, Gamma_load22 := memory_load64_le(mem, bvadd64(R0, 4072bv64)), (gamma_load64(Gamma_mem, bvadd64(R0, 4072bv64)) || L(mem, bvadd64(R0, 4072bv64))); - R0, Gamma_R0 := load22, Gamma_load22; - call rely(); - load23, Gamma_load23 := memory_load32_le(mem, R0), (gamma_load32(Gamma_mem, R0) || L(mem, R0)); - R1, Gamma_R1 := zero_extend32_32(load23), Gamma_load23; - R0, Gamma_R0 := 65536bv64, true; - call rely(); - load24, Gamma_load24 := memory_load64_le(mem, bvadd64(R0, 4056bv64)), (gamma_load64(Gamma_mem, bvadd64(R0, 4056bv64)) || L(mem, bvadd64(R0, 4056bv64))); - R0, Gamma_R0 := load24, Gamma_load24; + R1, Gamma_R1 := 4321280bv64, true; + R2, Gamma_R2 := 2bv64, true; + R0, Gamma_R0 := 0bv64, true; call rely(); - z_old := memory_load32_le(mem, $z_addr); - Gamma_x_old := (gamma_load32(Gamma_mem, $x_addr) || L(mem, $x_addr)); - assert (L(mem, R0) ==> Gamma_R1); - mem, Gamma_mem := memory_store32_le(mem, R0, R1[32:0]), gamma_store32(Gamma_mem, R0, Gamma_R1); - assert ((R0 == $z_addr) ==> (L(mem, $x_addr) ==> Gamma_x_old)); - assert bvsge32(memory_load32_le(mem, $z_addr), z_old); - assume {:captureState "%0000037f"} true; - R0, Gamma_R0 := 65536bv64, true; + $load$14, Gamma_$load$14 := memory_load64_le(mem, bvadd64(R1, 4072bv64)), (gamma_load64(Gamma_mem, bvadd64(R1, 4072bv64)) || L(mem, bvadd64(R1, 4072bv64))); + R3, Gamma_R3 := $load$14, Gamma_$load$14; call rely(); - load25, Gamma_load25 := memory_load64_le(mem, bvadd64(R0, 4056bv64)), (gamma_load64(Gamma_mem, bvadd64(R0, 4056bv64)) || L(mem, bvadd64(R0, 4056bv64))); - R0, Gamma_R0 := load25, Gamma_load25; + $load$15, Gamma_$load$15 := memory_load64_le(mem, bvadd64(R1, 4064bv64)), (gamma_load64(Gamma_mem, bvadd64(R1, 4064bv64)) || L(mem, bvadd64(R1, 4064bv64))); + R1, Gamma_R1 := $load$15, Gamma_$load$15; call rely(); + assert (L(mem, R3) ==> true); z_old := memory_load32_le(mem, $z_addr); Gamma_x_old := (gamma_load32(Gamma_mem, $x_addr) || L(mem, $x_addr)); - assert (L(mem, R0) ==> true); - mem, Gamma_mem := memory_store32_le(mem, R0, 0bv32), gamma_store32(Gamma_mem, R0, true); - assert ((R0 == $z_addr) ==> (L(mem, $x_addr) ==> Gamma_x_old)); + mem, Gamma_mem := memory_store32_le(mem, R3, 0bv32), gamma_store32(Gamma_mem, R3, true); + assert ((R3 == $z_addr) ==> (L(mem, $x_addr) ==> Gamma_x_old)); assert bvsge32(memory_load32_le(mem, $z_addr), z_old); - assume {:captureState "%00000392"} true; - R0, Gamma_R0 := 65536bv64, true; - call rely(); - load26, Gamma_load26 := memory_load64_le(mem, bvadd64(R0, 4048bv64)), (gamma_load64(Gamma_mem, bvadd64(R0, 4048bv64)) || L(mem, bvadd64(R0, 4048bv64))); - R0, Gamma_R0 := load26, Gamma_load26; - call rely(); - load27, Gamma_load27 := memory_load32_le(mem, R0), (gamma_load32(Gamma_mem, R0) || L(mem, R0)); - R0, Gamma_R0 := zero_extend32_32(load27), Gamma_load27; - R1, Gamma_R1 := zero_extend32_32(bvadd32(R0[32:0], 1bv32)), Gamma_R0; - R0, Gamma_R0 := 65536bv64, true; - call rely(); - load28, Gamma_load28 := memory_load64_le(mem, bvadd64(R0, 4048bv64)), (gamma_load64(Gamma_mem, bvadd64(R0, 4048bv64)) || L(mem, bvadd64(R0, 4048bv64))); - R0, Gamma_R0 := load28, Gamma_load28; + assume {:captureState "%0000025c"} true; call rely(); + assert (L(mem, R1) ==> Gamma_R2); z_old := memory_load32_le(mem, $z_addr); Gamma_x_old := (gamma_load32(Gamma_mem, $x_addr) || L(mem, $x_addr)); - assert (L(mem, R0) ==> Gamma_R1); - mem, Gamma_mem := memory_store32_le(mem, R0, R1[32:0]), gamma_store32(Gamma_mem, R0, Gamma_R1); - assert ((R0 == $z_addr) ==> (L(mem, $x_addr) ==> Gamma_x_old)); + mem, Gamma_mem := memory_store32_le(mem, R1, R2[32:0]), gamma_store32(Gamma_mem, R1, Gamma_R2); + assert ((R1 == $z_addr) ==> (L(mem, $x_addr) ==> Gamma_x_old)); assert bvsge32(memory_load32_le(mem, $z_addr), z_old); - assume {:captureState "%000003bf"} true; - R0, Gamma_R0 := 0bv64, true; - goto main_1876_basil_return; - main_1876_basil_return: - assume {:captureState "main_1876_basil_return"} true; + assume {:captureState "%00000260"} true; + goto main_basil_return; + main_basil_return: + assume {:captureState "main_basil_return"} true; return; } diff --git a/src/test/correct/secret_write/gcc_pic/secret_write.gts b/src/test/correct/secret_write/gcc_pic/secret_write.gts deleted file mode 100644 index 479b3b853..000000000 Binary files a/src/test/correct/secret_write/gcc_pic/secret_write.gts and /dev/null differ diff --git a/src/test/correct/secret_write/gcc_pic/secret_write.md5sum b/src/test/correct/secret_write/gcc_pic/secret_write.md5sum new file mode 100644 index 000000000..36c599951 --- /dev/null +++ b/src/test/correct/secret_write/gcc_pic/secret_write.md5sum @@ -0,0 +1,5 @@ +71fe52271b89529e402d63c06bbb00c9 correct/secret_write/gcc_pic/a.out +5dc41dda3b37251df26779d2704a30af correct/secret_write/gcc_pic/secret_write.adt +6154b052bd6c0d475c7bf07760d9e943 correct/secret_write/gcc_pic/secret_write.bir +38bf262c0031f0f2729484bde2dba3ed correct/secret_write/gcc_pic/secret_write.relf +2dff58f103a1f36b7424c0b7fa870363 correct/secret_write/gcc_pic/secret_write.gts diff --git a/src/test/correct/secret_write/gcc_pic/secret_write.relf b/src/test/correct/secret_write/gcc_pic/secret_write.relf deleted file mode 100644 index 8c52fecc5..000000000 --- a/src/test/correct/secret_write/gcc_pic/secret_write.relf +++ /dev/null @@ -1,126 +0,0 @@ - -Relocation section '.rela.dyn' at offset 0x460 contains 11 entries: - Offset Info Type Symbol's Value Symbol's Name + Addend -0000000000010d80 0000000000000403 R_AARCH64_RELATIVE 750 -0000000000010d88 0000000000000403 R_AARCH64_RELATIVE 700 -0000000000010fd0 0000000000000403 R_AARCH64_RELATIVE 11014 -0000000000010fd8 0000000000000403 R_AARCH64_RELATIVE 11018 -0000000000010fe8 0000000000000403 R_AARCH64_RELATIVE 1101c -0000000000010ff0 0000000000000403 R_AARCH64_RELATIVE 754 -0000000000011008 0000000000000403 R_AARCH64_RELATIVE 11008 -0000000000010fc0 0000000400000401 R_AARCH64_GLOB_DAT 0000000000000000 _ITM_deregisterTMCloneTable + 0 -0000000000010fc8 0000000500000401 R_AARCH64_GLOB_DAT 0000000000000000 __cxa_finalize@GLIBC_2.17 + 0 -0000000000010fe0 0000000600000401 R_AARCH64_GLOB_DAT 0000000000000000 __gmon_start__ + 0 -0000000000010ff8 0000000800000401 R_AARCH64_GLOB_DAT 0000000000000000 _ITM_registerTMCloneTable + 0 - -Relocation section '.rela.plt' at offset 0x568 contains 4 entries: - Offset Info Type Symbol's Value Symbol's Name + Addend -0000000000010f98 0000000300000402 R_AARCH64_JUMP_SLOT 0000000000000000 __libc_start_main@GLIBC_2.34 + 0 -0000000000010fa0 0000000500000402 R_AARCH64_JUMP_SLOT 0000000000000000 __cxa_finalize@GLIBC_2.17 + 0 -0000000000010fa8 0000000600000402 R_AARCH64_JUMP_SLOT 0000000000000000 __gmon_start__ + 0 -0000000000010fb0 0000000700000402 R_AARCH64_JUMP_SLOT 0000000000000000 abort@GLIBC_2.17 + 0 - -Symbol table '.dynsym' contains 9 entries: - Num: Value Size Type Bind Vis Ndx Name - 0: 0000000000000000 0 NOTYPE LOCAL DEFAULT UND - 1: 00000000000005c8 0 SECTION LOCAL DEFAULT 11 .init - 2: 0000000000011000 0 SECTION LOCAL DEFAULT 22 .data - 3: 0000000000000000 0 FUNC GLOBAL DEFAULT UND __libc_start_main@GLIBC_2.34 (2) - 4: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_deregisterTMCloneTable - 5: 0000000000000000 0 FUNC WEAK DEFAULT UND __cxa_finalize@GLIBC_2.17 (3) - 6: 0000000000000000 0 NOTYPE WEAK DEFAULT UND __gmon_start__ - 7: 0000000000000000 0 FUNC GLOBAL DEFAULT UND abort@GLIBC_2.17 (3) - 8: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_registerTMCloneTable - -Symbol table '.symtab' contains 90 entries: - Num: Value Size Type Bind Vis Ndx Name - 0: 0000000000000000 0 NOTYPE LOCAL DEFAULT UND - 1: 0000000000000238 0 SECTION LOCAL DEFAULT 1 .interp - 2: 0000000000000254 0 SECTION LOCAL DEFAULT 2 .note.gnu.build-id - 3: 0000000000000278 0 SECTION LOCAL DEFAULT 3 .note.ABI-tag - 4: 0000000000000298 0 SECTION LOCAL DEFAULT 4 .gnu.hash - 5: 00000000000002b8 0 SECTION LOCAL DEFAULT 5 .dynsym - 6: 0000000000000390 0 SECTION LOCAL DEFAULT 6 .dynstr - 7: 000000000000041e 0 SECTION LOCAL DEFAULT 7 .gnu.version - 8: 0000000000000430 0 SECTION LOCAL DEFAULT 8 .gnu.version_r - 9: 0000000000000460 0 SECTION LOCAL DEFAULT 9 .rela.dyn - 10: 0000000000000568 0 SECTION LOCAL DEFAULT 10 .rela.plt - 11: 00000000000005c8 0 SECTION LOCAL DEFAULT 11 .init - 12: 00000000000005e0 0 SECTION LOCAL DEFAULT 12 .plt - 13: 0000000000000640 0 SECTION LOCAL DEFAULT 13 .text - 14: 00000000000007c4 0 SECTION LOCAL DEFAULT 14 .fini - 15: 00000000000007d8 0 SECTION LOCAL DEFAULT 15 .rodata - 16: 00000000000007dc 0 SECTION LOCAL DEFAULT 16 .eh_frame_hdr - 17: 0000000000000818 0 SECTION LOCAL DEFAULT 17 .eh_frame - 18: 0000000000010d80 0 SECTION LOCAL DEFAULT 18 .init_array - 19: 0000000000010d88 0 SECTION LOCAL DEFAULT 19 .fini_array - 20: 0000000000010d90 0 SECTION LOCAL DEFAULT 20 .dynamic - 21: 0000000000010f80 0 SECTION LOCAL DEFAULT 21 .got - 22: 0000000000011000 0 SECTION LOCAL DEFAULT 22 .data - 23: 0000000000011010 0 SECTION LOCAL DEFAULT 23 .bss - 24: 0000000000000000 0 SECTION LOCAL DEFAULT 24 .comment - 25: 0000000000000000 0 FILE LOCAL DEFAULT ABS Scrt1.o - 26: 0000000000000278 0 NOTYPE LOCAL DEFAULT 3 $d - 27: 0000000000000278 32 OBJECT LOCAL DEFAULT 3 __abi_tag - 28: 0000000000000640 0 NOTYPE LOCAL DEFAULT 13 $x - 29: 000000000000082c 0 NOTYPE LOCAL DEFAULT 17 $d - 30: 00000000000007d8 0 NOTYPE LOCAL DEFAULT 15 $d - 31: 0000000000000000 0 FILE LOCAL DEFAULT ABS crti.o - 32: 0000000000000674 0 NOTYPE LOCAL DEFAULT 13 $x - 33: 0000000000000674 20 FUNC LOCAL DEFAULT 13 call_weak_fn - 34: 00000000000005c8 0 NOTYPE LOCAL DEFAULT 11 $x - 35: 00000000000007c4 0 NOTYPE LOCAL DEFAULT 14 $x - 36: 0000000000000000 0 FILE LOCAL DEFAULT ABS crtn.o - 37: 00000000000005d8 0 NOTYPE LOCAL DEFAULT 11 $x - 38: 00000000000007d0 0 NOTYPE LOCAL DEFAULT 14 $x - 39: 0000000000000000 0 FILE LOCAL DEFAULT ABS crtstuff.c - 40: 0000000000000690 0 NOTYPE LOCAL DEFAULT 13 $x - 41: 0000000000000690 0 FUNC LOCAL DEFAULT 13 deregister_tm_clones - 42: 00000000000006c0 0 FUNC LOCAL DEFAULT 13 register_tm_clones - 43: 0000000000011008 0 NOTYPE LOCAL DEFAULT 22 $d - 44: 0000000000000700 0 FUNC LOCAL DEFAULT 13 __do_global_dtors_aux - 45: 0000000000011010 1 OBJECT LOCAL DEFAULT 23 completed.0 - 46: 0000000000010d88 0 NOTYPE LOCAL DEFAULT 19 $d - 47: 0000000000010d88 0 OBJECT LOCAL DEFAULT 19 __do_global_dtors_aux_fini_array_entry - 48: 0000000000000750 0 FUNC LOCAL DEFAULT 13 frame_dummy - 49: 0000000000010d80 0 NOTYPE LOCAL DEFAULT 18 $d - 50: 0000000000010d80 0 OBJECT LOCAL DEFAULT 18 __frame_dummy_init_array_entry - 51: 0000000000000840 0 NOTYPE LOCAL DEFAULT 17 $d - 52: 0000000000011010 0 NOTYPE LOCAL DEFAULT 23 $d - 53: 0000000000000000 0 FILE LOCAL DEFAULT ABS secret_write.c - 54: 0000000000011014 0 NOTYPE LOCAL DEFAULT 23 $d - 55: 0000000000000754 0 NOTYPE LOCAL DEFAULT 13 $x - 56: 00000000000008a0 0 NOTYPE LOCAL DEFAULT 17 $d - 57: 0000000000000000 0 FILE LOCAL DEFAULT ABS crtstuff.c - 58: 00000000000008b4 0 NOTYPE LOCAL DEFAULT 17 $d - 59: 00000000000008b4 0 OBJECT LOCAL DEFAULT 17 __FRAME_END__ - 60: 0000000000000000 0 FILE LOCAL DEFAULT ABS - 61: 0000000000010d90 0 OBJECT LOCAL DEFAULT ABS _DYNAMIC - 62: 00000000000007dc 0 NOTYPE LOCAL DEFAULT 16 __GNU_EH_FRAME_HDR - 63: 0000000000010fb8 0 OBJECT LOCAL DEFAULT ABS _GLOBAL_OFFSET_TABLE_ - 64: 00000000000005e0 0 NOTYPE LOCAL DEFAULT 12 $x - 65: 0000000000000000 0 FUNC GLOBAL DEFAULT UND __libc_start_main@GLIBC_2.34 - 66: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_deregisterTMCloneTable - 67: 0000000000011000 0 NOTYPE WEAK DEFAULT 22 data_start - 68: 0000000000011010 0 NOTYPE GLOBAL DEFAULT 23 __bss_start__ - 69: 0000000000000000 0 FUNC WEAK DEFAULT UND __cxa_finalize@GLIBC_2.17 - 70: 0000000000011020 0 NOTYPE GLOBAL DEFAULT 23 _bss_end__ - 71: 0000000000011010 0 NOTYPE GLOBAL DEFAULT 22 _edata - 72: 0000000000011014 4 OBJECT GLOBAL DEFAULT 23 z - 73: 0000000000011018 4 OBJECT GLOBAL DEFAULT 23 x - 74: 00000000000007c4 0 FUNC GLOBAL HIDDEN 14 _fini - 75: 0000000000011020 0 NOTYPE GLOBAL DEFAULT 23 __bss_end__ - 76: 0000000000011000 0 NOTYPE GLOBAL DEFAULT 22 __data_start - 77: 0000000000000000 0 NOTYPE WEAK DEFAULT UND __gmon_start__ - 78: 0000000000011008 0 OBJECT GLOBAL HIDDEN 22 __dso_handle - 79: 0000000000000000 0 FUNC GLOBAL DEFAULT UND abort@GLIBC_2.17 - 80: 00000000000007d8 4 OBJECT GLOBAL DEFAULT 15 _IO_stdin_used - 81: 000000000001101c 4 OBJECT GLOBAL DEFAULT 23 secret - 82: 0000000000011020 0 NOTYPE GLOBAL DEFAULT 23 _end - 83: 0000000000000640 52 FUNC GLOBAL DEFAULT 13 _start - 84: 0000000000011020 0 NOTYPE GLOBAL DEFAULT 23 __end__ - 85: 0000000000011010 0 NOTYPE GLOBAL DEFAULT 23 __bss_start - 86: 0000000000000754 112 FUNC GLOBAL DEFAULT 13 main - 87: 0000000000011010 0 OBJECT GLOBAL HIDDEN 22 __TMC_END__ - 88: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_registerTMCloneTable - 89: 00000000000005c8 0 FUNC GLOBAL HIDDEN 11 _init diff --git a/src/test/correct/secret_write/gcc_pic/secret_write_gtirb.expected b/src/test/correct/secret_write/gcc_pic/secret_write_gtirb.expected index c0f693d05..730b4866a 100644 --- a/src/test/correct/secret_write/gcc_pic/secret_write_gtirb.expected +++ b/src/test/correct/secret_write/gcc_pic/secret_write_gtirb.expected @@ -1,20 +1,23 @@ var {:extern} Gamma_R0: bool; var {:extern} Gamma_R1: bool; +var {:extern} Gamma_R2: bool; +var {:extern} Gamma_R3: bool; var {:extern} Gamma_mem: [bv64]bool; var {:extern} R0: bv64; var {:extern} R1: bv64; +var {:extern} R2: bv64; +var {:extern} R3: bv64; var {:extern} mem: [bv64]bv8; const {:extern} $secret_addr: bv64; -axiom ($secret_addr == 69660bv64); +axiom ($secret_addr == 4325396bv64); const {:extern} $x_addr: bv64; -axiom ($x_addr == 69656bv64); +axiom ($x_addr == 4325400bv64); const {:extern} $z_addr: bv64; -axiom ($z_addr == 69652bv64); +axiom ($z_addr == 4325404bv64); function {:extern} L(mem$in: [bv64]bv8, index: bv64) returns (bool) { (if (index == $secret_addr) then false else (if (index == $x_addr) then (bvsmod32(memory_load32_le(mem$in, $z_addr), 2bv32) == 0bv32) else (if (index == $z_addr) then true else false))) } -function {:extern} {:bvbuiltin "bvadd"} bvadd32(bv32, bv32) returns (bv32); function {:extern} {:bvbuiltin "bvadd"} bvadd64(bv64, bv64) returns (bv64); function {:extern} {:bvbuiltin "bvsge"} bvsge32(bv32, bv32) returns (bool); function {:extern} {:bvbuiltin "bvsmod"} bvsmod32(bv32, bv32) returns (bv32); @@ -42,20 +45,12 @@ function {:extern} memory_store32_le(memory: [bv64]bv8, index: bv64, value: bv32 memory[index := value[8:0]][bvadd64(index, 1bv64) := value[16:8]][bvadd64(index, 2bv64) := value[24:16]][bvadd64(index, 3bv64) := value[32:24]] } -function {:extern} {:bvbuiltin "zero_extend 32"} zero_extend32_32(bv32) returns (bv64); procedure {:extern} rely(); modifies Gamma_mem, mem; ensures (forall i: bv64 :: (((mem[i] == old(mem[i])) ==> (Gamma_mem[i] == old(Gamma_mem[i]))))); ensures (memory_load32_le(mem, $z_addr) == old(memory_load32_le(mem, $z_addr))); ensures (old(gamma_load32(Gamma_mem, $x_addr)) ==> gamma_load32(Gamma_mem, $x_addr)); - free ensures (memory_load32_le(mem, 2008bv64) == 131073bv32); - free ensures (memory_load64_le(mem, 68992bv64) == 1872bv64); - free ensures (memory_load64_le(mem, 69000bv64) == 1792bv64); - free ensures (memory_load64_le(mem, 69584bv64) == 69652bv64); - free ensures (memory_load64_le(mem, 69592bv64) == 69656bv64); - free ensures (memory_load64_le(mem, 69608bv64) == 69660bv64); - free ensures (memory_load64_le(mem, 69616bv64) == 1876bv64); - free ensures (memory_load64_le(mem, 69640bv64) == 69640bv64); + free ensures (memory_load32_le(mem, 4196312bv64) == 131073bv32); procedure {:extern} rely_transitive(); modifies Gamma_mem, mem; @@ -84,146 +79,55 @@ implementation {:extern} guarantee_reflexive() assert bvsge32(memory_load32_le(mem, $z_addr), memory_load32_le(mem, $z_addr)); } -procedure main_1876(); - modifies Gamma_R0, Gamma_R1, Gamma_mem, R0, R1, mem; +procedure main(); + modifies Gamma_R0, Gamma_R1, Gamma_R2, Gamma_R3, Gamma_mem, R0, R1, R2, R3, mem; requires (gamma_load32(Gamma_mem, $x_addr) == true); requires (gamma_load32(Gamma_mem, $z_addr) == true); requires (gamma_load32(Gamma_mem, $secret_addr) == false); requires (memory_load32_le(mem, $z_addr) == 0bv32); - free requires (memory_load64_le(mem, 69632bv64) == 0bv64); - free requires (memory_load64_le(mem, 69640bv64) == 69640bv64); - free requires (memory_load32_le(mem, 2008bv64) == 131073bv32); - free requires (memory_load64_le(mem, 68992bv64) == 1872bv64); - free requires (memory_load64_le(mem, 69000bv64) == 1792bv64); - free requires (memory_load64_le(mem, 69584bv64) == 69652bv64); - free requires (memory_load64_le(mem, 69592bv64) == 69656bv64); - free requires (memory_load64_le(mem, 69608bv64) == 69660bv64); - free requires (memory_load64_le(mem, 69616bv64) == 1876bv64); - free requires (memory_load64_le(mem, 69640bv64) == 69640bv64); - free ensures (memory_load32_le(mem, 2008bv64) == 131073bv32); - free ensures (memory_load64_le(mem, 68992bv64) == 1872bv64); - free ensures (memory_load64_le(mem, 69000bv64) == 1792bv64); - free ensures (memory_load64_le(mem, 69584bv64) == 69652bv64); - free ensures (memory_load64_le(mem, 69592bv64) == 69656bv64); - free ensures (memory_load64_le(mem, 69608bv64) == 69660bv64); - free ensures (memory_load64_le(mem, 69616bv64) == 1876bv64); - free ensures (memory_load64_le(mem, 69640bv64) == 69640bv64); - -implementation main_1876() + free requires (memory_load64_le(mem, 4325376bv64) == 0bv64); + free requires (memory_load64_le(mem, 4325384bv64) == 0bv64); + free requires (memory_load32_le(mem, 4196312bv64) == 131073bv32); + free ensures (memory_load32_le(mem, 4196312bv64) == 131073bv32); + +implementation main() { - var Gamma_load10: bool; - var Gamma_load11: bool; - var Gamma_load12: bool; - var Gamma_load13: bool; - var Gamma_load14: bool; - var Gamma_load15: bool; - var Gamma_load5: bool; - var Gamma_load6: bool; - var Gamma_load7: bool; - var Gamma_load8: bool; - var Gamma_load9: bool; + var $load16: bv64; + var $load17: bv64; + var Gamma_$load16: bool; + var Gamma_$load17: bool; var Gamma_x_old: bool; - var load10: bv32; - var load11: bv64; - var load12: bv64; - var load13: bv64; - var load14: bv32; - var load15: bv64; - var load5: bv64; - var load6: bv64; - var load7: bv32; - var load8: bv64; - var load9: bv64; var z_old: bv32; - main_1876__0__sQQ_g_3GSW~3KrITchatdg: - assume {:captureState "main_1876__0__sQQ_g_3GSW~3KrITchatdg"} true; - R0, Gamma_R0 := 65536bv64, true; - call rely(); - load5, Gamma_load5 := memory_load64_le(mem, bvadd64(R0, 4048bv64)), (gamma_load64(Gamma_mem, bvadd64(R0, 4048bv64)) || L(mem, bvadd64(R0, 4048bv64))); - R0, Gamma_R0 := load5, Gamma_load5; - call rely(); - z_old := memory_load32_le(mem, $z_addr); - Gamma_x_old := (gamma_load32(Gamma_mem, $x_addr) || L(mem, $x_addr)); - assert (L(mem, R0) ==> true); - mem, Gamma_mem := memory_store32_le(mem, R0, 0bv32), gamma_store32(Gamma_mem, R0, true); - assert ((R0 == $z_addr) ==> (L(mem, $x_addr) ==> Gamma_x_old)); - assert bvsge32(memory_load32_le(mem, $z_addr), z_old); - assume {:captureState "1884_0"} true; - R0, Gamma_R0 := 65536bv64, true; - call rely(); - load6, Gamma_load6 := memory_load64_le(mem, bvadd64(R0, 4048bv64)), (gamma_load64(Gamma_mem, bvadd64(R0, 4048bv64)) || L(mem, bvadd64(R0, 4048bv64))); - R0, Gamma_R0 := load6, Gamma_load6; - call rely(); - load7, Gamma_load7 := memory_load32_le(mem, R0), (gamma_load32(Gamma_mem, R0) || L(mem, R0)); - R0, Gamma_R0 := zero_extend32_32(load7), Gamma_load7; - R1, Gamma_R1 := zero_extend32_32(bvadd32(R0[32:0], 1bv32)), Gamma_R0; - R0, Gamma_R0 := 65536bv64, true; - call rely(); - load8, Gamma_load8 := memory_load64_le(mem, bvadd64(R0, 4048bv64)), (gamma_load64(Gamma_mem, bvadd64(R0, 4048bv64)) || L(mem, bvadd64(R0, 4048bv64))); - R0, Gamma_R0 := load8, Gamma_load8; - call rely(); - z_old := memory_load32_le(mem, $z_addr); - Gamma_x_old := (gamma_load32(Gamma_mem, $x_addr) || L(mem, $x_addr)); - assert (L(mem, R0) ==> Gamma_R1); - mem, Gamma_mem := memory_store32_le(mem, R0, R1[32:0]), gamma_store32(Gamma_mem, R0, Gamma_R1); - assert ((R0 == $z_addr) ==> (L(mem, $x_addr) ==> Gamma_x_old)); - assert bvsge32(memory_load32_le(mem, $z_addr), z_old); - assume {:captureState "1912_0"} true; - R0, Gamma_R0 := 65536bv64, true; - call rely(); - load9, Gamma_load9 := memory_load64_le(mem, bvadd64(R0, 4072bv64)), (gamma_load64(Gamma_mem, bvadd64(R0, 4072bv64)) || L(mem, bvadd64(R0, 4072bv64))); - R0, Gamma_R0 := load9, Gamma_load9; - call rely(); - load10, Gamma_load10 := memory_load32_le(mem, R0), (gamma_load32(Gamma_mem, R0) || L(mem, R0)); - R1, Gamma_R1 := zero_extend32_32(load10), Gamma_load10; - R0, Gamma_R0 := 65536bv64, true; - call rely(); - load11, Gamma_load11 := memory_load64_le(mem, bvadd64(R0, 4056bv64)), (gamma_load64(Gamma_mem, bvadd64(R0, 4056bv64)) || L(mem, bvadd64(R0, 4056bv64))); - R0, Gamma_R0 := load11, Gamma_load11; + $main$__0__$iedVtPHmSjuLgqSxHgXOuw: + assume {:captureState "$main$__0__$iedVtPHmSjuLgqSxHgXOuw"} true; + R1, Gamma_R1 := 4321280bv64, true; + R2, Gamma_R2 := 2bv64, true; + R0, Gamma_R0 := 0bv64, true; call rely(); - z_old := memory_load32_le(mem, $z_addr); - Gamma_x_old := (gamma_load32(Gamma_mem, $x_addr) || L(mem, $x_addr)); - assert (L(mem, R0) ==> Gamma_R1); - mem, Gamma_mem := memory_store32_le(mem, R0, R1[32:0]), gamma_store32(Gamma_mem, R0, Gamma_R1); - assert ((R0 == $z_addr) ==> (L(mem, $x_addr) ==> Gamma_x_old)); - assert bvsge32(memory_load32_le(mem, $z_addr), z_old); - assume {:captureState "1936_0"} true; - R0, Gamma_R0 := 65536bv64, true; + $load16, Gamma_$load16 := memory_load64_le(mem, bvadd64(R1, 4072bv64)), (gamma_load64(Gamma_mem, bvadd64(R1, 4072bv64)) || L(mem, bvadd64(R1, 4072bv64))); + R3, Gamma_R3 := $load16, Gamma_$load16; call rely(); - load12, Gamma_load12 := memory_load64_le(mem, bvadd64(R0, 4056bv64)), (gamma_load64(Gamma_mem, bvadd64(R0, 4056bv64)) || L(mem, bvadd64(R0, 4056bv64))); - R0, Gamma_R0 := load12, Gamma_load12; + $load17, Gamma_$load17 := memory_load64_le(mem, bvadd64(R1, 4064bv64)), (gamma_load64(Gamma_mem, bvadd64(R1, 4064bv64)) || L(mem, bvadd64(R1, 4064bv64))); + R1, Gamma_R1 := $load17, Gamma_$load17; call rely(); + assert (L(mem, R3) ==> true); z_old := memory_load32_le(mem, $z_addr); Gamma_x_old := (gamma_load32(Gamma_mem, $x_addr) || L(mem, $x_addr)); - assert (L(mem, R0) ==> true); - mem, Gamma_mem := memory_store32_le(mem, R0, 0bv32), gamma_store32(Gamma_mem, R0, true); - assert ((R0 == $z_addr) ==> (L(mem, $x_addr) ==> Gamma_x_old)); + mem, Gamma_mem := memory_store32_le(mem, R3, 0bv32), gamma_store32(Gamma_mem, R3, true); + assert ((R3 == $z_addr) ==> (L(mem, $x_addr) ==> Gamma_x_old)); assert bvsge32(memory_load32_le(mem, $z_addr), z_old); - assume {:captureState "1948_0"} true; - R0, Gamma_R0 := 65536bv64, true; - call rely(); - load13, Gamma_load13 := memory_load64_le(mem, bvadd64(R0, 4048bv64)), (gamma_load64(Gamma_mem, bvadd64(R0, 4048bv64)) || L(mem, bvadd64(R0, 4048bv64))); - R0, Gamma_R0 := load13, Gamma_load13; - call rely(); - load14, Gamma_load14 := memory_load32_le(mem, R0), (gamma_load32(Gamma_mem, R0) || L(mem, R0)); - R0, Gamma_R0 := zero_extend32_32(load14), Gamma_load14; - R1, Gamma_R1 := zero_extend32_32(bvadd32(R0[32:0], 1bv32)), Gamma_R0; - R0, Gamma_R0 := 65536bv64, true; - call rely(); - load15, Gamma_load15 := memory_load64_le(mem, bvadd64(R0, 4048bv64)), (gamma_load64(Gamma_mem, bvadd64(R0, 4048bv64)) || L(mem, bvadd64(R0, 4048bv64))); - R0, Gamma_R0 := load15, Gamma_load15; + assume {:captureState "4195988$0"} true; call rely(); + assert (L(mem, R1) ==> Gamma_R2); z_old := memory_load32_le(mem, $z_addr); Gamma_x_old := (gamma_load32(Gamma_mem, $x_addr) || L(mem, $x_addr)); - assert (L(mem, R0) ==> Gamma_R1); - mem, Gamma_mem := memory_store32_le(mem, R0, R1[32:0]), gamma_store32(Gamma_mem, R0, Gamma_R1); - assert ((R0 == $z_addr) ==> (L(mem, $x_addr) ==> Gamma_x_old)); + mem, Gamma_mem := memory_store32_le(mem, R1, R2[32:0]), gamma_store32(Gamma_mem, R1, Gamma_R2); + assert ((R1 == $z_addr) ==> (L(mem, $x_addr) ==> Gamma_x_old)); assert bvsge32(memory_load32_le(mem, $z_addr), z_old); - assume {:captureState "1976_0"} true; - R0, Gamma_R0 := 0bv64, true; - goto main_1876_basil_return; - main_1876_basil_return: - assume {:captureState "main_1876_basil_return"} true; + assume {:captureState "4195992$0"} true; + goto main_basil_return; + main_basil_return: + assume {:captureState "main_basil_return"} true; return; } diff --git a/src/test/correct/switch/clang/switch.adt b/src/test/correct/switch/clang/switch.adt deleted file mode 100644 index 2fe668077..000000000 --- a/src/test/correct/switch/clang/switch.adt +++ /dev/null @@ -1,614 +0,0 @@ -Project(Attrs([Attr("filename","\"clang/switch.out\""), -Attr("image-specification","(declare abi (name str))\n(declare arch (name str))\n(declare base-address (addr int))\n(declare bias (off int))\n(declare bits (size int))\n(declare code-region (addr int) (size int) (off int))\n(declare code-start (addr int))\n(declare entry-point (addr int))\n(declare external-reference (addr int) (name str))\n(declare format (name str))\n(declare is-executable (flag bool))\n(declare is-little-endian (flag bool))\n(declare llvm:base-address (addr int))\n(declare llvm:code-entry (name str) (off int) (size int))\n(declare llvm:coff-import-library (name str))\n(declare llvm:coff-virtual-section-header (name str) (addr int) (size int))\n(declare llvm:elf-program-header (name str) (off int) (size int))\n(declare llvm:elf-program-header-flags (name str) (ld bool) (r bool) \n (w bool) (x bool))\n(declare llvm:elf-virtual-program-header (name str) (addr int) (size int))\n(declare llvm:entry-point (addr int))\n(declare llvm:macho-symbol (name str) (value int))\n(declare llvm:name-reference (at int) (name str))\n(declare llvm:relocation (at int) (addr int))\n(declare llvm:section-entry (name str) (addr int) (size int) (off int))\n(declare llvm:section-flags (name str) (r bool) (w bool) (x bool))\n(declare llvm:segment-command (name str) (off int) (size int))\n(declare llvm:segment-command-flags (name str) (r bool) (w bool) (x bool))\n(declare llvm:symbol-entry (name str) (addr int) (size int) (off int)\n (value int))\n(declare llvm:virtual-segment-command (name str) (addr int) (size int))\n(declare mapped (addr int) (size int) (off int))\n(declare named-region (addr int) (size int) (name str))\n(declare named-symbol (addr int) (name str))\n(declare require (name str))\n(declare section (addr int) (size int))\n(declare segment (addr int) (size int) (r bool) (w bool) (x bool))\n(declare subarch (name str))\n(declare symbol-chunk (addr int) (size int) (root int))\n(declare symbol-value (addr int) (value int))\n(declare system (name str))\n(declare vendor (name str))\n\n(abi unknown)\n(arch aarch64)\n(base-address 0)\n(bias 0)\n(bits 64)\n(code-region 1916 20 1916)\n(code-region 1536 380 1536)\n(code-region 1440 96 1440)\n(code-region 1408 24 1408)\n(code-start 1588)\n(code-start 1536)\n(code-start 1812)\n(entry-point 1536)\n(external-reference 69568 _ITM_deregisterTMCloneTable)\n(external-reference 69576 __cxa_finalize)\n(external-reference 69584 __gmon_start__)\n(external-reference 69600 _ITM_registerTMCloneTable)\n(external-reference 69632 __libc_start_main)\n(external-reference 69640 __cxa_finalize)\n(external-reference 69648 __gmon_start__)\n(external-reference 69656 abort)\n(format elf)\n(is-executable true)\n(is-little-endian true)\n(llvm:base-address 0)\n(llvm:code-entry abort 0 0)\n(llvm:code-entry __cxa_finalize 0 0)\n(llvm:code-entry __libc_start_main 0 0)\n(llvm:code-entry _init 1408 0)\n(llvm:code-entry main 1812 104)\n(llvm:code-entry _start 1536 52)\n(llvm:code-entry abort@GLIBC_2.17 0 0)\n(llvm:code-entry _fini 1916 0)\n(llvm:code-entry __cxa_finalize@GLIBC_2.17 0 0)\n(llvm:code-entry __libc_start_main@GLIBC_2.34 0 0)\n(llvm:code-entry frame_dummy 1808 0)\n(llvm:code-entry __do_global_dtors_aux 1728 0)\n(llvm:code-entry register_tm_clones 1664 0)\n(llvm:code-entry deregister_tm_clones 1616 0)\n(llvm:code-entry call_weak_fn 1588 20)\n(llvm:code-entry .fini 1916 20)\n(llvm:code-entry .text 1536 380)\n(llvm:code-entry .plt 1440 96)\n(llvm:code-entry .init 1408 24)\n(llvm:elf-program-header 08 3528 568)\n(llvm:elf-program-header 07 0 0)\n(llvm:elf-program-header 06 1940 60)\n(llvm:elf-program-header 05 596 68)\n(llvm:elf-program-header 04 3544 480)\n(llvm:elf-program-header 03 3528 616)\n(llvm:elf-program-header 02 0 2184)\n(llvm:elf-program-header 01 568 27)\n(llvm:elf-program-header 00 64 504)\n(llvm:elf-program-header-flags 08 false true false false)\n(llvm:elf-program-header-flags 07 false true true false)\n(llvm:elf-program-header-flags 06 false true false false)\n(llvm:elf-program-header-flags 05 false true false false)\n(llvm:elf-program-header-flags 04 false true true false)\n(llvm:elf-program-header-flags 03 true true true false)\n(llvm:elf-program-header-flags 02 true true false true)\n(llvm:elf-program-header-flags 01 false true false false)\n(llvm:elf-program-header-flags 00 false true false false)\n(llvm:elf-virtual-program-header 08 69064 568)\n(llvm:elf-virtual-program-header 07 0 0)\n(llvm:elf-virtual-program-header 06 1940 60)\n(llvm:elf-virtual-program-header 05 596 68)\n(llvm:elf-virtual-program-header 04 69080 480)\n(llvm:elf-virtual-program-header 03 69064 624)\n(llvm:elf-virtual-program-header 02 0 2184)\n(llvm:elf-virtual-program-header 01 568 27)\n(llvm:elf-virtual-program-header 00 64 504)\n(llvm:entry-point 1536)\n(llvm:name-reference 69656 abort)\n(llvm:name-reference 69648 __gmon_start__)\n(llvm:name-reference 69640 __cxa_finalize)\n(llvm:name-reference 69632 __libc_start_main)\n(llvm:name-reference 69600 _ITM_registerTMCloneTable)\n(llvm:name-reference 69584 __gmon_start__)\n(llvm:name-reference 69576 __cxa_finalize)\n(llvm:name-reference 69568 _ITM_deregisterTMCloneTable)\n(llvm:section-entry .shstrtab 0 259 6885)\n(llvm:section-entry .strtab 0 557 6328)\n(llvm:section-entry .symtab 0 2112 4216)\n(llvm:section-entry .comment 0 71 4144)\n(llvm:section-entry .bss 69680 8 4144)\n(llvm:section-entry .data 69664 16 4128)\n(llvm:section-entry .got.plt 69608 56 4072)\n(llvm:section-entry .got 69560 48 4024)\n(llvm:section-entry .dynamic 69080 480 3544)\n(llvm:section-entry .fini_array 69072 8 3536)\n(llvm:section-entry .init_array 69064 8 3528)\n(llvm:section-entry .eh_frame 2000 184 2000)\n(llvm:section-entry .eh_frame_hdr 1940 60 1940)\n(llvm:section-entry .rodata 1936 4 1936)\n(llvm:section-entry .fini 1916 20 1916)\n(llvm:section-entry .text 1536 380 1536)\n(llvm:section-entry .plt 1440 96 1440)\n(llvm:section-entry .init 1408 24 1408)\n(llvm:section-entry .rela.plt 1312 96 1312)\n(llvm:section-entry .rela.dyn 1120 192 1120)\n(llvm:section-entry .gnu.version_r 1072 48 1072)\n(llvm:section-entry .gnu.version 1054 18 1054)\n(llvm:section-entry .dynstr 912 141 912)\n(llvm:section-entry .dynsym 696 216 696)\n(llvm:section-entry .gnu.hash 664 28 664)\n(llvm:section-entry .note.ABI-tag 632 32 632)\n(llvm:section-entry .note.gnu.build-id 596 36 596)\n(llvm:section-entry .interp 568 27 568)\n(llvm:section-flags .shstrtab true false false)\n(llvm:section-flags .strtab true false false)\n(llvm:section-flags .symtab true false false)\n(llvm:section-flags .comment true false false)\n(llvm:section-flags .bss true true false)\n(llvm:section-flags .data true true false)\n(llvm:section-flags .got.plt true true false)\n(llvm:section-flags .got true true false)\n(llvm:section-flags .dynamic true true false)\n(llvm:section-flags .fini_array true true false)\n(llvm:section-flags .init_array true true false)\n(llvm:section-flags .eh_frame true false false)\n(llvm:section-flags .eh_frame_hdr true false false)\n(llvm:section-flags .rodata true false false)\n(llvm:section-flags .fini true false true)\n(llvm:section-flags .text true false true)\n(llvm:section-flags .plt true false true)\n(llvm:section-flags .init true false true)\n(llvm:section-flags .rela.plt true false false)\n(llvm:section-flags .rela.dyn true false false)\n(llvm:section-flags .gnu.version_r true false false)\n(llvm:section-flags .gnu.version true false false)\n(llvm:section-flags .dynstr true false false)\n(llvm:section-flags .dynsym true false false)\n(llvm:section-flags .gnu.hash true false false)\n(llvm:section-flags .note.ABI-tag true false false)\n(llvm:section-flags .note.gnu.build-id true false false)\n(llvm:section-flags .interp true false false)\n(llvm:symbol-entry abort 0 0 0 0)\n(llvm:symbol-entry __cxa_finalize 0 0 0 0)\n(llvm:symbol-entry __libc_start_main 0 0 0 0)\n(llvm:symbol-entry _init 1408 0 1408 1408)\n(llvm:symbol-entry main 1812 104 1812 1812)\n(llvm:symbol-entry _start 1536 52 1536 1536)\n(llvm:symbol-entry abort@GLIBC_2.17 0 0 0 0)\n(llvm:symbol-entry _fini 1916 0 1916 1916)\n(llvm:symbol-entry __cxa_finalize@GLIBC_2.17 0 0 0 0)\n(llvm:symbol-entry __libc_start_main@GLIBC_2.34 0 0 0 0)\n(llvm:symbol-entry frame_dummy 1808 0 1808 1808)\n(llvm:symbol-entry __do_global_dtors_aux 1728 0 1728 1728)\n(llvm:symbol-entry register_tm_clones 1664 0 1664 1664)\n(llvm:symbol-entry deregister_tm_clones 1616 0 1616 1616)\n(llvm:symbol-entry call_weak_fn 1588 20 1588 1588)\n(mapped 0 2184 0)\n(mapped 69064 616 3528)\n(named-region 0 2184 02)\n(named-region 69064 624 03)\n(named-region 568 27 .interp)\n(named-region 596 36 .note.gnu.build-id)\n(named-region 632 32 .note.ABI-tag)\n(named-region 664 28 .gnu.hash)\n(named-region 696 216 .dynsym)\n(named-region 912 141 .dynstr)\n(named-region 1054 18 .gnu.version)\n(named-region 1072 48 .gnu.version_r)\n(named-region 1120 192 .rela.dyn)\n(named-region 1312 96 .rela.plt)\n(named-region 1408 24 .init)\n(named-region 1440 96 .plt)\n(named-region 1536 380 .text)\n(named-region 1916 20 .fini)\n(named-region 1936 4 .rodata)\n(named-region 1940 60 .eh_frame_hdr)\n(named-region 2000 184 .eh_frame)\n(named-region 69064 8 .init_array)\n(named-region 69072 8 .fini_array)\n(named-region 69080 480 .dynamic)\n(named-region 69560 48 .got)\n(named-region 69608 56 .got.plt)\n(named-region 69664 16 .data)\n(named-region 69680 8 .bss)\n(named-region 0 71 .comment)\n(named-region 0 2112 .symtab)\n(named-region 0 557 .strtab)\n(named-region 0 259 .shstrtab)\n(named-symbol 1588 call_weak_fn)\n(named-symbol 1616 deregister_tm_clones)\n(named-symbol 1664 register_tm_clones)\n(named-symbol 1728 __do_global_dtors_aux)\n(named-symbol 1808 frame_dummy)\n(named-symbol 0 __libc_start_main@GLIBC_2.34)\n(named-symbol 0 __cxa_finalize@GLIBC_2.17)\n(named-symbol 1916 _fini)\n(named-symbol 0 abort@GLIBC_2.17)\n(named-symbol 1536 _start)\n(named-symbol 1812 main)\n(named-symbol 1408 _init)\n(named-symbol 0 __libc_start_main)\n(named-symbol 0 __cxa_finalize)\n(named-symbol 0 abort)\n(require libc.so.6)\n(section 568 27)\n(section 596 36)\n(section 632 32)\n(section 664 28)\n(section 696 216)\n(section 912 141)\n(section 1054 18)\n(section 1072 48)\n(section 1120 192)\n(section 1312 96)\n(section 1408 24)\n(section 1440 96)\n(section 1536 380)\n(section 1916 20)\n(section 1936 4)\n(section 1940 60)\n(section 2000 184)\n(section 69064 8)\n(section 69072 8)\n(section 69080 480)\n(section 69560 48)\n(section 69608 56)\n(section 69664 16)\n(section 69680 8)\n(section 0 71)\n(section 0 2112)\n(section 0 557)\n(section 0 259)\n(segment 0 2184 true false true)\n(segment 69064 624 true true false)\n(subarch v8)\n(symbol-chunk 1588 20 1588)\n(symbol-chunk 1536 52 1536)\n(symbol-chunk 1812 104 1812)\n(symbol-value 1588 1588)\n(symbol-value 1616 1616)\n(symbol-value 1664 1664)\n(symbol-value 1728 1728)\n(symbol-value 1808 1808)\n(symbol-value 1916 1916)\n(symbol-value 1536 1536)\n(symbol-value 1812 1812)\n(symbol-value 1408 1408)\n(symbol-value 0 0)\n(system \"\")\n(vendor \"\")\n"), -Attr("abi-name","\"aarch64-linux-gnu-elf\"")]), -Sections([Section(".shstrtab", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x00\x06\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xe8\x1b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x38\x00\x09\x00\x40\x00\x1d\x00\x1c\x00\x06\x00\x00\x00\x04\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x04\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x88\x08\x00\x00\x00\x00\x00\x00\x88\x08\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x01\x00\x00\x00\x06\x00\x00\x00\xc8\x0d\x00\x00\x00\x00\x00\x00\xc8\x0d\x01\x00\x00\x00\x00\x00\xc8\x0d\x01"), -Section(".strtab", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x00\x06\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xe8\x1b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x38\x00\x09\x00\x40\x00\x1d\x00\x1c\x00\x06\x00\x00\x00\x04\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x04\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x88\x08\x00\x00\x00\x00\x00\x00\x88\x08\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x01\x00\x00\x00\x06\x00\x00\x00\xc8\x0d\x00\x00\x00\x00\x00\x00\xc8\x0d\x01\x00\x00\x00\x00\x00\xc8\x0d\x01\x00\x00\x00\x00\x00\x68\x02\x00\x00\x00\x00\x00\x00\x70\x02\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x02\x00\x00\x00\x06\x00\x00\x00\xd8\x0d\x00\x00\x00\x00\x00\x00\xd8\x0d\x01\x00\x00\x00\x00\x00\xd8\x0d\x01\x00\x00\x00\x00\x00\xe0\x01\x00\x00\x00\x00\x00\x00\xe0\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x04\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x50\xe5\x74\x64\x04\x00\x00\x00\x94\x07\x00\x00\x00\x00\x00\x00\x94\x07\x00\x00\x00\x00\x00\x00\x94\x07\x00\x00\x00\x00\x00\x00\x3c\x00\x00\x00\x00\x00\x00\x00\x3c\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x51\xe5\x74\x64\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x52\xe5\x74\x64\x04\x00\x00\x00\xc8\x0d\x00\x00\x00\x00\x00\x00\xc8\x0d\x01\x00\x00\x00\x00\x00\xc8\x0d\x01\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00"), -Section(".symtab", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x00\x06\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xe8\x1b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x38\x00\x09\x00\x40\x00\x1d\x00\x1c\x00\x06\x00\x00\x00\x04\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x04\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x88\x08\x00\x00\x00\x00\x00\x00\x88\x08\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x01\x00\x00\x00\x06\x00\x00\x00\xc8\x0d\x00\x00\x00\x00\x00\x00\xc8\x0d\x01\x00\x00\x00\x00\x00\xc8\x0d\x01\x00\x00\x00\x00\x00\x68\x02\x00\x00\x00\x00\x00\x00\x70\x02\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x02\x00\x00\x00\x06\x00\x00\x00\xd8\x0d\x00\x00\x00\x00\x00\x00\xd8\x0d\x01\x00\x00\x00\x00\x00\xd8\x0d\x01\x00\x00\x00\x00\x00\xe0\x01\x00\x00\x00\x00\x00\x00\xe0\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x04\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x50\xe5\x74\x64\x04\x00\x00\x00\x94\x07\x00\x00\x00\x00\x00\x00\x94\x07\x00\x00\x00\x00\x00\x00\x94\x07\x00\x00\x00\x00\x00\x00\x3c\x00\x00\x00\x00\x00\x00\x00\x3c\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x51\xe5\x74\x64\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x52\xe5\x74\x64\x04\x00\x00\x00\xc8\x0d\x00\x00\x00\x00\x00\x00\xc8\x0d\x01\x00\x00\x00\x00\x00\xc8\x0d\x01\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x2f\x6c\x69\x62\x2f\x6c\x64\x2d\x6c\x69\x6e\x75\x78\x2d\x61\x61\x72\x63\x68\x36\x34\x2e\x73\x6f\x2e\x31\x00\x00\x04\x00\x00\x00\x14\x00\x00\x00\x03\x00\x00\x00\x47\x4e\x55\x00\x5a\x03\x94\x5f\x55\xc7\x1e\xb6\xb1\xe1\xef\xa1\xc0\x4f\xb4\x0c\xe9\xb7\x48\xbb\x04\x00\x00\x00\x10\x00\x00\x00\x01\x00\x00\x00\x47\x4e\x55\x00\x00\x00\x00\x00\x03\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x01\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x0b\x00\x80\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x17\x00\x20\x10\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x48\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x22\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x22\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x73\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5f\x5f\x63\x78\x61\x5f\x66\x69\x6e\x61\x6c\x69\x7a\x65\x00\x5f\x5f\x6c\x69\x62\x63\x5f\x73\x74\x61\x72\x74\x5f\x6d\x61\x69\x6e\x00\x61\x62\x6f\x72\x74\x00\x6c\x69\x62\x63\x2e\x73\x6f\x2e\x36\x00\x47\x4c\x49\x42\x43\x5f\x32\x2e\x31\x37\x00\x47\x4c\x49\x42\x43\x5f\x32\x2e\x33\x34\x00\x5f\x49\x54\x4d\x5f\x64\x65\x72\x65\x67\x69\x73\x74\x65\x72\x54\x4d\x43\x6c\x6f\x6e\x65\x54\x61\x62\x6c\x65\x00\x5f\x5f\x67\x6d\x6f\x6e\x5f\x73\x74\x61\x72\x74\x5f\x5f\x00\x5f\x49\x54\x4d\x5f\x72\x65\x67\x69\x73\x74\x65\x72\x54\x4d\x43\x6c\x6f\x6e\x65\x54\x61\x62\x6c\x65\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x01\x00\x03\x00\x01\x00\x03\x00\x01\x00\x01\x00\x02\x00\x28\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x97\x91\x96\x06\x00\x00\x03\x00\x32\x00\x00\x00\x10\x00\x00\x00\xb4\x91\x96\x06\x00\x00\x02\x00\x3d\x00\x00\x00\x00\x00\x00\x00\xc8\x0d\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x10\x07\x00\x00\x00\x00\x00\x00\xd0\x0d\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\xc0\x06\x00\x00\x00\x00\x00\x00\xd8\x0f\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x14\x07\x00\x00\x00\x00\x00\x00\x28\x10\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x28\x10\x01\x00\x00\x00\x00\x00\xc0\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xc8\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xd0\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe0\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x08\x10\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x10\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x18\x10\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1f\x20\x03\xd5\xfd\x7b\xbf\xa9\xfd\x03\x00\x91\x2a\x00\x00\x94\xfd\x7b\xc1\xa8\xc0\x03\x5f\xd6\x00\x00\x00\x00\x00\x00\x00\x00\xf0\x7b\xbf\xa9\x90\x00\x00\x90\x11\xfe\x47\xf9\x10\xe2\x3f\x91\x20\x02\x1f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x90\x00\x00\xb0\x11\x02\x40\xf9\x10\x02\x00\x91\x20\x02\x1f\xd6\x90\x00\x00\xb0\x11\x06\x40\xf9\x10\x22\x00\x91\x20\x02\x1f\xd6\x90\x00\x00\xb0\x11\x0a\x40\xf9\x10\x42\x00\x91\x20\x02\x1f\xd6\x90\x00\x00\xb0\x11\x0e\x40\xf9\x10\x62\x00\x91\x20\x02\x1f\xd6\x1f\x20\x03\xd5\x1d\x00\x80\xd2\x1e\x00\x80\xd2\xe5\x03\x00\xaa\xe1\x03\x40\xf9\xe2\x23\x00\x91\xe6\x03\x00\x91\x80\x00\x00\x90\x00\xec\x47\xf9\x03\x00\x80\xd2\x04\x00\x80\xd2\xe5\xff\xff\x97\xf0\xff\xff\x97\x80\x00\x00\x90\x00\xe8\x47\xf9\x40\x00\x00\xb4\xe8\xff\xff\x17\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x80\x00\x00\xb0\x00\xc0\x00\x91\x81\x00\x00\xb0\x21\xc0\x00\x91\x3f\x00\x00\xeb\xc0\x00\x00\x54\x81\x00\x00\x90\x21\xe0\x47\xf9\x61\x00\x00\xb4\xf0\x03\x01\xaa\x00\x02\x1f\xd6\xc0\x03\x5f\xd6\x80\x00\x00\xb0\x00\xc0\x00\x91\x81\x00\x00\xb0\x21\xc0\x00\x91\x21\x00\x00\xcb\x22\xfc\x7f\xd3\x41\x0c\x81\x8b\x21\xfc\x41\x93\xc1\x00\x00\xb4\x82\x00\x00\x90\x42\xf0\x47\xf9\x62\x00\x00\xb4\xf0\x03\x02\xaa\x00\x02\x1f\xd6\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\xfd\x7b\xbe\xa9\xfd\x03\x00\x91\xf3\x0b\x00\xf9\x93\x00\x00\xb0\x60\xc2\x40\x39\x40\x01\x00\x35\x80\x00\x00\x90\x00\xe4\x47\xf9\x80\x00\x00\xb4\x80\x00\x00\xb0\x00\x14\x40\xf9\xb9\xff\xff\x97\xd8\xff\xff\x97\x20\x00\x80\x52\x60\xc2\x00\x39\xf3\x0b\x40\xf9\xfd\x7b\xc2\xa8\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\xdc\xff\xff\x17\xff\x43\x00\xd1\x28\x00\x80\x52\xe8\x0f\x00\xb9\xff\x0b\x00\xb9\xe8\x0f\x40\xb9\xe8\x07\x00\xb9\x08\x05\x00\x71\xe8\x17\x9f\x1a\x48\x01\x00\x37\x01\x00\x00\x14\xe8\x07\x40\xb9\x08\x0d\x00\x71\xe8\x07\x9f\x1a\x08\x01\x00\x37\x01\x00\x00\x14\x68\x00\x80\x52\xe8\x0b\x00\xb9\x01\x00\x00\x14\x28\x00\x80\x52\xe8\x0b\x00\xb9\x04\x00\x00\x14\xa8\x00\x80\x52\xe8\x0b\x00\xb9\x01\x00\x00\x14\xff\x43\x00\x91\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\xfd\x7b\xbf\xa9\xfd\x03\x00\x91\xfd\x7b\xc1\xa8\xc0\x03\x5f\xd6\x01\x00\x02\x00\x01\x1b\x03\x3b\x38\x00\x00\x00\x06\x00\x00\x00\x6c\xfe\xff\xff\x50\x00\x00\x00\xbc\xfe\xff\xff\x64\x00\x00\x00\xec\xfe\xff\xff\x78\x00\x00\x00\x2c\xff\xff\xff\x8c\x00\x00\x00\x7c\xff\xff\xff\xb0\x00\x00\x00\x80\xff\xff\xff\xd8\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x01\x7a\x52\x00\x04\x78\x1e\x01\x1b\x0c\x1f\x00\x10\x00\x00\x00\x18\x00\x00\x00\x14\xfe\xff\xff\x34\x00\x00\x00\x00\x41\x07\x1e\x10\x00\x00\x00\x2c\x00\x00\x00\x50\xfe\xff\xff\x30\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x40\x00\x00\x00\x6c\xfe\xff\xff\x3c\x00\x00\x00\x00\x00\x00\x00\x20\x00\x00\x00\x54\x00\x00\x00\x98\xfe\xff\xff\x48\x00\x00\x00\x00\x41\x0e\x20\x9d\x04\x9e\x03\x42\x93\x02\x4e\xde\xdd\xd3\x0e"), -Section(".comment", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x00\x06\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xe8\x1b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x38\x00\x09\x00\x40\x00\x1d\x00\x1c\x00\x06\x00\x00\x00\x04\x00\x00"), -Section(".interp", 0x238, "\x2f\x6c\x69\x62\x2f\x6c\x64\x2d\x6c\x69\x6e\x75\x78\x2d\x61\x61\x72\x63\x68\x36\x34\x2e\x73\x6f\x2e\x31\x00"), -Section(".note.gnu.build-id", 0x254, "\x04\x00\x00\x00\x14\x00\x00\x00\x03\x00\x00\x00\x47\x4e\x55\x00\x5a\x03\x94\x5f\x55\xc7\x1e\xb6\xb1\xe1\xef\xa1\xc0\x4f\xb4\x0c\xe9\xb7\x48\xbb"), -Section(".note.ABI-tag", 0x278, "\x04\x00\x00\x00\x10\x00\x00\x00\x01\x00\x00\x00\x47\x4e\x55\x00\x00\x00\x00\x00\x03\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00"), -Section(".gnu.hash", 0x298, "\x01\x00\x00\x00\x01\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".dynsym", 0x2B8, "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x0b\x00\x80\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x17\x00\x20\x10\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x48\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x22\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x22\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x73\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".dynstr", 0x390, "\x00\x5f\x5f\x63\x78\x61\x5f\x66\x69\x6e\x61\x6c\x69\x7a\x65\x00\x5f\x5f\x6c\x69\x62\x63\x5f\x73\x74\x61\x72\x74\x5f\x6d\x61\x69\x6e\x00\x61\x62\x6f\x72\x74\x00\x6c\x69\x62\x63\x2e\x73\x6f\x2e\x36\x00\x47\x4c\x49\x42\x43\x5f\x32\x2e\x31\x37\x00\x47\x4c\x49\x42\x43\x5f\x32\x2e\x33\x34\x00\x5f\x49\x54\x4d\x5f\x64\x65\x72\x65\x67\x69\x73\x74\x65\x72\x54\x4d\x43\x6c\x6f\x6e\x65\x54\x61\x62\x6c\x65\x00\x5f\x5f\x67\x6d\x6f\x6e\x5f\x73\x74\x61\x72\x74\x5f\x5f\x00\x5f\x49\x54\x4d\x5f\x72\x65\x67\x69\x73\x74\x65\x72\x54\x4d\x43\x6c\x6f\x6e\x65\x54\x61\x62\x6c\x65\x00"), -Section(".gnu.version", 0x41E, "\x00\x00\x00\x00\x00\x00\x02\x00\x01\x00\x03\x00\x01\x00\x03\x00\x01\x00"), -Section(".gnu.version_r", 0x430, "\x01\x00\x02\x00\x28\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x97\x91\x96\x06\x00\x00\x03\x00\x32\x00\x00\x00\x10\x00\x00\x00\xb4\x91\x96\x06\x00\x00\x02\x00\x3d\x00\x00\x00\x00\x00\x00\x00"), -Section(".rela.dyn", 0x460, "\xc8\x0d\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x10\x07\x00\x00\x00\x00\x00\x00\xd0\x0d\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\xc0\x06\x00\x00\x00\x00\x00\x00\xd8\x0f\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x14\x07\x00\x00\x00\x00\x00\x00\x28\x10\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x28\x10\x01\x00\x00\x00\x00\x00\xc0\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xc8\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xd0\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe0\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".rela.plt", 0x520, "\x00\x10\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x08\x10\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x10\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x18\x10\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".init", 0x580, "\x1f\x20\x03\xd5\xfd\x7b\xbf\xa9\xfd\x03\x00\x91\x2a\x00\x00\x94\xfd\x7b\xc1\xa8\xc0\x03\x5f\xd6"), -Section(".plt", 0x5A0, "\xf0\x7b\xbf\xa9\x90\x00\x00\x90\x11\xfe\x47\xf9\x10\xe2\x3f\x91\x20\x02\x1f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x90\x00\x00\xb0\x11\x02\x40\xf9\x10\x02\x00\x91\x20\x02\x1f\xd6\x90\x00\x00\xb0\x11\x06\x40\xf9\x10\x22\x00\x91\x20\x02\x1f\xd6\x90\x00\x00\xb0\x11\x0a\x40\xf9\x10\x42\x00\x91\x20\x02\x1f\xd6\x90\x00\x00\xb0\x11\x0e\x40\xf9\x10\x62\x00\x91\x20\x02\x1f\xd6"), -Section(".fini", 0x77C, "\x1f\x20\x03\xd5\xfd\x7b\xbf\xa9\xfd\x03\x00\x91\xfd\x7b\xc1\xa8\xc0\x03\x5f\xd6"), -Section(".rodata", 0x790, "\x01\x00\x02\x00"), -Section(".eh_frame_hdr", 0x794, "\x01\x1b\x03\x3b\x38\x00\x00\x00\x06\x00\x00\x00\x6c\xfe\xff\xff\x50\x00\x00\x00\xbc\xfe\xff\xff\x64\x00\x00\x00\xec\xfe\xff\xff\x78\x00\x00\x00\x2c\xff\xff\xff\x8c\x00\x00\x00\x7c\xff\xff\xff\xb0\x00\x00\x00\x80\xff\xff\xff\xd8\x00\x00\x00"), -Section(".eh_frame", 0x7D0, "\x10\x00\x00\x00\x00\x00\x00\x00\x01\x7a\x52\x00\x04\x78\x1e\x01\x1b\x0c\x1f\x00\x10\x00\x00\x00\x18\x00\x00\x00\x14\xfe\xff\xff\x34\x00\x00\x00\x00\x41\x07\x1e\x10\x00\x00\x00\x2c\x00\x00\x00\x50\xfe\xff\xff\x30\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x40\x00\x00\x00\x6c\xfe\xff\xff\x3c\x00\x00\x00\x00\x00\x00\x00\x20\x00\x00\x00\x54\x00\x00\x00\x98\xfe\xff\xff\x48\x00\x00\x00\x00\x41\x0e\x20\x9d\x04\x9e\x03\x42\x93\x02\x4e\xde\xdd\xd3\x0e\x00\x00\x00\x00\x10\x00\x00\x00\x78\x00\x00\x00\xc4\xfe\xff\xff\x04\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x01\x7a\x52\x00\x01\x7c\x1e\x01\x1b\x0c\x1f\x00\x14\x00\x00\x00\x18\x00\x00\x00\xa0\xfe\xff\xff\x68\x00\x00\x00\x00\x44\x0e\x10\x02\x60\x0e\x00\x00\x00\x00\x00"), -Section(".fini_array", 0x10DD0, "\xc0\x06\x00\x00\x00\x00\x00\x00"), -Section(".dynamic", 0x10DD8, "\x01\x00\x00\x00\x00\x00\x00\x00\x28\x00\x00\x00\x00\x00\x00\x00\x0c\x00\x00\x00\x00\x00\x00\x00\x80\x05\x00\x00\x00\x00\x00\x00\x0d\x00\x00\x00\x00\x00\x00\x00\x7c\x07\x00\x00\x00\x00\x00\x00\x19\x00\x00\x00\x00\x00\x00\x00\xc8\x0d\x01\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x1a\x00\x00\x00\x00\x00\x00\x00\xd0\x0d\x01\x00\x00\x00\x00\x00\x1c\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\xf5\xfe\xff\x6f\x00\x00\x00\x00\x98\x02\x00\x00\x00\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x90\x03\x00\x00\x00\x00\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\xb8\x02\x00\x00\x00\x00\x00\x00\x0a\x00\x00\x00\x00\x00\x00\x00\x8d\x00\x00\x00\x00\x00\x00\x00\x0b\x00\x00\x00\x00\x00\x00\x00\x18\x00\x00\x00\x00\x00\x00\x00\x15\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\xe8\x0f\x01\x00\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x60\x00\x00\x00\x00\x00\x00\x00\x14\x00\x00\x00\x00\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x17\x00\x00\x00\x00\x00\x00\x00\x20\x05\x00\x00\x00\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x60\x04\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\xc0\x00\x00\x00\x00\x00\x00\x00\x09\x00\x00\x00\x00\x00\x00\x00\x18\x00\x00\x00\x00\x00\x00\x00\xfb\xff\xff\x6f\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\xfe\xff\xff\x6f\x00\x00\x00\x00\x30\x04\x00\x00\x00\x00\x00\x00\xff\xff\xff\x6f\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\xf0\xff\xff\x6f\x00\x00\x00\x00\x1e\x04\x00\x00\x00\x00\x00\x00\xf9\xff\xff\x6f\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".init_array", 0x10DC8, "\x10\x07\x00\x00\x00\x00\x00\x00"), -Section(".got", 0x10FB8, "\xd8\x0d\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x14\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".got.plt", 0x10FE8, "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xa0\x05\x00\x00\x00\x00\x00\x00\xa0\x05\x00\x00\x00\x00\x00\x00\xa0\x05\x00\x00\x00\x00\x00\x00\xa0\x05\x00\x00\x00\x00\x00\x00"), -Section(".data", 0x11020, "\x00\x00\x00\x00\x00\x00\x00\x00\x28\x10\x01\x00\x00\x00\x00\x00"), -Section(".text", 0x600, "\x1f\x20\x03\xd5\x1d\x00\x80\xd2\x1e\x00\x80\xd2\xe5\x03\x00\xaa\xe1\x03\x40\xf9\xe2\x23\x00\x91\xe6\x03\x00\x91\x80\x00\x00\x90\x00\xec\x47\xf9\x03\x00\x80\xd2\x04\x00\x80\xd2\xe5\xff\xff\x97\xf0\xff\xff\x97\x80\x00\x00\x90\x00\xe8\x47\xf9\x40\x00\x00\xb4\xe8\xff\xff\x17\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x80\x00\x00\xb0\x00\xc0\x00\x91\x81\x00\x00\xb0\x21\xc0\x00\x91\x3f\x00\x00\xeb\xc0\x00\x00\x54\x81\x00\x00\x90\x21\xe0\x47\xf9\x61\x00\x00\xb4\xf0\x03\x01\xaa\x00\x02\x1f\xd6\xc0\x03\x5f\xd6\x80\x00\x00\xb0\x00\xc0\x00\x91\x81\x00\x00\xb0\x21\xc0\x00\x91\x21\x00\x00\xcb\x22\xfc\x7f\xd3\x41\x0c\x81\x8b\x21\xfc\x41\x93\xc1\x00\x00\xb4\x82\x00\x00\x90\x42\xf0\x47\xf9\x62\x00\x00\xb4\xf0\x03\x02\xaa\x00\x02\x1f\xd6\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\xfd\x7b\xbe\xa9\xfd\x03\x00\x91\xf3\x0b\x00\xf9\x93\x00\x00\xb0\x60\xc2\x40\x39\x40\x01\x00\x35\x80\x00\x00\x90\x00\xe4\x47\xf9\x80\x00\x00\xb4\x80\x00\x00\xb0\x00\x14\x40\xf9\xb9\xff\xff\x97\xd8\xff\xff\x97\x20\x00\x80\x52\x60\xc2\x00\x39\xf3\x0b\x40\xf9\xfd\x7b\xc2\xa8\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\xdc\xff\xff\x17\xff\x43\x00\xd1\x28\x00\x80\x52\xe8\x0f\x00\xb9\xff\x0b\x00\xb9\xe8\x0f\x40\xb9\xe8\x07\x00\xb9\x08\x05\x00\x71\xe8\x17\x9f\x1a\x48\x01\x00\x37\x01\x00\x00\x14\xe8\x07\x40\xb9\x08\x0d\x00\x71\xe8\x07\x9f\x1a\x08\x01\x00\x37\x01\x00\x00\x14\x68\x00\x80\x52\xe8\x0b\x00\xb9\x01\x00\x00\x14\x28\x00\x80\x52\xe8\x0b\x00\xb9\x04\x00\x00\x14\xa8\x00\x80\x52\xe8\x0b\x00\xb9\x01\x00\x00\x14\xff\x43\x00\x91\xc0\x03\x5f\xd6")]), -Memmap([Annotation(Region(0x0,0x887), Attr("segment","02 0 2184")), -Annotation(Region(0x600,0x633), Attr("symbol","\"_start\"")), -Annotation(Region(0x0,0x102), Attr("section","\".shstrtab\"")), -Annotation(Region(0x0,0x22C), Attr("section","\".strtab\"")), -Annotation(Region(0x0,0x83F), Attr("section","\".symtab\"")), -Annotation(Region(0x0,0x46), Attr("section","\".comment\"")), -Annotation(Region(0x238,0x252), Attr("section","\".interp\"")), -Annotation(Region(0x254,0x277), Attr("section","\".note.gnu.build-id\"")), -Annotation(Region(0x278,0x297), Attr("section","\".note.ABI-tag\"")), -Annotation(Region(0x298,0x2B3), Attr("section","\".gnu.hash\"")), -Annotation(Region(0x2B8,0x38F), Attr("section","\".dynsym\"")), -Annotation(Region(0x390,0x41C), Attr("section","\".dynstr\"")), -Annotation(Region(0x41E,0x42F), Attr("section","\".gnu.version\"")), -Annotation(Region(0x430,0x45F), Attr("section","\".gnu.version_r\"")), -Annotation(Region(0x460,0x51F), Attr("section","\".rela.dyn\"")), -Annotation(Region(0x520,0x57F), Attr("section","\".rela.plt\"")), -Annotation(Region(0x580,0x597), Attr("section","\".init\"")), -Annotation(Region(0x5A0,0x5FF), Attr("section","\".plt\"")), -Annotation(Region(0x580,0x597), Attr("code-region","()")), -Annotation(Region(0x5A0,0x5FF), Attr("code-region","()")), -Annotation(Region(0x600,0x633), Attr("symbol-info","_start 0x600 52")), -Annotation(Region(0x634,0x647), Attr("symbol","\"call_weak_fn\"")), -Annotation(Region(0x634,0x647), Attr("symbol-info","call_weak_fn 0x634 20")), -Annotation(Region(0x714,0x77B), Attr("symbol","\"main\"")), -Annotation(Region(0x714,0x77B), Attr("symbol-info","main 0x714 104")), -Annotation(Region(0x77C,0x78F), Attr("section","\".fini\"")), -Annotation(Region(0x790,0x793), Attr("section","\".rodata\"")), -Annotation(Region(0x794,0x7CF), Attr("section","\".eh_frame_hdr\"")), -Annotation(Region(0x7D0,0x887), Attr("section","\".eh_frame\"")), -Annotation(Region(0x10DC8,0x1102F), Attr("segment","03 0x10DC8 624")), -Annotation(Region(0x10DD0,0x10DD7), Attr("section","\".fini_array\"")), -Annotation(Region(0x10DD8,0x10FB7), Attr("section","\".dynamic\"")), -Annotation(Region(0x10DC8,0x10DCF), Attr("section","\".init_array\"")), -Annotation(Region(0x10FB8,0x10FE7), Attr("section","\".got\"")), -Annotation(Region(0x10FE8,0x1101F), Attr("section","\".got.plt\"")), -Annotation(Region(0x11020,0x1102F), Attr("section","\".data\"")), -Annotation(Region(0x600,0x77B), Attr("section","\".text\"")), -Annotation(Region(0x600,0x77B), Attr("code-region","()")), -Annotation(Region(0x77C,0x78F), Attr("code-region","()"))]), -Program(Tid(1_737, "%000006c9"), Attrs([]), - Subs([Sub(Tid(1_683, "@__cxa_finalize"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x5D0"), -Attr("stub","()")]), "__cxa_finalize", Args([Arg(Tid(1_738, "%000006ca"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("__cxa_finalize_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(1_059, "@__cxa_finalize"), - Attrs([Attr("address","0x5D0")]), Phis([]), -Defs([Def(Tid(1_307, "%0000051b"), Attrs([Attr("address","0x5D0"), -Attr("insn","adrp x16, #69632")]), Var("R16",Imm(64)), Int(69632,64)), -Def(Tid(1_314, "%00000522"), Attrs([Attr("address","0x5D4"), -Attr("insn","ldr x17, [x16, #0x8]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(1_320, "%00000528"), Attrs([Attr("address","0x5D8"), -Attr("insn","add x16, x16, #0x8")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(8,64)))]), Jmps([Call(Tid(1_325, "%0000052d"), - Attrs([Attr("address","0x5DC"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), -Sub(Tid(1_684, "@__do_global_dtors_aux"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x6C0")]), - "__do_global_dtors_aux", Args([Arg(Tid(1_739, "%000006cb"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("__do_global_dtors_aux_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(694, "@__do_global_dtors_aux"), - Attrs([Attr("address","0x6C0")]), Phis([]), Defs([Def(Tid(698, "%000002ba"), - Attrs([Attr("address","0x6C0"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("#3",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(18446744073709551584,64))), -Def(Tid(704, "%000002c0"), Attrs([Attr("address","0x6C0"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("#3",Imm(64)),Var("R29",Imm(64)),LittleEndian(),64)), -Def(Tid(710, "%000002c6"), Attrs([Attr("address","0x6C0"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("#3",Imm(64)),Int(8,64)),Var("R30",Imm(64)),LittleEndian(),64)), -Def(Tid(714, "%000002ca"), Attrs([Attr("address","0x6C0"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("R31",Imm(64)), -Var("#3",Imm(64))), Def(Tid(720, "%000002d0"), - Attrs([Attr("address","0x6C4"), Attr("insn","mov x29, sp")]), - Var("R29",Imm(64)), Var("R31",Imm(64))), Def(Tid(728, "%000002d8"), - Attrs([Attr("address","0x6C8"), Attr("insn","str x19, [sp, #0x10]")]), - Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(16,64)),Var("R19",Imm(64)),LittleEndian(),64)), -Def(Tid(733, "%000002dd"), Attrs([Attr("address","0x6CC"), -Attr("insn","adrp x19, #69632")]), Var("R19",Imm(64)), Int(69632,64)), -Def(Tid(740, "%000002e4"), Attrs([Attr("address","0x6D0"), -Attr("insn","ldrb w0, [x19, #0x30]")]), Var("R0",Imm(64)), -UNSIGNED(64,Load(Var("mem",Mem(64,8)),PLUS(Var("R19",Imm(64)),Int(48,64)),LittleEndian(),8)))]), -Jmps([Goto(Tid(747, "%000002eb"), Attrs([Attr("address","0x6D4"), -Attr("insn","cbnz w0, #0x28")]), - NEQ(Extract(31,0,Var("R0",Imm(64))),Int(0,32)), -Direct(Tid(745, "%000002e9"))), Goto(Tid(1_725, "%000006bd"), Attrs([]), - Int(1,1), Direct(Tid(1_004, "%000003ec")))])), Blk(Tid(1_004, "%000003ec"), - Attrs([Attr("address","0x6D8")]), Phis([]), -Defs([Def(Tid(1_007, "%000003ef"), Attrs([Attr("address","0x6D8"), -Attr("insn","adrp x0, #65536")]), Var("R0",Imm(64)), Int(65536,64)), -Def(Tid(1_014, "%000003f6"), Attrs([Attr("address","0x6DC"), -Attr("insn","ldr x0, [x0, #0xfc8]")]), Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(4040,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(1_020, "%000003fc"), Attrs([Attr("address","0x6E0"), -Attr("insn","cbz x0, #0x10")]), EQ(Var("R0",Imm(64)),Int(0,64)), -Direct(Tid(1_018, "%000003fa"))), Goto(Tid(1_726, "%000006be"), Attrs([]), - Int(1,1), Direct(Tid(1_043, "%00000413")))])), Blk(Tid(1_043, "%00000413"), - Attrs([Attr("address","0x6E4")]), Phis([]), -Defs([Def(Tid(1_046, "%00000416"), Attrs([Attr("address","0x6E4"), -Attr("insn","adrp x0, #69632")]), Var("R0",Imm(64)), Int(69632,64)), -Def(Tid(1_053, "%0000041d"), Attrs([Attr("address","0x6E8"), -Attr("insn","ldr x0, [x0, #0x28]")]), Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(40,64)),LittleEndian(),64)), -Def(Tid(1_058, "%00000422"), Attrs([Attr("address","0x6EC"), -Attr("insn","bl #-0x11c")]), Var("R30",Imm(64)), Int(1776,64))]), -Jmps([Call(Tid(1_061, "%00000425"), Attrs([Attr("address","0x6EC"), -Attr("insn","bl #-0x11c")]), Int(1,1), -(Direct(Tid(1_683, "@__cxa_finalize")),Direct(Tid(1_018, "%000003fa"))))])), -Blk(Tid(1_018, "%000003fa"), Attrs([Attr("address","0x6F0")]), Phis([]), -Defs([Def(Tid(1_026, "%00000402"), Attrs([Attr("address","0x6F0"), -Attr("insn","bl #-0xa0")]), Var("R30",Imm(64)), Int(1780,64))]), -Jmps([Call(Tid(1_028, "%00000404"), Attrs([Attr("address","0x6F0"), -Attr("insn","bl #-0xa0")]), Int(1,1), -(Direct(Tid(1_697, "@deregister_tm_clones")),Direct(Tid(1_030, "%00000406"))))])), -Blk(Tid(1_030, "%00000406"), Attrs([Attr("address","0x6F4")]), Phis([]), -Defs([Def(Tid(1_033, "%00000409"), Attrs([Attr("address","0x6F4"), -Attr("insn","mov w0, #0x1")]), Var("R0",Imm(64)), Int(1,64)), -Def(Tid(1_041, "%00000411"), Attrs([Attr("address","0x6F8"), -Attr("insn","strb w0, [x19, #0x30]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R19",Imm(64)),Int(48,64)),Extract(7,0,Var("R0",Imm(64))),LittleEndian(),8))]), -Jmps([Goto(Tid(1_727, "%000006bf"), Attrs([]), Int(1,1), -Direct(Tid(745, "%000002e9")))])), Blk(Tid(745, "%000002e9"), - Attrs([Attr("address","0x6FC")]), Phis([]), Defs([Def(Tid(755, "%000002f3"), - Attrs([Attr("address","0x6FC"), Attr("insn","ldr x19, [sp, #0x10]")]), - Var("R19",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(16,64)),LittleEndian(),64)), -Def(Tid(762, "%000002fa"), Attrs([Attr("address","0x700"), -Attr("insn","ldp x29, x30, [sp], #0x20")]), Var("R29",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(767, "%000002ff"), Attrs([Attr("address","0x700"), -Attr("insn","ldp x29, x30, [sp], #0x20")]), Var("R30",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(771, "%00000303"), Attrs([Attr("address","0x700"), -Attr("insn","ldp x29, x30, [sp], #0x20")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(32,64)))]), Jmps([Call(Tid(776, "%00000308"), - Attrs([Attr("address","0x704"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), Sub(Tid(1_688, "@__libc_start_main"), - Attrs([Attr("c.proto","signed (*)(signed (*)(signed , char** , char** );* main, signed , char** , \nvoid* auxv)"), -Attr("address","0x5C0"), Attr("stub","()")]), "__libc_start_main", - Args([Arg(Tid(1_740, "%000006cc"), - Attrs([Attr("c.layout","**[ : 64]"), -Attr("c.data","Top:u64 ptr ptr"), -Attr("c.type","signed (*)(signed , char** , char** );*")]), - Var("__libc_start_main_main",Imm(64)), Var("R0",Imm(64)), In()), -Arg(Tid(1_741, "%000006cd"), Attrs([Attr("c.layout","[signed : 32]"), -Attr("c.data","Top:u32"), Attr("c.type","signed")]), - Var("__libc_start_main_arg2",Imm(32)), LOW(32,Var("R1",Imm(64))), In()), -Arg(Tid(1_742, "%000006ce"), Attrs([Attr("c.layout","**[char : 8]"), -Attr("c.data","Top:u8 ptr ptr"), Attr("c.type","char**")]), - Var("__libc_start_main_arg3",Imm(64)), Var("R2",Imm(64)), Both()), -Arg(Tid(1_743, "%000006cf"), Attrs([Attr("c.layout","*[ : 8]"), -Attr("c.data","{} ptr"), Attr("c.type","void*")]), - Var("__libc_start_main_auxv",Imm(64)), Var("R3",Imm(64)), Both()), -Arg(Tid(1_744, "%000006d0"), Attrs([Attr("c.layout","[signed : 32]"), -Attr("c.data","Top:u32"), Attr("c.type","signed")]), - Var("__libc_start_main_result",Imm(32)), LOW(32,Var("R0",Imm(64))), -Out())]), Blks([Blk(Tid(527, "@__libc_start_main"), - Attrs([Attr("address","0x5C0")]), Phis([]), -Defs([Def(Tid(1_285, "%00000505"), Attrs([Attr("address","0x5C0"), -Attr("insn","adrp x16, #69632")]), Var("R16",Imm(64)), Int(69632,64)), -Def(Tid(1_292, "%0000050c"), Attrs([Attr("address","0x5C4"), -Attr("insn","ldr x17, [x16]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R16",Imm(64)),LittleEndian(),64)), -Def(Tid(1_298, "%00000512"), Attrs([Attr("address","0x5C8"), -Attr("insn","add x16, x16, #0x0")]), Var("R16",Imm(64)), -Var("R16",Imm(64)))]), Jmps([Call(Tid(1_303, "%00000517"), - Attrs([Attr("address","0x5CC"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), Sub(Tid(1_689, "@_fini"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x77C")]), - "_fini", Args([Arg(Tid(1_745, "%000006d1"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("_fini_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(31, "@_fini"), - Attrs([Attr("address","0x77C")]), Phis([]), Defs([Def(Tid(37, "%00000025"), - Attrs([Attr("address","0x780"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("#0",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(18446744073709551600,64))), -Def(Tid(43, "%0000002b"), Attrs([Attr("address","0x780"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("#0",Imm(64)),Var("R29",Imm(64)),LittleEndian(),64)), -Def(Tid(49, "%00000031"), Attrs([Attr("address","0x780"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("#0",Imm(64)),Int(8,64)),Var("R30",Imm(64)),LittleEndian(),64)), -Def(Tid(53, "%00000035"), Attrs([Attr("address","0x780"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("R31",Imm(64)), -Var("#0",Imm(64))), Def(Tid(59, "%0000003b"), Attrs([Attr("address","0x784"), -Attr("insn","mov x29, sp")]), Var("R29",Imm(64)), Var("R31",Imm(64))), -Def(Tid(66, "%00000042"), Attrs([Attr("address","0x788"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R29",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(71, "%00000047"), Attrs([Attr("address","0x788"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R30",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(75, "%0000004b"), Attrs([Attr("address","0x788"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(16,64)))]), Jmps([Call(Tid(80, "%00000050"), - Attrs([Attr("address","0x78C"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), Sub(Tid(1_690, "@_init"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x580")]), - "_init", Args([Arg(Tid(1_746, "%000006d2"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("_init_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(1_499, "@_init"), - Attrs([Attr("address","0x580")]), Phis([]), -Defs([Def(Tid(1_505, "%000005e1"), Attrs([Attr("address","0x584"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("#7",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(18446744073709551600,64))), -Def(Tid(1_511, "%000005e7"), Attrs([Attr("address","0x584"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("#7",Imm(64)),Var("R29",Imm(64)),LittleEndian(),64)), -Def(Tid(1_517, "%000005ed"), Attrs([Attr("address","0x584"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("#7",Imm(64)),Int(8,64)),Var("R30",Imm(64)),LittleEndian(),64)), -Def(Tid(1_521, "%000005f1"), Attrs([Attr("address","0x584"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("R31",Imm(64)), -Var("#7",Imm(64))), Def(Tid(1_527, "%000005f7"), - Attrs([Attr("address","0x588"), Attr("insn","mov x29, sp")]), - Var("R29",Imm(64)), Var("R31",Imm(64))), Def(Tid(1_532, "%000005fc"), - Attrs([Attr("address","0x58C"), Attr("insn","bl #0xa8")]), - Var("R30",Imm(64)), Int(1424,64))]), Jmps([Call(Tid(1_534, "%000005fe"), - Attrs([Attr("address","0x58C"), Attr("insn","bl #0xa8")]), Int(1,1), -(Direct(Tid(1_695, "@call_weak_fn")),Direct(Tid(1_536, "%00000600"))))])), -Blk(Tid(1_536, "%00000600"), Attrs([Attr("address","0x590")]), Phis([]), -Defs([Def(Tid(1_541, "%00000605"), Attrs([Attr("address","0x590"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R29",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(1_546, "%0000060a"), Attrs([Attr("address","0x590"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R30",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(1_550, "%0000060e"), Attrs([Attr("address","0x590"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(16,64)))]), Jmps([Call(Tid(1_555, "%00000613"), - Attrs([Attr("address","0x594"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), Sub(Tid(1_691, "@_start"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x600"), -Attr("stub","()"), Attr("entry-point","()")]), "_start", - Args([Arg(Tid(1_747, "%000006d3"), Attrs([Attr("c.layout","[signed : 32]"), -Attr("c.data","Top:u32"), Attr("c.type","signed")]), - Var("_start_result",Imm(32)), LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(464, "@_start"), Attrs([Attr("address","0x600")]), Phis([]), -Defs([Def(Tid(469, "%000001d5"), Attrs([Attr("address","0x604"), -Attr("insn","mov x29, #0x0")]), Var("R29",Imm(64)), Int(0,64)), -Def(Tid(474, "%000001da"), Attrs([Attr("address","0x608"), -Attr("insn","mov x30, #0x0")]), Var("R30",Imm(64)), Int(0,64)), -Def(Tid(480, "%000001e0"), Attrs([Attr("address","0x60C"), -Attr("insn","mov x5, x0")]), Var("R5",Imm(64)), Var("R0",Imm(64))), -Def(Tid(487, "%000001e7"), Attrs([Attr("address","0x610"), -Attr("insn","ldr x1, [sp]")]), Var("R1",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(493, "%000001ed"), Attrs([Attr("address","0x614"), -Attr("insn","add x2, sp, #0x8")]), Var("R2",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(8,64))), Def(Tid(499, "%000001f3"), - Attrs([Attr("address","0x618"), Attr("insn","mov x6, sp")]), - Var("R6",Imm(64)), Var("R31",Imm(64))), Def(Tid(504, "%000001f8"), - Attrs([Attr("address","0x61C"), Attr("insn","adrp x0, #65536")]), - Var("R0",Imm(64)), Int(65536,64)), Def(Tid(511, "%000001ff"), - Attrs([Attr("address","0x620"), Attr("insn","ldr x0, [x0, #0xfd8]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(4056,64)),LittleEndian(),64)), -Def(Tid(516, "%00000204"), Attrs([Attr("address","0x624"), -Attr("insn","mov x3, #0x0")]), Var("R3",Imm(64)), Int(0,64)), -Def(Tid(521, "%00000209"), Attrs([Attr("address","0x628"), -Attr("insn","mov x4, #0x0")]), Var("R4",Imm(64)), Int(0,64)), -Def(Tid(526, "%0000020e"), Attrs([Attr("address","0x62C"), -Attr("insn","bl #-0x6c")]), Var("R30",Imm(64)), Int(1584,64))]), -Jmps([Call(Tid(529, "%00000211"), Attrs([Attr("address","0x62C"), -Attr("insn","bl #-0x6c")]), Int(1,1), -(Direct(Tid(1_688, "@__libc_start_main")),Direct(Tid(531, "%00000213"))))])), -Blk(Tid(531, "%00000213"), Attrs([Attr("address","0x630")]), Phis([]), -Defs([Def(Tid(534, "%00000216"), Attrs([Attr("address","0x630"), -Attr("insn","bl #-0x40")]), Var("R30",Imm(64)), Int(1588,64))]), -Jmps([Call(Tid(537, "%00000219"), Attrs([Attr("address","0x630"), -Attr("insn","bl #-0x40")]), Int(1,1), -(Direct(Tid(1_694, "@abort")),Direct(Tid(1_728, "%000006c0"))))])), -Blk(Tid(1_728, "%000006c0"), Attrs([]), Phis([]), Defs([]), -Jmps([Call(Tid(1_729, "%000006c1"), Attrs([]), Int(1,1), -(Direct(Tid(1_695, "@call_weak_fn")),))]))])), Sub(Tid(1_694, "@abort"), - Attrs([Attr("noreturn","()"), Attr("c.proto","void (*)(void)"), -Attr("address","0x5F0"), Attr("stub","()")]), "abort", Args([]), -Blks([Blk(Tid(535, "@abort"), Attrs([Attr("address","0x5F0")]), Phis([]), -Defs([Def(Tid(1_351, "%00000547"), Attrs([Attr("address","0x5F0"), -Attr("insn","adrp x16, #69632")]), Var("R16",Imm(64)), Int(69632,64)), -Def(Tid(1_358, "%0000054e"), Attrs([Attr("address","0x5F4"), -Attr("insn","ldr x17, [x16, #0x18]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(24,64)),LittleEndian(),64)), -Def(Tid(1_364, "%00000554"), Attrs([Attr("address","0x5F8"), -Attr("insn","add x16, x16, #0x18")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(24,64)))]), Jmps([Call(Tid(1_369, "%00000559"), - Attrs([Attr("address","0x5FC"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), Sub(Tid(1_695, "@call_weak_fn"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x634")]), - "call_weak_fn", Args([Arg(Tid(1_748, "%000006d4"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("call_weak_fn_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(539, "@call_weak_fn"), - Attrs([Attr("address","0x634")]), Phis([]), Defs([Def(Tid(542, "%0000021e"), - Attrs([Attr("address","0x634"), Attr("insn","adrp x0, #65536")]), - Var("R0",Imm(64)), Int(65536,64)), Def(Tid(549, "%00000225"), - Attrs([Attr("address","0x638"), Attr("insn","ldr x0, [x0, #0xfd0]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(4048,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(555, "%0000022b"), Attrs([Attr("address","0x63C"), -Attr("insn","cbz x0, #0x8")]), EQ(Var("R0",Imm(64)),Int(0,64)), -Direct(Tid(553, "%00000229"))), Goto(Tid(1_730, "%000006c2"), Attrs([]), - Int(1,1), Direct(Tid(1_123, "%00000463")))])), Blk(Tid(553, "%00000229"), - Attrs([Attr("address","0x644")]), Phis([]), Defs([]), -Jmps([Call(Tid(561, "%00000231"), Attrs([Attr("address","0x644"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))])), -Blk(Tid(1_123, "%00000463"), Attrs([Attr("address","0x640")]), Phis([]), -Defs([]), Jmps([Goto(Tid(1_126, "%00000466"), Attrs([Attr("address","0x640"), -Attr("insn","b #-0x60")]), Int(1,1), -Direct(Tid(1_124, "@__gmon_start__")))])), Blk(Tid(1_124, "@__gmon_start__"), - Attrs([Attr("address","0x5E0")]), Phis([]), -Defs([Def(Tid(1_329, "%00000531"), Attrs([Attr("address","0x5E0"), -Attr("insn","adrp x16, #69632")]), Var("R16",Imm(64)), Int(69632,64)), -Def(Tid(1_336, "%00000538"), Attrs([Attr("address","0x5E4"), -Attr("insn","ldr x17, [x16, #0x10]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(16,64)),LittleEndian(),64)), -Def(Tid(1_342, "%0000053e"), Attrs([Attr("address","0x5E8"), -Attr("insn","add x16, x16, #0x10")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(16,64)))]), Jmps([Call(Tid(1_347, "%00000543"), - Attrs([Attr("address","0x5EC"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), -Sub(Tid(1_697, "@deregister_tm_clones"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x650")]), - "deregister_tm_clones", Args([Arg(Tid(1_749, "%000006d5"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("deregister_tm_clones_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(567, "@deregister_tm_clones"), - Attrs([Attr("address","0x650")]), Phis([]), Defs([Def(Tid(570, "%0000023a"), - Attrs([Attr("address","0x650"), Attr("insn","adrp x0, #69632")]), - Var("R0",Imm(64)), Int(69632,64)), Def(Tid(576, "%00000240"), - Attrs([Attr("address","0x654"), Attr("insn","add x0, x0, #0x30")]), - Var("R0",Imm(64)), PLUS(Var("R0",Imm(64)),Int(48,64))), -Def(Tid(581, "%00000245"), Attrs([Attr("address","0x658"), -Attr("insn","adrp x1, #69632")]), Var("R1",Imm(64)), Int(69632,64)), -Def(Tid(587, "%0000024b"), Attrs([Attr("address","0x65C"), -Attr("insn","add x1, x1, #0x30")]), Var("R1",Imm(64)), -PLUS(Var("R1",Imm(64)),Int(48,64))), Def(Tid(593, "%00000251"), - Attrs([Attr("address","0x660"), Attr("insn","cmp x1, x0")]), - Var("#1",Imm(64)), NOT(Var("R0",Imm(64)))), Def(Tid(598, "%00000256"), - Attrs([Attr("address","0x660"), Attr("insn","cmp x1, x0")]), - Var("#2",Imm(64)), PLUS(Var("R1",Imm(64)),NOT(Var("R0",Imm(64))))), -Def(Tid(604, "%0000025c"), Attrs([Attr("address","0x660"), -Attr("insn","cmp x1, x0")]), Var("VF",Imm(1)), -NEQ(SIGNED(65,PLUS(Var("#2",Imm(64)),Int(1,64))),PLUS(PLUS(SIGNED(65,Var("R1",Imm(64))),SIGNED(65,Var("#1",Imm(64)))),Int(1,65)))), -Def(Tid(610, "%00000262"), Attrs([Attr("address","0x660"), -Attr("insn","cmp x1, x0")]), Var("CF",Imm(1)), -NEQ(UNSIGNED(65,PLUS(Var("#2",Imm(64)),Int(1,64))),PLUS(PLUS(UNSIGNED(65,Var("R1",Imm(64))),UNSIGNED(65,Var("#1",Imm(64)))),Int(1,65)))), -Def(Tid(614, "%00000266"), Attrs([Attr("address","0x660"), -Attr("insn","cmp x1, x0")]), Var("ZF",Imm(1)), -EQ(PLUS(Var("#2",Imm(64)),Int(1,64)),Int(0,64))), Def(Tid(618, "%0000026a"), - Attrs([Attr("address","0x660"), Attr("insn","cmp x1, x0")]), - Var("NF",Imm(1)), Extract(63,63,PLUS(Var("#2",Imm(64)),Int(1,64))))]), -Jmps([Goto(Tid(624, "%00000270"), Attrs([Attr("address","0x664"), -Attr("insn","b.eq #0x18")]), EQ(Var("ZF",Imm(1)),Int(1,1)), -Direct(Tid(622, "%0000026e"))), Goto(Tid(1_731, "%000006c3"), Attrs([]), - Int(1,1), Direct(Tid(1_093, "%00000445")))])), Blk(Tid(1_093, "%00000445"), - Attrs([Attr("address","0x668")]), Phis([]), -Defs([Def(Tid(1_096, "%00000448"), Attrs([Attr("address","0x668"), -Attr("insn","adrp x1, #65536")]), Var("R1",Imm(64)), Int(65536,64)), -Def(Tid(1_103, "%0000044f"), Attrs([Attr("address","0x66C"), -Attr("insn","ldr x1, [x1, #0xfc0]")]), Var("R1",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R1",Imm(64)),Int(4032,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(1_108, "%00000454"), Attrs([Attr("address","0x670"), -Attr("insn","cbz x1, #0xc")]), EQ(Var("R1",Imm(64)),Int(0,64)), -Direct(Tid(622, "%0000026e"))), Goto(Tid(1_732, "%000006c4"), Attrs([]), - Int(1,1), Direct(Tid(1_112, "%00000458")))])), Blk(Tid(622, "%0000026e"), - Attrs([Attr("address","0x67C")]), Phis([]), Defs([]), -Jmps([Call(Tid(630, "%00000276"), Attrs([Attr("address","0x67C"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))])), -Blk(Tid(1_112, "%00000458"), Attrs([Attr("address","0x674")]), Phis([]), -Defs([Def(Tid(1_116, "%0000045c"), Attrs([Attr("address","0x674"), -Attr("insn","mov x16, x1")]), Var("R16",Imm(64)), Var("R1",Imm(64)))]), -Jmps([Call(Tid(1_121, "%00000461"), Attrs([Attr("address","0x678"), -Attr("insn","br x16")]), Int(1,1), (Indirect(Var("R16",Imm(64))),))]))])), -Sub(Tid(1_700, "@frame_dummy"), Attrs([Attr("c.proto","signed (*)(void)"), -Attr("address","0x710")]), "frame_dummy", Args([Arg(Tid(1_750, "%000006d6"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("frame_dummy_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(782, "@frame_dummy"), - Attrs([Attr("address","0x710")]), Phis([]), Defs([]), -Jmps([Call(Tid(784, "%00000310"), Attrs([Attr("address","0x710"), -Attr("insn","b #-0x90")]), Int(1,1), -(Direct(Tid(1_704, "@register_tm_clones")),))]))])), Sub(Tid(1_701, "@main"), - Attrs([Attr("c.proto","signed (*)(signed argc, const char** argv)"), -Attr("address","0x714")]), "main", Args([Arg(Tid(1_751, "%000006d7"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("main_argc",Imm(32)), -LOW(32,Var("R0",Imm(64))), In()), Arg(Tid(1_752, "%000006d8"), - Attrs([Attr("c.layout","**[char : 8]"), Attr("c.data","Top:u8 ptr ptr"), -Attr("c.type"," const char**")]), Var("main_argv",Imm(64)), -Var("R1",Imm(64)), Both()), Arg(Tid(1_753, "%000006d9"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("main_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(786, "@main"), - Attrs([Attr("address","0x714")]), Phis([]), Defs([Def(Tid(790, "%00000316"), - Attrs([Attr("address","0x714"), Attr("insn","sub sp, sp, #0x10")]), - Var("R31",Imm(64)), PLUS(Var("R31",Imm(64)),Int(18446744073709551600,64))), -Def(Tid(795, "%0000031b"), Attrs([Attr("address","0x718"), -Attr("insn","mov w8, #0x1")]), Var("R8",Imm(64)), Int(1,64)), -Def(Tid(803, "%00000323"), Attrs([Attr("address","0x71C"), -Attr("insn","str w8, [sp, #0xc]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(12,64)),Extract(31,0,Var("R8",Imm(64))),LittleEndian(),32)), -Def(Tid(810, "%0000032a"), Attrs([Attr("address","0x720"), -Attr("insn","str wzr, [sp, #0x8]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),Int(0,32),LittleEndian(),32)), -Def(Tid(817, "%00000331"), Attrs([Attr("address","0x724"), -Attr("insn","ldr w8, [sp, #0xc]")]), Var("R8",Imm(64)), -UNSIGNED(64,Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(12,64)),LittleEndian(),32))), -Def(Tid(825, "%00000339"), Attrs([Attr("address","0x728"), -Attr("insn","str w8, [sp, #0x4]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(4,64)),Extract(31,0,Var("R8",Imm(64))),LittleEndian(),32)), -Def(Tid(831, "%0000033f"), Attrs([Attr("address","0x72C"), -Attr("insn","subs w8, w8, #0x1")]), Var("#4",Imm(32)), -PLUS(Extract(31,0,Var("R8",Imm(64))),Int(4294967294,32))), -Def(Tid(836, "%00000344"), Attrs([Attr("address","0x72C"), -Attr("insn","subs w8, w8, #0x1")]), Var("VF",Imm(1)), -NEQ(SIGNED(33,PLUS(Var("#4",Imm(32)),Int(1,32))),PLUS(SIGNED(33,Extract(31,0,Var("R8",Imm(64)))),Int(8589934591,33)))), -Def(Tid(841, "%00000349"), Attrs([Attr("address","0x72C"), -Attr("insn","subs w8, w8, #0x1")]), Var("CF",Imm(1)), -NEQ(UNSIGNED(33,PLUS(Var("#4",Imm(32)),Int(1,32))),PLUS(UNSIGNED(33,Extract(31,0,Var("R8",Imm(64)))),Int(4294967295,33)))), -Def(Tid(845, "%0000034d"), Attrs([Attr("address","0x72C"), -Attr("insn","subs w8, w8, #0x1")]), Var("ZF",Imm(1)), -EQ(PLUS(Var("#4",Imm(32)),Int(1,32)),Int(0,32))), Def(Tid(849, "%00000351"), - Attrs([Attr("address","0x72C"), Attr("insn","subs w8, w8, #0x1")]), - Var("NF",Imm(1)), Extract(31,31,PLUS(Var("#4",Imm(32)),Int(1,32)))), -Def(Tid(853, "%00000355"), Attrs([Attr("address","0x72C"), -Attr("insn","subs w8, w8, #0x1")]), Var("R8",Imm(64)), -UNSIGNED(64,PLUS(Var("#4",Imm(32)),Int(1,32))))]), -Jmps([Goto(Tid(865, "%00000361"), Attrs([Attr("address","0x730"), -Attr("insn","cset w8, eq")]), NEQ(Var("ZF",Imm(1)),Int(1,1)), -Direct(Tid(858, "%0000035a"))), Goto(Tid(866, "%00000362"), - Attrs([Attr("address","0x730"), Attr("insn","cset w8, eq")]), Int(1,1), -Direct(Tid(861, "%0000035d")))])), Blk(Tid(861, "%0000035d"), Attrs([]), - Phis([]), Defs([Def(Tid(862, "%0000035e"), Attrs([Attr("address","0x730"), -Attr("insn","cset w8, eq")]), Var("R8",Imm(64)), Int(1,64))]), -Jmps([Goto(Tid(868, "%00000364"), Attrs([Attr("address","0x730"), -Attr("insn","cset w8, eq")]), Int(1,1), Direct(Tid(864, "%00000360")))])), -Blk(Tid(858, "%0000035a"), Attrs([]), Phis([]), -Defs([Def(Tid(859, "%0000035b"), Attrs([Attr("address","0x730"), -Attr("insn","cset w8, eq")]), Var("R8",Imm(64)), Int(0,64))]), -Jmps([Goto(Tid(867, "%00000363"), Attrs([Attr("address","0x730"), -Attr("insn","cset w8, eq")]), Int(1,1), Direct(Tid(864, "%00000360")))])), -Blk(Tid(864, "%00000360"), Attrs([]), Phis([]), Defs([]), -Jmps([Goto(Tid(874, "%0000036a"), Attrs([Attr("address","0x734"), -Attr("insn","tbnz w8, #0x0, #0x28")]), - EQ(Extract(0,0,Var("R8",Imm(64))),Int(1,1)), Direct(Tid(872, "%00000368"))), -Goto(Tid(1_733, "%000006c5"), Attrs([]), Int(1,1), -Direct(Tid(922, "%0000039a")))])), Blk(Tid(922, "%0000039a"), - Attrs([Attr("address","0x738")]), Phis([]), Defs([]), -Jmps([Goto(Tid(925, "%0000039d"), Attrs([Attr("address","0x738"), -Attr("insn","b #0x4")]), Int(1,1), Direct(Tid(923, "%0000039b")))])), -Blk(Tid(923, "%0000039b"), Attrs([Attr("address","0x73C")]), Phis([]), -Defs([Def(Tid(931, "%000003a3"), Attrs([Attr("address","0x73C"), -Attr("insn","ldr w8, [sp, #0x4]")]), Var("R8",Imm(64)), -UNSIGNED(64,Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(4,64)),LittleEndian(),32))), -Def(Tid(937, "%000003a9"), Attrs([Attr("address","0x740"), -Attr("insn","subs w8, w8, #0x3")]), Var("#5",Imm(32)), -PLUS(Extract(31,0,Var("R8",Imm(64))),Int(4294967292,32))), -Def(Tid(942, "%000003ae"), Attrs([Attr("address","0x740"), -Attr("insn","subs w8, w8, #0x3")]), Var("VF",Imm(1)), -NEQ(SIGNED(33,PLUS(Var("#5",Imm(32)),Int(1,32))),PLUS(SIGNED(33,Extract(31,0,Var("R8",Imm(64)))),Int(8589934589,33)))), -Def(Tid(947, "%000003b3"), Attrs([Attr("address","0x740"), -Attr("insn","subs w8, w8, #0x3")]), Var("CF",Imm(1)), -NEQ(UNSIGNED(33,PLUS(Var("#5",Imm(32)),Int(1,32))),PLUS(UNSIGNED(33,Extract(31,0,Var("R8",Imm(64)))),Int(4294967293,33)))), -Def(Tid(951, "%000003b7"), Attrs([Attr("address","0x740"), -Attr("insn","subs w8, w8, #0x3")]), Var("ZF",Imm(1)), -EQ(PLUS(Var("#5",Imm(32)),Int(1,32)),Int(0,32))), Def(Tid(955, "%000003bb"), - Attrs([Attr("address","0x740"), Attr("insn","subs w8, w8, #0x3")]), - Var("NF",Imm(1)), Extract(31,31,PLUS(Var("#5",Imm(32)),Int(1,32)))), -Def(Tid(959, "%000003bf"), Attrs([Attr("address","0x740"), -Attr("insn","subs w8, w8, #0x3")]), Var("R8",Imm(64)), -UNSIGNED(64,PLUS(Var("#5",Imm(32)),Int(1,32))))]), -Jmps([Goto(Tid(971, "%000003cb"), Attrs([Attr("address","0x744"), -Attr("insn","cset w8, ne")]), EQ(Var("ZF",Imm(1)),Int(1,1)), -Direct(Tid(964, "%000003c4"))), Goto(Tid(972, "%000003cc"), - Attrs([Attr("address","0x744"), Attr("insn","cset w8, ne")]), Int(1,1), -Direct(Tid(967, "%000003c7")))])), Blk(Tid(967, "%000003c7"), Attrs([]), - Phis([]), Defs([Def(Tid(968, "%000003c8"), Attrs([Attr("address","0x744"), -Attr("insn","cset w8, ne")]), Var("R8",Imm(64)), Int(1,64))]), -Jmps([Goto(Tid(974, "%000003ce"), Attrs([Attr("address","0x744"), -Attr("insn","cset w8, ne")]), Int(1,1), Direct(Tid(970, "%000003ca")))])), -Blk(Tid(964, "%000003c4"), Attrs([]), Phis([]), -Defs([Def(Tid(965, "%000003c5"), Attrs([Attr("address","0x744"), -Attr("insn","cset w8, ne")]), Var("R8",Imm(64)), Int(0,64))]), -Jmps([Goto(Tid(973, "%000003cd"), Attrs([Attr("address","0x744"), -Attr("insn","cset w8, ne")]), Int(1,1), Direct(Tid(970, "%000003ca")))])), -Blk(Tid(970, "%000003ca"), Attrs([]), Phis([]), Defs([]), -Jmps([Goto(Tid(979, "%000003d3"), Attrs([Attr("address","0x748"), -Attr("insn","tbnz w8, #0x0, #0x20")]), - EQ(Extract(0,0,Var("R8",Imm(64))),Int(1,1)), Direct(Tid(905, "%00000389"))), -Goto(Tid(1_734, "%000006c6"), Attrs([]), Int(1,1), -Direct(Tid(983, "%000003d7")))])), Blk(Tid(905, "%00000389"), - Attrs([Attr("address","0x768")]), Phis([]), Defs([Def(Tid(908, "%0000038c"), - Attrs([Attr("address","0x768"), Attr("insn","mov w8, #0x5")]), - Var("R8",Imm(64)), Int(5,64)), Def(Tid(916, "%00000394"), - Attrs([Attr("address","0x76C"), Attr("insn","str w8, [sp, #0x8]")]), - Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),Extract(31,0,Var("R8",Imm(64))),LittleEndian(),32))]), -Jmps([Goto(Tid(920, "%00000398"), Attrs([Attr("address","0x770"), -Attr("insn","b #0x4")]), Int(1,1), Direct(Tid(891, "%0000037b")))])), -Blk(Tid(983, "%000003d7"), Attrs([Attr("address","0x74C")]), Phis([]), -Defs([]), Jmps([Goto(Tid(986, "%000003da"), Attrs([Attr("address","0x74C"), -Attr("insn","b #0x4")]), Int(1,1), Direct(Tid(984, "%000003d8")))])), -Blk(Tid(984, "%000003d8"), Attrs([Attr("address","0x750")]), Phis([]), -Defs([Def(Tid(990, "%000003de"), Attrs([Attr("address","0x750"), -Attr("insn","mov w8, #0x3")]), Var("R8",Imm(64)), Int(3,64)), -Def(Tid(998, "%000003e6"), Attrs([Attr("address","0x754"), -Attr("insn","str w8, [sp, #0x8]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),Extract(31,0,Var("R8",Imm(64))),LittleEndian(),32))]), -Jmps([Goto(Tid(1_002, "%000003ea"), Attrs([Attr("address","0x758"), -Attr("insn","b #0x4")]), Int(1,1), Direct(Tid(872, "%00000368")))])), -Blk(Tid(872, "%00000368"), Attrs([Attr("address","0x75C")]), Phis([]), -Defs([Def(Tid(880, "%00000370"), Attrs([Attr("address","0x75C"), -Attr("insn","mov w8, #0x1")]), Var("R8",Imm(64)), Int(1,64)), -Def(Tid(888, "%00000378"), Attrs([Attr("address","0x760"), -Attr("insn","str w8, [sp, #0x8]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),Extract(31,0,Var("R8",Imm(64))),LittleEndian(),32))]), -Jmps([Goto(Tid(893, "%0000037d"), Attrs([Attr("address","0x764"), -Attr("insn","b #0x10")]), Int(1,1), Direct(Tid(891, "%0000037b")))])), -Blk(Tid(891, "%0000037b"), Attrs([Attr("address","0x774")]), Phis([]), -Defs([Def(Tid(898, "%00000382"), Attrs([Attr("address","0x774"), -Attr("insn","add sp, sp, #0x10")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(16,64)))]), Jmps([Call(Tid(903, "%00000387"), - Attrs([Attr("address","0x778"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), -Sub(Tid(1_704, "@register_tm_clones"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x680")]), - "register_tm_clones", Args([Arg(Tid(1_754, "%000006da"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("register_tm_clones_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(632, "@register_tm_clones"), Attrs([Attr("address","0x680")]), - Phis([]), Defs([Def(Tid(635, "%0000027b"), Attrs([Attr("address","0x680"), -Attr("insn","adrp x0, #69632")]), Var("R0",Imm(64)), Int(69632,64)), -Def(Tid(641, "%00000281"), Attrs([Attr("address","0x684"), -Attr("insn","add x0, x0, #0x30")]), Var("R0",Imm(64)), -PLUS(Var("R0",Imm(64)),Int(48,64))), Def(Tid(646, "%00000286"), - Attrs([Attr("address","0x688"), Attr("insn","adrp x1, #69632")]), - Var("R1",Imm(64)), Int(69632,64)), Def(Tid(652, "%0000028c"), - Attrs([Attr("address","0x68C"), Attr("insn","add x1, x1, #0x30")]), - Var("R1",Imm(64)), PLUS(Var("R1",Imm(64)),Int(48,64))), -Def(Tid(659, "%00000293"), Attrs([Attr("address","0x690"), -Attr("insn","sub x1, x1, x0")]), Var("R1",Imm(64)), -PLUS(PLUS(Var("R1",Imm(64)),NOT(Var("R0",Imm(64)))),Int(1,64))), -Def(Tid(665, "%00000299"), Attrs([Attr("address","0x694"), -Attr("insn","lsr x2, x1, #63")]), Var("R2",Imm(64)), -Concat(Int(0,63),Extract(63,63,Var("R1",Imm(64))))), -Def(Tid(672, "%000002a0"), Attrs([Attr("address","0x698"), -Attr("insn","add x1, x2, x1, asr #3")]), Var("R1",Imm(64)), -PLUS(Var("R2",Imm(64)),ARSHIFT(Var("R1",Imm(64)),Int(3,3)))), -Def(Tid(678, "%000002a6"), Attrs([Attr("address","0x69C"), -Attr("insn","asr x1, x1, #1")]), Var("R1",Imm(64)), -SIGNED(64,Extract(63,1,Var("R1",Imm(64)))))]), -Jmps([Goto(Tid(684, "%000002ac"), Attrs([Attr("address","0x6A0"), -Attr("insn","cbz x1, #0x18")]), EQ(Var("R1",Imm(64)),Int(0,64)), -Direct(Tid(682, "%000002aa"))), Goto(Tid(1_735, "%000006c7"), Attrs([]), - Int(1,1), Direct(Tid(1_063, "%00000427")))])), Blk(Tid(1_063, "%00000427"), - Attrs([Attr("address","0x6A4")]), Phis([]), -Defs([Def(Tid(1_066, "%0000042a"), Attrs([Attr("address","0x6A4"), -Attr("insn","adrp x2, #65536")]), Var("R2",Imm(64)), Int(65536,64)), -Def(Tid(1_073, "%00000431"), Attrs([Attr("address","0x6A8"), -Attr("insn","ldr x2, [x2, #0xfe0]")]), Var("R2",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R2",Imm(64)),Int(4064,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(1_078, "%00000436"), Attrs([Attr("address","0x6AC"), -Attr("insn","cbz x2, #0xc")]), EQ(Var("R2",Imm(64)),Int(0,64)), -Direct(Tid(682, "%000002aa"))), Goto(Tid(1_736, "%000006c8"), Attrs([]), - Int(1,1), Direct(Tid(1_082, "%0000043a")))])), Blk(Tid(682, "%000002aa"), - Attrs([Attr("address","0x6B8")]), Phis([]), Defs([]), -Jmps([Call(Tid(690, "%000002b2"), Attrs([Attr("address","0x6B8"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))])), -Blk(Tid(1_082, "%0000043a"), Attrs([Attr("address","0x6B0")]), Phis([]), -Defs([Def(Tid(1_086, "%0000043e"), Attrs([Attr("address","0x6B0"), -Attr("insn","mov x16, x2")]), Var("R16",Imm(64)), Var("R2",Imm(64)))]), -Jmps([Call(Tid(1_091, "%00000443"), Attrs([Attr("address","0x6B4"), -Attr("insn","br x16")]), Int(1,1), -(Indirect(Var("R16",Imm(64))),))]))]))]))) \ No newline at end of file diff --git a/src/test/correct/switch/clang/switch.bir b/src/test/correct/switch/clang/switch.bir deleted file mode 100644 index f2f307e33..000000000 --- a/src/test/correct/switch/clang/switch.bir +++ /dev/null @@ -1,296 +0,0 @@ -000006c9: program -00000693: sub __cxa_finalize(__cxa_finalize_result) -000006ca: __cxa_finalize_result :: out u32 = low:32[R0] - -00000423: -0000051b: R16 := 0x11000 -00000522: R17 := mem[R16 + 8, el]:u64 -00000528: R16 := R16 + 8 -0000052d: call R17 with noreturn - -00000694: sub __do_global_dtors_aux(__do_global_dtors_aux_result) -000006cb: __do_global_dtors_aux_result :: out u32 = low:32[R0] - -000002b6: -000002ba: #3 := R31 - 0x20 -000002c0: mem := mem with [#3, el]:u64 <- R29 -000002c6: mem := mem with [#3 + 8, el]:u64 <- R30 -000002ca: R31 := #3 -000002d0: R29 := R31 -000002d8: mem := mem with [R31 + 0x10, el]:u64 <- R19 -000002dd: R19 := 0x11000 -000002e4: R0 := pad:64[mem[R19 + 0x30]] -000002eb: when 31:0[R0] <> 0 goto %000002e9 -000006bd: goto %000003ec - -000003ec: -000003ef: R0 := 0x10000 -000003f6: R0 := mem[R0 + 0xFC8, el]:u64 -000003fc: when R0 = 0 goto %000003fa -000006be: goto %00000413 - -00000413: -00000416: R0 := 0x11000 -0000041d: R0 := mem[R0 + 0x28, el]:u64 -00000422: R30 := 0x6F0 -00000425: call @__cxa_finalize with return %000003fa - -000003fa: -00000402: R30 := 0x6F4 -00000404: call @deregister_tm_clones with return %00000406 - -00000406: -00000409: R0 := 1 -00000411: mem := mem with [R19 + 0x30] <- 7:0[R0] -000006bf: goto %000002e9 - -000002e9: -000002f3: R19 := mem[R31 + 0x10, el]:u64 -000002fa: R29 := mem[R31, el]:u64 -000002ff: R30 := mem[R31 + 8, el]:u64 -00000303: R31 := R31 + 0x20 -00000308: call R30 with noreturn - -00000698: sub __libc_start_main(__libc_start_main_main, __libc_start_main_arg2, __libc_start_main_arg3, __libc_start_main_auxv, __libc_start_main_result) -000006cc: __libc_start_main_main :: in u64 = R0 -000006cd: __libc_start_main_arg2 :: in u32 = low:32[R1] -000006ce: __libc_start_main_arg3 :: in out u64 = R2 -000006cf: __libc_start_main_auxv :: in out u64 = R3 -000006d0: __libc_start_main_result :: out u32 = low:32[R0] - -0000020f: -00000505: R16 := 0x11000 -0000050c: R17 := mem[R16, el]:u64 -00000512: R16 := R16 -00000517: call R17 with noreturn - -00000699: sub _fini(_fini_result) -000006d1: _fini_result :: out u32 = low:32[R0] - -0000001f: -00000025: #0 := R31 - 0x10 -0000002b: mem := mem with [#0, el]:u64 <- R29 -00000031: mem := mem with [#0 + 8, el]:u64 <- R30 -00000035: R31 := #0 -0000003b: R29 := R31 -00000042: R29 := mem[R31, el]:u64 -00000047: R30 := mem[R31 + 8, el]:u64 -0000004b: R31 := R31 + 0x10 -00000050: call R30 with noreturn - -0000069a: sub _init(_init_result) -000006d2: _init_result :: out u32 = low:32[R0] - -000005db: -000005e1: #7 := R31 - 0x10 -000005e7: mem := mem with [#7, el]:u64 <- R29 -000005ed: mem := mem with [#7 + 8, el]:u64 <- R30 -000005f1: R31 := #7 -000005f7: R29 := R31 -000005fc: R30 := 0x590 -000005fe: call @call_weak_fn with return %00000600 - -00000600: -00000605: R29 := mem[R31, el]:u64 -0000060a: R30 := mem[R31 + 8, el]:u64 -0000060e: R31 := R31 + 0x10 -00000613: call R30 with noreturn - -0000069b: sub _start(_start_result) -000006d3: _start_result :: out u32 = low:32[R0] - -000001d0: -000001d5: R29 := 0 -000001da: R30 := 0 -000001e0: R5 := R0 -000001e7: R1 := mem[R31, el]:u64 -000001ed: R2 := R31 + 8 -000001f3: R6 := R31 -000001f8: R0 := 0x10000 -000001ff: R0 := mem[R0 + 0xFD8, el]:u64 -00000204: R3 := 0 -00000209: R4 := 0 -0000020e: R30 := 0x630 -00000211: call @__libc_start_main with return %00000213 - -00000213: -00000216: R30 := 0x634 -00000219: call @abort with return %000006c0 - -000006c0: -000006c1: call @call_weak_fn with noreturn - -0000069e: sub abort() - - -00000217: -00000547: R16 := 0x11000 -0000054e: R17 := mem[R16 + 0x18, el]:u64 -00000554: R16 := R16 + 0x18 -00000559: call R17 with noreturn - -0000069f: sub call_weak_fn(call_weak_fn_result) -000006d4: call_weak_fn_result :: out u32 = low:32[R0] - -0000021b: -0000021e: R0 := 0x10000 -00000225: R0 := mem[R0 + 0xFD0, el]:u64 -0000022b: when R0 = 0 goto %00000229 -000006c2: goto %00000463 - -00000229: -00000231: call R30 with noreturn - -00000463: -00000466: goto @__gmon_start__ - -00000464: -00000531: R16 := 0x11000 -00000538: R17 := mem[R16 + 0x10, el]:u64 -0000053e: R16 := R16 + 0x10 -00000543: call R17 with noreturn - -000006a1: sub deregister_tm_clones(deregister_tm_clones_result) -000006d5: deregister_tm_clones_result :: out u32 = low:32[R0] - -00000237: -0000023a: R0 := 0x11000 -00000240: R0 := R0 + 0x30 -00000245: R1 := 0x11000 -0000024b: R1 := R1 + 0x30 -00000251: #1 := ~R0 -00000256: #2 := R1 + ~R0 -0000025c: VF := extend:65[#2 + 1] <> extend:65[R1] + extend:65[#1] + 1 -00000262: CF := pad:65[#2 + 1] <> pad:65[R1] + pad:65[#1] + 1 -00000266: ZF := #2 + 1 = 0 -0000026a: NF := 63:63[#2 + 1] -00000270: when ZF goto %0000026e -000006c3: goto %00000445 - -00000445: -00000448: R1 := 0x10000 -0000044f: R1 := mem[R1 + 0xFC0, el]:u64 -00000454: when R1 = 0 goto %0000026e -000006c4: goto %00000458 - -0000026e: -00000276: call R30 with noreturn - -00000458: -0000045c: R16 := R1 -00000461: call R16 with noreturn - -000006a4: sub frame_dummy(frame_dummy_result) -000006d6: frame_dummy_result :: out u32 = low:32[R0] - -0000030e: -00000310: call @register_tm_clones with noreturn - -000006a5: sub main(main_argc, main_argv, main_result) -000006d7: main_argc :: in u32 = low:32[R0] -000006d8: main_argv :: in out u64 = R1 -000006d9: main_result :: out u32 = low:32[R0] - -00000312: -00000316: R31 := R31 - 0x10 -0000031b: R8 := 1 -00000323: mem := mem with [R31 + 0xC, el]:u32 <- 31:0[R8] -0000032a: mem := mem with [R31 + 8, el]:u32 <- 0 -00000331: R8 := pad:64[mem[R31 + 0xC, el]:u32] -00000339: mem := mem with [R31 + 4, el]:u32 <- 31:0[R8] -0000033f: #4 := 31:0[R8] - 2 -00000344: VF := extend:33[#4 + 1] <> extend:33[31:0[R8]] - 1 -00000349: CF := pad:33[#4 + 1] <> pad:33[31:0[R8]] + 0xFFFFFFFF -0000034d: ZF := #4 + 1 = 0 -00000351: NF := 31:31[#4 + 1] -00000355: R8 := pad:64[#4 + 1] -00000361: when ZF <> 1 goto %0000035a -00000362: goto %0000035d - -0000035d: -0000035e: R8 := 1 -00000364: goto %00000360 - -0000035a: -0000035b: R8 := 0 -00000363: goto %00000360 - -00000360: -0000036a: when 0:0[R8] goto %00000368 -000006c5: goto %0000039a - -0000039a: -0000039d: goto %0000039b - -0000039b: -000003a3: R8 := pad:64[mem[R31 + 4, el]:u32] -000003a9: #5 := 31:0[R8] - 4 -000003ae: VF := extend:33[#5 + 1] <> extend:33[31:0[R8]] - 3 -000003b3: CF := pad:33[#5 + 1] <> pad:33[31:0[R8]] + 0xFFFFFFFD -000003b7: ZF := #5 + 1 = 0 -000003bb: NF := 31:31[#5 + 1] -000003bf: R8 := pad:64[#5 + 1] -000003cb: when ZF goto %000003c4 -000003cc: goto %000003c7 - -000003c7: -000003c8: R8 := 1 -000003ce: goto %000003ca - -000003c4: -000003c5: R8 := 0 -000003cd: goto %000003ca - -000003ca: -000003d3: when 0:0[R8] goto %00000389 -000006c6: goto %000003d7 - -00000389: -0000038c: R8 := 5 -00000394: mem := mem with [R31 + 8, el]:u32 <- 31:0[R8] -00000398: goto %0000037b - -000003d7: -000003da: goto %000003d8 - -000003d8: -000003de: R8 := 3 -000003e6: mem := mem with [R31 + 8, el]:u32 <- 31:0[R8] -000003ea: goto %00000368 - -00000368: -00000370: R8 := 1 -00000378: mem := mem with [R31 + 8, el]:u32 <- 31:0[R8] -0000037d: goto %0000037b - -0000037b: -00000382: R31 := R31 + 0x10 -00000387: call R30 with noreturn - -000006a8: sub register_tm_clones(register_tm_clones_result) -000006da: register_tm_clones_result :: out u32 = low:32[R0] - -00000278: -0000027b: R0 := 0x11000 -00000281: R0 := R0 + 0x30 -00000286: R1 := 0x11000 -0000028c: R1 := R1 + 0x30 -00000293: R1 := R1 + ~R0 + 1 -00000299: R2 := 0.63:63[R1] -000002a0: R1 := R2 + (R1 ~>> 3) -000002a6: R1 := extend:64[63:1[R1]] -000002ac: when R1 = 0 goto %000002aa -000006c7: goto %00000427 - -00000427: -0000042a: R2 := 0x10000 -00000431: R2 := mem[R2 + 0xFE0, el]:u64 -00000436: when R2 = 0 goto %000002aa -000006c8: goto %0000043a - -000002aa: -000002b2: call R30 with noreturn - -0000043a: -0000043e: R16 := R2 -00000443: call R16 with noreturn diff --git a/src/test/correct/switch/clang/switch.expected b/src/test/correct/switch/clang/switch.expected index 70e23d4a8..cfbb65779 100644 --- a/src/test/correct/switch/clang/switch.expected +++ b/src/test/correct/switch/clang/switch.expected @@ -1,36 +1,8 @@ -var {:extern} CF: bv1; -var {:extern} Gamma_CF: bool; -var {:extern} Gamma_NF: bool; -var {:extern} Gamma_R31: bool; -var {:extern} Gamma_R8: bool; -var {:extern} Gamma_VF: bool; -var {:extern} Gamma_ZF: bool; var {:extern} Gamma_mem: [bv64]bool; -var {:extern} Gamma_stack: [bv64]bool; -var {:extern} NF: bv1; -var {:extern} R31: bv64; -var {:extern} R8: bv64; -var {:extern} VF: bv1; -var {:extern} ZF: bv1; var {:extern} mem: [bv64]bv8; -var {:extern} stack: [bv64]bv8; const {:extern} $_IO_stdin_used_addr: bv64; -axiom ($_IO_stdin_used_addr == 1936bv64); -function {:extern} {:bvbuiltin "bvadd"} bvadd32(bv32, bv32) returns (bv32); -function {:extern} {:bvbuiltin "bvadd"} bvadd33(bv33, bv33) returns (bv33); +axiom ($_IO_stdin_used_addr == 2220bv64); function {:extern} {:bvbuiltin "bvadd"} bvadd64(bv64, bv64) returns (bv64); -function {:extern} {:bvbuiltin "bvcomp"} bvcomp1(bv1, bv1) returns (bv1); -function {:extern} {:bvbuiltin "bvcomp"} bvcomp32(bv32, bv32) returns (bv1); -function {:extern} {:bvbuiltin "bvcomp"} bvcomp33(bv33, bv33) returns (bv1); -function {:extern} {:bvbuiltin "bvnot"} bvnot1(bv1) returns (bv1); -function {:extern} gamma_load32(gammaMap: [bv64]bool, index: bv64) returns (bool) { - (gammaMap[bvadd64(index, 3bv64)] && (gammaMap[bvadd64(index, 2bv64)] && (gammaMap[bvadd64(index, 1bv64)] && gammaMap[index]))) -} - -function {:extern} gamma_store32(gammaMap: [bv64]bool, index: bv64, value: bool) returns ([bv64]bool) { - gammaMap[index := value][bvadd64(index, 1bv64) := value][bvadd64(index, 2bv64) := value][bvadd64(index, 3bv64) := value] -} - function {:extern} memory_load32_le(memory: [bv64]bv8, index: bv64) returns (bv32) { (memory[bvadd64(index, 3bv64)] ++ (memory[bvadd64(index, 2bv64)] ++ (memory[bvadd64(index, 1bv64)] ++ memory[index]))) } @@ -39,22 +11,15 @@ function {:extern} memory_load64_le(memory: [bv64]bv8, index: bv64) returns (bv6 (memory[bvadd64(index, 7bv64)] ++ (memory[bvadd64(index, 6bv64)] ++ (memory[bvadd64(index, 5bv64)] ++ (memory[bvadd64(index, 4bv64)] ++ (memory[bvadd64(index, 3bv64)] ++ (memory[bvadd64(index, 2bv64)] ++ (memory[bvadd64(index, 1bv64)] ++ memory[index]))))))) } -function {:extern} memory_store32_le(memory: [bv64]bv8, index: bv64, value: bv32) returns ([bv64]bv8) { - memory[index := value[8:0]][bvadd64(index, 1bv64) := value[16:8]][bvadd64(index, 2bv64) := value[24:16]][bvadd64(index, 3bv64) := value[32:24]] -} - -function {:extern} {:bvbuiltin "sign_extend 1"} sign_extend1_32(bv32) returns (bv33); -function {:extern} {:bvbuiltin "zero_extend 1"} zero_extend1_32(bv32) returns (bv33); -function {:extern} {:bvbuiltin "zero_extend 32"} zero_extend32_32(bv32) returns (bv64); procedure {:extern} rely(); modifies Gamma_mem, mem; ensures (Gamma_mem == old(Gamma_mem)); ensures (mem == old(mem)); - free ensures (memory_load32_le(mem, 1936bv64) == 131073bv32); - free ensures (memory_load64_le(mem, 69064bv64) == 1808bv64); - free ensures (memory_load64_le(mem, 69072bv64) == 1728bv64); - free ensures (memory_load64_le(mem, 69592bv64) == 1812bv64); - free ensures (memory_load64_le(mem, 69672bv64) == 69672bv64); + free ensures (memory_load32_le(mem, 2220bv64) == 131073bv32); + free ensures (memory_load64_le(mem, 130440bv64) == 2192bv64); + free ensures (memory_load64_le(mem, 130448bv64) == 2112bv64); + free ensures (memory_load64_le(mem, 131056bv64) == 2196bv64); + free ensures (memory_load64_le(mem, 131080bv64) == 131080bv64); procedure {:extern} rely_transitive(); modifies Gamma_mem, mem; @@ -72,151 +37,27 @@ procedure {:extern} rely_reflexive(); procedure {:extern} guarantee_reflexive(); modifies Gamma_mem, mem; -procedure main_1812(); - modifies CF, Gamma_CF, Gamma_NF, Gamma_R31, Gamma_R8, Gamma_VF, Gamma_ZF, Gamma_stack, NF, R31, R8, VF, ZF, stack; - free requires (memory_load64_le(mem, 69664bv64) == 0bv64); - free requires (memory_load64_le(mem, 69672bv64) == 69672bv64); - free requires (memory_load32_le(mem, 1936bv64) == 131073bv32); - free requires (memory_load64_le(mem, 69064bv64) == 1808bv64); - free requires (memory_load64_le(mem, 69072bv64) == 1728bv64); - free requires (memory_load64_le(mem, 69592bv64) == 1812bv64); - free requires (memory_load64_le(mem, 69672bv64) == 69672bv64); - free ensures (Gamma_R31 == old(Gamma_R31)); - free ensures (R31 == old(R31)); - free ensures (memory_load32_le(mem, 1936bv64) == 131073bv32); - free ensures (memory_load64_le(mem, 69064bv64) == 1808bv64); - free ensures (memory_load64_le(mem, 69072bv64) == 1728bv64); - free ensures (memory_load64_le(mem, 69592bv64) == 1812bv64); - free ensures (memory_load64_le(mem, 69672bv64) == 69672bv64); - -implementation main_1812() +procedure main(); + free requires (memory_load64_le(mem, 131072bv64) == 0bv64); + free requires (memory_load64_le(mem, 131080bv64) == 131080bv64); + free requires (memory_load32_le(mem, 2220bv64) == 131073bv32); + free requires (memory_load64_le(mem, 130440bv64) == 2192bv64); + free requires (memory_load64_le(mem, 130448bv64) == 2112bv64); + free requires (memory_load64_le(mem, 131056bv64) == 2196bv64); + free requires (memory_load64_le(mem, 131080bv64) == 131080bv64); + free ensures (memory_load32_le(mem, 2220bv64) == 131073bv32); + free ensures (memory_load64_le(mem, 130440bv64) == 2192bv64); + free ensures (memory_load64_le(mem, 130448bv64) == 2112bv64); + free ensures (memory_load64_le(mem, 131056bv64) == 2196bv64); + free ensures (memory_load64_le(mem, 131080bv64) == 131080bv64); + +implementation main() { - var #4: bv32; - var #5: bv32; - var Gamma_#4: bool; - var Gamma_#5: bool; - var Gamma_load18: bool; - var Gamma_load19: bool; - var load18: bv32; - var load19: bv32; lmain: assume {:captureState "lmain"} true; - R31, Gamma_R31 := bvadd64(R31, 18446744073709551600bv64), Gamma_R31; - R8, Gamma_R8 := 1bv64, true; - stack, Gamma_stack := memory_store32_le(stack, bvadd64(R31, 12bv64), R8[32:0]), gamma_store32(Gamma_stack, bvadd64(R31, 12bv64), Gamma_R8); - assume {:captureState "%00000323"} true; - stack, Gamma_stack := memory_store32_le(stack, bvadd64(R31, 8bv64), 0bv32), gamma_store32(Gamma_stack, bvadd64(R31, 8bv64), true); - assume {:captureState "%0000032a"} true; - load18, Gamma_load18 := memory_load32_le(stack, bvadd64(R31, 12bv64)), gamma_load32(Gamma_stack, bvadd64(R31, 12bv64)); - R8, Gamma_R8 := zero_extend32_32(load18), Gamma_load18; - stack, Gamma_stack := memory_store32_le(stack, bvadd64(R31, 4bv64), R8[32:0]), gamma_store32(Gamma_stack, bvadd64(R31, 4bv64), Gamma_R8); - assume {:captureState "%00000339"} true; - #4, Gamma_#4 := bvadd32(R8[32:0], 4294967294bv32), Gamma_R8; - VF, Gamma_VF := bvnot1(bvcomp33(sign_extend1_32(bvadd32(#4, 1bv32)), bvadd33(sign_extend1_32(R8[32:0]), 8589934591bv33))), (Gamma_R8 && Gamma_#4); - CF, Gamma_CF := bvnot1(bvcomp33(zero_extend1_32(bvadd32(#4, 1bv32)), bvadd33(zero_extend1_32(R8[32:0]), 4294967295bv33))), (Gamma_R8 && Gamma_#4); - ZF, Gamma_ZF := bvcomp32(bvadd32(#4, 1bv32), 0bv32), Gamma_#4; - NF, Gamma_NF := bvadd32(#4, 1bv32)[32:31], Gamma_#4; - R8, Gamma_R8 := zero_extend32_32(bvadd32(#4, 1bv32)), Gamma_#4; - assert Gamma_ZF; - goto lmain_goto_l0000035a, lmain_goto_l0000035d; - lmain_goto_l0000035d: - assume {:captureState "lmain_goto_l0000035d"} true; - assume (bvnot1(bvcomp1(ZF, 1bv1)) == 0bv1); - R8, Gamma_R8 := 1bv64, true; - goto l0000035d; - l0000035d: - assume {:captureState "l0000035d"} true; - goto l00000360; - lmain_goto_l0000035a: - assume {:captureState "lmain_goto_l0000035a"} true; - assume (bvnot1(bvcomp1(ZF, 1bv1)) != 0bv1); - R8, Gamma_R8 := 0bv64, true; - goto l0000035a; - l0000035a: - assume {:captureState "l0000035a"} true; - goto l00000360; - l00000360: - assume {:captureState "l00000360"} true; - assert Gamma_R8; - goto l00000360_goto_l00000368, l00000360_goto_l0000039a; - l00000360_goto_l0000039a: - assume {:captureState "l00000360_goto_l0000039a"} true; - assume (bvcomp1(R8[1:0], 1bv1) == 0bv1); - goto l0000039a; - l0000039a: - assume {:captureState "l0000039a"} true; - goto l0000039b; - l0000039b: - assume {:captureState "l0000039b"} true; - load19, Gamma_load19 := memory_load32_le(stack, bvadd64(R31, 4bv64)), gamma_load32(Gamma_stack, bvadd64(R31, 4bv64)); - R8, Gamma_R8 := zero_extend32_32(load19), Gamma_load19; - #5, Gamma_#5 := bvadd32(R8[32:0], 4294967292bv32), Gamma_R8; - VF, Gamma_VF := bvnot1(bvcomp33(sign_extend1_32(bvadd32(#5, 1bv32)), bvadd33(sign_extend1_32(R8[32:0]), 8589934589bv33))), (Gamma_R8 && Gamma_#5); - CF, Gamma_CF := bvnot1(bvcomp33(zero_extend1_32(bvadd32(#5, 1bv32)), bvadd33(zero_extend1_32(R8[32:0]), 4294967293bv33))), (Gamma_R8 && Gamma_#5); - ZF, Gamma_ZF := bvcomp32(bvadd32(#5, 1bv32), 0bv32), Gamma_#5; - NF, Gamma_NF := bvadd32(#5, 1bv32)[32:31], Gamma_#5; - R8, Gamma_R8 := zero_extend32_32(bvadd32(#5, 1bv32)), Gamma_#5; - assert Gamma_ZF; - goto l0000039b_goto_l000003c4, l0000039b_goto_l000003c7; - l0000039b_goto_l000003c7: - assume {:captureState "l0000039b_goto_l000003c7"} true; - assume (bvcomp1(ZF, 1bv1) == 0bv1); - R8, Gamma_R8 := 1bv64, true; - goto l000003c7; - l000003c7: - assume {:captureState "l000003c7"} true; - goto l000003ca; - l0000039b_goto_l000003c4: - assume {:captureState "l0000039b_goto_l000003c4"} true; - assume (bvcomp1(ZF, 1bv1) != 0bv1); - R8, Gamma_R8 := 0bv64, true; - goto l000003c4; - l000003c4: - assume {:captureState "l000003c4"} true; - goto l000003ca; - l000003ca: - assume {:captureState "l000003ca"} true; - assert Gamma_R8; - goto l000003ca_goto_l00000389, l000003ca_goto_l000003d7; - l000003ca_goto_l000003d7: - assume {:captureState "l000003ca_goto_l000003d7"} true; - assume (bvcomp1(R8[1:0], 1bv1) == 0bv1); - goto l000003d7; - l000003d7: - assume {:captureState "l000003d7"} true; - goto l000003d8; - l000003d8: - assume {:captureState "l000003d8"} true; - R8, Gamma_R8 := 3bv64, true; - stack, Gamma_stack := memory_store32_le(stack, bvadd64(R31, 8bv64), R8[32:0]), gamma_store32(Gamma_stack, bvadd64(R31, 8bv64), Gamma_R8); - assume {:captureState "%000003e6"} true; - goto l00000368; - l000003ca_goto_l00000389: - assume {:captureState "l000003ca_goto_l00000389"} true; - assume (bvcomp1(R8[1:0], 1bv1) != 0bv1); - R8, Gamma_R8 := 5bv64, true; - stack, Gamma_stack := memory_store32_le(stack, bvadd64(R31, 8bv64), R8[32:0]), gamma_store32(Gamma_stack, bvadd64(R31, 8bv64), Gamma_R8); - assume {:captureState "%00000394"} true; - goto l00000389; - l00000389: - assume {:captureState "l00000389"} true; - goto l0000037b; - l00000360_goto_l00000368: - assume {:captureState "l00000360_goto_l00000368"} true; - assume (bvcomp1(R8[1:0], 1bv1) != 0bv1); - goto l00000368; - l00000368: - assume {:captureState "l00000368"} true; - R8, Gamma_R8 := 1bv64, true; - stack, Gamma_stack := memory_store32_le(stack, bvadd64(R31, 8bv64), R8[32:0]), gamma_store32(Gamma_stack, bvadd64(R31, 8bv64), Gamma_R8); - assume {:captureState "%00000378"} true; - goto l0000037b; - l0000037b: - assume {:captureState "l0000037b"} true; - R31, Gamma_R31 := bvadd64(R31, 16bv64), Gamma_R31; - goto main_1812_basil_return; - main_1812_basil_return: - assume {:captureState "main_1812_basil_return"} true; + goto main_basil_return; + main_basil_return: + assume {:captureState "main_basil_return"} true; return; } diff --git a/src/test/correct/switch/clang/switch.gts b/src/test/correct/switch/clang/switch.gts deleted file mode 100644 index f190b57d5..000000000 Binary files a/src/test/correct/switch/clang/switch.gts and /dev/null differ diff --git a/src/test/correct/switch/clang/switch.md5sum b/src/test/correct/switch/clang/switch.md5sum new file mode 100644 index 000000000..a68567d87 --- /dev/null +++ b/src/test/correct/switch/clang/switch.md5sum @@ -0,0 +1,5 @@ +1e3f3f53089ee0c894b9d27712f2d927 correct/switch/clang/a.out +1f427a89414cd248442da8cb58af345a correct/switch/clang/switch.adt +895b81d83475139a1005c20f778bd4e9 correct/switch/clang/switch.bir +352697caf792aa289e4f15d13adafac5 correct/switch/clang/switch.relf +2c122b837760f64dc9700696d37348ec correct/switch/clang/switch.gts diff --git a/src/test/correct/switch/clang/switch.relf b/src/test/correct/switch/clang/switch.relf deleted file mode 100644 index 5913a848d..000000000 --- a/src/test/correct/switch/clang/switch.relf +++ /dev/null @@ -1,121 +0,0 @@ - -Relocation section '.rela.dyn' at offset 0x460 contains 8 entries: - Offset Info Type Symbol's Value Symbol's Name + Addend -0000000000010dc8 0000000000000403 R_AARCH64_RELATIVE 710 -0000000000010dd0 0000000000000403 R_AARCH64_RELATIVE 6c0 -0000000000010fd8 0000000000000403 R_AARCH64_RELATIVE 714 -0000000000011028 0000000000000403 R_AARCH64_RELATIVE 11028 -0000000000010fc0 0000000400000401 R_AARCH64_GLOB_DAT 0000000000000000 _ITM_deregisterTMCloneTable + 0 -0000000000010fc8 0000000500000401 R_AARCH64_GLOB_DAT 0000000000000000 __cxa_finalize@GLIBC_2.17 + 0 -0000000000010fd0 0000000600000401 R_AARCH64_GLOB_DAT 0000000000000000 __gmon_start__ + 0 -0000000000010fe0 0000000800000401 R_AARCH64_GLOB_DAT 0000000000000000 _ITM_registerTMCloneTable + 0 - -Relocation section '.rela.plt' at offset 0x520 contains 4 entries: - Offset Info Type Symbol's Value Symbol's Name + Addend -0000000000011000 0000000300000402 R_AARCH64_JUMP_SLOT 0000000000000000 __libc_start_main@GLIBC_2.34 + 0 -0000000000011008 0000000500000402 R_AARCH64_JUMP_SLOT 0000000000000000 __cxa_finalize@GLIBC_2.17 + 0 -0000000000011010 0000000600000402 R_AARCH64_JUMP_SLOT 0000000000000000 __gmon_start__ + 0 -0000000000011018 0000000700000402 R_AARCH64_JUMP_SLOT 0000000000000000 abort@GLIBC_2.17 + 0 - -Symbol table '.dynsym' contains 9 entries: - Num: Value Size Type Bind Vis Ndx Name - 0: 0000000000000000 0 NOTYPE LOCAL DEFAULT UND - 1: 0000000000000580 0 SECTION LOCAL DEFAULT 11 .init - 2: 0000000000011020 0 SECTION LOCAL DEFAULT 23 .data - 3: 0000000000000000 0 FUNC GLOBAL DEFAULT UND __libc_start_main@GLIBC_2.34 (2) - 4: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_deregisterTMCloneTable - 5: 0000000000000000 0 FUNC WEAK DEFAULT UND __cxa_finalize@GLIBC_2.17 (3) - 6: 0000000000000000 0 NOTYPE WEAK DEFAULT UND __gmon_start__ - 7: 0000000000000000 0 FUNC GLOBAL DEFAULT UND abort@GLIBC_2.17 (3) - 8: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_registerTMCloneTable - -Symbol table '.symtab' contains 88 entries: - Num: Value Size Type Bind Vis Ndx Name - 0: 0000000000000000 0 NOTYPE LOCAL DEFAULT UND - 1: 0000000000000238 0 SECTION LOCAL DEFAULT 1 .interp - 2: 0000000000000254 0 SECTION LOCAL DEFAULT 2 .note.gnu.build-id - 3: 0000000000000278 0 SECTION LOCAL DEFAULT 3 .note.ABI-tag - 4: 0000000000000298 0 SECTION LOCAL DEFAULT 4 .gnu.hash - 5: 00000000000002b8 0 SECTION LOCAL DEFAULT 5 .dynsym - 6: 0000000000000390 0 SECTION LOCAL DEFAULT 6 .dynstr - 7: 000000000000041e 0 SECTION LOCAL DEFAULT 7 .gnu.version - 8: 0000000000000430 0 SECTION LOCAL DEFAULT 8 .gnu.version_r - 9: 0000000000000460 0 SECTION LOCAL DEFAULT 9 .rela.dyn - 10: 0000000000000520 0 SECTION LOCAL DEFAULT 10 .rela.plt - 11: 0000000000000580 0 SECTION LOCAL DEFAULT 11 .init - 12: 00000000000005a0 0 SECTION LOCAL DEFAULT 12 .plt - 13: 0000000000000600 0 SECTION LOCAL DEFAULT 13 .text - 14: 000000000000077c 0 SECTION LOCAL DEFAULT 14 .fini - 15: 0000000000000790 0 SECTION LOCAL DEFAULT 15 .rodata - 16: 0000000000000794 0 SECTION LOCAL DEFAULT 16 .eh_frame_hdr - 17: 00000000000007d0 0 SECTION LOCAL DEFAULT 17 .eh_frame - 18: 0000000000010dc8 0 SECTION LOCAL DEFAULT 18 .init_array - 19: 0000000000010dd0 0 SECTION LOCAL DEFAULT 19 .fini_array - 20: 0000000000010dd8 0 SECTION LOCAL DEFAULT 20 .dynamic - 21: 0000000000010fb8 0 SECTION LOCAL DEFAULT 21 .got - 22: 0000000000010fe8 0 SECTION LOCAL DEFAULT 22 .got.plt - 23: 0000000000011020 0 SECTION LOCAL DEFAULT 23 .data - 24: 0000000000011030 0 SECTION LOCAL DEFAULT 24 .bss - 25: 0000000000000000 0 SECTION LOCAL DEFAULT 25 .comment - 26: 0000000000000000 0 FILE LOCAL DEFAULT ABS Scrt1.o - 27: 0000000000000278 0 NOTYPE LOCAL DEFAULT 3 $d - 28: 0000000000000278 32 OBJECT LOCAL DEFAULT 3 __abi_tag - 29: 0000000000000600 0 NOTYPE LOCAL DEFAULT 13 $x - 30: 00000000000007e4 0 NOTYPE LOCAL DEFAULT 17 $d - 31: 0000000000000790 0 NOTYPE LOCAL DEFAULT 15 $d - 32: 0000000000000000 0 FILE LOCAL DEFAULT ABS crti.o - 33: 0000000000000634 0 NOTYPE LOCAL DEFAULT 13 $x - 34: 0000000000000634 20 FUNC LOCAL DEFAULT 13 call_weak_fn - 35: 0000000000000580 0 NOTYPE LOCAL DEFAULT 11 $x - 36: 000000000000077c 0 NOTYPE LOCAL DEFAULT 14 $x - 37: 0000000000000000 0 FILE LOCAL DEFAULT ABS crtn.o - 38: 0000000000000590 0 NOTYPE LOCAL DEFAULT 11 $x - 39: 0000000000000788 0 NOTYPE LOCAL DEFAULT 14 $x - 40: 0000000000000000 0 FILE LOCAL DEFAULT ABS crtstuff.c - 41: 0000000000000650 0 NOTYPE LOCAL DEFAULT 13 $x - 42: 0000000000000650 0 FUNC LOCAL DEFAULT 13 deregister_tm_clones - 43: 0000000000000680 0 FUNC LOCAL DEFAULT 13 register_tm_clones - 44: 0000000000011028 0 NOTYPE LOCAL DEFAULT 23 $d - 45: 00000000000006c0 0 FUNC LOCAL DEFAULT 13 __do_global_dtors_aux - 46: 0000000000011030 1 OBJECT LOCAL DEFAULT 24 completed.0 - 47: 0000000000010dd0 0 NOTYPE LOCAL DEFAULT 19 $d - 48: 0000000000010dd0 0 OBJECT LOCAL DEFAULT 19 __do_global_dtors_aux_fini_array_entry - 49: 0000000000000710 0 FUNC LOCAL DEFAULT 13 frame_dummy - 50: 0000000000010dc8 0 NOTYPE LOCAL DEFAULT 18 $d - 51: 0000000000010dc8 0 OBJECT LOCAL DEFAULT 18 __frame_dummy_init_array_entry - 52: 00000000000007f8 0 NOTYPE LOCAL DEFAULT 17 $d - 53: 0000000000011030 0 NOTYPE LOCAL DEFAULT 24 $d - 54: 0000000000000000 0 FILE LOCAL DEFAULT ABS switch.c - 55: 0000000000000714 0 NOTYPE LOCAL DEFAULT 13 $x.0 - 56: 000000000000002a 0 NOTYPE LOCAL DEFAULT 25 $d.1 - 57: 0000000000000858 0 NOTYPE LOCAL DEFAULT 17 $d.2 - 58: 0000000000000000 0 FILE LOCAL DEFAULT ABS crtstuff.c - 59: 0000000000000884 0 NOTYPE LOCAL DEFAULT 17 $d - 60: 0000000000000884 0 OBJECT LOCAL DEFAULT 17 __FRAME_END__ - 61: 0000000000000000 0 FILE LOCAL DEFAULT ABS - 62: 0000000000010dd8 0 OBJECT LOCAL DEFAULT ABS _DYNAMIC - 63: 0000000000000794 0 NOTYPE LOCAL DEFAULT 16 __GNU_EH_FRAME_HDR - 64: 0000000000010fb8 0 OBJECT LOCAL DEFAULT ABS _GLOBAL_OFFSET_TABLE_ - 65: 00000000000005a0 0 NOTYPE LOCAL DEFAULT 12 $x - 66: 0000000000000000 0 FUNC GLOBAL DEFAULT UND __libc_start_main@GLIBC_2.34 - 67: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_deregisterTMCloneTable - 68: 0000000000011020 0 NOTYPE WEAK DEFAULT 23 data_start - 69: 0000000000011030 0 NOTYPE GLOBAL DEFAULT 24 __bss_start__ - 70: 0000000000000000 0 FUNC WEAK DEFAULT UND __cxa_finalize@GLIBC_2.17 - 71: 0000000000011038 0 NOTYPE GLOBAL DEFAULT 24 _bss_end__ - 72: 0000000000011030 0 NOTYPE GLOBAL DEFAULT 23 _edata - 73: 000000000000077c 0 FUNC GLOBAL HIDDEN 14 _fini - 74: 0000000000011038 0 NOTYPE GLOBAL DEFAULT 24 __bss_end__ - 75: 0000000000011020 0 NOTYPE GLOBAL DEFAULT 23 __data_start - 76: 0000000000000000 0 NOTYPE WEAK DEFAULT UND __gmon_start__ - 77: 0000000000011028 0 OBJECT GLOBAL HIDDEN 23 __dso_handle - 78: 0000000000000000 0 FUNC GLOBAL DEFAULT UND abort@GLIBC_2.17 - 79: 0000000000000790 4 OBJECT GLOBAL DEFAULT 15 _IO_stdin_used - 80: 0000000000011038 0 NOTYPE GLOBAL DEFAULT 24 _end - 81: 0000000000000600 52 FUNC GLOBAL DEFAULT 13 _start - 82: 0000000000011038 0 NOTYPE GLOBAL DEFAULT 24 __end__ - 83: 0000000000011030 0 NOTYPE GLOBAL DEFAULT 24 __bss_start - 84: 0000000000000714 104 FUNC GLOBAL DEFAULT 13 main - 85: 0000000000011030 0 OBJECT GLOBAL HIDDEN 23 __TMC_END__ - 86: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_registerTMCloneTable - 87: 0000000000000580 0 FUNC GLOBAL HIDDEN 11 _init diff --git a/src/test/correct/switch/clang/switch_gtirb.expected b/src/test/correct/switch/clang/switch_gtirb.expected index 5efcd5d35..a315dff87 100644 --- a/src/test/correct/switch/clang/switch_gtirb.expected +++ b/src/test/correct/switch/clang/switch_gtirb.expected @@ -1,35 +1,8 @@ -var {:extern} CF: bv1; -var {:extern} Gamma_CF: bool; -var {:extern} Gamma_NF: bool; -var {:extern} Gamma_R31: bool; -var {:extern} Gamma_R8: bool; -var {:extern} Gamma_VF: bool; -var {:extern} Gamma_ZF: bool; var {:extern} Gamma_mem: [bv64]bool; -var {:extern} Gamma_stack: [bv64]bool; -var {:extern} NF: bv1; -var {:extern} R31: bv64; -var {:extern} R8: bv64; -var {:extern} VF: bv1; -var {:extern} ZF: bv1; var {:extern} mem: [bv64]bv8; -var {:extern} stack: [bv64]bv8; const {:extern} $_IO_stdin_used_addr: bv64; -axiom ($_IO_stdin_used_addr == 1936bv64); -function {:extern} {:bvbuiltin "bvadd"} bvadd32(bv32, bv32) returns (bv32); -function {:extern} {:bvbuiltin "bvadd"} bvadd33(bv33, bv33) returns (bv33); +axiom ($_IO_stdin_used_addr == 2220bv64); function {:extern} {:bvbuiltin "bvadd"} bvadd64(bv64, bv64) returns (bv64); -function {:extern} {:bvbuiltin "bvcomp"} bvcomp32(bv32, bv32) returns (bv1); -function {:extern} {:bvbuiltin "bvcomp"} bvcomp33(bv33, bv33) returns (bv1); -function {:extern} {:bvbuiltin "bvnot"} bvnot1(bv1) returns (bv1); -function {:extern} gamma_load32(gammaMap: [bv64]bool, index: bv64) returns (bool) { - (gammaMap[bvadd64(index, 3bv64)] && (gammaMap[bvadd64(index, 2bv64)] && (gammaMap[bvadd64(index, 1bv64)] && gammaMap[index]))) -} - -function {:extern} gamma_store32(gammaMap: [bv64]bool, index: bv64, value: bool) returns ([bv64]bool) { - gammaMap[index := value][bvadd64(index, 1bv64) := value][bvadd64(index, 2bv64) := value][bvadd64(index, 3bv64) := value] -} - function {:extern} memory_load32_le(memory: [bv64]bv8, index: bv64) returns (bv32) { (memory[bvadd64(index, 3bv64)] ++ (memory[bvadd64(index, 2bv64)] ++ (memory[bvadd64(index, 1bv64)] ++ memory[index]))) } @@ -38,22 +11,15 @@ function {:extern} memory_load64_le(memory: [bv64]bv8, index: bv64) returns (bv6 (memory[bvadd64(index, 7bv64)] ++ (memory[bvadd64(index, 6bv64)] ++ (memory[bvadd64(index, 5bv64)] ++ (memory[bvadd64(index, 4bv64)] ++ (memory[bvadd64(index, 3bv64)] ++ (memory[bvadd64(index, 2bv64)] ++ (memory[bvadd64(index, 1bv64)] ++ memory[index]))))))) } -function {:extern} memory_store32_le(memory: [bv64]bv8, index: bv64, value: bv32) returns ([bv64]bv8) { - memory[index := value[8:0]][bvadd64(index, 1bv64) := value[16:8]][bvadd64(index, 2bv64) := value[24:16]][bvadd64(index, 3bv64) := value[32:24]] -} - -function {:extern} {:bvbuiltin "sign_extend 1"} sign_extend1_32(bv32) returns (bv33); -function {:extern} {:bvbuiltin "zero_extend 1"} zero_extend1_32(bv32) returns (bv33); -function {:extern} {:bvbuiltin "zero_extend 32"} zero_extend32_32(bv32) returns (bv64); procedure {:extern} rely(); modifies Gamma_mem, mem; ensures (Gamma_mem == old(Gamma_mem)); ensures (mem == old(mem)); - free ensures (memory_load32_le(mem, 1936bv64) == 131073bv32); - free ensures (memory_load64_le(mem, 69064bv64) == 1808bv64); - free ensures (memory_load64_le(mem, 69072bv64) == 1728bv64); - free ensures (memory_load64_le(mem, 69592bv64) == 1812bv64); - free ensures (memory_load64_le(mem, 69672bv64) == 69672bv64); + free ensures (memory_load32_le(mem, 2220bv64) == 131073bv32); + free ensures (memory_load64_le(mem, 130440bv64) == 2192bv64); + free ensures (memory_load64_le(mem, 130448bv64) == 2112bv64); + free ensures (memory_load64_le(mem, 131056bv64) == 2196bv64); + free ensures (memory_load64_le(mem, 131080bv64) == 131080bv64); procedure {:extern} rely_transitive(); modifies Gamma_mem, mem; @@ -71,135 +37,27 @@ procedure {:extern} rely_reflexive(); procedure {:extern} guarantee_reflexive(); modifies Gamma_mem, mem; -procedure main_1812(); - modifies CF, Gamma_CF, Gamma_NF, Gamma_R31, Gamma_R8, Gamma_VF, Gamma_ZF, Gamma_stack, NF, R31, R8, VF, ZF, stack; - free requires (memory_load64_le(mem, 69664bv64) == 0bv64); - free requires (memory_load64_le(mem, 69672bv64) == 69672bv64); - free requires (memory_load32_le(mem, 1936bv64) == 131073bv32); - free requires (memory_load64_le(mem, 69064bv64) == 1808bv64); - free requires (memory_load64_le(mem, 69072bv64) == 1728bv64); - free requires (memory_load64_le(mem, 69592bv64) == 1812bv64); - free requires (memory_load64_le(mem, 69672bv64) == 69672bv64); - free ensures (Gamma_R31 == old(Gamma_R31)); - free ensures (R31 == old(R31)); - free ensures (memory_load32_le(mem, 1936bv64) == 131073bv32); - free ensures (memory_load64_le(mem, 69064bv64) == 1808bv64); - free ensures (memory_load64_le(mem, 69072bv64) == 1728bv64); - free ensures (memory_load64_le(mem, 69592bv64) == 1812bv64); - free ensures (memory_load64_le(mem, 69672bv64) == 69672bv64); - -implementation main_1812() +procedure main(); + free requires (memory_load64_le(mem, 131072bv64) == 0bv64); + free requires (memory_load64_le(mem, 131080bv64) == 131080bv64); + free requires (memory_load32_le(mem, 2220bv64) == 131073bv32); + free requires (memory_load64_le(mem, 130440bv64) == 2192bv64); + free requires (memory_load64_le(mem, 130448bv64) == 2112bv64); + free requires (memory_load64_le(mem, 131056bv64) == 2196bv64); + free requires (memory_load64_le(mem, 131080bv64) == 131080bv64); + free ensures (memory_load32_le(mem, 2220bv64) == 131073bv32); + free ensures (memory_load64_le(mem, 130440bv64) == 2192bv64); + free ensures (memory_load64_le(mem, 130448bv64) == 2112bv64); + free ensures (memory_load64_le(mem, 131056bv64) == 2196bv64); + free ensures (memory_load64_le(mem, 131080bv64) == 131080bv64); + +implementation main() { - var Cse0__5_2_1: bv32; - var Cse0__5_3_6: bv32; - var Gamma_Cse0__5_2_1: bool; - var Gamma_Cse0__5_3_6: bool; - var Gamma_load13: bool; - var Gamma_load14: bool; - var load13: bv32; - var load14: bv32; - main_1812__0__3GlaOF1MR7aaQai1pc2v2g: - assume {:captureState "main_1812__0__3GlaOF1MR7aaQai1pc2v2g"} true; - R31, Gamma_R31 := bvadd64(R31, 18446744073709551600bv64), Gamma_R31; - R8, Gamma_R8 := 1bv64, true; - stack, Gamma_stack := memory_store32_le(stack, bvadd64(R31, 12bv64), R8[32:0]), gamma_store32(Gamma_stack, bvadd64(R31, 12bv64), Gamma_R8); - assume {:captureState "1820_0"} true; - stack, Gamma_stack := memory_store32_le(stack, bvadd64(R31, 8bv64), 0bv32), gamma_store32(Gamma_stack, bvadd64(R31, 8bv64), true); - assume {:captureState "1824_0"} true; - load14, Gamma_load14 := memory_load32_le(stack, bvadd64(R31, 12bv64)), gamma_load32(Gamma_stack, bvadd64(R31, 12bv64)); - R8, Gamma_R8 := zero_extend32_32(load14), Gamma_load14; - stack, Gamma_stack := memory_store32_le(stack, bvadd64(R31, 4bv64), R8[32:0]), gamma_store32(Gamma_stack, bvadd64(R31, 4bv64), Gamma_R8); - assume {:captureState "1832_0"} true; - Cse0__5_3_6, Gamma_Cse0__5_3_6 := bvadd32(R8[32:0], 4294967295bv32), Gamma_R8; - VF, Gamma_VF := bvnot1(bvcomp33(sign_extend1_32(Cse0__5_3_6), bvadd33(sign_extend1_32(R8[32:0]), 8589934591bv33))), (Gamma_R8 && Gamma_Cse0__5_3_6); - CF, Gamma_CF := bvnot1(bvcomp33(zero_extend1_32(Cse0__5_3_6), bvadd33(zero_extend1_32(R8[32:0]), 4294967295bv33))), (Gamma_R8 && Gamma_Cse0__5_3_6); - ZF, Gamma_ZF := bvcomp32(Cse0__5_3_6, 0bv32), Gamma_Cse0__5_3_6; - NF, Gamma_NF := Cse0__5_3_6[32:31], Gamma_Cse0__5_3_6; - R8, Gamma_R8 := zero_extend32_32(Cse0__5_3_6), Gamma_Cse0__5_3_6; - assert Gamma_ZF; - goto main_1812__0__3GlaOF1MR7aaQai1pc2v2g$__0, main_1812__0__3GlaOF1MR7aaQai1pc2v2g$__1; - main_1812__0__3GlaOF1MR7aaQai1pc2v2g$__1: - assume {:captureState "main_1812__0__3GlaOF1MR7aaQai1pc2v2g$__1"} true; - assume (!(!(ZF == 1bv1))); - R8, Gamma_R8 := 1bv64, true; - assert Gamma_R8; - goto main_1812__0__3GlaOF1MR7aaQai1pc2v2g_goto_main_1812__5__24PniileSwWTb~gBPRo3qQ, main_1812__0__3GlaOF1MR7aaQai1pc2v2g_goto_main_1812__1__4x~lmTLbT2auzSCUAlHDag; - main_1812__0__3GlaOF1MR7aaQai1pc2v2g$__0: - assume {:captureState "main_1812__0__3GlaOF1MR7aaQai1pc2v2g$__0"} true; - assume (!(ZF == 1bv1)); - R8, Gamma_R8 := 0bv64, true; - assert Gamma_R8; - goto main_1812__0__3GlaOF1MR7aaQai1pc2v2g_goto_main_1812__5__24PniileSwWTb~gBPRo3qQ, main_1812__0__3GlaOF1MR7aaQai1pc2v2g_goto_main_1812__1__4x~lmTLbT2auzSCUAlHDag; - main_1812__0__3GlaOF1MR7aaQai1pc2v2g_goto_main_1812__1__4x~lmTLbT2auzSCUAlHDag: - assume {:captureState "main_1812__0__3GlaOF1MR7aaQai1pc2v2g_goto_main_1812__1__4x~lmTLbT2auzSCUAlHDag"} true; - assume (!(R8[1:0] == 1bv1)); - goto main_1812__1__4x~lmTLbT2auzSCUAlHDag; - main_1812__1__4x~lmTLbT2auzSCUAlHDag: - assume {:captureState "main_1812__1__4x~lmTLbT2auzSCUAlHDag"} true; - goto main_1812__2__jyrJQYSIS2Ws80LCkGPZrA; - main_1812__2__jyrJQYSIS2Ws80LCkGPZrA: - assume {:captureState "main_1812__2__jyrJQYSIS2Ws80LCkGPZrA"} true; - load13, Gamma_load13 := memory_load32_le(stack, bvadd64(R31, 4bv64)), gamma_load32(Gamma_stack, bvadd64(R31, 4bv64)); - R8, Gamma_R8 := zero_extend32_32(load13), Gamma_load13; - Cse0__5_2_1, Gamma_Cse0__5_2_1 := bvadd32(R8[32:0], 4294967293bv32), Gamma_R8; - VF, Gamma_VF := bvnot1(bvcomp33(sign_extend1_32(Cse0__5_2_1), bvadd33(sign_extend1_32(R8[32:0]), 8589934589bv33))), (Gamma_R8 && Gamma_Cse0__5_2_1); - CF, Gamma_CF := bvnot1(bvcomp33(zero_extend1_32(Cse0__5_2_1), bvadd33(zero_extend1_32(R8[32:0]), 4294967293bv33))), (Gamma_R8 && Gamma_Cse0__5_2_1); - ZF, Gamma_ZF := bvcomp32(Cse0__5_2_1, 0bv32), Gamma_Cse0__5_2_1; - NF, Gamma_NF := Cse0__5_2_1[32:31], Gamma_Cse0__5_2_1; - R8, Gamma_R8 := zero_extend32_32(Cse0__5_2_1), Gamma_Cse0__5_2_1; - assert Gamma_ZF; - goto main_1812__2__jyrJQYSIS2Ws80LCkGPZrA$__0, main_1812__2__jyrJQYSIS2Ws80LCkGPZrA$__1; - main_1812__2__jyrJQYSIS2Ws80LCkGPZrA$__1: - assume {:captureState "main_1812__2__jyrJQYSIS2Ws80LCkGPZrA$__1"} true; - assume (!(ZF == 1bv1)); - R8, Gamma_R8 := 1bv64, true; - assert Gamma_R8; - goto main_1812__2__jyrJQYSIS2Ws80LCkGPZrA_goto_main_1812__6__M0Alxdx8S_6NyJoZnSXkvw, main_1812__2__jyrJQYSIS2Ws80LCkGPZrA_goto_main_1812__3__XW5NfPfUQ4KyEikucDTunQ; - main_1812__2__jyrJQYSIS2Ws80LCkGPZrA$__0: - assume {:captureState "main_1812__2__jyrJQYSIS2Ws80LCkGPZrA$__0"} true; - assume (ZF == 1bv1); - R8, Gamma_R8 := 0bv64, true; - assert Gamma_R8; - goto main_1812__2__jyrJQYSIS2Ws80LCkGPZrA_goto_main_1812__6__M0Alxdx8S_6NyJoZnSXkvw, main_1812__2__jyrJQYSIS2Ws80LCkGPZrA_goto_main_1812__3__XW5NfPfUQ4KyEikucDTunQ; - main_1812__2__jyrJQYSIS2Ws80LCkGPZrA_goto_main_1812__3__XW5NfPfUQ4KyEikucDTunQ: - assume {:captureState "main_1812__2__jyrJQYSIS2Ws80LCkGPZrA_goto_main_1812__3__XW5NfPfUQ4KyEikucDTunQ"} true; - assume (!(R8[1:0] == 1bv1)); - goto main_1812__3__XW5NfPfUQ4KyEikucDTunQ; - main_1812__3__XW5NfPfUQ4KyEikucDTunQ: - assume {:captureState "main_1812__3__XW5NfPfUQ4KyEikucDTunQ"} true; - goto main_1812__4__gwXdF75eT4Ou~FTT7cThmQ; - main_1812__4__gwXdF75eT4Ou~FTT7cThmQ: - assume {:captureState "main_1812__4__gwXdF75eT4Ou~FTT7cThmQ"} true; - R8, Gamma_R8 := 3bv64, true; - stack, Gamma_stack := memory_store32_le(stack, bvadd64(R31, 8bv64), R8[32:0]), gamma_store32(Gamma_stack, bvadd64(R31, 8bv64), Gamma_R8); - assume {:captureState "1876_0"} true; - goto main_1812__5__24PniileSwWTb~gBPRo3qQ; - main_1812__2__jyrJQYSIS2Ws80LCkGPZrA_goto_main_1812__6__M0Alxdx8S_6NyJoZnSXkvw: - assume {:captureState "main_1812__2__jyrJQYSIS2Ws80LCkGPZrA_goto_main_1812__6__M0Alxdx8S_6NyJoZnSXkvw"} true; - assume (R8[1:0] == 1bv1); - R8, Gamma_R8 := 5bv64, true; - stack, Gamma_stack := memory_store32_le(stack, bvadd64(R31, 8bv64), R8[32:0]), gamma_store32(Gamma_stack, bvadd64(R31, 8bv64), Gamma_R8); - assume {:captureState "1900_0"} true; - goto main_1812__6__M0Alxdx8S_6NyJoZnSXkvw; - main_1812__6__M0Alxdx8S_6NyJoZnSXkvw: - assume {:captureState "main_1812__6__M0Alxdx8S_6NyJoZnSXkvw"} true; - goto main_1812__7__Imv7ODlKQ3y~H7OMiSSR_w; - main_1812__0__3GlaOF1MR7aaQai1pc2v2g_goto_main_1812__5__24PniileSwWTb~gBPRo3qQ: - assume {:captureState "main_1812__0__3GlaOF1MR7aaQai1pc2v2g_goto_main_1812__5__24PniileSwWTb~gBPRo3qQ"} true; - assume (R8[1:0] == 1bv1); - goto main_1812__5__24PniileSwWTb~gBPRo3qQ; - main_1812__5__24PniileSwWTb~gBPRo3qQ: - assume {:captureState "main_1812__5__24PniileSwWTb~gBPRo3qQ"} true; - R8, Gamma_R8 := 1bv64, true; - stack, Gamma_stack := memory_store32_le(stack, bvadd64(R31, 8bv64), R8[32:0]), gamma_store32(Gamma_stack, bvadd64(R31, 8bv64), Gamma_R8); - assume {:captureState "1888_0"} true; - goto main_1812__7__Imv7ODlKQ3y~H7OMiSSR_w; - main_1812__7__Imv7ODlKQ3y~H7OMiSSR_w: - assume {:captureState "main_1812__7__Imv7ODlKQ3y~H7OMiSSR_w"} true; - R31, Gamma_R31 := bvadd64(R31, 16bv64), Gamma_R31; - goto main_1812_basil_return; - main_1812_basil_return: - assume {:captureState "main_1812_basil_return"} true; + $main$__0__$cdQ2GS2~QhaOa7OUvPWMRQ: + assume {:captureState "$main$__0__$cdQ2GS2~QhaOa7OUvPWMRQ"} true; + goto main_basil_return; + main_basil_return: + assume {:captureState "main_basil_return"} true; return; } diff --git a/src/test/correct/switch/clang_O2/switch.adt b/src/test/correct/switch/clang_O2/switch.adt deleted file mode 100644 index 64c786526..000000000 --- a/src/test/correct/switch/clang_O2/switch.adt +++ /dev/null @@ -1,483 +0,0 @@ -Project(Attrs([Attr("filename","\"clang_O2/switch.out\""), -Attr("image-specification","(declare abi (name str))\n(declare arch (name str))\n(declare base-address (addr int))\n(declare bias (off int))\n(declare bits (size int))\n(declare code-region (addr int) (size int) (off int))\n(declare code-start (addr int))\n(declare entry-point (addr int))\n(declare external-reference (addr int) (name str))\n(declare format (name str))\n(declare is-executable (flag bool))\n(declare is-little-endian (flag bool))\n(declare llvm:base-address (addr int))\n(declare llvm:code-entry (name str) (off int) (size int))\n(declare llvm:coff-import-library (name str))\n(declare llvm:coff-virtual-section-header (name str) (addr int) (size int))\n(declare llvm:elf-program-header (name str) (off int) (size int))\n(declare llvm:elf-program-header-flags (name str) (ld bool) (r bool) \n (w bool) (x bool))\n(declare llvm:elf-virtual-program-header (name str) (addr int) (size int))\n(declare llvm:entry-point (addr int))\n(declare llvm:macho-symbol (name str) (value int))\n(declare llvm:name-reference (at int) (name str))\n(declare llvm:relocation (at int) (addr int))\n(declare llvm:section-entry (name str) (addr int) (size int) (off int))\n(declare llvm:section-flags (name str) (r bool) (w bool) (x bool))\n(declare llvm:segment-command (name str) (off int) (size int))\n(declare llvm:segment-command-flags (name str) (r bool) (w bool) (x bool))\n(declare llvm:symbol-entry (name str) (addr int) (size int) (off int)\n (value int))\n(declare llvm:virtual-segment-command (name str) (addr int) (size int))\n(declare mapped (addr int) (size int) (off int))\n(declare named-region (addr int) (size int) (name str))\n(declare named-symbol (addr int) (name str))\n(declare require (name str))\n(declare section (addr int) (size int))\n(declare segment (addr int) (size int) (r bool) (w bool) (x bool))\n(declare subarch (name str))\n(declare symbol-chunk (addr int) (size int) (root int))\n(declare symbol-value (addr int) (value int))\n(declare system (name str))\n(declare vendor (name str))\n\n(abi unknown)\n(arch aarch64)\n(base-address 0)\n(bias 0)\n(bits 64)\n(code-region 1816 20 1816)\n(code-region 1536 280 1536)\n(code-region 1440 96 1440)\n(code-region 1408 24 1408)\n(code-start 1588)\n(code-start 1536)\n(code-start 1812)\n(entry-point 1536)\n(external-reference 69568 _ITM_deregisterTMCloneTable)\n(external-reference 69576 __cxa_finalize)\n(external-reference 69584 __gmon_start__)\n(external-reference 69600 _ITM_registerTMCloneTable)\n(external-reference 69632 __libc_start_main)\n(external-reference 69640 __cxa_finalize)\n(external-reference 69648 __gmon_start__)\n(external-reference 69656 abort)\n(format elf)\n(is-executable true)\n(is-little-endian true)\n(llvm:base-address 0)\n(llvm:code-entry abort 0 0)\n(llvm:code-entry __cxa_finalize 0 0)\n(llvm:code-entry __libc_start_main 0 0)\n(llvm:code-entry _init 1408 0)\n(llvm:code-entry main 1812 4)\n(llvm:code-entry _start 1536 52)\n(llvm:code-entry abort@GLIBC_2.17 0 0)\n(llvm:code-entry _fini 1816 0)\n(llvm:code-entry __cxa_finalize@GLIBC_2.17 0 0)\n(llvm:code-entry __libc_start_main@GLIBC_2.34 0 0)\n(llvm:code-entry frame_dummy 1808 0)\n(llvm:code-entry __do_global_dtors_aux 1728 0)\n(llvm:code-entry register_tm_clones 1664 0)\n(llvm:code-entry deregister_tm_clones 1616 0)\n(llvm:code-entry call_weak_fn 1588 20)\n(llvm:code-entry .fini 1816 20)\n(llvm:code-entry .text 1536 280)\n(llvm:code-entry .plt 1440 96)\n(llvm:code-entry .init 1408 24)\n(llvm:elf-program-header 08 3528 568)\n(llvm:elf-program-header 07 0 0)\n(llvm:elf-program-header 06 1840 60)\n(llvm:elf-program-header 05 596 68)\n(llvm:elf-program-header 04 3544 480)\n(llvm:elf-program-header 03 3528 616)\n(llvm:elf-program-header 02 0 2084)\n(llvm:elf-program-header 01 568 27)\n(llvm:elf-program-header 00 64 504)\n(llvm:elf-program-header-flags 08 false true false false)\n(llvm:elf-program-header-flags 07 false true true false)\n(llvm:elf-program-header-flags 06 false true false false)\n(llvm:elf-program-header-flags 05 false true false false)\n(llvm:elf-program-header-flags 04 false true true false)\n(llvm:elf-program-header-flags 03 true true true false)\n(llvm:elf-program-header-flags 02 true true false true)\n(llvm:elf-program-header-flags 01 false true false false)\n(llvm:elf-program-header-flags 00 false true false false)\n(llvm:elf-virtual-program-header 08 69064 568)\n(llvm:elf-virtual-program-header 07 0 0)\n(llvm:elf-virtual-program-header 06 1840 60)\n(llvm:elf-virtual-program-header 05 596 68)\n(llvm:elf-virtual-program-header 04 69080 480)\n(llvm:elf-virtual-program-header 03 69064 624)\n(llvm:elf-virtual-program-header 02 0 2084)\n(llvm:elf-virtual-program-header 01 568 27)\n(llvm:elf-virtual-program-header 00 64 504)\n(llvm:entry-point 1536)\n(llvm:name-reference 69656 abort)\n(llvm:name-reference 69648 __gmon_start__)\n(llvm:name-reference 69640 __cxa_finalize)\n(llvm:name-reference 69632 __libc_start_main)\n(llvm:name-reference 69600 _ITM_registerTMCloneTable)\n(llvm:name-reference 69584 __gmon_start__)\n(llvm:name-reference 69576 __cxa_finalize)\n(llvm:name-reference 69568 _ITM_deregisterTMCloneTable)\n(llvm:section-entry .shstrtab 0 259 6885)\n(llvm:section-entry .strtab 0 557 6328)\n(llvm:section-entry .symtab 0 2112 4216)\n(llvm:section-entry .comment 0 71 4144)\n(llvm:section-entry .bss 69680 8 4144)\n(llvm:section-entry .data 69664 16 4128)\n(llvm:section-entry .got.plt 69608 56 4072)\n(llvm:section-entry .got 69560 48 4024)\n(llvm:section-entry .dynamic 69080 480 3544)\n(llvm:section-entry .fini_array 69072 8 3536)\n(llvm:section-entry .init_array 69064 8 3528)\n(llvm:section-entry .eh_frame 1904 180 1904)\n(llvm:section-entry .eh_frame_hdr 1840 60 1840)\n(llvm:section-entry .rodata 1836 4 1836)\n(llvm:section-entry .fini 1816 20 1816)\n(llvm:section-entry .text 1536 280 1536)\n(llvm:section-entry .plt 1440 96 1440)\n(llvm:section-entry .init 1408 24 1408)\n(llvm:section-entry .rela.plt 1312 96 1312)\n(llvm:section-entry .rela.dyn 1120 192 1120)\n(llvm:section-entry .gnu.version_r 1072 48 1072)\n(llvm:section-entry .gnu.version 1054 18 1054)\n(llvm:section-entry .dynstr 912 141 912)\n(llvm:section-entry .dynsym 696 216 696)\n(llvm:section-entry .gnu.hash 664 28 664)\n(llvm:section-entry .note.ABI-tag 632 32 632)\n(llvm:section-entry .note.gnu.build-id 596 36 596)\n(llvm:section-entry .interp 568 27 568)\n(llvm:section-flags .shstrtab true false false)\n(llvm:section-flags .strtab true false false)\n(llvm:section-flags .symtab true false false)\n(llvm:section-flags .comment true false false)\n(llvm:section-flags .bss true true false)\n(llvm:section-flags .data true true false)\n(llvm:section-flags .got.plt true true false)\n(llvm:section-flags .got true true false)\n(llvm:section-flags .dynamic true true false)\n(llvm:section-flags .fini_array true true false)\n(llvm:section-flags .init_array true true false)\n(llvm:section-flags .eh_frame true false false)\n(llvm:section-flags .eh_frame_hdr true false false)\n(llvm:section-flags .rodata true false false)\n(llvm:section-flags .fini true false true)\n(llvm:section-flags .text true false true)\n(llvm:section-flags .plt true false true)\n(llvm:section-flags .init true false true)\n(llvm:section-flags .rela.plt true false false)\n(llvm:section-flags .rela.dyn true false false)\n(llvm:section-flags .gnu.version_r true false false)\n(llvm:section-flags .gnu.version true false false)\n(llvm:section-flags .dynstr true false false)\n(llvm:section-flags .dynsym true false false)\n(llvm:section-flags .gnu.hash true false false)\n(llvm:section-flags .note.ABI-tag true false false)\n(llvm:section-flags .note.gnu.build-id true false false)\n(llvm:section-flags .interp true false false)\n(llvm:symbol-entry abort 0 0 0 0)\n(llvm:symbol-entry __cxa_finalize 0 0 0 0)\n(llvm:symbol-entry __libc_start_main 0 0 0 0)\n(llvm:symbol-entry _init 1408 0 1408 1408)\n(llvm:symbol-entry main 1812 4 1812 1812)\n(llvm:symbol-entry _start 1536 52 1536 1536)\n(llvm:symbol-entry abort@GLIBC_2.17 0 0 0 0)\n(llvm:symbol-entry _fini 1816 0 1816 1816)\n(llvm:symbol-entry __cxa_finalize@GLIBC_2.17 0 0 0 0)\n(llvm:symbol-entry __libc_start_main@GLIBC_2.34 0 0 0 0)\n(llvm:symbol-entry frame_dummy 1808 0 1808 1808)\n(llvm:symbol-entry __do_global_dtors_aux 1728 0 1728 1728)\n(llvm:symbol-entry register_tm_clones 1664 0 1664 1664)\n(llvm:symbol-entry deregister_tm_clones 1616 0 1616 1616)\n(llvm:symbol-entry call_weak_fn 1588 20 1588 1588)\n(mapped 0 2084 0)\n(mapped 69064 616 3528)\n(named-region 0 2084 02)\n(named-region 69064 624 03)\n(named-region 568 27 .interp)\n(named-region 596 36 .note.gnu.build-id)\n(named-region 632 32 .note.ABI-tag)\n(named-region 664 28 .gnu.hash)\n(named-region 696 216 .dynsym)\n(named-region 912 141 .dynstr)\n(named-region 1054 18 .gnu.version)\n(named-region 1072 48 .gnu.version_r)\n(named-region 1120 192 .rela.dyn)\n(named-region 1312 96 .rela.plt)\n(named-region 1408 24 .init)\n(named-region 1440 96 .plt)\n(named-region 1536 280 .text)\n(named-region 1816 20 .fini)\n(named-region 1836 4 .rodata)\n(named-region 1840 60 .eh_frame_hdr)\n(named-region 1904 180 .eh_frame)\n(named-region 69064 8 .init_array)\n(named-region 69072 8 .fini_array)\n(named-region 69080 480 .dynamic)\n(named-region 69560 48 .got)\n(named-region 69608 56 .got.plt)\n(named-region 69664 16 .data)\n(named-region 69680 8 .bss)\n(named-region 0 71 .comment)\n(named-region 0 2112 .symtab)\n(named-region 0 557 .strtab)\n(named-region 0 259 .shstrtab)\n(named-symbol 1588 call_weak_fn)\n(named-symbol 1616 deregister_tm_clones)\n(named-symbol 1664 register_tm_clones)\n(named-symbol 1728 __do_global_dtors_aux)\n(named-symbol 1808 frame_dummy)\n(named-symbol 0 __libc_start_main@GLIBC_2.34)\n(named-symbol 0 __cxa_finalize@GLIBC_2.17)\n(named-symbol 1816 _fini)\n(named-symbol 0 abort@GLIBC_2.17)\n(named-symbol 1536 _start)\n(named-symbol 1812 main)\n(named-symbol 1408 _init)\n(named-symbol 0 __libc_start_main)\n(named-symbol 0 __cxa_finalize)\n(named-symbol 0 abort)\n(require libc.so.6)\n(section 568 27)\n(section 596 36)\n(section 632 32)\n(section 664 28)\n(section 696 216)\n(section 912 141)\n(section 1054 18)\n(section 1072 48)\n(section 1120 192)\n(section 1312 96)\n(section 1408 24)\n(section 1440 96)\n(section 1536 280)\n(section 1816 20)\n(section 1836 4)\n(section 1840 60)\n(section 1904 180)\n(section 69064 8)\n(section 69072 8)\n(section 69080 480)\n(section 69560 48)\n(section 69608 56)\n(section 69664 16)\n(section 69680 8)\n(section 0 71)\n(section 0 2112)\n(section 0 557)\n(section 0 259)\n(segment 0 2084 true false true)\n(segment 69064 624 true true false)\n(subarch v8)\n(symbol-chunk 1588 20 1588)\n(symbol-chunk 1536 52 1536)\n(symbol-chunk 1812 4 1812)\n(symbol-value 1588 1588)\n(symbol-value 1616 1616)\n(symbol-value 1664 1664)\n(symbol-value 1728 1728)\n(symbol-value 1808 1808)\n(symbol-value 1816 1816)\n(symbol-value 1536 1536)\n(symbol-value 1812 1812)\n(symbol-value 1408 1408)\n(symbol-value 0 0)\n(system \"\")\n(vendor \"\")\n"), -Attr("abi-name","\"aarch64-linux-gnu-elf\"")]), -Sections([Section(".shstrtab", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x00\x06\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xe8\x1b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x38\x00\x09\x00\x40\x00\x1d\x00\x1c\x00\x06\x00\x00\x00\x04\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x04\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x24\x08\x00\x00\x00\x00\x00\x00\x24\x08\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x01\x00\x00\x00\x06\x00\x00\x00\xc8\x0d\x00\x00\x00\x00\x00\x00\xc8\x0d\x01\x00\x00\x00\x00\x00\xc8\x0d\x01"), -Section(".strtab", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x00\x06\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xe8\x1b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x38\x00\x09\x00\x40\x00\x1d\x00\x1c\x00\x06\x00\x00\x00\x04\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x04\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x24\x08\x00\x00\x00\x00\x00\x00\x24\x08\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x01\x00\x00\x00\x06\x00\x00\x00\xc8\x0d\x00\x00\x00\x00\x00\x00\xc8\x0d\x01\x00\x00\x00\x00\x00\xc8\x0d\x01\x00\x00\x00\x00\x00\x68\x02\x00\x00\x00\x00\x00\x00\x70\x02\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x02\x00\x00\x00\x06\x00\x00\x00\xd8\x0d\x00\x00\x00\x00\x00\x00\xd8\x0d\x01\x00\x00\x00\x00\x00\xd8\x0d\x01\x00\x00\x00\x00\x00\xe0\x01\x00\x00\x00\x00\x00\x00\xe0\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x04\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x50\xe5\x74\x64\x04\x00\x00\x00\x30\x07\x00\x00\x00\x00\x00\x00\x30\x07\x00\x00\x00\x00\x00\x00\x30\x07\x00\x00\x00\x00\x00\x00\x3c\x00\x00\x00\x00\x00\x00\x00\x3c\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x51\xe5\x74\x64\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x52\xe5\x74\x64\x04\x00\x00\x00\xc8\x0d\x00\x00\x00\x00\x00\x00\xc8\x0d\x01\x00\x00\x00\x00\x00\xc8\x0d\x01\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00"), -Section(".comment", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x00\x06\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xe8\x1b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x38\x00\x09\x00\x40\x00\x1d\x00\x1c\x00\x06\x00\x00\x00\x04\x00\x00"), -Section(".interp", 0x238, "\x2f\x6c\x69\x62\x2f\x6c\x64\x2d\x6c\x69\x6e\x75\x78\x2d\x61\x61\x72\x63\x68\x36\x34\x2e\x73\x6f\x2e\x31\x00"), -Section(".note.gnu.build-id", 0x254, "\x04\x00\x00\x00\x14\x00\x00\x00\x03\x00\x00\x00\x47\x4e\x55\x00\x75\xea\x49\xda\x52\x9f\x56\xf6\x28\x39\x5b\xfe\x63\x55\x57\xc6\x4a\xbb\x01\xe0"), -Section(".note.ABI-tag", 0x278, "\x04\x00\x00\x00\x10\x00\x00\x00\x01\x00\x00\x00\x47\x4e\x55\x00\x00\x00\x00\x00\x03\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00"), -Section(".gnu.hash", 0x298, "\x01\x00\x00\x00\x01\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".dynsym", 0x2B8, "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x0b\x00\x80\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x17\x00\x20\x10\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x48\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x22\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x22\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x73\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".dynstr", 0x390, "\x00\x5f\x5f\x63\x78\x61\x5f\x66\x69\x6e\x61\x6c\x69\x7a\x65\x00\x5f\x5f\x6c\x69\x62\x63\x5f\x73\x74\x61\x72\x74\x5f\x6d\x61\x69\x6e\x00\x61\x62\x6f\x72\x74\x00\x6c\x69\x62\x63\x2e\x73\x6f\x2e\x36\x00\x47\x4c\x49\x42\x43\x5f\x32\x2e\x31\x37\x00\x47\x4c\x49\x42\x43\x5f\x32\x2e\x33\x34\x00\x5f\x49\x54\x4d\x5f\x64\x65\x72\x65\x67\x69\x73\x74\x65\x72\x54\x4d\x43\x6c\x6f\x6e\x65\x54\x61\x62\x6c\x65\x00\x5f\x5f\x67\x6d\x6f\x6e\x5f\x73\x74\x61\x72\x74\x5f\x5f\x00\x5f\x49\x54\x4d\x5f\x72\x65\x67\x69\x73\x74\x65\x72\x54\x4d\x43\x6c\x6f\x6e\x65\x54\x61\x62\x6c\x65\x00"), -Section(".gnu.version", 0x41E, "\x00\x00\x00\x00\x00\x00\x02\x00\x01\x00\x03\x00\x01\x00\x03\x00\x01\x00"), -Section(".gnu.version_r", 0x430, "\x01\x00\x02\x00\x28\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x97\x91\x96\x06\x00\x00\x03\x00\x32\x00\x00\x00\x10\x00\x00\x00\xb4\x91\x96\x06\x00\x00\x02\x00\x3d\x00\x00\x00\x00\x00\x00\x00"), -Section(".rela.dyn", 0x460, "\xc8\x0d\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x10\x07\x00\x00\x00\x00\x00\x00\xd0\x0d\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\xc0\x06\x00\x00\x00\x00\x00\x00\xd8\x0f\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x14\x07\x00\x00\x00\x00\x00\x00\x28\x10\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x28\x10\x01\x00\x00\x00\x00\x00\xc0\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xc8\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xd0\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe0\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".rela.plt", 0x520, "\x00\x10\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x08\x10\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x10\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x18\x10\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".init", 0x580, "\x1f\x20\x03\xd5\xfd\x7b\xbf\xa9\xfd\x03\x00\x91\x2a\x00\x00\x94\xfd\x7b\xc1\xa8\xc0\x03\x5f\xd6"), -Section(".plt", 0x5A0, "\xf0\x7b\xbf\xa9\x90\x00\x00\x90\x11\xfe\x47\xf9\x10\xe2\x3f\x91\x20\x02\x1f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x90\x00\x00\xb0\x11\x02\x40\xf9\x10\x02\x00\x91\x20\x02\x1f\xd6\x90\x00\x00\xb0\x11\x06\x40\xf9\x10\x22\x00\x91\x20\x02\x1f\xd6\x90\x00\x00\xb0\x11\x0a\x40\xf9\x10\x42\x00\x91\x20\x02\x1f\xd6\x90\x00\x00\xb0\x11\x0e\x40\xf9\x10\x62\x00\x91\x20\x02\x1f\xd6"), -Section(".text", 0x600, "\x1f\x20\x03\xd5\x1d\x00\x80\xd2\x1e\x00\x80\xd2\xe5\x03\x00\xaa\xe1\x03\x40\xf9\xe2\x23\x00\x91\xe6\x03\x00\x91\x80\x00\x00\x90\x00\xec\x47\xf9\x03\x00\x80\xd2\x04\x00\x80\xd2\xe5\xff\xff\x97\xf0\xff\xff\x97\x80\x00\x00\x90\x00\xe8\x47\xf9\x40\x00\x00\xb4\xe8\xff\xff\x17\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x80\x00\x00\xb0\x00\xc0\x00\x91\x81\x00\x00\xb0\x21\xc0\x00\x91\x3f\x00\x00\xeb\xc0\x00\x00\x54\x81\x00\x00\x90\x21\xe0\x47\xf9\x61\x00\x00\xb4\xf0\x03\x01\xaa\x00\x02\x1f\xd6\xc0\x03\x5f\xd6\x80\x00\x00\xb0\x00\xc0\x00\x91\x81\x00\x00\xb0\x21\xc0\x00\x91\x21\x00\x00\xcb\x22\xfc\x7f\xd3\x41\x0c\x81\x8b\x21\xfc\x41\x93\xc1\x00\x00\xb4\x82\x00\x00\x90\x42\xf0\x47\xf9\x62\x00\x00\xb4\xf0\x03\x02\xaa\x00\x02\x1f\xd6\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\xfd\x7b\xbe\xa9\xfd\x03\x00\x91\xf3\x0b\x00\xf9\x93\x00\x00\xb0\x60\xc2\x40\x39\x40\x01\x00\x35\x80\x00\x00\x90\x00\xe4\x47\xf9\x80\x00\x00\xb4\x80\x00\x00\xb0\x00\x14\x40\xf9\xb9\xff\xff\x97\xd8\xff\xff\x97\x20\x00\x80\x52\x60\xc2\x00\x39\xf3\x0b\x40\xf9\xfd\x7b\xc2\xa8\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\xdc\xff\xff\x17\xc0\x03\x5f\xd6"), -Section(".fini", 0x718, "\x1f\x20\x03\xd5\xfd\x7b\xbf\xa9\xfd\x03\x00\x91\xfd\x7b\xc1\xa8\xc0\x03\x5f\xd6"), -Section(".rodata", 0x72C, "\x01\x00\x02\x00"), -Section(".eh_frame_hdr", 0x730, "\x01\x1b\x03\x3b\x3c\x00\x00\x00\x06\x00\x00\x00\xd0\xfe\xff\xff\x54\x00\x00\x00\x20\xff\xff\xff\x68\x00\x00\x00\x50\xff\xff\xff\x7c\x00\x00\x00\x90\xff\xff\xff\x90\x00\x00\x00\xe0\xff\xff\xff\xb4\x00\x00\x00\xe4\xff\xff\xff\xdc\x00\x00\x00"), -Section(".eh_frame", 0x770, "\x10\x00\x00\x00\x00\x00\x00\x00\x01\x7a\x52\x00\x04\x78\x1e\x01\x1b\x0c\x1f\x00\x10\x00\x00\x00\x18\x00\x00\x00\x74\xfe\xff\xff\x34\x00\x00\x00\x00\x41\x07\x1e\x10\x00\x00\x00\x2c\x00\x00\x00\xb0\xfe\xff\xff\x30\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x40\x00\x00\x00\xcc\xfe\xff\xff\x3c\x00\x00\x00\x00\x00\x00\x00\x20\x00\x00\x00\x54\x00\x00\x00\xf8\xfe\xff\xff\x48\x00\x00\x00\x00\x41\x0e\x20\x9d\x04\x9e\x03\x42\x93\x02\x4e\xde\xdd\xd3\x0e\x00\x00\x00\x00\x10\x00\x00\x00\x78\x00\x00\x00\x24\xff\xff\xff\x04\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x01\x7a\x52\x00\x01\x7c\x1e\x01\x1b\x0c\x1f\x00\x10\x00\x00\x00\x18\x00\x00\x00\x00\xff\xff\xff\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".fini_array", 0x10DD0, "\xc0\x06\x00\x00\x00\x00\x00\x00"), -Section(".dynamic", 0x10DD8, "\x01\x00\x00\x00\x00\x00\x00\x00\x28\x00\x00\x00\x00\x00\x00\x00\x0c\x00\x00\x00\x00\x00\x00\x00\x80\x05\x00\x00\x00\x00\x00\x00\x0d\x00\x00\x00\x00\x00\x00\x00\x18\x07\x00\x00\x00\x00\x00\x00\x19\x00\x00\x00\x00\x00\x00\x00\xc8\x0d\x01\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x1a\x00\x00\x00\x00\x00\x00\x00\xd0\x0d\x01\x00\x00\x00\x00\x00\x1c\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\xf5\xfe\xff\x6f\x00\x00\x00\x00\x98\x02\x00\x00\x00\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x90\x03\x00\x00\x00\x00\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\xb8\x02\x00\x00\x00\x00\x00\x00\x0a\x00\x00\x00\x00\x00\x00\x00\x8d\x00\x00\x00\x00\x00\x00\x00\x0b\x00\x00\x00\x00\x00\x00\x00\x18\x00\x00\x00\x00\x00\x00\x00\x15\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\xe8\x0f\x01\x00\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x60\x00\x00\x00\x00\x00\x00\x00\x14\x00\x00\x00\x00\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x17\x00\x00\x00\x00\x00\x00\x00\x20\x05\x00\x00\x00\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x60\x04\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\xc0\x00\x00\x00\x00\x00\x00\x00\x09\x00\x00\x00\x00\x00\x00\x00\x18\x00\x00\x00\x00\x00\x00\x00\xfb\xff\xff\x6f\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\xfe\xff\xff\x6f\x00\x00\x00\x00\x30\x04\x00\x00\x00\x00\x00\x00\xff\xff\xff\x6f\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\xf0\xff\xff\x6f\x00\x00\x00\x00\x1e\x04\x00\x00\x00\x00\x00\x00\xf9\xff\xff\x6f\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".init_array", 0x10DC8, "\x10\x07\x00\x00\x00\x00\x00\x00"), -Section(".got", 0x10FB8, "\xd8\x0d\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x14\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".got.plt", 0x10FE8, "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xa0\x05\x00\x00\x00\x00\x00\x00\xa0\x05\x00\x00\x00\x00\x00\x00\xa0\x05\x00\x00\x00\x00\x00\x00\xa0\x05\x00\x00\x00\x00\x00\x00"), -Section(".data", 0x11020, "\x00\x00\x00\x00\x00\x00\x00\x00\x28\x10\x01\x00\x00\x00\x00\x00")]), -Memmap([Annotation(Region(0x0,0x823), Attr("segment","02 0 2084")), -Annotation(Region(0x600,0x633), Attr("symbol","\"_start\"")), -Annotation(Region(0x0,0x102), Attr("section","\".shstrtab\"")), -Annotation(Region(0x0,0x22C), Attr("section","\".strtab\"")), -Annotation(Region(0x0,0x46), Attr("section","\".comment\"")), -Annotation(Region(0x238,0x252), Attr("section","\".interp\"")), -Annotation(Region(0x254,0x277), Attr("section","\".note.gnu.build-id\"")), -Annotation(Region(0x278,0x297), Attr("section","\".note.ABI-tag\"")), -Annotation(Region(0x298,0x2B3), Attr("section","\".gnu.hash\"")), -Annotation(Region(0x2B8,0x38F), Attr("section","\".dynsym\"")), -Annotation(Region(0x390,0x41C), Attr("section","\".dynstr\"")), -Annotation(Region(0x41E,0x42F), Attr("section","\".gnu.version\"")), -Annotation(Region(0x430,0x45F), Attr("section","\".gnu.version_r\"")), -Annotation(Region(0x460,0x51F), Attr("section","\".rela.dyn\"")), -Annotation(Region(0x520,0x57F), Attr("section","\".rela.plt\"")), -Annotation(Region(0x580,0x597), Attr("section","\".init\"")), -Annotation(Region(0x5A0,0x5FF), Attr("section","\".plt\"")), -Annotation(Region(0x580,0x597), Attr("code-region","()")), -Annotation(Region(0x5A0,0x5FF), Attr("code-region","()")), -Annotation(Region(0x600,0x633), Attr("symbol-info","_start 0x600 52")), -Annotation(Region(0x634,0x647), Attr("symbol","\"call_weak_fn\"")), -Annotation(Region(0x634,0x647), Attr("symbol-info","call_weak_fn 0x634 20")), -Annotation(Region(0x600,0x717), Attr("section","\".text\"")), -Annotation(Region(0x600,0x717), Attr("code-region","()")), -Annotation(Region(0x714,0x717), Attr("symbol","\"main\"")), -Annotation(Region(0x714,0x717), Attr("symbol-info","main 0x714 4")), -Annotation(Region(0x718,0x72B), Attr("section","\".fini\"")), -Annotation(Region(0x718,0x72B), Attr("code-region","()")), -Annotation(Region(0x72C,0x72F), Attr("section","\".rodata\"")), -Annotation(Region(0x730,0x76B), Attr("section","\".eh_frame_hdr\"")), -Annotation(Region(0x770,0x823), Attr("section","\".eh_frame\"")), -Annotation(Region(0x10DC8,0x1102F), Attr("segment","03 0x10DC8 624")), -Annotation(Region(0x10DD0,0x10DD7), Attr("section","\".fini_array\"")), -Annotation(Region(0x10DD8,0x10FB7), Attr("section","\".dynamic\"")), -Annotation(Region(0x10DC8,0x10DCF), Attr("section","\".init_array\"")), -Annotation(Region(0x10FB8,0x10FE7), Attr("section","\".got\"")), -Annotation(Region(0x10FE8,0x1101F), Attr("section","\".got.plt\"")), -Annotation(Region(0x11020,0x1102F), Attr("section","\".data\""))]), -Program(Tid(1_370, "%0000055a"), Attrs([]), - Subs([Sub(Tid(1_320, "@__cxa_finalize"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x5D0"), -Attr("stub","()")]), "__cxa_finalize", Args([Arg(Tid(1_371, "%0000055b"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("__cxa_finalize_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(746, "@__cxa_finalize"), - Attrs([Attr("address","0x5D0")]), Phis([]), Defs([Def(Tid(994, "%000003e2"), - Attrs([Attr("address","0x5D0"), Attr("insn","adrp x16, #69632")]), - Var("R16",Imm(64)), Int(69632,64)), Def(Tid(1_001, "%000003e9"), - Attrs([Attr("address","0x5D4"), Attr("insn","ldr x17, [x16, #0x8]")]), - Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(1_007, "%000003ef"), Attrs([Attr("address","0x5D8"), -Attr("insn","add x16, x16, #0x8")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(8,64)))]), Jmps([Call(Tid(1_012, "%000003f4"), - Attrs([Attr("address","0x5DC"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), -Sub(Tid(1_321, "@__do_global_dtors_aux"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x6C0")]), - "__do_global_dtors_aux", Args([Arg(Tid(1_372, "%0000055c"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("__do_global_dtors_aux_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(594, "@__do_global_dtors_aux"), - Attrs([Attr("address","0x6C0")]), Phis([]), Defs([Def(Tid(598, "%00000256"), - Attrs([Attr("address","0x6C0"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("#3",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(18446744073709551584,64))), -Def(Tid(604, "%0000025c"), Attrs([Attr("address","0x6C0"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("#3",Imm(64)),Var("R29",Imm(64)),LittleEndian(),64)), -Def(Tid(610, "%00000262"), Attrs([Attr("address","0x6C0"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("#3",Imm(64)),Int(8,64)),Var("R30",Imm(64)),LittleEndian(),64)), -Def(Tid(614, "%00000266"), Attrs([Attr("address","0x6C0"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("R31",Imm(64)), -Var("#3",Imm(64))), Def(Tid(620, "%0000026c"), - Attrs([Attr("address","0x6C4"), Attr("insn","mov x29, sp")]), - Var("R29",Imm(64)), Var("R31",Imm(64))), Def(Tid(628, "%00000274"), - Attrs([Attr("address","0x6C8"), Attr("insn","str x19, [sp, #0x10]")]), - Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(16,64)),Var("R19",Imm(64)),LittleEndian(),64)), -Def(Tid(633, "%00000279"), Attrs([Attr("address","0x6CC"), -Attr("insn","adrp x19, #69632")]), Var("R19",Imm(64)), Int(69632,64)), -Def(Tid(640, "%00000280"), Attrs([Attr("address","0x6D0"), -Attr("insn","ldrb w0, [x19, #0x30]")]), Var("R0",Imm(64)), -UNSIGNED(64,Load(Var("mem",Mem(64,8)),PLUS(Var("R19",Imm(64)),Int(48,64)),LittleEndian(),8)))]), -Jmps([Goto(Tid(647, "%00000287"), Attrs([Attr("address","0x6D4"), -Attr("insn","cbnz w0, #0x28")]), - NEQ(Extract(31,0,Var("R0",Imm(64))),Int(0,32)), -Direct(Tid(645, "%00000285"))), Goto(Tid(1_360, "%00000550"), Attrs([]), - Int(1,1), Direct(Tid(691, "%000002b3")))])), Blk(Tid(691, "%000002b3"), - Attrs([Attr("address","0x6D8")]), Phis([]), Defs([Def(Tid(694, "%000002b6"), - Attrs([Attr("address","0x6D8"), Attr("insn","adrp x0, #65536")]), - Var("R0",Imm(64)), Int(65536,64)), Def(Tid(701, "%000002bd"), - Attrs([Attr("address","0x6DC"), Attr("insn","ldr x0, [x0, #0xfc8]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(4040,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(707, "%000002c3"), Attrs([Attr("address","0x6E0"), -Attr("insn","cbz x0, #0x10")]), EQ(Var("R0",Imm(64)),Int(0,64)), -Direct(Tid(705, "%000002c1"))), Goto(Tid(1_361, "%00000551"), Attrs([]), - Int(1,1), Direct(Tid(730, "%000002da")))])), Blk(Tid(730, "%000002da"), - Attrs([Attr("address","0x6E4")]), Phis([]), Defs([Def(Tid(733, "%000002dd"), - Attrs([Attr("address","0x6E4"), Attr("insn","adrp x0, #69632")]), - Var("R0",Imm(64)), Int(69632,64)), Def(Tid(740, "%000002e4"), - Attrs([Attr("address","0x6E8"), Attr("insn","ldr x0, [x0, #0x28]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(40,64)),LittleEndian(),64)), -Def(Tid(745, "%000002e9"), Attrs([Attr("address","0x6EC"), -Attr("insn","bl #-0x11c")]), Var("R30",Imm(64)), Int(1776,64))]), -Jmps([Call(Tid(748, "%000002ec"), Attrs([Attr("address","0x6EC"), -Attr("insn","bl #-0x11c")]), Int(1,1), -(Direct(Tid(1_320, "@__cxa_finalize")),Direct(Tid(705, "%000002c1"))))])), -Blk(Tid(705, "%000002c1"), Attrs([Attr("address","0x6F0")]), Phis([]), -Defs([Def(Tid(713, "%000002c9"), Attrs([Attr("address","0x6F0"), -Attr("insn","bl #-0xa0")]), Var("R30",Imm(64)), Int(1780,64))]), -Jmps([Call(Tid(715, "%000002cb"), Attrs([Attr("address","0x6F0"), -Attr("insn","bl #-0xa0")]), Int(1,1), -(Direct(Tid(1_334, "@deregister_tm_clones")),Direct(Tid(717, "%000002cd"))))])), -Blk(Tid(717, "%000002cd"), Attrs([Attr("address","0x6F4")]), Phis([]), -Defs([Def(Tid(720, "%000002d0"), Attrs([Attr("address","0x6F4"), -Attr("insn","mov w0, #0x1")]), Var("R0",Imm(64)), Int(1,64)), -Def(Tid(728, "%000002d8"), Attrs([Attr("address","0x6F8"), -Attr("insn","strb w0, [x19, #0x30]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R19",Imm(64)),Int(48,64)),Extract(7,0,Var("R0",Imm(64))),LittleEndian(),8))]), -Jmps([Goto(Tid(1_362, "%00000552"), Attrs([]), Int(1,1), -Direct(Tid(645, "%00000285")))])), Blk(Tid(645, "%00000285"), - Attrs([Attr("address","0x6FC")]), Phis([]), Defs([Def(Tid(655, "%0000028f"), - Attrs([Attr("address","0x6FC"), Attr("insn","ldr x19, [sp, #0x10]")]), - Var("R19",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(16,64)),LittleEndian(),64)), -Def(Tid(662, "%00000296"), Attrs([Attr("address","0x700"), -Attr("insn","ldp x29, x30, [sp], #0x20")]), Var("R29",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(667, "%0000029b"), Attrs([Attr("address","0x700"), -Attr("insn","ldp x29, x30, [sp], #0x20")]), Var("R30",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(671, "%0000029f"), Attrs([Attr("address","0x700"), -Attr("insn","ldp x29, x30, [sp], #0x20")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(32,64)))]), Jmps([Call(Tid(676, "%000002a4"), - Attrs([Attr("address","0x704"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), Sub(Tid(1_325, "@__libc_start_main"), - Attrs([Attr("c.proto","signed (*)(signed (*)(signed , char** , char** );* main, signed , char** , \nvoid* auxv)"), -Attr("address","0x5C0"), Attr("stub","()")]), "__libc_start_main", - Args([Arg(Tid(1_373, "%0000055d"), - Attrs([Attr("c.layout","**[ : 64]"), -Attr("c.data","Top:u64 ptr ptr"), -Attr("c.type","signed (*)(signed , char** , char** );*")]), - Var("__libc_start_main_main",Imm(64)), Var("R0",Imm(64)), In()), -Arg(Tid(1_374, "%0000055e"), Attrs([Attr("c.layout","[signed : 32]"), -Attr("c.data","Top:u32"), Attr("c.type","signed")]), - Var("__libc_start_main_arg2",Imm(32)), LOW(32,Var("R1",Imm(64))), In()), -Arg(Tid(1_375, "%0000055f"), Attrs([Attr("c.layout","**[char : 8]"), -Attr("c.data","Top:u8 ptr ptr"), Attr("c.type","char**")]), - Var("__libc_start_main_arg3",Imm(64)), Var("R2",Imm(64)), Both()), -Arg(Tid(1_376, "%00000560"), Attrs([Attr("c.layout","*[ : 8]"), -Attr("c.data","{} ptr"), Attr("c.type","void*")]), - Var("__libc_start_main_auxv",Imm(64)), Var("R3",Imm(64)), Both()), -Arg(Tid(1_377, "%00000561"), Attrs([Attr("c.layout","[signed : 32]"), -Attr("c.data","Top:u32"), Attr("c.type","signed")]), - Var("__libc_start_main_result",Imm(32)), LOW(32,Var("R0",Imm(64))), -Out())]), Blks([Blk(Tid(427, "@__libc_start_main"), - Attrs([Attr("address","0x5C0")]), Phis([]), Defs([Def(Tid(972, "%000003cc"), - Attrs([Attr("address","0x5C0"), Attr("insn","adrp x16, #69632")]), - Var("R16",Imm(64)), Int(69632,64)), Def(Tid(979, "%000003d3"), - Attrs([Attr("address","0x5C4"), Attr("insn","ldr x17, [x16]")]), - Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R16",Imm(64)),LittleEndian(),64)), -Def(Tid(985, "%000003d9"), Attrs([Attr("address","0x5C8"), -Attr("insn","add x16, x16, #0x0")]), Var("R16",Imm(64)), -Var("R16",Imm(64)))]), Jmps([Call(Tid(990, "%000003de"), - Attrs([Attr("address","0x5CC"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), Sub(Tid(1_326, "@_fini"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x718")]), - "_fini", Args([Arg(Tid(1_378, "%00000562"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("_fini_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(31, "@_fini"), - Attrs([Attr("address","0x718")]), Phis([]), Defs([Def(Tid(37, "%00000025"), - Attrs([Attr("address","0x71C"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("#0",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(18446744073709551600,64))), -Def(Tid(43, "%0000002b"), Attrs([Attr("address","0x71C"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("#0",Imm(64)),Var("R29",Imm(64)),LittleEndian(),64)), -Def(Tid(49, "%00000031"), Attrs([Attr("address","0x71C"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("#0",Imm(64)),Int(8,64)),Var("R30",Imm(64)),LittleEndian(),64)), -Def(Tid(53, "%00000035"), Attrs([Attr("address","0x71C"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("R31",Imm(64)), -Var("#0",Imm(64))), Def(Tid(59, "%0000003b"), Attrs([Attr("address","0x720"), -Attr("insn","mov x29, sp")]), Var("R29",Imm(64)), Var("R31",Imm(64))), -Def(Tid(66, "%00000042"), Attrs([Attr("address","0x724"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R29",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(71, "%00000047"), Attrs([Attr("address","0x724"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R30",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(75, "%0000004b"), Attrs([Attr("address","0x724"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(16,64)))]), Jmps([Call(Tid(80, "%00000050"), - Attrs([Attr("address","0x728"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), Sub(Tid(1_327, "@_init"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x580")]), - "_init", Args([Arg(Tid(1_379, "%00000563"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("_init_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(1_161, "@_init"), - Attrs([Attr("address","0x580")]), Phis([]), -Defs([Def(Tid(1_167, "%0000048f"), Attrs([Attr("address","0x584"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("#5",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(18446744073709551600,64))), -Def(Tid(1_173, "%00000495"), Attrs([Attr("address","0x584"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("#5",Imm(64)),Var("R29",Imm(64)),LittleEndian(),64)), -Def(Tid(1_179, "%0000049b"), Attrs([Attr("address","0x584"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("#5",Imm(64)),Int(8,64)),Var("R30",Imm(64)),LittleEndian(),64)), -Def(Tid(1_183, "%0000049f"), Attrs([Attr("address","0x584"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("R31",Imm(64)), -Var("#5",Imm(64))), Def(Tid(1_189, "%000004a5"), - Attrs([Attr("address","0x588"), Attr("insn","mov x29, sp")]), - Var("R29",Imm(64)), Var("R31",Imm(64))), Def(Tid(1_194, "%000004aa"), - Attrs([Attr("address","0x58C"), Attr("insn","bl #0xa8")]), - Var("R30",Imm(64)), Int(1424,64))]), Jmps([Call(Tid(1_196, "%000004ac"), - Attrs([Attr("address","0x58C"), Attr("insn","bl #0xa8")]), Int(1,1), -(Direct(Tid(1_332, "@call_weak_fn")),Direct(Tid(1_198, "%000004ae"))))])), -Blk(Tid(1_198, "%000004ae"), Attrs([Attr("address","0x590")]), Phis([]), -Defs([Def(Tid(1_203, "%000004b3"), Attrs([Attr("address","0x590"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R29",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(1_208, "%000004b8"), Attrs([Attr("address","0x590"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R30",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(1_212, "%000004bc"), Attrs([Attr("address","0x590"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(16,64)))]), Jmps([Call(Tid(1_217, "%000004c1"), - Attrs([Attr("address","0x594"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), Sub(Tid(1_328, "@_start"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x600"), -Attr("stub","()"), Attr("entry-point","()")]), "_start", - Args([Arg(Tid(1_380, "%00000564"), Attrs([Attr("c.layout","[signed : 32]"), -Attr("c.data","Top:u32"), Attr("c.type","signed")]), - Var("_start_result",Imm(32)), LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(364, "@_start"), Attrs([Attr("address","0x600")]), Phis([]), -Defs([Def(Tid(369, "%00000171"), Attrs([Attr("address","0x604"), -Attr("insn","mov x29, #0x0")]), Var("R29",Imm(64)), Int(0,64)), -Def(Tid(374, "%00000176"), Attrs([Attr("address","0x608"), -Attr("insn","mov x30, #0x0")]), Var("R30",Imm(64)), Int(0,64)), -Def(Tid(380, "%0000017c"), Attrs([Attr("address","0x60C"), -Attr("insn","mov x5, x0")]), Var("R5",Imm(64)), Var("R0",Imm(64))), -Def(Tid(387, "%00000183"), Attrs([Attr("address","0x610"), -Attr("insn","ldr x1, [sp]")]), Var("R1",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(393, "%00000189"), Attrs([Attr("address","0x614"), -Attr("insn","add x2, sp, #0x8")]), Var("R2",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(8,64))), Def(Tid(399, "%0000018f"), - Attrs([Attr("address","0x618"), Attr("insn","mov x6, sp")]), - Var("R6",Imm(64)), Var("R31",Imm(64))), Def(Tid(404, "%00000194"), - Attrs([Attr("address","0x61C"), Attr("insn","adrp x0, #65536")]), - Var("R0",Imm(64)), Int(65536,64)), Def(Tid(411, "%0000019b"), - Attrs([Attr("address","0x620"), Attr("insn","ldr x0, [x0, #0xfd8]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(4056,64)),LittleEndian(),64)), -Def(Tid(416, "%000001a0"), Attrs([Attr("address","0x624"), -Attr("insn","mov x3, #0x0")]), Var("R3",Imm(64)), Int(0,64)), -Def(Tid(421, "%000001a5"), Attrs([Attr("address","0x628"), -Attr("insn","mov x4, #0x0")]), Var("R4",Imm(64)), Int(0,64)), -Def(Tid(426, "%000001aa"), Attrs([Attr("address","0x62C"), -Attr("insn","bl #-0x6c")]), Var("R30",Imm(64)), Int(1584,64))]), -Jmps([Call(Tid(429, "%000001ad"), Attrs([Attr("address","0x62C"), -Attr("insn","bl #-0x6c")]), Int(1,1), -(Direct(Tid(1_325, "@__libc_start_main")),Direct(Tid(431, "%000001af"))))])), -Blk(Tid(431, "%000001af"), Attrs([Attr("address","0x630")]), Phis([]), -Defs([Def(Tid(434, "%000001b2"), Attrs([Attr("address","0x630"), -Attr("insn","bl #-0x40")]), Var("R30",Imm(64)), Int(1588,64))]), -Jmps([Call(Tid(437, "%000001b5"), Attrs([Attr("address","0x630"), -Attr("insn","bl #-0x40")]), Int(1,1), -(Direct(Tid(1_331, "@abort")),Direct(Tid(1_363, "%00000553"))))])), -Blk(Tid(1_363, "%00000553"), Attrs([]), Phis([]), Defs([]), -Jmps([Call(Tid(1_364, "%00000554"), Attrs([]), Int(1,1), -(Direct(Tid(1_332, "@call_weak_fn")),))]))])), Sub(Tid(1_331, "@abort"), - Attrs([Attr("noreturn","()"), Attr("c.proto","void (*)(void)"), -Attr("address","0x5F0"), Attr("stub","()")]), "abort", Args([]), -Blks([Blk(Tid(435, "@abort"), Attrs([Attr("address","0x5F0")]), Phis([]), -Defs([Def(Tid(1_038, "%0000040e"), Attrs([Attr("address","0x5F0"), -Attr("insn","adrp x16, #69632")]), Var("R16",Imm(64)), Int(69632,64)), -Def(Tid(1_045, "%00000415"), Attrs([Attr("address","0x5F4"), -Attr("insn","ldr x17, [x16, #0x18]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(24,64)),LittleEndian(),64)), -Def(Tid(1_051, "%0000041b"), Attrs([Attr("address","0x5F8"), -Attr("insn","add x16, x16, #0x18")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(24,64)))]), Jmps([Call(Tid(1_056, "%00000420"), - Attrs([Attr("address","0x5FC"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), Sub(Tid(1_332, "@call_weak_fn"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x634")]), - "call_weak_fn", Args([Arg(Tid(1_381, "%00000565"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("call_weak_fn_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(439, "@call_weak_fn"), - Attrs([Attr("address","0x634")]), Phis([]), Defs([Def(Tid(442, "%000001ba"), - Attrs([Attr("address","0x634"), Attr("insn","adrp x0, #65536")]), - Var("R0",Imm(64)), Int(65536,64)), Def(Tid(449, "%000001c1"), - Attrs([Attr("address","0x638"), Attr("insn","ldr x0, [x0, #0xfd0]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(4048,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(455, "%000001c7"), Attrs([Attr("address","0x63C"), -Attr("insn","cbz x0, #0x8")]), EQ(Var("R0",Imm(64)),Int(0,64)), -Direct(Tid(453, "%000001c5"))), Goto(Tid(1_365, "%00000555"), Attrs([]), - Int(1,1), Direct(Tid(810, "%0000032a")))])), Blk(Tid(453, "%000001c5"), - Attrs([Attr("address","0x644")]), Phis([]), Defs([]), -Jmps([Call(Tid(461, "%000001cd"), Attrs([Attr("address","0x644"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))])), -Blk(Tid(810, "%0000032a"), Attrs([Attr("address","0x640")]), Phis([]), -Defs([]), Jmps([Goto(Tid(813, "%0000032d"), Attrs([Attr("address","0x640"), -Attr("insn","b #-0x60")]), Int(1,1), Direct(Tid(811, "@__gmon_start__")))])), -Blk(Tid(811, "@__gmon_start__"), Attrs([Attr("address","0x5E0")]), Phis([]), -Defs([Def(Tid(1_016, "%000003f8"), Attrs([Attr("address","0x5E0"), -Attr("insn","adrp x16, #69632")]), Var("R16",Imm(64)), Int(69632,64)), -Def(Tid(1_023, "%000003ff"), Attrs([Attr("address","0x5E4"), -Attr("insn","ldr x17, [x16, #0x10]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(16,64)),LittleEndian(),64)), -Def(Tid(1_029, "%00000405"), Attrs([Attr("address","0x5E8"), -Attr("insn","add x16, x16, #0x10")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(16,64)))]), Jmps([Call(Tid(1_034, "%0000040a"), - Attrs([Attr("address","0x5EC"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), -Sub(Tid(1_334, "@deregister_tm_clones"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x650")]), - "deregister_tm_clones", Args([Arg(Tid(1_382, "%00000566"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("deregister_tm_clones_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(467, "@deregister_tm_clones"), - Attrs([Attr("address","0x650")]), Phis([]), Defs([Def(Tid(470, "%000001d6"), - Attrs([Attr("address","0x650"), Attr("insn","adrp x0, #69632")]), - Var("R0",Imm(64)), Int(69632,64)), Def(Tid(476, "%000001dc"), - Attrs([Attr("address","0x654"), Attr("insn","add x0, x0, #0x30")]), - Var("R0",Imm(64)), PLUS(Var("R0",Imm(64)),Int(48,64))), -Def(Tid(481, "%000001e1"), Attrs([Attr("address","0x658"), -Attr("insn","adrp x1, #69632")]), Var("R1",Imm(64)), Int(69632,64)), -Def(Tid(487, "%000001e7"), Attrs([Attr("address","0x65C"), -Attr("insn","add x1, x1, #0x30")]), Var("R1",Imm(64)), -PLUS(Var("R1",Imm(64)),Int(48,64))), Def(Tid(493, "%000001ed"), - Attrs([Attr("address","0x660"), Attr("insn","cmp x1, x0")]), - Var("#1",Imm(64)), NOT(Var("R0",Imm(64)))), Def(Tid(498, "%000001f2"), - Attrs([Attr("address","0x660"), Attr("insn","cmp x1, x0")]), - Var("#2",Imm(64)), PLUS(Var("R1",Imm(64)),NOT(Var("R0",Imm(64))))), -Def(Tid(504, "%000001f8"), Attrs([Attr("address","0x660"), -Attr("insn","cmp x1, x0")]), Var("VF",Imm(1)), -NEQ(SIGNED(65,PLUS(Var("#2",Imm(64)),Int(1,64))),PLUS(PLUS(SIGNED(65,Var("R1",Imm(64))),SIGNED(65,Var("#1",Imm(64)))),Int(1,65)))), -Def(Tid(510, "%000001fe"), Attrs([Attr("address","0x660"), -Attr("insn","cmp x1, x0")]), Var("CF",Imm(1)), -NEQ(UNSIGNED(65,PLUS(Var("#2",Imm(64)),Int(1,64))),PLUS(PLUS(UNSIGNED(65,Var("R1",Imm(64))),UNSIGNED(65,Var("#1",Imm(64)))),Int(1,65)))), -Def(Tid(514, "%00000202"), Attrs([Attr("address","0x660"), -Attr("insn","cmp x1, x0")]), Var("ZF",Imm(1)), -EQ(PLUS(Var("#2",Imm(64)),Int(1,64)),Int(0,64))), Def(Tid(518, "%00000206"), - Attrs([Attr("address","0x660"), Attr("insn","cmp x1, x0")]), - Var("NF",Imm(1)), Extract(63,63,PLUS(Var("#2",Imm(64)),Int(1,64))))]), -Jmps([Goto(Tid(524, "%0000020c"), Attrs([Attr("address","0x664"), -Attr("insn","b.eq #0x18")]), EQ(Var("ZF",Imm(1)),Int(1,1)), -Direct(Tid(522, "%0000020a"))), Goto(Tid(1_366, "%00000556"), Attrs([]), - Int(1,1), Direct(Tid(780, "%0000030c")))])), Blk(Tid(780, "%0000030c"), - Attrs([Attr("address","0x668")]), Phis([]), Defs([Def(Tid(783, "%0000030f"), - Attrs([Attr("address","0x668"), Attr("insn","adrp x1, #65536")]), - Var("R1",Imm(64)), Int(65536,64)), Def(Tid(790, "%00000316"), - Attrs([Attr("address","0x66C"), Attr("insn","ldr x1, [x1, #0xfc0]")]), - Var("R1",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R1",Imm(64)),Int(4032,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(795, "%0000031b"), Attrs([Attr("address","0x670"), -Attr("insn","cbz x1, #0xc")]), EQ(Var("R1",Imm(64)),Int(0,64)), -Direct(Tid(522, "%0000020a"))), Goto(Tid(1_367, "%00000557"), Attrs([]), - Int(1,1), Direct(Tid(799, "%0000031f")))])), Blk(Tid(522, "%0000020a"), - Attrs([Attr("address","0x67C")]), Phis([]), Defs([]), -Jmps([Call(Tid(530, "%00000212"), Attrs([Attr("address","0x67C"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))])), -Blk(Tid(799, "%0000031f"), Attrs([Attr("address","0x674")]), Phis([]), -Defs([Def(Tid(803, "%00000323"), Attrs([Attr("address","0x674"), -Attr("insn","mov x16, x1")]), Var("R16",Imm(64)), Var("R1",Imm(64)))]), -Jmps([Call(Tid(808, "%00000328"), Attrs([Attr("address","0x678"), -Attr("insn","br x16")]), Int(1,1), (Indirect(Var("R16",Imm(64))),))]))])), -Sub(Tid(1_337, "@frame_dummy"), Attrs([Attr("c.proto","signed (*)(void)"), -Attr("address","0x710")]), "frame_dummy", Args([Arg(Tid(1_383, "%00000567"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("frame_dummy_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(682, "@frame_dummy"), - Attrs([Attr("address","0x710")]), Phis([]), Defs([]), -Jmps([Call(Tid(684, "%000002ac"), Attrs([Attr("address","0x710"), -Attr("insn","b #-0x90")]), Int(1,1), -(Direct(Tid(1_339, "@register_tm_clones")),))]))])), Sub(Tid(1_338, "@main"), - Attrs([Attr("c.proto","signed (*)(signed argc, const char** argv)"), -Attr("address","0x714")]), "main", Args([Arg(Tid(1_384, "%00000568"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("main_argc",Imm(32)), -LOW(32,Var("R0",Imm(64))), In()), Arg(Tid(1_385, "%00000569"), - Attrs([Attr("c.layout","**[char : 8]"), Attr("c.data","Top:u8 ptr ptr"), -Attr("c.type"," const char**")]), Var("main_argv",Imm(64)), -Var("R1",Imm(64)), Both()), Arg(Tid(1_386, "%0000056a"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("main_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(686, "@main"), - Attrs([Attr("address","0x714")]), Phis([]), Defs([]), -Jmps([Call(Tid(689, "%000002b1"), Attrs([Attr("address","0x714"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))]))])), -Sub(Tid(1_339, "@register_tm_clones"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x680")]), - "register_tm_clones", Args([Arg(Tid(1_387, "%0000056b"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("register_tm_clones_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(532, "@register_tm_clones"), Attrs([Attr("address","0x680")]), - Phis([]), Defs([Def(Tid(535, "%00000217"), Attrs([Attr("address","0x680"), -Attr("insn","adrp x0, #69632")]), Var("R0",Imm(64)), Int(69632,64)), -Def(Tid(541, "%0000021d"), Attrs([Attr("address","0x684"), -Attr("insn","add x0, x0, #0x30")]), Var("R0",Imm(64)), -PLUS(Var("R0",Imm(64)),Int(48,64))), Def(Tid(546, "%00000222"), - Attrs([Attr("address","0x688"), Attr("insn","adrp x1, #69632")]), - Var("R1",Imm(64)), Int(69632,64)), Def(Tid(552, "%00000228"), - Attrs([Attr("address","0x68C"), Attr("insn","add x1, x1, #0x30")]), - Var("R1",Imm(64)), PLUS(Var("R1",Imm(64)),Int(48,64))), -Def(Tid(559, "%0000022f"), Attrs([Attr("address","0x690"), -Attr("insn","sub x1, x1, x0")]), Var("R1",Imm(64)), -PLUS(PLUS(Var("R1",Imm(64)),NOT(Var("R0",Imm(64)))),Int(1,64))), -Def(Tid(565, "%00000235"), Attrs([Attr("address","0x694"), -Attr("insn","lsr x2, x1, #63")]), Var("R2",Imm(64)), -Concat(Int(0,63),Extract(63,63,Var("R1",Imm(64))))), -Def(Tid(572, "%0000023c"), Attrs([Attr("address","0x698"), -Attr("insn","add x1, x2, x1, asr #3")]), Var("R1",Imm(64)), -PLUS(Var("R2",Imm(64)),ARSHIFT(Var("R1",Imm(64)),Int(3,3)))), -Def(Tid(578, "%00000242"), Attrs([Attr("address","0x69C"), -Attr("insn","asr x1, x1, #1")]), Var("R1",Imm(64)), -SIGNED(64,Extract(63,1,Var("R1",Imm(64)))))]), -Jmps([Goto(Tid(584, "%00000248"), Attrs([Attr("address","0x6A0"), -Attr("insn","cbz x1, #0x18")]), EQ(Var("R1",Imm(64)),Int(0,64)), -Direct(Tid(582, "%00000246"))), Goto(Tid(1_368, "%00000558"), Attrs([]), - Int(1,1), Direct(Tid(750, "%000002ee")))])), Blk(Tid(750, "%000002ee"), - Attrs([Attr("address","0x6A4")]), Phis([]), Defs([Def(Tid(753, "%000002f1"), - Attrs([Attr("address","0x6A4"), Attr("insn","adrp x2, #65536")]), - Var("R2",Imm(64)), Int(65536,64)), Def(Tid(760, "%000002f8"), - Attrs([Attr("address","0x6A8"), Attr("insn","ldr x2, [x2, #0xfe0]")]), - Var("R2",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R2",Imm(64)),Int(4064,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(765, "%000002fd"), Attrs([Attr("address","0x6AC"), -Attr("insn","cbz x2, #0xc")]), EQ(Var("R2",Imm(64)),Int(0,64)), -Direct(Tid(582, "%00000246"))), Goto(Tid(1_369, "%00000559"), Attrs([]), - Int(1,1), Direct(Tid(769, "%00000301")))])), Blk(Tid(582, "%00000246"), - Attrs([Attr("address","0x6B8")]), Phis([]), Defs([]), -Jmps([Call(Tid(590, "%0000024e"), Attrs([Attr("address","0x6B8"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))])), -Blk(Tid(769, "%00000301"), Attrs([Attr("address","0x6B0")]), Phis([]), -Defs([Def(Tid(773, "%00000305"), Attrs([Attr("address","0x6B0"), -Attr("insn","mov x16, x2")]), Var("R16",Imm(64)), Var("R2",Imm(64)))]), -Jmps([Call(Tid(778, "%0000030a"), Attrs([Attr("address","0x6B4"), -Attr("insn","br x16")]), Int(1,1), -(Indirect(Var("R16",Imm(64))),))]))]))]))) \ No newline at end of file diff --git a/src/test/correct/switch/clang_O2/switch.bir b/src/test/correct/switch/clang_O2/switch.bir deleted file mode 100644 index 9236541b4..000000000 --- a/src/test/correct/switch/clang_O2/switch.bir +++ /dev/null @@ -1,223 +0,0 @@ -0000055a: program -00000528: sub __cxa_finalize(__cxa_finalize_result) -0000055b: __cxa_finalize_result :: out u32 = low:32[R0] - -000002ea: -000003e2: R16 := 0x11000 -000003e9: R17 := mem[R16 + 8, el]:u64 -000003ef: R16 := R16 + 8 -000003f4: call R17 with noreturn - -00000529: sub __do_global_dtors_aux(__do_global_dtors_aux_result) -0000055c: __do_global_dtors_aux_result :: out u32 = low:32[R0] - -00000252: -00000256: #3 := R31 - 0x20 -0000025c: mem := mem with [#3, el]:u64 <- R29 -00000262: mem := mem with [#3 + 8, el]:u64 <- R30 -00000266: R31 := #3 -0000026c: R29 := R31 -00000274: mem := mem with [R31 + 0x10, el]:u64 <- R19 -00000279: R19 := 0x11000 -00000280: R0 := pad:64[mem[R19 + 0x30]] -00000287: when 31:0[R0] <> 0 goto %00000285 -00000550: goto %000002b3 - -000002b3: -000002b6: R0 := 0x10000 -000002bd: R0 := mem[R0 + 0xFC8, el]:u64 -000002c3: when R0 = 0 goto %000002c1 -00000551: goto %000002da - -000002da: -000002dd: R0 := 0x11000 -000002e4: R0 := mem[R0 + 0x28, el]:u64 -000002e9: R30 := 0x6F0 -000002ec: call @__cxa_finalize with return %000002c1 - -000002c1: -000002c9: R30 := 0x6F4 -000002cb: call @deregister_tm_clones with return %000002cd - -000002cd: -000002d0: R0 := 1 -000002d8: mem := mem with [R19 + 0x30] <- 7:0[R0] -00000552: goto %00000285 - -00000285: -0000028f: R19 := mem[R31 + 0x10, el]:u64 -00000296: R29 := mem[R31, el]:u64 -0000029b: R30 := mem[R31 + 8, el]:u64 -0000029f: R31 := R31 + 0x20 -000002a4: call R30 with noreturn - -0000052d: sub __libc_start_main(__libc_start_main_main, __libc_start_main_arg2, __libc_start_main_arg3, __libc_start_main_auxv, __libc_start_main_result) -0000055d: __libc_start_main_main :: in u64 = R0 -0000055e: __libc_start_main_arg2 :: in u32 = low:32[R1] -0000055f: __libc_start_main_arg3 :: in out u64 = R2 -00000560: __libc_start_main_auxv :: in out u64 = R3 -00000561: __libc_start_main_result :: out u32 = low:32[R0] - -000001ab: -000003cc: R16 := 0x11000 -000003d3: R17 := mem[R16, el]:u64 -000003d9: R16 := R16 -000003de: call R17 with noreturn - -0000052e: sub _fini(_fini_result) -00000562: _fini_result :: out u32 = low:32[R0] - -0000001f: -00000025: #0 := R31 - 0x10 -0000002b: mem := mem with [#0, el]:u64 <- R29 -00000031: mem := mem with [#0 + 8, el]:u64 <- R30 -00000035: R31 := #0 -0000003b: R29 := R31 -00000042: R29 := mem[R31, el]:u64 -00000047: R30 := mem[R31 + 8, el]:u64 -0000004b: R31 := R31 + 0x10 -00000050: call R30 with noreturn - -0000052f: sub _init(_init_result) -00000563: _init_result :: out u32 = low:32[R0] - -00000489: -0000048f: #5 := R31 - 0x10 -00000495: mem := mem with [#5, el]:u64 <- R29 -0000049b: mem := mem with [#5 + 8, el]:u64 <- R30 -0000049f: R31 := #5 -000004a5: R29 := R31 -000004aa: R30 := 0x590 -000004ac: call @call_weak_fn with return %000004ae - -000004ae: -000004b3: R29 := mem[R31, el]:u64 -000004b8: R30 := mem[R31 + 8, el]:u64 -000004bc: R31 := R31 + 0x10 -000004c1: call R30 with noreturn - -00000530: sub _start(_start_result) -00000564: _start_result :: out u32 = low:32[R0] - -0000016c: -00000171: R29 := 0 -00000176: R30 := 0 -0000017c: R5 := R0 -00000183: R1 := mem[R31, el]:u64 -00000189: R2 := R31 + 8 -0000018f: R6 := R31 -00000194: R0 := 0x10000 -0000019b: R0 := mem[R0 + 0xFD8, el]:u64 -000001a0: R3 := 0 -000001a5: R4 := 0 -000001aa: R30 := 0x630 -000001ad: call @__libc_start_main with return %000001af - -000001af: -000001b2: R30 := 0x634 -000001b5: call @abort with return %00000553 - -00000553: -00000554: call @call_weak_fn with noreturn - -00000533: sub abort() - - -000001b3: -0000040e: R16 := 0x11000 -00000415: R17 := mem[R16 + 0x18, el]:u64 -0000041b: R16 := R16 + 0x18 -00000420: call R17 with noreturn - -00000534: sub call_weak_fn(call_weak_fn_result) -00000565: call_weak_fn_result :: out u32 = low:32[R0] - -000001b7: -000001ba: R0 := 0x10000 -000001c1: R0 := mem[R0 + 0xFD0, el]:u64 -000001c7: when R0 = 0 goto %000001c5 -00000555: goto %0000032a - -000001c5: -000001cd: call R30 with noreturn - -0000032a: -0000032d: goto @__gmon_start__ - -0000032b: -000003f8: R16 := 0x11000 -000003ff: R17 := mem[R16 + 0x10, el]:u64 -00000405: R16 := R16 + 0x10 -0000040a: call R17 with noreturn - -00000536: sub deregister_tm_clones(deregister_tm_clones_result) -00000566: deregister_tm_clones_result :: out u32 = low:32[R0] - -000001d3: -000001d6: R0 := 0x11000 -000001dc: R0 := R0 + 0x30 -000001e1: R1 := 0x11000 -000001e7: R1 := R1 + 0x30 -000001ed: #1 := ~R0 -000001f2: #2 := R1 + ~R0 -000001f8: VF := extend:65[#2 + 1] <> extend:65[R1] + extend:65[#1] + 1 -000001fe: CF := pad:65[#2 + 1] <> pad:65[R1] + pad:65[#1] + 1 -00000202: ZF := #2 + 1 = 0 -00000206: NF := 63:63[#2 + 1] -0000020c: when ZF goto %0000020a -00000556: goto %0000030c - -0000030c: -0000030f: R1 := 0x10000 -00000316: R1 := mem[R1 + 0xFC0, el]:u64 -0000031b: when R1 = 0 goto %0000020a -00000557: goto %0000031f - -0000020a: -00000212: call R30 with noreturn - -0000031f: -00000323: R16 := R1 -00000328: call R16 with noreturn - -00000539: sub frame_dummy(frame_dummy_result) -00000567: frame_dummy_result :: out u32 = low:32[R0] - -000002aa: -000002ac: call @register_tm_clones with noreturn - -0000053a: sub main(main_argc, main_argv, main_result) -00000568: main_argc :: in u32 = low:32[R0] -00000569: main_argv :: in out u64 = R1 -0000056a: main_result :: out u32 = low:32[R0] - -000002ae: -000002b1: call R30 with noreturn - -0000053b: sub register_tm_clones(register_tm_clones_result) -0000056b: register_tm_clones_result :: out u32 = low:32[R0] - -00000214: -00000217: R0 := 0x11000 -0000021d: R0 := R0 + 0x30 -00000222: R1 := 0x11000 -00000228: R1 := R1 + 0x30 -0000022f: R1 := R1 + ~R0 + 1 -00000235: R2 := 0.63:63[R1] -0000023c: R1 := R2 + (R1 ~>> 3) -00000242: R1 := extend:64[63:1[R1]] -00000248: when R1 = 0 goto %00000246 -00000558: goto %000002ee - -000002ee: -000002f1: R2 := 0x10000 -000002f8: R2 := mem[R2 + 0xFE0, el]:u64 -000002fd: when R2 = 0 goto %00000246 -00000559: goto %00000301 - -00000246: -0000024e: call R30 with noreturn - -00000301: -00000305: R16 := R2 -0000030a: call R16 with noreturn diff --git a/src/test/correct/switch/clang_O2/switch.expected b/src/test/correct/switch/clang_O2/switch.expected index c0c58522f..cfbb65779 100644 --- a/src/test/correct/switch/clang_O2/switch.expected +++ b/src/test/correct/switch/clang_O2/switch.expected @@ -1,7 +1,7 @@ var {:extern} Gamma_mem: [bv64]bool; var {:extern} mem: [bv64]bv8; const {:extern} $_IO_stdin_used_addr: bv64; -axiom ($_IO_stdin_used_addr == 1836bv64); +axiom ($_IO_stdin_used_addr == 2220bv64); function {:extern} {:bvbuiltin "bvadd"} bvadd64(bv64, bv64) returns (bv64); function {:extern} memory_load32_le(memory: [bv64]bv8, index: bv64) returns (bv32) { (memory[bvadd64(index, 3bv64)] ++ (memory[bvadd64(index, 2bv64)] ++ (memory[bvadd64(index, 1bv64)] ++ memory[index]))) @@ -15,11 +15,11 @@ procedure {:extern} rely(); modifies Gamma_mem, mem; ensures (Gamma_mem == old(Gamma_mem)); ensures (mem == old(mem)); - free ensures (memory_load32_le(mem, 1836bv64) == 131073bv32); - free ensures (memory_load64_le(mem, 69064bv64) == 1808bv64); - free ensures (memory_load64_le(mem, 69072bv64) == 1728bv64); - free ensures (memory_load64_le(mem, 69592bv64) == 1812bv64); - free ensures (memory_load64_le(mem, 69672bv64) == 69672bv64); + free ensures (memory_load32_le(mem, 2220bv64) == 131073bv32); + free ensures (memory_load64_le(mem, 130440bv64) == 2192bv64); + free ensures (memory_load64_le(mem, 130448bv64) == 2112bv64); + free ensures (memory_load64_le(mem, 131056bv64) == 2196bv64); + free ensures (memory_load64_le(mem, 131080bv64) == 131080bv64); procedure {:extern} rely_transitive(); modifies Gamma_mem, mem; @@ -37,27 +37,27 @@ procedure {:extern} rely_reflexive(); procedure {:extern} guarantee_reflexive(); modifies Gamma_mem, mem; -procedure main_1812(); - free requires (memory_load64_le(mem, 69664bv64) == 0bv64); - free requires (memory_load64_le(mem, 69672bv64) == 69672bv64); - free requires (memory_load32_le(mem, 1836bv64) == 131073bv32); - free requires (memory_load64_le(mem, 69064bv64) == 1808bv64); - free requires (memory_load64_le(mem, 69072bv64) == 1728bv64); - free requires (memory_load64_le(mem, 69592bv64) == 1812bv64); - free requires (memory_load64_le(mem, 69672bv64) == 69672bv64); - free ensures (memory_load32_le(mem, 1836bv64) == 131073bv32); - free ensures (memory_load64_le(mem, 69064bv64) == 1808bv64); - free ensures (memory_load64_le(mem, 69072bv64) == 1728bv64); - free ensures (memory_load64_le(mem, 69592bv64) == 1812bv64); - free ensures (memory_load64_le(mem, 69672bv64) == 69672bv64); - -implementation main_1812() +procedure main(); + free requires (memory_load64_le(mem, 131072bv64) == 0bv64); + free requires (memory_load64_le(mem, 131080bv64) == 131080bv64); + free requires (memory_load32_le(mem, 2220bv64) == 131073bv32); + free requires (memory_load64_le(mem, 130440bv64) == 2192bv64); + free requires (memory_load64_le(mem, 130448bv64) == 2112bv64); + free requires (memory_load64_le(mem, 131056bv64) == 2196bv64); + free requires (memory_load64_le(mem, 131080bv64) == 131080bv64); + free ensures (memory_load32_le(mem, 2220bv64) == 131073bv32); + free ensures (memory_load64_le(mem, 130440bv64) == 2192bv64); + free ensures (memory_load64_le(mem, 130448bv64) == 2112bv64); + free ensures (memory_load64_le(mem, 131056bv64) == 2196bv64); + free ensures (memory_load64_le(mem, 131080bv64) == 131080bv64); + +implementation main() { lmain: assume {:captureState "lmain"} true; - goto main_1812_basil_return; - main_1812_basil_return: - assume {:captureState "main_1812_basil_return"} true; + goto main_basil_return; + main_basil_return: + assume {:captureState "main_basil_return"} true; return; } diff --git a/src/test/correct/switch/clang_O2/switch.gts b/src/test/correct/switch/clang_O2/switch.gts deleted file mode 100644 index 4401670cb..000000000 Binary files a/src/test/correct/switch/clang_O2/switch.gts and /dev/null differ diff --git a/src/test/correct/switch/clang_O2/switch.md5sum b/src/test/correct/switch/clang_O2/switch.md5sum new file mode 100644 index 000000000..ce08a3435 --- /dev/null +++ b/src/test/correct/switch/clang_O2/switch.md5sum @@ -0,0 +1,5 @@ +0c158d2a54aaa9a49a8e3968ad5cc9c6 correct/switch/clang_O2/a.out +b28463c86ef5439226bf2b8bd74172e2 correct/switch/clang_O2/switch.adt +56c9abd9494cbc9dd6e69111f29812ad correct/switch/clang_O2/switch.bir +e891cdb3f87d0879b0327263ec3cfb94 correct/switch/clang_O2/switch.relf +c60da4d0b8944f64a0b65822f9862b3e correct/switch/clang_O2/switch.gts diff --git a/src/test/correct/switch/clang_O2/switch.relf b/src/test/correct/switch/clang_O2/switch.relf deleted file mode 100644 index 62e572618..000000000 --- a/src/test/correct/switch/clang_O2/switch.relf +++ /dev/null @@ -1,121 +0,0 @@ - -Relocation section '.rela.dyn' at offset 0x460 contains 8 entries: - Offset Info Type Symbol's Value Symbol's Name + Addend -0000000000010dc8 0000000000000403 R_AARCH64_RELATIVE 710 -0000000000010dd0 0000000000000403 R_AARCH64_RELATIVE 6c0 -0000000000010fd8 0000000000000403 R_AARCH64_RELATIVE 714 -0000000000011028 0000000000000403 R_AARCH64_RELATIVE 11028 -0000000000010fc0 0000000400000401 R_AARCH64_GLOB_DAT 0000000000000000 _ITM_deregisterTMCloneTable + 0 -0000000000010fc8 0000000500000401 R_AARCH64_GLOB_DAT 0000000000000000 __cxa_finalize@GLIBC_2.17 + 0 -0000000000010fd0 0000000600000401 R_AARCH64_GLOB_DAT 0000000000000000 __gmon_start__ + 0 -0000000000010fe0 0000000800000401 R_AARCH64_GLOB_DAT 0000000000000000 _ITM_registerTMCloneTable + 0 - -Relocation section '.rela.plt' at offset 0x520 contains 4 entries: - Offset Info Type Symbol's Value Symbol's Name + Addend -0000000000011000 0000000300000402 R_AARCH64_JUMP_SLOT 0000000000000000 __libc_start_main@GLIBC_2.34 + 0 -0000000000011008 0000000500000402 R_AARCH64_JUMP_SLOT 0000000000000000 __cxa_finalize@GLIBC_2.17 + 0 -0000000000011010 0000000600000402 R_AARCH64_JUMP_SLOT 0000000000000000 __gmon_start__ + 0 -0000000000011018 0000000700000402 R_AARCH64_JUMP_SLOT 0000000000000000 abort@GLIBC_2.17 + 0 - -Symbol table '.dynsym' contains 9 entries: - Num: Value Size Type Bind Vis Ndx Name - 0: 0000000000000000 0 NOTYPE LOCAL DEFAULT UND - 1: 0000000000000580 0 SECTION LOCAL DEFAULT 11 .init - 2: 0000000000011020 0 SECTION LOCAL DEFAULT 23 .data - 3: 0000000000000000 0 FUNC GLOBAL DEFAULT UND __libc_start_main@GLIBC_2.34 (2) - 4: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_deregisterTMCloneTable - 5: 0000000000000000 0 FUNC WEAK DEFAULT UND __cxa_finalize@GLIBC_2.17 (3) - 6: 0000000000000000 0 NOTYPE WEAK DEFAULT UND __gmon_start__ - 7: 0000000000000000 0 FUNC GLOBAL DEFAULT UND abort@GLIBC_2.17 (3) - 8: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_registerTMCloneTable - -Symbol table '.symtab' contains 88 entries: - Num: Value Size Type Bind Vis Ndx Name - 0: 0000000000000000 0 NOTYPE LOCAL DEFAULT UND - 1: 0000000000000238 0 SECTION LOCAL DEFAULT 1 .interp - 2: 0000000000000254 0 SECTION LOCAL DEFAULT 2 .note.gnu.build-id - 3: 0000000000000278 0 SECTION LOCAL DEFAULT 3 .note.ABI-tag - 4: 0000000000000298 0 SECTION LOCAL DEFAULT 4 .gnu.hash - 5: 00000000000002b8 0 SECTION LOCAL DEFAULT 5 .dynsym - 6: 0000000000000390 0 SECTION LOCAL DEFAULT 6 .dynstr - 7: 000000000000041e 0 SECTION LOCAL DEFAULT 7 .gnu.version - 8: 0000000000000430 0 SECTION LOCAL DEFAULT 8 .gnu.version_r - 9: 0000000000000460 0 SECTION LOCAL DEFAULT 9 .rela.dyn - 10: 0000000000000520 0 SECTION LOCAL DEFAULT 10 .rela.plt - 11: 0000000000000580 0 SECTION LOCAL DEFAULT 11 .init - 12: 00000000000005a0 0 SECTION LOCAL DEFAULT 12 .plt - 13: 0000000000000600 0 SECTION LOCAL DEFAULT 13 .text - 14: 0000000000000718 0 SECTION LOCAL DEFAULT 14 .fini - 15: 000000000000072c 0 SECTION LOCAL DEFAULT 15 .rodata - 16: 0000000000000730 0 SECTION LOCAL DEFAULT 16 .eh_frame_hdr - 17: 0000000000000770 0 SECTION LOCAL DEFAULT 17 .eh_frame - 18: 0000000000010dc8 0 SECTION LOCAL DEFAULT 18 .init_array - 19: 0000000000010dd0 0 SECTION LOCAL DEFAULT 19 .fini_array - 20: 0000000000010dd8 0 SECTION LOCAL DEFAULT 20 .dynamic - 21: 0000000000010fb8 0 SECTION LOCAL DEFAULT 21 .got - 22: 0000000000010fe8 0 SECTION LOCAL DEFAULT 22 .got.plt - 23: 0000000000011020 0 SECTION LOCAL DEFAULT 23 .data - 24: 0000000000011030 0 SECTION LOCAL DEFAULT 24 .bss - 25: 0000000000000000 0 SECTION LOCAL DEFAULT 25 .comment - 26: 0000000000000000 0 FILE LOCAL DEFAULT ABS Scrt1.o - 27: 0000000000000278 0 NOTYPE LOCAL DEFAULT 3 $d - 28: 0000000000000278 32 OBJECT LOCAL DEFAULT 3 __abi_tag - 29: 0000000000000600 0 NOTYPE LOCAL DEFAULT 13 $x - 30: 0000000000000784 0 NOTYPE LOCAL DEFAULT 17 $d - 31: 000000000000072c 0 NOTYPE LOCAL DEFAULT 15 $d - 32: 0000000000000000 0 FILE LOCAL DEFAULT ABS crti.o - 33: 0000000000000634 0 NOTYPE LOCAL DEFAULT 13 $x - 34: 0000000000000634 20 FUNC LOCAL DEFAULT 13 call_weak_fn - 35: 0000000000000580 0 NOTYPE LOCAL DEFAULT 11 $x - 36: 0000000000000718 0 NOTYPE LOCAL DEFAULT 14 $x - 37: 0000000000000000 0 FILE LOCAL DEFAULT ABS crtn.o - 38: 0000000000000590 0 NOTYPE LOCAL DEFAULT 11 $x - 39: 0000000000000724 0 NOTYPE LOCAL DEFAULT 14 $x - 40: 0000000000000000 0 FILE LOCAL DEFAULT ABS crtstuff.c - 41: 0000000000000650 0 NOTYPE LOCAL DEFAULT 13 $x - 42: 0000000000000650 0 FUNC LOCAL DEFAULT 13 deregister_tm_clones - 43: 0000000000000680 0 FUNC LOCAL DEFAULT 13 register_tm_clones - 44: 0000000000011028 0 NOTYPE LOCAL DEFAULT 23 $d - 45: 00000000000006c0 0 FUNC LOCAL DEFAULT 13 __do_global_dtors_aux - 46: 0000000000011030 1 OBJECT LOCAL DEFAULT 24 completed.0 - 47: 0000000000010dd0 0 NOTYPE LOCAL DEFAULT 19 $d - 48: 0000000000010dd0 0 OBJECT LOCAL DEFAULT 19 __do_global_dtors_aux_fini_array_entry - 49: 0000000000000710 0 FUNC LOCAL DEFAULT 13 frame_dummy - 50: 0000000000010dc8 0 NOTYPE LOCAL DEFAULT 18 $d - 51: 0000000000010dc8 0 OBJECT LOCAL DEFAULT 18 __frame_dummy_init_array_entry - 52: 0000000000000798 0 NOTYPE LOCAL DEFAULT 17 $d - 53: 0000000000011030 0 NOTYPE LOCAL DEFAULT 24 $d - 54: 0000000000000000 0 FILE LOCAL DEFAULT ABS switch.c - 55: 0000000000000714 0 NOTYPE LOCAL DEFAULT 13 $x.0 - 56: 000000000000002a 0 NOTYPE LOCAL DEFAULT 25 $d.1 - 57: 00000000000007f8 0 NOTYPE LOCAL DEFAULT 17 $d.2 - 58: 0000000000000000 0 FILE LOCAL DEFAULT ABS crtstuff.c - 59: 0000000000000820 0 NOTYPE LOCAL DEFAULT 17 $d - 60: 0000000000000820 0 OBJECT LOCAL DEFAULT 17 __FRAME_END__ - 61: 0000000000000000 0 FILE LOCAL DEFAULT ABS - 62: 0000000000010dd8 0 OBJECT LOCAL DEFAULT ABS _DYNAMIC - 63: 0000000000000730 0 NOTYPE LOCAL DEFAULT 16 __GNU_EH_FRAME_HDR - 64: 0000000000010fb8 0 OBJECT LOCAL DEFAULT ABS _GLOBAL_OFFSET_TABLE_ - 65: 00000000000005a0 0 NOTYPE LOCAL DEFAULT 12 $x - 66: 0000000000000000 0 FUNC GLOBAL DEFAULT UND __libc_start_main@GLIBC_2.34 - 67: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_deregisterTMCloneTable - 68: 0000000000011020 0 NOTYPE WEAK DEFAULT 23 data_start - 69: 0000000000011030 0 NOTYPE GLOBAL DEFAULT 24 __bss_start__ - 70: 0000000000000000 0 FUNC WEAK DEFAULT UND __cxa_finalize@GLIBC_2.17 - 71: 0000000000011038 0 NOTYPE GLOBAL DEFAULT 24 _bss_end__ - 72: 0000000000011030 0 NOTYPE GLOBAL DEFAULT 23 _edata - 73: 0000000000000718 0 FUNC GLOBAL HIDDEN 14 _fini - 74: 0000000000011038 0 NOTYPE GLOBAL DEFAULT 24 __bss_end__ - 75: 0000000000011020 0 NOTYPE GLOBAL DEFAULT 23 __data_start - 76: 0000000000000000 0 NOTYPE WEAK DEFAULT UND __gmon_start__ - 77: 0000000000011028 0 OBJECT GLOBAL HIDDEN 23 __dso_handle - 78: 0000000000000000 0 FUNC GLOBAL DEFAULT UND abort@GLIBC_2.17 - 79: 000000000000072c 4 OBJECT GLOBAL DEFAULT 15 _IO_stdin_used - 80: 0000000000011038 0 NOTYPE GLOBAL DEFAULT 24 _end - 81: 0000000000000600 52 FUNC GLOBAL DEFAULT 13 _start - 82: 0000000000011038 0 NOTYPE GLOBAL DEFAULT 24 __end__ - 83: 0000000000011030 0 NOTYPE GLOBAL DEFAULT 24 __bss_start - 84: 0000000000000714 4 FUNC GLOBAL DEFAULT 13 main - 85: 0000000000011030 0 OBJECT GLOBAL HIDDEN 23 __TMC_END__ - 86: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_registerTMCloneTable - 87: 0000000000000580 0 FUNC GLOBAL HIDDEN 11 _init diff --git a/src/test/correct/switch/clang_O2/switch_gtirb.expected b/src/test/correct/switch/clang_O2/switch_gtirb.expected index 164fec3a2..a315dff87 100644 --- a/src/test/correct/switch/clang_O2/switch_gtirb.expected +++ b/src/test/correct/switch/clang_O2/switch_gtirb.expected @@ -1,7 +1,7 @@ var {:extern} Gamma_mem: [bv64]bool; var {:extern} mem: [bv64]bv8; const {:extern} $_IO_stdin_used_addr: bv64; -axiom ($_IO_stdin_used_addr == 1836bv64); +axiom ($_IO_stdin_used_addr == 2220bv64); function {:extern} {:bvbuiltin "bvadd"} bvadd64(bv64, bv64) returns (bv64); function {:extern} memory_load32_le(memory: [bv64]bv8, index: bv64) returns (bv32) { (memory[bvadd64(index, 3bv64)] ++ (memory[bvadd64(index, 2bv64)] ++ (memory[bvadd64(index, 1bv64)] ++ memory[index]))) @@ -15,11 +15,11 @@ procedure {:extern} rely(); modifies Gamma_mem, mem; ensures (Gamma_mem == old(Gamma_mem)); ensures (mem == old(mem)); - free ensures (memory_load32_le(mem, 1836bv64) == 131073bv32); - free ensures (memory_load64_le(mem, 69064bv64) == 1808bv64); - free ensures (memory_load64_le(mem, 69072bv64) == 1728bv64); - free ensures (memory_load64_le(mem, 69592bv64) == 1812bv64); - free ensures (memory_load64_le(mem, 69672bv64) == 69672bv64); + free ensures (memory_load32_le(mem, 2220bv64) == 131073bv32); + free ensures (memory_load64_le(mem, 130440bv64) == 2192bv64); + free ensures (memory_load64_le(mem, 130448bv64) == 2112bv64); + free ensures (memory_load64_le(mem, 131056bv64) == 2196bv64); + free ensures (memory_load64_le(mem, 131080bv64) == 131080bv64); procedure {:extern} rely_transitive(); modifies Gamma_mem, mem; @@ -37,27 +37,27 @@ procedure {:extern} rely_reflexive(); procedure {:extern} guarantee_reflexive(); modifies Gamma_mem, mem; -procedure main_1812(); - free requires (memory_load64_le(mem, 69664bv64) == 0bv64); - free requires (memory_load64_le(mem, 69672bv64) == 69672bv64); - free requires (memory_load32_le(mem, 1836bv64) == 131073bv32); - free requires (memory_load64_le(mem, 69064bv64) == 1808bv64); - free requires (memory_load64_le(mem, 69072bv64) == 1728bv64); - free requires (memory_load64_le(mem, 69592bv64) == 1812bv64); - free requires (memory_load64_le(mem, 69672bv64) == 69672bv64); - free ensures (memory_load32_le(mem, 1836bv64) == 131073bv32); - free ensures (memory_load64_le(mem, 69064bv64) == 1808bv64); - free ensures (memory_load64_le(mem, 69072bv64) == 1728bv64); - free ensures (memory_load64_le(mem, 69592bv64) == 1812bv64); - free ensures (memory_load64_le(mem, 69672bv64) == 69672bv64); - -implementation main_1812() +procedure main(); + free requires (memory_load64_le(mem, 131072bv64) == 0bv64); + free requires (memory_load64_le(mem, 131080bv64) == 131080bv64); + free requires (memory_load32_le(mem, 2220bv64) == 131073bv32); + free requires (memory_load64_le(mem, 130440bv64) == 2192bv64); + free requires (memory_load64_le(mem, 130448bv64) == 2112bv64); + free requires (memory_load64_le(mem, 131056bv64) == 2196bv64); + free requires (memory_load64_le(mem, 131080bv64) == 131080bv64); + free ensures (memory_load32_le(mem, 2220bv64) == 131073bv32); + free ensures (memory_load64_le(mem, 130440bv64) == 2192bv64); + free ensures (memory_load64_le(mem, 130448bv64) == 2112bv64); + free ensures (memory_load64_le(mem, 131056bv64) == 2196bv64); + free ensures (memory_load64_le(mem, 131080bv64) == 131080bv64); + +implementation main() { - main_1812__0__qfp8WI3CQQKrYS27mbga8Q: - assume {:captureState "main_1812__0__qfp8WI3CQQKrYS27mbga8Q"} true; - goto main_1812_basil_return; - main_1812_basil_return: - assume {:captureState "main_1812_basil_return"} true; + $main$__0__$cdQ2GS2~QhaOa7OUvPWMRQ: + assume {:captureState "$main$__0__$cdQ2GS2~QhaOa7OUvPWMRQ"} true; + goto main_basil_return; + main_basil_return: + assume {:captureState "main_basil_return"} true; return; } diff --git a/src/test/correct/switch/gcc/switch.adt b/src/test/correct/switch/gcc/switch.adt deleted file mode 100644 index 0d7a469a5..000000000 --- a/src/test/correct/switch/gcc/switch.adt +++ /dev/null @@ -1,565 +0,0 @@ -Project(Attrs([Attr("filename","\"gcc/switch.out\""), -Attr("image-specification","(declare abi (name str))\n(declare arch (name str))\n(declare base-address (addr int))\n(declare bias (off int))\n(declare bits (size int))\n(declare code-region (addr int) (size int) (off int))\n(declare code-start (addr int))\n(declare entry-point (addr int))\n(declare external-reference (addr int) (name str))\n(declare format (name str))\n(declare is-executable (flag bool))\n(declare is-little-endian (flag bool))\n(declare llvm:base-address (addr int))\n(declare llvm:code-entry (name str) (off int) (size int))\n(declare llvm:coff-import-library (name str))\n(declare llvm:coff-virtual-section-header (name str) (addr int) (size int))\n(declare llvm:elf-program-header (name str) (off int) (size int))\n(declare llvm:elf-program-header-flags (name str) (ld bool) (r bool) \n (w bool) (x bool))\n(declare llvm:elf-virtual-program-header (name str) (addr int) (size int))\n(declare llvm:entry-point (addr int))\n(declare llvm:macho-symbol (name str) (value int))\n(declare llvm:name-reference (at int) (name str))\n(declare llvm:relocation (at int) (addr int))\n(declare llvm:section-entry (name str) (addr int) (size int) (off int))\n(declare llvm:section-flags (name str) (r bool) (w bool) (x bool))\n(declare llvm:segment-command (name str) (off int) (size int))\n(declare llvm:segment-command-flags (name str) (r bool) (w bool) (x bool))\n(declare llvm:symbol-entry (name str) (addr int) (size int) (off int)\n (value int))\n(declare llvm:virtual-segment-command (name str) (addr int) (size int))\n(declare mapped (addr int) (size int) (off int))\n(declare named-region (addr int) (size int) (name str))\n(declare named-symbol (addr int) (name str))\n(declare require (name str))\n(declare section (addr int) (size int))\n(declare segment (addr int) (size int) (r bool) (w bool) (x bool))\n(declare subarch (name str))\n(declare symbol-chunk (addr int) (size int) (root int))\n(declare symbol-value (addr int) (value int))\n(declare system (name str))\n(declare vendor (name str))\n\n(abi unknown)\n(arch aarch64)\n(base-address 0)\n(bias 0)\n(bits 64)\n(code-region 1896 20 1896)\n(code-region 1536 360 1536)\n(code-region 1440 96 1440)\n(code-region 1408 24 1408)\n(code-start 1588)\n(code-start 1536)\n(code-start 1812)\n(entry-point 1536)\n(external-reference 69592 _ITM_deregisterTMCloneTable)\n(external-reference 69600 __cxa_finalize)\n(external-reference 69608 __gmon_start__)\n(external-reference 69624 _ITM_registerTMCloneTable)\n(external-reference 69552 __libc_start_main)\n(external-reference 69560 __cxa_finalize)\n(external-reference 69568 __gmon_start__)\n(external-reference 69576 abort)\n(format elf)\n(is-executable true)\n(is-little-endian true)\n(llvm:base-address 0)\n(llvm:code-entry abort 0 0)\n(llvm:code-entry __cxa_finalize 0 0)\n(llvm:code-entry __libc_start_main 0 0)\n(llvm:code-entry _init 1408 0)\n(llvm:code-entry main 1812 84)\n(llvm:code-entry _start 1536 52)\n(llvm:code-entry abort@GLIBC_2.17 0 0)\n(llvm:code-entry _fini 1896 0)\n(llvm:code-entry __cxa_finalize@GLIBC_2.17 0 0)\n(llvm:code-entry __libc_start_main@GLIBC_2.34 0 0)\n(llvm:code-entry frame_dummy 1808 0)\n(llvm:code-entry __do_global_dtors_aux 1728 0)\n(llvm:code-entry register_tm_clones 1664 0)\n(llvm:code-entry deregister_tm_clones 1616 0)\n(llvm:code-entry call_weak_fn 1588 20)\n(llvm:code-entry .fini 1896 20)\n(llvm:code-entry .text 1536 360)\n(llvm:code-entry .plt 1440 96)\n(llvm:code-entry .init 1408 24)\n(llvm:elf-program-header 08 3480 616)\n(llvm:elf-program-header 07 0 0)\n(llvm:elf-program-header 06 1920 60)\n(llvm:elf-program-header 05 596 68)\n(llvm:elf-program-header 04 3496 496)\n(llvm:elf-program-header 03 3480 632)\n(llvm:elf-program-header 02 0 2148)\n(llvm:elf-program-header 01 568 27)\n(llvm:elf-program-header 00 64 504)\n(llvm:elf-program-header-flags 08 false true false false)\n(llvm:elf-program-header-flags 07 false true true false)\n(llvm:elf-program-header-flags 06 false true false false)\n(llvm:elf-program-header-flags 05 false true false false)\n(llvm:elf-program-header-flags 04 false true true false)\n(llvm:elf-program-header-flags 03 true true true false)\n(llvm:elf-program-header-flags 02 true true false true)\n(llvm:elf-program-header-flags 01 false true false false)\n(llvm:elf-program-header-flags 00 false true false false)\n(llvm:elf-virtual-program-header 08 69016 616)\n(llvm:elf-virtual-program-header 07 0 0)\n(llvm:elf-virtual-program-header 06 1920 60)\n(llvm:elf-virtual-program-header 05 596 68)\n(llvm:elf-virtual-program-header 04 69032 496)\n(llvm:elf-virtual-program-header 03 69016 640)\n(llvm:elf-virtual-program-header 02 0 2148)\n(llvm:elf-virtual-program-header 01 568 27)\n(llvm:elf-virtual-program-header 00 64 504)\n(llvm:entry-point 1536)\n(llvm:name-reference 69576 abort)\n(llvm:name-reference 69568 __gmon_start__)\n(llvm:name-reference 69560 __cxa_finalize)\n(llvm:name-reference 69552 __libc_start_main)\n(llvm:name-reference 69624 _ITM_registerTMCloneTable)\n(llvm:name-reference 69608 __gmon_start__)\n(llvm:name-reference 69600 __cxa_finalize)\n(llvm:name-reference 69592 _ITM_deregisterTMCloneTable)\n(llvm:section-entry .shstrtab 0 250 6766)\n(llvm:section-entry .strtab 0 542 6224)\n(llvm:section-entry .symtab 0 2064 4160)\n(llvm:section-entry .comment 0 43 4112)\n(llvm:section-entry .bss 69648 8 4112)\n(llvm:section-entry .data 69632 16 4096)\n(llvm:section-entry .got 69528 104 3992)\n(llvm:section-entry .dynamic 69032 496 3496)\n(llvm:section-entry .fini_array 69024 8 3488)\n(llvm:section-entry .init_array 69016 8 3480)\n(llvm:section-entry .eh_frame 1984 164 1984)\n(llvm:section-entry .eh_frame_hdr 1920 60 1920)\n(llvm:section-entry .rodata 1916 4 1916)\n(llvm:section-entry .fini 1896 20 1896)\n(llvm:section-entry .text 1536 360 1536)\n(llvm:section-entry .plt 1440 96 1440)\n(llvm:section-entry .init 1408 24 1408)\n(llvm:section-entry .rela.plt 1312 96 1312)\n(llvm:section-entry .rela.dyn 1120 192 1120)\n(llvm:section-entry .gnu.version_r 1072 48 1072)\n(llvm:section-entry .gnu.version 1054 18 1054)\n(llvm:section-entry .dynstr 912 141 912)\n(llvm:section-entry .dynsym 696 216 696)\n(llvm:section-entry .gnu.hash 664 28 664)\n(llvm:section-entry .note.ABI-tag 632 32 632)\n(llvm:section-entry .note.gnu.build-id 596 36 596)\n(llvm:section-entry .interp 568 27 568)\n(llvm:section-flags .shstrtab true false false)\n(llvm:section-flags .strtab true false false)\n(llvm:section-flags .symtab true false false)\n(llvm:section-flags .comment true false false)\n(llvm:section-flags .bss true true false)\n(llvm:section-flags .data true true false)\n(llvm:section-flags .got true true false)\n(llvm:section-flags .dynamic true true false)\n(llvm:section-flags .fini_array true true false)\n(llvm:section-flags .init_array true true false)\n(llvm:section-flags .eh_frame true false false)\n(llvm:section-flags .eh_frame_hdr true false false)\n(llvm:section-flags .rodata true false false)\n(llvm:section-flags .fini true false true)\n(llvm:section-flags .text true false true)\n(llvm:section-flags .plt true false true)\n(llvm:section-flags .init true false true)\n(llvm:section-flags .rela.plt true false false)\n(llvm:section-flags .rela.dyn true false false)\n(llvm:section-flags .gnu.version_r true false false)\n(llvm:section-flags .gnu.version true false false)\n(llvm:section-flags .dynstr true false false)\n(llvm:section-flags .dynsym true false false)\n(llvm:section-flags .gnu.hash true false false)\n(llvm:section-flags .note.ABI-tag true false false)\n(llvm:section-flags .note.gnu.build-id true false false)\n(llvm:section-flags .interp true false false)\n(llvm:symbol-entry abort 0 0 0 0)\n(llvm:symbol-entry __cxa_finalize 0 0 0 0)\n(llvm:symbol-entry __libc_start_main 0 0 0 0)\n(llvm:symbol-entry _init 1408 0 1408 1408)\n(llvm:symbol-entry main 1812 84 1812 1812)\n(llvm:symbol-entry _start 1536 52 1536 1536)\n(llvm:symbol-entry abort@GLIBC_2.17 0 0 0 0)\n(llvm:symbol-entry _fini 1896 0 1896 1896)\n(llvm:symbol-entry __cxa_finalize@GLIBC_2.17 0 0 0 0)\n(llvm:symbol-entry __libc_start_main@GLIBC_2.34 0 0 0 0)\n(llvm:symbol-entry frame_dummy 1808 0 1808 1808)\n(llvm:symbol-entry __do_global_dtors_aux 1728 0 1728 1728)\n(llvm:symbol-entry register_tm_clones 1664 0 1664 1664)\n(llvm:symbol-entry deregister_tm_clones 1616 0 1616 1616)\n(llvm:symbol-entry call_weak_fn 1588 20 1588 1588)\n(mapped 0 2148 0)\n(mapped 69016 632 3480)\n(named-region 0 2148 02)\n(named-region 69016 640 03)\n(named-region 568 27 .interp)\n(named-region 596 36 .note.gnu.build-id)\n(named-region 632 32 .note.ABI-tag)\n(named-region 664 28 .gnu.hash)\n(named-region 696 216 .dynsym)\n(named-region 912 141 .dynstr)\n(named-region 1054 18 .gnu.version)\n(named-region 1072 48 .gnu.version_r)\n(named-region 1120 192 .rela.dyn)\n(named-region 1312 96 .rela.plt)\n(named-region 1408 24 .init)\n(named-region 1440 96 .plt)\n(named-region 1536 360 .text)\n(named-region 1896 20 .fini)\n(named-region 1916 4 .rodata)\n(named-region 1920 60 .eh_frame_hdr)\n(named-region 1984 164 .eh_frame)\n(named-region 69016 8 .init_array)\n(named-region 69024 8 .fini_array)\n(named-region 69032 496 .dynamic)\n(named-region 69528 104 .got)\n(named-region 69632 16 .data)\n(named-region 69648 8 .bss)\n(named-region 0 43 .comment)\n(named-region 0 2064 .symtab)\n(named-region 0 542 .strtab)\n(named-region 0 250 .shstrtab)\n(named-symbol 1588 call_weak_fn)\n(named-symbol 1616 deregister_tm_clones)\n(named-symbol 1664 register_tm_clones)\n(named-symbol 1728 __do_global_dtors_aux)\n(named-symbol 1808 frame_dummy)\n(named-symbol 0 __libc_start_main@GLIBC_2.34)\n(named-symbol 0 __cxa_finalize@GLIBC_2.17)\n(named-symbol 1896 _fini)\n(named-symbol 0 abort@GLIBC_2.17)\n(named-symbol 1536 _start)\n(named-symbol 1812 main)\n(named-symbol 1408 _init)\n(named-symbol 0 __libc_start_main)\n(named-symbol 0 __cxa_finalize)\n(named-symbol 0 abort)\n(require libc.so.6)\n(section 568 27)\n(section 596 36)\n(section 632 32)\n(section 664 28)\n(section 696 216)\n(section 912 141)\n(section 1054 18)\n(section 1072 48)\n(section 1120 192)\n(section 1312 96)\n(section 1408 24)\n(section 1440 96)\n(section 1536 360)\n(section 1896 20)\n(section 1916 4)\n(section 1920 60)\n(section 1984 164)\n(section 69016 8)\n(section 69024 8)\n(section 69032 496)\n(section 69528 104)\n(section 69632 16)\n(section 69648 8)\n(section 0 43)\n(section 0 2064)\n(section 0 542)\n(section 0 250)\n(segment 0 2148 true false true)\n(segment 69016 640 true true false)\n(subarch v8)\n(symbol-chunk 1588 20 1588)\n(symbol-chunk 1536 52 1536)\n(symbol-chunk 1812 84 1812)\n(symbol-value 1588 1588)\n(symbol-value 1616 1616)\n(symbol-value 1664 1664)\n(symbol-value 1728 1728)\n(symbol-value 1808 1808)\n(symbol-value 1896 1896)\n(symbol-value 1536 1536)\n(symbol-value 1812 1812)\n(symbol-value 1408 1408)\n(symbol-value 0 0)\n(system \"\")\n(vendor \"\")\n"), -Attr("abi-name","\"aarch64-linux-gnu-elf\"")]), -Sections([Section(".shstrtab", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x00\x06\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x68\x1b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x38\x00\x09\x00\x40\x00\x1c\x00\x1b\x00\x06\x00\x00\x00\x04\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x04\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\x08\x00\x00\x00\x00\x00\x00\x64\x08\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x01\x00\x00\x00\x06\x00\x00\x00\x98\x0d\x00\x00\x00\x00\x00\x00\x98\x0d"), -Section(".strtab", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x00\x06\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x68\x1b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x38\x00\x09\x00\x40\x00\x1c\x00\x1b\x00\x06\x00\x00\x00\x04\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x04\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\x08\x00\x00\x00\x00\x00\x00\x64\x08\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x01\x00\x00\x00\x06\x00\x00\x00\x98\x0d\x00\x00\x00\x00\x00\x00\x98\x0d\x01\x00\x00\x00\x00\x00\x98\x0d\x01\x00\x00\x00\x00\x00\x78\x02\x00\x00\x00\x00\x00\x00\x80\x02\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x02\x00\x00\x00\x06\x00\x00\x00\xa8\x0d\x00\x00\x00\x00\x00\x00\xa8\x0d\x01\x00\x00\x00\x00\x00\xa8\x0d\x01\x00\x00\x00\x00\x00\xf0\x01\x00\x00\x00\x00\x00\x00\xf0\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x04\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x50\xe5\x74\x64\x04\x00\x00\x00\x80\x07\x00\x00\x00\x00\x00\x00\x80\x07\x00\x00\x00\x00\x00\x00\x80\x07\x00\x00\x00\x00\x00\x00\x3c\x00\x00\x00\x00\x00\x00\x00\x3c\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x51\xe5\x74\x64\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x52\xe5\x74\x64\x04\x00\x00\x00\x98\x0d\x00\x00\x00\x00\x00\x00\x98\x0d\x01\x00\x00\x00\x00\x00\x98\x0d\x01\x00\x00\x00"), -Section(".symtab", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x00\x06\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x68\x1b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x38\x00\x09\x00\x40\x00\x1c\x00\x1b\x00\x06\x00\x00\x00\x04\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x04\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\x08\x00\x00\x00\x00\x00\x00\x64\x08\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x01\x00\x00\x00\x06\x00\x00\x00\x98\x0d\x00\x00\x00\x00\x00\x00\x98\x0d\x01\x00\x00\x00\x00\x00\x98\x0d\x01\x00\x00\x00\x00\x00\x78\x02\x00\x00\x00\x00\x00\x00\x80\x02\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x02\x00\x00\x00\x06\x00\x00\x00\xa8\x0d\x00\x00\x00\x00\x00\x00\xa8\x0d\x01\x00\x00\x00\x00\x00\xa8\x0d\x01\x00\x00\x00\x00\x00\xf0\x01\x00\x00\x00\x00\x00\x00\xf0\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x04\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x50\xe5\x74\x64\x04\x00\x00\x00\x80\x07\x00\x00\x00\x00\x00\x00\x80\x07\x00\x00\x00\x00\x00\x00\x80\x07\x00\x00\x00\x00\x00\x00\x3c\x00\x00\x00\x00\x00\x00\x00\x3c\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x51\xe5\x74\x64\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x52\xe5\x74\x64\x04\x00\x00\x00\x98\x0d\x00\x00\x00\x00\x00\x00\x98\x0d\x01\x00\x00\x00\x00\x00\x98\x0d\x01\x00\x00\x00\x00\x00\x68\x02\x00\x00\x00\x00\x00\x00\x68\x02\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x2f\x6c\x69\x62\x2f\x6c\x64\x2d\x6c\x69\x6e\x75\x78\x2d\x61\x61\x72\x63\x68\x36\x34\x2e\x73\x6f\x2e\x31\x00\x00\x04\x00\x00\x00\x14\x00\x00\x00\x03\x00\x00\x00\x47\x4e\x55\x00\x9a\xab\x0f\x82\x8d\x13\xb8\x24\xd6\xed\xb1\xc1\x9d\xdd\x62\x9b\xe4\x9a\x98\x51\x04\x00\x00\x00\x10\x00\x00\x00\x01\x00\x00\x00\x47\x4e\x55\x00\x00\x00\x00\x00\x03\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x01\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x0b\x00\x80\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x16\x00\x00\x10\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x48\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x22\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x22\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x73\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5f\x5f\x63\x78\x61\x5f\x66\x69\x6e\x61\x6c\x69\x7a\x65\x00\x5f\x5f\x6c\x69\x62\x63\x5f\x73\x74\x61\x72\x74\x5f\x6d\x61\x69\x6e\x00\x61\x62\x6f\x72\x74\x00\x6c\x69\x62\x63\x2e\x73\x6f\x2e\x36\x00\x47\x4c\x49\x42\x43\x5f\x32\x2e\x31\x37\x00\x47\x4c\x49\x42\x43\x5f\x32\x2e\x33\x34\x00\x5f\x49\x54\x4d\x5f\x64\x65\x72\x65\x67\x69\x73\x74\x65\x72\x54\x4d\x43\x6c\x6f\x6e\x65\x54\x61\x62\x6c\x65\x00\x5f\x5f\x67\x6d\x6f\x6e\x5f\x73\x74\x61\x72\x74\x5f\x5f\x00\x5f\x49\x54\x4d\x5f\x72\x65\x67\x69\x73\x74\x65\x72\x54\x4d\x43\x6c\x6f\x6e\x65\x54\x61\x62\x6c\x65\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x01\x00\x03\x00\x01\x00\x03\x00\x01\x00\x01\x00\x02\x00\x28\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x97\x91\x96\x06\x00\x00\x03\x00\x32\x00\x00\x00\x10\x00\x00\x00\xb4\x91\x96\x06\x00\x00\x02\x00\x3d\x00\x00\x00\x00\x00\x00\x00\x98\x0d\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x10\x07\x00\x00\x00\x00\x00\x00\xa0\x0d\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\xc0\x06\x00\x00\x00\x00\x00\x00\xf0\x0f\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x14\x07\x00\x00\x00\x00\x00\x00\x08\x10\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x08\x10\x01\x00\x00\x00\x00\x00\xd8\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe0\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe8\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xf8\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xb0\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xb8\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xc0\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xc8\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1f\x20\x03\xd5\xfd\x7b\xbf\xa9\xfd\x03\x00\x91\x2a\x00\x00\x94\xfd\x7b\xc1\xa8\xc0\x03\x5f\xd6\x00\x00\x00\x00\x00\x00\x00\x00\xf0\x7b\xbf\xa9\x90\x00\x00\x90\x11\xd6\x47\xf9\x10\xa2\x3e\x91\x20\x02\x1f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x90\x00\x00\x90\x11\xda\x47\xf9\x10\xc2\x3e\x91\x20\x02\x1f\xd6\x90\x00\x00\x90\x11\xde\x47\xf9\x10\xe2\x3e\x91\x20\x02\x1f\xd6\x90\x00\x00\x90\x11\xe2\x47\xf9\x10\x02\x3f\x91\x20\x02\x1f\xd6\x90\x00\x00\x90\x11\xe6\x47\xf9\x10\x22\x3f\x91\x20\x02\x1f\xd6\x1f\x20\x03\xd5\x1d\x00\x80\xd2\x1e\x00\x80\xd2\xe5\x03\x00\xaa\xe1\x03\x40\xf9\xe2\x23\x00\x91\xe6\x03\x00\x91\x80\x00\x00\x90\x00\xf8\x47\xf9\x03\x00\x80\xd2\x04\x00\x80\xd2\xe5\xff\xff\x97\xf0\xff\xff\x97\x80\x00\x00\x90\x00\xf4\x47\xf9\x40\x00\x00\xb4\xe8\xff\xff\x17\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x80\x00\x00\xb0\x00\x40\x00\x91\x81\x00\x00\xb0\x21\x40\x00\x91\x3f\x00\x00\xeb\xc0\x00\x00\x54\x81\x00\x00\x90\x21\xec\x47\xf9\x61\x00\x00\xb4\xf0\x03\x01\xaa\x00\x02\x1f\xd6\xc0\x03\x5f\xd6\x80\x00\x00\xb0\x00\x40\x00\x91\x81\x00\x00\xb0\x21\x40\x00\x91\x21\x00\x00\xcb\x22\xfc\x7f\xd3\x41\x0c\x81\x8b\x21\xfc\x41\x93\xc1\x00\x00\xb4\x82\x00\x00\x90\x42\xfc\x47\xf9\x62\x00\x00\xb4\xf0\x03\x02\xaa\x00\x02\x1f\xd6\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\xfd\x7b\xbe\xa9\xfd\x03\x00\x91\xf3\x0b\x00\xf9\x93\x00\x00\xb0\x60\x42\x40\x39\x40\x01\x00\x35\x80\x00\x00\x90\x00\xf0\x47\xf9\x80\x00\x00\xb4\x80\x00\x00\xb0\x00\x04\x40\xf9\xb9\xff\xff\x97\xd8\xff\xff\x97\x20\x00\x80\x52\x60\x42\x00\x39\xf3\x0b\x40\xf9\xfd\x7b\xc2\xa8\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\xdc\xff\xff\x17\xff\x43\x00\xd1\x20\x00\x80\x52\xe0\x0b\x00\xb9\xff\x0f\x00\xb9\xe0\x0b\x40\xb9\x1f\x04\x00\x71\xc0\x00\x00\x54\xe0\x0b\x40\xb9\x1f\x0c\x00\x71\xc1\x00\x00\x54\x60\x00\x80\x52\xe0\x0f\x00\xb9\x20\x00\x80\x52\xe0\x0f\x00\xb9\x04\x00\x00\x14\xa0\x00\x80\x52\xe0\x0f\x00\xb9\x1f\x20\x03\xd5\x1f\x20\x03\xd5\xff\x43\x00\x91\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\xfd\x7b\xbf\xa9\xfd\x03\x00\x91\xfd\x7b\xc1\xa8\xc0\x03\x5f\xd6\x01\x00\x02\x00\x01\x1b\x03\x3b\x3c\x00\x00\x00\x06\x00\x00\x00\x80\xfe\xff\xff\x54\x00\x00\x00\xd0\xfe\xff\xff\x68\x00\x00\x00\x00\xff\xff\xff\x7c\x00\x00\x00\x40\xff\xff\xff\x90\x00\x00\x00\x90\xff\xff\xff\xb4\x00\x00\x00\x94\xff\xff\xff\xc8\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x01\x7a\x52\x00\x04\x78\x1e\x01\x1b\x0c\x1f\x00\x10\x00\x00\x00\x18\x00\x00\x00\x24\xfe\xff\xff\x34\x00\x00\x00\x00\x41\x07\x1e\x10\x00\x00\x00\x2c\x00\x00\x00\x60\xfe\xff\xff\x30\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x40\x00\x00\x00\x7c\xfe\xff\xff\x3c\x00\x00\x00\x00\x00\x00\x00"), -Section(".comment", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x00\x06\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x68\x1b\x00"), -Section(".interp", 0x238, "\x2f\x6c\x69\x62\x2f\x6c\x64\x2d\x6c\x69\x6e\x75\x78\x2d\x61\x61\x72\x63\x68\x36\x34\x2e\x73\x6f\x2e\x31\x00"), -Section(".note.gnu.build-id", 0x254, "\x04\x00\x00\x00\x14\x00\x00\x00\x03\x00\x00\x00\x47\x4e\x55\x00\x9a\xab\x0f\x82\x8d\x13\xb8\x24\xd6\xed\xb1\xc1\x9d\xdd\x62\x9b\xe4\x9a\x98\x51"), -Section(".note.ABI-tag", 0x278, "\x04\x00\x00\x00\x10\x00\x00\x00\x01\x00\x00\x00\x47\x4e\x55\x00\x00\x00\x00\x00\x03\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00"), -Section(".gnu.hash", 0x298, "\x01\x00\x00\x00\x01\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".dynsym", 0x2B8, "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x0b\x00\x80\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x16\x00\x00\x10\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x48\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x22\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x22\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x73\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".dynstr", 0x390, "\x00\x5f\x5f\x63\x78\x61\x5f\x66\x69\x6e\x61\x6c\x69\x7a\x65\x00\x5f\x5f\x6c\x69\x62\x63\x5f\x73\x74\x61\x72\x74\x5f\x6d\x61\x69\x6e\x00\x61\x62\x6f\x72\x74\x00\x6c\x69\x62\x63\x2e\x73\x6f\x2e\x36\x00\x47\x4c\x49\x42\x43\x5f\x32\x2e\x31\x37\x00\x47\x4c\x49\x42\x43\x5f\x32\x2e\x33\x34\x00\x5f\x49\x54\x4d\x5f\x64\x65\x72\x65\x67\x69\x73\x74\x65\x72\x54\x4d\x43\x6c\x6f\x6e\x65\x54\x61\x62\x6c\x65\x00\x5f\x5f\x67\x6d\x6f\x6e\x5f\x73\x74\x61\x72\x74\x5f\x5f\x00\x5f\x49\x54\x4d\x5f\x72\x65\x67\x69\x73\x74\x65\x72\x54\x4d\x43\x6c\x6f\x6e\x65\x54\x61\x62\x6c\x65\x00"), -Section(".gnu.version", 0x41E, "\x00\x00\x00\x00\x00\x00\x02\x00\x01\x00\x03\x00\x01\x00\x03\x00\x01\x00"), -Section(".gnu.version_r", 0x430, "\x01\x00\x02\x00\x28\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x97\x91\x96\x06\x00\x00\x03\x00\x32\x00\x00\x00\x10\x00\x00\x00\xb4\x91\x96\x06\x00\x00\x02\x00\x3d\x00\x00\x00\x00\x00\x00\x00"), -Section(".rela.dyn", 0x460, "\x98\x0d\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x10\x07\x00\x00\x00\x00\x00\x00\xa0\x0d\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\xc0\x06\x00\x00\x00\x00\x00\x00\xf0\x0f\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x14\x07\x00\x00\x00\x00\x00\x00\x08\x10\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x08\x10\x01\x00\x00\x00\x00\x00\xd8\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe0\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe8\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xf8\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".rela.plt", 0x520, "\xb0\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xb8\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xc0\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xc8\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".init", 0x580, "\x1f\x20\x03\xd5\xfd\x7b\xbf\xa9\xfd\x03\x00\x91\x2a\x00\x00\x94\xfd\x7b\xc1\xa8\xc0\x03\x5f\xd6"), -Section(".plt", 0x5A0, "\xf0\x7b\xbf\xa9\x90\x00\x00\x90\x11\xd6\x47\xf9\x10\xa2\x3e\x91\x20\x02\x1f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x90\x00\x00\x90\x11\xda\x47\xf9\x10\xc2\x3e\x91\x20\x02\x1f\xd6\x90\x00\x00\x90\x11\xde\x47\xf9\x10\xe2\x3e\x91\x20\x02\x1f\xd6\x90\x00\x00\x90\x11\xe2\x47\xf9\x10\x02\x3f\x91\x20\x02\x1f\xd6\x90\x00\x00\x90\x11\xe6\x47\xf9\x10\x22\x3f\x91\x20\x02\x1f\xd6"), -Section(".fini", 0x768, "\x1f\x20\x03\xd5\xfd\x7b\xbf\xa9\xfd\x03\x00\x91\xfd\x7b\xc1\xa8\xc0\x03\x5f\xd6"), -Section(".rodata", 0x77C, "\x01\x00\x02\x00"), -Section(".eh_frame_hdr", 0x780, "\x01\x1b\x03\x3b\x3c\x00\x00\x00\x06\x00\x00\x00\x80\xfe\xff\xff\x54\x00\x00\x00\xd0\xfe\xff\xff\x68\x00\x00\x00\x00\xff\xff\xff\x7c\x00\x00\x00\x40\xff\xff\xff\x90\x00\x00\x00\x90\xff\xff\xff\xb4\x00\x00\x00\x94\xff\xff\xff\xc8\x00\x00\x00"), -Section(".eh_frame", 0x7C0, "\x10\x00\x00\x00\x00\x00\x00\x00\x01\x7a\x52\x00\x04\x78\x1e\x01\x1b\x0c\x1f\x00\x10\x00\x00\x00\x18\x00\x00\x00\x24\xfe\xff\xff\x34\x00\x00\x00\x00\x41\x07\x1e\x10\x00\x00\x00\x2c\x00\x00\x00\x60\xfe\xff\xff\x30\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x40\x00\x00\x00\x7c\xfe\xff\xff\x3c\x00\x00\x00\x00\x00\x00\x00\x20\x00\x00\x00\x54\x00\x00\x00\xa8\xfe\xff\xff\x48\x00\x00\x00\x00\x41\x0e\x20\x9d\x04\x9e\x03\x42\x93\x02\x4e\xde\xdd\xd3\x0e\x00\x00\x00\x00\x10\x00\x00\x00\x78\x00\x00\x00\xd4\xfe\xff\xff\x04\x00\x00\x00\x00\x00\x00\x00\x14\x00\x00\x00\x8c\x00\x00\x00\xc4\xfe\xff\xff\x54\x00\x00\x00\x00\x41\x0e\x10\x53\x0e\x00\x00\x00\x00\x00\x00"), -Section(".fini_array", 0x10DA0, "\xc0\x06\x00\x00\x00\x00\x00\x00"), -Section(".dynamic", 0x10DA8, "\x01\x00\x00\x00\x00\x00\x00\x00\x28\x00\x00\x00\x00\x00\x00\x00\x0c\x00\x00\x00\x00\x00\x00\x00\x80\x05\x00\x00\x00\x00\x00\x00\x0d\x00\x00\x00\x00\x00\x00\x00\x68\x07\x00\x00\x00\x00\x00\x00\x19\x00\x00\x00\x00\x00\x00\x00\x98\x0d\x01\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x1a\x00\x00\x00\x00\x00\x00\x00\xa0\x0d\x01\x00\x00\x00\x00\x00\x1c\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\xf5\xfe\xff\x6f\x00\x00\x00\x00\x98\x02\x00\x00\x00\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x90\x03\x00\x00\x00\x00\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\xb8\x02\x00\x00\x00\x00\x00\x00\x0a\x00\x00\x00\x00\x00\x00\x00\x8d\x00\x00\x00\x00\x00\x00\x00\x0b\x00\x00\x00\x00\x00\x00\x00\x18\x00\x00\x00\x00\x00\x00\x00\x15\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x98\x0f\x01\x00\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x60\x00\x00\x00\x00\x00\x00\x00\x14\x00\x00\x00\x00\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x17\x00\x00\x00\x00\x00\x00\x00\x20\x05\x00\x00\x00\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x60\x04\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\xc0\x00\x00\x00\x00\x00\x00\x00\x09\x00\x00\x00\x00\x00\x00\x00\x18\x00\x00\x00\x00\x00\x00\x00\x1e\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\xfb\xff\xff\x6f\x00\x00\x00\x00\x01\x00\x00\x08\x00\x00\x00\x00\xfe\xff\xff\x6f\x00\x00\x00\x00\x30\x04\x00\x00\x00\x00\x00\x00\xff\xff\xff\x6f\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\xf0\xff\xff\x6f\x00\x00\x00\x00\x1e\x04\x00\x00\x00\x00\x00\x00\xf9\xff\xff\x6f\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".got", 0x10F98, "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xa0\x05\x00\x00\x00\x00\x00\x00\xa0\x05\x00\x00\x00\x00\x00\x00\xa0\x05\x00\x00\x00\x00\x00\x00\xa0\x05\x00\x00\x00\x00\x00\x00\xa8\x0d\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x14\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".data", 0x11000, "\x00\x00\x00\x00\x00\x00\x00\x00\x08\x10\x01\x00\x00\x00\x00\x00"), -Section(".init_array", 0x10D98, "\x10\x07\x00\x00\x00\x00\x00\x00"), -Section(".text", 0x600, "\x1f\x20\x03\xd5\x1d\x00\x80\xd2\x1e\x00\x80\xd2\xe5\x03\x00\xaa\xe1\x03\x40\xf9\xe2\x23\x00\x91\xe6\x03\x00\x91\x80\x00\x00\x90\x00\xf8\x47\xf9\x03\x00\x80\xd2\x04\x00\x80\xd2\xe5\xff\xff\x97\xf0\xff\xff\x97\x80\x00\x00\x90\x00\xf4\x47\xf9\x40\x00\x00\xb4\xe8\xff\xff\x17\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x80\x00\x00\xb0\x00\x40\x00\x91\x81\x00\x00\xb0\x21\x40\x00\x91\x3f\x00\x00\xeb\xc0\x00\x00\x54\x81\x00\x00\x90\x21\xec\x47\xf9\x61\x00\x00\xb4\xf0\x03\x01\xaa\x00\x02\x1f\xd6\xc0\x03\x5f\xd6\x80\x00\x00\xb0\x00\x40\x00\x91\x81\x00\x00\xb0\x21\x40\x00\x91\x21\x00\x00\xcb\x22\xfc\x7f\xd3\x41\x0c\x81\x8b\x21\xfc\x41\x93\xc1\x00\x00\xb4\x82\x00\x00\x90\x42\xfc\x47\xf9\x62\x00\x00\xb4\xf0\x03\x02\xaa\x00\x02\x1f\xd6\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\xfd\x7b\xbe\xa9\xfd\x03\x00\x91\xf3\x0b\x00\xf9\x93\x00\x00\xb0\x60\x42\x40\x39\x40\x01\x00\x35\x80\x00\x00\x90\x00\xf0\x47\xf9\x80\x00\x00\xb4\x80\x00\x00\xb0\x00\x04\x40\xf9\xb9\xff\xff\x97\xd8\xff\xff\x97\x20\x00\x80\x52\x60\x42\x00\x39\xf3\x0b\x40\xf9\xfd\x7b\xc2\xa8\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\xdc\xff\xff\x17\xff\x43\x00\xd1\x20\x00\x80\x52\xe0\x0b\x00\xb9\xff\x0f\x00\xb9\xe0\x0b\x40\xb9\x1f\x04\x00\x71\xc0\x00\x00\x54\xe0\x0b\x40\xb9\x1f\x0c\x00\x71\xc1\x00\x00\x54\x60\x00\x80\x52\xe0\x0f\x00\xb9\x20\x00\x80\x52\xe0\x0f\x00\xb9\x04\x00\x00\x14\xa0\x00\x80\x52\xe0\x0f\x00\xb9\x1f\x20\x03\xd5\x1f\x20\x03\xd5\xff\x43\x00\x91\xc0\x03\x5f\xd6")]), -Memmap([Annotation(Region(0x0,0x863), Attr("segment","02 0 2148")), -Annotation(Region(0x600,0x633), Attr("symbol","\"_start\"")), -Annotation(Region(0x0,0xF9), Attr("section","\".shstrtab\"")), -Annotation(Region(0x0,0x21D), Attr("section","\".strtab\"")), -Annotation(Region(0x0,0x80F), Attr("section","\".symtab\"")), -Annotation(Region(0x0,0x2A), Attr("section","\".comment\"")), -Annotation(Region(0x238,0x252), Attr("section","\".interp\"")), -Annotation(Region(0x254,0x277), Attr("section","\".note.gnu.build-id\"")), -Annotation(Region(0x278,0x297), Attr("section","\".note.ABI-tag\"")), -Annotation(Region(0x298,0x2B3), Attr("section","\".gnu.hash\"")), -Annotation(Region(0x2B8,0x38F), Attr("section","\".dynsym\"")), -Annotation(Region(0x390,0x41C), Attr("section","\".dynstr\"")), -Annotation(Region(0x41E,0x42F), Attr("section","\".gnu.version\"")), -Annotation(Region(0x430,0x45F), Attr("section","\".gnu.version_r\"")), -Annotation(Region(0x460,0x51F), Attr("section","\".rela.dyn\"")), -Annotation(Region(0x520,0x57F), Attr("section","\".rela.plt\"")), -Annotation(Region(0x580,0x597), Attr("section","\".init\"")), -Annotation(Region(0x5A0,0x5FF), Attr("section","\".plt\"")), -Annotation(Region(0x580,0x597), Attr("code-region","()")), -Annotation(Region(0x5A0,0x5FF), Attr("code-region","()")), -Annotation(Region(0x600,0x633), Attr("symbol-info","_start 0x600 52")), -Annotation(Region(0x634,0x647), Attr("symbol","\"call_weak_fn\"")), -Annotation(Region(0x634,0x647), Attr("symbol-info","call_weak_fn 0x634 20")), -Annotation(Region(0x714,0x767), Attr("symbol","\"main\"")), -Annotation(Region(0x714,0x767), Attr("symbol-info","main 0x714 84")), -Annotation(Region(0x768,0x77B), Attr("section","\".fini\"")), -Annotation(Region(0x77C,0x77F), Attr("section","\".rodata\"")), -Annotation(Region(0x780,0x7BB), Attr("section","\".eh_frame_hdr\"")), -Annotation(Region(0x7C0,0x863), Attr("section","\".eh_frame\"")), -Annotation(Region(0x10D98,0x1100F), Attr("segment","03 0x10D98 640")), -Annotation(Region(0x10DA0,0x10DA7), Attr("section","\".fini_array\"")), -Annotation(Region(0x10DA8,0x10F97), Attr("section","\".dynamic\"")), -Annotation(Region(0x10F98,0x10FFF), Attr("section","\".got\"")), -Annotation(Region(0x11000,0x1100F), Attr("section","\".data\"")), -Annotation(Region(0x10D98,0x10D9F), Attr("section","\".init_array\"")), -Annotation(Region(0x600,0x767), Attr("section","\".text\"")), -Annotation(Region(0x600,0x767), Attr("code-region","()")), -Annotation(Region(0x768,0x77B), Attr("code-region","()"))]), -Program(Tid(1_653, "%00000675"), Attrs([]), - Subs([Sub(Tid(1_595, "@__cxa_finalize"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x5D0"), -Attr("stub","()")]), "__cxa_finalize", Args([Arg(Tid(1_654, "%00000676"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("__cxa_finalize_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(981, "@__cxa_finalize"), - Attrs([Attr("address","0x5D0")]), Phis([]), -Defs([Def(Tid(1_229, "%000004cd"), Attrs([Attr("address","0x5D0"), -Attr("insn","adrp x16, #65536")]), Var("R16",Imm(64)), Int(65536,64)), -Def(Tid(1_236, "%000004d4"), Attrs([Attr("address","0x5D4"), -Attr("insn","ldr x17, [x16, #0xfb8]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(4024,64)),LittleEndian(),64)), -Def(Tid(1_242, "%000004da"), Attrs([Attr("address","0x5D8"), -Attr("insn","add x16, x16, #0xfb8")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(4024,64)))]), Jmps([Call(Tid(1_247, "%000004df"), - Attrs([Attr("address","0x5DC"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), -Sub(Tid(1_596, "@__do_global_dtors_aux"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x6C0")]), - "__do_global_dtors_aux", Args([Arg(Tid(1_655, "%00000677"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("__do_global_dtors_aux_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(674, "@__do_global_dtors_aux"), - Attrs([Attr("address","0x6C0")]), Phis([]), Defs([Def(Tid(678, "%000002a6"), - Attrs([Attr("address","0x6C0"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("#3",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(18446744073709551584,64))), -Def(Tid(684, "%000002ac"), Attrs([Attr("address","0x6C0"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("#3",Imm(64)),Var("R29",Imm(64)),LittleEndian(),64)), -Def(Tid(690, "%000002b2"), Attrs([Attr("address","0x6C0"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("#3",Imm(64)),Int(8,64)),Var("R30",Imm(64)),LittleEndian(),64)), -Def(Tid(694, "%000002b6"), Attrs([Attr("address","0x6C0"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("R31",Imm(64)), -Var("#3",Imm(64))), Def(Tid(700, "%000002bc"), - Attrs([Attr("address","0x6C4"), Attr("insn","mov x29, sp")]), - Var("R29",Imm(64)), Var("R31",Imm(64))), Def(Tid(708, "%000002c4"), - Attrs([Attr("address","0x6C8"), Attr("insn","str x19, [sp, #0x10]")]), - Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(16,64)),Var("R19",Imm(64)),LittleEndian(),64)), -Def(Tid(713, "%000002c9"), Attrs([Attr("address","0x6CC"), -Attr("insn","adrp x19, #69632")]), Var("R19",Imm(64)), Int(69632,64)), -Def(Tid(720, "%000002d0"), Attrs([Attr("address","0x6D0"), -Attr("insn","ldrb w0, [x19, #0x10]")]), Var("R0",Imm(64)), -UNSIGNED(64,Load(Var("mem",Mem(64,8)),PLUS(Var("R19",Imm(64)),Int(16,64)),LittleEndian(),8)))]), -Jmps([Goto(Tid(727, "%000002d7"), Attrs([Attr("address","0x6D4"), -Attr("insn","cbnz w0, #0x28")]), - NEQ(Extract(31,0,Var("R0",Imm(64))),Int(0,32)), -Direct(Tid(725, "%000002d5"))), Goto(Tid(1_639, "%00000667"), Attrs([]), - Int(1,1), Direct(Tid(926, "%0000039e")))])), Blk(Tid(926, "%0000039e"), - Attrs([Attr("address","0x6D8")]), Phis([]), Defs([Def(Tid(929, "%000003a1"), - Attrs([Attr("address","0x6D8"), Attr("insn","adrp x0, #65536")]), - Var("R0",Imm(64)), Int(65536,64)), Def(Tid(936, "%000003a8"), - Attrs([Attr("address","0x6DC"), Attr("insn","ldr x0, [x0, #0xfe0]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(4064,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(942, "%000003ae"), Attrs([Attr("address","0x6E0"), -Attr("insn","cbz x0, #0x10")]), EQ(Var("R0",Imm(64)),Int(0,64)), -Direct(Tid(940, "%000003ac"))), Goto(Tid(1_640, "%00000668"), Attrs([]), - Int(1,1), Direct(Tid(965, "%000003c5")))])), Blk(Tid(965, "%000003c5"), - Attrs([Attr("address","0x6E4")]), Phis([]), Defs([Def(Tid(968, "%000003c8"), - Attrs([Attr("address","0x6E4"), Attr("insn","adrp x0, #69632")]), - Var("R0",Imm(64)), Int(69632,64)), Def(Tid(975, "%000003cf"), - Attrs([Attr("address","0x6E8"), Attr("insn","ldr x0, [x0, #0x8]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(980, "%000003d4"), Attrs([Attr("address","0x6EC"), -Attr("insn","bl #-0x11c")]), Var("R30",Imm(64)), Int(1776,64))]), -Jmps([Call(Tid(983, "%000003d7"), Attrs([Attr("address","0x6EC"), -Attr("insn","bl #-0x11c")]), Int(1,1), -(Direct(Tid(1_595, "@__cxa_finalize")),Direct(Tid(940, "%000003ac"))))])), -Blk(Tid(940, "%000003ac"), Attrs([Attr("address","0x6F0")]), Phis([]), -Defs([Def(Tid(948, "%000003b4"), Attrs([Attr("address","0x6F0"), -Attr("insn","bl #-0xa0")]), Var("R30",Imm(64)), Int(1780,64))]), -Jmps([Call(Tid(950, "%000003b6"), Attrs([Attr("address","0x6F0"), -Attr("insn","bl #-0xa0")]), Int(1,1), -(Direct(Tid(1_609, "@deregister_tm_clones")),Direct(Tid(952, "%000003b8"))))])), -Blk(Tid(952, "%000003b8"), Attrs([Attr("address","0x6F4")]), Phis([]), -Defs([Def(Tid(955, "%000003bb"), Attrs([Attr("address","0x6F4"), -Attr("insn","mov w0, #0x1")]), Var("R0",Imm(64)), Int(1,64)), -Def(Tid(963, "%000003c3"), Attrs([Attr("address","0x6F8"), -Attr("insn","strb w0, [x19, #0x10]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R19",Imm(64)),Int(16,64)),Extract(7,0,Var("R0",Imm(64))),LittleEndian(),8))]), -Jmps([Goto(Tid(1_641, "%00000669"), Attrs([]), Int(1,1), -Direct(Tid(725, "%000002d5")))])), Blk(Tid(725, "%000002d5"), - Attrs([Attr("address","0x6FC")]), Phis([]), Defs([Def(Tid(735, "%000002df"), - Attrs([Attr("address","0x6FC"), Attr("insn","ldr x19, [sp, #0x10]")]), - Var("R19",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(16,64)),LittleEndian(),64)), -Def(Tid(742, "%000002e6"), Attrs([Attr("address","0x700"), -Attr("insn","ldp x29, x30, [sp], #0x20")]), Var("R29",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(747, "%000002eb"), Attrs([Attr("address","0x700"), -Attr("insn","ldp x29, x30, [sp], #0x20")]), Var("R30",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(751, "%000002ef"), Attrs([Attr("address","0x700"), -Attr("insn","ldp x29, x30, [sp], #0x20")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(32,64)))]), Jmps([Call(Tid(756, "%000002f4"), - Attrs([Attr("address","0x704"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), Sub(Tid(1_600, "@__libc_start_main"), - Attrs([Attr("c.proto","signed (*)(signed (*)(signed , char** , char** );* main, signed , char** , \nvoid* auxv)"), -Attr("address","0x5C0"), Attr("stub","()")]), "__libc_start_main", - Args([Arg(Tid(1_656, "%00000678"), - Attrs([Attr("c.layout","**[ : 64]"), -Attr("c.data","Top:u64 ptr ptr"), -Attr("c.type","signed (*)(signed , char** , char** );*")]), - Var("__libc_start_main_main",Imm(64)), Var("R0",Imm(64)), In()), -Arg(Tid(1_657, "%00000679"), Attrs([Attr("c.layout","[signed : 32]"), -Attr("c.data","Top:u32"), Attr("c.type","signed")]), - Var("__libc_start_main_arg2",Imm(32)), LOW(32,Var("R1",Imm(64))), In()), -Arg(Tid(1_658, "%0000067a"), Attrs([Attr("c.layout","**[char : 8]"), -Attr("c.data","Top:u8 ptr ptr"), Attr("c.type","char**")]), - Var("__libc_start_main_arg3",Imm(64)), Var("R2",Imm(64)), Both()), -Arg(Tid(1_659, "%0000067b"), Attrs([Attr("c.layout","*[ : 8]"), -Attr("c.data","{} ptr"), Attr("c.type","void*")]), - Var("__libc_start_main_auxv",Imm(64)), Var("R3",Imm(64)), Both()), -Arg(Tid(1_660, "%0000067c"), Attrs([Attr("c.layout","[signed : 32]"), -Attr("c.data","Top:u32"), Attr("c.type","signed")]), - Var("__libc_start_main_result",Imm(32)), LOW(32,Var("R0",Imm(64))), -Out())]), Blks([Blk(Tid(507, "@__libc_start_main"), - Attrs([Attr("address","0x5C0")]), Phis([]), -Defs([Def(Tid(1_207, "%000004b7"), Attrs([Attr("address","0x5C0"), -Attr("insn","adrp x16, #65536")]), Var("R16",Imm(64)), Int(65536,64)), -Def(Tid(1_214, "%000004be"), Attrs([Attr("address","0x5C4"), -Attr("insn","ldr x17, [x16, #0xfb0]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(4016,64)),LittleEndian(),64)), -Def(Tid(1_220, "%000004c4"), Attrs([Attr("address","0x5C8"), -Attr("insn","add x16, x16, #0xfb0")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(4016,64)))]), Jmps([Call(Tid(1_225, "%000004c9"), - Attrs([Attr("address","0x5CC"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), Sub(Tid(1_601, "@_fini"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x768")]), - "_fini", Args([Arg(Tid(1_661, "%0000067d"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("_fini_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(31, "@_fini"), - Attrs([Attr("address","0x768")]), Phis([]), Defs([Def(Tid(37, "%00000025"), - Attrs([Attr("address","0x76C"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("#0",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(18446744073709551600,64))), -Def(Tid(43, "%0000002b"), Attrs([Attr("address","0x76C"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("#0",Imm(64)),Var("R29",Imm(64)),LittleEndian(),64)), -Def(Tid(49, "%00000031"), Attrs([Attr("address","0x76C"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("#0",Imm(64)),Int(8,64)),Var("R30",Imm(64)),LittleEndian(),64)), -Def(Tid(53, "%00000035"), Attrs([Attr("address","0x76C"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("R31",Imm(64)), -Var("#0",Imm(64))), Def(Tid(59, "%0000003b"), Attrs([Attr("address","0x770"), -Attr("insn","mov x29, sp")]), Var("R29",Imm(64)), Var("R31",Imm(64))), -Def(Tid(66, "%00000042"), Attrs([Attr("address","0x774"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R29",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(71, "%00000047"), Attrs([Attr("address","0x774"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R30",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(75, "%0000004b"), Attrs([Attr("address","0x774"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(16,64)))]), Jmps([Call(Tid(80, "%00000050"), - Attrs([Attr("address","0x778"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), Sub(Tid(1_602, "@_init"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x580")]), - "_init", Args([Arg(Tid(1_662, "%0000067e"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("_init_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(1_416, "@_init"), - Attrs([Attr("address","0x580")]), Phis([]), -Defs([Def(Tid(1_422, "%0000058e"), Attrs([Attr("address","0x584"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("#7",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(18446744073709551600,64))), -Def(Tid(1_428, "%00000594"), Attrs([Attr("address","0x584"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("#7",Imm(64)),Var("R29",Imm(64)),LittleEndian(),64)), -Def(Tid(1_434, "%0000059a"), Attrs([Attr("address","0x584"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("#7",Imm(64)),Int(8,64)),Var("R30",Imm(64)),LittleEndian(),64)), -Def(Tid(1_438, "%0000059e"), Attrs([Attr("address","0x584"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("R31",Imm(64)), -Var("#7",Imm(64))), Def(Tid(1_444, "%000005a4"), - Attrs([Attr("address","0x588"), Attr("insn","mov x29, sp")]), - Var("R29",Imm(64)), Var("R31",Imm(64))), Def(Tid(1_449, "%000005a9"), - Attrs([Attr("address","0x58C"), Attr("insn","bl #0xa8")]), - Var("R30",Imm(64)), Int(1424,64))]), Jmps([Call(Tid(1_451, "%000005ab"), - Attrs([Attr("address","0x58C"), Attr("insn","bl #0xa8")]), Int(1,1), -(Direct(Tid(1_607, "@call_weak_fn")),Direct(Tid(1_453, "%000005ad"))))])), -Blk(Tid(1_453, "%000005ad"), Attrs([Attr("address","0x590")]), Phis([]), -Defs([Def(Tid(1_458, "%000005b2"), Attrs([Attr("address","0x590"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R29",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(1_463, "%000005b7"), Attrs([Attr("address","0x590"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R30",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(1_467, "%000005bb"), Attrs([Attr("address","0x590"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(16,64)))]), Jmps([Call(Tid(1_472, "%000005c0"), - Attrs([Attr("address","0x594"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), Sub(Tid(1_603, "@_start"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x600"), -Attr("stub","()"), Attr("entry-point","()")]), "_start", - Args([Arg(Tid(1_663, "%0000067f"), Attrs([Attr("c.layout","[signed : 32]"), -Attr("c.data","Top:u32"), Attr("c.type","signed")]), - Var("_start_result",Imm(32)), LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(444, "@_start"), Attrs([Attr("address","0x600")]), Phis([]), -Defs([Def(Tid(449, "%000001c1"), Attrs([Attr("address","0x604"), -Attr("insn","mov x29, #0x0")]), Var("R29",Imm(64)), Int(0,64)), -Def(Tid(454, "%000001c6"), Attrs([Attr("address","0x608"), -Attr("insn","mov x30, #0x0")]), Var("R30",Imm(64)), Int(0,64)), -Def(Tid(460, "%000001cc"), Attrs([Attr("address","0x60C"), -Attr("insn","mov x5, x0")]), Var("R5",Imm(64)), Var("R0",Imm(64))), -Def(Tid(467, "%000001d3"), Attrs([Attr("address","0x610"), -Attr("insn","ldr x1, [sp]")]), Var("R1",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(473, "%000001d9"), Attrs([Attr("address","0x614"), -Attr("insn","add x2, sp, #0x8")]), Var("R2",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(8,64))), Def(Tid(479, "%000001df"), - Attrs([Attr("address","0x618"), Attr("insn","mov x6, sp")]), - Var("R6",Imm(64)), Var("R31",Imm(64))), Def(Tid(484, "%000001e4"), - Attrs([Attr("address","0x61C"), Attr("insn","adrp x0, #65536")]), - Var("R0",Imm(64)), Int(65536,64)), Def(Tid(491, "%000001eb"), - Attrs([Attr("address","0x620"), Attr("insn","ldr x0, [x0, #0xff0]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(4080,64)),LittleEndian(),64)), -Def(Tid(496, "%000001f0"), Attrs([Attr("address","0x624"), -Attr("insn","mov x3, #0x0")]), Var("R3",Imm(64)), Int(0,64)), -Def(Tid(501, "%000001f5"), Attrs([Attr("address","0x628"), -Attr("insn","mov x4, #0x0")]), Var("R4",Imm(64)), Int(0,64)), -Def(Tid(506, "%000001fa"), Attrs([Attr("address","0x62C"), -Attr("insn","bl #-0x6c")]), Var("R30",Imm(64)), Int(1584,64))]), -Jmps([Call(Tid(509, "%000001fd"), Attrs([Attr("address","0x62C"), -Attr("insn","bl #-0x6c")]), Int(1,1), -(Direct(Tid(1_600, "@__libc_start_main")),Direct(Tid(511, "%000001ff"))))])), -Blk(Tid(511, "%000001ff"), Attrs([Attr("address","0x630")]), Phis([]), -Defs([Def(Tid(514, "%00000202"), Attrs([Attr("address","0x630"), -Attr("insn","bl #-0x40")]), Var("R30",Imm(64)), Int(1588,64))]), -Jmps([Call(Tid(517, "%00000205"), Attrs([Attr("address","0x630"), -Attr("insn","bl #-0x40")]), Int(1,1), -(Direct(Tid(1_606, "@abort")),Direct(Tid(1_642, "%0000066a"))))])), -Blk(Tid(1_642, "%0000066a"), Attrs([]), Phis([]), Defs([]), -Jmps([Call(Tid(1_643, "%0000066b"), Attrs([]), Int(1,1), -(Direct(Tid(1_607, "@call_weak_fn")),))]))])), Sub(Tid(1_606, "@abort"), - Attrs([Attr("noreturn","()"), Attr("c.proto","void (*)(void)"), -Attr("address","0x5F0"), Attr("stub","()")]), "abort", Args([]), -Blks([Blk(Tid(515, "@abort"), Attrs([Attr("address","0x5F0")]), Phis([]), -Defs([Def(Tid(1_273, "%000004f9"), Attrs([Attr("address","0x5F0"), -Attr("insn","adrp x16, #65536")]), Var("R16",Imm(64)), Int(65536,64)), -Def(Tid(1_280, "%00000500"), Attrs([Attr("address","0x5F4"), -Attr("insn","ldr x17, [x16, #0xfc8]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(4040,64)),LittleEndian(),64)), -Def(Tid(1_286, "%00000506"), Attrs([Attr("address","0x5F8"), -Attr("insn","add x16, x16, #0xfc8")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(4040,64)))]), Jmps([Call(Tid(1_291, "%0000050b"), - Attrs([Attr("address","0x5FC"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), Sub(Tid(1_607, "@call_weak_fn"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x634")]), - "call_weak_fn", Args([Arg(Tid(1_664, "%00000680"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("call_weak_fn_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(519, "@call_weak_fn"), - Attrs([Attr("address","0x634")]), Phis([]), Defs([Def(Tid(522, "%0000020a"), - Attrs([Attr("address","0x634"), Attr("insn","adrp x0, #65536")]), - Var("R0",Imm(64)), Int(65536,64)), Def(Tid(529, "%00000211"), - Attrs([Attr("address","0x638"), Attr("insn","ldr x0, [x0, #0xfe8]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(4072,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(535, "%00000217"), Attrs([Attr("address","0x63C"), -Attr("insn","cbz x0, #0x8")]), EQ(Var("R0",Imm(64)),Int(0,64)), -Direct(Tid(533, "%00000215"))), Goto(Tid(1_644, "%0000066c"), Attrs([]), - Int(1,1), Direct(Tid(1_045, "%00000415")))])), Blk(Tid(533, "%00000215"), - Attrs([Attr("address","0x644")]), Phis([]), Defs([]), -Jmps([Call(Tid(541, "%0000021d"), Attrs([Attr("address","0x644"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))])), -Blk(Tid(1_045, "%00000415"), Attrs([Attr("address","0x640")]), Phis([]), -Defs([]), Jmps([Goto(Tid(1_048, "%00000418"), Attrs([Attr("address","0x640"), -Attr("insn","b #-0x60")]), Int(1,1), -Direct(Tid(1_046, "@__gmon_start__")))])), Blk(Tid(1_046, "@__gmon_start__"), - Attrs([Attr("address","0x5E0")]), Phis([]), -Defs([Def(Tid(1_251, "%000004e3"), Attrs([Attr("address","0x5E0"), -Attr("insn","adrp x16, #65536")]), Var("R16",Imm(64)), Int(65536,64)), -Def(Tid(1_258, "%000004ea"), Attrs([Attr("address","0x5E4"), -Attr("insn","ldr x17, [x16, #0xfc0]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(4032,64)),LittleEndian(),64)), -Def(Tid(1_264, "%000004f0"), Attrs([Attr("address","0x5E8"), -Attr("insn","add x16, x16, #0xfc0")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(4032,64)))]), Jmps([Call(Tid(1_269, "%000004f5"), - Attrs([Attr("address","0x5EC"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), -Sub(Tid(1_609, "@deregister_tm_clones"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x650")]), - "deregister_tm_clones", Args([Arg(Tid(1_665, "%00000681"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("deregister_tm_clones_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(547, "@deregister_tm_clones"), - Attrs([Attr("address","0x650")]), Phis([]), Defs([Def(Tid(550, "%00000226"), - Attrs([Attr("address","0x650"), Attr("insn","adrp x0, #69632")]), - Var("R0",Imm(64)), Int(69632,64)), Def(Tid(556, "%0000022c"), - Attrs([Attr("address","0x654"), Attr("insn","add x0, x0, #0x10")]), - Var("R0",Imm(64)), PLUS(Var("R0",Imm(64)),Int(16,64))), -Def(Tid(561, "%00000231"), Attrs([Attr("address","0x658"), -Attr("insn","adrp x1, #69632")]), Var("R1",Imm(64)), Int(69632,64)), -Def(Tid(567, "%00000237"), Attrs([Attr("address","0x65C"), -Attr("insn","add x1, x1, #0x10")]), Var("R1",Imm(64)), -PLUS(Var("R1",Imm(64)),Int(16,64))), Def(Tid(573, "%0000023d"), - Attrs([Attr("address","0x660"), Attr("insn","cmp x1, x0")]), - Var("#1",Imm(64)), NOT(Var("R0",Imm(64)))), Def(Tid(578, "%00000242"), - Attrs([Attr("address","0x660"), Attr("insn","cmp x1, x0")]), - Var("#2",Imm(64)), PLUS(Var("R1",Imm(64)),NOT(Var("R0",Imm(64))))), -Def(Tid(584, "%00000248"), Attrs([Attr("address","0x660"), -Attr("insn","cmp x1, x0")]), Var("VF",Imm(1)), -NEQ(SIGNED(65,PLUS(Var("#2",Imm(64)),Int(1,64))),PLUS(PLUS(SIGNED(65,Var("R1",Imm(64))),SIGNED(65,Var("#1",Imm(64)))),Int(1,65)))), -Def(Tid(590, "%0000024e"), Attrs([Attr("address","0x660"), -Attr("insn","cmp x1, x0")]), Var("CF",Imm(1)), -NEQ(UNSIGNED(65,PLUS(Var("#2",Imm(64)),Int(1,64))),PLUS(PLUS(UNSIGNED(65,Var("R1",Imm(64))),UNSIGNED(65,Var("#1",Imm(64)))),Int(1,65)))), -Def(Tid(594, "%00000252"), Attrs([Attr("address","0x660"), -Attr("insn","cmp x1, x0")]), Var("ZF",Imm(1)), -EQ(PLUS(Var("#2",Imm(64)),Int(1,64)),Int(0,64))), Def(Tid(598, "%00000256"), - Attrs([Attr("address","0x660"), Attr("insn","cmp x1, x0")]), - Var("NF",Imm(1)), Extract(63,63,PLUS(Var("#2",Imm(64)),Int(1,64))))]), -Jmps([Goto(Tid(604, "%0000025c"), Attrs([Attr("address","0x664"), -Attr("insn","b.eq #0x18")]), EQ(Var("ZF",Imm(1)),Int(1,1)), -Direct(Tid(602, "%0000025a"))), Goto(Tid(1_645, "%0000066d"), Attrs([]), - Int(1,1), Direct(Tid(1_015, "%000003f7")))])), Blk(Tid(1_015, "%000003f7"), - Attrs([Attr("address","0x668")]), Phis([]), -Defs([Def(Tid(1_018, "%000003fa"), Attrs([Attr("address","0x668"), -Attr("insn","adrp x1, #65536")]), Var("R1",Imm(64)), Int(65536,64)), -Def(Tid(1_025, "%00000401"), Attrs([Attr("address","0x66C"), -Attr("insn","ldr x1, [x1, #0xfd8]")]), Var("R1",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R1",Imm(64)),Int(4056,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(1_030, "%00000406"), Attrs([Attr("address","0x670"), -Attr("insn","cbz x1, #0xc")]), EQ(Var("R1",Imm(64)),Int(0,64)), -Direct(Tid(602, "%0000025a"))), Goto(Tid(1_646, "%0000066e"), Attrs([]), - Int(1,1), Direct(Tid(1_034, "%0000040a")))])), Blk(Tid(602, "%0000025a"), - Attrs([Attr("address","0x67C")]), Phis([]), Defs([]), -Jmps([Call(Tid(610, "%00000262"), Attrs([Attr("address","0x67C"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))])), -Blk(Tid(1_034, "%0000040a"), Attrs([Attr("address","0x674")]), Phis([]), -Defs([Def(Tid(1_038, "%0000040e"), Attrs([Attr("address","0x674"), -Attr("insn","mov x16, x1")]), Var("R16",Imm(64)), Var("R1",Imm(64)))]), -Jmps([Call(Tid(1_043, "%00000413"), Attrs([Attr("address","0x678"), -Attr("insn","br x16")]), Int(1,1), (Indirect(Var("R16",Imm(64))),))]))])), -Sub(Tid(1_612, "@frame_dummy"), Attrs([Attr("c.proto","signed (*)(void)"), -Attr("address","0x710")]), "frame_dummy", Args([Arg(Tid(1_666, "%00000682"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("frame_dummy_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(762, "@frame_dummy"), - Attrs([Attr("address","0x710")]), Phis([]), Defs([]), -Jmps([Call(Tid(764, "%000002fc"), Attrs([Attr("address","0x710"), -Attr("insn","b #-0x90")]), Int(1,1), -(Direct(Tid(1_618, "@register_tm_clones")),))]))])), Sub(Tid(1_613, "@main"), - Attrs([Attr("c.proto","signed (*)(signed argc, const char** argv)"), -Attr("address","0x714")]), "main", Args([Arg(Tid(1_667, "%00000683"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("main_argc",Imm(32)), -LOW(32,Var("R0",Imm(64))), In()), Arg(Tid(1_668, "%00000684"), - Attrs([Attr("c.layout","**[char : 8]"), Attr("c.data","Top:u8 ptr ptr"), -Attr("c.type"," const char**")]), Var("main_argv",Imm(64)), -Var("R1",Imm(64)), Both()), Arg(Tid(1_669, "%00000685"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("main_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(766, "@main"), - Attrs([Attr("address","0x714")]), Phis([]), Defs([Def(Tid(770, "%00000302"), - Attrs([Attr("address","0x714"), Attr("insn","sub sp, sp, #0x10")]), - Var("R31",Imm(64)), PLUS(Var("R31",Imm(64)),Int(18446744073709551600,64))), -Def(Tid(775, "%00000307"), Attrs([Attr("address","0x718"), -Attr("insn","mov w0, #0x1")]), Var("R0",Imm(64)), Int(1,64)), -Def(Tid(783, "%0000030f"), Attrs([Attr("address","0x71C"), -Attr("insn","str w0, [sp, #0x8]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),Extract(31,0,Var("R0",Imm(64))),LittleEndian(),32)), -Def(Tid(790, "%00000316"), Attrs([Attr("address","0x720"), -Attr("insn","str wzr, [sp, #0xc]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(12,64)),Int(0,32),LittleEndian(),32)), -Def(Tid(797, "%0000031d"), Attrs([Attr("address","0x724"), -Attr("insn","ldr w0, [sp, #0x8]")]), Var("R0",Imm(64)), -UNSIGNED(64,Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),LittleEndian(),32))), -Def(Tid(803, "%00000323"), Attrs([Attr("address","0x728"), -Attr("insn","cmp w0, #0x1")]), Var("#4",Imm(32)), -PLUS(Extract(31,0,Var("R0",Imm(64))),Int(4294967294,32))), -Def(Tid(808, "%00000328"), Attrs([Attr("address","0x728"), -Attr("insn","cmp w0, #0x1")]), Var("VF",Imm(1)), -NEQ(SIGNED(33,PLUS(Var("#4",Imm(32)),Int(1,32))),PLUS(SIGNED(33,Extract(31,0,Var("R0",Imm(64)))),Int(8589934591,33)))), -Def(Tid(813, "%0000032d"), Attrs([Attr("address","0x728"), -Attr("insn","cmp w0, #0x1")]), Var("CF",Imm(1)), -NEQ(UNSIGNED(33,PLUS(Var("#4",Imm(32)),Int(1,32))),PLUS(UNSIGNED(33,Extract(31,0,Var("R0",Imm(64)))),Int(4294967295,33)))), -Def(Tid(817, "%00000331"), Attrs([Attr("address","0x728"), -Attr("insn","cmp w0, #0x1")]), Var("ZF",Imm(1)), -EQ(PLUS(Var("#4",Imm(32)),Int(1,32)),Int(0,32))), Def(Tid(821, "%00000335"), - Attrs([Attr("address","0x728"), Attr("insn","cmp w0, #0x1")]), - Var("NF",Imm(1)), Extract(31,31,PLUS(Var("#4",Imm(32)),Int(1,32))))]), -Jmps([Goto(Tid(827, "%0000033b"), Attrs([Attr("address","0x72C"), -Attr("insn","b.eq #0x18")]), EQ(Var("ZF",Imm(1)),Int(1,1)), -Direct(Tid(825, "%00000339"))), Goto(Tid(1_647, "%0000066f"), Attrs([]), - Int(1,1), Direct(Tid(875, "%0000036b")))])), Blk(Tid(875, "%0000036b"), - Attrs([Attr("address","0x730")]), Phis([]), Defs([Def(Tid(880, "%00000370"), - Attrs([Attr("address","0x730"), Attr("insn","ldr w0, [sp, #0x8]")]), - Var("R0",Imm(64)), -UNSIGNED(64,Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),LittleEndian(),32))), -Def(Tid(886, "%00000376"), Attrs([Attr("address","0x734"), -Attr("insn","cmp w0, #0x3")]), Var("#5",Imm(32)), -PLUS(Extract(31,0,Var("R0",Imm(64))),Int(4294967292,32))), -Def(Tid(891, "%0000037b"), Attrs([Attr("address","0x734"), -Attr("insn","cmp w0, #0x3")]), Var("VF",Imm(1)), -NEQ(SIGNED(33,PLUS(Var("#5",Imm(32)),Int(1,32))),PLUS(SIGNED(33,Extract(31,0,Var("R0",Imm(64)))),Int(8589934589,33)))), -Def(Tid(896, "%00000380"), Attrs([Attr("address","0x734"), -Attr("insn","cmp w0, #0x3")]), Var("CF",Imm(1)), -NEQ(UNSIGNED(33,PLUS(Var("#5",Imm(32)),Int(1,32))),PLUS(UNSIGNED(33,Extract(31,0,Var("R0",Imm(64)))),Int(4294967293,33)))), -Def(Tid(900, "%00000384"), Attrs([Attr("address","0x734"), -Attr("insn","cmp w0, #0x3")]), Var("ZF",Imm(1)), -EQ(PLUS(Var("#5",Imm(32)),Int(1,32)),Int(0,32))), Def(Tid(904, "%00000388"), - Attrs([Attr("address","0x734"), Attr("insn","cmp w0, #0x3")]), - Var("NF",Imm(1)), Extract(31,31,PLUS(Var("#5",Imm(32)),Int(1,32))))]), -Jmps([Goto(Tid(909, "%0000038d"), Attrs([Attr("address","0x738"), -Attr("insn","b.ne #0x18")]), NEQ(Var("ZF",Imm(1)),Int(1,1)), -Direct(Tid(860, "%0000035c"))), Goto(Tid(1_648, "%00000670"), Attrs([]), - Int(1,1), Direct(Tid(913, "%00000391")))])), Blk(Tid(860, "%0000035c"), - Attrs([Attr("address","0x750")]), Phis([]), Defs([Def(Tid(863, "%0000035f"), - Attrs([Attr("address","0x750"), Attr("insn","mov w0, #0x5")]), - Var("R0",Imm(64)), Int(5,64)), Def(Tid(871, "%00000367"), - Attrs([Attr("address","0x754"), Attr("insn","str w0, [sp, #0xc]")]), - Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(12,64)),Extract(31,0,Var("R0",Imm(64))),LittleEndian(),32))]), -Jmps([Goto(Tid(1_649, "%00000671"), Attrs([]), Int(1,1), -Direct(Tid(844, "%0000034c")))])), Blk(Tid(913, "%00000391"), - Attrs([Attr("address","0x73C")]), Phis([]), Defs([Def(Tid(916, "%00000394"), - Attrs([Attr("address","0x73C"), Attr("insn","mov w0, #0x3")]), - Var("R0",Imm(64)), Int(3,64)), Def(Tid(924, "%0000039c"), - Attrs([Attr("address","0x740"), Attr("insn","str w0, [sp, #0xc]")]), - Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(12,64)),Extract(31,0,Var("R0",Imm(64))),LittleEndian(),32))]), -Jmps([Goto(Tid(1_650, "%00000672"), Attrs([]), Int(1,1), -Direct(Tid(825, "%00000339")))])), Blk(Tid(825, "%00000339"), - Attrs([Attr("address","0x744")]), Phis([]), Defs([Def(Tid(833, "%00000341"), - Attrs([Attr("address","0x744"), Attr("insn","mov w0, #0x1")]), - Var("R0",Imm(64)), Int(1,64)), Def(Tid(841, "%00000349"), - Attrs([Attr("address","0x748"), Attr("insn","str w0, [sp, #0xc]")]), - Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(12,64)),Extract(31,0,Var("R0",Imm(64))),LittleEndian(),32))]), -Jmps([Goto(Tid(846, "%0000034e"), Attrs([Attr("address","0x74C"), -Attr("insn","b #0x10")]), Int(1,1), Direct(Tid(844, "%0000034c")))])), -Blk(Tid(844, "%0000034c"), Attrs([Attr("address","0x75C")]), Phis([]), -Defs([Def(Tid(853, "%00000355"), Attrs([Attr("address","0x760"), -Attr("insn","add sp, sp, #0x10")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(16,64)))]), Jmps([Call(Tid(858, "%0000035a"), - Attrs([Attr("address","0x764"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), -Sub(Tid(1_618, "@register_tm_clones"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x680")]), - "register_tm_clones", Args([Arg(Tid(1_670, "%00000686"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("register_tm_clones_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(612, "@register_tm_clones"), Attrs([Attr("address","0x680")]), - Phis([]), Defs([Def(Tid(615, "%00000267"), Attrs([Attr("address","0x680"), -Attr("insn","adrp x0, #69632")]), Var("R0",Imm(64)), Int(69632,64)), -Def(Tid(621, "%0000026d"), Attrs([Attr("address","0x684"), -Attr("insn","add x0, x0, #0x10")]), Var("R0",Imm(64)), -PLUS(Var("R0",Imm(64)),Int(16,64))), Def(Tid(626, "%00000272"), - Attrs([Attr("address","0x688"), Attr("insn","adrp x1, #69632")]), - Var("R1",Imm(64)), Int(69632,64)), Def(Tid(632, "%00000278"), - Attrs([Attr("address","0x68C"), Attr("insn","add x1, x1, #0x10")]), - Var("R1",Imm(64)), PLUS(Var("R1",Imm(64)),Int(16,64))), -Def(Tid(639, "%0000027f"), Attrs([Attr("address","0x690"), -Attr("insn","sub x1, x1, x0")]), Var("R1",Imm(64)), -PLUS(PLUS(Var("R1",Imm(64)),NOT(Var("R0",Imm(64)))),Int(1,64))), -Def(Tid(645, "%00000285"), Attrs([Attr("address","0x694"), -Attr("insn","lsr x2, x1, #63")]), Var("R2",Imm(64)), -Concat(Int(0,63),Extract(63,63,Var("R1",Imm(64))))), -Def(Tid(652, "%0000028c"), Attrs([Attr("address","0x698"), -Attr("insn","add x1, x2, x1, asr #3")]), Var("R1",Imm(64)), -PLUS(Var("R2",Imm(64)),ARSHIFT(Var("R1",Imm(64)),Int(3,3)))), -Def(Tid(658, "%00000292"), Attrs([Attr("address","0x69C"), -Attr("insn","asr x1, x1, #1")]), Var("R1",Imm(64)), -SIGNED(64,Extract(63,1,Var("R1",Imm(64)))))]), -Jmps([Goto(Tid(664, "%00000298"), Attrs([Attr("address","0x6A0"), -Attr("insn","cbz x1, #0x18")]), EQ(Var("R1",Imm(64)),Int(0,64)), -Direct(Tid(662, "%00000296"))), Goto(Tid(1_651, "%00000673"), Attrs([]), - Int(1,1), Direct(Tid(985, "%000003d9")))])), Blk(Tid(985, "%000003d9"), - Attrs([Attr("address","0x6A4")]), Phis([]), Defs([Def(Tid(988, "%000003dc"), - Attrs([Attr("address","0x6A4"), Attr("insn","adrp x2, #65536")]), - Var("R2",Imm(64)), Int(65536,64)), Def(Tid(995, "%000003e3"), - Attrs([Attr("address","0x6A8"), Attr("insn","ldr x2, [x2, #0xff8]")]), - Var("R2",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R2",Imm(64)),Int(4088,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(1_000, "%000003e8"), Attrs([Attr("address","0x6AC"), -Attr("insn","cbz x2, #0xc")]), EQ(Var("R2",Imm(64)),Int(0,64)), -Direct(Tid(662, "%00000296"))), Goto(Tid(1_652, "%00000674"), Attrs([]), - Int(1,1), Direct(Tid(1_004, "%000003ec")))])), Blk(Tid(662, "%00000296"), - Attrs([Attr("address","0x6B8")]), Phis([]), Defs([]), -Jmps([Call(Tid(670, "%0000029e"), Attrs([Attr("address","0x6B8"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))])), -Blk(Tid(1_004, "%000003ec"), Attrs([Attr("address","0x6B0")]), Phis([]), -Defs([Def(Tid(1_008, "%000003f0"), Attrs([Attr("address","0x6B0"), -Attr("insn","mov x16, x2")]), Var("R16",Imm(64)), Var("R2",Imm(64)))]), -Jmps([Call(Tid(1_013, "%000003f5"), Attrs([Attr("address","0x6B4"), -Attr("insn","br x16")]), Int(1,1), -(Indirect(Var("R16",Imm(64))),))]))]))]))) \ No newline at end of file diff --git a/src/test/correct/switch/gcc/switch.bir b/src/test/correct/switch/gcc/switch.bir deleted file mode 100644 index 4b6071093..000000000 --- a/src/test/correct/switch/gcc/switch.bir +++ /dev/null @@ -1,263 +0,0 @@ -00000675: program -0000063b: sub __cxa_finalize(__cxa_finalize_result) -00000676: __cxa_finalize_result :: out u32 = low:32[R0] - -000003d5: -000004cd: R16 := 0x10000 -000004d4: R17 := mem[R16 + 0xFB8, el]:u64 -000004da: R16 := R16 + 0xFB8 -000004df: call R17 with noreturn - -0000063c: sub __do_global_dtors_aux(__do_global_dtors_aux_result) -00000677: __do_global_dtors_aux_result :: out u32 = low:32[R0] - -000002a2: -000002a6: #3 := R31 - 0x20 -000002ac: mem := mem with [#3, el]:u64 <- R29 -000002b2: mem := mem with [#3 + 8, el]:u64 <- R30 -000002b6: R31 := #3 -000002bc: R29 := R31 -000002c4: mem := mem with [R31 + 0x10, el]:u64 <- R19 -000002c9: R19 := 0x11000 -000002d0: R0 := pad:64[mem[R19 + 0x10]] -000002d7: when 31:0[R0] <> 0 goto %000002d5 -00000667: goto %0000039e - -0000039e: -000003a1: R0 := 0x10000 -000003a8: R0 := mem[R0 + 0xFE0, el]:u64 -000003ae: when R0 = 0 goto %000003ac -00000668: goto %000003c5 - -000003c5: -000003c8: R0 := 0x11000 -000003cf: R0 := mem[R0 + 8, el]:u64 -000003d4: R30 := 0x6F0 -000003d7: call @__cxa_finalize with return %000003ac - -000003ac: -000003b4: R30 := 0x6F4 -000003b6: call @deregister_tm_clones with return %000003b8 - -000003b8: -000003bb: R0 := 1 -000003c3: mem := mem with [R19 + 0x10] <- 7:0[R0] -00000669: goto %000002d5 - -000002d5: -000002df: R19 := mem[R31 + 0x10, el]:u64 -000002e6: R29 := mem[R31, el]:u64 -000002eb: R30 := mem[R31 + 8, el]:u64 -000002ef: R31 := R31 + 0x20 -000002f4: call R30 with noreturn - -00000640: sub __libc_start_main(__libc_start_main_main, __libc_start_main_arg2, __libc_start_main_arg3, __libc_start_main_auxv, __libc_start_main_result) -00000678: __libc_start_main_main :: in u64 = R0 -00000679: __libc_start_main_arg2 :: in u32 = low:32[R1] -0000067a: __libc_start_main_arg3 :: in out u64 = R2 -0000067b: __libc_start_main_auxv :: in out u64 = R3 -0000067c: __libc_start_main_result :: out u32 = low:32[R0] - -000001fb: -000004b7: R16 := 0x10000 -000004be: R17 := mem[R16 + 0xFB0, el]:u64 -000004c4: R16 := R16 + 0xFB0 -000004c9: call R17 with noreturn - -00000641: sub _fini(_fini_result) -0000067d: _fini_result :: out u32 = low:32[R0] - -0000001f: -00000025: #0 := R31 - 0x10 -0000002b: mem := mem with [#0, el]:u64 <- R29 -00000031: mem := mem with [#0 + 8, el]:u64 <- R30 -00000035: R31 := #0 -0000003b: R29 := R31 -00000042: R29 := mem[R31, el]:u64 -00000047: R30 := mem[R31 + 8, el]:u64 -0000004b: R31 := R31 + 0x10 -00000050: call R30 with noreturn - -00000642: sub _init(_init_result) -0000067e: _init_result :: out u32 = low:32[R0] - -00000588: -0000058e: #7 := R31 - 0x10 -00000594: mem := mem with [#7, el]:u64 <- R29 -0000059a: mem := mem with [#7 + 8, el]:u64 <- R30 -0000059e: R31 := #7 -000005a4: R29 := R31 -000005a9: R30 := 0x590 -000005ab: call @call_weak_fn with return %000005ad - -000005ad: -000005b2: R29 := mem[R31, el]:u64 -000005b7: R30 := mem[R31 + 8, el]:u64 -000005bb: R31 := R31 + 0x10 -000005c0: call R30 with noreturn - -00000643: sub _start(_start_result) -0000067f: _start_result :: out u32 = low:32[R0] - -000001bc: -000001c1: R29 := 0 -000001c6: R30 := 0 -000001cc: R5 := R0 -000001d3: R1 := mem[R31, el]:u64 -000001d9: R2 := R31 + 8 -000001df: R6 := R31 -000001e4: R0 := 0x10000 -000001eb: R0 := mem[R0 + 0xFF0, el]:u64 -000001f0: R3 := 0 -000001f5: R4 := 0 -000001fa: R30 := 0x630 -000001fd: call @__libc_start_main with return %000001ff - -000001ff: -00000202: R30 := 0x634 -00000205: call @abort with return %0000066a - -0000066a: -0000066b: call @call_weak_fn with noreturn - -00000646: sub abort() - - -00000203: -000004f9: R16 := 0x10000 -00000500: R17 := mem[R16 + 0xFC8, el]:u64 -00000506: R16 := R16 + 0xFC8 -0000050b: call R17 with noreturn - -00000647: sub call_weak_fn(call_weak_fn_result) -00000680: call_weak_fn_result :: out u32 = low:32[R0] - -00000207: -0000020a: R0 := 0x10000 -00000211: R0 := mem[R0 + 0xFE8, el]:u64 -00000217: when R0 = 0 goto %00000215 -0000066c: goto %00000415 - -00000215: -0000021d: call R30 with noreturn - -00000415: -00000418: goto @__gmon_start__ - -00000416: -000004e3: R16 := 0x10000 -000004ea: R17 := mem[R16 + 0xFC0, el]:u64 -000004f0: R16 := R16 + 0xFC0 -000004f5: call R17 with noreturn - -00000649: sub deregister_tm_clones(deregister_tm_clones_result) -00000681: deregister_tm_clones_result :: out u32 = low:32[R0] - -00000223: -00000226: R0 := 0x11000 -0000022c: R0 := R0 + 0x10 -00000231: R1 := 0x11000 -00000237: R1 := R1 + 0x10 -0000023d: #1 := ~R0 -00000242: #2 := R1 + ~R0 -00000248: VF := extend:65[#2 + 1] <> extend:65[R1] + extend:65[#1] + 1 -0000024e: CF := pad:65[#2 + 1] <> pad:65[R1] + pad:65[#1] + 1 -00000252: ZF := #2 + 1 = 0 -00000256: NF := 63:63[#2 + 1] -0000025c: when ZF goto %0000025a -0000066d: goto %000003f7 - -000003f7: -000003fa: R1 := 0x10000 -00000401: R1 := mem[R1 + 0xFD8, el]:u64 -00000406: when R1 = 0 goto %0000025a -0000066e: goto %0000040a - -0000025a: -00000262: call R30 with noreturn - -0000040a: -0000040e: R16 := R1 -00000413: call R16 with noreturn - -0000064c: sub frame_dummy(frame_dummy_result) -00000682: frame_dummy_result :: out u32 = low:32[R0] - -000002fa: -000002fc: call @register_tm_clones with noreturn - -0000064d: sub main(main_argc, main_argv, main_result) -00000683: main_argc :: in u32 = low:32[R0] -00000684: main_argv :: in out u64 = R1 -00000685: main_result :: out u32 = low:32[R0] - -000002fe: -00000302: R31 := R31 - 0x10 -00000307: R0 := 1 -0000030f: mem := mem with [R31 + 8, el]:u32 <- 31:0[R0] -00000316: mem := mem with [R31 + 0xC, el]:u32 <- 0 -0000031d: R0 := pad:64[mem[R31 + 8, el]:u32] -00000323: #4 := 31:0[R0] - 2 -00000328: VF := extend:33[#4 + 1] <> extend:33[31:0[R0]] - 1 -0000032d: CF := pad:33[#4 + 1] <> pad:33[31:0[R0]] + 0xFFFFFFFF -00000331: ZF := #4 + 1 = 0 -00000335: NF := 31:31[#4 + 1] -0000033b: when ZF goto %00000339 -0000066f: goto %0000036b - -0000036b: -00000370: R0 := pad:64[mem[R31 + 8, el]:u32] -00000376: #5 := 31:0[R0] - 4 -0000037b: VF := extend:33[#5 + 1] <> extend:33[31:0[R0]] - 3 -00000380: CF := pad:33[#5 + 1] <> pad:33[31:0[R0]] + 0xFFFFFFFD -00000384: ZF := #5 + 1 = 0 -00000388: NF := 31:31[#5 + 1] -0000038d: when ZF <> 1 goto %0000035c -00000670: goto %00000391 - -0000035c: -0000035f: R0 := 5 -00000367: mem := mem with [R31 + 0xC, el]:u32 <- 31:0[R0] -00000671: goto %0000034c - -00000391: -00000394: R0 := 3 -0000039c: mem := mem with [R31 + 0xC, el]:u32 <- 31:0[R0] -00000672: goto %00000339 - -00000339: -00000341: R0 := 1 -00000349: mem := mem with [R31 + 0xC, el]:u32 <- 31:0[R0] -0000034e: goto %0000034c - -0000034c: -00000355: R31 := R31 + 0x10 -0000035a: call R30 with noreturn - -00000652: sub register_tm_clones(register_tm_clones_result) -00000686: register_tm_clones_result :: out u32 = low:32[R0] - -00000264: -00000267: R0 := 0x11000 -0000026d: R0 := R0 + 0x10 -00000272: R1 := 0x11000 -00000278: R1 := R1 + 0x10 -0000027f: R1 := R1 + ~R0 + 1 -00000285: R2 := 0.63:63[R1] -0000028c: R1 := R2 + (R1 ~>> 3) -00000292: R1 := extend:64[63:1[R1]] -00000298: when R1 = 0 goto %00000296 -00000673: goto %000003d9 - -000003d9: -000003dc: R2 := 0x10000 -000003e3: R2 := mem[R2 + 0xFF8, el]:u64 -000003e8: when R2 = 0 goto %00000296 -00000674: goto %000003ec - -00000296: -0000029e: call R30 with noreturn - -000003ec: -000003f0: R16 := R2 -000003f5: call R16 with noreturn diff --git a/src/test/correct/switch/gcc/switch.expected b/src/test/correct/switch/gcc/switch.expected index 3024531c1..b2560d6a7 100644 --- a/src/test/correct/switch/gcc/switch.expected +++ b/src/test/correct/switch/gcc/switch.expected @@ -1,36 +1,8 @@ -var {:extern} CF: bv1; -var {:extern} Gamma_CF: bool; -var {:extern} Gamma_NF: bool; -var {:extern} Gamma_R0: bool; -var {:extern} Gamma_R31: bool; -var {:extern} Gamma_VF: bool; -var {:extern} Gamma_ZF: bool; var {:extern} Gamma_mem: [bv64]bool; -var {:extern} Gamma_stack: [bv64]bool; -var {:extern} NF: bv1; -var {:extern} R0: bv64; -var {:extern} R31: bv64; -var {:extern} VF: bv1; -var {:extern} ZF: bv1; var {:extern} mem: [bv64]bv8; -var {:extern} stack: [bv64]bv8; const {:extern} $_IO_stdin_used_addr: bv64; -axiom ($_IO_stdin_used_addr == 1916bv64); -function {:extern} {:bvbuiltin "bvadd"} bvadd32(bv32, bv32) returns (bv32); -function {:extern} {:bvbuiltin "bvadd"} bvadd33(bv33, bv33) returns (bv33); +axiom ($_IO_stdin_used_addr == 4196312bv64); function {:extern} {:bvbuiltin "bvadd"} bvadd64(bv64, bv64) returns (bv64); -function {:extern} {:bvbuiltin "bvcomp"} bvcomp1(bv1, bv1) returns (bv1); -function {:extern} {:bvbuiltin "bvcomp"} bvcomp32(bv32, bv32) returns (bv1); -function {:extern} {:bvbuiltin "bvcomp"} bvcomp33(bv33, bv33) returns (bv1); -function {:extern} {:bvbuiltin "bvnot"} bvnot1(bv1) returns (bv1); -function {:extern} gamma_load32(gammaMap: [bv64]bool, index: bv64) returns (bool) { - (gammaMap[bvadd64(index, 3bv64)] && (gammaMap[bvadd64(index, 2bv64)] && (gammaMap[bvadd64(index, 1bv64)] && gammaMap[index]))) -} - -function {:extern} gamma_store32(gammaMap: [bv64]bool, index: bv64, value: bool) returns ([bv64]bool) { - gammaMap[index := value][bvadd64(index, 1bv64) := value][bvadd64(index, 2bv64) := value][bvadd64(index, 3bv64) := value] -} - function {:extern} memory_load32_le(memory: [bv64]bv8, index: bv64) returns (bv32) { (memory[bvadd64(index, 3bv64)] ++ (memory[bvadd64(index, 2bv64)] ++ (memory[bvadd64(index, 1bv64)] ++ memory[index]))) } @@ -39,22 +11,11 @@ function {:extern} memory_load64_le(memory: [bv64]bv8, index: bv64) returns (bv6 (memory[bvadd64(index, 7bv64)] ++ (memory[bvadd64(index, 6bv64)] ++ (memory[bvadd64(index, 5bv64)] ++ (memory[bvadd64(index, 4bv64)] ++ (memory[bvadd64(index, 3bv64)] ++ (memory[bvadd64(index, 2bv64)] ++ (memory[bvadd64(index, 1bv64)] ++ memory[index]))))))) } -function {:extern} memory_store32_le(memory: [bv64]bv8, index: bv64, value: bv32) returns ([bv64]bv8) { - memory[index := value[8:0]][bvadd64(index, 1bv64) := value[16:8]][bvadd64(index, 2bv64) := value[24:16]][bvadd64(index, 3bv64) := value[32:24]] -} - -function {:extern} {:bvbuiltin "sign_extend 1"} sign_extend1_32(bv32) returns (bv33); -function {:extern} {:bvbuiltin "zero_extend 1"} zero_extend1_32(bv32) returns (bv33); -function {:extern} {:bvbuiltin "zero_extend 32"} zero_extend32_32(bv32) returns (bv64); procedure {:extern} rely(); modifies Gamma_mem, mem; ensures (Gamma_mem == old(Gamma_mem)); ensures (mem == old(mem)); - free ensures (memory_load32_le(mem, 1916bv64) == 131073bv32); - free ensures (memory_load64_le(mem, 69016bv64) == 1808bv64); - free ensures (memory_load64_le(mem, 69024bv64) == 1728bv64); - free ensures (memory_load64_le(mem, 69616bv64) == 1812bv64); - free ensures (memory_load64_le(mem, 69640bv64) == 69640bv64); + free ensures (memory_load32_le(mem, 4196312bv64) == 131073bv32); procedure {:extern} rely_transitive(); modifies Gamma_mem, mem; @@ -72,101 +33,19 @@ procedure {:extern} rely_reflexive(); procedure {:extern} guarantee_reflexive(); modifies Gamma_mem, mem; -procedure main_1812(); - modifies CF, Gamma_CF, Gamma_NF, Gamma_R0, Gamma_R31, Gamma_VF, Gamma_ZF, Gamma_stack, NF, R0, R31, VF, ZF, stack; - free requires (memory_load64_le(mem, 69632bv64) == 0bv64); - free requires (memory_load64_le(mem, 69640bv64) == 69640bv64); - free requires (memory_load32_le(mem, 1916bv64) == 131073bv32); - free requires (memory_load64_le(mem, 69016bv64) == 1808bv64); - free requires (memory_load64_le(mem, 69024bv64) == 1728bv64); - free requires (memory_load64_le(mem, 69616bv64) == 1812bv64); - free requires (memory_load64_le(mem, 69640bv64) == 69640bv64); - free ensures (Gamma_R31 == old(Gamma_R31)); - free ensures (R31 == old(R31)); - free ensures (memory_load32_le(mem, 1916bv64) == 131073bv32); - free ensures (memory_load64_le(mem, 69016bv64) == 1808bv64); - free ensures (memory_load64_le(mem, 69024bv64) == 1728bv64); - free ensures (memory_load64_le(mem, 69616bv64) == 1812bv64); - free ensures (memory_load64_le(mem, 69640bv64) == 69640bv64); +procedure main(); + free requires (memory_load64_le(mem, 4325376bv64) == 0bv64); + free requires (memory_load64_le(mem, 4325384bv64) == 0bv64); + free requires (memory_load32_le(mem, 4196312bv64) == 131073bv32); + free ensures (memory_load32_le(mem, 4196312bv64) == 131073bv32); -implementation main_1812() +implementation main() { - var #4: bv32; - var #5: bv32; - var Gamma_#4: bool; - var Gamma_#5: bool; - var Gamma_load18: bool; - var Gamma_load19: bool; - var load18: bv32; - var load19: bv32; lmain: assume {:captureState "lmain"} true; - R31, Gamma_R31 := bvadd64(R31, 18446744073709551600bv64), Gamma_R31; - R0, Gamma_R0 := 1bv64, true; - stack, Gamma_stack := memory_store32_le(stack, bvadd64(R31, 8bv64), R0[32:0]), gamma_store32(Gamma_stack, bvadd64(R31, 8bv64), Gamma_R0); - assume {:captureState "%0000030f"} true; - stack, Gamma_stack := memory_store32_le(stack, bvadd64(R31, 12bv64), 0bv32), gamma_store32(Gamma_stack, bvadd64(R31, 12bv64), true); - assume {:captureState "%00000316"} true; - load18, Gamma_load18 := memory_load32_le(stack, bvadd64(R31, 8bv64)), gamma_load32(Gamma_stack, bvadd64(R31, 8bv64)); - R0, Gamma_R0 := zero_extend32_32(load18), Gamma_load18; - #4, Gamma_#4 := bvadd32(R0[32:0], 4294967294bv32), Gamma_R0; - VF, Gamma_VF := bvnot1(bvcomp33(sign_extend1_32(bvadd32(#4, 1bv32)), bvadd33(sign_extend1_32(R0[32:0]), 8589934591bv33))), (Gamma_R0 && Gamma_#4); - CF, Gamma_CF := bvnot1(bvcomp33(zero_extend1_32(bvadd32(#4, 1bv32)), bvadd33(zero_extend1_32(R0[32:0]), 4294967295bv33))), (Gamma_R0 && Gamma_#4); - ZF, Gamma_ZF := bvcomp32(bvadd32(#4, 1bv32), 0bv32), Gamma_#4; - NF, Gamma_NF := bvadd32(#4, 1bv32)[32:31], Gamma_#4; - assert Gamma_ZF; - goto lmain_goto_l00000339, lmain_goto_l0000036b; - lmain_goto_l0000036b: - assume {:captureState "lmain_goto_l0000036b"} true; - assume (bvcomp1(ZF, 1bv1) == 0bv1); - load19, Gamma_load19 := memory_load32_le(stack, bvadd64(R31, 8bv64)), gamma_load32(Gamma_stack, bvadd64(R31, 8bv64)); - R0, Gamma_R0 := zero_extend32_32(load19), Gamma_load19; - #5, Gamma_#5 := bvadd32(R0[32:0], 4294967292bv32), Gamma_R0; - VF, Gamma_VF := bvnot1(bvcomp33(sign_extend1_32(bvadd32(#5, 1bv32)), bvadd33(sign_extend1_32(R0[32:0]), 8589934589bv33))), (Gamma_R0 && Gamma_#5); - CF, Gamma_CF := bvnot1(bvcomp33(zero_extend1_32(bvadd32(#5, 1bv32)), bvadd33(zero_extend1_32(R0[32:0]), 4294967293bv33))), (Gamma_R0 && Gamma_#5); - ZF, Gamma_ZF := bvcomp32(bvadd32(#5, 1bv32), 0bv32), Gamma_#5; - NF, Gamma_NF := bvadd32(#5, 1bv32)[32:31], Gamma_#5; - goto l0000036b; - l0000036b: - assume {:captureState "l0000036b"} true; - assert Gamma_ZF; - goto l0000036b_goto_l0000035c, l0000036b_goto_l00000391; - l0000036b_goto_l00000391: - assume {:captureState "l0000036b_goto_l00000391"} true; - assume (bvnot1(bvcomp1(ZF, 1bv1)) == 0bv1); - R0, Gamma_R0 := 3bv64, true; - stack, Gamma_stack := memory_store32_le(stack, bvadd64(R31, 12bv64), R0[32:0]), gamma_store32(Gamma_stack, bvadd64(R31, 12bv64), Gamma_R0); - assume {:captureState "%0000039c"} true; - goto l00000391; - l00000391: - assume {:captureState "l00000391"} true; - goto l00000339; - l0000036b_goto_l0000035c: - assume {:captureState "l0000036b_goto_l0000035c"} true; - assume (bvnot1(bvcomp1(ZF, 1bv1)) != 0bv1); - R0, Gamma_R0 := 5bv64, true; - stack, Gamma_stack := memory_store32_le(stack, bvadd64(R31, 12bv64), R0[32:0]), gamma_store32(Gamma_stack, bvadd64(R31, 12bv64), Gamma_R0); - assume {:captureState "%00000367"} true; - goto l0000035c; - l0000035c: - assume {:captureState "l0000035c"} true; - goto l0000034c; - lmain_goto_l00000339: - assume {:captureState "lmain_goto_l00000339"} true; - assume (bvcomp1(ZF, 1bv1) != 0bv1); - goto l00000339; - l00000339: - assume {:captureState "l00000339"} true; - R0, Gamma_R0 := 1bv64, true; - stack, Gamma_stack := memory_store32_le(stack, bvadd64(R31, 12bv64), R0[32:0]), gamma_store32(Gamma_stack, bvadd64(R31, 12bv64), Gamma_R0); - assume {:captureState "%00000349"} true; - goto l0000034c; - l0000034c: - assume {:captureState "l0000034c"} true; - R31, Gamma_R31 := bvadd64(R31, 16bv64), Gamma_R31; - goto main_1812_basil_return; - main_1812_basil_return: - assume {:captureState "main_1812_basil_return"} true; + goto main_basil_return; + main_basil_return: + assume {:captureState "main_basil_return"} true; return; } diff --git a/src/test/correct/switch/gcc/switch.gts b/src/test/correct/switch/gcc/switch.gts deleted file mode 100644 index 9c6837d38..000000000 Binary files a/src/test/correct/switch/gcc/switch.gts and /dev/null differ diff --git a/src/test/correct/switch/gcc/switch.md5sum b/src/test/correct/switch/gcc/switch.md5sum new file mode 100644 index 000000000..6e2e83c3f --- /dev/null +++ b/src/test/correct/switch/gcc/switch.md5sum @@ -0,0 +1,5 @@ +b2f2065f081071d5cb51b58cdeb28855 correct/switch/gcc/a.out +8ccd766670b5a393bf8801be7216eb90 correct/switch/gcc/switch.adt +abf9556e420d741207860fc59ad45e7d correct/switch/gcc/switch.bir +f358ea2392a914c2e3ddfa908489b3b3 correct/switch/gcc/switch.relf +6dc9c73ede188d5f0afb37874eae54c3 correct/switch/gcc/switch.gts diff --git a/src/test/correct/switch/gcc/switch.relf b/src/test/correct/switch/gcc/switch.relf deleted file mode 100644 index e4872d126..000000000 --- a/src/test/correct/switch/gcc/switch.relf +++ /dev/null @@ -1,119 +0,0 @@ - -Relocation section '.rela.dyn' at offset 0x460 contains 8 entries: - Offset Info Type Symbol's Value Symbol's Name + Addend -0000000000010d98 0000000000000403 R_AARCH64_RELATIVE 710 -0000000000010da0 0000000000000403 R_AARCH64_RELATIVE 6c0 -0000000000010ff0 0000000000000403 R_AARCH64_RELATIVE 714 -0000000000011008 0000000000000403 R_AARCH64_RELATIVE 11008 -0000000000010fd8 0000000400000401 R_AARCH64_GLOB_DAT 0000000000000000 _ITM_deregisterTMCloneTable + 0 -0000000000010fe0 0000000500000401 R_AARCH64_GLOB_DAT 0000000000000000 __cxa_finalize@GLIBC_2.17 + 0 -0000000000010fe8 0000000600000401 R_AARCH64_GLOB_DAT 0000000000000000 __gmon_start__ + 0 -0000000000010ff8 0000000800000401 R_AARCH64_GLOB_DAT 0000000000000000 _ITM_registerTMCloneTable + 0 - -Relocation section '.rela.plt' at offset 0x520 contains 4 entries: - Offset Info Type Symbol's Value Symbol's Name + Addend -0000000000010fb0 0000000300000402 R_AARCH64_JUMP_SLOT 0000000000000000 __libc_start_main@GLIBC_2.34 + 0 -0000000000010fb8 0000000500000402 R_AARCH64_JUMP_SLOT 0000000000000000 __cxa_finalize@GLIBC_2.17 + 0 -0000000000010fc0 0000000600000402 R_AARCH64_JUMP_SLOT 0000000000000000 __gmon_start__ + 0 -0000000000010fc8 0000000700000402 R_AARCH64_JUMP_SLOT 0000000000000000 abort@GLIBC_2.17 + 0 - -Symbol table '.dynsym' contains 9 entries: - Num: Value Size Type Bind Vis Ndx Name - 0: 0000000000000000 0 NOTYPE LOCAL DEFAULT UND - 1: 0000000000000580 0 SECTION LOCAL DEFAULT 11 .init - 2: 0000000000011000 0 SECTION LOCAL DEFAULT 22 .data - 3: 0000000000000000 0 FUNC GLOBAL DEFAULT UND __libc_start_main@GLIBC_2.34 (2) - 4: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_deregisterTMCloneTable - 5: 0000000000000000 0 FUNC WEAK DEFAULT UND __cxa_finalize@GLIBC_2.17 (3) - 6: 0000000000000000 0 NOTYPE WEAK DEFAULT UND __gmon_start__ - 7: 0000000000000000 0 FUNC GLOBAL DEFAULT UND abort@GLIBC_2.17 (3) - 8: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_registerTMCloneTable - -Symbol table '.symtab' contains 86 entries: - Num: Value Size Type Bind Vis Ndx Name - 0: 0000000000000000 0 NOTYPE LOCAL DEFAULT UND - 1: 0000000000000238 0 SECTION LOCAL DEFAULT 1 .interp - 2: 0000000000000254 0 SECTION LOCAL DEFAULT 2 .note.gnu.build-id - 3: 0000000000000278 0 SECTION LOCAL DEFAULT 3 .note.ABI-tag - 4: 0000000000000298 0 SECTION LOCAL DEFAULT 4 .gnu.hash - 5: 00000000000002b8 0 SECTION LOCAL DEFAULT 5 .dynsym - 6: 0000000000000390 0 SECTION LOCAL DEFAULT 6 .dynstr - 7: 000000000000041e 0 SECTION LOCAL DEFAULT 7 .gnu.version - 8: 0000000000000430 0 SECTION LOCAL DEFAULT 8 .gnu.version_r - 9: 0000000000000460 0 SECTION LOCAL DEFAULT 9 .rela.dyn - 10: 0000000000000520 0 SECTION LOCAL DEFAULT 10 .rela.plt - 11: 0000000000000580 0 SECTION LOCAL DEFAULT 11 .init - 12: 00000000000005a0 0 SECTION LOCAL DEFAULT 12 .plt - 13: 0000000000000600 0 SECTION LOCAL DEFAULT 13 .text - 14: 0000000000000768 0 SECTION LOCAL DEFAULT 14 .fini - 15: 000000000000077c 0 SECTION LOCAL DEFAULT 15 .rodata - 16: 0000000000000780 0 SECTION LOCAL DEFAULT 16 .eh_frame_hdr - 17: 00000000000007c0 0 SECTION LOCAL DEFAULT 17 .eh_frame - 18: 0000000000010d98 0 SECTION LOCAL DEFAULT 18 .init_array - 19: 0000000000010da0 0 SECTION LOCAL DEFAULT 19 .fini_array - 20: 0000000000010da8 0 SECTION LOCAL DEFAULT 20 .dynamic - 21: 0000000000010f98 0 SECTION LOCAL DEFAULT 21 .got - 22: 0000000000011000 0 SECTION LOCAL DEFAULT 22 .data - 23: 0000000000011010 0 SECTION LOCAL DEFAULT 23 .bss - 24: 0000000000000000 0 SECTION LOCAL DEFAULT 24 .comment - 25: 0000000000000000 0 FILE LOCAL DEFAULT ABS Scrt1.o - 26: 0000000000000278 0 NOTYPE LOCAL DEFAULT 3 $d - 27: 0000000000000278 32 OBJECT LOCAL DEFAULT 3 __abi_tag - 28: 0000000000000600 0 NOTYPE LOCAL DEFAULT 13 $x - 29: 00000000000007d4 0 NOTYPE LOCAL DEFAULT 17 $d - 30: 000000000000077c 0 NOTYPE LOCAL DEFAULT 15 $d - 31: 0000000000000000 0 FILE LOCAL DEFAULT ABS crti.o - 32: 0000000000000634 0 NOTYPE LOCAL DEFAULT 13 $x - 33: 0000000000000634 20 FUNC LOCAL DEFAULT 13 call_weak_fn - 34: 0000000000000580 0 NOTYPE LOCAL DEFAULT 11 $x - 35: 0000000000000768 0 NOTYPE LOCAL DEFAULT 14 $x - 36: 0000000000000000 0 FILE LOCAL DEFAULT ABS crtn.o - 37: 0000000000000590 0 NOTYPE LOCAL DEFAULT 11 $x - 38: 0000000000000774 0 NOTYPE LOCAL DEFAULT 14 $x - 39: 0000000000000000 0 FILE LOCAL DEFAULT ABS crtstuff.c - 40: 0000000000000650 0 NOTYPE LOCAL DEFAULT 13 $x - 41: 0000000000000650 0 FUNC LOCAL DEFAULT 13 deregister_tm_clones - 42: 0000000000000680 0 FUNC LOCAL DEFAULT 13 register_tm_clones - 43: 0000000000011008 0 NOTYPE LOCAL DEFAULT 22 $d - 44: 00000000000006c0 0 FUNC LOCAL DEFAULT 13 __do_global_dtors_aux - 45: 0000000000011010 1 OBJECT LOCAL DEFAULT 23 completed.0 - 46: 0000000000010da0 0 NOTYPE LOCAL DEFAULT 19 $d - 47: 0000000000010da0 0 OBJECT LOCAL DEFAULT 19 __do_global_dtors_aux_fini_array_entry - 48: 0000000000000710 0 FUNC LOCAL DEFAULT 13 frame_dummy - 49: 0000000000010d98 0 NOTYPE LOCAL DEFAULT 18 $d - 50: 0000000000010d98 0 OBJECT LOCAL DEFAULT 18 __frame_dummy_init_array_entry - 51: 00000000000007e8 0 NOTYPE LOCAL DEFAULT 17 $d - 52: 0000000000011010 0 NOTYPE LOCAL DEFAULT 23 $d - 53: 0000000000000000 0 FILE LOCAL DEFAULT ABS switch.c - 54: 0000000000000714 0 NOTYPE LOCAL DEFAULT 13 $x - 55: 0000000000000848 0 NOTYPE LOCAL DEFAULT 17 $d - 56: 0000000000000000 0 FILE LOCAL DEFAULT ABS crtstuff.c - 57: 0000000000000860 0 NOTYPE LOCAL DEFAULT 17 $d - 58: 0000000000000860 0 OBJECT LOCAL DEFAULT 17 __FRAME_END__ - 59: 0000000000000000 0 FILE LOCAL DEFAULT ABS - 60: 0000000000010da8 0 OBJECT LOCAL DEFAULT ABS _DYNAMIC - 61: 0000000000000780 0 NOTYPE LOCAL DEFAULT 16 __GNU_EH_FRAME_HDR - 62: 0000000000010fd0 0 OBJECT LOCAL DEFAULT ABS _GLOBAL_OFFSET_TABLE_ - 63: 00000000000005a0 0 NOTYPE LOCAL DEFAULT 12 $x - 64: 0000000000000000 0 FUNC GLOBAL DEFAULT UND __libc_start_main@GLIBC_2.34 - 65: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_deregisterTMCloneTable - 66: 0000000000011000 0 NOTYPE WEAK DEFAULT 22 data_start - 67: 0000000000011010 0 NOTYPE GLOBAL DEFAULT 23 __bss_start__ - 68: 0000000000000000 0 FUNC WEAK DEFAULT UND __cxa_finalize@GLIBC_2.17 - 69: 0000000000011018 0 NOTYPE GLOBAL DEFAULT 23 _bss_end__ - 70: 0000000000011010 0 NOTYPE GLOBAL DEFAULT 22 _edata - 71: 0000000000000768 0 FUNC GLOBAL HIDDEN 14 _fini - 72: 0000000000011018 0 NOTYPE GLOBAL DEFAULT 23 __bss_end__ - 73: 0000000000011000 0 NOTYPE GLOBAL DEFAULT 22 __data_start - 74: 0000000000000000 0 NOTYPE WEAK DEFAULT UND __gmon_start__ - 75: 0000000000011008 0 OBJECT GLOBAL HIDDEN 22 __dso_handle - 76: 0000000000000000 0 FUNC GLOBAL DEFAULT UND abort@GLIBC_2.17 - 77: 000000000000077c 4 OBJECT GLOBAL DEFAULT 15 _IO_stdin_used - 78: 0000000000011018 0 NOTYPE GLOBAL DEFAULT 23 _end - 79: 0000000000000600 52 FUNC GLOBAL DEFAULT 13 _start - 80: 0000000000011018 0 NOTYPE GLOBAL DEFAULT 23 __end__ - 81: 0000000000011010 0 NOTYPE GLOBAL DEFAULT 23 __bss_start - 82: 0000000000000714 84 FUNC GLOBAL DEFAULT 13 main - 83: 0000000000011010 0 OBJECT GLOBAL HIDDEN 22 __TMC_END__ - 84: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_registerTMCloneTable - 85: 0000000000000580 0 FUNC GLOBAL HIDDEN 11 _init diff --git a/src/test/correct/switch/gcc/switch_gtirb.expected b/src/test/correct/switch/gcc/switch_gtirb.expected index 3e379d7df..5a00184c3 100644 --- a/src/test/correct/switch/gcc/switch_gtirb.expected +++ b/src/test/correct/switch/gcc/switch_gtirb.expected @@ -1,35 +1,8 @@ -var {:extern} CF: bv1; -var {:extern} Gamma_CF: bool; -var {:extern} Gamma_NF: bool; -var {:extern} Gamma_R0: bool; -var {:extern} Gamma_R31: bool; -var {:extern} Gamma_VF: bool; -var {:extern} Gamma_ZF: bool; var {:extern} Gamma_mem: [bv64]bool; -var {:extern} Gamma_stack: [bv64]bool; -var {:extern} NF: bv1; -var {:extern} R0: bv64; -var {:extern} R31: bv64; -var {:extern} VF: bv1; -var {:extern} ZF: bv1; var {:extern} mem: [bv64]bv8; -var {:extern} stack: [bv64]bv8; const {:extern} $_IO_stdin_used_addr: bv64; -axiom ($_IO_stdin_used_addr == 1916bv64); -function {:extern} {:bvbuiltin "bvadd"} bvadd32(bv32, bv32) returns (bv32); -function {:extern} {:bvbuiltin "bvadd"} bvadd33(bv33, bv33) returns (bv33); +axiom ($_IO_stdin_used_addr == 4196312bv64); function {:extern} {:bvbuiltin "bvadd"} bvadd64(bv64, bv64) returns (bv64); -function {:extern} {:bvbuiltin "bvcomp"} bvcomp32(bv32, bv32) returns (bv1); -function {:extern} {:bvbuiltin "bvcomp"} bvcomp33(bv33, bv33) returns (bv1); -function {:extern} {:bvbuiltin "bvnot"} bvnot1(bv1) returns (bv1); -function {:extern} gamma_load32(gammaMap: [bv64]bool, index: bv64) returns (bool) { - (gammaMap[bvadd64(index, 3bv64)] && (gammaMap[bvadd64(index, 2bv64)] && (gammaMap[bvadd64(index, 1bv64)] && gammaMap[index]))) -} - -function {:extern} gamma_store32(gammaMap: [bv64]bool, index: bv64, value: bool) returns ([bv64]bool) { - gammaMap[index := value][bvadd64(index, 1bv64) := value][bvadd64(index, 2bv64) := value][bvadd64(index, 3bv64) := value] -} - function {:extern} memory_load32_le(memory: [bv64]bv8, index: bv64) returns (bv32) { (memory[bvadd64(index, 3bv64)] ++ (memory[bvadd64(index, 2bv64)] ++ (memory[bvadd64(index, 1bv64)] ++ memory[index]))) } @@ -38,22 +11,11 @@ function {:extern} memory_load64_le(memory: [bv64]bv8, index: bv64) returns (bv6 (memory[bvadd64(index, 7bv64)] ++ (memory[bvadd64(index, 6bv64)] ++ (memory[bvadd64(index, 5bv64)] ++ (memory[bvadd64(index, 4bv64)] ++ (memory[bvadd64(index, 3bv64)] ++ (memory[bvadd64(index, 2bv64)] ++ (memory[bvadd64(index, 1bv64)] ++ memory[index]))))))) } -function {:extern} memory_store32_le(memory: [bv64]bv8, index: bv64, value: bv32) returns ([bv64]bv8) { - memory[index := value[8:0]][bvadd64(index, 1bv64) := value[16:8]][bvadd64(index, 2bv64) := value[24:16]][bvadd64(index, 3bv64) := value[32:24]] -} - -function {:extern} {:bvbuiltin "sign_extend 1"} sign_extend1_32(bv32) returns (bv33); -function {:extern} {:bvbuiltin "zero_extend 1"} zero_extend1_32(bv32) returns (bv33); -function {:extern} {:bvbuiltin "zero_extend 32"} zero_extend32_32(bv32) returns (bv64); procedure {:extern} rely(); modifies Gamma_mem, mem; ensures (Gamma_mem == old(Gamma_mem)); ensures (mem == old(mem)); - free ensures (memory_load32_le(mem, 1916bv64) == 131073bv32); - free ensures (memory_load64_le(mem, 69016bv64) == 1808bv64); - free ensures (memory_load64_le(mem, 69024bv64) == 1728bv64); - free ensures (memory_load64_le(mem, 69616bv64) == 1812bv64); - free ensures (memory_load64_le(mem, 69640bv64) == 69640bv64); + free ensures (memory_load32_le(mem, 4196312bv64) == 131073bv32); procedure {:extern} rely_transitive(); modifies Gamma_mem, mem; @@ -71,101 +33,19 @@ procedure {:extern} rely_reflexive(); procedure {:extern} guarantee_reflexive(); modifies Gamma_mem, mem; -procedure main_1812(); - modifies CF, Gamma_CF, Gamma_NF, Gamma_R0, Gamma_R31, Gamma_VF, Gamma_ZF, Gamma_stack, NF, R0, R31, VF, ZF, stack; - free requires (memory_load64_le(mem, 69632bv64) == 0bv64); - free requires (memory_load64_le(mem, 69640bv64) == 69640bv64); - free requires (memory_load32_le(mem, 1916bv64) == 131073bv32); - free requires (memory_load64_le(mem, 69016bv64) == 1808bv64); - free requires (memory_load64_le(mem, 69024bv64) == 1728bv64); - free requires (memory_load64_le(mem, 69616bv64) == 1812bv64); - free requires (memory_load64_le(mem, 69640bv64) == 69640bv64); - free ensures (Gamma_R31 == old(Gamma_R31)); - free ensures (R31 == old(R31)); - free ensures (memory_load32_le(mem, 1916bv64) == 131073bv32); - free ensures (memory_load64_le(mem, 69016bv64) == 1808bv64); - free ensures (memory_load64_le(mem, 69024bv64) == 1728bv64); - free ensures (memory_load64_le(mem, 69616bv64) == 1812bv64); - free ensures (memory_load64_le(mem, 69640bv64) == 69640bv64); +procedure main(); + free requires (memory_load64_le(mem, 4325376bv64) == 0bv64); + free requires (memory_load64_le(mem, 4325384bv64) == 0bv64); + free requires (memory_load32_le(mem, 4196312bv64) == 131073bv32); + free ensures (memory_load32_le(mem, 4196312bv64) == 131073bv32); -implementation main_1812() +implementation main() { - var Cse0__5_1_5: bv32; - var Cse0__5_5_1: bv32; - var Gamma_Cse0__5_1_5: bool; - var Gamma_Cse0__5_5_1: bool; - var Gamma_load20: bool; - var Gamma_load21: bool; - var load20: bv32; - var load21: bv32; - main_1812__0__fTP6a10DRkW0uClOUn3VYg: - assume {:captureState "main_1812__0__fTP6a10DRkW0uClOUn3VYg"} true; - R31, Gamma_R31 := bvadd64(R31, 18446744073709551600bv64), Gamma_R31; - R0, Gamma_R0 := 1bv64, true; - stack, Gamma_stack := memory_store32_le(stack, bvadd64(R31, 8bv64), R0[32:0]), gamma_store32(Gamma_stack, bvadd64(R31, 8bv64), Gamma_R0); - assume {:captureState "1820_0"} true; - stack, Gamma_stack := memory_store32_le(stack, bvadd64(R31, 12bv64), 0bv32), gamma_store32(Gamma_stack, bvadd64(R31, 12bv64), true); - assume {:captureState "1824_0"} true; - load20, Gamma_load20 := memory_load32_le(stack, bvadd64(R31, 8bv64)), gamma_load32(Gamma_stack, bvadd64(R31, 8bv64)); - R0, Gamma_R0 := zero_extend32_32(load20), Gamma_load20; - Cse0__5_1_5, Gamma_Cse0__5_1_5 := bvadd32(R0[32:0], 4294967295bv32), Gamma_R0; - VF, Gamma_VF := bvnot1(bvcomp33(sign_extend1_32(Cse0__5_1_5), bvadd33(sign_extend1_32(R0[32:0]), 8589934591bv33))), (Gamma_R0 && Gamma_Cse0__5_1_5); - CF, Gamma_CF := bvnot1(bvcomp33(zero_extend1_32(Cse0__5_1_5), bvadd33(zero_extend1_32(R0[32:0]), 4294967295bv33))), (Gamma_R0 && Gamma_Cse0__5_1_5); - ZF, Gamma_ZF := bvcomp32(Cse0__5_1_5, 0bv32), Gamma_Cse0__5_1_5; - NF, Gamma_NF := Cse0__5_1_5[32:31], Gamma_Cse0__5_1_5; - assert Gamma_ZF; - goto main_1812__0__fTP6a10DRkW0uClOUn3VYg_goto_main_1812__3__K4NVIb_2TLqhdwKQk4e4yQ, main_1812__0__fTP6a10DRkW0uClOUn3VYg_goto_main_1812__1__qKMMRobvQhOFWJ6vLsAXWw; - main_1812__0__fTP6a10DRkW0uClOUn3VYg_goto_main_1812__1__qKMMRobvQhOFWJ6vLsAXWw: - assume {:captureState "main_1812__0__fTP6a10DRkW0uClOUn3VYg_goto_main_1812__1__qKMMRobvQhOFWJ6vLsAXWw"} true; - assume (!(ZF == 1bv1)); - load21, Gamma_load21 := memory_load32_le(stack, bvadd64(R31, 8bv64)), gamma_load32(Gamma_stack, bvadd64(R31, 8bv64)); - R0, Gamma_R0 := zero_extend32_32(load21), Gamma_load21; - Cse0__5_5_1, Gamma_Cse0__5_5_1 := bvadd32(R0[32:0], 4294967293bv32), Gamma_R0; - VF, Gamma_VF := bvnot1(bvcomp33(sign_extend1_32(Cse0__5_5_1), bvadd33(sign_extend1_32(R0[32:0]), 8589934589bv33))), (Gamma_R0 && Gamma_Cse0__5_5_1); - CF, Gamma_CF := bvnot1(bvcomp33(zero_extend1_32(Cse0__5_5_1), bvadd33(zero_extend1_32(R0[32:0]), 4294967293bv33))), (Gamma_R0 && Gamma_Cse0__5_5_1); - ZF, Gamma_ZF := bvcomp32(Cse0__5_5_1, 0bv32), Gamma_Cse0__5_5_1; - NF, Gamma_NF := Cse0__5_5_1[32:31], Gamma_Cse0__5_5_1; - goto main_1812__1__qKMMRobvQhOFWJ6vLsAXWw; - main_1812__1__qKMMRobvQhOFWJ6vLsAXWw: - assume {:captureState "main_1812__1__qKMMRobvQhOFWJ6vLsAXWw"} true; - assert Gamma_ZF; - goto main_1812__1__qKMMRobvQhOFWJ6vLsAXWw_goto_main_1812__4__DonY551VSjGOjsGSDV0czQ, main_1812__1__qKMMRobvQhOFWJ6vLsAXWw_goto_main_1812__2__0NcRUSBiRJiPUYrDF8NHDQ; - main_1812__1__qKMMRobvQhOFWJ6vLsAXWw_goto_main_1812__2__0NcRUSBiRJiPUYrDF8NHDQ: - assume {:captureState "main_1812__1__qKMMRobvQhOFWJ6vLsAXWw_goto_main_1812__2__0NcRUSBiRJiPUYrDF8NHDQ"} true; - assume (!(!(ZF == 1bv1))); - R0, Gamma_R0 := 3bv64, true; - stack, Gamma_stack := memory_store32_le(stack, bvadd64(R31, 12bv64), R0[32:0]), gamma_store32(Gamma_stack, bvadd64(R31, 12bv64), Gamma_R0); - assume {:captureState "1856_0"} true; - goto main_1812__2__0NcRUSBiRJiPUYrDF8NHDQ; - main_1812__2__0NcRUSBiRJiPUYrDF8NHDQ: - assume {:captureState "main_1812__2__0NcRUSBiRJiPUYrDF8NHDQ"} true; - goto main_1812__3__K4NVIb_2TLqhdwKQk4e4yQ; - main_1812__1__qKMMRobvQhOFWJ6vLsAXWw_goto_main_1812__4__DonY551VSjGOjsGSDV0czQ: - assume {:captureState "main_1812__1__qKMMRobvQhOFWJ6vLsAXWw_goto_main_1812__4__DonY551VSjGOjsGSDV0czQ"} true; - assume (!(ZF == 1bv1)); - R0, Gamma_R0 := 5bv64, true; - stack, Gamma_stack := memory_store32_le(stack, bvadd64(R31, 12bv64), R0[32:0]), gamma_store32(Gamma_stack, bvadd64(R31, 12bv64), Gamma_R0); - assume {:captureState "1876_0"} true; - goto main_1812__4__DonY551VSjGOjsGSDV0czQ; - main_1812__4__DonY551VSjGOjsGSDV0czQ: - assume {:captureState "main_1812__4__DonY551VSjGOjsGSDV0czQ"} true; - goto main_1812__5__9WeRIM9VQHukMzVZYtgvQA; - main_1812__0__fTP6a10DRkW0uClOUn3VYg_goto_main_1812__3__K4NVIb_2TLqhdwKQk4e4yQ: - assume {:captureState "main_1812__0__fTP6a10DRkW0uClOUn3VYg_goto_main_1812__3__K4NVIb_2TLqhdwKQk4e4yQ"} true; - assume (ZF == 1bv1); - goto main_1812__3__K4NVIb_2TLqhdwKQk4e4yQ; - main_1812__3__K4NVIb_2TLqhdwKQk4e4yQ: - assume {:captureState "main_1812__3__K4NVIb_2TLqhdwKQk4e4yQ"} true; - R0, Gamma_R0 := 1bv64, true; - stack, Gamma_stack := memory_store32_le(stack, bvadd64(R31, 12bv64), R0[32:0]), gamma_store32(Gamma_stack, bvadd64(R31, 12bv64), Gamma_R0); - assume {:captureState "1864_0"} true; - goto main_1812__5__9WeRIM9VQHukMzVZYtgvQA; - main_1812__5__9WeRIM9VQHukMzVZYtgvQA: - assume {:captureState "main_1812__5__9WeRIM9VQHukMzVZYtgvQA"} true; - R31, Gamma_R31 := bvadd64(R31, 16bv64), Gamma_R31; - goto main_1812_basil_return; - main_1812_basil_return: - assume {:captureState "main_1812_basil_return"} true; + $main$__0__$cegbDVc9S6m8Z0kHHU8BZQ: + assume {:captureState "$main$__0__$cegbDVc9S6m8Z0kHHU8BZQ"} true; + goto main_basil_return; + main_basil_return: + assume {:captureState "main_basil_return"} true; return; } diff --git a/src/test/correct/switch/gcc_O2/switch.adt b/src/test/correct/switch/gcc_O2/switch.adt deleted file mode 100644 index 8648e6cac..000000000 --- a/src/test/correct/switch/gcc_O2/switch.adt +++ /dev/null @@ -1,483 +0,0 @@ -Project(Attrs([Attr("filename","\"gcc_O2/switch.out\""), -Attr("image-specification","(declare abi (name str))\n(declare arch (name str))\n(declare base-address (addr int))\n(declare bias (off int))\n(declare bits (size int))\n(declare code-region (addr int) (size int) (off int))\n(declare code-start (addr int))\n(declare entry-point (addr int))\n(declare external-reference (addr int) (name str))\n(declare format (name str))\n(declare is-executable (flag bool))\n(declare is-little-endian (flag bool))\n(declare llvm:base-address (addr int))\n(declare llvm:code-entry (name str) (off int) (size int))\n(declare llvm:coff-import-library (name str))\n(declare llvm:coff-virtual-section-header (name str) (addr int) (size int))\n(declare llvm:elf-program-header (name str) (off int) (size int))\n(declare llvm:elf-program-header-flags (name str) (ld bool) (r bool) \n (w bool) (x bool))\n(declare llvm:elf-virtual-program-header (name str) (addr int) (size int))\n(declare llvm:entry-point (addr int))\n(declare llvm:macho-symbol (name str) (value int))\n(declare llvm:name-reference (at int) (name str))\n(declare llvm:relocation (at int) (addr int))\n(declare llvm:section-entry (name str) (addr int) (size int) (off int))\n(declare llvm:section-flags (name str) (r bool) (w bool) (x bool))\n(declare llvm:segment-command (name str) (off int) (size int))\n(declare llvm:segment-command-flags (name str) (r bool) (w bool) (x bool))\n(declare llvm:symbol-entry (name str) (addr int) (size int) (off int)\n (value int))\n(declare llvm:virtual-segment-command (name str) (addr int) (size int))\n(declare mapped (addr int) (size int) (off int))\n(declare named-region (addr int) (size int) (name str))\n(declare named-symbol (addr int) (name str))\n(declare require (name str))\n(declare section (addr int) (size int))\n(declare segment (addr int) (size int) (r bool) (w bool) (x bool))\n(declare subarch (name str))\n(declare symbol-chunk (addr int) (size int) (root int))\n(declare symbol-value (addr int) (value int))\n(declare system (name str))\n(declare vendor (name str))\n\n(abi unknown)\n(arch aarch64)\n(base-address 0)\n(bias 0)\n(bits 64)\n(code-region 1876 20 1876)\n(code-region 1536 340 1536)\n(code-region 1440 96 1440)\n(code-region 1408 24 1408)\n(code-start 1652)\n(code-start 1600)\n(code-start 1536)\n(entry-point 1600)\n(external-reference 69592 _ITM_deregisterTMCloneTable)\n(external-reference 69600 __cxa_finalize)\n(external-reference 69608 __gmon_start__)\n(external-reference 69624 _ITM_registerTMCloneTable)\n(external-reference 69552 __libc_start_main)\n(external-reference 69560 __cxa_finalize)\n(external-reference 69568 __gmon_start__)\n(external-reference 69576 abort)\n(format elf)\n(is-executable true)\n(is-little-endian true)\n(llvm:base-address 0)\n(llvm:code-entry abort 0 0)\n(llvm:code-entry __cxa_finalize 0 0)\n(llvm:code-entry __libc_start_main 0 0)\n(llvm:code-entry _init 1408 0)\n(llvm:code-entry main 1536 4)\n(llvm:code-entry _start 1600 52)\n(llvm:code-entry abort@GLIBC_2.17 0 0)\n(llvm:code-entry _fini 1876 0)\n(llvm:code-entry __cxa_finalize@GLIBC_2.17 0 0)\n(llvm:code-entry __libc_start_main@GLIBC_2.34 0 0)\n(llvm:code-entry frame_dummy 1872 0)\n(llvm:code-entry __do_global_dtors_aux 1792 0)\n(llvm:code-entry register_tm_clones 1728 0)\n(llvm:code-entry deregister_tm_clones 1680 0)\n(llvm:code-entry call_weak_fn 1652 20)\n(llvm:code-entry .fini 1876 20)\n(llvm:code-entry .text 1536 340)\n(llvm:code-entry .plt 1440 96)\n(llvm:code-entry .init 1408 24)\n(llvm:elf-program-header 08 3480 616)\n(llvm:elf-program-header 07 0 0)\n(llvm:elf-program-header 06 1900 60)\n(llvm:elf-program-header 05 596 68)\n(llvm:elf-program-header 04 3496 496)\n(llvm:elf-program-header 03 3480 632)\n(llvm:elf-program-header 02 0 2120)\n(llvm:elf-program-header 01 568 27)\n(llvm:elf-program-header 00 64 504)\n(llvm:elf-program-header-flags 08 false true false false)\n(llvm:elf-program-header-flags 07 false true true false)\n(llvm:elf-program-header-flags 06 false true false false)\n(llvm:elf-program-header-flags 05 false true false false)\n(llvm:elf-program-header-flags 04 false true true false)\n(llvm:elf-program-header-flags 03 true true true false)\n(llvm:elf-program-header-flags 02 true true false true)\n(llvm:elf-program-header-flags 01 false true false false)\n(llvm:elf-program-header-flags 00 false true false false)\n(llvm:elf-virtual-program-header 08 69016 616)\n(llvm:elf-virtual-program-header 07 0 0)\n(llvm:elf-virtual-program-header 06 1900 60)\n(llvm:elf-virtual-program-header 05 596 68)\n(llvm:elf-virtual-program-header 04 69032 496)\n(llvm:elf-virtual-program-header 03 69016 640)\n(llvm:elf-virtual-program-header 02 0 2120)\n(llvm:elf-virtual-program-header 01 568 27)\n(llvm:elf-virtual-program-header 00 64 504)\n(llvm:entry-point 1600)\n(llvm:name-reference 69576 abort)\n(llvm:name-reference 69568 __gmon_start__)\n(llvm:name-reference 69560 __cxa_finalize)\n(llvm:name-reference 69552 __libc_start_main)\n(llvm:name-reference 69624 _ITM_registerTMCloneTable)\n(llvm:name-reference 69608 __gmon_start__)\n(llvm:name-reference 69600 __cxa_finalize)\n(llvm:name-reference 69592 _ITM_deregisterTMCloneTable)\n(llvm:section-entry .shstrtab 0 250 6766)\n(llvm:section-entry .strtab 0 542 6224)\n(llvm:section-entry .symtab 0 2064 4160)\n(llvm:section-entry .comment 0 43 4112)\n(llvm:section-entry .bss 69648 8 4112)\n(llvm:section-entry .data 69632 16 4096)\n(llvm:section-entry .got 69528 104 3992)\n(llvm:section-entry .dynamic 69032 496 3496)\n(llvm:section-entry .fini_array 69024 8 3488)\n(llvm:section-entry .init_array 69016 8 3480)\n(llvm:section-entry .eh_frame 1960 160 1960)\n(llvm:section-entry .eh_frame_hdr 1900 60 1900)\n(llvm:section-entry .rodata 1896 4 1896)\n(llvm:section-entry .fini 1876 20 1876)\n(llvm:section-entry .text 1536 340 1536)\n(llvm:section-entry .plt 1440 96 1440)\n(llvm:section-entry .init 1408 24 1408)\n(llvm:section-entry .rela.plt 1312 96 1312)\n(llvm:section-entry .rela.dyn 1120 192 1120)\n(llvm:section-entry .gnu.version_r 1072 48 1072)\n(llvm:section-entry .gnu.version 1054 18 1054)\n(llvm:section-entry .dynstr 912 141 912)\n(llvm:section-entry .dynsym 696 216 696)\n(llvm:section-entry .gnu.hash 664 28 664)\n(llvm:section-entry .note.ABI-tag 632 32 632)\n(llvm:section-entry .note.gnu.build-id 596 36 596)\n(llvm:section-entry .interp 568 27 568)\n(llvm:section-flags .shstrtab true false false)\n(llvm:section-flags .strtab true false false)\n(llvm:section-flags .symtab true false false)\n(llvm:section-flags .comment true false false)\n(llvm:section-flags .bss true true false)\n(llvm:section-flags .data true true false)\n(llvm:section-flags .got true true false)\n(llvm:section-flags .dynamic true true false)\n(llvm:section-flags .fini_array true true false)\n(llvm:section-flags .init_array true true false)\n(llvm:section-flags .eh_frame true false false)\n(llvm:section-flags .eh_frame_hdr true false false)\n(llvm:section-flags .rodata true false false)\n(llvm:section-flags .fini true false true)\n(llvm:section-flags .text true false true)\n(llvm:section-flags .plt true false true)\n(llvm:section-flags .init true false true)\n(llvm:section-flags .rela.plt true false false)\n(llvm:section-flags .rela.dyn true false false)\n(llvm:section-flags .gnu.version_r true false false)\n(llvm:section-flags .gnu.version true false false)\n(llvm:section-flags .dynstr true false false)\n(llvm:section-flags .dynsym true false false)\n(llvm:section-flags .gnu.hash true false false)\n(llvm:section-flags .note.ABI-tag true false false)\n(llvm:section-flags .note.gnu.build-id true false false)\n(llvm:section-flags .interp true false false)\n(llvm:symbol-entry abort 0 0 0 0)\n(llvm:symbol-entry __cxa_finalize 0 0 0 0)\n(llvm:symbol-entry __libc_start_main 0 0 0 0)\n(llvm:symbol-entry _init 1408 0 1408 1408)\n(llvm:symbol-entry main 1536 4 1536 1536)\n(llvm:symbol-entry _start 1600 52 1600 1600)\n(llvm:symbol-entry abort@GLIBC_2.17 0 0 0 0)\n(llvm:symbol-entry _fini 1876 0 1876 1876)\n(llvm:symbol-entry __cxa_finalize@GLIBC_2.17 0 0 0 0)\n(llvm:symbol-entry __libc_start_main@GLIBC_2.34 0 0 0 0)\n(llvm:symbol-entry frame_dummy 1872 0 1872 1872)\n(llvm:symbol-entry __do_global_dtors_aux 1792 0 1792 1792)\n(llvm:symbol-entry register_tm_clones 1728 0 1728 1728)\n(llvm:symbol-entry deregister_tm_clones 1680 0 1680 1680)\n(llvm:symbol-entry call_weak_fn 1652 20 1652 1652)\n(mapped 0 2120 0)\n(mapped 69016 632 3480)\n(named-region 0 2120 02)\n(named-region 69016 640 03)\n(named-region 568 27 .interp)\n(named-region 596 36 .note.gnu.build-id)\n(named-region 632 32 .note.ABI-tag)\n(named-region 664 28 .gnu.hash)\n(named-region 696 216 .dynsym)\n(named-region 912 141 .dynstr)\n(named-region 1054 18 .gnu.version)\n(named-region 1072 48 .gnu.version_r)\n(named-region 1120 192 .rela.dyn)\n(named-region 1312 96 .rela.plt)\n(named-region 1408 24 .init)\n(named-region 1440 96 .plt)\n(named-region 1536 340 .text)\n(named-region 1876 20 .fini)\n(named-region 1896 4 .rodata)\n(named-region 1900 60 .eh_frame_hdr)\n(named-region 1960 160 .eh_frame)\n(named-region 69016 8 .init_array)\n(named-region 69024 8 .fini_array)\n(named-region 69032 496 .dynamic)\n(named-region 69528 104 .got)\n(named-region 69632 16 .data)\n(named-region 69648 8 .bss)\n(named-region 0 43 .comment)\n(named-region 0 2064 .symtab)\n(named-region 0 542 .strtab)\n(named-region 0 250 .shstrtab)\n(named-symbol 1652 call_weak_fn)\n(named-symbol 1680 deregister_tm_clones)\n(named-symbol 1728 register_tm_clones)\n(named-symbol 1792 __do_global_dtors_aux)\n(named-symbol 1872 frame_dummy)\n(named-symbol 0 __libc_start_main@GLIBC_2.34)\n(named-symbol 0 __cxa_finalize@GLIBC_2.17)\n(named-symbol 1876 _fini)\n(named-symbol 0 abort@GLIBC_2.17)\n(named-symbol 1600 _start)\n(named-symbol 1536 main)\n(named-symbol 1408 _init)\n(named-symbol 0 __libc_start_main)\n(named-symbol 0 __cxa_finalize)\n(named-symbol 0 abort)\n(require libc.so.6)\n(section 568 27)\n(section 596 36)\n(section 632 32)\n(section 664 28)\n(section 696 216)\n(section 912 141)\n(section 1054 18)\n(section 1072 48)\n(section 1120 192)\n(section 1312 96)\n(section 1408 24)\n(section 1440 96)\n(section 1536 340)\n(section 1876 20)\n(section 1896 4)\n(section 1900 60)\n(section 1960 160)\n(section 69016 8)\n(section 69024 8)\n(section 69032 496)\n(section 69528 104)\n(section 69632 16)\n(section 69648 8)\n(section 0 43)\n(section 0 2064)\n(section 0 542)\n(section 0 250)\n(segment 0 2120 true false true)\n(segment 69016 640 true true false)\n(subarch v8)\n(symbol-chunk 1652 20 1652)\n(symbol-chunk 1600 52 1600)\n(symbol-chunk 1536 4 1536)\n(symbol-value 1652 1652)\n(symbol-value 1680 1680)\n(symbol-value 1728 1728)\n(symbol-value 1792 1792)\n(symbol-value 1872 1872)\n(symbol-value 1876 1876)\n(symbol-value 1600 1600)\n(symbol-value 1536 1536)\n(symbol-value 1408 1408)\n(symbol-value 0 0)\n(system \"\")\n(vendor \"\")\n"), -Attr("abi-name","\"aarch64-linux-gnu-elf\"")]), -Sections([Section(".shstrtab", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x40\x06\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x68\x1b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x38\x00\x09\x00\x40\x00\x1c\x00\x1b\x00\x06\x00\x00\x00\x04\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x04\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x48\x08\x00\x00\x00\x00\x00\x00\x48\x08\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x01\x00\x00\x00\x06\x00\x00\x00\x98\x0d\x00\x00\x00\x00\x00\x00\x98\x0d"), -Section(".strtab", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x40\x06\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x68\x1b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x38\x00\x09\x00\x40\x00\x1c\x00\x1b\x00\x06\x00\x00\x00\x04\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x04\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x48\x08\x00\x00\x00\x00\x00\x00\x48\x08\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x01\x00\x00\x00\x06\x00\x00\x00\x98\x0d\x00\x00\x00\x00\x00\x00\x98\x0d\x01\x00\x00\x00\x00\x00\x98\x0d\x01\x00\x00\x00\x00\x00\x78\x02\x00\x00\x00\x00\x00\x00\x80\x02\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x02\x00\x00\x00\x06\x00\x00\x00\xa8\x0d\x00\x00\x00\x00\x00\x00\xa8\x0d\x01\x00\x00\x00\x00\x00\xa8\x0d\x01\x00\x00\x00\x00\x00\xf0\x01\x00\x00\x00\x00\x00\x00\xf0\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x04\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x50\xe5\x74\x64\x04\x00\x00\x00\x6c\x07\x00\x00\x00\x00\x00\x00\x6c\x07\x00\x00\x00\x00\x00\x00\x6c\x07\x00\x00\x00\x00\x00\x00\x3c\x00\x00\x00\x00\x00\x00\x00\x3c\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x51\xe5\x74\x64\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x52\xe5\x74\x64\x04\x00\x00\x00\x98\x0d\x00\x00\x00\x00\x00\x00\x98\x0d\x01\x00\x00\x00\x00\x00\x98\x0d\x01\x00\x00\x00"), -Section(".symtab", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x40\x06\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x68\x1b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x38\x00\x09\x00\x40\x00\x1c\x00\x1b\x00\x06\x00\x00\x00\x04\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x04\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x48\x08\x00\x00\x00\x00\x00\x00\x48\x08\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x01\x00\x00\x00\x06\x00\x00\x00\x98\x0d\x00\x00\x00\x00\x00\x00\x98\x0d\x01\x00\x00\x00\x00\x00\x98\x0d\x01\x00\x00\x00\x00\x00\x78\x02\x00\x00\x00\x00\x00\x00\x80\x02\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x02\x00\x00\x00\x06\x00\x00\x00\xa8\x0d\x00\x00\x00\x00\x00\x00\xa8\x0d\x01\x00\x00\x00\x00\x00\xa8\x0d\x01\x00\x00\x00\x00\x00\xf0\x01\x00\x00\x00\x00\x00\x00\xf0\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x04\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x50\xe5\x74\x64\x04\x00\x00\x00\x6c\x07\x00\x00\x00\x00\x00\x00\x6c\x07\x00\x00\x00\x00\x00\x00\x6c\x07\x00\x00\x00\x00\x00\x00\x3c\x00\x00\x00\x00\x00\x00\x00\x3c\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x51\xe5\x74\x64\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x52\xe5\x74\x64\x04\x00\x00\x00\x98\x0d\x00\x00\x00\x00\x00\x00\x98\x0d\x01\x00\x00\x00\x00\x00\x98\x0d\x01\x00\x00\x00\x00\x00\x68\x02\x00\x00\x00\x00\x00\x00\x68\x02\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x2f\x6c\x69\x62\x2f\x6c\x64\x2d\x6c\x69\x6e\x75\x78\x2d\x61\x61\x72\x63\x68\x36\x34\x2e\x73\x6f\x2e\x31\x00\x00\x04\x00\x00\x00\x14\x00\x00\x00\x03\x00\x00\x00\x47\x4e\x55\x00\x8b\xdf\xb8\x3f\xc9\xd3\xa4\x18\xb9\x7f\x05\x2e\x22\x8b\x7f\x07\x6c\xc9\xa7\x24\x04\x00\x00\x00\x10\x00\x00\x00\x01\x00\x00\x00\x47\x4e\x55\x00\x00\x00\x00\x00\x03\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x01\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x0b\x00\x80\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x16\x00\x00\x10\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x48\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x22\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x22\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x73\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5f\x5f\x63\x78\x61\x5f\x66\x69\x6e\x61\x6c\x69\x7a\x65\x00\x5f\x5f\x6c\x69\x62\x63\x5f\x73\x74\x61\x72\x74\x5f\x6d\x61\x69\x6e\x00\x61\x62\x6f\x72\x74\x00\x6c\x69\x62\x63\x2e\x73\x6f\x2e\x36\x00\x47\x4c\x49\x42\x43\x5f\x32\x2e\x31\x37\x00\x47\x4c\x49\x42\x43\x5f\x32\x2e\x33\x34\x00\x5f\x49\x54\x4d\x5f\x64\x65\x72\x65\x67\x69\x73\x74\x65\x72\x54\x4d\x43\x6c\x6f\x6e\x65\x54\x61\x62\x6c\x65\x00\x5f\x5f\x67\x6d\x6f\x6e\x5f\x73\x74\x61\x72\x74\x5f\x5f\x00\x5f\x49\x54\x4d\x5f\x72\x65\x67\x69\x73\x74\x65\x72\x54\x4d\x43\x6c\x6f\x6e\x65\x54\x61\x62\x6c\x65\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x01\x00\x03\x00\x01\x00\x03\x00\x01\x00\x01\x00\x02\x00\x28\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x97\x91\x96\x06\x00\x00\x03\x00\x32\x00\x00\x00\x10\x00\x00\x00\xb4\x91\x96\x06\x00\x00\x02\x00\x3d\x00\x00\x00\x00\x00\x00\x00\x98\x0d\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x50\x07\x00\x00\x00\x00\x00\x00\xa0\x0d\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\xf0\x0f\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x00\x06\x00\x00\x00\x00\x00\x00\x08\x10\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x08\x10\x01\x00\x00\x00\x00\x00\xd8\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe0\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe8\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xf8\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xb0\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xb8\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xc0\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xc8\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1f\x20\x03\xd5\xfd\x7b\xbf\xa9\xfd\x03\x00\x91\x3a\x00\x00\x94\xfd\x7b\xc1\xa8\xc0\x03\x5f\xd6\x00\x00\x00\x00\x00\x00\x00\x00\xf0\x7b\xbf\xa9\x90\x00\x00\x90\x11\xd6\x47\xf9\x10\xa2\x3e\x91\x20\x02\x1f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x90\x00\x00\x90\x11\xda\x47\xf9\x10\xc2\x3e\x91\x20\x02\x1f\xd6\x90\x00\x00\x90\x11\xde\x47\xf9\x10\xe2\x3e\x91\x20\x02\x1f\xd6\x90\x00\x00\x90\x11\xe2\x47\xf9\x10\x02\x3f\x91\x20\x02\x1f\xd6\x90\x00\x00\x90\x11\xe6\x47\xf9\x10\x22\x3f\x91\x20\x02\x1f\xd6\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1d\x00\x80\xd2\x1e\x00\x80\xd2\xe5\x03\x00\xaa\xe1\x03\x40\xf9\xe2\x23\x00\x91\xe6\x03\x00\x91\x80\x00\x00\x90\x00\xf8\x47\xf9\x03\x00\x80\xd2\x04\x00\x80\xd2\xd5\xff\xff\x97\xe0\xff\xff\x97\x80\x00\x00\x90\x00\xf4\x47\xf9\x40\x00\x00\xb4\xd8\xff\xff\x17\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x80\x00\x00\xb0\x00\x40\x00\x91\x81\x00\x00\xb0\x21\x40\x00\x91\x3f\x00\x00\xeb\xc0\x00\x00\x54\x81\x00\x00\x90\x21\xec\x47\xf9\x61\x00\x00\xb4\xf0\x03\x01\xaa\x00\x02\x1f\xd6\xc0\x03\x5f\xd6\x80\x00\x00\xb0\x00\x40\x00\x91\x81\x00\x00\xb0\x21\x40\x00\x91\x21\x00\x00\xcb\x22\xfc\x7f\xd3\x41\x0c\x81\x8b\x21\xfc\x41\x93\xc1\x00\x00\xb4\x82\x00\x00\x90\x42\xfc\x47\xf9\x62\x00\x00\xb4\xf0\x03\x02\xaa\x00\x02\x1f\xd6\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\xfd\x7b\xbe\xa9\xfd\x03\x00\x91\xf3\x0b\x00\xf9\x93\x00\x00\xb0\x60\x42\x40\x39\x40\x01\x00\x35\x80\x00\x00\x90\x00\xf0\x47\xf9\x80\x00\x00\xb4\x80\x00\x00\xb0\x00\x04\x40\xf9\xa9\xff\xff\x97\xd8\xff\xff\x97\x20\x00\x80\x52\x60\x42\x00\x39\xf3\x0b\x40\xf9\xfd\x7b\xc2\xa8\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\xdc\xff\xff\x17\x1f\x20\x03\xd5\xfd\x7b\xbf\xa9\xfd\x03\x00\x91\xfd\x7b\xc1\xa8\xc0\x03\x5f\xd6\x01\x00\x02\x00\x01\x1b\x03\x3b\x38\x00\x00\x00\x06\x00\x00\x00\x94\xfe\xff\xff\xc4\x00\x00\x00\xd4\xfe\xff\xff\x50\x00\x00\x00\x24\xff\xff\xff\x64\x00\x00\x00\x54\xff\xff\xff\x78\x00\x00\x00\x94\xff\xff\xff\x8c\x00\x00\x00\xe4\xff\xff\xff\xb0\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x01\x7a\x52\x00\x04\x78\x1e\x01\x1b\x0c\x1f\x00\x10\x00\x00\x00\x18\x00\x00\x00\x7c\xfe\xff\xff\x34\x00\x00\x00\x00\x41\x07\x1e\x10\x00\x00\x00\x2c\x00\x00\x00\xb8\xfe\xff\xff\x30\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x40\x00\x00\x00\xd4\xfe\xff\xff\x3c\x00\x00\x00\x00\x00\x00\x00\x20\x00\x00\x00\x54\x00\x00\x00\x00\xff\xff\xff\x48\x00\x00\x00\x00\x41\x0e\x20\x9d\x04\x9e\x03"), -Section(".comment", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x40\x06\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x68\x1b\x00"), -Section(".interp", 0x238, "\x2f\x6c\x69\x62\x2f\x6c\x64\x2d\x6c\x69\x6e\x75\x78\x2d\x61\x61\x72\x63\x68\x36\x34\x2e\x73\x6f\x2e\x31\x00"), -Section(".note.gnu.build-id", 0x254, "\x04\x00\x00\x00\x14\x00\x00\x00\x03\x00\x00\x00\x47\x4e\x55\x00\x8b\xdf\xb8\x3f\xc9\xd3\xa4\x18\xb9\x7f\x05\x2e\x22\x8b\x7f\x07\x6c\xc9\xa7\x24"), -Section(".note.ABI-tag", 0x278, "\x04\x00\x00\x00\x10\x00\x00\x00\x01\x00\x00\x00\x47\x4e\x55\x00\x00\x00\x00\x00\x03\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00"), -Section(".gnu.hash", 0x298, "\x01\x00\x00\x00\x01\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".dynsym", 0x2B8, "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x0b\x00\x80\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x16\x00\x00\x10\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x48\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x22\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x22\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x73\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".dynstr", 0x390, "\x00\x5f\x5f\x63\x78\x61\x5f\x66\x69\x6e\x61\x6c\x69\x7a\x65\x00\x5f\x5f\x6c\x69\x62\x63\x5f\x73\x74\x61\x72\x74\x5f\x6d\x61\x69\x6e\x00\x61\x62\x6f\x72\x74\x00\x6c\x69\x62\x63\x2e\x73\x6f\x2e\x36\x00\x47\x4c\x49\x42\x43\x5f\x32\x2e\x31\x37\x00\x47\x4c\x49\x42\x43\x5f\x32\x2e\x33\x34\x00\x5f\x49\x54\x4d\x5f\x64\x65\x72\x65\x67\x69\x73\x74\x65\x72\x54\x4d\x43\x6c\x6f\x6e\x65\x54\x61\x62\x6c\x65\x00\x5f\x5f\x67\x6d\x6f\x6e\x5f\x73\x74\x61\x72\x74\x5f\x5f\x00\x5f\x49\x54\x4d\x5f\x72\x65\x67\x69\x73\x74\x65\x72\x54\x4d\x43\x6c\x6f\x6e\x65\x54\x61\x62\x6c\x65\x00"), -Section(".gnu.version", 0x41E, "\x00\x00\x00\x00\x00\x00\x02\x00\x01\x00\x03\x00\x01\x00\x03\x00\x01\x00"), -Section(".gnu.version_r", 0x430, "\x01\x00\x02\x00\x28\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x97\x91\x96\x06\x00\x00\x03\x00\x32\x00\x00\x00\x10\x00\x00\x00\xb4\x91\x96\x06\x00\x00\x02\x00\x3d\x00\x00\x00\x00\x00\x00\x00"), -Section(".rela.dyn", 0x460, "\x98\x0d\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x50\x07\x00\x00\x00\x00\x00\x00\xa0\x0d\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\xf0\x0f\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x00\x06\x00\x00\x00\x00\x00\x00\x08\x10\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x08\x10\x01\x00\x00\x00\x00\x00\xd8\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe0\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe8\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xf8\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".rela.plt", 0x520, "\xb0\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xb8\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xc0\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xc8\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".init", 0x580, "\x1f\x20\x03\xd5\xfd\x7b\xbf\xa9\xfd\x03\x00\x91\x3a\x00\x00\x94\xfd\x7b\xc1\xa8\xc0\x03\x5f\xd6"), -Section(".plt", 0x5A0, "\xf0\x7b\xbf\xa9\x90\x00\x00\x90\x11\xd6\x47\xf9\x10\xa2\x3e\x91\x20\x02\x1f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x90\x00\x00\x90\x11\xda\x47\xf9\x10\xc2\x3e\x91\x20\x02\x1f\xd6\x90\x00\x00\x90\x11\xde\x47\xf9\x10\xe2\x3e\x91\x20\x02\x1f\xd6\x90\x00\x00\x90\x11\xe2\x47\xf9\x10\x02\x3f\x91\x20\x02\x1f\xd6\x90\x00\x00\x90\x11\xe6\x47\xf9\x10\x22\x3f\x91\x20\x02\x1f\xd6"), -Section(".fini", 0x754, "\x1f\x20\x03\xd5\xfd\x7b\xbf\xa9\xfd\x03\x00\x91\xfd\x7b\xc1\xa8\xc0\x03\x5f\xd6"), -Section(".rodata", 0x768, "\x01\x00\x02\x00"), -Section(".eh_frame_hdr", 0x76C, "\x01\x1b\x03\x3b\x38\x00\x00\x00\x06\x00\x00\x00\x94\xfe\xff\xff\xc4\x00\x00\x00\xd4\xfe\xff\xff\x50\x00\x00\x00\x24\xff\xff\xff\x64\x00\x00\x00\x54\xff\xff\xff\x78\x00\x00\x00\x94\xff\xff\xff\x8c\x00\x00\x00\xe4\xff\xff\xff\xb0\x00\x00\x00"), -Section(".eh_frame", 0x7A8, "\x10\x00\x00\x00\x00\x00\x00\x00\x01\x7a\x52\x00\x04\x78\x1e\x01\x1b\x0c\x1f\x00\x10\x00\x00\x00\x18\x00\x00\x00\x7c\xfe\xff\xff\x34\x00\x00\x00\x00\x41\x07\x1e\x10\x00\x00\x00\x2c\x00\x00\x00\xb8\xfe\xff\xff\x30\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x40\x00\x00\x00\xd4\xfe\xff\xff\x3c\x00\x00\x00\x00\x00\x00\x00\x20\x00\x00\x00\x54\x00\x00\x00\x00\xff\xff\xff\x48\x00\x00\x00\x00\x41\x0e\x20\x9d\x04\x9e\x03\x42\x93\x02\x4e\xde\xdd\xd3\x0e\x00\x00\x00\x00\x10\x00\x00\x00\x78\x00\x00\x00\x2c\xff\xff\xff\x04\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x8c\x00\x00\x00\xc8\xfd\xff\xff\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".fini_array", 0x10DA0, "\x00\x07\x00\x00\x00\x00\x00\x00"), -Section(".dynamic", 0x10DA8, "\x01\x00\x00\x00\x00\x00\x00\x00\x28\x00\x00\x00\x00\x00\x00\x00\x0c\x00\x00\x00\x00\x00\x00\x00\x80\x05\x00\x00\x00\x00\x00\x00\x0d\x00\x00\x00\x00\x00\x00\x00\x54\x07\x00\x00\x00\x00\x00\x00\x19\x00\x00\x00\x00\x00\x00\x00\x98\x0d\x01\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x1a\x00\x00\x00\x00\x00\x00\x00\xa0\x0d\x01\x00\x00\x00\x00\x00\x1c\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\xf5\xfe\xff\x6f\x00\x00\x00\x00\x98\x02\x00\x00\x00\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x90\x03\x00\x00\x00\x00\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\xb8\x02\x00\x00\x00\x00\x00\x00\x0a\x00\x00\x00\x00\x00\x00\x00\x8d\x00\x00\x00\x00\x00\x00\x00\x0b\x00\x00\x00\x00\x00\x00\x00\x18\x00\x00\x00\x00\x00\x00\x00\x15\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x98\x0f\x01\x00\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x60\x00\x00\x00\x00\x00\x00\x00\x14\x00\x00\x00\x00\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x17\x00\x00\x00\x00\x00\x00\x00\x20\x05\x00\x00\x00\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x60\x04\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\xc0\x00\x00\x00\x00\x00\x00\x00\x09\x00\x00\x00\x00\x00\x00\x00\x18\x00\x00\x00\x00\x00\x00\x00\x1e\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\xfb\xff\xff\x6f\x00\x00\x00\x00\x01\x00\x00\x08\x00\x00\x00\x00\xfe\xff\xff\x6f\x00\x00\x00\x00\x30\x04\x00\x00\x00\x00\x00\x00\xff\xff\xff\x6f\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\xf0\xff\xff\x6f\x00\x00\x00\x00\x1e\x04\x00\x00\x00\x00\x00\x00\xf9\xff\xff\x6f\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".init_array", 0x10D98, "\x50\x07\x00\x00\x00\x00\x00\x00"), -Section(".got", 0x10F98, "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xa0\x05\x00\x00\x00\x00\x00\x00\xa0\x05\x00\x00\x00\x00\x00\x00\xa0\x05\x00\x00\x00\x00\x00\x00\xa0\x05\x00\x00\x00\x00\x00\x00\xa8\x0d\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".data", 0x11000, "\x00\x00\x00\x00\x00\x00\x00\x00\x08\x10\x01\x00\x00\x00\x00\x00"), -Section(".text", 0x600, "\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1d\x00\x80\xd2\x1e\x00\x80\xd2\xe5\x03\x00\xaa\xe1\x03\x40\xf9\xe2\x23\x00\x91\xe6\x03\x00\x91\x80\x00\x00\x90\x00\xf8\x47\xf9\x03\x00\x80\xd2\x04\x00\x80\xd2\xd5\xff\xff\x97\xe0\xff\xff\x97\x80\x00\x00\x90\x00\xf4\x47\xf9\x40\x00\x00\xb4\xd8\xff\xff\x17\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x80\x00\x00\xb0\x00\x40\x00\x91\x81\x00\x00\xb0\x21\x40\x00\x91\x3f\x00\x00\xeb\xc0\x00\x00\x54\x81\x00\x00\x90\x21\xec\x47\xf9\x61\x00\x00\xb4\xf0\x03\x01\xaa\x00\x02\x1f\xd6\xc0\x03\x5f\xd6\x80\x00\x00\xb0\x00\x40\x00\x91\x81\x00\x00\xb0\x21\x40\x00\x91\x21\x00\x00\xcb\x22\xfc\x7f\xd3\x41\x0c\x81\x8b\x21\xfc\x41\x93\xc1\x00\x00\xb4\x82\x00\x00\x90\x42\xfc\x47\xf9\x62\x00\x00\xb4\xf0\x03\x02\xaa\x00\x02\x1f\xd6\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\xfd\x7b\xbe\xa9\xfd\x03\x00\x91\xf3\x0b\x00\xf9\x93\x00\x00\xb0\x60\x42\x40\x39\x40\x01\x00\x35\x80\x00\x00\x90\x00\xf0\x47\xf9\x80\x00\x00\xb4\x80\x00\x00\xb0\x00\x04\x40\xf9\xa9\xff\xff\x97\xd8\xff\xff\x97\x20\x00\x80\x52\x60\x42\x00\x39\xf3\x0b\x40\xf9\xfd\x7b\xc2\xa8\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\xdc\xff\xff\x17")]), -Memmap([Annotation(Region(0x0,0x847), Attr("segment","02 0 2120")), -Annotation(Region(0x600,0x603), Attr("symbol","\"main\"")), -Annotation(Region(0x0,0xF9), Attr("section","\".shstrtab\"")), -Annotation(Region(0x0,0x21D), Attr("section","\".strtab\"")), -Annotation(Region(0x0,0x80F), Attr("section","\".symtab\"")), -Annotation(Region(0x0,0x2A), Attr("section","\".comment\"")), -Annotation(Region(0x238,0x252), Attr("section","\".interp\"")), -Annotation(Region(0x254,0x277), Attr("section","\".note.gnu.build-id\"")), -Annotation(Region(0x278,0x297), Attr("section","\".note.ABI-tag\"")), -Annotation(Region(0x298,0x2B3), Attr("section","\".gnu.hash\"")), -Annotation(Region(0x2B8,0x38F), Attr("section","\".dynsym\"")), -Annotation(Region(0x390,0x41C), Attr("section","\".dynstr\"")), -Annotation(Region(0x41E,0x42F), Attr("section","\".gnu.version\"")), -Annotation(Region(0x430,0x45F), Attr("section","\".gnu.version_r\"")), -Annotation(Region(0x460,0x51F), Attr("section","\".rela.dyn\"")), -Annotation(Region(0x520,0x57F), Attr("section","\".rela.plt\"")), -Annotation(Region(0x580,0x597), Attr("section","\".init\"")), -Annotation(Region(0x5A0,0x5FF), Attr("section","\".plt\"")), -Annotation(Region(0x580,0x597), Attr("code-region","()")), -Annotation(Region(0x5A0,0x5FF), Attr("code-region","()")), -Annotation(Region(0x600,0x603), Attr("symbol-info","main 0x600 4")), -Annotation(Region(0x640,0x673), Attr("symbol","\"_start\"")), -Annotation(Region(0x640,0x673), Attr("symbol-info","_start 0x640 52")), -Annotation(Region(0x674,0x687), Attr("symbol","\"call_weak_fn\"")), -Annotation(Region(0x674,0x687), Attr("symbol-info","call_weak_fn 0x674 20")), -Annotation(Region(0x754,0x767), Attr("section","\".fini\"")), -Annotation(Region(0x768,0x76B), Attr("section","\".rodata\"")), -Annotation(Region(0x76C,0x7A7), Attr("section","\".eh_frame_hdr\"")), -Annotation(Region(0x7A8,0x847), Attr("section","\".eh_frame\"")), -Annotation(Region(0x10D98,0x1100F), Attr("segment","03 0x10D98 640")), -Annotation(Region(0x10DA0,0x10DA7), Attr("section","\".fini_array\"")), -Annotation(Region(0x10DA8,0x10F97), Attr("section","\".dynamic\"")), -Annotation(Region(0x10D98,0x10D9F), Attr("section","\".init_array\"")), -Annotation(Region(0x10F98,0x10FFF), Attr("section","\".got\"")), -Annotation(Region(0x11000,0x1100F), Attr("section","\".data\"")), -Annotation(Region(0x600,0x753), Attr("section","\".text\"")), -Annotation(Region(0x600,0x753), Attr("code-region","()")), -Annotation(Region(0x754,0x767), Attr("code-region","()"))]), -Program(Tid(1_490, "%000005d2"), Attrs([]), - Subs([Sub(Tid(1_440, "@__cxa_finalize"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x5D0"), -Attr("stub","()")]), "__cxa_finalize", Args([Arg(Tid(1_491, "%000005d3"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("__cxa_finalize_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(836, "@__cxa_finalize"), - Attrs([Attr("address","0x5D0")]), Phis([]), -Defs([Def(Tid(1_084, "%0000043c"), Attrs([Attr("address","0x5D0"), -Attr("insn","adrp x16, #65536")]), Var("R16",Imm(64)), Int(65536,64)), -Def(Tid(1_091, "%00000443"), Attrs([Attr("address","0x5D4"), -Attr("insn","ldr x17, [x16, #0xfb8]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(4024,64)),LittleEndian(),64)), -Def(Tid(1_097, "%00000449"), Attrs([Attr("address","0x5D8"), -Attr("insn","add x16, x16, #0xfb8")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(4024,64)))]), Jmps([Call(Tid(1_102, "%0000044e"), - Attrs([Attr("address","0x5DC"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), -Sub(Tid(1_441, "@__do_global_dtors_aux"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x700")]), - "__do_global_dtors_aux", Args([Arg(Tid(1_492, "%000005d4"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("__do_global_dtors_aux_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(689, "@__do_global_dtors_aux"), - Attrs([Attr("address","0x700")]), Phis([]), Defs([Def(Tid(693, "%000002b5"), - Attrs([Attr("address","0x700"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("#3",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(18446744073709551584,64))), -Def(Tid(699, "%000002bb"), Attrs([Attr("address","0x700"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("#3",Imm(64)),Var("R29",Imm(64)),LittleEndian(),64)), -Def(Tid(705, "%000002c1"), Attrs([Attr("address","0x700"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("#3",Imm(64)),Int(8,64)),Var("R30",Imm(64)),LittleEndian(),64)), -Def(Tid(709, "%000002c5"), Attrs([Attr("address","0x700"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("R31",Imm(64)), -Var("#3",Imm(64))), Def(Tid(715, "%000002cb"), - Attrs([Attr("address","0x704"), Attr("insn","mov x29, sp")]), - Var("R29",Imm(64)), Var("R31",Imm(64))), Def(Tid(723, "%000002d3"), - Attrs([Attr("address","0x708"), Attr("insn","str x19, [sp, #0x10]")]), - Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(16,64)),Var("R19",Imm(64)),LittleEndian(),64)), -Def(Tid(728, "%000002d8"), Attrs([Attr("address","0x70C"), -Attr("insn","adrp x19, #69632")]), Var("R19",Imm(64)), Int(69632,64)), -Def(Tid(735, "%000002df"), Attrs([Attr("address","0x710"), -Attr("insn","ldrb w0, [x19, #0x10]")]), Var("R0",Imm(64)), -UNSIGNED(64,Load(Var("mem",Mem(64,8)),PLUS(Var("R19",Imm(64)),Int(16,64)),LittleEndian(),8)))]), -Jmps([Goto(Tid(742, "%000002e6"), Attrs([Attr("address","0x714"), -Attr("insn","cbnz w0, #0x28")]), - NEQ(Extract(31,0,Var("R0",Imm(64))),Int(0,32)), -Direct(Tid(740, "%000002e4"))), Goto(Tid(1_480, "%000005c8"), Attrs([]), - Int(1,1), Direct(Tid(781, "%0000030d")))])), Blk(Tid(781, "%0000030d"), - Attrs([Attr("address","0x718")]), Phis([]), Defs([Def(Tid(784, "%00000310"), - Attrs([Attr("address","0x718"), Attr("insn","adrp x0, #65536")]), - Var("R0",Imm(64)), Int(65536,64)), Def(Tid(791, "%00000317"), - Attrs([Attr("address","0x71C"), Attr("insn","ldr x0, [x0, #0xfe0]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(4064,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(797, "%0000031d"), Attrs([Attr("address","0x720"), -Attr("insn","cbz x0, #0x10")]), EQ(Var("R0",Imm(64)),Int(0,64)), -Direct(Tid(795, "%0000031b"))), Goto(Tid(1_481, "%000005c9"), Attrs([]), - Int(1,1), Direct(Tid(820, "%00000334")))])), Blk(Tid(820, "%00000334"), - Attrs([Attr("address","0x724")]), Phis([]), Defs([Def(Tid(823, "%00000337"), - Attrs([Attr("address","0x724"), Attr("insn","adrp x0, #69632")]), - Var("R0",Imm(64)), Int(69632,64)), Def(Tid(830, "%0000033e"), - Attrs([Attr("address","0x728"), Attr("insn","ldr x0, [x0, #0x8]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(835, "%00000343"), Attrs([Attr("address","0x72C"), -Attr("insn","bl #-0x15c")]), Var("R30",Imm(64)), Int(1840,64))]), -Jmps([Call(Tid(838, "%00000346"), Attrs([Attr("address","0x72C"), -Attr("insn","bl #-0x15c")]), Int(1,1), -(Direct(Tid(1_440, "@__cxa_finalize")),Direct(Tid(795, "%0000031b"))))])), -Blk(Tid(795, "%0000031b"), Attrs([Attr("address","0x730")]), Phis([]), -Defs([Def(Tid(803, "%00000323"), Attrs([Attr("address","0x730"), -Attr("insn","bl #-0xa0")]), Var("R30",Imm(64)), Int(1844,64))]), -Jmps([Call(Tid(805, "%00000325"), Attrs([Attr("address","0x730"), -Attr("insn","bl #-0xa0")]), Int(1,1), -(Direct(Tid(1_454, "@deregister_tm_clones")),Direct(Tid(807, "%00000327"))))])), -Blk(Tid(807, "%00000327"), Attrs([Attr("address","0x734")]), Phis([]), -Defs([Def(Tid(810, "%0000032a"), Attrs([Attr("address","0x734"), -Attr("insn","mov w0, #0x1")]), Var("R0",Imm(64)), Int(1,64)), -Def(Tid(818, "%00000332"), Attrs([Attr("address","0x738"), -Attr("insn","strb w0, [x19, #0x10]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R19",Imm(64)),Int(16,64)),Extract(7,0,Var("R0",Imm(64))),LittleEndian(),8))]), -Jmps([Goto(Tid(1_482, "%000005ca"), Attrs([]), Int(1,1), -Direct(Tid(740, "%000002e4")))])), Blk(Tid(740, "%000002e4"), - Attrs([Attr("address","0x73C")]), Phis([]), Defs([Def(Tid(750, "%000002ee"), - Attrs([Attr("address","0x73C"), Attr("insn","ldr x19, [sp, #0x10]")]), - Var("R19",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(16,64)),LittleEndian(),64)), -Def(Tid(757, "%000002f5"), Attrs([Attr("address","0x740"), -Attr("insn","ldp x29, x30, [sp], #0x20")]), Var("R29",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(762, "%000002fa"), Attrs([Attr("address","0x740"), -Attr("insn","ldp x29, x30, [sp], #0x20")]), Var("R30",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(766, "%000002fe"), Attrs([Attr("address","0x740"), -Attr("insn","ldp x29, x30, [sp], #0x20")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(32,64)))]), Jmps([Call(Tid(771, "%00000303"), - Attrs([Attr("address","0x744"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), Sub(Tid(1_445, "@__libc_start_main"), - Attrs([Attr("c.proto","signed (*)(signed (*)(signed , char** , char** );* main, signed , char** , \nvoid* auxv)"), -Attr("address","0x5C0"), Attr("stub","()")]), "__libc_start_main", - Args([Arg(Tid(1_493, "%000005d5"), - Attrs([Attr("c.layout","**[ : 64]"), -Attr("c.data","Top:u64 ptr ptr"), -Attr("c.type","signed (*)(signed , char** , char** );*")]), - Var("__libc_start_main_main",Imm(64)), Var("R0",Imm(64)), In()), -Arg(Tid(1_494, "%000005d6"), Attrs([Attr("c.layout","[signed : 32]"), -Attr("c.data","Top:u32"), Attr("c.type","signed")]), - Var("__libc_start_main_arg2",Imm(32)), LOW(32,Var("R1",Imm(64))), In()), -Arg(Tid(1_495, "%000005d7"), Attrs([Attr("c.layout","**[char : 8]"), -Attr("c.data","Top:u8 ptr ptr"), Attr("c.type","char**")]), - Var("__libc_start_main_arg3",Imm(64)), Var("R2",Imm(64)), Both()), -Arg(Tid(1_496, "%000005d8"), Attrs([Attr("c.layout","*[ : 8]"), -Attr("c.data","{} ptr"), Attr("c.type","void*")]), - Var("__libc_start_main_auxv",Imm(64)), Var("R3",Imm(64)), Both()), -Arg(Tid(1_497, "%000005d9"), Attrs([Attr("c.layout","[signed : 32]"), -Attr("c.data","Top:u32"), Attr("c.type","signed")]), - Var("__libc_start_main_result",Imm(32)), LOW(32,Var("R0",Imm(64))), -Out())]), Blks([Blk(Tid(522, "@__libc_start_main"), - Attrs([Attr("address","0x5C0")]), Phis([]), -Defs([Def(Tid(1_062, "%00000426"), Attrs([Attr("address","0x5C0"), -Attr("insn","adrp x16, #65536")]), Var("R16",Imm(64)), Int(65536,64)), -Def(Tid(1_069, "%0000042d"), Attrs([Attr("address","0x5C4"), -Attr("insn","ldr x17, [x16, #0xfb0]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(4016,64)),LittleEndian(),64)), -Def(Tid(1_075, "%00000433"), Attrs([Attr("address","0x5C8"), -Attr("insn","add x16, x16, #0xfb0")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(4016,64)))]), Jmps([Call(Tid(1_080, "%00000438"), - Attrs([Attr("address","0x5CC"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), Sub(Tid(1_446, "@_fini"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x754")]), - "_fini", Args([Arg(Tid(1_498, "%000005da"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("_fini_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(31, "@_fini"), - Attrs([Attr("address","0x754")]), Phis([]), Defs([Def(Tid(37, "%00000025"), - Attrs([Attr("address","0x758"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("#0",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(18446744073709551600,64))), -Def(Tid(43, "%0000002b"), Attrs([Attr("address","0x758"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("#0",Imm(64)),Var("R29",Imm(64)),LittleEndian(),64)), -Def(Tid(49, "%00000031"), Attrs([Attr("address","0x758"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("#0",Imm(64)),Int(8,64)),Var("R30",Imm(64)),LittleEndian(),64)), -Def(Tid(53, "%00000035"), Attrs([Attr("address","0x758"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("R31",Imm(64)), -Var("#0",Imm(64))), Def(Tid(59, "%0000003b"), Attrs([Attr("address","0x75C"), -Attr("insn","mov x29, sp")]), Var("R29",Imm(64)), Var("R31",Imm(64))), -Def(Tid(66, "%00000042"), Attrs([Attr("address","0x760"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R29",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(71, "%00000047"), Attrs([Attr("address","0x760"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R30",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(75, "%0000004b"), Attrs([Attr("address","0x760"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(16,64)))]), Jmps([Call(Tid(80, "%00000050"), - Attrs([Attr("address","0x764"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), Sub(Tid(1_447, "@_init"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x580")]), - "_init", Args([Arg(Tid(1_499, "%000005db"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("_init_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(1_266, "@_init"), - Attrs([Attr("address","0x580")]), Phis([]), -Defs([Def(Tid(1_272, "%000004f8"), Attrs([Attr("address","0x584"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("#5",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(18446744073709551600,64))), -Def(Tid(1_278, "%000004fe"), Attrs([Attr("address","0x584"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("#5",Imm(64)),Var("R29",Imm(64)),LittleEndian(),64)), -Def(Tid(1_284, "%00000504"), Attrs([Attr("address","0x584"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("#5",Imm(64)),Int(8,64)),Var("R30",Imm(64)),LittleEndian(),64)), -Def(Tid(1_288, "%00000508"), Attrs([Attr("address","0x584"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("R31",Imm(64)), -Var("#5",Imm(64))), Def(Tid(1_294, "%0000050e"), - Attrs([Attr("address","0x588"), Attr("insn","mov x29, sp")]), - Var("R29",Imm(64)), Var("R31",Imm(64))), Def(Tid(1_299, "%00000513"), - Attrs([Attr("address","0x58C"), Attr("insn","bl #0xe8")]), - Var("R30",Imm(64)), Int(1424,64))]), Jmps([Call(Tid(1_301, "%00000515"), - Attrs([Attr("address","0x58C"), Attr("insn","bl #0xe8")]), Int(1,1), -(Direct(Tid(1_452, "@call_weak_fn")),Direct(Tid(1_303, "%00000517"))))])), -Blk(Tid(1_303, "%00000517"), Attrs([Attr("address","0x590")]), Phis([]), -Defs([Def(Tid(1_308, "%0000051c"), Attrs([Attr("address","0x590"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R29",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(1_313, "%00000521"), Attrs([Attr("address","0x590"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R30",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(1_317, "%00000525"), Attrs([Attr("address","0x590"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(16,64)))]), Jmps([Call(Tid(1_322, "%0000052a"), - Attrs([Attr("address","0x594"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), Sub(Tid(1_448, "@_start"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x640"), -Attr("entry-point","()")]), "_start", Args([Arg(Tid(1_500, "%000005dc"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("_start_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(459, "@_start"), - Attrs([Attr("address","0x640")]), Phis([]), Defs([Def(Tid(464, "%000001d0"), - Attrs([Attr("address","0x644"), Attr("insn","mov x29, #0x0")]), - Var("R29",Imm(64)), Int(0,64)), Def(Tid(469, "%000001d5"), - Attrs([Attr("address","0x648"), Attr("insn","mov x30, #0x0")]), - Var("R30",Imm(64)), Int(0,64)), Def(Tid(475, "%000001db"), - Attrs([Attr("address","0x64C"), Attr("insn","mov x5, x0")]), - Var("R5",Imm(64)), Var("R0",Imm(64))), Def(Tid(482, "%000001e2"), - Attrs([Attr("address","0x650"), Attr("insn","ldr x1, [sp]")]), - Var("R1",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(488, "%000001e8"), Attrs([Attr("address","0x654"), -Attr("insn","add x2, sp, #0x8")]), Var("R2",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(8,64))), Def(Tid(494, "%000001ee"), - Attrs([Attr("address","0x658"), Attr("insn","mov x6, sp")]), - Var("R6",Imm(64)), Var("R31",Imm(64))), Def(Tid(499, "%000001f3"), - Attrs([Attr("address","0x65C"), Attr("insn","adrp x0, #65536")]), - Var("R0",Imm(64)), Int(65536,64)), Def(Tid(506, "%000001fa"), - Attrs([Attr("address","0x660"), Attr("insn","ldr x0, [x0, #0xff0]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(4080,64)),LittleEndian(),64)), -Def(Tid(511, "%000001ff"), Attrs([Attr("address","0x664"), -Attr("insn","mov x3, #0x0")]), Var("R3",Imm(64)), Int(0,64)), -Def(Tid(516, "%00000204"), Attrs([Attr("address","0x668"), -Attr("insn","mov x4, #0x0")]), Var("R4",Imm(64)), Int(0,64)), -Def(Tid(521, "%00000209"), Attrs([Attr("address","0x66C"), -Attr("insn","bl #-0xac")]), Var("R30",Imm(64)), Int(1648,64))]), -Jmps([Call(Tid(524, "%0000020c"), Attrs([Attr("address","0x66C"), -Attr("insn","bl #-0xac")]), Int(1,1), -(Direct(Tid(1_445, "@__libc_start_main")),Direct(Tid(526, "%0000020e"))))])), -Blk(Tid(526, "%0000020e"), Attrs([Attr("address","0x670")]), Phis([]), -Defs([Def(Tid(529, "%00000211"), Attrs([Attr("address","0x670"), -Attr("insn","bl #-0x80")]), Var("R30",Imm(64)), Int(1652,64))]), -Jmps([Call(Tid(532, "%00000214"), Attrs([Attr("address","0x670"), -Attr("insn","bl #-0x80")]), Int(1,1), -(Direct(Tid(1_451, "@abort")),Direct(Tid(1_483, "%000005cb"))))])), -Blk(Tid(1_483, "%000005cb"), Attrs([]), Phis([]), Defs([]), -Jmps([Call(Tid(1_484, "%000005cc"), Attrs([]), Int(1,1), -(Direct(Tid(1_452, "@call_weak_fn")),))]))])), Sub(Tid(1_451, "@abort"), - Attrs([Attr("noreturn","()"), Attr("c.proto","void (*)(void)"), -Attr("address","0x5F0"), Attr("stub","()")]), "abort", Args([]), -Blks([Blk(Tid(530, "@abort"), Attrs([Attr("address","0x5F0")]), Phis([]), -Defs([Def(Tid(1_128, "%00000468"), Attrs([Attr("address","0x5F0"), -Attr("insn","adrp x16, #65536")]), Var("R16",Imm(64)), Int(65536,64)), -Def(Tid(1_135, "%0000046f"), Attrs([Attr("address","0x5F4"), -Attr("insn","ldr x17, [x16, #0xfc8]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(4040,64)),LittleEndian(),64)), -Def(Tid(1_141, "%00000475"), Attrs([Attr("address","0x5F8"), -Attr("insn","add x16, x16, #0xfc8")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(4040,64)))]), Jmps([Call(Tid(1_146, "%0000047a"), - Attrs([Attr("address","0x5FC"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), Sub(Tid(1_452, "@call_weak_fn"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x674")]), - "call_weak_fn", Args([Arg(Tid(1_501, "%000005dd"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("call_weak_fn_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(534, "@call_weak_fn"), - Attrs([Attr("address","0x674")]), Phis([]), Defs([Def(Tid(537, "%00000219"), - Attrs([Attr("address","0x674"), Attr("insn","adrp x0, #65536")]), - Var("R0",Imm(64)), Int(65536,64)), Def(Tid(544, "%00000220"), - Attrs([Attr("address","0x678"), Attr("insn","ldr x0, [x0, #0xfe8]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(4072,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(550, "%00000226"), Attrs([Attr("address","0x67C"), -Attr("insn","cbz x0, #0x8")]), EQ(Var("R0",Imm(64)),Int(0,64)), -Direct(Tid(548, "%00000224"))), Goto(Tid(1_485, "%000005cd"), Attrs([]), - Int(1,1), Direct(Tid(900, "%00000384")))])), Blk(Tid(548, "%00000224"), - Attrs([Attr("address","0x684")]), Phis([]), Defs([]), -Jmps([Call(Tid(556, "%0000022c"), Attrs([Attr("address","0x684"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))])), -Blk(Tid(900, "%00000384"), Attrs([Attr("address","0x680")]), Phis([]), -Defs([]), Jmps([Goto(Tid(903, "%00000387"), Attrs([Attr("address","0x680"), -Attr("insn","b #-0xa0")]), Int(1,1), Direct(Tid(901, "@__gmon_start__")))])), -Blk(Tid(901, "@__gmon_start__"), Attrs([Attr("address","0x5E0")]), Phis([]), -Defs([Def(Tid(1_106, "%00000452"), Attrs([Attr("address","0x5E0"), -Attr("insn","adrp x16, #65536")]), Var("R16",Imm(64)), Int(65536,64)), -Def(Tid(1_113, "%00000459"), Attrs([Attr("address","0x5E4"), -Attr("insn","ldr x17, [x16, #0xfc0]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(4032,64)),LittleEndian(),64)), -Def(Tid(1_119, "%0000045f"), Attrs([Attr("address","0x5E8"), -Attr("insn","add x16, x16, #0xfc0")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(4032,64)))]), Jmps([Call(Tid(1_124, "%00000464"), - Attrs([Attr("address","0x5EC"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), -Sub(Tid(1_454, "@deregister_tm_clones"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x690")]), - "deregister_tm_clones", Args([Arg(Tid(1_502, "%000005de"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("deregister_tm_clones_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(562, "@deregister_tm_clones"), - Attrs([Attr("address","0x690")]), Phis([]), Defs([Def(Tid(565, "%00000235"), - Attrs([Attr("address","0x690"), Attr("insn","adrp x0, #69632")]), - Var("R0",Imm(64)), Int(69632,64)), Def(Tid(571, "%0000023b"), - Attrs([Attr("address","0x694"), Attr("insn","add x0, x0, #0x10")]), - Var("R0",Imm(64)), PLUS(Var("R0",Imm(64)),Int(16,64))), -Def(Tid(576, "%00000240"), Attrs([Attr("address","0x698"), -Attr("insn","adrp x1, #69632")]), Var("R1",Imm(64)), Int(69632,64)), -Def(Tid(582, "%00000246"), Attrs([Attr("address","0x69C"), -Attr("insn","add x1, x1, #0x10")]), Var("R1",Imm(64)), -PLUS(Var("R1",Imm(64)),Int(16,64))), Def(Tid(588, "%0000024c"), - Attrs([Attr("address","0x6A0"), Attr("insn","cmp x1, x0")]), - Var("#1",Imm(64)), NOT(Var("R0",Imm(64)))), Def(Tid(593, "%00000251"), - Attrs([Attr("address","0x6A0"), Attr("insn","cmp x1, x0")]), - Var("#2",Imm(64)), PLUS(Var("R1",Imm(64)),NOT(Var("R0",Imm(64))))), -Def(Tid(599, "%00000257"), Attrs([Attr("address","0x6A0"), -Attr("insn","cmp x1, x0")]), Var("VF",Imm(1)), -NEQ(SIGNED(65,PLUS(Var("#2",Imm(64)),Int(1,64))),PLUS(PLUS(SIGNED(65,Var("R1",Imm(64))),SIGNED(65,Var("#1",Imm(64)))),Int(1,65)))), -Def(Tid(605, "%0000025d"), Attrs([Attr("address","0x6A0"), -Attr("insn","cmp x1, x0")]), Var("CF",Imm(1)), -NEQ(UNSIGNED(65,PLUS(Var("#2",Imm(64)),Int(1,64))),PLUS(PLUS(UNSIGNED(65,Var("R1",Imm(64))),UNSIGNED(65,Var("#1",Imm(64)))),Int(1,65)))), -Def(Tid(609, "%00000261"), Attrs([Attr("address","0x6A0"), -Attr("insn","cmp x1, x0")]), Var("ZF",Imm(1)), -EQ(PLUS(Var("#2",Imm(64)),Int(1,64)),Int(0,64))), Def(Tid(613, "%00000265"), - Attrs([Attr("address","0x6A0"), Attr("insn","cmp x1, x0")]), - Var("NF",Imm(1)), Extract(63,63,PLUS(Var("#2",Imm(64)),Int(1,64))))]), -Jmps([Goto(Tid(619, "%0000026b"), Attrs([Attr("address","0x6A4"), -Attr("insn","b.eq #0x18")]), EQ(Var("ZF",Imm(1)),Int(1,1)), -Direct(Tid(617, "%00000269"))), Goto(Tid(1_486, "%000005ce"), Attrs([]), - Int(1,1), Direct(Tid(870, "%00000366")))])), Blk(Tid(870, "%00000366"), - Attrs([Attr("address","0x6A8")]), Phis([]), Defs([Def(Tid(873, "%00000369"), - Attrs([Attr("address","0x6A8"), Attr("insn","adrp x1, #65536")]), - Var("R1",Imm(64)), Int(65536,64)), Def(Tid(880, "%00000370"), - Attrs([Attr("address","0x6AC"), Attr("insn","ldr x1, [x1, #0xfd8]")]), - Var("R1",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R1",Imm(64)),Int(4056,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(885, "%00000375"), Attrs([Attr("address","0x6B0"), -Attr("insn","cbz x1, #0xc")]), EQ(Var("R1",Imm(64)),Int(0,64)), -Direct(Tid(617, "%00000269"))), Goto(Tid(1_487, "%000005cf"), Attrs([]), - Int(1,1), Direct(Tid(889, "%00000379")))])), Blk(Tid(617, "%00000269"), - Attrs([Attr("address","0x6BC")]), Phis([]), Defs([]), -Jmps([Call(Tid(625, "%00000271"), Attrs([Attr("address","0x6BC"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))])), -Blk(Tid(889, "%00000379"), Attrs([Attr("address","0x6B4")]), Phis([]), -Defs([Def(Tid(893, "%0000037d"), Attrs([Attr("address","0x6B4"), -Attr("insn","mov x16, x1")]), Var("R16",Imm(64)), Var("R1",Imm(64)))]), -Jmps([Call(Tid(898, "%00000382"), Attrs([Attr("address","0x6B8"), -Attr("insn","br x16")]), Int(1,1), (Indirect(Var("R16",Imm(64))),))]))])), -Sub(Tid(1_457, "@frame_dummy"), Attrs([Attr("c.proto","signed (*)(void)"), -Attr("address","0x750")]), "frame_dummy", Args([Arg(Tid(1_503, "%000005df"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("frame_dummy_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(777, "@frame_dummy"), - Attrs([Attr("address","0x750")]), Phis([]), Defs([]), -Jmps([Call(Tid(779, "%0000030b"), Attrs([Attr("address","0x750"), -Attr("insn","b #-0x90")]), Int(1,1), -(Direct(Tid(1_459, "@register_tm_clones")),))]))])), Sub(Tid(1_458, "@main"), - Attrs([Attr("c.proto","signed (*)(signed argc, const char** argv)"), -Attr("address","0x600"), Attr("stub","()")]), "main", - Args([Arg(Tid(1_504, "%000005e0"), Attrs([Attr("c.layout","[signed : 32]"), -Attr("c.data","Top:u32"), Attr("c.type","signed")]), - Var("main_argc",Imm(32)), LOW(32,Var("R0",Imm(64))), In()), -Arg(Tid(1_505, "%000005e1"), Attrs([Attr("c.layout","**[char : 8]"), -Attr("c.data","Top:u8 ptr ptr"), Attr("c.type"," const char**")]), - Var("main_argv",Imm(64)), Var("R1",Imm(64)), Both()), -Arg(Tid(1_506, "%000005e2"), Attrs([Attr("c.layout","[signed : 32]"), -Attr("c.data","Top:u32"), Attr("c.type","signed")]), - Var("main_result",Imm(32)), LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(424, "@main"), Attrs([Attr("address","0x600")]), Phis([]), -Defs([]), Jmps([Call(Tid(427, "%000001ab"), Attrs([Attr("address","0x600"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))]))])), -Sub(Tid(1_459, "@register_tm_clones"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x6C0")]), - "register_tm_clones", Args([Arg(Tid(1_507, "%000005e3"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("register_tm_clones_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(627, "@register_tm_clones"), Attrs([Attr("address","0x6C0")]), - Phis([]), Defs([Def(Tid(630, "%00000276"), Attrs([Attr("address","0x6C0"), -Attr("insn","adrp x0, #69632")]), Var("R0",Imm(64)), Int(69632,64)), -Def(Tid(636, "%0000027c"), Attrs([Attr("address","0x6C4"), -Attr("insn","add x0, x0, #0x10")]), Var("R0",Imm(64)), -PLUS(Var("R0",Imm(64)),Int(16,64))), Def(Tid(641, "%00000281"), - Attrs([Attr("address","0x6C8"), Attr("insn","adrp x1, #69632")]), - Var("R1",Imm(64)), Int(69632,64)), Def(Tid(647, "%00000287"), - Attrs([Attr("address","0x6CC"), Attr("insn","add x1, x1, #0x10")]), - Var("R1",Imm(64)), PLUS(Var("R1",Imm(64)),Int(16,64))), -Def(Tid(654, "%0000028e"), Attrs([Attr("address","0x6D0"), -Attr("insn","sub x1, x1, x0")]), Var("R1",Imm(64)), -PLUS(PLUS(Var("R1",Imm(64)),NOT(Var("R0",Imm(64)))),Int(1,64))), -Def(Tid(660, "%00000294"), Attrs([Attr("address","0x6D4"), -Attr("insn","lsr x2, x1, #63")]), Var("R2",Imm(64)), -Concat(Int(0,63),Extract(63,63,Var("R1",Imm(64))))), -Def(Tid(667, "%0000029b"), Attrs([Attr("address","0x6D8"), -Attr("insn","add x1, x2, x1, asr #3")]), Var("R1",Imm(64)), -PLUS(Var("R2",Imm(64)),ARSHIFT(Var("R1",Imm(64)),Int(3,3)))), -Def(Tid(673, "%000002a1"), Attrs([Attr("address","0x6DC"), -Attr("insn","asr x1, x1, #1")]), Var("R1",Imm(64)), -SIGNED(64,Extract(63,1,Var("R1",Imm(64)))))]), -Jmps([Goto(Tid(679, "%000002a7"), Attrs([Attr("address","0x6E0"), -Attr("insn","cbz x1, #0x18")]), EQ(Var("R1",Imm(64)),Int(0,64)), -Direct(Tid(677, "%000002a5"))), Goto(Tid(1_488, "%000005d0"), Attrs([]), - Int(1,1), Direct(Tid(840, "%00000348")))])), Blk(Tid(840, "%00000348"), - Attrs([Attr("address","0x6E4")]), Phis([]), Defs([Def(Tid(843, "%0000034b"), - Attrs([Attr("address","0x6E4"), Attr("insn","adrp x2, #65536")]), - Var("R2",Imm(64)), Int(65536,64)), Def(Tid(850, "%00000352"), - Attrs([Attr("address","0x6E8"), Attr("insn","ldr x2, [x2, #0xff8]")]), - Var("R2",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R2",Imm(64)),Int(4088,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(855, "%00000357"), Attrs([Attr("address","0x6EC"), -Attr("insn","cbz x2, #0xc")]), EQ(Var("R2",Imm(64)),Int(0,64)), -Direct(Tid(677, "%000002a5"))), Goto(Tid(1_489, "%000005d1"), Attrs([]), - Int(1,1), Direct(Tid(859, "%0000035b")))])), Blk(Tid(677, "%000002a5"), - Attrs([Attr("address","0x6F8")]), Phis([]), Defs([]), -Jmps([Call(Tid(685, "%000002ad"), Attrs([Attr("address","0x6F8"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))])), -Blk(Tid(859, "%0000035b"), Attrs([Attr("address","0x6F0")]), Phis([]), -Defs([Def(Tid(863, "%0000035f"), Attrs([Attr("address","0x6F0"), -Attr("insn","mov x16, x2")]), Var("R16",Imm(64)), Var("R2",Imm(64)))]), -Jmps([Call(Tid(868, "%00000364"), Attrs([Attr("address","0x6F4"), -Attr("insn","br x16")]), Int(1,1), -(Indirect(Var("R16",Imm(64))),))]))]))]))) \ No newline at end of file diff --git a/src/test/correct/switch/gcc_O2/switch.bir b/src/test/correct/switch/gcc_O2/switch.bir deleted file mode 100644 index 5fe169c54..000000000 --- a/src/test/correct/switch/gcc_O2/switch.bir +++ /dev/null @@ -1,223 +0,0 @@ -000005d2: program -000005a0: sub __cxa_finalize(__cxa_finalize_result) -000005d3: __cxa_finalize_result :: out u32 = low:32[R0] - -00000344: -0000043c: R16 := 0x10000 -00000443: R17 := mem[R16 + 0xFB8, el]:u64 -00000449: R16 := R16 + 0xFB8 -0000044e: call R17 with noreturn - -000005a1: sub __do_global_dtors_aux(__do_global_dtors_aux_result) -000005d4: __do_global_dtors_aux_result :: out u32 = low:32[R0] - -000002b1: -000002b5: #3 := R31 - 0x20 -000002bb: mem := mem with [#3, el]:u64 <- R29 -000002c1: mem := mem with [#3 + 8, el]:u64 <- R30 -000002c5: R31 := #3 -000002cb: R29 := R31 -000002d3: mem := mem with [R31 + 0x10, el]:u64 <- R19 -000002d8: R19 := 0x11000 -000002df: R0 := pad:64[mem[R19 + 0x10]] -000002e6: when 31:0[R0] <> 0 goto %000002e4 -000005c8: goto %0000030d - -0000030d: -00000310: R0 := 0x10000 -00000317: R0 := mem[R0 + 0xFE0, el]:u64 -0000031d: when R0 = 0 goto %0000031b -000005c9: goto %00000334 - -00000334: -00000337: R0 := 0x11000 -0000033e: R0 := mem[R0 + 8, el]:u64 -00000343: R30 := 0x730 -00000346: call @__cxa_finalize with return %0000031b - -0000031b: -00000323: R30 := 0x734 -00000325: call @deregister_tm_clones with return %00000327 - -00000327: -0000032a: R0 := 1 -00000332: mem := mem with [R19 + 0x10] <- 7:0[R0] -000005ca: goto %000002e4 - -000002e4: -000002ee: R19 := mem[R31 + 0x10, el]:u64 -000002f5: R29 := mem[R31, el]:u64 -000002fa: R30 := mem[R31 + 8, el]:u64 -000002fe: R31 := R31 + 0x20 -00000303: call R30 with noreturn - -000005a5: sub __libc_start_main(__libc_start_main_main, __libc_start_main_arg2, __libc_start_main_arg3, __libc_start_main_auxv, __libc_start_main_result) -000005d5: __libc_start_main_main :: in u64 = R0 -000005d6: __libc_start_main_arg2 :: in u32 = low:32[R1] -000005d7: __libc_start_main_arg3 :: in out u64 = R2 -000005d8: __libc_start_main_auxv :: in out u64 = R3 -000005d9: __libc_start_main_result :: out u32 = low:32[R0] - -0000020a: -00000426: R16 := 0x10000 -0000042d: R17 := mem[R16 + 0xFB0, el]:u64 -00000433: R16 := R16 + 0xFB0 -00000438: call R17 with noreturn - -000005a6: sub _fini(_fini_result) -000005da: _fini_result :: out u32 = low:32[R0] - -0000001f: -00000025: #0 := R31 - 0x10 -0000002b: mem := mem with [#0, el]:u64 <- R29 -00000031: mem := mem with [#0 + 8, el]:u64 <- R30 -00000035: R31 := #0 -0000003b: R29 := R31 -00000042: R29 := mem[R31, el]:u64 -00000047: R30 := mem[R31 + 8, el]:u64 -0000004b: R31 := R31 + 0x10 -00000050: call R30 with noreturn - -000005a7: sub _init(_init_result) -000005db: _init_result :: out u32 = low:32[R0] - -000004f2: -000004f8: #5 := R31 - 0x10 -000004fe: mem := mem with [#5, el]:u64 <- R29 -00000504: mem := mem with [#5 + 8, el]:u64 <- R30 -00000508: R31 := #5 -0000050e: R29 := R31 -00000513: R30 := 0x590 -00000515: call @call_weak_fn with return %00000517 - -00000517: -0000051c: R29 := mem[R31, el]:u64 -00000521: R30 := mem[R31 + 8, el]:u64 -00000525: R31 := R31 + 0x10 -0000052a: call R30 with noreturn - -000005a8: sub _start(_start_result) -000005dc: _start_result :: out u32 = low:32[R0] - -000001cb: -000001d0: R29 := 0 -000001d5: R30 := 0 -000001db: R5 := R0 -000001e2: R1 := mem[R31, el]:u64 -000001e8: R2 := R31 + 8 -000001ee: R6 := R31 -000001f3: R0 := 0x10000 -000001fa: R0 := mem[R0 + 0xFF0, el]:u64 -000001ff: R3 := 0 -00000204: R4 := 0 -00000209: R30 := 0x670 -0000020c: call @__libc_start_main with return %0000020e - -0000020e: -00000211: R30 := 0x674 -00000214: call @abort with return %000005cb - -000005cb: -000005cc: call @call_weak_fn with noreturn - -000005ab: sub abort() - - -00000212: -00000468: R16 := 0x10000 -0000046f: R17 := mem[R16 + 0xFC8, el]:u64 -00000475: R16 := R16 + 0xFC8 -0000047a: call R17 with noreturn - -000005ac: sub call_weak_fn(call_weak_fn_result) -000005dd: call_weak_fn_result :: out u32 = low:32[R0] - -00000216: -00000219: R0 := 0x10000 -00000220: R0 := mem[R0 + 0xFE8, el]:u64 -00000226: when R0 = 0 goto %00000224 -000005cd: goto %00000384 - -00000224: -0000022c: call R30 with noreturn - -00000384: -00000387: goto @__gmon_start__ - -00000385: -00000452: R16 := 0x10000 -00000459: R17 := mem[R16 + 0xFC0, el]:u64 -0000045f: R16 := R16 + 0xFC0 -00000464: call R17 with noreturn - -000005ae: sub deregister_tm_clones(deregister_tm_clones_result) -000005de: deregister_tm_clones_result :: out u32 = low:32[R0] - -00000232: -00000235: R0 := 0x11000 -0000023b: R0 := R0 + 0x10 -00000240: R1 := 0x11000 -00000246: R1 := R1 + 0x10 -0000024c: #1 := ~R0 -00000251: #2 := R1 + ~R0 -00000257: VF := extend:65[#2 + 1] <> extend:65[R1] + extend:65[#1] + 1 -0000025d: CF := pad:65[#2 + 1] <> pad:65[R1] + pad:65[#1] + 1 -00000261: ZF := #2 + 1 = 0 -00000265: NF := 63:63[#2 + 1] -0000026b: when ZF goto %00000269 -000005ce: goto %00000366 - -00000366: -00000369: R1 := 0x10000 -00000370: R1 := mem[R1 + 0xFD8, el]:u64 -00000375: when R1 = 0 goto %00000269 -000005cf: goto %00000379 - -00000269: -00000271: call R30 with noreturn - -00000379: -0000037d: R16 := R1 -00000382: call R16 with noreturn - -000005b1: sub frame_dummy(frame_dummy_result) -000005df: frame_dummy_result :: out u32 = low:32[R0] - -00000309: -0000030b: call @register_tm_clones with noreturn - -000005b2: sub main(main_argc, main_argv, main_result) -000005e0: main_argc :: in u32 = low:32[R0] -000005e1: main_argv :: in out u64 = R1 -000005e2: main_result :: out u32 = low:32[R0] - -000001a8: -000001ab: call R30 with noreturn - -000005b3: sub register_tm_clones(register_tm_clones_result) -000005e3: register_tm_clones_result :: out u32 = low:32[R0] - -00000273: -00000276: R0 := 0x11000 -0000027c: R0 := R0 + 0x10 -00000281: R1 := 0x11000 -00000287: R1 := R1 + 0x10 -0000028e: R1 := R1 + ~R0 + 1 -00000294: R2 := 0.63:63[R1] -0000029b: R1 := R2 + (R1 ~>> 3) -000002a1: R1 := extend:64[63:1[R1]] -000002a7: when R1 = 0 goto %000002a5 -000005d0: goto %00000348 - -00000348: -0000034b: R2 := 0x10000 -00000352: R2 := mem[R2 + 0xFF8, el]:u64 -00000357: when R2 = 0 goto %000002a5 -000005d1: goto %0000035b - -000002a5: -000002ad: call R30 with noreturn - -0000035b: -0000035f: R16 := R2 -00000364: call R16 with noreturn diff --git a/src/test/correct/switch/gcc_O2/switch.expected b/src/test/correct/switch/gcc_O2/switch.expected index 878261ae1..b2560d6a7 100644 --- a/src/test/correct/switch/gcc_O2/switch.expected +++ b/src/test/correct/switch/gcc_O2/switch.expected @@ -1,7 +1,7 @@ var {:extern} Gamma_mem: [bv64]bool; var {:extern} mem: [bv64]bv8; const {:extern} $_IO_stdin_used_addr: bv64; -axiom ($_IO_stdin_used_addr == 1896bv64); +axiom ($_IO_stdin_used_addr == 4196312bv64); function {:extern} {:bvbuiltin "bvadd"} bvadd64(bv64, bv64) returns (bv64); function {:extern} memory_load32_le(memory: [bv64]bv8, index: bv64) returns (bv32) { (memory[bvadd64(index, 3bv64)] ++ (memory[bvadd64(index, 2bv64)] ++ (memory[bvadd64(index, 1bv64)] ++ memory[index]))) @@ -15,11 +15,7 @@ procedure {:extern} rely(); modifies Gamma_mem, mem; ensures (Gamma_mem == old(Gamma_mem)); ensures (mem == old(mem)); - free ensures (memory_load32_le(mem, 1896bv64) == 131073bv32); - free ensures (memory_load64_le(mem, 69016bv64) == 1872bv64); - free ensures (memory_load64_le(mem, 69024bv64) == 1792bv64); - free ensures (memory_load64_le(mem, 69616bv64) == 1536bv64); - free ensures (memory_load64_le(mem, 69640bv64) == 69640bv64); + free ensures (memory_load32_le(mem, 4196312bv64) == 131073bv32); procedure {:extern} rely_transitive(); modifies Gamma_mem, mem; @@ -37,27 +33,19 @@ procedure {:extern} rely_reflexive(); procedure {:extern} guarantee_reflexive(); modifies Gamma_mem, mem; -procedure main_1536(); - free requires (memory_load64_le(mem, 69632bv64) == 0bv64); - free requires (memory_load64_le(mem, 69640bv64) == 69640bv64); - free requires (memory_load32_le(mem, 1896bv64) == 131073bv32); - free requires (memory_load64_le(mem, 69016bv64) == 1872bv64); - free requires (memory_load64_le(mem, 69024bv64) == 1792bv64); - free requires (memory_load64_le(mem, 69616bv64) == 1536bv64); - free requires (memory_load64_le(mem, 69640bv64) == 69640bv64); - free ensures (memory_load32_le(mem, 1896bv64) == 131073bv32); - free ensures (memory_load64_le(mem, 69016bv64) == 1872bv64); - free ensures (memory_load64_le(mem, 69024bv64) == 1792bv64); - free ensures (memory_load64_le(mem, 69616bv64) == 1536bv64); - free ensures (memory_load64_le(mem, 69640bv64) == 69640bv64); - -implementation main_1536() +procedure main(); + free requires (memory_load64_le(mem, 4325376bv64) == 0bv64); + free requires (memory_load64_le(mem, 4325384bv64) == 0bv64); + free requires (memory_load32_le(mem, 4196312bv64) == 131073bv32); + free ensures (memory_load32_le(mem, 4196312bv64) == 131073bv32); + +implementation main() { lmain: assume {:captureState "lmain"} true; - goto main_1536_basil_return; - main_1536_basil_return: - assume {:captureState "main_1536_basil_return"} true; + goto main_basil_return; + main_basil_return: + assume {:captureState "main_basil_return"} true; return; } diff --git a/src/test/correct/switch/gcc_O2/switch.gts b/src/test/correct/switch/gcc_O2/switch.gts deleted file mode 100644 index a750a5f5a..000000000 Binary files a/src/test/correct/switch/gcc_O2/switch.gts and /dev/null differ diff --git a/src/test/correct/switch/gcc_O2/switch.md5sum b/src/test/correct/switch/gcc_O2/switch.md5sum new file mode 100644 index 000000000..0af87584f --- /dev/null +++ b/src/test/correct/switch/gcc_O2/switch.md5sum @@ -0,0 +1,5 @@ +ec9913798ae0a417fc9bffd061e39cee correct/switch/gcc_O2/a.out +649180184eb3f8b6fda2372716f20697 correct/switch/gcc_O2/switch.adt +5620a40d2bae8c163725846fbf2c685d correct/switch/gcc_O2/switch.bir +2b5a3401e95600fc4d07a7e61743af0d correct/switch/gcc_O2/switch.relf +bb0b880059d9ff9d57a31edcbf4af56a correct/switch/gcc_O2/switch.gts diff --git a/src/test/correct/switch/gcc_O2/switch.relf b/src/test/correct/switch/gcc_O2/switch.relf deleted file mode 100644 index 41e052c9e..000000000 --- a/src/test/correct/switch/gcc_O2/switch.relf +++ /dev/null @@ -1,119 +0,0 @@ - -Relocation section '.rela.dyn' at offset 0x460 contains 8 entries: - Offset Info Type Symbol's Value Symbol's Name + Addend -0000000000010d98 0000000000000403 R_AARCH64_RELATIVE 750 -0000000000010da0 0000000000000403 R_AARCH64_RELATIVE 700 -0000000000010ff0 0000000000000403 R_AARCH64_RELATIVE 600 -0000000000011008 0000000000000403 R_AARCH64_RELATIVE 11008 -0000000000010fd8 0000000400000401 R_AARCH64_GLOB_DAT 0000000000000000 _ITM_deregisterTMCloneTable + 0 -0000000000010fe0 0000000500000401 R_AARCH64_GLOB_DAT 0000000000000000 __cxa_finalize@GLIBC_2.17 + 0 -0000000000010fe8 0000000600000401 R_AARCH64_GLOB_DAT 0000000000000000 __gmon_start__ + 0 -0000000000010ff8 0000000800000401 R_AARCH64_GLOB_DAT 0000000000000000 _ITM_registerTMCloneTable + 0 - -Relocation section '.rela.plt' at offset 0x520 contains 4 entries: - Offset Info Type Symbol's Value Symbol's Name + Addend -0000000000010fb0 0000000300000402 R_AARCH64_JUMP_SLOT 0000000000000000 __libc_start_main@GLIBC_2.34 + 0 -0000000000010fb8 0000000500000402 R_AARCH64_JUMP_SLOT 0000000000000000 __cxa_finalize@GLIBC_2.17 + 0 -0000000000010fc0 0000000600000402 R_AARCH64_JUMP_SLOT 0000000000000000 __gmon_start__ + 0 -0000000000010fc8 0000000700000402 R_AARCH64_JUMP_SLOT 0000000000000000 abort@GLIBC_2.17 + 0 - -Symbol table '.dynsym' contains 9 entries: - Num: Value Size Type Bind Vis Ndx Name - 0: 0000000000000000 0 NOTYPE LOCAL DEFAULT UND - 1: 0000000000000580 0 SECTION LOCAL DEFAULT 11 .init - 2: 0000000000011000 0 SECTION LOCAL DEFAULT 22 .data - 3: 0000000000000000 0 FUNC GLOBAL DEFAULT UND __libc_start_main@GLIBC_2.34 (2) - 4: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_deregisterTMCloneTable - 5: 0000000000000000 0 FUNC WEAK DEFAULT UND __cxa_finalize@GLIBC_2.17 (3) - 6: 0000000000000000 0 NOTYPE WEAK DEFAULT UND __gmon_start__ - 7: 0000000000000000 0 FUNC GLOBAL DEFAULT UND abort@GLIBC_2.17 (3) - 8: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_registerTMCloneTable - -Symbol table '.symtab' contains 86 entries: - Num: Value Size Type Bind Vis Ndx Name - 0: 0000000000000000 0 NOTYPE LOCAL DEFAULT UND - 1: 0000000000000238 0 SECTION LOCAL DEFAULT 1 .interp - 2: 0000000000000254 0 SECTION LOCAL DEFAULT 2 .note.gnu.build-id - 3: 0000000000000278 0 SECTION LOCAL DEFAULT 3 .note.ABI-tag - 4: 0000000000000298 0 SECTION LOCAL DEFAULT 4 .gnu.hash - 5: 00000000000002b8 0 SECTION LOCAL DEFAULT 5 .dynsym - 6: 0000000000000390 0 SECTION LOCAL DEFAULT 6 .dynstr - 7: 000000000000041e 0 SECTION LOCAL DEFAULT 7 .gnu.version - 8: 0000000000000430 0 SECTION LOCAL DEFAULT 8 .gnu.version_r - 9: 0000000000000460 0 SECTION LOCAL DEFAULT 9 .rela.dyn - 10: 0000000000000520 0 SECTION LOCAL DEFAULT 10 .rela.plt - 11: 0000000000000580 0 SECTION LOCAL DEFAULT 11 .init - 12: 00000000000005a0 0 SECTION LOCAL DEFAULT 12 .plt - 13: 0000000000000600 0 SECTION LOCAL DEFAULT 13 .text - 14: 0000000000000754 0 SECTION LOCAL DEFAULT 14 .fini - 15: 0000000000000768 0 SECTION LOCAL DEFAULT 15 .rodata - 16: 000000000000076c 0 SECTION LOCAL DEFAULT 16 .eh_frame_hdr - 17: 00000000000007a8 0 SECTION LOCAL DEFAULT 17 .eh_frame - 18: 0000000000010d98 0 SECTION LOCAL DEFAULT 18 .init_array - 19: 0000000000010da0 0 SECTION LOCAL DEFAULT 19 .fini_array - 20: 0000000000010da8 0 SECTION LOCAL DEFAULT 20 .dynamic - 21: 0000000000010f98 0 SECTION LOCAL DEFAULT 21 .got - 22: 0000000000011000 0 SECTION LOCAL DEFAULT 22 .data - 23: 0000000000011010 0 SECTION LOCAL DEFAULT 23 .bss - 24: 0000000000000000 0 SECTION LOCAL DEFAULT 24 .comment - 25: 0000000000000000 0 FILE LOCAL DEFAULT ABS Scrt1.o - 26: 0000000000000278 0 NOTYPE LOCAL DEFAULT 3 $d - 27: 0000000000000278 32 OBJECT LOCAL DEFAULT 3 __abi_tag - 28: 0000000000000640 0 NOTYPE LOCAL DEFAULT 13 $x - 29: 00000000000007bc 0 NOTYPE LOCAL DEFAULT 17 $d - 30: 0000000000000768 0 NOTYPE LOCAL DEFAULT 15 $d - 31: 0000000000000000 0 FILE LOCAL DEFAULT ABS crti.o - 32: 0000000000000674 0 NOTYPE LOCAL DEFAULT 13 $x - 33: 0000000000000674 20 FUNC LOCAL DEFAULT 13 call_weak_fn - 34: 0000000000000580 0 NOTYPE LOCAL DEFAULT 11 $x - 35: 0000000000000754 0 NOTYPE LOCAL DEFAULT 14 $x - 36: 0000000000000000 0 FILE LOCAL DEFAULT ABS crtn.o - 37: 0000000000000590 0 NOTYPE LOCAL DEFAULT 11 $x - 38: 0000000000000760 0 NOTYPE LOCAL DEFAULT 14 $x - 39: 0000000000000000 0 FILE LOCAL DEFAULT ABS switch.c - 40: 0000000000000600 0 NOTYPE LOCAL DEFAULT 13 $x - 41: 0000000000000830 0 NOTYPE LOCAL DEFAULT 17 $d - 42: 0000000000000000 0 FILE LOCAL DEFAULT ABS crtstuff.c - 43: 0000000000000690 0 NOTYPE LOCAL DEFAULT 13 $x - 44: 0000000000000690 0 FUNC LOCAL DEFAULT 13 deregister_tm_clones - 45: 00000000000006c0 0 FUNC LOCAL DEFAULT 13 register_tm_clones - 46: 0000000000011008 0 NOTYPE LOCAL DEFAULT 22 $d - 47: 0000000000000700 0 FUNC LOCAL DEFAULT 13 __do_global_dtors_aux - 48: 0000000000011010 1 OBJECT LOCAL DEFAULT 23 completed.0 - 49: 0000000000010da0 0 NOTYPE LOCAL DEFAULT 19 $d - 50: 0000000000010da0 0 OBJECT LOCAL DEFAULT 19 __do_global_dtors_aux_fini_array_entry - 51: 0000000000000750 0 FUNC LOCAL DEFAULT 13 frame_dummy - 52: 0000000000010d98 0 NOTYPE LOCAL DEFAULT 18 $d - 53: 0000000000010d98 0 OBJECT LOCAL DEFAULT 18 __frame_dummy_init_array_entry - 54: 00000000000007d0 0 NOTYPE LOCAL DEFAULT 17 $d - 55: 0000000000011010 0 NOTYPE LOCAL DEFAULT 23 $d - 56: 0000000000000000 0 FILE LOCAL DEFAULT ABS crtstuff.c - 57: 0000000000000844 0 NOTYPE LOCAL DEFAULT 17 $d - 58: 0000000000000844 0 OBJECT LOCAL DEFAULT 17 __FRAME_END__ - 59: 0000000000000000 0 FILE LOCAL DEFAULT ABS - 60: 0000000000010da8 0 OBJECT LOCAL DEFAULT ABS _DYNAMIC - 61: 000000000000076c 0 NOTYPE LOCAL DEFAULT 16 __GNU_EH_FRAME_HDR - 62: 0000000000010fd0 0 OBJECT LOCAL DEFAULT ABS _GLOBAL_OFFSET_TABLE_ - 63: 00000000000005a0 0 NOTYPE LOCAL DEFAULT 12 $x - 64: 0000000000000000 0 FUNC GLOBAL DEFAULT UND __libc_start_main@GLIBC_2.34 - 65: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_deregisterTMCloneTable - 66: 0000000000011000 0 NOTYPE WEAK DEFAULT 22 data_start - 67: 0000000000011010 0 NOTYPE GLOBAL DEFAULT 23 __bss_start__ - 68: 0000000000000000 0 FUNC WEAK DEFAULT UND __cxa_finalize@GLIBC_2.17 - 69: 0000000000011018 0 NOTYPE GLOBAL DEFAULT 23 _bss_end__ - 70: 0000000000011010 0 NOTYPE GLOBAL DEFAULT 22 _edata - 71: 0000000000000754 0 FUNC GLOBAL HIDDEN 14 _fini - 72: 0000000000011018 0 NOTYPE GLOBAL DEFAULT 23 __bss_end__ - 73: 0000000000011000 0 NOTYPE GLOBAL DEFAULT 22 __data_start - 74: 0000000000000000 0 NOTYPE WEAK DEFAULT UND __gmon_start__ - 75: 0000000000011008 0 OBJECT GLOBAL HIDDEN 22 __dso_handle - 76: 0000000000000000 0 FUNC GLOBAL DEFAULT UND abort@GLIBC_2.17 - 77: 0000000000000768 4 OBJECT GLOBAL DEFAULT 15 _IO_stdin_used - 78: 0000000000011018 0 NOTYPE GLOBAL DEFAULT 23 _end - 79: 0000000000000640 52 FUNC GLOBAL DEFAULT 13 _start - 80: 0000000000011018 0 NOTYPE GLOBAL DEFAULT 23 __end__ - 81: 0000000000011010 0 NOTYPE GLOBAL DEFAULT 23 __bss_start - 82: 0000000000000600 4 FUNC GLOBAL DEFAULT 13 main - 83: 0000000000011010 0 OBJECT GLOBAL HIDDEN 22 __TMC_END__ - 84: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_registerTMCloneTable - 85: 0000000000000580 0 FUNC GLOBAL HIDDEN 11 _init diff --git a/src/test/correct/switch/gcc_O2/switch_gtirb.expected b/src/test/correct/switch/gcc_O2/switch_gtirb.expected index d899f2e23..5a00184c3 100644 --- a/src/test/correct/switch/gcc_O2/switch_gtirb.expected +++ b/src/test/correct/switch/gcc_O2/switch_gtirb.expected @@ -1,7 +1,7 @@ var {:extern} Gamma_mem: [bv64]bool; var {:extern} mem: [bv64]bv8; const {:extern} $_IO_stdin_used_addr: bv64; -axiom ($_IO_stdin_used_addr == 1896bv64); +axiom ($_IO_stdin_used_addr == 4196312bv64); function {:extern} {:bvbuiltin "bvadd"} bvadd64(bv64, bv64) returns (bv64); function {:extern} memory_load32_le(memory: [bv64]bv8, index: bv64) returns (bv32) { (memory[bvadd64(index, 3bv64)] ++ (memory[bvadd64(index, 2bv64)] ++ (memory[bvadd64(index, 1bv64)] ++ memory[index]))) @@ -15,11 +15,7 @@ procedure {:extern} rely(); modifies Gamma_mem, mem; ensures (Gamma_mem == old(Gamma_mem)); ensures (mem == old(mem)); - free ensures (memory_load32_le(mem, 1896bv64) == 131073bv32); - free ensures (memory_load64_le(mem, 69016bv64) == 1872bv64); - free ensures (memory_load64_le(mem, 69024bv64) == 1792bv64); - free ensures (memory_load64_le(mem, 69616bv64) == 1536bv64); - free ensures (memory_load64_le(mem, 69640bv64) == 69640bv64); + free ensures (memory_load32_le(mem, 4196312bv64) == 131073bv32); procedure {:extern} rely_transitive(); modifies Gamma_mem, mem; @@ -37,27 +33,19 @@ procedure {:extern} rely_reflexive(); procedure {:extern} guarantee_reflexive(); modifies Gamma_mem, mem; -procedure main_1536(); - free requires (memory_load64_le(mem, 69632bv64) == 0bv64); - free requires (memory_load64_le(mem, 69640bv64) == 69640bv64); - free requires (memory_load32_le(mem, 1896bv64) == 131073bv32); - free requires (memory_load64_le(mem, 69016bv64) == 1872bv64); - free requires (memory_load64_le(mem, 69024bv64) == 1792bv64); - free requires (memory_load64_le(mem, 69616bv64) == 1536bv64); - free requires (memory_load64_le(mem, 69640bv64) == 69640bv64); - free ensures (memory_load32_le(mem, 1896bv64) == 131073bv32); - free ensures (memory_load64_le(mem, 69016bv64) == 1872bv64); - free ensures (memory_load64_le(mem, 69024bv64) == 1792bv64); - free ensures (memory_load64_le(mem, 69616bv64) == 1536bv64); - free ensures (memory_load64_le(mem, 69640bv64) == 69640bv64); - -implementation main_1536() +procedure main(); + free requires (memory_load64_le(mem, 4325376bv64) == 0bv64); + free requires (memory_load64_le(mem, 4325384bv64) == 0bv64); + free requires (memory_load32_le(mem, 4196312bv64) == 131073bv32); + free ensures (memory_load32_le(mem, 4196312bv64) == 131073bv32); + +implementation main() { - main_1536__0__DWpLJcPSSFO5KWiSANP3Qw: - assume {:captureState "main_1536__0__DWpLJcPSSFO5KWiSANP3Qw"} true; - goto main_1536_basil_return; - main_1536_basil_return: - assume {:captureState "main_1536_basil_return"} true; + $main$__0__$cegbDVc9S6m8Z0kHHU8BZQ: + assume {:captureState "$main$__0__$cegbDVc9S6m8Z0kHHU8BZQ"} true; + goto main_basil_return; + main_basil_return: + assume {:captureState "main_basil_return"} true; return; } diff --git a/src/test/correct/syscall/clang/syscall.adt b/src/test/correct/syscall/clang/syscall.adt deleted file mode 100644 index 1fbff82d9..000000000 --- a/src/test/correct/syscall/clang/syscall.adt +++ /dev/null @@ -1,549 +0,0 @@ -Project(Attrs([Attr("filename","\"clang/syscall.out\""), -Attr("image-specification","(declare abi (name str))\n(declare arch (name str))\n(declare base-address (addr int))\n(declare bias (off int))\n(declare bits (size int))\n(declare code-region (addr int) (size int) (off int))\n(declare code-start (addr int))\n(declare entry-point (addr int))\n(declare external-reference (addr int) (name str))\n(declare format (name str))\n(declare is-executable (flag bool))\n(declare is-little-endian (flag bool))\n(declare llvm:base-address (addr int))\n(declare llvm:code-entry (name str) (off int) (size int))\n(declare llvm:coff-import-library (name str))\n(declare llvm:coff-virtual-section-header (name str) (addr int) (size int))\n(declare llvm:elf-program-header (name str) (off int) (size int))\n(declare llvm:elf-program-header-flags (name str) (ld bool) (r bool) \n (w bool) (x bool))\n(declare llvm:elf-virtual-program-header (name str) (addr int) (size int))\n(declare llvm:entry-point (addr int))\n(declare llvm:macho-symbol (name str) (value int))\n(declare llvm:name-reference (at int) (name str))\n(declare llvm:relocation (at int) (addr int))\n(declare llvm:section-entry (name str) (addr int) (size int) (off int))\n(declare llvm:section-flags (name str) (r bool) (w bool) (x bool))\n(declare llvm:segment-command (name str) (off int) (size int))\n(declare llvm:segment-command-flags (name str) (r bool) (w bool) (x bool))\n(declare llvm:symbol-entry (name str) (addr int) (size int) (off int)\n (value int))\n(declare llvm:virtual-segment-command (name str) (addr int) (size int))\n(declare mapped (addr int) (size int) (off int))\n(declare named-region (addr int) (size int) (name str))\n(declare named-symbol (addr int) (name str))\n(declare require (name str))\n(declare section (addr int) (size int))\n(declare segment (addr int) (size int) (r bool) (w bool) (x bool))\n(declare subarch (name str))\n(declare symbol-chunk (addr int) (size int) (root int))\n(declare symbol-value (addr int) (value int))\n(declare system (name str))\n(declare vendor (name str))\n\n(abi unknown)\n(arch aarch64)\n(base-address 0)\n(bias 0)\n(bits 64)\n(code-region 1924 20 1924)\n(code-region 1600 324 1600)\n(code-region 1488 112 1488)\n(code-region 1464 24 1464)\n(code-start 1652)\n(code-start 1600)\n(code-start 1876)\n(entry-point 1600)\n(external-reference 69568 _ITM_deregisterTMCloneTable)\n(external-reference 69576 __cxa_finalize)\n(external-reference 69584 __gmon_start__)\n(external-reference 69600 _ITM_registerTMCloneTable)\n(external-reference 69632 __libc_start_main)\n(external-reference 69640 __cxa_finalize)\n(external-reference 69648 fork)\n(external-reference 69656 __gmon_start__)\n(external-reference 69664 abort)\n(format elf)\n(is-executable true)\n(is-little-endian true)\n(llvm:base-address 0)\n(llvm:code-entry abort 0 0)\n(llvm:code-entry fork 0 0)\n(llvm:code-entry __cxa_finalize 0 0)\n(llvm:code-entry __libc_start_main 0 0)\n(llvm:code-entry _init 1464 0)\n(llvm:code-entry main 1876 48)\n(llvm:code-entry _start 1600 52)\n(llvm:code-entry abort@GLIBC_2.17 0 0)\n(llvm:code-entry _fini 1924 0)\n(llvm:code-entry fork@GLIBC_2.17 0 0)\n(llvm:code-entry __cxa_finalize@GLIBC_2.17 0 0)\n(llvm:code-entry __libc_start_main@GLIBC_2.34 0 0)\n(llvm:code-entry frame_dummy 1872 0)\n(llvm:code-entry __do_global_dtors_aux 1792 0)\n(llvm:code-entry register_tm_clones 1728 0)\n(llvm:code-entry deregister_tm_clones 1680 0)\n(llvm:code-entry call_weak_fn 1652 20)\n(llvm:code-entry .fini 1924 20)\n(llvm:code-entry .text 1600 324)\n(llvm:code-entry .plt 1488 112)\n(llvm:code-entry .init 1464 24)\n(llvm:elf-program-header 08 3528 568)\n(llvm:elf-program-header 07 0 0)\n(llvm:elf-program-header 06 1948 60)\n(llvm:elf-program-header 05 596 68)\n(llvm:elf-program-header 04 3544 480)\n(llvm:elf-program-header 03 3528 624)\n(llvm:elf-program-header 02 0 2208)\n(llvm:elf-program-header 01 568 27)\n(llvm:elf-program-header 00 64 504)\n(llvm:elf-program-header-flags 08 false true false false)\n(llvm:elf-program-header-flags 07 false true true false)\n(llvm:elf-program-header-flags 06 false true false false)\n(llvm:elf-program-header-flags 05 false true false false)\n(llvm:elf-program-header-flags 04 false true true false)\n(llvm:elf-program-header-flags 03 true true true false)\n(llvm:elf-program-header-flags 02 true true false true)\n(llvm:elf-program-header-flags 01 false true false false)\n(llvm:elf-program-header-flags 00 false true false false)\n(llvm:elf-virtual-program-header 08 69064 568)\n(llvm:elf-virtual-program-header 07 0 0)\n(llvm:elf-virtual-program-header 06 1948 60)\n(llvm:elf-virtual-program-header 05 596 68)\n(llvm:elf-virtual-program-header 04 69080 480)\n(llvm:elf-virtual-program-header 03 69064 632)\n(llvm:elf-virtual-program-header 02 0 2208)\n(llvm:elf-virtual-program-header 01 568 27)\n(llvm:elf-virtual-program-header 00 64 504)\n(llvm:entry-point 1600)\n(llvm:name-reference 69664 abort)\n(llvm:name-reference 69656 __gmon_start__)\n(llvm:name-reference 69648 fork)\n(llvm:name-reference 69640 __cxa_finalize)\n(llvm:name-reference 69632 __libc_start_main)\n(llvm:name-reference 69600 _ITM_registerTMCloneTable)\n(llvm:name-reference 69584 __gmon_start__)\n(llvm:name-reference 69576 __cxa_finalize)\n(llvm:name-reference 69568 _ITM_deregisterTMCloneTable)\n(llvm:section-entry .shstrtab 0 259 6934)\n(llvm:section-entry .strtab 0 574 6360)\n(llvm:section-entry .symtab 0 2136 4224)\n(llvm:section-entry .comment 0 71 4152)\n(llvm:section-entry .bss 69688 8 4152)\n(llvm:section-entry .data 69672 16 4136)\n(llvm:section-entry .got.plt 69608 64 4072)\n(llvm:section-entry .got 69560 48 4024)\n(llvm:section-entry .dynamic 69080 480 3544)\n(llvm:section-entry .fini_array 69072 8 3536)\n(llvm:section-entry .init_array 69064 8 3528)\n(llvm:section-entry .eh_frame 2008 200 2008)\n(llvm:section-entry .eh_frame_hdr 1948 60 1948)\n(llvm:section-entry .rodata 1944 4 1944)\n(llvm:section-entry .fini 1924 20 1924)\n(llvm:section-entry .text 1600 324 1600)\n(llvm:section-entry .plt 1488 112 1488)\n(llvm:section-entry .init 1464 24 1464)\n(llvm:section-entry .rela.plt 1344 120 1344)\n(llvm:section-entry .rela.dyn 1152 192 1152)\n(llvm:section-entry .gnu.version_r 1104 48 1104)\n(llvm:section-entry .gnu.version 1082 20 1082)\n(llvm:section-entry .dynstr 936 146 936)\n(llvm:section-entry .dynsym 696 240 696)\n(llvm:section-entry .gnu.hash 664 28 664)\n(llvm:section-entry .note.ABI-tag 632 32 632)\n(llvm:section-entry .note.gnu.build-id 596 36 596)\n(llvm:section-entry .interp 568 27 568)\n(llvm:section-flags .shstrtab true false false)\n(llvm:section-flags .strtab true false false)\n(llvm:section-flags .symtab true false false)\n(llvm:section-flags .comment true false false)\n(llvm:section-flags .bss true true false)\n(llvm:section-flags .data true true false)\n(llvm:section-flags .got.plt true true false)\n(llvm:section-flags .got true true false)\n(llvm:section-flags .dynamic true true false)\n(llvm:section-flags .fini_array true true false)\n(llvm:section-flags .init_array true true false)\n(llvm:section-flags .eh_frame true false false)\n(llvm:section-flags .eh_frame_hdr true false false)\n(llvm:section-flags .rodata true false false)\n(llvm:section-flags .fini true false true)\n(llvm:section-flags .text true false true)\n(llvm:section-flags .plt true false true)\n(llvm:section-flags .init true false true)\n(llvm:section-flags .rela.plt true false false)\n(llvm:section-flags .rela.dyn true false false)\n(llvm:section-flags .gnu.version_r true false false)\n(llvm:section-flags .gnu.version true false false)\n(llvm:section-flags .dynstr true false false)\n(llvm:section-flags .dynsym true false false)\n(llvm:section-flags .gnu.hash true false false)\n(llvm:section-flags .note.ABI-tag true false false)\n(llvm:section-flags .note.gnu.build-id true false false)\n(llvm:section-flags .interp true false false)\n(llvm:symbol-entry abort 0 0 0 0)\n(llvm:symbol-entry fork 0 0 0 0)\n(llvm:symbol-entry __cxa_finalize 0 0 0 0)\n(llvm:symbol-entry __libc_start_main 0 0 0 0)\n(llvm:symbol-entry _init 1464 0 1464 1464)\n(llvm:symbol-entry main 1876 48 1876 1876)\n(llvm:symbol-entry _start 1600 52 1600 1600)\n(llvm:symbol-entry abort@GLIBC_2.17 0 0 0 0)\n(llvm:symbol-entry _fini 1924 0 1924 1924)\n(llvm:symbol-entry fork@GLIBC_2.17 0 0 0 0)\n(llvm:symbol-entry __cxa_finalize@GLIBC_2.17 0 0 0 0)\n(llvm:symbol-entry __libc_start_main@GLIBC_2.34 0 0 0 0)\n(llvm:symbol-entry frame_dummy 1872 0 1872 1872)\n(llvm:symbol-entry __do_global_dtors_aux 1792 0 1792 1792)\n(llvm:symbol-entry register_tm_clones 1728 0 1728 1728)\n(llvm:symbol-entry deregister_tm_clones 1680 0 1680 1680)\n(llvm:symbol-entry call_weak_fn 1652 20 1652 1652)\n(mapped 0 2208 0)\n(mapped 69064 624 3528)\n(named-region 0 2208 02)\n(named-region 69064 632 03)\n(named-region 568 27 .interp)\n(named-region 596 36 .note.gnu.build-id)\n(named-region 632 32 .note.ABI-tag)\n(named-region 664 28 .gnu.hash)\n(named-region 696 240 .dynsym)\n(named-region 936 146 .dynstr)\n(named-region 1082 20 .gnu.version)\n(named-region 1104 48 .gnu.version_r)\n(named-region 1152 192 .rela.dyn)\n(named-region 1344 120 .rela.plt)\n(named-region 1464 24 .init)\n(named-region 1488 112 .plt)\n(named-region 1600 324 .text)\n(named-region 1924 20 .fini)\n(named-region 1944 4 .rodata)\n(named-region 1948 60 .eh_frame_hdr)\n(named-region 2008 200 .eh_frame)\n(named-region 69064 8 .init_array)\n(named-region 69072 8 .fini_array)\n(named-region 69080 480 .dynamic)\n(named-region 69560 48 .got)\n(named-region 69608 64 .got.plt)\n(named-region 69672 16 .data)\n(named-region 69688 8 .bss)\n(named-region 0 71 .comment)\n(named-region 0 2136 .symtab)\n(named-region 0 574 .strtab)\n(named-region 0 259 .shstrtab)\n(named-symbol 1652 call_weak_fn)\n(named-symbol 1680 deregister_tm_clones)\n(named-symbol 1728 register_tm_clones)\n(named-symbol 1792 __do_global_dtors_aux)\n(named-symbol 1872 frame_dummy)\n(named-symbol 0 __libc_start_main@GLIBC_2.34)\n(named-symbol 0 __cxa_finalize@GLIBC_2.17)\n(named-symbol 0 fork@GLIBC_2.17)\n(named-symbol 1924 _fini)\n(named-symbol 0 abort@GLIBC_2.17)\n(named-symbol 1600 _start)\n(named-symbol 1876 main)\n(named-symbol 1464 _init)\n(named-symbol 0 __libc_start_main)\n(named-symbol 0 __cxa_finalize)\n(named-symbol 0 fork)\n(named-symbol 0 abort)\n(require libc.so.6)\n(section 568 27)\n(section 596 36)\n(section 632 32)\n(section 664 28)\n(section 696 240)\n(section 936 146)\n(section 1082 20)\n(section 1104 48)\n(section 1152 192)\n(section 1344 120)\n(section 1464 24)\n(section 1488 112)\n(section 1600 324)\n(section 1924 20)\n(section 1944 4)\n(section 1948 60)\n(section 2008 200)\n(section 69064 8)\n(section 69072 8)\n(section 69080 480)\n(section 69560 48)\n(section 69608 64)\n(section 69672 16)\n(section 69688 8)\n(section 0 71)\n(section 0 2136)\n(section 0 574)\n(section 0 259)\n(segment 0 2208 true false true)\n(segment 69064 632 true true false)\n(subarch v8)\n(symbol-chunk 1652 20 1652)\n(symbol-chunk 1600 52 1600)\n(symbol-chunk 1876 48 1876)\n(symbol-value 1652 1652)\n(symbol-value 1680 1680)\n(symbol-value 1728 1728)\n(symbol-value 1792 1792)\n(symbol-value 1872 1872)\n(symbol-value 1924 1924)\n(symbol-value 1600 1600)\n(symbol-value 1876 1876)\n(symbol-value 1464 1464)\n(symbol-value 0 0)\n(system \"\")\n(vendor \"\")\n"), -Attr("abi-name","\"aarch64-linux-gnu-elf\"")]), -Sections([Section(".shstrtab", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x40\x06\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x20\x1c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x38\x00\x09\x00\x40\x00\x1d\x00\x1c\x00\x06\x00\x00\x00\x04\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x04\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xa0\x08\x00\x00\x00\x00\x00\x00\xa0\x08\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x01\x00\x00\x00\x06\x00\x00\x00\xc8\x0d\x00\x00\x00\x00\x00\x00\xc8\x0d\x01\x00\x00\x00\x00\x00\xc8\x0d\x01"), -Section(".strtab", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x40\x06\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x20\x1c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x38\x00\x09\x00\x40\x00\x1d\x00\x1c\x00\x06\x00\x00\x00\x04\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x04\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xa0\x08\x00\x00\x00\x00\x00\x00\xa0\x08\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x01\x00\x00\x00\x06\x00\x00\x00\xc8\x0d\x00\x00\x00\x00\x00\x00\xc8\x0d\x01\x00\x00\x00\x00\x00\xc8\x0d\x01\x00\x00\x00\x00\x00\x70\x02\x00\x00\x00\x00\x00\x00\x78\x02\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x02\x00\x00\x00\x06\x00\x00\x00\xd8\x0d\x00\x00\x00\x00\x00\x00\xd8\x0d\x01\x00\x00\x00\x00\x00\xd8\x0d\x01\x00\x00\x00\x00\x00\xe0\x01\x00\x00\x00\x00\x00\x00\xe0\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x04\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x50\xe5\x74\x64\x04\x00\x00\x00\x9c\x07\x00\x00\x00\x00\x00\x00\x9c\x07\x00\x00\x00\x00\x00\x00\x9c\x07\x00\x00\x00\x00\x00\x00\x3c\x00\x00\x00\x00\x00\x00\x00\x3c\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x51\xe5\x74\x64\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x52\xe5\x74\x64\x04\x00\x00\x00\xc8\x0d\x00\x00\x00\x00\x00\x00\xc8\x0d\x01\x00\x00\x00\x00\x00\xc8\x0d\x01\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x2f\x6c\x69\x62\x2f\x6c"), -Section(".symtab", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x40\x06\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x20\x1c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x38\x00\x09\x00\x40\x00\x1d\x00\x1c\x00\x06\x00\x00\x00\x04\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x04\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xa0\x08\x00\x00\x00\x00\x00\x00\xa0\x08\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x01\x00\x00\x00\x06\x00\x00\x00\xc8\x0d\x00\x00\x00\x00\x00\x00\xc8\x0d\x01\x00\x00\x00\x00\x00\xc8\x0d\x01\x00\x00\x00\x00\x00\x70\x02\x00\x00\x00\x00\x00\x00\x78\x02\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x02\x00\x00\x00\x06\x00\x00\x00\xd8\x0d\x00\x00\x00\x00\x00\x00\xd8\x0d\x01\x00\x00\x00\x00\x00\xd8\x0d\x01\x00\x00\x00\x00\x00\xe0\x01\x00\x00\x00\x00\x00\x00\xe0\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x04\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x50\xe5\x74\x64\x04\x00\x00\x00\x9c\x07\x00\x00\x00\x00\x00\x00\x9c\x07\x00\x00\x00\x00\x00\x00\x9c\x07\x00\x00\x00\x00\x00\x00\x3c\x00\x00\x00\x00\x00\x00\x00\x3c\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x51\xe5\x74\x64\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x52\xe5\x74\x64\x04\x00\x00\x00\xc8\x0d\x00\x00\x00\x00\x00\x00\xc8\x0d\x01\x00\x00\x00\x00\x00\xc8\x0d\x01\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x2f\x6c\x69\x62\x2f\x6c\x64\x2d\x6c\x69\x6e\x75\x78\x2d\x61\x61\x72\x63\x68\x36\x34\x2e\x73\x6f\x2e\x31\x00\x00\x04\x00\x00\x00\x14\x00\x00\x00\x03\x00\x00\x00\x47\x4e\x55\x00\x73\x6f\xe6\x41\x83\x66\xbd\x61\x2b\xe8\xe2\x5f\xb1\x74\x40\x70\xa5\x6a\x14\x57\x04\x00\x00\x00\x10\x00\x00\x00\x01\x00\x00\x00\x47\x4e\x55\x00\x00\x00\x00\x00\x03\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x01\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x0b\x00\xb8\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x17\x00\x28\x10\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4d\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x22\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x28\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x69\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x22\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x78\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5f\x5f\x63\x78\x61\x5f\x66\x69\x6e\x61\x6c\x69\x7a\x65\x00\x5f\x5f\x6c\x69\x62\x63\x5f\x73\x74\x61\x72\x74\x5f\x6d\x61\x69\x6e\x00\x61\x62\x6f\x72\x74\x00\x66\x6f\x72\x6b\x00\x6c\x69\x62\x63\x2e\x73\x6f\x2e\x36\x00\x47\x4c\x49\x42\x43\x5f\x32\x2e\x31\x37\x00\x47\x4c\x49\x42\x43\x5f\x32\x2e\x33\x34\x00\x5f\x49\x54\x4d\x5f\x64\x65\x72\x65\x67\x69\x73\x74\x65\x72\x54\x4d\x43\x6c\x6f\x6e\x65\x54\x61\x62\x6c\x65\x00\x5f\x5f\x67\x6d\x6f\x6e\x5f\x73\x74\x61\x72\x74\x5f\x5f\x00\x5f\x49\x54\x4d\x5f\x72\x65\x67\x69\x73\x74\x65\x72\x54\x4d\x43\x6c\x6f\x6e\x65\x54\x61\x62\x6c\x65\x00\x00\x00\x00\x00\x00\x00\x02\x00\x01\x00\x03\x00\x03\x00\x01\x00\x03\x00\x01\x00\x00\x00\x01\x00\x02\x00\x2d\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x97\x91\x96\x06\x00\x00\x03\x00\x37\x00\x00\x00\x10\x00\x00\x00\xb4\x91\x96\x06\x00\x00\x02\x00\x42\x00\x00\x00\x00\x00\x00\x00\xc8\x0d\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x50\x07\x00\x00\x00\x00\x00\x00\xd0\x0d\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\xd8\x0f\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x54\x07\x00\x00\x00\x00\x00\x00\x30\x10\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x30\x10\x01\x00\x00\x00\x00\x00\xc0\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xc8\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xd0\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe0\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x09\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x08\x10\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x10\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x18\x10\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x20\x10\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1f\x20\x03\xd5\xfd\x7b\xbf\xa9\xfd\x03\x00\x91\x2c\x00\x00\x94\xfd\x7b\xc1\xa8\xc0\x03\x5f\xd6\xf0\x7b\xbf\xa9\x90\x00\x00\x90\x11\xfe\x47\xf9\x10\xe2\x3f\x91\x20\x02\x1f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x90\x00\x00\xb0\x11\x02\x40\xf9\x10\x02\x00\x91\x20\x02\x1f\xd6\x90\x00\x00\xb0\x11\x06\x40\xf9\x10\x22\x00\x91\x20\x02\x1f\xd6\x90\x00\x00\xb0\x11\x0a\x40\xf9\x10\x42\x00\x91\x20\x02\x1f\xd6\x90\x00\x00\xb0\x11\x0e\x40\xf9\x10\x62\x00\x91\x20\x02\x1f\xd6\x90\x00\x00\xb0\x11\x12\x40\xf9\x10\x82\x00\x91\x20\x02\x1f\xd6\x1f\x20\x03\xd5\x1d\x00\x80\xd2\x1e\x00\x80\xd2\xe5\x03\x00\xaa\xe1\x03\x40\xf9\xe2\x23\x00\x91\xe6\x03\x00\x91\x80\x00\x00\x90\x00\xec\x47\xf9\x03\x00\x80\xd2\x04\x00\x80\xd2\xe1\xff\xff\x97\xf0\xff\xff\x97\x80\x00\x00\x90\x00\xe8\x47\xf9\x40\x00\x00\xb4\xe8\xff\xff\x17\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x80\x00\x00\xb0\x00\xe0\x00\x91\x81\x00\x00\xb0\x21\xe0\x00\x91\x3f\x00\x00\xeb\xc0\x00\x00\x54\x81\x00\x00\x90\x21\xe0\x47\xf9\x61\x00\x00\xb4\xf0\x03\x01\xaa\x00\x02\x1f\xd6\xc0\x03\x5f\xd6\x80\x00\x00\xb0\x00\xe0\x00\x91\x81\x00\x00\xb0\x21\xe0\x00\x91\x21\x00\x00\xcb\x22\xfc\x7f\xd3\x41\x0c\x81\x8b\x21\xfc\x41\x93\xc1\x00\x00\xb4\x82\x00\x00\x90\x42\xf0\x47\xf9\x62\x00\x00\xb4\xf0\x03\x02\xaa\x00\x02\x1f\xd6\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\xfd\x7b\xbe\xa9\xfd\x03\x00\x91\xf3\x0b\x00\xf9\x93\x00\x00\xb0\x60\xe2\x40\x39\x40\x01\x00\x35\x80\x00\x00\x90\x00\xe4\x47\xf9\x80\x00\x00\xb4\x80\x00\x00\xb0\x00\x18\x40\xf9\xb5\xff\xff\x97\xd8\xff\xff\x97\x20\x00\x80\x52\x60\xe2\x00\x39\xf3\x0b\x40\xf9\xfd\x7b\xc2\xa8\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\xdc\xff\xff\x17\xff\xc3\x00\xd1\xfd\x7b\x02\xa9\xfd\x83\x00\x91\xbf\xc3\x1f\xb8\xa0\x83\x1f\xb8\xe1\x0b\x00\xf9\xa9\xff\xff\x97\xe0\x0f\x00\xb9\xe0\x0f\x40\xb9\xfd\x7b\x42\xa9\xff\xc3\x00\x91\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\xfd\x7b\xbf\xa9\xfd\x03\x00\x91\xfd\x7b\xc1\xa8\xc0\x03\x5f\xd6\x01\x00\x02\x00\x01\x1b\x03\x3b\x38\x00\x00\x00\x06\x00\x00\x00\xa4\xfe\xff\xff\x50\x00\x00\x00\xf4\xfe\xff\xff\x64\x00\x00\x00\x24\xff\xff\xff\x78\x00\x00\x00\x64\xff\xff\xff\x8c\x00\x00\x00\xb4\xff\xff\xff\xb0\x00\x00\x00\xb8\xff\xff\xff\xd8\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x01\x7a\x52\x00\x04\x78\x1e\x01\x1b\x0c\x1f\x00\x10\x00\x00\x00\x18\x00\x00\x00\x4c\xfe\xff\xff\x34\x00\x00\x00\x00\x41\x07\x1e\x10\x00\x00\x00\x2c\x00\x00\x00\x88\xfe\xff\xff\x30\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x40\x00\x00\x00\xa4\xfe\xff\xff\x3c\x00\x00\x00\x00\x00\x00\x00\x20\x00\x00\x00\x54\x00\x00\x00\xd0\xfe\xff\xff\x48\x00\x00\x00\x00\x41\x0e\x20\x9d\x04\x9e\x03\x42\x93\x02\x4e\xde\xdd\xd3\x0e\x00\x00\x00\x00\x10\x00\x00\x00\x78\x00\x00\x00\xfc\xfe\xff\xff"), -Section(".comment", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x40\x06\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x20\x1c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x38\x00\x09\x00\x40\x00\x1d\x00\x1c\x00\x06\x00\x00\x00\x04\x00\x00"), -Section(".interp", 0x238, "\x2f\x6c\x69\x62\x2f\x6c\x64\x2d\x6c\x69\x6e\x75\x78\x2d\x61\x61\x72\x63\x68\x36\x34\x2e\x73\x6f\x2e\x31\x00"), -Section(".note.gnu.build-id", 0x254, "\x04\x00\x00\x00\x14\x00\x00\x00\x03\x00\x00\x00\x47\x4e\x55\x00\x73\x6f\xe6\x41\x83\x66\xbd\x61\x2b\xe8\xe2\x5f\xb1\x74\x40\x70\xa5\x6a\x14\x57"), -Section(".note.ABI-tag", 0x278, "\x04\x00\x00\x00\x10\x00\x00\x00\x01\x00\x00\x00\x47\x4e\x55\x00\x00\x00\x00\x00\x03\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00"), -Section(".gnu.hash", 0x298, "\x01\x00\x00\x00\x01\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".dynsym", 0x2B8, "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x0b\x00\xb8\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x17\x00\x28\x10\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4d\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x22\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x28\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x69\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x22\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x78\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".dynstr", 0x3A8, "\x00\x5f\x5f\x63\x78\x61\x5f\x66\x69\x6e\x61\x6c\x69\x7a\x65\x00\x5f\x5f\x6c\x69\x62\x63\x5f\x73\x74\x61\x72\x74\x5f\x6d\x61\x69\x6e\x00\x61\x62\x6f\x72\x74\x00\x66\x6f\x72\x6b\x00\x6c\x69\x62\x63\x2e\x73\x6f\x2e\x36\x00\x47\x4c\x49\x42\x43\x5f\x32\x2e\x31\x37\x00\x47\x4c\x49\x42\x43\x5f\x32\x2e\x33\x34\x00\x5f\x49\x54\x4d\x5f\x64\x65\x72\x65\x67\x69\x73\x74\x65\x72\x54\x4d\x43\x6c\x6f\x6e\x65\x54\x61\x62\x6c\x65\x00\x5f\x5f\x67\x6d\x6f\x6e\x5f\x73\x74\x61\x72\x74\x5f\x5f\x00\x5f\x49\x54\x4d\x5f\x72\x65\x67\x69\x73\x74\x65\x72\x54\x4d\x43\x6c\x6f\x6e\x65\x54\x61\x62\x6c\x65\x00"), -Section(".gnu.version", 0x43A, "\x00\x00\x00\x00\x00\x00\x02\x00\x01\x00\x03\x00\x03\x00\x01\x00\x03\x00\x01\x00"), -Section(".gnu.version_r", 0x450, "\x01\x00\x02\x00\x2d\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x97\x91\x96\x06\x00\x00\x03\x00\x37\x00\x00\x00\x10\x00\x00\x00\xb4\x91\x96\x06\x00\x00\x02\x00\x42\x00\x00\x00\x00\x00\x00\x00"), -Section(".rela.dyn", 0x480, "\xc8\x0d\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x50\x07\x00\x00\x00\x00\x00\x00\xd0\x0d\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\xd8\x0f\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x54\x07\x00\x00\x00\x00\x00\x00\x30\x10\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x30\x10\x01\x00\x00\x00\x00\x00\xc0\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xc8\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xd0\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe0\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x09\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".rela.plt", 0x540, "\x00\x10\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x08\x10\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x10\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x18\x10\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x20\x10\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".init", 0x5B8, "\x1f\x20\x03\xd5\xfd\x7b\xbf\xa9\xfd\x03\x00\x91\x2c\x00\x00\x94\xfd\x7b\xc1\xa8\xc0\x03\x5f\xd6"), -Section(".plt", 0x5D0, "\xf0\x7b\xbf\xa9\x90\x00\x00\x90\x11\xfe\x47\xf9\x10\xe2\x3f\x91\x20\x02\x1f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x90\x00\x00\xb0\x11\x02\x40\xf9\x10\x02\x00\x91\x20\x02\x1f\xd6\x90\x00\x00\xb0\x11\x06\x40\xf9\x10\x22\x00\x91\x20\x02\x1f\xd6\x90\x00\x00\xb0\x11\x0a\x40\xf9\x10\x42\x00\x91\x20\x02\x1f\xd6\x90\x00\x00\xb0\x11\x0e\x40\xf9\x10\x62\x00\x91\x20\x02\x1f\xd6\x90\x00\x00\xb0\x11\x12\x40\xf9\x10\x82\x00\x91\x20\x02\x1f\xd6"), -Section(".fini", 0x784, "\x1f\x20\x03\xd5\xfd\x7b\xbf\xa9\xfd\x03\x00\x91\xfd\x7b\xc1\xa8\xc0\x03\x5f\xd6"), -Section(".rodata", 0x798, "\x01\x00\x02\x00"), -Section(".eh_frame_hdr", 0x79C, "\x01\x1b\x03\x3b\x38\x00\x00\x00\x06\x00\x00\x00\xa4\xfe\xff\xff\x50\x00\x00\x00\xf4\xfe\xff\xff\x64\x00\x00\x00\x24\xff\xff\xff\x78\x00\x00\x00\x64\xff\xff\xff\x8c\x00\x00\x00\xb4\xff\xff\xff\xb0\x00\x00\x00\xb8\xff\xff\xff\xd8\x00\x00\x00"), -Section(".eh_frame", 0x7D8, "\x10\x00\x00\x00\x00\x00\x00\x00\x01\x7a\x52\x00\x04\x78\x1e\x01\x1b\x0c\x1f\x00\x10\x00\x00\x00\x18\x00\x00\x00\x4c\xfe\xff\xff\x34\x00\x00\x00\x00\x41\x07\x1e\x10\x00\x00\x00\x2c\x00\x00\x00\x88\xfe\xff\xff\x30\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x40\x00\x00\x00\xa4\xfe\xff\xff\x3c\x00\x00\x00\x00\x00\x00\x00\x20\x00\x00\x00\x54\x00\x00\x00\xd0\xfe\xff\xff\x48\x00\x00\x00\x00\x41\x0e\x20\x9d\x04\x9e\x03\x42\x93\x02\x4e\xde\xdd\xd3\x0e\x00\x00\x00\x00\x10\x00\x00\x00\x78\x00\x00\x00\xfc\xfe\xff\xff\x04\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x01\x7a\x52\x00\x01\x7c\x1e\x01\x1b\x0c\x1f\x00\x24\x00\x00\x00\x18\x00\x00\x00\xd8\xfe\xff\xff\x30\x00\x00\x00\x00\x44\x0e\x30\x48\x0c\x1d\x10\x9e\x02\x9d\x04\x58\x0c\x1f\x30\x48\x0e\x00\xde\xdd\x00\x00\x00\x00\x00\x00\x00"), -Section(".fini_array", 0x10DD0, "\x00\x07\x00\x00\x00\x00\x00\x00"), -Section(".dynamic", 0x10DD8, "\x01\x00\x00\x00\x00\x00\x00\x00\x2d\x00\x00\x00\x00\x00\x00\x00\x0c\x00\x00\x00\x00\x00\x00\x00\xb8\x05\x00\x00\x00\x00\x00\x00\x0d\x00\x00\x00\x00\x00\x00\x00\x84\x07\x00\x00\x00\x00\x00\x00\x19\x00\x00\x00\x00\x00\x00\x00\xc8\x0d\x01\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x1a\x00\x00\x00\x00\x00\x00\x00\xd0\x0d\x01\x00\x00\x00\x00\x00\x1c\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\xf5\xfe\xff\x6f\x00\x00\x00\x00\x98\x02\x00\x00\x00\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\xa8\x03\x00\x00\x00\x00\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\xb8\x02\x00\x00\x00\x00\x00\x00\x0a\x00\x00\x00\x00\x00\x00\x00\x92\x00\x00\x00\x00\x00\x00\x00\x0b\x00\x00\x00\x00\x00\x00\x00\x18\x00\x00\x00\x00\x00\x00\x00\x15\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\xe8\x0f\x01\x00\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x78\x00\x00\x00\x00\x00\x00\x00\x14\x00\x00\x00\x00\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x17\x00\x00\x00\x00\x00\x00\x00\x40\x05\x00\x00\x00\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x80\x04\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\xc0\x00\x00\x00\x00\x00\x00\x00\x09\x00\x00\x00\x00\x00\x00\x00\x18\x00\x00\x00\x00\x00\x00\x00\xfb\xff\xff\x6f\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\xfe\xff\xff\x6f\x00\x00\x00\x00\x50\x04\x00\x00\x00\x00\x00\x00\xff\xff\xff\x6f\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\xf0\xff\xff\x6f\x00\x00\x00\x00\x3a\x04\x00\x00\x00\x00\x00\x00\xf9\xff\xff\x6f\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".init_array", 0x10DC8, "\x50\x07\x00\x00\x00\x00\x00\x00"), -Section(".got", 0x10FB8, "\xd8\x0d\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x54\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".got.plt", 0x10FE8, "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xd0\x05\x00\x00\x00\x00\x00\x00\xd0\x05\x00\x00\x00\x00\x00\x00\xd0\x05\x00\x00\x00\x00\x00\x00\xd0\x05\x00\x00\x00\x00\x00\x00\xd0\x05\x00\x00\x00\x00\x00\x00"), -Section(".data", 0x11028, "\x00\x00\x00\x00\x00\x00\x00\x00\x30\x10\x01\x00\x00\x00\x00\x00"), -Section(".text", 0x640, "\x1f\x20\x03\xd5\x1d\x00\x80\xd2\x1e\x00\x80\xd2\xe5\x03\x00\xaa\xe1\x03\x40\xf9\xe2\x23\x00\x91\xe6\x03\x00\x91\x80\x00\x00\x90\x00\xec\x47\xf9\x03\x00\x80\xd2\x04\x00\x80\xd2\xe1\xff\xff\x97\xf0\xff\xff\x97\x80\x00\x00\x90\x00\xe8\x47\xf9\x40\x00\x00\xb4\xe8\xff\xff\x17\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x80\x00\x00\xb0\x00\xe0\x00\x91\x81\x00\x00\xb0\x21\xe0\x00\x91\x3f\x00\x00\xeb\xc0\x00\x00\x54\x81\x00\x00\x90\x21\xe0\x47\xf9\x61\x00\x00\xb4\xf0\x03\x01\xaa\x00\x02\x1f\xd6\xc0\x03\x5f\xd6\x80\x00\x00\xb0\x00\xe0\x00\x91\x81\x00\x00\xb0\x21\xe0\x00\x91\x21\x00\x00\xcb\x22\xfc\x7f\xd3\x41\x0c\x81\x8b\x21\xfc\x41\x93\xc1\x00\x00\xb4\x82\x00\x00\x90\x42\xf0\x47\xf9\x62\x00\x00\xb4\xf0\x03\x02\xaa\x00\x02\x1f\xd6\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\xfd\x7b\xbe\xa9\xfd\x03\x00\x91\xf3\x0b\x00\xf9\x93\x00\x00\xb0\x60\xe2\x40\x39\x40\x01\x00\x35\x80\x00\x00\x90\x00\xe4\x47\xf9\x80\x00\x00\xb4\x80\x00\x00\xb0\x00\x18\x40\xf9\xb5\xff\xff\x97\xd8\xff\xff\x97\x20\x00\x80\x52\x60\xe2\x00\x39\xf3\x0b\x40\xf9\xfd\x7b\xc2\xa8\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\xdc\xff\xff\x17\xff\xc3\x00\xd1\xfd\x7b\x02\xa9\xfd\x83\x00\x91\xbf\xc3\x1f\xb8\xa0\x83\x1f\xb8\xe1\x0b\x00\xf9\xa9\xff\xff\x97\xe0\x0f\x00\xb9\xe0\x0f\x40\xb9\xfd\x7b\x42\xa9\xff\xc3\x00\x91\xc0\x03\x5f\xd6")]), -Memmap([Annotation(Region(0x0,0x89F), Attr("segment","02 0 2208")), -Annotation(Region(0x640,0x673), Attr("symbol","\"_start\"")), -Annotation(Region(0x0,0x102), Attr("section","\".shstrtab\"")), -Annotation(Region(0x0,0x23D), Attr("section","\".strtab\"")), -Annotation(Region(0x0,0x857), Attr("section","\".symtab\"")), -Annotation(Region(0x0,0x46), Attr("section","\".comment\"")), -Annotation(Region(0x238,0x252), Attr("section","\".interp\"")), -Annotation(Region(0x254,0x277), Attr("section","\".note.gnu.build-id\"")), -Annotation(Region(0x278,0x297), Attr("section","\".note.ABI-tag\"")), -Annotation(Region(0x298,0x2B3), Attr("section","\".gnu.hash\"")), -Annotation(Region(0x2B8,0x3A7), Attr("section","\".dynsym\"")), -Annotation(Region(0x3A8,0x439), Attr("section","\".dynstr\"")), -Annotation(Region(0x43A,0x44D), Attr("section","\".gnu.version\"")), -Annotation(Region(0x450,0x47F), Attr("section","\".gnu.version_r\"")), -Annotation(Region(0x480,0x53F), Attr("section","\".rela.dyn\"")), -Annotation(Region(0x540,0x5B7), Attr("section","\".rela.plt\"")), -Annotation(Region(0x5B8,0x5CF), Attr("section","\".init\"")), -Annotation(Region(0x5D0,0x63F), Attr("section","\".plt\"")), -Annotation(Region(0x5B8,0x5CF), Attr("code-region","()")), -Annotation(Region(0x5D0,0x63F), Attr("code-region","()")), -Annotation(Region(0x640,0x673), Attr("symbol-info","_start 0x640 52")), -Annotation(Region(0x674,0x687), Attr("symbol","\"call_weak_fn\"")), -Annotation(Region(0x674,0x687), Attr("symbol-info","call_weak_fn 0x674 20")), -Annotation(Region(0x754,0x783), Attr("symbol","\"main\"")), -Annotation(Region(0x754,0x783), Attr("symbol-info","main 0x754 48")), -Annotation(Region(0x784,0x797), Attr("section","\".fini\"")), -Annotation(Region(0x798,0x79B), Attr("section","\".rodata\"")), -Annotation(Region(0x79C,0x7D7), Attr("section","\".eh_frame_hdr\"")), -Annotation(Region(0x7D8,0x89F), Attr("section","\".eh_frame\"")), -Annotation(Region(0x10DC8,0x11037), Attr("segment","03 0x10DC8 632")), -Annotation(Region(0x10DD0,0x10DD7), Attr("section","\".fini_array\"")), -Annotation(Region(0x10DD8,0x10FB7), Attr("section","\".dynamic\"")), -Annotation(Region(0x10DC8,0x10DCF), Attr("section","\".init_array\"")), -Annotation(Region(0x10FB8,0x10FE7), Attr("section","\".got\"")), -Annotation(Region(0x10FE8,0x11027), Attr("section","\".got.plt\"")), -Annotation(Region(0x11028,0x11037), Attr("section","\".data\"")), -Annotation(Region(0x640,0x783), Attr("section","\".text\"")), -Annotation(Region(0x640,0x783), Attr("code-region","()")), -Annotation(Region(0x784,0x797), Attr("code-region","()"))]), -Program(Tid(1_578, "%0000062a"), Attrs([]), - Subs([Sub(Tid(1_526, "@__cxa_finalize"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x600"), -Attr("stub","()")]), "__cxa_finalize", Args([Arg(Tid(1_579, "%0000062b"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("__cxa_finalize_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(888, "@__cxa_finalize"), - Attrs([Attr("address","0x600")]), Phis([]), -Defs([Def(Tid(1_152, "%00000480"), Attrs([Attr("address","0x600"), -Attr("insn","adrp x16, #69632")]), Var("R16",Imm(64)), Int(69632,64)), -Def(Tid(1_159, "%00000487"), Attrs([Attr("address","0x604"), -Attr("insn","ldr x17, [x16, #0x8]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(1_165, "%0000048d"), Attrs([Attr("address","0x608"), -Attr("insn","add x16, x16, #0x8")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(8,64)))]), Jmps([Call(Tid(1_170, "%00000492"), - Attrs([Attr("address","0x60C"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), -Sub(Tid(1_527, "@__do_global_dtors_aux"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x700")]), - "__do_global_dtors_aux", Args([Arg(Tid(1_580, "%0000062c"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("__do_global_dtors_aux_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(638, "@__do_global_dtors_aux"), - Attrs([Attr("address","0x700")]), Phis([]), Defs([Def(Tid(642, "%00000282"), - Attrs([Attr("address","0x700"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("#3",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(18446744073709551584,64))), -Def(Tid(648, "%00000288"), Attrs([Attr("address","0x700"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("#3",Imm(64)),Var("R29",Imm(64)),LittleEndian(),64)), -Def(Tid(654, "%0000028e"), Attrs([Attr("address","0x700"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("#3",Imm(64)),Int(8,64)),Var("R30",Imm(64)),LittleEndian(),64)), -Def(Tid(658, "%00000292"), Attrs([Attr("address","0x700"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("R31",Imm(64)), -Var("#3",Imm(64))), Def(Tid(664, "%00000298"), - Attrs([Attr("address","0x704"), Attr("insn","mov x29, sp")]), - Var("R29",Imm(64)), Var("R31",Imm(64))), Def(Tid(672, "%000002a0"), - Attrs([Attr("address","0x708"), Attr("insn","str x19, [sp, #0x10]")]), - Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(16,64)),Var("R19",Imm(64)),LittleEndian(),64)), -Def(Tid(677, "%000002a5"), Attrs([Attr("address","0x70C"), -Attr("insn","adrp x19, #69632")]), Var("R19",Imm(64)), Int(69632,64)), -Def(Tid(684, "%000002ac"), Attrs([Attr("address","0x710"), -Attr("insn","ldrb w0, [x19, #0x38]")]), Var("R0",Imm(64)), -UNSIGNED(64,Load(Var("mem",Mem(64,8)),PLUS(Var("R19",Imm(64)),Int(56,64)),LittleEndian(),8)))]), -Jmps([Goto(Tid(691, "%000002b3"), Attrs([Attr("address","0x714"), -Attr("insn","cbnz w0, #0x28")]), - NEQ(Extract(31,0,Var("R0",Imm(64))),Int(0,32)), -Direct(Tid(689, "%000002b1"))), Goto(Tid(1_568, "%00000620"), Attrs([]), - Int(1,1), Direct(Tid(833, "%00000341")))])), Blk(Tid(833, "%00000341"), - Attrs([Attr("address","0x718")]), Phis([]), Defs([Def(Tid(836, "%00000344"), - Attrs([Attr("address","0x718"), Attr("insn","adrp x0, #65536")]), - Var("R0",Imm(64)), Int(65536,64)), Def(Tid(843, "%0000034b"), - Attrs([Attr("address","0x71C"), Attr("insn","ldr x0, [x0, #0xfc8]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(4040,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(849, "%00000351"), Attrs([Attr("address","0x720"), -Attr("insn","cbz x0, #0x10")]), EQ(Var("R0",Imm(64)),Int(0,64)), -Direct(Tid(847, "%0000034f"))), Goto(Tid(1_569, "%00000621"), Attrs([]), - Int(1,1), Direct(Tid(872, "%00000368")))])), Blk(Tid(872, "%00000368"), - Attrs([Attr("address","0x724")]), Phis([]), Defs([Def(Tid(875, "%0000036b"), - Attrs([Attr("address","0x724"), Attr("insn","adrp x0, #69632")]), - Var("R0",Imm(64)), Int(69632,64)), Def(Tid(882, "%00000372"), - Attrs([Attr("address","0x728"), Attr("insn","ldr x0, [x0, #0x30]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(48,64)),LittleEndian(),64)), -Def(Tid(887, "%00000377"), Attrs([Attr("address","0x72C"), -Attr("insn","bl #-0x12c")]), Var("R30",Imm(64)), Int(1840,64))]), -Jmps([Call(Tid(890, "%0000037a"), Attrs([Attr("address","0x72C"), -Attr("insn","bl #-0x12c")]), Int(1,1), -(Direct(Tid(1_526, "@__cxa_finalize")),Direct(Tid(847, "%0000034f"))))])), -Blk(Tid(847, "%0000034f"), Attrs([Attr("address","0x730")]), Phis([]), -Defs([Def(Tid(855, "%00000357"), Attrs([Attr("address","0x730"), -Attr("insn","bl #-0xa0")]), Var("R30",Imm(64)), Int(1844,64))]), -Jmps([Call(Tid(857, "%00000359"), Attrs([Attr("address","0x730"), -Attr("insn","bl #-0xa0")]), Int(1,1), -(Direct(Tid(1_540, "@deregister_tm_clones")),Direct(Tid(859, "%0000035b"))))])), -Blk(Tid(859, "%0000035b"), Attrs([Attr("address","0x734")]), Phis([]), -Defs([Def(Tid(862, "%0000035e"), Attrs([Attr("address","0x734"), -Attr("insn","mov w0, #0x1")]), Var("R0",Imm(64)), Int(1,64)), -Def(Tid(870, "%00000366"), Attrs([Attr("address","0x738"), -Attr("insn","strb w0, [x19, #0x38]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R19",Imm(64)),Int(56,64)),Extract(7,0,Var("R0",Imm(64))),LittleEndian(),8))]), -Jmps([Goto(Tid(1_570, "%00000622"), Attrs([]), Int(1,1), -Direct(Tid(689, "%000002b1")))])), Blk(Tid(689, "%000002b1"), - Attrs([Attr("address","0x73C")]), Phis([]), Defs([Def(Tid(699, "%000002bb"), - Attrs([Attr("address","0x73C"), Attr("insn","ldr x19, [sp, #0x10]")]), - Var("R19",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(16,64)),LittleEndian(),64)), -Def(Tid(706, "%000002c2"), Attrs([Attr("address","0x740"), -Attr("insn","ldp x29, x30, [sp], #0x20")]), Var("R29",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(711, "%000002c7"), Attrs([Attr("address","0x740"), -Attr("insn","ldp x29, x30, [sp], #0x20")]), Var("R30",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(715, "%000002cb"), Attrs([Attr("address","0x740"), -Attr("insn","ldp x29, x30, [sp], #0x20")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(32,64)))]), Jmps([Call(Tid(720, "%000002d0"), - Attrs([Attr("address","0x744"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), Sub(Tid(1_531, "@__libc_start_main"), - Attrs([Attr("c.proto","signed (*)(signed (*)(signed , char** , char** );* main, signed , char** , \nvoid* auxv)"), -Attr("address","0x5F0"), Attr("stub","()")]), "__libc_start_main", - Args([Arg(Tid(1_581, "%0000062d"), - Attrs([Attr("c.layout","**[ : 64]"), -Attr("c.data","Top:u64 ptr ptr"), -Attr("c.type","signed (*)(signed , char** , char** );*")]), - Var("__libc_start_main_main",Imm(64)), Var("R0",Imm(64)), In()), -Arg(Tid(1_582, "%0000062e"), Attrs([Attr("c.layout","[signed : 32]"), -Attr("c.data","Top:u32"), Attr("c.type","signed")]), - Var("__libc_start_main_arg2",Imm(32)), LOW(32,Var("R1",Imm(64))), In()), -Arg(Tid(1_583, "%0000062f"), Attrs([Attr("c.layout","**[char : 8]"), -Attr("c.data","Top:u8 ptr ptr"), Attr("c.type","char**")]), - Var("__libc_start_main_arg3",Imm(64)), Var("R2",Imm(64)), Both()), -Arg(Tid(1_584, "%00000630"), Attrs([Attr("c.layout","*[ : 8]"), -Attr("c.data","{} ptr"), Attr("c.type","void*")]), - Var("__libc_start_main_auxv",Imm(64)), Var("R3",Imm(64)), Both()), -Arg(Tid(1_585, "%00000631"), Attrs([Attr("c.layout","[signed : 32]"), -Attr("c.data","Top:u32"), Attr("c.type","signed")]), - Var("__libc_start_main_result",Imm(32)), LOW(32,Var("R0",Imm(64))), -Out())]), Blks([Blk(Tid(471, "@__libc_start_main"), - Attrs([Attr("address","0x5F0")]), Phis([]), -Defs([Def(Tid(1_130, "%0000046a"), Attrs([Attr("address","0x5F0"), -Attr("insn","adrp x16, #69632")]), Var("R16",Imm(64)), Int(69632,64)), -Def(Tid(1_137, "%00000471"), Attrs([Attr("address","0x5F4"), -Attr("insn","ldr x17, [x16]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R16",Imm(64)),LittleEndian(),64)), -Def(Tid(1_143, "%00000477"), Attrs([Attr("address","0x5F8"), -Attr("insn","add x16, x16, #0x0")]), Var("R16",Imm(64)), -Var("R16",Imm(64)))]), Jmps([Call(Tid(1_148, "%0000047c"), - Attrs([Attr("address","0x5FC"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), Sub(Tid(1_532, "@_fini"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x784")]), - "_fini", Args([Arg(Tid(1_586, "%00000632"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("_fini_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(31, "@_fini"), - Attrs([Attr("address","0x784")]), Phis([]), Defs([Def(Tid(37, "%00000025"), - Attrs([Attr("address","0x788"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("#0",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(18446744073709551600,64))), -Def(Tid(43, "%0000002b"), Attrs([Attr("address","0x788"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("#0",Imm(64)),Var("R29",Imm(64)),LittleEndian(),64)), -Def(Tid(49, "%00000031"), Attrs([Attr("address","0x788"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("#0",Imm(64)),Int(8,64)),Var("R30",Imm(64)),LittleEndian(),64)), -Def(Tid(53, "%00000035"), Attrs([Attr("address","0x788"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("R31",Imm(64)), -Var("#0",Imm(64))), Def(Tid(59, "%0000003b"), Attrs([Attr("address","0x78C"), -Attr("insn","mov x29, sp")]), Var("R29",Imm(64)), Var("R31",Imm(64))), -Def(Tid(66, "%00000042"), Attrs([Attr("address","0x790"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R29",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(71, "%00000047"), Attrs([Attr("address","0x790"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R30",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(75, "%0000004b"), Attrs([Attr("address","0x790"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(16,64)))]), Jmps([Call(Tid(80, "%00000050"), - Attrs([Attr("address","0x794"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), Sub(Tid(1_533, "@_init"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x5B8")]), - "_init", Args([Arg(Tid(1_587, "%00000633"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("_init_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(1_352, "@_init"), - Attrs([Attr("address","0x5B8")]), Phis([]), -Defs([Def(Tid(1_358, "%0000054e"), Attrs([Attr("address","0x5BC"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("#7",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(18446744073709551600,64))), -Def(Tid(1_364, "%00000554"), Attrs([Attr("address","0x5BC"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("#7",Imm(64)),Var("R29",Imm(64)),LittleEndian(),64)), -Def(Tid(1_370, "%0000055a"), Attrs([Attr("address","0x5BC"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("#7",Imm(64)),Int(8,64)),Var("R30",Imm(64)),LittleEndian(),64)), -Def(Tid(1_374, "%0000055e"), Attrs([Attr("address","0x5BC"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("R31",Imm(64)), -Var("#7",Imm(64))), Def(Tid(1_380, "%00000564"), - Attrs([Attr("address","0x5C0"), Attr("insn","mov x29, sp")]), - Var("R29",Imm(64)), Var("R31",Imm(64))), Def(Tid(1_385, "%00000569"), - Attrs([Attr("address","0x5C4"), Attr("insn","bl #0xb0")]), - Var("R30",Imm(64)), Int(1480,64))]), Jmps([Call(Tid(1_387, "%0000056b"), - Attrs([Attr("address","0x5C4"), Attr("insn","bl #0xb0")]), Int(1,1), -(Direct(Tid(1_538, "@call_weak_fn")),Direct(Tid(1_389, "%0000056d"))))])), -Blk(Tid(1_389, "%0000056d"), Attrs([Attr("address","0x5C8")]), Phis([]), -Defs([Def(Tid(1_394, "%00000572"), Attrs([Attr("address","0x5C8"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R29",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(1_399, "%00000577"), Attrs([Attr("address","0x5C8"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R30",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(1_403, "%0000057b"), Attrs([Attr("address","0x5C8"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(16,64)))]), Jmps([Call(Tid(1_408, "%00000580"), - Attrs([Attr("address","0x5CC"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), Sub(Tid(1_534, "@_start"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x640"), -Attr("stub","()"), Attr("entry-point","()")]), "_start", - Args([Arg(Tid(1_588, "%00000634"), Attrs([Attr("c.layout","[signed : 32]"), -Attr("c.data","Top:u32"), Attr("c.type","signed")]), - Var("_start_result",Imm(32)), LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(408, "@_start"), Attrs([Attr("address","0x640")]), Phis([]), -Defs([Def(Tid(413, "%0000019d"), Attrs([Attr("address","0x644"), -Attr("insn","mov x29, #0x0")]), Var("R29",Imm(64)), Int(0,64)), -Def(Tid(418, "%000001a2"), Attrs([Attr("address","0x648"), -Attr("insn","mov x30, #0x0")]), Var("R30",Imm(64)), Int(0,64)), -Def(Tid(424, "%000001a8"), Attrs([Attr("address","0x64C"), -Attr("insn","mov x5, x0")]), Var("R5",Imm(64)), Var("R0",Imm(64))), -Def(Tid(431, "%000001af"), Attrs([Attr("address","0x650"), -Attr("insn","ldr x1, [sp]")]), Var("R1",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(437, "%000001b5"), Attrs([Attr("address","0x654"), -Attr("insn","add x2, sp, #0x8")]), Var("R2",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(8,64))), Def(Tid(443, "%000001bb"), - Attrs([Attr("address","0x658"), Attr("insn","mov x6, sp")]), - Var("R6",Imm(64)), Var("R31",Imm(64))), Def(Tid(448, "%000001c0"), - Attrs([Attr("address","0x65C"), Attr("insn","adrp x0, #65536")]), - Var("R0",Imm(64)), Int(65536,64)), Def(Tid(455, "%000001c7"), - Attrs([Attr("address","0x660"), Attr("insn","ldr x0, [x0, #0xfd8]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(4056,64)),LittleEndian(),64)), -Def(Tid(460, "%000001cc"), Attrs([Attr("address","0x664"), -Attr("insn","mov x3, #0x0")]), Var("R3",Imm(64)), Int(0,64)), -Def(Tid(465, "%000001d1"), Attrs([Attr("address","0x668"), -Attr("insn","mov x4, #0x0")]), Var("R4",Imm(64)), Int(0,64)), -Def(Tid(470, "%000001d6"), Attrs([Attr("address","0x66C"), -Attr("insn","bl #-0x7c")]), Var("R30",Imm(64)), Int(1648,64))]), -Jmps([Call(Tid(473, "%000001d9"), Attrs([Attr("address","0x66C"), -Attr("insn","bl #-0x7c")]), Int(1,1), -(Direct(Tid(1_531, "@__libc_start_main")),Direct(Tid(475, "%000001db"))))])), -Blk(Tid(475, "%000001db"), Attrs([Attr("address","0x670")]), Phis([]), -Defs([Def(Tid(478, "%000001de"), Attrs([Attr("address","0x670"), -Attr("insn","bl #-0x40")]), Var("R30",Imm(64)), Int(1652,64))]), -Jmps([Call(Tid(481, "%000001e1"), Attrs([Attr("address","0x670"), -Attr("insn","bl #-0x40")]), Int(1,1), -(Direct(Tid(1_537, "@abort")),Direct(Tid(1_571, "%00000623"))))])), -Blk(Tid(1_571, "%00000623"), Attrs([]), Phis([]), Defs([]), -Jmps([Call(Tid(1_572, "%00000624"), Attrs([]), Int(1,1), -(Direct(Tid(1_538, "@call_weak_fn")),))]))])), Sub(Tid(1_537, "@abort"), - Attrs([Attr("noreturn","()"), Attr("c.proto","void (*)(void)"), -Attr("address","0x630"), Attr("stub","()")]), "abort", Args([]), -Blks([Blk(Tid(479, "@abort"), Attrs([Attr("address","0x630")]), Phis([]), -Defs([Def(Tid(1_218, "%000004c2"), Attrs([Attr("address","0x630"), -Attr("insn","adrp x16, #69632")]), Var("R16",Imm(64)), Int(69632,64)), -Def(Tid(1_225, "%000004c9"), Attrs([Attr("address","0x634"), -Attr("insn","ldr x17, [x16, #0x20]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(32,64)),LittleEndian(),64)), -Def(Tid(1_231, "%000004cf"), Attrs([Attr("address","0x638"), -Attr("insn","add x16, x16, #0x20")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(32,64)))]), Jmps([Call(Tid(1_236, "%000004d4"), - Attrs([Attr("address","0x63C"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), Sub(Tid(1_538, "@call_weak_fn"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x674")]), - "call_weak_fn", Args([Arg(Tid(1_589, "%00000635"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("call_weak_fn_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(483, "@call_weak_fn"), - Attrs([Attr("address","0x674")]), Phis([]), Defs([Def(Tid(486, "%000001e6"), - Attrs([Attr("address","0x674"), Attr("insn","adrp x0, #65536")]), - Var("R0",Imm(64)), Int(65536,64)), Def(Tid(493, "%000001ed"), - Attrs([Attr("address","0x678"), Attr("insn","ldr x0, [x0, #0xfd0]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(4048,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(499, "%000001f3"), Attrs([Attr("address","0x67C"), -Attr("insn","cbz x0, #0x8")]), EQ(Var("R0",Imm(64)),Int(0,64)), -Direct(Tid(497, "%000001f1"))), Goto(Tid(1_573, "%00000625"), Attrs([]), - Int(1,1), Direct(Tid(952, "%000003b8")))])), Blk(Tid(497, "%000001f1"), - Attrs([Attr("address","0x684")]), Phis([]), Defs([]), -Jmps([Call(Tid(505, "%000001f9"), Attrs([Attr("address","0x684"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))])), -Blk(Tid(952, "%000003b8"), Attrs([Attr("address","0x680")]), Phis([]), -Defs([]), Jmps([Goto(Tid(955, "%000003bb"), Attrs([Attr("address","0x680"), -Attr("insn","b #-0x60")]), Int(1,1), Direct(Tid(953, "@__gmon_start__")))])), -Blk(Tid(953, "@__gmon_start__"), Attrs([Attr("address","0x620")]), Phis([]), -Defs([Def(Tid(1_196, "%000004ac"), Attrs([Attr("address","0x620"), -Attr("insn","adrp x16, #69632")]), Var("R16",Imm(64)), Int(69632,64)), -Def(Tid(1_203, "%000004b3"), Attrs([Attr("address","0x624"), -Attr("insn","ldr x17, [x16, #0x18]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(24,64)),LittleEndian(),64)), -Def(Tid(1_209, "%000004b9"), Attrs([Attr("address","0x628"), -Attr("insn","add x16, x16, #0x18")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(24,64)))]), Jmps([Call(Tid(1_214, "%000004be"), - Attrs([Attr("address","0x62C"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), -Sub(Tid(1_540, "@deregister_tm_clones"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x690")]), - "deregister_tm_clones", Args([Arg(Tid(1_590, "%00000636"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("deregister_tm_clones_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(511, "@deregister_tm_clones"), - Attrs([Attr("address","0x690")]), Phis([]), Defs([Def(Tid(514, "%00000202"), - Attrs([Attr("address","0x690"), Attr("insn","adrp x0, #69632")]), - Var("R0",Imm(64)), Int(69632,64)), Def(Tid(520, "%00000208"), - Attrs([Attr("address","0x694"), Attr("insn","add x0, x0, #0x38")]), - Var("R0",Imm(64)), PLUS(Var("R0",Imm(64)),Int(56,64))), -Def(Tid(525, "%0000020d"), Attrs([Attr("address","0x698"), -Attr("insn","adrp x1, #69632")]), Var("R1",Imm(64)), Int(69632,64)), -Def(Tid(531, "%00000213"), Attrs([Attr("address","0x69C"), -Attr("insn","add x1, x1, #0x38")]), Var("R1",Imm(64)), -PLUS(Var("R1",Imm(64)),Int(56,64))), Def(Tid(537, "%00000219"), - Attrs([Attr("address","0x6A0"), Attr("insn","cmp x1, x0")]), - Var("#1",Imm(64)), NOT(Var("R0",Imm(64)))), Def(Tid(542, "%0000021e"), - Attrs([Attr("address","0x6A0"), Attr("insn","cmp x1, x0")]), - Var("#2",Imm(64)), PLUS(Var("R1",Imm(64)),NOT(Var("R0",Imm(64))))), -Def(Tid(548, "%00000224"), Attrs([Attr("address","0x6A0"), -Attr("insn","cmp x1, x0")]), Var("VF",Imm(1)), -NEQ(SIGNED(65,PLUS(Var("#2",Imm(64)),Int(1,64))),PLUS(PLUS(SIGNED(65,Var("R1",Imm(64))),SIGNED(65,Var("#1",Imm(64)))),Int(1,65)))), -Def(Tid(554, "%0000022a"), Attrs([Attr("address","0x6A0"), -Attr("insn","cmp x1, x0")]), Var("CF",Imm(1)), -NEQ(UNSIGNED(65,PLUS(Var("#2",Imm(64)),Int(1,64))),PLUS(PLUS(UNSIGNED(65,Var("R1",Imm(64))),UNSIGNED(65,Var("#1",Imm(64)))),Int(1,65)))), -Def(Tid(558, "%0000022e"), Attrs([Attr("address","0x6A0"), -Attr("insn","cmp x1, x0")]), Var("ZF",Imm(1)), -EQ(PLUS(Var("#2",Imm(64)),Int(1,64)),Int(0,64))), Def(Tid(562, "%00000232"), - Attrs([Attr("address","0x6A0"), Attr("insn","cmp x1, x0")]), - Var("NF",Imm(1)), Extract(63,63,PLUS(Var("#2",Imm(64)),Int(1,64))))]), -Jmps([Goto(Tid(568, "%00000238"), Attrs([Attr("address","0x6A4"), -Attr("insn","b.eq #0x18")]), EQ(Var("ZF",Imm(1)),Int(1,1)), -Direct(Tid(566, "%00000236"))), Goto(Tid(1_574, "%00000626"), Attrs([]), - Int(1,1), Direct(Tid(922, "%0000039a")))])), Blk(Tid(922, "%0000039a"), - Attrs([Attr("address","0x6A8")]), Phis([]), Defs([Def(Tid(925, "%0000039d"), - Attrs([Attr("address","0x6A8"), Attr("insn","adrp x1, #65536")]), - Var("R1",Imm(64)), Int(65536,64)), Def(Tid(932, "%000003a4"), - Attrs([Attr("address","0x6AC"), Attr("insn","ldr x1, [x1, #0xfc0]")]), - Var("R1",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R1",Imm(64)),Int(4032,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(937, "%000003a9"), Attrs([Attr("address","0x6B0"), -Attr("insn","cbz x1, #0xc")]), EQ(Var("R1",Imm(64)),Int(0,64)), -Direct(Tid(566, "%00000236"))), Goto(Tid(1_575, "%00000627"), Attrs([]), - Int(1,1), Direct(Tid(941, "%000003ad")))])), Blk(Tid(566, "%00000236"), - Attrs([Attr("address","0x6BC")]), Phis([]), Defs([]), -Jmps([Call(Tid(574, "%0000023e"), Attrs([Attr("address","0x6BC"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))])), -Blk(Tid(941, "%000003ad"), Attrs([Attr("address","0x6B4")]), Phis([]), -Defs([Def(Tid(945, "%000003b1"), Attrs([Attr("address","0x6B4"), -Attr("insn","mov x16, x1")]), Var("R16",Imm(64)), Var("R1",Imm(64)))]), -Jmps([Call(Tid(950, "%000003b6"), Attrs([Attr("address","0x6B8"), -Attr("insn","br x16")]), Int(1,1), (Indirect(Var("R16",Imm(64))),))]))])), -Sub(Tid(1_543, "@fork"), Attrs([Attr("c.proto","signed (*)(void)"), -Attr("returns-twice","()"), Attr("address","0x610"), Attr("stub","()")]), - "fork", Args([Arg(Tid(1_591, "%00000637"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("fork_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(787, "@fork"), - Attrs([Attr("address","0x610")]), Phis([]), -Defs([Def(Tid(1_174, "%00000496"), Attrs([Attr("address","0x610"), -Attr("insn","adrp x16, #69632")]), Var("R16",Imm(64)), Int(69632,64)), -Def(Tid(1_181, "%0000049d"), Attrs([Attr("address","0x614"), -Attr("insn","ldr x17, [x16, #0x10]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(16,64)),LittleEndian(),64)), -Def(Tid(1_187, "%000004a3"), Attrs([Attr("address","0x618"), -Attr("insn","add x16, x16, #0x10")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(16,64)))]), Jmps([Call(Tid(1_192, "%000004a8"), - Attrs([Attr("address","0x61C"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), Sub(Tid(1_544, "@frame_dummy"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x750")]), - "frame_dummy", Args([Arg(Tid(1_592, "%00000638"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("frame_dummy_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(726, "@frame_dummy"), - Attrs([Attr("address","0x750")]), Phis([]), Defs([]), -Jmps([Call(Tid(728, "%000002d8"), Attrs([Attr("address","0x750"), -Attr("insn","b #-0x90")]), Int(1,1), -(Direct(Tid(1_546, "@register_tm_clones")),))]))])), Sub(Tid(1_545, "@main"), - Attrs([Attr("c.proto","signed (*)(signed argc, const char** argv)"), -Attr("address","0x754")]), "main", Args([Arg(Tid(1_593, "%00000639"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("main_argc",Imm(32)), -LOW(32,Var("R0",Imm(64))), In()), Arg(Tid(1_594, "%0000063a"), - Attrs([Attr("c.layout","**[char : 8]"), Attr("c.data","Top:u8 ptr ptr"), -Attr("c.type"," const char**")]), Var("main_argv",Imm(64)), -Var("R1",Imm(64)), Both()), Arg(Tid(1_595, "%0000063b"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("main_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(730, "@main"), - Attrs([Attr("address","0x754")]), Phis([]), Defs([Def(Tid(734, "%000002de"), - Attrs([Attr("address","0x754"), Attr("insn","sub sp, sp, #0x30")]), - Var("R31",Imm(64)), PLUS(Var("R31",Imm(64)),Int(18446744073709551568,64))), -Def(Tid(740, "%000002e4"), Attrs([Attr("address","0x758"), -Attr("insn","stp x29, x30, [sp, #0x20]")]), Var("#4",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(32,64))), Def(Tid(746, "%000002ea"), - Attrs([Attr("address","0x758"), Attr("insn","stp x29, x30, [sp, #0x20]")]), - Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("#4",Imm(64)),Var("R29",Imm(64)),LittleEndian(),64)), -Def(Tid(752, "%000002f0"), Attrs([Attr("address","0x758"), -Attr("insn","stp x29, x30, [sp, #0x20]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("#4",Imm(64)),Int(8,64)),Var("R30",Imm(64)),LittleEndian(),64)), -Def(Tid(758, "%000002f6"), Attrs([Attr("address","0x75C"), -Attr("insn","add x29, sp, #0x20")]), Var("R29",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(32,64))), Def(Tid(765, "%000002fd"), - Attrs([Attr("address","0x760"), Attr("insn","stur wzr, [x29, #-0x4]")]), - Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R29",Imm(64)),Int(18446744073709551612,64)),Int(0,32),LittleEndian(),32)), -Def(Tid(773, "%00000305"), Attrs([Attr("address","0x764"), -Attr("insn","stur w0, [x29, #-0x8]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R29",Imm(64)),Int(18446744073709551608,64)),Extract(31,0,Var("R0",Imm(64))),LittleEndian(),32)), -Def(Tid(781, "%0000030d"), Attrs([Attr("address","0x768"), -Attr("insn","str x1, [sp, #0x10]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(16,64)),Var("R1",Imm(64)),LittleEndian(),64)), -Def(Tid(786, "%00000312"), Attrs([Attr("address","0x76C"), -Attr("insn","bl #-0x15c")]), Var("R30",Imm(64)), Int(1904,64))]), -Jmps([Call(Tid(789, "%00000315"), Attrs([Attr("address","0x76C"), -Attr("insn","bl #-0x15c")]), Int(1,1), -(Direct(Tid(1_543, "@fork")),Direct(Tid(791, "%00000317"))))])), -Blk(Tid(791, "%00000317"), Attrs([Attr("address","0x770")]), Phis([]), -Defs([Def(Tid(797, "%0000031d"), Attrs([Attr("address","0x770"), -Attr("insn","str w0, [sp, #0xc]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(12,64)),Extract(31,0,Var("R0",Imm(64))),LittleEndian(),32)), -Def(Tid(804, "%00000324"), Attrs([Attr("address","0x774"), -Attr("insn","ldr w0, [sp, #0xc]")]), Var("R0",Imm(64)), -UNSIGNED(64,Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(12,64)),LittleEndian(),32))), -Def(Tid(810, "%0000032a"), Attrs([Attr("address","0x778"), -Attr("insn","ldp x29, x30, [sp, #0x20]")]), Var("#5",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(32,64))), Def(Tid(815, "%0000032f"), - Attrs([Attr("address","0x778"), Attr("insn","ldp x29, x30, [sp, #0x20]")]), - Var("R29",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("#5",Imm(64)),LittleEndian(),64)), -Def(Tid(820, "%00000334"), Attrs([Attr("address","0x778"), -Attr("insn","ldp x29, x30, [sp, #0x20]")]), Var("R30",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("#5",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(826, "%0000033a"), Attrs([Attr("address","0x77C"), -Attr("insn","add sp, sp, #0x30")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(48,64)))]), Jmps([Call(Tid(831, "%0000033f"), - Attrs([Attr("address","0x780"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), -Sub(Tid(1_546, "@register_tm_clones"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x6C0")]), - "register_tm_clones", Args([Arg(Tid(1_596, "%0000063c"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("register_tm_clones_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(576, "@register_tm_clones"), Attrs([Attr("address","0x6C0")]), - Phis([]), Defs([Def(Tid(579, "%00000243"), Attrs([Attr("address","0x6C0"), -Attr("insn","adrp x0, #69632")]), Var("R0",Imm(64)), Int(69632,64)), -Def(Tid(585, "%00000249"), Attrs([Attr("address","0x6C4"), -Attr("insn","add x0, x0, #0x38")]), Var("R0",Imm(64)), -PLUS(Var("R0",Imm(64)),Int(56,64))), Def(Tid(590, "%0000024e"), - Attrs([Attr("address","0x6C8"), Attr("insn","adrp x1, #69632")]), - Var("R1",Imm(64)), Int(69632,64)), Def(Tid(596, "%00000254"), - Attrs([Attr("address","0x6CC"), Attr("insn","add x1, x1, #0x38")]), - Var("R1",Imm(64)), PLUS(Var("R1",Imm(64)),Int(56,64))), -Def(Tid(603, "%0000025b"), Attrs([Attr("address","0x6D0"), -Attr("insn","sub x1, x1, x0")]), Var("R1",Imm(64)), -PLUS(PLUS(Var("R1",Imm(64)),NOT(Var("R0",Imm(64)))),Int(1,64))), -Def(Tid(609, "%00000261"), Attrs([Attr("address","0x6D4"), -Attr("insn","lsr x2, x1, #63")]), Var("R2",Imm(64)), -Concat(Int(0,63),Extract(63,63,Var("R1",Imm(64))))), -Def(Tid(616, "%00000268"), Attrs([Attr("address","0x6D8"), -Attr("insn","add x1, x2, x1, asr #3")]), Var("R1",Imm(64)), -PLUS(Var("R2",Imm(64)),ARSHIFT(Var("R1",Imm(64)),Int(3,3)))), -Def(Tid(622, "%0000026e"), Attrs([Attr("address","0x6DC"), -Attr("insn","asr x1, x1, #1")]), Var("R1",Imm(64)), -SIGNED(64,Extract(63,1,Var("R1",Imm(64)))))]), -Jmps([Goto(Tid(628, "%00000274"), Attrs([Attr("address","0x6E0"), -Attr("insn","cbz x1, #0x18")]), EQ(Var("R1",Imm(64)),Int(0,64)), -Direct(Tid(626, "%00000272"))), Goto(Tid(1_576, "%00000628"), Attrs([]), - Int(1,1), Direct(Tid(892, "%0000037c")))])), Blk(Tid(892, "%0000037c"), - Attrs([Attr("address","0x6E4")]), Phis([]), Defs([Def(Tid(895, "%0000037f"), - Attrs([Attr("address","0x6E4"), Attr("insn","adrp x2, #65536")]), - Var("R2",Imm(64)), Int(65536,64)), Def(Tid(902, "%00000386"), - Attrs([Attr("address","0x6E8"), Attr("insn","ldr x2, [x2, #0xfe0]")]), - Var("R2",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R2",Imm(64)),Int(4064,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(907, "%0000038b"), Attrs([Attr("address","0x6EC"), -Attr("insn","cbz x2, #0xc")]), EQ(Var("R2",Imm(64)),Int(0,64)), -Direct(Tid(626, "%00000272"))), Goto(Tid(1_577, "%00000629"), Attrs([]), - Int(1,1), Direct(Tid(911, "%0000038f")))])), Blk(Tid(626, "%00000272"), - Attrs([Attr("address","0x6F8")]), Phis([]), Defs([]), -Jmps([Call(Tid(634, "%0000027a"), Attrs([Attr("address","0x6F8"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))])), -Blk(Tid(911, "%0000038f"), Attrs([Attr("address","0x6F0")]), Phis([]), -Defs([Def(Tid(915, "%00000393"), Attrs([Attr("address","0x6F0"), -Attr("insn","mov x16, x2")]), Var("R16",Imm(64)), Var("R2",Imm(64)))]), -Jmps([Call(Tid(920, "%00000398"), Attrs([Attr("address","0x6F4"), -Attr("insn","br x16")]), Int(1,1), -(Indirect(Var("R16",Imm(64))),))]))]))]))) \ No newline at end of file diff --git a/src/test/correct/syscall/clang/syscall.bir b/src/test/correct/syscall/clang/syscall.bir deleted file mode 100644 index 5859eb972..000000000 --- a/src/test/correct/syscall/clang/syscall.bir +++ /dev/null @@ -1,250 +0,0 @@ -0000062a: program -000005f6: sub __cxa_finalize(__cxa_finalize_result) -0000062b: __cxa_finalize_result :: out u32 = low:32[R0] - -00000378: -00000480: R16 := 0x11000 -00000487: R17 := mem[R16 + 8, el]:u64 -0000048d: R16 := R16 + 8 -00000492: call R17 with noreturn - -000005f7: sub __do_global_dtors_aux(__do_global_dtors_aux_result) -0000062c: __do_global_dtors_aux_result :: out u32 = low:32[R0] - -0000027e: -00000282: #3 := R31 - 0x20 -00000288: mem := mem with [#3, el]:u64 <- R29 -0000028e: mem := mem with [#3 + 8, el]:u64 <- R30 -00000292: R31 := #3 -00000298: R29 := R31 -000002a0: mem := mem with [R31 + 0x10, el]:u64 <- R19 -000002a5: R19 := 0x11000 -000002ac: R0 := pad:64[mem[R19 + 0x38]] -000002b3: when 31:0[R0] <> 0 goto %000002b1 -00000620: goto %00000341 - -00000341: -00000344: R0 := 0x10000 -0000034b: R0 := mem[R0 + 0xFC8, el]:u64 -00000351: when R0 = 0 goto %0000034f -00000621: goto %00000368 - -00000368: -0000036b: R0 := 0x11000 -00000372: R0 := mem[R0 + 0x30, el]:u64 -00000377: R30 := 0x730 -0000037a: call @__cxa_finalize with return %0000034f - -0000034f: -00000357: R30 := 0x734 -00000359: call @deregister_tm_clones with return %0000035b - -0000035b: -0000035e: R0 := 1 -00000366: mem := mem with [R19 + 0x38] <- 7:0[R0] -00000622: goto %000002b1 - -000002b1: -000002bb: R19 := mem[R31 + 0x10, el]:u64 -000002c2: R29 := mem[R31, el]:u64 -000002c7: R30 := mem[R31 + 8, el]:u64 -000002cb: R31 := R31 + 0x20 -000002d0: call R30 with noreturn - -000005fb: sub __libc_start_main(__libc_start_main_main, __libc_start_main_arg2, __libc_start_main_arg3, __libc_start_main_auxv, __libc_start_main_result) -0000062d: __libc_start_main_main :: in u64 = R0 -0000062e: __libc_start_main_arg2 :: in u32 = low:32[R1] -0000062f: __libc_start_main_arg3 :: in out u64 = R2 -00000630: __libc_start_main_auxv :: in out u64 = R3 -00000631: __libc_start_main_result :: out u32 = low:32[R0] - -000001d7: -0000046a: R16 := 0x11000 -00000471: R17 := mem[R16, el]:u64 -00000477: R16 := R16 -0000047c: call R17 with noreturn - -000005fc: sub _fini(_fini_result) -00000632: _fini_result :: out u32 = low:32[R0] - -0000001f: -00000025: #0 := R31 - 0x10 -0000002b: mem := mem with [#0, el]:u64 <- R29 -00000031: mem := mem with [#0 + 8, el]:u64 <- R30 -00000035: R31 := #0 -0000003b: R29 := R31 -00000042: R29 := mem[R31, el]:u64 -00000047: R30 := mem[R31 + 8, el]:u64 -0000004b: R31 := R31 + 0x10 -00000050: call R30 with noreturn - -000005fd: sub _init(_init_result) -00000633: _init_result :: out u32 = low:32[R0] - -00000548: -0000054e: #7 := R31 - 0x10 -00000554: mem := mem with [#7, el]:u64 <- R29 -0000055a: mem := mem with [#7 + 8, el]:u64 <- R30 -0000055e: R31 := #7 -00000564: R29 := R31 -00000569: R30 := 0x5C8 -0000056b: call @call_weak_fn with return %0000056d - -0000056d: -00000572: R29 := mem[R31, el]:u64 -00000577: R30 := mem[R31 + 8, el]:u64 -0000057b: R31 := R31 + 0x10 -00000580: call R30 with noreturn - -000005fe: sub _start(_start_result) -00000634: _start_result :: out u32 = low:32[R0] - -00000198: -0000019d: R29 := 0 -000001a2: R30 := 0 -000001a8: R5 := R0 -000001af: R1 := mem[R31, el]:u64 -000001b5: R2 := R31 + 8 -000001bb: R6 := R31 -000001c0: R0 := 0x10000 -000001c7: R0 := mem[R0 + 0xFD8, el]:u64 -000001cc: R3 := 0 -000001d1: R4 := 0 -000001d6: R30 := 0x670 -000001d9: call @__libc_start_main with return %000001db - -000001db: -000001de: R30 := 0x674 -000001e1: call @abort with return %00000623 - -00000623: -00000624: call @call_weak_fn with noreturn - -00000601: sub abort() - - -000001df: -000004c2: R16 := 0x11000 -000004c9: R17 := mem[R16 + 0x20, el]:u64 -000004cf: R16 := R16 + 0x20 -000004d4: call R17 with noreturn - -00000602: sub call_weak_fn(call_weak_fn_result) -00000635: call_weak_fn_result :: out u32 = low:32[R0] - -000001e3: -000001e6: R0 := 0x10000 -000001ed: R0 := mem[R0 + 0xFD0, el]:u64 -000001f3: when R0 = 0 goto %000001f1 -00000625: goto %000003b8 - -000001f1: -000001f9: call R30 with noreturn - -000003b8: -000003bb: goto @__gmon_start__ - -000003b9: -000004ac: R16 := 0x11000 -000004b3: R17 := mem[R16 + 0x18, el]:u64 -000004b9: R16 := R16 + 0x18 -000004be: call R17 with noreturn - -00000604: sub deregister_tm_clones(deregister_tm_clones_result) -00000636: deregister_tm_clones_result :: out u32 = low:32[R0] - -000001ff: -00000202: R0 := 0x11000 -00000208: R0 := R0 + 0x38 -0000020d: R1 := 0x11000 -00000213: R1 := R1 + 0x38 -00000219: #1 := ~R0 -0000021e: #2 := R1 + ~R0 -00000224: VF := extend:65[#2 + 1] <> extend:65[R1] + extend:65[#1] + 1 -0000022a: CF := pad:65[#2 + 1] <> pad:65[R1] + pad:65[#1] + 1 -0000022e: ZF := #2 + 1 = 0 -00000232: NF := 63:63[#2 + 1] -00000238: when ZF goto %00000236 -00000626: goto %0000039a - -0000039a: -0000039d: R1 := 0x10000 -000003a4: R1 := mem[R1 + 0xFC0, el]:u64 -000003a9: when R1 = 0 goto %00000236 -00000627: goto %000003ad - -00000236: -0000023e: call R30 with noreturn - -000003ad: -000003b1: R16 := R1 -000003b6: call R16 with noreturn - -00000607: sub fork(fork_result) -00000637: fork_result :: out u32 = low:32[R0] - -00000313: -00000496: R16 := 0x11000 -0000049d: R17 := mem[R16 + 0x10, el]:u64 -000004a3: R16 := R16 + 0x10 -000004a8: call R17 with noreturn - -00000608: sub frame_dummy(frame_dummy_result) -00000638: frame_dummy_result :: out u32 = low:32[R0] - -000002d6: -000002d8: call @register_tm_clones with noreturn - -00000609: sub main(main_argc, main_argv, main_result) -00000639: main_argc :: in u32 = low:32[R0] -0000063a: main_argv :: in out u64 = R1 -0000063b: main_result :: out u32 = low:32[R0] - -000002da: -000002de: R31 := R31 - 0x30 -000002e4: #4 := R31 + 0x20 -000002ea: mem := mem with [#4, el]:u64 <- R29 -000002f0: mem := mem with [#4 + 8, el]:u64 <- R30 -000002f6: R29 := R31 + 0x20 -000002fd: mem := mem with [R29 - 4, el]:u32 <- 0 -00000305: mem := mem with [R29 - 8, el]:u32 <- 31:0[R0] -0000030d: mem := mem with [R31 + 0x10, el]:u64 <- R1 -00000312: R30 := 0x770 -00000315: call @fork with return %00000317 - -00000317: -0000031d: mem := mem with [R31 + 0xC, el]:u32 <- 31:0[R0] -00000324: R0 := pad:64[mem[R31 + 0xC, el]:u32] -0000032a: #5 := R31 + 0x20 -0000032f: R29 := mem[#5, el]:u64 -00000334: R30 := mem[#5 + 8, el]:u64 -0000033a: R31 := R31 + 0x30 -0000033f: call R30 with noreturn - -0000060a: sub register_tm_clones(register_tm_clones_result) -0000063c: register_tm_clones_result :: out u32 = low:32[R0] - -00000240: -00000243: R0 := 0x11000 -00000249: R0 := R0 + 0x38 -0000024e: R1 := 0x11000 -00000254: R1 := R1 + 0x38 -0000025b: R1 := R1 + ~R0 + 1 -00000261: R2 := 0.63:63[R1] -00000268: R1 := R2 + (R1 ~>> 3) -0000026e: R1 := extend:64[63:1[R1]] -00000274: when R1 = 0 goto %00000272 -00000628: goto %0000037c - -0000037c: -0000037f: R2 := 0x10000 -00000386: R2 := mem[R2 + 0xFE0, el]:u64 -0000038b: when R2 = 0 goto %00000272 -00000629: goto %0000038f - -00000272: -0000027a: call R30 with noreturn - -0000038f: -00000393: R16 := R2 -00000398: call R16 with noreturn diff --git a/src/test/correct/syscall/clang/syscall.expected b/src/test/correct/syscall/clang/syscall.expected index ecdb14879..dfc818f79 100644 --- a/src/test/correct/syscall/clang/syscall.expected +++ b/src/test/correct/syscall/clang/syscall.expected @@ -78,7 +78,7 @@ procedure {:extern} rely_reflexive(); procedure {:extern} guarantee_reflexive(); modifies Gamma_mem, mem; -procedure fork_1552(); +procedure fork(); modifies Gamma_R16, Gamma_R17, R16, R17; free requires (memory_load32_le(mem, 1944bv64) == 131073bv32); free requires (memory_load64_le(mem, 69064bv64) == 1872bv64); @@ -91,7 +91,7 @@ procedure fork_1552(); free ensures (memory_load64_le(mem, 69592bv64) == 1876bv64); free ensures (memory_load64_le(mem, 69680bv64) == 69680bv64); -procedure main_1876(); +procedure main(); modifies Gamma_R0, Gamma_R16, Gamma_R17, Gamma_R29, Gamma_R30, Gamma_R31, Gamma_stack, R0, R16, R17, R29, R30, R31, stack; free requires (memory_load64_le(mem, 69672bv64) == 0bv64); free requires (memory_load64_le(mem, 69680bv64) == 69680bv64); @@ -110,18 +110,18 @@ procedure main_1876(); free ensures (memory_load64_le(mem, 69592bv64) == 1876bv64); free ensures (memory_load64_le(mem, 69680bv64) == 69680bv64); -implementation main_1876() +implementation main() { var #4: bv64; var #5: bv64; + var $load$19: bv32; + var $load$20: bv64; + var $load$21: bv64; var Gamma_#4: bool; var Gamma_#5: bool; - var Gamma_load19: bool; - var Gamma_load20: bool; - var Gamma_load21: bool; - var load19: bv32; - var load20: bv64; - var load21: bv64; + var Gamma_$load$19: bool; + var Gamma_$load$20: bool; + var Gamma_$load$21: bool; lmain: assume {:captureState "lmain"} true; R31, Gamma_R31 := bvadd64(R31, 18446744073709551568bv64), Gamma_R31; @@ -138,23 +138,23 @@ implementation main_1876() stack, Gamma_stack := memory_store64_le(stack, bvadd64(R31, 16bv64), R1), gamma_store64(Gamma_stack, bvadd64(R31, 16bv64), Gamma_R1); assume {:captureState "%0000030d"} true; R30, Gamma_R30 := 1904bv64, true; - call fork_1552(); + call fork(); goto l00000317; l00000317: assume {:captureState "l00000317"} true; stack, Gamma_stack := memory_store32_le(stack, bvadd64(R31, 12bv64), R0[32:0]), gamma_store32(Gamma_stack, bvadd64(R31, 12bv64), Gamma_R0); assume {:captureState "%0000031d"} true; - load19, Gamma_load19 := memory_load32_le(stack, bvadd64(R31, 12bv64)), gamma_load32(Gamma_stack, bvadd64(R31, 12bv64)); - R0, Gamma_R0 := zero_extend32_32(load19), Gamma_load19; + $load$19, Gamma_$load$19 := memory_load32_le(stack, bvadd64(R31, 12bv64)), gamma_load32(Gamma_stack, bvadd64(R31, 12bv64)); + R0, Gamma_R0 := zero_extend32_32($load$19), Gamma_$load$19; #5, Gamma_#5 := bvadd64(R31, 32bv64), Gamma_R31; - load20, Gamma_load20 := memory_load64_le(stack, #5), gamma_load64(Gamma_stack, #5); - R29, Gamma_R29 := load20, Gamma_load20; - load21, Gamma_load21 := memory_load64_le(stack, bvadd64(#5, 8bv64)), gamma_load64(Gamma_stack, bvadd64(#5, 8bv64)); - R30, Gamma_R30 := load21, Gamma_load21; + $load$20, Gamma_$load$20 := memory_load64_le(stack, #5), gamma_load64(Gamma_stack, #5); + R29, Gamma_R29 := $load$20, Gamma_$load$20; + $load$21, Gamma_$load$21 := memory_load64_le(stack, bvadd64(#5, 8bv64)), gamma_load64(Gamma_stack, bvadd64(#5, 8bv64)); + R30, Gamma_R30 := $load$21, Gamma_$load$21; R31, Gamma_R31 := bvadd64(R31, 48bv64), Gamma_R31; - goto main_1876_basil_return; - main_1876_basil_return: - assume {:captureState "main_1876_basil_return"} true; + goto main_basil_return; + main_basil_return: + assume {:captureState "main_basil_return"} true; return; } diff --git a/src/test/correct/syscall/clang/syscall.gts b/src/test/correct/syscall/clang/syscall.gts deleted file mode 100644 index f28e9867a..000000000 Binary files a/src/test/correct/syscall/clang/syscall.gts and /dev/null differ diff --git a/src/test/correct/syscall/clang/syscall.md5sum b/src/test/correct/syscall/clang/syscall.md5sum new file mode 100644 index 000000000..47b66729f --- /dev/null +++ b/src/test/correct/syscall/clang/syscall.md5sum @@ -0,0 +1,5 @@ +515a9ca66ff8458a4ccbf6e5d8a712ed correct/syscall/clang/a.out +42faa798c06e3f57e747edd72c5efc1c correct/syscall/clang/syscall.adt +0a6dca8a0ce09a9df56e28c243fd0285 correct/syscall/clang/syscall.bir +835d7eeff719c0666e265f8ace50ba98 correct/syscall/clang/syscall.relf +89d26e1524afae5ac13f22492506e250 correct/syscall/clang/syscall.gts diff --git a/src/test/correct/syscall/clang/syscall.relf b/src/test/correct/syscall/clang/syscall.relf deleted file mode 100644 index 41b23f7b6..000000000 --- a/src/test/correct/syscall/clang/syscall.relf +++ /dev/null @@ -1,124 +0,0 @@ - -Relocation section '.rela.dyn' at offset 0x480 contains 8 entries: - Offset Info Type Symbol's Value Symbol's Name + Addend -0000000000010dc8 0000000000000403 R_AARCH64_RELATIVE 750 -0000000000010dd0 0000000000000403 R_AARCH64_RELATIVE 700 -0000000000010fd8 0000000000000403 R_AARCH64_RELATIVE 754 -0000000000011030 0000000000000403 R_AARCH64_RELATIVE 11030 -0000000000010fc0 0000000400000401 R_AARCH64_GLOB_DAT 0000000000000000 _ITM_deregisterTMCloneTable + 0 -0000000000010fc8 0000000500000401 R_AARCH64_GLOB_DAT 0000000000000000 __cxa_finalize@GLIBC_2.17 + 0 -0000000000010fd0 0000000700000401 R_AARCH64_GLOB_DAT 0000000000000000 __gmon_start__ + 0 -0000000000010fe0 0000000900000401 R_AARCH64_GLOB_DAT 0000000000000000 _ITM_registerTMCloneTable + 0 - -Relocation section '.rela.plt' at offset 0x540 contains 5 entries: - Offset Info Type Symbol's Value Symbol's Name + Addend -0000000000011000 0000000300000402 R_AARCH64_JUMP_SLOT 0000000000000000 __libc_start_main@GLIBC_2.34 + 0 -0000000000011008 0000000500000402 R_AARCH64_JUMP_SLOT 0000000000000000 __cxa_finalize@GLIBC_2.17 + 0 -0000000000011010 0000000600000402 R_AARCH64_JUMP_SLOT 0000000000000000 fork@GLIBC_2.17 + 0 -0000000000011018 0000000700000402 R_AARCH64_JUMP_SLOT 0000000000000000 __gmon_start__ + 0 -0000000000011020 0000000800000402 R_AARCH64_JUMP_SLOT 0000000000000000 abort@GLIBC_2.17 + 0 - -Symbol table '.dynsym' contains 10 entries: - Num: Value Size Type Bind Vis Ndx Name - 0: 0000000000000000 0 NOTYPE LOCAL DEFAULT UND - 1: 00000000000005b8 0 SECTION LOCAL DEFAULT 11 .init - 2: 0000000000011028 0 SECTION LOCAL DEFAULT 23 .data - 3: 0000000000000000 0 FUNC GLOBAL DEFAULT UND __libc_start_main@GLIBC_2.34 (2) - 4: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_deregisterTMCloneTable - 5: 0000000000000000 0 FUNC WEAK DEFAULT UND __cxa_finalize@GLIBC_2.17 (3) - 6: 0000000000000000 0 FUNC GLOBAL DEFAULT UND fork@GLIBC_2.17 (3) - 7: 0000000000000000 0 NOTYPE WEAK DEFAULT UND __gmon_start__ - 8: 0000000000000000 0 FUNC GLOBAL DEFAULT UND abort@GLIBC_2.17 (3) - 9: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_registerTMCloneTable - -Symbol table '.symtab' contains 89 entries: - Num: Value Size Type Bind Vis Ndx Name - 0: 0000000000000000 0 NOTYPE LOCAL DEFAULT UND - 1: 0000000000000238 0 SECTION LOCAL DEFAULT 1 .interp - 2: 0000000000000254 0 SECTION LOCAL DEFAULT 2 .note.gnu.build-id - 3: 0000000000000278 0 SECTION LOCAL DEFAULT 3 .note.ABI-tag - 4: 0000000000000298 0 SECTION LOCAL DEFAULT 4 .gnu.hash - 5: 00000000000002b8 0 SECTION LOCAL DEFAULT 5 .dynsym - 6: 00000000000003a8 0 SECTION LOCAL DEFAULT 6 .dynstr - 7: 000000000000043a 0 SECTION LOCAL DEFAULT 7 .gnu.version - 8: 0000000000000450 0 SECTION LOCAL DEFAULT 8 .gnu.version_r - 9: 0000000000000480 0 SECTION LOCAL DEFAULT 9 .rela.dyn - 10: 0000000000000540 0 SECTION LOCAL DEFAULT 10 .rela.plt - 11: 00000000000005b8 0 SECTION LOCAL DEFAULT 11 .init - 12: 00000000000005d0 0 SECTION LOCAL DEFAULT 12 .plt - 13: 0000000000000640 0 SECTION LOCAL DEFAULT 13 .text - 14: 0000000000000784 0 SECTION LOCAL DEFAULT 14 .fini - 15: 0000000000000798 0 SECTION LOCAL DEFAULT 15 .rodata - 16: 000000000000079c 0 SECTION LOCAL DEFAULT 16 .eh_frame_hdr - 17: 00000000000007d8 0 SECTION LOCAL DEFAULT 17 .eh_frame - 18: 0000000000010dc8 0 SECTION LOCAL DEFAULT 18 .init_array - 19: 0000000000010dd0 0 SECTION LOCAL DEFAULT 19 .fini_array - 20: 0000000000010dd8 0 SECTION LOCAL DEFAULT 20 .dynamic - 21: 0000000000010fb8 0 SECTION LOCAL DEFAULT 21 .got - 22: 0000000000010fe8 0 SECTION LOCAL DEFAULT 22 .got.plt - 23: 0000000000011028 0 SECTION LOCAL DEFAULT 23 .data - 24: 0000000000011038 0 SECTION LOCAL DEFAULT 24 .bss - 25: 0000000000000000 0 SECTION LOCAL DEFAULT 25 .comment - 26: 0000000000000000 0 FILE LOCAL DEFAULT ABS Scrt1.o - 27: 0000000000000278 0 NOTYPE LOCAL DEFAULT 3 $d - 28: 0000000000000278 32 OBJECT LOCAL DEFAULT 3 __abi_tag - 29: 0000000000000640 0 NOTYPE LOCAL DEFAULT 13 $x - 30: 00000000000007ec 0 NOTYPE LOCAL DEFAULT 17 $d - 31: 0000000000000798 0 NOTYPE LOCAL DEFAULT 15 $d - 32: 0000000000000000 0 FILE LOCAL DEFAULT ABS crti.o - 33: 0000000000000674 0 NOTYPE LOCAL DEFAULT 13 $x - 34: 0000000000000674 20 FUNC LOCAL DEFAULT 13 call_weak_fn - 35: 00000000000005b8 0 NOTYPE LOCAL DEFAULT 11 $x - 36: 0000000000000784 0 NOTYPE LOCAL DEFAULT 14 $x - 37: 0000000000000000 0 FILE LOCAL DEFAULT ABS crtn.o - 38: 00000000000005c8 0 NOTYPE LOCAL DEFAULT 11 $x - 39: 0000000000000790 0 NOTYPE LOCAL DEFAULT 14 $x - 40: 0000000000000000 0 FILE LOCAL DEFAULT ABS crtstuff.c - 41: 0000000000000690 0 NOTYPE LOCAL DEFAULT 13 $x - 42: 0000000000000690 0 FUNC LOCAL DEFAULT 13 deregister_tm_clones - 43: 00000000000006c0 0 FUNC LOCAL DEFAULT 13 register_tm_clones - 44: 0000000000011030 0 NOTYPE LOCAL DEFAULT 23 $d - 45: 0000000000000700 0 FUNC LOCAL DEFAULT 13 __do_global_dtors_aux - 46: 0000000000011038 1 OBJECT LOCAL DEFAULT 24 completed.0 - 47: 0000000000010dd0 0 NOTYPE LOCAL DEFAULT 19 $d - 48: 0000000000010dd0 0 OBJECT LOCAL DEFAULT 19 __do_global_dtors_aux_fini_array_entry - 49: 0000000000000750 0 FUNC LOCAL DEFAULT 13 frame_dummy - 50: 0000000000010dc8 0 NOTYPE LOCAL DEFAULT 18 $d - 51: 0000000000010dc8 0 OBJECT LOCAL DEFAULT 18 __frame_dummy_init_array_entry - 52: 0000000000000800 0 NOTYPE LOCAL DEFAULT 17 $d - 53: 0000000000011038 0 NOTYPE LOCAL DEFAULT 24 $d - 54: 0000000000000000 0 FILE LOCAL DEFAULT ABS syscall.c - 55: 0000000000000754 0 NOTYPE LOCAL DEFAULT 13 $x.0 - 56: 000000000000002a 0 NOTYPE LOCAL DEFAULT 25 $d.1 - 57: 0000000000000860 0 NOTYPE LOCAL DEFAULT 17 $d.2 - 58: 0000000000000000 0 FILE LOCAL DEFAULT ABS crtstuff.c - 59: 000000000000089c 0 NOTYPE LOCAL DEFAULT 17 $d - 60: 000000000000089c 0 OBJECT LOCAL DEFAULT 17 __FRAME_END__ - 61: 0000000000000000 0 FILE LOCAL DEFAULT ABS - 62: 0000000000010dd8 0 OBJECT LOCAL DEFAULT ABS _DYNAMIC - 63: 000000000000079c 0 NOTYPE LOCAL DEFAULT 16 __GNU_EH_FRAME_HDR - 64: 0000000000010fb8 0 OBJECT LOCAL DEFAULT ABS _GLOBAL_OFFSET_TABLE_ - 65: 00000000000005d0 0 NOTYPE LOCAL DEFAULT 12 $x - 66: 0000000000000000 0 FUNC GLOBAL DEFAULT UND __libc_start_main@GLIBC_2.34 - 67: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_deregisterTMCloneTable - 68: 0000000000011028 0 NOTYPE WEAK DEFAULT 23 data_start - 69: 0000000000011038 0 NOTYPE GLOBAL DEFAULT 24 __bss_start__ - 70: 0000000000000000 0 FUNC WEAK DEFAULT UND __cxa_finalize@GLIBC_2.17 - 71: 0000000000011040 0 NOTYPE GLOBAL DEFAULT 24 _bss_end__ - 72: 0000000000000000 0 FUNC GLOBAL DEFAULT UND fork@GLIBC_2.17 - 73: 0000000000011038 0 NOTYPE GLOBAL DEFAULT 23 _edata - 74: 0000000000000784 0 FUNC GLOBAL HIDDEN 14 _fini - 75: 0000000000011040 0 NOTYPE GLOBAL DEFAULT 24 __bss_end__ - 76: 0000000000011028 0 NOTYPE GLOBAL DEFAULT 23 __data_start - 77: 0000000000000000 0 NOTYPE WEAK DEFAULT UND __gmon_start__ - 78: 0000000000011030 0 OBJECT GLOBAL HIDDEN 23 __dso_handle - 79: 0000000000000000 0 FUNC GLOBAL DEFAULT UND abort@GLIBC_2.17 - 80: 0000000000000798 4 OBJECT GLOBAL DEFAULT 15 _IO_stdin_used - 81: 0000000000011040 0 NOTYPE GLOBAL DEFAULT 24 _end - 82: 0000000000000640 52 FUNC GLOBAL DEFAULT 13 _start - 83: 0000000000011040 0 NOTYPE GLOBAL DEFAULT 24 __end__ - 84: 0000000000011038 0 NOTYPE GLOBAL DEFAULT 24 __bss_start - 85: 0000000000000754 48 FUNC GLOBAL DEFAULT 13 main - 86: 0000000000011038 0 OBJECT GLOBAL HIDDEN 23 __TMC_END__ - 87: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_registerTMCloneTable - 88: 00000000000005b8 0 FUNC GLOBAL HIDDEN 11 _init diff --git a/src/test/correct/syscall/clang/syscall_gtirb.expected b/src/test/correct/syscall/clang/syscall_gtirb.expected index a36d4a1de..dd45a44fb 100644 --- a/src/test/correct/syscall/clang/syscall_gtirb.expected +++ b/src/test/correct/syscall/clang/syscall_gtirb.expected @@ -1,44 +1,20 @@ -var {:extern} Gamma_R0: bool; -var {:extern} Gamma_R1: bool; var {:extern} Gamma_R16: bool; var {:extern} Gamma_R17: bool; -var {:extern} Gamma_R29: bool; -var {:extern} Gamma_R30: bool; -var {:extern} Gamma_R31: bool; var {:extern} Gamma_mem: [bv64]bool; -var {:extern} Gamma_stack: [bv64]bool; -var {:extern} R0: bv64; -var {:extern} R1: bv64; var {:extern} R16: bv64; var {:extern} R17: bv64; -var {:extern} R29: bv64; -var {:extern} R30: bv64; -var {:extern} R31: bv64; var {:extern} mem: [bv64]bv8; -var {:extern} stack: [bv64]bv8; const {:extern} $_IO_stdin_used_addr: bv64; -axiom ($_IO_stdin_used_addr == 1944bv64); +axiom ($_IO_stdin_used_addr == 2284bv64); function {:extern} L(mem$in: [bv64]bv8, index: bv64) returns (bool) { false } function {:extern} {:bvbuiltin "bvadd"} bvadd64(bv64, bv64) returns (bv64); -function {:extern} gamma_load32(gammaMap: [bv64]bool, index: bv64) returns (bool) { - (gammaMap[bvadd64(index, 3bv64)] && (gammaMap[bvadd64(index, 2bv64)] && (gammaMap[bvadd64(index, 1bv64)] && gammaMap[index]))) -} - function {:extern} gamma_load64(gammaMap: [bv64]bool, index: bv64) returns (bool) { (gammaMap[bvadd64(index, 7bv64)] && (gammaMap[bvadd64(index, 6bv64)] && (gammaMap[bvadd64(index, 5bv64)] && (gammaMap[bvadd64(index, 4bv64)] && (gammaMap[bvadd64(index, 3bv64)] && (gammaMap[bvadd64(index, 2bv64)] && (gammaMap[bvadd64(index, 1bv64)] && gammaMap[index]))))))) } -function {:extern} gamma_store32(gammaMap: [bv64]bool, index: bv64, value: bool) returns ([bv64]bool) { - gammaMap[index := value][bvadd64(index, 1bv64) := value][bvadd64(index, 2bv64) := value][bvadd64(index, 3bv64) := value] -} - -function {:extern} gamma_store64(gammaMap: [bv64]bool, index: bv64, value: bool) returns ([bv64]bool) { - gammaMap[index := value][bvadd64(index, 1bv64) := value][bvadd64(index, 2bv64) := value][bvadd64(index, 3bv64) := value][bvadd64(index, 4bv64) := value][bvadd64(index, 5bv64) := value][bvadd64(index, 6bv64) := value][bvadd64(index, 7bv64) := value] -} - function {:extern} memory_load32_le(memory: [bv64]bv8, index: bv64) returns (bv32) { (memory[bvadd64(index, 3bv64)] ++ (memory[bvadd64(index, 2bv64)] ++ (memory[bvadd64(index, 1bv64)] ++ memory[index]))) } @@ -47,24 +23,15 @@ function {:extern} memory_load64_le(memory: [bv64]bv8, index: bv64) returns (bv6 (memory[bvadd64(index, 7bv64)] ++ (memory[bvadd64(index, 6bv64)] ++ (memory[bvadd64(index, 5bv64)] ++ (memory[bvadd64(index, 4bv64)] ++ (memory[bvadd64(index, 3bv64)] ++ (memory[bvadd64(index, 2bv64)] ++ (memory[bvadd64(index, 1bv64)] ++ memory[index]))))))) } -function {:extern} memory_store32_le(memory: [bv64]bv8, index: bv64, value: bv32) returns ([bv64]bv8) { - memory[index := value[8:0]][bvadd64(index, 1bv64) := value[16:8]][bvadd64(index, 2bv64) := value[24:16]][bvadd64(index, 3bv64) := value[32:24]] -} - -function {:extern} memory_store64_le(memory: [bv64]bv8, index: bv64, value: bv64) returns ([bv64]bv8) { - memory[index := value[8:0]][bvadd64(index, 1bv64) := value[16:8]][bvadd64(index, 2bv64) := value[24:16]][bvadd64(index, 3bv64) := value[32:24]][bvadd64(index, 4bv64) := value[40:32]][bvadd64(index, 5bv64) := value[48:40]][bvadd64(index, 6bv64) := value[56:48]][bvadd64(index, 7bv64) := value[64:56]] -} - -function {:extern} {:bvbuiltin "zero_extend 32"} zero_extend32_32(bv32) returns (bv64); procedure {:extern} rely(); modifies Gamma_mem, mem; ensures (Gamma_mem == old(Gamma_mem)); ensures (mem == old(mem)); - free ensures (memory_load32_le(mem, 1944bv64) == 131073bv32); - free ensures (memory_load64_le(mem, 69064bv64) == 1872bv64); - free ensures (memory_load64_le(mem, 69072bv64) == 1792bv64); - free ensures (memory_load64_le(mem, 69592bv64) == 1876bv64); - free ensures (memory_load64_le(mem, 69680bv64) == 69680bv64); + free ensures (memory_load32_le(mem, 2284bv64) == 131073bv32); + free ensures (memory_load64_le(mem, 130432bv64) == 2256bv64); + free ensures (memory_load64_le(mem, 130440bv64) == 2176bv64); + free ensures (memory_load64_le(mem, 131056bv64) == 2260bv64); + free ensures (memory_load64_le(mem, 131080bv64) == 131080bv64); procedure {:extern} rely_transitive(); modifies Gamma_mem, mem; @@ -82,113 +49,66 @@ procedure {:extern} rely_reflexive(); procedure {:extern} guarantee_reflexive(); modifies Gamma_mem, mem; -procedure main_1876(); - modifies Gamma_R0, Gamma_R16, Gamma_R17, Gamma_R29, Gamma_R30, Gamma_R31, Gamma_mem, Gamma_stack, R0, R16, R17, R29, R30, R31, mem, stack; - free requires (memory_load64_le(mem, 69672bv64) == 0bv64); - free requires (memory_load64_le(mem, 69680bv64) == 69680bv64); - free requires (memory_load32_le(mem, 1944bv64) == 131073bv32); - free requires (memory_load64_le(mem, 69064bv64) == 1872bv64); - free requires (memory_load64_le(mem, 69072bv64) == 1792bv64); - free requires (memory_load64_le(mem, 69592bv64) == 1876bv64); - free requires (memory_load64_le(mem, 69680bv64) == 69680bv64); - free ensures (Gamma_R29 == old(Gamma_R29)); - free ensures (Gamma_R31 == old(Gamma_R31)); - free ensures (R29 == old(R29)); - free ensures (R31 == old(R31)); - free ensures (memory_load32_le(mem, 1944bv64) == 131073bv32); - free ensures (memory_load64_le(mem, 69064bv64) == 1872bv64); - free ensures (memory_load64_le(mem, 69072bv64) == 1792bv64); - free ensures (memory_load64_le(mem, 69592bv64) == 1876bv64); - free ensures (memory_load64_le(mem, 69680bv64) == 69680bv64); - -implementation main_1876() +procedure .L_790(); + modifies Gamma_R16, Gamma_R17, Gamma_mem, R16, R17, mem; + free requires (memory_load32_le(mem, 2284bv64) == 131073bv32); + free requires (memory_load64_le(mem, 130432bv64) == 2256bv64); + free requires (memory_load64_le(mem, 130440bv64) == 2176bv64); + free requires (memory_load64_le(mem, 131056bv64) == 2260bv64); + free requires (memory_load64_le(mem, 131080bv64) == 131080bv64); + free ensures (memory_load32_le(mem, 2284bv64) == 131073bv32); + free ensures (memory_load64_le(mem, 130432bv64) == 2256bv64); + free ensures (memory_load64_le(mem, 130440bv64) == 2176bv64); + free ensures (memory_load64_le(mem, 131056bv64) == 2260bv64); + free ensures (memory_load64_le(mem, 131080bv64) == 131080bv64); + +implementation .L_790() { - var Cse0__5_0_1: bv64; - var Cse0__5_1_2: bv64; - var Gamma_Cse0__5_0_1: bool; - var Gamma_Cse0__5_1_2: bool; - var Gamma_load6: bool; - var Gamma_load7: bool; - var Gamma_load8: bool; - var load6: bv32; - var load7: bv64; - var load8: bv64; - main_1876__0__NmHi4RAWSYmKU32HkJ0NXQ: - assume {:captureState "main_1876__0__NmHi4RAWSYmKU32HkJ0NXQ"} true; - R31, Gamma_R31 := bvadd64(R31, 18446744073709551568bv64), Gamma_R31; - Cse0__5_0_1, Gamma_Cse0__5_0_1 := bvadd64(R31, 32bv64), Gamma_R31; - stack, Gamma_stack := memory_store64_le(stack, Cse0__5_0_1, R29), gamma_store64(Gamma_stack, Cse0__5_0_1, Gamma_R29); - assume {:captureState "1880_1"} true; - stack, Gamma_stack := memory_store64_le(stack, bvadd64(Cse0__5_0_1, 8bv64), R30), gamma_store64(Gamma_stack, bvadd64(Cse0__5_0_1, 8bv64), Gamma_R30); - assume {:captureState "1880_2"} true; - R29, Gamma_R29 := bvadd64(R31, 32bv64), Gamma_R31; - stack, Gamma_stack := memory_store32_le(stack, bvadd64(R29, 18446744073709551612bv64), 0bv32), gamma_store32(Gamma_stack, bvadd64(R29, 18446744073709551612bv64), true); - assume {:captureState "1888_0"} true; - stack, Gamma_stack := memory_store32_le(stack, bvadd64(R29, 18446744073709551608bv64), R0[32:0]), gamma_store32(Gamma_stack, bvadd64(R29, 18446744073709551608bv64), Gamma_R0); - assume {:captureState "1892_0"} true; - stack, Gamma_stack := memory_store64_le(stack, bvadd64(R31, 16bv64), R1), gamma_store64(Gamma_stack, bvadd64(R31, 16bv64), Gamma_R1); - assume {:captureState "1896_0"} true; - R30, Gamma_R30 := 1904bv64, true; - call FUN_610_1552(); - goto main_1876__1__ttg35E3ATxG9q5C2p8wnzQ; - main_1876__1__ttg35E3ATxG9q5C2p8wnzQ: - assume {:captureState "main_1876__1__ttg35E3ATxG9q5C2p8wnzQ"} true; - stack, Gamma_stack := memory_store32_le(stack, bvadd64(R31, 12bv64), R0[32:0]), gamma_store32(Gamma_stack, bvadd64(R31, 12bv64), Gamma_R0); - assume {:captureState "1904_0"} true; - load6, Gamma_load6 := memory_load32_le(stack, bvadd64(R31, 12bv64)), gamma_load32(Gamma_stack, bvadd64(R31, 12bv64)); - R0, Gamma_R0 := zero_extend32_32(load6), Gamma_load6; - Cse0__5_1_2, Gamma_Cse0__5_1_2 := bvadd64(R31, 32bv64), Gamma_R31; - load7, Gamma_load7 := memory_load64_le(stack, Cse0__5_1_2), gamma_load64(Gamma_stack, Cse0__5_1_2); - R29, Gamma_R29 := load7, Gamma_load7; - load8, Gamma_load8 := memory_load64_le(stack, bvadd64(Cse0__5_1_2, 8bv64)), gamma_load64(Gamma_stack, bvadd64(Cse0__5_1_2, 8bv64)); - R30, Gamma_R30 := load8, Gamma_load8; - R31, Gamma_R31 := bvadd64(R31, 48bv64), Gamma_R31; - goto main_1876_basil_return; - main_1876_basil_return: - assume {:captureState "main_1876_basil_return"} true; - return; + var $load5: bv64; + var Gamma_$load5: bool; + $.L_790$__0__$DgPI7AV4ReigBHb432Kcjg: + assume {:captureState "$.L_790$__0__$DgPI7AV4ReigBHb432Kcjg"} true; + R16, Gamma_R16 := 126976bv64, true; + call rely(); + $load5, Gamma_$load5 := memory_load64_le(mem, bvadd64(R16, 4024bv64)), (gamma_load64(Gamma_mem, bvadd64(R16, 4024bv64)) || L(mem, bvadd64(R16, 4024bv64))); + R17, Gamma_R17 := $load5, Gamma_$load5; + R16, Gamma_R16 := bvadd64(R16, 4024bv64), Gamma_R16; + call fork(); + assume false; } -procedure FUN_610_1552(); +procedure main(); modifies Gamma_R16, Gamma_R17, Gamma_mem, R16, R17, mem; - free requires (memory_load32_le(mem, 1944bv64) == 131073bv32); - free requires (memory_load64_le(mem, 69064bv64) == 1872bv64); - free requires (memory_load64_le(mem, 69072bv64) == 1792bv64); - free requires (memory_load64_le(mem, 69592bv64) == 1876bv64); - free requires (memory_load64_le(mem, 69680bv64) == 69680bv64); - free ensures (memory_load32_le(mem, 1944bv64) == 131073bv32); - free ensures (memory_load64_le(mem, 69064bv64) == 1872bv64); - free ensures (memory_load64_le(mem, 69072bv64) == 1792bv64); - free ensures (memory_load64_le(mem, 69592bv64) == 1876bv64); - free ensures (memory_load64_le(mem, 69680bv64) == 69680bv64); - -implementation FUN_610_1552() + free requires (memory_load64_le(mem, 131072bv64) == 0bv64); + free requires (memory_load64_le(mem, 131080bv64) == 131080bv64); + free requires (memory_load32_le(mem, 2284bv64) == 131073bv32); + free requires (memory_load64_le(mem, 130432bv64) == 2256bv64); + free requires (memory_load64_le(mem, 130440bv64) == 2176bv64); + free requires (memory_load64_le(mem, 131056bv64) == 2260bv64); + free requires (memory_load64_le(mem, 131080bv64) == 131080bv64); + free ensures (memory_load32_le(mem, 2284bv64) == 131073bv32); + free ensures (memory_load64_le(mem, 130432bv64) == 2256bv64); + free ensures (memory_load64_le(mem, 130440bv64) == 2176bv64); + free ensures (memory_load64_le(mem, 131056bv64) == 2260bv64); + free ensures (memory_load64_le(mem, 131080bv64) == 131080bv64); + +implementation main() { - var Gamma_load23: bool; - var load23: bv64; - FUN_610_1552__0__3ABOOETYTria~jSyU9mmbQ: - assume {:captureState "FUN_610_1552__0__3ABOOETYTria~jSyU9mmbQ"} true; - R16, Gamma_R16 := 69632bv64, true; - call rely(); - load23, Gamma_load23 := memory_load64_le(mem, bvadd64(R16, 16bv64)), (gamma_load64(Gamma_mem, bvadd64(R16, 16bv64)) || L(mem, bvadd64(R16, 16bv64))); - R17, Gamma_R17 := load23, Gamma_load23; - R16, Gamma_R16 := bvadd64(R16, 16bv64), Gamma_R16; - call fork(); - goto FUN_610_1552_basil_return; - FUN_610_1552_basil_return: - assume {:captureState "FUN_610_1552_basil_return"} true; - return; + $main$__0__$IkNYmV06TxC75h8A4NM3wA: + assume {:captureState "$main$__0__$IkNYmV06TxC75h8A4NM3wA"} true; + call .L_790(); + assume false; } procedure fork(); - free requires (memory_load32_le(mem, 1944bv64) == 131073bv32); - free requires (memory_load64_le(mem, 69064bv64) == 1872bv64); - free requires (memory_load64_le(mem, 69072bv64) == 1792bv64); - free requires (memory_load64_le(mem, 69592bv64) == 1876bv64); - free requires (memory_load64_le(mem, 69680bv64) == 69680bv64); - free ensures (memory_load32_le(mem, 1944bv64) == 131073bv32); - free ensures (memory_load64_le(mem, 69064bv64) == 1872bv64); - free ensures (memory_load64_le(mem, 69072bv64) == 1792bv64); - free ensures (memory_load64_le(mem, 69592bv64) == 1876bv64); - free ensures (memory_load64_le(mem, 69680bv64) == 69680bv64); + free requires (memory_load32_le(mem, 2284bv64) == 131073bv32); + free requires (memory_load64_le(mem, 130432bv64) == 2256bv64); + free requires (memory_load64_le(mem, 130440bv64) == 2176bv64); + free requires (memory_load64_le(mem, 131056bv64) == 2260bv64); + free requires (memory_load64_le(mem, 131080bv64) == 131080bv64); + free ensures (memory_load32_le(mem, 2284bv64) == 131073bv32); + free ensures (memory_load64_le(mem, 130432bv64) == 2256bv64); + free ensures (memory_load64_le(mem, 130440bv64) == 2176bv64); + free ensures (memory_load64_le(mem, 131056bv64) == 2260bv64); + free ensures (memory_load64_le(mem, 131080bv64) == 131080bv64); diff --git a/src/test/correct/syscall/clang_O2/syscall.gts b/src/test/correct/syscall/clang_O2/syscall.gts deleted file mode 100644 index 3178c8889..000000000 Binary files a/src/test/correct/syscall/clang_O2/syscall.gts and /dev/null differ diff --git a/src/test/correct/syscall/clang_O2/syscall.md5sum b/src/test/correct/syscall/clang_O2/syscall.md5sum new file mode 100644 index 000000000..32542d789 --- /dev/null +++ b/src/test/correct/syscall/clang_O2/syscall.md5sum @@ -0,0 +1,3 @@ +bb04b16d71ceb1f52c42953497156b91 correct/syscall/clang_O2/a.out +23f35b0d9ec636b7f283d24d86e43756 correct/syscall/clang_O2/syscall.relf +6a049a286775ab4fd703eca208d2a031 correct/syscall/clang_O2/syscall.gts diff --git a/src/test/correct/syscall/clang_O2/syscall.relf b/src/test/correct/syscall/clang_O2/syscall.relf deleted file mode 100644 index 01ea330a7..000000000 --- a/src/test/correct/syscall/clang_O2/syscall.relf +++ /dev/null @@ -1,124 +0,0 @@ - -Relocation section '.rela.dyn' at offset 0x480 contains 8 entries: - Offset Info Type Symbol's Value Symbol's Name + Addend -0000000000010dc8 0000000000000403 R_AARCH64_RELATIVE 750 -0000000000010dd0 0000000000000403 R_AARCH64_RELATIVE 700 -0000000000010fd8 0000000000000403 R_AARCH64_RELATIVE 754 -0000000000011030 0000000000000403 R_AARCH64_RELATIVE 11030 -0000000000010fc0 0000000400000401 R_AARCH64_GLOB_DAT 0000000000000000 _ITM_deregisterTMCloneTable + 0 -0000000000010fc8 0000000500000401 R_AARCH64_GLOB_DAT 0000000000000000 __cxa_finalize@GLIBC_2.17 + 0 -0000000000010fd0 0000000700000401 R_AARCH64_GLOB_DAT 0000000000000000 __gmon_start__ + 0 -0000000000010fe0 0000000900000401 R_AARCH64_GLOB_DAT 0000000000000000 _ITM_registerTMCloneTable + 0 - -Relocation section '.rela.plt' at offset 0x540 contains 5 entries: - Offset Info Type Symbol's Value Symbol's Name + Addend -0000000000011000 0000000300000402 R_AARCH64_JUMP_SLOT 0000000000000000 __libc_start_main@GLIBC_2.34 + 0 -0000000000011008 0000000500000402 R_AARCH64_JUMP_SLOT 0000000000000000 __cxa_finalize@GLIBC_2.17 + 0 -0000000000011010 0000000600000402 R_AARCH64_JUMP_SLOT 0000000000000000 fork@GLIBC_2.17 + 0 -0000000000011018 0000000700000402 R_AARCH64_JUMP_SLOT 0000000000000000 __gmon_start__ + 0 -0000000000011020 0000000800000402 R_AARCH64_JUMP_SLOT 0000000000000000 abort@GLIBC_2.17 + 0 - -Symbol table '.dynsym' contains 10 entries: - Num: Value Size Type Bind Vis Ndx Name - 0: 0000000000000000 0 NOTYPE LOCAL DEFAULT UND - 1: 00000000000005b8 0 SECTION LOCAL DEFAULT 11 .init - 2: 0000000000011028 0 SECTION LOCAL DEFAULT 23 .data - 3: 0000000000000000 0 FUNC GLOBAL DEFAULT UND __libc_start_main@GLIBC_2.34 (2) - 4: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_deregisterTMCloneTable - 5: 0000000000000000 0 FUNC WEAK DEFAULT UND __cxa_finalize@GLIBC_2.17 (3) - 6: 0000000000000000 0 FUNC GLOBAL DEFAULT UND fork@GLIBC_2.17 (3) - 7: 0000000000000000 0 NOTYPE WEAK DEFAULT UND __gmon_start__ - 8: 0000000000000000 0 FUNC GLOBAL DEFAULT UND abort@GLIBC_2.17 (3) - 9: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_registerTMCloneTable - -Symbol table '.symtab' contains 89 entries: - Num: Value Size Type Bind Vis Ndx Name - 0: 0000000000000000 0 NOTYPE LOCAL DEFAULT UND - 1: 0000000000000238 0 SECTION LOCAL DEFAULT 1 .interp - 2: 0000000000000254 0 SECTION LOCAL DEFAULT 2 .note.gnu.build-id - 3: 0000000000000278 0 SECTION LOCAL DEFAULT 3 .note.ABI-tag - 4: 0000000000000298 0 SECTION LOCAL DEFAULT 4 .gnu.hash - 5: 00000000000002b8 0 SECTION LOCAL DEFAULT 5 .dynsym - 6: 00000000000003a8 0 SECTION LOCAL DEFAULT 6 .dynstr - 7: 000000000000043a 0 SECTION LOCAL DEFAULT 7 .gnu.version - 8: 0000000000000450 0 SECTION LOCAL DEFAULT 8 .gnu.version_r - 9: 0000000000000480 0 SECTION LOCAL DEFAULT 9 .rela.dyn - 10: 0000000000000540 0 SECTION LOCAL DEFAULT 10 .rela.plt - 11: 00000000000005b8 0 SECTION LOCAL DEFAULT 11 .init - 12: 00000000000005d0 0 SECTION LOCAL DEFAULT 12 .plt - 13: 0000000000000640 0 SECTION LOCAL DEFAULT 13 .text - 14: 0000000000000758 0 SECTION LOCAL DEFAULT 14 .fini - 15: 000000000000076c 0 SECTION LOCAL DEFAULT 15 .rodata - 16: 0000000000000770 0 SECTION LOCAL DEFAULT 16 .eh_frame_hdr - 17: 00000000000007b0 0 SECTION LOCAL DEFAULT 17 .eh_frame - 18: 0000000000010dc8 0 SECTION LOCAL DEFAULT 18 .init_array - 19: 0000000000010dd0 0 SECTION LOCAL DEFAULT 19 .fini_array - 20: 0000000000010dd8 0 SECTION LOCAL DEFAULT 20 .dynamic - 21: 0000000000010fb8 0 SECTION LOCAL DEFAULT 21 .got - 22: 0000000000010fe8 0 SECTION LOCAL DEFAULT 22 .got.plt - 23: 0000000000011028 0 SECTION LOCAL DEFAULT 23 .data - 24: 0000000000011038 0 SECTION LOCAL DEFAULT 24 .bss - 25: 0000000000000000 0 SECTION LOCAL DEFAULT 25 .comment - 26: 0000000000000000 0 FILE LOCAL DEFAULT ABS Scrt1.o - 27: 0000000000000278 0 NOTYPE LOCAL DEFAULT 3 $d - 28: 0000000000000278 32 OBJECT LOCAL DEFAULT 3 __abi_tag - 29: 0000000000000640 0 NOTYPE LOCAL DEFAULT 13 $x - 30: 00000000000007c4 0 NOTYPE LOCAL DEFAULT 17 $d - 31: 000000000000076c 0 NOTYPE LOCAL DEFAULT 15 $d - 32: 0000000000000000 0 FILE LOCAL DEFAULT ABS crti.o - 33: 0000000000000674 0 NOTYPE LOCAL DEFAULT 13 $x - 34: 0000000000000674 20 FUNC LOCAL DEFAULT 13 call_weak_fn - 35: 00000000000005b8 0 NOTYPE LOCAL DEFAULT 11 $x - 36: 0000000000000758 0 NOTYPE LOCAL DEFAULT 14 $x - 37: 0000000000000000 0 FILE LOCAL DEFAULT ABS crtn.o - 38: 00000000000005c8 0 NOTYPE LOCAL DEFAULT 11 $x - 39: 0000000000000764 0 NOTYPE LOCAL DEFAULT 14 $x - 40: 0000000000000000 0 FILE LOCAL DEFAULT ABS crtstuff.c - 41: 0000000000000690 0 NOTYPE LOCAL DEFAULT 13 $x - 42: 0000000000000690 0 FUNC LOCAL DEFAULT 13 deregister_tm_clones - 43: 00000000000006c0 0 FUNC LOCAL DEFAULT 13 register_tm_clones - 44: 0000000000011030 0 NOTYPE LOCAL DEFAULT 23 $d - 45: 0000000000000700 0 FUNC LOCAL DEFAULT 13 __do_global_dtors_aux - 46: 0000000000011038 1 OBJECT LOCAL DEFAULT 24 completed.0 - 47: 0000000000010dd0 0 NOTYPE LOCAL DEFAULT 19 $d - 48: 0000000000010dd0 0 OBJECT LOCAL DEFAULT 19 __do_global_dtors_aux_fini_array_entry - 49: 0000000000000750 0 FUNC LOCAL DEFAULT 13 frame_dummy - 50: 0000000000010dc8 0 NOTYPE LOCAL DEFAULT 18 $d - 51: 0000000000010dc8 0 OBJECT LOCAL DEFAULT 18 __frame_dummy_init_array_entry - 52: 00000000000007d8 0 NOTYPE LOCAL DEFAULT 17 $d - 53: 0000000000011038 0 NOTYPE LOCAL DEFAULT 24 $d - 54: 0000000000000000 0 FILE LOCAL DEFAULT ABS syscall.c - 55: 0000000000000754 0 NOTYPE LOCAL DEFAULT 13 $x.0 - 56: 000000000000002a 0 NOTYPE LOCAL DEFAULT 25 $d.1 - 57: 0000000000000838 0 NOTYPE LOCAL DEFAULT 17 $d.2 - 58: 0000000000000000 0 FILE LOCAL DEFAULT ABS crtstuff.c - 59: 0000000000000860 0 NOTYPE LOCAL DEFAULT 17 $d - 60: 0000000000000860 0 OBJECT LOCAL DEFAULT 17 __FRAME_END__ - 61: 0000000000000000 0 FILE LOCAL DEFAULT ABS - 62: 0000000000010dd8 0 OBJECT LOCAL DEFAULT ABS _DYNAMIC - 63: 0000000000000770 0 NOTYPE LOCAL DEFAULT 16 __GNU_EH_FRAME_HDR - 64: 0000000000010fb8 0 OBJECT LOCAL DEFAULT ABS _GLOBAL_OFFSET_TABLE_ - 65: 00000000000005d0 0 NOTYPE LOCAL DEFAULT 12 $x - 66: 0000000000000000 0 FUNC GLOBAL DEFAULT UND __libc_start_main@GLIBC_2.34 - 67: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_deregisterTMCloneTable - 68: 0000000000011028 0 NOTYPE WEAK DEFAULT 23 data_start - 69: 0000000000011038 0 NOTYPE GLOBAL DEFAULT 24 __bss_start__ - 70: 0000000000000000 0 FUNC WEAK DEFAULT UND __cxa_finalize@GLIBC_2.17 - 71: 0000000000011040 0 NOTYPE GLOBAL DEFAULT 24 _bss_end__ - 72: 0000000000000000 0 FUNC GLOBAL DEFAULT UND fork@GLIBC_2.17 - 73: 0000000000011038 0 NOTYPE GLOBAL DEFAULT 23 _edata - 74: 0000000000000758 0 FUNC GLOBAL HIDDEN 14 _fini - 75: 0000000000011040 0 NOTYPE GLOBAL DEFAULT 24 __bss_end__ - 76: 0000000000011028 0 NOTYPE GLOBAL DEFAULT 23 __data_start - 77: 0000000000000000 0 NOTYPE WEAK DEFAULT UND __gmon_start__ - 78: 0000000000011030 0 OBJECT GLOBAL HIDDEN 23 __dso_handle - 79: 0000000000000000 0 FUNC GLOBAL DEFAULT UND abort@GLIBC_2.17 - 80: 000000000000076c 4 OBJECT GLOBAL DEFAULT 15 _IO_stdin_used - 81: 0000000000011040 0 NOTYPE GLOBAL DEFAULT 24 _end - 82: 0000000000000640 52 FUNC GLOBAL DEFAULT 13 _start - 83: 0000000000011040 0 NOTYPE GLOBAL DEFAULT 24 __end__ - 84: 0000000000011038 0 NOTYPE GLOBAL DEFAULT 24 __bss_start - 85: 0000000000000754 4 FUNC GLOBAL DEFAULT 13 main - 86: 0000000000011038 0 OBJECT GLOBAL HIDDEN 23 __TMC_END__ - 87: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_registerTMCloneTable - 88: 00000000000005b8 0 FUNC GLOBAL HIDDEN 11 _init diff --git a/src/test/correct/syscall/clang_O2/syscall_gtirb.expected b/src/test/correct/syscall/clang_O2/syscall_gtirb.expected index a0d540e35..dd45a44fb 100644 --- a/src/test/correct/syscall/clang_O2/syscall_gtirb.expected +++ b/src/test/correct/syscall/clang_O2/syscall_gtirb.expected @@ -5,7 +5,7 @@ var {:extern} R16: bv64; var {:extern} R17: bv64; var {:extern} mem: [bv64]bv8; const {:extern} $_IO_stdin_used_addr: bv64; -axiom ($_IO_stdin_used_addr == 1900bv64); +axiom ($_IO_stdin_used_addr == 2284bv64); function {:extern} L(mem$in: [bv64]bv8, index: bv64) returns (bool) { false } @@ -27,11 +27,11 @@ procedure {:extern} rely(); modifies Gamma_mem, mem; ensures (Gamma_mem == old(Gamma_mem)); ensures (mem == old(mem)); - free ensures (memory_load32_le(mem, 1900bv64) == 131073bv32); - free ensures (memory_load64_le(mem, 69064bv64) == 1872bv64); - free ensures (memory_load64_le(mem, 69072bv64) == 1792bv64); - free ensures (memory_load64_le(mem, 69592bv64) == 1876bv64); - free ensures (memory_load64_le(mem, 69680bv64) == 69680bv64); + free ensures (memory_load32_le(mem, 2284bv64) == 131073bv32); + free ensures (memory_load64_le(mem, 130432bv64) == 2256bv64); + free ensures (memory_load64_le(mem, 130440bv64) == 2176bv64); + free ensures (memory_load64_le(mem, 131056bv64) == 2260bv64); + free ensures (memory_load64_le(mem, 131080bv64) == 131080bv64); procedure {:extern} rely_transitive(); modifies Gamma_mem, mem; @@ -49,72 +49,66 @@ procedure {:extern} rely_reflexive(); procedure {:extern} guarantee_reflexive(); modifies Gamma_mem, mem; -procedure main_1876(); +procedure .L_790(); modifies Gamma_R16, Gamma_R17, Gamma_mem, R16, R17, mem; - free requires (memory_load64_le(mem, 69672bv64) == 0bv64); - free requires (memory_load64_le(mem, 69680bv64) == 69680bv64); - free requires (memory_load32_le(mem, 1900bv64) == 131073bv32); - free requires (memory_load64_le(mem, 69064bv64) == 1872bv64); - free requires (memory_load64_le(mem, 69072bv64) == 1792bv64); - free requires (memory_load64_le(mem, 69592bv64) == 1876bv64); - free requires (memory_load64_le(mem, 69680bv64) == 69680bv64); - free ensures (memory_load32_le(mem, 1900bv64) == 131073bv32); - free ensures (memory_load64_le(mem, 69064bv64) == 1872bv64); - free ensures (memory_load64_le(mem, 69072bv64) == 1792bv64); - free ensures (memory_load64_le(mem, 69592bv64) == 1876bv64); - free ensures (memory_load64_le(mem, 69680bv64) == 69680bv64); + free requires (memory_load32_le(mem, 2284bv64) == 131073bv32); + free requires (memory_load64_le(mem, 130432bv64) == 2256bv64); + free requires (memory_load64_le(mem, 130440bv64) == 2176bv64); + free requires (memory_load64_le(mem, 131056bv64) == 2260bv64); + free requires (memory_load64_le(mem, 131080bv64) == 131080bv64); + free ensures (memory_load32_le(mem, 2284bv64) == 131073bv32); + free ensures (memory_load64_le(mem, 130432bv64) == 2256bv64); + free ensures (memory_load64_le(mem, 130440bv64) == 2176bv64); + free ensures (memory_load64_le(mem, 131056bv64) == 2260bv64); + free ensures (memory_load64_le(mem, 131080bv64) == 131080bv64); -implementation main_1876() +implementation .L_790() { - main_1876__0__noLlJkgwRnOvXgJivIONmQ: - assume {:captureState "main_1876__0__noLlJkgwRnOvXgJivIONmQ"} true; - call .L_610_1552(); - goto main_1876_basil_return; - main_1876_basil_return: - assume {:captureState "main_1876_basil_return"} true; - return; + var $load5: bv64; + var Gamma_$load5: bool; + $.L_790$__0__$DgPI7AV4ReigBHb432Kcjg: + assume {:captureState "$.L_790$__0__$DgPI7AV4ReigBHb432Kcjg"} true; + R16, Gamma_R16 := 126976bv64, true; + call rely(); + $load5, Gamma_$load5 := memory_load64_le(mem, bvadd64(R16, 4024bv64)), (gamma_load64(Gamma_mem, bvadd64(R16, 4024bv64)) || L(mem, bvadd64(R16, 4024bv64))); + R17, Gamma_R17 := $load5, Gamma_$load5; + R16, Gamma_R16 := bvadd64(R16, 4024bv64), Gamma_R16; + call fork(); + assume false; } -procedure .L_610_1552(); +procedure main(); modifies Gamma_R16, Gamma_R17, Gamma_mem, R16, R17, mem; - free requires (memory_load32_le(mem, 1900bv64) == 131073bv32); - free requires (memory_load64_le(mem, 69064bv64) == 1872bv64); - free requires (memory_load64_le(mem, 69072bv64) == 1792bv64); - free requires (memory_load64_le(mem, 69592bv64) == 1876bv64); - free requires (memory_load64_le(mem, 69680bv64) == 69680bv64); - free ensures (memory_load32_le(mem, 1900bv64) == 131073bv32); - free ensures (memory_load64_le(mem, 69064bv64) == 1872bv64); - free ensures (memory_load64_le(mem, 69072bv64) == 1792bv64); - free ensures (memory_load64_le(mem, 69592bv64) == 1876bv64); - free ensures (memory_load64_le(mem, 69680bv64) == 69680bv64); + free requires (memory_load64_le(mem, 131072bv64) == 0bv64); + free requires (memory_load64_le(mem, 131080bv64) == 131080bv64); + free requires (memory_load32_le(mem, 2284bv64) == 131073bv32); + free requires (memory_load64_le(mem, 130432bv64) == 2256bv64); + free requires (memory_load64_le(mem, 130440bv64) == 2176bv64); + free requires (memory_load64_le(mem, 131056bv64) == 2260bv64); + free requires (memory_load64_le(mem, 131080bv64) == 131080bv64); + free ensures (memory_load32_le(mem, 2284bv64) == 131073bv32); + free ensures (memory_load64_le(mem, 130432bv64) == 2256bv64); + free ensures (memory_load64_le(mem, 130440bv64) == 2176bv64); + free ensures (memory_load64_le(mem, 131056bv64) == 2260bv64); + free ensures (memory_load64_le(mem, 131080bv64) == 131080bv64); -implementation .L_610_1552() +implementation main() { - var Gamma_load7: bool; - var load7: bv64; - .L_610_1552__0__gey1dltDQsGWPLJ2NyIKRg: - assume {:captureState ".L_610_1552__0__gey1dltDQsGWPLJ2NyIKRg"} true; - R16, Gamma_R16 := 69632bv64, true; - call rely(); - load7, Gamma_load7 := memory_load64_le(mem, bvadd64(R16, 16bv64)), (gamma_load64(Gamma_mem, bvadd64(R16, 16bv64)) || L(mem, bvadd64(R16, 16bv64))); - R17, Gamma_R17 := load7, Gamma_load7; - R16, Gamma_R16 := bvadd64(R16, 16bv64), Gamma_R16; - call fork(); - goto .L_610_1552_basil_return; - .L_610_1552_basil_return: - assume {:captureState ".L_610_1552_basil_return"} true; - return; + $main$__0__$IkNYmV06TxC75h8A4NM3wA: + assume {:captureState "$main$__0__$IkNYmV06TxC75h8A4NM3wA"} true; + call .L_790(); + assume false; } procedure fork(); - free requires (memory_load32_le(mem, 1900bv64) == 131073bv32); - free requires (memory_load64_le(mem, 69064bv64) == 1872bv64); - free requires (memory_load64_le(mem, 69072bv64) == 1792bv64); - free requires (memory_load64_le(mem, 69592bv64) == 1876bv64); - free requires (memory_load64_le(mem, 69680bv64) == 69680bv64); - free ensures (memory_load32_le(mem, 1900bv64) == 131073bv32); - free ensures (memory_load64_le(mem, 69064bv64) == 1872bv64); - free ensures (memory_load64_le(mem, 69072bv64) == 1792bv64); - free ensures (memory_load64_le(mem, 69592bv64) == 1876bv64); - free ensures (memory_load64_le(mem, 69680bv64) == 69680bv64); + free requires (memory_load32_le(mem, 2284bv64) == 131073bv32); + free requires (memory_load64_le(mem, 130432bv64) == 2256bv64); + free requires (memory_load64_le(mem, 130440bv64) == 2176bv64); + free requires (memory_load64_le(mem, 131056bv64) == 2260bv64); + free requires (memory_load64_le(mem, 131080bv64) == 131080bv64); + free ensures (memory_load32_le(mem, 2284bv64) == 131073bv32); + free ensures (memory_load64_le(mem, 130432bv64) == 2256bv64); + free ensures (memory_load64_le(mem, 130440bv64) == 2176bv64); + free ensures (memory_load64_le(mem, 131056bv64) == 2260bv64); + free ensures (memory_load64_le(mem, 131080bv64) == 131080bv64); diff --git a/src/test/correct/syscall/config.mk b/src/test/correct/syscall/config.mk index ba94daccb..f55c97d1b 100644 --- a/src/test/correct/syscall/config.mk +++ b/src/test/correct/syscall/config.mk @@ -1 +1,2 @@ -ENABLED_COMPILERS = clang clang_O2 gcc gcc_O2 \ No newline at end of file +ENABLED_COMPILERS = clang clang_O2 gcc gcc_O2 +LIFT_ARTEFACTS_clang_O2 := $(COMMON_ARTEFACTS) $(GTIRB_ARTEFACTS) diff --git a/src/test/correct/syscall/gcc/syscall.adt b/src/test/correct/syscall/gcc/syscall.adt deleted file mode 100644 index b0c103065..000000000 --- a/src/test/correct/syscall/gcc/syscall.adt +++ /dev/null @@ -1,541 +0,0 @@ -Project(Attrs([Attr("filename","\"gcc/syscall.out\""), -Attr("image-specification","(declare abi (name str))\n(declare arch (name str))\n(declare base-address (addr int))\n(declare bias (off int))\n(declare bits (size int))\n(declare code-region (addr int) (size int) (off int))\n(declare code-start (addr int))\n(declare entry-point (addr int))\n(declare external-reference (addr int) (name str))\n(declare format (name str))\n(declare is-executable (flag bool))\n(declare is-little-endian (flag bool))\n(declare llvm:base-address (addr int))\n(declare llvm:code-entry (name str) (off int) (size int))\n(declare llvm:coff-import-library (name str))\n(declare llvm:coff-virtual-section-header (name str) (addr int) (size int))\n(declare llvm:elf-program-header (name str) (off int) (size int))\n(declare llvm:elf-program-header-flags (name str) (ld bool) (r bool) \n (w bool) (x bool))\n(declare llvm:elf-virtual-program-header (name str) (addr int) (size int))\n(declare llvm:entry-point (addr int))\n(declare llvm:macho-symbol (name str) (value int))\n(declare llvm:name-reference (at int) (name str))\n(declare llvm:relocation (at int) (addr int))\n(declare llvm:section-entry (name str) (addr int) (size int) (off int))\n(declare llvm:section-flags (name str) (r bool) (w bool) (x bool))\n(declare llvm:segment-command (name str) (off int) (size int))\n(declare llvm:segment-command-flags (name str) (r bool) (w bool) (x bool))\n(declare llvm:symbol-entry (name str) (addr int) (size int) (off int)\n (value int))\n(declare llvm:virtual-segment-command (name str) (addr int) (size int))\n(declare mapped (addr int) (size int) (off int))\n(declare named-region (addr int) (size int) (name str))\n(declare named-symbol (addr int) (name str))\n(declare require (name str))\n(declare section (addr int) (size int))\n(declare segment (addr int) (size int) (r bool) (w bool) (x bool))\n(declare subarch (name str))\n(declare symbol-chunk (addr int) (size int) (root int))\n(declare symbol-value (addr int) (value int))\n(declare system (name str))\n(declare vendor (name str))\n\n(abi unknown)\n(arch aarch64)\n(base-address 0)\n(bias 0)\n(bits 64)\n(code-region 1912 20 1912)\n(code-region 1600 312 1600)\n(code-region 1488 112 1488)\n(code-region 1464 24 1464)\n(code-start 1652)\n(code-start 1600)\n(code-start 1876)\n(entry-point 1600)\n(external-reference 69592 _ITM_deregisterTMCloneTable)\n(external-reference 69600 __cxa_finalize)\n(external-reference 69608 __gmon_start__)\n(external-reference 69624 _ITM_registerTMCloneTable)\n(external-reference 69544 __libc_start_main)\n(external-reference 69552 __cxa_finalize)\n(external-reference 69560 fork)\n(external-reference 69568 __gmon_start__)\n(external-reference 69576 abort)\n(format elf)\n(is-executable true)\n(is-little-endian true)\n(llvm:base-address 0)\n(llvm:code-entry abort 0 0)\n(llvm:code-entry fork 0 0)\n(llvm:code-entry __cxa_finalize 0 0)\n(llvm:code-entry __libc_start_main 0 0)\n(llvm:code-entry _init 1464 0)\n(llvm:code-entry main 1876 36)\n(llvm:code-entry _start 1600 52)\n(llvm:code-entry abort@GLIBC_2.17 0 0)\n(llvm:code-entry _fini 1912 0)\n(llvm:code-entry fork@GLIBC_2.17 0 0)\n(llvm:code-entry __cxa_finalize@GLIBC_2.17 0 0)\n(llvm:code-entry __libc_start_main@GLIBC_2.34 0 0)\n(llvm:code-entry frame_dummy 1872 0)\n(llvm:code-entry __do_global_dtors_aux 1792 0)\n(llvm:code-entry register_tm_clones 1728 0)\n(llvm:code-entry deregister_tm_clones 1680 0)\n(llvm:code-entry call_weak_fn 1652 20)\n(llvm:code-entry .fini 1912 20)\n(llvm:code-entry .text 1600 312)\n(llvm:code-entry .plt 1488 112)\n(llvm:code-entry .init 1464 24)\n(llvm:elf-program-header 08 3472 624)\n(llvm:elf-program-header 07 0 0)\n(llvm:elf-program-header 06 1936 60)\n(llvm:elf-program-header 05 596 68)\n(llvm:elf-program-header 04 3488 496)\n(llvm:elf-program-header 03 3472 640)\n(llvm:elf-program-header 02 0 2172)\n(llvm:elf-program-header 01 568 27)\n(llvm:elf-program-header 00 64 504)\n(llvm:elf-program-header-flags 08 false true false false)\n(llvm:elf-program-header-flags 07 false true true false)\n(llvm:elf-program-header-flags 06 false true false false)\n(llvm:elf-program-header-flags 05 false true false false)\n(llvm:elf-program-header-flags 04 false true true false)\n(llvm:elf-program-header-flags 03 true true true false)\n(llvm:elf-program-header-flags 02 true true false true)\n(llvm:elf-program-header-flags 01 false true false false)\n(llvm:elf-program-header-flags 00 false true false false)\n(llvm:elf-virtual-program-header 08 69008 624)\n(llvm:elf-virtual-program-header 07 0 0)\n(llvm:elf-virtual-program-header 06 1936 60)\n(llvm:elf-virtual-program-header 05 596 68)\n(llvm:elf-virtual-program-header 04 69024 496)\n(llvm:elf-virtual-program-header 03 69008 648)\n(llvm:elf-virtual-program-header 02 0 2172)\n(llvm:elf-virtual-program-header 01 568 27)\n(llvm:elf-virtual-program-header 00 64 504)\n(llvm:entry-point 1600)\n(llvm:name-reference 69576 abort)\n(llvm:name-reference 69568 __gmon_start__)\n(llvm:name-reference 69560 fork)\n(llvm:name-reference 69552 __cxa_finalize)\n(llvm:name-reference 69544 __libc_start_main)\n(llvm:name-reference 69624 _ITM_registerTMCloneTable)\n(llvm:name-reference 69608 __gmon_start__)\n(llvm:name-reference 69600 __cxa_finalize)\n(llvm:name-reference 69592 _ITM_deregisterTMCloneTable)\n(llvm:section-entry .shstrtab 0 250 6807)\n(llvm:section-entry .strtab 0 559 6248)\n(llvm:section-entry .symtab 0 2088 4160)\n(llvm:section-entry .comment 0 43 4112)\n(llvm:section-entry .bss 69648 8 4112)\n(llvm:section-entry .data 69632 16 4096)\n(llvm:section-entry .got 69520 112 3984)\n(llvm:section-entry .dynamic 69024 496 3488)\n(llvm:section-entry .fini_array 69016 8 3480)\n(llvm:section-entry .init_array 69008 8 3472)\n(llvm:section-entry .eh_frame 2000 172 2000)\n(llvm:section-entry .eh_frame_hdr 1936 60 1936)\n(llvm:section-entry .rodata 1932 4 1932)\n(llvm:section-entry .fini 1912 20 1912)\n(llvm:section-entry .text 1600 312 1600)\n(llvm:section-entry .plt 1488 112 1488)\n(llvm:section-entry .init 1464 24 1464)\n(llvm:section-entry .rela.plt 1344 120 1344)\n(llvm:section-entry .rela.dyn 1152 192 1152)\n(llvm:section-entry .gnu.version_r 1104 48 1104)\n(llvm:section-entry .gnu.version 1082 20 1082)\n(llvm:section-entry .dynstr 936 146 936)\n(llvm:section-entry .dynsym 696 240 696)\n(llvm:section-entry .gnu.hash 664 28 664)\n(llvm:section-entry .note.ABI-tag 632 32 632)\n(llvm:section-entry .note.gnu.build-id 596 36 596)\n(llvm:section-entry .interp 568 27 568)\n(llvm:section-flags .shstrtab true false false)\n(llvm:section-flags .strtab true false false)\n(llvm:section-flags .symtab true false false)\n(llvm:section-flags .comment true false false)\n(llvm:section-flags .bss true true false)\n(llvm:section-flags .data true true false)\n(llvm:section-flags .got true true false)\n(llvm:section-flags .dynamic true true false)\n(llvm:section-flags .fini_array true true false)\n(llvm:section-flags .init_array true true false)\n(llvm:section-flags .eh_frame true false false)\n(llvm:section-flags .eh_frame_hdr true false false)\n(llvm:section-flags .rodata true false false)\n(llvm:section-flags .fini true false true)\n(llvm:section-flags .text true false true)\n(llvm:section-flags .plt true false true)\n(llvm:section-flags .init true false true)\n(llvm:section-flags .rela.plt true false false)\n(llvm:section-flags .rela.dyn true false false)\n(llvm:section-flags .gnu.version_r true false false)\n(llvm:section-flags .gnu.version true false false)\n(llvm:section-flags .dynstr true false false)\n(llvm:section-flags .dynsym true false false)\n(llvm:section-flags .gnu.hash true false false)\n(llvm:section-flags .note.ABI-tag true false false)\n(llvm:section-flags .note.gnu.build-id true false false)\n(llvm:section-flags .interp true false false)\n(llvm:symbol-entry abort 0 0 0 0)\n(llvm:symbol-entry fork 0 0 0 0)\n(llvm:symbol-entry __cxa_finalize 0 0 0 0)\n(llvm:symbol-entry __libc_start_main 0 0 0 0)\n(llvm:symbol-entry _init 1464 0 1464 1464)\n(llvm:symbol-entry main 1876 36 1876 1876)\n(llvm:symbol-entry _start 1600 52 1600 1600)\n(llvm:symbol-entry abort@GLIBC_2.17 0 0 0 0)\n(llvm:symbol-entry _fini 1912 0 1912 1912)\n(llvm:symbol-entry fork@GLIBC_2.17 0 0 0 0)\n(llvm:symbol-entry __cxa_finalize@GLIBC_2.17 0 0 0 0)\n(llvm:symbol-entry __libc_start_main@GLIBC_2.34 0 0 0 0)\n(llvm:symbol-entry frame_dummy 1872 0 1872 1872)\n(llvm:symbol-entry __do_global_dtors_aux 1792 0 1792 1792)\n(llvm:symbol-entry register_tm_clones 1728 0 1728 1728)\n(llvm:symbol-entry deregister_tm_clones 1680 0 1680 1680)\n(llvm:symbol-entry call_weak_fn 1652 20 1652 1652)\n(mapped 0 2172 0)\n(mapped 69008 640 3472)\n(named-region 0 2172 02)\n(named-region 69008 648 03)\n(named-region 568 27 .interp)\n(named-region 596 36 .note.gnu.build-id)\n(named-region 632 32 .note.ABI-tag)\n(named-region 664 28 .gnu.hash)\n(named-region 696 240 .dynsym)\n(named-region 936 146 .dynstr)\n(named-region 1082 20 .gnu.version)\n(named-region 1104 48 .gnu.version_r)\n(named-region 1152 192 .rela.dyn)\n(named-region 1344 120 .rela.plt)\n(named-region 1464 24 .init)\n(named-region 1488 112 .plt)\n(named-region 1600 312 .text)\n(named-region 1912 20 .fini)\n(named-region 1932 4 .rodata)\n(named-region 1936 60 .eh_frame_hdr)\n(named-region 2000 172 .eh_frame)\n(named-region 69008 8 .init_array)\n(named-region 69016 8 .fini_array)\n(named-region 69024 496 .dynamic)\n(named-region 69520 112 .got)\n(named-region 69632 16 .data)\n(named-region 69648 8 .bss)\n(named-region 0 43 .comment)\n(named-region 0 2088 .symtab)\n(named-region 0 559 .strtab)\n(named-region 0 250 .shstrtab)\n(named-symbol 1652 call_weak_fn)\n(named-symbol 1680 deregister_tm_clones)\n(named-symbol 1728 register_tm_clones)\n(named-symbol 1792 __do_global_dtors_aux)\n(named-symbol 1872 frame_dummy)\n(named-symbol 0 __libc_start_main@GLIBC_2.34)\n(named-symbol 0 __cxa_finalize@GLIBC_2.17)\n(named-symbol 0 fork@GLIBC_2.17)\n(named-symbol 1912 _fini)\n(named-symbol 0 abort@GLIBC_2.17)\n(named-symbol 1600 _start)\n(named-symbol 1876 main)\n(named-symbol 1464 _init)\n(named-symbol 0 __libc_start_main)\n(named-symbol 0 __cxa_finalize)\n(named-symbol 0 fork)\n(named-symbol 0 abort)\n(require libc.so.6)\n(section 568 27)\n(section 596 36)\n(section 632 32)\n(section 664 28)\n(section 696 240)\n(section 936 146)\n(section 1082 20)\n(section 1104 48)\n(section 1152 192)\n(section 1344 120)\n(section 1464 24)\n(section 1488 112)\n(section 1600 312)\n(section 1912 20)\n(section 1932 4)\n(section 1936 60)\n(section 2000 172)\n(section 69008 8)\n(section 69016 8)\n(section 69024 496)\n(section 69520 112)\n(section 69632 16)\n(section 69648 8)\n(section 0 43)\n(section 0 2088)\n(section 0 559)\n(section 0 250)\n(segment 0 2172 true false true)\n(segment 69008 648 true true false)\n(subarch v8)\n(symbol-chunk 1652 20 1652)\n(symbol-chunk 1600 52 1600)\n(symbol-chunk 1876 36 1876)\n(symbol-value 1652 1652)\n(symbol-value 1680 1680)\n(symbol-value 1728 1728)\n(symbol-value 1792 1792)\n(symbol-value 1872 1872)\n(symbol-value 1912 1912)\n(symbol-value 1600 1600)\n(symbol-value 1876 1876)\n(symbol-value 1464 1464)\n(symbol-value 0 0)\n(system \"\")\n(vendor \"\")\n"), -Attr("abi-name","\"aarch64-linux-gnu-elf\"")]), -Sections([Section(".shstrtab", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x40\x06\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x98\x1b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x38\x00\x09\x00\x40\x00\x1c\x00\x1b\x00\x06\x00\x00\x00\x04\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x04\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x08\x00\x00\x00\x00\x00\x00\x7c\x08\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x01\x00\x00\x00\x06\x00\x00\x00\x90\x0d\x00\x00\x00\x00\x00\x00\x90\x0d"), -Section(".strtab", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x40\x06\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x98\x1b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x38\x00\x09\x00\x40\x00\x1c\x00\x1b\x00\x06\x00\x00\x00\x04\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x04\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x08\x00\x00\x00\x00\x00\x00\x7c\x08\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x01\x00\x00\x00\x06\x00\x00\x00\x90\x0d\x00\x00\x00\x00\x00\x00\x90\x0d\x01\x00\x00\x00\x00\x00\x90\x0d\x01\x00\x00\x00\x00\x00\x80\x02\x00\x00\x00\x00\x00\x00\x88\x02\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x02\x00\x00\x00\x06\x00\x00\x00\xa0\x0d\x00\x00\x00\x00\x00\x00\xa0\x0d\x01\x00\x00\x00\x00\x00\xa0\x0d\x01\x00\x00\x00\x00\x00\xf0\x01\x00\x00\x00\x00\x00\x00\xf0\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x04\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x50\xe5\x74\x64\x04\x00\x00\x00\x90\x07\x00\x00\x00\x00\x00\x00\x90\x07\x00\x00\x00\x00\x00\x00\x90\x07\x00\x00\x00\x00\x00\x00\x3c\x00\x00\x00\x00\x00\x00\x00\x3c\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x51\xe5\x74\x64\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x52\xe5\x74\x64\x04\x00\x00\x00\x90\x0d\x00\x00\x00\x00\x00\x00\x90\x0d\x01\x00\x00\x00\x00\x00\x90\x0d\x01\x00\x00\x00\x00\x00\x70\x02\x00\x00\x00\x00\x00\x00\x70\x02\x00\x00\x00\x00\x00"), -Section(".symtab", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x40\x06\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x98\x1b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x38\x00\x09\x00\x40\x00\x1c\x00\x1b\x00\x06\x00\x00\x00\x04\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x04\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x08\x00\x00\x00\x00\x00\x00\x7c\x08\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x01\x00\x00\x00\x06\x00\x00\x00\x90\x0d\x00\x00\x00\x00\x00\x00\x90\x0d\x01\x00\x00\x00\x00\x00\x90\x0d\x01\x00\x00\x00\x00\x00\x80\x02\x00\x00\x00\x00\x00\x00\x88\x02\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x02\x00\x00\x00\x06\x00\x00\x00\xa0\x0d\x00\x00\x00\x00\x00\x00\xa0\x0d\x01\x00\x00\x00\x00\x00\xa0\x0d\x01\x00\x00\x00\x00\x00\xf0\x01\x00\x00\x00\x00\x00\x00\xf0\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x04\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x50\xe5\x74\x64\x04\x00\x00\x00\x90\x07\x00\x00\x00\x00\x00\x00\x90\x07\x00\x00\x00\x00\x00\x00\x90\x07\x00\x00\x00\x00\x00\x00\x3c\x00\x00\x00\x00\x00\x00\x00\x3c\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x51\xe5\x74\x64\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x52\xe5\x74\x64\x04\x00\x00\x00\x90\x0d\x00\x00\x00\x00\x00\x00\x90\x0d\x01\x00\x00\x00\x00\x00\x90\x0d\x01\x00\x00\x00\x00\x00\x70\x02\x00\x00\x00\x00\x00\x00\x70\x02\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x2f\x6c\x69\x62\x2f\x6c\x64\x2d\x6c\x69\x6e\x75\x78\x2d\x61\x61\x72\x63\x68\x36\x34\x2e\x73\x6f\x2e\x31\x00\x00\x04\x00\x00\x00\x14\x00\x00\x00\x03\x00\x00\x00\x47\x4e\x55\x00\x09\x04\x27\xa0\x68\x15\x2c\xc0\x7a\xc8\x44\x10\x0e\xee\xc1\xe9\xb7\x67\x5d\x4d\x04\x00\x00\x00\x10\x00\x00\x00\x01\x00\x00\x00\x47\x4e\x55\x00\x00\x00\x00\x00\x03\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x01\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x0b\x00\xb8\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x16\x00\x00\x10\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4d\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x22\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x28\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x69\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x22\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x78\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5f\x5f\x63\x78\x61\x5f\x66\x69\x6e\x61\x6c\x69\x7a\x65\x00\x5f\x5f\x6c\x69\x62\x63\x5f\x73\x74\x61\x72\x74\x5f\x6d\x61\x69\x6e\x00\x61\x62\x6f\x72\x74\x00\x66\x6f\x72\x6b\x00\x6c\x69\x62\x63\x2e\x73\x6f\x2e\x36\x00\x47\x4c\x49\x42\x43\x5f\x32\x2e\x31\x37\x00\x47\x4c\x49\x42\x43\x5f\x32\x2e\x33\x34\x00\x5f\x49\x54\x4d\x5f\x64\x65\x72\x65\x67\x69\x73\x74\x65\x72\x54\x4d\x43\x6c\x6f\x6e\x65\x54\x61\x62\x6c\x65\x00\x5f\x5f\x67\x6d\x6f\x6e\x5f\x73\x74\x61\x72\x74\x5f\x5f\x00\x5f\x49\x54\x4d\x5f\x72\x65\x67\x69\x73\x74\x65\x72\x54\x4d\x43\x6c\x6f\x6e\x65\x54\x61\x62\x6c\x65\x00\x00\x00\x00\x00\x00\x00\x02\x00\x01\x00\x03\x00\x03\x00\x01\x00\x03\x00\x01\x00\x00\x00\x01\x00\x02\x00\x2d\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x97\x91\x96\x06\x00\x00\x03\x00\x37\x00\x00\x00\x10\x00\x00\x00\xb4\x91\x96\x06\x00\x00\x02\x00\x42\x00\x00\x00\x00\x00\x00\x00\x90\x0d\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x50\x07\x00\x00\x00\x00\x00\x00\x98\x0d\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\xf0\x0f\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x54\x07\x00\x00\x00\x00\x00\x00\x08\x10\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x08\x10\x01\x00\x00\x00\x00\x00\xd8\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe0\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe8\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xf8\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x09\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xa8\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xb0\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xb8\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xc0\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xc8\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1f\x20\x03\xd5\xfd\x7b\xbf\xa9\xfd\x03\x00\x91\x2c\x00\x00\x94\xfd\x7b\xc1\xa8\xc0\x03\x5f\xd6\xf0\x7b\xbf\xa9\x90\x00\x00\x90\x11\xd2\x47\xf9\x10\x82\x3e\x91\x20\x02\x1f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x90\x00\x00\x90\x11\xd6\x47\xf9\x10\xa2\x3e\x91\x20\x02\x1f\xd6\x90\x00\x00\x90\x11\xda\x47\xf9\x10\xc2\x3e\x91\x20\x02\x1f\xd6\x90\x00\x00\x90\x11\xde\x47\xf9\x10\xe2\x3e\x91\x20\x02\x1f\xd6\x90\x00\x00\x90\x11\xe2\x47\xf9\x10\x02\x3f\x91\x20\x02\x1f\xd6\x90\x00\x00\x90\x11\xe6\x47\xf9\x10\x22\x3f\x91\x20\x02\x1f\xd6\x1f\x20\x03\xd5\x1d\x00\x80\xd2\x1e\x00\x80\xd2\xe5\x03\x00\xaa\xe1\x03\x40\xf9\xe2\x23\x00\x91\xe6\x03\x00\x91\x80\x00\x00\x90\x00\xf8\x47\xf9\x03\x00\x80\xd2\x04\x00\x80\xd2\xe1\xff\xff\x97\xf0\xff\xff\x97\x80\x00\x00\x90\x00\xf4\x47\xf9\x40\x00\x00\xb4\xe8\xff\xff\x17\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x80\x00\x00\xb0\x00\x40\x00\x91\x81\x00\x00\xb0\x21\x40\x00\x91\x3f\x00\x00\xeb\xc0\x00\x00\x54\x81\x00\x00\x90\x21\xec\x47\xf9\x61\x00\x00\xb4\xf0\x03\x01\xaa\x00\x02\x1f\xd6\xc0\x03\x5f\xd6\x80\x00\x00\xb0\x00\x40\x00\x91\x81\x00\x00\xb0\x21\x40\x00\x91\x21\x00\x00\xcb\x22\xfc\x7f\xd3\x41\x0c\x81\x8b\x21\xfc\x41\x93\xc1\x00\x00\xb4\x82\x00\x00\x90\x42\xfc\x47\xf9\x62\x00\x00\xb4\xf0\x03\x02\xaa\x00\x02\x1f\xd6\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\xfd\x7b\xbe\xa9\xfd\x03\x00\x91\xf3\x0b\x00\xf9\x93\x00\x00\xb0\x60\x42\x40\x39\x40\x01\x00\x35\x80\x00\x00\x90\x00\xf0\x47\xf9\x80\x00\x00\xb4\x80\x00\x00\xb0\x00\x04\x40\xf9\xb5\xff\xff\x97\xd8\xff\xff\x97\x20\x00\x80\x52\x60\x42\x00\x39\xf3\x0b\x40\xf9\xfd\x7b\xc2\xa8\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\xdc\xff\xff\x17\xfd\x7b\xbd\xa9\xfd\x03\x00\x91\xe0\x1f\x00\xb9\xe1\x0b\x00\xf9\xab\xff\xff\x97\xe0\x2f\x00\xb9\xe0\x2f\x40\xb9\xfd\x7b\xc3\xa8\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\xfd\x7b\xbf\xa9\xfd\x03\x00\x91\xfd\x7b\xc1\xa8\xc0\x03\x5f\xd6\x01\x00\x02\x00\x01\x1b\x03\x3b\x3c\x00\x00\x00\x06\x00\x00\x00\xb0\xfe\xff\xff\x54\x00\x00\x00\x00\xff\xff\xff\x68\x00\x00\x00\x30\xff\xff\xff\x7c\x00\x00\x00\x70\xff\xff\xff\x90\x00\x00\x00\xc0\xff\xff\xff\xb4\x00\x00\x00\xc4\xff\xff\xff\xc8\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x01\x7a\x52\x00\x04\x78\x1e\x01\x1b\x0c\x1f\x00\x10\x00\x00\x00\x18\x00\x00\x00\x54\xfe\xff\xff\x34\x00\x00\x00\x00\x41\x07\x1e\x10\x00\x00\x00\x2c\x00\x00\x00\x90\xfe\xff\xff\x30\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x40\x00\x00\x00\xac\xfe\xff\xff\x3c\x00\x00\x00\x00\x00\x00\x00\x20\x00\x00\x00\x54\x00\x00\x00"), -Section(".comment", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x40\x06\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x98\x1b\x00"), -Section(".interp", 0x238, "\x2f\x6c\x69\x62\x2f\x6c\x64\x2d\x6c\x69\x6e\x75\x78\x2d\x61\x61\x72\x63\x68\x36\x34\x2e\x73\x6f\x2e\x31\x00"), -Section(".note.gnu.build-id", 0x254, "\x04\x00\x00\x00\x14\x00\x00\x00\x03\x00\x00\x00\x47\x4e\x55\x00\x09\x04\x27\xa0\x68\x15\x2c\xc0\x7a\xc8\x44\x10\x0e\xee\xc1\xe9\xb7\x67\x5d\x4d"), -Section(".note.ABI-tag", 0x278, "\x04\x00\x00\x00\x10\x00\x00\x00\x01\x00\x00\x00\x47\x4e\x55\x00\x00\x00\x00\x00\x03\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00"), -Section(".gnu.hash", 0x298, "\x01\x00\x00\x00\x01\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".dynsym", 0x2B8, "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x0b\x00\xb8\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x16\x00\x00\x10\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4d\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x22\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x28\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x69\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x22\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x78\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".dynstr", 0x3A8, "\x00\x5f\x5f\x63\x78\x61\x5f\x66\x69\x6e\x61\x6c\x69\x7a\x65\x00\x5f\x5f\x6c\x69\x62\x63\x5f\x73\x74\x61\x72\x74\x5f\x6d\x61\x69\x6e\x00\x61\x62\x6f\x72\x74\x00\x66\x6f\x72\x6b\x00\x6c\x69\x62\x63\x2e\x73\x6f\x2e\x36\x00\x47\x4c\x49\x42\x43\x5f\x32\x2e\x31\x37\x00\x47\x4c\x49\x42\x43\x5f\x32\x2e\x33\x34\x00\x5f\x49\x54\x4d\x5f\x64\x65\x72\x65\x67\x69\x73\x74\x65\x72\x54\x4d\x43\x6c\x6f\x6e\x65\x54\x61\x62\x6c\x65\x00\x5f\x5f\x67\x6d\x6f\x6e\x5f\x73\x74\x61\x72\x74\x5f\x5f\x00\x5f\x49\x54\x4d\x5f\x72\x65\x67\x69\x73\x74\x65\x72\x54\x4d\x43\x6c\x6f\x6e\x65\x54\x61\x62\x6c\x65\x00"), -Section(".gnu.version", 0x43A, "\x00\x00\x00\x00\x00\x00\x02\x00\x01\x00\x03\x00\x03\x00\x01\x00\x03\x00\x01\x00"), -Section(".gnu.version_r", 0x450, "\x01\x00\x02\x00\x2d\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x97\x91\x96\x06\x00\x00\x03\x00\x37\x00\x00\x00\x10\x00\x00\x00\xb4\x91\x96\x06\x00\x00\x02\x00\x42\x00\x00\x00\x00\x00\x00\x00"), -Section(".rela.dyn", 0x480, "\x90\x0d\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x50\x07\x00\x00\x00\x00\x00\x00\x98\x0d\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\xf0\x0f\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x54\x07\x00\x00\x00\x00\x00\x00\x08\x10\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x08\x10\x01\x00\x00\x00\x00\x00\xd8\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe0\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe8\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xf8\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x09\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".rela.plt", 0x540, "\xa8\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xb0\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xb8\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xc0\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xc8\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".init", 0x5B8, "\x1f\x20\x03\xd5\xfd\x7b\xbf\xa9\xfd\x03\x00\x91\x2c\x00\x00\x94\xfd\x7b\xc1\xa8\xc0\x03\x5f\xd6"), -Section(".plt", 0x5D0, "\xf0\x7b\xbf\xa9\x90\x00\x00\x90\x11\xd2\x47\xf9\x10\x82\x3e\x91\x20\x02\x1f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x90\x00\x00\x90\x11\xd6\x47\xf9\x10\xa2\x3e\x91\x20\x02\x1f\xd6\x90\x00\x00\x90\x11\xda\x47\xf9\x10\xc2\x3e\x91\x20\x02\x1f\xd6\x90\x00\x00\x90\x11\xde\x47\xf9\x10\xe2\x3e\x91\x20\x02\x1f\xd6\x90\x00\x00\x90\x11\xe2\x47\xf9\x10\x02\x3f\x91\x20\x02\x1f\xd6\x90\x00\x00\x90\x11\xe6\x47\xf9\x10\x22\x3f\x91\x20\x02\x1f\xd6"), -Section(".fini", 0x778, "\x1f\x20\x03\xd5\xfd\x7b\xbf\xa9\xfd\x03\x00\x91\xfd\x7b\xc1\xa8\xc0\x03\x5f\xd6"), -Section(".rodata", 0x78C, "\x01\x00\x02\x00"), -Section(".eh_frame_hdr", 0x790, "\x01\x1b\x03\x3b\x3c\x00\x00\x00\x06\x00\x00\x00\xb0\xfe\xff\xff\x54\x00\x00\x00\x00\xff\xff\xff\x68\x00\x00\x00\x30\xff\xff\xff\x7c\x00\x00\x00\x70\xff\xff\xff\x90\x00\x00\x00\xc0\xff\xff\xff\xb4\x00\x00\x00\xc4\xff\xff\xff\xc8\x00\x00\x00"), -Section(".eh_frame", 0x7D0, "\x10\x00\x00\x00\x00\x00\x00\x00\x01\x7a\x52\x00\x04\x78\x1e\x01\x1b\x0c\x1f\x00\x10\x00\x00\x00\x18\x00\x00\x00\x54\xfe\xff\xff\x34\x00\x00\x00\x00\x41\x07\x1e\x10\x00\x00\x00\x2c\x00\x00\x00\x90\xfe\xff\xff\x30\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x40\x00\x00\x00\xac\xfe\xff\xff\x3c\x00\x00\x00\x00\x00\x00\x00\x20\x00\x00\x00\x54\x00\x00\x00\xd8\xfe\xff\xff\x48\x00\x00\x00\x00\x41\x0e\x20\x9d\x04\x9e\x03\x42\x93\x02\x4e\xde\xdd\xd3\x0e\x00\x00\x00\x00\x10\x00\x00\x00\x78\x00\x00\x00\x04\xff\xff\xff\x04\x00\x00\x00\x00\x00\x00\x00\x1c\x00\x00\x00\x8c\x00\x00\x00\xf4\xfe\xff\xff\x24\x00\x00\x00\x00\x41\x0e\x30\x9d\x06\x9e\x05\x47\xde\xdd\x0e\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".fini_array", 0x10D98, "\x00\x07\x00\x00\x00\x00\x00\x00"), -Section(".dynamic", 0x10DA0, "\x01\x00\x00\x00\x00\x00\x00\x00\x2d\x00\x00\x00\x00\x00\x00\x00\x0c\x00\x00\x00\x00\x00\x00\x00\xb8\x05\x00\x00\x00\x00\x00\x00\x0d\x00\x00\x00\x00\x00\x00\x00\x78\x07\x00\x00\x00\x00\x00\x00\x19\x00\x00\x00\x00\x00\x00\x00\x90\x0d\x01\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x1a\x00\x00\x00\x00\x00\x00\x00\x98\x0d\x01\x00\x00\x00\x00\x00\x1c\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\xf5\xfe\xff\x6f\x00\x00\x00\x00\x98\x02\x00\x00\x00\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\xa8\x03\x00\x00\x00\x00\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\xb8\x02\x00\x00\x00\x00\x00\x00\x0a\x00\x00\x00\x00\x00\x00\x00\x92\x00\x00\x00\x00\x00\x00\x00\x0b\x00\x00\x00\x00\x00\x00\x00\x18\x00\x00\x00\x00\x00\x00\x00\x15\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x90\x0f\x01\x00\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x78\x00\x00\x00\x00\x00\x00\x00\x14\x00\x00\x00\x00\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x17\x00\x00\x00\x00\x00\x00\x00\x40\x05\x00\x00\x00\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x80\x04\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\xc0\x00\x00\x00\x00\x00\x00\x00\x09\x00\x00\x00\x00\x00\x00\x00\x18\x00\x00\x00\x00\x00\x00\x00\x1e\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\xfb\xff\xff\x6f\x00\x00\x00\x00\x01\x00\x00\x08\x00\x00\x00\x00\xfe\xff\xff\x6f\x00\x00\x00\x00\x50\x04\x00\x00\x00\x00\x00\x00\xff\xff\xff\x6f\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\xf0\xff\xff\x6f\x00\x00\x00\x00\x3a\x04\x00\x00\x00\x00\x00\x00\xf9\xff\xff\x6f\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".got", 0x10F90, "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xd0\x05\x00\x00\x00\x00\x00\x00\xd0\x05\x00\x00\x00\x00\x00\x00\xd0\x05\x00\x00\x00\x00\x00\x00\xd0\x05\x00\x00\x00\x00\x00\x00\xd0\x05\x00\x00\x00\x00\x00\x00\xa0\x0d\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x54\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".data", 0x11000, "\x00\x00\x00\x00\x00\x00\x00\x00\x08\x10\x01\x00\x00\x00\x00\x00"), -Section(".init_array", 0x10D90, "\x50\x07\x00\x00\x00\x00\x00\x00"), -Section(".text", 0x640, "\x1f\x20\x03\xd5\x1d\x00\x80\xd2\x1e\x00\x80\xd2\xe5\x03\x00\xaa\xe1\x03\x40\xf9\xe2\x23\x00\x91\xe6\x03\x00\x91\x80\x00\x00\x90\x00\xf8\x47\xf9\x03\x00\x80\xd2\x04\x00\x80\xd2\xe1\xff\xff\x97\xf0\xff\xff\x97\x80\x00\x00\x90\x00\xf4\x47\xf9\x40\x00\x00\xb4\xe8\xff\xff\x17\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x80\x00\x00\xb0\x00\x40\x00\x91\x81\x00\x00\xb0\x21\x40\x00\x91\x3f\x00\x00\xeb\xc0\x00\x00\x54\x81\x00\x00\x90\x21\xec\x47\xf9\x61\x00\x00\xb4\xf0\x03\x01\xaa\x00\x02\x1f\xd6\xc0\x03\x5f\xd6\x80\x00\x00\xb0\x00\x40\x00\x91\x81\x00\x00\xb0\x21\x40\x00\x91\x21\x00\x00\xcb\x22\xfc\x7f\xd3\x41\x0c\x81\x8b\x21\xfc\x41\x93\xc1\x00\x00\xb4\x82\x00\x00\x90\x42\xfc\x47\xf9\x62\x00\x00\xb4\xf0\x03\x02\xaa\x00\x02\x1f\xd6\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\xfd\x7b\xbe\xa9\xfd\x03\x00\x91\xf3\x0b\x00\xf9\x93\x00\x00\xb0\x60\x42\x40\x39\x40\x01\x00\x35\x80\x00\x00\x90\x00\xf0\x47\xf9\x80\x00\x00\xb4\x80\x00\x00\xb0\x00\x04\x40\xf9\xb5\xff\xff\x97\xd8\xff\xff\x97\x20\x00\x80\x52\x60\x42\x00\x39\xf3\x0b\x40\xf9\xfd\x7b\xc2\xa8\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\xdc\xff\xff\x17\xfd\x7b\xbd\xa9\xfd\x03\x00\x91\xe0\x1f\x00\xb9\xe1\x0b\x00\xf9\xab\xff\xff\x97\xe0\x2f\x00\xb9\xe0\x2f\x40\xb9\xfd\x7b\xc3\xa8\xc0\x03\x5f\xd6")]), -Memmap([Annotation(Region(0x0,0x87B), Attr("segment","02 0 2172")), -Annotation(Region(0x640,0x673), Attr("symbol","\"_start\"")), -Annotation(Region(0x0,0xF9), Attr("section","\".shstrtab\"")), -Annotation(Region(0x0,0x22E), Attr("section","\".strtab\"")), -Annotation(Region(0x0,0x827), Attr("section","\".symtab\"")), -Annotation(Region(0x0,0x2A), Attr("section","\".comment\"")), -Annotation(Region(0x238,0x252), Attr("section","\".interp\"")), -Annotation(Region(0x254,0x277), Attr("section","\".note.gnu.build-id\"")), -Annotation(Region(0x278,0x297), Attr("section","\".note.ABI-tag\"")), -Annotation(Region(0x298,0x2B3), Attr("section","\".gnu.hash\"")), -Annotation(Region(0x2B8,0x3A7), Attr("section","\".dynsym\"")), -Annotation(Region(0x3A8,0x439), Attr("section","\".dynstr\"")), -Annotation(Region(0x43A,0x44D), Attr("section","\".gnu.version\"")), -Annotation(Region(0x450,0x47F), Attr("section","\".gnu.version_r\"")), -Annotation(Region(0x480,0x53F), Attr("section","\".rela.dyn\"")), -Annotation(Region(0x540,0x5B7), Attr("section","\".rela.plt\"")), -Annotation(Region(0x5B8,0x5CF), Attr("section","\".init\"")), -Annotation(Region(0x5D0,0x63F), Attr("section","\".plt\"")), -Annotation(Region(0x5B8,0x5CF), Attr("code-region","()")), -Annotation(Region(0x5D0,0x63F), Attr("code-region","()")), -Annotation(Region(0x640,0x673), Attr("symbol-info","_start 0x640 52")), -Annotation(Region(0x674,0x687), Attr("symbol","\"call_weak_fn\"")), -Annotation(Region(0x674,0x687), Attr("symbol-info","call_weak_fn 0x674 20")), -Annotation(Region(0x754,0x777), Attr("symbol","\"main\"")), -Annotation(Region(0x754,0x777), Attr("symbol-info","main 0x754 36")), -Annotation(Region(0x778,0x78B), Attr("section","\".fini\"")), -Annotation(Region(0x78C,0x78F), Attr("section","\".rodata\"")), -Annotation(Region(0x790,0x7CB), Attr("section","\".eh_frame_hdr\"")), -Annotation(Region(0x7D0,0x87B), Attr("section","\".eh_frame\"")), -Annotation(Region(0x10D90,0x1100F), Attr("segment","03 0x10D90 648")), -Annotation(Region(0x10D98,0x10D9F), Attr("section","\".fini_array\"")), -Annotation(Region(0x10DA0,0x10F8F), Attr("section","\".dynamic\"")), -Annotation(Region(0x10F90,0x10FFF), Attr("section","\".got\"")), -Annotation(Region(0x11000,0x1100F), Attr("section","\".data\"")), -Annotation(Region(0x10D90,0x10D97), Attr("section","\".init_array\"")), -Annotation(Region(0x640,0x777), Attr("section","\".text\"")), -Annotation(Region(0x640,0x777), Attr("code-region","()")), -Annotation(Region(0x778,0x78B), Attr("code-region","()"))]), -Program(Tid(1_545, "%00000609"), Attrs([]), - Subs([Sub(Tid(1_493, "@__cxa_finalize"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x600"), -Attr("stub","()")]), "__cxa_finalize", Args([Arg(Tid(1_546, "%0000060a"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("__cxa_finalize_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(861, "@__cxa_finalize"), - Attrs([Attr("address","0x600")]), Phis([]), -Defs([Def(Tid(1_125, "%00000465"), Attrs([Attr("address","0x600"), -Attr("insn","adrp x16, #65536")]), Var("R16",Imm(64)), Int(65536,64)), -Def(Tid(1_132, "%0000046c"), Attrs([Attr("address","0x604"), -Attr("insn","ldr x17, [x16, #0xfb0]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(4016,64)),LittleEndian(),64)), -Def(Tid(1_138, "%00000472"), Attrs([Attr("address","0x608"), -Attr("insn","add x16, x16, #0xfb0")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(4016,64)))]), Jmps([Call(Tid(1_143, "%00000477"), - Attrs([Attr("address","0x60C"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), -Sub(Tid(1_494, "@__do_global_dtors_aux"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x700")]), - "__do_global_dtors_aux", Args([Arg(Tid(1_547, "%0000060b"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("__do_global_dtors_aux_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(626, "@__do_global_dtors_aux"), - Attrs([Attr("address","0x700")]), Phis([]), Defs([Def(Tid(630, "%00000276"), - Attrs([Attr("address","0x700"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("#3",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(18446744073709551584,64))), -Def(Tid(636, "%0000027c"), Attrs([Attr("address","0x700"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("#3",Imm(64)),Var("R29",Imm(64)),LittleEndian(),64)), -Def(Tid(642, "%00000282"), Attrs([Attr("address","0x700"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("#3",Imm(64)),Int(8,64)),Var("R30",Imm(64)),LittleEndian(),64)), -Def(Tid(646, "%00000286"), Attrs([Attr("address","0x700"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("R31",Imm(64)), -Var("#3",Imm(64))), Def(Tid(652, "%0000028c"), - Attrs([Attr("address","0x704"), Attr("insn","mov x29, sp")]), - Var("R29",Imm(64)), Var("R31",Imm(64))), Def(Tid(660, "%00000294"), - Attrs([Attr("address","0x708"), Attr("insn","str x19, [sp, #0x10]")]), - Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(16,64)),Var("R19",Imm(64)),LittleEndian(),64)), -Def(Tid(665, "%00000299"), Attrs([Attr("address","0x70C"), -Attr("insn","adrp x19, #69632")]), Var("R19",Imm(64)), Int(69632,64)), -Def(Tid(672, "%000002a0"), Attrs([Attr("address","0x710"), -Attr("insn","ldrb w0, [x19, #0x10]")]), Var("R0",Imm(64)), -UNSIGNED(64,Load(Var("mem",Mem(64,8)),PLUS(Var("R19",Imm(64)),Int(16,64)),LittleEndian(),8)))]), -Jmps([Goto(Tid(679, "%000002a7"), Attrs([Attr("address","0x714"), -Attr("insn","cbnz w0, #0x28")]), - NEQ(Extract(31,0,Var("R0",Imm(64))),Int(0,32)), -Direct(Tid(677, "%000002a5"))), Goto(Tid(1_535, "%000005ff"), Attrs([]), - Int(1,1), Direct(Tid(806, "%00000326")))])), Blk(Tid(806, "%00000326"), - Attrs([Attr("address","0x718")]), Phis([]), Defs([Def(Tid(809, "%00000329"), - Attrs([Attr("address","0x718"), Attr("insn","adrp x0, #65536")]), - Var("R0",Imm(64)), Int(65536,64)), Def(Tid(816, "%00000330"), - Attrs([Attr("address","0x71C"), Attr("insn","ldr x0, [x0, #0xfe0]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(4064,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(822, "%00000336"), Attrs([Attr("address","0x720"), -Attr("insn","cbz x0, #0x10")]), EQ(Var("R0",Imm(64)),Int(0,64)), -Direct(Tid(820, "%00000334"))), Goto(Tid(1_536, "%00000600"), Attrs([]), - Int(1,1), Direct(Tid(845, "%0000034d")))])), Blk(Tid(845, "%0000034d"), - Attrs([Attr("address","0x724")]), Phis([]), Defs([Def(Tid(848, "%00000350"), - Attrs([Attr("address","0x724"), Attr("insn","adrp x0, #69632")]), - Var("R0",Imm(64)), Int(69632,64)), Def(Tid(855, "%00000357"), - Attrs([Attr("address","0x728"), Attr("insn","ldr x0, [x0, #0x8]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(860, "%0000035c"), Attrs([Attr("address","0x72C"), -Attr("insn","bl #-0x12c")]), Var("R30",Imm(64)), Int(1840,64))]), -Jmps([Call(Tid(863, "%0000035f"), Attrs([Attr("address","0x72C"), -Attr("insn","bl #-0x12c")]), Int(1,1), -(Direct(Tid(1_493, "@__cxa_finalize")),Direct(Tid(820, "%00000334"))))])), -Blk(Tid(820, "%00000334"), Attrs([Attr("address","0x730")]), Phis([]), -Defs([Def(Tid(828, "%0000033c"), Attrs([Attr("address","0x730"), -Attr("insn","bl #-0xa0")]), Var("R30",Imm(64)), Int(1844,64))]), -Jmps([Call(Tid(830, "%0000033e"), Attrs([Attr("address","0x730"), -Attr("insn","bl #-0xa0")]), Int(1,1), -(Direct(Tid(1_507, "@deregister_tm_clones")),Direct(Tid(832, "%00000340"))))])), -Blk(Tid(832, "%00000340"), Attrs([Attr("address","0x734")]), Phis([]), -Defs([Def(Tid(835, "%00000343"), Attrs([Attr("address","0x734"), -Attr("insn","mov w0, #0x1")]), Var("R0",Imm(64)), Int(1,64)), -Def(Tid(843, "%0000034b"), Attrs([Attr("address","0x738"), -Attr("insn","strb w0, [x19, #0x10]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R19",Imm(64)),Int(16,64)),Extract(7,0,Var("R0",Imm(64))),LittleEndian(),8))]), -Jmps([Goto(Tid(1_537, "%00000601"), Attrs([]), Int(1,1), -Direct(Tid(677, "%000002a5")))])), Blk(Tid(677, "%000002a5"), - Attrs([Attr("address","0x73C")]), Phis([]), Defs([Def(Tid(687, "%000002af"), - Attrs([Attr("address","0x73C"), Attr("insn","ldr x19, [sp, #0x10]")]), - Var("R19",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(16,64)),LittleEndian(),64)), -Def(Tid(694, "%000002b6"), Attrs([Attr("address","0x740"), -Attr("insn","ldp x29, x30, [sp], #0x20")]), Var("R29",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(699, "%000002bb"), Attrs([Attr("address","0x740"), -Attr("insn","ldp x29, x30, [sp], #0x20")]), Var("R30",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(703, "%000002bf"), Attrs([Attr("address","0x740"), -Attr("insn","ldp x29, x30, [sp], #0x20")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(32,64)))]), Jmps([Call(Tid(708, "%000002c4"), - Attrs([Attr("address","0x744"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), Sub(Tid(1_498, "@__libc_start_main"), - Attrs([Attr("c.proto","signed (*)(signed (*)(signed , char** , char** );* main, signed , char** , \nvoid* auxv)"), -Attr("address","0x5F0"), Attr("stub","()")]), "__libc_start_main", - Args([Arg(Tid(1_548, "%0000060c"), - Attrs([Attr("c.layout","**[ : 64]"), -Attr("c.data","Top:u64 ptr ptr"), -Attr("c.type","signed (*)(signed , char** , char** );*")]), - Var("__libc_start_main_main",Imm(64)), Var("R0",Imm(64)), In()), -Arg(Tid(1_549, "%0000060d"), Attrs([Attr("c.layout","[signed : 32]"), -Attr("c.data","Top:u32"), Attr("c.type","signed")]), - Var("__libc_start_main_arg2",Imm(32)), LOW(32,Var("R1",Imm(64))), In()), -Arg(Tid(1_550, "%0000060e"), Attrs([Attr("c.layout","**[char : 8]"), -Attr("c.data","Top:u8 ptr ptr"), Attr("c.type","char**")]), - Var("__libc_start_main_arg3",Imm(64)), Var("R2",Imm(64)), Both()), -Arg(Tid(1_551, "%0000060f"), Attrs([Attr("c.layout","*[ : 8]"), -Attr("c.data","{} ptr"), Attr("c.type","void*")]), - Var("__libc_start_main_auxv",Imm(64)), Var("R3",Imm(64)), Both()), -Arg(Tid(1_552, "%00000610"), Attrs([Attr("c.layout","[signed : 32]"), -Attr("c.data","Top:u32"), Attr("c.type","signed")]), - Var("__libc_start_main_result",Imm(32)), LOW(32,Var("R0",Imm(64))), -Out())]), Blks([Blk(Tid(459, "@__libc_start_main"), - Attrs([Attr("address","0x5F0")]), Phis([]), -Defs([Def(Tid(1_103, "%0000044f"), Attrs([Attr("address","0x5F0"), -Attr("insn","adrp x16, #65536")]), Var("R16",Imm(64)), Int(65536,64)), -Def(Tid(1_110, "%00000456"), Attrs([Attr("address","0x5F4"), -Attr("insn","ldr x17, [x16, #0xfa8]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(4008,64)),LittleEndian(),64)), -Def(Tid(1_116, "%0000045c"), Attrs([Attr("address","0x5F8"), -Attr("insn","add x16, x16, #0xfa8")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(4008,64)))]), Jmps([Call(Tid(1_121, "%00000461"), - Attrs([Attr("address","0x5FC"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), Sub(Tid(1_499, "@_fini"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x778")]), - "_fini", Args([Arg(Tid(1_553, "%00000611"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("_fini_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(31, "@_fini"), - Attrs([Attr("address","0x778")]), Phis([]), Defs([Def(Tid(37, "%00000025"), - Attrs([Attr("address","0x77C"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("#0",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(18446744073709551600,64))), -Def(Tid(43, "%0000002b"), Attrs([Attr("address","0x77C"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("#0",Imm(64)),Var("R29",Imm(64)),LittleEndian(),64)), -Def(Tid(49, "%00000031"), Attrs([Attr("address","0x77C"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("#0",Imm(64)),Int(8,64)),Var("R30",Imm(64)),LittleEndian(),64)), -Def(Tid(53, "%00000035"), Attrs([Attr("address","0x77C"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("R31",Imm(64)), -Var("#0",Imm(64))), Def(Tid(59, "%0000003b"), Attrs([Attr("address","0x780"), -Attr("insn","mov x29, sp")]), Var("R29",Imm(64)), Var("R31",Imm(64))), -Def(Tid(66, "%00000042"), Attrs([Attr("address","0x784"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R29",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(71, "%00000047"), Attrs([Attr("address","0x784"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R30",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(75, "%0000004b"), Attrs([Attr("address","0x784"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(16,64)))]), Jmps([Call(Tid(80, "%00000050"), - Attrs([Attr("address","0x788"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), Sub(Tid(1_500, "@_init"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x5B8")]), - "_init", Args([Arg(Tid(1_554, "%00000612"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("_init_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(1_322, "@_init"), - Attrs([Attr("address","0x5B8")]), Phis([]), -Defs([Def(Tid(1_328, "%00000530"), Attrs([Attr("address","0x5BC"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("#6",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(18446744073709551600,64))), -Def(Tid(1_334, "%00000536"), Attrs([Attr("address","0x5BC"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("#6",Imm(64)),Var("R29",Imm(64)),LittleEndian(),64)), -Def(Tid(1_340, "%0000053c"), Attrs([Attr("address","0x5BC"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("#6",Imm(64)),Int(8,64)),Var("R30",Imm(64)),LittleEndian(),64)), -Def(Tid(1_344, "%00000540"), Attrs([Attr("address","0x5BC"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("R31",Imm(64)), -Var("#6",Imm(64))), Def(Tid(1_350, "%00000546"), - Attrs([Attr("address","0x5C0"), Attr("insn","mov x29, sp")]), - Var("R29",Imm(64)), Var("R31",Imm(64))), Def(Tid(1_355, "%0000054b"), - Attrs([Attr("address","0x5C4"), Attr("insn","bl #0xb0")]), - Var("R30",Imm(64)), Int(1480,64))]), Jmps([Call(Tid(1_357, "%0000054d"), - Attrs([Attr("address","0x5C4"), Attr("insn","bl #0xb0")]), Int(1,1), -(Direct(Tid(1_505, "@call_weak_fn")),Direct(Tid(1_359, "%0000054f"))))])), -Blk(Tid(1_359, "%0000054f"), Attrs([Attr("address","0x5C8")]), Phis([]), -Defs([Def(Tid(1_364, "%00000554"), Attrs([Attr("address","0x5C8"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R29",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(1_369, "%00000559"), Attrs([Attr("address","0x5C8"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R30",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(1_373, "%0000055d"), Attrs([Attr("address","0x5C8"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(16,64)))]), Jmps([Call(Tid(1_378, "%00000562"), - Attrs([Attr("address","0x5CC"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), Sub(Tid(1_501, "@_start"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x640"), -Attr("stub","()"), Attr("entry-point","()")]), "_start", - Args([Arg(Tid(1_555, "%00000613"), Attrs([Attr("c.layout","[signed : 32]"), -Attr("c.data","Top:u32"), Attr("c.type","signed")]), - Var("_start_result",Imm(32)), LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(396, "@_start"), Attrs([Attr("address","0x640")]), Phis([]), -Defs([Def(Tid(401, "%00000191"), Attrs([Attr("address","0x644"), -Attr("insn","mov x29, #0x0")]), Var("R29",Imm(64)), Int(0,64)), -Def(Tid(406, "%00000196"), Attrs([Attr("address","0x648"), -Attr("insn","mov x30, #0x0")]), Var("R30",Imm(64)), Int(0,64)), -Def(Tid(412, "%0000019c"), Attrs([Attr("address","0x64C"), -Attr("insn","mov x5, x0")]), Var("R5",Imm(64)), Var("R0",Imm(64))), -Def(Tid(419, "%000001a3"), Attrs([Attr("address","0x650"), -Attr("insn","ldr x1, [sp]")]), Var("R1",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(425, "%000001a9"), Attrs([Attr("address","0x654"), -Attr("insn","add x2, sp, #0x8")]), Var("R2",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(8,64))), Def(Tid(431, "%000001af"), - Attrs([Attr("address","0x658"), Attr("insn","mov x6, sp")]), - Var("R6",Imm(64)), Var("R31",Imm(64))), Def(Tid(436, "%000001b4"), - Attrs([Attr("address","0x65C"), Attr("insn","adrp x0, #65536")]), - Var("R0",Imm(64)), Int(65536,64)), Def(Tid(443, "%000001bb"), - Attrs([Attr("address","0x660"), Attr("insn","ldr x0, [x0, #0xff0]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(4080,64)),LittleEndian(),64)), -Def(Tid(448, "%000001c0"), Attrs([Attr("address","0x664"), -Attr("insn","mov x3, #0x0")]), Var("R3",Imm(64)), Int(0,64)), -Def(Tid(453, "%000001c5"), Attrs([Attr("address","0x668"), -Attr("insn","mov x4, #0x0")]), Var("R4",Imm(64)), Int(0,64)), -Def(Tid(458, "%000001ca"), Attrs([Attr("address","0x66C"), -Attr("insn","bl #-0x7c")]), Var("R30",Imm(64)), Int(1648,64))]), -Jmps([Call(Tid(461, "%000001cd"), Attrs([Attr("address","0x66C"), -Attr("insn","bl #-0x7c")]), Int(1,1), -(Direct(Tid(1_498, "@__libc_start_main")),Direct(Tid(463, "%000001cf"))))])), -Blk(Tid(463, "%000001cf"), Attrs([Attr("address","0x670")]), Phis([]), -Defs([Def(Tid(466, "%000001d2"), Attrs([Attr("address","0x670"), -Attr("insn","bl #-0x40")]), Var("R30",Imm(64)), Int(1652,64))]), -Jmps([Call(Tid(469, "%000001d5"), Attrs([Attr("address","0x670"), -Attr("insn","bl #-0x40")]), Int(1,1), -(Direct(Tid(1_504, "@abort")),Direct(Tid(1_538, "%00000602"))))])), -Blk(Tid(1_538, "%00000602"), Attrs([]), Phis([]), Defs([]), -Jmps([Call(Tid(1_539, "%00000603"), Attrs([]), Int(1,1), -(Direct(Tid(1_505, "@call_weak_fn")),))]))])), Sub(Tid(1_504, "@abort"), - Attrs([Attr("noreturn","()"), Attr("c.proto","void (*)(void)"), -Attr("address","0x630"), Attr("stub","()")]), "abort", Args([]), -Blks([Blk(Tid(467, "@abort"), Attrs([Attr("address","0x630")]), Phis([]), -Defs([Def(Tid(1_191, "%000004a7"), Attrs([Attr("address","0x630"), -Attr("insn","adrp x16, #65536")]), Var("R16",Imm(64)), Int(65536,64)), -Def(Tid(1_198, "%000004ae"), Attrs([Attr("address","0x634"), -Attr("insn","ldr x17, [x16, #0xfc8]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(4040,64)),LittleEndian(),64)), -Def(Tid(1_204, "%000004b4"), Attrs([Attr("address","0x638"), -Attr("insn","add x16, x16, #0xfc8")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(4040,64)))]), Jmps([Call(Tid(1_209, "%000004b9"), - Attrs([Attr("address","0x63C"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), Sub(Tid(1_505, "@call_weak_fn"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x674")]), - "call_weak_fn", Args([Arg(Tid(1_556, "%00000614"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("call_weak_fn_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(471, "@call_weak_fn"), - Attrs([Attr("address","0x674")]), Phis([]), Defs([Def(Tid(474, "%000001da"), - Attrs([Attr("address","0x674"), Attr("insn","adrp x0, #65536")]), - Var("R0",Imm(64)), Int(65536,64)), Def(Tid(481, "%000001e1"), - Attrs([Attr("address","0x678"), Attr("insn","ldr x0, [x0, #0xfe8]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(4072,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(487, "%000001e7"), Attrs([Attr("address","0x67C"), -Attr("insn","cbz x0, #0x8")]), EQ(Var("R0",Imm(64)),Int(0,64)), -Direct(Tid(485, "%000001e5"))), Goto(Tid(1_540, "%00000604"), Attrs([]), - Int(1,1), Direct(Tid(925, "%0000039d")))])), Blk(Tid(485, "%000001e5"), - Attrs([Attr("address","0x684")]), Phis([]), Defs([]), -Jmps([Call(Tid(493, "%000001ed"), Attrs([Attr("address","0x684"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))])), -Blk(Tid(925, "%0000039d"), Attrs([Attr("address","0x680")]), Phis([]), -Defs([]), Jmps([Goto(Tid(928, "%000003a0"), Attrs([Attr("address","0x680"), -Attr("insn","b #-0x60")]), Int(1,1), Direct(Tid(926, "@__gmon_start__")))])), -Blk(Tid(926, "@__gmon_start__"), Attrs([Attr("address","0x620")]), Phis([]), -Defs([Def(Tid(1_169, "%00000491"), Attrs([Attr("address","0x620"), -Attr("insn","adrp x16, #65536")]), Var("R16",Imm(64)), Int(65536,64)), -Def(Tid(1_176, "%00000498"), Attrs([Attr("address","0x624"), -Attr("insn","ldr x17, [x16, #0xfc0]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(4032,64)),LittleEndian(),64)), -Def(Tid(1_182, "%0000049e"), Attrs([Attr("address","0x628"), -Attr("insn","add x16, x16, #0xfc0")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(4032,64)))]), Jmps([Call(Tid(1_187, "%000004a3"), - Attrs([Attr("address","0x62C"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), -Sub(Tid(1_507, "@deregister_tm_clones"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x690")]), - "deregister_tm_clones", Args([Arg(Tid(1_557, "%00000615"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("deregister_tm_clones_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(499, "@deregister_tm_clones"), - Attrs([Attr("address","0x690")]), Phis([]), Defs([Def(Tid(502, "%000001f6"), - Attrs([Attr("address","0x690"), Attr("insn","adrp x0, #69632")]), - Var("R0",Imm(64)), Int(69632,64)), Def(Tid(508, "%000001fc"), - Attrs([Attr("address","0x694"), Attr("insn","add x0, x0, #0x10")]), - Var("R0",Imm(64)), PLUS(Var("R0",Imm(64)),Int(16,64))), -Def(Tid(513, "%00000201"), Attrs([Attr("address","0x698"), -Attr("insn","adrp x1, #69632")]), Var("R1",Imm(64)), Int(69632,64)), -Def(Tid(519, "%00000207"), Attrs([Attr("address","0x69C"), -Attr("insn","add x1, x1, #0x10")]), Var("R1",Imm(64)), -PLUS(Var("R1",Imm(64)),Int(16,64))), Def(Tid(525, "%0000020d"), - Attrs([Attr("address","0x6A0"), Attr("insn","cmp x1, x0")]), - Var("#1",Imm(64)), NOT(Var("R0",Imm(64)))), Def(Tid(530, "%00000212"), - Attrs([Attr("address","0x6A0"), Attr("insn","cmp x1, x0")]), - Var("#2",Imm(64)), PLUS(Var("R1",Imm(64)),NOT(Var("R0",Imm(64))))), -Def(Tid(536, "%00000218"), Attrs([Attr("address","0x6A0"), -Attr("insn","cmp x1, x0")]), Var("VF",Imm(1)), -NEQ(SIGNED(65,PLUS(Var("#2",Imm(64)),Int(1,64))),PLUS(PLUS(SIGNED(65,Var("R1",Imm(64))),SIGNED(65,Var("#1",Imm(64)))),Int(1,65)))), -Def(Tid(542, "%0000021e"), Attrs([Attr("address","0x6A0"), -Attr("insn","cmp x1, x0")]), Var("CF",Imm(1)), -NEQ(UNSIGNED(65,PLUS(Var("#2",Imm(64)),Int(1,64))),PLUS(PLUS(UNSIGNED(65,Var("R1",Imm(64))),UNSIGNED(65,Var("#1",Imm(64)))),Int(1,65)))), -Def(Tid(546, "%00000222"), Attrs([Attr("address","0x6A0"), -Attr("insn","cmp x1, x0")]), Var("ZF",Imm(1)), -EQ(PLUS(Var("#2",Imm(64)),Int(1,64)),Int(0,64))), Def(Tid(550, "%00000226"), - Attrs([Attr("address","0x6A0"), Attr("insn","cmp x1, x0")]), - Var("NF",Imm(1)), Extract(63,63,PLUS(Var("#2",Imm(64)),Int(1,64))))]), -Jmps([Goto(Tid(556, "%0000022c"), Attrs([Attr("address","0x6A4"), -Attr("insn","b.eq #0x18")]), EQ(Var("ZF",Imm(1)),Int(1,1)), -Direct(Tid(554, "%0000022a"))), Goto(Tid(1_541, "%00000605"), Attrs([]), - Int(1,1), Direct(Tid(895, "%0000037f")))])), Blk(Tid(895, "%0000037f"), - Attrs([Attr("address","0x6A8")]), Phis([]), Defs([Def(Tid(898, "%00000382"), - Attrs([Attr("address","0x6A8"), Attr("insn","adrp x1, #65536")]), - Var("R1",Imm(64)), Int(65536,64)), Def(Tid(905, "%00000389"), - Attrs([Attr("address","0x6AC"), Attr("insn","ldr x1, [x1, #0xfd8]")]), - Var("R1",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R1",Imm(64)),Int(4056,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(910, "%0000038e"), Attrs([Attr("address","0x6B0"), -Attr("insn","cbz x1, #0xc")]), EQ(Var("R1",Imm(64)),Int(0,64)), -Direct(Tid(554, "%0000022a"))), Goto(Tid(1_542, "%00000606"), Attrs([]), - Int(1,1), Direct(Tid(914, "%00000392")))])), Blk(Tid(554, "%0000022a"), - Attrs([Attr("address","0x6BC")]), Phis([]), Defs([]), -Jmps([Call(Tid(562, "%00000232"), Attrs([Attr("address","0x6BC"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))])), -Blk(Tid(914, "%00000392"), Attrs([Attr("address","0x6B4")]), Phis([]), -Defs([Def(Tid(918, "%00000396"), Attrs([Attr("address","0x6B4"), -Attr("insn","mov x16, x1")]), Var("R16",Imm(64)), Var("R1",Imm(64)))]), -Jmps([Call(Tid(923, "%0000039b"), Attrs([Attr("address","0x6B8"), -Attr("insn","br x16")]), Int(1,1), (Indirect(Var("R16",Imm(64))),))]))])), -Sub(Tid(1_510, "@fork"), Attrs([Attr("c.proto","signed (*)(void)"), -Attr("returns-twice","()"), Attr("address","0x610"), Attr("stub","()")]), - "fork", Args([Arg(Tid(1_558, "%00000616"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("fork_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(766, "@fork"), - Attrs([Attr("address","0x610")]), Phis([]), -Defs([Def(Tid(1_147, "%0000047b"), Attrs([Attr("address","0x610"), -Attr("insn","adrp x16, #65536")]), Var("R16",Imm(64)), Int(65536,64)), -Def(Tid(1_154, "%00000482"), Attrs([Attr("address","0x614"), -Attr("insn","ldr x17, [x16, #0xfb8]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(4024,64)),LittleEndian(),64)), -Def(Tid(1_160, "%00000488"), Attrs([Attr("address","0x618"), -Attr("insn","add x16, x16, #0xfb8")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(4024,64)))]), Jmps([Call(Tid(1_165, "%0000048d"), - Attrs([Attr("address","0x61C"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), Sub(Tid(1_511, "@frame_dummy"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x750")]), - "frame_dummy", Args([Arg(Tid(1_559, "%00000617"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("frame_dummy_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(714, "@frame_dummy"), - Attrs([Attr("address","0x750")]), Phis([]), Defs([]), -Jmps([Call(Tid(716, "%000002cc"), Attrs([Attr("address","0x750"), -Attr("insn","b #-0x90")]), Int(1,1), -(Direct(Tid(1_513, "@register_tm_clones")),))]))])), Sub(Tid(1_512, "@main"), - Attrs([Attr("c.proto","signed (*)(signed argc, const char** argv)"), -Attr("address","0x754")]), "main", Args([Arg(Tid(1_560, "%00000618"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("main_argc",Imm(32)), -LOW(32,Var("R0",Imm(64))), In()), Arg(Tid(1_561, "%00000619"), - Attrs([Attr("c.layout","**[char : 8]"), Attr("c.data","Top:u8 ptr ptr"), -Attr("c.type"," const char**")]), Var("main_argv",Imm(64)), -Var("R1",Imm(64)), Both()), Arg(Tid(1_562, "%0000061a"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("main_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(718, "@main"), - Attrs([Attr("address","0x754")]), Phis([]), Defs([Def(Tid(722, "%000002d2"), - Attrs([Attr("address","0x754"), -Attr("insn","stp x29, x30, [sp, #-0x30]!")]), Var("#4",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(18446744073709551568,64))), -Def(Tid(728, "%000002d8"), Attrs([Attr("address","0x754"), -Attr("insn","stp x29, x30, [sp, #-0x30]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("#4",Imm(64)),Var("R29",Imm(64)),LittleEndian(),64)), -Def(Tid(734, "%000002de"), Attrs([Attr("address","0x754"), -Attr("insn","stp x29, x30, [sp, #-0x30]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("#4",Imm(64)),Int(8,64)),Var("R30",Imm(64)),LittleEndian(),64)), -Def(Tid(738, "%000002e2"), Attrs([Attr("address","0x754"), -Attr("insn","stp x29, x30, [sp, #-0x30]!")]), Var("R31",Imm(64)), -Var("#4",Imm(64))), Def(Tid(744, "%000002e8"), - Attrs([Attr("address","0x758"), Attr("insn","mov x29, sp")]), - Var("R29",Imm(64)), Var("R31",Imm(64))), Def(Tid(752, "%000002f0"), - Attrs([Attr("address","0x75C"), Attr("insn","str w0, [sp, #0x1c]")]), - Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(28,64)),Extract(31,0,Var("R0",Imm(64))),LittleEndian(),32)), -Def(Tid(760, "%000002f8"), Attrs([Attr("address","0x760"), -Attr("insn","str x1, [sp, #0x10]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(16,64)),Var("R1",Imm(64)),LittleEndian(),64)), -Def(Tid(765, "%000002fd"), Attrs([Attr("address","0x764"), -Attr("insn","bl #-0x154")]), Var("R30",Imm(64)), Int(1896,64))]), -Jmps([Call(Tid(768, "%00000300"), Attrs([Attr("address","0x764"), -Attr("insn","bl #-0x154")]), Int(1,1), -(Direct(Tid(1_510, "@fork")),Direct(Tid(770, "%00000302"))))])), -Blk(Tid(770, "%00000302"), Attrs([Attr("address","0x768")]), Phis([]), -Defs([Def(Tid(776, "%00000308"), Attrs([Attr("address","0x768"), -Attr("insn","str w0, [sp, #0x2c]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(44,64)),Extract(31,0,Var("R0",Imm(64))),LittleEndian(),32)), -Def(Tid(783, "%0000030f"), Attrs([Attr("address","0x76C"), -Attr("insn","ldr w0, [sp, #0x2c]")]), Var("R0",Imm(64)), -UNSIGNED(64,Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(44,64)),LittleEndian(),32))), -Def(Tid(790, "%00000316"), Attrs([Attr("address","0x770"), -Attr("insn","ldp x29, x30, [sp], #0x30")]), Var("R29",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(795, "%0000031b"), Attrs([Attr("address","0x770"), -Attr("insn","ldp x29, x30, [sp], #0x30")]), Var("R30",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(799, "%0000031f"), Attrs([Attr("address","0x770"), -Attr("insn","ldp x29, x30, [sp], #0x30")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(48,64)))]), Jmps([Call(Tid(804, "%00000324"), - Attrs([Attr("address","0x774"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), -Sub(Tid(1_513, "@register_tm_clones"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x6C0")]), - "register_tm_clones", Args([Arg(Tid(1_563, "%0000061b"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("register_tm_clones_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(564, "@register_tm_clones"), Attrs([Attr("address","0x6C0")]), - Phis([]), Defs([Def(Tid(567, "%00000237"), Attrs([Attr("address","0x6C0"), -Attr("insn","adrp x0, #69632")]), Var("R0",Imm(64)), Int(69632,64)), -Def(Tid(573, "%0000023d"), Attrs([Attr("address","0x6C4"), -Attr("insn","add x0, x0, #0x10")]), Var("R0",Imm(64)), -PLUS(Var("R0",Imm(64)),Int(16,64))), Def(Tid(578, "%00000242"), - Attrs([Attr("address","0x6C8"), Attr("insn","adrp x1, #69632")]), - Var("R1",Imm(64)), Int(69632,64)), Def(Tid(584, "%00000248"), - Attrs([Attr("address","0x6CC"), Attr("insn","add x1, x1, #0x10")]), - Var("R1",Imm(64)), PLUS(Var("R1",Imm(64)),Int(16,64))), -Def(Tid(591, "%0000024f"), Attrs([Attr("address","0x6D0"), -Attr("insn","sub x1, x1, x0")]), Var("R1",Imm(64)), -PLUS(PLUS(Var("R1",Imm(64)),NOT(Var("R0",Imm(64)))),Int(1,64))), -Def(Tid(597, "%00000255"), Attrs([Attr("address","0x6D4"), -Attr("insn","lsr x2, x1, #63")]), Var("R2",Imm(64)), -Concat(Int(0,63),Extract(63,63,Var("R1",Imm(64))))), -Def(Tid(604, "%0000025c"), Attrs([Attr("address","0x6D8"), -Attr("insn","add x1, x2, x1, asr #3")]), Var("R1",Imm(64)), -PLUS(Var("R2",Imm(64)),ARSHIFT(Var("R1",Imm(64)),Int(3,3)))), -Def(Tid(610, "%00000262"), Attrs([Attr("address","0x6DC"), -Attr("insn","asr x1, x1, #1")]), Var("R1",Imm(64)), -SIGNED(64,Extract(63,1,Var("R1",Imm(64)))))]), -Jmps([Goto(Tid(616, "%00000268"), Attrs([Attr("address","0x6E0"), -Attr("insn","cbz x1, #0x18")]), EQ(Var("R1",Imm(64)),Int(0,64)), -Direct(Tid(614, "%00000266"))), Goto(Tid(1_543, "%00000607"), Attrs([]), - Int(1,1), Direct(Tid(865, "%00000361")))])), Blk(Tid(865, "%00000361"), - Attrs([Attr("address","0x6E4")]), Phis([]), Defs([Def(Tid(868, "%00000364"), - Attrs([Attr("address","0x6E4"), Attr("insn","adrp x2, #65536")]), - Var("R2",Imm(64)), Int(65536,64)), Def(Tid(875, "%0000036b"), - Attrs([Attr("address","0x6E8"), Attr("insn","ldr x2, [x2, #0xff8]")]), - Var("R2",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R2",Imm(64)),Int(4088,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(880, "%00000370"), Attrs([Attr("address","0x6EC"), -Attr("insn","cbz x2, #0xc")]), EQ(Var("R2",Imm(64)),Int(0,64)), -Direct(Tid(614, "%00000266"))), Goto(Tid(1_544, "%00000608"), Attrs([]), - Int(1,1), Direct(Tid(884, "%00000374")))])), Blk(Tid(614, "%00000266"), - Attrs([Attr("address","0x6F8")]), Phis([]), Defs([]), -Jmps([Call(Tid(622, "%0000026e"), Attrs([Attr("address","0x6F8"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))])), -Blk(Tid(884, "%00000374"), Attrs([Attr("address","0x6F0")]), Phis([]), -Defs([Def(Tid(888, "%00000378"), Attrs([Attr("address","0x6F0"), -Attr("insn","mov x16, x2")]), Var("R16",Imm(64)), Var("R2",Imm(64)))]), -Jmps([Call(Tid(893, "%0000037d"), Attrs([Attr("address","0x6F4"), -Attr("insn","br x16")]), Int(1,1), -(Indirect(Var("R16",Imm(64))),))]))]))]))) \ No newline at end of file diff --git a/src/test/correct/syscall/gcc/syscall.bir b/src/test/correct/syscall/gcc/syscall.bir deleted file mode 100644 index b49df5219..000000000 --- a/src/test/correct/syscall/gcc/syscall.bir +++ /dev/null @@ -1,248 +0,0 @@ -00000609: program -000005d5: sub __cxa_finalize(__cxa_finalize_result) -0000060a: __cxa_finalize_result :: out u32 = low:32[R0] - -0000035d: -00000465: R16 := 0x10000 -0000046c: R17 := mem[R16 + 0xFB0, el]:u64 -00000472: R16 := R16 + 0xFB0 -00000477: call R17 with noreturn - -000005d6: sub __do_global_dtors_aux(__do_global_dtors_aux_result) -0000060b: __do_global_dtors_aux_result :: out u32 = low:32[R0] - -00000272: -00000276: #3 := R31 - 0x20 -0000027c: mem := mem with [#3, el]:u64 <- R29 -00000282: mem := mem with [#3 + 8, el]:u64 <- R30 -00000286: R31 := #3 -0000028c: R29 := R31 -00000294: mem := mem with [R31 + 0x10, el]:u64 <- R19 -00000299: R19 := 0x11000 -000002a0: R0 := pad:64[mem[R19 + 0x10]] -000002a7: when 31:0[R0] <> 0 goto %000002a5 -000005ff: goto %00000326 - -00000326: -00000329: R0 := 0x10000 -00000330: R0 := mem[R0 + 0xFE0, el]:u64 -00000336: when R0 = 0 goto %00000334 -00000600: goto %0000034d - -0000034d: -00000350: R0 := 0x11000 -00000357: R0 := mem[R0 + 8, el]:u64 -0000035c: R30 := 0x730 -0000035f: call @__cxa_finalize with return %00000334 - -00000334: -0000033c: R30 := 0x734 -0000033e: call @deregister_tm_clones with return %00000340 - -00000340: -00000343: R0 := 1 -0000034b: mem := mem with [R19 + 0x10] <- 7:0[R0] -00000601: goto %000002a5 - -000002a5: -000002af: R19 := mem[R31 + 0x10, el]:u64 -000002b6: R29 := mem[R31, el]:u64 -000002bb: R30 := mem[R31 + 8, el]:u64 -000002bf: R31 := R31 + 0x20 -000002c4: call R30 with noreturn - -000005da: sub __libc_start_main(__libc_start_main_main, __libc_start_main_arg2, __libc_start_main_arg3, __libc_start_main_auxv, __libc_start_main_result) -0000060c: __libc_start_main_main :: in u64 = R0 -0000060d: __libc_start_main_arg2 :: in u32 = low:32[R1] -0000060e: __libc_start_main_arg3 :: in out u64 = R2 -0000060f: __libc_start_main_auxv :: in out u64 = R3 -00000610: __libc_start_main_result :: out u32 = low:32[R0] - -000001cb: -0000044f: R16 := 0x10000 -00000456: R17 := mem[R16 + 0xFA8, el]:u64 -0000045c: R16 := R16 + 0xFA8 -00000461: call R17 with noreturn - -000005db: sub _fini(_fini_result) -00000611: _fini_result :: out u32 = low:32[R0] - -0000001f: -00000025: #0 := R31 - 0x10 -0000002b: mem := mem with [#0, el]:u64 <- R29 -00000031: mem := mem with [#0 + 8, el]:u64 <- R30 -00000035: R31 := #0 -0000003b: R29 := R31 -00000042: R29 := mem[R31, el]:u64 -00000047: R30 := mem[R31 + 8, el]:u64 -0000004b: R31 := R31 + 0x10 -00000050: call R30 with noreturn - -000005dc: sub _init(_init_result) -00000612: _init_result :: out u32 = low:32[R0] - -0000052a: -00000530: #6 := R31 - 0x10 -00000536: mem := mem with [#6, el]:u64 <- R29 -0000053c: mem := mem with [#6 + 8, el]:u64 <- R30 -00000540: R31 := #6 -00000546: R29 := R31 -0000054b: R30 := 0x5C8 -0000054d: call @call_weak_fn with return %0000054f - -0000054f: -00000554: R29 := mem[R31, el]:u64 -00000559: R30 := mem[R31 + 8, el]:u64 -0000055d: R31 := R31 + 0x10 -00000562: call R30 with noreturn - -000005dd: sub _start(_start_result) -00000613: _start_result :: out u32 = low:32[R0] - -0000018c: -00000191: R29 := 0 -00000196: R30 := 0 -0000019c: R5 := R0 -000001a3: R1 := mem[R31, el]:u64 -000001a9: R2 := R31 + 8 -000001af: R6 := R31 -000001b4: R0 := 0x10000 -000001bb: R0 := mem[R0 + 0xFF0, el]:u64 -000001c0: R3 := 0 -000001c5: R4 := 0 -000001ca: R30 := 0x670 -000001cd: call @__libc_start_main with return %000001cf - -000001cf: -000001d2: R30 := 0x674 -000001d5: call @abort with return %00000602 - -00000602: -00000603: call @call_weak_fn with noreturn - -000005e0: sub abort() - - -000001d3: -000004a7: R16 := 0x10000 -000004ae: R17 := mem[R16 + 0xFC8, el]:u64 -000004b4: R16 := R16 + 0xFC8 -000004b9: call R17 with noreturn - -000005e1: sub call_weak_fn(call_weak_fn_result) -00000614: call_weak_fn_result :: out u32 = low:32[R0] - -000001d7: -000001da: R0 := 0x10000 -000001e1: R0 := mem[R0 + 0xFE8, el]:u64 -000001e7: when R0 = 0 goto %000001e5 -00000604: goto %0000039d - -000001e5: -000001ed: call R30 with noreturn - -0000039d: -000003a0: goto @__gmon_start__ - -0000039e: -00000491: R16 := 0x10000 -00000498: R17 := mem[R16 + 0xFC0, el]:u64 -0000049e: R16 := R16 + 0xFC0 -000004a3: call R17 with noreturn - -000005e3: sub deregister_tm_clones(deregister_tm_clones_result) -00000615: deregister_tm_clones_result :: out u32 = low:32[R0] - -000001f3: -000001f6: R0 := 0x11000 -000001fc: R0 := R0 + 0x10 -00000201: R1 := 0x11000 -00000207: R1 := R1 + 0x10 -0000020d: #1 := ~R0 -00000212: #2 := R1 + ~R0 -00000218: VF := extend:65[#2 + 1] <> extend:65[R1] + extend:65[#1] + 1 -0000021e: CF := pad:65[#2 + 1] <> pad:65[R1] + pad:65[#1] + 1 -00000222: ZF := #2 + 1 = 0 -00000226: NF := 63:63[#2 + 1] -0000022c: when ZF goto %0000022a -00000605: goto %0000037f - -0000037f: -00000382: R1 := 0x10000 -00000389: R1 := mem[R1 + 0xFD8, el]:u64 -0000038e: when R1 = 0 goto %0000022a -00000606: goto %00000392 - -0000022a: -00000232: call R30 with noreturn - -00000392: -00000396: R16 := R1 -0000039b: call R16 with noreturn - -000005e6: sub fork(fork_result) -00000616: fork_result :: out u32 = low:32[R0] - -000002fe: -0000047b: R16 := 0x10000 -00000482: R17 := mem[R16 + 0xFB8, el]:u64 -00000488: R16 := R16 + 0xFB8 -0000048d: call R17 with noreturn - -000005e7: sub frame_dummy(frame_dummy_result) -00000617: frame_dummy_result :: out u32 = low:32[R0] - -000002ca: -000002cc: call @register_tm_clones with noreturn - -000005e8: sub main(main_argc, main_argv, main_result) -00000618: main_argc :: in u32 = low:32[R0] -00000619: main_argv :: in out u64 = R1 -0000061a: main_result :: out u32 = low:32[R0] - -000002ce: -000002d2: #4 := R31 - 0x30 -000002d8: mem := mem with [#4, el]:u64 <- R29 -000002de: mem := mem with [#4 + 8, el]:u64 <- R30 -000002e2: R31 := #4 -000002e8: R29 := R31 -000002f0: mem := mem with [R31 + 0x1C, el]:u32 <- 31:0[R0] -000002f8: mem := mem with [R31 + 0x10, el]:u64 <- R1 -000002fd: R30 := 0x768 -00000300: call @fork with return %00000302 - -00000302: -00000308: mem := mem with [R31 + 0x2C, el]:u32 <- 31:0[R0] -0000030f: R0 := pad:64[mem[R31 + 0x2C, el]:u32] -00000316: R29 := mem[R31, el]:u64 -0000031b: R30 := mem[R31 + 8, el]:u64 -0000031f: R31 := R31 + 0x30 -00000324: call R30 with noreturn - -000005e9: sub register_tm_clones(register_tm_clones_result) -0000061b: register_tm_clones_result :: out u32 = low:32[R0] - -00000234: -00000237: R0 := 0x11000 -0000023d: R0 := R0 + 0x10 -00000242: R1 := 0x11000 -00000248: R1 := R1 + 0x10 -0000024f: R1 := R1 + ~R0 + 1 -00000255: R2 := 0.63:63[R1] -0000025c: R1 := R2 + (R1 ~>> 3) -00000262: R1 := extend:64[63:1[R1]] -00000268: when R1 = 0 goto %00000266 -00000607: goto %00000361 - -00000361: -00000364: R2 := 0x10000 -0000036b: R2 := mem[R2 + 0xFF8, el]:u64 -00000370: when R2 = 0 goto %00000266 -00000608: goto %00000374 - -00000266: -0000026e: call R30 with noreturn - -00000374: -00000378: R16 := R2 -0000037d: call R16 with noreturn diff --git a/src/test/correct/syscall/gcc/syscall.expected b/src/test/correct/syscall/gcc/syscall.expected index 6a7f26ce6..c544ee540 100644 --- a/src/test/correct/syscall/gcc/syscall.expected +++ b/src/test/correct/syscall/gcc/syscall.expected @@ -78,7 +78,7 @@ procedure {:extern} rely_reflexive(); procedure {:extern} guarantee_reflexive(); modifies Gamma_mem, mem; -procedure fork_1552(); +procedure fork(); modifies Gamma_R16, Gamma_R17, R16, R17; free requires (memory_load32_le(mem, 1932bv64) == 131073bv32); free requires (memory_load64_le(mem, 69008bv64) == 1872bv64); @@ -91,7 +91,7 @@ procedure fork_1552(); free ensures (memory_load64_le(mem, 69616bv64) == 1876bv64); free ensures (memory_load64_le(mem, 69640bv64) == 69640bv64); -procedure main_1876(); +procedure main(); modifies Gamma_R0, Gamma_R16, Gamma_R17, Gamma_R29, Gamma_R30, Gamma_R31, Gamma_stack, R0, R16, R17, R29, R30, R31, stack; free requires (memory_load64_le(mem, 69632bv64) == 0bv64); free requires (memory_load64_le(mem, 69640bv64) == 69640bv64); @@ -110,16 +110,16 @@ procedure main_1876(); free ensures (memory_load64_le(mem, 69616bv64) == 1876bv64); free ensures (memory_load64_le(mem, 69640bv64) == 69640bv64); -implementation main_1876() +implementation main() { var #4: bv64; + var $load$19: bv32; + var $load$20: bv64; + var $load$21: bv64; var Gamma_#4: bool; - var Gamma_load19: bool; - var Gamma_load20: bool; - var Gamma_load21: bool; - var load19: bv32; - var load20: bv64; - var load21: bv64; + var Gamma_$load$19: bool; + var Gamma_$load$20: bool; + var Gamma_$load$21: bool; lmain: assume {:captureState "lmain"} true; #4, Gamma_#4 := bvadd64(R31, 18446744073709551568bv64), Gamma_R31; @@ -134,22 +134,22 @@ implementation main_1876() stack, Gamma_stack := memory_store64_le(stack, bvadd64(R31, 16bv64), R1), gamma_store64(Gamma_stack, bvadd64(R31, 16bv64), Gamma_R1); assume {:captureState "%000002f8"} true; R30, Gamma_R30 := 1896bv64, true; - call fork_1552(); + call fork(); goto l00000302; l00000302: assume {:captureState "l00000302"} true; stack, Gamma_stack := memory_store32_le(stack, bvadd64(R31, 44bv64), R0[32:0]), gamma_store32(Gamma_stack, bvadd64(R31, 44bv64), Gamma_R0); assume {:captureState "%00000308"} true; - load19, Gamma_load19 := memory_load32_le(stack, bvadd64(R31, 44bv64)), gamma_load32(Gamma_stack, bvadd64(R31, 44bv64)); - R0, Gamma_R0 := zero_extend32_32(load19), Gamma_load19; - load20, Gamma_load20 := memory_load64_le(stack, R31), gamma_load64(Gamma_stack, R31); - R29, Gamma_R29 := load20, Gamma_load20; - load21, Gamma_load21 := memory_load64_le(stack, bvadd64(R31, 8bv64)), gamma_load64(Gamma_stack, bvadd64(R31, 8bv64)); - R30, Gamma_R30 := load21, Gamma_load21; + $load$19, Gamma_$load$19 := memory_load32_le(stack, bvadd64(R31, 44bv64)), gamma_load32(Gamma_stack, bvadd64(R31, 44bv64)); + R0, Gamma_R0 := zero_extend32_32($load$19), Gamma_$load$19; + $load$20, Gamma_$load$20 := memory_load64_le(stack, R31), gamma_load64(Gamma_stack, R31); + R29, Gamma_R29 := $load$20, Gamma_$load$20; + $load$21, Gamma_$load$21 := memory_load64_le(stack, bvadd64(R31, 8bv64)), gamma_load64(Gamma_stack, bvadd64(R31, 8bv64)); + R30, Gamma_R30 := $load$21, Gamma_$load$21; R31, Gamma_R31 := bvadd64(R31, 48bv64), Gamma_R31; - goto main_1876_basil_return; - main_1876_basil_return: - assume {:captureState "main_1876_basil_return"} true; + goto main_basil_return; + main_basil_return: + assume {:captureState "main_basil_return"} true; return; } diff --git a/src/test/correct/syscall/gcc/syscall.gts b/src/test/correct/syscall/gcc/syscall.gts deleted file mode 100644 index 914931a78..000000000 Binary files a/src/test/correct/syscall/gcc/syscall.gts and /dev/null differ diff --git a/src/test/correct/syscall/gcc/syscall.md5sum b/src/test/correct/syscall/gcc/syscall.md5sum new file mode 100644 index 000000000..a319a5159 --- /dev/null +++ b/src/test/correct/syscall/gcc/syscall.md5sum @@ -0,0 +1,5 @@ +bc7d481b8545da1d3c96cc2da751429b correct/syscall/gcc/a.out +a2879396e42f8fb262d5d8cd6670a3f9 correct/syscall/gcc/syscall.adt +c45a227a3cbaf73ca18d812cfe9f7d5f correct/syscall/gcc/syscall.bir +0242a97c6a37b43e2b2e2e84e1e6ceb0 correct/syscall/gcc/syscall.relf +f322b978ca9db1b61a31321a0b3f445c correct/syscall/gcc/syscall.gts diff --git a/src/test/correct/syscall/gcc/syscall.relf b/src/test/correct/syscall/gcc/syscall.relf deleted file mode 100644 index e6ad53443..000000000 --- a/src/test/correct/syscall/gcc/syscall.relf +++ /dev/null @@ -1,122 +0,0 @@ - -Relocation section '.rela.dyn' at offset 0x480 contains 8 entries: - Offset Info Type Symbol's Value Symbol's Name + Addend -0000000000010d90 0000000000000403 R_AARCH64_RELATIVE 750 -0000000000010d98 0000000000000403 R_AARCH64_RELATIVE 700 -0000000000010ff0 0000000000000403 R_AARCH64_RELATIVE 754 -0000000000011008 0000000000000403 R_AARCH64_RELATIVE 11008 -0000000000010fd8 0000000400000401 R_AARCH64_GLOB_DAT 0000000000000000 _ITM_deregisterTMCloneTable + 0 -0000000000010fe0 0000000500000401 R_AARCH64_GLOB_DAT 0000000000000000 __cxa_finalize@GLIBC_2.17 + 0 -0000000000010fe8 0000000700000401 R_AARCH64_GLOB_DAT 0000000000000000 __gmon_start__ + 0 -0000000000010ff8 0000000900000401 R_AARCH64_GLOB_DAT 0000000000000000 _ITM_registerTMCloneTable + 0 - -Relocation section '.rela.plt' at offset 0x540 contains 5 entries: - Offset Info Type Symbol's Value Symbol's Name + Addend -0000000000010fa8 0000000300000402 R_AARCH64_JUMP_SLOT 0000000000000000 __libc_start_main@GLIBC_2.34 + 0 -0000000000010fb0 0000000500000402 R_AARCH64_JUMP_SLOT 0000000000000000 __cxa_finalize@GLIBC_2.17 + 0 -0000000000010fb8 0000000600000402 R_AARCH64_JUMP_SLOT 0000000000000000 fork@GLIBC_2.17 + 0 -0000000000010fc0 0000000700000402 R_AARCH64_JUMP_SLOT 0000000000000000 __gmon_start__ + 0 -0000000000010fc8 0000000800000402 R_AARCH64_JUMP_SLOT 0000000000000000 abort@GLIBC_2.17 + 0 - -Symbol table '.dynsym' contains 10 entries: - Num: Value Size Type Bind Vis Ndx Name - 0: 0000000000000000 0 NOTYPE LOCAL DEFAULT UND - 1: 00000000000005b8 0 SECTION LOCAL DEFAULT 11 .init - 2: 0000000000011000 0 SECTION LOCAL DEFAULT 22 .data - 3: 0000000000000000 0 FUNC GLOBAL DEFAULT UND __libc_start_main@GLIBC_2.34 (2) - 4: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_deregisterTMCloneTable - 5: 0000000000000000 0 FUNC WEAK DEFAULT UND __cxa_finalize@GLIBC_2.17 (3) - 6: 0000000000000000 0 FUNC GLOBAL DEFAULT UND fork@GLIBC_2.17 (3) - 7: 0000000000000000 0 NOTYPE WEAK DEFAULT UND __gmon_start__ - 8: 0000000000000000 0 FUNC GLOBAL DEFAULT UND abort@GLIBC_2.17 (3) - 9: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_registerTMCloneTable - -Symbol table '.symtab' contains 87 entries: - Num: Value Size Type Bind Vis Ndx Name - 0: 0000000000000000 0 NOTYPE LOCAL DEFAULT UND - 1: 0000000000000238 0 SECTION LOCAL DEFAULT 1 .interp - 2: 0000000000000254 0 SECTION LOCAL DEFAULT 2 .note.gnu.build-id - 3: 0000000000000278 0 SECTION LOCAL DEFAULT 3 .note.ABI-tag - 4: 0000000000000298 0 SECTION LOCAL DEFAULT 4 .gnu.hash - 5: 00000000000002b8 0 SECTION LOCAL DEFAULT 5 .dynsym - 6: 00000000000003a8 0 SECTION LOCAL DEFAULT 6 .dynstr - 7: 000000000000043a 0 SECTION LOCAL DEFAULT 7 .gnu.version - 8: 0000000000000450 0 SECTION LOCAL DEFAULT 8 .gnu.version_r - 9: 0000000000000480 0 SECTION LOCAL DEFAULT 9 .rela.dyn - 10: 0000000000000540 0 SECTION LOCAL DEFAULT 10 .rela.plt - 11: 00000000000005b8 0 SECTION LOCAL DEFAULT 11 .init - 12: 00000000000005d0 0 SECTION LOCAL DEFAULT 12 .plt - 13: 0000000000000640 0 SECTION LOCAL DEFAULT 13 .text - 14: 0000000000000778 0 SECTION LOCAL DEFAULT 14 .fini - 15: 000000000000078c 0 SECTION LOCAL DEFAULT 15 .rodata - 16: 0000000000000790 0 SECTION LOCAL DEFAULT 16 .eh_frame_hdr - 17: 00000000000007d0 0 SECTION LOCAL DEFAULT 17 .eh_frame - 18: 0000000000010d90 0 SECTION LOCAL DEFAULT 18 .init_array - 19: 0000000000010d98 0 SECTION LOCAL DEFAULT 19 .fini_array - 20: 0000000000010da0 0 SECTION LOCAL DEFAULT 20 .dynamic - 21: 0000000000010f90 0 SECTION LOCAL DEFAULT 21 .got - 22: 0000000000011000 0 SECTION LOCAL DEFAULT 22 .data - 23: 0000000000011010 0 SECTION LOCAL DEFAULT 23 .bss - 24: 0000000000000000 0 SECTION LOCAL DEFAULT 24 .comment - 25: 0000000000000000 0 FILE LOCAL DEFAULT ABS Scrt1.o - 26: 0000000000000278 0 NOTYPE LOCAL DEFAULT 3 $d - 27: 0000000000000278 32 OBJECT LOCAL DEFAULT 3 __abi_tag - 28: 0000000000000640 0 NOTYPE LOCAL DEFAULT 13 $x - 29: 00000000000007e4 0 NOTYPE LOCAL DEFAULT 17 $d - 30: 000000000000078c 0 NOTYPE LOCAL DEFAULT 15 $d - 31: 0000000000000000 0 FILE LOCAL DEFAULT ABS crti.o - 32: 0000000000000674 0 NOTYPE LOCAL DEFAULT 13 $x - 33: 0000000000000674 20 FUNC LOCAL DEFAULT 13 call_weak_fn - 34: 00000000000005b8 0 NOTYPE LOCAL DEFAULT 11 $x - 35: 0000000000000778 0 NOTYPE LOCAL DEFAULT 14 $x - 36: 0000000000000000 0 FILE LOCAL DEFAULT ABS crtn.o - 37: 00000000000005c8 0 NOTYPE LOCAL DEFAULT 11 $x - 38: 0000000000000784 0 NOTYPE LOCAL DEFAULT 14 $x - 39: 0000000000000000 0 FILE LOCAL DEFAULT ABS crtstuff.c - 40: 0000000000000690 0 NOTYPE LOCAL DEFAULT 13 $x - 41: 0000000000000690 0 FUNC LOCAL DEFAULT 13 deregister_tm_clones - 42: 00000000000006c0 0 FUNC LOCAL DEFAULT 13 register_tm_clones - 43: 0000000000011008 0 NOTYPE LOCAL DEFAULT 22 $d - 44: 0000000000000700 0 FUNC LOCAL DEFAULT 13 __do_global_dtors_aux - 45: 0000000000011010 1 OBJECT LOCAL DEFAULT 23 completed.0 - 46: 0000000000010d98 0 NOTYPE LOCAL DEFAULT 19 $d - 47: 0000000000010d98 0 OBJECT LOCAL DEFAULT 19 __do_global_dtors_aux_fini_array_entry - 48: 0000000000000750 0 FUNC LOCAL DEFAULT 13 frame_dummy - 49: 0000000000010d90 0 NOTYPE LOCAL DEFAULT 18 $d - 50: 0000000000010d90 0 OBJECT LOCAL DEFAULT 18 __frame_dummy_init_array_entry - 51: 00000000000007f8 0 NOTYPE LOCAL DEFAULT 17 $d - 52: 0000000000011010 0 NOTYPE LOCAL DEFAULT 23 $d - 53: 0000000000000000 0 FILE LOCAL DEFAULT ABS syscall.c - 54: 0000000000000754 0 NOTYPE LOCAL DEFAULT 13 $x - 55: 0000000000000858 0 NOTYPE LOCAL DEFAULT 17 $d - 56: 0000000000000000 0 FILE LOCAL DEFAULT ABS crtstuff.c - 57: 0000000000000878 0 NOTYPE LOCAL DEFAULT 17 $d - 58: 0000000000000878 0 OBJECT LOCAL DEFAULT 17 __FRAME_END__ - 59: 0000000000000000 0 FILE LOCAL DEFAULT ABS - 60: 0000000000010da0 0 OBJECT LOCAL DEFAULT ABS _DYNAMIC - 61: 0000000000000790 0 NOTYPE LOCAL DEFAULT 16 __GNU_EH_FRAME_HDR - 62: 0000000000010fd0 0 OBJECT LOCAL DEFAULT ABS _GLOBAL_OFFSET_TABLE_ - 63: 00000000000005d0 0 NOTYPE LOCAL DEFAULT 12 $x - 64: 0000000000000000 0 FUNC GLOBAL DEFAULT UND __libc_start_main@GLIBC_2.34 - 65: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_deregisterTMCloneTable - 66: 0000000000011000 0 NOTYPE WEAK DEFAULT 22 data_start - 67: 0000000000011010 0 NOTYPE GLOBAL DEFAULT 23 __bss_start__ - 68: 0000000000000000 0 FUNC WEAK DEFAULT UND __cxa_finalize@GLIBC_2.17 - 69: 0000000000011018 0 NOTYPE GLOBAL DEFAULT 23 _bss_end__ - 70: 0000000000000000 0 FUNC GLOBAL DEFAULT UND fork@GLIBC_2.17 - 71: 0000000000011010 0 NOTYPE GLOBAL DEFAULT 22 _edata - 72: 0000000000000778 0 FUNC GLOBAL HIDDEN 14 _fini - 73: 0000000000011018 0 NOTYPE GLOBAL DEFAULT 23 __bss_end__ - 74: 0000000000011000 0 NOTYPE GLOBAL DEFAULT 22 __data_start - 75: 0000000000000000 0 NOTYPE WEAK DEFAULT UND __gmon_start__ - 76: 0000000000011008 0 OBJECT GLOBAL HIDDEN 22 __dso_handle - 77: 0000000000000000 0 FUNC GLOBAL DEFAULT UND abort@GLIBC_2.17 - 78: 000000000000078c 4 OBJECT GLOBAL DEFAULT 15 _IO_stdin_used - 79: 0000000000011018 0 NOTYPE GLOBAL DEFAULT 23 _end - 80: 0000000000000640 52 FUNC GLOBAL DEFAULT 13 _start - 81: 0000000000011018 0 NOTYPE GLOBAL DEFAULT 23 __end__ - 82: 0000000000011010 0 NOTYPE GLOBAL DEFAULT 23 __bss_start - 83: 0000000000000754 36 FUNC GLOBAL DEFAULT 13 main - 84: 0000000000011010 0 OBJECT GLOBAL HIDDEN 22 __TMC_END__ - 85: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_registerTMCloneTable - 86: 00000000000005b8 0 FUNC GLOBAL HIDDEN 11 _init diff --git a/src/test/correct/syscall/gcc/syscall_gtirb.expected b/src/test/correct/syscall/gcc/syscall_gtirb.expected index b2419d0f4..ab4bf63f8 100644 --- a/src/test/correct/syscall/gcc/syscall_gtirb.expected +++ b/src/test/correct/syscall/gcc/syscall_gtirb.expected @@ -1,44 +1,20 @@ -var {:extern} Gamma_R0: bool; -var {:extern} Gamma_R1: bool; var {:extern} Gamma_R16: bool; var {:extern} Gamma_R17: bool; -var {:extern} Gamma_R29: bool; -var {:extern} Gamma_R30: bool; -var {:extern} Gamma_R31: bool; var {:extern} Gamma_mem: [bv64]bool; -var {:extern} Gamma_stack: [bv64]bool; -var {:extern} R0: bv64; -var {:extern} R1: bv64; var {:extern} R16: bv64; var {:extern} R17: bv64; -var {:extern} R29: bv64; -var {:extern} R30: bv64; -var {:extern} R31: bv64; var {:extern} mem: [bv64]bv8; -var {:extern} stack: [bv64]bv8; const {:extern} $_IO_stdin_used_addr: bv64; -axiom ($_IO_stdin_used_addr == 1932bv64); +axiom ($_IO_stdin_used_addr == 4196376bv64); function {:extern} L(mem$in: [bv64]bv8, index: bv64) returns (bool) { false } function {:extern} {:bvbuiltin "bvadd"} bvadd64(bv64, bv64) returns (bv64); -function {:extern} gamma_load32(gammaMap: [bv64]bool, index: bv64) returns (bool) { - (gammaMap[bvadd64(index, 3bv64)] && (gammaMap[bvadd64(index, 2bv64)] && (gammaMap[bvadd64(index, 1bv64)] && gammaMap[index]))) -} - function {:extern} gamma_load64(gammaMap: [bv64]bool, index: bv64) returns (bool) { (gammaMap[bvadd64(index, 7bv64)] && (gammaMap[bvadd64(index, 6bv64)] && (gammaMap[bvadd64(index, 5bv64)] && (gammaMap[bvadd64(index, 4bv64)] && (gammaMap[bvadd64(index, 3bv64)] && (gammaMap[bvadd64(index, 2bv64)] && (gammaMap[bvadd64(index, 1bv64)] && gammaMap[index]))))))) } -function {:extern} gamma_store32(gammaMap: [bv64]bool, index: bv64, value: bool) returns ([bv64]bool) { - gammaMap[index := value][bvadd64(index, 1bv64) := value][bvadd64(index, 2bv64) := value][bvadd64(index, 3bv64) := value] -} - -function {:extern} gamma_store64(gammaMap: [bv64]bool, index: bv64, value: bool) returns ([bv64]bool) { - gammaMap[index := value][bvadd64(index, 1bv64) := value][bvadd64(index, 2bv64) := value][bvadd64(index, 3bv64) := value][bvadd64(index, 4bv64) := value][bvadd64(index, 5bv64) := value][bvadd64(index, 6bv64) := value][bvadd64(index, 7bv64) := value] -} - function {:extern} memory_load32_le(memory: [bv64]bv8, index: bv64) returns (bv32) { (memory[bvadd64(index, 3bv64)] ++ (memory[bvadd64(index, 2bv64)] ++ (memory[bvadd64(index, 1bv64)] ++ memory[index]))) } @@ -47,24 +23,11 @@ function {:extern} memory_load64_le(memory: [bv64]bv8, index: bv64) returns (bv6 (memory[bvadd64(index, 7bv64)] ++ (memory[bvadd64(index, 6bv64)] ++ (memory[bvadd64(index, 5bv64)] ++ (memory[bvadd64(index, 4bv64)] ++ (memory[bvadd64(index, 3bv64)] ++ (memory[bvadd64(index, 2bv64)] ++ (memory[bvadd64(index, 1bv64)] ++ memory[index]))))))) } -function {:extern} memory_store32_le(memory: [bv64]bv8, index: bv64, value: bv32) returns ([bv64]bv8) { - memory[index := value[8:0]][bvadd64(index, 1bv64) := value[16:8]][bvadd64(index, 2bv64) := value[24:16]][bvadd64(index, 3bv64) := value[32:24]] -} - -function {:extern} memory_store64_le(memory: [bv64]bv8, index: bv64, value: bv64) returns ([bv64]bv8) { - memory[index := value[8:0]][bvadd64(index, 1bv64) := value[16:8]][bvadd64(index, 2bv64) := value[24:16]][bvadd64(index, 3bv64) := value[32:24]][bvadd64(index, 4bv64) := value[40:32]][bvadd64(index, 5bv64) := value[48:40]][bvadd64(index, 6bv64) := value[56:48]][bvadd64(index, 7bv64) := value[64:56]] -} - -function {:extern} {:bvbuiltin "zero_extend 32"} zero_extend32_32(bv32) returns (bv64); procedure {:extern} rely(); modifies Gamma_mem, mem; ensures (Gamma_mem == old(Gamma_mem)); ensures (mem == old(mem)); - free ensures (memory_load32_le(mem, 1932bv64) == 131073bv32); - free ensures (memory_load64_le(mem, 69008bv64) == 1872bv64); - free ensures (memory_load64_le(mem, 69016bv64) == 1792bv64); - free ensures (memory_load64_le(mem, 69616bv64) == 1876bv64); - free ensures (memory_load64_le(mem, 69640bv64) == 69640bv64); + free ensures (memory_load32_le(mem, 4196376bv64) == 131073bv32); procedure {:extern} rely_transitive(); modifies Gamma_mem, mem; @@ -82,108 +45,42 @@ procedure {:extern} rely_reflexive(); procedure {:extern} guarantee_reflexive(); modifies Gamma_mem, mem; -procedure FUN_610_1552(); +procedure .L_400680(); modifies Gamma_R16, Gamma_R17, Gamma_mem, R16, R17, mem; - free requires (memory_load32_le(mem, 1932bv64) == 131073bv32); - free requires (memory_load64_le(mem, 69008bv64) == 1872bv64); - free requires (memory_load64_le(mem, 69016bv64) == 1792bv64); - free requires (memory_load64_le(mem, 69616bv64) == 1876bv64); - free requires (memory_load64_le(mem, 69640bv64) == 69640bv64); - free ensures (memory_load32_le(mem, 1932bv64) == 131073bv32); - free ensures (memory_load64_le(mem, 69008bv64) == 1872bv64); - free ensures (memory_load64_le(mem, 69016bv64) == 1792bv64); - free ensures (memory_load64_le(mem, 69616bv64) == 1876bv64); - free ensures (memory_load64_le(mem, 69640bv64) == 69640bv64); + free requires (memory_load32_le(mem, 4196376bv64) == 131073bv32); + free ensures (memory_load32_le(mem, 4196376bv64) == 131073bv32); -implementation FUN_610_1552() +implementation .L_400680() { - var Gamma_load12: bool; - var load12: bv64; - FUN_610_1552__0__w_DgyGR~RVC8g46zYhiiEg: - assume {:captureState "FUN_610_1552__0__w_DgyGR~RVC8g46zYhiiEg"} true; - R16, Gamma_R16 := 65536bv64, true; + var $load5: bv64; + var Gamma_$load5: bool; + $.L_400680$__0__$UfNyH7KvQiam2F847lIf0g: + assume {:captureState "$.L_400680$__0__$UfNyH7KvQiam2F847lIf0g"} true; + R16, Gamma_R16 := 4321280bv64, true; call rely(); - load12, Gamma_load12 := memory_load64_le(mem, bvadd64(R16, 4024bv64)), (gamma_load64(Gamma_mem, bvadd64(R16, 4024bv64)) || L(mem, bvadd64(R16, 4024bv64))); - R17, Gamma_R17 := load12, Gamma_load12; - R16, Gamma_R16 := bvadd64(R16, 4024bv64), Gamma_R16; + $load5, Gamma_$load5 := memory_load64_le(mem, bvadd64(R16, 4040bv64)), (gamma_load64(Gamma_mem, bvadd64(R16, 4040bv64)) || L(mem, bvadd64(R16, 4040bv64))); + R17, Gamma_R17 := $load5, Gamma_$load5; + R16, Gamma_R16 := bvadd64(R16, 4040bv64), Gamma_R16; call fork(); - goto FUN_610_1552_basil_return; - FUN_610_1552_basil_return: - assume {:captureState "FUN_610_1552_basil_return"} true; - return; + assume false; } -procedure main_1876(); - modifies Gamma_R0, Gamma_R16, Gamma_R17, Gamma_R29, Gamma_R30, Gamma_R31, Gamma_mem, Gamma_stack, R0, R16, R17, R29, R30, R31, mem, stack; - free requires (memory_load64_le(mem, 69632bv64) == 0bv64); - free requires (memory_load64_le(mem, 69640bv64) == 69640bv64); - free requires (memory_load32_le(mem, 1932bv64) == 131073bv32); - free requires (memory_load64_le(mem, 69008bv64) == 1872bv64); - free requires (memory_load64_le(mem, 69016bv64) == 1792bv64); - free requires (memory_load64_le(mem, 69616bv64) == 1876bv64); - free requires (memory_load64_le(mem, 69640bv64) == 69640bv64); - free ensures (Gamma_R29 == old(Gamma_R29)); - free ensures (Gamma_R31 == old(Gamma_R31)); - free ensures (R29 == old(R29)); - free ensures (R31 == old(R31)); - free ensures (memory_load32_le(mem, 1932bv64) == 131073bv32); - free ensures (memory_load64_le(mem, 69008bv64) == 1872bv64); - free ensures (memory_load64_le(mem, 69016bv64) == 1792bv64); - free ensures (memory_load64_le(mem, 69616bv64) == 1876bv64); - free ensures (memory_load64_le(mem, 69640bv64) == 69640bv64); +procedure main(); + modifies Gamma_R16, Gamma_R17, Gamma_mem, R16, R17, mem; + free requires (memory_load64_le(mem, 4325376bv64) == 0bv64); + free requires (memory_load64_le(mem, 4325384bv64) == 0bv64); + free requires (memory_load32_le(mem, 4196376bv64) == 131073bv32); + free ensures (memory_load32_le(mem, 4196376bv64) == 131073bv32); -implementation main_1876() +implementation main() { - var Cse0__5_0_0: bv64; - var Gamma_Cse0__5_0_0: bool; - var Gamma_load20: bool; - var Gamma_load21: bool; - var Gamma_load22: bool; - var load20: bv32; - var load21: bv64; - var load22: bv64; - main_1876__0__B56wTC6STE~1xacxBcjikg: - assume {:captureState "main_1876__0__B56wTC6STE~1xacxBcjikg"} true; - Cse0__5_0_0, Gamma_Cse0__5_0_0 := bvadd64(R31, 18446744073709551568bv64), Gamma_R31; - stack, Gamma_stack := memory_store64_le(stack, Cse0__5_0_0, R29), gamma_store64(Gamma_stack, Cse0__5_0_0, Gamma_R29); - assume {:captureState "1876_1"} true; - stack, Gamma_stack := memory_store64_le(stack, bvadd64(Cse0__5_0_0, 8bv64), R30), gamma_store64(Gamma_stack, bvadd64(Cse0__5_0_0, 8bv64), Gamma_R30); - assume {:captureState "1876_2"} true; - R31, Gamma_R31 := Cse0__5_0_0, Gamma_Cse0__5_0_0; - R29, Gamma_R29 := R31, Gamma_R31; - stack, Gamma_stack := memory_store32_le(stack, bvadd64(R31, 28bv64), R0[32:0]), gamma_store32(Gamma_stack, bvadd64(R31, 28bv64), Gamma_R0); - assume {:captureState "1884_0"} true; - stack, Gamma_stack := memory_store64_le(stack, bvadd64(R31, 16bv64), R1), gamma_store64(Gamma_stack, bvadd64(R31, 16bv64), Gamma_R1); - assume {:captureState "1888_0"} true; - R30, Gamma_R30 := 1896bv64, true; - call FUN_610_1552(); - goto main_1876__1__gXScKm7ETUm9MNcMqMU~Og; - main_1876__1__gXScKm7ETUm9MNcMqMU~Og: - assume {:captureState "main_1876__1__gXScKm7ETUm9MNcMqMU~Og"} true; - stack, Gamma_stack := memory_store32_le(stack, bvadd64(R31, 44bv64), R0[32:0]), gamma_store32(Gamma_stack, bvadd64(R31, 44bv64), Gamma_R0); - assume {:captureState "1896_0"} true; - load20, Gamma_load20 := memory_load32_le(stack, bvadd64(R31, 44bv64)), gamma_load32(Gamma_stack, bvadd64(R31, 44bv64)); - R0, Gamma_R0 := zero_extend32_32(load20), Gamma_load20; - load21, Gamma_load21 := memory_load64_le(stack, R31), gamma_load64(Gamma_stack, R31); - R29, Gamma_R29 := load21, Gamma_load21; - load22, Gamma_load22 := memory_load64_le(stack, bvadd64(R31, 8bv64)), gamma_load64(Gamma_stack, bvadd64(R31, 8bv64)); - R30, Gamma_R30 := load22, Gamma_load22; - R31, Gamma_R31 := bvadd64(R31, 48bv64), Gamma_R31; - goto main_1876_basil_return; - main_1876_basil_return: - assume {:captureState "main_1876_basil_return"} true; - return; + $main$__0__$YmNxI7RsS_6TZy3HTKzvWg: + assume {:captureState "$main$__0__$YmNxI7RsS_6TZy3HTKzvWg"} true; + call .L_400680(); + assume false; } procedure fork(); - free requires (memory_load32_le(mem, 1932bv64) == 131073bv32); - free requires (memory_load64_le(mem, 69008bv64) == 1872bv64); - free requires (memory_load64_le(mem, 69016bv64) == 1792bv64); - free requires (memory_load64_le(mem, 69616bv64) == 1876bv64); - free requires (memory_load64_le(mem, 69640bv64) == 69640bv64); - free ensures (memory_load32_le(mem, 1932bv64) == 131073bv32); - free ensures (memory_load64_le(mem, 69008bv64) == 1872bv64); - free ensures (memory_load64_le(mem, 69016bv64) == 1792bv64); - free ensures (memory_load64_le(mem, 69616bv64) == 1876bv64); - free ensures (memory_load64_le(mem, 69640bv64) == 69640bv64); + free requires (memory_load32_le(mem, 4196376bv64) == 131073bv32); + free ensures (memory_load32_le(mem, 4196376bv64) == 131073bv32); diff --git a/src/test/correct/syscall/gcc_O2/syscall.adt b/src/test/correct/syscall/gcc_O2/syscall.adt deleted file mode 100644 index bceaf2fe8..000000000 --- a/src/test/correct/syscall/gcc_O2/syscall.adt +++ /dev/null @@ -1,489 +0,0 @@ -Project(Attrs([Attr("filename","\"gcc_O2/syscall.out\""), -Attr("image-specification","(declare abi (name str))\n(declare arch (name str))\n(declare base-address (addr int))\n(declare bias (off int))\n(declare bits (size int))\n(declare code-region (addr int) (size int) (off int))\n(declare code-start (addr int))\n(declare entry-point (addr int))\n(declare external-reference (addr int) (name str))\n(declare format (name str))\n(declare is-executable (flag bool))\n(declare is-little-endian (flag bool))\n(declare llvm:base-address (addr int))\n(declare llvm:code-entry (name str) (off int) (size int))\n(declare llvm:coff-import-library (name str))\n(declare llvm:coff-virtual-section-header (name str) (addr int) (size int))\n(declare llvm:elf-program-header (name str) (off int) (size int))\n(declare llvm:elf-program-header-flags (name str) (ld bool) (r bool) \n (w bool) (x bool))\n(declare llvm:elf-virtual-program-header (name str) (addr int) (size int))\n(declare llvm:entry-point (addr int))\n(declare llvm:macho-symbol (name str) (value int))\n(declare llvm:name-reference (at int) (name str))\n(declare llvm:relocation (at int) (addr int))\n(declare llvm:section-entry (name str) (addr int) (size int) (off int))\n(declare llvm:section-flags (name str) (r bool) (w bool) (x bool))\n(declare llvm:segment-command (name str) (off int) (size int))\n(declare llvm:segment-command-flags (name str) (r bool) (w bool) (x bool))\n(declare llvm:symbol-entry (name str) (addr int) (size int) (off int)\n (value int))\n(declare llvm:virtual-segment-command (name str) (addr int) (size int))\n(declare mapped (addr int) (size int) (off int))\n(declare named-region (addr int) (size int) (name str))\n(declare named-symbol (addr int) (name str))\n(declare require (name str))\n(declare section (addr int) (size int))\n(declare segment (addr int) (size int) (r bool) (w bool) (x bool))\n(declare subarch (name str))\n(declare symbol-chunk (addr int) (size int) (root int))\n(declare symbol-value (addr int) (value int))\n(declare system (name str))\n(declare vendor (name str))\n\n(abi unknown)\n(arch aarch64)\n(base-address 0)\n(bias 0)\n(bits 64)\n(code-region 1940 20 1940)\n(code-region 1600 340 1600)\n(code-region 1488 112 1488)\n(code-region 1464 24 1464)\n(code-start 1716)\n(code-start 1664)\n(code-start 1600)\n(entry-point 1664)\n(external-reference 69592 _ITM_deregisterTMCloneTable)\n(external-reference 69600 __cxa_finalize)\n(external-reference 69608 __gmon_start__)\n(external-reference 69624 _ITM_registerTMCloneTable)\n(external-reference 69544 __libc_start_main)\n(external-reference 69552 __cxa_finalize)\n(external-reference 69560 fork)\n(external-reference 69568 __gmon_start__)\n(external-reference 69576 abort)\n(format elf)\n(is-executable true)\n(is-little-endian true)\n(llvm:base-address 0)\n(llvm:code-entry abort 0 0)\n(llvm:code-entry fork 0 0)\n(llvm:code-entry __cxa_finalize 0 0)\n(llvm:code-entry __libc_start_main 0 0)\n(llvm:code-entry _init 1464 0)\n(llvm:code-entry main 1600 4)\n(llvm:code-entry _start 1664 52)\n(llvm:code-entry abort@GLIBC_2.17 0 0)\n(llvm:code-entry _fini 1940 0)\n(llvm:code-entry fork@GLIBC_2.17 0 0)\n(llvm:code-entry __cxa_finalize@GLIBC_2.17 0 0)\n(llvm:code-entry __libc_start_main@GLIBC_2.34 0 0)\n(llvm:code-entry frame_dummy 1936 0)\n(llvm:code-entry __do_global_dtors_aux 1856 0)\n(llvm:code-entry register_tm_clones 1792 0)\n(llvm:code-entry deregister_tm_clones 1744 0)\n(llvm:code-entry call_weak_fn 1716 20)\n(llvm:code-entry .fini 1940 20)\n(llvm:code-entry .text 1600 340)\n(llvm:code-entry .plt 1488 112)\n(llvm:code-entry .init 1464 24)\n(llvm:elf-program-header 08 3472 624)\n(llvm:elf-program-header 07 0 0)\n(llvm:elf-program-header 06 1964 60)\n(llvm:elf-program-header 05 596 68)\n(llvm:elf-program-header 04 3488 496)\n(llvm:elf-program-header 03 3472 640)\n(llvm:elf-program-header 02 0 2184)\n(llvm:elf-program-header 01 568 27)\n(llvm:elf-program-header 00 64 504)\n(llvm:elf-program-header-flags 08 false true false false)\n(llvm:elf-program-header-flags 07 false true true false)\n(llvm:elf-program-header-flags 06 false true false false)\n(llvm:elf-program-header-flags 05 false true false false)\n(llvm:elf-program-header-flags 04 false true true false)\n(llvm:elf-program-header-flags 03 true true true false)\n(llvm:elf-program-header-flags 02 true true false true)\n(llvm:elf-program-header-flags 01 false true false false)\n(llvm:elf-program-header-flags 00 false true false false)\n(llvm:elf-virtual-program-header 08 69008 624)\n(llvm:elf-virtual-program-header 07 0 0)\n(llvm:elf-virtual-program-header 06 1964 60)\n(llvm:elf-virtual-program-header 05 596 68)\n(llvm:elf-virtual-program-header 04 69024 496)\n(llvm:elf-virtual-program-header 03 69008 648)\n(llvm:elf-virtual-program-header 02 0 2184)\n(llvm:elf-virtual-program-header 01 568 27)\n(llvm:elf-virtual-program-header 00 64 504)\n(llvm:entry-point 1664)\n(llvm:name-reference 69576 abort)\n(llvm:name-reference 69568 __gmon_start__)\n(llvm:name-reference 69560 fork)\n(llvm:name-reference 69552 __cxa_finalize)\n(llvm:name-reference 69544 __libc_start_main)\n(llvm:name-reference 69624 _ITM_registerTMCloneTable)\n(llvm:name-reference 69608 __gmon_start__)\n(llvm:name-reference 69600 __cxa_finalize)\n(llvm:name-reference 69592 _ITM_deregisterTMCloneTable)\n(llvm:section-entry .shstrtab 0 250 6807)\n(llvm:section-entry .strtab 0 559 6248)\n(llvm:section-entry .symtab 0 2088 4160)\n(llvm:section-entry .comment 0 43 4112)\n(llvm:section-entry .bss 69648 8 4112)\n(llvm:section-entry .data 69632 16 4096)\n(llvm:section-entry .got 69520 112 3984)\n(llvm:section-entry .dynamic 69024 496 3488)\n(llvm:section-entry .fini_array 69016 8 3480)\n(llvm:section-entry .init_array 69008 8 3472)\n(llvm:section-entry .eh_frame 2024 160 2024)\n(llvm:section-entry .eh_frame_hdr 1964 60 1964)\n(llvm:section-entry .rodata 1960 4 1960)\n(llvm:section-entry .fini 1940 20 1940)\n(llvm:section-entry .text 1600 340 1600)\n(llvm:section-entry .plt 1488 112 1488)\n(llvm:section-entry .init 1464 24 1464)\n(llvm:section-entry .rela.plt 1344 120 1344)\n(llvm:section-entry .rela.dyn 1152 192 1152)\n(llvm:section-entry .gnu.version_r 1104 48 1104)\n(llvm:section-entry .gnu.version 1082 20 1082)\n(llvm:section-entry .dynstr 936 146 936)\n(llvm:section-entry .dynsym 696 240 696)\n(llvm:section-entry .gnu.hash 664 28 664)\n(llvm:section-entry .note.ABI-tag 632 32 632)\n(llvm:section-entry .note.gnu.build-id 596 36 596)\n(llvm:section-entry .interp 568 27 568)\n(llvm:section-flags .shstrtab true false false)\n(llvm:section-flags .strtab true false false)\n(llvm:section-flags .symtab true false false)\n(llvm:section-flags .comment true false false)\n(llvm:section-flags .bss true true false)\n(llvm:section-flags .data true true false)\n(llvm:section-flags .got true true false)\n(llvm:section-flags .dynamic true true false)\n(llvm:section-flags .fini_array true true false)\n(llvm:section-flags .init_array true true false)\n(llvm:section-flags .eh_frame true false false)\n(llvm:section-flags .eh_frame_hdr true false false)\n(llvm:section-flags .rodata true false false)\n(llvm:section-flags .fini true false true)\n(llvm:section-flags .text true false true)\n(llvm:section-flags .plt true false true)\n(llvm:section-flags .init true false true)\n(llvm:section-flags .rela.plt true false false)\n(llvm:section-flags .rela.dyn true false false)\n(llvm:section-flags .gnu.version_r true false false)\n(llvm:section-flags .gnu.version true false false)\n(llvm:section-flags .dynstr true false false)\n(llvm:section-flags .dynsym true false false)\n(llvm:section-flags .gnu.hash true false false)\n(llvm:section-flags .note.ABI-tag true false false)\n(llvm:section-flags .note.gnu.build-id true false false)\n(llvm:section-flags .interp true false false)\n(llvm:symbol-entry abort 0 0 0 0)\n(llvm:symbol-entry fork 0 0 0 0)\n(llvm:symbol-entry __cxa_finalize 0 0 0 0)\n(llvm:symbol-entry __libc_start_main 0 0 0 0)\n(llvm:symbol-entry _init 1464 0 1464 1464)\n(llvm:symbol-entry main 1600 4 1600 1600)\n(llvm:symbol-entry _start 1664 52 1664 1664)\n(llvm:symbol-entry abort@GLIBC_2.17 0 0 0 0)\n(llvm:symbol-entry _fini 1940 0 1940 1940)\n(llvm:symbol-entry fork@GLIBC_2.17 0 0 0 0)\n(llvm:symbol-entry __cxa_finalize@GLIBC_2.17 0 0 0 0)\n(llvm:symbol-entry __libc_start_main@GLIBC_2.34 0 0 0 0)\n(llvm:symbol-entry frame_dummy 1936 0 1936 1936)\n(llvm:symbol-entry __do_global_dtors_aux 1856 0 1856 1856)\n(llvm:symbol-entry register_tm_clones 1792 0 1792 1792)\n(llvm:symbol-entry deregister_tm_clones 1744 0 1744 1744)\n(llvm:symbol-entry call_weak_fn 1716 20 1716 1716)\n(mapped 0 2184 0)\n(mapped 69008 640 3472)\n(named-region 0 2184 02)\n(named-region 69008 648 03)\n(named-region 568 27 .interp)\n(named-region 596 36 .note.gnu.build-id)\n(named-region 632 32 .note.ABI-tag)\n(named-region 664 28 .gnu.hash)\n(named-region 696 240 .dynsym)\n(named-region 936 146 .dynstr)\n(named-region 1082 20 .gnu.version)\n(named-region 1104 48 .gnu.version_r)\n(named-region 1152 192 .rela.dyn)\n(named-region 1344 120 .rela.plt)\n(named-region 1464 24 .init)\n(named-region 1488 112 .plt)\n(named-region 1600 340 .text)\n(named-region 1940 20 .fini)\n(named-region 1960 4 .rodata)\n(named-region 1964 60 .eh_frame_hdr)\n(named-region 2024 160 .eh_frame)\n(named-region 69008 8 .init_array)\n(named-region 69016 8 .fini_array)\n(named-region 69024 496 .dynamic)\n(named-region 69520 112 .got)\n(named-region 69632 16 .data)\n(named-region 69648 8 .bss)\n(named-region 0 43 .comment)\n(named-region 0 2088 .symtab)\n(named-region 0 559 .strtab)\n(named-region 0 250 .shstrtab)\n(named-symbol 1716 call_weak_fn)\n(named-symbol 1744 deregister_tm_clones)\n(named-symbol 1792 register_tm_clones)\n(named-symbol 1856 __do_global_dtors_aux)\n(named-symbol 1936 frame_dummy)\n(named-symbol 0 __libc_start_main@GLIBC_2.34)\n(named-symbol 0 __cxa_finalize@GLIBC_2.17)\n(named-symbol 0 fork@GLIBC_2.17)\n(named-symbol 1940 _fini)\n(named-symbol 0 abort@GLIBC_2.17)\n(named-symbol 1664 _start)\n(named-symbol 1600 main)\n(named-symbol 1464 _init)\n(named-symbol 0 __libc_start_main)\n(named-symbol 0 __cxa_finalize)\n(named-symbol 0 fork)\n(named-symbol 0 abort)\n(require libc.so.6)\n(section 568 27)\n(section 596 36)\n(section 632 32)\n(section 664 28)\n(section 696 240)\n(section 936 146)\n(section 1082 20)\n(section 1104 48)\n(section 1152 192)\n(section 1344 120)\n(section 1464 24)\n(section 1488 112)\n(section 1600 340)\n(section 1940 20)\n(section 1960 4)\n(section 1964 60)\n(section 2024 160)\n(section 69008 8)\n(section 69016 8)\n(section 69024 496)\n(section 69520 112)\n(section 69632 16)\n(section 69648 8)\n(section 0 43)\n(section 0 2088)\n(section 0 559)\n(section 0 250)\n(segment 0 2184 true false true)\n(segment 69008 648 true true false)\n(subarch v8)\n(symbol-chunk 1716 20 1716)\n(symbol-chunk 1664 52 1664)\n(symbol-chunk 1600 4 1600)\n(symbol-value 1716 1716)\n(symbol-value 1744 1744)\n(symbol-value 1792 1792)\n(symbol-value 1856 1856)\n(symbol-value 1936 1936)\n(symbol-value 1940 1940)\n(symbol-value 1664 1664)\n(symbol-value 1600 1600)\n(symbol-value 1464 1464)\n(symbol-value 0 0)\n(system \"\")\n(vendor \"\")\n"), -Attr("abi-name","\"aarch64-linux-gnu-elf\"")]), -Sections([Section(".shstrtab", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x80\x06\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x98\x1b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x38\x00\x09\x00\x40\x00\x1c\x00\x1b\x00\x06\x00\x00\x00\x04\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x04\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x88\x08\x00\x00\x00\x00\x00\x00\x88\x08\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x01\x00\x00\x00\x06\x00\x00\x00\x90\x0d\x00\x00\x00\x00\x00\x00\x90\x0d"), -Section(".strtab", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x80\x06\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x98\x1b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x38\x00\x09\x00\x40\x00\x1c\x00\x1b\x00\x06\x00\x00\x00\x04\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x04\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x88\x08\x00\x00\x00\x00\x00\x00\x88\x08\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x01\x00\x00\x00\x06\x00\x00\x00\x90\x0d\x00\x00\x00\x00\x00\x00\x90\x0d\x01\x00\x00\x00\x00\x00\x90\x0d\x01\x00\x00\x00\x00\x00\x80\x02\x00\x00\x00\x00\x00\x00\x88\x02\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x02\x00\x00\x00\x06\x00\x00\x00\xa0\x0d\x00\x00\x00\x00\x00\x00\xa0\x0d\x01\x00\x00\x00\x00\x00\xa0\x0d\x01\x00\x00\x00\x00\x00\xf0\x01\x00\x00\x00\x00\x00\x00\xf0\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x04\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x50\xe5\x74\x64\x04\x00\x00\x00\xac\x07\x00\x00\x00\x00\x00\x00\xac\x07\x00\x00\x00\x00\x00\x00\xac\x07\x00\x00\x00\x00\x00\x00\x3c\x00\x00\x00\x00\x00\x00\x00\x3c\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x51\xe5\x74\x64\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x52\xe5\x74\x64\x04\x00\x00\x00\x90\x0d\x00\x00\x00\x00\x00\x00\x90\x0d\x01\x00\x00\x00\x00\x00\x90\x0d\x01\x00\x00\x00\x00\x00\x70\x02\x00\x00\x00\x00\x00\x00\x70\x02\x00\x00\x00\x00\x00"), -Section(".symtab", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x80\x06\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x98\x1b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x38\x00\x09\x00\x40\x00\x1c\x00\x1b\x00\x06\x00\x00\x00\x04\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x04\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x88\x08\x00\x00\x00\x00\x00\x00\x88\x08\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x01\x00\x00\x00\x06\x00\x00\x00\x90\x0d\x00\x00\x00\x00\x00\x00\x90\x0d\x01\x00\x00\x00\x00\x00\x90\x0d\x01\x00\x00\x00\x00\x00\x80\x02\x00\x00\x00\x00\x00\x00\x88\x02\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x02\x00\x00\x00\x06\x00\x00\x00\xa0\x0d\x00\x00\x00\x00\x00\x00\xa0\x0d\x01\x00\x00\x00\x00\x00\xa0\x0d\x01\x00\x00\x00\x00\x00\xf0\x01\x00\x00\x00\x00\x00\x00\xf0\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x04\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x50\xe5\x74\x64\x04\x00\x00\x00\xac\x07\x00\x00\x00\x00\x00\x00\xac\x07\x00\x00\x00\x00\x00\x00\xac\x07\x00\x00\x00\x00\x00\x00\x3c\x00\x00\x00\x00\x00\x00\x00\x3c\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x51\xe5\x74\x64\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x52\xe5\x74\x64\x04\x00\x00\x00\x90\x0d\x00\x00\x00\x00\x00\x00\x90\x0d\x01\x00\x00\x00\x00\x00\x90\x0d\x01\x00\x00\x00\x00\x00\x70\x02\x00\x00\x00\x00\x00\x00\x70\x02\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x2f\x6c\x69\x62\x2f\x6c\x64\x2d\x6c\x69\x6e\x75\x78\x2d\x61\x61\x72\x63\x68\x36\x34\x2e\x73\x6f\x2e\x31\x00\x00\x04\x00\x00\x00\x14\x00\x00\x00\x03\x00\x00\x00\x47\x4e\x55\x00\x49\xc0\x49\x1c\x57\x8d\x92\xf9\x53\xbf\x11\x9e\xc6\x3e\xc3\x49\x1e\x9e\x2a\x11\x04\x00\x00\x00\x10\x00\x00\x00\x01\x00\x00\x00\x47\x4e\x55\x00\x00\x00\x00\x00\x03\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x01\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x0b\x00\xb8\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x16\x00\x00\x10\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4d\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x22\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x28\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x69\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x22\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x78\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5f\x5f\x63\x78\x61\x5f\x66\x69\x6e\x61\x6c\x69\x7a\x65\x00\x5f\x5f\x6c\x69\x62\x63\x5f\x73\x74\x61\x72\x74\x5f\x6d\x61\x69\x6e\x00\x61\x62\x6f\x72\x74\x00\x66\x6f\x72\x6b\x00\x6c\x69\x62\x63\x2e\x73\x6f\x2e\x36\x00\x47\x4c\x49\x42\x43\x5f\x32\x2e\x31\x37\x00\x47\x4c\x49\x42\x43\x5f\x32\x2e\x33\x34\x00\x5f\x49\x54\x4d\x5f\x64\x65\x72\x65\x67\x69\x73\x74\x65\x72\x54\x4d\x43\x6c\x6f\x6e\x65\x54\x61\x62\x6c\x65\x00\x5f\x5f\x67\x6d\x6f\x6e\x5f\x73\x74\x61\x72\x74\x5f\x5f\x00\x5f\x49\x54\x4d\x5f\x72\x65\x67\x69\x73\x74\x65\x72\x54\x4d\x43\x6c\x6f\x6e\x65\x54\x61\x62\x6c\x65\x00\x00\x00\x00\x00\x00\x00\x02\x00\x01\x00\x03\x00\x03\x00\x01\x00\x03\x00\x01\x00\x00\x00\x01\x00\x02\x00\x2d\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x97\x91\x96\x06\x00\x00\x03\x00\x37\x00\x00\x00\x10\x00\x00\x00\xb4\x91\x96\x06\x00\x00\x02\x00\x42\x00\x00\x00\x00\x00\x00\x00\x90\x0d\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x90\x07\x00\x00\x00\x00\x00\x00\x98\x0d\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x40\x07\x00\x00\x00\x00\x00\x00\xf0\x0f\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x40\x06\x00\x00\x00\x00\x00\x00\x08\x10\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x08\x10\x01\x00\x00\x00\x00\x00\xd8\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe0\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe8\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xf8\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x09\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xa8\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xb0\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xb8\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xc0\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xc8\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1f\x20\x03\xd5\xfd\x7b\xbf\xa9\xfd\x03\x00\x91\x3c\x00\x00\x94\xfd\x7b\xc1\xa8\xc0\x03\x5f\xd6\xf0\x7b\xbf\xa9\x90\x00\x00\x90\x11\xd2\x47\xf9\x10\x82\x3e\x91\x20\x02\x1f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x90\x00\x00\x90\x11\xd6\x47\xf9\x10\xa2\x3e\x91\x20\x02\x1f\xd6\x90\x00\x00\x90\x11\xda\x47\xf9\x10\xc2\x3e\x91\x20\x02\x1f\xd6\x90\x00\x00\x90\x11\xde\x47\xf9\x10\xe2\x3e\x91\x20\x02\x1f\xd6\x90\x00\x00\x90\x11\xe2\x47\xf9\x10\x02\x3f\x91\x20\x02\x1f\xd6\x90\x00\x00\x90\x11\xe6\x47\xf9\x10\x22\x3f\x91\x20\x02\x1f\xd6\xf4\xff\xff\x17\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1d\x00\x80\xd2\x1e\x00\x80\xd2\xe5\x03\x00\xaa\xe1\x03\x40\xf9\xe2\x23\x00\x91\xe6\x03\x00\x91\x80\x00\x00\x90\x00\xf8\x47\xf9\x03\x00\x80\xd2\x04\x00\x80\xd2\xd1\xff\xff\x97\xe0\xff\xff\x97\x80\x00\x00\x90\x00\xf4\x47\xf9\x40\x00\x00\xb4\xd8\xff\xff\x17\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x80\x00\x00\xb0\x00\x40\x00\x91\x81\x00\x00\xb0\x21\x40\x00\x91\x3f\x00\x00\xeb\xc0\x00\x00\x54\x81\x00\x00\x90\x21\xec\x47\xf9\x61\x00\x00\xb4\xf0\x03\x01\xaa\x00\x02\x1f\xd6\xc0\x03\x5f\xd6\x80\x00\x00\xb0\x00\x40\x00\x91\x81\x00\x00\xb0\x21\x40\x00\x91\x21\x00\x00\xcb\x22\xfc\x7f\xd3\x41\x0c\x81\x8b\x21\xfc\x41\x93\xc1\x00\x00\xb4\x82\x00\x00\x90\x42\xfc\x47\xf9\x62\x00\x00\xb4\xf0\x03\x02\xaa\x00\x02\x1f\xd6\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\xfd\x7b\xbe\xa9\xfd\x03\x00\x91\xf3\x0b\x00\xf9\x93\x00\x00\xb0\x60\x42\x40\x39\x40\x01\x00\x35\x80\x00\x00\x90\x00\xf0\x47\xf9\x80\x00\x00\xb4\x80\x00\x00\xb0\x00\x04\x40\xf9\xa5\xff\xff\x97\xd8\xff\xff\x97\x20\x00\x80\x52\x60\x42\x00\x39\xf3\x0b\x40\xf9\xfd\x7b\xc2\xa8\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\xdc\xff\xff\x17\x1f\x20\x03\xd5\xfd\x7b\xbf\xa9\xfd\x03\x00\x91\xfd\x7b\xc1\xa8\xc0\x03\x5f\xd6\x01\x00\x02\x00\x01\x1b\x03\x3b\x38\x00\x00\x00\x06\x00\x00\x00\x94\xfe\xff\xff\xc4\x00\x00\x00\xd4\xfe\xff\xff\x50\x00\x00\x00\x24\xff\xff\xff\x64\x00\x00\x00\x54\xff\xff\xff\x78\x00\x00\x00\x94\xff\xff\xff\x8c\x00\x00\x00\xe4\xff\xff\xff\xb0\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x01\x7a\x52\x00\x04\x78\x1e\x01\x1b\x0c\x1f\x00\x10\x00\x00\x00\x18\x00\x00\x00\x7c\xfe\xff\xff\x34\x00\x00\x00\x00\x41\x07\x1e\x10\x00\x00\x00\x2c\x00\x00\x00\xb8\xfe\xff\xff\x30\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00"), -Section(".comment", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x80\x06\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x98\x1b\x00"), -Section(".interp", 0x238, "\x2f\x6c\x69\x62\x2f\x6c\x64\x2d\x6c\x69\x6e\x75\x78\x2d\x61\x61\x72\x63\x68\x36\x34\x2e\x73\x6f\x2e\x31\x00"), -Section(".note.gnu.build-id", 0x254, "\x04\x00\x00\x00\x14\x00\x00\x00\x03\x00\x00\x00\x47\x4e\x55\x00\x49\xc0\x49\x1c\x57\x8d\x92\xf9\x53\xbf\x11\x9e\xc6\x3e\xc3\x49\x1e\x9e\x2a\x11"), -Section(".note.ABI-tag", 0x278, "\x04\x00\x00\x00\x10\x00\x00\x00\x01\x00\x00\x00\x47\x4e\x55\x00\x00\x00\x00\x00\x03\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00"), -Section(".gnu.hash", 0x298, "\x01\x00\x00\x00\x01\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".dynsym", 0x2B8, "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x0b\x00\xb8\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x16\x00\x00\x10\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4d\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x22\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x28\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x69\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x22\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x78\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".dynstr", 0x3A8, "\x00\x5f\x5f\x63\x78\x61\x5f\x66\x69\x6e\x61\x6c\x69\x7a\x65\x00\x5f\x5f\x6c\x69\x62\x63\x5f\x73\x74\x61\x72\x74\x5f\x6d\x61\x69\x6e\x00\x61\x62\x6f\x72\x74\x00\x66\x6f\x72\x6b\x00\x6c\x69\x62\x63\x2e\x73\x6f\x2e\x36\x00\x47\x4c\x49\x42\x43\x5f\x32\x2e\x31\x37\x00\x47\x4c\x49\x42\x43\x5f\x32\x2e\x33\x34\x00\x5f\x49\x54\x4d\x5f\x64\x65\x72\x65\x67\x69\x73\x74\x65\x72\x54\x4d\x43\x6c\x6f\x6e\x65\x54\x61\x62\x6c\x65\x00\x5f\x5f\x67\x6d\x6f\x6e\x5f\x73\x74\x61\x72\x74\x5f\x5f\x00\x5f\x49\x54\x4d\x5f\x72\x65\x67\x69\x73\x74\x65\x72\x54\x4d\x43\x6c\x6f\x6e\x65\x54\x61\x62\x6c\x65\x00"), -Section(".gnu.version", 0x43A, "\x00\x00\x00\x00\x00\x00\x02\x00\x01\x00\x03\x00\x03\x00\x01\x00\x03\x00\x01\x00"), -Section(".gnu.version_r", 0x450, "\x01\x00\x02\x00\x2d\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x97\x91\x96\x06\x00\x00\x03\x00\x37\x00\x00\x00\x10\x00\x00\x00\xb4\x91\x96\x06\x00\x00\x02\x00\x42\x00\x00\x00\x00\x00\x00\x00"), -Section(".rela.dyn", 0x480, "\x90\x0d\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x90\x07\x00\x00\x00\x00\x00\x00\x98\x0d\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x40\x07\x00\x00\x00\x00\x00\x00\xf0\x0f\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x40\x06\x00\x00\x00\x00\x00\x00\x08\x10\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x08\x10\x01\x00\x00\x00\x00\x00\xd8\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe0\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe8\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xf8\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x09\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".rela.plt", 0x540, "\xa8\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xb0\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xb8\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xc0\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xc8\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".init", 0x5B8, "\x1f\x20\x03\xd5\xfd\x7b\xbf\xa9\xfd\x03\x00\x91\x3c\x00\x00\x94\xfd\x7b\xc1\xa8\xc0\x03\x5f\xd6"), -Section(".plt", 0x5D0, "\xf0\x7b\xbf\xa9\x90\x00\x00\x90\x11\xd2\x47\xf9\x10\x82\x3e\x91\x20\x02\x1f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x90\x00\x00\x90\x11\xd6\x47\xf9\x10\xa2\x3e\x91\x20\x02\x1f\xd6\x90\x00\x00\x90\x11\xda\x47\xf9\x10\xc2\x3e\x91\x20\x02\x1f\xd6\x90\x00\x00\x90\x11\xde\x47\xf9\x10\xe2\x3e\x91\x20\x02\x1f\xd6\x90\x00\x00\x90\x11\xe2\x47\xf9\x10\x02\x3f\x91\x20\x02\x1f\xd6\x90\x00\x00\x90\x11\xe6\x47\xf9\x10\x22\x3f\x91\x20\x02\x1f\xd6"), -Section(".fini", 0x794, "\x1f\x20\x03\xd5\xfd\x7b\xbf\xa9\xfd\x03\x00\x91\xfd\x7b\xc1\xa8\xc0\x03\x5f\xd6"), -Section(".rodata", 0x7A8, "\x01\x00\x02\x00"), -Section(".eh_frame_hdr", 0x7AC, "\x01\x1b\x03\x3b\x38\x00\x00\x00\x06\x00\x00\x00\x94\xfe\xff\xff\xc4\x00\x00\x00\xd4\xfe\xff\xff\x50\x00\x00\x00\x24\xff\xff\xff\x64\x00\x00\x00\x54\xff\xff\xff\x78\x00\x00\x00\x94\xff\xff\xff\x8c\x00\x00\x00\xe4\xff\xff\xff\xb0\x00\x00\x00"), -Section(".eh_frame", 0x7E8, "\x10\x00\x00\x00\x00\x00\x00\x00\x01\x7a\x52\x00\x04\x78\x1e\x01\x1b\x0c\x1f\x00\x10\x00\x00\x00\x18\x00\x00\x00\x7c\xfe\xff\xff\x34\x00\x00\x00\x00\x41\x07\x1e\x10\x00\x00\x00\x2c\x00\x00\x00\xb8\xfe\xff\xff\x30\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x40\x00\x00\x00\xd4\xfe\xff\xff\x3c\x00\x00\x00\x00\x00\x00\x00\x20\x00\x00\x00\x54\x00\x00\x00\x00\xff\xff\xff\x48\x00\x00\x00\x00\x41\x0e\x20\x9d\x04\x9e\x03\x42\x93\x02\x4e\xde\xdd\xd3\x0e\x00\x00\x00\x00\x10\x00\x00\x00\x78\x00\x00\x00\x2c\xff\xff\xff\x04\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x8c\x00\x00\x00\xc8\xfd\xff\xff\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".fini_array", 0x10D98, "\x40\x07\x00\x00\x00\x00\x00\x00"), -Section(".dynamic", 0x10DA0, "\x01\x00\x00\x00\x00\x00\x00\x00\x2d\x00\x00\x00\x00\x00\x00\x00\x0c\x00\x00\x00\x00\x00\x00\x00\xb8\x05\x00\x00\x00\x00\x00\x00\x0d\x00\x00\x00\x00\x00\x00\x00\x94\x07\x00\x00\x00\x00\x00\x00\x19\x00\x00\x00\x00\x00\x00\x00\x90\x0d\x01\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x1a\x00\x00\x00\x00\x00\x00\x00\x98\x0d\x01\x00\x00\x00\x00\x00\x1c\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\xf5\xfe\xff\x6f\x00\x00\x00\x00\x98\x02\x00\x00\x00\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\xa8\x03\x00\x00\x00\x00\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\xb8\x02\x00\x00\x00\x00\x00\x00\x0a\x00\x00\x00\x00\x00\x00\x00\x92\x00\x00\x00\x00\x00\x00\x00\x0b\x00\x00\x00\x00\x00\x00\x00\x18\x00\x00\x00\x00\x00\x00\x00\x15\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x90\x0f\x01\x00\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x78\x00\x00\x00\x00\x00\x00\x00\x14\x00\x00\x00\x00\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x17\x00\x00\x00\x00\x00\x00\x00\x40\x05\x00\x00\x00\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x80\x04\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\xc0\x00\x00\x00\x00\x00\x00\x00\x09\x00\x00\x00\x00\x00\x00\x00\x18\x00\x00\x00\x00\x00\x00\x00\x1e\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\xfb\xff\xff\x6f\x00\x00\x00\x00\x01\x00\x00\x08\x00\x00\x00\x00\xfe\xff\xff\x6f\x00\x00\x00\x00\x50\x04\x00\x00\x00\x00\x00\x00\xff\xff\xff\x6f\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\xf0\xff\xff\x6f\x00\x00\x00\x00\x3a\x04\x00\x00\x00\x00\x00\x00\xf9\xff\xff\x6f\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".init_array", 0x10D90, "\x90\x07\x00\x00\x00\x00\x00\x00"), -Section(".got", 0x10F90, "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xd0\x05\x00\x00\x00\x00\x00\x00\xd0\x05\x00\x00\x00\x00\x00\x00\xd0\x05\x00\x00\x00\x00\x00\x00\xd0\x05\x00\x00\x00\x00\x00\x00\xd0\x05\x00\x00\x00\x00\x00\x00\xa0\x0d\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".data", 0x11000, "\x00\x00\x00\x00\x00\x00\x00\x00\x08\x10\x01\x00\x00\x00\x00\x00"), -Section(".text", 0x640, "\xf4\xff\xff\x17\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1d\x00\x80\xd2\x1e\x00\x80\xd2\xe5\x03\x00\xaa\xe1\x03\x40\xf9\xe2\x23\x00\x91\xe6\x03\x00\x91\x80\x00\x00\x90\x00\xf8\x47\xf9\x03\x00\x80\xd2\x04\x00\x80\xd2\xd1\xff\xff\x97\xe0\xff\xff\x97\x80\x00\x00\x90\x00\xf4\x47\xf9\x40\x00\x00\xb4\xd8\xff\xff\x17\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x80\x00\x00\xb0\x00\x40\x00\x91\x81\x00\x00\xb0\x21\x40\x00\x91\x3f\x00\x00\xeb\xc0\x00\x00\x54\x81\x00\x00\x90\x21\xec\x47\xf9\x61\x00\x00\xb4\xf0\x03\x01\xaa\x00\x02\x1f\xd6\xc0\x03\x5f\xd6\x80\x00\x00\xb0\x00\x40\x00\x91\x81\x00\x00\xb0\x21\x40\x00\x91\x21\x00\x00\xcb\x22\xfc\x7f\xd3\x41\x0c\x81\x8b\x21\xfc\x41\x93\xc1\x00\x00\xb4\x82\x00\x00\x90\x42\xfc\x47\xf9\x62\x00\x00\xb4\xf0\x03\x02\xaa\x00\x02\x1f\xd6\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\xfd\x7b\xbe\xa9\xfd\x03\x00\x91\xf3\x0b\x00\xf9\x93\x00\x00\xb0\x60\x42\x40\x39\x40\x01\x00\x35\x80\x00\x00\x90\x00\xf0\x47\xf9\x80\x00\x00\xb4\x80\x00\x00\xb0\x00\x04\x40\xf9\xa5\xff\xff\x97\xd8\xff\xff\x97\x20\x00\x80\x52\x60\x42\x00\x39\xf3\x0b\x40\xf9\xfd\x7b\xc2\xa8\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\xdc\xff\xff\x17")]), -Memmap([Annotation(Region(0x0,0x887), Attr("segment","02 0 2184")), -Annotation(Region(0x640,0x643), Attr("symbol","\"main\"")), -Annotation(Region(0x0,0xF9), Attr("section","\".shstrtab\"")), -Annotation(Region(0x0,0x22E), Attr("section","\".strtab\"")), -Annotation(Region(0x0,0x827), Attr("section","\".symtab\"")), -Annotation(Region(0x0,0x2A), Attr("section","\".comment\"")), -Annotation(Region(0x238,0x252), Attr("section","\".interp\"")), -Annotation(Region(0x254,0x277), Attr("section","\".note.gnu.build-id\"")), -Annotation(Region(0x278,0x297), Attr("section","\".note.ABI-tag\"")), -Annotation(Region(0x298,0x2B3), Attr("section","\".gnu.hash\"")), -Annotation(Region(0x2B8,0x3A7), Attr("section","\".dynsym\"")), -Annotation(Region(0x3A8,0x439), Attr("section","\".dynstr\"")), -Annotation(Region(0x43A,0x44D), Attr("section","\".gnu.version\"")), -Annotation(Region(0x450,0x47F), Attr("section","\".gnu.version_r\"")), -Annotation(Region(0x480,0x53F), Attr("section","\".rela.dyn\"")), -Annotation(Region(0x540,0x5B7), Attr("section","\".rela.plt\"")), -Annotation(Region(0x5B8,0x5CF), Attr("section","\".init\"")), -Annotation(Region(0x5D0,0x63F), Attr("section","\".plt\"")), -Annotation(Region(0x5B8,0x5CF), Attr("code-region","()")), -Annotation(Region(0x5D0,0x63F), Attr("code-region","()")), -Annotation(Region(0x640,0x643), Attr("symbol-info","main 0x640 4")), -Annotation(Region(0x680,0x6B3), Attr("symbol","\"_start\"")), -Annotation(Region(0x680,0x6B3), Attr("symbol-info","_start 0x680 52")), -Annotation(Region(0x6B4,0x6C7), Attr("symbol","\"call_weak_fn\"")), -Annotation(Region(0x6B4,0x6C7), Attr("symbol-info","call_weak_fn 0x6B4 20")), -Annotation(Region(0x794,0x7A7), Attr("section","\".fini\"")), -Annotation(Region(0x7A8,0x7AB), Attr("section","\".rodata\"")), -Annotation(Region(0x7AC,0x7E7), Attr("section","\".eh_frame_hdr\"")), -Annotation(Region(0x7E8,0x887), Attr("section","\".eh_frame\"")), -Annotation(Region(0x10D90,0x1100F), Attr("segment","03 0x10D90 648")), -Annotation(Region(0x10D98,0x10D9F), Attr("section","\".fini_array\"")), -Annotation(Region(0x10DA0,0x10F8F), Attr("section","\".dynamic\"")), -Annotation(Region(0x10D90,0x10D97), Attr("section","\".init_array\"")), -Annotation(Region(0x10F90,0x10FFF), Attr("section","\".got\"")), -Annotation(Region(0x11000,0x1100F), Attr("section","\".data\"")), -Annotation(Region(0x640,0x793), Attr("section","\".text\"")), -Annotation(Region(0x640,0x793), Attr("code-region","()")), -Annotation(Region(0x794,0x7A7), Attr("code-region","()"))]), -Program(Tid(1_530, "%000005fa"), Attrs([]), - Subs([Sub(Tid(1_482, "@__cxa_finalize"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x600"), -Attr("stub","()")]), "__cxa_finalize", Args([Arg(Tid(1_531, "%000005fb"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("__cxa_finalize_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(836, "@__cxa_finalize"), - Attrs([Attr("address","0x600")]), Phis([]), -Defs([Def(Tid(1_100, "%0000044c"), Attrs([Attr("address","0x600"), -Attr("insn","adrp x16, #65536")]), Var("R16",Imm(64)), Int(65536,64)), -Def(Tid(1_107, "%00000453"), Attrs([Attr("address","0x604"), -Attr("insn","ldr x17, [x16, #0xfb0]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(4016,64)),LittleEndian(),64)), -Def(Tid(1_113, "%00000459"), Attrs([Attr("address","0x608"), -Attr("insn","add x16, x16, #0xfb0")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(4016,64)))]), Jmps([Call(Tid(1_118, "%0000045e"), - Attrs([Attr("address","0x60C"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), -Sub(Tid(1_483, "@__do_global_dtors_aux"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x740")]), - "__do_global_dtors_aux", Args([Arg(Tid(1_532, "%000005fc"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("__do_global_dtors_aux_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(689, "@__do_global_dtors_aux"), - Attrs([Attr("address","0x740")]), Phis([]), Defs([Def(Tid(693, "%000002b5"), - Attrs([Attr("address","0x740"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("#3",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(18446744073709551584,64))), -Def(Tid(699, "%000002bb"), Attrs([Attr("address","0x740"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("#3",Imm(64)),Var("R29",Imm(64)),LittleEndian(),64)), -Def(Tid(705, "%000002c1"), Attrs([Attr("address","0x740"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("#3",Imm(64)),Int(8,64)),Var("R30",Imm(64)),LittleEndian(),64)), -Def(Tid(709, "%000002c5"), Attrs([Attr("address","0x740"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("R31",Imm(64)), -Var("#3",Imm(64))), Def(Tid(715, "%000002cb"), - Attrs([Attr("address","0x744"), Attr("insn","mov x29, sp")]), - Var("R29",Imm(64)), Var("R31",Imm(64))), Def(Tid(723, "%000002d3"), - Attrs([Attr("address","0x748"), Attr("insn","str x19, [sp, #0x10]")]), - Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(16,64)),Var("R19",Imm(64)),LittleEndian(),64)), -Def(Tid(728, "%000002d8"), Attrs([Attr("address","0x74C"), -Attr("insn","adrp x19, #69632")]), Var("R19",Imm(64)), Int(69632,64)), -Def(Tid(735, "%000002df"), Attrs([Attr("address","0x750"), -Attr("insn","ldrb w0, [x19, #0x10]")]), Var("R0",Imm(64)), -UNSIGNED(64,Load(Var("mem",Mem(64,8)),PLUS(Var("R19",Imm(64)),Int(16,64)),LittleEndian(),8)))]), -Jmps([Goto(Tid(742, "%000002e6"), Attrs([Attr("address","0x754"), -Attr("insn","cbnz w0, #0x28")]), - NEQ(Extract(31,0,Var("R0",Imm(64))),Int(0,32)), -Direct(Tid(740, "%000002e4"))), Goto(Tid(1_520, "%000005f0"), Attrs([]), - Int(1,1), Direct(Tid(781, "%0000030d")))])), Blk(Tid(781, "%0000030d"), - Attrs([Attr("address","0x758")]), Phis([]), Defs([Def(Tid(784, "%00000310"), - Attrs([Attr("address","0x758"), Attr("insn","adrp x0, #65536")]), - Var("R0",Imm(64)), Int(65536,64)), Def(Tid(791, "%00000317"), - Attrs([Attr("address","0x75C"), Attr("insn","ldr x0, [x0, #0xfe0]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(4064,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(797, "%0000031d"), Attrs([Attr("address","0x760"), -Attr("insn","cbz x0, #0x10")]), EQ(Var("R0",Imm(64)),Int(0,64)), -Direct(Tid(795, "%0000031b"))), Goto(Tid(1_521, "%000005f1"), Attrs([]), - Int(1,1), Direct(Tid(820, "%00000334")))])), Blk(Tid(820, "%00000334"), - Attrs([Attr("address","0x764")]), Phis([]), Defs([Def(Tid(823, "%00000337"), - Attrs([Attr("address","0x764"), Attr("insn","adrp x0, #69632")]), - Var("R0",Imm(64)), Int(69632,64)), Def(Tid(830, "%0000033e"), - Attrs([Attr("address","0x768"), Attr("insn","ldr x0, [x0, #0x8]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(835, "%00000343"), Attrs([Attr("address","0x76C"), -Attr("insn","bl #-0x16c")]), Var("R30",Imm(64)), Int(1904,64))]), -Jmps([Call(Tid(838, "%00000346"), Attrs([Attr("address","0x76C"), -Attr("insn","bl #-0x16c")]), Int(1,1), -(Direct(Tid(1_482, "@__cxa_finalize")),Direct(Tid(795, "%0000031b"))))])), -Blk(Tid(795, "%0000031b"), Attrs([Attr("address","0x770")]), Phis([]), -Defs([Def(Tid(803, "%00000323"), Attrs([Attr("address","0x770"), -Attr("insn","bl #-0xa0")]), Var("R30",Imm(64)), Int(1908,64))]), -Jmps([Call(Tid(805, "%00000325"), Attrs([Attr("address","0x770"), -Attr("insn","bl #-0xa0")]), Int(1,1), -(Direct(Tid(1_496, "@deregister_tm_clones")),Direct(Tid(807, "%00000327"))))])), -Blk(Tid(807, "%00000327"), Attrs([Attr("address","0x774")]), Phis([]), -Defs([Def(Tid(810, "%0000032a"), Attrs([Attr("address","0x774"), -Attr("insn","mov w0, #0x1")]), Var("R0",Imm(64)), Int(1,64)), -Def(Tid(818, "%00000332"), Attrs([Attr("address","0x778"), -Attr("insn","strb w0, [x19, #0x10]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R19",Imm(64)),Int(16,64)),Extract(7,0,Var("R0",Imm(64))),LittleEndian(),8))]), -Jmps([Goto(Tid(1_522, "%000005f2"), Attrs([]), Int(1,1), -Direct(Tid(740, "%000002e4")))])), Blk(Tid(740, "%000002e4"), - Attrs([Attr("address","0x77C")]), Phis([]), Defs([Def(Tid(750, "%000002ee"), - Attrs([Attr("address","0x77C"), Attr("insn","ldr x19, [sp, #0x10]")]), - Var("R19",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(16,64)),LittleEndian(),64)), -Def(Tid(757, "%000002f5"), Attrs([Attr("address","0x780"), -Attr("insn","ldp x29, x30, [sp], #0x20")]), Var("R29",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(762, "%000002fa"), Attrs([Attr("address","0x780"), -Attr("insn","ldp x29, x30, [sp], #0x20")]), Var("R30",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(766, "%000002fe"), Attrs([Attr("address","0x780"), -Attr("insn","ldp x29, x30, [sp], #0x20")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(32,64)))]), Jmps([Call(Tid(771, "%00000303"), - Attrs([Attr("address","0x784"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), Sub(Tid(1_487, "@__libc_start_main"), - Attrs([Attr("c.proto","signed (*)(signed (*)(signed , char** , char** );* main, signed , char** , \nvoid* auxv)"), -Attr("address","0x5F0"), Attr("stub","()")]), "__libc_start_main", - Args([Arg(Tid(1_533, "%000005fd"), - Attrs([Attr("c.layout","**[ : 64]"), -Attr("c.data","Top:u64 ptr ptr"), -Attr("c.type","signed (*)(signed , char** , char** );*")]), - Var("__libc_start_main_main",Imm(64)), Var("R0",Imm(64)), In()), -Arg(Tid(1_534, "%000005fe"), Attrs([Attr("c.layout","[signed : 32]"), -Attr("c.data","Top:u32"), Attr("c.type","signed")]), - Var("__libc_start_main_arg2",Imm(32)), LOW(32,Var("R1",Imm(64))), In()), -Arg(Tid(1_535, "%000005ff"), Attrs([Attr("c.layout","**[char : 8]"), -Attr("c.data","Top:u8 ptr ptr"), Attr("c.type","char**")]), - Var("__libc_start_main_arg3",Imm(64)), Var("R2",Imm(64)), Both()), -Arg(Tid(1_536, "%00000600"), Attrs([Attr("c.layout","*[ : 8]"), -Attr("c.data","{} ptr"), Attr("c.type","void*")]), - Var("__libc_start_main_auxv",Imm(64)), Var("R3",Imm(64)), Both()), -Arg(Tid(1_537, "%00000601"), Attrs([Attr("c.layout","[signed : 32]"), -Attr("c.data","Top:u32"), Attr("c.type","signed")]), - Var("__libc_start_main_result",Imm(32)), LOW(32,Var("R0",Imm(64))), -Out())]), Blks([Blk(Tid(522, "@__libc_start_main"), - Attrs([Attr("address","0x5F0")]), Phis([]), -Defs([Def(Tid(1_078, "%00000436"), Attrs([Attr("address","0x5F0"), -Attr("insn","adrp x16, #65536")]), Var("R16",Imm(64)), Int(65536,64)), -Def(Tid(1_085, "%0000043d"), Attrs([Attr("address","0x5F4"), -Attr("insn","ldr x17, [x16, #0xfa8]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(4008,64)),LittleEndian(),64)), -Def(Tid(1_091, "%00000443"), Attrs([Attr("address","0x5F8"), -Attr("insn","add x16, x16, #0xfa8")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(4008,64)))]), Jmps([Call(Tid(1_096, "%00000448"), - Attrs([Attr("address","0x5FC"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), Sub(Tid(1_488, "@_fini"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x794")]), - "_fini", Args([Arg(Tid(1_538, "%00000602"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("_fini_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(31, "@_fini"), - Attrs([Attr("address","0x794")]), Phis([]), Defs([Def(Tid(37, "%00000025"), - Attrs([Attr("address","0x798"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("#0",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(18446744073709551600,64))), -Def(Tid(43, "%0000002b"), Attrs([Attr("address","0x798"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("#0",Imm(64)),Var("R29",Imm(64)),LittleEndian(),64)), -Def(Tid(49, "%00000031"), Attrs([Attr("address","0x798"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("#0",Imm(64)),Int(8,64)),Var("R30",Imm(64)),LittleEndian(),64)), -Def(Tid(53, "%00000035"), Attrs([Attr("address","0x798"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("R31",Imm(64)), -Var("#0",Imm(64))), Def(Tid(59, "%0000003b"), Attrs([Attr("address","0x79C"), -Attr("insn","mov x29, sp")]), Var("R29",Imm(64)), Var("R31",Imm(64))), -Def(Tid(66, "%00000042"), Attrs([Attr("address","0x7A0"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R29",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(71, "%00000047"), Attrs([Attr("address","0x7A0"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R30",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(75, "%0000004b"), Attrs([Attr("address","0x7A0"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(16,64)))]), Jmps([Call(Tid(80, "%00000050"), - Attrs([Attr("address","0x7A4"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), Sub(Tid(1_489, "@_init"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x5B8")]), - "_init", Args([Arg(Tid(1_539, "%00000603"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("_init_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(1_304, "@_init"), - Attrs([Attr("address","0x5B8")]), Phis([]), -Defs([Def(Tid(1_310, "%0000051e"), Attrs([Attr("address","0x5BC"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("#5",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(18446744073709551600,64))), -Def(Tid(1_316, "%00000524"), Attrs([Attr("address","0x5BC"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("#5",Imm(64)),Var("R29",Imm(64)),LittleEndian(),64)), -Def(Tid(1_322, "%0000052a"), Attrs([Attr("address","0x5BC"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("#5",Imm(64)),Int(8,64)),Var("R30",Imm(64)),LittleEndian(),64)), -Def(Tid(1_326, "%0000052e"), Attrs([Attr("address","0x5BC"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("R31",Imm(64)), -Var("#5",Imm(64))), Def(Tid(1_332, "%00000534"), - Attrs([Attr("address","0x5C0"), Attr("insn","mov x29, sp")]), - Var("R29",Imm(64)), Var("R31",Imm(64))), Def(Tid(1_337, "%00000539"), - Attrs([Attr("address","0x5C4"), Attr("insn","bl #0xf0")]), - Var("R30",Imm(64)), Int(1480,64))]), Jmps([Call(Tid(1_339, "%0000053b"), - Attrs([Attr("address","0x5C4"), Attr("insn","bl #0xf0")]), Int(1,1), -(Direct(Tid(1_494, "@call_weak_fn")),Direct(Tid(1_341, "%0000053d"))))])), -Blk(Tid(1_341, "%0000053d"), Attrs([Attr("address","0x5C8")]), Phis([]), -Defs([Def(Tid(1_346, "%00000542"), Attrs([Attr("address","0x5C8"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R29",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(1_351, "%00000547"), Attrs([Attr("address","0x5C8"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R30",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(1_355, "%0000054b"), Attrs([Attr("address","0x5C8"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(16,64)))]), Jmps([Call(Tid(1_360, "%00000550"), - Attrs([Attr("address","0x5CC"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), Sub(Tid(1_490, "@_start"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x680"), -Attr("entry-point","()")]), "_start", Args([Arg(Tid(1_540, "%00000604"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("_start_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(459, "@_start"), - Attrs([Attr("address","0x680")]), Phis([]), Defs([Def(Tid(464, "%000001d0"), - Attrs([Attr("address","0x684"), Attr("insn","mov x29, #0x0")]), - Var("R29",Imm(64)), Int(0,64)), Def(Tid(469, "%000001d5"), - Attrs([Attr("address","0x688"), Attr("insn","mov x30, #0x0")]), - Var("R30",Imm(64)), Int(0,64)), Def(Tid(475, "%000001db"), - Attrs([Attr("address","0x68C"), Attr("insn","mov x5, x0")]), - Var("R5",Imm(64)), Var("R0",Imm(64))), Def(Tid(482, "%000001e2"), - Attrs([Attr("address","0x690"), Attr("insn","ldr x1, [sp]")]), - Var("R1",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(488, "%000001e8"), Attrs([Attr("address","0x694"), -Attr("insn","add x2, sp, #0x8")]), Var("R2",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(8,64))), Def(Tid(494, "%000001ee"), - Attrs([Attr("address","0x698"), Attr("insn","mov x6, sp")]), - Var("R6",Imm(64)), Var("R31",Imm(64))), Def(Tid(499, "%000001f3"), - Attrs([Attr("address","0x69C"), Attr("insn","adrp x0, #65536")]), - Var("R0",Imm(64)), Int(65536,64)), Def(Tid(506, "%000001fa"), - Attrs([Attr("address","0x6A0"), Attr("insn","ldr x0, [x0, #0xff0]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(4080,64)),LittleEndian(),64)), -Def(Tid(511, "%000001ff"), Attrs([Attr("address","0x6A4"), -Attr("insn","mov x3, #0x0")]), Var("R3",Imm(64)), Int(0,64)), -Def(Tid(516, "%00000204"), Attrs([Attr("address","0x6A8"), -Attr("insn","mov x4, #0x0")]), Var("R4",Imm(64)), Int(0,64)), -Def(Tid(521, "%00000209"), Attrs([Attr("address","0x6AC"), -Attr("insn","bl #-0xbc")]), Var("R30",Imm(64)), Int(1712,64))]), -Jmps([Call(Tid(524, "%0000020c"), Attrs([Attr("address","0x6AC"), -Attr("insn","bl #-0xbc")]), Int(1,1), -(Direct(Tid(1_487, "@__libc_start_main")),Direct(Tid(526, "%0000020e"))))])), -Blk(Tid(526, "%0000020e"), Attrs([Attr("address","0x6B0")]), Phis([]), -Defs([Def(Tid(529, "%00000211"), Attrs([Attr("address","0x6B0"), -Attr("insn","bl #-0x80")]), Var("R30",Imm(64)), Int(1716,64))]), -Jmps([Call(Tid(532, "%00000214"), Attrs([Attr("address","0x6B0"), -Attr("insn","bl #-0x80")]), Int(1,1), -(Direct(Tid(1_493, "@abort")),Direct(Tid(1_523, "%000005f3"))))])), -Blk(Tid(1_523, "%000005f3"), Attrs([]), Phis([]), Defs([]), -Jmps([Call(Tid(1_524, "%000005f4"), Attrs([]), Int(1,1), -(Direct(Tid(1_494, "@call_weak_fn")),))]))])), Sub(Tid(1_493, "@abort"), - Attrs([Attr("noreturn","()"), Attr("c.proto","void (*)(void)"), -Attr("address","0x630"), Attr("stub","()")]), "abort", Args([]), -Blks([Blk(Tid(530, "@abort"), Attrs([Attr("address","0x630")]), Phis([]), -Defs([Def(Tid(1_166, "%0000048e"), Attrs([Attr("address","0x630"), -Attr("insn","adrp x16, #65536")]), Var("R16",Imm(64)), Int(65536,64)), -Def(Tid(1_173, "%00000495"), Attrs([Attr("address","0x634"), -Attr("insn","ldr x17, [x16, #0xfc8]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(4040,64)),LittleEndian(),64)), -Def(Tid(1_179, "%0000049b"), Attrs([Attr("address","0x638"), -Attr("insn","add x16, x16, #0xfc8")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(4040,64)))]), Jmps([Call(Tid(1_184, "%000004a0"), - Attrs([Attr("address","0x63C"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), Sub(Tid(1_494, "@call_weak_fn"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x6B4")]), - "call_weak_fn", Args([Arg(Tid(1_541, "%00000605"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("call_weak_fn_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(534, "@call_weak_fn"), - Attrs([Attr("address","0x6B4")]), Phis([]), Defs([Def(Tid(537, "%00000219"), - Attrs([Attr("address","0x6B4"), Attr("insn","adrp x0, #65536")]), - Var("R0",Imm(64)), Int(65536,64)), Def(Tid(544, "%00000220"), - Attrs([Attr("address","0x6B8"), Attr("insn","ldr x0, [x0, #0xfe8]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(4072,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(550, "%00000226"), Attrs([Attr("address","0x6BC"), -Attr("insn","cbz x0, #0x8")]), EQ(Var("R0",Imm(64)),Int(0,64)), -Direct(Tid(548, "%00000224"))), Goto(Tid(1_525, "%000005f5"), Attrs([]), - Int(1,1), Direct(Tid(900, "%00000384")))])), Blk(Tid(548, "%00000224"), - Attrs([Attr("address","0x6C4")]), Phis([]), Defs([]), -Jmps([Call(Tid(556, "%0000022c"), Attrs([Attr("address","0x6C4"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))])), -Blk(Tid(900, "%00000384"), Attrs([Attr("address","0x6C0")]), Phis([]), -Defs([]), Jmps([Goto(Tid(903, "%00000387"), Attrs([Attr("address","0x6C0"), -Attr("insn","b #-0xa0")]), Int(1,1), Direct(Tid(901, "@__gmon_start__")))])), -Blk(Tid(901, "@__gmon_start__"), Attrs([Attr("address","0x620")]), Phis([]), -Defs([Def(Tid(1_144, "%00000478"), Attrs([Attr("address","0x620"), -Attr("insn","adrp x16, #65536")]), Var("R16",Imm(64)), Int(65536,64)), -Def(Tid(1_151, "%0000047f"), Attrs([Attr("address","0x624"), -Attr("insn","ldr x17, [x16, #0xfc0]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(4032,64)),LittleEndian(),64)), -Def(Tid(1_157, "%00000485"), Attrs([Attr("address","0x628"), -Attr("insn","add x16, x16, #0xfc0")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(4032,64)))]), Jmps([Call(Tid(1_162, "%0000048a"), - Attrs([Attr("address","0x62C"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), -Sub(Tid(1_496, "@deregister_tm_clones"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x6D0")]), - "deregister_tm_clones", Args([Arg(Tid(1_542, "%00000606"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("deregister_tm_clones_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(562, "@deregister_tm_clones"), - Attrs([Attr("address","0x6D0")]), Phis([]), Defs([Def(Tid(565, "%00000235"), - Attrs([Attr("address","0x6D0"), Attr("insn","adrp x0, #69632")]), - Var("R0",Imm(64)), Int(69632,64)), Def(Tid(571, "%0000023b"), - Attrs([Attr("address","0x6D4"), Attr("insn","add x0, x0, #0x10")]), - Var("R0",Imm(64)), PLUS(Var("R0",Imm(64)),Int(16,64))), -Def(Tid(576, "%00000240"), Attrs([Attr("address","0x6D8"), -Attr("insn","adrp x1, #69632")]), Var("R1",Imm(64)), Int(69632,64)), -Def(Tid(582, "%00000246"), Attrs([Attr("address","0x6DC"), -Attr("insn","add x1, x1, #0x10")]), Var("R1",Imm(64)), -PLUS(Var("R1",Imm(64)),Int(16,64))), Def(Tid(588, "%0000024c"), - Attrs([Attr("address","0x6E0"), Attr("insn","cmp x1, x0")]), - Var("#1",Imm(64)), NOT(Var("R0",Imm(64)))), Def(Tid(593, "%00000251"), - Attrs([Attr("address","0x6E0"), Attr("insn","cmp x1, x0")]), - Var("#2",Imm(64)), PLUS(Var("R1",Imm(64)),NOT(Var("R0",Imm(64))))), -Def(Tid(599, "%00000257"), Attrs([Attr("address","0x6E0"), -Attr("insn","cmp x1, x0")]), Var("VF",Imm(1)), -NEQ(SIGNED(65,PLUS(Var("#2",Imm(64)),Int(1,64))),PLUS(PLUS(SIGNED(65,Var("R1",Imm(64))),SIGNED(65,Var("#1",Imm(64)))),Int(1,65)))), -Def(Tid(605, "%0000025d"), Attrs([Attr("address","0x6E0"), -Attr("insn","cmp x1, x0")]), Var("CF",Imm(1)), -NEQ(UNSIGNED(65,PLUS(Var("#2",Imm(64)),Int(1,64))),PLUS(PLUS(UNSIGNED(65,Var("R1",Imm(64))),UNSIGNED(65,Var("#1",Imm(64)))),Int(1,65)))), -Def(Tid(609, "%00000261"), Attrs([Attr("address","0x6E0"), -Attr("insn","cmp x1, x0")]), Var("ZF",Imm(1)), -EQ(PLUS(Var("#2",Imm(64)),Int(1,64)),Int(0,64))), Def(Tid(613, "%00000265"), - Attrs([Attr("address","0x6E0"), Attr("insn","cmp x1, x0")]), - Var("NF",Imm(1)), Extract(63,63,PLUS(Var("#2",Imm(64)),Int(1,64))))]), -Jmps([Goto(Tid(619, "%0000026b"), Attrs([Attr("address","0x6E4"), -Attr("insn","b.eq #0x18")]), EQ(Var("ZF",Imm(1)),Int(1,1)), -Direct(Tid(617, "%00000269"))), Goto(Tid(1_526, "%000005f6"), Attrs([]), - Int(1,1), Direct(Tid(870, "%00000366")))])), Blk(Tid(870, "%00000366"), - Attrs([Attr("address","0x6E8")]), Phis([]), Defs([Def(Tid(873, "%00000369"), - Attrs([Attr("address","0x6E8"), Attr("insn","adrp x1, #65536")]), - Var("R1",Imm(64)), Int(65536,64)), Def(Tid(880, "%00000370"), - Attrs([Attr("address","0x6EC"), Attr("insn","ldr x1, [x1, #0xfd8]")]), - Var("R1",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R1",Imm(64)),Int(4056,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(885, "%00000375"), Attrs([Attr("address","0x6F0"), -Attr("insn","cbz x1, #0xc")]), EQ(Var("R1",Imm(64)),Int(0,64)), -Direct(Tid(617, "%00000269"))), Goto(Tid(1_527, "%000005f7"), Attrs([]), - Int(1,1), Direct(Tid(889, "%00000379")))])), Blk(Tid(617, "%00000269"), - Attrs([Attr("address","0x6FC")]), Phis([]), Defs([]), -Jmps([Call(Tid(625, "%00000271"), Attrs([Attr("address","0x6FC"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))])), -Blk(Tid(889, "%00000379"), Attrs([Attr("address","0x6F4")]), Phis([]), -Defs([Def(Tid(893, "%0000037d"), Attrs([Attr("address","0x6F4"), -Attr("insn","mov x16, x1")]), Var("R16",Imm(64)), Var("R1",Imm(64)))]), -Jmps([Call(Tid(898, "%00000382"), Attrs([Attr("address","0x6F8"), -Attr("insn","br x16")]), Int(1,1), (Indirect(Var("R16",Imm(64))),))]))])), -Sub(Tid(1_499, "@fork"), Attrs([Attr("c.proto","signed (*)(void)"), -Attr("returns-twice","()"), Attr("address","0x640"), Attr("stub","()")]), - "fork", Args([Arg(Tid(1_543, "%00000607"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("fork_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(424, "@fork"), - Attrs([Attr("address","0x640")]), Phis([]), Defs([]), -Jmps([Goto(Tid(427, "%000001ab"), Attrs([Attr("address","0x640"), -Attr("insn","b #-0x30")]), Int(1,1), Direct(Tid(425, "@fork")))])), -Blk(Tid(425, "@fork"), Attrs([Attr("address","0x610")]), Phis([]), -Defs([Def(Tid(1_122, "%00000462"), Attrs([Attr("address","0x610"), -Attr("insn","adrp x16, #65536")]), Var("R16",Imm(64)), Int(65536,64)), -Def(Tid(1_129, "%00000469"), Attrs([Attr("address","0x614"), -Attr("insn","ldr x17, [x16, #0xfb8]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(4024,64)),LittleEndian(),64)), -Def(Tid(1_135, "%0000046f"), Attrs([Attr("address","0x618"), -Attr("insn","add x16, x16, #0xfb8")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(4024,64)))]), Jmps([Call(Tid(1_140, "%00000474"), - Attrs([Attr("address","0x61C"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), Sub(Tid(1_500, "@frame_dummy"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x790")]), - "frame_dummy", Args([Arg(Tid(1_544, "%00000608"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("frame_dummy_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(777, "@frame_dummy"), - Attrs([Attr("address","0x790")]), Phis([]), Defs([]), -Jmps([Call(Tid(779, "%0000030b"), Attrs([Attr("address","0x790"), -Attr("insn","b #-0x90")]), Int(1,1), -(Direct(Tid(1_501, "@register_tm_clones")),))]))])), -Sub(Tid(1_501, "@register_tm_clones"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x700")]), - "register_tm_clones", Args([Arg(Tid(1_545, "%00000609"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("register_tm_clones_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(627, "@register_tm_clones"), Attrs([Attr("address","0x700")]), - Phis([]), Defs([Def(Tid(630, "%00000276"), Attrs([Attr("address","0x700"), -Attr("insn","adrp x0, #69632")]), Var("R0",Imm(64)), Int(69632,64)), -Def(Tid(636, "%0000027c"), Attrs([Attr("address","0x704"), -Attr("insn","add x0, x0, #0x10")]), Var("R0",Imm(64)), -PLUS(Var("R0",Imm(64)),Int(16,64))), Def(Tid(641, "%00000281"), - Attrs([Attr("address","0x708"), Attr("insn","adrp x1, #69632")]), - Var("R1",Imm(64)), Int(69632,64)), Def(Tid(647, "%00000287"), - Attrs([Attr("address","0x70C"), Attr("insn","add x1, x1, #0x10")]), - Var("R1",Imm(64)), PLUS(Var("R1",Imm(64)),Int(16,64))), -Def(Tid(654, "%0000028e"), Attrs([Attr("address","0x710"), -Attr("insn","sub x1, x1, x0")]), Var("R1",Imm(64)), -PLUS(PLUS(Var("R1",Imm(64)),NOT(Var("R0",Imm(64)))),Int(1,64))), -Def(Tid(660, "%00000294"), Attrs([Attr("address","0x714"), -Attr("insn","lsr x2, x1, #63")]), Var("R2",Imm(64)), -Concat(Int(0,63),Extract(63,63,Var("R1",Imm(64))))), -Def(Tid(667, "%0000029b"), Attrs([Attr("address","0x718"), -Attr("insn","add x1, x2, x1, asr #3")]), Var("R1",Imm(64)), -PLUS(Var("R2",Imm(64)),ARSHIFT(Var("R1",Imm(64)),Int(3,3)))), -Def(Tid(673, "%000002a1"), Attrs([Attr("address","0x71C"), -Attr("insn","asr x1, x1, #1")]), Var("R1",Imm(64)), -SIGNED(64,Extract(63,1,Var("R1",Imm(64)))))]), -Jmps([Goto(Tid(679, "%000002a7"), Attrs([Attr("address","0x720"), -Attr("insn","cbz x1, #0x18")]), EQ(Var("R1",Imm(64)),Int(0,64)), -Direct(Tid(677, "%000002a5"))), Goto(Tid(1_528, "%000005f8"), Attrs([]), - Int(1,1), Direct(Tid(840, "%00000348")))])), Blk(Tid(840, "%00000348"), - Attrs([Attr("address","0x724")]), Phis([]), Defs([Def(Tid(843, "%0000034b"), - Attrs([Attr("address","0x724"), Attr("insn","adrp x2, #65536")]), - Var("R2",Imm(64)), Int(65536,64)), Def(Tid(850, "%00000352"), - Attrs([Attr("address","0x728"), Attr("insn","ldr x2, [x2, #0xff8]")]), - Var("R2",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R2",Imm(64)),Int(4088,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(855, "%00000357"), Attrs([Attr("address","0x72C"), -Attr("insn","cbz x2, #0xc")]), EQ(Var("R2",Imm(64)),Int(0,64)), -Direct(Tid(677, "%000002a5"))), Goto(Tid(1_529, "%000005f9"), Attrs([]), - Int(1,1), Direct(Tid(859, "%0000035b")))])), Blk(Tid(677, "%000002a5"), - Attrs([Attr("address","0x738")]), Phis([]), Defs([]), -Jmps([Call(Tid(685, "%000002ad"), Attrs([Attr("address","0x738"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))])), -Blk(Tid(859, "%0000035b"), Attrs([Attr("address","0x730")]), Phis([]), -Defs([Def(Tid(863, "%0000035f"), Attrs([Attr("address","0x730"), -Attr("insn","mov x16, x2")]), Var("R16",Imm(64)), Var("R2",Imm(64)))]), -Jmps([Call(Tid(868, "%00000364"), Attrs([Attr("address","0x734"), -Attr("insn","br x16")]), Int(1,1), -(Indirect(Var("R16",Imm(64))),))]))]))]))) \ No newline at end of file diff --git a/src/test/correct/syscall/gcc_O2/syscall.bir b/src/test/correct/syscall/gcc_O2/syscall.bir deleted file mode 100644 index 512e2ee06..000000000 --- a/src/test/correct/syscall/gcc_O2/syscall.bir +++ /dev/null @@ -1,227 +0,0 @@ -000005fa: program -000005ca: sub __cxa_finalize(__cxa_finalize_result) -000005fb: __cxa_finalize_result :: out u32 = low:32[R0] - -00000344: -0000044c: R16 := 0x10000 -00000453: R17 := mem[R16 + 0xFB0, el]:u64 -00000459: R16 := R16 + 0xFB0 -0000045e: call R17 with noreturn - -000005cb: sub __do_global_dtors_aux(__do_global_dtors_aux_result) -000005fc: __do_global_dtors_aux_result :: out u32 = low:32[R0] - -000002b1: -000002b5: #3 := R31 - 0x20 -000002bb: mem := mem with [#3, el]:u64 <- R29 -000002c1: mem := mem with [#3 + 8, el]:u64 <- R30 -000002c5: R31 := #3 -000002cb: R29 := R31 -000002d3: mem := mem with [R31 + 0x10, el]:u64 <- R19 -000002d8: R19 := 0x11000 -000002df: R0 := pad:64[mem[R19 + 0x10]] -000002e6: when 31:0[R0] <> 0 goto %000002e4 -000005f0: goto %0000030d - -0000030d: -00000310: R0 := 0x10000 -00000317: R0 := mem[R0 + 0xFE0, el]:u64 -0000031d: when R0 = 0 goto %0000031b -000005f1: goto %00000334 - -00000334: -00000337: R0 := 0x11000 -0000033e: R0 := mem[R0 + 8, el]:u64 -00000343: R30 := 0x770 -00000346: call @__cxa_finalize with return %0000031b - -0000031b: -00000323: R30 := 0x774 -00000325: call @deregister_tm_clones with return %00000327 - -00000327: -0000032a: R0 := 1 -00000332: mem := mem with [R19 + 0x10] <- 7:0[R0] -000005f2: goto %000002e4 - -000002e4: -000002ee: R19 := mem[R31 + 0x10, el]:u64 -000002f5: R29 := mem[R31, el]:u64 -000002fa: R30 := mem[R31 + 8, el]:u64 -000002fe: R31 := R31 + 0x20 -00000303: call R30 with noreturn - -000005cf: sub __libc_start_main(__libc_start_main_main, __libc_start_main_arg2, __libc_start_main_arg3, __libc_start_main_auxv, __libc_start_main_result) -000005fd: __libc_start_main_main :: in u64 = R0 -000005fe: __libc_start_main_arg2 :: in u32 = low:32[R1] -000005ff: __libc_start_main_arg3 :: in out u64 = R2 -00000600: __libc_start_main_auxv :: in out u64 = R3 -00000601: __libc_start_main_result :: out u32 = low:32[R0] - -0000020a: -00000436: R16 := 0x10000 -0000043d: R17 := mem[R16 + 0xFA8, el]:u64 -00000443: R16 := R16 + 0xFA8 -00000448: call R17 with noreturn - -000005d0: sub _fini(_fini_result) -00000602: _fini_result :: out u32 = low:32[R0] - -0000001f: -00000025: #0 := R31 - 0x10 -0000002b: mem := mem with [#0, el]:u64 <- R29 -00000031: mem := mem with [#0 + 8, el]:u64 <- R30 -00000035: R31 := #0 -0000003b: R29 := R31 -00000042: R29 := mem[R31, el]:u64 -00000047: R30 := mem[R31 + 8, el]:u64 -0000004b: R31 := R31 + 0x10 -00000050: call R30 with noreturn - -000005d1: sub _init(_init_result) -00000603: _init_result :: out u32 = low:32[R0] - -00000518: -0000051e: #5 := R31 - 0x10 -00000524: mem := mem with [#5, el]:u64 <- R29 -0000052a: mem := mem with [#5 + 8, el]:u64 <- R30 -0000052e: R31 := #5 -00000534: R29 := R31 -00000539: R30 := 0x5C8 -0000053b: call @call_weak_fn with return %0000053d - -0000053d: -00000542: R29 := mem[R31, el]:u64 -00000547: R30 := mem[R31 + 8, el]:u64 -0000054b: R31 := R31 + 0x10 -00000550: call R30 with noreturn - -000005d2: sub _start(_start_result) -00000604: _start_result :: out u32 = low:32[R0] - -000001cb: -000001d0: R29 := 0 -000001d5: R30 := 0 -000001db: R5 := R0 -000001e2: R1 := mem[R31, el]:u64 -000001e8: R2 := R31 + 8 -000001ee: R6 := R31 -000001f3: R0 := 0x10000 -000001fa: R0 := mem[R0 + 0xFF0, el]:u64 -000001ff: R3 := 0 -00000204: R4 := 0 -00000209: R30 := 0x6B0 -0000020c: call @__libc_start_main with return %0000020e - -0000020e: -00000211: R30 := 0x6B4 -00000214: call @abort with return %000005f3 - -000005f3: -000005f4: call @call_weak_fn with noreturn - -000005d5: sub abort() - - -00000212: -0000048e: R16 := 0x10000 -00000495: R17 := mem[R16 + 0xFC8, el]:u64 -0000049b: R16 := R16 + 0xFC8 -000004a0: call R17 with noreturn - -000005d6: sub call_weak_fn(call_weak_fn_result) -00000605: call_weak_fn_result :: out u32 = low:32[R0] - -00000216: -00000219: R0 := 0x10000 -00000220: R0 := mem[R0 + 0xFE8, el]:u64 -00000226: when R0 = 0 goto %00000224 -000005f5: goto %00000384 - -00000224: -0000022c: call R30 with noreturn - -00000384: -00000387: goto @__gmon_start__ - -00000385: -00000478: R16 := 0x10000 -0000047f: R17 := mem[R16 + 0xFC0, el]:u64 -00000485: R16 := R16 + 0xFC0 -0000048a: call R17 with noreturn - -000005d8: sub deregister_tm_clones(deregister_tm_clones_result) -00000606: deregister_tm_clones_result :: out u32 = low:32[R0] - -00000232: -00000235: R0 := 0x11000 -0000023b: R0 := R0 + 0x10 -00000240: R1 := 0x11000 -00000246: R1 := R1 + 0x10 -0000024c: #1 := ~R0 -00000251: #2 := R1 + ~R0 -00000257: VF := extend:65[#2 + 1] <> extend:65[R1] + extend:65[#1] + 1 -0000025d: CF := pad:65[#2 + 1] <> pad:65[R1] + pad:65[#1] + 1 -00000261: ZF := #2 + 1 = 0 -00000265: NF := 63:63[#2 + 1] -0000026b: when ZF goto %00000269 -000005f6: goto %00000366 - -00000366: -00000369: R1 := 0x10000 -00000370: R1 := mem[R1 + 0xFD8, el]:u64 -00000375: when R1 = 0 goto %00000269 -000005f7: goto %00000379 - -00000269: -00000271: call R30 with noreturn - -00000379: -0000037d: R16 := R1 -00000382: call R16 with noreturn - -000005db: sub fork(fork_result) -00000607: fork_result :: out u32 = low:32[R0] - -000001a8: -000001ab: goto @fork - -000001a9: -00000462: R16 := 0x10000 -00000469: R17 := mem[R16 + 0xFB8, el]:u64 -0000046f: R16 := R16 + 0xFB8 -00000474: call R17 with noreturn - -000005dc: sub frame_dummy(frame_dummy_result) -00000608: frame_dummy_result :: out u32 = low:32[R0] - -00000309: -0000030b: call @register_tm_clones with noreturn - -000005dd: sub register_tm_clones(register_tm_clones_result) -00000609: register_tm_clones_result :: out u32 = low:32[R0] - -00000273: -00000276: R0 := 0x11000 -0000027c: R0 := R0 + 0x10 -00000281: R1 := 0x11000 -00000287: R1 := R1 + 0x10 -0000028e: R1 := R1 + ~R0 + 1 -00000294: R2 := 0.63:63[R1] -0000029b: R1 := R2 + (R1 ~>> 3) -000002a1: R1 := extend:64[63:1[R1]] -000002a7: when R1 = 0 goto %000002a5 -000005f8: goto %00000348 - -00000348: -0000034b: R2 := 0x10000 -00000352: R2 := mem[R2 + 0xFF8, el]:u64 -00000357: when R2 = 0 goto %000002a5 -000005f9: goto %0000035b - -000002a5: -000002ad: call R30 with noreturn - -0000035b: -0000035f: R16 := R2 -00000364: call R16 with noreturn diff --git a/src/test/correct/syscall/gcc_O2/syscall.expected b/src/test/correct/syscall/gcc_O2/syscall.expected index 1cd54ee7e..fef381e05 100644 --- a/src/test/correct/syscall/gcc_O2/syscall.expected +++ b/src/test/correct/syscall/gcc_O2/syscall.expected @@ -41,7 +41,7 @@ procedure {:extern} rely_reflexive(); procedure {:extern} guarantee_reflexive(); modifies Gamma_mem, mem; -procedure fork_1600(); +procedure fork(); modifies Gamma_R16, Gamma_R17, R16, R17; free requires (memory_load64_le(mem, 69632bv64) == 0bv64); free requires (memory_load64_le(mem, 69640bv64) == 69640bv64); diff --git a/src/test/correct/syscall/gcc_O2/syscall.gts b/src/test/correct/syscall/gcc_O2/syscall.gts deleted file mode 100644 index f590346ab..000000000 Binary files a/src/test/correct/syscall/gcc_O2/syscall.gts and /dev/null differ diff --git a/src/test/correct/syscall/gcc_O2/syscall.md5sum b/src/test/correct/syscall/gcc_O2/syscall.md5sum new file mode 100644 index 000000000..071451c0c --- /dev/null +++ b/src/test/correct/syscall/gcc_O2/syscall.md5sum @@ -0,0 +1,5 @@ +fc8678ab5c3a650a054f37f078fee94b correct/syscall/gcc_O2/a.out +54d3f63ea04f72d43fddb937b71ce408 correct/syscall/gcc_O2/syscall.adt +505fdedad00805b06ee4df9733e09808 correct/syscall/gcc_O2/syscall.bir +ef5abedd2b740ce318c81d07d8bf3cc3 correct/syscall/gcc_O2/syscall.relf +0e6110ec03c611a0a9a3d882424adc3c correct/syscall/gcc_O2/syscall.gts diff --git a/src/test/correct/syscall/gcc_O2/syscall.relf b/src/test/correct/syscall/gcc_O2/syscall.relf deleted file mode 100644 index f0fb610f0..000000000 --- a/src/test/correct/syscall/gcc_O2/syscall.relf +++ /dev/null @@ -1,122 +0,0 @@ - -Relocation section '.rela.dyn' at offset 0x480 contains 8 entries: - Offset Info Type Symbol's Value Symbol's Name + Addend -0000000000010d90 0000000000000403 R_AARCH64_RELATIVE 790 -0000000000010d98 0000000000000403 R_AARCH64_RELATIVE 740 -0000000000010ff0 0000000000000403 R_AARCH64_RELATIVE 640 -0000000000011008 0000000000000403 R_AARCH64_RELATIVE 11008 -0000000000010fd8 0000000400000401 R_AARCH64_GLOB_DAT 0000000000000000 _ITM_deregisterTMCloneTable + 0 -0000000000010fe0 0000000500000401 R_AARCH64_GLOB_DAT 0000000000000000 __cxa_finalize@GLIBC_2.17 + 0 -0000000000010fe8 0000000700000401 R_AARCH64_GLOB_DAT 0000000000000000 __gmon_start__ + 0 -0000000000010ff8 0000000900000401 R_AARCH64_GLOB_DAT 0000000000000000 _ITM_registerTMCloneTable + 0 - -Relocation section '.rela.plt' at offset 0x540 contains 5 entries: - Offset Info Type Symbol's Value Symbol's Name + Addend -0000000000010fa8 0000000300000402 R_AARCH64_JUMP_SLOT 0000000000000000 __libc_start_main@GLIBC_2.34 + 0 -0000000000010fb0 0000000500000402 R_AARCH64_JUMP_SLOT 0000000000000000 __cxa_finalize@GLIBC_2.17 + 0 -0000000000010fb8 0000000600000402 R_AARCH64_JUMP_SLOT 0000000000000000 fork@GLIBC_2.17 + 0 -0000000000010fc0 0000000700000402 R_AARCH64_JUMP_SLOT 0000000000000000 __gmon_start__ + 0 -0000000000010fc8 0000000800000402 R_AARCH64_JUMP_SLOT 0000000000000000 abort@GLIBC_2.17 + 0 - -Symbol table '.dynsym' contains 10 entries: - Num: Value Size Type Bind Vis Ndx Name - 0: 0000000000000000 0 NOTYPE LOCAL DEFAULT UND - 1: 00000000000005b8 0 SECTION LOCAL DEFAULT 11 .init - 2: 0000000000011000 0 SECTION LOCAL DEFAULT 22 .data - 3: 0000000000000000 0 FUNC GLOBAL DEFAULT UND __libc_start_main@GLIBC_2.34 (2) - 4: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_deregisterTMCloneTable - 5: 0000000000000000 0 FUNC WEAK DEFAULT UND __cxa_finalize@GLIBC_2.17 (3) - 6: 0000000000000000 0 FUNC GLOBAL DEFAULT UND fork@GLIBC_2.17 (3) - 7: 0000000000000000 0 NOTYPE WEAK DEFAULT UND __gmon_start__ - 8: 0000000000000000 0 FUNC GLOBAL DEFAULT UND abort@GLIBC_2.17 (3) - 9: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_registerTMCloneTable - -Symbol table '.symtab' contains 87 entries: - Num: Value Size Type Bind Vis Ndx Name - 0: 0000000000000000 0 NOTYPE LOCAL DEFAULT UND - 1: 0000000000000238 0 SECTION LOCAL DEFAULT 1 .interp - 2: 0000000000000254 0 SECTION LOCAL DEFAULT 2 .note.gnu.build-id - 3: 0000000000000278 0 SECTION LOCAL DEFAULT 3 .note.ABI-tag - 4: 0000000000000298 0 SECTION LOCAL DEFAULT 4 .gnu.hash - 5: 00000000000002b8 0 SECTION LOCAL DEFAULT 5 .dynsym - 6: 00000000000003a8 0 SECTION LOCAL DEFAULT 6 .dynstr - 7: 000000000000043a 0 SECTION LOCAL DEFAULT 7 .gnu.version - 8: 0000000000000450 0 SECTION LOCAL DEFAULT 8 .gnu.version_r - 9: 0000000000000480 0 SECTION LOCAL DEFAULT 9 .rela.dyn - 10: 0000000000000540 0 SECTION LOCAL DEFAULT 10 .rela.plt - 11: 00000000000005b8 0 SECTION LOCAL DEFAULT 11 .init - 12: 00000000000005d0 0 SECTION LOCAL DEFAULT 12 .plt - 13: 0000000000000640 0 SECTION LOCAL DEFAULT 13 .text - 14: 0000000000000794 0 SECTION LOCAL DEFAULT 14 .fini - 15: 00000000000007a8 0 SECTION LOCAL DEFAULT 15 .rodata - 16: 00000000000007ac 0 SECTION LOCAL DEFAULT 16 .eh_frame_hdr - 17: 00000000000007e8 0 SECTION LOCAL DEFAULT 17 .eh_frame - 18: 0000000000010d90 0 SECTION LOCAL DEFAULT 18 .init_array - 19: 0000000000010d98 0 SECTION LOCAL DEFAULT 19 .fini_array - 20: 0000000000010da0 0 SECTION LOCAL DEFAULT 20 .dynamic - 21: 0000000000010f90 0 SECTION LOCAL DEFAULT 21 .got - 22: 0000000000011000 0 SECTION LOCAL DEFAULT 22 .data - 23: 0000000000011010 0 SECTION LOCAL DEFAULT 23 .bss - 24: 0000000000000000 0 SECTION LOCAL DEFAULT 24 .comment - 25: 0000000000000000 0 FILE LOCAL DEFAULT ABS Scrt1.o - 26: 0000000000000278 0 NOTYPE LOCAL DEFAULT 3 $d - 27: 0000000000000278 32 OBJECT LOCAL DEFAULT 3 __abi_tag - 28: 0000000000000680 0 NOTYPE LOCAL DEFAULT 13 $x - 29: 00000000000007fc 0 NOTYPE LOCAL DEFAULT 17 $d - 30: 00000000000007a8 0 NOTYPE LOCAL DEFAULT 15 $d - 31: 0000000000000000 0 FILE LOCAL DEFAULT ABS crti.o - 32: 00000000000006b4 0 NOTYPE LOCAL DEFAULT 13 $x - 33: 00000000000006b4 20 FUNC LOCAL DEFAULT 13 call_weak_fn - 34: 00000000000005b8 0 NOTYPE LOCAL DEFAULT 11 $x - 35: 0000000000000794 0 NOTYPE LOCAL DEFAULT 14 $x - 36: 0000000000000000 0 FILE LOCAL DEFAULT ABS crtn.o - 37: 00000000000005c8 0 NOTYPE LOCAL DEFAULT 11 $x - 38: 00000000000007a0 0 NOTYPE LOCAL DEFAULT 14 $x - 39: 0000000000000000 0 FILE LOCAL DEFAULT ABS syscall.c - 40: 0000000000000640 0 NOTYPE LOCAL DEFAULT 13 $x - 41: 0000000000000870 0 NOTYPE LOCAL DEFAULT 17 $d - 42: 0000000000000000 0 FILE LOCAL DEFAULT ABS crtstuff.c - 43: 00000000000006d0 0 NOTYPE LOCAL DEFAULT 13 $x - 44: 00000000000006d0 0 FUNC LOCAL DEFAULT 13 deregister_tm_clones - 45: 0000000000000700 0 FUNC LOCAL DEFAULT 13 register_tm_clones - 46: 0000000000011008 0 NOTYPE LOCAL DEFAULT 22 $d - 47: 0000000000000740 0 FUNC LOCAL DEFAULT 13 __do_global_dtors_aux - 48: 0000000000011010 1 OBJECT LOCAL DEFAULT 23 completed.0 - 49: 0000000000010d98 0 NOTYPE LOCAL DEFAULT 19 $d - 50: 0000000000010d98 0 OBJECT LOCAL DEFAULT 19 __do_global_dtors_aux_fini_array_entry - 51: 0000000000000790 0 FUNC LOCAL DEFAULT 13 frame_dummy - 52: 0000000000010d90 0 NOTYPE LOCAL DEFAULT 18 $d - 53: 0000000000010d90 0 OBJECT LOCAL DEFAULT 18 __frame_dummy_init_array_entry - 54: 0000000000000810 0 NOTYPE LOCAL DEFAULT 17 $d - 55: 0000000000011010 0 NOTYPE LOCAL DEFAULT 23 $d - 56: 0000000000000000 0 FILE LOCAL DEFAULT ABS crtstuff.c - 57: 0000000000000884 0 NOTYPE LOCAL DEFAULT 17 $d - 58: 0000000000000884 0 OBJECT LOCAL DEFAULT 17 __FRAME_END__ - 59: 0000000000000000 0 FILE LOCAL DEFAULT ABS - 60: 0000000000010da0 0 OBJECT LOCAL DEFAULT ABS _DYNAMIC - 61: 00000000000007ac 0 NOTYPE LOCAL DEFAULT 16 __GNU_EH_FRAME_HDR - 62: 0000000000010fd0 0 OBJECT LOCAL DEFAULT ABS _GLOBAL_OFFSET_TABLE_ - 63: 00000000000005d0 0 NOTYPE LOCAL DEFAULT 12 $x - 64: 0000000000000000 0 FUNC GLOBAL DEFAULT UND __libc_start_main@GLIBC_2.34 - 65: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_deregisterTMCloneTable - 66: 0000000000011000 0 NOTYPE WEAK DEFAULT 22 data_start - 67: 0000000000011010 0 NOTYPE GLOBAL DEFAULT 23 __bss_start__ - 68: 0000000000000000 0 FUNC WEAK DEFAULT UND __cxa_finalize@GLIBC_2.17 - 69: 0000000000011018 0 NOTYPE GLOBAL DEFAULT 23 _bss_end__ - 70: 0000000000000000 0 FUNC GLOBAL DEFAULT UND fork@GLIBC_2.17 - 71: 0000000000011010 0 NOTYPE GLOBAL DEFAULT 22 _edata - 72: 0000000000000794 0 FUNC GLOBAL HIDDEN 14 _fini - 73: 0000000000011018 0 NOTYPE GLOBAL DEFAULT 23 __bss_end__ - 74: 0000000000011000 0 NOTYPE GLOBAL DEFAULT 22 __data_start - 75: 0000000000000000 0 NOTYPE WEAK DEFAULT UND __gmon_start__ - 76: 0000000000011008 0 OBJECT GLOBAL HIDDEN 22 __dso_handle - 77: 0000000000000000 0 FUNC GLOBAL DEFAULT UND abort@GLIBC_2.17 - 78: 00000000000007a8 4 OBJECT GLOBAL DEFAULT 15 _IO_stdin_used - 79: 0000000000011018 0 NOTYPE GLOBAL DEFAULT 23 _end - 80: 0000000000000680 52 FUNC GLOBAL DEFAULT 13 _start - 81: 0000000000011018 0 NOTYPE GLOBAL DEFAULT 23 __end__ - 82: 0000000000011010 0 NOTYPE GLOBAL DEFAULT 23 __bss_start - 83: 0000000000000640 4 FUNC GLOBAL DEFAULT 13 main - 84: 0000000000011010 0 OBJECT GLOBAL HIDDEN 22 __TMC_END__ - 85: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_registerTMCloneTable - 86: 00000000000005b8 0 FUNC GLOBAL HIDDEN 11 _init diff --git a/src/test/correct/syscall/gcc_O2/syscall_gtirb.expected b/src/test/correct/syscall/gcc_O2/syscall_gtirb.expected index 7e7db9938..ab4bf63f8 100644 --- a/src/test/correct/syscall/gcc_O2/syscall_gtirb.expected +++ b/src/test/correct/syscall/gcc_O2/syscall_gtirb.expected @@ -5,7 +5,7 @@ var {:extern} R16: bv64; var {:extern} R17: bv64; var {:extern} mem: [bv64]bv8; const {:extern} $_IO_stdin_used_addr: bv64; -axiom ($_IO_stdin_used_addr == 1960bv64); +axiom ($_IO_stdin_used_addr == 4196376bv64); function {:extern} L(mem$in: [bv64]bv8, index: bv64) returns (bool) { false } @@ -27,11 +27,7 @@ procedure {:extern} rely(); modifies Gamma_mem, mem; ensures (Gamma_mem == old(Gamma_mem)); ensures (mem == old(mem)); - free ensures (memory_load32_le(mem, 1960bv64) == 131073bv32); - free ensures (memory_load64_le(mem, 69008bv64) == 1936bv64); - free ensures (memory_load64_le(mem, 69016bv64) == 1856bv64); - free ensures (memory_load64_le(mem, 69616bv64) == 1600bv64); - free ensures (memory_load64_le(mem, 69640bv64) == 69640bv64); + free ensures (memory_load32_le(mem, 4196376bv64) == 131073bv32); procedure {:extern} rely_transitive(); modifies Gamma_mem, mem; @@ -49,72 +45,42 @@ procedure {:extern} rely_reflexive(); procedure {:extern} guarantee_reflexive(); modifies Gamma_mem, mem; -procedure main_1600(); +procedure .L_400680(); modifies Gamma_R16, Gamma_R17, Gamma_mem, R16, R17, mem; - free requires (memory_load64_le(mem, 69632bv64) == 0bv64); - free requires (memory_load64_le(mem, 69640bv64) == 69640bv64); - free requires (memory_load32_le(mem, 1960bv64) == 131073bv32); - free requires (memory_load64_le(mem, 69008bv64) == 1936bv64); - free requires (memory_load64_le(mem, 69016bv64) == 1856bv64); - free requires (memory_load64_le(mem, 69616bv64) == 1600bv64); - free requires (memory_load64_le(mem, 69640bv64) == 69640bv64); - free ensures (memory_load32_le(mem, 1960bv64) == 131073bv32); - free ensures (memory_load64_le(mem, 69008bv64) == 1936bv64); - free ensures (memory_load64_le(mem, 69016bv64) == 1856bv64); - free ensures (memory_load64_le(mem, 69616bv64) == 1600bv64); - free ensures (memory_load64_le(mem, 69640bv64) == 69640bv64); + free requires (memory_load32_le(mem, 4196376bv64) == 131073bv32); + free ensures (memory_load32_le(mem, 4196376bv64) == 131073bv32); -implementation main_1600() +implementation .L_400680() { - main_1600__0__LN79XLVpSMWduuQh58xTyg: - assume {:captureState "main_1600__0__LN79XLVpSMWduuQh58xTyg"} true; - call .L_610_1552(); - goto main_1600_basil_return; - main_1600_basil_return: - assume {:captureState "main_1600_basil_return"} true; - return; + var $load5: bv64; + var Gamma_$load5: bool; + $.L_400680$__0__$UfNyH7KvQiam2F847lIf0g: + assume {:captureState "$.L_400680$__0__$UfNyH7KvQiam2F847lIf0g"} true; + R16, Gamma_R16 := 4321280bv64, true; + call rely(); + $load5, Gamma_$load5 := memory_load64_le(mem, bvadd64(R16, 4040bv64)), (gamma_load64(Gamma_mem, bvadd64(R16, 4040bv64)) || L(mem, bvadd64(R16, 4040bv64))); + R17, Gamma_R17 := $load5, Gamma_$load5; + R16, Gamma_R16 := bvadd64(R16, 4040bv64), Gamma_R16; + call fork(); + assume false; } -procedure .L_610_1552(); +procedure main(); modifies Gamma_R16, Gamma_R17, Gamma_mem, R16, R17, mem; - free requires (memory_load32_le(mem, 1960bv64) == 131073bv32); - free requires (memory_load64_le(mem, 69008bv64) == 1936bv64); - free requires (memory_load64_le(mem, 69016bv64) == 1856bv64); - free requires (memory_load64_le(mem, 69616bv64) == 1600bv64); - free requires (memory_load64_le(mem, 69640bv64) == 69640bv64); - free ensures (memory_load32_le(mem, 1960bv64) == 131073bv32); - free ensures (memory_load64_le(mem, 69008bv64) == 1936bv64); - free ensures (memory_load64_le(mem, 69016bv64) == 1856bv64); - free ensures (memory_load64_le(mem, 69616bv64) == 1600bv64); - free ensures (memory_load64_le(mem, 69640bv64) == 69640bv64); + free requires (memory_load64_le(mem, 4325376bv64) == 0bv64); + free requires (memory_load64_le(mem, 4325384bv64) == 0bv64); + free requires (memory_load32_le(mem, 4196376bv64) == 131073bv32); + free ensures (memory_load32_le(mem, 4196376bv64) == 131073bv32); -implementation .L_610_1552() +implementation main() { - var Gamma_load17: bool; - var load17: bv64; - .L_610_1552__0__RiGyG5O~QPG2HCmgeNO63Q: - assume {:captureState ".L_610_1552__0__RiGyG5O~QPG2HCmgeNO63Q"} true; - R16, Gamma_R16 := 65536bv64, true; - call rely(); - load17, Gamma_load17 := memory_load64_le(mem, bvadd64(R16, 4024bv64)), (gamma_load64(Gamma_mem, bvadd64(R16, 4024bv64)) || L(mem, bvadd64(R16, 4024bv64))); - R17, Gamma_R17 := load17, Gamma_load17; - R16, Gamma_R16 := bvadd64(R16, 4024bv64), Gamma_R16; - call fork(); - goto .L_610_1552_basil_return; - .L_610_1552_basil_return: - assume {:captureState ".L_610_1552_basil_return"} true; - return; + $main$__0__$YmNxI7RsS_6TZy3HTKzvWg: + assume {:captureState "$main$__0__$YmNxI7RsS_6TZy3HTKzvWg"} true; + call .L_400680(); + assume false; } procedure fork(); - free requires (memory_load32_le(mem, 1960bv64) == 131073bv32); - free requires (memory_load64_le(mem, 69008bv64) == 1936bv64); - free requires (memory_load64_le(mem, 69016bv64) == 1856bv64); - free requires (memory_load64_le(mem, 69616bv64) == 1600bv64); - free requires (memory_load64_le(mem, 69640bv64) == 69640bv64); - free ensures (memory_load32_le(mem, 1960bv64) == 131073bv32); - free ensures (memory_load64_le(mem, 69008bv64) == 1936bv64); - free ensures (memory_load64_le(mem, 69016bv64) == 1856bv64); - free ensures (memory_load64_le(mem, 69616bv64) == 1600bv64); - free ensures (memory_load64_le(mem, 69640bv64) == 69640bv64); + free requires (memory_load32_le(mem, 4196376bv64) == 131073bv32); + free ensures (memory_load32_le(mem, 4196376bv64) == 131073bv32); diff --git a/src/test/correct/using_gamma_conditional/clang/using_gamma_conditional.adt b/src/test/correct/using_gamma_conditional/clang/using_gamma_conditional.adt deleted file mode 100644 index 6c62f4014..000000000 --- a/src/test/correct/using_gamma_conditional/clang/using_gamma_conditional.adt +++ /dev/null @@ -1,554 +0,0 @@ -Project(Attrs([Attr("filename","\"clang/using_gamma_conditional.out\""), -Attr("image-specification","(declare abi (name str))\n(declare arch (name str))\n(declare base-address (addr int))\n(declare bias (off int))\n(declare bits (size int))\n(declare code-region (addr int) (size int) (off int))\n(declare code-start (addr int))\n(declare entry-point (addr int))\n(declare external-reference (addr int) (name str))\n(declare format (name str))\n(declare is-executable (flag bool))\n(declare is-little-endian (flag bool))\n(declare llvm:base-address (addr int))\n(declare llvm:code-entry (name str) (off int) (size int))\n(declare llvm:coff-import-library (name str))\n(declare llvm:coff-virtual-section-header (name str) (addr int) (size int))\n(declare llvm:elf-program-header (name str) (off int) (size int))\n(declare llvm:elf-program-header-flags (name str) (ld bool) (r bool) \n (w bool) (x bool))\n(declare llvm:elf-virtual-program-header (name str) (addr int) (size int))\n(declare llvm:entry-point (addr int))\n(declare llvm:macho-symbol (name str) (value int))\n(declare llvm:name-reference (at int) (name str))\n(declare llvm:relocation (at int) (addr int))\n(declare llvm:section-entry (name str) (addr int) (size int) (off int))\n(declare llvm:section-flags (name str) (r bool) (w bool) (x bool))\n(declare llvm:segment-command (name str) (off int) (size int))\n(declare llvm:segment-command-flags (name str) (r bool) (w bool) (x bool))\n(declare llvm:symbol-entry (name str) (addr int) (size int) (off int)\n (value int))\n(declare llvm:virtual-segment-command (name str) (addr int) (size int))\n(declare mapped (addr int) (size int) (off int))\n(declare named-region (addr int) (size int) (name str))\n(declare named-symbol (addr int) (name str))\n(declare require (name str))\n(declare section (addr int) (size int))\n(declare segment (addr int) (size int) (r bool) (w bool) (x bool))\n(declare subarch (name str))\n(declare symbol-chunk (addr int) (size int) (root int))\n(declare symbol-value (addr int) (value int))\n(declare system (name str))\n(declare vendor (name str))\n\n(abi unknown)\n(arch aarch64)\n(base-address 0)\n(bias 0)\n(bits 64)\n(code-region 1876 20 1876)\n(code-region 1536 340 1536)\n(code-region 1440 96 1440)\n(code-region 1408 24 1408)\n(code-start 1588)\n(code-start 1536)\n(code-start 1812)\n(entry-point 1536)\n(external-reference 69568 _ITM_deregisterTMCloneTable)\n(external-reference 69576 __cxa_finalize)\n(external-reference 69584 __gmon_start__)\n(external-reference 69600 _ITM_registerTMCloneTable)\n(external-reference 69632 __libc_start_main)\n(external-reference 69640 __cxa_finalize)\n(external-reference 69648 __gmon_start__)\n(external-reference 69656 abort)\n(format elf)\n(is-executable true)\n(is-little-endian true)\n(llvm:base-address 0)\n(llvm:code-entry abort 0 0)\n(llvm:code-entry __cxa_finalize 0 0)\n(llvm:code-entry __libc_start_main 0 0)\n(llvm:code-entry _init 1408 0)\n(llvm:code-entry main 1812 64)\n(llvm:code-entry _start 1536 52)\n(llvm:code-entry abort@GLIBC_2.17 0 0)\n(llvm:code-entry _fini 1876 0)\n(llvm:code-entry __cxa_finalize@GLIBC_2.17 0 0)\n(llvm:code-entry __libc_start_main@GLIBC_2.34 0 0)\n(llvm:code-entry frame_dummy 1808 0)\n(llvm:code-entry __do_global_dtors_aux 1728 0)\n(llvm:code-entry register_tm_clones 1664 0)\n(llvm:code-entry deregister_tm_clones 1616 0)\n(llvm:code-entry call_weak_fn 1588 20)\n(llvm:code-entry .fini 1876 20)\n(llvm:code-entry .text 1536 340)\n(llvm:code-entry .plt 1440 96)\n(llvm:code-entry .init 1408 24)\n(llvm:elf-program-header 08 3528 568)\n(llvm:elf-program-header 07 0 0)\n(llvm:elf-program-header 06 1900 60)\n(llvm:elf-program-header 05 596 68)\n(llvm:elf-program-header 04 3544 480)\n(llvm:elf-program-header 03 3528 616)\n(llvm:elf-program-header 02 0 2144)\n(llvm:elf-program-header 01 568 27)\n(llvm:elf-program-header 00 64 504)\n(llvm:elf-program-header-flags 08 false true false false)\n(llvm:elf-program-header-flags 07 false true true false)\n(llvm:elf-program-header-flags 06 false true false false)\n(llvm:elf-program-header-flags 05 false true false false)\n(llvm:elf-program-header-flags 04 false true true false)\n(llvm:elf-program-header-flags 03 true true true false)\n(llvm:elf-program-header-flags 02 true true false true)\n(llvm:elf-program-header-flags 01 false true false false)\n(llvm:elf-program-header-flags 00 false true false false)\n(llvm:elf-virtual-program-header 08 69064 568)\n(llvm:elf-virtual-program-header 07 0 0)\n(llvm:elf-virtual-program-header 06 1900 60)\n(llvm:elf-virtual-program-header 05 596 68)\n(llvm:elf-virtual-program-header 04 69080 480)\n(llvm:elf-virtual-program-header 03 69064 632)\n(llvm:elf-virtual-program-header 02 0 2144)\n(llvm:elf-virtual-program-header 01 568 27)\n(llvm:elf-virtual-program-header 00 64 504)\n(llvm:entry-point 1536)\n(llvm:name-reference 69656 abort)\n(llvm:name-reference 69648 __gmon_start__)\n(llvm:name-reference 69640 __cxa_finalize)\n(llvm:name-reference 69632 __libc_start_main)\n(llvm:name-reference 69600 _ITM_registerTMCloneTable)\n(llvm:name-reference 69584 __gmon_start__)\n(llvm:name-reference 69576 __cxa_finalize)\n(llvm:name-reference 69568 _ITM_deregisterTMCloneTable)\n(llvm:section-entry .shstrtab 0 259 6981)\n(llvm:section-entry .strtab 0 581 6400)\n(llvm:section-entry .symtab 0 2184 4216)\n(llvm:section-entry .comment 0 71 4144)\n(llvm:section-entry .bss 69680 16 4144)\n(llvm:section-entry .data 69664 16 4128)\n(llvm:section-entry .got.plt 69608 56 4072)\n(llvm:section-entry .got 69560 48 4024)\n(llvm:section-entry .dynamic 69080 480 3544)\n(llvm:section-entry .fini_array 69072 8 3536)\n(llvm:section-entry .init_array 69064 8 3528)\n(llvm:section-entry .eh_frame 1960 184 1960)\n(llvm:section-entry .eh_frame_hdr 1900 60 1900)\n(llvm:section-entry .rodata 1896 4 1896)\n(llvm:section-entry .fini 1876 20 1876)\n(llvm:section-entry .text 1536 340 1536)\n(llvm:section-entry .plt 1440 96 1440)\n(llvm:section-entry .init 1408 24 1408)\n(llvm:section-entry .rela.plt 1312 96 1312)\n(llvm:section-entry .rela.dyn 1120 192 1120)\n(llvm:section-entry .gnu.version_r 1072 48 1072)\n(llvm:section-entry .gnu.version 1054 18 1054)\n(llvm:section-entry .dynstr 912 141 912)\n(llvm:section-entry .dynsym 696 216 696)\n(llvm:section-entry .gnu.hash 664 28 664)\n(llvm:section-entry .note.ABI-tag 632 32 632)\n(llvm:section-entry .note.gnu.build-id 596 36 596)\n(llvm:section-entry .interp 568 27 568)\n(llvm:section-flags .shstrtab true false false)\n(llvm:section-flags .strtab true false false)\n(llvm:section-flags .symtab true false false)\n(llvm:section-flags .comment true false false)\n(llvm:section-flags .bss true true false)\n(llvm:section-flags .data true true false)\n(llvm:section-flags .got.plt true true false)\n(llvm:section-flags .got true true false)\n(llvm:section-flags .dynamic true true false)\n(llvm:section-flags .fini_array true true false)\n(llvm:section-flags .init_array true true false)\n(llvm:section-flags .eh_frame true false false)\n(llvm:section-flags .eh_frame_hdr true false false)\n(llvm:section-flags .rodata true false false)\n(llvm:section-flags .fini true false true)\n(llvm:section-flags .text true false true)\n(llvm:section-flags .plt true false true)\n(llvm:section-flags .init true false true)\n(llvm:section-flags .rela.plt true false false)\n(llvm:section-flags .rela.dyn true false false)\n(llvm:section-flags .gnu.version_r true false false)\n(llvm:section-flags .gnu.version true false false)\n(llvm:section-flags .dynstr true false false)\n(llvm:section-flags .dynsym true false false)\n(llvm:section-flags .gnu.hash true false false)\n(llvm:section-flags .note.ABI-tag true false false)\n(llvm:section-flags .note.gnu.build-id true false false)\n(llvm:section-flags .interp true false false)\n(llvm:symbol-entry abort 0 0 0 0)\n(llvm:symbol-entry __cxa_finalize 0 0 0 0)\n(llvm:symbol-entry __libc_start_main 0 0 0 0)\n(llvm:symbol-entry _init 1408 0 1408 1408)\n(llvm:symbol-entry main 1812 64 1812 1812)\n(llvm:symbol-entry _start 1536 52 1536 1536)\n(llvm:symbol-entry abort@GLIBC_2.17 0 0 0 0)\n(llvm:symbol-entry _fini 1876 0 1876 1876)\n(llvm:symbol-entry __cxa_finalize@GLIBC_2.17 0 0 0 0)\n(llvm:symbol-entry __libc_start_main@GLIBC_2.34 0 0 0 0)\n(llvm:symbol-entry frame_dummy 1808 0 1808 1808)\n(llvm:symbol-entry __do_global_dtors_aux 1728 0 1728 1728)\n(llvm:symbol-entry register_tm_clones 1664 0 1664 1664)\n(llvm:symbol-entry deregister_tm_clones 1616 0 1616 1616)\n(llvm:symbol-entry call_weak_fn 1588 20 1588 1588)\n(mapped 0 2144 0)\n(mapped 69064 616 3528)\n(named-region 0 2144 02)\n(named-region 69064 632 03)\n(named-region 568 27 .interp)\n(named-region 596 36 .note.gnu.build-id)\n(named-region 632 32 .note.ABI-tag)\n(named-region 664 28 .gnu.hash)\n(named-region 696 216 .dynsym)\n(named-region 912 141 .dynstr)\n(named-region 1054 18 .gnu.version)\n(named-region 1072 48 .gnu.version_r)\n(named-region 1120 192 .rela.dyn)\n(named-region 1312 96 .rela.plt)\n(named-region 1408 24 .init)\n(named-region 1440 96 .plt)\n(named-region 1536 340 .text)\n(named-region 1876 20 .fini)\n(named-region 1896 4 .rodata)\n(named-region 1900 60 .eh_frame_hdr)\n(named-region 1960 184 .eh_frame)\n(named-region 69064 8 .init_array)\n(named-region 69072 8 .fini_array)\n(named-region 69080 480 .dynamic)\n(named-region 69560 48 .got)\n(named-region 69608 56 .got.plt)\n(named-region 69664 16 .data)\n(named-region 69680 16 .bss)\n(named-region 0 71 .comment)\n(named-region 0 2184 .symtab)\n(named-region 0 581 .strtab)\n(named-region 0 259 .shstrtab)\n(named-symbol 1588 call_weak_fn)\n(named-symbol 1616 deregister_tm_clones)\n(named-symbol 1664 register_tm_clones)\n(named-symbol 1728 __do_global_dtors_aux)\n(named-symbol 1808 frame_dummy)\n(named-symbol 0 __libc_start_main@GLIBC_2.34)\n(named-symbol 0 __cxa_finalize@GLIBC_2.17)\n(named-symbol 1876 _fini)\n(named-symbol 0 abort@GLIBC_2.17)\n(named-symbol 1536 _start)\n(named-symbol 1812 main)\n(named-symbol 1408 _init)\n(named-symbol 0 __libc_start_main)\n(named-symbol 0 __cxa_finalize)\n(named-symbol 0 abort)\n(require libc.so.6)\n(section 568 27)\n(section 596 36)\n(section 632 32)\n(section 664 28)\n(section 696 216)\n(section 912 141)\n(section 1054 18)\n(section 1072 48)\n(section 1120 192)\n(section 1312 96)\n(section 1408 24)\n(section 1440 96)\n(section 1536 340)\n(section 1876 20)\n(section 1896 4)\n(section 1900 60)\n(section 1960 184)\n(section 69064 8)\n(section 69072 8)\n(section 69080 480)\n(section 69560 48)\n(section 69608 56)\n(section 69664 16)\n(section 69680 16)\n(section 0 71)\n(section 0 2184)\n(section 0 581)\n(section 0 259)\n(segment 0 2144 true false true)\n(segment 69064 632 true true false)\n(subarch v8)\n(symbol-chunk 1588 20 1588)\n(symbol-chunk 1536 52 1536)\n(symbol-chunk 1812 64 1812)\n(symbol-value 1588 1588)\n(symbol-value 1616 1616)\n(symbol-value 1664 1664)\n(symbol-value 1728 1728)\n(symbol-value 1808 1808)\n(symbol-value 1876 1876)\n(symbol-value 1536 1536)\n(symbol-value 1812 1812)\n(symbol-value 1408 1408)\n(symbol-value 0 0)\n(system \"\")\n(vendor \"\")\n"), -Attr("abi-name","\"aarch64-linux-gnu-elf\"")]), -Sections([Section(".shstrtab", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x00\x06\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x48\x1c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x38\x00\x09\x00\x40\x00\x1d\x00\x1c\x00\x06\x00\x00\x00\x04\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x04\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x60\x08\x00\x00\x00\x00\x00\x00\x60\x08\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x01\x00\x00\x00\x06\x00\x00\x00\xc8\x0d\x00\x00\x00\x00\x00\x00\xc8\x0d\x01\x00\x00\x00\x00\x00\xc8\x0d\x01"), -Section(".strtab", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x00\x06\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x48\x1c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x38\x00\x09\x00\x40\x00\x1d\x00\x1c\x00\x06\x00\x00\x00\x04\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x04\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x60\x08\x00\x00\x00\x00\x00\x00\x60\x08\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x01\x00\x00\x00\x06\x00\x00\x00\xc8\x0d\x00\x00\x00\x00\x00\x00\xc8\x0d\x01\x00\x00\x00\x00\x00\xc8\x0d\x01\x00\x00\x00\x00\x00\x68\x02\x00\x00\x00\x00\x00\x00\x78\x02\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x02\x00\x00\x00\x06\x00\x00\x00\xd8\x0d\x00\x00\x00\x00\x00\x00\xd8\x0d\x01\x00\x00\x00\x00\x00\xd8\x0d\x01\x00\x00\x00\x00\x00\xe0\x01\x00\x00\x00\x00\x00\x00\xe0\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x04\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x50\xe5\x74\x64\x04\x00\x00\x00\x6c\x07\x00\x00\x00\x00\x00\x00\x6c\x07\x00\x00\x00\x00\x00\x00\x6c\x07\x00\x00\x00\x00\x00\x00\x3c\x00\x00\x00\x00\x00\x00\x00\x3c\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x51\xe5\x74\x64\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x52\xe5\x74\x64\x04\x00\x00\x00\xc8\x0d\x00\x00\x00\x00\x00\x00\xc8\x0d\x01\x00\x00\x00\x00\x00\xc8\x0d\x01\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x2f\x6c\x69\x62\x2f\x6c\x64\x2d\x6c\x69\x6e\x75\x78"), -Section(".comment", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x00\x06\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x48\x1c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x38\x00\x09\x00\x40\x00\x1d\x00\x1c\x00\x06\x00\x00\x00\x04\x00\x00"), -Section(".interp", 0x238, "\x2f\x6c\x69\x62\x2f\x6c\x64\x2d\x6c\x69\x6e\x75\x78\x2d\x61\x61\x72\x63\x68\x36\x34\x2e\x73\x6f\x2e\x31\x00"), -Section(".note.gnu.build-id", 0x254, "\x04\x00\x00\x00\x14\x00\x00\x00\x03\x00\x00\x00\x47\x4e\x55\x00\xb9\xf6\xbf\x7b\xa0\x2f\x4c\x37\x58\xde\xf4\x94\x9b\xa9\xff\x3c\x25\x88\x2a\xe0"), -Section(".note.ABI-tag", 0x278, "\x04\x00\x00\x00\x10\x00\x00\x00\x01\x00\x00\x00\x47\x4e\x55\x00\x00\x00\x00\x00\x03\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00"), -Section(".gnu.hash", 0x298, "\x01\x00\x00\x00\x01\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".dynsym", 0x2B8, "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x0b\x00\x80\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x17\x00\x20\x10\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x48\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x22\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x22\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x73\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".dynstr", 0x390, "\x00\x5f\x5f\x63\x78\x61\x5f\x66\x69\x6e\x61\x6c\x69\x7a\x65\x00\x5f\x5f\x6c\x69\x62\x63\x5f\x73\x74\x61\x72\x74\x5f\x6d\x61\x69\x6e\x00\x61\x62\x6f\x72\x74\x00\x6c\x69\x62\x63\x2e\x73\x6f\x2e\x36\x00\x47\x4c\x49\x42\x43\x5f\x32\x2e\x31\x37\x00\x47\x4c\x49\x42\x43\x5f\x32\x2e\x33\x34\x00\x5f\x49\x54\x4d\x5f\x64\x65\x72\x65\x67\x69\x73\x74\x65\x72\x54\x4d\x43\x6c\x6f\x6e\x65\x54\x61\x62\x6c\x65\x00\x5f\x5f\x67\x6d\x6f\x6e\x5f\x73\x74\x61\x72\x74\x5f\x5f\x00\x5f\x49\x54\x4d\x5f\x72\x65\x67\x69\x73\x74\x65\x72\x54\x4d\x43\x6c\x6f\x6e\x65\x54\x61\x62\x6c\x65\x00"), -Section(".gnu.version", 0x41E, "\x00\x00\x00\x00\x00\x00\x02\x00\x01\x00\x03\x00\x01\x00\x03\x00\x01\x00"), -Section(".gnu.version_r", 0x430, "\x01\x00\x02\x00\x28\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x97\x91\x96\x06\x00\x00\x03\x00\x32\x00\x00\x00\x10\x00\x00\x00\xb4\x91\x96\x06\x00\x00\x02\x00\x3d\x00\x00\x00\x00\x00\x00\x00"), -Section(".rela.dyn", 0x460, "\xc8\x0d\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x10\x07\x00\x00\x00\x00\x00\x00\xd0\x0d\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\xc0\x06\x00\x00\x00\x00\x00\x00\xd8\x0f\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x14\x07\x00\x00\x00\x00\x00\x00\x28\x10\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x28\x10\x01\x00\x00\x00\x00\x00\xc0\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xc8\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xd0\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe0\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".rela.plt", 0x520, "\x00\x10\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x08\x10\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x10\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x18\x10\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".init", 0x580, "\x1f\x20\x03\xd5\xfd\x7b\xbf\xa9\xfd\x03\x00\x91\x2a\x00\x00\x94\xfd\x7b\xc1\xa8\xc0\x03\x5f\xd6"), -Section(".plt", 0x5A0, "\xf0\x7b\xbf\xa9\x90\x00\x00\x90\x11\xfe\x47\xf9\x10\xe2\x3f\x91\x20\x02\x1f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x90\x00\x00\xb0\x11\x02\x40\xf9\x10\x02\x00\x91\x20\x02\x1f\xd6\x90\x00\x00\xb0\x11\x06\x40\xf9\x10\x22\x00\x91\x20\x02\x1f\xd6\x90\x00\x00\xb0\x11\x0a\x40\xf9\x10\x42\x00\x91\x20\x02\x1f\xd6\x90\x00\x00\xb0\x11\x0e\x40\xf9\x10\x62\x00\x91\x20\x02\x1f\xd6"), -Section(".text", 0x600, "\x1f\x20\x03\xd5\x1d\x00\x80\xd2\x1e\x00\x80\xd2\xe5\x03\x00\xaa\xe1\x03\x40\xf9\xe2\x23\x00\x91\xe6\x03\x00\x91\x80\x00\x00\x90\x00\xec\x47\xf9\x03\x00\x80\xd2\x04\x00\x80\xd2\xe5\xff\xff\x97\xf0\xff\xff\x97\x80\x00\x00\x90\x00\xe8\x47\xf9\x40\x00\x00\xb4\xe8\xff\xff\x17\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x80\x00\x00\xb0\x00\xc0\x00\x91\x81\x00\x00\xb0\x21\xc0\x00\x91\x3f\x00\x00\xeb\xc0\x00\x00\x54\x81\x00\x00\x90\x21\xe0\x47\xf9\x61\x00\x00\xb4\xf0\x03\x01\xaa\x00\x02\x1f\xd6\xc0\x03\x5f\xd6\x80\x00\x00\xb0\x00\xc0\x00\x91\x81\x00\x00\xb0\x21\xc0\x00\x91\x21\x00\x00\xcb\x22\xfc\x7f\xd3\x41\x0c\x81\x8b\x21\xfc\x41\x93\xc1\x00\x00\xb4\x82\x00\x00\x90\x42\xf0\x47\xf9\x62\x00\x00\xb4\xf0\x03\x02\xaa\x00\x02\x1f\xd6\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\xfd\x7b\xbe\xa9\xfd\x03\x00\x91\xf3\x0b\x00\xf9\x93\x00\x00\xb0\x60\xc2\x40\x39\x40\x01\x00\x35\x80\x00\x00\x90\x00\xe4\x47\xf9\x80\x00\x00\xb4\x80\x00\x00\xb0\x00\x14\x40\xf9\xb9\xff\xff\x97\xd8\xff\xff\x97\x20\x00\x80\x52\x60\xc2\x00\x39\xf3\x0b\x40\xf9\xfd\x7b\xc2\xa8\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\xdc\xff\xff\x17\xff\x43\x00\xd1\xff\x0f\x00\xb9\x88\x00\x00\xb0\x08\x35\x40\xb9\x08\x01\x00\x71\xe8\x17\x9f\x1a\x88\x00\x00\x37\x01\x00\x00\x14\xff\x0f\x00\xb9\x04\x00\x00\x14\x28\x00\x80\x52\xe8\x0f\x00\xb9\x01\x00\x00\x14\xe0\x0f\x40\xb9\xff\x43\x00\x91\xc0\x03\x5f\xd6"), -Section(".fini", 0x754, "\x1f\x20\x03\xd5\xfd\x7b\xbf\xa9\xfd\x03\x00\x91\xfd\x7b\xc1\xa8\xc0\x03\x5f\xd6"), -Section(".rodata", 0x768, "\x01\x00\x02\x00"), -Section(".eh_frame_hdr", 0x76C, "\x01\x1b\x03\x3b\x38\x00\x00\x00\x06\x00\x00\x00\x94\xfe\xff\xff\x50\x00\x00\x00\xe4\xfe\xff\xff\x64\x00\x00\x00\x14\xff\xff\xff\x78\x00\x00\x00\x54\xff\xff\xff\x8c\x00\x00\x00\xa4\xff\xff\xff\xb0\x00\x00\x00\xa8\xff\xff\xff\xd8\x00\x00\x00"), -Section(".eh_frame", 0x7A8, "\x10\x00\x00\x00\x00\x00\x00\x00\x01\x7a\x52\x00\x04\x78\x1e\x01\x1b\x0c\x1f\x00\x10\x00\x00\x00\x18\x00\x00\x00\x3c\xfe\xff\xff\x34\x00\x00\x00\x00\x41\x07\x1e\x10\x00\x00\x00\x2c\x00\x00\x00\x78\xfe\xff\xff\x30\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x40\x00\x00\x00\x94\xfe\xff\xff\x3c\x00\x00\x00\x00\x00\x00\x00\x20\x00\x00\x00\x54\x00\x00\x00\xc0\xfe\xff\xff\x48\x00\x00\x00\x00\x41\x0e\x20\x9d\x04\x9e\x03\x42\x93\x02\x4e\xde\xdd\xd3\x0e\x00\x00\x00\x00\x10\x00\x00\x00\x78\x00\x00\x00\xec\xfe\xff\xff\x04\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x01\x7a\x52\x00\x01\x7c\x1e\x01\x1b\x0c\x1f\x00\x14\x00\x00\x00\x18\x00\x00\x00\xc8\xfe\xff\xff\x40\x00\x00\x00\x00\x44\x0e\x10\x78\x0e\x00\x00\x00\x00\x00\x00"), -Section(".fini_array", 0x10DD0, "\xc0\x06\x00\x00\x00\x00\x00\x00"), -Section(".dynamic", 0x10DD8, "\x01\x00\x00\x00\x00\x00\x00\x00\x28\x00\x00\x00\x00\x00\x00\x00\x0c\x00\x00\x00\x00\x00\x00\x00\x80\x05\x00\x00\x00\x00\x00\x00\x0d\x00\x00\x00\x00\x00\x00\x00\x54\x07\x00\x00\x00\x00\x00\x00\x19\x00\x00\x00\x00\x00\x00\x00\xc8\x0d\x01\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x1a\x00\x00\x00\x00\x00\x00\x00\xd0\x0d\x01\x00\x00\x00\x00\x00\x1c\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\xf5\xfe\xff\x6f\x00\x00\x00\x00\x98\x02\x00\x00\x00\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x90\x03\x00\x00\x00\x00\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\xb8\x02\x00\x00\x00\x00\x00\x00\x0a\x00\x00\x00\x00\x00\x00\x00\x8d\x00\x00\x00\x00\x00\x00\x00\x0b\x00\x00\x00\x00\x00\x00\x00\x18\x00\x00\x00\x00\x00\x00\x00\x15\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\xe8\x0f\x01\x00\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x60\x00\x00\x00\x00\x00\x00\x00\x14\x00\x00\x00\x00\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x17\x00\x00\x00\x00\x00\x00\x00\x20\x05\x00\x00\x00\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x60\x04\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\xc0\x00\x00\x00\x00\x00\x00\x00\x09\x00\x00\x00\x00\x00\x00\x00\x18\x00\x00\x00\x00\x00\x00\x00\xfb\xff\xff\x6f\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\xfe\xff\xff\x6f\x00\x00\x00\x00\x30\x04\x00\x00\x00\x00\x00\x00\xff\xff\xff\x6f\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\xf0\xff\xff\x6f\x00\x00\x00\x00\x1e\x04\x00\x00\x00\x00\x00\x00\xf9\xff\xff\x6f\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".init_array", 0x10DC8, "\x10\x07\x00\x00\x00\x00\x00\x00"), -Section(".got", 0x10FB8, "\xd8\x0d\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x14\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".got.plt", 0x10FE8, "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xa0\x05\x00\x00\x00\x00\x00\x00\xa0\x05\x00\x00\x00\x00\x00\x00\xa0\x05\x00\x00\x00\x00\x00\x00\xa0\x05\x00\x00\x00\x00\x00\x00"), -Section(".data", 0x11020, "\x00\x00\x00\x00\x00\x00\x00\x00\x28\x10\x01\x00\x00\x00\x00\x00")]), -Memmap([Annotation(Region(0x0,0x85F), Attr("segment","02 0 2144")), -Annotation(Region(0x600,0x633), Attr("symbol","\"_start\"")), -Annotation(Region(0x0,0x102), Attr("section","\".shstrtab\"")), -Annotation(Region(0x0,0x244), Attr("section","\".strtab\"")), -Annotation(Region(0x0,0x46), Attr("section","\".comment\"")), -Annotation(Region(0x238,0x252), Attr("section","\".interp\"")), -Annotation(Region(0x254,0x277), Attr("section","\".note.gnu.build-id\"")), -Annotation(Region(0x278,0x297), Attr("section","\".note.ABI-tag\"")), -Annotation(Region(0x298,0x2B3), Attr("section","\".gnu.hash\"")), -Annotation(Region(0x2B8,0x38F), Attr("section","\".dynsym\"")), -Annotation(Region(0x390,0x41C), Attr("section","\".dynstr\"")), -Annotation(Region(0x41E,0x42F), Attr("section","\".gnu.version\"")), -Annotation(Region(0x430,0x45F), Attr("section","\".gnu.version_r\"")), -Annotation(Region(0x460,0x51F), Attr("section","\".rela.dyn\"")), -Annotation(Region(0x520,0x57F), Attr("section","\".rela.plt\"")), -Annotation(Region(0x580,0x597), Attr("section","\".init\"")), -Annotation(Region(0x5A0,0x5FF), Attr("section","\".plt\"")), -Annotation(Region(0x580,0x597), Attr("code-region","()")), -Annotation(Region(0x5A0,0x5FF), Attr("code-region","()")), -Annotation(Region(0x600,0x633), Attr("symbol-info","_start 0x600 52")), -Annotation(Region(0x634,0x647), Attr("symbol","\"call_weak_fn\"")), -Annotation(Region(0x634,0x647), Attr("symbol-info","call_weak_fn 0x634 20")), -Annotation(Region(0x600,0x753), Attr("section","\".text\"")), -Annotation(Region(0x600,0x753), Attr("code-region","()")), -Annotation(Region(0x714,0x753), Attr("symbol","\"main\"")), -Annotation(Region(0x714,0x753), Attr("symbol-info","main 0x714 64")), -Annotation(Region(0x754,0x767), Attr("section","\".fini\"")), -Annotation(Region(0x754,0x767), Attr("code-region","()")), -Annotation(Region(0x768,0x76B), Attr("section","\".rodata\"")), -Annotation(Region(0x76C,0x7A7), Attr("section","\".eh_frame_hdr\"")), -Annotation(Region(0x7A8,0x85F), Attr("section","\".eh_frame\"")), -Annotation(Region(0x10DC8,0x1102F), Attr("segment","03 0x10DC8 632")), -Annotation(Region(0x10DD0,0x10DD7), Attr("section","\".fini_array\"")), -Annotation(Region(0x10DD8,0x10FB7), Attr("section","\".dynamic\"")), -Annotation(Region(0x10DC8,0x10DCF), Attr("section","\".init_array\"")), -Annotation(Region(0x10FB8,0x10FE7), Attr("section","\".got\"")), -Annotation(Region(0x10FE8,0x1101F), Attr("section","\".got.plt\"")), -Annotation(Region(0x11020,0x1102F), Attr("section","\".data\""))]), -Program(Tid(1_582, "%0000062e"), Attrs([]), - Subs([Sub(Tid(1_530, "@__cxa_finalize"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x5D0"), -Attr("stub","()")]), "__cxa_finalize", Args([Arg(Tid(1_583, "%0000062f"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("__cxa_finalize_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(926, "@__cxa_finalize"), - Attrs([Attr("address","0x5D0")]), Phis([]), -Defs([Def(Tid(1_174, "%00000496"), Attrs([Attr("address","0x5D0"), -Attr("insn","adrp x16, #69632")]), Var("R16",Imm(64)), Int(69632,64)), -Def(Tid(1_181, "%0000049d"), Attrs([Attr("address","0x5D4"), -Attr("insn","ldr x17, [x16, #0x8]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(1_187, "%000004a3"), Attrs([Attr("address","0x5D8"), -Attr("insn","add x16, x16, #0x8")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(8,64)))]), Jmps([Call(Tid(1_192, "%000004a8"), - Attrs([Attr("address","0x5DC"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), -Sub(Tid(1_531, "@__do_global_dtors_aux"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x6C0")]), - "__do_global_dtors_aux", Args([Arg(Tid(1_584, "%00000630"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("__do_global_dtors_aux_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(654, "@__do_global_dtors_aux"), - Attrs([Attr("address","0x6C0")]), Phis([]), Defs([Def(Tid(658, "%00000292"), - Attrs([Attr("address","0x6C0"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("#3",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(18446744073709551584,64))), -Def(Tid(664, "%00000298"), Attrs([Attr("address","0x6C0"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("#3",Imm(64)),Var("R29",Imm(64)),LittleEndian(),64)), -Def(Tid(670, "%0000029e"), Attrs([Attr("address","0x6C0"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("#3",Imm(64)),Int(8,64)),Var("R30",Imm(64)),LittleEndian(),64)), -Def(Tid(674, "%000002a2"), Attrs([Attr("address","0x6C0"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("R31",Imm(64)), -Var("#3",Imm(64))), Def(Tid(680, "%000002a8"), - Attrs([Attr("address","0x6C4"), Attr("insn","mov x29, sp")]), - Var("R29",Imm(64)), Var("R31",Imm(64))), Def(Tid(688, "%000002b0"), - Attrs([Attr("address","0x6C8"), Attr("insn","str x19, [sp, #0x10]")]), - Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(16,64)),Var("R19",Imm(64)),LittleEndian(),64)), -Def(Tid(693, "%000002b5"), Attrs([Attr("address","0x6CC"), -Attr("insn","adrp x19, #69632")]), Var("R19",Imm(64)), Int(69632,64)), -Def(Tid(700, "%000002bc"), Attrs([Attr("address","0x6D0"), -Attr("insn","ldrb w0, [x19, #0x30]")]), Var("R0",Imm(64)), -UNSIGNED(64,Load(Var("mem",Mem(64,8)),PLUS(Var("R19",Imm(64)),Int(48,64)),LittleEndian(),8)))]), -Jmps([Goto(Tid(707, "%000002c3"), Attrs([Attr("address","0x6D4"), -Attr("insn","cbnz w0, #0x28")]), - NEQ(Extract(31,0,Var("R0",Imm(64))),Int(0,32)), -Direct(Tid(705, "%000002c1"))), Goto(Tid(1_571, "%00000623"), Attrs([]), - Int(1,1), Direct(Tid(871, "%00000367")))])), Blk(Tid(871, "%00000367"), - Attrs([Attr("address","0x6D8")]), Phis([]), Defs([Def(Tid(874, "%0000036a"), - Attrs([Attr("address","0x6D8"), Attr("insn","adrp x0, #65536")]), - Var("R0",Imm(64)), Int(65536,64)), Def(Tid(881, "%00000371"), - Attrs([Attr("address","0x6DC"), Attr("insn","ldr x0, [x0, #0xfc8]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(4040,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(887, "%00000377"), Attrs([Attr("address","0x6E0"), -Attr("insn","cbz x0, #0x10")]), EQ(Var("R0",Imm(64)),Int(0,64)), -Direct(Tid(885, "%00000375"))), Goto(Tid(1_572, "%00000624"), Attrs([]), - Int(1,1), Direct(Tid(910, "%0000038e")))])), Blk(Tid(910, "%0000038e"), - Attrs([Attr("address","0x6E4")]), Phis([]), Defs([Def(Tid(913, "%00000391"), - Attrs([Attr("address","0x6E4"), Attr("insn","adrp x0, #69632")]), - Var("R0",Imm(64)), Int(69632,64)), Def(Tid(920, "%00000398"), - Attrs([Attr("address","0x6E8"), Attr("insn","ldr x0, [x0, #0x28]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(40,64)),LittleEndian(),64)), -Def(Tid(925, "%0000039d"), Attrs([Attr("address","0x6EC"), -Attr("insn","bl #-0x11c")]), Var("R30",Imm(64)), Int(1776,64))]), -Jmps([Call(Tid(928, "%000003a0"), Attrs([Attr("address","0x6EC"), -Attr("insn","bl #-0x11c")]), Int(1,1), -(Direct(Tid(1_530, "@__cxa_finalize")),Direct(Tid(885, "%00000375"))))])), -Blk(Tid(885, "%00000375"), Attrs([Attr("address","0x6F0")]), Phis([]), -Defs([Def(Tid(893, "%0000037d"), Attrs([Attr("address","0x6F0"), -Attr("insn","bl #-0xa0")]), Var("R30",Imm(64)), Int(1780,64))]), -Jmps([Call(Tid(895, "%0000037f"), Attrs([Attr("address","0x6F0"), -Attr("insn","bl #-0xa0")]), Int(1,1), -(Direct(Tid(1_544, "@deregister_tm_clones")),Direct(Tid(897, "%00000381"))))])), -Blk(Tid(897, "%00000381"), Attrs([Attr("address","0x6F4")]), Phis([]), -Defs([Def(Tid(900, "%00000384"), Attrs([Attr("address","0x6F4"), -Attr("insn","mov w0, #0x1")]), Var("R0",Imm(64)), Int(1,64)), -Def(Tid(908, "%0000038c"), Attrs([Attr("address","0x6F8"), -Attr("insn","strb w0, [x19, #0x30]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R19",Imm(64)),Int(48,64)),Extract(7,0,Var("R0",Imm(64))),LittleEndian(),8))]), -Jmps([Goto(Tid(1_573, "%00000625"), Attrs([]), Int(1,1), -Direct(Tid(705, "%000002c1")))])), Blk(Tid(705, "%000002c1"), - Attrs([Attr("address","0x6FC")]), Phis([]), Defs([Def(Tid(715, "%000002cb"), - Attrs([Attr("address","0x6FC"), Attr("insn","ldr x19, [sp, #0x10]")]), - Var("R19",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(16,64)),LittleEndian(),64)), -Def(Tid(722, "%000002d2"), Attrs([Attr("address","0x700"), -Attr("insn","ldp x29, x30, [sp], #0x20")]), Var("R29",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(727, "%000002d7"), Attrs([Attr("address","0x700"), -Attr("insn","ldp x29, x30, [sp], #0x20")]), Var("R30",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(731, "%000002db"), Attrs([Attr("address","0x700"), -Attr("insn","ldp x29, x30, [sp], #0x20")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(32,64)))]), Jmps([Call(Tid(736, "%000002e0"), - Attrs([Attr("address","0x704"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), Sub(Tid(1_535, "@__libc_start_main"), - Attrs([Attr("c.proto","signed (*)(signed (*)(signed , char** , char** );* main, signed , char** , \nvoid* auxv)"), -Attr("address","0x5C0"), Attr("stub","()")]), "__libc_start_main", - Args([Arg(Tid(1_585, "%00000631"), - Attrs([Attr("c.layout","**[ : 64]"), -Attr("c.data","Top:u64 ptr ptr"), -Attr("c.type","signed (*)(signed , char** , char** );*")]), - Var("__libc_start_main_main",Imm(64)), Var("R0",Imm(64)), In()), -Arg(Tid(1_586, "%00000632"), Attrs([Attr("c.layout","[signed : 32]"), -Attr("c.data","Top:u32"), Attr("c.type","signed")]), - Var("__libc_start_main_arg2",Imm(32)), LOW(32,Var("R1",Imm(64))), In()), -Arg(Tid(1_587, "%00000633"), Attrs([Attr("c.layout","**[char : 8]"), -Attr("c.data","Top:u8 ptr ptr"), Attr("c.type","char**")]), - Var("__libc_start_main_arg3",Imm(64)), Var("R2",Imm(64)), Both()), -Arg(Tid(1_588, "%00000634"), Attrs([Attr("c.layout","*[ : 8]"), -Attr("c.data","{} ptr"), Attr("c.type","void*")]), - Var("__libc_start_main_auxv",Imm(64)), Var("R3",Imm(64)), Both()), -Arg(Tid(1_589, "%00000635"), Attrs([Attr("c.layout","[signed : 32]"), -Attr("c.data","Top:u32"), Attr("c.type","signed")]), - Var("__libc_start_main_result",Imm(32)), LOW(32,Var("R0",Imm(64))), -Out())]), Blks([Blk(Tid(487, "@__libc_start_main"), - Attrs([Attr("address","0x5C0")]), Phis([]), -Defs([Def(Tid(1_152, "%00000480"), Attrs([Attr("address","0x5C0"), -Attr("insn","adrp x16, #69632")]), Var("R16",Imm(64)), Int(69632,64)), -Def(Tid(1_159, "%00000487"), Attrs([Attr("address","0x5C4"), -Attr("insn","ldr x17, [x16]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R16",Imm(64)),LittleEndian(),64)), -Def(Tid(1_165, "%0000048d"), Attrs([Attr("address","0x5C8"), -Attr("insn","add x16, x16, #0x0")]), Var("R16",Imm(64)), -Var("R16",Imm(64)))]), Jmps([Call(Tid(1_170, "%00000492"), - Attrs([Attr("address","0x5CC"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), Sub(Tid(1_536, "@_fini"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x754")]), - "_fini", Args([Arg(Tid(1_590, "%00000636"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("_fini_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(31, "@_fini"), - Attrs([Attr("address","0x754")]), Phis([]), Defs([Def(Tid(37, "%00000025"), - Attrs([Attr("address","0x758"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("#0",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(18446744073709551600,64))), -Def(Tid(43, "%0000002b"), Attrs([Attr("address","0x758"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("#0",Imm(64)),Var("R29",Imm(64)),LittleEndian(),64)), -Def(Tid(49, "%00000031"), Attrs([Attr("address","0x758"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("#0",Imm(64)),Int(8,64)),Var("R30",Imm(64)),LittleEndian(),64)), -Def(Tid(53, "%00000035"), Attrs([Attr("address","0x758"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("R31",Imm(64)), -Var("#0",Imm(64))), Def(Tid(59, "%0000003b"), Attrs([Attr("address","0x75C"), -Attr("insn","mov x29, sp")]), Var("R29",Imm(64)), Var("R31",Imm(64))), -Def(Tid(66, "%00000042"), Attrs([Attr("address","0x760"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R29",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(71, "%00000047"), Attrs([Attr("address","0x760"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R30",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(75, "%0000004b"), Attrs([Attr("address","0x760"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(16,64)))]), Jmps([Call(Tid(80, "%00000050"), - Attrs([Attr("address","0x764"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), Sub(Tid(1_537, "@_init"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x580")]), - "_init", Args([Arg(Tid(1_591, "%00000637"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("_init_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(1_356, "@_init"), - Attrs([Attr("address","0x580")]), Phis([]), -Defs([Def(Tid(1_362, "%00000552"), Attrs([Attr("address","0x584"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("#6",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(18446744073709551600,64))), -Def(Tid(1_368, "%00000558"), Attrs([Attr("address","0x584"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("#6",Imm(64)),Var("R29",Imm(64)),LittleEndian(),64)), -Def(Tid(1_374, "%0000055e"), Attrs([Attr("address","0x584"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("#6",Imm(64)),Int(8,64)),Var("R30",Imm(64)),LittleEndian(),64)), -Def(Tid(1_378, "%00000562"), Attrs([Attr("address","0x584"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("R31",Imm(64)), -Var("#6",Imm(64))), Def(Tid(1_384, "%00000568"), - Attrs([Attr("address","0x588"), Attr("insn","mov x29, sp")]), - Var("R29",Imm(64)), Var("R31",Imm(64))), Def(Tid(1_389, "%0000056d"), - Attrs([Attr("address","0x58C"), Attr("insn","bl #0xa8")]), - Var("R30",Imm(64)), Int(1424,64))]), Jmps([Call(Tid(1_391, "%0000056f"), - Attrs([Attr("address","0x58C"), Attr("insn","bl #0xa8")]), Int(1,1), -(Direct(Tid(1_542, "@call_weak_fn")),Direct(Tid(1_393, "%00000571"))))])), -Blk(Tid(1_393, "%00000571"), Attrs([Attr("address","0x590")]), Phis([]), -Defs([Def(Tid(1_398, "%00000576"), Attrs([Attr("address","0x590"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R29",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(1_403, "%0000057b"), Attrs([Attr("address","0x590"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R30",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(1_407, "%0000057f"), Attrs([Attr("address","0x590"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(16,64)))]), Jmps([Call(Tid(1_412, "%00000584"), - Attrs([Attr("address","0x594"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), Sub(Tid(1_538, "@_start"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x600"), -Attr("stub","()"), Attr("entry-point","()")]), "_start", - Args([Arg(Tid(1_592, "%00000638"), Attrs([Attr("c.layout","[signed : 32]"), -Attr("c.data","Top:u32"), Attr("c.type","signed")]), - Var("_start_result",Imm(32)), LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(424, "@_start"), Attrs([Attr("address","0x600")]), Phis([]), -Defs([Def(Tid(429, "%000001ad"), Attrs([Attr("address","0x604"), -Attr("insn","mov x29, #0x0")]), Var("R29",Imm(64)), Int(0,64)), -Def(Tid(434, "%000001b2"), Attrs([Attr("address","0x608"), -Attr("insn","mov x30, #0x0")]), Var("R30",Imm(64)), Int(0,64)), -Def(Tid(440, "%000001b8"), Attrs([Attr("address","0x60C"), -Attr("insn","mov x5, x0")]), Var("R5",Imm(64)), Var("R0",Imm(64))), -Def(Tid(447, "%000001bf"), Attrs([Attr("address","0x610"), -Attr("insn","ldr x1, [sp]")]), Var("R1",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(453, "%000001c5"), Attrs([Attr("address","0x614"), -Attr("insn","add x2, sp, #0x8")]), Var("R2",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(8,64))), Def(Tid(459, "%000001cb"), - Attrs([Attr("address","0x618"), Attr("insn","mov x6, sp")]), - Var("R6",Imm(64)), Var("R31",Imm(64))), Def(Tid(464, "%000001d0"), - Attrs([Attr("address","0x61C"), Attr("insn","adrp x0, #65536")]), - Var("R0",Imm(64)), Int(65536,64)), Def(Tid(471, "%000001d7"), - Attrs([Attr("address","0x620"), Attr("insn","ldr x0, [x0, #0xfd8]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(4056,64)),LittleEndian(),64)), -Def(Tid(476, "%000001dc"), Attrs([Attr("address","0x624"), -Attr("insn","mov x3, #0x0")]), Var("R3",Imm(64)), Int(0,64)), -Def(Tid(481, "%000001e1"), Attrs([Attr("address","0x628"), -Attr("insn","mov x4, #0x0")]), Var("R4",Imm(64)), Int(0,64)), -Def(Tid(486, "%000001e6"), Attrs([Attr("address","0x62C"), -Attr("insn","bl #-0x6c")]), Var("R30",Imm(64)), Int(1584,64))]), -Jmps([Call(Tid(489, "%000001e9"), Attrs([Attr("address","0x62C"), -Attr("insn","bl #-0x6c")]), Int(1,1), -(Direct(Tid(1_535, "@__libc_start_main")),Direct(Tid(491, "%000001eb"))))])), -Blk(Tid(491, "%000001eb"), Attrs([Attr("address","0x630")]), Phis([]), -Defs([Def(Tid(494, "%000001ee"), Attrs([Attr("address","0x630"), -Attr("insn","bl #-0x40")]), Var("R30",Imm(64)), Int(1588,64))]), -Jmps([Call(Tid(497, "%000001f1"), Attrs([Attr("address","0x630"), -Attr("insn","bl #-0x40")]), Int(1,1), -(Direct(Tid(1_541, "@abort")),Direct(Tid(1_574, "%00000626"))))])), -Blk(Tid(1_574, "%00000626"), Attrs([]), Phis([]), Defs([]), -Jmps([Call(Tid(1_575, "%00000627"), Attrs([]), Int(1,1), -(Direct(Tid(1_542, "@call_weak_fn")),))]))])), Sub(Tid(1_541, "@abort"), - Attrs([Attr("noreturn","()"), Attr("c.proto","void (*)(void)"), -Attr("address","0x5F0"), Attr("stub","()")]), "abort", Args([]), -Blks([Blk(Tid(495, "@abort"), Attrs([Attr("address","0x5F0")]), Phis([]), -Defs([Def(Tid(1_218, "%000004c2"), Attrs([Attr("address","0x5F0"), -Attr("insn","adrp x16, #69632")]), Var("R16",Imm(64)), Int(69632,64)), -Def(Tid(1_225, "%000004c9"), Attrs([Attr("address","0x5F4"), -Attr("insn","ldr x17, [x16, #0x18]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(24,64)),LittleEndian(),64)), -Def(Tid(1_231, "%000004cf"), Attrs([Attr("address","0x5F8"), -Attr("insn","add x16, x16, #0x18")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(24,64)))]), Jmps([Call(Tid(1_236, "%000004d4"), - Attrs([Attr("address","0x5FC"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), Sub(Tid(1_542, "@call_weak_fn"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x634")]), - "call_weak_fn", Args([Arg(Tid(1_593, "%00000639"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("call_weak_fn_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(499, "@call_weak_fn"), - Attrs([Attr("address","0x634")]), Phis([]), Defs([Def(Tid(502, "%000001f6"), - Attrs([Attr("address","0x634"), Attr("insn","adrp x0, #65536")]), - Var("R0",Imm(64)), Int(65536,64)), Def(Tid(509, "%000001fd"), - Attrs([Attr("address","0x638"), Attr("insn","ldr x0, [x0, #0xfd0]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(4048,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(515, "%00000203"), Attrs([Attr("address","0x63C"), -Attr("insn","cbz x0, #0x8")]), EQ(Var("R0",Imm(64)),Int(0,64)), -Direct(Tid(513, "%00000201"))), Goto(Tid(1_576, "%00000628"), Attrs([]), - Int(1,1), Direct(Tid(990, "%000003de")))])), Blk(Tid(513, "%00000201"), - Attrs([Attr("address","0x644")]), Phis([]), Defs([]), -Jmps([Call(Tid(521, "%00000209"), Attrs([Attr("address","0x644"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))])), -Blk(Tid(990, "%000003de"), Attrs([Attr("address","0x640")]), Phis([]), -Defs([]), Jmps([Goto(Tid(993, "%000003e1"), Attrs([Attr("address","0x640"), -Attr("insn","b #-0x60")]), Int(1,1), Direct(Tid(991, "@__gmon_start__")))])), -Blk(Tid(991, "@__gmon_start__"), Attrs([Attr("address","0x5E0")]), Phis([]), -Defs([Def(Tid(1_196, "%000004ac"), Attrs([Attr("address","0x5E0"), -Attr("insn","adrp x16, #69632")]), Var("R16",Imm(64)), Int(69632,64)), -Def(Tid(1_203, "%000004b3"), Attrs([Attr("address","0x5E4"), -Attr("insn","ldr x17, [x16, #0x10]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(16,64)),LittleEndian(),64)), -Def(Tid(1_209, "%000004b9"), Attrs([Attr("address","0x5E8"), -Attr("insn","add x16, x16, #0x10")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(16,64)))]), Jmps([Call(Tid(1_214, "%000004be"), - Attrs([Attr("address","0x5EC"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), -Sub(Tid(1_544, "@deregister_tm_clones"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x650")]), - "deregister_tm_clones", Args([Arg(Tid(1_594, "%0000063a"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("deregister_tm_clones_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(527, "@deregister_tm_clones"), - Attrs([Attr("address","0x650")]), Phis([]), Defs([Def(Tid(530, "%00000212"), - Attrs([Attr("address","0x650"), Attr("insn","adrp x0, #69632")]), - Var("R0",Imm(64)), Int(69632,64)), Def(Tid(536, "%00000218"), - Attrs([Attr("address","0x654"), Attr("insn","add x0, x0, #0x30")]), - Var("R0",Imm(64)), PLUS(Var("R0",Imm(64)),Int(48,64))), -Def(Tid(541, "%0000021d"), Attrs([Attr("address","0x658"), -Attr("insn","adrp x1, #69632")]), Var("R1",Imm(64)), Int(69632,64)), -Def(Tid(547, "%00000223"), Attrs([Attr("address","0x65C"), -Attr("insn","add x1, x1, #0x30")]), Var("R1",Imm(64)), -PLUS(Var("R1",Imm(64)),Int(48,64))), Def(Tid(553, "%00000229"), - Attrs([Attr("address","0x660"), Attr("insn","cmp x1, x0")]), - Var("#1",Imm(64)), NOT(Var("R0",Imm(64)))), Def(Tid(558, "%0000022e"), - Attrs([Attr("address","0x660"), Attr("insn","cmp x1, x0")]), - Var("#2",Imm(64)), PLUS(Var("R1",Imm(64)),NOT(Var("R0",Imm(64))))), -Def(Tid(564, "%00000234"), Attrs([Attr("address","0x660"), -Attr("insn","cmp x1, x0")]), Var("VF",Imm(1)), -NEQ(SIGNED(65,PLUS(Var("#2",Imm(64)),Int(1,64))),PLUS(PLUS(SIGNED(65,Var("R1",Imm(64))),SIGNED(65,Var("#1",Imm(64)))),Int(1,65)))), -Def(Tid(570, "%0000023a"), Attrs([Attr("address","0x660"), -Attr("insn","cmp x1, x0")]), Var("CF",Imm(1)), -NEQ(UNSIGNED(65,PLUS(Var("#2",Imm(64)),Int(1,64))),PLUS(PLUS(UNSIGNED(65,Var("R1",Imm(64))),UNSIGNED(65,Var("#1",Imm(64)))),Int(1,65)))), -Def(Tid(574, "%0000023e"), Attrs([Attr("address","0x660"), -Attr("insn","cmp x1, x0")]), Var("ZF",Imm(1)), -EQ(PLUS(Var("#2",Imm(64)),Int(1,64)),Int(0,64))), Def(Tid(578, "%00000242"), - Attrs([Attr("address","0x660"), Attr("insn","cmp x1, x0")]), - Var("NF",Imm(1)), Extract(63,63,PLUS(Var("#2",Imm(64)),Int(1,64))))]), -Jmps([Goto(Tid(584, "%00000248"), Attrs([Attr("address","0x664"), -Attr("insn","b.eq #0x18")]), EQ(Var("ZF",Imm(1)),Int(1,1)), -Direct(Tid(582, "%00000246"))), Goto(Tid(1_577, "%00000629"), Attrs([]), - Int(1,1), Direct(Tid(960, "%000003c0")))])), Blk(Tid(960, "%000003c0"), - Attrs([Attr("address","0x668")]), Phis([]), Defs([Def(Tid(963, "%000003c3"), - Attrs([Attr("address","0x668"), Attr("insn","adrp x1, #65536")]), - Var("R1",Imm(64)), Int(65536,64)), Def(Tid(970, "%000003ca"), - Attrs([Attr("address","0x66C"), Attr("insn","ldr x1, [x1, #0xfc0]")]), - Var("R1",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R1",Imm(64)),Int(4032,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(975, "%000003cf"), Attrs([Attr("address","0x670"), -Attr("insn","cbz x1, #0xc")]), EQ(Var("R1",Imm(64)),Int(0,64)), -Direct(Tid(582, "%00000246"))), Goto(Tid(1_578, "%0000062a"), Attrs([]), - Int(1,1), Direct(Tid(979, "%000003d3")))])), Blk(Tid(582, "%00000246"), - Attrs([Attr("address","0x67C")]), Phis([]), Defs([]), -Jmps([Call(Tid(590, "%0000024e"), Attrs([Attr("address","0x67C"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))])), -Blk(Tid(979, "%000003d3"), Attrs([Attr("address","0x674")]), Phis([]), -Defs([Def(Tid(983, "%000003d7"), Attrs([Attr("address","0x674"), -Attr("insn","mov x16, x1")]), Var("R16",Imm(64)), Var("R1",Imm(64)))]), -Jmps([Call(Tid(988, "%000003dc"), Attrs([Attr("address","0x678"), -Attr("insn","br x16")]), Int(1,1), (Indirect(Var("R16",Imm(64))),))]))])), -Sub(Tid(1_547, "@frame_dummy"), Attrs([Attr("c.proto","signed (*)(void)"), -Attr("address","0x710")]), "frame_dummy", Args([Arg(Tid(1_595, "%0000063b"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("frame_dummy_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(742, "@frame_dummy"), - Attrs([Attr("address","0x710")]), Phis([]), Defs([]), -Jmps([Call(Tid(744, "%000002e8"), Attrs([Attr("address","0x710"), -Attr("insn","b #-0x90")]), Int(1,1), -(Direct(Tid(1_550, "@register_tm_clones")),))]))])), Sub(Tid(1_548, "@main"), - Attrs([Attr("c.proto","signed (*)(signed argc, const char** argv)"), -Attr("address","0x714")]), "main", Args([Arg(Tid(1_596, "%0000063c"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("main_argc",Imm(32)), -LOW(32,Var("R0",Imm(64))), In()), Arg(Tid(1_597, "%0000063d"), - Attrs([Attr("c.layout","**[char : 8]"), Attr("c.data","Top:u8 ptr ptr"), -Attr("c.type"," const char**")]), Var("main_argv",Imm(64)), -Var("R1",Imm(64)), Both()), Arg(Tid(1_598, "%0000063e"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("main_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(746, "@main"), - Attrs([Attr("address","0x714")]), Phis([]), Defs([Def(Tid(750, "%000002ee"), - Attrs([Attr("address","0x714"), Attr("insn","sub sp, sp, #0x10")]), - Var("R31",Imm(64)), PLUS(Var("R31",Imm(64)),Int(18446744073709551600,64))), -Def(Tid(757, "%000002f5"), Attrs([Attr("address","0x718"), -Attr("insn","str wzr, [sp, #0xc]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(12,64)),Int(0,32),LittleEndian(),32)), -Def(Tid(762, "%000002fa"), Attrs([Attr("address","0x71C"), -Attr("insn","adrp x8, #69632")]), Var("R8",Imm(64)), Int(69632,64)), -Def(Tid(769, "%00000301"), Attrs([Attr("address","0x720"), -Attr("insn","ldr w8, [x8, #0x34]")]), Var("R8",Imm(64)), -UNSIGNED(64,Load(Var("mem",Mem(64,8)),PLUS(Var("R8",Imm(64)),Int(52,64)),LittleEndian(),32))), -Def(Tid(775, "%00000307"), Attrs([Attr("address","0x724"), -Attr("insn","subs w8, w8, #0x0")]), Var("#4",Imm(32)), -PLUS(Extract(31,0,Var("R8",Imm(64))),Int(4294967295,32))), -Def(Tid(780, "%0000030c"), Attrs([Attr("address","0x724"), -Attr("insn","subs w8, w8, #0x0")]), Var("VF",Imm(1)), -NEQ(SIGNED(33,PLUS(Var("#4",Imm(32)),Int(1,32))),PLUS(SIGNED(33,Extract(31,0,Var("R8",Imm(64)))),Int(0,33)))), -Def(Tid(785, "%00000311"), Attrs([Attr("address","0x724"), -Attr("insn","subs w8, w8, #0x0")]), Var("CF",Imm(1)), -NEQ(UNSIGNED(33,PLUS(Var("#4",Imm(32)),Int(1,32))),PLUS(UNSIGNED(33,Extract(31,0,Var("R8",Imm(64)))),Int(4294967296,33)))), -Def(Tid(789, "%00000315"), Attrs([Attr("address","0x724"), -Attr("insn","subs w8, w8, #0x0")]), Var("ZF",Imm(1)), -EQ(PLUS(Var("#4",Imm(32)),Int(1,32)),Int(0,32))), Def(Tid(793, "%00000319"), - Attrs([Attr("address","0x724"), Attr("insn","subs w8, w8, #0x0")]), - Var("NF",Imm(1)), Extract(31,31,PLUS(Var("#4",Imm(32)),Int(1,32)))), -Def(Tid(797, "%0000031d"), Attrs([Attr("address","0x724"), -Attr("insn","subs w8, w8, #0x0")]), Var("R8",Imm(64)), -UNSIGNED(64,PLUS(Var("#4",Imm(32)),Int(1,32))))]), -Jmps([Goto(Tid(809, "%00000329"), Attrs([Attr("address","0x728"), -Attr("insn","cset w8, eq")]), NEQ(Var("ZF",Imm(1)),Int(1,1)), -Direct(Tid(802, "%00000322"))), Goto(Tid(810, "%0000032a"), - Attrs([Attr("address","0x728"), Attr("insn","cset w8, eq")]), Int(1,1), -Direct(Tid(805, "%00000325")))])), Blk(Tid(805, "%00000325"), Attrs([]), - Phis([]), Defs([Def(Tid(806, "%00000326"), Attrs([Attr("address","0x728"), -Attr("insn","cset w8, eq")]), Var("R8",Imm(64)), Int(1,64))]), -Jmps([Goto(Tid(812, "%0000032c"), Attrs([Attr("address","0x728"), -Attr("insn","cset w8, eq")]), Int(1,1), Direct(Tid(808, "%00000328")))])), -Blk(Tid(802, "%00000322"), Attrs([]), Phis([]), -Defs([Def(Tid(803, "%00000323"), Attrs([Attr("address","0x728"), -Attr("insn","cset w8, eq")]), Var("R8",Imm(64)), Int(0,64))]), -Jmps([Goto(Tid(811, "%0000032b"), Attrs([Attr("address","0x728"), -Attr("insn","cset w8, eq")]), Int(1,1), Direct(Tid(808, "%00000328")))])), -Blk(Tid(808, "%00000328"), Attrs([]), Phis([]), Defs([]), -Jmps([Goto(Tid(818, "%00000332"), Attrs([Attr("address","0x72C"), -Attr("insn","tbnz w8, #0x0, #0x10")]), - EQ(Extract(0,0,Var("R8",Imm(64))),Int(1,1)), Direct(Tid(816, "%00000330"))), -Goto(Tid(1_579, "%0000062b"), Attrs([]), Int(1,1), -Direct(Tid(856, "%00000358")))])), Blk(Tid(816, "%00000330"), - Attrs([Attr("address","0x73C")]), Phis([]), Defs([Def(Tid(824, "%00000338"), - Attrs([Attr("address","0x73C"), Attr("insn","mov w8, #0x1")]), - Var("R8",Imm(64)), Int(1,64)), Def(Tid(832, "%00000340"), - Attrs([Attr("address","0x740"), Attr("insn","str w8, [sp, #0xc]")]), - Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(12,64)),Extract(31,0,Var("R8",Imm(64))),LittleEndian(),32))]), -Jmps([Goto(Tid(837, "%00000345"), Attrs([Attr("address","0x744"), -Attr("insn","b #0x4")]), Int(1,1), Direct(Tid(835, "%00000343")))])), -Blk(Tid(856, "%00000358"), Attrs([Attr("address","0x730")]), Phis([]), -Defs([]), Jmps([Goto(Tid(859, "%0000035b"), Attrs([Attr("address","0x730"), -Attr("insn","b #0x4")]), Int(1,1), Direct(Tid(857, "%00000359")))])), -Blk(Tid(857, "%00000359"), Attrs([Attr("address","0x734")]), Phis([]), -Defs([Def(Tid(865, "%00000361"), Attrs([Attr("address","0x734"), -Attr("insn","str wzr, [sp, #0xc]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(12,64)),Int(0,32),LittleEndian(),32))]), -Jmps([Goto(Tid(869, "%00000365"), Attrs([Attr("address","0x738"), -Attr("insn","b #0x10")]), Int(1,1), Direct(Tid(835, "%00000343")))])), -Blk(Tid(835, "%00000343"), Attrs([Attr("address","0x748")]), Phis([]), -Defs([Def(Tid(843, "%0000034b"), Attrs([Attr("address","0x748"), -Attr("insn","ldr w0, [sp, #0xc]")]), Var("R0",Imm(64)), -UNSIGNED(64,Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(12,64)),LittleEndian(),32))), -Def(Tid(849, "%00000351"), Attrs([Attr("address","0x74C"), -Attr("insn","add sp, sp, #0x10")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(16,64)))]), Jmps([Call(Tid(854, "%00000356"), - Attrs([Attr("address","0x750"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), -Sub(Tid(1_550, "@register_tm_clones"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x680")]), - "register_tm_clones", Args([Arg(Tid(1_599, "%0000063f"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("register_tm_clones_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(592, "@register_tm_clones"), Attrs([Attr("address","0x680")]), - Phis([]), Defs([Def(Tid(595, "%00000253"), Attrs([Attr("address","0x680"), -Attr("insn","adrp x0, #69632")]), Var("R0",Imm(64)), Int(69632,64)), -Def(Tid(601, "%00000259"), Attrs([Attr("address","0x684"), -Attr("insn","add x0, x0, #0x30")]), Var("R0",Imm(64)), -PLUS(Var("R0",Imm(64)),Int(48,64))), Def(Tid(606, "%0000025e"), - Attrs([Attr("address","0x688"), Attr("insn","adrp x1, #69632")]), - Var("R1",Imm(64)), Int(69632,64)), Def(Tid(612, "%00000264"), - Attrs([Attr("address","0x68C"), Attr("insn","add x1, x1, #0x30")]), - Var("R1",Imm(64)), PLUS(Var("R1",Imm(64)),Int(48,64))), -Def(Tid(619, "%0000026b"), Attrs([Attr("address","0x690"), -Attr("insn","sub x1, x1, x0")]), Var("R1",Imm(64)), -PLUS(PLUS(Var("R1",Imm(64)),NOT(Var("R0",Imm(64)))),Int(1,64))), -Def(Tid(625, "%00000271"), Attrs([Attr("address","0x694"), -Attr("insn","lsr x2, x1, #63")]), Var("R2",Imm(64)), -Concat(Int(0,63),Extract(63,63,Var("R1",Imm(64))))), -Def(Tid(632, "%00000278"), Attrs([Attr("address","0x698"), -Attr("insn","add x1, x2, x1, asr #3")]), Var("R1",Imm(64)), -PLUS(Var("R2",Imm(64)),ARSHIFT(Var("R1",Imm(64)),Int(3,3)))), -Def(Tid(638, "%0000027e"), Attrs([Attr("address","0x69C"), -Attr("insn","asr x1, x1, #1")]), Var("R1",Imm(64)), -SIGNED(64,Extract(63,1,Var("R1",Imm(64)))))]), -Jmps([Goto(Tid(644, "%00000284"), Attrs([Attr("address","0x6A0"), -Attr("insn","cbz x1, #0x18")]), EQ(Var("R1",Imm(64)),Int(0,64)), -Direct(Tid(642, "%00000282"))), Goto(Tid(1_580, "%0000062c"), Attrs([]), - Int(1,1), Direct(Tid(930, "%000003a2")))])), Blk(Tid(930, "%000003a2"), - Attrs([Attr("address","0x6A4")]), Phis([]), Defs([Def(Tid(933, "%000003a5"), - Attrs([Attr("address","0x6A4"), Attr("insn","adrp x2, #65536")]), - Var("R2",Imm(64)), Int(65536,64)), Def(Tid(940, "%000003ac"), - Attrs([Attr("address","0x6A8"), Attr("insn","ldr x2, [x2, #0xfe0]")]), - Var("R2",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R2",Imm(64)),Int(4064,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(945, "%000003b1"), Attrs([Attr("address","0x6AC"), -Attr("insn","cbz x2, #0xc")]), EQ(Var("R2",Imm(64)),Int(0,64)), -Direct(Tid(642, "%00000282"))), Goto(Tid(1_581, "%0000062d"), Attrs([]), - Int(1,1), Direct(Tid(949, "%000003b5")))])), Blk(Tid(642, "%00000282"), - Attrs([Attr("address","0x6B8")]), Phis([]), Defs([]), -Jmps([Call(Tid(650, "%0000028a"), Attrs([Attr("address","0x6B8"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))])), -Blk(Tid(949, "%000003b5"), Attrs([Attr("address","0x6B0")]), Phis([]), -Defs([Def(Tid(953, "%000003b9"), Attrs([Attr("address","0x6B0"), -Attr("insn","mov x16, x2")]), Var("R16",Imm(64)), Var("R2",Imm(64)))]), -Jmps([Call(Tid(958, "%000003be"), Attrs([Attr("address","0x6B4"), -Attr("insn","br x16")]), Int(1,1), -(Indirect(Var("R16",Imm(64))),))]))]))]))) \ No newline at end of file diff --git a/src/test/correct/using_gamma_conditional/clang/using_gamma_conditional.bir b/src/test/correct/using_gamma_conditional/clang/using_gamma_conditional.bir deleted file mode 100644 index 91c7229cb..000000000 --- a/src/test/correct/using_gamma_conditional/clang/using_gamma_conditional.bir +++ /dev/null @@ -1,263 +0,0 @@ -0000062e: program -000005fa: sub __cxa_finalize(__cxa_finalize_result) -0000062f: __cxa_finalize_result :: out u32 = low:32[R0] - -0000039e: -00000496: R16 := 0x11000 -0000049d: R17 := mem[R16 + 8, el]:u64 -000004a3: R16 := R16 + 8 -000004a8: call R17 with noreturn - -000005fb: sub __do_global_dtors_aux(__do_global_dtors_aux_result) -00000630: __do_global_dtors_aux_result :: out u32 = low:32[R0] - -0000028e: -00000292: #3 := R31 - 0x20 -00000298: mem := mem with [#3, el]:u64 <- R29 -0000029e: mem := mem with [#3 + 8, el]:u64 <- R30 -000002a2: R31 := #3 -000002a8: R29 := R31 -000002b0: mem := mem with [R31 + 0x10, el]:u64 <- R19 -000002b5: R19 := 0x11000 -000002bc: R0 := pad:64[mem[R19 + 0x30]] -000002c3: when 31:0[R0] <> 0 goto %000002c1 -00000623: goto %00000367 - -00000367: -0000036a: R0 := 0x10000 -00000371: R0 := mem[R0 + 0xFC8, el]:u64 -00000377: when R0 = 0 goto %00000375 -00000624: goto %0000038e - -0000038e: -00000391: R0 := 0x11000 -00000398: R0 := mem[R0 + 0x28, el]:u64 -0000039d: R30 := 0x6F0 -000003a0: call @__cxa_finalize with return %00000375 - -00000375: -0000037d: R30 := 0x6F4 -0000037f: call @deregister_tm_clones with return %00000381 - -00000381: -00000384: R0 := 1 -0000038c: mem := mem with [R19 + 0x30] <- 7:0[R0] -00000625: goto %000002c1 - -000002c1: -000002cb: R19 := mem[R31 + 0x10, el]:u64 -000002d2: R29 := mem[R31, el]:u64 -000002d7: R30 := mem[R31 + 8, el]:u64 -000002db: R31 := R31 + 0x20 -000002e0: call R30 with noreturn - -000005ff: sub __libc_start_main(__libc_start_main_main, __libc_start_main_arg2, __libc_start_main_arg3, __libc_start_main_auxv, __libc_start_main_result) -00000631: __libc_start_main_main :: in u64 = R0 -00000632: __libc_start_main_arg2 :: in u32 = low:32[R1] -00000633: __libc_start_main_arg3 :: in out u64 = R2 -00000634: __libc_start_main_auxv :: in out u64 = R3 -00000635: __libc_start_main_result :: out u32 = low:32[R0] - -000001e7: -00000480: R16 := 0x11000 -00000487: R17 := mem[R16, el]:u64 -0000048d: R16 := R16 -00000492: call R17 with noreturn - -00000600: sub _fini(_fini_result) -00000636: _fini_result :: out u32 = low:32[R0] - -0000001f: -00000025: #0 := R31 - 0x10 -0000002b: mem := mem with [#0, el]:u64 <- R29 -00000031: mem := mem with [#0 + 8, el]:u64 <- R30 -00000035: R31 := #0 -0000003b: R29 := R31 -00000042: R29 := mem[R31, el]:u64 -00000047: R30 := mem[R31 + 8, el]:u64 -0000004b: R31 := R31 + 0x10 -00000050: call R30 with noreturn - -00000601: sub _init(_init_result) -00000637: _init_result :: out u32 = low:32[R0] - -0000054c: -00000552: #6 := R31 - 0x10 -00000558: mem := mem with [#6, el]:u64 <- R29 -0000055e: mem := mem with [#6 + 8, el]:u64 <- R30 -00000562: R31 := #6 -00000568: R29 := R31 -0000056d: R30 := 0x590 -0000056f: call @call_weak_fn with return %00000571 - -00000571: -00000576: R29 := mem[R31, el]:u64 -0000057b: R30 := mem[R31 + 8, el]:u64 -0000057f: R31 := R31 + 0x10 -00000584: call R30 with noreturn - -00000602: sub _start(_start_result) -00000638: _start_result :: out u32 = low:32[R0] - -000001a8: -000001ad: R29 := 0 -000001b2: R30 := 0 -000001b8: R5 := R0 -000001bf: R1 := mem[R31, el]:u64 -000001c5: R2 := R31 + 8 -000001cb: R6 := R31 -000001d0: R0 := 0x10000 -000001d7: R0 := mem[R0 + 0xFD8, el]:u64 -000001dc: R3 := 0 -000001e1: R4 := 0 -000001e6: R30 := 0x630 -000001e9: call @__libc_start_main with return %000001eb - -000001eb: -000001ee: R30 := 0x634 -000001f1: call @abort with return %00000626 - -00000626: -00000627: call @call_weak_fn with noreturn - -00000605: sub abort() - - -000001ef: -000004c2: R16 := 0x11000 -000004c9: R17 := mem[R16 + 0x18, el]:u64 -000004cf: R16 := R16 + 0x18 -000004d4: call R17 with noreturn - -00000606: sub call_weak_fn(call_weak_fn_result) -00000639: call_weak_fn_result :: out u32 = low:32[R0] - -000001f3: -000001f6: R0 := 0x10000 -000001fd: R0 := mem[R0 + 0xFD0, el]:u64 -00000203: when R0 = 0 goto %00000201 -00000628: goto %000003de - -00000201: -00000209: call R30 with noreturn - -000003de: -000003e1: goto @__gmon_start__ - -000003df: -000004ac: R16 := 0x11000 -000004b3: R17 := mem[R16 + 0x10, el]:u64 -000004b9: R16 := R16 + 0x10 -000004be: call R17 with noreturn - -00000608: sub deregister_tm_clones(deregister_tm_clones_result) -0000063a: deregister_tm_clones_result :: out u32 = low:32[R0] - -0000020f: -00000212: R0 := 0x11000 -00000218: R0 := R0 + 0x30 -0000021d: R1 := 0x11000 -00000223: R1 := R1 + 0x30 -00000229: #1 := ~R0 -0000022e: #2 := R1 + ~R0 -00000234: VF := extend:65[#2 + 1] <> extend:65[R1] + extend:65[#1] + 1 -0000023a: CF := pad:65[#2 + 1] <> pad:65[R1] + pad:65[#1] + 1 -0000023e: ZF := #2 + 1 = 0 -00000242: NF := 63:63[#2 + 1] -00000248: when ZF goto %00000246 -00000629: goto %000003c0 - -000003c0: -000003c3: R1 := 0x10000 -000003ca: R1 := mem[R1 + 0xFC0, el]:u64 -000003cf: when R1 = 0 goto %00000246 -0000062a: goto %000003d3 - -00000246: -0000024e: call R30 with noreturn - -000003d3: -000003d7: R16 := R1 -000003dc: call R16 with noreturn - -0000060b: sub frame_dummy(frame_dummy_result) -0000063b: frame_dummy_result :: out u32 = low:32[R0] - -000002e6: -000002e8: call @register_tm_clones with noreturn - -0000060c: sub main(main_argc, main_argv, main_result) -0000063c: main_argc :: in u32 = low:32[R0] -0000063d: main_argv :: in out u64 = R1 -0000063e: main_result :: out u32 = low:32[R0] - -000002ea: -000002ee: R31 := R31 - 0x10 -000002f5: mem := mem with [R31 + 0xC, el]:u32 <- 0 -000002fa: R8 := 0x11000 -00000301: R8 := pad:64[mem[R8 + 0x34, el]:u32] -00000307: #4 := 31:0[R8] - 1 -0000030c: VF := extend:33[#4 + 1] <> extend:33[31:0[R8]] + 0 -00000311: CF := pad:33[#4 + 1] <> pad:33[31:0[R8]] - 0x100000000 -00000315: ZF := #4 + 1 = 0 -00000319: NF := 31:31[#4 + 1] -0000031d: R8 := pad:64[#4 + 1] -00000329: when ZF <> 1 goto %00000322 -0000032a: goto %00000325 - -00000325: -00000326: R8 := 1 -0000032c: goto %00000328 - -00000322: -00000323: R8 := 0 -0000032b: goto %00000328 - -00000328: -00000332: when 0:0[R8] goto %00000330 -0000062b: goto %00000358 - -00000330: -00000338: R8 := 1 -00000340: mem := mem with [R31 + 0xC, el]:u32 <- 31:0[R8] -00000345: goto %00000343 - -00000358: -0000035b: goto %00000359 - -00000359: -00000361: mem := mem with [R31 + 0xC, el]:u32 <- 0 -00000365: goto %00000343 - -00000343: -0000034b: R0 := pad:64[mem[R31 + 0xC, el]:u32] -00000351: R31 := R31 + 0x10 -00000356: call R30 with noreturn - -0000060e: sub register_tm_clones(register_tm_clones_result) -0000063f: register_tm_clones_result :: out u32 = low:32[R0] - -00000250: -00000253: R0 := 0x11000 -00000259: R0 := R0 + 0x30 -0000025e: R1 := 0x11000 -00000264: R1 := R1 + 0x30 -0000026b: R1 := R1 + ~R0 + 1 -00000271: R2 := 0.63:63[R1] -00000278: R1 := R2 + (R1 ~>> 3) -0000027e: R1 := extend:64[63:1[R1]] -00000284: when R1 = 0 goto %00000282 -0000062c: goto %000003a2 - -000003a2: -000003a5: R2 := 0x10000 -000003ac: R2 := mem[R2 + 0xFE0, el]:u64 -000003b1: when R2 = 0 goto %00000282 -0000062d: goto %000003b5 - -00000282: -0000028a: call R30 with noreturn - -000003b5: -000003b9: R16 := R2 -000003be: call R16 with noreturn diff --git a/src/test/correct/using_gamma_conditional/clang/using_gamma_conditional.expected b/src/test/correct/using_gamma_conditional/clang/using_gamma_conditional.expected index fa938215f..cee4c3af4 100644 --- a/src/test/correct/using_gamma_conditional/clang/using_gamma_conditional.expected +++ b/src/test/correct/using_gamma_conditional/clang/using_gamma_conditional.expected @@ -2,41 +2,34 @@ var {:extern} CF: bv1; var {:extern} Gamma_CF: bool; var {:extern} Gamma_NF: bool; var {:extern} Gamma_R0: bool; -var {:extern} Gamma_R31: bool; var {:extern} Gamma_R8: bool; var {:extern} Gamma_VF: bool; var {:extern} Gamma_ZF: bool; var {:extern} Gamma_mem: [bv64]bool; -var {:extern} Gamma_stack: [bv64]bool; var {:extern} NF: bv1; var {:extern} R0: bv64; -var {:extern} R31: bv64; var {:extern} R8: bv64; var {:extern} VF: bv1; var {:extern} ZF: bv1; var {:extern} mem: [bv64]bv8; -var {:extern} stack: [bv64]bv8; const {:extern} $x_addr: bv64; -axiom ($x_addr == 69684bv64); +axiom ($x_addr == 131092bv64); const {:extern} $z_addr: bv64; -axiom ($z_addr == 69688bv64); +axiom ($z_addr == 131096bv64); function {:extern} L(mem$in: [bv64]bv8, index: bv64) returns (bool) { (if (index == $z_addr) then true else (if (index == $x_addr) then (memory_load32_le(mem$in, $z_addr) == 0bv32) else false)) } -function {:extern} {:bvbuiltin "bvadd"} bvadd32(bv32, bv32) returns (bv32); -function {:extern} {:bvbuiltin "bvadd"} bvadd33(bv33, bv33) returns (bv33); function {:extern} {:bvbuiltin "bvadd"} bvadd64(bv64, bv64) returns (bv64); function {:extern} {:bvbuiltin "bvcomp"} bvcomp1(bv1, bv1) returns (bv1); function {:extern} {:bvbuiltin "bvcomp"} bvcomp32(bv32, bv32) returns (bv1); -function {:extern} {:bvbuiltin "bvcomp"} bvcomp33(bv33, bv33) returns (bv1); function {:extern} {:bvbuiltin "bvnot"} bvnot1(bv1) returns (bv1); function {:extern} gamma_load32(gammaMap: [bv64]bool, index: bv64) returns (bool) { (gammaMap[bvadd64(index, 3bv64)] && (gammaMap[bvadd64(index, 2bv64)] && (gammaMap[bvadd64(index, 1bv64)] && gammaMap[index]))) } -function {:extern} gamma_store32(gammaMap: [bv64]bool, index: bv64, value: bool) returns ([bv64]bool) { - gammaMap[index := value][bvadd64(index, 1bv64) := value][bvadd64(index, 2bv64) := value][bvadd64(index, 3bv64) := value] +function {:extern} gamma_load64(gammaMap: [bv64]bool, index: bv64) returns (bool) { + (gammaMap[bvadd64(index, 7bv64)] && (gammaMap[bvadd64(index, 6bv64)] && (gammaMap[bvadd64(index, 5bv64)] && (gammaMap[bvadd64(index, 4bv64)] && (gammaMap[bvadd64(index, 3bv64)] && (gammaMap[bvadd64(index, 2bv64)] && (gammaMap[bvadd64(index, 1bv64)] && gammaMap[index]))))))) } function {:extern} memory_load32_le(memory: [bv64]bv8, index: bv64) returns (bv32) { @@ -47,22 +40,17 @@ function {:extern} memory_load64_le(memory: [bv64]bv8, index: bv64) returns (bv6 (memory[bvadd64(index, 7bv64)] ++ (memory[bvadd64(index, 6bv64)] ++ (memory[bvadd64(index, 5bv64)] ++ (memory[bvadd64(index, 4bv64)] ++ (memory[bvadd64(index, 3bv64)] ++ (memory[bvadd64(index, 2bv64)] ++ (memory[bvadd64(index, 1bv64)] ++ memory[index]))))))) } -function {:extern} memory_store32_le(memory: [bv64]bv8, index: bv64, value: bv32) returns ([bv64]bv8) { - memory[index := value[8:0]][bvadd64(index, 1bv64) := value[16:8]][bvadd64(index, 2bv64) := value[24:16]][bvadd64(index, 3bv64) := value[32:24]] -} - -function {:extern} {:bvbuiltin "sign_extend 1"} sign_extend1_32(bv32) returns (bv33); -function {:extern} {:bvbuiltin "zero_extend 1"} zero_extend1_32(bv32) returns (bv33); function {:extern} {:bvbuiltin "zero_extend 32"} zero_extend32_32(bv32) returns (bv64); procedure {:extern} rely(); modifies Gamma_mem, mem; ensures (forall i: bv64 :: (((mem[i] == old(mem[i])) ==> (Gamma_mem[i] == old(Gamma_mem[i]))))); ensures (old(gamma_load32(Gamma_mem, $x_addr)) ==> gamma_load32(Gamma_mem, $x_addr)); - free ensures (memory_load32_le(mem, 1896bv64) == 131073bv32); - free ensures (memory_load64_le(mem, 69064bv64) == 1808bv64); - free ensures (memory_load64_le(mem, 69072bv64) == 1728bv64); - free ensures (memory_load64_le(mem, 69592bv64) == 1812bv64); - free ensures (memory_load64_le(mem, 69672bv64) == 69672bv64); + free ensures (memory_load32_le(mem, 2304bv64) == 131073bv32); + free ensures (memory_load64_le(mem, 130432bv64) == 2256bv64); + free ensures (memory_load64_le(mem, 130440bv64) == 2176bv64); + free ensures (memory_load64_le(mem, 131040bv64) == 131092bv64); + free ensures (memory_load64_le(mem, 131056bv64) == 2260bv64); + free ensures (memory_load64_le(mem, 131080bv64) == 131080bv64); procedure {:extern} rely_transitive(); modifies Gamma_mem, mem; @@ -89,99 +77,66 @@ implementation {:extern} guarantee_reflexive() assert ((memory_load32_le(mem, $x_addr) == memory_load32_le(mem, $x_addr)) && (memory_load32_le(mem, $z_addr) == memory_load32_le(mem, $z_addr))); } -procedure main_1812(); - modifies CF, Gamma_CF, Gamma_NF, Gamma_R0, Gamma_R31, Gamma_R8, Gamma_VF, Gamma_ZF, Gamma_mem, Gamma_stack, NF, R0, R31, R8, VF, ZF, mem, stack; +procedure main(); + modifies CF, Gamma_CF, Gamma_NF, Gamma_R0, Gamma_R8, Gamma_VF, Gamma_ZF, Gamma_mem, NF, R0, R8, VF, ZF, mem; requires (gamma_load32(Gamma_mem, $x_addr) == true); - free requires (memory_load64_le(mem, 69664bv64) == 0bv64); - free requires (memory_load64_le(mem, 69672bv64) == 69672bv64); - free requires (memory_load32_le(mem, 1896bv64) == 131073bv32); - free requires (memory_load64_le(mem, 69064bv64) == 1808bv64); - free requires (memory_load64_le(mem, 69072bv64) == 1728bv64); - free requires (memory_load64_le(mem, 69592bv64) == 1812bv64); - free requires (memory_load64_le(mem, 69672bv64) == 69672bv64); - free ensures (Gamma_R31 == old(Gamma_R31)); - free ensures (R31 == old(R31)); - free ensures (memory_load32_le(mem, 1896bv64) == 131073bv32); - free ensures (memory_load64_le(mem, 69064bv64) == 1808bv64); - free ensures (memory_load64_le(mem, 69072bv64) == 1728bv64); - free ensures (memory_load64_le(mem, 69592bv64) == 1812bv64); - free ensures (memory_load64_le(mem, 69672bv64) == 69672bv64); + free requires (memory_load64_le(mem, 131072bv64) == 0bv64); + free requires (memory_load64_le(mem, 131080bv64) == 131080bv64); + free requires (memory_load32_le(mem, 2304bv64) == 131073bv32); + free requires (memory_load64_le(mem, 130432bv64) == 2256bv64); + free requires (memory_load64_le(mem, 130440bv64) == 2176bv64); + free requires (memory_load64_le(mem, 131040bv64) == 131092bv64); + free requires (memory_load64_le(mem, 131056bv64) == 2260bv64); + free requires (memory_load64_le(mem, 131080bv64) == 131080bv64); + free ensures (memory_load32_le(mem, 2304bv64) == 131073bv32); + free ensures (memory_load64_le(mem, 130432bv64) == 2256bv64); + free ensures (memory_load64_le(mem, 130440bv64) == 2176bv64); + free ensures (memory_load64_le(mem, 131040bv64) == 131092bv64); + free ensures (memory_load64_le(mem, 131056bv64) == 2260bv64); + free ensures (memory_load64_le(mem, 131080bv64) == 131080bv64); -implementation main_1812() +implementation main() { - var #4: bv32; - var Gamma_#4: bool; - var Gamma_load18: bool; - var Gamma_load19: bool; - var load18: bv32; - var load19: bv32; + var $load$18: bv64; + var $load$19: bv32; + var Gamma_$load$18: bool; + var Gamma_$load$19: bool; lmain: assume {:captureState "lmain"} true; - R31, Gamma_R31 := bvadd64(R31, 18446744073709551600bv64), Gamma_R31; - stack, Gamma_stack := memory_store32_le(stack, bvadd64(R31, 12bv64), 0bv32), gamma_store32(Gamma_stack, bvadd64(R31, 12bv64), true); - assume {:captureState "%000002f5"} true; - R8, Gamma_R8 := 69632bv64, true; + R8, Gamma_R8 := 126976bv64, true; + call rely(); + $load$18, Gamma_$load$18 := memory_load64_le(mem, bvadd64(R8, 4064bv64)), (gamma_load64(Gamma_mem, bvadd64(R8, 4064bv64)) || L(mem, bvadd64(R8, 4064bv64))); + R8, Gamma_R8 := $load$18, Gamma_$load$18; call rely(); - load18, Gamma_load18 := memory_load32_le(mem, bvadd64(R8, 52bv64)), (gamma_load32(Gamma_mem, bvadd64(R8, 52bv64)) || L(mem, bvadd64(R8, 52bv64))); - R8, Gamma_R8 := zero_extend32_32(load18), Gamma_load18; - #4, Gamma_#4 := bvadd32(R8[32:0], 4294967295bv32), Gamma_R8; - VF, Gamma_VF := bvnot1(bvcomp33(sign_extend1_32(bvadd32(#4, 1bv32)), bvadd33(sign_extend1_32(R8[32:0]), 0bv33))), (Gamma_R8 && Gamma_#4); - CF, Gamma_CF := bvnot1(bvcomp33(zero_extend1_32(bvadd32(#4, 1bv32)), bvadd33(zero_extend1_32(R8[32:0]), 4294967296bv33))), (Gamma_R8 && Gamma_#4); - ZF, Gamma_ZF := bvcomp32(bvadd32(#4, 1bv32), 0bv32), Gamma_#4; - NF, Gamma_NF := bvadd32(#4, 1bv32)[32:31], Gamma_#4; - R8, Gamma_R8 := zero_extend32_32(bvadd32(#4, 1bv32)), Gamma_#4; + $load$19, Gamma_$load$19 := memory_load32_le(mem, R8), (gamma_load32(Gamma_mem, R8) || L(mem, R8)); + R8, Gamma_R8 := zero_extend32_32($load$19), Gamma_$load$19; + VF, Gamma_VF := 0bv1, true; + CF, Gamma_CF := 1bv1, true; + ZF, Gamma_ZF := bvcomp32(R8[32:0], 0bv32), Gamma_R8; + NF, Gamma_NF := R8[32:31], Gamma_R8; assert Gamma_ZF; - goto lmain_goto_l00000322, lmain_goto_l00000325; - lmain_goto_l00000325: - assume {:captureState "lmain_goto_l00000325"} true; - assume (bvnot1(bvcomp1(ZF, 1bv1)) == 0bv1); - R8, Gamma_R8 := 1bv64, true; - goto l00000325; - l00000325: - assume {:captureState "l00000325"} true; - goto l00000328; - lmain_goto_l00000322: - assume {:captureState "lmain_goto_l00000322"} true; + goto lmain_goto_l0000029c, lmain_goto_l000002a4; + l000002a4: + assume {:captureState "l000002a4"} true; + R0, Gamma_R0 := 1bv64, true; + goto l000002b0; + l0000029c: + assume {:captureState "l0000029c"} true; + R0, Gamma_R0 := 0bv64, true; + goto l000002b0; + l000002b0: + assume {:captureState "l000002b0"} true; + goto main_basil_return; + lmain_goto_l0000029c: + assume {:captureState "lmain_goto_l0000029c"} true; assume (bvnot1(bvcomp1(ZF, 1bv1)) != 0bv1); - R8, Gamma_R8 := 0bv64, true; - goto l00000322; - l00000322: - assume {:captureState "l00000322"} true; - goto l00000328; - l00000328: - assume {:captureState "l00000328"} true; - assert Gamma_R8; - goto l00000328_goto_l00000330, l00000328_goto_l00000358; - l00000328_goto_l00000358: - assume {:captureState "l00000328_goto_l00000358"} true; - assume (bvcomp1(R8[1:0], 1bv1) == 0bv1); - goto l00000358; - l00000358: - assume {:captureState "l00000358"} true; - goto l00000359; - l00000359: - assume {:captureState "l00000359"} true; - stack, Gamma_stack := memory_store32_le(stack, bvadd64(R31, 12bv64), 0bv32), gamma_store32(Gamma_stack, bvadd64(R31, 12bv64), true); - assume {:captureState "%00000361"} true; - goto l00000343; - l00000328_goto_l00000330: - assume {:captureState "l00000328_goto_l00000330"} true; - assume (bvcomp1(R8[1:0], 1bv1) != 0bv1); - R8, Gamma_R8 := 1bv64, true; - stack, Gamma_stack := memory_store32_le(stack, bvadd64(R31, 12bv64), R8[32:0]), gamma_store32(Gamma_stack, bvadd64(R31, 12bv64), Gamma_R8); - assume {:captureState "%00000340"} true; - goto l00000330; - l00000330: - assume {:captureState "l00000330"} true; - goto l00000343; - l00000343: - assume {:captureState "l00000343"} true; - load19, Gamma_load19 := memory_load32_le(stack, bvadd64(R31, 12bv64)), gamma_load32(Gamma_stack, bvadd64(R31, 12bv64)); - R0, Gamma_R0 := zero_extend32_32(load19), Gamma_load19; - R31, Gamma_R31 := bvadd64(R31, 16bv64), Gamma_R31; - goto main_1812_basil_return; - main_1812_basil_return: - assume {:captureState "main_1812_basil_return"} true; + goto l0000029c; + lmain_goto_l000002a4: + assume {:captureState "lmain_goto_l000002a4"} true; + assume (bvnot1(bvcomp1(ZF, 1bv1)) == 0bv1); + goto l000002a4; + main_basil_return: + assume {:captureState "main_basil_return"} true; return; } diff --git a/src/test/correct/using_gamma_conditional/clang/using_gamma_conditional.gts b/src/test/correct/using_gamma_conditional/clang/using_gamma_conditional.gts deleted file mode 100644 index 7b9f7f338..000000000 Binary files a/src/test/correct/using_gamma_conditional/clang/using_gamma_conditional.gts and /dev/null differ diff --git a/src/test/correct/using_gamma_conditional/clang/using_gamma_conditional.md5sum b/src/test/correct/using_gamma_conditional/clang/using_gamma_conditional.md5sum new file mode 100644 index 000000000..a50c63ac4 --- /dev/null +++ b/src/test/correct/using_gamma_conditional/clang/using_gamma_conditional.md5sum @@ -0,0 +1,5 @@ +5b41082fef8fe310cc591610ff7c6794 correct/using_gamma_conditional/clang/a.out +34bc5914ac91bc457029e7998d503d1d correct/using_gamma_conditional/clang/using_gamma_conditional.adt +2d91eca6da945b66cd71d3074f07221c correct/using_gamma_conditional/clang/using_gamma_conditional.bir +2c861e62fb94a4d782fffb569ee043c2 correct/using_gamma_conditional/clang/using_gamma_conditional.relf +86555db26ccba8f18a5c39ab259e0c21 correct/using_gamma_conditional/clang/using_gamma_conditional.gts diff --git a/src/test/correct/using_gamma_conditional/clang/using_gamma_conditional.relf b/src/test/correct/using_gamma_conditional/clang/using_gamma_conditional.relf deleted file mode 100644 index 9d09f8bee..000000000 --- a/src/test/correct/using_gamma_conditional/clang/using_gamma_conditional.relf +++ /dev/null @@ -1,124 +0,0 @@ - -Relocation section '.rela.dyn' at offset 0x460 contains 8 entries: - Offset Info Type Symbol's Value Symbol's Name + Addend -0000000000010dc8 0000000000000403 R_AARCH64_RELATIVE 710 -0000000000010dd0 0000000000000403 R_AARCH64_RELATIVE 6c0 -0000000000010fd8 0000000000000403 R_AARCH64_RELATIVE 714 -0000000000011028 0000000000000403 R_AARCH64_RELATIVE 11028 -0000000000010fc0 0000000400000401 R_AARCH64_GLOB_DAT 0000000000000000 _ITM_deregisterTMCloneTable + 0 -0000000000010fc8 0000000500000401 R_AARCH64_GLOB_DAT 0000000000000000 __cxa_finalize@GLIBC_2.17 + 0 -0000000000010fd0 0000000600000401 R_AARCH64_GLOB_DAT 0000000000000000 __gmon_start__ + 0 -0000000000010fe0 0000000800000401 R_AARCH64_GLOB_DAT 0000000000000000 _ITM_registerTMCloneTable + 0 - -Relocation section '.rela.plt' at offset 0x520 contains 4 entries: - Offset Info Type Symbol's Value Symbol's Name + Addend -0000000000011000 0000000300000402 R_AARCH64_JUMP_SLOT 0000000000000000 __libc_start_main@GLIBC_2.34 + 0 -0000000000011008 0000000500000402 R_AARCH64_JUMP_SLOT 0000000000000000 __cxa_finalize@GLIBC_2.17 + 0 -0000000000011010 0000000600000402 R_AARCH64_JUMP_SLOT 0000000000000000 __gmon_start__ + 0 -0000000000011018 0000000700000402 R_AARCH64_JUMP_SLOT 0000000000000000 abort@GLIBC_2.17 + 0 - -Symbol table '.dynsym' contains 9 entries: - Num: Value Size Type Bind Vis Ndx Name - 0: 0000000000000000 0 NOTYPE LOCAL DEFAULT UND - 1: 0000000000000580 0 SECTION LOCAL DEFAULT 11 .init - 2: 0000000000011020 0 SECTION LOCAL DEFAULT 23 .data - 3: 0000000000000000 0 FUNC GLOBAL DEFAULT UND __libc_start_main@GLIBC_2.34 (2) - 4: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_deregisterTMCloneTable - 5: 0000000000000000 0 FUNC WEAK DEFAULT UND __cxa_finalize@GLIBC_2.17 (3) - 6: 0000000000000000 0 NOTYPE WEAK DEFAULT UND __gmon_start__ - 7: 0000000000000000 0 FUNC GLOBAL DEFAULT UND abort@GLIBC_2.17 (3) - 8: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_registerTMCloneTable - -Symbol table '.symtab' contains 91 entries: - Num: Value Size Type Bind Vis Ndx Name - 0: 0000000000000000 0 NOTYPE LOCAL DEFAULT UND - 1: 0000000000000238 0 SECTION LOCAL DEFAULT 1 .interp - 2: 0000000000000254 0 SECTION LOCAL DEFAULT 2 .note.gnu.build-id - 3: 0000000000000278 0 SECTION LOCAL DEFAULT 3 .note.ABI-tag - 4: 0000000000000298 0 SECTION LOCAL DEFAULT 4 .gnu.hash - 5: 00000000000002b8 0 SECTION LOCAL DEFAULT 5 .dynsym - 6: 0000000000000390 0 SECTION LOCAL DEFAULT 6 .dynstr - 7: 000000000000041e 0 SECTION LOCAL DEFAULT 7 .gnu.version - 8: 0000000000000430 0 SECTION LOCAL DEFAULT 8 .gnu.version_r - 9: 0000000000000460 0 SECTION LOCAL DEFAULT 9 .rela.dyn - 10: 0000000000000520 0 SECTION LOCAL DEFAULT 10 .rela.plt - 11: 0000000000000580 0 SECTION LOCAL DEFAULT 11 .init - 12: 00000000000005a0 0 SECTION LOCAL DEFAULT 12 .plt - 13: 0000000000000600 0 SECTION LOCAL DEFAULT 13 .text - 14: 0000000000000754 0 SECTION LOCAL DEFAULT 14 .fini - 15: 0000000000000768 0 SECTION LOCAL DEFAULT 15 .rodata - 16: 000000000000076c 0 SECTION LOCAL DEFAULT 16 .eh_frame_hdr - 17: 00000000000007a8 0 SECTION LOCAL DEFAULT 17 .eh_frame - 18: 0000000000010dc8 0 SECTION LOCAL DEFAULT 18 .init_array - 19: 0000000000010dd0 0 SECTION LOCAL DEFAULT 19 .fini_array - 20: 0000000000010dd8 0 SECTION LOCAL DEFAULT 20 .dynamic - 21: 0000000000010fb8 0 SECTION LOCAL DEFAULT 21 .got - 22: 0000000000010fe8 0 SECTION LOCAL DEFAULT 22 .got.plt - 23: 0000000000011020 0 SECTION LOCAL DEFAULT 23 .data - 24: 0000000000011030 0 SECTION LOCAL DEFAULT 24 .bss - 25: 0000000000000000 0 SECTION LOCAL DEFAULT 25 .comment - 26: 0000000000000000 0 FILE LOCAL DEFAULT ABS Scrt1.o - 27: 0000000000000278 0 NOTYPE LOCAL DEFAULT 3 $d - 28: 0000000000000278 32 OBJECT LOCAL DEFAULT 3 __abi_tag - 29: 0000000000000600 0 NOTYPE LOCAL DEFAULT 13 $x - 30: 00000000000007bc 0 NOTYPE LOCAL DEFAULT 17 $d - 31: 0000000000000768 0 NOTYPE LOCAL DEFAULT 15 $d - 32: 0000000000000000 0 FILE LOCAL DEFAULT ABS crti.o - 33: 0000000000000634 0 NOTYPE LOCAL DEFAULT 13 $x - 34: 0000000000000634 20 FUNC LOCAL DEFAULT 13 call_weak_fn - 35: 0000000000000580 0 NOTYPE LOCAL DEFAULT 11 $x - 36: 0000000000000754 0 NOTYPE LOCAL DEFAULT 14 $x - 37: 0000000000000000 0 FILE LOCAL DEFAULT ABS crtn.o - 38: 0000000000000590 0 NOTYPE LOCAL DEFAULT 11 $x - 39: 0000000000000760 0 NOTYPE LOCAL DEFAULT 14 $x - 40: 0000000000000000 0 FILE LOCAL DEFAULT ABS crtstuff.c - 41: 0000000000000650 0 NOTYPE LOCAL DEFAULT 13 $x - 42: 0000000000000650 0 FUNC LOCAL DEFAULT 13 deregister_tm_clones - 43: 0000000000000680 0 FUNC LOCAL DEFAULT 13 register_tm_clones - 44: 0000000000011028 0 NOTYPE LOCAL DEFAULT 23 $d - 45: 00000000000006c0 0 FUNC LOCAL DEFAULT 13 __do_global_dtors_aux - 46: 0000000000011030 1 OBJECT LOCAL DEFAULT 24 completed.0 - 47: 0000000000010dd0 0 NOTYPE LOCAL DEFAULT 19 $d - 48: 0000000000010dd0 0 OBJECT LOCAL DEFAULT 19 __do_global_dtors_aux_fini_array_entry - 49: 0000000000000710 0 FUNC LOCAL DEFAULT 13 frame_dummy - 50: 0000000000010dc8 0 NOTYPE LOCAL DEFAULT 18 $d - 51: 0000000000010dc8 0 OBJECT LOCAL DEFAULT 18 __frame_dummy_init_array_entry - 52: 00000000000007d0 0 NOTYPE LOCAL DEFAULT 17 $d - 53: 0000000000011030 0 NOTYPE LOCAL DEFAULT 24 $d - 54: 0000000000000000 0 FILE LOCAL DEFAULT ABS using_gamma_conditional.c - 55: 0000000000000714 0 NOTYPE LOCAL DEFAULT 13 $x.0 - 56: 0000000000011034 0 NOTYPE LOCAL DEFAULT 24 $d.1 - 57: 000000000000002a 0 NOTYPE LOCAL DEFAULT 25 $d.2 - 58: 0000000000000830 0 NOTYPE LOCAL DEFAULT 17 $d.3 - 59: 0000000000000000 0 FILE LOCAL DEFAULT ABS crtstuff.c - 60: 000000000000085c 0 NOTYPE LOCAL DEFAULT 17 $d - 61: 000000000000085c 0 OBJECT LOCAL DEFAULT 17 __FRAME_END__ - 62: 0000000000000000 0 FILE LOCAL DEFAULT ABS - 63: 0000000000010dd8 0 OBJECT LOCAL DEFAULT ABS _DYNAMIC - 64: 000000000000076c 0 NOTYPE LOCAL DEFAULT 16 __GNU_EH_FRAME_HDR - 65: 0000000000010fb8 0 OBJECT LOCAL DEFAULT ABS _GLOBAL_OFFSET_TABLE_ - 66: 00000000000005a0 0 NOTYPE LOCAL DEFAULT 12 $x - 67: 0000000000000000 0 FUNC GLOBAL DEFAULT UND __libc_start_main@GLIBC_2.34 - 68: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_deregisterTMCloneTable - 69: 0000000000011020 0 NOTYPE WEAK DEFAULT 23 data_start - 70: 0000000000011030 0 NOTYPE GLOBAL DEFAULT 24 __bss_start__ - 71: 0000000000000000 0 FUNC WEAK DEFAULT UND __cxa_finalize@GLIBC_2.17 - 72: 0000000000011040 0 NOTYPE GLOBAL DEFAULT 24 _bss_end__ - 73: 0000000000011030 0 NOTYPE GLOBAL DEFAULT 23 _edata - 74: 0000000000011038 4 OBJECT GLOBAL DEFAULT 24 z - 75: 0000000000011034 4 OBJECT GLOBAL DEFAULT 24 x - 76: 0000000000000754 0 FUNC GLOBAL HIDDEN 14 _fini - 77: 0000000000011040 0 NOTYPE GLOBAL DEFAULT 24 __bss_end__ - 78: 0000000000011020 0 NOTYPE GLOBAL DEFAULT 23 __data_start - 79: 0000000000000000 0 NOTYPE WEAK DEFAULT UND __gmon_start__ - 80: 0000000000011028 0 OBJECT GLOBAL HIDDEN 23 __dso_handle - 81: 0000000000000000 0 FUNC GLOBAL DEFAULT UND abort@GLIBC_2.17 - 82: 0000000000000768 4 OBJECT GLOBAL DEFAULT 15 _IO_stdin_used - 83: 0000000000011040 0 NOTYPE GLOBAL DEFAULT 24 _end - 84: 0000000000000600 52 FUNC GLOBAL DEFAULT 13 _start - 85: 0000000000011040 0 NOTYPE GLOBAL DEFAULT 24 __end__ - 86: 0000000000011030 0 NOTYPE GLOBAL DEFAULT 24 __bss_start - 87: 0000000000000714 64 FUNC GLOBAL DEFAULT 13 main - 88: 0000000000011030 0 OBJECT GLOBAL HIDDEN 23 __TMC_END__ - 89: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_registerTMCloneTable - 90: 0000000000000580 0 FUNC GLOBAL HIDDEN 11 _init diff --git a/src/test/correct/using_gamma_conditional/clang/using_gamma_conditional_gtirb.expected b/src/test/correct/using_gamma_conditional/clang/using_gamma_conditional_gtirb.expected index 2a712c14c..ed332c80b 100644 --- a/src/test/correct/using_gamma_conditional/clang/using_gamma_conditional_gtirb.expected +++ b/src/test/correct/using_gamma_conditional/clang/using_gamma_conditional_gtirb.expected @@ -2,40 +2,32 @@ var {:extern} CF: bv1; var {:extern} Gamma_CF: bool; var {:extern} Gamma_NF: bool; var {:extern} Gamma_R0: bool; -var {:extern} Gamma_R31: bool; var {:extern} Gamma_R8: bool; var {:extern} Gamma_VF: bool; var {:extern} Gamma_ZF: bool; var {:extern} Gamma_mem: [bv64]bool; -var {:extern} Gamma_stack: [bv64]bool; var {:extern} NF: bv1; var {:extern} R0: bv64; -var {:extern} R31: bv64; var {:extern} R8: bv64; var {:extern} VF: bv1; var {:extern} ZF: bv1; var {:extern} mem: [bv64]bv8; -var {:extern} stack: [bv64]bv8; const {:extern} $x_addr: bv64; -axiom ($x_addr == 69684bv64); +axiom ($x_addr == 131092bv64); const {:extern} $z_addr: bv64; -axiom ($z_addr == 69688bv64); +axiom ($z_addr == 131096bv64); function {:extern} L(mem$in: [bv64]bv8, index: bv64) returns (bool) { (if (index == $z_addr) then true else (if (index == $x_addr) then (memory_load32_le(mem$in, $z_addr) == 0bv32) else false)) } -function {:extern} {:bvbuiltin "bvadd"} bvadd32(bv32, bv32) returns (bv32); -function {:extern} {:bvbuiltin "bvadd"} bvadd33(bv33, bv33) returns (bv33); function {:extern} {:bvbuiltin "bvadd"} bvadd64(bv64, bv64) returns (bv64); function {:extern} {:bvbuiltin "bvcomp"} bvcomp32(bv32, bv32) returns (bv1); -function {:extern} {:bvbuiltin "bvcomp"} bvcomp33(bv33, bv33) returns (bv1); -function {:extern} {:bvbuiltin "bvnot"} bvnot1(bv1) returns (bv1); function {:extern} gamma_load32(gammaMap: [bv64]bool, index: bv64) returns (bool) { (gammaMap[bvadd64(index, 3bv64)] && (gammaMap[bvadd64(index, 2bv64)] && (gammaMap[bvadd64(index, 1bv64)] && gammaMap[index]))) } -function {:extern} gamma_store32(gammaMap: [bv64]bool, index: bv64, value: bool) returns ([bv64]bool) { - gammaMap[index := value][bvadd64(index, 1bv64) := value][bvadd64(index, 2bv64) := value][bvadd64(index, 3bv64) := value] +function {:extern} gamma_load64(gammaMap: [bv64]bool, index: bv64) returns (bool) { + (gammaMap[bvadd64(index, 7bv64)] && (gammaMap[bvadd64(index, 6bv64)] && (gammaMap[bvadd64(index, 5bv64)] && (gammaMap[bvadd64(index, 4bv64)] && (gammaMap[bvadd64(index, 3bv64)] && (gammaMap[bvadd64(index, 2bv64)] && (gammaMap[bvadd64(index, 1bv64)] && gammaMap[index]))))))) } function {:extern} memory_load32_le(memory: [bv64]bv8, index: bv64) returns (bv32) { @@ -46,21 +38,17 @@ function {:extern} memory_load64_le(memory: [bv64]bv8, index: bv64) returns (bv6 (memory[bvadd64(index, 7bv64)] ++ (memory[bvadd64(index, 6bv64)] ++ (memory[bvadd64(index, 5bv64)] ++ (memory[bvadd64(index, 4bv64)] ++ (memory[bvadd64(index, 3bv64)] ++ (memory[bvadd64(index, 2bv64)] ++ (memory[bvadd64(index, 1bv64)] ++ memory[index]))))))) } -function {:extern} memory_store32_le(memory: [bv64]bv8, index: bv64, value: bv32) returns ([bv64]bv8) { - memory[index := value[8:0]][bvadd64(index, 1bv64) := value[16:8]][bvadd64(index, 2bv64) := value[24:16]][bvadd64(index, 3bv64) := value[32:24]] -} - -function {:extern} {:bvbuiltin "zero_extend 1"} zero_extend1_32(bv32) returns (bv33); function {:extern} {:bvbuiltin "zero_extend 32"} zero_extend32_32(bv32) returns (bv64); procedure {:extern} rely(); modifies Gamma_mem, mem; ensures (forall i: bv64 :: (((mem[i] == old(mem[i])) ==> (Gamma_mem[i] == old(Gamma_mem[i]))))); ensures (old(gamma_load32(Gamma_mem, $x_addr)) ==> gamma_load32(Gamma_mem, $x_addr)); - free ensures (memory_load32_le(mem, 1896bv64) == 131073bv32); - free ensures (memory_load64_le(mem, 69064bv64) == 1808bv64); - free ensures (memory_load64_le(mem, 69072bv64) == 1728bv64); - free ensures (memory_load64_le(mem, 69592bv64) == 1812bv64); - free ensures (memory_load64_le(mem, 69672bv64) == 69672bv64); + free ensures (memory_load32_le(mem, 2304bv64) == 131073bv32); + free ensures (memory_load64_le(mem, 130432bv64) == 2256bv64); + free ensures (memory_load64_le(mem, 130440bv64) == 2176bv64); + free ensures (memory_load64_le(mem, 131040bv64) == 131092bv64); + free ensures (memory_load64_le(mem, 131056bv64) == 2260bv64); + free ensures (memory_load64_le(mem, 131080bv64) == 131080bv64); procedure {:extern} rely_transitive(); modifies Gamma_mem, mem; @@ -87,91 +75,57 @@ implementation {:extern} guarantee_reflexive() assert ((memory_load32_le(mem, $x_addr) == memory_load32_le(mem, $x_addr)) && (memory_load32_le(mem, $z_addr) == memory_load32_le(mem, $z_addr))); } -procedure main_1812(); - modifies CF, Gamma_CF, Gamma_NF, Gamma_R0, Gamma_R31, Gamma_R8, Gamma_VF, Gamma_ZF, Gamma_mem, Gamma_stack, NF, R0, R31, R8, VF, ZF, mem, stack; +procedure main(); + modifies CF, Gamma_CF, Gamma_NF, Gamma_R0, Gamma_R8, Gamma_VF, Gamma_ZF, Gamma_mem, NF, R0, R8, VF, ZF, mem; requires (gamma_load32(Gamma_mem, $x_addr) == true); - free requires (memory_load64_le(mem, 69664bv64) == 0bv64); - free requires (memory_load64_le(mem, 69672bv64) == 69672bv64); - free requires (memory_load32_le(mem, 1896bv64) == 131073bv32); - free requires (memory_load64_le(mem, 69064bv64) == 1808bv64); - free requires (memory_load64_le(mem, 69072bv64) == 1728bv64); - free requires (memory_load64_le(mem, 69592bv64) == 1812bv64); - free requires (memory_load64_le(mem, 69672bv64) == 69672bv64); - free ensures (Gamma_R31 == old(Gamma_R31)); - free ensures (R31 == old(R31)); - free ensures (memory_load32_le(mem, 1896bv64) == 131073bv32); - free ensures (memory_load64_le(mem, 69064bv64) == 1808bv64); - free ensures (memory_load64_le(mem, 69072bv64) == 1728bv64); - free ensures (memory_load64_le(mem, 69592bv64) == 1812bv64); - free ensures (memory_load64_le(mem, 69672bv64) == 69672bv64); + free requires (memory_load64_le(mem, 131072bv64) == 0bv64); + free requires (memory_load64_le(mem, 131080bv64) == 131080bv64); + free requires (memory_load32_le(mem, 2304bv64) == 131073bv32); + free requires (memory_load64_le(mem, 130432bv64) == 2256bv64); + free requires (memory_load64_le(mem, 130440bv64) == 2176bv64); + free requires (memory_load64_le(mem, 131040bv64) == 131092bv64); + free requires (memory_load64_le(mem, 131056bv64) == 2260bv64); + free requires (memory_load64_le(mem, 131080bv64) == 131080bv64); + free ensures (memory_load32_le(mem, 2304bv64) == 131073bv32); + free ensures (memory_load64_le(mem, 130432bv64) == 2256bv64); + free ensures (memory_load64_le(mem, 130440bv64) == 2176bv64); + free ensures (memory_load64_le(mem, 131040bv64) == 131092bv64); + free ensures (memory_load64_le(mem, 131056bv64) == 2260bv64); + free ensures (memory_load64_le(mem, 131080bv64) == 131080bv64); -implementation main_1812() +implementation main() { - var Cse0__5_3_4: bv32; - var Gamma_Cse0__5_3_4: bool; - var Gamma_load18: bool; - var Gamma_load19: bool; - var load18: bv32; - var load19: bv32; - main_1812__0__2UJDyJD_RrSHL2vo1BbK8Q: - assume {:captureState "main_1812__0__2UJDyJD_RrSHL2vo1BbK8Q"} true; - R31, Gamma_R31 := bvadd64(R31, 18446744073709551600bv64), Gamma_R31; - stack, Gamma_stack := memory_store32_le(stack, bvadd64(R31, 12bv64), 0bv32), gamma_store32(Gamma_stack, bvadd64(R31, 12bv64), true); - assume {:captureState "1816_0"} true; - R8, Gamma_R8 := 69632bv64, true; + var $load19: bv64; + var $load20: bv32; + var Gamma_$load19: bool; + var Gamma_$load20: bool; + $main$__0__$IkNYmV06TxC75h8A4NM3wA: + assume {:captureState "$main$__0__$IkNYmV06TxC75h8A4NM3wA"} true; + R8, Gamma_R8 := 126976bv64, true; + call rely(); + $load19, Gamma_$load19 := memory_load64_le(mem, bvadd64(R8, 4064bv64)), (gamma_load64(Gamma_mem, bvadd64(R8, 4064bv64)) || L(mem, bvadd64(R8, 4064bv64))); + R8, Gamma_R8 := $load19, Gamma_$load19; call rely(); - load18, Gamma_load18 := memory_load32_le(mem, bvadd64(R8, 52bv64)), (gamma_load32(Gamma_mem, bvadd64(R8, 52bv64)) || L(mem, bvadd64(R8, 52bv64))); - R8, Gamma_R8 := zero_extend32_32(load18), Gamma_load18; - Cse0__5_3_4, Gamma_Cse0__5_3_4 := bvadd32(R8[32:0], 0bv32), Gamma_R8; - VF, Gamma_VF := bvnot1(bvcomp32(Cse0__5_3_4, Cse0__5_3_4)), Gamma_Cse0__5_3_4; - CF, Gamma_CF := bvnot1(bvcomp33(zero_extend1_32(Cse0__5_3_4), bvadd33(zero_extend1_32(R8[32:0]), 4294967296bv33))), (Gamma_R8 && Gamma_Cse0__5_3_4); - ZF, Gamma_ZF := bvcomp32(Cse0__5_3_4, 0bv32), Gamma_Cse0__5_3_4; - NF, Gamma_NF := Cse0__5_3_4[32:31], Gamma_Cse0__5_3_4; - R8, Gamma_R8 := zero_extend32_32(Cse0__5_3_4), Gamma_Cse0__5_3_4; + $load20, Gamma_$load20 := memory_load32_le(mem, R8), (gamma_load32(Gamma_mem, R8) || L(mem, R8)); + R8, Gamma_R8 := zero_extend32_32($load20), Gamma_$load20; + VF, Gamma_VF := 0bv1, true; + CF, Gamma_CF := 1bv1, true; + ZF, Gamma_ZF := bvcomp32(R8[32:0], 0bv32), Gamma_R8; + NF, Gamma_NF := R8[32:31], Gamma_R8; assert Gamma_ZF; - goto main_1812__0__2UJDyJD_RrSHL2vo1BbK8Q$__0, main_1812__0__2UJDyJD_RrSHL2vo1BbK8Q$__1; - main_1812__0__2UJDyJD_RrSHL2vo1BbK8Q$__1: - assume {:captureState "main_1812__0__2UJDyJD_RrSHL2vo1BbK8Q$__1"} true; - assume (!(!(ZF == 1bv1))); - R8, Gamma_R8 := 1bv64, true; - assert Gamma_R8; - goto main_1812__0__2UJDyJD_RrSHL2vo1BbK8Q_goto_main_1812__3__jjgsO_vVSHaixByd_HFc4w, main_1812__0__2UJDyJD_RrSHL2vo1BbK8Q_goto_main_1812__1__xuuJL1lASei7mFxWPiiMDQ; - main_1812__0__2UJDyJD_RrSHL2vo1BbK8Q$__0: - assume {:captureState "main_1812__0__2UJDyJD_RrSHL2vo1BbK8Q$__0"} true; + goto $main$__0__$IkNYmV06TxC75h8A4NM3wA$__0, $main$__0__$IkNYmV06TxC75h8A4NM3wA$__1; + $main$__0__$IkNYmV06TxC75h8A4NM3wA$__0: + assume {:captureState "$main$__0__$IkNYmV06TxC75h8A4NM3wA$__0"} true; assume (!(ZF == 1bv1)); - R8, Gamma_R8 := 0bv64, true; - assert Gamma_R8; - goto main_1812__0__2UJDyJD_RrSHL2vo1BbK8Q_goto_main_1812__3__jjgsO_vVSHaixByd_HFc4w, main_1812__0__2UJDyJD_RrSHL2vo1BbK8Q_goto_main_1812__1__xuuJL1lASei7mFxWPiiMDQ; - main_1812__0__2UJDyJD_RrSHL2vo1BbK8Q_goto_main_1812__1__xuuJL1lASei7mFxWPiiMDQ: - assume {:captureState "main_1812__0__2UJDyJD_RrSHL2vo1BbK8Q_goto_main_1812__1__xuuJL1lASei7mFxWPiiMDQ"} true; - assume (!(R8[1:0] == 1bv1)); - goto main_1812__1__xuuJL1lASei7mFxWPiiMDQ; - main_1812__1__xuuJL1lASei7mFxWPiiMDQ: - assume {:captureState "main_1812__1__xuuJL1lASei7mFxWPiiMDQ"} true; - goto main_1812__2__lw6YF3ynQySaNA9zxekV6Q; - main_1812__2__lw6YF3ynQySaNA9zxekV6Q: - assume {:captureState "main_1812__2__lw6YF3ynQySaNA9zxekV6Q"} true; - stack, Gamma_stack := memory_store32_le(stack, bvadd64(R31, 12bv64), 0bv32), gamma_store32(Gamma_stack, bvadd64(R31, 12bv64), true); - assume {:captureState "1844_0"} true; - goto main_1812__4__iCJDxo4mS1WWxijWWu0_Pg; - main_1812__0__2UJDyJD_RrSHL2vo1BbK8Q_goto_main_1812__3__jjgsO_vVSHaixByd_HFc4w: - assume {:captureState "main_1812__0__2UJDyJD_RrSHL2vo1BbK8Q_goto_main_1812__3__jjgsO_vVSHaixByd_HFc4w"} true; - assume (R8[1:0] == 1bv1); - R8, Gamma_R8 := 1bv64, true; - stack, Gamma_stack := memory_store32_le(stack, bvadd64(R31, 12bv64), R8[32:0]), gamma_store32(Gamma_stack, bvadd64(R31, 12bv64), Gamma_R8); - assume {:captureState "1856_0"} true; - goto main_1812__3__jjgsO_vVSHaixByd_HFc4w; - main_1812__3__jjgsO_vVSHaixByd_HFc4w: - assume {:captureState "main_1812__3__jjgsO_vVSHaixByd_HFc4w"} true; - goto main_1812__4__iCJDxo4mS1WWxijWWu0_Pg; - main_1812__4__iCJDxo4mS1WWxijWWu0_Pg: - assume {:captureState "main_1812__4__iCJDxo4mS1WWxijWWu0_Pg"} true; - load19, Gamma_load19 := memory_load32_le(stack, bvadd64(R31, 12bv64)), gamma_load32(Gamma_stack, bvadd64(R31, 12bv64)); - R0, Gamma_R0 := zero_extend32_32(load19), Gamma_load19; - R31, Gamma_R31 := bvadd64(R31, 16bv64), Gamma_R31; - goto main_1812_basil_return; - main_1812_basil_return: - assume {:captureState "main_1812_basil_return"} true; + R0, Gamma_R0 := 0bv64, true; + goto main_basil_return; + $main$__0__$IkNYmV06TxC75h8A4NM3wA$__1: + assume {:captureState "$main$__0__$IkNYmV06TxC75h8A4NM3wA$__1"} true; + assume (!(!(ZF == 1bv1))); + R0, Gamma_R0 := 1bv64, true; + goto main_basil_return; + main_basil_return: + assume {:captureState "main_basil_return"} true; return; } diff --git a/src/test/correct/using_gamma_conditional/clang_O2/using_gamma_conditional.adt b/src/test/correct/using_gamma_conditional/clang_O2/using_gamma_conditional.adt deleted file mode 100644 index 0a3b514b7..000000000 --- a/src/test/correct/using_gamma_conditional/clang_O2/using_gamma_conditional.adt +++ /dev/null @@ -1,517 +0,0 @@ -Project(Attrs([Attr("filename","\"clang_O2/using_gamma_conditional.out\""), -Attr("image-specification","(declare abi (name str))\n(declare arch (name str))\n(declare base-address (addr int))\n(declare bias (off int))\n(declare bits (size int))\n(declare code-region (addr int) (size int) (off int))\n(declare code-start (addr int))\n(declare entry-point (addr int))\n(declare external-reference (addr int) (name str))\n(declare format (name str))\n(declare is-executable (flag bool))\n(declare is-little-endian (flag bool))\n(declare llvm:base-address (addr int))\n(declare llvm:code-entry (name str) (off int) (size int))\n(declare llvm:coff-import-library (name str))\n(declare llvm:coff-virtual-section-header (name str) (addr int) (size int))\n(declare llvm:elf-program-header (name str) (off int) (size int))\n(declare llvm:elf-program-header-flags (name str) (ld bool) (r bool) \n (w bool) (x bool))\n(declare llvm:elf-virtual-program-header (name str) (addr int) (size int))\n(declare llvm:entry-point (addr int))\n(declare llvm:macho-symbol (name str) (value int))\n(declare llvm:name-reference (at int) (name str))\n(declare llvm:relocation (at int) (addr int))\n(declare llvm:section-entry (name str) (addr int) (size int) (off int))\n(declare llvm:section-flags (name str) (r bool) (w bool) (x bool))\n(declare llvm:segment-command (name str) (off int) (size int))\n(declare llvm:segment-command-flags (name str) (r bool) (w bool) (x bool))\n(declare llvm:symbol-entry (name str) (addr int) (size int) (off int)\n (value int))\n(declare llvm:virtual-segment-command (name str) (addr int) (size int))\n(declare mapped (addr int) (size int) (off int))\n(declare named-region (addr int) (size int) (name str))\n(declare named-symbol (addr int) (name str))\n(declare require (name str))\n(declare section (addr int) (size int))\n(declare segment (addr int) (size int) (r bool) (w bool) (x bool))\n(declare subarch (name str))\n(declare symbol-chunk (addr int) (size int) (root int))\n(declare symbol-value (addr int) (value int))\n(declare system (name str))\n(declare vendor (name str))\n\n(abi unknown)\n(arch aarch64)\n(base-address 0)\n(bias 0)\n(bits 64)\n(code-region 1832 20 1832)\n(code-region 1536 296 1536)\n(code-region 1440 96 1440)\n(code-region 1408 24 1408)\n(code-start 1588)\n(code-start 1536)\n(code-start 1812)\n(entry-point 1536)\n(external-reference 69568 _ITM_deregisterTMCloneTable)\n(external-reference 69576 __cxa_finalize)\n(external-reference 69584 __gmon_start__)\n(external-reference 69600 _ITM_registerTMCloneTable)\n(external-reference 69632 __libc_start_main)\n(external-reference 69640 __cxa_finalize)\n(external-reference 69648 __gmon_start__)\n(external-reference 69656 abort)\n(format elf)\n(is-executable true)\n(is-little-endian true)\n(llvm:base-address 0)\n(llvm:code-entry abort 0 0)\n(llvm:code-entry __cxa_finalize 0 0)\n(llvm:code-entry __libc_start_main 0 0)\n(llvm:code-entry _init 1408 0)\n(llvm:code-entry main 1812 20)\n(llvm:code-entry _start 1536 52)\n(llvm:code-entry abort@GLIBC_2.17 0 0)\n(llvm:code-entry _fini 1832 0)\n(llvm:code-entry __cxa_finalize@GLIBC_2.17 0 0)\n(llvm:code-entry __libc_start_main@GLIBC_2.34 0 0)\n(llvm:code-entry frame_dummy 1808 0)\n(llvm:code-entry __do_global_dtors_aux 1728 0)\n(llvm:code-entry register_tm_clones 1664 0)\n(llvm:code-entry deregister_tm_clones 1616 0)\n(llvm:code-entry call_weak_fn 1588 20)\n(llvm:code-entry .fini 1832 20)\n(llvm:code-entry .text 1536 296)\n(llvm:code-entry .plt 1440 96)\n(llvm:code-entry .init 1408 24)\n(llvm:elf-program-header 08 3528 568)\n(llvm:elf-program-header 07 0 0)\n(llvm:elf-program-header 06 1856 60)\n(llvm:elf-program-header 05 596 68)\n(llvm:elf-program-header 04 3544 480)\n(llvm:elf-program-header 03 3528 616)\n(llvm:elf-program-header 02 0 2100)\n(llvm:elf-program-header 01 568 27)\n(llvm:elf-program-header 00 64 504)\n(llvm:elf-program-header-flags 08 false true false false)\n(llvm:elf-program-header-flags 07 false true true false)\n(llvm:elf-program-header-flags 06 false true false false)\n(llvm:elf-program-header-flags 05 false true false false)\n(llvm:elf-program-header-flags 04 false true true false)\n(llvm:elf-program-header-flags 03 true true true false)\n(llvm:elf-program-header-flags 02 true true false true)\n(llvm:elf-program-header-flags 01 false true false false)\n(llvm:elf-program-header-flags 00 false true false false)\n(llvm:elf-virtual-program-header 08 69064 568)\n(llvm:elf-virtual-program-header 07 0 0)\n(llvm:elf-virtual-program-header 06 1856 60)\n(llvm:elf-virtual-program-header 05 596 68)\n(llvm:elf-virtual-program-header 04 69080 480)\n(llvm:elf-virtual-program-header 03 69064 632)\n(llvm:elf-virtual-program-header 02 0 2100)\n(llvm:elf-virtual-program-header 01 568 27)\n(llvm:elf-virtual-program-header 00 64 504)\n(llvm:entry-point 1536)\n(llvm:name-reference 69656 abort)\n(llvm:name-reference 69648 __gmon_start__)\n(llvm:name-reference 69640 __cxa_finalize)\n(llvm:name-reference 69632 __libc_start_main)\n(llvm:name-reference 69600 _ITM_registerTMCloneTable)\n(llvm:name-reference 69584 __gmon_start__)\n(llvm:name-reference 69576 __cxa_finalize)\n(llvm:name-reference 69568 _ITM_deregisterTMCloneTable)\n(llvm:section-entry .shstrtab 0 259 6981)\n(llvm:section-entry .strtab 0 581 6400)\n(llvm:section-entry .symtab 0 2184 4216)\n(llvm:section-entry .comment 0 71 4144)\n(llvm:section-entry .bss 69680 16 4144)\n(llvm:section-entry .data 69664 16 4128)\n(llvm:section-entry .got.plt 69608 56 4072)\n(llvm:section-entry .got 69560 48 4024)\n(llvm:section-entry .dynamic 69080 480 3544)\n(llvm:section-entry .fini_array 69072 8 3536)\n(llvm:section-entry .init_array 69064 8 3528)\n(llvm:section-entry .eh_frame 1920 180 1920)\n(llvm:section-entry .eh_frame_hdr 1856 60 1856)\n(llvm:section-entry .rodata 1852 4 1852)\n(llvm:section-entry .fini 1832 20 1832)\n(llvm:section-entry .text 1536 296 1536)\n(llvm:section-entry .plt 1440 96 1440)\n(llvm:section-entry .init 1408 24 1408)\n(llvm:section-entry .rela.plt 1312 96 1312)\n(llvm:section-entry .rela.dyn 1120 192 1120)\n(llvm:section-entry .gnu.version_r 1072 48 1072)\n(llvm:section-entry .gnu.version 1054 18 1054)\n(llvm:section-entry .dynstr 912 141 912)\n(llvm:section-entry .dynsym 696 216 696)\n(llvm:section-entry .gnu.hash 664 28 664)\n(llvm:section-entry .note.ABI-tag 632 32 632)\n(llvm:section-entry .note.gnu.build-id 596 36 596)\n(llvm:section-entry .interp 568 27 568)\n(llvm:section-flags .shstrtab true false false)\n(llvm:section-flags .strtab true false false)\n(llvm:section-flags .symtab true false false)\n(llvm:section-flags .comment true false false)\n(llvm:section-flags .bss true true false)\n(llvm:section-flags .data true true false)\n(llvm:section-flags .got.plt true true false)\n(llvm:section-flags .got true true false)\n(llvm:section-flags .dynamic true true false)\n(llvm:section-flags .fini_array true true false)\n(llvm:section-flags .init_array true true false)\n(llvm:section-flags .eh_frame true false false)\n(llvm:section-flags .eh_frame_hdr true false false)\n(llvm:section-flags .rodata true false false)\n(llvm:section-flags .fini true false true)\n(llvm:section-flags .text true false true)\n(llvm:section-flags .plt true false true)\n(llvm:section-flags .init true false true)\n(llvm:section-flags .rela.plt true false false)\n(llvm:section-flags .rela.dyn true false false)\n(llvm:section-flags .gnu.version_r true false false)\n(llvm:section-flags .gnu.version true false false)\n(llvm:section-flags .dynstr true false false)\n(llvm:section-flags .dynsym true false false)\n(llvm:section-flags .gnu.hash true false false)\n(llvm:section-flags .note.ABI-tag true false false)\n(llvm:section-flags .note.gnu.build-id true false false)\n(llvm:section-flags .interp true false false)\n(llvm:symbol-entry abort 0 0 0 0)\n(llvm:symbol-entry __cxa_finalize 0 0 0 0)\n(llvm:symbol-entry __libc_start_main 0 0 0 0)\n(llvm:symbol-entry _init 1408 0 1408 1408)\n(llvm:symbol-entry main 1812 20 1812 1812)\n(llvm:symbol-entry _start 1536 52 1536 1536)\n(llvm:symbol-entry abort@GLIBC_2.17 0 0 0 0)\n(llvm:symbol-entry _fini 1832 0 1832 1832)\n(llvm:symbol-entry __cxa_finalize@GLIBC_2.17 0 0 0 0)\n(llvm:symbol-entry __libc_start_main@GLIBC_2.34 0 0 0 0)\n(llvm:symbol-entry frame_dummy 1808 0 1808 1808)\n(llvm:symbol-entry __do_global_dtors_aux 1728 0 1728 1728)\n(llvm:symbol-entry register_tm_clones 1664 0 1664 1664)\n(llvm:symbol-entry deregister_tm_clones 1616 0 1616 1616)\n(llvm:symbol-entry call_weak_fn 1588 20 1588 1588)\n(mapped 0 2100 0)\n(mapped 69064 616 3528)\n(named-region 0 2100 02)\n(named-region 69064 632 03)\n(named-region 568 27 .interp)\n(named-region 596 36 .note.gnu.build-id)\n(named-region 632 32 .note.ABI-tag)\n(named-region 664 28 .gnu.hash)\n(named-region 696 216 .dynsym)\n(named-region 912 141 .dynstr)\n(named-region 1054 18 .gnu.version)\n(named-region 1072 48 .gnu.version_r)\n(named-region 1120 192 .rela.dyn)\n(named-region 1312 96 .rela.plt)\n(named-region 1408 24 .init)\n(named-region 1440 96 .plt)\n(named-region 1536 296 .text)\n(named-region 1832 20 .fini)\n(named-region 1852 4 .rodata)\n(named-region 1856 60 .eh_frame_hdr)\n(named-region 1920 180 .eh_frame)\n(named-region 69064 8 .init_array)\n(named-region 69072 8 .fini_array)\n(named-region 69080 480 .dynamic)\n(named-region 69560 48 .got)\n(named-region 69608 56 .got.plt)\n(named-region 69664 16 .data)\n(named-region 69680 16 .bss)\n(named-region 0 71 .comment)\n(named-region 0 2184 .symtab)\n(named-region 0 581 .strtab)\n(named-region 0 259 .shstrtab)\n(named-symbol 1588 call_weak_fn)\n(named-symbol 1616 deregister_tm_clones)\n(named-symbol 1664 register_tm_clones)\n(named-symbol 1728 __do_global_dtors_aux)\n(named-symbol 1808 frame_dummy)\n(named-symbol 0 __libc_start_main@GLIBC_2.34)\n(named-symbol 0 __cxa_finalize@GLIBC_2.17)\n(named-symbol 1832 _fini)\n(named-symbol 0 abort@GLIBC_2.17)\n(named-symbol 1536 _start)\n(named-symbol 1812 main)\n(named-symbol 1408 _init)\n(named-symbol 0 __libc_start_main)\n(named-symbol 0 __cxa_finalize)\n(named-symbol 0 abort)\n(require libc.so.6)\n(section 568 27)\n(section 596 36)\n(section 632 32)\n(section 664 28)\n(section 696 216)\n(section 912 141)\n(section 1054 18)\n(section 1072 48)\n(section 1120 192)\n(section 1312 96)\n(section 1408 24)\n(section 1440 96)\n(section 1536 296)\n(section 1832 20)\n(section 1852 4)\n(section 1856 60)\n(section 1920 180)\n(section 69064 8)\n(section 69072 8)\n(section 69080 480)\n(section 69560 48)\n(section 69608 56)\n(section 69664 16)\n(section 69680 16)\n(section 0 71)\n(section 0 2184)\n(section 0 581)\n(section 0 259)\n(segment 0 2100 true false true)\n(segment 69064 632 true true false)\n(subarch v8)\n(symbol-chunk 1588 20 1588)\n(symbol-chunk 1536 52 1536)\n(symbol-chunk 1812 20 1812)\n(symbol-value 1588 1588)\n(symbol-value 1616 1616)\n(symbol-value 1664 1664)\n(symbol-value 1728 1728)\n(symbol-value 1808 1808)\n(symbol-value 1832 1832)\n(symbol-value 1536 1536)\n(symbol-value 1812 1812)\n(symbol-value 1408 1408)\n(symbol-value 0 0)\n(system \"\")\n(vendor \"\")\n"), -Attr("abi-name","\"aarch64-linux-gnu-elf\"")]), -Sections([Section(".shstrtab", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x00\x06\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x48\x1c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x38\x00\x09\x00\x40\x00\x1d\x00\x1c\x00\x06\x00\x00\x00\x04\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x04\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x34\x08\x00\x00\x00\x00\x00\x00\x34\x08\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x01\x00\x00\x00\x06\x00\x00\x00\xc8\x0d\x00\x00\x00\x00\x00\x00\xc8\x0d\x01\x00\x00\x00\x00\x00\xc8\x0d\x01"), -Section(".strtab", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x00\x06\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x48\x1c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x38\x00\x09\x00\x40\x00\x1d\x00\x1c\x00\x06\x00\x00\x00\x04\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x04\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x34\x08\x00\x00\x00\x00\x00\x00\x34\x08\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x01\x00\x00\x00\x06\x00\x00\x00\xc8\x0d\x00\x00\x00\x00\x00\x00\xc8\x0d\x01\x00\x00\x00\x00\x00\xc8\x0d\x01\x00\x00\x00\x00\x00\x68\x02\x00\x00\x00\x00\x00\x00\x78\x02\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x02\x00\x00\x00\x06\x00\x00\x00\xd8\x0d\x00\x00\x00\x00\x00\x00\xd8\x0d\x01\x00\x00\x00\x00\x00\xd8\x0d\x01\x00\x00\x00\x00\x00\xe0\x01\x00\x00\x00\x00\x00\x00\xe0\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x04\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x50\xe5\x74\x64\x04\x00\x00\x00\x40\x07\x00\x00\x00\x00\x00\x00\x40\x07\x00\x00\x00\x00\x00\x00\x40\x07\x00\x00\x00\x00\x00\x00\x3c\x00\x00\x00\x00\x00\x00\x00\x3c\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x51\xe5\x74\x64\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x52\xe5\x74\x64\x04\x00\x00\x00\xc8\x0d\x00\x00\x00\x00\x00\x00\xc8\x0d\x01\x00\x00\x00\x00\x00\xc8\x0d\x01\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x2f\x6c\x69\x62\x2f\x6c\x64\x2d\x6c\x69\x6e\x75\x78"), -Section(".comment", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x00\x06\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x48\x1c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x38\x00\x09\x00\x40\x00\x1d\x00\x1c\x00\x06\x00\x00\x00\x04\x00\x00"), -Section(".interp", 0x238, "\x2f\x6c\x69\x62\x2f\x6c\x64\x2d\x6c\x69\x6e\x75\x78\x2d\x61\x61\x72\x63\x68\x36\x34\x2e\x73\x6f\x2e\x31\x00"), -Section(".note.gnu.build-id", 0x254, "\x04\x00\x00\x00\x14\x00\x00\x00\x03\x00\x00\x00\x47\x4e\x55\x00\x1e\x7a\xdd\x08\xb4\xd3\x2d\xe8\x0c\x90\xa6\x4c\x8f\xad\xb8\xc1\x1f\x8e\x70\x7a"), -Section(".note.ABI-tag", 0x278, "\x04\x00\x00\x00\x10\x00\x00\x00\x01\x00\x00\x00\x47\x4e\x55\x00\x00\x00\x00\x00\x03\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00"), -Section(".gnu.hash", 0x298, "\x01\x00\x00\x00\x01\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".dynsym", 0x2B8, "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x0b\x00\x80\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x17\x00\x20\x10\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x48\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x22\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x22\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x73\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".dynstr", 0x390, "\x00\x5f\x5f\x63\x78\x61\x5f\x66\x69\x6e\x61\x6c\x69\x7a\x65\x00\x5f\x5f\x6c\x69\x62\x63\x5f\x73\x74\x61\x72\x74\x5f\x6d\x61\x69\x6e\x00\x61\x62\x6f\x72\x74\x00\x6c\x69\x62\x63\x2e\x73\x6f\x2e\x36\x00\x47\x4c\x49\x42\x43\x5f\x32\x2e\x31\x37\x00\x47\x4c\x49\x42\x43\x5f\x32\x2e\x33\x34\x00\x5f\x49\x54\x4d\x5f\x64\x65\x72\x65\x67\x69\x73\x74\x65\x72\x54\x4d\x43\x6c\x6f\x6e\x65\x54\x61\x62\x6c\x65\x00\x5f\x5f\x67\x6d\x6f\x6e\x5f\x73\x74\x61\x72\x74\x5f\x5f\x00\x5f\x49\x54\x4d\x5f\x72\x65\x67\x69\x73\x74\x65\x72\x54\x4d\x43\x6c\x6f\x6e\x65\x54\x61\x62\x6c\x65\x00"), -Section(".gnu.version", 0x41E, "\x00\x00\x00\x00\x00\x00\x02\x00\x01\x00\x03\x00\x01\x00\x03\x00\x01\x00"), -Section(".gnu.version_r", 0x430, "\x01\x00\x02\x00\x28\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x97\x91\x96\x06\x00\x00\x03\x00\x32\x00\x00\x00\x10\x00\x00\x00\xb4\x91\x96\x06\x00\x00\x02\x00\x3d\x00\x00\x00\x00\x00\x00\x00"), -Section(".rela.dyn", 0x460, "\xc8\x0d\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x10\x07\x00\x00\x00\x00\x00\x00\xd0\x0d\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\xc0\x06\x00\x00\x00\x00\x00\x00\xd8\x0f\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x14\x07\x00\x00\x00\x00\x00\x00\x28\x10\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x28\x10\x01\x00\x00\x00\x00\x00\xc0\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xc8\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xd0\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe0\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".rela.plt", 0x520, "\x00\x10\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x08\x10\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x10\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x18\x10\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".init", 0x580, "\x1f\x20\x03\xd5\xfd\x7b\xbf\xa9\xfd\x03\x00\x91\x2a\x00\x00\x94\xfd\x7b\xc1\xa8\xc0\x03\x5f\xd6"), -Section(".plt", 0x5A0, "\xf0\x7b\xbf\xa9\x90\x00\x00\x90\x11\xfe\x47\xf9\x10\xe2\x3f\x91\x20\x02\x1f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x90\x00\x00\xb0\x11\x02\x40\xf9\x10\x02\x00\x91\x20\x02\x1f\xd6\x90\x00\x00\xb0\x11\x06\x40\xf9\x10\x22\x00\x91\x20\x02\x1f\xd6\x90\x00\x00\xb0\x11\x0a\x40\xf9\x10\x42\x00\x91\x20\x02\x1f\xd6\x90\x00\x00\xb0\x11\x0e\x40\xf9\x10\x62\x00\x91\x20\x02\x1f\xd6"), -Section(".text", 0x600, "\x1f\x20\x03\xd5\x1d\x00\x80\xd2\x1e\x00\x80\xd2\xe5\x03\x00\xaa\xe1\x03\x40\xf9\xe2\x23\x00\x91\xe6\x03\x00\x91\x80\x00\x00\x90\x00\xec\x47\xf9\x03\x00\x80\xd2\x04\x00\x80\xd2\xe5\xff\xff\x97\xf0\xff\xff\x97\x80\x00\x00\x90\x00\xe8\x47\xf9\x40\x00\x00\xb4\xe8\xff\xff\x17\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x80\x00\x00\xb0\x00\xc0\x00\x91\x81\x00\x00\xb0\x21\xc0\x00\x91\x3f\x00\x00\xeb\xc0\x00\x00\x54\x81\x00\x00\x90\x21\xe0\x47\xf9\x61\x00\x00\xb4\xf0\x03\x01\xaa\x00\x02\x1f\xd6\xc0\x03\x5f\xd6\x80\x00\x00\xb0\x00\xc0\x00\x91\x81\x00\x00\xb0\x21\xc0\x00\x91\x21\x00\x00\xcb\x22\xfc\x7f\xd3\x41\x0c\x81\x8b\x21\xfc\x41\x93\xc1\x00\x00\xb4\x82\x00\x00\x90\x42\xf0\x47\xf9\x62\x00\x00\xb4\xf0\x03\x02\xaa\x00\x02\x1f\xd6\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\xfd\x7b\xbe\xa9\xfd\x03\x00\x91\xf3\x0b\x00\xf9\x93\x00\x00\xb0\x60\xc2\x40\x39\x40\x01\x00\x35\x80\x00\x00\x90\x00\xe4\x47\xf9\x80\x00\x00\xb4\x80\x00\x00\xb0\x00\x14\x40\xf9\xb9\xff\xff\x97\xd8\xff\xff\x97\x20\x00\x80\x52\x60\xc2\x00\x39\xf3\x0b\x40\xf9\xfd\x7b\xc2\xa8\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\xdc\xff\xff\x17\x88\x00\x00\xb0\x08\x35\x40\xb9\x1f\x01\x00\x71\xe0\x17\x9f\x1a\xc0\x03\x5f\xd6"), -Section(".fini", 0x728, "\x1f\x20\x03\xd5\xfd\x7b\xbf\xa9\xfd\x03\x00\x91\xfd\x7b\xc1\xa8\xc0\x03\x5f\xd6"), -Section(".rodata", 0x73C, "\x01\x00\x02\x00"), -Section(".eh_frame_hdr", 0x740, "\x01\x1b\x03\x3b\x3c\x00\x00\x00\x06\x00\x00\x00\xc0\xfe\xff\xff\x54\x00\x00\x00\x10\xff\xff\xff\x68\x00\x00\x00\x40\xff\xff\xff\x7c\x00\x00\x00\x80\xff\xff\xff\x90\x00\x00\x00\xd0\xff\xff\xff\xb4\x00\x00\x00\xd4\xff\xff\xff\xdc\x00\x00\x00"), -Section(".eh_frame", 0x780, "\x10\x00\x00\x00\x00\x00\x00\x00\x01\x7a\x52\x00\x04\x78\x1e\x01\x1b\x0c\x1f\x00\x10\x00\x00\x00\x18\x00\x00\x00\x64\xfe\xff\xff\x34\x00\x00\x00\x00\x41\x07\x1e\x10\x00\x00\x00\x2c\x00\x00\x00\xa0\xfe\xff\xff\x30\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x40\x00\x00\x00\xbc\xfe\xff\xff\x3c\x00\x00\x00\x00\x00\x00\x00\x20\x00\x00\x00\x54\x00\x00\x00\xe8\xfe\xff\xff\x48\x00\x00\x00\x00\x41\x0e\x20\x9d\x04\x9e\x03\x42\x93\x02\x4e\xde\xdd\xd3\x0e\x00\x00\x00\x00\x10\x00\x00\x00\x78\x00\x00\x00\x14\xff\xff\xff\x04\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x01\x7a\x52\x00\x01\x7c\x1e\x01\x1b\x0c\x1f\x00\x10\x00\x00\x00\x18\x00\x00\x00\xf0\xfe\xff\xff\x14\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".fini_array", 0x10DD0, "\xc0\x06\x00\x00\x00\x00\x00\x00"), -Section(".dynamic", 0x10DD8, "\x01\x00\x00\x00\x00\x00\x00\x00\x28\x00\x00\x00\x00\x00\x00\x00\x0c\x00\x00\x00\x00\x00\x00\x00\x80\x05\x00\x00\x00\x00\x00\x00\x0d\x00\x00\x00\x00\x00\x00\x00\x28\x07\x00\x00\x00\x00\x00\x00\x19\x00\x00\x00\x00\x00\x00\x00\xc8\x0d\x01\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x1a\x00\x00\x00\x00\x00\x00\x00\xd0\x0d\x01\x00\x00\x00\x00\x00\x1c\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\xf5\xfe\xff\x6f\x00\x00\x00\x00\x98\x02\x00\x00\x00\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x90\x03\x00\x00\x00\x00\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\xb8\x02\x00\x00\x00\x00\x00\x00\x0a\x00\x00\x00\x00\x00\x00\x00\x8d\x00\x00\x00\x00\x00\x00\x00\x0b\x00\x00\x00\x00\x00\x00\x00\x18\x00\x00\x00\x00\x00\x00\x00\x15\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\xe8\x0f\x01\x00\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x60\x00\x00\x00\x00\x00\x00\x00\x14\x00\x00\x00\x00\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x17\x00\x00\x00\x00\x00\x00\x00\x20\x05\x00\x00\x00\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x60\x04\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\xc0\x00\x00\x00\x00\x00\x00\x00\x09\x00\x00\x00\x00\x00\x00\x00\x18\x00\x00\x00\x00\x00\x00\x00\xfb\xff\xff\x6f\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\xfe\xff\xff\x6f\x00\x00\x00\x00\x30\x04\x00\x00\x00\x00\x00\x00\xff\xff\xff\x6f\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\xf0\xff\xff\x6f\x00\x00\x00\x00\x1e\x04\x00\x00\x00\x00\x00\x00\xf9\xff\xff\x6f\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".init_array", 0x10DC8, "\x10\x07\x00\x00\x00\x00\x00\x00"), -Section(".got", 0x10FB8, "\xd8\x0d\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x14\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".got.plt", 0x10FE8, "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xa0\x05\x00\x00\x00\x00\x00\x00\xa0\x05\x00\x00\x00\x00\x00\x00\xa0\x05\x00\x00\x00\x00\x00\x00\xa0\x05\x00\x00\x00\x00\x00\x00"), -Section(".data", 0x11020, "\x00\x00\x00\x00\x00\x00\x00\x00\x28\x10\x01\x00\x00\x00\x00\x00")]), -Memmap([Annotation(Region(0x0,0x833), Attr("segment","02 0 2100")), -Annotation(Region(0x600,0x633), Attr("symbol","\"_start\"")), -Annotation(Region(0x0,0x102), Attr("section","\".shstrtab\"")), -Annotation(Region(0x0,0x244), Attr("section","\".strtab\"")), -Annotation(Region(0x0,0x46), Attr("section","\".comment\"")), -Annotation(Region(0x238,0x252), Attr("section","\".interp\"")), -Annotation(Region(0x254,0x277), Attr("section","\".note.gnu.build-id\"")), -Annotation(Region(0x278,0x297), Attr("section","\".note.ABI-tag\"")), -Annotation(Region(0x298,0x2B3), Attr("section","\".gnu.hash\"")), -Annotation(Region(0x2B8,0x38F), Attr("section","\".dynsym\"")), -Annotation(Region(0x390,0x41C), Attr("section","\".dynstr\"")), -Annotation(Region(0x41E,0x42F), Attr("section","\".gnu.version\"")), -Annotation(Region(0x430,0x45F), Attr("section","\".gnu.version_r\"")), -Annotation(Region(0x460,0x51F), Attr("section","\".rela.dyn\"")), -Annotation(Region(0x520,0x57F), Attr("section","\".rela.plt\"")), -Annotation(Region(0x580,0x597), Attr("section","\".init\"")), -Annotation(Region(0x5A0,0x5FF), Attr("section","\".plt\"")), -Annotation(Region(0x580,0x597), Attr("code-region","()")), -Annotation(Region(0x5A0,0x5FF), Attr("code-region","()")), -Annotation(Region(0x600,0x633), Attr("symbol-info","_start 0x600 52")), -Annotation(Region(0x634,0x647), Attr("symbol","\"call_weak_fn\"")), -Annotation(Region(0x634,0x647), Attr("symbol-info","call_weak_fn 0x634 20")), -Annotation(Region(0x600,0x727), Attr("section","\".text\"")), -Annotation(Region(0x600,0x727), Attr("code-region","()")), -Annotation(Region(0x714,0x727), Attr("symbol","\"main\"")), -Annotation(Region(0x714,0x727), Attr("symbol-info","main 0x714 20")), -Annotation(Region(0x728,0x73B), Attr("section","\".fini\"")), -Annotation(Region(0x728,0x73B), Attr("code-region","()")), -Annotation(Region(0x73C,0x73F), Attr("section","\".rodata\"")), -Annotation(Region(0x740,0x77B), Attr("section","\".eh_frame_hdr\"")), -Annotation(Region(0x780,0x833), Attr("section","\".eh_frame\"")), -Annotation(Region(0x10DC8,0x1102F), Attr("segment","03 0x10DC8 632")), -Annotation(Region(0x10DD0,0x10DD7), Attr("section","\".fini_array\"")), -Annotation(Region(0x10DD8,0x10FB7), Attr("section","\".dynamic\"")), -Annotation(Region(0x10DC8,0x10DCF), Attr("section","\".init_array\"")), -Annotation(Region(0x10FB8,0x10FE7), Attr("section","\".got\"")), -Annotation(Region(0x10FE8,0x1101F), Attr("section","\".got.plt\"")), -Annotation(Region(0x11020,0x1102F), Attr("section","\".data\""))]), -Program(Tid(1_445, "%000005a5"), Attrs([]), - Subs([Sub(Tid(1_395, "@__cxa_finalize"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x5D0"), -Attr("stub","()")]), "__cxa_finalize", Args([Arg(Tid(1_446, "%000005a6"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("__cxa_finalize_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(813, "@__cxa_finalize"), - Attrs([Attr("address","0x5D0")]), Phis([]), -Defs([Def(Tid(1_061, "%00000425"), Attrs([Attr("address","0x5D0"), -Attr("insn","adrp x16, #69632")]), Var("R16",Imm(64)), Int(69632,64)), -Def(Tid(1_068, "%0000042c"), Attrs([Attr("address","0x5D4"), -Attr("insn","ldr x17, [x16, #0x8]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(1_074, "%00000432"), Attrs([Attr("address","0x5D8"), -Attr("insn","add x16, x16, #0x8")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(8,64)))]), Jmps([Call(Tid(1_079, "%00000437"), - Attrs([Attr("address","0x5DC"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), -Sub(Tid(1_396, "@__do_global_dtors_aux"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x6C0")]), - "__do_global_dtors_aux", Args([Arg(Tid(1_447, "%000005a7"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("__do_global_dtors_aux_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(610, "@__do_global_dtors_aux"), - Attrs([Attr("address","0x6C0")]), Phis([]), Defs([Def(Tid(614, "%00000266"), - Attrs([Attr("address","0x6C0"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("#3",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(18446744073709551584,64))), -Def(Tid(620, "%0000026c"), Attrs([Attr("address","0x6C0"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("#3",Imm(64)),Var("R29",Imm(64)),LittleEndian(),64)), -Def(Tid(626, "%00000272"), Attrs([Attr("address","0x6C0"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("#3",Imm(64)),Int(8,64)),Var("R30",Imm(64)),LittleEndian(),64)), -Def(Tid(630, "%00000276"), Attrs([Attr("address","0x6C0"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("R31",Imm(64)), -Var("#3",Imm(64))), Def(Tid(636, "%0000027c"), - Attrs([Attr("address","0x6C4"), Attr("insn","mov x29, sp")]), - Var("R29",Imm(64)), Var("R31",Imm(64))), Def(Tid(644, "%00000284"), - Attrs([Attr("address","0x6C8"), Attr("insn","str x19, [sp, #0x10]")]), - Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(16,64)),Var("R19",Imm(64)),LittleEndian(),64)), -Def(Tid(649, "%00000289"), Attrs([Attr("address","0x6CC"), -Attr("insn","adrp x19, #69632")]), Var("R19",Imm(64)), Int(69632,64)), -Def(Tid(656, "%00000290"), Attrs([Attr("address","0x6D0"), -Attr("insn","ldrb w0, [x19, #0x30]")]), Var("R0",Imm(64)), -UNSIGNED(64,Load(Var("mem",Mem(64,8)),PLUS(Var("R19",Imm(64)),Int(48,64)),LittleEndian(),8)))]), -Jmps([Goto(Tid(663, "%00000297"), Attrs([Attr("address","0x6D4"), -Attr("insn","cbnz w0, #0x28")]), - NEQ(Extract(31,0,Var("R0",Imm(64))),Int(0,32)), -Direct(Tid(661, "%00000295"))), Goto(Tid(1_435, "%0000059b"), Attrs([]), - Int(1,1), Direct(Tid(758, "%000002f6")))])), Blk(Tid(758, "%000002f6"), - Attrs([Attr("address","0x6D8")]), Phis([]), Defs([Def(Tid(761, "%000002f9"), - Attrs([Attr("address","0x6D8"), Attr("insn","adrp x0, #65536")]), - Var("R0",Imm(64)), Int(65536,64)), Def(Tid(768, "%00000300"), - Attrs([Attr("address","0x6DC"), Attr("insn","ldr x0, [x0, #0xfc8]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(4040,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(774, "%00000306"), Attrs([Attr("address","0x6E0"), -Attr("insn","cbz x0, #0x10")]), EQ(Var("R0",Imm(64)),Int(0,64)), -Direct(Tid(772, "%00000304"))), Goto(Tid(1_436, "%0000059c"), Attrs([]), - Int(1,1), Direct(Tid(797, "%0000031d")))])), Blk(Tid(797, "%0000031d"), - Attrs([Attr("address","0x6E4")]), Phis([]), Defs([Def(Tid(800, "%00000320"), - Attrs([Attr("address","0x6E4"), Attr("insn","adrp x0, #69632")]), - Var("R0",Imm(64)), Int(69632,64)), Def(Tid(807, "%00000327"), - Attrs([Attr("address","0x6E8"), Attr("insn","ldr x0, [x0, #0x28]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(40,64)),LittleEndian(),64)), -Def(Tid(812, "%0000032c"), Attrs([Attr("address","0x6EC"), -Attr("insn","bl #-0x11c")]), Var("R30",Imm(64)), Int(1776,64))]), -Jmps([Call(Tid(815, "%0000032f"), Attrs([Attr("address","0x6EC"), -Attr("insn","bl #-0x11c")]), Int(1,1), -(Direct(Tid(1_395, "@__cxa_finalize")),Direct(Tid(772, "%00000304"))))])), -Blk(Tid(772, "%00000304"), Attrs([Attr("address","0x6F0")]), Phis([]), -Defs([Def(Tid(780, "%0000030c"), Attrs([Attr("address","0x6F0"), -Attr("insn","bl #-0xa0")]), Var("R30",Imm(64)), Int(1780,64))]), -Jmps([Call(Tid(782, "%0000030e"), Attrs([Attr("address","0x6F0"), -Attr("insn","bl #-0xa0")]), Int(1,1), -(Direct(Tid(1_409, "@deregister_tm_clones")),Direct(Tid(784, "%00000310"))))])), -Blk(Tid(784, "%00000310"), Attrs([Attr("address","0x6F4")]), Phis([]), -Defs([Def(Tid(787, "%00000313"), Attrs([Attr("address","0x6F4"), -Attr("insn","mov w0, #0x1")]), Var("R0",Imm(64)), Int(1,64)), -Def(Tid(795, "%0000031b"), Attrs([Attr("address","0x6F8"), -Attr("insn","strb w0, [x19, #0x30]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R19",Imm(64)),Int(48,64)),Extract(7,0,Var("R0",Imm(64))),LittleEndian(),8))]), -Jmps([Goto(Tid(1_437, "%0000059d"), Attrs([]), Int(1,1), -Direct(Tid(661, "%00000295")))])), Blk(Tid(661, "%00000295"), - Attrs([Attr("address","0x6FC")]), Phis([]), Defs([Def(Tid(671, "%0000029f"), - Attrs([Attr("address","0x6FC"), Attr("insn","ldr x19, [sp, #0x10]")]), - Var("R19",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(16,64)),LittleEndian(),64)), -Def(Tid(678, "%000002a6"), Attrs([Attr("address","0x700"), -Attr("insn","ldp x29, x30, [sp], #0x20")]), Var("R29",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(683, "%000002ab"), Attrs([Attr("address","0x700"), -Attr("insn","ldp x29, x30, [sp], #0x20")]), Var("R30",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(687, "%000002af"), Attrs([Attr("address","0x700"), -Attr("insn","ldp x29, x30, [sp], #0x20")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(32,64)))]), Jmps([Call(Tid(692, "%000002b4"), - Attrs([Attr("address","0x704"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), Sub(Tid(1_400, "@__libc_start_main"), - Attrs([Attr("c.proto","signed (*)(signed (*)(signed , char** , char** );* main, signed , char** , \nvoid* auxv)"), -Attr("address","0x5C0"), Attr("stub","()")]), "__libc_start_main", - Args([Arg(Tid(1_448, "%000005a8"), - Attrs([Attr("c.layout","**[ : 64]"), -Attr("c.data","Top:u64 ptr ptr"), -Attr("c.type","signed (*)(signed , char** , char** );*")]), - Var("__libc_start_main_main",Imm(64)), Var("R0",Imm(64)), In()), -Arg(Tid(1_449, "%000005a9"), Attrs([Attr("c.layout","[signed : 32]"), -Attr("c.data","Top:u32"), Attr("c.type","signed")]), - Var("__libc_start_main_arg2",Imm(32)), LOW(32,Var("R1",Imm(64))), In()), -Arg(Tid(1_450, "%000005aa"), Attrs([Attr("c.layout","**[char : 8]"), -Attr("c.data","Top:u8 ptr ptr"), Attr("c.type","char**")]), - Var("__libc_start_main_arg3",Imm(64)), Var("R2",Imm(64)), Both()), -Arg(Tid(1_451, "%000005ab"), Attrs([Attr("c.layout","*[ : 8]"), -Attr("c.data","{} ptr"), Attr("c.type","void*")]), - Var("__libc_start_main_auxv",Imm(64)), Var("R3",Imm(64)), Both()), -Arg(Tid(1_452, "%000005ac"), Attrs([Attr("c.layout","[signed : 32]"), -Attr("c.data","Top:u32"), Attr("c.type","signed")]), - Var("__libc_start_main_result",Imm(32)), LOW(32,Var("R0",Imm(64))), -Out())]), Blks([Blk(Tid(443, "@__libc_start_main"), - Attrs([Attr("address","0x5C0")]), Phis([]), -Defs([Def(Tid(1_039, "%0000040f"), Attrs([Attr("address","0x5C0"), -Attr("insn","adrp x16, #69632")]), Var("R16",Imm(64)), Int(69632,64)), -Def(Tid(1_046, "%00000416"), Attrs([Attr("address","0x5C4"), -Attr("insn","ldr x17, [x16]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R16",Imm(64)),LittleEndian(),64)), -Def(Tid(1_052, "%0000041c"), Attrs([Attr("address","0x5C8"), -Attr("insn","add x16, x16, #0x0")]), Var("R16",Imm(64)), -Var("R16",Imm(64)))]), Jmps([Call(Tid(1_057, "%00000421"), - Attrs([Attr("address","0x5CC"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), Sub(Tid(1_401, "@_fini"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x728")]), - "_fini", Args([Arg(Tid(1_453, "%000005ad"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("_fini_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(31, "@_fini"), - Attrs([Attr("address","0x728")]), Phis([]), Defs([Def(Tid(37, "%00000025"), - Attrs([Attr("address","0x72C"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("#0",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(18446744073709551600,64))), -Def(Tid(43, "%0000002b"), Attrs([Attr("address","0x72C"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("#0",Imm(64)),Var("R29",Imm(64)),LittleEndian(),64)), -Def(Tid(49, "%00000031"), Attrs([Attr("address","0x72C"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("#0",Imm(64)),Int(8,64)),Var("R30",Imm(64)),LittleEndian(),64)), -Def(Tid(53, "%00000035"), Attrs([Attr("address","0x72C"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("R31",Imm(64)), -Var("#0",Imm(64))), Def(Tid(59, "%0000003b"), Attrs([Attr("address","0x730"), -Attr("insn","mov x29, sp")]), Var("R29",Imm(64)), Var("R31",Imm(64))), -Def(Tid(66, "%00000042"), Attrs([Attr("address","0x734"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R29",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(71, "%00000047"), Attrs([Attr("address","0x734"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R30",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(75, "%0000004b"), Attrs([Attr("address","0x734"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(16,64)))]), Jmps([Call(Tid(80, "%00000050"), - Attrs([Attr("address","0x738"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), Sub(Tid(1_402, "@_init"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x580")]), - "_init", Args([Arg(Tid(1_454, "%000005ae"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("_init_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(1_232, "@_init"), - Attrs([Attr("address","0x580")]), Phis([]), -Defs([Def(Tid(1_238, "%000004d6"), Attrs([Attr("address","0x584"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("#6",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(18446744073709551600,64))), -Def(Tid(1_244, "%000004dc"), Attrs([Attr("address","0x584"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("#6",Imm(64)),Var("R29",Imm(64)),LittleEndian(),64)), -Def(Tid(1_250, "%000004e2"), Attrs([Attr("address","0x584"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("#6",Imm(64)),Int(8,64)),Var("R30",Imm(64)),LittleEndian(),64)), -Def(Tid(1_254, "%000004e6"), Attrs([Attr("address","0x584"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("R31",Imm(64)), -Var("#6",Imm(64))), Def(Tid(1_260, "%000004ec"), - Attrs([Attr("address","0x588"), Attr("insn","mov x29, sp")]), - Var("R29",Imm(64)), Var("R31",Imm(64))), Def(Tid(1_265, "%000004f1"), - Attrs([Attr("address","0x58C"), Attr("insn","bl #0xa8")]), - Var("R30",Imm(64)), Int(1424,64))]), Jmps([Call(Tid(1_267, "%000004f3"), - Attrs([Attr("address","0x58C"), Attr("insn","bl #0xa8")]), Int(1,1), -(Direct(Tid(1_407, "@call_weak_fn")),Direct(Tid(1_269, "%000004f5"))))])), -Blk(Tid(1_269, "%000004f5"), Attrs([Attr("address","0x590")]), Phis([]), -Defs([Def(Tid(1_274, "%000004fa"), Attrs([Attr("address","0x590"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R29",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(1_279, "%000004ff"), Attrs([Attr("address","0x590"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R30",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(1_283, "%00000503"), Attrs([Attr("address","0x590"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(16,64)))]), Jmps([Call(Tid(1_288, "%00000508"), - Attrs([Attr("address","0x594"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), Sub(Tid(1_403, "@_start"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x600"), -Attr("stub","()"), Attr("entry-point","()")]), "_start", - Args([Arg(Tid(1_455, "%000005af"), Attrs([Attr("c.layout","[signed : 32]"), -Attr("c.data","Top:u32"), Attr("c.type","signed")]), - Var("_start_result",Imm(32)), LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(380, "@_start"), Attrs([Attr("address","0x600")]), Phis([]), -Defs([Def(Tid(385, "%00000181"), Attrs([Attr("address","0x604"), -Attr("insn","mov x29, #0x0")]), Var("R29",Imm(64)), Int(0,64)), -Def(Tid(390, "%00000186"), Attrs([Attr("address","0x608"), -Attr("insn","mov x30, #0x0")]), Var("R30",Imm(64)), Int(0,64)), -Def(Tid(396, "%0000018c"), Attrs([Attr("address","0x60C"), -Attr("insn","mov x5, x0")]), Var("R5",Imm(64)), Var("R0",Imm(64))), -Def(Tid(403, "%00000193"), Attrs([Attr("address","0x610"), -Attr("insn","ldr x1, [sp]")]), Var("R1",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(409, "%00000199"), Attrs([Attr("address","0x614"), -Attr("insn","add x2, sp, #0x8")]), Var("R2",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(8,64))), Def(Tid(415, "%0000019f"), - Attrs([Attr("address","0x618"), Attr("insn","mov x6, sp")]), - Var("R6",Imm(64)), Var("R31",Imm(64))), Def(Tid(420, "%000001a4"), - Attrs([Attr("address","0x61C"), Attr("insn","adrp x0, #65536")]), - Var("R0",Imm(64)), Int(65536,64)), Def(Tid(427, "%000001ab"), - Attrs([Attr("address","0x620"), Attr("insn","ldr x0, [x0, #0xfd8]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(4056,64)),LittleEndian(),64)), -Def(Tid(432, "%000001b0"), Attrs([Attr("address","0x624"), -Attr("insn","mov x3, #0x0")]), Var("R3",Imm(64)), Int(0,64)), -Def(Tid(437, "%000001b5"), Attrs([Attr("address","0x628"), -Attr("insn","mov x4, #0x0")]), Var("R4",Imm(64)), Int(0,64)), -Def(Tid(442, "%000001ba"), Attrs([Attr("address","0x62C"), -Attr("insn","bl #-0x6c")]), Var("R30",Imm(64)), Int(1584,64))]), -Jmps([Call(Tid(445, "%000001bd"), Attrs([Attr("address","0x62C"), -Attr("insn","bl #-0x6c")]), Int(1,1), -(Direct(Tid(1_400, "@__libc_start_main")),Direct(Tid(447, "%000001bf"))))])), -Blk(Tid(447, "%000001bf"), Attrs([Attr("address","0x630")]), Phis([]), -Defs([Def(Tid(450, "%000001c2"), Attrs([Attr("address","0x630"), -Attr("insn","bl #-0x40")]), Var("R30",Imm(64)), Int(1588,64))]), -Jmps([Call(Tid(453, "%000001c5"), Attrs([Attr("address","0x630"), -Attr("insn","bl #-0x40")]), Int(1,1), -(Direct(Tid(1_406, "@abort")),Direct(Tid(1_438, "%0000059e"))))])), -Blk(Tid(1_438, "%0000059e"), Attrs([]), Phis([]), Defs([]), -Jmps([Call(Tid(1_439, "%0000059f"), Attrs([]), Int(1,1), -(Direct(Tid(1_407, "@call_weak_fn")),))]))])), Sub(Tid(1_406, "@abort"), - Attrs([Attr("noreturn","()"), Attr("c.proto","void (*)(void)"), -Attr("address","0x5F0"), Attr("stub","()")]), "abort", Args([]), -Blks([Blk(Tid(451, "@abort"), Attrs([Attr("address","0x5F0")]), Phis([]), -Defs([Def(Tid(1_105, "%00000451"), Attrs([Attr("address","0x5F0"), -Attr("insn","adrp x16, #69632")]), Var("R16",Imm(64)), Int(69632,64)), -Def(Tid(1_112, "%00000458"), Attrs([Attr("address","0x5F4"), -Attr("insn","ldr x17, [x16, #0x18]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(24,64)),LittleEndian(),64)), -Def(Tid(1_118, "%0000045e"), Attrs([Attr("address","0x5F8"), -Attr("insn","add x16, x16, #0x18")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(24,64)))]), Jmps([Call(Tid(1_123, "%00000463"), - Attrs([Attr("address","0x5FC"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), Sub(Tid(1_407, "@call_weak_fn"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x634")]), - "call_weak_fn", Args([Arg(Tid(1_456, "%000005b0"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("call_weak_fn_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(455, "@call_weak_fn"), - Attrs([Attr("address","0x634")]), Phis([]), Defs([Def(Tid(458, "%000001ca"), - Attrs([Attr("address","0x634"), Attr("insn","adrp x0, #65536")]), - Var("R0",Imm(64)), Int(65536,64)), Def(Tid(465, "%000001d1"), - Attrs([Attr("address","0x638"), Attr("insn","ldr x0, [x0, #0xfd0]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(4048,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(471, "%000001d7"), Attrs([Attr("address","0x63C"), -Attr("insn","cbz x0, #0x8")]), EQ(Var("R0",Imm(64)),Int(0,64)), -Direct(Tid(469, "%000001d5"))), Goto(Tid(1_440, "%000005a0"), Attrs([]), - Int(1,1), Direct(Tid(877, "%0000036d")))])), Blk(Tid(469, "%000001d5"), - Attrs([Attr("address","0x644")]), Phis([]), Defs([]), -Jmps([Call(Tid(477, "%000001dd"), Attrs([Attr("address","0x644"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))])), -Blk(Tid(877, "%0000036d"), Attrs([Attr("address","0x640")]), Phis([]), -Defs([]), Jmps([Goto(Tid(880, "%00000370"), Attrs([Attr("address","0x640"), -Attr("insn","b #-0x60")]), Int(1,1), Direct(Tid(878, "@__gmon_start__")))])), -Blk(Tid(878, "@__gmon_start__"), Attrs([Attr("address","0x5E0")]), Phis([]), -Defs([Def(Tid(1_083, "%0000043b"), Attrs([Attr("address","0x5E0"), -Attr("insn","adrp x16, #69632")]), Var("R16",Imm(64)), Int(69632,64)), -Def(Tid(1_090, "%00000442"), Attrs([Attr("address","0x5E4"), -Attr("insn","ldr x17, [x16, #0x10]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(16,64)),LittleEndian(),64)), -Def(Tid(1_096, "%00000448"), Attrs([Attr("address","0x5E8"), -Attr("insn","add x16, x16, #0x10")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(16,64)))]), Jmps([Call(Tid(1_101, "%0000044d"), - Attrs([Attr("address","0x5EC"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), -Sub(Tid(1_409, "@deregister_tm_clones"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x650")]), - "deregister_tm_clones", Args([Arg(Tid(1_457, "%000005b1"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("deregister_tm_clones_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(483, "@deregister_tm_clones"), - Attrs([Attr("address","0x650")]), Phis([]), Defs([Def(Tid(486, "%000001e6"), - Attrs([Attr("address","0x650"), Attr("insn","adrp x0, #69632")]), - Var("R0",Imm(64)), Int(69632,64)), Def(Tid(492, "%000001ec"), - Attrs([Attr("address","0x654"), Attr("insn","add x0, x0, #0x30")]), - Var("R0",Imm(64)), PLUS(Var("R0",Imm(64)),Int(48,64))), -Def(Tid(497, "%000001f1"), Attrs([Attr("address","0x658"), -Attr("insn","adrp x1, #69632")]), Var("R1",Imm(64)), Int(69632,64)), -Def(Tid(503, "%000001f7"), Attrs([Attr("address","0x65C"), -Attr("insn","add x1, x1, #0x30")]), Var("R1",Imm(64)), -PLUS(Var("R1",Imm(64)),Int(48,64))), Def(Tid(509, "%000001fd"), - Attrs([Attr("address","0x660"), Attr("insn","cmp x1, x0")]), - Var("#1",Imm(64)), NOT(Var("R0",Imm(64)))), Def(Tid(514, "%00000202"), - Attrs([Attr("address","0x660"), Attr("insn","cmp x1, x0")]), - Var("#2",Imm(64)), PLUS(Var("R1",Imm(64)),NOT(Var("R0",Imm(64))))), -Def(Tid(520, "%00000208"), Attrs([Attr("address","0x660"), -Attr("insn","cmp x1, x0")]), Var("VF",Imm(1)), -NEQ(SIGNED(65,PLUS(Var("#2",Imm(64)),Int(1,64))),PLUS(PLUS(SIGNED(65,Var("R1",Imm(64))),SIGNED(65,Var("#1",Imm(64)))),Int(1,65)))), -Def(Tid(526, "%0000020e"), Attrs([Attr("address","0x660"), -Attr("insn","cmp x1, x0")]), Var("CF",Imm(1)), -NEQ(UNSIGNED(65,PLUS(Var("#2",Imm(64)),Int(1,64))),PLUS(PLUS(UNSIGNED(65,Var("R1",Imm(64))),UNSIGNED(65,Var("#1",Imm(64)))),Int(1,65)))), -Def(Tid(530, "%00000212"), Attrs([Attr("address","0x660"), -Attr("insn","cmp x1, x0")]), Var("ZF",Imm(1)), -EQ(PLUS(Var("#2",Imm(64)),Int(1,64)),Int(0,64))), Def(Tid(534, "%00000216"), - Attrs([Attr("address","0x660"), Attr("insn","cmp x1, x0")]), - Var("NF",Imm(1)), Extract(63,63,PLUS(Var("#2",Imm(64)),Int(1,64))))]), -Jmps([Goto(Tid(540, "%0000021c"), Attrs([Attr("address","0x664"), -Attr("insn","b.eq #0x18")]), EQ(Var("ZF",Imm(1)),Int(1,1)), -Direct(Tid(538, "%0000021a"))), Goto(Tid(1_441, "%000005a1"), Attrs([]), - Int(1,1), Direct(Tid(847, "%0000034f")))])), Blk(Tid(847, "%0000034f"), - Attrs([Attr("address","0x668")]), Phis([]), Defs([Def(Tid(850, "%00000352"), - Attrs([Attr("address","0x668"), Attr("insn","adrp x1, #65536")]), - Var("R1",Imm(64)), Int(65536,64)), Def(Tid(857, "%00000359"), - Attrs([Attr("address","0x66C"), Attr("insn","ldr x1, [x1, #0xfc0]")]), - Var("R1",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R1",Imm(64)),Int(4032,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(862, "%0000035e"), Attrs([Attr("address","0x670"), -Attr("insn","cbz x1, #0xc")]), EQ(Var("R1",Imm(64)),Int(0,64)), -Direct(Tid(538, "%0000021a"))), Goto(Tid(1_442, "%000005a2"), Attrs([]), - Int(1,1), Direct(Tid(866, "%00000362")))])), Blk(Tid(538, "%0000021a"), - Attrs([Attr("address","0x67C")]), Phis([]), Defs([]), -Jmps([Call(Tid(546, "%00000222"), Attrs([Attr("address","0x67C"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))])), -Blk(Tid(866, "%00000362"), Attrs([Attr("address","0x674")]), Phis([]), -Defs([Def(Tid(870, "%00000366"), Attrs([Attr("address","0x674"), -Attr("insn","mov x16, x1")]), Var("R16",Imm(64)), Var("R1",Imm(64)))]), -Jmps([Call(Tid(875, "%0000036b"), Attrs([Attr("address","0x678"), -Attr("insn","br x16")]), Int(1,1), (Indirect(Var("R16",Imm(64))),))]))])), -Sub(Tid(1_412, "@frame_dummy"), Attrs([Attr("c.proto","signed (*)(void)"), -Attr("address","0x710")]), "frame_dummy", Args([Arg(Tid(1_458, "%000005b2"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("frame_dummy_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(698, "@frame_dummy"), - Attrs([Attr("address","0x710")]), Phis([]), Defs([]), -Jmps([Call(Tid(700, "%000002bc"), Attrs([Attr("address","0x710"), -Attr("insn","b #-0x90")]), Int(1,1), -(Direct(Tid(1_414, "@register_tm_clones")),))]))])), Sub(Tid(1_413, "@main"), - Attrs([Attr("c.proto","signed (*)(signed argc, const char** argv)"), -Attr("address","0x714")]), "main", Args([Arg(Tid(1_459, "%000005b3"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("main_argc",Imm(32)), -LOW(32,Var("R0",Imm(64))), In()), Arg(Tid(1_460, "%000005b4"), - Attrs([Attr("c.layout","**[char : 8]"), Attr("c.data","Top:u8 ptr ptr"), -Attr("c.type"," const char**")]), Var("main_argv",Imm(64)), -Var("R1",Imm(64)), Both()), Arg(Tid(1_461, "%000005b5"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("main_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(702, "@main"), - Attrs([Attr("address","0x714")]), Phis([]), Defs([Def(Tid(705, "%000002c1"), - Attrs([Attr("address","0x714"), Attr("insn","adrp x8, #69632")]), - Var("R8",Imm(64)), Int(69632,64)), Def(Tid(712, "%000002c8"), - Attrs([Attr("address","0x718"), Attr("insn","ldr w8, [x8, #0x34]")]), - Var("R8",Imm(64)), -UNSIGNED(64,Load(Var("mem",Mem(64,8)),PLUS(Var("R8",Imm(64)),Int(52,64)),LittleEndian(),32))), -Def(Tid(718, "%000002ce"), Attrs([Attr("address","0x71C"), -Attr("insn","cmp w8, #0x0")]), Var("#4",Imm(32)), -PLUS(Extract(31,0,Var("R8",Imm(64))),Int(4294967295,32))), -Def(Tid(723, "%000002d3"), Attrs([Attr("address","0x71C"), -Attr("insn","cmp w8, #0x0")]), Var("VF",Imm(1)), -NEQ(SIGNED(33,PLUS(Var("#4",Imm(32)),Int(1,32))),PLUS(SIGNED(33,Extract(31,0,Var("R8",Imm(64)))),Int(0,33)))), -Def(Tid(728, "%000002d8"), Attrs([Attr("address","0x71C"), -Attr("insn","cmp w8, #0x0")]), Var("CF",Imm(1)), -NEQ(UNSIGNED(33,PLUS(Var("#4",Imm(32)),Int(1,32))),PLUS(UNSIGNED(33,Extract(31,0,Var("R8",Imm(64)))),Int(4294967296,33)))), -Def(Tid(732, "%000002dc"), Attrs([Attr("address","0x71C"), -Attr("insn","cmp w8, #0x0")]), Var("ZF",Imm(1)), -EQ(PLUS(Var("#4",Imm(32)),Int(1,32)),Int(0,32))), Def(Tid(736, "%000002e0"), - Attrs([Attr("address","0x71C"), Attr("insn","cmp w8, #0x0")]), - Var("NF",Imm(1)), Extract(31,31,PLUS(Var("#4",Imm(32)),Int(1,32))))]), -Jmps([Goto(Tid(748, "%000002ec"), Attrs([Attr("address","0x720"), -Attr("insn","cset w0, eq")]), NEQ(Var("ZF",Imm(1)),Int(1,1)), -Direct(Tid(741, "%000002e5"))), Goto(Tid(749, "%000002ed"), - Attrs([Attr("address","0x720"), Attr("insn","cset w0, eq")]), Int(1,1), -Direct(Tid(744, "%000002e8")))])), Blk(Tid(744, "%000002e8"), Attrs([]), - Phis([]), Defs([Def(Tid(745, "%000002e9"), Attrs([Attr("address","0x720"), -Attr("insn","cset w0, eq")]), Var("R0",Imm(64)), Int(1,64))]), -Jmps([Goto(Tid(751, "%000002ef"), Attrs([Attr("address","0x720"), -Attr("insn","cset w0, eq")]), Int(1,1), Direct(Tid(747, "%000002eb")))])), -Blk(Tid(741, "%000002e5"), Attrs([]), Phis([]), -Defs([Def(Tid(742, "%000002e6"), Attrs([Attr("address","0x720"), -Attr("insn","cset w0, eq")]), Var("R0",Imm(64)), Int(0,64))]), -Jmps([Goto(Tid(750, "%000002ee"), Attrs([Attr("address","0x720"), -Attr("insn","cset w0, eq")]), Int(1,1), Direct(Tid(747, "%000002eb")))])), -Blk(Tid(747, "%000002eb"), Attrs([]), Phis([]), Defs([]), -Jmps([Call(Tid(756, "%000002f4"), Attrs([Attr("address","0x724"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))]))])), -Sub(Tid(1_414, "@register_tm_clones"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x680")]), - "register_tm_clones", Args([Arg(Tid(1_462, "%000005b6"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("register_tm_clones_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(548, "@register_tm_clones"), Attrs([Attr("address","0x680")]), - Phis([]), Defs([Def(Tid(551, "%00000227"), Attrs([Attr("address","0x680"), -Attr("insn","adrp x0, #69632")]), Var("R0",Imm(64)), Int(69632,64)), -Def(Tid(557, "%0000022d"), Attrs([Attr("address","0x684"), -Attr("insn","add x0, x0, #0x30")]), Var("R0",Imm(64)), -PLUS(Var("R0",Imm(64)),Int(48,64))), Def(Tid(562, "%00000232"), - Attrs([Attr("address","0x688"), Attr("insn","adrp x1, #69632")]), - Var("R1",Imm(64)), Int(69632,64)), Def(Tid(568, "%00000238"), - Attrs([Attr("address","0x68C"), Attr("insn","add x1, x1, #0x30")]), - Var("R1",Imm(64)), PLUS(Var("R1",Imm(64)),Int(48,64))), -Def(Tid(575, "%0000023f"), Attrs([Attr("address","0x690"), -Attr("insn","sub x1, x1, x0")]), Var("R1",Imm(64)), -PLUS(PLUS(Var("R1",Imm(64)),NOT(Var("R0",Imm(64)))),Int(1,64))), -Def(Tid(581, "%00000245"), Attrs([Attr("address","0x694"), -Attr("insn","lsr x2, x1, #63")]), Var("R2",Imm(64)), -Concat(Int(0,63),Extract(63,63,Var("R1",Imm(64))))), -Def(Tid(588, "%0000024c"), Attrs([Attr("address","0x698"), -Attr("insn","add x1, x2, x1, asr #3")]), Var("R1",Imm(64)), -PLUS(Var("R2",Imm(64)),ARSHIFT(Var("R1",Imm(64)),Int(3,3)))), -Def(Tid(594, "%00000252"), Attrs([Attr("address","0x69C"), -Attr("insn","asr x1, x1, #1")]), Var("R1",Imm(64)), -SIGNED(64,Extract(63,1,Var("R1",Imm(64)))))]), -Jmps([Goto(Tid(600, "%00000258"), Attrs([Attr("address","0x6A0"), -Attr("insn","cbz x1, #0x18")]), EQ(Var("R1",Imm(64)),Int(0,64)), -Direct(Tid(598, "%00000256"))), Goto(Tid(1_443, "%000005a3"), Attrs([]), - Int(1,1), Direct(Tid(817, "%00000331")))])), Blk(Tid(817, "%00000331"), - Attrs([Attr("address","0x6A4")]), Phis([]), Defs([Def(Tid(820, "%00000334"), - Attrs([Attr("address","0x6A4"), Attr("insn","adrp x2, #65536")]), - Var("R2",Imm(64)), Int(65536,64)), Def(Tid(827, "%0000033b"), - Attrs([Attr("address","0x6A8"), Attr("insn","ldr x2, [x2, #0xfe0]")]), - Var("R2",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R2",Imm(64)),Int(4064,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(832, "%00000340"), Attrs([Attr("address","0x6AC"), -Attr("insn","cbz x2, #0xc")]), EQ(Var("R2",Imm(64)),Int(0,64)), -Direct(Tid(598, "%00000256"))), Goto(Tid(1_444, "%000005a4"), Attrs([]), - Int(1,1), Direct(Tid(836, "%00000344")))])), Blk(Tid(598, "%00000256"), - Attrs([Attr("address","0x6B8")]), Phis([]), Defs([]), -Jmps([Call(Tid(606, "%0000025e"), Attrs([Attr("address","0x6B8"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))])), -Blk(Tid(836, "%00000344"), Attrs([Attr("address","0x6B0")]), Phis([]), -Defs([Def(Tid(840, "%00000348"), Attrs([Attr("address","0x6B0"), -Attr("insn","mov x16, x2")]), Var("R16",Imm(64)), Var("R2",Imm(64)))]), -Jmps([Call(Tid(845, "%0000034d"), Attrs([Attr("address","0x6B4"), -Attr("insn","br x16")]), Int(1,1), -(Indirect(Var("R16",Imm(64))),))]))]))]))) \ No newline at end of file diff --git a/src/test/correct/using_gamma_conditional/clang_O2/using_gamma_conditional.bir b/src/test/correct/using_gamma_conditional/clang_O2/using_gamma_conditional.bir deleted file mode 100644 index 981f9a0e8..000000000 --- a/src/test/correct/using_gamma_conditional/clang_O2/using_gamma_conditional.bir +++ /dev/null @@ -1,242 +0,0 @@ -000005a5: program -00000573: sub __cxa_finalize(__cxa_finalize_result) -000005a6: __cxa_finalize_result :: out u32 = low:32[R0] - -0000032d: -00000425: R16 := 0x11000 -0000042c: R17 := mem[R16 + 8, el]:u64 -00000432: R16 := R16 + 8 -00000437: call R17 with noreturn - -00000574: sub __do_global_dtors_aux(__do_global_dtors_aux_result) -000005a7: __do_global_dtors_aux_result :: out u32 = low:32[R0] - -00000262: -00000266: #3 := R31 - 0x20 -0000026c: mem := mem with [#3, el]:u64 <- R29 -00000272: mem := mem with [#3 + 8, el]:u64 <- R30 -00000276: R31 := #3 -0000027c: R29 := R31 -00000284: mem := mem with [R31 + 0x10, el]:u64 <- R19 -00000289: R19 := 0x11000 -00000290: R0 := pad:64[mem[R19 + 0x30]] -00000297: when 31:0[R0] <> 0 goto %00000295 -0000059b: goto %000002f6 - -000002f6: -000002f9: R0 := 0x10000 -00000300: R0 := mem[R0 + 0xFC8, el]:u64 -00000306: when R0 = 0 goto %00000304 -0000059c: goto %0000031d - -0000031d: -00000320: R0 := 0x11000 -00000327: R0 := mem[R0 + 0x28, el]:u64 -0000032c: R30 := 0x6F0 -0000032f: call @__cxa_finalize with return %00000304 - -00000304: -0000030c: R30 := 0x6F4 -0000030e: call @deregister_tm_clones with return %00000310 - -00000310: -00000313: R0 := 1 -0000031b: mem := mem with [R19 + 0x30] <- 7:0[R0] -0000059d: goto %00000295 - -00000295: -0000029f: R19 := mem[R31 + 0x10, el]:u64 -000002a6: R29 := mem[R31, el]:u64 -000002ab: R30 := mem[R31 + 8, el]:u64 -000002af: R31 := R31 + 0x20 -000002b4: call R30 with noreturn - -00000578: sub __libc_start_main(__libc_start_main_main, __libc_start_main_arg2, __libc_start_main_arg3, __libc_start_main_auxv, __libc_start_main_result) -000005a8: __libc_start_main_main :: in u64 = R0 -000005a9: __libc_start_main_arg2 :: in u32 = low:32[R1] -000005aa: __libc_start_main_arg3 :: in out u64 = R2 -000005ab: __libc_start_main_auxv :: in out u64 = R3 -000005ac: __libc_start_main_result :: out u32 = low:32[R0] - -000001bb: -0000040f: R16 := 0x11000 -00000416: R17 := mem[R16, el]:u64 -0000041c: R16 := R16 -00000421: call R17 with noreturn - -00000579: sub _fini(_fini_result) -000005ad: _fini_result :: out u32 = low:32[R0] - -0000001f: -00000025: #0 := R31 - 0x10 -0000002b: mem := mem with [#0, el]:u64 <- R29 -00000031: mem := mem with [#0 + 8, el]:u64 <- R30 -00000035: R31 := #0 -0000003b: R29 := R31 -00000042: R29 := mem[R31, el]:u64 -00000047: R30 := mem[R31 + 8, el]:u64 -0000004b: R31 := R31 + 0x10 -00000050: call R30 with noreturn - -0000057a: sub _init(_init_result) -000005ae: _init_result :: out u32 = low:32[R0] - -000004d0: -000004d6: #6 := R31 - 0x10 -000004dc: mem := mem with [#6, el]:u64 <- R29 -000004e2: mem := mem with [#6 + 8, el]:u64 <- R30 -000004e6: R31 := #6 -000004ec: R29 := R31 -000004f1: R30 := 0x590 -000004f3: call @call_weak_fn with return %000004f5 - -000004f5: -000004fa: R29 := mem[R31, el]:u64 -000004ff: R30 := mem[R31 + 8, el]:u64 -00000503: R31 := R31 + 0x10 -00000508: call R30 with noreturn - -0000057b: sub _start(_start_result) -000005af: _start_result :: out u32 = low:32[R0] - -0000017c: -00000181: R29 := 0 -00000186: R30 := 0 -0000018c: R5 := R0 -00000193: R1 := mem[R31, el]:u64 -00000199: R2 := R31 + 8 -0000019f: R6 := R31 -000001a4: R0 := 0x10000 -000001ab: R0 := mem[R0 + 0xFD8, el]:u64 -000001b0: R3 := 0 -000001b5: R4 := 0 -000001ba: R30 := 0x630 -000001bd: call @__libc_start_main with return %000001bf - -000001bf: -000001c2: R30 := 0x634 -000001c5: call @abort with return %0000059e - -0000059e: -0000059f: call @call_weak_fn with noreturn - -0000057e: sub abort() - - -000001c3: -00000451: R16 := 0x11000 -00000458: R17 := mem[R16 + 0x18, el]:u64 -0000045e: R16 := R16 + 0x18 -00000463: call R17 with noreturn - -0000057f: sub call_weak_fn(call_weak_fn_result) -000005b0: call_weak_fn_result :: out u32 = low:32[R0] - -000001c7: -000001ca: R0 := 0x10000 -000001d1: R0 := mem[R0 + 0xFD0, el]:u64 -000001d7: when R0 = 0 goto %000001d5 -000005a0: goto %0000036d - -000001d5: -000001dd: call R30 with noreturn - -0000036d: -00000370: goto @__gmon_start__ - -0000036e: -0000043b: R16 := 0x11000 -00000442: R17 := mem[R16 + 0x10, el]:u64 -00000448: R16 := R16 + 0x10 -0000044d: call R17 with noreturn - -00000581: sub deregister_tm_clones(deregister_tm_clones_result) -000005b1: deregister_tm_clones_result :: out u32 = low:32[R0] - -000001e3: -000001e6: R0 := 0x11000 -000001ec: R0 := R0 + 0x30 -000001f1: R1 := 0x11000 -000001f7: R1 := R1 + 0x30 -000001fd: #1 := ~R0 -00000202: #2 := R1 + ~R0 -00000208: VF := extend:65[#2 + 1] <> extend:65[R1] + extend:65[#1] + 1 -0000020e: CF := pad:65[#2 + 1] <> pad:65[R1] + pad:65[#1] + 1 -00000212: ZF := #2 + 1 = 0 -00000216: NF := 63:63[#2 + 1] -0000021c: when ZF goto %0000021a -000005a1: goto %0000034f - -0000034f: -00000352: R1 := 0x10000 -00000359: R1 := mem[R1 + 0xFC0, el]:u64 -0000035e: when R1 = 0 goto %0000021a -000005a2: goto %00000362 - -0000021a: -00000222: call R30 with noreturn - -00000362: -00000366: R16 := R1 -0000036b: call R16 with noreturn - -00000584: sub frame_dummy(frame_dummy_result) -000005b2: frame_dummy_result :: out u32 = low:32[R0] - -000002ba: -000002bc: call @register_tm_clones with noreturn - -00000585: sub main(main_argc, main_argv, main_result) -000005b3: main_argc :: in u32 = low:32[R0] -000005b4: main_argv :: in out u64 = R1 -000005b5: main_result :: out u32 = low:32[R0] - -000002be: -000002c1: R8 := 0x11000 -000002c8: R8 := pad:64[mem[R8 + 0x34, el]:u32] -000002ce: #4 := 31:0[R8] - 1 -000002d3: VF := extend:33[#4 + 1] <> extend:33[31:0[R8]] + 0 -000002d8: CF := pad:33[#4 + 1] <> pad:33[31:0[R8]] - 0x100000000 -000002dc: ZF := #4 + 1 = 0 -000002e0: NF := 31:31[#4 + 1] -000002ec: when ZF <> 1 goto %000002e5 -000002ed: goto %000002e8 - -000002e8: -000002e9: R0 := 1 -000002ef: goto %000002eb - -000002e5: -000002e6: R0 := 0 -000002ee: goto %000002eb - -000002eb: -000002f4: call R30 with noreturn - -00000586: sub register_tm_clones(register_tm_clones_result) -000005b6: register_tm_clones_result :: out u32 = low:32[R0] - -00000224: -00000227: R0 := 0x11000 -0000022d: R0 := R0 + 0x30 -00000232: R1 := 0x11000 -00000238: R1 := R1 + 0x30 -0000023f: R1 := R1 + ~R0 + 1 -00000245: R2 := 0.63:63[R1] -0000024c: R1 := R2 + (R1 ~>> 3) -00000252: R1 := extend:64[63:1[R1]] -00000258: when R1 = 0 goto %00000256 -000005a3: goto %00000331 - -00000331: -00000334: R2 := 0x10000 -0000033b: R2 := mem[R2 + 0xFE0, el]:u64 -00000340: when R2 = 0 goto %00000256 -000005a4: goto %00000344 - -00000256: -0000025e: call R30 with noreturn - -00000344: -00000348: R16 := R2 -0000034d: call R16 with noreturn diff --git a/src/test/correct/using_gamma_conditional/clang_O2/using_gamma_conditional.expected b/src/test/correct/using_gamma_conditional/clang_O2/using_gamma_conditional.expected index 2002adc7a..cee4c3af4 100644 --- a/src/test/correct/using_gamma_conditional/clang_O2/using_gamma_conditional.expected +++ b/src/test/correct/using_gamma_conditional/clang_O2/using_gamma_conditional.expected @@ -13,24 +13,25 @@ var {:extern} VF: bv1; var {:extern} ZF: bv1; var {:extern} mem: [bv64]bv8; const {:extern} $x_addr: bv64; -axiom ($x_addr == 69684bv64); +axiom ($x_addr == 131092bv64); const {:extern} $z_addr: bv64; -axiom ($z_addr == 69688bv64); +axiom ($z_addr == 131096bv64); function {:extern} L(mem$in: [bv64]bv8, index: bv64) returns (bool) { (if (index == $z_addr) then true else (if (index == $x_addr) then (memory_load32_le(mem$in, $z_addr) == 0bv32) else false)) } -function {:extern} {:bvbuiltin "bvadd"} bvadd32(bv32, bv32) returns (bv32); -function {:extern} {:bvbuiltin "bvadd"} bvadd33(bv33, bv33) returns (bv33); function {:extern} {:bvbuiltin "bvadd"} bvadd64(bv64, bv64) returns (bv64); function {:extern} {:bvbuiltin "bvcomp"} bvcomp1(bv1, bv1) returns (bv1); function {:extern} {:bvbuiltin "bvcomp"} bvcomp32(bv32, bv32) returns (bv1); -function {:extern} {:bvbuiltin "bvcomp"} bvcomp33(bv33, bv33) returns (bv1); function {:extern} {:bvbuiltin "bvnot"} bvnot1(bv1) returns (bv1); function {:extern} gamma_load32(gammaMap: [bv64]bool, index: bv64) returns (bool) { (gammaMap[bvadd64(index, 3bv64)] && (gammaMap[bvadd64(index, 2bv64)] && (gammaMap[bvadd64(index, 1bv64)] && gammaMap[index]))) } +function {:extern} gamma_load64(gammaMap: [bv64]bool, index: bv64) returns (bool) { + (gammaMap[bvadd64(index, 7bv64)] && (gammaMap[bvadd64(index, 6bv64)] && (gammaMap[bvadd64(index, 5bv64)] && (gammaMap[bvadd64(index, 4bv64)] && (gammaMap[bvadd64(index, 3bv64)] && (gammaMap[bvadd64(index, 2bv64)] && (gammaMap[bvadd64(index, 1bv64)] && gammaMap[index]))))))) +} + function {:extern} memory_load32_le(memory: [bv64]bv8, index: bv64) returns (bv32) { (memory[bvadd64(index, 3bv64)] ++ (memory[bvadd64(index, 2bv64)] ++ (memory[bvadd64(index, 1bv64)] ++ memory[index]))) } @@ -39,18 +40,17 @@ function {:extern} memory_load64_le(memory: [bv64]bv8, index: bv64) returns (bv6 (memory[bvadd64(index, 7bv64)] ++ (memory[bvadd64(index, 6bv64)] ++ (memory[bvadd64(index, 5bv64)] ++ (memory[bvadd64(index, 4bv64)] ++ (memory[bvadd64(index, 3bv64)] ++ (memory[bvadd64(index, 2bv64)] ++ (memory[bvadd64(index, 1bv64)] ++ memory[index]))))))) } -function {:extern} {:bvbuiltin "sign_extend 1"} sign_extend1_32(bv32) returns (bv33); -function {:extern} {:bvbuiltin "zero_extend 1"} zero_extend1_32(bv32) returns (bv33); function {:extern} {:bvbuiltin "zero_extend 32"} zero_extend32_32(bv32) returns (bv64); procedure {:extern} rely(); modifies Gamma_mem, mem; ensures (forall i: bv64 :: (((mem[i] == old(mem[i])) ==> (Gamma_mem[i] == old(Gamma_mem[i]))))); ensures (old(gamma_load32(Gamma_mem, $x_addr)) ==> gamma_load32(Gamma_mem, $x_addr)); - free ensures (memory_load32_le(mem, 1852bv64) == 131073bv32); - free ensures (memory_load64_le(mem, 69064bv64) == 1808bv64); - free ensures (memory_load64_le(mem, 69072bv64) == 1728bv64); - free ensures (memory_load64_le(mem, 69592bv64) == 1812bv64); - free ensures (memory_load64_le(mem, 69672bv64) == 69672bv64); + free ensures (memory_load32_le(mem, 2304bv64) == 131073bv32); + free ensures (memory_load64_le(mem, 130432bv64) == 2256bv64); + free ensures (memory_load64_le(mem, 130440bv64) == 2176bv64); + free ensures (memory_load64_le(mem, 131040bv64) == 131092bv64); + free ensures (memory_load64_le(mem, 131056bv64) == 2260bv64); + free ensures (memory_load64_le(mem, 131080bv64) == 131080bv64); procedure {:extern} rely_transitive(); modifies Gamma_mem, mem; @@ -77,62 +77,66 @@ implementation {:extern} guarantee_reflexive() assert ((memory_load32_le(mem, $x_addr) == memory_load32_le(mem, $x_addr)) && (memory_load32_le(mem, $z_addr) == memory_load32_le(mem, $z_addr))); } -procedure main_1812(); +procedure main(); modifies CF, Gamma_CF, Gamma_NF, Gamma_R0, Gamma_R8, Gamma_VF, Gamma_ZF, Gamma_mem, NF, R0, R8, VF, ZF, mem; requires (gamma_load32(Gamma_mem, $x_addr) == true); - free requires (memory_load64_le(mem, 69664bv64) == 0bv64); - free requires (memory_load64_le(mem, 69672bv64) == 69672bv64); - free requires (memory_load32_le(mem, 1852bv64) == 131073bv32); - free requires (memory_load64_le(mem, 69064bv64) == 1808bv64); - free requires (memory_load64_le(mem, 69072bv64) == 1728bv64); - free requires (memory_load64_le(mem, 69592bv64) == 1812bv64); - free requires (memory_load64_le(mem, 69672bv64) == 69672bv64); - free ensures (memory_load32_le(mem, 1852bv64) == 131073bv32); - free ensures (memory_load64_le(mem, 69064bv64) == 1808bv64); - free ensures (memory_load64_le(mem, 69072bv64) == 1728bv64); - free ensures (memory_load64_le(mem, 69592bv64) == 1812bv64); - free ensures (memory_load64_le(mem, 69672bv64) == 69672bv64); + free requires (memory_load64_le(mem, 131072bv64) == 0bv64); + free requires (memory_load64_le(mem, 131080bv64) == 131080bv64); + free requires (memory_load32_le(mem, 2304bv64) == 131073bv32); + free requires (memory_load64_le(mem, 130432bv64) == 2256bv64); + free requires (memory_load64_le(mem, 130440bv64) == 2176bv64); + free requires (memory_load64_le(mem, 131040bv64) == 131092bv64); + free requires (memory_load64_le(mem, 131056bv64) == 2260bv64); + free requires (memory_load64_le(mem, 131080bv64) == 131080bv64); + free ensures (memory_load32_le(mem, 2304bv64) == 131073bv32); + free ensures (memory_load64_le(mem, 130432bv64) == 2256bv64); + free ensures (memory_load64_le(mem, 130440bv64) == 2176bv64); + free ensures (memory_load64_le(mem, 131040bv64) == 131092bv64); + free ensures (memory_load64_le(mem, 131056bv64) == 2260bv64); + free ensures (memory_load64_le(mem, 131080bv64) == 131080bv64); -implementation main_1812() +implementation main() { - var #4: bv32; - var Gamma_#4: bool; - var Gamma_load18: bool; - var load18: bv32; + var $load$18: bv64; + var $load$19: bv32; + var Gamma_$load$18: bool; + var Gamma_$load$19: bool; lmain: assume {:captureState "lmain"} true; - R8, Gamma_R8 := 69632bv64, true; + R8, Gamma_R8 := 126976bv64, true; call rely(); - load18, Gamma_load18 := memory_load32_le(mem, bvadd64(R8, 52bv64)), (gamma_load32(Gamma_mem, bvadd64(R8, 52bv64)) || L(mem, bvadd64(R8, 52bv64))); - R8, Gamma_R8 := zero_extend32_32(load18), Gamma_load18; - #4, Gamma_#4 := bvadd32(R8[32:0], 4294967295bv32), Gamma_R8; - VF, Gamma_VF := bvnot1(bvcomp33(sign_extend1_32(bvadd32(#4, 1bv32)), bvadd33(sign_extend1_32(R8[32:0]), 0bv33))), (Gamma_R8 && Gamma_#4); - CF, Gamma_CF := bvnot1(bvcomp33(zero_extend1_32(bvadd32(#4, 1bv32)), bvadd33(zero_extend1_32(R8[32:0]), 4294967296bv33))), (Gamma_R8 && Gamma_#4); - ZF, Gamma_ZF := bvcomp32(bvadd32(#4, 1bv32), 0bv32), Gamma_#4; - NF, Gamma_NF := bvadd32(#4, 1bv32)[32:31], Gamma_#4; + $load$18, Gamma_$load$18 := memory_load64_le(mem, bvadd64(R8, 4064bv64)), (gamma_load64(Gamma_mem, bvadd64(R8, 4064bv64)) || L(mem, bvadd64(R8, 4064bv64))); + R8, Gamma_R8 := $load$18, Gamma_$load$18; + call rely(); + $load$19, Gamma_$load$19 := memory_load32_le(mem, R8), (gamma_load32(Gamma_mem, R8) || L(mem, R8)); + R8, Gamma_R8 := zero_extend32_32($load$19), Gamma_$load$19; + VF, Gamma_VF := 0bv1, true; + CF, Gamma_CF := 1bv1, true; + ZF, Gamma_ZF := bvcomp32(R8[32:0], 0bv32), Gamma_R8; + NF, Gamma_NF := R8[32:31], Gamma_R8; assert Gamma_ZF; - goto lmain_goto_l000002e5, lmain_goto_l000002e8; - lmain_goto_l000002e8: - assume {:captureState "lmain_goto_l000002e8"} true; - assume (bvnot1(bvcomp1(ZF, 1bv1)) == 0bv1); + goto lmain_goto_l0000029c, lmain_goto_l000002a4; + l000002a4: + assume {:captureState "l000002a4"} true; R0, Gamma_R0 := 1bv64, true; - goto l000002e8; - l000002e8: - assume {:captureState "l000002e8"} true; - goto l000002eb; - lmain_goto_l000002e5: - assume {:captureState "lmain_goto_l000002e5"} true; - assume (bvnot1(bvcomp1(ZF, 1bv1)) != 0bv1); + goto l000002b0; + l0000029c: + assume {:captureState "l0000029c"} true; R0, Gamma_R0 := 0bv64, true; - goto l000002e5; - l000002e5: - assume {:captureState "l000002e5"} true; - goto l000002eb; - l000002eb: - assume {:captureState "l000002eb"} true; - goto main_1812_basil_return; - main_1812_basil_return: - assume {:captureState "main_1812_basil_return"} true; + goto l000002b0; + l000002b0: + assume {:captureState "l000002b0"} true; + goto main_basil_return; + lmain_goto_l0000029c: + assume {:captureState "lmain_goto_l0000029c"} true; + assume (bvnot1(bvcomp1(ZF, 1bv1)) != 0bv1); + goto l0000029c; + lmain_goto_l000002a4: + assume {:captureState "lmain_goto_l000002a4"} true; + assume (bvnot1(bvcomp1(ZF, 1bv1)) == 0bv1); + goto l000002a4; + main_basil_return: + assume {:captureState "main_basil_return"} true; return; } diff --git a/src/test/correct/using_gamma_conditional/clang_O2/using_gamma_conditional.gts b/src/test/correct/using_gamma_conditional/clang_O2/using_gamma_conditional.gts deleted file mode 100644 index d28ff38e3..000000000 Binary files a/src/test/correct/using_gamma_conditional/clang_O2/using_gamma_conditional.gts and /dev/null differ diff --git a/src/test/correct/using_gamma_conditional/clang_O2/using_gamma_conditional.md5sum b/src/test/correct/using_gamma_conditional/clang_O2/using_gamma_conditional.md5sum new file mode 100644 index 000000000..f85ef7675 --- /dev/null +++ b/src/test/correct/using_gamma_conditional/clang_O2/using_gamma_conditional.md5sum @@ -0,0 +1,5 @@ +021cbaabee26808629c089b3f57b3918 correct/using_gamma_conditional/clang_O2/a.out +a60c3c72b6786ad3e2bfa5ab8223be1c correct/using_gamma_conditional/clang_O2/using_gamma_conditional.adt +83fb24ac62b5673fac704936e95868fa correct/using_gamma_conditional/clang_O2/using_gamma_conditional.bir +b74f79ee39af938fa36c82f073c362df correct/using_gamma_conditional/clang_O2/using_gamma_conditional.relf +09b8cb953b11f6b89218d32b38664986 correct/using_gamma_conditional/clang_O2/using_gamma_conditional.gts diff --git a/src/test/correct/using_gamma_conditional/clang_O2/using_gamma_conditional.relf b/src/test/correct/using_gamma_conditional/clang_O2/using_gamma_conditional.relf deleted file mode 100644 index 3f8426859..000000000 --- a/src/test/correct/using_gamma_conditional/clang_O2/using_gamma_conditional.relf +++ /dev/null @@ -1,124 +0,0 @@ - -Relocation section '.rela.dyn' at offset 0x460 contains 8 entries: - Offset Info Type Symbol's Value Symbol's Name + Addend -0000000000010dc8 0000000000000403 R_AARCH64_RELATIVE 710 -0000000000010dd0 0000000000000403 R_AARCH64_RELATIVE 6c0 -0000000000010fd8 0000000000000403 R_AARCH64_RELATIVE 714 -0000000000011028 0000000000000403 R_AARCH64_RELATIVE 11028 -0000000000010fc0 0000000400000401 R_AARCH64_GLOB_DAT 0000000000000000 _ITM_deregisterTMCloneTable + 0 -0000000000010fc8 0000000500000401 R_AARCH64_GLOB_DAT 0000000000000000 __cxa_finalize@GLIBC_2.17 + 0 -0000000000010fd0 0000000600000401 R_AARCH64_GLOB_DAT 0000000000000000 __gmon_start__ + 0 -0000000000010fe0 0000000800000401 R_AARCH64_GLOB_DAT 0000000000000000 _ITM_registerTMCloneTable + 0 - -Relocation section '.rela.plt' at offset 0x520 contains 4 entries: - Offset Info Type Symbol's Value Symbol's Name + Addend -0000000000011000 0000000300000402 R_AARCH64_JUMP_SLOT 0000000000000000 __libc_start_main@GLIBC_2.34 + 0 -0000000000011008 0000000500000402 R_AARCH64_JUMP_SLOT 0000000000000000 __cxa_finalize@GLIBC_2.17 + 0 -0000000000011010 0000000600000402 R_AARCH64_JUMP_SLOT 0000000000000000 __gmon_start__ + 0 -0000000000011018 0000000700000402 R_AARCH64_JUMP_SLOT 0000000000000000 abort@GLIBC_2.17 + 0 - -Symbol table '.dynsym' contains 9 entries: - Num: Value Size Type Bind Vis Ndx Name - 0: 0000000000000000 0 NOTYPE LOCAL DEFAULT UND - 1: 0000000000000580 0 SECTION LOCAL DEFAULT 11 .init - 2: 0000000000011020 0 SECTION LOCAL DEFAULT 23 .data - 3: 0000000000000000 0 FUNC GLOBAL DEFAULT UND __libc_start_main@GLIBC_2.34 (2) - 4: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_deregisterTMCloneTable - 5: 0000000000000000 0 FUNC WEAK DEFAULT UND __cxa_finalize@GLIBC_2.17 (3) - 6: 0000000000000000 0 NOTYPE WEAK DEFAULT UND __gmon_start__ - 7: 0000000000000000 0 FUNC GLOBAL DEFAULT UND abort@GLIBC_2.17 (3) - 8: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_registerTMCloneTable - -Symbol table '.symtab' contains 91 entries: - Num: Value Size Type Bind Vis Ndx Name - 0: 0000000000000000 0 NOTYPE LOCAL DEFAULT UND - 1: 0000000000000238 0 SECTION LOCAL DEFAULT 1 .interp - 2: 0000000000000254 0 SECTION LOCAL DEFAULT 2 .note.gnu.build-id - 3: 0000000000000278 0 SECTION LOCAL DEFAULT 3 .note.ABI-tag - 4: 0000000000000298 0 SECTION LOCAL DEFAULT 4 .gnu.hash - 5: 00000000000002b8 0 SECTION LOCAL DEFAULT 5 .dynsym - 6: 0000000000000390 0 SECTION LOCAL DEFAULT 6 .dynstr - 7: 000000000000041e 0 SECTION LOCAL DEFAULT 7 .gnu.version - 8: 0000000000000430 0 SECTION LOCAL DEFAULT 8 .gnu.version_r - 9: 0000000000000460 0 SECTION LOCAL DEFAULT 9 .rela.dyn - 10: 0000000000000520 0 SECTION LOCAL DEFAULT 10 .rela.plt - 11: 0000000000000580 0 SECTION LOCAL DEFAULT 11 .init - 12: 00000000000005a0 0 SECTION LOCAL DEFAULT 12 .plt - 13: 0000000000000600 0 SECTION LOCAL DEFAULT 13 .text - 14: 0000000000000728 0 SECTION LOCAL DEFAULT 14 .fini - 15: 000000000000073c 0 SECTION LOCAL DEFAULT 15 .rodata - 16: 0000000000000740 0 SECTION LOCAL DEFAULT 16 .eh_frame_hdr - 17: 0000000000000780 0 SECTION LOCAL DEFAULT 17 .eh_frame - 18: 0000000000010dc8 0 SECTION LOCAL DEFAULT 18 .init_array - 19: 0000000000010dd0 0 SECTION LOCAL DEFAULT 19 .fini_array - 20: 0000000000010dd8 0 SECTION LOCAL DEFAULT 20 .dynamic - 21: 0000000000010fb8 0 SECTION LOCAL DEFAULT 21 .got - 22: 0000000000010fe8 0 SECTION LOCAL DEFAULT 22 .got.plt - 23: 0000000000011020 0 SECTION LOCAL DEFAULT 23 .data - 24: 0000000000011030 0 SECTION LOCAL DEFAULT 24 .bss - 25: 0000000000000000 0 SECTION LOCAL DEFAULT 25 .comment - 26: 0000000000000000 0 FILE LOCAL DEFAULT ABS Scrt1.o - 27: 0000000000000278 0 NOTYPE LOCAL DEFAULT 3 $d - 28: 0000000000000278 32 OBJECT LOCAL DEFAULT 3 __abi_tag - 29: 0000000000000600 0 NOTYPE LOCAL DEFAULT 13 $x - 30: 0000000000000794 0 NOTYPE LOCAL DEFAULT 17 $d - 31: 000000000000073c 0 NOTYPE LOCAL DEFAULT 15 $d - 32: 0000000000000000 0 FILE LOCAL DEFAULT ABS crti.o - 33: 0000000000000634 0 NOTYPE LOCAL DEFAULT 13 $x - 34: 0000000000000634 20 FUNC LOCAL DEFAULT 13 call_weak_fn - 35: 0000000000000580 0 NOTYPE LOCAL DEFAULT 11 $x - 36: 0000000000000728 0 NOTYPE LOCAL DEFAULT 14 $x - 37: 0000000000000000 0 FILE LOCAL DEFAULT ABS crtn.o - 38: 0000000000000590 0 NOTYPE LOCAL DEFAULT 11 $x - 39: 0000000000000734 0 NOTYPE LOCAL DEFAULT 14 $x - 40: 0000000000000000 0 FILE LOCAL DEFAULT ABS crtstuff.c - 41: 0000000000000650 0 NOTYPE LOCAL DEFAULT 13 $x - 42: 0000000000000650 0 FUNC LOCAL DEFAULT 13 deregister_tm_clones - 43: 0000000000000680 0 FUNC LOCAL DEFAULT 13 register_tm_clones - 44: 0000000000011028 0 NOTYPE LOCAL DEFAULT 23 $d - 45: 00000000000006c0 0 FUNC LOCAL DEFAULT 13 __do_global_dtors_aux - 46: 0000000000011030 1 OBJECT LOCAL DEFAULT 24 completed.0 - 47: 0000000000010dd0 0 NOTYPE LOCAL DEFAULT 19 $d - 48: 0000000000010dd0 0 OBJECT LOCAL DEFAULT 19 __do_global_dtors_aux_fini_array_entry - 49: 0000000000000710 0 FUNC LOCAL DEFAULT 13 frame_dummy - 50: 0000000000010dc8 0 NOTYPE LOCAL DEFAULT 18 $d - 51: 0000000000010dc8 0 OBJECT LOCAL DEFAULT 18 __frame_dummy_init_array_entry - 52: 00000000000007a8 0 NOTYPE LOCAL DEFAULT 17 $d - 53: 0000000000011030 0 NOTYPE LOCAL DEFAULT 24 $d - 54: 0000000000000000 0 FILE LOCAL DEFAULT ABS using_gamma_conditional.c - 55: 0000000000000714 0 NOTYPE LOCAL DEFAULT 13 $x.0 - 56: 0000000000011034 0 NOTYPE LOCAL DEFAULT 24 $d.1 - 57: 000000000000002a 0 NOTYPE LOCAL DEFAULT 25 $d.2 - 58: 0000000000000808 0 NOTYPE LOCAL DEFAULT 17 $d.3 - 59: 0000000000000000 0 FILE LOCAL DEFAULT ABS crtstuff.c - 60: 0000000000000830 0 NOTYPE LOCAL DEFAULT 17 $d - 61: 0000000000000830 0 OBJECT LOCAL DEFAULT 17 __FRAME_END__ - 62: 0000000000000000 0 FILE LOCAL DEFAULT ABS - 63: 0000000000010dd8 0 OBJECT LOCAL DEFAULT ABS _DYNAMIC - 64: 0000000000000740 0 NOTYPE LOCAL DEFAULT 16 __GNU_EH_FRAME_HDR - 65: 0000000000010fb8 0 OBJECT LOCAL DEFAULT ABS _GLOBAL_OFFSET_TABLE_ - 66: 00000000000005a0 0 NOTYPE LOCAL DEFAULT 12 $x - 67: 0000000000000000 0 FUNC GLOBAL DEFAULT UND __libc_start_main@GLIBC_2.34 - 68: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_deregisterTMCloneTable - 69: 0000000000011020 0 NOTYPE WEAK DEFAULT 23 data_start - 70: 0000000000011030 0 NOTYPE GLOBAL DEFAULT 24 __bss_start__ - 71: 0000000000000000 0 FUNC WEAK DEFAULT UND __cxa_finalize@GLIBC_2.17 - 72: 0000000000011040 0 NOTYPE GLOBAL DEFAULT 24 _bss_end__ - 73: 0000000000011030 0 NOTYPE GLOBAL DEFAULT 23 _edata - 74: 0000000000011038 4 OBJECT GLOBAL DEFAULT 24 z - 75: 0000000000011034 4 OBJECT GLOBAL DEFAULT 24 x - 76: 0000000000000728 0 FUNC GLOBAL HIDDEN 14 _fini - 77: 0000000000011040 0 NOTYPE GLOBAL DEFAULT 24 __bss_end__ - 78: 0000000000011020 0 NOTYPE GLOBAL DEFAULT 23 __data_start - 79: 0000000000000000 0 NOTYPE WEAK DEFAULT UND __gmon_start__ - 80: 0000000000011028 0 OBJECT GLOBAL HIDDEN 23 __dso_handle - 81: 0000000000000000 0 FUNC GLOBAL DEFAULT UND abort@GLIBC_2.17 - 82: 000000000000073c 4 OBJECT GLOBAL DEFAULT 15 _IO_stdin_used - 83: 0000000000011040 0 NOTYPE GLOBAL DEFAULT 24 _end - 84: 0000000000000600 52 FUNC GLOBAL DEFAULT 13 _start - 85: 0000000000011040 0 NOTYPE GLOBAL DEFAULT 24 __end__ - 86: 0000000000011030 0 NOTYPE GLOBAL DEFAULT 24 __bss_start - 87: 0000000000000714 20 FUNC GLOBAL DEFAULT 13 main - 88: 0000000000011030 0 OBJECT GLOBAL HIDDEN 23 __TMC_END__ - 89: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_registerTMCloneTable - 90: 0000000000000580 0 FUNC GLOBAL HIDDEN 11 _init diff --git a/src/test/correct/using_gamma_conditional/clang_O2/using_gamma_conditional_gtirb.expected b/src/test/correct/using_gamma_conditional/clang_O2/using_gamma_conditional_gtirb.expected index 17af1f3fa..ed332c80b 100644 --- a/src/test/correct/using_gamma_conditional/clang_O2/using_gamma_conditional_gtirb.expected +++ b/src/test/correct/using_gamma_conditional/clang_O2/using_gamma_conditional_gtirb.expected @@ -13,23 +13,23 @@ var {:extern} VF: bv1; var {:extern} ZF: bv1; var {:extern} mem: [bv64]bv8; const {:extern} $x_addr: bv64; -axiom ($x_addr == 69684bv64); +axiom ($x_addr == 131092bv64); const {:extern} $z_addr: bv64; -axiom ($z_addr == 69688bv64); +axiom ($z_addr == 131096bv64); function {:extern} L(mem$in: [bv64]bv8, index: bv64) returns (bool) { (if (index == $z_addr) then true else (if (index == $x_addr) then (memory_load32_le(mem$in, $z_addr) == 0bv32) else false)) } -function {:extern} {:bvbuiltin "bvadd"} bvadd32(bv32, bv32) returns (bv32); -function {:extern} {:bvbuiltin "bvadd"} bvadd33(bv33, bv33) returns (bv33); function {:extern} {:bvbuiltin "bvadd"} bvadd64(bv64, bv64) returns (bv64); function {:extern} {:bvbuiltin "bvcomp"} bvcomp32(bv32, bv32) returns (bv1); -function {:extern} {:bvbuiltin "bvcomp"} bvcomp33(bv33, bv33) returns (bv1); -function {:extern} {:bvbuiltin "bvnot"} bvnot1(bv1) returns (bv1); function {:extern} gamma_load32(gammaMap: [bv64]bool, index: bv64) returns (bool) { (gammaMap[bvadd64(index, 3bv64)] && (gammaMap[bvadd64(index, 2bv64)] && (gammaMap[bvadd64(index, 1bv64)] && gammaMap[index]))) } +function {:extern} gamma_load64(gammaMap: [bv64]bool, index: bv64) returns (bool) { + (gammaMap[bvadd64(index, 7bv64)] && (gammaMap[bvadd64(index, 6bv64)] && (gammaMap[bvadd64(index, 5bv64)] && (gammaMap[bvadd64(index, 4bv64)] && (gammaMap[bvadd64(index, 3bv64)] && (gammaMap[bvadd64(index, 2bv64)] && (gammaMap[bvadd64(index, 1bv64)] && gammaMap[index]))))))) +} + function {:extern} memory_load32_le(memory: [bv64]bv8, index: bv64) returns (bv32) { (memory[bvadd64(index, 3bv64)] ++ (memory[bvadd64(index, 2bv64)] ++ (memory[bvadd64(index, 1bv64)] ++ memory[index]))) } @@ -38,17 +38,17 @@ function {:extern} memory_load64_le(memory: [bv64]bv8, index: bv64) returns (bv6 (memory[bvadd64(index, 7bv64)] ++ (memory[bvadd64(index, 6bv64)] ++ (memory[bvadd64(index, 5bv64)] ++ (memory[bvadd64(index, 4bv64)] ++ (memory[bvadd64(index, 3bv64)] ++ (memory[bvadd64(index, 2bv64)] ++ (memory[bvadd64(index, 1bv64)] ++ memory[index]))))))) } -function {:extern} {:bvbuiltin "zero_extend 1"} zero_extend1_32(bv32) returns (bv33); function {:extern} {:bvbuiltin "zero_extend 32"} zero_extend32_32(bv32) returns (bv64); procedure {:extern} rely(); modifies Gamma_mem, mem; ensures (forall i: bv64 :: (((mem[i] == old(mem[i])) ==> (Gamma_mem[i] == old(Gamma_mem[i]))))); ensures (old(gamma_load32(Gamma_mem, $x_addr)) ==> gamma_load32(Gamma_mem, $x_addr)); - free ensures (memory_load32_le(mem, 1852bv64) == 131073bv32); - free ensures (memory_load64_le(mem, 69064bv64) == 1808bv64); - free ensures (memory_load64_le(mem, 69072bv64) == 1728bv64); - free ensures (memory_load64_le(mem, 69592bv64) == 1812bv64); - free ensures (memory_load64_le(mem, 69672bv64) == 69672bv64); + free ensures (memory_load32_le(mem, 2304bv64) == 131073bv32); + free ensures (memory_load64_le(mem, 130432bv64) == 2256bv64); + free ensures (memory_load64_le(mem, 130440bv64) == 2176bv64); + free ensures (memory_load64_le(mem, 131040bv64) == 131092bv64); + free ensures (memory_load64_le(mem, 131056bv64) == 2260bv64); + free ensures (memory_load64_le(mem, 131080bv64) == 131080bv64); procedure {:extern} rely_transitive(); modifies Gamma_mem, mem; @@ -75,53 +75,57 @@ implementation {:extern} guarantee_reflexive() assert ((memory_load32_le(mem, $x_addr) == memory_load32_le(mem, $x_addr)) && (memory_load32_le(mem, $z_addr) == memory_load32_le(mem, $z_addr))); } -procedure main_1812(); +procedure main(); modifies CF, Gamma_CF, Gamma_NF, Gamma_R0, Gamma_R8, Gamma_VF, Gamma_ZF, Gamma_mem, NF, R0, R8, VF, ZF, mem; requires (gamma_load32(Gamma_mem, $x_addr) == true); - free requires (memory_load64_le(mem, 69664bv64) == 0bv64); - free requires (memory_load64_le(mem, 69672bv64) == 69672bv64); - free requires (memory_load32_le(mem, 1852bv64) == 131073bv32); - free requires (memory_load64_le(mem, 69064bv64) == 1808bv64); - free requires (memory_load64_le(mem, 69072bv64) == 1728bv64); - free requires (memory_load64_le(mem, 69592bv64) == 1812bv64); - free requires (memory_load64_le(mem, 69672bv64) == 69672bv64); - free ensures (memory_load32_le(mem, 1852bv64) == 131073bv32); - free ensures (memory_load64_le(mem, 69064bv64) == 1808bv64); - free ensures (memory_load64_le(mem, 69072bv64) == 1728bv64); - free ensures (memory_load64_le(mem, 69592bv64) == 1812bv64); - free ensures (memory_load64_le(mem, 69672bv64) == 69672bv64); + free requires (memory_load64_le(mem, 131072bv64) == 0bv64); + free requires (memory_load64_le(mem, 131080bv64) == 131080bv64); + free requires (memory_load32_le(mem, 2304bv64) == 131073bv32); + free requires (memory_load64_le(mem, 130432bv64) == 2256bv64); + free requires (memory_load64_le(mem, 130440bv64) == 2176bv64); + free requires (memory_load64_le(mem, 131040bv64) == 131092bv64); + free requires (memory_load64_le(mem, 131056bv64) == 2260bv64); + free requires (memory_load64_le(mem, 131080bv64) == 131080bv64); + free ensures (memory_load32_le(mem, 2304bv64) == 131073bv32); + free ensures (memory_load64_le(mem, 130432bv64) == 2256bv64); + free ensures (memory_load64_le(mem, 130440bv64) == 2176bv64); + free ensures (memory_load64_le(mem, 131040bv64) == 131092bv64); + free ensures (memory_load64_le(mem, 131056bv64) == 2260bv64); + free ensures (memory_load64_le(mem, 131080bv64) == 131080bv64); -implementation main_1812() +implementation main() { - var Cse0__5_0_2: bv32; - var Gamma_Cse0__5_0_2: bool; - var Gamma_load20: bool; - var load20: bv32; - main_1812__0__Xci9C6~RSgeAKtB8I~m3wg: - assume {:captureState "main_1812__0__Xci9C6~RSgeAKtB8I~m3wg"} true; - R8, Gamma_R8 := 69632bv64, true; + var $load19: bv64; + var $load20: bv32; + var Gamma_$load19: bool; + var Gamma_$load20: bool; + $main$__0__$IkNYmV06TxC75h8A4NM3wA: + assume {:captureState "$main$__0__$IkNYmV06TxC75h8A4NM3wA"} true; + R8, Gamma_R8 := 126976bv64, true; call rely(); - load20, Gamma_load20 := memory_load32_le(mem, bvadd64(R8, 52bv64)), (gamma_load32(Gamma_mem, bvadd64(R8, 52bv64)) || L(mem, bvadd64(R8, 52bv64))); - R8, Gamma_R8 := zero_extend32_32(load20), Gamma_load20; - Cse0__5_0_2, Gamma_Cse0__5_0_2 := bvadd32(R8[32:0], 0bv32), Gamma_R8; - VF, Gamma_VF := bvnot1(bvcomp32(Cse0__5_0_2, Cse0__5_0_2)), Gamma_Cse0__5_0_2; - CF, Gamma_CF := bvnot1(bvcomp33(zero_extend1_32(Cse0__5_0_2), bvadd33(zero_extend1_32(R8[32:0]), 4294967296bv33))), (Gamma_R8 && Gamma_Cse0__5_0_2); - ZF, Gamma_ZF := bvcomp32(Cse0__5_0_2, 0bv32), Gamma_Cse0__5_0_2; - NF, Gamma_NF := Cse0__5_0_2[32:31], Gamma_Cse0__5_0_2; + $load19, Gamma_$load19 := memory_load64_le(mem, bvadd64(R8, 4064bv64)), (gamma_load64(Gamma_mem, bvadd64(R8, 4064bv64)) || L(mem, bvadd64(R8, 4064bv64))); + R8, Gamma_R8 := $load19, Gamma_$load19; + call rely(); + $load20, Gamma_$load20 := memory_load32_le(mem, R8), (gamma_load32(Gamma_mem, R8) || L(mem, R8)); + R8, Gamma_R8 := zero_extend32_32($load20), Gamma_$load20; + VF, Gamma_VF := 0bv1, true; + CF, Gamma_CF := 1bv1, true; + ZF, Gamma_ZF := bvcomp32(R8[32:0], 0bv32), Gamma_R8; + NF, Gamma_NF := R8[32:31], Gamma_R8; assert Gamma_ZF; - goto main_1812__0__Xci9C6~RSgeAKtB8I~m3wg$__0, main_1812__0__Xci9C6~RSgeAKtB8I~m3wg$__1; - main_1812__0__Xci9C6~RSgeAKtB8I~m3wg$__1: - assume {:captureState "main_1812__0__Xci9C6~RSgeAKtB8I~m3wg$__1"} true; - assume (!(!(ZF == 1bv1))); - R0, Gamma_R0 := 1bv64, true; - goto main_1812_basil_return; - main_1812__0__Xci9C6~RSgeAKtB8I~m3wg$__0: - assume {:captureState "main_1812__0__Xci9C6~RSgeAKtB8I~m3wg$__0"} true; + goto $main$__0__$IkNYmV06TxC75h8A4NM3wA$__0, $main$__0__$IkNYmV06TxC75h8A4NM3wA$__1; + $main$__0__$IkNYmV06TxC75h8A4NM3wA$__0: + assume {:captureState "$main$__0__$IkNYmV06TxC75h8A4NM3wA$__0"} true; assume (!(ZF == 1bv1)); R0, Gamma_R0 := 0bv64, true; - goto main_1812_basil_return; - main_1812_basil_return: - assume {:captureState "main_1812_basil_return"} true; + goto main_basil_return; + $main$__0__$IkNYmV06TxC75h8A4NM3wA$__1: + assume {:captureState "$main$__0__$IkNYmV06TxC75h8A4NM3wA$__1"} true; + assume (!(!(ZF == 1bv1))); + R0, Gamma_R0 := 1bv64, true; + goto main_basil_return; + main_basil_return: + assume {:captureState "main_basil_return"} true; return; } diff --git a/src/test/correct/using_gamma_conditional/clang_pic/using_gamma_conditional.adt b/src/test/correct/using_gamma_conditional/clang_pic/using_gamma_conditional.adt deleted file mode 100644 index 92b3cc901..000000000 --- a/src/test/correct/using_gamma_conditional/clang_pic/using_gamma_conditional.adt +++ /dev/null @@ -1,560 +0,0 @@ -Project(Attrs([Attr("filename","\"clang_pic/using_gamma_conditional.out\""), -Attr("image-specification","(declare abi (name str))\n(declare arch (name str))\n(declare base-address (addr int))\n(declare bias (off int))\n(declare bits (size int))\n(declare code-region (addr int) (size int) (off int))\n(declare code-start (addr int))\n(declare entry-point (addr int))\n(declare external-reference (addr int) (name str))\n(declare format (name str))\n(declare is-executable (flag bool))\n(declare is-little-endian (flag bool))\n(declare llvm:base-address (addr int))\n(declare llvm:code-entry (name str) (off int) (size int))\n(declare llvm:coff-import-library (name str))\n(declare llvm:coff-virtual-section-header (name str) (addr int) (size int))\n(declare llvm:elf-program-header (name str) (off int) (size int))\n(declare llvm:elf-program-header-flags (name str) (ld bool) (r bool) \n (w bool) (x bool))\n(declare llvm:elf-virtual-program-header (name str) (addr int) (size int))\n(declare llvm:entry-point (addr int))\n(declare llvm:macho-symbol (name str) (value int))\n(declare llvm:name-reference (at int) (name str))\n(declare llvm:relocation (at int) (addr int))\n(declare llvm:section-entry (name str) (addr int) (size int) (off int))\n(declare llvm:section-flags (name str) (r bool) (w bool) (x bool))\n(declare llvm:segment-command (name str) (off int) (size int))\n(declare llvm:segment-command-flags (name str) (r bool) (w bool) (x bool))\n(declare llvm:symbol-entry (name str) (addr int) (size int) (off int)\n (value int))\n(declare llvm:virtual-segment-command (name str) (addr int) (size int))\n(declare mapped (addr int) (size int) (off int))\n(declare named-region (addr int) (size int) (name str))\n(declare named-symbol (addr int) (name str))\n(declare require (name str))\n(declare section (addr int) (size int))\n(declare segment (addr int) (size int) (r bool) (w bool) (x bool))\n(declare subarch (name str))\n(declare symbol-chunk (addr int) (size int) (root int))\n(declare symbol-value (addr int) (value int))\n(declare system (name str))\n(declare vendor (name str))\n\n(abi unknown)\n(arch aarch64)\n(base-address 0)\n(bias 0)\n(bits 64)\n(code-region 1944 20 1944)\n(code-region 1600 344 1600)\n(code-region 1456 96 1456)\n(code-region 1432 24 1432)\n(code-start 1652)\n(code-start 1600)\n(code-start 1876)\n(entry-point 1600)\n(external-reference 69560 _ITM_deregisterTMCloneTable)\n(external-reference 69568 __cxa_finalize)\n(external-reference 69584 __gmon_start__)\n(external-reference 69600 _ITM_registerTMCloneTable)\n(external-reference 69632 __libc_start_main)\n(external-reference 69640 __cxa_finalize)\n(external-reference 69648 __gmon_start__)\n(external-reference 69656 abort)\n(format elf)\n(is-executable true)\n(is-little-endian true)\n(llvm:base-address 0)\n(llvm:code-entry abort 0 0)\n(llvm:code-entry __cxa_finalize 0 0)\n(llvm:code-entry __libc_start_main 0 0)\n(llvm:code-entry _init 1432 0)\n(llvm:code-entry main 1876 68)\n(llvm:code-entry _start 1600 52)\n(llvm:code-entry abort@GLIBC_2.17 0 0)\n(llvm:code-entry _fini 1944 0)\n(llvm:code-entry __cxa_finalize@GLIBC_2.17 0 0)\n(llvm:code-entry __libc_start_main@GLIBC_2.34 0 0)\n(llvm:code-entry frame_dummy 1872 0)\n(llvm:code-entry __do_global_dtors_aux 1792 0)\n(llvm:code-entry register_tm_clones 1728 0)\n(llvm:code-entry deregister_tm_clones 1680 0)\n(llvm:code-entry call_weak_fn 1652 20)\n(llvm:code-entry .fini 1944 20)\n(llvm:code-entry .text 1600 344)\n(llvm:code-entry .plt 1456 96)\n(llvm:code-entry .init 1432 24)\n(llvm:elf-program-header 08 3520 576)\n(llvm:elf-program-header 07 0 0)\n(llvm:elf-program-header 06 1968 60)\n(llvm:elf-program-header 05 596 68)\n(llvm:elf-program-header 04 3536 480)\n(llvm:elf-program-header 03 3520 624)\n(llvm:elf-program-header 02 0 2216)\n(llvm:elf-program-header 01 568 27)\n(llvm:elf-program-header 00 64 504)\n(llvm:elf-program-header-flags 08 false true false false)\n(llvm:elf-program-header-flags 07 false true true false)\n(llvm:elf-program-header-flags 06 false true false false)\n(llvm:elf-program-header-flags 05 false true false false)\n(llvm:elf-program-header-flags 04 false true true false)\n(llvm:elf-program-header-flags 03 true true true false)\n(llvm:elf-program-header-flags 02 true true false true)\n(llvm:elf-program-header-flags 01 false true false false)\n(llvm:elf-program-header-flags 00 false true false false)\n(llvm:elf-virtual-program-header 08 69056 576)\n(llvm:elf-virtual-program-header 07 0 0)\n(llvm:elf-virtual-program-header 06 1968 60)\n(llvm:elf-virtual-program-header 05 596 68)\n(llvm:elf-virtual-program-header 04 69072 480)\n(llvm:elf-virtual-program-header 03 69056 640)\n(llvm:elf-virtual-program-header 02 0 2216)\n(llvm:elf-virtual-program-header 01 568 27)\n(llvm:elf-virtual-program-header 00 64 504)\n(llvm:entry-point 1600)\n(llvm:name-reference 69656 abort)\n(llvm:name-reference 69648 __gmon_start__)\n(llvm:name-reference 69640 __cxa_finalize)\n(llvm:name-reference 69632 __libc_start_main)\n(llvm:name-reference 69600 _ITM_registerTMCloneTable)\n(llvm:name-reference 69584 __gmon_start__)\n(llvm:name-reference 69568 __cxa_finalize)\n(llvm:name-reference 69560 _ITM_deregisterTMCloneTable)\n(llvm:section-entry .shstrtab 0 259 6981)\n(llvm:section-entry .strtab 0 581 6400)\n(llvm:section-entry .symtab 0 2184 4216)\n(llvm:section-entry .comment 0 71 4144)\n(llvm:section-entry .bss 69680 16 4144)\n(llvm:section-entry .data 69664 16 4128)\n(llvm:section-entry .got.plt 69608 56 4072)\n(llvm:section-entry .got 69552 56 4016)\n(llvm:section-entry .dynamic 69072 480 3536)\n(llvm:section-entry .fini_array 69064 8 3528)\n(llvm:section-entry .init_array 69056 8 3520)\n(llvm:section-entry .eh_frame 2032 184 2032)\n(llvm:section-entry .eh_frame_hdr 1968 60 1968)\n(llvm:section-entry .rodata 1964 4 1964)\n(llvm:section-entry .fini 1944 20 1944)\n(llvm:section-entry .text 1600 344 1600)\n(llvm:section-entry .plt 1456 96 1456)\n(llvm:section-entry .init 1432 24 1432)\n(llvm:section-entry .rela.plt 1336 96 1336)\n(llvm:section-entry .rela.dyn 1120 216 1120)\n(llvm:section-entry .gnu.version_r 1072 48 1072)\n(llvm:section-entry .gnu.version 1054 18 1054)\n(llvm:section-entry .dynstr 912 141 912)\n(llvm:section-entry .dynsym 696 216 696)\n(llvm:section-entry .gnu.hash 664 28 664)\n(llvm:section-entry .note.ABI-tag 632 32 632)\n(llvm:section-entry .note.gnu.build-id 596 36 596)\n(llvm:section-entry .interp 568 27 568)\n(llvm:section-flags .shstrtab true false false)\n(llvm:section-flags .strtab true false false)\n(llvm:section-flags .symtab true false false)\n(llvm:section-flags .comment true false false)\n(llvm:section-flags .bss true true false)\n(llvm:section-flags .data true true false)\n(llvm:section-flags .got.plt true true false)\n(llvm:section-flags .got true true false)\n(llvm:section-flags .dynamic true true false)\n(llvm:section-flags .fini_array true true false)\n(llvm:section-flags .init_array true true false)\n(llvm:section-flags .eh_frame true false false)\n(llvm:section-flags .eh_frame_hdr true false false)\n(llvm:section-flags .rodata true false false)\n(llvm:section-flags .fini true false true)\n(llvm:section-flags .text true false true)\n(llvm:section-flags .plt true false true)\n(llvm:section-flags .init true false true)\n(llvm:section-flags .rela.plt true false false)\n(llvm:section-flags .rela.dyn true false false)\n(llvm:section-flags .gnu.version_r true false false)\n(llvm:section-flags .gnu.version true false false)\n(llvm:section-flags .dynstr true false false)\n(llvm:section-flags .dynsym true false false)\n(llvm:section-flags .gnu.hash true false false)\n(llvm:section-flags .note.ABI-tag true false false)\n(llvm:section-flags .note.gnu.build-id true false false)\n(llvm:section-flags .interp true false false)\n(llvm:symbol-entry abort 0 0 0 0)\n(llvm:symbol-entry __cxa_finalize 0 0 0 0)\n(llvm:symbol-entry __libc_start_main 0 0 0 0)\n(llvm:symbol-entry _init 1432 0 1432 1432)\n(llvm:symbol-entry main 1876 68 1876 1876)\n(llvm:symbol-entry _start 1600 52 1600 1600)\n(llvm:symbol-entry abort@GLIBC_2.17 0 0 0 0)\n(llvm:symbol-entry _fini 1944 0 1944 1944)\n(llvm:symbol-entry __cxa_finalize@GLIBC_2.17 0 0 0 0)\n(llvm:symbol-entry __libc_start_main@GLIBC_2.34 0 0 0 0)\n(llvm:symbol-entry frame_dummy 1872 0 1872 1872)\n(llvm:symbol-entry __do_global_dtors_aux 1792 0 1792 1792)\n(llvm:symbol-entry register_tm_clones 1728 0 1728 1728)\n(llvm:symbol-entry deregister_tm_clones 1680 0 1680 1680)\n(llvm:symbol-entry call_weak_fn 1652 20 1652 1652)\n(mapped 0 2216 0)\n(mapped 69056 624 3520)\n(named-region 0 2216 02)\n(named-region 69056 640 03)\n(named-region 568 27 .interp)\n(named-region 596 36 .note.gnu.build-id)\n(named-region 632 32 .note.ABI-tag)\n(named-region 664 28 .gnu.hash)\n(named-region 696 216 .dynsym)\n(named-region 912 141 .dynstr)\n(named-region 1054 18 .gnu.version)\n(named-region 1072 48 .gnu.version_r)\n(named-region 1120 216 .rela.dyn)\n(named-region 1336 96 .rela.plt)\n(named-region 1432 24 .init)\n(named-region 1456 96 .plt)\n(named-region 1600 344 .text)\n(named-region 1944 20 .fini)\n(named-region 1964 4 .rodata)\n(named-region 1968 60 .eh_frame_hdr)\n(named-region 2032 184 .eh_frame)\n(named-region 69056 8 .init_array)\n(named-region 69064 8 .fini_array)\n(named-region 69072 480 .dynamic)\n(named-region 69552 56 .got)\n(named-region 69608 56 .got.plt)\n(named-region 69664 16 .data)\n(named-region 69680 16 .bss)\n(named-region 0 71 .comment)\n(named-region 0 2184 .symtab)\n(named-region 0 581 .strtab)\n(named-region 0 259 .shstrtab)\n(named-symbol 1652 call_weak_fn)\n(named-symbol 1680 deregister_tm_clones)\n(named-symbol 1728 register_tm_clones)\n(named-symbol 1792 __do_global_dtors_aux)\n(named-symbol 1872 frame_dummy)\n(named-symbol 0 __libc_start_main@GLIBC_2.34)\n(named-symbol 0 __cxa_finalize@GLIBC_2.17)\n(named-symbol 1944 _fini)\n(named-symbol 0 abort@GLIBC_2.17)\n(named-symbol 1600 _start)\n(named-symbol 1876 main)\n(named-symbol 1432 _init)\n(named-symbol 0 __libc_start_main)\n(named-symbol 0 __cxa_finalize)\n(named-symbol 0 abort)\n(require libc.so.6)\n(section 568 27)\n(section 596 36)\n(section 632 32)\n(section 664 28)\n(section 696 216)\n(section 912 141)\n(section 1054 18)\n(section 1072 48)\n(section 1120 216)\n(section 1336 96)\n(section 1432 24)\n(section 1456 96)\n(section 1600 344)\n(section 1944 20)\n(section 1964 4)\n(section 1968 60)\n(section 2032 184)\n(section 69056 8)\n(section 69064 8)\n(section 69072 480)\n(section 69552 56)\n(section 69608 56)\n(section 69664 16)\n(section 69680 16)\n(section 0 71)\n(section 0 2184)\n(section 0 581)\n(section 0 259)\n(segment 0 2216 true false true)\n(segment 69056 640 true true false)\n(subarch v8)\n(symbol-chunk 1652 20 1652)\n(symbol-chunk 1600 52 1600)\n(symbol-chunk 1876 68 1876)\n(symbol-value 1652 1652)\n(symbol-value 1680 1680)\n(symbol-value 1728 1728)\n(symbol-value 1792 1792)\n(symbol-value 1872 1872)\n(symbol-value 1944 1944)\n(symbol-value 1600 1600)\n(symbol-value 1876 1876)\n(symbol-value 1432 1432)\n(symbol-value 0 0)\n(system \"\")\n(vendor \"\")\n"), -Attr("abi-name","\"aarch64-linux-gnu-elf\"")]), -Sections([Section(".shstrtab", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x40\x06\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x48\x1c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x38\x00\x09\x00\x40\x00\x1d\x00\x1c\x00\x06\x00\x00\x00\x04\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x04\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xa8\x08\x00\x00\x00\x00\x00\x00\xa8\x08\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x01\x00\x00\x00\x06\x00\x00\x00\xc0\x0d\x00\x00\x00\x00\x00\x00\xc0\x0d\x01\x00\x00\x00\x00\x00\xc0\x0d\x01"), -Section(".strtab", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x40\x06\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x48\x1c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x38\x00\x09\x00\x40\x00\x1d\x00\x1c\x00\x06\x00\x00\x00\x04\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x04\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xa8\x08\x00\x00\x00\x00\x00\x00\xa8\x08\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x01\x00\x00\x00\x06\x00\x00\x00\xc0\x0d\x00\x00\x00\x00\x00\x00\xc0\x0d\x01\x00\x00\x00\x00\x00\xc0\x0d\x01\x00\x00\x00\x00\x00\x70\x02\x00\x00\x00\x00\x00\x00\x80\x02\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x02\x00\x00\x00\x06\x00\x00\x00\xd0\x0d\x00\x00\x00\x00\x00\x00\xd0\x0d\x01\x00\x00\x00\x00\x00\xd0\x0d\x01\x00\x00\x00\x00\x00\xe0\x01\x00\x00\x00\x00\x00\x00\xe0\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x04\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x50\xe5\x74\x64\x04\x00\x00\x00\xb0\x07\x00\x00\x00\x00\x00\x00\xb0\x07\x00\x00\x00\x00\x00\x00\xb0\x07\x00\x00\x00\x00\x00\x00\x3c\x00\x00\x00\x00\x00\x00\x00\x3c\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x51\xe5\x74\x64\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x52\xe5\x74\x64\x04\x00\x00\x00\xc0\x0d\x00\x00\x00\x00\x00\x00\xc0\x0d\x01\x00\x00\x00\x00\x00\xc0\x0d\x01\x00\x00\x00\x00\x00\x40\x02\x00\x00\x00\x00\x00\x00\x40\x02\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x2f\x6c\x69\x62\x2f\x6c\x64\x2d\x6c\x69\x6e\x75\x78"), -Section(".symtab", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x40\x06\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x48\x1c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x38\x00\x09\x00\x40\x00\x1d\x00\x1c\x00\x06\x00\x00\x00\x04\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x04\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xa8\x08\x00\x00\x00\x00\x00\x00\xa8\x08\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x01\x00\x00\x00\x06\x00\x00\x00\xc0\x0d\x00\x00\x00\x00\x00\x00\xc0\x0d\x01\x00\x00\x00\x00\x00\xc0\x0d\x01\x00\x00\x00\x00\x00\x70\x02\x00\x00\x00\x00\x00\x00\x80\x02\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x02\x00\x00\x00\x06\x00\x00\x00\xd0\x0d\x00\x00\x00\x00\x00\x00\xd0\x0d\x01\x00\x00\x00\x00\x00\xd0\x0d\x01\x00\x00\x00\x00\x00\xe0\x01\x00\x00\x00\x00\x00\x00\xe0\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x04\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x50\xe5\x74\x64\x04\x00\x00\x00\xb0\x07\x00\x00\x00\x00\x00\x00\xb0\x07\x00\x00\x00\x00\x00\x00\xb0\x07\x00\x00\x00\x00\x00\x00\x3c\x00\x00\x00\x00\x00\x00\x00\x3c\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x51\xe5\x74\x64\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x52\xe5\x74\x64\x04\x00\x00\x00\xc0\x0d\x00\x00\x00\x00\x00\x00\xc0\x0d\x01\x00\x00\x00\x00\x00\xc0\x0d\x01\x00\x00\x00\x00\x00\x40\x02\x00\x00\x00\x00\x00\x00\x40\x02\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x2f\x6c\x69\x62\x2f\x6c\x64\x2d\x6c\x69\x6e\x75\x78\x2d\x61\x61\x72\x63\x68\x36\x34\x2e\x73\x6f\x2e\x31\x00\x00\x04\x00\x00\x00\x14\x00\x00\x00\x03\x00\x00\x00\x47\x4e\x55\x00\x55\x30\xfa\xba\x8e\x2c\x9e\x4e\x53\xc2\x24\xc0\x06\x53\x14\xe3\x3d\x35\x7d\xcd\x04\x00\x00\x00\x10\x00\x00\x00\x01\x00\x00\x00\x47\x4e\x55\x00\x00\x00\x00\x00\x03\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x01\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x0b\x00\x98\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x17\x00\x20\x10\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x48\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x22\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x22\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x73\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5f\x5f\x63\x78\x61\x5f\x66\x69\x6e\x61\x6c\x69\x7a\x65\x00\x5f\x5f\x6c\x69\x62\x63\x5f\x73\x74\x61\x72\x74\x5f\x6d\x61\x69\x6e\x00\x61\x62\x6f\x72\x74\x00\x6c\x69\x62\x63\x2e\x73\x6f\x2e\x36\x00\x47\x4c\x49\x42\x43\x5f\x32\x2e\x31\x37\x00\x47\x4c\x49\x42\x43\x5f\x32\x2e\x33\x34\x00\x5f\x49\x54\x4d\x5f\x64\x65\x72\x65\x67\x69\x73\x74\x65\x72\x54\x4d\x43\x6c\x6f\x6e\x65\x54\x61\x62\x6c\x65\x00\x5f\x5f\x67\x6d\x6f\x6e\x5f\x73\x74\x61\x72\x74\x5f\x5f\x00\x5f\x49\x54\x4d\x5f\x72\x65\x67\x69\x73\x74\x65\x72\x54\x4d\x43\x6c\x6f\x6e\x65\x54\x61\x62\x6c\x65\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x01\x00\x03\x00\x01\x00\x03\x00\x01\x00\x01\x00\x02\x00\x28\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x97\x91\x96\x06\x00\x00\x03\x00\x32\x00\x00\x00\x10\x00\x00\x00\xb4\x91\x96\x06\x00\x00\x02\x00\x3d\x00\x00\x00\x00\x00\x00\x00\xc0\x0d\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x50\x07\x00\x00\x00\x00\x00\x00\xc8\x0d\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\xc8\x0f\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x34\x10\x01\x00\x00\x00\x00\x00\xd8\x0f\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x54\x07\x00\x00\x00\x00\x00\x00\x28\x10\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x28\x10\x01\x00\x00\x00\x00\x00\xb8\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xc0\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xd0\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe0\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x08\x10\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x10\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x18\x10\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1f\x20\x03\xd5\xfd\x7b\xbf\xa9\xfd\x03\x00\x91\x34\x00\x00\x94\xfd\x7b\xc1\xa8\xc0\x03\x5f\xd6\xf0\x7b\xbf\xa9\x90\x00\x00\x90\x11\xfe\x47\xf9\x10\xe2\x3f\x91\x20\x02\x1f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x90\x00\x00\xb0\x11\x02\x40\xf9\x10\x02\x00\x91\x20\x02\x1f\xd6\x90\x00\x00\xb0\x11\x06\x40\xf9\x10\x22\x00\x91\x20\x02\x1f\xd6\x90\x00\x00\xb0\x11\x0a\x40\xf9\x10\x42\x00\x91\x20\x02\x1f\xd6\x90\x00\x00\xb0\x11\x0e\x40\xf9\x10\x62\x00\x91\x20\x02\x1f\xd6\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1f\x20\x03\xd5\x1d\x00\x80\xd2\x1e\x00\x80\xd2\xe5\x03\x00\xaa\xe1\x03\x40\xf9\xe2\x23\x00\x91\xe6\x03\x00\x91\x80\x00\x00\x90\x00\xec\x47\xf9\x03\x00\x80\xd2\x04\x00\x80\xd2\xd9\xff\xff\x97\xe4\xff\xff\x97\x80\x00\x00\x90\x00\xe8\x47\xf9\x40\x00\x00\xb4\xdc\xff\xff\x17\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x80\x00\x00\xb0\x00\xc0\x00\x91\x81\x00\x00\xb0\x21\xc0\x00\x91\x3f\x00\x00\xeb\xc0\x00\x00\x54\x81\x00\x00\x90\x21\xdc\x47\xf9\x61\x00\x00\xb4\xf0\x03\x01\xaa\x00\x02\x1f\xd6\xc0\x03\x5f\xd6\x80\x00\x00\xb0\x00\xc0\x00\x91\x81\x00\x00\xb0\x21\xc0\x00\x91\x21\x00\x00\xcb\x22\xfc\x7f\xd3\x41\x0c\x81\x8b\x21\xfc\x41\x93\xc1\x00\x00\xb4\x82\x00\x00\x90\x42\xf0\x47\xf9\x62\x00\x00\xb4\xf0\x03\x02\xaa\x00\x02\x1f\xd6\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\xfd\x7b\xbe\xa9\xfd\x03\x00\x91\xf3\x0b\x00\xf9\x93\x00\x00\xb0\x60\xc2\x40\x39\x40\x01\x00\x35\x80\x00\x00\x90\x00\xe0\x47\xf9\x80\x00\x00\xb4\x80\x00\x00\xb0\x00\x14\x40\xf9\xad\xff\xff\x97\xd8\xff\xff\x97\x20\x00\x80\x52\x60\xc2\x00\x39\xf3\x0b\x40\xf9\xfd\x7b\xc2\xa8\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\xdc\xff\xff\x17\xff\x43\x00\xd1\xff\x0f\x00\xb9\x88\x00\x00\x90\x08\xe5\x47\xf9\x08\x01\x40\xb9\x08\x01\x00\x71\xe8\x17\x9f\x1a\x88\x00\x00\x37\x01\x00\x00\x14\xff\x0f\x00\xb9\x04\x00\x00\x14\x28\x00\x80\x52\xe8\x0f\x00\xb9\x01\x00\x00\x14\xe0\x0f\x40\xb9\xff\x43\x00\x91\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\xfd\x7b\xbf\xa9\xfd\x03\x00\x91\xfd\x7b\xc1\xa8\xc0\x03\x5f\xd6\x01\x00\x02\x00\x01\x1b\x03\x3b\x3c\x00\x00\x00\x06\x00\x00\x00\x90\xfe\xff\xff\x54\x00\x00\x00\xe0\xfe\xff\xff\x68\x00\x00\x00\x10\xff\xff\xff\x7c\x00\x00\x00\x50\xff\xff\xff\x90\x00\x00\x00\xa0\xff\xff\xff\xb4\x00\x00\x00\xa4\xff\xff\xff\xdc\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x01\x7a\x52\x00\x04\x78\x1e\x01\x1b\x0c\x1f\x00\x10\x00\x00\x00\x18\x00\x00\x00\x34\xfe\xff\xff\x34\x00\x00\x00\x00\x41\x07\x1e\x10\x00\x00\x00\x2c\x00\x00\x00\x70\xfe\xff\xff\x30\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x40\x00\x00\x00\x8c\xfe\xff\xff\x3c\x00\x00\x00\x00\x00\x00\x00\x20\x00\x00\x00\x54\x00\x00\x00\xb8\xfe\xff\xff\x48\x00\x00\x00\x00\x41\x0e\x20\x9d\x04\x9e\x03\x42\x93\x02\x4e\xde\xdd\xd3\x0e\x00\x00\x00\x00\x10\x00\x00\x00\x78\x00\x00\x00\xe4\xfe\xff\xff\x04\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x01\x7a\x52\x00\x01\x7c\x1e\x01"), -Section(".comment", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x40\x06\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x48\x1c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x38\x00\x09\x00\x40\x00\x1d\x00\x1c\x00\x06\x00\x00\x00\x04\x00\x00"), -Section(".interp", 0x238, "\x2f\x6c\x69\x62\x2f\x6c\x64\x2d\x6c\x69\x6e\x75\x78\x2d\x61\x61\x72\x63\x68\x36\x34\x2e\x73\x6f\x2e\x31\x00"), -Section(".note.gnu.build-id", 0x254, "\x04\x00\x00\x00\x14\x00\x00\x00\x03\x00\x00\x00\x47\x4e\x55\x00\x55\x30\xfa\xba\x8e\x2c\x9e\x4e\x53\xc2\x24\xc0\x06\x53\x14\xe3\x3d\x35\x7d\xcd"), -Section(".note.ABI-tag", 0x278, "\x04\x00\x00\x00\x10\x00\x00\x00\x01\x00\x00\x00\x47\x4e\x55\x00\x00\x00\x00\x00\x03\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00"), -Section(".gnu.hash", 0x298, "\x01\x00\x00\x00\x01\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".dynsym", 0x2B8, "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x0b\x00\x98\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x17\x00\x20\x10\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x48\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x22\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x22\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x73\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".dynstr", 0x390, "\x00\x5f\x5f\x63\x78\x61\x5f\x66\x69\x6e\x61\x6c\x69\x7a\x65\x00\x5f\x5f\x6c\x69\x62\x63\x5f\x73\x74\x61\x72\x74\x5f\x6d\x61\x69\x6e\x00\x61\x62\x6f\x72\x74\x00\x6c\x69\x62\x63\x2e\x73\x6f\x2e\x36\x00\x47\x4c\x49\x42\x43\x5f\x32\x2e\x31\x37\x00\x47\x4c\x49\x42\x43\x5f\x32\x2e\x33\x34\x00\x5f\x49\x54\x4d\x5f\x64\x65\x72\x65\x67\x69\x73\x74\x65\x72\x54\x4d\x43\x6c\x6f\x6e\x65\x54\x61\x62\x6c\x65\x00\x5f\x5f\x67\x6d\x6f\x6e\x5f\x73\x74\x61\x72\x74\x5f\x5f\x00\x5f\x49\x54\x4d\x5f\x72\x65\x67\x69\x73\x74\x65\x72\x54\x4d\x43\x6c\x6f\x6e\x65\x54\x61\x62\x6c\x65\x00"), -Section(".gnu.version", 0x41E, "\x00\x00\x00\x00\x00\x00\x02\x00\x01\x00\x03\x00\x01\x00\x03\x00\x01\x00"), -Section(".gnu.version_r", 0x430, "\x01\x00\x02\x00\x28\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x97\x91\x96\x06\x00\x00\x03\x00\x32\x00\x00\x00\x10\x00\x00\x00\xb4\x91\x96\x06\x00\x00\x02\x00\x3d\x00\x00\x00\x00\x00\x00\x00"), -Section(".rela.dyn", 0x460, "\xc0\x0d\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x50\x07\x00\x00\x00\x00\x00\x00\xc8\x0d\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\xc8\x0f\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x34\x10\x01\x00\x00\x00\x00\x00\xd8\x0f\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x54\x07\x00\x00\x00\x00\x00\x00\x28\x10\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x28\x10\x01\x00\x00\x00\x00\x00\xb8\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xc0\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xd0\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe0\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".rela.plt", 0x538, "\x00\x10\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x08\x10\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x10\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x18\x10\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".init", 0x598, "\x1f\x20\x03\xd5\xfd\x7b\xbf\xa9\xfd\x03\x00\x91\x34\x00\x00\x94\xfd\x7b\xc1\xa8\xc0\x03\x5f\xd6"), -Section(".plt", 0x5B0, "\xf0\x7b\xbf\xa9\x90\x00\x00\x90\x11\xfe\x47\xf9\x10\xe2\x3f\x91\x20\x02\x1f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x90\x00\x00\xb0\x11\x02\x40\xf9\x10\x02\x00\x91\x20\x02\x1f\xd6\x90\x00\x00\xb0\x11\x06\x40\xf9\x10\x22\x00\x91\x20\x02\x1f\xd6\x90\x00\x00\xb0\x11\x0a\x40\xf9\x10\x42\x00\x91\x20\x02\x1f\xd6\x90\x00\x00\xb0\x11\x0e\x40\xf9\x10\x62\x00\x91\x20\x02\x1f\xd6"), -Section(".fini", 0x798, "\x1f\x20\x03\xd5\xfd\x7b\xbf\xa9\xfd\x03\x00\x91\xfd\x7b\xc1\xa8\xc0\x03\x5f\xd6"), -Section(".rodata", 0x7AC, "\x01\x00\x02\x00"), -Section(".eh_frame_hdr", 0x7B0, "\x01\x1b\x03\x3b\x3c\x00\x00\x00\x06\x00\x00\x00\x90\xfe\xff\xff\x54\x00\x00\x00\xe0\xfe\xff\xff\x68\x00\x00\x00\x10\xff\xff\xff\x7c\x00\x00\x00\x50\xff\xff\xff\x90\x00\x00\x00\xa0\xff\xff\xff\xb4\x00\x00\x00\xa4\xff\xff\xff\xdc\x00\x00\x00"), -Section(".eh_frame", 0x7F0, "\x10\x00\x00\x00\x00\x00\x00\x00\x01\x7a\x52\x00\x04\x78\x1e\x01\x1b\x0c\x1f\x00\x10\x00\x00\x00\x18\x00\x00\x00\x34\xfe\xff\xff\x34\x00\x00\x00\x00\x41\x07\x1e\x10\x00\x00\x00\x2c\x00\x00\x00\x70\xfe\xff\xff\x30\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x40\x00\x00\x00\x8c\xfe\xff\xff\x3c\x00\x00\x00\x00\x00\x00\x00\x20\x00\x00\x00\x54\x00\x00\x00\xb8\xfe\xff\xff\x48\x00\x00\x00\x00\x41\x0e\x20\x9d\x04\x9e\x03\x42\x93\x02\x4e\xde\xdd\xd3\x0e\x00\x00\x00\x00\x10\x00\x00\x00\x78\x00\x00\x00\xe4\xfe\xff\xff\x04\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x01\x7a\x52\x00\x01\x7c\x1e\x01\x1b\x0c\x1f\x00\x14\x00\x00\x00\x18\x00\x00\x00\xc0\xfe\xff\xff\x44\x00\x00\x00\x00\x44\x0e\x10\x7c\x0e\x00\x00\x00\x00\x00\x00"), -Section(".fini_array", 0x10DC8, "\x00\x07\x00\x00\x00\x00\x00\x00"), -Section(".dynamic", 0x10DD0, "\x01\x00\x00\x00\x00\x00\x00\x00\x28\x00\x00\x00\x00\x00\x00\x00\x0c\x00\x00\x00\x00\x00\x00\x00\x98\x05\x00\x00\x00\x00\x00\x00\x0d\x00\x00\x00\x00\x00\x00\x00\x98\x07\x00\x00\x00\x00\x00\x00\x19\x00\x00\x00\x00\x00\x00\x00\xc0\x0d\x01\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x1a\x00\x00\x00\x00\x00\x00\x00\xc8\x0d\x01\x00\x00\x00\x00\x00\x1c\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\xf5\xfe\xff\x6f\x00\x00\x00\x00\x98\x02\x00\x00\x00\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x90\x03\x00\x00\x00\x00\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\xb8\x02\x00\x00\x00\x00\x00\x00\x0a\x00\x00\x00\x00\x00\x00\x00\x8d\x00\x00\x00\x00\x00\x00\x00\x0b\x00\x00\x00\x00\x00\x00\x00\x18\x00\x00\x00\x00\x00\x00\x00\x15\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\xe8\x0f\x01\x00\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x60\x00\x00\x00\x00\x00\x00\x00\x14\x00\x00\x00\x00\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x17\x00\x00\x00\x00\x00\x00\x00\x38\x05\x00\x00\x00\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x60\x04\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\xd8\x00\x00\x00\x00\x00\x00\x00\x09\x00\x00\x00\x00\x00\x00\x00\x18\x00\x00\x00\x00\x00\x00\x00\xfb\xff\xff\x6f\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\xfe\xff\xff\x6f\x00\x00\x00\x00\x30\x04\x00\x00\x00\x00\x00\x00\xff\xff\xff\x6f\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\xf0\xff\xff\x6f\x00\x00\x00\x00\x1e\x04\x00\x00\x00\x00\x00\x00\xf9\xff\xff\x6f\x00\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".init_array", 0x10DC0, "\x50\x07\x00\x00\x00\x00\x00\x00"), -Section(".got", 0x10FB0, "\xd0\x0d\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x34\x10\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x54\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".got.plt", 0x10FE8, "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xb0\x05\x00\x00\x00\x00\x00\x00\xb0\x05\x00\x00\x00\x00\x00\x00\xb0\x05\x00\x00\x00\x00\x00\x00\xb0\x05\x00\x00\x00\x00\x00\x00"), -Section(".data", 0x11020, "\x00\x00\x00\x00\x00\x00\x00\x00\x28\x10\x01\x00\x00\x00\x00\x00"), -Section(".text", 0x640, "\x1f\x20\x03\xd5\x1d\x00\x80\xd2\x1e\x00\x80\xd2\xe5\x03\x00\xaa\xe1\x03\x40\xf9\xe2\x23\x00\x91\xe6\x03\x00\x91\x80\x00\x00\x90\x00\xec\x47\xf9\x03\x00\x80\xd2\x04\x00\x80\xd2\xd9\xff\xff\x97\xe4\xff\xff\x97\x80\x00\x00\x90\x00\xe8\x47\xf9\x40\x00\x00\xb4\xdc\xff\xff\x17\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x80\x00\x00\xb0\x00\xc0\x00\x91\x81\x00\x00\xb0\x21\xc0\x00\x91\x3f\x00\x00\xeb\xc0\x00\x00\x54\x81\x00\x00\x90\x21\xdc\x47\xf9\x61\x00\x00\xb4\xf0\x03\x01\xaa\x00\x02\x1f\xd6\xc0\x03\x5f\xd6\x80\x00\x00\xb0\x00\xc0\x00\x91\x81\x00\x00\xb0\x21\xc0\x00\x91\x21\x00\x00\xcb\x22\xfc\x7f\xd3\x41\x0c\x81\x8b\x21\xfc\x41\x93\xc1\x00\x00\xb4\x82\x00\x00\x90\x42\xf0\x47\xf9\x62\x00\x00\xb4\xf0\x03\x02\xaa\x00\x02\x1f\xd6\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\xfd\x7b\xbe\xa9\xfd\x03\x00\x91\xf3\x0b\x00\xf9\x93\x00\x00\xb0\x60\xc2\x40\x39\x40\x01\x00\x35\x80\x00\x00\x90\x00\xe0\x47\xf9\x80\x00\x00\xb4\x80\x00\x00\xb0\x00\x14\x40\xf9\xad\xff\xff\x97\xd8\xff\xff\x97\x20\x00\x80\x52\x60\xc2\x00\x39\xf3\x0b\x40\xf9\xfd\x7b\xc2\xa8\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\xdc\xff\xff\x17\xff\x43\x00\xd1\xff\x0f\x00\xb9\x88\x00\x00\x90\x08\xe5\x47\xf9\x08\x01\x40\xb9\x08\x01\x00\x71\xe8\x17\x9f\x1a\x88\x00\x00\x37\x01\x00\x00\x14\xff\x0f\x00\xb9\x04\x00\x00\x14\x28\x00\x80\x52\xe8\x0f\x00\xb9\x01\x00\x00\x14\xe0\x0f\x40\xb9\xff\x43\x00\x91\xc0\x03\x5f\xd6")]), -Memmap([Annotation(Region(0x0,0x8A7), Attr("segment","02 0 2216")), -Annotation(Region(0x640,0x673), Attr("symbol","\"_start\"")), -Annotation(Region(0x0,0x102), Attr("section","\".shstrtab\"")), -Annotation(Region(0x0,0x244), Attr("section","\".strtab\"")), -Annotation(Region(0x0,0x887), Attr("section","\".symtab\"")), -Annotation(Region(0x0,0x46), Attr("section","\".comment\"")), -Annotation(Region(0x238,0x252), Attr("section","\".interp\"")), -Annotation(Region(0x254,0x277), Attr("section","\".note.gnu.build-id\"")), -Annotation(Region(0x278,0x297), Attr("section","\".note.ABI-tag\"")), -Annotation(Region(0x298,0x2B3), Attr("section","\".gnu.hash\"")), -Annotation(Region(0x2B8,0x38F), Attr("section","\".dynsym\"")), -Annotation(Region(0x390,0x41C), Attr("section","\".dynstr\"")), -Annotation(Region(0x41E,0x42F), Attr("section","\".gnu.version\"")), -Annotation(Region(0x430,0x45F), Attr("section","\".gnu.version_r\"")), -Annotation(Region(0x460,0x537), Attr("section","\".rela.dyn\"")), -Annotation(Region(0x538,0x597), Attr("section","\".rela.plt\"")), -Annotation(Region(0x598,0x5AF), Attr("section","\".init\"")), -Annotation(Region(0x5B0,0x60F), Attr("section","\".plt\"")), -Annotation(Region(0x598,0x5AF), Attr("code-region","()")), -Annotation(Region(0x5B0,0x60F), Attr("code-region","()")), -Annotation(Region(0x640,0x673), Attr("symbol-info","_start 0x640 52")), -Annotation(Region(0x674,0x687), Attr("symbol","\"call_weak_fn\"")), -Annotation(Region(0x674,0x687), Attr("symbol-info","call_weak_fn 0x674 20")), -Annotation(Region(0x754,0x797), Attr("symbol","\"main\"")), -Annotation(Region(0x754,0x797), Attr("symbol-info","main 0x754 68")), -Annotation(Region(0x798,0x7AB), Attr("section","\".fini\"")), -Annotation(Region(0x7AC,0x7AF), Attr("section","\".rodata\"")), -Annotation(Region(0x7B0,0x7EB), Attr("section","\".eh_frame_hdr\"")), -Annotation(Region(0x7F0,0x8A7), Attr("section","\".eh_frame\"")), -Annotation(Region(0x10DC0,0x1102F), Attr("segment","03 0x10DC0 640")), -Annotation(Region(0x10DC8,0x10DCF), Attr("section","\".fini_array\"")), -Annotation(Region(0x10DD0,0x10FAF), Attr("section","\".dynamic\"")), -Annotation(Region(0x10DC0,0x10DC7), Attr("section","\".init_array\"")), -Annotation(Region(0x10FB0,0x10FE7), Attr("section","\".got\"")), -Annotation(Region(0x10FE8,0x1101F), Attr("section","\".got.plt\"")), -Annotation(Region(0x11020,0x1102F), Attr("section","\".data\"")), -Annotation(Region(0x640,0x797), Attr("section","\".text\"")), -Annotation(Region(0x640,0x797), Attr("code-region","()")), -Annotation(Region(0x798,0x7AB), Attr("code-region","()"))]), -Program(Tid(1_502, "%000005de"), Attrs([]), - Subs([Sub(Tid(1_450, "@__cxa_finalize"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x5E0"), -Attr("stub","()")]), "__cxa_finalize", Args([Arg(Tid(1_503, "%000005df"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("__cxa_finalize_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(937, "@__cxa_finalize"), - Attrs([Attr("address","0x5E0")]), Phis([]), -Defs([Def(Tid(1_185, "%000004a1"), Attrs([Attr("address","0x5E0"), -Attr("insn","adrp x16, #69632")]), Var("R16",Imm(64)), Int(69632,64)), -Def(Tid(1_192, "%000004a8"), Attrs([Attr("address","0x5E4"), -Attr("insn","ldr x17, [x16, #0x8]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(1_198, "%000004ae"), Attrs([Attr("address","0x5E8"), -Attr("insn","add x16, x16, #0x8")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(8,64)))]), Jmps([Call(Tid(1_203, "%000004b3"), - Attrs([Attr("address","0x5EC"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), -Sub(Tid(1_451, "@__do_global_dtors_aux"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x700")]), - "__do_global_dtors_aux", Args([Arg(Tid(1_504, "%000005e0"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("__do_global_dtors_aux_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(658, "@__do_global_dtors_aux"), - Attrs([Attr("address","0x700")]), Phis([]), Defs([Def(Tid(662, "%00000296"), - Attrs([Attr("address","0x700"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("#3",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(18446744073709551584,64))), -Def(Tid(668, "%0000029c"), Attrs([Attr("address","0x700"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("#3",Imm(64)),Var("R29",Imm(64)),LittleEndian(),64)), -Def(Tid(674, "%000002a2"), Attrs([Attr("address","0x700"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("#3",Imm(64)),Int(8,64)),Var("R30",Imm(64)),LittleEndian(),64)), -Def(Tid(678, "%000002a6"), Attrs([Attr("address","0x700"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("R31",Imm(64)), -Var("#3",Imm(64))), Def(Tid(684, "%000002ac"), - Attrs([Attr("address","0x704"), Attr("insn","mov x29, sp")]), - Var("R29",Imm(64)), Var("R31",Imm(64))), Def(Tid(692, "%000002b4"), - Attrs([Attr("address","0x708"), Attr("insn","str x19, [sp, #0x10]")]), - Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(16,64)),Var("R19",Imm(64)),LittleEndian(),64)), -Def(Tid(697, "%000002b9"), Attrs([Attr("address","0x70C"), -Attr("insn","adrp x19, #69632")]), Var("R19",Imm(64)), Int(69632,64)), -Def(Tid(704, "%000002c0"), Attrs([Attr("address","0x710"), -Attr("insn","ldrb w0, [x19, #0x30]")]), Var("R0",Imm(64)), -UNSIGNED(64,Load(Var("mem",Mem(64,8)),PLUS(Var("R19",Imm(64)),Int(48,64)),LittleEndian(),8)))]), -Jmps([Goto(Tid(711, "%000002c7"), Attrs([Attr("address","0x714"), -Attr("insn","cbnz w0, #0x28")]), - NEQ(Extract(31,0,Var("R0",Imm(64))),Int(0,32)), -Direct(Tid(709, "%000002c5"))), Goto(Tid(1_491, "%000005d3"), Attrs([]), - Int(1,1), Direct(Tid(882, "%00000372")))])), Blk(Tid(882, "%00000372"), - Attrs([Attr("address","0x718")]), Phis([]), Defs([Def(Tid(885, "%00000375"), - Attrs([Attr("address","0x718"), Attr("insn","adrp x0, #65536")]), - Var("R0",Imm(64)), Int(65536,64)), Def(Tid(892, "%0000037c"), - Attrs([Attr("address","0x71C"), Attr("insn","ldr x0, [x0, #0xfc0]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(4032,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(898, "%00000382"), Attrs([Attr("address","0x720"), -Attr("insn","cbz x0, #0x10")]), EQ(Var("R0",Imm(64)),Int(0,64)), -Direct(Tid(896, "%00000380"))), Goto(Tid(1_492, "%000005d4"), Attrs([]), - Int(1,1), Direct(Tid(921, "%00000399")))])), Blk(Tid(921, "%00000399"), - Attrs([Attr("address","0x724")]), Phis([]), Defs([Def(Tid(924, "%0000039c"), - Attrs([Attr("address","0x724"), Attr("insn","adrp x0, #69632")]), - Var("R0",Imm(64)), Int(69632,64)), Def(Tid(931, "%000003a3"), - Attrs([Attr("address","0x728"), Attr("insn","ldr x0, [x0, #0x28]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(40,64)),LittleEndian(),64)), -Def(Tid(936, "%000003a8"), Attrs([Attr("address","0x72C"), -Attr("insn","bl #-0x14c")]), Var("R30",Imm(64)), Int(1840,64))]), -Jmps([Call(Tid(939, "%000003ab"), Attrs([Attr("address","0x72C"), -Attr("insn","bl #-0x14c")]), Int(1,1), -(Direct(Tid(1_450, "@__cxa_finalize")),Direct(Tid(896, "%00000380"))))])), -Blk(Tid(896, "%00000380"), Attrs([Attr("address","0x730")]), Phis([]), -Defs([Def(Tid(904, "%00000388"), Attrs([Attr("address","0x730"), -Attr("insn","bl #-0xa0")]), Var("R30",Imm(64)), Int(1844,64))]), -Jmps([Call(Tid(906, "%0000038a"), Attrs([Attr("address","0x730"), -Attr("insn","bl #-0xa0")]), Int(1,1), -(Direct(Tid(1_464, "@deregister_tm_clones")),Direct(Tid(908, "%0000038c"))))])), -Blk(Tid(908, "%0000038c"), Attrs([Attr("address","0x734")]), Phis([]), -Defs([Def(Tid(911, "%0000038f"), Attrs([Attr("address","0x734"), -Attr("insn","mov w0, #0x1")]), Var("R0",Imm(64)), Int(1,64)), -Def(Tid(919, "%00000397"), Attrs([Attr("address","0x738"), -Attr("insn","strb w0, [x19, #0x30]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R19",Imm(64)),Int(48,64)),Extract(7,0,Var("R0",Imm(64))),LittleEndian(),8))]), -Jmps([Goto(Tid(1_493, "%000005d5"), Attrs([]), Int(1,1), -Direct(Tid(709, "%000002c5")))])), Blk(Tid(709, "%000002c5"), - Attrs([Attr("address","0x73C")]), Phis([]), Defs([Def(Tid(719, "%000002cf"), - Attrs([Attr("address","0x73C"), Attr("insn","ldr x19, [sp, #0x10]")]), - Var("R19",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(16,64)),LittleEndian(),64)), -Def(Tid(726, "%000002d6"), Attrs([Attr("address","0x740"), -Attr("insn","ldp x29, x30, [sp], #0x20")]), Var("R29",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(731, "%000002db"), Attrs([Attr("address","0x740"), -Attr("insn","ldp x29, x30, [sp], #0x20")]), Var("R30",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(735, "%000002df"), Attrs([Attr("address","0x740"), -Attr("insn","ldp x29, x30, [sp], #0x20")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(32,64)))]), Jmps([Call(Tid(740, "%000002e4"), - Attrs([Attr("address","0x744"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), Sub(Tid(1_455, "@__libc_start_main"), - Attrs([Attr("c.proto","signed (*)(signed (*)(signed , char** , char** );* main, signed , char** , \nvoid* auxv)"), -Attr("address","0x5D0"), Attr("stub","()")]), "__libc_start_main", - Args([Arg(Tid(1_505, "%000005e1"), - Attrs([Attr("c.layout","**[ : 64]"), -Attr("c.data","Top:u64 ptr ptr"), -Attr("c.type","signed (*)(signed , char** , char** );*")]), - Var("__libc_start_main_main",Imm(64)), Var("R0",Imm(64)), In()), -Arg(Tid(1_506, "%000005e2"), Attrs([Attr("c.layout","[signed : 32]"), -Attr("c.data","Top:u32"), Attr("c.type","signed")]), - Var("__libc_start_main_arg2",Imm(32)), LOW(32,Var("R1",Imm(64))), In()), -Arg(Tid(1_507, "%000005e3"), Attrs([Attr("c.layout","**[char : 8]"), -Attr("c.data","Top:u8 ptr ptr"), Attr("c.type","char**")]), - Var("__libc_start_main_arg3",Imm(64)), Var("R2",Imm(64)), Both()), -Arg(Tid(1_508, "%000005e4"), Attrs([Attr("c.layout","*[ : 8]"), -Attr("c.data","{} ptr"), Attr("c.type","void*")]), - Var("__libc_start_main_auxv",Imm(64)), Var("R3",Imm(64)), Both()), -Arg(Tid(1_509, "%000005e5"), Attrs([Attr("c.layout","[signed : 32]"), -Attr("c.data","Top:u32"), Attr("c.type","signed")]), - Var("__libc_start_main_result",Imm(32)), LOW(32,Var("R0",Imm(64))), -Out())]), Blks([Blk(Tid(491, "@__libc_start_main"), - Attrs([Attr("address","0x5D0")]), Phis([]), -Defs([Def(Tid(1_163, "%0000048b"), Attrs([Attr("address","0x5D0"), -Attr("insn","adrp x16, #69632")]), Var("R16",Imm(64)), Int(69632,64)), -Def(Tid(1_170, "%00000492"), Attrs([Attr("address","0x5D4"), -Attr("insn","ldr x17, [x16]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R16",Imm(64)),LittleEndian(),64)), -Def(Tid(1_176, "%00000498"), Attrs([Attr("address","0x5D8"), -Attr("insn","add x16, x16, #0x0")]), Var("R16",Imm(64)), -Var("R16",Imm(64)))]), Jmps([Call(Tid(1_181, "%0000049d"), - Attrs([Attr("address","0x5DC"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), Sub(Tid(1_456, "@_fini"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x798")]), - "_fini", Args([Arg(Tid(1_510, "%000005e6"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("_fini_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(31, "@_fini"), - Attrs([Attr("address","0x798")]), Phis([]), Defs([Def(Tid(37, "%00000025"), - Attrs([Attr("address","0x79C"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("#0",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(18446744073709551600,64))), -Def(Tid(43, "%0000002b"), Attrs([Attr("address","0x79C"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("#0",Imm(64)),Var("R29",Imm(64)),LittleEndian(),64)), -Def(Tid(49, "%00000031"), Attrs([Attr("address","0x79C"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("#0",Imm(64)),Int(8,64)),Var("R30",Imm(64)),LittleEndian(),64)), -Def(Tid(53, "%00000035"), Attrs([Attr("address","0x79C"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("R31",Imm(64)), -Var("#0",Imm(64))), Def(Tid(59, "%0000003b"), Attrs([Attr("address","0x7A0"), -Attr("insn","mov x29, sp")]), Var("R29",Imm(64)), Var("R31",Imm(64))), -Def(Tid(66, "%00000042"), Attrs([Attr("address","0x7A4"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R29",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(71, "%00000047"), Attrs([Attr("address","0x7A4"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R30",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(75, "%0000004b"), Attrs([Attr("address","0x7A4"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(16,64)))]), Jmps([Call(Tid(80, "%00000050"), - Attrs([Attr("address","0x7A8"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), Sub(Tid(1_457, "@_init"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x598")]), - "_init", Args([Arg(Tid(1_511, "%000005e7"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("_init_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(1_275, "@_init"), - Attrs([Attr("address","0x598")]), Phis([]), -Defs([Def(Tid(1_281, "%00000501"), Attrs([Attr("address","0x59C"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("#6",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(18446744073709551600,64))), -Def(Tid(1_287, "%00000507"), Attrs([Attr("address","0x59C"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("#6",Imm(64)),Var("R29",Imm(64)),LittleEndian(),64)), -Def(Tid(1_293, "%0000050d"), Attrs([Attr("address","0x59C"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("#6",Imm(64)),Int(8,64)),Var("R30",Imm(64)),LittleEndian(),64)), -Def(Tid(1_297, "%00000511"), Attrs([Attr("address","0x59C"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("R31",Imm(64)), -Var("#6",Imm(64))), Def(Tid(1_303, "%00000517"), - Attrs([Attr("address","0x5A0"), Attr("insn","mov x29, sp")]), - Var("R29",Imm(64)), Var("R31",Imm(64))), Def(Tid(1_308, "%0000051c"), - Attrs([Attr("address","0x5A4"), Attr("insn","bl #0xd0")]), - Var("R30",Imm(64)), Int(1448,64))]), Jmps([Call(Tid(1_310, "%0000051e"), - Attrs([Attr("address","0x5A4"), Attr("insn","bl #0xd0")]), Int(1,1), -(Direct(Tid(1_462, "@call_weak_fn")),Direct(Tid(1_312, "%00000520"))))])), -Blk(Tid(1_312, "%00000520"), Attrs([Attr("address","0x5A8")]), Phis([]), -Defs([Def(Tid(1_317, "%00000525"), Attrs([Attr("address","0x5A8"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R29",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(1_322, "%0000052a"), Attrs([Attr("address","0x5A8"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R30",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(1_326, "%0000052e"), Attrs([Attr("address","0x5A8"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(16,64)))]), Jmps([Call(Tid(1_331, "%00000533"), - Attrs([Attr("address","0x5AC"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), Sub(Tid(1_458, "@_start"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x640"), -Attr("entry-point","()")]), "_start", Args([Arg(Tid(1_512, "%000005e8"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("_start_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(428, "@_start"), - Attrs([Attr("address","0x640")]), Phis([]), Defs([Def(Tid(433, "%000001b1"), - Attrs([Attr("address","0x644"), Attr("insn","mov x29, #0x0")]), - Var("R29",Imm(64)), Int(0,64)), Def(Tid(438, "%000001b6"), - Attrs([Attr("address","0x648"), Attr("insn","mov x30, #0x0")]), - Var("R30",Imm(64)), Int(0,64)), Def(Tid(444, "%000001bc"), - Attrs([Attr("address","0x64C"), Attr("insn","mov x5, x0")]), - Var("R5",Imm(64)), Var("R0",Imm(64))), Def(Tid(451, "%000001c3"), - Attrs([Attr("address","0x650"), Attr("insn","ldr x1, [sp]")]), - Var("R1",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(457, "%000001c9"), Attrs([Attr("address","0x654"), -Attr("insn","add x2, sp, #0x8")]), Var("R2",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(8,64))), Def(Tid(463, "%000001cf"), - Attrs([Attr("address","0x658"), Attr("insn","mov x6, sp")]), - Var("R6",Imm(64)), Var("R31",Imm(64))), Def(Tid(468, "%000001d4"), - Attrs([Attr("address","0x65C"), Attr("insn","adrp x0, #65536")]), - Var("R0",Imm(64)), Int(65536,64)), Def(Tid(475, "%000001db"), - Attrs([Attr("address","0x660"), Attr("insn","ldr x0, [x0, #0xfd8]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(4056,64)),LittleEndian(),64)), -Def(Tid(480, "%000001e0"), Attrs([Attr("address","0x664"), -Attr("insn","mov x3, #0x0")]), Var("R3",Imm(64)), Int(0,64)), -Def(Tid(485, "%000001e5"), Attrs([Attr("address","0x668"), -Attr("insn","mov x4, #0x0")]), Var("R4",Imm(64)), Int(0,64)), -Def(Tid(490, "%000001ea"), Attrs([Attr("address","0x66C"), -Attr("insn","bl #-0x9c")]), Var("R30",Imm(64)), Int(1648,64))]), -Jmps([Call(Tid(493, "%000001ed"), Attrs([Attr("address","0x66C"), -Attr("insn","bl #-0x9c")]), Int(1,1), -(Direct(Tid(1_455, "@__libc_start_main")),Direct(Tid(495, "%000001ef"))))])), -Blk(Tid(495, "%000001ef"), Attrs([Attr("address","0x670")]), Phis([]), -Defs([Def(Tid(498, "%000001f2"), Attrs([Attr("address","0x670"), -Attr("insn","bl #-0x70")]), Var("R30",Imm(64)), Int(1652,64))]), -Jmps([Call(Tid(501, "%000001f5"), Attrs([Attr("address","0x670"), -Attr("insn","bl #-0x70")]), Int(1,1), -(Direct(Tid(1_461, "@abort")),Direct(Tid(1_494, "%000005d6"))))])), -Blk(Tid(1_494, "%000005d6"), Attrs([]), Phis([]), Defs([]), -Jmps([Call(Tid(1_495, "%000005d7"), Attrs([]), Int(1,1), -(Direct(Tid(1_462, "@call_weak_fn")),))]))])), Sub(Tid(1_461, "@abort"), - Attrs([Attr("noreturn","()"), Attr("c.proto","void (*)(void)"), -Attr("address","0x600"), Attr("stub","()")]), "abort", Args([]), -Blks([Blk(Tid(499, "@abort"), Attrs([Attr("address","0x600")]), Phis([]), -Defs([Def(Tid(1_229, "%000004cd"), Attrs([Attr("address","0x600"), -Attr("insn","adrp x16, #69632")]), Var("R16",Imm(64)), Int(69632,64)), -Def(Tid(1_236, "%000004d4"), Attrs([Attr("address","0x604"), -Attr("insn","ldr x17, [x16, #0x18]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(24,64)),LittleEndian(),64)), -Def(Tid(1_242, "%000004da"), Attrs([Attr("address","0x608"), -Attr("insn","add x16, x16, #0x18")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(24,64)))]), Jmps([Call(Tid(1_247, "%000004df"), - Attrs([Attr("address","0x60C"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), Sub(Tid(1_462, "@call_weak_fn"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x674")]), - "call_weak_fn", Args([Arg(Tid(1_513, "%000005e9"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("call_weak_fn_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(503, "@call_weak_fn"), - Attrs([Attr("address","0x674")]), Phis([]), Defs([Def(Tid(506, "%000001fa"), - Attrs([Attr("address","0x674"), Attr("insn","adrp x0, #65536")]), - Var("R0",Imm(64)), Int(65536,64)), Def(Tid(513, "%00000201"), - Attrs([Attr("address","0x678"), Attr("insn","ldr x0, [x0, #0xfd0]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(4048,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(519, "%00000207"), Attrs([Attr("address","0x67C"), -Attr("insn","cbz x0, #0x8")]), EQ(Var("R0",Imm(64)),Int(0,64)), -Direct(Tid(517, "%00000205"))), Goto(Tid(1_496, "%000005d8"), Attrs([]), - Int(1,1), Direct(Tid(1_001, "%000003e9")))])), Blk(Tid(517, "%00000205"), - Attrs([Attr("address","0x684")]), Phis([]), Defs([]), -Jmps([Call(Tid(525, "%0000020d"), Attrs([Attr("address","0x684"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))])), -Blk(Tid(1_001, "%000003e9"), Attrs([Attr("address","0x680")]), Phis([]), -Defs([]), Jmps([Goto(Tid(1_004, "%000003ec"), Attrs([Attr("address","0x680"), -Attr("insn","b #-0x90")]), Int(1,1), -Direct(Tid(1_002, "@__gmon_start__")))])), Blk(Tid(1_002, "@__gmon_start__"), - Attrs([Attr("address","0x5F0")]), Phis([]), -Defs([Def(Tid(1_207, "%000004b7"), Attrs([Attr("address","0x5F0"), -Attr("insn","adrp x16, #69632")]), Var("R16",Imm(64)), Int(69632,64)), -Def(Tid(1_214, "%000004be"), Attrs([Attr("address","0x5F4"), -Attr("insn","ldr x17, [x16, #0x10]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(16,64)),LittleEndian(),64)), -Def(Tid(1_220, "%000004c4"), Attrs([Attr("address","0x5F8"), -Attr("insn","add x16, x16, #0x10")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(16,64)))]), Jmps([Call(Tid(1_225, "%000004c9"), - Attrs([Attr("address","0x5FC"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), -Sub(Tid(1_464, "@deregister_tm_clones"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x690")]), - "deregister_tm_clones", Args([Arg(Tid(1_514, "%000005ea"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("deregister_tm_clones_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(531, "@deregister_tm_clones"), - Attrs([Attr("address","0x690")]), Phis([]), Defs([Def(Tid(534, "%00000216"), - Attrs([Attr("address","0x690"), Attr("insn","adrp x0, #69632")]), - Var("R0",Imm(64)), Int(69632,64)), Def(Tid(540, "%0000021c"), - Attrs([Attr("address","0x694"), Attr("insn","add x0, x0, #0x30")]), - Var("R0",Imm(64)), PLUS(Var("R0",Imm(64)),Int(48,64))), -Def(Tid(545, "%00000221"), Attrs([Attr("address","0x698"), -Attr("insn","adrp x1, #69632")]), Var("R1",Imm(64)), Int(69632,64)), -Def(Tid(551, "%00000227"), Attrs([Attr("address","0x69C"), -Attr("insn","add x1, x1, #0x30")]), Var("R1",Imm(64)), -PLUS(Var("R1",Imm(64)),Int(48,64))), Def(Tid(557, "%0000022d"), - Attrs([Attr("address","0x6A0"), Attr("insn","cmp x1, x0")]), - Var("#1",Imm(64)), NOT(Var("R0",Imm(64)))), Def(Tid(562, "%00000232"), - Attrs([Attr("address","0x6A0"), Attr("insn","cmp x1, x0")]), - Var("#2",Imm(64)), PLUS(Var("R1",Imm(64)),NOT(Var("R0",Imm(64))))), -Def(Tid(568, "%00000238"), Attrs([Attr("address","0x6A0"), -Attr("insn","cmp x1, x0")]), Var("VF",Imm(1)), -NEQ(SIGNED(65,PLUS(Var("#2",Imm(64)),Int(1,64))),PLUS(PLUS(SIGNED(65,Var("R1",Imm(64))),SIGNED(65,Var("#1",Imm(64)))),Int(1,65)))), -Def(Tid(574, "%0000023e"), Attrs([Attr("address","0x6A0"), -Attr("insn","cmp x1, x0")]), Var("CF",Imm(1)), -NEQ(UNSIGNED(65,PLUS(Var("#2",Imm(64)),Int(1,64))),PLUS(PLUS(UNSIGNED(65,Var("R1",Imm(64))),UNSIGNED(65,Var("#1",Imm(64)))),Int(1,65)))), -Def(Tid(578, "%00000242"), Attrs([Attr("address","0x6A0"), -Attr("insn","cmp x1, x0")]), Var("ZF",Imm(1)), -EQ(PLUS(Var("#2",Imm(64)),Int(1,64)),Int(0,64))), Def(Tid(582, "%00000246"), - Attrs([Attr("address","0x6A0"), Attr("insn","cmp x1, x0")]), - Var("NF",Imm(1)), Extract(63,63,PLUS(Var("#2",Imm(64)),Int(1,64))))]), -Jmps([Goto(Tid(588, "%0000024c"), Attrs([Attr("address","0x6A4"), -Attr("insn","b.eq #0x18")]), EQ(Var("ZF",Imm(1)),Int(1,1)), -Direct(Tid(586, "%0000024a"))), Goto(Tid(1_497, "%000005d9"), Attrs([]), - Int(1,1), Direct(Tid(971, "%000003cb")))])), Blk(Tid(971, "%000003cb"), - Attrs([Attr("address","0x6A8")]), Phis([]), Defs([Def(Tid(974, "%000003ce"), - Attrs([Attr("address","0x6A8"), Attr("insn","adrp x1, #65536")]), - Var("R1",Imm(64)), Int(65536,64)), Def(Tid(981, "%000003d5"), - Attrs([Attr("address","0x6AC"), Attr("insn","ldr x1, [x1, #0xfb8]")]), - Var("R1",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R1",Imm(64)),Int(4024,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(986, "%000003da"), Attrs([Attr("address","0x6B0"), -Attr("insn","cbz x1, #0xc")]), EQ(Var("R1",Imm(64)),Int(0,64)), -Direct(Tid(586, "%0000024a"))), Goto(Tid(1_498, "%000005da"), Attrs([]), - Int(1,1), Direct(Tid(990, "%000003de")))])), Blk(Tid(586, "%0000024a"), - Attrs([Attr("address","0x6BC")]), Phis([]), Defs([]), -Jmps([Call(Tid(594, "%00000252"), Attrs([Attr("address","0x6BC"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))])), -Blk(Tid(990, "%000003de"), Attrs([Attr("address","0x6B4")]), Phis([]), -Defs([Def(Tid(994, "%000003e2"), Attrs([Attr("address","0x6B4"), -Attr("insn","mov x16, x1")]), Var("R16",Imm(64)), Var("R1",Imm(64)))]), -Jmps([Call(Tid(999, "%000003e7"), Attrs([Attr("address","0x6B8"), -Attr("insn","br x16")]), Int(1,1), (Indirect(Var("R16",Imm(64))),))]))])), -Sub(Tid(1_467, "@frame_dummy"), Attrs([Attr("c.proto","signed (*)(void)"), -Attr("address","0x750")]), "frame_dummy", Args([Arg(Tid(1_515, "%000005eb"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("frame_dummy_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(746, "@frame_dummy"), - Attrs([Attr("address","0x750")]), Phis([]), Defs([]), -Jmps([Call(Tid(748, "%000002ec"), Attrs([Attr("address","0x750"), -Attr("insn","b #-0x90")]), Int(1,1), -(Direct(Tid(1_470, "@register_tm_clones")),))]))])), Sub(Tid(1_468, "@main"), - Attrs([Attr("c.proto","signed (*)(signed argc, const char** argv)"), -Attr("address","0x754")]), "main", Args([Arg(Tid(1_516, "%000005ec"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("main_argc",Imm(32)), -LOW(32,Var("R0",Imm(64))), In()), Arg(Tid(1_517, "%000005ed"), - Attrs([Attr("c.layout","**[char : 8]"), Attr("c.data","Top:u8 ptr ptr"), -Attr("c.type"," const char**")]), Var("main_argv",Imm(64)), -Var("R1",Imm(64)), Both()), Arg(Tid(1_518, "%000005ee"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("main_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(750, "@main"), - Attrs([Attr("address","0x754")]), Phis([]), Defs([Def(Tid(754, "%000002f2"), - Attrs([Attr("address","0x754"), Attr("insn","sub sp, sp, #0x10")]), - Var("R31",Imm(64)), PLUS(Var("R31",Imm(64)),Int(18446744073709551600,64))), -Def(Tid(761, "%000002f9"), Attrs([Attr("address","0x758"), -Attr("insn","str wzr, [sp, #0xc]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(12,64)),Int(0,32),LittleEndian(),32)), -Def(Tid(766, "%000002fe"), Attrs([Attr("address","0x75C"), -Attr("insn","adrp x8, #65536")]), Var("R8",Imm(64)), Int(65536,64)), -Def(Tid(773, "%00000305"), Attrs([Attr("address","0x760"), -Attr("insn","ldr x8, [x8, #0xfc8]")]), Var("R8",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R8",Imm(64)),Int(4040,64)),LittleEndian(),64)), -Def(Tid(780, "%0000030c"), Attrs([Attr("address","0x764"), -Attr("insn","ldr w8, [x8]")]), Var("R8",Imm(64)), -UNSIGNED(64,Load(Var("mem",Mem(64,8)),Var("R8",Imm(64)),LittleEndian(),32))), -Def(Tid(786, "%00000312"), Attrs([Attr("address","0x768"), -Attr("insn","subs w8, w8, #0x0")]), Var("#4",Imm(32)), -PLUS(Extract(31,0,Var("R8",Imm(64))),Int(4294967295,32))), -Def(Tid(791, "%00000317"), Attrs([Attr("address","0x768"), -Attr("insn","subs w8, w8, #0x0")]), Var("VF",Imm(1)), -NEQ(SIGNED(33,PLUS(Var("#4",Imm(32)),Int(1,32))),PLUS(SIGNED(33,Extract(31,0,Var("R8",Imm(64)))),Int(0,33)))), -Def(Tid(796, "%0000031c"), Attrs([Attr("address","0x768"), -Attr("insn","subs w8, w8, #0x0")]), Var("CF",Imm(1)), -NEQ(UNSIGNED(33,PLUS(Var("#4",Imm(32)),Int(1,32))),PLUS(UNSIGNED(33,Extract(31,0,Var("R8",Imm(64)))),Int(4294967296,33)))), -Def(Tid(800, "%00000320"), Attrs([Attr("address","0x768"), -Attr("insn","subs w8, w8, #0x0")]), Var("ZF",Imm(1)), -EQ(PLUS(Var("#4",Imm(32)),Int(1,32)),Int(0,32))), Def(Tid(804, "%00000324"), - Attrs([Attr("address","0x768"), Attr("insn","subs w8, w8, #0x0")]), - Var("NF",Imm(1)), Extract(31,31,PLUS(Var("#4",Imm(32)),Int(1,32)))), -Def(Tid(808, "%00000328"), Attrs([Attr("address","0x768"), -Attr("insn","subs w8, w8, #0x0")]), Var("R8",Imm(64)), -UNSIGNED(64,PLUS(Var("#4",Imm(32)),Int(1,32))))]), -Jmps([Goto(Tid(820, "%00000334"), Attrs([Attr("address","0x76C"), -Attr("insn","cset w8, eq")]), NEQ(Var("ZF",Imm(1)),Int(1,1)), -Direct(Tid(813, "%0000032d"))), Goto(Tid(821, "%00000335"), - Attrs([Attr("address","0x76C"), Attr("insn","cset w8, eq")]), Int(1,1), -Direct(Tid(816, "%00000330")))])), Blk(Tid(816, "%00000330"), Attrs([]), - Phis([]), Defs([Def(Tid(817, "%00000331"), Attrs([Attr("address","0x76C"), -Attr("insn","cset w8, eq")]), Var("R8",Imm(64)), Int(1,64))]), -Jmps([Goto(Tid(823, "%00000337"), Attrs([Attr("address","0x76C"), -Attr("insn","cset w8, eq")]), Int(1,1), Direct(Tid(819, "%00000333")))])), -Blk(Tid(813, "%0000032d"), Attrs([]), Phis([]), -Defs([Def(Tid(814, "%0000032e"), Attrs([Attr("address","0x76C"), -Attr("insn","cset w8, eq")]), Var("R8",Imm(64)), Int(0,64))]), -Jmps([Goto(Tid(822, "%00000336"), Attrs([Attr("address","0x76C"), -Attr("insn","cset w8, eq")]), Int(1,1), Direct(Tid(819, "%00000333")))])), -Blk(Tid(819, "%00000333"), Attrs([]), Phis([]), Defs([]), -Jmps([Goto(Tid(829, "%0000033d"), Attrs([Attr("address","0x770"), -Attr("insn","tbnz w8, #0x0, #0x10")]), - EQ(Extract(0,0,Var("R8",Imm(64))),Int(1,1)), Direct(Tid(827, "%0000033b"))), -Goto(Tid(1_499, "%000005db"), Attrs([]), Int(1,1), -Direct(Tid(867, "%00000363")))])), Blk(Tid(827, "%0000033b"), - Attrs([Attr("address","0x780")]), Phis([]), Defs([Def(Tid(835, "%00000343"), - Attrs([Attr("address","0x780"), Attr("insn","mov w8, #0x1")]), - Var("R8",Imm(64)), Int(1,64)), Def(Tid(843, "%0000034b"), - Attrs([Attr("address","0x784"), Attr("insn","str w8, [sp, #0xc]")]), - Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(12,64)),Extract(31,0,Var("R8",Imm(64))),LittleEndian(),32))]), -Jmps([Goto(Tid(848, "%00000350"), Attrs([Attr("address","0x788"), -Attr("insn","b #0x4")]), Int(1,1), Direct(Tid(846, "%0000034e")))])), -Blk(Tid(867, "%00000363"), Attrs([Attr("address","0x774")]), Phis([]), -Defs([]), Jmps([Goto(Tid(870, "%00000366"), Attrs([Attr("address","0x774"), -Attr("insn","b #0x4")]), Int(1,1), Direct(Tid(868, "%00000364")))])), -Blk(Tid(868, "%00000364"), Attrs([Attr("address","0x778")]), Phis([]), -Defs([Def(Tid(876, "%0000036c"), Attrs([Attr("address","0x778"), -Attr("insn","str wzr, [sp, #0xc]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(12,64)),Int(0,32),LittleEndian(),32))]), -Jmps([Goto(Tid(880, "%00000370"), Attrs([Attr("address","0x77C"), -Attr("insn","b #0x10")]), Int(1,1), Direct(Tid(846, "%0000034e")))])), -Blk(Tid(846, "%0000034e"), Attrs([Attr("address","0x78C")]), Phis([]), -Defs([Def(Tid(854, "%00000356"), Attrs([Attr("address","0x78C"), -Attr("insn","ldr w0, [sp, #0xc]")]), Var("R0",Imm(64)), -UNSIGNED(64,Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(12,64)),LittleEndian(),32))), -Def(Tid(860, "%0000035c"), Attrs([Attr("address","0x790"), -Attr("insn","add sp, sp, #0x10")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(16,64)))]), Jmps([Call(Tid(865, "%00000361"), - Attrs([Attr("address","0x794"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), -Sub(Tid(1_470, "@register_tm_clones"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x6C0")]), - "register_tm_clones", Args([Arg(Tid(1_519, "%000005ef"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("register_tm_clones_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(596, "@register_tm_clones"), Attrs([Attr("address","0x6C0")]), - Phis([]), Defs([Def(Tid(599, "%00000257"), Attrs([Attr("address","0x6C0"), -Attr("insn","adrp x0, #69632")]), Var("R0",Imm(64)), Int(69632,64)), -Def(Tid(605, "%0000025d"), Attrs([Attr("address","0x6C4"), -Attr("insn","add x0, x0, #0x30")]), Var("R0",Imm(64)), -PLUS(Var("R0",Imm(64)),Int(48,64))), Def(Tid(610, "%00000262"), - Attrs([Attr("address","0x6C8"), Attr("insn","adrp x1, #69632")]), - Var("R1",Imm(64)), Int(69632,64)), Def(Tid(616, "%00000268"), - Attrs([Attr("address","0x6CC"), Attr("insn","add x1, x1, #0x30")]), - Var("R1",Imm(64)), PLUS(Var("R1",Imm(64)),Int(48,64))), -Def(Tid(623, "%0000026f"), Attrs([Attr("address","0x6D0"), -Attr("insn","sub x1, x1, x0")]), Var("R1",Imm(64)), -PLUS(PLUS(Var("R1",Imm(64)),NOT(Var("R0",Imm(64)))),Int(1,64))), -Def(Tid(629, "%00000275"), Attrs([Attr("address","0x6D4"), -Attr("insn","lsr x2, x1, #63")]), Var("R2",Imm(64)), -Concat(Int(0,63),Extract(63,63,Var("R1",Imm(64))))), -Def(Tid(636, "%0000027c"), Attrs([Attr("address","0x6D8"), -Attr("insn","add x1, x2, x1, asr #3")]), Var("R1",Imm(64)), -PLUS(Var("R2",Imm(64)),ARSHIFT(Var("R1",Imm(64)),Int(3,3)))), -Def(Tid(642, "%00000282"), Attrs([Attr("address","0x6DC"), -Attr("insn","asr x1, x1, #1")]), Var("R1",Imm(64)), -SIGNED(64,Extract(63,1,Var("R1",Imm(64)))))]), -Jmps([Goto(Tid(648, "%00000288"), Attrs([Attr("address","0x6E0"), -Attr("insn","cbz x1, #0x18")]), EQ(Var("R1",Imm(64)),Int(0,64)), -Direct(Tid(646, "%00000286"))), Goto(Tid(1_500, "%000005dc"), Attrs([]), - Int(1,1), Direct(Tid(941, "%000003ad")))])), Blk(Tid(941, "%000003ad"), - Attrs([Attr("address","0x6E4")]), Phis([]), Defs([Def(Tid(944, "%000003b0"), - Attrs([Attr("address","0x6E4"), Attr("insn","adrp x2, #65536")]), - Var("R2",Imm(64)), Int(65536,64)), Def(Tid(951, "%000003b7"), - Attrs([Attr("address","0x6E8"), Attr("insn","ldr x2, [x2, #0xfe0]")]), - Var("R2",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R2",Imm(64)),Int(4064,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(956, "%000003bc"), Attrs([Attr("address","0x6EC"), -Attr("insn","cbz x2, #0xc")]), EQ(Var("R2",Imm(64)),Int(0,64)), -Direct(Tid(646, "%00000286"))), Goto(Tid(1_501, "%000005dd"), Attrs([]), - Int(1,1), Direct(Tid(960, "%000003c0")))])), Blk(Tid(646, "%00000286"), - Attrs([Attr("address","0x6F8")]), Phis([]), Defs([]), -Jmps([Call(Tid(654, "%0000028e"), Attrs([Attr("address","0x6F8"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))])), -Blk(Tid(960, "%000003c0"), Attrs([Attr("address","0x6F0")]), Phis([]), -Defs([Def(Tid(964, "%000003c4"), Attrs([Attr("address","0x6F0"), -Attr("insn","mov x16, x2")]), Var("R16",Imm(64)), Var("R2",Imm(64)))]), -Jmps([Call(Tid(969, "%000003c9"), Attrs([Attr("address","0x6F4"), -Attr("insn","br x16")]), Int(1,1), -(Indirect(Var("R16",Imm(64))),))]))]))]))) \ No newline at end of file diff --git a/src/test/correct/using_gamma_conditional/clang_pic/using_gamma_conditional.bir b/src/test/correct/using_gamma_conditional/clang_pic/using_gamma_conditional.bir deleted file mode 100644 index 1228a2e2f..000000000 --- a/src/test/correct/using_gamma_conditional/clang_pic/using_gamma_conditional.bir +++ /dev/null @@ -1,264 +0,0 @@ -000005de: program -000005aa: sub __cxa_finalize(__cxa_finalize_result) -000005df: __cxa_finalize_result :: out u32 = low:32[R0] - -000003a9: -000004a1: R16 := 0x11000 -000004a8: R17 := mem[R16 + 8, el]:u64 -000004ae: R16 := R16 + 8 -000004b3: call R17 with noreturn - -000005ab: sub __do_global_dtors_aux(__do_global_dtors_aux_result) -000005e0: __do_global_dtors_aux_result :: out u32 = low:32[R0] - -00000292: -00000296: #3 := R31 - 0x20 -0000029c: mem := mem with [#3, el]:u64 <- R29 -000002a2: mem := mem with [#3 + 8, el]:u64 <- R30 -000002a6: R31 := #3 -000002ac: R29 := R31 -000002b4: mem := mem with [R31 + 0x10, el]:u64 <- R19 -000002b9: R19 := 0x11000 -000002c0: R0 := pad:64[mem[R19 + 0x30]] -000002c7: when 31:0[R0] <> 0 goto %000002c5 -000005d3: goto %00000372 - -00000372: -00000375: R0 := 0x10000 -0000037c: R0 := mem[R0 + 0xFC0, el]:u64 -00000382: when R0 = 0 goto %00000380 -000005d4: goto %00000399 - -00000399: -0000039c: R0 := 0x11000 -000003a3: R0 := mem[R0 + 0x28, el]:u64 -000003a8: R30 := 0x730 -000003ab: call @__cxa_finalize with return %00000380 - -00000380: -00000388: R30 := 0x734 -0000038a: call @deregister_tm_clones with return %0000038c - -0000038c: -0000038f: R0 := 1 -00000397: mem := mem with [R19 + 0x30] <- 7:0[R0] -000005d5: goto %000002c5 - -000002c5: -000002cf: R19 := mem[R31 + 0x10, el]:u64 -000002d6: R29 := mem[R31, el]:u64 -000002db: R30 := mem[R31 + 8, el]:u64 -000002df: R31 := R31 + 0x20 -000002e4: call R30 with noreturn - -000005af: sub __libc_start_main(__libc_start_main_main, __libc_start_main_arg2, __libc_start_main_arg3, __libc_start_main_auxv, __libc_start_main_result) -000005e1: __libc_start_main_main :: in u64 = R0 -000005e2: __libc_start_main_arg2 :: in u32 = low:32[R1] -000005e3: __libc_start_main_arg3 :: in out u64 = R2 -000005e4: __libc_start_main_auxv :: in out u64 = R3 -000005e5: __libc_start_main_result :: out u32 = low:32[R0] - -000001eb: -0000048b: R16 := 0x11000 -00000492: R17 := mem[R16, el]:u64 -00000498: R16 := R16 -0000049d: call R17 with noreturn - -000005b0: sub _fini(_fini_result) -000005e6: _fini_result :: out u32 = low:32[R0] - -0000001f: -00000025: #0 := R31 - 0x10 -0000002b: mem := mem with [#0, el]:u64 <- R29 -00000031: mem := mem with [#0 + 8, el]:u64 <- R30 -00000035: R31 := #0 -0000003b: R29 := R31 -00000042: R29 := mem[R31, el]:u64 -00000047: R30 := mem[R31 + 8, el]:u64 -0000004b: R31 := R31 + 0x10 -00000050: call R30 with noreturn - -000005b1: sub _init(_init_result) -000005e7: _init_result :: out u32 = low:32[R0] - -000004fb: -00000501: #6 := R31 - 0x10 -00000507: mem := mem with [#6, el]:u64 <- R29 -0000050d: mem := mem with [#6 + 8, el]:u64 <- R30 -00000511: R31 := #6 -00000517: R29 := R31 -0000051c: R30 := 0x5A8 -0000051e: call @call_weak_fn with return %00000520 - -00000520: -00000525: R29 := mem[R31, el]:u64 -0000052a: R30 := mem[R31 + 8, el]:u64 -0000052e: R31 := R31 + 0x10 -00000533: call R30 with noreturn - -000005b2: sub _start(_start_result) -000005e8: _start_result :: out u32 = low:32[R0] - -000001ac: -000001b1: R29 := 0 -000001b6: R30 := 0 -000001bc: R5 := R0 -000001c3: R1 := mem[R31, el]:u64 -000001c9: R2 := R31 + 8 -000001cf: R6 := R31 -000001d4: R0 := 0x10000 -000001db: R0 := mem[R0 + 0xFD8, el]:u64 -000001e0: R3 := 0 -000001e5: R4 := 0 -000001ea: R30 := 0x670 -000001ed: call @__libc_start_main with return %000001ef - -000001ef: -000001f2: R30 := 0x674 -000001f5: call @abort with return %000005d6 - -000005d6: -000005d7: call @call_weak_fn with noreturn - -000005b5: sub abort() - - -000001f3: -000004cd: R16 := 0x11000 -000004d4: R17 := mem[R16 + 0x18, el]:u64 -000004da: R16 := R16 + 0x18 -000004df: call R17 with noreturn - -000005b6: sub call_weak_fn(call_weak_fn_result) -000005e9: call_weak_fn_result :: out u32 = low:32[R0] - -000001f7: -000001fa: R0 := 0x10000 -00000201: R0 := mem[R0 + 0xFD0, el]:u64 -00000207: when R0 = 0 goto %00000205 -000005d8: goto %000003e9 - -00000205: -0000020d: call R30 with noreturn - -000003e9: -000003ec: goto @__gmon_start__ - -000003ea: -000004b7: R16 := 0x11000 -000004be: R17 := mem[R16 + 0x10, el]:u64 -000004c4: R16 := R16 + 0x10 -000004c9: call R17 with noreturn - -000005b8: sub deregister_tm_clones(deregister_tm_clones_result) -000005ea: deregister_tm_clones_result :: out u32 = low:32[R0] - -00000213: -00000216: R0 := 0x11000 -0000021c: R0 := R0 + 0x30 -00000221: R1 := 0x11000 -00000227: R1 := R1 + 0x30 -0000022d: #1 := ~R0 -00000232: #2 := R1 + ~R0 -00000238: VF := extend:65[#2 + 1] <> extend:65[R1] + extend:65[#1] + 1 -0000023e: CF := pad:65[#2 + 1] <> pad:65[R1] + pad:65[#1] + 1 -00000242: ZF := #2 + 1 = 0 -00000246: NF := 63:63[#2 + 1] -0000024c: when ZF goto %0000024a -000005d9: goto %000003cb - -000003cb: -000003ce: R1 := 0x10000 -000003d5: R1 := mem[R1 + 0xFB8, el]:u64 -000003da: when R1 = 0 goto %0000024a -000005da: goto %000003de - -0000024a: -00000252: call R30 with noreturn - -000003de: -000003e2: R16 := R1 -000003e7: call R16 with noreturn - -000005bb: sub frame_dummy(frame_dummy_result) -000005eb: frame_dummy_result :: out u32 = low:32[R0] - -000002ea: -000002ec: call @register_tm_clones with noreturn - -000005bc: sub main(main_argc, main_argv, main_result) -000005ec: main_argc :: in u32 = low:32[R0] -000005ed: main_argv :: in out u64 = R1 -000005ee: main_result :: out u32 = low:32[R0] - -000002ee: -000002f2: R31 := R31 - 0x10 -000002f9: mem := mem with [R31 + 0xC, el]:u32 <- 0 -000002fe: R8 := 0x10000 -00000305: R8 := mem[R8 + 0xFC8, el]:u64 -0000030c: R8 := pad:64[mem[R8, el]:u32] -00000312: #4 := 31:0[R8] - 1 -00000317: VF := extend:33[#4 + 1] <> extend:33[31:0[R8]] + 0 -0000031c: CF := pad:33[#4 + 1] <> pad:33[31:0[R8]] - 0x100000000 -00000320: ZF := #4 + 1 = 0 -00000324: NF := 31:31[#4 + 1] -00000328: R8 := pad:64[#4 + 1] -00000334: when ZF <> 1 goto %0000032d -00000335: goto %00000330 - -00000330: -00000331: R8 := 1 -00000337: goto %00000333 - -0000032d: -0000032e: R8 := 0 -00000336: goto %00000333 - -00000333: -0000033d: when 0:0[R8] goto %0000033b -000005db: goto %00000363 - -0000033b: -00000343: R8 := 1 -0000034b: mem := mem with [R31 + 0xC, el]:u32 <- 31:0[R8] -00000350: goto %0000034e - -00000363: -00000366: goto %00000364 - -00000364: -0000036c: mem := mem with [R31 + 0xC, el]:u32 <- 0 -00000370: goto %0000034e - -0000034e: -00000356: R0 := pad:64[mem[R31 + 0xC, el]:u32] -0000035c: R31 := R31 + 0x10 -00000361: call R30 with noreturn - -000005be: sub register_tm_clones(register_tm_clones_result) -000005ef: register_tm_clones_result :: out u32 = low:32[R0] - -00000254: -00000257: R0 := 0x11000 -0000025d: R0 := R0 + 0x30 -00000262: R1 := 0x11000 -00000268: R1 := R1 + 0x30 -0000026f: R1 := R1 + ~R0 + 1 -00000275: R2 := 0.63:63[R1] -0000027c: R1 := R2 + (R1 ~>> 3) -00000282: R1 := extend:64[63:1[R1]] -00000288: when R1 = 0 goto %00000286 -000005dc: goto %000003ad - -000003ad: -000003b0: R2 := 0x10000 -000003b7: R2 := mem[R2 + 0xFE0, el]:u64 -000003bc: when R2 = 0 goto %00000286 -000005dd: goto %000003c0 - -00000286: -0000028e: call R30 with noreturn - -000003c0: -000003c4: R16 := R2 -000003c9: call R16 with noreturn diff --git a/src/test/correct/using_gamma_conditional/clang_pic/using_gamma_conditional.expected b/src/test/correct/using_gamma_conditional/clang_pic/using_gamma_conditional.expected index 66b7b18fe..cee4c3af4 100644 --- a/src/test/correct/using_gamma_conditional/clang_pic/using_gamma_conditional.expected +++ b/src/test/correct/using_gamma_conditional/clang_pic/using_gamma_conditional.expected @@ -2,34 +2,27 @@ var {:extern} CF: bv1; var {:extern} Gamma_CF: bool; var {:extern} Gamma_NF: bool; var {:extern} Gamma_R0: bool; -var {:extern} Gamma_R31: bool; var {:extern} Gamma_R8: bool; var {:extern} Gamma_VF: bool; var {:extern} Gamma_ZF: bool; var {:extern} Gamma_mem: [bv64]bool; -var {:extern} Gamma_stack: [bv64]bool; var {:extern} NF: bv1; var {:extern} R0: bv64; -var {:extern} R31: bv64; var {:extern} R8: bv64; var {:extern} VF: bv1; var {:extern} ZF: bv1; var {:extern} mem: [bv64]bv8; -var {:extern} stack: [bv64]bv8; const {:extern} $x_addr: bv64; -axiom ($x_addr == 69684bv64); +axiom ($x_addr == 131092bv64); const {:extern} $z_addr: bv64; -axiom ($z_addr == 69688bv64); +axiom ($z_addr == 131096bv64); function {:extern} L(mem$in: [bv64]bv8, index: bv64) returns (bool) { (if (index == $z_addr) then true else (if (index == $x_addr) then (memory_load32_le(mem$in, $z_addr) == 0bv32) else false)) } -function {:extern} {:bvbuiltin "bvadd"} bvadd32(bv32, bv32) returns (bv32); -function {:extern} {:bvbuiltin "bvadd"} bvadd33(bv33, bv33) returns (bv33); function {:extern} {:bvbuiltin "bvadd"} bvadd64(bv64, bv64) returns (bv64); function {:extern} {:bvbuiltin "bvcomp"} bvcomp1(bv1, bv1) returns (bv1); function {:extern} {:bvbuiltin "bvcomp"} bvcomp32(bv32, bv32) returns (bv1); -function {:extern} {:bvbuiltin "bvcomp"} bvcomp33(bv33, bv33) returns (bv1); function {:extern} {:bvbuiltin "bvnot"} bvnot1(bv1) returns (bv1); function {:extern} gamma_load32(gammaMap: [bv64]bool, index: bv64) returns (bool) { (gammaMap[bvadd64(index, 3bv64)] && (gammaMap[bvadd64(index, 2bv64)] && (gammaMap[bvadd64(index, 1bv64)] && gammaMap[index]))) @@ -39,10 +32,6 @@ function {:extern} gamma_load64(gammaMap: [bv64]bool, index: bv64) returns (bool (gammaMap[bvadd64(index, 7bv64)] && (gammaMap[bvadd64(index, 6bv64)] && (gammaMap[bvadd64(index, 5bv64)] && (gammaMap[bvadd64(index, 4bv64)] && (gammaMap[bvadd64(index, 3bv64)] && (gammaMap[bvadd64(index, 2bv64)] && (gammaMap[bvadd64(index, 1bv64)] && gammaMap[index]))))))) } -function {:extern} gamma_store32(gammaMap: [bv64]bool, index: bv64, value: bool) returns ([bv64]bool) { - gammaMap[index := value][bvadd64(index, 1bv64) := value][bvadd64(index, 2bv64) := value][bvadd64(index, 3bv64) := value] -} - function {:extern} memory_load32_le(memory: [bv64]bv8, index: bv64) returns (bv32) { (memory[bvadd64(index, 3bv64)] ++ (memory[bvadd64(index, 2bv64)] ++ (memory[bvadd64(index, 1bv64)] ++ memory[index]))) } @@ -51,23 +40,17 @@ function {:extern} memory_load64_le(memory: [bv64]bv8, index: bv64) returns (bv6 (memory[bvadd64(index, 7bv64)] ++ (memory[bvadd64(index, 6bv64)] ++ (memory[bvadd64(index, 5bv64)] ++ (memory[bvadd64(index, 4bv64)] ++ (memory[bvadd64(index, 3bv64)] ++ (memory[bvadd64(index, 2bv64)] ++ (memory[bvadd64(index, 1bv64)] ++ memory[index]))))))) } -function {:extern} memory_store32_le(memory: [bv64]bv8, index: bv64, value: bv32) returns ([bv64]bv8) { - memory[index := value[8:0]][bvadd64(index, 1bv64) := value[16:8]][bvadd64(index, 2bv64) := value[24:16]][bvadd64(index, 3bv64) := value[32:24]] -} - -function {:extern} {:bvbuiltin "sign_extend 1"} sign_extend1_32(bv32) returns (bv33); -function {:extern} {:bvbuiltin "zero_extend 1"} zero_extend1_32(bv32) returns (bv33); function {:extern} {:bvbuiltin "zero_extend 32"} zero_extend32_32(bv32) returns (bv64); procedure {:extern} rely(); modifies Gamma_mem, mem; ensures (forall i: bv64 :: (((mem[i] == old(mem[i])) ==> (Gamma_mem[i] == old(Gamma_mem[i]))))); ensures (old(gamma_load32(Gamma_mem, $x_addr)) ==> gamma_load32(Gamma_mem, $x_addr)); - free ensures (memory_load32_le(mem, 1964bv64) == 131073bv32); - free ensures (memory_load64_le(mem, 69056bv64) == 1872bv64); - free ensures (memory_load64_le(mem, 69064bv64) == 1792bv64); - free ensures (memory_load64_le(mem, 69576bv64) == 69684bv64); - free ensures (memory_load64_le(mem, 69592bv64) == 1876bv64); - free ensures (memory_load64_le(mem, 69672bv64) == 69672bv64); + free ensures (memory_load32_le(mem, 2304bv64) == 131073bv32); + free ensures (memory_load64_le(mem, 130432bv64) == 2256bv64); + free ensures (memory_load64_le(mem, 130440bv64) == 2176bv64); + free ensures (memory_load64_le(mem, 131040bv64) == 131092bv64); + free ensures (memory_load64_le(mem, 131056bv64) == 2260bv64); + free ensures (memory_load64_le(mem, 131080bv64) == 131080bv64); procedure {:extern} rely_transitive(); modifies Gamma_mem, mem; @@ -94,106 +77,66 @@ implementation {:extern} guarantee_reflexive() assert ((memory_load32_le(mem, $x_addr) == memory_load32_le(mem, $x_addr)) && (memory_load32_le(mem, $z_addr) == memory_load32_le(mem, $z_addr))); } -procedure main_1876(); - modifies CF, Gamma_CF, Gamma_NF, Gamma_R0, Gamma_R31, Gamma_R8, Gamma_VF, Gamma_ZF, Gamma_mem, Gamma_stack, NF, R0, R31, R8, VF, ZF, mem, stack; +procedure main(); + modifies CF, Gamma_CF, Gamma_NF, Gamma_R0, Gamma_R8, Gamma_VF, Gamma_ZF, Gamma_mem, NF, R0, R8, VF, ZF, mem; requires (gamma_load32(Gamma_mem, $x_addr) == true); - free requires (memory_load64_le(mem, 69664bv64) == 0bv64); - free requires (memory_load64_le(mem, 69672bv64) == 69672bv64); - free requires (memory_load32_le(mem, 1964bv64) == 131073bv32); - free requires (memory_load64_le(mem, 69056bv64) == 1872bv64); - free requires (memory_load64_le(mem, 69064bv64) == 1792bv64); - free requires (memory_load64_le(mem, 69576bv64) == 69684bv64); - free requires (memory_load64_le(mem, 69592bv64) == 1876bv64); - free requires (memory_load64_le(mem, 69672bv64) == 69672bv64); - free ensures (Gamma_R31 == old(Gamma_R31)); - free ensures (R31 == old(R31)); - free ensures (memory_load32_le(mem, 1964bv64) == 131073bv32); - free ensures (memory_load64_le(mem, 69056bv64) == 1872bv64); - free ensures (memory_load64_le(mem, 69064bv64) == 1792bv64); - free ensures (memory_load64_le(mem, 69576bv64) == 69684bv64); - free ensures (memory_load64_le(mem, 69592bv64) == 1876bv64); - free ensures (memory_load64_le(mem, 69672bv64) == 69672bv64); - -implementation main_1876() + free requires (memory_load64_le(mem, 131072bv64) == 0bv64); + free requires (memory_load64_le(mem, 131080bv64) == 131080bv64); + free requires (memory_load32_le(mem, 2304bv64) == 131073bv32); + free requires (memory_load64_le(mem, 130432bv64) == 2256bv64); + free requires (memory_load64_le(mem, 130440bv64) == 2176bv64); + free requires (memory_load64_le(mem, 131040bv64) == 131092bv64); + free requires (memory_load64_le(mem, 131056bv64) == 2260bv64); + free requires (memory_load64_le(mem, 131080bv64) == 131080bv64); + free ensures (memory_load32_le(mem, 2304bv64) == 131073bv32); + free ensures (memory_load64_le(mem, 130432bv64) == 2256bv64); + free ensures (memory_load64_le(mem, 130440bv64) == 2176bv64); + free ensures (memory_load64_le(mem, 131040bv64) == 131092bv64); + free ensures (memory_load64_le(mem, 131056bv64) == 2260bv64); + free ensures (memory_load64_le(mem, 131080bv64) == 131080bv64); + +implementation main() { - var #4: bv32; - var Gamma_#4: bool; - var Gamma_load18: bool; - var Gamma_load19: bool; - var Gamma_load20: bool; - var load18: bv64; - var load19: bv32; - var load20: bv32; + var $load$18: bv64; + var $load$19: bv32; + var Gamma_$load$18: bool; + var Gamma_$load$19: bool; lmain: assume {:captureState "lmain"} true; - R31, Gamma_R31 := bvadd64(R31, 18446744073709551600bv64), Gamma_R31; - stack, Gamma_stack := memory_store32_le(stack, bvadd64(R31, 12bv64), 0bv32), gamma_store32(Gamma_stack, bvadd64(R31, 12bv64), true); - assume {:captureState "%000002f9"} true; - R8, Gamma_R8 := 65536bv64, true; + R8, Gamma_R8 := 126976bv64, true; call rely(); - load18, Gamma_load18 := memory_load64_le(mem, bvadd64(R8, 4040bv64)), (gamma_load64(Gamma_mem, bvadd64(R8, 4040bv64)) || L(mem, bvadd64(R8, 4040bv64))); - R8, Gamma_R8 := load18, Gamma_load18; + $load$18, Gamma_$load$18 := memory_load64_le(mem, bvadd64(R8, 4064bv64)), (gamma_load64(Gamma_mem, bvadd64(R8, 4064bv64)) || L(mem, bvadd64(R8, 4064bv64))); + R8, Gamma_R8 := $load$18, Gamma_$load$18; call rely(); - load19, Gamma_load19 := memory_load32_le(mem, R8), (gamma_load32(Gamma_mem, R8) || L(mem, R8)); - R8, Gamma_R8 := zero_extend32_32(load19), Gamma_load19; - #4, Gamma_#4 := bvadd32(R8[32:0], 4294967295bv32), Gamma_R8; - VF, Gamma_VF := bvnot1(bvcomp33(sign_extend1_32(bvadd32(#4, 1bv32)), bvadd33(sign_extend1_32(R8[32:0]), 0bv33))), (Gamma_R8 && Gamma_#4); - CF, Gamma_CF := bvnot1(bvcomp33(zero_extend1_32(bvadd32(#4, 1bv32)), bvadd33(zero_extend1_32(R8[32:0]), 4294967296bv33))), (Gamma_R8 && Gamma_#4); - ZF, Gamma_ZF := bvcomp32(bvadd32(#4, 1bv32), 0bv32), Gamma_#4; - NF, Gamma_NF := bvadd32(#4, 1bv32)[32:31], Gamma_#4; - R8, Gamma_R8 := zero_extend32_32(bvadd32(#4, 1bv32)), Gamma_#4; + $load$19, Gamma_$load$19 := memory_load32_le(mem, R8), (gamma_load32(Gamma_mem, R8) || L(mem, R8)); + R8, Gamma_R8 := zero_extend32_32($load$19), Gamma_$load$19; + VF, Gamma_VF := 0bv1, true; + CF, Gamma_CF := 1bv1, true; + ZF, Gamma_ZF := bvcomp32(R8[32:0], 0bv32), Gamma_R8; + NF, Gamma_NF := R8[32:31], Gamma_R8; assert Gamma_ZF; - goto lmain_goto_l0000032d, lmain_goto_l00000330; - lmain_goto_l00000330: - assume {:captureState "lmain_goto_l00000330"} true; - assume (bvnot1(bvcomp1(ZF, 1bv1)) == 0bv1); - R8, Gamma_R8 := 1bv64, true; - goto l00000330; - l00000330: - assume {:captureState "l00000330"} true; - goto l00000333; - lmain_goto_l0000032d: - assume {:captureState "lmain_goto_l0000032d"} true; + goto lmain_goto_l0000029c, lmain_goto_l000002a4; + l000002a4: + assume {:captureState "l000002a4"} true; + R0, Gamma_R0 := 1bv64, true; + goto l000002b0; + l0000029c: + assume {:captureState "l0000029c"} true; + R0, Gamma_R0 := 0bv64, true; + goto l000002b0; + l000002b0: + assume {:captureState "l000002b0"} true; + goto main_basil_return; + lmain_goto_l0000029c: + assume {:captureState "lmain_goto_l0000029c"} true; assume (bvnot1(bvcomp1(ZF, 1bv1)) != 0bv1); - R8, Gamma_R8 := 0bv64, true; - goto l0000032d; - l0000032d: - assume {:captureState "l0000032d"} true; - goto l00000333; - l00000333: - assume {:captureState "l00000333"} true; - assert Gamma_R8; - goto l00000333_goto_l0000033b, l00000333_goto_l00000363; - l00000333_goto_l00000363: - assume {:captureState "l00000333_goto_l00000363"} true; - assume (bvcomp1(R8[1:0], 1bv1) == 0bv1); - goto l00000363; - l00000363: - assume {:captureState "l00000363"} true; - goto l00000364; - l00000364: - assume {:captureState "l00000364"} true; - stack, Gamma_stack := memory_store32_le(stack, bvadd64(R31, 12bv64), 0bv32), gamma_store32(Gamma_stack, bvadd64(R31, 12bv64), true); - assume {:captureState "%0000036c"} true; - goto l0000034e; - l00000333_goto_l0000033b: - assume {:captureState "l00000333_goto_l0000033b"} true; - assume (bvcomp1(R8[1:0], 1bv1) != 0bv1); - R8, Gamma_R8 := 1bv64, true; - stack, Gamma_stack := memory_store32_le(stack, bvadd64(R31, 12bv64), R8[32:0]), gamma_store32(Gamma_stack, bvadd64(R31, 12bv64), Gamma_R8); - assume {:captureState "%0000034b"} true; - goto l0000033b; - l0000033b: - assume {:captureState "l0000033b"} true; - goto l0000034e; - l0000034e: - assume {:captureState "l0000034e"} true; - load20, Gamma_load20 := memory_load32_le(stack, bvadd64(R31, 12bv64)), gamma_load32(Gamma_stack, bvadd64(R31, 12bv64)); - R0, Gamma_R0 := zero_extend32_32(load20), Gamma_load20; - R31, Gamma_R31 := bvadd64(R31, 16bv64), Gamma_R31; - goto main_1876_basil_return; - main_1876_basil_return: - assume {:captureState "main_1876_basil_return"} true; + goto l0000029c; + lmain_goto_l000002a4: + assume {:captureState "lmain_goto_l000002a4"} true; + assume (bvnot1(bvcomp1(ZF, 1bv1)) == 0bv1); + goto l000002a4; + main_basil_return: + assume {:captureState "main_basil_return"} true; return; } diff --git a/src/test/correct/using_gamma_conditional/clang_pic/using_gamma_conditional.gts b/src/test/correct/using_gamma_conditional/clang_pic/using_gamma_conditional.gts deleted file mode 100644 index 8c775ea67..000000000 Binary files a/src/test/correct/using_gamma_conditional/clang_pic/using_gamma_conditional.gts and /dev/null differ diff --git a/src/test/correct/using_gamma_conditional/clang_pic/using_gamma_conditional.md5sum b/src/test/correct/using_gamma_conditional/clang_pic/using_gamma_conditional.md5sum new file mode 100644 index 000000000..8c1c27c58 --- /dev/null +++ b/src/test/correct/using_gamma_conditional/clang_pic/using_gamma_conditional.md5sum @@ -0,0 +1,5 @@ +15b5d0f891a53c017b9a746c33686003 correct/using_gamma_conditional/clang_pic/a.out +0bc115baf544f4232d2c6ac5f14cf6ab correct/using_gamma_conditional/clang_pic/using_gamma_conditional.adt +b885135350d6b921155b539b5fffef41 correct/using_gamma_conditional/clang_pic/using_gamma_conditional.bir +dbba58a029aa7b9d8e5665d68036a4b6 correct/using_gamma_conditional/clang_pic/using_gamma_conditional.relf +b58f9dd0e2f485fd6c126b3392a1760a correct/using_gamma_conditional/clang_pic/using_gamma_conditional.gts diff --git a/src/test/correct/using_gamma_conditional/clang_pic/using_gamma_conditional.relf b/src/test/correct/using_gamma_conditional/clang_pic/using_gamma_conditional.relf deleted file mode 100644 index 9afeb1b8f..000000000 --- a/src/test/correct/using_gamma_conditional/clang_pic/using_gamma_conditional.relf +++ /dev/null @@ -1,125 +0,0 @@ - -Relocation section '.rela.dyn' at offset 0x460 contains 9 entries: - Offset Info Type Symbol's Value Symbol's Name + Addend -0000000000010dc0 0000000000000403 R_AARCH64_RELATIVE 750 -0000000000010dc8 0000000000000403 R_AARCH64_RELATIVE 700 -0000000000010fc8 0000000000000403 R_AARCH64_RELATIVE 11034 -0000000000010fd8 0000000000000403 R_AARCH64_RELATIVE 754 -0000000000011028 0000000000000403 R_AARCH64_RELATIVE 11028 -0000000000010fb8 0000000400000401 R_AARCH64_GLOB_DAT 0000000000000000 _ITM_deregisterTMCloneTable + 0 -0000000000010fc0 0000000500000401 R_AARCH64_GLOB_DAT 0000000000000000 __cxa_finalize@GLIBC_2.17 + 0 -0000000000010fd0 0000000600000401 R_AARCH64_GLOB_DAT 0000000000000000 __gmon_start__ + 0 -0000000000010fe0 0000000800000401 R_AARCH64_GLOB_DAT 0000000000000000 _ITM_registerTMCloneTable + 0 - -Relocation section '.rela.plt' at offset 0x538 contains 4 entries: - Offset Info Type Symbol's Value Symbol's Name + Addend -0000000000011000 0000000300000402 R_AARCH64_JUMP_SLOT 0000000000000000 __libc_start_main@GLIBC_2.34 + 0 -0000000000011008 0000000500000402 R_AARCH64_JUMP_SLOT 0000000000000000 __cxa_finalize@GLIBC_2.17 + 0 -0000000000011010 0000000600000402 R_AARCH64_JUMP_SLOT 0000000000000000 __gmon_start__ + 0 -0000000000011018 0000000700000402 R_AARCH64_JUMP_SLOT 0000000000000000 abort@GLIBC_2.17 + 0 - -Symbol table '.dynsym' contains 9 entries: - Num: Value Size Type Bind Vis Ndx Name - 0: 0000000000000000 0 NOTYPE LOCAL DEFAULT UND - 1: 0000000000000598 0 SECTION LOCAL DEFAULT 11 .init - 2: 0000000000011020 0 SECTION LOCAL DEFAULT 23 .data - 3: 0000000000000000 0 FUNC GLOBAL DEFAULT UND __libc_start_main@GLIBC_2.34 (2) - 4: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_deregisterTMCloneTable - 5: 0000000000000000 0 FUNC WEAK DEFAULT UND __cxa_finalize@GLIBC_2.17 (3) - 6: 0000000000000000 0 NOTYPE WEAK DEFAULT UND __gmon_start__ - 7: 0000000000000000 0 FUNC GLOBAL DEFAULT UND abort@GLIBC_2.17 (3) - 8: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_registerTMCloneTable - -Symbol table '.symtab' contains 91 entries: - Num: Value Size Type Bind Vis Ndx Name - 0: 0000000000000000 0 NOTYPE LOCAL DEFAULT UND - 1: 0000000000000238 0 SECTION LOCAL DEFAULT 1 .interp - 2: 0000000000000254 0 SECTION LOCAL DEFAULT 2 .note.gnu.build-id - 3: 0000000000000278 0 SECTION LOCAL DEFAULT 3 .note.ABI-tag - 4: 0000000000000298 0 SECTION LOCAL DEFAULT 4 .gnu.hash - 5: 00000000000002b8 0 SECTION LOCAL DEFAULT 5 .dynsym - 6: 0000000000000390 0 SECTION LOCAL DEFAULT 6 .dynstr - 7: 000000000000041e 0 SECTION LOCAL DEFAULT 7 .gnu.version - 8: 0000000000000430 0 SECTION LOCAL DEFAULT 8 .gnu.version_r - 9: 0000000000000460 0 SECTION LOCAL DEFAULT 9 .rela.dyn - 10: 0000000000000538 0 SECTION LOCAL DEFAULT 10 .rela.plt - 11: 0000000000000598 0 SECTION LOCAL DEFAULT 11 .init - 12: 00000000000005b0 0 SECTION LOCAL DEFAULT 12 .plt - 13: 0000000000000640 0 SECTION LOCAL DEFAULT 13 .text - 14: 0000000000000798 0 SECTION LOCAL DEFAULT 14 .fini - 15: 00000000000007ac 0 SECTION LOCAL DEFAULT 15 .rodata - 16: 00000000000007b0 0 SECTION LOCAL DEFAULT 16 .eh_frame_hdr - 17: 00000000000007f0 0 SECTION LOCAL DEFAULT 17 .eh_frame - 18: 0000000000010dc0 0 SECTION LOCAL DEFAULT 18 .init_array - 19: 0000000000010dc8 0 SECTION LOCAL DEFAULT 19 .fini_array - 20: 0000000000010dd0 0 SECTION LOCAL DEFAULT 20 .dynamic - 21: 0000000000010fb0 0 SECTION LOCAL DEFAULT 21 .got - 22: 0000000000010fe8 0 SECTION LOCAL DEFAULT 22 .got.plt - 23: 0000000000011020 0 SECTION LOCAL DEFAULT 23 .data - 24: 0000000000011030 0 SECTION LOCAL DEFAULT 24 .bss - 25: 0000000000000000 0 SECTION LOCAL DEFAULT 25 .comment - 26: 0000000000000000 0 FILE LOCAL DEFAULT ABS Scrt1.o - 27: 0000000000000278 0 NOTYPE LOCAL DEFAULT 3 $d - 28: 0000000000000278 32 OBJECT LOCAL DEFAULT 3 __abi_tag - 29: 0000000000000640 0 NOTYPE LOCAL DEFAULT 13 $x - 30: 0000000000000804 0 NOTYPE LOCAL DEFAULT 17 $d - 31: 00000000000007ac 0 NOTYPE LOCAL DEFAULT 15 $d - 32: 0000000000000000 0 FILE LOCAL DEFAULT ABS crti.o - 33: 0000000000000674 0 NOTYPE LOCAL DEFAULT 13 $x - 34: 0000000000000674 20 FUNC LOCAL DEFAULT 13 call_weak_fn - 35: 0000000000000598 0 NOTYPE LOCAL DEFAULT 11 $x - 36: 0000000000000798 0 NOTYPE LOCAL DEFAULT 14 $x - 37: 0000000000000000 0 FILE LOCAL DEFAULT ABS crtn.o - 38: 00000000000005a8 0 NOTYPE LOCAL DEFAULT 11 $x - 39: 00000000000007a4 0 NOTYPE LOCAL DEFAULT 14 $x - 40: 0000000000000000 0 FILE LOCAL DEFAULT ABS crtstuff.c - 41: 0000000000000690 0 NOTYPE LOCAL DEFAULT 13 $x - 42: 0000000000000690 0 FUNC LOCAL DEFAULT 13 deregister_tm_clones - 43: 00000000000006c0 0 FUNC LOCAL DEFAULT 13 register_tm_clones - 44: 0000000000011028 0 NOTYPE LOCAL DEFAULT 23 $d - 45: 0000000000000700 0 FUNC LOCAL DEFAULT 13 __do_global_dtors_aux - 46: 0000000000011030 1 OBJECT LOCAL DEFAULT 24 completed.0 - 47: 0000000000010dc8 0 NOTYPE LOCAL DEFAULT 19 $d - 48: 0000000000010dc8 0 OBJECT LOCAL DEFAULT 19 __do_global_dtors_aux_fini_array_entry - 49: 0000000000000750 0 FUNC LOCAL DEFAULT 13 frame_dummy - 50: 0000000000010dc0 0 NOTYPE LOCAL DEFAULT 18 $d - 51: 0000000000010dc0 0 OBJECT LOCAL DEFAULT 18 __frame_dummy_init_array_entry - 52: 0000000000000818 0 NOTYPE LOCAL DEFAULT 17 $d - 53: 0000000000011030 0 NOTYPE LOCAL DEFAULT 24 $d - 54: 0000000000000000 0 FILE LOCAL DEFAULT ABS using_gamma_conditional.c - 55: 0000000000000754 0 NOTYPE LOCAL DEFAULT 13 $x.0 - 56: 0000000000011034 0 NOTYPE LOCAL DEFAULT 24 $d.1 - 57: 000000000000002a 0 NOTYPE LOCAL DEFAULT 25 $d.2 - 58: 0000000000000878 0 NOTYPE LOCAL DEFAULT 17 $d.3 - 59: 0000000000000000 0 FILE LOCAL DEFAULT ABS crtstuff.c - 60: 00000000000008a4 0 NOTYPE LOCAL DEFAULT 17 $d - 61: 00000000000008a4 0 OBJECT LOCAL DEFAULT 17 __FRAME_END__ - 62: 0000000000000000 0 FILE LOCAL DEFAULT ABS - 63: 0000000000010dd0 0 OBJECT LOCAL DEFAULT ABS _DYNAMIC - 64: 00000000000007b0 0 NOTYPE LOCAL DEFAULT 16 __GNU_EH_FRAME_HDR - 65: 0000000000010fb0 0 OBJECT LOCAL DEFAULT ABS _GLOBAL_OFFSET_TABLE_ - 66: 00000000000005b0 0 NOTYPE LOCAL DEFAULT 12 $x - 67: 0000000000000000 0 FUNC GLOBAL DEFAULT UND __libc_start_main@GLIBC_2.34 - 68: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_deregisterTMCloneTable - 69: 0000000000011020 0 NOTYPE WEAK DEFAULT 23 data_start - 70: 0000000000011030 0 NOTYPE GLOBAL DEFAULT 24 __bss_start__ - 71: 0000000000000000 0 FUNC WEAK DEFAULT UND __cxa_finalize@GLIBC_2.17 - 72: 0000000000011040 0 NOTYPE GLOBAL DEFAULT 24 _bss_end__ - 73: 0000000000011030 0 NOTYPE GLOBAL DEFAULT 23 _edata - 74: 0000000000011038 4 OBJECT GLOBAL DEFAULT 24 z - 75: 0000000000011034 4 OBJECT GLOBAL DEFAULT 24 x - 76: 0000000000000798 0 FUNC GLOBAL HIDDEN 14 _fini - 77: 0000000000011040 0 NOTYPE GLOBAL DEFAULT 24 __bss_end__ - 78: 0000000000011020 0 NOTYPE GLOBAL DEFAULT 23 __data_start - 79: 0000000000000000 0 NOTYPE WEAK DEFAULT UND __gmon_start__ - 80: 0000000000011028 0 OBJECT GLOBAL HIDDEN 23 __dso_handle - 81: 0000000000000000 0 FUNC GLOBAL DEFAULT UND abort@GLIBC_2.17 - 82: 00000000000007ac 4 OBJECT GLOBAL DEFAULT 15 _IO_stdin_used - 83: 0000000000011040 0 NOTYPE GLOBAL DEFAULT 24 _end - 84: 0000000000000640 52 FUNC GLOBAL DEFAULT 13 _start - 85: 0000000000011040 0 NOTYPE GLOBAL DEFAULT 24 __end__ - 86: 0000000000011030 0 NOTYPE GLOBAL DEFAULT 24 __bss_start - 87: 0000000000000754 68 FUNC GLOBAL DEFAULT 13 main - 88: 0000000000011030 0 OBJECT GLOBAL HIDDEN 23 __TMC_END__ - 89: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_registerTMCloneTable - 90: 0000000000000598 0 FUNC GLOBAL HIDDEN 11 _init diff --git a/src/test/correct/using_gamma_conditional/clang_pic/using_gamma_conditional_gtirb.expected b/src/test/correct/using_gamma_conditional/clang_pic/using_gamma_conditional_gtirb.expected index 7891fa436..ed332c80b 100644 --- a/src/test/correct/using_gamma_conditional/clang_pic/using_gamma_conditional_gtirb.expected +++ b/src/test/correct/using_gamma_conditional/clang_pic/using_gamma_conditional_gtirb.expected @@ -2,34 +2,26 @@ var {:extern} CF: bv1; var {:extern} Gamma_CF: bool; var {:extern} Gamma_NF: bool; var {:extern} Gamma_R0: bool; -var {:extern} Gamma_R31: bool; var {:extern} Gamma_R8: bool; var {:extern} Gamma_VF: bool; var {:extern} Gamma_ZF: bool; var {:extern} Gamma_mem: [bv64]bool; -var {:extern} Gamma_stack: [bv64]bool; var {:extern} NF: bv1; var {:extern} R0: bv64; -var {:extern} R31: bv64; var {:extern} R8: bv64; var {:extern} VF: bv1; var {:extern} ZF: bv1; var {:extern} mem: [bv64]bv8; -var {:extern} stack: [bv64]bv8; const {:extern} $x_addr: bv64; -axiom ($x_addr == 69684bv64); +axiom ($x_addr == 131092bv64); const {:extern} $z_addr: bv64; -axiom ($z_addr == 69688bv64); +axiom ($z_addr == 131096bv64); function {:extern} L(mem$in: [bv64]bv8, index: bv64) returns (bool) { (if (index == $z_addr) then true else (if (index == $x_addr) then (memory_load32_le(mem$in, $z_addr) == 0bv32) else false)) } -function {:extern} {:bvbuiltin "bvadd"} bvadd32(bv32, bv32) returns (bv32); -function {:extern} {:bvbuiltin "bvadd"} bvadd33(bv33, bv33) returns (bv33); function {:extern} {:bvbuiltin "bvadd"} bvadd64(bv64, bv64) returns (bv64); function {:extern} {:bvbuiltin "bvcomp"} bvcomp32(bv32, bv32) returns (bv1); -function {:extern} {:bvbuiltin "bvcomp"} bvcomp33(bv33, bv33) returns (bv1); -function {:extern} {:bvbuiltin "bvnot"} bvnot1(bv1) returns (bv1); function {:extern} gamma_load32(gammaMap: [bv64]bool, index: bv64) returns (bool) { (gammaMap[bvadd64(index, 3bv64)] && (gammaMap[bvadd64(index, 2bv64)] && (gammaMap[bvadd64(index, 1bv64)] && gammaMap[index]))) } @@ -38,10 +30,6 @@ function {:extern} gamma_load64(gammaMap: [bv64]bool, index: bv64) returns (bool (gammaMap[bvadd64(index, 7bv64)] && (gammaMap[bvadd64(index, 6bv64)] && (gammaMap[bvadd64(index, 5bv64)] && (gammaMap[bvadd64(index, 4bv64)] && (gammaMap[bvadd64(index, 3bv64)] && (gammaMap[bvadd64(index, 2bv64)] && (gammaMap[bvadd64(index, 1bv64)] && gammaMap[index]))))))) } -function {:extern} gamma_store32(gammaMap: [bv64]bool, index: bv64, value: bool) returns ([bv64]bool) { - gammaMap[index := value][bvadd64(index, 1bv64) := value][bvadd64(index, 2bv64) := value][bvadd64(index, 3bv64) := value] -} - function {:extern} memory_load32_le(memory: [bv64]bv8, index: bv64) returns (bv32) { (memory[bvadd64(index, 3bv64)] ++ (memory[bvadd64(index, 2bv64)] ++ (memory[bvadd64(index, 1bv64)] ++ memory[index]))) } @@ -50,22 +38,17 @@ function {:extern} memory_load64_le(memory: [bv64]bv8, index: bv64) returns (bv6 (memory[bvadd64(index, 7bv64)] ++ (memory[bvadd64(index, 6bv64)] ++ (memory[bvadd64(index, 5bv64)] ++ (memory[bvadd64(index, 4bv64)] ++ (memory[bvadd64(index, 3bv64)] ++ (memory[bvadd64(index, 2bv64)] ++ (memory[bvadd64(index, 1bv64)] ++ memory[index]))))))) } -function {:extern} memory_store32_le(memory: [bv64]bv8, index: bv64, value: bv32) returns ([bv64]bv8) { - memory[index := value[8:0]][bvadd64(index, 1bv64) := value[16:8]][bvadd64(index, 2bv64) := value[24:16]][bvadd64(index, 3bv64) := value[32:24]] -} - -function {:extern} {:bvbuiltin "zero_extend 1"} zero_extend1_32(bv32) returns (bv33); function {:extern} {:bvbuiltin "zero_extend 32"} zero_extend32_32(bv32) returns (bv64); procedure {:extern} rely(); modifies Gamma_mem, mem; ensures (forall i: bv64 :: (((mem[i] == old(mem[i])) ==> (Gamma_mem[i] == old(Gamma_mem[i]))))); ensures (old(gamma_load32(Gamma_mem, $x_addr)) ==> gamma_load32(Gamma_mem, $x_addr)); - free ensures (memory_load32_le(mem, 1964bv64) == 131073bv32); - free ensures (memory_load64_le(mem, 69056bv64) == 1872bv64); - free ensures (memory_load64_le(mem, 69064bv64) == 1792bv64); - free ensures (memory_load64_le(mem, 69576bv64) == 69684bv64); - free ensures (memory_load64_le(mem, 69592bv64) == 1876bv64); - free ensures (memory_load64_le(mem, 69672bv64) == 69672bv64); + free ensures (memory_load32_le(mem, 2304bv64) == 131073bv32); + free ensures (memory_load64_le(mem, 130432bv64) == 2256bv64); + free ensures (memory_load64_le(mem, 130440bv64) == 2176bv64); + free ensures (memory_load64_le(mem, 131040bv64) == 131092bv64); + free ensures (memory_load64_le(mem, 131056bv64) == 2260bv64); + free ensures (memory_load64_le(mem, 131080bv64) == 131080bv64); procedure {:extern} rely_transitive(); modifies Gamma_mem, mem; @@ -92,98 +75,57 @@ implementation {:extern} guarantee_reflexive() assert ((memory_load32_le(mem, $x_addr) == memory_load32_le(mem, $x_addr)) && (memory_load32_le(mem, $z_addr) == memory_load32_le(mem, $z_addr))); } -procedure main_1876(); - modifies CF, Gamma_CF, Gamma_NF, Gamma_R0, Gamma_R31, Gamma_R8, Gamma_VF, Gamma_ZF, Gamma_mem, Gamma_stack, NF, R0, R31, R8, VF, ZF, mem, stack; +procedure main(); + modifies CF, Gamma_CF, Gamma_NF, Gamma_R0, Gamma_R8, Gamma_VF, Gamma_ZF, Gamma_mem, NF, R0, R8, VF, ZF, mem; requires (gamma_load32(Gamma_mem, $x_addr) == true); - free requires (memory_load64_le(mem, 69664bv64) == 0bv64); - free requires (memory_load64_le(mem, 69672bv64) == 69672bv64); - free requires (memory_load32_le(mem, 1964bv64) == 131073bv32); - free requires (memory_load64_le(mem, 69056bv64) == 1872bv64); - free requires (memory_load64_le(mem, 69064bv64) == 1792bv64); - free requires (memory_load64_le(mem, 69576bv64) == 69684bv64); - free requires (memory_load64_le(mem, 69592bv64) == 1876bv64); - free requires (memory_load64_le(mem, 69672bv64) == 69672bv64); - free ensures (Gamma_R31 == old(Gamma_R31)); - free ensures (R31 == old(R31)); - free ensures (memory_load32_le(mem, 1964bv64) == 131073bv32); - free ensures (memory_load64_le(mem, 69056bv64) == 1872bv64); - free ensures (memory_load64_le(mem, 69064bv64) == 1792bv64); - free ensures (memory_load64_le(mem, 69576bv64) == 69684bv64); - free ensures (memory_load64_le(mem, 69592bv64) == 1876bv64); - free ensures (memory_load64_le(mem, 69672bv64) == 69672bv64); - -implementation main_1876() + free requires (memory_load64_le(mem, 131072bv64) == 0bv64); + free requires (memory_load64_le(mem, 131080bv64) == 131080bv64); + free requires (memory_load32_le(mem, 2304bv64) == 131073bv32); + free requires (memory_load64_le(mem, 130432bv64) == 2256bv64); + free requires (memory_load64_le(mem, 130440bv64) == 2176bv64); + free requires (memory_load64_le(mem, 131040bv64) == 131092bv64); + free requires (memory_load64_le(mem, 131056bv64) == 2260bv64); + free requires (memory_load64_le(mem, 131080bv64) == 131080bv64); + free ensures (memory_load32_le(mem, 2304bv64) == 131073bv32); + free ensures (memory_load64_le(mem, 130432bv64) == 2256bv64); + free ensures (memory_load64_le(mem, 130440bv64) == 2176bv64); + free ensures (memory_load64_le(mem, 131040bv64) == 131092bv64); + free ensures (memory_load64_le(mem, 131056bv64) == 2260bv64); + free ensures (memory_load64_le(mem, 131080bv64) == 131080bv64); + +implementation main() { - var Cse0__5_1_5: bv32; - var Gamma_Cse0__5_1_5: bool; - var Gamma_load14: bool; - var Gamma_load15: bool; - var Gamma_load16: bool; - var load14: bv64; - var load15: bv32; - var load16: bv32; - main_1876__0__WvserH3~TZmxgcnn~OP60A: - assume {:captureState "main_1876__0__WvserH3~TZmxgcnn~OP60A"} true; - R31, Gamma_R31 := bvadd64(R31, 18446744073709551600bv64), Gamma_R31; - stack, Gamma_stack := memory_store32_le(stack, bvadd64(R31, 12bv64), 0bv32), gamma_store32(Gamma_stack, bvadd64(R31, 12bv64), true); - assume {:captureState "1880_0"} true; - R8, Gamma_R8 := 65536bv64, true; + var $load19: bv64; + var $load20: bv32; + var Gamma_$load19: bool; + var Gamma_$load20: bool; + $main$__0__$IkNYmV06TxC75h8A4NM3wA: + assume {:captureState "$main$__0__$IkNYmV06TxC75h8A4NM3wA"} true; + R8, Gamma_R8 := 126976bv64, true; call rely(); - load14, Gamma_load14 := memory_load64_le(mem, bvadd64(R8, 4040bv64)), (gamma_load64(Gamma_mem, bvadd64(R8, 4040bv64)) || L(mem, bvadd64(R8, 4040bv64))); - R8, Gamma_R8 := load14, Gamma_load14; + $load19, Gamma_$load19 := memory_load64_le(mem, bvadd64(R8, 4064bv64)), (gamma_load64(Gamma_mem, bvadd64(R8, 4064bv64)) || L(mem, bvadd64(R8, 4064bv64))); + R8, Gamma_R8 := $load19, Gamma_$load19; call rely(); - load15, Gamma_load15 := memory_load32_le(mem, R8), (gamma_load32(Gamma_mem, R8) || L(mem, R8)); - R8, Gamma_R8 := zero_extend32_32(load15), Gamma_load15; - Cse0__5_1_5, Gamma_Cse0__5_1_5 := bvadd32(R8[32:0], 0bv32), Gamma_R8; - VF, Gamma_VF := bvnot1(bvcomp32(Cse0__5_1_5, Cse0__5_1_5)), Gamma_Cse0__5_1_5; - CF, Gamma_CF := bvnot1(bvcomp33(zero_extend1_32(Cse0__5_1_5), bvadd33(zero_extend1_32(R8[32:0]), 4294967296bv33))), (Gamma_R8 && Gamma_Cse0__5_1_5); - ZF, Gamma_ZF := bvcomp32(Cse0__5_1_5, 0bv32), Gamma_Cse0__5_1_5; - NF, Gamma_NF := Cse0__5_1_5[32:31], Gamma_Cse0__5_1_5; - R8, Gamma_R8 := zero_extend32_32(Cse0__5_1_5), Gamma_Cse0__5_1_5; + $load20, Gamma_$load20 := memory_load32_le(mem, R8), (gamma_load32(Gamma_mem, R8) || L(mem, R8)); + R8, Gamma_R8 := zero_extend32_32($load20), Gamma_$load20; + VF, Gamma_VF := 0bv1, true; + CF, Gamma_CF := 1bv1, true; + ZF, Gamma_ZF := bvcomp32(R8[32:0], 0bv32), Gamma_R8; + NF, Gamma_NF := R8[32:31], Gamma_R8; assert Gamma_ZF; - goto main_1876__0__WvserH3~TZmxgcnn~OP60A$__0, main_1876__0__WvserH3~TZmxgcnn~OP60A$__1; - main_1876__0__WvserH3~TZmxgcnn~OP60A$__1: - assume {:captureState "main_1876__0__WvserH3~TZmxgcnn~OP60A$__1"} true; - assume (!(!(ZF == 1bv1))); - R8, Gamma_R8 := 1bv64, true; - assert Gamma_R8; - goto main_1876__0__WvserH3~TZmxgcnn~OP60A_goto_main_1876__3__GuPi8JNBSIam340giZcdIw, main_1876__0__WvserH3~TZmxgcnn~OP60A_goto_main_1876__1__G0q4wFaXSHCrjXIW8xOBDQ; - main_1876__0__WvserH3~TZmxgcnn~OP60A$__0: - assume {:captureState "main_1876__0__WvserH3~TZmxgcnn~OP60A$__0"} true; + goto $main$__0__$IkNYmV06TxC75h8A4NM3wA$__0, $main$__0__$IkNYmV06TxC75h8A4NM3wA$__1; + $main$__0__$IkNYmV06TxC75h8A4NM3wA$__0: + assume {:captureState "$main$__0__$IkNYmV06TxC75h8A4NM3wA$__0"} true; assume (!(ZF == 1bv1)); - R8, Gamma_R8 := 0bv64, true; - assert Gamma_R8; - goto main_1876__0__WvserH3~TZmxgcnn~OP60A_goto_main_1876__3__GuPi8JNBSIam340giZcdIw, main_1876__0__WvserH3~TZmxgcnn~OP60A_goto_main_1876__1__G0q4wFaXSHCrjXIW8xOBDQ; - main_1876__0__WvserH3~TZmxgcnn~OP60A_goto_main_1876__1__G0q4wFaXSHCrjXIW8xOBDQ: - assume {:captureState "main_1876__0__WvserH3~TZmxgcnn~OP60A_goto_main_1876__1__G0q4wFaXSHCrjXIW8xOBDQ"} true; - assume (!(R8[1:0] == 1bv1)); - goto main_1876__1__G0q4wFaXSHCrjXIW8xOBDQ; - main_1876__1__G0q4wFaXSHCrjXIW8xOBDQ: - assume {:captureState "main_1876__1__G0q4wFaXSHCrjXIW8xOBDQ"} true; - goto main_1876__2__z5KdSl61QzyIK9muKLFxgQ; - main_1876__2__z5KdSl61QzyIK9muKLFxgQ: - assume {:captureState "main_1876__2__z5KdSl61QzyIK9muKLFxgQ"} true; - stack, Gamma_stack := memory_store32_le(stack, bvadd64(R31, 12bv64), 0bv32), gamma_store32(Gamma_stack, bvadd64(R31, 12bv64), true); - assume {:captureState "1912_0"} true; - goto main_1876__4__5nmLw0UdTXyYfW~alw3bBw; - main_1876__0__WvserH3~TZmxgcnn~OP60A_goto_main_1876__3__GuPi8JNBSIam340giZcdIw: - assume {:captureState "main_1876__0__WvserH3~TZmxgcnn~OP60A_goto_main_1876__3__GuPi8JNBSIam340giZcdIw"} true; - assume (R8[1:0] == 1bv1); - R8, Gamma_R8 := 1bv64, true; - stack, Gamma_stack := memory_store32_le(stack, bvadd64(R31, 12bv64), R8[32:0]), gamma_store32(Gamma_stack, bvadd64(R31, 12bv64), Gamma_R8); - assume {:captureState "1924_0"} true; - goto main_1876__3__GuPi8JNBSIam340giZcdIw; - main_1876__3__GuPi8JNBSIam340giZcdIw: - assume {:captureState "main_1876__3__GuPi8JNBSIam340giZcdIw"} true; - goto main_1876__4__5nmLw0UdTXyYfW~alw3bBw; - main_1876__4__5nmLw0UdTXyYfW~alw3bBw: - assume {:captureState "main_1876__4__5nmLw0UdTXyYfW~alw3bBw"} true; - load16, Gamma_load16 := memory_load32_le(stack, bvadd64(R31, 12bv64)), gamma_load32(Gamma_stack, bvadd64(R31, 12bv64)); - R0, Gamma_R0 := zero_extend32_32(load16), Gamma_load16; - R31, Gamma_R31 := bvadd64(R31, 16bv64), Gamma_R31; - goto main_1876_basil_return; - main_1876_basil_return: - assume {:captureState "main_1876_basil_return"} true; + R0, Gamma_R0 := 0bv64, true; + goto main_basil_return; + $main$__0__$IkNYmV06TxC75h8A4NM3wA$__1: + assume {:captureState "$main$__0__$IkNYmV06TxC75h8A4NM3wA$__1"} true; + assume (!(!(ZF == 1bv1))); + R0, Gamma_R0 := 1bv64, true; + goto main_basil_return; + main_basil_return: + assume {:captureState "main_basil_return"} true; return; } diff --git a/src/test/correct/using_gamma_conditional/gcc/using_gamma_conditional.adt b/src/test/correct/using_gamma_conditional/gcc/using_gamma_conditional.adt deleted file mode 100644 index 98a047a66..000000000 --- a/src/test/correct/using_gamma_conditional/gcc/using_gamma_conditional.adt +++ /dev/null @@ -1,516 +0,0 @@ -Project(Attrs([Attr("filename","\"gcc/using_gamma_conditional.out\""), -Attr("image-specification","(declare abi (name str))\n(declare arch (name str))\n(declare base-address (addr int))\n(declare bias (off int))\n(declare bits (size int))\n(declare code-region (addr int) (size int) (off int))\n(declare code-start (addr int))\n(declare entry-point (addr int))\n(declare external-reference (addr int) (name str))\n(declare format (name str))\n(declare is-executable (flag bool))\n(declare is-little-endian (flag bool))\n(declare llvm:base-address (addr int))\n(declare llvm:code-entry (name str) (off int) (size int))\n(declare llvm:coff-import-library (name str))\n(declare llvm:coff-virtual-section-header (name str) (addr int) (size int))\n(declare llvm:elf-program-header (name str) (off int) (size int))\n(declare llvm:elf-program-header-flags (name str) (ld bool) (r bool) \n (w bool) (x bool))\n(declare llvm:elf-virtual-program-header (name str) (addr int) (size int))\n(declare llvm:entry-point (addr int))\n(declare llvm:macho-symbol (name str) (value int))\n(declare llvm:name-reference (at int) (name str))\n(declare llvm:relocation (at int) (addr int))\n(declare llvm:section-entry (name str) (addr int) (size int) (off int))\n(declare llvm:section-flags (name str) (r bool) (w bool) (x bool))\n(declare llvm:segment-command (name str) (off int) (size int))\n(declare llvm:segment-command-flags (name str) (r bool) (w bool) (x bool))\n(declare llvm:symbol-entry (name str) (addr int) (size int) (off int)\n (value int))\n(declare llvm:virtual-segment-command (name str) (addr int) (size int))\n(declare mapped (addr int) (size int) (off int))\n(declare named-region (addr int) (size int) (name str))\n(declare named-symbol (addr int) (name str))\n(declare require (name str))\n(declare section (addr int) (size int))\n(declare segment (addr int) (size int) (r bool) (w bool) (x bool))\n(declare subarch (name str))\n(declare symbol-chunk (addr int) (size int) (root int))\n(declare symbol-value (addr int) (value int))\n(declare system (name str))\n(declare vendor (name str))\n\n(abi unknown)\n(arch aarch64)\n(base-address 0)\n(bias 0)\n(bits 64)\n(code-region 1848 20 1848)\n(code-region 1536 312 1536)\n(code-region 1440 96 1440)\n(code-region 1408 24 1408)\n(code-start 1588)\n(code-start 1536)\n(code-start 1812)\n(entry-point 1536)\n(external-reference 69592 _ITM_deregisterTMCloneTable)\n(external-reference 69600 __cxa_finalize)\n(external-reference 69608 __gmon_start__)\n(external-reference 69624 _ITM_registerTMCloneTable)\n(external-reference 69552 __libc_start_main)\n(external-reference 69560 __cxa_finalize)\n(external-reference 69568 __gmon_start__)\n(external-reference 69576 abort)\n(format elf)\n(is-executable true)\n(is-little-endian true)\n(llvm:base-address 0)\n(llvm:code-entry abort 0 0)\n(llvm:code-entry __cxa_finalize 0 0)\n(llvm:code-entry __libc_start_main 0 0)\n(llvm:code-entry _init 1408 0)\n(llvm:code-entry main 1812 36)\n(llvm:code-entry _start 1536 52)\n(llvm:code-entry abort@GLIBC_2.17 0 0)\n(llvm:code-entry _fini 1848 0)\n(llvm:code-entry __cxa_finalize@GLIBC_2.17 0 0)\n(llvm:code-entry __libc_start_main@GLIBC_2.34 0 0)\n(llvm:code-entry frame_dummy 1808 0)\n(llvm:code-entry __do_global_dtors_aux 1728 0)\n(llvm:code-entry register_tm_clones 1664 0)\n(llvm:code-entry deregister_tm_clones 1616 0)\n(llvm:code-entry call_weak_fn 1588 20)\n(llvm:code-entry .fini 1848 20)\n(llvm:code-entry .text 1536 312)\n(llvm:code-entry .plt 1440 96)\n(llvm:code-entry .init 1408 24)\n(llvm:elf-program-header 08 3480 616)\n(llvm:elf-program-header 07 0 0)\n(llvm:elf-program-header 06 1872 60)\n(llvm:elf-program-header 05 596 68)\n(llvm:elf-program-header 04 3496 496)\n(llvm:elf-program-header 03 3480 632)\n(llvm:elf-program-header 02 0 2096)\n(llvm:elf-program-header 01 568 27)\n(llvm:elf-program-header 00 64 504)\n(llvm:elf-program-header-flags 08 false true false false)\n(llvm:elf-program-header-flags 07 false true true false)\n(llvm:elf-program-header-flags 06 false true false false)\n(llvm:elf-program-header-flags 05 false true false false)\n(llvm:elf-program-header-flags 04 false true true false)\n(llvm:elf-program-header-flags 03 true true true false)\n(llvm:elf-program-header-flags 02 true true false true)\n(llvm:elf-program-header-flags 01 false true false false)\n(llvm:elf-program-header-flags 00 false true false false)\n(llvm:elf-virtual-program-header 08 69016 616)\n(llvm:elf-virtual-program-header 07 0 0)\n(llvm:elf-virtual-program-header 06 1872 60)\n(llvm:elf-virtual-program-header 05 596 68)\n(llvm:elf-virtual-program-header 04 69032 496)\n(llvm:elf-virtual-program-header 03 69016 648)\n(llvm:elf-virtual-program-header 02 0 2096)\n(llvm:elf-virtual-program-header 01 568 27)\n(llvm:elf-virtual-program-header 00 64 504)\n(llvm:entry-point 1536)\n(llvm:name-reference 69576 abort)\n(llvm:name-reference 69568 __gmon_start__)\n(llvm:name-reference 69560 __cxa_finalize)\n(llvm:name-reference 69552 __libc_start_main)\n(llvm:name-reference 69624 _ITM_registerTMCloneTable)\n(llvm:name-reference 69608 __gmon_start__)\n(llvm:name-reference 69600 __cxa_finalize)\n(llvm:name-reference 69592 _ITM_deregisterTMCloneTable)\n(llvm:section-entry .shstrtab 0 250 6857)\n(llvm:section-entry .strtab 0 561 6296)\n(llvm:section-entry .symtab 0 2136 4160)\n(llvm:section-entry .comment 0 43 4112)\n(llvm:section-entry .bss 69648 16 4112)\n(llvm:section-entry .data 69632 16 4096)\n(llvm:section-entry .got 69528 104 3992)\n(llvm:section-entry .dynamic 69032 496 3496)\n(llvm:section-entry .fini_array 69024 8 3488)\n(llvm:section-entry .init_array 69016 8 3480)\n(llvm:section-entry .eh_frame 1936 160 1936)\n(llvm:section-entry .eh_frame_hdr 1872 60 1872)\n(llvm:section-entry .rodata 1868 4 1868)\n(llvm:section-entry .fini 1848 20 1848)\n(llvm:section-entry .text 1536 312 1536)\n(llvm:section-entry .plt 1440 96 1440)\n(llvm:section-entry .init 1408 24 1408)\n(llvm:section-entry .rela.plt 1312 96 1312)\n(llvm:section-entry .rela.dyn 1120 192 1120)\n(llvm:section-entry .gnu.version_r 1072 48 1072)\n(llvm:section-entry .gnu.version 1054 18 1054)\n(llvm:section-entry .dynstr 912 141 912)\n(llvm:section-entry .dynsym 696 216 696)\n(llvm:section-entry .gnu.hash 664 28 664)\n(llvm:section-entry .note.ABI-tag 632 32 632)\n(llvm:section-entry .note.gnu.build-id 596 36 596)\n(llvm:section-entry .interp 568 27 568)\n(llvm:section-flags .shstrtab true false false)\n(llvm:section-flags .strtab true false false)\n(llvm:section-flags .symtab true false false)\n(llvm:section-flags .comment true false false)\n(llvm:section-flags .bss true true false)\n(llvm:section-flags .data true true false)\n(llvm:section-flags .got true true false)\n(llvm:section-flags .dynamic true true false)\n(llvm:section-flags .fini_array true true false)\n(llvm:section-flags .init_array true true false)\n(llvm:section-flags .eh_frame true false false)\n(llvm:section-flags .eh_frame_hdr true false false)\n(llvm:section-flags .rodata true false false)\n(llvm:section-flags .fini true false true)\n(llvm:section-flags .text true false true)\n(llvm:section-flags .plt true false true)\n(llvm:section-flags .init true false true)\n(llvm:section-flags .rela.plt true false false)\n(llvm:section-flags .rela.dyn true false false)\n(llvm:section-flags .gnu.version_r true false false)\n(llvm:section-flags .gnu.version true false false)\n(llvm:section-flags .dynstr true false false)\n(llvm:section-flags .dynsym true false false)\n(llvm:section-flags .gnu.hash true false false)\n(llvm:section-flags .note.ABI-tag true false false)\n(llvm:section-flags .note.gnu.build-id true false false)\n(llvm:section-flags .interp true false false)\n(llvm:symbol-entry abort 0 0 0 0)\n(llvm:symbol-entry __cxa_finalize 0 0 0 0)\n(llvm:symbol-entry __libc_start_main 0 0 0 0)\n(llvm:symbol-entry _init 1408 0 1408 1408)\n(llvm:symbol-entry main 1812 36 1812 1812)\n(llvm:symbol-entry _start 1536 52 1536 1536)\n(llvm:symbol-entry abort@GLIBC_2.17 0 0 0 0)\n(llvm:symbol-entry _fini 1848 0 1848 1848)\n(llvm:symbol-entry __cxa_finalize@GLIBC_2.17 0 0 0 0)\n(llvm:symbol-entry __libc_start_main@GLIBC_2.34 0 0 0 0)\n(llvm:symbol-entry frame_dummy 1808 0 1808 1808)\n(llvm:symbol-entry __do_global_dtors_aux 1728 0 1728 1728)\n(llvm:symbol-entry register_tm_clones 1664 0 1664 1664)\n(llvm:symbol-entry deregister_tm_clones 1616 0 1616 1616)\n(llvm:symbol-entry call_weak_fn 1588 20 1588 1588)\n(mapped 0 2096 0)\n(mapped 69016 632 3480)\n(named-region 0 2096 02)\n(named-region 69016 648 03)\n(named-region 568 27 .interp)\n(named-region 596 36 .note.gnu.build-id)\n(named-region 632 32 .note.ABI-tag)\n(named-region 664 28 .gnu.hash)\n(named-region 696 216 .dynsym)\n(named-region 912 141 .dynstr)\n(named-region 1054 18 .gnu.version)\n(named-region 1072 48 .gnu.version_r)\n(named-region 1120 192 .rela.dyn)\n(named-region 1312 96 .rela.plt)\n(named-region 1408 24 .init)\n(named-region 1440 96 .plt)\n(named-region 1536 312 .text)\n(named-region 1848 20 .fini)\n(named-region 1868 4 .rodata)\n(named-region 1872 60 .eh_frame_hdr)\n(named-region 1936 160 .eh_frame)\n(named-region 69016 8 .init_array)\n(named-region 69024 8 .fini_array)\n(named-region 69032 496 .dynamic)\n(named-region 69528 104 .got)\n(named-region 69632 16 .data)\n(named-region 69648 16 .bss)\n(named-region 0 43 .comment)\n(named-region 0 2136 .symtab)\n(named-region 0 561 .strtab)\n(named-region 0 250 .shstrtab)\n(named-symbol 1588 call_weak_fn)\n(named-symbol 1616 deregister_tm_clones)\n(named-symbol 1664 register_tm_clones)\n(named-symbol 1728 __do_global_dtors_aux)\n(named-symbol 1808 frame_dummy)\n(named-symbol 0 __libc_start_main@GLIBC_2.34)\n(named-symbol 0 __cxa_finalize@GLIBC_2.17)\n(named-symbol 1848 _fini)\n(named-symbol 0 abort@GLIBC_2.17)\n(named-symbol 1536 _start)\n(named-symbol 1812 main)\n(named-symbol 1408 _init)\n(named-symbol 0 __libc_start_main)\n(named-symbol 0 __cxa_finalize)\n(named-symbol 0 abort)\n(require libc.so.6)\n(section 568 27)\n(section 596 36)\n(section 632 32)\n(section 664 28)\n(section 696 216)\n(section 912 141)\n(section 1054 18)\n(section 1072 48)\n(section 1120 192)\n(section 1312 96)\n(section 1408 24)\n(section 1440 96)\n(section 1536 312)\n(section 1848 20)\n(section 1868 4)\n(section 1872 60)\n(section 1936 160)\n(section 69016 8)\n(section 69024 8)\n(section 69032 496)\n(section 69528 104)\n(section 69632 16)\n(section 69648 16)\n(section 0 43)\n(section 0 2136)\n(section 0 561)\n(section 0 250)\n(segment 0 2096 true false true)\n(segment 69016 648 true true false)\n(subarch v8)\n(symbol-chunk 1588 20 1588)\n(symbol-chunk 1536 52 1536)\n(symbol-chunk 1812 36 1812)\n(symbol-value 1588 1588)\n(symbol-value 1616 1616)\n(symbol-value 1664 1664)\n(symbol-value 1728 1728)\n(symbol-value 1808 1808)\n(symbol-value 1848 1848)\n(symbol-value 1536 1536)\n(symbol-value 1812 1812)\n(symbol-value 1408 1408)\n(symbol-value 0 0)\n(system \"\")\n(vendor \"\")\n"), -Attr("abi-name","\"aarch64-linux-gnu-elf\"")]), -Sections([Section(".shstrtab", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x00\x06\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xc8\x1b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x38\x00\x09\x00\x40\x00\x1c\x00\x1b\x00\x06\x00\x00\x00\x04\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x04\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x30\x08\x00\x00\x00\x00\x00\x00\x30\x08\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x01\x00\x00\x00\x06\x00\x00\x00\x98\x0d\x00\x00\x00\x00\x00\x00\x98\x0d"), -Section(".strtab", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x00\x06\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xc8\x1b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x38\x00\x09\x00\x40\x00\x1c\x00\x1b\x00\x06\x00\x00\x00\x04\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x04\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x30\x08\x00\x00\x00\x00\x00\x00\x30\x08\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x01\x00\x00\x00\x06\x00\x00\x00\x98\x0d\x00\x00\x00\x00\x00\x00\x98\x0d\x01\x00\x00\x00\x00\x00\x98\x0d\x01\x00\x00\x00\x00\x00\x78\x02\x00\x00\x00\x00\x00\x00\x88\x02\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x02\x00\x00\x00\x06\x00\x00\x00\xa8\x0d\x00\x00\x00\x00\x00\x00\xa8\x0d\x01\x00\x00\x00\x00\x00\xa8\x0d\x01\x00\x00\x00\x00\x00\xf0\x01\x00\x00\x00\x00\x00\x00\xf0\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x04\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x50\xe5\x74\x64\x04\x00\x00\x00\x50\x07\x00\x00\x00\x00\x00\x00\x50\x07\x00\x00\x00\x00\x00\x00\x50\x07\x00\x00\x00\x00\x00\x00\x3c\x00\x00\x00\x00\x00\x00\x00\x3c\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x51\xe5\x74\x64\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x52\xe5\x74\x64\x04\x00\x00\x00\x98\x0d\x00\x00\x00\x00\x00\x00\x98\x0d\x01\x00\x00\x00\x00\x00\x98\x0d\x01\x00\x00\x00\x00\x00\x68\x02\x00\x00\x00\x00\x00\x00\x68\x02\x00\x00\x00\x00\x00\x00\x01"), -Section(".comment", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x00\x06\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xc8\x1b\x00"), -Section(".interp", 0x238, "\x2f\x6c\x69\x62\x2f\x6c\x64\x2d\x6c\x69\x6e\x75\x78\x2d\x61\x61\x72\x63\x68\x36\x34\x2e\x73\x6f\x2e\x31\x00"), -Section(".note.gnu.build-id", 0x254, "\x04\x00\x00\x00\x14\x00\x00\x00\x03\x00\x00\x00\x47\x4e\x55\x00\x14\x8e\x60\x1f\x3f\x55\x93\xa2\x52\x19\x34\x2c\x90\x9b\x41\x38\xfc\x4f\x5d\xeb"), -Section(".note.ABI-tag", 0x278, "\x04\x00\x00\x00\x10\x00\x00\x00\x01\x00\x00\x00\x47\x4e\x55\x00\x00\x00\x00\x00\x03\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00"), -Section(".gnu.hash", 0x298, "\x01\x00\x00\x00\x01\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".dynsym", 0x2B8, "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x0b\x00\x80\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x16\x00\x00\x10\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x48\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x22\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x22\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x73\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".dynstr", 0x390, "\x00\x5f\x5f\x63\x78\x61\x5f\x66\x69\x6e\x61\x6c\x69\x7a\x65\x00\x5f\x5f\x6c\x69\x62\x63\x5f\x73\x74\x61\x72\x74\x5f\x6d\x61\x69\x6e\x00\x61\x62\x6f\x72\x74\x00\x6c\x69\x62\x63\x2e\x73\x6f\x2e\x36\x00\x47\x4c\x49\x42\x43\x5f\x32\x2e\x31\x37\x00\x47\x4c\x49\x42\x43\x5f\x32\x2e\x33\x34\x00\x5f\x49\x54\x4d\x5f\x64\x65\x72\x65\x67\x69\x73\x74\x65\x72\x54\x4d\x43\x6c\x6f\x6e\x65\x54\x61\x62\x6c\x65\x00\x5f\x5f\x67\x6d\x6f\x6e\x5f\x73\x74\x61\x72\x74\x5f\x5f\x00\x5f\x49\x54\x4d\x5f\x72\x65\x67\x69\x73\x74\x65\x72\x54\x4d\x43\x6c\x6f\x6e\x65\x54\x61\x62\x6c\x65\x00"), -Section(".gnu.version", 0x41E, "\x00\x00\x00\x00\x00\x00\x02\x00\x01\x00\x03\x00\x01\x00\x03\x00\x01\x00"), -Section(".gnu.version_r", 0x430, "\x01\x00\x02\x00\x28\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x97\x91\x96\x06\x00\x00\x03\x00\x32\x00\x00\x00\x10\x00\x00\x00\xb4\x91\x96\x06\x00\x00\x02\x00\x3d\x00\x00\x00\x00\x00\x00\x00"), -Section(".rela.dyn", 0x460, "\x98\x0d\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x10\x07\x00\x00\x00\x00\x00\x00\xa0\x0d\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\xc0\x06\x00\x00\x00\x00\x00\x00\xf0\x0f\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x14\x07\x00\x00\x00\x00\x00\x00\x08\x10\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x08\x10\x01\x00\x00\x00\x00\x00\xd8\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe0\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe8\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xf8\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".rela.plt", 0x520, "\xb0\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xb8\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xc0\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xc8\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".init", 0x580, "\x1f\x20\x03\xd5\xfd\x7b\xbf\xa9\xfd\x03\x00\x91\x2a\x00\x00\x94\xfd\x7b\xc1\xa8\xc0\x03\x5f\xd6"), -Section(".plt", 0x5A0, "\xf0\x7b\xbf\xa9\x90\x00\x00\x90\x11\xd6\x47\xf9\x10\xa2\x3e\x91\x20\x02\x1f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x90\x00\x00\x90\x11\xda\x47\xf9\x10\xc2\x3e\x91\x20\x02\x1f\xd6\x90\x00\x00\x90\x11\xde\x47\xf9\x10\xe2\x3e\x91\x20\x02\x1f\xd6\x90\x00\x00\x90\x11\xe2\x47\xf9\x10\x02\x3f\x91\x20\x02\x1f\xd6\x90\x00\x00\x90\x11\xe6\x47\xf9\x10\x22\x3f\x91\x20\x02\x1f\xd6"), -Section(".text", 0x600, "\x1f\x20\x03\xd5\x1d\x00\x80\xd2\x1e\x00\x80\xd2\xe5\x03\x00\xaa\xe1\x03\x40\xf9\xe2\x23\x00\x91\xe6\x03\x00\x91\x80\x00\x00\x90\x00\xf8\x47\xf9\x03\x00\x80\xd2\x04\x00\x80\xd2\xe5\xff\xff\x97\xf0\xff\xff\x97\x80\x00\x00\x90\x00\xf4\x47\xf9\x40\x00\x00\xb4\xe8\xff\xff\x17\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x80\x00\x00\xb0\x00\x40\x00\x91\x81\x00\x00\xb0\x21\x40\x00\x91\x3f\x00\x00\xeb\xc0\x00\x00\x54\x81\x00\x00\x90\x21\xec\x47\xf9\x61\x00\x00\xb4\xf0\x03\x01\xaa\x00\x02\x1f\xd6\xc0\x03\x5f\xd6\x80\x00\x00\xb0\x00\x40\x00\x91\x81\x00\x00\xb0\x21\x40\x00\x91\x21\x00\x00\xcb\x22\xfc\x7f\xd3\x41\x0c\x81\x8b\x21\xfc\x41\x93\xc1\x00\x00\xb4\x82\x00\x00\x90\x42\xfc\x47\xf9\x62\x00\x00\xb4\xf0\x03\x02\xaa\x00\x02\x1f\xd6\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\xfd\x7b\xbe\xa9\xfd\x03\x00\x91\xf3\x0b\x00\xf9\x93\x00\x00\xb0\x60\x42\x40\x39\x40\x01\x00\x35\x80\x00\x00\x90\x00\xf0\x47\xf9\x80\x00\x00\xb4\x80\x00\x00\xb0\x00\x04\x40\xf9\xb9\xff\xff\x97\xd8\xff\xff\x97\x20\x00\x80\x52\x60\x42\x00\x39\xf3\x0b\x40\xf9\xfd\x7b\xc2\xa8\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\xdc\xff\xff\x17\x80\x00\x00\xb0\x00\x50\x00\x91\x00\x00\x40\xb9\x1f\x00\x00\x71\x60\x00\x00\x54\x00\x00\x80\x52\x02\x00\x00\x14\x20\x00\x80\x52\xc0\x03\x5f\xd6"), -Section(".fini", 0x738, "\x1f\x20\x03\xd5\xfd\x7b\xbf\xa9\xfd\x03\x00\x91\xfd\x7b\xc1\xa8\xc0\x03\x5f\xd6"), -Section(".rodata", 0x74C, "\x01\x00\x02\x00"), -Section(".eh_frame_hdr", 0x750, "\x01\x1b\x03\x3b\x3c\x00\x00\x00\x06\x00\x00\x00\xb0\xfe\xff\xff\x54\x00\x00\x00\x00\xff\xff\xff\x68\x00\x00\x00\x30\xff\xff\xff\x7c\x00\x00\x00\x70\xff\xff\xff\x90\x00\x00\x00\xc0\xff\xff\xff\xb4\x00\x00\x00\xc4\xff\xff\xff\xc8\x00\x00\x00"), -Section(".eh_frame", 0x790, "\x10\x00\x00\x00\x00\x00\x00\x00\x01\x7a\x52\x00\x04\x78\x1e\x01\x1b\x0c\x1f\x00\x10\x00\x00\x00\x18\x00\x00\x00\x54\xfe\xff\xff\x34\x00\x00\x00\x00\x41\x07\x1e\x10\x00\x00\x00\x2c\x00\x00\x00\x90\xfe\xff\xff\x30\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x40\x00\x00\x00\xac\xfe\xff\xff\x3c\x00\x00\x00\x00\x00\x00\x00\x20\x00\x00\x00\x54\x00\x00\x00\xd8\xfe\xff\xff\x48\x00\x00\x00\x00\x41\x0e\x20\x9d\x04\x9e\x03\x42\x93\x02\x4e\xde\xdd\xd3\x0e\x00\x00\x00\x00\x10\x00\x00\x00\x78\x00\x00\x00\x04\xff\xff\xff\x04\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x8c\x00\x00\x00\xf4\xfe\xff\xff\x24\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".fini_array", 0x10DA0, "\xc0\x06\x00\x00\x00\x00\x00\x00"), -Section(".dynamic", 0x10DA8, "\x01\x00\x00\x00\x00\x00\x00\x00\x28\x00\x00\x00\x00\x00\x00\x00\x0c\x00\x00\x00\x00\x00\x00\x00\x80\x05\x00\x00\x00\x00\x00\x00\x0d\x00\x00\x00\x00\x00\x00\x00\x38\x07\x00\x00\x00\x00\x00\x00\x19\x00\x00\x00\x00\x00\x00\x00\x98\x0d\x01\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x1a\x00\x00\x00\x00\x00\x00\x00\xa0\x0d\x01\x00\x00\x00\x00\x00\x1c\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\xf5\xfe\xff\x6f\x00\x00\x00\x00\x98\x02\x00\x00\x00\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x90\x03\x00\x00\x00\x00\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\xb8\x02\x00\x00\x00\x00\x00\x00\x0a\x00\x00\x00\x00\x00\x00\x00\x8d\x00\x00\x00\x00\x00\x00\x00\x0b\x00\x00\x00\x00\x00\x00\x00\x18\x00\x00\x00\x00\x00\x00\x00\x15\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x98\x0f\x01\x00\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x60\x00\x00\x00\x00\x00\x00\x00\x14\x00\x00\x00\x00\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x17\x00\x00\x00\x00\x00\x00\x00\x20\x05\x00\x00\x00\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x60\x04\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\xc0\x00\x00\x00\x00\x00\x00\x00\x09\x00\x00\x00\x00\x00\x00\x00\x18\x00\x00\x00\x00\x00\x00\x00\x1e\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\xfb\xff\xff\x6f\x00\x00\x00\x00\x01\x00\x00\x08\x00\x00\x00\x00\xfe\xff\xff\x6f\x00\x00\x00\x00\x30\x04\x00\x00\x00\x00\x00\x00\xff\xff\xff\x6f\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\xf0\xff\xff\x6f\x00\x00\x00\x00\x1e\x04\x00\x00\x00\x00\x00\x00\xf9\xff\xff\x6f\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".got", 0x10F98, "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xa0\x05\x00\x00\x00\x00\x00\x00\xa0\x05\x00\x00\x00\x00\x00\x00\xa0\x05\x00\x00\x00\x00\x00\x00\xa0\x05\x00\x00\x00\x00\x00\x00\xa8\x0d\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x14\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".data", 0x11000, "\x00\x00\x00\x00\x00\x00\x00\x00\x08\x10\x01\x00\x00\x00\x00\x00"), -Section(".init_array", 0x10D98, "\x10\x07\x00\x00\x00\x00\x00\x00")]), -Memmap([Annotation(Region(0x0,0x82F), Attr("segment","02 0 2096")), -Annotation(Region(0x600,0x633), Attr("symbol","\"_start\"")), -Annotation(Region(0x0,0xF9), Attr("section","\".shstrtab\"")), -Annotation(Region(0x0,0x230), Attr("section","\".strtab\"")), -Annotation(Region(0x0,0x2A), Attr("section","\".comment\"")), -Annotation(Region(0x238,0x252), Attr("section","\".interp\"")), -Annotation(Region(0x254,0x277), Attr("section","\".note.gnu.build-id\"")), -Annotation(Region(0x278,0x297), Attr("section","\".note.ABI-tag\"")), -Annotation(Region(0x298,0x2B3), Attr("section","\".gnu.hash\"")), -Annotation(Region(0x2B8,0x38F), Attr("section","\".dynsym\"")), -Annotation(Region(0x390,0x41C), Attr("section","\".dynstr\"")), -Annotation(Region(0x41E,0x42F), Attr("section","\".gnu.version\"")), -Annotation(Region(0x430,0x45F), Attr("section","\".gnu.version_r\"")), -Annotation(Region(0x460,0x51F), Attr("section","\".rela.dyn\"")), -Annotation(Region(0x520,0x57F), Attr("section","\".rela.plt\"")), -Annotation(Region(0x580,0x597), Attr("section","\".init\"")), -Annotation(Region(0x5A0,0x5FF), Attr("section","\".plt\"")), -Annotation(Region(0x580,0x597), Attr("code-region","()")), -Annotation(Region(0x5A0,0x5FF), Attr("code-region","()")), -Annotation(Region(0x600,0x633), Attr("symbol-info","_start 0x600 52")), -Annotation(Region(0x634,0x647), Attr("symbol","\"call_weak_fn\"")), -Annotation(Region(0x634,0x647), Attr("symbol-info","call_weak_fn 0x634 20")), -Annotation(Region(0x600,0x737), Attr("section","\".text\"")), -Annotation(Region(0x600,0x737), Attr("code-region","()")), -Annotation(Region(0x714,0x737), Attr("symbol","\"main\"")), -Annotation(Region(0x714,0x737), Attr("symbol-info","main 0x714 36")), -Annotation(Region(0x738,0x74B), Attr("section","\".fini\"")), -Annotation(Region(0x738,0x74B), Attr("code-region","()")), -Annotation(Region(0x74C,0x74F), Attr("section","\".rodata\"")), -Annotation(Region(0x750,0x78B), Attr("section","\".eh_frame_hdr\"")), -Annotation(Region(0x790,0x82F), Attr("section","\".eh_frame\"")), -Annotation(Region(0x10D98,0x1100F), Attr("segment","03 0x10D98 648")), -Annotation(Region(0x10DA0,0x10DA7), Attr("section","\".fini_array\"")), -Annotation(Region(0x10DA8,0x10F97), Attr("section","\".dynamic\"")), -Annotation(Region(0x10F98,0x10FFF), Attr("section","\".got\"")), -Annotation(Region(0x11000,0x1100F), Attr("section","\".data\"")), -Annotation(Region(0x10D98,0x10D9F), Attr("section","\".init_array\""))]), -Program(Tid(1_485, "%000005cd"), Attrs([]), - Subs([Sub(Tid(1_431, "@__cxa_finalize"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x5D0"), -Attr("stub","()")]), "__cxa_finalize", Args([Arg(Tid(1_486, "%000005ce"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("__cxa_finalize_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(841, "@__cxa_finalize"), - Attrs([Attr("address","0x5D0")]), Phis([]), -Defs([Def(Tid(1_089, "%00000441"), Attrs([Attr("address","0x5D0"), -Attr("insn","adrp x16, #65536")]), Var("R16",Imm(64)), Int(65536,64)), -Def(Tid(1_096, "%00000448"), Attrs([Attr("address","0x5D4"), -Attr("insn","ldr x17, [x16, #0xfb8]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(4024,64)),LittleEndian(),64)), -Def(Tid(1_102, "%0000044e"), Attrs([Attr("address","0x5D8"), -Attr("insn","add x16, x16, #0xfb8")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(4024,64)))]), Jmps([Call(Tid(1_107, "%00000453"), - Attrs([Attr("address","0x5DC"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), -Sub(Tid(1_432, "@__do_global_dtors_aux"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x6C0")]), - "__do_global_dtors_aux", Args([Arg(Tid(1_487, "%000005cf"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("__do_global_dtors_aux_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(626, "@__do_global_dtors_aux"), - Attrs([Attr("address","0x6C0")]), Phis([]), Defs([Def(Tid(630, "%00000276"), - Attrs([Attr("address","0x6C0"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("#3",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(18446744073709551584,64))), -Def(Tid(636, "%0000027c"), Attrs([Attr("address","0x6C0"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("#3",Imm(64)),Var("R29",Imm(64)),LittleEndian(),64)), -Def(Tid(642, "%00000282"), Attrs([Attr("address","0x6C0"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("#3",Imm(64)),Int(8,64)),Var("R30",Imm(64)),LittleEndian(),64)), -Def(Tid(646, "%00000286"), Attrs([Attr("address","0x6C0"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("R31",Imm(64)), -Var("#3",Imm(64))), Def(Tid(652, "%0000028c"), - Attrs([Attr("address","0x6C4"), Attr("insn","mov x29, sp")]), - Var("R29",Imm(64)), Var("R31",Imm(64))), Def(Tid(660, "%00000294"), - Attrs([Attr("address","0x6C8"), Attr("insn","str x19, [sp, #0x10]")]), - Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(16,64)),Var("R19",Imm(64)),LittleEndian(),64)), -Def(Tid(665, "%00000299"), Attrs([Attr("address","0x6CC"), -Attr("insn","adrp x19, #69632")]), Var("R19",Imm(64)), Int(69632,64)), -Def(Tid(672, "%000002a0"), Attrs([Attr("address","0x6D0"), -Attr("insn","ldrb w0, [x19, #0x10]")]), Var("R0",Imm(64)), -UNSIGNED(64,Load(Var("mem",Mem(64,8)),PLUS(Var("R19",Imm(64)),Int(16,64)),LittleEndian(),8)))]), -Jmps([Goto(Tid(679, "%000002a7"), Attrs([Attr("address","0x6D4"), -Attr("insn","cbnz w0, #0x28")]), - NEQ(Extract(31,0,Var("R0",Imm(64))),Int(0,32)), -Direct(Tid(677, "%000002a5"))), Goto(Tid(1_473, "%000005c1"), Attrs([]), - Int(1,1), Direct(Tid(786, "%00000312")))])), Blk(Tid(786, "%00000312"), - Attrs([Attr("address","0x6D8")]), Phis([]), Defs([Def(Tid(789, "%00000315"), - Attrs([Attr("address","0x6D8"), Attr("insn","adrp x0, #65536")]), - Var("R0",Imm(64)), Int(65536,64)), Def(Tid(796, "%0000031c"), - Attrs([Attr("address","0x6DC"), Attr("insn","ldr x0, [x0, #0xfe0]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(4064,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(802, "%00000322"), Attrs([Attr("address","0x6E0"), -Attr("insn","cbz x0, #0x10")]), EQ(Var("R0",Imm(64)),Int(0,64)), -Direct(Tid(800, "%00000320"))), Goto(Tid(1_474, "%000005c2"), Attrs([]), - Int(1,1), Direct(Tid(825, "%00000339")))])), Blk(Tid(825, "%00000339"), - Attrs([Attr("address","0x6E4")]), Phis([]), Defs([Def(Tid(828, "%0000033c"), - Attrs([Attr("address","0x6E4"), Attr("insn","adrp x0, #69632")]), - Var("R0",Imm(64)), Int(69632,64)), Def(Tid(835, "%00000343"), - Attrs([Attr("address","0x6E8"), Attr("insn","ldr x0, [x0, #0x8]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(840, "%00000348"), Attrs([Attr("address","0x6EC"), -Attr("insn","bl #-0x11c")]), Var("R30",Imm(64)), Int(1776,64))]), -Jmps([Call(Tid(843, "%0000034b"), Attrs([Attr("address","0x6EC"), -Attr("insn","bl #-0x11c")]), Int(1,1), -(Direct(Tid(1_431, "@__cxa_finalize")),Direct(Tid(800, "%00000320"))))])), -Blk(Tid(800, "%00000320"), Attrs([Attr("address","0x6F0")]), Phis([]), -Defs([Def(Tid(808, "%00000328"), Attrs([Attr("address","0x6F0"), -Attr("insn","bl #-0xa0")]), Var("R30",Imm(64)), Int(1780,64))]), -Jmps([Call(Tid(810, "%0000032a"), Attrs([Attr("address","0x6F0"), -Attr("insn","bl #-0xa0")]), Int(1,1), -(Direct(Tid(1_445, "@deregister_tm_clones")),Direct(Tid(812, "%0000032c"))))])), -Blk(Tid(812, "%0000032c"), Attrs([Attr("address","0x6F4")]), Phis([]), -Defs([Def(Tid(815, "%0000032f"), Attrs([Attr("address","0x6F4"), -Attr("insn","mov w0, #0x1")]), Var("R0",Imm(64)), Int(1,64)), -Def(Tid(823, "%00000337"), Attrs([Attr("address","0x6F8"), -Attr("insn","strb w0, [x19, #0x10]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R19",Imm(64)),Int(16,64)),Extract(7,0,Var("R0",Imm(64))),LittleEndian(),8))]), -Jmps([Goto(Tid(1_475, "%000005c3"), Attrs([]), Int(1,1), -Direct(Tid(677, "%000002a5")))])), Blk(Tid(677, "%000002a5"), - Attrs([Attr("address","0x6FC")]), Phis([]), Defs([Def(Tid(687, "%000002af"), - Attrs([Attr("address","0x6FC"), Attr("insn","ldr x19, [sp, #0x10]")]), - Var("R19",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(16,64)),LittleEndian(),64)), -Def(Tid(694, "%000002b6"), Attrs([Attr("address","0x700"), -Attr("insn","ldp x29, x30, [sp], #0x20")]), Var("R29",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(699, "%000002bb"), Attrs([Attr("address","0x700"), -Attr("insn","ldp x29, x30, [sp], #0x20")]), Var("R30",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(703, "%000002bf"), Attrs([Attr("address","0x700"), -Attr("insn","ldp x29, x30, [sp], #0x20")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(32,64)))]), Jmps([Call(Tid(708, "%000002c4"), - Attrs([Attr("address","0x704"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), Sub(Tid(1_436, "@__libc_start_main"), - Attrs([Attr("c.proto","signed (*)(signed (*)(signed , char** , char** );* main, signed , char** , \nvoid* auxv)"), -Attr("address","0x5C0"), Attr("stub","()")]), "__libc_start_main", - Args([Arg(Tid(1_488, "%000005d0"), - Attrs([Attr("c.layout","**[ : 64]"), -Attr("c.data","Top:u64 ptr ptr"), -Attr("c.type","signed (*)(signed , char** , char** );*")]), - Var("__libc_start_main_main",Imm(64)), Var("R0",Imm(64)), In()), -Arg(Tid(1_489, "%000005d1"), Attrs([Attr("c.layout","[signed : 32]"), -Attr("c.data","Top:u32"), Attr("c.type","signed")]), - Var("__libc_start_main_arg2",Imm(32)), LOW(32,Var("R1",Imm(64))), In()), -Arg(Tid(1_490, "%000005d2"), Attrs([Attr("c.layout","**[char : 8]"), -Attr("c.data","Top:u8 ptr ptr"), Attr("c.type","char**")]), - Var("__libc_start_main_arg3",Imm(64)), Var("R2",Imm(64)), Both()), -Arg(Tid(1_491, "%000005d3"), Attrs([Attr("c.layout","*[ : 8]"), -Attr("c.data","{} ptr"), Attr("c.type","void*")]), - Var("__libc_start_main_auxv",Imm(64)), Var("R3",Imm(64)), Both()), -Arg(Tid(1_492, "%000005d4"), Attrs([Attr("c.layout","[signed : 32]"), -Attr("c.data","Top:u32"), Attr("c.type","signed")]), - Var("__libc_start_main_result",Imm(32)), LOW(32,Var("R0",Imm(64))), -Out())]), Blks([Blk(Tid(459, "@__libc_start_main"), - Attrs([Attr("address","0x5C0")]), Phis([]), -Defs([Def(Tid(1_067, "%0000042b"), Attrs([Attr("address","0x5C0"), -Attr("insn","adrp x16, #65536")]), Var("R16",Imm(64)), Int(65536,64)), -Def(Tid(1_074, "%00000432"), Attrs([Attr("address","0x5C4"), -Attr("insn","ldr x17, [x16, #0xfb0]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(4016,64)),LittleEndian(),64)), -Def(Tid(1_080, "%00000438"), Attrs([Attr("address","0x5C8"), -Attr("insn","add x16, x16, #0xfb0")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(4016,64)))]), Jmps([Call(Tid(1_085, "%0000043d"), - Attrs([Attr("address","0x5CC"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), Sub(Tid(1_437, "@_fini"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x738")]), - "_fini", Args([Arg(Tid(1_493, "%000005d5"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("_fini_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(31, "@_fini"), - Attrs([Attr("address","0x738")]), Phis([]), Defs([Def(Tid(37, "%00000025"), - Attrs([Attr("address","0x73C"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("#0",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(18446744073709551600,64))), -Def(Tid(43, "%0000002b"), Attrs([Attr("address","0x73C"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("#0",Imm(64)),Var("R29",Imm(64)),LittleEndian(),64)), -Def(Tid(49, "%00000031"), Attrs([Attr("address","0x73C"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("#0",Imm(64)),Int(8,64)),Var("R30",Imm(64)),LittleEndian(),64)), -Def(Tid(53, "%00000035"), Attrs([Attr("address","0x73C"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("R31",Imm(64)), -Var("#0",Imm(64))), Def(Tid(59, "%0000003b"), Attrs([Attr("address","0x740"), -Attr("insn","mov x29, sp")]), Var("R29",Imm(64)), Var("R31",Imm(64))), -Def(Tid(66, "%00000042"), Attrs([Attr("address","0x744"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R29",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(71, "%00000047"), Attrs([Attr("address","0x744"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R30",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(75, "%0000004b"), Attrs([Attr("address","0x744"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(16,64)))]), Jmps([Call(Tid(80, "%00000050"), - Attrs([Attr("address","0x748"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), Sub(Tid(1_438, "@_init"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x580")]), - "_init", Args([Arg(Tid(1_494, "%000005d6"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("_init_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(1_264, "@_init"), - Attrs([Attr("address","0x580")]), Phis([]), -Defs([Def(Tid(1_270, "%000004f6"), Attrs([Attr("address","0x584"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("#6",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(18446744073709551600,64))), -Def(Tid(1_276, "%000004fc"), Attrs([Attr("address","0x584"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("#6",Imm(64)),Var("R29",Imm(64)),LittleEndian(),64)), -Def(Tid(1_282, "%00000502"), Attrs([Attr("address","0x584"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("#6",Imm(64)),Int(8,64)),Var("R30",Imm(64)),LittleEndian(),64)), -Def(Tid(1_286, "%00000506"), Attrs([Attr("address","0x584"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("R31",Imm(64)), -Var("#6",Imm(64))), Def(Tid(1_292, "%0000050c"), - Attrs([Attr("address","0x588"), Attr("insn","mov x29, sp")]), - Var("R29",Imm(64)), Var("R31",Imm(64))), Def(Tid(1_297, "%00000511"), - Attrs([Attr("address","0x58C"), Attr("insn","bl #0xa8")]), - Var("R30",Imm(64)), Int(1424,64))]), Jmps([Call(Tid(1_299, "%00000513"), - Attrs([Attr("address","0x58C"), Attr("insn","bl #0xa8")]), Int(1,1), -(Direct(Tid(1_443, "@call_weak_fn")),Direct(Tid(1_301, "%00000515"))))])), -Blk(Tid(1_301, "%00000515"), Attrs([Attr("address","0x590")]), Phis([]), -Defs([Def(Tid(1_306, "%0000051a"), Attrs([Attr("address","0x590"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R29",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(1_311, "%0000051f"), Attrs([Attr("address","0x590"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R30",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(1_315, "%00000523"), Attrs([Attr("address","0x590"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(16,64)))]), Jmps([Call(Tid(1_320, "%00000528"), - Attrs([Attr("address","0x594"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), Sub(Tid(1_439, "@_start"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x600"), -Attr("stub","()"), Attr("entry-point","()")]), "_start", - Args([Arg(Tid(1_495, "%000005d7"), Attrs([Attr("c.layout","[signed : 32]"), -Attr("c.data","Top:u32"), Attr("c.type","signed")]), - Var("_start_result",Imm(32)), LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(396, "@_start"), Attrs([Attr("address","0x600")]), Phis([]), -Defs([Def(Tid(401, "%00000191"), Attrs([Attr("address","0x604"), -Attr("insn","mov x29, #0x0")]), Var("R29",Imm(64)), Int(0,64)), -Def(Tid(406, "%00000196"), Attrs([Attr("address","0x608"), -Attr("insn","mov x30, #0x0")]), Var("R30",Imm(64)), Int(0,64)), -Def(Tid(412, "%0000019c"), Attrs([Attr("address","0x60C"), -Attr("insn","mov x5, x0")]), Var("R5",Imm(64)), Var("R0",Imm(64))), -Def(Tid(419, "%000001a3"), Attrs([Attr("address","0x610"), -Attr("insn","ldr x1, [sp]")]), Var("R1",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(425, "%000001a9"), Attrs([Attr("address","0x614"), -Attr("insn","add x2, sp, #0x8")]), Var("R2",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(8,64))), Def(Tid(431, "%000001af"), - Attrs([Attr("address","0x618"), Attr("insn","mov x6, sp")]), - Var("R6",Imm(64)), Var("R31",Imm(64))), Def(Tid(436, "%000001b4"), - Attrs([Attr("address","0x61C"), Attr("insn","adrp x0, #65536")]), - Var("R0",Imm(64)), Int(65536,64)), Def(Tid(443, "%000001bb"), - Attrs([Attr("address","0x620"), Attr("insn","ldr x0, [x0, #0xff0]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(4080,64)),LittleEndian(),64)), -Def(Tid(448, "%000001c0"), Attrs([Attr("address","0x624"), -Attr("insn","mov x3, #0x0")]), Var("R3",Imm(64)), Int(0,64)), -Def(Tid(453, "%000001c5"), Attrs([Attr("address","0x628"), -Attr("insn","mov x4, #0x0")]), Var("R4",Imm(64)), Int(0,64)), -Def(Tid(458, "%000001ca"), Attrs([Attr("address","0x62C"), -Attr("insn","bl #-0x6c")]), Var("R30",Imm(64)), Int(1584,64))]), -Jmps([Call(Tid(461, "%000001cd"), Attrs([Attr("address","0x62C"), -Attr("insn","bl #-0x6c")]), Int(1,1), -(Direct(Tid(1_436, "@__libc_start_main")),Direct(Tid(463, "%000001cf"))))])), -Blk(Tid(463, "%000001cf"), Attrs([Attr("address","0x630")]), Phis([]), -Defs([Def(Tid(466, "%000001d2"), Attrs([Attr("address","0x630"), -Attr("insn","bl #-0x40")]), Var("R30",Imm(64)), Int(1588,64))]), -Jmps([Call(Tid(469, "%000001d5"), Attrs([Attr("address","0x630"), -Attr("insn","bl #-0x40")]), Int(1,1), -(Direct(Tid(1_442, "@abort")),Direct(Tid(1_476, "%000005c4"))))])), -Blk(Tid(1_476, "%000005c4"), Attrs([]), Phis([]), Defs([]), -Jmps([Call(Tid(1_477, "%000005c5"), Attrs([]), Int(1,1), -(Direct(Tid(1_443, "@call_weak_fn")),))]))])), Sub(Tid(1_442, "@abort"), - Attrs([Attr("noreturn","()"), Attr("c.proto","void (*)(void)"), -Attr("address","0x5F0"), Attr("stub","()")]), "abort", Args([]), -Blks([Blk(Tid(467, "@abort"), Attrs([Attr("address","0x5F0")]), Phis([]), -Defs([Def(Tid(1_133, "%0000046d"), Attrs([Attr("address","0x5F0"), -Attr("insn","adrp x16, #65536")]), Var("R16",Imm(64)), Int(65536,64)), -Def(Tid(1_140, "%00000474"), Attrs([Attr("address","0x5F4"), -Attr("insn","ldr x17, [x16, #0xfc8]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(4040,64)),LittleEndian(),64)), -Def(Tid(1_146, "%0000047a"), Attrs([Attr("address","0x5F8"), -Attr("insn","add x16, x16, #0xfc8")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(4040,64)))]), Jmps([Call(Tid(1_151, "%0000047f"), - Attrs([Attr("address","0x5FC"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), Sub(Tid(1_443, "@call_weak_fn"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x634")]), - "call_weak_fn", Args([Arg(Tid(1_496, "%000005d8"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("call_weak_fn_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(471, "@call_weak_fn"), - Attrs([Attr("address","0x634")]), Phis([]), Defs([Def(Tid(474, "%000001da"), - Attrs([Attr("address","0x634"), Attr("insn","adrp x0, #65536")]), - Var("R0",Imm(64)), Int(65536,64)), Def(Tid(481, "%000001e1"), - Attrs([Attr("address","0x638"), Attr("insn","ldr x0, [x0, #0xfe8]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(4072,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(487, "%000001e7"), Attrs([Attr("address","0x63C"), -Attr("insn","cbz x0, #0x8")]), EQ(Var("R0",Imm(64)),Int(0,64)), -Direct(Tid(485, "%000001e5"))), Goto(Tid(1_478, "%000005c6"), Attrs([]), - Int(1,1), Direct(Tid(905, "%00000389")))])), Blk(Tid(485, "%000001e5"), - Attrs([Attr("address","0x644")]), Phis([]), Defs([]), -Jmps([Call(Tid(493, "%000001ed"), Attrs([Attr("address","0x644"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))])), -Blk(Tid(905, "%00000389"), Attrs([Attr("address","0x640")]), Phis([]), -Defs([]), Jmps([Goto(Tid(908, "%0000038c"), Attrs([Attr("address","0x640"), -Attr("insn","b #-0x60")]), Int(1,1), Direct(Tid(906, "@__gmon_start__")))])), -Blk(Tid(906, "@__gmon_start__"), Attrs([Attr("address","0x5E0")]), Phis([]), -Defs([Def(Tid(1_111, "%00000457"), Attrs([Attr("address","0x5E0"), -Attr("insn","adrp x16, #65536")]), Var("R16",Imm(64)), Int(65536,64)), -Def(Tid(1_118, "%0000045e"), Attrs([Attr("address","0x5E4"), -Attr("insn","ldr x17, [x16, #0xfc0]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(4032,64)),LittleEndian(),64)), -Def(Tid(1_124, "%00000464"), Attrs([Attr("address","0x5E8"), -Attr("insn","add x16, x16, #0xfc0")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(4032,64)))]), Jmps([Call(Tid(1_129, "%00000469"), - Attrs([Attr("address","0x5EC"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), -Sub(Tid(1_445, "@deregister_tm_clones"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x650")]), - "deregister_tm_clones", Args([Arg(Tid(1_497, "%000005d9"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("deregister_tm_clones_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(499, "@deregister_tm_clones"), - Attrs([Attr("address","0x650")]), Phis([]), Defs([Def(Tid(502, "%000001f6"), - Attrs([Attr("address","0x650"), Attr("insn","adrp x0, #69632")]), - Var("R0",Imm(64)), Int(69632,64)), Def(Tid(508, "%000001fc"), - Attrs([Attr("address","0x654"), Attr("insn","add x0, x0, #0x10")]), - Var("R0",Imm(64)), PLUS(Var("R0",Imm(64)),Int(16,64))), -Def(Tid(513, "%00000201"), Attrs([Attr("address","0x658"), -Attr("insn","adrp x1, #69632")]), Var("R1",Imm(64)), Int(69632,64)), -Def(Tid(519, "%00000207"), Attrs([Attr("address","0x65C"), -Attr("insn","add x1, x1, #0x10")]), Var("R1",Imm(64)), -PLUS(Var("R1",Imm(64)),Int(16,64))), Def(Tid(525, "%0000020d"), - Attrs([Attr("address","0x660"), Attr("insn","cmp x1, x0")]), - Var("#1",Imm(64)), NOT(Var("R0",Imm(64)))), Def(Tid(530, "%00000212"), - Attrs([Attr("address","0x660"), Attr("insn","cmp x1, x0")]), - Var("#2",Imm(64)), PLUS(Var("R1",Imm(64)),NOT(Var("R0",Imm(64))))), -Def(Tid(536, "%00000218"), Attrs([Attr("address","0x660"), -Attr("insn","cmp x1, x0")]), Var("VF",Imm(1)), -NEQ(SIGNED(65,PLUS(Var("#2",Imm(64)),Int(1,64))),PLUS(PLUS(SIGNED(65,Var("R1",Imm(64))),SIGNED(65,Var("#1",Imm(64)))),Int(1,65)))), -Def(Tid(542, "%0000021e"), Attrs([Attr("address","0x660"), -Attr("insn","cmp x1, x0")]), Var("CF",Imm(1)), -NEQ(UNSIGNED(65,PLUS(Var("#2",Imm(64)),Int(1,64))),PLUS(PLUS(UNSIGNED(65,Var("R1",Imm(64))),UNSIGNED(65,Var("#1",Imm(64)))),Int(1,65)))), -Def(Tid(546, "%00000222"), Attrs([Attr("address","0x660"), -Attr("insn","cmp x1, x0")]), Var("ZF",Imm(1)), -EQ(PLUS(Var("#2",Imm(64)),Int(1,64)),Int(0,64))), Def(Tid(550, "%00000226"), - Attrs([Attr("address","0x660"), Attr("insn","cmp x1, x0")]), - Var("NF",Imm(1)), Extract(63,63,PLUS(Var("#2",Imm(64)),Int(1,64))))]), -Jmps([Goto(Tid(556, "%0000022c"), Attrs([Attr("address","0x664"), -Attr("insn","b.eq #0x18")]), EQ(Var("ZF",Imm(1)),Int(1,1)), -Direct(Tid(554, "%0000022a"))), Goto(Tid(1_479, "%000005c7"), Attrs([]), - Int(1,1), Direct(Tid(875, "%0000036b")))])), Blk(Tid(875, "%0000036b"), - Attrs([Attr("address","0x668")]), Phis([]), Defs([Def(Tid(878, "%0000036e"), - Attrs([Attr("address","0x668"), Attr("insn","adrp x1, #65536")]), - Var("R1",Imm(64)), Int(65536,64)), Def(Tid(885, "%00000375"), - Attrs([Attr("address","0x66C"), Attr("insn","ldr x1, [x1, #0xfd8]")]), - Var("R1",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R1",Imm(64)),Int(4056,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(890, "%0000037a"), Attrs([Attr("address","0x670"), -Attr("insn","cbz x1, #0xc")]), EQ(Var("R1",Imm(64)),Int(0,64)), -Direct(Tid(554, "%0000022a"))), Goto(Tid(1_480, "%000005c8"), Attrs([]), - Int(1,1), Direct(Tid(894, "%0000037e")))])), Blk(Tid(554, "%0000022a"), - Attrs([Attr("address","0x67C")]), Phis([]), Defs([]), -Jmps([Call(Tid(562, "%00000232"), Attrs([Attr("address","0x67C"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))])), -Blk(Tid(894, "%0000037e"), Attrs([Attr("address","0x674")]), Phis([]), -Defs([Def(Tid(898, "%00000382"), Attrs([Attr("address","0x674"), -Attr("insn","mov x16, x1")]), Var("R16",Imm(64)), Var("R1",Imm(64)))]), -Jmps([Call(Tid(903, "%00000387"), Attrs([Attr("address","0x678"), -Attr("insn","br x16")]), Int(1,1), (Indirect(Var("R16",Imm(64))),))]))])), -Sub(Tid(1_448, "@frame_dummy"), Attrs([Attr("c.proto","signed (*)(void)"), -Attr("address","0x710")]), "frame_dummy", Args([Arg(Tid(1_498, "%000005da"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("frame_dummy_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(714, "@frame_dummy"), - Attrs([Attr("address","0x710")]), Phis([]), Defs([]), -Jmps([Call(Tid(716, "%000002cc"), Attrs([Attr("address","0x710"), -Attr("insn","b #-0x90")]), Int(1,1), -(Direct(Tid(1_452, "@register_tm_clones")),))]))])), Sub(Tid(1_449, "@main"), - Attrs([Attr("c.proto","signed (*)(signed argc, const char** argv)"), -Attr("address","0x714")]), "main", Args([Arg(Tid(1_499, "%000005db"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("main_argc",Imm(32)), -LOW(32,Var("R0",Imm(64))), In()), Arg(Tid(1_500, "%000005dc"), - Attrs([Attr("c.layout","**[char : 8]"), Attr("c.data","Top:u8 ptr ptr"), -Attr("c.type"," const char**")]), Var("main_argv",Imm(64)), -Var("R1",Imm(64)), Both()), Arg(Tid(1_501, "%000005dd"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("main_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(718, "@main"), - Attrs([Attr("address","0x714")]), Phis([]), Defs([Def(Tid(721, "%000002d1"), - Attrs([Attr("address","0x714"), Attr("insn","adrp x0, #69632")]), - Var("R0",Imm(64)), Int(69632,64)), Def(Tid(727, "%000002d7"), - Attrs([Attr("address","0x718"), Attr("insn","add x0, x0, #0x14")]), - Var("R0",Imm(64)), PLUS(Var("R0",Imm(64)),Int(20,64))), -Def(Tid(734, "%000002de"), Attrs([Attr("address","0x71C"), -Attr("insn","ldr w0, [x0]")]), Var("R0",Imm(64)), -UNSIGNED(64,Load(Var("mem",Mem(64,8)),Var("R0",Imm(64)),LittleEndian(),32))), -Def(Tid(740, "%000002e4"), Attrs([Attr("address","0x720"), -Attr("insn","cmp w0, #0x0")]), Var("#4",Imm(32)), -PLUS(Extract(31,0,Var("R0",Imm(64))),Int(4294967295,32))), -Def(Tid(745, "%000002e9"), Attrs([Attr("address","0x720"), -Attr("insn","cmp w0, #0x0")]), Var("VF",Imm(1)), -NEQ(SIGNED(33,PLUS(Var("#4",Imm(32)),Int(1,32))),PLUS(SIGNED(33,Extract(31,0,Var("R0",Imm(64)))),Int(0,33)))), -Def(Tid(750, "%000002ee"), Attrs([Attr("address","0x720"), -Attr("insn","cmp w0, #0x0")]), Var("CF",Imm(1)), -NEQ(UNSIGNED(33,PLUS(Var("#4",Imm(32)),Int(1,32))),PLUS(UNSIGNED(33,Extract(31,0,Var("R0",Imm(64)))),Int(4294967296,33)))), -Def(Tid(754, "%000002f2"), Attrs([Attr("address","0x720"), -Attr("insn","cmp w0, #0x0")]), Var("ZF",Imm(1)), -EQ(PLUS(Var("#4",Imm(32)),Int(1,32)),Int(0,32))), Def(Tid(758, "%000002f6"), - Attrs([Attr("address","0x720"), Attr("insn","cmp w0, #0x0")]), - Var("NF",Imm(1)), Extract(31,31,PLUS(Var("#4",Imm(32)),Int(1,32))))]), -Jmps([Goto(Tid(764, "%000002fc"), Attrs([Attr("address","0x724"), -Attr("insn","b.eq #0xc")]), EQ(Var("ZF",Imm(1)),Int(1,1)), -Direct(Tid(762, "%000002fa"))), Goto(Tid(1_481, "%000005c9"), Attrs([]), - Int(1,1), Direct(Tid(777, "%00000309")))])), Blk(Tid(762, "%000002fa"), - Attrs([Attr("address","0x730")]), Phis([]), Defs([Def(Tid(770, "%00000302"), - Attrs([Attr("address","0x730"), Attr("insn","mov w0, #0x1")]), - Var("R0",Imm(64)), Int(1,64))]), Jmps([Goto(Tid(1_482, "%000005ca"), - Attrs([]), Int(1,1), Direct(Tid(772, "%00000304")))])), -Blk(Tid(777, "%00000309"), Attrs([Attr("address","0x728")]), Phis([]), -Defs([Def(Tid(780, "%0000030c"), Attrs([Attr("address","0x728"), -Attr("insn","mov w0, #0x0")]), Var("R0",Imm(64)), Int(0,64))]), -Jmps([Goto(Tid(784, "%00000310"), Attrs([Attr("address","0x72C"), -Attr("insn","b #0x8")]), Int(1,1), Direct(Tid(772, "%00000304")))])), -Blk(Tid(772, "%00000304"), Attrs([Attr("address","0x734")]), Phis([]), -Defs([]), Jmps([Call(Tid(775, "%00000307"), Attrs([Attr("address","0x734"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))]))])), -Sub(Tid(1_452, "@register_tm_clones"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x680")]), - "register_tm_clones", Args([Arg(Tid(1_502, "%000005de"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("register_tm_clones_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(564, "@register_tm_clones"), Attrs([Attr("address","0x680")]), - Phis([]), Defs([Def(Tid(567, "%00000237"), Attrs([Attr("address","0x680"), -Attr("insn","adrp x0, #69632")]), Var("R0",Imm(64)), Int(69632,64)), -Def(Tid(573, "%0000023d"), Attrs([Attr("address","0x684"), -Attr("insn","add x0, x0, #0x10")]), Var("R0",Imm(64)), -PLUS(Var("R0",Imm(64)),Int(16,64))), Def(Tid(578, "%00000242"), - Attrs([Attr("address","0x688"), Attr("insn","adrp x1, #69632")]), - Var("R1",Imm(64)), Int(69632,64)), Def(Tid(584, "%00000248"), - Attrs([Attr("address","0x68C"), Attr("insn","add x1, x1, #0x10")]), - Var("R1",Imm(64)), PLUS(Var("R1",Imm(64)),Int(16,64))), -Def(Tid(591, "%0000024f"), Attrs([Attr("address","0x690"), -Attr("insn","sub x1, x1, x0")]), Var("R1",Imm(64)), -PLUS(PLUS(Var("R1",Imm(64)),NOT(Var("R0",Imm(64)))),Int(1,64))), -Def(Tid(597, "%00000255"), Attrs([Attr("address","0x694"), -Attr("insn","lsr x2, x1, #63")]), Var("R2",Imm(64)), -Concat(Int(0,63),Extract(63,63,Var("R1",Imm(64))))), -Def(Tid(604, "%0000025c"), Attrs([Attr("address","0x698"), -Attr("insn","add x1, x2, x1, asr #3")]), Var("R1",Imm(64)), -PLUS(Var("R2",Imm(64)),ARSHIFT(Var("R1",Imm(64)),Int(3,3)))), -Def(Tid(610, "%00000262"), Attrs([Attr("address","0x69C"), -Attr("insn","asr x1, x1, #1")]), Var("R1",Imm(64)), -SIGNED(64,Extract(63,1,Var("R1",Imm(64)))))]), -Jmps([Goto(Tid(616, "%00000268"), Attrs([Attr("address","0x6A0"), -Attr("insn","cbz x1, #0x18")]), EQ(Var("R1",Imm(64)),Int(0,64)), -Direct(Tid(614, "%00000266"))), Goto(Tid(1_483, "%000005cb"), Attrs([]), - Int(1,1), Direct(Tid(845, "%0000034d")))])), Blk(Tid(845, "%0000034d"), - Attrs([Attr("address","0x6A4")]), Phis([]), Defs([Def(Tid(848, "%00000350"), - Attrs([Attr("address","0x6A4"), Attr("insn","adrp x2, #65536")]), - Var("R2",Imm(64)), Int(65536,64)), Def(Tid(855, "%00000357"), - Attrs([Attr("address","0x6A8"), Attr("insn","ldr x2, [x2, #0xff8]")]), - Var("R2",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R2",Imm(64)),Int(4088,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(860, "%0000035c"), Attrs([Attr("address","0x6AC"), -Attr("insn","cbz x2, #0xc")]), EQ(Var("R2",Imm(64)),Int(0,64)), -Direct(Tid(614, "%00000266"))), Goto(Tid(1_484, "%000005cc"), Attrs([]), - Int(1,1), Direct(Tid(864, "%00000360")))])), Blk(Tid(614, "%00000266"), - Attrs([Attr("address","0x6B8")]), Phis([]), Defs([]), -Jmps([Call(Tid(622, "%0000026e"), Attrs([Attr("address","0x6B8"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))])), -Blk(Tid(864, "%00000360"), Attrs([Attr("address","0x6B0")]), Phis([]), -Defs([Def(Tid(868, "%00000364"), Attrs([Attr("address","0x6B0"), -Attr("insn","mov x16, x2")]), Var("R16",Imm(64)), Var("R2",Imm(64)))]), -Jmps([Call(Tid(873, "%00000369"), Attrs([Attr("address","0x6B4"), -Attr("insn","br x16")]), Int(1,1), -(Indirect(Var("R16",Imm(64))),))]))]))]))) \ No newline at end of file diff --git a/src/test/correct/using_gamma_conditional/gcc/using_gamma_conditional.bir b/src/test/correct/using_gamma_conditional/gcc/using_gamma_conditional.bir deleted file mode 100644 index b2ff52ba2..000000000 --- a/src/test/correct/using_gamma_conditional/gcc/using_gamma_conditional.bir +++ /dev/null @@ -1,243 +0,0 @@ -000005cd: program -00000597: sub __cxa_finalize(__cxa_finalize_result) -000005ce: __cxa_finalize_result :: out u32 = low:32[R0] - -00000349: -00000441: R16 := 0x10000 -00000448: R17 := mem[R16 + 0xFB8, el]:u64 -0000044e: R16 := R16 + 0xFB8 -00000453: call R17 with noreturn - -00000598: sub __do_global_dtors_aux(__do_global_dtors_aux_result) -000005cf: __do_global_dtors_aux_result :: out u32 = low:32[R0] - -00000272: -00000276: #3 := R31 - 0x20 -0000027c: mem := mem with [#3, el]:u64 <- R29 -00000282: mem := mem with [#3 + 8, el]:u64 <- R30 -00000286: R31 := #3 -0000028c: R29 := R31 -00000294: mem := mem with [R31 + 0x10, el]:u64 <- R19 -00000299: R19 := 0x11000 -000002a0: R0 := pad:64[mem[R19 + 0x10]] -000002a7: when 31:0[R0] <> 0 goto %000002a5 -000005c1: goto %00000312 - -00000312: -00000315: R0 := 0x10000 -0000031c: R0 := mem[R0 + 0xFE0, el]:u64 -00000322: when R0 = 0 goto %00000320 -000005c2: goto %00000339 - -00000339: -0000033c: R0 := 0x11000 -00000343: R0 := mem[R0 + 8, el]:u64 -00000348: R30 := 0x6F0 -0000034b: call @__cxa_finalize with return %00000320 - -00000320: -00000328: R30 := 0x6F4 -0000032a: call @deregister_tm_clones with return %0000032c - -0000032c: -0000032f: R0 := 1 -00000337: mem := mem with [R19 + 0x10] <- 7:0[R0] -000005c3: goto %000002a5 - -000002a5: -000002af: R19 := mem[R31 + 0x10, el]:u64 -000002b6: R29 := mem[R31, el]:u64 -000002bb: R30 := mem[R31 + 8, el]:u64 -000002bf: R31 := R31 + 0x20 -000002c4: call R30 with noreturn - -0000059c: sub __libc_start_main(__libc_start_main_main, __libc_start_main_arg2, __libc_start_main_arg3, __libc_start_main_auxv, __libc_start_main_result) -000005d0: __libc_start_main_main :: in u64 = R0 -000005d1: __libc_start_main_arg2 :: in u32 = low:32[R1] -000005d2: __libc_start_main_arg3 :: in out u64 = R2 -000005d3: __libc_start_main_auxv :: in out u64 = R3 -000005d4: __libc_start_main_result :: out u32 = low:32[R0] - -000001cb: -0000042b: R16 := 0x10000 -00000432: R17 := mem[R16 + 0xFB0, el]:u64 -00000438: R16 := R16 + 0xFB0 -0000043d: call R17 with noreturn - -0000059d: sub _fini(_fini_result) -000005d5: _fini_result :: out u32 = low:32[R0] - -0000001f: -00000025: #0 := R31 - 0x10 -0000002b: mem := mem with [#0, el]:u64 <- R29 -00000031: mem := mem with [#0 + 8, el]:u64 <- R30 -00000035: R31 := #0 -0000003b: R29 := R31 -00000042: R29 := mem[R31, el]:u64 -00000047: R30 := mem[R31 + 8, el]:u64 -0000004b: R31 := R31 + 0x10 -00000050: call R30 with noreturn - -0000059e: sub _init(_init_result) -000005d6: _init_result :: out u32 = low:32[R0] - -000004f0: -000004f6: #6 := R31 - 0x10 -000004fc: mem := mem with [#6, el]:u64 <- R29 -00000502: mem := mem with [#6 + 8, el]:u64 <- R30 -00000506: R31 := #6 -0000050c: R29 := R31 -00000511: R30 := 0x590 -00000513: call @call_weak_fn with return %00000515 - -00000515: -0000051a: R29 := mem[R31, el]:u64 -0000051f: R30 := mem[R31 + 8, el]:u64 -00000523: R31 := R31 + 0x10 -00000528: call R30 with noreturn - -0000059f: sub _start(_start_result) -000005d7: _start_result :: out u32 = low:32[R0] - -0000018c: -00000191: R29 := 0 -00000196: R30 := 0 -0000019c: R5 := R0 -000001a3: R1 := mem[R31, el]:u64 -000001a9: R2 := R31 + 8 -000001af: R6 := R31 -000001b4: R0 := 0x10000 -000001bb: R0 := mem[R0 + 0xFF0, el]:u64 -000001c0: R3 := 0 -000001c5: R4 := 0 -000001ca: R30 := 0x630 -000001cd: call @__libc_start_main with return %000001cf - -000001cf: -000001d2: R30 := 0x634 -000001d5: call @abort with return %000005c4 - -000005c4: -000005c5: call @call_weak_fn with noreturn - -000005a2: sub abort() - - -000001d3: -0000046d: R16 := 0x10000 -00000474: R17 := mem[R16 + 0xFC8, el]:u64 -0000047a: R16 := R16 + 0xFC8 -0000047f: call R17 with noreturn - -000005a3: sub call_weak_fn(call_weak_fn_result) -000005d8: call_weak_fn_result :: out u32 = low:32[R0] - -000001d7: -000001da: R0 := 0x10000 -000001e1: R0 := mem[R0 + 0xFE8, el]:u64 -000001e7: when R0 = 0 goto %000001e5 -000005c6: goto %00000389 - -000001e5: -000001ed: call R30 with noreturn - -00000389: -0000038c: goto @__gmon_start__ - -0000038a: -00000457: R16 := 0x10000 -0000045e: R17 := mem[R16 + 0xFC0, el]:u64 -00000464: R16 := R16 + 0xFC0 -00000469: call R17 with noreturn - -000005a5: sub deregister_tm_clones(deregister_tm_clones_result) -000005d9: deregister_tm_clones_result :: out u32 = low:32[R0] - -000001f3: -000001f6: R0 := 0x11000 -000001fc: R0 := R0 + 0x10 -00000201: R1 := 0x11000 -00000207: R1 := R1 + 0x10 -0000020d: #1 := ~R0 -00000212: #2 := R1 + ~R0 -00000218: VF := extend:65[#2 + 1] <> extend:65[R1] + extend:65[#1] + 1 -0000021e: CF := pad:65[#2 + 1] <> pad:65[R1] + pad:65[#1] + 1 -00000222: ZF := #2 + 1 = 0 -00000226: NF := 63:63[#2 + 1] -0000022c: when ZF goto %0000022a -000005c7: goto %0000036b - -0000036b: -0000036e: R1 := 0x10000 -00000375: R1 := mem[R1 + 0xFD8, el]:u64 -0000037a: when R1 = 0 goto %0000022a -000005c8: goto %0000037e - -0000022a: -00000232: call R30 with noreturn - -0000037e: -00000382: R16 := R1 -00000387: call R16 with noreturn - -000005a8: sub frame_dummy(frame_dummy_result) -000005da: frame_dummy_result :: out u32 = low:32[R0] - -000002ca: -000002cc: call @register_tm_clones with noreturn - -000005a9: sub main(main_argc, main_argv, main_result) -000005db: main_argc :: in u32 = low:32[R0] -000005dc: main_argv :: in out u64 = R1 -000005dd: main_result :: out u32 = low:32[R0] - -000002ce: -000002d1: R0 := 0x11000 -000002d7: R0 := R0 + 0x14 -000002de: R0 := pad:64[mem[R0, el]:u32] -000002e4: #4 := 31:0[R0] - 1 -000002e9: VF := extend:33[#4 + 1] <> extend:33[31:0[R0]] + 0 -000002ee: CF := pad:33[#4 + 1] <> pad:33[31:0[R0]] - 0x100000000 -000002f2: ZF := #4 + 1 = 0 -000002f6: NF := 31:31[#4 + 1] -000002fc: when ZF goto %000002fa -000005c9: goto %00000309 - -000002fa: -00000302: R0 := 1 -000005ca: goto %00000304 - -00000309: -0000030c: R0 := 0 -00000310: goto %00000304 - -00000304: -00000307: call R30 with noreturn - -000005ac: sub register_tm_clones(register_tm_clones_result) -000005de: register_tm_clones_result :: out u32 = low:32[R0] - -00000234: -00000237: R0 := 0x11000 -0000023d: R0 := R0 + 0x10 -00000242: R1 := 0x11000 -00000248: R1 := R1 + 0x10 -0000024f: R1 := R1 + ~R0 + 1 -00000255: R2 := 0.63:63[R1] -0000025c: R1 := R2 + (R1 ~>> 3) -00000262: R1 := extend:64[63:1[R1]] -00000268: when R1 = 0 goto %00000266 -000005cb: goto %0000034d - -0000034d: -00000350: R2 := 0x10000 -00000357: R2 := mem[R2 + 0xFF8, el]:u64 -0000035c: when R2 = 0 goto %00000266 -000005cc: goto %00000360 - -00000266: -0000026e: call R30 with noreturn - -00000360: -00000364: R16 := R2 -00000369: call R16 with noreturn diff --git a/src/test/correct/using_gamma_conditional/gcc/using_gamma_conditional.expected b/src/test/correct/using_gamma_conditional/gcc/using_gamma_conditional.expected index 52146b33b..b51c23529 100644 --- a/src/test/correct/using_gamma_conditional/gcc/using_gamma_conditional.expected +++ b/src/test/correct/using_gamma_conditional/gcc/using_gamma_conditional.expected @@ -75,7 +75,7 @@ implementation {:extern} guarantee_reflexive() assert ((memory_load32_le(mem, $x_addr) == memory_load32_le(mem, $x_addr)) && (memory_load32_le(mem, $z_addr) == memory_load32_le(mem, $z_addr))); } -procedure main_1812(); +procedure main(); modifies CF, Gamma_CF, Gamma_NF, Gamma_R0, Gamma_VF, Gamma_ZF, Gamma_mem, NF, R0, VF, ZF, mem; requires (gamma_load32(Gamma_mem, $x_addr) == true); free requires (memory_load64_le(mem, 69632bv64) == 0bv64); @@ -91,19 +91,19 @@ procedure main_1812(); free ensures (memory_load64_le(mem, 69616bv64) == 1812bv64); free ensures (memory_load64_le(mem, 69640bv64) == 69640bv64); -implementation main_1812() +implementation main() { var #4: bv32; + var $load$18: bv32; var Gamma_#4: bool; - var Gamma_load18: bool; - var load18: bv32; + var Gamma_$load$18: bool; lmain: assume {:captureState "lmain"} true; R0, Gamma_R0 := 69632bv64, true; R0, Gamma_R0 := bvadd64(R0, 20bv64), Gamma_R0; call rely(); - load18, Gamma_load18 := memory_load32_le(mem, R0), (gamma_load32(Gamma_mem, R0) || L(mem, R0)); - R0, Gamma_R0 := zero_extend32_32(load18), Gamma_load18; + $load$18, Gamma_$load$18 := memory_load32_le(mem, R0), (gamma_load32(Gamma_mem, R0) || L(mem, R0)); + R0, Gamma_R0 := zero_extend32_32($load$18), Gamma_$load$18; #4, Gamma_#4 := bvadd32(R0[32:0], 4294967295bv32), Gamma_R0; VF, Gamma_VF := bvnot1(bvcomp33(sign_extend1_32(bvadd32(#4, 1bv32)), bvadd33(sign_extend1_32(R0[32:0]), 0bv33))), (Gamma_R0 && Gamma_#4); CF, Gamma_CF := bvnot1(bvcomp33(zero_extend1_32(bvadd32(#4, 1bv32)), bvadd33(zero_extend1_32(R0[32:0]), 4294967296bv33))), (Gamma_R0 && Gamma_#4); @@ -111,27 +111,27 @@ implementation main_1812() NF, Gamma_NF := bvadd32(#4, 1bv32)[32:31], Gamma_#4; assert Gamma_ZF; goto lmain_goto_l000002fa, lmain_goto_l00000309; - lmain_goto_l00000309: - assume {:captureState "lmain_goto_l00000309"} true; - assume (bvcomp1(ZF, 1bv1) == 0bv1); - R0, Gamma_R0 := 0bv64, true; - goto l00000309; + l000002fa: + assume {:captureState "l000002fa"} true; + R0, Gamma_R0 := 1bv64, true; + goto l00000304; l00000309: assume {:captureState "l00000309"} true; + R0, Gamma_R0 := 0bv64, true; goto l00000304; + l00000304: + assume {:captureState "l00000304"} true; + goto main_basil_return; lmain_goto_l000002fa: assume {:captureState "lmain_goto_l000002fa"} true; assume (bvcomp1(ZF, 1bv1) != 0bv1); - R0, Gamma_R0 := 1bv64, true; goto l000002fa; - l000002fa: - assume {:captureState "l000002fa"} true; - goto l00000304; - l00000304: - assume {:captureState "l00000304"} true; - goto main_1812_basil_return; - main_1812_basil_return: - assume {:captureState "main_1812_basil_return"} true; + lmain_goto_l00000309: + assume {:captureState "lmain_goto_l00000309"} true; + assume (bvcomp1(ZF, 1bv1) == 0bv1); + goto l00000309; + main_basil_return: + assume {:captureState "main_basil_return"} true; return; } diff --git a/src/test/correct/using_gamma_conditional/gcc/using_gamma_conditional.gts b/src/test/correct/using_gamma_conditional/gcc/using_gamma_conditional.gts deleted file mode 100644 index f66831e84..000000000 Binary files a/src/test/correct/using_gamma_conditional/gcc/using_gamma_conditional.gts and /dev/null differ diff --git a/src/test/correct/using_gamma_conditional/gcc/using_gamma_conditional.md5sum b/src/test/correct/using_gamma_conditional/gcc/using_gamma_conditional.md5sum new file mode 100644 index 000000000..67521f9f3 --- /dev/null +++ b/src/test/correct/using_gamma_conditional/gcc/using_gamma_conditional.md5sum @@ -0,0 +1,5 @@ +5f8c76abf0c301f5d8c5dc733d998e6c correct/using_gamma_conditional/gcc/a.out +9aae96c264809c35472a42ff2322f891 correct/using_gamma_conditional/gcc/using_gamma_conditional.adt +213384ee1966cab58321a4b7c7806306 correct/using_gamma_conditional/gcc/using_gamma_conditional.bir +ecd1b29576288aacb6a908132fe73bb2 correct/using_gamma_conditional/gcc/using_gamma_conditional.relf +06f90073eeae4ab209ffab95f1468b5b correct/using_gamma_conditional/gcc/using_gamma_conditional.gts diff --git a/src/test/correct/using_gamma_conditional/gcc/using_gamma_conditional.relf b/src/test/correct/using_gamma_conditional/gcc/using_gamma_conditional.relf deleted file mode 100644 index 276dca5a9..000000000 --- a/src/test/correct/using_gamma_conditional/gcc/using_gamma_conditional.relf +++ /dev/null @@ -1,122 +0,0 @@ - -Relocation section '.rela.dyn' at offset 0x460 contains 8 entries: - Offset Info Type Symbol's Value Symbol's Name + Addend -0000000000010d98 0000000000000403 R_AARCH64_RELATIVE 710 -0000000000010da0 0000000000000403 R_AARCH64_RELATIVE 6c0 -0000000000010ff0 0000000000000403 R_AARCH64_RELATIVE 714 -0000000000011008 0000000000000403 R_AARCH64_RELATIVE 11008 -0000000000010fd8 0000000400000401 R_AARCH64_GLOB_DAT 0000000000000000 _ITM_deregisterTMCloneTable + 0 -0000000000010fe0 0000000500000401 R_AARCH64_GLOB_DAT 0000000000000000 __cxa_finalize@GLIBC_2.17 + 0 -0000000000010fe8 0000000600000401 R_AARCH64_GLOB_DAT 0000000000000000 __gmon_start__ + 0 -0000000000010ff8 0000000800000401 R_AARCH64_GLOB_DAT 0000000000000000 _ITM_registerTMCloneTable + 0 - -Relocation section '.rela.plt' at offset 0x520 contains 4 entries: - Offset Info Type Symbol's Value Symbol's Name + Addend -0000000000010fb0 0000000300000402 R_AARCH64_JUMP_SLOT 0000000000000000 __libc_start_main@GLIBC_2.34 + 0 -0000000000010fb8 0000000500000402 R_AARCH64_JUMP_SLOT 0000000000000000 __cxa_finalize@GLIBC_2.17 + 0 -0000000000010fc0 0000000600000402 R_AARCH64_JUMP_SLOT 0000000000000000 __gmon_start__ + 0 -0000000000010fc8 0000000700000402 R_AARCH64_JUMP_SLOT 0000000000000000 abort@GLIBC_2.17 + 0 - -Symbol table '.dynsym' contains 9 entries: - Num: Value Size Type Bind Vis Ndx Name - 0: 0000000000000000 0 NOTYPE LOCAL DEFAULT UND - 1: 0000000000000580 0 SECTION LOCAL DEFAULT 11 .init - 2: 0000000000011000 0 SECTION LOCAL DEFAULT 22 .data - 3: 0000000000000000 0 FUNC GLOBAL DEFAULT UND __libc_start_main@GLIBC_2.34 (2) - 4: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_deregisterTMCloneTable - 5: 0000000000000000 0 FUNC WEAK DEFAULT UND __cxa_finalize@GLIBC_2.17 (3) - 6: 0000000000000000 0 NOTYPE WEAK DEFAULT UND __gmon_start__ - 7: 0000000000000000 0 FUNC GLOBAL DEFAULT UND abort@GLIBC_2.17 (3) - 8: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_registerTMCloneTable - -Symbol table '.symtab' contains 89 entries: - Num: Value Size Type Bind Vis Ndx Name - 0: 0000000000000000 0 NOTYPE LOCAL DEFAULT UND - 1: 0000000000000238 0 SECTION LOCAL DEFAULT 1 .interp - 2: 0000000000000254 0 SECTION LOCAL DEFAULT 2 .note.gnu.build-id - 3: 0000000000000278 0 SECTION LOCAL DEFAULT 3 .note.ABI-tag - 4: 0000000000000298 0 SECTION LOCAL DEFAULT 4 .gnu.hash - 5: 00000000000002b8 0 SECTION LOCAL DEFAULT 5 .dynsym - 6: 0000000000000390 0 SECTION LOCAL DEFAULT 6 .dynstr - 7: 000000000000041e 0 SECTION LOCAL DEFAULT 7 .gnu.version - 8: 0000000000000430 0 SECTION LOCAL DEFAULT 8 .gnu.version_r - 9: 0000000000000460 0 SECTION LOCAL DEFAULT 9 .rela.dyn - 10: 0000000000000520 0 SECTION LOCAL DEFAULT 10 .rela.plt - 11: 0000000000000580 0 SECTION LOCAL DEFAULT 11 .init - 12: 00000000000005a0 0 SECTION LOCAL DEFAULT 12 .plt - 13: 0000000000000600 0 SECTION LOCAL DEFAULT 13 .text - 14: 0000000000000738 0 SECTION LOCAL DEFAULT 14 .fini - 15: 000000000000074c 0 SECTION LOCAL DEFAULT 15 .rodata - 16: 0000000000000750 0 SECTION LOCAL DEFAULT 16 .eh_frame_hdr - 17: 0000000000000790 0 SECTION LOCAL DEFAULT 17 .eh_frame - 18: 0000000000010d98 0 SECTION LOCAL DEFAULT 18 .init_array - 19: 0000000000010da0 0 SECTION LOCAL DEFAULT 19 .fini_array - 20: 0000000000010da8 0 SECTION LOCAL DEFAULT 20 .dynamic - 21: 0000000000010f98 0 SECTION LOCAL DEFAULT 21 .got - 22: 0000000000011000 0 SECTION LOCAL DEFAULT 22 .data - 23: 0000000000011010 0 SECTION LOCAL DEFAULT 23 .bss - 24: 0000000000000000 0 SECTION LOCAL DEFAULT 24 .comment - 25: 0000000000000000 0 FILE LOCAL DEFAULT ABS Scrt1.o - 26: 0000000000000278 0 NOTYPE LOCAL DEFAULT 3 $d - 27: 0000000000000278 32 OBJECT LOCAL DEFAULT 3 __abi_tag - 28: 0000000000000600 0 NOTYPE LOCAL DEFAULT 13 $x - 29: 00000000000007a4 0 NOTYPE LOCAL DEFAULT 17 $d - 30: 000000000000074c 0 NOTYPE LOCAL DEFAULT 15 $d - 31: 0000000000000000 0 FILE LOCAL DEFAULT ABS crti.o - 32: 0000000000000634 0 NOTYPE LOCAL DEFAULT 13 $x - 33: 0000000000000634 20 FUNC LOCAL DEFAULT 13 call_weak_fn - 34: 0000000000000580 0 NOTYPE LOCAL DEFAULT 11 $x - 35: 0000000000000738 0 NOTYPE LOCAL DEFAULT 14 $x - 36: 0000000000000000 0 FILE LOCAL DEFAULT ABS crtn.o - 37: 0000000000000590 0 NOTYPE LOCAL DEFAULT 11 $x - 38: 0000000000000744 0 NOTYPE LOCAL DEFAULT 14 $x - 39: 0000000000000000 0 FILE LOCAL DEFAULT ABS crtstuff.c - 40: 0000000000000650 0 NOTYPE LOCAL DEFAULT 13 $x - 41: 0000000000000650 0 FUNC LOCAL DEFAULT 13 deregister_tm_clones - 42: 0000000000000680 0 FUNC LOCAL DEFAULT 13 register_tm_clones - 43: 0000000000011008 0 NOTYPE LOCAL DEFAULT 22 $d - 44: 00000000000006c0 0 FUNC LOCAL DEFAULT 13 __do_global_dtors_aux - 45: 0000000000011010 1 OBJECT LOCAL DEFAULT 23 completed.0 - 46: 0000000000010da0 0 NOTYPE LOCAL DEFAULT 19 $d - 47: 0000000000010da0 0 OBJECT LOCAL DEFAULT 19 __do_global_dtors_aux_fini_array_entry - 48: 0000000000000710 0 FUNC LOCAL DEFAULT 13 frame_dummy - 49: 0000000000010d98 0 NOTYPE LOCAL DEFAULT 18 $d - 50: 0000000000010d98 0 OBJECT LOCAL DEFAULT 18 __frame_dummy_init_array_entry - 51: 00000000000007b8 0 NOTYPE LOCAL DEFAULT 17 $d - 52: 0000000000011010 0 NOTYPE LOCAL DEFAULT 23 $d - 53: 0000000000000000 0 FILE LOCAL DEFAULT ABS using_gamma_conditional.c - 54: 0000000000011014 0 NOTYPE LOCAL DEFAULT 23 $d - 55: 0000000000000714 0 NOTYPE LOCAL DEFAULT 13 $x - 56: 0000000000000818 0 NOTYPE LOCAL DEFAULT 17 $d - 57: 0000000000000000 0 FILE LOCAL DEFAULT ABS crtstuff.c - 58: 000000000000082c 0 NOTYPE LOCAL DEFAULT 17 $d - 59: 000000000000082c 0 OBJECT LOCAL DEFAULT 17 __FRAME_END__ - 60: 0000000000000000 0 FILE LOCAL DEFAULT ABS - 61: 0000000000010da8 0 OBJECT LOCAL DEFAULT ABS _DYNAMIC - 62: 0000000000000750 0 NOTYPE LOCAL DEFAULT 16 __GNU_EH_FRAME_HDR - 63: 0000000000010fd0 0 OBJECT LOCAL DEFAULT ABS _GLOBAL_OFFSET_TABLE_ - 64: 00000000000005a0 0 NOTYPE LOCAL DEFAULT 12 $x - 65: 0000000000000000 0 FUNC GLOBAL DEFAULT UND __libc_start_main@GLIBC_2.34 - 66: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_deregisterTMCloneTable - 67: 0000000000011000 0 NOTYPE WEAK DEFAULT 22 data_start - 68: 0000000000011010 0 NOTYPE GLOBAL DEFAULT 23 __bss_start__ - 69: 0000000000000000 0 FUNC WEAK DEFAULT UND __cxa_finalize@GLIBC_2.17 - 70: 0000000000011020 0 NOTYPE GLOBAL DEFAULT 23 _bss_end__ - 71: 0000000000011010 0 NOTYPE GLOBAL DEFAULT 22 _edata - 72: 0000000000011018 4 OBJECT GLOBAL DEFAULT 23 z - 73: 0000000000011014 4 OBJECT GLOBAL DEFAULT 23 x - 74: 0000000000000738 0 FUNC GLOBAL HIDDEN 14 _fini - 75: 0000000000011020 0 NOTYPE GLOBAL DEFAULT 23 __bss_end__ - 76: 0000000000011000 0 NOTYPE GLOBAL DEFAULT 22 __data_start - 77: 0000000000000000 0 NOTYPE WEAK DEFAULT UND __gmon_start__ - 78: 0000000000011008 0 OBJECT GLOBAL HIDDEN 22 __dso_handle - 79: 0000000000000000 0 FUNC GLOBAL DEFAULT UND abort@GLIBC_2.17 - 80: 000000000000074c 4 OBJECT GLOBAL DEFAULT 15 _IO_stdin_used - 81: 0000000000011020 0 NOTYPE GLOBAL DEFAULT 23 _end - 82: 0000000000000600 52 FUNC GLOBAL DEFAULT 13 _start - 83: 0000000000011020 0 NOTYPE GLOBAL DEFAULT 23 __end__ - 84: 0000000000011010 0 NOTYPE GLOBAL DEFAULT 23 __bss_start - 85: 0000000000000714 36 FUNC GLOBAL DEFAULT 13 main - 86: 0000000000011010 0 OBJECT GLOBAL HIDDEN 22 __TMC_END__ - 87: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_registerTMCloneTable - 88: 0000000000000580 0 FUNC GLOBAL HIDDEN 11 _init diff --git a/src/test/correct/using_gamma_conditional/gcc/using_gamma_conditional_gtirb.expected b/src/test/correct/using_gamma_conditional/gcc/using_gamma_conditional_gtirb.expected index 12edd24b4..7ad2f2aa3 100644 --- a/src/test/correct/using_gamma_conditional/gcc/using_gamma_conditional_gtirb.expected +++ b/src/test/correct/using_gamma_conditional/gcc/using_gamma_conditional_gtirb.expected @@ -73,7 +73,7 @@ implementation {:extern} guarantee_reflexive() assert ((memory_load32_le(mem, $x_addr) == memory_load32_le(mem, $x_addr)) && (memory_load32_le(mem, $z_addr) == memory_load32_le(mem, $z_addr))); } -procedure main_1812(); +procedure main(); modifies CF, Gamma_CF, Gamma_NF, Gamma_R0, Gamma_VF, Gamma_ZF, Gamma_mem, NF, R0, VF, ZF, mem; requires (gamma_load32(Gamma_mem, $x_addr) == true); free requires (memory_load64_le(mem, 69632bv64) == 0bv64); @@ -89,47 +89,47 @@ procedure main_1812(); free ensures (memory_load64_le(mem, 69616bv64) == 1812bv64); free ensures (memory_load64_le(mem, 69640bv64) == 69640bv64); -implementation main_1812() +implementation main() { - var Cse0__5_3_3: bv32; - var Gamma_Cse0__5_3_3: bool; - var Gamma_load5: bool; - var load5: bv32; - main_1812__0__0Z93XS38RGCWcCuYAn4Wlg: - assume {:captureState "main_1812__0__0Z93XS38RGCWcCuYAn4Wlg"} true; + var $load5: bv32; + var Cse0__5$3$3: bv32; + var Gamma_$load5: bool; + var Gamma_Cse0__5$3$3: bool; + $main$__0__$0Z93XS38RGCWcCuYAn4Wlg: + assume {:captureState "$main$__0__$0Z93XS38RGCWcCuYAn4Wlg"} true; R0, Gamma_R0 := 69632bv64, true; R0, Gamma_R0 := bvadd64(R0, 20bv64), Gamma_R0; call rely(); - load5, Gamma_load5 := memory_load32_le(mem, R0), (gamma_load32(Gamma_mem, R0) || L(mem, R0)); - R0, Gamma_R0 := zero_extend32_32(load5), Gamma_load5; - Cse0__5_3_3, Gamma_Cse0__5_3_3 := bvadd32(R0[32:0], 0bv32), Gamma_R0; - VF, Gamma_VF := bvnot1(bvcomp32(Cse0__5_3_3, Cse0__5_3_3)), Gamma_Cse0__5_3_3; - CF, Gamma_CF := bvnot1(bvcomp33(zero_extend1_32(Cse0__5_3_3), bvadd33(zero_extend1_32(R0[32:0]), 4294967296bv33))), (Gamma_R0 && Gamma_Cse0__5_3_3); - ZF, Gamma_ZF := bvcomp32(Cse0__5_3_3, 0bv32), Gamma_Cse0__5_3_3; - NF, Gamma_NF := Cse0__5_3_3[32:31], Gamma_Cse0__5_3_3; + $load5, Gamma_$load5 := memory_load32_le(mem, R0), (gamma_load32(Gamma_mem, R0) || L(mem, R0)); + R0, Gamma_R0 := zero_extend32_32($load5), Gamma_$load5; + Cse0__5$3$3, Gamma_Cse0__5$3$3 := bvadd32(R0[32:0], 0bv32), Gamma_R0; + VF, Gamma_VF := bvnot1(bvcomp32(Cse0__5$3$3, Cse0__5$3$3)), Gamma_Cse0__5$3$3; + CF, Gamma_CF := bvnot1(bvcomp33(zero_extend1_32(Cse0__5$3$3), bvadd33(zero_extend1_32(R0[32:0]), 4294967296bv33))), (Gamma_R0 && Gamma_Cse0__5$3$3); + ZF, Gamma_ZF := bvcomp32(Cse0__5$3$3, 0bv32), Gamma_Cse0__5$3$3; + NF, Gamma_NF := Cse0__5$3$3[32:31], Gamma_Cse0__5$3$3; assert Gamma_ZF; - goto main_1812__0__0Z93XS38RGCWcCuYAn4Wlg_goto_main_1812__2__dFUCtpaoQFSZ3wSzJ5ELFA, main_1812__0__0Z93XS38RGCWcCuYAn4Wlg_goto_main_1812__1__Nfpd5K~xSA6Q~xrcC34K8w; - main_1812__0__0Z93XS38RGCWcCuYAn4Wlg_goto_main_1812__1__Nfpd5K~xSA6Q~xrcC34K8w: - assume {:captureState "main_1812__0__0Z93XS38RGCWcCuYAn4Wlg_goto_main_1812__1__Nfpd5K~xSA6Q~xrcC34K8w"} true; - assume (!(ZF == 1bv1)); + goto $main$__0__$0Z93XS38RGCWcCuYAn4Wlg_goto_$main$__2__$dFUCtpaoQFSZ3wSzJ5ELFA, $main$__0__$0Z93XS38RGCWcCuYAn4Wlg_goto_$main$__1__$Nfpd5K~xSA6Q~xrcC34K8w; + $main$__1__$Nfpd5K~xSA6Q~xrcC34K8w: + assume {:captureState "$main$__1__$Nfpd5K~xSA6Q~xrcC34K8w"} true; R0, Gamma_R0 := 0bv64, true; - goto main_1812__1__Nfpd5K~xSA6Q~xrcC34K8w; - main_1812__1__Nfpd5K~xSA6Q~xrcC34K8w: - assume {:captureState "main_1812__1__Nfpd5K~xSA6Q~xrcC34K8w"} true; - goto main_1812__3__R27N5eQARYq8nJdevhUAeQ; - main_1812__0__0Z93XS38RGCWcCuYAn4Wlg_goto_main_1812__2__dFUCtpaoQFSZ3wSzJ5ELFA: - assume {:captureState "main_1812__0__0Z93XS38RGCWcCuYAn4Wlg_goto_main_1812__2__dFUCtpaoQFSZ3wSzJ5ELFA"} true; - assume (ZF == 1bv1); + goto $main$__3__$R27N5eQARYq8nJdevhUAeQ; + $main$__2__$dFUCtpaoQFSZ3wSzJ5ELFA: + assume {:captureState "$main$__2__$dFUCtpaoQFSZ3wSzJ5ELFA"} true; R0, Gamma_R0 := 1bv64, true; - goto main_1812__2__dFUCtpaoQFSZ3wSzJ5ELFA; - main_1812__2__dFUCtpaoQFSZ3wSzJ5ELFA: - assume {:captureState "main_1812__2__dFUCtpaoQFSZ3wSzJ5ELFA"} true; - goto main_1812__3__R27N5eQARYq8nJdevhUAeQ; - main_1812__3__R27N5eQARYq8nJdevhUAeQ: - assume {:captureState "main_1812__3__R27N5eQARYq8nJdevhUAeQ"} true; - goto main_1812_basil_return; - main_1812_basil_return: - assume {:captureState "main_1812_basil_return"} true; + goto $main$__3__$R27N5eQARYq8nJdevhUAeQ; + $main$__3__$R27N5eQARYq8nJdevhUAeQ: + assume {:captureState "$main$__3__$R27N5eQARYq8nJdevhUAeQ"} true; + goto main_basil_return; + $main$__0__$0Z93XS38RGCWcCuYAn4Wlg_goto_$main$__2__$dFUCtpaoQFSZ3wSzJ5ELFA: + assume {:captureState "$main$__0__$0Z93XS38RGCWcCuYAn4Wlg_goto_$main$__2__$dFUCtpaoQFSZ3wSzJ5ELFA"} true; + assume (ZF == 1bv1); + goto $main$__2__$dFUCtpaoQFSZ3wSzJ5ELFA; + $main$__0__$0Z93XS38RGCWcCuYAn4Wlg_goto_$main$__1__$Nfpd5K~xSA6Q~xrcC34K8w: + assume {:captureState "$main$__0__$0Z93XS38RGCWcCuYAn4Wlg_goto_$main$__1__$Nfpd5K~xSA6Q~xrcC34K8w"} true; + assume (!(ZF == 1bv1)); + goto $main$__1__$Nfpd5K~xSA6Q~xrcC34K8w; + main_basil_return: + assume {:captureState "main_basil_return"} true; return; } diff --git a/src/test/correct/using_gamma_conditional/gcc_pic/using_gamma_conditional.adt b/src/test/correct/using_gamma_conditional/gcc_pic/using_gamma_conditional.adt deleted file mode 100644 index ae2f4ac0d..000000000 --- a/src/test/correct/using_gamma_conditional/gcc_pic/using_gamma_conditional.adt +++ /dev/null @@ -1,519 +0,0 @@ -Project(Attrs([Attr("filename","\"gcc_pic/using_gamma_conditional.out\""), -Attr("image-specification","(declare abi (name str))\n(declare arch (name str))\n(declare base-address (addr int))\n(declare bias (off int))\n(declare bits (size int))\n(declare code-region (addr int) (size int) (off int))\n(declare code-start (addr int))\n(declare entry-point (addr int))\n(declare external-reference (addr int) (name str))\n(declare format (name str))\n(declare is-executable (flag bool))\n(declare is-little-endian (flag bool))\n(declare llvm:base-address (addr int))\n(declare llvm:code-entry (name str) (off int) (size int))\n(declare llvm:coff-import-library (name str))\n(declare llvm:coff-virtual-section-header (name str) (addr int) (size int))\n(declare llvm:elf-program-header (name str) (off int) (size int))\n(declare llvm:elf-program-header-flags (name str) (ld bool) (r bool) \n (w bool) (x bool))\n(declare llvm:elf-virtual-program-header (name str) (addr int) (size int))\n(declare llvm:entry-point (addr int))\n(declare llvm:macho-symbol (name str) (value int))\n(declare llvm:name-reference (at int) (name str))\n(declare llvm:relocation (at int) (addr int))\n(declare llvm:section-entry (name str) (addr int) (size int) (off int))\n(declare llvm:section-flags (name str) (r bool) (w bool) (x bool))\n(declare llvm:segment-command (name str) (off int) (size int))\n(declare llvm:segment-command-flags (name str) (r bool) (w bool) (x bool))\n(declare llvm:symbol-entry (name str) (addr int) (size int) (off int)\n (value int))\n(declare llvm:virtual-segment-command (name str) (addr int) (size int))\n(declare mapped (addr int) (size int) (off int))\n(declare named-region (addr int) (size int) (name str))\n(declare named-symbol (addr int) (name str))\n(declare require (name str))\n(declare section (addr int) (size int))\n(declare segment (addr int) (size int) (r bool) (w bool) (x bool))\n(declare subarch (name str))\n(declare symbol-chunk (addr int) (size int) (root int))\n(declare symbol-value (addr int) (value int))\n(declare system (name str))\n(declare vendor (name str))\n\n(abi unknown)\n(arch aarch64)\n(base-address 0)\n(bias 0)\n(bits 64)\n(code-region 1912 20 1912)\n(code-region 1600 312 1600)\n(code-region 1456 96 1456)\n(code-region 1432 24 1432)\n(code-start 1652)\n(code-start 1600)\n(code-start 1876)\n(entry-point 1600)\n(external-reference 69584 _ITM_deregisterTMCloneTable)\n(external-reference 69592 __cxa_finalize)\n(external-reference 69608 __gmon_start__)\n(external-reference 69624 _ITM_registerTMCloneTable)\n(external-reference 69544 __libc_start_main)\n(external-reference 69552 __cxa_finalize)\n(external-reference 69560 __gmon_start__)\n(external-reference 69568 abort)\n(format elf)\n(is-executable true)\n(is-little-endian true)\n(llvm:base-address 0)\n(llvm:code-entry abort 0 0)\n(llvm:code-entry __cxa_finalize 0 0)\n(llvm:code-entry __libc_start_main 0 0)\n(llvm:code-entry _init 1432 0)\n(llvm:code-entry main 1876 36)\n(llvm:code-entry _start 1600 52)\n(llvm:code-entry abort@GLIBC_2.17 0 0)\n(llvm:code-entry _fini 1912 0)\n(llvm:code-entry __cxa_finalize@GLIBC_2.17 0 0)\n(llvm:code-entry __libc_start_main@GLIBC_2.34 0 0)\n(llvm:code-entry frame_dummy 1872 0)\n(llvm:code-entry __do_global_dtors_aux 1792 0)\n(llvm:code-entry register_tm_clones 1728 0)\n(llvm:code-entry deregister_tm_clones 1680 0)\n(llvm:code-entry call_weak_fn 1652 20)\n(llvm:code-entry .fini 1912 20)\n(llvm:code-entry .text 1600 312)\n(llvm:code-entry .plt 1456 96)\n(llvm:code-entry .init 1432 24)\n(llvm:elf-program-header 08 3472 624)\n(llvm:elf-program-header 07 0 0)\n(llvm:elf-program-header 06 1936 60)\n(llvm:elf-program-header 05 596 68)\n(llvm:elf-program-header 04 3488 496)\n(llvm:elf-program-header 03 3472 640)\n(llvm:elf-program-header 02 0 2160)\n(llvm:elf-program-header 01 568 27)\n(llvm:elf-program-header 00 64 504)\n(llvm:elf-program-header-flags 08 false true false false)\n(llvm:elf-program-header-flags 07 false true true false)\n(llvm:elf-program-header-flags 06 false true false false)\n(llvm:elf-program-header-flags 05 false true false false)\n(llvm:elf-program-header-flags 04 false true true false)\n(llvm:elf-program-header-flags 03 true true true false)\n(llvm:elf-program-header-flags 02 true true false true)\n(llvm:elf-program-header-flags 01 false true false false)\n(llvm:elf-program-header-flags 00 false true false false)\n(llvm:elf-virtual-program-header 08 69008 624)\n(llvm:elf-virtual-program-header 07 0 0)\n(llvm:elf-virtual-program-header 06 1936 60)\n(llvm:elf-virtual-program-header 05 596 68)\n(llvm:elf-virtual-program-header 04 69024 496)\n(llvm:elf-virtual-program-header 03 69008 656)\n(llvm:elf-virtual-program-header 02 0 2160)\n(llvm:elf-virtual-program-header 01 568 27)\n(llvm:elf-virtual-program-header 00 64 504)\n(llvm:entry-point 1600)\n(llvm:name-reference 69568 abort)\n(llvm:name-reference 69560 __gmon_start__)\n(llvm:name-reference 69552 __cxa_finalize)\n(llvm:name-reference 69544 __libc_start_main)\n(llvm:name-reference 69624 _ITM_registerTMCloneTable)\n(llvm:name-reference 69608 __gmon_start__)\n(llvm:name-reference 69592 __cxa_finalize)\n(llvm:name-reference 69584 _ITM_deregisterTMCloneTable)\n(llvm:section-entry .shstrtab 0 250 6857)\n(llvm:section-entry .strtab 0 561 6296)\n(llvm:section-entry .symtab 0 2136 4160)\n(llvm:section-entry .comment 0 43 4112)\n(llvm:section-entry .bss 69648 16 4112)\n(llvm:section-entry .data 69632 16 4096)\n(llvm:section-entry .got 69520 112 3984)\n(llvm:section-entry .dynamic 69024 496 3488)\n(llvm:section-entry .fini_array 69016 8 3480)\n(llvm:section-entry .init_array 69008 8 3472)\n(llvm:section-entry .eh_frame 2000 160 2000)\n(llvm:section-entry .eh_frame_hdr 1936 60 1936)\n(llvm:section-entry .rodata 1932 4 1932)\n(llvm:section-entry .fini 1912 20 1912)\n(llvm:section-entry .text 1600 312 1600)\n(llvm:section-entry .plt 1456 96 1456)\n(llvm:section-entry .init 1432 24 1432)\n(llvm:section-entry .rela.plt 1336 96 1336)\n(llvm:section-entry .rela.dyn 1120 216 1120)\n(llvm:section-entry .gnu.version_r 1072 48 1072)\n(llvm:section-entry .gnu.version 1054 18 1054)\n(llvm:section-entry .dynstr 912 141 912)\n(llvm:section-entry .dynsym 696 216 696)\n(llvm:section-entry .gnu.hash 664 28 664)\n(llvm:section-entry .note.ABI-tag 632 32 632)\n(llvm:section-entry .note.gnu.build-id 596 36 596)\n(llvm:section-entry .interp 568 27 568)\n(llvm:section-flags .shstrtab true false false)\n(llvm:section-flags .strtab true false false)\n(llvm:section-flags .symtab true false false)\n(llvm:section-flags .comment true false false)\n(llvm:section-flags .bss true true false)\n(llvm:section-flags .data true true false)\n(llvm:section-flags .got true true false)\n(llvm:section-flags .dynamic true true false)\n(llvm:section-flags .fini_array true true false)\n(llvm:section-flags .init_array true true false)\n(llvm:section-flags .eh_frame true false false)\n(llvm:section-flags .eh_frame_hdr true false false)\n(llvm:section-flags .rodata true false false)\n(llvm:section-flags .fini true false true)\n(llvm:section-flags .text true false true)\n(llvm:section-flags .plt true false true)\n(llvm:section-flags .init true false true)\n(llvm:section-flags .rela.plt true false false)\n(llvm:section-flags .rela.dyn true false false)\n(llvm:section-flags .gnu.version_r true false false)\n(llvm:section-flags .gnu.version true false false)\n(llvm:section-flags .dynstr true false false)\n(llvm:section-flags .dynsym true false false)\n(llvm:section-flags .gnu.hash true false false)\n(llvm:section-flags .note.ABI-tag true false false)\n(llvm:section-flags .note.gnu.build-id true false false)\n(llvm:section-flags .interp true false false)\n(llvm:symbol-entry abort 0 0 0 0)\n(llvm:symbol-entry __cxa_finalize 0 0 0 0)\n(llvm:symbol-entry __libc_start_main 0 0 0 0)\n(llvm:symbol-entry _init 1432 0 1432 1432)\n(llvm:symbol-entry main 1876 36 1876 1876)\n(llvm:symbol-entry _start 1600 52 1600 1600)\n(llvm:symbol-entry abort@GLIBC_2.17 0 0 0 0)\n(llvm:symbol-entry _fini 1912 0 1912 1912)\n(llvm:symbol-entry __cxa_finalize@GLIBC_2.17 0 0 0 0)\n(llvm:symbol-entry __libc_start_main@GLIBC_2.34 0 0 0 0)\n(llvm:symbol-entry frame_dummy 1872 0 1872 1872)\n(llvm:symbol-entry __do_global_dtors_aux 1792 0 1792 1792)\n(llvm:symbol-entry register_tm_clones 1728 0 1728 1728)\n(llvm:symbol-entry deregister_tm_clones 1680 0 1680 1680)\n(llvm:symbol-entry call_weak_fn 1652 20 1652 1652)\n(mapped 0 2160 0)\n(mapped 69008 640 3472)\n(named-region 0 2160 02)\n(named-region 69008 656 03)\n(named-region 568 27 .interp)\n(named-region 596 36 .note.gnu.build-id)\n(named-region 632 32 .note.ABI-tag)\n(named-region 664 28 .gnu.hash)\n(named-region 696 216 .dynsym)\n(named-region 912 141 .dynstr)\n(named-region 1054 18 .gnu.version)\n(named-region 1072 48 .gnu.version_r)\n(named-region 1120 216 .rela.dyn)\n(named-region 1336 96 .rela.plt)\n(named-region 1432 24 .init)\n(named-region 1456 96 .plt)\n(named-region 1600 312 .text)\n(named-region 1912 20 .fini)\n(named-region 1932 4 .rodata)\n(named-region 1936 60 .eh_frame_hdr)\n(named-region 2000 160 .eh_frame)\n(named-region 69008 8 .init_array)\n(named-region 69016 8 .fini_array)\n(named-region 69024 496 .dynamic)\n(named-region 69520 112 .got)\n(named-region 69632 16 .data)\n(named-region 69648 16 .bss)\n(named-region 0 43 .comment)\n(named-region 0 2136 .symtab)\n(named-region 0 561 .strtab)\n(named-region 0 250 .shstrtab)\n(named-symbol 1652 call_weak_fn)\n(named-symbol 1680 deregister_tm_clones)\n(named-symbol 1728 register_tm_clones)\n(named-symbol 1792 __do_global_dtors_aux)\n(named-symbol 1872 frame_dummy)\n(named-symbol 0 __libc_start_main@GLIBC_2.34)\n(named-symbol 0 __cxa_finalize@GLIBC_2.17)\n(named-symbol 1912 _fini)\n(named-symbol 0 abort@GLIBC_2.17)\n(named-symbol 1600 _start)\n(named-symbol 1876 main)\n(named-symbol 1432 _init)\n(named-symbol 0 __libc_start_main)\n(named-symbol 0 __cxa_finalize)\n(named-symbol 0 abort)\n(require libc.so.6)\n(section 568 27)\n(section 596 36)\n(section 632 32)\n(section 664 28)\n(section 696 216)\n(section 912 141)\n(section 1054 18)\n(section 1072 48)\n(section 1120 216)\n(section 1336 96)\n(section 1432 24)\n(section 1456 96)\n(section 1600 312)\n(section 1912 20)\n(section 1932 4)\n(section 1936 60)\n(section 2000 160)\n(section 69008 8)\n(section 69016 8)\n(section 69024 496)\n(section 69520 112)\n(section 69632 16)\n(section 69648 16)\n(section 0 43)\n(section 0 2136)\n(section 0 561)\n(section 0 250)\n(segment 0 2160 true false true)\n(segment 69008 656 true true false)\n(subarch v8)\n(symbol-chunk 1652 20 1652)\n(symbol-chunk 1600 52 1600)\n(symbol-chunk 1876 36 1876)\n(symbol-value 1652 1652)\n(symbol-value 1680 1680)\n(symbol-value 1728 1728)\n(symbol-value 1792 1792)\n(symbol-value 1872 1872)\n(symbol-value 1912 1912)\n(symbol-value 1600 1600)\n(symbol-value 1876 1876)\n(symbol-value 1432 1432)\n(symbol-value 0 0)\n(system \"\")\n(vendor \"\")\n"), -Attr("abi-name","\"aarch64-linux-gnu-elf\"")]), -Sections([Section(".shstrtab", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x40\x06\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xc8\x1b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x38\x00\x09\x00\x40\x00\x1c\x00\x1b\x00\x06\x00\x00\x00\x04\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x04\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x70\x08\x00\x00\x00\x00\x00\x00\x70\x08\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x01\x00\x00\x00\x06\x00\x00\x00\x90\x0d\x00\x00\x00\x00\x00\x00\x90\x0d"), -Section(".strtab", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x40\x06\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xc8\x1b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x38\x00\x09\x00\x40\x00\x1c\x00\x1b\x00\x06\x00\x00\x00\x04\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x04\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x70\x08\x00\x00\x00\x00\x00\x00\x70\x08\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x01\x00\x00\x00\x06\x00\x00\x00\x90\x0d\x00\x00\x00\x00\x00\x00\x90\x0d\x01\x00\x00\x00\x00\x00\x90\x0d\x01\x00\x00\x00\x00\x00\x80\x02\x00\x00\x00\x00\x00\x00\x90\x02\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x02\x00\x00\x00\x06\x00\x00\x00\xa0\x0d\x00\x00\x00\x00\x00\x00\xa0\x0d\x01\x00\x00\x00\x00\x00\xa0\x0d\x01\x00\x00\x00\x00\x00\xf0\x01\x00\x00\x00\x00\x00\x00\xf0\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x04\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x50\xe5\x74\x64\x04\x00\x00\x00\x90\x07\x00\x00\x00\x00\x00\x00\x90\x07\x00\x00\x00\x00\x00\x00\x90\x07\x00\x00\x00\x00\x00\x00\x3c\x00\x00\x00\x00\x00\x00\x00\x3c\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x51\xe5\x74\x64\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x52\xe5\x74\x64\x04\x00\x00\x00\x90\x0d\x00\x00\x00\x00\x00\x00\x90\x0d\x01\x00\x00\x00\x00\x00\x90\x0d\x01\x00\x00\x00\x00\x00\x70\x02\x00\x00\x00\x00\x00\x00\x70\x02\x00\x00\x00\x00\x00\x00\x01"), -Section(".symtab", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x40\x06\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xc8\x1b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x38\x00\x09\x00\x40\x00\x1c\x00\x1b\x00\x06\x00\x00\x00\x04\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x04\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x70\x08\x00\x00\x00\x00\x00\x00\x70\x08\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x01\x00\x00\x00\x06\x00\x00\x00\x90\x0d\x00\x00\x00\x00\x00\x00\x90\x0d\x01\x00\x00\x00\x00\x00\x90\x0d\x01\x00\x00\x00\x00\x00\x80\x02\x00\x00\x00\x00\x00\x00\x90\x02\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x02\x00\x00\x00\x06\x00\x00\x00\xa0\x0d\x00\x00\x00\x00\x00\x00\xa0\x0d\x01\x00\x00\x00\x00\x00\xa0\x0d\x01\x00\x00\x00\x00\x00\xf0\x01\x00\x00\x00\x00\x00\x00\xf0\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x04\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x50\xe5\x74\x64\x04\x00\x00\x00\x90\x07\x00\x00\x00\x00\x00\x00\x90\x07\x00\x00\x00\x00\x00\x00\x90\x07\x00\x00\x00\x00\x00\x00\x3c\x00\x00\x00\x00\x00\x00\x00\x3c\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x51\xe5\x74\x64\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x52\xe5\x74\x64\x04\x00\x00\x00\x90\x0d\x00\x00\x00\x00\x00\x00\x90\x0d\x01\x00\x00\x00\x00\x00\x90\x0d\x01\x00\x00\x00\x00\x00\x70\x02\x00\x00\x00\x00\x00\x00\x70\x02\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x2f\x6c\x69\x62\x2f\x6c\x64\x2d\x6c\x69\x6e\x75\x78\x2d\x61\x61\x72\x63\x68\x36\x34\x2e\x73\x6f\x2e\x31\x00\x00\x04\x00\x00\x00\x14\x00\x00\x00\x03\x00\x00\x00\x47\x4e\x55\x00\xae\xbc\x90\x46\xe8\xe1\x26\xa4\x09\x37\xd1\x87\xe3\x48\x1c\x73\x41\x42\x41\xb4\x04\x00\x00\x00\x10\x00\x00\x00\x01\x00\x00\x00\x47\x4e\x55\x00\x00\x00\x00\x00\x03\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x01\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x0b\x00\x98\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x16\x00\x00\x10\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x48\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x22\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x22\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x73\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5f\x5f\x63\x78\x61\x5f\x66\x69\x6e\x61\x6c\x69\x7a\x65\x00\x5f\x5f\x6c\x69\x62\x63\x5f\x73\x74\x61\x72\x74\x5f\x6d\x61\x69\x6e\x00\x61\x62\x6f\x72\x74\x00\x6c\x69\x62\x63\x2e\x73\x6f\x2e\x36\x00\x47\x4c\x49\x42\x43\x5f\x32\x2e\x31\x37\x00\x47\x4c\x49\x42\x43\x5f\x32\x2e\x33\x34\x00\x5f\x49\x54\x4d\x5f\x64\x65\x72\x65\x67\x69\x73\x74\x65\x72\x54\x4d\x43\x6c\x6f\x6e\x65\x54\x61\x62\x6c\x65\x00\x5f\x5f\x67\x6d\x6f\x6e\x5f\x73\x74\x61\x72\x74\x5f\x5f\x00\x5f\x49\x54\x4d\x5f\x72\x65\x67\x69\x73\x74\x65\x72\x54\x4d\x43\x6c\x6f\x6e\x65\x54\x61\x62\x6c\x65\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x01\x00\x03\x00\x01\x00\x03\x00\x01\x00\x01\x00\x02\x00\x28\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x97\x91\x96\x06\x00\x00\x03\x00\x32\x00\x00\x00\x10\x00\x00\x00\xb4\x91\x96\x06\x00\x00\x02\x00\x3d\x00\x00\x00\x00\x00\x00\x00\x90\x0d\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x50\x07\x00\x00\x00\x00\x00\x00\x98\x0d\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\xe0\x0f\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x14\x10\x01\x00\x00\x00\x00\x00\xf0\x0f\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x54\x07\x00\x00\x00\x00\x00\x00\x08\x10\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x08\x10\x01\x00\x00\x00\x00\x00\xd0\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xd8\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe8\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xf8\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xa8\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xb0\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xb8\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xc0\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1f\x20\x03\xd5\xfd\x7b\xbf\xa9\xfd\x03\x00\x91\x34\x00\x00\x94\xfd\x7b\xc1\xa8\xc0\x03\x5f\xd6\xf0\x7b\xbf\xa9\x90\x00\x00\x90\x11\xd2\x47\xf9\x10\x82\x3e\x91\x20\x02\x1f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x90\x00\x00\x90\x11\xd6\x47\xf9\x10\xa2\x3e\x91\x20\x02\x1f\xd6\x90\x00\x00\x90\x11\xda\x47\xf9\x10\xc2\x3e\x91\x20\x02\x1f\xd6\x90\x00\x00\x90\x11\xde\x47\xf9\x10\xe2\x3e\x91\x20\x02\x1f\xd6\x90\x00\x00\x90\x11\xe2\x47\xf9\x10\x02\x3f\x91\x20\x02\x1f\xd6\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1f\x20\x03\xd5\x1d\x00\x80\xd2\x1e\x00\x80\xd2\xe5\x03\x00\xaa\xe1\x03\x40\xf9\xe2\x23\x00\x91\xe6\x03\x00\x91\x80\x00\x00\x90\x00\xf8\x47\xf9\x03\x00\x80\xd2\x04\x00\x80\xd2\xd9\xff\xff\x97\xe4\xff\xff\x97\x80\x00\x00\x90\x00\xf4\x47\xf9\x40\x00\x00\xb4\xdc\xff\xff\x17\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x80\x00\x00\xb0\x00\x40\x00\x91\x81\x00\x00\xb0\x21\x40\x00\x91\x3f\x00\x00\xeb\xc0\x00\x00\x54\x81\x00\x00\x90\x21\xe8\x47\xf9\x61\x00\x00\xb4\xf0\x03\x01\xaa\x00\x02\x1f\xd6\xc0\x03\x5f\xd6\x80\x00\x00\xb0\x00\x40\x00\x91\x81\x00\x00\xb0\x21\x40\x00\x91\x21\x00\x00\xcb\x22\xfc\x7f\xd3\x41\x0c\x81\x8b\x21\xfc\x41\x93\xc1\x00\x00\xb4\x82\x00\x00\x90\x42\xfc\x47\xf9\x62\x00\x00\xb4\xf0\x03\x02\xaa\x00\x02\x1f\xd6\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\xfd\x7b\xbe\xa9\xfd\x03\x00\x91\xf3\x0b\x00\xf9\x93\x00\x00\xb0\x60\x42\x40\x39\x40\x01\x00\x35\x80\x00\x00\x90\x00\xec\x47\xf9\x80\x00\x00\xb4\x80\x00\x00\xb0\x00\x04\x40\xf9\xad\xff\xff\x97\xd8\xff\xff\x97\x20\x00\x80\x52\x60\x42\x00\x39\xf3\x0b\x40\xf9\xfd\x7b\xc2\xa8\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\xdc\xff\xff\x17\x80\x00\x00\x90\x00\xf0\x47\xf9\x00\x00\x40\xb9\x1f\x00\x00\x71\x60\x00\x00\x54\x00\x00\x80\x52\x02\x00\x00\x14\x20\x00\x80\x52\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\xfd\x7b\xbf\xa9\xfd\x03\x00\x91\xfd\x7b\xc1\xa8\xc0\x03\x5f\xd6\x01\x00\x02\x00\x01\x1b\x03\x3b\x3c\x00\x00\x00\x06\x00\x00\x00\xb0\xfe\xff\xff\x54\x00\x00\x00\x00\xff\xff\xff\x68\x00\x00\x00\x30\xff\xff\xff\x7c\x00\x00\x00\x70\xff\xff\xff\x90\x00\x00\x00\xc0\xff\xff\xff\xb4\x00\x00\x00\xc4\xff\xff\xff\xc8\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x01\x7a\x52\x00\x04\x78\x1e\x01\x1b\x0c\x1f\x00\x10\x00\x00\x00\x18\x00\x00\x00\x54\xfe\xff\xff\x34\x00\x00\x00\x00\x41\x07\x1e\x10\x00\x00\x00\x2c\x00\x00\x00\x90\xfe\xff\xff\x30\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x40\x00\x00\x00\xac\xfe\xff\xff\x3c\x00\x00\x00\x00\x00\x00\x00\x20\x00\x00\x00\x54\x00\x00\x00\xd8\xfe\xff\xff\x48\x00\x00\x00\x00\x41\x0e\x20\x9d\x04\x9e\x03\x42\x93\x02\x4e\xde\xdd\xd3\x0e\x00\x00\x00\x00\x10\x00\x00\x00\x78\x00\x00\x00\x04\xff\xff\xff\x04\x00\x00\x00\x00\x00\x00\x00"), -Section(".comment", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x40\x06\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xc8\x1b\x00"), -Section(".interp", 0x238, "\x2f\x6c\x69\x62\x2f\x6c\x64\x2d\x6c\x69\x6e\x75\x78\x2d\x61\x61\x72\x63\x68\x36\x34\x2e\x73\x6f\x2e\x31\x00"), -Section(".note.gnu.build-id", 0x254, "\x04\x00\x00\x00\x14\x00\x00\x00\x03\x00\x00\x00\x47\x4e\x55\x00\xae\xbc\x90\x46\xe8\xe1\x26\xa4\x09\x37\xd1\x87\xe3\x48\x1c\x73\x41\x42\x41\xb4"), -Section(".note.ABI-tag", 0x278, "\x04\x00\x00\x00\x10\x00\x00\x00\x01\x00\x00\x00\x47\x4e\x55\x00\x00\x00\x00\x00\x03\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00"), -Section(".gnu.hash", 0x298, "\x01\x00\x00\x00\x01\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".dynsym", 0x2B8, "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x0b\x00\x98\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x16\x00\x00\x10\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x48\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x22\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x22\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x73\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".dynstr", 0x390, "\x00\x5f\x5f\x63\x78\x61\x5f\x66\x69\x6e\x61\x6c\x69\x7a\x65\x00\x5f\x5f\x6c\x69\x62\x63\x5f\x73\x74\x61\x72\x74\x5f\x6d\x61\x69\x6e\x00\x61\x62\x6f\x72\x74\x00\x6c\x69\x62\x63\x2e\x73\x6f\x2e\x36\x00\x47\x4c\x49\x42\x43\x5f\x32\x2e\x31\x37\x00\x47\x4c\x49\x42\x43\x5f\x32\x2e\x33\x34\x00\x5f\x49\x54\x4d\x5f\x64\x65\x72\x65\x67\x69\x73\x74\x65\x72\x54\x4d\x43\x6c\x6f\x6e\x65\x54\x61\x62\x6c\x65\x00\x5f\x5f\x67\x6d\x6f\x6e\x5f\x73\x74\x61\x72\x74\x5f\x5f\x00\x5f\x49\x54\x4d\x5f\x72\x65\x67\x69\x73\x74\x65\x72\x54\x4d\x43\x6c\x6f\x6e\x65\x54\x61\x62\x6c\x65\x00"), -Section(".gnu.version", 0x41E, "\x00\x00\x00\x00\x00\x00\x02\x00\x01\x00\x03\x00\x01\x00\x03\x00\x01\x00"), -Section(".gnu.version_r", 0x430, "\x01\x00\x02\x00\x28\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x97\x91\x96\x06\x00\x00\x03\x00\x32\x00\x00\x00\x10\x00\x00\x00\xb4\x91\x96\x06\x00\x00\x02\x00\x3d\x00\x00\x00\x00\x00\x00\x00"), -Section(".rela.dyn", 0x460, "\x90\x0d\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x50\x07\x00\x00\x00\x00\x00\x00\x98\x0d\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\xe0\x0f\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x14\x10\x01\x00\x00\x00\x00\x00\xf0\x0f\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x54\x07\x00\x00\x00\x00\x00\x00\x08\x10\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x08\x10\x01\x00\x00\x00\x00\x00\xd0\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xd8\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe8\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xf8\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".rela.plt", 0x538, "\xa8\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xb0\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xb8\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xc0\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".init", 0x598, "\x1f\x20\x03\xd5\xfd\x7b\xbf\xa9\xfd\x03\x00\x91\x34\x00\x00\x94\xfd\x7b\xc1\xa8\xc0\x03\x5f\xd6"), -Section(".plt", 0x5B0, "\xf0\x7b\xbf\xa9\x90\x00\x00\x90\x11\xd2\x47\xf9\x10\x82\x3e\x91\x20\x02\x1f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x90\x00\x00\x90\x11\xd6\x47\xf9\x10\xa2\x3e\x91\x20\x02\x1f\xd6\x90\x00\x00\x90\x11\xda\x47\xf9\x10\xc2\x3e\x91\x20\x02\x1f\xd6\x90\x00\x00\x90\x11\xde\x47\xf9\x10\xe2\x3e\x91\x20\x02\x1f\xd6\x90\x00\x00\x90\x11\xe2\x47\xf9\x10\x02\x3f\x91\x20\x02\x1f\xd6"), -Section(".fini", 0x778, "\x1f\x20\x03\xd5\xfd\x7b\xbf\xa9\xfd\x03\x00\x91\xfd\x7b\xc1\xa8\xc0\x03\x5f\xd6"), -Section(".rodata", 0x78C, "\x01\x00\x02\x00"), -Section(".eh_frame_hdr", 0x790, "\x01\x1b\x03\x3b\x3c\x00\x00\x00\x06\x00\x00\x00\xb0\xfe\xff\xff\x54\x00\x00\x00\x00\xff\xff\xff\x68\x00\x00\x00\x30\xff\xff\xff\x7c\x00\x00\x00\x70\xff\xff\xff\x90\x00\x00\x00\xc0\xff\xff\xff\xb4\x00\x00\x00\xc4\xff\xff\xff\xc8\x00\x00\x00"), -Section(".eh_frame", 0x7D0, "\x10\x00\x00\x00\x00\x00\x00\x00\x01\x7a\x52\x00\x04\x78\x1e\x01\x1b\x0c\x1f\x00\x10\x00\x00\x00\x18\x00\x00\x00\x54\xfe\xff\xff\x34\x00\x00\x00\x00\x41\x07\x1e\x10\x00\x00\x00\x2c\x00\x00\x00\x90\xfe\xff\xff\x30\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x40\x00\x00\x00\xac\xfe\xff\xff\x3c\x00\x00\x00\x00\x00\x00\x00\x20\x00\x00\x00\x54\x00\x00\x00\xd8\xfe\xff\xff\x48\x00\x00\x00\x00\x41\x0e\x20\x9d\x04\x9e\x03\x42\x93\x02\x4e\xde\xdd\xd3\x0e\x00\x00\x00\x00\x10\x00\x00\x00\x78\x00\x00\x00\x04\xff\xff\xff\x04\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x8c\x00\x00\x00\xf4\xfe\xff\xff\x24\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".fini_array", 0x10D98, "\x00\x07\x00\x00\x00\x00\x00\x00"), -Section(".dynamic", 0x10DA0, "\x01\x00\x00\x00\x00\x00\x00\x00\x28\x00\x00\x00\x00\x00\x00\x00\x0c\x00\x00\x00\x00\x00\x00\x00\x98\x05\x00\x00\x00\x00\x00\x00\x0d\x00\x00\x00\x00\x00\x00\x00\x78\x07\x00\x00\x00\x00\x00\x00\x19\x00\x00\x00\x00\x00\x00\x00\x90\x0d\x01\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x1a\x00\x00\x00\x00\x00\x00\x00\x98\x0d\x01\x00\x00\x00\x00\x00\x1c\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\xf5\xfe\xff\x6f\x00\x00\x00\x00\x98\x02\x00\x00\x00\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x90\x03\x00\x00\x00\x00\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\xb8\x02\x00\x00\x00\x00\x00\x00\x0a\x00\x00\x00\x00\x00\x00\x00\x8d\x00\x00\x00\x00\x00\x00\x00\x0b\x00\x00\x00\x00\x00\x00\x00\x18\x00\x00\x00\x00\x00\x00\x00\x15\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x90\x0f\x01\x00\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x60\x00\x00\x00\x00\x00\x00\x00\x14\x00\x00\x00\x00\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x17\x00\x00\x00\x00\x00\x00\x00\x38\x05\x00\x00\x00\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x60\x04\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\xd8\x00\x00\x00\x00\x00\x00\x00\x09\x00\x00\x00\x00\x00\x00\x00\x18\x00\x00\x00\x00\x00\x00\x00\x1e\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\xfb\xff\xff\x6f\x00\x00\x00\x00\x01\x00\x00\x08\x00\x00\x00\x00\xfe\xff\xff\x6f\x00\x00\x00\x00\x30\x04\x00\x00\x00\x00\x00\x00\xff\xff\xff\x6f\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\xf0\xff\xff\x6f\x00\x00\x00\x00\x1e\x04\x00\x00\x00\x00\x00\x00\xf9\xff\xff\x6f\x00\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".got", 0x10F90, "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xb0\x05\x00\x00\x00\x00\x00\x00\xb0\x05\x00\x00\x00\x00\x00\x00\xb0\x05\x00\x00\x00\x00\x00\x00\xb0\x05\x00\x00\x00\x00\x00\x00\xa0\x0d\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x14\x10\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x54\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".data", 0x11000, "\x00\x00\x00\x00\x00\x00\x00\x00\x08\x10\x01\x00\x00\x00\x00\x00"), -Section(".init_array", 0x10D90, "\x50\x07\x00\x00\x00\x00\x00\x00"), -Section(".text", 0x640, "\x1f\x20\x03\xd5\x1d\x00\x80\xd2\x1e\x00\x80\xd2\xe5\x03\x00\xaa\xe1\x03\x40\xf9\xe2\x23\x00\x91\xe6\x03\x00\x91\x80\x00\x00\x90\x00\xf8\x47\xf9\x03\x00\x80\xd2\x04\x00\x80\xd2\xd9\xff\xff\x97\xe4\xff\xff\x97\x80\x00\x00\x90\x00\xf4\x47\xf9\x40\x00\x00\xb4\xdc\xff\xff\x17\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x80\x00\x00\xb0\x00\x40\x00\x91\x81\x00\x00\xb0\x21\x40\x00\x91\x3f\x00\x00\xeb\xc0\x00\x00\x54\x81\x00\x00\x90\x21\xe8\x47\xf9\x61\x00\x00\xb4\xf0\x03\x01\xaa\x00\x02\x1f\xd6\xc0\x03\x5f\xd6\x80\x00\x00\xb0\x00\x40\x00\x91\x81\x00\x00\xb0\x21\x40\x00\x91\x21\x00\x00\xcb\x22\xfc\x7f\xd3\x41\x0c\x81\x8b\x21\xfc\x41\x93\xc1\x00\x00\xb4\x82\x00\x00\x90\x42\xfc\x47\xf9\x62\x00\x00\xb4\xf0\x03\x02\xaa\x00\x02\x1f\xd6\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\xfd\x7b\xbe\xa9\xfd\x03\x00\x91\xf3\x0b\x00\xf9\x93\x00\x00\xb0\x60\x42\x40\x39\x40\x01\x00\x35\x80\x00\x00\x90\x00\xec\x47\xf9\x80\x00\x00\xb4\x80\x00\x00\xb0\x00\x04\x40\xf9\xad\xff\xff\x97\xd8\xff\xff\x97\x20\x00\x80\x52\x60\x42\x00\x39\xf3\x0b\x40\xf9\xfd\x7b\xc2\xa8\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\xdc\xff\xff\x17\x80\x00\x00\x90\x00\xf0\x47\xf9\x00\x00\x40\xb9\x1f\x00\x00\x71\x60\x00\x00\x54\x00\x00\x80\x52\x02\x00\x00\x14\x20\x00\x80\x52\xc0\x03\x5f\xd6")]), -Memmap([Annotation(Region(0x0,0x86F), Attr("segment","02 0 2160")), -Annotation(Region(0x640,0x673), Attr("symbol","\"_start\"")), -Annotation(Region(0x0,0xF9), Attr("section","\".shstrtab\"")), -Annotation(Region(0x0,0x230), Attr("section","\".strtab\"")), -Annotation(Region(0x0,0x857), Attr("section","\".symtab\"")), -Annotation(Region(0x0,0x2A), Attr("section","\".comment\"")), -Annotation(Region(0x238,0x252), Attr("section","\".interp\"")), -Annotation(Region(0x254,0x277), Attr("section","\".note.gnu.build-id\"")), -Annotation(Region(0x278,0x297), Attr("section","\".note.ABI-tag\"")), -Annotation(Region(0x298,0x2B3), Attr("section","\".gnu.hash\"")), -Annotation(Region(0x2B8,0x38F), Attr("section","\".dynsym\"")), -Annotation(Region(0x390,0x41C), Attr("section","\".dynstr\"")), -Annotation(Region(0x41E,0x42F), Attr("section","\".gnu.version\"")), -Annotation(Region(0x430,0x45F), Attr("section","\".gnu.version_r\"")), -Annotation(Region(0x460,0x537), Attr("section","\".rela.dyn\"")), -Annotation(Region(0x538,0x597), Attr("section","\".rela.plt\"")), -Annotation(Region(0x598,0x5AF), Attr("section","\".init\"")), -Annotation(Region(0x5B0,0x60F), Attr("section","\".plt\"")), -Annotation(Region(0x598,0x5AF), Attr("code-region","()")), -Annotation(Region(0x5B0,0x60F), Attr("code-region","()")), -Annotation(Region(0x640,0x673), Attr("symbol-info","_start 0x640 52")), -Annotation(Region(0x674,0x687), Attr("symbol","\"call_weak_fn\"")), -Annotation(Region(0x674,0x687), Attr("symbol-info","call_weak_fn 0x674 20")), -Annotation(Region(0x754,0x777), Attr("symbol","\"main\"")), -Annotation(Region(0x754,0x777), Attr("symbol-info","main 0x754 36")), -Annotation(Region(0x778,0x78B), Attr("section","\".fini\"")), -Annotation(Region(0x78C,0x78F), Attr("section","\".rodata\"")), -Annotation(Region(0x790,0x7CB), Attr("section","\".eh_frame_hdr\"")), -Annotation(Region(0x7D0,0x86F), Attr("section","\".eh_frame\"")), -Annotation(Region(0x10D90,0x1100F), Attr("segment","03 0x10D90 656")), -Annotation(Region(0x10D98,0x10D9F), Attr("section","\".fini_array\"")), -Annotation(Region(0x10DA0,0x10F8F), Attr("section","\".dynamic\"")), -Annotation(Region(0x10F90,0x10FFF), Attr("section","\".got\"")), -Annotation(Region(0x11000,0x1100F), Attr("section","\".data\"")), -Annotation(Region(0x10D90,0x10D97), Attr("section","\".init_array\"")), -Annotation(Region(0x640,0x777), Attr("section","\".text\"")), -Annotation(Region(0x640,0x777), Attr("code-region","()")), -Annotation(Region(0x778,0x78B), Attr("code-region","()"))]), -Program(Tid(1_401, "%00000579"), Attrs([]), - Subs([Sub(Tid(1_347, "@__cxa_finalize"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x5E0"), -Attr("stub","()")]), "__cxa_finalize", Args([Arg(Tid(1_402, "%0000057a"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("__cxa_finalize_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(842, "@__cxa_finalize"), - Attrs([Attr("address","0x5E0")]), Phis([]), -Defs([Def(Tid(1_090, "%00000442"), Attrs([Attr("address","0x5E0"), -Attr("insn","adrp x16, #65536")]), Var("R16",Imm(64)), Int(65536,64)), -Def(Tid(1_097, "%00000449"), Attrs([Attr("address","0x5E4"), -Attr("insn","ldr x17, [x16, #0xfb0]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(4016,64)),LittleEndian(),64)), -Def(Tid(1_103, "%0000044f"), Attrs([Attr("address","0x5E8"), -Attr("insn","add x16, x16, #0xfb0")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(4016,64)))]), Jmps([Call(Tid(1_108, "%00000454"), - Attrs([Attr("address","0x5EC"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), -Sub(Tid(1_348, "@__do_global_dtors_aux"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x700")]), - "__do_global_dtors_aux", Args([Arg(Tid(1_403, "%0000057b"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("__do_global_dtors_aux_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(626, "@__do_global_dtors_aux"), - Attrs([Attr("address","0x700")]), Phis([]), Defs([Def(Tid(630, "%00000276"), - Attrs([Attr("address","0x700"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("#3",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(18446744073709551584,64))), -Def(Tid(636, "%0000027c"), Attrs([Attr("address","0x700"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("#3",Imm(64)),Var("R29",Imm(64)),LittleEndian(),64)), -Def(Tid(642, "%00000282"), Attrs([Attr("address","0x700"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("#3",Imm(64)),Int(8,64)),Var("R30",Imm(64)),LittleEndian(),64)), -Def(Tid(646, "%00000286"), Attrs([Attr("address","0x700"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("R31",Imm(64)), -Var("#3",Imm(64))), Def(Tid(652, "%0000028c"), - Attrs([Attr("address","0x704"), Attr("insn","mov x29, sp")]), - Var("R29",Imm(64)), Var("R31",Imm(64))), Def(Tid(660, "%00000294"), - Attrs([Attr("address","0x708"), Attr("insn","str x19, [sp, #0x10]")]), - Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(16,64)),Var("R19",Imm(64)),LittleEndian(),64)), -Def(Tid(665, "%00000299"), Attrs([Attr("address","0x70C"), -Attr("insn","adrp x19, #69632")]), Var("R19",Imm(64)), Int(69632,64)), -Def(Tid(672, "%000002a0"), Attrs([Attr("address","0x710"), -Attr("insn","ldrb w0, [x19, #0x10]")]), Var("R0",Imm(64)), -UNSIGNED(64,Load(Var("mem",Mem(64,8)),PLUS(Var("R19",Imm(64)),Int(16,64)),LittleEndian(),8)))]), -Jmps([Goto(Tid(679, "%000002a7"), Attrs([Attr("address","0x714"), -Attr("insn","cbnz w0, #0x28")]), - NEQ(Extract(31,0,Var("R0",Imm(64))),Int(0,32)), -Direct(Tid(677, "%000002a5"))), Goto(Tid(1_389, "%0000056d"), Attrs([]), - Int(1,1), Direct(Tid(787, "%00000313")))])), Blk(Tid(787, "%00000313"), - Attrs([Attr("address","0x718")]), Phis([]), Defs([Def(Tid(790, "%00000316"), - Attrs([Attr("address","0x718"), Attr("insn","adrp x0, #65536")]), - Var("R0",Imm(64)), Int(65536,64)), Def(Tid(797, "%0000031d"), - Attrs([Attr("address","0x71C"), Attr("insn","ldr x0, [x0, #0xfd8]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(4056,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(803, "%00000323"), Attrs([Attr("address","0x720"), -Attr("insn","cbz x0, #0x10")]), EQ(Var("R0",Imm(64)),Int(0,64)), -Direct(Tid(801, "%00000321"))), Goto(Tid(1_390, "%0000056e"), Attrs([]), - Int(1,1), Direct(Tid(826, "%0000033a")))])), Blk(Tid(826, "%0000033a"), - Attrs([Attr("address","0x724")]), Phis([]), Defs([Def(Tid(829, "%0000033d"), - Attrs([Attr("address","0x724"), Attr("insn","adrp x0, #69632")]), - Var("R0",Imm(64)), Int(69632,64)), Def(Tid(836, "%00000344"), - Attrs([Attr("address","0x728"), Attr("insn","ldr x0, [x0, #0x8]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(841, "%00000349"), Attrs([Attr("address","0x72C"), -Attr("insn","bl #-0x14c")]), Var("R30",Imm(64)), Int(1840,64))]), -Jmps([Call(Tid(844, "%0000034c"), Attrs([Attr("address","0x72C"), -Attr("insn","bl #-0x14c")]), Int(1,1), -(Direct(Tid(1_347, "@__cxa_finalize")),Direct(Tid(801, "%00000321"))))])), -Blk(Tid(801, "%00000321"), Attrs([Attr("address","0x730")]), Phis([]), -Defs([Def(Tid(809, "%00000329"), Attrs([Attr("address","0x730"), -Attr("insn","bl #-0xa0")]), Var("R30",Imm(64)), Int(1844,64))]), -Jmps([Call(Tid(811, "%0000032b"), Attrs([Attr("address","0x730"), -Attr("insn","bl #-0xa0")]), Int(1,1), -(Direct(Tid(1_361, "@deregister_tm_clones")),Direct(Tid(813, "%0000032d"))))])), -Blk(Tid(813, "%0000032d"), Attrs([Attr("address","0x734")]), Phis([]), -Defs([Def(Tid(816, "%00000330"), Attrs([Attr("address","0x734"), -Attr("insn","mov w0, #0x1")]), Var("R0",Imm(64)), Int(1,64)), -Def(Tid(824, "%00000338"), Attrs([Attr("address","0x738"), -Attr("insn","strb w0, [x19, #0x10]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R19",Imm(64)),Int(16,64)),Extract(7,0,Var("R0",Imm(64))),LittleEndian(),8))]), -Jmps([Goto(Tid(1_391, "%0000056f"), Attrs([]), Int(1,1), -Direct(Tid(677, "%000002a5")))])), Blk(Tid(677, "%000002a5"), - Attrs([Attr("address","0x73C")]), Phis([]), Defs([Def(Tid(687, "%000002af"), - Attrs([Attr("address","0x73C"), Attr("insn","ldr x19, [sp, #0x10]")]), - Var("R19",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(16,64)),LittleEndian(),64)), -Def(Tid(694, "%000002b6"), Attrs([Attr("address","0x740"), -Attr("insn","ldp x29, x30, [sp], #0x20")]), Var("R29",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(699, "%000002bb"), Attrs([Attr("address","0x740"), -Attr("insn","ldp x29, x30, [sp], #0x20")]), Var("R30",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(703, "%000002bf"), Attrs([Attr("address","0x740"), -Attr("insn","ldp x29, x30, [sp], #0x20")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(32,64)))]), Jmps([Call(Tid(708, "%000002c4"), - Attrs([Attr("address","0x744"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), Sub(Tid(1_352, "@__libc_start_main"), - Attrs([Attr("c.proto","signed (*)(signed (*)(signed , char** , char** );* main, signed , char** , \nvoid* auxv)"), -Attr("address","0x5D0"), Attr("stub","()")]), "__libc_start_main", - Args([Arg(Tid(1_404, "%0000057c"), - Attrs([Attr("c.layout","**[ : 64]"), -Attr("c.data","Top:u64 ptr ptr"), -Attr("c.type","signed (*)(signed , char** , char** );*")]), - Var("__libc_start_main_main",Imm(64)), Var("R0",Imm(64)), In()), -Arg(Tid(1_405, "%0000057d"), Attrs([Attr("c.layout","[signed : 32]"), -Attr("c.data","Top:u32"), Attr("c.type","signed")]), - Var("__libc_start_main_arg2",Imm(32)), LOW(32,Var("R1",Imm(64))), In()), -Arg(Tid(1_406, "%0000057e"), Attrs([Attr("c.layout","**[char : 8]"), -Attr("c.data","Top:u8 ptr ptr"), Attr("c.type","char**")]), - Var("__libc_start_main_arg3",Imm(64)), Var("R2",Imm(64)), Both()), -Arg(Tid(1_407, "%0000057f"), Attrs([Attr("c.layout","*[ : 8]"), -Attr("c.data","{} ptr"), Attr("c.type","void*")]), - Var("__libc_start_main_auxv",Imm(64)), Var("R3",Imm(64)), Both()), -Arg(Tid(1_408, "%00000580"), Attrs([Attr("c.layout","[signed : 32]"), -Attr("c.data","Top:u32"), Attr("c.type","signed")]), - Var("__libc_start_main_result",Imm(32)), LOW(32,Var("R0",Imm(64))), -Out())]), Blks([Blk(Tid(459, "@__libc_start_main"), - Attrs([Attr("address","0x5D0")]), Phis([]), -Defs([Def(Tid(1_068, "%0000042c"), Attrs([Attr("address","0x5D0"), -Attr("insn","adrp x16, #65536")]), Var("R16",Imm(64)), Int(65536,64)), -Def(Tid(1_075, "%00000433"), Attrs([Attr("address","0x5D4"), -Attr("insn","ldr x17, [x16, #0xfa8]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(4008,64)),LittleEndian(),64)), -Def(Tid(1_081, "%00000439"), Attrs([Attr("address","0x5D8"), -Attr("insn","add x16, x16, #0xfa8")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(4008,64)))]), Jmps([Call(Tid(1_086, "%0000043e"), - Attrs([Attr("address","0x5DC"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), Sub(Tid(1_353, "@_fini"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x778")]), - "_fini", Args([Arg(Tid(1_409, "%00000581"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("_fini_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(31, "@_fini"), - Attrs([Attr("address","0x778")]), Phis([]), Defs([Def(Tid(37, "%00000025"), - Attrs([Attr("address","0x77C"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("#0",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(18446744073709551600,64))), -Def(Tid(43, "%0000002b"), Attrs([Attr("address","0x77C"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("#0",Imm(64)),Var("R29",Imm(64)),LittleEndian(),64)), -Def(Tid(49, "%00000031"), Attrs([Attr("address","0x77C"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("#0",Imm(64)),Int(8,64)),Var("R30",Imm(64)),LittleEndian(),64)), -Def(Tid(53, "%00000035"), Attrs([Attr("address","0x77C"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("R31",Imm(64)), -Var("#0",Imm(64))), Def(Tid(59, "%0000003b"), Attrs([Attr("address","0x780"), -Attr("insn","mov x29, sp")]), Var("R29",Imm(64)), Var("R31",Imm(64))), -Def(Tid(66, "%00000042"), Attrs([Attr("address","0x784"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R29",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(71, "%00000047"), Attrs([Attr("address","0x784"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R30",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(75, "%0000004b"), Attrs([Attr("address","0x784"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(16,64)))]), Jmps([Call(Tid(80, "%00000050"), - Attrs([Attr("address","0x788"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), Sub(Tid(1_354, "@_init"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x598")]), - "_init", Args([Arg(Tid(1_410, "%00000582"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("_init_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(1_180, "@_init"), - Attrs([Attr("address","0x598")]), Phis([]), -Defs([Def(Tid(1_186, "%000004a2"), Attrs([Attr("address","0x59C"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("#6",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(18446744073709551600,64))), -Def(Tid(1_192, "%000004a8"), Attrs([Attr("address","0x59C"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("#6",Imm(64)),Var("R29",Imm(64)),LittleEndian(),64)), -Def(Tid(1_198, "%000004ae"), Attrs([Attr("address","0x59C"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("#6",Imm(64)),Int(8,64)),Var("R30",Imm(64)),LittleEndian(),64)), -Def(Tid(1_202, "%000004b2"), Attrs([Attr("address","0x59C"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("R31",Imm(64)), -Var("#6",Imm(64))), Def(Tid(1_208, "%000004b8"), - Attrs([Attr("address","0x5A0"), Attr("insn","mov x29, sp")]), - Var("R29",Imm(64)), Var("R31",Imm(64))), Def(Tid(1_213, "%000004bd"), - Attrs([Attr("address","0x5A4"), Attr("insn","bl #0xd0")]), - Var("R30",Imm(64)), Int(1448,64))]), Jmps([Call(Tid(1_215, "%000004bf"), - Attrs([Attr("address","0x5A4"), Attr("insn","bl #0xd0")]), Int(1,1), -(Direct(Tid(1_359, "@call_weak_fn")),Direct(Tid(1_217, "%000004c1"))))])), -Blk(Tid(1_217, "%000004c1"), Attrs([Attr("address","0x5A8")]), Phis([]), -Defs([Def(Tid(1_222, "%000004c6"), Attrs([Attr("address","0x5A8"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R29",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(1_227, "%000004cb"), Attrs([Attr("address","0x5A8"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R30",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(1_231, "%000004cf"), Attrs([Attr("address","0x5A8"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(16,64)))]), Jmps([Call(Tid(1_236, "%000004d4"), - Attrs([Attr("address","0x5AC"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), Sub(Tid(1_355, "@_start"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x640"), -Attr("entry-point","()")]), "_start", Args([Arg(Tid(1_411, "%00000583"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("_start_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(396, "@_start"), - Attrs([Attr("address","0x640")]), Phis([]), Defs([Def(Tid(401, "%00000191"), - Attrs([Attr("address","0x644"), Attr("insn","mov x29, #0x0")]), - Var("R29",Imm(64)), Int(0,64)), Def(Tid(406, "%00000196"), - Attrs([Attr("address","0x648"), Attr("insn","mov x30, #0x0")]), - Var("R30",Imm(64)), Int(0,64)), Def(Tid(412, "%0000019c"), - Attrs([Attr("address","0x64C"), Attr("insn","mov x5, x0")]), - Var("R5",Imm(64)), Var("R0",Imm(64))), Def(Tid(419, "%000001a3"), - Attrs([Attr("address","0x650"), Attr("insn","ldr x1, [sp]")]), - Var("R1",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(425, "%000001a9"), Attrs([Attr("address","0x654"), -Attr("insn","add x2, sp, #0x8")]), Var("R2",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(8,64))), Def(Tid(431, "%000001af"), - Attrs([Attr("address","0x658"), Attr("insn","mov x6, sp")]), - Var("R6",Imm(64)), Var("R31",Imm(64))), Def(Tid(436, "%000001b4"), - Attrs([Attr("address","0x65C"), Attr("insn","adrp x0, #65536")]), - Var("R0",Imm(64)), Int(65536,64)), Def(Tid(443, "%000001bb"), - Attrs([Attr("address","0x660"), Attr("insn","ldr x0, [x0, #0xff0]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(4080,64)),LittleEndian(),64)), -Def(Tid(448, "%000001c0"), Attrs([Attr("address","0x664"), -Attr("insn","mov x3, #0x0")]), Var("R3",Imm(64)), Int(0,64)), -Def(Tid(453, "%000001c5"), Attrs([Attr("address","0x668"), -Attr("insn","mov x4, #0x0")]), Var("R4",Imm(64)), Int(0,64)), -Def(Tid(458, "%000001ca"), Attrs([Attr("address","0x66C"), -Attr("insn","bl #-0x9c")]), Var("R30",Imm(64)), Int(1648,64))]), -Jmps([Call(Tid(461, "%000001cd"), Attrs([Attr("address","0x66C"), -Attr("insn","bl #-0x9c")]), Int(1,1), -(Direct(Tid(1_352, "@__libc_start_main")),Direct(Tid(463, "%000001cf"))))])), -Blk(Tid(463, "%000001cf"), Attrs([Attr("address","0x670")]), Phis([]), -Defs([Def(Tid(466, "%000001d2"), Attrs([Attr("address","0x670"), -Attr("insn","bl #-0x70")]), Var("R30",Imm(64)), Int(1652,64))]), -Jmps([Call(Tid(469, "%000001d5"), Attrs([Attr("address","0x670"), -Attr("insn","bl #-0x70")]), Int(1,1), -(Direct(Tid(1_358, "@abort")),Direct(Tid(1_392, "%00000570"))))])), -Blk(Tid(1_392, "%00000570"), Attrs([]), Phis([]), Defs([]), -Jmps([Call(Tid(1_393, "%00000571"), Attrs([]), Int(1,1), -(Direct(Tid(1_359, "@call_weak_fn")),))]))])), Sub(Tid(1_358, "@abort"), - Attrs([Attr("noreturn","()"), Attr("c.proto","void (*)(void)"), -Attr("address","0x600"), Attr("stub","()")]), "abort", Args([]), -Blks([Blk(Tid(467, "@abort"), Attrs([Attr("address","0x600")]), Phis([]), -Defs([Def(Tid(1_134, "%0000046e"), Attrs([Attr("address","0x600"), -Attr("insn","adrp x16, #65536")]), Var("R16",Imm(64)), Int(65536,64)), -Def(Tid(1_141, "%00000475"), Attrs([Attr("address","0x604"), -Attr("insn","ldr x17, [x16, #0xfc0]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(4032,64)),LittleEndian(),64)), -Def(Tid(1_147, "%0000047b"), Attrs([Attr("address","0x608"), -Attr("insn","add x16, x16, #0xfc0")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(4032,64)))]), Jmps([Call(Tid(1_152, "%00000480"), - Attrs([Attr("address","0x60C"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), Sub(Tid(1_359, "@call_weak_fn"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x674")]), - "call_weak_fn", Args([Arg(Tid(1_412, "%00000584"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("call_weak_fn_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(471, "@call_weak_fn"), - Attrs([Attr("address","0x674")]), Phis([]), Defs([Def(Tid(474, "%000001da"), - Attrs([Attr("address","0x674"), Attr("insn","adrp x0, #65536")]), - Var("R0",Imm(64)), Int(65536,64)), Def(Tid(481, "%000001e1"), - Attrs([Attr("address","0x678"), Attr("insn","ldr x0, [x0, #0xfe8]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(4072,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(487, "%000001e7"), Attrs([Attr("address","0x67C"), -Attr("insn","cbz x0, #0x8")]), EQ(Var("R0",Imm(64)),Int(0,64)), -Direct(Tid(485, "%000001e5"))), Goto(Tid(1_394, "%00000572"), Attrs([]), - Int(1,1), Direct(Tid(906, "%0000038a")))])), Blk(Tid(485, "%000001e5"), - Attrs([Attr("address","0x684")]), Phis([]), Defs([]), -Jmps([Call(Tid(493, "%000001ed"), Attrs([Attr("address","0x684"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))])), -Blk(Tid(906, "%0000038a"), Attrs([Attr("address","0x680")]), Phis([]), -Defs([]), Jmps([Goto(Tid(909, "%0000038d"), Attrs([Attr("address","0x680"), -Attr("insn","b #-0x90")]), Int(1,1), Direct(Tid(907, "@__gmon_start__")))])), -Blk(Tid(907, "@__gmon_start__"), Attrs([Attr("address","0x5F0")]), Phis([]), -Defs([Def(Tid(1_112, "%00000458"), Attrs([Attr("address","0x5F0"), -Attr("insn","adrp x16, #65536")]), Var("R16",Imm(64)), Int(65536,64)), -Def(Tid(1_119, "%0000045f"), Attrs([Attr("address","0x5F4"), -Attr("insn","ldr x17, [x16, #0xfb8]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(4024,64)),LittleEndian(),64)), -Def(Tid(1_125, "%00000465"), Attrs([Attr("address","0x5F8"), -Attr("insn","add x16, x16, #0xfb8")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(4024,64)))]), Jmps([Call(Tid(1_130, "%0000046a"), - Attrs([Attr("address","0x5FC"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), -Sub(Tid(1_361, "@deregister_tm_clones"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x690")]), - "deregister_tm_clones", Args([Arg(Tid(1_413, "%00000585"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("deregister_tm_clones_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(499, "@deregister_tm_clones"), - Attrs([Attr("address","0x690")]), Phis([]), Defs([Def(Tid(502, "%000001f6"), - Attrs([Attr("address","0x690"), Attr("insn","adrp x0, #69632")]), - Var("R0",Imm(64)), Int(69632,64)), Def(Tid(508, "%000001fc"), - Attrs([Attr("address","0x694"), Attr("insn","add x0, x0, #0x10")]), - Var("R0",Imm(64)), PLUS(Var("R0",Imm(64)),Int(16,64))), -Def(Tid(513, "%00000201"), Attrs([Attr("address","0x698"), -Attr("insn","adrp x1, #69632")]), Var("R1",Imm(64)), Int(69632,64)), -Def(Tid(519, "%00000207"), Attrs([Attr("address","0x69C"), -Attr("insn","add x1, x1, #0x10")]), Var("R1",Imm(64)), -PLUS(Var("R1",Imm(64)),Int(16,64))), Def(Tid(525, "%0000020d"), - Attrs([Attr("address","0x6A0"), Attr("insn","cmp x1, x0")]), - Var("#1",Imm(64)), NOT(Var("R0",Imm(64)))), Def(Tid(530, "%00000212"), - Attrs([Attr("address","0x6A0"), Attr("insn","cmp x1, x0")]), - Var("#2",Imm(64)), PLUS(Var("R1",Imm(64)),NOT(Var("R0",Imm(64))))), -Def(Tid(536, "%00000218"), Attrs([Attr("address","0x6A0"), -Attr("insn","cmp x1, x0")]), Var("VF",Imm(1)), -NEQ(SIGNED(65,PLUS(Var("#2",Imm(64)),Int(1,64))),PLUS(PLUS(SIGNED(65,Var("R1",Imm(64))),SIGNED(65,Var("#1",Imm(64)))),Int(1,65)))), -Def(Tid(542, "%0000021e"), Attrs([Attr("address","0x6A0"), -Attr("insn","cmp x1, x0")]), Var("CF",Imm(1)), -NEQ(UNSIGNED(65,PLUS(Var("#2",Imm(64)),Int(1,64))),PLUS(PLUS(UNSIGNED(65,Var("R1",Imm(64))),UNSIGNED(65,Var("#1",Imm(64)))),Int(1,65)))), -Def(Tid(546, "%00000222"), Attrs([Attr("address","0x6A0"), -Attr("insn","cmp x1, x0")]), Var("ZF",Imm(1)), -EQ(PLUS(Var("#2",Imm(64)),Int(1,64)),Int(0,64))), Def(Tid(550, "%00000226"), - Attrs([Attr("address","0x6A0"), Attr("insn","cmp x1, x0")]), - Var("NF",Imm(1)), Extract(63,63,PLUS(Var("#2",Imm(64)),Int(1,64))))]), -Jmps([Goto(Tid(556, "%0000022c"), Attrs([Attr("address","0x6A4"), -Attr("insn","b.eq #0x18")]), EQ(Var("ZF",Imm(1)),Int(1,1)), -Direct(Tid(554, "%0000022a"))), Goto(Tid(1_395, "%00000573"), Attrs([]), - Int(1,1), Direct(Tid(876, "%0000036c")))])), Blk(Tid(876, "%0000036c"), - Attrs([Attr("address","0x6A8")]), Phis([]), Defs([Def(Tid(879, "%0000036f"), - Attrs([Attr("address","0x6A8"), Attr("insn","adrp x1, #65536")]), - Var("R1",Imm(64)), Int(65536,64)), Def(Tid(886, "%00000376"), - Attrs([Attr("address","0x6AC"), Attr("insn","ldr x1, [x1, #0xfd0]")]), - Var("R1",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R1",Imm(64)),Int(4048,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(891, "%0000037b"), Attrs([Attr("address","0x6B0"), -Attr("insn","cbz x1, #0xc")]), EQ(Var("R1",Imm(64)),Int(0,64)), -Direct(Tid(554, "%0000022a"))), Goto(Tid(1_396, "%00000574"), Attrs([]), - Int(1,1), Direct(Tid(895, "%0000037f")))])), Blk(Tid(554, "%0000022a"), - Attrs([Attr("address","0x6BC")]), Phis([]), Defs([]), -Jmps([Call(Tid(562, "%00000232"), Attrs([Attr("address","0x6BC"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))])), -Blk(Tid(895, "%0000037f"), Attrs([Attr("address","0x6B4")]), Phis([]), -Defs([Def(Tid(899, "%00000383"), Attrs([Attr("address","0x6B4"), -Attr("insn","mov x16, x1")]), Var("R16",Imm(64)), Var("R1",Imm(64)))]), -Jmps([Call(Tid(904, "%00000388"), Attrs([Attr("address","0x6B8"), -Attr("insn","br x16")]), Int(1,1), (Indirect(Var("R16",Imm(64))),))]))])), -Sub(Tid(1_364, "@frame_dummy"), Attrs([Attr("c.proto","signed (*)(void)"), -Attr("address","0x750")]), "frame_dummy", Args([Arg(Tid(1_414, "%00000586"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("frame_dummy_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(714, "@frame_dummy"), - Attrs([Attr("address","0x750")]), Phis([]), Defs([]), -Jmps([Call(Tid(716, "%000002cc"), Attrs([Attr("address","0x750"), -Attr("insn","b #-0x90")]), Int(1,1), -(Direct(Tid(1_368, "@register_tm_clones")),))]))])), Sub(Tid(1_365, "@main"), - Attrs([Attr("c.proto","signed (*)(signed argc, const char** argv)"), -Attr("address","0x754")]), "main", Args([Arg(Tid(1_415, "%00000587"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("main_argc",Imm(32)), -LOW(32,Var("R0",Imm(64))), In()), Arg(Tid(1_416, "%00000588"), - Attrs([Attr("c.layout","**[char : 8]"), Attr("c.data","Top:u8 ptr ptr"), -Attr("c.type"," const char**")]), Var("main_argv",Imm(64)), -Var("R1",Imm(64)), Both()), Arg(Tid(1_417, "%00000589"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("main_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(718, "@main"), - Attrs([Attr("address","0x754")]), Phis([]), Defs([Def(Tid(721, "%000002d1"), - Attrs([Attr("address","0x754"), Attr("insn","adrp x0, #65536")]), - Var("R0",Imm(64)), Int(65536,64)), Def(Tid(728, "%000002d8"), - Attrs([Attr("address","0x758"), Attr("insn","ldr x0, [x0, #0xfe0]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(4064,64)),LittleEndian(),64)), -Def(Tid(735, "%000002df"), Attrs([Attr("address","0x75C"), -Attr("insn","ldr w0, [x0]")]), Var("R0",Imm(64)), -UNSIGNED(64,Load(Var("mem",Mem(64,8)),Var("R0",Imm(64)),LittleEndian(),32))), -Def(Tid(741, "%000002e5"), Attrs([Attr("address","0x760"), -Attr("insn","cmp w0, #0x0")]), Var("#4",Imm(32)), -PLUS(Extract(31,0,Var("R0",Imm(64))),Int(4294967295,32))), -Def(Tid(746, "%000002ea"), Attrs([Attr("address","0x760"), -Attr("insn","cmp w0, #0x0")]), Var("VF",Imm(1)), -NEQ(SIGNED(33,PLUS(Var("#4",Imm(32)),Int(1,32))),PLUS(SIGNED(33,Extract(31,0,Var("R0",Imm(64)))),Int(0,33)))), -Def(Tid(751, "%000002ef"), Attrs([Attr("address","0x760"), -Attr("insn","cmp w0, #0x0")]), Var("CF",Imm(1)), -NEQ(UNSIGNED(33,PLUS(Var("#4",Imm(32)),Int(1,32))),PLUS(UNSIGNED(33,Extract(31,0,Var("R0",Imm(64)))),Int(4294967296,33)))), -Def(Tid(755, "%000002f3"), Attrs([Attr("address","0x760"), -Attr("insn","cmp w0, #0x0")]), Var("ZF",Imm(1)), -EQ(PLUS(Var("#4",Imm(32)),Int(1,32)),Int(0,32))), Def(Tid(759, "%000002f7"), - Attrs([Attr("address","0x760"), Attr("insn","cmp w0, #0x0")]), - Var("NF",Imm(1)), Extract(31,31,PLUS(Var("#4",Imm(32)),Int(1,32))))]), -Jmps([Goto(Tid(765, "%000002fd"), Attrs([Attr("address","0x764"), -Attr("insn","b.eq #0xc")]), EQ(Var("ZF",Imm(1)),Int(1,1)), -Direct(Tid(763, "%000002fb"))), Goto(Tid(1_397, "%00000575"), Attrs([]), - Int(1,1), Direct(Tid(778, "%0000030a")))])), Blk(Tid(763, "%000002fb"), - Attrs([Attr("address","0x770")]), Phis([]), Defs([Def(Tid(771, "%00000303"), - Attrs([Attr("address","0x770"), Attr("insn","mov w0, #0x1")]), - Var("R0",Imm(64)), Int(1,64))]), Jmps([Goto(Tid(1_398, "%00000576"), - Attrs([]), Int(1,1), Direct(Tid(773, "%00000305")))])), -Blk(Tid(778, "%0000030a"), Attrs([Attr("address","0x768")]), Phis([]), -Defs([Def(Tid(781, "%0000030d"), Attrs([Attr("address","0x768"), -Attr("insn","mov w0, #0x0")]), Var("R0",Imm(64)), Int(0,64))]), -Jmps([Goto(Tid(785, "%00000311"), Attrs([Attr("address","0x76C"), -Attr("insn","b #0x8")]), Int(1,1), Direct(Tid(773, "%00000305")))])), -Blk(Tid(773, "%00000305"), Attrs([Attr("address","0x774")]), Phis([]), -Defs([]), Jmps([Call(Tid(776, "%00000308"), Attrs([Attr("address","0x774"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))]))])), -Sub(Tid(1_368, "@register_tm_clones"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x6C0")]), - "register_tm_clones", Args([Arg(Tid(1_418, "%0000058a"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("register_tm_clones_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(564, "@register_tm_clones"), Attrs([Attr("address","0x6C0")]), - Phis([]), Defs([Def(Tid(567, "%00000237"), Attrs([Attr("address","0x6C0"), -Attr("insn","adrp x0, #69632")]), Var("R0",Imm(64)), Int(69632,64)), -Def(Tid(573, "%0000023d"), Attrs([Attr("address","0x6C4"), -Attr("insn","add x0, x0, #0x10")]), Var("R0",Imm(64)), -PLUS(Var("R0",Imm(64)),Int(16,64))), Def(Tid(578, "%00000242"), - Attrs([Attr("address","0x6C8"), Attr("insn","adrp x1, #69632")]), - Var("R1",Imm(64)), Int(69632,64)), Def(Tid(584, "%00000248"), - Attrs([Attr("address","0x6CC"), Attr("insn","add x1, x1, #0x10")]), - Var("R1",Imm(64)), PLUS(Var("R1",Imm(64)),Int(16,64))), -Def(Tid(591, "%0000024f"), Attrs([Attr("address","0x6D0"), -Attr("insn","sub x1, x1, x0")]), Var("R1",Imm(64)), -PLUS(PLUS(Var("R1",Imm(64)),NOT(Var("R0",Imm(64)))),Int(1,64))), -Def(Tid(597, "%00000255"), Attrs([Attr("address","0x6D4"), -Attr("insn","lsr x2, x1, #63")]), Var("R2",Imm(64)), -Concat(Int(0,63),Extract(63,63,Var("R1",Imm(64))))), -Def(Tid(604, "%0000025c"), Attrs([Attr("address","0x6D8"), -Attr("insn","add x1, x2, x1, asr #3")]), Var("R1",Imm(64)), -PLUS(Var("R2",Imm(64)),ARSHIFT(Var("R1",Imm(64)),Int(3,3)))), -Def(Tid(610, "%00000262"), Attrs([Attr("address","0x6DC"), -Attr("insn","asr x1, x1, #1")]), Var("R1",Imm(64)), -SIGNED(64,Extract(63,1,Var("R1",Imm(64)))))]), -Jmps([Goto(Tid(616, "%00000268"), Attrs([Attr("address","0x6E0"), -Attr("insn","cbz x1, #0x18")]), EQ(Var("R1",Imm(64)),Int(0,64)), -Direct(Tid(614, "%00000266"))), Goto(Tid(1_399, "%00000577"), Attrs([]), - Int(1,1), Direct(Tid(846, "%0000034e")))])), Blk(Tid(846, "%0000034e"), - Attrs([Attr("address","0x6E4")]), Phis([]), Defs([Def(Tid(849, "%00000351"), - Attrs([Attr("address","0x6E4"), Attr("insn","adrp x2, #65536")]), - Var("R2",Imm(64)), Int(65536,64)), Def(Tid(856, "%00000358"), - Attrs([Attr("address","0x6E8"), Attr("insn","ldr x2, [x2, #0xff8]")]), - Var("R2",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R2",Imm(64)),Int(4088,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(861, "%0000035d"), Attrs([Attr("address","0x6EC"), -Attr("insn","cbz x2, #0xc")]), EQ(Var("R2",Imm(64)),Int(0,64)), -Direct(Tid(614, "%00000266"))), Goto(Tid(1_400, "%00000578"), Attrs([]), - Int(1,1), Direct(Tid(865, "%00000361")))])), Blk(Tid(614, "%00000266"), - Attrs([Attr("address","0x6F8")]), Phis([]), Defs([]), -Jmps([Call(Tid(622, "%0000026e"), Attrs([Attr("address","0x6F8"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))])), -Blk(Tid(865, "%00000361"), Attrs([Attr("address","0x6F0")]), Phis([]), -Defs([Def(Tid(869, "%00000365"), Attrs([Attr("address","0x6F0"), -Attr("insn","mov x16, x2")]), Var("R16",Imm(64)), Var("R2",Imm(64)))]), -Jmps([Call(Tid(874, "%0000036a"), Attrs([Attr("address","0x6F4"), -Attr("insn","br x16")]), Int(1,1), -(Indirect(Var("R16",Imm(64))),))]))]))]))) \ No newline at end of file diff --git a/src/test/correct/using_gamma_conditional/gcc_pic/using_gamma_conditional.bir b/src/test/correct/using_gamma_conditional/gcc_pic/using_gamma_conditional.bir deleted file mode 100644 index 4e1ca4a30..000000000 --- a/src/test/correct/using_gamma_conditional/gcc_pic/using_gamma_conditional.bir +++ /dev/null @@ -1,243 +0,0 @@ -00000579: program -00000543: sub __cxa_finalize(__cxa_finalize_result) -0000057a: __cxa_finalize_result :: out u32 = low:32[R0] - -0000034a: -00000442: R16 := 0x10000 -00000449: R17 := mem[R16 + 0xFB0, el]:u64 -0000044f: R16 := R16 + 0xFB0 -00000454: call R17 with noreturn - -00000544: sub __do_global_dtors_aux(__do_global_dtors_aux_result) -0000057b: __do_global_dtors_aux_result :: out u32 = low:32[R0] - -00000272: -00000276: #3 := R31 - 0x20 -0000027c: mem := mem with [#3, el]:u64 <- R29 -00000282: mem := mem with [#3 + 8, el]:u64 <- R30 -00000286: R31 := #3 -0000028c: R29 := R31 -00000294: mem := mem with [R31 + 0x10, el]:u64 <- R19 -00000299: R19 := 0x11000 -000002a0: R0 := pad:64[mem[R19 + 0x10]] -000002a7: when 31:0[R0] <> 0 goto %000002a5 -0000056d: goto %00000313 - -00000313: -00000316: R0 := 0x10000 -0000031d: R0 := mem[R0 + 0xFD8, el]:u64 -00000323: when R0 = 0 goto %00000321 -0000056e: goto %0000033a - -0000033a: -0000033d: R0 := 0x11000 -00000344: R0 := mem[R0 + 8, el]:u64 -00000349: R30 := 0x730 -0000034c: call @__cxa_finalize with return %00000321 - -00000321: -00000329: R30 := 0x734 -0000032b: call @deregister_tm_clones with return %0000032d - -0000032d: -00000330: R0 := 1 -00000338: mem := mem with [R19 + 0x10] <- 7:0[R0] -0000056f: goto %000002a5 - -000002a5: -000002af: R19 := mem[R31 + 0x10, el]:u64 -000002b6: R29 := mem[R31, el]:u64 -000002bb: R30 := mem[R31 + 8, el]:u64 -000002bf: R31 := R31 + 0x20 -000002c4: call R30 with noreturn - -00000548: sub __libc_start_main(__libc_start_main_main, __libc_start_main_arg2, __libc_start_main_arg3, __libc_start_main_auxv, __libc_start_main_result) -0000057c: __libc_start_main_main :: in u64 = R0 -0000057d: __libc_start_main_arg2 :: in u32 = low:32[R1] -0000057e: __libc_start_main_arg3 :: in out u64 = R2 -0000057f: __libc_start_main_auxv :: in out u64 = R3 -00000580: __libc_start_main_result :: out u32 = low:32[R0] - -000001cb: -0000042c: R16 := 0x10000 -00000433: R17 := mem[R16 + 0xFA8, el]:u64 -00000439: R16 := R16 + 0xFA8 -0000043e: call R17 with noreturn - -00000549: sub _fini(_fini_result) -00000581: _fini_result :: out u32 = low:32[R0] - -0000001f: -00000025: #0 := R31 - 0x10 -0000002b: mem := mem with [#0, el]:u64 <- R29 -00000031: mem := mem with [#0 + 8, el]:u64 <- R30 -00000035: R31 := #0 -0000003b: R29 := R31 -00000042: R29 := mem[R31, el]:u64 -00000047: R30 := mem[R31 + 8, el]:u64 -0000004b: R31 := R31 + 0x10 -00000050: call R30 with noreturn - -0000054a: sub _init(_init_result) -00000582: _init_result :: out u32 = low:32[R0] - -0000049c: -000004a2: #6 := R31 - 0x10 -000004a8: mem := mem with [#6, el]:u64 <- R29 -000004ae: mem := mem with [#6 + 8, el]:u64 <- R30 -000004b2: R31 := #6 -000004b8: R29 := R31 -000004bd: R30 := 0x5A8 -000004bf: call @call_weak_fn with return %000004c1 - -000004c1: -000004c6: R29 := mem[R31, el]:u64 -000004cb: R30 := mem[R31 + 8, el]:u64 -000004cf: R31 := R31 + 0x10 -000004d4: call R30 with noreturn - -0000054b: sub _start(_start_result) -00000583: _start_result :: out u32 = low:32[R0] - -0000018c: -00000191: R29 := 0 -00000196: R30 := 0 -0000019c: R5 := R0 -000001a3: R1 := mem[R31, el]:u64 -000001a9: R2 := R31 + 8 -000001af: R6 := R31 -000001b4: R0 := 0x10000 -000001bb: R0 := mem[R0 + 0xFF0, el]:u64 -000001c0: R3 := 0 -000001c5: R4 := 0 -000001ca: R30 := 0x670 -000001cd: call @__libc_start_main with return %000001cf - -000001cf: -000001d2: R30 := 0x674 -000001d5: call @abort with return %00000570 - -00000570: -00000571: call @call_weak_fn with noreturn - -0000054e: sub abort() - - -000001d3: -0000046e: R16 := 0x10000 -00000475: R17 := mem[R16 + 0xFC0, el]:u64 -0000047b: R16 := R16 + 0xFC0 -00000480: call R17 with noreturn - -0000054f: sub call_weak_fn(call_weak_fn_result) -00000584: call_weak_fn_result :: out u32 = low:32[R0] - -000001d7: -000001da: R0 := 0x10000 -000001e1: R0 := mem[R0 + 0xFE8, el]:u64 -000001e7: when R0 = 0 goto %000001e5 -00000572: goto %0000038a - -000001e5: -000001ed: call R30 with noreturn - -0000038a: -0000038d: goto @__gmon_start__ - -0000038b: -00000458: R16 := 0x10000 -0000045f: R17 := mem[R16 + 0xFB8, el]:u64 -00000465: R16 := R16 + 0xFB8 -0000046a: call R17 with noreturn - -00000551: sub deregister_tm_clones(deregister_tm_clones_result) -00000585: deregister_tm_clones_result :: out u32 = low:32[R0] - -000001f3: -000001f6: R0 := 0x11000 -000001fc: R0 := R0 + 0x10 -00000201: R1 := 0x11000 -00000207: R1 := R1 + 0x10 -0000020d: #1 := ~R0 -00000212: #2 := R1 + ~R0 -00000218: VF := extend:65[#2 + 1] <> extend:65[R1] + extend:65[#1] + 1 -0000021e: CF := pad:65[#2 + 1] <> pad:65[R1] + pad:65[#1] + 1 -00000222: ZF := #2 + 1 = 0 -00000226: NF := 63:63[#2 + 1] -0000022c: when ZF goto %0000022a -00000573: goto %0000036c - -0000036c: -0000036f: R1 := 0x10000 -00000376: R1 := mem[R1 + 0xFD0, el]:u64 -0000037b: when R1 = 0 goto %0000022a -00000574: goto %0000037f - -0000022a: -00000232: call R30 with noreturn - -0000037f: -00000383: R16 := R1 -00000388: call R16 with noreturn - -00000554: sub frame_dummy(frame_dummy_result) -00000586: frame_dummy_result :: out u32 = low:32[R0] - -000002ca: -000002cc: call @register_tm_clones with noreturn - -00000555: sub main(main_argc, main_argv, main_result) -00000587: main_argc :: in u32 = low:32[R0] -00000588: main_argv :: in out u64 = R1 -00000589: main_result :: out u32 = low:32[R0] - -000002ce: -000002d1: R0 := 0x10000 -000002d8: R0 := mem[R0 + 0xFE0, el]:u64 -000002df: R0 := pad:64[mem[R0, el]:u32] -000002e5: #4 := 31:0[R0] - 1 -000002ea: VF := extend:33[#4 + 1] <> extend:33[31:0[R0]] + 0 -000002ef: CF := pad:33[#4 + 1] <> pad:33[31:0[R0]] - 0x100000000 -000002f3: ZF := #4 + 1 = 0 -000002f7: NF := 31:31[#4 + 1] -000002fd: when ZF goto %000002fb -00000575: goto %0000030a - -000002fb: -00000303: R0 := 1 -00000576: goto %00000305 - -0000030a: -0000030d: R0 := 0 -00000311: goto %00000305 - -00000305: -00000308: call R30 with noreturn - -00000558: sub register_tm_clones(register_tm_clones_result) -0000058a: register_tm_clones_result :: out u32 = low:32[R0] - -00000234: -00000237: R0 := 0x11000 -0000023d: R0 := R0 + 0x10 -00000242: R1 := 0x11000 -00000248: R1 := R1 + 0x10 -0000024f: R1 := R1 + ~R0 + 1 -00000255: R2 := 0.63:63[R1] -0000025c: R1 := R2 + (R1 ~>> 3) -00000262: R1 := extend:64[63:1[R1]] -00000268: when R1 = 0 goto %00000266 -00000577: goto %0000034e - -0000034e: -00000351: R2 := 0x10000 -00000358: R2 := mem[R2 + 0xFF8, el]:u64 -0000035d: when R2 = 0 goto %00000266 -00000578: goto %00000361 - -00000266: -0000026e: call R30 with noreturn - -00000361: -00000365: R16 := R2 -0000036a: call R16 with noreturn diff --git a/src/test/correct/using_gamma_conditional/gcc_pic/using_gamma_conditional.expected b/src/test/correct/using_gamma_conditional/gcc_pic/using_gamma_conditional.expected index 060dda241..5e4c7a019 100644 --- a/src/test/correct/using_gamma_conditional/gcc_pic/using_gamma_conditional.expected +++ b/src/test/correct/using_gamma_conditional/gcc_pic/using_gamma_conditional.expected @@ -80,7 +80,7 @@ implementation {:extern} guarantee_reflexive() assert ((memory_load32_le(mem, $x_addr) == memory_load32_le(mem, $x_addr)) && (memory_load32_le(mem, $z_addr) == memory_load32_le(mem, $z_addr))); } -procedure main_1876(); +procedure main(); modifies CF, Gamma_CF, Gamma_NF, Gamma_R0, Gamma_VF, Gamma_ZF, Gamma_mem, NF, R0, VF, ZF, mem; requires (gamma_load32(Gamma_mem, $x_addr) == true); free requires (memory_load64_le(mem, 69632bv64) == 0bv64); @@ -98,23 +98,23 @@ procedure main_1876(); free ensures (memory_load64_le(mem, 69616bv64) == 1876bv64); free ensures (memory_load64_le(mem, 69640bv64) == 69640bv64); -implementation main_1876() +implementation main() { var #4: bv32; + var $load$18: bv64; + var $load$19: bv32; var Gamma_#4: bool; - var Gamma_load18: bool; - var Gamma_load19: bool; - var load18: bv64; - var load19: bv32; + var Gamma_$load$18: bool; + var Gamma_$load$19: bool; lmain: assume {:captureState "lmain"} true; R0, Gamma_R0 := 65536bv64, true; call rely(); - load18, Gamma_load18 := memory_load64_le(mem, bvadd64(R0, 4064bv64)), (gamma_load64(Gamma_mem, bvadd64(R0, 4064bv64)) || L(mem, bvadd64(R0, 4064bv64))); - R0, Gamma_R0 := load18, Gamma_load18; + $load$18, Gamma_$load$18 := memory_load64_le(mem, bvadd64(R0, 4064bv64)), (gamma_load64(Gamma_mem, bvadd64(R0, 4064bv64)) || L(mem, bvadd64(R0, 4064bv64))); + R0, Gamma_R0 := $load$18, Gamma_$load$18; call rely(); - load19, Gamma_load19 := memory_load32_le(mem, R0), (gamma_load32(Gamma_mem, R0) || L(mem, R0)); - R0, Gamma_R0 := zero_extend32_32(load19), Gamma_load19; + $load$19, Gamma_$load$19 := memory_load32_le(mem, R0), (gamma_load32(Gamma_mem, R0) || L(mem, R0)); + R0, Gamma_R0 := zero_extend32_32($load$19), Gamma_$load$19; #4, Gamma_#4 := bvadd32(R0[32:0], 4294967295bv32), Gamma_R0; VF, Gamma_VF := bvnot1(bvcomp33(sign_extend1_32(bvadd32(#4, 1bv32)), bvadd33(sign_extend1_32(R0[32:0]), 0bv33))), (Gamma_R0 && Gamma_#4); CF, Gamma_CF := bvnot1(bvcomp33(zero_extend1_32(bvadd32(#4, 1bv32)), bvadd33(zero_extend1_32(R0[32:0]), 4294967296bv33))), (Gamma_R0 && Gamma_#4); @@ -122,27 +122,27 @@ implementation main_1876() NF, Gamma_NF := bvadd32(#4, 1bv32)[32:31], Gamma_#4; assert Gamma_ZF; goto lmain_goto_l000002fb, lmain_goto_l0000030a; - lmain_goto_l0000030a: - assume {:captureState "lmain_goto_l0000030a"} true; - assume (bvcomp1(ZF, 1bv1) == 0bv1); - R0, Gamma_R0 := 0bv64, true; - goto l0000030a; + l000002fb: + assume {:captureState "l000002fb"} true; + R0, Gamma_R0 := 1bv64, true; + goto l00000305; l0000030a: assume {:captureState "l0000030a"} true; + R0, Gamma_R0 := 0bv64, true; goto l00000305; + l00000305: + assume {:captureState "l00000305"} true; + goto main_basil_return; lmain_goto_l000002fb: assume {:captureState "lmain_goto_l000002fb"} true; assume (bvcomp1(ZF, 1bv1) != 0bv1); - R0, Gamma_R0 := 1bv64, true; goto l000002fb; - l000002fb: - assume {:captureState "l000002fb"} true; - goto l00000305; - l00000305: - assume {:captureState "l00000305"} true; - goto main_1876_basil_return; - main_1876_basil_return: - assume {:captureState "main_1876_basil_return"} true; + lmain_goto_l0000030a: + assume {:captureState "lmain_goto_l0000030a"} true; + assume (bvcomp1(ZF, 1bv1) == 0bv1); + goto l0000030a; + main_basil_return: + assume {:captureState "main_basil_return"} true; return; } diff --git a/src/test/correct/using_gamma_conditional/gcc_pic/using_gamma_conditional.gts b/src/test/correct/using_gamma_conditional/gcc_pic/using_gamma_conditional.gts deleted file mode 100644 index 8e8860e51..000000000 Binary files a/src/test/correct/using_gamma_conditional/gcc_pic/using_gamma_conditional.gts and /dev/null differ diff --git a/src/test/correct/using_gamma_conditional/gcc_pic/using_gamma_conditional.md5sum b/src/test/correct/using_gamma_conditional/gcc_pic/using_gamma_conditional.md5sum new file mode 100644 index 000000000..98b41b6ce --- /dev/null +++ b/src/test/correct/using_gamma_conditional/gcc_pic/using_gamma_conditional.md5sum @@ -0,0 +1,5 @@ +2612aa33c892c8c4906f95f786e9786f correct/using_gamma_conditional/gcc_pic/a.out +27b0eb0fc40c56aebe4dc374d0834f68 correct/using_gamma_conditional/gcc_pic/using_gamma_conditional.adt +f0c0994f8a30e4ff591de647acdc1de6 correct/using_gamma_conditional/gcc_pic/using_gamma_conditional.bir +f9833a0a656369c8148ec2a7ffe877b9 correct/using_gamma_conditional/gcc_pic/using_gamma_conditional.relf +a7efe363ebd397fd7da2efafa4acf9e8 correct/using_gamma_conditional/gcc_pic/using_gamma_conditional.gts diff --git a/src/test/correct/using_gamma_conditional/gcc_pic/using_gamma_conditional.relf b/src/test/correct/using_gamma_conditional/gcc_pic/using_gamma_conditional.relf deleted file mode 100644 index 0ec2f9ac8..000000000 --- a/src/test/correct/using_gamma_conditional/gcc_pic/using_gamma_conditional.relf +++ /dev/null @@ -1,123 +0,0 @@ - -Relocation section '.rela.dyn' at offset 0x460 contains 9 entries: - Offset Info Type Symbol's Value Symbol's Name + Addend -0000000000010d90 0000000000000403 R_AARCH64_RELATIVE 750 -0000000000010d98 0000000000000403 R_AARCH64_RELATIVE 700 -0000000000010fe0 0000000000000403 R_AARCH64_RELATIVE 11014 -0000000000010ff0 0000000000000403 R_AARCH64_RELATIVE 754 -0000000000011008 0000000000000403 R_AARCH64_RELATIVE 11008 -0000000000010fd0 0000000400000401 R_AARCH64_GLOB_DAT 0000000000000000 _ITM_deregisterTMCloneTable + 0 -0000000000010fd8 0000000500000401 R_AARCH64_GLOB_DAT 0000000000000000 __cxa_finalize@GLIBC_2.17 + 0 -0000000000010fe8 0000000600000401 R_AARCH64_GLOB_DAT 0000000000000000 __gmon_start__ + 0 -0000000000010ff8 0000000800000401 R_AARCH64_GLOB_DAT 0000000000000000 _ITM_registerTMCloneTable + 0 - -Relocation section '.rela.plt' at offset 0x538 contains 4 entries: - Offset Info Type Symbol's Value Symbol's Name + Addend -0000000000010fa8 0000000300000402 R_AARCH64_JUMP_SLOT 0000000000000000 __libc_start_main@GLIBC_2.34 + 0 -0000000000010fb0 0000000500000402 R_AARCH64_JUMP_SLOT 0000000000000000 __cxa_finalize@GLIBC_2.17 + 0 -0000000000010fb8 0000000600000402 R_AARCH64_JUMP_SLOT 0000000000000000 __gmon_start__ + 0 -0000000000010fc0 0000000700000402 R_AARCH64_JUMP_SLOT 0000000000000000 abort@GLIBC_2.17 + 0 - -Symbol table '.dynsym' contains 9 entries: - Num: Value Size Type Bind Vis Ndx Name - 0: 0000000000000000 0 NOTYPE LOCAL DEFAULT UND - 1: 0000000000000598 0 SECTION LOCAL DEFAULT 11 .init - 2: 0000000000011000 0 SECTION LOCAL DEFAULT 22 .data - 3: 0000000000000000 0 FUNC GLOBAL DEFAULT UND __libc_start_main@GLIBC_2.34 (2) - 4: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_deregisterTMCloneTable - 5: 0000000000000000 0 FUNC WEAK DEFAULT UND __cxa_finalize@GLIBC_2.17 (3) - 6: 0000000000000000 0 NOTYPE WEAK DEFAULT UND __gmon_start__ - 7: 0000000000000000 0 FUNC GLOBAL DEFAULT UND abort@GLIBC_2.17 (3) - 8: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_registerTMCloneTable - -Symbol table '.symtab' contains 89 entries: - Num: Value Size Type Bind Vis Ndx Name - 0: 0000000000000000 0 NOTYPE LOCAL DEFAULT UND - 1: 0000000000000238 0 SECTION LOCAL DEFAULT 1 .interp - 2: 0000000000000254 0 SECTION LOCAL DEFAULT 2 .note.gnu.build-id - 3: 0000000000000278 0 SECTION LOCAL DEFAULT 3 .note.ABI-tag - 4: 0000000000000298 0 SECTION LOCAL DEFAULT 4 .gnu.hash - 5: 00000000000002b8 0 SECTION LOCAL DEFAULT 5 .dynsym - 6: 0000000000000390 0 SECTION LOCAL DEFAULT 6 .dynstr - 7: 000000000000041e 0 SECTION LOCAL DEFAULT 7 .gnu.version - 8: 0000000000000430 0 SECTION LOCAL DEFAULT 8 .gnu.version_r - 9: 0000000000000460 0 SECTION LOCAL DEFAULT 9 .rela.dyn - 10: 0000000000000538 0 SECTION LOCAL DEFAULT 10 .rela.plt - 11: 0000000000000598 0 SECTION LOCAL DEFAULT 11 .init - 12: 00000000000005b0 0 SECTION LOCAL DEFAULT 12 .plt - 13: 0000000000000640 0 SECTION LOCAL DEFAULT 13 .text - 14: 0000000000000778 0 SECTION LOCAL DEFAULT 14 .fini - 15: 000000000000078c 0 SECTION LOCAL DEFAULT 15 .rodata - 16: 0000000000000790 0 SECTION LOCAL DEFAULT 16 .eh_frame_hdr - 17: 00000000000007d0 0 SECTION LOCAL DEFAULT 17 .eh_frame - 18: 0000000000010d90 0 SECTION LOCAL DEFAULT 18 .init_array - 19: 0000000000010d98 0 SECTION LOCAL DEFAULT 19 .fini_array - 20: 0000000000010da0 0 SECTION LOCAL DEFAULT 20 .dynamic - 21: 0000000000010f90 0 SECTION LOCAL DEFAULT 21 .got - 22: 0000000000011000 0 SECTION LOCAL DEFAULT 22 .data - 23: 0000000000011010 0 SECTION LOCAL DEFAULT 23 .bss - 24: 0000000000000000 0 SECTION LOCAL DEFAULT 24 .comment - 25: 0000000000000000 0 FILE LOCAL DEFAULT ABS Scrt1.o - 26: 0000000000000278 0 NOTYPE LOCAL DEFAULT 3 $d - 27: 0000000000000278 32 OBJECT LOCAL DEFAULT 3 __abi_tag - 28: 0000000000000640 0 NOTYPE LOCAL DEFAULT 13 $x - 29: 00000000000007e4 0 NOTYPE LOCAL DEFAULT 17 $d - 30: 000000000000078c 0 NOTYPE LOCAL DEFAULT 15 $d - 31: 0000000000000000 0 FILE LOCAL DEFAULT ABS crti.o - 32: 0000000000000674 0 NOTYPE LOCAL DEFAULT 13 $x - 33: 0000000000000674 20 FUNC LOCAL DEFAULT 13 call_weak_fn - 34: 0000000000000598 0 NOTYPE LOCAL DEFAULT 11 $x - 35: 0000000000000778 0 NOTYPE LOCAL DEFAULT 14 $x - 36: 0000000000000000 0 FILE LOCAL DEFAULT ABS crtn.o - 37: 00000000000005a8 0 NOTYPE LOCAL DEFAULT 11 $x - 38: 0000000000000784 0 NOTYPE LOCAL DEFAULT 14 $x - 39: 0000000000000000 0 FILE LOCAL DEFAULT ABS crtstuff.c - 40: 0000000000000690 0 NOTYPE LOCAL DEFAULT 13 $x - 41: 0000000000000690 0 FUNC LOCAL DEFAULT 13 deregister_tm_clones - 42: 00000000000006c0 0 FUNC LOCAL DEFAULT 13 register_tm_clones - 43: 0000000000011008 0 NOTYPE LOCAL DEFAULT 22 $d - 44: 0000000000000700 0 FUNC LOCAL DEFAULT 13 __do_global_dtors_aux - 45: 0000000000011010 1 OBJECT LOCAL DEFAULT 23 completed.0 - 46: 0000000000010d98 0 NOTYPE LOCAL DEFAULT 19 $d - 47: 0000000000010d98 0 OBJECT LOCAL DEFAULT 19 __do_global_dtors_aux_fini_array_entry - 48: 0000000000000750 0 FUNC LOCAL DEFAULT 13 frame_dummy - 49: 0000000000010d90 0 NOTYPE LOCAL DEFAULT 18 $d - 50: 0000000000010d90 0 OBJECT LOCAL DEFAULT 18 __frame_dummy_init_array_entry - 51: 00000000000007f8 0 NOTYPE LOCAL DEFAULT 17 $d - 52: 0000000000011010 0 NOTYPE LOCAL DEFAULT 23 $d - 53: 0000000000000000 0 FILE LOCAL DEFAULT ABS using_gamma_conditional.c - 54: 0000000000011014 0 NOTYPE LOCAL DEFAULT 23 $d - 55: 0000000000000754 0 NOTYPE LOCAL DEFAULT 13 $x - 56: 0000000000000858 0 NOTYPE LOCAL DEFAULT 17 $d - 57: 0000000000000000 0 FILE LOCAL DEFAULT ABS crtstuff.c - 58: 000000000000086c 0 NOTYPE LOCAL DEFAULT 17 $d - 59: 000000000000086c 0 OBJECT LOCAL DEFAULT 17 __FRAME_END__ - 60: 0000000000000000 0 FILE LOCAL DEFAULT ABS - 61: 0000000000010da0 0 OBJECT LOCAL DEFAULT ABS _DYNAMIC - 62: 0000000000000790 0 NOTYPE LOCAL DEFAULT 16 __GNU_EH_FRAME_HDR - 63: 0000000000010fc8 0 OBJECT LOCAL DEFAULT ABS _GLOBAL_OFFSET_TABLE_ - 64: 00000000000005b0 0 NOTYPE LOCAL DEFAULT 12 $x - 65: 0000000000000000 0 FUNC GLOBAL DEFAULT UND __libc_start_main@GLIBC_2.34 - 66: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_deregisterTMCloneTable - 67: 0000000000011000 0 NOTYPE WEAK DEFAULT 22 data_start - 68: 0000000000011010 0 NOTYPE GLOBAL DEFAULT 23 __bss_start__ - 69: 0000000000000000 0 FUNC WEAK DEFAULT UND __cxa_finalize@GLIBC_2.17 - 70: 0000000000011020 0 NOTYPE GLOBAL DEFAULT 23 _bss_end__ - 71: 0000000000011010 0 NOTYPE GLOBAL DEFAULT 22 _edata - 72: 0000000000011018 4 OBJECT GLOBAL DEFAULT 23 z - 73: 0000000000011014 4 OBJECT GLOBAL DEFAULT 23 x - 74: 0000000000000778 0 FUNC GLOBAL HIDDEN 14 _fini - 75: 0000000000011020 0 NOTYPE GLOBAL DEFAULT 23 __bss_end__ - 76: 0000000000011000 0 NOTYPE GLOBAL DEFAULT 22 __data_start - 77: 0000000000000000 0 NOTYPE WEAK DEFAULT UND __gmon_start__ - 78: 0000000000011008 0 OBJECT GLOBAL HIDDEN 22 __dso_handle - 79: 0000000000000000 0 FUNC GLOBAL DEFAULT UND abort@GLIBC_2.17 - 80: 000000000000078c 4 OBJECT GLOBAL DEFAULT 15 _IO_stdin_used - 81: 0000000000011020 0 NOTYPE GLOBAL DEFAULT 23 _end - 82: 0000000000000640 52 FUNC GLOBAL DEFAULT 13 _start - 83: 0000000000011020 0 NOTYPE GLOBAL DEFAULT 23 __end__ - 84: 0000000000011010 0 NOTYPE GLOBAL DEFAULT 23 __bss_start - 85: 0000000000000754 36 FUNC GLOBAL DEFAULT 13 main - 86: 0000000000011010 0 OBJECT GLOBAL HIDDEN 22 __TMC_END__ - 87: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_registerTMCloneTable - 88: 0000000000000598 0 FUNC GLOBAL HIDDEN 11 _init diff --git a/src/test/correct/using_gamma_conditional/gcc_pic/using_gamma_conditional_gtirb.expected b/src/test/correct/using_gamma_conditional/gcc_pic/using_gamma_conditional_gtirb.expected index c59af8d82..bdd1acfb9 100644 --- a/src/test/correct/using_gamma_conditional/gcc_pic/using_gamma_conditional_gtirb.expected +++ b/src/test/correct/using_gamma_conditional/gcc_pic/using_gamma_conditional_gtirb.expected @@ -78,7 +78,7 @@ implementation {:extern} guarantee_reflexive() assert ((memory_load32_le(mem, $x_addr) == memory_load32_le(mem, $x_addr)) && (memory_load32_le(mem, $z_addr) == memory_load32_le(mem, $z_addr))); } -procedure main_1876(); +procedure main(); modifies CF, Gamma_CF, Gamma_NF, Gamma_R0, Gamma_VF, Gamma_ZF, Gamma_mem, NF, R0, VF, ZF, mem; requires (gamma_load32(Gamma_mem, $x_addr) == true); free requires (memory_load64_le(mem, 69632bv64) == 0bv64); @@ -96,51 +96,51 @@ procedure main_1876(); free ensures (memory_load64_le(mem, 69616bv64) == 1876bv64); free ensures (memory_load64_le(mem, 69640bv64) == 69640bv64); -implementation main_1876() +implementation main() { - var Cse0__5_3_3: bv32; - var Gamma_Cse0__5_3_3: bool; - var Gamma_load10: bool; - var Gamma_load11: bool; - var load10: bv64; - var load11: bv32; - main_1876__0__0opbVr6FSKqk~SauZFq~bg: - assume {:captureState "main_1876__0__0opbVr6FSKqk~SauZFq~bg"} true; + var $load10: bv64; + var $load11: bv32; + var Cse0__5$3$3: bv32; + var Gamma_$load10: bool; + var Gamma_$load11: bool; + var Gamma_Cse0__5$3$3: bool; + $main$__0__$0opbVr6FSKqk~SauZFq~bg: + assume {:captureState "$main$__0__$0opbVr6FSKqk~SauZFq~bg"} true; R0, Gamma_R0 := 65536bv64, true; call rely(); - load10, Gamma_load10 := memory_load64_le(mem, bvadd64(R0, 4064bv64)), (gamma_load64(Gamma_mem, bvadd64(R0, 4064bv64)) || L(mem, bvadd64(R0, 4064bv64))); - R0, Gamma_R0 := load10, Gamma_load10; + $load10, Gamma_$load10 := memory_load64_le(mem, bvadd64(R0, 4064bv64)), (gamma_load64(Gamma_mem, bvadd64(R0, 4064bv64)) || L(mem, bvadd64(R0, 4064bv64))); + R0, Gamma_R0 := $load10, Gamma_$load10; call rely(); - load11, Gamma_load11 := memory_load32_le(mem, R0), (gamma_load32(Gamma_mem, R0) || L(mem, R0)); - R0, Gamma_R0 := zero_extend32_32(load11), Gamma_load11; - Cse0__5_3_3, Gamma_Cse0__5_3_3 := bvadd32(R0[32:0], 0bv32), Gamma_R0; - VF, Gamma_VF := bvnot1(bvcomp32(Cse0__5_3_3, Cse0__5_3_3)), Gamma_Cse0__5_3_3; - CF, Gamma_CF := bvnot1(bvcomp33(zero_extend1_32(Cse0__5_3_3), bvadd33(zero_extend1_32(R0[32:0]), 4294967296bv33))), (Gamma_R0 && Gamma_Cse0__5_3_3); - ZF, Gamma_ZF := bvcomp32(Cse0__5_3_3, 0bv32), Gamma_Cse0__5_3_3; - NF, Gamma_NF := Cse0__5_3_3[32:31], Gamma_Cse0__5_3_3; + $load11, Gamma_$load11 := memory_load32_le(mem, R0), (gamma_load32(Gamma_mem, R0) || L(mem, R0)); + R0, Gamma_R0 := zero_extend32_32($load11), Gamma_$load11; + Cse0__5$3$3, Gamma_Cse0__5$3$3 := bvadd32(R0[32:0], 0bv32), Gamma_R0; + VF, Gamma_VF := bvnot1(bvcomp32(Cse0__5$3$3, Cse0__5$3$3)), Gamma_Cse0__5$3$3; + CF, Gamma_CF := bvnot1(bvcomp33(zero_extend1_32(Cse0__5$3$3), bvadd33(zero_extend1_32(R0[32:0]), 4294967296bv33))), (Gamma_R0 && Gamma_Cse0__5$3$3); + ZF, Gamma_ZF := bvcomp32(Cse0__5$3$3, 0bv32), Gamma_Cse0__5$3$3; + NF, Gamma_NF := Cse0__5$3$3[32:31], Gamma_Cse0__5$3$3; assert Gamma_ZF; - goto main_1876__0__0opbVr6FSKqk~SauZFq~bg_goto_main_1876__2__PU15ptK8QmqsodwKTutr4A, main_1876__0__0opbVr6FSKqk~SauZFq~bg_goto_main_1876__1__MkdgQZmORkuq9AzG1tEbvg; - main_1876__0__0opbVr6FSKqk~SauZFq~bg_goto_main_1876__1__MkdgQZmORkuq9AzG1tEbvg: - assume {:captureState "main_1876__0__0opbVr6FSKqk~SauZFq~bg_goto_main_1876__1__MkdgQZmORkuq9AzG1tEbvg"} true; - assume (!(ZF == 1bv1)); + goto $main$__0__$0opbVr6FSKqk~SauZFq~bg_goto_$main$__2__$PU15ptK8QmqsodwKTutr4A, $main$__0__$0opbVr6FSKqk~SauZFq~bg_goto_$main$__1__$MkdgQZmORkuq9AzG1tEbvg; + $main$__1__$MkdgQZmORkuq9AzG1tEbvg: + assume {:captureState "$main$__1__$MkdgQZmORkuq9AzG1tEbvg"} true; R0, Gamma_R0 := 0bv64, true; - goto main_1876__1__MkdgQZmORkuq9AzG1tEbvg; - main_1876__1__MkdgQZmORkuq9AzG1tEbvg: - assume {:captureState "main_1876__1__MkdgQZmORkuq9AzG1tEbvg"} true; - goto main_1876__3__rmk1cd0ERD~sxbsj_Z3~5Q; - main_1876__0__0opbVr6FSKqk~SauZFq~bg_goto_main_1876__2__PU15ptK8QmqsodwKTutr4A: - assume {:captureState "main_1876__0__0opbVr6FSKqk~SauZFq~bg_goto_main_1876__2__PU15ptK8QmqsodwKTutr4A"} true; - assume (ZF == 1bv1); + goto $main$__3__$rmk1cd0ERD~sxbsj_Z3~5Q; + $main$__2__$PU15ptK8QmqsodwKTutr4A: + assume {:captureState "$main$__2__$PU15ptK8QmqsodwKTutr4A"} true; R0, Gamma_R0 := 1bv64, true; - goto main_1876__2__PU15ptK8QmqsodwKTutr4A; - main_1876__2__PU15ptK8QmqsodwKTutr4A: - assume {:captureState "main_1876__2__PU15ptK8QmqsodwKTutr4A"} true; - goto main_1876__3__rmk1cd0ERD~sxbsj_Z3~5Q; - main_1876__3__rmk1cd0ERD~sxbsj_Z3~5Q: - assume {:captureState "main_1876__3__rmk1cd0ERD~sxbsj_Z3~5Q"} true; - goto main_1876_basil_return; - main_1876_basil_return: - assume {:captureState "main_1876_basil_return"} true; + goto $main$__3__$rmk1cd0ERD~sxbsj_Z3~5Q; + $main$__3__$rmk1cd0ERD~sxbsj_Z3~5Q: + assume {:captureState "$main$__3__$rmk1cd0ERD~sxbsj_Z3~5Q"} true; + goto main_basil_return; + $main$__0__$0opbVr6FSKqk~SauZFq~bg_goto_$main$__2__$PU15ptK8QmqsodwKTutr4A: + assume {:captureState "$main$__0__$0opbVr6FSKqk~SauZFq~bg_goto_$main$__2__$PU15ptK8QmqsodwKTutr4A"} true; + assume (ZF == 1bv1); + goto $main$__2__$PU15ptK8QmqsodwKTutr4A; + $main$__0__$0opbVr6FSKqk~SauZFq~bg_goto_$main$__1__$MkdgQZmORkuq9AzG1tEbvg: + assume {:captureState "$main$__0__$0opbVr6FSKqk~SauZFq~bg_goto_$main$__1__$MkdgQZmORkuq9AzG1tEbvg"} true; + assume (!(ZF == 1bv1)); + goto $main$__1__$MkdgQZmORkuq9AzG1tEbvg; + main_basil_return: + assume {:captureState "main_basil_return"} true; return; } diff --git a/src/test/correct/using_gamma_write_z/clang/using_gamma_write_z.adt b/src/test/correct/using_gamma_write_z/clang/using_gamma_write_z.adt deleted file mode 100644 index 91f31fcf3..000000000 --- a/src/test/correct/using_gamma_write_z/clang/using_gamma_write_z.adt +++ /dev/null @@ -1,492 +0,0 @@ -Project(Attrs([Attr("filename","\"clang/using_gamma_write_z.out\""), -Attr("image-specification","(declare abi (name str))\n(declare arch (name str))\n(declare base-address (addr int))\n(declare bias (off int))\n(declare bits (size int))\n(declare code-region (addr int) (size int) (off int))\n(declare code-start (addr int))\n(declare entry-point (addr int))\n(declare external-reference (addr int) (name str))\n(declare format (name str))\n(declare is-executable (flag bool))\n(declare is-little-endian (flag bool))\n(declare llvm:base-address (addr int))\n(declare llvm:code-entry (name str) (off int) (size int))\n(declare llvm:coff-import-library (name str))\n(declare llvm:coff-virtual-section-header (name str) (addr int) (size int))\n(declare llvm:elf-program-header (name str) (off int) (size int))\n(declare llvm:elf-program-header-flags (name str) (ld bool) (r bool) \n (w bool) (x bool))\n(declare llvm:elf-virtual-program-header (name str) (addr int) (size int))\n(declare llvm:entry-point (addr int))\n(declare llvm:macho-symbol (name str) (value int))\n(declare llvm:name-reference (at int) (name str))\n(declare llvm:relocation (at int) (addr int))\n(declare llvm:section-entry (name str) (addr int) (size int) (off int))\n(declare llvm:section-flags (name str) (r bool) (w bool) (x bool))\n(declare llvm:segment-command (name str) (off int) (size int))\n(declare llvm:segment-command-flags (name str) (r bool) (w bool) (x bool))\n(declare llvm:symbol-entry (name str) (addr int) (size int) (off int)\n (value int))\n(declare llvm:virtual-segment-command (name str) (addr int) (size int))\n(declare mapped (addr int) (size int) (off int))\n(declare named-region (addr int) (size int) (name str))\n(declare named-symbol (addr int) (name str))\n(declare require (name str))\n(declare section (addr int) (size int))\n(declare segment (addr int) (size int) (r bool) (w bool) (x bool))\n(declare subarch (name str))\n(declare symbol-chunk (addr int) (size int) (root int))\n(declare symbol-value (addr int) (value int))\n(declare system (name str))\n(declare vendor (name str))\n\n(abi unknown)\n(arch aarch64)\n(base-address 0)\n(bias 0)\n(bits 64)\n(code-region 1832 20 1832)\n(code-region 1536 296 1536)\n(code-region 1440 96 1440)\n(code-region 1408 24 1408)\n(code-start 1588)\n(code-start 1536)\n(code-start 1812)\n(entry-point 1536)\n(external-reference 69568 _ITM_deregisterTMCloneTable)\n(external-reference 69576 __cxa_finalize)\n(external-reference 69584 __gmon_start__)\n(external-reference 69600 _ITM_registerTMCloneTable)\n(external-reference 69632 __libc_start_main)\n(external-reference 69640 __cxa_finalize)\n(external-reference 69648 __gmon_start__)\n(external-reference 69656 abort)\n(format elf)\n(is-executable true)\n(is-little-endian true)\n(llvm:base-address 0)\n(llvm:code-entry abort 0 0)\n(llvm:code-entry __cxa_finalize 0 0)\n(llvm:code-entry __libc_start_main 0 0)\n(llvm:code-entry _init 1408 0)\n(llvm:code-entry main 1812 20)\n(llvm:code-entry _start 1536 52)\n(llvm:code-entry abort@GLIBC_2.17 0 0)\n(llvm:code-entry _fini 1832 0)\n(llvm:code-entry __cxa_finalize@GLIBC_2.17 0 0)\n(llvm:code-entry __libc_start_main@GLIBC_2.34 0 0)\n(llvm:code-entry frame_dummy 1808 0)\n(llvm:code-entry __do_global_dtors_aux 1728 0)\n(llvm:code-entry register_tm_clones 1664 0)\n(llvm:code-entry deregister_tm_clones 1616 0)\n(llvm:code-entry call_weak_fn 1588 20)\n(llvm:code-entry .fini 1832 20)\n(llvm:code-entry .text 1536 296)\n(llvm:code-entry .plt 1440 96)\n(llvm:code-entry .init 1408 24)\n(llvm:elf-program-header 08 3528 568)\n(llvm:elf-program-header 07 0 0)\n(llvm:elf-program-header 06 1856 60)\n(llvm:elf-program-header 05 596 68)\n(llvm:elf-program-header 04 3544 480)\n(llvm:elf-program-header 03 3528 616)\n(llvm:elf-program-header 02 0 2100)\n(llvm:elf-program-header 01 568 27)\n(llvm:elf-program-header 00 64 504)\n(llvm:elf-program-header-flags 08 false true false false)\n(llvm:elf-program-header-flags 07 false true true false)\n(llvm:elf-program-header-flags 06 false true false false)\n(llvm:elf-program-header-flags 05 false true false false)\n(llvm:elf-program-header-flags 04 false true true false)\n(llvm:elf-program-header-flags 03 true true true false)\n(llvm:elf-program-header-flags 02 true true false true)\n(llvm:elf-program-header-flags 01 false true false false)\n(llvm:elf-program-header-flags 00 false true false false)\n(llvm:elf-virtual-program-header 08 69064 568)\n(llvm:elf-virtual-program-header 07 0 0)\n(llvm:elf-virtual-program-header 06 1856 60)\n(llvm:elf-virtual-program-header 05 596 68)\n(llvm:elf-virtual-program-header 04 69080 480)\n(llvm:elf-virtual-program-header 03 69064 632)\n(llvm:elf-virtual-program-header 02 0 2100)\n(llvm:elf-virtual-program-header 01 568 27)\n(llvm:elf-virtual-program-header 00 64 504)\n(llvm:entry-point 1536)\n(llvm:name-reference 69656 abort)\n(llvm:name-reference 69648 __gmon_start__)\n(llvm:name-reference 69640 __cxa_finalize)\n(llvm:name-reference 69632 __libc_start_main)\n(llvm:name-reference 69600 _ITM_registerTMCloneTable)\n(llvm:name-reference 69584 __gmon_start__)\n(llvm:name-reference 69576 __cxa_finalize)\n(llvm:name-reference 69568 _ITM_deregisterTMCloneTable)\n(llvm:section-entry .shstrtab 0 259 6977)\n(llvm:section-entry .strtab 0 577 6400)\n(llvm:section-entry .symtab 0 2184 4216)\n(llvm:section-entry .comment 0 71 4144)\n(llvm:section-entry .bss 69680 16 4144)\n(llvm:section-entry .data 69664 16 4128)\n(llvm:section-entry .got.plt 69608 56 4072)\n(llvm:section-entry .got 69560 48 4024)\n(llvm:section-entry .dynamic 69080 480 3544)\n(llvm:section-entry .fini_array 69072 8 3536)\n(llvm:section-entry .init_array 69064 8 3528)\n(llvm:section-entry .eh_frame 1920 180 1920)\n(llvm:section-entry .eh_frame_hdr 1856 60 1856)\n(llvm:section-entry .rodata 1852 4 1852)\n(llvm:section-entry .fini 1832 20 1832)\n(llvm:section-entry .text 1536 296 1536)\n(llvm:section-entry .plt 1440 96 1440)\n(llvm:section-entry .init 1408 24 1408)\n(llvm:section-entry .rela.plt 1312 96 1312)\n(llvm:section-entry .rela.dyn 1120 192 1120)\n(llvm:section-entry .gnu.version_r 1072 48 1072)\n(llvm:section-entry .gnu.version 1054 18 1054)\n(llvm:section-entry .dynstr 912 141 912)\n(llvm:section-entry .dynsym 696 216 696)\n(llvm:section-entry .gnu.hash 664 28 664)\n(llvm:section-entry .note.ABI-tag 632 32 632)\n(llvm:section-entry .note.gnu.build-id 596 36 596)\n(llvm:section-entry .interp 568 27 568)\n(llvm:section-flags .shstrtab true false false)\n(llvm:section-flags .strtab true false false)\n(llvm:section-flags .symtab true false false)\n(llvm:section-flags .comment true false false)\n(llvm:section-flags .bss true true false)\n(llvm:section-flags .data true true false)\n(llvm:section-flags .got.plt true true false)\n(llvm:section-flags .got true true false)\n(llvm:section-flags .dynamic true true false)\n(llvm:section-flags .fini_array true true false)\n(llvm:section-flags .init_array true true false)\n(llvm:section-flags .eh_frame true false false)\n(llvm:section-flags .eh_frame_hdr true false false)\n(llvm:section-flags .rodata true false false)\n(llvm:section-flags .fini true false true)\n(llvm:section-flags .text true false true)\n(llvm:section-flags .plt true false true)\n(llvm:section-flags .init true false true)\n(llvm:section-flags .rela.plt true false false)\n(llvm:section-flags .rela.dyn true false false)\n(llvm:section-flags .gnu.version_r true false false)\n(llvm:section-flags .gnu.version true false false)\n(llvm:section-flags .dynstr true false false)\n(llvm:section-flags .dynsym true false false)\n(llvm:section-flags .gnu.hash true false false)\n(llvm:section-flags .note.ABI-tag true false false)\n(llvm:section-flags .note.gnu.build-id true false false)\n(llvm:section-flags .interp true false false)\n(llvm:symbol-entry abort 0 0 0 0)\n(llvm:symbol-entry __cxa_finalize 0 0 0 0)\n(llvm:symbol-entry __libc_start_main 0 0 0 0)\n(llvm:symbol-entry _init 1408 0 1408 1408)\n(llvm:symbol-entry main 1812 20 1812 1812)\n(llvm:symbol-entry _start 1536 52 1536 1536)\n(llvm:symbol-entry abort@GLIBC_2.17 0 0 0 0)\n(llvm:symbol-entry _fini 1832 0 1832 1832)\n(llvm:symbol-entry __cxa_finalize@GLIBC_2.17 0 0 0 0)\n(llvm:symbol-entry __libc_start_main@GLIBC_2.34 0 0 0 0)\n(llvm:symbol-entry frame_dummy 1808 0 1808 1808)\n(llvm:symbol-entry __do_global_dtors_aux 1728 0 1728 1728)\n(llvm:symbol-entry register_tm_clones 1664 0 1664 1664)\n(llvm:symbol-entry deregister_tm_clones 1616 0 1616 1616)\n(llvm:symbol-entry call_weak_fn 1588 20 1588 1588)\n(mapped 0 2100 0)\n(mapped 69064 616 3528)\n(named-region 0 2100 02)\n(named-region 69064 632 03)\n(named-region 568 27 .interp)\n(named-region 596 36 .note.gnu.build-id)\n(named-region 632 32 .note.ABI-tag)\n(named-region 664 28 .gnu.hash)\n(named-region 696 216 .dynsym)\n(named-region 912 141 .dynstr)\n(named-region 1054 18 .gnu.version)\n(named-region 1072 48 .gnu.version_r)\n(named-region 1120 192 .rela.dyn)\n(named-region 1312 96 .rela.plt)\n(named-region 1408 24 .init)\n(named-region 1440 96 .plt)\n(named-region 1536 296 .text)\n(named-region 1832 20 .fini)\n(named-region 1852 4 .rodata)\n(named-region 1856 60 .eh_frame_hdr)\n(named-region 1920 180 .eh_frame)\n(named-region 69064 8 .init_array)\n(named-region 69072 8 .fini_array)\n(named-region 69080 480 .dynamic)\n(named-region 69560 48 .got)\n(named-region 69608 56 .got.plt)\n(named-region 69664 16 .data)\n(named-region 69680 16 .bss)\n(named-region 0 71 .comment)\n(named-region 0 2184 .symtab)\n(named-region 0 577 .strtab)\n(named-region 0 259 .shstrtab)\n(named-symbol 1588 call_weak_fn)\n(named-symbol 1616 deregister_tm_clones)\n(named-symbol 1664 register_tm_clones)\n(named-symbol 1728 __do_global_dtors_aux)\n(named-symbol 1808 frame_dummy)\n(named-symbol 0 __libc_start_main@GLIBC_2.34)\n(named-symbol 0 __cxa_finalize@GLIBC_2.17)\n(named-symbol 1832 _fini)\n(named-symbol 0 abort@GLIBC_2.17)\n(named-symbol 1536 _start)\n(named-symbol 1812 main)\n(named-symbol 1408 _init)\n(named-symbol 0 __libc_start_main)\n(named-symbol 0 __cxa_finalize)\n(named-symbol 0 abort)\n(require libc.so.6)\n(section 568 27)\n(section 596 36)\n(section 632 32)\n(section 664 28)\n(section 696 216)\n(section 912 141)\n(section 1054 18)\n(section 1072 48)\n(section 1120 192)\n(section 1312 96)\n(section 1408 24)\n(section 1440 96)\n(section 1536 296)\n(section 1832 20)\n(section 1852 4)\n(section 1856 60)\n(section 1920 180)\n(section 69064 8)\n(section 69072 8)\n(section 69080 480)\n(section 69560 48)\n(section 69608 56)\n(section 69664 16)\n(section 69680 16)\n(section 0 71)\n(section 0 2184)\n(section 0 577)\n(section 0 259)\n(segment 0 2100 true false true)\n(segment 69064 632 true true false)\n(subarch v8)\n(symbol-chunk 1588 20 1588)\n(symbol-chunk 1536 52 1536)\n(symbol-chunk 1812 20 1812)\n(symbol-value 1588 1588)\n(symbol-value 1616 1616)\n(symbol-value 1664 1664)\n(symbol-value 1728 1728)\n(symbol-value 1808 1808)\n(symbol-value 1832 1832)\n(symbol-value 1536 1536)\n(symbol-value 1812 1812)\n(symbol-value 1408 1408)\n(symbol-value 0 0)\n(system \"\")\n(vendor \"\")\n"), -Attr("abi-name","\"aarch64-linux-gnu-elf\"")]), -Sections([Section(".shstrtab", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x00\x06\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x48\x1c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x38\x00\x09\x00\x40\x00\x1d\x00\x1c\x00\x06\x00\x00\x00\x04\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x04\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x34\x08\x00\x00\x00\x00\x00\x00\x34\x08\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x01\x00\x00\x00\x06\x00\x00\x00\xc8\x0d\x00\x00\x00\x00\x00\x00\xc8\x0d\x01\x00\x00\x00\x00\x00\xc8\x0d\x01"), -Section(".strtab", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x00\x06\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x48\x1c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x38\x00\x09\x00\x40\x00\x1d\x00\x1c\x00\x06\x00\x00\x00\x04\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x04\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x34\x08\x00\x00\x00\x00\x00\x00\x34\x08\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x01\x00\x00\x00\x06\x00\x00\x00\xc8\x0d\x00\x00\x00\x00\x00\x00\xc8\x0d\x01\x00\x00\x00\x00\x00\xc8\x0d\x01\x00\x00\x00\x00\x00\x68\x02\x00\x00\x00\x00\x00\x00\x78\x02\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x02\x00\x00\x00\x06\x00\x00\x00\xd8\x0d\x00\x00\x00\x00\x00\x00\xd8\x0d\x01\x00\x00\x00\x00\x00\xd8\x0d\x01\x00\x00\x00\x00\x00\xe0\x01\x00\x00\x00\x00\x00\x00\xe0\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x04\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x50\xe5\x74\x64\x04\x00\x00\x00\x40\x07\x00\x00\x00\x00\x00\x00\x40\x07\x00\x00\x00\x00\x00\x00\x40\x07\x00\x00\x00\x00\x00\x00\x3c\x00\x00\x00\x00\x00\x00\x00\x3c\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x51\xe5\x74\x64\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x52\xe5\x74\x64\x04\x00\x00\x00\xc8\x0d\x00\x00\x00\x00\x00\x00\xc8\x0d\x01\x00\x00\x00\x00\x00\xc8\x0d\x01\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x2f\x6c\x69\x62\x2f\x6c\x64\x2d\x6c"), -Section(".comment", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x00\x06\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x48\x1c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x38\x00\x09\x00\x40\x00\x1d\x00\x1c\x00\x06\x00\x00\x00\x04\x00\x00"), -Section(".interp", 0x238, "\x2f\x6c\x69\x62\x2f\x6c\x64\x2d\x6c\x69\x6e\x75\x78\x2d\x61\x61\x72\x63\x68\x36\x34\x2e\x73\x6f\x2e\x31\x00"), -Section(".note.gnu.build-id", 0x254, "\x04\x00\x00\x00\x14\x00\x00\x00\x03\x00\x00\x00\x47\x4e\x55\x00\x22\xa9\x69\x8f\x0e\xfe\xd2\x7c\x33\xb2\x6b\x72\xd1\x15\xf3\xa2\x7c\xfa\x0f\x0f"), -Section(".note.ABI-tag", 0x278, "\x04\x00\x00\x00\x10\x00\x00\x00\x01\x00\x00\x00\x47\x4e\x55\x00\x00\x00\x00\x00\x03\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00"), -Section(".gnu.hash", 0x298, "\x01\x00\x00\x00\x01\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".dynsym", 0x2B8, "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x0b\x00\x80\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x17\x00\x20\x10\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x48\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x22\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x22\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x73\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".dynstr", 0x390, "\x00\x5f\x5f\x63\x78\x61\x5f\x66\x69\x6e\x61\x6c\x69\x7a\x65\x00\x5f\x5f\x6c\x69\x62\x63\x5f\x73\x74\x61\x72\x74\x5f\x6d\x61\x69\x6e\x00\x61\x62\x6f\x72\x74\x00\x6c\x69\x62\x63\x2e\x73\x6f\x2e\x36\x00\x47\x4c\x49\x42\x43\x5f\x32\x2e\x31\x37\x00\x47\x4c\x49\x42\x43\x5f\x32\x2e\x33\x34\x00\x5f\x49\x54\x4d\x5f\x64\x65\x72\x65\x67\x69\x73\x74\x65\x72\x54\x4d\x43\x6c\x6f\x6e\x65\x54\x61\x62\x6c\x65\x00\x5f\x5f\x67\x6d\x6f\x6e\x5f\x73\x74\x61\x72\x74\x5f\x5f\x00\x5f\x49\x54\x4d\x5f\x72\x65\x67\x69\x73\x74\x65\x72\x54\x4d\x43\x6c\x6f\x6e\x65\x54\x61\x62\x6c\x65\x00"), -Section(".gnu.version", 0x41E, "\x00\x00\x00\x00\x00\x00\x02\x00\x01\x00\x03\x00\x01\x00\x03\x00\x01\x00"), -Section(".gnu.version_r", 0x430, "\x01\x00\x02\x00\x28\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x97\x91\x96\x06\x00\x00\x03\x00\x32\x00\x00\x00\x10\x00\x00\x00\xb4\x91\x96\x06\x00\x00\x02\x00\x3d\x00\x00\x00\x00\x00\x00\x00"), -Section(".rela.dyn", 0x460, "\xc8\x0d\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x10\x07\x00\x00\x00\x00\x00\x00\xd0\x0d\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\xc0\x06\x00\x00\x00\x00\x00\x00\xd8\x0f\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x14\x07\x00\x00\x00\x00\x00\x00\x28\x10\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x28\x10\x01\x00\x00\x00\x00\x00\xc0\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xc8\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xd0\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe0\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".rela.plt", 0x520, "\x00\x10\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x08\x10\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x10\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x18\x10\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".init", 0x580, "\x1f\x20\x03\xd5\xfd\x7b\xbf\xa9\xfd\x03\x00\x91\x2a\x00\x00\x94\xfd\x7b\xc1\xa8\xc0\x03\x5f\xd6"), -Section(".plt", 0x5A0, "\xf0\x7b\xbf\xa9\x90\x00\x00\x90\x11\xfe\x47\xf9\x10\xe2\x3f\x91\x20\x02\x1f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x90\x00\x00\xb0\x11\x02\x40\xf9\x10\x02\x00\x91\x20\x02\x1f\xd6\x90\x00\x00\xb0\x11\x06\x40\xf9\x10\x22\x00\x91\x20\x02\x1f\xd6\x90\x00\x00\xb0\x11\x0a\x40\xf9\x10\x42\x00\x91\x20\x02\x1f\xd6\x90\x00\x00\xb0\x11\x0e\x40\xf9\x10\x62\x00\x91\x20\x02\x1f\xd6"), -Section(".text", 0x600, "\x1f\x20\x03\xd5\x1d\x00\x80\xd2\x1e\x00\x80\xd2\xe5\x03\x00\xaa\xe1\x03\x40\xf9\xe2\x23\x00\x91\xe6\x03\x00\x91\x80\x00\x00\x90\x00\xec\x47\xf9\x03\x00\x80\xd2\x04\x00\x80\xd2\xe5\xff\xff\x97\xf0\xff\xff\x97\x80\x00\x00\x90\x00\xe8\x47\xf9\x40\x00\x00\xb4\xe8\xff\xff\x17\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x80\x00\x00\xb0\x00\xc0\x00\x91\x81\x00\x00\xb0\x21\xc0\x00\x91\x3f\x00\x00\xeb\xc0\x00\x00\x54\x81\x00\x00\x90\x21\xe0\x47\xf9\x61\x00\x00\xb4\xf0\x03\x01\xaa\x00\x02\x1f\xd6\xc0\x03\x5f\xd6\x80\x00\x00\xb0\x00\xc0\x00\x91\x81\x00\x00\xb0\x21\xc0\x00\x91\x21\x00\x00\xcb\x22\xfc\x7f\xd3\x41\x0c\x81\x8b\x21\xfc\x41\x93\xc1\x00\x00\xb4\x82\x00\x00\x90\x42\xf0\x47\xf9\x62\x00\x00\xb4\xf0\x03\x02\xaa\x00\x02\x1f\xd6\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\xfd\x7b\xbe\xa9\xfd\x03\x00\x91\xf3\x0b\x00\xf9\x93\x00\x00\xb0\x60\xc2\x40\x39\x40\x01\x00\x35\x80\x00\x00\x90\x00\xe4\x47\xf9\x80\x00\x00\xb4\x80\x00\x00\xb0\x00\x14\x40\xf9\xb9\xff\xff\x97\xd8\xff\xff\x97\x20\x00\x80\x52\x60\xc2\x00\x39\xf3\x0b\x40\xf9\xfd\x7b\xc2\xa8\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\xdc\xff\xff\x17\x89\x00\x00\xb0\x28\x00\x80\x52\x28\x35\x00\xb9\xe0\x03\x1f\x2a\xc0\x03\x5f\xd6"), -Section(".fini", 0x728, "\x1f\x20\x03\xd5\xfd\x7b\xbf\xa9\xfd\x03\x00\x91\xfd\x7b\xc1\xa8\xc0\x03\x5f\xd6"), -Section(".rodata", 0x73C, "\x01\x00\x02\x00"), -Section(".eh_frame_hdr", 0x740, "\x01\x1b\x03\x3b\x3c\x00\x00\x00\x06\x00\x00\x00\xc0\xfe\xff\xff\x54\x00\x00\x00\x10\xff\xff\xff\x68\x00\x00\x00\x40\xff\xff\xff\x7c\x00\x00\x00\x80\xff\xff\xff\x90\x00\x00\x00\xd0\xff\xff\xff\xb4\x00\x00\x00\xd4\xff\xff\xff\xdc\x00\x00\x00"), -Section(".eh_frame", 0x780, "\x10\x00\x00\x00\x00\x00\x00\x00\x01\x7a\x52\x00\x04\x78\x1e\x01\x1b\x0c\x1f\x00\x10\x00\x00\x00\x18\x00\x00\x00\x64\xfe\xff\xff\x34\x00\x00\x00\x00\x41\x07\x1e\x10\x00\x00\x00\x2c\x00\x00\x00\xa0\xfe\xff\xff\x30\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x40\x00\x00\x00\xbc\xfe\xff\xff\x3c\x00\x00\x00\x00\x00\x00\x00\x20\x00\x00\x00\x54\x00\x00\x00\xe8\xfe\xff\xff\x48\x00\x00\x00\x00\x41\x0e\x20\x9d\x04\x9e\x03\x42\x93\x02\x4e\xde\xdd\xd3\x0e\x00\x00\x00\x00\x10\x00\x00\x00\x78\x00\x00\x00\x14\xff\xff\xff\x04\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x01\x7a\x52\x00\x01\x7c\x1e\x01\x1b\x0c\x1f\x00\x10\x00\x00\x00\x18\x00\x00\x00\xf0\xfe\xff\xff\x14\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".fini_array", 0x10DD0, "\xc0\x06\x00\x00\x00\x00\x00\x00"), -Section(".dynamic", 0x10DD8, "\x01\x00\x00\x00\x00\x00\x00\x00\x28\x00\x00\x00\x00\x00\x00\x00\x0c\x00\x00\x00\x00\x00\x00\x00\x80\x05\x00\x00\x00\x00\x00\x00\x0d\x00\x00\x00\x00\x00\x00\x00\x28\x07\x00\x00\x00\x00\x00\x00\x19\x00\x00\x00\x00\x00\x00\x00\xc8\x0d\x01\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x1a\x00\x00\x00\x00\x00\x00\x00\xd0\x0d\x01\x00\x00\x00\x00\x00\x1c\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\xf5\xfe\xff\x6f\x00\x00\x00\x00\x98\x02\x00\x00\x00\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x90\x03\x00\x00\x00\x00\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\xb8\x02\x00\x00\x00\x00\x00\x00\x0a\x00\x00\x00\x00\x00\x00\x00\x8d\x00\x00\x00\x00\x00\x00\x00\x0b\x00\x00\x00\x00\x00\x00\x00\x18\x00\x00\x00\x00\x00\x00\x00\x15\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\xe8\x0f\x01\x00\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x60\x00\x00\x00\x00\x00\x00\x00\x14\x00\x00\x00\x00\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x17\x00\x00\x00\x00\x00\x00\x00\x20\x05\x00\x00\x00\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x60\x04\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\xc0\x00\x00\x00\x00\x00\x00\x00\x09\x00\x00\x00\x00\x00\x00\x00\x18\x00\x00\x00\x00\x00\x00\x00\xfb\xff\xff\x6f\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\xfe\xff\xff\x6f\x00\x00\x00\x00\x30\x04\x00\x00\x00\x00\x00\x00\xff\xff\xff\x6f\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\xf0\xff\xff\x6f\x00\x00\x00\x00\x1e\x04\x00\x00\x00\x00\x00\x00\xf9\xff\xff\x6f\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".init_array", 0x10DC8, "\x10\x07\x00\x00\x00\x00\x00\x00"), -Section(".got", 0x10FB8, "\xd8\x0d\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x14\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".got.plt", 0x10FE8, "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xa0\x05\x00\x00\x00\x00\x00\x00\xa0\x05\x00\x00\x00\x00\x00\x00\xa0\x05\x00\x00\x00\x00\x00\x00\xa0\x05\x00\x00\x00\x00\x00\x00"), -Section(".data", 0x11020, "\x00\x00\x00\x00\x00\x00\x00\x00\x28\x10\x01\x00\x00\x00\x00\x00")]), -Memmap([Annotation(Region(0x0,0x833), Attr("segment","02 0 2100")), -Annotation(Region(0x600,0x633), Attr("symbol","\"_start\"")), -Annotation(Region(0x0,0x102), Attr("section","\".shstrtab\"")), -Annotation(Region(0x0,0x240), Attr("section","\".strtab\"")), -Annotation(Region(0x0,0x46), Attr("section","\".comment\"")), -Annotation(Region(0x238,0x252), Attr("section","\".interp\"")), -Annotation(Region(0x254,0x277), Attr("section","\".note.gnu.build-id\"")), -Annotation(Region(0x278,0x297), Attr("section","\".note.ABI-tag\"")), -Annotation(Region(0x298,0x2B3), Attr("section","\".gnu.hash\"")), -Annotation(Region(0x2B8,0x38F), Attr("section","\".dynsym\"")), -Annotation(Region(0x390,0x41C), Attr("section","\".dynstr\"")), -Annotation(Region(0x41E,0x42F), Attr("section","\".gnu.version\"")), -Annotation(Region(0x430,0x45F), Attr("section","\".gnu.version_r\"")), -Annotation(Region(0x460,0x51F), Attr("section","\".rela.dyn\"")), -Annotation(Region(0x520,0x57F), Attr("section","\".rela.plt\"")), -Annotation(Region(0x580,0x597), Attr("section","\".init\"")), -Annotation(Region(0x5A0,0x5FF), Attr("section","\".plt\"")), -Annotation(Region(0x580,0x597), Attr("code-region","()")), -Annotation(Region(0x5A0,0x5FF), Attr("code-region","()")), -Annotation(Region(0x600,0x633), Attr("symbol-info","_start 0x600 52")), -Annotation(Region(0x634,0x647), Attr("symbol","\"call_weak_fn\"")), -Annotation(Region(0x634,0x647), Attr("symbol-info","call_weak_fn 0x634 20")), -Annotation(Region(0x600,0x727), Attr("section","\".text\"")), -Annotation(Region(0x600,0x727), Attr("code-region","()")), -Annotation(Region(0x714,0x727), Attr("symbol","\"main\"")), -Annotation(Region(0x714,0x727), Attr("symbol-info","main 0x714 20")), -Annotation(Region(0x728,0x73B), Attr("section","\".fini\"")), -Annotation(Region(0x728,0x73B), Attr("code-region","()")), -Annotation(Region(0x73C,0x73F), Attr("section","\".rodata\"")), -Annotation(Region(0x740,0x77B), Attr("section","\".eh_frame_hdr\"")), -Annotation(Region(0x780,0x833), Attr("section","\".eh_frame\"")), -Annotation(Region(0x10DC8,0x1102F), Attr("segment","03 0x10DC8 632")), -Annotation(Region(0x10DD0,0x10DD7), Attr("section","\".fini_array\"")), -Annotation(Region(0x10DD8,0x10FB7), Attr("section","\".dynamic\"")), -Annotation(Region(0x10DC8,0x10DCF), Attr("section","\".init_array\"")), -Annotation(Region(0x10FB8,0x10FE7), Attr("section","\".got\"")), -Annotation(Region(0x10FE8,0x1101F), Attr("section","\".got.plt\"")), -Annotation(Region(0x11020,0x1102F), Attr("section","\".data\""))]), -Program(Tid(1_417, "%00000589"), Attrs([]), - Subs([Sub(Tid(1_367, "@__cxa_finalize"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x5D0"), -Attr("stub","()")]), "__cxa_finalize", Args([Arg(Tid(1_418, "%0000058a"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("__cxa_finalize_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(785, "@__cxa_finalize"), - Attrs([Attr("address","0x5D0")]), Phis([]), -Defs([Def(Tid(1_033, "%00000409"), Attrs([Attr("address","0x5D0"), -Attr("insn","adrp x16, #69632")]), Var("R16",Imm(64)), Int(69632,64)), -Def(Tid(1_040, "%00000410"), Attrs([Attr("address","0x5D4"), -Attr("insn","ldr x17, [x16, #0x8]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(1_046, "%00000416"), Attrs([Attr("address","0x5D8"), -Attr("insn","add x16, x16, #0x8")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(8,64)))]), Jmps([Call(Tid(1_051, "%0000041b"), - Attrs([Attr("address","0x5DC"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), -Sub(Tid(1_368, "@__do_global_dtors_aux"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x6C0")]), - "__do_global_dtors_aux", Args([Arg(Tid(1_419, "%0000058b"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("__do_global_dtors_aux_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(610, "@__do_global_dtors_aux"), - Attrs([Attr("address","0x6C0")]), Phis([]), Defs([Def(Tid(614, "%00000266"), - Attrs([Attr("address","0x6C0"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("#3",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(18446744073709551584,64))), -Def(Tid(620, "%0000026c"), Attrs([Attr("address","0x6C0"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("#3",Imm(64)),Var("R29",Imm(64)),LittleEndian(),64)), -Def(Tid(626, "%00000272"), Attrs([Attr("address","0x6C0"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("#3",Imm(64)),Int(8,64)),Var("R30",Imm(64)),LittleEndian(),64)), -Def(Tid(630, "%00000276"), Attrs([Attr("address","0x6C0"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("R31",Imm(64)), -Var("#3",Imm(64))), Def(Tid(636, "%0000027c"), - Attrs([Attr("address","0x6C4"), Attr("insn","mov x29, sp")]), - Var("R29",Imm(64)), Var("R31",Imm(64))), Def(Tid(644, "%00000284"), - Attrs([Attr("address","0x6C8"), Attr("insn","str x19, [sp, #0x10]")]), - Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(16,64)),Var("R19",Imm(64)),LittleEndian(),64)), -Def(Tid(649, "%00000289"), Attrs([Attr("address","0x6CC"), -Attr("insn","adrp x19, #69632")]), Var("R19",Imm(64)), Int(69632,64)), -Def(Tid(656, "%00000290"), Attrs([Attr("address","0x6D0"), -Attr("insn","ldrb w0, [x19, #0x30]")]), Var("R0",Imm(64)), -UNSIGNED(64,Load(Var("mem",Mem(64,8)),PLUS(Var("R19",Imm(64)),Int(48,64)),LittleEndian(),8)))]), -Jmps([Goto(Tid(663, "%00000297"), Attrs([Attr("address","0x6D4"), -Attr("insn","cbnz w0, #0x28")]), - NEQ(Extract(31,0,Var("R0",Imm(64))),Int(0,32)), -Direct(Tid(661, "%00000295"))), Goto(Tid(1_407, "%0000057f"), Attrs([]), - Int(1,1), Direct(Tid(730, "%000002da")))])), Blk(Tid(730, "%000002da"), - Attrs([Attr("address","0x6D8")]), Phis([]), Defs([Def(Tid(733, "%000002dd"), - Attrs([Attr("address","0x6D8"), Attr("insn","adrp x0, #65536")]), - Var("R0",Imm(64)), Int(65536,64)), Def(Tid(740, "%000002e4"), - Attrs([Attr("address","0x6DC"), Attr("insn","ldr x0, [x0, #0xfc8]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(4040,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(746, "%000002ea"), Attrs([Attr("address","0x6E0"), -Attr("insn","cbz x0, #0x10")]), EQ(Var("R0",Imm(64)),Int(0,64)), -Direct(Tid(744, "%000002e8"))), Goto(Tid(1_408, "%00000580"), Attrs([]), - Int(1,1), Direct(Tid(769, "%00000301")))])), Blk(Tid(769, "%00000301"), - Attrs([Attr("address","0x6E4")]), Phis([]), Defs([Def(Tid(772, "%00000304"), - Attrs([Attr("address","0x6E4"), Attr("insn","adrp x0, #69632")]), - Var("R0",Imm(64)), Int(69632,64)), Def(Tid(779, "%0000030b"), - Attrs([Attr("address","0x6E8"), Attr("insn","ldr x0, [x0, #0x28]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(40,64)),LittleEndian(),64)), -Def(Tid(784, "%00000310"), Attrs([Attr("address","0x6EC"), -Attr("insn","bl #-0x11c")]), Var("R30",Imm(64)), Int(1776,64))]), -Jmps([Call(Tid(787, "%00000313"), Attrs([Attr("address","0x6EC"), -Attr("insn","bl #-0x11c")]), Int(1,1), -(Direct(Tid(1_367, "@__cxa_finalize")),Direct(Tid(744, "%000002e8"))))])), -Blk(Tid(744, "%000002e8"), Attrs([Attr("address","0x6F0")]), Phis([]), -Defs([Def(Tid(752, "%000002f0"), Attrs([Attr("address","0x6F0"), -Attr("insn","bl #-0xa0")]), Var("R30",Imm(64)), Int(1780,64))]), -Jmps([Call(Tid(754, "%000002f2"), Attrs([Attr("address","0x6F0"), -Attr("insn","bl #-0xa0")]), Int(1,1), -(Direct(Tid(1_381, "@deregister_tm_clones")),Direct(Tid(756, "%000002f4"))))])), -Blk(Tid(756, "%000002f4"), Attrs([Attr("address","0x6F4")]), Phis([]), -Defs([Def(Tid(759, "%000002f7"), Attrs([Attr("address","0x6F4"), -Attr("insn","mov w0, #0x1")]), Var("R0",Imm(64)), Int(1,64)), -Def(Tid(767, "%000002ff"), Attrs([Attr("address","0x6F8"), -Attr("insn","strb w0, [x19, #0x30]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R19",Imm(64)),Int(48,64)),Extract(7,0,Var("R0",Imm(64))),LittleEndian(),8))]), -Jmps([Goto(Tid(1_409, "%00000581"), Attrs([]), Int(1,1), -Direct(Tid(661, "%00000295")))])), Blk(Tid(661, "%00000295"), - Attrs([Attr("address","0x6FC")]), Phis([]), Defs([Def(Tid(671, "%0000029f"), - Attrs([Attr("address","0x6FC"), Attr("insn","ldr x19, [sp, #0x10]")]), - Var("R19",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(16,64)),LittleEndian(),64)), -Def(Tid(678, "%000002a6"), Attrs([Attr("address","0x700"), -Attr("insn","ldp x29, x30, [sp], #0x20")]), Var("R29",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(683, "%000002ab"), Attrs([Attr("address","0x700"), -Attr("insn","ldp x29, x30, [sp], #0x20")]), Var("R30",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(687, "%000002af"), Attrs([Attr("address","0x700"), -Attr("insn","ldp x29, x30, [sp], #0x20")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(32,64)))]), Jmps([Call(Tid(692, "%000002b4"), - Attrs([Attr("address","0x704"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), Sub(Tid(1_372, "@__libc_start_main"), - Attrs([Attr("c.proto","signed (*)(signed (*)(signed , char** , char** );* main, signed , char** , \nvoid* auxv)"), -Attr("address","0x5C0"), Attr("stub","()")]), "__libc_start_main", - Args([Arg(Tid(1_420, "%0000058c"), - Attrs([Attr("c.layout","**[ : 64]"), -Attr("c.data","Top:u64 ptr ptr"), -Attr("c.type","signed (*)(signed , char** , char** );*")]), - Var("__libc_start_main_main",Imm(64)), Var("R0",Imm(64)), In()), -Arg(Tid(1_421, "%0000058d"), Attrs([Attr("c.layout","[signed : 32]"), -Attr("c.data","Top:u32"), Attr("c.type","signed")]), - Var("__libc_start_main_arg2",Imm(32)), LOW(32,Var("R1",Imm(64))), In()), -Arg(Tid(1_422, "%0000058e"), Attrs([Attr("c.layout","**[char : 8]"), -Attr("c.data","Top:u8 ptr ptr"), Attr("c.type","char**")]), - Var("__libc_start_main_arg3",Imm(64)), Var("R2",Imm(64)), Both()), -Arg(Tid(1_423, "%0000058f"), Attrs([Attr("c.layout","*[ : 8]"), -Attr("c.data","{} ptr"), Attr("c.type","void*")]), - Var("__libc_start_main_auxv",Imm(64)), Var("R3",Imm(64)), Both()), -Arg(Tid(1_424, "%00000590"), Attrs([Attr("c.layout","[signed : 32]"), -Attr("c.data","Top:u32"), Attr("c.type","signed")]), - Var("__libc_start_main_result",Imm(32)), LOW(32,Var("R0",Imm(64))), -Out())]), Blks([Blk(Tid(443, "@__libc_start_main"), - Attrs([Attr("address","0x5C0")]), Phis([]), -Defs([Def(Tid(1_011, "%000003f3"), Attrs([Attr("address","0x5C0"), -Attr("insn","adrp x16, #69632")]), Var("R16",Imm(64)), Int(69632,64)), -Def(Tid(1_018, "%000003fa"), Attrs([Attr("address","0x5C4"), -Attr("insn","ldr x17, [x16]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R16",Imm(64)),LittleEndian(),64)), -Def(Tid(1_024, "%00000400"), Attrs([Attr("address","0x5C8"), -Attr("insn","add x16, x16, #0x0")]), Var("R16",Imm(64)), -Var("R16",Imm(64)))]), Jmps([Call(Tid(1_029, "%00000405"), - Attrs([Attr("address","0x5CC"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), Sub(Tid(1_373, "@_fini"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x728")]), - "_fini", Args([Arg(Tid(1_425, "%00000591"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("_fini_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(31, "@_fini"), - Attrs([Attr("address","0x728")]), Phis([]), Defs([Def(Tid(37, "%00000025"), - Attrs([Attr("address","0x72C"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("#0",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(18446744073709551600,64))), -Def(Tid(43, "%0000002b"), Attrs([Attr("address","0x72C"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("#0",Imm(64)),Var("R29",Imm(64)),LittleEndian(),64)), -Def(Tid(49, "%00000031"), Attrs([Attr("address","0x72C"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("#0",Imm(64)),Int(8,64)),Var("R30",Imm(64)),LittleEndian(),64)), -Def(Tid(53, "%00000035"), Attrs([Attr("address","0x72C"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("R31",Imm(64)), -Var("#0",Imm(64))), Def(Tid(59, "%0000003b"), Attrs([Attr("address","0x730"), -Attr("insn","mov x29, sp")]), Var("R29",Imm(64)), Var("R31",Imm(64))), -Def(Tid(66, "%00000042"), Attrs([Attr("address","0x734"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R29",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(71, "%00000047"), Attrs([Attr("address","0x734"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R30",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(75, "%0000004b"), Attrs([Attr("address","0x734"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(16,64)))]), Jmps([Call(Tid(80, "%00000050"), - Attrs([Attr("address","0x738"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), Sub(Tid(1_374, "@_init"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x580")]), - "_init", Args([Arg(Tid(1_426, "%00000592"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("_init_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(1_204, "@_init"), - Attrs([Attr("address","0x580")]), Phis([]), -Defs([Def(Tid(1_210, "%000004ba"), Attrs([Attr("address","0x584"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("#5",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(18446744073709551600,64))), -Def(Tid(1_216, "%000004c0"), Attrs([Attr("address","0x584"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("#5",Imm(64)),Var("R29",Imm(64)),LittleEndian(),64)), -Def(Tid(1_222, "%000004c6"), Attrs([Attr("address","0x584"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("#5",Imm(64)),Int(8,64)),Var("R30",Imm(64)),LittleEndian(),64)), -Def(Tid(1_226, "%000004ca"), Attrs([Attr("address","0x584"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("R31",Imm(64)), -Var("#5",Imm(64))), Def(Tid(1_232, "%000004d0"), - Attrs([Attr("address","0x588"), Attr("insn","mov x29, sp")]), - Var("R29",Imm(64)), Var("R31",Imm(64))), Def(Tid(1_237, "%000004d5"), - Attrs([Attr("address","0x58C"), Attr("insn","bl #0xa8")]), - Var("R30",Imm(64)), Int(1424,64))]), Jmps([Call(Tid(1_239, "%000004d7"), - Attrs([Attr("address","0x58C"), Attr("insn","bl #0xa8")]), Int(1,1), -(Direct(Tid(1_379, "@call_weak_fn")),Direct(Tid(1_241, "%000004d9"))))])), -Blk(Tid(1_241, "%000004d9"), Attrs([Attr("address","0x590")]), Phis([]), -Defs([Def(Tid(1_246, "%000004de"), Attrs([Attr("address","0x590"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R29",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(1_251, "%000004e3"), Attrs([Attr("address","0x590"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R30",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(1_255, "%000004e7"), Attrs([Attr("address","0x590"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(16,64)))]), Jmps([Call(Tid(1_260, "%000004ec"), - Attrs([Attr("address","0x594"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), Sub(Tid(1_375, "@_start"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x600"), -Attr("stub","()"), Attr("entry-point","()")]), "_start", - Args([Arg(Tid(1_427, "%00000593"), Attrs([Attr("c.layout","[signed : 32]"), -Attr("c.data","Top:u32"), Attr("c.type","signed")]), - Var("_start_result",Imm(32)), LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(380, "@_start"), Attrs([Attr("address","0x600")]), Phis([]), -Defs([Def(Tid(385, "%00000181"), Attrs([Attr("address","0x604"), -Attr("insn","mov x29, #0x0")]), Var("R29",Imm(64)), Int(0,64)), -Def(Tid(390, "%00000186"), Attrs([Attr("address","0x608"), -Attr("insn","mov x30, #0x0")]), Var("R30",Imm(64)), Int(0,64)), -Def(Tid(396, "%0000018c"), Attrs([Attr("address","0x60C"), -Attr("insn","mov x5, x0")]), Var("R5",Imm(64)), Var("R0",Imm(64))), -Def(Tid(403, "%00000193"), Attrs([Attr("address","0x610"), -Attr("insn","ldr x1, [sp]")]), Var("R1",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(409, "%00000199"), Attrs([Attr("address","0x614"), -Attr("insn","add x2, sp, #0x8")]), Var("R2",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(8,64))), Def(Tid(415, "%0000019f"), - Attrs([Attr("address","0x618"), Attr("insn","mov x6, sp")]), - Var("R6",Imm(64)), Var("R31",Imm(64))), Def(Tid(420, "%000001a4"), - Attrs([Attr("address","0x61C"), Attr("insn","adrp x0, #65536")]), - Var("R0",Imm(64)), Int(65536,64)), Def(Tid(427, "%000001ab"), - Attrs([Attr("address","0x620"), Attr("insn","ldr x0, [x0, #0xfd8]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(4056,64)),LittleEndian(),64)), -Def(Tid(432, "%000001b0"), Attrs([Attr("address","0x624"), -Attr("insn","mov x3, #0x0")]), Var("R3",Imm(64)), Int(0,64)), -Def(Tid(437, "%000001b5"), Attrs([Attr("address","0x628"), -Attr("insn","mov x4, #0x0")]), Var("R4",Imm(64)), Int(0,64)), -Def(Tid(442, "%000001ba"), Attrs([Attr("address","0x62C"), -Attr("insn","bl #-0x6c")]), Var("R30",Imm(64)), Int(1584,64))]), -Jmps([Call(Tid(445, "%000001bd"), Attrs([Attr("address","0x62C"), -Attr("insn","bl #-0x6c")]), Int(1,1), -(Direct(Tid(1_372, "@__libc_start_main")),Direct(Tid(447, "%000001bf"))))])), -Blk(Tid(447, "%000001bf"), Attrs([Attr("address","0x630")]), Phis([]), -Defs([Def(Tid(450, "%000001c2"), Attrs([Attr("address","0x630"), -Attr("insn","bl #-0x40")]), Var("R30",Imm(64)), Int(1588,64))]), -Jmps([Call(Tid(453, "%000001c5"), Attrs([Attr("address","0x630"), -Attr("insn","bl #-0x40")]), Int(1,1), -(Direct(Tid(1_378, "@abort")),Direct(Tid(1_410, "%00000582"))))])), -Blk(Tid(1_410, "%00000582"), Attrs([]), Phis([]), Defs([]), -Jmps([Call(Tid(1_411, "%00000583"), Attrs([]), Int(1,1), -(Direct(Tid(1_379, "@call_weak_fn")),))]))])), Sub(Tid(1_378, "@abort"), - Attrs([Attr("noreturn","()"), Attr("c.proto","void (*)(void)"), -Attr("address","0x5F0"), Attr("stub","()")]), "abort", Args([]), -Blks([Blk(Tid(451, "@abort"), Attrs([Attr("address","0x5F0")]), Phis([]), -Defs([Def(Tid(1_077, "%00000435"), Attrs([Attr("address","0x5F0"), -Attr("insn","adrp x16, #69632")]), Var("R16",Imm(64)), Int(69632,64)), -Def(Tid(1_084, "%0000043c"), Attrs([Attr("address","0x5F4"), -Attr("insn","ldr x17, [x16, #0x18]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(24,64)),LittleEndian(),64)), -Def(Tid(1_090, "%00000442"), Attrs([Attr("address","0x5F8"), -Attr("insn","add x16, x16, #0x18")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(24,64)))]), Jmps([Call(Tid(1_095, "%00000447"), - Attrs([Attr("address","0x5FC"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), Sub(Tid(1_379, "@call_weak_fn"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x634")]), - "call_weak_fn", Args([Arg(Tid(1_428, "%00000594"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("call_weak_fn_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(455, "@call_weak_fn"), - Attrs([Attr("address","0x634")]), Phis([]), Defs([Def(Tid(458, "%000001ca"), - Attrs([Attr("address","0x634"), Attr("insn","adrp x0, #65536")]), - Var("R0",Imm(64)), Int(65536,64)), Def(Tid(465, "%000001d1"), - Attrs([Attr("address","0x638"), Attr("insn","ldr x0, [x0, #0xfd0]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(4048,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(471, "%000001d7"), Attrs([Attr("address","0x63C"), -Attr("insn","cbz x0, #0x8")]), EQ(Var("R0",Imm(64)),Int(0,64)), -Direct(Tid(469, "%000001d5"))), Goto(Tid(1_412, "%00000584"), Attrs([]), - Int(1,1), Direct(Tid(849, "%00000351")))])), Blk(Tid(469, "%000001d5"), - Attrs([Attr("address","0x644")]), Phis([]), Defs([]), -Jmps([Call(Tid(477, "%000001dd"), Attrs([Attr("address","0x644"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))])), -Blk(Tid(849, "%00000351"), Attrs([Attr("address","0x640")]), Phis([]), -Defs([]), Jmps([Goto(Tid(852, "%00000354"), Attrs([Attr("address","0x640"), -Attr("insn","b #-0x60")]), Int(1,1), Direct(Tid(850, "@__gmon_start__")))])), -Blk(Tid(850, "@__gmon_start__"), Attrs([Attr("address","0x5E0")]), Phis([]), -Defs([Def(Tid(1_055, "%0000041f"), Attrs([Attr("address","0x5E0"), -Attr("insn","adrp x16, #69632")]), Var("R16",Imm(64)), Int(69632,64)), -Def(Tid(1_062, "%00000426"), Attrs([Attr("address","0x5E4"), -Attr("insn","ldr x17, [x16, #0x10]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(16,64)),LittleEndian(),64)), -Def(Tid(1_068, "%0000042c"), Attrs([Attr("address","0x5E8"), -Attr("insn","add x16, x16, #0x10")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(16,64)))]), Jmps([Call(Tid(1_073, "%00000431"), - Attrs([Attr("address","0x5EC"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), -Sub(Tid(1_381, "@deregister_tm_clones"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x650")]), - "deregister_tm_clones", Args([Arg(Tid(1_429, "%00000595"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("deregister_tm_clones_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(483, "@deregister_tm_clones"), - Attrs([Attr("address","0x650")]), Phis([]), Defs([Def(Tid(486, "%000001e6"), - Attrs([Attr("address","0x650"), Attr("insn","adrp x0, #69632")]), - Var("R0",Imm(64)), Int(69632,64)), Def(Tid(492, "%000001ec"), - Attrs([Attr("address","0x654"), Attr("insn","add x0, x0, #0x30")]), - Var("R0",Imm(64)), PLUS(Var("R0",Imm(64)),Int(48,64))), -Def(Tid(497, "%000001f1"), Attrs([Attr("address","0x658"), -Attr("insn","adrp x1, #69632")]), Var("R1",Imm(64)), Int(69632,64)), -Def(Tid(503, "%000001f7"), Attrs([Attr("address","0x65C"), -Attr("insn","add x1, x1, #0x30")]), Var("R1",Imm(64)), -PLUS(Var("R1",Imm(64)),Int(48,64))), Def(Tid(509, "%000001fd"), - Attrs([Attr("address","0x660"), Attr("insn","cmp x1, x0")]), - Var("#1",Imm(64)), NOT(Var("R0",Imm(64)))), Def(Tid(514, "%00000202"), - Attrs([Attr("address","0x660"), Attr("insn","cmp x1, x0")]), - Var("#2",Imm(64)), PLUS(Var("R1",Imm(64)),NOT(Var("R0",Imm(64))))), -Def(Tid(520, "%00000208"), Attrs([Attr("address","0x660"), -Attr("insn","cmp x1, x0")]), Var("VF",Imm(1)), -NEQ(SIGNED(65,PLUS(Var("#2",Imm(64)),Int(1,64))),PLUS(PLUS(SIGNED(65,Var("R1",Imm(64))),SIGNED(65,Var("#1",Imm(64)))),Int(1,65)))), -Def(Tid(526, "%0000020e"), Attrs([Attr("address","0x660"), -Attr("insn","cmp x1, x0")]), Var("CF",Imm(1)), -NEQ(UNSIGNED(65,PLUS(Var("#2",Imm(64)),Int(1,64))),PLUS(PLUS(UNSIGNED(65,Var("R1",Imm(64))),UNSIGNED(65,Var("#1",Imm(64)))),Int(1,65)))), -Def(Tid(530, "%00000212"), Attrs([Attr("address","0x660"), -Attr("insn","cmp x1, x0")]), Var("ZF",Imm(1)), -EQ(PLUS(Var("#2",Imm(64)),Int(1,64)),Int(0,64))), Def(Tid(534, "%00000216"), - Attrs([Attr("address","0x660"), Attr("insn","cmp x1, x0")]), - Var("NF",Imm(1)), Extract(63,63,PLUS(Var("#2",Imm(64)),Int(1,64))))]), -Jmps([Goto(Tid(540, "%0000021c"), Attrs([Attr("address","0x664"), -Attr("insn","b.eq #0x18")]), EQ(Var("ZF",Imm(1)),Int(1,1)), -Direct(Tid(538, "%0000021a"))), Goto(Tid(1_413, "%00000585"), Attrs([]), - Int(1,1), Direct(Tid(819, "%00000333")))])), Blk(Tid(819, "%00000333"), - Attrs([Attr("address","0x668")]), Phis([]), Defs([Def(Tid(822, "%00000336"), - Attrs([Attr("address","0x668"), Attr("insn","adrp x1, #65536")]), - Var("R1",Imm(64)), Int(65536,64)), Def(Tid(829, "%0000033d"), - Attrs([Attr("address","0x66C"), Attr("insn","ldr x1, [x1, #0xfc0]")]), - Var("R1",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R1",Imm(64)),Int(4032,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(834, "%00000342"), Attrs([Attr("address","0x670"), -Attr("insn","cbz x1, #0xc")]), EQ(Var("R1",Imm(64)),Int(0,64)), -Direct(Tid(538, "%0000021a"))), Goto(Tid(1_414, "%00000586"), Attrs([]), - Int(1,1), Direct(Tid(838, "%00000346")))])), Blk(Tid(538, "%0000021a"), - Attrs([Attr("address","0x67C")]), Phis([]), Defs([]), -Jmps([Call(Tid(546, "%00000222"), Attrs([Attr("address","0x67C"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))])), -Blk(Tid(838, "%00000346"), Attrs([Attr("address","0x674")]), Phis([]), -Defs([Def(Tid(842, "%0000034a"), Attrs([Attr("address","0x674"), -Attr("insn","mov x16, x1")]), Var("R16",Imm(64)), Var("R1",Imm(64)))]), -Jmps([Call(Tid(847, "%0000034f"), Attrs([Attr("address","0x678"), -Attr("insn","br x16")]), Int(1,1), (Indirect(Var("R16",Imm(64))),))]))])), -Sub(Tid(1_384, "@frame_dummy"), Attrs([Attr("c.proto","signed (*)(void)"), -Attr("address","0x710")]), "frame_dummy", Args([Arg(Tid(1_430, "%00000596"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("frame_dummy_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(698, "@frame_dummy"), - Attrs([Attr("address","0x710")]), Phis([]), Defs([]), -Jmps([Call(Tid(700, "%000002bc"), Attrs([Attr("address","0x710"), -Attr("insn","b #-0x90")]), Int(1,1), -(Direct(Tid(1_386, "@register_tm_clones")),))]))])), Sub(Tid(1_385, "@main"), - Attrs([Attr("c.proto","signed (*)(signed argc, const char** argv)"), -Attr("address","0x714")]), "main", Args([Arg(Tid(1_431, "%00000597"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("main_argc",Imm(32)), -LOW(32,Var("R0",Imm(64))), In()), Arg(Tid(1_432, "%00000598"), - Attrs([Attr("c.layout","**[char : 8]"), Attr("c.data","Top:u8 ptr ptr"), -Attr("c.type"," const char**")]), Var("main_argv",Imm(64)), -Var("R1",Imm(64)), Both()), Arg(Tid(1_433, "%00000599"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("main_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(702, "@main"), - Attrs([Attr("address","0x714")]), Phis([]), Defs([Def(Tid(705, "%000002c1"), - Attrs([Attr("address","0x714"), Attr("insn","adrp x9, #69632")]), - Var("R9",Imm(64)), Int(69632,64)), Def(Tid(710, "%000002c6"), - Attrs([Attr("address","0x718"), Attr("insn","mov w8, #0x1")]), - Var("R8",Imm(64)), Int(1,64)), Def(Tid(718, "%000002ce"), - Attrs([Attr("address","0x71C"), Attr("insn","str w8, [x9, #0x34]")]), - Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R9",Imm(64)),Int(52,64)),Extract(31,0,Var("R8",Imm(64))),LittleEndian(),32)), -Def(Tid(723, "%000002d3"), Attrs([Attr("address","0x720"), -Attr("insn","mov w0, wzr")]), Var("R0",Imm(64)), Int(0,64))]), -Jmps([Call(Tid(728, "%000002d8"), Attrs([Attr("address","0x724"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))]))])), -Sub(Tid(1_386, "@register_tm_clones"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x680")]), - "register_tm_clones", Args([Arg(Tid(1_434, "%0000059a"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("register_tm_clones_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(548, "@register_tm_clones"), Attrs([Attr("address","0x680")]), - Phis([]), Defs([Def(Tid(551, "%00000227"), Attrs([Attr("address","0x680"), -Attr("insn","adrp x0, #69632")]), Var("R0",Imm(64)), Int(69632,64)), -Def(Tid(557, "%0000022d"), Attrs([Attr("address","0x684"), -Attr("insn","add x0, x0, #0x30")]), Var("R0",Imm(64)), -PLUS(Var("R0",Imm(64)),Int(48,64))), Def(Tid(562, "%00000232"), - Attrs([Attr("address","0x688"), Attr("insn","adrp x1, #69632")]), - Var("R1",Imm(64)), Int(69632,64)), Def(Tid(568, "%00000238"), - Attrs([Attr("address","0x68C"), Attr("insn","add x1, x1, #0x30")]), - Var("R1",Imm(64)), PLUS(Var("R1",Imm(64)),Int(48,64))), -Def(Tid(575, "%0000023f"), Attrs([Attr("address","0x690"), -Attr("insn","sub x1, x1, x0")]), Var("R1",Imm(64)), -PLUS(PLUS(Var("R1",Imm(64)),NOT(Var("R0",Imm(64)))),Int(1,64))), -Def(Tid(581, "%00000245"), Attrs([Attr("address","0x694"), -Attr("insn","lsr x2, x1, #63")]), Var("R2",Imm(64)), -Concat(Int(0,63),Extract(63,63,Var("R1",Imm(64))))), -Def(Tid(588, "%0000024c"), Attrs([Attr("address","0x698"), -Attr("insn","add x1, x2, x1, asr #3")]), Var("R1",Imm(64)), -PLUS(Var("R2",Imm(64)),ARSHIFT(Var("R1",Imm(64)),Int(3,3)))), -Def(Tid(594, "%00000252"), Attrs([Attr("address","0x69C"), -Attr("insn","asr x1, x1, #1")]), Var("R1",Imm(64)), -SIGNED(64,Extract(63,1,Var("R1",Imm(64)))))]), -Jmps([Goto(Tid(600, "%00000258"), Attrs([Attr("address","0x6A0"), -Attr("insn","cbz x1, #0x18")]), EQ(Var("R1",Imm(64)),Int(0,64)), -Direct(Tid(598, "%00000256"))), Goto(Tid(1_415, "%00000587"), Attrs([]), - Int(1,1), Direct(Tid(789, "%00000315")))])), Blk(Tid(789, "%00000315"), - Attrs([Attr("address","0x6A4")]), Phis([]), Defs([Def(Tid(792, "%00000318"), - Attrs([Attr("address","0x6A4"), Attr("insn","adrp x2, #65536")]), - Var("R2",Imm(64)), Int(65536,64)), Def(Tid(799, "%0000031f"), - Attrs([Attr("address","0x6A8"), Attr("insn","ldr x2, [x2, #0xfe0]")]), - Var("R2",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R2",Imm(64)),Int(4064,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(804, "%00000324"), Attrs([Attr("address","0x6AC"), -Attr("insn","cbz x2, #0xc")]), EQ(Var("R2",Imm(64)),Int(0,64)), -Direct(Tid(598, "%00000256"))), Goto(Tid(1_416, "%00000588"), Attrs([]), - Int(1,1), Direct(Tid(808, "%00000328")))])), Blk(Tid(598, "%00000256"), - Attrs([Attr("address","0x6B8")]), Phis([]), Defs([]), -Jmps([Call(Tid(606, "%0000025e"), Attrs([Attr("address","0x6B8"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))])), -Blk(Tid(808, "%00000328"), Attrs([Attr("address","0x6B0")]), Phis([]), -Defs([Def(Tid(812, "%0000032c"), Attrs([Attr("address","0x6B0"), -Attr("insn","mov x16, x2")]), Var("R16",Imm(64)), Var("R2",Imm(64)))]), -Jmps([Call(Tid(817, "%00000331"), Attrs([Attr("address","0x6B4"), -Attr("insn","br x16")]), Int(1,1), -(Indirect(Var("R16",Imm(64))),))]))]))]))) \ No newline at end of file diff --git a/src/test/correct/using_gamma_write_z/clang/using_gamma_write_z.bir b/src/test/correct/using_gamma_write_z/clang/using_gamma_write_z.bir deleted file mode 100644 index 56a1128db..000000000 --- a/src/test/correct/using_gamma_write_z/clang/using_gamma_write_z.bir +++ /dev/null @@ -1,227 +0,0 @@ -00000589: program -00000557: sub __cxa_finalize(__cxa_finalize_result) -0000058a: __cxa_finalize_result :: out u32 = low:32[R0] - -00000311: -00000409: R16 := 0x11000 -00000410: R17 := mem[R16 + 8, el]:u64 -00000416: R16 := R16 + 8 -0000041b: call R17 with noreturn - -00000558: sub __do_global_dtors_aux(__do_global_dtors_aux_result) -0000058b: __do_global_dtors_aux_result :: out u32 = low:32[R0] - -00000262: -00000266: #3 := R31 - 0x20 -0000026c: mem := mem with [#3, el]:u64 <- R29 -00000272: mem := mem with [#3 + 8, el]:u64 <- R30 -00000276: R31 := #3 -0000027c: R29 := R31 -00000284: mem := mem with [R31 + 0x10, el]:u64 <- R19 -00000289: R19 := 0x11000 -00000290: R0 := pad:64[mem[R19 + 0x30]] -00000297: when 31:0[R0] <> 0 goto %00000295 -0000057f: goto %000002da - -000002da: -000002dd: R0 := 0x10000 -000002e4: R0 := mem[R0 + 0xFC8, el]:u64 -000002ea: when R0 = 0 goto %000002e8 -00000580: goto %00000301 - -00000301: -00000304: R0 := 0x11000 -0000030b: R0 := mem[R0 + 0x28, el]:u64 -00000310: R30 := 0x6F0 -00000313: call @__cxa_finalize with return %000002e8 - -000002e8: -000002f0: R30 := 0x6F4 -000002f2: call @deregister_tm_clones with return %000002f4 - -000002f4: -000002f7: R0 := 1 -000002ff: mem := mem with [R19 + 0x30] <- 7:0[R0] -00000581: goto %00000295 - -00000295: -0000029f: R19 := mem[R31 + 0x10, el]:u64 -000002a6: R29 := mem[R31, el]:u64 -000002ab: R30 := mem[R31 + 8, el]:u64 -000002af: R31 := R31 + 0x20 -000002b4: call R30 with noreturn - -0000055c: sub __libc_start_main(__libc_start_main_main, __libc_start_main_arg2, __libc_start_main_arg3, __libc_start_main_auxv, __libc_start_main_result) -0000058c: __libc_start_main_main :: in u64 = R0 -0000058d: __libc_start_main_arg2 :: in u32 = low:32[R1] -0000058e: __libc_start_main_arg3 :: in out u64 = R2 -0000058f: __libc_start_main_auxv :: in out u64 = R3 -00000590: __libc_start_main_result :: out u32 = low:32[R0] - -000001bb: -000003f3: R16 := 0x11000 -000003fa: R17 := mem[R16, el]:u64 -00000400: R16 := R16 -00000405: call R17 with noreturn - -0000055d: sub _fini(_fini_result) -00000591: _fini_result :: out u32 = low:32[R0] - -0000001f: -00000025: #0 := R31 - 0x10 -0000002b: mem := mem with [#0, el]:u64 <- R29 -00000031: mem := mem with [#0 + 8, el]:u64 <- R30 -00000035: R31 := #0 -0000003b: R29 := R31 -00000042: R29 := mem[R31, el]:u64 -00000047: R30 := mem[R31 + 8, el]:u64 -0000004b: R31 := R31 + 0x10 -00000050: call R30 with noreturn - -0000055e: sub _init(_init_result) -00000592: _init_result :: out u32 = low:32[R0] - -000004b4: -000004ba: #5 := R31 - 0x10 -000004c0: mem := mem with [#5, el]:u64 <- R29 -000004c6: mem := mem with [#5 + 8, el]:u64 <- R30 -000004ca: R31 := #5 -000004d0: R29 := R31 -000004d5: R30 := 0x590 -000004d7: call @call_weak_fn with return %000004d9 - -000004d9: -000004de: R29 := mem[R31, el]:u64 -000004e3: R30 := mem[R31 + 8, el]:u64 -000004e7: R31 := R31 + 0x10 -000004ec: call R30 with noreturn - -0000055f: sub _start(_start_result) -00000593: _start_result :: out u32 = low:32[R0] - -0000017c: -00000181: R29 := 0 -00000186: R30 := 0 -0000018c: R5 := R0 -00000193: R1 := mem[R31, el]:u64 -00000199: R2 := R31 + 8 -0000019f: R6 := R31 -000001a4: R0 := 0x10000 -000001ab: R0 := mem[R0 + 0xFD8, el]:u64 -000001b0: R3 := 0 -000001b5: R4 := 0 -000001ba: R30 := 0x630 -000001bd: call @__libc_start_main with return %000001bf - -000001bf: -000001c2: R30 := 0x634 -000001c5: call @abort with return %00000582 - -00000582: -00000583: call @call_weak_fn with noreturn - -00000562: sub abort() - - -000001c3: -00000435: R16 := 0x11000 -0000043c: R17 := mem[R16 + 0x18, el]:u64 -00000442: R16 := R16 + 0x18 -00000447: call R17 with noreturn - -00000563: sub call_weak_fn(call_weak_fn_result) -00000594: call_weak_fn_result :: out u32 = low:32[R0] - -000001c7: -000001ca: R0 := 0x10000 -000001d1: R0 := mem[R0 + 0xFD0, el]:u64 -000001d7: when R0 = 0 goto %000001d5 -00000584: goto %00000351 - -000001d5: -000001dd: call R30 with noreturn - -00000351: -00000354: goto @__gmon_start__ - -00000352: -0000041f: R16 := 0x11000 -00000426: R17 := mem[R16 + 0x10, el]:u64 -0000042c: R16 := R16 + 0x10 -00000431: call R17 with noreturn - -00000565: sub deregister_tm_clones(deregister_tm_clones_result) -00000595: deregister_tm_clones_result :: out u32 = low:32[R0] - -000001e3: -000001e6: R0 := 0x11000 -000001ec: R0 := R0 + 0x30 -000001f1: R1 := 0x11000 -000001f7: R1 := R1 + 0x30 -000001fd: #1 := ~R0 -00000202: #2 := R1 + ~R0 -00000208: VF := extend:65[#2 + 1] <> extend:65[R1] + extend:65[#1] + 1 -0000020e: CF := pad:65[#2 + 1] <> pad:65[R1] + pad:65[#1] + 1 -00000212: ZF := #2 + 1 = 0 -00000216: NF := 63:63[#2 + 1] -0000021c: when ZF goto %0000021a -00000585: goto %00000333 - -00000333: -00000336: R1 := 0x10000 -0000033d: R1 := mem[R1 + 0xFC0, el]:u64 -00000342: when R1 = 0 goto %0000021a -00000586: goto %00000346 - -0000021a: -00000222: call R30 with noreturn - -00000346: -0000034a: R16 := R1 -0000034f: call R16 with noreturn - -00000568: sub frame_dummy(frame_dummy_result) -00000596: frame_dummy_result :: out u32 = low:32[R0] - -000002ba: -000002bc: call @register_tm_clones with noreturn - -00000569: sub main(main_argc, main_argv, main_result) -00000597: main_argc :: in u32 = low:32[R0] -00000598: main_argv :: in out u64 = R1 -00000599: main_result :: out u32 = low:32[R0] - -000002be: -000002c1: R9 := 0x11000 -000002c6: R8 := 1 -000002ce: mem := mem with [R9 + 0x34, el]:u32 <- 31:0[R8] -000002d3: R0 := 0 -000002d8: call R30 with noreturn - -0000056a: sub register_tm_clones(register_tm_clones_result) -0000059a: register_tm_clones_result :: out u32 = low:32[R0] - -00000224: -00000227: R0 := 0x11000 -0000022d: R0 := R0 + 0x30 -00000232: R1 := 0x11000 -00000238: R1 := R1 + 0x30 -0000023f: R1 := R1 + ~R0 + 1 -00000245: R2 := 0.63:63[R1] -0000024c: R1 := R2 + (R1 ~>> 3) -00000252: R1 := extend:64[63:1[R1]] -00000258: when R1 = 0 goto %00000256 -00000587: goto %00000315 - -00000315: -00000318: R2 := 0x10000 -0000031f: R2 := mem[R2 + 0xFE0, el]:u64 -00000324: when R2 = 0 goto %00000256 -00000588: goto %00000328 - -00000256: -0000025e: call R30 with noreturn - -00000328: -0000032c: R16 := R2 -00000331: call R16 with noreturn diff --git a/src/test/correct/using_gamma_write_z/clang/using_gamma_write_z.expected b/src/test/correct/using_gamma_write_z/clang/using_gamma_write_z.expected index 17c748067..2abbec0ed 100644 --- a/src/test/correct/using_gamma_write_z/clang/using_gamma_write_z.expected +++ b/src/test/correct/using_gamma_write_z/clang/using_gamma_write_z.expected @@ -7,9 +7,9 @@ var {:extern} R8: bv64; var {:extern} R9: bv64; var {:extern} mem: [bv64]bv8; const {:extern} $x_addr: bv64; -axiom ($x_addr == 69688bv64); +axiom ($x_addr == 131096bv64); const {:extern} $z_addr: bv64; -axiom ($z_addr == 69684bv64); +axiom ($z_addr == 131092bv64); function {:extern} L(mem$in: [bv64]bv8, index: bv64) returns (bool) { (if (index == $z_addr) then true else (if (index == $x_addr) then (memory_load32_le(mem$in, $z_addr) == 0bv32) else false)) } @@ -19,6 +19,10 @@ function {:extern} gamma_load32(gammaMap: [bv64]bool, index: bv64) returns (bool (gammaMap[bvadd64(index, 3bv64)] && (gammaMap[bvadd64(index, 2bv64)] && (gammaMap[bvadd64(index, 1bv64)] && gammaMap[index]))) } +function {:extern} gamma_load64(gammaMap: [bv64]bool, index: bv64) returns (bool) { + (gammaMap[bvadd64(index, 7bv64)] && (gammaMap[bvadd64(index, 6bv64)] && (gammaMap[bvadd64(index, 5bv64)] && (gammaMap[bvadd64(index, 4bv64)] && (gammaMap[bvadd64(index, 3bv64)] && (gammaMap[bvadd64(index, 2bv64)] && (gammaMap[bvadd64(index, 1bv64)] && gammaMap[index]))))))) +} + function {:extern} gamma_store32(gammaMap: [bv64]bool, index: bv64, value: bool) returns ([bv64]bool) { gammaMap[index := value][bvadd64(index, 1bv64) := value][bvadd64(index, 2bv64) := value][bvadd64(index, 3bv64) := value] } @@ -39,11 +43,12 @@ procedure {:extern} rely(); modifies Gamma_mem, mem; ensures (forall i: bv64 :: (((mem[i] == old(mem[i])) ==> (Gamma_mem[i] == old(Gamma_mem[i]))))); ensures ((old(memory_load32_le(mem, $x_addr)) == memory_load32_le(mem, $x_addr)) && (old(memory_load32_le(mem, $z_addr)) == memory_load32_le(mem, $z_addr))); - free ensures (memory_load32_le(mem, 1852bv64) == 131073bv32); - free ensures (memory_load64_le(mem, 69064bv64) == 1808bv64); - free ensures (memory_load64_le(mem, 69072bv64) == 1728bv64); - free ensures (memory_load64_le(mem, 69592bv64) == 1812bv64); - free ensures (memory_load64_le(mem, 69672bv64) == 69672bv64); + free ensures (memory_load32_le(mem, 2304bv64) == 131073bv32); + free ensures (memory_load64_le(mem, 130432bv64) == 2256bv64); + free ensures (memory_load64_le(mem, 130440bv64) == 2176bv64); + free ensures (memory_load64_le(mem, 131040bv64) == 131092bv64); + free ensures (memory_load64_le(mem, 131056bv64) == 2260bv64); + free ensures (memory_load64_le(mem, 131080bv64) == 131080bv64); procedure {:extern} rely_transitive(); modifies Gamma_mem, mem; @@ -70,39 +75,46 @@ implementation {:extern} guarantee_reflexive() assert (gamma_load32(Gamma_mem, $x_addr) ==> gamma_load32(Gamma_mem, $x_addr)); } -procedure main_1812(); +procedure main(); modifies Gamma_R0, Gamma_R8, Gamma_R9, Gamma_mem, R0, R8, R9, mem; requires ((memory_load32_le(mem, $z_addr) == 0bv32) ==> gamma_load32(Gamma_mem, $x_addr)); - free requires (memory_load64_le(mem, 69664bv64) == 0bv64); - free requires (memory_load64_le(mem, 69672bv64) == 69672bv64); - free requires (memory_load32_le(mem, 1852bv64) == 131073bv32); - free requires (memory_load64_le(mem, 69064bv64) == 1808bv64); - free requires (memory_load64_le(mem, 69072bv64) == 1728bv64); - free requires (memory_load64_le(mem, 69592bv64) == 1812bv64); - free requires (memory_load64_le(mem, 69672bv64) == 69672bv64); - free ensures (memory_load32_le(mem, 1852bv64) == 131073bv32); - free ensures (memory_load64_le(mem, 69064bv64) == 1808bv64); - free ensures (memory_load64_le(mem, 69072bv64) == 1728bv64); - free ensures (memory_load64_le(mem, 69592bv64) == 1812bv64); - free ensures (memory_load64_le(mem, 69672bv64) == 69672bv64); - -implementation main_1812() + free requires (memory_load64_le(mem, 131072bv64) == 0bv64); + free requires (memory_load64_le(mem, 131080bv64) == 131080bv64); + free requires (memory_load32_le(mem, 2304bv64) == 131073bv32); + free requires (memory_load64_le(mem, 130432bv64) == 2256bv64); + free requires (memory_load64_le(mem, 130440bv64) == 2176bv64); + free requires (memory_load64_le(mem, 131040bv64) == 131092bv64); + free requires (memory_load64_le(mem, 131056bv64) == 2260bv64); + free requires (memory_load64_le(mem, 131080bv64) == 131080bv64); + free ensures (memory_load32_le(mem, 2304bv64) == 131073bv32); + free ensures (memory_load64_le(mem, 130432bv64) == 2256bv64); + free ensures (memory_load64_le(mem, 130440bv64) == 2176bv64); + free ensures (memory_load64_le(mem, 131040bv64) == 131092bv64); + free ensures (memory_load64_le(mem, 131056bv64) == 2260bv64); + free ensures (memory_load64_le(mem, 131080bv64) == 131080bv64); + +implementation main() { + var $load$18: bv64; + var Gamma_$load$18: bool; var Gamma_x_old: bool; lmain: assume {:captureState "lmain"} true; - R9, Gamma_R9 := 69632bv64, true; - R8, Gamma_R8 := 1bv64, true; + R8, Gamma_R8 := 126976bv64, true; + R9, Gamma_R9 := 1bv64, true; + R0, Gamma_R0 := 0bv64, true; + call rely(); + $load$18, Gamma_$load$18 := memory_load64_le(mem, bvadd64(R8, 4064bv64)), (gamma_load64(Gamma_mem, bvadd64(R8, 4064bv64)) || L(mem, bvadd64(R8, 4064bv64))); + R8, Gamma_R8 := $load$18, Gamma_$load$18; call rely(); + assert (L(mem, R8) ==> Gamma_R9); Gamma_x_old := (gamma_load32(Gamma_mem, $x_addr) || L(mem, $x_addr)); - assert (L(mem, bvadd64(R9, 52bv64)) ==> Gamma_R8); - mem, Gamma_mem := memory_store32_le(mem, bvadd64(R9, 52bv64), R8[32:0]), gamma_store32(Gamma_mem, bvadd64(R9, 52bv64), Gamma_R8); - assert ((bvadd64(R9, 52bv64) == $z_addr) ==> (L(mem, $x_addr) ==> Gamma_x_old)); - assume {:captureState "%000002ce"} true; - R0, Gamma_R0 := 0bv64, true; - goto main_1812_basil_return; - main_1812_basil_return: - assume {:captureState "main_1812_basil_return"} true; + mem, Gamma_mem := memory_store32_le(mem, R8, R9[32:0]), gamma_store32(Gamma_mem, R8, Gamma_R9); + assert ((R8 == $z_addr) ==> (L(mem, $x_addr) ==> Gamma_x_old)); + assume {:captureState "%0000028c"} true; + goto main_basil_return; + main_basil_return: + assume {:captureState "main_basil_return"} true; return; } diff --git a/src/test/correct/using_gamma_write_z/clang/using_gamma_write_z.gts b/src/test/correct/using_gamma_write_z/clang/using_gamma_write_z.gts deleted file mode 100644 index 8e940f98c..000000000 Binary files a/src/test/correct/using_gamma_write_z/clang/using_gamma_write_z.gts and /dev/null differ diff --git a/src/test/correct/using_gamma_write_z/clang/using_gamma_write_z.md5sum b/src/test/correct/using_gamma_write_z/clang/using_gamma_write_z.md5sum new file mode 100644 index 000000000..88984f8f5 --- /dev/null +++ b/src/test/correct/using_gamma_write_z/clang/using_gamma_write_z.md5sum @@ -0,0 +1,5 @@ +0900edc9a105392f3f5150c47406a16e correct/using_gamma_write_z/clang/a.out +c68ae9716d5c58f96f1d6fa0fa60a23e correct/using_gamma_write_z/clang/using_gamma_write_z.adt +abf21c2d30e976783d9a3a2c745722d0 correct/using_gamma_write_z/clang/using_gamma_write_z.bir +1dc5ec5c03ce0c123c582e656d525b57 correct/using_gamma_write_z/clang/using_gamma_write_z.relf +5ef82e97b9944425a115c9b7a0cdbd8c correct/using_gamma_write_z/clang/using_gamma_write_z.gts diff --git a/src/test/correct/using_gamma_write_z/clang/using_gamma_write_z.relf b/src/test/correct/using_gamma_write_z/clang/using_gamma_write_z.relf deleted file mode 100644 index 16c8a9fe3..000000000 --- a/src/test/correct/using_gamma_write_z/clang/using_gamma_write_z.relf +++ /dev/null @@ -1,124 +0,0 @@ - -Relocation section '.rela.dyn' at offset 0x460 contains 8 entries: - Offset Info Type Symbol's Value Symbol's Name + Addend -0000000000010dc8 0000000000000403 R_AARCH64_RELATIVE 710 -0000000000010dd0 0000000000000403 R_AARCH64_RELATIVE 6c0 -0000000000010fd8 0000000000000403 R_AARCH64_RELATIVE 714 -0000000000011028 0000000000000403 R_AARCH64_RELATIVE 11028 -0000000000010fc0 0000000400000401 R_AARCH64_GLOB_DAT 0000000000000000 _ITM_deregisterTMCloneTable + 0 -0000000000010fc8 0000000500000401 R_AARCH64_GLOB_DAT 0000000000000000 __cxa_finalize@GLIBC_2.17 + 0 -0000000000010fd0 0000000600000401 R_AARCH64_GLOB_DAT 0000000000000000 __gmon_start__ + 0 -0000000000010fe0 0000000800000401 R_AARCH64_GLOB_DAT 0000000000000000 _ITM_registerTMCloneTable + 0 - -Relocation section '.rela.plt' at offset 0x520 contains 4 entries: - Offset Info Type Symbol's Value Symbol's Name + Addend -0000000000011000 0000000300000402 R_AARCH64_JUMP_SLOT 0000000000000000 __libc_start_main@GLIBC_2.34 + 0 -0000000000011008 0000000500000402 R_AARCH64_JUMP_SLOT 0000000000000000 __cxa_finalize@GLIBC_2.17 + 0 -0000000000011010 0000000600000402 R_AARCH64_JUMP_SLOT 0000000000000000 __gmon_start__ + 0 -0000000000011018 0000000700000402 R_AARCH64_JUMP_SLOT 0000000000000000 abort@GLIBC_2.17 + 0 - -Symbol table '.dynsym' contains 9 entries: - Num: Value Size Type Bind Vis Ndx Name - 0: 0000000000000000 0 NOTYPE LOCAL DEFAULT UND - 1: 0000000000000580 0 SECTION LOCAL DEFAULT 11 .init - 2: 0000000000011020 0 SECTION LOCAL DEFAULT 23 .data - 3: 0000000000000000 0 FUNC GLOBAL DEFAULT UND __libc_start_main@GLIBC_2.34 (2) - 4: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_deregisterTMCloneTable - 5: 0000000000000000 0 FUNC WEAK DEFAULT UND __cxa_finalize@GLIBC_2.17 (3) - 6: 0000000000000000 0 NOTYPE WEAK DEFAULT UND __gmon_start__ - 7: 0000000000000000 0 FUNC GLOBAL DEFAULT UND abort@GLIBC_2.17 (3) - 8: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_registerTMCloneTable - -Symbol table '.symtab' contains 91 entries: - Num: Value Size Type Bind Vis Ndx Name - 0: 0000000000000000 0 NOTYPE LOCAL DEFAULT UND - 1: 0000000000000238 0 SECTION LOCAL DEFAULT 1 .interp - 2: 0000000000000254 0 SECTION LOCAL DEFAULT 2 .note.gnu.build-id - 3: 0000000000000278 0 SECTION LOCAL DEFAULT 3 .note.ABI-tag - 4: 0000000000000298 0 SECTION LOCAL DEFAULT 4 .gnu.hash - 5: 00000000000002b8 0 SECTION LOCAL DEFAULT 5 .dynsym - 6: 0000000000000390 0 SECTION LOCAL DEFAULT 6 .dynstr - 7: 000000000000041e 0 SECTION LOCAL DEFAULT 7 .gnu.version - 8: 0000000000000430 0 SECTION LOCAL DEFAULT 8 .gnu.version_r - 9: 0000000000000460 0 SECTION LOCAL DEFAULT 9 .rela.dyn - 10: 0000000000000520 0 SECTION LOCAL DEFAULT 10 .rela.plt - 11: 0000000000000580 0 SECTION LOCAL DEFAULT 11 .init - 12: 00000000000005a0 0 SECTION LOCAL DEFAULT 12 .plt - 13: 0000000000000600 0 SECTION LOCAL DEFAULT 13 .text - 14: 0000000000000728 0 SECTION LOCAL DEFAULT 14 .fini - 15: 000000000000073c 0 SECTION LOCAL DEFAULT 15 .rodata - 16: 0000000000000740 0 SECTION LOCAL DEFAULT 16 .eh_frame_hdr - 17: 0000000000000780 0 SECTION LOCAL DEFAULT 17 .eh_frame - 18: 0000000000010dc8 0 SECTION LOCAL DEFAULT 18 .init_array - 19: 0000000000010dd0 0 SECTION LOCAL DEFAULT 19 .fini_array - 20: 0000000000010dd8 0 SECTION LOCAL DEFAULT 20 .dynamic - 21: 0000000000010fb8 0 SECTION LOCAL DEFAULT 21 .got - 22: 0000000000010fe8 0 SECTION LOCAL DEFAULT 22 .got.plt - 23: 0000000000011020 0 SECTION LOCAL DEFAULT 23 .data - 24: 0000000000011030 0 SECTION LOCAL DEFAULT 24 .bss - 25: 0000000000000000 0 SECTION LOCAL DEFAULT 25 .comment - 26: 0000000000000000 0 FILE LOCAL DEFAULT ABS Scrt1.o - 27: 0000000000000278 0 NOTYPE LOCAL DEFAULT 3 $d - 28: 0000000000000278 32 OBJECT LOCAL DEFAULT 3 __abi_tag - 29: 0000000000000600 0 NOTYPE LOCAL DEFAULT 13 $x - 30: 0000000000000794 0 NOTYPE LOCAL DEFAULT 17 $d - 31: 000000000000073c 0 NOTYPE LOCAL DEFAULT 15 $d - 32: 0000000000000000 0 FILE LOCAL DEFAULT ABS crti.o - 33: 0000000000000634 0 NOTYPE LOCAL DEFAULT 13 $x - 34: 0000000000000634 20 FUNC LOCAL DEFAULT 13 call_weak_fn - 35: 0000000000000580 0 NOTYPE LOCAL DEFAULT 11 $x - 36: 0000000000000728 0 NOTYPE LOCAL DEFAULT 14 $x - 37: 0000000000000000 0 FILE LOCAL DEFAULT ABS crtn.o - 38: 0000000000000590 0 NOTYPE LOCAL DEFAULT 11 $x - 39: 0000000000000734 0 NOTYPE LOCAL DEFAULT 14 $x - 40: 0000000000000000 0 FILE LOCAL DEFAULT ABS crtstuff.c - 41: 0000000000000650 0 NOTYPE LOCAL DEFAULT 13 $x - 42: 0000000000000650 0 FUNC LOCAL DEFAULT 13 deregister_tm_clones - 43: 0000000000000680 0 FUNC LOCAL DEFAULT 13 register_tm_clones - 44: 0000000000011028 0 NOTYPE LOCAL DEFAULT 23 $d - 45: 00000000000006c0 0 FUNC LOCAL DEFAULT 13 __do_global_dtors_aux - 46: 0000000000011030 1 OBJECT LOCAL DEFAULT 24 completed.0 - 47: 0000000000010dd0 0 NOTYPE LOCAL DEFAULT 19 $d - 48: 0000000000010dd0 0 OBJECT LOCAL DEFAULT 19 __do_global_dtors_aux_fini_array_entry - 49: 0000000000000710 0 FUNC LOCAL DEFAULT 13 frame_dummy - 50: 0000000000010dc8 0 NOTYPE LOCAL DEFAULT 18 $d - 51: 0000000000010dc8 0 OBJECT LOCAL DEFAULT 18 __frame_dummy_init_array_entry - 52: 00000000000007a8 0 NOTYPE LOCAL DEFAULT 17 $d - 53: 0000000000011030 0 NOTYPE LOCAL DEFAULT 24 $d - 54: 0000000000000000 0 FILE LOCAL DEFAULT ABS using_gamma_write_z.c - 55: 0000000000000714 0 NOTYPE LOCAL DEFAULT 13 $x.0 - 56: 0000000000011034 0 NOTYPE LOCAL DEFAULT 24 $d.1 - 57: 000000000000002a 0 NOTYPE LOCAL DEFAULT 25 $d.2 - 58: 0000000000000808 0 NOTYPE LOCAL DEFAULT 17 $d.3 - 59: 0000000000000000 0 FILE LOCAL DEFAULT ABS crtstuff.c - 60: 0000000000000830 0 NOTYPE LOCAL DEFAULT 17 $d - 61: 0000000000000830 0 OBJECT LOCAL DEFAULT 17 __FRAME_END__ - 62: 0000000000000000 0 FILE LOCAL DEFAULT ABS - 63: 0000000000010dd8 0 OBJECT LOCAL DEFAULT ABS _DYNAMIC - 64: 0000000000000740 0 NOTYPE LOCAL DEFAULT 16 __GNU_EH_FRAME_HDR - 65: 0000000000010fb8 0 OBJECT LOCAL DEFAULT ABS _GLOBAL_OFFSET_TABLE_ - 66: 00000000000005a0 0 NOTYPE LOCAL DEFAULT 12 $x - 67: 0000000000000000 0 FUNC GLOBAL DEFAULT UND __libc_start_main@GLIBC_2.34 - 68: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_deregisterTMCloneTable - 69: 0000000000011020 0 NOTYPE WEAK DEFAULT 23 data_start - 70: 0000000000011030 0 NOTYPE GLOBAL DEFAULT 24 __bss_start__ - 71: 0000000000000000 0 FUNC WEAK DEFAULT UND __cxa_finalize@GLIBC_2.17 - 72: 0000000000011040 0 NOTYPE GLOBAL DEFAULT 24 _bss_end__ - 73: 0000000000011030 0 NOTYPE GLOBAL DEFAULT 23 _edata - 74: 0000000000011034 4 OBJECT GLOBAL DEFAULT 24 z - 75: 0000000000011038 4 OBJECT GLOBAL DEFAULT 24 x - 76: 0000000000000728 0 FUNC GLOBAL HIDDEN 14 _fini - 77: 0000000000011040 0 NOTYPE GLOBAL DEFAULT 24 __bss_end__ - 78: 0000000000011020 0 NOTYPE GLOBAL DEFAULT 23 __data_start - 79: 0000000000000000 0 NOTYPE WEAK DEFAULT UND __gmon_start__ - 80: 0000000000011028 0 OBJECT GLOBAL HIDDEN 23 __dso_handle - 81: 0000000000000000 0 FUNC GLOBAL DEFAULT UND abort@GLIBC_2.17 - 82: 000000000000073c 4 OBJECT GLOBAL DEFAULT 15 _IO_stdin_used - 83: 0000000000011040 0 NOTYPE GLOBAL DEFAULT 24 _end - 84: 0000000000000600 52 FUNC GLOBAL DEFAULT 13 _start - 85: 0000000000011040 0 NOTYPE GLOBAL DEFAULT 24 __end__ - 86: 0000000000011030 0 NOTYPE GLOBAL DEFAULT 24 __bss_start - 87: 0000000000000714 20 FUNC GLOBAL DEFAULT 13 main - 88: 0000000000011030 0 OBJECT GLOBAL HIDDEN 23 __TMC_END__ - 89: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_registerTMCloneTable - 90: 0000000000000580 0 FUNC GLOBAL HIDDEN 11 _init diff --git a/src/test/correct/using_gamma_write_z/clang/using_gamma_write_z_gtirb.expected b/src/test/correct/using_gamma_write_z/clang/using_gamma_write_z_gtirb.expected index ccd26b39c..862016dc9 100644 --- a/src/test/correct/using_gamma_write_z/clang/using_gamma_write_z_gtirb.expected +++ b/src/test/correct/using_gamma_write_z/clang/using_gamma_write_z_gtirb.expected @@ -7,9 +7,9 @@ var {:extern} R8: bv64; var {:extern} R9: bv64; var {:extern} mem: [bv64]bv8; const {:extern} $x_addr: bv64; -axiom ($x_addr == 69688bv64); +axiom ($x_addr == 131096bv64); const {:extern} $z_addr: bv64; -axiom ($z_addr == 69684bv64); +axiom ($z_addr == 131092bv64); function {:extern} L(mem$in: [bv64]bv8, index: bv64) returns (bool) { (if (index == $z_addr) then true else (if (index == $x_addr) then (memory_load32_le(mem$in, $z_addr) == 0bv32) else false)) } @@ -19,6 +19,10 @@ function {:extern} gamma_load32(gammaMap: [bv64]bool, index: bv64) returns (bool (gammaMap[bvadd64(index, 3bv64)] && (gammaMap[bvadd64(index, 2bv64)] && (gammaMap[bvadd64(index, 1bv64)] && gammaMap[index]))) } +function {:extern} gamma_load64(gammaMap: [bv64]bool, index: bv64) returns (bool) { + (gammaMap[bvadd64(index, 7bv64)] && (gammaMap[bvadd64(index, 6bv64)] && (gammaMap[bvadd64(index, 5bv64)] && (gammaMap[bvadd64(index, 4bv64)] && (gammaMap[bvadd64(index, 3bv64)] && (gammaMap[bvadd64(index, 2bv64)] && (gammaMap[bvadd64(index, 1bv64)] && gammaMap[index]))))))) +} + function {:extern} gamma_store32(gammaMap: [bv64]bool, index: bv64, value: bool) returns ([bv64]bool) { gammaMap[index := value][bvadd64(index, 1bv64) := value][bvadd64(index, 2bv64) := value][bvadd64(index, 3bv64) := value] } @@ -39,11 +43,12 @@ procedure {:extern} rely(); modifies Gamma_mem, mem; ensures (forall i: bv64 :: (((mem[i] == old(mem[i])) ==> (Gamma_mem[i] == old(Gamma_mem[i]))))); ensures ((old(memory_load32_le(mem, $x_addr)) == memory_load32_le(mem, $x_addr)) && (old(memory_load32_le(mem, $z_addr)) == memory_load32_le(mem, $z_addr))); - free ensures (memory_load32_le(mem, 1852bv64) == 131073bv32); - free ensures (memory_load64_le(mem, 69064bv64) == 1808bv64); - free ensures (memory_load64_le(mem, 69072bv64) == 1728bv64); - free ensures (memory_load64_le(mem, 69592bv64) == 1812bv64); - free ensures (memory_load64_le(mem, 69672bv64) == 69672bv64); + free ensures (memory_load32_le(mem, 2304bv64) == 131073bv32); + free ensures (memory_load64_le(mem, 130432bv64) == 2256bv64); + free ensures (memory_load64_le(mem, 130440bv64) == 2176bv64); + free ensures (memory_load64_le(mem, 131040bv64) == 131092bv64); + free ensures (memory_load64_le(mem, 131056bv64) == 2260bv64); + free ensures (memory_load64_le(mem, 131080bv64) == 131080bv64); procedure {:extern} rely_transitive(); modifies Gamma_mem, mem; @@ -70,39 +75,46 @@ implementation {:extern} guarantee_reflexive() assert (gamma_load32(Gamma_mem, $x_addr) ==> gamma_load32(Gamma_mem, $x_addr)); } -procedure main_1812(); +procedure main(); modifies Gamma_R0, Gamma_R8, Gamma_R9, Gamma_mem, R0, R8, R9, mem; requires ((memory_load32_le(mem, $z_addr) == 0bv32) ==> gamma_load32(Gamma_mem, $x_addr)); - free requires (memory_load64_le(mem, 69664bv64) == 0bv64); - free requires (memory_load64_le(mem, 69672bv64) == 69672bv64); - free requires (memory_load32_le(mem, 1852bv64) == 131073bv32); - free requires (memory_load64_le(mem, 69064bv64) == 1808bv64); - free requires (memory_load64_le(mem, 69072bv64) == 1728bv64); - free requires (memory_load64_le(mem, 69592bv64) == 1812bv64); - free requires (memory_load64_le(mem, 69672bv64) == 69672bv64); - free ensures (memory_load32_le(mem, 1852bv64) == 131073bv32); - free ensures (memory_load64_le(mem, 69064bv64) == 1808bv64); - free ensures (memory_load64_le(mem, 69072bv64) == 1728bv64); - free ensures (memory_load64_le(mem, 69592bv64) == 1812bv64); - free ensures (memory_load64_le(mem, 69672bv64) == 69672bv64); - -implementation main_1812() + free requires (memory_load64_le(mem, 131072bv64) == 0bv64); + free requires (memory_load64_le(mem, 131080bv64) == 131080bv64); + free requires (memory_load32_le(mem, 2304bv64) == 131073bv32); + free requires (memory_load64_le(mem, 130432bv64) == 2256bv64); + free requires (memory_load64_le(mem, 130440bv64) == 2176bv64); + free requires (memory_load64_le(mem, 131040bv64) == 131092bv64); + free requires (memory_load64_le(mem, 131056bv64) == 2260bv64); + free requires (memory_load64_le(mem, 131080bv64) == 131080bv64); + free ensures (memory_load32_le(mem, 2304bv64) == 131073bv32); + free ensures (memory_load64_le(mem, 130432bv64) == 2256bv64); + free ensures (memory_load64_le(mem, 130440bv64) == 2176bv64); + free ensures (memory_load64_le(mem, 131040bv64) == 131092bv64); + free ensures (memory_load64_le(mem, 131056bv64) == 2260bv64); + free ensures (memory_load64_le(mem, 131080bv64) == 131080bv64); + +implementation main() { + var $load19: bv64; + var Gamma_$load19: bool; var Gamma_x_old: bool; - main_1812__0__ap7BIakXQIKH6aKZFtlpAw: - assume {:captureState "main_1812__0__ap7BIakXQIKH6aKZFtlpAw"} true; - R9, Gamma_R9 := 69632bv64, true; - R8, Gamma_R8 := 1bv64, true; + $main$__0__$IkNYmV06TxC75h8A4NM3wA: + assume {:captureState "$main$__0__$IkNYmV06TxC75h8A4NM3wA"} true; + R8, Gamma_R8 := 126976bv64, true; + R9, Gamma_R9 := 1bv64, true; + R0, Gamma_R0 := 0bv64, true; + call rely(); + $load19, Gamma_$load19 := memory_load64_le(mem, bvadd64(R8, 4064bv64)), (gamma_load64(Gamma_mem, bvadd64(R8, 4064bv64)) || L(mem, bvadd64(R8, 4064bv64))); + R8, Gamma_R8 := $load19, Gamma_$load19; call rely(); + assert (L(mem, R8) ==> Gamma_R9); Gamma_x_old := (gamma_load32(Gamma_mem, $x_addr) || L(mem, $x_addr)); - assert (L(mem, bvadd64(R9, 52bv64)) ==> Gamma_R8); - mem, Gamma_mem := memory_store32_le(mem, bvadd64(R9, 52bv64), R8[32:0]), gamma_store32(Gamma_mem, bvadd64(R9, 52bv64), Gamma_R8); - assert ((bvadd64(R9, 52bv64) == $z_addr) ==> (L(mem, $x_addr) ==> Gamma_x_old)); - assume {:captureState "1820_0"} true; - R0, Gamma_R0 := 0bv64, true; - goto main_1812_basil_return; - main_1812_basil_return: - assume {:captureState "main_1812_basil_return"} true; + mem, Gamma_mem := memory_store32_le(mem, R8, R9[32:0]), gamma_store32(Gamma_mem, R8, Gamma_R9); + assert ((R8 == $z_addr) ==> (L(mem, $x_addr) ==> Gamma_x_old)); + assume {:captureState "2276$0"} true; + goto main_basil_return; + main_basil_return: + assume {:captureState "main_basil_return"} true; return; } diff --git a/src/test/correct/using_gamma_write_z/clang_pic/using_gamma_write_z.adt b/src/test/correct/using_gamma_write_z/clang_pic/using_gamma_write_z.adt deleted file mode 100644 index e0c046095..000000000 --- a/src/test/correct/using_gamma_write_z/clang_pic/using_gamma_write_z.adt +++ /dev/null @@ -1,495 +0,0 @@ -Project(Attrs([Attr("filename","\"clang_pic/using_gamma_write_z.out\""), -Attr("image-specification","(declare abi (name str))\n(declare arch (name str))\n(declare base-address (addr int))\n(declare bias (off int))\n(declare bits (size int))\n(declare code-region (addr int) (size int) (off int))\n(declare code-start (addr int))\n(declare entry-point (addr int))\n(declare external-reference (addr int) (name str))\n(declare format (name str))\n(declare is-executable (flag bool))\n(declare is-little-endian (flag bool))\n(declare llvm:base-address (addr int))\n(declare llvm:code-entry (name str) (off int) (size int))\n(declare llvm:coff-import-library (name str))\n(declare llvm:coff-virtual-section-header (name str) (addr int) (size int))\n(declare llvm:elf-program-header (name str) (off int) (size int))\n(declare llvm:elf-program-header-flags (name str) (ld bool) (r bool) \n (w bool) (x bool))\n(declare llvm:elf-virtual-program-header (name str) (addr int) (size int))\n(declare llvm:entry-point (addr int))\n(declare llvm:macho-symbol (name str) (value int))\n(declare llvm:name-reference (at int) (name str))\n(declare llvm:relocation (at int) (addr int))\n(declare llvm:section-entry (name str) (addr int) (size int) (off int))\n(declare llvm:section-flags (name str) (r bool) (w bool) (x bool))\n(declare llvm:segment-command (name str) (off int) (size int))\n(declare llvm:segment-command-flags (name str) (r bool) (w bool) (x bool))\n(declare llvm:symbol-entry (name str) (addr int) (size int) (off int)\n (value int))\n(declare llvm:virtual-segment-command (name str) (addr int) (size int))\n(declare mapped (addr int) (size int) (off int))\n(declare named-region (addr int) (size int) (name str))\n(declare named-symbol (addr int) (name str))\n(declare require (name str))\n(declare section (addr int) (size int))\n(declare segment (addr int) (size int) (r bool) (w bool) (x bool))\n(declare subarch (name str))\n(declare symbol-chunk (addr int) (size int) (root int))\n(declare symbol-value (addr int) (value int))\n(declare system (name str))\n(declare vendor (name str))\n\n(abi unknown)\n(arch aarch64)\n(base-address 0)\n(bias 0)\n(bits 64)\n(code-region 1900 20 1900)\n(code-region 1600 300 1600)\n(code-region 1456 96 1456)\n(code-region 1432 24 1432)\n(code-start 1652)\n(code-start 1600)\n(code-start 1876)\n(entry-point 1600)\n(external-reference 69560 _ITM_deregisterTMCloneTable)\n(external-reference 69568 __cxa_finalize)\n(external-reference 69584 __gmon_start__)\n(external-reference 69600 _ITM_registerTMCloneTable)\n(external-reference 69632 __libc_start_main)\n(external-reference 69640 __cxa_finalize)\n(external-reference 69648 __gmon_start__)\n(external-reference 69656 abort)\n(format elf)\n(is-executable true)\n(is-little-endian true)\n(llvm:base-address 0)\n(llvm:code-entry abort 0 0)\n(llvm:code-entry __cxa_finalize 0 0)\n(llvm:code-entry __libc_start_main 0 0)\n(llvm:code-entry _init 1432 0)\n(llvm:code-entry main 1876 24)\n(llvm:code-entry _start 1600 52)\n(llvm:code-entry abort@GLIBC_2.17 0 0)\n(llvm:code-entry _fini 1900 0)\n(llvm:code-entry __cxa_finalize@GLIBC_2.17 0 0)\n(llvm:code-entry __libc_start_main@GLIBC_2.34 0 0)\n(llvm:code-entry frame_dummy 1872 0)\n(llvm:code-entry __do_global_dtors_aux 1792 0)\n(llvm:code-entry register_tm_clones 1728 0)\n(llvm:code-entry deregister_tm_clones 1680 0)\n(llvm:code-entry call_weak_fn 1652 20)\n(llvm:code-entry .fini 1900 20)\n(llvm:code-entry .text 1600 300)\n(llvm:code-entry .plt 1456 96)\n(llvm:code-entry .init 1432 24)\n(llvm:elf-program-header 08 3520 576)\n(llvm:elf-program-header 07 0 0)\n(llvm:elf-program-header 06 1924 60)\n(llvm:elf-program-header 05 596 68)\n(llvm:elf-program-header 04 3536 480)\n(llvm:elf-program-header 03 3520 624)\n(llvm:elf-program-header 02 0 2164)\n(llvm:elf-program-header 01 568 27)\n(llvm:elf-program-header 00 64 504)\n(llvm:elf-program-header-flags 08 false true false false)\n(llvm:elf-program-header-flags 07 false true true false)\n(llvm:elf-program-header-flags 06 false true false false)\n(llvm:elf-program-header-flags 05 false true false false)\n(llvm:elf-program-header-flags 04 false true true false)\n(llvm:elf-program-header-flags 03 true true true false)\n(llvm:elf-program-header-flags 02 true true false true)\n(llvm:elf-program-header-flags 01 false true false false)\n(llvm:elf-program-header-flags 00 false true false false)\n(llvm:elf-virtual-program-header 08 69056 576)\n(llvm:elf-virtual-program-header 07 0 0)\n(llvm:elf-virtual-program-header 06 1924 60)\n(llvm:elf-virtual-program-header 05 596 68)\n(llvm:elf-virtual-program-header 04 69072 480)\n(llvm:elf-virtual-program-header 03 69056 640)\n(llvm:elf-virtual-program-header 02 0 2164)\n(llvm:elf-virtual-program-header 01 568 27)\n(llvm:elf-virtual-program-header 00 64 504)\n(llvm:entry-point 1600)\n(llvm:name-reference 69656 abort)\n(llvm:name-reference 69648 __gmon_start__)\n(llvm:name-reference 69640 __cxa_finalize)\n(llvm:name-reference 69632 __libc_start_main)\n(llvm:name-reference 69600 _ITM_registerTMCloneTable)\n(llvm:name-reference 69584 __gmon_start__)\n(llvm:name-reference 69568 __cxa_finalize)\n(llvm:name-reference 69560 _ITM_deregisterTMCloneTable)\n(llvm:section-entry .shstrtab 0 259 6977)\n(llvm:section-entry .strtab 0 577 6400)\n(llvm:section-entry .symtab 0 2184 4216)\n(llvm:section-entry .comment 0 71 4144)\n(llvm:section-entry .bss 69680 16 4144)\n(llvm:section-entry .data 69664 16 4128)\n(llvm:section-entry .got.plt 69608 56 4072)\n(llvm:section-entry .got 69552 56 4016)\n(llvm:section-entry .dynamic 69072 480 3536)\n(llvm:section-entry .fini_array 69064 8 3528)\n(llvm:section-entry .init_array 69056 8 3520)\n(llvm:section-entry .eh_frame 1984 180 1984)\n(llvm:section-entry .eh_frame_hdr 1924 60 1924)\n(llvm:section-entry .rodata 1920 4 1920)\n(llvm:section-entry .fini 1900 20 1900)\n(llvm:section-entry .text 1600 300 1600)\n(llvm:section-entry .plt 1456 96 1456)\n(llvm:section-entry .init 1432 24 1432)\n(llvm:section-entry .rela.plt 1336 96 1336)\n(llvm:section-entry .rela.dyn 1120 216 1120)\n(llvm:section-entry .gnu.version_r 1072 48 1072)\n(llvm:section-entry .gnu.version 1054 18 1054)\n(llvm:section-entry .dynstr 912 141 912)\n(llvm:section-entry .dynsym 696 216 696)\n(llvm:section-entry .gnu.hash 664 28 664)\n(llvm:section-entry .note.ABI-tag 632 32 632)\n(llvm:section-entry .note.gnu.build-id 596 36 596)\n(llvm:section-entry .interp 568 27 568)\n(llvm:section-flags .shstrtab true false false)\n(llvm:section-flags .strtab true false false)\n(llvm:section-flags .symtab true false false)\n(llvm:section-flags .comment true false false)\n(llvm:section-flags .bss true true false)\n(llvm:section-flags .data true true false)\n(llvm:section-flags .got.plt true true false)\n(llvm:section-flags .got true true false)\n(llvm:section-flags .dynamic true true false)\n(llvm:section-flags .fini_array true true false)\n(llvm:section-flags .init_array true true false)\n(llvm:section-flags .eh_frame true false false)\n(llvm:section-flags .eh_frame_hdr true false false)\n(llvm:section-flags .rodata true false false)\n(llvm:section-flags .fini true false true)\n(llvm:section-flags .text true false true)\n(llvm:section-flags .plt true false true)\n(llvm:section-flags .init true false true)\n(llvm:section-flags .rela.plt true false false)\n(llvm:section-flags .rela.dyn true false false)\n(llvm:section-flags .gnu.version_r true false false)\n(llvm:section-flags .gnu.version true false false)\n(llvm:section-flags .dynstr true false false)\n(llvm:section-flags .dynsym true false false)\n(llvm:section-flags .gnu.hash true false false)\n(llvm:section-flags .note.ABI-tag true false false)\n(llvm:section-flags .note.gnu.build-id true false false)\n(llvm:section-flags .interp true false false)\n(llvm:symbol-entry abort 0 0 0 0)\n(llvm:symbol-entry __cxa_finalize 0 0 0 0)\n(llvm:symbol-entry __libc_start_main 0 0 0 0)\n(llvm:symbol-entry _init 1432 0 1432 1432)\n(llvm:symbol-entry main 1876 24 1876 1876)\n(llvm:symbol-entry _start 1600 52 1600 1600)\n(llvm:symbol-entry abort@GLIBC_2.17 0 0 0 0)\n(llvm:symbol-entry _fini 1900 0 1900 1900)\n(llvm:symbol-entry __cxa_finalize@GLIBC_2.17 0 0 0 0)\n(llvm:symbol-entry __libc_start_main@GLIBC_2.34 0 0 0 0)\n(llvm:symbol-entry frame_dummy 1872 0 1872 1872)\n(llvm:symbol-entry __do_global_dtors_aux 1792 0 1792 1792)\n(llvm:symbol-entry register_tm_clones 1728 0 1728 1728)\n(llvm:symbol-entry deregister_tm_clones 1680 0 1680 1680)\n(llvm:symbol-entry call_weak_fn 1652 20 1652 1652)\n(mapped 0 2164 0)\n(mapped 69056 624 3520)\n(named-region 0 2164 02)\n(named-region 69056 640 03)\n(named-region 568 27 .interp)\n(named-region 596 36 .note.gnu.build-id)\n(named-region 632 32 .note.ABI-tag)\n(named-region 664 28 .gnu.hash)\n(named-region 696 216 .dynsym)\n(named-region 912 141 .dynstr)\n(named-region 1054 18 .gnu.version)\n(named-region 1072 48 .gnu.version_r)\n(named-region 1120 216 .rela.dyn)\n(named-region 1336 96 .rela.plt)\n(named-region 1432 24 .init)\n(named-region 1456 96 .plt)\n(named-region 1600 300 .text)\n(named-region 1900 20 .fini)\n(named-region 1920 4 .rodata)\n(named-region 1924 60 .eh_frame_hdr)\n(named-region 1984 180 .eh_frame)\n(named-region 69056 8 .init_array)\n(named-region 69064 8 .fini_array)\n(named-region 69072 480 .dynamic)\n(named-region 69552 56 .got)\n(named-region 69608 56 .got.plt)\n(named-region 69664 16 .data)\n(named-region 69680 16 .bss)\n(named-region 0 71 .comment)\n(named-region 0 2184 .symtab)\n(named-region 0 577 .strtab)\n(named-region 0 259 .shstrtab)\n(named-symbol 1652 call_weak_fn)\n(named-symbol 1680 deregister_tm_clones)\n(named-symbol 1728 register_tm_clones)\n(named-symbol 1792 __do_global_dtors_aux)\n(named-symbol 1872 frame_dummy)\n(named-symbol 0 __libc_start_main@GLIBC_2.34)\n(named-symbol 0 __cxa_finalize@GLIBC_2.17)\n(named-symbol 1900 _fini)\n(named-symbol 0 abort@GLIBC_2.17)\n(named-symbol 1600 _start)\n(named-symbol 1876 main)\n(named-symbol 1432 _init)\n(named-symbol 0 __libc_start_main)\n(named-symbol 0 __cxa_finalize)\n(named-symbol 0 abort)\n(require libc.so.6)\n(section 568 27)\n(section 596 36)\n(section 632 32)\n(section 664 28)\n(section 696 216)\n(section 912 141)\n(section 1054 18)\n(section 1072 48)\n(section 1120 216)\n(section 1336 96)\n(section 1432 24)\n(section 1456 96)\n(section 1600 300)\n(section 1900 20)\n(section 1920 4)\n(section 1924 60)\n(section 1984 180)\n(section 69056 8)\n(section 69064 8)\n(section 69072 480)\n(section 69552 56)\n(section 69608 56)\n(section 69664 16)\n(section 69680 16)\n(section 0 71)\n(section 0 2184)\n(section 0 577)\n(section 0 259)\n(segment 0 2164 true false true)\n(segment 69056 640 true true false)\n(subarch v8)\n(symbol-chunk 1652 20 1652)\n(symbol-chunk 1600 52 1600)\n(symbol-chunk 1876 24 1876)\n(symbol-value 1652 1652)\n(symbol-value 1680 1680)\n(symbol-value 1728 1728)\n(symbol-value 1792 1792)\n(symbol-value 1872 1872)\n(symbol-value 1900 1900)\n(symbol-value 1600 1600)\n(symbol-value 1876 1876)\n(symbol-value 1432 1432)\n(symbol-value 0 0)\n(system \"\")\n(vendor \"\")\n"), -Attr("abi-name","\"aarch64-linux-gnu-elf\"")]), -Sections([Section(".shstrtab", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x40\x06\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x48\x1c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x38\x00\x09\x00\x40\x00\x1d\x00\x1c\x00\x06\x00\x00\x00\x04\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x04\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x74\x08\x00\x00\x00\x00\x00\x00\x74\x08\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x01\x00\x00\x00\x06\x00\x00\x00\xc0\x0d\x00\x00\x00\x00\x00\x00\xc0\x0d\x01\x00\x00\x00\x00\x00\xc0\x0d\x01"), -Section(".strtab", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x40\x06\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x48\x1c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x38\x00\x09\x00\x40\x00\x1d\x00\x1c\x00\x06\x00\x00\x00\x04\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x04\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x74\x08\x00\x00\x00\x00\x00\x00\x74\x08\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x01\x00\x00\x00\x06\x00\x00\x00\xc0\x0d\x00\x00\x00\x00\x00\x00\xc0\x0d\x01\x00\x00\x00\x00\x00\xc0\x0d\x01\x00\x00\x00\x00\x00\x70\x02\x00\x00\x00\x00\x00\x00\x80\x02\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x02\x00\x00\x00\x06\x00\x00\x00\xd0\x0d\x00\x00\x00\x00\x00\x00\xd0\x0d\x01\x00\x00\x00\x00\x00\xd0\x0d\x01\x00\x00\x00\x00\x00\xe0\x01\x00\x00\x00\x00\x00\x00\xe0\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x04\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x50\xe5\x74\x64\x04\x00\x00\x00\x84\x07\x00\x00\x00\x00\x00\x00\x84\x07\x00\x00\x00\x00\x00\x00\x84\x07\x00\x00\x00\x00\x00\x00\x3c\x00\x00\x00\x00\x00\x00\x00\x3c\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x51\xe5\x74\x64\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x52\xe5\x74\x64\x04\x00\x00\x00\xc0\x0d\x00\x00\x00\x00\x00\x00\xc0\x0d\x01\x00\x00\x00\x00\x00\xc0\x0d\x01\x00\x00\x00\x00\x00\x40\x02\x00\x00\x00\x00\x00\x00\x40\x02\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x2f\x6c\x69\x62\x2f\x6c\x64\x2d\x6c"), -Section(".comment", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x40\x06\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x48\x1c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x38\x00\x09\x00\x40\x00\x1d\x00\x1c\x00\x06\x00\x00\x00\x04\x00\x00"), -Section(".interp", 0x238, "\x2f\x6c\x69\x62\x2f\x6c\x64\x2d\x6c\x69\x6e\x75\x78\x2d\x61\x61\x72\x63\x68\x36\x34\x2e\x73\x6f\x2e\x31\x00"), -Section(".note.gnu.build-id", 0x254, "\x04\x00\x00\x00\x14\x00\x00\x00\x03\x00\x00\x00\x47\x4e\x55\x00\xcc\xe3\x15\xe0\xb6\x5f\x4f\xf7\x51\x03\x5d\xfc\x4a\x4f\xd3\x4e\xab\x09\xfc\x5e"), -Section(".note.ABI-tag", 0x278, "\x04\x00\x00\x00\x10\x00\x00\x00\x01\x00\x00\x00\x47\x4e\x55\x00\x00\x00\x00\x00\x03\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00"), -Section(".gnu.hash", 0x298, "\x01\x00\x00\x00\x01\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".dynsym", 0x2B8, "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x0b\x00\x98\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x17\x00\x20\x10\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x48\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x22\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x22\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x73\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".dynstr", 0x390, "\x00\x5f\x5f\x63\x78\x61\x5f\x66\x69\x6e\x61\x6c\x69\x7a\x65\x00\x5f\x5f\x6c\x69\x62\x63\x5f\x73\x74\x61\x72\x74\x5f\x6d\x61\x69\x6e\x00\x61\x62\x6f\x72\x74\x00\x6c\x69\x62\x63\x2e\x73\x6f\x2e\x36\x00\x47\x4c\x49\x42\x43\x5f\x32\x2e\x31\x37\x00\x47\x4c\x49\x42\x43\x5f\x32\x2e\x33\x34\x00\x5f\x49\x54\x4d\x5f\x64\x65\x72\x65\x67\x69\x73\x74\x65\x72\x54\x4d\x43\x6c\x6f\x6e\x65\x54\x61\x62\x6c\x65\x00\x5f\x5f\x67\x6d\x6f\x6e\x5f\x73\x74\x61\x72\x74\x5f\x5f\x00\x5f\x49\x54\x4d\x5f\x72\x65\x67\x69\x73\x74\x65\x72\x54\x4d\x43\x6c\x6f\x6e\x65\x54\x61\x62\x6c\x65\x00"), -Section(".gnu.version", 0x41E, "\x00\x00\x00\x00\x00\x00\x02\x00\x01\x00\x03\x00\x01\x00\x03\x00\x01\x00"), -Section(".gnu.version_r", 0x430, "\x01\x00\x02\x00\x28\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x97\x91\x96\x06\x00\x00\x03\x00\x32\x00\x00\x00\x10\x00\x00\x00\xb4\x91\x96\x06\x00\x00\x02\x00\x3d\x00\x00\x00\x00\x00\x00\x00"), -Section(".rela.dyn", 0x460, "\xc0\x0d\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x50\x07\x00\x00\x00\x00\x00\x00\xc8\x0d\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\xc8\x0f\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x34\x10\x01\x00\x00\x00\x00\x00\xd8\x0f\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x54\x07\x00\x00\x00\x00\x00\x00\x28\x10\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x28\x10\x01\x00\x00\x00\x00\x00\xb8\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xc0\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xd0\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe0\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".rela.plt", 0x538, "\x00\x10\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x08\x10\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x10\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x18\x10\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".init", 0x598, "\x1f\x20\x03\xd5\xfd\x7b\xbf\xa9\xfd\x03\x00\x91\x34\x00\x00\x94\xfd\x7b\xc1\xa8\xc0\x03\x5f\xd6"), -Section(".plt", 0x5B0, "\xf0\x7b\xbf\xa9\x90\x00\x00\x90\x11\xfe\x47\xf9\x10\xe2\x3f\x91\x20\x02\x1f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x90\x00\x00\xb0\x11\x02\x40\xf9\x10\x02\x00\x91\x20\x02\x1f\xd6\x90\x00\x00\xb0\x11\x06\x40\xf9\x10\x22\x00\x91\x20\x02\x1f\xd6\x90\x00\x00\xb0\x11\x0a\x40\xf9\x10\x42\x00\x91\x20\x02\x1f\xd6\x90\x00\x00\xb0\x11\x0e\x40\xf9\x10\x62\x00\x91\x20\x02\x1f\xd6"), -Section(".text", 0x640, "\x1f\x20\x03\xd5\x1d\x00\x80\xd2\x1e\x00\x80\xd2\xe5\x03\x00\xaa\xe1\x03\x40\xf9\xe2\x23\x00\x91\xe6\x03\x00\x91\x80\x00\x00\x90\x00\xec\x47\xf9\x03\x00\x80\xd2\x04\x00\x80\xd2\xd9\xff\xff\x97\xe4\xff\xff\x97\x80\x00\x00\x90\x00\xe8\x47\xf9\x40\x00\x00\xb4\xdc\xff\xff\x17\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x80\x00\x00\xb0\x00\xc0\x00\x91\x81\x00\x00\xb0\x21\xc0\x00\x91\x3f\x00\x00\xeb\xc0\x00\x00\x54\x81\x00\x00\x90\x21\xdc\x47\xf9\x61\x00\x00\xb4\xf0\x03\x01\xaa\x00\x02\x1f\xd6\xc0\x03\x5f\xd6\x80\x00\x00\xb0\x00\xc0\x00\x91\x81\x00\x00\xb0\x21\xc0\x00\x91\x21\x00\x00\xcb\x22\xfc\x7f\xd3\x41\x0c\x81\x8b\x21\xfc\x41\x93\xc1\x00\x00\xb4\x82\x00\x00\x90\x42\xf0\x47\xf9\x62\x00\x00\xb4\xf0\x03\x02\xaa\x00\x02\x1f\xd6\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\xfd\x7b\xbe\xa9\xfd\x03\x00\x91\xf3\x0b\x00\xf9\x93\x00\x00\xb0\x60\xc2\x40\x39\x40\x01\x00\x35\x80\x00\x00\x90\x00\xe0\x47\xf9\x80\x00\x00\xb4\x80\x00\x00\xb0\x00\x14\x40\xf9\xad\xff\xff\x97\xd8\xff\xff\x97\x20\x00\x80\x52\x60\xc2\x00\x39\xf3\x0b\x40\xf9\xfd\x7b\xc2\xa8\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\xdc\xff\xff\x17\x89\x00\x00\x90\x29\xe5\x47\xf9\x28\x00\x80\x52\x28\x01\x00\xb9\xe0\x03\x1f\x2a\xc0\x03\x5f\xd6"), -Section(".fini", 0x76C, "\x1f\x20\x03\xd5\xfd\x7b\xbf\xa9\xfd\x03\x00\x91\xfd\x7b\xc1\xa8\xc0\x03\x5f\xd6"), -Section(".rodata", 0x780, "\x01\x00\x02\x00"), -Section(".eh_frame_hdr", 0x784, "\x01\x1b\x03\x3b\x38\x00\x00\x00\x06\x00\x00\x00\xbc\xfe\xff\xff\x50\x00\x00\x00\x0c\xff\xff\xff\x64\x00\x00\x00\x3c\xff\xff\xff\x78\x00\x00\x00\x7c\xff\xff\xff\x8c\x00\x00\x00\xcc\xff\xff\xff\xb0\x00\x00\x00\xd0\xff\xff\xff\xd8\x00\x00\x00"), -Section(".eh_frame", 0x7C0, "\x10\x00\x00\x00\x00\x00\x00\x00\x01\x7a\x52\x00\x04\x78\x1e\x01\x1b\x0c\x1f\x00\x10\x00\x00\x00\x18\x00\x00\x00\x64\xfe\xff\xff\x34\x00\x00\x00\x00\x41\x07\x1e\x10\x00\x00\x00\x2c\x00\x00\x00\xa0\xfe\xff\xff\x30\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x40\x00\x00\x00\xbc\xfe\xff\xff\x3c\x00\x00\x00\x00\x00\x00\x00\x20\x00\x00\x00\x54\x00\x00\x00\xe8\xfe\xff\xff\x48\x00\x00\x00\x00\x41\x0e\x20\x9d\x04\x9e\x03\x42\x93\x02\x4e\xde\xdd\xd3\x0e\x00\x00\x00\x00\x10\x00\x00\x00\x78\x00\x00\x00\x14\xff\xff\xff\x04\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x01\x7a\x52\x00\x01\x7c\x1e\x01\x1b\x0c\x1f\x00\x10\x00\x00\x00\x18\x00\x00\x00\xf0\xfe\xff\xff\x18\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".fini_array", 0x10DC8, "\x00\x07\x00\x00\x00\x00\x00\x00"), -Section(".dynamic", 0x10DD0, "\x01\x00\x00\x00\x00\x00\x00\x00\x28\x00\x00\x00\x00\x00\x00\x00\x0c\x00\x00\x00\x00\x00\x00\x00\x98\x05\x00\x00\x00\x00\x00\x00\x0d\x00\x00\x00\x00\x00\x00\x00\x6c\x07\x00\x00\x00\x00\x00\x00\x19\x00\x00\x00\x00\x00\x00\x00\xc0\x0d\x01\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x1a\x00\x00\x00\x00\x00\x00\x00\xc8\x0d\x01\x00\x00\x00\x00\x00\x1c\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\xf5\xfe\xff\x6f\x00\x00\x00\x00\x98\x02\x00\x00\x00\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x90\x03\x00\x00\x00\x00\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\xb8\x02\x00\x00\x00\x00\x00\x00\x0a\x00\x00\x00\x00\x00\x00\x00\x8d\x00\x00\x00\x00\x00\x00\x00\x0b\x00\x00\x00\x00\x00\x00\x00\x18\x00\x00\x00\x00\x00\x00\x00\x15\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\xe8\x0f\x01\x00\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x60\x00\x00\x00\x00\x00\x00\x00\x14\x00\x00\x00\x00\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x17\x00\x00\x00\x00\x00\x00\x00\x38\x05\x00\x00\x00\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x60\x04\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\xd8\x00\x00\x00\x00\x00\x00\x00\x09\x00\x00\x00\x00\x00\x00\x00\x18\x00\x00\x00\x00\x00\x00\x00\xfb\xff\xff\x6f\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\xfe\xff\xff\x6f\x00\x00\x00\x00\x30\x04\x00\x00\x00\x00\x00\x00\xff\xff\xff\x6f\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\xf0\xff\xff\x6f\x00\x00\x00\x00\x1e\x04\x00\x00\x00\x00\x00\x00\xf9\xff\xff\x6f\x00\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".init_array", 0x10DC0, "\x50\x07\x00\x00\x00\x00\x00\x00"), -Section(".got", 0x10FB0, "\xd0\x0d\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x34\x10\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x54\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".got.plt", 0x10FE8, "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xb0\x05\x00\x00\x00\x00\x00\x00\xb0\x05\x00\x00\x00\x00\x00\x00\xb0\x05\x00\x00\x00\x00\x00\x00\xb0\x05\x00\x00\x00\x00\x00\x00"), -Section(".data", 0x11020, "\x00\x00\x00\x00\x00\x00\x00\x00\x28\x10\x01\x00\x00\x00\x00\x00")]), -Memmap([Annotation(Region(0x0,0x873), Attr("segment","02 0 2164")), -Annotation(Region(0x640,0x673), Attr("symbol","\"_start\"")), -Annotation(Region(0x0,0x102), Attr("section","\".shstrtab\"")), -Annotation(Region(0x0,0x240), Attr("section","\".strtab\"")), -Annotation(Region(0x0,0x46), Attr("section","\".comment\"")), -Annotation(Region(0x238,0x252), Attr("section","\".interp\"")), -Annotation(Region(0x254,0x277), Attr("section","\".note.gnu.build-id\"")), -Annotation(Region(0x278,0x297), Attr("section","\".note.ABI-tag\"")), -Annotation(Region(0x298,0x2B3), Attr("section","\".gnu.hash\"")), -Annotation(Region(0x2B8,0x38F), Attr("section","\".dynsym\"")), -Annotation(Region(0x390,0x41C), Attr("section","\".dynstr\"")), -Annotation(Region(0x41E,0x42F), Attr("section","\".gnu.version\"")), -Annotation(Region(0x430,0x45F), Attr("section","\".gnu.version_r\"")), -Annotation(Region(0x460,0x537), Attr("section","\".rela.dyn\"")), -Annotation(Region(0x538,0x597), Attr("section","\".rela.plt\"")), -Annotation(Region(0x598,0x5AF), Attr("section","\".init\"")), -Annotation(Region(0x5B0,0x60F), Attr("section","\".plt\"")), -Annotation(Region(0x598,0x5AF), Attr("code-region","()")), -Annotation(Region(0x5B0,0x60F), Attr("code-region","()")), -Annotation(Region(0x640,0x673), Attr("symbol-info","_start 0x640 52")), -Annotation(Region(0x674,0x687), Attr("symbol","\"call_weak_fn\"")), -Annotation(Region(0x674,0x687), Attr("symbol-info","call_weak_fn 0x674 20")), -Annotation(Region(0x640,0x76B), Attr("section","\".text\"")), -Annotation(Region(0x640,0x76B), Attr("code-region","()")), -Annotation(Region(0x754,0x76B), Attr("symbol","\"main\"")), -Annotation(Region(0x754,0x76B), Attr("symbol-info","main 0x754 24")), -Annotation(Region(0x76C,0x77F), Attr("section","\".fini\"")), -Annotation(Region(0x76C,0x77F), Attr("code-region","()")), -Annotation(Region(0x780,0x783), Attr("section","\".rodata\"")), -Annotation(Region(0x784,0x7BF), Attr("section","\".eh_frame_hdr\"")), -Annotation(Region(0x7C0,0x873), Attr("section","\".eh_frame\"")), -Annotation(Region(0x10DC0,0x1102F), Attr("segment","03 0x10DC0 640")), -Annotation(Region(0x10DC8,0x10DCF), Attr("section","\".fini_array\"")), -Annotation(Region(0x10DD0,0x10FAF), Attr("section","\".dynamic\"")), -Annotation(Region(0x10DC0,0x10DC7), Attr("section","\".init_array\"")), -Annotation(Region(0x10FB0,0x10FE7), Attr("section","\".got\"")), -Annotation(Region(0x10FE8,0x1101F), Attr("section","\".got.plt\"")), -Annotation(Region(0x11020,0x1102F), Attr("section","\".data\""))]), -Program(Tid(1_348, "%00000544"), Attrs([]), - Subs([Sub(Tid(1_298, "@__cxa_finalize"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x5E0"), -Attr("stub","()")]), "__cxa_finalize", Args([Arg(Tid(1_349, "%00000545"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("__cxa_finalize_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(796, "@__cxa_finalize"), - Attrs([Attr("address","0x5E0")]), Phis([]), -Defs([Def(Tid(1_044, "%00000414"), Attrs([Attr("address","0x5E0"), -Attr("insn","adrp x16, #69632")]), Var("R16",Imm(64)), Int(69632,64)), -Def(Tid(1_051, "%0000041b"), Attrs([Attr("address","0x5E4"), -Attr("insn","ldr x17, [x16, #0x8]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(1_057, "%00000421"), Attrs([Attr("address","0x5E8"), -Attr("insn","add x16, x16, #0x8")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(8,64)))]), Jmps([Call(Tid(1_062, "%00000426"), - Attrs([Attr("address","0x5EC"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), -Sub(Tid(1_299, "@__do_global_dtors_aux"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x700")]), - "__do_global_dtors_aux", Args([Arg(Tid(1_350, "%00000546"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("__do_global_dtors_aux_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(614, "@__do_global_dtors_aux"), - Attrs([Attr("address","0x700")]), Phis([]), Defs([Def(Tid(618, "%0000026a"), - Attrs([Attr("address","0x700"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("#3",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(18446744073709551584,64))), -Def(Tid(624, "%00000270"), Attrs([Attr("address","0x700"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("#3",Imm(64)),Var("R29",Imm(64)),LittleEndian(),64)), -Def(Tid(630, "%00000276"), Attrs([Attr("address","0x700"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("#3",Imm(64)),Int(8,64)),Var("R30",Imm(64)),LittleEndian(),64)), -Def(Tid(634, "%0000027a"), Attrs([Attr("address","0x700"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("R31",Imm(64)), -Var("#3",Imm(64))), Def(Tid(640, "%00000280"), - Attrs([Attr("address","0x704"), Attr("insn","mov x29, sp")]), - Var("R29",Imm(64)), Var("R31",Imm(64))), Def(Tid(648, "%00000288"), - Attrs([Attr("address","0x708"), Attr("insn","str x19, [sp, #0x10]")]), - Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(16,64)),Var("R19",Imm(64)),LittleEndian(),64)), -Def(Tid(653, "%0000028d"), Attrs([Attr("address","0x70C"), -Attr("insn","adrp x19, #69632")]), Var("R19",Imm(64)), Int(69632,64)), -Def(Tid(660, "%00000294"), Attrs([Attr("address","0x710"), -Attr("insn","ldrb w0, [x19, #0x30]")]), Var("R0",Imm(64)), -UNSIGNED(64,Load(Var("mem",Mem(64,8)),PLUS(Var("R19",Imm(64)),Int(48,64)),LittleEndian(),8)))]), -Jmps([Goto(Tid(667, "%0000029b"), Attrs([Attr("address","0x714"), -Attr("insn","cbnz w0, #0x28")]), - NEQ(Extract(31,0,Var("R0",Imm(64))),Int(0,32)), -Direct(Tid(665, "%00000299"))), Goto(Tid(1_338, "%0000053a"), Attrs([]), - Int(1,1), Direct(Tid(741, "%000002e5")))])), Blk(Tid(741, "%000002e5"), - Attrs([Attr("address","0x718")]), Phis([]), Defs([Def(Tid(744, "%000002e8"), - Attrs([Attr("address","0x718"), Attr("insn","adrp x0, #65536")]), - Var("R0",Imm(64)), Int(65536,64)), Def(Tid(751, "%000002ef"), - Attrs([Attr("address","0x71C"), Attr("insn","ldr x0, [x0, #0xfc0]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(4032,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(757, "%000002f5"), Attrs([Attr("address","0x720"), -Attr("insn","cbz x0, #0x10")]), EQ(Var("R0",Imm(64)),Int(0,64)), -Direct(Tid(755, "%000002f3"))), Goto(Tid(1_339, "%0000053b"), Attrs([]), - Int(1,1), Direct(Tid(780, "%0000030c")))])), Blk(Tid(780, "%0000030c"), - Attrs([Attr("address","0x724")]), Phis([]), Defs([Def(Tid(783, "%0000030f"), - Attrs([Attr("address","0x724"), Attr("insn","adrp x0, #69632")]), - Var("R0",Imm(64)), Int(69632,64)), Def(Tid(790, "%00000316"), - Attrs([Attr("address","0x728"), Attr("insn","ldr x0, [x0, #0x28]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(40,64)),LittleEndian(),64)), -Def(Tid(795, "%0000031b"), Attrs([Attr("address","0x72C"), -Attr("insn","bl #-0x14c")]), Var("R30",Imm(64)), Int(1840,64))]), -Jmps([Call(Tid(798, "%0000031e"), Attrs([Attr("address","0x72C"), -Attr("insn","bl #-0x14c")]), Int(1,1), -(Direct(Tid(1_298, "@__cxa_finalize")),Direct(Tid(755, "%000002f3"))))])), -Blk(Tid(755, "%000002f3"), Attrs([Attr("address","0x730")]), Phis([]), -Defs([Def(Tid(763, "%000002fb"), Attrs([Attr("address","0x730"), -Attr("insn","bl #-0xa0")]), Var("R30",Imm(64)), Int(1844,64))]), -Jmps([Call(Tid(765, "%000002fd"), Attrs([Attr("address","0x730"), -Attr("insn","bl #-0xa0")]), Int(1,1), -(Direct(Tid(1_312, "@deregister_tm_clones")),Direct(Tid(767, "%000002ff"))))])), -Blk(Tid(767, "%000002ff"), Attrs([Attr("address","0x734")]), Phis([]), -Defs([Def(Tid(770, "%00000302"), Attrs([Attr("address","0x734"), -Attr("insn","mov w0, #0x1")]), Var("R0",Imm(64)), Int(1,64)), -Def(Tid(778, "%0000030a"), Attrs([Attr("address","0x738"), -Attr("insn","strb w0, [x19, #0x30]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R19",Imm(64)),Int(48,64)),Extract(7,0,Var("R0",Imm(64))),LittleEndian(),8))]), -Jmps([Goto(Tid(1_340, "%0000053c"), Attrs([]), Int(1,1), -Direct(Tid(665, "%00000299")))])), Blk(Tid(665, "%00000299"), - Attrs([Attr("address","0x73C")]), Phis([]), Defs([Def(Tid(675, "%000002a3"), - Attrs([Attr("address","0x73C"), Attr("insn","ldr x19, [sp, #0x10]")]), - Var("R19",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(16,64)),LittleEndian(),64)), -Def(Tid(682, "%000002aa"), Attrs([Attr("address","0x740"), -Attr("insn","ldp x29, x30, [sp], #0x20")]), Var("R29",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(687, "%000002af"), Attrs([Attr("address","0x740"), -Attr("insn","ldp x29, x30, [sp], #0x20")]), Var("R30",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(691, "%000002b3"), Attrs([Attr("address","0x740"), -Attr("insn","ldp x29, x30, [sp], #0x20")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(32,64)))]), Jmps([Call(Tid(696, "%000002b8"), - Attrs([Attr("address","0x744"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), Sub(Tid(1_303, "@__libc_start_main"), - Attrs([Attr("c.proto","signed (*)(signed (*)(signed , char** , char** );* main, signed , char** , \nvoid* auxv)"), -Attr("address","0x5D0"), Attr("stub","()")]), "__libc_start_main", - Args([Arg(Tid(1_351, "%00000547"), - Attrs([Attr("c.layout","**[ : 64]"), -Attr("c.data","Top:u64 ptr ptr"), -Attr("c.type","signed (*)(signed , char** , char** );*")]), - Var("__libc_start_main_main",Imm(64)), Var("R0",Imm(64)), In()), -Arg(Tid(1_352, "%00000548"), Attrs([Attr("c.layout","[signed : 32]"), -Attr("c.data","Top:u32"), Attr("c.type","signed")]), - Var("__libc_start_main_arg2",Imm(32)), LOW(32,Var("R1",Imm(64))), In()), -Arg(Tid(1_353, "%00000549"), Attrs([Attr("c.layout","**[char : 8]"), -Attr("c.data","Top:u8 ptr ptr"), Attr("c.type","char**")]), - Var("__libc_start_main_arg3",Imm(64)), Var("R2",Imm(64)), Both()), -Arg(Tid(1_354, "%0000054a"), Attrs([Attr("c.layout","*[ : 8]"), -Attr("c.data","{} ptr"), Attr("c.type","void*")]), - Var("__libc_start_main_auxv",Imm(64)), Var("R3",Imm(64)), Both()), -Arg(Tid(1_355, "%0000054b"), Attrs([Attr("c.layout","[signed : 32]"), -Attr("c.data","Top:u32"), Attr("c.type","signed")]), - Var("__libc_start_main_result",Imm(32)), LOW(32,Var("R0",Imm(64))), -Out())]), Blks([Blk(Tid(447, "@__libc_start_main"), - Attrs([Attr("address","0x5D0")]), Phis([]), -Defs([Def(Tid(1_022, "%000003fe"), Attrs([Attr("address","0x5D0"), -Attr("insn","adrp x16, #69632")]), Var("R16",Imm(64)), Int(69632,64)), -Def(Tid(1_029, "%00000405"), Attrs([Attr("address","0x5D4"), -Attr("insn","ldr x17, [x16]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R16",Imm(64)),LittleEndian(),64)), -Def(Tid(1_035, "%0000040b"), Attrs([Attr("address","0x5D8"), -Attr("insn","add x16, x16, #0x0")]), Var("R16",Imm(64)), -Var("R16",Imm(64)))]), Jmps([Call(Tid(1_040, "%00000410"), - Attrs([Attr("address","0x5DC"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), Sub(Tid(1_304, "@_fini"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x76C")]), - "_fini", Args([Arg(Tid(1_356, "%0000054c"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("_fini_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(31, "@_fini"), - Attrs([Attr("address","0x76C")]), Phis([]), Defs([Def(Tid(37, "%00000025"), - Attrs([Attr("address","0x770"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("#0",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(18446744073709551600,64))), -Def(Tid(43, "%0000002b"), Attrs([Attr("address","0x770"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("#0",Imm(64)),Var("R29",Imm(64)),LittleEndian(),64)), -Def(Tid(49, "%00000031"), Attrs([Attr("address","0x770"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("#0",Imm(64)),Int(8,64)),Var("R30",Imm(64)),LittleEndian(),64)), -Def(Tid(53, "%00000035"), Attrs([Attr("address","0x770"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("R31",Imm(64)), -Var("#0",Imm(64))), Def(Tid(59, "%0000003b"), Attrs([Attr("address","0x774"), -Attr("insn","mov x29, sp")]), Var("R29",Imm(64)), Var("R31",Imm(64))), -Def(Tid(66, "%00000042"), Attrs([Attr("address","0x778"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R29",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(71, "%00000047"), Attrs([Attr("address","0x778"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R30",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(75, "%0000004b"), Attrs([Attr("address","0x778"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(16,64)))]), Jmps([Call(Tid(80, "%00000050"), - Attrs([Attr("address","0x77C"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), Sub(Tid(1_305, "@_init"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x598")]), - "_init", Args([Arg(Tid(1_357, "%0000054d"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("_init_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(1_134, "@_init"), - Attrs([Attr("address","0x598")]), Phis([]), -Defs([Def(Tid(1_140, "%00000474"), Attrs([Attr("address","0x59C"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("#5",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(18446744073709551600,64))), -Def(Tid(1_146, "%0000047a"), Attrs([Attr("address","0x59C"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("#5",Imm(64)),Var("R29",Imm(64)),LittleEndian(),64)), -Def(Tid(1_152, "%00000480"), Attrs([Attr("address","0x59C"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("#5",Imm(64)),Int(8,64)),Var("R30",Imm(64)),LittleEndian(),64)), -Def(Tid(1_156, "%00000484"), Attrs([Attr("address","0x59C"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("R31",Imm(64)), -Var("#5",Imm(64))), Def(Tid(1_162, "%0000048a"), - Attrs([Attr("address","0x5A0"), Attr("insn","mov x29, sp")]), - Var("R29",Imm(64)), Var("R31",Imm(64))), Def(Tid(1_167, "%0000048f"), - Attrs([Attr("address","0x5A4"), Attr("insn","bl #0xd0")]), - Var("R30",Imm(64)), Int(1448,64))]), Jmps([Call(Tid(1_169, "%00000491"), - Attrs([Attr("address","0x5A4"), Attr("insn","bl #0xd0")]), Int(1,1), -(Direct(Tid(1_310, "@call_weak_fn")),Direct(Tid(1_171, "%00000493"))))])), -Blk(Tid(1_171, "%00000493"), Attrs([Attr("address","0x5A8")]), Phis([]), -Defs([Def(Tid(1_176, "%00000498"), Attrs([Attr("address","0x5A8"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R29",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(1_181, "%0000049d"), Attrs([Attr("address","0x5A8"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R30",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(1_185, "%000004a1"), Attrs([Attr("address","0x5A8"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(16,64)))]), Jmps([Call(Tid(1_190, "%000004a6"), - Attrs([Attr("address","0x5AC"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), Sub(Tid(1_306, "@_start"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x640"), -Attr("entry-point","()")]), "_start", Args([Arg(Tid(1_358, "%0000054e"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("_start_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(384, "@_start"), - Attrs([Attr("address","0x640")]), Phis([]), Defs([Def(Tid(389, "%00000185"), - Attrs([Attr("address","0x644"), Attr("insn","mov x29, #0x0")]), - Var("R29",Imm(64)), Int(0,64)), Def(Tid(394, "%0000018a"), - Attrs([Attr("address","0x648"), Attr("insn","mov x30, #0x0")]), - Var("R30",Imm(64)), Int(0,64)), Def(Tid(400, "%00000190"), - Attrs([Attr("address","0x64C"), Attr("insn","mov x5, x0")]), - Var("R5",Imm(64)), Var("R0",Imm(64))), Def(Tid(407, "%00000197"), - Attrs([Attr("address","0x650"), Attr("insn","ldr x1, [sp]")]), - Var("R1",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(413, "%0000019d"), Attrs([Attr("address","0x654"), -Attr("insn","add x2, sp, #0x8")]), Var("R2",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(8,64))), Def(Tid(419, "%000001a3"), - Attrs([Attr("address","0x658"), Attr("insn","mov x6, sp")]), - Var("R6",Imm(64)), Var("R31",Imm(64))), Def(Tid(424, "%000001a8"), - Attrs([Attr("address","0x65C"), Attr("insn","adrp x0, #65536")]), - Var("R0",Imm(64)), Int(65536,64)), Def(Tid(431, "%000001af"), - Attrs([Attr("address","0x660"), Attr("insn","ldr x0, [x0, #0xfd8]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(4056,64)),LittleEndian(),64)), -Def(Tid(436, "%000001b4"), Attrs([Attr("address","0x664"), -Attr("insn","mov x3, #0x0")]), Var("R3",Imm(64)), Int(0,64)), -Def(Tid(441, "%000001b9"), Attrs([Attr("address","0x668"), -Attr("insn","mov x4, #0x0")]), Var("R4",Imm(64)), Int(0,64)), -Def(Tid(446, "%000001be"), Attrs([Attr("address","0x66C"), -Attr("insn","bl #-0x9c")]), Var("R30",Imm(64)), Int(1648,64))]), -Jmps([Call(Tid(449, "%000001c1"), Attrs([Attr("address","0x66C"), -Attr("insn","bl #-0x9c")]), Int(1,1), -(Direct(Tid(1_303, "@__libc_start_main")),Direct(Tid(451, "%000001c3"))))])), -Blk(Tid(451, "%000001c3"), Attrs([Attr("address","0x670")]), Phis([]), -Defs([Def(Tid(454, "%000001c6"), Attrs([Attr("address","0x670"), -Attr("insn","bl #-0x70")]), Var("R30",Imm(64)), Int(1652,64))]), -Jmps([Call(Tid(457, "%000001c9"), Attrs([Attr("address","0x670"), -Attr("insn","bl #-0x70")]), Int(1,1), -(Direct(Tid(1_309, "@abort")),Direct(Tid(1_341, "%0000053d"))))])), -Blk(Tid(1_341, "%0000053d"), Attrs([]), Phis([]), Defs([]), -Jmps([Call(Tid(1_342, "%0000053e"), Attrs([]), Int(1,1), -(Direct(Tid(1_310, "@call_weak_fn")),))]))])), Sub(Tid(1_309, "@abort"), - Attrs([Attr("noreturn","()"), Attr("c.proto","void (*)(void)"), -Attr("address","0x600"), Attr("stub","()")]), "abort", Args([]), -Blks([Blk(Tid(455, "@abort"), Attrs([Attr("address","0x600")]), Phis([]), -Defs([Def(Tid(1_088, "%00000440"), Attrs([Attr("address","0x600"), -Attr("insn","adrp x16, #69632")]), Var("R16",Imm(64)), Int(69632,64)), -Def(Tid(1_095, "%00000447"), Attrs([Attr("address","0x604"), -Attr("insn","ldr x17, [x16, #0x18]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(24,64)),LittleEndian(),64)), -Def(Tid(1_101, "%0000044d"), Attrs([Attr("address","0x608"), -Attr("insn","add x16, x16, #0x18")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(24,64)))]), Jmps([Call(Tid(1_106, "%00000452"), - Attrs([Attr("address","0x60C"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), Sub(Tid(1_310, "@call_weak_fn"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x674")]), - "call_weak_fn", Args([Arg(Tid(1_359, "%0000054f"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("call_weak_fn_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(459, "@call_weak_fn"), - Attrs([Attr("address","0x674")]), Phis([]), Defs([Def(Tid(462, "%000001ce"), - Attrs([Attr("address","0x674"), Attr("insn","adrp x0, #65536")]), - Var("R0",Imm(64)), Int(65536,64)), Def(Tid(469, "%000001d5"), - Attrs([Attr("address","0x678"), Attr("insn","ldr x0, [x0, #0xfd0]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(4048,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(475, "%000001db"), Attrs([Attr("address","0x67C"), -Attr("insn","cbz x0, #0x8")]), EQ(Var("R0",Imm(64)),Int(0,64)), -Direct(Tid(473, "%000001d9"))), Goto(Tid(1_343, "%0000053f"), Attrs([]), - Int(1,1), Direct(Tid(860, "%0000035c")))])), Blk(Tid(473, "%000001d9"), - Attrs([Attr("address","0x684")]), Phis([]), Defs([]), -Jmps([Call(Tid(481, "%000001e1"), Attrs([Attr("address","0x684"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))])), -Blk(Tid(860, "%0000035c"), Attrs([Attr("address","0x680")]), Phis([]), -Defs([]), Jmps([Goto(Tid(863, "%0000035f"), Attrs([Attr("address","0x680"), -Attr("insn","b #-0x90")]), Int(1,1), Direct(Tid(861, "@__gmon_start__")))])), -Blk(Tid(861, "@__gmon_start__"), Attrs([Attr("address","0x5F0")]), Phis([]), -Defs([Def(Tid(1_066, "%0000042a"), Attrs([Attr("address","0x5F0"), -Attr("insn","adrp x16, #69632")]), Var("R16",Imm(64)), Int(69632,64)), -Def(Tid(1_073, "%00000431"), Attrs([Attr("address","0x5F4"), -Attr("insn","ldr x17, [x16, #0x10]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(16,64)),LittleEndian(),64)), -Def(Tid(1_079, "%00000437"), Attrs([Attr("address","0x5F8"), -Attr("insn","add x16, x16, #0x10")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(16,64)))]), Jmps([Call(Tid(1_084, "%0000043c"), - Attrs([Attr("address","0x5FC"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), -Sub(Tid(1_312, "@deregister_tm_clones"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x690")]), - "deregister_tm_clones", Args([Arg(Tid(1_360, "%00000550"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("deregister_tm_clones_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(487, "@deregister_tm_clones"), - Attrs([Attr("address","0x690")]), Phis([]), Defs([Def(Tid(490, "%000001ea"), - Attrs([Attr("address","0x690"), Attr("insn","adrp x0, #69632")]), - Var("R0",Imm(64)), Int(69632,64)), Def(Tid(496, "%000001f0"), - Attrs([Attr("address","0x694"), Attr("insn","add x0, x0, #0x30")]), - Var("R0",Imm(64)), PLUS(Var("R0",Imm(64)),Int(48,64))), -Def(Tid(501, "%000001f5"), Attrs([Attr("address","0x698"), -Attr("insn","adrp x1, #69632")]), Var("R1",Imm(64)), Int(69632,64)), -Def(Tid(507, "%000001fb"), Attrs([Attr("address","0x69C"), -Attr("insn","add x1, x1, #0x30")]), Var("R1",Imm(64)), -PLUS(Var("R1",Imm(64)),Int(48,64))), Def(Tid(513, "%00000201"), - Attrs([Attr("address","0x6A0"), Attr("insn","cmp x1, x0")]), - Var("#1",Imm(64)), NOT(Var("R0",Imm(64)))), Def(Tid(518, "%00000206"), - Attrs([Attr("address","0x6A0"), Attr("insn","cmp x1, x0")]), - Var("#2",Imm(64)), PLUS(Var("R1",Imm(64)),NOT(Var("R0",Imm(64))))), -Def(Tid(524, "%0000020c"), Attrs([Attr("address","0x6A0"), -Attr("insn","cmp x1, x0")]), Var("VF",Imm(1)), -NEQ(SIGNED(65,PLUS(Var("#2",Imm(64)),Int(1,64))),PLUS(PLUS(SIGNED(65,Var("R1",Imm(64))),SIGNED(65,Var("#1",Imm(64)))),Int(1,65)))), -Def(Tid(530, "%00000212"), Attrs([Attr("address","0x6A0"), -Attr("insn","cmp x1, x0")]), Var("CF",Imm(1)), -NEQ(UNSIGNED(65,PLUS(Var("#2",Imm(64)),Int(1,64))),PLUS(PLUS(UNSIGNED(65,Var("R1",Imm(64))),UNSIGNED(65,Var("#1",Imm(64)))),Int(1,65)))), -Def(Tid(534, "%00000216"), Attrs([Attr("address","0x6A0"), -Attr("insn","cmp x1, x0")]), Var("ZF",Imm(1)), -EQ(PLUS(Var("#2",Imm(64)),Int(1,64)),Int(0,64))), Def(Tid(538, "%0000021a"), - Attrs([Attr("address","0x6A0"), Attr("insn","cmp x1, x0")]), - Var("NF",Imm(1)), Extract(63,63,PLUS(Var("#2",Imm(64)),Int(1,64))))]), -Jmps([Goto(Tid(544, "%00000220"), Attrs([Attr("address","0x6A4"), -Attr("insn","b.eq #0x18")]), EQ(Var("ZF",Imm(1)),Int(1,1)), -Direct(Tid(542, "%0000021e"))), Goto(Tid(1_344, "%00000540"), Attrs([]), - Int(1,1), Direct(Tid(830, "%0000033e")))])), Blk(Tid(830, "%0000033e"), - Attrs([Attr("address","0x6A8")]), Phis([]), Defs([Def(Tid(833, "%00000341"), - Attrs([Attr("address","0x6A8"), Attr("insn","adrp x1, #65536")]), - Var("R1",Imm(64)), Int(65536,64)), Def(Tid(840, "%00000348"), - Attrs([Attr("address","0x6AC"), Attr("insn","ldr x1, [x1, #0xfb8]")]), - Var("R1",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R1",Imm(64)),Int(4024,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(845, "%0000034d"), Attrs([Attr("address","0x6B0"), -Attr("insn","cbz x1, #0xc")]), EQ(Var("R1",Imm(64)),Int(0,64)), -Direct(Tid(542, "%0000021e"))), Goto(Tid(1_345, "%00000541"), Attrs([]), - Int(1,1), Direct(Tid(849, "%00000351")))])), Blk(Tid(542, "%0000021e"), - Attrs([Attr("address","0x6BC")]), Phis([]), Defs([]), -Jmps([Call(Tid(550, "%00000226"), Attrs([Attr("address","0x6BC"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))])), -Blk(Tid(849, "%00000351"), Attrs([Attr("address","0x6B4")]), Phis([]), -Defs([Def(Tid(853, "%00000355"), Attrs([Attr("address","0x6B4"), -Attr("insn","mov x16, x1")]), Var("R16",Imm(64)), Var("R1",Imm(64)))]), -Jmps([Call(Tid(858, "%0000035a"), Attrs([Attr("address","0x6B8"), -Attr("insn","br x16")]), Int(1,1), (Indirect(Var("R16",Imm(64))),))]))])), -Sub(Tid(1_315, "@frame_dummy"), Attrs([Attr("c.proto","signed (*)(void)"), -Attr("address","0x750")]), "frame_dummy", Args([Arg(Tid(1_361, "%00000551"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("frame_dummy_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(702, "@frame_dummy"), - Attrs([Attr("address","0x750")]), Phis([]), Defs([]), -Jmps([Call(Tid(704, "%000002c0"), Attrs([Attr("address","0x750"), -Attr("insn","b #-0x90")]), Int(1,1), -(Direct(Tid(1_317, "@register_tm_clones")),))]))])), Sub(Tid(1_316, "@main"), - Attrs([Attr("c.proto","signed (*)(signed argc, const char** argv)"), -Attr("address","0x754")]), "main", Args([Arg(Tid(1_362, "%00000552"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("main_argc",Imm(32)), -LOW(32,Var("R0",Imm(64))), In()), Arg(Tid(1_363, "%00000553"), - Attrs([Attr("c.layout","**[char : 8]"), Attr("c.data","Top:u8 ptr ptr"), -Attr("c.type"," const char**")]), Var("main_argv",Imm(64)), -Var("R1",Imm(64)), Both()), Arg(Tid(1_364, "%00000554"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("main_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(706, "@main"), - Attrs([Attr("address","0x754")]), Phis([]), Defs([Def(Tid(709, "%000002c5"), - Attrs([Attr("address","0x754"), Attr("insn","adrp x9, #65536")]), - Var("R9",Imm(64)), Int(65536,64)), Def(Tid(716, "%000002cc"), - Attrs([Attr("address","0x758"), Attr("insn","ldr x9, [x9, #0xfc8]")]), - Var("R9",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R9",Imm(64)),Int(4040,64)),LittleEndian(),64)), -Def(Tid(721, "%000002d1"), Attrs([Attr("address","0x75C"), -Attr("insn","mov w8, #0x1")]), Var("R8",Imm(64)), Int(1,64)), -Def(Tid(729, "%000002d9"), Attrs([Attr("address","0x760"), -Attr("insn","str w8, [x9]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("R9",Imm(64)),Extract(31,0,Var("R8",Imm(64))),LittleEndian(),32)), -Def(Tid(734, "%000002de"), Attrs([Attr("address","0x764"), -Attr("insn","mov w0, wzr")]), Var("R0",Imm(64)), Int(0,64))]), -Jmps([Call(Tid(739, "%000002e3"), Attrs([Attr("address","0x768"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))]))])), -Sub(Tid(1_317, "@register_tm_clones"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x6C0")]), - "register_tm_clones", Args([Arg(Tid(1_365, "%00000555"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("register_tm_clones_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(552, "@register_tm_clones"), Attrs([Attr("address","0x6C0")]), - Phis([]), Defs([Def(Tid(555, "%0000022b"), Attrs([Attr("address","0x6C0"), -Attr("insn","adrp x0, #69632")]), Var("R0",Imm(64)), Int(69632,64)), -Def(Tid(561, "%00000231"), Attrs([Attr("address","0x6C4"), -Attr("insn","add x0, x0, #0x30")]), Var("R0",Imm(64)), -PLUS(Var("R0",Imm(64)),Int(48,64))), Def(Tid(566, "%00000236"), - Attrs([Attr("address","0x6C8"), Attr("insn","adrp x1, #69632")]), - Var("R1",Imm(64)), Int(69632,64)), Def(Tid(572, "%0000023c"), - Attrs([Attr("address","0x6CC"), Attr("insn","add x1, x1, #0x30")]), - Var("R1",Imm(64)), PLUS(Var("R1",Imm(64)),Int(48,64))), -Def(Tid(579, "%00000243"), Attrs([Attr("address","0x6D0"), -Attr("insn","sub x1, x1, x0")]), Var("R1",Imm(64)), -PLUS(PLUS(Var("R1",Imm(64)),NOT(Var("R0",Imm(64)))),Int(1,64))), -Def(Tid(585, "%00000249"), Attrs([Attr("address","0x6D4"), -Attr("insn","lsr x2, x1, #63")]), Var("R2",Imm(64)), -Concat(Int(0,63),Extract(63,63,Var("R1",Imm(64))))), -Def(Tid(592, "%00000250"), Attrs([Attr("address","0x6D8"), -Attr("insn","add x1, x2, x1, asr #3")]), Var("R1",Imm(64)), -PLUS(Var("R2",Imm(64)),ARSHIFT(Var("R1",Imm(64)),Int(3,3)))), -Def(Tid(598, "%00000256"), Attrs([Attr("address","0x6DC"), -Attr("insn","asr x1, x1, #1")]), Var("R1",Imm(64)), -SIGNED(64,Extract(63,1,Var("R1",Imm(64)))))]), -Jmps([Goto(Tid(604, "%0000025c"), Attrs([Attr("address","0x6E0"), -Attr("insn","cbz x1, #0x18")]), EQ(Var("R1",Imm(64)),Int(0,64)), -Direct(Tid(602, "%0000025a"))), Goto(Tid(1_346, "%00000542"), Attrs([]), - Int(1,1), Direct(Tid(800, "%00000320")))])), Blk(Tid(800, "%00000320"), - Attrs([Attr("address","0x6E4")]), Phis([]), Defs([Def(Tid(803, "%00000323"), - Attrs([Attr("address","0x6E4"), Attr("insn","adrp x2, #65536")]), - Var("R2",Imm(64)), Int(65536,64)), Def(Tid(810, "%0000032a"), - Attrs([Attr("address","0x6E8"), Attr("insn","ldr x2, [x2, #0xfe0]")]), - Var("R2",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R2",Imm(64)),Int(4064,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(815, "%0000032f"), Attrs([Attr("address","0x6EC"), -Attr("insn","cbz x2, #0xc")]), EQ(Var("R2",Imm(64)),Int(0,64)), -Direct(Tid(602, "%0000025a"))), Goto(Tid(1_347, "%00000543"), Attrs([]), - Int(1,1), Direct(Tid(819, "%00000333")))])), Blk(Tid(602, "%0000025a"), - Attrs([Attr("address","0x6F8")]), Phis([]), Defs([]), -Jmps([Call(Tid(610, "%00000262"), Attrs([Attr("address","0x6F8"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))])), -Blk(Tid(819, "%00000333"), Attrs([Attr("address","0x6F0")]), Phis([]), -Defs([Def(Tid(823, "%00000337"), Attrs([Attr("address","0x6F0"), -Attr("insn","mov x16, x2")]), Var("R16",Imm(64)), Var("R2",Imm(64)))]), -Jmps([Call(Tid(828, "%0000033c"), Attrs([Attr("address","0x6F4"), -Attr("insn","br x16")]), Int(1,1), -(Indirect(Var("R16",Imm(64))),))]))]))]))) \ No newline at end of file diff --git a/src/test/correct/using_gamma_write_z/clang_pic/using_gamma_write_z.bir b/src/test/correct/using_gamma_write_z/clang_pic/using_gamma_write_z.bir deleted file mode 100644 index 3cf712ad4..000000000 --- a/src/test/correct/using_gamma_write_z/clang_pic/using_gamma_write_z.bir +++ /dev/null @@ -1,228 +0,0 @@ -00000544: program -00000512: sub __cxa_finalize(__cxa_finalize_result) -00000545: __cxa_finalize_result :: out u32 = low:32[R0] - -0000031c: -00000414: R16 := 0x11000 -0000041b: R17 := mem[R16 + 8, el]:u64 -00000421: R16 := R16 + 8 -00000426: call R17 with noreturn - -00000513: sub __do_global_dtors_aux(__do_global_dtors_aux_result) -00000546: __do_global_dtors_aux_result :: out u32 = low:32[R0] - -00000266: -0000026a: #3 := R31 - 0x20 -00000270: mem := mem with [#3, el]:u64 <- R29 -00000276: mem := mem with [#3 + 8, el]:u64 <- R30 -0000027a: R31 := #3 -00000280: R29 := R31 -00000288: mem := mem with [R31 + 0x10, el]:u64 <- R19 -0000028d: R19 := 0x11000 -00000294: R0 := pad:64[mem[R19 + 0x30]] -0000029b: when 31:0[R0] <> 0 goto %00000299 -0000053a: goto %000002e5 - -000002e5: -000002e8: R0 := 0x10000 -000002ef: R0 := mem[R0 + 0xFC0, el]:u64 -000002f5: when R0 = 0 goto %000002f3 -0000053b: goto %0000030c - -0000030c: -0000030f: R0 := 0x11000 -00000316: R0 := mem[R0 + 0x28, el]:u64 -0000031b: R30 := 0x730 -0000031e: call @__cxa_finalize with return %000002f3 - -000002f3: -000002fb: R30 := 0x734 -000002fd: call @deregister_tm_clones with return %000002ff - -000002ff: -00000302: R0 := 1 -0000030a: mem := mem with [R19 + 0x30] <- 7:0[R0] -0000053c: goto %00000299 - -00000299: -000002a3: R19 := mem[R31 + 0x10, el]:u64 -000002aa: R29 := mem[R31, el]:u64 -000002af: R30 := mem[R31 + 8, el]:u64 -000002b3: R31 := R31 + 0x20 -000002b8: call R30 with noreturn - -00000517: sub __libc_start_main(__libc_start_main_main, __libc_start_main_arg2, __libc_start_main_arg3, __libc_start_main_auxv, __libc_start_main_result) -00000547: __libc_start_main_main :: in u64 = R0 -00000548: __libc_start_main_arg2 :: in u32 = low:32[R1] -00000549: __libc_start_main_arg3 :: in out u64 = R2 -0000054a: __libc_start_main_auxv :: in out u64 = R3 -0000054b: __libc_start_main_result :: out u32 = low:32[R0] - -000001bf: -000003fe: R16 := 0x11000 -00000405: R17 := mem[R16, el]:u64 -0000040b: R16 := R16 -00000410: call R17 with noreturn - -00000518: sub _fini(_fini_result) -0000054c: _fini_result :: out u32 = low:32[R0] - -0000001f: -00000025: #0 := R31 - 0x10 -0000002b: mem := mem with [#0, el]:u64 <- R29 -00000031: mem := mem with [#0 + 8, el]:u64 <- R30 -00000035: R31 := #0 -0000003b: R29 := R31 -00000042: R29 := mem[R31, el]:u64 -00000047: R30 := mem[R31 + 8, el]:u64 -0000004b: R31 := R31 + 0x10 -00000050: call R30 with noreturn - -00000519: sub _init(_init_result) -0000054d: _init_result :: out u32 = low:32[R0] - -0000046e: -00000474: #5 := R31 - 0x10 -0000047a: mem := mem with [#5, el]:u64 <- R29 -00000480: mem := mem with [#5 + 8, el]:u64 <- R30 -00000484: R31 := #5 -0000048a: R29 := R31 -0000048f: R30 := 0x5A8 -00000491: call @call_weak_fn with return %00000493 - -00000493: -00000498: R29 := mem[R31, el]:u64 -0000049d: R30 := mem[R31 + 8, el]:u64 -000004a1: R31 := R31 + 0x10 -000004a6: call R30 with noreturn - -0000051a: sub _start(_start_result) -0000054e: _start_result :: out u32 = low:32[R0] - -00000180: -00000185: R29 := 0 -0000018a: R30 := 0 -00000190: R5 := R0 -00000197: R1 := mem[R31, el]:u64 -0000019d: R2 := R31 + 8 -000001a3: R6 := R31 -000001a8: R0 := 0x10000 -000001af: R0 := mem[R0 + 0xFD8, el]:u64 -000001b4: R3 := 0 -000001b9: R4 := 0 -000001be: R30 := 0x670 -000001c1: call @__libc_start_main with return %000001c3 - -000001c3: -000001c6: R30 := 0x674 -000001c9: call @abort with return %0000053d - -0000053d: -0000053e: call @call_weak_fn with noreturn - -0000051d: sub abort() - - -000001c7: -00000440: R16 := 0x11000 -00000447: R17 := mem[R16 + 0x18, el]:u64 -0000044d: R16 := R16 + 0x18 -00000452: call R17 with noreturn - -0000051e: sub call_weak_fn(call_weak_fn_result) -0000054f: call_weak_fn_result :: out u32 = low:32[R0] - -000001cb: -000001ce: R0 := 0x10000 -000001d5: R0 := mem[R0 + 0xFD0, el]:u64 -000001db: when R0 = 0 goto %000001d9 -0000053f: goto %0000035c - -000001d9: -000001e1: call R30 with noreturn - -0000035c: -0000035f: goto @__gmon_start__ - -0000035d: -0000042a: R16 := 0x11000 -00000431: R17 := mem[R16 + 0x10, el]:u64 -00000437: R16 := R16 + 0x10 -0000043c: call R17 with noreturn - -00000520: sub deregister_tm_clones(deregister_tm_clones_result) -00000550: deregister_tm_clones_result :: out u32 = low:32[R0] - -000001e7: -000001ea: R0 := 0x11000 -000001f0: R0 := R0 + 0x30 -000001f5: R1 := 0x11000 -000001fb: R1 := R1 + 0x30 -00000201: #1 := ~R0 -00000206: #2 := R1 + ~R0 -0000020c: VF := extend:65[#2 + 1] <> extend:65[R1] + extend:65[#1] + 1 -00000212: CF := pad:65[#2 + 1] <> pad:65[R1] + pad:65[#1] + 1 -00000216: ZF := #2 + 1 = 0 -0000021a: NF := 63:63[#2 + 1] -00000220: when ZF goto %0000021e -00000540: goto %0000033e - -0000033e: -00000341: R1 := 0x10000 -00000348: R1 := mem[R1 + 0xFB8, el]:u64 -0000034d: when R1 = 0 goto %0000021e -00000541: goto %00000351 - -0000021e: -00000226: call R30 with noreturn - -00000351: -00000355: R16 := R1 -0000035a: call R16 with noreturn - -00000523: sub frame_dummy(frame_dummy_result) -00000551: frame_dummy_result :: out u32 = low:32[R0] - -000002be: -000002c0: call @register_tm_clones with noreturn - -00000524: sub main(main_argc, main_argv, main_result) -00000552: main_argc :: in u32 = low:32[R0] -00000553: main_argv :: in out u64 = R1 -00000554: main_result :: out u32 = low:32[R0] - -000002c2: -000002c5: R9 := 0x10000 -000002cc: R9 := mem[R9 + 0xFC8, el]:u64 -000002d1: R8 := 1 -000002d9: mem := mem with [R9, el]:u32 <- 31:0[R8] -000002de: R0 := 0 -000002e3: call R30 with noreturn - -00000525: sub register_tm_clones(register_tm_clones_result) -00000555: register_tm_clones_result :: out u32 = low:32[R0] - -00000228: -0000022b: R0 := 0x11000 -00000231: R0 := R0 + 0x30 -00000236: R1 := 0x11000 -0000023c: R1 := R1 + 0x30 -00000243: R1 := R1 + ~R0 + 1 -00000249: R2 := 0.63:63[R1] -00000250: R1 := R2 + (R1 ~>> 3) -00000256: R1 := extend:64[63:1[R1]] -0000025c: when R1 = 0 goto %0000025a -00000542: goto %00000320 - -00000320: -00000323: R2 := 0x10000 -0000032a: R2 := mem[R2 + 0xFE0, el]:u64 -0000032f: when R2 = 0 goto %0000025a -00000543: goto %00000333 - -0000025a: -00000262: call R30 with noreturn - -00000333: -00000337: R16 := R2 -0000033c: call R16 with noreturn diff --git a/src/test/correct/using_gamma_write_z/clang_pic/using_gamma_write_z.expected b/src/test/correct/using_gamma_write_z/clang_pic/using_gamma_write_z.expected index c6de258b2..2abbec0ed 100644 --- a/src/test/correct/using_gamma_write_z/clang_pic/using_gamma_write_z.expected +++ b/src/test/correct/using_gamma_write_z/clang_pic/using_gamma_write_z.expected @@ -7,9 +7,9 @@ var {:extern} R8: bv64; var {:extern} R9: bv64; var {:extern} mem: [bv64]bv8; const {:extern} $x_addr: bv64; -axiom ($x_addr == 69688bv64); +axiom ($x_addr == 131096bv64); const {:extern} $z_addr: bv64; -axiom ($z_addr == 69684bv64); +axiom ($z_addr == 131092bv64); function {:extern} L(mem$in: [bv64]bv8, index: bv64) returns (bool) { (if (index == $z_addr) then true else (if (index == $x_addr) then (memory_load32_le(mem$in, $z_addr) == 0bv32) else false)) } @@ -43,12 +43,12 @@ procedure {:extern} rely(); modifies Gamma_mem, mem; ensures (forall i: bv64 :: (((mem[i] == old(mem[i])) ==> (Gamma_mem[i] == old(Gamma_mem[i]))))); ensures ((old(memory_load32_le(mem, $x_addr)) == memory_load32_le(mem, $x_addr)) && (old(memory_load32_le(mem, $z_addr)) == memory_load32_le(mem, $z_addr))); - free ensures (memory_load32_le(mem, 1920bv64) == 131073bv32); - free ensures (memory_load64_le(mem, 69056bv64) == 1872bv64); - free ensures (memory_load64_le(mem, 69064bv64) == 1792bv64); - free ensures (memory_load64_le(mem, 69576bv64) == 69684bv64); - free ensures (memory_load64_le(mem, 69592bv64) == 1876bv64); - free ensures (memory_load64_le(mem, 69672bv64) == 69672bv64); + free ensures (memory_load32_le(mem, 2304bv64) == 131073bv32); + free ensures (memory_load64_le(mem, 130432bv64) == 2256bv64); + free ensures (memory_load64_le(mem, 130440bv64) == 2176bv64); + free ensures (memory_load64_le(mem, 131040bv64) == 131092bv64); + free ensures (memory_load64_le(mem, 131056bv64) == 2260bv64); + free ensures (memory_load64_le(mem, 131080bv64) == 131080bv64); procedure {:extern} rely_transitive(); modifies Gamma_mem, mem; @@ -75,46 +75,46 @@ implementation {:extern} guarantee_reflexive() assert (gamma_load32(Gamma_mem, $x_addr) ==> gamma_load32(Gamma_mem, $x_addr)); } -procedure main_1876(); +procedure main(); modifies Gamma_R0, Gamma_R8, Gamma_R9, Gamma_mem, R0, R8, R9, mem; requires ((memory_load32_le(mem, $z_addr) == 0bv32) ==> gamma_load32(Gamma_mem, $x_addr)); - free requires (memory_load64_le(mem, 69664bv64) == 0bv64); - free requires (memory_load64_le(mem, 69672bv64) == 69672bv64); - free requires (memory_load32_le(mem, 1920bv64) == 131073bv32); - free requires (memory_load64_le(mem, 69056bv64) == 1872bv64); - free requires (memory_load64_le(mem, 69064bv64) == 1792bv64); - free requires (memory_load64_le(mem, 69576bv64) == 69684bv64); - free requires (memory_load64_le(mem, 69592bv64) == 1876bv64); - free requires (memory_load64_le(mem, 69672bv64) == 69672bv64); - free ensures (memory_load32_le(mem, 1920bv64) == 131073bv32); - free ensures (memory_load64_le(mem, 69056bv64) == 1872bv64); - free ensures (memory_load64_le(mem, 69064bv64) == 1792bv64); - free ensures (memory_load64_le(mem, 69576bv64) == 69684bv64); - free ensures (memory_load64_le(mem, 69592bv64) == 1876bv64); - free ensures (memory_load64_le(mem, 69672bv64) == 69672bv64); - -implementation main_1876() + free requires (memory_load64_le(mem, 131072bv64) == 0bv64); + free requires (memory_load64_le(mem, 131080bv64) == 131080bv64); + free requires (memory_load32_le(mem, 2304bv64) == 131073bv32); + free requires (memory_load64_le(mem, 130432bv64) == 2256bv64); + free requires (memory_load64_le(mem, 130440bv64) == 2176bv64); + free requires (memory_load64_le(mem, 131040bv64) == 131092bv64); + free requires (memory_load64_le(mem, 131056bv64) == 2260bv64); + free requires (memory_load64_le(mem, 131080bv64) == 131080bv64); + free ensures (memory_load32_le(mem, 2304bv64) == 131073bv32); + free ensures (memory_load64_le(mem, 130432bv64) == 2256bv64); + free ensures (memory_load64_le(mem, 130440bv64) == 2176bv64); + free ensures (memory_load64_le(mem, 131040bv64) == 131092bv64); + free ensures (memory_load64_le(mem, 131056bv64) == 2260bv64); + free ensures (memory_load64_le(mem, 131080bv64) == 131080bv64); + +implementation main() { - var Gamma_load18: bool; + var $load$18: bv64; + var Gamma_$load$18: bool; var Gamma_x_old: bool; - var load18: bv64; lmain: assume {:captureState "lmain"} true; - R9, Gamma_R9 := 65536bv64, true; + R8, Gamma_R8 := 126976bv64, true; + R9, Gamma_R9 := 1bv64, true; + R0, Gamma_R0 := 0bv64, true; call rely(); - load18, Gamma_load18 := memory_load64_le(mem, bvadd64(R9, 4040bv64)), (gamma_load64(Gamma_mem, bvadd64(R9, 4040bv64)) || L(mem, bvadd64(R9, 4040bv64))); - R9, Gamma_R9 := load18, Gamma_load18; - R8, Gamma_R8 := 1bv64, true; + $load$18, Gamma_$load$18 := memory_load64_le(mem, bvadd64(R8, 4064bv64)), (gamma_load64(Gamma_mem, bvadd64(R8, 4064bv64)) || L(mem, bvadd64(R8, 4064bv64))); + R8, Gamma_R8 := $load$18, Gamma_$load$18; call rely(); + assert (L(mem, R8) ==> Gamma_R9); Gamma_x_old := (gamma_load32(Gamma_mem, $x_addr) || L(mem, $x_addr)); - assert (L(mem, R9) ==> Gamma_R8); - mem, Gamma_mem := memory_store32_le(mem, R9, R8[32:0]), gamma_store32(Gamma_mem, R9, Gamma_R8); - assert ((R9 == $z_addr) ==> (L(mem, $x_addr) ==> Gamma_x_old)); - assume {:captureState "%000002d9"} true; - R0, Gamma_R0 := 0bv64, true; - goto main_1876_basil_return; - main_1876_basil_return: - assume {:captureState "main_1876_basil_return"} true; + mem, Gamma_mem := memory_store32_le(mem, R8, R9[32:0]), gamma_store32(Gamma_mem, R8, Gamma_R9); + assert ((R8 == $z_addr) ==> (L(mem, $x_addr) ==> Gamma_x_old)); + assume {:captureState "%0000028c"} true; + goto main_basil_return; + main_basil_return: + assume {:captureState "main_basil_return"} true; return; } diff --git a/src/test/correct/using_gamma_write_z/clang_pic/using_gamma_write_z.gts b/src/test/correct/using_gamma_write_z/clang_pic/using_gamma_write_z.gts deleted file mode 100644 index adc1605d5..000000000 Binary files a/src/test/correct/using_gamma_write_z/clang_pic/using_gamma_write_z.gts and /dev/null differ diff --git a/src/test/correct/using_gamma_write_z/clang_pic/using_gamma_write_z.md5sum b/src/test/correct/using_gamma_write_z/clang_pic/using_gamma_write_z.md5sum new file mode 100644 index 000000000..f9cb3b170 --- /dev/null +++ b/src/test/correct/using_gamma_write_z/clang_pic/using_gamma_write_z.md5sum @@ -0,0 +1,5 @@ +c736c5200d8adcfaa3dcc41ea59bac91 correct/using_gamma_write_z/clang_pic/a.out +ebe563ec2406e6f3c02a7542700a2f23 correct/using_gamma_write_z/clang_pic/using_gamma_write_z.adt +9903aa54693487f43b2a1f5a89bd0fe6 correct/using_gamma_write_z/clang_pic/using_gamma_write_z.bir +45072469d3afd179072497e4127af93a correct/using_gamma_write_z/clang_pic/using_gamma_write_z.relf +70ba2abb2e7611f89efa8e8433b6ca38 correct/using_gamma_write_z/clang_pic/using_gamma_write_z.gts diff --git a/src/test/correct/using_gamma_write_z/clang_pic/using_gamma_write_z.relf b/src/test/correct/using_gamma_write_z/clang_pic/using_gamma_write_z.relf deleted file mode 100644 index e9b210166..000000000 --- a/src/test/correct/using_gamma_write_z/clang_pic/using_gamma_write_z.relf +++ /dev/null @@ -1,125 +0,0 @@ - -Relocation section '.rela.dyn' at offset 0x460 contains 9 entries: - Offset Info Type Symbol's Value Symbol's Name + Addend -0000000000010dc0 0000000000000403 R_AARCH64_RELATIVE 750 -0000000000010dc8 0000000000000403 R_AARCH64_RELATIVE 700 -0000000000010fc8 0000000000000403 R_AARCH64_RELATIVE 11034 -0000000000010fd8 0000000000000403 R_AARCH64_RELATIVE 754 -0000000000011028 0000000000000403 R_AARCH64_RELATIVE 11028 -0000000000010fb8 0000000400000401 R_AARCH64_GLOB_DAT 0000000000000000 _ITM_deregisterTMCloneTable + 0 -0000000000010fc0 0000000500000401 R_AARCH64_GLOB_DAT 0000000000000000 __cxa_finalize@GLIBC_2.17 + 0 -0000000000010fd0 0000000600000401 R_AARCH64_GLOB_DAT 0000000000000000 __gmon_start__ + 0 -0000000000010fe0 0000000800000401 R_AARCH64_GLOB_DAT 0000000000000000 _ITM_registerTMCloneTable + 0 - -Relocation section '.rela.plt' at offset 0x538 contains 4 entries: - Offset Info Type Symbol's Value Symbol's Name + Addend -0000000000011000 0000000300000402 R_AARCH64_JUMP_SLOT 0000000000000000 __libc_start_main@GLIBC_2.34 + 0 -0000000000011008 0000000500000402 R_AARCH64_JUMP_SLOT 0000000000000000 __cxa_finalize@GLIBC_2.17 + 0 -0000000000011010 0000000600000402 R_AARCH64_JUMP_SLOT 0000000000000000 __gmon_start__ + 0 -0000000000011018 0000000700000402 R_AARCH64_JUMP_SLOT 0000000000000000 abort@GLIBC_2.17 + 0 - -Symbol table '.dynsym' contains 9 entries: - Num: Value Size Type Bind Vis Ndx Name - 0: 0000000000000000 0 NOTYPE LOCAL DEFAULT UND - 1: 0000000000000598 0 SECTION LOCAL DEFAULT 11 .init - 2: 0000000000011020 0 SECTION LOCAL DEFAULT 23 .data - 3: 0000000000000000 0 FUNC GLOBAL DEFAULT UND __libc_start_main@GLIBC_2.34 (2) - 4: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_deregisterTMCloneTable - 5: 0000000000000000 0 FUNC WEAK DEFAULT UND __cxa_finalize@GLIBC_2.17 (3) - 6: 0000000000000000 0 NOTYPE WEAK DEFAULT UND __gmon_start__ - 7: 0000000000000000 0 FUNC GLOBAL DEFAULT UND abort@GLIBC_2.17 (3) - 8: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_registerTMCloneTable - -Symbol table '.symtab' contains 91 entries: - Num: Value Size Type Bind Vis Ndx Name - 0: 0000000000000000 0 NOTYPE LOCAL DEFAULT UND - 1: 0000000000000238 0 SECTION LOCAL DEFAULT 1 .interp - 2: 0000000000000254 0 SECTION LOCAL DEFAULT 2 .note.gnu.build-id - 3: 0000000000000278 0 SECTION LOCAL DEFAULT 3 .note.ABI-tag - 4: 0000000000000298 0 SECTION LOCAL DEFAULT 4 .gnu.hash - 5: 00000000000002b8 0 SECTION LOCAL DEFAULT 5 .dynsym - 6: 0000000000000390 0 SECTION LOCAL DEFAULT 6 .dynstr - 7: 000000000000041e 0 SECTION LOCAL DEFAULT 7 .gnu.version - 8: 0000000000000430 0 SECTION LOCAL DEFAULT 8 .gnu.version_r - 9: 0000000000000460 0 SECTION LOCAL DEFAULT 9 .rela.dyn - 10: 0000000000000538 0 SECTION LOCAL DEFAULT 10 .rela.plt - 11: 0000000000000598 0 SECTION LOCAL DEFAULT 11 .init - 12: 00000000000005b0 0 SECTION LOCAL DEFAULT 12 .plt - 13: 0000000000000640 0 SECTION LOCAL DEFAULT 13 .text - 14: 000000000000076c 0 SECTION LOCAL DEFAULT 14 .fini - 15: 0000000000000780 0 SECTION LOCAL DEFAULT 15 .rodata - 16: 0000000000000784 0 SECTION LOCAL DEFAULT 16 .eh_frame_hdr - 17: 00000000000007c0 0 SECTION LOCAL DEFAULT 17 .eh_frame - 18: 0000000000010dc0 0 SECTION LOCAL DEFAULT 18 .init_array - 19: 0000000000010dc8 0 SECTION LOCAL DEFAULT 19 .fini_array - 20: 0000000000010dd0 0 SECTION LOCAL DEFAULT 20 .dynamic - 21: 0000000000010fb0 0 SECTION LOCAL DEFAULT 21 .got - 22: 0000000000010fe8 0 SECTION LOCAL DEFAULT 22 .got.plt - 23: 0000000000011020 0 SECTION LOCAL DEFAULT 23 .data - 24: 0000000000011030 0 SECTION LOCAL DEFAULT 24 .bss - 25: 0000000000000000 0 SECTION LOCAL DEFAULT 25 .comment - 26: 0000000000000000 0 FILE LOCAL DEFAULT ABS Scrt1.o - 27: 0000000000000278 0 NOTYPE LOCAL DEFAULT 3 $d - 28: 0000000000000278 32 OBJECT LOCAL DEFAULT 3 __abi_tag - 29: 0000000000000640 0 NOTYPE LOCAL DEFAULT 13 $x - 30: 00000000000007d4 0 NOTYPE LOCAL DEFAULT 17 $d - 31: 0000000000000780 0 NOTYPE LOCAL DEFAULT 15 $d - 32: 0000000000000000 0 FILE LOCAL DEFAULT ABS crti.o - 33: 0000000000000674 0 NOTYPE LOCAL DEFAULT 13 $x - 34: 0000000000000674 20 FUNC LOCAL DEFAULT 13 call_weak_fn - 35: 0000000000000598 0 NOTYPE LOCAL DEFAULT 11 $x - 36: 000000000000076c 0 NOTYPE LOCAL DEFAULT 14 $x - 37: 0000000000000000 0 FILE LOCAL DEFAULT ABS crtn.o - 38: 00000000000005a8 0 NOTYPE LOCAL DEFAULT 11 $x - 39: 0000000000000778 0 NOTYPE LOCAL DEFAULT 14 $x - 40: 0000000000000000 0 FILE LOCAL DEFAULT ABS crtstuff.c - 41: 0000000000000690 0 NOTYPE LOCAL DEFAULT 13 $x - 42: 0000000000000690 0 FUNC LOCAL DEFAULT 13 deregister_tm_clones - 43: 00000000000006c0 0 FUNC LOCAL DEFAULT 13 register_tm_clones - 44: 0000000000011028 0 NOTYPE LOCAL DEFAULT 23 $d - 45: 0000000000000700 0 FUNC LOCAL DEFAULT 13 __do_global_dtors_aux - 46: 0000000000011030 1 OBJECT LOCAL DEFAULT 24 completed.0 - 47: 0000000000010dc8 0 NOTYPE LOCAL DEFAULT 19 $d - 48: 0000000000010dc8 0 OBJECT LOCAL DEFAULT 19 __do_global_dtors_aux_fini_array_entry - 49: 0000000000000750 0 FUNC LOCAL DEFAULT 13 frame_dummy - 50: 0000000000010dc0 0 NOTYPE LOCAL DEFAULT 18 $d - 51: 0000000000010dc0 0 OBJECT LOCAL DEFAULT 18 __frame_dummy_init_array_entry - 52: 00000000000007e8 0 NOTYPE LOCAL DEFAULT 17 $d - 53: 0000000000011030 0 NOTYPE LOCAL DEFAULT 24 $d - 54: 0000000000000000 0 FILE LOCAL DEFAULT ABS using_gamma_write_z.c - 55: 0000000000000754 0 NOTYPE LOCAL DEFAULT 13 $x.0 - 56: 0000000000011034 0 NOTYPE LOCAL DEFAULT 24 $d.1 - 57: 000000000000002a 0 NOTYPE LOCAL DEFAULT 25 $d.2 - 58: 0000000000000848 0 NOTYPE LOCAL DEFAULT 17 $d.3 - 59: 0000000000000000 0 FILE LOCAL DEFAULT ABS crtstuff.c - 60: 0000000000000870 0 NOTYPE LOCAL DEFAULT 17 $d - 61: 0000000000000870 0 OBJECT LOCAL DEFAULT 17 __FRAME_END__ - 62: 0000000000000000 0 FILE LOCAL DEFAULT ABS - 63: 0000000000010dd0 0 OBJECT LOCAL DEFAULT ABS _DYNAMIC - 64: 0000000000000784 0 NOTYPE LOCAL DEFAULT 16 __GNU_EH_FRAME_HDR - 65: 0000000000010fb0 0 OBJECT LOCAL DEFAULT ABS _GLOBAL_OFFSET_TABLE_ - 66: 00000000000005b0 0 NOTYPE LOCAL DEFAULT 12 $x - 67: 0000000000000000 0 FUNC GLOBAL DEFAULT UND __libc_start_main@GLIBC_2.34 - 68: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_deregisterTMCloneTable - 69: 0000000000011020 0 NOTYPE WEAK DEFAULT 23 data_start - 70: 0000000000011030 0 NOTYPE GLOBAL DEFAULT 24 __bss_start__ - 71: 0000000000000000 0 FUNC WEAK DEFAULT UND __cxa_finalize@GLIBC_2.17 - 72: 0000000000011040 0 NOTYPE GLOBAL DEFAULT 24 _bss_end__ - 73: 0000000000011030 0 NOTYPE GLOBAL DEFAULT 23 _edata - 74: 0000000000011034 4 OBJECT GLOBAL DEFAULT 24 z - 75: 0000000000011038 4 OBJECT GLOBAL DEFAULT 24 x - 76: 000000000000076c 0 FUNC GLOBAL HIDDEN 14 _fini - 77: 0000000000011040 0 NOTYPE GLOBAL DEFAULT 24 __bss_end__ - 78: 0000000000011020 0 NOTYPE GLOBAL DEFAULT 23 __data_start - 79: 0000000000000000 0 NOTYPE WEAK DEFAULT UND __gmon_start__ - 80: 0000000000011028 0 OBJECT GLOBAL HIDDEN 23 __dso_handle - 81: 0000000000000000 0 FUNC GLOBAL DEFAULT UND abort@GLIBC_2.17 - 82: 0000000000000780 4 OBJECT GLOBAL DEFAULT 15 _IO_stdin_used - 83: 0000000000011040 0 NOTYPE GLOBAL DEFAULT 24 _end - 84: 0000000000000640 52 FUNC GLOBAL DEFAULT 13 _start - 85: 0000000000011040 0 NOTYPE GLOBAL DEFAULT 24 __end__ - 86: 0000000000011030 0 NOTYPE GLOBAL DEFAULT 24 __bss_start - 87: 0000000000000754 24 FUNC GLOBAL DEFAULT 13 main - 88: 0000000000011030 0 OBJECT GLOBAL HIDDEN 23 __TMC_END__ - 89: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_registerTMCloneTable - 90: 0000000000000598 0 FUNC GLOBAL HIDDEN 11 _init diff --git a/src/test/correct/using_gamma_write_z/clang_pic/using_gamma_write_z_gtirb.expected b/src/test/correct/using_gamma_write_z/clang_pic/using_gamma_write_z_gtirb.expected index f186a8deb..862016dc9 100644 --- a/src/test/correct/using_gamma_write_z/clang_pic/using_gamma_write_z_gtirb.expected +++ b/src/test/correct/using_gamma_write_z/clang_pic/using_gamma_write_z_gtirb.expected @@ -7,9 +7,9 @@ var {:extern} R8: bv64; var {:extern} R9: bv64; var {:extern} mem: [bv64]bv8; const {:extern} $x_addr: bv64; -axiom ($x_addr == 69688bv64); +axiom ($x_addr == 131096bv64); const {:extern} $z_addr: bv64; -axiom ($z_addr == 69684bv64); +axiom ($z_addr == 131092bv64); function {:extern} L(mem$in: [bv64]bv8, index: bv64) returns (bool) { (if (index == $z_addr) then true else (if (index == $x_addr) then (memory_load32_le(mem$in, $z_addr) == 0bv32) else false)) } @@ -43,12 +43,12 @@ procedure {:extern} rely(); modifies Gamma_mem, mem; ensures (forall i: bv64 :: (((mem[i] == old(mem[i])) ==> (Gamma_mem[i] == old(Gamma_mem[i]))))); ensures ((old(memory_load32_le(mem, $x_addr)) == memory_load32_le(mem, $x_addr)) && (old(memory_load32_le(mem, $z_addr)) == memory_load32_le(mem, $z_addr))); - free ensures (memory_load32_le(mem, 1920bv64) == 131073bv32); - free ensures (memory_load64_le(mem, 69056bv64) == 1872bv64); - free ensures (memory_load64_le(mem, 69064bv64) == 1792bv64); - free ensures (memory_load64_le(mem, 69576bv64) == 69684bv64); - free ensures (memory_load64_le(mem, 69592bv64) == 1876bv64); - free ensures (memory_load64_le(mem, 69672bv64) == 69672bv64); + free ensures (memory_load32_le(mem, 2304bv64) == 131073bv32); + free ensures (memory_load64_le(mem, 130432bv64) == 2256bv64); + free ensures (memory_load64_le(mem, 130440bv64) == 2176bv64); + free ensures (memory_load64_le(mem, 131040bv64) == 131092bv64); + free ensures (memory_load64_le(mem, 131056bv64) == 2260bv64); + free ensures (memory_load64_le(mem, 131080bv64) == 131080bv64); procedure {:extern} rely_transitive(); modifies Gamma_mem, mem; @@ -75,46 +75,46 @@ implementation {:extern} guarantee_reflexive() assert (gamma_load32(Gamma_mem, $x_addr) ==> gamma_load32(Gamma_mem, $x_addr)); } -procedure main_1876(); +procedure main(); modifies Gamma_R0, Gamma_R8, Gamma_R9, Gamma_mem, R0, R8, R9, mem; requires ((memory_load32_le(mem, $z_addr) == 0bv32) ==> gamma_load32(Gamma_mem, $x_addr)); - free requires (memory_load64_le(mem, 69664bv64) == 0bv64); - free requires (memory_load64_le(mem, 69672bv64) == 69672bv64); - free requires (memory_load32_le(mem, 1920bv64) == 131073bv32); - free requires (memory_load64_le(mem, 69056bv64) == 1872bv64); - free requires (memory_load64_le(mem, 69064bv64) == 1792bv64); - free requires (memory_load64_le(mem, 69576bv64) == 69684bv64); - free requires (memory_load64_le(mem, 69592bv64) == 1876bv64); - free requires (memory_load64_le(mem, 69672bv64) == 69672bv64); - free ensures (memory_load32_le(mem, 1920bv64) == 131073bv32); - free ensures (memory_load64_le(mem, 69056bv64) == 1872bv64); - free ensures (memory_load64_le(mem, 69064bv64) == 1792bv64); - free ensures (memory_load64_le(mem, 69576bv64) == 69684bv64); - free ensures (memory_load64_le(mem, 69592bv64) == 1876bv64); - free ensures (memory_load64_le(mem, 69672bv64) == 69672bv64); - -implementation main_1876() + free requires (memory_load64_le(mem, 131072bv64) == 0bv64); + free requires (memory_load64_le(mem, 131080bv64) == 131080bv64); + free requires (memory_load32_le(mem, 2304bv64) == 131073bv32); + free requires (memory_load64_le(mem, 130432bv64) == 2256bv64); + free requires (memory_load64_le(mem, 130440bv64) == 2176bv64); + free requires (memory_load64_le(mem, 131040bv64) == 131092bv64); + free requires (memory_load64_le(mem, 131056bv64) == 2260bv64); + free requires (memory_load64_le(mem, 131080bv64) == 131080bv64); + free ensures (memory_load32_le(mem, 2304bv64) == 131073bv32); + free ensures (memory_load64_le(mem, 130432bv64) == 2256bv64); + free ensures (memory_load64_le(mem, 130440bv64) == 2176bv64); + free ensures (memory_load64_le(mem, 131040bv64) == 131092bv64); + free ensures (memory_load64_le(mem, 131056bv64) == 2260bv64); + free ensures (memory_load64_le(mem, 131080bv64) == 131080bv64); + +implementation main() { - var Gamma_load17: bool; + var $load19: bv64; + var Gamma_$load19: bool; var Gamma_x_old: bool; - var load17: bv64; - main_1876__0__biI7cD_YRjyqxfg99RZiSw: - assume {:captureState "main_1876__0__biI7cD_YRjyqxfg99RZiSw"} true; - R9, Gamma_R9 := 65536bv64, true; + $main$__0__$IkNYmV06TxC75h8A4NM3wA: + assume {:captureState "$main$__0__$IkNYmV06TxC75h8A4NM3wA"} true; + R8, Gamma_R8 := 126976bv64, true; + R9, Gamma_R9 := 1bv64, true; + R0, Gamma_R0 := 0bv64, true; call rely(); - load17, Gamma_load17 := memory_load64_le(mem, bvadd64(R9, 4040bv64)), (gamma_load64(Gamma_mem, bvadd64(R9, 4040bv64)) || L(mem, bvadd64(R9, 4040bv64))); - R9, Gamma_R9 := load17, Gamma_load17; - R8, Gamma_R8 := 1bv64, true; + $load19, Gamma_$load19 := memory_load64_le(mem, bvadd64(R8, 4064bv64)), (gamma_load64(Gamma_mem, bvadd64(R8, 4064bv64)) || L(mem, bvadd64(R8, 4064bv64))); + R8, Gamma_R8 := $load19, Gamma_$load19; call rely(); + assert (L(mem, R8) ==> Gamma_R9); Gamma_x_old := (gamma_load32(Gamma_mem, $x_addr) || L(mem, $x_addr)); - assert (L(mem, R9) ==> Gamma_R8); - mem, Gamma_mem := memory_store32_le(mem, R9, R8[32:0]), gamma_store32(Gamma_mem, R9, Gamma_R8); - assert ((R9 == $z_addr) ==> (L(mem, $x_addr) ==> Gamma_x_old)); - assume {:captureState "1888_0"} true; - R0, Gamma_R0 := 0bv64, true; - goto main_1876_basil_return; - main_1876_basil_return: - assume {:captureState "main_1876_basil_return"} true; + mem, Gamma_mem := memory_store32_le(mem, R8, R9[32:0]), gamma_store32(Gamma_mem, R8, Gamma_R9); + assert ((R8 == $z_addr) ==> (L(mem, $x_addr) ==> Gamma_x_old)); + assume {:captureState "2276$0"} true; + goto main_basil_return; + main_basil_return: + assume {:captureState "main_basil_return"} true; return; } diff --git a/src/test/correct/using_gamma_write_z/gcc/using_gamma_write_z.adt b/src/test/correct/using_gamma_write_z/gcc/using_gamma_write_z.adt deleted file mode 100644 index 5c5e1b1f5..000000000 --- a/src/test/correct/using_gamma_write_z/gcc/using_gamma_write_z.adt +++ /dev/null @@ -1,492 +0,0 @@ -Project(Attrs([Attr("filename","\"gcc/using_gamma_write_z.out\""), -Attr("image-specification","(declare abi (name str))\n(declare arch (name str))\n(declare base-address (addr int))\n(declare bias (off int))\n(declare bits (size int))\n(declare code-region (addr int) (size int) (off int))\n(declare code-start (addr int))\n(declare entry-point (addr int))\n(declare external-reference (addr int) (name str))\n(declare format (name str))\n(declare is-executable (flag bool))\n(declare is-little-endian (flag bool))\n(declare llvm:base-address (addr int))\n(declare llvm:code-entry (name str) (off int) (size int))\n(declare llvm:coff-import-library (name str))\n(declare llvm:coff-virtual-section-header (name str) (addr int) (size int))\n(declare llvm:elf-program-header (name str) (off int) (size int))\n(declare llvm:elf-program-header-flags (name str) (ld bool) (r bool) \n (w bool) (x bool))\n(declare llvm:elf-virtual-program-header (name str) (addr int) (size int))\n(declare llvm:entry-point (addr int))\n(declare llvm:macho-symbol (name str) (value int))\n(declare llvm:name-reference (at int) (name str))\n(declare llvm:relocation (at int) (addr int))\n(declare llvm:section-entry (name str) (addr int) (size int) (off int))\n(declare llvm:section-flags (name str) (r bool) (w bool) (x bool))\n(declare llvm:segment-command (name str) (off int) (size int))\n(declare llvm:segment-command-flags (name str) (r bool) (w bool) (x bool))\n(declare llvm:symbol-entry (name str) (addr int) (size int) (off int)\n (value int))\n(declare llvm:virtual-segment-command (name str) (addr int) (size int))\n(declare mapped (addr int) (size int) (off int))\n(declare named-region (addr int) (size int) (name str))\n(declare named-symbol (addr int) (name str))\n(declare require (name str))\n(declare section (addr int) (size int))\n(declare segment (addr int) (size int) (r bool) (w bool) (x bool))\n(declare subarch (name str))\n(declare symbol-chunk (addr int) (size int) (root int))\n(declare symbol-value (addr int) (value int))\n(declare system (name str))\n(declare vendor (name str))\n\n(abi unknown)\n(arch aarch64)\n(base-address 0)\n(bias 0)\n(bits 64)\n(code-region 1836 20 1836)\n(code-region 1536 300 1536)\n(code-region 1440 96 1440)\n(code-region 1408 24 1408)\n(code-start 1588)\n(code-start 1536)\n(code-start 1812)\n(entry-point 1536)\n(external-reference 69592 _ITM_deregisterTMCloneTable)\n(external-reference 69600 __cxa_finalize)\n(external-reference 69608 __gmon_start__)\n(external-reference 69624 _ITM_registerTMCloneTable)\n(external-reference 69552 __libc_start_main)\n(external-reference 69560 __cxa_finalize)\n(external-reference 69568 __gmon_start__)\n(external-reference 69576 abort)\n(format elf)\n(is-executable true)\n(is-little-endian true)\n(llvm:base-address 0)\n(llvm:code-entry abort 0 0)\n(llvm:code-entry __cxa_finalize 0 0)\n(llvm:code-entry __libc_start_main 0 0)\n(llvm:code-entry _init 1408 0)\n(llvm:code-entry main 1812 24)\n(llvm:code-entry _start 1536 52)\n(llvm:code-entry abort@GLIBC_2.17 0 0)\n(llvm:code-entry _fini 1836 0)\n(llvm:code-entry __cxa_finalize@GLIBC_2.17 0 0)\n(llvm:code-entry __libc_start_main@GLIBC_2.34 0 0)\n(llvm:code-entry frame_dummy 1808 0)\n(llvm:code-entry __do_global_dtors_aux 1728 0)\n(llvm:code-entry register_tm_clones 1664 0)\n(llvm:code-entry deregister_tm_clones 1616 0)\n(llvm:code-entry call_weak_fn 1588 20)\n(llvm:code-entry .fini 1836 20)\n(llvm:code-entry .text 1536 300)\n(llvm:code-entry .plt 1440 96)\n(llvm:code-entry .init 1408 24)\n(llvm:elf-program-header 08 3480 616)\n(llvm:elf-program-header 07 0 0)\n(llvm:elf-program-header 06 1860 60)\n(llvm:elf-program-header 05 596 68)\n(llvm:elf-program-header 04 3496 496)\n(llvm:elf-program-header 03 3480 632)\n(llvm:elf-program-header 02 0 2080)\n(llvm:elf-program-header 01 568 27)\n(llvm:elf-program-header 00 64 504)\n(llvm:elf-program-header-flags 08 false true false false)\n(llvm:elf-program-header-flags 07 false true true false)\n(llvm:elf-program-header-flags 06 false true false false)\n(llvm:elf-program-header-flags 05 false true false false)\n(llvm:elf-program-header-flags 04 false true true false)\n(llvm:elf-program-header-flags 03 true true true false)\n(llvm:elf-program-header-flags 02 true true false true)\n(llvm:elf-program-header-flags 01 false true false false)\n(llvm:elf-program-header-flags 00 false true false false)\n(llvm:elf-virtual-program-header 08 69016 616)\n(llvm:elf-virtual-program-header 07 0 0)\n(llvm:elf-virtual-program-header 06 1860 60)\n(llvm:elf-virtual-program-header 05 596 68)\n(llvm:elf-virtual-program-header 04 69032 496)\n(llvm:elf-virtual-program-header 03 69016 648)\n(llvm:elf-virtual-program-header 02 0 2080)\n(llvm:elf-virtual-program-header 01 568 27)\n(llvm:elf-virtual-program-header 00 64 504)\n(llvm:entry-point 1536)\n(llvm:name-reference 69576 abort)\n(llvm:name-reference 69568 __gmon_start__)\n(llvm:name-reference 69560 __cxa_finalize)\n(llvm:name-reference 69552 __libc_start_main)\n(llvm:name-reference 69624 _ITM_registerTMCloneTable)\n(llvm:name-reference 69608 __gmon_start__)\n(llvm:name-reference 69600 __cxa_finalize)\n(llvm:name-reference 69592 _ITM_deregisterTMCloneTable)\n(llvm:section-entry .shstrtab 0 250 6853)\n(llvm:section-entry .strtab 0 557 6296)\n(llvm:section-entry .symtab 0 2136 4160)\n(llvm:section-entry .comment 0 43 4112)\n(llvm:section-entry .bss 69648 16 4112)\n(llvm:section-entry .data 69632 16 4096)\n(llvm:section-entry .got 69528 104 3992)\n(llvm:section-entry .dynamic 69032 496 3496)\n(llvm:section-entry .fini_array 69024 8 3488)\n(llvm:section-entry .init_array 69016 8 3480)\n(llvm:section-entry .eh_frame 1920 160 1920)\n(llvm:section-entry .eh_frame_hdr 1860 60 1860)\n(llvm:section-entry .rodata 1856 4 1856)\n(llvm:section-entry .fini 1836 20 1836)\n(llvm:section-entry .text 1536 300 1536)\n(llvm:section-entry .plt 1440 96 1440)\n(llvm:section-entry .init 1408 24 1408)\n(llvm:section-entry .rela.plt 1312 96 1312)\n(llvm:section-entry .rela.dyn 1120 192 1120)\n(llvm:section-entry .gnu.version_r 1072 48 1072)\n(llvm:section-entry .gnu.version 1054 18 1054)\n(llvm:section-entry .dynstr 912 141 912)\n(llvm:section-entry .dynsym 696 216 696)\n(llvm:section-entry .gnu.hash 664 28 664)\n(llvm:section-entry .note.ABI-tag 632 32 632)\n(llvm:section-entry .note.gnu.build-id 596 36 596)\n(llvm:section-entry .interp 568 27 568)\n(llvm:section-flags .shstrtab true false false)\n(llvm:section-flags .strtab true false false)\n(llvm:section-flags .symtab true false false)\n(llvm:section-flags .comment true false false)\n(llvm:section-flags .bss true true false)\n(llvm:section-flags .data true true false)\n(llvm:section-flags .got true true false)\n(llvm:section-flags .dynamic true true false)\n(llvm:section-flags .fini_array true true false)\n(llvm:section-flags .init_array true true false)\n(llvm:section-flags .eh_frame true false false)\n(llvm:section-flags .eh_frame_hdr true false false)\n(llvm:section-flags .rodata true false false)\n(llvm:section-flags .fini true false true)\n(llvm:section-flags .text true false true)\n(llvm:section-flags .plt true false true)\n(llvm:section-flags .init true false true)\n(llvm:section-flags .rela.plt true false false)\n(llvm:section-flags .rela.dyn true false false)\n(llvm:section-flags .gnu.version_r true false false)\n(llvm:section-flags .gnu.version true false false)\n(llvm:section-flags .dynstr true false false)\n(llvm:section-flags .dynsym true false false)\n(llvm:section-flags .gnu.hash true false false)\n(llvm:section-flags .note.ABI-tag true false false)\n(llvm:section-flags .note.gnu.build-id true false false)\n(llvm:section-flags .interp true false false)\n(llvm:symbol-entry abort 0 0 0 0)\n(llvm:symbol-entry __cxa_finalize 0 0 0 0)\n(llvm:symbol-entry __libc_start_main 0 0 0 0)\n(llvm:symbol-entry _init 1408 0 1408 1408)\n(llvm:symbol-entry main 1812 24 1812 1812)\n(llvm:symbol-entry _start 1536 52 1536 1536)\n(llvm:symbol-entry abort@GLIBC_2.17 0 0 0 0)\n(llvm:symbol-entry _fini 1836 0 1836 1836)\n(llvm:symbol-entry __cxa_finalize@GLIBC_2.17 0 0 0 0)\n(llvm:symbol-entry __libc_start_main@GLIBC_2.34 0 0 0 0)\n(llvm:symbol-entry frame_dummy 1808 0 1808 1808)\n(llvm:symbol-entry __do_global_dtors_aux 1728 0 1728 1728)\n(llvm:symbol-entry register_tm_clones 1664 0 1664 1664)\n(llvm:symbol-entry deregister_tm_clones 1616 0 1616 1616)\n(llvm:symbol-entry call_weak_fn 1588 20 1588 1588)\n(mapped 0 2080 0)\n(mapped 69016 632 3480)\n(named-region 0 2080 02)\n(named-region 69016 648 03)\n(named-region 568 27 .interp)\n(named-region 596 36 .note.gnu.build-id)\n(named-region 632 32 .note.ABI-tag)\n(named-region 664 28 .gnu.hash)\n(named-region 696 216 .dynsym)\n(named-region 912 141 .dynstr)\n(named-region 1054 18 .gnu.version)\n(named-region 1072 48 .gnu.version_r)\n(named-region 1120 192 .rela.dyn)\n(named-region 1312 96 .rela.plt)\n(named-region 1408 24 .init)\n(named-region 1440 96 .plt)\n(named-region 1536 300 .text)\n(named-region 1836 20 .fini)\n(named-region 1856 4 .rodata)\n(named-region 1860 60 .eh_frame_hdr)\n(named-region 1920 160 .eh_frame)\n(named-region 69016 8 .init_array)\n(named-region 69024 8 .fini_array)\n(named-region 69032 496 .dynamic)\n(named-region 69528 104 .got)\n(named-region 69632 16 .data)\n(named-region 69648 16 .bss)\n(named-region 0 43 .comment)\n(named-region 0 2136 .symtab)\n(named-region 0 557 .strtab)\n(named-region 0 250 .shstrtab)\n(named-symbol 1588 call_weak_fn)\n(named-symbol 1616 deregister_tm_clones)\n(named-symbol 1664 register_tm_clones)\n(named-symbol 1728 __do_global_dtors_aux)\n(named-symbol 1808 frame_dummy)\n(named-symbol 0 __libc_start_main@GLIBC_2.34)\n(named-symbol 0 __cxa_finalize@GLIBC_2.17)\n(named-symbol 1836 _fini)\n(named-symbol 0 abort@GLIBC_2.17)\n(named-symbol 1536 _start)\n(named-symbol 1812 main)\n(named-symbol 1408 _init)\n(named-symbol 0 __libc_start_main)\n(named-symbol 0 __cxa_finalize)\n(named-symbol 0 abort)\n(require libc.so.6)\n(section 568 27)\n(section 596 36)\n(section 632 32)\n(section 664 28)\n(section 696 216)\n(section 912 141)\n(section 1054 18)\n(section 1072 48)\n(section 1120 192)\n(section 1312 96)\n(section 1408 24)\n(section 1440 96)\n(section 1536 300)\n(section 1836 20)\n(section 1856 4)\n(section 1860 60)\n(section 1920 160)\n(section 69016 8)\n(section 69024 8)\n(section 69032 496)\n(section 69528 104)\n(section 69632 16)\n(section 69648 16)\n(section 0 43)\n(section 0 2136)\n(section 0 557)\n(section 0 250)\n(segment 0 2080 true false true)\n(segment 69016 648 true true false)\n(subarch v8)\n(symbol-chunk 1588 20 1588)\n(symbol-chunk 1536 52 1536)\n(symbol-chunk 1812 24 1812)\n(symbol-value 1588 1588)\n(symbol-value 1616 1616)\n(symbol-value 1664 1664)\n(symbol-value 1728 1728)\n(symbol-value 1808 1808)\n(symbol-value 1836 1836)\n(symbol-value 1536 1536)\n(symbol-value 1812 1812)\n(symbol-value 1408 1408)\n(symbol-value 0 0)\n(system \"\")\n(vendor \"\")\n"), -Attr("abi-name","\"aarch64-linux-gnu-elf\"")]), -Sections([Section(".shstrtab", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x00\x06\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xc0\x1b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x38\x00\x09\x00\x40\x00\x1c\x00\x1b\x00\x06\x00\x00\x00\x04\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x04\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x20\x08\x00\x00\x00\x00\x00\x00\x20\x08\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x01\x00\x00\x00\x06\x00\x00\x00\x98\x0d\x00\x00\x00\x00\x00\x00\x98\x0d"), -Section(".strtab", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x00\x06\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xc0\x1b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x38\x00\x09\x00\x40\x00\x1c\x00\x1b\x00\x06\x00\x00\x00\x04\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x04\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x20\x08\x00\x00\x00\x00\x00\x00\x20\x08\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x01\x00\x00\x00\x06\x00\x00\x00\x98\x0d\x00\x00\x00\x00\x00\x00\x98\x0d\x01\x00\x00\x00\x00\x00\x98\x0d\x01\x00\x00\x00\x00\x00\x78\x02\x00\x00\x00\x00\x00\x00\x88\x02\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x02\x00\x00\x00\x06\x00\x00\x00\xa8\x0d\x00\x00\x00\x00\x00\x00\xa8\x0d\x01\x00\x00\x00\x00\x00\xa8\x0d\x01\x00\x00\x00\x00\x00\xf0\x01\x00\x00\x00\x00\x00\x00\xf0\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x04\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x50\xe5\x74\x64\x04\x00\x00\x00\x44\x07\x00\x00\x00\x00\x00\x00\x44\x07\x00\x00\x00\x00\x00\x00\x44\x07\x00\x00\x00\x00\x00\x00\x3c\x00\x00\x00\x00\x00\x00\x00\x3c\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x51\xe5\x74\x64\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x52\xe5\x74\x64\x04\x00\x00\x00\x98\x0d\x00\x00\x00\x00\x00\x00\x98\x0d\x01\x00\x00\x00\x00\x00\x98\x0d\x01\x00\x00\x00\x00\x00\x68\x02\x00\x00\x00\x00\x00\x00\x68\x02\x00\x00\x00"), -Section(".comment", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x00\x06\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xc0\x1b\x00"), -Section(".interp", 0x238, "\x2f\x6c\x69\x62\x2f\x6c\x64\x2d\x6c\x69\x6e\x75\x78\x2d\x61\x61\x72\x63\x68\x36\x34\x2e\x73\x6f\x2e\x31\x00"), -Section(".note.gnu.build-id", 0x254, "\x04\x00\x00\x00\x14\x00\x00\x00\x03\x00\x00\x00\x47\x4e\x55\x00\x4f\xcb\x08\x3a\x69\x57\xc5\x36\x1d\x62\x35\xb3\x9f\xe9\xec\xc1\x35\x61\x74\x6d"), -Section(".note.ABI-tag", 0x278, "\x04\x00\x00\x00\x10\x00\x00\x00\x01\x00\x00\x00\x47\x4e\x55\x00\x00\x00\x00\x00\x03\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00"), -Section(".gnu.hash", 0x298, "\x01\x00\x00\x00\x01\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".dynsym", 0x2B8, "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x0b\x00\x80\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x16\x00\x00\x10\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x48\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x22\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x22\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x73\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".dynstr", 0x390, "\x00\x5f\x5f\x63\x78\x61\x5f\x66\x69\x6e\x61\x6c\x69\x7a\x65\x00\x5f\x5f\x6c\x69\x62\x63\x5f\x73\x74\x61\x72\x74\x5f\x6d\x61\x69\x6e\x00\x61\x62\x6f\x72\x74\x00\x6c\x69\x62\x63\x2e\x73\x6f\x2e\x36\x00\x47\x4c\x49\x42\x43\x5f\x32\x2e\x31\x37\x00\x47\x4c\x49\x42\x43\x5f\x32\x2e\x33\x34\x00\x5f\x49\x54\x4d\x5f\x64\x65\x72\x65\x67\x69\x73\x74\x65\x72\x54\x4d\x43\x6c\x6f\x6e\x65\x54\x61\x62\x6c\x65\x00\x5f\x5f\x67\x6d\x6f\x6e\x5f\x73\x74\x61\x72\x74\x5f\x5f\x00\x5f\x49\x54\x4d\x5f\x72\x65\x67\x69\x73\x74\x65\x72\x54\x4d\x43\x6c\x6f\x6e\x65\x54\x61\x62\x6c\x65\x00"), -Section(".gnu.version", 0x41E, "\x00\x00\x00\x00\x00\x00\x02\x00\x01\x00\x03\x00\x01\x00\x03\x00\x01\x00"), -Section(".gnu.version_r", 0x430, "\x01\x00\x02\x00\x28\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x97\x91\x96\x06\x00\x00\x03\x00\x32\x00\x00\x00\x10\x00\x00\x00\xb4\x91\x96\x06\x00\x00\x02\x00\x3d\x00\x00\x00\x00\x00\x00\x00"), -Section(".rela.dyn", 0x460, "\x98\x0d\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x10\x07\x00\x00\x00\x00\x00\x00\xa0\x0d\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\xc0\x06\x00\x00\x00\x00\x00\x00\xf0\x0f\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x14\x07\x00\x00\x00\x00\x00\x00\x08\x10\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x08\x10\x01\x00\x00\x00\x00\x00\xd8\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe0\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe8\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xf8\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".rela.plt", 0x520, "\xb0\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xb8\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xc0\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xc8\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".init", 0x580, "\x1f\x20\x03\xd5\xfd\x7b\xbf\xa9\xfd\x03\x00\x91\x2a\x00\x00\x94\xfd\x7b\xc1\xa8\xc0\x03\x5f\xd6"), -Section(".plt", 0x5A0, "\xf0\x7b\xbf\xa9\x90\x00\x00\x90\x11\xd6\x47\xf9\x10\xa2\x3e\x91\x20\x02\x1f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x90\x00\x00\x90\x11\xda\x47\xf9\x10\xc2\x3e\x91\x20\x02\x1f\xd6\x90\x00\x00\x90\x11\xde\x47\xf9\x10\xe2\x3e\x91\x20\x02\x1f\xd6\x90\x00\x00\x90\x11\xe2\x47\xf9\x10\x02\x3f\x91\x20\x02\x1f\xd6\x90\x00\x00\x90\x11\xe6\x47\xf9\x10\x22\x3f\x91\x20\x02\x1f\xd6"), -Section(".text", 0x600, "\x1f\x20\x03\xd5\x1d\x00\x80\xd2\x1e\x00\x80\xd2\xe5\x03\x00\xaa\xe1\x03\x40\xf9\xe2\x23\x00\x91\xe6\x03\x00\x91\x80\x00\x00\x90\x00\xf8\x47\xf9\x03\x00\x80\xd2\x04\x00\x80\xd2\xe5\xff\xff\x97\xf0\xff\xff\x97\x80\x00\x00\x90\x00\xf4\x47\xf9\x40\x00\x00\xb4\xe8\xff\xff\x17\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x80\x00\x00\xb0\x00\x40\x00\x91\x81\x00\x00\xb0\x21\x40\x00\x91\x3f\x00\x00\xeb\xc0\x00\x00\x54\x81\x00\x00\x90\x21\xec\x47\xf9\x61\x00\x00\xb4\xf0\x03\x01\xaa\x00\x02\x1f\xd6\xc0\x03\x5f\xd6\x80\x00\x00\xb0\x00\x40\x00\x91\x81\x00\x00\xb0\x21\x40\x00\x91\x21\x00\x00\xcb\x22\xfc\x7f\xd3\x41\x0c\x81\x8b\x21\xfc\x41\x93\xc1\x00\x00\xb4\x82\x00\x00\x90\x42\xfc\x47\xf9\x62\x00\x00\xb4\xf0\x03\x02\xaa\x00\x02\x1f\xd6\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\xfd\x7b\xbe\xa9\xfd\x03\x00\x91\xf3\x0b\x00\xf9\x93\x00\x00\xb0\x60\x42\x40\x39\x40\x01\x00\x35\x80\x00\x00\x90\x00\xf0\x47\xf9\x80\x00\x00\xb4\x80\x00\x00\xb0\x00\x04\x40\xf9\xb9\xff\xff\x97\xd8\xff\xff\x97\x20\x00\x80\x52\x60\x42\x00\x39\xf3\x0b\x40\xf9\xfd\x7b\xc2\xa8\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\xdc\xff\xff\x17\x80\x00\x00\xb0\x00\x60\x00\x91\x21\x00\x80\x52\x01\x00\x00\xb9\x00\x00\x80\x52\xc0\x03\x5f\xd6"), -Section(".fini", 0x72C, "\x1f\x20\x03\xd5\xfd\x7b\xbf\xa9\xfd\x03\x00\x91\xfd\x7b\xc1\xa8\xc0\x03\x5f\xd6"), -Section(".rodata", 0x740, "\x01\x00\x02\x00"), -Section(".eh_frame_hdr", 0x744, "\x01\x1b\x03\x3b\x38\x00\x00\x00\x06\x00\x00\x00\xbc\xfe\xff\xff\x50\x00\x00\x00\x0c\xff\xff\xff\x64\x00\x00\x00\x3c\xff\xff\xff\x78\x00\x00\x00\x7c\xff\xff\xff\x8c\x00\x00\x00\xcc\xff\xff\xff\xb0\x00\x00\x00\xd0\xff\xff\xff\xc4\x00\x00\x00"), -Section(".eh_frame", 0x780, "\x10\x00\x00\x00\x00\x00\x00\x00\x01\x7a\x52\x00\x04\x78\x1e\x01\x1b\x0c\x1f\x00\x10\x00\x00\x00\x18\x00\x00\x00\x64\xfe\xff\xff\x34\x00\x00\x00\x00\x41\x07\x1e\x10\x00\x00\x00\x2c\x00\x00\x00\xa0\xfe\xff\xff\x30\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x40\x00\x00\x00\xbc\xfe\xff\xff\x3c\x00\x00\x00\x00\x00\x00\x00\x20\x00\x00\x00\x54\x00\x00\x00\xe8\xfe\xff\xff\x48\x00\x00\x00\x00\x41\x0e\x20\x9d\x04\x9e\x03\x42\x93\x02\x4e\xde\xdd\xd3\x0e\x00\x00\x00\x00\x10\x00\x00\x00\x78\x00\x00\x00\x14\xff\xff\xff\x04\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x8c\x00\x00\x00\x04\xff\xff\xff\x18\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".fini_array", 0x10DA0, "\xc0\x06\x00\x00\x00\x00\x00\x00"), -Section(".dynamic", 0x10DA8, "\x01\x00\x00\x00\x00\x00\x00\x00\x28\x00\x00\x00\x00\x00\x00\x00\x0c\x00\x00\x00\x00\x00\x00\x00\x80\x05\x00\x00\x00\x00\x00\x00\x0d\x00\x00\x00\x00\x00\x00\x00\x2c\x07\x00\x00\x00\x00\x00\x00\x19\x00\x00\x00\x00\x00\x00\x00\x98\x0d\x01\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x1a\x00\x00\x00\x00\x00\x00\x00\xa0\x0d\x01\x00\x00\x00\x00\x00\x1c\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\xf5\xfe\xff\x6f\x00\x00\x00\x00\x98\x02\x00\x00\x00\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x90\x03\x00\x00\x00\x00\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\xb8\x02\x00\x00\x00\x00\x00\x00\x0a\x00\x00\x00\x00\x00\x00\x00\x8d\x00\x00\x00\x00\x00\x00\x00\x0b\x00\x00\x00\x00\x00\x00\x00\x18\x00\x00\x00\x00\x00\x00\x00\x15\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x98\x0f\x01\x00\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x60\x00\x00\x00\x00\x00\x00\x00\x14\x00\x00\x00\x00\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x17\x00\x00\x00\x00\x00\x00\x00\x20\x05\x00\x00\x00\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x60\x04\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\xc0\x00\x00\x00\x00\x00\x00\x00\x09\x00\x00\x00\x00\x00\x00\x00\x18\x00\x00\x00\x00\x00\x00\x00\x1e\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\xfb\xff\xff\x6f\x00\x00\x00\x00\x01\x00\x00\x08\x00\x00\x00\x00\xfe\xff\xff\x6f\x00\x00\x00\x00\x30\x04\x00\x00\x00\x00\x00\x00\xff\xff\xff\x6f\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\xf0\xff\xff\x6f\x00\x00\x00\x00\x1e\x04\x00\x00\x00\x00\x00\x00\xf9\xff\xff\x6f\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".got", 0x10F98, "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xa0\x05\x00\x00\x00\x00\x00\x00\xa0\x05\x00\x00\x00\x00\x00\x00\xa0\x05\x00\x00\x00\x00\x00\x00\xa0\x05\x00\x00\x00\x00\x00\x00\xa8\x0d\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x14\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".data", 0x11000, "\x00\x00\x00\x00\x00\x00\x00\x00\x08\x10\x01\x00\x00\x00\x00\x00"), -Section(".init_array", 0x10D98, "\x10\x07\x00\x00\x00\x00\x00\x00")]), -Memmap([Annotation(Region(0x0,0x81F), Attr("segment","02 0 2080")), -Annotation(Region(0x600,0x633), Attr("symbol","\"_start\"")), -Annotation(Region(0x0,0xF9), Attr("section","\".shstrtab\"")), -Annotation(Region(0x0,0x22C), Attr("section","\".strtab\"")), -Annotation(Region(0x0,0x2A), Attr("section","\".comment\"")), -Annotation(Region(0x238,0x252), Attr("section","\".interp\"")), -Annotation(Region(0x254,0x277), Attr("section","\".note.gnu.build-id\"")), -Annotation(Region(0x278,0x297), Attr("section","\".note.ABI-tag\"")), -Annotation(Region(0x298,0x2B3), Attr("section","\".gnu.hash\"")), -Annotation(Region(0x2B8,0x38F), Attr("section","\".dynsym\"")), -Annotation(Region(0x390,0x41C), Attr("section","\".dynstr\"")), -Annotation(Region(0x41E,0x42F), Attr("section","\".gnu.version\"")), -Annotation(Region(0x430,0x45F), Attr("section","\".gnu.version_r\"")), -Annotation(Region(0x460,0x51F), Attr("section","\".rela.dyn\"")), -Annotation(Region(0x520,0x57F), Attr("section","\".rela.plt\"")), -Annotation(Region(0x580,0x597), Attr("section","\".init\"")), -Annotation(Region(0x5A0,0x5FF), Attr("section","\".plt\"")), -Annotation(Region(0x580,0x597), Attr("code-region","()")), -Annotation(Region(0x5A0,0x5FF), Attr("code-region","()")), -Annotation(Region(0x600,0x633), Attr("symbol-info","_start 0x600 52")), -Annotation(Region(0x634,0x647), Attr("symbol","\"call_weak_fn\"")), -Annotation(Region(0x634,0x647), Attr("symbol-info","call_weak_fn 0x634 20")), -Annotation(Region(0x600,0x72B), Attr("section","\".text\"")), -Annotation(Region(0x600,0x72B), Attr("code-region","()")), -Annotation(Region(0x714,0x72B), Attr("symbol","\"main\"")), -Annotation(Region(0x714,0x72B), Attr("symbol-info","main 0x714 24")), -Annotation(Region(0x72C,0x73F), Attr("section","\".fini\"")), -Annotation(Region(0x72C,0x73F), Attr("code-region","()")), -Annotation(Region(0x740,0x743), Attr("section","\".rodata\"")), -Annotation(Region(0x744,0x77F), Attr("section","\".eh_frame_hdr\"")), -Annotation(Region(0x780,0x81F), Attr("section","\".eh_frame\"")), -Annotation(Region(0x10D98,0x1100F), Attr("segment","03 0x10D98 648")), -Annotation(Region(0x10DA0,0x10DA7), Attr("section","\".fini_array\"")), -Annotation(Region(0x10DA8,0x10F97), Attr("section","\".dynamic\"")), -Annotation(Region(0x10F98,0x10FFF), Attr("section","\".got\"")), -Annotation(Region(0x11000,0x1100F), Attr("section","\".data\"")), -Annotation(Region(0x10D98,0x10D9F), Attr("section","\".init_array\""))]), -Program(Tid(1_429, "%00000595"), Attrs([]), - Subs([Sub(Tid(1_379, "@__cxa_finalize"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x5D0"), -Attr("stub","()")]), "__cxa_finalize", Args([Arg(Tid(1_430, "%00000596"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("__cxa_finalize_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(795, "@__cxa_finalize"), - Attrs([Attr("address","0x5D0")]), Phis([]), -Defs([Def(Tid(1_043, "%00000413"), Attrs([Attr("address","0x5D0"), -Attr("insn","adrp x16, #65536")]), Var("R16",Imm(64)), Int(65536,64)), -Def(Tid(1_050, "%0000041a"), Attrs([Attr("address","0x5D4"), -Attr("insn","ldr x17, [x16, #0xfb8]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(4024,64)),LittleEndian(),64)), -Def(Tid(1_056, "%00000420"), Attrs([Attr("address","0x5D8"), -Attr("insn","add x16, x16, #0xfb8")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(4024,64)))]), Jmps([Call(Tid(1_061, "%00000425"), - Attrs([Attr("address","0x5DC"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), -Sub(Tid(1_380, "@__do_global_dtors_aux"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x6C0")]), - "__do_global_dtors_aux", Args([Arg(Tid(1_431, "%00000597"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("__do_global_dtors_aux_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(614, "@__do_global_dtors_aux"), - Attrs([Attr("address","0x6C0")]), Phis([]), Defs([Def(Tid(618, "%0000026a"), - Attrs([Attr("address","0x6C0"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("#3",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(18446744073709551584,64))), -Def(Tid(624, "%00000270"), Attrs([Attr("address","0x6C0"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("#3",Imm(64)),Var("R29",Imm(64)),LittleEndian(),64)), -Def(Tid(630, "%00000276"), Attrs([Attr("address","0x6C0"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("#3",Imm(64)),Int(8,64)),Var("R30",Imm(64)),LittleEndian(),64)), -Def(Tid(634, "%0000027a"), Attrs([Attr("address","0x6C0"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("R31",Imm(64)), -Var("#3",Imm(64))), Def(Tid(640, "%00000280"), - Attrs([Attr("address","0x6C4"), Attr("insn","mov x29, sp")]), - Var("R29",Imm(64)), Var("R31",Imm(64))), Def(Tid(648, "%00000288"), - Attrs([Attr("address","0x6C8"), Attr("insn","str x19, [sp, #0x10]")]), - Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(16,64)),Var("R19",Imm(64)),LittleEndian(),64)), -Def(Tid(653, "%0000028d"), Attrs([Attr("address","0x6CC"), -Attr("insn","adrp x19, #69632")]), Var("R19",Imm(64)), Int(69632,64)), -Def(Tid(660, "%00000294"), Attrs([Attr("address","0x6D0"), -Attr("insn","ldrb w0, [x19, #0x10]")]), Var("R0",Imm(64)), -UNSIGNED(64,Load(Var("mem",Mem(64,8)),PLUS(Var("R19",Imm(64)),Int(16,64)),LittleEndian(),8)))]), -Jmps([Goto(Tid(667, "%0000029b"), Attrs([Attr("address","0x6D4"), -Attr("insn","cbnz w0, #0x28")]), - NEQ(Extract(31,0,Var("R0",Imm(64))),Int(0,32)), -Direct(Tid(665, "%00000299"))), Goto(Tid(1_419, "%0000058b"), Attrs([]), - Int(1,1), Direct(Tid(740, "%000002e4")))])), Blk(Tid(740, "%000002e4"), - Attrs([Attr("address","0x6D8")]), Phis([]), Defs([Def(Tid(743, "%000002e7"), - Attrs([Attr("address","0x6D8"), Attr("insn","adrp x0, #65536")]), - Var("R0",Imm(64)), Int(65536,64)), Def(Tid(750, "%000002ee"), - Attrs([Attr("address","0x6DC"), Attr("insn","ldr x0, [x0, #0xfe0]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(4064,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(756, "%000002f4"), Attrs([Attr("address","0x6E0"), -Attr("insn","cbz x0, #0x10")]), EQ(Var("R0",Imm(64)),Int(0,64)), -Direct(Tid(754, "%000002f2"))), Goto(Tid(1_420, "%0000058c"), Attrs([]), - Int(1,1), Direct(Tid(779, "%0000030b")))])), Blk(Tid(779, "%0000030b"), - Attrs([Attr("address","0x6E4")]), Phis([]), Defs([Def(Tid(782, "%0000030e"), - Attrs([Attr("address","0x6E4"), Attr("insn","adrp x0, #69632")]), - Var("R0",Imm(64)), Int(69632,64)), Def(Tid(789, "%00000315"), - Attrs([Attr("address","0x6E8"), Attr("insn","ldr x0, [x0, #0x8]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(794, "%0000031a"), Attrs([Attr("address","0x6EC"), -Attr("insn","bl #-0x11c")]), Var("R30",Imm(64)), Int(1776,64))]), -Jmps([Call(Tid(797, "%0000031d"), Attrs([Attr("address","0x6EC"), -Attr("insn","bl #-0x11c")]), Int(1,1), -(Direct(Tid(1_379, "@__cxa_finalize")),Direct(Tid(754, "%000002f2"))))])), -Blk(Tid(754, "%000002f2"), Attrs([Attr("address","0x6F0")]), Phis([]), -Defs([Def(Tid(762, "%000002fa"), Attrs([Attr("address","0x6F0"), -Attr("insn","bl #-0xa0")]), Var("R30",Imm(64)), Int(1780,64))]), -Jmps([Call(Tid(764, "%000002fc"), Attrs([Attr("address","0x6F0"), -Attr("insn","bl #-0xa0")]), Int(1,1), -(Direct(Tid(1_393, "@deregister_tm_clones")),Direct(Tid(766, "%000002fe"))))])), -Blk(Tid(766, "%000002fe"), Attrs([Attr("address","0x6F4")]), Phis([]), -Defs([Def(Tid(769, "%00000301"), Attrs([Attr("address","0x6F4"), -Attr("insn","mov w0, #0x1")]), Var("R0",Imm(64)), Int(1,64)), -Def(Tid(777, "%00000309"), Attrs([Attr("address","0x6F8"), -Attr("insn","strb w0, [x19, #0x10]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R19",Imm(64)),Int(16,64)),Extract(7,0,Var("R0",Imm(64))),LittleEndian(),8))]), -Jmps([Goto(Tid(1_421, "%0000058d"), Attrs([]), Int(1,1), -Direct(Tid(665, "%00000299")))])), Blk(Tid(665, "%00000299"), - Attrs([Attr("address","0x6FC")]), Phis([]), Defs([Def(Tid(675, "%000002a3"), - Attrs([Attr("address","0x6FC"), Attr("insn","ldr x19, [sp, #0x10]")]), - Var("R19",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(16,64)),LittleEndian(),64)), -Def(Tid(682, "%000002aa"), Attrs([Attr("address","0x700"), -Attr("insn","ldp x29, x30, [sp], #0x20")]), Var("R29",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(687, "%000002af"), Attrs([Attr("address","0x700"), -Attr("insn","ldp x29, x30, [sp], #0x20")]), Var("R30",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(691, "%000002b3"), Attrs([Attr("address","0x700"), -Attr("insn","ldp x29, x30, [sp], #0x20")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(32,64)))]), Jmps([Call(Tid(696, "%000002b8"), - Attrs([Attr("address","0x704"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), Sub(Tid(1_384, "@__libc_start_main"), - Attrs([Attr("c.proto","signed (*)(signed (*)(signed , char** , char** );* main, signed , char** , \nvoid* auxv)"), -Attr("address","0x5C0"), Attr("stub","()")]), "__libc_start_main", - Args([Arg(Tid(1_432, "%00000598"), - Attrs([Attr("c.layout","**[ : 64]"), -Attr("c.data","Top:u64 ptr ptr"), -Attr("c.type","signed (*)(signed , char** , char** );*")]), - Var("__libc_start_main_main",Imm(64)), Var("R0",Imm(64)), In()), -Arg(Tid(1_433, "%00000599"), Attrs([Attr("c.layout","[signed : 32]"), -Attr("c.data","Top:u32"), Attr("c.type","signed")]), - Var("__libc_start_main_arg2",Imm(32)), LOW(32,Var("R1",Imm(64))), In()), -Arg(Tid(1_434, "%0000059a"), Attrs([Attr("c.layout","**[char : 8]"), -Attr("c.data","Top:u8 ptr ptr"), Attr("c.type","char**")]), - Var("__libc_start_main_arg3",Imm(64)), Var("R2",Imm(64)), Both()), -Arg(Tid(1_435, "%0000059b"), Attrs([Attr("c.layout","*[ : 8]"), -Attr("c.data","{} ptr"), Attr("c.type","void*")]), - Var("__libc_start_main_auxv",Imm(64)), Var("R3",Imm(64)), Both()), -Arg(Tid(1_436, "%0000059c"), Attrs([Attr("c.layout","[signed : 32]"), -Attr("c.data","Top:u32"), Attr("c.type","signed")]), - Var("__libc_start_main_result",Imm(32)), LOW(32,Var("R0",Imm(64))), -Out())]), Blks([Blk(Tid(447, "@__libc_start_main"), - Attrs([Attr("address","0x5C0")]), Phis([]), -Defs([Def(Tid(1_021, "%000003fd"), Attrs([Attr("address","0x5C0"), -Attr("insn","adrp x16, #65536")]), Var("R16",Imm(64)), Int(65536,64)), -Def(Tid(1_028, "%00000404"), Attrs([Attr("address","0x5C4"), -Attr("insn","ldr x17, [x16, #0xfb0]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(4016,64)),LittleEndian(),64)), -Def(Tid(1_034, "%0000040a"), Attrs([Attr("address","0x5C8"), -Attr("insn","add x16, x16, #0xfb0")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(4016,64)))]), Jmps([Call(Tid(1_039, "%0000040f"), - Attrs([Attr("address","0x5CC"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), Sub(Tid(1_385, "@_fini"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x72C")]), - "_fini", Args([Arg(Tid(1_437, "%0000059d"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("_fini_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(31, "@_fini"), - Attrs([Attr("address","0x72C")]), Phis([]), Defs([Def(Tid(37, "%00000025"), - Attrs([Attr("address","0x730"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("#0",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(18446744073709551600,64))), -Def(Tid(43, "%0000002b"), Attrs([Attr("address","0x730"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("#0",Imm(64)),Var("R29",Imm(64)),LittleEndian(),64)), -Def(Tid(49, "%00000031"), Attrs([Attr("address","0x730"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("#0",Imm(64)),Int(8,64)),Var("R30",Imm(64)),LittleEndian(),64)), -Def(Tid(53, "%00000035"), Attrs([Attr("address","0x730"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("R31",Imm(64)), -Var("#0",Imm(64))), Def(Tid(59, "%0000003b"), Attrs([Attr("address","0x734"), -Attr("insn","mov x29, sp")]), Var("R29",Imm(64)), Var("R31",Imm(64))), -Def(Tid(66, "%00000042"), Attrs([Attr("address","0x738"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R29",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(71, "%00000047"), Attrs([Attr("address","0x738"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R30",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(75, "%0000004b"), Attrs([Attr("address","0x738"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(16,64)))]), Jmps([Call(Tid(80, "%00000050"), - Attrs([Attr("address","0x73C"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), Sub(Tid(1_386, "@_init"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x580")]), - "_init", Args([Arg(Tid(1_438, "%0000059e"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("_init_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(1_215, "@_init"), - Attrs([Attr("address","0x580")]), Phis([]), -Defs([Def(Tid(1_221, "%000004c5"), Attrs([Attr("address","0x584"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("#5",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(18446744073709551600,64))), -Def(Tid(1_227, "%000004cb"), Attrs([Attr("address","0x584"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("#5",Imm(64)),Var("R29",Imm(64)),LittleEndian(),64)), -Def(Tid(1_233, "%000004d1"), Attrs([Attr("address","0x584"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("#5",Imm(64)),Int(8,64)),Var("R30",Imm(64)),LittleEndian(),64)), -Def(Tid(1_237, "%000004d5"), Attrs([Attr("address","0x584"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("R31",Imm(64)), -Var("#5",Imm(64))), Def(Tid(1_243, "%000004db"), - Attrs([Attr("address","0x588"), Attr("insn","mov x29, sp")]), - Var("R29",Imm(64)), Var("R31",Imm(64))), Def(Tid(1_248, "%000004e0"), - Attrs([Attr("address","0x58C"), Attr("insn","bl #0xa8")]), - Var("R30",Imm(64)), Int(1424,64))]), Jmps([Call(Tid(1_250, "%000004e2"), - Attrs([Attr("address","0x58C"), Attr("insn","bl #0xa8")]), Int(1,1), -(Direct(Tid(1_391, "@call_weak_fn")),Direct(Tid(1_252, "%000004e4"))))])), -Blk(Tid(1_252, "%000004e4"), Attrs([Attr("address","0x590")]), Phis([]), -Defs([Def(Tid(1_257, "%000004e9"), Attrs([Attr("address","0x590"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R29",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(1_262, "%000004ee"), Attrs([Attr("address","0x590"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R30",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(1_266, "%000004f2"), Attrs([Attr("address","0x590"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(16,64)))]), Jmps([Call(Tid(1_271, "%000004f7"), - Attrs([Attr("address","0x594"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), Sub(Tid(1_387, "@_start"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x600"), -Attr("stub","()"), Attr("entry-point","()")]), "_start", - Args([Arg(Tid(1_439, "%0000059f"), Attrs([Attr("c.layout","[signed : 32]"), -Attr("c.data","Top:u32"), Attr("c.type","signed")]), - Var("_start_result",Imm(32)), LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(384, "@_start"), Attrs([Attr("address","0x600")]), Phis([]), -Defs([Def(Tid(389, "%00000185"), Attrs([Attr("address","0x604"), -Attr("insn","mov x29, #0x0")]), Var("R29",Imm(64)), Int(0,64)), -Def(Tid(394, "%0000018a"), Attrs([Attr("address","0x608"), -Attr("insn","mov x30, #0x0")]), Var("R30",Imm(64)), Int(0,64)), -Def(Tid(400, "%00000190"), Attrs([Attr("address","0x60C"), -Attr("insn","mov x5, x0")]), Var("R5",Imm(64)), Var("R0",Imm(64))), -Def(Tid(407, "%00000197"), Attrs([Attr("address","0x610"), -Attr("insn","ldr x1, [sp]")]), Var("R1",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(413, "%0000019d"), Attrs([Attr("address","0x614"), -Attr("insn","add x2, sp, #0x8")]), Var("R2",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(8,64))), Def(Tid(419, "%000001a3"), - Attrs([Attr("address","0x618"), Attr("insn","mov x6, sp")]), - Var("R6",Imm(64)), Var("R31",Imm(64))), Def(Tid(424, "%000001a8"), - Attrs([Attr("address","0x61C"), Attr("insn","adrp x0, #65536")]), - Var("R0",Imm(64)), Int(65536,64)), Def(Tid(431, "%000001af"), - Attrs([Attr("address","0x620"), Attr("insn","ldr x0, [x0, #0xff0]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(4080,64)),LittleEndian(),64)), -Def(Tid(436, "%000001b4"), Attrs([Attr("address","0x624"), -Attr("insn","mov x3, #0x0")]), Var("R3",Imm(64)), Int(0,64)), -Def(Tid(441, "%000001b9"), Attrs([Attr("address","0x628"), -Attr("insn","mov x4, #0x0")]), Var("R4",Imm(64)), Int(0,64)), -Def(Tid(446, "%000001be"), Attrs([Attr("address","0x62C"), -Attr("insn","bl #-0x6c")]), Var("R30",Imm(64)), Int(1584,64))]), -Jmps([Call(Tid(449, "%000001c1"), Attrs([Attr("address","0x62C"), -Attr("insn","bl #-0x6c")]), Int(1,1), -(Direct(Tid(1_384, "@__libc_start_main")),Direct(Tid(451, "%000001c3"))))])), -Blk(Tid(451, "%000001c3"), Attrs([Attr("address","0x630")]), Phis([]), -Defs([Def(Tid(454, "%000001c6"), Attrs([Attr("address","0x630"), -Attr("insn","bl #-0x40")]), Var("R30",Imm(64)), Int(1588,64))]), -Jmps([Call(Tid(457, "%000001c9"), Attrs([Attr("address","0x630"), -Attr("insn","bl #-0x40")]), Int(1,1), -(Direct(Tid(1_390, "@abort")),Direct(Tid(1_422, "%0000058e"))))])), -Blk(Tid(1_422, "%0000058e"), Attrs([]), Phis([]), Defs([]), -Jmps([Call(Tid(1_423, "%0000058f"), Attrs([]), Int(1,1), -(Direct(Tid(1_391, "@call_weak_fn")),))]))])), Sub(Tid(1_390, "@abort"), - Attrs([Attr("noreturn","()"), Attr("c.proto","void (*)(void)"), -Attr("address","0x5F0"), Attr("stub","()")]), "abort", Args([]), -Blks([Blk(Tid(455, "@abort"), Attrs([Attr("address","0x5F0")]), Phis([]), -Defs([Def(Tid(1_087, "%0000043f"), Attrs([Attr("address","0x5F0"), -Attr("insn","adrp x16, #65536")]), Var("R16",Imm(64)), Int(65536,64)), -Def(Tid(1_094, "%00000446"), Attrs([Attr("address","0x5F4"), -Attr("insn","ldr x17, [x16, #0xfc8]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(4040,64)),LittleEndian(),64)), -Def(Tid(1_100, "%0000044c"), Attrs([Attr("address","0x5F8"), -Attr("insn","add x16, x16, #0xfc8")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(4040,64)))]), Jmps([Call(Tid(1_105, "%00000451"), - Attrs([Attr("address","0x5FC"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), Sub(Tid(1_391, "@call_weak_fn"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x634")]), - "call_weak_fn", Args([Arg(Tid(1_440, "%000005a0"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("call_weak_fn_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(459, "@call_weak_fn"), - Attrs([Attr("address","0x634")]), Phis([]), Defs([Def(Tid(462, "%000001ce"), - Attrs([Attr("address","0x634"), Attr("insn","adrp x0, #65536")]), - Var("R0",Imm(64)), Int(65536,64)), Def(Tid(469, "%000001d5"), - Attrs([Attr("address","0x638"), Attr("insn","ldr x0, [x0, #0xfe8]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(4072,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(475, "%000001db"), Attrs([Attr("address","0x63C"), -Attr("insn","cbz x0, #0x8")]), EQ(Var("R0",Imm(64)),Int(0,64)), -Direct(Tid(473, "%000001d9"))), Goto(Tid(1_424, "%00000590"), Attrs([]), - Int(1,1), Direct(Tid(859, "%0000035b")))])), Blk(Tid(473, "%000001d9"), - Attrs([Attr("address","0x644")]), Phis([]), Defs([]), -Jmps([Call(Tid(481, "%000001e1"), Attrs([Attr("address","0x644"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))])), -Blk(Tid(859, "%0000035b"), Attrs([Attr("address","0x640")]), Phis([]), -Defs([]), Jmps([Goto(Tid(862, "%0000035e"), Attrs([Attr("address","0x640"), -Attr("insn","b #-0x60")]), Int(1,1), Direct(Tid(860, "@__gmon_start__")))])), -Blk(Tid(860, "@__gmon_start__"), Attrs([Attr("address","0x5E0")]), Phis([]), -Defs([Def(Tid(1_065, "%00000429"), Attrs([Attr("address","0x5E0"), -Attr("insn","adrp x16, #65536")]), Var("R16",Imm(64)), Int(65536,64)), -Def(Tid(1_072, "%00000430"), Attrs([Attr("address","0x5E4"), -Attr("insn","ldr x17, [x16, #0xfc0]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(4032,64)),LittleEndian(),64)), -Def(Tid(1_078, "%00000436"), Attrs([Attr("address","0x5E8"), -Attr("insn","add x16, x16, #0xfc0")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(4032,64)))]), Jmps([Call(Tid(1_083, "%0000043b"), - Attrs([Attr("address","0x5EC"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), -Sub(Tid(1_393, "@deregister_tm_clones"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x650")]), - "deregister_tm_clones", Args([Arg(Tid(1_441, "%000005a1"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("deregister_tm_clones_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(487, "@deregister_tm_clones"), - Attrs([Attr("address","0x650")]), Phis([]), Defs([Def(Tid(490, "%000001ea"), - Attrs([Attr("address","0x650"), Attr("insn","adrp x0, #69632")]), - Var("R0",Imm(64)), Int(69632,64)), Def(Tid(496, "%000001f0"), - Attrs([Attr("address","0x654"), Attr("insn","add x0, x0, #0x10")]), - Var("R0",Imm(64)), PLUS(Var("R0",Imm(64)),Int(16,64))), -Def(Tid(501, "%000001f5"), Attrs([Attr("address","0x658"), -Attr("insn","adrp x1, #69632")]), Var("R1",Imm(64)), Int(69632,64)), -Def(Tid(507, "%000001fb"), Attrs([Attr("address","0x65C"), -Attr("insn","add x1, x1, #0x10")]), Var("R1",Imm(64)), -PLUS(Var("R1",Imm(64)),Int(16,64))), Def(Tid(513, "%00000201"), - Attrs([Attr("address","0x660"), Attr("insn","cmp x1, x0")]), - Var("#1",Imm(64)), NOT(Var("R0",Imm(64)))), Def(Tid(518, "%00000206"), - Attrs([Attr("address","0x660"), Attr("insn","cmp x1, x0")]), - Var("#2",Imm(64)), PLUS(Var("R1",Imm(64)),NOT(Var("R0",Imm(64))))), -Def(Tid(524, "%0000020c"), Attrs([Attr("address","0x660"), -Attr("insn","cmp x1, x0")]), Var("VF",Imm(1)), -NEQ(SIGNED(65,PLUS(Var("#2",Imm(64)),Int(1,64))),PLUS(PLUS(SIGNED(65,Var("R1",Imm(64))),SIGNED(65,Var("#1",Imm(64)))),Int(1,65)))), -Def(Tid(530, "%00000212"), Attrs([Attr("address","0x660"), -Attr("insn","cmp x1, x0")]), Var("CF",Imm(1)), -NEQ(UNSIGNED(65,PLUS(Var("#2",Imm(64)),Int(1,64))),PLUS(PLUS(UNSIGNED(65,Var("R1",Imm(64))),UNSIGNED(65,Var("#1",Imm(64)))),Int(1,65)))), -Def(Tid(534, "%00000216"), Attrs([Attr("address","0x660"), -Attr("insn","cmp x1, x0")]), Var("ZF",Imm(1)), -EQ(PLUS(Var("#2",Imm(64)),Int(1,64)),Int(0,64))), Def(Tid(538, "%0000021a"), - Attrs([Attr("address","0x660"), Attr("insn","cmp x1, x0")]), - Var("NF",Imm(1)), Extract(63,63,PLUS(Var("#2",Imm(64)),Int(1,64))))]), -Jmps([Goto(Tid(544, "%00000220"), Attrs([Attr("address","0x664"), -Attr("insn","b.eq #0x18")]), EQ(Var("ZF",Imm(1)),Int(1,1)), -Direct(Tid(542, "%0000021e"))), Goto(Tid(1_425, "%00000591"), Attrs([]), - Int(1,1), Direct(Tid(829, "%0000033d")))])), Blk(Tid(829, "%0000033d"), - Attrs([Attr("address","0x668")]), Phis([]), Defs([Def(Tid(832, "%00000340"), - Attrs([Attr("address","0x668"), Attr("insn","adrp x1, #65536")]), - Var("R1",Imm(64)), Int(65536,64)), Def(Tid(839, "%00000347"), - Attrs([Attr("address","0x66C"), Attr("insn","ldr x1, [x1, #0xfd8]")]), - Var("R1",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R1",Imm(64)),Int(4056,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(844, "%0000034c"), Attrs([Attr("address","0x670"), -Attr("insn","cbz x1, #0xc")]), EQ(Var("R1",Imm(64)),Int(0,64)), -Direct(Tid(542, "%0000021e"))), Goto(Tid(1_426, "%00000592"), Attrs([]), - Int(1,1), Direct(Tid(848, "%00000350")))])), Blk(Tid(542, "%0000021e"), - Attrs([Attr("address","0x67C")]), Phis([]), Defs([]), -Jmps([Call(Tid(550, "%00000226"), Attrs([Attr("address","0x67C"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))])), -Blk(Tid(848, "%00000350"), Attrs([Attr("address","0x674")]), Phis([]), -Defs([Def(Tid(852, "%00000354"), Attrs([Attr("address","0x674"), -Attr("insn","mov x16, x1")]), Var("R16",Imm(64)), Var("R1",Imm(64)))]), -Jmps([Call(Tid(857, "%00000359"), Attrs([Attr("address","0x678"), -Attr("insn","br x16")]), Int(1,1), (Indirect(Var("R16",Imm(64))),))]))])), -Sub(Tid(1_396, "@frame_dummy"), Attrs([Attr("c.proto","signed (*)(void)"), -Attr("address","0x710")]), "frame_dummy", Args([Arg(Tid(1_442, "%000005a2"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("frame_dummy_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(702, "@frame_dummy"), - Attrs([Attr("address","0x710")]), Phis([]), Defs([]), -Jmps([Call(Tid(704, "%000002c0"), Attrs([Attr("address","0x710"), -Attr("insn","b #-0x90")]), Int(1,1), -(Direct(Tid(1_398, "@register_tm_clones")),))]))])), Sub(Tid(1_397, "@main"), - Attrs([Attr("c.proto","signed (*)(signed argc, const char** argv)"), -Attr("address","0x714")]), "main", Args([Arg(Tid(1_443, "%000005a3"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("main_argc",Imm(32)), -LOW(32,Var("R0",Imm(64))), In()), Arg(Tid(1_444, "%000005a4"), - Attrs([Attr("c.layout","**[char : 8]"), Attr("c.data","Top:u8 ptr ptr"), -Attr("c.type"," const char**")]), Var("main_argv",Imm(64)), -Var("R1",Imm(64)), Both()), Arg(Tid(1_445, "%000005a5"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("main_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(706, "@main"), - Attrs([Attr("address","0x714")]), Phis([]), Defs([Def(Tid(709, "%000002c5"), - Attrs([Attr("address","0x714"), Attr("insn","adrp x0, #69632")]), - Var("R0",Imm(64)), Int(69632,64)), Def(Tid(715, "%000002cb"), - Attrs([Attr("address","0x718"), Attr("insn","add x0, x0, #0x18")]), - Var("R0",Imm(64)), PLUS(Var("R0",Imm(64)),Int(24,64))), -Def(Tid(720, "%000002d0"), Attrs([Attr("address","0x71C"), -Attr("insn","mov w1, #0x1")]), Var("R1",Imm(64)), Int(1,64)), -Def(Tid(728, "%000002d8"), Attrs([Attr("address","0x720"), -Attr("insn","str w1, [x0]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("R0",Imm(64)),Extract(31,0,Var("R1",Imm(64))),LittleEndian(),32)), -Def(Tid(733, "%000002dd"), Attrs([Attr("address","0x724"), -Attr("insn","mov w0, #0x0")]), Var("R0",Imm(64)), Int(0,64))]), -Jmps([Call(Tid(738, "%000002e2"), Attrs([Attr("address","0x728"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))]))])), -Sub(Tid(1_398, "@register_tm_clones"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x680")]), - "register_tm_clones", Args([Arg(Tid(1_446, "%000005a6"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("register_tm_clones_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(552, "@register_tm_clones"), Attrs([Attr("address","0x680")]), - Phis([]), Defs([Def(Tid(555, "%0000022b"), Attrs([Attr("address","0x680"), -Attr("insn","adrp x0, #69632")]), Var("R0",Imm(64)), Int(69632,64)), -Def(Tid(561, "%00000231"), Attrs([Attr("address","0x684"), -Attr("insn","add x0, x0, #0x10")]), Var("R0",Imm(64)), -PLUS(Var("R0",Imm(64)),Int(16,64))), Def(Tid(566, "%00000236"), - Attrs([Attr("address","0x688"), Attr("insn","adrp x1, #69632")]), - Var("R1",Imm(64)), Int(69632,64)), Def(Tid(572, "%0000023c"), - Attrs([Attr("address","0x68C"), Attr("insn","add x1, x1, #0x10")]), - Var("R1",Imm(64)), PLUS(Var("R1",Imm(64)),Int(16,64))), -Def(Tid(579, "%00000243"), Attrs([Attr("address","0x690"), -Attr("insn","sub x1, x1, x0")]), Var("R1",Imm(64)), -PLUS(PLUS(Var("R1",Imm(64)),NOT(Var("R0",Imm(64)))),Int(1,64))), -Def(Tid(585, "%00000249"), Attrs([Attr("address","0x694"), -Attr("insn","lsr x2, x1, #63")]), Var("R2",Imm(64)), -Concat(Int(0,63),Extract(63,63,Var("R1",Imm(64))))), -Def(Tid(592, "%00000250"), Attrs([Attr("address","0x698"), -Attr("insn","add x1, x2, x1, asr #3")]), Var("R1",Imm(64)), -PLUS(Var("R2",Imm(64)),ARSHIFT(Var("R1",Imm(64)),Int(3,3)))), -Def(Tid(598, "%00000256"), Attrs([Attr("address","0x69C"), -Attr("insn","asr x1, x1, #1")]), Var("R1",Imm(64)), -SIGNED(64,Extract(63,1,Var("R1",Imm(64)))))]), -Jmps([Goto(Tid(604, "%0000025c"), Attrs([Attr("address","0x6A0"), -Attr("insn","cbz x1, #0x18")]), EQ(Var("R1",Imm(64)),Int(0,64)), -Direct(Tid(602, "%0000025a"))), Goto(Tid(1_427, "%00000593"), Attrs([]), - Int(1,1), Direct(Tid(799, "%0000031f")))])), Blk(Tid(799, "%0000031f"), - Attrs([Attr("address","0x6A4")]), Phis([]), Defs([Def(Tid(802, "%00000322"), - Attrs([Attr("address","0x6A4"), Attr("insn","adrp x2, #65536")]), - Var("R2",Imm(64)), Int(65536,64)), Def(Tid(809, "%00000329"), - Attrs([Attr("address","0x6A8"), Attr("insn","ldr x2, [x2, #0xff8]")]), - Var("R2",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R2",Imm(64)),Int(4088,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(814, "%0000032e"), Attrs([Attr("address","0x6AC"), -Attr("insn","cbz x2, #0xc")]), EQ(Var("R2",Imm(64)),Int(0,64)), -Direct(Tid(602, "%0000025a"))), Goto(Tid(1_428, "%00000594"), Attrs([]), - Int(1,1), Direct(Tid(818, "%00000332")))])), Blk(Tid(602, "%0000025a"), - Attrs([Attr("address","0x6B8")]), Phis([]), Defs([]), -Jmps([Call(Tid(610, "%00000262"), Attrs([Attr("address","0x6B8"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))])), -Blk(Tid(818, "%00000332"), Attrs([Attr("address","0x6B0")]), Phis([]), -Defs([Def(Tid(822, "%00000336"), Attrs([Attr("address","0x6B0"), -Attr("insn","mov x16, x2")]), Var("R16",Imm(64)), Var("R2",Imm(64)))]), -Jmps([Call(Tid(827, "%0000033b"), Attrs([Attr("address","0x6B4"), -Attr("insn","br x16")]), Int(1,1), -(Indirect(Var("R16",Imm(64))),))]))]))]))) \ No newline at end of file diff --git a/src/test/correct/using_gamma_write_z/gcc/using_gamma_write_z.bir b/src/test/correct/using_gamma_write_z/gcc/using_gamma_write_z.bir deleted file mode 100644 index 4ec72e984..000000000 --- a/src/test/correct/using_gamma_write_z/gcc/using_gamma_write_z.bir +++ /dev/null @@ -1,228 +0,0 @@ -00000595: program -00000563: sub __cxa_finalize(__cxa_finalize_result) -00000596: __cxa_finalize_result :: out u32 = low:32[R0] - -0000031b: -00000413: R16 := 0x10000 -0000041a: R17 := mem[R16 + 0xFB8, el]:u64 -00000420: R16 := R16 + 0xFB8 -00000425: call R17 with noreturn - -00000564: sub __do_global_dtors_aux(__do_global_dtors_aux_result) -00000597: __do_global_dtors_aux_result :: out u32 = low:32[R0] - -00000266: -0000026a: #3 := R31 - 0x20 -00000270: mem := mem with [#3, el]:u64 <- R29 -00000276: mem := mem with [#3 + 8, el]:u64 <- R30 -0000027a: R31 := #3 -00000280: R29 := R31 -00000288: mem := mem with [R31 + 0x10, el]:u64 <- R19 -0000028d: R19 := 0x11000 -00000294: R0 := pad:64[mem[R19 + 0x10]] -0000029b: when 31:0[R0] <> 0 goto %00000299 -0000058b: goto %000002e4 - -000002e4: -000002e7: R0 := 0x10000 -000002ee: R0 := mem[R0 + 0xFE0, el]:u64 -000002f4: when R0 = 0 goto %000002f2 -0000058c: goto %0000030b - -0000030b: -0000030e: R0 := 0x11000 -00000315: R0 := mem[R0 + 8, el]:u64 -0000031a: R30 := 0x6F0 -0000031d: call @__cxa_finalize with return %000002f2 - -000002f2: -000002fa: R30 := 0x6F4 -000002fc: call @deregister_tm_clones with return %000002fe - -000002fe: -00000301: R0 := 1 -00000309: mem := mem with [R19 + 0x10] <- 7:0[R0] -0000058d: goto %00000299 - -00000299: -000002a3: R19 := mem[R31 + 0x10, el]:u64 -000002aa: R29 := mem[R31, el]:u64 -000002af: R30 := mem[R31 + 8, el]:u64 -000002b3: R31 := R31 + 0x20 -000002b8: call R30 with noreturn - -00000568: sub __libc_start_main(__libc_start_main_main, __libc_start_main_arg2, __libc_start_main_arg3, __libc_start_main_auxv, __libc_start_main_result) -00000598: __libc_start_main_main :: in u64 = R0 -00000599: __libc_start_main_arg2 :: in u32 = low:32[R1] -0000059a: __libc_start_main_arg3 :: in out u64 = R2 -0000059b: __libc_start_main_auxv :: in out u64 = R3 -0000059c: __libc_start_main_result :: out u32 = low:32[R0] - -000001bf: -000003fd: R16 := 0x10000 -00000404: R17 := mem[R16 + 0xFB0, el]:u64 -0000040a: R16 := R16 + 0xFB0 -0000040f: call R17 with noreturn - -00000569: sub _fini(_fini_result) -0000059d: _fini_result :: out u32 = low:32[R0] - -0000001f: -00000025: #0 := R31 - 0x10 -0000002b: mem := mem with [#0, el]:u64 <- R29 -00000031: mem := mem with [#0 + 8, el]:u64 <- R30 -00000035: R31 := #0 -0000003b: R29 := R31 -00000042: R29 := mem[R31, el]:u64 -00000047: R30 := mem[R31 + 8, el]:u64 -0000004b: R31 := R31 + 0x10 -00000050: call R30 with noreturn - -0000056a: sub _init(_init_result) -0000059e: _init_result :: out u32 = low:32[R0] - -000004bf: -000004c5: #5 := R31 - 0x10 -000004cb: mem := mem with [#5, el]:u64 <- R29 -000004d1: mem := mem with [#5 + 8, el]:u64 <- R30 -000004d5: R31 := #5 -000004db: R29 := R31 -000004e0: R30 := 0x590 -000004e2: call @call_weak_fn with return %000004e4 - -000004e4: -000004e9: R29 := mem[R31, el]:u64 -000004ee: R30 := mem[R31 + 8, el]:u64 -000004f2: R31 := R31 + 0x10 -000004f7: call R30 with noreturn - -0000056b: sub _start(_start_result) -0000059f: _start_result :: out u32 = low:32[R0] - -00000180: -00000185: R29 := 0 -0000018a: R30 := 0 -00000190: R5 := R0 -00000197: R1 := mem[R31, el]:u64 -0000019d: R2 := R31 + 8 -000001a3: R6 := R31 -000001a8: R0 := 0x10000 -000001af: R0 := mem[R0 + 0xFF0, el]:u64 -000001b4: R3 := 0 -000001b9: R4 := 0 -000001be: R30 := 0x630 -000001c1: call @__libc_start_main with return %000001c3 - -000001c3: -000001c6: R30 := 0x634 -000001c9: call @abort with return %0000058e - -0000058e: -0000058f: call @call_weak_fn with noreturn - -0000056e: sub abort() - - -000001c7: -0000043f: R16 := 0x10000 -00000446: R17 := mem[R16 + 0xFC8, el]:u64 -0000044c: R16 := R16 + 0xFC8 -00000451: call R17 with noreturn - -0000056f: sub call_weak_fn(call_weak_fn_result) -000005a0: call_weak_fn_result :: out u32 = low:32[R0] - -000001cb: -000001ce: R0 := 0x10000 -000001d5: R0 := mem[R0 + 0xFE8, el]:u64 -000001db: when R0 = 0 goto %000001d9 -00000590: goto %0000035b - -000001d9: -000001e1: call R30 with noreturn - -0000035b: -0000035e: goto @__gmon_start__ - -0000035c: -00000429: R16 := 0x10000 -00000430: R17 := mem[R16 + 0xFC0, el]:u64 -00000436: R16 := R16 + 0xFC0 -0000043b: call R17 with noreturn - -00000571: sub deregister_tm_clones(deregister_tm_clones_result) -000005a1: deregister_tm_clones_result :: out u32 = low:32[R0] - -000001e7: -000001ea: R0 := 0x11000 -000001f0: R0 := R0 + 0x10 -000001f5: R1 := 0x11000 -000001fb: R1 := R1 + 0x10 -00000201: #1 := ~R0 -00000206: #2 := R1 + ~R0 -0000020c: VF := extend:65[#2 + 1] <> extend:65[R1] + extend:65[#1] + 1 -00000212: CF := pad:65[#2 + 1] <> pad:65[R1] + pad:65[#1] + 1 -00000216: ZF := #2 + 1 = 0 -0000021a: NF := 63:63[#2 + 1] -00000220: when ZF goto %0000021e -00000591: goto %0000033d - -0000033d: -00000340: R1 := 0x10000 -00000347: R1 := mem[R1 + 0xFD8, el]:u64 -0000034c: when R1 = 0 goto %0000021e -00000592: goto %00000350 - -0000021e: -00000226: call R30 with noreturn - -00000350: -00000354: R16 := R1 -00000359: call R16 with noreturn - -00000574: sub frame_dummy(frame_dummy_result) -000005a2: frame_dummy_result :: out u32 = low:32[R0] - -000002be: -000002c0: call @register_tm_clones with noreturn - -00000575: sub main(main_argc, main_argv, main_result) -000005a3: main_argc :: in u32 = low:32[R0] -000005a4: main_argv :: in out u64 = R1 -000005a5: main_result :: out u32 = low:32[R0] - -000002c2: -000002c5: R0 := 0x11000 -000002cb: R0 := R0 + 0x18 -000002d0: R1 := 1 -000002d8: mem := mem with [R0, el]:u32 <- 31:0[R1] -000002dd: R0 := 0 -000002e2: call R30 with noreturn - -00000576: sub register_tm_clones(register_tm_clones_result) -000005a6: register_tm_clones_result :: out u32 = low:32[R0] - -00000228: -0000022b: R0 := 0x11000 -00000231: R0 := R0 + 0x10 -00000236: R1 := 0x11000 -0000023c: R1 := R1 + 0x10 -00000243: R1 := R1 + ~R0 + 1 -00000249: R2 := 0.63:63[R1] -00000250: R1 := R2 + (R1 ~>> 3) -00000256: R1 := extend:64[63:1[R1]] -0000025c: when R1 = 0 goto %0000025a -00000593: goto %0000031f - -0000031f: -00000322: R2 := 0x10000 -00000329: R2 := mem[R2 + 0xFF8, el]:u64 -0000032e: when R2 = 0 goto %0000025a -00000594: goto %00000332 - -0000025a: -00000262: call R30 with noreturn - -00000332: -00000336: R16 := R2 -0000033b: call R16 with noreturn diff --git a/src/test/correct/using_gamma_write_z/gcc/using_gamma_write_z.expected b/src/test/correct/using_gamma_write_z/gcc/using_gamma_write_z.expected index 6c84eb372..842fc9472 100644 --- a/src/test/correct/using_gamma_write_z/gcc/using_gamma_write_z.expected +++ b/src/test/correct/using_gamma_write_z/gcc/using_gamma_write_z.expected @@ -1,13 +1,15 @@ var {:extern} Gamma_R0: bool; var {:extern} Gamma_R1: bool; +var {:extern} Gamma_R2: bool; var {:extern} Gamma_mem: [bv64]bool; var {:extern} R0: bv64; var {:extern} R1: bv64; +var {:extern} R2: bv64; var {:extern} mem: [bv64]bv8; const {:extern} $x_addr: bv64; -axiom ($x_addr == 69652bv64); +axiom ($x_addr == 4325400bv64); const {:extern} $z_addr: bv64; -axiom ($z_addr == 69656bv64); +axiom ($z_addr == 4325396bv64); function {:extern} L(mem$in: [bv64]bv8, index: bv64) returns (bool) { (if (index == $z_addr) then true else (if (index == $x_addr) then (memory_load32_le(mem$in, $z_addr) == 0bv32) else false)) } @@ -17,6 +19,10 @@ function {:extern} gamma_load32(gammaMap: [bv64]bool, index: bv64) returns (bool (gammaMap[bvadd64(index, 3bv64)] && (gammaMap[bvadd64(index, 2bv64)] && (gammaMap[bvadd64(index, 1bv64)] && gammaMap[index]))) } +function {:extern} gamma_load64(gammaMap: [bv64]bool, index: bv64) returns (bool) { + (gammaMap[bvadd64(index, 7bv64)] && (gammaMap[bvadd64(index, 6bv64)] && (gammaMap[bvadd64(index, 5bv64)] && (gammaMap[bvadd64(index, 4bv64)] && (gammaMap[bvadd64(index, 3bv64)] && (gammaMap[bvadd64(index, 2bv64)] && (gammaMap[bvadd64(index, 1bv64)] && gammaMap[index]))))))) +} + function {:extern} gamma_store32(gammaMap: [bv64]bool, index: bv64, value: bool) returns ([bv64]bool) { gammaMap[index := value][bvadd64(index, 1bv64) := value][bvadd64(index, 2bv64) := value][bvadd64(index, 3bv64) := value] } @@ -37,11 +43,7 @@ procedure {:extern} rely(); modifies Gamma_mem, mem; ensures (forall i: bv64 :: (((mem[i] == old(mem[i])) ==> (Gamma_mem[i] == old(Gamma_mem[i]))))); ensures ((old(memory_load32_le(mem, $x_addr)) == memory_load32_le(mem, $x_addr)) && (old(memory_load32_le(mem, $z_addr)) == memory_load32_le(mem, $z_addr))); - free ensures (memory_load32_le(mem, 1856bv64) == 131073bv32); - free ensures (memory_load64_le(mem, 69016bv64) == 1808bv64); - free ensures (memory_load64_le(mem, 69024bv64) == 1728bv64); - free ensures (memory_load64_le(mem, 69616bv64) == 1812bv64); - free ensures (memory_load64_le(mem, 69640bv64) == 69640bv64); + free ensures (memory_load32_le(mem, 4196312bv64) == 131073bv32); procedure {:extern} rely_transitive(); modifies Gamma_mem, mem; @@ -68,40 +70,36 @@ implementation {:extern} guarantee_reflexive() assert (gamma_load32(Gamma_mem, $x_addr) ==> gamma_load32(Gamma_mem, $x_addr)); } -procedure main_1812(); - modifies Gamma_R0, Gamma_R1, Gamma_mem, R0, R1, mem; +procedure main(); + modifies Gamma_R0, Gamma_R1, Gamma_R2, Gamma_mem, R0, R1, R2, mem; requires ((memory_load32_le(mem, $z_addr) == 0bv32) ==> gamma_load32(Gamma_mem, $x_addr)); - free requires (memory_load64_le(mem, 69632bv64) == 0bv64); - free requires (memory_load64_le(mem, 69640bv64) == 69640bv64); - free requires (memory_load32_le(mem, 1856bv64) == 131073bv32); - free requires (memory_load64_le(mem, 69016bv64) == 1808bv64); - free requires (memory_load64_le(mem, 69024bv64) == 1728bv64); - free requires (memory_load64_le(mem, 69616bv64) == 1812bv64); - free requires (memory_load64_le(mem, 69640bv64) == 69640bv64); - free ensures (memory_load32_le(mem, 1856bv64) == 131073bv32); - free ensures (memory_load64_le(mem, 69016bv64) == 1808bv64); - free ensures (memory_load64_le(mem, 69024bv64) == 1728bv64); - free ensures (memory_load64_le(mem, 69616bv64) == 1812bv64); - free ensures (memory_load64_le(mem, 69640bv64) == 69640bv64); - -implementation main_1812() + free requires (memory_load64_le(mem, 4325376bv64) == 0bv64); + free requires (memory_load64_le(mem, 4325384bv64) == 0bv64); + free requires (memory_load32_le(mem, 4196312bv64) == 131073bv32); + free ensures (memory_load32_le(mem, 4196312bv64) == 131073bv32); + +implementation main() { + var $load$14: bv64; + var Gamma_$load$14: bool; var Gamma_x_old: bool; lmain: assume {:captureState "lmain"} true; - R0, Gamma_R0 := 69632bv64, true; - R0, Gamma_R0 := bvadd64(R0, 24bv64), Gamma_R0; - R1, Gamma_R1 := 1bv64, true; + R1, Gamma_R1 := 4321280bv64, true; call rely(); - Gamma_x_old := (gamma_load32(Gamma_mem, $x_addr) || L(mem, $x_addr)); - assert (L(mem, R0) ==> Gamma_R1); - mem, Gamma_mem := memory_store32_le(mem, R0, R1[32:0]), gamma_store32(Gamma_mem, R0, Gamma_R1); - assert ((R0 == $z_addr) ==> (L(mem, $x_addr) ==> Gamma_x_old)); - assume {:captureState "%000002d8"} true; + $load$14, Gamma_$load$14 := memory_load64_le(mem, bvadd64(R1, 4072bv64)), (gamma_load64(Gamma_mem, bvadd64(R1, 4072bv64)) || L(mem, bvadd64(R1, 4072bv64))); + R1, Gamma_R1 := $load$14, Gamma_$load$14; + R2, Gamma_R2 := 1bv64, true; R0, Gamma_R0 := 0bv64, true; - goto main_1812_basil_return; - main_1812_basil_return: - assume {:captureState "main_1812_basil_return"} true; + call rely(); + assert (L(mem, R1) ==> Gamma_R2); + Gamma_x_old := (gamma_load32(Gamma_mem, $x_addr) || L(mem, $x_addr)); + mem, Gamma_mem := memory_store32_le(mem, R1, R2[32:0]), gamma_store32(Gamma_mem, R1, Gamma_R2); + assert ((R1 == $z_addr) ==> (L(mem, $x_addr) ==> Gamma_x_old)); + assume {:captureState "%00000258"} true; + goto main_basil_return; + main_basil_return: + assume {:captureState "main_basil_return"} true; return; } diff --git a/src/test/correct/using_gamma_write_z/gcc/using_gamma_write_z.gts b/src/test/correct/using_gamma_write_z/gcc/using_gamma_write_z.gts deleted file mode 100644 index 8799fc907..000000000 Binary files a/src/test/correct/using_gamma_write_z/gcc/using_gamma_write_z.gts and /dev/null differ diff --git a/src/test/correct/using_gamma_write_z/gcc/using_gamma_write_z.md5sum b/src/test/correct/using_gamma_write_z/gcc/using_gamma_write_z.md5sum new file mode 100644 index 000000000..9b738ac8a --- /dev/null +++ b/src/test/correct/using_gamma_write_z/gcc/using_gamma_write_z.md5sum @@ -0,0 +1,5 @@ +1fd5028b55fe931340853849d42c0799 correct/using_gamma_write_z/gcc/a.out +35d4a1bec3466234e3644b13358ace55 correct/using_gamma_write_z/gcc/using_gamma_write_z.adt +f42d1772bed691600dc01ae2aa5726b9 correct/using_gamma_write_z/gcc/using_gamma_write_z.bir +b7c61ce66698bbd328740a622c0be55d correct/using_gamma_write_z/gcc/using_gamma_write_z.relf +250e19e219df5081934ab34097219b9c correct/using_gamma_write_z/gcc/using_gamma_write_z.gts diff --git a/src/test/correct/using_gamma_write_z/gcc/using_gamma_write_z.relf b/src/test/correct/using_gamma_write_z/gcc/using_gamma_write_z.relf deleted file mode 100644 index ac270b376..000000000 --- a/src/test/correct/using_gamma_write_z/gcc/using_gamma_write_z.relf +++ /dev/null @@ -1,122 +0,0 @@ - -Relocation section '.rela.dyn' at offset 0x460 contains 8 entries: - Offset Info Type Symbol's Value Symbol's Name + Addend -0000000000010d98 0000000000000403 R_AARCH64_RELATIVE 710 -0000000000010da0 0000000000000403 R_AARCH64_RELATIVE 6c0 -0000000000010ff0 0000000000000403 R_AARCH64_RELATIVE 714 -0000000000011008 0000000000000403 R_AARCH64_RELATIVE 11008 -0000000000010fd8 0000000400000401 R_AARCH64_GLOB_DAT 0000000000000000 _ITM_deregisterTMCloneTable + 0 -0000000000010fe0 0000000500000401 R_AARCH64_GLOB_DAT 0000000000000000 __cxa_finalize@GLIBC_2.17 + 0 -0000000000010fe8 0000000600000401 R_AARCH64_GLOB_DAT 0000000000000000 __gmon_start__ + 0 -0000000000010ff8 0000000800000401 R_AARCH64_GLOB_DAT 0000000000000000 _ITM_registerTMCloneTable + 0 - -Relocation section '.rela.plt' at offset 0x520 contains 4 entries: - Offset Info Type Symbol's Value Symbol's Name + Addend -0000000000010fb0 0000000300000402 R_AARCH64_JUMP_SLOT 0000000000000000 __libc_start_main@GLIBC_2.34 + 0 -0000000000010fb8 0000000500000402 R_AARCH64_JUMP_SLOT 0000000000000000 __cxa_finalize@GLIBC_2.17 + 0 -0000000000010fc0 0000000600000402 R_AARCH64_JUMP_SLOT 0000000000000000 __gmon_start__ + 0 -0000000000010fc8 0000000700000402 R_AARCH64_JUMP_SLOT 0000000000000000 abort@GLIBC_2.17 + 0 - -Symbol table '.dynsym' contains 9 entries: - Num: Value Size Type Bind Vis Ndx Name - 0: 0000000000000000 0 NOTYPE LOCAL DEFAULT UND - 1: 0000000000000580 0 SECTION LOCAL DEFAULT 11 .init - 2: 0000000000011000 0 SECTION LOCAL DEFAULT 22 .data - 3: 0000000000000000 0 FUNC GLOBAL DEFAULT UND __libc_start_main@GLIBC_2.34 (2) - 4: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_deregisterTMCloneTable - 5: 0000000000000000 0 FUNC WEAK DEFAULT UND __cxa_finalize@GLIBC_2.17 (3) - 6: 0000000000000000 0 NOTYPE WEAK DEFAULT UND __gmon_start__ - 7: 0000000000000000 0 FUNC GLOBAL DEFAULT UND abort@GLIBC_2.17 (3) - 8: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_registerTMCloneTable - -Symbol table '.symtab' contains 89 entries: - Num: Value Size Type Bind Vis Ndx Name - 0: 0000000000000000 0 NOTYPE LOCAL DEFAULT UND - 1: 0000000000000238 0 SECTION LOCAL DEFAULT 1 .interp - 2: 0000000000000254 0 SECTION LOCAL DEFAULT 2 .note.gnu.build-id - 3: 0000000000000278 0 SECTION LOCAL DEFAULT 3 .note.ABI-tag - 4: 0000000000000298 0 SECTION LOCAL DEFAULT 4 .gnu.hash - 5: 00000000000002b8 0 SECTION LOCAL DEFAULT 5 .dynsym - 6: 0000000000000390 0 SECTION LOCAL DEFAULT 6 .dynstr - 7: 000000000000041e 0 SECTION LOCAL DEFAULT 7 .gnu.version - 8: 0000000000000430 0 SECTION LOCAL DEFAULT 8 .gnu.version_r - 9: 0000000000000460 0 SECTION LOCAL DEFAULT 9 .rela.dyn - 10: 0000000000000520 0 SECTION LOCAL DEFAULT 10 .rela.plt - 11: 0000000000000580 0 SECTION LOCAL DEFAULT 11 .init - 12: 00000000000005a0 0 SECTION LOCAL DEFAULT 12 .plt - 13: 0000000000000600 0 SECTION LOCAL DEFAULT 13 .text - 14: 000000000000072c 0 SECTION LOCAL DEFAULT 14 .fini - 15: 0000000000000740 0 SECTION LOCAL DEFAULT 15 .rodata - 16: 0000000000000744 0 SECTION LOCAL DEFAULT 16 .eh_frame_hdr - 17: 0000000000000780 0 SECTION LOCAL DEFAULT 17 .eh_frame - 18: 0000000000010d98 0 SECTION LOCAL DEFAULT 18 .init_array - 19: 0000000000010da0 0 SECTION LOCAL DEFAULT 19 .fini_array - 20: 0000000000010da8 0 SECTION LOCAL DEFAULT 20 .dynamic - 21: 0000000000010f98 0 SECTION LOCAL DEFAULT 21 .got - 22: 0000000000011000 0 SECTION LOCAL DEFAULT 22 .data - 23: 0000000000011010 0 SECTION LOCAL DEFAULT 23 .bss - 24: 0000000000000000 0 SECTION LOCAL DEFAULT 24 .comment - 25: 0000000000000000 0 FILE LOCAL DEFAULT ABS Scrt1.o - 26: 0000000000000278 0 NOTYPE LOCAL DEFAULT 3 $d - 27: 0000000000000278 32 OBJECT LOCAL DEFAULT 3 __abi_tag - 28: 0000000000000600 0 NOTYPE LOCAL DEFAULT 13 $x - 29: 0000000000000794 0 NOTYPE LOCAL DEFAULT 17 $d - 30: 0000000000000740 0 NOTYPE LOCAL DEFAULT 15 $d - 31: 0000000000000000 0 FILE LOCAL DEFAULT ABS crti.o - 32: 0000000000000634 0 NOTYPE LOCAL DEFAULT 13 $x - 33: 0000000000000634 20 FUNC LOCAL DEFAULT 13 call_weak_fn - 34: 0000000000000580 0 NOTYPE LOCAL DEFAULT 11 $x - 35: 000000000000072c 0 NOTYPE LOCAL DEFAULT 14 $x - 36: 0000000000000000 0 FILE LOCAL DEFAULT ABS crtn.o - 37: 0000000000000590 0 NOTYPE LOCAL DEFAULT 11 $x - 38: 0000000000000738 0 NOTYPE LOCAL DEFAULT 14 $x - 39: 0000000000000000 0 FILE LOCAL DEFAULT ABS crtstuff.c - 40: 0000000000000650 0 NOTYPE LOCAL DEFAULT 13 $x - 41: 0000000000000650 0 FUNC LOCAL DEFAULT 13 deregister_tm_clones - 42: 0000000000000680 0 FUNC LOCAL DEFAULT 13 register_tm_clones - 43: 0000000000011008 0 NOTYPE LOCAL DEFAULT 22 $d - 44: 00000000000006c0 0 FUNC LOCAL DEFAULT 13 __do_global_dtors_aux - 45: 0000000000011010 1 OBJECT LOCAL DEFAULT 23 completed.0 - 46: 0000000000010da0 0 NOTYPE LOCAL DEFAULT 19 $d - 47: 0000000000010da0 0 OBJECT LOCAL DEFAULT 19 __do_global_dtors_aux_fini_array_entry - 48: 0000000000000710 0 FUNC LOCAL DEFAULT 13 frame_dummy - 49: 0000000000010d98 0 NOTYPE LOCAL DEFAULT 18 $d - 50: 0000000000010d98 0 OBJECT LOCAL DEFAULT 18 __frame_dummy_init_array_entry - 51: 00000000000007a8 0 NOTYPE LOCAL DEFAULT 17 $d - 52: 0000000000011010 0 NOTYPE LOCAL DEFAULT 23 $d - 53: 0000000000000000 0 FILE LOCAL DEFAULT ABS using_gamma_write_z.c - 54: 0000000000011014 0 NOTYPE LOCAL DEFAULT 23 $d - 55: 0000000000000714 0 NOTYPE LOCAL DEFAULT 13 $x - 56: 0000000000000808 0 NOTYPE LOCAL DEFAULT 17 $d - 57: 0000000000000000 0 FILE LOCAL DEFAULT ABS crtstuff.c - 58: 000000000000081c 0 NOTYPE LOCAL DEFAULT 17 $d - 59: 000000000000081c 0 OBJECT LOCAL DEFAULT 17 __FRAME_END__ - 60: 0000000000000000 0 FILE LOCAL DEFAULT ABS - 61: 0000000000010da8 0 OBJECT LOCAL DEFAULT ABS _DYNAMIC - 62: 0000000000000744 0 NOTYPE LOCAL DEFAULT 16 __GNU_EH_FRAME_HDR - 63: 0000000000010fd0 0 OBJECT LOCAL DEFAULT ABS _GLOBAL_OFFSET_TABLE_ - 64: 00000000000005a0 0 NOTYPE LOCAL DEFAULT 12 $x - 65: 0000000000000000 0 FUNC GLOBAL DEFAULT UND __libc_start_main@GLIBC_2.34 - 66: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_deregisterTMCloneTable - 67: 0000000000011000 0 NOTYPE WEAK DEFAULT 22 data_start - 68: 0000000000011010 0 NOTYPE GLOBAL DEFAULT 23 __bss_start__ - 69: 0000000000000000 0 FUNC WEAK DEFAULT UND __cxa_finalize@GLIBC_2.17 - 70: 0000000000011020 0 NOTYPE GLOBAL DEFAULT 23 _bss_end__ - 71: 0000000000011010 0 NOTYPE GLOBAL DEFAULT 22 _edata - 72: 0000000000011018 4 OBJECT GLOBAL DEFAULT 23 z - 73: 0000000000011014 4 OBJECT GLOBAL DEFAULT 23 x - 74: 000000000000072c 0 FUNC GLOBAL HIDDEN 14 _fini - 75: 0000000000011020 0 NOTYPE GLOBAL DEFAULT 23 __bss_end__ - 76: 0000000000011000 0 NOTYPE GLOBAL DEFAULT 22 __data_start - 77: 0000000000000000 0 NOTYPE WEAK DEFAULT UND __gmon_start__ - 78: 0000000000011008 0 OBJECT GLOBAL HIDDEN 22 __dso_handle - 79: 0000000000000000 0 FUNC GLOBAL DEFAULT UND abort@GLIBC_2.17 - 80: 0000000000000740 4 OBJECT GLOBAL DEFAULT 15 _IO_stdin_used - 81: 0000000000011020 0 NOTYPE GLOBAL DEFAULT 23 _end - 82: 0000000000000600 52 FUNC GLOBAL DEFAULT 13 _start - 83: 0000000000011020 0 NOTYPE GLOBAL DEFAULT 23 __end__ - 84: 0000000000011010 0 NOTYPE GLOBAL DEFAULT 23 __bss_start - 85: 0000000000000714 24 FUNC GLOBAL DEFAULT 13 main - 86: 0000000000011010 0 OBJECT GLOBAL HIDDEN 22 __TMC_END__ - 87: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_registerTMCloneTable - 88: 0000000000000580 0 FUNC GLOBAL HIDDEN 11 _init diff --git a/src/test/correct/using_gamma_write_z/gcc/using_gamma_write_z_gtirb.expected b/src/test/correct/using_gamma_write_z/gcc/using_gamma_write_z_gtirb.expected index aefd55c07..0bb327435 100644 --- a/src/test/correct/using_gamma_write_z/gcc/using_gamma_write_z_gtirb.expected +++ b/src/test/correct/using_gamma_write_z/gcc/using_gamma_write_z_gtirb.expected @@ -1,13 +1,15 @@ var {:extern} Gamma_R0: bool; var {:extern} Gamma_R1: bool; +var {:extern} Gamma_R2: bool; var {:extern} Gamma_mem: [bv64]bool; var {:extern} R0: bv64; var {:extern} R1: bv64; +var {:extern} R2: bv64; var {:extern} mem: [bv64]bv8; const {:extern} $x_addr: bv64; -axiom ($x_addr == 69652bv64); +axiom ($x_addr == 4325400bv64); const {:extern} $z_addr: bv64; -axiom ($z_addr == 69656bv64); +axiom ($z_addr == 4325396bv64); function {:extern} L(mem$in: [bv64]bv8, index: bv64) returns (bool) { (if (index == $z_addr) then true else (if (index == $x_addr) then (memory_load32_le(mem$in, $z_addr) == 0bv32) else false)) } @@ -17,6 +19,10 @@ function {:extern} gamma_load32(gammaMap: [bv64]bool, index: bv64) returns (bool (gammaMap[bvadd64(index, 3bv64)] && (gammaMap[bvadd64(index, 2bv64)] && (gammaMap[bvadd64(index, 1bv64)] && gammaMap[index]))) } +function {:extern} gamma_load64(gammaMap: [bv64]bool, index: bv64) returns (bool) { + (gammaMap[bvadd64(index, 7bv64)] && (gammaMap[bvadd64(index, 6bv64)] && (gammaMap[bvadd64(index, 5bv64)] && (gammaMap[bvadd64(index, 4bv64)] && (gammaMap[bvadd64(index, 3bv64)] && (gammaMap[bvadd64(index, 2bv64)] && (gammaMap[bvadd64(index, 1bv64)] && gammaMap[index]))))))) +} + function {:extern} gamma_store32(gammaMap: [bv64]bool, index: bv64, value: bool) returns ([bv64]bool) { gammaMap[index := value][bvadd64(index, 1bv64) := value][bvadd64(index, 2bv64) := value][bvadd64(index, 3bv64) := value] } @@ -37,11 +43,7 @@ procedure {:extern} rely(); modifies Gamma_mem, mem; ensures (forall i: bv64 :: (((mem[i] == old(mem[i])) ==> (Gamma_mem[i] == old(Gamma_mem[i]))))); ensures ((old(memory_load32_le(mem, $x_addr)) == memory_load32_le(mem, $x_addr)) && (old(memory_load32_le(mem, $z_addr)) == memory_load32_le(mem, $z_addr))); - free ensures (memory_load32_le(mem, 1856bv64) == 131073bv32); - free ensures (memory_load64_le(mem, 69016bv64) == 1808bv64); - free ensures (memory_load64_le(mem, 69024bv64) == 1728bv64); - free ensures (memory_load64_le(mem, 69616bv64) == 1812bv64); - free ensures (memory_load64_le(mem, 69640bv64) == 69640bv64); + free ensures (memory_load32_le(mem, 4196312bv64) == 131073bv32); procedure {:extern} rely_transitive(); modifies Gamma_mem, mem; @@ -68,40 +70,36 @@ implementation {:extern} guarantee_reflexive() assert (gamma_load32(Gamma_mem, $x_addr) ==> gamma_load32(Gamma_mem, $x_addr)); } -procedure main_1812(); - modifies Gamma_R0, Gamma_R1, Gamma_mem, R0, R1, mem; +procedure main(); + modifies Gamma_R0, Gamma_R1, Gamma_R2, Gamma_mem, R0, R1, R2, mem; requires ((memory_load32_le(mem, $z_addr) == 0bv32) ==> gamma_load32(Gamma_mem, $x_addr)); - free requires (memory_load64_le(mem, 69632bv64) == 0bv64); - free requires (memory_load64_le(mem, 69640bv64) == 69640bv64); - free requires (memory_load32_le(mem, 1856bv64) == 131073bv32); - free requires (memory_load64_le(mem, 69016bv64) == 1808bv64); - free requires (memory_load64_le(mem, 69024bv64) == 1728bv64); - free requires (memory_load64_le(mem, 69616bv64) == 1812bv64); - free requires (memory_load64_le(mem, 69640bv64) == 69640bv64); - free ensures (memory_load32_le(mem, 1856bv64) == 131073bv32); - free ensures (memory_load64_le(mem, 69016bv64) == 1808bv64); - free ensures (memory_load64_le(mem, 69024bv64) == 1728bv64); - free ensures (memory_load64_le(mem, 69616bv64) == 1812bv64); - free ensures (memory_load64_le(mem, 69640bv64) == 69640bv64); - -implementation main_1812() + free requires (memory_load64_le(mem, 4325376bv64) == 0bv64); + free requires (memory_load64_le(mem, 4325384bv64) == 0bv64); + free requires (memory_load32_le(mem, 4196312bv64) == 131073bv32); + free ensures (memory_load32_le(mem, 4196312bv64) == 131073bv32); + +implementation main() { + var $load2: bv64; + var Gamma_$load2: bool; var Gamma_x_old: bool; - main_1812__0__nQskxO9URuKUrmpkeGLfhQ: - assume {:captureState "main_1812__0__nQskxO9URuKUrmpkeGLfhQ"} true; - R0, Gamma_R0 := 69632bv64, true; - R0, Gamma_R0 := bvadd64(R0, 24bv64), Gamma_R0; - R1, Gamma_R1 := 1bv64, true; + $main$__0__$YmNxI7RsS_6TZy3HTKzvWg: + assume {:captureState "$main$__0__$YmNxI7RsS_6TZy3HTKzvWg"} true; + R1, Gamma_R1 := 4321280bv64, true; call rely(); - Gamma_x_old := (gamma_load32(Gamma_mem, $x_addr) || L(mem, $x_addr)); - assert (L(mem, R0) ==> Gamma_R1); - mem, Gamma_mem := memory_store32_le(mem, R0, R1[32:0]), gamma_store32(Gamma_mem, R0, Gamma_R1); - assert ((R0 == $z_addr) ==> (L(mem, $x_addr) ==> Gamma_x_old)); - assume {:captureState "1824_0"} true; + $load2, Gamma_$load2 := memory_load64_le(mem, bvadd64(R1, 4072bv64)), (gamma_load64(Gamma_mem, bvadd64(R1, 4072bv64)) || L(mem, bvadd64(R1, 4072bv64))); + R1, Gamma_R1 := $load2, Gamma_$load2; + R2, Gamma_R2 := 1bv64, true; R0, Gamma_R0 := 0bv64, true; - goto main_1812_basil_return; - main_1812_basil_return: - assume {:captureState "main_1812_basil_return"} true; + call rely(); + assert (L(mem, R1) ==> Gamma_R2); + Gamma_x_old := (gamma_load32(Gamma_mem, $x_addr) || L(mem, $x_addr)); + mem, Gamma_mem := memory_store32_le(mem, R1, R2[32:0]), gamma_store32(Gamma_mem, R1, Gamma_R2); + assert ((R1 == $z_addr) ==> (L(mem, $x_addr) ==> Gamma_x_old)); + assume {:captureState "4195984$0"} true; + goto main_basil_return; + main_basil_return: + assume {:captureState "main_basil_return"} true; return; } diff --git a/src/test/correct/using_gamma_write_z/gcc_O2/using_gamma_write_z.adt b/src/test/correct/using_gamma_write_z/gcc_O2/using_gamma_write_z.adt deleted file mode 100644 index a99e01484..000000000 --- a/src/test/correct/using_gamma_write_z/gcc_O2/using_gamma_write_z.adt +++ /dev/null @@ -1,490 +0,0 @@ -Project(Attrs([Attr("filename","\"gcc_O2/using_gamma_write_z.out\""), -Attr("image-specification","(declare abi (name str))\n(declare arch (name str))\n(declare base-address (addr int))\n(declare bias (off int))\n(declare bits (size int))\n(declare code-region (addr int) (size int) (off int))\n(declare code-start (addr int))\n(declare entry-point (addr int))\n(declare external-reference (addr int) (name str))\n(declare format (name str))\n(declare is-executable (flag bool))\n(declare is-little-endian (flag bool))\n(declare llvm:base-address (addr int))\n(declare llvm:code-entry (name str) (off int) (size int))\n(declare llvm:coff-import-library (name str))\n(declare llvm:coff-virtual-section-header (name str) (addr int) (size int))\n(declare llvm:elf-program-header (name str) (off int) (size int))\n(declare llvm:elf-program-header-flags (name str) (ld bool) (r bool) \n (w bool) (x bool))\n(declare llvm:elf-virtual-program-header (name str) (addr int) (size int))\n(declare llvm:entry-point (addr int))\n(declare llvm:macho-symbol (name str) (value int))\n(declare llvm:name-reference (at int) (name str))\n(declare llvm:relocation (at int) (addr int))\n(declare llvm:section-entry (name str) (addr int) (size int) (off int))\n(declare llvm:section-flags (name str) (r bool) (w bool) (x bool))\n(declare llvm:segment-command (name str) (off int) (size int))\n(declare llvm:segment-command-flags (name str) (r bool) (w bool) (x bool))\n(declare llvm:symbol-entry (name str) (addr int) (size int) (off int)\n (value int))\n(declare llvm:virtual-segment-command (name str) (addr int) (size int))\n(declare mapped (addr int) (size int) (off int))\n(declare named-region (addr int) (size int) (name str))\n(declare named-symbol (addr int) (name str))\n(declare require (name str))\n(declare section (addr int) (size int))\n(declare segment (addr int) (size int) (r bool) (w bool) (x bool))\n(declare subarch (name str))\n(declare symbol-chunk (addr int) (size int) (root int))\n(declare symbol-value (addr int) (value int))\n(declare system (name str))\n(declare vendor (name str))\n\n(abi unknown)\n(arch aarch64)\n(base-address 0)\n(bias 0)\n(bits 64)\n(code-region 1876 20 1876)\n(code-region 1536 340 1536)\n(code-region 1440 96 1440)\n(code-region 1408 24 1408)\n(code-start 1652)\n(code-start 1600)\n(code-start 1536)\n(entry-point 1600)\n(external-reference 69592 _ITM_deregisterTMCloneTable)\n(external-reference 69600 __cxa_finalize)\n(external-reference 69608 __gmon_start__)\n(external-reference 69624 _ITM_registerTMCloneTable)\n(external-reference 69552 __libc_start_main)\n(external-reference 69560 __cxa_finalize)\n(external-reference 69568 __gmon_start__)\n(external-reference 69576 abort)\n(format elf)\n(is-executable true)\n(is-little-endian true)\n(llvm:base-address 0)\n(llvm:code-entry abort 0 0)\n(llvm:code-entry __cxa_finalize 0 0)\n(llvm:code-entry __libc_start_main 0 0)\n(llvm:code-entry _init 1408 0)\n(llvm:code-entry main 1536 20)\n(llvm:code-entry _start 1600 52)\n(llvm:code-entry abort@GLIBC_2.17 0 0)\n(llvm:code-entry _fini 1876 0)\n(llvm:code-entry __cxa_finalize@GLIBC_2.17 0 0)\n(llvm:code-entry __libc_start_main@GLIBC_2.34 0 0)\n(llvm:code-entry frame_dummy 1872 0)\n(llvm:code-entry __do_global_dtors_aux 1792 0)\n(llvm:code-entry register_tm_clones 1728 0)\n(llvm:code-entry deregister_tm_clones 1680 0)\n(llvm:code-entry call_weak_fn 1652 20)\n(llvm:code-entry .fini 1876 20)\n(llvm:code-entry .text 1536 340)\n(llvm:code-entry .plt 1440 96)\n(llvm:code-entry .init 1408 24)\n(llvm:elf-program-header 08 3480 616)\n(llvm:elf-program-header 07 0 0)\n(llvm:elf-program-header 06 1900 60)\n(llvm:elf-program-header 05 596 68)\n(llvm:elf-program-header 04 3496 496)\n(llvm:elf-program-header 03 3480 632)\n(llvm:elf-program-header 02 0 2120)\n(llvm:elf-program-header 01 568 27)\n(llvm:elf-program-header 00 64 504)\n(llvm:elf-program-header-flags 08 false true false false)\n(llvm:elf-program-header-flags 07 false true true false)\n(llvm:elf-program-header-flags 06 false true false false)\n(llvm:elf-program-header-flags 05 false true false false)\n(llvm:elf-program-header-flags 04 false true true false)\n(llvm:elf-program-header-flags 03 true true true false)\n(llvm:elf-program-header-flags 02 true true false true)\n(llvm:elf-program-header-flags 01 false true false false)\n(llvm:elf-program-header-flags 00 false true false false)\n(llvm:elf-virtual-program-header 08 69016 616)\n(llvm:elf-virtual-program-header 07 0 0)\n(llvm:elf-virtual-program-header 06 1900 60)\n(llvm:elf-virtual-program-header 05 596 68)\n(llvm:elf-virtual-program-header 04 69032 496)\n(llvm:elf-virtual-program-header 03 69016 648)\n(llvm:elf-virtual-program-header 02 0 2120)\n(llvm:elf-virtual-program-header 01 568 27)\n(llvm:elf-virtual-program-header 00 64 504)\n(llvm:entry-point 1600)\n(llvm:name-reference 69576 abort)\n(llvm:name-reference 69568 __gmon_start__)\n(llvm:name-reference 69560 __cxa_finalize)\n(llvm:name-reference 69552 __libc_start_main)\n(llvm:name-reference 69624 _ITM_registerTMCloneTable)\n(llvm:name-reference 69608 __gmon_start__)\n(llvm:name-reference 69600 __cxa_finalize)\n(llvm:name-reference 69592 _ITM_deregisterTMCloneTable)\n(llvm:section-entry .shstrtab 0 250 6853)\n(llvm:section-entry .strtab 0 557 6296)\n(llvm:section-entry .symtab 0 2136 4160)\n(llvm:section-entry .comment 0 43 4112)\n(llvm:section-entry .bss 69648 16 4112)\n(llvm:section-entry .data 69632 16 4096)\n(llvm:section-entry .got 69528 104 3992)\n(llvm:section-entry .dynamic 69032 496 3496)\n(llvm:section-entry .fini_array 69024 8 3488)\n(llvm:section-entry .init_array 69016 8 3480)\n(llvm:section-entry .eh_frame 1960 160 1960)\n(llvm:section-entry .eh_frame_hdr 1900 60 1900)\n(llvm:section-entry .rodata 1896 4 1896)\n(llvm:section-entry .fini 1876 20 1876)\n(llvm:section-entry .text 1536 340 1536)\n(llvm:section-entry .plt 1440 96 1440)\n(llvm:section-entry .init 1408 24 1408)\n(llvm:section-entry .rela.plt 1312 96 1312)\n(llvm:section-entry .rela.dyn 1120 192 1120)\n(llvm:section-entry .gnu.version_r 1072 48 1072)\n(llvm:section-entry .gnu.version 1054 18 1054)\n(llvm:section-entry .dynstr 912 141 912)\n(llvm:section-entry .dynsym 696 216 696)\n(llvm:section-entry .gnu.hash 664 28 664)\n(llvm:section-entry .note.ABI-tag 632 32 632)\n(llvm:section-entry .note.gnu.build-id 596 36 596)\n(llvm:section-entry .interp 568 27 568)\n(llvm:section-flags .shstrtab true false false)\n(llvm:section-flags .strtab true false false)\n(llvm:section-flags .symtab true false false)\n(llvm:section-flags .comment true false false)\n(llvm:section-flags .bss true true false)\n(llvm:section-flags .data true true false)\n(llvm:section-flags .got true true false)\n(llvm:section-flags .dynamic true true false)\n(llvm:section-flags .fini_array true true false)\n(llvm:section-flags .init_array true true false)\n(llvm:section-flags .eh_frame true false false)\n(llvm:section-flags .eh_frame_hdr true false false)\n(llvm:section-flags .rodata true false false)\n(llvm:section-flags .fini true false true)\n(llvm:section-flags .text true false true)\n(llvm:section-flags .plt true false true)\n(llvm:section-flags .init true false true)\n(llvm:section-flags .rela.plt true false false)\n(llvm:section-flags .rela.dyn true false false)\n(llvm:section-flags .gnu.version_r true false false)\n(llvm:section-flags .gnu.version true false false)\n(llvm:section-flags .dynstr true false false)\n(llvm:section-flags .dynsym true false false)\n(llvm:section-flags .gnu.hash true false false)\n(llvm:section-flags .note.ABI-tag true false false)\n(llvm:section-flags .note.gnu.build-id true false false)\n(llvm:section-flags .interp true false false)\n(llvm:symbol-entry abort 0 0 0 0)\n(llvm:symbol-entry __cxa_finalize 0 0 0 0)\n(llvm:symbol-entry __libc_start_main 0 0 0 0)\n(llvm:symbol-entry _init 1408 0 1408 1408)\n(llvm:symbol-entry main 1536 20 1536 1536)\n(llvm:symbol-entry _start 1600 52 1600 1600)\n(llvm:symbol-entry abort@GLIBC_2.17 0 0 0 0)\n(llvm:symbol-entry _fini 1876 0 1876 1876)\n(llvm:symbol-entry __cxa_finalize@GLIBC_2.17 0 0 0 0)\n(llvm:symbol-entry __libc_start_main@GLIBC_2.34 0 0 0 0)\n(llvm:symbol-entry frame_dummy 1872 0 1872 1872)\n(llvm:symbol-entry __do_global_dtors_aux 1792 0 1792 1792)\n(llvm:symbol-entry register_tm_clones 1728 0 1728 1728)\n(llvm:symbol-entry deregister_tm_clones 1680 0 1680 1680)\n(llvm:symbol-entry call_weak_fn 1652 20 1652 1652)\n(mapped 0 2120 0)\n(mapped 69016 632 3480)\n(named-region 0 2120 02)\n(named-region 69016 648 03)\n(named-region 568 27 .interp)\n(named-region 596 36 .note.gnu.build-id)\n(named-region 632 32 .note.ABI-tag)\n(named-region 664 28 .gnu.hash)\n(named-region 696 216 .dynsym)\n(named-region 912 141 .dynstr)\n(named-region 1054 18 .gnu.version)\n(named-region 1072 48 .gnu.version_r)\n(named-region 1120 192 .rela.dyn)\n(named-region 1312 96 .rela.plt)\n(named-region 1408 24 .init)\n(named-region 1440 96 .plt)\n(named-region 1536 340 .text)\n(named-region 1876 20 .fini)\n(named-region 1896 4 .rodata)\n(named-region 1900 60 .eh_frame_hdr)\n(named-region 1960 160 .eh_frame)\n(named-region 69016 8 .init_array)\n(named-region 69024 8 .fini_array)\n(named-region 69032 496 .dynamic)\n(named-region 69528 104 .got)\n(named-region 69632 16 .data)\n(named-region 69648 16 .bss)\n(named-region 0 43 .comment)\n(named-region 0 2136 .symtab)\n(named-region 0 557 .strtab)\n(named-region 0 250 .shstrtab)\n(named-symbol 1652 call_weak_fn)\n(named-symbol 1680 deregister_tm_clones)\n(named-symbol 1728 register_tm_clones)\n(named-symbol 1792 __do_global_dtors_aux)\n(named-symbol 1872 frame_dummy)\n(named-symbol 0 __libc_start_main@GLIBC_2.34)\n(named-symbol 0 __cxa_finalize@GLIBC_2.17)\n(named-symbol 1876 _fini)\n(named-symbol 0 abort@GLIBC_2.17)\n(named-symbol 1600 _start)\n(named-symbol 1536 main)\n(named-symbol 1408 _init)\n(named-symbol 0 __libc_start_main)\n(named-symbol 0 __cxa_finalize)\n(named-symbol 0 abort)\n(require libc.so.6)\n(section 568 27)\n(section 596 36)\n(section 632 32)\n(section 664 28)\n(section 696 216)\n(section 912 141)\n(section 1054 18)\n(section 1072 48)\n(section 1120 192)\n(section 1312 96)\n(section 1408 24)\n(section 1440 96)\n(section 1536 340)\n(section 1876 20)\n(section 1896 4)\n(section 1900 60)\n(section 1960 160)\n(section 69016 8)\n(section 69024 8)\n(section 69032 496)\n(section 69528 104)\n(section 69632 16)\n(section 69648 16)\n(section 0 43)\n(section 0 2136)\n(section 0 557)\n(section 0 250)\n(segment 0 2120 true false true)\n(segment 69016 648 true true false)\n(subarch v8)\n(symbol-chunk 1652 20 1652)\n(symbol-chunk 1600 52 1600)\n(symbol-chunk 1536 20 1536)\n(symbol-value 1652 1652)\n(symbol-value 1680 1680)\n(symbol-value 1728 1728)\n(symbol-value 1792 1792)\n(symbol-value 1872 1872)\n(symbol-value 1876 1876)\n(symbol-value 1600 1600)\n(symbol-value 1536 1536)\n(symbol-value 1408 1408)\n(symbol-value 0 0)\n(system \"\")\n(vendor \"\")\n"), -Attr("abi-name","\"aarch64-linux-gnu-elf\"")]), -Sections([Section(".shstrtab", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x40\x06\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xc0\x1b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x38\x00\x09\x00\x40\x00\x1c\x00\x1b\x00\x06\x00\x00\x00\x04\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x04\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x48\x08\x00\x00\x00\x00\x00\x00\x48\x08\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x01\x00\x00\x00\x06\x00\x00\x00\x98\x0d\x00\x00\x00\x00\x00\x00\x98\x0d"), -Section(".strtab", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x40\x06\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xc0\x1b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x38\x00\x09\x00\x40\x00\x1c\x00\x1b\x00\x06\x00\x00\x00\x04\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x04\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x48\x08\x00\x00\x00\x00\x00\x00\x48\x08\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x01\x00\x00\x00\x06\x00\x00\x00\x98\x0d\x00\x00\x00\x00\x00\x00\x98\x0d\x01\x00\x00\x00\x00\x00\x98\x0d\x01\x00\x00\x00\x00\x00\x78\x02\x00\x00\x00\x00\x00\x00\x88\x02\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x02\x00\x00\x00\x06\x00\x00\x00\xa8\x0d\x00\x00\x00\x00\x00\x00\xa8\x0d\x01\x00\x00\x00\x00\x00\xa8\x0d\x01\x00\x00\x00\x00\x00\xf0\x01\x00\x00\x00\x00\x00\x00\xf0\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x04\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x50\xe5\x74\x64\x04\x00\x00\x00\x6c\x07\x00\x00\x00\x00\x00\x00\x6c\x07\x00\x00\x00\x00\x00\x00\x6c\x07\x00\x00\x00\x00\x00\x00\x3c\x00\x00\x00\x00\x00\x00\x00\x3c\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x51\xe5\x74\x64\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x52\xe5\x74\x64\x04\x00\x00\x00\x98\x0d\x00\x00\x00\x00\x00\x00\x98\x0d\x01\x00\x00\x00\x00\x00\x98\x0d\x01\x00\x00\x00\x00\x00\x68\x02\x00\x00\x00\x00\x00\x00\x68\x02\x00\x00\x00"), -Section(".comment", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x40\x06\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xc0\x1b\x00"), -Section(".interp", 0x238, "\x2f\x6c\x69\x62\x2f\x6c\x64\x2d\x6c\x69\x6e\x75\x78\x2d\x61\x61\x72\x63\x68\x36\x34\x2e\x73\x6f\x2e\x31\x00"), -Section(".note.gnu.build-id", 0x254, "\x04\x00\x00\x00\x14\x00\x00\x00\x03\x00\x00\x00\x47\x4e\x55\x00\x74\x8b\xe3\x6b\xa7\x96\x8d\x1a\xb4\xe9\xa8\x62\xc5\xef\x4b\x76\xc2\x0e\xd2\x9a"), -Section(".note.ABI-tag", 0x278, "\x04\x00\x00\x00\x10\x00\x00\x00\x01\x00\x00\x00\x47\x4e\x55\x00\x00\x00\x00\x00\x03\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00"), -Section(".gnu.hash", 0x298, "\x01\x00\x00\x00\x01\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".dynsym", 0x2B8, "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x0b\x00\x80\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x16\x00\x00\x10\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x48\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x22\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x22\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x73\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".dynstr", 0x390, "\x00\x5f\x5f\x63\x78\x61\x5f\x66\x69\x6e\x61\x6c\x69\x7a\x65\x00\x5f\x5f\x6c\x69\x62\x63\x5f\x73\x74\x61\x72\x74\x5f\x6d\x61\x69\x6e\x00\x61\x62\x6f\x72\x74\x00\x6c\x69\x62\x63\x2e\x73\x6f\x2e\x36\x00\x47\x4c\x49\x42\x43\x5f\x32\x2e\x31\x37\x00\x47\x4c\x49\x42\x43\x5f\x32\x2e\x33\x34\x00\x5f\x49\x54\x4d\x5f\x64\x65\x72\x65\x67\x69\x73\x74\x65\x72\x54\x4d\x43\x6c\x6f\x6e\x65\x54\x61\x62\x6c\x65\x00\x5f\x5f\x67\x6d\x6f\x6e\x5f\x73\x74\x61\x72\x74\x5f\x5f\x00\x5f\x49\x54\x4d\x5f\x72\x65\x67\x69\x73\x74\x65\x72\x54\x4d\x43\x6c\x6f\x6e\x65\x54\x61\x62\x6c\x65\x00"), -Section(".gnu.version", 0x41E, "\x00\x00\x00\x00\x00\x00\x02\x00\x01\x00\x03\x00\x01\x00\x03\x00\x01\x00"), -Section(".gnu.version_r", 0x430, "\x01\x00\x02\x00\x28\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x97\x91\x96\x06\x00\x00\x03\x00\x32\x00\x00\x00\x10\x00\x00\x00\xb4\x91\x96\x06\x00\x00\x02\x00\x3d\x00\x00\x00\x00\x00\x00\x00"), -Section(".rela.dyn", 0x460, "\x98\x0d\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x50\x07\x00\x00\x00\x00\x00\x00\xa0\x0d\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\xf0\x0f\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x00\x06\x00\x00\x00\x00\x00\x00\x08\x10\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x08\x10\x01\x00\x00\x00\x00\x00\xd8\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe0\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe8\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xf8\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".rela.plt", 0x520, "\xb0\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xb8\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xc0\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xc8\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".init", 0x580, "\x1f\x20\x03\xd5\xfd\x7b\xbf\xa9\xfd\x03\x00\x91\x3a\x00\x00\x94\xfd\x7b\xc1\xa8\xc0\x03\x5f\xd6"), -Section(".plt", 0x5A0, "\xf0\x7b\xbf\xa9\x90\x00\x00\x90\x11\xd6\x47\xf9\x10\xa2\x3e\x91\x20\x02\x1f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x90\x00\x00\x90\x11\xda\x47\xf9\x10\xc2\x3e\x91\x20\x02\x1f\xd6\x90\x00\x00\x90\x11\xde\x47\xf9\x10\xe2\x3e\x91\x20\x02\x1f\xd6\x90\x00\x00\x90\x11\xe2\x47\xf9\x10\x02\x3f\x91\x20\x02\x1f\xd6\x90\x00\x00\x90\x11\xe6\x47\xf9\x10\x22\x3f\x91\x20\x02\x1f\xd6"), -Section(".fini", 0x754, "\x1f\x20\x03\xd5\xfd\x7b\xbf\xa9\xfd\x03\x00\x91\xfd\x7b\xc1\xa8\xc0\x03\x5f\xd6"), -Section(".rodata", 0x768, "\x01\x00\x02\x00"), -Section(".eh_frame_hdr", 0x76C, "\x01\x1b\x03\x3b\x38\x00\x00\x00\x06\x00\x00\x00\x94\xfe\xff\xff\xc4\x00\x00\x00\xd4\xfe\xff\xff\x50\x00\x00\x00\x24\xff\xff\xff\x64\x00\x00\x00\x54\xff\xff\xff\x78\x00\x00\x00\x94\xff\xff\xff\x8c\x00\x00\x00\xe4\xff\xff\xff\xb0\x00\x00\x00"), -Section(".eh_frame", 0x7A8, "\x10\x00\x00\x00\x00\x00\x00\x00\x01\x7a\x52\x00\x04\x78\x1e\x01\x1b\x0c\x1f\x00\x10\x00\x00\x00\x18\x00\x00\x00\x7c\xfe\xff\xff\x34\x00\x00\x00\x00\x41\x07\x1e\x10\x00\x00\x00\x2c\x00\x00\x00\xb8\xfe\xff\xff\x30\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x40\x00\x00\x00\xd4\xfe\xff\xff\x3c\x00\x00\x00\x00\x00\x00\x00\x20\x00\x00\x00\x54\x00\x00\x00\x00\xff\xff\xff\x48\x00\x00\x00\x00\x41\x0e\x20\x9d\x04\x9e\x03\x42\x93\x02\x4e\xde\xdd\xd3\x0e\x00\x00\x00\x00\x10\x00\x00\x00\x78\x00\x00\x00\x2c\xff\xff\xff\x04\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x8c\x00\x00\x00\xc8\xfd\xff\xff\x14\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".fini_array", 0x10DA0, "\x00\x07\x00\x00\x00\x00\x00\x00"), -Section(".dynamic", 0x10DA8, "\x01\x00\x00\x00\x00\x00\x00\x00\x28\x00\x00\x00\x00\x00\x00\x00\x0c\x00\x00\x00\x00\x00\x00\x00\x80\x05\x00\x00\x00\x00\x00\x00\x0d\x00\x00\x00\x00\x00\x00\x00\x54\x07\x00\x00\x00\x00\x00\x00\x19\x00\x00\x00\x00\x00\x00\x00\x98\x0d\x01\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x1a\x00\x00\x00\x00\x00\x00\x00\xa0\x0d\x01\x00\x00\x00\x00\x00\x1c\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\xf5\xfe\xff\x6f\x00\x00\x00\x00\x98\x02\x00\x00\x00\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x90\x03\x00\x00\x00\x00\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\xb8\x02\x00\x00\x00\x00\x00\x00\x0a\x00\x00\x00\x00\x00\x00\x00\x8d\x00\x00\x00\x00\x00\x00\x00\x0b\x00\x00\x00\x00\x00\x00\x00\x18\x00\x00\x00\x00\x00\x00\x00\x15\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x98\x0f\x01\x00\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x60\x00\x00\x00\x00\x00\x00\x00\x14\x00\x00\x00\x00\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x17\x00\x00\x00\x00\x00\x00\x00\x20\x05\x00\x00\x00\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x60\x04\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\xc0\x00\x00\x00\x00\x00\x00\x00\x09\x00\x00\x00\x00\x00\x00\x00\x18\x00\x00\x00\x00\x00\x00\x00\x1e\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\xfb\xff\xff\x6f\x00\x00\x00\x00\x01\x00\x00\x08\x00\x00\x00\x00\xfe\xff\xff\x6f\x00\x00\x00\x00\x30\x04\x00\x00\x00\x00\x00\x00\xff\xff\xff\x6f\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\xf0\xff\xff\x6f\x00\x00\x00\x00\x1e\x04\x00\x00\x00\x00\x00\x00\xf9\xff\xff\x6f\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".init_array", 0x10D98, "\x50\x07\x00\x00\x00\x00\x00\x00"), -Section(".got", 0x10F98, "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xa0\x05\x00\x00\x00\x00\x00\x00\xa0\x05\x00\x00\x00\x00\x00\x00\xa0\x05\x00\x00\x00\x00\x00\x00\xa0\x05\x00\x00\x00\x00\x00\x00\xa8\x0d\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".data", 0x11000, "\x00\x00\x00\x00\x00\x00\x00\x00\x08\x10\x01\x00\x00\x00\x00\x00"), -Section(".text", 0x600, "\x81\x00\x00\xb0\x22\x00\x80\x52\x00\x00\x80\x52\x22\x14\x00\xb9\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1d\x00\x80\xd2\x1e\x00\x80\xd2\xe5\x03\x00\xaa\xe1\x03\x40\xf9\xe2\x23\x00\x91\xe6\x03\x00\x91\x80\x00\x00\x90\x00\xf8\x47\xf9\x03\x00\x80\xd2\x04\x00\x80\xd2\xd5\xff\xff\x97\xe0\xff\xff\x97\x80\x00\x00\x90\x00\xf4\x47\xf9\x40\x00\x00\xb4\xd8\xff\xff\x17\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x80\x00\x00\xb0\x00\x40\x00\x91\x81\x00\x00\xb0\x21\x40\x00\x91\x3f\x00\x00\xeb\xc0\x00\x00\x54\x81\x00\x00\x90\x21\xec\x47\xf9\x61\x00\x00\xb4\xf0\x03\x01\xaa\x00\x02\x1f\xd6\xc0\x03\x5f\xd6\x80\x00\x00\xb0\x00\x40\x00\x91\x81\x00\x00\xb0\x21\x40\x00\x91\x21\x00\x00\xcb\x22\xfc\x7f\xd3\x41\x0c\x81\x8b\x21\xfc\x41\x93\xc1\x00\x00\xb4\x82\x00\x00\x90\x42\xfc\x47\xf9\x62\x00\x00\xb4\xf0\x03\x02\xaa\x00\x02\x1f\xd6\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\xfd\x7b\xbe\xa9\xfd\x03\x00\x91\xf3\x0b\x00\xf9\x93\x00\x00\xb0\x60\x42\x40\x39\x40\x01\x00\x35\x80\x00\x00\x90\x00\xf0\x47\xf9\x80\x00\x00\xb4\x80\x00\x00\xb0\x00\x04\x40\xf9\xa9\xff\xff\x97\xd8\xff\xff\x97\x20\x00\x80\x52\x60\x42\x00\x39\xf3\x0b\x40\xf9\xfd\x7b\xc2\xa8\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\xdc\xff\xff\x17")]), -Memmap([Annotation(Region(0x0,0x847), Attr("segment","02 0 2120")), -Annotation(Region(0x600,0x613), Attr("symbol","\"main\"")), -Annotation(Region(0x0,0xF9), Attr("section","\".shstrtab\"")), -Annotation(Region(0x0,0x22C), Attr("section","\".strtab\"")), -Annotation(Region(0x0,0x2A), Attr("section","\".comment\"")), -Annotation(Region(0x238,0x252), Attr("section","\".interp\"")), -Annotation(Region(0x254,0x277), Attr("section","\".note.gnu.build-id\"")), -Annotation(Region(0x278,0x297), Attr("section","\".note.ABI-tag\"")), -Annotation(Region(0x298,0x2B3), Attr("section","\".gnu.hash\"")), -Annotation(Region(0x2B8,0x38F), Attr("section","\".dynsym\"")), -Annotation(Region(0x390,0x41C), Attr("section","\".dynstr\"")), -Annotation(Region(0x41E,0x42F), Attr("section","\".gnu.version\"")), -Annotation(Region(0x430,0x45F), Attr("section","\".gnu.version_r\"")), -Annotation(Region(0x460,0x51F), Attr("section","\".rela.dyn\"")), -Annotation(Region(0x520,0x57F), Attr("section","\".rela.plt\"")), -Annotation(Region(0x580,0x597), Attr("section","\".init\"")), -Annotation(Region(0x5A0,0x5FF), Attr("section","\".plt\"")), -Annotation(Region(0x580,0x597), Attr("code-region","()")), -Annotation(Region(0x5A0,0x5FF), Attr("code-region","()")), -Annotation(Region(0x600,0x613), Attr("symbol-info","main 0x600 20")), -Annotation(Region(0x640,0x673), Attr("symbol","\"_start\"")), -Annotation(Region(0x640,0x673), Attr("symbol-info","_start 0x640 52")), -Annotation(Region(0x674,0x687), Attr("symbol","\"call_weak_fn\"")), -Annotation(Region(0x674,0x687), Attr("symbol-info","call_weak_fn 0x674 20")), -Annotation(Region(0x754,0x767), Attr("section","\".fini\"")), -Annotation(Region(0x768,0x76B), Attr("section","\".rodata\"")), -Annotation(Region(0x76C,0x7A7), Attr("section","\".eh_frame_hdr\"")), -Annotation(Region(0x7A8,0x847), Attr("section","\".eh_frame\"")), -Annotation(Region(0x10D98,0x1100F), Attr("segment","03 0x10D98 648")), -Annotation(Region(0x10DA0,0x10DA7), Attr("section","\".fini_array\"")), -Annotation(Region(0x10DA8,0x10F97), Attr("section","\".dynamic\"")), -Annotation(Region(0x10D98,0x10D9F), Attr("section","\".init_array\"")), -Annotation(Region(0x10F98,0x10FFF), Attr("section","\".got\"")), -Annotation(Region(0x11000,0x1100F), Attr("section","\".data\"")), -Annotation(Region(0x600,0x753), Attr("section","\".text\"")), -Annotation(Region(0x600,0x753), Attr("code-region","()")), -Annotation(Region(0x754,0x767), Attr("code-region","()"))]), -Program(Tid(1_505, "%000005e1"), Attrs([]), - Subs([Sub(Tid(1_455, "@__cxa_finalize"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x5D0"), -Attr("stub","()")]), "__cxa_finalize", Args([Arg(Tid(1_506, "%000005e2"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("__cxa_finalize_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(851, "@__cxa_finalize"), - Attrs([Attr("address","0x5D0")]), Phis([]), -Defs([Def(Tid(1_099, "%0000044b"), Attrs([Attr("address","0x5D0"), -Attr("insn","adrp x16, #65536")]), Var("R16",Imm(64)), Int(65536,64)), -Def(Tid(1_106, "%00000452"), Attrs([Attr("address","0x5D4"), -Attr("insn","ldr x17, [x16, #0xfb8]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(4024,64)),LittleEndian(),64)), -Def(Tid(1_112, "%00000458"), Attrs([Attr("address","0x5D8"), -Attr("insn","add x16, x16, #0xfb8")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(4024,64)))]), Jmps([Call(Tid(1_117, "%0000045d"), - Attrs([Attr("address","0x5DC"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), -Sub(Tid(1_456, "@__do_global_dtors_aux"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x700")]), - "__do_global_dtors_aux", Args([Arg(Tid(1_507, "%000005e3"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("__do_global_dtors_aux_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(704, "@__do_global_dtors_aux"), - Attrs([Attr("address","0x700")]), Phis([]), Defs([Def(Tid(708, "%000002c4"), - Attrs([Attr("address","0x700"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("#3",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(18446744073709551584,64))), -Def(Tid(714, "%000002ca"), Attrs([Attr("address","0x700"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("#3",Imm(64)),Var("R29",Imm(64)),LittleEndian(),64)), -Def(Tid(720, "%000002d0"), Attrs([Attr("address","0x700"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("#3",Imm(64)),Int(8,64)),Var("R30",Imm(64)),LittleEndian(),64)), -Def(Tid(724, "%000002d4"), Attrs([Attr("address","0x700"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("R31",Imm(64)), -Var("#3",Imm(64))), Def(Tid(730, "%000002da"), - Attrs([Attr("address","0x704"), Attr("insn","mov x29, sp")]), - Var("R29",Imm(64)), Var("R31",Imm(64))), Def(Tid(738, "%000002e2"), - Attrs([Attr("address","0x708"), Attr("insn","str x19, [sp, #0x10]")]), - Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(16,64)),Var("R19",Imm(64)),LittleEndian(),64)), -Def(Tid(743, "%000002e7"), Attrs([Attr("address","0x70C"), -Attr("insn","adrp x19, #69632")]), Var("R19",Imm(64)), Int(69632,64)), -Def(Tid(750, "%000002ee"), Attrs([Attr("address","0x710"), -Attr("insn","ldrb w0, [x19, #0x10]")]), Var("R0",Imm(64)), -UNSIGNED(64,Load(Var("mem",Mem(64,8)),PLUS(Var("R19",Imm(64)),Int(16,64)),LittleEndian(),8)))]), -Jmps([Goto(Tid(757, "%000002f5"), Attrs([Attr("address","0x714"), -Attr("insn","cbnz w0, #0x28")]), - NEQ(Extract(31,0,Var("R0",Imm(64))),Int(0,32)), -Direct(Tid(755, "%000002f3"))), Goto(Tid(1_495, "%000005d7"), Attrs([]), - Int(1,1), Direct(Tid(796, "%0000031c")))])), Blk(Tid(796, "%0000031c"), - Attrs([Attr("address","0x718")]), Phis([]), Defs([Def(Tid(799, "%0000031f"), - Attrs([Attr("address","0x718"), Attr("insn","adrp x0, #65536")]), - Var("R0",Imm(64)), Int(65536,64)), Def(Tid(806, "%00000326"), - Attrs([Attr("address","0x71C"), Attr("insn","ldr x0, [x0, #0xfe0]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(4064,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(812, "%0000032c"), Attrs([Attr("address","0x720"), -Attr("insn","cbz x0, #0x10")]), EQ(Var("R0",Imm(64)),Int(0,64)), -Direct(Tid(810, "%0000032a"))), Goto(Tid(1_496, "%000005d8"), Attrs([]), - Int(1,1), Direct(Tid(835, "%00000343")))])), Blk(Tid(835, "%00000343"), - Attrs([Attr("address","0x724")]), Phis([]), Defs([Def(Tid(838, "%00000346"), - Attrs([Attr("address","0x724"), Attr("insn","adrp x0, #69632")]), - Var("R0",Imm(64)), Int(69632,64)), Def(Tid(845, "%0000034d"), - Attrs([Attr("address","0x728"), Attr("insn","ldr x0, [x0, #0x8]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(850, "%00000352"), Attrs([Attr("address","0x72C"), -Attr("insn","bl #-0x15c")]), Var("R30",Imm(64)), Int(1840,64))]), -Jmps([Call(Tid(853, "%00000355"), Attrs([Attr("address","0x72C"), -Attr("insn","bl #-0x15c")]), Int(1,1), -(Direct(Tid(1_455, "@__cxa_finalize")),Direct(Tid(810, "%0000032a"))))])), -Blk(Tid(810, "%0000032a"), Attrs([Attr("address","0x730")]), Phis([]), -Defs([Def(Tid(818, "%00000332"), Attrs([Attr("address","0x730"), -Attr("insn","bl #-0xa0")]), Var("R30",Imm(64)), Int(1844,64))]), -Jmps([Call(Tid(820, "%00000334"), Attrs([Attr("address","0x730"), -Attr("insn","bl #-0xa0")]), Int(1,1), -(Direct(Tid(1_469, "@deregister_tm_clones")),Direct(Tid(822, "%00000336"))))])), -Blk(Tid(822, "%00000336"), Attrs([Attr("address","0x734")]), Phis([]), -Defs([Def(Tid(825, "%00000339"), Attrs([Attr("address","0x734"), -Attr("insn","mov w0, #0x1")]), Var("R0",Imm(64)), Int(1,64)), -Def(Tid(833, "%00000341"), Attrs([Attr("address","0x738"), -Attr("insn","strb w0, [x19, #0x10]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R19",Imm(64)),Int(16,64)),Extract(7,0,Var("R0",Imm(64))),LittleEndian(),8))]), -Jmps([Goto(Tid(1_497, "%000005d9"), Attrs([]), Int(1,1), -Direct(Tid(755, "%000002f3")))])), Blk(Tid(755, "%000002f3"), - Attrs([Attr("address","0x73C")]), Phis([]), Defs([Def(Tid(765, "%000002fd"), - Attrs([Attr("address","0x73C"), Attr("insn","ldr x19, [sp, #0x10]")]), - Var("R19",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(16,64)),LittleEndian(),64)), -Def(Tid(772, "%00000304"), Attrs([Attr("address","0x740"), -Attr("insn","ldp x29, x30, [sp], #0x20")]), Var("R29",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(777, "%00000309"), Attrs([Attr("address","0x740"), -Attr("insn","ldp x29, x30, [sp], #0x20")]), Var("R30",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(781, "%0000030d"), Attrs([Attr("address","0x740"), -Attr("insn","ldp x29, x30, [sp], #0x20")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(32,64)))]), Jmps([Call(Tid(786, "%00000312"), - Attrs([Attr("address","0x744"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), Sub(Tid(1_460, "@__libc_start_main"), - Attrs([Attr("c.proto","signed (*)(signed (*)(signed , char** , char** );* main, signed , char** , \nvoid* auxv)"), -Attr("address","0x5C0"), Attr("stub","()")]), "__libc_start_main", - Args([Arg(Tid(1_508, "%000005e4"), - Attrs([Attr("c.layout","**[ : 64]"), -Attr("c.data","Top:u64 ptr ptr"), -Attr("c.type","signed (*)(signed , char** , char** );*")]), - Var("__libc_start_main_main",Imm(64)), Var("R0",Imm(64)), In()), -Arg(Tid(1_509, "%000005e5"), Attrs([Attr("c.layout","[signed : 32]"), -Attr("c.data","Top:u32"), Attr("c.type","signed")]), - Var("__libc_start_main_arg2",Imm(32)), LOW(32,Var("R1",Imm(64))), In()), -Arg(Tid(1_510, "%000005e6"), Attrs([Attr("c.layout","**[char : 8]"), -Attr("c.data","Top:u8 ptr ptr"), Attr("c.type","char**")]), - Var("__libc_start_main_arg3",Imm(64)), Var("R2",Imm(64)), Both()), -Arg(Tid(1_511, "%000005e7"), Attrs([Attr("c.layout","*[ : 8]"), -Attr("c.data","{} ptr"), Attr("c.type","void*")]), - Var("__libc_start_main_auxv",Imm(64)), Var("R3",Imm(64)), Both()), -Arg(Tid(1_512, "%000005e8"), Attrs([Attr("c.layout","[signed : 32]"), -Attr("c.data","Top:u32"), Attr("c.type","signed")]), - Var("__libc_start_main_result",Imm(32)), LOW(32,Var("R0",Imm(64))), -Out())]), Blks([Blk(Tid(537, "@__libc_start_main"), - Attrs([Attr("address","0x5C0")]), Phis([]), -Defs([Def(Tid(1_077, "%00000435"), Attrs([Attr("address","0x5C0"), -Attr("insn","adrp x16, #65536")]), Var("R16",Imm(64)), Int(65536,64)), -Def(Tid(1_084, "%0000043c"), Attrs([Attr("address","0x5C4"), -Attr("insn","ldr x17, [x16, #0xfb0]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(4016,64)),LittleEndian(),64)), -Def(Tid(1_090, "%00000442"), Attrs([Attr("address","0x5C8"), -Attr("insn","add x16, x16, #0xfb0")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(4016,64)))]), Jmps([Call(Tid(1_095, "%00000447"), - Attrs([Attr("address","0x5CC"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), Sub(Tid(1_461, "@_fini"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x754")]), - "_fini", Args([Arg(Tid(1_513, "%000005e9"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("_fini_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(31, "@_fini"), - Attrs([Attr("address","0x754")]), Phis([]), Defs([Def(Tid(37, "%00000025"), - Attrs([Attr("address","0x758"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("#0",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(18446744073709551600,64))), -Def(Tid(43, "%0000002b"), Attrs([Attr("address","0x758"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("#0",Imm(64)),Var("R29",Imm(64)),LittleEndian(),64)), -Def(Tid(49, "%00000031"), Attrs([Attr("address","0x758"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("#0",Imm(64)),Int(8,64)),Var("R30",Imm(64)),LittleEndian(),64)), -Def(Tid(53, "%00000035"), Attrs([Attr("address","0x758"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("R31",Imm(64)), -Var("#0",Imm(64))), Def(Tid(59, "%0000003b"), Attrs([Attr("address","0x75C"), -Attr("insn","mov x29, sp")]), Var("R29",Imm(64)), Var("R31",Imm(64))), -Def(Tid(66, "%00000042"), Attrs([Attr("address","0x760"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R29",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(71, "%00000047"), Attrs([Attr("address","0x760"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R30",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(75, "%0000004b"), Attrs([Attr("address","0x760"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(16,64)))]), Jmps([Call(Tid(80, "%00000050"), - Attrs([Attr("address","0x764"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), Sub(Tid(1_462, "@_init"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x580")]), - "_init", Args([Arg(Tid(1_514, "%000005ea"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("_init_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(1_281, "@_init"), - Attrs([Attr("address","0x580")]), Phis([]), -Defs([Def(Tid(1_287, "%00000507"), Attrs([Attr("address","0x584"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("#5",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(18446744073709551600,64))), -Def(Tid(1_293, "%0000050d"), Attrs([Attr("address","0x584"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("#5",Imm(64)),Var("R29",Imm(64)),LittleEndian(),64)), -Def(Tid(1_299, "%00000513"), Attrs([Attr("address","0x584"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("#5",Imm(64)),Int(8,64)),Var("R30",Imm(64)),LittleEndian(),64)), -Def(Tid(1_303, "%00000517"), Attrs([Attr("address","0x584"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("R31",Imm(64)), -Var("#5",Imm(64))), Def(Tid(1_309, "%0000051d"), - Attrs([Attr("address","0x588"), Attr("insn","mov x29, sp")]), - Var("R29",Imm(64)), Var("R31",Imm(64))), Def(Tid(1_314, "%00000522"), - Attrs([Attr("address","0x58C"), Attr("insn","bl #0xe8")]), - Var("R30",Imm(64)), Int(1424,64))]), Jmps([Call(Tid(1_316, "%00000524"), - Attrs([Attr("address","0x58C"), Attr("insn","bl #0xe8")]), Int(1,1), -(Direct(Tid(1_467, "@call_weak_fn")),Direct(Tid(1_318, "%00000526"))))])), -Blk(Tid(1_318, "%00000526"), Attrs([Attr("address","0x590")]), Phis([]), -Defs([Def(Tid(1_323, "%0000052b"), Attrs([Attr("address","0x590"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R29",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(1_328, "%00000530"), Attrs([Attr("address","0x590"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R30",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(1_332, "%00000534"), Attrs([Attr("address","0x590"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(16,64)))]), Jmps([Call(Tid(1_337, "%00000539"), - Attrs([Attr("address","0x594"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), Sub(Tid(1_463, "@_start"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x640"), -Attr("entry-point","()")]), "_start", Args([Arg(Tid(1_515, "%000005eb"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("_start_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(474, "@_start"), - Attrs([Attr("address","0x640")]), Phis([]), Defs([Def(Tid(479, "%000001df"), - Attrs([Attr("address","0x644"), Attr("insn","mov x29, #0x0")]), - Var("R29",Imm(64)), Int(0,64)), Def(Tid(484, "%000001e4"), - Attrs([Attr("address","0x648"), Attr("insn","mov x30, #0x0")]), - Var("R30",Imm(64)), Int(0,64)), Def(Tid(490, "%000001ea"), - Attrs([Attr("address","0x64C"), Attr("insn","mov x5, x0")]), - Var("R5",Imm(64)), Var("R0",Imm(64))), Def(Tid(497, "%000001f1"), - Attrs([Attr("address","0x650"), Attr("insn","ldr x1, [sp]")]), - Var("R1",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(503, "%000001f7"), Attrs([Attr("address","0x654"), -Attr("insn","add x2, sp, #0x8")]), Var("R2",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(8,64))), Def(Tid(509, "%000001fd"), - Attrs([Attr("address","0x658"), Attr("insn","mov x6, sp")]), - Var("R6",Imm(64)), Var("R31",Imm(64))), Def(Tid(514, "%00000202"), - Attrs([Attr("address","0x65C"), Attr("insn","adrp x0, #65536")]), - Var("R0",Imm(64)), Int(65536,64)), Def(Tid(521, "%00000209"), - Attrs([Attr("address","0x660"), Attr("insn","ldr x0, [x0, #0xff0]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(4080,64)),LittleEndian(),64)), -Def(Tid(526, "%0000020e"), Attrs([Attr("address","0x664"), -Attr("insn","mov x3, #0x0")]), Var("R3",Imm(64)), Int(0,64)), -Def(Tid(531, "%00000213"), Attrs([Attr("address","0x668"), -Attr("insn","mov x4, #0x0")]), Var("R4",Imm(64)), Int(0,64)), -Def(Tid(536, "%00000218"), Attrs([Attr("address","0x66C"), -Attr("insn","bl #-0xac")]), Var("R30",Imm(64)), Int(1648,64))]), -Jmps([Call(Tid(539, "%0000021b"), Attrs([Attr("address","0x66C"), -Attr("insn","bl #-0xac")]), Int(1,1), -(Direct(Tid(1_460, "@__libc_start_main")),Direct(Tid(541, "%0000021d"))))])), -Blk(Tid(541, "%0000021d"), Attrs([Attr("address","0x670")]), Phis([]), -Defs([Def(Tid(544, "%00000220"), Attrs([Attr("address","0x670"), -Attr("insn","bl #-0x80")]), Var("R30",Imm(64)), Int(1652,64))]), -Jmps([Call(Tid(547, "%00000223"), Attrs([Attr("address","0x670"), -Attr("insn","bl #-0x80")]), Int(1,1), -(Direct(Tid(1_466, "@abort")),Direct(Tid(1_498, "%000005da"))))])), -Blk(Tid(1_498, "%000005da"), Attrs([]), Phis([]), Defs([]), -Jmps([Call(Tid(1_499, "%000005db"), Attrs([]), Int(1,1), -(Direct(Tid(1_467, "@call_weak_fn")),))]))])), Sub(Tid(1_466, "@abort"), - Attrs([Attr("noreturn","()"), Attr("c.proto","void (*)(void)"), -Attr("address","0x5F0"), Attr("stub","()")]), "abort", Args([]), -Blks([Blk(Tid(545, "@abort"), Attrs([Attr("address","0x5F0")]), Phis([]), -Defs([Def(Tid(1_143, "%00000477"), Attrs([Attr("address","0x5F0"), -Attr("insn","adrp x16, #65536")]), Var("R16",Imm(64)), Int(65536,64)), -Def(Tid(1_150, "%0000047e"), Attrs([Attr("address","0x5F4"), -Attr("insn","ldr x17, [x16, #0xfc8]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(4040,64)),LittleEndian(),64)), -Def(Tid(1_156, "%00000484"), Attrs([Attr("address","0x5F8"), -Attr("insn","add x16, x16, #0xfc8")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(4040,64)))]), Jmps([Call(Tid(1_161, "%00000489"), - Attrs([Attr("address","0x5FC"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), Sub(Tid(1_467, "@call_weak_fn"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x674")]), - "call_weak_fn", Args([Arg(Tid(1_516, "%000005ec"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("call_weak_fn_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(549, "@call_weak_fn"), - Attrs([Attr("address","0x674")]), Phis([]), Defs([Def(Tid(552, "%00000228"), - Attrs([Attr("address","0x674"), Attr("insn","adrp x0, #65536")]), - Var("R0",Imm(64)), Int(65536,64)), Def(Tid(559, "%0000022f"), - Attrs([Attr("address","0x678"), Attr("insn","ldr x0, [x0, #0xfe8]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(4072,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(565, "%00000235"), Attrs([Attr("address","0x67C"), -Attr("insn","cbz x0, #0x8")]), EQ(Var("R0",Imm(64)),Int(0,64)), -Direct(Tid(563, "%00000233"))), Goto(Tid(1_500, "%000005dc"), Attrs([]), - Int(1,1), Direct(Tid(915, "%00000393")))])), Blk(Tid(563, "%00000233"), - Attrs([Attr("address","0x684")]), Phis([]), Defs([]), -Jmps([Call(Tid(571, "%0000023b"), Attrs([Attr("address","0x684"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))])), -Blk(Tid(915, "%00000393"), Attrs([Attr("address","0x680")]), Phis([]), -Defs([]), Jmps([Goto(Tid(918, "%00000396"), Attrs([Attr("address","0x680"), -Attr("insn","b #-0xa0")]), Int(1,1), Direct(Tid(916, "@__gmon_start__")))])), -Blk(Tid(916, "@__gmon_start__"), Attrs([Attr("address","0x5E0")]), Phis([]), -Defs([Def(Tid(1_121, "%00000461"), Attrs([Attr("address","0x5E0"), -Attr("insn","adrp x16, #65536")]), Var("R16",Imm(64)), Int(65536,64)), -Def(Tid(1_128, "%00000468"), Attrs([Attr("address","0x5E4"), -Attr("insn","ldr x17, [x16, #0xfc0]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(4032,64)),LittleEndian(),64)), -Def(Tid(1_134, "%0000046e"), Attrs([Attr("address","0x5E8"), -Attr("insn","add x16, x16, #0xfc0")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(4032,64)))]), Jmps([Call(Tid(1_139, "%00000473"), - Attrs([Attr("address","0x5EC"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), -Sub(Tid(1_469, "@deregister_tm_clones"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x690")]), - "deregister_tm_clones", Args([Arg(Tid(1_517, "%000005ed"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("deregister_tm_clones_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(577, "@deregister_tm_clones"), - Attrs([Attr("address","0x690")]), Phis([]), Defs([Def(Tid(580, "%00000244"), - Attrs([Attr("address","0x690"), Attr("insn","adrp x0, #69632")]), - Var("R0",Imm(64)), Int(69632,64)), Def(Tid(586, "%0000024a"), - Attrs([Attr("address","0x694"), Attr("insn","add x0, x0, #0x10")]), - Var("R0",Imm(64)), PLUS(Var("R0",Imm(64)),Int(16,64))), -Def(Tid(591, "%0000024f"), Attrs([Attr("address","0x698"), -Attr("insn","adrp x1, #69632")]), Var("R1",Imm(64)), Int(69632,64)), -Def(Tid(597, "%00000255"), Attrs([Attr("address","0x69C"), -Attr("insn","add x1, x1, #0x10")]), Var("R1",Imm(64)), -PLUS(Var("R1",Imm(64)),Int(16,64))), Def(Tid(603, "%0000025b"), - Attrs([Attr("address","0x6A0"), Attr("insn","cmp x1, x0")]), - Var("#1",Imm(64)), NOT(Var("R0",Imm(64)))), Def(Tid(608, "%00000260"), - Attrs([Attr("address","0x6A0"), Attr("insn","cmp x1, x0")]), - Var("#2",Imm(64)), PLUS(Var("R1",Imm(64)),NOT(Var("R0",Imm(64))))), -Def(Tid(614, "%00000266"), Attrs([Attr("address","0x6A0"), -Attr("insn","cmp x1, x0")]), Var("VF",Imm(1)), -NEQ(SIGNED(65,PLUS(Var("#2",Imm(64)),Int(1,64))),PLUS(PLUS(SIGNED(65,Var("R1",Imm(64))),SIGNED(65,Var("#1",Imm(64)))),Int(1,65)))), -Def(Tid(620, "%0000026c"), Attrs([Attr("address","0x6A0"), -Attr("insn","cmp x1, x0")]), Var("CF",Imm(1)), -NEQ(UNSIGNED(65,PLUS(Var("#2",Imm(64)),Int(1,64))),PLUS(PLUS(UNSIGNED(65,Var("R1",Imm(64))),UNSIGNED(65,Var("#1",Imm(64)))),Int(1,65)))), -Def(Tid(624, "%00000270"), Attrs([Attr("address","0x6A0"), -Attr("insn","cmp x1, x0")]), Var("ZF",Imm(1)), -EQ(PLUS(Var("#2",Imm(64)),Int(1,64)),Int(0,64))), Def(Tid(628, "%00000274"), - Attrs([Attr("address","0x6A0"), Attr("insn","cmp x1, x0")]), - Var("NF",Imm(1)), Extract(63,63,PLUS(Var("#2",Imm(64)),Int(1,64))))]), -Jmps([Goto(Tid(634, "%0000027a"), Attrs([Attr("address","0x6A4"), -Attr("insn","b.eq #0x18")]), EQ(Var("ZF",Imm(1)),Int(1,1)), -Direct(Tid(632, "%00000278"))), Goto(Tid(1_501, "%000005dd"), Attrs([]), - Int(1,1), Direct(Tid(885, "%00000375")))])), Blk(Tid(885, "%00000375"), - Attrs([Attr("address","0x6A8")]), Phis([]), Defs([Def(Tid(888, "%00000378"), - Attrs([Attr("address","0x6A8"), Attr("insn","adrp x1, #65536")]), - Var("R1",Imm(64)), Int(65536,64)), Def(Tid(895, "%0000037f"), - Attrs([Attr("address","0x6AC"), Attr("insn","ldr x1, [x1, #0xfd8]")]), - Var("R1",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R1",Imm(64)),Int(4056,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(900, "%00000384"), Attrs([Attr("address","0x6B0"), -Attr("insn","cbz x1, #0xc")]), EQ(Var("R1",Imm(64)),Int(0,64)), -Direct(Tid(632, "%00000278"))), Goto(Tid(1_502, "%000005de"), Attrs([]), - Int(1,1), Direct(Tid(904, "%00000388")))])), Blk(Tid(632, "%00000278"), - Attrs([Attr("address","0x6BC")]), Phis([]), Defs([]), -Jmps([Call(Tid(640, "%00000280"), Attrs([Attr("address","0x6BC"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))])), -Blk(Tid(904, "%00000388"), Attrs([Attr("address","0x6B4")]), Phis([]), -Defs([Def(Tid(908, "%0000038c"), Attrs([Attr("address","0x6B4"), -Attr("insn","mov x16, x1")]), Var("R16",Imm(64)), Var("R1",Imm(64)))]), -Jmps([Call(Tid(913, "%00000391"), Attrs([Attr("address","0x6B8"), -Attr("insn","br x16")]), Int(1,1), (Indirect(Var("R16",Imm(64))),))]))])), -Sub(Tid(1_472, "@frame_dummy"), Attrs([Attr("c.proto","signed (*)(void)"), -Attr("address","0x750")]), "frame_dummy", Args([Arg(Tid(1_518, "%000005ee"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("frame_dummy_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(792, "@frame_dummy"), - Attrs([Attr("address","0x750")]), Phis([]), Defs([]), -Jmps([Call(Tid(794, "%0000031a"), Attrs([Attr("address","0x750"), -Attr("insn","b #-0x90")]), Int(1,1), -(Direct(Tid(1_474, "@register_tm_clones")),))]))])), Sub(Tid(1_473, "@main"), - Attrs([Attr("c.proto","signed (*)(signed argc, const char** argv)"), -Attr("address","0x600"), Attr("stub","()")]), "main", - Args([Arg(Tid(1_519, "%000005ef"), Attrs([Attr("c.layout","[signed : 32]"), -Attr("c.data","Top:u32"), Attr("c.type","signed")]), - Var("main_argc",Imm(32)), LOW(32,Var("R0",Imm(64))), In()), -Arg(Tid(1_520, "%000005f0"), Attrs([Attr("c.layout","**[char : 8]"), -Attr("c.data","Top:u8 ptr ptr"), Attr("c.type"," const char**")]), - Var("main_argv",Imm(64)), Var("R1",Imm(64)), Both()), -Arg(Tid(1_521, "%000005f1"), Attrs([Attr("c.layout","[signed : 32]"), -Attr("c.data","Top:u32"), Attr("c.type","signed")]), - Var("main_result",Imm(32)), LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(424, "@main"), Attrs([Attr("address","0x600")]), Phis([]), -Defs([Def(Tid(427, "%000001ab"), Attrs([Attr("address","0x600"), -Attr("insn","adrp x1, #69632")]), Var("R1",Imm(64)), Int(69632,64)), -Def(Tid(432, "%000001b0"), Attrs([Attr("address","0x604"), -Attr("insn","mov w2, #0x1")]), Var("R2",Imm(64)), Int(1,64)), -Def(Tid(437, "%000001b5"), Attrs([Attr("address","0x608"), -Attr("insn","mov w0, #0x0")]), Var("R0",Imm(64)), Int(0,64)), -Def(Tid(445, "%000001bd"), Attrs([Attr("address","0x60C"), -Attr("insn","str w2, [x1, #0x14]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R1",Imm(64)),Int(20,64)),Extract(31,0,Var("R2",Imm(64))),LittleEndian(),32))]), -Jmps([Call(Tid(450, "%000001c2"), Attrs([Attr("address","0x610"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))]))])), -Sub(Tid(1_474, "@register_tm_clones"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x6C0")]), - "register_tm_clones", Args([Arg(Tid(1_522, "%000005f2"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("register_tm_clones_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(642, "@register_tm_clones"), Attrs([Attr("address","0x6C0")]), - Phis([]), Defs([Def(Tid(645, "%00000285"), Attrs([Attr("address","0x6C0"), -Attr("insn","adrp x0, #69632")]), Var("R0",Imm(64)), Int(69632,64)), -Def(Tid(651, "%0000028b"), Attrs([Attr("address","0x6C4"), -Attr("insn","add x0, x0, #0x10")]), Var("R0",Imm(64)), -PLUS(Var("R0",Imm(64)),Int(16,64))), Def(Tid(656, "%00000290"), - Attrs([Attr("address","0x6C8"), Attr("insn","adrp x1, #69632")]), - Var("R1",Imm(64)), Int(69632,64)), Def(Tid(662, "%00000296"), - Attrs([Attr("address","0x6CC"), Attr("insn","add x1, x1, #0x10")]), - Var("R1",Imm(64)), PLUS(Var("R1",Imm(64)),Int(16,64))), -Def(Tid(669, "%0000029d"), Attrs([Attr("address","0x6D0"), -Attr("insn","sub x1, x1, x0")]), Var("R1",Imm(64)), -PLUS(PLUS(Var("R1",Imm(64)),NOT(Var("R0",Imm(64)))),Int(1,64))), -Def(Tid(675, "%000002a3"), Attrs([Attr("address","0x6D4"), -Attr("insn","lsr x2, x1, #63")]), Var("R2",Imm(64)), -Concat(Int(0,63),Extract(63,63,Var("R1",Imm(64))))), -Def(Tid(682, "%000002aa"), Attrs([Attr("address","0x6D8"), -Attr("insn","add x1, x2, x1, asr #3")]), Var("R1",Imm(64)), -PLUS(Var("R2",Imm(64)),ARSHIFT(Var("R1",Imm(64)),Int(3,3)))), -Def(Tid(688, "%000002b0"), Attrs([Attr("address","0x6DC"), -Attr("insn","asr x1, x1, #1")]), Var("R1",Imm(64)), -SIGNED(64,Extract(63,1,Var("R1",Imm(64)))))]), -Jmps([Goto(Tid(694, "%000002b6"), Attrs([Attr("address","0x6E0"), -Attr("insn","cbz x1, #0x18")]), EQ(Var("R1",Imm(64)),Int(0,64)), -Direct(Tid(692, "%000002b4"))), Goto(Tid(1_503, "%000005df"), Attrs([]), - Int(1,1), Direct(Tid(855, "%00000357")))])), Blk(Tid(855, "%00000357"), - Attrs([Attr("address","0x6E4")]), Phis([]), Defs([Def(Tid(858, "%0000035a"), - Attrs([Attr("address","0x6E4"), Attr("insn","adrp x2, #65536")]), - Var("R2",Imm(64)), Int(65536,64)), Def(Tid(865, "%00000361"), - Attrs([Attr("address","0x6E8"), Attr("insn","ldr x2, [x2, #0xff8]")]), - Var("R2",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R2",Imm(64)),Int(4088,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(870, "%00000366"), Attrs([Attr("address","0x6EC"), -Attr("insn","cbz x2, #0xc")]), EQ(Var("R2",Imm(64)),Int(0,64)), -Direct(Tid(692, "%000002b4"))), Goto(Tid(1_504, "%000005e0"), Attrs([]), - Int(1,1), Direct(Tid(874, "%0000036a")))])), Blk(Tid(692, "%000002b4"), - Attrs([Attr("address","0x6F8")]), Phis([]), Defs([]), -Jmps([Call(Tid(700, "%000002bc"), Attrs([Attr("address","0x6F8"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))])), -Blk(Tid(874, "%0000036a"), Attrs([Attr("address","0x6F0")]), Phis([]), -Defs([Def(Tid(878, "%0000036e"), Attrs([Attr("address","0x6F0"), -Attr("insn","mov x16, x2")]), Var("R16",Imm(64)), Var("R2",Imm(64)))]), -Jmps([Call(Tid(883, "%00000373"), Attrs([Attr("address","0x6F4"), -Attr("insn","br x16")]), Int(1,1), -(Indirect(Var("R16",Imm(64))),))]))]))]))) \ No newline at end of file diff --git a/src/test/correct/using_gamma_write_z/gcc_O2/using_gamma_write_z.bir b/src/test/correct/using_gamma_write_z/gcc_O2/using_gamma_write_z.bir deleted file mode 100644 index d74cdd8e2..000000000 --- a/src/test/correct/using_gamma_write_z/gcc_O2/using_gamma_write_z.bir +++ /dev/null @@ -1,227 +0,0 @@ -000005e1: program -000005af: sub __cxa_finalize(__cxa_finalize_result) -000005e2: __cxa_finalize_result :: out u32 = low:32[R0] - -00000353: -0000044b: R16 := 0x10000 -00000452: R17 := mem[R16 + 0xFB8, el]:u64 -00000458: R16 := R16 + 0xFB8 -0000045d: call R17 with noreturn - -000005b0: sub __do_global_dtors_aux(__do_global_dtors_aux_result) -000005e3: __do_global_dtors_aux_result :: out u32 = low:32[R0] - -000002c0: -000002c4: #3 := R31 - 0x20 -000002ca: mem := mem with [#3, el]:u64 <- R29 -000002d0: mem := mem with [#3 + 8, el]:u64 <- R30 -000002d4: R31 := #3 -000002da: R29 := R31 -000002e2: mem := mem with [R31 + 0x10, el]:u64 <- R19 -000002e7: R19 := 0x11000 -000002ee: R0 := pad:64[mem[R19 + 0x10]] -000002f5: when 31:0[R0] <> 0 goto %000002f3 -000005d7: goto %0000031c - -0000031c: -0000031f: R0 := 0x10000 -00000326: R0 := mem[R0 + 0xFE0, el]:u64 -0000032c: when R0 = 0 goto %0000032a -000005d8: goto %00000343 - -00000343: -00000346: R0 := 0x11000 -0000034d: R0 := mem[R0 + 8, el]:u64 -00000352: R30 := 0x730 -00000355: call @__cxa_finalize with return %0000032a - -0000032a: -00000332: R30 := 0x734 -00000334: call @deregister_tm_clones with return %00000336 - -00000336: -00000339: R0 := 1 -00000341: mem := mem with [R19 + 0x10] <- 7:0[R0] -000005d9: goto %000002f3 - -000002f3: -000002fd: R19 := mem[R31 + 0x10, el]:u64 -00000304: R29 := mem[R31, el]:u64 -00000309: R30 := mem[R31 + 8, el]:u64 -0000030d: R31 := R31 + 0x20 -00000312: call R30 with noreturn - -000005b4: sub __libc_start_main(__libc_start_main_main, __libc_start_main_arg2, __libc_start_main_arg3, __libc_start_main_auxv, __libc_start_main_result) -000005e4: __libc_start_main_main :: in u64 = R0 -000005e5: __libc_start_main_arg2 :: in u32 = low:32[R1] -000005e6: __libc_start_main_arg3 :: in out u64 = R2 -000005e7: __libc_start_main_auxv :: in out u64 = R3 -000005e8: __libc_start_main_result :: out u32 = low:32[R0] - -00000219: -00000435: R16 := 0x10000 -0000043c: R17 := mem[R16 + 0xFB0, el]:u64 -00000442: R16 := R16 + 0xFB0 -00000447: call R17 with noreturn - -000005b5: sub _fini(_fini_result) -000005e9: _fini_result :: out u32 = low:32[R0] - -0000001f: -00000025: #0 := R31 - 0x10 -0000002b: mem := mem with [#0, el]:u64 <- R29 -00000031: mem := mem with [#0 + 8, el]:u64 <- R30 -00000035: R31 := #0 -0000003b: R29 := R31 -00000042: R29 := mem[R31, el]:u64 -00000047: R30 := mem[R31 + 8, el]:u64 -0000004b: R31 := R31 + 0x10 -00000050: call R30 with noreturn - -000005b6: sub _init(_init_result) -000005ea: _init_result :: out u32 = low:32[R0] - -00000501: -00000507: #5 := R31 - 0x10 -0000050d: mem := mem with [#5, el]:u64 <- R29 -00000513: mem := mem with [#5 + 8, el]:u64 <- R30 -00000517: R31 := #5 -0000051d: R29 := R31 -00000522: R30 := 0x590 -00000524: call @call_weak_fn with return %00000526 - -00000526: -0000052b: R29 := mem[R31, el]:u64 -00000530: R30 := mem[R31 + 8, el]:u64 -00000534: R31 := R31 + 0x10 -00000539: call R30 with noreturn - -000005b7: sub _start(_start_result) -000005eb: _start_result :: out u32 = low:32[R0] - -000001da: -000001df: R29 := 0 -000001e4: R30 := 0 -000001ea: R5 := R0 -000001f1: R1 := mem[R31, el]:u64 -000001f7: R2 := R31 + 8 -000001fd: R6 := R31 -00000202: R0 := 0x10000 -00000209: R0 := mem[R0 + 0xFF0, el]:u64 -0000020e: R3 := 0 -00000213: R4 := 0 -00000218: R30 := 0x670 -0000021b: call @__libc_start_main with return %0000021d - -0000021d: -00000220: R30 := 0x674 -00000223: call @abort with return %000005da - -000005da: -000005db: call @call_weak_fn with noreturn - -000005ba: sub abort() - - -00000221: -00000477: R16 := 0x10000 -0000047e: R17 := mem[R16 + 0xFC8, el]:u64 -00000484: R16 := R16 + 0xFC8 -00000489: call R17 with noreturn - -000005bb: sub call_weak_fn(call_weak_fn_result) -000005ec: call_weak_fn_result :: out u32 = low:32[R0] - -00000225: -00000228: R0 := 0x10000 -0000022f: R0 := mem[R0 + 0xFE8, el]:u64 -00000235: when R0 = 0 goto %00000233 -000005dc: goto %00000393 - -00000233: -0000023b: call R30 with noreturn - -00000393: -00000396: goto @__gmon_start__ - -00000394: -00000461: R16 := 0x10000 -00000468: R17 := mem[R16 + 0xFC0, el]:u64 -0000046e: R16 := R16 + 0xFC0 -00000473: call R17 with noreturn - -000005bd: sub deregister_tm_clones(deregister_tm_clones_result) -000005ed: deregister_tm_clones_result :: out u32 = low:32[R0] - -00000241: -00000244: R0 := 0x11000 -0000024a: R0 := R0 + 0x10 -0000024f: R1 := 0x11000 -00000255: R1 := R1 + 0x10 -0000025b: #1 := ~R0 -00000260: #2 := R1 + ~R0 -00000266: VF := extend:65[#2 + 1] <> extend:65[R1] + extend:65[#1] + 1 -0000026c: CF := pad:65[#2 + 1] <> pad:65[R1] + pad:65[#1] + 1 -00000270: ZF := #2 + 1 = 0 -00000274: NF := 63:63[#2 + 1] -0000027a: when ZF goto %00000278 -000005dd: goto %00000375 - -00000375: -00000378: R1 := 0x10000 -0000037f: R1 := mem[R1 + 0xFD8, el]:u64 -00000384: when R1 = 0 goto %00000278 -000005de: goto %00000388 - -00000278: -00000280: call R30 with noreturn - -00000388: -0000038c: R16 := R1 -00000391: call R16 with noreturn - -000005c0: sub frame_dummy(frame_dummy_result) -000005ee: frame_dummy_result :: out u32 = low:32[R0] - -00000318: -0000031a: call @register_tm_clones with noreturn - -000005c1: sub main(main_argc, main_argv, main_result) -000005ef: main_argc :: in u32 = low:32[R0] -000005f0: main_argv :: in out u64 = R1 -000005f1: main_result :: out u32 = low:32[R0] - -000001a8: -000001ab: R1 := 0x11000 -000001b0: R2 := 1 -000001b5: R0 := 0 -000001bd: mem := mem with [R1 + 0x14, el]:u32 <- 31:0[R2] -000001c2: call R30 with noreturn - -000005c2: sub register_tm_clones(register_tm_clones_result) -000005f2: register_tm_clones_result :: out u32 = low:32[R0] - -00000282: -00000285: R0 := 0x11000 -0000028b: R0 := R0 + 0x10 -00000290: R1 := 0x11000 -00000296: R1 := R1 + 0x10 -0000029d: R1 := R1 + ~R0 + 1 -000002a3: R2 := 0.63:63[R1] -000002aa: R1 := R2 + (R1 ~>> 3) -000002b0: R1 := extend:64[63:1[R1]] -000002b6: when R1 = 0 goto %000002b4 -000005df: goto %00000357 - -00000357: -0000035a: R2 := 0x10000 -00000361: R2 := mem[R2 + 0xFF8, el]:u64 -00000366: when R2 = 0 goto %000002b4 -000005e0: goto %0000036a - -000002b4: -000002bc: call R30 with noreturn - -0000036a: -0000036e: R16 := R2 -00000373: call R16 with noreturn diff --git a/src/test/correct/using_gamma_write_z/gcc_O2/using_gamma_write_z.expected b/src/test/correct/using_gamma_write_z/gcc_O2/using_gamma_write_z.expected index f36a263f1..842fc9472 100644 --- a/src/test/correct/using_gamma_write_z/gcc_O2/using_gamma_write_z.expected +++ b/src/test/correct/using_gamma_write_z/gcc_O2/using_gamma_write_z.expected @@ -7,9 +7,9 @@ var {:extern} R1: bv64; var {:extern} R2: bv64; var {:extern} mem: [bv64]bv8; const {:extern} $x_addr: bv64; -axiom ($x_addr == 69656bv64); +axiom ($x_addr == 4325400bv64); const {:extern} $z_addr: bv64; -axiom ($z_addr == 69652bv64); +axiom ($z_addr == 4325396bv64); function {:extern} L(mem$in: [bv64]bv8, index: bv64) returns (bool) { (if (index == $z_addr) then true else (if (index == $x_addr) then (memory_load32_le(mem$in, $z_addr) == 0bv32) else false)) } @@ -19,6 +19,10 @@ function {:extern} gamma_load32(gammaMap: [bv64]bool, index: bv64) returns (bool (gammaMap[bvadd64(index, 3bv64)] && (gammaMap[bvadd64(index, 2bv64)] && (gammaMap[bvadd64(index, 1bv64)] && gammaMap[index]))) } +function {:extern} gamma_load64(gammaMap: [bv64]bool, index: bv64) returns (bool) { + (gammaMap[bvadd64(index, 7bv64)] && (gammaMap[bvadd64(index, 6bv64)] && (gammaMap[bvadd64(index, 5bv64)] && (gammaMap[bvadd64(index, 4bv64)] && (gammaMap[bvadd64(index, 3bv64)] && (gammaMap[bvadd64(index, 2bv64)] && (gammaMap[bvadd64(index, 1bv64)] && gammaMap[index]))))))) +} + function {:extern} gamma_store32(gammaMap: [bv64]bool, index: bv64, value: bool) returns ([bv64]bool) { gammaMap[index := value][bvadd64(index, 1bv64) := value][bvadd64(index, 2bv64) := value][bvadd64(index, 3bv64) := value] } @@ -39,11 +43,7 @@ procedure {:extern} rely(); modifies Gamma_mem, mem; ensures (forall i: bv64 :: (((mem[i] == old(mem[i])) ==> (Gamma_mem[i] == old(Gamma_mem[i]))))); ensures ((old(memory_load32_le(mem, $x_addr)) == memory_load32_le(mem, $x_addr)) && (old(memory_load32_le(mem, $z_addr)) == memory_load32_le(mem, $z_addr))); - free ensures (memory_load32_le(mem, 1896bv64) == 131073bv32); - free ensures (memory_load64_le(mem, 69016bv64) == 1872bv64); - free ensures (memory_load64_le(mem, 69024bv64) == 1792bv64); - free ensures (memory_load64_le(mem, 69616bv64) == 1536bv64); - free ensures (memory_load64_le(mem, 69640bv64) == 69640bv64); + free ensures (memory_load32_le(mem, 4196312bv64) == 131073bv32); procedure {:extern} rely_transitive(); modifies Gamma_mem, mem; @@ -70,39 +70,36 @@ implementation {:extern} guarantee_reflexive() assert (gamma_load32(Gamma_mem, $x_addr) ==> gamma_load32(Gamma_mem, $x_addr)); } -procedure main_1536(); +procedure main(); modifies Gamma_R0, Gamma_R1, Gamma_R2, Gamma_mem, R0, R1, R2, mem; requires ((memory_load32_le(mem, $z_addr) == 0bv32) ==> gamma_load32(Gamma_mem, $x_addr)); - free requires (memory_load64_le(mem, 69632bv64) == 0bv64); - free requires (memory_load64_le(mem, 69640bv64) == 69640bv64); - free requires (memory_load32_le(mem, 1896bv64) == 131073bv32); - free requires (memory_load64_le(mem, 69016bv64) == 1872bv64); - free requires (memory_load64_le(mem, 69024bv64) == 1792bv64); - free requires (memory_load64_le(mem, 69616bv64) == 1536bv64); - free requires (memory_load64_le(mem, 69640bv64) == 69640bv64); - free ensures (memory_load32_le(mem, 1896bv64) == 131073bv32); - free ensures (memory_load64_le(mem, 69016bv64) == 1872bv64); - free ensures (memory_load64_le(mem, 69024bv64) == 1792bv64); - free ensures (memory_load64_le(mem, 69616bv64) == 1536bv64); - free ensures (memory_load64_le(mem, 69640bv64) == 69640bv64); - -implementation main_1536() + free requires (memory_load64_le(mem, 4325376bv64) == 0bv64); + free requires (memory_load64_le(mem, 4325384bv64) == 0bv64); + free requires (memory_load32_le(mem, 4196312bv64) == 131073bv32); + free ensures (memory_load32_le(mem, 4196312bv64) == 131073bv32); + +implementation main() { + var $load$14: bv64; + var Gamma_$load$14: bool; var Gamma_x_old: bool; lmain: assume {:captureState "lmain"} true; - R1, Gamma_R1 := 69632bv64, true; + R1, Gamma_R1 := 4321280bv64, true; + call rely(); + $load$14, Gamma_$load$14 := memory_load64_le(mem, bvadd64(R1, 4072bv64)), (gamma_load64(Gamma_mem, bvadd64(R1, 4072bv64)) || L(mem, bvadd64(R1, 4072bv64))); + R1, Gamma_R1 := $load$14, Gamma_$load$14; R2, Gamma_R2 := 1bv64, true; R0, Gamma_R0 := 0bv64, true; call rely(); + assert (L(mem, R1) ==> Gamma_R2); Gamma_x_old := (gamma_load32(Gamma_mem, $x_addr) || L(mem, $x_addr)); - assert (L(mem, bvadd64(R1, 20bv64)) ==> Gamma_R2); - mem, Gamma_mem := memory_store32_le(mem, bvadd64(R1, 20bv64), R2[32:0]), gamma_store32(Gamma_mem, bvadd64(R1, 20bv64), Gamma_R2); - assert ((bvadd64(R1, 20bv64) == $z_addr) ==> (L(mem, $x_addr) ==> Gamma_x_old)); - assume {:captureState "%000001bd"} true; - goto main_1536_basil_return; - main_1536_basil_return: - assume {:captureState "main_1536_basil_return"} true; + mem, Gamma_mem := memory_store32_le(mem, R1, R2[32:0]), gamma_store32(Gamma_mem, R1, Gamma_R2); + assert ((R1 == $z_addr) ==> (L(mem, $x_addr) ==> Gamma_x_old)); + assume {:captureState "%00000258"} true; + goto main_basil_return; + main_basil_return: + assume {:captureState "main_basil_return"} true; return; } diff --git a/src/test/correct/using_gamma_write_z/gcc_O2/using_gamma_write_z.gts b/src/test/correct/using_gamma_write_z/gcc_O2/using_gamma_write_z.gts deleted file mode 100644 index 1ea7ddc5f..000000000 Binary files a/src/test/correct/using_gamma_write_z/gcc_O2/using_gamma_write_z.gts and /dev/null differ diff --git a/src/test/correct/using_gamma_write_z/gcc_O2/using_gamma_write_z.md5sum b/src/test/correct/using_gamma_write_z/gcc_O2/using_gamma_write_z.md5sum new file mode 100644 index 000000000..d7ca8b9f7 --- /dev/null +++ b/src/test/correct/using_gamma_write_z/gcc_O2/using_gamma_write_z.md5sum @@ -0,0 +1,5 @@ +4f8911db0e9008968bbc08860ebf3463 correct/using_gamma_write_z/gcc_O2/a.out +66a225b6c1b61f30a9ac704bc2b5427c correct/using_gamma_write_z/gcc_O2/using_gamma_write_z.adt +59355aca43df0f24dafd3fe145e941e4 correct/using_gamma_write_z/gcc_O2/using_gamma_write_z.bir +ea7f0daad9fd3f050926ffab3c9dbd30 correct/using_gamma_write_z/gcc_O2/using_gamma_write_z.relf +683444237dc4355319ede0b4b33e965b correct/using_gamma_write_z/gcc_O2/using_gamma_write_z.gts diff --git a/src/test/correct/using_gamma_write_z/gcc_O2/using_gamma_write_z.relf b/src/test/correct/using_gamma_write_z/gcc_O2/using_gamma_write_z.relf deleted file mode 100644 index cc4c486a1..000000000 --- a/src/test/correct/using_gamma_write_z/gcc_O2/using_gamma_write_z.relf +++ /dev/null @@ -1,122 +0,0 @@ - -Relocation section '.rela.dyn' at offset 0x460 contains 8 entries: - Offset Info Type Symbol's Value Symbol's Name + Addend -0000000000010d98 0000000000000403 R_AARCH64_RELATIVE 750 -0000000000010da0 0000000000000403 R_AARCH64_RELATIVE 700 -0000000000010ff0 0000000000000403 R_AARCH64_RELATIVE 600 -0000000000011008 0000000000000403 R_AARCH64_RELATIVE 11008 -0000000000010fd8 0000000400000401 R_AARCH64_GLOB_DAT 0000000000000000 _ITM_deregisterTMCloneTable + 0 -0000000000010fe0 0000000500000401 R_AARCH64_GLOB_DAT 0000000000000000 __cxa_finalize@GLIBC_2.17 + 0 -0000000000010fe8 0000000600000401 R_AARCH64_GLOB_DAT 0000000000000000 __gmon_start__ + 0 -0000000000010ff8 0000000800000401 R_AARCH64_GLOB_DAT 0000000000000000 _ITM_registerTMCloneTable + 0 - -Relocation section '.rela.plt' at offset 0x520 contains 4 entries: - Offset Info Type Symbol's Value Symbol's Name + Addend -0000000000010fb0 0000000300000402 R_AARCH64_JUMP_SLOT 0000000000000000 __libc_start_main@GLIBC_2.34 + 0 -0000000000010fb8 0000000500000402 R_AARCH64_JUMP_SLOT 0000000000000000 __cxa_finalize@GLIBC_2.17 + 0 -0000000000010fc0 0000000600000402 R_AARCH64_JUMP_SLOT 0000000000000000 __gmon_start__ + 0 -0000000000010fc8 0000000700000402 R_AARCH64_JUMP_SLOT 0000000000000000 abort@GLIBC_2.17 + 0 - -Symbol table '.dynsym' contains 9 entries: - Num: Value Size Type Bind Vis Ndx Name - 0: 0000000000000000 0 NOTYPE LOCAL DEFAULT UND - 1: 0000000000000580 0 SECTION LOCAL DEFAULT 11 .init - 2: 0000000000011000 0 SECTION LOCAL DEFAULT 22 .data - 3: 0000000000000000 0 FUNC GLOBAL DEFAULT UND __libc_start_main@GLIBC_2.34 (2) - 4: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_deregisterTMCloneTable - 5: 0000000000000000 0 FUNC WEAK DEFAULT UND __cxa_finalize@GLIBC_2.17 (3) - 6: 0000000000000000 0 NOTYPE WEAK DEFAULT UND __gmon_start__ - 7: 0000000000000000 0 FUNC GLOBAL DEFAULT UND abort@GLIBC_2.17 (3) - 8: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_registerTMCloneTable - -Symbol table '.symtab' contains 89 entries: - Num: Value Size Type Bind Vis Ndx Name - 0: 0000000000000000 0 NOTYPE LOCAL DEFAULT UND - 1: 0000000000000238 0 SECTION LOCAL DEFAULT 1 .interp - 2: 0000000000000254 0 SECTION LOCAL DEFAULT 2 .note.gnu.build-id - 3: 0000000000000278 0 SECTION LOCAL DEFAULT 3 .note.ABI-tag - 4: 0000000000000298 0 SECTION LOCAL DEFAULT 4 .gnu.hash - 5: 00000000000002b8 0 SECTION LOCAL DEFAULT 5 .dynsym - 6: 0000000000000390 0 SECTION LOCAL DEFAULT 6 .dynstr - 7: 000000000000041e 0 SECTION LOCAL DEFAULT 7 .gnu.version - 8: 0000000000000430 0 SECTION LOCAL DEFAULT 8 .gnu.version_r - 9: 0000000000000460 0 SECTION LOCAL DEFAULT 9 .rela.dyn - 10: 0000000000000520 0 SECTION LOCAL DEFAULT 10 .rela.plt - 11: 0000000000000580 0 SECTION LOCAL DEFAULT 11 .init - 12: 00000000000005a0 0 SECTION LOCAL DEFAULT 12 .plt - 13: 0000000000000600 0 SECTION LOCAL DEFAULT 13 .text - 14: 0000000000000754 0 SECTION LOCAL DEFAULT 14 .fini - 15: 0000000000000768 0 SECTION LOCAL DEFAULT 15 .rodata - 16: 000000000000076c 0 SECTION LOCAL DEFAULT 16 .eh_frame_hdr - 17: 00000000000007a8 0 SECTION LOCAL DEFAULT 17 .eh_frame - 18: 0000000000010d98 0 SECTION LOCAL DEFAULT 18 .init_array - 19: 0000000000010da0 0 SECTION LOCAL DEFAULT 19 .fini_array - 20: 0000000000010da8 0 SECTION LOCAL DEFAULT 20 .dynamic - 21: 0000000000010f98 0 SECTION LOCAL DEFAULT 21 .got - 22: 0000000000011000 0 SECTION LOCAL DEFAULT 22 .data - 23: 0000000000011010 0 SECTION LOCAL DEFAULT 23 .bss - 24: 0000000000000000 0 SECTION LOCAL DEFAULT 24 .comment - 25: 0000000000000000 0 FILE LOCAL DEFAULT ABS Scrt1.o - 26: 0000000000000278 0 NOTYPE LOCAL DEFAULT 3 $d - 27: 0000000000000278 32 OBJECT LOCAL DEFAULT 3 __abi_tag - 28: 0000000000000640 0 NOTYPE LOCAL DEFAULT 13 $x - 29: 00000000000007bc 0 NOTYPE LOCAL DEFAULT 17 $d - 30: 0000000000000768 0 NOTYPE LOCAL DEFAULT 15 $d - 31: 0000000000000000 0 FILE LOCAL DEFAULT ABS crti.o - 32: 0000000000000674 0 NOTYPE LOCAL DEFAULT 13 $x - 33: 0000000000000674 20 FUNC LOCAL DEFAULT 13 call_weak_fn - 34: 0000000000000580 0 NOTYPE LOCAL DEFAULT 11 $x - 35: 0000000000000754 0 NOTYPE LOCAL DEFAULT 14 $x - 36: 0000000000000000 0 FILE LOCAL DEFAULT ABS crtn.o - 37: 0000000000000590 0 NOTYPE LOCAL DEFAULT 11 $x - 38: 0000000000000760 0 NOTYPE LOCAL DEFAULT 14 $x - 39: 0000000000000000 0 FILE LOCAL DEFAULT ABS using_gamma_write_z.c - 40: 0000000000000600 0 NOTYPE LOCAL DEFAULT 13 $x - 41: 0000000000011014 0 NOTYPE LOCAL DEFAULT 23 $d - 42: 0000000000000830 0 NOTYPE LOCAL DEFAULT 17 $d - 43: 0000000000000000 0 FILE LOCAL DEFAULT ABS crtstuff.c - 44: 0000000000000690 0 NOTYPE LOCAL DEFAULT 13 $x - 45: 0000000000000690 0 FUNC LOCAL DEFAULT 13 deregister_tm_clones - 46: 00000000000006c0 0 FUNC LOCAL DEFAULT 13 register_tm_clones - 47: 0000000000011008 0 NOTYPE LOCAL DEFAULT 22 $d - 48: 0000000000000700 0 FUNC LOCAL DEFAULT 13 __do_global_dtors_aux - 49: 0000000000011010 1 OBJECT LOCAL DEFAULT 23 completed.0 - 50: 0000000000010da0 0 NOTYPE LOCAL DEFAULT 19 $d - 51: 0000000000010da0 0 OBJECT LOCAL DEFAULT 19 __do_global_dtors_aux_fini_array_entry - 52: 0000000000000750 0 FUNC LOCAL DEFAULT 13 frame_dummy - 53: 0000000000010d98 0 NOTYPE LOCAL DEFAULT 18 $d - 54: 0000000000010d98 0 OBJECT LOCAL DEFAULT 18 __frame_dummy_init_array_entry - 55: 00000000000007d0 0 NOTYPE LOCAL DEFAULT 17 $d - 56: 0000000000011010 0 NOTYPE LOCAL DEFAULT 23 $d - 57: 0000000000000000 0 FILE LOCAL DEFAULT ABS crtstuff.c - 58: 0000000000000844 0 NOTYPE LOCAL DEFAULT 17 $d - 59: 0000000000000844 0 OBJECT LOCAL DEFAULT 17 __FRAME_END__ - 60: 0000000000000000 0 FILE LOCAL DEFAULT ABS - 61: 0000000000010da8 0 OBJECT LOCAL DEFAULT ABS _DYNAMIC - 62: 000000000000076c 0 NOTYPE LOCAL DEFAULT 16 __GNU_EH_FRAME_HDR - 63: 0000000000010fd0 0 OBJECT LOCAL DEFAULT ABS _GLOBAL_OFFSET_TABLE_ - 64: 00000000000005a0 0 NOTYPE LOCAL DEFAULT 12 $x - 65: 0000000000000000 0 FUNC GLOBAL DEFAULT UND __libc_start_main@GLIBC_2.34 - 66: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_deregisterTMCloneTable - 67: 0000000000011000 0 NOTYPE WEAK DEFAULT 22 data_start - 68: 0000000000011010 0 NOTYPE GLOBAL DEFAULT 23 __bss_start__ - 69: 0000000000000000 0 FUNC WEAK DEFAULT UND __cxa_finalize@GLIBC_2.17 - 70: 0000000000011020 0 NOTYPE GLOBAL DEFAULT 23 _bss_end__ - 71: 0000000000011010 0 NOTYPE GLOBAL DEFAULT 22 _edata - 72: 0000000000011014 4 OBJECT GLOBAL DEFAULT 23 z - 73: 0000000000011018 4 OBJECT GLOBAL DEFAULT 23 x - 74: 0000000000000754 0 FUNC GLOBAL HIDDEN 14 _fini - 75: 0000000000011020 0 NOTYPE GLOBAL DEFAULT 23 __bss_end__ - 76: 0000000000011000 0 NOTYPE GLOBAL DEFAULT 22 __data_start - 77: 0000000000000000 0 NOTYPE WEAK DEFAULT UND __gmon_start__ - 78: 0000000000011008 0 OBJECT GLOBAL HIDDEN 22 __dso_handle - 79: 0000000000000000 0 FUNC GLOBAL DEFAULT UND abort@GLIBC_2.17 - 80: 0000000000000768 4 OBJECT GLOBAL DEFAULT 15 _IO_stdin_used - 81: 0000000000011020 0 NOTYPE GLOBAL DEFAULT 23 _end - 82: 0000000000000640 52 FUNC GLOBAL DEFAULT 13 _start - 83: 0000000000011020 0 NOTYPE GLOBAL DEFAULT 23 __end__ - 84: 0000000000011010 0 NOTYPE GLOBAL DEFAULT 23 __bss_start - 85: 0000000000000600 20 FUNC GLOBAL DEFAULT 13 main - 86: 0000000000011010 0 OBJECT GLOBAL HIDDEN 22 __TMC_END__ - 87: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_registerTMCloneTable - 88: 0000000000000580 0 FUNC GLOBAL HIDDEN 11 _init diff --git a/src/test/correct/using_gamma_write_z/gcc_O2/using_gamma_write_z_gtirb.expected b/src/test/correct/using_gamma_write_z/gcc_O2/using_gamma_write_z_gtirb.expected index dc98b9281..0bb327435 100644 --- a/src/test/correct/using_gamma_write_z/gcc_O2/using_gamma_write_z_gtirb.expected +++ b/src/test/correct/using_gamma_write_z/gcc_O2/using_gamma_write_z_gtirb.expected @@ -7,9 +7,9 @@ var {:extern} R1: bv64; var {:extern} R2: bv64; var {:extern} mem: [bv64]bv8; const {:extern} $x_addr: bv64; -axiom ($x_addr == 69656bv64); +axiom ($x_addr == 4325400bv64); const {:extern} $z_addr: bv64; -axiom ($z_addr == 69652bv64); +axiom ($z_addr == 4325396bv64); function {:extern} L(mem$in: [bv64]bv8, index: bv64) returns (bool) { (if (index == $z_addr) then true else (if (index == $x_addr) then (memory_load32_le(mem$in, $z_addr) == 0bv32) else false)) } @@ -19,6 +19,10 @@ function {:extern} gamma_load32(gammaMap: [bv64]bool, index: bv64) returns (bool (gammaMap[bvadd64(index, 3bv64)] && (gammaMap[bvadd64(index, 2bv64)] && (gammaMap[bvadd64(index, 1bv64)] && gammaMap[index]))) } +function {:extern} gamma_load64(gammaMap: [bv64]bool, index: bv64) returns (bool) { + (gammaMap[bvadd64(index, 7bv64)] && (gammaMap[bvadd64(index, 6bv64)] && (gammaMap[bvadd64(index, 5bv64)] && (gammaMap[bvadd64(index, 4bv64)] && (gammaMap[bvadd64(index, 3bv64)] && (gammaMap[bvadd64(index, 2bv64)] && (gammaMap[bvadd64(index, 1bv64)] && gammaMap[index]))))))) +} + function {:extern} gamma_store32(gammaMap: [bv64]bool, index: bv64, value: bool) returns ([bv64]bool) { gammaMap[index := value][bvadd64(index, 1bv64) := value][bvadd64(index, 2bv64) := value][bvadd64(index, 3bv64) := value] } @@ -39,11 +43,7 @@ procedure {:extern} rely(); modifies Gamma_mem, mem; ensures (forall i: bv64 :: (((mem[i] == old(mem[i])) ==> (Gamma_mem[i] == old(Gamma_mem[i]))))); ensures ((old(memory_load32_le(mem, $x_addr)) == memory_load32_le(mem, $x_addr)) && (old(memory_load32_le(mem, $z_addr)) == memory_load32_le(mem, $z_addr))); - free ensures (memory_load32_le(mem, 1896bv64) == 131073bv32); - free ensures (memory_load64_le(mem, 69016bv64) == 1872bv64); - free ensures (memory_load64_le(mem, 69024bv64) == 1792bv64); - free ensures (memory_load64_le(mem, 69616bv64) == 1536bv64); - free ensures (memory_load64_le(mem, 69640bv64) == 69640bv64); + free ensures (memory_load32_le(mem, 4196312bv64) == 131073bv32); procedure {:extern} rely_transitive(); modifies Gamma_mem, mem; @@ -70,39 +70,36 @@ implementation {:extern} guarantee_reflexive() assert (gamma_load32(Gamma_mem, $x_addr) ==> gamma_load32(Gamma_mem, $x_addr)); } -procedure main_1536(); +procedure main(); modifies Gamma_R0, Gamma_R1, Gamma_R2, Gamma_mem, R0, R1, R2, mem; requires ((memory_load32_le(mem, $z_addr) == 0bv32) ==> gamma_load32(Gamma_mem, $x_addr)); - free requires (memory_load64_le(mem, 69632bv64) == 0bv64); - free requires (memory_load64_le(mem, 69640bv64) == 69640bv64); - free requires (memory_load32_le(mem, 1896bv64) == 131073bv32); - free requires (memory_load64_le(mem, 69016bv64) == 1872bv64); - free requires (memory_load64_le(mem, 69024bv64) == 1792bv64); - free requires (memory_load64_le(mem, 69616bv64) == 1536bv64); - free requires (memory_load64_le(mem, 69640bv64) == 69640bv64); - free ensures (memory_load32_le(mem, 1896bv64) == 131073bv32); - free ensures (memory_load64_le(mem, 69016bv64) == 1872bv64); - free ensures (memory_load64_le(mem, 69024bv64) == 1792bv64); - free ensures (memory_load64_le(mem, 69616bv64) == 1536bv64); - free ensures (memory_load64_le(mem, 69640bv64) == 69640bv64); - -implementation main_1536() + free requires (memory_load64_le(mem, 4325376bv64) == 0bv64); + free requires (memory_load64_le(mem, 4325384bv64) == 0bv64); + free requires (memory_load32_le(mem, 4196312bv64) == 131073bv32); + free ensures (memory_load32_le(mem, 4196312bv64) == 131073bv32); + +implementation main() { + var $load2: bv64; + var Gamma_$load2: bool; var Gamma_x_old: bool; - main_1536__0__5Y8e~5V6Ssy1xVGyOZzCzw: - assume {:captureState "main_1536__0__5Y8e~5V6Ssy1xVGyOZzCzw"} true; - R1, Gamma_R1 := 69632bv64, true; + $main$__0__$YmNxI7RsS_6TZy3HTKzvWg: + assume {:captureState "$main$__0__$YmNxI7RsS_6TZy3HTKzvWg"} true; + R1, Gamma_R1 := 4321280bv64, true; + call rely(); + $load2, Gamma_$load2 := memory_load64_le(mem, bvadd64(R1, 4072bv64)), (gamma_load64(Gamma_mem, bvadd64(R1, 4072bv64)) || L(mem, bvadd64(R1, 4072bv64))); + R1, Gamma_R1 := $load2, Gamma_$load2; R2, Gamma_R2 := 1bv64, true; R0, Gamma_R0 := 0bv64, true; call rely(); + assert (L(mem, R1) ==> Gamma_R2); Gamma_x_old := (gamma_load32(Gamma_mem, $x_addr) || L(mem, $x_addr)); - assert (L(mem, bvadd64(R1, 20bv64)) ==> Gamma_R2); - mem, Gamma_mem := memory_store32_le(mem, bvadd64(R1, 20bv64), R2[32:0]), gamma_store32(Gamma_mem, bvadd64(R1, 20bv64), Gamma_R2); - assert ((bvadd64(R1, 20bv64) == $z_addr) ==> (L(mem, $x_addr) ==> Gamma_x_old)); - assume {:captureState "1548_0"} true; - goto main_1536_basil_return; - main_1536_basil_return: - assume {:captureState "main_1536_basil_return"} true; + mem, Gamma_mem := memory_store32_le(mem, R1, R2[32:0]), gamma_store32(Gamma_mem, R1, Gamma_R2); + assert ((R1 == $z_addr) ==> (L(mem, $x_addr) ==> Gamma_x_old)); + assume {:captureState "4195984$0"} true; + goto main_basil_return; + main_basil_return: + assume {:captureState "main_basil_return"} true; return; } diff --git a/src/test/correct/using_gamma_write_z/gcc_pic/using_gamma_write_z.adt b/src/test/correct/using_gamma_write_z/gcc_pic/using_gamma_write_z.adt deleted file mode 100644 index 6f904e33e..000000000 --- a/src/test/correct/using_gamma_write_z/gcc_pic/using_gamma_write_z.adt +++ /dev/null @@ -1,495 +0,0 @@ -Project(Attrs([Attr("filename","\"gcc_pic/using_gamma_write_z.out\""), -Attr("image-specification","(declare abi (name str))\n(declare arch (name str))\n(declare base-address (addr int))\n(declare bias (off int))\n(declare bits (size int))\n(declare code-region (addr int) (size int) (off int))\n(declare code-start (addr int))\n(declare entry-point (addr int))\n(declare external-reference (addr int) (name str))\n(declare format (name str))\n(declare is-executable (flag bool))\n(declare is-little-endian (flag bool))\n(declare llvm:base-address (addr int))\n(declare llvm:code-entry (name str) (off int) (size int))\n(declare llvm:coff-import-library (name str))\n(declare llvm:coff-virtual-section-header (name str) (addr int) (size int))\n(declare llvm:elf-program-header (name str) (off int) (size int))\n(declare llvm:elf-program-header-flags (name str) (ld bool) (r bool) \n (w bool) (x bool))\n(declare llvm:elf-virtual-program-header (name str) (addr int) (size int))\n(declare llvm:entry-point (addr int))\n(declare llvm:macho-symbol (name str) (value int))\n(declare llvm:name-reference (at int) (name str))\n(declare llvm:relocation (at int) (addr int))\n(declare llvm:section-entry (name str) (addr int) (size int) (off int))\n(declare llvm:section-flags (name str) (r bool) (w bool) (x bool))\n(declare llvm:segment-command (name str) (off int) (size int))\n(declare llvm:segment-command-flags (name str) (r bool) (w bool) (x bool))\n(declare llvm:symbol-entry (name str) (addr int) (size int) (off int)\n (value int))\n(declare llvm:virtual-segment-command (name str) (addr int) (size int))\n(declare mapped (addr int) (size int) (off int))\n(declare named-region (addr int) (size int) (name str))\n(declare named-symbol (addr int) (name str))\n(declare require (name str))\n(declare section (addr int) (size int))\n(declare segment (addr int) (size int) (r bool) (w bool) (x bool))\n(declare subarch (name str))\n(declare symbol-chunk (addr int) (size int) (root int))\n(declare symbol-value (addr int) (value int))\n(declare system (name str))\n(declare vendor (name str))\n\n(abi unknown)\n(arch aarch64)\n(base-address 0)\n(bias 0)\n(bits 64)\n(code-region 1900 20 1900)\n(code-region 1600 300 1600)\n(code-region 1456 96 1456)\n(code-region 1432 24 1432)\n(code-start 1652)\n(code-start 1600)\n(code-start 1876)\n(entry-point 1600)\n(external-reference 69584 _ITM_deregisterTMCloneTable)\n(external-reference 69592 __cxa_finalize)\n(external-reference 69608 __gmon_start__)\n(external-reference 69624 _ITM_registerTMCloneTable)\n(external-reference 69544 __libc_start_main)\n(external-reference 69552 __cxa_finalize)\n(external-reference 69560 __gmon_start__)\n(external-reference 69568 abort)\n(format elf)\n(is-executable true)\n(is-little-endian true)\n(llvm:base-address 0)\n(llvm:code-entry abort 0 0)\n(llvm:code-entry __cxa_finalize 0 0)\n(llvm:code-entry __libc_start_main 0 0)\n(llvm:code-entry _init 1432 0)\n(llvm:code-entry main 1876 24)\n(llvm:code-entry _start 1600 52)\n(llvm:code-entry abort@GLIBC_2.17 0 0)\n(llvm:code-entry _fini 1900 0)\n(llvm:code-entry __cxa_finalize@GLIBC_2.17 0 0)\n(llvm:code-entry __libc_start_main@GLIBC_2.34 0 0)\n(llvm:code-entry frame_dummy 1872 0)\n(llvm:code-entry __do_global_dtors_aux 1792 0)\n(llvm:code-entry register_tm_clones 1728 0)\n(llvm:code-entry deregister_tm_clones 1680 0)\n(llvm:code-entry call_weak_fn 1652 20)\n(llvm:code-entry .fini 1900 20)\n(llvm:code-entry .text 1600 300)\n(llvm:code-entry .plt 1456 96)\n(llvm:code-entry .init 1432 24)\n(llvm:elf-program-header 08 3472 624)\n(llvm:elf-program-header 07 0 0)\n(llvm:elf-program-header 06 1924 60)\n(llvm:elf-program-header 05 596 68)\n(llvm:elf-program-header 04 3488 496)\n(llvm:elf-program-header 03 3472 640)\n(llvm:elf-program-header 02 0 2144)\n(llvm:elf-program-header 01 568 27)\n(llvm:elf-program-header 00 64 504)\n(llvm:elf-program-header-flags 08 false true false false)\n(llvm:elf-program-header-flags 07 false true true false)\n(llvm:elf-program-header-flags 06 false true false false)\n(llvm:elf-program-header-flags 05 false true false false)\n(llvm:elf-program-header-flags 04 false true true false)\n(llvm:elf-program-header-flags 03 true true true false)\n(llvm:elf-program-header-flags 02 true true false true)\n(llvm:elf-program-header-flags 01 false true false false)\n(llvm:elf-program-header-flags 00 false true false false)\n(llvm:elf-virtual-program-header 08 69008 624)\n(llvm:elf-virtual-program-header 07 0 0)\n(llvm:elf-virtual-program-header 06 1924 60)\n(llvm:elf-virtual-program-header 05 596 68)\n(llvm:elf-virtual-program-header 04 69024 496)\n(llvm:elf-virtual-program-header 03 69008 656)\n(llvm:elf-virtual-program-header 02 0 2144)\n(llvm:elf-virtual-program-header 01 568 27)\n(llvm:elf-virtual-program-header 00 64 504)\n(llvm:entry-point 1600)\n(llvm:name-reference 69568 abort)\n(llvm:name-reference 69560 __gmon_start__)\n(llvm:name-reference 69552 __cxa_finalize)\n(llvm:name-reference 69544 __libc_start_main)\n(llvm:name-reference 69624 _ITM_registerTMCloneTable)\n(llvm:name-reference 69608 __gmon_start__)\n(llvm:name-reference 69592 __cxa_finalize)\n(llvm:name-reference 69584 _ITM_deregisterTMCloneTable)\n(llvm:section-entry .shstrtab 0 250 6853)\n(llvm:section-entry .strtab 0 557 6296)\n(llvm:section-entry .symtab 0 2136 4160)\n(llvm:section-entry .comment 0 43 4112)\n(llvm:section-entry .bss 69648 16 4112)\n(llvm:section-entry .data 69632 16 4096)\n(llvm:section-entry .got 69520 112 3984)\n(llvm:section-entry .dynamic 69024 496 3488)\n(llvm:section-entry .fini_array 69016 8 3480)\n(llvm:section-entry .init_array 69008 8 3472)\n(llvm:section-entry .eh_frame 1984 160 1984)\n(llvm:section-entry .eh_frame_hdr 1924 60 1924)\n(llvm:section-entry .rodata 1920 4 1920)\n(llvm:section-entry .fini 1900 20 1900)\n(llvm:section-entry .text 1600 300 1600)\n(llvm:section-entry .plt 1456 96 1456)\n(llvm:section-entry .init 1432 24 1432)\n(llvm:section-entry .rela.plt 1336 96 1336)\n(llvm:section-entry .rela.dyn 1120 216 1120)\n(llvm:section-entry .gnu.version_r 1072 48 1072)\n(llvm:section-entry .gnu.version 1054 18 1054)\n(llvm:section-entry .dynstr 912 141 912)\n(llvm:section-entry .dynsym 696 216 696)\n(llvm:section-entry .gnu.hash 664 28 664)\n(llvm:section-entry .note.ABI-tag 632 32 632)\n(llvm:section-entry .note.gnu.build-id 596 36 596)\n(llvm:section-entry .interp 568 27 568)\n(llvm:section-flags .shstrtab true false false)\n(llvm:section-flags .strtab true false false)\n(llvm:section-flags .symtab true false false)\n(llvm:section-flags .comment true false false)\n(llvm:section-flags .bss true true false)\n(llvm:section-flags .data true true false)\n(llvm:section-flags .got true true false)\n(llvm:section-flags .dynamic true true false)\n(llvm:section-flags .fini_array true true false)\n(llvm:section-flags .init_array true true false)\n(llvm:section-flags .eh_frame true false false)\n(llvm:section-flags .eh_frame_hdr true false false)\n(llvm:section-flags .rodata true false false)\n(llvm:section-flags .fini true false true)\n(llvm:section-flags .text true false true)\n(llvm:section-flags .plt true false true)\n(llvm:section-flags .init true false true)\n(llvm:section-flags .rela.plt true false false)\n(llvm:section-flags .rela.dyn true false false)\n(llvm:section-flags .gnu.version_r true false false)\n(llvm:section-flags .gnu.version true false false)\n(llvm:section-flags .dynstr true false false)\n(llvm:section-flags .dynsym true false false)\n(llvm:section-flags .gnu.hash true false false)\n(llvm:section-flags .note.ABI-tag true false false)\n(llvm:section-flags .note.gnu.build-id true false false)\n(llvm:section-flags .interp true false false)\n(llvm:symbol-entry abort 0 0 0 0)\n(llvm:symbol-entry __cxa_finalize 0 0 0 0)\n(llvm:symbol-entry __libc_start_main 0 0 0 0)\n(llvm:symbol-entry _init 1432 0 1432 1432)\n(llvm:symbol-entry main 1876 24 1876 1876)\n(llvm:symbol-entry _start 1600 52 1600 1600)\n(llvm:symbol-entry abort@GLIBC_2.17 0 0 0 0)\n(llvm:symbol-entry _fini 1900 0 1900 1900)\n(llvm:symbol-entry __cxa_finalize@GLIBC_2.17 0 0 0 0)\n(llvm:symbol-entry __libc_start_main@GLIBC_2.34 0 0 0 0)\n(llvm:symbol-entry frame_dummy 1872 0 1872 1872)\n(llvm:symbol-entry __do_global_dtors_aux 1792 0 1792 1792)\n(llvm:symbol-entry register_tm_clones 1728 0 1728 1728)\n(llvm:symbol-entry deregister_tm_clones 1680 0 1680 1680)\n(llvm:symbol-entry call_weak_fn 1652 20 1652 1652)\n(mapped 0 2144 0)\n(mapped 69008 640 3472)\n(named-region 0 2144 02)\n(named-region 69008 656 03)\n(named-region 568 27 .interp)\n(named-region 596 36 .note.gnu.build-id)\n(named-region 632 32 .note.ABI-tag)\n(named-region 664 28 .gnu.hash)\n(named-region 696 216 .dynsym)\n(named-region 912 141 .dynstr)\n(named-region 1054 18 .gnu.version)\n(named-region 1072 48 .gnu.version_r)\n(named-region 1120 216 .rela.dyn)\n(named-region 1336 96 .rela.plt)\n(named-region 1432 24 .init)\n(named-region 1456 96 .plt)\n(named-region 1600 300 .text)\n(named-region 1900 20 .fini)\n(named-region 1920 4 .rodata)\n(named-region 1924 60 .eh_frame_hdr)\n(named-region 1984 160 .eh_frame)\n(named-region 69008 8 .init_array)\n(named-region 69016 8 .fini_array)\n(named-region 69024 496 .dynamic)\n(named-region 69520 112 .got)\n(named-region 69632 16 .data)\n(named-region 69648 16 .bss)\n(named-region 0 43 .comment)\n(named-region 0 2136 .symtab)\n(named-region 0 557 .strtab)\n(named-region 0 250 .shstrtab)\n(named-symbol 1652 call_weak_fn)\n(named-symbol 1680 deregister_tm_clones)\n(named-symbol 1728 register_tm_clones)\n(named-symbol 1792 __do_global_dtors_aux)\n(named-symbol 1872 frame_dummy)\n(named-symbol 0 __libc_start_main@GLIBC_2.34)\n(named-symbol 0 __cxa_finalize@GLIBC_2.17)\n(named-symbol 1900 _fini)\n(named-symbol 0 abort@GLIBC_2.17)\n(named-symbol 1600 _start)\n(named-symbol 1876 main)\n(named-symbol 1432 _init)\n(named-symbol 0 __libc_start_main)\n(named-symbol 0 __cxa_finalize)\n(named-symbol 0 abort)\n(require libc.so.6)\n(section 568 27)\n(section 596 36)\n(section 632 32)\n(section 664 28)\n(section 696 216)\n(section 912 141)\n(section 1054 18)\n(section 1072 48)\n(section 1120 216)\n(section 1336 96)\n(section 1432 24)\n(section 1456 96)\n(section 1600 300)\n(section 1900 20)\n(section 1920 4)\n(section 1924 60)\n(section 1984 160)\n(section 69008 8)\n(section 69016 8)\n(section 69024 496)\n(section 69520 112)\n(section 69632 16)\n(section 69648 16)\n(section 0 43)\n(section 0 2136)\n(section 0 557)\n(section 0 250)\n(segment 0 2144 true false true)\n(segment 69008 656 true true false)\n(subarch v8)\n(symbol-chunk 1652 20 1652)\n(symbol-chunk 1600 52 1600)\n(symbol-chunk 1876 24 1876)\n(symbol-value 1652 1652)\n(symbol-value 1680 1680)\n(symbol-value 1728 1728)\n(symbol-value 1792 1792)\n(symbol-value 1872 1872)\n(symbol-value 1900 1900)\n(symbol-value 1600 1600)\n(symbol-value 1876 1876)\n(symbol-value 1432 1432)\n(symbol-value 0 0)\n(system \"\")\n(vendor \"\")\n"), -Attr("abi-name","\"aarch64-linux-gnu-elf\"")]), -Sections([Section(".shstrtab", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x40\x06\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xc0\x1b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x38\x00\x09\x00\x40\x00\x1c\x00\x1b\x00\x06\x00\x00\x00\x04\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x04\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x60\x08\x00\x00\x00\x00\x00\x00\x60\x08\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x01\x00\x00\x00\x06\x00\x00\x00\x90\x0d\x00\x00\x00\x00\x00\x00\x90\x0d"), -Section(".strtab", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x40\x06\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xc0\x1b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x38\x00\x09\x00\x40\x00\x1c\x00\x1b\x00\x06\x00\x00\x00\x04\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x04\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x60\x08\x00\x00\x00\x00\x00\x00\x60\x08\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x01\x00\x00\x00\x06\x00\x00\x00\x90\x0d\x00\x00\x00\x00\x00\x00\x90\x0d\x01\x00\x00\x00\x00\x00\x90\x0d\x01\x00\x00\x00\x00\x00\x80\x02\x00\x00\x00\x00\x00\x00\x90\x02\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x02\x00\x00\x00\x06\x00\x00\x00\xa0\x0d\x00\x00\x00\x00\x00\x00\xa0\x0d\x01\x00\x00\x00\x00\x00\xa0\x0d\x01\x00\x00\x00\x00\x00\xf0\x01\x00\x00\x00\x00\x00\x00\xf0\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x04\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x50\xe5\x74\x64\x04\x00\x00\x00\x84\x07\x00\x00\x00\x00\x00\x00\x84\x07\x00\x00\x00\x00\x00\x00\x84\x07\x00\x00\x00\x00\x00\x00\x3c\x00\x00\x00\x00\x00\x00\x00\x3c\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x51\xe5\x74\x64\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x52\xe5\x74\x64\x04\x00\x00\x00\x90\x0d\x00\x00\x00\x00\x00\x00\x90\x0d\x01\x00\x00\x00\x00\x00\x90\x0d\x01\x00\x00\x00\x00\x00\x70\x02\x00\x00\x00\x00\x00\x00\x70\x02\x00\x00\x00"), -Section(".symtab", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x40\x06\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xc0\x1b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x38\x00\x09\x00\x40\x00\x1c\x00\x1b\x00\x06\x00\x00\x00\x04\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x04\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x60\x08\x00\x00\x00\x00\x00\x00\x60\x08\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x01\x00\x00\x00\x06\x00\x00\x00\x90\x0d\x00\x00\x00\x00\x00\x00\x90\x0d\x01\x00\x00\x00\x00\x00\x90\x0d\x01\x00\x00\x00\x00\x00\x80\x02\x00\x00\x00\x00\x00\x00\x90\x02\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x02\x00\x00\x00\x06\x00\x00\x00\xa0\x0d\x00\x00\x00\x00\x00\x00\xa0\x0d\x01\x00\x00\x00\x00\x00\xa0\x0d\x01\x00\x00\x00\x00\x00\xf0\x01\x00\x00\x00\x00\x00\x00\xf0\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x04\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x50\xe5\x74\x64\x04\x00\x00\x00\x84\x07\x00\x00\x00\x00\x00\x00\x84\x07\x00\x00\x00\x00\x00\x00\x84\x07\x00\x00\x00\x00\x00\x00\x3c\x00\x00\x00\x00\x00\x00\x00\x3c\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x51\xe5\x74\x64\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x52\xe5\x74\x64\x04\x00\x00\x00\x90\x0d\x00\x00\x00\x00\x00\x00\x90\x0d\x01\x00\x00\x00\x00\x00\x90\x0d\x01\x00\x00\x00\x00\x00\x70\x02\x00\x00\x00\x00\x00\x00\x70\x02\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x2f\x6c\x69\x62\x2f\x6c\x64\x2d\x6c\x69\x6e\x75\x78\x2d\x61\x61\x72\x63\x68\x36\x34\x2e\x73\x6f\x2e\x31\x00\x00\x04\x00\x00\x00\x14\x00\x00\x00\x03\x00\x00\x00\x47\x4e\x55\x00\xba\x35\x1d\x57\x32\x37\x82\x64\x63\xa1\xd2\x02\xb4\x7a\x9d\x83\x9e\x0f\x99\xba\x04\x00\x00\x00\x10\x00\x00\x00\x01\x00\x00\x00\x47\x4e\x55\x00\x00\x00\x00\x00\x03\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x01\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x0b\x00\x98\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x16\x00\x00\x10\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x48\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x22\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x22\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x73\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5f\x5f\x63\x78\x61\x5f\x66\x69\x6e\x61\x6c\x69\x7a\x65\x00\x5f\x5f\x6c\x69\x62\x63\x5f\x73\x74\x61\x72\x74\x5f\x6d\x61\x69\x6e\x00\x61\x62\x6f\x72\x74\x00\x6c\x69\x62\x63\x2e\x73\x6f\x2e\x36\x00\x47\x4c\x49\x42\x43\x5f\x32\x2e\x31\x37\x00\x47\x4c\x49\x42\x43\x5f\x32\x2e\x33\x34\x00\x5f\x49\x54\x4d\x5f\x64\x65\x72\x65\x67\x69\x73\x74\x65\x72\x54\x4d\x43\x6c\x6f\x6e\x65\x54\x61\x62\x6c\x65\x00\x5f\x5f\x67\x6d\x6f\x6e\x5f\x73\x74\x61\x72\x74\x5f\x5f\x00\x5f\x49\x54\x4d\x5f\x72\x65\x67\x69\x73\x74\x65\x72\x54\x4d\x43\x6c\x6f\x6e\x65\x54\x61\x62\x6c\x65\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x01\x00\x03\x00\x01\x00\x03\x00\x01\x00\x01\x00\x02\x00\x28\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x97\x91\x96\x06\x00\x00\x03\x00\x32\x00\x00\x00\x10\x00\x00\x00\xb4\x91\x96\x06\x00\x00\x02\x00\x3d\x00\x00\x00\x00\x00\x00\x00\x90\x0d\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x50\x07\x00\x00\x00\x00\x00\x00\x98\x0d\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\xe0\x0f\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x18\x10\x01\x00\x00\x00\x00\x00\xf0\x0f\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x54\x07\x00\x00\x00\x00\x00\x00\x08\x10\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x08\x10\x01\x00\x00\x00\x00\x00\xd0\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xd8\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe8\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xf8\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xa8\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xb0\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xb8\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xc0\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1f\x20\x03\xd5\xfd\x7b\xbf\xa9\xfd\x03\x00\x91\x34\x00\x00\x94\xfd\x7b\xc1\xa8\xc0\x03\x5f\xd6\xf0\x7b\xbf\xa9\x90\x00\x00\x90\x11\xd2\x47\xf9\x10\x82\x3e\x91\x20\x02\x1f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x90\x00\x00\x90\x11\xd6\x47\xf9\x10\xa2\x3e\x91\x20\x02\x1f\xd6\x90\x00\x00\x90\x11\xda\x47\xf9\x10\xc2\x3e\x91\x20\x02\x1f\xd6\x90\x00\x00\x90\x11\xde\x47\xf9\x10\xe2\x3e\x91\x20\x02\x1f\xd6\x90\x00\x00\x90\x11\xe2\x47\xf9\x10\x02\x3f\x91\x20\x02\x1f\xd6\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1f\x20\x03\xd5\x1d\x00\x80\xd2\x1e\x00\x80\xd2\xe5\x03\x00\xaa\xe1\x03\x40\xf9\xe2\x23\x00\x91\xe6\x03\x00\x91\x80\x00\x00\x90\x00\xf8\x47\xf9\x03\x00\x80\xd2\x04\x00\x80\xd2\xd9\xff\xff\x97\xe4\xff\xff\x97\x80\x00\x00\x90\x00\xf4\x47\xf9\x40\x00\x00\xb4\xdc\xff\xff\x17\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x80\x00\x00\xb0\x00\x40\x00\x91\x81\x00\x00\xb0\x21\x40\x00\x91\x3f\x00\x00\xeb\xc0\x00\x00\x54\x81\x00\x00\x90\x21\xe8\x47\xf9\x61\x00\x00\xb4\xf0\x03\x01\xaa\x00\x02\x1f\xd6\xc0\x03\x5f\xd6\x80\x00\x00\xb0\x00\x40\x00\x91\x81\x00\x00\xb0\x21\x40\x00\x91\x21\x00\x00\xcb\x22\xfc\x7f\xd3\x41\x0c\x81\x8b\x21\xfc\x41\x93\xc1\x00\x00\xb4\x82\x00\x00\x90\x42\xfc\x47\xf9\x62\x00\x00\xb4\xf0\x03\x02\xaa\x00\x02\x1f\xd6\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\xfd\x7b\xbe\xa9\xfd\x03\x00\x91\xf3\x0b\x00\xf9\x93\x00\x00\xb0\x60\x42\x40\x39\x40\x01\x00\x35\x80\x00\x00\x90\x00\xec\x47\xf9\x80\x00\x00\xb4\x80\x00\x00\xb0\x00\x04\x40\xf9\xad\xff\xff\x97\xd8\xff\xff\x97\x20\x00\x80\x52\x60\x42\x00\x39\xf3\x0b\x40\xf9\xfd\x7b\xc2\xa8\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\xdc\xff\xff\x17\x80\x00\x00\x90\x00\xf0\x47\xf9\x21\x00\x80\x52\x01\x00\x00\xb9\x00\x00\x80\x52\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\xfd\x7b\xbf\xa9\xfd\x03\x00\x91\xfd\x7b\xc1\xa8\xc0\x03\x5f\xd6\x01\x00\x02\x00\x01\x1b\x03\x3b\x38\x00\x00\x00\x06\x00\x00\x00\xbc\xfe\xff\xff\x50\x00\x00\x00\x0c\xff\xff\xff\x64\x00\x00\x00\x3c\xff\xff\xff\x78\x00\x00\x00\x7c\xff\xff\xff\x8c\x00\x00\x00\xcc\xff\xff\xff\xb0\x00\x00\x00\xd0\xff\xff\xff\xc4\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x01\x7a\x52\x00\x04\x78\x1e\x01\x1b\x0c\x1f\x00\x10\x00\x00\x00\x18\x00\x00\x00\x64\xfe\xff\xff\x34\x00\x00\x00\x00\x41\x07\x1e\x10\x00\x00\x00\x2c\x00\x00\x00\xa0\xfe\xff\xff\x30\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x40\x00\x00\x00\xbc\xfe\xff\xff\x3c\x00\x00\x00\x00\x00\x00\x00\x20\x00\x00\x00\x54\x00\x00\x00\xe8\xfe\xff\xff\x48\x00\x00\x00\x00\x41\x0e\x20\x9d\x04\x9e\x03\x42\x93\x02\x4e\xde\xdd\xd3\x0e\x00\x00\x00\x00\x10\x00\x00\x00\x78\x00\x00\x00\x14\xff\xff\xff\x04\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x8c\x00\x00\x00\x04\xff\xff\xff\x18\x00\x00\x00"), -Section(".comment", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x40\x06\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xc0\x1b\x00"), -Section(".interp", 0x238, "\x2f\x6c\x69\x62\x2f\x6c\x64\x2d\x6c\x69\x6e\x75\x78\x2d\x61\x61\x72\x63\x68\x36\x34\x2e\x73\x6f\x2e\x31\x00"), -Section(".note.gnu.build-id", 0x254, "\x04\x00\x00\x00\x14\x00\x00\x00\x03\x00\x00\x00\x47\x4e\x55\x00\xba\x35\x1d\x57\x32\x37\x82\x64\x63\xa1\xd2\x02\xb4\x7a\x9d\x83\x9e\x0f\x99\xba"), -Section(".note.ABI-tag", 0x278, "\x04\x00\x00\x00\x10\x00\x00\x00\x01\x00\x00\x00\x47\x4e\x55\x00\x00\x00\x00\x00\x03\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00"), -Section(".gnu.hash", 0x298, "\x01\x00\x00\x00\x01\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".dynsym", 0x2B8, "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x0b\x00\x98\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x16\x00\x00\x10\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x48\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x22\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x22\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x73\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".dynstr", 0x390, "\x00\x5f\x5f\x63\x78\x61\x5f\x66\x69\x6e\x61\x6c\x69\x7a\x65\x00\x5f\x5f\x6c\x69\x62\x63\x5f\x73\x74\x61\x72\x74\x5f\x6d\x61\x69\x6e\x00\x61\x62\x6f\x72\x74\x00\x6c\x69\x62\x63\x2e\x73\x6f\x2e\x36\x00\x47\x4c\x49\x42\x43\x5f\x32\x2e\x31\x37\x00\x47\x4c\x49\x42\x43\x5f\x32\x2e\x33\x34\x00\x5f\x49\x54\x4d\x5f\x64\x65\x72\x65\x67\x69\x73\x74\x65\x72\x54\x4d\x43\x6c\x6f\x6e\x65\x54\x61\x62\x6c\x65\x00\x5f\x5f\x67\x6d\x6f\x6e\x5f\x73\x74\x61\x72\x74\x5f\x5f\x00\x5f\x49\x54\x4d\x5f\x72\x65\x67\x69\x73\x74\x65\x72\x54\x4d\x43\x6c\x6f\x6e\x65\x54\x61\x62\x6c\x65\x00"), -Section(".gnu.version", 0x41E, "\x00\x00\x00\x00\x00\x00\x02\x00\x01\x00\x03\x00\x01\x00\x03\x00\x01\x00"), -Section(".gnu.version_r", 0x430, "\x01\x00\x02\x00\x28\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x97\x91\x96\x06\x00\x00\x03\x00\x32\x00\x00\x00\x10\x00\x00\x00\xb4\x91\x96\x06\x00\x00\x02\x00\x3d\x00\x00\x00\x00\x00\x00\x00"), -Section(".rela.dyn", 0x460, "\x90\x0d\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x50\x07\x00\x00\x00\x00\x00\x00\x98\x0d\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\xe0\x0f\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x18\x10\x01\x00\x00\x00\x00\x00\xf0\x0f\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x54\x07\x00\x00\x00\x00\x00\x00\x08\x10\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x08\x10\x01\x00\x00\x00\x00\x00\xd0\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xd8\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe8\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xf8\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".rela.plt", 0x538, "\xa8\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xb0\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xb8\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xc0\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".init", 0x598, "\x1f\x20\x03\xd5\xfd\x7b\xbf\xa9\xfd\x03\x00\x91\x34\x00\x00\x94\xfd\x7b\xc1\xa8\xc0\x03\x5f\xd6"), -Section(".plt", 0x5B0, "\xf0\x7b\xbf\xa9\x90\x00\x00\x90\x11\xd2\x47\xf9\x10\x82\x3e\x91\x20\x02\x1f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x90\x00\x00\x90\x11\xd6\x47\xf9\x10\xa2\x3e\x91\x20\x02\x1f\xd6\x90\x00\x00\x90\x11\xda\x47\xf9\x10\xc2\x3e\x91\x20\x02\x1f\xd6\x90\x00\x00\x90\x11\xde\x47\xf9\x10\xe2\x3e\x91\x20\x02\x1f\xd6\x90\x00\x00\x90\x11\xe2\x47\xf9\x10\x02\x3f\x91\x20\x02\x1f\xd6"), -Section(".fini", 0x76C, "\x1f\x20\x03\xd5\xfd\x7b\xbf\xa9\xfd\x03\x00\x91\xfd\x7b\xc1\xa8\xc0\x03\x5f\xd6"), -Section(".rodata", 0x780, "\x01\x00\x02\x00"), -Section(".eh_frame_hdr", 0x784, "\x01\x1b\x03\x3b\x38\x00\x00\x00\x06\x00\x00\x00\xbc\xfe\xff\xff\x50\x00\x00\x00\x0c\xff\xff\xff\x64\x00\x00\x00\x3c\xff\xff\xff\x78\x00\x00\x00\x7c\xff\xff\xff\x8c\x00\x00\x00\xcc\xff\xff\xff\xb0\x00\x00\x00\xd0\xff\xff\xff\xc4\x00\x00\x00"), -Section(".eh_frame", 0x7C0, "\x10\x00\x00\x00\x00\x00\x00\x00\x01\x7a\x52\x00\x04\x78\x1e\x01\x1b\x0c\x1f\x00\x10\x00\x00\x00\x18\x00\x00\x00\x64\xfe\xff\xff\x34\x00\x00\x00\x00\x41\x07\x1e\x10\x00\x00\x00\x2c\x00\x00\x00\xa0\xfe\xff\xff\x30\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x40\x00\x00\x00\xbc\xfe\xff\xff\x3c\x00\x00\x00\x00\x00\x00\x00\x20\x00\x00\x00\x54\x00\x00\x00\xe8\xfe\xff\xff\x48\x00\x00\x00\x00\x41\x0e\x20\x9d\x04\x9e\x03\x42\x93\x02\x4e\xde\xdd\xd3\x0e\x00\x00\x00\x00\x10\x00\x00\x00\x78\x00\x00\x00\x14\xff\xff\xff\x04\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x8c\x00\x00\x00\x04\xff\xff\xff\x18\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".fini_array", 0x10D98, "\x00\x07\x00\x00\x00\x00\x00\x00"), -Section(".dynamic", 0x10DA0, "\x01\x00\x00\x00\x00\x00\x00\x00\x28\x00\x00\x00\x00\x00\x00\x00\x0c\x00\x00\x00\x00\x00\x00\x00\x98\x05\x00\x00\x00\x00\x00\x00\x0d\x00\x00\x00\x00\x00\x00\x00\x6c\x07\x00\x00\x00\x00\x00\x00\x19\x00\x00\x00\x00\x00\x00\x00\x90\x0d\x01\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x1a\x00\x00\x00\x00\x00\x00\x00\x98\x0d\x01\x00\x00\x00\x00\x00\x1c\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\xf5\xfe\xff\x6f\x00\x00\x00\x00\x98\x02\x00\x00\x00\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x90\x03\x00\x00\x00\x00\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\xb8\x02\x00\x00\x00\x00\x00\x00\x0a\x00\x00\x00\x00\x00\x00\x00\x8d\x00\x00\x00\x00\x00\x00\x00\x0b\x00\x00\x00\x00\x00\x00\x00\x18\x00\x00\x00\x00\x00\x00\x00\x15\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x90\x0f\x01\x00\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x60\x00\x00\x00\x00\x00\x00\x00\x14\x00\x00\x00\x00\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x17\x00\x00\x00\x00\x00\x00\x00\x38\x05\x00\x00\x00\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x60\x04\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\xd8\x00\x00\x00\x00\x00\x00\x00\x09\x00\x00\x00\x00\x00\x00\x00\x18\x00\x00\x00\x00\x00\x00\x00\x1e\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\xfb\xff\xff\x6f\x00\x00\x00\x00\x01\x00\x00\x08\x00\x00\x00\x00\xfe\xff\xff\x6f\x00\x00\x00\x00\x30\x04\x00\x00\x00\x00\x00\x00\xff\xff\xff\x6f\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\xf0\xff\xff\x6f\x00\x00\x00\x00\x1e\x04\x00\x00\x00\x00\x00\x00\xf9\xff\xff\x6f\x00\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".got", 0x10F90, "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xb0\x05\x00\x00\x00\x00\x00\x00\xb0\x05\x00\x00\x00\x00\x00\x00\xb0\x05\x00\x00\x00\x00\x00\x00\xb0\x05\x00\x00\x00\x00\x00\x00\xa0\x0d\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x18\x10\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x54\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".data", 0x11000, "\x00\x00\x00\x00\x00\x00\x00\x00\x08\x10\x01\x00\x00\x00\x00\x00"), -Section(".init_array", 0x10D90, "\x50\x07\x00\x00\x00\x00\x00\x00"), -Section(".text", 0x640, "\x1f\x20\x03\xd5\x1d\x00\x80\xd2\x1e\x00\x80\xd2\xe5\x03\x00\xaa\xe1\x03\x40\xf9\xe2\x23\x00\x91\xe6\x03\x00\x91\x80\x00\x00\x90\x00\xf8\x47\xf9\x03\x00\x80\xd2\x04\x00\x80\xd2\xd9\xff\xff\x97\xe4\xff\xff\x97\x80\x00\x00\x90\x00\xf4\x47\xf9\x40\x00\x00\xb4\xdc\xff\xff\x17\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x80\x00\x00\xb0\x00\x40\x00\x91\x81\x00\x00\xb0\x21\x40\x00\x91\x3f\x00\x00\xeb\xc0\x00\x00\x54\x81\x00\x00\x90\x21\xe8\x47\xf9\x61\x00\x00\xb4\xf0\x03\x01\xaa\x00\x02\x1f\xd6\xc0\x03\x5f\xd6\x80\x00\x00\xb0\x00\x40\x00\x91\x81\x00\x00\xb0\x21\x40\x00\x91\x21\x00\x00\xcb\x22\xfc\x7f\xd3\x41\x0c\x81\x8b\x21\xfc\x41\x93\xc1\x00\x00\xb4\x82\x00\x00\x90\x42\xfc\x47\xf9\x62\x00\x00\xb4\xf0\x03\x02\xaa\x00\x02\x1f\xd6\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\xfd\x7b\xbe\xa9\xfd\x03\x00\x91\xf3\x0b\x00\xf9\x93\x00\x00\xb0\x60\x42\x40\x39\x40\x01\x00\x35\x80\x00\x00\x90\x00\xec\x47\xf9\x80\x00\x00\xb4\x80\x00\x00\xb0\x00\x04\x40\xf9\xad\xff\xff\x97\xd8\xff\xff\x97\x20\x00\x80\x52\x60\x42\x00\x39\xf3\x0b\x40\xf9\xfd\x7b\xc2\xa8\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\xdc\xff\xff\x17\x80\x00\x00\x90\x00\xf0\x47\xf9\x21\x00\x80\x52\x01\x00\x00\xb9\x00\x00\x80\x52\xc0\x03\x5f\xd6")]), -Memmap([Annotation(Region(0x0,0x85F), Attr("segment","02 0 2144")), -Annotation(Region(0x640,0x673), Attr("symbol","\"_start\"")), -Annotation(Region(0x0,0xF9), Attr("section","\".shstrtab\"")), -Annotation(Region(0x0,0x22C), Attr("section","\".strtab\"")), -Annotation(Region(0x0,0x857), Attr("section","\".symtab\"")), -Annotation(Region(0x0,0x2A), Attr("section","\".comment\"")), -Annotation(Region(0x238,0x252), Attr("section","\".interp\"")), -Annotation(Region(0x254,0x277), Attr("section","\".note.gnu.build-id\"")), -Annotation(Region(0x278,0x297), Attr("section","\".note.ABI-tag\"")), -Annotation(Region(0x298,0x2B3), Attr("section","\".gnu.hash\"")), -Annotation(Region(0x2B8,0x38F), Attr("section","\".dynsym\"")), -Annotation(Region(0x390,0x41C), Attr("section","\".dynstr\"")), -Annotation(Region(0x41E,0x42F), Attr("section","\".gnu.version\"")), -Annotation(Region(0x430,0x45F), Attr("section","\".gnu.version_r\"")), -Annotation(Region(0x460,0x537), Attr("section","\".rela.dyn\"")), -Annotation(Region(0x538,0x597), Attr("section","\".rela.plt\"")), -Annotation(Region(0x598,0x5AF), Attr("section","\".init\"")), -Annotation(Region(0x5B0,0x60F), Attr("section","\".plt\"")), -Annotation(Region(0x598,0x5AF), Attr("code-region","()")), -Annotation(Region(0x5B0,0x60F), Attr("code-region","()")), -Annotation(Region(0x640,0x673), Attr("symbol-info","_start 0x640 52")), -Annotation(Region(0x674,0x687), Attr("symbol","\"call_weak_fn\"")), -Annotation(Region(0x674,0x687), Attr("symbol-info","call_weak_fn 0x674 20")), -Annotation(Region(0x754,0x76B), Attr("symbol","\"main\"")), -Annotation(Region(0x754,0x76B), Attr("symbol-info","main 0x754 24")), -Annotation(Region(0x76C,0x77F), Attr("section","\".fini\"")), -Annotation(Region(0x780,0x783), Attr("section","\".rodata\"")), -Annotation(Region(0x784,0x7BF), Attr("section","\".eh_frame_hdr\"")), -Annotation(Region(0x7C0,0x85F), Attr("section","\".eh_frame\"")), -Annotation(Region(0x10D90,0x1100F), Attr("segment","03 0x10D90 656")), -Annotation(Region(0x10D98,0x10D9F), Attr("section","\".fini_array\"")), -Annotation(Region(0x10DA0,0x10F8F), Attr("section","\".dynamic\"")), -Annotation(Region(0x10F90,0x10FFF), Attr("section","\".got\"")), -Annotation(Region(0x11000,0x1100F), Attr("section","\".data\"")), -Annotation(Region(0x10D90,0x10D97), Attr("section","\".init_array\"")), -Annotation(Region(0x640,0x76B), Attr("section","\".text\"")), -Annotation(Region(0x640,0x76B), Attr("code-region","()")), -Annotation(Region(0x76C,0x77F), Attr("code-region","()"))]), -Program(Tid(1_348, "%00000544"), Attrs([]), - Subs([Sub(Tid(1_298, "@__cxa_finalize"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x5E0"), -Attr("stub","()")]), "__cxa_finalize", Args([Arg(Tid(1_349, "%00000545"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("__cxa_finalize_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(796, "@__cxa_finalize"), - Attrs([Attr("address","0x5E0")]), Phis([]), -Defs([Def(Tid(1_044, "%00000414"), Attrs([Attr("address","0x5E0"), -Attr("insn","adrp x16, #65536")]), Var("R16",Imm(64)), Int(65536,64)), -Def(Tid(1_051, "%0000041b"), Attrs([Attr("address","0x5E4"), -Attr("insn","ldr x17, [x16, #0xfb0]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(4016,64)),LittleEndian(),64)), -Def(Tid(1_057, "%00000421"), Attrs([Attr("address","0x5E8"), -Attr("insn","add x16, x16, #0xfb0")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(4016,64)))]), Jmps([Call(Tid(1_062, "%00000426"), - Attrs([Attr("address","0x5EC"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), -Sub(Tid(1_299, "@__do_global_dtors_aux"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x700")]), - "__do_global_dtors_aux", Args([Arg(Tid(1_350, "%00000546"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("__do_global_dtors_aux_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(614, "@__do_global_dtors_aux"), - Attrs([Attr("address","0x700")]), Phis([]), Defs([Def(Tid(618, "%0000026a"), - Attrs([Attr("address","0x700"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("#3",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(18446744073709551584,64))), -Def(Tid(624, "%00000270"), Attrs([Attr("address","0x700"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("#3",Imm(64)),Var("R29",Imm(64)),LittleEndian(),64)), -Def(Tid(630, "%00000276"), Attrs([Attr("address","0x700"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("#3",Imm(64)),Int(8,64)),Var("R30",Imm(64)),LittleEndian(),64)), -Def(Tid(634, "%0000027a"), Attrs([Attr("address","0x700"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("R31",Imm(64)), -Var("#3",Imm(64))), Def(Tid(640, "%00000280"), - Attrs([Attr("address","0x704"), Attr("insn","mov x29, sp")]), - Var("R29",Imm(64)), Var("R31",Imm(64))), Def(Tid(648, "%00000288"), - Attrs([Attr("address","0x708"), Attr("insn","str x19, [sp, #0x10]")]), - Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(16,64)),Var("R19",Imm(64)),LittleEndian(),64)), -Def(Tid(653, "%0000028d"), Attrs([Attr("address","0x70C"), -Attr("insn","adrp x19, #69632")]), Var("R19",Imm(64)), Int(69632,64)), -Def(Tid(660, "%00000294"), Attrs([Attr("address","0x710"), -Attr("insn","ldrb w0, [x19, #0x10]")]), Var("R0",Imm(64)), -UNSIGNED(64,Load(Var("mem",Mem(64,8)),PLUS(Var("R19",Imm(64)),Int(16,64)),LittleEndian(),8)))]), -Jmps([Goto(Tid(667, "%0000029b"), Attrs([Attr("address","0x714"), -Attr("insn","cbnz w0, #0x28")]), - NEQ(Extract(31,0,Var("R0",Imm(64))),Int(0,32)), -Direct(Tid(665, "%00000299"))), Goto(Tid(1_338, "%0000053a"), Attrs([]), - Int(1,1), Direct(Tid(741, "%000002e5")))])), Blk(Tid(741, "%000002e5"), - Attrs([Attr("address","0x718")]), Phis([]), Defs([Def(Tid(744, "%000002e8"), - Attrs([Attr("address","0x718"), Attr("insn","adrp x0, #65536")]), - Var("R0",Imm(64)), Int(65536,64)), Def(Tid(751, "%000002ef"), - Attrs([Attr("address","0x71C"), Attr("insn","ldr x0, [x0, #0xfd8]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(4056,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(757, "%000002f5"), Attrs([Attr("address","0x720"), -Attr("insn","cbz x0, #0x10")]), EQ(Var("R0",Imm(64)),Int(0,64)), -Direct(Tid(755, "%000002f3"))), Goto(Tid(1_339, "%0000053b"), Attrs([]), - Int(1,1), Direct(Tid(780, "%0000030c")))])), Blk(Tid(780, "%0000030c"), - Attrs([Attr("address","0x724")]), Phis([]), Defs([Def(Tid(783, "%0000030f"), - Attrs([Attr("address","0x724"), Attr("insn","adrp x0, #69632")]), - Var("R0",Imm(64)), Int(69632,64)), Def(Tid(790, "%00000316"), - Attrs([Attr("address","0x728"), Attr("insn","ldr x0, [x0, #0x8]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(795, "%0000031b"), Attrs([Attr("address","0x72C"), -Attr("insn","bl #-0x14c")]), Var("R30",Imm(64)), Int(1840,64))]), -Jmps([Call(Tid(798, "%0000031e"), Attrs([Attr("address","0x72C"), -Attr("insn","bl #-0x14c")]), Int(1,1), -(Direct(Tid(1_298, "@__cxa_finalize")),Direct(Tid(755, "%000002f3"))))])), -Blk(Tid(755, "%000002f3"), Attrs([Attr("address","0x730")]), Phis([]), -Defs([Def(Tid(763, "%000002fb"), Attrs([Attr("address","0x730"), -Attr("insn","bl #-0xa0")]), Var("R30",Imm(64)), Int(1844,64))]), -Jmps([Call(Tid(765, "%000002fd"), Attrs([Attr("address","0x730"), -Attr("insn","bl #-0xa0")]), Int(1,1), -(Direct(Tid(1_312, "@deregister_tm_clones")),Direct(Tid(767, "%000002ff"))))])), -Blk(Tid(767, "%000002ff"), Attrs([Attr("address","0x734")]), Phis([]), -Defs([Def(Tid(770, "%00000302"), Attrs([Attr("address","0x734"), -Attr("insn","mov w0, #0x1")]), Var("R0",Imm(64)), Int(1,64)), -Def(Tid(778, "%0000030a"), Attrs([Attr("address","0x738"), -Attr("insn","strb w0, [x19, #0x10]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R19",Imm(64)),Int(16,64)),Extract(7,0,Var("R0",Imm(64))),LittleEndian(),8))]), -Jmps([Goto(Tid(1_340, "%0000053c"), Attrs([]), Int(1,1), -Direct(Tid(665, "%00000299")))])), Blk(Tid(665, "%00000299"), - Attrs([Attr("address","0x73C")]), Phis([]), Defs([Def(Tid(675, "%000002a3"), - Attrs([Attr("address","0x73C"), Attr("insn","ldr x19, [sp, #0x10]")]), - Var("R19",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(16,64)),LittleEndian(),64)), -Def(Tid(682, "%000002aa"), Attrs([Attr("address","0x740"), -Attr("insn","ldp x29, x30, [sp], #0x20")]), Var("R29",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(687, "%000002af"), Attrs([Attr("address","0x740"), -Attr("insn","ldp x29, x30, [sp], #0x20")]), Var("R30",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(691, "%000002b3"), Attrs([Attr("address","0x740"), -Attr("insn","ldp x29, x30, [sp], #0x20")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(32,64)))]), Jmps([Call(Tid(696, "%000002b8"), - Attrs([Attr("address","0x744"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), Sub(Tid(1_303, "@__libc_start_main"), - Attrs([Attr("c.proto","signed (*)(signed (*)(signed , char** , char** );* main, signed , char** , \nvoid* auxv)"), -Attr("address","0x5D0"), Attr("stub","()")]), "__libc_start_main", - Args([Arg(Tid(1_351, "%00000547"), - Attrs([Attr("c.layout","**[ : 64]"), -Attr("c.data","Top:u64 ptr ptr"), -Attr("c.type","signed (*)(signed , char** , char** );*")]), - Var("__libc_start_main_main",Imm(64)), Var("R0",Imm(64)), In()), -Arg(Tid(1_352, "%00000548"), Attrs([Attr("c.layout","[signed : 32]"), -Attr("c.data","Top:u32"), Attr("c.type","signed")]), - Var("__libc_start_main_arg2",Imm(32)), LOW(32,Var("R1",Imm(64))), In()), -Arg(Tid(1_353, "%00000549"), Attrs([Attr("c.layout","**[char : 8]"), -Attr("c.data","Top:u8 ptr ptr"), Attr("c.type","char**")]), - Var("__libc_start_main_arg3",Imm(64)), Var("R2",Imm(64)), Both()), -Arg(Tid(1_354, "%0000054a"), Attrs([Attr("c.layout","*[ : 8]"), -Attr("c.data","{} ptr"), Attr("c.type","void*")]), - Var("__libc_start_main_auxv",Imm(64)), Var("R3",Imm(64)), Both()), -Arg(Tid(1_355, "%0000054b"), Attrs([Attr("c.layout","[signed : 32]"), -Attr("c.data","Top:u32"), Attr("c.type","signed")]), - Var("__libc_start_main_result",Imm(32)), LOW(32,Var("R0",Imm(64))), -Out())]), Blks([Blk(Tid(447, "@__libc_start_main"), - Attrs([Attr("address","0x5D0")]), Phis([]), -Defs([Def(Tid(1_022, "%000003fe"), Attrs([Attr("address","0x5D0"), -Attr("insn","adrp x16, #65536")]), Var("R16",Imm(64)), Int(65536,64)), -Def(Tid(1_029, "%00000405"), Attrs([Attr("address","0x5D4"), -Attr("insn","ldr x17, [x16, #0xfa8]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(4008,64)),LittleEndian(),64)), -Def(Tid(1_035, "%0000040b"), Attrs([Attr("address","0x5D8"), -Attr("insn","add x16, x16, #0xfa8")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(4008,64)))]), Jmps([Call(Tid(1_040, "%00000410"), - Attrs([Attr("address","0x5DC"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), Sub(Tid(1_304, "@_fini"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x76C")]), - "_fini", Args([Arg(Tid(1_356, "%0000054c"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("_fini_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(31, "@_fini"), - Attrs([Attr("address","0x76C")]), Phis([]), Defs([Def(Tid(37, "%00000025"), - Attrs([Attr("address","0x770"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("#0",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(18446744073709551600,64))), -Def(Tid(43, "%0000002b"), Attrs([Attr("address","0x770"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("#0",Imm(64)),Var("R29",Imm(64)),LittleEndian(),64)), -Def(Tid(49, "%00000031"), Attrs([Attr("address","0x770"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("#0",Imm(64)),Int(8,64)),Var("R30",Imm(64)),LittleEndian(),64)), -Def(Tid(53, "%00000035"), Attrs([Attr("address","0x770"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("R31",Imm(64)), -Var("#0",Imm(64))), Def(Tid(59, "%0000003b"), Attrs([Attr("address","0x774"), -Attr("insn","mov x29, sp")]), Var("R29",Imm(64)), Var("R31",Imm(64))), -Def(Tid(66, "%00000042"), Attrs([Attr("address","0x778"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R29",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(71, "%00000047"), Attrs([Attr("address","0x778"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R30",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(75, "%0000004b"), Attrs([Attr("address","0x778"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(16,64)))]), Jmps([Call(Tid(80, "%00000050"), - Attrs([Attr("address","0x77C"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), Sub(Tid(1_305, "@_init"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x598")]), - "_init", Args([Arg(Tid(1_357, "%0000054d"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("_init_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(1_134, "@_init"), - Attrs([Attr("address","0x598")]), Phis([]), -Defs([Def(Tid(1_140, "%00000474"), Attrs([Attr("address","0x59C"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("#5",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(18446744073709551600,64))), -Def(Tid(1_146, "%0000047a"), Attrs([Attr("address","0x59C"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("#5",Imm(64)),Var("R29",Imm(64)),LittleEndian(),64)), -Def(Tid(1_152, "%00000480"), Attrs([Attr("address","0x59C"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("#5",Imm(64)),Int(8,64)),Var("R30",Imm(64)),LittleEndian(),64)), -Def(Tid(1_156, "%00000484"), Attrs([Attr("address","0x59C"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("R31",Imm(64)), -Var("#5",Imm(64))), Def(Tid(1_162, "%0000048a"), - Attrs([Attr("address","0x5A0"), Attr("insn","mov x29, sp")]), - Var("R29",Imm(64)), Var("R31",Imm(64))), Def(Tid(1_167, "%0000048f"), - Attrs([Attr("address","0x5A4"), Attr("insn","bl #0xd0")]), - Var("R30",Imm(64)), Int(1448,64))]), Jmps([Call(Tid(1_169, "%00000491"), - Attrs([Attr("address","0x5A4"), Attr("insn","bl #0xd0")]), Int(1,1), -(Direct(Tid(1_310, "@call_weak_fn")),Direct(Tid(1_171, "%00000493"))))])), -Blk(Tid(1_171, "%00000493"), Attrs([Attr("address","0x5A8")]), Phis([]), -Defs([Def(Tid(1_176, "%00000498"), Attrs([Attr("address","0x5A8"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R29",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(1_181, "%0000049d"), Attrs([Attr("address","0x5A8"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R30",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(1_185, "%000004a1"), Attrs([Attr("address","0x5A8"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(16,64)))]), Jmps([Call(Tid(1_190, "%000004a6"), - Attrs([Attr("address","0x5AC"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), Sub(Tid(1_306, "@_start"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x640"), -Attr("entry-point","()")]), "_start", Args([Arg(Tid(1_358, "%0000054e"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("_start_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(384, "@_start"), - Attrs([Attr("address","0x640")]), Phis([]), Defs([Def(Tid(389, "%00000185"), - Attrs([Attr("address","0x644"), Attr("insn","mov x29, #0x0")]), - Var("R29",Imm(64)), Int(0,64)), Def(Tid(394, "%0000018a"), - Attrs([Attr("address","0x648"), Attr("insn","mov x30, #0x0")]), - Var("R30",Imm(64)), Int(0,64)), Def(Tid(400, "%00000190"), - Attrs([Attr("address","0x64C"), Attr("insn","mov x5, x0")]), - Var("R5",Imm(64)), Var("R0",Imm(64))), Def(Tid(407, "%00000197"), - Attrs([Attr("address","0x650"), Attr("insn","ldr x1, [sp]")]), - Var("R1",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(413, "%0000019d"), Attrs([Attr("address","0x654"), -Attr("insn","add x2, sp, #0x8")]), Var("R2",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(8,64))), Def(Tid(419, "%000001a3"), - Attrs([Attr("address","0x658"), Attr("insn","mov x6, sp")]), - Var("R6",Imm(64)), Var("R31",Imm(64))), Def(Tid(424, "%000001a8"), - Attrs([Attr("address","0x65C"), Attr("insn","adrp x0, #65536")]), - Var("R0",Imm(64)), Int(65536,64)), Def(Tid(431, "%000001af"), - Attrs([Attr("address","0x660"), Attr("insn","ldr x0, [x0, #0xff0]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(4080,64)),LittleEndian(),64)), -Def(Tid(436, "%000001b4"), Attrs([Attr("address","0x664"), -Attr("insn","mov x3, #0x0")]), Var("R3",Imm(64)), Int(0,64)), -Def(Tid(441, "%000001b9"), Attrs([Attr("address","0x668"), -Attr("insn","mov x4, #0x0")]), Var("R4",Imm(64)), Int(0,64)), -Def(Tid(446, "%000001be"), Attrs([Attr("address","0x66C"), -Attr("insn","bl #-0x9c")]), Var("R30",Imm(64)), Int(1648,64))]), -Jmps([Call(Tid(449, "%000001c1"), Attrs([Attr("address","0x66C"), -Attr("insn","bl #-0x9c")]), Int(1,1), -(Direct(Tid(1_303, "@__libc_start_main")),Direct(Tid(451, "%000001c3"))))])), -Blk(Tid(451, "%000001c3"), Attrs([Attr("address","0x670")]), Phis([]), -Defs([Def(Tid(454, "%000001c6"), Attrs([Attr("address","0x670"), -Attr("insn","bl #-0x70")]), Var("R30",Imm(64)), Int(1652,64))]), -Jmps([Call(Tid(457, "%000001c9"), Attrs([Attr("address","0x670"), -Attr("insn","bl #-0x70")]), Int(1,1), -(Direct(Tid(1_309, "@abort")),Direct(Tid(1_341, "%0000053d"))))])), -Blk(Tid(1_341, "%0000053d"), Attrs([]), Phis([]), Defs([]), -Jmps([Call(Tid(1_342, "%0000053e"), Attrs([]), Int(1,1), -(Direct(Tid(1_310, "@call_weak_fn")),))]))])), Sub(Tid(1_309, "@abort"), - Attrs([Attr("noreturn","()"), Attr("c.proto","void (*)(void)"), -Attr("address","0x600"), Attr("stub","()")]), "abort", Args([]), -Blks([Blk(Tid(455, "@abort"), Attrs([Attr("address","0x600")]), Phis([]), -Defs([Def(Tid(1_088, "%00000440"), Attrs([Attr("address","0x600"), -Attr("insn","adrp x16, #65536")]), Var("R16",Imm(64)), Int(65536,64)), -Def(Tid(1_095, "%00000447"), Attrs([Attr("address","0x604"), -Attr("insn","ldr x17, [x16, #0xfc0]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(4032,64)),LittleEndian(),64)), -Def(Tid(1_101, "%0000044d"), Attrs([Attr("address","0x608"), -Attr("insn","add x16, x16, #0xfc0")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(4032,64)))]), Jmps([Call(Tid(1_106, "%00000452"), - Attrs([Attr("address","0x60C"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), Sub(Tid(1_310, "@call_weak_fn"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x674")]), - "call_weak_fn", Args([Arg(Tid(1_359, "%0000054f"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("call_weak_fn_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(459, "@call_weak_fn"), - Attrs([Attr("address","0x674")]), Phis([]), Defs([Def(Tid(462, "%000001ce"), - Attrs([Attr("address","0x674"), Attr("insn","adrp x0, #65536")]), - Var("R0",Imm(64)), Int(65536,64)), Def(Tid(469, "%000001d5"), - Attrs([Attr("address","0x678"), Attr("insn","ldr x0, [x0, #0xfe8]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(4072,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(475, "%000001db"), Attrs([Attr("address","0x67C"), -Attr("insn","cbz x0, #0x8")]), EQ(Var("R0",Imm(64)),Int(0,64)), -Direct(Tid(473, "%000001d9"))), Goto(Tid(1_343, "%0000053f"), Attrs([]), - Int(1,1), Direct(Tid(860, "%0000035c")))])), Blk(Tid(473, "%000001d9"), - Attrs([Attr("address","0x684")]), Phis([]), Defs([]), -Jmps([Call(Tid(481, "%000001e1"), Attrs([Attr("address","0x684"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))])), -Blk(Tid(860, "%0000035c"), Attrs([Attr("address","0x680")]), Phis([]), -Defs([]), Jmps([Goto(Tid(863, "%0000035f"), Attrs([Attr("address","0x680"), -Attr("insn","b #-0x90")]), Int(1,1), Direct(Tid(861, "@__gmon_start__")))])), -Blk(Tid(861, "@__gmon_start__"), Attrs([Attr("address","0x5F0")]), Phis([]), -Defs([Def(Tid(1_066, "%0000042a"), Attrs([Attr("address","0x5F0"), -Attr("insn","adrp x16, #65536")]), Var("R16",Imm(64)), Int(65536,64)), -Def(Tid(1_073, "%00000431"), Attrs([Attr("address","0x5F4"), -Attr("insn","ldr x17, [x16, #0xfb8]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(4024,64)),LittleEndian(),64)), -Def(Tid(1_079, "%00000437"), Attrs([Attr("address","0x5F8"), -Attr("insn","add x16, x16, #0xfb8")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(4024,64)))]), Jmps([Call(Tid(1_084, "%0000043c"), - Attrs([Attr("address","0x5FC"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), -Sub(Tid(1_312, "@deregister_tm_clones"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x690")]), - "deregister_tm_clones", Args([Arg(Tid(1_360, "%00000550"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("deregister_tm_clones_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(487, "@deregister_tm_clones"), - Attrs([Attr("address","0x690")]), Phis([]), Defs([Def(Tid(490, "%000001ea"), - Attrs([Attr("address","0x690"), Attr("insn","adrp x0, #69632")]), - Var("R0",Imm(64)), Int(69632,64)), Def(Tid(496, "%000001f0"), - Attrs([Attr("address","0x694"), Attr("insn","add x0, x0, #0x10")]), - Var("R0",Imm(64)), PLUS(Var("R0",Imm(64)),Int(16,64))), -Def(Tid(501, "%000001f5"), Attrs([Attr("address","0x698"), -Attr("insn","adrp x1, #69632")]), Var("R1",Imm(64)), Int(69632,64)), -Def(Tid(507, "%000001fb"), Attrs([Attr("address","0x69C"), -Attr("insn","add x1, x1, #0x10")]), Var("R1",Imm(64)), -PLUS(Var("R1",Imm(64)),Int(16,64))), Def(Tid(513, "%00000201"), - Attrs([Attr("address","0x6A0"), Attr("insn","cmp x1, x0")]), - Var("#1",Imm(64)), NOT(Var("R0",Imm(64)))), Def(Tid(518, "%00000206"), - Attrs([Attr("address","0x6A0"), Attr("insn","cmp x1, x0")]), - Var("#2",Imm(64)), PLUS(Var("R1",Imm(64)),NOT(Var("R0",Imm(64))))), -Def(Tid(524, "%0000020c"), Attrs([Attr("address","0x6A0"), -Attr("insn","cmp x1, x0")]), Var("VF",Imm(1)), -NEQ(SIGNED(65,PLUS(Var("#2",Imm(64)),Int(1,64))),PLUS(PLUS(SIGNED(65,Var("R1",Imm(64))),SIGNED(65,Var("#1",Imm(64)))),Int(1,65)))), -Def(Tid(530, "%00000212"), Attrs([Attr("address","0x6A0"), -Attr("insn","cmp x1, x0")]), Var("CF",Imm(1)), -NEQ(UNSIGNED(65,PLUS(Var("#2",Imm(64)),Int(1,64))),PLUS(PLUS(UNSIGNED(65,Var("R1",Imm(64))),UNSIGNED(65,Var("#1",Imm(64)))),Int(1,65)))), -Def(Tid(534, "%00000216"), Attrs([Attr("address","0x6A0"), -Attr("insn","cmp x1, x0")]), Var("ZF",Imm(1)), -EQ(PLUS(Var("#2",Imm(64)),Int(1,64)),Int(0,64))), Def(Tid(538, "%0000021a"), - Attrs([Attr("address","0x6A0"), Attr("insn","cmp x1, x0")]), - Var("NF",Imm(1)), Extract(63,63,PLUS(Var("#2",Imm(64)),Int(1,64))))]), -Jmps([Goto(Tid(544, "%00000220"), Attrs([Attr("address","0x6A4"), -Attr("insn","b.eq #0x18")]), EQ(Var("ZF",Imm(1)),Int(1,1)), -Direct(Tid(542, "%0000021e"))), Goto(Tid(1_344, "%00000540"), Attrs([]), - Int(1,1), Direct(Tid(830, "%0000033e")))])), Blk(Tid(830, "%0000033e"), - Attrs([Attr("address","0x6A8")]), Phis([]), Defs([Def(Tid(833, "%00000341"), - Attrs([Attr("address","0x6A8"), Attr("insn","adrp x1, #65536")]), - Var("R1",Imm(64)), Int(65536,64)), Def(Tid(840, "%00000348"), - Attrs([Attr("address","0x6AC"), Attr("insn","ldr x1, [x1, #0xfd0]")]), - Var("R1",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R1",Imm(64)),Int(4048,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(845, "%0000034d"), Attrs([Attr("address","0x6B0"), -Attr("insn","cbz x1, #0xc")]), EQ(Var("R1",Imm(64)),Int(0,64)), -Direct(Tid(542, "%0000021e"))), Goto(Tid(1_345, "%00000541"), Attrs([]), - Int(1,1), Direct(Tid(849, "%00000351")))])), Blk(Tid(542, "%0000021e"), - Attrs([Attr("address","0x6BC")]), Phis([]), Defs([]), -Jmps([Call(Tid(550, "%00000226"), Attrs([Attr("address","0x6BC"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))])), -Blk(Tid(849, "%00000351"), Attrs([Attr("address","0x6B4")]), Phis([]), -Defs([Def(Tid(853, "%00000355"), Attrs([Attr("address","0x6B4"), -Attr("insn","mov x16, x1")]), Var("R16",Imm(64)), Var("R1",Imm(64)))]), -Jmps([Call(Tid(858, "%0000035a"), Attrs([Attr("address","0x6B8"), -Attr("insn","br x16")]), Int(1,1), (Indirect(Var("R16",Imm(64))),))]))])), -Sub(Tid(1_315, "@frame_dummy"), Attrs([Attr("c.proto","signed (*)(void)"), -Attr("address","0x750")]), "frame_dummy", Args([Arg(Tid(1_361, "%00000551"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("frame_dummy_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(702, "@frame_dummy"), - Attrs([Attr("address","0x750")]), Phis([]), Defs([]), -Jmps([Call(Tid(704, "%000002c0"), Attrs([Attr("address","0x750"), -Attr("insn","b #-0x90")]), Int(1,1), -(Direct(Tid(1_317, "@register_tm_clones")),))]))])), Sub(Tid(1_316, "@main"), - Attrs([Attr("c.proto","signed (*)(signed argc, const char** argv)"), -Attr("address","0x754")]), "main", Args([Arg(Tid(1_362, "%00000552"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("main_argc",Imm(32)), -LOW(32,Var("R0",Imm(64))), In()), Arg(Tid(1_363, "%00000553"), - Attrs([Attr("c.layout","**[char : 8]"), Attr("c.data","Top:u8 ptr ptr"), -Attr("c.type"," const char**")]), Var("main_argv",Imm(64)), -Var("R1",Imm(64)), Both()), Arg(Tid(1_364, "%00000554"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("main_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(706, "@main"), - Attrs([Attr("address","0x754")]), Phis([]), Defs([Def(Tid(709, "%000002c5"), - Attrs([Attr("address","0x754"), Attr("insn","adrp x0, #65536")]), - Var("R0",Imm(64)), Int(65536,64)), Def(Tid(716, "%000002cc"), - Attrs([Attr("address","0x758"), Attr("insn","ldr x0, [x0, #0xfe0]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(4064,64)),LittleEndian(),64)), -Def(Tid(721, "%000002d1"), Attrs([Attr("address","0x75C"), -Attr("insn","mov w1, #0x1")]), Var("R1",Imm(64)), Int(1,64)), -Def(Tid(729, "%000002d9"), Attrs([Attr("address","0x760"), -Attr("insn","str w1, [x0]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("R0",Imm(64)),Extract(31,0,Var("R1",Imm(64))),LittleEndian(),32)), -Def(Tid(734, "%000002de"), Attrs([Attr("address","0x764"), -Attr("insn","mov w0, #0x0")]), Var("R0",Imm(64)), Int(0,64))]), -Jmps([Call(Tid(739, "%000002e3"), Attrs([Attr("address","0x768"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))]))])), -Sub(Tid(1_317, "@register_tm_clones"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x6C0")]), - "register_tm_clones", Args([Arg(Tid(1_365, "%00000555"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("register_tm_clones_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(552, "@register_tm_clones"), Attrs([Attr("address","0x6C0")]), - Phis([]), Defs([Def(Tid(555, "%0000022b"), Attrs([Attr("address","0x6C0"), -Attr("insn","adrp x0, #69632")]), Var("R0",Imm(64)), Int(69632,64)), -Def(Tid(561, "%00000231"), Attrs([Attr("address","0x6C4"), -Attr("insn","add x0, x0, #0x10")]), Var("R0",Imm(64)), -PLUS(Var("R0",Imm(64)),Int(16,64))), Def(Tid(566, "%00000236"), - Attrs([Attr("address","0x6C8"), Attr("insn","adrp x1, #69632")]), - Var("R1",Imm(64)), Int(69632,64)), Def(Tid(572, "%0000023c"), - Attrs([Attr("address","0x6CC"), Attr("insn","add x1, x1, #0x10")]), - Var("R1",Imm(64)), PLUS(Var("R1",Imm(64)),Int(16,64))), -Def(Tid(579, "%00000243"), Attrs([Attr("address","0x6D0"), -Attr("insn","sub x1, x1, x0")]), Var("R1",Imm(64)), -PLUS(PLUS(Var("R1",Imm(64)),NOT(Var("R0",Imm(64)))),Int(1,64))), -Def(Tid(585, "%00000249"), Attrs([Attr("address","0x6D4"), -Attr("insn","lsr x2, x1, #63")]), Var("R2",Imm(64)), -Concat(Int(0,63),Extract(63,63,Var("R1",Imm(64))))), -Def(Tid(592, "%00000250"), Attrs([Attr("address","0x6D8"), -Attr("insn","add x1, x2, x1, asr #3")]), Var("R1",Imm(64)), -PLUS(Var("R2",Imm(64)),ARSHIFT(Var("R1",Imm(64)),Int(3,3)))), -Def(Tid(598, "%00000256"), Attrs([Attr("address","0x6DC"), -Attr("insn","asr x1, x1, #1")]), Var("R1",Imm(64)), -SIGNED(64,Extract(63,1,Var("R1",Imm(64)))))]), -Jmps([Goto(Tid(604, "%0000025c"), Attrs([Attr("address","0x6E0"), -Attr("insn","cbz x1, #0x18")]), EQ(Var("R1",Imm(64)),Int(0,64)), -Direct(Tid(602, "%0000025a"))), Goto(Tid(1_346, "%00000542"), Attrs([]), - Int(1,1), Direct(Tid(800, "%00000320")))])), Blk(Tid(800, "%00000320"), - Attrs([Attr("address","0x6E4")]), Phis([]), Defs([Def(Tid(803, "%00000323"), - Attrs([Attr("address","0x6E4"), Attr("insn","adrp x2, #65536")]), - Var("R2",Imm(64)), Int(65536,64)), Def(Tid(810, "%0000032a"), - Attrs([Attr("address","0x6E8"), Attr("insn","ldr x2, [x2, #0xff8]")]), - Var("R2",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R2",Imm(64)),Int(4088,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(815, "%0000032f"), Attrs([Attr("address","0x6EC"), -Attr("insn","cbz x2, #0xc")]), EQ(Var("R2",Imm(64)),Int(0,64)), -Direct(Tid(602, "%0000025a"))), Goto(Tid(1_347, "%00000543"), Attrs([]), - Int(1,1), Direct(Tid(819, "%00000333")))])), Blk(Tid(602, "%0000025a"), - Attrs([Attr("address","0x6F8")]), Phis([]), Defs([]), -Jmps([Call(Tid(610, "%00000262"), Attrs([Attr("address","0x6F8"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))])), -Blk(Tid(819, "%00000333"), Attrs([Attr("address","0x6F0")]), Phis([]), -Defs([Def(Tid(823, "%00000337"), Attrs([Attr("address","0x6F0"), -Attr("insn","mov x16, x2")]), Var("R16",Imm(64)), Var("R2",Imm(64)))]), -Jmps([Call(Tid(828, "%0000033c"), Attrs([Attr("address","0x6F4"), -Attr("insn","br x16")]), Int(1,1), -(Indirect(Var("R16",Imm(64))),))]))]))]))) \ No newline at end of file diff --git a/src/test/correct/using_gamma_write_z/gcc_pic/using_gamma_write_z.bir b/src/test/correct/using_gamma_write_z/gcc_pic/using_gamma_write_z.bir deleted file mode 100644 index a118f55cb..000000000 --- a/src/test/correct/using_gamma_write_z/gcc_pic/using_gamma_write_z.bir +++ /dev/null @@ -1,228 +0,0 @@ -00000544: program -00000512: sub __cxa_finalize(__cxa_finalize_result) -00000545: __cxa_finalize_result :: out u32 = low:32[R0] - -0000031c: -00000414: R16 := 0x10000 -0000041b: R17 := mem[R16 + 0xFB0, el]:u64 -00000421: R16 := R16 + 0xFB0 -00000426: call R17 with noreturn - -00000513: sub __do_global_dtors_aux(__do_global_dtors_aux_result) -00000546: __do_global_dtors_aux_result :: out u32 = low:32[R0] - -00000266: -0000026a: #3 := R31 - 0x20 -00000270: mem := mem with [#3, el]:u64 <- R29 -00000276: mem := mem with [#3 + 8, el]:u64 <- R30 -0000027a: R31 := #3 -00000280: R29 := R31 -00000288: mem := mem with [R31 + 0x10, el]:u64 <- R19 -0000028d: R19 := 0x11000 -00000294: R0 := pad:64[mem[R19 + 0x10]] -0000029b: when 31:0[R0] <> 0 goto %00000299 -0000053a: goto %000002e5 - -000002e5: -000002e8: R0 := 0x10000 -000002ef: R0 := mem[R0 + 0xFD8, el]:u64 -000002f5: when R0 = 0 goto %000002f3 -0000053b: goto %0000030c - -0000030c: -0000030f: R0 := 0x11000 -00000316: R0 := mem[R0 + 8, el]:u64 -0000031b: R30 := 0x730 -0000031e: call @__cxa_finalize with return %000002f3 - -000002f3: -000002fb: R30 := 0x734 -000002fd: call @deregister_tm_clones with return %000002ff - -000002ff: -00000302: R0 := 1 -0000030a: mem := mem with [R19 + 0x10] <- 7:0[R0] -0000053c: goto %00000299 - -00000299: -000002a3: R19 := mem[R31 + 0x10, el]:u64 -000002aa: R29 := mem[R31, el]:u64 -000002af: R30 := mem[R31 + 8, el]:u64 -000002b3: R31 := R31 + 0x20 -000002b8: call R30 with noreturn - -00000517: sub __libc_start_main(__libc_start_main_main, __libc_start_main_arg2, __libc_start_main_arg3, __libc_start_main_auxv, __libc_start_main_result) -00000547: __libc_start_main_main :: in u64 = R0 -00000548: __libc_start_main_arg2 :: in u32 = low:32[R1] -00000549: __libc_start_main_arg3 :: in out u64 = R2 -0000054a: __libc_start_main_auxv :: in out u64 = R3 -0000054b: __libc_start_main_result :: out u32 = low:32[R0] - -000001bf: -000003fe: R16 := 0x10000 -00000405: R17 := mem[R16 + 0xFA8, el]:u64 -0000040b: R16 := R16 + 0xFA8 -00000410: call R17 with noreturn - -00000518: sub _fini(_fini_result) -0000054c: _fini_result :: out u32 = low:32[R0] - -0000001f: -00000025: #0 := R31 - 0x10 -0000002b: mem := mem with [#0, el]:u64 <- R29 -00000031: mem := mem with [#0 + 8, el]:u64 <- R30 -00000035: R31 := #0 -0000003b: R29 := R31 -00000042: R29 := mem[R31, el]:u64 -00000047: R30 := mem[R31 + 8, el]:u64 -0000004b: R31 := R31 + 0x10 -00000050: call R30 with noreturn - -00000519: sub _init(_init_result) -0000054d: _init_result :: out u32 = low:32[R0] - -0000046e: -00000474: #5 := R31 - 0x10 -0000047a: mem := mem with [#5, el]:u64 <- R29 -00000480: mem := mem with [#5 + 8, el]:u64 <- R30 -00000484: R31 := #5 -0000048a: R29 := R31 -0000048f: R30 := 0x5A8 -00000491: call @call_weak_fn with return %00000493 - -00000493: -00000498: R29 := mem[R31, el]:u64 -0000049d: R30 := mem[R31 + 8, el]:u64 -000004a1: R31 := R31 + 0x10 -000004a6: call R30 with noreturn - -0000051a: sub _start(_start_result) -0000054e: _start_result :: out u32 = low:32[R0] - -00000180: -00000185: R29 := 0 -0000018a: R30 := 0 -00000190: R5 := R0 -00000197: R1 := mem[R31, el]:u64 -0000019d: R2 := R31 + 8 -000001a3: R6 := R31 -000001a8: R0 := 0x10000 -000001af: R0 := mem[R0 + 0xFF0, el]:u64 -000001b4: R3 := 0 -000001b9: R4 := 0 -000001be: R30 := 0x670 -000001c1: call @__libc_start_main with return %000001c3 - -000001c3: -000001c6: R30 := 0x674 -000001c9: call @abort with return %0000053d - -0000053d: -0000053e: call @call_weak_fn with noreturn - -0000051d: sub abort() - - -000001c7: -00000440: R16 := 0x10000 -00000447: R17 := mem[R16 + 0xFC0, el]:u64 -0000044d: R16 := R16 + 0xFC0 -00000452: call R17 with noreturn - -0000051e: sub call_weak_fn(call_weak_fn_result) -0000054f: call_weak_fn_result :: out u32 = low:32[R0] - -000001cb: -000001ce: R0 := 0x10000 -000001d5: R0 := mem[R0 + 0xFE8, el]:u64 -000001db: when R0 = 0 goto %000001d9 -0000053f: goto %0000035c - -000001d9: -000001e1: call R30 with noreturn - -0000035c: -0000035f: goto @__gmon_start__ - -0000035d: -0000042a: R16 := 0x10000 -00000431: R17 := mem[R16 + 0xFB8, el]:u64 -00000437: R16 := R16 + 0xFB8 -0000043c: call R17 with noreturn - -00000520: sub deregister_tm_clones(deregister_tm_clones_result) -00000550: deregister_tm_clones_result :: out u32 = low:32[R0] - -000001e7: -000001ea: R0 := 0x11000 -000001f0: R0 := R0 + 0x10 -000001f5: R1 := 0x11000 -000001fb: R1 := R1 + 0x10 -00000201: #1 := ~R0 -00000206: #2 := R1 + ~R0 -0000020c: VF := extend:65[#2 + 1] <> extend:65[R1] + extend:65[#1] + 1 -00000212: CF := pad:65[#2 + 1] <> pad:65[R1] + pad:65[#1] + 1 -00000216: ZF := #2 + 1 = 0 -0000021a: NF := 63:63[#2 + 1] -00000220: when ZF goto %0000021e -00000540: goto %0000033e - -0000033e: -00000341: R1 := 0x10000 -00000348: R1 := mem[R1 + 0xFD0, el]:u64 -0000034d: when R1 = 0 goto %0000021e -00000541: goto %00000351 - -0000021e: -00000226: call R30 with noreturn - -00000351: -00000355: R16 := R1 -0000035a: call R16 with noreturn - -00000523: sub frame_dummy(frame_dummy_result) -00000551: frame_dummy_result :: out u32 = low:32[R0] - -000002be: -000002c0: call @register_tm_clones with noreturn - -00000524: sub main(main_argc, main_argv, main_result) -00000552: main_argc :: in u32 = low:32[R0] -00000553: main_argv :: in out u64 = R1 -00000554: main_result :: out u32 = low:32[R0] - -000002c2: -000002c5: R0 := 0x10000 -000002cc: R0 := mem[R0 + 0xFE0, el]:u64 -000002d1: R1 := 1 -000002d9: mem := mem with [R0, el]:u32 <- 31:0[R1] -000002de: R0 := 0 -000002e3: call R30 with noreturn - -00000525: sub register_tm_clones(register_tm_clones_result) -00000555: register_tm_clones_result :: out u32 = low:32[R0] - -00000228: -0000022b: R0 := 0x11000 -00000231: R0 := R0 + 0x10 -00000236: R1 := 0x11000 -0000023c: R1 := R1 + 0x10 -00000243: R1 := R1 + ~R0 + 1 -00000249: R2 := 0.63:63[R1] -00000250: R1 := R2 + (R1 ~>> 3) -00000256: R1 := extend:64[63:1[R1]] -0000025c: when R1 = 0 goto %0000025a -00000542: goto %00000320 - -00000320: -00000323: R2 := 0x10000 -0000032a: R2 := mem[R2 + 0xFF8, el]:u64 -0000032f: when R2 = 0 goto %0000025a -00000543: goto %00000333 - -0000025a: -00000262: call R30 with noreturn - -00000333: -00000337: R16 := R2 -0000033c: call R16 with noreturn diff --git a/src/test/correct/using_gamma_write_z/gcc_pic/using_gamma_write_z.expected b/src/test/correct/using_gamma_write_z/gcc_pic/using_gamma_write_z.expected index d913ad275..226bd0e01 100644 --- a/src/test/correct/using_gamma_write_z/gcc_pic/using_gamma_write_z.expected +++ b/src/test/correct/using_gamma_write_z/gcc_pic/using_gamma_write_z.expected @@ -1,13 +1,15 @@ var {:extern} Gamma_R0: bool; var {:extern} Gamma_R1: bool; +var {:extern} Gamma_R2: bool; var {:extern} Gamma_mem: [bv64]bool; var {:extern} R0: bv64; var {:extern} R1: bv64; +var {:extern} R2: bv64; var {:extern} mem: [bv64]bv8; const {:extern} $x_addr: bv64; -axiom ($x_addr == 69652bv64); +axiom ($x_addr == 4325400bv64); const {:extern} $z_addr: bv64; -axiom ($z_addr == 69656bv64); +axiom ($z_addr == 4325396bv64); function {:extern} L(mem$in: [bv64]bv8, index: bv64) returns (bool) { (if (index == $z_addr) then true else (if (index == $x_addr) then (memory_load32_le(mem$in, $z_addr) == 0bv32) else false)) } @@ -41,12 +43,7 @@ procedure {:extern} rely(); modifies Gamma_mem, mem; ensures (forall i: bv64 :: (((mem[i] == old(mem[i])) ==> (Gamma_mem[i] == old(Gamma_mem[i]))))); ensures ((old(memory_load32_le(mem, $x_addr)) == memory_load32_le(mem, $x_addr)) && (old(memory_load32_le(mem, $z_addr)) == memory_load32_le(mem, $z_addr))); - free ensures (memory_load32_le(mem, 1920bv64) == 131073bv32); - free ensures (memory_load64_le(mem, 69008bv64) == 1872bv64); - free ensures (memory_load64_le(mem, 69016bv64) == 1792bv64); - free ensures (memory_load64_le(mem, 69600bv64) == 69656bv64); - free ensures (memory_load64_le(mem, 69616bv64) == 1876bv64); - free ensures (memory_load64_le(mem, 69640bv64) == 69640bv64); + free ensures (memory_load32_le(mem, 4196312bv64) == 131073bv32); procedure {:extern} rely_transitive(); modifies Gamma_mem, mem; @@ -73,46 +70,36 @@ implementation {:extern} guarantee_reflexive() assert (gamma_load32(Gamma_mem, $x_addr) ==> gamma_load32(Gamma_mem, $x_addr)); } -procedure main_1876(); - modifies Gamma_R0, Gamma_R1, Gamma_mem, R0, R1, mem; +procedure main(); + modifies Gamma_R0, Gamma_R1, Gamma_R2, Gamma_mem, R0, R1, R2, mem; requires ((memory_load32_le(mem, $z_addr) == 0bv32) ==> gamma_load32(Gamma_mem, $x_addr)); - free requires (memory_load64_le(mem, 69632bv64) == 0bv64); - free requires (memory_load64_le(mem, 69640bv64) == 69640bv64); - free requires (memory_load32_le(mem, 1920bv64) == 131073bv32); - free requires (memory_load64_le(mem, 69008bv64) == 1872bv64); - free requires (memory_load64_le(mem, 69016bv64) == 1792bv64); - free requires (memory_load64_le(mem, 69600bv64) == 69656bv64); - free requires (memory_load64_le(mem, 69616bv64) == 1876bv64); - free requires (memory_load64_le(mem, 69640bv64) == 69640bv64); - free ensures (memory_load32_le(mem, 1920bv64) == 131073bv32); - free ensures (memory_load64_le(mem, 69008bv64) == 1872bv64); - free ensures (memory_load64_le(mem, 69016bv64) == 1792bv64); - free ensures (memory_load64_le(mem, 69600bv64) == 69656bv64); - free ensures (memory_load64_le(mem, 69616bv64) == 1876bv64); - free ensures (memory_load64_le(mem, 69640bv64) == 69640bv64); - -implementation main_1876() + free requires (memory_load64_le(mem, 4325376bv64) == 0bv64); + free requires (memory_load64_le(mem, 4325384bv64) == 0bv64); + free requires (memory_load32_le(mem, 4196312bv64) == 131073bv32); + free ensures (memory_load32_le(mem, 4196312bv64) == 131073bv32); + +implementation main() { - var Gamma_load18: bool; + var $load$14: bv64; + var Gamma_$load$14: bool; var Gamma_x_old: bool; - var load18: bv64; lmain: assume {:captureState "lmain"} true; - R0, Gamma_R0 := 65536bv64, true; + R1, Gamma_R1 := 4321280bv64, true; + R2, Gamma_R2 := 1bv64, true; + R0, Gamma_R0 := 0bv64, true; call rely(); - load18, Gamma_load18 := memory_load64_le(mem, bvadd64(R0, 4064bv64)), (gamma_load64(Gamma_mem, bvadd64(R0, 4064bv64)) || L(mem, bvadd64(R0, 4064bv64))); - R0, Gamma_R0 := load18, Gamma_load18; - R1, Gamma_R1 := 1bv64, true; + $load$14, Gamma_$load$14 := memory_load64_le(mem, bvadd64(R1, 4072bv64)), (gamma_load64(Gamma_mem, bvadd64(R1, 4072bv64)) || L(mem, bvadd64(R1, 4072bv64))); + R1, Gamma_R1 := $load$14, Gamma_$load$14; call rely(); + assert (L(mem, R1) ==> Gamma_R2); Gamma_x_old := (gamma_load32(Gamma_mem, $x_addr) || L(mem, $x_addr)); - assert (L(mem, R0) ==> Gamma_R1); - mem, Gamma_mem := memory_store32_le(mem, R0, R1[32:0]), gamma_store32(Gamma_mem, R0, Gamma_R1); - assert ((R0 == $z_addr) ==> (L(mem, $x_addr) ==> Gamma_x_old)); - assume {:captureState "%000002d9"} true; - R0, Gamma_R0 := 0bv64, true; - goto main_1876_basil_return; - main_1876_basil_return: - assume {:captureState "main_1876_basil_return"} true; + mem, Gamma_mem := memory_store32_le(mem, R1, R2[32:0]), gamma_store32(Gamma_mem, R1, Gamma_R2); + assert ((R1 == $z_addr) ==> (L(mem, $x_addr) ==> Gamma_x_old)); + assume {:captureState "%00000258"} true; + goto main_basil_return; + main_basil_return: + assume {:captureState "main_basil_return"} true; return; } diff --git a/src/test/correct/using_gamma_write_z/gcc_pic/using_gamma_write_z.gts b/src/test/correct/using_gamma_write_z/gcc_pic/using_gamma_write_z.gts deleted file mode 100644 index 64a878620..000000000 Binary files a/src/test/correct/using_gamma_write_z/gcc_pic/using_gamma_write_z.gts and /dev/null differ diff --git a/src/test/correct/using_gamma_write_z/gcc_pic/using_gamma_write_z.md5sum b/src/test/correct/using_gamma_write_z/gcc_pic/using_gamma_write_z.md5sum new file mode 100644 index 000000000..f2bf3d589 --- /dev/null +++ b/src/test/correct/using_gamma_write_z/gcc_pic/using_gamma_write_z.md5sum @@ -0,0 +1,5 @@ +900e43a5db4a416064ece8203656bdb6 correct/using_gamma_write_z/gcc_pic/a.out +c62c13c0bba8f5cbc4d2df0ff98ff8e2 correct/using_gamma_write_z/gcc_pic/using_gamma_write_z.adt +f4a408dcc3cff7a3a0b2c872a912e097 correct/using_gamma_write_z/gcc_pic/using_gamma_write_z.bir +4cabdae3e6a24ead7704da23e2a4d306 correct/using_gamma_write_z/gcc_pic/using_gamma_write_z.relf +09a86306fe32737931bff61ee8b6237b correct/using_gamma_write_z/gcc_pic/using_gamma_write_z.gts diff --git a/src/test/correct/using_gamma_write_z/gcc_pic/using_gamma_write_z.relf b/src/test/correct/using_gamma_write_z/gcc_pic/using_gamma_write_z.relf deleted file mode 100644 index 371c558d8..000000000 --- a/src/test/correct/using_gamma_write_z/gcc_pic/using_gamma_write_z.relf +++ /dev/null @@ -1,123 +0,0 @@ - -Relocation section '.rela.dyn' at offset 0x460 contains 9 entries: - Offset Info Type Symbol's Value Symbol's Name + Addend -0000000000010d90 0000000000000403 R_AARCH64_RELATIVE 750 -0000000000010d98 0000000000000403 R_AARCH64_RELATIVE 700 -0000000000010fe0 0000000000000403 R_AARCH64_RELATIVE 11018 -0000000000010ff0 0000000000000403 R_AARCH64_RELATIVE 754 -0000000000011008 0000000000000403 R_AARCH64_RELATIVE 11008 -0000000000010fd0 0000000400000401 R_AARCH64_GLOB_DAT 0000000000000000 _ITM_deregisterTMCloneTable + 0 -0000000000010fd8 0000000500000401 R_AARCH64_GLOB_DAT 0000000000000000 __cxa_finalize@GLIBC_2.17 + 0 -0000000000010fe8 0000000600000401 R_AARCH64_GLOB_DAT 0000000000000000 __gmon_start__ + 0 -0000000000010ff8 0000000800000401 R_AARCH64_GLOB_DAT 0000000000000000 _ITM_registerTMCloneTable + 0 - -Relocation section '.rela.plt' at offset 0x538 contains 4 entries: - Offset Info Type Symbol's Value Symbol's Name + Addend -0000000000010fa8 0000000300000402 R_AARCH64_JUMP_SLOT 0000000000000000 __libc_start_main@GLIBC_2.34 + 0 -0000000000010fb0 0000000500000402 R_AARCH64_JUMP_SLOT 0000000000000000 __cxa_finalize@GLIBC_2.17 + 0 -0000000000010fb8 0000000600000402 R_AARCH64_JUMP_SLOT 0000000000000000 __gmon_start__ + 0 -0000000000010fc0 0000000700000402 R_AARCH64_JUMP_SLOT 0000000000000000 abort@GLIBC_2.17 + 0 - -Symbol table '.dynsym' contains 9 entries: - Num: Value Size Type Bind Vis Ndx Name - 0: 0000000000000000 0 NOTYPE LOCAL DEFAULT UND - 1: 0000000000000598 0 SECTION LOCAL DEFAULT 11 .init - 2: 0000000000011000 0 SECTION LOCAL DEFAULT 22 .data - 3: 0000000000000000 0 FUNC GLOBAL DEFAULT UND __libc_start_main@GLIBC_2.34 (2) - 4: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_deregisterTMCloneTable - 5: 0000000000000000 0 FUNC WEAK DEFAULT UND __cxa_finalize@GLIBC_2.17 (3) - 6: 0000000000000000 0 NOTYPE WEAK DEFAULT UND __gmon_start__ - 7: 0000000000000000 0 FUNC GLOBAL DEFAULT UND abort@GLIBC_2.17 (3) - 8: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_registerTMCloneTable - -Symbol table '.symtab' contains 89 entries: - Num: Value Size Type Bind Vis Ndx Name - 0: 0000000000000000 0 NOTYPE LOCAL DEFAULT UND - 1: 0000000000000238 0 SECTION LOCAL DEFAULT 1 .interp - 2: 0000000000000254 0 SECTION LOCAL DEFAULT 2 .note.gnu.build-id - 3: 0000000000000278 0 SECTION LOCAL DEFAULT 3 .note.ABI-tag - 4: 0000000000000298 0 SECTION LOCAL DEFAULT 4 .gnu.hash - 5: 00000000000002b8 0 SECTION LOCAL DEFAULT 5 .dynsym - 6: 0000000000000390 0 SECTION LOCAL DEFAULT 6 .dynstr - 7: 000000000000041e 0 SECTION LOCAL DEFAULT 7 .gnu.version - 8: 0000000000000430 0 SECTION LOCAL DEFAULT 8 .gnu.version_r - 9: 0000000000000460 0 SECTION LOCAL DEFAULT 9 .rela.dyn - 10: 0000000000000538 0 SECTION LOCAL DEFAULT 10 .rela.plt - 11: 0000000000000598 0 SECTION LOCAL DEFAULT 11 .init - 12: 00000000000005b0 0 SECTION LOCAL DEFAULT 12 .plt - 13: 0000000000000640 0 SECTION LOCAL DEFAULT 13 .text - 14: 000000000000076c 0 SECTION LOCAL DEFAULT 14 .fini - 15: 0000000000000780 0 SECTION LOCAL DEFAULT 15 .rodata - 16: 0000000000000784 0 SECTION LOCAL DEFAULT 16 .eh_frame_hdr - 17: 00000000000007c0 0 SECTION LOCAL DEFAULT 17 .eh_frame - 18: 0000000000010d90 0 SECTION LOCAL DEFAULT 18 .init_array - 19: 0000000000010d98 0 SECTION LOCAL DEFAULT 19 .fini_array - 20: 0000000000010da0 0 SECTION LOCAL DEFAULT 20 .dynamic - 21: 0000000000010f90 0 SECTION LOCAL DEFAULT 21 .got - 22: 0000000000011000 0 SECTION LOCAL DEFAULT 22 .data - 23: 0000000000011010 0 SECTION LOCAL DEFAULT 23 .bss - 24: 0000000000000000 0 SECTION LOCAL DEFAULT 24 .comment - 25: 0000000000000000 0 FILE LOCAL DEFAULT ABS Scrt1.o - 26: 0000000000000278 0 NOTYPE LOCAL DEFAULT 3 $d - 27: 0000000000000278 32 OBJECT LOCAL DEFAULT 3 __abi_tag - 28: 0000000000000640 0 NOTYPE LOCAL DEFAULT 13 $x - 29: 00000000000007d4 0 NOTYPE LOCAL DEFAULT 17 $d - 30: 0000000000000780 0 NOTYPE LOCAL DEFAULT 15 $d - 31: 0000000000000000 0 FILE LOCAL DEFAULT ABS crti.o - 32: 0000000000000674 0 NOTYPE LOCAL DEFAULT 13 $x - 33: 0000000000000674 20 FUNC LOCAL DEFAULT 13 call_weak_fn - 34: 0000000000000598 0 NOTYPE LOCAL DEFAULT 11 $x - 35: 000000000000076c 0 NOTYPE LOCAL DEFAULT 14 $x - 36: 0000000000000000 0 FILE LOCAL DEFAULT ABS crtn.o - 37: 00000000000005a8 0 NOTYPE LOCAL DEFAULT 11 $x - 38: 0000000000000778 0 NOTYPE LOCAL DEFAULT 14 $x - 39: 0000000000000000 0 FILE LOCAL DEFAULT ABS crtstuff.c - 40: 0000000000000690 0 NOTYPE LOCAL DEFAULT 13 $x - 41: 0000000000000690 0 FUNC LOCAL DEFAULT 13 deregister_tm_clones - 42: 00000000000006c0 0 FUNC LOCAL DEFAULT 13 register_tm_clones - 43: 0000000000011008 0 NOTYPE LOCAL DEFAULT 22 $d - 44: 0000000000000700 0 FUNC LOCAL DEFAULT 13 __do_global_dtors_aux - 45: 0000000000011010 1 OBJECT LOCAL DEFAULT 23 completed.0 - 46: 0000000000010d98 0 NOTYPE LOCAL DEFAULT 19 $d - 47: 0000000000010d98 0 OBJECT LOCAL DEFAULT 19 __do_global_dtors_aux_fini_array_entry - 48: 0000000000000750 0 FUNC LOCAL DEFAULT 13 frame_dummy - 49: 0000000000010d90 0 NOTYPE LOCAL DEFAULT 18 $d - 50: 0000000000010d90 0 OBJECT LOCAL DEFAULT 18 __frame_dummy_init_array_entry - 51: 00000000000007e8 0 NOTYPE LOCAL DEFAULT 17 $d - 52: 0000000000011010 0 NOTYPE LOCAL DEFAULT 23 $d - 53: 0000000000000000 0 FILE LOCAL DEFAULT ABS using_gamma_write_z.c - 54: 0000000000011014 0 NOTYPE LOCAL DEFAULT 23 $d - 55: 0000000000000754 0 NOTYPE LOCAL DEFAULT 13 $x - 56: 0000000000000848 0 NOTYPE LOCAL DEFAULT 17 $d - 57: 0000000000000000 0 FILE LOCAL DEFAULT ABS crtstuff.c - 58: 000000000000085c 0 NOTYPE LOCAL DEFAULT 17 $d - 59: 000000000000085c 0 OBJECT LOCAL DEFAULT 17 __FRAME_END__ - 60: 0000000000000000 0 FILE LOCAL DEFAULT ABS - 61: 0000000000010da0 0 OBJECT LOCAL DEFAULT ABS _DYNAMIC - 62: 0000000000000784 0 NOTYPE LOCAL DEFAULT 16 __GNU_EH_FRAME_HDR - 63: 0000000000010fc8 0 OBJECT LOCAL DEFAULT ABS _GLOBAL_OFFSET_TABLE_ - 64: 00000000000005b0 0 NOTYPE LOCAL DEFAULT 12 $x - 65: 0000000000000000 0 FUNC GLOBAL DEFAULT UND __libc_start_main@GLIBC_2.34 - 66: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_deregisterTMCloneTable - 67: 0000000000011000 0 NOTYPE WEAK DEFAULT 22 data_start - 68: 0000000000011010 0 NOTYPE GLOBAL DEFAULT 23 __bss_start__ - 69: 0000000000000000 0 FUNC WEAK DEFAULT UND __cxa_finalize@GLIBC_2.17 - 70: 0000000000011020 0 NOTYPE GLOBAL DEFAULT 23 _bss_end__ - 71: 0000000000011010 0 NOTYPE GLOBAL DEFAULT 22 _edata - 72: 0000000000011018 4 OBJECT GLOBAL DEFAULT 23 z - 73: 0000000000011014 4 OBJECT GLOBAL DEFAULT 23 x - 74: 000000000000076c 0 FUNC GLOBAL HIDDEN 14 _fini - 75: 0000000000011020 0 NOTYPE GLOBAL DEFAULT 23 __bss_end__ - 76: 0000000000011000 0 NOTYPE GLOBAL DEFAULT 22 __data_start - 77: 0000000000000000 0 NOTYPE WEAK DEFAULT UND __gmon_start__ - 78: 0000000000011008 0 OBJECT GLOBAL HIDDEN 22 __dso_handle - 79: 0000000000000000 0 FUNC GLOBAL DEFAULT UND abort@GLIBC_2.17 - 80: 0000000000000780 4 OBJECT GLOBAL DEFAULT 15 _IO_stdin_used - 81: 0000000000011020 0 NOTYPE GLOBAL DEFAULT 23 _end - 82: 0000000000000640 52 FUNC GLOBAL DEFAULT 13 _start - 83: 0000000000011020 0 NOTYPE GLOBAL DEFAULT 23 __end__ - 84: 0000000000011010 0 NOTYPE GLOBAL DEFAULT 23 __bss_start - 85: 0000000000000754 24 FUNC GLOBAL DEFAULT 13 main - 86: 0000000000011010 0 OBJECT GLOBAL HIDDEN 22 __TMC_END__ - 87: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_registerTMCloneTable - 88: 0000000000000598 0 FUNC GLOBAL HIDDEN 11 _init diff --git a/src/test/correct/using_gamma_write_z/gcc_pic/using_gamma_write_z_gtirb.expected b/src/test/correct/using_gamma_write_z/gcc_pic/using_gamma_write_z_gtirb.expected index 7e0173be1..eda4a9bb8 100644 --- a/src/test/correct/using_gamma_write_z/gcc_pic/using_gamma_write_z_gtirb.expected +++ b/src/test/correct/using_gamma_write_z/gcc_pic/using_gamma_write_z_gtirb.expected @@ -1,13 +1,15 @@ var {:extern} Gamma_R0: bool; var {:extern} Gamma_R1: bool; +var {:extern} Gamma_R2: bool; var {:extern} Gamma_mem: [bv64]bool; var {:extern} R0: bv64; var {:extern} R1: bv64; +var {:extern} R2: bv64; var {:extern} mem: [bv64]bv8; const {:extern} $x_addr: bv64; -axiom ($x_addr == 69652bv64); +axiom ($x_addr == 4325400bv64); const {:extern} $z_addr: bv64; -axiom ($z_addr == 69656bv64); +axiom ($z_addr == 4325396bv64); function {:extern} L(mem$in: [bv64]bv8, index: bv64) returns (bool) { (if (index == $z_addr) then true else (if (index == $x_addr) then (memory_load32_le(mem$in, $z_addr) == 0bv32) else false)) } @@ -41,12 +43,7 @@ procedure {:extern} rely(); modifies Gamma_mem, mem; ensures (forall i: bv64 :: (((mem[i] == old(mem[i])) ==> (Gamma_mem[i] == old(Gamma_mem[i]))))); ensures ((old(memory_load32_le(mem, $x_addr)) == memory_load32_le(mem, $x_addr)) && (old(memory_load32_le(mem, $z_addr)) == memory_load32_le(mem, $z_addr))); - free ensures (memory_load32_le(mem, 1920bv64) == 131073bv32); - free ensures (memory_load64_le(mem, 69008bv64) == 1872bv64); - free ensures (memory_load64_le(mem, 69016bv64) == 1792bv64); - free ensures (memory_load64_le(mem, 69600bv64) == 69656bv64); - free ensures (memory_load64_le(mem, 69616bv64) == 1876bv64); - free ensures (memory_load64_le(mem, 69640bv64) == 69640bv64); + free ensures (memory_load32_le(mem, 4196312bv64) == 131073bv32); procedure {:extern} rely_transitive(); modifies Gamma_mem, mem; @@ -73,46 +70,36 @@ implementation {:extern} guarantee_reflexive() assert (gamma_load32(Gamma_mem, $x_addr) ==> gamma_load32(Gamma_mem, $x_addr)); } -procedure main_1876(); - modifies Gamma_R0, Gamma_R1, Gamma_mem, R0, R1, mem; +procedure main(); + modifies Gamma_R0, Gamma_R1, Gamma_R2, Gamma_mem, R0, R1, R2, mem; requires ((memory_load32_le(mem, $z_addr) == 0bv32) ==> gamma_load32(Gamma_mem, $x_addr)); - free requires (memory_load64_le(mem, 69632bv64) == 0bv64); - free requires (memory_load64_le(mem, 69640bv64) == 69640bv64); - free requires (memory_load32_le(mem, 1920bv64) == 131073bv32); - free requires (memory_load64_le(mem, 69008bv64) == 1872bv64); - free requires (memory_load64_le(mem, 69016bv64) == 1792bv64); - free requires (memory_load64_le(mem, 69600bv64) == 69656bv64); - free requires (memory_load64_le(mem, 69616bv64) == 1876bv64); - free requires (memory_load64_le(mem, 69640bv64) == 69640bv64); - free ensures (memory_load32_le(mem, 1920bv64) == 131073bv32); - free ensures (memory_load64_le(mem, 69008bv64) == 1872bv64); - free ensures (memory_load64_le(mem, 69016bv64) == 1792bv64); - free ensures (memory_load64_le(mem, 69600bv64) == 69656bv64); - free ensures (memory_load64_le(mem, 69616bv64) == 1876bv64); - free ensures (memory_load64_le(mem, 69640bv64) == 69640bv64); - -implementation main_1876() + free requires (memory_load64_le(mem, 4325376bv64) == 0bv64); + free requires (memory_load64_le(mem, 4325384bv64) == 0bv64); + free requires (memory_load32_le(mem, 4196312bv64) == 131073bv32); + free ensures (memory_load32_le(mem, 4196312bv64) == 131073bv32); + +implementation main() { - var Gamma_load20: bool; + var $load2: bv64; + var Gamma_$load2: bool; var Gamma_x_old: bool; - var load20: bv64; - main_1876__0__wzE5390IST~kmbO~2Ze3Kw: - assume {:captureState "main_1876__0__wzE5390IST~kmbO~2Ze3Kw"} true; - R0, Gamma_R0 := 65536bv64, true; + $main$__0__$YmNxI7RsS_6TZy3HTKzvWg: + assume {:captureState "$main$__0__$YmNxI7RsS_6TZy3HTKzvWg"} true; + R1, Gamma_R1 := 4321280bv64, true; + R2, Gamma_R2 := 1bv64, true; + R0, Gamma_R0 := 0bv64, true; call rely(); - load20, Gamma_load20 := memory_load64_le(mem, bvadd64(R0, 4064bv64)), (gamma_load64(Gamma_mem, bvadd64(R0, 4064bv64)) || L(mem, bvadd64(R0, 4064bv64))); - R0, Gamma_R0 := load20, Gamma_load20; - R1, Gamma_R1 := 1bv64, true; + $load2, Gamma_$load2 := memory_load64_le(mem, bvadd64(R1, 4072bv64)), (gamma_load64(Gamma_mem, bvadd64(R1, 4072bv64)) || L(mem, bvadd64(R1, 4072bv64))); + R1, Gamma_R1 := $load2, Gamma_$load2; call rely(); + assert (L(mem, R1) ==> Gamma_R2); Gamma_x_old := (gamma_load32(Gamma_mem, $x_addr) || L(mem, $x_addr)); - assert (L(mem, R0) ==> Gamma_R1); - mem, Gamma_mem := memory_store32_le(mem, R0, R1[32:0]), gamma_store32(Gamma_mem, R0, Gamma_R1); - assert ((R0 == $z_addr) ==> (L(mem, $x_addr) ==> Gamma_x_old)); - assume {:captureState "1888_0"} true; - R0, Gamma_R0 := 0bv64, true; - goto main_1876_basil_return; - main_1876_basil_return: - assume {:captureState "main_1876_basil_return"} true; + mem, Gamma_mem := memory_store32_le(mem, R1, R2[32:0]), gamma_store32(Gamma_mem, R1, Gamma_R2); + assert ((R1 == $z_addr) ==> (L(mem, $x_addr) ==> Gamma_x_old)); + assume {:captureState "4195984$0"} true; + goto main_basil_return; + main_basil_return: + assume {:captureState "main_basil_return"} true; return; } diff --git a/src/test/docker-contents.txt b/src/test/docker-contents.txt new file mode 100644 index 000000000..d558656e1 --- /dev/null +++ b/src/test/docker-contents.txt @@ -0,0 +1,368 @@ +github:katrinafyi/pac-nix/569afdf78558de82c24d25e12680157c3b0aa3df#basil-tools-docker + +dk71x37ssqb5py8pl88qx550vrs5m1ds-aarch64-unknown-linux-gnu-binutils-2.43.1 +z5fn0crvclfb2c0537qm63x5xaf3cygm-aarch64-unknown-linux-gnu-binutils-wrapper-2.43.1 +0qmqzg3x7y9x47bqzhgf5k8wg177jq9w-aarch64-unknown-linux-gnu-clang-wrapper-19.1.7 +8m5xdkk4c79shaa8hkf51sf14sz1049z-aarch64-unknown-linux-gnu-gcc-14-20241116 +j5r84kgy0hvjcn2nd3vzcfdaaj05rx2m-aarch64-unknown-linux-gnu-gcc-14-20241116-lib +whzdsaaq7kdfqq0ck7jvjjf6bxnkiq26-aarch64-unknown-linux-gnu-gcc-wrapper-14-20241116 +2v6vz3iqppl5hwa666jblm68j5vm6q81-aarch64-unknown-linux-musl-binutils-2.43.1 +kbxggm6xp6nh475s5xcagvzv9mvj2jva-aarch64-unknown-linux-musl-binutils-wrapper-2.43.1 +4s9b97g93dngg41q3sxa78x6y32d2617-aarch64-unknown-linux-musl-clang-wrapper-19.1.7 +mgvdnclribgl1azv5ihn41ng2iiflwfg-aarch64-unknown-linux-musl-gcc-14-20241116 +i0wl5363wdrxy8q4iihhndcjgb3cps30-aarch64-unknown-linux-musl-gcc-14-20241116-lib +v6qyps67044cqlw9kyd7kp3x0w20lrfw-aarch64-unknown-linux-musl-gcc-14-20241116-libgcc +jq49xvs10kw1rinycjgyl1da5jri2bdz-aarch64-unknown-linux-musl-gcc-wrapper-14-20241116 +cqc78pjz20a0akjscxqsy51lwrrw27gw-abseil-cpp-20240722.1 +81bvbv58jrjdcd11m3iv0dk9xf01l48c-acl-2.3.2 +718q5lcpvbk3s8i9pqr19c20n9ma91v7-attr-2.5.2 +h9lc1dpi14z7is86ffhl3ld569138595-audit-tmpdir.sh +khwrznlcfm07ff4iapcfr19a3bzcvjsb-bap-asli-plugin-0-unstable-2025-04-16 +aig2ln9sjni76xfnrr0g8jkndkx4xkqa-bap-aslp-0-unstable-2025-04-16 +c302lvgm7bck5bsxvgfwsgr6bzyhmddx-bap-plugins-2.5.0 +swyxs50g085jn4pz0b2mp1xpzs0hpfxa-bap-wrapped +fd118hwh7d1ncib4mdw56ylv3g9k0iyj-bash-5.2p37 +6vpzxqaqvwiyqywssfavs1s51b4cgsin-bash-interactive-5.2p37 +5h5ghy2qf6l91l52j6m5vx473zi38vc3-binutils-2.43.1 +xy92kk6m4ij33l36k3lh08bz2z2314sn-binutils-2.43.1-lib +vrkxj51s4a1awh7m4p4f1w29wad5s20m-binutils-wrapper-2.43.1 +66jsqwp97psjx44mrwfr7yg59vszsn68-boost-1.83.0 +hpspriz4p7xa5d8rvb7csz4cm49nsay4-brotli-1.1.0 +vj4yg07caqph51fihavhin0pak6wj412-brotli-1.1.0-dev +6h75nd43hbzp7pcan8w5bmqrq33lvhs2-brotli-1.1.0-lib +yhkrg6gq12yrpjvibxhqi0kzr97wd6zq-buildDerivation +vv1w45nb0rfqc6n76s11ip085kg1js86-bzip2-1.0.8 +hpppxlcfvjzrvvcvhcm47divp65gbwq1-bzip2-1.0.8-bin +zfk4jdckif3hyfq3c9lrdhdfr3ksq05s-c-ares-1.27.0 +yifl5a3xwq0xfv2ms608askx3x6prmr4-capstone-grammatech-5.0.1-unstable-2024-04-30 +2kwyhb62gfj00403q9p8fbj0gag96bzv-clang-19.1.7 +65rh16mh99fln30ba6bhg37d0gygc3ch-clang-19.1.7-lib +8i035hmsw75i9ynkzns4fr3vjb4fwvcl-cmdliner-1.3.0 +d7vj73gfczl5m2dzpr5al4pzs59m24c1-compiler-rt-libc-aarch64-unknown-linux-gnu-19.1.7 +4halv5y9rrwk95dhfff4ir06w4p9bfw0-compiler-rt-libc-aarch64-unknown-linux-gnu-19.1.7-dev +bhb4kp91avq968mjz4b5b59ifzlxsgys-compiler-rt-libc-aarch64-unknown-linux-musl-19.1.7 +gss8w4h92c6rrms5msjwznj3jp79xfv9-compiler-rt-libc-aarch64-unknown-linux-musl-19.1.7-dev +m54bmrhj6fqz8nds5zcj97w9s9bckc9v-compress-man-pages.sh +wdap4cr3bnm685f27y9bb6q5b6q18msl-coreutils-9.5 +a6lkdradawy6ybr5kv9lh5x5rwa2aa30-curl-8.11.1 +rs7yscpdkmaj7ppfixh5p3hv7vksc46l-curl-8.11.1-bin +77hf42pzrxhl4q152zirzx7babv6b23i-curl-8.11.1-dev +3ba5dsraas31akcm7xj98r6mgzgfipz3-curl-8.11.1-man +d29hsl6vgxi1mzsina5vm3fbk0dg7fr4-ddisasm-0-unstable-2024-10-31 +shkw4qm9qcw5sc5n1k5jznc83ny02r39-default-builder.sh +dd7xqz1qwl0di4zb8rzj7r1ds8np9xqs-diffutils-3.10 +hyrlv82i6qshpmcr6xrac0d6wzxysgjj-ed-1.21 +izb7a00wcbv5m5g6shlj0xkiyqjbmzfs-expand-response-params +p4c7n17a83kgjjy1xdgnghv873gcikl5-expand-response-params +wh44r80xfs54l63xcg1fflvmgbvzbq8a-expat-2.6.4 +qraqns84wjffzd8d3dgbdcyxg41czbd6-file-5.46 +c8w300aydqa1pcgpmm2yrxnhhp4ygfs2-find-xml-catalogs-hook +032xw8dchwjipwqh6b3h70yc3mcmsqld-findutils-4.10.0 +70pyfqs1dh2p0zz8pwgz9m95h7m0vy3g-fortify-headers-1.1alpine3 +xpzl2sf58fqfpl64b1fy1ihxay7k71li-gawk-5.3.1 +zs2gq6fkglrd28g1nxlb8waqq37cdc2z-gcc-14-20241116 +ggqfrwgzpr3v3dkvh4cnmhymnvf6cqja-gcc-14-20241116-lib +qjg34af79vcz9k2x386wjg6pk905cs42-gcc-14-20241116-libgcc +4ijy8jbsiqmj37avrk83gn2m903486mr-gcc-wrapper-14-20241116 +vjj36jmc6d0mb9nmfk84p3qp9fkgfjd3-gdbm-1.24-lib +81mi7m3k3wsiz9rrrg636sx21psj20hc-glibc-2.40-66 +9lcg6rsqbmx6s35jzy86b86pkj0qhxjl-glibc-2.40-66-bin +6aci60gk5wj4bjj1rygzbkc6ximmsm17-glibc-2.40-66-dev +vziiw4k1kl88pqv47nhlgzf85mvhnbia-glibc-aarch64-unknown-linux-gnu-2.40-66 +npvkrr8kr939cfmyclax9g7jimv47gsi-glibc-aarch64-unknown-linux-gnu-2.40-66-bin +n6ixh99q3pzxafqjv8w043q6xdkzg3b9-glibc-aarch64-unknown-linux-gnu-2.40-66-dev +ghqzzi0bcyq1578lw83cxq2s5vrfwmwh-gmp-6.3.0 +jq8xwsvpc3rdkrcybdpm5vzznw2ki4sq-gmp-with-cxx-6.3.0 +lcrd60rf8r80qicpsmdp3s1k1k81qnlp-gmp-with-cxx-6.3.0 +ns0fcfirw3mzmn038mca90n8bjj2y7sy-gmp-with-cxx-6.3.0-dev +3g69kgyhn438bxli7nf202xz6sc3sln9-gnu-config-2024-01-01 +4lbfasv335vpk8rbcf3pgkag4rhg8jx8-gnugrep-3.11 +y0akgyz13jgxwm968bs8kay47zbxx638-gnumake-4.4.1 +bffnm1211li6y431irplzbjbccr0k884-gnused-4.9 +zlmk040fc3jax9s3gldwp5rfwc1hhajc-gnutar-1.35 +92dis1n6mav3505c8hhs7am55ykklj8w-group +wi3xmd9g23vj4vqi328qfwyynmzl2x3d-gtest-1.15.2 +6c02kwbh5b7h76r8s0yysxzn37r984is-gtirb-2.2.0-unstable-2025-01-24-lib +1ikwb7cqjgwwilz8q4l38g240910di83-gtirb-pprinter-2.2.0-unstable-2024-10-09 +xfl9zws4yx0izsd7y9q2vvrmlwymvvm7-gtirb-semantics-runtimeinputs +kdai5cx7v8xyvzbkmny0z3jvxg2iawnx-gtirb-semantics-wrapper +chwdy9qaxd13q8zvl0zd5r7ql2q116di-gzip-1.13 +87rwn67mr6ndb3ml12rk559pwidny18q-icu4c-74.2 +2s9g6h5h7f2r5473p01qmk4magag9g8d-isl-0.20 +33cap185sfp53kx0kcy0m1gjq5b9vzpr-isl-0.20 +c8n566488azxaqjsms2dhjpvzl1w90zv-keyutils-1.6.3-lib +7nb0sg9y8j8xli2y3q4rhzzf4npgrz2d-krb5-1.21.3 +plnajdv4w5602hwk6zlgwgjy8p6ypy4b-krb5-1.21.3-dev +vjvzk9ifx05pwznia9kvbajbh08k4k8a-krb5-1.21.3-lib +v74s22s5iwcb5hzr1fvifb6fc3i53s2p-libedit-20240808-3.1 +4wr5nrd625dbfm2gri1l11yca3rrhwai-libehp-init +2k0cgcj46iaharh2plwczbkzg32d2595-libev-4.33 +38q0ckkjzqfghf7ri1906zsl2pbi0bnj-libffi-3.4.6 +f3a07mxh8k1fg5i30r8rhy9s8x9yxk9v-libgcc-aarch64-unknown-linux-gnu-14-20241116 +pyy5hx150l4m9grcm7k8p0rg863lllgb-libidn2-2.3.7 +d6n3iq97s0jpjqwxzx36n61nij9vg49z-libidn2-2.3.7-bin +p2wr7ijqdma50q1dw8fm255vgrprrw10-libidn2-2.3.7-dev +mk04qwiaf6qxh8ya87kmv1rbclz9iiaf-libmpc-1.3.1 +sr12h84y89r2w0y0pzn0gdvj44lyyyi7-libmpc-1.3.1 +yhm9397mm5w1q4d56p0d3kayz7qgmlfn-libpfm-4.13.0 +njkj1ayhqlnw2msla0b3iknq908274w8-libpsl-0.21.5 +jkfw81rnih8ks4pg94a9d5lh76sgnds1-libpsl-0.21.5-bin +h5ymqil8iysbrw3nwrrsh0xp0jjbifb7-libpsl-0.21.5-dev +qpzb764s6v2mpbjh66d3jx7g0qzrd1az-libssh2-1.11.1 +zai4qagp4z5vyrdw1scf7kyh6607g1lr-libssh2-1.11.1-dev +08p73d581f4iagpdx93n3rbk1b03qpbb-libunistring-1.3 +d550hx0zzirlbww967k0d0xs8asrb3ia-libxcrypt-4.4.38 +g092gwqmc4l4qk8i4ry4lyglzfxlhr73-libxml2-2.13.5 +xdhipy5vbk65gkm1i4ckzn9x4vkdi20f-libxml2-2.13.5-bin +x7kdblncmd9z9kszqb46kf58b7xyf3kv-libxml2-2.13.5-dev +mh741hnng3x0743mb32sspx562s4a0iv-linux-headers-6.12.7 +mswd6q70gq21lzmmv5k690swjyvaafrb-linux-headers-6.12.7 +qhmjl87jvad2kf51jcxjdhdg2jjvpl2x-linux-headers-6.12.7 +4879cw33rsv64537vjki5iai93qih9rm-llvm-14.0.6-lib +9cwv51ypwhgg04ahyda0swwhv2papqki-llvm-19.1.7 +gdfl8p6d252whpdl03mxivsw2xh9snib-llvm-19.1.7-lib +f1ylpzw0rlqdp2f9qih0n8wjbm877wg4-mailcap-2.1.54 +wgrbkkaldkrlrni33ccvm3b6vbxzb656-make-symlinks-relative.sh +5yzw0vhkyszf2d179m0qfkgxmp5wjjx4-move-docs.sh +fyaryjvghbkpfnsyw97hb3lyb37s1pd6-move-lib64.sh +kd4xwxjpjxi71jkm6ka0np72if9rm3y0-move-sbin.sh +pag6l61paj1dc9sv15l7bm5c17xn5kyk-move-systemd-user-units.sh +rgm125zmddsrinw960pqicvjw4k98cb5-mpdecimal-4.0.0 +23sp70wrzbcyalgrhhq2g7g9psz87g53-mpfr-4.2.1 +k856x8cy4psqppgsm4wq3j0gg15i8ifz-mpfr-4.2.1 +jivxp510zxakaaic7qkrb7v1dd2rdbw9-multiple-outputs.sh +x8f2jxcz4063c9mahm8hrw0dpkjiwfkv-musl-aarch64-unknown-linux-musl-1.2.5 +cbg82fbln4iny60cfffdi3hbz65ch80w-musl-aarch64-unknown-linux-musl-1.2.5-bin +mbhcjink1alnf3d3gws9sz4c2l0psfyb-musl-aarch64-unknown-linux-musl-1.2.5-dev +x9lgx9pd242kw0sdvdmwvmgj6igw8h8k-ncurses-6.4.20221231 +91afpjpyajqkly06m6jv823rdqshjxhl-ncurses-6.4.20221231-dev +ss20yhn1nc2z7m4qy935wmkl0rfpk6ha-ncurses-6.4.20221231-man +4lavj69h0davbcxwrhj6bh10rkgbh1a5-nghttp2-1.64.0 +a6nmcyx9xmxacs5n1jijbm4bxm2w9z3j-nghttp2-1.64.0-dev +1f1ja61ch7s7qzx1qcag0a0dlfsai15d-nghttp2-1.64.0-lib +s0v43bqismd2z2z9n01la8q35nnah45a-nix-shell-rc +shr47253n0j4c4lpvv6fmlvaq7vfvc3x-no-broken-symlinks.sh +dm7zbp9j8qf18kcdm9faj6maxay54blz-nss-cacert-3.107 +wls41gsyfnrnki2sfyd39j3wgrigzaia-nsswitch.conf +7nqcmbfxrxsazdh1acsxiblznnh9s2k8-ocaml-4.14.2 +0a3rp3b58avyymcfpr12p6ln6pj8rf7q-ocaml-oasis-0.4.11 +k5rwnv0y8x4mz0m3mpz7p5wswbny2z5w-ocaml-react-1.2.2 +kyjbkf4vd5k2qrwcg2anp55sxfq7lzfa-ocaml4.14.2-FrontC-4.1.0 +nh17r4ziwmk0rmq29map8zfx0ln2s53b-ocaml4.14.2-aches-1.1.0 +jkfmhcdn0948daxjbrnkaaqm638qvr4w-ocaml4.14.2-angstrom-0.16.1 +y4iqhrfrwixksmi56l0ghk8fv02l7k4j-ocaml4.14.2-asli-0.3.0-unstable-2025-04-16 +dys0qcsshnw3phpm24rwm2ghsiyfqcqn-ocaml4.14.2-asli-0.3.0-unstable-2025-04-16-dev +y67k10qazjqkwwibhygya461nxjhhf2l-ocaml4.14.2-aslp_client_server_ocaml-0.1.3-unstable-2025-02-05 +6srbkavf2hdglj60yzsx7d1xnnjibws7-ocaml4.14.2-aslp_client_server_ocaml-0.1.3-unstable-2025-02-05-dev +d85ra6z7hznag2gykp207i6dqvvb6w66-ocaml4.14.2-aslp_offline-0.3.0-unstable-2025-04-16 +spc5vv83r2dab0n6hr65wkrszjh3fb9b-ocaml4.14.2-aslp_offline-0.3.0-unstable-2025-04-16-dev +51d16hlbqx7zygza6nd1s0v0fn10z6iv-ocaml4.14.2-asn1-combinators-0.3.2 +5r71k38s92ff0nbnwrafnw9i619l8q7d-ocaml4.14.2-astring-0.8.5 +r8721z9zpclhbdidf7qrd570pk1bvcpd-ocaml4.14.2-bap-2.5.0 +n9ajqb2157bv3rg73x069pvrrd19074j-ocaml4.14.2-base-0.15.1 +j3y4wawsgcanva97yx8hhvgbaaqvs1qf-ocaml4.14.2-base-0.16.2 +m6vlialk1ikj3yqf6p9nlw2q0vmqm63q-ocaml4.14.2-base64-3.5.1 +k8l1k9rdk988njj2g3ljqcc4js8bx435-ocaml4.14.2-base_bigstring-0.15.0 +nn9rxd578xh2sqfgwr836c86dircl4w5-ocaml4.14.2-base_quickcheck-0.15.0 +kgpnf3fzq0xkdv4ly3sx7hfbrphprjn7-ocaml4.14.2-bigstringaf-0.9.0 +wvbspl2lafndfjf0bmk0s0v0ri6xkvnj-ocaml4.14.2-bin_prot-0.15.0 +w6b80d5diph1q8b5xvyf6yfb0j2jvr23-ocaml4.14.2-bitstring-4.1.1 +5iagr9nl9i3p6mm10pgr7ngci1fqcf25-ocaml4.14.2-bos-0.2.1 +bklbi6dvr4rxihk57r7wzbdkpjcnv983-ocaml4.14.2-ca-certs-1.0.0 +615pxvmkh5i0baw5asdapj3dp8pr58y6-ocaml4.14.2-camlzip-1.11 +3cbz8m6s47q4rj81xzskfs5rgsq5mpx7-ocaml4.14.2-cohttp-5.3.1 +05wh11q28n8761jfndkz46fqqfq17w24-ocaml4.14.2-cohttp-lwt-6.0.0 +7y3bajf8zd1rvbsmxxrph8nrwh7r9ycb-ocaml4.14.2-cohttp-lwt-unix-6.0.0 +khdp1jympd51a4rk2475w2arx9dq1b64-ocaml4.14.2-conduit-7.1.0 +b2x98hqxi3lb4kz0nagsdi1gvysbibcy-ocaml4.14.2-conduit-lwt-7.1.0 +kcbh3xp94367nzzd3c96ibymfmjs4qyi-ocaml4.14.2-conduit-lwt-unix-7.1.0 +l5c0jzakz7ijw0xjnmf8zy2gpah8r64b-ocaml4.14.2-core-0.15.1 +8hpiahx5y5ib7rcsrcqhn0l530szm39x-ocaml4.14.2-core_kernel-0.15.0 +gygcjwxhgwhqwd45k7s40h9n7z7hhkah-ocaml4.14.2-csexp-1.5.2 +sy44l29ix4hs08rqwqdql0z2m8s57dzd-ocaml4.14.2-cstruct-6.2.0 +0l1pykqpprwb26wkflp7n4kx3fk6ndyz-ocaml4.14.2-digestif-1.2.0 +hqwai555ximklzgxl3dzqsklyr49lq3l-ocaml4.14.2-domain-name-0.4.0 +bh44kgndhfs7mm5b8x3hxigrbhq3dsny-ocaml4.14.2-dune-private-libs-3.17.2 +2nq5xq6n28rxiqq4s3pcn2fdhpciplpf-ocaml4.14.2-dune-site-3.17.2 +g2pkgjb4z5qy6j6rxhgj2vb8g9jr0cwv-ocaml4.14.2-duration-0.2.1 +sk4lznmp14i300lafid8kq38fjaa45p6-ocaml4.14.2-dyn-3.17.2 +2p16ghnrkdg512gmwd3nb3dykdvsvsgm-ocaml4.14.2-easy-format-1.3.4 +zd8zg1lazy6ic00rxd96nq0lj578wh3p-ocaml4.14.2-eqaf-0.10 +cpw1r73bd9zkzwh38szl6bs8iax95xjv-ocaml4.14.2-eqaf-cstruct-0.10 +ick33rpym52djbrqs2pkniias34spzbw-ocaml4.14.2-ezjsonm-1.3.0 +9x9mv9dmnvx8w1f6vzm639sx4c44x4pk-ocaml4.14.2-fieldslib-0.15.0 +2ilaj63w4jh2c1zvbziq3p6p53k472c0-ocaml4.14.2-fileutils-0.6.4 +gii8r6j2b602s63ij0zph4v0lbkzlifw-ocaml4.14.2-findlib-1.9.8 +9i17i9n9vr23ax6p29gdz6kqz6zxbr8z-ocaml4.14.2-fmt-0.9.0 +29r6ldddhbpg6hdviqba082bn62k9gw8-ocaml4.14.2-fpath-0.7.3 +ybjnc082hnd9xvrmdafcsmpmxdkq9pfn-ocaml4.14.2-gen-1.1 +9gw7vk50r29pvvhj81nrz2sv3k31p5qf-ocaml4.14.2-gmap-0.3.0 +bqkyxaqxmkr675c8bi5p1i1b45r2ahbc-ocaml4.14.2-gtirb_semantics-0.1.3-unstable-2025-04-11 +gji88l7ibrr8psny3ciww64ax1bwvxfp-ocaml4.14.2-gtirb_semantics-0.1.3-unstable-2025-04-11-dev +59k0aldzjxs85dam26f5nwdaljdpnpgz-ocaml4.14.2-hex-1.5.0 +xkhn08xn5cxvmnzkzs1xazkld2c4fnf4-ocaml4.14.2-http-6.0.0 +gblyqlhnvwq9jxi33yla7mfqsqq5jn3m-ocaml4.14.2-int_repr-0.15.0 +srk07h60b1yvgmh0z9b6s1xnrkxlzmvw-ocaml4.14.2-ipaddr-5.6.0 +783kqph1iva8j595k790iqrw31f7d3sh-ocaml4.14.2-ipaddr-sexp-5.6.0 +ngpqryv61ls3wmrlkjdk9z2ax9jxn1sr-ocaml4.14.2-jane-street-headers-0.15.0 +m3ngh13m0hq36s4qavdgwgxkwjan2c1j-ocaml4.14.2-js_of_ocaml-5.9.1 +4d2ici2in1jdflpi41sqawmy94x3wpvi-ocaml4.14.2-js_of_ocaml-compiler-5.9.1 +gid1bq8awaks84x65pj5q1nj580p35qg-ocaml4.14.2-jsonm-1.0.2 +qmdwgyz5jz4dd7c5ik61f2pbz5ynv5sk-ocaml4.14.2-kdf-1.0.0 +vz240c3m7fk9s1pr10zcj5d00mj0lg7s-ocaml4.14.2-lambda-term-3.3.2 +s4fps6zjg21gr89givmhh14vvpsq9km0-ocaml4.14.2-linenoise-1.5.1 +dhn7k9cwknijr7gjxb54pdng6wxqhma2-ocaml4.14.2-logs-0.7.0 +046sp7jkmkz2gp3cr2kp59590nmkmqh6-ocaml4.14.2-lwt-5.9.0 +0x907a6v0qsnd4ncbc7lbqq57w26d4xs-ocaml4.14.2-lwt_log-1.1.2 +20bj34jpk9y4qv18sg551w1gip44bsjc-ocaml4.14.2-lwt_ppx-2.1.0 +2lkzl5afxi5h511y3mcw9v0n81md200v-ocaml4.14.2-lwt_react-1.1.5 +r709k934pqn217rbh4lk3qzr84qc4nv6-ocaml4.14.2-lwt_ssl-1.2.0 +31lrcw5wv1vlc1n0rd2mc8fnw25js1gs-ocaml4.14.2-macaddr-5.6.0 +wdhq3rr8lzfj4h62500jdjman5a64fr8-ocaml4.14.2-magic-mime-1.3.1 +kcqwaxzgi4qygjjwb96vxgflm1j4yfi8-ocaml4.14.2-menhirLib-20240715 +ybvw3fxwnd0vjvpyql51vkn8s1sfh1lk-ocaml4.14.2-mew-0.1.0 +wq7yjhjcg8f03crbsw8ql9lfg38qvqqq-ocaml4.14.2-mew_vi-0.5.0 +q8zsmsfhzqyyhk5i25hxqq3kf10fyiyc-ocaml4.14.2-mirage-crypto-1.1.0 +bpqadm6li0k0df5iwsww7mqfy104g10k-ocaml4.14.2-mirage-crypto-ec-1.1.0 +wa9scqhs9651hklkk9wvghm9ffvwyxlf-ocaml4.14.2-mirage-crypto-pk-1.1.0 +45xxh76yh99s1sszc8mfx08chykhjg88-ocaml4.14.2-mirage-crypto-rng-1.1.0 +azy9c8alhnl0dnbm9x5cf0wnk2yxw77a-ocaml4.14.2-mlbdd-0.7.2 +ly0lyixzb18fkdw1sg7i3j85dvh7857s-ocaml4.14.2-mlbdd-0.7.2-dev +la0r8b3gl339by7fkkaph4hai8z4qw3x-ocaml4.14.2-mmap-1.1.0 +a0lyx291xv16mbjdkr6dyzpx0aa8vfsm-ocaml4.14.2-mtime-2.1.0 +mf4fsbgd9ilpj1mi0cibz3y362z490rq-ocaml4.14.2-num-1.1 +rkvx764nag4bdgk5gwxl6f57kzk874jf-ocaml4.14.2-ocaml-compiler-libs-0.12.4 +ia635z0r5s0g90yar4iaq14r378biids-ocaml4.14.2-ocamlbuild-0.15.0 +8x3xwywck0yz9mayv8cdj1d2kfqi3syz-ocaml4.14.2-ocamlgraph-2.1.0 +5r22kyys9pigck74hwp6q3b0s8i39hlj-ocaml4.14.2-ocplib-endian-1.2 +sbacrb9hnwakldgzcgs61nkvgcr9q266-ocaml4.14.2-ohex-0.2.0 +rw489zhrydlmva233kxpw5y1ymsi5lcc-ocaml4.14.2-ordering-3.17.2 +fbrjqd0ipcf5prcrqiialbm4xnkx51qc-ocaml4.14.2-ounit-2.2.7 +67ipdb7bzxm8jd5wf5fpc0vcnli82gjx-ocaml4.14.2-ounit2-2.2.7 +ff26l20gwckfrypw6cjidq17903n44v5-ocaml4.14.2-parsexp-0.15.0 +sa54v22k36y0l08jp3lhv8r3x41sa83w-ocaml4.14.2-pcre-7.4.6 +wzivnr5268anrzwl9zcilyincf30y8wf-ocaml4.14.2-piqi-0.6.16 +x6hrdfi7z0201risan838jrjrjb7f41g-ocaml4.14.2-piqi-ocaml-0.7.8 +swmk3a8h8s4jc7y034s8pqz1civnz4jr-ocaml4.14.2-pprint-20230830 +vwprk4grn7lxjz70pfpvdj3rs5rhawn2-ocaml4.14.2-ppx_assert-0.15.0 +vxcwbh3ipgil87imbi9pldwmx94rbx0y-ocaml4.14.2-ppx_bap-0.14 +s82f3rm7ganmnlpb43869bx8q7rx6c5w-ocaml4.14.2-ppx_base-0.15.0 +bb1isryn7sa6bjnabryznll3ynbw3gjn-ocaml4.14.2-ppx_bench-0.15.1 +aiygi5hxg29nry8hdjy82zwg4yf566ic-ocaml4.14.2-ppx_bin_prot-0.15.0 +pas0a62n083sf31d46ibhd5hg265s2x7-ocaml4.14.2-ppx_bitstring-4.1.1 +w0rd9hl97ir4i0rd3krk804b4damhbi4-ocaml4.14.2-ppx_cold-0.15.0 +alw86insj6x1r5smhb652qpxd500q10k-ocaml4.14.2-ppx_compare-0.15.0 +n3byp09zxr1asp96fac4cprgbn2g333r-ocaml4.14.2-ppx_custom_printf-0.15.0 +wlj4nafb8w9pngrrjx0wg6765i37sl8j-ocaml4.14.2-ppx_derivers-1.2.1 +apckl3qqgrdvhl4r576i30wqxah1bid9-ocaml4.14.2-ppx_disable_unused_warnings-0.15.0 +jqdw5lmsg3dx1r69ciy4b0fk2qmlpv67-ocaml4.14.2-ppx_enumerate-0.15.0 +0wmdlyll74yv8vwmk28q99c4kia2q0cv-ocaml4.14.2-ppx_expect-0.15.1 +y416krc3jmz07f2fhl716339l3cd44h0-ocaml4.14.2-ppx_fields_conv-0.15.0 +4d11i04smgaka7802kzjn0254nfps0r8-ocaml4.14.2-ppx_fixed_literal-0.15.0 +lc9avdp8p2xc3wpcpxdxdgdknhiqma2h-ocaml4.14.2-ppx_hash-0.15.0 +hjbzlhxrs2ys290qbq1mvrm02sa97936-ocaml4.14.2-ppx_here-0.15.0 +m0wna7lschyngcljgg6g8lpiwczk12y0-ocaml4.14.2-ppx_ignore_instrumentation-0.15.0 +lyx6f8bca90rakz6df88gxir63vlj45h-ocaml4.14.2-ppx_inline_test-0.15.1 +f8rzcjd89gylx3h0kf9ci510qfj4b5mb-ocaml4.14.2-ppx_jane-0.15.0 +vq5a7x4iz5hdsjs40hysir51db3ih2c6-ocaml4.14.2-ppx_let-0.15.0 +w4pjgwv3hzkl00b7r7vd7p5jf1k7r89q-ocaml4.14.2-ppx_log-0.15.0 +k96hkgrhh382sb2vbzvcdzzn1b046ncw-ocaml4.14.2-ppx_module_timer-0.15.0 +d2kfiazflkg7yjgaizpnc4jda8x8dfn5-ocaml4.14.2-ppx_optcomp-0.15.0 +mm4x5l5f5yrpr4gkc510i742w0vdl0fm-ocaml4.14.2-ppx_optional-0.15.0 +gqjhb09z0qnpn463ym0cmab01c1q7wg0-ocaml4.14.2-ppx_pipebang-0.15.0 +049ilyblbikmk0k863rv8jkb1phvzcpn-ocaml4.14.2-ppx_sexp_conv-0.15.1 +xwwbhiz6553nyg4mzbac6di86khsxj5y-ocaml4.14.2-ppx_sexp_conv-0.16.0 +1jm9kgfr8w4mq78rw8ywn8iw2k61nbx6-ocaml4.14.2-ppx_sexp_message-0.15.0 +ympbylrm1y7z72pjg9rmmbqpy6v3xj6a-ocaml4.14.2-ppx_sexp_value-0.15.0 +fx9c1czl0y6piz8pb1k9w3plqd0b9d8c-ocaml4.14.2-ppx_stable-0.15.0 +0f0r7zcsx7pgbnb928sv49zl69sgfv6w-ocaml4.14.2-ppx_string-0.15.0 +9ykalw6gwqnmsl7cm90ilzax55gn328f-ocaml4.14.2-ppx_typerep_conv-0.15.0 +8sgvi8hggr8sf6zh23yjbljyfr8ab9bi-ocaml4.14.2-ppx_variants_conv-0.15.0 +aqyjrb4p9q9a189lkb7r5fqxjjz1cli3-ocaml4.14.2-ppxlib-0.33.0 +p5x5h1w9kq1q0yhq324xpv2vvbpi6cz6-ocaml4.14.2-ppxlib-0.33.0 +p44sn6hdl9ph292w68vknanlp2ch6dh8-ocaml4.14.2-ptime-1.2.0 +22iqk0ccvhia0k0s83brp6nhvm29wmkk-ocaml4.14.2-re-1.12.0 +vywfi3v4ii9wcbmkfji4rdpwylb68261-ocaml4.14.2-result-1.5 +7g31vdkj65ck8d32h04kz8cynfs79ffz-ocaml4.14.2-ringo-1.1.0 +fbkw97yfas2xb2w54bsdhi4nsvdkkcdq-ocaml4.14.2-rresult-0.7.0 +g6c9x92xabifkq9g5b7h6ifbhvpw8qvh-ocaml4.14.2-sedlex-3.3 +k48kyfz0xsk54zczayf3xxxc4lwas7ws-ocaml4.14.2-sedlex-3.3 +cmpr0yp5yll9z2rja41a5grap87gdf9f-ocaml4.14.2-seq-0.1 +hsbxa1kj9h816vf53ir5gixqck10n2sj-ocaml4.14.2-sexplib-0.15.1 +7gasxv70s9qc8wnx404bk97a6f43cpw1-ocaml4.14.2-sexplib0-0.15.1 +19nj9l47i7ghs5wnr5wpi44604j9szmw-ocaml4.14.2-sexplib0-0.16.0 +hdmfsgj9l5ga523kkaydrh6892svcaml-ocaml4.14.2-splittable_random-0.15.0 +7f25gm79q2nr6i1vqd67byr3dbl9vjkr-ocaml4.14.2-ssl-0.7.0 +9fv32fd23icqa15sc97lncwk13fs3glg-ocaml4.14.2-stdio-0.15.0 +naln6188f4n1i30q211zq25k2rc1cyfj-ocaml4.14.2-stdio-0.16.0 +a21n17gmaha0fc16z42wv3hafv4j5kj4-ocaml4.14.2-stdlib-shims-0.3.0 +1vdmw90ax3fbys0pfs7dwhwq9hla6nji-ocaml4.14.2-stdune-3.17.2 +7dli0n990zbsslrinflj6cxx67siaxzy-ocaml4.14.2-stringext-1.6.0 +zw0fy9x09bkkxncfbigpy68w1jz0frs4-ocaml4.14.2-time_now-0.15.0 +5lx8fr5jddk0x5jnbs9pcz2ma4a4np9b-ocaml4.14.2-trie-1.0.0 +yv0dr9y8h75z55xizw7y7ai2bh887zf5-ocaml4.14.2-typerep-0.15.0 +6jmb0h13v4lv0izidsbvvcri9qxnn26k-ocaml4.14.2-uchar-0.0.2 +11d3ak1c3n93wy319c8gyxgvsi4zm2if-ocaml4.14.2-uri-4.4.0 +y0yv45kmkqd4g1gai1jv13jjqj3b4h1k-ocaml4.14.2-uri-sexp-4.4.0 +1g3qxlb7xgh49bdqqicyahc3rgj02g6x-ocaml4.14.2-utop-2.15.0 +qc3f6lgn947d57zgmynx2zi3wbgmllyl-ocaml4.14.2-uucp-16.0.0 +ik1m06bfd0d4m2v933x6hbsjw2xj5d7d-ocaml4.14.2-uuseg-16.0.0 +rxf89kfb960adjvj0z1qfk226l8m97zg-ocaml4.14.2-uutf-1.0.3 +8zqmx4iqcwfkjc3bf67ynbzsjsn97q3n-ocaml4.14.2-variantslib-0.15.0 +vp7v1jgl9jqhv4505k0w565lqxv08ia5-ocaml4.14.2-x509-1.0.5 +45zmgj8bwbzdl4mgg7bpjpqn2yfw8w9g-ocaml4.14.2-xdg-3.17.2 +4l9bszpnribqmc14h2ib4ias4kd8d7n6-ocaml4.14.2-xmlm-1.4.0 +amn7q38aavdx6s8x89hi29l9brpnv630-ocaml4.14.2-yojson-2.2.2 +8pgd4b451afgg1rlnwhgsy9jpnkml1vd-ocaml4.14.2-z3-4.13.4 +9q67sc1mlk9a363pciq9s2v408jd06jw-ocaml4.14.2-zarith-1.14 +s8d5nzf6kj4xnq13yi8h26mhbc7m4708-ocaml4.14.2-zed-3.2.3 +w44wmh2f82js8ywlw07d4wj1k3n1g0ga-ocurl-0.9.2 +f1nih7ybzfmpgspzp6ixfh9vibdbkygh-openssl-3.3.2 +6qfv77c88imjjhyljf989db3b63npxvy-openssl-3.3.2-bin +zgbn7c77c40zv9vaakvhynkjq8qnrn1y-openssl-3.3.2-dev +i1vfgwdn63hz1918b7z5nqn1sn9qzxbd-passwd +apqwjgbjj646wk2jkzr67l26djamn481-patch-2.7.6 +q84p4jvn5yalz937azdrfbyy32kl5s16-patch-shebangs.sh +f04zhapn8n8w6yrd35s8sd9qmjp8g9ry-patchelf-0.15.0 +06qfflhh92zg34dazbfs2ax4hbh4mvjx-pcre-8.45 +i1dckn3mb27jprfcvhrmrh4fcwah598n-pcre-8.45-bin +if8629d27vj6960xvdalw7z3370xcqpa-pcre-8.45-dev +xlxqgm56nx8b1b20lbk05pd0ndmg3jbn-pcre2-10.44 +9abl0v72kijy793n1l9vbgr556fiph59-protobuf-29.3 +cickvswrvann041nqxb0rxilc46svw1n-prune-libtool-files.sh +3wqqd0s4k0pq357q1sljz11iy6r7jd4r-publicsuffix-list-0-unstable-2025-01-16 +gzl581vkwymk2iys5zz6k1k1zdf03ba1-python3-3.11.11 +18fva62r0bngjifrqp1jd775src8mn4p-python3-3.11.11-env +0l539chjmcq5kdd43j6dgdjky4sjl7hl-python3-3.12.8 +bq3am8aqaiaf23jwm06x7z6nzwjaf2z4-python3.11-gtirb-2.2.0-unstable-2025-01-24 +3rhd55vmjh66dpcsvhi7hhgyq4pkibh3-python3.11-intervaltree-3.1.0 +vpn1f6vss9zz0qk33f39vnw7a9hcnsrn-python3.11-networkx-3.4.2 +v6vnnlcijak6d4jkyxvfmw2pi4dsmisi-python3.11-protobuf-5.29.3 +bks9i5700s6aba4mbd5c6jpwkhzq0m2b-python3.11-sortedcontainers-2.4.0 +gh5vhkl8i2l9cha2kn701fnjp0401syf-python3.11-typing-extensions-4.12.2 +awqs4f1vqa4z83rvngh58hncqhvafymm-python3.12-setuptools-75.8.0 +hnnmxmq0dypban4ygm9xbd5d033nvgs1-readline-8.2p13 +xyff06pkhki3qy1ls77w10s0v79c9il0-reproducible-builds.sh +z7k98578dfzi6l3hsvbivzm7hfqlk0zc-set-source-date-epoch-to-latest.sh +9m7r38a3vpl5vpg0311kjibizmbmr5zm-sigs.zip +vj1c3wf9c11a0qs6p3ymfvrnsdgsdcbq-source-stdenv.sh +m7i7mj48d03f9i43mnvkq9rg4ls24w68-sqlite-3.47.2 +dh9szsq14j2w2dx7pn219n27gwq7w3dn-stdenv-linux +pilsssjjdxvdphlg2h19p0bfx5q0jzkn-strip.sh +9bx2dwaq5z46s7x0gc9hzrk5paf67mks-tzdata-2025a +b9qv2l6dy15jy7pvarzjpn0yl33rdrbc-update-autotools-gnu-config-scripts-hook +0ps54dm25znnbawq8h4yfjf7yh3zbr5s-uuidm-0.9.9 +f9qijkp80215dih25df0az32ii31vg27-which-2.21 +v5h01qmqjbhj3ysrd1li9364fcnlap2k-xgcc-14-20241116-libgcc +s9qwscklmg3a6r5mda34f8iyrv8dmail-xz-5.6.3 +rrv4bd5i7rp2m7j8ix4kl8bzijhh8gd3-xz-5.6.3-bin +db4lp3digyd806f8r0c49708rpw8n0gs-z3-4.13.4 +n50hvsqx908x8igfjvn7zn39gjsgkrf6-z3-4.13.4-dev +9yasirs93rh3rj9ccnslz6d2gyw38hx3-z3-4.13.4-lib +wq4ixkj9nrv9wbqxykkw6bg4r6c5hfy2-z3-4.13.4-lib +hbb2jszhhm7wv3bg6q5ggydr9j81cnyr-z3-4.13.4-ocaml +jb442jir0a2x7zsk0d63xb6rh8p280ai-zlib-1.3.1 +wvz2wwp4pkm550i9a33yqwmzj4mkqbk4-zlib-1.3.1-dev +b2sdg3i6z4llcfmz1wm246hvjbns5ljk-zstd-1.5.6 +41ahrjgcrncfknqj1kzzhyqg2s7sagcm-zstd-1.5.6-bin +dlwar8yval6cqyln15p6i3flg268v22a-zstd-1.5.6-dev diff --git a/src/test/extraspec_correct/malloc_memcpy_strlen_memset_free/clang_O2/malloc_memcpy_strlen_memset_free.adt b/src/test/extraspec_correct/malloc_memcpy_strlen_memset_free/clang_O2/malloc_memcpy_strlen_memset_free.adt deleted file mode 100644 index 871b8bf48..000000000 --- a/src/test/extraspec_correct/malloc_memcpy_strlen_memset_free/clang_O2/malloc_memcpy_strlen_memset_free.adt +++ /dev/null @@ -1,740 +0,0 @@ -Project(Attrs([Attr("filename","\"a.out\""), -Attr("image-specification","(declare abi (name str))\n(declare arch (name str))\n(declare base-address (addr int))\n(declare bias (off int))\n(declare bits (size int))\n(declare code-region (addr int) (size int) (off int))\n(declare code-start (addr int))\n(declare entry-point (addr int))\n(declare external-reference (addr int) (name str))\n(declare format (name str))\n(declare is-executable (flag bool))\n(declare is-little-endian (flag bool))\n(declare llvm:base-address (addr int))\n(declare llvm:code-entry (name str) (off int) (size int))\n(declare llvm:coff-import-library (name str))\n(declare llvm:coff-virtual-section-header (name str) (addr int) (size int))\n(declare llvm:elf-program-header (name str) (off int) (size int))\n(declare llvm:elf-program-header-flags (name str) (ld bool) (r bool) \n (w bool) (x bool))\n(declare llvm:elf-virtual-program-header (name str) (addr int) (size int))\n(declare llvm:entry-point (addr int))\n(declare llvm:macho-symbol (name str) (value int))\n(declare llvm:name-reference (at int) (name str))\n(declare llvm:relocation (at int) (addr int))\n(declare llvm:section-entry (name str) (addr int) (size int) (off int))\n(declare llvm:section-flags (name str) (r bool) (w bool) (x bool))\n(declare llvm:segment-command (name str) (off int) (size int))\n(declare llvm:segment-command-flags (name str) (r bool) (w bool) (x bool))\n(declare llvm:symbol-entry (name str) (addr int) (size int) (off int)\n (value int))\n(declare llvm:virtual-segment-command (name str) (addr int) (size int))\n(declare mapped (addr int) (size int) (off int))\n(declare named-region (addr int) (size int) (name str))\n(declare named-symbol (addr int) (name str))\n(declare require (name str))\n(declare section (addr int) (size int))\n(declare segment (addr int) (size int) (r bool) (w bool) (x bool))\n(declare subarch (name str))\n(declare symbol-chunk (addr int) (size int) (root int))\n(declare symbol-value (addr int) (value int))\n(declare system (name str))\n(declare vendor (name str))\n\n(abi unknown)\n(arch aarch64)\n(base-address 0)\n(bias 0)\n(bits 64)\n(code-region 2392 20 2392)\n(code-region 1984 408 1984)\n(code-region 1776 192 1776)\n(code-region 1752 24 1752)\n(code-start 2036)\n(code-start 1984)\n(code-start 2260)\n(entry-point 1984)\n(external-reference 69568 _ITM_deregisterTMCloneTable)\n(external-reference 69576 __cxa_finalize)\n(external-reference 69584 __gmon_start__)\n(external-reference 69600 _ITM_registerTMCloneTable)\n(external-reference 69632 memcpy)\n(external-reference 69640 strlen)\n(external-reference 69648 __libc_start_main)\n(external-reference 69656 __cxa_finalize)\n(external-reference 69664 malloc)\n(external-reference 69672 memset)\n(external-reference 69680 __gmon_start__)\n(external-reference 69688 abort)\n(external-reference 69696 puts)\n(external-reference 69704 free)\n(format elf)\n(is-executable true)\n(is-little-endian true)\n(llvm:base-address 0)\n(llvm:code-entry free 0 0)\n(llvm:code-entry puts 0 0)\n(llvm:code-entry abort 0 0)\n(llvm:code-entry memset 0 0)\n(llvm:code-entry malloc 0 0)\n(llvm:code-entry __cxa_finalize 0 0)\n(llvm:code-entry __libc_start_main 0 0)\n(llvm:code-entry strlen 0 0)\n(llvm:code-entry memcpy 0 0)\n(llvm:code-entry _init 1752 0)\n(llvm:code-entry main 2260 132)\n(llvm:code-entry _start 1984 52)\n(llvm:code-entry free@GLIBC_2.17 0 0)\n(llvm:code-entry puts@GLIBC_2.17 0 0)\n(llvm:code-entry abort@GLIBC_2.17 0 0)\n(llvm:code-entry memset@GLIBC_2.17 0 0)\n(llvm:code-entry malloc@GLIBC_2.17 0 0)\n(llvm:code-entry _fini 2392 0)\n(llvm:code-entry __cxa_finalize@GLIBC_2.17 0 0)\n(llvm:code-entry __libc_start_main@GLIBC_2.34 0 0)\n(llvm:code-entry strlen@GLIBC_2.17 0 0)\n(llvm:code-entry memcpy@GLIBC_2.17 0 0)\n(llvm:code-entry frame_dummy 2256 0)\n(llvm:code-entry __do_global_dtors_aux 2176 0)\n(llvm:code-entry register_tm_clones 2112 0)\n(llvm:code-entry deregister_tm_clones 2064 0)\n(llvm:code-entry call_weak_fn 2036 20)\n(llvm:code-entry .fini 2392 20)\n(llvm:code-entry .text 1984 408)\n(llvm:code-entry .plt 1776 192)\n(llvm:code-entry .init 1752 24)\n(llvm:elf-program-header 08 3528 568)\n(llvm:elf-program-header 07 0 0)\n(llvm:elf-program-header 06 2416 60)\n(llvm:elf-program-header 05 596 68)\n(llvm:elf-program-header 04 3544 480)\n(llvm:elf-program-header 03 3528 676)\n(llvm:elf-program-header 02 0 2688)\n(llvm:elf-program-header 01 568 27)\n(llvm:elf-program-header 00 64 504)\n(llvm:elf-program-header-flags 08 false true false false)\n(llvm:elf-program-header-flags 07 false true true false)\n(llvm:elf-program-header-flags 06 false true false false)\n(llvm:elf-program-header-flags 05 false true false false)\n(llvm:elf-program-header-flags 04 false true true false)\n(llvm:elf-program-header-flags 03 true true true false)\n(llvm:elf-program-header-flags 02 true true false true)\n(llvm:elf-program-header-flags 01 false true false false)\n(llvm:elf-program-header-flags 00 false true false false)\n(llvm:elf-virtual-program-header 08 69064 568)\n(llvm:elf-virtual-program-header 07 0 0)\n(llvm:elf-virtual-program-header 06 2416 60)\n(llvm:elf-virtual-program-header 05 596 68)\n(llvm:elf-virtual-program-header 04 69080 480)\n(llvm:elf-virtual-program-header 03 69064 696)\n(llvm:elf-virtual-program-header 02 0 2688)\n(llvm:elf-virtual-program-header 01 568 27)\n(llvm:elf-virtual-program-header 00 64 504)\n(llvm:entry-point 1984)\n(llvm:name-reference 69704 free)\n(llvm:name-reference 69696 puts)\n(llvm:name-reference 69688 abort)\n(llvm:name-reference 69680 __gmon_start__)\n(llvm:name-reference 69672 memset)\n(llvm:name-reference 69664 malloc)\n(llvm:name-reference 69656 __cxa_finalize)\n(llvm:name-reference 69648 __libc_start_main)\n(llvm:name-reference 69640 strlen)\n(llvm:name-reference 69632 memcpy)\n(llvm:name-reference 69600 _ITM_registerTMCloneTable)\n(llvm:name-reference 69584 __gmon_start__)\n(llvm:name-reference 69576 __cxa_finalize)\n(llvm:name-reference 69568 _ITM_deregisterTMCloneTable)\n(llvm:section-entry .shstrtab 0 259 7372)\n(llvm:section-entry .strtab 0 716 6656)\n(llvm:section-entry .symtab 0 2376 4280)\n(llvm:section-entry .comment 0 71 4204)\n(llvm:section-entry .bss 69744 16 4204)\n(llvm:section-entry .data 69712 28 4176)\n(llvm:section-entry .got.plt 69608 104 4072)\n(llvm:section-entry .got 69560 48 4024)\n(llvm:section-entry .dynamic 69080 480 3544)\n(llvm:section-entry .fini_array 69072 8 3536)\n(llvm:section-entry .init_array 69064 8 3528)\n(llvm:section-entry .eh_frame 2480 208 2480)\n(llvm:section-entry .eh_frame_hdr 2416 60 2416)\n(llvm:section-entry .rodata 2412 4 2412)\n(llvm:section-entry .fini 2392 20 2392)\n(llvm:section-entry .text 1984 408 1984)\n(llvm:section-entry .plt 1776 192 1776)\n(llvm:section-entry .init 1752 24 1752)\n(llvm:section-entry .rela.plt 1512 240 1512)\n(llvm:section-entry .rela.dyn 1320 192 1320)\n(llvm:section-entry .gnu.version_r 1272 48 1272)\n(llvm:section-entry .gnu.version 1236 30 1236)\n(llvm:section-entry .dynstr 1056 179 1056)\n(llvm:section-entry .dynsym 696 360 696)\n(llvm:section-entry .gnu.hash 664 28 664)\n(llvm:section-entry .note.ABI-tag 632 32 632)\n(llvm:section-entry .note.gnu.build-id 596 36 596)\n(llvm:section-entry .interp 568 27 568)\n(llvm:section-flags .shstrtab true false false)\n(llvm:section-flags .strtab true false false)\n(llvm:section-flags .symtab true false false)\n(llvm:section-flags .comment true false false)\n(llvm:section-flags .bss true true false)\n(llvm:section-flags .data true true false)\n(llvm:section-flags .got.plt true true false)\n(llvm:section-flags .got true true false)\n(llvm:section-flags .dynamic true true false)\n(llvm:section-flags .fini_array true true false)\n(llvm:section-flags .init_array true true false)\n(llvm:section-flags .eh_frame true false false)\n(llvm:section-flags .eh_frame_hdr true false false)\n(llvm:section-flags .rodata true false false)\n(llvm:section-flags .fini true false true)\n(llvm:section-flags .text true false true)\n(llvm:section-flags .plt true false true)\n(llvm:section-flags .init true false true)\n(llvm:section-flags .rela.plt true false false)\n(llvm:section-flags .rela.dyn true false false)\n(llvm:section-flags .gnu.version_r true false false)\n(llvm:section-flags .gnu.version true false false)\n(llvm:section-flags .dynstr true false false)\n(llvm:section-flags .dynsym true false false)\n(llvm:section-flags .gnu.hash true false false)\n(llvm:section-flags .note.ABI-tag true false false)\n(llvm:section-flags .note.gnu.build-id true false false)\n(llvm:section-flags .interp true false false)\n(llvm:symbol-entry free 0 0 0 0)\n(llvm:symbol-entry puts 0 0 0 0)\n(llvm:symbol-entry abort 0 0 0 0)\n(llvm:symbol-entry memset 0 0 0 0)\n(llvm:symbol-entry malloc 0 0 0 0)\n(llvm:symbol-entry __cxa_finalize 0 0 0 0)\n(llvm:symbol-entry __libc_start_main 0 0 0 0)\n(llvm:symbol-entry strlen 0 0 0 0)\n(llvm:symbol-entry memcpy 0 0 0 0)\n(llvm:symbol-entry _init 1752 0 1752 1752)\n(llvm:symbol-entry main 2260 132 2260 2260)\n(llvm:symbol-entry _start 1984 52 1984 1984)\n(llvm:symbol-entry free@GLIBC_2.17 0 0 0 0)\n(llvm:symbol-entry puts@GLIBC_2.17 0 0 0 0)\n(llvm:symbol-entry abort@GLIBC_2.17 0 0 0 0)\n(llvm:symbol-entry memset@GLIBC_2.17 0 0 0 0)\n(llvm:symbol-entry malloc@GLIBC_2.17 0 0 0 0)\n(llvm:symbol-entry _fini 2392 0 2392 2392)\n(llvm:symbol-entry __cxa_finalize@GLIBC_2.17 0 0 0 0)\n(llvm:symbol-entry __libc_start_main@GLIBC_2.34 0 0 0 0)\n(llvm:symbol-entry strlen@GLIBC_2.17 0 0 0 0)\n(llvm:symbol-entry memcpy@GLIBC_2.17 0 0 0 0)\n(llvm:symbol-entry frame_dummy 2256 0 2256 2256)\n(llvm:symbol-entry __do_global_dtors_aux 2176 0 2176 2176)\n(llvm:symbol-entry register_tm_clones 2112 0 2112 2112)\n(llvm:symbol-entry deregister_tm_clones 2064 0 2064 2064)\n(llvm:symbol-entry call_weak_fn 2036 20 2036 2036)\n(mapped 0 2688 0)\n(mapped 69064 676 3528)\n(named-region 0 2688 02)\n(named-region 69064 696 03)\n(named-region 568 27 .interp)\n(named-region 596 36 .note.gnu.build-id)\n(named-region 632 32 .note.ABI-tag)\n(named-region 664 28 .gnu.hash)\n(named-region 696 360 .dynsym)\n(named-region 1056 179 .dynstr)\n(named-region 1236 30 .gnu.version)\n(named-region 1272 48 .gnu.version_r)\n(named-region 1320 192 .rela.dyn)\n(named-region 1512 240 .rela.plt)\n(named-region 1752 24 .init)\n(named-region 1776 192 .plt)\n(named-region 1984 408 .text)\n(named-region 2392 20 .fini)\n(named-region 2412 4 .rodata)\n(named-region 2416 60 .eh_frame_hdr)\n(named-region 2480 208 .eh_frame)\n(named-region 69064 8 .init_array)\n(named-region 69072 8 .fini_array)\n(named-region 69080 480 .dynamic)\n(named-region 69560 48 .got)\n(named-region 69608 104 .got.plt)\n(named-region 69712 28 .data)\n(named-region 69744 16 .bss)\n(named-region 0 71 .comment)\n(named-region 0 2376 .symtab)\n(named-region 0 716 .strtab)\n(named-region 0 259 .shstrtab)\n(named-symbol 2036 call_weak_fn)\n(named-symbol 2064 deregister_tm_clones)\n(named-symbol 2112 register_tm_clones)\n(named-symbol 2176 __do_global_dtors_aux)\n(named-symbol 2256 frame_dummy)\n(named-symbol 0 memcpy@GLIBC_2.17)\n(named-symbol 0 strlen@GLIBC_2.17)\n(named-symbol 0 __libc_start_main@GLIBC_2.34)\n(named-symbol 0 __cxa_finalize@GLIBC_2.17)\n(named-symbol 2392 _fini)\n(named-symbol 0 malloc@GLIBC_2.17)\n(named-symbol 0 memset@GLIBC_2.17)\n(named-symbol 0 abort@GLIBC_2.17)\n(named-symbol 0 puts@GLIBC_2.17)\n(named-symbol 0 free@GLIBC_2.17)\n(named-symbol 1984 _start)\n(named-symbol 2260 main)\n(named-symbol 1752 _init)\n(named-symbol 0 memcpy)\n(named-symbol 0 strlen)\n(named-symbol 0 __libc_start_main)\n(named-symbol 0 __cxa_finalize)\n(named-symbol 0 malloc)\n(named-symbol 0 memset)\n(named-symbol 0 abort)\n(named-symbol 0 puts)\n(named-symbol 0 free)\n(require libc.so.6)\n(section 568 27)\n(section 596 36)\n(section 632 32)\n(section 664 28)\n(section 696 360)\n(section 1056 179)\n(section 1236 30)\n(section 1272 48)\n(section 1320 192)\n(section 1512 240)\n(section 1752 24)\n(section 1776 192)\n(section 1984 408)\n(section 2392 20)\n(section 2412 4)\n(section 2416 60)\n(section 2480 208)\n(section 69064 8)\n(section 69072 8)\n(section 69080 480)\n(section 69560 48)\n(section 69608 104)\n(section 69712 28)\n(section 69744 16)\n(section 0 71)\n(section 0 2376)\n(section 0 716)\n(section 0 259)\n(segment 0 2688 true false true)\n(segment 69064 696 true true false)\n(subarch v8)\n(symbol-chunk 2036 20 2036)\n(symbol-chunk 1984 52 1984)\n(symbol-chunk 2260 132 2260)\n(symbol-value 2036 2036)\n(symbol-value 2064 2064)\n(symbol-value 2112 2112)\n(symbol-value 2176 2176)\n(symbol-value 2256 2256)\n(symbol-value 2392 2392)\n(symbol-value 1984 1984)\n(symbol-value 2260 2260)\n(symbol-value 1752 1752)\n(symbol-value 0 0)\n(system \"\")\n(vendor \"\")\n"), -Attr("abi-name","\"aarch64-linux-gnu-elf\"")]), -Sections([Section(".shstrtab", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\xc0\x07\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xd0\x1d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x38\x00\x09\x00\x40\x00\x1d\x00\x1c\x00\x06\x00\x00\x00\x04\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x04\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x80\x0a\x00\x00\x00\x00\x00\x00\x80\x0a\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x01\x00\x00\x00\x06\x00\x00\x00\xc8\x0d\x00\x00\x00\x00\x00\x00\xc8\x0d\x01\x00\x00\x00\x00\x00\xc8\x0d\x01"), -Section(".strtab", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\xc0\x07\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xd0\x1d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x38\x00\x09\x00\x40\x00\x1d\x00\x1c\x00\x06\x00\x00\x00\x04\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x04\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x80\x0a\x00\x00\x00\x00\x00\x00\x80\x0a\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x01\x00\x00\x00\x06\x00\x00\x00\xc8\x0d\x00\x00\x00\x00\x00\x00\xc8\x0d\x01\x00\x00\x00\x00\x00\xc8\x0d\x01\x00\x00\x00\x00\x00\xa4\x02\x00\x00\x00\x00\x00\x00\xb8\x02\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x02\x00\x00\x00\x06\x00\x00\x00\xd8\x0d\x00\x00\x00\x00\x00\x00\xd8\x0d\x01\x00\x00\x00\x00\x00\xd8\x0d\x01\x00\x00\x00\x00\x00\xe0\x01\x00\x00\x00\x00\x00\x00\xe0\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x04\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x50\xe5\x74\x64\x04\x00\x00\x00\x70\x09\x00\x00\x00\x00\x00\x00\x70\x09\x00\x00\x00\x00\x00\x00\x70\x09\x00\x00\x00\x00\x00\x00\x3c\x00\x00\x00\x00\x00\x00\x00\x3c\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x51\xe5\x74\x64\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x52\xe5\x74\x64\x04\x00\x00\x00\xc8\x0d\x00\x00\x00\x00\x00\x00\xc8\x0d\x01\x00\x00\x00\x00\x00\xc8\x0d\x01\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x2f\x6c\x69\x62\x2f\x6c\x64\x2d\x6c\x69\x6e\x75\x78\x2d\x61\x61\x72\x63\x68\x36\x34\x2e\x73\x6f\x2e\x31\x00\x00\x04\x00\x00\x00\x14\x00\x00\x00\x03\x00\x00\x00\x47\x4e\x55\x00\x53\x4a\xae\x3f\x6c\xa8\x75\x30\x7f\xdf\x14\x2e\xcb\x12\x2c\xb3\x12\x37\x32\x2b\x04\x00\x00\x00\x10\x00\x00\x00\x01\x00\x00\x00\x47\x4e\x55\x00\x00\x00\x00\x00\x03\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x01\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".symtab", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\xc0\x07\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xd0\x1d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x38\x00\x09\x00\x40\x00\x1d\x00\x1c\x00\x06\x00\x00\x00\x04\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x04\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x80\x0a\x00\x00\x00\x00\x00\x00\x80\x0a\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x01\x00\x00\x00\x06\x00\x00\x00\xc8\x0d\x00\x00\x00\x00\x00\x00\xc8\x0d\x01\x00\x00\x00\x00\x00\xc8\x0d\x01\x00\x00\x00\x00\x00\xa4\x02\x00\x00\x00\x00\x00\x00\xb8\x02\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x02\x00\x00\x00\x06\x00\x00\x00\xd8\x0d\x00\x00\x00\x00\x00\x00\xd8\x0d\x01\x00\x00\x00\x00\x00\xd8\x0d\x01\x00\x00\x00\x00\x00\xe0\x01\x00\x00\x00\x00\x00\x00\xe0\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x04\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x50\xe5\x74\x64\x04\x00\x00\x00\x70\x09\x00\x00\x00\x00\x00\x00\x70\x09\x00\x00\x00\x00\x00\x00\x70\x09\x00\x00\x00\x00\x00\x00\x3c\x00\x00\x00\x00\x00\x00\x00\x3c\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x51\xe5\x74\x64\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x52\xe5\x74\x64\x04\x00\x00\x00\xc8\x0d\x00\x00\x00\x00\x00\x00\xc8\x0d\x01\x00\x00\x00\x00\x00\xc8\x0d\x01\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x2f\x6c\x69\x62\x2f\x6c\x64\x2d\x6c\x69\x6e\x75\x78\x2d\x61\x61\x72\x63\x68\x36\x34\x2e\x73\x6f\x2e\x31\x00\x00\x04\x00\x00\x00\x14\x00\x00\x00\x03\x00\x00\x00\x47\x4e\x55\x00\x53\x4a\xae\x3f\x6c\xa8\x75\x30\x7f\xdf\x14\x2e\xcb\x12\x2c\xb3\x12\x37\x32\x2b\x04\x00\x00\x00\x10\x00\x00\x00\x01\x00\x00\x00\x47\x4e\x55\x00\x00\x00\x00\x00\x03\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x01\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x0b\x00\xd8\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x17\x00\x50\x10\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x47\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x3a\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x17\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6e\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x22\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x29\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x8a\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x41\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x30\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x35\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x99\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5f\x5f\x63\x78\x61\x5f\x66\x69\x6e\x61\x6c\x69\x7a\x65\x00\x6d\x61\x6c\x6c\x6f\x63\x00\x5f\x5f\x6c\x69\x62\x63\x5f\x73\x74\x61\x72\x74\x5f\x6d\x61\x69\x6e\x00\x6d\x65\x6d\x73\x65\x74\x00\x70\x75\x74\x73\x00\x66\x72\x65\x65\x00\x73\x74\x72\x6c\x65\x6e\x00\x61\x62\x6f\x72\x74\x00\x6d\x65\x6d\x63\x70\x79\x00\x6c\x69\x62\x63\x2e\x73\x6f\x2e\x36\x00\x47\x4c\x49\x42\x43\x5f\x32\x2e\x33\x34\x00\x47\x4c\x49\x42\x43\x5f\x32\x2e\x31\x37\x00\x5f\x49\x54\x4d\x5f\x64\x65\x72\x65\x67\x69\x73\x74\x65\x72\x54\x4d\x43\x6c\x6f\x6e\x65\x54\x61\x62\x6c\x65\x00\x5f\x5f\x67\x6d\x6f\x6e\x5f\x73\x74\x61\x72\x74\x5f\x5f\x00\x5f\x49\x54\x4d\x5f\x72\x65\x67\x69\x73\x74\x65\x72\x54\x4d\x43\x6c\x6f\x6e\x65\x54\x61\x62\x6c\x65\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x02\x00\x03\x00\x01\x00\x02\x00\x02\x00\x02\x00\x01\x00\x02\x00\x02\x00\x02\x00\x01\x00\x00\x00\x00\x00\x00\x00\x01\x00\x02\x00\x4e\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\xb4\x91\x96\x06\x00\x00\x03\x00\x58\x00\x00\x00\x10\x00\x00\x00\x97\x91\x96\x06\x00\x00\x02\x00\x63\x00\x00\x00\x00\x00\x00\x00\xc8\x0d\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\xd0\x08\x00\x00\x00\x00\x00\x00\xd0\x0d\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x80\x08\x00\x00\x00\x00\x00\x00\xd8\x0f\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\xd4\x08\x00\x00\x00\x00\x00\x00\x58\x10\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x58\x10\x01\x00\x00\x00\x00\x00\xc0\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xc8\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xd0\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x0a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe0\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x0e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x08\x10\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x10\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x18\x10\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x20\x10\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x28\x10\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x09\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x30\x10\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x0a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x38\x10\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x0b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x10\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x0c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x48\x10\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x0d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1f\x20\x03\xd5\xfd\x7b\xbf\xa9\xfd\x03\x00\x91\x44\x00\x00\x94\xfd\x7b\xc1\xa8\xc0\x03\x5f\xd6\xf0\x7b\xbf\xa9\x90\x00\x00\x90\x11\xfe\x47\xf9\x10\xe2\x3f\x91\x20\x02\x1f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x90\x00\x00\xb0\x11\x02\x40\xf9\x10\x02\x00\x91\x20\x02\x1f\xd6\x90\x00\x00\xb0\x11\x06\x40\xf9\x10\x22\x00\x91\x20\x02\x1f\xd6\x90\x00\x00\xb0\x11\x0a\x40\xf9\x10\x42\x00\x91\x20\x02\x1f\xd6\x90\x00\x00\xb0\x11\x0e\x40\xf9\x10\x62\x00\x91\x20\x02\x1f\xd6\x90\x00\x00\xb0\x11\x12\x40\xf9\x10\x82\x00\x91\x20\x02\x1f\xd6\x90\x00\x00\xb0\x11\x16\x40\xf9\x10\xa2\x00\x91\x20\x02\x1f\xd6\x90\x00\x00\xb0\x11\x1a\x40\xf9\x10\xc2\x00\x91\x20\x02\x1f\xd6\x90\x00\x00\xb0\x11\x1e\x40\xf9\x10\xe2\x00\x91\x20\x02\x1f\xd6\x90\x00\x00\xb0\x11\x22\x40\xf9\x10\x02\x01\x91\x20\x02\x1f\xd6\x90\x00\x00\xb0\x11\x26\x40\xf9\x10\x22\x01\x91\x20\x02\x1f\xd6\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1f\x20\x03\xd5\x1d\x00\x80\xd2\x1e\x00\x80\xd2\xe5\x03\x00\xaa\xe1\x03\x40\xf9\xe2\x23\x00\x91\xe6\x03\x00\x91\x80\x00\x00\x90\x00\xec\x47\xf9\x03\x00\x80\xd2\x04\x00\x80\xd2\xd1\xff\xff\x97\xe4\xff\xff\x97\x80\x00\x00\x90\x00\xe8\x47\xf9\x40\x00\x00\xb4\xdc\xff\xff\x17\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x80\x00\x00\xb0\x00\xc0\x01\x91\x81\x00\x00\xb0\x21\xc0\x01\x91\x3f\x00\x00\xeb\xc0\x00\x00\x54\x81\x00\x00\x90\x21\xe0\x47\xf9\x61\x00\x00\xb4\xf0\x03\x01\xaa\x00\x02\x1f\xd6\xc0\x03\x5f\xd6\x80\x00\x00\xb0\x00\xc0\x01\x91\x81\x00\x00\xb0\x21\xc0\x01\x91\x21\x00\x00\xcb\x22\xfc\x7f\xd3\x41\x0c\x81\x8b\x21\xfc\x41\x93\xc1\x00\x00\xb4\x82\x00\x00\x90\x42\xf0\x47\xf9\x62\x00\x00\xb4\xf0\x03\x02\xaa\x00\x02\x1f\xd6\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\xfd\x7b\xbe\xa9\xfd\x03\x00\x91\xf3\x0b\x00\xf9\x93\x00\x00\xb0\x60\xc2\x41\x39\x40\x01\x00\x35\x80\x00\x00\x90\x00\xe4\x47\xf9\x80\x00\x00\xb4\x80\x00\x00\xb0\x00\x2c\x40\xf9\xa5\xff\xff\x97\xd8\xff\xff\x97\x20\x00\x80\x52\x60\xc2\x01\x39\xf3\x0b\x40\xf9\xfd\x7b\xc2\xa8\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\xdc\xff\xff\x17\xfd\x7b\xbd\xa9\xf5\x0b\x00\xf9\xf4\x4f\x02\xa9\xfd\x03\x00\x91\x60\x01\x80\x52\x9a\xff\xff\x97\x95\x00\x00\xb0\x94\x00\x00\xb0\x94\x86\x01\x91\xf3\x03\x00\xaa\xa0\x3e\x00\xf9\xe0\x03\x14\xaa\x87\xff\xff\x97\xe2\x03\x00\xaa\xe0\x03\x13\xaa\xe1\x03\x14\xaa\x7f\xff\xff\x97\xe0\x03\x13\xaa\x9d\xff\xff\x97\xb3\x3e\x40\xf9\xe0\x03\x13\xaa\x7e\xff\xff\x97\xe2\x03\x00\xaa\xe0\x03\x13\xaa\x21\x00\x80\x52\x8a\xff\xff\x97\xa0\x3e\x40\xf9\x98\xff\xff\x97\xe0\x03\x1f\x2a"), -Section(".comment", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\xc0\x07\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xd0\x1d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x38\x00\x09\x00\x40\x00\x1d\x00\x1c\x00\x06\x00\x00\x00\x04\x00\x00"), -Section(".interp", 0x238, "\x2f\x6c\x69\x62\x2f\x6c\x64\x2d\x6c\x69\x6e\x75\x78\x2d\x61\x61\x72\x63\x68\x36\x34\x2e\x73\x6f\x2e\x31\x00"), -Section(".note.gnu.build-id", 0x254, "\x04\x00\x00\x00\x14\x00\x00\x00\x03\x00\x00\x00\x47\x4e\x55\x00\x53\x4a\xae\x3f\x6c\xa8\x75\x30\x7f\xdf\x14\x2e\xcb\x12\x2c\xb3\x12\x37\x32\x2b"), -Section(".note.ABI-tag", 0x278, "\x04\x00\x00\x00\x10\x00\x00\x00\x01\x00\x00\x00\x47\x4e\x55\x00\x00\x00\x00\x00\x03\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00"), -Section(".gnu.hash", 0x298, "\x01\x00\x00\x00\x01\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".dynsym", 0x2B8, "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x0b\x00\xd8\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x17\x00\x50\x10\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x47\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x3a\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x17\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6e\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x22\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x29\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x8a\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x41\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x30\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x35\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x99\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".dynstr", 0x420, "\x00\x5f\x5f\x63\x78\x61\x5f\x66\x69\x6e\x61\x6c\x69\x7a\x65\x00\x6d\x61\x6c\x6c\x6f\x63\x00\x5f\x5f\x6c\x69\x62\x63\x5f\x73\x74\x61\x72\x74\x5f\x6d\x61\x69\x6e\x00\x6d\x65\x6d\x73\x65\x74\x00\x70\x75\x74\x73\x00\x66\x72\x65\x65\x00\x73\x74\x72\x6c\x65\x6e\x00\x61\x62\x6f\x72\x74\x00\x6d\x65\x6d\x63\x70\x79\x00\x6c\x69\x62\x63\x2e\x73\x6f\x2e\x36\x00\x47\x4c\x49\x42\x43\x5f\x32\x2e\x33\x34\x00\x47\x4c\x49\x42\x43\x5f\x32\x2e\x31\x37\x00\x5f\x49\x54\x4d\x5f\x64\x65\x72\x65\x67\x69\x73\x74\x65\x72\x54\x4d\x43\x6c\x6f\x6e\x65\x54\x61\x62\x6c\x65\x00\x5f\x5f\x67\x6d\x6f\x6e\x5f\x73\x74\x61\x72\x74\x5f\x5f\x00\x5f\x49\x54\x4d\x5f\x72\x65\x67\x69\x73\x74\x65\x72\x54\x4d\x43\x6c\x6f\x6e\x65\x54\x61\x62\x6c\x65\x00"), -Section(".gnu.version", 0x4D4, "\x00\x00\x00\x00\x00\x00\x02\x00\x02\x00\x03\x00\x01\x00\x02\x00\x02\x00\x02\x00\x01\x00\x02\x00\x02\x00\x02\x00\x01\x00"), -Section(".gnu.version_r", 0x4F8, "\x01\x00\x02\x00\x4e\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\xb4\x91\x96\x06\x00\x00\x03\x00\x58\x00\x00\x00\x10\x00\x00\x00\x97\x91\x96\x06\x00\x00\x02\x00\x63\x00\x00\x00\x00\x00\x00\x00"), -Section(".rela.dyn", 0x528, "\xc8\x0d\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\xd0\x08\x00\x00\x00\x00\x00\x00\xd0\x0d\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x80\x08\x00\x00\x00\x00\x00\x00\xd8\x0f\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\xd4\x08\x00\x00\x00\x00\x00\x00\x58\x10\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x58\x10\x01\x00\x00\x00\x00\x00\xc0\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xc8\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xd0\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x0a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe0\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x0e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".rela.plt", 0x5E8, "\x00\x10\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x08\x10\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x10\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x18\x10\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x20\x10\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x28\x10\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x09\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x30\x10\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x0a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x38\x10\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x0b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x10\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x0c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x48\x10\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x0d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".init", 0x6D8, "\x1f\x20\x03\xd5\xfd\x7b\xbf\xa9\xfd\x03\x00\x91\x44\x00\x00\x94\xfd\x7b\xc1\xa8\xc0\x03\x5f\xd6"), -Section(".plt", 0x6F0, "\xf0\x7b\xbf\xa9\x90\x00\x00\x90\x11\xfe\x47\xf9\x10\xe2\x3f\x91\x20\x02\x1f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x90\x00\x00\xb0\x11\x02\x40\xf9\x10\x02\x00\x91\x20\x02\x1f\xd6\x90\x00\x00\xb0\x11\x06\x40\xf9\x10\x22\x00\x91\x20\x02\x1f\xd6\x90\x00\x00\xb0\x11\x0a\x40\xf9\x10\x42\x00\x91\x20\x02\x1f\xd6\x90\x00\x00\xb0\x11\x0e\x40\xf9\x10\x62\x00\x91\x20\x02\x1f\xd6\x90\x00\x00\xb0\x11\x12\x40\xf9\x10\x82\x00\x91\x20\x02\x1f\xd6\x90\x00\x00\xb0\x11\x16\x40\xf9\x10\xa2\x00\x91\x20\x02\x1f\xd6\x90\x00\x00\xb0\x11\x1a\x40\xf9\x10\xc2\x00\x91\x20\x02\x1f\xd6\x90\x00\x00\xb0\x11\x1e\x40\xf9\x10\xe2\x00\x91\x20\x02\x1f\xd6\x90\x00\x00\xb0\x11\x22\x40\xf9\x10\x02\x01\x91\x20\x02\x1f\xd6\x90\x00\x00\xb0\x11\x26\x40\xf9\x10\x22\x01\x91\x20\x02\x1f\xd6"), -Section(".fini", 0x958, "\x1f\x20\x03\xd5\xfd\x7b\xbf\xa9\xfd\x03\x00\x91\xfd\x7b\xc1\xa8\xc0\x03\x5f\xd6"), -Section(".rodata", 0x96C, "\x01\x00\x02\x00"), -Section(".eh_frame_hdr", 0x970, "\x01\x1b\x03\x3b\x3c\x00\x00\x00\x06\x00\x00\x00\x50\xfe\xff\xff\x54\x00\x00\x00\xa0\xfe\xff\xff\x68\x00\x00\x00\xd0\xfe\xff\xff\x7c\x00\x00\x00\x10\xff\xff\xff\x90\x00\x00\x00\x60\xff\xff\xff\xb4\x00\x00\x00\x64\xff\xff\xff\xdc\x00\x00\x00"), -Section(".eh_frame", 0x9B0, "\x10\x00\x00\x00\x00\x00\x00\x00\x01\x7a\x52\x00\x04\x78\x1e\x01\x1b\x0c\x1f\x00\x10\x00\x00\x00\x18\x00\x00\x00\xf4\xfd\xff\xff\x34\x00\x00\x00\x00\x41\x07\x1e\x10\x00\x00\x00\x2c\x00\x00\x00\x30\xfe\xff\xff\x30\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x40\x00\x00\x00\x4c\xfe\xff\xff\x3c\x00\x00\x00\x00\x00\x00\x00\x20\x00\x00\x00\x54\x00\x00\x00\x78\xfe\xff\xff\x48\x00\x00\x00\x00\x41\x0e\x20\x9d\x04\x9e\x03\x42\x93\x02\x4e\xde\xdd\xd3\x0e\x00\x00\x00\x00\x10\x00\x00\x00\x78\x00\x00\x00\xa4\xfe\xff\xff\x04\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x01\x7a\x52\x00\x01\x7c\x1e\x01\x1b\x0c\x1f\x00\x2c\x00\x00\x00\x18\x00\x00\x00\x80\xfe\xff\xff\x84\x00\x00\x00\x00\x44\x0e\x30\x4c\x0c\x1d\x30\x93\x02\x94\x04\x95\x08\x9e\x0a\x9d\x0c\x02\x64\x0c\x1f\x30\x4c\x0e\x00\xd3\xd4\xd5\xde\xdd\x00\x00\x00\x00\x00"), -Section(".fini_array", 0x10DD0, "\x80\x08\x00\x00\x00\x00\x00\x00"), -Section(".dynamic", 0x10DD8, "\x01\x00\x00\x00\x00\x00\x00\x00\x4e\x00\x00\x00\x00\x00\x00\x00\x0c\x00\x00\x00\x00\x00\x00\x00\xd8\x06\x00\x00\x00\x00\x00\x00\x0d\x00\x00\x00\x00\x00\x00\x00\x58\x09\x00\x00\x00\x00\x00\x00\x19\x00\x00\x00\x00\x00\x00\x00\xc8\x0d\x01\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x1a\x00\x00\x00\x00\x00\x00\x00\xd0\x0d\x01\x00\x00\x00\x00\x00\x1c\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\xf5\xfe\xff\x6f\x00\x00\x00\x00\x98\x02\x00\x00\x00\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x20\x04\x00\x00\x00\x00\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\xb8\x02\x00\x00\x00\x00\x00\x00\x0a\x00\x00\x00\x00\x00\x00\x00\xb3\x00\x00\x00\x00\x00\x00\x00\x0b\x00\x00\x00\x00\x00\x00\x00\x18\x00\x00\x00\x00\x00\x00\x00\x15\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\xe8\x0f\x01\x00\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\xf0\x00\x00\x00\x00\x00\x00\x00\x14\x00\x00\x00\x00\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x17\x00\x00\x00\x00\x00\x00\x00\xe8\x05\x00\x00\x00\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x28\x05\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\xc0\x00\x00\x00\x00\x00\x00\x00\x09\x00\x00\x00\x00\x00\x00\x00\x18\x00\x00\x00\x00\x00\x00\x00\xfb\xff\xff\x6f\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\xfe\xff\xff\x6f\x00\x00\x00\x00\xf8\x04\x00\x00\x00\x00\x00\x00\xff\xff\xff\x6f\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\xf0\xff\xff\x6f\x00\x00\x00\x00\xd4\x04\x00\x00\x00\x00\x00\x00\xf9\xff\xff\x6f\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".init_array", 0x10DC8, "\xd0\x08\x00\x00\x00\x00\x00\x00"), -Section(".got", 0x10FB8, "\xd8\x0d\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xd4\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".got.plt", 0x10FE8, "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xf0\x06\x00\x00\x00\x00\x00\x00\xf0\x06\x00\x00\x00\x00\x00\x00\xf0\x06\x00\x00\x00\x00\x00\x00\xf0\x06\x00\x00\x00\x00\x00\x00\xf0\x06\x00\x00\x00\x00\x00\x00\xf0\x06\x00\x00\x00\x00\x00\x00\xf0\x06\x00\x00\x00\x00\x00\x00\xf0\x06\x00\x00\x00\x00\x00\x00\xf0\x06\x00\x00\x00\x00\x00\x00\xf0\x06\x00\x00\x00\x00\x00\x00"), -Section(".data", 0x11050, "\x00\x00\x00\x00\x00\x00\x00\x00\x58\x10\x01\x00\x00\x00\x00\x00\x07\x75\x73\x65\x72\x3a\x70\x61\x73\x73\x00\x00"), -Section(".text", 0x7C0, "\x1f\x20\x03\xd5\x1d\x00\x80\xd2\x1e\x00\x80\xd2\xe5\x03\x00\xaa\xe1\x03\x40\xf9\xe2\x23\x00\x91\xe6\x03\x00\x91\x80\x00\x00\x90\x00\xec\x47\xf9\x03\x00\x80\xd2\x04\x00\x80\xd2\xd1\xff\xff\x97\xe4\xff\xff\x97\x80\x00\x00\x90\x00\xe8\x47\xf9\x40\x00\x00\xb4\xdc\xff\xff\x17\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x80\x00\x00\xb0\x00\xc0\x01\x91\x81\x00\x00\xb0\x21\xc0\x01\x91\x3f\x00\x00\xeb\xc0\x00\x00\x54\x81\x00\x00\x90\x21\xe0\x47\xf9\x61\x00\x00\xb4\xf0\x03\x01\xaa\x00\x02\x1f\xd6\xc0\x03\x5f\xd6\x80\x00\x00\xb0\x00\xc0\x01\x91\x81\x00\x00\xb0\x21\xc0\x01\x91\x21\x00\x00\xcb\x22\xfc\x7f\xd3\x41\x0c\x81\x8b\x21\xfc\x41\x93\xc1\x00\x00\xb4\x82\x00\x00\x90\x42\xf0\x47\xf9\x62\x00\x00\xb4\xf0\x03\x02\xaa\x00\x02\x1f\xd6\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\xfd\x7b\xbe\xa9\xfd\x03\x00\x91\xf3\x0b\x00\xf9\x93\x00\x00\xb0\x60\xc2\x41\x39\x40\x01\x00\x35\x80\x00\x00\x90\x00\xe4\x47\xf9\x80\x00\x00\xb4\x80\x00\x00\xb0\x00\x2c\x40\xf9\xa5\xff\xff\x97\xd8\xff\xff\x97\x20\x00\x80\x52\x60\xc2\x01\x39\xf3\x0b\x40\xf9\xfd\x7b\xc2\xa8\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\xdc\xff\xff\x17\xfd\x7b\xbd\xa9\xf5\x0b\x00\xf9\xf4\x4f\x02\xa9\xfd\x03\x00\x91\x60\x01\x80\x52\x9a\xff\xff\x97\x95\x00\x00\xb0\x94\x00\x00\xb0\x94\x86\x01\x91\xf3\x03\x00\xaa\xa0\x3e\x00\xf9\xe0\x03\x14\xaa\x87\xff\xff\x97\xe2\x03\x00\xaa\xe0\x03\x13\xaa\xe1\x03\x14\xaa\x7f\xff\xff\x97\xe0\x03\x13\xaa\x9d\xff\xff\x97\xb3\x3e\x40\xf9\xe0\x03\x13\xaa\x7e\xff\xff\x97\xe2\x03\x00\xaa\xe0\x03\x13\xaa\x21\x00\x80\x52\x8a\xff\xff\x97\xa0\x3e\x40\xf9\x98\xff\xff\x97\xe0\x03\x1f\x2a\xf4\x4f\x42\xa9\xf5\x0b\x40\xf9\xfd\x7b\xc3\xa8\xc0\x03\x5f\xd6")]), -Memmap([Annotation(Region(0x0,0xA7F), Attr("segment","02 0 2688")), -Annotation(Region(0x7C0,0x7F3), Attr("symbol","\"_start\"")), -Annotation(Region(0x0,0x102), Attr("section","\".shstrtab\"")), -Annotation(Region(0x0,0x2CB), Attr("section","\".strtab\"")), -Annotation(Region(0x0,0x947), Attr("section","\".symtab\"")), -Annotation(Region(0x0,0x46), Attr("section","\".comment\"")), -Annotation(Region(0x238,0x252), Attr("section","\".interp\"")), -Annotation(Region(0x254,0x277), Attr("section","\".note.gnu.build-id\"")), -Annotation(Region(0x278,0x297), Attr("section","\".note.ABI-tag\"")), -Annotation(Region(0x298,0x2B3), Attr("section","\".gnu.hash\"")), -Annotation(Region(0x2B8,0x41F), Attr("section","\".dynsym\"")), -Annotation(Region(0x420,0x4D2), Attr("section","\".dynstr\"")), -Annotation(Region(0x4D4,0x4F1), Attr("section","\".gnu.version\"")), -Annotation(Region(0x4F8,0x527), Attr("section","\".gnu.version_r\"")), -Annotation(Region(0x528,0x5E7), Attr("section","\".rela.dyn\"")), -Annotation(Region(0x5E8,0x6D7), Attr("section","\".rela.plt\"")), -Annotation(Region(0x6D8,0x6EF), Attr("section","\".init\"")), -Annotation(Region(0x6F0,0x7AF), Attr("section","\".plt\"")), -Annotation(Region(0x6D8,0x6EF), Attr("code-region","()")), -Annotation(Region(0x6F0,0x7AF), Attr("code-region","()")), -Annotation(Region(0x7C0,0x7F3), Attr("symbol-info","_start 0x7C0 52")), -Annotation(Region(0x7F4,0x807), Attr("symbol","\"call_weak_fn\"")), -Annotation(Region(0x7F4,0x807), Attr("symbol-info","call_weak_fn 0x7F4 20")), -Annotation(Region(0x8D4,0x957), Attr("symbol","\"main\"")), -Annotation(Region(0x8D4,0x957), Attr("symbol-info","main 0x8D4 132")), -Annotation(Region(0x958,0x96B), Attr("section","\".fini\"")), -Annotation(Region(0x96C,0x96F), Attr("section","\".rodata\"")), -Annotation(Region(0x970,0x9AB), Attr("section","\".eh_frame_hdr\"")), -Annotation(Region(0x9B0,0xA7F), Attr("section","\".eh_frame\"")), -Annotation(Region(0x10DC8,0x1106B), Attr("segment","03 0x10DC8 696")), -Annotation(Region(0x10DD0,0x10DD7), Attr("section","\".fini_array\"")), -Annotation(Region(0x10DD8,0x10FB7), Attr("section","\".dynamic\"")), -Annotation(Region(0x10DC8,0x10DCF), Attr("section","\".init_array\"")), -Annotation(Region(0x10FB8,0x10FE7), Attr("section","\".got\"")), -Annotation(Region(0x10FE8,0x1104F), Attr("section","\".got.plt\"")), -Annotation(Region(0x11050,0x1106B), Attr("section","\".data\"")), -Annotation(Region(0x7C0,0x957), Attr("section","\".text\"")), -Annotation(Region(0x7C0,0x957), Attr("code-region","()")), -Annotation(Region(0x958,0x96B), Attr("code-region","()"))]), -Program(Tid(1_981, "%000007bd"), Attrs([]), - Subs([Sub(Tid(1_910, "@__cxa_finalize"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x740"), -Attr("stub","()")]), "__cxa_finalize", Args([Arg(Tid(1_982, "%000007be"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("__cxa_finalize_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(1_129, "@__cxa_finalize"), - Attrs([Attr("address","0x740")]), Phis([]), -Defs([Def(Tid(1_517, "%000005ed"), Attrs([Attr("address","0x740"), -Attr("insn","adrp x16, #69632")]), Var("R16",Imm(64)), Int(69632,64)), -Def(Tid(1_524, "%000005f4"), Attrs([Attr("address","0x744"), -Attr("insn","ldr x17, [x16, #0x18]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(24,64)),LittleEndian(),64)), -Def(Tid(1_530, "%000005fa"), Attrs([Attr("address","0x748"), -Attr("insn","add x16, x16, #0x18")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(24,64)))]), Jmps([Call(Tid(1_535, "%000005ff"), - Attrs([Attr("address","0x74C"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), -Sub(Tid(1_911, "@__do_global_dtors_aux"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x880")]), - "__do_global_dtors_aux", Args([Arg(Tid(1_983, "%000007bf"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("__do_global_dtors_aux_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(722, "@__do_global_dtors_aux"), - Attrs([Attr("address","0x880")]), Phis([]), Defs([Def(Tid(726, "%000002d6"), - Attrs([Attr("address","0x880"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("#3",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(18446744073709551584,64))), -Def(Tid(732, "%000002dc"), Attrs([Attr("address","0x880"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("#3",Imm(64)),Var("R29",Imm(64)),LittleEndian(),64)), -Def(Tid(738, "%000002e2"), Attrs([Attr("address","0x880"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("#3",Imm(64)),Int(8,64)),Var("R30",Imm(64)),LittleEndian(),64)), -Def(Tid(742, "%000002e6"), Attrs([Attr("address","0x880"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("R31",Imm(64)), -Var("#3",Imm(64))), Def(Tid(748, "%000002ec"), - Attrs([Attr("address","0x884"), Attr("insn","mov x29, sp")]), - Var("R29",Imm(64)), Var("R31",Imm(64))), Def(Tid(756, "%000002f4"), - Attrs([Attr("address","0x888"), Attr("insn","str x19, [sp, #0x10]")]), - Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(16,64)),Var("R19",Imm(64)),LittleEndian(),64)), -Def(Tid(761, "%000002f9"), Attrs([Attr("address","0x88C"), -Attr("insn","adrp x19, #69632")]), Var("R19",Imm(64)), Int(69632,64)), -Def(Tid(768, "%00000300"), Attrs([Attr("address","0x890"), -Attr("insn","ldrb w0, [x19, #0x70]")]), Var("R0",Imm(64)), -UNSIGNED(64,Load(Var("mem",Mem(64,8)),PLUS(Var("R19",Imm(64)),Int(112,64)),LittleEndian(),8)))]), -Jmps([Goto(Tid(775, "%00000307"), Attrs([Attr("address","0x894"), -Attr("insn","cbnz w0, #0x28")]), - NEQ(Extract(31,0,Var("R0",Imm(64))),Int(0,32)), -Direct(Tid(773, "%00000305"))), Goto(Tid(1_971, "%000007b3"), Attrs([]), - Int(1,1), Direct(Tid(1_074, "%00000432")))])), Blk(Tid(1_074, "%00000432"), - Attrs([Attr("address","0x898")]), Phis([]), -Defs([Def(Tid(1_077, "%00000435"), Attrs([Attr("address","0x898"), -Attr("insn","adrp x0, #65536")]), Var("R0",Imm(64)), Int(65536,64)), -Def(Tid(1_084, "%0000043c"), Attrs([Attr("address","0x89C"), -Attr("insn","ldr x0, [x0, #0xfc8]")]), Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(4040,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(1_090, "%00000442"), Attrs([Attr("address","0x8A0"), -Attr("insn","cbz x0, #0x10")]), EQ(Var("R0",Imm(64)),Int(0,64)), -Direct(Tid(1_088, "%00000440"))), Goto(Tid(1_972, "%000007b4"), Attrs([]), - Int(1,1), Direct(Tid(1_113, "%00000459")))])), Blk(Tid(1_113, "%00000459"), - Attrs([Attr("address","0x8A4")]), Phis([]), -Defs([Def(Tid(1_116, "%0000045c"), Attrs([Attr("address","0x8A4"), -Attr("insn","adrp x0, #69632")]), Var("R0",Imm(64)), Int(69632,64)), -Def(Tid(1_123, "%00000463"), Attrs([Attr("address","0x8A8"), -Attr("insn","ldr x0, [x0, #0x58]")]), Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(88,64)),LittleEndian(),64)), -Def(Tid(1_128, "%00000468"), Attrs([Attr("address","0x8AC"), -Attr("insn","bl #-0x16c")]), Var("R30",Imm(64)), Int(2224,64))]), -Jmps([Call(Tid(1_131, "%0000046b"), Attrs([Attr("address","0x8AC"), -Attr("insn","bl #-0x16c")]), Int(1,1), -(Direct(Tid(1_910, "@__cxa_finalize")),Direct(Tid(1_088, "%00000440"))))])), -Blk(Tid(1_088, "%00000440"), Attrs([Attr("address","0x8B0")]), Phis([]), -Defs([Def(Tid(1_096, "%00000448"), Attrs([Attr("address","0x8B0"), -Attr("insn","bl #-0xa0")]), Var("R30",Imm(64)), Int(2228,64))]), -Jmps([Call(Tid(1_098, "%0000044a"), Attrs([Attr("address","0x8B0"), -Attr("insn","bl #-0xa0")]), Int(1,1), -(Direct(Tid(1_924, "@deregister_tm_clones")),Direct(Tid(1_100, "%0000044c"))))])), -Blk(Tid(1_100, "%0000044c"), Attrs([Attr("address","0x8B4")]), Phis([]), -Defs([Def(Tid(1_103, "%0000044f"), Attrs([Attr("address","0x8B4"), -Attr("insn","mov w0, #0x1")]), Var("R0",Imm(64)), Int(1,64)), -Def(Tid(1_111, "%00000457"), Attrs([Attr("address","0x8B8"), -Attr("insn","strb w0, [x19, #0x70]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R19",Imm(64)),Int(112,64)),Extract(7,0,Var("R0",Imm(64))),LittleEndian(),8))]), -Jmps([Goto(Tid(1_973, "%000007b5"), Attrs([]), Int(1,1), -Direct(Tid(773, "%00000305")))])), Blk(Tid(773, "%00000305"), - Attrs([Attr("address","0x8BC")]), Phis([]), Defs([Def(Tid(783, "%0000030f"), - Attrs([Attr("address","0x8BC"), Attr("insn","ldr x19, [sp, #0x10]")]), - Var("R19",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(16,64)),LittleEndian(),64)), -Def(Tid(790, "%00000316"), Attrs([Attr("address","0x8C0"), -Attr("insn","ldp x29, x30, [sp], #0x20")]), Var("R29",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(795, "%0000031b"), Attrs([Attr("address","0x8C0"), -Attr("insn","ldp x29, x30, [sp], #0x20")]), Var("R30",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(799, "%0000031f"), Attrs([Attr("address","0x8C0"), -Attr("insn","ldp x29, x30, [sp], #0x20")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(32,64)))]), Jmps([Call(Tid(804, "%00000324"), - Attrs([Attr("address","0x8C4"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), Sub(Tid(1_915, "@__libc_start_main"), - Attrs([Attr("c.proto","signed (*)(signed (*)(signed , char** , char** );* main, signed , char** , \nvoid* auxv)"), -Attr("address","0x730"), Attr("stub","()")]), "__libc_start_main", - Args([Arg(Tid(1_984, "%000007c0"), - Attrs([Attr("c.layout","**[ : 64]"), -Attr("c.data","Top:u64 ptr ptr"), -Attr("c.type","signed (*)(signed , char** , char** );*")]), - Var("__libc_start_main_main",Imm(64)), Var("R0",Imm(64)), In()), -Arg(Tid(1_985, "%000007c1"), Attrs([Attr("c.layout","[signed : 32]"), -Attr("c.data","Top:u32"), Attr("c.type","signed")]), - Var("__libc_start_main_arg2",Imm(32)), LOW(32,Var("R1",Imm(64))), In()), -Arg(Tid(1_986, "%000007c2"), Attrs([Attr("c.layout","**[char : 8]"), -Attr("c.data","Top:u8 ptr ptr"), Attr("c.type","char**")]), - Var("__libc_start_main_arg3",Imm(64)), Var("R2",Imm(64)), Both()), -Arg(Tid(1_987, "%000007c3"), Attrs([Attr("c.layout","*[ : 8]"), -Attr("c.data","{} ptr"), Attr("c.type","void*")]), - Var("__libc_start_main_auxv",Imm(64)), Var("R3",Imm(64)), Both()), -Arg(Tid(1_988, "%000007c4"), Attrs([Attr("c.layout","[signed : 32]"), -Attr("c.data","Top:u32"), Attr("c.type","signed")]), - Var("__libc_start_main_result",Imm(32)), LOW(32,Var("R0",Imm(64))), -Out())]), Blks([Blk(Tid(555, "@__libc_start_main"), - Attrs([Attr("address","0x730")]), Phis([]), -Defs([Def(Tid(1_495, "%000005d7"), Attrs([Attr("address","0x730"), -Attr("insn","adrp x16, #69632")]), Var("R16",Imm(64)), Int(69632,64)), -Def(Tid(1_502, "%000005de"), Attrs([Attr("address","0x734"), -Attr("insn","ldr x17, [x16, #0x10]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(16,64)),LittleEndian(),64)), -Def(Tid(1_508, "%000005e4"), Attrs([Attr("address","0x738"), -Attr("insn","add x16, x16, #0x10")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(16,64)))]), Jmps([Call(Tid(1_513, "%000005e9"), - Attrs([Attr("address","0x73C"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), Sub(Tid(1_916, "@_fini"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x958")]), - "_fini", Args([Arg(Tid(1_989, "%000007c5"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("_fini_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(31, "@_fini"), - Attrs([Attr("address","0x958")]), Phis([]), Defs([Def(Tid(37, "%00000025"), - Attrs([Attr("address","0x95C"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("#0",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(18446744073709551600,64))), -Def(Tid(43, "%0000002b"), Attrs([Attr("address","0x95C"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("#0",Imm(64)),Var("R29",Imm(64)),LittleEndian(),64)), -Def(Tid(49, "%00000031"), Attrs([Attr("address","0x95C"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("#0",Imm(64)),Int(8,64)),Var("R30",Imm(64)),LittleEndian(),64)), -Def(Tid(53, "%00000035"), Attrs([Attr("address","0x95C"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("R31",Imm(64)), -Var("#0",Imm(64))), Def(Tid(59, "%0000003b"), Attrs([Attr("address","0x960"), -Attr("insn","mov x29, sp")]), Var("R29",Imm(64)), Var("R31",Imm(64))), -Def(Tid(66, "%00000042"), Attrs([Attr("address","0x964"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R29",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(71, "%00000047"), Attrs([Attr("address","0x964"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R30",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(75, "%0000004b"), Attrs([Attr("address","0x964"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(16,64)))]), Jmps([Call(Tid(80, "%00000050"), - Attrs([Attr("address","0x968"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), Sub(Tid(1_917, "@_init"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x6D8")]), - "_init", Args([Arg(Tid(1_990, "%000007c6"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("_init_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(1_695, "@_init"), - Attrs([Attr("address","0x6D8")]), Phis([]), -Defs([Def(Tid(1_701, "%000006a5"), Attrs([Attr("address","0x6DC"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("#8",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(18446744073709551600,64))), -Def(Tid(1_707, "%000006ab"), Attrs([Attr("address","0x6DC"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("#8",Imm(64)),Var("R29",Imm(64)),LittleEndian(),64)), -Def(Tid(1_713, "%000006b1"), Attrs([Attr("address","0x6DC"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("#8",Imm(64)),Int(8,64)),Var("R30",Imm(64)),LittleEndian(),64)), -Def(Tid(1_717, "%000006b5"), Attrs([Attr("address","0x6DC"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("R31",Imm(64)), -Var("#8",Imm(64))), Def(Tid(1_723, "%000006bb"), - Attrs([Attr("address","0x6E0"), Attr("insn","mov x29, sp")]), - Var("R29",Imm(64)), Var("R31",Imm(64))), Def(Tid(1_728, "%000006c0"), - Attrs([Attr("address","0x6E4"), Attr("insn","bl #0x110")]), - Var("R30",Imm(64)), Int(1768,64))]), Jmps([Call(Tid(1_730, "%000006c2"), - Attrs([Attr("address","0x6E4"), Attr("insn","bl #0x110")]), Int(1,1), -(Direct(Tid(1_922, "@call_weak_fn")),Direct(Tid(1_732, "%000006c4"))))])), -Blk(Tid(1_732, "%000006c4"), Attrs([Attr("address","0x6E8")]), Phis([]), -Defs([Def(Tid(1_737, "%000006c9"), Attrs([Attr("address","0x6E8"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R29",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(1_742, "%000006ce"), Attrs([Attr("address","0x6E8"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R30",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(1_746, "%000006d2"), Attrs([Attr("address","0x6E8"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(16,64)))]), Jmps([Call(Tid(1_751, "%000006d7"), - Attrs([Attr("address","0x6EC"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), Sub(Tid(1_918, "@_start"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x7C0"), -Attr("entry-point","()")]), "_start", Args([Arg(Tid(1_991, "%000007c7"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("_start_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(492, "@_start"), - Attrs([Attr("address","0x7C0")]), Phis([]), Defs([Def(Tid(497, "%000001f1"), - Attrs([Attr("address","0x7C4"), Attr("insn","mov x29, #0x0")]), - Var("R29",Imm(64)), Int(0,64)), Def(Tid(502, "%000001f6"), - Attrs([Attr("address","0x7C8"), Attr("insn","mov x30, #0x0")]), - Var("R30",Imm(64)), Int(0,64)), Def(Tid(508, "%000001fc"), - Attrs([Attr("address","0x7CC"), Attr("insn","mov x5, x0")]), - Var("R5",Imm(64)), Var("R0",Imm(64))), Def(Tid(515, "%00000203"), - Attrs([Attr("address","0x7D0"), Attr("insn","ldr x1, [sp]")]), - Var("R1",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(521, "%00000209"), Attrs([Attr("address","0x7D4"), -Attr("insn","add x2, sp, #0x8")]), Var("R2",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(8,64))), Def(Tid(527, "%0000020f"), - Attrs([Attr("address","0x7D8"), Attr("insn","mov x6, sp")]), - Var("R6",Imm(64)), Var("R31",Imm(64))), Def(Tid(532, "%00000214"), - Attrs([Attr("address","0x7DC"), Attr("insn","adrp x0, #65536")]), - Var("R0",Imm(64)), Int(65536,64)), Def(Tid(539, "%0000021b"), - Attrs([Attr("address","0x7E0"), Attr("insn","ldr x0, [x0, #0xfd8]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(4056,64)),LittleEndian(),64)), -Def(Tid(544, "%00000220"), Attrs([Attr("address","0x7E4"), -Attr("insn","mov x3, #0x0")]), Var("R3",Imm(64)), Int(0,64)), -Def(Tid(549, "%00000225"), Attrs([Attr("address","0x7E8"), -Attr("insn","mov x4, #0x0")]), Var("R4",Imm(64)), Int(0,64)), -Def(Tid(554, "%0000022a"), Attrs([Attr("address","0x7EC"), -Attr("insn","bl #-0xbc")]), Var("R30",Imm(64)), Int(2032,64))]), -Jmps([Call(Tid(557, "%0000022d"), Attrs([Attr("address","0x7EC"), -Attr("insn","bl #-0xbc")]), Int(1,1), -(Direct(Tid(1_915, "@__libc_start_main")),Direct(Tid(559, "%0000022f"))))])), -Blk(Tid(559, "%0000022f"), Attrs([Attr("address","0x7F0")]), Phis([]), -Defs([Def(Tid(562, "%00000232"), Attrs([Attr("address","0x7F0"), -Attr("insn","bl #-0x70")]), Var("R30",Imm(64)), Int(2036,64))]), -Jmps([Call(Tid(565, "%00000235"), Attrs([Attr("address","0x7F0"), -Attr("insn","bl #-0x70")]), Int(1,1), -(Direct(Tid(1_921, "@abort")),Direct(Tid(1_974, "%000007b6"))))])), -Blk(Tid(1_974, "%000007b6"), Attrs([]), Phis([]), Defs([]), -Jmps([Call(Tid(1_975, "%000007b7"), Attrs([]), Int(1,1), -(Direct(Tid(1_922, "@call_weak_fn")),))]))])), Sub(Tid(1_921, "@abort"), - Attrs([Attr("noreturn","()"), Attr("c.proto","void (*)(void)"), -Attr("address","0x780"), Attr("stub","()")]), "abort", Args([]), -Blks([Blk(Tid(563, "@abort"), Attrs([Attr("address","0x780")]), Phis([]), -Defs([Def(Tid(1_605, "%00000645"), Attrs([Attr("address","0x780"), -Attr("insn","adrp x16, #69632")]), Var("R16",Imm(64)), Int(69632,64)), -Def(Tid(1_612, "%0000064c"), Attrs([Attr("address","0x784"), -Attr("insn","ldr x17, [x16, #0x38]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(56,64)),LittleEndian(),64)), -Def(Tid(1_618, "%00000652"), Attrs([Attr("address","0x788"), -Attr("insn","add x16, x16, #0x38")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(56,64)))]), Jmps([Call(Tid(1_623, "%00000657"), - Attrs([Attr("address","0x78C"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), Sub(Tid(1_922, "@call_weak_fn"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x7F4")]), - "call_weak_fn", Args([Arg(Tid(1_992, "%000007c8"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("call_weak_fn_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(567, "@call_weak_fn"), - Attrs([Attr("address","0x7F4")]), Phis([]), Defs([Def(Tid(570, "%0000023a"), - Attrs([Attr("address","0x7F4"), Attr("insn","adrp x0, #65536")]), - Var("R0",Imm(64)), Int(65536,64)), Def(Tid(577, "%00000241"), - Attrs([Attr("address","0x7F8"), Attr("insn","ldr x0, [x0, #0xfd0]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(4048,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(583, "%00000247"), Attrs([Attr("address","0x7FC"), -Attr("insn","cbz x0, #0x8")]), EQ(Var("R0",Imm(64)),Int(0,64)), -Direct(Tid(581, "%00000245"))), Goto(Tid(1_976, "%000007b8"), Attrs([]), - Int(1,1), Direct(Tid(1_193, "%000004a9")))])), Blk(Tid(581, "%00000245"), - Attrs([Attr("address","0x804")]), Phis([]), Defs([]), -Jmps([Call(Tid(589, "%0000024d"), Attrs([Attr("address","0x804"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))])), -Blk(Tid(1_193, "%000004a9"), Attrs([Attr("address","0x800")]), Phis([]), -Defs([]), Jmps([Goto(Tid(1_196, "%000004ac"), Attrs([Attr("address","0x800"), -Attr("insn","b #-0x90")]), Int(1,1), -Direct(Tid(1_194, "@__gmon_start__")))])), Blk(Tid(1_194, "@__gmon_start__"), - Attrs([Attr("address","0x770")]), Phis([]), -Defs([Def(Tid(1_583, "%0000062f"), Attrs([Attr("address","0x770"), -Attr("insn","adrp x16, #69632")]), Var("R16",Imm(64)), Int(69632,64)), -Def(Tid(1_590, "%00000636"), Attrs([Attr("address","0x774"), -Attr("insn","ldr x17, [x16, #0x30]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(48,64)),LittleEndian(),64)), -Def(Tid(1_596, "%0000063c"), Attrs([Attr("address","0x778"), -Attr("insn","add x16, x16, #0x30")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(48,64)))]), Jmps([Call(Tid(1_601, "%00000641"), - Attrs([Attr("address","0x77C"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), -Sub(Tid(1_924, "@deregister_tm_clones"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x810")]), - "deregister_tm_clones", Args([Arg(Tid(1_993, "%000007c9"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("deregister_tm_clones_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(595, "@deregister_tm_clones"), - Attrs([Attr("address","0x810")]), Phis([]), Defs([Def(Tid(598, "%00000256"), - Attrs([Attr("address","0x810"), Attr("insn","adrp x0, #69632")]), - Var("R0",Imm(64)), Int(69632,64)), Def(Tid(604, "%0000025c"), - Attrs([Attr("address","0x814"), Attr("insn","add x0, x0, #0x70")]), - Var("R0",Imm(64)), PLUS(Var("R0",Imm(64)),Int(112,64))), -Def(Tid(609, "%00000261"), Attrs([Attr("address","0x818"), -Attr("insn","adrp x1, #69632")]), Var("R1",Imm(64)), Int(69632,64)), -Def(Tid(615, "%00000267"), Attrs([Attr("address","0x81C"), -Attr("insn","add x1, x1, #0x70")]), Var("R1",Imm(64)), -PLUS(Var("R1",Imm(64)),Int(112,64))), Def(Tid(621, "%0000026d"), - Attrs([Attr("address","0x820"), Attr("insn","cmp x1, x0")]), - Var("#1",Imm(64)), NOT(Var("R0",Imm(64)))), Def(Tid(626, "%00000272"), - Attrs([Attr("address","0x820"), Attr("insn","cmp x1, x0")]), - Var("#2",Imm(64)), PLUS(Var("R1",Imm(64)),NOT(Var("R0",Imm(64))))), -Def(Tid(632, "%00000278"), Attrs([Attr("address","0x820"), -Attr("insn","cmp x1, x0")]), Var("VF",Imm(1)), -NEQ(SIGNED(65,PLUS(Var("#2",Imm(64)),Int(1,64))),PLUS(PLUS(SIGNED(65,Var("R1",Imm(64))),SIGNED(65,Var("#1",Imm(64)))),Int(1,65)))), -Def(Tid(638, "%0000027e"), Attrs([Attr("address","0x820"), -Attr("insn","cmp x1, x0")]), Var("CF",Imm(1)), -NEQ(UNSIGNED(65,PLUS(Var("#2",Imm(64)),Int(1,64))),PLUS(PLUS(UNSIGNED(65,Var("R1",Imm(64))),UNSIGNED(65,Var("#1",Imm(64)))),Int(1,65)))), -Def(Tid(642, "%00000282"), Attrs([Attr("address","0x820"), -Attr("insn","cmp x1, x0")]), Var("ZF",Imm(1)), -EQ(PLUS(Var("#2",Imm(64)),Int(1,64)),Int(0,64))), Def(Tid(646, "%00000286"), - Attrs([Attr("address","0x820"), Attr("insn","cmp x1, x0")]), - Var("NF",Imm(1)), Extract(63,63,PLUS(Var("#2",Imm(64)),Int(1,64))))]), -Jmps([Goto(Tid(652, "%0000028c"), Attrs([Attr("address","0x824"), -Attr("insn","b.eq #0x18")]), EQ(Var("ZF",Imm(1)),Int(1,1)), -Direct(Tid(650, "%0000028a"))), Goto(Tid(1_977, "%000007b9"), Attrs([]), - Int(1,1), Direct(Tid(1_163, "%0000048b")))])), Blk(Tid(1_163, "%0000048b"), - Attrs([Attr("address","0x828")]), Phis([]), -Defs([Def(Tid(1_166, "%0000048e"), Attrs([Attr("address","0x828"), -Attr("insn","adrp x1, #65536")]), Var("R1",Imm(64)), Int(65536,64)), -Def(Tid(1_173, "%00000495"), Attrs([Attr("address","0x82C"), -Attr("insn","ldr x1, [x1, #0xfc0]")]), Var("R1",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R1",Imm(64)),Int(4032,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(1_178, "%0000049a"), Attrs([Attr("address","0x830"), -Attr("insn","cbz x1, #0xc")]), EQ(Var("R1",Imm(64)),Int(0,64)), -Direct(Tid(650, "%0000028a"))), Goto(Tid(1_978, "%000007ba"), Attrs([]), - Int(1,1), Direct(Tid(1_182, "%0000049e")))])), Blk(Tid(650, "%0000028a"), - Attrs([Attr("address","0x83C")]), Phis([]), Defs([]), -Jmps([Call(Tid(658, "%00000292"), Attrs([Attr("address","0x83C"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))])), -Blk(Tid(1_182, "%0000049e"), Attrs([Attr("address","0x834")]), Phis([]), -Defs([Def(Tid(1_186, "%000004a2"), Attrs([Attr("address","0x834"), -Attr("insn","mov x16, x1")]), Var("R16",Imm(64)), Var("R1",Imm(64)))]), -Jmps([Call(Tid(1_191, "%000004a7"), Attrs([Attr("address","0x838"), -Attr("insn","br x16")]), Int(1,1), (Indirect(Var("R16",Imm(64))),))]))])), -Sub(Tid(1_927, "@frame_dummy"), Attrs([Attr("c.proto","signed (*)(void)"), -Attr("address","0x8D0")]), "frame_dummy", Args([Arg(Tid(1_994, "%000007ca"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("frame_dummy_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(810, "@frame_dummy"), - Attrs([Attr("address","0x8D0")]), Phis([]), Defs([]), -Jmps([Call(Tid(812, "%0000032c"), Attrs([Attr("address","0x8D0"), -Attr("insn","b #-0x90")]), Int(1,1), -(Direct(Tid(1_934, "@register_tm_clones")),))]))])), Sub(Tid(1_928, "@free"), - Attrs([Attr("c.proto","void (*)(void* ptr)"), Attr("address","0x7A0"), -Attr("stub","()")]), "free", Args([Arg(Tid(1_995, "%000007cb"), - Attrs([Attr("c.layout","*[ : 8]"), Attr("c.data","{} ptr"), -Attr("c.type","void*")]), Var("free_ptr",Imm(64)), Var("R0",Imm(64)), -Both())]), Blks([Blk(Tid(1_021, "@free"), Attrs([Attr("address","0x7A0")]), - Phis([]), Defs([Def(Tid(1_649, "%00000671"), Attrs([Attr("address","0x7A0"), -Attr("insn","adrp x16, #69632")]), Var("R16",Imm(64)), Int(69632,64)), -Def(Tid(1_656, "%00000678"), Attrs([Attr("address","0x7A4"), -Attr("insn","ldr x17, [x16, #0x48]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(72,64)),LittleEndian(),64)), -Def(Tid(1_662, "%0000067e"), Attrs([Attr("address","0x7A8"), -Attr("insn","add x16, x16, #0x48")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(72,64)))]), Jmps([Call(Tid(1_667, "%00000683"), - Attrs([Attr("address","0x7AC"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), Sub(Tid(1_929, "@main"), - Attrs([Attr("c.proto","signed (*)(signed argc, const char** argv)"), -Attr("address","0x8D4")]), "main", Args([Arg(Tid(1_996, "%000007cc"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("main_argc",Imm(32)), -LOW(32,Var("R0",Imm(64))), In()), Arg(Tid(1_997, "%000007cd"), - Attrs([Attr("c.layout","**[char : 8]"), Attr("c.data","Top:u8 ptr ptr"), -Attr("c.type"," const char**")]), Var("main_argv",Imm(64)), -Var("R1",Imm(64)), Both()), Arg(Tid(1_998, "%000007ce"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("main_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(814, "@main"), - Attrs([Attr("address","0x8D4")]), Phis([]), Defs([Def(Tid(818, "%00000332"), - Attrs([Attr("address","0x8D4"), -Attr("insn","stp x29, x30, [sp, #-0x30]!")]), Var("#4",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(18446744073709551568,64))), -Def(Tid(824, "%00000338"), Attrs([Attr("address","0x8D4"), -Attr("insn","stp x29, x30, [sp, #-0x30]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("#4",Imm(64)),Var("R29",Imm(64)),LittleEndian(),64)), -Def(Tid(830, "%0000033e"), Attrs([Attr("address","0x8D4"), -Attr("insn","stp x29, x30, [sp, #-0x30]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("#4",Imm(64)),Int(8,64)),Var("R30",Imm(64)),LittleEndian(),64)), -Def(Tid(834, "%00000342"), Attrs([Attr("address","0x8D4"), -Attr("insn","stp x29, x30, [sp, #-0x30]!")]), Var("R31",Imm(64)), -Var("#4",Imm(64))), Def(Tid(842, "%0000034a"), - Attrs([Attr("address","0x8D8"), Attr("insn","str x21, [sp, #0x10]")]), - Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(16,64)),Var("R21",Imm(64)),LittleEndian(),64)), -Def(Tid(848, "%00000350"), Attrs([Attr("address","0x8DC"), -Attr("insn","stp x20, x19, [sp, #0x20]")]), Var("#5",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(32,64))), Def(Tid(854, "%00000356"), - Attrs([Attr("address","0x8DC"), Attr("insn","stp x20, x19, [sp, #0x20]")]), - Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("#5",Imm(64)),Var("R20",Imm(64)),LittleEndian(),64)), -Def(Tid(860, "%0000035c"), Attrs([Attr("address","0x8DC"), -Attr("insn","stp x20, x19, [sp, #0x20]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("#5",Imm(64)),Int(8,64)),Var("R19",Imm(64)),LittleEndian(),64)), -Def(Tid(866, "%00000362"), Attrs([Attr("address","0x8E0"), -Attr("insn","mov x29, sp")]), Var("R29",Imm(64)), Var("R31",Imm(64))), -Def(Tid(871, "%00000367"), Attrs([Attr("address","0x8E4"), -Attr("insn","mov w0, #0xb")]), Var("R0",Imm(64)), Int(11,64)), -Def(Tid(876, "%0000036c"), Attrs([Attr("address","0x8E8"), -Attr("insn","bl #-0x198")]), Var("R30",Imm(64)), Int(2284,64))]), -Jmps([Call(Tid(879, "%0000036f"), Attrs([Attr("address","0x8E8"), -Attr("insn","bl #-0x198")]), Int(1,1), -(Direct(Tid(1_930, "@malloc")),Direct(Tid(881, "%00000371"))))])), -Blk(Tid(881, "%00000371"), Attrs([Attr("address","0x8EC")]), Phis([]), -Defs([Def(Tid(884, "%00000374"), Attrs([Attr("address","0x8EC"), -Attr("insn","adrp x21, #69632")]), Var("R21",Imm(64)), Int(69632,64)), -Def(Tid(889, "%00000379"), Attrs([Attr("address","0x8F0"), -Attr("insn","adrp x20, #69632")]), Var("R20",Imm(64)), Int(69632,64)), -Def(Tid(895, "%0000037f"), Attrs([Attr("address","0x8F4"), -Attr("insn","add x20, x20, #0x61")]), Var("R20",Imm(64)), -PLUS(Var("R20",Imm(64)),Int(97,64))), Def(Tid(901, "%00000385"), - Attrs([Attr("address","0x8F8"), Attr("insn","mov x19, x0")]), - Var("R19",Imm(64)), Var("R0",Imm(64))), Def(Tid(909, "%0000038d"), - Attrs([Attr("address","0x8FC"), Attr("insn","str x0, [x21, #0x78]")]), - Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R21",Imm(64)),Int(120,64)),Var("R0",Imm(64)),LittleEndian(),64)), -Def(Tid(915, "%00000393"), Attrs([Attr("address","0x900"), -Attr("insn","mov x0, x20")]), Var("R0",Imm(64)), Var("R20",Imm(64))), -Def(Tid(920, "%00000398"), Attrs([Attr("address","0x904"), -Attr("insn","bl #-0x1e4")]), Var("R30",Imm(64)), Int(2312,64))]), -Jmps([Call(Tid(923, "%0000039b"), Attrs([Attr("address","0x904"), -Attr("insn","bl #-0x1e4")]), Int(1,1), -(Direct(Tid(1_937, "@strlen")),Direct(Tid(925, "%0000039d"))))])), -Blk(Tid(925, "%0000039d"), Attrs([Attr("address","0x908")]), Phis([]), -Defs([Def(Tid(929, "%000003a1"), Attrs([Attr("address","0x908"), -Attr("insn","mov x2, x0")]), Var("R2",Imm(64)), Var("R0",Imm(64))), -Def(Tid(935, "%000003a7"), Attrs([Attr("address","0x90C"), -Attr("insn","mov x0, x19")]), Var("R0",Imm(64)), Var("R19",Imm(64))), -Def(Tid(941, "%000003ad"), Attrs([Attr("address","0x910"), -Attr("insn","mov x1, x20")]), Var("R1",Imm(64)), Var("R20",Imm(64))), -Def(Tid(946, "%000003b2"), Attrs([Attr("address","0x914"), -Attr("insn","bl #-0x204")]), Var("R30",Imm(64)), Int(2328,64))]), -Jmps([Call(Tid(949, "%000003b5"), Attrs([Attr("address","0x914"), -Attr("insn","bl #-0x204")]), Int(1,1), -(Direct(Tid(1_931, "@memcpy")),Direct(Tid(951, "%000003b7"))))])), -Blk(Tid(951, "%000003b7"), Attrs([Attr("address","0x918")]), Phis([]), -Defs([Def(Tid(955, "%000003bb"), Attrs([Attr("address","0x918"), -Attr("insn","mov x0, x19")]), Var("R0",Imm(64)), Var("R19",Imm(64))), -Def(Tid(960, "%000003c0"), Attrs([Attr("address","0x91C"), -Attr("insn","bl #-0x18c")]), Var("R30",Imm(64)), Int(2336,64))]), -Jmps([Call(Tid(963, "%000003c3"), Attrs([Attr("address","0x91C"), -Attr("insn","bl #-0x18c")]), Int(1,1), -(Direct(Tid(1_933, "@puts")),Direct(Tid(965, "%000003c5"))))])), -Blk(Tid(965, "%000003c5"), Attrs([Attr("address","0x920")]), Phis([]), -Defs([Def(Tid(970, "%000003ca"), Attrs([Attr("address","0x920"), -Attr("insn","ldr x19, [x21, #0x78]")]), Var("R19",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R21",Imm(64)),Int(120,64)),LittleEndian(),64)), -Def(Tid(976, "%000003d0"), Attrs([Attr("address","0x924"), -Attr("insn","mov x0, x19")]), Var("R0",Imm(64)), Var("R19",Imm(64))), -Def(Tid(981, "%000003d5"), Attrs([Attr("address","0x928"), -Attr("insn","bl #-0x208")]), Var("R30",Imm(64)), Int(2348,64))]), -Jmps([Call(Tid(983, "%000003d7"), Attrs([Attr("address","0x928"), -Attr("insn","bl #-0x208")]), Int(1,1), -(Direct(Tid(1_937, "@strlen")),Direct(Tid(985, "%000003d9"))))])), -Blk(Tid(985, "%000003d9"), Attrs([Attr("address","0x92C")]), Phis([]), -Defs([Def(Tid(989, "%000003dd"), Attrs([Attr("address","0x92C"), -Attr("insn","mov x2, x0")]), Var("R2",Imm(64)), Var("R0",Imm(64))), -Def(Tid(995, "%000003e3"), Attrs([Attr("address","0x930"), -Attr("insn","mov x0, x19")]), Var("R0",Imm(64)), Var("R19",Imm(64))), -Def(Tid(1_000, "%000003e8"), Attrs([Attr("address","0x934"), -Attr("insn","mov w1, #0x1")]), Var("R1",Imm(64)), Int(1,64)), -Def(Tid(1_005, "%000003ed"), Attrs([Attr("address","0x938"), -Attr("insn","bl #-0x1d8")]), Var("R30",Imm(64)), Int(2364,64))]), -Jmps([Call(Tid(1_008, "%000003f0"), Attrs([Attr("address","0x938"), -Attr("insn","bl #-0x1d8")]), Int(1,1), -(Direct(Tid(1_932, "@memset")),Direct(Tid(1_010, "%000003f2"))))])), -Blk(Tid(1_010, "%000003f2"), Attrs([Attr("address","0x93C")]), Phis([]), -Defs([Def(Tid(1_015, "%000003f7"), Attrs([Attr("address","0x93C"), -Attr("insn","ldr x0, [x21, #0x78]")]), Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R21",Imm(64)),Int(120,64)),LittleEndian(),64)), -Def(Tid(1_020, "%000003fc"), Attrs([Attr("address","0x940"), -Attr("insn","bl #-0x1a0")]), Var("R30",Imm(64)), Int(2372,64))]), -Jmps([Call(Tid(1_023, "%000003ff"), Attrs([Attr("address","0x940"), -Attr("insn","bl #-0x1a0")]), Int(1,1), -(Direct(Tid(1_928, "@free")),Direct(Tid(1_025, "%00000401"))))])), -Blk(Tid(1_025, "%00000401"), Attrs([Attr("address","0x944")]), Phis([]), -Defs([Def(Tid(1_028, "%00000404"), Attrs([Attr("address","0x944"), -Attr("insn","mov w0, wzr")]), Var("R0",Imm(64)), Int(0,64)), -Def(Tid(1_034, "%0000040a"), Attrs([Attr("address","0x948"), -Attr("insn","ldp x20, x19, [sp, #0x20]")]), Var("#6",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(32,64))), Def(Tid(1_039, "%0000040f"), - Attrs([Attr("address","0x948"), Attr("insn","ldp x20, x19, [sp, #0x20]")]), - Var("R20",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("#6",Imm(64)),LittleEndian(),64)), -Def(Tid(1_044, "%00000414"), Attrs([Attr("address","0x948"), -Attr("insn","ldp x20, x19, [sp, #0x20]")]), Var("R19",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("#6",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(1_051, "%0000041b"), Attrs([Attr("address","0x94C"), -Attr("insn","ldr x21, [sp, #0x10]")]), Var("R21",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(16,64)),LittleEndian(),64)), -Def(Tid(1_058, "%00000422"), Attrs([Attr("address","0x950"), -Attr("insn","ldp x29, x30, [sp], #0x30")]), Var("R29",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(1_063, "%00000427"), Attrs([Attr("address","0x950"), -Attr("insn","ldp x29, x30, [sp], #0x30")]), Var("R30",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(1_067, "%0000042b"), Attrs([Attr("address","0x950"), -Attr("insn","ldp x29, x30, [sp], #0x30")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(48,64)))]), Jmps([Call(Tid(1_072, "%00000430"), - Attrs([Attr("address","0x954"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), Sub(Tid(1_930, "@malloc"), - Attrs([Attr("c.proto","void* (*)(unsigned long size)"), -Attr("address","0x750"), Attr("malloc","()"), Attr("stub","()")]), "malloc", - Args([Arg(Tid(1_999, "%000007cf"), Attrs([Attr("alloc-size","()"), -Attr("c.layout","[unsigned long : 64]"), Attr("c.data","Top:u64"), -Attr("c.type","unsigned long")]), Var("malloc_size",Imm(64)), -Var("R0",Imm(64)), In()), Arg(Tid(2_000, "%000007d0"), - Attrs([Attr("warn-unused","()"), Attr("c.layout","*[ : 8]"), -Attr("c.data","{} ptr"), Attr("c.type","void*")]), - Var("malloc_result",Imm(64)), Var("R0",Imm(64)), Out())]), -Blks([Blk(Tid(877, "@malloc"), Attrs([Attr("address","0x750")]), Phis([]), -Defs([Def(Tid(1_539, "%00000603"), Attrs([Attr("address","0x750"), -Attr("insn","adrp x16, #69632")]), Var("R16",Imm(64)), Int(69632,64)), -Def(Tid(1_546, "%0000060a"), Attrs([Attr("address","0x754"), -Attr("insn","ldr x17, [x16, #0x20]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(32,64)),LittleEndian(),64)), -Def(Tid(1_552, "%00000610"), Attrs([Attr("address","0x758"), -Attr("insn","add x16, x16, #0x20")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(32,64)))]), Jmps([Call(Tid(1_557, "%00000615"), - Attrs([Attr("address","0x75C"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), Sub(Tid(1_931, "@memcpy"), - Attrs([Attr("c.proto","void* (*)(void restrict * dst, void restrict * src, unsigned long n)"), -Attr("address","0x710"), Attr("stub","()")]), "memcpy", - Args([Arg(Tid(2_001, "%000007d1"), Attrs([Attr("nonnull","()"), -Attr("c.layout","*[ : 8]"), Attr("c.data","{} ptr"), -Attr("c.type","void restrict *")]), Var("memcpy_dst",Imm(64)), -Var("R0",Imm(64)), Both()), Arg(Tid(2_002, "%000007d2"), - Attrs([Attr("nonnull","()"), Attr("c.layout","*[ : 8]"), -Attr("c.data","{} ptr"), Attr("c.type","void restrict *")]), - Var("memcpy_src",Imm(64)), Var("R1",Imm(64)), Both()), -Arg(Tid(2_003, "%000007d3"), Attrs([Attr("c.layout","[unsigned long : 64]"), -Attr("c.data","Top:u64"), Attr("c.type","unsigned long")]), - Var("memcpy_n",Imm(64)), Var("R2",Imm(64)), In()), -Arg(Tid(2_004, "%000007d4"), Attrs([Attr("c.layout","*[ : 8]"), -Attr("c.data","{} ptr"), Attr("c.type","void*")]), - Var("memcpy_result",Imm(64)), Var("R0",Imm(64)), Out())]), -Blks([Blk(Tid(947, "@memcpy"), Attrs([Attr("address","0x710")]), Phis([]), -Defs([Def(Tid(1_451, "%000005ab"), Attrs([Attr("address","0x710"), -Attr("insn","adrp x16, #69632")]), Var("R16",Imm(64)), Int(69632,64)), -Def(Tid(1_458, "%000005b2"), Attrs([Attr("address","0x714"), -Attr("insn","ldr x17, [x16]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R16",Imm(64)),LittleEndian(),64)), -Def(Tid(1_464, "%000005b8"), Attrs([Attr("address","0x718"), -Attr("insn","add x16, x16, #0x0")]), Var("R16",Imm(64)), -Var("R16",Imm(64)))]), Jmps([Call(Tid(1_469, "%000005bd"), - Attrs([Attr("address","0x71C"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), Sub(Tid(1_932, "@memset"), - Attrs([Attr("c.proto","void* (*)(void* buf, signed c, unsigned long n)"), -Attr("address","0x760"), Attr("stub","()")]), "memset", - Args([Arg(Tid(2_005, "%000007d5"), Attrs([Attr("nonnull","()"), -Attr("c.layout","*[ : 8]"), Attr("c.data","{} ptr"), -Attr("c.type","void*")]), Var("memset_buf",Imm(64)), Var("R0",Imm(64)), -Both()), Arg(Tid(2_006, "%000007d6"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("memset_c",Imm(32)), -LOW(32,Var("R1",Imm(64))), In()), Arg(Tid(2_007, "%000007d7"), - Attrs([Attr("c.layout","[unsigned long : 64]"), Attr("c.data","Top:u64"), -Attr("c.type","unsigned long")]), Var("memset_n",Imm(64)), Var("R2",Imm(64)), -In()), Arg(Tid(2_008, "%000007d8"), Attrs([Attr("c.layout","*[ : 8]"), -Attr("c.data","{} ptr"), Attr("c.type","void*")]), - Var("memset_result",Imm(64)), Var("R0",Imm(64)), Out())]), -Blks([Blk(Tid(1_006, "@memset"), Attrs([Attr("address","0x760")]), Phis([]), -Defs([Def(Tid(1_561, "%00000619"), Attrs([Attr("address","0x760"), -Attr("insn","adrp x16, #69632")]), Var("R16",Imm(64)), Int(69632,64)), -Def(Tid(1_568, "%00000620"), Attrs([Attr("address","0x764"), -Attr("insn","ldr x17, [x16, #0x28]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(40,64)),LittleEndian(),64)), -Def(Tid(1_574, "%00000626"), Attrs([Attr("address","0x768"), -Attr("insn","add x16, x16, #0x28")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(40,64)))]), Jmps([Call(Tid(1_579, "%0000062b"), - Attrs([Attr("address","0x76C"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), Sub(Tid(1_933, "@puts"), - Attrs([Attr("c.proto","signed (*)( const char* s)"), -Attr("address","0x790"), Attr("stub","()")]), "puts", - Args([Arg(Tid(2_009, "%000007d9"), Attrs([Attr("c.layout","*[char : 8]"), -Attr("c.data","Top:u8 ptr"), Attr("c.type"," const char*")]), - Var("puts_s",Imm(64)), Var("R0",Imm(64)), In()), -Arg(Tid(2_010, "%000007da"), Attrs([Attr("c.layout","[signed : 32]"), -Attr("c.data","Top:u32"), Attr("c.type","signed")]), - Var("puts_result",Imm(32)), LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(961, "@puts"), Attrs([Attr("address","0x790")]), Phis([]), -Defs([Def(Tid(1_627, "%0000065b"), Attrs([Attr("address","0x790"), -Attr("insn","adrp x16, #69632")]), Var("R16",Imm(64)), Int(69632,64)), -Def(Tid(1_634, "%00000662"), Attrs([Attr("address","0x794"), -Attr("insn","ldr x17, [x16, #0x40]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(64,64)),LittleEndian(),64)), -Def(Tid(1_640, "%00000668"), Attrs([Attr("address","0x798"), -Attr("insn","add x16, x16, #0x40")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(64,64)))]), Jmps([Call(Tid(1_645, "%0000066d"), - Attrs([Attr("address","0x79C"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), -Sub(Tid(1_934, "@register_tm_clones"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x840")]), - "register_tm_clones", Args([Arg(Tid(2_011, "%000007db"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("register_tm_clones_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(660, "@register_tm_clones"), Attrs([Attr("address","0x840")]), - Phis([]), Defs([Def(Tid(663, "%00000297"), Attrs([Attr("address","0x840"), -Attr("insn","adrp x0, #69632")]), Var("R0",Imm(64)), Int(69632,64)), -Def(Tid(669, "%0000029d"), Attrs([Attr("address","0x844"), -Attr("insn","add x0, x0, #0x70")]), Var("R0",Imm(64)), -PLUS(Var("R0",Imm(64)),Int(112,64))), Def(Tid(674, "%000002a2"), - Attrs([Attr("address","0x848"), Attr("insn","adrp x1, #69632")]), - Var("R1",Imm(64)), Int(69632,64)), Def(Tid(680, "%000002a8"), - Attrs([Attr("address","0x84C"), Attr("insn","add x1, x1, #0x70")]), - Var("R1",Imm(64)), PLUS(Var("R1",Imm(64)),Int(112,64))), -Def(Tid(687, "%000002af"), Attrs([Attr("address","0x850"), -Attr("insn","sub x1, x1, x0")]), Var("R1",Imm(64)), -PLUS(PLUS(Var("R1",Imm(64)),NOT(Var("R0",Imm(64)))),Int(1,64))), -Def(Tid(693, "%000002b5"), Attrs([Attr("address","0x854"), -Attr("insn","lsr x2, x1, #63")]), Var("R2",Imm(64)), -Concat(Int(0,63),Extract(63,63,Var("R1",Imm(64))))), -Def(Tid(700, "%000002bc"), Attrs([Attr("address","0x858"), -Attr("insn","add x1, x2, x1, asr #3")]), Var("R1",Imm(64)), -PLUS(Var("R2",Imm(64)),ARSHIFT(Var("R1",Imm(64)),Int(3,3)))), -Def(Tid(706, "%000002c2"), Attrs([Attr("address","0x85C"), -Attr("insn","asr x1, x1, #1")]), Var("R1",Imm(64)), -SIGNED(64,Extract(63,1,Var("R1",Imm(64)))))]), -Jmps([Goto(Tid(712, "%000002c8"), Attrs([Attr("address","0x860"), -Attr("insn","cbz x1, #0x18")]), EQ(Var("R1",Imm(64)),Int(0,64)), -Direct(Tid(710, "%000002c6"))), Goto(Tid(1_979, "%000007bb"), Attrs([]), - Int(1,1), Direct(Tid(1_133, "%0000046d")))])), Blk(Tid(1_133, "%0000046d"), - Attrs([Attr("address","0x864")]), Phis([]), -Defs([Def(Tid(1_136, "%00000470"), Attrs([Attr("address","0x864"), -Attr("insn","adrp x2, #65536")]), Var("R2",Imm(64)), Int(65536,64)), -Def(Tid(1_143, "%00000477"), Attrs([Attr("address","0x868"), -Attr("insn","ldr x2, [x2, #0xfe0]")]), Var("R2",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R2",Imm(64)),Int(4064,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(1_148, "%0000047c"), Attrs([Attr("address","0x86C"), -Attr("insn","cbz x2, #0xc")]), EQ(Var("R2",Imm(64)),Int(0,64)), -Direct(Tid(710, "%000002c6"))), Goto(Tid(1_980, "%000007bc"), Attrs([]), - Int(1,1), Direct(Tid(1_152, "%00000480")))])), Blk(Tid(710, "%000002c6"), - Attrs([Attr("address","0x878")]), Phis([]), Defs([]), -Jmps([Call(Tid(718, "%000002ce"), Attrs([Attr("address","0x878"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))])), -Blk(Tid(1_152, "%00000480"), Attrs([Attr("address","0x870")]), Phis([]), -Defs([Def(Tid(1_156, "%00000484"), Attrs([Attr("address","0x870"), -Attr("insn","mov x16, x2")]), Var("R16",Imm(64)), Var("R2",Imm(64)))]), -Jmps([Call(Tid(1_161, "%00000489"), Attrs([Attr("address","0x874"), -Attr("insn","br x16")]), Int(1,1), (Indirect(Var("R16",Imm(64))),))]))])), -Sub(Tid(1_937, "@strlen"), - Attrs([Attr("c.proto","unsigned long (*)( const char* s)"), -Attr("pure","()"), Attr("address","0x720"), Attr("stub","()")]), "strlen", - Args([Arg(Tid(2_012, "%000007dc"), Attrs([Attr("nonnull","()"), -Attr("c.layout","*[char : 8]"), Attr("c.data","Top:u8 ptr"), -Attr("c.type"," const char*")]), Var("strlen_s",Imm(64)), Var("R0",Imm(64)), -In()), Arg(Tid(2_013, "%000007dd"), - Attrs([Attr("c.layout","[unsigned long : 64]"), Attr("c.data","Top:u64"), -Attr("c.type","unsigned long")]), Var("strlen_result",Imm(64)), -Var("R0",Imm(64)), Out())]), Blks([Blk(Tid(921, "@strlen"), - Attrs([Attr("address","0x720")]), Phis([]), -Defs([Def(Tid(1_473, "%000005c1"), Attrs([Attr("address","0x720"), -Attr("insn","adrp x16, #69632")]), Var("R16",Imm(64)), Int(69632,64)), -Def(Tid(1_480, "%000005c8"), Attrs([Attr("address","0x724"), -Attr("insn","ldr x17, [x16, #0x8]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(1_486, "%000005ce"), Attrs([Attr("address","0x728"), -Attr("insn","add x16, x16, #0x8")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(8,64)))]), Jmps([Call(Tid(1_491, "%000005d3"), - Attrs([Attr("address","0x72C"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))]))]))) \ No newline at end of file diff --git a/src/test/extraspec_correct/malloc_memcpy_strlen_memset_free/clang_O2/malloc_memcpy_strlen_memset_free.bir b/src/test/extraspec_correct/malloc_memcpy_strlen_memset_free/clang_O2/malloc_memcpy_strlen_memset_free.bir deleted file mode 100644 index fa9dd576a..000000000 --- a/src/test/extraspec_correct/malloc_memcpy_strlen_memset_free/clang_O2/malloc_memcpy_strlen_memset_free.bir +++ /dev/null @@ -1,348 +0,0 @@ -000007bd: program -00000776: sub __cxa_finalize(__cxa_finalize_result) -000007be: __cxa_finalize_result :: out u32 = low:32[R0] - -00000469: -000005ed: R16 := 0x11000 -000005f4: R17 := mem[R16 + 0x18, el]:u64 -000005fa: R16 := R16 + 0x18 -000005ff: call R17 with noreturn - -00000777: sub __do_global_dtors_aux(__do_global_dtors_aux_result) -000007bf: __do_global_dtors_aux_result :: out u32 = low:32[R0] - -000002d2: -000002d6: #3 := R31 - 0x20 -000002dc: mem := mem with [#3, el]:u64 <- R29 -000002e2: mem := mem with [#3 + 8, el]:u64 <- R30 -000002e6: R31 := #3 -000002ec: R29 := R31 -000002f4: mem := mem with [R31 + 0x10, el]:u64 <- R19 -000002f9: R19 := 0x11000 -00000300: R0 := pad:64[mem[R19 + 0x70]] -00000307: when 31:0[R0] <> 0 goto %00000305 -000007b3: goto %00000432 - -00000432: -00000435: R0 := 0x10000 -0000043c: R0 := mem[R0 + 0xFC8, el]:u64 -00000442: when R0 = 0 goto %00000440 -000007b4: goto %00000459 - -00000459: -0000045c: R0 := 0x11000 -00000463: R0 := mem[R0 + 0x58, el]:u64 -00000468: R30 := 0x8B0 -0000046b: call @__cxa_finalize with return %00000440 - -00000440: -00000448: R30 := 0x8B4 -0000044a: call @deregister_tm_clones with return %0000044c - -0000044c: -0000044f: R0 := 1 -00000457: mem := mem with [R19 + 0x70] <- 7:0[R0] -000007b5: goto %00000305 - -00000305: -0000030f: R19 := mem[R31 + 0x10, el]:u64 -00000316: R29 := mem[R31, el]:u64 -0000031b: R30 := mem[R31 + 8, el]:u64 -0000031f: R31 := R31 + 0x20 -00000324: call R30 with noreturn - -0000077b: sub __libc_start_main(__libc_start_main_main, __libc_start_main_arg2, __libc_start_main_arg3, __libc_start_main_auxv, __libc_start_main_result) -000007c0: __libc_start_main_main :: in u64 = R0 -000007c1: __libc_start_main_arg2 :: in u32 = low:32[R1] -000007c2: __libc_start_main_arg3 :: in out u64 = R2 -000007c3: __libc_start_main_auxv :: in out u64 = R3 -000007c4: __libc_start_main_result :: out u32 = low:32[R0] - -0000022b: -000005d7: R16 := 0x11000 -000005de: R17 := mem[R16 + 0x10, el]:u64 -000005e4: R16 := R16 + 0x10 -000005e9: call R17 with noreturn - -0000077c: sub _fini(_fini_result) -000007c5: _fini_result :: out u32 = low:32[R0] - -0000001f: -00000025: #0 := R31 - 0x10 -0000002b: mem := mem with [#0, el]:u64 <- R29 -00000031: mem := mem with [#0 + 8, el]:u64 <- R30 -00000035: R31 := #0 -0000003b: R29 := R31 -00000042: R29 := mem[R31, el]:u64 -00000047: R30 := mem[R31 + 8, el]:u64 -0000004b: R31 := R31 + 0x10 -00000050: call R30 with noreturn - -0000077d: sub _init(_init_result) -000007c6: _init_result :: out u32 = low:32[R0] - -0000069f: -000006a5: #8 := R31 - 0x10 -000006ab: mem := mem with [#8, el]:u64 <- R29 -000006b1: mem := mem with [#8 + 8, el]:u64 <- R30 -000006b5: R31 := #8 -000006bb: R29 := R31 -000006c0: R30 := 0x6E8 -000006c2: call @call_weak_fn with return %000006c4 - -000006c4: -000006c9: R29 := mem[R31, el]:u64 -000006ce: R30 := mem[R31 + 8, el]:u64 -000006d2: R31 := R31 + 0x10 -000006d7: call R30 with noreturn - -0000077e: sub _start(_start_result) -000007c7: _start_result :: out u32 = low:32[R0] - -000001ec: -000001f1: R29 := 0 -000001f6: R30 := 0 -000001fc: R5 := R0 -00000203: R1 := mem[R31, el]:u64 -00000209: R2 := R31 + 8 -0000020f: R6 := R31 -00000214: R0 := 0x10000 -0000021b: R0 := mem[R0 + 0xFD8, el]:u64 -00000220: R3 := 0 -00000225: R4 := 0 -0000022a: R30 := 0x7F0 -0000022d: call @__libc_start_main with return %0000022f - -0000022f: -00000232: R30 := 0x7F4 -00000235: call @abort with return %000007b6 - -000007b6: -000007b7: call @call_weak_fn with noreturn - -00000781: sub abort() - - -00000233: -00000645: R16 := 0x11000 -0000064c: R17 := mem[R16 + 0x38, el]:u64 -00000652: R16 := R16 + 0x38 -00000657: call R17 with noreturn - -00000782: sub call_weak_fn(call_weak_fn_result) -000007c8: call_weak_fn_result :: out u32 = low:32[R0] - -00000237: -0000023a: R0 := 0x10000 -00000241: R0 := mem[R0 + 0xFD0, el]:u64 -00000247: when R0 = 0 goto %00000245 -000007b8: goto %000004a9 - -00000245: -0000024d: call R30 with noreturn - -000004a9: -000004ac: goto @__gmon_start__ - -000004aa: -0000062f: R16 := 0x11000 -00000636: R17 := mem[R16 + 0x30, el]:u64 -0000063c: R16 := R16 + 0x30 -00000641: call R17 with noreturn - -00000784: sub deregister_tm_clones(deregister_tm_clones_result) -000007c9: deregister_tm_clones_result :: out u32 = low:32[R0] - -00000253: -00000256: R0 := 0x11000 -0000025c: R0 := R0 + 0x70 -00000261: R1 := 0x11000 -00000267: R1 := R1 + 0x70 -0000026d: #1 := ~R0 -00000272: #2 := R1 + ~R0 -00000278: VF := extend:65[#2 + 1] <> extend:65[R1] + extend:65[#1] + 1 -0000027e: CF := pad:65[#2 + 1] <> pad:65[R1] + pad:65[#1] + 1 -00000282: ZF := #2 + 1 = 0 -00000286: NF := 63:63[#2 + 1] -0000028c: when ZF goto %0000028a -000007b9: goto %0000048b - -0000048b: -0000048e: R1 := 0x10000 -00000495: R1 := mem[R1 + 0xFC0, el]:u64 -0000049a: when R1 = 0 goto %0000028a -000007ba: goto %0000049e - -0000028a: -00000292: call R30 with noreturn - -0000049e: -000004a2: R16 := R1 -000004a7: call R16 with noreturn - -00000787: sub frame_dummy(frame_dummy_result) -000007ca: frame_dummy_result :: out u32 = low:32[R0] - -0000032a: -0000032c: call @register_tm_clones with noreturn - -00000788: sub free(free_ptr) -000007cb: free_ptr :: in out u64 = R0 - -000003fd: -00000671: R16 := 0x11000 -00000678: R17 := mem[R16 + 0x48, el]:u64 -0000067e: R16 := R16 + 0x48 -00000683: call R17 with noreturn - -00000789: sub main(main_argc, main_argv, main_result) -000007cc: main_argc :: in u32 = low:32[R0] -000007cd: main_argv :: in out u64 = R1 -000007ce: main_result :: out u32 = low:32[R0] - -0000032e: -00000332: #4 := R31 - 0x30 -00000338: mem := mem with [#4, el]:u64 <- R29 -0000033e: mem := mem with [#4 + 8, el]:u64 <- R30 -00000342: R31 := #4 -0000034a: mem := mem with [R31 + 0x10, el]:u64 <- R21 -00000350: #5 := R31 + 0x20 -00000356: mem := mem with [#5, el]:u64 <- R20 -0000035c: mem := mem with [#5 + 8, el]:u64 <- R19 -00000362: R29 := R31 -00000367: R0 := 0xB -0000036c: R30 := 0x8EC -0000036f: call @malloc with return %00000371 - -00000371: -00000374: R21 := 0x11000 -00000379: R20 := 0x11000 -0000037f: R20 := R20 + 0x61 -00000385: R19 := R0 -0000038d: mem := mem with [R21 + 0x78, el]:u64 <- R0 -00000393: R0 := R20 -00000398: R30 := 0x908 -0000039b: call @strlen with return %0000039d - -0000039d: -000003a1: R2 := R0 -000003a7: R0 := R19 -000003ad: R1 := R20 -000003b2: R30 := 0x918 -000003b5: call @memcpy with return %000003b7 - -000003b7: -000003bb: R0 := R19 -000003c0: R30 := 0x920 -000003c3: call @puts with return %000003c5 - -000003c5: -000003ca: R19 := mem[R21 + 0x78, el]:u64 -000003d0: R0 := R19 -000003d5: R30 := 0x92C -000003d7: call @strlen with return %000003d9 - -000003d9: -000003dd: R2 := R0 -000003e3: R0 := R19 -000003e8: R1 := 1 -000003ed: R30 := 0x93C -000003f0: call @memset with return %000003f2 - -000003f2: -000003f7: R0 := mem[R21 + 0x78, el]:u64 -000003fc: R30 := 0x944 -000003ff: call @free with return %00000401 - -00000401: -00000404: R0 := 0 -0000040a: #6 := R31 + 0x20 -0000040f: R20 := mem[#6, el]:u64 -00000414: R19 := mem[#6 + 8, el]:u64 -0000041b: R21 := mem[R31 + 0x10, el]:u64 -00000422: R29 := mem[R31, el]:u64 -00000427: R30 := mem[R31 + 8, el]:u64 -0000042b: R31 := R31 + 0x30 -00000430: call R30 with noreturn - -0000078a: sub malloc(malloc_size, malloc_result) -000007cf: malloc_size :: in u64 = R0 -000007d0: malloc_result :: out u64 = R0 - -0000036d: -00000603: R16 := 0x11000 -0000060a: R17 := mem[R16 + 0x20, el]:u64 -00000610: R16 := R16 + 0x20 -00000615: call R17 with noreturn - -0000078b: sub memcpy(memcpy_dst, memcpy_src, memcpy_n, memcpy_result) -000007d1: memcpy_dst :: in out u64 = R0 -000007d2: memcpy_src :: in out u64 = R1 -000007d3: memcpy_n :: in u64 = R2 -000007d4: memcpy_result :: out u64 = R0 - -000003b3: -000005ab: R16 := 0x11000 -000005b2: R17 := mem[R16, el]:u64 -000005b8: R16 := R16 -000005bd: call R17 with noreturn - -0000078c: sub memset(memset_buf, memset_c, memset_n, memset_result) -000007d5: memset_buf :: in out u64 = R0 -000007d6: memset_c :: in u32 = low:32[R1] -000007d7: memset_n :: in u64 = R2 -000007d8: memset_result :: out u64 = R0 - -000003ee: -00000619: R16 := 0x11000 -00000620: R17 := mem[R16 + 0x28, el]:u64 -00000626: R16 := R16 + 0x28 -0000062b: call R17 with noreturn - -0000078d: sub puts(puts_s, puts_result) -000007d9: puts_s :: in u64 = R0 -000007da: puts_result :: out u32 = low:32[R0] - -000003c1: -0000065b: R16 := 0x11000 -00000662: R17 := mem[R16 + 0x40, el]:u64 -00000668: R16 := R16 + 0x40 -0000066d: call R17 with noreturn - -0000078e: sub register_tm_clones(register_tm_clones_result) -000007db: register_tm_clones_result :: out u32 = low:32[R0] - -00000294: -00000297: R0 := 0x11000 -0000029d: R0 := R0 + 0x70 -000002a2: R1 := 0x11000 -000002a8: R1 := R1 + 0x70 -000002af: R1 := R1 + ~R0 + 1 -000002b5: R2 := 0.63:63[R1] -000002bc: R1 := R2 + (R1 ~>> 3) -000002c2: R1 := extend:64[63:1[R1]] -000002c8: when R1 = 0 goto %000002c6 -000007bb: goto %0000046d - -0000046d: -00000470: R2 := 0x10000 -00000477: R2 := mem[R2 + 0xFE0, el]:u64 -0000047c: when R2 = 0 goto %000002c6 -000007bc: goto %00000480 - -000002c6: -000002ce: call R30 with noreturn - -00000480: -00000484: R16 := R2 -00000489: call R16 with noreturn - -00000791: sub strlen(strlen_s, strlen_result) -000007dc: strlen_s :: in u64 = R0 -000007dd: strlen_result :: out u64 = R0 - -00000399: -000005c1: R16 := 0x11000 -000005c8: R17 := mem[R16 + 8, el]:u64 -000005ce: R16 := R16 + 8 -000005d3: call R17 with noreturn diff --git a/src/test/extraspec_correct/malloc_memcpy_strlen_memset_free/clang_O2/malloc_memcpy_strlen_memset_free.gts b/src/test/extraspec_correct/malloc_memcpy_strlen_memset_free/clang_O2/malloc_memcpy_strlen_memset_free.gts deleted file mode 100644 index 4d2336e1b..000000000 Binary files a/src/test/extraspec_correct/malloc_memcpy_strlen_memset_free/clang_O2/malloc_memcpy_strlen_memset_free.gts and /dev/null differ diff --git a/src/test/extraspec_correct/malloc_memcpy_strlen_memset_free/clang_O2/malloc_memcpy_strlen_memset_free.md5sum b/src/test/extraspec_correct/malloc_memcpy_strlen_memset_free/clang_O2/malloc_memcpy_strlen_memset_free.md5sum new file mode 100644 index 000000000..dba295e5f --- /dev/null +++ b/src/test/extraspec_correct/malloc_memcpy_strlen_memset_free/clang_O2/malloc_memcpy_strlen_memset_free.md5sum @@ -0,0 +1,5 @@ +7953a8161ad8503a61edc3f8d400a481 extraspec_correct/malloc_memcpy_strlen_memset_free/clang_O2/a.out +776d60d352b95a25565682c2594d4481 extraspec_correct/malloc_memcpy_strlen_memset_free/clang_O2/malloc_memcpy_strlen_memset_free.adt +e6af82e00b489e8bc0ea1b7d2dab1612 extraspec_correct/malloc_memcpy_strlen_memset_free/clang_O2/malloc_memcpy_strlen_memset_free.bir +b5ee617fb8c1b97a66a897742f321d96 extraspec_correct/malloc_memcpy_strlen_memset_free/clang_O2/malloc_memcpy_strlen_memset_free.relf +0ed91162ba8291d8d06ef4feb7e80c8c extraspec_correct/malloc_memcpy_strlen_memset_free/clang_O2/malloc_memcpy_strlen_memset_free.gts diff --git a/src/test/extraspec_correct/malloc_memcpy_strlen_memset_free/clang_O2/malloc_memcpy_strlen_memset_free.relf b/src/test/extraspec_correct/malloc_memcpy_strlen_memset_free/clang_O2/malloc_memcpy_strlen_memset_free.relf deleted file mode 100644 index 3164ecd00..000000000 --- a/src/test/extraspec_correct/malloc_memcpy_strlen_memset_free/clang_O2/malloc_memcpy_strlen_memset_free.relf +++ /dev/null @@ -1,144 +0,0 @@ - -Relocation section '.rela.dyn' at offset 0x528 contains 8 entries: - Offset Info Type Symbol's Value Symbol's Name + Addend -0000000000010dc8 0000000000000403 R_AARCH64_RELATIVE 8d0 -0000000000010dd0 0000000000000403 R_AARCH64_RELATIVE 880 -0000000000010fd8 0000000000000403 R_AARCH64_RELATIVE 8d4 -0000000000011058 0000000000000403 R_AARCH64_RELATIVE 11058 -0000000000010fc0 0000000600000401 R_AARCH64_GLOB_DAT 0000000000000000 _ITM_deregisterTMCloneTable + 0 -0000000000010fc8 0000000700000401 R_AARCH64_GLOB_DAT 0000000000000000 __cxa_finalize@GLIBC_2.17 + 0 -0000000000010fd0 0000000a00000401 R_AARCH64_GLOB_DAT 0000000000000000 __gmon_start__ + 0 -0000000000010fe0 0000000e00000401 R_AARCH64_GLOB_DAT 0000000000000000 _ITM_registerTMCloneTable + 0 - -Relocation section '.rela.plt' at offset 0x5e8 contains 10 entries: - Offset Info Type Symbol's Value Symbol's Name + Addend -0000000000011000 0000000300000402 R_AARCH64_JUMP_SLOT 0000000000000000 memcpy@GLIBC_2.17 + 0 -0000000000011008 0000000400000402 R_AARCH64_JUMP_SLOT 0000000000000000 strlen@GLIBC_2.17 + 0 -0000000000011010 0000000500000402 R_AARCH64_JUMP_SLOT 0000000000000000 __libc_start_main@GLIBC_2.34 + 0 -0000000000011018 0000000700000402 R_AARCH64_JUMP_SLOT 0000000000000000 __cxa_finalize@GLIBC_2.17 + 0 -0000000000011020 0000000800000402 R_AARCH64_JUMP_SLOT 0000000000000000 malloc@GLIBC_2.17 + 0 -0000000000011028 0000000900000402 R_AARCH64_JUMP_SLOT 0000000000000000 memset@GLIBC_2.17 + 0 -0000000000011030 0000000a00000402 R_AARCH64_JUMP_SLOT 0000000000000000 __gmon_start__ + 0 -0000000000011038 0000000b00000402 R_AARCH64_JUMP_SLOT 0000000000000000 abort@GLIBC_2.17 + 0 -0000000000011040 0000000c00000402 R_AARCH64_JUMP_SLOT 0000000000000000 puts@GLIBC_2.17 + 0 -0000000000011048 0000000d00000402 R_AARCH64_JUMP_SLOT 0000000000000000 free@GLIBC_2.17 + 0 - -Symbol table '.dynsym' contains 15 entries: - Num: Value Size Type Bind Vis Ndx Name - 0: 0000000000000000 0 NOTYPE LOCAL DEFAULT UND - 1: 00000000000006d8 0 SECTION LOCAL DEFAULT 11 .init - 2: 0000000000011050 0 SECTION LOCAL DEFAULT 23 .data - 3: 0000000000000000 0 FUNC GLOBAL DEFAULT UND memcpy@GLIBC_2.17 (2) - 4: 0000000000000000 0 FUNC GLOBAL DEFAULT UND strlen@GLIBC_2.17 (2) - 5: 0000000000000000 0 FUNC GLOBAL DEFAULT UND __libc_start_main@GLIBC_2.34 (3) - 6: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_deregisterTMCloneTable - 7: 0000000000000000 0 FUNC WEAK DEFAULT UND __cxa_finalize@GLIBC_2.17 (2) - 8: 0000000000000000 0 FUNC GLOBAL DEFAULT UND malloc@GLIBC_2.17 (2) - 9: 0000000000000000 0 FUNC GLOBAL DEFAULT UND memset@GLIBC_2.17 (2) - 10: 0000000000000000 0 NOTYPE WEAK DEFAULT UND __gmon_start__ - 11: 0000000000000000 0 FUNC GLOBAL DEFAULT UND abort@GLIBC_2.17 (2) - 12: 0000000000000000 0 FUNC GLOBAL DEFAULT UND puts@GLIBC_2.17 (2) - 13: 0000000000000000 0 FUNC GLOBAL DEFAULT UND free@GLIBC_2.17 (2) - 14: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_registerTMCloneTable - -Symbol table '.symtab' contains 99 entries: - Num: Value Size Type Bind Vis Ndx Name - 0: 0000000000000000 0 NOTYPE LOCAL DEFAULT UND - 1: 0000000000000238 0 SECTION LOCAL DEFAULT 1 .interp - 2: 0000000000000254 0 SECTION LOCAL DEFAULT 2 .note.gnu.build-id - 3: 0000000000000278 0 SECTION LOCAL DEFAULT 3 .note.ABI-tag - 4: 0000000000000298 0 SECTION LOCAL DEFAULT 4 .gnu.hash - 5: 00000000000002b8 0 SECTION LOCAL DEFAULT 5 .dynsym - 6: 0000000000000420 0 SECTION LOCAL DEFAULT 6 .dynstr - 7: 00000000000004d4 0 SECTION LOCAL DEFAULT 7 .gnu.version - 8: 00000000000004f8 0 SECTION LOCAL DEFAULT 8 .gnu.version_r - 9: 0000000000000528 0 SECTION LOCAL DEFAULT 9 .rela.dyn - 10: 00000000000005e8 0 SECTION LOCAL DEFAULT 10 .rela.plt - 11: 00000000000006d8 0 SECTION LOCAL DEFAULT 11 .init - 12: 00000000000006f0 0 SECTION LOCAL DEFAULT 12 .plt - 13: 00000000000007c0 0 SECTION LOCAL DEFAULT 13 .text - 14: 0000000000000958 0 SECTION LOCAL DEFAULT 14 .fini - 15: 000000000000096c 0 SECTION LOCAL DEFAULT 15 .rodata - 16: 0000000000000970 0 SECTION LOCAL DEFAULT 16 .eh_frame_hdr - 17: 00000000000009b0 0 SECTION LOCAL DEFAULT 17 .eh_frame - 18: 0000000000010dc8 0 SECTION LOCAL DEFAULT 18 .init_array - 19: 0000000000010dd0 0 SECTION LOCAL DEFAULT 19 .fini_array - 20: 0000000000010dd8 0 SECTION LOCAL DEFAULT 20 .dynamic - 21: 0000000000010fb8 0 SECTION LOCAL DEFAULT 21 .got - 22: 0000000000010fe8 0 SECTION LOCAL DEFAULT 22 .got.plt - 23: 0000000000011050 0 SECTION LOCAL DEFAULT 23 .data - 24: 0000000000011070 0 SECTION LOCAL DEFAULT 24 .bss - 25: 0000000000000000 0 SECTION LOCAL DEFAULT 25 .comment - 26: 0000000000000000 0 FILE LOCAL DEFAULT ABS Scrt1.o - 27: 0000000000000278 0 NOTYPE LOCAL DEFAULT 3 $d - 28: 0000000000000278 32 OBJECT LOCAL DEFAULT 3 __abi_tag - 29: 00000000000007c0 0 NOTYPE LOCAL DEFAULT 13 $x - 30: 00000000000009c4 0 NOTYPE LOCAL DEFAULT 17 $d - 31: 000000000000096c 0 NOTYPE LOCAL DEFAULT 15 $d - 32: 0000000000000000 0 FILE LOCAL DEFAULT ABS crti.o - 33: 00000000000007f4 0 NOTYPE LOCAL DEFAULT 13 $x - 34: 00000000000007f4 20 FUNC LOCAL DEFAULT 13 call_weak_fn - 35: 00000000000006d8 0 NOTYPE LOCAL DEFAULT 11 $x - 36: 0000000000000958 0 NOTYPE LOCAL DEFAULT 14 $x - 37: 0000000000000000 0 FILE LOCAL DEFAULT ABS crtn.o - 38: 00000000000006e8 0 NOTYPE LOCAL DEFAULT 11 $x - 39: 0000000000000964 0 NOTYPE LOCAL DEFAULT 14 $x - 40: 0000000000000000 0 FILE LOCAL DEFAULT ABS crtstuff.c - 41: 0000000000000810 0 NOTYPE LOCAL DEFAULT 13 $x - 42: 0000000000000810 0 FUNC LOCAL DEFAULT 13 deregister_tm_clones - 43: 0000000000000840 0 FUNC LOCAL DEFAULT 13 register_tm_clones - 44: 0000000000011058 0 NOTYPE LOCAL DEFAULT 23 $d - 45: 0000000000000880 0 FUNC LOCAL DEFAULT 13 __do_global_dtors_aux - 46: 0000000000011070 1 OBJECT LOCAL DEFAULT 24 completed.0 - 47: 0000000000010dd0 0 NOTYPE LOCAL DEFAULT 19 $d - 48: 0000000000010dd0 0 OBJECT LOCAL DEFAULT 19 __do_global_dtors_aux_fini_array_entry - 49: 00000000000008d0 0 FUNC LOCAL DEFAULT 13 frame_dummy - 50: 0000000000010dc8 0 NOTYPE LOCAL DEFAULT 18 $d - 51: 0000000000010dc8 0 OBJECT LOCAL DEFAULT 18 __frame_dummy_init_array_entry - 52: 00000000000009d8 0 NOTYPE LOCAL DEFAULT 17 $d - 53: 0000000000011070 0 NOTYPE LOCAL DEFAULT 24 $d - 54: 0000000000000000 0 FILE LOCAL DEFAULT ABS malloc_memcpy_strlen_memset_free.c - 55: 00000000000008d4 0 NOTYPE LOCAL DEFAULT 13 $x.0 - 56: 0000000000011060 0 NOTYPE LOCAL DEFAULT 23 $d.1 - 57: 0000000000011078 0 NOTYPE LOCAL DEFAULT 24 $d.2 - 58: 000000000000002a 0 NOTYPE LOCAL DEFAULT 25 $d.3 - 59: 0000000000000a38 0 NOTYPE LOCAL DEFAULT 17 $d.4 - 60: 0000000000000000 0 FILE LOCAL DEFAULT ABS crtstuff.c - 61: 0000000000000a7c 0 NOTYPE LOCAL DEFAULT 17 $d - 62: 0000000000000a7c 0 OBJECT LOCAL DEFAULT 17 __FRAME_END__ - 63: 0000000000000000 0 FILE LOCAL DEFAULT ABS - 64: 0000000000010dd8 0 OBJECT LOCAL DEFAULT ABS _DYNAMIC - 65: 0000000000000970 0 NOTYPE LOCAL DEFAULT 16 __GNU_EH_FRAME_HDR - 66: 0000000000010fb8 0 OBJECT LOCAL DEFAULT ABS _GLOBAL_OFFSET_TABLE_ - 67: 00000000000006f0 0 NOTYPE LOCAL DEFAULT 12 $x - 68: 0000000000000000 0 FUNC GLOBAL DEFAULT UND memcpy@GLIBC_2.17 - 69: 0000000000000000 0 FUNC GLOBAL DEFAULT UND strlen@GLIBC_2.17 - 70: 0000000000000000 0 FUNC GLOBAL DEFAULT UND __libc_start_main@GLIBC_2.34 - 71: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_deregisterTMCloneTable - 72: 0000000000011050 0 NOTYPE WEAK DEFAULT 23 data_start - 73: 000000000001106c 0 NOTYPE GLOBAL DEFAULT 24 __bss_start__ - 74: 0000000000000000 0 FUNC WEAK DEFAULT UND __cxa_finalize@GLIBC_2.17 - 75: 0000000000011080 0 NOTYPE GLOBAL DEFAULT 24 _bss_end__ - 76: 000000000001106c 0 NOTYPE GLOBAL DEFAULT 23 _edata - 77: 0000000000000958 0 FUNC GLOBAL HIDDEN 14 _fini - 78: 0000000000011080 0 NOTYPE GLOBAL DEFAULT 24 __bss_end__ - 79: 0000000000000000 0 FUNC GLOBAL DEFAULT UND malloc@GLIBC_2.17 - 80: 0000000000000000 0 FUNC GLOBAL DEFAULT UND memset@GLIBC_2.17 - 81: 0000000000011060 1 OBJECT GLOBAL DEFAULT 23 password - 82: 0000000000011050 0 NOTYPE GLOBAL DEFAULT 23 __data_start - 83: 0000000000000000 0 NOTYPE WEAK DEFAULT UND __gmon_start__ - 84: 0000000000011058 0 OBJECT GLOBAL HIDDEN 23 __dso_handle - 85: 0000000000000000 0 FUNC GLOBAL DEFAULT UND abort@GLIBC_2.17 - 86: 000000000000096c 4 OBJECT GLOBAL DEFAULT 15 _IO_stdin_used - 87: 0000000000000000 0 FUNC GLOBAL DEFAULT UND puts@GLIBC_2.17 - 88: 0000000000011080 0 NOTYPE GLOBAL DEFAULT 24 _end - 89: 0000000000000000 0 FUNC GLOBAL DEFAULT UND free@GLIBC_2.17 - 90: 00000000000007c0 52 FUNC GLOBAL DEFAULT 13 _start - 91: 0000000000011078 8 OBJECT GLOBAL DEFAULT 24 buf - 92: 0000000000011080 0 NOTYPE GLOBAL DEFAULT 24 __end__ - 93: 0000000000011061 11 OBJECT GLOBAL DEFAULT 23 stext - 94: 000000000001106c 0 NOTYPE GLOBAL DEFAULT 24 __bss_start - 95: 00000000000008d4 132 FUNC GLOBAL DEFAULT 13 main - 96: 0000000000011070 0 OBJECT GLOBAL HIDDEN 23 __TMC_END__ - 97: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_registerTMCloneTable - 98: 00000000000006d8 0 FUNC GLOBAL HIDDEN 11 _init diff --git a/src/test/extraspec_correct/malloc_memcpy_strlen_memset_free/gcc_O2/malloc_memcpy_strlen_memset_free.adt b/src/test/extraspec_correct/malloc_memcpy_strlen_memset_free/gcc_O2/malloc_memcpy_strlen_memset_free.adt deleted file mode 100644 index fc64a47cf..000000000 --- a/src/test/extraspec_correct/malloc_memcpy_strlen_memset_free/gcc_O2/malloc_memcpy_strlen_memset_free.adt +++ /dev/null @@ -1,731 +0,0 @@ -Project(Attrs([Attr("filename","\"a.out\""), -Attr("image-specification","(declare abi (name str))\n(declare arch (name str))\n(declare base-address (addr int))\n(declare bias (off int))\n(declare bits (size int))\n(declare code-region (addr int) (size int) (off int))\n(declare code-start (addr int))\n(declare entry-point (addr int))\n(declare external-reference (addr int) (name str))\n(declare format (name str))\n(declare is-executable (flag bool))\n(declare is-little-endian (flag bool))\n(declare llvm:base-address (addr int))\n(declare llvm:code-entry (name str) (off int) (size int))\n(declare llvm:coff-import-library (name str))\n(declare llvm:coff-virtual-section-header (name str) (addr int) (size int))\n(declare llvm:elf-program-header (name str) (off int) (size int))\n(declare llvm:elf-program-header-flags (name str) (ld bool) (r bool) \n (w bool) (x bool))\n(declare llvm:elf-virtual-program-header (name str) (addr int) (size int))\n(declare llvm:entry-point (addr int))\n(declare llvm:macho-symbol (name str) (value int))\n(declare llvm:name-reference (at int) (name str))\n(declare llvm:relocation (at int) (addr int))\n(declare llvm:section-entry (name str) (addr int) (size int) (off int))\n(declare llvm:section-flags (name str) (r bool) (w bool) (x bool))\n(declare llvm:segment-command (name str) (off int) (size int))\n(declare llvm:segment-command-flags (name str) (r bool) (w bool) (x bool))\n(declare llvm:symbol-entry (name str) (addr int) (size int) (off int)\n (value int))\n(declare llvm:virtual-segment-command (name str) (addr int) (size int))\n(declare mapped (addr int) (size int) (off int))\n(declare named-region (addr int) (size int) (name str))\n(declare named-symbol (addr int) (name str))\n(declare require (name str))\n(declare section (addr int) (size int))\n(declare segment (addr int) (size int) (r bool) (w bool) (x bool))\n(declare subarch (name str))\n(declare symbol-chunk (addr int) (size int) (root int))\n(declare symbol-value (addr int) (value int))\n(declare system (name str))\n(declare vendor (name str))\n\n(abi unknown)\n(arch aarch64)\n(base-address 0)\n(bias 0)\n(bits 64)\n(code-region 2452 20 2452)\n(code-region 1984 468 1984)\n(code-region 1776 192 1776)\n(code-region 1752 24 1752)\n(code-start 2228)\n(code-start 2176)\n(code-start 1984)\n(entry-point 2176)\n(external-reference 69592 _ITM_deregisterTMCloneTable)\n(external-reference 69600 __cxa_finalize)\n(external-reference 69608 __gmon_start__)\n(external-reference 69624 _ITM_registerTMCloneTable)\n(external-reference 69504 strlen)\n(external-reference 69512 __libc_start_main)\n(external-reference 69520 __cxa_finalize)\n(external-reference 69528 __memcpy_chk)\n(external-reference 69536 malloc)\n(external-reference 69544 memset)\n(external-reference 69552 __gmon_start__)\n(external-reference 69560 abort)\n(external-reference 69568 puts)\n(external-reference 69576 free)\n(format elf)\n(is-executable true)\n(is-little-endian true)\n(llvm:base-address 0)\n(llvm:code-entry free 0 0)\n(llvm:code-entry puts 0 0)\n(llvm:code-entry abort 0 0)\n(llvm:code-entry memset 0 0)\n(llvm:code-entry malloc 0 0)\n(llvm:code-entry __memcpy_chk 0 0)\n(llvm:code-entry __cxa_finalize 0 0)\n(llvm:code-entry __libc_start_main 0 0)\n(llvm:code-entry strlen 0 0)\n(llvm:code-entry _init 1752 0)\n(llvm:code-entry main 1984 136)\n(llvm:code-entry _start 2176 52)\n(llvm:code-entry free@GLIBC_2.17 0 0)\n(llvm:code-entry puts@GLIBC_2.17 0 0)\n(llvm:code-entry abort@GLIBC_2.17 0 0)\n(llvm:code-entry memset@GLIBC_2.17 0 0)\n(llvm:code-entry malloc@GLIBC_2.17 0 0)\n(llvm:code-entry _fini 2452 0)\n(llvm:code-entry __memcpy_chk@GLIBC_2.17 0 0)\n(llvm:code-entry __cxa_finalize@GLIBC_2.17 0 0)\n(llvm:code-entry __libc_start_main@GLIBC_2.34 0 0)\n(llvm:code-entry strlen@GLIBC_2.17 0 0)\n(llvm:code-entry frame_dummy 2448 0)\n(llvm:code-entry __do_global_dtors_aux 2368 0)\n(llvm:code-entry register_tm_clones 2304 0)\n(llvm:code-entry deregister_tm_clones 2256 0)\n(llvm:code-entry call_weak_fn 2228 20)\n(llvm:code-entry .fini 2452 20)\n(llvm:code-entry .text 1984 468)\n(llvm:code-entry .plt 1776 192)\n(llvm:code-entry .init 1752 24)\n(llvm:elf-program-header 08 3432 664)\n(llvm:elf-program-header 07 0 0)\n(llvm:elf-program-header 06 2476 60)\n(llvm:elf-program-header 05 596 68)\n(llvm:elf-program-header 04 3448 496)\n(llvm:elf-program-header 03 3432 692)\n(llvm:elf-program-header 02 0 2716)\n(llvm:elf-program-header 01 568 27)\n(llvm:elf-program-header 00 64 504)\n(llvm:elf-program-header-flags 08 false true false false)\n(llvm:elf-program-header-flags 07 false true true false)\n(llvm:elf-program-header-flags 06 false true false false)\n(llvm:elf-program-header-flags 05 false true false false)\n(llvm:elf-program-header-flags 04 false true true false)\n(llvm:elf-program-header-flags 03 true true true false)\n(llvm:elf-program-header-flags 02 true true false true)\n(llvm:elf-program-header-flags 01 false true false false)\n(llvm:elf-program-header-flags 00 false true false false)\n(llvm:elf-virtual-program-header 08 68968 664)\n(llvm:elf-virtual-program-header 07 0 0)\n(llvm:elf-virtual-program-header 06 2476 60)\n(llvm:elf-virtual-program-header 05 596 68)\n(llvm:elf-virtual-program-header 04 68984 496)\n(llvm:elf-virtual-program-header 03 68968 712)\n(llvm:elf-virtual-program-header 02 0 2716)\n(llvm:elf-virtual-program-header 01 568 27)\n(llvm:elf-virtual-program-header 00 64 504)\n(llvm:entry-point 2176)\n(llvm:name-reference 69576 free)\n(llvm:name-reference 69568 puts)\n(llvm:name-reference 69560 abort)\n(llvm:name-reference 69552 __gmon_start__)\n(llvm:name-reference 69544 memset)\n(llvm:name-reference 69536 malloc)\n(llvm:name-reference 69528 __memcpy_chk)\n(llvm:name-reference 69520 __cxa_finalize)\n(llvm:name-reference 69512 __libc_start_main)\n(llvm:name-reference 69504 strlen)\n(llvm:name-reference 69624 _ITM_registerTMCloneTable)\n(llvm:name-reference 69608 __gmon_start__)\n(llvm:name-reference 69600 __cxa_finalize)\n(llvm:name-reference 69592 _ITM_deregisterTMCloneTable)\n(llvm:section-entry .shstrtab 0 250 7193)\n(llvm:section-entry .strtab 0 697 6496)\n(llvm:section-entry .symtab 0 2328 4168)\n(llvm:section-entry .comment 0 43 4124)\n(llvm:section-entry .bss 69664 16 4124)\n(llvm:section-entry .data 69632 28 4096)\n(llvm:section-entry .got 69480 152 3944)\n(llvm:section-entry .dynamic 68984 496 3448)\n(llvm:section-entry .fini_array 68976 8 3440)\n(llvm:section-entry .init_array 68968 8 3432)\n(llvm:section-entry .eh_frame 2536 180 2536)\n(llvm:section-entry .eh_frame_hdr 2476 60 2476)\n(llvm:section-entry .rodata 2472 4 2472)\n(llvm:section-entry .fini 2452 20 2452)\n(llvm:section-entry .text 1984 468 1984)\n(llvm:section-entry .plt 1776 192 1776)\n(llvm:section-entry .init 1752 24 1752)\n(llvm:section-entry .rela.plt 1512 240 1512)\n(llvm:section-entry .rela.dyn 1320 192 1320)\n(llvm:section-entry .gnu.version_r 1272 48 1272)\n(llvm:section-entry .gnu.version 1242 30 1242)\n(llvm:section-entry .dynstr 1056 185 1056)\n(llvm:section-entry .dynsym 696 360 696)\n(llvm:section-entry .gnu.hash 664 28 664)\n(llvm:section-entry .note.ABI-tag 632 32 632)\n(llvm:section-entry .note.gnu.build-id 596 36 596)\n(llvm:section-entry .interp 568 27 568)\n(llvm:section-flags .shstrtab true false false)\n(llvm:section-flags .strtab true false false)\n(llvm:section-flags .symtab true false false)\n(llvm:section-flags .comment true false false)\n(llvm:section-flags .bss true true false)\n(llvm:section-flags .data true true false)\n(llvm:section-flags .got true true false)\n(llvm:section-flags .dynamic true true false)\n(llvm:section-flags .fini_array true true false)\n(llvm:section-flags .init_array true true false)\n(llvm:section-flags .eh_frame true false false)\n(llvm:section-flags .eh_frame_hdr true false false)\n(llvm:section-flags .rodata true false false)\n(llvm:section-flags .fini true false true)\n(llvm:section-flags .text true false true)\n(llvm:section-flags .plt true false true)\n(llvm:section-flags .init true false true)\n(llvm:section-flags .rela.plt true false false)\n(llvm:section-flags .rela.dyn true false false)\n(llvm:section-flags .gnu.version_r true false false)\n(llvm:section-flags .gnu.version true false false)\n(llvm:section-flags .dynstr true false false)\n(llvm:section-flags .dynsym true false false)\n(llvm:section-flags .gnu.hash true false false)\n(llvm:section-flags .note.ABI-tag true false false)\n(llvm:section-flags .note.gnu.build-id true false false)\n(llvm:section-flags .interp true false false)\n(llvm:symbol-entry free 0 0 0 0)\n(llvm:symbol-entry puts 0 0 0 0)\n(llvm:symbol-entry abort 0 0 0 0)\n(llvm:symbol-entry memset 0 0 0 0)\n(llvm:symbol-entry malloc 0 0 0 0)\n(llvm:symbol-entry __memcpy_chk 0 0 0 0)\n(llvm:symbol-entry __cxa_finalize 0 0 0 0)\n(llvm:symbol-entry __libc_start_main 0 0 0 0)\n(llvm:symbol-entry strlen 0 0 0 0)\n(llvm:symbol-entry _init 1752 0 1752 1752)\n(llvm:symbol-entry main 1984 136 1984 1984)\n(llvm:symbol-entry _start 2176 52 2176 2176)\n(llvm:symbol-entry free@GLIBC_2.17 0 0 0 0)\n(llvm:symbol-entry puts@GLIBC_2.17 0 0 0 0)\n(llvm:symbol-entry abort@GLIBC_2.17 0 0 0 0)\n(llvm:symbol-entry memset@GLIBC_2.17 0 0 0 0)\n(llvm:symbol-entry malloc@GLIBC_2.17 0 0 0 0)\n(llvm:symbol-entry _fini 2452 0 2452 2452)\n(llvm:symbol-entry __memcpy_chk@GLIBC_2.17 0 0 0 0)\n(llvm:symbol-entry __cxa_finalize@GLIBC_2.17 0 0 0 0)\n(llvm:symbol-entry __libc_start_main@GLIBC_2.34 0 0 0 0)\n(llvm:symbol-entry strlen@GLIBC_2.17 0 0 0 0)\n(llvm:symbol-entry frame_dummy 2448 0 2448 2448)\n(llvm:symbol-entry __do_global_dtors_aux 2368 0 2368 2368)\n(llvm:symbol-entry register_tm_clones 2304 0 2304 2304)\n(llvm:symbol-entry deregister_tm_clones 2256 0 2256 2256)\n(llvm:symbol-entry call_weak_fn 2228 20 2228 2228)\n(mapped 0 2716 0)\n(mapped 68968 692 3432)\n(named-region 0 2716 02)\n(named-region 68968 712 03)\n(named-region 568 27 .interp)\n(named-region 596 36 .note.gnu.build-id)\n(named-region 632 32 .note.ABI-tag)\n(named-region 664 28 .gnu.hash)\n(named-region 696 360 .dynsym)\n(named-region 1056 185 .dynstr)\n(named-region 1242 30 .gnu.version)\n(named-region 1272 48 .gnu.version_r)\n(named-region 1320 192 .rela.dyn)\n(named-region 1512 240 .rela.plt)\n(named-region 1752 24 .init)\n(named-region 1776 192 .plt)\n(named-region 1984 468 .text)\n(named-region 2452 20 .fini)\n(named-region 2472 4 .rodata)\n(named-region 2476 60 .eh_frame_hdr)\n(named-region 2536 180 .eh_frame)\n(named-region 68968 8 .init_array)\n(named-region 68976 8 .fini_array)\n(named-region 68984 496 .dynamic)\n(named-region 69480 152 .got)\n(named-region 69632 28 .data)\n(named-region 69664 16 .bss)\n(named-region 0 43 .comment)\n(named-region 0 2328 .symtab)\n(named-region 0 697 .strtab)\n(named-region 0 250 .shstrtab)\n(named-symbol 2228 call_weak_fn)\n(named-symbol 2256 deregister_tm_clones)\n(named-symbol 2304 register_tm_clones)\n(named-symbol 2368 __do_global_dtors_aux)\n(named-symbol 2448 frame_dummy)\n(named-symbol 0 strlen@GLIBC_2.17)\n(named-symbol 0 __libc_start_main@GLIBC_2.34)\n(named-symbol 0 __cxa_finalize@GLIBC_2.17)\n(named-symbol 0 __memcpy_chk@GLIBC_2.17)\n(named-symbol 2452 _fini)\n(named-symbol 0 malloc@GLIBC_2.17)\n(named-symbol 0 memset@GLIBC_2.17)\n(named-symbol 0 abort@GLIBC_2.17)\n(named-symbol 0 puts@GLIBC_2.17)\n(named-symbol 0 free@GLIBC_2.17)\n(named-symbol 2176 _start)\n(named-symbol 1984 main)\n(named-symbol 1752 _init)\n(named-symbol 0 strlen)\n(named-symbol 0 __libc_start_main)\n(named-symbol 0 __cxa_finalize)\n(named-symbol 0 __memcpy_chk)\n(named-symbol 0 malloc)\n(named-symbol 0 memset)\n(named-symbol 0 abort)\n(named-symbol 0 puts)\n(named-symbol 0 free)\n(require libc.so.6)\n(section 568 27)\n(section 596 36)\n(section 632 32)\n(section 664 28)\n(section 696 360)\n(section 1056 185)\n(section 1242 30)\n(section 1272 48)\n(section 1320 192)\n(section 1512 240)\n(section 1752 24)\n(section 1776 192)\n(section 1984 468)\n(section 2452 20)\n(section 2472 4)\n(section 2476 60)\n(section 2536 180)\n(section 68968 8)\n(section 68976 8)\n(section 68984 496)\n(section 69480 152)\n(section 69632 28)\n(section 69664 16)\n(section 0 43)\n(section 0 2328)\n(section 0 697)\n(section 0 250)\n(segment 0 2716 true false true)\n(segment 68968 712 true true false)\n(subarch v8)\n(symbol-chunk 2228 20 2228)\n(symbol-chunk 2176 52 2176)\n(symbol-chunk 1984 136 1984)\n(symbol-value 2228 2228)\n(symbol-value 2256 2256)\n(symbol-value 2304 2304)\n(symbol-value 2368 2368)\n(symbol-value 2448 2448)\n(symbol-value 2452 2452)\n(symbol-value 2176 2176)\n(symbol-value 1984 1984)\n(symbol-value 1752 1752)\n(symbol-value 0 0)\n(system \"\")\n(vendor \"\")\n"), -Attr("abi-name","\"aarch64-linux-gnu-elf\"")]), -Sections([Section(".shstrtab", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x80\x08\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x18\x1d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x38\x00\x09\x00\x40\x00\x1c\x00\x1b\x00\x06\x00\x00\x00\x04\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x04\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x9c\x0a\x00\x00\x00\x00\x00\x00\x9c\x0a\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x01\x00\x00\x00\x06\x00\x00\x00\x68\x0d\x00\x00\x00\x00\x00\x00\x68\x0d"), -Section(".strtab", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x80\x08\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x18\x1d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x38\x00\x09\x00\x40\x00\x1c\x00\x1b\x00\x06\x00\x00\x00\x04\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x04\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x9c\x0a\x00\x00\x00\x00\x00\x00\x9c\x0a\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x01\x00\x00\x00\x06\x00\x00\x00\x68\x0d\x00\x00\x00\x00\x00\x00\x68\x0d\x01\x00\x00\x00\x00\x00\x68\x0d\x01\x00\x00\x00\x00\x00\xb4\x02\x00\x00\x00\x00\x00\x00\xc8\x02\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x02\x00\x00\x00\x06\x00\x00\x00\x78\x0d\x00\x00\x00\x00\x00\x00\x78\x0d\x01\x00\x00\x00\x00\x00\x78\x0d\x01\x00\x00\x00\x00\x00\xf0\x01\x00\x00\x00\x00\x00\x00\xf0\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x04\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x50\xe5\x74\x64\x04\x00\x00\x00\xac\x09\x00\x00\x00\x00\x00\x00\xac\x09\x00\x00\x00\x00\x00\x00\xac\x09\x00\x00\x00\x00\x00\x00\x3c\x00\x00\x00\x00\x00\x00\x00\x3c\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x51\xe5\x74\x64\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x52\xe5\x74\x64\x04\x00\x00\x00\x68\x0d\x00\x00\x00\x00\x00\x00\x68\x0d\x01\x00\x00\x00\x00\x00\x68\x0d\x01\x00\x00\x00\x00\x00\x98\x02\x00\x00\x00\x00\x00\x00\x98\x02\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x2f\x6c\x69\x62\x2f\x6c\x64\x2d\x6c\x69\x6e\x75\x78\x2d\x61\x61\x72\x63\x68\x36\x34\x2e\x73\x6f\x2e\x31\x00\x00\x04\x00\x00\x00\x14\x00\x00\x00\x03\x00\x00\x00\x47\x4e\x55\x00\x3d\x12\x00\xda\x84\x91\xd7\xc4\xf8\x82\xfb\x6e\xca\x33\xee\xaf\xe8\xad\xb7\xe8\x04\x00\x00\x00\x10\x00\x00\x00\x01\x00\x00\x00\x47\x4e\x55\x00\x00\x00\x00\x00\x03\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x01\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".symtab", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x80\x08\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x18\x1d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x38\x00\x09\x00\x40\x00\x1c\x00\x1b\x00\x06\x00\x00\x00\x04\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x04\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x9c\x0a\x00\x00\x00\x00\x00\x00\x9c\x0a\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x01\x00\x00\x00\x06\x00\x00\x00\x68\x0d\x00\x00\x00\x00\x00\x00\x68\x0d\x01\x00\x00\x00\x00\x00\x68\x0d\x01\x00\x00\x00\x00\x00\xb4\x02\x00\x00\x00\x00\x00\x00\xc8\x02\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x02\x00\x00\x00\x06\x00\x00\x00\x78\x0d\x00\x00\x00\x00\x00\x00\x78\x0d\x01\x00\x00\x00\x00\x00\x78\x0d\x01\x00\x00\x00\x00\x00\xf0\x01\x00\x00\x00\x00\x00\x00\xf0\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x04\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x50\xe5\x74\x64\x04\x00\x00\x00\xac\x09\x00\x00\x00\x00\x00\x00\xac\x09\x00\x00\x00\x00\x00\x00\xac\x09\x00\x00\x00\x00\x00\x00\x3c\x00\x00\x00\x00\x00\x00\x00\x3c\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x51\xe5\x74\x64\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x52\xe5\x74\x64\x04\x00\x00\x00\x68\x0d\x00\x00\x00\x00\x00\x00\x68\x0d\x01\x00\x00\x00\x00\x00\x68\x0d\x01\x00\x00\x00\x00\x00\x98\x02\x00\x00\x00\x00\x00\x00\x98\x02\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x2f\x6c\x69\x62\x2f\x6c\x64\x2d\x6c\x69\x6e\x75\x78\x2d\x61\x61\x72\x63\x68\x36\x34\x2e\x73\x6f\x2e\x31\x00\x00\x04\x00\x00\x00\x14\x00\x00\x00\x03\x00\x00\x00\x47\x4e\x55\x00\x3d\x12\x00\xda\x84\x91\xd7\xc4\xf8\x82\xfb\x6e\xca\x33\xee\xaf\xe8\xad\xb7\xe8\x04\x00\x00\x00\x10\x00\x00\x00\x01\x00\x00\x00\x47\x4e\x55\x00\x00\x00\x00\x00\x03\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x01\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x0b\x00\xd8\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x16\x00\x00\x10\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x3a\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x17\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x74\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x22\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x41\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x29\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x90\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4e\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x30\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x35\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x9f\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5f\x5f\x63\x78\x61\x5f\x66\x69\x6e\x61\x6c\x69\x7a\x65\x00\x6d\x61\x6c\x6c\x6f\x63\x00\x5f\x5f\x6c\x69\x62\x63\x5f\x73\x74\x61\x72\x74\x5f\x6d\x61\x69\x6e\x00\x6d\x65\x6d\x73\x65\x74\x00\x70\x75\x74\x73\x00\x66\x72\x65\x65\x00\x73\x74\x72\x6c\x65\x6e\x00\x5f\x5f\x6d\x65\x6d\x63\x70\x79\x5f\x63\x68\x6b\x00\x61\x62\x6f\x72\x74\x00\x6c\x69\x62\x63\x2e\x73\x6f\x2e\x36\x00\x47\x4c\x49\x42\x43\x5f\x32\x2e\x33\x34\x00\x47\x4c\x49\x42\x43\x5f\x32\x2e\x31\x37\x00\x5f\x49\x54\x4d\x5f\x64\x65\x72\x65\x67\x69\x73\x74\x65\x72\x54\x4d\x43\x6c\x6f\x6e\x65\x54\x61\x62\x6c\x65\x00\x5f\x5f\x67\x6d\x6f\x6e\x5f\x73\x74\x61\x72\x74\x5f\x5f\x00\x5f\x49\x54\x4d\x5f\x72\x65\x67\x69\x73\x74\x65\x72\x54\x4d\x43\x6c\x6f\x6e\x65\x54\x61\x62\x6c\x65\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x03\x00\x01\x00\x02\x00\x02\x00\x02\x00\x02\x00\x01\x00\x02\x00\x02\x00\x02\x00\x01\x00\x01\x00\x02\x00\x54\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\xb4\x91\x96\x06\x00\x00\x03\x00\x5e\x00\x00\x00\x10\x00\x00\x00\x97\x91\x96\x06\x00\x00\x02\x00\x69\x00\x00\x00\x00\x00\x00\x00\x68\x0d\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x90\x09\x00\x00\x00\x00\x00\x00\x70\x0d\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x40\x09\x00\x00\x00\x00\x00\x00\xf0\x0f\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\xc0\x07\x00\x00\x00\x00\x00\x00\x08\x10\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x08\x10\x01\x00\x00\x00\x00\x00\xd8\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe0\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe8\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x0a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xf8\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x0e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x80\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x88\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x90\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x98\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xa0\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xa8\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x09\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xb0\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x0a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xb8\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x0b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xc0\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x0c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xc8\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x0d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1f\x20\x03\xd5\xfd\x7b\xbf\xa9\xfd\x03\x00\x91\x74\x00\x00\x94\xfd\x7b\xc1\xa8\xc0\x03\x5f\xd6\xf0\x7b\xbf\xa9\x90\x00\x00\x90\x11\xbe\x47\xf9\x10\xe2\x3d\x91\x20\x02\x1f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x90\x00\x00\x90\x11\xc2\x47\xf9\x10\x02\x3e\x91\x20\x02\x1f\xd6\x90\x00\x00\x90\x11\xc6\x47\xf9\x10\x22\x3e\x91\x20\x02\x1f\xd6\x90\x00\x00\x90\x11\xca\x47\xf9\x10\x42\x3e\x91\x20\x02\x1f\xd6\x90\x00\x00\x90\x11\xce\x47\xf9\x10\x62\x3e\x91\x20\x02\x1f\xd6\x90\x00\x00\x90\x11\xd2\x47\xf9\x10\x82\x3e\x91\x20\x02\x1f\xd6\x90\x00\x00\x90\x11\xd6\x47\xf9\x10\xa2\x3e\x91\x20\x02\x1f\xd6\x90\x00\x00\x90\x11\xda\x47\xf9\x10\xc2\x3e\x91\x20\x02\x1f\xd6\x90\x00\x00\x90\x11\xde\x47\xf9\x10\xe2\x3e\x91\x20\x02\x1f\xd6\x90\x00\x00\x90\x11\xe2\x47\xf9\x10\x02\x3f\x91\x20\x02\x1f\xd6\x90\x00\x00\x90\x11\xe6\x47\xf9\x10\x22\x3f\x91\x20\x02\x1f\xd6\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xfd\x7b\xbd\xa9\x60\x01\x80\xd2\xfd\x03\x00\x91\xf5\x13\x00\xf9\x95\x00\x00\xb0\xf3\x53\x01\xa9\xde\xff\xff\x97\x94\x00\x00\xb0\x94\x42\x00\x91\xf3\x03\x00\xaa\xe0\x03\x14\xaa\xb3\x16\x00\xf9\xc8\xff\xff\x97\xe2\x03\x00\xaa\xe1\x03\x14\xaa\x63\x01\x80\xd2\xe0\x03\x13\xaa\xcf\xff\xff\x97\xe0\x03\x13\xaa\xe1\xff\xff\x97\xb3\x16\x40\xf9\xe0\x03\x13\xaa\xbe\xff\xff\x97\x21\x00\x80\x52\xe2\x03\x00\xaa\xe0\x03\x13\xaa\xce\xff\xff\x97\xa0\x16\x40\xf9\xdc\xff\xff\x97\x00\x00\x80\x52\xf3\x53\x41\xa9\xf5\x13\x40\xf9\xfd\x7b\xc3\xa8\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1d\x00\x80\xd2\x1e\x00\x80\xd2\xe5\x03\x00\xaa\xe1\x03\x40\xf9\xe2\x23\x00\x91\xe6\x03\x00\x91\x80\x00\x00\x90\x00\xf8\x47\xf9\x03\x00\x80\xd2\x04\x00\x80\xd2\x9d\xff\xff\x97\xb4\xff\xff\x97\x80\x00\x00\x90\x00\xf4\x47\xf9\x40\x00\x00\xb4\xac\xff\xff\x17\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x80\x00\x00\xb0\x00\x80\x00\x91\x81\x00\x00\xb0\x21\x80\x00\x91\x3f\x00\x00\xeb\xc0\x00\x00\x54\x81\x00\x00\x90\x21\xec\x47\xf9\x61\x00\x00\xb4\xf0\x03\x01\xaa\x00\x02\x1f\xd6\xc0\x03\x5f\xd6\x80\x00\x00\xb0\x00\x80\x00\x91\x81\x00\x00\xb0\x21\x80\x00\x91\x21\x00\x00\xcb\x22\xfc\x7f\xd3"), -Section(".comment", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x80\x08\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x18\x1d\x00"), -Section(".interp", 0x238, "\x2f\x6c\x69\x62\x2f\x6c\x64\x2d\x6c\x69\x6e\x75\x78\x2d\x61\x61\x72\x63\x68\x36\x34\x2e\x73\x6f\x2e\x31\x00"), -Section(".note.gnu.build-id", 0x254, "\x04\x00\x00\x00\x14\x00\x00\x00\x03\x00\x00\x00\x47\x4e\x55\x00\x3d\x12\x00\xda\x84\x91\xd7\xc4\xf8\x82\xfb\x6e\xca\x33\xee\xaf\xe8\xad\xb7\xe8"), -Section(".note.ABI-tag", 0x278, "\x04\x00\x00\x00\x10\x00\x00\x00\x01\x00\x00\x00\x47\x4e\x55\x00\x00\x00\x00\x00\x03\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00"), -Section(".gnu.hash", 0x298, "\x01\x00\x00\x00\x01\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".dynsym", 0x2B8, "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x0b\x00\xd8\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x16\x00\x00\x10\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x3a\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x17\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x74\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x22\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x41\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x29\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x90\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4e\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x30\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x35\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x9f\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".dynstr", 0x420, "\x00\x5f\x5f\x63\x78\x61\x5f\x66\x69\x6e\x61\x6c\x69\x7a\x65\x00\x6d\x61\x6c\x6c\x6f\x63\x00\x5f\x5f\x6c\x69\x62\x63\x5f\x73\x74\x61\x72\x74\x5f\x6d\x61\x69\x6e\x00\x6d\x65\x6d\x73\x65\x74\x00\x70\x75\x74\x73\x00\x66\x72\x65\x65\x00\x73\x74\x72\x6c\x65\x6e\x00\x5f\x5f\x6d\x65\x6d\x63\x70\x79\x5f\x63\x68\x6b\x00\x61\x62\x6f\x72\x74\x00\x6c\x69\x62\x63\x2e\x73\x6f\x2e\x36\x00\x47\x4c\x49\x42\x43\x5f\x32\x2e\x33\x34\x00\x47\x4c\x49\x42\x43\x5f\x32\x2e\x31\x37\x00\x5f\x49\x54\x4d\x5f\x64\x65\x72\x65\x67\x69\x73\x74\x65\x72\x54\x4d\x43\x6c\x6f\x6e\x65\x54\x61\x62\x6c\x65\x00\x5f\x5f\x67\x6d\x6f\x6e\x5f\x73\x74\x61\x72\x74\x5f\x5f\x00\x5f\x49\x54\x4d\x5f\x72\x65\x67\x69\x73\x74\x65\x72\x54\x4d\x43\x6c\x6f\x6e\x65\x54\x61\x62\x6c\x65\x00"), -Section(".gnu.version", 0x4DA, "\x00\x00\x00\x00\x00\x00\x02\x00\x03\x00\x01\x00\x02\x00\x02\x00\x02\x00\x02\x00\x01\x00\x02\x00\x02\x00\x02\x00\x01\x00"), -Section(".gnu.version_r", 0x4F8, "\x01\x00\x02\x00\x54\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\xb4\x91\x96\x06\x00\x00\x03\x00\x5e\x00\x00\x00\x10\x00\x00\x00\x97\x91\x96\x06\x00\x00\x02\x00\x69\x00\x00\x00\x00\x00\x00\x00"), -Section(".rela.dyn", 0x528, "\x68\x0d\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x90\x09\x00\x00\x00\x00\x00\x00\x70\x0d\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x40\x09\x00\x00\x00\x00\x00\x00\xf0\x0f\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\xc0\x07\x00\x00\x00\x00\x00\x00\x08\x10\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x08\x10\x01\x00\x00\x00\x00\x00\xd8\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe0\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe8\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x0a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xf8\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x0e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".rela.plt", 0x5E8, "\x80\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x88\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x90\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x98\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xa0\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xa8\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x09\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xb0\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x0a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xb8\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x0b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xc0\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x0c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xc8\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x0d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".init", 0x6D8, "\x1f\x20\x03\xd5\xfd\x7b\xbf\xa9\xfd\x03\x00\x91\x74\x00\x00\x94\xfd\x7b\xc1\xa8\xc0\x03\x5f\xd6"), -Section(".plt", 0x6F0, "\xf0\x7b\xbf\xa9\x90\x00\x00\x90\x11\xbe\x47\xf9\x10\xe2\x3d\x91\x20\x02\x1f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x90\x00\x00\x90\x11\xc2\x47\xf9\x10\x02\x3e\x91\x20\x02\x1f\xd6\x90\x00\x00\x90\x11\xc6\x47\xf9\x10\x22\x3e\x91\x20\x02\x1f\xd6\x90\x00\x00\x90\x11\xca\x47\xf9\x10\x42\x3e\x91\x20\x02\x1f\xd6\x90\x00\x00\x90\x11\xce\x47\xf9\x10\x62\x3e\x91\x20\x02\x1f\xd6\x90\x00\x00\x90\x11\xd2\x47\xf9\x10\x82\x3e\x91\x20\x02\x1f\xd6\x90\x00\x00\x90\x11\xd6\x47\xf9\x10\xa2\x3e\x91\x20\x02\x1f\xd6\x90\x00\x00\x90\x11\xda\x47\xf9\x10\xc2\x3e\x91\x20\x02\x1f\xd6\x90\x00\x00\x90\x11\xde\x47\xf9\x10\xe2\x3e\x91\x20\x02\x1f\xd6\x90\x00\x00\x90\x11\xe2\x47\xf9\x10\x02\x3f\x91\x20\x02\x1f\xd6\x90\x00\x00\x90\x11\xe6\x47\xf9\x10\x22\x3f\x91\x20\x02\x1f\xd6"), -Section(".fini", 0x994, "\x1f\x20\x03\xd5\xfd\x7b\xbf\xa9\xfd\x03\x00\x91\xfd\x7b\xc1\xa8\xc0\x03\x5f\xd6"), -Section(".rodata", 0x9A8, "\x01\x00\x02\x00"), -Section(".eh_frame_hdr", 0x9AC, "\x01\x1b\x03\x3b\x38\x00\x00\x00\x06\x00\x00\x00\x14\xfe\xff\xff\xc4\x00\x00\x00\xd4\xfe\xff\xff\x50\x00\x00\x00\x24\xff\xff\xff\x64\x00\x00\x00\x54\xff\xff\xff\x78\x00\x00\x00\x94\xff\xff\xff\x8c\x00\x00\x00\xe4\xff\xff\xff\xb0\x00\x00\x00"), -Section(".eh_frame", 0x9E8, "\x10\x00\x00\x00\x00\x00\x00\x00\x01\x7a\x52\x00\x04\x78\x1e\x01\x1b\x0c\x1f\x00\x10\x00\x00\x00\x18\x00\x00\x00\x7c\xfe\xff\xff\x34\x00\x00\x00\x00\x41\x07\x1e\x10\x00\x00\x00\x2c\x00\x00\x00\xb8\xfe\xff\xff\x30\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x40\x00\x00\x00\xd4\xfe\xff\xff\x3c\x00\x00\x00\x00\x00\x00\x00\x20\x00\x00\x00\x54\x00\x00\x00\x00\xff\xff\xff\x48\x00\x00\x00\x00\x41\x0e\x20\x9d\x04\x9e\x03\x42\x93\x02\x4e\xde\xdd\xd3\x0e\x00\x00\x00\x00\x10\x00\x00\x00\x78\x00\x00\x00\x2c\xff\xff\xff\x04\x00\x00\x00\x00\x00\x00\x00\x24\x00\x00\x00\x8c\x00\x00\x00\x48\xfd\xff\xff\x88\x00\x00\x00\x00\x41\x0e\x30\x9d\x06\x9e\x05\x43\x95\x02\x42\x93\x04\x94\x03\x5b\xde\xdd\xd5\xd3\xd4\x0e\x00\x00\x00\x00\x00"), -Section(".fini_array", 0x10D70, "\x40\x09\x00\x00\x00\x00\x00\x00"), -Section(".dynamic", 0x10D78, "\x01\x00\x00\x00\x00\x00\x00\x00\x54\x00\x00\x00\x00\x00\x00\x00\x0c\x00\x00\x00\x00\x00\x00\x00\xd8\x06\x00\x00\x00\x00\x00\x00\x0d\x00\x00\x00\x00\x00\x00\x00\x94\x09\x00\x00\x00\x00\x00\x00\x19\x00\x00\x00\x00\x00\x00\x00\x68\x0d\x01\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x1a\x00\x00\x00\x00\x00\x00\x00\x70\x0d\x01\x00\x00\x00\x00\x00\x1c\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\xf5\xfe\xff\x6f\x00\x00\x00\x00\x98\x02\x00\x00\x00\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x20\x04\x00\x00\x00\x00\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\xb8\x02\x00\x00\x00\x00\x00\x00\x0a\x00\x00\x00\x00\x00\x00\x00\xb9\x00\x00\x00\x00\x00\x00\x00\x0b\x00\x00\x00\x00\x00\x00\x00\x18\x00\x00\x00\x00\x00\x00\x00\x15\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x68\x0f\x01\x00\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\xf0\x00\x00\x00\x00\x00\x00\x00\x14\x00\x00\x00\x00\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x17\x00\x00\x00\x00\x00\x00\x00\xe8\x05\x00\x00\x00\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x28\x05\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\xc0\x00\x00\x00\x00\x00\x00\x00\x09\x00\x00\x00\x00\x00\x00\x00\x18\x00\x00\x00\x00\x00\x00\x00\x1e\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\xfb\xff\xff\x6f\x00\x00\x00\x00\x01\x00\x00\x08\x00\x00\x00\x00\xfe\xff\xff\x6f\x00\x00\x00\x00\xf8\x04\x00\x00\x00\x00\x00\x00\xff\xff\xff\x6f\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\xf0\xff\xff\x6f\x00\x00\x00\x00\xda\x04\x00\x00\x00\x00\x00\x00\xf9\xff\xff\x6f\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".init_array", 0x10D68, "\x90\x09\x00\x00\x00\x00\x00\x00"), -Section(".got", 0x10F68, "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xf0\x06\x00\x00\x00\x00\x00\x00\xf0\x06\x00\x00\x00\x00\x00\x00\xf0\x06\x00\x00\x00\x00\x00\x00\xf0\x06\x00\x00\x00\x00\x00\x00\xf0\x06\x00\x00\x00\x00\x00\x00\xf0\x06\x00\x00\x00\x00\x00\x00\xf0\x06\x00\x00\x00\x00\x00\x00\xf0\x06\x00\x00\x00\x00\x00\x00\xf0\x06\x00\x00\x00\x00\x00\x00\xf0\x06\x00\x00\x00\x00\x00\x00\x78\x0d\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xc0\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".data", 0x11000, "\x00\x00\x00\x00\x00\x00\x00\x00\x08\x10\x01\x00\x00\x00\x00\x00\x75\x73\x65\x72\x3a\x70\x61\x73\x73\x00\x00\x07"), -Section(".text", 0x7C0, "\xfd\x7b\xbd\xa9\x60\x01\x80\xd2\xfd\x03\x00\x91\xf5\x13\x00\xf9\x95\x00\x00\xb0\xf3\x53\x01\xa9\xde\xff\xff\x97\x94\x00\x00\xb0\x94\x42\x00\x91\xf3\x03\x00\xaa\xe0\x03\x14\xaa\xb3\x16\x00\xf9\xc8\xff\xff\x97\xe2\x03\x00\xaa\xe1\x03\x14\xaa\x63\x01\x80\xd2\xe0\x03\x13\xaa\xcf\xff\xff\x97\xe0\x03\x13\xaa\xe1\xff\xff\x97\xb3\x16\x40\xf9\xe0\x03\x13\xaa\xbe\xff\xff\x97\x21\x00\x80\x52\xe2\x03\x00\xaa\xe0\x03\x13\xaa\xce\xff\xff\x97\xa0\x16\x40\xf9\xdc\xff\xff\x97\x00\x00\x80\x52\xf3\x53\x41\xa9\xf5\x13\x40\xf9\xfd\x7b\xc3\xa8\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1d\x00\x80\xd2\x1e\x00\x80\xd2\xe5\x03\x00\xaa\xe1\x03\x40\xf9\xe2\x23\x00\x91\xe6\x03\x00\x91\x80\x00\x00\x90\x00\xf8\x47\xf9\x03\x00\x80\xd2\x04\x00\x80\xd2\x9d\xff\xff\x97\xb4\xff\xff\x97\x80\x00\x00\x90\x00\xf4\x47\xf9\x40\x00\x00\xb4\xac\xff\xff\x17\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x80\x00\x00\xb0\x00\x80\x00\x91\x81\x00\x00\xb0\x21\x80\x00\x91\x3f\x00\x00\xeb\xc0\x00\x00\x54\x81\x00\x00\x90\x21\xec\x47\xf9\x61\x00\x00\xb4\xf0\x03\x01\xaa\x00\x02\x1f\xd6\xc0\x03\x5f\xd6\x80\x00\x00\xb0\x00\x80\x00\x91\x81\x00\x00\xb0\x21\x80\x00\x91\x21\x00\x00\xcb\x22\xfc\x7f\xd3\x41\x0c\x81\x8b\x21\xfc\x41\x93\xc1\x00\x00\xb4\x82\x00\x00\x90\x42\xfc\x47\xf9\x62\x00\x00\xb4\xf0\x03\x02\xaa\x00\x02\x1f\xd6\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\xfd\x7b\xbe\xa9\xfd\x03\x00\x91\xf3\x0b\x00\xf9\x93\x00\x00\xb0\x60\x82\x40\x39\x40\x01\x00\x35\x80\x00\x00\x90\x00\xf0\x47\xf9\x80\x00\x00\xb4\x80\x00\x00\xb0\x00\x04\x40\xf9\x71\xff\xff\x97\xd8\xff\xff\x97\x20\x00\x80\x52\x60\x82\x00\x39\xf3\x0b\x40\xf9\xfd\x7b\xc2\xa8\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\xdc\xff\xff\x17")]), -Memmap([Annotation(Region(0x0,0xA9B), Attr("segment","02 0 2716")), -Annotation(Region(0x7C0,0x847), Attr("symbol","\"main\"")), -Annotation(Region(0x0,0xF9), Attr("section","\".shstrtab\"")), -Annotation(Region(0x0,0x2B8), Attr("section","\".strtab\"")), -Annotation(Region(0x0,0x917), Attr("section","\".symtab\"")), -Annotation(Region(0x0,0x2A), Attr("section","\".comment\"")), -Annotation(Region(0x238,0x252), Attr("section","\".interp\"")), -Annotation(Region(0x254,0x277), Attr("section","\".note.gnu.build-id\"")), -Annotation(Region(0x278,0x297), Attr("section","\".note.ABI-tag\"")), -Annotation(Region(0x298,0x2B3), Attr("section","\".gnu.hash\"")), -Annotation(Region(0x2B8,0x41F), Attr("section","\".dynsym\"")), -Annotation(Region(0x420,0x4D8), Attr("section","\".dynstr\"")), -Annotation(Region(0x4DA,0x4F7), Attr("section","\".gnu.version\"")), -Annotation(Region(0x4F8,0x527), Attr("section","\".gnu.version_r\"")), -Annotation(Region(0x528,0x5E7), Attr("section","\".rela.dyn\"")), -Annotation(Region(0x5E8,0x6D7), Attr("section","\".rela.plt\"")), -Annotation(Region(0x6D8,0x6EF), Attr("section","\".init\"")), -Annotation(Region(0x6F0,0x7AF), Attr("section","\".plt\"")), -Annotation(Region(0x6D8,0x6EF), Attr("code-region","()")), -Annotation(Region(0x6F0,0x7AF), Attr("code-region","()")), -Annotation(Region(0x7C0,0x847), Attr("symbol-info","main 0x7C0 136")), -Annotation(Region(0x880,0x8B3), Attr("symbol","\"_start\"")), -Annotation(Region(0x880,0x8B3), Attr("symbol-info","_start 0x880 52")), -Annotation(Region(0x8B4,0x8C7), Attr("symbol","\"call_weak_fn\"")), -Annotation(Region(0x8B4,0x8C7), Attr("symbol-info","call_weak_fn 0x8B4 20")), -Annotation(Region(0x994,0x9A7), Attr("section","\".fini\"")), -Annotation(Region(0x9A8,0x9AB), Attr("section","\".rodata\"")), -Annotation(Region(0x9AC,0x9E7), Attr("section","\".eh_frame_hdr\"")), -Annotation(Region(0x9E8,0xA9B), Attr("section","\".eh_frame\"")), -Annotation(Region(0x10D68,0x1101B), Attr("segment","03 0x10D68 712")), -Annotation(Region(0x10D70,0x10D77), Attr("section","\".fini_array\"")), -Annotation(Region(0x10D78,0x10F67), Attr("section","\".dynamic\"")), -Annotation(Region(0x10D68,0x10D6F), Attr("section","\".init_array\"")), -Annotation(Region(0x10F68,0x10FFF), Attr("section","\".got\"")), -Annotation(Region(0x11000,0x1101B), Attr("section","\".data\"")), -Annotation(Region(0x7C0,0x993), Attr("section","\".text\"")), -Annotation(Region(0x7C0,0x993), Attr("code-region","()")), -Annotation(Region(0x994,0x9A7), Attr("code-region","()"))]), -Program(Tid(2_086, "%00000826"), Attrs([]), - Subs([Sub(Tid(2_018, "@__cxa_finalize"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x730"), -Attr("stub","()")]), "__cxa_finalize", Args([Arg(Tid(2_087, "%00000827"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("__cxa_finalize_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(1_222, "@__cxa_finalize"), - Attrs([Attr("address","0x730")]), Phis([]), -Defs([Def(Tid(1_588, "%00000634"), Attrs([Attr("address","0x730"), -Attr("insn","adrp x16, #65536")]), Var("R16",Imm(64)), Int(65536,64)), -Def(Tid(1_595, "%0000063b"), Attrs([Attr("address","0x734"), -Attr("insn","ldr x17, [x16, #0xf90]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(3984,64)),LittleEndian(),64)), -Def(Tid(1_601, "%00000641"), Attrs([Attr("address","0x738"), -Attr("insn","add x16, x16, #0xf90")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(3984,64)))]), Jmps([Call(Tid(1_606, "%00000646"), - Attrs([Attr("address","0x73C"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), -Sub(Tid(2_019, "@__do_global_dtors_aux"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x940")]), - "__do_global_dtors_aux", Args([Arg(Tid(2_088, "%00000828"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("__do_global_dtors_aux_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(1_075, "@__do_global_dtors_aux"), - Attrs([Attr("address","0x940")]), Phis([]), -Defs([Def(Tid(1_079, "%00000437"), Attrs([Attr("address","0x940"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("#6",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(18446744073709551584,64))), -Def(Tid(1_085, "%0000043d"), Attrs([Attr("address","0x940"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("#6",Imm(64)),Var("R29",Imm(64)),LittleEndian(),64)), -Def(Tid(1_091, "%00000443"), Attrs([Attr("address","0x940"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("#6",Imm(64)),Int(8,64)),Var("R30",Imm(64)),LittleEndian(),64)), -Def(Tid(1_095, "%00000447"), Attrs([Attr("address","0x940"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("R31",Imm(64)), -Var("#6",Imm(64))), Def(Tid(1_101, "%0000044d"), - Attrs([Attr("address","0x944"), Attr("insn","mov x29, sp")]), - Var("R29",Imm(64)), Var("R31",Imm(64))), Def(Tid(1_109, "%00000455"), - Attrs([Attr("address","0x948"), Attr("insn","str x19, [sp, #0x10]")]), - Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(16,64)),Var("R19",Imm(64)),LittleEndian(),64)), -Def(Tid(1_114, "%0000045a"), Attrs([Attr("address","0x94C"), -Attr("insn","adrp x19, #69632")]), Var("R19",Imm(64)), Int(69632,64)), -Def(Tid(1_121, "%00000461"), Attrs([Attr("address","0x950"), -Attr("insn","ldrb w0, [x19, #0x20]")]), Var("R0",Imm(64)), -UNSIGNED(64,Load(Var("mem",Mem(64,8)),PLUS(Var("R19",Imm(64)),Int(32,64)),LittleEndian(),8)))]), -Jmps([Goto(Tid(1_128, "%00000468"), Attrs([Attr("address","0x954"), -Attr("insn","cbnz w0, #0x28")]), - NEQ(Extract(31,0,Var("R0",Imm(64))),Int(0,32)), -Direct(Tid(1_126, "%00000466"))), Goto(Tid(2_076, "%0000081c"), Attrs([]), - Int(1,1), Direct(Tid(1_167, "%0000048f")))])), Blk(Tid(1_167, "%0000048f"), - Attrs([Attr("address","0x958")]), Phis([]), -Defs([Def(Tid(1_170, "%00000492"), Attrs([Attr("address","0x958"), -Attr("insn","adrp x0, #65536")]), Var("R0",Imm(64)), Int(65536,64)), -Def(Tid(1_177, "%00000499"), Attrs([Attr("address","0x95C"), -Attr("insn","ldr x0, [x0, #0xfe0]")]), Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(4064,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(1_183, "%0000049f"), Attrs([Attr("address","0x960"), -Attr("insn","cbz x0, #0x10")]), EQ(Var("R0",Imm(64)),Int(0,64)), -Direct(Tid(1_181, "%0000049d"))), Goto(Tid(2_077, "%0000081d"), Attrs([]), - Int(1,1), Direct(Tid(1_206, "%000004b6")))])), Blk(Tid(1_206, "%000004b6"), - Attrs([Attr("address","0x964")]), Phis([]), -Defs([Def(Tid(1_209, "%000004b9"), Attrs([Attr("address","0x964"), -Attr("insn","adrp x0, #69632")]), Var("R0",Imm(64)), Int(69632,64)), -Def(Tid(1_216, "%000004c0"), Attrs([Attr("address","0x968"), -Attr("insn","ldr x0, [x0, #0x8]")]), Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(1_221, "%000004c5"), Attrs([Attr("address","0x96C"), -Attr("insn","bl #-0x23c")]), Var("R30",Imm(64)), Int(2416,64))]), -Jmps([Call(Tid(1_224, "%000004c8"), Attrs([Attr("address","0x96C"), -Attr("insn","bl #-0x23c")]), Int(1,1), -(Direct(Tid(2_018, "@__cxa_finalize")),Direct(Tid(1_181, "%0000049d"))))])), -Blk(Tid(1_181, "%0000049d"), Attrs([Attr("address","0x970")]), Phis([]), -Defs([Def(Tid(1_189, "%000004a5"), Attrs([Attr("address","0x970"), -Attr("insn","bl #-0xa0")]), Var("R30",Imm(64)), Int(2420,64))]), -Jmps([Call(Tid(1_191, "%000004a7"), Attrs([Attr("address","0x970"), -Attr("insn","bl #-0xa0")]), Int(1,1), -(Direct(Tid(2_033, "@deregister_tm_clones")),Direct(Tid(1_193, "%000004a9"))))])), -Blk(Tid(1_193, "%000004a9"), Attrs([Attr("address","0x974")]), Phis([]), -Defs([Def(Tid(1_196, "%000004ac"), Attrs([Attr("address","0x974"), -Attr("insn","mov w0, #0x1")]), Var("R0",Imm(64)), Int(1,64)), -Def(Tid(1_204, "%000004b4"), Attrs([Attr("address","0x978"), -Attr("insn","strb w0, [x19, #0x20]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R19",Imm(64)),Int(32,64)),Extract(7,0,Var("R0",Imm(64))),LittleEndian(),8))]), -Jmps([Goto(Tid(2_078, "%0000081e"), Attrs([]), Int(1,1), -Direct(Tid(1_126, "%00000466")))])), Blk(Tid(1_126, "%00000466"), - Attrs([Attr("address","0x97C")]), Phis([]), -Defs([Def(Tid(1_136, "%00000470"), Attrs([Attr("address","0x97C"), -Attr("insn","ldr x19, [sp, #0x10]")]), Var("R19",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(16,64)),LittleEndian(),64)), -Def(Tid(1_143, "%00000477"), Attrs([Attr("address","0x980"), -Attr("insn","ldp x29, x30, [sp], #0x20")]), Var("R29",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(1_148, "%0000047c"), Attrs([Attr("address","0x980"), -Attr("insn","ldp x29, x30, [sp], #0x20")]), Var("R30",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(1_152, "%00000480"), Attrs([Attr("address","0x980"), -Attr("insn","ldp x29, x30, [sp], #0x20")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(32,64)))]), Jmps([Call(Tid(1_157, "%00000485"), - Attrs([Attr("address","0x984"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), Sub(Tid(2_023, "@__libc_start_main"), - Attrs([Attr("c.proto","signed (*)(signed (*)(signed , char** , char** );* main, signed , char** , \nvoid* auxv)"), -Attr("address","0x720"), Attr("stub","()")]), "__libc_start_main", - Args([Arg(Tid(2_089, "%00000829"), - Attrs([Attr("c.layout","**[ : 64]"), -Attr("c.data","Top:u64 ptr ptr"), -Attr("c.type","signed (*)(signed , char** , char** );*")]), - Var("__libc_start_main_main",Imm(64)), Var("R0",Imm(64)), In()), -Arg(Tid(2_090, "%0000082a"), Attrs([Attr("c.layout","[signed : 32]"), -Attr("c.data","Top:u32"), Attr("c.type","signed")]), - Var("__libc_start_main_arg2",Imm(32)), LOW(32,Var("R1",Imm(64))), In()), -Arg(Tid(2_091, "%0000082b"), Attrs([Attr("c.layout","**[char : 8]"), -Attr("c.data","Top:u8 ptr ptr"), Attr("c.type","char**")]), - Var("__libc_start_main_arg3",Imm(64)), Var("R2",Imm(64)), Both()), -Arg(Tid(2_092, "%0000082c"), Attrs([Attr("c.layout","*[ : 8]"), -Attr("c.data","{} ptr"), Attr("c.type","void*")]), - Var("__libc_start_main_auxv",Imm(64)), Var("R3",Imm(64)), Both()), -Arg(Tid(2_093, "%0000082d"), Attrs([Attr("c.layout","[signed : 32]"), -Attr("c.data","Top:u32"), Attr("c.type","signed")]), - Var("__libc_start_main_result",Imm(32)), LOW(32,Var("R0",Imm(64))), -Out())]), Blks([Blk(Tid(908, "@__libc_start_main"), - Attrs([Attr("address","0x720")]), Phis([]), -Defs([Def(Tid(1_566, "%0000061e"), Attrs([Attr("address","0x720"), -Attr("insn","adrp x16, #65536")]), Var("R16",Imm(64)), Int(65536,64)), -Def(Tid(1_573, "%00000625"), Attrs([Attr("address","0x724"), -Attr("insn","ldr x17, [x16, #0xf88]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(3976,64)),LittleEndian(),64)), -Def(Tid(1_579, "%0000062b"), Attrs([Attr("address","0x728"), -Attr("insn","add x16, x16, #0xf88")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(3976,64)))]), Jmps([Call(Tid(1_584, "%00000630"), - Attrs([Attr("address","0x72C"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), Sub(Tid(2_024, "@__memcpy_chk"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x740"), -Attr("stub","()")]), "__memcpy_chk", Args([Arg(Tid(2_094, "%0000082e"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("__memcpy_chk_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(690, "@__memcpy_chk"), - Attrs([Attr("address","0x740")]), Phis([]), -Defs([Def(Tid(1_610, "%0000064a"), Attrs([Attr("address","0x740"), -Attr("insn","adrp x16, #65536")]), Var("R16",Imm(64)), Int(65536,64)), -Def(Tid(1_617, "%00000651"), Attrs([Attr("address","0x744"), -Attr("insn","ldr x17, [x16, #0xf98]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(3992,64)),LittleEndian(),64)), -Def(Tid(1_623, "%00000657"), Attrs([Attr("address","0x748"), -Attr("insn","add x16, x16, #0xf98")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(3992,64)))]), Jmps([Call(Tid(1_628, "%0000065c"), - Attrs([Attr("address","0x74C"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), Sub(Tid(2_025, "@_fini"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x994")]), - "_fini", Args([Arg(Tid(2_095, "%0000082f"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("_fini_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(31, "@_fini"), - Attrs([Attr("address","0x994")]), Phis([]), Defs([Def(Tid(37, "%00000025"), - Attrs([Attr("address","0x998"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("#0",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(18446744073709551600,64))), -Def(Tid(43, "%0000002b"), Attrs([Attr("address","0x998"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("#0",Imm(64)),Var("R29",Imm(64)),LittleEndian(),64)), -Def(Tid(49, "%00000031"), Attrs([Attr("address","0x998"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("#0",Imm(64)),Int(8,64)),Var("R30",Imm(64)),LittleEndian(),64)), -Def(Tid(53, "%00000035"), Attrs([Attr("address","0x998"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("R31",Imm(64)), -Var("#0",Imm(64))), Def(Tid(59, "%0000003b"), Attrs([Attr("address","0x99C"), -Attr("insn","mov x29, sp")]), Var("R29",Imm(64)), Var("R31",Imm(64))), -Def(Tid(66, "%00000042"), Attrs([Attr("address","0x9A0"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R29",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(71, "%00000047"), Attrs([Attr("address","0x9A0"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R30",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(75, "%0000004b"), Attrs([Attr("address","0x9A0"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(16,64)))]), Jmps([Call(Tid(80, "%00000050"), - Attrs([Attr("address","0x9A4"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), Sub(Tid(2_026, "@_init"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x6D8")]), - "_init", Args([Arg(Tid(2_096, "%00000830"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("_init_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(1_788, "@_init"), - Attrs([Attr("address","0x6D8")]), Phis([]), -Defs([Def(Tid(1_794, "%00000702"), Attrs([Attr("address","0x6DC"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("#8",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(18446744073709551600,64))), -Def(Tid(1_800, "%00000708"), Attrs([Attr("address","0x6DC"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("#8",Imm(64)),Var("R29",Imm(64)),LittleEndian(),64)), -Def(Tid(1_806, "%0000070e"), Attrs([Attr("address","0x6DC"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("#8",Imm(64)),Int(8,64)),Var("R30",Imm(64)),LittleEndian(),64)), -Def(Tid(1_810, "%00000712"), Attrs([Attr("address","0x6DC"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("R31",Imm(64)), -Var("#8",Imm(64))), Def(Tid(1_816, "%00000718"), - Attrs([Attr("address","0x6E0"), Attr("insn","mov x29, sp")]), - Var("R29",Imm(64)), Var("R31",Imm(64))), Def(Tid(1_821, "%0000071d"), - Attrs([Attr("address","0x6E4"), Attr("insn","bl #0x1d0")]), - Var("R30",Imm(64)), Int(1768,64))]), Jmps([Call(Tid(1_823, "%0000071f"), - Attrs([Attr("address","0x6E4"), Attr("insn","bl #0x1d0")]), Int(1,1), -(Direct(Tid(2_031, "@call_weak_fn")),Direct(Tid(1_825, "%00000721"))))])), -Blk(Tid(1_825, "%00000721"), Attrs([Attr("address","0x6E8")]), Phis([]), -Defs([Def(Tid(1_830, "%00000726"), Attrs([Attr("address","0x6E8"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R29",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(1_835, "%0000072b"), Attrs([Attr("address","0x6E8"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R30",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(1_839, "%0000072f"), Attrs([Attr("address","0x6E8"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(16,64)))]), Jmps([Call(Tid(1_844, "%00000734"), - Attrs([Attr("address","0x6EC"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), Sub(Tid(2_027, "@_start"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x880"), -Attr("entry-point","()")]), "_start", Args([Arg(Tid(2_097, "%00000831"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("_start_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(845, "@_start"), - Attrs([Attr("address","0x880")]), Phis([]), Defs([Def(Tid(850, "%00000352"), - Attrs([Attr("address","0x884"), Attr("insn","mov x29, #0x0")]), - Var("R29",Imm(64)), Int(0,64)), Def(Tid(855, "%00000357"), - Attrs([Attr("address","0x888"), Attr("insn","mov x30, #0x0")]), - Var("R30",Imm(64)), Int(0,64)), Def(Tid(861, "%0000035d"), - Attrs([Attr("address","0x88C"), Attr("insn","mov x5, x0")]), - Var("R5",Imm(64)), Var("R0",Imm(64))), Def(Tid(868, "%00000364"), - Attrs([Attr("address","0x890"), Attr("insn","ldr x1, [sp]")]), - Var("R1",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(874, "%0000036a"), Attrs([Attr("address","0x894"), -Attr("insn","add x2, sp, #0x8")]), Var("R2",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(8,64))), Def(Tid(880, "%00000370"), - Attrs([Attr("address","0x898"), Attr("insn","mov x6, sp")]), - Var("R6",Imm(64)), Var("R31",Imm(64))), Def(Tid(885, "%00000375"), - Attrs([Attr("address","0x89C"), Attr("insn","adrp x0, #65536")]), - Var("R0",Imm(64)), Int(65536,64)), Def(Tid(892, "%0000037c"), - Attrs([Attr("address","0x8A0"), Attr("insn","ldr x0, [x0, #0xff0]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(4080,64)),LittleEndian(),64)), -Def(Tid(897, "%00000381"), Attrs([Attr("address","0x8A4"), -Attr("insn","mov x3, #0x0")]), Var("R3",Imm(64)), Int(0,64)), -Def(Tid(902, "%00000386"), Attrs([Attr("address","0x8A8"), -Attr("insn","mov x4, #0x0")]), Var("R4",Imm(64)), Int(0,64)), -Def(Tid(907, "%0000038b"), Attrs([Attr("address","0x8AC"), -Attr("insn","bl #-0x18c")]), Var("R30",Imm(64)), Int(2224,64))]), -Jmps([Call(Tid(910, "%0000038e"), Attrs([Attr("address","0x8AC"), -Attr("insn","bl #-0x18c")]), Int(1,1), -(Direct(Tid(2_023, "@__libc_start_main")),Direct(Tid(912, "%00000390"))))])), -Blk(Tid(912, "%00000390"), Attrs([Attr("address","0x8B0")]), Phis([]), -Defs([Def(Tid(915, "%00000393"), Attrs([Attr("address","0x8B0"), -Attr("insn","bl #-0x130")]), Var("R30",Imm(64)), Int(2228,64))]), -Jmps([Call(Tid(918, "%00000396"), Attrs([Attr("address","0x8B0"), -Attr("insn","bl #-0x130")]), Int(1,1), -(Direct(Tid(2_030, "@abort")),Direct(Tid(2_079, "%0000081f"))))])), -Blk(Tid(2_079, "%0000081f"), Attrs([]), Phis([]), Defs([]), -Jmps([Call(Tid(2_080, "%00000820"), Attrs([]), Int(1,1), -(Direct(Tid(2_031, "@call_weak_fn")),))]))])), Sub(Tid(2_030, "@abort"), - Attrs([Attr("noreturn","()"), Attr("c.proto","void (*)(void)"), -Attr("address","0x780"), Attr("stub","()")]), "abort", Args([]), -Blks([Blk(Tid(916, "@abort"), Attrs([Attr("address","0x780")]), Phis([]), -Defs([Def(Tid(1_698, "%000006a2"), Attrs([Attr("address","0x780"), -Attr("insn","adrp x16, #65536")]), Var("R16",Imm(64)), Int(65536,64)), -Def(Tid(1_705, "%000006a9"), Attrs([Attr("address","0x784"), -Attr("insn","ldr x17, [x16, #0xfb8]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(4024,64)),LittleEndian(),64)), -Def(Tid(1_711, "%000006af"), Attrs([Attr("address","0x788"), -Attr("insn","add x16, x16, #0xfb8")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(4024,64)))]), Jmps([Call(Tid(1_716, "%000006b4"), - Attrs([Attr("address","0x78C"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), Sub(Tid(2_031, "@call_weak_fn"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x8B4")]), - "call_weak_fn", Args([Arg(Tid(2_098, "%00000832"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("call_weak_fn_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(920, "@call_weak_fn"), - Attrs([Attr("address","0x8B4")]), Phis([]), Defs([Def(Tid(923, "%0000039b"), - Attrs([Attr("address","0x8B4"), Attr("insn","adrp x0, #65536")]), - Var("R0",Imm(64)), Int(65536,64)), Def(Tid(930, "%000003a2"), - Attrs([Attr("address","0x8B8"), Attr("insn","ldr x0, [x0, #0xfe8]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(4072,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(936, "%000003a8"), Attrs([Attr("address","0x8BC"), -Attr("insn","cbz x0, #0x8")]), EQ(Var("R0",Imm(64)),Int(0,64)), -Direct(Tid(934, "%000003a6"))), Goto(Tid(2_081, "%00000821"), Attrs([]), - Int(1,1), Direct(Tid(1_286, "%00000506")))])), Blk(Tid(934, "%000003a6"), - Attrs([Attr("address","0x8C4")]), Phis([]), Defs([]), -Jmps([Call(Tid(942, "%000003ae"), Attrs([Attr("address","0x8C4"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))])), -Blk(Tid(1_286, "%00000506"), Attrs([Attr("address","0x8C0")]), Phis([]), -Defs([]), Jmps([Goto(Tid(1_289, "%00000509"), Attrs([Attr("address","0x8C0"), -Attr("insn","b #-0x150")]), Int(1,1), -Direct(Tid(1_287, "@__gmon_start__")))])), Blk(Tid(1_287, "@__gmon_start__"), - Attrs([Attr("address","0x770")]), Phis([]), -Defs([Def(Tid(1_676, "%0000068c"), Attrs([Attr("address","0x770"), -Attr("insn","adrp x16, #65536")]), Var("R16",Imm(64)), Int(65536,64)), -Def(Tid(1_683, "%00000693"), Attrs([Attr("address","0x774"), -Attr("insn","ldr x17, [x16, #0xfb0]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(4016,64)),LittleEndian(),64)), -Def(Tid(1_689, "%00000699"), Attrs([Attr("address","0x778"), -Attr("insn","add x16, x16, #0xfb0")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(4016,64)))]), Jmps([Call(Tid(1_694, "%0000069e"), - Attrs([Attr("address","0x77C"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), -Sub(Tid(2_033, "@deregister_tm_clones"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x8D0")]), - "deregister_tm_clones", Args([Arg(Tid(2_099, "%00000833"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("deregister_tm_clones_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(948, "@deregister_tm_clones"), - Attrs([Attr("address","0x8D0")]), Phis([]), Defs([Def(Tid(951, "%000003b7"), - Attrs([Attr("address","0x8D0"), Attr("insn","adrp x0, #69632")]), - Var("R0",Imm(64)), Int(69632,64)), Def(Tid(957, "%000003bd"), - Attrs([Attr("address","0x8D4"), Attr("insn","add x0, x0, #0x20")]), - Var("R0",Imm(64)), PLUS(Var("R0",Imm(64)),Int(32,64))), -Def(Tid(962, "%000003c2"), Attrs([Attr("address","0x8D8"), -Attr("insn","adrp x1, #69632")]), Var("R1",Imm(64)), Int(69632,64)), -Def(Tid(968, "%000003c8"), Attrs([Attr("address","0x8DC"), -Attr("insn","add x1, x1, #0x20")]), Var("R1",Imm(64)), -PLUS(Var("R1",Imm(64)),Int(32,64))), Def(Tid(974, "%000003ce"), - Attrs([Attr("address","0x8E0"), Attr("insn","cmp x1, x0")]), - Var("#4",Imm(64)), NOT(Var("R0",Imm(64)))), Def(Tid(979, "%000003d3"), - Attrs([Attr("address","0x8E0"), Attr("insn","cmp x1, x0")]), - Var("#5",Imm(64)), PLUS(Var("R1",Imm(64)),NOT(Var("R0",Imm(64))))), -Def(Tid(985, "%000003d9"), Attrs([Attr("address","0x8E0"), -Attr("insn","cmp x1, x0")]), Var("VF",Imm(1)), -NEQ(SIGNED(65,PLUS(Var("#5",Imm(64)),Int(1,64))),PLUS(PLUS(SIGNED(65,Var("R1",Imm(64))),SIGNED(65,Var("#4",Imm(64)))),Int(1,65)))), -Def(Tid(991, "%000003df"), Attrs([Attr("address","0x8E0"), -Attr("insn","cmp x1, x0")]), Var("CF",Imm(1)), -NEQ(UNSIGNED(65,PLUS(Var("#5",Imm(64)),Int(1,64))),PLUS(PLUS(UNSIGNED(65,Var("R1",Imm(64))),UNSIGNED(65,Var("#4",Imm(64)))),Int(1,65)))), -Def(Tid(995, "%000003e3"), Attrs([Attr("address","0x8E0"), -Attr("insn","cmp x1, x0")]), Var("ZF",Imm(1)), -EQ(PLUS(Var("#5",Imm(64)),Int(1,64)),Int(0,64))), Def(Tid(999, "%000003e7"), - Attrs([Attr("address","0x8E0"), Attr("insn","cmp x1, x0")]), - Var("NF",Imm(1)), Extract(63,63,PLUS(Var("#5",Imm(64)),Int(1,64))))]), -Jmps([Goto(Tid(1_005, "%000003ed"), Attrs([Attr("address","0x8E4"), -Attr("insn","b.eq #0x18")]), EQ(Var("ZF",Imm(1)),Int(1,1)), -Direct(Tid(1_003, "%000003eb"))), Goto(Tid(2_082, "%00000822"), Attrs([]), - Int(1,1), Direct(Tid(1_256, "%000004e8")))])), Blk(Tid(1_256, "%000004e8"), - Attrs([Attr("address","0x8E8")]), Phis([]), -Defs([Def(Tid(1_259, "%000004eb"), Attrs([Attr("address","0x8E8"), -Attr("insn","adrp x1, #65536")]), Var("R1",Imm(64)), Int(65536,64)), -Def(Tid(1_266, "%000004f2"), Attrs([Attr("address","0x8EC"), -Attr("insn","ldr x1, [x1, #0xfd8]")]), Var("R1",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R1",Imm(64)),Int(4056,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(1_271, "%000004f7"), Attrs([Attr("address","0x8F0"), -Attr("insn","cbz x1, #0xc")]), EQ(Var("R1",Imm(64)),Int(0,64)), -Direct(Tid(1_003, "%000003eb"))), Goto(Tid(2_083, "%00000823"), Attrs([]), - Int(1,1), Direct(Tid(1_275, "%000004fb")))])), Blk(Tid(1_003, "%000003eb"), - Attrs([Attr("address","0x8FC")]), Phis([]), Defs([]), -Jmps([Call(Tid(1_011, "%000003f3"), Attrs([Attr("address","0x8FC"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))])), -Blk(Tid(1_275, "%000004fb"), Attrs([Attr("address","0x8F4")]), Phis([]), -Defs([Def(Tid(1_279, "%000004ff"), Attrs([Attr("address","0x8F4"), -Attr("insn","mov x16, x1")]), Var("R16",Imm(64)), Var("R1",Imm(64)))]), -Jmps([Call(Tid(1_284, "%00000504"), Attrs([Attr("address","0x8F8"), -Attr("insn","br x16")]), Int(1,1), (Indirect(Var("R16",Imm(64))),))]))])), -Sub(Tid(2_036, "@frame_dummy"), Attrs([Attr("c.proto","signed (*)(void)"), -Attr("address","0x990")]), "frame_dummy", Args([Arg(Tid(2_100, "%00000834"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("frame_dummy_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(1_163, "@frame_dummy"), - Attrs([Attr("address","0x990")]), Phis([]), Defs([]), -Jmps([Call(Tid(1_165, "%0000048d"), Attrs([Attr("address","0x990"), -Attr("insn","b #-0x90")]), Int(1,1), -(Direct(Tid(2_042, "@register_tm_clones")),))]))])), Sub(Tid(2_037, "@free"), - Attrs([Attr("c.proto","void (*)(void* ptr)"), Attr("address","0x7A0"), -Attr("stub","()")]), "free", Args([Arg(Tid(2_101, "%00000835"), - Attrs([Attr("c.layout","*[ : 8]"), Attr("c.data","{} ptr"), -Attr("c.type","void*")]), Var("free_ptr",Imm(64)), Var("R0",Imm(64)), -Both())]), Blks([Blk(Tid(764, "@free"), Attrs([Attr("address","0x7A0")]), - Phis([]), Defs([Def(Tid(1_742, "%000006ce"), Attrs([Attr("address","0x7A0"), -Attr("insn","adrp x16, #65536")]), Var("R16",Imm(64)), Int(65536,64)), -Def(Tid(1_749, "%000006d5"), Attrs([Attr("address","0x7A4"), -Attr("insn","ldr x17, [x16, #0xfc8]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(4040,64)),LittleEndian(),64)), -Def(Tid(1_755, "%000006db"), Attrs([Attr("address","0x7A8"), -Attr("insn","add x16, x16, #0xfc8")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(4040,64)))]), Jmps([Call(Tid(1_760, "%000006e0"), - Attrs([Attr("address","0x7AC"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), Sub(Tid(2_038, "@main"), - Attrs([Attr("c.proto","signed (*)(signed argc, const char** argv)"), -Attr("address","0x7C0")]), "main", Args([Arg(Tid(2_102, "%00000836"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("main_argc",Imm(32)), -LOW(32,Var("R0",Imm(64))), In()), Arg(Tid(2_103, "%00000837"), - Attrs([Attr("c.layout","**[char : 8]"), Attr("c.data","Top:u8 ptr ptr"), -Attr("c.type"," const char**")]), Var("main_argv",Imm(64)), -Var("R1",Imm(64)), Both()), Arg(Tid(2_104, "%00000838"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("main_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(552, "@main"), - Attrs([Attr("address","0x7C0")]), Phis([]), Defs([Def(Tid(556, "%0000022c"), - Attrs([Attr("address","0x7C0"), -Attr("insn","stp x29, x30, [sp, #-0x30]!")]), Var("#1",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(18446744073709551568,64))), -Def(Tid(562, "%00000232"), Attrs([Attr("address","0x7C0"), -Attr("insn","stp x29, x30, [sp, #-0x30]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("#1",Imm(64)),Var("R29",Imm(64)),LittleEndian(),64)), -Def(Tid(568, "%00000238"), Attrs([Attr("address","0x7C0"), -Attr("insn","stp x29, x30, [sp, #-0x30]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("#1",Imm(64)),Int(8,64)),Var("R30",Imm(64)),LittleEndian(),64)), -Def(Tid(572, "%0000023c"), Attrs([Attr("address","0x7C0"), -Attr("insn","stp x29, x30, [sp, #-0x30]!")]), Var("R31",Imm(64)), -Var("#1",Imm(64))), Def(Tid(577, "%00000241"), - Attrs([Attr("address","0x7C4"), Attr("insn","mov x0, #0xb")]), - Var("R0",Imm(64)), Int(11,64)), Def(Tid(583, "%00000247"), - Attrs([Attr("address","0x7C8"), Attr("insn","mov x29, sp")]), - Var("R29",Imm(64)), Var("R31",Imm(64))), Def(Tid(591, "%0000024f"), - Attrs([Attr("address","0x7CC"), Attr("insn","str x21, [sp, #0x20]")]), - Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(32,64)),Var("R21",Imm(64)),LittleEndian(),64)), -Def(Tid(596, "%00000254"), Attrs([Attr("address","0x7D0"), -Attr("insn","adrp x21, #69632")]), Var("R21",Imm(64)), Int(69632,64)), -Def(Tid(602, "%0000025a"), Attrs([Attr("address","0x7D4"), -Attr("insn","stp x19, x20, [sp, #0x10]")]), Var("#2",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(16,64))), Def(Tid(608, "%00000260"), - Attrs([Attr("address","0x7D4"), Attr("insn","stp x19, x20, [sp, #0x10]")]), - Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("#2",Imm(64)),Var("R19",Imm(64)),LittleEndian(),64)), -Def(Tid(614, "%00000266"), Attrs([Attr("address","0x7D4"), -Attr("insn","stp x19, x20, [sp, #0x10]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("#2",Imm(64)),Int(8,64)),Var("R20",Imm(64)),LittleEndian(),64)), -Def(Tid(619, "%0000026b"), Attrs([Attr("address","0x7D8"), -Attr("insn","bl #-0x88")]), Var("R30",Imm(64)), Int(2012,64))]), -Jmps([Call(Tid(622, "%0000026e"), Attrs([Attr("address","0x7D8"), -Attr("insn","bl #-0x88")]), Int(1,1), -(Direct(Tid(2_039, "@malloc")),Direct(Tid(624, "%00000270"))))])), -Blk(Tid(624, "%00000270"), Attrs([Attr("address","0x7DC")]), Phis([]), -Defs([Def(Tid(627, "%00000273"), Attrs([Attr("address","0x7DC"), -Attr("insn","adrp x20, #69632")]), Var("R20",Imm(64)), Int(69632,64)), -Def(Tid(633, "%00000279"), Attrs([Attr("address","0x7E0"), -Attr("insn","add x20, x20, #0x10")]), Var("R20",Imm(64)), -PLUS(Var("R20",Imm(64)),Int(16,64))), Def(Tid(639, "%0000027f"), - Attrs([Attr("address","0x7E4"), Attr("insn","mov x19, x0")]), - Var("R19",Imm(64)), Var("R0",Imm(64))), Def(Tid(645, "%00000285"), - Attrs([Attr("address","0x7E8"), Attr("insn","mov x0, x20")]), - Var("R0",Imm(64)), Var("R20",Imm(64))), Def(Tid(653, "%0000028d"), - Attrs([Attr("address","0x7EC"), Attr("insn","str x19, [x21, #0x28]")]), - Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R21",Imm(64)),Int(40,64)),Var("R19",Imm(64)),LittleEndian(),64)), -Def(Tid(658, "%00000292"), Attrs([Attr("address","0x7F0"), -Attr("insn","bl #-0xe0")]), Var("R30",Imm(64)), Int(2036,64))]), -Jmps([Call(Tid(661, "%00000295"), Attrs([Attr("address","0x7F0"), -Attr("insn","bl #-0xe0")]), Int(1,1), -(Direct(Tid(2_045, "@strlen")),Direct(Tid(663, "%00000297"))))])), -Blk(Tid(663, "%00000297"), Attrs([Attr("address","0x7F4")]), Phis([]), -Defs([Def(Tid(667, "%0000029b"), Attrs([Attr("address","0x7F4"), -Attr("insn","mov x2, x0")]), Var("R2",Imm(64)), Var("R0",Imm(64))), -Def(Tid(673, "%000002a1"), Attrs([Attr("address","0x7F8"), -Attr("insn","mov x1, x20")]), Var("R1",Imm(64)), Var("R20",Imm(64))), -Def(Tid(678, "%000002a6"), Attrs([Attr("address","0x7FC"), -Attr("insn","mov x3, #0xb")]), Var("R3",Imm(64)), Int(11,64)), -Def(Tid(684, "%000002ac"), Attrs([Attr("address","0x800"), -Attr("insn","mov x0, x19")]), Var("R0",Imm(64)), Var("R19",Imm(64))), -Def(Tid(689, "%000002b1"), Attrs([Attr("address","0x804"), -Attr("insn","bl #-0xc4")]), Var("R30",Imm(64)), Int(2056,64))]), -Jmps([Call(Tid(692, "%000002b4"), Attrs([Attr("address","0x804"), -Attr("insn","bl #-0xc4")]), Int(1,1), -(Direct(Tid(2_024, "@__memcpy_chk")),Direct(Tid(694, "%000002b6"))))])), -Blk(Tid(694, "%000002b6"), Attrs([Attr("address","0x808")]), Phis([]), -Defs([Def(Tid(698, "%000002ba"), Attrs([Attr("address","0x808"), -Attr("insn","mov x0, x19")]), Var("R0",Imm(64)), Var("R19",Imm(64))), -Def(Tid(703, "%000002bf"), Attrs([Attr("address","0x80C"), -Attr("insn","bl #-0x7c")]), Var("R30",Imm(64)), Int(2064,64))]), -Jmps([Call(Tid(706, "%000002c2"), Attrs([Attr("address","0x80C"), -Attr("insn","bl #-0x7c")]), Int(1,1), -(Direct(Tid(2_041, "@puts")),Direct(Tid(708, "%000002c4"))))])), -Blk(Tid(708, "%000002c4"), Attrs([Attr("address","0x810")]), Phis([]), -Defs([Def(Tid(713, "%000002c9"), Attrs([Attr("address","0x810"), -Attr("insn","ldr x19, [x21, #0x28]")]), Var("R19",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R21",Imm(64)),Int(40,64)),LittleEndian(),64)), -Def(Tid(719, "%000002cf"), Attrs([Attr("address","0x814"), -Attr("insn","mov x0, x19")]), Var("R0",Imm(64)), Var("R19",Imm(64))), -Def(Tid(724, "%000002d4"), Attrs([Attr("address","0x818"), -Attr("insn","bl #-0x108")]), Var("R30",Imm(64)), Int(2076,64))]), -Jmps([Call(Tid(726, "%000002d6"), Attrs([Attr("address","0x818"), -Attr("insn","bl #-0x108")]), Int(1,1), -(Direct(Tid(2_045, "@strlen")),Direct(Tid(728, "%000002d8"))))])), -Blk(Tid(728, "%000002d8"), Attrs([Attr("address","0x81C")]), Phis([]), -Defs([Def(Tid(731, "%000002db"), Attrs([Attr("address","0x81C"), -Attr("insn","mov w1, #0x1")]), Var("R1",Imm(64)), Int(1,64)), -Def(Tid(737, "%000002e1"), Attrs([Attr("address","0x820"), -Attr("insn","mov x2, x0")]), Var("R2",Imm(64)), Var("R0",Imm(64))), -Def(Tid(743, "%000002e7"), Attrs([Attr("address","0x824"), -Attr("insn","mov x0, x19")]), Var("R0",Imm(64)), Var("R19",Imm(64))), -Def(Tid(748, "%000002ec"), Attrs([Attr("address","0x828"), -Attr("insn","bl #-0xc8")]), Var("R30",Imm(64)), Int(2092,64))]), -Jmps([Call(Tid(751, "%000002ef"), Attrs([Attr("address","0x828"), -Attr("insn","bl #-0xc8")]), Int(1,1), -(Direct(Tid(2_040, "@memset")),Direct(Tid(753, "%000002f1"))))])), -Blk(Tid(753, "%000002f1"), Attrs([Attr("address","0x82C")]), Phis([]), -Defs([Def(Tid(758, "%000002f6"), Attrs([Attr("address","0x82C"), -Attr("insn","ldr x0, [x21, #0x28]")]), Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R21",Imm(64)),Int(40,64)),LittleEndian(),64)), -Def(Tid(763, "%000002fb"), Attrs([Attr("address","0x830"), -Attr("insn","bl #-0x90")]), Var("R30",Imm(64)), Int(2100,64))]), -Jmps([Call(Tid(766, "%000002fe"), Attrs([Attr("address","0x830"), -Attr("insn","bl #-0x90")]), Int(1,1), -(Direct(Tid(2_037, "@free")),Direct(Tid(768, "%00000300"))))])), -Blk(Tid(768, "%00000300"), Attrs([Attr("address","0x834")]), Phis([]), -Defs([Def(Tid(771, "%00000303"), Attrs([Attr("address","0x834"), -Attr("insn","mov w0, #0x0")]), Var("R0",Imm(64)), Int(0,64)), -Def(Tid(777, "%00000309"), Attrs([Attr("address","0x838"), -Attr("insn","ldp x19, x20, [sp, #0x10]")]), Var("#3",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(16,64))), Def(Tid(782, "%0000030e"), - Attrs([Attr("address","0x838"), Attr("insn","ldp x19, x20, [sp, #0x10]")]), - Var("R19",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("#3",Imm(64)),LittleEndian(),64)), -Def(Tid(787, "%00000313"), Attrs([Attr("address","0x838"), -Attr("insn","ldp x19, x20, [sp, #0x10]")]), Var("R20",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("#3",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(794, "%0000031a"), Attrs([Attr("address","0x83C"), -Attr("insn","ldr x21, [sp, #0x20]")]), Var("R21",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(32,64)),LittleEndian(),64)), -Def(Tid(801, "%00000321"), Attrs([Attr("address","0x840"), -Attr("insn","ldp x29, x30, [sp], #0x30")]), Var("R29",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(806, "%00000326"), Attrs([Attr("address","0x840"), -Attr("insn","ldp x29, x30, [sp], #0x30")]), Var("R30",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(810, "%0000032a"), Attrs([Attr("address","0x840"), -Attr("insn","ldp x29, x30, [sp], #0x30")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(48,64)))]), Jmps([Call(Tid(815, "%0000032f"), - Attrs([Attr("address","0x844"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), Sub(Tid(2_039, "@malloc"), - Attrs([Attr("c.proto","void* (*)(unsigned long size)"), -Attr("address","0x750"), Attr("malloc","()"), Attr("stub","()")]), "malloc", - Args([Arg(Tid(2_105, "%00000839"), Attrs([Attr("alloc-size","()"), -Attr("c.layout","[unsigned long : 64]"), Attr("c.data","Top:u64"), -Attr("c.type","unsigned long")]), Var("malloc_size",Imm(64)), -Var("R0",Imm(64)), In()), Arg(Tid(2_106, "%0000083a"), - Attrs([Attr("warn-unused","()"), Attr("c.layout","*[ : 8]"), -Attr("c.data","{} ptr"), Attr("c.type","void*")]), - Var("malloc_result",Imm(64)), Var("R0",Imm(64)), Out())]), -Blks([Blk(Tid(620, "@malloc"), Attrs([Attr("address","0x750")]), Phis([]), -Defs([Def(Tid(1_632, "%00000660"), Attrs([Attr("address","0x750"), -Attr("insn","adrp x16, #65536")]), Var("R16",Imm(64)), Int(65536,64)), -Def(Tid(1_639, "%00000667"), Attrs([Attr("address","0x754"), -Attr("insn","ldr x17, [x16, #0xfa0]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(4000,64)),LittleEndian(),64)), -Def(Tid(1_645, "%0000066d"), Attrs([Attr("address","0x758"), -Attr("insn","add x16, x16, #0xfa0")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(4000,64)))]), Jmps([Call(Tid(1_650, "%00000672"), - Attrs([Attr("address","0x75C"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), Sub(Tid(2_040, "@memset"), - Attrs([Attr("c.proto","void* (*)(void* buf, signed c, unsigned long n)"), -Attr("address","0x760"), Attr("stub","()")]), "memset", - Args([Arg(Tid(2_107, "%0000083b"), Attrs([Attr("nonnull","()"), -Attr("c.layout","*[ : 8]"), Attr("c.data","{} ptr"), -Attr("c.type","void*")]), Var("memset_buf",Imm(64)), Var("R0",Imm(64)), -Both()), Arg(Tid(2_108, "%0000083c"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("memset_c",Imm(32)), -LOW(32,Var("R1",Imm(64))), In()), Arg(Tid(2_109, "%0000083d"), - Attrs([Attr("c.layout","[unsigned long : 64]"), Attr("c.data","Top:u64"), -Attr("c.type","unsigned long")]), Var("memset_n",Imm(64)), Var("R2",Imm(64)), -In()), Arg(Tid(2_110, "%0000083e"), Attrs([Attr("c.layout","*[ : 8]"), -Attr("c.data","{} ptr"), Attr("c.type","void*")]), - Var("memset_result",Imm(64)), Var("R0",Imm(64)), Out())]), -Blks([Blk(Tid(749, "@memset"), Attrs([Attr("address","0x760")]), Phis([]), -Defs([Def(Tid(1_654, "%00000676"), Attrs([Attr("address","0x760"), -Attr("insn","adrp x16, #65536")]), Var("R16",Imm(64)), Int(65536,64)), -Def(Tid(1_661, "%0000067d"), Attrs([Attr("address","0x764"), -Attr("insn","ldr x17, [x16, #0xfa8]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(4008,64)),LittleEndian(),64)), -Def(Tid(1_667, "%00000683"), Attrs([Attr("address","0x768"), -Attr("insn","add x16, x16, #0xfa8")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(4008,64)))]), Jmps([Call(Tid(1_672, "%00000688"), - Attrs([Attr("address","0x76C"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), Sub(Tid(2_041, "@puts"), - Attrs([Attr("c.proto","signed (*)( const char* s)"), -Attr("address","0x790"), Attr("stub","()")]), "puts", - Args([Arg(Tid(2_111, "%0000083f"), Attrs([Attr("c.layout","*[char : 8]"), -Attr("c.data","Top:u8 ptr"), Attr("c.type"," const char*")]), - Var("puts_s",Imm(64)), Var("R0",Imm(64)), In()), -Arg(Tid(2_112, "%00000840"), Attrs([Attr("c.layout","[signed : 32]"), -Attr("c.data","Top:u32"), Attr("c.type","signed")]), - Var("puts_result",Imm(32)), LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(704, "@puts"), Attrs([Attr("address","0x790")]), Phis([]), -Defs([Def(Tid(1_720, "%000006b8"), Attrs([Attr("address","0x790"), -Attr("insn","adrp x16, #65536")]), Var("R16",Imm(64)), Int(65536,64)), -Def(Tid(1_727, "%000006bf"), Attrs([Attr("address","0x794"), -Attr("insn","ldr x17, [x16, #0xfc0]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(4032,64)),LittleEndian(),64)), -Def(Tid(1_733, "%000006c5"), Attrs([Attr("address","0x798"), -Attr("insn","add x16, x16, #0xfc0")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(4032,64)))]), Jmps([Call(Tid(1_738, "%000006ca"), - Attrs([Attr("address","0x79C"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), -Sub(Tid(2_042, "@register_tm_clones"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x900")]), - "register_tm_clones", Args([Arg(Tid(2_113, "%00000841"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("register_tm_clones_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(1_013, "@register_tm_clones"), - Attrs([Attr("address","0x900")]), Phis([]), -Defs([Def(Tid(1_016, "%000003f8"), Attrs([Attr("address","0x900"), -Attr("insn","adrp x0, #69632")]), Var("R0",Imm(64)), Int(69632,64)), -Def(Tid(1_022, "%000003fe"), Attrs([Attr("address","0x904"), -Attr("insn","add x0, x0, #0x20")]), Var("R0",Imm(64)), -PLUS(Var("R0",Imm(64)),Int(32,64))), Def(Tid(1_027, "%00000403"), - Attrs([Attr("address","0x908"), Attr("insn","adrp x1, #69632")]), - Var("R1",Imm(64)), Int(69632,64)), Def(Tid(1_033, "%00000409"), - Attrs([Attr("address","0x90C"), Attr("insn","add x1, x1, #0x20")]), - Var("R1",Imm(64)), PLUS(Var("R1",Imm(64)),Int(32,64))), -Def(Tid(1_040, "%00000410"), Attrs([Attr("address","0x910"), -Attr("insn","sub x1, x1, x0")]), Var("R1",Imm(64)), -PLUS(PLUS(Var("R1",Imm(64)),NOT(Var("R0",Imm(64)))),Int(1,64))), -Def(Tid(1_046, "%00000416"), Attrs([Attr("address","0x914"), -Attr("insn","lsr x2, x1, #63")]), Var("R2",Imm(64)), -Concat(Int(0,63),Extract(63,63,Var("R1",Imm(64))))), -Def(Tid(1_053, "%0000041d"), Attrs([Attr("address","0x918"), -Attr("insn","add x1, x2, x1, asr #3")]), Var("R1",Imm(64)), -PLUS(Var("R2",Imm(64)),ARSHIFT(Var("R1",Imm(64)),Int(3,3)))), -Def(Tid(1_059, "%00000423"), Attrs([Attr("address","0x91C"), -Attr("insn","asr x1, x1, #1")]), Var("R1",Imm(64)), -SIGNED(64,Extract(63,1,Var("R1",Imm(64)))))]), -Jmps([Goto(Tid(1_065, "%00000429"), Attrs([Attr("address","0x920"), -Attr("insn","cbz x1, #0x18")]), EQ(Var("R1",Imm(64)),Int(0,64)), -Direct(Tid(1_063, "%00000427"))), Goto(Tid(2_084, "%00000824"), Attrs([]), - Int(1,1), Direct(Tid(1_226, "%000004ca")))])), Blk(Tid(1_226, "%000004ca"), - Attrs([Attr("address","0x924")]), Phis([]), -Defs([Def(Tid(1_229, "%000004cd"), Attrs([Attr("address","0x924"), -Attr("insn","adrp x2, #65536")]), Var("R2",Imm(64)), Int(65536,64)), -Def(Tid(1_236, "%000004d4"), Attrs([Attr("address","0x928"), -Attr("insn","ldr x2, [x2, #0xff8]")]), Var("R2",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R2",Imm(64)),Int(4088,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(1_241, "%000004d9"), Attrs([Attr("address","0x92C"), -Attr("insn","cbz x2, #0xc")]), EQ(Var("R2",Imm(64)),Int(0,64)), -Direct(Tid(1_063, "%00000427"))), Goto(Tid(2_085, "%00000825"), Attrs([]), - Int(1,1), Direct(Tid(1_245, "%000004dd")))])), Blk(Tid(1_063, "%00000427"), - Attrs([Attr("address","0x938")]), Phis([]), Defs([]), -Jmps([Call(Tid(1_071, "%0000042f"), Attrs([Attr("address","0x938"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))])), -Blk(Tid(1_245, "%000004dd"), Attrs([Attr("address","0x930")]), Phis([]), -Defs([Def(Tid(1_249, "%000004e1"), Attrs([Attr("address","0x930"), -Attr("insn","mov x16, x2")]), Var("R16",Imm(64)), Var("R2",Imm(64)))]), -Jmps([Call(Tid(1_254, "%000004e6"), Attrs([Attr("address","0x934"), -Attr("insn","br x16")]), Int(1,1), (Indirect(Var("R16",Imm(64))),))]))])), -Sub(Tid(2_045, "@strlen"), - Attrs([Attr("c.proto","unsigned long (*)( const char* s)"), -Attr("pure","()"), Attr("address","0x710"), Attr("stub","()")]), "strlen", - Args([Arg(Tid(2_114, "%00000842"), Attrs([Attr("nonnull","()"), -Attr("c.layout","*[char : 8]"), Attr("c.data","Top:u8 ptr"), -Attr("c.type"," const char*")]), Var("strlen_s",Imm(64)), Var("R0",Imm(64)), -In()), Arg(Tid(2_115, "%00000843"), - Attrs([Attr("c.layout","[unsigned long : 64]"), Attr("c.data","Top:u64"), -Attr("c.type","unsigned long")]), Var("strlen_result",Imm(64)), -Var("R0",Imm(64)), Out())]), Blks([Blk(Tid(659, "@strlen"), - Attrs([Attr("address","0x710")]), Phis([]), -Defs([Def(Tid(1_544, "%00000608"), Attrs([Attr("address","0x710"), -Attr("insn","adrp x16, #65536")]), Var("R16",Imm(64)), Int(65536,64)), -Def(Tid(1_551, "%0000060f"), Attrs([Attr("address","0x714"), -Attr("insn","ldr x17, [x16, #0xf80]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(3968,64)),LittleEndian(),64)), -Def(Tid(1_557, "%00000615"), Attrs([Attr("address","0x718"), -Attr("insn","add x16, x16, #0xf80")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(3968,64)))]), Jmps([Call(Tid(1_562, "%0000061a"), - Attrs([Attr("address","0x71C"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))]))]))) \ No newline at end of file diff --git a/src/test/extraspec_correct/malloc_memcpy_strlen_memset_free/gcc_O2/malloc_memcpy_strlen_memset_free.bir b/src/test/extraspec_correct/malloc_memcpy_strlen_memset_free/gcc_O2/malloc_memcpy_strlen_memset_free.bir deleted file mode 100644 index 7a0877905..000000000 --- a/src/test/extraspec_correct/malloc_memcpy_strlen_memset_free/gcc_O2/malloc_memcpy_strlen_memset_free.bir +++ /dev/null @@ -1,346 +0,0 @@ -00000826: program -000007e2: sub __cxa_finalize(__cxa_finalize_result) -00000827: __cxa_finalize_result :: out u32 = low:32[R0] - -000004c6: -00000634: R16 := 0x10000 -0000063b: R17 := mem[R16 + 0xF90, el]:u64 -00000641: R16 := R16 + 0xF90 -00000646: call R17 with noreturn - -000007e3: sub __do_global_dtors_aux(__do_global_dtors_aux_result) -00000828: __do_global_dtors_aux_result :: out u32 = low:32[R0] - -00000433: -00000437: #6 := R31 - 0x20 -0000043d: mem := mem with [#6, el]:u64 <- R29 -00000443: mem := mem with [#6 + 8, el]:u64 <- R30 -00000447: R31 := #6 -0000044d: R29 := R31 -00000455: mem := mem with [R31 + 0x10, el]:u64 <- R19 -0000045a: R19 := 0x11000 -00000461: R0 := pad:64[mem[R19 + 0x20]] -00000468: when 31:0[R0] <> 0 goto %00000466 -0000081c: goto %0000048f - -0000048f: -00000492: R0 := 0x10000 -00000499: R0 := mem[R0 + 0xFE0, el]:u64 -0000049f: when R0 = 0 goto %0000049d -0000081d: goto %000004b6 - -000004b6: -000004b9: R0 := 0x11000 -000004c0: R0 := mem[R0 + 8, el]:u64 -000004c5: R30 := 0x970 -000004c8: call @__cxa_finalize with return %0000049d - -0000049d: -000004a5: R30 := 0x974 -000004a7: call @deregister_tm_clones with return %000004a9 - -000004a9: -000004ac: R0 := 1 -000004b4: mem := mem with [R19 + 0x20] <- 7:0[R0] -0000081e: goto %00000466 - -00000466: -00000470: R19 := mem[R31 + 0x10, el]:u64 -00000477: R29 := mem[R31, el]:u64 -0000047c: R30 := mem[R31 + 8, el]:u64 -00000480: R31 := R31 + 0x20 -00000485: call R30 with noreturn - -000007e7: sub __libc_start_main(__libc_start_main_main, __libc_start_main_arg2, __libc_start_main_arg3, __libc_start_main_auxv, __libc_start_main_result) -00000829: __libc_start_main_main :: in u64 = R0 -0000082a: __libc_start_main_arg2 :: in u32 = low:32[R1] -0000082b: __libc_start_main_arg3 :: in out u64 = R2 -0000082c: __libc_start_main_auxv :: in out u64 = R3 -0000082d: __libc_start_main_result :: out u32 = low:32[R0] - -0000038c: -0000061e: R16 := 0x10000 -00000625: R17 := mem[R16 + 0xF88, el]:u64 -0000062b: R16 := R16 + 0xF88 -00000630: call R17 with noreturn - -000007e8: sub __memcpy_chk(__memcpy_chk_result) -0000082e: __memcpy_chk_result :: out u32 = low:32[R0] - -000002b2: -0000064a: R16 := 0x10000 -00000651: R17 := mem[R16 + 0xF98, el]:u64 -00000657: R16 := R16 + 0xF98 -0000065c: call R17 with noreturn - -000007e9: sub _fini(_fini_result) -0000082f: _fini_result :: out u32 = low:32[R0] - -0000001f: -00000025: #0 := R31 - 0x10 -0000002b: mem := mem with [#0, el]:u64 <- R29 -00000031: mem := mem with [#0 + 8, el]:u64 <- R30 -00000035: R31 := #0 -0000003b: R29 := R31 -00000042: R29 := mem[R31, el]:u64 -00000047: R30 := mem[R31 + 8, el]:u64 -0000004b: R31 := R31 + 0x10 -00000050: call R30 with noreturn - -000007ea: sub _init(_init_result) -00000830: _init_result :: out u32 = low:32[R0] - -000006fc: -00000702: #8 := R31 - 0x10 -00000708: mem := mem with [#8, el]:u64 <- R29 -0000070e: mem := mem with [#8 + 8, el]:u64 <- R30 -00000712: R31 := #8 -00000718: R29 := R31 -0000071d: R30 := 0x6E8 -0000071f: call @call_weak_fn with return %00000721 - -00000721: -00000726: R29 := mem[R31, el]:u64 -0000072b: R30 := mem[R31 + 8, el]:u64 -0000072f: R31 := R31 + 0x10 -00000734: call R30 with noreturn - -000007eb: sub _start(_start_result) -00000831: _start_result :: out u32 = low:32[R0] - -0000034d: -00000352: R29 := 0 -00000357: R30 := 0 -0000035d: R5 := R0 -00000364: R1 := mem[R31, el]:u64 -0000036a: R2 := R31 + 8 -00000370: R6 := R31 -00000375: R0 := 0x10000 -0000037c: R0 := mem[R0 + 0xFF0, el]:u64 -00000381: R3 := 0 -00000386: R4 := 0 -0000038b: R30 := 0x8B0 -0000038e: call @__libc_start_main with return %00000390 - -00000390: -00000393: R30 := 0x8B4 -00000396: call @abort with return %0000081f - -0000081f: -00000820: call @call_weak_fn with noreturn - -000007ee: sub abort() - - -00000394: -000006a2: R16 := 0x10000 -000006a9: R17 := mem[R16 + 0xFB8, el]:u64 -000006af: R16 := R16 + 0xFB8 -000006b4: call R17 with noreturn - -000007ef: sub call_weak_fn(call_weak_fn_result) -00000832: call_weak_fn_result :: out u32 = low:32[R0] - -00000398: -0000039b: R0 := 0x10000 -000003a2: R0 := mem[R0 + 0xFE8, el]:u64 -000003a8: when R0 = 0 goto %000003a6 -00000821: goto %00000506 - -000003a6: -000003ae: call R30 with noreturn - -00000506: -00000509: goto @__gmon_start__ - -00000507: -0000068c: R16 := 0x10000 -00000693: R17 := mem[R16 + 0xFB0, el]:u64 -00000699: R16 := R16 + 0xFB0 -0000069e: call R17 with noreturn - -000007f1: sub deregister_tm_clones(deregister_tm_clones_result) -00000833: deregister_tm_clones_result :: out u32 = low:32[R0] - -000003b4: -000003b7: R0 := 0x11000 -000003bd: R0 := R0 + 0x20 -000003c2: R1 := 0x11000 -000003c8: R1 := R1 + 0x20 -000003ce: #4 := ~R0 -000003d3: #5 := R1 + ~R0 -000003d9: VF := extend:65[#5 + 1] <> extend:65[R1] + extend:65[#4] + 1 -000003df: CF := pad:65[#5 + 1] <> pad:65[R1] + pad:65[#4] + 1 -000003e3: ZF := #5 + 1 = 0 -000003e7: NF := 63:63[#5 + 1] -000003ed: when ZF goto %000003eb -00000822: goto %000004e8 - -000004e8: -000004eb: R1 := 0x10000 -000004f2: R1 := mem[R1 + 0xFD8, el]:u64 -000004f7: when R1 = 0 goto %000003eb -00000823: goto %000004fb - -000003eb: -000003f3: call R30 with noreturn - -000004fb: -000004ff: R16 := R1 -00000504: call R16 with noreturn - -000007f4: sub frame_dummy(frame_dummy_result) -00000834: frame_dummy_result :: out u32 = low:32[R0] - -0000048b: -0000048d: call @register_tm_clones with noreturn - -000007f5: sub free(free_ptr) -00000835: free_ptr :: in out u64 = R0 - -000002fc: -000006ce: R16 := 0x10000 -000006d5: R17 := mem[R16 + 0xFC8, el]:u64 -000006db: R16 := R16 + 0xFC8 -000006e0: call R17 with noreturn - -000007f6: sub main(main_argc, main_argv, main_result) -00000836: main_argc :: in u32 = low:32[R0] -00000837: main_argv :: in out u64 = R1 -00000838: main_result :: out u32 = low:32[R0] - -00000228: -0000022c: #1 := R31 - 0x30 -00000232: mem := mem with [#1, el]:u64 <- R29 -00000238: mem := mem with [#1 + 8, el]:u64 <- R30 -0000023c: R31 := #1 -00000241: R0 := 0xB -00000247: R29 := R31 -0000024f: mem := mem with [R31 + 0x20, el]:u64 <- R21 -00000254: R21 := 0x11000 -0000025a: #2 := R31 + 0x10 -00000260: mem := mem with [#2, el]:u64 <- R19 -00000266: mem := mem with [#2 + 8, el]:u64 <- R20 -0000026b: R30 := 0x7DC -0000026e: call @malloc with return %00000270 - -00000270: -00000273: R20 := 0x11000 -00000279: R20 := R20 + 0x10 -0000027f: R19 := R0 -00000285: R0 := R20 -0000028d: mem := mem with [R21 + 0x28, el]:u64 <- R19 -00000292: R30 := 0x7F4 -00000295: call @strlen with return %00000297 - -00000297: -0000029b: R2 := R0 -000002a1: R1 := R20 -000002a6: R3 := 0xB -000002ac: R0 := R19 -000002b1: R30 := 0x808 -000002b4: call @__memcpy_chk with return %000002b6 - -000002b6: -000002ba: R0 := R19 -000002bf: R30 := 0x810 -000002c2: call @puts with return %000002c4 - -000002c4: -000002c9: R19 := mem[R21 + 0x28, el]:u64 -000002cf: R0 := R19 -000002d4: R30 := 0x81C -000002d6: call @strlen with return %000002d8 - -000002d8: -000002db: R1 := 1 -000002e1: R2 := R0 -000002e7: R0 := R19 -000002ec: R30 := 0x82C -000002ef: call @memset with return %000002f1 - -000002f1: -000002f6: R0 := mem[R21 + 0x28, el]:u64 -000002fb: R30 := 0x834 -000002fe: call @free with return %00000300 - -00000300: -00000303: R0 := 0 -00000309: #3 := R31 + 0x10 -0000030e: R19 := mem[#3, el]:u64 -00000313: R20 := mem[#3 + 8, el]:u64 -0000031a: R21 := mem[R31 + 0x20, el]:u64 -00000321: R29 := mem[R31, el]:u64 -00000326: R30 := mem[R31 + 8, el]:u64 -0000032a: R31 := R31 + 0x30 -0000032f: call R30 with noreturn - -000007f7: sub malloc(malloc_size, malloc_result) -00000839: malloc_size :: in u64 = R0 -0000083a: malloc_result :: out u64 = R0 - -0000026c: -00000660: R16 := 0x10000 -00000667: R17 := mem[R16 + 0xFA0, el]:u64 -0000066d: R16 := R16 + 0xFA0 -00000672: call R17 with noreturn - -000007f8: sub memset(memset_buf, memset_c, memset_n, memset_result) -0000083b: memset_buf :: in out u64 = R0 -0000083c: memset_c :: in u32 = low:32[R1] -0000083d: memset_n :: in u64 = R2 -0000083e: memset_result :: out u64 = R0 - -000002ed: -00000676: R16 := 0x10000 -0000067d: R17 := mem[R16 + 0xFA8, el]:u64 -00000683: R16 := R16 + 0xFA8 -00000688: call R17 with noreturn - -000007f9: sub puts(puts_s, puts_result) -0000083f: puts_s :: in u64 = R0 -00000840: puts_result :: out u32 = low:32[R0] - -000002c0: -000006b8: R16 := 0x10000 -000006bf: R17 := mem[R16 + 0xFC0, el]:u64 -000006c5: R16 := R16 + 0xFC0 -000006ca: call R17 with noreturn - -000007fa: sub register_tm_clones(register_tm_clones_result) -00000841: register_tm_clones_result :: out u32 = low:32[R0] - -000003f5: -000003f8: R0 := 0x11000 -000003fe: R0 := R0 + 0x20 -00000403: R1 := 0x11000 -00000409: R1 := R1 + 0x20 -00000410: R1 := R1 + ~R0 + 1 -00000416: R2 := 0.63:63[R1] -0000041d: R1 := R2 + (R1 ~>> 3) -00000423: R1 := extend:64[63:1[R1]] -00000429: when R1 = 0 goto %00000427 -00000824: goto %000004ca - -000004ca: -000004cd: R2 := 0x10000 -000004d4: R2 := mem[R2 + 0xFF8, el]:u64 -000004d9: when R2 = 0 goto %00000427 -00000825: goto %000004dd - -00000427: -0000042f: call R30 with noreturn - -000004dd: -000004e1: R16 := R2 -000004e6: call R16 with noreturn - -000007fd: sub strlen(strlen_s, strlen_result) -00000842: strlen_s :: in u64 = R0 -00000843: strlen_result :: out u64 = R0 - -00000293: -00000608: R16 := 0x10000 -0000060f: R17 := mem[R16 + 0xF80, el]:u64 -00000615: R16 := R16 + 0xF80 -0000061a: call R17 with noreturn diff --git a/src/test/extraspec_correct/malloc_memcpy_strlen_memset_free/gcc_O2/malloc_memcpy_strlen_memset_free.gts b/src/test/extraspec_correct/malloc_memcpy_strlen_memset_free/gcc_O2/malloc_memcpy_strlen_memset_free.gts deleted file mode 100644 index 1cafafbed..000000000 Binary files a/src/test/extraspec_correct/malloc_memcpy_strlen_memset_free/gcc_O2/malloc_memcpy_strlen_memset_free.gts and /dev/null differ diff --git a/src/test/extraspec_correct/malloc_memcpy_strlen_memset_free/gcc_O2/malloc_memcpy_strlen_memset_free.md5sum b/src/test/extraspec_correct/malloc_memcpy_strlen_memset_free/gcc_O2/malloc_memcpy_strlen_memset_free.md5sum new file mode 100644 index 000000000..363bb4656 --- /dev/null +++ b/src/test/extraspec_correct/malloc_memcpy_strlen_memset_free/gcc_O2/malloc_memcpy_strlen_memset_free.md5sum @@ -0,0 +1,5 @@ +ca1c1c54b5447e999339ede0d4423583 extraspec_correct/malloc_memcpy_strlen_memset_free/gcc_O2/a.out +32fb8224d24324536976b17f29857b46 extraspec_correct/malloc_memcpy_strlen_memset_free/gcc_O2/malloc_memcpy_strlen_memset_free.adt +a17f4dde0c21ee9c093ded363a57394b extraspec_correct/malloc_memcpy_strlen_memset_free/gcc_O2/malloc_memcpy_strlen_memset_free.bir +d36f943dd19dd4dad2e745f875b05df9 extraspec_correct/malloc_memcpy_strlen_memset_free/gcc_O2/malloc_memcpy_strlen_memset_free.relf +2819395d1c2b61b1357f9c73b0d32674 extraspec_correct/malloc_memcpy_strlen_memset_free/gcc_O2/malloc_memcpy_strlen_memset_free.gts diff --git a/src/test/extraspec_correct/malloc_memcpy_strlen_memset_free/gcc_O2/malloc_memcpy_strlen_memset_free.relf b/src/test/extraspec_correct/malloc_memcpy_strlen_memset_free/gcc_O2/malloc_memcpy_strlen_memset_free.relf deleted file mode 100644 index bb7655d80..000000000 --- a/src/test/extraspec_correct/malloc_memcpy_strlen_memset_free/gcc_O2/malloc_memcpy_strlen_memset_free.relf +++ /dev/null @@ -1,142 +0,0 @@ - -Relocation section '.rela.dyn' at offset 0x528 contains 8 entries: - Offset Info Type Symbol's Value Symbol's Name + Addend -0000000000010d68 0000000000000403 R_AARCH64_RELATIVE 990 -0000000000010d70 0000000000000403 R_AARCH64_RELATIVE 940 -0000000000010ff0 0000000000000403 R_AARCH64_RELATIVE 7c0 -0000000000011008 0000000000000403 R_AARCH64_RELATIVE 11008 -0000000000010fd8 0000000500000401 R_AARCH64_GLOB_DAT 0000000000000000 _ITM_deregisterTMCloneTable + 0 -0000000000010fe0 0000000600000401 R_AARCH64_GLOB_DAT 0000000000000000 __cxa_finalize@GLIBC_2.17 + 0 -0000000000010fe8 0000000a00000401 R_AARCH64_GLOB_DAT 0000000000000000 __gmon_start__ + 0 -0000000000010ff8 0000000e00000401 R_AARCH64_GLOB_DAT 0000000000000000 _ITM_registerTMCloneTable + 0 - -Relocation section '.rela.plt' at offset 0x5e8 contains 10 entries: - Offset Info Type Symbol's Value Symbol's Name + Addend -0000000000010f80 0000000300000402 R_AARCH64_JUMP_SLOT 0000000000000000 strlen@GLIBC_2.17 + 0 -0000000000010f88 0000000400000402 R_AARCH64_JUMP_SLOT 0000000000000000 __libc_start_main@GLIBC_2.34 + 0 -0000000000010f90 0000000600000402 R_AARCH64_JUMP_SLOT 0000000000000000 __cxa_finalize@GLIBC_2.17 + 0 -0000000000010f98 0000000700000402 R_AARCH64_JUMP_SLOT 0000000000000000 __memcpy_chk@GLIBC_2.17 + 0 -0000000000010fa0 0000000800000402 R_AARCH64_JUMP_SLOT 0000000000000000 malloc@GLIBC_2.17 + 0 -0000000000010fa8 0000000900000402 R_AARCH64_JUMP_SLOT 0000000000000000 memset@GLIBC_2.17 + 0 -0000000000010fb0 0000000a00000402 R_AARCH64_JUMP_SLOT 0000000000000000 __gmon_start__ + 0 -0000000000010fb8 0000000b00000402 R_AARCH64_JUMP_SLOT 0000000000000000 abort@GLIBC_2.17 + 0 -0000000000010fc0 0000000c00000402 R_AARCH64_JUMP_SLOT 0000000000000000 puts@GLIBC_2.17 + 0 -0000000000010fc8 0000000d00000402 R_AARCH64_JUMP_SLOT 0000000000000000 free@GLIBC_2.17 + 0 - -Symbol table '.dynsym' contains 15 entries: - Num: Value Size Type Bind Vis Ndx Name - 0: 0000000000000000 0 NOTYPE LOCAL DEFAULT UND - 1: 00000000000006d8 0 SECTION LOCAL DEFAULT 11 .init - 2: 0000000000011000 0 SECTION LOCAL DEFAULT 22 .data - 3: 0000000000000000 0 FUNC GLOBAL DEFAULT UND strlen@GLIBC_2.17 (2) - 4: 0000000000000000 0 FUNC GLOBAL DEFAULT UND __libc_start_main@GLIBC_2.34 (3) - 5: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_deregisterTMCloneTable - 6: 0000000000000000 0 FUNC WEAK DEFAULT UND __cxa_finalize@GLIBC_2.17 (2) - 7: 0000000000000000 0 FUNC GLOBAL DEFAULT UND __memcpy_chk@GLIBC_2.17 (2) - 8: 0000000000000000 0 FUNC GLOBAL DEFAULT UND malloc@GLIBC_2.17 (2) - 9: 0000000000000000 0 FUNC GLOBAL DEFAULT UND memset@GLIBC_2.17 (2) - 10: 0000000000000000 0 NOTYPE WEAK DEFAULT UND __gmon_start__ - 11: 0000000000000000 0 FUNC GLOBAL DEFAULT UND abort@GLIBC_2.17 (2) - 12: 0000000000000000 0 FUNC GLOBAL DEFAULT UND puts@GLIBC_2.17 (2) - 13: 0000000000000000 0 FUNC GLOBAL DEFAULT UND free@GLIBC_2.17 (2) - 14: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_registerTMCloneTable - -Symbol table '.symtab' contains 97 entries: - Num: Value Size Type Bind Vis Ndx Name - 0: 0000000000000000 0 NOTYPE LOCAL DEFAULT UND - 1: 0000000000000238 0 SECTION LOCAL DEFAULT 1 .interp - 2: 0000000000000254 0 SECTION LOCAL DEFAULT 2 .note.gnu.build-id - 3: 0000000000000278 0 SECTION LOCAL DEFAULT 3 .note.ABI-tag - 4: 0000000000000298 0 SECTION LOCAL DEFAULT 4 .gnu.hash - 5: 00000000000002b8 0 SECTION LOCAL DEFAULT 5 .dynsym - 6: 0000000000000420 0 SECTION LOCAL DEFAULT 6 .dynstr - 7: 00000000000004da 0 SECTION LOCAL DEFAULT 7 .gnu.version - 8: 00000000000004f8 0 SECTION LOCAL DEFAULT 8 .gnu.version_r - 9: 0000000000000528 0 SECTION LOCAL DEFAULT 9 .rela.dyn - 10: 00000000000005e8 0 SECTION LOCAL DEFAULT 10 .rela.plt - 11: 00000000000006d8 0 SECTION LOCAL DEFAULT 11 .init - 12: 00000000000006f0 0 SECTION LOCAL DEFAULT 12 .plt - 13: 00000000000007c0 0 SECTION LOCAL DEFAULT 13 .text - 14: 0000000000000994 0 SECTION LOCAL DEFAULT 14 .fini - 15: 00000000000009a8 0 SECTION LOCAL DEFAULT 15 .rodata - 16: 00000000000009ac 0 SECTION LOCAL DEFAULT 16 .eh_frame_hdr - 17: 00000000000009e8 0 SECTION LOCAL DEFAULT 17 .eh_frame - 18: 0000000000010d68 0 SECTION LOCAL DEFAULT 18 .init_array - 19: 0000000000010d70 0 SECTION LOCAL DEFAULT 19 .fini_array - 20: 0000000000010d78 0 SECTION LOCAL DEFAULT 20 .dynamic - 21: 0000000000010f68 0 SECTION LOCAL DEFAULT 21 .got - 22: 0000000000011000 0 SECTION LOCAL DEFAULT 22 .data - 23: 0000000000011020 0 SECTION LOCAL DEFAULT 23 .bss - 24: 0000000000000000 0 SECTION LOCAL DEFAULT 24 .comment - 25: 0000000000000000 0 FILE LOCAL DEFAULT ABS Scrt1.o - 26: 0000000000000278 0 NOTYPE LOCAL DEFAULT 3 $d - 27: 0000000000000278 32 OBJECT LOCAL DEFAULT 3 __abi_tag - 28: 0000000000000880 0 NOTYPE LOCAL DEFAULT 13 $x - 29: 00000000000009fc 0 NOTYPE LOCAL DEFAULT 17 $d - 30: 00000000000009a8 0 NOTYPE LOCAL DEFAULT 15 $d - 31: 0000000000000000 0 FILE LOCAL DEFAULT ABS crti.o - 32: 00000000000008b4 0 NOTYPE LOCAL DEFAULT 13 $x - 33: 00000000000008b4 20 FUNC LOCAL DEFAULT 13 call_weak_fn - 34: 00000000000006d8 0 NOTYPE LOCAL DEFAULT 11 $x - 35: 0000000000000994 0 NOTYPE LOCAL DEFAULT 14 $x - 36: 0000000000000000 0 FILE LOCAL DEFAULT ABS crtn.o - 37: 00000000000006e8 0 NOTYPE LOCAL DEFAULT 11 $x - 38: 00000000000009a0 0 NOTYPE LOCAL DEFAULT 14 $x - 39: 0000000000000000 0 FILE LOCAL DEFAULT ABS malloc_memcpy_strlen_memset_free.c - 40: 00000000000007c0 0 NOTYPE LOCAL DEFAULT 13 $x - 41: 0000000000011010 0 NOTYPE LOCAL DEFAULT 22 $d - 42: 0000000000011028 0 NOTYPE LOCAL DEFAULT 23 $d - 43: 0000000000000a70 0 NOTYPE LOCAL DEFAULT 17 $d - 44: 0000000000000000 0 FILE LOCAL DEFAULT ABS crtstuff.c - 45: 00000000000008d0 0 NOTYPE LOCAL DEFAULT 13 $x - 46: 00000000000008d0 0 FUNC LOCAL DEFAULT 13 deregister_tm_clones - 47: 0000000000000900 0 FUNC LOCAL DEFAULT 13 register_tm_clones - 48: 0000000000011008 0 NOTYPE LOCAL DEFAULT 22 $d - 49: 0000000000000940 0 FUNC LOCAL DEFAULT 13 __do_global_dtors_aux - 50: 0000000000011020 1 OBJECT LOCAL DEFAULT 23 completed.0 - 51: 0000000000010d70 0 NOTYPE LOCAL DEFAULT 19 $d - 52: 0000000000010d70 0 OBJECT LOCAL DEFAULT 19 __do_global_dtors_aux_fini_array_entry - 53: 0000000000000990 0 FUNC LOCAL DEFAULT 13 frame_dummy - 54: 0000000000010d68 0 NOTYPE LOCAL DEFAULT 18 $d - 55: 0000000000010d68 0 OBJECT LOCAL DEFAULT 18 __frame_dummy_init_array_entry - 56: 0000000000000a10 0 NOTYPE LOCAL DEFAULT 17 $d - 57: 0000000000011020 0 NOTYPE LOCAL DEFAULT 23 $d - 58: 0000000000000000 0 FILE LOCAL DEFAULT ABS crtstuff.c - 59: 0000000000000a98 0 NOTYPE LOCAL DEFAULT 17 $d - 60: 0000000000000a98 0 OBJECT LOCAL DEFAULT 17 __FRAME_END__ - 61: 0000000000000000 0 FILE LOCAL DEFAULT ABS - 62: 0000000000010d78 0 OBJECT LOCAL DEFAULT ABS _DYNAMIC - 63: 00000000000009ac 0 NOTYPE LOCAL DEFAULT 16 __GNU_EH_FRAME_HDR - 64: 0000000000010fd0 0 OBJECT LOCAL DEFAULT ABS _GLOBAL_OFFSET_TABLE_ - 65: 00000000000006f0 0 NOTYPE LOCAL DEFAULT 12 $x - 66: 0000000000000000 0 FUNC GLOBAL DEFAULT UND strlen@GLIBC_2.17 - 67: 0000000000000000 0 FUNC GLOBAL DEFAULT UND __libc_start_main@GLIBC_2.34 - 68: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_deregisterTMCloneTable - 69: 0000000000011000 0 NOTYPE WEAK DEFAULT 22 data_start - 70: 000000000001101c 0 NOTYPE GLOBAL DEFAULT 23 __bss_start__ - 71: 0000000000000000 0 FUNC WEAK DEFAULT UND __cxa_finalize@GLIBC_2.17 - 72: 0000000000011030 0 NOTYPE GLOBAL DEFAULT 23 _bss_end__ - 73: 000000000001101c 0 NOTYPE GLOBAL DEFAULT 22 _edata - 74: 0000000000000000 0 FUNC GLOBAL DEFAULT UND __memcpy_chk@GLIBC_2.17 - 75: 0000000000000994 0 FUNC GLOBAL HIDDEN 14 _fini - 76: 0000000000011030 0 NOTYPE GLOBAL DEFAULT 23 __bss_end__ - 77: 0000000000000000 0 FUNC GLOBAL DEFAULT UND malloc@GLIBC_2.17 - 78: 0000000000000000 0 FUNC GLOBAL DEFAULT UND memset@GLIBC_2.17 - 79: 000000000001101b 1 OBJECT GLOBAL DEFAULT 22 password - 80: 0000000000011000 0 NOTYPE GLOBAL DEFAULT 22 __data_start - 81: 0000000000000000 0 NOTYPE WEAK DEFAULT UND __gmon_start__ - 82: 0000000000011008 0 OBJECT GLOBAL HIDDEN 22 __dso_handle - 83: 0000000000000000 0 FUNC GLOBAL DEFAULT UND abort@GLIBC_2.17 - 84: 00000000000009a8 4 OBJECT GLOBAL DEFAULT 15 _IO_stdin_used - 85: 0000000000000000 0 FUNC GLOBAL DEFAULT UND puts@GLIBC_2.17 - 86: 0000000000011030 0 NOTYPE GLOBAL DEFAULT 23 _end - 87: 0000000000000000 0 FUNC GLOBAL DEFAULT UND free@GLIBC_2.17 - 88: 0000000000000880 52 FUNC GLOBAL DEFAULT 13 _start - 89: 0000000000011028 8 OBJECT GLOBAL DEFAULT 23 buf - 90: 0000000000011030 0 NOTYPE GLOBAL DEFAULT 23 __end__ - 91: 0000000000011010 11 OBJECT GLOBAL DEFAULT 22 stext - 92: 000000000001101c 0 NOTYPE GLOBAL DEFAULT 23 __bss_start - 93: 00000000000007c0 136 FUNC GLOBAL DEFAULT 13 main - 94: 0000000000011020 0 OBJECT GLOBAL HIDDEN 22 __TMC_END__ - 95: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_registerTMCloneTable - 96: 00000000000006d8 0 FUNC GLOBAL HIDDEN 11 _init diff --git a/src/test/extraspec_incorrect/malloc_memcpy_strlen_memset_free/clang_O2/malloc_memcpy_strlen_memset_free.adt b/src/test/extraspec_incorrect/malloc_memcpy_strlen_memset_free/clang_O2/malloc_memcpy_strlen_memset_free.adt deleted file mode 100644 index 9095c3e1f..000000000 --- a/src/test/extraspec_incorrect/malloc_memcpy_strlen_memset_free/clang_O2/malloc_memcpy_strlen_memset_free.adt +++ /dev/null @@ -1,746 +0,0 @@ -Project(Attrs([Attr("filename","\"a.out\""), -Attr("image-specification","(declare abi (name str))\n(declare arch (name str))\n(declare base-address (addr int))\n(declare bias (off int))\n(declare bits (size int))\n(declare code-region (addr int) (size int) (off int))\n(declare code-start (addr int))\n(declare entry-point (addr int))\n(declare external-reference (addr int) (name str))\n(declare format (name str))\n(declare is-executable (flag bool))\n(declare is-little-endian (flag bool))\n(declare llvm:base-address (addr int))\n(declare llvm:code-entry (name str) (off int) (size int))\n(declare llvm:coff-import-library (name str))\n(declare llvm:coff-virtual-section-header (name str) (addr int) (size int))\n(declare llvm:elf-program-header (name str) (off int) (size int))\n(declare llvm:elf-program-header-flags (name str) (ld bool) (r bool) \n (w bool) (x bool))\n(declare llvm:elf-virtual-program-header (name str) (addr int) (size int))\n(declare llvm:entry-point (addr int))\n(declare llvm:macho-symbol (name str) (value int))\n(declare llvm:name-reference (at int) (name str))\n(declare llvm:relocation (at int) (addr int))\n(declare llvm:section-entry (name str) (addr int) (size int) (off int))\n(declare llvm:section-flags (name str) (r bool) (w bool) (x bool))\n(declare llvm:segment-command (name str) (off int) (size int))\n(declare llvm:segment-command-flags (name str) (r bool) (w bool) (x bool))\n(declare llvm:symbol-entry (name str) (addr int) (size int) (off int)\n (value int))\n(declare llvm:virtual-segment-command (name str) (addr int) (size int))\n(declare mapped (addr int) (size int) (off int))\n(declare named-region (addr int) (size int) (name str))\n(declare named-symbol (addr int) (name str))\n(declare require (name str))\n(declare section (addr int) (size int))\n(declare segment (addr int) (size int) (r bool) (w bool) (x bool))\n(declare subarch (name str))\n(declare symbol-chunk (addr int) (size int) (root int))\n(declare symbol-value (addr int) (value int))\n(declare system (name str))\n(declare vendor (name str))\n\n(abi unknown)\n(arch aarch64)\n(base-address 0)\n(bias 0)\n(bits 64)\n(code-region 2400 20 2400)\n(code-region 1984 416 1984)\n(code-region 1776 192 1776)\n(code-region 1752 24 1752)\n(code-start 2036)\n(code-start 1984)\n(code-start 2260)\n(entry-point 1984)\n(external-reference 69568 _ITM_deregisterTMCloneTable)\n(external-reference 69576 __cxa_finalize)\n(external-reference 69584 __gmon_start__)\n(external-reference 69600 _ITM_registerTMCloneTable)\n(external-reference 69632 memcpy)\n(external-reference 69640 strlen)\n(external-reference 69648 __libc_start_main)\n(external-reference 69656 __cxa_finalize)\n(external-reference 69664 malloc)\n(external-reference 69672 memset)\n(external-reference 69680 __gmon_start__)\n(external-reference 69688 abort)\n(external-reference 69696 puts)\n(external-reference 69704 free)\n(format elf)\n(is-executable true)\n(is-little-endian true)\n(llvm:base-address 0)\n(llvm:code-entry free 0 0)\n(llvm:code-entry puts 0 0)\n(llvm:code-entry abort 0 0)\n(llvm:code-entry memset 0 0)\n(llvm:code-entry malloc 0 0)\n(llvm:code-entry __cxa_finalize 0 0)\n(llvm:code-entry __libc_start_main 0 0)\n(llvm:code-entry strlen 0 0)\n(llvm:code-entry memcpy 0 0)\n(llvm:code-entry _init 1752 0)\n(llvm:code-entry main 2260 140)\n(llvm:code-entry _start 1984 52)\n(llvm:code-entry free@GLIBC_2.17 0 0)\n(llvm:code-entry puts@GLIBC_2.17 0 0)\n(llvm:code-entry abort@GLIBC_2.17 0 0)\n(llvm:code-entry memset@GLIBC_2.17 0 0)\n(llvm:code-entry malloc@GLIBC_2.17 0 0)\n(llvm:code-entry _fini 2400 0)\n(llvm:code-entry __cxa_finalize@GLIBC_2.17 0 0)\n(llvm:code-entry __libc_start_main@GLIBC_2.34 0 0)\n(llvm:code-entry strlen@GLIBC_2.17 0 0)\n(llvm:code-entry memcpy@GLIBC_2.17 0 0)\n(llvm:code-entry frame_dummy 2256 0)\n(llvm:code-entry __do_global_dtors_aux 2176 0)\n(llvm:code-entry register_tm_clones 2112 0)\n(llvm:code-entry deregister_tm_clones 2064 0)\n(llvm:code-entry call_weak_fn 2036 20)\n(llvm:code-entry .fini 2400 20)\n(llvm:code-entry .text 1984 416)\n(llvm:code-entry .plt 1776 192)\n(llvm:code-entry .init 1752 24)\n(llvm:elf-program-header 08 3528 568)\n(llvm:elf-program-header 07 0 0)\n(llvm:elf-program-header 06 2424 60)\n(llvm:elf-program-header 05 596 68)\n(llvm:elf-program-header 04 3544 480)\n(llvm:elf-program-header 03 3528 676)\n(llvm:elf-program-header 02 0 2696)\n(llvm:elf-program-header 01 568 27)\n(llvm:elf-program-header 00 64 504)\n(llvm:elf-program-header-flags 08 false true false false)\n(llvm:elf-program-header-flags 07 false true true false)\n(llvm:elf-program-header-flags 06 false true false false)\n(llvm:elf-program-header-flags 05 false true false false)\n(llvm:elf-program-header-flags 04 false true true false)\n(llvm:elf-program-header-flags 03 true true true false)\n(llvm:elf-program-header-flags 02 true true false true)\n(llvm:elf-program-header-flags 01 false true false false)\n(llvm:elf-program-header-flags 00 false true false false)\n(llvm:elf-virtual-program-header 08 69064 568)\n(llvm:elf-virtual-program-header 07 0 0)\n(llvm:elf-virtual-program-header 06 2424 60)\n(llvm:elf-virtual-program-header 05 596 68)\n(llvm:elf-virtual-program-header 04 69080 480)\n(llvm:elf-virtual-program-header 03 69064 696)\n(llvm:elf-virtual-program-header 02 0 2696)\n(llvm:elf-virtual-program-header 01 568 27)\n(llvm:elf-virtual-program-header 00 64 504)\n(llvm:entry-point 1984)\n(llvm:name-reference 69704 free)\n(llvm:name-reference 69696 puts)\n(llvm:name-reference 69688 abort)\n(llvm:name-reference 69680 __gmon_start__)\n(llvm:name-reference 69672 memset)\n(llvm:name-reference 69664 malloc)\n(llvm:name-reference 69656 __cxa_finalize)\n(llvm:name-reference 69648 __libc_start_main)\n(llvm:name-reference 69640 strlen)\n(llvm:name-reference 69632 memcpy)\n(llvm:name-reference 69600 _ITM_registerTMCloneTable)\n(llvm:name-reference 69584 __gmon_start__)\n(llvm:name-reference 69576 __cxa_finalize)\n(llvm:name-reference 69568 _ITM_deregisterTMCloneTable)\n(llvm:section-entry .shstrtab 0 259 7372)\n(llvm:section-entry .strtab 0 716 6656)\n(llvm:section-entry .symtab 0 2376 4280)\n(llvm:section-entry .comment 0 71 4204)\n(llvm:section-entry .bss 69744 16 4204)\n(llvm:section-entry .data 69712 28 4176)\n(llvm:section-entry .got.plt 69608 104 4072)\n(llvm:section-entry .got 69560 48 4024)\n(llvm:section-entry .dynamic 69080 480 3544)\n(llvm:section-entry .fini_array 69072 8 3536)\n(llvm:section-entry .init_array 69064 8 3528)\n(llvm:section-entry .eh_frame 2488 208 2488)\n(llvm:section-entry .eh_frame_hdr 2424 60 2424)\n(llvm:section-entry .rodata 2420 4 2420)\n(llvm:section-entry .fini 2400 20 2400)\n(llvm:section-entry .text 1984 416 1984)\n(llvm:section-entry .plt 1776 192 1776)\n(llvm:section-entry .init 1752 24 1752)\n(llvm:section-entry .rela.plt 1512 240 1512)\n(llvm:section-entry .rela.dyn 1320 192 1320)\n(llvm:section-entry .gnu.version_r 1272 48 1272)\n(llvm:section-entry .gnu.version 1236 30 1236)\n(llvm:section-entry .dynstr 1056 179 1056)\n(llvm:section-entry .dynsym 696 360 696)\n(llvm:section-entry .gnu.hash 664 28 664)\n(llvm:section-entry .note.ABI-tag 632 32 632)\n(llvm:section-entry .note.gnu.build-id 596 36 596)\n(llvm:section-entry .interp 568 27 568)\n(llvm:section-flags .shstrtab true false false)\n(llvm:section-flags .strtab true false false)\n(llvm:section-flags .symtab true false false)\n(llvm:section-flags .comment true false false)\n(llvm:section-flags .bss true true false)\n(llvm:section-flags .data true true false)\n(llvm:section-flags .got.plt true true false)\n(llvm:section-flags .got true true false)\n(llvm:section-flags .dynamic true true false)\n(llvm:section-flags .fini_array true true false)\n(llvm:section-flags .init_array true true false)\n(llvm:section-flags .eh_frame true false false)\n(llvm:section-flags .eh_frame_hdr true false false)\n(llvm:section-flags .rodata true false false)\n(llvm:section-flags .fini true false true)\n(llvm:section-flags .text true false true)\n(llvm:section-flags .plt true false true)\n(llvm:section-flags .init true false true)\n(llvm:section-flags .rela.plt true false false)\n(llvm:section-flags .rela.dyn true false false)\n(llvm:section-flags .gnu.version_r true false false)\n(llvm:section-flags .gnu.version true false false)\n(llvm:section-flags .dynstr true false false)\n(llvm:section-flags .dynsym true false false)\n(llvm:section-flags .gnu.hash true false false)\n(llvm:section-flags .note.ABI-tag true false false)\n(llvm:section-flags .note.gnu.build-id true false false)\n(llvm:section-flags .interp true false false)\n(llvm:symbol-entry free 0 0 0 0)\n(llvm:symbol-entry puts 0 0 0 0)\n(llvm:symbol-entry abort 0 0 0 0)\n(llvm:symbol-entry memset 0 0 0 0)\n(llvm:symbol-entry malloc 0 0 0 0)\n(llvm:symbol-entry __cxa_finalize 0 0 0 0)\n(llvm:symbol-entry __libc_start_main 0 0 0 0)\n(llvm:symbol-entry strlen 0 0 0 0)\n(llvm:symbol-entry memcpy 0 0 0 0)\n(llvm:symbol-entry _init 1752 0 1752 1752)\n(llvm:symbol-entry main 2260 140 2260 2260)\n(llvm:symbol-entry _start 1984 52 1984 1984)\n(llvm:symbol-entry free@GLIBC_2.17 0 0 0 0)\n(llvm:symbol-entry puts@GLIBC_2.17 0 0 0 0)\n(llvm:symbol-entry abort@GLIBC_2.17 0 0 0 0)\n(llvm:symbol-entry memset@GLIBC_2.17 0 0 0 0)\n(llvm:symbol-entry malloc@GLIBC_2.17 0 0 0 0)\n(llvm:symbol-entry _fini 2400 0 2400 2400)\n(llvm:symbol-entry __cxa_finalize@GLIBC_2.17 0 0 0 0)\n(llvm:symbol-entry __libc_start_main@GLIBC_2.34 0 0 0 0)\n(llvm:symbol-entry strlen@GLIBC_2.17 0 0 0 0)\n(llvm:symbol-entry memcpy@GLIBC_2.17 0 0 0 0)\n(llvm:symbol-entry frame_dummy 2256 0 2256 2256)\n(llvm:symbol-entry __do_global_dtors_aux 2176 0 2176 2176)\n(llvm:symbol-entry register_tm_clones 2112 0 2112 2112)\n(llvm:symbol-entry deregister_tm_clones 2064 0 2064 2064)\n(llvm:symbol-entry call_weak_fn 2036 20 2036 2036)\n(mapped 0 2696 0)\n(mapped 69064 676 3528)\n(named-region 0 2696 02)\n(named-region 69064 696 03)\n(named-region 568 27 .interp)\n(named-region 596 36 .note.gnu.build-id)\n(named-region 632 32 .note.ABI-tag)\n(named-region 664 28 .gnu.hash)\n(named-region 696 360 .dynsym)\n(named-region 1056 179 .dynstr)\n(named-region 1236 30 .gnu.version)\n(named-region 1272 48 .gnu.version_r)\n(named-region 1320 192 .rela.dyn)\n(named-region 1512 240 .rela.plt)\n(named-region 1752 24 .init)\n(named-region 1776 192 .plt)\n(named-region 1984 416 .text)\n(named-region 2400 20 .fini)\n(named-region 2420 4 .rodata)\n(named-region 2424 60 .eh_frame_hdr)\n(named-region 2488 208 .eh_frame)\n(named-region 69064 8 .init_array)\n(named-region 69072 8 .fini_array)\n(named-region 69080 480 .dynamic)\n(named-region 69560 48 .got)\n(named-region 69608 104 .got.plt)\n(named-region 69712 28 .data)\n(named-region 69744 16 .bss)\n(named-region 0 71 .comment)\n(named-region 0 2376 .symtab)\n(named-region 0 716 .strtab)\n(named-region 0 259 .shstrtab)\n(named-symbol 2036 call_weak_fn)\n(named-symbol 2064 deregister_tm_clones)\n(named-symbol 2112 register_tm_clones)\n(named-symbol 2176 __do_global_dtors_aux)\n(named-symbol 2256 frame_dummy)\n(named-symbol 0 memcpy@GLIBC_2.17)\n(named-symbol 0 strlen@GLIBC_2.17)\n(named-symbol 0 __libc_start_main@GLIBC_2.34)\n(named-symbol 0 __cxa_finalize@GLIBC_2.17)\n(named-symbol 2400 _fini)\n(named-symbol 0 malloc@GLIBC_2.17)\n(named-symbol 0 memset@GLIBC_2.17)\n(named-symbol 0 abort@GLIBC_2.17)\n(named-symbol 0 puts@GLIBC_2.17)\n(named-symbol 0 free@GLIBC_2.17)\n(named-symbol 1984 _start)\n(named-symbol 2260 main)\n(named-symbol 1752 _init)\n(named-symbol 0 memcpy)\n(named-symbol 0 strlen)\n(named-symbol 0 __libc_start_main)\n(named-symbol 0 __cxa_finalize)\n(named-symbol 0 malloc)\n(named-symbol 0 memset)\n(named-symbol 0 abort)\n(named-symbol 0 puts)\n(named-symbol 0 free)\n(require libc.so.6)\n(section 568 27)\n(section 596 36)\n(section 632 32)\n(section 664 28)\n(section 696 360)\n(section 1056 179)\n(section 1236 30)\n(section 1272 48)\n(section 1320 192)\n(section 1512 240)\n(section 1752 24)\n(section 1776 192)\n(section 1984 416)\n(section 2400 20)\n(section 2420 4)\n(section 2424 60)\n(section 2488 208)\n(section 69064 8)\n(section 69072 8)\n(section 69080 480)\n(section 69560 48)\n(section 69608 104)\n(section 69712 28)\n(section 69744 16)\n(section 0 71)\n(section 0 2376)\n(section 0 716)\n(section 0 259)\n(segment 0 2696 true false true)\n(segment 69064 696 true true false)\n(subarch v8)\n(symbol-chunk 2036 20 2036)\n(symbol-chunk 1984 52 1984)\n(symbol-chunk 2260 140 2260)\n(symbol-value 2036 2036)\n(symbol-value 2064 2064)\n(symbol-value 2112 2112)\n(symbol-value 2176 2176)\n(symbol-value 2256 2256)\n(symbol-value 2400 2400)\n(symbol-value 1984 1984)\n(symbol-value 2260 2260)\n(symbol-value 1752 1752)\n(symbol-value 0 0)\n(system \"\")\n(vendor \"\")\n"), -Attr("abi-name","\"aarch64-linux-gnu-elf\"")]), -Sections([Section(".shstrtab", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\xc0\x07\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xd0\x1d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x38\x00\x09\x00\x40\x00\x1d\x00\x1c\x00\x06\x00\x00\x00\x04\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x04\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x88\x0a\x00\x00\x00\x00\x00\x00\x88\x0a\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x01\x00\x00\x00\x06\x00\x00\x00\xc8\x0d\x00\x00\x00\x00\x00\x00\xc8\x0d\x01\x00\x00\x00\x00\x00\xc8\x0d\x01"), -Section(".strtab", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\xc0\x07\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xd0\x1d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x38\x00\x09\x00\x40\x00\x1d\x00\x1c\x00\x06\x00\x00\x00\x04\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x04\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x88\x0a\x00\x00\x00\x00\x00\x00\x88\x0a\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x01\x00\x00\x00\x06\x00\x00\x00\xc8\x0d\x00\x00\x00\x00\x00\x00\xc8\x0d\x01\x00\x00\x00\x00\x00\xc8\x0d\x01\x00\x00\x00\x00\x00\xa4\x02\x00\x00\x00\x00\x00\x00\xb8\x02\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x02\x00\x00\x00\x06\x00\x00\x00\xd8\x0d\x00\x00\x00\x00\x00\x00\xd8\x0d\x01\x00\x00\x00\x00\x00\xd8\x0d\x01\x00\x00\x00\x00\x00\xe0\x01\x00\x00\x00\x00\x00\x00\xe0\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x04\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x50\xe5\x74\x64\x04\x00\x00\x00\x78\x09\x00\x00\x00\x00\x00\x00\x78\x09\x00\x00\x00\x00\x00\x00\x78\x09\x00\x00\x00\x00\x00\x00\x3c\x00\x00\x00\x00\x00\x00\x00\x3c\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x51\xe5\x74\x64\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x52\xe5\x74\x64\x04\x00\x00\x00\xc8\x0d\x00\x00\x00\x00\x00\x00\xc8\x0d\x01\x00\x00\x00\x00\x00\xc8\x0d\x01\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x2f\x6c\x69\x62\x2f\x6c\x64\x2d\x6c\x69\x6e\x75\x78\x2d\x61\x61\x72\x63\x68\x36\x34\x2e\x73\x6f\x2e\x31\x00\x00\x04\x00\x00\x00\x14\x00\x00\x00\x03\x00\x00\x00\x47\x4e\x55\x00\xd7\x6e\x9e\x0a\x35\x6b\x73\x43\xa8\xae\x04\xd2\x0b\x88\xa4\x71\x57\x5c\x58\xdc\x04\x00\x00\x00\x10\x00\x00\x00\x01\x00\x00\x00\x47\x4e\x55\x00\x00\x00\x00\x00\x03\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x01\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".symtab", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\xc0\x07\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xd0\x1d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x38\x00\x09\x00\x40\x00\x1d\x00\x1c\x00\x06\x00\x00\x00\x04\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x04\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x88\x0a\x00\x00\x00\x00\x00\x00\x88\x0a\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x01\x00\x00\x00\x06\x00\x00\x00\xc8\x0d\x00\x00\x00\x00\x00\x00\xc8\x0d\x01\x00\x00\x00\x00\x00\xc8\x0d\x01\x00\x00\x00\x00\x00\xa4\x02\x00\x00\x00\x00\x00\x00\xb8\x02\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x02\x00\x00\x00\x06\x00\x00\x00\xd8\x0d\x00\x00\x00\x00\x00\x00\xd8\x0d\x01\x00\x00\x00\x00\x00\xd8\x0d\x01\x00\x00\x00\x00\x00\xe0\x01\x00\x00\x00\x00\x00\x00\xe0\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x04\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x50\xe5\x74\x64\x04\x00\x00\x00\x78\x09\x00\x00\x00\x00\x00\x00\x78\x09\x00\x00\x00\x00\x00\x00\x78\x09\x00\x00\x00\x00\x00\x00\x3c\x00\x00\x00\x00\x00\x00\x00\x3c\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x51\xe5\x74\x64\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x52\xe5\x74\x64\x04\x00\x00\x00\xc8\x0d\x00\x00\x00\x00\x00\x00\xc8\x0d\x01\x00\x00\x00\x00\x00\xc8\x0d\x01\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x2f\x6c\x69\x62\x2f\x6c\x64\x2d\x6c\x69\x6e\x75\x78\x2d\x61\x61\x72\x63\x68\x36\x34\x2e\x73\x6f\x2e\x31\x00\x00\x04\x00\x00\x00\x14\x00\x00\x00\x03\x00\x00\x00\x47\x4e\x55\x00\xd7\x6e\x9e\x0a\x35\x6b\x73\x43\xa8\xae\x04\xd2\x0b\x88\xa4\x71\x57\x5c\x58\xdc\x04\x00\x00\x00\x10\x00\x00\x00\x01\x00\x00\x00\x47\x4e\x55\x00\x00\x00\x00\x00\x03\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x01\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x0b\x00\xd8\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x17\x00\x50\x10\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x47\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x3a\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x17\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6e\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x22\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x29\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x8a\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x41\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x30\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x35\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x99\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5f\x5f\x63\x78\x61\x5f\x66\x69\x6e\x61\x6c\x69\x7a\x65\x00\x6d\x61\x6c\x6c\x6f\x63\x00\x5f\x5f\x6c\x69\x62\x63\x5f\x73\x74\x61\x72\x74\x5f\x6d\x61\x69\x6e\x00\x6d\x65\x6d\x73\x65\x74\x00\x70\x75\x74\x73\x00\x66\x72\x65\x65\x00\x73\x74\x72\x6c\x65\x6e\x00\x61\x62\x6f\x72\x74\x00\x6d\x65\x6d\x63\x70\x79\x00\x6c\x69\x62\x63\x2e\x73\x6f\x2e\x36\x00\x47\x4c\x49\x42\x43\x5f\x32\x2e\x33\x34\x00\x47\x4c\x49\x42\x43\x5f\x32\x2e\x31\x37\x00\x5f\x49\x54\x4d\x5f\x64\x65\x72\x65\x67\x69\x73\x74\x65\x72\x54\x4d\x43\x6c\x6f\x6e\x65\x54\x61\x62\x6c\x65\x00\x5f\x5f\x67\x6d\x6f\x6e\x5f\x73\x74\x61\x72\x74\x5f\x5f\x00\x5f\x49\x54\x4d\x5f\x72\x65\x67\x69\x73\x74\x65\x72\x54\x4d\x43\x6c\x6f\x6e\x65\x54\x61\x62\x6c\x65\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x02\x00\x03\x00\x01\x00\x02\x00\x02\x00\x02\x00\x01\x00\x02\x00\x02\x00\x02\x00\x01\x00\x00\x00\x00\x00\x00\x00\x01\x00\x02\x00\x4e\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\xb4\x91\x96\x06\x00\x00\x03\x00\x58\x00\x00\x00\x10\x00\x00\x00\x97\x91\x96\x06\x00\x00\x02\x00\x63\x00\x00\x00\x00\x00\x00\x00\xc8\x0d\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\xd0\x08\x00\x00\x00\x00\x00\x00\xd0\x0d\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x80\x08\x00\x00\x00\x00\x00\x00\xd8\x0f\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\xd4\x08\x00\x00\x00\x00\x00\x00\x58\x10\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x58\x10\x01\x00\x00\x00\x00\x00\xc0\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xc8\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xd0\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x0a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe0\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x0e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x08\x10\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x10\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x18\x10\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x20\x10\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x28\x10\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x09\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x30\x10\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x0a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x38\x10\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x0b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x10\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x0c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x48\x10\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x0d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1f\x20\x03\xd5\xfd\x7b\xbf\xa9\xfd\x03\x00\x91\x44\x00\x00\x94\xfd\x7b\xc1\xa8\xc0\x03\x5f\xd6\xf0\x7b\xbf\xa9\x90\x00\x00\x90\x11\xfe\x47\xf9\x10\xe2\x3f\x91\x20\x02\x1f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x90\x00\x00\xb0\x11\x02\x40\xf9\x10\x02\x00\x91\x20\x02\x1f\xd6\x90\x00\x00\xb0\x11\x06\x40\xf9\x10\x22\x00\x91\x20\x02\x1f\xd6\x90\x00\x00\xb0\x11\x0a\x40\xf9\x10\x42\x00\x91\x20\x02\x1f\xd6\x90\x00\x00\xb0\x11\x0e\x40\xf9\x10\x62\x00\x91\x20\x02\x1f\xd6\x90\x00\x00\xb0\x11\x12\x40\xf9\x10\x82\x00\x91\x20\x02\x1f\xd6\x90\x00\x00\xb0\x11\x16\x40\xf9\x10\xa2\x00\x91\x20\x02\x1f\xd6\x90\x00\x00\xb0\x11\x1a\x40\xf9\x10\xc2\x00\x91\x20\x02\x1f\xd6\x90\x00\x00\xb0\x11\x1e\x40\xf9\x10\xe2\x00\x91\x20\x02\x1f\xd6\x90\x00\x00\xb0\x11\x22\x40\xf9\x10\x02\x01\x91\x20\x02\x1f\xd6\x90\x00\x00\xb0\x11\x26\x40\xf9\x10\x22\x01\x91\x20\x02\x1f\xd6\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1f\x20\x03\xd5\x1d\x00\x80\xd2\x1e\x00\x80\xd2\xe5\x03\x00\xaa\xe1\x03\x40\xf9\xe2\x23\x00\x91\xe6\x03\x00\x91\x80\x00\x00\x90\x00\xec\x47\xf9\x03\x00\x80\xd2\x04\x00\x80\xd2\xd1\xff\xff\x97\xe4\xff\xff\x97\x80\x00\x00\x90\x00\xe8\x47\xf9\x40\x00\x00\xb4\xdc\xff\xff\x17\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x80\x00\x00\xb0\x00\xc0\x01\x91\x81\x00\x00\xb0\x21\xc0\x01\x91\x3f\x00\x00\xeb\xc0\x00\x00\x54\x81\x00\x00\x90\x21\xe0\x47\xf9\x61\x00\x00\xb4\xf0\x03\x01\xaa\x00\x02\x1f\xd6\xc0\x03\x5f\xd6\x80\x00\x00\xb0\x00\xc0\x01\x91\x81\x00\x00\xb0\x21\xc0\x01\x91\x21\x00\x00\xcb\x22\xfc\x7f\xd3\x41\x0c\x81\x8b\x21\xfc\x41\x93\xc1\x00\x00\xb4\x82\x00\x00\x90\x42\xf0\x47\xf9\x62\x00\x00\xb4\xf0\x03\x02\xaa\x00\x02\x1f\xd6\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\xfd\x7b\xbe\xa9\xfd\x03\x00\x91\xf3\x0b\x00\xf9\x93\x00\x00\xb0\x60\xc2\x41\x39\x40\x01\x00\x35\x80\x00\x00\x90\x00\xe4\x47\xf9\x80\x00\x00\xb4\x80\x00\x00\xb0\x00\x2c\x40\xf9\xa5\xff\xff\x97\xd8\xff\xff\x97\x20\x00\x80\x52\x60\xc2\x01\x39\xf3\x0b\x40\xf9\xfd\x7b\xc2\xa8\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\xdc\xff\xff\x17\xfd\x7b\xbd\xa9\xf5\x0b\x00\xf9\xf4\x4f\x02\xa9\xfd\x03\x00\x91\x60\x01\x80\x52\x9a\xff\xff\x97\x95\x00\x00\xb0\x94\x00\x00\xb0\x94\x86\x01\x91\xf3\x03\x00\xaa\xa0\x3e\x00\xf9\xe0\x03\x14\xaa\x87\xff\xff\x97\xe2\x03\x00\xaa\xe0\x03\x13\xaa\xe1\x03\x14\xaa\x7f\xff\xff\x97\xe0\x03\x13\xaa\x9d\xff\xff\x97\xa8\x3e\x40\xf9\x1f\x11\x00\x39\xb3\x3e\x40\xf9\xe0\x03\x13\xaa\x7c\xff\xff\x97\xe2\x03\x00\xaa\xe0\x03\x13\xaa\x21\x00\x80\x52\x88\xff\xff\x97\xa0\x3e\x40\xf9"), -Section(".comment", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\xc0\x07\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xd0\x1d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x38\x00\x09\x00\x40\x00\x1d\x00\x1c\x00\x06\x00\x00\x00\x04\x00\x00"), -Section(".interp", 0x238, "\x2f\x6c\x69\x62\x2f\x6c\x64\x2d\x6c\x69\x6e\x75\x78\x2d\x61\x61\x72\x63\x68\x36\x34\x2e\x73\x6f\x2e\x31\x00"), -Section(".note.gnu.build-id", 0x254, "\x04\x00\x00\x00\x14\x00\x00\x00\x03\x00\x00\x00\x47\x4e\x55\x00\xd7\x6e\x9e\x0a\x35\x6b\x73\x43\xa8\xae\x04\xd2\x0b\x88\xa4\x71\x57\x5c\x58\xdc"), -Section(".note.ABI-tag", 0x278, "\x04\x00\x00\x00\x10\x00\x00\x00\x01\x00\x00\x00\x47\x4e\x55\x00\x00\x00\x00\x00\x03\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00"), -Section(".gnu.hash", 0x298, "\x01\x00\x00\x00\x01\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".dynsym", 0x2B8, "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x0b\x00\xd8\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x17\x00\x50\x10\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x47\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x3a\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x17\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6e\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x22\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x29\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x8a\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x41\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x30\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x35\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x99\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".dynstr", 0x420, "\x00\x5f\x5f\x63\x78\x61\x5f\x66\x69\x6e\x61\x6c\x69\x7a\x65\x00\x6d\x61\x6c\x6c\x6f\x63\x00\x5f\x5f\x6c\x69\x62\x63\x5f\x73\x74\x61\x72\x74\x5f\x6d\x61\x69\x6e\x00\x6d\x65\x6d\x73\x65\x74\x00\x70\x75\x74\x73\x00\x66\x72\x65\x65\x00\x73\x74\x72\x6c\x65\x6e\x00\x61\x62\x6f\x72\x74\x00\x6d\x65\x6d\x63\x70\x79\x00\x6c\x69\x62\x63\x2e\x73\x6f\x2e\x36\x00\x47\x4c\x49\x42\x43\x5f\x32\x2e\x33\x34\x00\x47\x4c\x49\x42\x43\x5f\x32\x2e\x31\x37\x00\x5f\x49\x54\x4d\x5f\x64\x65\x72\x65\x67\x69\x73\x74\x65\x72\x54\x4d\x43\x6c\x6f\x6e\x65\x54\x61\x62\x6c\x65\x00\x5f\x5f\x67\x6d\x6f\x6e\x5f\x73\x74\x61\x72\x74\x5f\x5f\x00\x5f\x49\x54\x4d\x5f\x72\x65\x67\x69\x73\x74\x65\x72\x54\x4d\x43\x6c\x6f\x6e\x65\x54\x61\x62\x6c\x65\x00"), -Section(".gnu.version", 0x4D4, "\x00\x00\x00\x00\x00\x00\x02\x00\x02\x00\x03\x00\x01\x00\x02\x00\x02\x00\x02\x00\x01\x00\x02\x00\x02\x00\x02\x00\x01\x00"), -Section(".gnu.version_r", 0x4F8, "\x01\x00\x02\x00\x4e\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\xb4\x91\x96\x06\x00\x00\x03\x00\x58\x00\x00\x00\x10\x00\x00\x00\x97\x91\x96\x06\x00\x00\x02\x00\x63\x00\x00\x00\x00\x00\x00\x00"), -Section(".rela.dyn", 0x528, "\xc8\x0d\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\xd0\x08\x00\x00\x00\x00\x00\x00\xd0\x0d\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x80\x08\x00\x00\x00\x00\x00\x00\xd8\x0f\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\xd4\x08\x00\x00\x00\x00\x00\x00\x58\x10\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x58\x10\x01\x00\x00\x00\x00\x00\xc0\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xc8\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xd0\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x0a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe0\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x0e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".rela.plt", 0x5E8, "\x00\x10\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x08\x10\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x10\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x18\x10\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x20\x10\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x28\x10\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x09\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x30\x10\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x0a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x38\x10\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x0b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x10\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x0c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x48\x10\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x0d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".init", 0x6D8, "\x1f\x20\x03\xd5\xfd\x7b\xbf\xa9\xfd\x03\x00\x91\x44\x00\x00\x94\xfd\x7b\xc1\xa8\xc0\x03\x5f\xd6"), -Section(".plt", 0x6F0, "\xf0\x7b\xbf\xa9\x90\x00\x00\x90\x11\xfe\x47\xf9\x10\xe2\x3f\x91\x20\x02\x1f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x90\x00\x00\xb0\x11\x02\x40\xf9\x10\x02\x00\x91\x20\x02\x1f\xd6\x90\x00\x00\xb0\x11\x06\x40\xf9\x10\x22\x00\x91\x20\x02\x1f\xd6\x90\x00\x00\xb0\x11\x0a\x40\xf9\x10\x42\x00\x91\x20\x02\x1f\xd6\x90\x00\x00\xb0\x11\x0e\x40\xf9\x10\x62\x00\x91\x20\x02\x1f\xd6\x90\x00\x00\xb0\x11\x12\x40\xf9\x10\x82\x00\x91\x20\x02\x1f\xd6\x90\x00\x00\xb0\x11\x16\x40\xf9\x10\xa2\x00\x91\x20\x02\x1f\xd6\x90\x00\x00\xb0\x11\x1a\x40\xf9\x10\xc2\x00\x91\x20\x02\x1f\xd6\x90\x00\x00\xb0\x11\x1e\x40\xf9\x10\xe2\x00\x91\x20\x02\x1f\xd6\x90\x00\x00\xb0\x11\x22\x40\xf9\x10\x02\x01\x91\x20\x02\x1f\xd6\x90\x00\x00\xb0\x11\x26\x40\xf9\x10\x22\x01\x91\x20\x02\x1f\xd6"), -Section(".fini", 0x960, "\x1f\x20\x03\xd5\xfd\x7b\xbf\xa9\xfd\x03\x00\x91\xfd\x7b\xc1\xa8\xc0\x03\x5f\xd6"), -Section(".rodata", 0x974, "\x01\x00\x02\x00"), -Section(".eh_frame_hdr", 0x978, "\x01\x1b\x03\x3b\x3c\x00\x00\x00\x06\x00\x00\x00\x48\xfe\xff\xff\x54\x00\x00\x00\x98\xfe\xff\xff\x68\x00\x00\x00\xc8\xfe\xff\xff\x7c\x00\x00\x00\x08\xff\xff\xff\x90\x00\x00\x00\x58\xff\xff\xff\xb4\x00\x00\x00\x5c\xff\xff\xff\xdc\x00\x00\x00"), -Section(".eh_frame", 0x9B8, "\x10\x00\x00\x00\x00\x00\x00\x00\x01\x7a\x52\x00\x04\x78\x1e\x01\x1b\x0c\x1f\x00\x10\x00\x00\x00\x18\x00\x00\x00\xec\xfd\xff\xff\x34\x00\x00\x00\x00\x41\x07\x1e\x10\x00\x00\x00\x2c\x00\x00\x00\x28\xfe\xff\xff\x30\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x40\x00\x00\x00\x44\xfe\xff\xff\x3c\x00\x00\x00\x00\x00\x00\x00\x20\x00\x00\x00\x54\x00\x00\x00\x70\xfe\xff\xff\x48\x00\x00\x00\x00\x41\x0e\x20\x9d\x04\x9e\x03\x42\x93\x02\x4e\xde\xdd\xd3\x0e\x00\x00\x00\x00\x10\x00\x00\x00\x78\x00\x00\x00\x9c\xfe\xff\xff\x04\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x01\x7a\x52\x00\x01\x7c\x1e\x01\x1b\x0c\x1f\x00\x2c\x00\x00\x00\x18\x00\x00\x00\x78\xfe\xff\xff\x8c\x00\x00\x00\x00\x44\x0e\x30\x4c\x0c\x1d\x30\x93\x02\x94\x04\x95\x08\x9e\x0a\x9d\x0c\x02\x6c\x0c\x1f\x30\x4c\x0e\x00\xd3\xd4\xd5\xde\xdd\x00\x00\x00\x00\x00"), -Section(".fini_array", 0x10DD0, "\x80\x08\x00\x00\x00\x00\x00\x00"), -Section(".dynamic", 0x10DD8, "\x01\x00\x00\x00\x00\x00\x00\x00\x4e\x00\x00\x00\x00\x00\x00\x00\x0c\x00\x00\x00\x00\x00\x00\x00\xd8\x06\x00\x00\x00\x00\x00\x00\x0d\x00\x00\x00\x00\x00\x00\x00\x60\x09\x00\x00\x00\x00\x00\x00\x19\x00\x00\x00\x00\x00\x00\x00\xc8\x0d\x01\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x1a\x00\x00\x00\x00\x00\x00\x00\xd0\x0d\x01\x00\x00\x00\x00\x00\x1c\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\xf5\xfe\xff\x6f\x00\x00\x00\x00\x98\x02\x00\x00\x00\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x20\x04\x00\x00\x00\x00\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\xb8\x02\x00\x00\x00\x00\x00\x00\x0a\x00\x00\x00\x00\x00\x00\x00\xb3\x00\x00\x00\x00\x00\x00\x00\x0b\x00\x00\x00\x00\x00\x00\x00\x18\x00\x00\x00\x00\x00\x00\x00\x15\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\xe8\x0f\x01\x00\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\xf0\x00\x00\x00\x00\x00\x00\x00\x14\x00\x00\x00\x00\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x17\x00\x00\x00\x00\x00\x00\x00\xe8\x05\x00\x00\x00\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x28\x05\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\xc0\x00\x00\x00\x00\x00\x00\x00\x09\x00\x00\x00\x00\x00\x00\x00\x18\x00\x00\x00\x00\x00\x00\x00\xfb\xff\xff\x6f\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\xfe\xff\xff\x6f\x00\x00\x00\x00\xf8\x04\x00\x00\x00\x00\x00\x00\xff\xff\xff\x6f\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\xf0\xff\xff\x6f\x00\x00\x00\x00\xd4\x04\x00\x00\x00\x00\x00\x00\xf9\xff\xff\x6f\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".init_array", 0x10DC8, "\xd0\x08\x00\x00\x00\x00\x00\x00"), -Section(".got", 0x10FB8, "\xd8\x0d\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xd4\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".got.plt", 0x10FE8, "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xf0\x06\x00\x00\x00\x00\x00\x00\xf0\x06\x00\x00\x00\x00\x00\x00\xf0\x06\x00\x00\x00\x00\x00\x00\xf0\x06\x00\x00\x00\x00\x00\x00\xf0\x06\x00\x00\x00\x00\x00\x00\xf0\x06\x00\x00\x00\x00\x00\x00\xf0\x06\x00\x00\x00\x00\x00\x00\xf0\x06\x00\x00\x00\x00\x00\x00\xf0\x06\x00\x00\x00\x00\x00\x00\xf0\x06\x00\x00\x00\x00\x00\x00"), -Section(".data", 0x11050, "\x00\x00\x00\x00\x00\x00\x00\x00\x58\x10\x01\x00\x00\x00\x00\x00\x07\x75\x73\x65\x72\x3a\x70\x61\x73\x73\x00\x00"), -Section(".text", 0x7C0, "\x1f\x20\x03\xd5\x1d\x00\x80\xd2\x1e\x00\x80\xd2\xe5\x03\x00\xaa\xe1\x03\x40\xf9\xe2\x23\x00\x91\xe6\x03\x00\x91\x80\x00\x00\x90\x00\xec\x47\xf9\x03\x00\x80\xd2\x04\x00\x80\xd2\xd1\xff\xff\x97\xe4\xff\xff\x97\x80\x00\x00\x90\x00\xe8\x47\xf9\x40\x00\x00\xb4\xdc\xff\xff\x17\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x80\x00\x00\xb0\x00\xc0\x01\x91\x81\x00\x00\xb0\x21\xc0\x01\x91\x3f\x00\x00\xeb\xc0\x00\x00\x54\x81\x00\x00\x90\x21\xe0\x47\xf9\x61\x00\x00\xb4\xf0\x03\x01\xaa\x00\x02\x1f\xd6\xc0\x03\x5f\xd6\x80\x00\x00\xb0\x00\xc0\x01\x91\x81\x00\x00\xb0\x21\xc0\x01\x91\x21\x00\x00\xcb\x22\xfc\x7f\xd3\x41\x0c\x81\x8b\x21\xfc\x41\x93\xc1\x00\x00\xb4\x82\x00\x00\x90\x42\xf0\x47\xf9\x62\x00\x00\xb4\xf0\x03\x02\xaa\x00\x02\x1f\xd6\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\xfd\x7b\xbe\xa9\xfd\x03\x00\x91\xf3\x0b\x00\xf9\x93\x00\x00\xb0\x60\xc2\x41\x39\x40\x01\x00\x35\x80\x00\x00\x90\x00\xe4\x47\xf9\x80\x00\x00\xb4\x80\x00\x00\xb0\x00\x2c\x40\xf9\xa5\xff\xff\x97\xd8\xff\xff\x97\x20\x00\x80\x52\x60\xc2\x01\x39\xf3\x0b\x40\xf9\xfd\x7b\xc2\xa8\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\xdc\xff\xff\x17\xfd\x7b\xbd\xa9\xf5\x0b\x00\xf9\xf4\x4f\x02\xa9\xfd\x03\x00\x91\x60\x01\x80\x52\x9a\xff\xff\x97\x95\x00\x00\xb0\x94\x00\x00\xb0\x94\x86\x01\x91\xf3\x03\x00\xaa\xa0\x3e\x00\xf9\xe0\x03\x14\xaa\x87\xff\xff\x97\xe2\x03\x00\xaa\xe0\x03\x13\xaa\xe1\x03\x14\xaa\x7f\xff\xff\x97\xe0\x03\x13\xaa\x9d\xff\xff\x97\xa8\x3e\x40\xf9\x1f\x11\x00\x39\xb3\x3e\x40\xf9\xe0\x03\x13\xaa\x7c\xff\xff\x97\xe2\x03\x00\xaa\xe0\x03\x13\xaa\x21\x00\x80\x52\x88\xff\xff\x97\xa0\x3e\x40\xf9\x96\xff\xff\x97\xe0\x03\x1f\x2a\xf4\x4f\x42\xa9\xf5\x0b\x40\xf9\xfd\x7b\xc3\xa8\xc0\x03\x5f\xd6")]), -Memmap([Annotation(Region(0x0,0xA87), Attr("segment","02 0 2696")), -Annotation(Region(0x7C0,0x7F3), Attr("symbol","\"_start\"")), -Annotation(Region(0x0,0x102), Attr("section","\".shstrtab\"")), -Annotation(Region(0x0,0x2CB), Attr("section","\".strtab\"")), -Annotation(Region(0x0,0x947), Attr("section","\".symtab\"")), -Annotation(Region(0x0,0x46), Attr("section","\".comment\"")), -Annotation(Region(0x238,0x252), Attr("section","\".interp\"")), -Annotation(Region(0x254,0x277), Attr("section","\".note.gnu.build-id\"")), -Annotation(Region(0x278,0x297), Attr("section","\".note.ABI-tag\"")), -Annotation(Region(0x298,0x2B3), Attr("section","\".gnu.hash\"")), -Annotation(Region(0x2B8,0x41F), Attr("section","\".dynsym\"")), -Annotation(Region(0x420,0x4D2), Attr("section","\".dynstr\"")), -Annotation(Region(0x4D4,0x4F1), Attr("section","\".gnu.version\"")), -Annotation(Region(0x4F8,0x527), Attr("section","\".gnu.version_r\"")), -Annotation(Region(0x528,0x5E7), Attr("section","\".rela.dyn\"")), -Annotation(Region(0x5E8,0x6D7), Attr("section","\".rela.plt\"")), -Annotation(Region(0x6D8,0x6EF), Attr("section","\".init\"")), -Annotation(Region(0x6F0,0x7AF), Attr("section","\".plt\"")), -Annotation(Region(0x6D8,0x6EF), Attr("code-region","()")), -Annotation(Region(0x6F0,0x7AF), Attr("code-region","()")), -Annotation(Region(0x7C0,0x7F3), Attr("symbol-info","_start 0x7C0 52")), -Annotation(Region(0x7F4,0x807), Attr("symbol","\"call_weak_fn\"")), -Annotation(Region(0x7F4,0x807), Attr("symbol-info","call_weak_fn 0x7F4 20")), -Annotation(Region(0x8D4,0x95F), Attr("symbol","\"main\"")), -Annotation(Region(0x8D4,0x95F), Attr("symbol-info","main 0x8D4 140")), -Annotation(Region(0x960,0x973), Attr("section","\".fini\"")), -Annotation(Region(0x974,0x977), Attr("section","\".rodata\"")), -Annotation(Region(0x978,0x9B3), Attr("section","\".eh_frame_hdr\"")), -Annotation(Region(0x9B8,0xA87), Attr("section","\".eh_frame\"")), -Annotation(Region(0x10DC8,0x1106B), Attr("segment","03 0x10DC8 696")), -Annotation(Region(0x10DD0,0x10DD7), Attr("section","\".fini_array\"")), -Annotation(Region(0x10DD8,0x10FB7), Attr("section","\".dynamic\"")), -Annotation(Region(0x10DC8,0x10DCF), Attr("section","\".init_array\"")), -Annotation(Region(0x10FB8,0x10FE7), Attr("section","\".got\"")), -Annotation(Region(0x10FE8,0x1104F), Attr("section","\".got.plt\"")), -Annotation(Region(0x11050,0x1106B), Attr("section","\".data\"")), -Annotation(Region(0x7C0,0x95F), Attr("section","\".text\"")), -Annotation(Region(0x7C0,0x95F), Attr("code-region","()")), -Annotation(Region(0x960,0x973), Attr("code-region","()"))]), -Program(Tid(2_005, "%000007d5"), Attrs([]), - Subs([Sub(Tid(1_934, "@__cxa_finalize"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x740"), -Attr("stub","()")]), "__cxa_finalize", Args([Arg(Tid(2_006, "%000007d6"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("__cxa_finalize_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(1_151, "@__cxa_finalize"), - Attrs([Attr("address","0x740")]), Phis([]), -Defs([Def(Tid(1_539, "%00000603"), Attrs([Attr("address","0x740"), -Attr("insn","adrp x16, #69632")]), Var("R16",Imm(64)), Int(69632,64)), -Def(Tid(1_546, "%0000060a"), Attrs([Attr("address","0x744"), -Attr("insn","ldr x17, [x16, #0x18]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(24,64)),LittleEndian(),64)), -Def(Tid(1_552, "%00000610"), Attrs([Attr("address","0x748"), -Attr("insn","add x16, x16, #0x18")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(24,64)))]), Jmps([Call(Tid(1_557, "%00000615"), - Attrs([Attr("address","0x74C"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), -Sub(Tid(1_935, "@__do_global_dtors_aux"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x880")]), - "__do_global_dtors_aux", Args([Arg(Tid(2_007, "%000007d7"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("__do_global_dtors_aux_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(730, "@__do_global_dtors_aux"), - Attrs([Attr("address","0x880")]), Phis([]), Defs([Def(Tid(734, "%000002de"), - Attrs([Attr("address","0x880"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("#3",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(18446744073709551584,64))), -Def(Tid(740, "%000002e4"), Attrs([Attr("address","0x880"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("#3",Imm(64)),Var("R29",Imm(64)),LittleEndian(),64)), -Def(Tid(746, "%000002ea"), Attrs([Attr("address","0x880"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("#3",Imm(64)),Int(8,64)),Var("R30",Imm(64)),LittleEndian(),64)), -Def(Tid(750, "%000002ee"), Attrs([Attr("address","0x880"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("R31",Imm(64)), -Var("#3",Imm(64))), Def(Tid(756, "%000002f4"), - Attrs([Attr("address","0x884"), Attr("insn","mov x29, sp")]), - Var("R29",Imm(64)), Var("R31",Imm(64))), Def(Tid(764, "%000002fc"), - Attrs([Attr("address","0x888"), Attr("insn","str x19, [sp, #0x10]")]), - Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(16,64)),Var("R19",Imm(64)),LittleEndian(),64)), -Def(Tid(769, "%00000301"), Attrs([Attr("address","0x88C"), -Attr("insn","adrp x19, #69632")]), Var("R19",Imm(64)), Int(69632,64)), -Def(Tid(776, "%00000308"), Attrs([Attr("address","0x890"), -Attr("insn","ldrb w0, [x19, #0x70]")]), Var("R0",Imm(64)), -UNSIGNED(64,Load(Var("mem",Mem(64,8)),PLUS(Var("R19",Imm(64)),Int(112,64)),LittleEndian(),8)))]), -Jmps([Goto(Tid(783, "%0000030f"), Attrs([Attr("address","0x894"), -Attr("insn","cbnz w0, #0x28")]), - NEQ(Extract(31,0,Var("R0",Imm(64))),Int(0,32)), -Direct(Tid(781, "%0000030d"))), Goto(Tid(1_995, "%000007cb"), Attrs([]), - Int(1,1), Direct(Tid(1_096, "%00000448")))])), Blk(Tid(1_096, "%00000448"), - Attrs([Attr("address","0x898")]), Phis([]), -Defs([Def(Tid(1_099, "%0000044b"), Attrs([Attr("address","0x898"), -Attr("insn","adrp x0, #65536")]), Var("R0",Imm(64)), Int(65536,64)), -Def(Tid(1_106, "%00000452"), Attrs([Attr("address","0x89C"), -Attr("insn","ldr x0, [x0, #0xfc8]")]), Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(4040,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(1_112, "%00000458"), Attrs([Attr("address","0x8A0"), -Attr("insn","cbz x0, #0x10")]), EQ(Var("R0",Imm(64)),Int(0,64)), -Direct(Tid(1_110, "%00000456"))), Goto(Tid(1_996, "%000007cc"), Attrs([]), - Int(1,1), Direct(Tid(1_135, "%0000046f")))])), Blk(Tid(1_135, "%0000046f"), - Attrs([Attr("address","0x8A4")]), Phis([]), -Defs([Def(Tid(1_138, "%00000472"), Attrs([Attr("address","0x8A4"), -Attr("insn","adrp x0, #69632")]), Var("R0",Imm(64)), Int(69632,64)), -Def(Tid(1_145, "%00000479"), Attrs([Attr("address","0x8A8"), -Attr("insn","ldr x0, [x0, #0x58]")]), Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(88,64)),LittleEndian(),64)), -Def(Tid(1_150, "%0000047e"), Attrs([Attr("address","0x8AC"), -Attr("insn","bl #-0x16c")]), Var("R30",Imm(64)), Int(2224,64))]), -Jmps([Call(Tid(1_153, "%00000481"), Attrs([Attr("address","0x8AC"), -Attr("insn","bl #-0x16c")]), Int(1,1), -(Direct(Tid(1_934, "@__cxa_finalize")),Direct(Tid(1_110, "%00000456"))))])), -Blk(Tid(1_110, "%00000456"), Attrs([Attr("address","0x8B0")]), Phis([]), -Defs([Def(Tid(1_118, "%0000045e"), Attrs([Attr("address","0x8B0"), -Attr("insn","bl #-0xa0")]), Var("R30",Imm(64)), Int(2228,64))]), -Jmps([Call(Tid(1_120, "%00000460"), Attrs([Attr("address","0x8B0"), -Attr("insn","bl #-0xa0")]), Int(1,1), -(Direct(Tid(1_948, "@deregister_tm_clones")),Direct(Tid(1_122, "%00000462"))))])), -Blk(Tid(1_122, "%00000462"), Attrs([Attr("address","0x8B4")]), Phis([]), -Defs([Def(Tid(1_125, "%00000465"), Attrs([Attr("address","0x8B4"), -Attr("insn","mov w0, #0x1")]), Var("R0",Imm(64)), Int(1,64)), -Def(Tid(1_133, "%0000046d"), Attrs([Attr("address","0x8B8"), -Attr("insn","strb w0, [x19, #0x70]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R19",Imm(64)),Int(112,64)),Extract(7,0,Var("R0",Imm(64))),LittleEndian(),8))]), -Jmps([Goto(Tid(1_997, "%000007cd"), Attrs([]), Int(1,1), -Direct(Tid(781, "%0000030d")))])), Blk(Tid(781, "%0000030d"), - Attrs([Attr("address","0x8BC")]), Phis([]), Defs([Def(Tid(791, "%00000317"), - Attrs([Attr("address","0x8BC"), Attr("insn","ldr x19, [sp, #0x10]")]), - Var("R19",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(16,64)),LittleEndian(),64)), -Def(Tid(798, "%0000031e"), Attrs([Attr("address","0x8C0"), -Attr("insn","ldp x29, x30, [sp], #0x20")]), Var("R29",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(803, "%00000323"), Attrs([Attr("address","0x8C0"), -Attr("insn","ldp x29, x30, [sp], #0x20")]), Var("R30",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(807, "%00000327"), Attrs([Attr("address","0x8C0"), -Attr("insn","ldp x29, x30, [sp], #0x20")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(32,64)))]), Jmps([Call(Tid(812, "%0000032c"), - Attrs([Attr("address","0x8C4"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), Sub(Tid(1_939, "@__libc_start_main"), - Attrs([Attr("c.proto","signed (*)(signed (*)(signed , char** , char** );* main, signed , char** , \nvoid* auxv)"), -Attr("address","0x730"), Attr("stub","()")]), "__libc_start_main", - Args([Arg(Tid(2_008, "%000007d8"), - Attrs([Attr("c.layout","**[ : 64]"), -Attr("c.data","Top:u64 ptr ptr"), -Attr("c.type","signed (*)(signed , char** , char** );*")]), - Var("__libc_start_main_main",Imm(64)), Var("R0",Imm(64)), In()), -Arg(Tid(2_009, "%000007d9"), Attrs([Attr("c.layout","[signed : 32]"), -Attr("c.data","Top:u32"), Attr("c.type","signed")]), - Var("__libc_start_main_arg2",Imm(32)), LOW(32,Var("R1",Imm(64))), In()), -Arg(Tid(2_010, "%000007da"), Attrs([Attr("c.layout","**[char : 8]"), -Attr("c.data","Top:u8 ptr ptr"), Attr("c.type","char**")]), - Var("__libc_start_main_arg3",Imm(64)), Var("R2",Imm(64)), Both()), -Arg(Tid(2_011, "%000007db"), Attrs([Attr("c.layout","*[ : 8]"), -Attr("c.data","{} ptr"), Attr("c.type","void*")]), - Var("__libc_start_main_auxv",Imm(64)), Var("R3",Imm(64)), Both()), -Arg(Tid(2_012, "%000007dc"), Attrs([Attr("c.layout","[signed : 32]"), -Attr("c.data","Top:u32"), Attr("c.type","signed")]), - Var("__libc_start_main_result",Imm(32)), LOW(32,Var("R0",Imm(64))), -Out())]), Blks([Blk(Tid(563, "@__libc_start_main"), - Attrs([Attr("address","0x730")]), Phis([]), -Defs([Def(Tid(1_517, "%000005ed"), Attrs([Attr("address","0x730"), -Attr("insn","adrp x16, #69632")]), Var("R16",Imm(64)), Int(69632,64)), -Def(Tid(1_524, "%000005f4"), Attrs([Attr("address","0x734"), -Attr("insn","ldr x17, [x16, #0x10]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(16,64)),LittleEndian(),64)), -Def(Tid(1_530, "%000005fa"), Attrs([Attr("address","0x738"), -Attr("insn","add x16, x16, #0x10")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(16,64)))]), Jmps([Call(Tid(1_535, "%000005ff"), - Attrs([Attr("address","0x73C"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), Sub(Tid(1_940, "@_fini"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x960")]), - "_fini", Args([Arg(Tid(2_013, "%000007dd"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("_fini_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(31, "@_fini"), - Attrs([Attr("address","0x960")]), Phis([]), Defs([Def(Tid(37, "%00000025"), - Attrs([Attr("address","0x964"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("#0",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(18446744073709551600,64))), -Def(Tid(43, "%0000002b"), Attrs([Attr("address","0x964"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("#0",Imm(64)),Var("R29",Imm(64)),LittleEndian(),64)), -Def(Tid(49, "%00000031"), Attrs([Attr("address","0x964"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("#0",Imm(64)),Int(8,64)),Var("R30",Imm(64)),LittleEndian(),64)), -Def(Tid(53, "%00000035"), Attrs([Attr("address","0x964"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("R31",Imm(64)), -Var("#0",Imm(64))), Def(Tid(59, "%0000003b"), Attrs([Attr("address","0x968"), -Attr("insn","mov x29, sp")]), Var("R29",Imm(64)), Var("R31",Imm(64))), -Def(Tid(66, "%00000042"), Attrs([Attr("address","0x96C"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R29",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(71, "%00000047"), Attrs([Attr("address","0x96C"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R30",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(75, "%0000004b"), Attrs([Attr("address","0x96C"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(16,64)))]), Jmps([Call(Tid(80, "%00000050"), - Attrs([Attr("address","0x970"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), Sub(Tid(1_941, "@_init"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x6D8")]), - "_init", Args([Arg(Tid(2_014, "%000007de"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("_init_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(1_717, "@_init"), - Attrs([Attr("address","0x6D8")]), Phis([]), -Defs([Def(Tid(1_723, "%000006bb"), Attrs([Attr("address","0x6DC"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("#8",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(18446744073709551600,64))), -Def(Tid(1_729, "%000006c1"), Attrs([Attr("address","0x6DC"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("#8",Imm(64)),Var("R29",Imm(64)),LittleEndian(),64)), -Def(Tid(1_735, "%000006c7"), Attrs([Attr("address","0x6DC"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("#8",Imm(64)),Int(8,64)),Var("R30",Imm(64)),LittleEndian(),64)), -Def(Tid(1_739, "%000006cb"), Attrs([Attr("address","0x6DC"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("R31",Imm(64)), -Var("#8",Imm(64))), Def(Tid(1_745, "%000006d1"), - Attrs([Attr("address","0x6E0"), Attr("insn","mov x29, sp")]), - Var("R29",Imm(64)), Var("R31",Imm(64))), Def(Tid(1_750, "%000006d6"), - Attrs([Attr("address","0x6E4"), Attr("insn","bl #0x110")]), - Var("R30",Imm(64)), Int(1768,64))]), Jmps([Call(Tid(1_752, "%000006d8"), - Attrs([Attr("address","0x6E4"), Attr("insn","bl #0x110")]), Int(1,1), -(Direct(Tid(1_946, "@call_weak_fn")),Direct(Tid(1_754, "%000006da"))))])), -Blk(Tid(1_754, "%000006da"), Attrs([Attr("address","0x6E8")]), Phis([]), -Defs([Def(Tid(1_759, "%000006df"), Attrs([Attr("address","0x6E8"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R29",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(1_764, "%000006e4"), Attrs([Attr("address","0x6E8"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R30",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(1_768, "%000006e8"), Attrs([Attr("address","0x6E8"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(16,64)))]), Jmps([Call(Tid(1_773, "%000006ed"), - Attrs([Attr("address","0x6EC"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), Sub(Tid(1_942, "@_start"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x7C0"), -Attr("entry-point","()")]), "_start", Args([Arg(Tid(2_015, "%000007df"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("_start_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(500, "@_start"), - Attrs([Attr("address","0x7C0")]), Phis([]), Defs([Def(Tid(505, "%000001f9"), - Attrs([Attr("address","0x7C4"), Attr("insn","mov x29, #0x0")]), - Var("R29",Imm(64)), Int(0,64)), Def(Tid(510, "%000001fe"), - Attrs([Attr("address","0x7C8"), Attr("insn","mov x30, #0x0")]), - Var("R30",Imm(64)), Int(0,64)), Def(Tid(516, "%00000204"), - Attrs([Attr("address","0x7CC"), Attr("insn","mov x5, x0")]), - Var("R5",Imm(64)), Var("R0",Imm(64))), Def(Tid(523, "%0000020b"), - Attrs([Attr("address","0x7D0"), Attr("insn","ldr x1, [sp]")]), - Var("R1",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(529, "%00000211"), Attrs([Attr("address","0x7D4"), -Attr("insn","add x2, sp, #0x8")]), Var("R2",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(8,64))), Def(Tid(535, "%00000217"), - Attrs([Attr("address","0x7D8"), Attr("insn","mov x6, sp")]), - Var("R6",Imm(64)), Var("R31",Imm(64))), Def(Tid(540, "%0000021c"), - Attrs([Attr("address","0x7DC"), Attr("insn","adrp x0, #65536")]), - Var("R0",Imm(64)), Int(65536,64)), Def(Tid(547, "%00000223"), - Attrs([Attr("address","0x7E0"), Attr("insn","ldr x0, [x0, #0xfd8]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(4056,64)),LittleEndian(),64)), -Def(Tid(552, "%00000228"), Attrs([Attr("address","0x7E4"), -Attr("insn","mov x3, #0x0")]), Var("R3",Imm(64)), Int(0,64)), -Def(Tid(557, "%0000022d"), Attrs([Attr("address","0x7E8"), -Attr("insn","mov x4, #0x0")]), Var("R4",Imm(64)), Int(0,64)), -Def(Tid(562, "%00000232"), Attrs([Attr("address","0x7EC"), -Attr("insn","bl #-0xbc")]), Var("R30",Imm(64)), Int(2032,64))]), -Jmps([Call(Tid(565, "%00000235"), Attrs([Attr("address","0x7EC"), -Attr("insn","bl #-0xbc")]), Int(1,1), -(Direct(Tid(1_939, "@__libc_start_main")),Direct(Tid(567, "%00000237"))))])), -Blk(Tid(567, "%00000237"), Attrs([Attr("address","0x7F0")]), Phis([]), -Defs([Def(Tid(570, "%0000023a"), Attrs([Attr("address","0x7F0"), -Attr("insn","bl #-0x70")]), Var("R30",Imm(64)), Int(2036,64))]), -Jmps([Call(Tid(573, "%0000023d"), Attrs([Attr("address","0x7F0"), -Attr("insn","bl #-0x70")]), Int(1,1), -(Direct(Tid(1_945, "@abort")),Direct(Tid(1_998, "%000007ce"))))])), -Blk(Tid(1_998, "%000007ce"), Attrs([]), Phis([]), Defs([]), -Jmps([Call(Tid(1_999, "%000007cf"), Attrs([]), Int(1,1), -(Direct(Tid(1_946, "@call_weak_fn")),))]))])), Sub(Tid(1_945, "@abort"), - Attrs([Attr("noreturn","()"), Attr("c.proto","void (*)(void)"), -Attr("address","0x780"), Attr("stub","()")]), "abort", Args([]), -Blks([Blk(Tid(571, "@abort"), Attrs([Attr("address","0x780")]), Phis([]), -Defs([Def(Tid(1_627, "%0000065b"), Attrs([Attr("address","0x780"), -Attr("insn","adrp x16, #69632")]), Var("R16",Imm(64)), Int(69632,64)), -Def(Tid(1_634, "%00000662"), Attrs([Attr("address","0x784"), -Attr("insn","ldr x17, [x16, #0x38]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(56,64)),LittleEndian(),64)), -Def(Tid(1_640, "%00000668"), Attrs([Attr("address","0x788"), -Attr("insn","add x16, x16, #0x38")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(56,64)))]), Jmps([Call(Tid(1_645, "%0000066d"), - Attrs([Attr("address","0x78C"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), Sub(Tid(1_946, "@call_weak_fn"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x7F4")]), - "call_weak_fn", Args([Arg(Tid(2_016, "%000007e0"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("call_weak_fn_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(575, "@call_weak_fn"), - Attrs([Attr("address","0x7F4")]), Phis([]), Defs([Def(Tid(578, "%00000242"), - Attrs([Attr("address","0x7F4"), Attr("insn","adrp x0, #65536")]), - Var("R0",Imm(64)), Int(65536,64)), Def(Tid(585, "%00000249"), - Attrs([Attr("address","0x7F8"), Attr("insn","ldr x0, [x0, #0xfd0]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(4048,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(591, "%0000024f"), Attrs([Attr("address","0x7FC"), -Attr("insn","cbz x0, #0x8")]), EQ(Var("R0",Imm(64)),Int(0,64)), -Direct(Tid(589, "%0000024d"))), Goto(Tid(2_000, "%000007d0"), Attrs([]), - Int(1,1), Direct(Tid(1_215, "%000004bf")))])), Blk(Tid(589, "%0000024d"), - Attrs([Attr("address","0x804")]), Phis([]), Defs([]), -Jmps([Call(Tid(597, "%00000255"), Attrs([Attr("address","0x804"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))])), -Blk(Tid(1_215, "%000004bf"), Attrs([Attr("address","0x800")]), Phis([]), -Defs([]), Jmps([Goto(Tid(1_218, "%000004c2"), Attrs([Attr("address","0x800"), -Attr("insn","b #-0x90")]), Int(1,1), -Direct(Tid(1_216, "@__gmon_start__")))])), Blk(Tid(1_216, "@__gmon_start__"), - Attrs([Attr("address","0x770")]), Phis([]), -Defs([Def(Tid(1_605, "%00000645"), Attrs([Attr("address","0x770"), -Attr("insn","adrp x16, #69632")]), Var("R16",Imm(64)), Int(69632,64)), -Def(Tid(1_612, "%0000064c"), Attrs([Attr("address","0x774"), -Attr("insn","ldr x17, [x16, #0x30]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(48,64)),LittleEndian(),64)), -Def(Tid(1_618, "%00000652"), Attrs([Attr("address","0x778"), -Attr("insn","add x16, x16, #0x30")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(48,64)))]), Jmps([Call(Tid(1_623, "%00000657"), - Attrs([Attr("address","0x77C"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), -Sub(Tid(1_948, "@deregister_tm_clones"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x810")]), - "deregister_tm_clones", Args([Arg(Tid(2_017, "%000007e1"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("deregister_tm_clones_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(603, "@deregister_tm_clones"), - Attrs([Attr("address","0x810")]), Phis([]), Defs([Def(Tid(606, "%0000025e"), - Attrs([Attr("address","0x810"), Attr("insn","adrp x0, #69632")]), - Var("R0",Imm(64)), Int(69632,64)), Def(Tid(612, "%00000264"), - Attrs([Attr("address","0x814"), Attr("insn","add x0, x0, #0x70")]), - Var("R0",Imm(64)), PLUS(Var("R0",Imm(64)),Int(112,64))), -Def(Tid(617, "%00000269"), Attrs([Attr("address","0x818"), -Attr("insn","adrp x1, #69632")]), Var("R1",Imm(64)), Int(69632,64)), -Def(Tid(623, "%0000026f"), Attrs([Attr("address","0x81C"), -Attr("insn","add x1, x1, #0x70")]), Var("R1",Imm(64)), -PLUS(Var("R1",Imm(64)),Int(112,64))), Def(Tid(629, "%00000275"), - Attrs([Attr("address","0x820"), Attr("insn","cmp x1, x0")]), - Var("#1",Imm(64)), NOT(Var("R0",Imm(64)))), Def(Tid(634, "%0000027a"), - Attrs([Attr("address","0x820"), Attr("insn","cmp x1, x0")]), - Var("#2",Imm(64)), PLUS(Var("R1",Imm(64)),NOT(Var("R0",Imm(64))))), -Def(Tid(640, "%00000280"), Attrs([Attr("address","0x820"), -Attr("insn","cmp x1, x0")]), Var("VF",Imm(1)), -NEQ(SIGNED(65,PLUS(Var("#2",Imm(64)),Int(1,64))),PLUS(PLUS(SIGNED(65,Var("R1",Imm(64))),SIGNED(65,Var("#1",Imm(64)))),Int(1,65)))), -Def(Tid(646, "%00000286"), Attrs([Attr("address","0x820"), -Attr("insn","cmp x1, x0")]), Var("CF",Imm(1)), -NEQ(UNSIGNED(65,PLUS(Var("#2",Imm(64)),Int(1,64))),PLUS(PLUS(UNSIGNED(65,Var("R1",Imm(64))),UNSIGNED(65,Var("#1",Imm(64)))),Int(1,65)))), -Def(Tid(650, "%0000028a"), Attrs([Attr("address","0x820"), -Attr("insn","cmp x1, x0")]), Var("ZF",Imm(1)), -EQ(PLUS(Var("#2",Imm(64)),Int(1,64)),Int(0,64))), Def(Tid(654, "%0000028e"), - Attrs([Attr("address","0x820"), Attr("insn","cmp x1, x0")]), - Var("NF",Imm(1)), Extract(63,63,PLUS(Var("#2",Imm(64)),Int(1,64))))]), -Jmps([Goto(Tid(660, "%00000294"), Attrs([Attr("address","0x824"), -Attr("insn","b.eq #0x18")]), EQ(Var("ZF",Imm(1)),Int(1,1)), -Direct(Tid(658, "%00000292"))), Goto(Tid(2_001, "%000007d1"), Attrs([]), - Int(1,1), Direct(Tid(1_185, "%000004a1")))])), Blk(Tid(1_185, "%000004a1"), - Attrs([Attr("address","0x828")]), Phis([]), -Defs([Def(Tid(1_188, "%000004a4"), Attrs([Attr("address","0x828"), -Attr("insn","adrp x1, #65536")]), Var("R1",Imm(64)), Int(65536,64)), -Def(Tid(1_195, "%000004ab"), Attrs([Attr("address","0x82C"), -Attr("insn","ldr x1, [x1, #0xfc0]")]), Var("R1",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R1",Imm(64)),Int(4032,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(1_200, "%000004b0"), Attrs([Attr("address","0x830"), -Attr("insn","cbz x1, #0xc")]), EQ(Var("R1",Imm(64)),Int(0,64)), -Direct(Tid(658, "%00000292"))), Goto(Tid(2_002, "%000007d2"), Attrs([]), - Int(1,1), Direct(Tid(1_204, "%000004b4")))])), Blk(Tid(658, "%00000292"), - Attrs([Attr("address","0x83C")]), Phis([]), Defs([]), -Jmps([Call(Tid(666, "%0000029a"), Attrs([Attr("address","0x83C"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))])), -Blk(Tid(1_204, "%000004b4"), Attrs([Attr("address","0x834")]), Phis([]), -Defs([Def(Tid(1_208, "%000004b8"), Attrs([Attr("address","0x834"), -Attr("insn","mov x16, x1")]), Var("R16",Imm(64)), Var("R1",Imm(64)))]), -Jmps([Call(Tid(1_213, "%000004bd"), Attrs([Attr("address","0x838"), -Attr("insn","br x16")]), Int(1,1), (Indirect(Var("R16",Imm(64))),))]))])), -Sub(Tid(1_951, "@frame_dummy"), Attrs([Attr("c.proto","signed (*)(void)"), -Attr("address","0x8D0")]), "frame_dummy", Args([Arg(Tid(2_018, "%000007e2"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("frame_dummy_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(818, "@frame_dummy"), - Attrs([Attr("address","0x8D0")]), Phis([]), Defs([]), -Jmps([Call(Tid(820, "%00000334"), Attrs([Attr("address","0x8D0"), -Attr("insn","b #-0x90")]), Int(1,1), -(Direct(Tid(1_958, "@register_tm_clones")),))]))])), Sub(Tid(1_952, "@free"), - Attrs([Attr("c.proto","void (*)(void* ptr)"), Attr("address","0x7A0"), -Attr("stub","()")]), "free", Args([Arg(Tid(2_019, "%000007e3"), - Attrs([Attr("c.layout","*[ : 8]"), Attr("c.data","{} ptr"), -Attr("c.type","void*")]), Var("free_ptr",Imm(64)), Var("R0",Imm(64)), -Both())]), Blks([Blk(Tid(1_043, "@free"), Attrs([Attr("address","0x7A0")]), - Phis([]), Defs([Def(Tid(1_671, "%00000687"), Attrs([Attr("address","0x7A0"), -Attr("insn","adrp x16, #69632")]), Var("R16",Imm(64)), Int(69632,64)), -Def(Tid(1_678, "%0000068e"), Attrs([Attr("address","0x7A4"), -Attr("insn","ldr x17, [x16, #0x48]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(72,64)),LittleEndian(),64)), -Def(Tid(1_684, "%00000694"), Attrs([Attr("address","0x7A8"), -Attr("insn","add x16, x16, #0x48")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(72,64)))]), Jmps([Call(Tid(1_689, "%00000699"), - Attrs([Attr("address","0x7AC"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), Sub(Tid(1_953, "@main"), - Attrs([Attr("c.proto","signed (*)(signed argc, const char** argv)"), -Attr("address","0x8D4")]), "main", Args([Arg(Tid(2_020, "%000007e4"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("main_argc",Imm(32)), -LOW(32,Var("R0",Imm(64))), In()), Arg(Tid(2_021, "%000007e5"), - Attrs([Attr("c.layout","**[char : 8]"), Attr("c.data","Top:u8 ptr ptr"), -Attr("c.type"," const char**")]), Var("main_argv",Imm(64)), -Var("R1",Imm(64)), Both()), Arg(Tid(2_022, "%000007e6"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("main_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(822, "@main"), - Attrs([Attr("address","0x8D4")]), Phis([]), Defs([Def(Tid(826, "%0000033a"), - Attrs([Attr("address","0x8D4"), -Attr("insn","stp x29, x30, [sp, #-0x30]!")]), Var("#4",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(18446744073709551568,64))), -Def(Tid(832, "%00000340"), Attrs([Attr("address","0x8D4"), -Attr("insn","stp x29, x30, [sp, #-0x30]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("#4",Imm(64)),Var("R29",Imm(64)),LittleEndian(),64)), -Def(Tid(838, "%00000346"), Attrs([Attr("address","0x8D4"), -Attr("insn","stp x29, x30, [sp, #-0x30]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("#4",Imm(64)),Int(8,64)),Var("R30",Imm(64)),LittleEndian(),64)), -Def(Tid(842, "%0000034a"), Attrs([Attr("address","0x8D4"), -Attr("insn","stp x29, x30, [sp, #-0x30]!")]), Var("R31",Imm(64)), -Var("#4",Imm(64))), Def(Tid(850, "%00000352"), - Attrs([Attr("address","0x8D8"), Attr("insn","str x21, [sp, #0x10]")]), - Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(16,64)),Var("R21",Imm(64)),LittleEndian(),64)), -Def(Tid(856, "%00000358"), Attrs([Attr("address","0x8DC"), -Attr("insn","stp x20, x19, [sp, #0x20]")]), Var("#5",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(32,64))), Def(Tid(862, "%0000035e"), - Attrs([Attr("address","0x8DC"), Attr("insn","stp x20, x19, [sp, #0x20]")]), - Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("#5",Imm(64)),Var("R20",Imm(64)),LittleEndian(),64)), -Def(Tid(868, "%00000364"), Attrs([Attr("address","0x8DC"), -Attr("insn","stp x20, x19, [sp, #0x20]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("#5",Imm(64)),Int(8,64)),Var("R19",Imm(64)),LittleEndian(),64)), -Def(Tid(874, "%0000036a"), Attrs([Attr("address","0x8E0"), -Attr("insn","mov x29, sp")]), Var("R29",Imm(64)), Var("R31",Imm(64))), -Def(Tid(879, "%0000036f"), Attrs([Attr("address","0x8E4"), -Attr("insn","mov w0, #0xb")]), Var("R0",Imm(64)), Int(11,64)), -Def(Tid(884, "%00000374"), Attrs([Attr("address","0x8E8"), -Attr("insn","bl #-0x198")]), Var("R30",Imm(64)), Int(2284,64))]), -Jmps([Call(Tid(887, "%00000377"), Attrs([Attr("address","0x8E8"), -Attr("insn","bl #-0x198")]), Int(1,1), -(Direct(Tid(1_954, "@malloc")),Direct(Tid(889, "%00000379"))))])), -Blk(Tid(889, "%00000379"), Attrs([Attr("address","0x8EC")]), Phis([]), -Defs([Def(Tid(892, "%0000037c"), Attrs([Attr("address","0x8EC"), -Attr("insn","adrp x21, #69632")]), Var("R21",Imm(64)), Int(69632,64)), -Def(Tid(897, "%00000381"), Attrs([Attr("address","0x8F0"), -Attr("insn","adrp x20, #69632")]), Var("R20",Imm(64)), Int(69632,64)), -Def(Tid(903, "%00000387"), Attrs([Attr("address","0x8F4"), -Attr("insn","add x20, x20, #0x61")]), Var("R20",Imm(64)), -PLUS(Var("R20",Imm(64)),Int(97,64))), Def(Tid(909, "%0000038d"), - Attrs([Attr("address","0x8F8"), Attr("insn","mov x19, x0")]), - Var("R19",Imm(64)), Var("R0",Imm(64))), Def(Tid(917, "%00000395"), - Attrs([Attr("address","0x8FC"), Attr("insn","str x0, [x21, #0x78]")]), - Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R21",Imm(64)),Int(120,64)),Var("R0",Imm(64)),LittleEndian(),64)), -Def(Tid(923, "%0000039b"), Attrs([Attr("address","0x900"), -Attr("insn","mov x0, x20")]), Var("R0",Imm(64)), Var("R20",Imm(64))), -Def(Tid(928, "%000003a0"), Attrs([Attr("address","0x904"), -Attr("insn","bl #-0x1e4")]), Var("R30",Imm(64)), Int(2312,64))]), -Jmps([Call(Tid(931, "%000003a3"), Attrs([Attr("address","0x904"), -Attr("insn","bl #-0x1e4")]), Int(1,1), -(Direct(Tid(1_961, "@strlen")),Direct(Tid(933, "%000003a5"))))])), -Blk(Tid(933, "%000003a5"), Attrs([Attr("address","0x908")]), Phis([]), -Defs([Def(Tid(937, "%000003a9"), Attrs([Attr("address","0x908"), -Attr("insn","mov x2, x0")]), Var("R2",Imm(64)), Var("R0",Imm(64))), -Def(Tid(943, "%000003af"), Attrs([Attr("address","0x90C"), -Attr("insn","mov x0, x19")]), Var("R0",Imm(64)), Var("R19",Imm(64))), -Def(Tid(949, "%000003b5"), Attrs([Attr("address","0x910"), -Attr("insn","mov x1, x20")]), Var("R1",Imm(64)), Var("R20",Imm(64))), -Def(Tid(954, "%000003ba"), Attrs([Attr("address","0x914"), -Attr("insn","bl #-0x204")]), Var("R30",Imm(64)), Int(2328,64))]), -Jmps([Call(Tid(957, "%000003bd"), Attrs([Attr("address","0x914"), -Attr("insn","bl #-0x204")]), Int(1,1), -(Direct(Tid(1_955, "@memcpy")),Direct(Tid(959, "%000003bf"))))])), -Blk(Tid(959, "%000003bf"), Attrs([Attr("address","0x918")]), Phis([]), -Defs([Def(Tid(963, "%000003c3"), Attrs([Attr("address","0x918"), -Attr("insn","mov x0, x19")]), Var("R0",Imm(64)), Var("R19",Imm(64))), -Def(Tid(968, "%000003c8"), Attrs([Attr("address","0x91C"), -Attr("insn","bl #-0x18c")]), Var("R30",Imm(64)), Int(2336,64))]), -Jmps([Call(Tid(971, "%000003cb"), Attrs([Attr("address","0x91C"), -Attr("insn","bl #-0x18c")]), Int(1,1), -(Direct(Tid(1_957, "@puts")),Direct(Tid(973, "%000003cd"))))])), -Blk(Tid(973, "%000003cd"), Attrs([Attr("address","0x920")]), Phis([]), -Defs([Def(Tid(978, "%000003d2"), Attrs([Attr("address","0x920"), -Attr("insn","ldr x8, [x21, #0x78]")]), Var("R8",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R21",Imm(64)),Int(120,64)),LittleEndian(),64)), -Def(Tid(985, "%000003d9"), Attrs([Attr("address","0x924"), -Attr("insn","strb wzr, [x8, #0x4]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R8",Imm(64)),Int(4,64)),Int(0,8),LittleEndian(),8)), -Def(Tid(992, "%000003e0"), Attrs([Attr("address","0x928"), -Attr("insn","ldr x19, [x21, #0x78]")]), Var("R19",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R21",Imm(64)),Int(120,64)),LittleEndian(),64)), -Def(Tid(998, "%000003e6"), Attrs([Attr("address","0x92C"), -Attr("insn","mov x0, x19")]), Var("R0",Imm(64)), Var("R19",Imm(64))), -Def(Tid(1_003, "%000003eb"), Attrs([Attr("address","0x930"), -Attr("insn","bl #-0x210")]), Var("R30",Imm(64)), Int(2356,64))]), -Jmps([Call(Tid(1_005, "%000003ed"), Attrs([Attr("address","0x930"), -Attr("insn","bl #-0x210")]), Int(1,1), -(Direct(Tid(1_961, "@strlen")),Direct(Tid(1_007, "%000003ef"))))])), -Blk(Tid(1_007, "%000003ef"), Attrs([Attr("address","0x934")]), Phis([]), -Defs([Def(Tid(1_011, "%000003f3"), Attrs([Attr("address","0x934"), -Attr("insn","mov x2, x0")]), Var("R2",Imm(64)), Var("R0",Imm(64))), -Def(Tid(1_017, "%000003f9"), Attrs([Attr("address","0x938"), -Attr("insn","mov x0, x19")]), Var("R0",Imm(64)), Var("R19",Imm(64))), -Def(Tid(1_022, "%000003fe"), Attrs([Attr("address","0x93C"), -Attr("insn","mov w1, #0x1")]), Var("R1",Imm(64)), Int(1,64)), -Def(Tid(1_027, "%00000403"), Attrs([Attr("address","0x940"), -Attr("insn","bl #-0x1e0")]), Var("R30",Imm(64)), Int(2372,64))]), -Jmps([Call(Tid(1_030, "%00000406"), Attrs([Attr("address","0x940"), -Attr("insn","bl #-0x1e0")]), Int(1,1), -(Direct(Tid(1_956, "@memset")),Direct(Tid(1_032, "%00000408"))))])), -Blk(Tid(1_032, "%00000408"), Attrs([Attr("address","0x944")]), Phis([]), -Defs([Def(Tid(1_037, "%0000040d"), Attrs([Attr("address","0x944"), -Attr("insn","ldr x0, [x21, #0x78]")]), Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R21",Imm(64)),Int(120,64)),LittleEndian(),64)), -Def(Tid(1_042, "%00000412"), Attrs([Attr("address","0x948"), -Attr("insn","bl #-0x1a8")]), Var("R30",Imm(64)), Int(2380,64))]), -Jmps([Call(Tid(1_045, "%00000415"), Attrs([Attr("address","0x948"), -Attr("insn","bl #-0x1a8")]), Int(1,1), -(Direct(Tid(1_952, "@free")),Direct(Tid(1_047, "%00000417"))))])), -Blk(Tid(1_047, "%00000417"), Attrs([Attr("address","0x94C")]), Phis([]), -Defs([Def(Tid(1_050, "%0000041a"), Attrs([Attr("address","0x94C"), -Attr("insn","mov w0, wzr")]), Var("R0",Imm(64)), Int(0,64)), -Def(Tid(1_056, "%00000420"), Attrs([Attr("address","0x950"), -Attr("insn","ldp x20, x19, [sp, #0x20]")]), Var("#6",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(32,64))), Def(Tid(1_061, "%00000425"), - Attrs([Attr("address","0x950"), Attr("insn","ldp x20, x19, [sp, #0x20]")]), - Var("R20",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("#6",Imm(64)),LittleEndian(),64)), -Def(Tid(1_066, "%0000042a"), Attrs([Attr("address","0x950"), -Attr("insn","ldp x20, x19, [sp, #0x20]")]), Var("R19",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("#6",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(1_073, "%00000431"), Attrs([Attr("address","0x954"), -Attr("insn","ldr x21, [sp, #0x10]")]), Var("R21",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(16,64)),LittleEndian(),64)), -Def(Tid(1_080, "%00000438"), Attrs([Attr("address","0x958"), -Attr("insn","ldp x29, x30, [sp], #0x30")]), Var("R29",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(1_085, "%0000043d"), Attrs([Attr("address","0x958"), -Attr("insn","ldp x29, x30, [sp], #0x30")]), Var("R30",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(1_089, "%00000441"), Attrs([Attr("address","0x958"), -Attr("insn","ldp x29, x30, [sp], #0x30")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(48,64)))]), Jmps([Call(Tid(1_094, "%00000446"), - Attrs([Attr("address","0x95C"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), Sub(Tid(1_954, "@malloc"), - Attrs([Attr("c.proto","void* (*)(unsigned long size)"), -Attr("address","0x750"), Attr("malloc","()"), Attr("stub","()")]), "malloc", - Args([Arg(Tid(2_023, "%000007e7"), Attrs([Attr("alloc-size","()"), -Attr("c.layout","[unsigned long : 64]"), Attr("c.data","Top:u64"), -Attr("c.type","unsigned long")]), Var("malloc_size",Imm(64)), -Var("R0",Imm(64)), In()), Arg(Tid(2_024, "%000007e8"), - Attrs([Attr("warn-unused","()"), Attr("c.layout","*[ : 8]"), -Attr("c.data","{} ptr"), Attr("c.type","void*")]), - Var("malloc_result",Imm(64)), Var("R0",Imm(64)), Out())]), -Blks([Blk(Tid(885, "@malloc"), Attrs([Attr("address","0x750")]), Phis([]), -Defs([Def(Tid(1_561, "%00000619"), Attrs([Attr("address","0x750"), -Attr("insn","adrp x16, #69632")]), Var("R16",Imm(64)), Int(69632,64)), -Def(Tid(1_568, "%00000620"), Attrs([Attr("address","0x754"), -Attr("insn","ldr x17, [x16, #0x20]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(32,64)),LittleEndian(),64)), -Def(Tid(1_574, "%00000626"), Attrs([Attr("address","0x758"), -Attr("insn","add x16, x16, #0x20")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(32,64)))]), Jmps([Call(Tid(1_579, "%0000062b"), - Attrs([Attr("address","0x75C"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), Sub(Tid(1_955, "@memcpy"), - Attrs([Attr("c.proto","void* (*)(void restrict * dst, void restrict * src, unsigned long n)"), -Attr("address","0x710"), Attr("stub","()")]), "memcpy", - Args([Arg(Tid(2_025, "%000007e9"), Attrs([Attr("nonnull","()"), -Attr("c.layout","*[ : 8]"), Attr("c.data","{} ptr"), -Attr("c.type","void restrict *")]), Var("memcpy_dst",Imm(64)), -Var("R0",Imm(64)), Both()), Arg(Tid(2_026, "%000007ea"), - Attrs([Attr("nonnull","()"), Attr("c.layout","*[ : 8]"), -Attr("c.data","{} ptr"), Attr("c.type","void restrict *")]), - Var("memcpy_src",Imm(64)), Var("R1",Imm(64)), Both()), -Arg(Tid(2_027, "%000007eb"), Attrs([Attr("c.layout","[unsigned long : 64]"), -Attr("c.data","Top:u64"), Attr("c.type","unsigned long")]), - Var("memcpy_n",Imm(64)), Var("R2",Imm(64)), In()), -Arg(Tid(2_028, "%000007ec"), Attrs([Attr("c.layout","*[ : 8]"), -Attr("c.data","{} ptr"), Attr("c.type","void*")]), - Var("memcpy_result",Imm(64)), Var("R0",Imm(64)), Out())]), -Blks([Blk(Tid(955, "@memcpy"), Attrs([Attr("address","0x710")]), Phis([]), -Defs([Def(Tid(1_473, "%000005c1"), Attrs([Attr("address","0x710"), -Attr("insn","adrp x16, #69632")]), Var("R16",Imm(64)), Int(69632,64)), -Def(Tid(1_480, "%000005c8"), Attrs([Attr("address","0x714"), -Attr("insn","ldr x17, [x16]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R16",Imm(64)),LittleEndian(),64)), -Def(Tid(1_486, "%000005ce"), Attrs([Attr("address","0x718"), -Attr("insn","add x16, x16, #0x0")]), Var("R16",Imm(64)), -Var("R16",Imm(64)))]), Jmps([Call(Tid(1_491, "%000005d3"), - Attrs([Attr("address","0x71C"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), Sub(Tid(1_956, "@memset"), - Attrs([Attr("c.proto","void* (*)(void* buf, signed c, unsigned long n)"), -Attr("address","0x760"), Attr("stub","()")]), "memset", - Args([Arg(Tid(2_029, "%000007ed"), Attrs([Attr("nonnull","()"), -Attr("c.layout","*[ : 8]"), Attr("c.data","{} ptr"), -Attr("c.type","void*")]), Var("memset_buf",Imm(64)), Var("R0",Imm(64)), -Both()), Arg(Tid(2_030, "%000007ee"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("memset_c",Imm(32)), -LOW(32,Var("R1",Imm(64))), In()), Arg(Tid(2_031, "%000007ef"), - Attrs([Attr("c.layout","[unsigned long : 64]"), Attr("c.data","Top:u64"), -Attr("c.type","unsigned long")]), Var("memset_n",Imm(64)), Var("R2",Imm(64)), -In()), Arg(Tid(2_032, "%000007f0"), Attrs([Attr("c.layout","*[ : 8]"), -Attr("c.data","{} ptr"), Attr("c.type","void*")]), - Var("memset_result",Imm(64)), Var("R0",Imm(64)), Out())]), -Blks([Blk(Tid(1_028, "@memset"), Attrs([Attr("address","0x760")]), Phis([]), -Defs([Def(Tid(1_583, "%0000062f"), Attrs([Attr("address","0x760"), -Attr("insn","adrp x16, #69632")]), Var("R16",Imm(64)), Int(69632,64)), -Def(Tid(1_590, "%00000636"), Attrs([Attr("address","0x764"), -Attr("insn","ldr x17, [x16, #0x28]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(40,64)),LittleEndian(),64)), -Def(Tid(1_596, "%0000063c"), Attrs([Attr("address","0x768"), -Attr("insn","add x16, x16, #0x28")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(40,64)))]), Jmps([Call(Tid(1_601, "%00000641"), - Attrs([Attr("address","0x76C"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), Sub(Tid(1_957, "@puts"), - Attrs([Attr("c.proto","signed (*)( const char* s)"), -Attr("address","0x790"), Attr("stub","()")]), "puts", - Args([Arg(Tid(2_033, "%000007f1"), Attrs([Attr("c.layout","*[char : 8]"), -Attr("c.data","Top:u8 ptr"), Attr("c.type"," const char*")]), - Var("puts_s",Imm(64)), Var("R0",Imm(64)), In()), -Arg(Tid(2_034, "%000007f2"), Attrs([Attr("c.layout","[signed : 32]"), -Attr("c.data","Top:u32"), Attr("c.type","signed")]), - Var("puts_result",Imm(32)), LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(969, "@puts"), Attrs([Attr("address","0x790")]), Phis([]), -Defs([Def(Tid(1_649, "%00000671"), Attrs([Attr("address","0x790"), -Attr("insn","adrp x16, #69632")]), Var("R16",Imm(64)), Int(69632,64)), -Def(Tid(1_656, "%00000678"), Attrs([Attr("address","0x794"), -Attr("insn","ldr x17, [x16, #0x40]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(64,64)),LittleEndian(),64)), -Def(Tid(1_662, "%0000067e"), Attrs([Attr("address","0x798"), -Attr("insn","add x16, x16, #0x40")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(64,64)))]), Jmps([Call(Tid(1_667, "%00000683"), - Attrs([Attr("address","0x79C"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), -Sub(Tid(1_958, "@register_tm_clones"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x840")]), - "register_tm_clones", Args([Arg(Tid(2_035, "%000007f3"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("register_tm_clones_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(668, "@register_tm_clones"), Attrs([Attr("address","0x840")]), - Phis([]), Defs([Def(Tid(671, "%0000029f"), Attrs([Attr("address","0x840"), -Attr("insn","adrp x0, #69632")]), Var("R0",Imm(64)), Int(69632,64)), -Def(Tid(677, "%000002a5"), Attrs([Attr("address","0x844"), -Attr("insn","add x0, x0, #0x70")]), Var("R0",Imm(64)), -PLUS(Var("R0",Imm(64)),Int(112,64))), Def(Tid(682, "%000002aa"), - Attrs([Attr("address","0x848"), Attr("insn","adrp x1, #69632")]), - Var("R1",Imm(64)), Int(69632,64)), Def(Tid(688, "%000002b0"), - Attrs([Attr("address","0x84C"), Attr("insn","add x1, x1, #0x70")]), - Var("R1",Imm(64)), PLUS(Var("R1",Imm(64)),Int(112,64))), -Def(Tid(695, "%000002b7"), Attrs([Attr("address","0x850"), -Attr("insn","sub x1, x1, x0")]), Var("R1",Imm(64)), -PLUS(PLUS(Var("R1",Imm(64)),NOT(Var("R0",Imm(64)))),Int(1,64))), -Def(Tid(701, "%000002bd"), Attrs([Attr("address","0x854"), -Attr("insn","lsr x2, x1, #63")]), Var("R2",Imm(64)), -Concat(Int(0,63),Extract(63,63,Var("R1",Imm(64))))), -Def(Tid(708, "%000002c4"), Attrs([Attr("address","0x858"), -Attr("insn","add x1, x2, x1, asr #3")]), Var("R1",Imm(64)), -PLUS(Var("R2",Imm(64)),ARSHIFT(Var("R1",Imm(64)),Int(3,3)))), -Def(Tid(714, "%000002ca"), Attrs([Attr("address","0x85C"), -Attr("insn","asr x1, x1, #1")]), Var("R1",Imm(64)), -SIGNED(64,Extract(63,1,Var("R1",Imm(64)))))]), -Jmps([Goto(Tid(720, "%000002d0"), Attrs([Attr("address","0x860"), -Attr("insn","cbz x1, #0x18")]), EQ(Var("R1",Imm(64)),Int(0,64)), -Direct(Tid(718, "%000002ce"))), Goto(Tid(2_003, "%000007d3"), Attrs([]), - Int(1,1), Direct(Tid(1_155, "%00000483")))])), Blk(Tid(1_155, "%00000483"), - Attrs([Attr("address","0x864")]), Phis([]), -Defs([Def(Tid(1_158, "%00000486"), Attrs([Attr("address","0x864"), -Attr("insn","adrp x2, #65536")]), Var("R2",Imm(64)), Int(65536,64)), -Def(Tid(1_165, "%0000048d"), Attrs([Attr("address","0x868"), -Attr("insn","ldr x2, [x2, #0xfe0]")]), Var("R2",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R2",Imm(64)),Int(4064,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(1_170, "%00000492"), Attrs([Attr("address","0x86C"), -Attr("insn","cbz x2, #0xc")]), EQ(Var("R2",Imm(64)),Int(0,64)), -Direct(Tid(718, "%000002ce"))), Goto(Tid(2_004, "%000007d4"), Attrs([]), - Int(1,1), Direct(Tid(1_174, "%00000496")))])), Blk(Tid(718, "%000002ce"), - Attrs([Attr("address","0x878")]), Phis([]), Defs([]), -Jmps([Call(Tid(726, "%000002d6"), Attrs([Attr("address","0x878"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))])), -Blk(Tid(1_174, "%00000496"), Attrs([Attr("address","0x870")]), Phis([]), -Defs([Def(Tid(1_178, "%0000049a"), Attrs([Attr("address","0x870"), -Attr("insn","mov x16, x2")]), Var("R16",Imm(64)), Var("R2",Imm(64)))]), -Jmps([Call(Tid(1_183, "%0000049f"), Attrs([Attr("address","0x874"), -Attr("insn","br x16")]), Int(1,1), (Indirect(Var("R16",Imm(64))),))]))])), -Sub(Tid(1_961, "@strlen"), - Attrs([Attr("c.proto","unsigned long (*)( const char* s)"), -Attr("pure","()"), Attr("address","0x720"), Attr("stub","()")]), "strlen", - Args([Arg(Tid(2_036, "%000007f4"), Attrs([Attr("nonnull","()"), -Attr("c.layout","*[char : 8]"), Attr("c.data","Top:u8 ptr"), -Attr("c.type"," const char*")]), Var("strlen_s",Imm(64)), Var("R0",Imm(64)), -In()), Arg(Tid(2_037, "%000007f5"), - Attrs([Attr("c.layout","[unsigned long : 64]"), Attr("c.data","Top:u64"), -Attr("c.type","unsigned long")]), Var("strlen_result",Imm(64)), -Var("R0",Imm(64)), Out())]), Blks([Blk(Tid(929, "@strlen"), - Attrs([Attr("address","0x720")]), Phis([]), -Defs([Def(Tid(1_495, "%000005d7"), Attrs([Attr("address","0x720"), -Attr("insn","adrp x16, #69632")]), Var("R16",Imm(64)), Int(69632,64)), -Def(Tid(1_502, "%000005de"), Attrs([Attr("address","0x724"), -Attr("insn","ldr x17, [x16, #0x8]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(1_508, "%000005e4"), Attrs([Attr("address","0x728"), -Attr("insn","add x16, x16, #0x8")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(8,64)))]), Jmps([Call(Tid(1_513, "%000005e9"), - Attrs([Attr("address","0x72C"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))]))]))) \ No newline at end of file diff --git a/src/test/extraspec_incorrect/malloc_memcpy_strlen_memset_free/clang_O2/malloc_memcpy_strlen_memset_free.bir b/src/test/extraspec_incorrect/malloc_memcpy_strlen_memset_free/clang_O2/malloc_memcpy_strlen_memset_free.bir deleted file mode 100644 index edc16330c..000000000 --- a/src/test/extraspec_incorrect/malloc_memcpy_strlen_memset_free/clang_O2/malloc_memcpy_strlen_memset_free.bir +++ /dev/null @@ -1,350 +0,0 @@ -000007d5: program -0000078e: sub __cxa_finalize(__cxa_finalize_result) -000007d6: __cxa_finalize_result :: out u32 = low:32[R0] - -0000047f: -00000603: R16 := 0x11000 -0000060a: R17 := mem[R16 + 0x18, el]:u64 -00000610: R16 := R16 + 0x18 -00000615: call R17 with noreturn - -0000078f: sub __do_global_dtors_aux(__do_global_dtors_aux_result) -000007d7: __do_global_dtors_aux_result :: out u32 = low:32[R0] - -000002da: -000002de: #3 := R31 - 0x20 -000002e4: mem := mem with [#3, el]:u64 <- R29 -000002ea: mem := mem with [#3 + 8, el]:u64 <- R30 -000002ee: R31 := #3 -000002f4: R29 := R31 -000002fc: mem := mem with [R31 + 0x10, el]:u64 <- R19 -00000301: R19 := 0x11000 -00000308: R0 := pad:64[mem[R19 + 0x70]] -0000030f: when 31:0[R0] <> 0 goto %0000030d -000007cb: goto %00000448 - -00000448: -0000044b: R0 := 0x10000 -00000452: R0 := mem[R0 + 0xFC8, el]:u64 -00000458: when R0 = 0 goto %00000456 -000007cc: goto %0000046f - -0000046f: -00000472: R0 := 0x11000 -00000479: R0 := mem[R0 + 0x58, el]:u64 -0000047e: R30 := 0x8B0 -00000481: call @__cxa_finalize with return %00000456 - -00000456: -0000045e: R30 := 0x8B4 -00000460: call @deregister_tm_clones with return %00000462 - -00000462: -00000465: R0 := 1 -0000046d: mem := mem with [R19 + 0x70] <- 7:0[R0] -000007cd: goto %0000030d - -0000030d: -00000317: R19 := mem[R31 + 0x10, el]:u64 -0000031e: R29 := mem[R31, el]:u64 -00000323: R30 := mem[R31 + 8, el]:u64 -00000327: R31 := R31 + 0x20 -0000032c: call R30 with noreturn - -00000793: sub __libc_start_main(__libc_start_main_main, __libc_start_main_arg2, __libc_start_main_arg3, __libc_start_main_auxv, __libc_start_main_result) -000007d8: __libc_start_main_main :: in u64 = R0 -000007d9: __libc_start_main_arg2 :: in u32 = low:32[R1] -000007da: __libc_start_main_arg3 :: in out u64 = R2 -000007db: __libc_start_main_auxv :: in out u64 = R3 -000007dc: __libc_start_main_result :: out u32 = low:32[R0] - -00000233: -000005ed: R16 := 0x11000 -000005f4: R17 := mem[R16 + 0x10, el]:u64 -000005fa: R16 := R16 + 0x10 -000005ff: call R17 with noreturn - -00000794: sub _fini(_fini_result) -000007dd: _fini_result :: out u32 = low:32[R0] - -0000001f: -00000025: #0 := R31 - 0x10 -0000002b: mem := mem with [#0, el]:u64 <- R29 -00000031: mem := mem with [#0 + 8, el]:u64 <- R30 -00000035: R31 := #0 -0000003b: R29 := R31 -00000042: R29 := mem[R31, el]:u64 -00000047: R30 := mem[R31 + 8, el]:u64 -0000004b: R31 := R31 + 0x10 -00000050: call R30 with noreturn - -00000795: sub _init(_init_result) -000007de: _init_result :: out u32 = low:32[R0] - -000006b5: -000006bb: #8 := R31 - 0x10 -000006c1: mem := mem with [#8, el]:u64 <- R29 -000006c7: mem := mem with [#8 + 8, el]:u64 <- R30 -000006cb: R31 := #8 -000006d1: R29 := R31 -000006d6: R30 := 0x6E8 -000006d8: call @call_weak_fn with return %000006da - -000006da: -000006df: R29 := mem[R31, el]:u64 -000006e4: R30 := mem[R31 + 8, el]:u64 -000006e8: R31 := R31 + 0x10 -000006ed: call R30 with noreturn - -00000796: sub _start(_start_result) -000007df: _start_result :: out u32 = low:32[R0] - -000001f4: -000001f9: R29 := 0 -000001fe: R30 := 0 -00000204: R5 := R0 -0000020b: R1 := mem[R31, el]:u64 -00000211: R2 := R31 + 8 -00000217: R6 := R31 -0000021c: R0 := 0x10000 -00000223: R0 := mem[R0 + 0xFD8, el]:u64 -00000228: R3 := 0 -0000022d: R4 := 0 -00000232: R30 := 0x7F0 -00000235: call @__libc_start_main with return %00000237 - -00000237: -0000023a: R30 := 0x7F4 -0000023d: call @abort with return %000007ce - -000007ce: -000007cf: call @call_weak_fn with noreturn - -00000799: sub abort() - - -0000023b: -0000065b: R16 := 0x11000 -00000662: R17 := mem[R16 + 0x38, el]:u64 -00000668: R16 := R16 + 0x38 -0000066d: call R17 with noreturn - -0000079a: sub call_weak_fn(call_weak_fn_result) -000007e0: call_weak_fn_result :: out u32 = low:32[R0] - -0000023f: -00000242: R0 := 0x10000 -00000249: R0 := mem[R0 + 0xFD0, el]:u64 -0000024f: when R0 = 0 goto %0000024d -000007d0: goto %000004bf - -0000024d: -00000255: call R30 with noreturn - -000004bf: -000004c2: goto @__gmon_start__ - -000004c0: -00000645: R16 := 0x11000 -0000064c: R17 := mem[R16 + 0x30, el]:u64 -00000652: R16 := R16 + 0x30 -00000657: call R17 with noreturn - -0000079c: sub deregister_tm_clones(deregister_tm_clones_result) -000007e1: deregister_tm_clones_result :: out u32 = low:32[R0] - -0000025b: -0000025e: R0 := 0x11000 -00000264: R0 := R0 + 0x70 -00000269: R1 := 0x11000 -0000026f: R1 := R1 + 0x70 -00000275: #1 := ~R0 -0000027a: #2 := R1 + ~R0 -00000280: VF := extend:65[#2 + 1] <> extend:65[R1] + extend:65[#1] + 1 -00000286: CF := pad:65[#2 + 1] <> pad:65[R1] + pad:65[#1] + 1 -0000028a: ZF := #2 + 1 = 0 -0000028e: NF := 63:63[#2 + 1] -00000294: when ZF goto %00000292 -000007d1: goto %000004a1 - -000004a1: -000004a4: R1 := 0x10000 -000004ab: R1 := mem[R1 + 0xFC0, el]:u64 -000004b0: when R1 = 0 goto %00000292 -000007d2: goto %000004b4 - -00000292: -0000029a: call R30 with noreturn - -000004b4: -000004b8: R16 := R1 -000004bd: call R16 with noreturn - -0000079f: sub frame_dummy(frame_dummy_result) -000007e2: frame_dummy_result :: out u32 = low:32[R0] - -00000332: -00000334: call @register_tm_clones with noreturn - -000007a0: sub free(free_ptr) -000007e3: free_ptr :: in out u64 = R0 - -00000413: -00000687: R16 := 0x11000 -0000068e: R17 := mem[R16 + 0x48, el]:u64 -00000694: R16 := R16 + 0x48 -00000699: call R17 with noreturn - -000007a1: sub main(main_argc, main_argv, main_result) -000007e4: main_argc :: in u32 = low:32[R0] -000007e5: main_argv :: in out u64 = R1 -000007e6: main_result :: out u32 = low:32[R0] - -00000336: -0000033a: #4 := R31 - 0x30 -00000340: mem := mem with [#4, el]:u64 <- R29 -00000346: mem := mem with [#4 + 8, el]:u64 <- R30 -0000034a: R31 := #4 -00000352: mem := mem with [R31 + 0x10, el]:u64 <- R21 -00000358: #5 := R31 + 0x20 -0000035e: mem := mem with [#5, el]:u64 <- R20 -00000364: mem := mem with [#5 + 8, el]:u64 <- R19 -0000036a: R29 := R31 -0000036f: R0 := 0xB -00000374: R30 := 0x8EC -00000377: call @malloc with return %00000379 - -00000379: -0000037c: R21 := 0x11000 -00000381: R20 := 0x11000 -00000387: R20 := R20 + 0x61 -0000038d: R19 := R0 -00000395: mem := mem with [R21 + 0x78, el]:u64 <- R0 -0000039b: R0 := R20 -000003a0: R30 := 0x908 -000003a3: call @strlen with return %000003a5 - -000003a5: -000003a9: R2 := R0 -000003af: R0 := R19 -000003b5: R1 := R20 -000003ba: R30 := 0x918 -000003bd: call @memcpy with return %000003bf - -000003bf: -000003c3: R0 := R19 -000003c8: R30 := 0x920 -000003cb: call @puts with return %000003cd - -000003cd: -000003d2: R8 := mem[R21 + 0x78, el]:u64 -000003d9: mem := mem with [R8 + 4] <- 0 -000003e0: R19 := mem[R21 + 0x78, el]:u64 -000003e6: R0 := R19 -000003eb: R30 := 0x934 -000003ed: call @strlen with return %000003ef - -000003ef: -000003f3: R2 := R0 -000003f9: R0 := R19 -000003fe: R1 := 1 -00000403: R30 := 0x944 -00000406: call @memset with return %00000408 - -00000408: -0000040d: R0 := mem[R21 + 0x78, el]:u64 -00000412: R30 := 0x94C -00000415: call @free with return %00000417 - -00000417: -0000041a: R0 := 0 -00000420: #6 := R31 + 0x20 -00000425: R20 := mem[#6, el]:u64 -0000042a: R19 := mem[#6 + 8, el]:u64 -00000431: R21 := mem[R31 + 0x10, el]:u64 -00000438: R29 := mem[R31, el]:u64 -0000043d: R30 := mem[R31 + 8, el]:u64 -00000441: R31 := R31 + 0x30 -00000446: call R30 with noreturn - -000007a2: sub malloc(malloc_size, malloc_result) -000007e7: malloc_size :: in u64 = R0 -000007e8: malloc_result :: out u64 = R0 - -00000375: -00000619: R16 := 0x11000 -00000620: R17 := mem[R16 + 0x20, el]:u64 -00000626: R16 := R16 + 0x20 -0000062b: call R17 with noreturn - -000007a3: sub memcpy(memcpy_dst, memcpy_src, memcpy_n, memcpy_result) -000007e9: memcpy_dst :: in out u64 = R0 -000007ea: memcpy_src :: in out u64 = R1 -000007eb: memcpy_n :: in u64 = R2 -000007ec: memcpy_result :: out u64 = R0 - -000003bb: -000005c1: R16 := 0x11000 -000005c8: R17 := mem[R16, el]:u64 -000005ce: R16 := R16 -000005d3: call R17 with noreturn - -000007a4: sub memset(memset_buf, memset_c, memset_n, memset_result) -000007ed: memset_buf :: in out u64 = R0 -000007ee: memset_c :: in u32 = low:32[R1] -000007ef: memset_n :: in u64 = R2 -000007f0: memset_result :: out u64 = R0 - -00000404: -0000062f: R16 := 0x11000 -00000636: R17 := mem[R16 + 0x28, el]:u64 -0000063c: R16 := R16 + 0x28 -00000641: call R17 with noreturn - -000007a5: sub puts(puts_s, puts_result) -000007f1: puts_s :: in u64 = R0 -000007f2: puts_result :: out u32 = low:32[R0] - -000003c9: -00000671: R16 := 0x11000 -00000678: R17 := mem[R16 + 0x40, el]:u64 -0000067e: R16 := R16 + 0x40 -00000683: call R17 with noreturn - -000007a6: sub register_tm_clones(register_tm_clones_result) -000007f3: register_tm_clones_result :: out u32 = low:32[R0] - -0000029c: -0000029f: R0 := 0x11000 -000002a5: R0 := R0 + 0x70 -000002aa: R1 := 0x11000 -000002b0: R1 := R1 + 0x70 -000002b7: R1 := R1 + ~R0 + 1 -000002bd: R2 := 0.63:63[R1] -000002c4: R1 := R2 + (R1 ~>> 3) -000002ca: R1 := extend:64[63:1[R1]] -000002d0: when R1 = 0 goto %000002ce -000007d3: goto %00000483 - -00000483: -00000486: R2 := 0x10000 -0000048d: R2 := mem[R2 + 0xFE0, el]:u64 -00000492: when R2 = 0 goto %000002ce -000007d4: goto %00000496 - -000002ce: -000002d6: call R30 with noreturn - -00000496: -0000049a: R16 := R2 -0000049f: call R16 with noreturn - -000007a9: sub strlen(strlen_s, strlen_result) -000007f4: strlen_s :: in u64 = R0 -000007f5: strlen_result :: out u64 = R0 - -000003a1: -000005d7: R16 := 0x11000 -000005de: R17 := mem[R16 + 8, el]:u64 -000005e4: R16 := R16 + 8 -000005e9: call R17 with noreturn diff --git a/src/test/extraspec_incorrect/malloc_memcpy_strlen_memset_free/clang_O2/malloc_memcpy_strlen_memset_free.gts b/src/test/extraspec_incorrect/malloc_memcpy_strlen_memset_free/clang_O2/malloc_memcpy_strlen_memset_free.gts deleted file mode 100644 index 1c43691ad..000000000 Binary files a/src/test/extraspec_incorrect/malloc_memcpy_strlen_memset_free/clang_O2/malloc_memcpy_strlen_memset_free.gts and /dev/null differ diff --git a/src/test/extraspec_incorrect/malloc_memcpy_strlen_memset_free/clang_O2/malloc_memcpy_strlen_memset_free.md5sum b/src/test/extraspec_incorrect/malloc_memcpy_strlen_memset_free/clang_O2/malloc_memcpy_strlen_memset_free.md5sum new file mode 100644 index 000000000..16d7dc641 --- /dev/null +++ b/src/test/extraspec_incorrect/malloc_memcpy_strlen_memset_free/clang_O2/malloc_memcpy_strlen_memset_free.md5sum @@ -0,0 +1,5 @@ +3b63c88ee89db1b463950abdccfeb7c9 extraspec_incorrect/malloc_memcpy_strlen_memset_free/clang_O2/a.out +390ba27a222f0950688e3e7e27ce88a2 extraspec_incorrect/malloc_memcpy_strlen_memset_free/clang_O2/malloc_memcpy_strlen_memset_free.adt +9b6db4c6fe913b8003f56c7f76fc3be9 extraspec_incorrect/malloc_memcpy_strlen_memset_free/clang_O2/malloc_memcpy_strlen_memset_free.bir +b9e29933d979b4ad2fd7b5c446553248 extraspec_incorrect/malloc_memcpy_strlen_memset_free/clang_O2/malloc_memcpy_strlen_memset_free.relf +67223863b5a332264bce7af8f809a22a extraspec_incorrect/malloc_memcpy_strlen_memset_free/clang_O2/malloc_memcpy_strlen_memset_free.gts diff --git a/src/test/extraspec_incorrect/malloc_memcpy_strlen_memset_free/clang_O2/malloc_memcpy_strlen_memset_free.relf b/src/test/extraspec_incorrect/malloc_memcpy_strlen_memset_free/clang_O2/malloc_memcpy_strlen_memset_free.relf deleted file mode 100644 index 052e65e07..000000000 --- a/src/test/extraspec_incorrect/malloc_memcpy_strlen_memset_free/clang_O2/malloc_memcpy_strlen_memset_free.relf +++ /dev/null @@ -1,144 +0,0 @@ - -Relocation section '.rela.dyn' at offset 0x528 contains 8 entries: - Offset Info Type Symbol's Value Symbol's Name + Addend -0000000000010dc8 0000000000000403 R_AARCH64_RELATIVE 8d0 -0000000000010dd0 0000000000000403 R_AARCH64_RELATIVE 880 -0000000000010fd8 0000000000000403 R_AARCH64_RELATIVE 8d4 -0000000000011058 0000000000000403 R_AARCH64_RELATIVE 11058 -0000000000010fc0 0000000600000401 R_AARCH64_GLOB_DAT 0000000000000000 _ITM_deregisterTMCloneTable + 0 -0000000000010fc8 0000000700000401 R_AARCH64_GLOB_DAT 0000000000000000 __cxa_finalize@GLIBC_2.17 + 0 -0000000000010fd0 0000000a00000401 R_AARCH64_GLOB_DAT 0000000000000000 __gmon_start__ + 0 -0000000000010fe0 0000000e00000401 R_AARCH64_GLOB_DAT 0000000000000000 _ITM_registerTMCloneTable + 0 - -Relocation section '.rela.plt' at offset 0x5e8 contains 10 entries: - Offset Info Type Symbol's Value Symbol's Name + Addend -0000000000011000 0000000300000402 R_AARCH64_JUMP_SLOT 0000000000000000 memcpy@GLIBC_2.17 + 0 -0000000000011008 0000000400000402 R_AARCH64_JUMP_SLOT 0000000000000000 strlen@GLIBC_2.17 + 0 -0000000000011010 0000000500000402 R_AARCH64_JUMP_SLOT 0000000000000000 __libc_start_main@GLIBC_2.34 + 0 -0000000000011018 0000000700000402 R_AARCH64_JUMP_SLOT 0000000000000000 __cxa_finalize@GLIBC_2.17 + 0 -0000000000011020 0000000800000402 R_AARCH64_JUMP_SLOT 0000000000000000 malloc@GLIBC_2.17 + 0 -0000000000011028 0000000900000402 R_AARCH64_JUMP_SLOT 0000000000000000 memset@GLIBC_2.17 + 0 -0000000000011030 0000000a00000402 R_AARCH64_JUMP_SLOT 0000000000000000 __gmon_start__ + 0 -0000000000011038 0000000b00000402 R_AARCH64_JUMP_SLOT 0000000000000000 abort@GLIBC_2.17 + 0 -0000000000011040 0000000c00000402 R_AARCH64_JUMP_SLOT 0000000000000000 puts@GLIBC_2.17 + 0 -0000000000011048 0000000d00000402 R_AARCH64_JUMP_SLOT 0000000000000000 free@GLIBC_2.17 + 0 - -Symbol table '.dynsym' contains 15 entries: - Num: Value Size Type Bind Vis Ndx Name - 0: 0000000000000000 0 NOTYPE LOCAL DEFAULT UND - 1: 00000000000006d8 0 SECTION LOCAL DEFAULT 11 .init - 2: 0000000000011050 0 SECTION LOCAL DEFAULT 23 .data - 3: 0000000000000000 0 FUNC GLOBAL DEFAULT UND memcpy@GLIBC_2.17 (2) - 4: 0000000000000000 0 FUNC GLOBAL DEFAULT UND strlen@GLIBC_2.17 (2) - 5: 0000000000000000 0 FUNC GLOBAL DEFAULT UND __libc_start_main@GLIBC_2.34 (3) - 6: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_deregisterTMCloneTable - 7: 0000000000000000 0 FUNC WEAK DEFAULT UND __cxa_finalize@GLIBC_2.17 (2) - 8: 0000000000000000 0 FUNC GLOBAL DEFAULT UND malloc@GLIBC_2.17 (2) - 9: 0000000000000000 0 FUNC GLOBAL DEFAULT UND memset@GLIBC_2.17 (2) - 10: 0000000000000000 0 NOTYPE WEAK DEFAULT UND __gmon_start__ - 11: 0000000000000000 0 FUNC GLOBAL DEFAULT UND abort@GLIBC_2.17 (2) - 12: 0000000000000000 0 FUNC GLOBAL DEFAULT UND puts@GLIBC_2.17 (2) - 13: 0000000000000000 0 FUNC GLOBAL DEFAULT UND free@GLIBC_2.17 (2) - 14: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_registerTMCloneTable - -Symbol table '.symtab' contains 99 entries: - Num: Value Size Type Bind Vis Ndx Name - 0: 0000000000000000 0 NOTYPE LOCAL DEFAULT UND - 1: 0000000000000238 0 SECTION LOCAL DEFAULT 1 .interp - 2: 0000000000000254 0 SECTION LOCAL DEFAULT 2 .note.gnu.build-id - 3: 0000000000000278 0 SECTION LOCAL DEFAULT 3 .note.ABI-tag - 4: 0000000000000298 0 SECTION LOCAL DEFAULT 4 .gnu.hash - 5: 00000000000002b8 0 SECTION LOCAL DEFAULT 5 .dynsym - 6: 0000000000000420 0 SECTION LOCAL DEFAULT 6 .dynstr - 7: 00000000000004d4 0 SECTION LOCAL DEFAULT 7 .gnu.version - 8: 00000000000004f8 0 SECTION LOCAL DEFAULT 8 .gnu.version_r - 9: 0000000000000528 0 SECTION LOCAL DEFAULT 9 .rela.dyn - 10: 00000000000005e8 0 SECTION LOCAL DEFAULT 10 .rela.plt - 11: 00000000000006d8 0 SECTION LOCAL DEFAULT 11 .init - 12: 00000000000006f0 0 SECTION LOCAL DEFAULT 12 .plt - 13: 00000000000007c0 0 SECTION LOCAL DEFAULT 13 .text - 14: 0000000000000960 0 SECTION LOCAL DEFAULT 14 .fini - 15: 0000000000000974 0 SECTION LOCAL DEFAULT 15 .rodata - 16: 0000000000000978 0 SECTION LOCAL DEFAULT 16 .eh_frame_hdr - 17: 00000000000009b8 0 SECTION LOCAL DEFAULT 17 .eh_frame - 18: 0000000000010dc8 0 SECTION LOCAL DEFAULT 18 .init_array - 19: 0000000000010dd0 0 SECTION LOCAL DEFAULT 19 .fini_array - 20: 0000000000010dd8 0 SECTION LOCAL DEFAULT 20 .dynamic - 21: 0000000000010fb8 0 SECTION LOCAL DEFAULT 21 .got - 22: 0000000000010fe8 0 SECTION LOCAL DEFAULT 22 .got.plt - 23: 0000000000011050 0 SECTION LOCAL DEFAULT 23 .data - 24: 0000000000011070 0 SECTION LOCAL DEFAULT 24 .bss - 25: 0000000000000000 0 SECTION LOCAL DEFAULT 25 .comment - 26: 0000000000000000 0 FILE LOCAL DEFAULT ABS Scrt1.o - 27: 0000000000000278 0 NOTYPE LOCAL DEFAULT 3 $d - 28: 0000000000000278 32 OBJECT LOCAL DEFAULT 3 __abi_tag - 29: 00000000000007c0 0 NOTYPE LOCAL DEFAULT 13 $x - 30: 00000000000009cc 0 NOTYPE LOCAL DEFAULT 17 $d - 31: 0000000000000974 0 NOTYPE LOCAL DEFAULT 15 $d - 32: 0000000000000000 0 FILE LOCAL DEFAULT ABS crti.o - 33: 00000000000007f4 0 NOTYPE LOCAL DEFAULT 13 $x - 34: 00000000000007f4 20 FUNC LOCAL DEFAULT 13 call_weak_fn - 35: 00000000000006d8 0 NOTYPE LOCAL DEFAULT 11 $x - 36: 0000000000000960 0 NOTYPE LOCAL DEFAULT 14 $x - 37: 0000000000000000 0 FILE LOCAL DEFAULT ABS crtn.o - 38: 00000000000006e8 0 NOTYPE LOCAL DEFAULT 11 $x - 39: 000000000000096c 0 NOTYPE LOCAL DEFAULT 14 $x - 40: 0000000000000000 0 FILE LOCAL DEFAULT ABS crtstuff.c - 41: 0000000000000810 0 NOTYPE LOCAL DEFAULT 13 $x - 42: 0000000000000810 0 FUNC LOCAL DEFAULT 13 deregister_tm_clones - 43: 0000000000000840 0 FUNC LOCAL DEFAULT 13 register_tm_clones - 44: 0000000000011058 0 NOTYPE LOCAL DEFAULT 23 $d - 45: 0000000000000880 0 FUNC LOCAL DEFAULT 13 __do_global_dtors_aux - 46: 0000000000011070 1 OBJECT LOCAL DEFAULT 24 completed.0 - 47: 0000000000010dd0 0 NOTYPE LOCAL DEFAULT 19 $d - 48: 0000000000010dd0 0 OBJECT LOCAL DEFAULT 19 __do_global_dtors_aux_fini_array_entry - 49: 00000000000008d0 0 FUNC LOCAL DEFAULT 13 frame_dummy - 50: 0000000000010dc8 0 NOTYPE LOCAL DEFAULT 18 $d - 51: 0000000000010dc8 0 OBJECT LOCAL DEFAULT 18 __frame_dummy_init_array_entry - 52: 00000000000009e0 0 NOTYPE LOCAL DEFAULT 17 $d - 53: 0000000000011070 0 NOTYPE LOCAL DEFAULT 24 $d - 54: 0000000000000000 0 FILE LOCAL DEFAULT ABS malloc_memcpy_strlen_memset_free.c - 55: 00000000000008d4 0 NOTYPE LOCAL DEFAULT 13 $x.0 - 56: 0000000000011060 0 NOTYPE LOCAL DEFAULT 23 $d.1 - 57: 0000000000011078 0 NOTYPE LOCAL DEFAULT 24 $d.2 - 58: 000000000000002a 0 NOTYPE LOCAL DEFAULT 25 $d.3 - 59: 0000000000000a40 0 NOTYPE LOCAL DEFAULT 17 $d.4 - 60: 0000000000000000 0 FILE LOCAL DEFAULT ABS crtstuff.c - 61: 0000000000000a84 0 NOTYPE LOCAL DEFAULT 17 $d - 62: 0000000000000a84 0 OBJECT LOCAL DEFAULT 17 __FRAME_END__ - 63: 0000000000000000 0 FILE LOCAL DEFAULT ABS - 64: 0000000000010dd8 0 OBJECT LOCAL DEFAULT ABS _DYNAMIC - 65: 0000000000000978 0 NOTYPE LOCAL DEFAULT 16 __GNU_EH_FRAME_HDR - 66: 0000000000010fb8 0 OBJECT LOCAL DEFAULT ABS _GLOBAL_OFFSET_TABLE_ - 67: 00000000000006f0 0 NOTYPE LOCAL DEFAULT 12 $x - 68: 0000000000000000 0 FUNC GLOBAL DEFAULT UND memcpy@GLIBC_2.17 - 69: 0000000000000000 0 FUNC GLOBAL DEFAULT UND strlen@GLIBC_2.17 - 70: 0000000000000000 0 FUNC GLOBAL DEFAULT UND __libc_start_main@GLIBC_2.34 - 71: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_deregisterTMCloneTable - 72: 0000000000011050 0 NOTYPE WEAK DEFAULT 23 data_start - 73: 000000000001106c 0 NOTYPE GLOBAL DEFAULT 24 __bss_start__ - 74: 0000000000000000 0 FUNC WEAK DEFAULT UND __cxa_finalize@GLIBC_2.17 - 75: 0000000000011080 0 NOTYPE GLOBAL DEFAULT 24 _bss_end__ - 76: 000000000001106c 0 NOTYPE GLOBAL DEFAULT 23 _edata - 77: 0000000000000960 0 FUNC GLOBAL HIDDEN 14 _fini - 78: 0000000000011080 0 NOTYPE GLOBAL DEFAULT 24 __bss_end__ - 79: 0000000000000000 0 FUNC GLOBAL DEFAULT UND malloc@GLIBC_2.17 - 80: 0000000000000000 0 FUNC GLOBAL DEFAULT UND memset@GLIBC_2.17 - 81: 0000000000011060 1 OBJECT GLOBAL DEFAULT 23 password - 82: 0000000000011050 0 NOTYPE GLOBAL DEFAULT 23 __data_start - 83: 0000000000000000 0 NOTYPE WEAK DEFAULT UND __gmon_start__ - 84: 0000000000011058 0 OBJECT GLOBAL HIDDEN 23 __dso_handle - 85: 0000000000000000 0 FUNC GLOBAL DEFAULT UND abort@GLIBC_2.17 - 86: 0000000000000974 4 OBJECT GLOBAL DEFAULT 15 _IO_stdin_used - 87: 0000000000000000 0 FUNC GLOBAL DEFAULT UND puts@GLIBC_2.17 - 88: 0000000000011080 0 NOTYPE GLOBAL DEFAULT 24 _end - 89: 0000000000000000 0 FUNC GLOBAL DEFAULT UND free@GLIBC_2.17 - 90: 00000000000007c0 52 FUNC GLOBAL DEFAULT 13 _start - 91: 0000000000011078 8 OBJECT GLOBAL DEFAULT 24 buf - 92: 0000000000011080 0 NOTYPE GLOBAL DEFAULT 24 __end__ - 93: 0000000000011061 11 OBJECT GLOBAL DEFAULT 23 stext - 94: 000000000001106c 0 NOTYPE GLOBAL DEFAULT 24 __bss_start - 95: 00000000000008d4 140 FUNC GLOBAL DEFAULT 13 main - 96: 0000000000011070 0 OBJECT GLOBAL HIDDEN 23 __TMC_END__ - 97: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_registerTMCloneTable - 98: 00000000000006d8 0 FUNC GLOBAL HIDDEN 11 _init diff --git a/src/test/extraspec_incorrect/malloc_memcpy_strlen_memset_free/gcc_O2/malloc_memcpy_strlen_memset_free.adt b/src/test/extraspec_incorrect/malloc_memcpy_strlen_memset_free/gcc_O2/malloc_memcpy_strlen_memset_free.adt deleted file mode 100644 index 48c5d0d41..000000000 --- a/src/test/extraspec_incorrect/malloc_memcpy_strlen_memset_free/gcc_O2/malloc_memcpy_strlen_memset_free.adt +++ /dev/null @@ -1,737 +0,0 @@ -Project(Attrs([Attr("filename","\"a.out\""), -Attr("image-specification","(declare abi (name str))\n(declare arch (name str))\n(declare base-address (addr int))\n(declare bias (off int))\n(declare bits (size int))\n(declare code-region (addr int) (size int) (off int))\n(declare code-start (addr int))\n(declare entry-point (addr int))\n(declare external-reference (addr int) (name str))\n(declare format (name str))\n(declare is-executable (flag bool))\n(declare is-little-endian (flag bool))\n(declare llvm:base-address (addr int))\n(declare llvm:code-entry (name str) (off int) (size int))\n(declare llvm:coff-import-library (name str))\n(declare llvm:coff-virtual-section-header (name str) (addr int) (size int))\n(declare llvm:elf-program-header (name str) (off int) (size int))\n(declare llvm:elf-program-header-flags (name str) (ld bool) (r bool) \n (w bool) (x bool))\n(declare llvm:elf-virtual-program-header (name str) (addr int) (size int))\n(declare llvm:entry-point (addr int))\n(declare llvm:macho-symbol (name str) (value int))\n(declare llvm:name-reference (at int) (name str))\n(declare llvm:relocation (at int) (addr int))\n(declare llvm:section-entry (name str) (addr int) (size int) (off int))\n(declare llvm:section-flags (name str) (r bool) (w bool) (x bool))\n(declare llvm:segment-command (name str) (off int) (size int))\n(declare llvm:segment-command-flags (name str) (r bool) (w bool) (x bool))\n(declare llvm:symbol-entry (name str) (addr int) (size int) (off int)\n (value int))\n(declare llvm:virtual-segment-command (name str) (addr int) (size int))\n(declare mapped (addr int) (size int) (off int))\n(declare named-region (addr int) (size int) (name str))\n(declare named-symbol (addr int) (name str))\n(declare require (name str))\n(declare section (addr int) (size int))\n(declare segment (addr int) (size int) (r bool) (w bool) (x bool))\n(declare subarch (name str))\n(declare symbol-chunk (addr int) (size int) (root int))\n(declare symbol-value (addr int) (value int))\n(declare system (name str))\n(declare vendor (name str))\n\n(abi unknown)\n(arch aarch64)\n(base-address 0)\n(bias 0)\n(bits 64)\n(code-region 2452 20 2452)\n(code-region 1984 468 1984)\n(code-region 1776 192 1776)\n(code-region 1752 24 1752)\n(code-start 2228)\n(code-start 2176)\n(code-start 1984)\n(entry-point 2176)\n(external-reference 69592 _ITM_deregisterTMCloneTable)\n(external-reference 69600 __cxa_finalize)\n(external-reference 69608 __gmon_start__)\n(external-reference 69624 _ITM_registerTMCloneTable)\n(external-reference 69504 strlen)\n(external-reference 69512 __libc_start_main)\n(external-reference 69520 __cxa_finalize)\n(external-reference 69528 __memcpy_chk)\n(external-reference 69536 malloc)\n(external-reference 69544 memset)\n(external-reference 69552 __gmon_start__)\n(external-reference 69560 abort)\n(external-reference 69568 puts)\n(external-reference 69576 free)\n(format elf)\n(is-executable true)\n(is-little-endian true)\n(llvm:base-address 0)\n(llvm:code-entry free 0 0)\n(llvm:code-entry puts 0 0)\n(llvm:code-entry abort 0 0)\n(llvm:code-entry memset 0 0)\n(llvm:code-entry malloc 0 0)\n(llvm:code-entry __memcpy_chk 0 0)\n(llvm:code-entry __cxa_finalize 0 0)\n(llvm:code-entry __libc_start_main 0 0)\n(llvm:code-entry strlen 0 0)\n(llvm:code-entry _init 1752 0)\n(llvm:code-entry main 1984 144)\n(llvm:code-entry _start 2176 52)\n(llvm:code-entry free@GLIBC_2.17 0 0)\n(llvm:code-entry puts@GLIBC_2.17 0 0)\n(llvm:code-entry abort@GLIBC_2.17 0 0)\n(llvm:code-entry memset@GLIBC_2.17 0 0)\n(llvm:code-entry malloc@GLIBC_2.17 0 0)\n(llvm:code-entry _fini 2452 0)\n(llvm:code-entry __memcpy_chk@GLIBC_2.17 0 0)\n(llvm:code-entry __cxa_finalize@GLIBC_2.17 0 0)\n(llvm:code-entry __libc_start_main@GLIBC_2.34 0 0)\n(llvm:code-entry strlen@GLIBC_2.17 0 0)\n(llvm:code-entry frame_dummy 2448 0)\n(llvm:code-entry __do_global_dtors_aux 2368 0)\n(llvm:code-entry register_tm_clones 2304 0)\n(llvm:code-entry deregister_tm_clones 2256 0)\n(llvm:code-entry call_weak_fn 2228 20)\n(llvm:code-entry .fini 2452 20)\n(llvm:code-entry .text 1984 468)\n(llvm:code-entry .plt 1776 192)\n(llvm:code-entry .init 1752 24)\n(llvm:elf-program-header 08 3432 664)\n(llvm:elf-program-header 07 0 0)\n(llvm:elf-program-header 06 2476 60)\n(llvm:elf-program-header 05 596 68)\n(llvm:elf-program-header 04 3448 496)\n(llvm:elf-program-header 03 3432 692)\n(llvm:elf-program-header 02 0 2716)\n(llvm:elf-program-header 01 568 27)\n(llvm:elf-program-header 00 64 504)\n(llvm:elf-program-header-flags 08 false true false false)\n(llvm:elf-program-header-flags 07 false true true false)\n(llvm:elf-program-header-flags 06 false true false false)\n(llvm:elf-program-header-flags 05 false true false false)\n(llvm:elf-program-header-flags 04 false true true false)\n(llvm:elf-program-header-flags 03 true true true false)\n(llvm:elf-program-header-flags 02 true true false true)\n(llvm:elf-program-header-flags 01 false true false false)\n(llvm:elf-program-header-flags 00 false true false false)\n(llvm:elf-virtual-program-header 08 68968 664)\n(llvm:elf-virtual-program-header 07 0 0)\n(llvm:elf-virtual-program-header 06 2476 60)\n(llvm:elf-virtual-program-header 05 596 68)\n(llvm:elf-virtual-program-header 04 68984 496)\n(llvm:elf-virtual-program-header 03 68968 712)\n(llvm:elf-virtual-program-header 02 0 2716)\n(llvm:elf-virtual-program-header 01 568 27)\n(llvm:elf-virtual-program-header 00 64 504)\n(llvm:entry-point 2176)\n(llvm:name-reference 69576 free)\n(llvm:name-reference 69568 puts)\n(llvm:name-reference 69560 abort)\n(llvm:name-reference 69552 __gmon_start__)\n(llvm:name-reference 69544 memset)\n(llvm:name-reference 69536 malloc)\n(llvm:name-reference 69528 __memcpy_chk)\n(llvm:name-reference 69520 __cxa_finalize)\n(llvm:name-reference 69512 __libc_start_main)\n(llvm:name-reference 69504 strlen)\n(llvm:name-reference 69624 _ITM_registerTMCloneTable)\n(llvm:name-reference 69608 __gmon_start__)\n(llvm:name-reference 69600 __cxa_finalize)\n(llvm:name-reference 69592 _ITM_deregisterTMCloneTable)\n(llvm:section-entry .shstrtab 0 250 7193)\n(llvm:section-entry .strtab 0 697 6496)\n(llvm:section-entry .symtab 0 2328 4168)\n(llvm:section-entry .comment 0 43 4124)\n(llvm:section-entry .bss 69664 16 4124)\n(llvm:section-entry .data 69632 28 4096)\n(llvm:section-entry .got 69480 152 3944)\n(llvm:section-entry .dynamic 68984 496 3448)\n(llvm:section-entry .fini_array 68976 8 3440)\n(llvm:section-entry .init_array 68968 8 3432)\n(llvm:section-entry .eh_frame 2536 180 2536)\n(llvm:section-entry .eh_frame_hdr 2476 60 2476)\n(llvm:section-entry .rodata 2472 4 2472)\n(llvm:section-entry .fini 2452 20 2452)\n(llvm:section-entry .text 1984 468 1984)\n(llvm:section-entry .plt 1776 192 1776)\n(llvm:section-entry .init 1752 24 1752)\n(llvm:section-entry .rela.plt 1512 240 1512)\n(llvm:section-entry .rela.dyn 1320 192 1320)\n(llvm:section-entry .gnu.version_r 1272 48 1272)\n(llvm:section-entry .gnu.version 1242 30 1242)\n(llvm:section-entry .dynstr 1056 185 1056)\n(llvm:section-entry .dynsym 696 360 696)\n(llvm:section-entry .gnu.hash 664 28 664)\n(llvm:section-entry .note.ABI-tag 632 32 632)\n(llvm:section-entry .note.gnu.build-id 596 36 596)\n(llvm:section-entry .interp 568 27 568)\n(llvm:section-flags .shstrtab true false false)\n(llvm:section-flags .strtab true false false)\n(llvm:section-flags .symtab true false false)\n(llvm:section-flags .comment true false false)\n(llvm:section-flags .bss true true false)\n(llvm:section-flags .data true true false)\n(llvm:section-flags .got true true false)\n(llvm:section-flags .dynamic true true false)\n(llvm:section-flags .fini_array true true false)\n(llvm:section-flags .init_array true true false)\n(llvm:section-flags .eh_frame true false false)\n(llvm:section-flags .eh_frame_hdr true false false)\n(llvm:section-flags .rodata true false false)\n(llvm:section-flags .fini true false true)\n(llvm:section-flags .text true false true)\n(llvm:section-flags .plt true false true)\n(llvm:section-flags .init true false true)\n(llvm:section-flags .rela.plt true false false)\n(llvm:section-flags .rela.dyn true false false)\n(llvm:section-flags .gnu.version_r true false false)\n(llvm:section-flags .gnu.version true false false)\n(llvm:section-flags .dynstr true false false)\n(llvm:section-flags .dynsym true false false)\n(llvm:section-flags .gnu.hash true false false)\n(llvm:section-flags .note.ABI-tag true false false)\n(llvm:section-flags .note.gnu.build-id true false false)\n(llvm:section-flags .interp true false false)\n(llvm:symbol-entry free 0 0 0 0)\n(llvm:symbol-entry puts 0 0 0 0)\n(llvm:symbol-entry abort 0 0 0 0)\n(llvm:symbol-entry memset 0 0 0 0)\n(llvm:symbol-entry malloc 0 0 0 0)\n(llvm:symbol-entry __memcpy_chk 0 0 0 0)\n(llvm:symbol-entry __cxa_finalize 0 0 0 0)\n(llvm:symbol-entry __libc_start_main 0 0 0 0)\n(llvm:symbol-entry strlen 0 0 0 0)\n(llvm:symbol-entry _init 1752 0 1752 1752)\n(llvm:symbol-entry main 1984 144 1984 1984)\n(llvm:symbol-entry _start 2176 52 2176 2176)\n(llvm:symbol-entry free@GLIBC_2.17 0 0 0 0)\n(llvm:symbol-entry puts@GLIBC_2.17 0 0 0 0)\n(llvm:symbol-entry abort@GLIBC_2.17 0 0 0 0)\n(llvm:symbol-entry memset@GLIBC_2.17 0 0 0 0)\n(llvm:symbol-entry malloc@GLIBC_2.17 0 0 0 0)\n(llvm:symbol-entry _fini 2452 0 2452 2452)\n(llvm:symbol-entry __memcpy_chk@GLIBC_2.17 0 0 0 0)\n(llvm:symbol-entry __cxa_finalize@GLIBC_2.17 0 0 0 0)\n(llvm:symbol-entry __libc_start_main@GLIBC_2.34 0 0 0 0)\n(llvm:symbol-entry strlen@GLIBC_2.17 0 0 0 0)\n(llvm:symbol-entry frame_dummy 2448 0 2448 2448)\n(llvm:symbol-entry __do_global_dtors_aux 2368 0 2368 2368)\n(llvm:symbol-entry register_tm_clones 2304 0 2304 2304)\n(llvm:symbol-entry deregister_tm_clones 2256 0 2256 2256)\n(llvm:symbol-entry call_weak_fn 2228 20 2228 2228)\n(mapped 0 2716 0)\n(mapped 68968 692 3432)\n(named-region 0 2716 02)\n(named-region 68968 712 03)\n(named-region 568 27 .interp)\n(named-region 596 36 .note.gnu.build-id)\n(named-region 632 32 .note.ABI-tag)\n(named-region 664 28 .gnu.hash)\n(named-region 696 360 .dynsym)\n(named-region 1056 185 .dynstr)\n(named-region 1242 30 .gnu.version)\n(named-region 1272 48 .gnu.version_r)\n(named-region 1320 192 .rela.dyn)\n(named-region 1512 240 .rela.plt)\n(named-region 1752 24 .init)\n(named-region 1776 192 .plt)\n(named-region 1984 468 .text)\n(named-region 2452 20 .fini)\n(named-region 2472 4 .rodata)\n(named-region 2476 60 .eh_frame_hdr)\n(named-region 2536 180 .eh_frame)\n(named-region 68968 8 .init_array)\n(named-region 68976 8 .fini_array)\n(named-region 68984 496 .dynamic)\n(named-region 69480 152 .got)\n(named-region 69632 28 .data)\n(named-region 69664 16 .bss)\n(named-region 0 43 .comment)\n(named-region 0 2328 .symtab)\n(named-region 0 697 .strtab)\n(named-region 0 250 .shstrtab)\n(named-symbol 2228 call_weak_fn)\n(named-symbol 2256 deregister_tm_clones)\n(named-symbol 2304 register_tm_clones)\n(named-symbol 2368 __do_global_dtors_aux)\n(named-symbol 2448 frame_dummy)\n(named-symbol 0 strlen@GLIBC_2.17)\n(named-symbol 0 __libc_start_main@GLIBC_2.34)\n(named-symbol 0 __cxa_finalize@GLIBC_2.17)\n(named-symbol 0 __memcpy_chk@GLIBC_2.17)\n(named-symbol 2452 _fini)\n(named-symbol 0 malloc@GLIBC_2.17)\n(named-symbol 0 memset@GLIBC_2.17)\n(named-symbol 0 abort@GLIBC_2.17)\n(named-symbol 0 puts@GLIBC_2.17)\n(named-symbol 0 free@GLIBC_2.17)\n(named-symbol 2176 _start)\n(named-symbol 1984 main)\n(named-symbol 1752 _init)\n(named-symbol 0 strlen)\n(named-symbol 0 __libc_start_main)\n(named-symbol 0 __cxa_finalize)\n(named-symbol 0 __memcpy_chk)\n(named-symbol 0 malloc)\n(named-symbol 0 memset)\n(named-symbol 0 abort)\n(named-symbol 0 puts)\n(named-symbol 0 free)\n(require libc.so.6)\n(section 568 27)\n(section 596 36)\n(section 632 32)\n(section 664 28)\n(section 696 360)\n(section 1056 185)\n(section 1242 30)\n(section 1272 48)\n(section 1320 192)\n(section 1512 240)\n(section 1752 24)\n(section 1776 192)\n(section 1984 468)\n(section 2452 20)\n(section 2472 4)\n(section 2476 60)\n(section 2536 180)\n(section 68968 8)\n(section 68976 8)\n(section 68984 496)\n(section 69480 152)\n(section 69632 28)\n(section 69664 16)\n(section 0 43)\n(section 0 2328)\n(section 0 697)\n(section 0 250)\n(segment 0 2716 true false true)\n(segment 68968 712 true true false)\n(subarch v8)\n(symbol-chunk 2228 20 2228)\n(symbol-chunk 2176 52 2176)\n(symbol-chunk 1984 144 1984)\n(symbol-value 2228 2228)\n(symbol-value 2256 2256)\n(symbol-value 2304 2304)\n(symbol-value 2368 2368)\n(symbol-value 2448 2448)\n(symbol-value 2452 2452)\n(symbol-value 2176 2176)\n(symbol-value 1984 1984)\n(symbol-value 1752 1752)\n(symbol-value 0 0)\n(system \"\")\n(vendor \"\")\n"), -Attr("abi-name","\"aarch64-linux-gnu-elf\"")]), -Sections([Section(".shstrtab", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x80\x08\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x18\x1d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x38\x00\x09\x00\x40\x00\x1c\x00\x1b\x00\x06\x00\x00\x00\x04\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x04\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x9c\x0a\x00\x00\x00\x00\x00\x00\x9c\x0a\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x01\x00\x00\x00\x06\x00\x00\x00\x68\x0d\x00\x00\x00\x00\x00\x00\x68\x0d"), -Section(".strtab", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x80\x08\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x18\x1d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x38\x00\x09\x00\x40\x00\x1c\x00\x1b\x00\x06\x00\x00\x00\x04\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x04\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x9c\x0a\x00\x00\x00\x00\x00\x00\x9c\x0a\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x01\x00\x00\x00\x06\x00\x00\x00\x68\x0d\x00\x00\x00\x00\x00\x00\x68\x0d\x01\x00\x00\x00\x00\x00\x68\x0d\x01\x00\x00\x00\x00\x00\xb4\x02\x00\x00\x00\x00\x00\x00\xc8\x02\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x02\x00\x00\x00\x06\x00\x00\x00\x78\x0d\x00\x00\x00\x00\x00\x00\x78\x0d\x01\x00\x00\x00\x00\x00\x78\x0d\x01\x00\x00\x00\x00\x00\xf0\x01\x00\x00\x00\x00\x00\x00\xf0\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x04\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x50\xe5\x74\x64\x04\x00\x00\x00\xac\x09\x00\x00\x00\x00\x00\x00\xac\x09\x00\x00\x00\x00\x00\x00\xac\x09\x00\x00\x00\x00\x00\x00\x3c\x00\x00\x00\x00\x00\x00\x00\x3c\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x51\xe5\x74\x64\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x52\xe5\x74\x64\x04\x00\x00\x00\x68\x0d\x00\x00\x00\x00\x00\x00\x68\x0d\x01\x00\x00\x00\x00\x00\x68\x0d\x01\x00\x00\x00\x00\x00\x98\x02\x00\x00\x00\x00\x00\x00\x98\x02\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x2f\x6c\x69\x62\x2f\x6c\x64\x2d\x6c\x69\x6e\x75\x78\x2d\x61\x61\x72\x63\x68\x36\x34\x2e\x73\x6f\x2e\x31\x00\x00\x04\x00\x00\x00\x14\x00\x00\x00\x03\x00\x00\x00\x47\x4e\x55\x00\xa9\x69\x98\x91\x28\x43\xc9\x10\xea\x2b\x4b\x68\xc9\xd6\x31\x79\x6d\xf3\xf0\x61\x04\x00\x00\x00\x10\x00\x00\x00\x01\x00\x00\x00\x47\x4e\x55\x00\x00\x00\x00\x00\x03\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x01\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".symtab", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x80\x08\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x18\x1d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x38\x00\x09\x00\x40\x00\x1c\x00\x1b\x00\x06\x00\x00\x00\x04\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x04\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x9c\x0a\x00\x00\x00\x00\x00\x00\x9c\x0a\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x01\x00\x00\x00\x06\x00\x00\x00\x68\x0d\x00\x00\x00\x00\x00\x00\x68\x0d\x01\x00\x00\x00\x00\x00\x68\x0d\x01\x00\x00\x00\x00\x00\xb4\x02\x00\x00\x00\x00\x00\x00\xc8\x02\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x02\x00\x00\x00\x06\x00\x00\x00\x78\x0d\x00\x00\x00\x00\x00\x00\x78\x0d\x01\x00\x00\x00\x00\x00\x78\x0d\x01\x00\x00\x00\x00\x00\xf0\x01\x00\x00\x00\x00\x00\x00\xf0\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x04\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x50\xe5\x74\x64\x04\x00\x00\x00\xac\x09\x00\x00\x00\x00\x00\x00\xac\x09\x00\x00\x00\x00\x00\x00\xac\x09\x00\x00\x00\x00\x00\x00\x3c\x00\x00\x00\x00\x00\x00\x00\x3c\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x51\xe5\x74\x64\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x52\xe5\x74\x64\x04\x00\x00\x00\x68\x0d\x00\x00\x00\x00\x00\x00\x68\x0d\x01\x00\x00\x00\x00\x00\x68\x0d\x01\x00\x00\x00\x00\x00\x98\x02\x00\x00\x00\x00\x00\x00\x98\x02\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x2f\x6c\x69\x62\x2f\x6c\x64\x2d\x6c\x69\x6e\x75\x78\x2d\x61\x61\x72\x63\x68\x36\x34\x2e\x73\x6f\x2e\x31\x00\x00\x04\x00\x00\x00\x14\x00\x00\x00\x03\x00\x00\x00\x47\x4e\x55\x00\xa9\x69\x98\x91\x28\x43\xc9\x10\xea\x2b\x4b\x68\xc9\xd6\x31\x79\x6d\xf3\xf0\x61\x04\x00\x00\x00\x10\x00\x00\x00\x01\x00\x00\x00\x47\x4e\x55\x00\x00\x00\x00\x00\x03\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x01\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x0b\x00\xd8\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x16\x00\x00\x10\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x3a\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x17\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x74\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x22\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x41\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x29\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x90\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4e\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x30\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x35\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x9f\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5f\x5f\x63\x78\x61\x5f\x66\x69\x6e\x61\x6c\x69\x7a\x65\x00\x6d\x61\x6c\x6c\x6f\x63\x00\x5f\x5f\x6c\x69\x62\x63\x5f\x73\x74\x61\x72\x74\x5f\x6d\x61\x69\x6e\x00\x6d\x65\x6d\x73\x65\x74\x00\x70\x75\x74\x73\x00\x66\x72\x65\x65\x00\x73\x74\x72\x6c\x65\x6e\x00\x5f\x5f\x6d\x65\x6d\x63\x70\x79\x5f\x63\x68\x6b\x00\x61\x62\x6f\x72\x74\x00\x6c\x69\x62\x63\x2e\x73\x6f\x2e\x36\x00\x47\x4c\x49\x42\x43\x5f\x32\x2e\x33\x34\x00\x47\x4c\x49\x42\x43\x5f\x32\x2e\x31\x37\x00\x5f\x49\x54\x4d\x5f\x64\x65\x72\x65\x67\x69\x73\x74\x65\x72\x54\x4d\x43\x6c\x6f\x6e\x65\x54\x61\x62\x6c\x65\x00\x5f\x5f\x67\x6d\x6f\x6e\x5f\x73\x74\x61\x72\x74\x5f\x5f\x00\x5f\x49\x54\x4d\x5f\x72\x65\x67\x69\x73\x74\x65\x72\x54\x4d\x43\x6c\x6f\x6e\x65\x54\x61\x62\x6c\x65\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x03\x00\x01\x00\x02\x00\x02\x00\x02\x00\x02\x00\x01\x00\x02\x00\x02\x00\x02\x00\x01\x00\x01\x00\x02\x00\x54\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\xb4\x91\x96\x06\x00\x00\x03\x00\x5e\x00\x00\x00\x10\x00\x00\x00\x97\x91\x96\x06\x00\x00\x02\x00\x69\x00\x00\x00\x00\x00\x00\x00\x68\x0d\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x90\x09\x00\x00\x00\x00\x00\x00\x70\x0d\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x40\x09\x00\x00\x00\x00\x00\x00\xf0\x0f\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\xc0\x07\x00\x00\x00\x00\x00\x00\x08\x10\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x08\x10\x01\x00\x00\x00\x00\x00\xd8\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe0\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe8\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x0a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xf8\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x0e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x80\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x88\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x90\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x98\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xa0\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xa8\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x09\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xb0\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x0a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xb8\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x0b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xc0\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x0c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xc8\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x0d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1f\x20\x03\xd5\xfd\x7b\xbf\xa9\xfd\x03\x00\x91\x74\x00\x00\x94\xfd\x7b\xc1\xa8\xc0\x03\x5f\xd6\xf0\x7b\xbf\xa9\x90\x00\x00\x90\x11\xbe\x47\xf9\x10\xe2\x3d\x91\x20\x02\x1f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x90\x00\x00\x90\x11\xc2\x47\xf9\x10\x02\x3e\x91\x20\x02\x1f\xd6\x90\x00\x00\x90\x11\xc6\x47\xf9\x10\x22\x3e\x91\x20\x02\x1f\xd6\x90\x00\x00\x90\x11\xca\x47\xf9\x10\x42\x3e\x91\x20\x02\x1f\xd6\x90\x00\x00\x90\x11\xce\x47\xf9\x10\x62\x3e\x91\x20\x02\x1f\xd6\x90\x00\x00\x90\x11\xd2\x47\xf9\x10\x82\x3e\x91\x20\x02\x1f\xd6\x90\x00\x00\x90\x11\xd6\x47\xf9\x10\xa2\x3e\x91\x20\x02\x1f\xd6\x90\x00\x00\x90\x11\xda\x47\xf9\x10\xc2\x3e\x91\x20\x02\x1f\xd6\x90\x00\x00\x90\x11\xde\x47\xf9\x10\xe2\x3e\x91\x20\x02\x1f\xd6\x90\x00\x00\x90\x11\xe2\x47\xf9\x10\x02\x3f\x91\x20\x02\x1f\xd6\x90\x00\x00\x90\x11\xe6\x47\xf9\x10\x22\x3f\x91\x20\x02\x1f\xd6\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xfd\x7b\xbd\xa9\x60\x01\x80\xd2\xfd\x03\x00\x91\xf3\x53\x01\xa9\x94\x00\x00\xb0\xf5\x13\x00\xf9\xde\xff\xff\x97\x95\x00\x00\xb0\xb5\x42\x00\x91\xf3\x03\x00\xaa\xe0\x03\x15\xaa\x93\x16\x00\xf9\xc8\xff\xff\x97\xe1\x03\x15\xaa\xe2\x03\x00\xaa\x63\x01\x80\xd2\xe0\x03\x13\xaa\xcf\xff\xff\x97\xe0\x03\x13\xaa\xe1\xff\xff\x97\x80\x16\x40\xf9\x1f\x10\x00\x39\x93\x16\x40\xf9\xe0\x03\x13\xaa\xbc\xff\xff\x97\x21\x00\x80\x52\xe2\x03\x00\xaa\xe0\x03\x13\xaa\xcc\xff\xff\x97\x80\x16\x40\xf9\xda\xff\xff\x97\x00\x00\x80\x52\xf3\x53\x41\xa9\xf5\x13\x40\xf9\xfd\x7b\xc3\xa8\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1d\x00\x80\xd2\x1e\x00\x80\xd2\xe5\x03\x00\xaa\xe1\x03\x40\xf9\xe2\x23\x00\x91\xe6\x03\x00\x91\x80\x00\x00\x90\x00\xf8\x47\xf9\x03\x00\x80\xd2\x04\x00\x80\xd2\x9d\xff\xff\x97\xb4\xff\xff\x97\x80\x00\x00\x90\x00\xf4\x47\xf9\x40\x00\x00\xb4\xac\xff\xff\x17\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x80\x00\x00\xb0\x00\x80\x00\x91\x81\x00\x00\xb0\x21\x80\x00\x91\x3f\x00\x00\xeb\xc0\x00\x00\x54\x81\x00\x00\x90\x21\xec\x47\xf9\x61\x00\x00\xb4\xf0\x03\x01\xaa\x00\x02\x1f\xd6\xc0\x03\x5f\xd6\x80\x00\x00\xb0\x00\x80\x00\x91\x81\x00\x00\xb0\x21\x80\x00\x91\x21\x00\x00\xcb\x22\xfc\x7f\xd3"), -Section(".comment", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x80\x08\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x18\x1d\x00"), -Section(".interp", 0x238, "\x2f\x6c\x69\x62\x2f\x6c\x64\x2d\x6c\x69\x6e\x75\x78\x2d\x61\x61\x72\x63\x68\x36\x34\x2e\x73\x6f\x2e\x31\x00"), -Section(".note.gnu.build-id", 0x254, "\x04\x00\x00\x00\x14\x00\x00\x00\x03\x00\x00\x00\x47\x4e\x55\x00\xa9\x69\x98\x91\x28\x43\xc9\x10\xea\x2b\x4b\x68\xc9\xd6\x31\x79\x6d\xf3\xf0\x61"), -Section(".note.ABI-tag", 0x278, "\x04\x00\x00\x00\x10\x00\x00\x00\x01\x00\x00\x00\x47\x4e\x55\x00\x00\x00\x00\x00\x03\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00"), -Section(".gnu.hash", 0x298, "\x01\x00\x00\x00\x01\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".dynsym", 0x2B8, "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x0b\x00\xd8\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x16\x00\x00\x10\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x3a\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x17\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x74\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x22\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x41\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x29\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x90\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4e\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x30\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x35\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x9f\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".dynstr", 0x420, "\x00\x5f\x5f\x63\x78\x61\x5f\x66\x69\x6e\x61\x6c\x69\x7a\x65\x00\x6d\x61\x6c\x6c\x6f\x63\x00\x5f\x5f\x6c\x69\x62\x63\x5f\x73\x74\x61\x72\x74\x5f\x6d\x61\x69\x6e\x00\x6d\x65\x6d\x73\x65\x74\x00\x70\x75\x74\x73\x00\x66\x72\x65\x65\x00\x73\x74\x72\x6c\x65\x6e\x00\x5f\x5f\x6d\x65\x6d\x63\x70\x79\x5f\x63\x68\x6b\x00\x61\x62\x6f\x72\x74\x00\x6c\x69\x62\x63\x2e\x73\x6f\x2e\x36\x00\x47\x4c\x49\x42\x43\x5f\x32\x2e\x33\x34\x00\x47\x4c\x49\x42\x43\x5f\x32\x2e\x31\x37\x00\x5f\x49\x54\x4d\x5f\x64\x65\x72\x65\x67\x69\x73\x74\x65\x72\x54\x4d\x43\x6c\x6f\x6e\x65\x54\x61\x62\x6c\x65\x00\x5f\x5f\x67\x6d\x6f\x6e\x5f\x73\x74\x61\x72\x74\x5f\x5f\x00\x5f\x49\x54\x4d\x5f\x72\x65\x67\x69\x73\x74\x65\x72\x54\x4d\x43\x6c\x6f\x6e\x65\x54\x61\x62\x6c\x65\x00"), -Section(".gnu.version", 0x4DA, "\x00\x00\x00\x00\x00\x00\x02\x00\x03\x00\x01\x00\x02\x00\x02\x00\x02\x00\x02\x00\x01\x00\x02\x00\x02\x00\x02\x00\x01\x00"), -Section(".gnu.version_r", 0x4F8, "\x01\x00\x02\x00\x54\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\xb4\x91\x96\x06\x00\x00\x03\x00\x5e\x00\x00\x00\x10\x00\x00\x00\x97\x91\x96\x06\x00\x00\x02\x00\x69\x00\x00\x00\x00\x00\x00\x00"), -Section(".rela.dyn", 0x528, "\x68\x0d\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x90\x09\x00\x00\x00\x00\x00\x00\x70\x0d\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x40\x09\x00\x00\x00\x00\x00\x00\xf0\x0f\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\xc0\x07\x00\x00\x00\x00\x00\x00\x08\x10\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x08\x10\x01\x00\x00\x00\x00\x00\xd8\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe0\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe8\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x0a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xf8\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x0e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".rela.plt", 0x5E8, "\x80\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x88\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x90\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x98\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xa0\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xa8\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x09\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xb0\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x0a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xb8\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x0b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xc0\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x0c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xc8\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x0d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".init", 0x6D8, "\x1f\x20\x03\xd5\xfd\x7b\xbf\xa9\xfd\x03\x00\x91\x74\x00\x00\x94\xfd\x7b\xc1\xa8\xc0\x03\x5f\xd6"), -Section(".plt", 0x6F0, "\xf0\x7b\xbf\xa9\x90\x00\x00\x90\x11\xbe\x47\xf9\x10\xe2\x3d\x91\x20\x02\x1f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x90\x00\x00\x90\x11\xc2\x47\xf9\x10\x02\x3e\x91\x20\x02\x1f\xd6\x90\x00\x00\x90\x11\xc6\x47\xf9\x10\x22\x3e\x91\x20\x02\x1f\xd6\x90\x00\x00\x90\x11\xca\x47\xf9\x10\x42\x3e\x91\x20\x02\x1f\xd6\x90\x00\x00\x90\x11\xce\x47\xf9\x10\x62\x3e\x91\x20\x02\x1f\xd6\x90\x00\x00\x90\x11\xd2\x47\xf9\x10\x82\x3e\x91\x20\x02\x1f\xd6\x90\x00\x00\x90\x11\xd6\x47\xf9\x10\xa2\x3e\x91\x20\x02\x1f\xd6\x90\x00\x00\x90\x11\xda\x47\xf9\x10\xc2\x3e\x91\x20\x02\x1f\xd6\x90\x00\x00\x90\x11\xde\x47\xf9\x10\xe2\x3e\x91\x20\x02\x1f\xd6\x90\x00\x00\x90\x11\xe2\x47\xf9\x10\x02\x3f\x91\x20\x02\x1f\xd6\x90\x00\x00\x90\x11\xe6\x47\xf9\x10\x22\x3f\x91\x20\x02\x1f\xd6"), -Section(".fini", 0x994, "\x1f\x20\x03\xd5\xfd\x7b\xbf\xa9\xfd\x03\x00\x91\xfd\x7b\xc1\xa8\xc0\x03\x5f\xd6"), -Section(".rodata", 0x9A8, "\x01\x00\x02\x00"), -Section(".eh_frame_hdr", 0x9AC, "\x01\x1b\x03\x3b\x38\x00\x00\x00\x06\x00\x00\x00\x14\xfe\xff\xff\xc4\x00\x00\x00\xd4\xfe\xff\xff\x50\x00\x00\x00\x24\xff\xff\xff\x64\x00\x00\x00\x54\xff\xff\xff\x78\x00\x00\x00\x94\xff\xff\xff\x8c\x00\x00\x00\xe4\xff\xff\xff\xb0\x00\x00\x00"), -Section(".eh_frame", 0x9E8, "\x10\x00\x00\x00\x00\x00\x00\x00\x01\x7a\x52\x00\x04\x78\x1e\x01\x1b\x0c\x1f\x00\x10\x00\x00\x00\x18\x00\x00\x00\x7c\xfe\xff\xff\x34\x00\x00\x00\x00\x41\x07\x1e\x10\x00\x00\x00\x2c\x00\x00\x00\xb8\xfe\xff\xff\x30\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x40\x00\x00\x00\xd4\xfe\xff\xff\x3c\x00\x00\x00\x00\x00\x00\x00\x20\x00\x00\x00\x54\x00\x00\x00\x00\xff\xff\xff\x48\x00\x00\x00\x00\x41\x0e\x20\x9d\x04\x9e\x03\x42\x93\x02\x4e\xde\xdd\xd3\x0e\x00\x00\x00\x00\x10\x00\x00\x00\x78\x00\x00\x00\x2c\xff\xff\xff\x04\x00\x00\x00\x00\x00\x00\x00\x24\x00\x00\x00\x8c\x00\x00\x00\x48\xfd\xff\xff\x90\x00\x00\x00\x00\x41\x0e\x30\x9d\x06\x9e\x05\x43\x93\x04\x94\x03\x42\x95\x02\x5d\xde\xdd\xd5\xd3\xd4\x0e\x00\x00\x00\x00\x00"), -Section(".fini_array", 0x10D70, "\x40\x09\x00\x00\x00\x00\x00\x00"), -Section(".dynamic", 0x10D78, "\x01\x00\x00\x00\x00\x00\x00\x00\x54\x00\x00\x00\x00\x00\x00\x00\x0c\x00\x00\x00\x00\x00\x00\x00\xd8\x06\x00\x00\x00\x00\x00\x00\x0d\x00\x00\x00\x00\x00\x00\x00\x94\x09\x00\x00\x00\x00\x00\x00\x19\x00\x00\x00\x00\x00\x00\x00\x68\x0d\x01\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x1a\x00\x00\x00\x00\x00\x00\x00\x70\x0d\x01\x00\x00\x00\x00\x00\x1c\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\xf5\xfe\xff\x6f\x00\x00\x00\x00\x98\x02\x00\x00\x00\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x20\x04\x00\x00\x00\x00\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\xb8\x02\x00\x00\x00\x00\x00\x00\x0a\x00\x00\x00\x00\x00\x00\x00\xb9\x00\x00\x00\x00\x00\x00\x00\x0b\x00\x00\x00\x00\x00\x00\x00\x18\x00\x00\x00\x00\x00\x00\x00\x15\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x68\x0f\x01\x00\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\xf0\x00\x00\x00\x00\x00\x00\x00\x14\x00\x00\x00\x00\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x17\x00\x00\x00\x00\x00\x00\x00\xe8\x05\x00\x00\x00\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x28\x05\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\xc0\x00\x00\x00\x00\x00\x00\x00\x09\x00\x00\x00\x00\x00\x00\x00\x18\x00\x00\x00\x00\x00\x00\x00\x1e\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\xfb\xff\xff\x6f\x00\x00\x00\x00\x01\x00\x00\x08\x00\x00\x00\x00\xfe\xff\xff\x6f\x00\x00\x00\x00\xf8\x04\x00\x00\x00\x00\x00\x00\xff\xff\xff\x6f\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\xf0\xff\xff\x6f\x00\x00\x00\x00\xda\x04\x00\x00\x00\x00\x00\x00\xf9\xff\xff\x6f\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".init_array", 0x10D68, "\x90\x09\x00\x00\x00\x00\x00\x00"), -Section(".got", 0x10F68, "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xf0\x06\x00\x00\x00\x00\x00\x00\xf0\x06\x00\x00\x00\x00\x00\x00\xf0\x06\x00\x00\x00\x00\x00\x00\xf0\x06\x00\x00\x00\x00\x00\x00\xf0\x06\x00\x00\x00\x00\x00\x00\xf0\x06\x00\x00\x00\x00\x00\x00\xf0\x06\x00\x00\x00\x00\x00\x00\xf0\x06\x00\x00\x00\x00\x00\x00\xf0\x06\x00\x00\x00\x00\x00\x00\xf0\x06\x00\x00\x00\x00\x00\x00\x78\x0d\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xc0\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".data", 0x11000, "\x00\x00\x00\x00\x00\x00\x00\x00\x08\x10\x01\x00\x00\x00\x00\x00\x75\x73\x65\x72\x3a\x70\x61\x73\x73\x00\x00\x07"), -Section(".text", 0x7C0, "\xfd\x7b\xbd\xa9\x60\x01\x80\xd2\xfd\x03\x00\x91\xf3\x53\x01\xa9\x94\x00\x00\xb0\xf5\x13\x00\xf9\xde\xff\xff\x97\x95\x00\x00\xb0\xb5\x42\x00\x91\xf3\x03\x00\xaa\xe0\x03\x15\xaa\x93\x16\x00\xf9\xc8\xff\xff\x97\xe1\x03\x15\xaa\xe2\x03\x00\xaa\x63\x01\x80\xd2\xe0\x03\x13\xaa\xcf\xff\xff\x97\xe0\x03\x13\xaa\xe1\xff\xff\x97\x80\x16\x40\xf9\x1f\x10\x00\x39\x93\x16\x40\xf9\xe0\x03\x13\xaa\xbc\xff\xff\x97\x21\x00\x80\x52\xe2\x03\x00\xaa\xe0\x03\x13\xaa\xcc\xff\xff\x97\x80\x16\x40\xf9\xda\xff\xff\x97\x00\x00\x80\x52\xf3\x53\x41\xa9\xf5\x13\x40\xf9\xfd\x7b\xc3\xa8\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1d\x00\x80\xd2\x1e\x00\x80\xd2\xe5\x03\x00\xaa\xe1\x03\x40\xf9\xe2\x23\x00\x91\xe6\x03\x00\x91\x80\x00\x00\x90\x00\xf8\x47\xf9\x03\x00\x80\xd2\x04\x00\x80\xd2\x9d\xff\xff\x97\xb4\xff\xff\x97\x80\x00\x00\x90\x00\xf4\x47\xf9\x40\x00\x00\xb4\xac\xff\xff\x17\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x80\x00\x00\xb0\x00\x80\x00\x91\x81\x00\x00\xb0\x21\x80\x00\x91\x3f\x00\x00\xeb\xc0\x00\x00\x54\x81\x00\x00\x90\x21\xec\x47\xf9\x61\x00\x00\xb4\xf0\x03\x01\xaa\x00\x02\x1f\xd6\xc0\x03\x5f\xd6\x80\x00\x00\xb0\x00\x80\x00\x91\x81\x00\x00\xb0\x21\x80\x00\x91\x21\x00\x00\xcb\x22\xfc\x7f\xd3\x41\x0c\x81\x8b\x21\xfc\x41\x93\xc1\x00\x00\xb4\x82\x00\x00\x90\x42\xfc\x47\xf9\x62\x00\x00\xb4\xf0\x03\x02\xaa\x00\x02\x1f\xd6\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\xfd\x7b\xbe\xa9\xfd\x03\x00\x91\xf3\x0b\x00\xf9\x93\x00\x00\xb0\x60\x82\x40\x39\x40\x01\x00\x35\x80\x00\x00\x90\x00\xf0\x47\xf9\x80\x00\x00\xb4\x80\x00\x00\xb0\x00\x04\x40\xf9\x71\xff\xff\x97\xd8\xff\xff\x97\x20\x00\x80\x52\x60\x82\x00\x39\xf3\x0b\x40\xf9\xfd\x7b\xc2\xa8\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\xdc\xff\xff\x17")]), -Memmap([Annotation(Region(0x0,0xA9B), Attr("segment","02 0 2716")), -Annotation(Region(0x7C0,0x84F), Attr("symbol","\"main\"")), -Annotation(Region(0x0,0xF9), Attr("section","\".shstrtab\"")), -Annotation(Region(0x0,0x2B8), Attr("section","\".strtab\"")), -Annotation(Region(0x0,0x917), Attr("section","\".symtab\"")), -Annotation(Region(0x0,0x2A), Attr("section","\".comment\"")), -Annotation(Region(0x238,0x252), Attr("section","\".interp\"")), -Annotation(Region(0x254,0x277), Attr("section","\".note.gnu.build-id\"")), -Annotation(Region(0x278,0x297), Attr("section","\".note.ABI-tag\"")), -Annotation(Region(0x298,0x2B3), Attr("section","\".gnu.hash\"")), -Annotation(Region(0x2B8,0x41F), Attr("section","\".dynsym\"")), -Annotation(Region(0x420,0x4D8), Attr("section","\".dynstr\"")), -Annotation(Region(0x4DA,0x4F7), Attr("section","\".gnu.version\"")), -Annotation(Region(0x4F8,0x527), Attr("section","\".gnu.version_r\"")), -Annotation(Region(0x528,0x5E7), Attr("section","\".rela.dyn\"")), -Annotation(Region(0x5E8,0x6D7), Attr("section","\".rela.plt\"")), -Annotation(Region(0x6D8,0x6EF), Attr("section","\".init\"")), -Annotation(Region(0x6F0,0x7AF), Attr("section","\".plt\"")), -Annotation(Region(0x6D8,0x6EF), Attr("code-region","()")), -Annotation(Region(0x6F0,0x7AF), Attr("code-region","()")), -Annotation(Region(0x7C0,0x84F), Attr("symbol-info","main 0x7C0 144")), -Annotation(Region(0x880,0x8B3), Attr("symbol","\"_start\"")), -Annotation(Region(0x880,0x8B3), Attr("symbol-info","_start 0x880 52")), -Annotation(Region(0x8B4,0x8C7), Attr("symbol","\"call_weak_fn\"")), -Annotation(Region(0x8B4,0x8C7), Attr("symbol-info","call_weak_fn 0x8B4 20")), -Annotation(Region(0x994,0x9A7), Attr("section","\".fini\"")), -Annotation(Region(0x9A8,0x9AB), Attr("section","\".rodata\"")), -Annotation(Region(0x9AC,0x9E7), Attr("section","\".eh_frame_hdr\"")), -Annotation(Region(0x9E8,0xA9B), Attr("section","\".eh_frame\"")), -Annotation(Region(0x10D68,0x1101B), Attr("segment","03 0x10D68 712")), -Annotation(Region(0x10D70,0x10D77), Attr("section","\".fini_array\"")), -Annotation(Region(0x10D78,0x10F67), Attr("section","\".dynamic\"")), -Annotation(Region(0x10D68,0x10D6F), Attr("section","\".init_array\"")), -Annotation(Region(0x10F68,0x10FFF), Attr("section","\".got\"")), -Annotation(Region(0x11000,0x1101B), Attr("section","\".data\"")), -Annotation(Region(0x7C0,0x993), Attr("section","\".text\"")), -Annotation(Region(0x7C0,0x993), Attr("code-region","()")), -Annotation(Region(0x994,0x9A7), Attr("code-region","()"))]), -Program(Tid(2_096, "%00000830"), Attrs([]), - Subs([Sub(Tid(2_028, "@__cxa_finalize"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x730"), -Attr("stub","()")]), "__cxa_finalize", Args([Arg(Tid(2_097, "%00000831"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("__cxa_finalize_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(1_232, "@__cxa_finalize"), - Attrs([Attr("address","0x730")]), Phis([]), -Defs([Def(Tid(1_598, "%0000063e"), Attrs([Attr("address","0x730"), -Attr("insn","adrp x16, #65536")]), Var("R16",Imm(64)), Int(65536,64)), -Def(Tid(1_605, "%00000645"), Attrs([Attr("address","0x734"), -Attr("insn","ldr x17, [x16, #0xf90]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(3984,64)),LittleEndian(),64)), -Def(Tid(1_611, "%0000064b"), Attrs([Attr("address","0x738"), -Attr("insn","add x16, x16, #0xf90")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(3984,64)))]), Jmps([Call(Tid(1_616, "%00000650"), - Attrs([Attr("address","0x73C"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), -Sub(Tid(2_029, "@__do_global_dtors_aux"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x940")]), - "__do_global_dtors_aux", Args([Arg(Tid(2_098, "%00000832"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("__do_global_dtors_aux_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(1_085, "@__do_global_dtors_aux"), - Attrs([Attr("address","0x940")]), Phis([]), -Defs([Def(Tid(1_089, "%00000441"), Attrs([Attr("address","0x940"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("#6",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(18446744073709551584,64))), -Def(Tid(1_095, "%00000447"), Attrs([Attr("address","0x940"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("#6",Imm(64)),Var("R29",Imm(64)),LittleEndian(),64)), -Def(Tid(1_101, "%0000044d"), Attrs([Attr("address","0x940"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("#6",Imm(64)),Int(8,64)),Var("R30",Imm(64)),LittleEndian(),64)), -Def(Tid(1_105, "%00000451"), Attrs([Attr("address","0x940"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("R31",Imm(64)), -Var("#6",Imm(64))), Def(Tid(1_111, "%00000457"), - Attrs([Attr("address","0x944"), Attr("insn","mov x29, sp")]), - Var("R29",Imm(64)), Var("R31",Imm(64))), Def(Tid(1_119, "%0000045f"), - Attrs([Attr("address","0x948"), Attr("insn","str x19, [sp, #0x10]")]), - Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(16,64)),Var("R19",Imm(64)),LittleEndian(),64)), -Def(Tid(1_124, "%00000464"), Attrs([Attr("address","0x94C"), -Attr("insn","adrp x19, #69632")]), Var("R19",Imm(64)), Int(69632,64)), -Def(Tid(1_131, "%0000046b"), Attrs([Attr("address","0x950"), -Attr("insn","ldrb w0, [x19, #0x20]")]), Var("R0",Imm(64)), -UNSIGNED(64,Load(Var("mem",Mem(64,8)),PLUS(Var("R19",Imm(64)),Int(32,64)),LittleEndian(),8)))]), -Jmps([Goto(Tid(1_138, "%00000472"), Attrs([Attr("address","0x954"), -Attr("insn","cbnz w0, #0x28")]), - NEQ(Extract(31,0,Var("R0",Imm(64))),Int(0,32)), -Direct(Tid(1_136, "%00000470"))), Goto(Tid(2_086, "%00000826"), Attrs([]), - Int(1,1), Direct(Tid(1_177, "%00000499")))])), Blk(Tid(1_177, "%00000499"), - Attrs([Attr("address","0x958")]), Phis([]), -Defs([Def(Tid(1_180, "%0000049c"), Attrs([Attr("address","0x958"), -Attr("insn","adrp x0, #65536")]), Var("R0",Imm(64)), Int(65536,64)), -Def(Tid(1_187, "%000004a3"), Attrs([Attr("address","0x95C"), -Attr("insn","ldr x0, [x0, #0xfe0]")]), Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(4064,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(1_193, "%000004a9"), Attrs([Attr("address","0x960"), -Attr("insn","cbz x0, #0x10")]), EQ(Var("R0",Imm(64)),Int(0,64)), -Direct(Tid(1_191, "%000004a7"))), Goto(Tid(2_087, "%00000827"), Attrs([]), - Int(1,1), Direct(Tid(1_216, "%000004c0")))])), Blk(Tid(1_216, "%000004c0"), - Attrs([Attr("address","0x964")]), Phis([]), -Defs([Def(Tid(1_219, "%000004c3"), Attrs([Attr("address","0x964"), -Attr("insn","adrp x0, #69632")]), Var("R0",Imm(64)), Int(69632,64)), -Def(Tid(1_226, "%000004ca"), Attrs([Attr("address","0x968"), -Attr("insn","ldr x0, [x0, #0x8]")]), Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(1_231, "%000004cf"), Attrs([Attr("address","0x96C"), -Attr("insn","bl #-0x23c")]), Var("R30",Imm(64)), Int(2416,64))]), -Jmps([Call(Tid(1_234, "%000004d2"), Attrs([Attr("address","0x96C"), -Attr("insn","bl #-0x23c")]), Int(1,1), -(Direct(Tid(2_028, "@__cxa_finalize")),Direct(Tid(1_191, "%000004a7"))))])), -Blk(Tid(1_191, "%000004a7"), Attrs([Attr("address","0x970")]), Phis([]), -Defs([Def(Tid(1_199, "%000004af"), Attrs([Attr("address","0x970"), -Attr("insn","bl #-0xa0")]), Var("R30",Imm(64)), Int(2420,64))]), -Jmps([Call(Tid(1_201, "%000004b1"), Attrs([Attr("address","0x970"), -Attr("insn","bl #-0xa0")]), Int(1,1), -(Direct(Tid(2_043, "@deregister_tm_clones")),Direct(Tid(1_203, "%000004b3"))))])), -Blk(Tid(1_203, "%000004b3"), Attrs([Attr("address","0x974")]), Phis([]), -Defs([Def(Tid(1_206, "%000004b6"), Attrs([Attr("address","0x974"), -Attr("insn","mov w0, #0x1")]), Var("R0",Imm(64)), Int(1,64)), -Def(Tid(1_214, "%000004be"), Attrs([Attr("address","0x978"), -Attr("insn","strb w0, [x19, #0x20]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R19",Imm(64)),Int(32,64)),Extract(7,0,Var("R0",Imm(64))),LittleEndian(),8))]), -Jmps([Goto(Tid(2_088, "%00000828"), Attrs([]), Int(1,1), -Direct(Tid(1_136, "%00000470")))])), Blk(Tid(1_136, "%00000470"), - Attrs([Attr("address","0x97C")]), Phis([]), -Defs([Def(Tid(1_146, "%0000047a"), Attrs([Attr("address","0x97C"), -Attr("insn","ldr x19, [sp, #0x10]")]), Var("R19",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(16,64)),LittleEndian(),64)), -Def(Tid(1_153, "%00000481"), Attrs([Attr("address","0x980"), -Attr("insn","ldp x29, x30, [sp], #0x20")]), Var("R29",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(1_158, "%00000486"), Attrs([Attr("address","0x980"), -Attr("insn","ldp x29, x30, [sp], #0x20")]), Var("R30",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(1_162, "%0000048a"), Attrs([Attr("address","0x980"), -Attr("insn","ldp x29, x30, [sp], #0x20")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(32,64)))]), Jmps([Call(Tid(1_167, "%0000048f"), - Attrs([Attr("address","0x984"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), Sub(Tid(2_033, "@__libc_start_main"), - Attrs([Attr("c.proto","signed (*)(signed (*)(signed , char** , char** );* main, signed , char** , \nvoid* auxv)"), -Attr("address","0x720"), Attr("stub","()")]), "__libc_start_main", - Args([Arg(Tid(2_099, "%00000833"), - Attrs([Attr("c.layout","**[ : 64]"), -Attr("c.data","Top:u64 ptr ptr"), -Attr("c.type","signed (*)(signed , char** , char** );*")]), - Var("__libc_start_main_main",Imm(64)), Var("R0",Imm(64)), In()), -Arg(Tid(2_100, "%00000834"), Attrs([Attr("c.layout","[signed : 32]"), -Attr("c.data","Top:u32"), Attr("c.type","signed")]), - Var("__libc_start_main_arg2",Imm(32)), LOW(32,Var("R1",Imm(64))), In()), -Arg(Tid(2_101, "%00000835"), Attrs([Attr("c.layout","**[char : 8]"), -Attr("c.data","Top:u8 ptr ptr"), Attr("c.type","char**")]), - Var("__libc_start_main_arg3",Imm(64)), Var("R2",Imm(64)), Both()), -Arg(Tid(2_102, "%00000836"), Attrs([Attr("c.layout","*[ : 8]"), -Attr("c.data","{} ptr"), Attr("c.type","void*")]), - Var("__libc_start_main_auxv",Imm(64)), Var("R3",Imm(64)), Both()), -Arg(Tid(2_103, "%00000837"), Attrs([Attr("c.layout","[signed : 32]"), -Attr("c.data","Top:u32"), Attr("c.type","signed")]), - Var("__libc_start_main_result",Imm(32)), LOW(32,Var("R0",Imm(64))), -Out())]), Blks([Blk(Tid(918, "@__libc_start_main"), - Attrs([Attr("address","0x720")]), Phis([]), -Defs([Def(Tid(1_576, "%00000628"), Attrs([Attr("address","0x720"), -Attr("insn","adrp x16, #65536")]), Var("R16",Imm(64)), Int(65536,64)), -Def(Tid(1_583, "%0000062f"), Attrs([Attr("address","0x724"), -Attr("insn","ldr x17, [x16, #0xf88]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(3976,64)),LittleEndian(),64)), -Def(Tid(1_589, "%00000635"), Attrs([Attr("address","0x728"), -Attr("insn","add x16, x16, #0xf88")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(3976,64)))]), Jmps([Call(Tid(1_594, "%0000063a"), - Attrs([Attr("address","0x72C"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), Sub(Tid(2_034, "@__memcpy_chk"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x740"), -Attr("stub","()")]), "__memcpy_chk", Args([Arg(Tid(2_104, "%00000838"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("__memcpy_chk_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(690, "@__memcpy_chk"), - Attrs([Attr("address","0x740")]), Phis([]), -Defs([Def(Tid(1_620, "%00000654"), Attrs([Attr("address","0x740"), -Attr("insn","adrp x16, #65536")]), Var("R16",Imm(64)), Int(65536,64)), -Def(Tid(1_627, "%0000065b"), Attrs([Attr("address","0x744"), -Attr("insn","ldr x17, [x16, #0xf98]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(3992,64)),LittleEndian(),64)), -Def(Tid(1_633, "%00000661"), Attrs([Attr("address","0x748"), -Attr("insn","add x16, x16, #0xf98")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(3992,64)))]), Jmps([Call(Tid(1_638, "%00000666"), - Attrs([Attr("address","0x74C"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), Sub(Tid(2_035, "@_fini"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x994")]), - "_fini", Args([Arg(Tid(2_105, "%00000839"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("_fini_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(31, "@_fini"), - Attrs([Attr("address","0x994")]), Phis([]), Defs([Def(Tid(37, "%00000025"), - Attrs([Attr("address","0x998"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("#0",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(18446744073709551600,64))), -Def(Tid(43, "%0000002b"), Attrs([Attr("address","0x998"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("#0",Imm(64)),Var("R29",Imm(64)),LittleEndian(),64)), -Def(Tid(49, "%00000031"), Attrs([Attr("address","0x998"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("#0",Imm(64)),Int(8,64)),Var("R30",Imm(64)),LittleEndian(),64)), -Def(Tid(53, "%00000035"), Attrs([Attr("address","0x998"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("R31",Imm(64)), -Var("#0",Imm(64))), Def(Tid(59, "%0000003b"), Attrs([Attr("address","0x99C"), -Attr("insn","mov x29, sp")]), Var("R29",Imm(64)), Var("R31",Imm(64))), -Def(Tid(66, "%00000042"), Attrs([Attr("address","0x9A0"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R29",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(71, "%00000047"), Attrs([Attr("address","0x9A0"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R30",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(75, "%0000004b"), Attrs([Attr("address","0x9A0"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(16,64)))]), Jmps([Call(Tid(80, "%00000050"), - Attrs([Attr("address","0x9A4"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), Sub(Tid(2_036, "@_init"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x6D8")]), - "_init", Args([Arg(Tid(2_106, "%0000083a"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("_init_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(1_798, "@_init"), - Attrs([Attr("address","0x6D8")]), Phis([]), -Defs([Def(Tid(1_804, "%0000070c"), Attrs([Attr("address","0x6DC"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("#8",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(18446744073709551600,64))), -Def(Tid(1_810, "%00000712"), Attrs([Attr("address","0x6DC"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("#8",Imm(64)),Var("R29",Imm(64)),LittleEndian(),64)), -Def(Tid(1_816, "%00000718"), Attrs([Attr("address","0x6DC"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("#8",Imm(64)),Int(8,64)),Var("R30",Imm(64)),LittleEndian(),64)), -Def(Tid(1_820, "%0000071c"), Attrs([Attr("address","0x6DC"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("R31",Imm(64)), -Var("#8",Imm(64))), Def(Tid(1_826, "%00000722"), - Attrs([Attr("address","0x6E0"), Attr("insn","mov x29, sp")]), - Var("R29",Imm(64)), Var("R31",Imm(64))), Def(Tid(1_831, "%00000727"), - Attrs([Attr("address","0x6E4"), Attr("insn","bl #0x1d0")]), - Var("R30",Imm(64)), Int(1768,64))]), Jmps([Call(Tid(1_833, "%00000729"), - Attrs([Attr("address","0x6E4"), Attr("insn","bl #0x1d0")]), Int(1,1), -(Direct(Tid(2_041, "@call_weak_fn")),Direct(Tid(1_835, "%0000072b"))))])), -Blk(Tid(1_835, "%0000072b"), Attrs([Attr("address","0x6E8")]), Phis([]), -Defs([Def(Tid(1_840, "%00000730"), Attrs([Attr("address","0x6E8"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R29",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(1_845, "%00000735"), Attrs([Attr("address","0x6E8"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R30",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(1_849, "%00000739"), Attrs([Attr("address","0x6E8"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(16,64)))]), Jmps([Call(Tid(1_854, "%0000073e"), - Attrs([Attr("address","0x6EC"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), Sub(Tid(2_037, "@_start"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x880"), -Attr("entry-point","()")]), "_start", Args([Arg(Tid(2_107, "%0000083b"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("_start_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(855, "@_start"), - Attrs([Attr("address","0x880")]), Phis([]), Defs([Def(Tid(860, "%0000035c"), - Attrs([Attr("address","0x884"), Attr("insn","mov x29, #0x0")]), - Var("R29",Imm(64)), Int(0,64)), Def(Tid(865, "%00000361"), - Attrs([Attr("address","0x888"), Attr("insn","mov x30, #0x0")]), - Var("R30",Imm(64)), Int(0,64)), Def(Tid(871, "%00000367"), - Attrs([Attr("address","0x88C"), Attr("insn","mov x5, x0")]), - Var("R5",Imm(64)), Var("R0",Imm(64))), Def(Tid(878, "%0000036e"), - Attrs([Attr("address","0x890"), Attr("insn","ldr x1, [sp]")]), - Var("R1",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(884, "%00000374"), Attrs([Attr("address","0x894"), -Attr("insn","add x2, sp, #0x8")]), Var("R2",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(8,64))), Def(Tid(890, "%0000037a"), - Attrs([Attr("address","0x898"), Attr("insn","mov x6, sp")]), - Var("R6",Imm(64)), Var("R31",Imm(64))), Def(Tid(895, "%0000037f"), - Attrs([Attr("address","0x89C"), Attr("insn","adrp x0, #65536")]), - Var("R0",Imm(64)), Int(65536,64)), Def(Tid(902, "%00000386"), - Attrs([Attr("address","0x8A0"), Attr("insn","ldr x0, [x0, #0xff0]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(4080,64)),LittleEndian(),64)), -Def(Tid(907, "%0000038b"), Attrs([Attr("address","0x8A4"), -Attr("insn","mov x3, #0x0")]), Var("R3",Imm(64)), Int(0,64)), -Def(Tid(912, "%00000390"), Attrs([Attr("address","0x8A8"), -Attr("insn","mov x4, #0x0")]), Var("R4",Imm(64)), Int(0,64)), -Def(Tid(917, "%00000395"), Attrs([Attr("address","0x8AC"), -Attr("insn","bl #-0x18c")]), Var("R30",Imm(64)), Int(2224,64))]), -Jmps([Call(Tid(920, "%00000398"), Attrs([Attr("address","0x8AC"), -Attr("insn","bl #-0x18c")]), Int(1,1), -(Direct(Tid(2_033, "@__libc_start_main")),Direct(Tid(922, "%0000039a"))))])), -Blk(Tid(922, "%0000039a"), Attrs([Attr("address","0x8B0")]), Phis([]), -Defs([Def(Tid(925, "%0000039d"), Attrs([Attr("address","0x8B0"), -Attr("insn","bl #-0x130")]), Var("R30",Imm(64)), Int(2228,64))]), -Jmps([Call(Tid(928, "%000003a0"), Attrs([Attr("address","0x8B0"), -Attr("insn","bl #-0x130")]), Int(1,1), -(Direct(Tid(2_040, "@abort")),Direct(Tid(2_089, "%00000829"))))])), -Blk(Tid(2_089, "%00000829"), Attrs([]), Phis([]), Defs([]), -Jmps([Call(Tid(2_090, "%0000082a"), Attrs([]), Int(1,1), -(Direct(Tid(2_041, "@call_weak_fn")),))]))])), Sub(Tid(2_040, "@abort"), - Attrs([Attr("noreturn","()"), Attr("c.proto","void (*)(void)"), -Attr("address","0x780"), Attr("stub","()")]), "abort", Args([]), -Blks([Blk(Tid(926, "@abort"), Attrs([Attr("address","0x780")]), Phis([]), -Defs([Def(Tid(1_708, "%000006ac"), Attrs([Attr("address","0x780"), -Attr("insn","adrp x16, #65536")]), Var("R16",Imm(64)), Int(65536,64)), -Def(Tid(1_715, "%000006b3"), Attrs([Attr("address","0x784"), -Attr("insn","ldr x17, [x16, #0xfb8]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(4024,64)),LittleEndian(),64)), -Def(Tid(1_721, "%000006b9"), Attrs([Attr("address","0x788"), -Attr("insn","add x16, x16, #0xfb8")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(4024,64)))]), Jmps([Call(Tid(1_726, "%000006be"), - Attrs([Attr("address","0x78C"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), Sub(Tid(2_041, "@call_weak_fn"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x8B4")]), - "call_weak_fn", Args([Arg(Tid(2_108, "%0000083c"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("call_weak_fn_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(930, "@call_weak_fn"), - Attrs([Attr("address","0x8B4")]), Phis([]), Defs([Def(Tid(933, "%000003a5"), - Attrs([Attr("address","0x8B4"), Attr("insn","adrp x0, #65536")]), - Var("R0",Imm(64)), Int(65536,64)), Def(Tid(940, "%000003ac"), - Attrs([Attr("address","0x8B8"), Attr("insn","ldr x0, [x0, #0xfe8]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(4072,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(946, "%000003b2"), Attrs([Attr("address","0x8BC"), -Attr("insn","cbz x0, #0x8")]), EQ(Var("R0",Imm(64)),Int(0,64)), -Direct(Tid(944, "%000003b0"))), Goto(Tid(2_091, "%0000082b"), Attrs([]), - Int(1,1), Direct(Tid(1_296, "%00000510")))])), Blk(Tid(944, "%000003b0"), - Attrs([Attr("address","0x8C4")]), Phis([]), Defs([]), -Jmps([Call(Tid(952, "%000003b8"), Attrs([Attr("address","0x8C4"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))])), -Blk(Tid(1_296, "%00000510"), Attrs([Attr("address","0x8C0")]), Phis([]), -Defs([]), Jmps([Goto(Tid(1_299, "%00000513"), Attrs([Attr("address","0x8C0"), -Attr("insn","b #-0x150")]), Int(1,1), -Direct(Tid(1_297, "@__gmon_start__")))])), Blk(Tid(1_297, "@__gmon_start__"), - Attrs([Attr("address","0x770")]), Phis([]), -Defs([Def(Tid(1_686, "%00000696"), Attrs([Attr("address","0x770"), -Attr("insn","adrp x16, #65536")]), Var("R16",Imm(64)), Int(65536,64)), -Def(Tid(1_693, "%0000069d"), Attrs([Attr("address","0x774"), -Attr("insn","ldr x17, [x16, #0xfb0]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(4016,64)),LittleEndian(),64)), -Def(Tid(1_699, "%000006a3"), Attrs([Attr("address","0x778"), -Attr("insn","add x16, x16, #0xfb0")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(4016,64)))]), Jmps([Call(Tid(1_704, "%000006a8"), - Attrs([Attr("address","0x77C"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), -Sub(Tid(2_043, "@deregister_tm_clones"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x8D0")]), - "deregister_tm_clones", Args([Arg(Tid(2_109, "%0000083d"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("deregister_tm_clones_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(958, "@deregister_tm_clones"), - Attrs([Attr("address","0x8D0")]), Phis([]), Defs([Def(Tid(961, "%000003c1"), - Attrs([Attr("address","0x8D0"), Attr("insn","adrp x0, #69632")]), - Var("R0",Imm(64)), Int(69632,64)), Def(Tid(967, "%000003c7"), - Attrs([Attr("address","0x8D4"), Attr("insn","add x0, x0, #0x20")]), - Var("R0",Imm(64)), PLUS(Var("R0",Imm(64)),Int(32,64))), -Def(Tid(972, "%000003cc"), Attrs([Attr("address","0x8D8"), -Attr("insn","adrp x1, #69632")]), Var("R1",Imm(64)), Int(69632,64)), -Def(Tid(978, "%000003d2"), Attrs([Attr("address","0x8DC"), -Attr("insn","add x1, x1, #0x20")]), Var("R1",Imm(64)), -PLUS(Var("R1",Imm(64)),Int(32,64))), Def(Tid(984, "%000003d8"), - Attrs([Attr("address","0x8E0"), Attr("insn","cmp x1, x0")]), - Var("#4",Imm(64)), NOT(Var("R0",Imm(64)))), Def(Tid(989, "%000003dd"), - Attrs([Attr("address","0x8E0"), Attr("insn","cmp x1, x0")]), - Var("#5",Imm(64)), PLUS(Var("R1",Imm(64)),NOT(Var("R0",Imm(64))))), -Def(Tid(995, "%000003e3"), Attrs([Attr("address","0x8E0"), -Attr("insn","cmp x1, x0")]), Var("VF",Imm(1)), -NEQ(SIGNED(65,PLUS(Var("#5",Imm(64)),Int(1,64))),PLUS(PLUS(SIGNED(65,Var("R1",Imm(64))),SIGNED(65,Var("#4",Imm(64)))),Int(1,65)))), -Def(Tid(1_001, "%000003e9"), Attrs([Attr("address","0x8E0"), -Attr("insn","cmp x1, x0")]), Var("CF",Imm(1)), -NEQ(UNSIGNED(65,PLUS(Var("#5",Imm(64)),Int(1,64))),PLUS(PLUS(UNSIGNED(65,Var("R1",Imm(64))),UNSIGNED(65,Var("#4",Imm(64)))),Int(1,65)))), -Def(Tid(1_005, "%000003ed"), Attrs([Attr("address","0x8E0"), -Attr("insn","cmp x1, x0")]), Var("ZF",Imm(1)), -EQ(PLUS(Var("#5",Imm(64)),Int(1,64)),Int(0,64))), -Def(Tid(1_009, "%000003f1"), Attrs([Attr("address","0x8E0"), -Attr("insn","cmp x1, x0")]), Var("NF",Imm(1)), -Extract(63,63,PLUS(Var("#5",Imm(64)),Int(1,64))))]), -Jmps([Goto(Tid(1_015, "%000003f7"), Attrs([Attr("address","0x8E4"), -Attr("insn","b.eq #0x18")]), EQ(Var("ZF",Imm(1)),Int(1,1)), -Direct(Tid(1_013, "%000003f5"))), Goto(Tid(2_092, "%0000082c"), Attrs([]), - Int(1,1), Direct(Tid(1_266, "%000004f2")))])), Blk(Tid(1_266, "%000004f2"), - Attrs([Attr("address","0x8E8")]), Phis([]), -Defs([Def(Tid(1_269, "%000004f5"), Attrs([Attr("address","0x8E8"), -Attr("insn","adrp x1, #65536")]), Var("R1",Imm(64)), Int(65536,64)), -Def(Tid(1_276, "%000004fc"), Attrs([Attr("address","0x8EC"), -Attr("insn","ldr x1, [x1, #0xfd8]")]), Var("R1",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R1",Imm(64)),Int(4056,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(1_281, "%00000501"), Attrs([Attr("address","0x8F0"), -Attr("insn","cbz x1, #0xc")]), EQ(Var("R1",Imm(64)),Int(0,64)), -Direct(Tid(1_013, "%000003f5"))), Goto(Tid(2_093, "%0000082d"), Attrs([]), - Int(1,1), Direct(Tid(1_285, "%00000505")))])), Blk(Tid(1_013, "%000003f5"), - Attrs([Attr("address","0x8FC")]), Phis([]), Defs([]), -Jmps([Call(Tid(1_021, "%000003fd"), Attrs([Attr("address","0x8FC"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))])), -Blk(Tid(1_285, "%00000505"), Attrs([Attr("address","0x8F4")]), Phis([]), -Defs([Def(Tid(1_289, "%00000509"), Attrs([Attr("address","0x8F4"), -Attr("insn","mov x16, x1")]), Var("R16",Imm(64)), Var("R1",Imm(64)))]), -Jmps([Call(Tid(1_294, "%0000050e"), Attrs([Attr("address","0x8F8"), -Attr("insn","br x16")]), Int(1,1), (Indirect(Var("R16",Imm(64))),))]))])), -Sub(Tid(2_046, "@frame_dummy"), Attrs([Attr("c.proto","signed (*)(void)"), -Attr("address","0x990")]), "frame_dummy", Args([Arg(Tid(2_110, "%0000083e"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("frame_dummy_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(1_173, "@frame_dummy"), - Attrs([Attr("address","0x990")]), Phis([]), Defs([]), -Jmps([Call(Tid(1_175, "%00000497"), Attrs([Attr("address","0x990"), -Attr("insn","b #-0x90")]), Int(1,1), -(Direct(Tid(2_052, "@register_tm_clones")),))]))])), Sub(Tid(2_047, "@free"), - Attrs([Attr("c.proto","void (*)(void* ptr)"), Attr("address","0x7A0"), -Attr("stub","()")]), "free", Args([Arg(Tid(2_111, "%0000083f"), - Attrs([Attr("c.layout","*[ : 8]"), Attr("c.data","{} ptr"), -Attr("c.type","void*")]), Var("free_ptr",Imm(64)), Var("R0",Imm(64)), -Both())]), Blks([Blk(Tid(778, "@free"), Attrs([Attr("address","0x7A0")]), - Phis([]), Defs([Def(Tid(1_752, "%000006d8"), Attrs([Attr("address","0x7A0"), -Attr("insn","adrp x16, #65536")]), Var("R16",Imm(64)), Int(65536,64)), -Def(Tid(1_759, "%000006df"), Attrs([Attr("address","0x7A4"), -Attr("insn","ldr x17, [x16, #0xfc8]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(4040,64)),LittleEndian(),64)), -Def(Tid(1_765, "%000006e5"), Attrs([Attr("address","0x7A8"), -Attr("insn","add x16, x16, #0xfc8")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(4040,64)))]), Jmps([Call(Tid(1_770, "%000006ea"), - Attrs([Attr("address","0x7AC"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), Sub(Tid(2_048, "@main"), - Attrs([Attr("c.proto","signed (*)(signed argc, const char** argv)"), -Attr("address","0x7C0")]), "main", Args([Arg(Tid(2_112, "%00000840"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("main_argc",Imm(32)), -LOW(32,Var("R0",Imm(64))), In()), Arg(Tid(2_113, "%00000841"), - Attrs([Attr("c.layout","**[char : 8]"), Attr("c.data","Top:u8 ptr ptr"), -Attr("c.type"," const char**")]), Var("main_argv",Imm(64)), -Var("R1",Imm(64)), Both()), Arg(Tid(2_114, "%00000842"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("main_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(552, "@main"), - Attrs([Attr("address","0x7C0")]), Phis([]), Defs([Def(Tid(556, "%0000022c"), - Attrs([Attr("address","0x7C0"), -Attr("insn","stp x29, x30, [sp, #-0x30]!")]), Var("#1",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(18446744073709551568,64))), -Def(Tid(562, "%00000232"), Attrs([Attr("address","0x7C0"), -Attr("insn","stp x29, x30, [sp, #-0x30]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("#1",Imm(64)),Var("R29",Imm(64)),LittleEndian(),64)), -Def(Tid(568, "%00000238"), Attrs([Attr("address","0x7C0"), -Attr("insn","stp x29, x30, [sp, #-0x30]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("#1",Imm(64)),Int(8,64)),Var("R30",Imm(64)),LittleEndian(),64)), -Def(Tid(572, "%0000023c"), Attrs([Attr("address","0x7C0"), -Attr("insn","stp x29, x30, [sp, #-0x30]!")]), Var("R31",Imm(64)), -Var("#1",Imm(64))), Def(Tid(577, "%00000241"), - Attrs([Attr("address","0x7C4"), Attr("insn","mov x0, #0xb")]), - Var("R0",Imm(64)), Int(11,64)), Def(Tid(583, "%00000247"), - Attrs([Attr("address","0x7C8"), Attr("insn","mov x29, sp")]), - Var("R29",Imm(64)), Var("R31",Imm(64))), Def(Tid(589, "%0000024d"), - Attrs([Attr("address","0x7CC"), Attr("insn","stp x19, x20, [sp, #0x10]")]), - Var("#2",Imm(64)), PLUS(Var("R31",Imm(64)),Int(16,64))), -Def(Tid(595, "%00000253"), Attrs([Attr("address","0x7CC"), -Attr("insn","stp x19, x20, [sp, #0x10]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("#2",Imm(64)),Var("R19",Imm(64)),LittleEndian(),64)), -Def(Tid(601, "%00000259"), Attrs([Attr("address","0x7CC"), -Attr("insn","stp x19, x20, [sp, #0x10]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("#2",Imm(64)),Int(8,64)),Var("R20",Imm(64)),LittleEndian(),64)), -Def(Tid(606, "%0000025e"), Attrs([Attr("address","0x7D0"), -Attr("insn","adrp x20, #69632")]), Var("R20",Imm(64)), Int(69632,64)), -Def(Tid(614, "%00000266"), Attrs([Attr("address","0x7D4"), -Attr("insn","str x21, [sp, #0x20]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(32,64)),Var("R21",Imm(64)),LittleEndian(),64)), -Def(Tid(619, "%0000026b"), Attrs([Attr("address","0x7D8"), -Attr("insn","bl #-0x88")]), Var("R30",Imm(64)), Int(2012,64))]), -Jmps([Call(Tid(622, "%0000026e"), Attrs([Attr("address","0x7D8"), -Attr("insn","bl #-0x88")]), Int(1,1), -(Direct(Tid(2_049, "@malloc")),Direct(Tid(624, "%00000270"))))])), -Blk(Tid(624, "%00000270"), Attrs([Attr("address","0x7DC")]), Phis([]), -Defs([Def(Tid(627, "%00000273"), Attrs([Attr("address","0x7DC"), -Attr("insn","adrp x21, #69632")]), Var("R21",Imm(64)), Int(69632,64)), -Def(Tid(633, "%00000279"), Attrs([Attr("address","0x7E0"), -Attr("insn","add x21, x21, #0x10")]), Var("R21",Imm(64)), -PLUS(Var("R21",Imm(64)),Int(16,64))), Def(Tid(639, "%0000027f"), - Attrs([Attr("address","0x7E4"), Attr("insn","mov x19, x0")]), - Var("R19",Imm(64)), Var("R0",Imm(64))), Def(Tid(645, "%00000285"), - Attrs([Attr("address","0x7E8"), Attr("insn","mov x0, x21")]), - Var("R0",Imm(64)), Var("R21",Imm(64))), Def(Tid(653, "%0000028d"), - Attrs([Attr("address","0x7EC"), Attr("insn","str x19, [x20, #0x28]")]), - Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R20",Imm(64)),Int(40,64)),Var("R19",Imm(64)),LittleEndian(),64)), -Def(Tid(658, "%00000292"), Attrs([Attr("address","0x7F0"), -Attr("insn","bl #-0xe0")]), Var("R30",Imm(64)), Int(2036,64))]), -Jmps([Call(Tid(661, "%00000295"), Attrs([Attr("address","0x7F0"), -Attr("insn","bl #-0xe0")]), Int(1,1), -(Direct(Tid(2_055, "@strlen")),Direct(Tid(663, "%00000297"))))])), -Blk(Tid(663, "%00000297"), Attrs([Attr("address","0x7F4")]), Phis([]), -Defs([Def(Tid(667, "%0000029b"), Attrs([Attr("address","0x7F4"), -Attr("insn","mov x1, x21")]), Var("R1",Imm(64)), Var("R21",Imm(64))), -Def(Tid(673, "%000002a1"), Attrs([Attr("address","0x7F8"), -Attr("insn","mov x2, x0")]), Var("R2",Imm(64)), Var("R0",Imm(64))), -Def(Tid(678, "%000002a6"), Attrs([Attr("address","0x7FC"), -Attr("insn","mov x3, #0xb")]), Var("R3",Imm(64)), Int(11,64)), -Def(Tid(684, "%000002ac"), Attrs([Attr("address","0x800"), -Attr("insn","mov x0, x19")]), Var("R0",Imm(64)), Var("R19",Imm(64))), -Def(Tid(689, "%000002b1"), Attrs([Attr("address","0x804"), -Attr("insn","bl #-0xc4")]), Var("R30",Imm(64)), Int(2056,64))]), -Jmps([Call(Tid(692, "%000002b4"), Attrs([Attr("address","0x804"), -Attr("insn","bl #-0xc4")]), Int(1,1), -(Direct(Tid(2_034, "@__memcpy_chk")),Direct(Tid(694, "%000002b6"))))])), -Blk(Tid(694, "%000002b6"), Attrs([Attr("address","0x808")]), Phis([]), -Defs([Def(Tid(698, "%000002ba"), Attrs([Attr("address","0x808"), -Attr("insn","mov x0, x19")]), Var("R0",Imm(64)), Var("R19",Imm(64))), -Def(Tid(703, "%000002bf"), Attrs([Attr("address","0x80C"), -Attr("insn","bl #-0x7c")]), Var("R30",Imm(64)), Int(2064,64))]), -Jmps([Call(Tid(706, "%000002c2"), Attrs([Attr("address","0x80C"), -Attr("insn","bl #-0x7c")]), Int(1,1), -(Direct(Tid(2_051, "@puts")),Direct(Tid(708, "%000002c4"))))])), -Blk(Tid(708, "%000002c4"), Attrs([Attr("address","0x810")]), Phis([]), -Defs([Def(Tid(713, "%000002c9"), Attrs([Attr("address","0x810"), -Attr("insn","ldr x0, [x20, #0x28]")]), Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R20",Imm(64)),Int(40,64)),LittleEndian(),64)), -Def(Tid(720, "%000002d0"), Attrs([Attr("address","0x814"), -Attr("insn","strb wzr, [x0, #0x4]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(4,64)),Int(0,8),LittleEndian(),8)), -Def(Tid(727, "%000002d7"), Attrs([Attr("address","0x818"), -Attr("insn","ldr x19, [x20, #0x28]")]), Var("R19",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R20",Imm(64)),Int(40,64)),LittleEndian(),64)), -Def(Tid(733, "%000002dd"), Attrs([Attr("address","0x81C"), -Attr("insn","mov x0, x19")]), Var("R0",Imm(64)), Var("R19",Imm(64))), -Def(Tid(738, "%000002e2"), Attrs([Attr("address","0x820"), -Attr("insn","bl #-0x110")]), Var("R30",Imm(64)), Int(2084,64))]), -Jmps([Call(Tid(740, "%000002e4"), Attrs([Attr("address","0x820"), -Attr("insn","bl #-0x110")]), Int(1,1), -(Direct(Tid(2_055, "@strlen")),Direct(Tid(742, "%000002e6"))))])), -Blk(Tid(742, "%000002e6"), Attrs([Attr("address","0x824")]), Phis([]), -Defs([Def(Tid(745, "%000002e9"), Attrs([Attr("address","0x824"), -Attr("insn","mov w1, #0x1")]), Var("R1",Imm(64)), Int(1,64)), -Def(Tid(751, "%000002ef"), Attrs([Attr("address","0x828"), -Attr("insn","mov x2, x0")]), Var("R2",Imm(64)), Var("R0",Imm(64))), -Def(Tid(757, "%000002f5"), Attrs([Attr("address","0x82C"), -Attr("insn","mov x0, x19")]), Var("R0",Imm(64)), Var("R19",Imm(64))), -Def(Tid(762, "%000002fa"), Attrs([Attr("address","0x830"), -Attr("insn","bl #-0xd0")]), Var("R30",Imm(64)), Int(2100,64))]), -Jmps([Call(Tid(765, "%000002fd"), Attrs([Attr("address","0x830"), -Attr("insn","bl #-0xd0")]), Int(1,1), -(Direct(Tid(2_050, "@memset")),Direct(Tid(767, "%000002ff"))))])), -Blk(Tid(767, "%000002ff"), Attrs([Attr("address","0x834")]), Phis([]), -Defs([Def(Tid(772, "%00000304"), Attrs([Attr("address","0x834"), -Attr("insn","ldr x0, [x20, #0x28]")]), Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R20",Imm(64)),Int(40,64)),LittleEndian(),64)), -Def(Tid(777, "%00000309"), Attrs([Attr("address","0x838"), -Attr("insn","bl #-0x98")]), Var("R30",Imm(64)), Int(2108,64))]), -Jmps([Call(Tid(780, "%0000030c"), Attrs([Attr("address","0x838"), -Attr("insn","bl #-0x98")]), Int(1,1), -(Direct(Tid(2_047, "@free")),Direct(Tid(782, "%0000030e"))))])), -Blk(Tid(782, "%0000030e"), Attrs([Attr("address","0x83C")]), Phis([]), -Defs([Def(Tid(785, "%00000311"), Attrs([Attr("address","0x83C"), -Attr("insn","mov w0, #0x0")]), Var("R0",Imm(64)), Int(0,64)), -Def(Tid(791, "%00000317"), Attrs([Attr("address","0x840"), -Attr("insn","ldp x19, x20, [sp, #0x10]")]), Var("#3",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(16,64))), Def(Tid(796, "%0000031c"), - Attrs([Attr("address","0x840"), Attr("insn","ldp x19, x20, [sp, #0x10]")]), - Var("R19",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("#3",Imm(64)),LittleEndian(),64)), -Def(Tid(801, "%00000321"), Attrs([Attr("address","0x840"), -Attr("insn","ldp x19, x20, [sp, #0x10]")]), Var("R20",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("#3",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(808, "%00000328"), Attrs([Attr("address","0x844"), -Attr("insn","ldr x21, [sp, #0x20]")]), Var("R21",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(32,64)),LittleEndian(),64)), -Def(Tid(815, "%0000032f"), Attrs([Attr("address","0x848"), -Attr("insn","ldp x29, x30, [sp], #0x30")]), Var("R29",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(820, "%00000334"), Attrs([Attr("address","0x848"), -Attr("insn","ldp x29, x30, [sp], #0x30")]), Var("R30",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(824, "%00000338"), Attrs([Attr("address","0x848"), -Attr("insn","ldp x29, x30, [sp], #0x30")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(48,64)))]), Jmps([Call(Tid(829, "%0000033d"), - Attrs([Attr("address","0x84C"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), Sub(Tid(2_049, "@malloc"), - Attrs([Attr("c.proto","void* (*)(unsigned long size)"), -Attr("address","0x750"), Attr("malloc","()"), Attr("stub","()")]), "malloc", - Args([Arg(Tid(2_115, "%00000843"), Attrs([Attr("alloc-size","()"), -Attr("c.layout","[unsigned long : 64]"), Attr("c.data","Top:u64"), -Attr("c.type","unsigned long")]), Var("malloc_size",Imm(64)), -Var("R0",Imm(64)), In()), Arg(Tid(2_116, "%00000844"), - Attrs([Attr("warn-unused","()"), Attr("c.layout","*[ : 8]"), -Attr("c.data","{} ptr"), Attr("c.type","void*")]), - Var("malloc_result",Imm(64)), Var("R0",Imm(64)), Out())]), -Blks([Blk(Tid(620, "@malloc"), Attrs([Attr("address","0x750")]), Phis([]), -Defs([Def(Tid(1_642, "%0000066a"), Attrs([Attr("address","0x750"), -Attr("insn","adrp x16, #65536")]), Var("R16",Imm(64)), Int(65536,64)), -Def(Tid(1_649, "%00000671"), Attrs([Attr("address","0x754"), -Attr("insn","ldr x17, [x16, #0xfa0]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(4000,64)),LittleEndian(),64)), -Def(Tid(1_655, "%00000677"), Attrs([Attr("address","0x758"), -Attr("insn","add x16, x16, #0xfa0")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(4000,64)))]), Jmps([Call(Tid(1_660, "%0000067c"), - Attrs([Attr("address","0x75C"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), Sub(Tid(2_050, "@memset"), - Attrs([Attr("c.proto","void* (*)(void* buf, signed c, unsigned long n)"), -Attr("address","0x760"), Attr("stub","()")]), "memset", - Args([Arg(Tid(2_117, "%00000845"), Attrs([Attr("nonnull","()"), -Attr("c.layout","*[ : 8]"), Attr("c.data","{} ptr"), -Attr("c.type","void*")]), Var("memset_buf",Imm(64)), Var("R0",Imm(64)), -Both()), Arg(Tid(2_118, "%00000846"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("memset_c",Imm(32)), -LOW(32,Var("R1",Imm(64))), In()), Arg(Tid(2_119, "%00000847"), - Attrs([Attr("c.layout","[unsigned long : 64]"), Attr("c.data","Top:u64"), -Attr("c.type","unsigned long")]), Var("memset_n",Imm(64)), Var("R2",Imm(64)), -In()), Arg(Tid(2_120, "%00000848"), Attrs([Attr("c.layout","*[ : 8]"), -Attr("c.data","{} ptr"), Attr("c.type","void*")]), - Var("memset_result",Imm(64)), Var("R0",Imm(64)), Out())]), -Blks([Blk(Tid(763, "@memset"), Attrs([Attr("address","0x760")]), Phis([]), -Defs([Def(Tid(1_664, "%00000680"), Attrs([Attr("address","0x760"), -Attr("insn","adrp x16, #65536")]), Var("R16",Imm(64)), Int(65536,64)), -Def(Tid(1_671, "%00000687"), Attrs([Attr("address","0x764"), -Attr("insn","ldr x17, [x16, #0xfa8]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(4008,64)),LittleEndian(),64)), -Def(Tid(1_677, "%0000068d"), Attrs([Attr("address","0x768"), -Attr("insn","add x16, x16, #0xfa8")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(4008,64)))]), Jmps([Call(Tid(1_682, "%00000692"), - Attrs([Attr("address","0x76C"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), Sub(Tid(2_051, "@puts"), - Attrs([Attr("c.proto","signed (*)( const char* s)"), -Attr("address","0x790"), Attr("stub","()")]), "puts", - Args([Arg(Tid(2_121, "%00000849"), Attrs([Attr("c.layout","*[char : 8]"), -Attr("c.data","Top:u8 ptr"), Attr("c.type"," const char*")]), - Var("puts_s",Imm(64)), Var("R0",Imm(64)), In()), -Arg(Tid(2_122, "%0000084a"), Attrs([Attr("c.layout","[signed : 32]"), -Attr("c.data","Top:u32"), Attr("c.type","signed")]), - Var("puts_result",Imm(32)), LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(704, "@puts"), Attrs([Attr("address","0x790")]), Phis([]), -Defs([Def(Tid(1_730, "%000006c2"), Attrs([Attr("address","0x790"), -Attr("insn","adrp x16, #65536")]), Var("R16",Imm(64)), Int(65536,64)), -Def(Tid(1_737, "%000006c9"), Attrs([Attr("address","0x794"), -Attr("insn","ldr x17, [x16, #0xfc0]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(4032,64)),LittleEndian(),64)), -Def(Tid(1_743, "%000006cf"), Attrs([Attr("address","0x798"), -Attr("insn","add x16, x16, #0xfc0")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(4032,64)))]), Jmps([Call(Tid(1_748, "%000006d4"), - Attrs([Attr("address","0x79C"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), -Sub(Tid(2_052, "@register_tm_clones"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x900")]), - "register_tm_clones", Args([Arg(Tid(2_123, "%0000084b"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("register_tm_clones_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(1_023, "@register_tm_clones"), - Attrs([Attr("address","0x900")]), Phis([]), -Defs([Def(Tid(1_026, "%00000402"), Attrs([Attr("address","0x900"), -Attr("insn","adrp x0, #69632")]), Var("R0",Imm(64)), Int(69632,64)), -Def(Tid(1_032, "%00000408"), Attrs([Attr("address","0x904"), -Attr("insn","add x0, x0, #0x20")]), Var("R0",Imm(64)), -PLUS(Var("R0",Imm(64)),Int(32,64))), Def(Tid(1_037, "%0000040d"), - Attrs([Attr("address","0x908"), Attr("insn","adrp x1, #69632")]), - Var("R1",Imm(64)), Int(69632,64)), Def(Tid(1_043, "%00000413"), - Attrs([Attr("address","0x90C"), Attr("insn","add x1, x1, #0x20")]), - Var("R1",Imm(64)), PLUS(Var("R1",Imm(64)),Int(32,64))), -Def(Tid(1_050, "%0000041a"), Attrs([Attr("address","0x910"), -Attr("insn","sub x1, x1, x0")]), Var("R1",Imm(64)), -PLUS(PLUS(Var("R1",Imm(64)),NOT(Var("R0",Imm(64)))),Int(1,64))), -Def(Tid(1_056, "%00000420"), Attrs([Attr("address","0x914"), -Attr("insn","lsr x2, x1, #63")]), Var("R2",Imm(64)), -Concat(Int(0,63),Extract(63,63,Var("R1",Imm(64))))), -Def(Tid(1_063, "%00000427"), Attrs([Attr("address","0x918"), -Attr("insn","add x1, x2, x1, asr #3")]), Var("R1",Imm(64)), -PLUS(Var("R2",Imm(64)),ARSHIFT(Var("R1",Imm(64)),Int(3,3)))), -Def(Tid(1_069, "%0000042d"), Attrs([Attr("address","0x91C"), -Attr("insn","asr x1, x1, #1")]), Var("R1",Imm(64)), -SIGNED(64,Extract(63,1,Var("R1",Imm(64)))))]), -Jmps([Goto(Tid(1_075, "%00000433"), Attrs([Attr("address","0x920"), -Attr("insn","cbz x1, #0x18")]), EQ(Var("R1",Imm(64)),Int(0,64)), -Direct(Tid(1_073, "%00000431"))), Goto(Tid(2_094, "%0000082e"), Attrs([]), - Int(1,1), Direct(Tid(1_236, "%000004d4")))])), Blk(Tid(1_236, "%000004d4"), - Attrs([Attr("address","0x924")]), Phis([]), -Defs([Def(Tid(1_239, "%000004d7"), Attrs([Attr("address","0x924"), -Attr("insn","adrp x2, #65536")]), Var("R2",Imm(64)), Int(65536,64)), -Def(Tid(1_246, "%000004de"), Attrs([Attr("address","0x928"), -Attr("insn","ldr x2, [x2, #0xff8]")]), Var("R2",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R2",Imm(64)),Int(4088,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(1_251, "%000004e3"), Attrs([Attr("address","0x92C"), -Attr("insn","cbz x2, #0xc")]), EQ(Var("R2",Imm(64)),Int(0,64)), -Direct(Tid(1_073, "%00000431"))), Goto(Tid(2_095, "%0000082f"), Attrs([]), - Int(1,1), Direct(Tid(1_255, "%000004e7")))])), Blk(Tid(1_073, "%00000431"), - Attrs([Attr("address","0x938")]), Phis([]), Defs([]), -Jmps([Call(Tid(1_081, "%00000439"), Attrs([Attr("address","0x938"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))])), -Blk(Tid(1_255, "%000004e7"), Attrs([Attr("address","0x930")]), Phis([]), -Defs([Def(Tid(1_259, "%000004eb"), Attrs([Attr("address","0x930"), -Attr("insn","mov x16, x2")]), Var("R16",Imm(64)), Var("R2",Imm(64)))]), -Jmps([Call(Tid(1_264, "%000004f0"), Attrs([Attr("address","0x934"), -Attr("insn","br x16")]), Int(1,1), (Indirect(Var("R16",Imm(64))),))]))])), -Sub(Tid(2_055, "@strlen"), - Attrs([Attr("c.proto","unsigned long (*)( const char* s)"), -Attr("pure","()"), Attr("address","0x710"), Attr("stub","()")]), "strlen", - Args([Arg(Tid(2_124, "%0000084c"), Attrs([Attr("nonnull","()"), -Attr("c.layout","*[char : 8]"), Attr("c.data","Top:u8 ptr"), -Attr("c.type"," const char*")]), Var("strlen_s",Imm(64)), Var("R0",Imm(64)), -In()), Arg(Tid(2_125, "%0000084d"), - Attrs([Attr("c.layout","[unsigned long : 64]"), Attr("c.data","Top:u64"), -Attr("c.type","unsigned long")]), Var("strlen_result",Imm(64)), -Var("R0",Imm(64)), Out())]), Blks([Blk(Tid(659, "@strlen"), - Attrs([Attr("address","0x710")]), Phis([]), -Defs([Def(Tid(1_554, "%00000612"), Attrs([Attr("address","0x710"), -Attr("insn","adrp x16, #65536")]), Var("R16",Imm(64)), Int(65536,64)), -Def(Tid(1_561, "%00000619"), Attrs([Attr("address","0x714"), -Attr("insn","ldr x17, [x16, #0xf80]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(3968,64)),LittleEndian(),64)), -Def(Tid(1_567, "%0000061f"), Attrs([Attr("address","0x718"), -Attr("insn","add x16, x16, #0xf80")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(3968,64)))]), Jmps([Call(Tid(1_572, "%00000624"), - Attrs([Attr("address","0x71C"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))]))]))) \ No newline at end of file diff --git a/src/test/extraspec_incorrect/malloc_memcpy_strlen_memset_free/gcc_O2/malloc_memcpy_strlen_memset_free.bir b/src/test/extraspec_incorrect/malloc_memcpy_strlen_memset_free/gcc_O2/malloc_memcpy_strlen_memset_free.bir deleted file mode 100644 index 8a326f5f7..000000000 --- a/src/test/extraspec_incorrect/malloc_memcpy_strlen_memset_free/gcc_O2/malloc_memcpy_strlen_memset_free.bir +++ /dev/null @@ -1,348 +0,0 @@ -00000830: program -000007ec: sub __cxa_finalize(__cxa_finalize_result) -00000831: __cxa_finalize_result :: out u32 = low:32[R0] - -000004d0: -0000063e: R16 := 0x10000 -00000645: R17 := mem[R16 + 0xF90, el]:u64 -0000064b: R16 := R16 + 0xF90 -00000650: call R17 with noreturn - -000007ed: sub __do_global_dtors_aux(__do_global_dtors_aux_result) -00000832: __do_global_dtors_aux_result :: out u32 = low:32[R0] - -0000043d: -00000441: #6 := R31 - 0x20 -00000447: mem := mem with [#6, el]:u64 <- R29 -0000044d: mem := mem with [#6 + 8, el]:u64 <- R30 -00000451: R31 := #6 -00000457: R29 := R31 -0000045f: mem := mem with [R31 + 0x10, el]:u64 <- R19 -00000464: R19 := 0x11000 -0000046b: R0 := pad:64[mem[R19 + 0x20]] -00000472: when 31:0[R0] <> 0 goto %00000470 -00000826: goto %00000499 - -00000499: -0000049c: R0 := 0x10000 -000004a3: R0 := mem[R0 + 0xFE0, el]:u64 -000004a9: when R0 = 0 goto %000004a7 -00000827: goto %000004c0 - -000004c0: -000004c3: R0 := 0x11000 -000004ca: R0 := mem[R0 + 8, el]:u64 -000004cf: R30 := 0x970 -000004d2: call @__cxa_finalize with return %000004a7 - -000004a7: -000004af: R30 := 0x974 -000004b1: call @deregister_tm_clones with return %000004b3 - -000004b3: -000004b6: R0 := 1 -000004be: mem := mem with [R19 + 0x20] <- 7:0[R0] -00000828: goto %00000470 - -00000470: -0000047a: R19 := mem[R31 + 0x10, el]:u64 -00000481: R29 := mem[R31, el]:u64 -00000486: R30 := mem[R31 + 8, el]:u64 -0000048a: R31 := R31 + 0x20 -0000048f: call R30 with noreturn - -000007f1: sub __libc_start_main(__libc_start_main_main, __libc_start_main_arg2, __libc_start_main_arg3, __libc_start_main_auxv, __libc_start_main_result) -00000833: __libc_start_main_main :: in u64 = R0 -00000834: __libc_start_main_arg2 :: in u32 = low:32[R1] -00000835: __libc_start_main_arg3 :: in out u64 = R2 -00000836: __libc_start_main_auxv :: in out u64 = R3 -00000837: __libc_start_main_result :: out u32 = low:32[R0] - -00000396: -00000628: R16 := 0x10000 -0000062f: R17 := mem[R16 + 0xF88, el]:u64 -00000635: R16 := R16 + 0xF88 -0000063a: call R17 with noreturn - -000007f2: sub __memcpy_chk(__memcpy_chk_result) -00000838: __memcpy_chk_result :: out u32 = low:32[R0] - -000002b2: -00000654: R16 := 0x10000 -0000065b: R17 := mem[R16 + 0xF98, el]:u64 -00000661: R16 := R16 + 0xF98 -00000666: call R17 with noreturn - -000007f3: sub _fini(_fini_result) -00000839: _fini_result :: out u32 = low:32[R0] - -0000001f: -00000025: #0 := R31 - 0x10 -0000002b: mem := mem with [#0, el]:u64 <- R29 -00000031: mem := mem with [#0 + 8, el]:u64 <- R30 -00000035: R31 := #0 -0000003b: R29 := R31 -00000042: R29 := mem[R31, el]:u64 -00000047: R30 := mem[R31 + 8, el]:u64 -0000004b: R31 := R31 + 0x10 -00000050: call R30 with noreturn - -000007f4: sub _init(_init_result) -0000083a: _init_result :: out u32 = low:32[R0] - -00000706: -0000070c: #8 := R31 - 0x10 -00000712: mem := mem with [#8, el]:u64 <- R29 -00000718: mem := mem with [#8 + 8, el]:u64 <- R30 -0000071c: R31 := #8 -00000722: R29 := R31 -00000727: R30 := 0x6E8 -00000729: call @call_weak_fn with return %0000072b - -0000072b: -00000730: R29 := mem[R31, el]:u64 -00000735: R30 := mem[R31 + 8, el]:u64 -00000739: R31 := R31 + 0x10 -0000073e: call R30 with noreturn - -000007f5: sub _start(_start_result) -0000083b: _start_result :: out u32 = low:32[R0] - -00000357: -0000035c: R29 := 0 -00000361: R30 := 0 -00000367: R5 := R0 -0000036e: R1 := mem[R31, el]:u64 -00000374: R2 := R31 + 8 -0000037a: R6 := R31 -0000037f: R0 := 0x10000 -00000386: R0 := mem[R0 + 0xFF0, el]:u64 -0000038b: R3 := 0 -00000390: R4 := 0 -00000395: R30 := 0x8B0 -00000398: call @__libc_start_main with return %0000039a - -0000039a: -0000039d: R30 := 0x8B4 -000003a0: call @abort with return %00000829 - -00000829: -0000082a: call @call_weak_fn with noreturn - -000007f8: sub abort() - - -0000039e: -000006ac: R16 := 0x10000 -000006b3: R17 := mem[R16 + 0xFB8, el]:u64 -000006b9: R16 := R16 + 0xFB8 -000006be: call R17 with noreturn - -000007f9: sub call_weak_fn(call_weak_fn_result) -0000083c: call_weak_fn_result :: out u32 = low:32[R0] - -000003a2: -000003a5: R0 := 0x10000 -000003ac: R0 := mem[R0 + 0xFE8, el]:u64 -000003b2: when R0 = 0 goto %000003b0 -0000082b: goto %00000510 - -000003b0: -000003b8: call R30 with noreturn - -00000510: -00000513: goto @__gmon_start__ - -00000511: -00000696: R16 := 0x10000 -0000069d: R17 := mem[R16 + 0xFB0, el]:u64 -000006a3: R16 := R16 + 0xFB0 -000006a8: call R17 with noreturn - -000007fb: sub deregister_tm_clones(deregister_tm_clones_result) -0000083d: deregister_tm_clones_result :: out u32 = low:32[R0] - -000003be: -000003c1: R0 := 0x11000 -000003c7: R0 := R0 + 0x20 -000003cc: R1 := 0x11000 -000003d2: R1 := R1 + 0x20 -000003d8: #4 := ~R0 -000003dd: #5 := R1 + ~R0 -000003e3: VF := extend:65[#5 + 1] <> extend:65[R1] + extend:65[#4] + 1 -000003e9: CF := pad:65[#5 + 1] <> pad:65[R1] + pad:65[#4] + 1 -000003ed: ZF := #5 + 1 = 0 -000003f1: NF := 63:63[#5 + 1] -000003f7: when ZF goto %000003f5 -0000082c: goto %000004f2 - -000004f2: -000004f5: R1 := 0x10000 -000004fc: R1 := mem[R1 + 0xFD8, el]:u64 -00000501: when R1 = 0 goto %000003f5 -0000082d: goto %00000505 - -000003f5: -000003fd: call R30 with noreturn - -00000505: -00000509: R16 := R1 -0000050e: call R16 with noreturn - -000007fe: sub frame_dummy(frame_dummy_result) -0000083e: frame_dummy_result :: out u32 = low:32[R0] - -00000495: -00000497: call @register_tm_clones with noreturn - -000007ff: sub free(free_ptr) -0000083f: free_ptr :: in out u64 = R0 - -0000030a: -000006d8: R16 := 0x10000 -000006df: R17 := mem[R16 + 0xFC8, el]:u64 -000006e5: R16 := R16 + 0xFC8 -000006ea: call R17 with noreturn - -00000800: sub main(main_argc, main_argv, main_result) -00000840: main_argc :: in u32 = low:32[R0] -00000841: main_argv :: in out u64 = R1 -00000842: main_result :: out u32 = low:32[R0] - -00000228: -0000022c: #1 := R31 - 0x30 -00000232: mem := mem with [#1, el]:u64 <- R29 -00000238: mem := mem with [#1 + 8, el]:u64 <- R30 -0000023c: R31 := #1 -00000241: R0 := 0xB -00000247: R29 := R31 -0000024d: #2 := R31 + 0x10 -00000253: mem := mem with [#2, el]:u64 <- R19 -00000259: mem := mem with [#2 + 8, el]:u64 <- R20 -0000025e: R20 := 0x11000 -00000266: mem := mem with [R31 + 0x20, el]:u64 <- R21 -0000026b: R30 := 0x7DC -0000026e: call @malloc with return %00000270 - -00000270: -00000273: R21 := 0x11000 -00000279: R21 := R21 + 0x10 -0000027f: R19 := R0 -00000285: R0 := R21 -0000028d: mem := mem with [R20 + 0x28, el]:u64 <- R19 -00000292: R30 := 0x7F4 -00000295: call @strlen with return %00000297 - -00000297: -0000029b: R1 := R21 -000002a1: R2 := R0 -000002a6: R3 := 0xB -000002ac: R0 := R19 -000002b1: R30 := 0x808 -000002b4: call @__memcpy_chk with return %000002b6 - -000002b6: -000002ba: R0 := R19 -000002bf: R30 := 0x810 -000002c2: call @puts with return %000002c4 - -000002c4: -000002c9: R0 := mem[R20 + 0x28, el]:u64 -000002d0: mem := mem with [R0 + 4] <- 0 -000002d7: R19 := mem[R20 + 0x28, el]:u64 -000002dd: R0 := R19 -000002e2: R30 := 0x824 -000002e4: call @strlen with return %000002e6 - -000002e6: -000002e9: R1 := 1 -000002ef: R2 := R0 -000002f5: R0 := R19 -000002fa: R30 := 0x834 -000002fd: call @memset with return %000002ff - -000002ff: -00000304: R0 := mem[R20 + 0x28, el]:u64 -00000309: R30 := 0x83C -0000030c: call @free with return %0000030e - -0000030e: -00000311: R0 := 0 -00000317: #3 := R31 + 0x10 -0000031c: R19 := mem[#3, el]:u64 -00000321: R20 := mem[#3 + 8, el]:u64 -00000328: R21 := mem[R31 + 0x20, el]:u64 -0000032f: R29 := mem[R31, el]:u64 -00000334: R30 := mem[R31 + 8, el]:u64 -00000338: R31 := R31 + 0x30 -0000033d: call R30 with noreturn - -00000801: sub malloc(malloc_size, malloc_result) -00000843: malloc_size :: in u64 = R0 -00000844: malloc_result :: out u64 = R0 - -0000026c: -0000066a: R16 := 0x10000 -00000671: R17 := mem[R16 + 0xFA0, el]:u64 -00000677: R16 := R16 + 0xFA0 -0000067c: call R17 with noreturn - -00000802: sub memset(memset_buf, memset_c, memset_n, memset_result) -00000845: memset_buf :: in out u64 = R0 -00000846: memset_c :: in u32 = low:32[R1] -00000847: memset_n :: in u64 = R2 -00000848: memset_result :: out u64 = R0 - -000002fb: -00000680: R16 := 0x10000 -00000687: R17 := mem[R16 + 0xFA8, el]:u64 -0000068d: R16 := R16 + 0xFA8 -00000692: call R17 with noreturn - -00000803: sub puts(puts_s, puts_result) -00000849: puts_s :: in u64 = R0 -0000084a: puts_result :: out u32 = low:32[R0] - -000002c0: -000006c2: R16 := 0x10000 -000006c9: R17 := mem[R16 + 0xFC0, el]:u64 -000006cf: R16 := R16 + 0xFC0 -000006d4: call R17 with noreturn - -00000804: sub register_tm_clones(register_tm_clones_result) -0000084b: register_tm_clones_result :: out u32 = low:32[R0] - -000003ff: -00000402: R0 := 0x11000 -00000408: R0 := R0 + 0x20 -0000040d: R1 := 0x11000 -00000413: R1 := R1 + 0x20 -0000041a: R1 := R1 + ~R0 + 1 -00000420: R2 := 0.63:63[R1] -00000427: R1 := R2 + (R1 ~>> 3) -0000042d: R1 := extend:64[63:1[R1]] -00000433: when R1 = 0 goto %00000431 -0000082e: goto %000004d4 - -000004d4: -000004d7: R2 := 0x10000 -000004de: R2 := mem[R2 + 0xFF8, el]:u64 -000004e3: when R2 = 0 goto %00000431 -0000082f: goto %000004e7 - -00000431: -00000439: call R30 with noreturn - -000004e7: -000004eb: R16 := R2 -000004f0: call R16 with noreturn - -00000807: sub strlen(strlen_s, strlen_result) -0000084c: strlen_s :: in u64 = R0 -0000084d: strlen_result :: out u64 = R0 - -00000293: -00000612: R16 := 0x10000 -00000619: R17 := mem[R16 + 0xF80, el]:u64 -0000061f: R16 := R16 + 0xF80 -00000624: call R17 with noreturn diff --git a/src/test/extraspec_incorrect/malloc_memcpy_strlen_memset_free/gcc_O2/malloc_memcpy_strlen_memset_free.gts b/src/test/extraspec_incorrect/malloc_memcpy_strlen_memset_free/gcc_O2/malloc_memcpy_strlen_memset_free.gts deleted file mode 100644 index 7219b56e6..000000000 Binary files a/src/test/extraspec_incorrect/malloc_memcpy_strlen_memset_free/gcc_O2/malloc_memcpy_strlen_memset_free.gts and /dev/null differ diff --git a/src/test/extraspec_incorrect/malloc_memcpy_strlen_memset_free/gcc_O2/malloc_memcpy_strlen_memset_free.md5sum b/src/test/extraspec_incorrect/malloc_memcpy_strlen_memset_free/gcc_O2/malloc_memcpy_strlen_memset_free.md5sum new file mode 100644 index 000000000..f24271447 --- /dev/null +++ b/src/test/extraspec_incorrect/malloc_memcpy_strlen_memset_free/gcc_O2/malloc_memcpy_strlen_memset_free.md5sum @@ -0,0 +1,5 @@ +95ea5959bd5afc121ff0b7abd6cca6d7 extraspec_incorrect/malloc_memcpy_strlen_memset_free/gcc_O2/a.out +0b1418f94d96cfb81d10bbba79792bf8 extraspec_incorrect/malloc_memcpy_strlen_memset_free/gcc_O2/malloc_memcpy_strlen_memset_free.adt +51e90424954b3046da3c0eb8c9d036ed extraspec_incorrect/malloc_memcpy_strlen_memset_free/gcc_O2/malloc_memcpy_strlen_memset_free.bir +c8e6dad8976fa644e38cc5575a4cd23d extraspec_incorrect/malloc_memcpy_strlen_memset_free/gcc_O2/malloc_memcpy_strlen_memset_free.relf +1158af57fb0b8ded921651ef6f537f7d extraspec_incorrect/malloc_memcpy_strlen_memset_free/gcc_O2/malloc_memcpy_strlen_memset_free.gts diff --git a/src/test/extraspec_incorrect/malloc_memcpy_strlen_memset_free/gcc_O2/malloc_memcpy_strlen_memset_free.relf b/src/test/extraspec_incorrect/malloc_memcpy_strlen_memset_free/gcc_O2/malloc_memcpy_strlen_memset_free.relf deleted file mode 100644 index dd30b36f8..000000000 --- a/src/test/extraspec_incorrect/malloc_memcpy_strlen_memset_free/gcc_O2/malloc_memcpy_strlen_memset_free.relf +++ /dev/null @@ -1,142 +0,0 @@ - -Relocation section '.rela.dyn' at offset 0x528 contains 8 entries: - Offset Info Type Symbol's Value Symbol's Name + Addend -0000000000010d68 0000000000000403 R_AARCH64_RELATIVE 990 -0000000000010d70 0000000000000403 R_AARCH64_RELATIVE 940 -0000000000010ff0 0000000000000403 R_AARCH64_RELATIVE 7c0 -0000000000011008 0000000000000403 R_AARCH64_RELATIVE 11008 -0000000000010fd8 0000000500000401 R_AARCH64_GLOB_DAT 0000000000000000 _ITM_deregisterTMCloneTable + 0 -0000000000010fe0 0000000600000401 R_AARCH64_GLOB_DAT 0000000000000000 __cxa_finalize@GLIBC_2.17 + 0 -0000000000010fe8 0000000a00000401 R_AARCH64_GLOB_DAT 0000000000000000 __gmon_start__ + 0 -0000000000010ff8 0000000e00000401 R_AARCH64_GLOB_DAT 0000000000000000 _ITM_registerTMCloneTable + 0 - -Relocation section '.rela.plt' at offset 0x5e8 contains 10 entries: - Offset Info Type Symbol's Value Symbol's Name + Addend -0000000000010f80 0000000300000402 R_AARCH64_JUMP_SLOT 0000000000000000 strlen@GLIBC_2.17 + 0 -0000000000010f88 0000000400000402 R_AARCH64_JUMP_SLOT 0000000000000000 __libc_start_main@GLIBC_2.34 + 0 -0000000000010f90 0000000600000402 R_AARCH64_JUMP_SLOT 0000000000000000 __cxa_finalize@GLIBC_2.17 + 0 -0000000000010f98 0000000700000402 R_AARCH64_JUMP_SLOT 0000000000000000 __memcpy_chk@GLIBC_2.17 + 0 -0000000000010fa0 0000000800000402 R_AARCH64_JUMP_SLOT 0000000000000000 malloc@GLIBC_2.17 + 0 -0000000000010fa8 0000000900000402 R_AARCH64_JUMP_SLOT 0000000000000000 memset@GLIBC_2.17 + 0 -0000000000010fb0 0000000a00000402 R_AARCH64_JUMP_SLOT 0000000000000000 __gmon_start__ + 0 -0000000000010fb8 0000000b00000402 R_AARCH64_JUMP_SLOT 0000000000000000 abort@GLIBC_2.17 + 0 -0000000000010fc0 0000000c00000402 R_AARCH64_JUMP_SLOT 0000000000000000 puts@GLIBC_2.17 + 0 -0000000000010fc8 0000000d00000402 R_AARCH64_JUMP_SLOT 0000000000000000 free@GLIBC_2.17 + 0 - -Symbol table '.dynsym' contains 15 entries: - Num: Value Size Type Bind Vis Ndx Name - 0: 0000000000000000 0 NOTYPE LOCAL DEFAULT UND - 1: 00000000000006d8 0 SECTION LOCAL DEFAULT 11 .init - 2: 0000000000011000 0 SECTION LOCAL DEFAULT 22 .data - 3: 0000000000000000 0 FUNC GLOBAL DEFAULT UND strlen@GLIBC_2.17 (2) - 4: 0000000000000000 0 FUNC GLOBAL DEFAULT UND __libc_start_main@GLIBC_2.34 (3) - 5: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_deregisterTMCloneTable - 6: 0000000000000000 0 FUNC WEAK DEFAULT UND __cxa_finalize@GLIBC_2.17 (2) - 7: 0000000000000000 0 FUNC GLOBAL DEFAULT UND __memcpy_chk@GLIBC_2.17 (2) - 8: 0000000000000000 0 FUNC GLOBAL DEFAULT UND malloc@GLIBC_2.17 (2) - 9: 0000000000000000 0 FUNC GLOBAL DEFAULT UND memset@GLIBC_2.17 (2) - 10: 0000000000000000 0 NOTYPE WEAK DEFAULT UND __gmon_start__ - 11: 0000000000000000 0 FUNC GLOBAL DEFAULT UND abort@GLIBC_2.17 (2) - 12: 0000000000000000 0 FUNC GLOBAL DEFAULT UND puts@GLIBC_2.17 (2) - 13: 0000000000000000 0 FUNC GLOBAL DEFAULT UND free@GLIBC_2.17 (2) - 14: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_registerTMCloneTable - -Symbol table '.symtab' contains 97 entries: - Num: Value Size Type Bind Vis Ndx Name - 0: 0000000000000000 0 NOTYPE LOCAL DEFAULT UND - 1: 0000000000000238 0 SECTION LOCAL DEFAULT 1 .interp - 2: 0000000000000254 0 SECTION LOCAL DEFAULT 2 .note.gnu.build-id - 3: 0000000000000278 0 SECTION LOCAL DEFAULT 3 .note.ABI-tag - 4: 0000000000000298 0 SECTION LOCAL DEFAULT 4 .gnu.hash - 5: 00000000000002b8 0 SECTION LOCAL DEFAULT 5 .dynsym - 6: 0000000000000420 0 SECTION LOCAL DEFAULT 6 .dynstr - 7: 00000000000004da 0 SECTION LOCAL DEFAULT 7 .gnu.version - 8: 00000000000004f8 0 SECTION LOCAL DEFAULT 8 .gnu.version_r - 9: 0000000000000528 0 SECTION LOCAL DEFAULT 9 .rela.dyn - 10: 00000000000005e8 0 SECTION LOCAL DEFAULT 10 .rela.plt - 11: 00000000000006d8 0 SECTION LOCAL DEFAULT 11 .init - 12: 00000000000006f0 0 SECTION LOCAL DEFAULT 12 .plt - 13: 00000000000007c0 0 SECTION LOCAL DEFAULT 13 .text - 14: 0000000000000994 0 SECTION LOCAL DEFAULT 14 .fini - 15: 00000000000009a8 0 SECTION LOCAL DEFAULT 15 .rodata - 16: 00000000000009ac 0 SECTION LOCAL DEFAULT 16 .eh_frame_hdr - 17: 00000000000009e8 0 SECTION LOCAL DEFAULT 17 .eh_frame - 18: 0000000000010d68 0 SECTION LOCAL DEFAULT 18 .init_array - 19: 0000000000010d70 0 SECTION LOCAL DEFAULT 19 .fini_array - 20: 0000000000010d78 0 SECTION LOCAL DEFAULT 20 .dynamic - 21: 0000000000010f68 0 SECTION LOCAL DEFAULT 21 .got - 22: 0000000000011000 0 SECTION LOCAL DEFAULT 22 .data - 23: 0000000000011020 0 SECTION LOCAL DEFAULT 23 .bss - 24: 0000000000000000 0 SECTION LOCAL DEFAULT 24 .comment - 25: 0000000000000000 0 FILE LOCAL DEFAULT ABS Scrt1.o - 26: 0000000000000278 0 NOTYPE LOCAL DEFAULT 3 $d - 27: 0000000000000278 32 OBJECT LOCAL DEFAULT 3 __abi_tag - 28: 0000000000000880 0 NOTYPE LOCAL DEFAULT 13 $x - 29: 00000000000009fc 0 NOTYPE LOCAL DEFAULT 17 $d - 30: 00000000000009a8 0 NOTYPE LOCAL DEFAULT 15 $d - 31: 0000000000000000 0 FILE LOCAL DEFAULT ABS crti.o - 32: 00000000000008b4 0 NOTYPE LOCAL DEFAULT 13 $x - 33: 00000000000008b4 20 FUNC LOCAL DEFAULT 13 call_weak_fn - 34: 00000000000006d8 0 NOTYPE LOCAL DEFAULT 11 $x - 35: 0000000000000994 0 NOTYPE LOCAL DEFAULT 14 $x - 36: 0000000000000000 0 FILE LOCAL DEFAULT ABS crtn.o - 37: 00000000000006e8 0 NOTYPE LOCAL DEFAULT 11 $x - 38: 00000000000009a0 0 NOTYPE LOCAL DEFAULT 14 $x - 39: 0000000000000000 0 FILE LOCAL DEFAULT ABS malloc_memcpy_strlen_memset_free.c - 40: 00000000000007c0 0 NOTYPE LOCAL DEFAULT 13 $x - 41: 0000000000011010 0 NOTYPE LOCAL DEFAULT 22 $d - 42: 0000000000011028 0 NOTYPE LOCAL DEFAULT 23 $d - 43: 0000000000000a70 0 NOTYPE LOCAL DEFAULT 17 $d - 44: 0000000000000000 0 FILE LOCAL DEFAULT ABS crtstuff.c - 45: 00000000000008d0 0 NOTYPE LOCAL DEFAULT 13 $x - 46: 00000000000008d0 0 FUNC LOCAL DEFAULT 13 deregister_tm_clones - 47: 0000000000000900 0 FUNC LOCAL DEFAULT 13 register_tm_clones - 48: 0000000000011008 0 NOTYPE LOCAL DEFAULT 22 $d - 49: 0000000000000940 0 FUNC LOCAL DEFAULT 13 __do_global_dtors_aux - 50: 0000000000011020 1 OBJECT LOCAL DEFAULT 23 completed.0 - 51: 0000000000010d70 0 NOTYPE LOCAL DEFAULT 19 $d - 52: 0000000000010d70 0 OBJECT LOCAL DEFAULT 19 __do_global_dtors_aux_fini_array_entry - 53: 0000000000000990 0 FUNC LOCAL DEFAULT 13 frame_dummy - 54: 0000000000010d68 0 NOTYPE LOCAL DEFAULT 18 $d - 55: 0000000000010d68 0 OBJECT LOCAL DEFAULT 18 __frame_dummy_init_array_entry - 56: 0000000000000a10 0 NOTYPE LOCAL DEFAULT 17 $d - 57: 0000000000011020 0 NOTYPE LOCAL DEFAULT 23 $d - 58: 0000000000000000 0 FILE LOCAL DEFAULT ABS crtstuff.c - 59: 0000000000000a98 0 NOTYPE LOCAL DEFAULT 17 $d - 60: 0000000000000a98 0 OBJECT LOCAL DEFAULT 17 __FRAME_END__ - 61: 0000000000000000 0 FILE LOCAL DEFAULT ABS - 62: 0000000000010d78 0 OBJECT LOCAL DEFAULT ABS _DYNAMIC - 63: 00000000000009ac 0 NOTYPE LOCAL DEFAULT 16 __GNU_EH_FRAME_HDR - 64: 0000000000010fd0 0 OBJECT LOCAL DEFAULT ABS _GLOBAL_OFFSET_TABLE_ - 65: 00000000000006f0 0 NOTYPE LOCAL DEFAULT 12 $x - 66: 0000000000000000 0 FUNC GLOBAL DEFAULT UND strlen@GLIBC_2.17 - 67: 0000000000000000 0 FUNC GLOBAL DEFAULT UND __libc_start_main@GLIBC_2.34 - 68: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_deregisterTMCloneTable - 69: 0000000000011000 0 NOTYPE WEAK DEFAULT 22 data_start - 70: 000000000001101c 0 NOTYPE GLOBAL DEFAULT 23 __bss_start__ - 71: 0000000000000000 0 FUNC WEAK DEFAULT UND __cxa_finalize@GLIBC_2.17 - 72: 0000000000011030 0 NOTYPE GLOBAL DEFAULT 23 _bss_end__ - 73: 000000000001101c 0 NOTYPE GLOBAL DEFAULT 22 _edata - 74: 0000000000000000 0 FUNC GLOBAL DEFAULT UND __memcpy_chk@GLIBC_2.17 - 75: 0000000000000994 0 FUNC GLOBAL HIDDEN 14 _fini - 76: 0000000000011030 0 NOTYPE GLOBAL DEFAULT 23 __bss_end__ - 77: 0000000000000000 0 FUNC GLOBAL DEFAULT UND malloc@GLIBC_2.17 - 78: 0000000000000000 0 FUNC GLOBAL DEFAULT UND memset@GLIBC_2.17 - 79: 000000000001101b 1 OBJECT GLOBAL DEFAULT 22 password - 80: 0000000000011000 0 NOTYPE GLOBAL DEFAULT 22 __data_start - 81: 0000000000000000 0 NOTYPE WEAK DEFAULT UND __gmon_start__ - 82: 0000000000011008 0 OBJECT GLOBAL HIDDEN 22 __dso_handle - 83: 0000000000000000 0 FUNC GLOBAL DEFAULT UND abort@GLIBC_2.17 - 84: 00000000000009a8 4 OBJECT GLOBAL DEFAULT 15 _IO_stdin_used - 85: 0000000000000000 0 FUNC GLOBAL DEFAULT UND puts@GLIBC_2.17 - 86: 0000000000011030 0 NOTYPE GLOBAL DEFAULT 23 _end - 87: 0000000000000000 0 FUNC GLOBAL DEFAULT UND free@GLIBC_2.17 - 88: 0000000000000880 52 FUNC GLOBAL DEFAULT 13 _start - 89: 0000000000011028 8 OBJECT GLOBAL DEFAULT 23 buf - 90: 0000000000011030 0 NOTYPE GLOBAL DEFAULT 23 __end__ - 91: 0000000000011010 11 OBJECT GLOBAL DEFAULT 22 stext - 92: 000000000001101c 0 NOTYPE GLOBAL DEFAULT 23 __bss_start - 93: 00000000000007c0 144 FUNC GLOBAL DEFAULT 13 main - 94: 0000000000011020 0 OBJECT GLOBAL HIDDEN 22 __TMC_END__ - 95: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_registerTMCloneTable - 96: 00000000000006d8 0 FUNC GLOBAL HIDDEN 11 _init diff --git a/src/test/incorrect/basicassign/clang/basicassign.adt b/src/test/incorrect/basicassign/clang/basicassign.adt deleted file mode 100644 index f0bb8c8bc..000000000 --- a/src/test/incorrect/basicassign/clang/basicassign.adt +++ /dev/null @@ -1,518 +0,0 @@ -Project(Attrs([Attr("filename","\"clang/basicassign.out\""), -Attr("image-specification","(declare abi (name str))\n(declare arch (name str))\n(declare base-address (addr int))\n(declare bias (off int))\n(declare bits (size int))\n(declare code-region (addr int) (size int) (off int))\n(declare code-start (addr int))\n(declare entry-point (addr int))\n(declare external-reference (addr int) (name str))\n(declare format (name str))\n(declare is-executable (flag bool))\n(declare is-little-endian (flag bool))\n(declare llvm:base-address (addr int))\n(declare llvm:code-entry (name str) (off int) (size int))\n(declare llvm:coff-import-library (name str))\n(declare llvm:coff-virtual-section-header (name str) (addr int) (size int))\n(declare llvm:elf-program-header (name str) (off int) (size int))\n(declare llvm:elf-program-header-flags (name str) (ld bool) (r bool) \n (w bool) (x bool))\n(declare llvm:elf-virtual-program-header (name str) (addr int) (size int))\n(declare llvm:entry-point (addr int))\n(declare llvm:macho-symbol (name str) (value int))\n(declare llvm:name-reference (at int) (name str))\n(declare llvm:relocation (at int) (addr int))\n(declare llvm:section-entry (name str) (addr int) (size int) (off int))\n(declare llvm:section-flags (name str) (r bool) (w bool) (x bool))\n(declare llvm:segment-command (name str) (off int) (size int))\n(declare llvm:segment-command-flags (name str) (r bool) (w bool) (x bool))\n(declare llvm:symbol-entry (name str) (addr int) (size int) (off int)\n (value int))\n(declare llvm:virtual-segment-command (name str) (addr int) (size int))\n(declare mapped (addr int) (size int) (off int))\n(declare named-region (addr int) (size int) (name str))\n(declare named-symbol (addr int) (name str))\n(declare require (name str))\n(declare section (addr int) (size int))\n(declare segment (addr int) (size int) (r bool) (w bool) (x bool))\n(declare subarch (name str))\n(declare symbol-chunk (addr int) (size int) (root int))\n(declare symbol-value (addr int) (value int))\n(declare system (name str))\n(declare vendor (name str))\n\n(abi unknown)\n(arch aarch64)\n(base-address 0)\n(bias 0)\n(bits 64)\n(code-region 1868 20 1868)\n(code-region 1536 332 1536)\n(code-region 1440 96 1440)\n(code-region 1408 24 1408)\n(code-start 1588)\n(code-start 1536)\n(code-start 1812)\n(entry-point 1536)\n(external-reference 69568 _ITM_deregisterTMCloneTable)\n(external-reference 69576 __cxa_finalize)\n(external-reference 69584 __gmon_start__)\n(external-reference 69600 _ITM_registerTMCloneTable)\n(external-reference 69632 __libc_start_main)\n(external-reference 69640 __cxa_finalize)\n(external-reference 69648 __gmon_start__)\n(external-reference 69656 abort)\n(format elf)\n(is-executable true)\n(is-little-endian true)\n(llvm:base-address 0)\n(llvm:code-entry abort 0 0)\n(llvm:code-entry __cxa_finalize 0 0)\n(llvm:code-entry __libc_start_main 0 0)\n(llvm:code-entry _init 1408 0)\n(llvm:code-entry main 1812 56)\n(llvm:code-entry _start 1536 52)\n(llvm:code-entry abort@GLIBC_2.17 0 0)\n(llvm:code-entry _fini 1868 0)\n(llvm:code-entry __cxa_finalize@GLIBC_2.17 0 0)\n(llvm:code-entry __libc_start_main@GLIBC_2.34 0 0)\n(llvm:code-entry frame_dummy 1808 0)\n(llvm:code-entry __do_global_dtors_aux 1728 0)\n(llvm:code-entry register_tm_clones 1664 0)\n(llvm:code-entry deregister_tm_clones 1616 0)\n(llvm:code-entry call_weak_fn 1588 20)\n(llvm:code-entry .fini 1868 20)\n(llvm:code-entry .text 1536 332)\n(llvm:code-entry .plt 1440 96)\n(llvm:code-entry .init 1408 24)\n(llvm:elf-program-header 08 3528 568)\n(llvm:elf-program-header 07 0 0)\n(llvm:elf-program-header 06 1892 60)\n(llvm:elf-program-header 05 596 68)\n(llvm:elf-program-header 04 3544 480)\n(llvm:elf-program-header 03 3528 616)\n(llvm:elf-program-header 02 0 2132)\n(llvm:elf-program-header 01 568 27)\n(llvm:elf-program-header 00 64 504)\n(llvm:elf-program-header-flags 08 false true false false)\n(llvm:elf-program-header-flags 07 false true true false)\n(llvm:elf-program-header-flags 06 false true false false)\n(llvm:elf-program-header-flags 05 false true false false)\n(llvm:elf-program-header-flags 04 false true true false)\n(llvm:elf-program-header-flags 03 true true true false)\n(llvm:elf-program-header-flags 02 true true false true)\n(llvm:elf-program-header-flags 01 false true false false)\n(llvm:elf-program-header-flags 00 false true false false)\n(llvm:elf-virtual-program-header 08 69064 568)\n(llvm:elf-virtual-program-header 07 0 0)\n(llvm:elf-virtual-program-header 06 1892 60)\n(llvm:elf-virtual-program-header 05 596 68)\n(llvm:elf-virtual-program-header 04 69080 480)\n(llvm:elf-virtual-program-header 03 69064 632)\n(llvm:elf-virtual-program-header 02 0 2132)\n(llvm:elf-virtual-program-header 01 568 27)\n(llvm:elf-virtual-program-header 00 64 504)\n(llvm:entry-point 1536)\n(llvm:name-reference 69656 abort)\n(llvm:name-reference 69648 __gmon_start__)\n(llvm:name-reference 69640 __cxa_finalize)\n(llvm:name-reference 69632 __libc_start_main)\n(llvm:name-reference 69600 _ITM_registerTMCloneTable)\n(llvm:name-reference 69584 __gmon_start__)\n(llvm:name-reference 69576 __cxa_finalize)\n(llvm:name-reference 69568 _ITM_deregisterTMCloneTable)\n(llvm:section-entry .shstrtab 0 259 7000)\n(llvm:section-entry .strtab 0 576 6424)\n(llvm:section-entry .symtab 0 2208 4216)\n(llvm:section-entry .comment 0 71 4144)\n(llvm:section-entry .bss 69680 16 4144)\n(llvm:section-entry .data 69664 16 4128)\n(llvm:section-entry .got.plt 69608 56 4072)\n(llvm:section-entry .got 69560 48 4024)\n(llvm:section-entry .dynamic 69080 480 3544)\n(llvm:section-entry .fini_array 69072 8 3536)\n(llvm:section-entry .init_array 69064 8 3528)\n(llvm:section-entry .eh_frame 1952 180 1952)\n(llvm:section-entry .eh_frame_hdr 1892 60 1892)\n(llvm:section-entry .rodata 1888 4 1888)\n(llvm:section-entry .fini 1868 20 1868)\n(llvm:section-entry .text 1536 332 1536)\n(llvm:section-entry .plt 1440 96 1440)\n(llvm:section-entry .init 1408 24 1408)\n(llvm:section-entry .rela.plt 1312 96 1312)\n(llvm:section-entry .rela.dyn 1120 192 1120)\n(llvm:section-entry .gnu.version_r 1072 48 1072)\n(llvm:section-entry .gnu.version 1054 18 1054)\n(llvm:section-entry .dynstr 912 141 912)\n(llvm:section-entry .dynsym 696 216 696)\n(llvm:section-entry .gnu.hash 664 28 664)\n(llvm:section-entry .note.ABI-tag 632 32 632)\n(llvm:section-entry .note.gnu.build-id 596 36 596)\n(llvm:section-entry .interp 568 27 568)\n(llvm:section-flags .shstrtab true false false)\n(llvm:section-flags .strtab true false false)\n(llvm:section-flags .symtab true false false)\n(llvm:section-flags .comment true false false)\n(llvm:section-flags .bss true true false)\n(llvm:section-flags .data true true false)\n(llvm:section-flags .got.plt true true false)\n(llvm:section-flags .got true true false)\n(llvm:section-flags .dynamic true true false)\n(llvm:section-flags .fini_array true true false)\n(llvm:section-flags .init_array true true false)\n(llvm:section-flags .eh_frame true false false)\n(llvm:section-flags .eh_frame_hdr true false false)\n(llvm:section-flags .rodata true false false)\n(llvm:section-flags .fini true false true)\n(llvm:section-flags .text true false true)\n(llvm:section-flags .plt true false true)\n(llvm:section-flags .init true false true)\n(llvm:section-flags .rela.plt true false false)\n(llvm:section-flags .rela.dyn true false false)\n(llvm:section-flags .gnu.version_r true false false)\n(llvm:section-flags .gnu.version true false false)\n(llvm:section-flags .dynstr true false false)\n(llvm:section-flags .dynsym true false false)\n(llvm:section-flags .gnu.hash true false false)\n(llvm:section-flags .note.ABI-tag true false false)\n(llvm:section-flags .note.gnu.build-id true false false)\n(llvm:section-flags .interp true false false)\n(llvm:symbol-entry abort 0 0 0 0)\n(llvm:symbol-entry __cxa_finalize 0 0 0 0)\n(llvm:symbol-entry __libc_start_main 0 0 0 0)\n(llvm:symbol-entry _init 1408 0 1408 1408)\n(llvm:symbol-entry main 1812 56 1812 1812)\n(llvm:symbol-entry _start 1536 52 1536 1536)\n(llvm:symbol-entry abort@GLIBC_2.17 0 0 0 0)\n(llvm:symbol-entry _fini 1868 0 1868 1868)\n(llvm:symbol-entry __cxa_finalize@GLIBC_2.17 0 0 0 0)\n(llvm:symbol-entry __libc_start_main@GLIBC_2.34 0 0 0 0)\n(llvm:symbol-entry frame_dummy 1808 0 1808 1808)\n(llvm:symbol-entry __do_global_dtors_aux 1728 0 1728 1728)\n(llvm:symbol-entry register_tm_clones 1664 0 1664 1664)\n(llvm:symbol-entry deregister_tm_clones 1616 0 1616 1616)\n(llvm:symbol-entry call_weak_fn 1588 20 1588 1588)\n(mapped 0 2132 0)\n(mapped 69064 616 3528)\n(named-region 0 2132 02)\n(named-region 69064 632 03)\n(named-region 568 27 .interp)\n(named-region 596 36 .note.gnu.build-id)\n(named-region 632 32 .note.ABI-tag)\n(named-region 664 28 .gnu.hash)\n(named-region 696 216 .dynsym)\n(named-region 912 141 .dynstr)\n(named-region 1054 18 .gnu.version)\n(named-region 1072 48 .gnu.version_r)\n(named-region 1120 192 .rela.dyn)\n(named-region 1312 96 .rela.plt)\n(named-region 1408 24 .init)\n(named-region 1440 96 .plt)\n(named-region 1536 332 .text)\n(named-region 1868 20 .fini)\n(named-region 1888 4 .rodata)\n(named-region 1892 60 .eh_frame_hdr)\n(named-region 1952 180 .eh_frame)\n(named-region 69064 8 .init_array)\n(named-region 69072 8 .fini_array)\n(named-region 69080 480 .dynamic)\n(named-region 69560 48 .got)\n(named-region 69608 56 .got.plt)\n(named-region 69664 16 .data)\n(named-region 69680 16 .bss)\n(named-region 0 71 .comment)\n(named-region 0 2208 .symtab)\n(named-region 0 576 .strtab)\n(named-region 0 259 .shstrtab)\n(named-symbol 1588 call_weak_fn)\n(named-symbol 1616 deregister_tm_clones)\n(named-symbol 1664 register_tm_clones)\n(named-symbol 1728 __do_global_dtors_aux)\n(named-symbol 1808 frame_dummy)\n(named-symbol 0 __libc_start_main@GLIBC_2.34)\n(named-symbol 0 __cxa_finalize@GLIBC_2.17)\n(named-symbol 1868 _fini)\n(named-symbol 0 abort@GLIBC_2.17)\n(named-symbol 1536 _start)\n(named-symbol 1812 main)\n(named-symbol 1408 _init)\n(named-symbol 0 __libc_start_main)\n(named-symbol 0 __cxa_finalize)\n(named-symbol 0 abort)\n(require libc.so.6)\n(section 568 27)\n(section 596 36)\n(section 632 32)\n(section 664 28)\n(section 696 216)\n(section 912 141)\n(section 1054 18)\n(section 1072 48)\n(section 1120 192)\n(section 1312 96)\n(section 1408 24)\n(section 1440 96)\n(section 1536 332)\n(section 1868 20)\n(section 1888 4)\n(section 1892 60)\n(section 1952 180)\n(section 69064 8)\n(section 69072 8)\n(section 69080 480)\n(section 69560 48)\n(section 69608 56)\n(section 69664 16)\n(section 69680 16)\n(section 0 71)\n(section 0 2208)\n(section 0 576)\n(section 0 259)\n(segment 0 2132 true false true)\n(segment 69064 632 true true false)\n(subarch v8)\n(symbol-chunk 1588 20 1588)\n(symbol-chunk 1536 52 1536)\n(symbol-chunk 1812 56 1812)\n(symbol-value 1588 1588)\n(symbol-value 1616 1616)\n(symbol-value 1664 1664)\n(symbol-value 1728 1728)\n(symbol-value 1808 1808)\n(symbol-value 1868 1868)\n(symbol-value 1536 1536)\n(symbol-value 1812 1812)\n(symbol-value 1408 1408)\n(symbol-value 0 0)\n(system \"\")\n(vendor \"\")\n"), -Attr("abi-name","\"aarch64-linux-gnu-elf\"")]), -Sections([Section(".shstrtab", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x00\x06\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x60\x1c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x38\x00\x09\x00\x40\x00\x1d\x00\x1c\x00\x06\x00\x00\x00\x04\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x04\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x54\x08\x00\x00\x00\x00\x00\x00\x54\x08\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x01\x00\x00\x00\x06\x00\x00\x00\xc8\x0d\x00\x00\x00\x00\x00\x00\xc8\x0d\x01\x00\x00\x00\x00\x00\xc8\x0d\x01"), -Section(".strtab", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x00\x06\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x60\x1c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x38\x00\x09\x00\x40\x00\x1d\x00\x1c\x00\x06\x00\x00\x00\x04\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x04\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x54\x08\x00\x00\x00\x00\x00\x00\x54\x08\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x01\x00\x00\x00\x06\x00\x00\x00\xc8\x0d\x00\x00\x00\x00\x00\x00\xc8\x0d\x01\x00\x00\x00\x00\x00\xc8\x0d\x01\x00\x00\x00\x00\x00\x68\x02\x00\x00\x00\x00\x00\x00\x78\x02\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x02\x00\x00\x00\x06\x00\x00\x00\xd8\x0d\x00\x00\x00\x00\x00\x00\xd8\x0d\x01\x00\x00\x00\x00\x00\xd8\x0d\x01\x00\x00\x00\x00\x00\xe0\x01\x00\x00\x00\x00\x00\x00\xe0\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x04\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x50\xe5\x74\x64\x04\x00\x00\x00\x64\x07\x00\x00\x00\x00\x00\x00\x64\x07\x00\x00\x00\x00\x00\x00\x64\x07\x00\x00\x00\x00\x00\x00\x3c\x00\x00\x00\x00\x00\x00\x00\x3c\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x51\xe5\x74\x64\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x52\xe5\x74\x64\x04\x00\x00\x00\xc8\x0d\x00\x00\x00\x00\x00\x00\xc8\x0d\x01\x00\x00\x00\x00\x00\xc8\x0d\x01\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x2f\x6c\x69\x62\x2f\x6c\x64\x2d"), -Section(".comment", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x00\x06\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x60\x1c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x38\x00\x09\x00\x40\x00\x1d\x00\x1c\x00\x06\x00\x00\x00\x04\x00\x00"), -Section(".interp", 0x238, "\x2f\x6c\x69\x62\x2f\x6c\x64\x2d\x6c\x69\x6e\x75\x78\x2d\x61\x61\x72\x63\x68\x36\x34\x2e\x73\x6f\x2e\x31\x00"), -Section(".note.gnu.build-id", 0x254, "\x04\x00\x00\x00\x14\x00\x00\x00\x03\x00\x00\x00\x47\x4e\x55\x00\x7c\x3c\xb7\x5c\x5c\xb5\x1a\xbb\x5e\x31\xbf\x78\x22\xb9\x08\x90\x37\xf0\x9e\x68"), -Section(".note.ABI-tag", 0x278, "\x04\x00\x00\x00\x10\x00\x00\x00\x01\x00\x00\x00\x47\x4e\x55\x00\x00\x00\x00\x00\x03\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00"), -Section(".gnu.hash", 0x298, "\x01\x00\x00\x00\x01\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".dynsym", 0x2B8, "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x0b\x00\x80\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x17\x00\x20\x10\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x48\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x22\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x22\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x73\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".dynstr", 0x390, "\x00\x5f\x5f\x63\x78\x61\x5f\x66\x69\x6e\x61\x6c\x69\x7a\x65\x00\x5f\x5f\x6c\x69\x62\x63\x5f\x73\x74\x61\x72\x74\x5f\x6d\x61\x69\x6e\x00\x61\x62\x6f\x72\x74\x00\x6c\x69\x62\x63\x2e\x73\x6f\x2e\x36\x00\x47\x4c\x49\x42\x43\x5f\x32\x2e\x31\x37\x00\x47\x4c\x49\x42\x43\x5f\x32\x2e\x33\x34\x00\x5f\x49\x54\x4d\x5f\x64\x65\x72\x65\x67\x69\x73\x74\x65\x72\x54\x4d\x43\x6c\x6f\x6e\x65\x54\x61\x62\x6c\x65\x00\x5f\x5f\x67\x6d\x6f\x6e\x5f\x73\x74\x61\x72\x74\x5f\x5f\x00\x5f\x49\x54\x4d\x5f\x72\x65\x67\x69\x73\x74\x65\x72\x54\x4d\x43\x6c\x6f\x6e\x65\x54\x61\x62\x6c\x65\x00"), -Section(".gnu.version", 0x41E, "\x00\x00\x00\x00\x00\x00\x02\x00\x01\x00\x03\x00\x01\x00\x03\x00\x01\x00"), -Section(".gnu.version_r", 0x430, "\x01\x00\x02\x00\x28\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x97\x91\x96\x06\x00\x00\x03\x00\x32\x00\x00\x00\x10\x00\x00\x00\xb4\x91\x96\x06\x00\x00\x02\x00\x3d\x00\x00\x00\x00\x00\x00\x00"), -Section(".rela.dyn", 0x460, "\xc8\x0d\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x10\x07\x00\x00\x00\x00\x00\x00\xd0\x0d\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\xc0\x06\x00\x00\x00\x00\x00\x00\xd8\x0f\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x14\x07\x00\x00\x00\x00\x00\x00\x28\x10\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x28\x10\x01\x00\x00\x00\x00\x00\xc0\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xc8\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xd0\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe0\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".rela.plt", 0x520, "\x00\x10\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x08\x10\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x10\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x18\x10\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".init", 0x580, "\x1f\x20\x03\xd5\xfd\x7b\xbf\xa9\xfd\x03\x00\x91\x2a\x00\x00\x94\xfd\x7b\xc1\xa8\xc0\x03\x5f\xd6"), -Section(".plt", 0x5A0, "\xf0\x7b\xbf\xa9\x90\x00\x00\x90\x11\xfe\x47\xf9\x10\xe2\x3f\x91\x20\x02\x1f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x90\x00\x00\xb0\x11\x02\x40\xf9\x10\x02\x00\x91\x20\x02\x1f\xd6\x90\x00\x00\xb0\x11\x06\x40\xf9\x10\x22\x00\x91\x20\x02\x1f\xd6\x90\x00\x00\xb0\x11\x0a\x40\xf9\x10\x42\x00\x91\x20\x02\x1f\xd6\x90\x00\x00\xb0\x11\x0e\x40\xf9\x10\x62\x00\x91\x20\x02\x1f\xd6"), -Section(".text", 0x600, "\x1f\x20\x03\xd5\x1d\x00\x80\xd2\x1e\x00\x80\xd2\xe5\x03\x00\xaa\xe1\x03\x40\xf9\xe2\x23\x00\x91\xe6\x03\x00\x91\x80\x00\x00\x90\x00\xec\x47\xf9\x03\x00\x80\xd2\x04\x00\x80\xd2\xe5\xff\xff\x97\xf0\xff\xff\x97\x80\x00\x00\x90\x00\xe8\x47\xf9\x40\x00\x00\xb4\xe8\xff\xff\x17\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x80\x00\x00\xb0\x00\xc0\x00\x91\x81\x00\x00\xb0\x21\xc0\x00\x91\x3f\x00\x00\xeb\xc0\x00\x00\x54\x81\x00\x00\x90\x21\xe0\x47\xf9\x61\x00\x00\xb4\xf0\x03\x01\xaa\x00\x02\x1f\xd6\xc0\x03\x5f\xd6\x80\x00\x00\xb0\x00\xc0\x00\x91\x81\x00\x00\xb0\x21\xc0\x00\x91\x21\x00\x00\xcb\x22\xfc\x7f\xd3\x41\x0c\x81\x8b\x21\xfc\x41\x93\xc1\x00\x00\xb4\x82\x00\x00\x90\x42\xf0\x47\xf9\x62\x00\x00\xb4\xf0\x03\x02\xaa\x00\x02\x1f\xd6\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\xfd\x7b\xbe\xa9\xfd\x03\x00\x91\xf3\x0b\x00\xf9\x93\x00\x00\xb0\x60\xc2\x40\x39\x40\x01\x00\x35\x80\x00\x00\x90\x00\xe4\x47\xf9\x80\x00\x00\xb4\x80\x00\x00\xb0\x00\x14\x40\xf9\xb9\xff\xff\x97\xd8\xff\xff\x97\x20\x00\x80\x52\x60\xc2\x00\x39\xf3\x0b\x40\xf9\xfd\x7b\xc2\xa8\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\xdc\xff\xff\x17\x8a\x00\x00\xb0\x49\x35\x40\xb9\x88\x00\x00\xb0\x09\x39\x00\xb9\xe0\x03\x1f\x2a\x1f\x39\x00\xb9\x0b\x39\x40\xb9\x89\x00\x00\xb0\x2b\x3d\x00\xb9\x4a\x35\x40\xb9\x0a\x39\x00\xb9\x08\x39\x40\xb9\x28\x3d\x00\xb9\xc0\x03\x5f\xd6"), -Section(".fini", 0x74C, "\x1f\x20\x03\xd5\xfd\x7b\xbf\xa9\xfd\x03\x00\x91\xfd\x7b\xc1\xa8\xc0\x03\x5f\xd6"), -Section(".rodata", 0x760, "\x01\x00\x02\x00"), -Section(".eh_frame_hdr", 0x764, "\x01\x1b\x03\x3b\x38\x00\x00\x00\x06\x00\x00\x00\x9c\xfe\xff\xff\x50\x00\x00\x00\xec\xfe\xff\xff\x64\x00\x00\x00\x1c\xff\xff\xff\x78\x00\x00\x00\x5c\xff\xff\xff\x8c\x00\x00\x00\xac\xff\xff\xff\xb0\x00\x00\x00\xb0\xff\xff\xff\xd8\x00\x00\x00"), -Section(".eh_frame", 0x7A0, "\x10\x00\x00\x00\x00\x00\x00\x00\x01\x7a\x52\x00\x04\x78\x1e\x01\x1b\x0c\x1f\x00\x10\x00\x00\x00\x18\x00\x00\x00\x44\xfe\xff\xff\x34\x00\x00\x00\x00\x41\x07\x1e\x10\x00\x00\x00\x2c\x00\x00\x00\x80\xfe\xff\xff\x30\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x40\x00\x00\x00\x9c\xfe\xff\xff\x3c\x00\x00\x00\x00\x00\x00\x00\x20\x00\x00\x00\x54\x00\x00\x00\xc8\xfe\xff\xff\x48\x00\x00\x00\x00\x41\x0e\x20\x9d\x04\x9e\x03\x42\x93\x02\x4e\xde\xdd\xd3\x0e\x00\x00\x00\x00\x10\x00\x00\x00\x78\x00\x00\x00\xf4\xfe\xff\xff\x04\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x01\x7a\x52\x00\x01\x7c\x1e\x01\x1b\x0c\x1f\x00\x10\x00\x00\x00\x18\x00\x00\x00\xd0\xfe\xff\xff\x38\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".fini_array", 0x10DD0, "\xc0\x06\x00\x00\x00\x00\x00\x00"), -Section(".dynamic", 0x10DD8, "\x01\x00\x00\x00\x00\x00\x00\x00\x28\x00\x00\x00\x00\x00\x00\x00\x0c\x00\x00\x00\x00\x00\x00\x00\x80\x05\x00\x00\x00\x00\x00\x00\x0d\x00\x00\x00\x00\x00\x00\x00\x4c\x07\x00\x00\x00\x00\x00\x00\x19\x00\x00\x00\x00\x00\x00\x00\xc8\x0d\x01\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x1a\x00\x00\x00\x00\x00\x00\x00\xd0\x0d\x01\x00\x00\x00\x00\x00\x1c\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\xf5\xfe\xff\x6f\x00\x00\x00\x00\x98\x02\x00\x00\x00\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x90\x03\x00\x00\x00\x00\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\xb8\x02\x00\x00\x00\x00\x00\x00\x0a\x00\x00\x00\x00\x00\x00\x00\x8d\x00\x00\x00\x00\x00\x00\x00\x0b\x00\x00\x00\x00\x00\x00\x00\x18\x00\x00\x00\x00\x00\x00\x00\x15\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\xe8\x0f\x01\x00\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x60\x00\x00\x00\x00\x00\x00\x00\x14\x00\x00\x00\x00\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x17\x00\x00\x00\x00\x00\x00\x00\x20\x05\x00\x00\x00\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x60\x04\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\xc0\x00\x00\x00\x00\x00\x00\x00\x09\x00\x00\x00\x00\x00\x00\x00\x18\x00\x00\x00\x00\x00\x00\x00\xfb\xff\xff\x6f\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\xfe\xff\xff\x6f\x00\x00\x00\x00\x30\x04\x00\x00\x00\x00\x00\x00\xff\xff\xff\x6f\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\xf0\xff\xff\x6f\x00\x00\x00\x00\x1e\x04\x00\x00\x00\x00\x00\x00\xf9\xff\xff\x6f\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".init_array", 0x10DC8, "\x10\x07\x00\x00\x00\x00\x00\x00"), -Section(".got", 0x10FB8, "\xd8\x0d\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x14\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".got.plt", 0x10FE8, "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xa0\x05\x00\x00\x00\x00\x00\x00\xa0\x05\x00\x00\x00\x00\x00\x00\xa0\x05\x00\x00\x00\x00\x00\x00\xa0\x05\x00\x00\x00\x00\x00\x00"), -Section(".data", 0x11020, "\x00\x00\x00\x00\x00\x00\x00\x00\x28\x10\x01\x00\x00\x00\x00\x00")]), -Memmap([Annotation(Region(0x0,0x853), Attr("segment","02 0 2132")), -Annotation(Region(0x600,0x633), Attr("symbol","\"_start\"")), -Annotation(Region(0x0,0x102), Attr("section","\".shstrtab\"")), -Annotation(Region(0x0,0x23F), Attr("section","\".strtab\"")), -Annotation(Region(0x0,0x46), Attr("section","\".comment\"")), -Annotation(Region(0x238,0x252), Attr("section","\".interp\"")), -Annotation(Region(0x254,0x277), Attr("section","\".note.gnu.build-id\"")), -Annotation(Region(0x278,0x297), Attr("section","\".note.ABI-tag\"")), -Annotation(Region(0x298,0x2B3), Attr("section","\".gnu.hash\"")), -Annotation(Region(0x2B8,0x38F), Attr("section","\".dynsym\"")), -Annotation(Region(0x390,0x41C), Attr("section","\".dynstr\"")), -Annotation(Region(0x41E,0x42F), Attr("section","\".gnu.version\"")), -Annotation(Region(0x430,0x45F), Attr("section","\".gnu.version_r\"")), -Annotation(Region(0x460,0x51F), Attr("section","\".rela.dyn\"")), -Annotation(Region(0x520,0x57F), Attr("section","\".rela.plt\"")), -Annotation(Region(0x580,0x597), Attr("section","\".init\"")), -Annotation(Region(0x5A0,0x5FF), Attr("section","\".plt\"")), -Annotation(Region(0x580,0x597), Attr("code-region","()")), -Annotation(Region(0x5A0,0x5FF), Attr("code-region","()")), -Annotation(Region(0x600,0x633), Attr("symbol-info","_start 0x600 52")), -Annotation(Region(0x634,0x647), Attr("symbol","\"call_weak_fn\"")), -Annotation(Region(0x634,0x647), Attr("symbol-info","call_weak_fn 0x634 20")), -Annotation(Region(0x600,0x74B), Attr("section","\".text\"")), -Annotation(Region(0x600,0x74B), Attr("code-region","()")), -Annotation(Region(0x714,0x74B), Attr("symbol","\"main\"")), -Annotation(Region(0x714,0x74B), Attr("symbol-info","main 0x714 56")), -Annotation(Region(0x74C,0x75F), Attr("section","\".fini\"")), -Annotation(Region(0x74C,0x75F), Attr("code-region","()")), -Annotation(Region(0x760,0x763), Attr("section","\".rodata\"")), -Annotation(Region(0x764,0x79F), Attr("section","\".eh_frame_hdr\"")), -Annotation(Region(0x7A0,0x853), Attr("section","\".eh_frame\"")), -Annotation(Region(0x10DC8,0x1102F), Attr("segment","03 0x10DC8 632")), -Annotation(Region(0x10DD0,0x10DD7), Attr("section","\".fini_array\"")), -Annotation(Region(0x10DD8,0x10FB7), Attr("section","\".dynamic\"")), -Annotation(Region(0x10DC8,0x10DCF), Attr("section","\".init_array\"")), -Annotation(Region(0x10FB8,0x10FE7), Attr("section","\".got\"")), -Annotation(Region(0x10FE8,0x1101F), Attr("section","\".got.plt\"")), -Annotation(Region(0x11020,0x1102F), Attr("section","\".data\""))]), -Program(Tid(1_507, "%000005e3"), Attrs([]), - Subs([Sub(Tid(1_485, "@__cxa_finalize"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x5D0"), -Attr("stub","()")]), "__cxa_finalize", Args([Arg(Tid(1_508, "%000005e4"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("__cxa_finalize_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(885, "@__cxa_finalize"), - Attrs([Attr("address","0x5D0")]), Phis([]), -Defs([Def(Tid(1_133, "%0000046d"), Attrs([Attr("address","0x5D0"), -Attr("insn","adrp x16, #69632")]), Var("R16",Imm(64)), Int(69632,64)), -Def(Tid(1_140, "%00000474"), Attrs([Attr("address","0x5D4"), -Attr("insn","ldr x17, [x16, #0x8]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(1_146, "%0000047a"), Attrs([Attr("address","0x5D8"), -Attr("insn","add x16, x16, #0x8")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(8,64)))]), Jmps([Call(Tid(1_151, "%0000047f"), - Attrs([Attr("address","0x5DC"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), -Sub(Tid(1_486, "@__do_global_dtors_aux"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x6C0")]), - "__do_global_dtors_aux", Args([Arg(Tid(1_509, "%000005e5"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("__do_global_dtors_aux_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(646, "@__do_global_dtors_aux"), - Attrs([Attr("address","0x6C0")]), Phis([]), Defs([Def(Tid(650, "%0000028a"), - Attrs([Attr("address","0x6C0"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("#3",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(18446744073709551584,64))), -Def(Tid(656, "%00000290"), Attrs([Attr("address","0x6C0"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("#3",Imm(64)),Var("R29",Imm(64)),LittleEndian(),64)), -Def(Tid(662, "%00000296"), Attrs([Attr("address","0x6C0"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("#3",Imm(64)),Int(8,64)),Var("R30",Imm(64)),LittleEndian(),64)), -Def(Tid(666, "%0000029a"), Attrs([Attr("address","0x6C0"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("R31",Imm(64)), -Var("#3",Imm(64))), Def(Tid(672, "%000002a0"), - Attrs([Attr("address","0x6C4"), Attr("insn","mov x29, sp")]), - Var("R29",Imm(64)), Var("R31",Imm(64))), Def(Tid(680, "%000002a8"), - Attrs([Attr("address","0x6C8"), Attr("insn","str x19, [sp, #0x10]")]), - Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(16,64)),Var("R19",Imm(64)),LittleEndian(),64)), -Def(Tid(685, "%000002ad"), Attrs([Attr("address","0x6CC"), -Attr("insn","adrp x19, #69632")]), Var("R19",Imm(64)), Int(69632,64)), -Def(Tid(692, "%000002b4"), Attrs([Attr("address","0x6D0"), -Attr("insn","ldrb w0, [x19, #0x30]")]), Var("R0",Imm(64)), -UNSIGNED(64,Load(Var("mem",Mem(64,8)),PLUS(Var("R19",Imm(64)),Int(48,64)),LittleEndian(),8)))]), -Jmps([Goto(Tid(699, "%000002bb"), Attrs([Attr("address","0x6D4"), -Attr("insn","cbnz w0, #0x28")]), - NEQ(Extract(31,0,Var("R0",Imm(64))),Int(0,32)), -Direct(Tid(697, "%000002b9"))), Goto(Tid(1_487, "%000005cf"), Attrs([]), - Int(1,1), Direct(Tid(830, "%0000033e")))])), Blk(Tid(830, "%0000033e"), - Attrs([Attr("address","0x6D8")]), Phis([]), Defs([Def(Tid(833, "%00000341"), - Attrs([Attr("address","0x6D8"), Attr("insn","adrp x0, #65536")]), - Var("R0",Imm(64)), Int(65536,64)), Def(Tid(840, "%00000348"), - Attrs([Attr("address","0x6DC"), Attr("insn","ldr x0, [x0, #0xfc8]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(4040,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(846, "%0000034e"), Attrs([Attr("address","0x6E0"), -Attr("insn","cbz x0, #0x10")]), EQ(Var("R0",Imm(64)),Int(0,64)), -Direct(Tid(844, "%0000034c"))), Goto(Tid(1_488, "%000005d0"), Attrs([]), - Int(1,1), Direct(Tid(869, "%00000365")))])), Blk(Tid(869, "%00000365"), - Attrs([Attr("address","0x6E4")]), Phis([]), Defs([Def(Tid(872, "%00000368"), - Attrs([Attr("address","0x6E4"), Attr("insn","adrp x0, #69632")]), - Var("R0",Imm(64)), Int(69632,64)), Def(Tid(879, "%0000036f"), - Attrs([Attr("address","0x6E8"), Attr("insn","ldr x0, [x0, #0x28]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(40,64)),LittleEndian(),64)), -Def(Tid(884, "%00000374"), Attrs([Attr("address","0x6EC"), -Attr("insn","bl #-0x11c")]), Var("R30",Imm(64)), Int(1776,64))]), -Jmps([Call(Tid(887, "%00000377"), Attrs([Attr("address","0x6EC"), -Attr("insn","bl #-0x11c")]), Int(1,1), -(Direct(Tid(1_485, "@__cxa_finalize")),Direct(Tid(844, "%0000034c"))))])), -Blk(Tid(844, "%0000034c"), Attrs([Attr("address","0x6F0")]), Phis([]), -Defs([Def(Tid(852, "%00000354"), Attrs([Attr("address","0x6F0"), -Attr("insn","bl #-0xa0")]), Var("R30",Imm(64)), Int(1780,64))]), -Jmps([Call(Tid(854, "%00000356"), Attrs([Attr("address","0x6F0"), -Attr("insn","bl #-0xa0")]), Int(1,1), -(Direct(Tid(1_499, "@deregister_tm_clones")),Direct(Tid(856, "%00000358"))))])), -Blk(Tid(856, "%00000358"), Attrs([Attr("address","0x6F4")]), Phis([]), -Defs([Def(Tid(859, "%0000035b"), Attrs([Attr("address","0x6F4"), -Attr("insn","mov w0, #0x1")]), Var("R0",Imm(64)), Int(1,64)), -Def(Tid(867, "%00000363"), Attrs([Attr("address","0x6F8"), -Attr("insn","strb w0, [x19, #0x30]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R19",Imm(64)),Int(48,64)),Extract(7,0,Var("R0",Imm(64))),LittleEndian(),8))]), -Jmps([Goto(Tid(1_489, "%000005d1"), Attrs([]), Int(1,1), -Direct(Tid(697, "%000002b9")))])), Blk(Tid(697, "%000002b9"), - Attrs([Attr("address","0x6FC")]), Phis([]), Defs([Def(Tid(707, "%000002c3"), - Attrs([Attr("address","0x6FC"), Attr("insn","ldr x19, [sp, #0x10]")]), - Var("R19",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(16,64)),LittleEndian(),64)), -Def(Tid(714, "%000002ca"), Attrs([Attr("address","0x700"), -Attr("insn","ldp x29, x30, [sp], #0x20")]), Var("R29",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(719, "%000002cf"), Attrs([Attr("address","0x700"), -Attr("insn","ldp x29, x30, [sp], #0x20")]), Var("R30",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(723, "%000002d3"), Attrs([Attr("address","0x700"), -Attr("insn","ldp x29, x30, [sp], #0x20")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(32,64)))]), Jmps([Call(Tid(728, "%000002d8"), - Attrs([Attr("address","0x704"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), Sub(Tid(1_490, "@__libc_start_main"), - Attrs([Attr("c.proto","signed (*)(signed (*)(signed , char** , char** );* main, signed , char** , \nvoid* auxv)"), -Attr("address","0x5C0"), Attr("stub","()")]), "__libc_start_main", - Args([Arg(Tid(1_510, "%000005e6"), - Attrs([Attr("c.layout","**[ : 64]"), -Attr("c.data","Top:u64 ptr ptr"), -Attr("c.type","signed (*)(signed , char** , char** );*")]), - Var("__libc_start_main_main",Imm(64)), Var("R0",Imm(64)), In()), -Arg(Tid(1_511, "%000005e7"), Attrs([Attr("c.layout","[signed : 32]"), -Attr("c.data","Top:u32"), Attr("c.type","signed")]), - Var("__libc_start_main_arg2",Imm(32)), LOW(32,Var("R1",Imm(64))), In()), -Arg(Tid(1_512, "%000005e8"), Attrs([Attr("c.layout","**[char : 8]"), -Attr("c.data","Top:u8 ptr ptr"), Attr("c.type","char**")]), - Var("__libc_start_main_arg3",Imm(64)), Var("R2",Imm(64)), Both()), -Arg(Tid(1_513, "%000005e9"), Attrs([Attr("c.layout","*[ : 8]"), -Attr("c.data","{} ptr"), Attr("c.type","void*")]), - Var("__libc_start_main_auxv",Imm(64)), Var("R3",Imm(64)), Both()), -Arg(Tid(1_514, "%000005ea"), Attrs([Attr("c.layout","[signed : 32]"), -Attr("c.data","Top:u32"), Attr("c.type","signed")]), - Var("__libc_start_main_result",Imm(32)), LOW(32,Var("R0",Imm(64))), -Out())]), Blks([Blk(Tid(479, "@__libc_start_main"), - Attrs([Attr("address","0x5C0")]), Phis([]), -Defs([Def(Tid(1_111, "%00000457"), Attrs([Attr("address","0x5C0"), -Attr("insn","adrp x16, #69632")]), Var("R16",Imm(64)), Int(69632,64)), -Def(Tid(1_118, "%0000045e"), Attrs([Attr("address","0x5C4"), -Attr("insn","ldr x17, [x16]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R16",Imm(64)),LittleEndian(),64)), -Def(Tid(1_124, "%00000464"), Attrs([Attr("address","0x5C8"), -Attr("insn","add x16, x16, #0x0")]), Var("R16",Imm(64)), -Var("R16",Imm(64)))]), Jmps([Call(Tid(1_129, "%00000469"), - Attrs([Attr("address","0x5CC"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), Sub(Tid(1_491, "@_fini"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x74C")]), - "_fini", Args([Arg(Tid(1_515, "%000005eb"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("_fini_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(31, "@_fini"), - Attrs([Attr("address","0x74C")]), Phis([]), Defs([Def(Tid(37, "%00000025"), - Attrs([Attr("address","0x750"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("#0",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(18446744073709551600,64))), -Def(Tid(43, "%0000002b"), Attrs([Attr("address","0x750"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("#0",Imm(64)),Var("R29",Imm(64)),LittleEndian(),64)), -Def(Tid(49, "%00000031"), Attrs([Attr("address","0x750"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("#0",Imm(64)),Int(8,64)),Var("R30",Imm(64)),LittleEndian(),64)), -Def(Tid(53, "%00000035"), Attrs([Attr("address","0x750"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("R31",Imm(64)), -Var("#0",Imm(64))), Def(Tid(59, "%0000003b"), Attrs([Attr("address","0x754"), -Attr("insn","mov x29, sp")]), Var("R29",Imm(64)), Var("R31",Imm(64))), -Def(Tid(66, "%00000042"), Attrs([Attr("address","0x758"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R29",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(71, "%00000047"), Attrs([Attr("address","0x758"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R30",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(75, "%0000004b"), Attrs([Attr("address","0x758"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(16,64)))]), Jmps([Call(Tid(80, "%00000050"), - Attrs([Attr("address","0x75C"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), Sub(Tid(1_492, "@_init"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x580")]), - "_init", Args([Arg(Tid(1_516, "%000005ec"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("_init_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(1_313, "@_init"), - Attrs([Attr("address","0x580")]), Phis([]), -Defs([Def(Tid(1_319, "%00000527"), Attrs([Attr("address","0x584"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("#5",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(18446744073709551600,64))), -Def(Tid(1_325, "%0000052d"), Attrs([Attr("address","0x584"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("#5",Imm(64)),Var("R29",Imm(64)),LittleEndian(),64)), -Def(Tid(1_331, "%00000533"), Attrs([Attr("address","0x584"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("#5",Imm(64)),Int(8,64)),Var("R30",Imm(64)),LittleEndian(),64)), -Def(Tid(1_335, "%00000537"), Attrs([Attr("address","0x584"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("R31",Imm(64)), -Var("#5",Imm(64))), Def(Tid(1_341, "%0000053d"), - Attrs([Attr("address","0x588"), Attr("insn","mov x29, sp")]), - Var("R29",Imm(64)), Var("R31",Imm(64))), Def(Tid(1_346, "%00000542"), - Attrs([Attr("address","0x58C"), Attr("insn","bl #0xa8")]), - Var("R30",Imm(64)), Int(1424,64))]), Jmps([Call(Tid(1_348, "%00000544"), - Attrs([Attr("address","0x58C"), Attr("insn","bl #0xa8")]), Int(1,1), -(Direct(Tid(1_497, "@call_weak_fn")),Direct(Tid(1_350, "%00000546"))))])), -Blk(Tid(1_350, "%00000546"), Attrs([Attr("address","0x590")]), Phis([]), -Defs([Def(Tid(1_355, "%0000054b"), Attrs([Attr("address","0x590"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R29",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(1_360, "%00000550"), Attrs([Attr("address","0x590"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R30",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(1_364, "%00000554"), Attrs([Attr("address","0x590"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(16,64)))]), Jmps([Call(Tid(1_369, "%00000559"), - Attrs([Attr("address","0x594"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), Sub(Tid(1_493, "@_start"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x600"), -Attr("stub","()"), Attr("entry-point","()")]), "_start", - Args([Arg(Tid(1_517, "%000005ed"), Attrs([Attr("c.layout","[signed : 32]"), -Attr("c.data","Top:u32"), Attr("c.type","signed")]), - Var("_start_result",Imm(32)), LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(416, "@_start"), Attrs([Attr("address","0x600")]), Phis([]), -Defs([Def(Tid(421, "%000001a5"), Attrs([Attr("address","0x604"), -Attr("insn","mov x29, #0x0")]), Var("R29",Imm(64)), Int(0,64)), -Def(Tid(426, "%000001aa"), Attrs([Attr("address","0x608"), -Attr("insn","mov x30, #0x0")]), Var("R30",Imm(64)), Int(0,64)), -Def(Tid(432, "%000001b0"), Attrs([Attr("address","0x60C"), -Attr("insn","mov x5, x0")]), Var("R5",Imm(64)), Var("R0",Imm(64))), -Def(Tid(439, "%000001b7"), Attrs([Attr("address","0x610"), -Attr("insn","ldr x1, [sp]")]), Var("R1",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(445, "%000001bd"), Attrs([Attr("address","0x614"), -Attr("insn","add x2, sp, #0x8")]), Var("R2",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(8,64))), Def(Tid(451, "%000001c3"), - Attrs([Attr("address","0x618"), Attr("insn","mov x6, sp")]), - Var("R6",Imm(64)), Var("R31",Imm(64))), Def(Tid(456, "%000001c8"), - Attrs([Attr("address","0x61C"), Attr("insn","adrp x0, #65536")]), - Var("R0",Imm(64)), Int(65536,64)), Def(Tid(463, "%000001cf"), - Attrs([Attr("address","0x620"), Attr("insn","ldr x0, [x0, #0xfd8]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(4056,64)),LittleEndian(),64)), -Def(Tid(468, "%000001d4"), Attrs([Attr("address","0x624"), -Attr("insn","mov x3, #0x0")]), Var("R3",Imm(64)), Int(0,64)), -Def(Tid(473, "%000001d9"), Attrs([Attr("address","0x628"), -Attr("insn","mov x4, #0x0")]), Var("R4",Imm(64)), Int(0,64)), -Def(Tid(478, "%000001de"), Attrs([Attr("address","0x62C"), -Attr("insn","bl #-0x6c")]), Var("R30",Imm(64)), Int(1584,64))]), -Jmps([Call(Tid(481, "%000001e1"), Attrs([Attr("address","0x62C"), -Attr("insn","bl #-0x6c")]), Int(1,1), -(Direct(Tid(1_490, "@__libc_start_main")),Direct(Tid(483, "%000001e3"))))])), -Blk(Tid(483, "%000001e3"), Attrs([Attr("address","0x630")]), Phis([]), -Defs([Def(Tid(486, "%000001e6"), Attrs([Attr("address","0x630"), -Attr("insn","bl #-0x40")]), Var("R30",Imm(64)), Int(1588,64))]), -Jmps([Call(Tid(489, "%000001e9"), Attrs([Attr("address","0x630"), -Attr("insn","bl #-0x40")]), Int(1,1), -(Direct(Tid(1_496, "@abort")),Direct(Tid(1_494, "%000005d6"))))])), -Blk(Tid(1_494, "%000005d6"), Attrs([]), Phis([]), Defs([]), -Jmps([Call(Tid(1_495, "%000005d7"), Attrs([]), Int(1,1), -(Direct(Tid(1_497, "@call_weak_fn")),))]))])), Sub(Tid(1_496, "@abort"), - Attrs([Attr("noreturn","()"), Attr("c.proto","void (*)(void)"), -Attr("address","0x5F0"), Attr("stub","()")]), "abort", Args([]), -Blks([Blk(Tid(487, "@abort"), Attrs([Attr("address","0x5F0")]), Phis([]), -Defs([Def(Tid(1_177, "%00000499"), Attrs([Attr("address","0x5F0"), -Attr("insn","adrp x16, #69632")]), Var("R16",Imm(64)), Int(69632,64)), -Def(Tid(1_184, "%000004a0"), Attrs([Attr("address","0x5F4"), -Attr("insn","ldr x17, [x16, #0x18]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(24,64)),LittleEndian(),64)), -Def(Tid(1_190, "%000004a6"), Attrs([Attr("address","0x5F8"), -Attr("insn","add x16, x16, #0x18")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(24,64)))]), Jmps([Call(Tid(1_195, "%000004ab"), - Attrs([Attr("address","0x5FC"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), Sub(Tid(1_497, "@call_weak_fn"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x634")]), - "call_weak_fn", Args([Arg(Tid(1_518, "%000005ee"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("call_weak_fn_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(491, "@call_weak_fn"), - Attrs([Attr("address","0x634")]), Phis([]), Defs([Def(Tid(494, "%000001ee"), - Attrs([Attr("address","0x634"), Attr("insn","adrp x0, #65536")]), - Var("R0",Imm(64)), Int(65536,64)), Def(Tid(501, "%000001f5"), - Attrs([Attr("address","0x638"), Attr("insn","ldr x0, [x0, #0xfd0]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(4048,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(507, "%000001fb"), Attrs([Attr("address","0x63C"), -Attr("insn","cbz x0, #0x8")]), EQ(Var("R0",Imm(64)),Int(0,64)), -Direct(Tid(505, "%000001f9"))), Goto(Tid(1_498, "%000005da"), Attrs([]), - Int(1,1), Direct(Tid(949, "%000003b5")))])), Blk(Tid(505, "%000001f9"), - Attrs([Attr("address","0x644")]), Phis([]), Defs([]), -Jmps([Call(Tid(513, "%00000201"), Attrs([Attr("address","0x644"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))])), -Blk(Tid(949, "%000003b5"), Attrs([Attr("address","0x640")]), Phis([]), -Defs([]), Jmps([Goto(Tid(952, "%000003b8"), Attrs([Attr("address","0x640"), -Attr("insn","b #-0x60")]), Int(1,1), Direct(Tid(950, "@__gmon_start__")))])), -Blk(Tid(950, "@__gmon_start__"), Attrs([Attr("address","0x5E0")]), Phis([]), -Defs([Def(Tid(1_155, "%00000483"), Attrs([Attr("address","0x5E0"), -Attr("insn","adrp x16, #69632")]), Var("R16",Imm(64)), Int(69632,64)), -Def(Tid(1_162, "%0000048a"), Attrs([Attr("address","0x5E4"), -Attr("insn","ldr x17, [x16, #0x10]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(16,64)),LittleEndian(),64)), -Def(Tid(1_168, "%00000490"), Attrs([Attr("address","0x5E8"), -Attr("insn","add x16, x16, #0x10")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(16,64)))]), Jmps([Call(Tid(1_173, "%00000495"), - Attrs([Attr("address","0x5EC"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), -Sub(Tid(1_499, "@deregister_tm_clones"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x650")]), - "deregister_tm_clones", Args([Arg(Tid(1_519, "%000005ef"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("deregister_tm_clones_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(519, "@deregister_tm_clones"), - Attrs([Attr("address","0x650")]), Phis([]), Defs([Def(Tid(522, "%0000020a"), - Attrs([Attr("address","0x650"), Attr("insn","adrp x0, #69632")]), - Var("R0",Imm(64)), Int(69632,64)), Def(Tid(528, "%00000210"), - Attrs([Attr("address","0x654"), Attr("insn","add x0, x0, #0x30")]), - Var("R0",Imm(64)), PLUS(Var("R0",Imm(64)),Int(48,64))), -Def(Tid(533, "%00000215"), Attrs([Attr("address","0x658"), -Attr("insn","adrp x1, #69632")]), Var("R1",Imm(64)), Int(69632,64)), -Def(Tid(539, "%0000021b"), Attrs([Attr("address","0x65C"), -Attr("insn","add x1, x1, #0x30")]), Var("R1",Imm(64)), -PLUS(Var("R1",Imm(64)),Int(48,64))), Def(Tid(545, "%00000221"), - Attrs([Attr("address","0x660"), Attr("insn","cmp x1, x0")]), - Var("#1",Imm(64)), NOT(Var("R0",Imm(64)))), Def(Tid(550, "%00000226"), - Attrs([Attr("address","0x660"), Attr("insn","cmp x1, x0")]), - Var("#2",Imm(64)), PLUS(Var("R1",Imm(64)),NOT(Var("R0",Imm(64))))), -Def(Tid(556, "%0000022c"), Attrs([Attr("address","0x660"), -Attr("insn","cmp x1, x0")]), Var("VF",Imm(1)), -NEQ(SIGNED(65,PLUS(Var("#2",Imm(64)),Int(1,64))),PLUS(PLUS(SIGNED(65,Var("R1",Imm(64))),SIGNED(65,Var("#1",Imm(64)))),Int(1,65)))), -Def(Tid(562, "%00000232"), Attrs([Attr("address","0x660"), -Attr("insn","cmp x1, x0")]), Var("CF",Imm(1)), -NEQ(UNSIGNED(65,PLUS(Var("#2",Imm(64)),Int(1,64))),PLUS(PLUS(UNSIGNED(65,Var("R1",Imm(64))),UNSIGNED(65,Var("#1",Imm(64)))),Int(1,65)))), -Def(Tid(566, "%00000236"), Attrs([Attr("address","0x660"), -Attr("insn","cmp x1, x0")]), Var("ZF",Imm(1)), -EQ(PLUS(Var("#2",Imm(64)),Int(1,64)),Int(0,64))), Def(Tid(570, "%0000023a"), - Attrs([Attr("address","0x660"), Attr("insn","cmp x1, x0")]), - Var("NF",Imm(1)), Extract(63,63,PLUS(Var("#2",Imm(64)),Int(1,64))))]), -Jmps([Goto(Tid(576, "%00000240"), Attrs([Attr("address","0x664"), -Attr("insn","b.eq #0x18")]), EQ(Var("ZF",Imm(1)),Int(1,1)), -Direct(Tid(574, "%0000023e"))), Goto(Tid(1_500, "%000005dc"), Attrs([]), - Int(1,1), Direct(Tid(919, "%00000397")))])), Blk(Tid(919, "%00000397"), - Attrs([Attr("address","0x668")]), Phis([]), Defs([Def(Tid(922, "%0000039a"), - Attrs([Attr("address","0x668"), Attr("insn","adrp x1, #65536")]), - Var("R1",Imm(64)), Int(65536,64)), Def(Tid(929, "%000003a1"), - Attrs([Attr("address","0x66C"), Attr("insn","ldr x1, [x1, #0xfc0]")]), - Var("R1",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R1",Imm(64)),Int(4032,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(934, "%000003a6"), Attrs([Attr("address","0x670"), -Attr("insn","cbz x1, #0xc")]), EQ(Var("R1",Imm(64)),Int(0,64)), -Direct(Tid(574, "%0000023e"))), Goto(Tid(1_501, "%000005dd"), Attrs([]), - Int(1,1), Direct(Tid(938, "%000003aa")))])), Blk(Tid(574, "%0000023e"), - Attrs([Attr("address","0x67C")]), Phis([]), Defs([]), -Jmps([Call(Tid(582, "%00000246"), Attrs([Attr("address","0x67C"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))])), -Blk(Tid(938, "%000003aa"), Attrs([Attr("address","0x674")]), Phis([]), -Defs([Def(Tid(942, "%000003ae"), Attrs([Attr("address","0x674"), -Attr("insn","mov x16, x1")]), Var("R16",Imm(64)), Var("R1",Imm(64)))]), -Jmps([Call(Tid(947, "%000003b3"), Attrs([Attr("address","0x678"), -Attr("insn","br x16")]), Int(1,1), (Indirect(Var("R16",Imm(64))),))]))])), -Sub(Tid(1_502, "@frame_dummy"), Attrs([Attr("c.proto","signed (*)(void)"), -Attr("address","0x710")]), "frame_dummy", Args([Arg(Tid(1_520, "%000005f0"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("frame_dummy_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(734, "@frame_dummy"), - Attrs([Attr("address","0x710")]), Phis([]), Defs([]), -Jmps([Call(Tid(736, "%000002e0"), Attrs([Attr("address","0x710"), -Attr("insn","b #-0x90")]), Int(1,1), -(Direct(Tid(1_504, "@register_tm_clones")),))]))])), Sub(Tid(1_503, "@main"), - Attrs([Attr("c.proto","signed (*)(signed argc, const char** argv)"), -Attr("address","0x714")]), "main", Args([Arg(Tid(1_521, "%000005f1"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("main_argc",Imm(32)), -LOW(32,Var("R0",Imm(64))), In()), Arg(Tid(1_522, "%000005f2"), - Attrs([Attr("c.layout","**[char : 8]"), Attr("c.data","Top:u8 ptr ptr"), -Attr("c.type"," const char**")]), Var("main_argv",Imm(64)), -Var("R1",Imm(64)), Both()), Arg(Tid(1_523, "%000005f3"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("main_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(738, "@main"), - Attrs([Attr("address","0x714")]), Phis([]), Defs([Def(Tid(741, "%000002e5"), - Attrs([Attr("address","0x714"), Attr("insn","adrp x10, #69632")]), - Var("R10",Imm(64)), Int(69632,64)), Def(Tid(748, "%000002ec"), - Attrs([Attr("address","0x718"), Attr("insn","ldr w9, [x10, #0x34]")]), - Var("R9",Imm(64)), -UNSIGNED(64,Load(Var("mem",Mem(64,8)),PLUS(Var("R10",Imm(64)),Int(52,64)),LittleEndian(),32))), -Def(Tid(753, "%000002f1"), Attrs([Attr("address","0x71C"), -Attr("insn","adrp x8, #69632")]), Var("R8",Imm(64)), Int(69632,64)), -Def(Tid(761, "%000002f9"), Attrs([Attr("address","0x720"), -Attr("insn","str w9, [x8, #0x38]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R8",Imm(64)),Int(56,64)),Extract(31,0,Var("R9",Imm(64))),LittleEndian(),32)), -Def(Tid(766, "%000002fe"), Attrs([Attr("address","0x724"), -Attr("insn","mov w0, wzr")]), Var("R0",Imm(64)), Int(0,64)), -Def(Tid(773, "%00000305"), Attrs([Attr("address","0x728"), -Attr("insn","str wzr, [x8, #0x38]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R8",Imm(64)),Int(56,64)),Int(0,32),LittleEndian(),32)), -Def(Tid(780, "%0000030c"), Attrs([Attr("address","0x72C"), -Attr("insn","ldr w11, [x8, #0x38]")]), Var("R11",Imm(64)), -UNSIGNED(64,Load(Var("mem",Mem(64,8)),PLUS(Var("R8",Imm(64)),Int(56,64)),LittleEndian(),32))), -Def(Tid(785, "%00000311"), Attrs([Attr("address","0x730"), -Attr("insn","adrp x9, #69632")]), Var("R9",Imm(64)), Int(69632,64)), -Def(Tid(793, "%00000319"), Attrs([Attr("address","0x734"), -Attr("insn","str w11, [x9, #0x3c]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R9",Imm(64)),Int(60,64)),Extract(31,0,Var("R11",Imm(64))),LittleEndian(),32)), -Def(Tid(800, "%00000320"), Attrs([Attr("address","0x738"), -Attr("insn","ldr w10, [x10, #0x34]")]), Var("R10",Imm(64)), -UNSIGNED(64,Load(Var("mem",Mem(64,8)),PLUS(Var("R10",Imm(64)),Int(52,64)),LittleEndian(),32))), -Def(Tid(808, "%00000328"), Attrs([Attr("address","0x73C"), -Attr("insn","str w10, [x8, #0x38]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R8",Imm(64)),Int(56,64)),Extract(31,0,Var("R10",Imm(64))),LittleEndian(),32)), -Def(Tid(815, "%0000032f"), Attrs([Attr("address","0x740"), -Attr("insn","ldr w8, [x8, #0x38]")]), Var("R8",Imm(64)), -UNSIGNED(64,Load(Var("mem",Mem(64,8)),PLUS(Var("R8",Imm(64)),Int(56,64)),LittleEndian(),32))), -Def(Tid(823, "%00000337"), Attrs([Attr("address","0x744"), -Attr("insn","str w8, [x9, #0x3c]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R9",Imm(64)),Int(60,64)),Extract(31,0,Var("R8",Imm(64))),LittleEndian(),32))]), -Jmps([Call(Tid(828, "%0000033c"), Attrs([Attr("address","0x748"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))]))])), -Sub(Tid(1_504, "@register_tm_clones"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x680")]), - "register_tm_clones", Args([Arg(Tid(1_524, "%000005f4"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("register_tm_clones_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(584, "@register_tm_clones"), Attrs([Attr("address","0x680")]), - Phis([]), Defs([Def(Tid(587, "%0000024b"), Attrs([Attr("address","0x680"), -Attr("insn","adrp x0, #69632")]), Var("R0",Imm(64)), Int(69632,64)), -Def(Tid(593, "%00000251"), Attrs([Attr("address","0x684"), -Attr("insn","add x0, x0, #0x30")]), Var("R0",Imm(64)), -PLUS(Var("R0",Imm(64)),Int(48,64))), Def(Tid(598, "%00000256"), - Attrs([Attr("address","0x688"), Attr("insn","adrp x1, #69632")]), - Var("R1",Imm(64)), Int(69632,64)), Def(Tid(604, "%0000025c"), - Attrs([Attr("address","0x68C"), Attr("insn","add x1, x1, #0x30")]), - Var("R1",Imm(64)), PLUS(Var("R1",Imm(64)),Int(48,64))), -Def(Tid(611, "%00000263"), Attrs([Attr("address","0x690"), -Attr("insn","sub x1, x1, x0")]), Var("R1",Imm(64)), -PLUS(PLUS(Var("R1",Imm(64)),NOT(Var("R0",Imm(64)))),Int(1,64))), -Def(Tid(617, "%00000269"), Attrs([Attr("address","0x694"), -Attr("insn","lsr x2, x1, #63")]), Var("R2",Imm(64)), -Concat(Int(0,63),Extract(63,63,Var("R1",Imm(64))))), -Def(Tid(624, "%00000270"), Attrs([Attr("address","0x698"), -Attr("insn","add x1, x2, x1, asr #3")]), Var("R1",Imm(64)), -PLUS(Var("R2",Imm(64)),ARSHIFT(Var("R1",Imm(64)),Int(3,3)))), -Def(Tid(630, "%00000276"), Attrs([Attr("address","0x69C"), -Attr("insn","asr x1, x1, #1")]), Var("R1",Imm(64)), -SIGNED(64,Extract(63,1,Var("R1",Imm(64)))))]), -Jmps([Goto(Tid(636, "%0000027c"), Attrs([Attr("address","0x6A0"), -Attr("insn","cbz x1, #0x18")]), EQ(Var("R1",Imm(64)),Int(0,64)), -Direct(Tid(634, "%0000027a"))), Goto(Tid(1_505, "%000005e1"), Attrs([]), - Int(1,1), Direct(Tid(889, "%00000379")))])), Blk(Tid(889, "%00000379"), - Attrs([Attr("address","0x6A4")]), Phis([]), Defs([Def(Tid(892, "%0000037c"), - Attrs([Attr("address","0x6A4"), Attr("insn","adrp x2, #65536")]), - Var("R2",Imm(64)), Int(65536,64)), Def(Tid(899, "%00000383"), - Attrs([Attr("address","0x6A8"), Attr("insn","ldr x2, [x2, #0xfe0]")]), - Var("R2",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R2",Imm(64)),Int(4064,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(904, "%00000388"), Attrs([Attr("address","0x6AC"), -Attr("insn","cbz x2, #0xc")]), EQ(Var("R2",Imm(64)),Int(0,64)), -Direct(Tid(634, "%0000027a"))), Goto(Tid(1_506, "%000005e2"), Attrs([]), - Int(1,1), Direct(Tid(908, "%0000038c")))])), Blk(Tid(634, "%0000027a"), - Attrs([Attr("address","0x6B8")]), Phis([]), Defs([]), -Jmps([Call(Tid(642, "%00000282"), Attrs([Attr("address","0x6B8"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))])), -Blk(Tid(908, "%0000038c"), Attrs([Attr("address","0x6B0")]), Phis([]), -Defs([Def(Tid(912, "%00000390"), Attrs([Attr("address","0x6B0"), -Attr("insn","mov x16, x2")]), Var("R16",Imm(64)), Var("R2",Imm(64)))]), -Jmps([Call(Tid(917, "%00000395"), Attrs([Attr("address","0x6B4"), -Attr("insn","br x16")]), Int(1,1), -(Indirect(Var("R16",Imm(64))),))]))]))]))) \ No newline at end of file diff --git a/src/test/incorrect/basicassign/clang/basicassign.bir b/src/test/incorrect/basicassign/clang/basicassign.bir deleted file mode 100644 index 05edd473d..000000000 --- a/src/test/incorrect/basicassign/clang/basicassign.bir +++ /dev/null @@ -1,236 +0,0 @@ -000005e3: program -000005cd: sub __cxa_finalize(__cxa_finalize_result) -000005e4: __cxa_finalize_result :: out u32 = low:32[R0] - -00000375: -0000046d: R16 := 0x11000 -00000474: R17 := mem[R16 + 8, el]:u64 -0000047a: R16 := R16 + 8 -0000047f: call R17 with noreturn - -000005ce: sub __do_global_dtors_aux(__do_global_dtors_aux_result) -000005e5: __do_global_dtors_aux_result :: out u32 = low:32[R0] - -00000286: -0000028a: #3 := R31 - 0x20 -00000290: mem := mem with [#3, el]:u64 <- R29 -00000296: mem := mem with [#3 + 8, el]:u64 <- R30 -0000029a: R31 := #3 -000002a0: R29 := R31 -000002a8: mem := mem with [R31 + 0x10, el]:u64 <- R19 -000002ad: R19 := 0x11000 -000002b4: R0 := pad:64[mem[R19 + 0x30]] -000002bb: when 31:0[R0] <> 0 goto %000002b9 -000005cf: goto %0000033e - -0000033e: -00000341: R0 := 0x10000 -00000348: R0 := mem[R0 + 0xFC8, el]:u64 -0000034e: when R0 = 0 goto %0000034c -000005d0: goto %00000365 - -00000365: -00000368: R0 := 0x11000 -0000036f: R0 := mem[R0 + 0x28, el]:u64 -00000374: R30 := 0x6F0 -00000377: call @__cxa_finalize with return %0000034c - -0000034c: -00000354: R30 := 0x6F4 -00000356: call @deregister_tm_clones with return %00000358 - -00000358: -0000035b: R0 := 1 -00000363: mem := mem with [R19 + 0x30] <- 7:0[R0] -000005d1: goto %000002b9 - -000002b9: -000002c3: R19 := mem[R31 + 0x10, el]:u64 -000002ca: R29 := mem[R31, el]:u64 -000002cf: R30 := mem[R31 + 8, el]:u64 -000002d3: R31 := R31 + 0x20 -000002d8: call R30 with noreturn - -000005d2: sub __libc_start_main(__libc_start_main_main, __libc_start_main_arg2, __libc_start_main_arg3, __libc_start_main_auxv, __libc_start_main_result) -000005e6: __libc_start_main_main :: in u64 = R0 -000005e7: __libc_start_main_arg2 :: in u32 = low:32[R1] -000005e8: __libc_start_main_arg3 :: in out u64 = R2 -000005e9: __libc_start_main_auxv :: in out u64 = R3 -000005ea: __libc_start_main_result :: out u32 = low:32[R0] - -000001df: -00000457: R16 := 0x11000 -0000045e: R17 := mem[R16, el]:u64 -00000464: R16 := R16 -00000469: call R17 with noreturn - -000005d3: sub _fini(_fini_result) -000005eb: _fini_result :: out u32 = low:32[R0] - -0000001f: -00000025: #0 := R31 - 0x10 -0000002b: mem := mem with [#0, el]:u64 <- R29 -00000031: mem := mem with [#0 + 8, el]:u64 <- R30 -00000035: R31 := #0 -0000003b: R29 := R31 -00000042: R29 := mem[R31, el]:u64 -00000047: R30 := mem[R31 + 8, el]:u64 -0000004b: R31 := R31 + 0x10 -00000050: call R30 with noreturn - -000005d4: sub _init(_init_result) -000005ec: _init_result :: out u32 = low:32[R0] - -00000521: -00000527: #5 := R31 - 0x10 -0000052d: mem := mem with [#5, el]:u64 <- R29 -00000533: mem := mem with [#5 + 8, el]:u64 <- R30 -00000537: R31 := #5 -0000053d: R29 := R31 -00000542: R30 := 0x590 -00000544: call @call_weak_fn with return %00000546 - -00000546: -0000054b: R29 := mem[R31, el]:u64 -00000550: R30 := mem[R31 + 8, el]:u64 -00000554: R31 := R31 + 0x10 -00000559: call R30 with noreturn - -000005d5: sub _start(_start_result) -000005ed: _start_result :: out u32 = low:32[R0] - -000001a0: -000001a5: R29 := 0 -000001aa: R30 := 0 -000001b0: R5 := R0 -000001b7: R1 := mem[R31, el]:u64 -000001bd: R2 := R31 + 8 -000001c3: R6 := R31 -000001c8: R0 := 0x10000 -000001cf: R0 := mem[R0 + 0xFD8, el]:u64 -000001d4: R3 := 0 -000001d9: R4 := 0 -000001de: R30 := 0x630 -000001e1: call @__libc_start_main with return %000001e3 - -000001e3: -000001e6: R30 := 0x634 -000001e9: call @abort with return %000005d6 - -000005d6: -000005d7: call @call_weak_fn with noreturn - -000005d8: sub abort() - - -000001e7: -00000499: R16 := 0x11000 -000004a0: R17 := mem[R16 + 0x18, el]:u64 -000004a6: R16 := R16 + 0x18 -000004ab: call R17 with noreturn - -000005d9: sub call_weak_fn(call_weak_fn_result) -000005ee: call_weak_fn_result :: out u32 = low:32[R0] - -000001eb: -000001ee: R0 := 0x10000 -000001f5: R0 := mem[R0 + 0xFD0, el]:u64 -000001fb: when R0 = 0 goto %000001f9 -000005da: goto %000003b5 - -000001f9: -00000201: call R30 with noreturn - -000003b5: -000003b8: goto @__gmon_start__ - -000003b6: -00000483: R16 := 0x11000 -0000048a: R17 := mem[R16 + 0x10, el]:u64 -00000490: R16 := R16 + 0x10 -00000495: call R17 with noreturn - -000005db: sub deregister_tm_clones(deregister_tm_clones_result) -000005ef: deregister_tm_clones_result :: out u32 = low:32[R0] - -00000207: -0000020a: R0 := 0x11000 -00000210: R0 := R0 + 0x30 -00000215: R1 := 0x11000 -0000021b: R1 := R1 + 0x30 -00000221: #1 := ~R0 -00000226: #2 := R1 + ~R0 -0000022c: VF := extend:65[#2 + 1] <> extend:65[R1] + extend:65[#1] + 1 -00000232: CF := pad:65[#2 + 1] <> pad:65[R1] + pad:65[#1] + 1 -00000236: ZF := #2 + 1 = 0 -0000023a: NF := 63:63[#2 + 1] -00000240: when ZF goto %0000023e -000005dc: goto %00000397 - -00000397: -0000039a: R1 := 0x10000 -000003a1: R1 := mem[R1 + 0xFC0, el]:u64 -000003a6: when R1 = 0 goto %0000023e -000005dd: goto %000003aa - -0000023e: -00000246: call R30 with noreturn - -000003aa: -000003ae: R16 := R1 -000003b3: call R16 with noreturn - -000005de: sub frame_dummy(frame_dummy_result) -000005f0: frame_dummy_result :: out u32 = low:32[R0] - -000002de: -000002e0: call @register_tm_clones with noreturn - -000005df: sub main(main_argc, main_argv, main_result) -000005f1: main_argc :: in u32 = low:32[R0] -000005f2: main_argv :: in out u64 = R1 -000005f3: main_result :: out u32 = low:32[R0] - -000002e2: -000002e5: R10 := 0x11000 -000002ec: R9 := pad:64[mem[R10 + 0x34, el]:u32] -000002f1: R8 := 0x11000 -000002f9: mem := mem with [R8 + 0x38, el]:u32 <- 31:0[R9] -000002fe: R0 := 0 -00000305: mem := mem with [R8 + 0x38, el]:u32 <- 0 -0000030c: R11 := pad:64[mem[R8 + 0x38, el]:u32] -00000311: R9 := 0x11000 -00000319: mem := mem with [R9 + 0x3C, el]:u32 <- 31:0[R11] -00000320: R10 := pad:64[mem[R10 + 0x34, el]:u32] -00000328: mem := mem with [R8 + 0x38, el]:u32 <- 31:0[R10] -0000032f: R8 := pad:64[mem[R8 + 0x38, el]:u32] -00000337: mem := mem with [R9 + 0x3C, el]:u32 <- 31:0[R8] -0000033c: call R30 with noreturn - -000005e0: sub register_tm_clones(register_tm_clones_result) -000005f4: register_tm_clones_result :: out u32 = low:32[R0] - -00000248: -0000024b: R0 := 0x11000 -00000251: R0 := R0 + 0x30 -00000256: R1 := 0x11000 -0000025c: R1 := R1 + 0x30 -00000263: R1 := R1 + ~R0 + 1 -00000269: R2 := 0.63:63[R1] -00000270: R1 := R2 + (R1 ~>> 3) -00000276: R1 := extend:64[63:1[R1]] -0000027c: when R1 = 0 goto %0000027a -000005e1: goto %00000379 - -00000379: -0000037c: R2 := 0x10000 -00000383: R2 := mem[R2 + 0xFE0, el]:u64 -00000388: when R2 = 0 goto %0000027a -000005e2: goto %0000038c - -0000027a: -00000282: call R30 with noreturn - -0000038c: -00000390: R16 := R2 -00000395: call R16 with noreturn diff --git a/src/test/incorrect/basicassign/clang/basicassign.expected b/src/test/incorrect/basicassign/clang/basicassign.expected index e4100caee..8784363de 100644 --- a/src/test/incorrect/basicassign/clang/basicassign.expected +++ b/src/test/incorrect/basicassign/clang/basicassign.expected @@ -1,21 +1,19 @@ var {:extern} Gamma_R0: bool; var {:extern} Gamma_R10: bool; -var {:extern} Gamma_R11: bool; var {:extern} Gamma_R8: bool; var {:extern} Gamma_R9: bool; var {:extern} Gamma_mem: [bv64]bool; var {:extern} R0: bv64; var {:extern} R10: bv64; -var {:extern} R11: bv64; var {:extern} R8: bv64; var {:extern} R9: bv64; var {:extern} mem: [bv64]bv8; const {:extern} $secret_addr: bv64; -axiom ($secret_addr == 69684bv64); +axiom ($secret_addr == 131092bv64); const {:extern} $x_addr: bv64; -axiom ($x_addr == 69688bv64); +axiom ($x_addr == 131096bv64); const {:extern} $z_addr: bv64; -axiom ($z_addr == 69692bv64); +axiom ($z_addr == 131100bv64); function {:extern} L(mem$in: [bv64]bv8, index: bv64) returns (bool) { (if (index == $z_addr) then true else (if (index == $secret_addr) then false else (if (index == $x_addr) then false else false))) } @@ -25,6 +23,10 @@ function {:extern} gamma_load32(gammaMap: [bv64]bool, index: bv64) returns (bool (gammaMap[bvadd64(index, 3bv64)] && (gammaMap[bvadd64(index, 2bv64)] && (gammaMap[bvadd64(index, 1bv64)] && gammaMap[index]))) } +function {:extern} gamma_load64(gammaMap: [bv64]bool, index: bv64) returns (bool) { + (gammaMap[bvadd64(index, 7bv64)] && (gammaMap[bvadd64(index, 6bv64)] && (gammaMap[bvadd64(index, 5bv64)] && (gammaMap[bvadd64(index, 4bv64)] && (gammaMap[bvadd64(index, 3bv64)] && (gammaMap[bvadd64(index, 2bv64)] && (gammaMap[bvadd64(index, 1bv64)] && gammaMap[index]))))))) +} + function {:extern} gamma_store32(gammaMap: [bv64]bool, index: bv64, value: bool) returns ([bv64]bool) { gammaMap[index := value][bvadd64(index, 1bv64) := value][bvadd64(index, 2bv64) := value][bvadd64(index, 3bv64) := value] } @@ -46,11 +48,14 @@ procedure {:extern} rely(); modifies Gamma_mem, mem; ensures (forall i: bv64 :: (((mem[i] == old(mem[i])) ==> (Gamma_mem[i] == old(Gamma_mem[i]))))); ensures (memory_load32_le(mem, $x_addr) == old(memory_load32_le(mem, $x_addr))); - free ensures (memory_load32_le(mem, 1888bv64) == 131073bv32); - free ensures (memory_load64_le(mem, 69064bv64) == 1808bv64); - free ensures (memory_load64_le(mem, 69072bv64) == 1728bv64); - free ensures (memory_load64_le(mem, 69592bv64) == 1812bv64); - free ensures (memory_load64_le(mem, 69672bv64) == 69672bv64); + free ensures (memory_load32_le(mem, 2324bv64) == 131073bv32); + free ensures (memory_load64_le(mem, 130416bv64) == 2256bv64); + free ensures (memory_load64_le(mem, 130424bv64) == 2176bv64); + free ensures (memory_load64_le(mem, 131024bv64) == 131100bv64); + free ensures (memory_load64_le(mem, 131032bv64) == 131096bv64); + free ensures (memory_load64_le(mem, 131048bv64) == 131092bv64); + free ensures (memory_load64_le(mem, 131056bv64) == 2260bv64); + free ensures (memory_load64_le(mem, 131080bv64) == 131080bv64); procedure {:extern} rely_transitive(); modifies Gamma_mem, mem; @@ -72,72 +77,66 @@ implementation {:extern} rely_reflexive() procedure {:extern} guarantee_reflexive(); modifies Gamma_mem, mem; -procedure main_1812(); - modifies Gamma_R0, Gamma_R10, Gamma_R11, Gamma_R8, Gamma_R9, Gamma_mem, R0, R10, R11, R8, R9, mem; - free requires (memory_load64_le(mem, 69664bv64) == 0bv64); - free requires (memory_load64_le(mem, 69672bv64) == 69672bv64); - free requires (memory_load32_le(mem, 1888bv64) == 131073bv32); - free requires (memory_load64_le(mem, 69064bv64) == 1808bv64); - free requires (memory_load64_le(mem, 69072bv64) == 1728bv64); - free requires (memory_load64_le(mem, 69592bv64) == 1812bv64); - free requires (memory_load64_le(mem, 69672bv64) == 69672bv64); - free ensures (memory_load32_le(mem, 1888bv64) == 131073bv32); - free ensures (memory_load64_le(mem, 69064bv64) == 1808bv64); - free ensures (memory_load64_le(mem, 69072bv64) == 1728bv64); - free ensures (memory_load64_le(mem, 69592bv64) == 1812bv64); - free ensures (memory_load64_le(mem, 69672bv64) == 69672bv64); +procedure main(); + modifies Gamma_R0, Gamma_R10, Gamma_R8, Gamma_R9, Gamma_mem, R0, R10, R8, R9, mem; + free requires (memory_load64_le(mem, 131072bv64) == 0bv64); + free requires (memory_load64_le(mem, 131080bv64) == 131080bv64); + free requires (memory_load32_le(mem, 2324bv64) == 131073bv32); + free requires (memory_load64_le(mem, 130416bv64) == 2256bv64); + free requires (memory_load64_le(mem, 130424bv64) == 2176bv64); + free requires (memory_load64_le(mem, 131024bv64) == 131100bv64); + free requires (memory_load64_le(mem, 131032bv64) == 131096bv64); + free requires (memory_load64_le(mem, 131048bv64) == 131092bv64); + free requires (memory_load64_le(mem, 131056bv64) == 2260bv64); + free requires (memory_load64_le(mem, 131080bv64) == 131080bv64); + free ensures (memory_load32_le(mem, 2324bv64) == 131073bv32); + free ensures (memory_load64_le(mem, 130416bv64) == 2256bv64); + free ensures (memory_load64_le(mem, 130424bv64) == 2176bv64); + free ensures (memory_load64_le(mem, 131024bv64) == 131100bv64); + free ensures (memory_load64_le(mem, 131032bv64) == 131096bv64); + free ensures (memory_load64_le(mem, 131048bv64) == 131092bv64); + free ensures (memory_load64_le(mem, 131056bv64) == 2260bv64); + free ensures (memory_load64_le(mem, 131080bv64) == 131080bv64); -implementation main_1812() +implementation main() { - var Gamma_load18: bool; - var Gamma_load19: bool; - var Gamma_load20: bool; - var Gamma_load21: bool; - var load18: bv32; - var load19: bv32; - var load20: bv32; - var load21: bv32; + var $load$18: bv64; + var $load$19: bv64; + var $load$20: bv32; + var $load$21: bv64; + var Gamma_$load$18: bool; + var Gamma_$load$19: bool; + var Gamma_$load$20: bool; + var Gamma_$load$21: bool; lmain: assume {:captureState "lmain"} true; - R10, Gamma_R10 := 69632bv64, true; + R8, Gamma_R8 := 126976bv64, true; + R9, Gamma_R9 := 126976bv64, true; + R10, Gamma_R10 := 126976bv64, true; call rely(); - load18, Gamma_load18 := memory_load32_le(mem, bvadd64(R10, 52bv64)), (gamma_load32(Gamma_mem, bvadd64(R10, 52bv64)) || L(mem, bvadd64(R10, 52bv64))); - R9, Gamma_R9 := zero_extend32_32(load18), Gamma_load18; - R8, Gamma_R8 := 69632bv64, true; + $load$18, Gamma_$load$18 := memory_load64_le(mem, bvadd64(R8, 4072bv64)), (gamma_load64(Gamma_mem, bvadd64(R8, 4072bv64)) || L(mem, bvadd64(R8, 4072bv64))); + R8, Gamma_R8 := $load$18, Gamma_$load$18; call rely(); - assert (L(mem, bvadd64(R8, 56bv64)) ==> Gamma_R9); - mem, Gamma_mem := memory_store32_le(mem, bvadd64(R8, 56bv64), R9[32:0]), gamma_store32(Gamma_mem, bvadd64(R8, 56bv64), Gamma_R9); - assume {:captureState "%000002f9"} true; + $load$19, Gamma_$load$19 := memory_load64_le(mem, bvadd64(R9, 4056bv64)), (gamma_load64(Gamma_mem, bvadd64(R9, 4056bv64)) || L(mem, bvadd64(R9, 4056bv64))); + R9, Gamma_R9 := $load$19, Gamma_$load$19; R0, Gamma_R0 := 0bv64, true; call rely(); - assert (L(mem, bvadd64(R8, 56bv64)) ==> true); - mem, Gamma_mem := memory_store32_le(mem, bvadd64(R8, 56bv64), 0bv32), gamma_store32(Gamma_mem, bvadd64(R8, 56bv64), true); - assume {:captureState "%00000305"} true; - call rely(); - load19, Gamma_load19 := memory_load32_le(mem, bvadd64(R8, 56bv64)), (gamma_load32(Gamma_mem, bvadd64(R8, 56bv64)) || L(mem, bvadd64(R8, 56bv64))); - R11, Gamma_R11 := zero_extend32_32(load19), Gamma_load19; - R9, Gamma_R9 := 69632bv64, true; - call rely(); - assert (L(mem, bvadd64(R9, 60bv64)) ==> Gamma_R11); - mem, Gamma_mem := memory_store32_le(mem, bvadd64(R9, 60bv64), R11[32:0]), gamma_store32(Gamma_mem, bvadd64(R9, 60bv64), Gamma_R11); - assume {:captureState "%00000319"} true; - call rely(); - load20, Gamma_load20 := memory_load32_le(mem, bvadd64(R10, 52bv64)), (gamma_load32(Gamma_mem, bvadd64(R10, 52bv64)) || L(mem, bvadd64(R10, 52bv64))); - R10, Gamma_R10 := zero_extend32_32(load20), Gamma_load20; + $load$20, Gamma_$load$20 := memory_load32_le(mem, R8), (gamma_load32(Gamma_mem, R8) || L(mem, R8)); + R8, Gamma_R8 := zero_extend32_32($load$20), Gamma_$load$20; call rely(); - assert (L(mem, bvadd64(R8, 56bv64)) ==> Gamma_R10); - mem, Gamma_mem := memory_store32_le(mem, bvadd64(R8, 56bv64), R10[32:0]), gamma_store32(Gamma_mem, bvadd64(R8, 56bv64), Gamma_R10); - assume {:captureState "%00000328"} true; + $load$21, Gamma_$load$21 := memory_load64_le(mem, bvadd64(R10, 4048bv64)), (gamma_load64(Gamma_mem, bvadd64(R10, 4048bv64)) || L(mem, bvadd64(R10, 4048bv64))); + R10, Gamma_R10 := $load$21, Gamma_$load$21; call rely(); - load21, Gamma_load21 := memory_load32_le(mem, bvadd64(R8, 56bv64)), (gamma_load32(Gamma_mem, bvadd64(R8, 56bv64)) || L(mem, bvadd64(R8, 56bv64))); - R8, Gamma_R8 := zero_extend32_32(load21), Gamma_load21; + assert (L(mem, R9) ==> Gamma_R8); + mem, Gamma_mem := memory_store32_le(mem, R9, R8[32:0]), gamma_store32(Gamma_mem, R9, Gamma_R8); + assume {:captureState "%0000029c"} true; call rely(); - assert (L(mem, bvadd64(R9, 60bv64)) ==> Gamma_R8); - mem, Gamma_mem := memory_store32_le(mem, bvadd64(R9, 60bv64), R8[32:0]), gamma_store32(Gamma_mem, bvadd64(R9, 60bv64), Gamma_R8); - assume {:captureState "%00000337"} true; - goto main_1812_basil_return; - main_1812_basil_return: - assume {:captureState "main_1812_basil_return"} true; + assert (L(mem, R10) ==> Gamma_R8); + mem, Gamma_mem := memory_store32_le(mem, R10, R8[32:0]), gamma_store32(Gamma_mem, R10, Gamma_R8); + assume {:captureState "%000002a0"} true; + goto main_basil_return; + main_basil_return: + assume {:captureState "main_basil_return"} true; return; } diff --git a/src/test/incorrect/basicassign/clang/basicassign.gts b/src/test/incorrect/basicassign/clang/basicassign.gts deleted file mode 100644 index 7b8f8ad0d..000000000 Binary files a/src/test/incorrect/basicassign/clang/basicassign.gts and /dev/null differ diff --git a/src/test/incorrect/basicassign/clang/basicassign.md5sum b/src/test/incorrect/basicassign/clang/basicassign.md5sum new file mode 100644 index 000000000..478e785a3 --- /dev/null +++ b/src/test/incorrect/basicassign/clang/basicassign.md5sum @@ -0,0 +1,5 @@ +2aacf01a16f46e016ba98e1252e2dfe7 incorrect/basicassign/clang/a.out +903bbf4a589cfb457ce89735b6f58998 incorrect/basicassign/clang/basicassign.adt +903aa68ce95959c95bd1248f3b4ffc09 incorrect/basicassign/clang/basicassign.bir +6a42a0a5b75b4c38ce9c549a191f3dca incorrect/basicassign/clang/basicassign.relf +2d9fe51a7473a4808ea802417d9976c6 incorrect/basicassign/clang/basicassign.gts diff --git a/src/test/incorrect/basicassign/clang/basicassign.relf b/src/test/incorrect/basicassign/clang/basicassign.relf deleted file mode 100644 index 77835d143..000000000 --- a/src/test/incorrect/basicassign/clang/basicassign.relf +++ /dev/null @@ -1,125 +0,0 @@ - -Relocation section '.rela.dyn' at offset 0x460 contains 8 entries: - Offset Info Type Symbol's Value Symbol's Name + Addend -0000000000010dc8 0000000000000403 R_AARCH64_RELATIVE 710 -0000000000010dd0 0000000000000403 R_AARCH64_RELATIVE 6c0 -0000000000010fd8 0000000000000403 R_AARCH64_RELATIVE 714 -0000000000011028 0000000000000403 R_AARCH64_RELATIVE 11028 -0000000000010fc0 0000000400000401 R_AARCH64_GLOB_DAT 0000000000000000 _ITM_deregisterTMCloneTable + 0 -0000000000010fc8 0000000500000401 R_AARCH64_GLOB_DAT 0000000000000000 __cxa_finalize@GLIBC_2.17 + 0 -0000000000010fd0 0000000600000401 R_AARCH64_GLOB_DAT 0000000000000000 __gmon_start__ + 0 -0000000000010fe0 0000000800000401 R_AARCH64_GLOB_DAT 0000000000000000 _ITM_registerTMCloneTable + 0 - -Relocation section '.rela.plt' at offset 0x520 contains 4 entries: - Offset Info Type Symbol's Value Symbol's Name + Addend -0000000000011000 0000000300000402 R_AARCH64_JUMP_SLOT 0000000000000000 __libc_start_main@GLIBC_2.34 + 0 -0000000000011008 0000000500000402 R_AARCH64_JUMP_SLOT 0000000000000000 __cxa_finalize@GLIBC_2.17 + 0 -0000000000011010 0000000600000402 R_AARCH64_JUMP_SLOT 0000000000000000 __gmon_start__ + 0 -0000000000011018 0000000700000402 R_AARCH64_JUMP_SLOT 0000000000000000 abort@GLIBC_2.17 + 0 - -Symbol table '.dynsym' contains 9 entries: - Num: Value Size Type Bind Vis Ndx Name - 0: 0000000000000000 0 NOTYPE LOCAL DEFAULT UND - 1: 0000000000000580 0 SECTION LOCAL DEFAULT 11 .init - 2: 0000000000011020 0 SECTION LOCAL DEFAULT 23 .data - 3: 0000000000000000 0 FUNC GLOBAL DEFAULT UND __libc_start_main@GLIBC_2.34 (2) - 4: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_deregisterTMCloneTable - 5: 0000000000000000 0 FUNC WEAK DEFAULT UND __cxa_finalize@GLIBC_2.17 (3) - 6: 0000000000000000 0 NOTYPE WEAK DEFAULT UND __gmon_start__ - 7: 0000000000000000 0 FUNC GLOBAL DEFAULT UND abort@GLIBC_2.17 (3) - 8: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_registerTMCloneTable - -Symbol table '.symtab' contains 92 entries: - Num: Value Size Type Bind Vis Ndx Name - 0: 0000000000000000 0 NOTYPE LOCAL DEFAULT UND - 1: 0000000000000238 0 SECTION LOCAL DEFAULT 1 .interp - 2: 0000000000000254 0 SECTION LOCAL DEFAULT 2 .note.gnu.build-id - 3: 0000000000000278 0 SECTION LOCAL DEFAULT 3 .note.ABI-tag - 4: 0000000000000298 0 SECTION LOCAL DEFAULT 4 .gnu.hash - 5: 00000000000002b8 0 SECTION LOCAL DEFAULT 5 .dynsym - 6: 0000000000000390 0 SECTION LOCAL DEFAULT 6 .dynstr - 7: 000000000000041e 0 SECTION LOCAL DEFAULT 7 .gnu.version - 8: 0000000000000430 0 SECTION LOCAL DEFAULT 8 .gnu.version_r - 9: 0000000000000460 0 SECTION LOCAL DEFAULT 9 .rela.dyn - 10: 0000000000000520 0 SECTION LOCAL DEFAULT 10 .rela.plt - 11: 0000000000000580 0 SECTION LOCAL DEFAULT 11 .init - 12: 00000000000005a0 0 SECTION LOCAL DEFAULT 12 .plt - 13: 0000000000000600 0 SECTION LOCAL DEFAULT 13 .text - 14: 000000000000074c 0 SECTION LOCAL DEFAULT 14 .fini - 15: 0000000000000760 0 SECTION LOCAL DEFAULT 15 .rodata - 16: 0000000000000764 0 SECTION LOCAL DEFAULT 16 .eh_frame_hdr - 17: 00000000000007a0 0 SECTION LOCAL DEFAULT 17 .eh_frame - 18: 0000000000010dc8 0 SECTION LOCAL DEFAULT 18 .init_array - 19: 0000000000010dd0 0 SECTION LOCAL DEFAULT 19 .fini_array - 20: 0000000000010dd8 0 SECTION LOCAL DEFAULT 20 .dynamic - 21: 0000000000010fb8 0 SECTION LOCAL DEFAULT 21 .got - 22: 0000000000010fe8 0 SECTION LOCAL DEFAULT 22 .got.plt - 23: 0000000000011020 0 SECTION LOCAL DEFAULT 23 .data - 24: 0000000000011030 0 SECTION LOCAL DEFAULT 24 .bss - 25: 0000000000000000 0 SECTION LOCAL DEFAULT 25 .comment - 26: 0000000000000000 0 FILE LOCAL DEFAULT ABS Scrt1.o - 27: 0000000000000278 0 NOTYPE LOCAL DEFAULT 3 $d - 28: 0000000000000278 32 OBJECT LOCAL DEFAULT 3 __abi_tag - 29: 0000000000000600 0 NOTYPE LOCAL DEFAULT 13 $x - 30: 00000000000007b4 0 NOTYPE LOCAL DEFAULT 17 $d - 31: 0000000000000760 0 NOTYPE LOCAL DEFAULT 15 $d - 32: 0000000000000000 0 FILE LOCAL DEFAULT ABS crti.o - 33: 0000000000000634 0 NOTYPE LOCAL DEFAULT 13 $x - 34: 0000000000000634 20 FUNC LOCAL DEFAULT 13 call_weak_fn - 35: 0000000000000580 0 NOTYPE LOCAL DEFAULT 11 $x - 36: 000000000000074c 0 NOTYPE LOCAL DEFAULT 14 $x - 37: 0000000000000000 0 FILE LOCAL DEFAULT ABS crtn.o - 38: 0000000000000590 0 NOTYPE LOCAL DEFAULT 11 $x - 39: 0000000000000758 0 NOTYPE LOCAL DEFAULT 14 $x - 40: 0000000000000000 0 FILE LOCAL DEFAULT ABS crtstuff.c - 41: 0000000000000650 0 NOTYPE LOCAL DEFAULT 13 $x - 42: 0000000000000650 0 FUNC LOCAL DEFAULT 13 deregister_tm_clones - 43: 0000000000000680 0 FUNC LOCAL DEFAULT 13 register_tm_clones - 44: 0000000000011028 0 NOTYPE LOCAL DEFAULT 23 $d - 45: 00000000000006c0 0 FUNC LOCAL DEFAULT 13 __do_global_dtors_aux - 46: 0000000000011030 1 OBJECT LOCAL DEFAULT 24 completed.0 - 47: 0000000000010dd0 0 NOTYPE LOCAL DEFAULT 19 $d - 48: 0000000000010dd0 0 OBJECT LOCAL DEFAULT 19 __do_global_dtors_aux_fini_array_entry - 49: 0000000000000710 0 FUNC LOCAL DEFAULT 13 frame_dummy - 50: 0000000000010dc8 0 NOTYPE LOCAL DEFAULT 18 $d - 51: 0000000000010dc8 0 OBJECT LOCAL DEFAULT 18 __frame_dummy_init_array_entry - 52: 00000000000007c8 0 NOTYPE LOCAL DEFAULT 17 $d - 53: 0000000000011030 0 NOTYPE LOCAL DEFAULT 24 $d - 54: 0000000000000000 0 FILE LOCAL DEFAULT ABS basicassign.c - 55: 0000000000000714 0 NOTYPE LOCAL DEFAULT 13 $x.0 - 56: 0000000000011034 0 NOTYPE LOCAL DEFAULT 24 $d.1 - 57: 000000000000002a 0 NOTYPE LOCAL DEFAULT 25 $d.2 - 58: 0000000000000828 0 NOTYPE LOCAL DEFAULT 17 $d.3 - 59: 0000000000000000 0 FILE LOCAL DEFAULT ABS crtstuff.c - 60: 0000000000000850 0 NOTYPE LOCAL DEFAULT 17 $d - 61: 0000000000000850 0 OBJECT LOCAL DEFAULT 17 __FRAME_END__ - 62: 0000000000000000 0 FILE LOCAL DEFAULT ABS - 63: 0000000000010dd8 0 OBJECT LOCAL DEFAULT ABS _DYNAMIC - 64: 0000000000000764 0 NOTYPE LOCAL DEFAULT 16 __GNU_EH_FRAME_HDR - 65: 0000000000010fb8 0 OBJECT LOCAL DEFAULT ABS _GLOBAL_OFFSET_TABLE_ - 66: 00000000000005a0 0 NOTYPE LOCAL DEFAULT 12 $x - 67: 0000000000000000 0 FUNC GLOBAL DEFAULT UND __libc_start_main@GLIBC_2.34 - 68: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_deregisterTMCloneTable - 69: 0000000000011020 0 NOTYPE WEAK DEFAULT 23 data_start - 70: 0000000000011030 0 NOTYPE GLOBAL DEFAULT 24 __bss_start__ - 71: 0000000000000000 0 FUNC WEAK DEFAULT UND __cxa_finalize@GLIBC_2.17 - 72: 0000000000011040 0 NOTYPE GLOBAL DEFAULT 24 _bss_end__ - 73: 0000000000011030 0 NOTYPE GLOBAL DEFAULT 23 _edata - 74: 000000000001103c 4 OBJECT GLOBAL DEFAULT 24 z - 75: 0000000000011038 4 OBJECT GLOBAL DEFAULT 24 x - 76: 000000000000074c 0 FUNC GLOBAL HIDDEN 14 _fini - 77: 0000000000011040 0 NOTYPE GLOBAL DEFAULT 24 __bss_end__ - 78: 0000000000011020 0 NOTYPE GLOBAL DEFAULT 23 __data_start - 79: 0000000000000000 0 NOTYPE WEAK DEFAULT UND __gmon_start__ - 80: 0000000000011028 0 OBJECT GLOBAL HIDDEN 23 __dso_handle - 81: 0000000000000000 0 FUNC GLOBAL DEFAULT UND abort@GLIBC_2.17 - 82: 0000000000000760 4 OBJECT GLOBAL DEFAULT 15 _IO_stdin_used - 83: 0000000000011034 4 OBJECT GLOBAL DEFAULT 24 secret - 84: 0000000000011040 0 NOTYPE GLOBAL DEFAULT 24 _end - 85: 0000000000000600 52 FUNC GLOBAL DEFAULT 13 _start - 86: 0000000000011040 0 NOTYPE GLOBAL DEFAULT 24 __end__ - 87: 0000000000011030 0 NOTYPE GLOBAL DEFAULT 24 __bss_start - 88: 0000000000000714 56 FUNC GLOBAL DEFAULT 13 main - 89: 0000000000011030 0 OBJECT GLOBAL HIDDEN 23 __TMC_END__ - 90: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_registerTMCloneTable - 91: 0000000000000580 0 FUNC GLOBAL HIDDEN 11 _init diff --git a/src/test/incorrect/basicassign/clang/basicassign_gtirb.expected b/src/test/incorrect/basicassign/clang/basicassign_gtirb.expected index f18ac7b71..a126dcaaa 100644 --- a/src/test/incorrect/basicassign/clang/basicassign_gtirb.expected +++ b/src/test/incorrect/basicassign/clang/basicassign_gtirb.expected @@ -1,21 +1,19 @@ var {:extern} Gamma_R0: bool; var {:extern} Gamma_R10: bool; -var {:extern} Gamma_R11: bool; var {:extern} Gamma_R8: bool; var {:extern} Gamma_R9: bool; var {:extern} Gamma_mem: [bv64]bool; var {:extern} R0: bv64; var {:extern} R10: bv64; -var {:extern} R11: bv64; var {:extern} R8: bv64; var {:extern} R9: bv64; var {:extern} mem: [bv64]bv8; const {:extern} $secret_addr: bv64; -axiom ($secret_addr == 69684bv64); +axiom ($secret_addr == 131092bv64); const {:extern} $x_addr: bv64; -axiom ($x_addr == 69688bv64); +axiom ($x_addr == 131096bv64); const {:extern} $z_addr: bv64; -axiom ($z_addr == 69692bv64); +axiom ($z_addr == 131100bv64); function {:extern} L(mem$in: [bv64]bv8, index: bv64) returns (bool) { (if (index == $z_addr) then true else (if (index == $secret_addr) then false else (if (index == $x_addr) then false else false))) } @@ -25,6 +23,10 @@ function {:extern} gamma_load32(gammaMap: [bv64]bool, index: bv64) returns (bool (gammaMap[bvadd64(index, 3bv64)] && (gammaMap[bvadd64(index, 2bv64)] && (gammaMap[bvadd64(index, 1bv64)] && gammaMap[index]))) } +function {:extern} gamma_load64(gammaMap: [bv64]bool, index: bv64) returns (bool) { + (gammaMap[bvadd64(index, 7bv64)] && (gammaMap[bvadd64(index, 6bv64)] && (gammaMap[bvadd64(index, 5bv64)] && (gammaMap[bvadd64(index, 4bv64)] && (gammaMap[bvadd64(index, 3bv64)] && (gammaMap[bvadd64(index, 2bv64)] && (gammaMap[bvadd64(index, 1bv64)] && gammaMap[index]))))))) +} + function {:extern} gamma_store32(gammaMap: [bv64]bool, index: bv64, value: bool) returns ([bv64]bool) { gammaMap[index := value][bvadd64(index, 1bv64) := value][bvadd64(index, 2bv64) := value][bvadd64(index, 3bv64) := value] } @@ -46,11 +48,14 @@ procedure {:extern} rely(); modifies Gamma_mem, mem; ensures (forall i: bv64 :: (((mem[i] == old(mem[i])) ==> (Gamma_mem[i] == old(Gamma_mem[i]))))); ensures (memory_load32_le(mem, $x_addr) == old(memory_load32_le(mem, $x_addr))); - free ensures (memory_load32_le(mem, 1888bv64) == 131073bv32); - free ensures (memory_load64_le(mem, 69064bv64) == 1808bv64); - free ensures (memory_load64_le(mem, 69072bv64) == 1728bv64); - free ensures (memory_load64_le(mem, 69592bv64) == 1812bv64); - free ensures (memory_load64_le(mem, 69672bv64) == 69672bv64); + free ensures (memory_load32_le(mem, 2324bv64) == 131073bv32); + free ensures (memory_load64_le(mem, 130416bv64) == 2256bv64); + free ensures (memory_load64_le(mem, 130424bv64) == 2176bv64); + free ensures (memory_load64_le(mem, 131024bv64) == 131100bv64); + free ensures (memory_load64_le(mem, 131032bv64) == 131096bv64); + free ensures (memory_load64_le(mem, 131048bv64) == 131092bv64); + free ensures (memory_load64_le(mem, 131056bv64) == 2260bv64); + free ensures (memory_load64_le(mem, 131080bv64) == 131080bv64); procedure {:extern} rely_transitive(); modifies Gamma_mem, mem; @@ -72,72 +77,66 @@ implementation {:extern} rely_reflexive() procedure {:extern} guarantee_reflexive(); modifies Gamma_mem, mem; -procedure main_1812(); - modifies Gamma_R0, Gamma_R10, Gamma_R11, Gamma_R8, Gamma_R9, Gamma_mem, R0, R10, R11, R8, R9, mem; - free requires (memory_load64_le(mem, 69664bv64) == 0bv64); - free requires (memory_load64_le(mem, 69672bv64) == 69672bv64); - free requires (memory_load32_le(mem, 1888bv64) == 131073bv32); - free requires (memory_load64_le(mem, 69064bv64) == 1808bv64); - free requires (memory_load64_le(mem, 69072bv64) == 1728bv64); - free requires (memory_load64_le(mem, 69592bv64) == 1812bv64); - free requires (memory_load64_le(mem, 69672bv64) == 69672bv64); - free ensures (memory_load32_le(mem, 1888bv64) == 131073bv32); - free ensures (memory_load64_le(mem, 69064bv64) == 1808bv64); - free ensures (memory_load64_le(mem, 69072bv64) == 1728bv64); - free ensures (memory_load64_le(mem, 69592bv64) == 1812bv64); - free ensures (memory_load64_le(mem, 69672bv64) == 69672bv64); +procedure main(); + modifies Gamma_R0, Gamma_R10, Gamma_R8, Gamma_R9, Gamma_mem, R0, R10, R8, R9, mem; + free requires (memory_load64_le(mem, 131072bv64) == 0bv64); + free requires (memory_load64_le(mem, 131080bv64) == 131080bv64); + free requires (memory_load32_le(mem, 2324bv64) == 131073bv32); + free requires (memory_load64_le(mem, 130416bv64) == 2256bv64); + free requires (memory_load64_le(mem, 130424bv64) == 2176bv64); + free requires (memory_load64_le(mem, 131024bv64) == 131100bv64); + free requires (memory_load64_le(mem, 131032bv64) == 131096bv64); + free requires (memory_load64_le(mem, 131048bv64) == 131092bv64); + free requires (memory_load64_le(mem, 131056bv64) == 2260bv64); + free requires (memory_load64_le(mem, 131080bv64) == 131080bv64); + free ensures (memory_load32_le(mem, 2324bv64) == 131073bv32); + free ensures (memory_load64_le(mem, 130416bv64) == 2256bv64); + free ensures (memory_load64_le(mem, 130424bv64) == 2176bv64); + free ensures (memory_load64_le(mem, 131024bv64) == 131100bv64); + free ensures (memory_load64_le(mem, 131032bv64) == 131096bv64); + free ensures (memory_load64_le(mem, 131048bv64) == 131092bv64); + free ensures (memory_load64_le(mem, 131056bv64) == 2260bv64); + free ensures (memory_load64_le(mem, 131080bv64) == 131080bv64); -implementation main_1812() +implementation main() { - var Gamma_load11: bool; - var Gamma_load12: bool; - var Gamma_load13: bool; - var Gamma_load14: bool; - var load11: bv32; - var load12: bv32; - var load13: bv32; - var load14: bv32; - main_1812__0__5TUZGs9lQbqOTt1I7Z4dfw: - assume {:captureState "main_1812__0__5TUZGs9lQbqOTt1I7Z4dfw"} true; - R10, Gamma_R10 := 69632bv64, true; + var $load1: bv64; + var $load2: bv64; + var $load3: bv32; + var $load4: bv64; + var Gamma_$load1: bool; + var Gamma_$load2: bool; + var Gamma_$load3: bool; + var Gamma_$load4: bool; + $main$__0__$TxTRm4kpQiq_Xgistx~xbQ: + assume {:captureState "$main$__0__$TxTRm4kpQiq_Xgistx~xbQ"} true; + R8, Gamma_R8 := 126976bv64, true; + R9, Gamma_R9 := 126976bv64, true; + R10, Gamma_R10 := 126976bv64, true; call rely(); - load11, Gamma_load11 := memory_load32_le(mem, bvadd64(R10, 52bv64)), (gamma_load32(Gamma_mem, bvadd64(R10, 52bv64)) || L(mem, bvadd64(R10, 52bv64))); - R9, Gamma_R9 := zero_extend32_32(load11), Gamma_load11; - R8, Gamma_R8 := 69632bv64, true; + $load1, Gamma_$load1 := memory_load64_le(mem, bvadd64(R8, 4072bv64)), (gamma_load64(Gamma_mem, bvadd64(R8, 4072bv64)) || L(mem, bvadd64(R8, 4072bv64))); + R8, Gamma_R8 := $load1, Gamma_$load1; call rely(); - assert (L(mem, bvadd64(R8, 56bv64)) ==> Gamma_R9); - mem, Gamma_mem := memory_store32_le(mem, bvadd64(R8, 56bv64), R9[32:0]), gamma_store32(Gamma_mem, bvadd64(R8, 56bv64), Gamma_R9); - assume {:captureState "1824_0"} true; + $load2, Gamma_$load2 := memory_load64_le(mem, bvadd64(R9, 4056bv64)), (gamma_load64(Gamma_mem, bvadd64(R9, 4056bv64)) || L(mem, bvadd64(R9, 4056bv64))); + R9, Gamma_R9 := $load2, Gamma_$load2; R0, Gamma_R0 := 0bv64, true; call rely(); - assert (L(mem, bvadd64(R8, 56bv64)) ==> true); - mem, Gamma_mem := memory_store32_le(mem, bvadd64(R8, 56bv64), 0bv32), gamma_store32(Gamma_mem, bvadd64(R8, 56bv64), true); - assume {:captureState "1832_0"} true; - call rely(); - load12, Gamma_load12 := memory_load32_le(mem, bvadd64(R8, 56bv64)), (gamma_load32(Gamma_mem, bvadd64(R8, 56bv64)) || L(mem, bvadd64(R8, 56bv64))); - R11, Gamma_R11 := zero_extend32_32(load12), Gamma_load12; - R9, Gamma_R9 := 69632bv64, true; - call rely(); - assert (L(mem, bvadd64(R9, 60bv64)) ==> Gamma_R11); - mem, Gamma_mem := memory_store32_le(mem, bvadd64(R9, 60bv64), R11[32:0]), gamma_store32(Gamma_mem, bvadd64(R9, 60bv64), Gamma_R11); - assume {:captureState "1844_0"} true; - call rely(); - load13, Gamma_load13 := memory_load32_le(mem, bvadd64(R10, 52bv64)), (gamma_load32(Gamma_mem, bvadd64(R10, 52bv64)) || L(mem, bvadd64(R10, 52bv64))); - R10, Gamma_R10 := zero_extend32_32(load13), Gamma_load13; + $load3, Gamma_$load3 := memory_load32_le(mem, R8), (gamma_load32(Gamma_mem, R8) || L(mem, R8)); + R8, Gamma_R8 := zero_extend32_32($load3), Gamma_$load3; call rely(); - assert (L(mem, bvadd64(R8, 56bv64)) ==> Gamma_R10); - mem, Gamma_mem := memory_store32_le(mem, bvadd64(R8, 56bv64), R10[32:0]), gamma_store32(Gamma_mem, bvadd64(R8, 56bv64), Gamma_R10); - assume {:captureState "1852_0"} true; + $load4, Gamma_$load4 := memory_load64_le(mem, bvadd64(R10, 4048bv64)), (gamma_load64(Gamma_mem, bvadd64(R10, 4048bv64)) || L(mem, bvadd64(R10, 4048bv64))); + R10, Gamma_R10 := $load4, Gamma_$load4; call rely(); - load14, Gamma_load14 := memory_load32_le(mem, bvadd64(R8, 56bv64)), (gamma_load32(Gamma_mem, bvadd64(R8, 56bv64)) || L(mem, bvadd64(R8, 56bv64))); - R8, Gamma_R8 := zero_extend32_32(load14), Gamma_load14; + assert (L(mem, R9) ==> Gamma_R8); + mem, Gamma_mem := memory_store32_le(mem, R9, R8[32:0]), gamma_store32(Gamma_mem, R9, Gamma_R8); + assume {:captureState "2292$0"} true; call rely(); - assert (L(mem, bvadd64(R9, 60bv64)) ==> Gamma_R8); - mem, Gamma_mem := memory_store32_le(mem, bvadd64(R9, 60bv64), R8[32:0]), gamma_store32(Gamma_mem, bvadd64(R9, 60bv64), Gamma_R8); - assume {:captureState "1860_0"} true; - goto main_1812_basil_return; - main_1812_basil_return: - assume {:captureState "main_1812_basil_return"} true; + assert (L(mem, R10) ==> Gamma_R8); + mem, Gamma_mem := memory_store32_le(mem, R10, R8[32:0]), gamma_store32(Gamma_mem, R10, Gamma_R8); + assume {:captureState "2296$0"} true; + goto main_basil_return; + main_basil_return: + assume {:captureState "main_basil_return"} true; return; } diff --git a/src/test/incorrect/basicassign/clang_O2/basicassign.adt b/src/test/incorrect/basicassign/clang_O2/basicassign.adt deleted file mode 100644 index 36b5bd95d..000000000 --- a/src/test/incorrect/basicassign/clang_O2/basicassign.adt +++ /dev/null @@ -1,500 +0,0 @@ -Project(Attrs([Attr("filename","\"clang_O2/basicassign.out\""), -Attr("image-specification","(declare abi (name str))\n(declare arch (name str))\n(declare base-address (addr int))\n(declare bias (off int))\n(declare bits (size int))\n(declare code-region (addr int) (size int) (off int))\n(declare code-start (addr int))\n(declare entry-point (addr int))\n(declare external-reference (addr int) (name str))\n(declare format (name str))\n(declare is-executable (flag bool))\n(declare is-little-endian (flag bool))\n(declare llvm:base-address (addr int))\n(declare llvm:code-entry (name str) (off int) (size int))\n(declare llvm:coff-import-library (name str))\n(declare llvm:coff-virtual-section-header (name str) (addr int) (size int))\n(declare llvm:elf-program-header (name str) (off int) (size int))\n(declare llvm:elf-program-header-flags (name str) (ld bool) (r bool) \n (w bool) (x bool))\n(declare llvm:elf-virtual-program-header (name str) (addr int) (size int))\n(declare llvm:entry-point (addr int))\n(declare llvm:macho-symbol (name str) (value int))\n(declare llvm:name-reference (at int) (name str))\n(declare llvm:relocation (at int) (addr int))\n(declare llvm:section-entry (name str) (addr int) (size int) (off int))\n(declare llvm:section-flags (name str) (r bool) (w bool) (x bool))\n(declare llvm:segment-command (name str) (off int) (size int))\n(declare llvm:segment-command-flags (name str) (r bool) (w bool) (x bool))\n(declare llvm:symbol-entry (name str) (addr int) (size int) (off int)\n (value int))\n(declare llvm:virtual-segment-command (name str) (addr int) (size int))\n(declare mapped (addr int) (size int) (off int))\n(declare named-region (addr int) (size int) (name str))\n(declare named-symbol (addr int) (name str))\n(declare require (name str))\n(declare section (addr int) (size int))\n(declare segment (addr int) (size int) (r bool) (w bool) (x bool))\n(declare subarch (name str))\n(declare symbol-chunk (addr int) (size int) (root int))\n(declare symbol-value (addr int) (value int))\n(declare system (name str))\n(declare vendor (name str))\n\n(abi unknown)\n(arch aarch64)\n(base-address 0)\n(bias 0)\n(bits 64)\n(code-region 1844 20 1844)\n(code-region 1536 308 1536)\n(code-region 1440 96 1440)\n(code-region 1408 24 1408)\n(code-start 1588)\n(code-start 1536)\n(code-start 1812)\n(entry-point 1536)\n(external-reference 69568 _ITM_deregisterTMCloneTable)\n(external-reference 69576 __cxa_finalize)\n(external-reference 69584 __gmon_start__)\n(external-reference 69600 _ITM_registerTMCloneTable)\n(external-reference 69632 __libc_start_main)\n(external-reference 69640 __cxa_finalize)\n(external-reference 69648 __gmon_start__)\n(external-reference 69656 abort)\n(format elf)\n(is-executable true)\n(is-little-endian true)\n(llvm:base-address 0)\n(llvm:code-entry abort 0 0)\n(llvm:code-entry __cxa_finalize 0 0)\n(llvm:code-entry __libc_start_main 0 0)\n(llvm:code-entry _init 1408 0)\n(llvm:code-entry main 1812 32)\n(llvm:code-entry _start 1536 52)\n(llvm:code-entry abort@GLIBC_2.17 0 0)\n(llvm:code-entry _fini 1844 0)\n(llvm:code-entry __cxa_finalize@GLIBC_2.17 0 0)\n(llvm:code-entry __libc_start_main@GLIBC_2.34 0 0)\n(llvm:code-entry frame_dummy 1808 0)\n(llvm:code-entry __do_global_dtors_aux 1728 0)\n(llvm:code-entry register_tm_clones 1664 0)\n(llvm:code-entry deregister_tm_clones 1616 0)\n(llvm:code-entry call_weak_fn 1588 20)\n(llvm:code-entry .fini 1844 20)\n(llvm:code-entry .text 1536 308)\n(llvm:code-entry .plt 1440 96)\n(llvm:code-entry .init 1408 24)\n(llvm:elf-program-header 08 3528 568)\n(llvm:elf-program-header 07 0 0)\n(llvm:elf-program-header 06 1868 60)\n(llvm:elf-program-header 05 596 68)\n(llvm:elf-program-header 04 3544 480)\n(llvm:elf-program-header 03 3528 616)\n(llvm:elf-program-header 02 0 2108)\n(llvm:elf-program-header 01 568 27)\n(llvm:elf-program-header 00 64 504)\n(llvm:elf-program-header-flags 08 false true false false)\n(llvm:elf-program-header-flags 07 false true true false)\n(llvm:elf-program-header-flags 06 false true false false)\n(llvm:elf-program-header-flags 05 false true false false)\n(llvm:elf-program-header-flags 04 false true true false)\n(llvm:elf-program-header-flags 03 true true true false)\n(llvm:elf-program-header-flags 02 true true false true)\n(llvm:elf-program-header-flags 01 false true false false)\n(llvm:elf-program-header-flags 00 false true false false)\n(llvm:elf-virtual-program-header 08 69064 568)\n(llvm:elf-virtual-program-header 07 0 0)\n(llvm:elf-virtual-program-header 06 1868 60)\n(llvm:elf-virtual-program-header 05 596 68)\n(llvm:elf-virtual-program-header 04 69080 480)\n(llvm:elf-virtual-program-header 03 69064 632)\n(llvm:elf-virtual-program-header 02 0 2108)\n(llvm:elf-virtual-program-header 01 568 27)\n(llvm:elf-virtual-program-header 00 64 504)\n(llvm:entry-point 1536)\n(llvm:name-reference 69656 abort)\n(llvm:name-reference 69648 __gmon_start__)\n(llvm:name-reference 69640 __cxa_finalize)\n(llvm:name-reference 69632 __libc_start_main)\n(llvm:name-reference 69600 _ITM_registerTMCloneTable)\n(llvm:name-reference 69584 __gmon_start__)\n(llvm:name-reference 69576 __cxa_finalize)\n(llvm:name-reference 69568 _ITM_deregisterTMCloneTable)\n(llvm:section-entry .shstrtab 0 259 7000)\n(llvm:section-entry .strtab 0 576 6424)\n(llvm:section-entry .symtab 0 2208 4216)\n(llvm:section-entry .comment 0 71 4144)\n(llvm:section-entry .bss 69680 16 4144)\n(llvm:section-entry .data 69664 16 4128)\n(llvm:section-entry .got.plt 69608 56 4072)\n(llvm:section-entry .got 69560 48 4024)\n(llvm:section-entry .dynamic 69080 480 3544)\n(llvm:section-entry .fini_array 69072 8 3536)\n(llvm:section-entry .init_array 69064 8 3528)\n(llvm:section-entry .eh_frame 1928 180 1928)\n(llvm:section-entry .eh_frame_hdr 1868 60 1868)\n(llvm:section-entry .rodata 1864 4 1864)\n(llvm:section-entry .fini 1844 20 1844)\n(llvm:section-entry .text 1536 308 1536)\n(llvm:section-entry .plt 1440 96 1440)\n(llvm:section-entry .init 1408 24 1408)\n(llvm:section-entry .rela.plt 1312 96 1312)\n(llvm:section-entry .rela.dyn 1120 192 1120)\n(llvm:section-entry .gnu.version_r 1072 48 1072)\n(llvm:section-entry .gnu.version 1054 18 1054)\n(llvm:section-entry .dynstr 912 141 912)\n(llvm:section-entry .dynsym 696 216 696)\n(llvm:section-entry .gnu.hash 664 28 664)\n(llvm:section-entry .note.ABI-tag 632 32 632)\n(llvm:section-entry .note.gnu.build-id 596 36 596)\n(llvm:section-entry .interp 568 27 568)\n(llvm:section-flags .shstrtab true false false)\n(llvm:section-flags .strtab true false false)\n(llvm:section-flags .symtab true false false)\n(llvm:section-flags .comment true false false)\n(llvm:section-flags .bss true true false)\n(llvm:section-flags .data true true false)\n(llvm:section-flags .got.plt true true false)\n(llvm:section-flags .got true true false)\n(llvm:section-flags .dynamic true true false)\n(llvm:section-flags .fini_array true true false)\n(llvm:section-flags .init_array true true false)\n(llvm:section-flags .eh_frame true false false)\n(llvm:section-flags .eh_frame_hdr true false false)\n(llvm:section-flags .rodata true false false)\n(llvm:section-flags .fini true false true)\n(llvm:section-flags .text true false true)\n(llvm:section-flags .plt true false true)\n(llvm:section-flags .init true false true)\n(llvm:section-flags .rela.plt true false false)\n(llvm:section-flags .rela.dyn true false false)\n(llvm:section-flags .gnu.version_r true false false)\n(llvm:section-flags .gnu.version true false false)\n(llvm:section-flags .dynstr true false false)\n(llvm:section-flags .dynsym true false false)\n(llvm:section-flags .gnu.hash true false false)\n(llvm:section-flags .note.ABI-tag true false false)\n(llvm:section-flags .note.gnu.build-id true false false)\n(llvm:section-flags .interp true false false)\n(llvm:symbol-entry abort 0 0 0 0)\n(llvm:symbol-entry __cxa_finalize 0 0 0 0)\n(llvm:symbol-entry __libc_start_main 0 0 0 0)\n(llvm:symbol-entry _init 1408 0 1408 1408)\n(llvm:symbol-entry main 1812 32 1812 1812)\n(llvm:symbol-entry _start 1536 52 1536 1536)\n(llvm:symbol-entry abort@GLIBC_2.17 0 0 0 0)\n(llvm:symbol-entry _fini 1844 0 1844 1844)\n(llvm:symbol-entry __cxa_finalize@GLIBC_2.17 0 0 0 0)\n(llvm:symbol-entry __libc_start_main@GLIBC_2.34 0 0 0 0)\n(llvm:symbol-entry frame_dummy 1808 0 1808 1808)\n(llvm:symbol-entry __do_global_dtors_aux 1728 0 1728 1728)\n(llvm:symbol-entry register_tm_clones 1664 0 1664 1664)\n(llvm:symbol-entry deregister_tm_clones 1616 0 1616 1616)\n(llvm:symbol-entry call_weak_fn 1588 20 1588 1588)\n(mapped 0 2108 0)\n(mapped 69064 616 3528)\n(named-region 0 2108 02)\n(named-region 69064 632 03)\n(named-region 568 27 .interp)\n(named-region 596 36 .note.gnu.build-id)\n(named-region 632 32 .note.ABI-tag)\n(named-region 664 28 .gnu.hash)\n(named-region 696 216 .dynsym)\n(named-region 912 141 .dynstr)\n(named-region 1054 18 .gnu.version)\n(named-region 1072 48 .gnu.version_r)\n(named-region 1120 192 .rela.dyn)\n(named-region 1312 96 .rela.plt)\n(named-region 1408 24 .init)\n(named-region 1440 96 .plt)\n(named-region 1536 308 .text)\n(named-region 1844 20 .fini)\n(named-region 1864 4 .rodata)\n(named-region 1868 60 .eh_frame_hdr)\n(named-region 1928 180 .eh_frame)\n(named-region 69064 8 .init_array)\n(named-region 69072 8 .fini_array)\n(named-region 69080 480 .dynamic)\n(named-region 69560 48 .got)\n(named-region 69608 56 .got.plt)\n(named-region 69664 16 .data)\n(named-region 69680 16 .bss)\n(named-region 0 71 .comment)\n(named-region 0 2208 .symtab)\n(named-region 0 576 .strtab)\n(named-region 0 259 .shstrtab)\n(named-symbol 1588 call_weak_fn)\n(named-symbol 1616 deregister_tm_clones)\n(named-symbol 1664 register_tm_clones)\n(named-symbol 1728 __do_global_dtors_aux)\n(named-symbol 1808 frame_dummy)\n(named-symbol 0 __libc_start_main@GLIBC_2.34)\n(named-symbol 0 __cxa_finalize@GLIBC_2.17)\n(named-symbol 1844 _fini)\n(named-symbol 0 abort@GLIBC_2.17)\n(named-symbol 1536 _start)\n(named-symbol 1812 main)\n(named-symbol 1408 _init)\n(named-symbol 0 __libc_start_main)\n(named-symbol 0 __cxa_finalize)\n(named-symbol 0 abort)\n(require libc.so.6)\n(section 568 27)\n(section 596 36)\n(section 632 32)\n(section 664 28)\n(section 696 216)\n(section 912 141)\n(section 1054 18)\n(section 1072 48)\n(section 1120 192)\n(section 1312 96)\n(section 1408 24)\n(section 1440 96)\n(section 1536 308)\n(section 1844 20)\n(section 1864 4)\n(section 1868 60)\n(section 1928 180)\n(section 69064 8)\n(section 69072 8)\n(section 69080 480)\n(section 69560 48)\n(section 69608 56)\n(section 69664 16)\n(section 69680 16)\n(section 0 71)\n(section 0 2208)\n(section 0 576)\n(section 0 259)\n(segment 0 2108 true false true)\n(segment 69064 632 true true false)\n(subarch v8)\n(symbol-chunk 1588 20 1588)\n(symbol-chunk 1536 52 1536)\n(symbol-chunk 1812 32 1812)\n(symbol-value 1588 1588)\n(symbol-value 1616 1616)\n(symbol-value 1664 1664)\n(symbol-value 1728 1728)\n(symbol-value 1808 1808)\n(symbol-value 1844 1844)\n(symbol-value 1536 1536)\n(symbol-value 1812 1812)\n(symbol-value 1408 1408)\n(symbol-value 0 0)\n(system \"\")\n(vendor \"\")\n"), -Attr("abi-name","\"aarch64-linux-gnu-elf\"")]), -Sections([Section(".shstrtab", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x00\x06\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x60\x1c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x38\x00\x09\x00\x40\x00\x1d\x00\x1c\x00\x06\x00\x00\x00\x04\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x04\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x3c\x08\x00\x00\x00\x00\x00\x00\x3c\x08\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x01\x00\x00\x00\x06\x00\x00\x00\xc8\x0d\x00\x00\x00\x00\x00\x00\xc8\x0d\x01\x00\x00\x00\x00\x00\xc8\x0d\x01"), -Section(".strtab", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x00\x06\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x60\x1c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x38\x00\x09\x00\x40\x00\x1d\x00\x1c\x00\x06\x00\x00\x00\x04\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x04\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x3c\x08\x00\x00\x00\x00\x00\x00\x3c\x08\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x01\x00\x00\x00\x06\x00\x00\x00\xc8\x0d\x00\x00\x00\x00\x00\x00\xc8\x0d\x01\x00\x00\x00\x00\x00\xc8\x0d\x01\x00\x00\x00\x00\x00\x68\x02\x00\x00\x00\x00\x00\x00\x78\x02\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x02\x00\x00\x00\x06\x00\x00\x00\xd8\x0d\x00\x00\x00\x00\x00\x00\xd8\x0d\x01\x00\x00\x00\x00\x00\xd8\x0d\x01\x00\x00\x00\x00\x00\xe0\x01\x00\x00\x00\x00\x00\x00\xe0\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x04\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x50\xe5\x74\x64\x04\x00\x00\x00\x4c\x07\x00\x00\x00\x00\x00\x00\x4c\x07\x00\x00\x00\x00\x00\x00\x4c\x07\x00\x00\x00\x00\x00\x00\x3c\x00\x00\x00\x00\x00\x00\x00\x3c\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x51\xe5\x74\x64\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x52\xe5\x74\x64\x04\x00\x00\x00\xc8\x0d\x00\x00\x00\x00\x00\x00\xc8\x0d\x01\x00\x00\x00\x00\x00\xc8\x0d\x01\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x2f\x6c\x69\x62\x2f\x6c\x64\x2d"), -Section(".comment", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x00\x06\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x60\x1c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x38\x00\x09\x00\x40\x00\x1d\x00\x1c\x00\x06\x00\x00\x00\x04\x00\x00"), -Section(".interp", 0x238, "\x2f\x6c\x69\x62\x2f\x6c\x64\x2d\x6c\x69\x6e\x75\x78\x2d\x61\x61\x72\x63\x68\x36\x34\x2e\x73\x6f\x2e\x31\x00"), -Section(".note.gnu.build-id", 0x254, "\x04\x00\x00\x00\x14\x00\x00\x00\x03\x00\x00\x00\x47\x4e\x55\x00\xa6\x77\x13\xb0\x14\x26\x24\x21\x55\xcc\x6d\x5c\x7d\xd9\xa7\x7a\xae\x3e\x83\xe0"), -Section(".note.ABI-tag", 0x278, "\x04\x00\x00\x00\x10\x00\x00\x00\x01\x00\x00\x00\x47\x4e\x55\x00\x00\x00\x00\x00\x03\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00"), -Section(".gnu.hash", 0x298, "\x01\x00\x00\x00\x01\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".dynsym", 0x2B8, "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x0b\x00\x80\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x17\x00\x20\x10\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x48\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x22\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x22\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x73\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".dynstr", 0x390, "\x00\x5f\x5f\x63\x78\x61\x5f\x66\x69\x6e\x61\x6c\x69\x7a\x65\x00\x5f\x5f\x6c\x69\x62\x63\x5f\x73\x74\x61\x72\x74\x5f\x6d\x61\x69\x6e\x00\x61\x62\x6f\x72\x74\x00\x6c\x69\x62\x63\x2e\x73\x6f\x2e\x36\x00\x47\x4c\x49\x42\x43\x5f\x32\x2e\x31\x37\x00\x47\x4c\x49\x42\x43\x5f\x32\x2e\x33\x34\x00\x5f\x49\x54\x4d\x5f\x64\x65\x72\x65\x67\x69\x73\x74\x65\x72\x54\x4d\x43\x6c\x6f\x6e\x65\x54\x61\x62\x6c\x65\x00\x5f\x5f\x67\x6d\x6f\x6e\x5f\x73\x74\x61\x72\x74\x5f\x5f\x00\x5f\x49\x54\x4d\x5f\x72\x65\x67\x69\x73\x74\x65\x72\x54\x4d\x43\x6c\x6f\x6e\x65\x54\x61\x62\x6c\x65\x00"), -Section(".gnu.version", 0x41E, "\x00\x00\x00\x00\x00\x00\x02\x00\x01\x00\x03\x00\x01\x00\x03\x00\x01\x00"), -Section(".gnu.version_r", 0x430, "\x01\x00\x02\x00\x28\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x97\x91\x96\x06\x00\x00\x03\x00\x32\x00\x00\x00\x10\x00\x00\x00\xb4\x91\x96\x06\x00\x00\x02\x00\x3d\x00\x00\x00\x00\x00\x00\x00"), -Section(".rela.dyn", 0x460, "\xc8\x0d\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x10\x07\x00\x00\x00\x00\x00\x00\xd0\x0d\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\xc0\x06\x00\x00\x00\x00\x00\x00\xd8\x0f\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x14\x07\x00\x00\x00\x00\x00\x00\x28\x10\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x28\x10\x01\x00\x00\x00\x00\x00\xc0\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xc8\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xd0\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe0\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".rela.plt", 0x520, "\x00\x10\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x08\x10\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x10\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x18\x10\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".init", 0x580, "\x1f\x20\x03\xd5\xfd\x7b\xbf\xa9\xfd\x03\x00\x91\x2a\x00\x00\x94\xfd\x7b\xc1\xa8\xc0\x03\x5f\xd6"), -Section(".plt", 0x5A0, "\xf0\x7b\xbf\xa9\x90\x00\x00\x90\x11\xfe\x47\xf9\x10\xe2\x3f\x91\x20\x02\x1f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x90\x00\x00\xb0\x11\x02\x40\xf9\x10\x02\x00\x91\x20\x02\x1f\xd6\x90\x00\x00\xb0\x11\x06\x40\xf9\x10\x22\x00\x91\x20\x02\x1f\xd6\x90\x00\x00\xb0\x11\x0a\x40\xf9\x10\x42\x00\x91\x20\x02\x1f\xd6\x90\x00\x00\xb0\x11\x0e\x40\xf9\x10\x62\x00\x91\x20\x02\x1f\xd6"), -Section(".text", 0x600, "\x1f\x20\x03\xd5\x1d\x00\x80\xd2\x1e\x00\x80\xd2\xe5\x03\x00\xaa\xe1\x03\x40\xf9\xe2\x23\x00\x91\xe6\x03\x00\x91\x80\x00\x00\x90\x00\xec\x47\xf9\x03\x00\x80\xd2\x04\x00\x80\xd2\xe5\xff\xff\x97\xf0\xff\xff\x97\x80\x00\x00\x90\x00\xe8\x47\xf9\x40\x00\x00\xb4\xe8\xff\xff\x17\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x80\x00\x00\xb0\x00\xc0\x00\x91\x81\x00\x00\xb0\x21\xc0\x00\x91\x3f\x00\x00\xeb\xc0\x00\x00\x54\x81\x00\x00\x90\x21\xe0\x47\xf9\x61\x00\x00\xb4\xf0\x03\x01\xaa\x00\x02\x1f\xd6\xc0\x03\x5f\xd6\x80\x00\x00\xb0\x00\xc0\x00\x91\x81\x00\x00\xb0\x21\xc0\x00\x91\x21\x00\x00\xcb\x22\xfc\x7f\xd3\x41\x0c\x81\x8b\x21\xfc\x41\x93\xc1\x00\x00\xb4\x82\x00\x00\x90\x42\xf0\x47\xf9\x62\x00\x00\xb4\xf0\x03\x02\xaa\x00\x02\x1f\xd6\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\xfd\x7b\xbe\xa9\xfd\x03\x00\x91\xf3\x0b\x00\xf9\x93\x00\x00\xb0\x60\xc2\x40\x39\x40\x01\x00\x35\x80\x00\x00\x90\x00\xe4\x47\xf9\x80\x00\x00\xb4\x80\x00\x00\xb0\x00\x14\x40\xf9\xb9\xff\xff\x97\xd8\xff\xff\x97\x20\x00\x80\x52\x60\xc2\x00\x39\xf3\x0b\x40\xf9\xfd\x7b\xc2\xa8\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\xdc\xff\xff\x17\x88\x00\x00\xb0\xe0\x03\x1f\x2a\x89\x00\x00\xb0\x8a\x00\x00\xb0\x08\x35\x40\xb9\x28\x39\x00\xb9\x48\x3d\x00\xb9\xc0\x03\x5f\xd6"), -Section(".fini", 0x734, "\x1f\x20\x03\xd5\xfd\x7b\xbf\xa9\xfd\x03\x00\x91\xfd\x7b\xc1\xa8\xc0\x03\x5f\xd6"), -Section(".rodata", 0x748, "\x01\x00\x02\x00"), -Section(".eh_frame_hdr", 0x74C, "\x01\x1b\x03\x3b\x38\x00\x00\x00\x06\x00\x00\x00\xb4\xfe\xff\xff\x50\x00\x00\x00\x04\xff\xff\xff\x64\x00\x00\x00\x34\xff\xff\xff\x78\x00\x00\x00\x74\xff\xff\xff\x8c\x00\x00\x00\xc4\xff\xff\xff\xb0\x00\x00\x00\xc8\xff\xff\xff\xd8\x00\x00\x00"), -Section(".eh_frame", 0x788, "\x10\x00\x00\x00\x00\x00\x00\x00\x01\x7a\x52\x00\x04\x78\x1e\x01\x1b\x0c\x1f\x00\x10\x00\x00\x00\x18\x00\x00\x00\x5c\xfe\xff\xff\x34\x00\x00\x00\x00\x41\x07\x1e\x10\x00\x00\x00\x2c\x00\x00\x00\x98\xfe\xff\xff\x30\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x40\x00\x00\x00\xb4\xfe\xff\xff\x3c\x00\x00\x00\x00\x00\x00\x00\x20\x00\x00\x00\x54\x00\x00\x00\xe0\xfe\xff\xff\x48\x00\x00\x00\x00\x41\x0e\x20\x9d\x04\x9e\x03\x42\x93\x02\x4e\xde\xdd\xd3\x0e\x00\x00\x00\x00\x10\x00\x00\x00\x78\x00\x00\x00\x0c\xff\xff\xff\x04\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x01\x7a\x52\x00\x01\x7c\x1e\x01\x1b\x0c\x1f\x00\x10\x00\x00\x00\x18\x00\x00\x00\xe8\xfe\xff\xff\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".fini_array", 0x10DD0, "\xc0\x06\x00\x00\x00\x00\x00\x00"), -Section(".dynamic", 0x10DD8, "\x01\x00\x00\x00\x00\x00\x00\x00\x28\x00\x00\x00\x00\x00\x00\x00\x0c\x00\x00\x00\x00\x00\x00\x00\x80\x05\x00\x00\x00\x00\x00\x00\x0d\x00\x00\x00\x00\x00\x00\x00\x34\x07\x00\x00\x00\x00\x00\x00\x19\x00\x00\x00\x00\x00\x00\x00\xc8\x0d\x01\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x1a\x00\x00\x00\x00\x00\x00\x00\xd0\x0d\x01\x00\x00\x00\x00\x00\x1c\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\xf5\xfe\xff\x6f\x00\x00\x00\x00\x98\x02\x00\x00\x00\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x90\x03\x00\x00\x00\x00\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\xb8\x02\x00\x00\x00\x00\x00\x00\x0a\x00\x00\x00\x00\x00\x00\x00\x8d\x00\x00\x00\x00\x00\x00\x00\x0b\x00\x00\x00\x00\x00\x00\x00\x18\x00\x00\x00\x00\x00\x00\x00\x15\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\xe8\x0f\x01\x00\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x60\x00\x00\x00\x00\x00\x00\x00\x14\x00\x00\x00\x00\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x17\x00\x00\x00\x00\x00\x00\x00\x20\x05\x00\x00\x00\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x60\x04\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\xc0\x00\x00\x00\x00\x00\x00\x00\x09\x00\x00\x00\x00\x00\x00\x00\x18\x00\x00\x00\x00\x00\x00\x00\xfb\xff\xff\x6f\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\xfe\xff\xff\x6f\x00\x00\x00\x00\x30\x04\x00\x00\x00\x00\x00\x00\xff\xff\xff\x6f\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\xf0\xff\xff\x6f\x00\x00\x00\x00\x1e\x04\x00\x00\x00\x00\x00\x00\xf9\xff\xff\x6f\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".init_array", 0x10DC8, "\x10\x07\x00\x00\x00\x00\x00\x00"), -Section(".got", 0x10FB8, "\xd8\x0d\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x14\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".got.plt", 0x10FE8, "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xa0\x05\x00\x00\x00\x00\x00\x00\xa0\x05\x00\x00\x00\x00\x00\x00\xa0\x05\x00\x00\x00\x00\x00\x00\xa0\x05\x00\x00\x00\x00\x00\x00"), -Section(".data", 0x11020, "\x00\x00\x00\x00\x00\x00\x00\x00\x28\x10\x01\x00\x00\x00\x00\x00")]), -Memmap([Annotation(Region(0x0,0x83B), Attr("segment","02 0 2108")), -Annotation(Region(0x600,0x633), Attr("symbol","\"_start\"")), -Annotation(Region(0x0,0x102), Attr("section","\".shstrtab\"")), -Annotation(Region(0x0,0x23F), Attr("section","\".strtab\"")), -Annotation(Region(0x0,0x46), Attr("section","\".comment\"")), -Annotation(Region(0x238,0x252), Attr("section","\".interp\"")), -Annotation(Region(0x254,0x277), Attr("section","\".note.gnu.build-id\"")), -Annotation(Region(0x278,0x297), Attr("section","\".note.ABI-tag\"")), -Annotation(Region(0x298,0x2B3), Attr("section","\".gnu.hash\"")), -Annotation(Region(0x2B8,0x38F), Attr("section","\".dynsym\"")), -Annotation(Region(0x390,0x41C), Attr("section","\".dynstr\"")), -Annotation(Region(0x41E,0x42F), Attr("section","\".gnu.version\"")), -Annotation(Region(0x430,0x45F), Attr("section","\".gnu.version_r\"")), -Annotation(Region(0x460,0x51F), Attr("section","\".rela.dyn\"")), -Annotation(Region(0x520,0x57F), Attr("section","\".rela.plt\"")), -Annotation(Region(0x580,0x597), Attr("section","\".init\"")), -Annotation(Region(0x5A0,0x5FF), Attr("section","\".plt\"")), -Annotation(Region(0x580,0x597), Attr("code-region","()")), -Annotation(Region(0x5A0,0x5FF), Attr("code-region","()")), -Annotation(Region(0x600,0x633), Attr("symbol-info","_start 0x600 52")), -Annotation(Region(0x634,0x647), Attr("symbol","\"call_weak_fn\"")), -Annotation(Region(0x634,0x647), Attr("symbol-info","call_weak_fn 0x634 20")), -Annotation(Region(0x600,0x733), Attr("section","\".text\"")), -Annotation(Region(0x600,0x733), Attr("code-region","()")), -Annotation(Region(0x714,0x733), Attr("symbol","\"main\"")), -Annotation(Region(0x714,0x733), Attr("symbol-info","main 0x714 32")), -Annotation(Region(0x734,0x747), Attr("section","\".fini\"")), -Annotation(Region(0x734,0x747), Attr("code-region","()")), -Annotation(Region(0x748,0x74B), Attr("section","\".rodata\"")), -Annotation(Region(0x74C,0x787), Attr("section","\".eh_frame_hdr\"")), -Annotation(Region(0x788,0x83B), Attr("section","\".eh_frame\"")), -Annotation(Region(0x10DC8,0x1102F), Attr("segment","03 0x10DC8 632")), -Annotation(Region(0x10DD0,0x10DD7), Attr("section","\".fini_array\"")), -Annotation(Region(0x10DD8,0x10FB7), Attr("section","\".dynamic\"")), -Annotation(Region(0x10DC8,0x10DCF), Attr("section","\".init_array\"")), -Annotation(Region(0x10FB8,0x10FE7), Attr("section","\".got\"")), -Annotation(Region(0x10FE8,0x1101F), Attr("section","\".got.plt\"")), -Annotation(Region(0x11020,0x1102F), Attr("section","\".data\""))]), -Program(Tid(1_427, "%00000593"), Attrs([]), - Subs([Sub(Tid(1_405, "@__cxa_finalize"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x5D0"), -Attr("stub","()")]), "__cxa_finalize", Args([Arg(Tid(1_428, "%00000594"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("__cxa_finalize_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(817, "@__cxa_finalize"), - Attrs([Attr("address","0x5D0")]), Phis([]), -Defs([Def(Tid(1_065, "%00000429"), Attrs([Attr("address","0x5D0"), -Attr("insn","adrp x16, #69632")]), Var("R16",Imm(64)), Int(69632,64)), -Def(Tid(1_072, "%00000430"), Attrs([Attr("address","0x5D4"), -Attr("insn","ldr x17, [x16, #0x8]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(1_078, "%00000436"), Attrs([Attr("address","0x5D8"), -Attr("insn","add x16, x16, #0x8")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(8,64)))]), Jmps([Call(Tid(1_083, "%0000043b"), - Attrs([Attr("address","0x5DC"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), -Sub(Tid(1_406, "@__do_global_dtors_aux"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x6C0")]), - "__do_global_dtors_aux", Args([Arg(Tid(1_429, "%00000595"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("__do_global_dtors_aux_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(622, "@__do_global_dtors_aux"), - Attrs([Attr("address","0x6C0")]), Phis([]), Defs([Def(Tid(626, "%00000272"), - Attrs([Attr("address","0x6C0"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("#3",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(18446744073709551584,64))), -Def(Tid(632, "%00000278"), Attrs([Attr("address","0x6C0"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("#3",Imm(64)),Var("R29",Imm(64)),LittleEndian(),64)), -Def(Tid(638, "%0000027e"), Attrs([Attr("address","0x6C0"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("#3",Imm(64)),Int(8,64)),Var("R30",Imm(64)),LittleEndian(),64)), -Def(Tid(642, "%00000282"), Attrs([Attr("address","0x6C0"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("R31",Imm(64)), -Var("#3",Imm(64))), Def(Tid(648, "%00000288"), - Attrs([Attr("address","0x6C4"), Attr("insn","mov x29, sp")]), - Var("R29",Imm(64)), Var("R31",Imm(64))), Def(Tid(656, "%00000290"), - Attrs([Attr("address","0x6C8"), Attr("insn","str x19, [sp, #0x10]")]), - Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(16,64)),Var("R19",Imm(64)),LittleEndian(),64)), -Def(Tid(661, "%00000295"), Attrs([Attr("address","0x6CC"), -Attr("insn","adrp x19, #69632")]), Var("R19",Imm(64)), Int(69632,64)), -Def(Tid(668, "%0000029c"), Attrs([Attr("address","0x6D0"), -Attr("insn","ldrb w0, [x19, #0x30]")]), Var("R0",Imm(64)), -UNSIGNED(64,Load(Var("mem",Mem(64,8)),PLUS(Var("R19",Imm(64)),Int(48,64)),LittleEndian(),8)))]), -Jmps([Goto(Tid(675, "%000002a3"), Attrs([Attr("address","0x6D4"), -Attr("insn","cbnz w0, #0x28")]), - NEQ(Extract(31,0,Var("R0",Imm(64))),Int(0,32)), -Direct(Tid(673, "%000002a1"))), Goto(Tid(1_407, "%0000057f"), Attrs([]), - Int(1,1), Direct(Tid(762, "%000002fa")))])), Blk(Tid(762, "%000002fa"), - Attrs([Attr("address","0x6D8")]), Phis([]), Defs([Def(Tid(765, "%000002fd"), - Attrs([Attr("address","0x6D8"), Attr("insn","adrp x0, #65536")]), - Var("R0",Imm(64)), Int(65536,64)), Def(Tid(772, "%00000304"), - Attrs([Attr("address","0x6DC"), Attr("insn","ldr x0, [x0, #0xfc8]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(4040,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(778, "%0000030a"), Attrs([Attr("address","0x6E0"), -Attr("insn","cbz x0, #0x10")]), EQ(Var("R0",Imm(64)),Int(0,64)), -Direct(Tid(776, "%00000308"))), Goto(Tid(1_408, "%00000580"), Attrs([]), - Int(1,1), Direct(Tid(801, "%00000321")))])), Blk(Tid(801, "%00000321"), - Attrs([Attr("address","0x6E4")]), Phis([]), Defs([Def(Tid(804, "%00000324"), - Attrs([Attr("address","0x6E4"), Attr("insn","adrp x0, #69632")]), - Var("R0",Imm(64)), Int(69632,64)), Def(Tid(811, "%0000032b"), - Attrs([Attr("address","0x6E8"), Attr("insn","ldr x0, [x0, #0x28]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(40,64)),LittleEndian(),64)), -Def(Tid(816, "%00000330"), Attrs([Attr("address","0x6EC"), -Attr("insn","bl #-0x11c")]), Var("R30",Imm(64)), Int(1776,64))]), -Jmps([Call(Tid(819, "%00000333"), Attrs([Attr("address","0x6EC"), -Attr("insn","bl #-0x11c")]), Int(1,1), -(Direct(Tid(1_405, "@__cxa_finalize")),Direct(Tid(776, "%00000308"))))])), -Blk(Tid(776, "%00000308"), Attrs([Attr("address","0x6F0")]), Phis([]), -Defs([Def(Tid(784, "%00000310"), Attrs([Attr("address","0x6F0"), -Attr("insn","bl #-0xa0")]), Var("R30",Imm(64)), Int(1780,64))]), -Jmps([Call(Tid(786, "%00000312"), Attrs([Attr("address","0x6F0"), -Attr("insn","bl #-0xa0")]), Int(1,1), -(Direct(Tid(1_419, "@deregister_tm_clones")),Direct(Tid(788, "%00000314"))))])), -Blk(Tid(788, "%00000314"), Attrs([Attr("address","0x6F4")]), Phis([]), -Defs([Def(Tid(791, "%00000317"), Attrs([Attr("address","0x6F4"), -Attr("insn","mov w0, #0x1")]), Var("R0",Imm(64)), Int(1,64)), -Def(Tid(799, "%0000031f"), Attrs([Attr("address","0x6F8"), -Attr("insn","strb w0, [x19, #0x30]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R19",Imm(64)),Int(48,64)),Extract(7,0,Var("R0",Imm(64))),LittleEndian(),8))]), -Jmps([Goto(Tid(1_409, "%00000581"), Attrs([]), Int(1,1), -Direct(Tid(673, "%000002a1")))])), Blk(Tid(673, "%000002a1"), - Attrs([Attr("address","0x6FC")]), Phis([]), Defs([Def(Tid(683, "%000002ab"), - Attrs([Attr("address","0x6FC"), Attr("insn","ldr x19, [sp, #0x10]")]), - Var("R19",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(16,64)),LittleEndian(),64)), -Def(Tid(690, "%000002b2"), Attrs([Attr("address","0x700"), -Attr("insn","ldp x29, x30, [sp], #0x20")]), Var("R29",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(695, "%000002b7"), Attrs([Attr("address","0x700"), -Attr("insn","ldp x29, x30, [sp], #0x20")]), Var("R30",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(699, "%000002bb"), Attrs([Attr("address","0x700"), -Attr("insn","ldp x29, x30, [sp], #0x20")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(32,64)))]), Jmps([Call(Tid(704, "%000002c0"), - Attrs([Attr("address","0x704"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), Sub(Tid(1_410, "@__libc_start_main"), - Attrs([Attr("c.proto","signed (*)(signed (*)(signed , char** , char** );* main, signed , char** , \nvoid* auxv)"), -Attr("address","0x5C0"), Attr("stub","()")]), "__libc_start_main", - Args([Arg(Tid(1_430, "%00000596"), - Attrs([Attr("c.layout","**[ : 64]"), -Attr("c.data","Top:u64 ptr ptr"), -Attr("c.type","signed (*)(signed , char** , char** );*")]), - Var("__libc_start_main_main",Imm(64)), Var("R0",Imm(64)), In()), -Arg(Tid(1_431, "%00000597"), Attrs([Attr("c.layout","[signed : 32]"), -Attr("c.data","Top:u32"), Attr("c.type","signed")]), - Var("__libc_start_main_arg2",Imm(32)), LOW(32,Var("R1",Imm(64))), In()), -Arg(Tid(1_432, "%00000598"), Attrs([Attr("c.layout","**[char : 8]"), -Attr("c.data","Top:u8 ptr ptr"), Attr("c.type","char**")]), - Var("__libc_start_main_arg3",Imm(64)), Var("R2",Imm(64)), Both()), -Arg(Tid(1_433, "%00000599"), Attrs([Attr("c.layout","*[ : 8]"), -Attr("c.data","{} ptr"), Attr("c.type","void*")]), - Var("__libc_start_main_auxv",Imm(64)), Var("R3",Imm(64)), Both()), -Arg(Tid(1_434, "%0000059a"), Attrs([Attr("c.layout","[signed : 32]"), -Attr("c.data","Top:u32"), Attr("c.type","signed")]), - Var("__libc_start_main_result",Imm(32)), LOW(32,Var("R0",Imm(64))), -Out())]), Blks([Blk(Tid(455, "@__libc_start_main"), - Attrs([Attr("address","0x5C0")]), Phis([]), -Defs([Def(Tid(1_043, "%00000413"), Attrs([Attr("address","0x5C0"), -Attr("insn","adrp x16, #69632")]), Var("R16",Imm(64)), Int(69632,64)), -Def(Tid(1_050, "%0000041a"), Attrs([Attr("address","0x5C4"), -Attr("insn","ldr x17, [x16]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R16",Imm(64)),LittleEndian(),64)), -Def(Tid(1_056, "%00000420"), Attrs([Attr("address","0x5C8"), -Attr("insn","add x16, x16, #0x0")]), Var("R16",Imm(64)), -Var("R16",Imm(64)))]), Jmps([Call(Tid(1_061, "%00000425"), - Attrs([Attr("address","0x5CC"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), Sub(Tid(1_411, "@_fini"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x734")]), - "_fini", Args([Arg(Tid(1_435, "%0000059b"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("_fini_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(31, "@_fini"), - Attrs([Attr("address","0x734")]), Phis([]), Defs([Def(Tid(37, "%00000025"), - Attrs([Attr("address","0x738"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("#0",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(18446744073709551600,64))), -Def(Tid(43, "%0000002b"), Attrs([Attr("address","0x738"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("#0",Imm(64)),Var("R29",Imm(64)),LittleEndian(),64)), -Def(Tid(49, "%00000031"), Attrs([Attr("address","0x738"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("#0",Imm(64)),Int(8,64)),Var("R30",Imm(64)),LittleEndian(),64)), -Def(Tid(53, "%00000035"), Attrs([Attr("address","0x738"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("R31",Imm(64)), -Var("#0",Imm(64))), Def(Tid(59, "%0000003b"), Attrs([Attr("address","0x73C"), -Attr("insn","mov x29, sp")]), Var("R29",Imm(64)), Var("R31",Imm(64))), -Def(Tid(66, "%00000042"), Attrs([Attr("address","0x740"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R29",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(71, "%00000047"), Attrs([Attr("address","0x740"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R30",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(75, "%0000004b"), Attrs([Attr("address","0x740"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(16,64)))]), Jmps([Call(Tid(80, "%00000050"), - Attrs([Attr("address","0x744"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), Sub(Tid(1_412, "@_init"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x580")]), - "_init", Args([Arg(Tid(1_436, "%0000059c"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("_init_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(1_239, "@_init"), - Attrs([Attr("address","0x580")]), Phis([]), -Defs([Def(Tid(1_245, "%000004dd"), Attrs([Attr("address","0x584"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("#5",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(18446744073709551600,64))), -Def(Tid(1_251, "%000004e3"), Attrs([Attr("address","0x584"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("#5",Imm(64)),Var("R29",Imm(64)),LittleEndian(),64)), -Def(Tid(1_257, "%000004e9"), Attrs([Attr("address","0x584"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("#5",Imm(64)),Int(8,64)),Var("R30",Imm(64)),LittleEndian(),64)), -Def(Tid(1_261, "%000004ed"), Attrs([Attr("address","0x584"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("R31",Imm(64)), -Var("#5",Imm(64))), Def(Tid(1_267, "%000004f3"), - Attrs([Attr("address","0x588"), Attr("insn","mov x29, sp")]), - Var("R29",Imm(64)), Var("R31",Imm(64))), Def(Tid(1_272, "%000004f8"), - Attrs([Attr("address","0x58C"), Attr("insn","bl #0xa8")]), - Var("R30",Imm(64)), Int(1424,64))]), Jmps([Call(Tid(1_274, "%000004fa"), - Attrs([Attr("address","0x58C"), Attr("insn","bl #0xa8")]), Int(1,1), -(Direct(Tid(1_417, "@call_weak_fn")),Direct(Tid(1_276, "%000004fc"))))])), -Blk(Tid(1_276, "%000004fc"), Attrs([Attr("address","0x590")]), Phis([]), -Defs([Def(Tid(1_281, "%00000501"), Attrs([Attr("address","0x590"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R29",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(1_286, "%00000506"), Attrs([Attr("address","0x590"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R30",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(1_290, "%0000050a"), Attrs([Attr("address","0x590"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(16,64)))]), Jmps([Call(Tid(1_295, "%0000050f"), - Attrs([Attr("address","0x594"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), Sub(Tid(1_413, "@_start"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x600"), -Attr("stub","()"), Attr("entry-point","()")]), "_start", - Args([Arg(Tid(1_437, "%0000059d"), Attrs([Attr("c.layout","[signed : 32]"), -Attr("c.data","Top:u32"), Attr("c.type","signed")]), - Var("_start_result",Imm(32)), LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(392, "@_start"), Attrs([Attr("address","0x600")]), Phis([]), -Defs([Def(Tid(397, "%0000018d"), Attrs([Attr("address","0x604"), -Attr("insn","mov x29, #0x0")]), Var("R29",Imm(64)), Int(0,64)), -Def(Tid(402, "%00000192"), Attrs([Attr("address","0x608"), -Attr("insn","mov x30, #0x0")]), Var("R30",Imm(64)), Int(0,64)), -Def(Tid(408, "%00000198"), Attrs([Attr("address","0x60C"), -Attr("insn","mov x5, x0")]), Var("R5",Imm(64)), Var("R0",Imm(64))), -Def(Tid(415, "%0000019f"), Attrs([Attr("address","0x610"), -Attr("insn","ldr x1, [sp]")]), Var("R1",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(421, "%000001a5"), Attrs([Attr("address","0x614"), -Attr("insn","add x2, sp, #0x8")]), Var("R2",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(8,64))), Def(Tid(427, "%000001ab"), - Attrs([Attr("address","0x618"), Attr("insn","mov x6, sp")]), - Var("R6",Imm(64)), Var("R31",Imm(64))), Def(Tid(432, "%000001b0"), - Attrs([Attr("address","0x61C"), Attr("insn","adrp x0, #65536")]), - Var("R0",Imm(64)), Int(65536,64)), Def(Tid(439, "%000001b7"), - Attrs([Attr("address","0x620"), Attr("insn","ldr x0, [x0, #0xfd8]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(4056,64)),LittleEndian(),64)), -Def(Tid(444, "%000001bc"), Attrs([Attr("address","0x624"), -Attr("insn","mov x3, #0x0")]), Var("R3",Imm(64)), Int(0,64)), -Def(Tid(449, "%000001c1"), Attrs([Attr("address","0x628"), -Attr("insn","mov x4, #0x0")]), Var("R4",Imm(64)), Int(0,64)), -Def(Tid(454, "%000001c6"), Attrs([Attr("address","0x62C"), -Attr("insn","bl #-0x6c")]), Var("R30",Imm(64)), Int(1584,64))]), -Jmps([Call(Tid(457, "%000001c9"), Attrs([Attr("address","0x62C"), -Attr("insn","bl #-0x6c")]), Int(1,1), -(Direct(Tid(1_410, "@__libc_start_main")),Direct(Tid(459, "%000001cb"))))])), -Blk(Tid(459, "%000001cb"), Attrs([Attr("address","0x630")]), Phis([]), -Defs([Def(Tid(462, "%000001ce"), Attrs([Attr("address","0x630"), -Attr("insn","bl #-0x40")]), Var("R30",Imm(64)), Int(1588,64))]), -Jmps([Call(Tid(465, "%000001d1"), Attrs([Attr("address","0x630"), -Attr("insn","bl #-0x40")]), Int(1,1), -(Direct(Tid(1_416, "@abort")),Direct(Tid(1_414, "%00000586"))))])), -Blk(Tid(1_414, "%00000586"), Attrs([]), Phis([]), Defs([]), -Jmps([Call(Tid(1_415, "%00000587"), Attrs([]), Int(1,1), -(Direct(Tid(1_417, "@call_weak_fn")),))]))])), Sub(Tid(1_416, "@abort"), - Attrs([Attr("noreturn","()"), Attr("c.proto","void (*)(void)"), -Attr("address","0x5F0"), Attr("stub","()")]), "abort", Args([]), -Blks([Blk(Tid(463, "@abort"), Attrs([Attr("address","0x5F0")]), Phis([]), -Defs([Def(Tid(1_109, "%00000455"), Attrs([Attr("address","0x5F0"), -Attr("insn","adrp x16, #69632")]), Var("R16",Imm(64)), Int(69632,64)), -Def(Tid(1_116, "%0000045c"), Attrs([Attr("address","0x5F4"), -Attr("insn","ldr x17, [x16, #0x18]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(24,64)),LittleEndian(),64)), -Def(Tid(1_122, "%00000462"), Attrs([Attr("address","0x5F8"), -Attr("insn","add x16, x16, #0x18")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(24,64)))]), Jmps([Call(Tid(1_127, "%00000467"), - Attrs([Attr("address","0x5FC"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), Sub(Tid(1_417, "@call_weak_fn"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x634")]), - "call_weak_fn", Args([Arg(Tid(1_438, "%0000059e"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("call_weak_fn_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(467, "@call_weak_fn"), - Attrs([Attr("address","0x634")]), Phis([]), Defs([Def(Tid(470, "%000001d6"), - Attrs([Attr("address","0x634"), Attr("insn","adrp x0, #65536")]), - Var("R0",Imm(64)), Int(65536,64)), Def(Tid(477, "%000001dd"), - Attrs([Attr("address","0x638"), Attr("insn","ldr x0, [x0, #0xfd0]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(4048,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(483, "%000001e3"), Attrs([Attr("address","0x63C"), -Attr("insn","cbz x0, #0x8")]), EQ(Var("R0",Imm(64)),Int(0,64)), -Direct(Tid(481, "%000001e1"))), Goto(Tid(1_418, "%0000058a"), Attrs([]), - Int(1,1), Direct(Tid(881, "%00000371")))])), Blk(Tid(481, "%000001e1"), - Attrs([Attr("address","0x644")]), Phis([]), Defs([]), -Jmps([Call(Tid(489, "%000001e9"), Attrs([Attr("address","0x644"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))])), -Blk(Tid(881, "%00000371"), Attrs([Attr("address","0x640")]), Phis([]), -Defs([]), Jmps([Goto(Tid(884, "%00000374"), Attrs([Attr("address","0x640"), -Attr("insn","b #-0x60")]), Int(1,1), Direct(Tid(882, "@__gmon_start__")))])), -Blk(Tid(882, "@__gmon_start__"), Attrs([Attr("address","0x5E0")]), Phis([]), -Defs([Def(Tid(1_087, "%0000043f"), Attrs([Attr("address","0x5E0"), -Attr("insn","adrp x16, #69632")]), Var("R16",Imm(64)), Int(69632,64)), -Def(Tid(1_094, "%00000446"), Attrs([Attr("address","0x5E4"), -Attr("insn","ldr x17, [x16, #0x10]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(16,64)),LittleEndian(),64)), -Def(Tid(1_100, "%0000044c"), Attrs([Attr("address","0x5E8"), -Attr("insn","add x16, x16, #0x10")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(16,64)))]), Jmps([Call(Tid(1_105, "%00000451"), - Attrs([Attr("address","0x5EC"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), -Sub(Tid(1_419, "@deregister_tm_clones"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x650")]), - "deregister_tm_clones", Args([Arg(Tid(1_439, "%0000059f"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("deregister_tm_clones_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(495, "@deregister_tm_clones"), - Attrs([Attr("address","0x650")]), Phis([]), Defs([Def(Tid(498, "%000001f2"), - Attrs([Attr("address","0x650"), Attr("insn","adrp x0, #69632")]), - Var("R0",Imm(64)), Int(69632,64)), Def(Tid(504, "%000001f8"), - Attrs([Attr("address","0x654"), Attr("insn","add x0, x0, #0x30")]), - Var("R0",Imm(64)), PLUS(Var("R0",Imm(64)),Int(48,64))), -Def(Tid(509, "%000001fd"), Attrs([Attr("address","0x658"), -Attr("insn","adrp x1, #69632")]), Var("R1",Imm(64)), Int(69632,64)), -Def(Tid(515, "%00000203"), Attrs([Attr("address","0x65C"), -Attr("insn","add x1, x1, #0x30")]), Var("R1",Imm(64)), -PLUS(Var("R1",Imm(64)),Int(48,64))), Def(Tid(521, "%00000209"), - Attrs([Attr("address","0x660"), Attr("insn","cmp x1, x0")]), - Var("#1",Imm(64)), NOT(Var("R0",Imm(64)))), Def(Tid(526, "%0000020e"), - Attrs([Attr("address","0x660"), Attr("insn","cmp x1, x0")]), - Var("#2",Imm(64)), PLUS(Var("R1",Imm(64)),NOT(Var("R0",Imm(64))))), -Def(Tid(532, "%00000214"), Attrs([Attr("address","0x660"), -Attr("insn","cmp x1, x0")]), Var("VF",Imm(1)), -NEQ(SIGNED(65,PLUS(Var("#2",Imm(64)),Int(1,64))),PLUS(PLUS(SIGNED(65,Var("R1",Imm(64))),SIGNED(65,Var("#1",Imm(64)))),Int(1,65)))), -Def(Tid(538, "%0000021a"), Attrs([Attr("address","0x660"), -Attr("insn","cmp x1, x0")]), Var("CF",Imm(1)), -NEQ(UNSIGNED(65,PLUS(Var("#2",Imm(64)),Int(1,64))),PLUS(PLUS(UNSIGNED(65,Var("R1",Imm(64))),UNSIGNED(65,Var("#1",Imm(64)))),Int(1,65)))), -Def(Tid(542, "%0000021e"), Attrs([Attr("address","0x660"), -Attr("insn","cmp x1, x0")]), Var("ZF",Imm(1)), -EQ(PLUS(Var("#2",Imm(64)),Int(1,64)),Int(0,64))), Def(Tid(546, "%00000222"), - Attrs([Attr("address","0x660"), Attr("insn","cmp x1, x0")]), - Var("NF",Imm(1)), Extract(63,63,PLUS(Var("#2",Imm(64)),Int(1,64))))]), -Jmps([Goto(Tid(552, "%00000228"), Attrs([Attr("address","0x664"), -Attr("insn","b.eq #0x18")]), EQ(Var("ZF",Imm(1)),Int(1,1)), -Direct(Tid(550, "%00000226"))), Goto(Tid(1_420, "%0000058c"), Attrs([]), - Int(1,1), Direct(Tid(851, "%00000353")))])), Blk(Tid(851, "%00000353"), - Attrs([Attr("address","0x668")]), Phis([]), Defs([Def(Tid(854, "%00000356"), - Attrs([Attr("address","0x668"), Attr("insn","adrp x1, #65536")]), - Var("R1",Imm(64)), Int(65536,64)), Def(Tid(861, "%0000035d"), - Attrs([Attr("address","0x66C"), Attr("insn","ldr x1, [x1, #0xfc0]")]), - Var("R1",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R1",Imm(64)),Int(4032,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(866, "%00000362"), Attrs([Attr("address","0x670"), -Attr("insn","cbz x1, #0xc")]), EQ(Var("R1",Imm(64)),Int(0,64)), -Direct(Tid(550, "%00000226"))), Goto(Tid(1_421, "%0000058d"), Attrs([]), - Int(1,1), Direct(Tid(870, "%00000366")))])), Blk(Tid(550, "%00000226"), - Attrs([Attr("address","0x67C")]), Phis([]), Defs([]), -Jmps([Call(Tid(558, "%0000022e"), Attrs([Attr("address","0x67C"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))])), -Blk(Tid(870, "%00000366"), Attrs([Attr("address","0x674")]), Phis([]), -Defs([Def(Tid(874, "%0000036a"), Attrs([Attr("address","0x674"), -Attr("insn","mov x16, x1")]), Var("R16",Imm(64)), Var("R1",Imm(64)))]), -Jmps([Call(Tid(879, "%0000036f"), Attrs([Attr("address","0x678"), -Attr("insn","br x16")]), Int(1,1), (Indirect(Var("R16",Imm(64))),))]))])), -Sub(Tid(1_422, "@frame_dummy"), Attrs([Attr("c.proto","signed (*)(void)"), -Attr("address","0x710")]), "frame_dummy", Args([Arg(Tid(1_440, "%000005a0"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("frame_dummy_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(710, "@frame_dummy"), - Attrs([Attr("address","0x710")]), Phis([]), Defs([]), -Jmps([Call(Tid(712, "%000002c8"), Attrs([Attr("address","0x710"), -Attr("insn","b #-0x90")]), Int(1,1), -(Direct(Tid(1_424, "@register_tm_clones")),))]))])), Sub(Tid(1_423, "@main"), - Attrs([Attr("c.proto","signed (*)(signed argc, const char** argv)"), -Attr("address","0x714")]), "main", Args([Arg(Tid(1_441, "%000005a1"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("main_argc",Imm(32)), -LOW(32,Var("R0",Imm(64))), In()), Arg(Tid(1_442, "%000005a2"), - Attrs([Attr("c.layout","**[char : 8]"), Attr("c.data","Top:u8 ptr ptr"), -Attr("c.type"," const char**")]), Var("main_argv",Imm(64)), -Var("R1",Imm(64)), Both()), Arg(Tid(1_443, "%000005a3"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("main_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(714, "@main"), - Attrs([Attr("address","0x714")]), Phis([]), Defs([Def(Tid(717, "%000002cd"), - Attrs([Attr("address","0x714"), Attr("insn","adrp x8, #69632")]), - Var("R8",Imm(64)), Int(69632,64)), Def(Tid(722, "%000002d2"), - Attrs([Attr("address","0x718"), Attr("insn","mov w0, wzr")]), - Var("R0",Imm(64)), Int(0,64)), Def(Tid(727, "%000002d7"), - Attrs([Attr("address","0x71C"), Attr("insn","adrp x9, #69632")]), - Var("R9",Imm(64)), Int(69632,64)), Def(Tid(732, "%000002dc"), - Attrs([Attr("address","0x720"), Attr("insn","adrp x10, #69632")]), - Var("R10",Imm(64)), Int(69632,64)), Def(Tid(739, "%000002e3"), - Attrs([Attr("address","0x724"), Attr("insn","ldr w8, [x8, #0x34]")]), - Var("R8",Imm(64)), -UNSIGNED(64,Load(Var("mem",Mem(64,8)),PLUS(Var("R8",Imm(64)),Int(52,64)),LittleEndian(),32))), -Def(Tid(747, "%000002eb"), Attrs([Attr("address","0x728"), -Attr("insn","str w8, [x9, #0x38]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R9",Imm(64)),Int(56,64)),Extract(31,0,Var("R8",Imm(64))),LittleEndian(),32)), -Def(Tid(755, "%000002f3"), Attrs([Attr("address","0x72C"), -Attr("insn","str w8, [x10, #0x3c]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R10",Imm(64)),Int(60,64)),Extract(31,0,Var("R8",Imm(64))),LittleEndian(),32))]), -Jmps([Call(Tid(760, "%000002f8"), Attrs([Attr("address","0x730"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))]))])), -Sub(Tid(1_424, "@register_tm_clones"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x680")]), - "register_tm_clones", Args([Arg(Tid(1_444, "%000005a4"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("register_tm_clones_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(560, "@register_tm_clones"), Attrs([Attr("address","0x680")]), - Phis([]), Defs([Def(Tid(563, "%00000233"), Attrs([Attr("address","0x680"), -Attr("insn","adrp x0, #69632")]), Var("R0",Imm(64)), Int(69632,64)), -Def(Tid(569, "%00000239"), Attrs([Attr("address","0x684"), -Attr("insn","add x0, x0, #0x30")]), Var("R0",Imm(64)), -PLUS(Var("R0",Imm(64)),Int(48,64))), Def(Tid(574, "%0000023e"), - Attrs([Attr("address","0x688"), Attr("insn","adrp x1, #69632")]), - Var("R1",Imm(64)), Int(69632,64)), Def(Tid(580, "%00000244"), - Attrs([Attr("address","0x68C"), Attr("insn","add x1, x1, #0x30")]), - Var("R1",Imm(64)), PLUS(Var("R1",Imm(64)),Int(48,64))), -Def(Tid(587, "%0000024b"), Attrs([Attr("address","0x690"), -Attr("insn","sub x1, x1, x0")]), Var("R1",Imm(64)), -PLUS(PLUS(Var("R1",Imm(64)),NOT(Var("R0",Imm(64)))),Int(1,64))), -Def(Tid(593, "%00000251"), Attrs([Attr("address","0x694"), -Attr("insn","lsr x2, x1, #63")]), Var("R2",Imm(64)), -Concat(Int(0,63),Extract(63,63,Var("R1",Imm(64))))), -Def(Tid(600, "%00000258"), Attrs([Attr("address","0x698"), -Attr("insn","add x1, x2, x1, asr #3")]), Var("R1",Imm(64)), -PLUS(Var("R2",Imm(64)),ARSHIFT(Var("R1",Imm(64)),Int(3,3)))), -Def(Tid(606, "%0000025e"), Attrs([Attr("address","0x69C"), -Attr("insn","asr x1, x1, #1")]), Var("R1",Imm(64)), -SIGNED(64,Extract(63,1,Var("R1",Imm(64)))))]), -Jmps([Goto(Tid(612, "%00000264"), Attrs([Attr("address","0x6A0"), -Attr("insn","cbz x1, #0x18")]), EQ(Var("R1",Imm(64)),Int(0,64)), -Direct(Tid(610, "%00000262"))), Goto(Tid(1_425, "%00000591"), Attrs([]), - Int(1,1), Direct(Tid(821, "%00000335")))])), Blk(Tid(821, "%00000335"), - Attrs([Attr("address","0x6A4")]), Phis([]), Defs([Def(Tid(824, "%00000338"), - Attrs([Attr("address","0x6A4"), Attr("insn","adrp x2, #65536")]), - Var("R2",Imm(64)), Int(65536,64)), Def(Tid(831, "%0000033f"), - Attrs([Attr("address","0x6A8"), Attr("insn","ldr x2, [x2, #0xfe0]")]), - Var("R2",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R2",Imm(64)),Int(4064,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(836, "%00000344"), Attrs([Attr("address","0x6AC"), -Attr("insn","cbz x2, #0xc")]), EQ(Var("R2",Imm(64)),Int(0,64)), -Direct(Tid(610, "%00000262"))), Goto(Tid(1_426, "%00000592"), Attrs([]), - Int(1,1), Direct(Tid(840, "%00000348")))])), Blk(Tid(610, "%00000262"), - Attrs([Attr("address","0x6B8")]), Phis([]), Defs([]), -Jmps([Call(Tid(618, "%0000026a"), Attrs([Attr("address","0x6B8"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))])), -Blk(Tid(840, "%00000348"), Attrs([Attr("address","0x6B0")]), Phis([]), -Defs([Def(Tid(844, "%0000034c"), Attrs([Attr("address","0x6B0"), -Attr("insn","mov x16, x2")]), Var("R16",Imm(64)), Var("R2",Imm(64)))]), -Jmps([Call(Tid(849, "%00000351"), Attrs([Attr("address","0x6B4"), -Attr("insn","br x16")]), Int(1,1), -(Indirect(Var("R16",Imm(64))),))]))]))]))) \ No newline at end of file diff --git a/src/test/incorrect/basicassign/clang_O2/basicassign.bir b/src/test/incorrect/basicassign/clang_O2/basicassign.bir deleted file mode 100644 index f7c6a0f2a..000000000 --- a/src/test/incorrect/basicassign/clang_O2/basicassign.bir +++ /dev/null @@ -1,230 +0,0 @@ -00000593: program -0000057d: sub __cxa_finalize(__cxa_finalize_result) -00000594: __cxa_finalize_result :: out u32 = low:32[R0] - -00000331: -00000429: R16 := 0x11000 -00000430: R17 := mem[R16 + 8, el]:u64 -00000436: R16 := R16 + 8 -0000043b: call R17 with noreturn - -0000057e: sub __do_global_dtors_aux(__do_global_dtors_aux_result) -00000595: __do_global_dtors_aux_result :: out u32 = low:32[R0] - -0000026e: -00000272: #3 := R31 - 0x20 -00000278: mem := mem with [#3, el]:u64 <- R29 -0000027e: mem := mem with [#3 + 8, el]:u64 <- R30 -00000282: R31 := #3 -00000288: R29 := R31 -00000290: mem := mem with [R31 + 0x10, el]:u64 <- R19 -00000295: R19 := 0x11000 -0000029c: R0 := pad:64[mem[R19 + 0x30]] -000002a3: when 31:0[R0] <> 0 goto %000002a1 -0000057f: goto %000002fa - -000002fa: -000002fd: R0 := 0x10000 -00000304: R0 := mem[R0 + 0xFC8, el]:u64 -0000030a: when R0 = 0 goto %00000308 -00000580: goto %00000321 - -00000321: -00000324: R0 := 0x11000 -0000032b: R0 := mem[R0 + 0x28, el]:u64 -00000330: R30 := 0x6F0 -00000333: call @__cxa_finalize with return %00000308 - -00000308: -00000310: R30 := 0x6F4 -00000312: call @deregister_tm_clones with return %00000314 - -00000314: -00000317: R0 := 1 -0000031f: mem := mem with [R19 + 0x30] <- 7:0[R0] -00000581: goto %000002a1 - -000002a1: -000002ab: R19 := mem[R31 + 0x10, el]:u64 -000002b2: R29 := mem[R31, el]:u64 -000002b7: R30 := mem[R31 + 8, el]:u64 -000002bb: R31 := R31 + 0x20 -000002c0: call R30 with noreturn - -00000582: sub __libc_start_main(__libc_start_main_main, __libc_start_main_arg2, __libc_start_main_arg3, __libc_start_main_auxv, __libc_start_main_result) -00000596: __libc_start_main_main :: in u64 = R0 -00000597: __libc_start_main_arg2 :: in u32 = low:32[R1] -00000598: __libc_start_main_arg3 :: in out u64 = R2 -00000599: __libc_start_main_auxv :: in out u64 = R3 -0000059a: __libc_start_main_result :: out u32 = low:32[R0] - -000001c7: -00000413: R16 := 0x11000 -0000041a: R17 := mem[R16, el]:u64 -00000420: R16 := R16 -00000425: call R17 with noreturn - -00000583: sub _fini(_fini_result) -0000059b: _fini_result :: out u32 = low:32[R0] - -0000001f: -00000025: #0 := R31 - 0x10 -0000002b: mem := mem with [#0, el]:u64 <- R29 -00000031: mem := mem with [#0 + 8, el]:u64 <- R30 -00000035: R31 := #0 -0000003b: R29 := R31 -00000042: R29 := mem[R31, el]:u64 -00000047: R30 := mem[R31 + 8, el]:u64 -0000004b: R31 := R31 + 0x10 -00000050: call R30 with noreturn - -00000584: sub _init(_init_result) -0000059c: _init_result :: out u32 = low:32[R0] - -000004d7: -000004dd: #5 := R31 - 0x10 -000004e3: mem := mem with [#5, el]:u64 <- R29 -000004e9: mem := mem with [#5 + 8, el]:u64 <- R30 -000004ed: R31 := #5 -000004f3: R29 := R31 -000004f8: R30 := 0x590 -000004fa: call @call_weak_fn with return %000004fc - -000004fc: -00000501: R29 := mem[R31, el]:u64 -00000506: R30 := mem[R31 + 8, el]:u64 -0000050a: R31 := R31 + 0x10 -0000050f: call R30 with noreturn - -00000585: sub _start(_start_result) -0000059d: _start_result :: out u32 = low:32[R0] - -00000188: -0000018d: R29 := 0 -00000192: R30 := 0 -00000198: R5 := R0 -0000019f: R1 := mem[R31, el]:u64 -000001a5: R2 := R31 + 8 -000001ab: R6 := R31 -000001b0: R0 := 0x10000 -000001b7: R0 := mem[R0 + 0xFD8, el]:u64 -000001bc: R3 := 0 -000001c1: R4 := 0 -000001c6: R30 := 0x630 -000001c9: call @__libc_start_main with return %000001cb - -000001cb: -000001ce: R30 := 0x634 -000001d1: call @abort with return %00000586 - -00000586: -00000587: call @call_weak_fn with noreturn - -00000588: sub abort() - - -000001cf: -00000455: R16 := 0x11000 -0000045c: R17 := mem[R16 + 0x18, el]:u64 -00000462: R16 := R16 + 0x18 -00000467: call R17 with noreturn - -00000589: sub call_weak_fn(call_weak_fn_result) -0000059e: call_weak_fn_result :: out u32 = low:32[R0] - -000001d3: -000001d6: R0 := 0x10000 -000001dd: R0 := mem[R0 + 0xFD0, el]:u64 -000001e3: when R0 = 0 goto %000001e1 -0000058a: goto %00000371 - -000001e1: -000001e9: call R30 with noreturn - -00000371: -00000374: goto @__gmon_start__ - -00000372: -0000043f: R16 := 0x11000 -00000446: R17 := mem[R16 + 0x10, el]:u64 -0000044c: R16 := R16 + 0x10 -00000451: call R17 with noreturn - -0000058b: sub deregister_tm_clones(deregister_tm_clones_result) -0000059f: deregister_tm_clones_result :: out u32 = low:32[R0] - -000001ef: -000001f2: R0 := 0x11000 -000001f8: R0 := R0 + 0x30 -000001fd: R1 := 0x11000 -00000203: R1 := R1 + 0x30 -00000209: #1 := ~R0 -0000020e: #2 := R1 + ~R0 -00000214: VF := extend:65[#2 + 1] <> extend:65[R1] + extend:65[#1] + 1 -0000021a: CF := pad:65[#2 + 1] <> pad:65[R1] + pad:65[#1] + 1 -0000021e: ZF := #2 + 1 = 0 -00000222: NF := 63:63[#2 + 1] -00000228: when ZF goto %00000226 -0000058c: goto %00000353 - -00000353: -00000356: R1 := 0x10000 -0000035d: R1 := mem[R1 + 0xFC0, el]:u64 -00000362: when R1 = 0 goto %00000226 -0000058d: goto %00000366 - -00000226: -0000022e: call R30 with noreturn - -00000366: -0000036a: R16 := R1 -0000036f: call R16 with noreturn - -0000058e: sub frame_dummy(frame_dummy_result) -000005a0: frame_dummy_result :: out u32 = low:32[R0] - -000002c6: -000002c8: call @register_tm_clones with noreturn - -0000058f: sub main(main_argc, main_argv, main_result) -000005a1: main_argc :: in u32 = low:32[R0] -000005a2: main_argv :: in out u64 = R1 -000005a3: main_result :: out u32 = low:32[R0] - -000002ca: -000002cd: R8 := 0x11000 -000002d2: R0 := 0 -000002d7: R9 := 0x11000 -000002dc: R10 := 0x11000 -000002e3: R8 := pad:64[mem[R8 + 0x34, el]:u32] -000002eb: mem := mem with [R9 + 0x38, el]:u32 <- 31:0[R8] -000002f3: mem := mem with [R10 + 0x3C, el]:u32 <- 31:0[R8] -000002f8: call R30 with noreturn - -00000590: sub register_tm_clones(register_tm_clones_result) -000005a4: register_tm_clones_result :: out u32 = low:32[R0] - -00000230: -00000233: R0 := 0x11000 -00000239: R0 := R0 + 0x30 -0000023e: R1 := 0x11000 -00000244: R1 := R1 + 0x30 -0000024b: R1 := R1 + ~R0 + 1 -00000251: R2 := 0.63:63[R1] -00000258: R1 := R2 + (R1 ~>> 3) -0000025e: R1 := extend:64[63:1[R1]] -00000264: when R1 = 0 goto %00000262 -00000591: goto %00000335 - -00000335: -00000338: R2 := 0x10000 -0000033f: R2 := mem[R2 + 0xFE0, el]:u64 -00000344: when R2 = 0 goto %00000262 -00000592: goto %00000348 - -00000262: -0000026a: call R30 with noreturn - -00000348: -0000034c: R16 := R2 -00000351: call R16 with noreturn diff --git a/src/test/incorrect/basicassign/clang_O2/basicassign.expected b/src/test/incorrect/basicassign/clang_O2/basicassign.expected index dac252411..8784363de 100644 --- a/src/test/incorrect/basicassign/clang_O2/basicassign.expected +++ b/src/test/incorrect/basicassign/clang_O2/basicassign.expected @@ -9,11 +9,11 @@ var {:extern} R8: bv64; var {:extern} R9: bv64; var {:extern} mem: [bv64]bv8; const {:extern} $secret_addr: bv64; -axiom ($secret_addr == 69684bv64); +axiom ($secret_addr == 131092bv64); const {:extern} $x_addr: bv64; -axiom ($x_addr == 69688bv64); +axiom ($x_addr == 131096bv64); const {:extern} $z_addr: bv64; -axiom ($z_addr == 69692bv64); +axiom ($z_addr == 131100bv64); function {:extern} L(mem$in: [bv64]bv8, index: bv64) returns (bool) { (if (index == $z_addr) then true else (if (index == $secret_addr) then false else (if (index == $x_addr) then false else false))) } @@ -23,6 +23,10 @@ function {:extern} gamma_load32(gammaMap: [bv64]bool, index: bv64) returns (bool (gammaMap[bvadd64(index, 3bv64)] && (gammaMap[bvadd64(index, 2bv64)] && (gammaMap[bvadd64(index, 1bv64)] && gammaMap[index]))) } +function {:extern} gamma_load64(gammaMap: [bv64]bool, index: bv64) returns (bool) { + (gammaMap[bvadd64(index, 7bv64)] && (gammaMap[bvadd64(index, 6bv64)] && (gammaMap[bvadd64(index, 5bv64)] && (gammaMap[bvadd64(index, 4bv64)] && (gammaMap[bvadd64(index, 3bv64)] && (gammaMap[bvadd64(index, 2bv64)] && (gammaMap[bvadd64(index, 1bv64)] && gammaMap[index]))))))) +} + function {:extern} gamma_store32(gammaMap: [bv64]bool, index: bv64, value: bool) returns ([bv64]bool) { gammaMap[index := value][bvadd64(index, 1bv64) := value][bvadd64(index, 2bv64) := value][bvadd64(index, 3bv64) := value] } @@ -44,11 +48,14 @@ procedure {:extern} rely(); modifies Gamma_mem, mem; ensures (forall i: bv64 :: (((mem[i] == old(mem[i])) ==> (Gamma_mem[i] == old(Gamma_mem[i]))))); ensures (memory_load32_le(mem, $x_addr) == old(memory_load32_le(mem, $x_addr))); - free ensures (memory_load32_le(mem, 1864bv64) == 131073bv32); - free ensures (memory_load64_le(mem, 69064bv64) == 1808bv64); - free ensures (memory_load64_le(mem, 69072bv64) == 1728bv64); - free ensures (memory_load64_le(mem, 69592bv64) == 1812bv64); - free ensures (memory_load64_le(mem, 69672bv64) == 69672bv64); + free ensures (memory_load32_le(mem, 2324bv64) == 131073bv32); + free ensures (memory_load64_le(mem, 130416bv64) == 2256bv64); + free ensures (memory_load64_le(mem, 130424bv64) == 2176bv64); + free ensures (memory_load64_le(mem, 131024bv64) == 131100bv64); + free ensures (memory_load64_le(mem, 131032bv64) == 131096bv64); + free ensures (memory_load64_le(mem, 131048bv64) == 131092bv64); + free ensures (memory_load64_le(mem, 131056bv64) == 2260bv64); + free ensures (memory_load64_le(mem, 131080bv64) == 131080bv64); procedure {:extern} rely_transitive(); modifies Gamma_mem, mem; @@ -70,45 +77,66 @@ implementation {:extern} rely_reflexive() procedure {:extern} guarantee_reflexive(); modifies Gamma_mem, mem; -procedure main_1812(); +procedure main(); modifies Gamma_R0, Gamma_R10, Gamma_R8, Gamma_R9, Gamma_mem, R0, R10, R8, R9, mem; - free requires (memory_load64_le(mem, 69664bv64) == 0bv64); - free requires (memory_load64_le(mem, 69672bv64) == 69672bv64); - free requires (memory_load32_le(mem, 1864bv64) == 131073bv32); - free requires (memory_load64_le(mem, 69064bv64) == 1808bv64); - free requires (memory_load64_le(mem, 69072bv64) == 1728bv64); - free requires (memory_load64_le(mem, 69592bv64) == 1812bv64); - free requires (memory_load64_le(mem, 69672bv64) == 69672bv64); - free ensures (memory_load32_le(mem, 1864bv64) == 131073bv32); - free ensures (memory_load64_le(mem, 69064bv64) == 1808bv64); - free ensures (memory_load64_le(mem, 69072bv64) == 1728bv64); - free ensures (memory_load64_le(mem, 69592bv64) == 1812bv64); - free ensures (memory_load64_le(mem, 69672bv64) == 69672bv64); + free requires (memory_load64_le(mem, 131072bv64) == 0bv64); + free requires (memory_load64_le(mem, 131080bv64) == 131080bv64); + free requires (memory_load32_le(mem, 2324bv64) == 131073bv32); + free requires (memory_load64_le(mem, 130416bv64) == 2256bv64); + free requires (memory_load64_le(mem, 130424bv64) == 2176bv64); + free requires (memory_load64_le(mem, 131024bv64) == 131100bv64); + free requires (memory_load64_le(mem, 131032bv64) == 131096bv64); + free requires (memory_load64_le(mem, 131048bv64) == 131092bv64); + free requires (memory_load64_le(mem, 131056bv64) == 2260bv64); + free requires (memory_load64_le(mem, 131080bv64) == 131080bv64); + free ensures (memory_load32_le(mem, 2324bv64) == 131073bv32); + free ensures (memory_load64_le(mem, 130416bv64) == 2256bv64); + free ensures (memory_load64_le(mem, 130424bv64) == 2176bv64); + free ensures (memory_load64_le(mem, 131024bv64) == 131100bv64); + free ensures (memory_load64_le(mem, 131032bv64) == 131096bv64); + free ensures (memory_load64_le(mem, 131048bv64) == 131092bv64); + free ensures (memory_load64_le(mem, 131056bv64) == 2260bv64); + free ensures (memory_load64_le(mem, 131080bv64) == 131080bv64); -implementation main_1812() +implementation main() { - var Gamma_load18: bool; - var load18: bv32; + var $load$18: bv64; + var $load$19: bv64; + var $load$20: bv32; + var $load$21: bv64; + var Gamma_$load$18: bool; + var Gamma_$load$19: bool; + var Gamma_$load$20: bool; + var Gamma_$load$21: bool; lmain: assume {:captureState "lmain"} true; - R8, Gamma_R8 := 69632bv64, true; + R8, Gamma_R8 := 126976bv64, true; + R9, Gamma_R9 := 126976bv64, true; + R10, Gamma_R10 := 126976bv64, true; + call rely(); + $load$18, Gamma_$load$18 := memory_load64_le(mem, bvadd64(R8, 4072bv64)), (gamma_load64(Gamma_mem, bvadd64(R8, 4072bv64)) || L(mem, bvadd64(R8, 4072bv64))); + R8, Gamma_R8 := $load$18, Gamma_$load$18; + call rely(); + $load$19, Gamma_$load$19 := memory_load64_le(mem, bvadd64(R9, 4056bv64)), (gamma_load64(Gamma_mem, bvadd64(R9, 4056bv64)) || L(mem, bvadd64(R9, 4056bv64))); + R9, Gamma_R9 := $load$19, Gamma_$load$19; R0, Gamma_R0 := 0bv64, true; - R9, Gamma_R9 := 69632bv64, true; - R10, Gamma_R10 := 69632bv64, true; call rely(); - load18, Gamma_load18 := memory_load32_le(mem, bvadd64(R8, 52bv64)), (gamma_load32(Gamma_mem, bvadd64(R8, 52bv64)) || L(mem, bvadd64(R8, 52bv64))); - R8, Gamma_R8 := zero_extend32_32(load18), Gamma_load18; + $load$20, Gamma_$load$20 := memory_load32_le(mem, R8), (gamma_load32(Gamma_mem, R8) || L(mem, R8)); + R8, Gamma_R8 := zero_extend32_32($load$20), Gamma_$load$20; + call rely(); + $load$21, Gamma_$load$21 := memory_load64_le(mem, bvadd64(R10, 4048bv64)), (gamma_load64(Gamma_mem, bvadd64(R10, 4048bv64)) || L(mem, bvadd64(R10, 4048bv64))); + R10, Gamma_R10 := $load$21, Gamma_$load$21; call rely(); - assert (L(mem, bvadd64(R9, 56bv64)) ==> Gamma_R8); - mem, Gamma_mem := memory_store32_le(mem, bvadd64(R9, 56bv64), R8[32:0]), gamma_store32(Gamma_mem, bvadd64(R9, 56bv64), Gamma_R8); - assume {:captureState "%000002eb"} true; + assert (L(mem, R9) ==> Gamma_R8); + mem, Gamma_mem := memory_store32_le(mem, R9, R8[32:0]), gamma_store32(Gamma_mem, R9, Gamma_R8); + assume {:captureState "%0000029c"} true; call rely(); - assert (L(mem, bvadd64(R10, 60bv64)) ==> Gamma_R8); - mem, Gamma_mem := memory_store32_le(mem, bvadd64(R10, 60bv64), R8[32:0]), gamma_store32(Gamma_mem, bvadd64(R10, 60bv64), Gamma_R8); - assume {:captureState "%000002f3"} true; - goto main_1812_basil_return; - main_1812_basil_return: - assume {:captureState "main_1812_basil_return"} true; + assert (L(mem, R10) ==> Gamma_R8); + mem, Gamma_mem := memory_store32_le(mem, R10, R8[32:0]), gamma_store32(Gamma_mem, R10, Gamma_R8); + assume {:captureState "%000002a0"} true; + goto main_basil_return; + main_basil_return: + assume {:captureState "main_basil_return"} true; return; } diff --git a/src/test/incorrect/basicassign/clang_O2/basicassign.gts b/src/test/incorrect/basicassign/clang_O2/basicassign.gts deleted file mode 100644 index d8e4aa0ff..000000000 Binary files a/src/test/incorrect/basicassign/clang_O2/basicassign.gts and /dev/null differ diff --git a/src/test/incorrect/basicassign/clang_O2/basicassign.md5sum b/src/test/incorrect/basicassign/clang_O2/basicassign.md5sum new file mode 100644 index 000000000..13d1992b0 --- /dev/null +++ b/src/test/incorrect/basicassign/clang_O2/basicassign.md5sum @@ -0,0 +1,5 @@ +ba8987cdfca34b8e40c36f454b6b11be incorrect/basicassign/clang_O2/a.out +0bfaa3ac538571e0d2bccff2c0bfd274 incorrect/basicassign/clang_O2/basicassign.adt +7467eb7683651b521fcf8de9e917ea82 incorrect/basicassign/clang_O2/basicassign.bir +079047f77e1f0387b868d7a1326dc83f incorrect/basicassign/clang_O2/basicassign.relf +54438adae1332f7afc93664a5fd4bd31 incorrect/basicassign/clang_O2/basicassign.gts diff --git a/src/test/incorrect/basicassign/clang_O2/basicassign.relf b/src/test/incorrect/basicassign/clang_O2/basicassign.relf deleted file mode 100644 index e9b5f9156..000000000 --- a/src/test/incorrect/basicassign/clang_O2/basicassign.relf +++ /dev/null @@ -1,125 +0,0 @@ - -Relocation section '.rela.dyn' at offset 0x460 contains 8 entries: - Offset Info Type Symbol's Value Symbol's Name + Addend -0000000000010dc8 0000000000000403 R_AARCH64_RELATIVE 710 -0000000000010dd0 0000000000000403 R_AARCH64_RELATIVE 6c0 -0000000000010fd8 0000000000000403 R_AARCH64_RELATIVE 714 -0000000000011028 0000000000000403 R_AARCH64_RELATIVE 11028 -0000000000010fc0 0000000400000401 R_AARCH64_GLOB_DAT 0000000000000000 _ITM_deregisterTMCloneTable + 0 -0000000000010fc8 0000000500000401 R_AARCH64_GLOB_DAT 0000000000000000 __cxa_finalize@GLIBC_2.17 + 0 -0000000000010fd0 0000000600000401 R_AARCH64_GLOB_DAT 0000000000000000 __gmon_start__ + 0 -0000000000010fe0 0000000800000401 R_AARCH64_GLOB_DAT 0000000000000000 _ITM_registerTMCloneTable + 0 - -Relocation section '.rela.plt' at offset 0x520 contains 4 entries: - Offset Info Type Symbol's Value Symbol's Name + Addend -0000000000011000 0000000300000402 R_AARCH64_JUMP_SLOT 0000000000000000 __libc_start_main@GLIBC_2.34 + 0 -0000000000011008 0000000500000402 R_AARCH64_JUMP_SLOT 0000000000000000 __cxa_finalize@GLIBC_2.17 + 0 -0000000000011010 0000000600000402 R_AARCH64_JUMP_SLOT 0000000000000000 __gmon_start__ + 0 -0000000000011018 0000000700000402 R_AARCH64_JUMP_SLOT 0000000000000000 abort@GLIBC_2.17 + 0 - -Symbol table '.dynsym' contains 9 entries: - Num: Value Size Type Bind Vis Ndx Name - 0: 0000000000000000 0 NOTYPE LOCAL DEFAULT UND - 1: 0000000000000580 0 SECTION LOCAL DEFAULT 11 .init - 2: 0000000000011020 0 SECTION LOCAL DEFAULT 23 .data - 3: 0000000000000000 0 FUNC GLOBAL DEFAULT UND __libc_start_main@GLIBC_2.34 (2) - 4: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_deregisterTMCloneTable - 5: 0000000000000000 0 FUNC WEAK DEFAULT UND __cxa_finalize@GLIBC_2.17 (3) - 6: 0000000000000000 0 NOTYPE WEAK DEFAULT UND __gmon_start__ - 7: 0000000000000000 0 FUNC GLOBAL DEFAULT UND abort@GLIBC_2.17 (3) - 8: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_registerTMCloneTable - -Symbol table '.symtab' contains 92 entries: - Num: Value Size Type Bind Vis Ndx Name - 0: 0000000000000000 0 NOTYPE LOCAL DEFAULT UND - 1: 0000000000000238 0 SECTION LOCAL DEFAULT 1 .interp - 2: 0000000000000254 0 SECTION LOCAL DEFAULT 2 .note.gnu.build-id - 3: 0000000000000278 0 SECTION LOCAL DEFAULT 3 .note.ABI-tag - 4: 0000000000000298 0 SECTION LOCAL DEFAULT 4 .gnu.hash - 5: 00000000000002b8 0 SECTION LOCAL DEFAULT 5 .dynsym - 6: 0000000000000390 0 SECTION LOCAL DEFAULT 6 .dynstr - 7: 000000000000041e 0 SECTION LOCAL DEFAULT 7 .gnu.version - 8: 0000000000000430 0 SECTION LOCAL DEFAULT 8 .gnu.version_r - 9: 0000000000000460 0 SECTION LOCAL DEFAULT 9 .rela.dyn - 10: 0000000000000520 0 SECTION LOCAL DEFAULT 10 .rela.plt - 11: 0000000000000580 0 SECTION LOCAL DEFAULT 11 .init - 12: 00000000000005a0 0 SECTION LOCAL DEFAULT 12 .plt - 13: 0000000000000600 0 SECTION LOCAL DEFAULT 13 .text - 14: 0000000000000734 0 SECTION LOCAL DEFAULT 14 .fini - 15: 0000000000000748 0 SECTION LOCAL DEFAULT 15 .rodata - 16: 000000000000074c 0 SECTION LOCAL DEFAULT 16 .eh_frame_hdr - 17: 0000000000000788 0 SECTION LOCAL DEFAULT 17 .eh_frame - 18: 0000000000010dc8 0 SECTION LOCAL DEFAULT 18 .init_array - 19: 0000000000010dd0 0 SECTION LOCAL DEFAULT 19 .fini_array - 20: 0000000000010dd8 0 SECTION LOCAL DEFAULT 20 .dynamic - 21: 0000000000010fb8 0 SECTION LOCAL DEFAULT 21 .got - 22: 0000000000010fe8 0 SECTION LOCAL DEFAULT 22 .got.plt - 23: 0000000000011020 0 SECTION LOCAL DEFAULT 23 .data - 24: 0000000000011030 0 SECTION LOCAL DEFAULT 24 .bss - 25: 0000000000000000 0 SECTION LOCAL DEFAULT 25 .comment - 26: 0000000000000000 0 FILE LOCAL DEFAULT ABS Scrt1.o - 27: 0000000000000278 0 NOTYPE LOCAL DEFAULT 3 $d - 28: 0000000000000278 32 OBJECT LOCAL DEFAULT 3 __abi_tag - 29: 0000000000000600 0 NOTYPE LOCAL DEFAULT 13 $x - 30: 000000000000079c 0 NOTYPE LOCAL DEFAULT 17 $d - 31: 0000000000000748 0 NOTYPE LOCAL DEFAULT 15 $d - 32: 0000000000000000 0 FILE LOCAL DEFAULT ABS crti.o - 33: 0000000000000634 0 NOTYPE LOCAL DEFAULT 13 $x - 34: 0000000000000634 20 FUNC LOCAL DEFAULT 13 call_weak_fn - 35: 0000000000000580 0 NOTYPE LOCAL DEFAULT 11 $x - 36: 0000000000000734 0 NOTYPE LOCAL DEFAULT 14 $x - 37: 0000000000000000 0 FILE LOCAL DEFAULT ABS crtn.o - 38: 0000000000000590 0 NOTYPE LOCAL DEFAULT 11 $x - 39: 0000000000000740 0 NOTYPE LOCAL DEFAULT 14 $x - 40: 0000000000000000 0 FILE LOCAL DEFAULT ABS crtstuff.c - 41: 0000000000000650 0 NOTYPE LOCAL DEFAULT 13 $x - 42: 0000000000000650 0 FUNC LOCAL DEFAULT 13 deregister_tm_clones - 43: 0000000000000680 0 FUNC LOCAL DEFAULT 13 register_tm_clones - 44: 0000000000011028 0 NOTYPE LOCAL DEFAULT 23 $d - 45: 00000000000006c0 0 FUNC LOCAL DEFAULT 13 __do_global_dtors_aux - 46: 0000000000011030 1 OBJECT LOCAL DEFAULT 24 completed.0 - 47: 0000000000010dd0 0 NOTYPE LOCAL DEFAULT 19 $d - 48: 0000000000010dd0 0 OBJECT LOCAL DEFAULT 19 __do_global_dtors_aux_fini_array_entry - 49: 0000000000000710 0 FUNC LOCAL DEFAULT 13 frame_dummy - 50: 0000000000010dc8 0 NOTYPE LOCAL DEFAULT 18 $d - 51: 0000000000010dc8 0 OBJECT LOCAL DEFAULT 18 __frame_dummy_init_array_entry - 52: 00000000000007b0 0 NOTYPE LOCAL DEFAULT 17 $d - 53: 0000000000011030 0 NOTYPE LOCAL DEFAULT 24 $d - 54: 0000000000000000 0 FILE LOCAL DEFAULT ABS basicassign.c - 55: 0000000000000714 0 NOTYPE LOCAL DEFAULT 13 $x.0 - 56: 0000000000011034 0 NOTYPE LOCAL DEFAULT 24 $d.1 - 57: 000000000000002a 0 NOTYPE LOCAL DEFAULT 25 $d.2 - 58: 0000000000000810 0 NOTYPE LOCAL DEFAULT 17 $d.3 - 59: 0000000000000000 0 FILE LOCAL DEFAULT ABS crtstuff.c - 60: 0000000000000838 0 NOTYPE LOCAL DEFAULT 17 $d - 61: 0000000000000838 0 OBJECT LOCAL DEFAULT 17 __FRAME_END__ - 62: 0000000000000000 0 FILE LOCAL DEFAULT ABS - 63: 0000000000010dd8 0 OBJECT LOCAL DEFAULT ABS _DYNAMIC - 64: 000000000000074c 0 NOTYPE LOCAL DEFAULT 16 __GNU_EH_FRAME_HDR - 65: 0000000000010fb8 0 OBJECT LOCAL DEFAULT ABS _GLOBAL_OFFSET_TABLE_ - 66: 00000000000005a0 0 NOTYPE LOCAL DEFAULT 12 $x - 67: 0000000000000000 0 FUNC GLOBAL DEFAULT UND __libc_start_main@GLIBC_2.34 - 68: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_deregisterTMCloneTable - 69: 0000000000011020 0 NOTYPE WEAK DEFAULT 23 data_start - 70: 0000000000011030 0 NOTYPE GLOBAL DEFAULT 24 __bss_start__ - 71: 0000000000000000 0 FUNC WEAK DEFAULT UND __cxa_finalize@GLIBC_2.17 - 72: 0000000000011040 0 NOTYPE GLOBAL DEFAULT 24 _bss_end__ - 73: 0000000000011030 0 NOTYPE GLOBAL DEFAULT 23 _edata - 74: 000000000001103c 4 OBJECT GLOBAL DEFAULT 24 z - 75: 0000000000011038 4 OBJECT GLOBAL DEFAULT 24 x - 76: 0000000000000734 0 FUNC GLOBAL HIDDEN 14 _fini - 77: 0000000000011040 0 NOTYPE GLOBAL DEFAULT 24 __bss_end__ - 78: 0000000000011020 0 NOTYPE GLOBAL DEFAULT 23 __data_start - 79: 0000000000000000 0 NOTYPE WEAK DEFAULT UND __gmon_start__ - 80: 0000000000011028 0 OBJECT GLOBAL HIDDEN 23 __dso_handle - 81: 0000000000000000 0 FUNC GLOBAL DEFAULT UND abort@GLIBC_2.17 - 82: 0000000000000748 4 OBJECT GLOBAL DEFAULT 15 _IO_stdin_used - 83: 0000000000011034 4 OBJECT GLOBAL DEFAULT 24 secret - 84: 0000000000011040 0 NOTYPE GLOBAL DEFAULT 24 _end - 85: 0000000000000600 52 FUNC GLOBAL DEFAULT 13 _start - 86: 0000000000011040 0 NOTYPE GLOBAL DEFAULT 24 __end__ - 87: 0000000000011030 0 NOTYPE GLOBAL DEFAULT 24 __bss_start - 88: 0000000000000714 32 FUNC GLOBAL DEFAULT 13 main - 89: 0000000000011030 0 OBJECT GLOBAL HIDDEN 23 __TMC_END__ - 90: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_registerTMCloneTable - 91: 0000000000000580 0 FUNC GLOBAL HIDDEN 11 _init diff --git a/src/test/incorrect/basicassign/clang_O2/basicassign_gtirb.expected b/src/test/incorrect/basicassign/clang_O2/basicassign_gtirb.expected index 820e540b9..a126dcaaa 100644 --- a/src/test/incorrect/basicassign/clang_O2/basicassign_gtirb.expected +++ b/src/test/incorrect/basicassign/clang_O2/basicassign_gtirb.expected @@ -9,11 +9,11 @@ var {:extern} R8: bv64; var {:extern} R9: bv64; var {:extern} mem: [bv64]bv8; const {:extern} $secret_addr: bv64; -axiom ($secret_addr == 69684bv64); +axiom ($secret_addr == 131092bv64); const {:extern} $x_addr: bv64; -axiom ($x_addr == 69688bv64); +axiom ($x_addr == 131096bv64); const {:extern} $z_addr: bv64; -axiom ($z_addr == 69692bv64); +axiom ($z_addr == 131100bv64); function {:extern} L(mem$in: [bv64]bv8, index: bv64) returns (bool) { (if (index == $z_addr) then true else (if (index == $secret_addr) then false else (if (index == $x_addr) then false else false))) } @@ -23,6 +23,10 @@ function {:extern} gamma_load32(gammaMap: [bv64]bool, index: bv64) returns (bool (gammaMap[bvadd64(index, 3bv64)] && (gammaMap[bvadd64(index, 2bv64)] && (gammaMap[bvadd64(index, 1bv64)] && gammaMap[index]))) } +function {:extern} gamma_load64(gammaMap: [bv64]bool, index: bv64) returns (bool) { + (gammaMap[bvadd64(index, 7bv64)] && (gammaMap[bvadd64(index, 6bv64)] && (gammaMap[bvadd64(index, 5bv64)] && (gammaMap[bvadd64(index, 4bv64)] && (gammaMap[bvadd64(index, 3bv64)] && (gammaMap[bvadd64(index, 2bv64)] && (gammaMap[bvadd64(index, 1bv64)] && gammaMap[index]))))))) +} + function {:extern} gamma_store32(gammaMap: [bv64]bool, index: bv64, value: bool) returns ([bv64]bool) { gammaMap[index := value][bvadd64(index, 1bv64) := value][bvadd64(index, 2bv64) := value][bvadd64(index, 3bv64) := value] } @@ -44,11 +48,14 @@ procedure {:extern} rely(); modifies Gamma_mem, mem; ensures (forall i: bv64 :: (((mem[i] == old(mem[i])) ==> (Gamma_mem[i] == old(Gamma_mem[i]))))); ensures (memory_load32_le(mem, $x_addr) == old(memory_load32_le(mem, $x_addr))); - free ensures (memory_load32_le(mem, 1864bv64) == 131073bv32); - free ensures (memory_load64_le(mem, 69064bv64) == 1808bv64); - free ensures (memory_load64_le(mem, 69072bv64) == 1728bv64); - free ensures (memory_load64_le(mem, 69592bv64) == 1812bv64); - free ensures (memory_load64_le(mem, 69672bv64) == 69672bv64); + free ensures (memory_load32_le(mem, 2324bv64) == 131073bv32); + free ensures (memory_load64_le(mem, 130416bv64) == 2256bv64); + free ensures (memory_load64_le(mem, 130424bv64) == 2176bv64); + free ensures (memory_load64_le(mem, 131024bv64) == 131100bv64); + free ensures (memory_load64_le(mem, 131032bv64) == 131096bv64); + free ensures (memory_load64_le(mem, 131048bv64) == 131092bv64); + free ensures (memory_load64_le(mem, 131056bv64) == 2260bv64); + free ensures (memory_load64_le(mem, 131080bv64) == 131080bv64); procedure {:extern} rely_transitive(); modifies Gamma_mem, mem; @@ -70,45 +77,66 @@ implementation {:extern} rely_reflexive() procedure {:extern} guarantee_reflexive(); modifies Gamma_mem, mem; -procedure main_1812(); +procedure main(); modifies Gamma_R0, Gamma_R10, Gamma_R8, Gamma_R9, Gamma_mem, R0, R10, R8, R9, mem; - free requires (memory_load64_le(mem, 69664bv64) == 0bv64); - free requires (memory_load64_le(mem, 69672bv64) == 69672bv64); - free requires (memory_load32_le(mem, 1864bv64) == 131073bv32); - free requires (memory_load64_le(mem, 69064bv64) == 1808bv64); - free requires (memory_load64_le(mem, 69072bv64) == 1728bv64); - free requires (memory_load64_le(mem, 69592bv64) == 1812bv64); - free requires (memory_load64_le(mem, 69672bv64) == 69672bv64); - free ensures (memory_load32_le(mem, 1864bv64) == 131073bv32); - free ensures (memory_load64_le(mem, 69064bv64) == 1808bv64); - free ensures (memory_load64_le(mem, 69072bv64) == 1728bv64); - free ensures (memory_load64_le(mem, 69592bv64) == 1812bv64); - free ensures (memory_load64_le(mem, 69672bv64) == 69672bv64); + free requires (memory_load64_le(mem, 131072bv64) == 0bv64); + free requires (memory_load64_le(mem, 131080bv64) == 131080bv64); + free requires (memory_load32_le(mem, 2324bv64) == 131073bv32); + free requires (memory_load64_le(mem, 130416bv64) == 2256bv64); + free requires (memory_load64_le(mem, 130424bv64) == 2176bv64); + free requires (memory_load64_le(mem, 131024bv64) == 131100bv64); + free requires (memory_load64_le(mem, 131032bv64) == 131096bv64); + free requires (memory_load64_le(mem, 131048bv64) == 131092bv64); + free requires (memory_load64_le(mem, 131056bv64) == 2260bv64); + free requires (memory_load64_le(mem, 131080bv64) == 131080bv64); + free ensures (memory_load32_le(mem, 2324bv64) == 131073bv32); + free ensures (memory_load64_le(mem, 130416bv64) == 2256bv64); + free ensures (memory_load64_le(mem, 130424bv64) == 2176bv64); + free ensures (memory_load64_le(mem, 131024bv64) == 131100bv64); + free ensures (memory_load64_le(mem, 131032bv64) == 131096bv64); + free ensures (memory_load64_le(mem, 131048bv64) == 131092bv64); + free ensures (memory_load64_le(mem, 131056bv64) == 2260bv64); + free ensures (memory_load64_le(mem, 131080bv64) == 131080bv64); -implementation main_1812() +implementation main() { - var Gamma_load18: bool; - var load18: bv32; - main_1812__0__u9YlOfvWQuymdyQoiJ6f2w: - assume {:captureState "main_1812__0__u9YlOfvWQuymdyQoiJ6f2w"} true; - R8, Gamma_R8 := 69632bv64, true; + var $load1: bv64; + var $load2: bv64; + var $load3: bv32; + var $load4: bv64; + var Gamma_$load1: bool; + var Gamma_$load2: bool; + var Gamma_$load3: bool; + var Gamma_$load4: bool; + $main$__0__$TxTRm4kpQiq_Xgistx~xbQ: + assume {:captureState "$main$__0__$TxTRm4kpQiq_Xgistx~xbQ"} true; + R8, Gamma_R8 := 126976bv64, true; + R9, Gamma_R9 := 126976bv64, true; + R10, Gamma_R10 := 126976bv64, true; + call rely(); + $load1, Gamma_$load1 := memory_load64_le(mem, bvadd64(R8, 4072bv64)), (gamma_load64(Gamma_mem, bvadd64(R8, 4072bv64)) || L(mem, bvadd64(R8, 4072bv64))); + R8, Gamma_R8 := $load1, Gamma_$load1; + call rely(); + $load2, Gamma_$load2 := memory_load64_le(mem, bvadd64(R9, 4056bv64)), (gamma_load64(Gamma_mem, bvadd64(R9, 4056bv64)) || L(mem, bvadd64(R9, 4056bv64))); + R9, Gamma_R9 := $load2, Gamma_$load2; R0, Gamma_R0 := 0bv64, true; - R9, Gamma_R9 := 69632bv64, true; - R10, Gamma_R10 := 69632bv64, true; call rely(); - load18, Gamma_load18 := memory_load32_le(mem, bvadd64(R8, 52bv64)), (gamma_load32(Gamma_mem, bvadd64(R8, 52bv64)) || L(mem, bvadd64(R8, 52bv64))); - R8, Gamma_R8 := zero_extend32_32(load18), Gamma_load18; + $load3, Gamma_$load3 := memory_load32_le(mem, R8), (gamma_load32(Gamma_mem, R8) || L(mem, R8)); + R8, Gamma_R8 := zero_extend32_32($load3), Gamma_$load3; + call rely(); + $load4, Gamma_$load4 := memory_load64_le(mem, bvadd64(R10, 4048bv64)), (gamma_load64(Gamma_mem, bvadd64(R10, 4048bv64)) || L(mem, bvadd64(R10, 4048bv64))); + R10, Gamma_R10 := $load4, Gamma_$load4; call rely(); - assert (L(mem, bvadd64(R9, 56bv64)) ==> Gamma_R8); - mem, Gamma_mem := memory_store32_le(mem, bvadd64(R9, 56bv64), R8[32:0]), gamma_store32(Gamma_mem, bvadd64(R9, 56bv64), Gamma_R8); - assume {:captureState "1832_0"} true; + assert (L(mem, R9) ==> Gamma_R8); + mem, Gamma_mem := memory_store32_le(mem, R9, R8[32:0]), gamma_store32(Gamma_mem, R9, Gamma_R8); + assume {:captureState "2292$0"} true; call rely(); - assert (L(mem, bvadd64(R10, 60bv64)) ==> Gamma_R8); - mem, Gamma_mem := memory_store32_le(mem, bvadd64(R10, 60bv64), R8[32:0]), gamma_store32(Gamma_mem, bvadd64(R10, 60bv64), Gamma_R8); - assume {:captureState "1836_0"} true; - goto main_1812_basil_return; - main_1812_basil_return: - assume {:captureState "main_1812_basil_return"} true; + assert (L(mem, R10) ==> Gamma_R8); + mem, Gamma_mem := memory_store32_le(mem, R10, R8[32:0]), gamma_store32(Gamma_mem, R10, Gamma_R8); + assume {:captureState "2296$0"} true; + goto main_basil_return; + main_basil_return: + assume {:captureState "main_basil_return"} true; return; } diff --git a/src/test/incorrect/basicassign/clang_pic/basicassign.adt b/src/test/incorrect/basicassign/clang_pic/basicassign.adt deleted file mode 100644 index 9a46975b0..000000000 --- a/src/test/incorrect/basicassign/clang_pic/basicassign.adt +++ /dev/null @@ -1,529 +0,0 @@ -Project(Attrs([Attr("filename","\"clang_pic/basicassign.out\""), -Attr("image-specification","(declare abi (name str))\n(declare arch (name str))\n(declare base-address (addr int))\n(declare bias (off int))\n(declare bits (size int))\n(declare code-region (addr int) (size int) (off int))\n(declare code-start (addr int))\n(declare entry-point (addr int))\n(declare external-reference (addr int) (name str))\n(declare format (name str))\n(declare is-executable (flag bool))\n(declare is-little-endian (flag bool))\n(declare llvm:base-address (addr int))\n(declare llvm:code-entry (name str) (off int) (size int))\n(declare llvm:coff-import-library (name str))\n(declare llvm:coff-virtual-section-header (name str) (addr int) (size int))\n(declare llvm:elf-program-header (name str) (off int) (size int))\n(declare llvm:elf-program-header-flags (name str) (ld bool) (r bool) \n (w bool) (x bool))\n(declare llvm:elf-virtual-program-header (name str) (addr int) (size int))\n(declare llvm:entry-point (addr int))\n(declare llvm:macho-symbol (name str) (value int))\n(declare llvm:name-reference (at int) (name str))\n(declare llvm:relocation (at int) (addr int))\n(declare llvm:section-entry (name str) (addr int) (size int) (off int))\n(declare llvm:section-flags (name str) (r bool) (w bool) (x bool))\n(declare llvm:segment-command (name str) (off int) (size int))\n(declare llvm:segment-command-flags (name str) (r bool) (w bool) (x bool))\n(declare llvm:symbol-entry (name str) (addr int) (size int) (off int)\n (value int))\n(declare llvm:virtual-segment-command (name str) (addr int) (size int))\n(declare mapped (addr int) (size int) (off int))\n(declare named-region (addr int) (size int) (name str))\n(declare named-symbol (addr int) (name str))\n(declare require (name str))\n(declare section (addr int) (size int))\n(declare segment (addr int) (size int) (r bool) (w bool) (x bool))\n(declare subarch (name str))\n(declare symbol-chunk (addr int) (size int) (root int))\n(declare symbol-value (addr int) (value int))\n(declare system (name str))\n(declare vendor (name str))\n\n(abi unknown)\n(arch aarch64)\n(base-address 0)\n(bias 0)\n(bits 64)\n(code-region 1944 20 1944)\n(code-region 1600 344 1600)\n(code-region 1504 96 1504)\n(code-region 1480 24 1480)\n(code-start 1652)\n(code-start 1600)\n(code-start 1876)\n(entry-point 1600)\n(external-reference 69544 _ITM_deregisterTMCloneTable)\n(external-reference 69552 __cxa_finalize)\n(external-reference 69576 __gmon_start__)\n(external-reference 69600 _ITM_registerTMCloneTable)\n(external-reference 69632 __libc_start_main)\n(external-reference 69640 __cxa_finalize)\n(external-reference 69648 __gmon_start__)\n(external-reference 69656 abort)\n(format elf)\n(is-executable true)\n(is-little-endian true)\n(llvm:base-address 0)\n(llvm:code-entry abort 0 0)\n(llvm:code-entry __cxa_finalize 0 0)\n(llvm:code-entry __libc_start_main 0 0)\n(llvm:code-entry _init 1480 0)\n(llvm:code-entry main 1876 68)\n(llvm:code-entry _start 1600 52)\n(llvm:code-entry abort@GLIBC_2.17 0 0)\n(llvm:code-entry _fini 1944 0)\n(llvm:code-entry __cxa_finalize@GLIBC_2.17 0 0)\n(llvm:code-entry __libc_start_main@GLIBC_2.34 0 0)\n(llvm:code-entry frame_dummy 1872 0)\n(llvm:code-entry __do_global_dtors_aux 1792 0)\n(llvm:code-entry register_tm_clones 1728 0)\n(llvm:code-entry deregister_tm_clones 1680 0)\n(llvm:code-entry call_weak_fn 1652 20)\n(llvm:code-entry .fini 1944 20)\n(llvm:code-entry .text 1600 344)\n(llvm:code-entry .plt 1504 96)\n(llvm:code-entry .init 1480 24)\n(llvm:elf-program-header 08 3504 592)\n(llvm:elf-program-header 07 0 0)\n(llvm:elf-program-header 06 1968 60)\n(llvm:elf-program-header 05 596 68)\n(llvm:elf-program-header 04 3520 480)\n(llvm:elf-program-header 03 3504 640)\n(llvm:elf-program-header 02 0 2212)\n(llvm:elf-program-header 01 568 27)\n(llvm:elf-program-header 00 64 504)\n(llvm:elf-program-header-flags 08 false true false false)\n(llvm:elf-program-header-flags 07 false true true false)\n(llvm:elf-program-header-flags 06 false true false false)\n(llvm:elf-program-header-flags 05 false true false false)\n(llvm:elf-program-header-flags 04 false true true false)\n(llvm:elf-program-header-flags 03 true true true false)\n(llvm:elf-program-header-flags 02 true true false true)\n(llvm:elf-program-header-flags 01 false true false false)\n(llvm:elf-program-header-flags 00 false true false false)\n(llvm:elf-virtual-program-header 08 69040 592)\n(llvm:elf-virtual-program-header 07 0 0)\n(llvm:elf-virtual-program-header 06 1968 60)\n(llvm:elf-virtual-program-header 05 596 68)\n(llvm:elf-virtual-program-header 04 69056 480)\n(llvm:elf-virtual-program-header 03 69040 656)\n(llvm:elf-virtual-program-header 02 0 2212)\n(llvm:elf-virtual-program-header 01 568 27)\n(llvm:elf-virtual-program-header 00 64 504)\n(llvm:entry-point 1600)\n(llvm:name-reference 69656 abort)\n(llvm:name-reference 69648 __gmon_start__)\n(llvm:name-reference 69640 __cxa_finalize)\n(llvm:name-reference 69632 __libc_start_main)\n(llvm:name-reference 69600 _ITM_registerTMCloneTable)\n(llvm:name-reference 69576 __gmon_start__)\n(llvm:name-reference 69552 __cxa_finalize)\n(llvm:name-reference 69544 _ITM_deregisterTMCloneTable)\n(llvm:section-entry .shstrtab 0 259 7000)\n(llvm:section-entry .strtab 0 576 6424)\n(llvm:section-entry .symtab 0 2208 4216)\n(llvm:section-entry .comment 0 71 4144)\n(llvm:section-entry .bss 69680 16 4144)\n(llvm:section-entry .data 69664 16 4128)\n(llvm:section-entry .got.plt 69608 56 4072)\n(llvm:section-entry .got 69536 72 4000)\n(llvm:section-entry .dynamic 69056 480 3520)\n(llvm:section-entry .fini_array 69048 8 3512)\n(llvm:section-entry .init_array 69040 8 3504)\n(llvm:section-entry .eh_frame 2032 180 2032)\n(llvm:section-entry .eh_frame_hdr 1968 60 1968)\n(llvm:section-entry .rodata 1964 4 1964)\n(llvm:section-entry .fini 1944 20 1944)\n(llvm:section-entry .text 1600 344 1600)\n(llvm:section-entry .plt 1504 96 1504)\n(llvm:section-entry .init 1480 24 1480)\n(llvm:section-entry .rela.plt 1384 96 1384)\n(llvm:section-entry .rela.dyn 1120 264 1120)\n(llvm:section-entry .gnu.version_r 1072 48 1072)\n(llvm:section-entry .gnu.version 1054 18 1054)\n(llvm:section-entry .dynstr 912 141 912)\n(llvm:section-entry .dynsym 696 216 696)\n(llvm:section-entry .gnu.hash 664 28 664)\n(llvm:section-entry .note.ABI-tag 632 32 632)\n(llvm:section-entry .note.gnu.build-id 596 36 596)\n(llvm:section-entry .interp 568 27 568)\n(llvm:section-flags .shstrtab true false false)\n(llvm:section-flags .strtab true false false)\n(llvm:section-flags .symtab true false false)\n(llvm:section-flags .comment true false false)\n(llvm:section-flags .bss true true false)\n(llvm:section-flags .data true true false)\n(llvm:section-flags .got.plt true true false)\n(llvm:section-flags .got true true false)\n(llvm:section-flags .dynamic true true false)\n(llvm:section-flags .fini_array true true false)\n(llvm:section-flags .init_array true true false)\n(llvm:section-flags .eh_frame true false false)\n(llvm:section-flags .eh_frame_hdr true false false)\n(llvm:section-flags .rodata true false false)\n(llvm:section-flags .fini true false true)\n(llvm:section-flags .text true false true)\n(llvm:section-flags .plt true false true)\n(llvm:section-flags .init true false true)\n(llvm:section-flags .rela.plt true false false)\n(llvm:section-flags .rela.dyn true false false)\n(llvm:section-flags .gnu.version_r true false false)\n(llvm:section-flags .gnu.version true false false)\n(llvm:section-flags .dynstr true false false)\n(llvm:section-flags .dynsym true false false)\n(llvm:section-flags .gnu.hash true false false)\n(llvm:section-flags .note.ABI-tag true false false)\n(llvm:section-flags .note.gnu.build-id true false false)\n(llvm:section-flags .interp true false false)\n(llvm:symbol-entry abort 0 0 0 0)\n(llvm:symbol-entry __cxa_finalize 0 0 0 0)\n(llvm:symbol-entry __libc_start_main 0 0 0 0)\n(llvm:symbol-entry _init 1480 0 1480 1480)\n(llvm:symbol-entry main 1876 68 1876 1876)\n(llvm:symbol-entry _start 1600 52 1600 1600)\n(llvm:symbol-entry abort@GLIBC_2.17 0 0 0 0)\n(llvm:symbol-entry _fini 1944 0 1944 1944)\n(llvm:symbol-entry __cxa_finalize@GLIBC_2.17 0 0 0 0)\n(llvm:symbol-entry __libc_start_main@GLIBC_2.34 0 0 0 0)\n(llvm:symbol-entry frame_dummy 1872 0 1872 1872)\n(llvm:symbol-entry __do_global_dtors_aux 1792 0 1792 1792)\n(llvm:symbol-entry register_tm_clones 1728 0 1728 1728)\n(llvm:symbol-entry deregister_tm_clones 1680 0 1680 1680)\n(llvm:symbol-entry call_weak_fn 1652 20 1652 1652)\n(mapped 0 2212 0)\n(mapped 69040 640 3504)\n(named-region 0 2212 02)\n(named-region 69040 656 03)\n(named-region 568 27 .interp)\n(named-region 596 36 .note.gnu.build-id)\n(named-region 632 32 .note.ABI-tag)\n(named-region 664 28 .gnu.hash)\n(named-region 696 216 .dynsym)\n(named-region 912 141 .dynstr)\n(named-region 1054 18 .gnu.version)\n(named-region 1072 48 .gnu.version_r)\n(named-region 1120 264 .rela.dyn)\n(named-region 1384 96 .rela.plt)\n(named-region 1480 24 .init)\n(named-region 1504 96 .plt)\n(named-region 1600 344 .text)\n(named-region 1944 20 .fini)\n(named-region 1964 4 .rodata)\n(named-region 1968 60 .eh_frame_hdr)\n(named-region 2032 180 .eh_frame)\n(named-region 69040 8 .init_array)\n(named-region 69048 8 .fini_array)\n(named-region 69056 480 .dynamic)\n(named-region 69536 72 .got)\n(named-region 69608 56 .got.plt)\n(named-region 69664 16 .data)\n(named-region 69680 16 .bss)\n(named-region 0 71 .comment)\n(named-region 0 2208 .symtab)\n(named-region 0 576 .strtab)\n(named-region 0 259 .shstrtab)\n(named-symbol 1652 call_weak_fn)\n(named-symbol 1680 deregister_tm_clones)\n(named-symbol 1728 register_tm_clones)\n(named-symbol 1792 __do_global_dtors_aux)\n(named-symbol 1872 frame_dummy)\n(named-symbol 0 __libc_start_main@GLIBC_2.34)\n(named-symbol 0 __cxa_finalize@GLIBC_2.17)\n(named-symbol 1944 _fini)\n(named-symbol 0 abort@GLIBC_2.17)\n(named-symbol 1600 _start)\n(named-symbol 1876 main)\n(named-symbol 1480 _init)\n(named-symbol 0 __libc_start_main)\n(named-symbol 0 __cxa_finalize)\n(named-symbol 0 abort)\n(require libc.so.6)\n(section 568 27)\n(section 596 36)\n(section 632 32)\n(section 664 28)\n(section 696 216)\n(section 912 141)\n(section 1054 18)\n(section 1072 48)\n(section 1120 264)\n(section 1384 96)\n(section 1480 24)\n(section 1504 96)\n(section 1600 344)\n(section 1944 20)\n(section 1964 4)\n(section 1968 60)\n(section 2032 180)\n(section 69040 8)\n(section 69048 8)\n(section 69056 480)\n(section 69536 72)\n(section 69608 56)\n(section 69664 16)\n(section 69680 16)\n(section 0 71)\n(section 0 2208)\n(section 0 576)\n(section 0 259)\n(segment 0 2212 true false true)\n(segment 69040 656 true true false)\n(subarch v8)\n(symbol-chunk 1652 20 1652)\n(symbol-chunk 1600 52 1600)\n(symbol-chunk 1876 68 1876)\n(symbol-value 1652 1652)\n(symbol-value 1680 1680)\n(symbol-value 1728 1728)\n(symbol-value 1792 1792)\n(symbol-value 1872 1872)\n(symbol-value 1944 1944)\n(symbol-value 1600 1600)\n(symbol-value 1876 1876)\n(symbol-value 1480 1480)\n(symbol-value 0 0)\n(system \"\")\n(vendor \"\")\n"), -Attr("abi-name","\"aarch64-linux-gnu-elf\"")]), -Sections([Section(".shstrtab", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x40\x06\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x60\x1c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x38\x00\x09\x00\x40\x00\x1d\x00\x1c\x00\x06\x00\x00\x00\x04\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x04\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xa4\x08\x00\x00\x00\x00\x00\x00\xa4\x08\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x01\x00\x00\x00\x06\x00\x00\x00\xb0\x0d\x00\x00\x00\x00\x00\x00\xb0\x0d\x01\x00\x00\x00\x00\x00\xb0\x0d\x01"), -Section(".strtab", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x40\x06\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x60\x1c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x38\x00\x09\x00\x40\x00\x1d\x00\x1c\x00\x06\x00\x00\x00\x04\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x04\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xa4\x08\x00\x00\x00\x00\x00\x00\xa4\x08\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x01\x00\x00\x00\x06\x00\x00\x00\xb0\x0d\x00\x00\x00\x00\x00\x00\xb0\x0d\x01\x00\x00\x00\x00\x00\xb0\x0d\x01\x00\x00\x00\x00\x00\x80\x02\x00\x00\x00\x00\x00\x00\x90\x02\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x02\x00\x00\x00\x06\x00\x00\x00\xc0\x0d\x00\x00\x00\x00\x00\x00\xc0\x0d\x01\x00\x00\x00\x00\x00\xc0\x0d\x01\x00\x00\x00\x00\x00\xe0\x01\x00\x00\x00\x00\x00\x00\xe0\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x04\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x50\xe5\x74\x64\x04\x00\x00\x00\xb0\x07\x00\x00\x00\x00\x00\x00\xb0\x07\x00\x00\x00\x00\x00\x00\xb0\x07\x00\x00\x00\x00\x00\x00\x3c\x00\x00\x00\x00\x00\x00\x00\x3c\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x51\xe5\x74\x64\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x52\xe5\x74\x64\x04\x00\x00\x00\xb0\x0d\x00\x00\x00\x00\x00\x00\xb0\x0d\x01\x00\x00\x00\x00\x00\xb0\x0d\x01\x00\x00\x00\x00\x00\x50\x02\x00\x00\x00\x00\x00\x00\x50\x02\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x2f\x6c\x69\x62\x2f\x6c\x64\x2d"), -Section(".symtab", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x40\x06\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x60\x1c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x38\x00\x09\x00\x40\x00\x1d\x00\x1c\x00\x06\x00\x00\x00\x04\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x04\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xa4\x08\x00\x00\x00\x00\x00\x00\xa4\x08\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x01\x00\x00\x00\x06\x00\x00\x00\xb0\x0d\x00\x00\x00\x00\x00\x00\xb0\x0d\x01\x00\x00\x00\x00\x00\xb0\x0d\x01\x00\x00\x00\x00\x00\x80\x02\x00\x00\x00\x00\x00\x00\x90\x02\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x02\x00\x00\x00\x06\x00\x00\x00\xc0\x0d\x00\x00\x00\x00\x00\x00\xc0\x0d\x01\x00\x00\x00\x00\x00\xc0\x0d\x01\x00\x00\x00\x00\x00\xe0\x01\x00\x00\x00\x00\x00\x00\xe0\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x04\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x50\xe5\x74\x64\x04\x00\x00\x00\xb0\x07\x00\x00\x00\x00\x00\x00\xb0\x07\x00\x00\x00\x00\x00\x00\xb0\x07\x00\x00\x00\x00\x00\x00\x3c\x00\x00\x00\x00\x00\x00\x00\x3c\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x51\xe5\x74\x64\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x52\xe5\x74\x64\x04\x00\x00\x00\xb0\x0d\x00\x00\x00\x00\x00\x00\xb0\x0d\x01\x00\x00\x00\x00\x00\xb0\x0d\x01\x00\x00\x00\x00\x00\x50\x02\x00\x00\x00\x00\x00\x00\x50\x02\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x2f\x6c\x69\x62\x2f\x6c\x64\x2d\x6c\x69\x6e\x75\x78\x2d\x61\x61\x72\x63\x68\x36\x34\x2e\x73\x6f\x2e\x31\x00\x00\x04\x00\x00\x00\x14\x00\x00\x00\x03\x00\x00\x00\x47\x4e\x55\x00\x10\x97\x8c\x63\xb7\x0a\x67\xfd\x53\x7a\x17\x6d\xa0\xd6\x03\xee\x4a\x75\xc9\xc0\x04\x00\x00\x00\x10\x00\x00\x00\x01\x00\x00\x00\x47\x4e\x55\x00\x00\x00\x00\x00\x03\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x01\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x0b\x00\xc8\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x17\x00\x20\x10\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x48\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x22\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x22\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x73\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5f\x5f\x63\x78\x61\x5f\x66\x69\x6e\x61\x6c\x69\x7a\x65\x00\x5f\x5f\x6c\x69\x62\x63\x5f\x73\x74\x61\x72\x74\x5f\x6d\x61\x69\x6e\x00\x61\x62\x6f\x72\x74\x00\x6c\x69\x62\x63\x2e\x73\x6f\x2e\x36\x00\x47\x4c\x49\x42\x43\x5f\x32\x2e\x31\x37\x00\x47\x4c\x49\x42\x43\x5f\x32\x2e\x33\x34\x00\x5f\x49\x54\x4d\x5f\x64\x65\x72\x65\x67\x69\x73\x74\x65\x72\x54\x4d\x43\x6c\x6f\x6e\x65\x54\x61\x62\x6c\x65\x00\x5f\x5f\x67\x6d\x6f\x6e\x5f\x73\x74\x61\x72\x74\x5f\x5f\x00\x5f\x49\x54\x4d\x5f\x72\x65\x67\x69\x73\x74\x65\x72\x54\x4d\x43\x6c\x6f\x6e\x65\x54\x61\x62\x6c\x65\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x01\x00\x03\x00\x01\x00\x03\x00\x01\x00\x01\x00\x02\x00\x28\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x97\x91\x96\x06\x00\x00\x03\x00\x32\x00\x00\x00\x10\x00\x00\x00\xb4\x91\x96\x06\x00\x00\x02\x00\x3d\x00\x00\x00\x00\x00\x00\x00\xb0\x0d\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x50\x07\x00\x00\x00\x00\x00\x00\xb8\x0d\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\xb8\x0f\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x3c\x10\x01\x00\x00\x00\x00\x00\xc0\x0f\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x38\x10\x01\x00\x00\x00\x00\x00\xd0\x0f\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x34\x10\x01\x00\x00\x00\x00\x00\xd8\x0f\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x54\x07\x00\x00\x00\x00\x00\x00\x28\x10\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x28\x10\x01\x00\x00\x00\x00\x00\xa8\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xb0\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xc8\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe0\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x08\x10\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x10\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x18\x10\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1f\x20\x03\xd5\xfd\x7b\xbf\xa9\xfd\x03\x00\x91\x28\x00\x00\x94\xfd\x7b\xc1\xa8\xc0\x03\x5f\xd6\xf0\x7b\xbf\xa9\x90\x00\x00\x90\x11\xfe\x47\xf9\x10\xe2\x3f\x91\x20\x02\x1f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x90\x00\x00\xb0\x11\x02\x40\xf9\x10\x02\x00\x91\x20\x02\x1f\xd6\x90\x00\x00\xb0\x11\x06\x40\xf9\x10\x22\x00\x91\x20\x02\x1f\xd6\x90\x00\x00\xb0\x11\x0a\x40\xf9\x10\x42\x00\x91\x20\x02\x1f\xd6\x90\x00\x00\xb0\x11\x0e\x40\xf9\x10\x62\x00\x91\x20\x02\x1f\xd6\x1f\x20\x03\xd5\x1d\x00\x80\xd2\x1e\x00\x80\xd2\xe5\x03\x00\xaa\xe1\x03\x40\xf9\xe2\x23\x00\x91\xe6\x03\x00\x91\x80\x00\x00\x90\x00\xec\x47\xf9\x03\x00\x80\xd2\x04\x00\x80\xd2\xe5\xff\xff\x97\xf0\xff\xff\x97\x80\x00\x00\x90\x00\xe4\x47\xf9\x40\x00\x00\xb4\xe8\xff\xff\x17\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x80\x00\x00\xb0\x00\xc0\x00\x91\x81\x00\x00\xb0\x21\xc0\x00\x91\x3f\x00\x00\xeb\xc0\x00\x00\x54\x81\x00\x00\x90\x21\xd4\x47\xf9\x61\x00\x00\xb4\xf0\x03\x01\xaa\x00\x02\x1f\xd6\xc0\x03\x5f\xd6\x80\x00\x00\xb0\x00\xc0\x00\x91\x81\x00\x00\xb0\x21\xc0\x00\x91\x21\x00\x00\xcb\x22\xfc\x7f\xd3\x41\x0c\x81\x8b\x21\xfc\x41\x93\xc1\x00\x00\xb4\x82\x00\x00\x90\x42\xf0\x47\xf9\x62\x00\x00\xb4\xf0\x03\x02\xaa\x00\x02\x1f\xd6\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\xfd\x7b\xbe\xa9\xfd\x03\x00\x91\xf3\x0b\x00\xf9\x93\x00\x00\xb0\x60\xc2\x40\x39\x40\x01\x00\x35\x80\x00\x00\x90\x00\xd8\x47\xf9\x80\x00\x00\xb4\x80\x00\x00\xb0\x00\x14\x40\xf9\xb9\xff\xff\x97\xd8\xff\xff\x97\x20\x00\x80\x52\x60\xc2\x00\x39\xf3\x0b\x40\xf9\xfd\x7b\xc2\xa8\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\xdc\xff\xff\x17\x88\x00\x00\x90\x08\xe1\x47\xf9\x8a\x00\x00\x90\x4a\xe9\x47\xf9\x49\x01\x40\xb9\x09\x01\x00\xb9\xe0\x03\x1f\x2a\x1f\x01\x00\xb9\x0b\x01\x40\xb9\x89\x00\x00\x90\x29\xdd\x47\xf9\x2b\x01\x00\xb9\x4a\x01\x40\xb9\x0a\x01\x00\xb9\x08\x01\x40\xb9\x28\x01\x00\xb9\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\xfd\x7b\xbf\xa9\xfd\x03\x00\x91\xfd\x7b\xc1\xa8\xc0\x03\x5f\xd6\x01\x00\x02\x00\x01\x1b\x03\x3b\x3c\x00\x00\x00\x06\x00\x00\x00\x90\xfe\xff\xff\x54\x00\x00\x00\xe0\xfe\xff\xff\x68\x00\x00\x00\x10\xff\xff\xff\x7c\x00\x00\x00\x50\xff\xff\xff\x90\x00\x00\x00\xa0\xff\xff\xff\xb4\x00\x00\x00\xa4\xff\xff\xff\xdc\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x01\x7a\x52\x00\x04\x78\x1e\x01\x1b\x0c\x1f\x00\x10\x00\x00\x00\x18\x00\x00\x00\x34\xfe\xff\xff\x34\x00\x00\x00\x00\x41\x07\x1e\x10\x00\x00\x00\x2c\x00\x00\x00\x70\xfe\xff\xff\x30\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x40\x00\x00\x00\x8c\xfe\xff\xff\x3c\x00\x00\x00\x00\x00\x00\x00\x20\x00\x00\x00\x54\x00\x00\x00\xb8\xfe\xff\xff\x48\x00\x00\x00\x00\x41\x0e\x20\x9d\x04\x9e\x03\x42\x93\x02\x4e\xde\xdd\xd3\x0e\x00\x00\x00\x00\x10\x00\x00\x00\x78\x00\x00\x00\xe4\xfe\xff\xff\x04\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x01\x7a\x52\x00\x01\x7c\x1e\x01\x1b\x0c\x1f\x00\x10\x00\x00\x00\x18\x00\x00\x00\xc0\xfe\xff\xff\x44\x00\x00\x00\x00\x00\x00\x00"), -Section(".comment", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x40\x06\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x60\x1c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x38\x00\x09\x00\x40\x00\x1d\x00\x1c\x00\x06\x00\x00\x00\x04\x00\x00"), -Section(".interp", 0x238, "\x2f\x6c\x69\x62\x2f\x6c\x64\x2d\x6c\x69\x6e\x75\x78\x2d\x61\x61\x72\x63\x68\x36\x34\x2e\x73\x6f\x2e\x31\x00"), -Section(".note.gnu.build-id", 0x254, "\x04\x00\x00\x00\x14\x00\x00\x00\x03\x00\x00\x00\x47\x4e\x55\x00\x10\x97\x8c\x63\xb7\x0a\x67\xfd\x53\x7a\x17\x6d\xa0\xd6\x03\xee\x4a\x75\xc9\xc0"), -Section(".note.ABI-tag", 0x278, "\x04\x00\x00\x00\x10\x00\x00\x00\x01\x00\x00\x00\x47\x4e\x55\x00\x00\x00\x00\x00\x03\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00"), -Section(".gnu.hash", 0x298, "\x01\x00\x00\x00\x01\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".dynsym", 0x2B8, "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x0b\x00\xc8\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x17\x00\x20\x10\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x48\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x22\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x22\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x73\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".dynstr", 0x390, "\x00\x5f\x5f\x63\x78\x61\x5f\x66\x69\x6e\x61\x6c\x69\x7a\x65\x00\x5f\x5f\x6c\x69\x62\x63\x5f\x73\x74\x61\x72\x74\x5f\x6d\x61\x69\x6e\x00\x61\x62\x6f\x72\x74\x00\x6c\x69\x62\x63\x2e\x73\x6f\x2e\x36\x00\x47\x4c\x49\x42\x43\x5f\x32\x2e\x31\x37\x00\x47\x4c\x49\x42\x43\x5f\x32\x2e\x33\x34\x00\x5f\x49\x54\x4d\x5f\x64\x65\x72\x65\x67\x69\x73\x74\x65\x72\x54\x4d\x43\x6c\x6f\x6e\x65\x54\x61\x62\x6c\x65\x00\x5f\x5f\x67\x6d\x6f\x6e\x5f\x73\x74\x61\x72\x74\x5f\x5f\x00\x5f\x49\x54\x4d\x5f\x72\x65\x67\x69\x73\x74\x65\x72\x54\x4d\x43\x6c\x6f\x6e\x65\x54\x61\x62\x6c\x65\x00"), -Section(".gnu.version", 0x41E, "\x00\x00\x00\x00\x00\x00\x02\x00\x01\x00\x03\x00\x01\x00\x03\x00\x01\x00"), -Section(".gnu.version_r", 0x430, "\x01\x00\x02\x00\x28\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x97\x91\x96\x06\x00\x00\x03\x00\x32\x00\x00\x00\x10\x00\x00\x00\xb4\x91\x96\x06\x00\x00\x02\x00\x3d\x00\x00\x00\x00\x00\x00\x00"), -Section(".rela.dyn", 0x460, "\xb0\x0d\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x50\x07\x00\x00\x00\x00\x00\x00\xb8\x0d\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\xb8\x0f\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x3c\x10\x01\x00\x00\x00\x00\x00\xc0\x0f\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x38\x10\x01\x00\x00\x00\x00\x00\xd0\x0f\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x34\x10\x01\x00\x00\x00\x00\x00\xd8\x0f\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x54\x07\x00\x00\x00\x00\x00\x00\x28\x10\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x28\x10\x01\x00\x00\x00\x00\x00\xa8\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xb0\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xc8\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe0\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".rela.plt", 0x568, "\x00\x10\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x08\x10\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x10\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x18\x10\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".init", 0x5C8, "\x1f\x20\x03\xd5\xfd\x7b\xbf\xa9\xfd\x03\x00\x91\x28\x00\x00\x94\xfd\x7b\xc1\xa8\xc0\x03\x5f\xd6"), -Section(".plt", 0x5E0, "\xf0\x7b\xbf\xa9\x90\x00\x00\x90\x11\xfe\x47\xf9\x10\xe2\x3f\x91\x20\x02\x1f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x90\x00\x00\xb0\x11\x02\x40\xf9\x10\x02\x00\x91\x20\x02\x1f\xd6\x90\x00\x00\xb0\x11\x06\x40\xf9\x10\x22\x00\x91\x20\x02\x1f\xd6\x90\x00\x00\xb0\x11\x0a\x40\xf9\x10\x42\x00\x91\x20\x02\x1f\xd6\x90\x00\x00\xb0\x11\x0e\x40\xf9\x10\x62\x00\x91\x20\x02\x1f\xd6"), -Section(".fini", 0x798, "\x1f\x20\x03\xd5\xfd\x7b\xbf\xa9\xfd\x03\x00\x91\xfd\x7b\xc1\xa8\xc0\x03\x5f\xd6"), -Section(".rodata", 0x7AC, "\x01\x00\x02\x00"), -Section(".eh_frame_hdr", 0x7B0, "\x01\x1b\x03\x3b\x3c\x00\x00\x00\x06\x00\x00\x00\x90\xfe\xff\xff\x54\x00\x00\x00\xe0\xfe\xff\xff\x68\x00\x00\x00\x10\xff\xff\xff\x7c\x00\x00\x00\x50\xff\xff\xff\x90\x00\x00\x00\xa0\xff\xff\xff\xb4\x00\x00\x00\xa4\xff\xff\xff\xdc\x00\x00\x00"), -Section(".eh_frame", 0x7F0, "\x10\x00\x00\x00\x00\x00\x00\x00\x01\x7a\x52\x00\x04\x78\x1e\x01\x1b\x0c\x1f\x00\x10\x00\x00\x00\x18\x00\x00\x00\x34\xfe\xff\xff\x34\x00\x00\x00\x00\x41\x07\x1e\x10\x00\x00\x00\x2c\x00\x00\x00\x70\xfe\xff\xff\x30\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x40\x00\x00\x00\x8c\xfe\xff\xff\x3c\x00\x00\x00\x00\x00\x00\x00\x20\x00\x00\x00\x54\x00\x00\x00\xb8\xfe\xff\xff\x48\x00\x00\x00\x00\x41\x0e\x20\x9d\x04\x9e\x03\x42\x93\x02\x4e\xde\xdd\xd3\x0e\x00\x00\x00\x00\x10\x00\x00\x00\x78\x00\x00\x00\xe4\xfe\xff\xff\x04\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x01\x7a\x52\x00\x01\x7c\x1e\x01\x1b\x0c\x1f\x00\x10\x00\x00\x00\x18\x00\x00\x00\xc0\xfe\xff\xff\x44\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".fini_array", 0x10DB8, "\x00\x07\x00\x00\x00\x00\x00\x00"), -Section(".dynamic", 0x10DC0, "\x01\x00\x00\x00\x00\x00\x00\x00\x28\x00\x00\x00\x00\x00\x00\x00\x0c\x00\x00\x00\x00\x00\x00\x00\xc8\x05\x00\x00\x00\x00\x00\x00\x0d\x00\x00\x00\x00\x00\x00\x00\x98\x07\x00\x00\x00\x00\x00\x00\x19\x00\x00\x00\x00\x00\x00\x00\xb0\x0d\x01\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x1a\x00\x00\x00\x00\x00\x00\x00\xb8\x0d\x01\x00\x00\x00\x00\x00\x1c\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\xf5\xfe\xff\x6f\x00\x00\x00\x00\x98\x02\x00\x00\x00\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x90\x03\x00\x00\x00\x00\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\xb8\x02\x00\x00\x00\x00\x00\x00\x0a\x00\x00\x00\x00\x00\x00\x00\x8d\x00\x00\x00\x00\x00\x00\x00\x0b\x00\x00\x00\x00\x00\x00\x00\x18\x00\x00\x00\x00\x00\x00\x00\x15\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\xe8\x0f\x01\x00\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x60\x00\x00\x00\x00\x00\x00\x00\x14\x00\x00\x00\x00\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x17\x00\x00\x00\x00\x00\x00\x00\x68\x05\x00\x00\x00\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x60\x04\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x08\x01\x00\x00\x00\x00\x00\x00\x09\x00\x00\x00\x00\x00\x00\x00\x18\x00\x00\x00\x00\x00\x00\x00\xfb\xff\xff\x6f\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\xfe\xff\xff\x6f\x00\x00\x00\x00\x30\x04\x00\x00\x00\x00\x00\x00\xff\xff\xff\x6f\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\xf0\xff\xff\x6f\x00\x00\x00\x00\x1e\x04\x00\x00\x00\x00\x00\x00\xf9\xff\xff\x6f\x00\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".init_array", 0x10DB0, "\x50\x07\x00\x00\x00\x00\x00\x00"), -Section(".got", 0x10FA0, "\xc0\x0d\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x3c\x10\x01\x00\x00\x00\x00\x00\x38\x10\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x34\x10\x01\x00\x00\x00\x00\x00\x54\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".got.plt", 0x10FE8, "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe0\x05\x00\x00\x00\x00\x00\x00\xe0\x05\x00\x00\x00\x00\x00\x00\xe0\x05\x00\x00\x00\x00\x00\x00\xe0\x05\x00\x00\x00\x00\x00\x00"), -Section(".data", 0x11020, "\x00\x00\x00\x00\x00\x00\x00\x00\x28\x10\x01\x00\x00\x00\x00\x00"), -Section(".text", 0x640, "\x1f\x20\x03\xd5\x1d\x00\x80\xd2\x1e\x00\x80\xd2\xe5\x03\x00\xaa\xe1\x03\x40\xf9\xe2\x23\x00\x91\xe6\x03\x00\x91\x80\x00\x00\x90\x00\xec\x47\xf9\x03\x00\x80\xd2\x04\x00\x80\xd2\xe5\xff\xff\x97\xf0\xff\xff\x97\x80\x00\x00\x90\x00\xe4\x47\xf9\x40\x00\x00\xb4\xe8\xff\xff\x17\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x80\x00\x00\xb0\x00\xc0\x00\x91\x81\x00\x00\xb0\x21\xc0\x00\x91\x3f\x00\x00\xeb\xc0\x00\x00\x54\x81\x00\x00\x90\x21\xd4\x47\xf9\x61\x00\x00\xb4\xf0\x03\x01\xaa\x00\x02\x1f\xd6\xc0\x03\x5f\xd6\x80\x00\x00\xb0\x00\xc0\x00\x91\x81\x00\x00\xb0\x21\xc0\x00\x91\x21\x00\x00\xcb\x22\xfc\x7f\xd3\x41\x0c\x81\x8b\x21\xfc\x41\x93\xc1\x00\x00\xb4\x82\x00\x00\x90\x42\xf0\x47\xf9\x62\x00\x00\xb4\xf0\x03\x02\xaa\x00\x02\x1f\xd6\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\xfd\x7b\xbe\xa9\xfd\x03\x00\x91\xf3\x0b\x00\xf9\x93\x00\x00\xb0\x60\xc2\x40\x39\x40\x01\x00\x35\x80\x00\x00\x90\x00\xd8\x47\xf9\x80\x00\x00\xb4\x80\x00\x00\xb0\x00\x14\x40\xf9\xb9\xff\xff\x97\xd8\xff\xff\x97\x20\x00\x80\x52\x60\xc2\x00\x39\xf3\x0b\x40\xf9\xfd\x7b\xc2\xa8\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\xdc\xff\xff\x17\x88\x00\x00\x90\x08\xe1\x47\xf9\x8a\x00\x00\x90\x4a\xe9\x47\xf9\x49\x01\x40\xb9\x09\x01\x00\xb9\xe0\x03\x1f\x2a\x1f\x01\x00\xb9\x0b\x01\x40\xb9\x89\x00\x00\x90\x29\xdd\x47\xf9\x2b\x01\x00\xb9\x4a\x01\x40\xb9\x0a\x01\x00\xb9\x08\x01\x40\xb9\x28\x01\x00\xb9\xc0\x03\x5f\xd6")]), -Memmap([Annotation(Region(0x0,0x8A3), Attr("segment","02 0 2212")), -Annotation(Region(0x640,0x673), Attr("symbol","\"_start\"")), -Annotation(Region(0x0,0x102), Attr("section","\".shstrtab\"")), -Annotation(Region(0x0,0x23F), Attr("section","\".strtab\"")), -Annotation(Region(0x0,0x89F), Attr("section","\".symtab\"")), -Annotation(Region(0x0,0x46), Attr("section","\".comment\"")), -Annotation(Region(0x238,0x252), Attr("section","\".interp\"")), -Annotation(Region(0x254,0x277), Attr("section","\".note.gnu.build-id\"")), -Annotation(Region(0x278,0x297), Attr("section","\".note.ABI-tag\"")), -Annotation(Region(0x298,0x2B3), Attr("section","\".gnu.hash\"")), -Annotation(Region(0x2B8,0x38F), Attr("section","\".dynsym\"")), -Annotation(Region(0x390,0x41C), Attr("section","\".dynstr\"")), -Annotation(Region(0x41E,0x42F), Attr("section","\".gnu.version\"")), -Annotation(Region(0x430,0x45F), Attr("section","\".gnu.version_r\"")), -Annotation(Region(0x460,0x567), Attr("section","\".rela.dyn\"")), -Annotation(Region(0x568,0x5C7), Attr("section","\".rela.plt\"")), -Annotation(Region(0x5C8,0x5DF), Attr("section","\".init\"")), -Annotation(Region(0x5E0,0x63F), Attr("section","\".plt\"")), -Annotation(Region(0x5C8,0x5DF), Attr("code-region","()")), -Annotation(Region(0x5E0,0x63F), Attr("code-region","()")), -Annotation(Region(0x640,0x673), Attr("symbol-info","_start 0x640 52")), -Annotation(Region(0x674,0x687), Attr("symbol","\"call_weak_fn\"")), -Annotation(Region(0x674,0x687), Attr("symbol-info","call_weak_fn 0x674 20")), -Annotation(Region(0x754,0x797), Attr("symbol","\"main\"")), -Annotation(Region(0x754,0x797), Attr("symbol-info","main 0x754 68")), -Annotation(Region(0x798,0x7AB), Attr("section","\".fini\"")), -Annotation(Region(0x7AC,0x7AF), Attr("section","\".rodata\"")), -Annotation(Region(0x7B0,0x7EB), Attr("section","\".eh_frame_hdr\"")), -Annotation(Region(0x7F0,0x8A3), Attr("section","\".eh_frame\"")), -Annotation(Region(0x10DB0,0x1102F), Attr("segment","03 0x10DB0 656")), -Annotation(Region(0x10DB8,0x10DBF), Attr("section","\".fini_array\"")), -Annotation(Region(0x10DC0,0x10F9F), Attr("section","\".dynamic\"")), -Annotation(Region(0x10DB0,0x10DB7), Attr("section","\".init_array\"")), -Annotation(Region(0x10FA0,0x10FE7), Attr("section","\".got\"")), -Annotation(Region(0x10FE8,0x1101F), Attr("section","\".got.plt\"")), -Annotation(Region(0x11020,0x1102F), Attr("section","\".data\"")), -Annotation(Region(0x640,0x797), Attr("section","\".text\"")), -Annotation(Region(0x640,0x797), Attr("code-region","()")), -Annotation(Region(0x798,0x7AB), Attr("code-region","()"))]), -Program(Tid(1_574, "%00000626"), Attrs([]), - Subs([Sub(Tid(1_524, "@__cxa_finalize"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x610"), -Attr("stub","()")]), "__cxa_finalize", Args([Arg(Tid(1_575, "%00000627"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("__cxa_finalize_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(918, "@__cxa_finalize"), - Attrs([Attr("address","0x610")]), Phis([]), -Defs([Def(Tid(1_166, "%0000048e"), Attrs([Attr("address","0x610"), -Attr("insn","adrp x16, #69632")]), Var("R16",Imm(64)), Int(69632,64)), -Def(Tid(1_173, "%00000495"), Attrs([Attr("address","0x614"), -Attr("insn","ldr x17, [x16, #0x8]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(1_179, "%0000049b"), Attrs([Attr("address","0x618"), -Attr("insn","add x16, x16, #0x8")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(8,64)))]), Jmps([Call(Tid(1_184, "%000004a0"), - Attrs([Attr("address","0x61C"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), -Sub(Tid(1_525, "@__do_global_dtors_aux"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x700")]), - "__do_global_dtors_aux", Args([Arg(Tid(1_576, "%00000628"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("__do_global_dtors_aux_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(658, "@__do_global_dtors_aux"), - Attrs([Attr("address","0x700")]), Phis([]), Defs([Def(Tid(662, "%00000296"), - Attrs([Attr("address","0x700"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("#3",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(18446744073709551584,64))), -Def(Tid(668, "%0000029c"), Attrs([Attr("address","0x700"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("#3",Imm(64)),Var("R29",Imm(64)),LittleEndian(),64)), -Def(Tid(674, "%000002a2"), Attrs([Attr("address","0x700"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("#3",Imm(64)),Int(8,64)),Var("R30",Imm(64)),LittleEndian(),64)), -Def(Tid(678, "%000002a6"), Attrs([Attr("address","0x700"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("R31",Imm(64)), -Var("#3",Imm(64))), Def(Tid(684, "%000002ac"), - Attrs([Attr("address","0x704"), Attr("insn","mov x29, sp")]), - Var("R29",Imm(64)), Var("R31",Imm(64))), Def(Tid(692, "%000002b4"), - Attrs([Attr("address","0x708"), Attr("insn","str x19, [sp, #0x10]")]), - Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(16,64)),Var("R19",Imm(64)),LittleEndian(),64)), -Def(Tid(697, "%000002b9"), Attrs([Attr("address","0x70C"), -Attr("insn","adrp x19, #69632")]), Var("R19",Imm(64)), Int(69632,64)), -Def(Tid(704, "%000002c0"), Attrs([Attr("address","0x710"), -Attr("insn","ldrb w0, [x19, #0x30]")]), Var("R0",Imm(64)), -UNSIGNED(64,Load(Var("mem",Mem(64,8)),PLUS(Var("R19",Imm(64)),Int(48,64)),LittleEndian(),8)))]), -Jmps([Goto(Tid(711, "%000002c7"), Attrs([Attr("address","0x714"), -Attr("insn","cbnz w0, #0x28")]), - NEQ(Extract(31,0,Var("R0",Imm(64))),Int(0,32)), -Direct(Tid(709, "%000002c5"))), Goto(Tid(1_564, "%0000061c"), Attrs([]), - Int(1,1), Direct(Tid(863, "%0000035f")))])), Blk(Tid(863, "%0000035f"), - Attrs([Attr("address","0x718")]), Phis([]), Defs([Def(Tid(866, "%00000362"), - Attrs([Attr("address","0x718"), Attr("insn","adrp x0, #65536")]), - Var("R0",Imm(64)), Int(65536,64)), Def(Tid(873, "%00000369"), - Attrs([Attr("address","0x71C"), Attr("insn","ldr x0, [x0, #0xfb0]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(4016,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(879, "%0000036f"), Attrs([Attr("address","0x720"), -Attr("insn","cbz x0, #0x10")]), EQ(Var("R0",Imm(64)),Int(0,64)), -Direct(Tid(877, "%0000036d"))), Goto(Tid(1_565, "%0000061d"), Attrs([]), - Int(1,1), Direct(Tid(902, "%00000386")))])), Blk(Tid(902, "%00000386"), - Attrs([Attr("address","0x724")]), Phis([]), Defs([Def(Tid(905, "%00000389"), - Attrs([Attr("address","0x724"), Attr("insn","adrp x0, #69632")]), - Var("R0",Imm(64)), Int(69632,64)), Def(Tid(912, "%00000390"), - Attrs([Attr("address","0x728"), Attr("insn","ldr x0, [x0, #0x28]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(40,64)),LittleEndian(),64)), -Def(Tid(917, "%00000395"), Attrs([Attr("address","0x72C"), -Attr("insn","bl #-0x11c")]), Var("R30",Imm(64)), Int(1840,64))]), -Jmps([Call(Tid(920, "%00000398"), Attrs([Attr("address","0x72C"), -Attr("insn","bl #-0x11c")]), Int(1,1), -(Direct(Tid(1_524, "@__cxa_finalize")),Direct(Tid(877, "%0000036d"))))])), -Blk(Tid(877, "%0000036d"), Attrs([Attr("address","0x730")]), Phis([]), -Defs([Def(Tid(885, "%00000375"), Attrs([Attr("address","0x730"), -Attr("insn","bl #-0xa0")]), Var("R30",Imm(64)), Int(1844,64))]), -Jmps([Call(Tid(887, "%00000377"), Attrs([Attr("address","0x730"), -Attr("insn","bl #-0xa0")]), Int(1,1), -(Direct(Tid(1_538, "@deregister_tm_clones")),Direct(Tid(889, "%00000379"))))])), -Blk(Tid(889, "%00000379"), Attrs([Attr("address","0x734")]), Phis([]), -Defs([Def(Tid(892, "%0000037c"), Attrs([Attr("address","0x734"), -Attr("insn","mov w0, #0x1")]), Var("R0",Imm(64)), Int(1,64)), -Def(Tid(900, "%00000384"), Attrs([Attr("address","0x738"), -Attr("insn","strb w0, [x19, #0x30]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R19",Imm(64)),Int(48,64)),Extract(7,0,Var("R0",Imm(64))),LittleEndian(),8))]), -Jmps([Goto(Tid(1_566, "%0000061e"), Attrs([]), Int(1,1), -Direct(Tid(709, "%000002c5")))])), Blk(Tid(709, "%000002c5"), - Attrs([Attr("address","0x73C")]), Phis([]), Defs([Def(Tid(719, "%000002cf"), - Attrs([Attr("address","0x73C"), Attr("insn","ldr x19, [sp, #0x10]")]), - Var("R19",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(16,64)),LittleEndian(),64)), -Def(Tid(726, "%000002d6"), Attrs([Attr("address","0x740"), -Attr("insn","ldp x29, x30, [sp], #0x20")]), Var("R29",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(731, "%000002db"), Attrs([Attr("address","0x740"), -Attr("insn","ldp x29, x30, [sp], #0x20")]), Var("R30",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(735, "%000002df"), Attrs([Attr("address","0x740"), -Attr("insn","ldp x29, x30, [sp], #0x20")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(32,64)))]), Jmps([Call(Tid(740, "%000002e4"), - Attrs([Attr("address","0x744"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), Sub(Tid(1_529, "@__libc_start_main"), - Attrs([Attr("c.proto","signed (*)(signed (*)(signed , char** , char** );* main, signed , char** , \nvoid* auxv)"), -Attr("address","0x600"), Attr("stub","()")]), "__libc_start_main", - Args([Arg(Tid(1_577, "%00000629"), - Attrs([Attr("c.layout","**[ : 64]"), -Attr("c.data","Top:u64 ptr ptr"), -Attr("c.type","signed (*)(signed , char** , char** );*")]), - Var("__libc_start_main_main",Imm(64)), Var("R0",Imm(64)), In()), -Arg(Tid(1_578, "%0000062a"), Attrs([Attr("c.layout","[signed : 32]"), -Attr("c.data","Top:u32"), Attr("c.type","signed")]), - Var("__libc_start_main_arg2",Imm(32)), LOW(32,Var("R1",Imm(64))), In()), -Arg(Tid(1_579, "%0000062b"), Attrs([Attr("c.layout","**[char : 8]"), -Attr("c.data","Top:u8 ptr ptr"), Attr("c.type","char**")]), - Var("__libc_start_main_arg3",Imm(64)), Var("R2",Imm(64)), Both()), -Arg(Tid(1_580, "%0000062c"), Attrs([Attr("c.layout","*[ : 8]"), -Attr("c.data","{} ptr"), Attr("c.type","void*")]), - Var("__libc_start_main_auxv",Imm(64)), Var("R3",Imm(64)), Both()), -Arg(Tid(1_581, "%0000062d"), Attrs([Attr("c.layout","[signed : 32]"), -Attr("c.data","Top:u32"), Attr("c.type","signed")]), - Var("__libc_start_main_result",Imm(32)), LOW(32,Var("R0",Imm(64))), -Out())]), Blks([Blk(Tid(491, "@__libc_start_main"), - Attrs([Attr("address","0x600")]), Phis([]), -Defs([Def(Tid(1_144, "%00000478"), Attrs([Attr("address","0x600"), -Attr("insn","adrp x16, #69632")]), Var("R16",Imm(64)), Int(69632,64)), -Def(Tid(1_151, "%0000047f"), Attrs([Attr("address","0x604"), -Attr("insn","ldr x17, [x16]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R16",Imm(64)),LittleEndian(),64)), -Def(Tid(1_157, "%00000485"), Attrs([Attr("address","0x608"), -Attr("insn","add x16, x16, #0x0")]), Var("R16",Imm(64)), -Var("R16",Imm(64)))]), Jmps([Call(Tid(1_162, "%0000048a"), - Attrs([Attr("address","0x60C"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), Sub(Tid(1_530, "@_fini"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x798")]), - "_fini", Args([Arg(Tid(1_582, "%0000062e"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("_fini_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(31, "@_fini"), - Attrs([Attr("address","0x798")]), Phis([]), Defs([Def(Tid(37, "%00000025"), - Attrs([Attr("address","0x79C"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("#0",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(18446744073709551600,64))), -Def(Tid(43, "%0000002b"), Attrs([Attr("address","0x79C"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("#0",Imm(64)),Var("R29",Imm(64)),LittleEndian(),64)), -Def(Tid(49, "%00000031"), Attrs([Attr("address","0x79C"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("#0",Imm(64)),Int(8,64)),Var("R30",Imm(64)),LittleEndian(),64)), -Def(Tid(53, "%00000035"), Attrs([Attr("address","0x79C"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("R31",Imm(64)), -Var("#0",Imm(64))), Def(Tid(59, "%0000003b"), Attrs([Attr("address","0x7A0"), -Attr("insn","mov x29, sp")]), Var("R29",Imm(64)), Var("R31",Imm(64))), -Def(Tid(66, "%00000042"), Attrs([Attr("address","0x7A4"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R29",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(71, "%00000047"), Attrs([Attr("address","0x7A4"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R30",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(75, "%0000004b"), Attrs([Attr("address","0x7A4"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(16,64)))]), Jmps([Call(Tid(80, "%00000050"), - Attrs([Attr("address","0x7A8"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), Sub(Tid(1_531, "@_init"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x5C8")]), - "_init", Args([Arg(Tid(1_583, "%0000062f"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("_init_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(1_349, "@_init"), - Attrs([Attr("address","0x5C8")]), Phis([]), -Defs([Def(Tid(1_355, "%0000054b"), Attrs([Attr("address","0x5CC"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("#5",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(18446744073709551600,64))), -Def(Tid(1_361, "%00000551"), Attrs([Attr("address","0x5CC"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("#5",Imm(64)),Var("R29",Imm(64)),LittleEndian(),64)), -Def(Tid(1_367, "%00000557"), Attrs([Attr("address","0x5CC"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("#5",Imm(64)),Int(8,64)),Var("R30",Imm(64)),LittleEndian(),64)), -Def(Tid(1_371, "%0000055b"), Attrs([Attr("address","0x5CC"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("R31",Imm(64)), -Var("#5",Imm(64))), Def(Tid(1_377, "%00000561"), - Attrs([Attr("address","0x5D0"), Attr("insn","mov x29, sp")]), - Var("R29",Imm(64)), Var("R31",Imm(64))), Def(Tid(1_382, "%00000566"), - Attrs([Attr("address","0x5D4"), Attr("insn","bl #0xa0")]), - Var("R30",Imm(64)), Int(1496,64))]), Jmps([Call(Tid(1_384, "%00000568"), - Attrs([Attr("address","0x5D4"), Attr("insn","bl #0xa0")]), Int(1,1), -(Direct(Tid(1_536, "@call_weak_fn")),Direct(Tid(1_386, "%0000056a"))))])), -Blk(Tid(1_386, "%0000056a"), Attrs([Attr("address","0x5D8")]), Phis([]), -Defs([Def(Tid(1_391, "%0000056f"), Attrs([Attr("address","0x5D8"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R29",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(1_396, "%00000574"), Attrs([Attr("address","0x5D8"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R30",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(1_400, "%00000578"), Attrs([Attr("address","0x5D8"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(16,64)))]), Jmps([Call(Tid(1_405, "%0000057d"), - Attrs([Attr("address","0x5DC"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), Sub(Tid(1_532, "@_start"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x640"), -Attr("stub","()"), Attr("entry-point","()")]), "_start", - Args([Arg(Tid(1_584, "%00000630"), Attrs([Attr("c.layout","[signed : 32]"), -Attr("c.data","Top:u32"), Attr("c.type","signed")]), - Var("_start_result",Imm(32)), LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(428, "@_start"), Attrs([Attr("address","0x640")]), Phis([]), -Defs([Def(Tid(433, "%000001b1"), Attrs([Attr("address","0x644"), -Attr("insn","mov x29, #0x0")]), Var("R29",Imm(64)), Int(0,64)), -Def(Tid(438, "%000001b6"), Attrs([Attr("address","0x648"), -Attr("insn","mov x30, #0x0")]), Var("R30",Imm(64)), Int(0,64)), -Def(Tid(444, "%000001bc"), Attrs([Attr("address","0x64C"), -Attr("insn","mov x5, x0")]), Var("R5",Imm(64)), Var("R0",Imm(64))), -Def(Tid(451, "%000001c3"), Attrs([Attr("address","0x650"), -Attr("insn","ldr x1, [sp]")]), Var("R1",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(457, "%000001c9"), Attrs([Attr("address","0x654"), -Attr("insn","add x2, sp, #0x8")]), Var("R2",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(8,64))), Def(Tid(463, "%000001cf"), - Attrs([Attr("address","0x658"), Attr("insn","mov x6, sp")]), - Var("R6",Imm(64)), Var("R31",Imm(64))), Def(Tid(468, "%000001d4"), - Attrs([Attr("address","0x65C"), Attr("insn","adrp x0, #65536")]), - Var("R0",Imm(64)), Int(65536,64)), Def(Tid(475, "%000001db"), - Attrs([Attr("address","0x660"), Attr("insn","ldr x0, [x0, #0xfd8]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(4056,64)),LittleEndian(),64)), -Def(Tid(480, "%000001e0"), Attrs([Attr("address","0x664"), -Attr("insn","mov x3, #0x0")]), Var("R3",Imm(64)), Int(0,64)), -Def(Tid(485, "%000001e5"), Attrs([Attr("address","0x668"), -Attr("insn","mov x4, #0x0")]), Var("R4",Imm(64)), Int(0,64)), -Def(Tid(490, "%000001ea"), Attrs([Attr("address","0x66C"), -Attr("insn","bl #-0x6c")]), Var("R30",Imm(64)), Int(1648,64))]), -Jmps([Call(Tid(493, "%000001ed"), Attrs([Attr("address","0x66C"), -Attr("insn","bl #-0x6c")]), Int(1,1), -(Direct(Tid(1_529, "@__libc_start_main")),Direct(Tid(495, "%000001ef"))))])), -Blk(Tid(495, "%000001ef"), Attrs([Attr("address","0x670")]), Phis([]), -Defs([Def(Tid(498, "%000001f2"), Attrs([Attr("address","0x670"), -Attr("insn","bl #-0x40")]), Var("R30",Imm(64)), Int(1652,64))]), -Jmps([Call(Tid(501, "%000001f5"), Attrs([Attr("address","0x670"), -Attr("insn","bl #-0x40")]), Int(1,1), -(Direct(Tid(1_535, "@abort")),Direct(Tid(1_567, "%0000061f"))))])), -Blk(Tid(1_567, "%0000061f"), Attrs([]), Phis([]), Defs([]), -Jmps([Call(Tid(1_568, "%00000620"), Attrs([]), Int(1,1), -(Direct(Tid(1_536, "@call_weak_fn")),))]))])), Sub(Tid(1_535, "@abort"), - Attrs([Attr("noreturn","()"), Attr("c.proto","void (*)(void)"), -Attr("address","0x630"), Attr("stub","()")]), "abort", Args([]), -Blks([Blk(Tid(499, "@abort"), Attrs([Attr("address","0x630")]), Phis([]), -Defs([Def(Tid(1_210, "%000004ba"), Attrs([Attr("address","0x630"), -Attr("insn","adrp x16, #69632")]), Var("R16",Imm(64)), Int(69632,64)), -Def(Tid(1_217, "%000004c1"), Attrs([Attr("address","0x634"), -Attr("insn","ldr x17, [x16, #0x18]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(24,64)),LittleEndian(),64)), -Def(Tid(1_223, "%000004c7"), Attrs([Attr("address","0x638"), -Attr("insn","add x16, x16, #0x18")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(24,64)))]), Jmps([Call(Tid(1_228, "%000004cc"), - Attrs([Attr("address","0x63C"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), Sub(Tid(1_536, "@call_weak_fn"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x674")]), - "call_weak_fn", Args([Arg(Tid(1_585, "%00000631"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("call_weak_fn_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(503, "@call_weak_fn"), - Attrs([Attr("address","0x674")]), Phis([]), Defs([Def(Tid(506, "%000001fa"), - Attrs([Attr("address","0x674"), Attr("insn","adrp x0, #65536")]), - Var("R0",Imm(64)), Int(65536,64)), Def(Tid(513, "%00000201"), - Attrs([Attr("address","0x678"), Attr("insn","ldr x0, [x0, #0xfc8]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(4040,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(519, "%00000207"), Attrs([Attr("address","0x67C"), -Attr("insn","cbz x0, #0x8")]), EQ(Var("R0",Imm(64)),Int(0,64)), -Direct(Tid(517, "%00000205"))), Goto(Tid(1_569, "%00000621"), Attrs([]), - Int(1,1), Direct(Tid(982, "%000003d6")))])), Blk(Tid(517, "%00000205"), - Attrs([Attr("address","0x684")]), Phis([]), Defs([]), -Jmps([Call(Tid(525, "%0000020d"), Attrs([Attr("address","0x684"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))])), -Blk(Tid(982, "%000003d6"), Attrs([Attr("address","0x680")]), Phis([]), -Defs([]), Jmps([Goto(Tid(985, "%000003d9"), Attrs([Attr("address","0x680"), -Attr("insn","b #-0x60")]), Int(1,1), Direct(Tid(983, "@__gmon_start__")))])), -Blk(Tid(983, "@__gmon_start__"), Attrs([Attr("address","0x620")]), Phis([]), -Defs([Def(Tid(1_188, "%000004a4"), Attrs([Attr("address","0x620"), -Attr("insn","adrp x16, #69632")]), Var("R16",Imm(64)), Int(69632,64)), -Def(Tid(1_195, "%000004ab"), Attrs([Attr("address","0x624"), -Attr("insn","ldr x17, [x16, #0x10]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(16,64)),LittleEndian(),64)), -Def(Tid(1_201, "%000004b1"), Attrs([Attr("address","0x628"), -Attr("insn","add x16, x16, #0x10")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(16,64)))]), Jmps([Call(Tid(1_206, "%000004b6"), - Attrs([Attr("address","0x62C"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), -Sub(Tid(1_538, "@deregister_tm_clones"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x690")]), - "deregister_tm_clones", Args([Arg(Tid(1_586, "%00000632"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("deregister_tm_clones_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(531, "@deregister_tm_clones"), - Attrs([Attr("address","0x690")]), Phis([]), Defs([Def(Tid(534, "%00000216"), - Attrs([Attr("address","0x690"), Attr("insn","adrp x0, #69632")]), - Var("R0",Imm(64)), Int(69632,64)), Def(Tid(540, "%0000021c"), - Attrs([Attr("address","0x694"), Attr("insn","add x0, x0, #0x30")]), - Var("R0",Imm(64)), PLUS(Var("R0",Imm(64)),Int(48,64))), -Def(Tid(545, "%00000221"), Attrs([Attr("address","0x698"), -Attr("insn","adrp x1, #69632")]), Var("R1",Imm(64)), Int(69632,64)), -Def(Tid(551, "%00000227"), Attrs([Attr("address","0x69C"), -Attr("insn","add x1, x1, #0x30")]), Var("R1",Imm(64)), -PLUS(Var("R1",Imm(64)),Int(48,64))), Def(Tid(557, "%0000022d"), - Attrs([Attr("address","0x6A0"), Attr("insn","cmp x1, x0")]), - Var("#1",Imm(64)), NOT(Var("R0",Imm(64)))), Def(Tid(562, "%00000232"), - Attrs([Attr("address","0x6A0"), Attr("insn","cmp x1, x0")]), - Var("#2",Imm(64)), PLUS(Var("R1",Imm(64)),NOT(Var("R0",Imm(64))))), -Def(Tid(568, "%00000238"), Attrs([Attr("address","0x6A0"), -Attr("insn","cmp x1, x0")]), Var("VF",Imm(1)), -NEQ(SIGNED(65,PLUS(Var("#2",Imm(64)),Int(1,64))),PLUS(PLUS(SIGNED(65,Var("R1",Imm(64))),SIGNED(65,Var("#1",Imm(64)))),Int(1,65)))), -Def(Tid(574, "%0000023e"), Attrs([Attr("address","0x6A0"), -Attr("insn","cmp x1, x0")]), Var("CF",Imm(1)), -NEQ(UNSIGNED(65,PLUS(Var("#2",Imm(64)),Int(1,64))),PLUS(PLUS(UNSIGNED(65,Var("R1",Imm(64))),UNSIGNED(65,Var("#1",Imm(64)))),Int(1,65)))), -Def(Tid(578, "%00000242"), Attrs([Attr("address","0x6A0"), -Attr("insn","cmp x1, x0")]), Var("ZF",Imm(1)), -EQ(PLUS(Var("#2",Imm(64)),Int(1,64)),Int(0,64))), Def(Tid(582, "%00000246"), - Attrs([Attr("address","0x6A0"), Attr("insn","cmp x1, x0")]), - Var("NF",Imm(1)), Extract(63,63,PLUS(Var("#2",Imm(64)),Int(1,64))))]), -Jmps([Goto(Tid(588, "%0000024c"), Attrs([Attr("address","0x6A4"), -Attr("insn","b.eq #0x18")]), EQ(Var("ZF",Imm(1)),Int(1,1)), -Direct(Tid(586, "%0000024a"))), Goto(Tid(1_570, "%00000622"), Attrs([]), - Int(1,1), Direct(Tid(952, "%000003b8")))])), Blk(Tid(952, "%000003b8"), - Attrs([Attr("address","0x6A8")]), Phis([]), Defs([Def(Tid(955, "%000003bb"), - Attrs([Attr("address","0x6A8"), Attr("insn","adrp x1, #65536")]), - Var("R1",Imm(64)), Int(65536,64)), Def(Tid(962, "%000003c2"), - Attrs([Attr("address","0x6AC"), Attr("insn","ldr x1, [x1, #0xfa8]")]), - Var("R1",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R1",Imm(64)),Int(4008,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(967, "%000003c7"), Attrs([Attr("address","0x6B0"), -Attr("insn","cbz x1, #0xc")]), EQ(Var("R1",Imm(64)),Int(0,64)), -Direct(Tid(586, "%0000024a"))), Goto(Tid(1_571, "%00000623"), Attrs([]), - Int(1,1), Direct(Tid(971, "%000003cb")))])), Blk(Tid(586, "%0000024a"), - Attrs([Attr("address","0x6BC")]), Phis([]), Defs([]), -Jmps([Call(Tid(594, "%00000252"), Attrs([Attr("address","0x6BC"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))])), -Blk(Tid(971, "%000003cb"), Attrs([Attr("address","0x6B4")]), Phis([]), -Defs([Def(Tid(975, "%000003cf"), Attrs([Attr("address","0x6B4"), -Attr("insn","mov x16, x1")]), Var("R16",Imm(64)), Var("R1",Imm(64)))]), -Jmps([Call(Tid(980, "%000003d4"), Attrs([Attr("address","0x6B8"), -Attr("insn","br x16")]), Int(1,1), (Indirect(Var("R16",Imm(64))),))]))])), -Sub(Tid(1_541, "@frame_dummy"), Attrs([Attr("c.proto","signed (*)(void)"), -Attr("address","0x750")]), "frame_dummy", Args([Arg(Tid(1_587, "%00000633"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("frame_dummy_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(746, "@frame_dummy"), - Attrs([Attr("address","0x750")]), Phis([]), Defs([]), -Jmps([Call(Tid(748, "%000002ec"), Attrs([Attr("address","0x750"), -Attr("insn","b #-0x90")]), Int(1,1), -(Direct(Tid(1_543, "@register_tm_clones")),))]))])), Sub(Tid(1_542, "@main"), - Attrs([Attr("c.proto","signed (*)(signed argc, const char** argv)"), -Attr("address","0x754")]), "main", Args([Arg(Tid(1_588, "%00000634"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("main_argc",Imm(32)), -LOW(32,Var("R0",Imm(64))), In()), Arg(Tid(1_589, "%00000635"), - Attrs([Attr("c.layout","**[char : 8]"), Attr("c.data","Top:u8 ptr ptr"), -Attr("c.type"," const char**")]), Var("main_argv",Imm(64)), -Var("R1",Imm(64)), Both()), Arg(Tid(1_590, "%00000636"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("main_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(750, "@main"), - Attrs([Attr("address","0x754")]), Phis([]), Defs([Def(Tid(753, "%000002f1"), - Attrs([Attr("address","0x754"), Attr("insn","adrp x8, #65536")]), - Var("R8",Imm(64)), Int(65536,64)), Def(Tid(760, "%000002f8"), - Attrs([Attr("address","0x758"), Attr("insn","ldr x8, [x8, #0xfc0]")]), - Var("R8",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R8",Imm(64)),Int(4032,64)),LittleEndian(),64)), -Def(Tid(765, "%000002fd"), Attrs([Attr("address","0x75C"), -Attr("insn","adrp x10, #65536")]), Var("R10",Imm(64)), Int(65536,64)), -Def(Tid(772, "%00000304"), Attrs([Attr("address","0x760"), -Attr("insn","ldr x10, [x10, #0xfd0]")]), Var("R10",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R10",Imm(64)),Int(4048,64)),LittleEndian(),64)), -Def(Tid(779, "%0000030b"), Attrs([Attr("address","0x764"), -Attr("insn","ldr w9, [x10]")]), Var("R9",Imm(64)), -UNSIGNED(64,Load(Var("mem",Mem(64,8)),Var("R10",Imm(64)),LittleEndian(),32))), -Def(Tid(787, "%00000313"), Attrs([Attr("address","0x768"), -Attr("insn","str w9, [x8]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("R8",Imm(64)),Extract(31,0,Var("R9",Imm(64))),LittleEndian(),32)), -Def(Tid(792, "%00000318"), Attrs([Attr("address","0x76C"), -Attr("insn","mov w0, wzr")]), Var("R0",Imm(64)), Int(0,64)), -Def(Tid(799, "%0000031f"), Attrs([Attr("address","0x770"), -Attr("insn","str wzr, [x8]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("R8",Imm(64)),Int(0,32),LittleEndian(),32)), -Def(Tid(806, "%00000326"), Attrs([Attr("address","0x774"), -Attr("insn","ldr w11, [x8]")]), Var("R11",Imm(64)), -UNSIGNED(64,Load(Var("mem",Mem(64,8)),Var("R8",Imm(64)),LittleEndian(),32))), -Def(Tid(811, "%0000032b"), Attrs([Attr("address","0x778"), -Attr("insn","adrp x9, #65536")]), Var("R9",Imm(64)), Int(65536,64)), -Def(Tid(818, "%00000332"), Attrs([Attr("address","0x77C"), -Attr("insn","ldr x9, [x9, #0xfb8]")]), Var("R9",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R9",Imm(64)),Int(4024,64)),LittleEndian(),64)), -Def(Tid(826, "%0000033a"), Attrs([Attr("address","0x780"), -Attr("insn","str w11, [x9]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("R9",Imm(64)),Extract(31,0,Var("R11",Imm(64))),LittleEndian(),32)), -Def(Tid(833, "%00000341"), Attrs([Attr("address","0x784"), -Attr("insn","ldr w10, [x10]")]), Var("R10",Imm(64)), -UNSIGNED(64,Load(Var("mem",Mem(64,8)),Var("R10",Imm(64)),LittleEndian(),32))), -Def(Tid(841, "%00000349"), Attrs([Attr("address","0x788"), -Attr("insn","str w10, [x8]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("R8",Imm(64)),Extract(31,0,Var("R10",Imm(64))),LittleEndian(),32)), -Def(Tid(848, "%00000350"), Attrs([Attr("address","0x78C"), -Attr("insn","ldr w8, [x8]")]), Var("R8",Imm(64)), -UNSIGNED(64,Load(Var("mem",Mem(64,8)),Var("R8",Imm(64)),LittleEndian(),32))), -Def(Tid(856, "%00000358"), Attrs([Attr("address","0x790"), -Attr("insn","str w8, [x9]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("R9",Imm(64)),Extract(31,0,Var("R8",Imm(64))),LittleEndian(),32))]), -Jmps([Call(Tid(861, "%0000035d"), Attrs([Attr("address","0x794"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))]))])), -Sub(Tid(1_543, "@register_tm_clones"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x6C0")]), - "register_tm_clones", Args([Arg(Tid(1_591, "%00000637"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("register_tm_clones_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(596, "@register_tm_clones"), Attrs([Attr("address","0x6C0")]), - Phis([]), Defs([Def(Tid(599, "%00000257"), Attrs([Attr("address","0x6C0"), -Attr("insn","adrp x0, #69632")]), Var("R0",Imm(64)), Int(69632,64)), -Def(Tid(605, "%0000025d"), Attrs([Attr("address","0x6C4"), -Attr("insn","add x0, x0, #0x30")]), Var("R0",Imm(64)), -PLUS(Var("R0",Imm(64)),Int(48,64))), Def(Tid(610, "%00000262"), - Attrs([Attr("address","0x6C8"), Attr("insn","adrp x1, #69632")]), - Var("R1",Imm(64)), Int(69632,64)), Def(Tid(616, "%00000268"), - Attrs([Attr("address","0x6CC"), Attr("insn","add x1, x1, #0x30")]), - Var("R1",Imm(64)), PLUS(Var("R1",Imm(64)),Int(48,64))), -Def(Tid(623, "%0000026f"), Attrs([Attr("address","0x6D0"), -Attr("insn","sub x1, x1, x0")]), Var("R1",Imm(64)), -PLUS(PLUS(Var("R1",Imm(64)),NOT(Var("R0",Imm(64)))),Int(1,64))), -Def(Tid(629, "%00000275"), Attrs([Attr("address","0x6D4"), -Attr("insn","lsr x2, x1, #63")]), Var("R2",Imm(64)), -Concat(Int(0,63),Extract(63,63,Var("R1",Imm(64))))), -Def(Tid(636, "%0000027c"), Attrs([Attr("address","0x6D8"), -Attr("insn","add x1, x2, x1, asr #3")]), Var("R1",Imm(64)), -PLUS(Var("R2",Imm(64)),ARSHIFT(Var("R1",Imm(64)),Int(3,3)))), -Def(Tid(642, "%00000282"), Attrs([Attr("address","0x6DC"), -Attr("insn","asr x1, x1, #1")]), Var("R1",Imm(64)), -SIGNED(64,Extract(63,1,Var("R1",Imm(64)))))]), -Jmps([Goto(Tid(648, "%00000288"), Attrs([Attr("address","0x6E0"), -Attr("insn","cbz x1, #0x18")]), EQ(Var("R1",Imm(64)),Int(0,64)), -Direct(Tid(646, "%00000286"))), Goto(Tid(1_572, "%00000624"), Attrs([]), - Int(1,1), Direct(Tid(922, "%0000039a")))])), Blk(Tid(922, "%0000039a"), - Attrs([Attr("address","0x6E4")]), Phis([]), Defs([Def(Tid(925, "%0000039d"), - Attrs([Attr("address","0x6E4"), Attr("insn","adrp x2, #65536")]), - Var("R2",Imm(64)), Int(65536,64)), Def(Tid(932, "%000003a4"), - Attrs([Attr("address","0x6E8"), Attr("insn","ldr x2, [x2, #0xfe0]")]), - Var("R2",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R2",Imm(64)),Int(4064,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(937, "%000003a9"), Attrs([Attr("address","0x6EC"), -Attr("insn","cbz x2, #0xc")]), EQ(Var("R2",Imm(64)),Int(0,64)), -Direct(Tid(646, "%00000286"))), Goto(Tid(1_573, "%00000625"), Attrs([]), - Int(1,1), Direct(Tid(941, "%000003ad")))])), Blk(Tid(646, "%00000286"), - Attrs([Attr("address","0x6F8")]), Phis([]), Defs([]), -Jmps([Call(Tid(654, "%0000028e"), Attrs([Attr("address","0x6F8"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))])), -Blk(Tid(941, "%000003ad"), Attrs([Attr("address","0x6F0")]), Phis([]), -Defs([Def(Tid(945, "%000003b1"), Attrs([Attr("address","0x6F0"), -Attr("insn","mov x16, x2")]), Var("R16",Imm(64)), Var("R2",Imm(64)))]), -Jmps([Call(Tid(950, "%000003b6"), Attrs([Attr("address","0x6F4"), -Attr("insn","br x16")]), Int(1,1), -(Indirect(Var("R16",Imm(64))),))]))]))]))) \ No newline at end of file diff --git a/src/test/incorrect/basicassign/clang_pic/basicassign.bir b/src/test/incorrect/basicassign/clang_pic/basicassign.bir deleted file mode 100644 index df3173399..000000000 --- a/src/test/incorrect/basicassign/clang_pic/basicassign.bir +++ /dev/null @@ -1,239 +0,0 @@ -00000626: program -000005f4: sub __cxa_finalize(__cxa_finalize_result) -00000627: __cxa_finalize_result :: out u32 = low:32[R0] - -00000396: -0000048e: R16 := 0x11000 -00000495: R17 := mem[R16 + 8, el]:u64 -0000049b: R16 := R16 + 8 -000004a0: call R17 with noreturn - -000005f5: sub __do_global_dtors_aux(__do_global_dtors_aux_result) -00000628: __do_global_dtors_aux_result :: out u32 = low:32[R0] - -00000292: -00000296: #3 := R31 - 0x20 -0000029c: mem := mem with [#3, el]:u64 <- R29 -000002a2: mem := mem with [#3 + 8, el]:u64 <- R30 -000002a6: R31 := #3 -000002ac: R29 := R31 -000002b4: mem := mem with [R31 + 0x10, el]:u64 <- R19 -000002b9: R19 := 0x11000 -000002c0: R0 := pad:64[mem[R19 + 0x30]] -000002c7: when 31:0[R0] <> 0 goto %000002c5 -0000061c: goto %0000035f - -0000035f: -00000362: R0 := 0x10000 -00000369: R0 := mem[R0 + 0xFB0, el]:u64 -0000036f: when R0 = 0 goto %0000036d -0000061d: goto %00000386 - -00000386: -00000389: R0 := 0x11000 -00000390: R0 := mem[R0 + 0x28, el]:u64 -00000395: R30 := 0x730 -00000398: call @__cxa_finalize with return %0000036d - -0000036d: -00000375: R30 := 0x734 -00000377: call @deregister_tm_clones with return %00000379 - -00000379: -0000037c: R0 := 1 -00000384: mem := mem with [R19 + 0x30] <- 7:0[R0] -0000061e: goto %000002c5 - -000002c5: -000002cf: R19 := mem[R31 + 0x10, el]:u64 -000002d6: R29 := mem[R31, el]:u64 -000002db: R30 := mem[R31 + 8, el]:u64 -000002df: R31 := R31 + 0x20 -000002e4: call R30 with noreturn - -000005f9: sub __libc_start_main(__libc_start_main_main, __libc_start_main_arg2, __libc_start_main_arg3, __libc_start_main_auxv, __libc_start_main_result) -00000629: __libc_start_main_main :: in u64 = R0 -0000062a: __libc_start_main_arg2 :: in u32 = low:32[R1] -0000062b: __libc_start_main_arg3 :: in out u64 = R2 -0000062c: __libc_start_main_auxv :: in out u64 = R3 -0000062d: __libc_start_main_result :: out u32 = low:32[R0] - -000001eb: -00000478: R16 := 0x11000 -0000047f: R17 := mem[R16, el]:u64 -00000485: R16 := R16 -0000048a: call R17 with noreturn - -000005fa: sub _fini(_fini_result) -0000062e: _fini_result :: out u32 = low:32[R0] - -0000001f: -00000025: #0 := R31 - 0x10 -0000002b: mem := mem with [#0, el]:u64 <- R29 -00000031: mem := mem with [#0 + 8, el]:u64 <- R30 -00000035: R31 := #0 -0000003b: R29 := R31 -00000042: R29 := mem[R31, el]:u64 -00000047: R30 := mem[R31 + 8, el]:u64 -0000004b: R31 := R31 + 0x10 -00000050: call R30 with noreturn - -000005fb: sub _init(_init_result) -0000062f: _init_result :: out u32 = low:32[R0] - -00000545: -0000054b: #5 := R31 - 0x10 -00000551: mem := mem with [#5, el]:u64 <- R29 -00000557: mem := mem with [#5 + 8, el]:u64 <- R30 -0000055b: R31 := #5 -00000561: R29 := R31 -00000566: R30 := 0x5D8 -00000568: call @call_weak_fn with return %0000056a - -0000056a: -0000056f: R29 := mem[R31, el]:u64 -00000574: R30 := mem[R31 + 8, el]:u64 -00000578: R31 := R31 + 0x10 -0000057d: call R30 with noreturn - -000005fc: sub _start(_start_result) -00000630: _start_result :: out u32 = low:32[R0] - -000001ac: -000001b1: R29 := 0 -000001b6: R30 := 0 -000001bc: R5 := R0 -000001c3: R1 := mem[R31, el]:u64 -000001c9: R2 := R31 + 8 -000001cf: R6 := R31 -000001d4: R0 := 0x10000 -000001db: R0 := mem[R0 + 0xFD8, el]:u64 -000001e0: R3 := 0 -000001e5: R4 := 0 -000001ea: R30 := 0x670 -000001ed: call @__libc_start_main with return %000001ef - -000001ef: -000001f2: R30 := 0x674 -000001f5: call @abort with return %0000061f - -0000061f: -00000620: call @call_weak_fn with noreturn - -000005ff: sub abort() - - -000001f3: -000004ba: R16 := 0x11000 -000004c1: R17 := mem[R16 + 0x18, el]:u64 -000004c7: R16 := R16 + 0x18 -000004cc: call R17 with noreturn - -00000600: sub call_weak_fn(call_weak_fn_result) -00000631: call_weak_fn_result :: out u32 = low:32[R0] - -000001f7: -000001fa: R0 := 0x10000 -00000201: R0 := mem[R0 + 0xFC8, el]:u64 -00000207: when R0 = 0 goto %00000205 -00000621: goto %000003d6 - -00000205: -0000020d: call R30 with noreturn - -000003d6: -000003d9: goto @__gmon_start__ - -000003d7: -000004a4: R16 := 0x11000 -000004ab: R17 := mem[R16 + 0x10, el]:u64 -000004b1: R16 := R16 + 0x10 -000004b6: call R17 with noreturn - -00000602: sub deregister_tm_clones(deregister_tm_clones_result) -00000632: deregister_tm_clones_result :: out u32 = low:32[R0] - -00000213: -00000216: R0 := 0x11000 -0000021c: R0 := R0 + 0x30 -00000221: R1 := 0x11000 -00000227: R1 := R1 + 0x30 -0000022d: #1 := ~R0 -00000232: #2 := R1 + ~R0 -00000238: VF := extend:65[#2 + 1] <> extend:65[R1] + extend:65[#1] + 1 -0000023e: CF := pad:65[#2 + 1] <> pad:65[R1] + pad:65[#1] + 1 -00000242: ZF := #2 + 1 = 0 -00000246: NF := 63:63[#2 + 1] -0000024c: when ZF goto %0000024a -00000622: goto %000003b8 - -000003b8: -000003bb: R1 := 0x10000 -000003c2: R1 := mem[R1 + 0xFA8, el]:u64 -000003c7: when R1 = 0 goto %0000024a -00000623: goto %000003cb - -0000024a: -00000252: call R30 with noreturn - -000003cb: -000003cf: R16 := R1 -000003d4: call R16 with noreturn - -00000605: sub frame_dummy(frame_dummy_result) -00000633: frame_dummy_result :: out u32 = low:32[R0] - -000002ea: -000002ec: call @register_tm_clones with noreturn - -00000606: sub main(main_argc, main_argv, main_result) -00000634: main_argc :: in u32 = low:32[R0] -00000635: main_argv :: in out u64 = R1 -00000636: main_result :: out u32 = low:32[R0] - -000002ee: -000002f1: R8 := 0x10000 -000002f8: R8 := mem[R8 + 0xFC0, el]:u64 -000002fd: R10 := 0x10000 -00000304: R10 := mem[R10 + 0xFD0, el]:u64 -0000030b: R9 := pad:64[mem[R10, el]:u32] -00000313: mem := mem with [R8, el]:u32 <- 31:0[R9] -00000318: R0 := 0 -0000031f: mem := mem with [R8, el]:u32 <- 0 -00000326: R11 := pad:64[mem[R8, el]:u32] -0000032b: R9 := 0x10000 -00000332: R9 := mem[R9 + 0xFB8, el]:u64 -0000033a: mem := mem with [R9, el]:u32 <- 31:0[R11] -00000341: R10 := pad:64[mem[R10, el]:u32] -00000349: mem := mem with [R8, el]:u32 <- 31:0[R10] -00000350: R8 := pad:64[mem[R8, el]:u32] -00000358: mem := mem with [R9, el]:u32 <- 31:0[R8] -0000035d: call R30 with noreturn - -00000607: sub register_tm_clones(register_tm_clones_result) -00000637: register_tm_clones_result :: out u32 = low:32[R0] - -00000254: -00000257: R0 := 0x11000 -0000025d: R0 := R0 + 0x30 -00000262: R1 := 0x11000 -00000268: R1 := R1 + 0x30 -0000026f: R1 := R1 + ~R0 + 1 -00000275: R2 := 0.63:63[R1] -0000027c: R1 := R2 + (R1 ~>> 3) -00000282: R1 := extend:64[63:1[R1]] -00000288: when R1 = 0 goto %00000286 -00000624: goto %0000039a - -0000039a: -0000039d: R2 := 0x10000 -000003a4: R2 := mem[R2 + 0xFE0, el]:u64 -000003a9: when R2 = 0 goto %00000286 -00000625: goto %000003ad - -00000286: -0000028e: call R30 with noreturn - -000003ad: -000003b1: R16 := R2 -000003b6: call R16 with noreturn diff --git a/src/test/incorrect/basicassign/clang_pic/basicassign.expected b/src/test/incorrect/basicassign/clang_pic/basicassign.expected index bb1db6e8f..8784363de 100644 --- a/src/test/incorrect/basicassign/clang_pic/basicassign.expected +++ b/src/test/incorrect/basicassign/clang_pic/basicassign.expected @@ -1,21 +1,19 @@ var {:extern} Gamma_R0: bool; var {:extern} Gamma_R10: bool; -var {:extern} Gamma_R11: bool; var {:extern} Gamma_R8: bool; var {:extern} Gamma_R9: bool; var {:extern} Gamma_mem: [bv64]bool; var {:extern} R0: bv64; var {:extern} R10: bv64; -var {:extern} R11: bv64; var {:extern} R8: bv64; var {:extern} R9: bv64; var {:extern} mem: [bv64]bv8; const {:extern} $secret_addr: bv64; -axiom ($secret_addr == 69684bv64); +axiom ($secret_addr == 131092bv64); const {:extern} $x_addr: bv64; -axiom ($x_addr == 69688bv64); +axiom ($x_addr == 131096bv64); const {:extern} $z_addr: bv64; -axiom ($z_addr == 69692bv64); +axiom ($z_addr == 131100bv64); function {:extern} L(mem$in: [bv64]bv8, index: bv64) returns (bool) { (if (index == $z_addr) then true else (if (index == $secret_addr) then false else (if (index == $x_addr) then false else false))) } @@ -50,14 +48,14 @@ procedure {:extern} rely(); modifies Gamma_mem, mem; ensures (forall i: bv64 :: (((mem[i] == old(mem[i])) ==> (Gamma_mem[i] == old(Gamma_mem[i]))))); ensures (memory_load32_le(mem, $x_addr) == old(memory_load32_le(mem, $x_addr))); - free ensures (memory_load32_le(mem, 1964bv64) == 131073bv32); - free ensures (memory_load64_le(mem, 69040bv64) == 1872bv64); - free ensures (memory_load64_le(mem, 69048bv64) == 1792bv64); - free ensures (memory_load64_le(mem, 69560bv64) == 69692bv64); - free ensures (memory_load64_le(mem, 69568bv64) == 69688bv64); - free ensures (memory_load64_le(mem, 69584bv64) == 69684bv64); - free ensures (memory_load64_le(mem, 69592bv64) == 1876bv64); - free ensures (memory_load64_le(mem, 69672bv64) == 69672bv64); + free ensures (memory_load32_le(mem, 2324bv64) == 131073bv32); + free ensures (memory_load64_le(mem, 130416bv64) == 2256bv64); + free ensures (memory_load64_le(mem, 130424bv64) == 2176bv64); + free ensures (memory_load64_le(mem, 131024bv64) == 131100bv64); + free ensures (memory_load64_le(mem, 131032bv64) == 131096bv64); + free ensures (memory_load64_le(mem, 131048bv64) == 131092bv64); + free ensures (memory_load64_le(mem, 131056bv64) == 2260bv64); + free ensures (memory_load64_le(mem, 131080bv64) == 131080bv64); procedure {:extern} rely_transitive(); modifies Gamma_mem, mem; @@ -79,93 +77,66 @@ implementation {:extern} rely_reflexive() procedure {:extern} guarantee_reflexive(); modifies Gamma_mem, mem; -procedure main_1876(); - modifies Gamma_R0, Gamma_R10, Gamma_R11, Gamma_R8, Gamma_R9, Gamma_mem, R0, R10, R11, R8, R9, mem; - free requires (memory_load64_le(mem, 69664bv64) == 0bv64); - free requires (memory_load64_le(mem, 69672bv64) == 69672bv64); - free requires (memory_load32_le(mem, 1964bv64) == 131073bv32); - free requires (memory_load64_le(mem, 69040bv64) == 1872bv64); - free requires (memory_load64_le(mem, 69048bv64) == 1792bv64); - free requires (memory_load64_le(mem, 69560bv64) == 69692bv64); - free requires (memory_load64_le(mem, 69568bv64) == 69688bv64); - free requires (memory_load64_le(mem, 69584bv64) == 69684bv64); - free requires (memory_load64_le(mem, 69592bv64) == 1876bv64); - free requires (memory_load64_le(mem, 69672bv64) == 69672bv64); - free ensures (memory_load32_le(mem, 1964bv64) == 131073bv32); - free ensures (memory_load64_le(mem, 69040bv64) == 1872bv64); - free ensures (memory_load64_le(mem, 69048bv64) == 1792bv64); - free ensures (memory_load64_le(mem, 69560bv64) == 69692bv64); - free ensures (memory_load64_le(mem, 69568bv64) == 69688bv64); - free ensures (memory_load64_le(mem, 69584bv64) == 69684bv64); - free ensures (memory_load64_le(mem, 69592bv64) == 1876bv64); - free ensures (memory_load64_le(mem, 69672bv64) == 69672bv64); +procedure main(); + modifies Gamma_R0, Gamma_R10, Gamma_R8, Gamma_R9, Gamma_mem, R0, R10, R8, R9, mem; + free requires (memory_load64_le(mem, 131072bv64) == 0bv64); + free requires (memory_load64_le(mem, 131080bv64) == 131080bv64); + free requires (memory_load32_le(mem, 2324bv64) == 131073bv32); + free requires (memory_load64_le(mem, 130416bv64) == 2256bv64); + free requires (memory_load64_le(mem, 130424bv64) == 2176bv64); + free requires (memory_load64_le(mem, 131024bv64) == 131100bv64); + free requires (memory_load64_le(mem, 131032bv64) == 131096bv64); + free requires (memory_load64_le(mem, 131048bv64) == 131092bv64); + free requires (memory_load64_le(mem, 131056bv64) == 2260bv64); + free requires (memory_load64_le(mem, 131080bv64) == 131080bv64); + free ensures (memory_load32_le(mem, 2324bv64) == 131073bv32); + free ensures (memory_load64_le(mem, 130416bv64) == 2256bv64); + free ensures (memory_load64_le(mem, 130424bv64) == 2176bv64); + free ensures (memory_load64_le(mem, 131024bv64) == 131100bv64); + free ensures (memory_load64_le(mem, 131032bv64) == 131096bv64); + free ensures (memory_load64_le(mem, 131048bv64) == 131092bv64); + free ensures (memory_load64_le(mem, 131056bv64) == 2260bv64); + free ensures (memory_load64_le(mem, 131080bv64) == 131080bv64); -implementation main_1876() +implementation main() { - var Gamma_load18: bool; - var Gamma_load19: bool; - var Gamma_load20: bool; - var Gamma_load21: bool; - var Gamma_load22: bool; - var Gamma_load23: bool; - var Gamma_load24: bool; - var load18: bv64; - var load19: bv64; - var load20: bv32; - var load21: bv32; - var load22: bv64; - var load23: bv32; - var load24: bv32; + var $load$18: bv64; + var $load$19: bv64; + var $load$20: bv32; + var $load$21: bv64; + var Gamma_$load$18: bool; + var Gamma_$load$19: bool; + var Gamma_$load$20: bool; + var Gamma_$load$21: bool; lmain: assume {:captureState "lmain"} true; - R8, Gamma_R8 := 65536bv64, true; + R8, Gamma_R8 := 126976bv64, true; + R9, Gamma_R9 := 126976bv64, true; + R10, Gamma_R10 := 126976bv64, true; call rely(); - load18, Gamma_load18 := memory_load64_le(mem, bvadd64(R8, 4032bv64)), (gamma_load64(Gamma_mem, bvadd64(R8, 4032bv64)) || L(mem, bvadd64(R8, 4032bv64))); - R8, Gamma_R8 := load18, Gamma_load18; - R10, Gamma_R10 := 65536bv64, true; + $load$18, Gamma_$load$18 := memory_load64_le(mem, bvadd64(R8, 4072bv64)), (gamma_load64(Gamma_mem, bvadd64(R8, 4072bv64)) || L(mem, bvadd64(R8, 4072bv64))); + R8, Gamma_R8 := $load$18, Gamma_$load$18; call rely(); - load19, Gamma_load19 := memory_load64_le(mem, bvadd64(R10, 4048bv64)), (gamma_load64(Gamma_mem, bvadd64(R10, 4048bv64)) || L(mem, bvadd64(R10, 4048bv64))); - R10, Gamma_R10 := load19, Gamma_load19; - call rely(); - load20, Gamma_load20 := memory_load32_le(mem, R10), (gamma_load32(Gamma_mem, R10) || L(mem, R10)); - R9, Gamma_R9 := zero_extend32_32(load20), Gamma_load20; - call rely(); - assert (L(mem, R8) ==> Gamma_R9); - mem, Gamma_mem := memory_store32_le(mem, R8, R9[32:0]), gamma_store32(Gamma_mem, R8, Gamma_R9); - assume {:captureState "%00000313"} true; + $load$19, Gamma_$load$19 := memory_load64_le(mem, bvadd64(R9, 4056bv64)), (gamma_load64(Gamma_mem, bvadd64(R9, 4056bv64)) || L(mem, bvadd64(R9, 4056bv64))); + R9, Gamma_R9 := $load$19, Gamma_$load$19; R0, Gamma_R0 := 0bv64, true; call rely(); - assert (L(mem, R8) ==> true); - mem, Gamma_mem := memory_store32_le(mem, R8, 0bv32), gamma_store32(Gamma_mem, R8, true); - assume {:captureState "%0000031f"} true; - call rely(); - load21, Gamma_load21 := memory_load32_le(mem, R8), (gamma_load32(Gamma_mem, R8) || L(mem, R8)); - R11, Gamma_R11 := zero_extend32_32(load21), Gamma_load21; - R9, Gamma_R9 := 65536bv64, true; - call rely(); - load22, Gamma_load22 := memory_load64_le(mem, bvadd64(R9, 4024bv64)), (gamma_load64(Gamma_mem, bvadd64(R9, 4024bv64)) || L(mem, bvadd64(R9, 4024bv64))); - R9, Gamma_R9 := load22, Gamma_load22; + $load$20, Gamma_$load$20 := memory_load32_le(mem, R8), (gamma_load32(Gamma_mem, R8) || L(mem, R8)); + R8, Gamma_R8 := zero_extend32_32($load$20), Gamma_$load$20; call rely(); - assert (L(mem, R9) ==> Gamma_R11); - mem, Gamma_mem := memory_store32_le(mem, R9, R11[32:0]), gamma_store32(Gamma_mem, R9, Gamma_R11); - assume {:captureState "%0000033a"} true; - call rely(); - load23, Gamma_load23 := memory_load32_le(mem, R10), (gamma_load32(Gamma_mem, R10) || L(mem, R10)); - R10, Gamma_R10 := zero_extend32_32(load23), Gamma_load23; - call rely(); - assert (L(mem, R8) ==> Gamma_R10); - mem, Gamma_mem := memory_store32_le(mem, R8, R10[32:0]), gamma_store32(Gamma_mem, R8, Gamma_R10); - assume {:captureState "%00000349"} true; - call rely(); - load24, Gamma_load24 := memory_load32_le(mem, R8), (gamma_load32(Gamma_mem, R8) || L(mem, R8)); - R8, Gamma_R8 := zero_extend32_32(load24), Gamma_load24; + $load$21, Gamma_$load$21 := memory_load64_le(mem, bvadd64(R10, 4048bv64)), (gamma_load64(Gamma_mem, bvadd64(R10, 4048bv64)) || L(mem, bvadd64(R10, 4048bv64))); + R10, Gamma_R10 := $load$21, Gamma_$load$21; call rely(); assert (L(mem, R9) ==> Gamma_R8); mem, Gamma_mem := memory_store32_le(mem, R9, R8[32:0]), gamma_store32(Gamma_mem, R9, Gamma_R8); - assume {:captureState "%00000358"} true; - goto main_1876_basil_return; - main_1876_basil_return: - assume {:captureState "main_1876_basil_return"} true; + assume {:captureState "%0000029c"} true; + call rely(); + assert (L(mem, R10) ==> Gamma_R8); + mem, Gamma_mem := memory_store32_le(mem, R10, R8[32:0]), gamma_store32(Gamma_mem, R10, Gamma_R8); + assume {:captureState "%000002a0"} true; + goto main_basil_return; + main_basil_return: + assume {:captureState "main_basil_return"} true; return; } diff --git a/src/test/incorrect/basicassign/clang_pic/basicassign.gts b/src/test/incorrect/basicassign/clang_pic/basicassign.gts deleted file mode 100644 index bf28d7a06..000000000 Binary files a/src/test/incorrect/basicassign/clang_pic/basicassign.gts and /dev/null differ diff --git a/src/test/incorrect/basicassign/clang_pic/basicassign.md5sum b/src/test/incorrect/basicassign/clang_pic/basicassign.md5sum new file mode 100644 index 000000000..91dcd63f8 --- /dev/null +++ b/src/test/incorrect/basicassign/clang_pic/basicassign.md5sum @@ -0,0 +1,5 @@ +ff1e173d8361422d2ba7321e24376a7a incorrect/basicassign/clang_pic/a.out +833f56d05e319f0be67bb420e58fb5d3 incorrect/basicassign/clang_pic/basicassign.adt +697b5a4cc2d910814fb189e1dee94e04 incorrect/basicassign/clang_pic/basicassign.bir +f5808e858ffb337a55b704d64f05c521 incorrect/basicassign/clang_pic/basicassign.relf +c5bfa878e264f0a742c741b1c421e57c incorrect/basicassign/clang_pic/basicassign.gts diff --git a/src/test/incorrect/basicassign/clang_pic/basicassign.relf b/src/test/incorrect/basicassign/clang_pic/basicassign.relf deleted file mode 100644 index 191cc7ecc..000000000 --- a/src/test/incorrect/basicassign/clang_pic/basicassign.relf +++ /dev/null @@ -1,128 +0,0 @@ - -Relocation section '.rela.dyn' at offset 0x460 contains 11 entries: - Offset Info Type Symbol's Value Symbol's Name + Addend -0000000000010db0 0000000000000403 R_AARCH64_RELATIVE 750 -0000000000010db8 0000000000000403 R_AARCH64_RELATIVE 700 -0000000000010fb8 0000000000000403 R_AARCH64_RELATIVE 1103c -0000000000010fc0 0000000000000403 R_AARCH64_RELATIVE 11038 -0000000000010fd0 0000000000000403 R_AARCH64_RELATIVE 11034 -0000000000010fd8 0000000000000403 R_AARCH64_RELATIVE 754 -0000000000011028 0000000000000403 R_AARCH64_RELATIVE 11028 -0000000000010fa8 0000000400000401 R_AARCH64_GLOB_DAT 0000000000000000 _ITM_deregisterTMCloneTable + 0 -0000000000010fb0 0000000500000401 R_AARCH64_GLOB_DAT 0000000000000000 __cxa_finalize@GLIBC_2.17 + 0 -0000000000010fc8 0000000600000401 R_AARCH64_GLOB_DAT 0000000000000000 __gmon_start__ + 0 -0000000000010fe0 0000000800000401 R_AARCH64_GLOB_DAT 0000000000000000 _ITM_registerTMCloneTable + 0 - -Relocation section '.rela.plt' at offset 0x568 contains 4 entries: - Offset Info Type Symbol's Value Symbol's Name + Addend -0000000000011000 0000000300000402 R_AARCH64_JUMP_SLOT 0000000000000000 __libc_start_main@GLIBC_2.34 + 0 -0000000000011008 0000000500000402 R_AARCH64_JUMP_SLOT 0000000000000000 __cxa_finalize@GLIBC_2.17 + 0 -0000000000011010 0000000600000402 R_AARCH64_JUMP_SLOT 0000000000000000 __gmon_start__ + 0 -0000000000011018 0000000700000402 R_AARCH64_JUMP_SLOT 0000000000000000 abort@GLIBC_2.17 + 0 - -Symbol table '.dynsym' contains 9 entries: - Num: Value Size Type Bind Vis Ndx Name - 0: 0000000000000000 0 NOTYPE LOCAL DEFAULT UND - 1: 00000000000005c8 0 SECTION LOCAL DEFAULT 11 .init - 2: 0000000000011020 0 SECTION LOCAL DEFAULT 23 .data - 3: 0000000000000000 0 FUNC GLOBAL DEFAULT UND __libc_start_main@GLIBC_2.34 (2) - 4: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_deregisterTMCloneTable - 5: 0000000000000000 0 FUNC WEAK DEFAULT UND __cxa_finalize@GLIBC_2.17 (3) - 6: 0000000000000000 0 NOTYPE WEAK DEFAULT UND __gmon_start__ - 7: 0000000000000000 0 FUNC GLOBAL DEFAULT UND abort@GLIBC_2.17 (3) - 8: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_registerTMCloneTable - -Symbol table '.symtab' contains 92 entries: - Num: Value Size Type Bind Vis Ndx Name - 0: 0000000000000000 0 NOTYPE LOCAL DEFAULT UND - 1: 0000000000000238 0 SECTION LOCAL DEFAULT 1 .interp - 2: 0000000000000254 0 SECTION LOCAL DEFAULT 2 .note.gnu.build-id - 3: 0000000000000278 0 SECTION LOCAL DEFAULT 3 .note.ABI-tag - 4: 0000000000000298 0 SECTION LOCAL DEFAULT 4 .gnu.hash - 5: 00000000000002b8 0 SECTION LOCAL DEFAULT 5 .dynsym - 6: 0000000000000390 0 SECTION LOCAL DEFAULT 6 .dynstr - 7: 000000000000041e 0 SECTION LOCAL DEFAULT 7 .gnu.version - 8: 0000000000000430 0 SECTION LOCAL DEFAULT 8 .gnu.version_r - 9: 0000000000000460 0 SECTION LOCAL DEFAULT 9 .rela.dyn - 10: 0000000000000568 0 SECTION LOCAL DEFAULT 10 .rela.plt - 11: 00000000000005c8 0 SECTION LOCAL DEFAULT 11 .init - 12: 00000000000005e0 0 SECTION LOCAL DEFAULT 12 .plt - 13: 0000000000000640 0 SECTION LOCAL DEFAULT 13 .text - 14: 0000000000000798 0 SECTION LOCAL DEFAULT 14 .fini - 15: 00000000000007ac 0 SECTION LOCAL DEFAULT 15 .rodata - 16: 00000000000007b0 0 SECTION LOCAL DEFAULT 16 .eh_frame_hdr - 17: 00000000000007f0 0 SECTION LOCAL DEFAULT 17 .eh_frame - 18: 0000000000010db0 0 SECTION LOCAL DEFAULT 18 .init_array - 19: 0000000000010db8 0 SECTION LOCAL DEFAULT 19 .fini_array - 20: 0000000000010dc0 0 SECTION LOCAL DEFAULT 20 .dynamic - 21: 0000000000010fa0 0 SECTION LOCAL DEFAULT 21 .got - 22: 0000000000010fe8 0 SECTION LOCAL DEFAULT 22 .got.plt - 23: 0000000000011020 0 SECTION LOCAL DEFAULT 23 .data - 24: 0000000000011030 0 SECTION LOCAL DEFAULT 24 .bss - 25: 0000000000000000 0 SECTION LOCAL DEFAULT 25 .comment - 26: 0000000000000000 0 FILE LOCAL DEFAULT ABS Scrt1.o - 27: 0000000000000278 0 NOTYPE LOCAL DEFAULT 3 $d - 28: 0000000000000278 32 OBJECT LOCAL DEFAULT 3 __abi_tag - 29: 0000000000000640 0 NOTYPE LOCAL DEFAULT 13 $x - 30: 0000000000000804 0 NOTYPE LOCAL DEFAULT 17 $d - 31: 00000000000007ac 0 NOTYPE LOCAL DEFAULT 15 $d - 32: 0000000000000000 0 FILE LOCAL DEFAULT ABS crti.o - 33: 0000000000000674 0 NOTYPE LOCAL DEFAULT 13 $x - 34: 0000000000000674 20 FUNC LOCAL DEFAULT 13 call_weak_fn - 35: 00000000000005c8 0 NOTYPE LOCAL DEFAULT 11 $x - 36: 0000000000000798 0 NOTYPE LOCAL DEFAULT 14 $x - 37: 0000000000000000 0 FILE LOCAL DEFAULT ABS crtn.o - 38: 00000000000005d8 0 NOTYPE LOCAL DEFAULT 11 $x - 39: 00000000000007a4 0 NOTYPE LOCAL DEFAULT 14 $x - 40: 0000000000000000 0 FILE LOCAL DEFAULT ABS crtstuff.c - 41: 0000000000000690 0 NOTYPE LOCAL DEFAULT 13 $x - 42: 0000000000000690 0 FUNC LOCAL DEFAULT 13 deregister_tm_clones - 43: 00000000000006c0 0 FUNC LOCAL DEFAULT 13 register_tm_clones - 44: 0000000000011028 0 NOTYPE LOCAL DEFAULT 23 $d - 45: 0000000000000700 0 FUNC LOCAL DEFAULT 13 __do_global_dtors_aux - 46: 0000000000011030 1 OBJECT LOCAL DEFAULT 24 completed.0 - 47: 0000000000010db8 0 NOTYPE LOCAL DEFAULT 19 $d - 48: 0000000000010db8 0 OBJECT LOCAL DEFAULT 19 __do_global_dtors_aux_fini_array_entry - 49: 0000000000000750 0 FUNC LOCAL DEFAULT 13 frame_dummy - 50: 0000000000010db0 0 NOTYPE LOCAL DEFAULT 18 $d - 51: 0000000000010db0 0 OBJECT LOCAL DEFAULT 18 __frame_dummy_init_array_entry - 52: 0000000000000818 0 NOTYPE LOCAL DEFAULT 17 $d - 53: 0000000000011030 0 NOTYPE LOCAL DEFAULT 24 $d - 54: 0000000000000000 0 FILE LOCAL DEFAULT ABS basicassign.c - 55: 0000000000000754 0 NOTYPE LOCAL DEFAULT 13 $x.0 - 56: 0000000000011034 0 NOTYPE LOCAL DEFAULT 24 $d.1 - 57: 000000000000002a 0 NOTYPE LOCAL DEFAULT 25 $d.2 - 58: 0000000000000878 0 NOTYPE LOCAL DEFAULT 17 $d.3 - 59: 0000000000000000 0 FILE LOCAL DEFAULT ABS crtstuff.c - 60: 00000000000008a0 0 NOTYPE LOCAL DEFAULT 17 $d - 61: 00000000000008a0 0 OBJECT LOCAL DEFAULT 17 __FRAME_END__ - 62: 0000000000000000 0 FILE LOCAL DEFAULT ABS - 63: 0000000000010dc0 0 OBJECT LOCAL DEFAULT ABS _DYNAMIC - 64: 00000000000007b0 0 NOTYPE LOCAL DEFAULT 16 __GNU_EH_FRAME_HDR - 65: 0000000000010fa0 0 OBJECT LOCAL DEFAULT ABS _GLOBAL_OFFSET_TABLE_ - 66: 00000000000005e0 0 NOTYPE LOCAL DEFAULT 12 $x - 67: 0000000000000000 0 FUNC GLOBAL DEFAULT UND __libc_start_main@GLIBC_2.34 - 68: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_deregisterTMCloneTable - 69: 0000000000011020 0 NOTYPE WEAK DEFAULT 23 data_start - 70: 0000000000011030 0 NOTYPE GLOBAL DEFAULT 24 __bss_start__ - 71: 0000000000000000 0 FUNC WEAK DEFAULT UND __cxa_finalize@GLIBC_2.17 - 72: 0000000000011040 0 NOTYPE GLOBAL DEFAULT 24 _bss_end__ - 73: 0000000000011030 0 NOTYPE GLOBAL DEFAULT 23 _edata - 74: 000000000001103c 4 OBJECT GLOBAL DEFAULT 24 z - 75: 0000000000011038 4 OBJECT GLOBAL DEFAULT 24 x - 76: 0000000000000798 0 FUNC GLOBAL HIDDEN 14 _fini - 77: 0000000000011040 0 NOTYPE GLOBAL DEFAULT 24 __bss_end__ - 78: 0000000000011020 0 NOTYPE GLOBAL DEFAULT 23 __data_start - 79: 0000000000000000 0 NOTYPE WEAK DEFAULT UND __gmon_start__ - 80: 0000000000011028 0 OBJECT GLOBAL HIDDEN 23 __dso_handle - 81: 0000000000000000 0 FUNC GLOBAL DEFAULT UND abort@GLIBC_2.17 - 82: 00000000000007ac 4 OBJECT GLOBAL DEFAULT 15 _IO_stdin_used - 83: 0000000000011034 4 OBJECT GLOBAL DEFAULT 24 secret - 84: 0000000000011040 0 NOTYPE GLOBAL DEFAULT 24 _end - 85: 0000000000000640 52 FUNC GLOBAL DEFAULT 13 _start - 86: 0000000000011040 0 NOTYPE GLOBAL DEFAULT 24 __end__ - 87: 0000000000011030 0 NOTYPE GLOBAL DEFAULT 24 __bss_start - 88: 0000000000000754 68 FUNC GLOBAL DEFAULT 13 main - 89: 0000000000011030 0 OBJECT GLOBAL HIDDEN 23 __TMC_END__ - 90: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_registerTMCloneTable - 91: 00000000000005c8 0 FUNC GLOBAL HIDDEN 11 _init diff --git a/src/test/incorrect/basicassign/clang_pic/basicassign_gtirb.expected b/src/test/incorrect/basicassign/clang_pic/basicassign_gtirb.expected index 7bdfd5b88..a126dcaaa 100644 --- a/src/test/incorrect/basicassign/clang_pic/basicassign_gtirb.expected +++ b/src/test/incorrect/basicassign/clang_pic/basicassign_gtirb.expected @@ -1,21 +1,19 @@ var {:extern} Gamma_R0: bool; var {:extern} Gamma_R10: bool; -var {:extern} Gamma_R11: bool; var {:extern} Gamma_R8: bool; var {:extern} Gamma_R9: bool; var {:extern} Gamma_mem: [bv64]bool; var {:extern} R0: bv64; var {:extern} R10: bv64; -var {:extern} R11: bv64; var {:extern} R8: bv64; var {:extern} R9: bv64; var {:extern} mem: [bv64]bv8; const {:extern} $secret_addr: bv64; -axiom ($secret_addr == 69684bv64); +axiom ($secret_addr == 131092bv64); const {:extern} $x_addr: bv64; -axiom ($x_addr == 69688bv64); +axiom ($x_addr == 131096bv64); const {:extern} $z_addr: bv64; -axiom ($z_addr == 69692bv64); +axiom ($z_addr == 131100bv64); function {:extern} L(mem$in: [bv64]bv8, index: bv64) returns (bool) { (if (index == $z_addr) then true else (if (index == $secret_addr) then false else (if (index == $x_addr) then false else false))) } @@ -50,14 +48,14 @@ procedure {:extern} rely(); modifies Gamma_mem, mem; ensures (forall i: bv64 :: (((mem[i] == old(mem[i])) ==> (Gamma_mem[i] == old(Gamma_mem[i]))))); ensures (memory_load32_le(mem, $x_addr) == old(memory_load32_le(mem, $x_addr))); - free ensures (memory_load32_le(mem, 1964bv64) == 131073bv32); - free ensures (memory_load64_le(mem, 69040bv64) == 1872bv64); - free ensures (memory_load64_le(mem, 69048bv64) == 1792bv64); - free ensures (memory_load64_le(mem, 69560bv64) == 69692bv64); - free ensures (memory_load64_le(mem, 69568bv64) == 69688bv64); - free ensures (memory_load64_le(mem, 69584bv64) == 69684bv64); - free ensures (memory_load64_le(mem, 69592bv64) == 1876bv64); - free ensures (memory_load64_le(mem, 69672bv64) == 69672bv64); + free ensures (memory_load32_le(mem, 2324bv64) == 131073bv32); + free ensures (memory_load64_le(mem, 130416bv64) == 2256bv64); + free ensures (memory_load64_le(mem, 130424bv64) == 2176bv64); + free ensures (memory_load64_le(mem, 131024bv64) == 131100bv64); + free ensures (memory_load64_le(mem, 131032bv64) == 131096bv64); + free ensures (memory_load64_le(mem, 131048bv64) == 131092bv64); + free ensures (memory_load64_le(mem, 131056bv64) == 2260bv64); + free ensures (memory_load64_le(mem, 131080bv64) == 131080bv64); procedure {:extern} rely_transitive(); modifies Gamma_mem, mem; @@ -79,93 +77,66 @@ implementation {:extern} rely_reflexive() procedure {:extern} guarantee_reflexive(); modifies Gamma_mem, mem; -procedure main_1876(); - modifies Gamma_R0, Gamma_R10, Gamma_R11, Gamma_R8, Gamma_R9, Gamma_mem, R0, R10, R11, R8, R9, mem; - free requires (memory_load64_le(mem, 69664bv64) == 0bv64); - free requires (memory_load64_le(mem, 69672bv64) == 69672bv64); - free requires (memory_load32_le(mem, 1964bv64) == 131073bv32); - free requires (memory_load64_le(mem, 69040bv64) == 1872bv64); - free requires (memory_load64_le(mem, 69048bv64) == 1792bv64); - free requires (memory_load64_le(mem, 69560bv64) == 69692bv64); - free requires (memory_load64_le(mem, 69568bv64) == 69688bv64); - free requires (memory_load64_le(mem, 69584bv64) == 69684bv64); - free requires (memory_load64_le(mem, 69592bv64) == 1876bv64); - free requires (memory_load64_le(mem, 69672bv64) == 69672bv64); - free ensures (memory_load32_le(mem, 1964bv64) == 131073bv32); - free ensures (memory_load64_le(mem, 69040bv64) == 1872bv64); - free ensures (memory_load64_le(mem, 69048bv64) == 1792bv64); - free ensures (memory_load64_le(mem, 69560bv64) == 69692bv64); - free ensures (memory_load64_le(mem, 69568bv64) == 69688bv64); - free ensures (memory_load64_le(mem, 69584bv64) == 69684bv64); - free ensures (memory_load64_le(mem, 69592bv64) == 1876bv64); - free ensures (memory_load64_le(mem, 69672bv64) == 69672bv64); +procedure main(); + modifies Gamma_R0, Gamma_R10, Gamma_R8, Gamma_R9, Gamma_mem, R0, R10, R8, R9, mem; + free requires (memory_load64_le(mem, 131072bv64) == 0bv64); + free requires (memory_load64_le(mem, 131080bv64) == 131080bv64); + free requires (memory_load32_le(mem, 2324bv64) == 131073bv32); + free requires (memory_load64_le(mem, 130416bv64) == 2256bv64); + free requires (memory_load64_le(mem, 130424bv64) == 2176bv64); + free requires (memory_load64_le(mem, 131024bv64) == 131100bv64); + free requires (memory_load64_le(mem, 131032bv64) == 131096bv64); + free requires (memory_load64_le(mem, 131048bv64) == 131092bv64); + free requires (memory_load64_le(mem, 131056bv64) == 2260bv64); + free requires (memory_load64_le(mem, 131080bv64) == 131080bv64); + free ensures (memory_load32_le(mem, 2324bv64) == 131073bv32); + free ensures (memory_load64_le(mem, 130416bv64) == 2256bv64); + free ensures (memory_load64_le(mem, 130424bv64) == 2176bv64); + free ensures (memory_load64_le(mem, 131024bv64) == 131100bv64); + free ensures (memory_load64_le(mem, 131032bv64) == 131096bv64); + free ensures (memory_load64_le(mem, 131048bv64) == 131092bv64); + free ensures (memory_load64_le(mem, 131056bv64) == 2260bv64); + free ensures (memory_load64_le(mem, 131080bv64) == 131080bv64); -implementation main_1876() +implementation main() { - var Gamma_load1: bool; - var Gamma_load2: bool; - var Gamma_load3: bool; - var Gamma_load4: bool; - var Gamma_load5: bool; - var Gamma_load6: bool; - var Gamma_load7: bool; - var load1: bv64; - var load2: bv64; - var load3: bv32; - var load4: bv32; - var load5: bv64; - var load6: bv32; - var load7: bv32; - main_1876__0__fMW2XwMARUyjjFoB482nbQ: - assume {:captureState "main_1876__0__fMW2XwMARUyjjFoB482nbQ"} true; - R8, Gamma_R8 := 65536bv64, true; + var $load1: bv64; + var $load2: bv64; + var $load3: bv32; + var $load4: bv64; + var Gamma_$load1: bool; + var Gamma_$load2: bool; + var Gamma_$load3: bool; + var Gamma_$load4: bool; + $main$__0__$TxTRm4kpQiq_Xgistx~xbQ: + assume {:captureState "$main$__0__$TxTRm4kpQiq_Xgistx~xbQ"} true; + R8, Gamma_R8 := 126976bv64, true; + R9, Gamma_R9 := 126976bv64, true; + R10, Gamma_R10 := 126976bv64, true; call rely(); - load1, Gamma_load1 := memory_load64_le(mem, bvadd64(R8, 4032bv64)), (gamma_load64(Gamma_mem, bvadd64(R8, 4032bv64)) || L(mem, bvadd64(R8, 4032bv64))); - R8, Gamma_R8 := load1, Gamma_load1; - R10, Gamma_R10 := 65536bv64, true; + $load1, Gamma_$load1 := memory_load64_le(mem, bvadd64(R8, 4072bv64)), (gamma_load64(Gamma_mem, bvadd64(R8, 4072bv64)) || L(mem, bvadd64(R8, 4072bv64))); + R8, Gamma_R8 := $load1, Gamma_$load1; call rely(); - load2, Gamma_load2 := memory_load64_le(mem, bvadd64(R10, 4048bv64)), (gamma_load64(Gamma_mem, bvadd64(R10, 4048bv64)) || L(mem, bvadd64(R10, 4048bv64))); - R10, Gamma_R10 := load2, Gamma_load2; - call rely(); - load3, Gamma_load3 := memory_load32_le(mem, R10), (gamma_load32(Gamma_mem, R10) || L(mem, R10)); - R9, Gamma_R9 := zero_extend32_32(load3), Gamma_load3; - call rely(); - assert (L(mem, R8) ==> Gamma_R9); - mem, Gamma_mem := memory_store32_le(mem, R8, R9[32:0]), gamma_store32(Gamma_mem, R8, Gamma_R9); - assume {:captureState "1896_0"} true; + $load2, Gamma_$load2 := memory_load64_le(mem, bvadd64(R9, 4056bv64)), (gamma_load64(Gamma_mem, bvadd64(R9, 4056bv64)) || L(mem, bvadd64(R9, 4056bv64))); + R9, Gamma_R9 := $load2, Gamma_$load2; R0, Gamma_R0 := 0bv64, true; call rely(); - assert (L(mem, R8) ==> true); - mem, Gamma_mem := memory_store32_le(mem, R8, 0bv32), gamma_store32(Gamma_mem, R8, true); - assume {:captureState "1904_0"} true; - call rely(); - load4, Gamma_load4 := memory_load32_le(mem, R8), (gamma_load32(Gamma_mem, R8) || L(mem, R8)); - R11, Gamma_R11 := zero_extend32_32(load4), Gamma_load4; - R9, Gamma_R9 := 65536bv64, true; - call rely(); - load5, Gamma_load5 := memory_load64_le(mem, bvadd64(R9, 4024bv64)), (gamma_load64(Gamma_mem, bvadd64(R9, 4024bv64)) || L(mem, bvadd64(R9, 4024bv64))); - R9, Gamma_R9 := load5, Gamma_load5; + $load3, Gamma_$load3 := memory_load32_le(mem, R8), (gamma_load32(Gamma_mem, R8) || L(mem, R8)); + R8, Gamma_R8 := zero_extend32_32($load3), Gamma_$load3; call rely(); - assert (L(mem, R9) ==> Gamma_R11); - mem, Gamma_mem := memory_store32_le(mem, R9, R11[32:0]), gamma_store32(Gamma_mem, R9, Gamma_R11); - assume {:captureState "1920_0"} true; - call rely(); - load6, Gamma_load6 := memory_load32_le(mem, R10), (gamma_load32(Gamma_mem, R10) || L(mem, R10)); - R10, Gamma_R10 := zero_extend32_32(load6), Gamma_load6; - call rely(); - assert (L(mem, R8) ==> Gamma_R10); - mem, Gamma_mem := memory_store32_le(mem, R8, R10[32:0]), gamma_store32(Gamma_mem, R8, Gamma_R10); - assume {:captureState "1928_0"} true; - call rely(); - load7, Gamma_load7 := memory_load32_le(mem, R8), (gamma_load32(Gamma_mem, R8) || L(mem, R8)); - R8, Gamma_R8 := zero_extend32_32(load7), Gamma_load7; + $load4, Gamma_$load4 := memory_load64_le(mem, bvadd64(R10, 4048bv64)), (gamma_load64(Gamma_mem, bvadd64(R10, 4048bv64)) || L(mem, bvadd64(R10, 4048bv64))); + R10, Gamma_R10 := $load4, Gamma_$load4; call rely(); assert (L(mem, R9) ==> Gamma_R8); mem, Gamma_mem := memory_store32_le(mem, R9, R8[32:0]), gamma_store32(Gamma_mem, R9, Gamma_R8); - assume {:captureState "1936_0"} true; - goto main_1876_basil_return; - main_1876_basil_return: - assume {:captureState "main_1876_basil_return"} true; + assume {:captureState "2292$0"} true; + call rely(); + assert (L(mem, R10) ==> Gamma_R8); + mem, Gamma_mem := memory_store32_le(mem, R10, R8[32:0]), gamma_store32(Gamma_mem, R10, Gamma_R8); + assume {:captureState "2296$0"} true; + goto main_basil_return; + main_basil_return: + assume {:captureState "main_basil_return"} true; return; } diff --git a/src/test/incorrect/basicassign/gcc/basicassign.adt b/src/test/incorrect/basicassign/gcc/basicassign.adt deleted file mode 100644 index bf26c687d..000000000 --- a/src/test/incorrect/basicassign/gcc/basicassign.adt +++ /dev/null @@ -1,557 +0,0 @@ -Project(Attrs([Attr("filename","\"gcc/basicassign.out\""), -Attr("image-specification","(declare abi (name str))\n(declare arch (name str))\n(declare base-address (addr int))\n(declare bias (off int))\n(declare bits (size int))\n(declare code-region (addr int) (size int) (off int))\n(declare code-start (addr int))\n(declare entry-point (addr int))\n(declare external-reference (addr int) (name str))\n(declare format (name str))\n(declare is-executable (flag bool))\n(declare is-little-endian (flag bool))\n(declare llvm:base-address (addr int))\n(declare llvm:code-entry (name str) (off int) (size int))\n(declare llvm:coff-import-library (name str))\n(declare llvm:coff-virtual-section-header (name str) (addr int) (size int))\n(declare llvm:elf-program-header (name str) (off int) (size int))\n(declare llvm:elf-program-header-flags (name str) (ld bool) (r bool) \n (w bool) (x bool))\n(declare llvm:elf-virtual-program-header (name str) (addr int) (size int))\n(declare llvm:entry-point (addr int))\n(declare llvm:macho-symbol (name str) (value int))\n(declare llvm:name-reference (at int) (name str))\n(declare llvm:relocation (at int) (addr int))\n(declare llvm:section-entry (name str) (addr int) (size int) (off int))\n(declare llvm:section-flags (name str) (r bool) (w bool) (x bool))\n(declare llvm:segment-command (name str) (off int) (size int))\n(declare llvm:segment-command-flags (name str) (r bool) (w bool) (x bool))\n(declare llvm:symbol-entry (name str) (addr int) (size int) (off int)\n (value int))\n(declare llvm:virtual-segment-command (name str) (addr int) (size int))\n(declare mapped (addr int) (size int) (off int))\n(declare named-region (addr int) (size int) (name str))\n(declare named-symbol (addr int) (name str))\n(declare require (name str))\n(declare section (addr int) (size int))\n(declare segment (addr int) (size int) (r bool) (w bool) (x bool))\n(declare subarch (name str))\n(declare symbol-chunk (addr int) (size int) (root int))\n(declare symbol-value (addr int) (value int))\n(declare system (name str))\n(declare vendor (name str))\n\n(abi unknown)\n(arch aarch64)\n(base-address 0)\n(bias 0)\n(bits 64)\n(code-region 1928 20 1928)\n(code-region 1536 392 1536)\n(code-region 1440 96 1440)\n(code-region 1408 24 1408)\n(code-start 1588)\n(code-start 1536)\n(code-start 1812)\n(entry-point 1536)\n(external-reference 69592 _ITM_deregisterTMCloneTable)\n(external-reference 69600 __cxa_finalize)\n(external-reference 69608 __gmon_start__)\n(external-reference 69624 _ITM_registerTMCloneTable)\n(external-reference 69552 __libc_start_main)\n(external-reference 69560 __cxa_finalize)\n(external-reference 69568 __gmon_start__)\n(external-reference 69576 abort)\n(format elf)\n(is-executable true)\n(is-little-endian true)\n(llvm:base-address 0)\n(llvm:code-entry abort 0 0)\n(llvm:code-entry __cxa_finalize 0 0)\n(llvm:code-entry __libc_start_main 0 0)\n(llvm:code-entry _init 1408 0)\n(llvm:code-entry main 1812 116)\n(llvm:code-entry _start 1536 52)\n(llvm:code-entry abort@GLIBC_2.17 0 0)\n(llvm:code-entry _fini 1928 0)\n(llvm:code-entry __cxa_finalize@GLIBC_2.17 0 0)\n(llvm:code-entry __libc_start_main@GLIBC_2.34 0 0)\n(llvm:code-entry frame_dummy 1808 0)\n(llvm:code-entry __do_global_dtors_aux 1728 0)\n(llvm:code-entry register_tm_clones 1664 0)\n(llvm:code-entry deregister_tm_clones 1616 0)\n(llvm:code-entry call_weak_fn 1588 20)\n(llvm:code-entry .fini 1928 20)\n(llvm:code-entry .text 1536 392)\n(llvm:code-entry .plt 1440 96)\n(llvm:code-entry .init 1408 24)\n(llvm:elf-program-header 08 3480 616)\n(llvm:elf-program-header 07 0 0)\n(llvm:elf-program-header 06 1952 60)\n(llvm:elf-program-header 05 596 68)\n(llvm:elf-program-header 04 3496 496)\n(llvm:elf-program-header 03 3480 632)\n(llvm:elf-program-header 02 0 2176)\n(llvm:elf-program-header 01 568 27)\n(llvm:elf-program-header 00 64 504)\n(llvm:elf-program-header-flags 08 false true false false)\n(llvm:elf-program-header-flags 07 false true true false)\n(llvm:elf-program-header-flags 06 false true false false)\n(llvm:elf-program-header-flags 05 false true false false)\n(llvm:elf-program-header-flags 04 false true true false)\n(llvm:elf-program-header-flags 03 true true true false)\n(llvm:elf-program-header-flags 02 true true false true)\n(llvm:elf-program-header-flags 01 false true false false)\n(llvm:elf-program-header-flags 00 false true false false)\n(llvm:elf-virtual-program-header 08 69016 616)\n(llvm:elf-virtual-program-header 07 0 0)\n(llvm:elf-virtual-program-header 06 1952 60)\n(llvm:elf-virtual-program-header 05 596 68)\n(llvm:elf-virtual-program-header 04 69032 496)\n(llvm:elf-virtual-program-header 03 69016 648)\n(llvm:elf-virtual-program-header 02 0 2176)\n(llvm:elf-virtual-program-header 01 568 27)\n(llvm:elf-virtual-program-header 00 64 504)\n(llvm:entry-point 1536)\n(llvm:name-reference 69576 abort)\n(llvm:name-reference 69568 __gmon_start__)\n(llvm:name-reference 69560 __cxa_finalize)\n(llvm:name-reference 69552 __libc_start_main)\n(llvm:name-reference 69624 _ITM_registerTMCloneTable)\n(llvm:name-reference 69608 __gmon_start__)\n(llvm:name-reference 69600 __cxa_finalize)\n(llvm:name-reference 69592 _ITM_deregisterTMCloneTable)\n(llvm:section-entry .shstrtab 0 250 6876)\n(llvm:section-entry .strtab 0 556 6320)\n(llvm:section-entry .symtab 0 2160 4160)\n(llvm:section-entry .comment 0 43 4112)\n(llvm:section-entry .bss 69648 16 4112)\n(llvm:section-entry .data 69632 16 4096)\n(llvm:section-entry .got 69528 104 3992)\n(llvm:section-entry .dynamic 69032 496 3496)\n(llvm:section-entry .fini_array 69024 8 3488)\n(llvm:section-entry .init_array 69016 8 3480)\n(llvm:section-entry .eh_frame 2016 160 2016)\n(llvm:section-entry .eh_frame_hdr 1952 60 1952)\n(llvm:section-entry .rodata 1948 4 1948)\n(llvm:section-entry .fini 1928 20 1928)\n(llvm:section-entry .text 1536 392 1536)\n(llvm:section-entry .plt 1440 96 1440)\n(llvm:section-entry .init 1408 24 1408)\n(llvm:section-entry .rela.plt 1312 96 1312)\n(llvm:section-entry .rela.dyn 1120 192 1120)\n(llvm:section-entry .gnu.version_r 1072 48 1072)\n(llvm:section-entry .gnu.version 1054 18 1054)\n(llvm:section-entry .dynstr 912 141 912)\n(llvm:section-entry .dynsym 696 216 696)\n(llvm:section-entry .gnu.hash 664 28 664)\n(llvm:section-entry .note.ABI-tag 632 32 632)\n(llvm:section-entry .note.gnu.build-id 596 36 596)\n(llvm:section-entry .interp 568 27 568)\n(llvm:section-flags .shstrtab true false false)\n(llvm:section-flags .strtab true false false)\n(llvm:section-flags .symtab true false false)\n(llvm:section-flags .comment true false false)\n(llvm:section-flags .bss true true false)\n(llvm:section-flags .data true true false)\n(llvm:section-flags .got true true false)\n(llvm:section-flags .dynamic true true false)\n(llvm:section-flags .fini_array true true false)\n(llvm:section-flags .init_array true true false)\n(llvm:section-flags .eh_frame true false false)\n(llvm:section-flags .eh_frame_hdr true false false)\n(llvm:section-flags .rodata true false false)\n(llvm:section-flags .fini true false true)\n(llvm:section-flags .text true false true)\n(llvm:section-flags .plt true false true)\n(llvm:section-flags .init true false true)\n(llvm:section-flags .rela.plt true false false)\n(llvm:section-flags .rela.dyn true false false)\n(llvm:section-flags .gnu.version_r true false false)\n(llvm:section-flags .gnu.version true false false)\n(llvm:section-flags .dynstr true false false)\n(llvm:section-flags .dynsym true false false)\n(llvm:section-flags .gnu.hash true false false)\n(llvm:section-flags .note.ABI-tag true false false)\n(llvm:section-flags .note.gnu.build-id true false false)\n(llvm:section-flags .interp true false false)\n(llvm:symbol-entry abort 0 0 0 0)\n(llvm:symbol-entry __cxa_finalize 0 0 0 0)\n(llvm:symbol-entry __libc_start_main 0 0 0 0)\n(llvm:symbol-entry _init 1408 0 1408 1408)\n(llvm:symbol-entry main 1812 116 1812 1812)\n(llvm:symbol-entry _start 1536 52 1536 1536)\n(llvm:symbol-entry abort@GLIBC_2.17 0 0 0 0)\n(llvm:symbol-entry _fini 1928 0 1928 1928)\n(llvm:symbol-entry __cxa_finalize@GLIBC_2.17 0 0 0 0)\n(llvm:symbol-entry __libc_start_main@GLIBC_2.34 0 0 0 0)\n(llvm:symbol-entry frame_dummy 1808 0 1808 1808)\n(llvm:symbol-entry __do_global_dtors_aux 1728 0 1728 1728)\n(llvm:symbol-entry register_tm_clones 1664 0 1664 1664)\n(llvm:symbol-entry deregister_tm_clones 1616 0 1616 1616)\n(llvm:symbol-entry call_weak_fn 1588 20 1588 1588)\n(mapped 0 2176 0)\n(mapped 69016 632 3480)\n(named-region 0 2176 02)\n(named-region 69016 648 03)\n(named-region 568 27 .interp)\n(named-region 596 36 .note.gnu.build-id)\n(named-region 632 32 .note.ABI-tag)\n(named-region 664 28 .gnu.hash)\n(named-region 696 216 .dynsym)\n(named-region 912 141 .dynstr)\n(named-region 1054 18 .gnu.version)\n(named-region 1072 48 .gnu.version_r)\n(named-region 1120 192 .rela.dyn)\n(named-region 1312 96 .rela.plt)\n(named-region 1408 24 .init)\n(named-region 1440 96 .plt)\n(named-region 1536 392 .text)\n(named-region 1928 20 .fini)\n(named-region 1948 4 .rodata)\n(named-region 1952 60 .eh_frame_hdr)\n(named-region 2016 160 .eh_frame)\n(named-region 69016 8 .init_array)\n(named-region 69024 8 .fini_array)\n(named-region 69032 496 .dynamic)\n(named-region 69528 104 .got)\n(named-region 69632 16 .data)\n(named-region 69648 16 .bss)\n(named-region 0 43 .comment)\n(named-region 0 2160 .symtab)\n(named-region 0 556 .strtab)\n(named-region 0 250 .shstrtab)\n(named-symbol 1588 call_weak_fn)\n(named-symbol 1616 deregister_tm_clones)\n(named-symbol 1664 register_tm_clones)\n(named-symbol 1728 __do_global_dtors_aux)\n(named-symbol 1808 frame_dummy)\n(named-symbol 0 __libc_start_main@GLIBC_2.34)\n(named-symbol 0 __cxa_finalize@GLIBC_2.17)\n(named-symbol 1928 _fini)\n(named-symbol 0 abort@GLIBC_2.17)\n(named-symbol 1536 _start)\n(named-symbol 1812 main)\n(named-symbol 1408 _init)\n(named-symbol 0 __libc_start_main)\n(named-symbol 0 __cxa_finalize)\n(named-symbol 0 abort)\n(require libc.so.6)\n(section 568 27)\n(section 596 36)\n(section 632 32)\n(section 664 28)\n(section 696 216)\n(section 912 141)\n(section 1054 18)\n(section 1072 48)\n(section 1120 192)\n(section 1312 96)\n(section 1408 24)\n(section 1440 96)\n(section 1536 392)\n(section 1928 20)\n(section 1948 4)\n(section 1952 60)\n(section 2016 160)\n(section 69016 8)\n(section 69024 8)\n(section 69032 496)\n(section 69528 104)\n(section 69632 16)\n(section 69648 16)\n(section 0 43)\n(section 0 2160)\n(section 0 556)\n(section 0 250)\n(segment 0 2176 true false true)\n(segment 69016 648 true true false)\n(subarch v8)\n(symbol-chunk 1588 20 1588)\n(symbol-chunk 1536 52 1536)\n(symbol-chunk 1812 116 1812)\n(symbol-value 1588 1588)\n(symbol-value 1616 1616)\n(symbol-value 1664 1664)\n(symbol-value 1728 1728)\n(symbol-value 1808 1808)\n(symbol-value 1928 1928)\n(symbol-value 1536 1536)\n(symbol-value 1812 1812)\n(symbol-value 1408 1408)\n(symbol-value 0 0)\n(system \"\")\n(vendor \"\")\n"), -Attr("abi-name","\"aarch64-linux-gnu-elf\"")]), -Sections([Section(".shstrtab", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x00\x06\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xd8\x1b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x38\x00\x09\x00\x40\x00\x1c\x00\x1b\x00\x06\x00\x00\x00\x04\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x04\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x80\x08\x00\x00\x00\x00\x00\x00\x80\x08\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x01\x00\x00\x00\x06\x00\x00\x00\x98\x0d\x00\x00\x00\x00\x00\x00\x98\x0d"), -Section(".strtab", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x00\x06\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xd8\x1b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x38\x00\x09\x00\x40\x00\x1c\x00\x1b\x00\x06\x00\x00\x00\x04\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x04\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x80\x08\x00\x00\x00\x00\x00\x00\x80\x08\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x01\x00\x00\x00\x06\x00\x00\x00\x98\x0d\x00\x00\x00\x00\x00\x00\x98\x0d\x01\x00\x00\x00\x00\x00\x98\x0d\x01\x00\x00\x00\x00\x00\x78\x02\x00\x00\x00\x00\x00\x00\x88\x02\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x02\x00\x00\x00\x06\x00\x00\x00\xa8\x0d\x00\x00\x00\x00\x00\x00\xa8\x0d\x01\x00\x00\x00\x00\x00\xa8\x0d\x01\x00\x00\x00\x00\x00\xf0\x01\x00\x00\x00\x00\x00\x00\xf0\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x04\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x50\xe5\x74\x64\x04\x00\x00\x00\xa0\x07\x00\x00\x00\x00\x00\x00\xa0\x07\x00\x00\x00\x00\x00\x00\xa0\x07\x00\x00\x00\x00\x00\x00\x3c\x00\x00\x00\x00\x00\x00\x00\x3c\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x51\xe5\x74\x64\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x52\xe5\x74\x64\x04\x00\x00\x00\x98\x0d\x00\x00\x00\x00\x00\x00\x98\x0d\x01\x00\x00\x00\x00\x00\x98\x0d\x01\x00\x00\x00\x00\x00\x68\x02\x00\x00\x00\x00\x00\x00\x68\x02\x00\x00"), -Section(".symtab", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x00\x06\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xd8\x1b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x38\x00\x09\x00\x40\x00\x1c\x00\x1b\x00\x06\x00\x00\x00\x04\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x04\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x80\x08\x00\x00\x00\x00\x00\x00\x80\x08\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x01\x00\x00\x00\x06\x00\x00\x00\x98\x0d\x00\x00\x00\x00\x00\x00\x98\x0d\x01\x00\x00\x00\x00\x00\x98\x0d\x01\x00\x00\x00\x00\x00\x78\x02\x00\x00\x00\x00\x00\x00\x88\x02\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x02\x00\x00\x00\x06\x00\x00\x00\xa8\x0d\x00\x00\x00\x00\x00\x00\xa8\x0d\x01\x00\x00\x00\x00\x00\xa8\x0d\x01\x00\x00\x00\x00\x00\xf0\x01\x00\x00\x00\x00\x00\x00\xf0\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x04\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x50\xe5\x74\x64\x04\x00\x00\x00\xa0\x07\x00\x00\x00\x00\x00\x00\xa0\x07\x00\x00\x00\x00\x00\x00\xa0\x07\x00\x00\x00\x00\x00\x00\x3c\x00\x00\x00\x00\x00\x00\x00\x3c\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x51\xe5\x74\x64\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x52\xe5\x74\x64\x04\x00\x00\x00\x98\x0d\x00\x00\x00\x00\x00\x00\x98\x0d\x01\x00\x00\x00\x00\x00\x98\x0d\x01\x00\x00\x00\x00\x00\x68\x02\x00\x00\x00\x00\x00\x00\x68\x02\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x2f\x6c\x69\x62\x2f\x6c\x64\x2d\x6c\x69\x6e\x75\x78\x2d\x61\x61\x72\x63\x68\x36\x34\x2e\x73\x6f\x2e\x31\x00\x00\x04\x00\x00\x00\x14\x00\x00\x00\x03\x00\x00\x00\x47\x4e\x55\x00\x83\xa2\x7d\x84\xb8\xcb\xd6\x4e\xfa\x2d\x41\x4e\x08\x8f\xa3\xd8\x47\xee\x40\x6e\x04\x00\x00\x00\x10\x00\x00\x00\x01\x00\x00\x00\x47\x4e\x55\x00\x00\x00\x00\x00\x03\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x01\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x0b\x00\x80\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x16\x00\x00\x10\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x48\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x22\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x22\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x73\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5f\x5f\x63\x78\x61\x5f\x66\x69\x6e\x61\x6c\x69\x7a\x65\x00\x5f\x5f\x6c\x69\x62\x63\x5f\x73\x74\x61\x72\x74\x5f\x6d\x61\x69\x6e\x00\x61\x62\x6f\x72\x74\x00\x6c\x69\x62\x63\x2e\x73\x6f\x2e\x36\x00\x47\x4c\x49\x42\x43\x5f\x32\x2e\x31\x37\x00\x47\x4c\x49\x42\x43\x5f\x32\x2e\x33\x34\x00\x5f\x49\x54\x4d\x5f\x64\x65\x72\x65\x67\x69\x73\x74\x65\x72\x54\x4d\x43\x6c\x6f\x6e\x65\x54\x61\x62\x6c\x65\x00\x5f\x5f\x67\x6d\x6f\x6e\x5f\x73\x74\x61\x72\x74\x5f\x5f\x00\x5f\x49\x54\x4d\x5f\x72\x65\x67\x69\x73\x74\x65\x72\x54\x4d\x43\x6c\x6f\x6e\x65\x54\x61\x62\x6c\x65\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x01\x00\x03\x00\x01\x00\x03\x00\x01\x00\x01\x00\x02\x00\x28\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x97\x91\x96\x06\x00\x00\x03\x00\x32\x00\x00\x00\x10\x00\x00\x00\xb4\x91\x96\x06\x00\x00\x02\x00\x3d\x00\x00\x00\x00\x00\x00\x00\x98\x0d\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x10\x07\x00\x00\x00\x00\x00\x00\xa0\x0d\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\xc0\x06\x00\x00\x00\x00\x00\x00\xf0\x0f\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x14\x07\x00\x00\x00\x00\x00\x00\x08\x10\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x08\x10\x01\x00\x00\x00\x00\x00\xd8\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe0\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe8\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xf8\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xb0\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xb8\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xc0\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xc8\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1f\x20\x03\xd5\xfd\x7b\xbf\xa9\xfd\x03\x00\x91\x2a\x00\x00\x94\xfd\x7b\xc1\xa8\xc0\x03\x5f\xd6\x00\x00\x00\x00\x00\x00\x00\x00\xf0\x7b\xbf\xa9\x90\x00\x00\x90\x11\xd6\x47\xf9\x10\xa2\x3e\x91\x20\x02\x1f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x90\x00\x00\x90\x11\xda\x47\xf9\x10\xc2\x3e\x91\x20\x02\x1f\xd6\x90\x00\x00\x90\x11\xde\x47\xf9\x10\xe2\x3e\x91\x20\x02\x1f\xd6\x90\x00\x00\x90\x11\xe2\x47\xf9\x10\x02\x3f\x91\x20\x02\x1f\xd6\x90\x00\x00\x90\x11\xe6\x47\xf9\x10\x22\x3f\x91\x20\x02\x1f\xd6\x1f\x20\x03\xd5\x1d\x00\x80\xd2\x1e\x00\x80\xd2\xe5\x03\x00\xaa\xe1\x03\x40\xf9\xe2\x23\x00\x91\xe6\x03\x00\x91\x80\x00\x00\x90\x00\xf8\x47\xf9\x03\x00\x80\xd2\x04\x00\x80\xd2\xe5\xff\xff\x97\xf0\xff\xff\x97\x80\x00\x00\x90\x00\xf4\x47\xf9\x40\x00\x00\xb4\xe8\xff\xff\x17\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x80\x00\x00\xb0\x00\x40\x00\x91\x81\x00\x00\xb0\x21\x40\x00\x91\x3f\x00\x00\xeb\xc0\x00\x00\x54\x81\x00\x00\x90\x21\xec\x47\xf9\x61\x00\x00\xb4\xf0\x03\x01\xaa\x00\x02\x1f\xd6\xc0\x03\x5f\xd6\x80\x00\x00\xb0\x00\x40\x00\x91\x81\x00\x00\xb0\x21\x40\x00\x91\x21\x00\x00\xcb\x22\xfc\x7f\xd3\x41\x0c\x81\x8b\x21\xfc\x41\x93\xc1\x00\x00\xb4\x82\x00\x00\x90\x42\xfc\x47\xf9\x62\x00\x00\xb4\xf0\x03\x02\xaa\x00\x02\x1f\xd6\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\xfd\x7b\xbe\xa9\xfd\x03\x00\x91\xf3\x0b\x00\xf9\x93\x00\x00\xb0\x60\x42\x40\x39\x40\x01\x00\x35\x80\x00\x00\x90\x00\xf0\x47\xf9\x80\x00\x00\xb4\x80\x00\x00\xb0\x00\x04\x40\xf9\xb9\xff\xff\x97\xd8\xff\xff\x97\x20\x00\x80\x52\x60\x42\x00\x39\xf3\x0b\x40\xf9\xfd\x7b\xc2\xa8\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\xdc\xff\xff\x17\x80\x00\x00\xb0\x00\x70\x00\x91\x01\x00\x40\xb9\x80\x00\x00\xb0\x00\x50\x00\x91\x01\x00\x00\xb9\x80\x00\x00\xb0\x00\x50\x00\x91\x1f\x00\x00\xb9\x80\x00\x00\xb0\x00\x50\x00\x91\x01\x00\x40\xb9\x80\x00\x00\xb0\x00\x60\x00\x91\x01\x00\x00\xb9\x80\x00\x00\xb0\x00\x70\x00\x91\x01\x00\x40\xb9\x80\x00\x00\xb0\x00\x50\x00\x91\x01\x00\x00\xb9\x80\x00\x00\xb0\x00\x50\x00\x91\x01\x00\x40\xb9\x80\x00\x00\xb0\x00\x60\x00\x91\x01\x00\x00\xb9\x00\x00\x80\x52\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\xfd\x7b\xbf\xa9\xfd\x03\x00\x91\xfd\x7b\xc1\xa8\xc0\x03\x5f\xd6\x01\x00\x02\x00\x01\x1b\x03\x3b\x3c\x00\x00\x00\x06\x00\x00\x00\x60\xfe\xff\xff\x54\x00\x00\x00\xb0\xfe\xff\xff\x68\x00\x00\x00\xe0\xfe\xff\xff\x7c\x00\x00\x00\x20\xff\xff\xff\x90\x00\x00\x00\x70\xff\xff\xff\xb4\x00\x00\x00\x74\xff\xff\xff\xc8\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x01\x7a\x52\x00\x04\x78\x1e\x01\x1b\x0c\x1f\x00\x10\x00\x00\x00\x18\x00\x00\x00\x04\xfe\xff\xff\x34\x00\x00\x00\x00\x41\x07\x1e\x10\x00\x00\x00\x2c\x00\x00\x00\x40\xfe\xff\xff\x30\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x40\x00\x00\x00\x5c\xfe\xff\xff\x3c\x00\x00\x00\x00\x00\x00\x00\x20\x00\x00\x00\x54\x00\x00\x00\x88\xfe\xff\xff\x48\x00\x00\x00\x00\x41\x0e\x20\x9d\x04\x9e\x03\x42\x93\x02\x4e\xde\xdd\xd3\x0e\x00\x00\x00\x00\x10\x00\x00\x00\x78\x00\x00\x00\xb4\xfe\xff\xff\x04\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x8c\x00\x00\x00"), -Section(".comment", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x00\x06\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xd8\x1b\x00"), -Section(".interp", 0x238, "\x2f\x6c\x69\x62\x2f\x6c\x64\x2d\x6c\x69\x6e\x75\x78\x2d\x61\x61\x72\x63\x68\x36\x34\x2e\x73\x6f\x2e\x31\x00"), -Section(".note.gnu.build-id", 0x254, "\x04\x00\x00\x00\x14\x00\x00\x00\x03\x00\x00\x00\x47\x4e\x55\x00\x83\xa2\x7d\x84\xb8\xcb\xd6\x4e\xfa\x2d\x41\x4e\x08\x8f\xa3\xd8\x47\xee\x40\x6e"), -Section(".note.ABI-tag", 0x278, "\x04\x00\x00\x00\x10\x00\x00\x00\x01\x00\x00\x00\x47\x4e\x55\x00\x00\x00\x00\x00\x03\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00"), -Section(".gnu.hash", 0x298, "\x01\x00\x00\x00\x01\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".dynsym", 0x2B8, "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x0b\x00\x80\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x16\x00\x00\x10\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x48\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x22\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x22\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x73\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".dynstr", 0x390, "\x00\x5f\x5f\x63\x78\x61\x5f\x66\x69\x6e\x61\x6c\x69\x7a\x65\x00\x5f\x5f\x6c\x69\x62\x63\x5f\x73\x74\x61\x72\x74\x5f\x6d\x61\x69\x6e\x00\x61\x62\x6f\x72\x74\x00\x6c\x69\x62\x63\x2e\x73\x6f\x2e\x36\x00\x47\x4c\x49\x42\x43\x5f\x32\x2e\x31\x37\x00\x47\x4c\x49\x42\x43\x5f\x32\x2e\x33\x34\x00\x5f\x49\x54\x4d\x5f\x64\x65\x72\x65\x67\x69\x73\x74\x65\x72\x54\x4d\x43\x6c\x6f\x6e\x65\x54\x61\x62\x6c\x65\x00\x5f\x5f\x67\x6d\x6f\x6e\x5f\x73\x74\x61\x72\x74\x5f\x5f\x00\x5f\x49\x54\x4d\x5f\x72\x65\x67\x69\x73\x74\x65\x72\x54\x4d\x43\x6c\x6f\x6e\x65\x54\x61\x62\x6c\x65\x00"), -Section(".gnu.version", 0x41E, "\x00\x00\x00\x00\x00\x00\x02\x00\x01\x00\x03\x00\x01\x00\x03\x00\x01\x00"), -Section(".gnu.version_r", 0x430, "\x01\x00\x02\x00\x28\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x97\x91\x96\x06\x00\x00\x03\x00\x32\x00\x00\x00\x10\x00\x00\x00\xb4\x91\x96\x06\x00\x00\x02\x00\x3d\x00\x00\x00\x00\x00\x00\x00"), -Section(".rela.dyn", 0x460, "\x98\x0d\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x10\x07\x00\x00\x00\x00\x00\x00\xa0\x0d\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\xc0\x06\x00\x00\x00\x00\x00\x00\xf0\x0f\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x14\x07\x00\x00\x00\x00\x00\x00\x08\x10\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x08\x10\x01\x00\x00\x00\x00\x00\xd8\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe0\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe8\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xf8\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".rela.plt", 0x520, "\xb0\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xb8\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xc0\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xc8\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".init", 0x580, "\x1f\x20\x03\xd5\xfd\x7b\xbf\xa9\xfd\x03\x00\x91\x2a\x00\x00\x94\xfd\x7b\xc1\xa8\xc0\x03\x5f\xd6"), -Section(".plt", 0x5A0, "\xf0\x7b\xbf\xa9\x90\x00\x00\x90\x11\xd6\x47\xf9\x10\xa2\x3e\x91\x20\x02\x1f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x90\x00\x00\x90\x11\xda\x47\xf9\x10\xc2\x3e\x91\x20\x02\x1f\xd6\x90\x00\x00\x90\x11\xde\x47\xf9\x10\xe2\x3e\x91\x20\x02\x1f\xd6\x90\x00\x00\x90\x11\xe2\x47\xf9\x10\x02\x3f\x91\x20\x02\x1f\xd6\x90\x00\x00\x90\x11\xe6\x47\xf9\x10\x22\x3f\x91\x20\x02\x1f\xd6"), -Section(".fini", 0x788, "\x1f\x20\x03\xd5\xfd\x7b\xbf\xa9\xfd\x03\x00\x91\xfd\x7b\xc1\xa8\xc0\x03\x5f\xd6"), -Section(".rodata", 0x79C, "\x01\x00\x02\x00"), -Section(".eh_frame_hdr", 0x7A0, "\x01\x1b\x03\x3b\x3c\x00\x00\x00\x06\x00\x00\x00\x60\xfe\xff\xff\x54\x00\x00\x00\xb0\xfe\xff\xff\x68\x00\x00\x00\xe0\xfe\xff\xff\x7c\x00\x00\x00\x20\xff\xff\xff\x90\x00\x00\x00\x70\xff\xff\xff\xb4\x00\x00\x00\x74\xff\xff\xff\xc8\x00\x00\x00"), -Section(".eh_frame", 0x7E0, "\x10\x00\x00\x00\x00\x00\x00\x00\x01\x7a\x52\x00\x04\x78\x1e\x01\x1b\x0c\x1f\x00\x10\x00\x00\x00\x18\x00\x00\x00\x04\xfe\xff\xff\x34\x00\x00\x00\x00\x41\x07\x1e\x10\x00\x00\x00\x2c\x00\x00\x00\x40\xfe\xff\xff\x30\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x40\x00\x00\x00\x5c\xfe\xff\xff\x3c\x00\x00\x00\x00\x00\x00\x00\x20\x00\x00\x00\x54\x00\x00\x00\x88\xfe\xff\xff\x48\x00\x00\x00\x00\x41\x0e\x20\x9d\x04\x9e\x03\x42\x93\x02\x4e\xde\xdd\xd3\x0e\x00\x00\x00\x00\x10\x00\x00\x00\x78\x00\x00\x00\xb4\xfe\xff\xff\x04\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x8c\x00\x00\x00\xa4\xfe\xff\xff\x74\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".fini_array", 0x10DA0, "\xc0\x06\x00\x00\x00\x00\x00\x00"), -Section(".dynamic", 0x10DA8, "\x01\x00\x00\x00\x00\x00\x00\x00\x28\x00\x00\x00\x00\x00\x00\x00\x0c\x00\x00\x00\x00\x00\x00\x00\x80\x05\x00\x00\x00\x00\x00\x00\x0d\x00\x00\x00\x00\x00\x00\x00\x88\x07\x00\x00\x00\x00\x00\x00\x19\x00\x00\x00\x00\x00\x00\x00\x98\x0d\x01\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x1a\x00\x00\x00\x00\x00\x00\x00\xa0\x0d\x01\x00\x00\x00\x00\x00\x1c\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\xf5\xfe\xff\x6f\x00\x00\x00\x00\x98\x02\x00\x00\x00\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x90\x03\x00\x00\x00\x00\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\xb8\x02\x00\x00\x00\x00\x00\x00\x0a\x00\x00\x00\x00\x00\x00\x00\x8d\x00\x00\x00\x00\x00\x00\x00\x0b\x00\x00\x00\x00\x00\x00\x00\x18\x00\x00\x00\x00\x00\x00\x00\x15\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x98\x0f\x01\x00\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x60\x00\x00\x00\x00\x00\x00\x00\x14\x00\x00\x00\x00\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x17\x00\x00\x00\x00\x00\x00\x00\x20\x05\x00\x00\x00\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x60\x04\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\xc0\x00\x00\x00\x00\x00\x00\x00\x09\x00\x00\x00\x00\x00\x00\x00\x18\x00\x00\x00\x00\x00\x00\x00\x1e\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\xfb\xff\xff\x6f\x00\x00\x00\x00\x01\x00\x00\x08\x00\x00\x00\x00\xfe\xff\xff\x6f\x00\x00\x00\x00\x30\x04\x00\x00\x00\x00\x00\x00\xff\xff\xff\x6f\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\xf0\xff\xff\x6f\x00\x00\x00\x00\x1e\x04\x00\x00\x00\x00\x00\x00\xf9\xff\xff\x6f\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".got", 0x10F98, "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xa0\x05\x00\x00\x00\x00\x00\x00\xa0\x05\x00\x00\x00\x00\x00\x00\xa0\x05\x00\x00\x00\x00\x00\x00\xa0\x05\x00\x00\x00\x00\x00\x00\xa8\x0d\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x14\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".data", 0x11000, "\x00\x00\x00\x00\x00\x00\x00\x00\x08\x10\x01\x00\x00\x00\x00\x00"), -Section(".init_array", 0x10D98, "\x10\x07\x00\x00\x00\x00\x00\x00"), -Section(".text", 0x600, "\x1f\x20\x03\xd5\x1d\x00\x80\xd2\x1e\x00\x80\xd2\xe5\x03\x00\xaa\xe1\x03\x40\xf9\xe2\x23\x00\x91\xe6\x03\x00\x91\x80\x00\x00\x90\x00\xf8\x47\xf9\x03\x00\x80\xd2\x04\x00\x80\xd2\xe5\xff\xff\x97\xf0\xff\xff\x97\x80\x00\x00\x90\x00\xf4\x47\xf9\x40\x00\x00\xb4\xe8\xff\xff\x17\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x80\x00\x00\xb0\x00\x40\x00\x91\x81\x00\x00\xb0\x21\x40\x00\x91\x3f\x00\x00\xeb\xc0\x00\x00\x54\x81\x00\x00\x90\x21\xec\x47\xf9\x61\x00\x00\xb4\xf0\x03\x01\xaa\x00\x02\x1f\xd6\xc0\x03\x5f\xd6\x80\x00\x00\xb0\x00\x40\x00\x91\x81\x00\x00\xb0\x21\x40\x00\x91\x21\x00\x00\xcb\x22\xfc\x7f\xd3\x41\x0c\x81\x8b\x21\xfc\x41\x93\xc1\x00\x00\xb4\x82\x00\x00\x90\x42\xfc\x47\xf9\x62\x00\x00\xb4\xf0\x03\x02\xaa\x00\x02\x1f\xd6\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\xfd\x7b\xbe\xa9\xfd\x03\x00\x91\xf3\x0b\x00\xf9\x93\x00\x00\xb0\x60\x42\x40\x39\x40\x01\x00\x35\x80\x00\x00\x90\x00\xf0\x47\xf9\x80\x00\x00\xb4\x80\x00\x00\xb0\x00\x04\x40\xf9\xb9\xff\xff\x97\xd8\xff\xff\x97\x20\x00\x80\x52\x60\x42\x00\x39\xf3\x0b\x40\xf9\xfd\x7b\xc2\xa8\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\xdc\xff\xff\x17\x80\x00\x00\xb0\x00\x70\x00\x91\x01\x00\x40\xb9\x80\x00\x00\xb0\x00\x50\x00\x91\x01\x00\x00\xb9\x80\x00\x00\xb0\x00\x50\x00\x91\x1f\x00\x00\xb9\x80\x00\x00\xb0\x00\x50\x00\x91\x01\x00\x40\xb9\x80\x00\x00\xb0\x00\x60\x00\x91\x01\x00\x00\xb9\x80\x00\x00\xb0\x00\x70\x00\x91\x01\x00\x40\xb9\x80\x00\x00\xb0\x00\x50\x00\x91\x01\x00\x00\xb9\x80\x00\x00\xb0\x00\x50\x00\x91\x01\x00\x40\xb9\x80\x00\x00\xb0\x00\x60\x00\x91\x01\x00\x00\xb9\x00\x00\x80\x52\xc0\x03\x5f\xd6")]), -Memmap([Annotation(Region(0x0,0x87F), Attr("segment","02 0 2176")), -Annotation(Region(0x600,0x633), Attr("symbol","\"_start\"")), -Annotation(Region(0x0,0xF9), Attr("section","\".shstrtab\"")), -Annotation(Region(0x0,0x22B), Attr("section","\".strtab\"")), -Annotation(Region(0x0,0x86F), Attr("section","\".symtab\"")), -Annotation(Region(0x0,0x2A), Attr("section","\".comment\"")), -Annotation(Region(0x238,0x252), Attr("section","\".interp\"")), -Annotation(Region(0x254,0x277), Attr("section","\".note.gnu.build-id\"")), -Annotation(Region(0x278,0x297), Attr("section","\".note.ABI-tag\"")), -Annotation(Region(0x298,0x2B3), Attr("section","\".gnu.hash\"")), -Annotation(Region(0x2B8,0x38F), Attr("section","\".dynsym\"")), -Annotation(Region(0x390,0x41C), Attr("section","\".dynstr\"")), -Annotation(Region(0x41E,0x42F), Attr("section","\".gnu.version\"")), -Annotation(Region(0x430,0x45F), Attr("section","\".gnu.version_r\"")), -Annotation(Region(0x460,0x51F), Attr("section","\".rela.dyn\"")), -Annotation(Region(0x520,0x57F), Attr("section","\".rela.plt\"")), -Annotation(Region(0x580,0x597), Attr("section","\".init\"")), -Annotation(Region(0x5A0,0x5FF), Attr("section","\".plt\"")), -Annotation(Region(0x580,0x597), Attr("code-region","()")), -Annotation(Region(0x5A0,0x5FF), Attr("code-region","()")), -Annotation(Region(0x600,0x633), Attr("symbol-info","_start 0x600 52")), -Annotation(Region(0x634,0x647), Attr("symbol","\"call_weak_fn\"")), -Annotation(Region(0x634,0x647), Attr("symbol-info","call_weak_fn 0x634 20")), -Annotation(Region(0x714,0x787), Attr("symbol","\"main\"")), -Annotation(Region(0x714,0x787), Attr("symbol-info","main 0x714 116")), -Annotation(Region(0x788,0x79B), Attr("section","\".fini\"")), -Annotation(Region(0x79C,0x79F), Attr("section","\".rodata\"")), -Annotation(Region(0x7A0,0x7DB), Attr("section","\".eh_frame_hdr\"")), -Annotation(Region(0x7E0,0x87F), Attr("section","\".eh_frame\"")), -Annotation(Region(0x10D98,0x1100F), Attr("segment","03 0x10D98 648")), -Annotation(Region(0x10DA0,0x10DA7), Attr("section","\".fini_array\"")), -Annotation(Region(0x10DA8,0x10F97), Attr("section","\".dynamic\"")), -Annotation(Region(0x10F98,0x10FFF), Attr("section","\".got\"")), -Annotation(Region(0x11000,0x1100F), Attr("section","\".data\"")), -Annotation(Region(0x10D98,0x10D9F), Attr("section","\".init_array\"")), -Annotation(Region(0x600,0x787), Attr("section","\".text\"")), -Annotation(Region(0x600,0x787), Attr("code-region","()")), -Annotation(Region(0x788,0x79B), Attr("code-region","()"))]), -Program(Tid(1_681, "%00000691"), Attrs([]), - Subs([Sub(Tid(1_659, "@__cxa_finalize"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x5D0"), -Attr("stub","()")]), "__cxa_finalize", Args([Arg(Tid(1_682, "%00000692"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("__cxa_finalize_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(1_029, "@__cxa_finalize"), - Attrs([Attr("address","0x5D0")]), Phis([]), -Defs([Def(Tid(1_277, "%000004fd"), Attrs([Attr("address","0x5D0"), -Attr("insn","adrp x16, #65536")]), Var("R16",Imm(64)), Int(65536,64)), -Def(Tid(1_284, "%00000504"), Attrs([Attr("address","0x5D4"), -Attr("insn","ldr x17, [x16, #0xfb8]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(4024,64)),LittleEndian(),64)), -Def(Tid(1_290, "%0000050a"), Attrs([Attr("address","0x5D8"), -Attr("insn","add x16, x16, #0xfb8")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(4024,64)))]), Jmps([Call(Tid(1_295, "%0000050f"), - Attrs([Attr("address","0x5DC"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), -Sub(Tid(1_660, "@__do_global_dtors_aux"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x6C0")]), - "__do_global_dtors_aux", Args([Arg(Tid(1_683, "%00000693"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("__do_global_dtors_aux_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(706, "@__do_global_dtors_aux"), - Attrs([Attr("address","0x6C0")]), Phis([]), Defs([Def(Tid(710, "%000002c6"), - Attrs([Attr("address","0x6C0"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("#3",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(18446744073709551584,64))), -Def(Tid(716, "%000002cc"), Attrs([Attr("address","0x6C0"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("#3",Imm(64)),Var("R29",Imm(64)),LittleEndian(),64)), -Def(Tid(722, "%000002d2"), Attrs([Attr("address","0x6C0"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("#3",Imm(64)),Int(8,64)),Var("R30",Imm(64)),LittleEndian(),64)), -Def(Tid(726, "%000002d6"), Attrs([Attr("address","0x6C0"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("R31",Imm(64)), -Var("#3",Imm(64))), Def(Tid(732, "%000002dc"), - Attrs([Attr("address","0x6C4"), Attr("insn","mov x29, sp")]), - Var("R29",Imm(64)), Var("R31",Imm(64))), Def(Tid(740, "%000002e4"), - Attrs([Attr("address","0x6C8"), Attr("insn","str x19, [sp, #0x10]")]), - Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(16,64)),Var("R19",Imm(64)),LittleEndian(),64)), -Def(Tid(745, "%000002e9"), Attrs([Attr("address","0x6CC"), -Attr("insn","adrp x19, #69632")]), Var("R19",Imm(64)), Int(69632,64)), -Def(Tid(752, "%000002f0"), Attrs([Attr("address","0x6D0"), -Attr("insn","ldrb w0, [x19, #0x10]")]), Var("R0",Imm(64)), -UNSIGNED(64,Load(Var("mem",Mem(64,8)),PLUS(Var("R19",Imm(64)),Int(16,64)),LittleEndian(),8)))]), -Jmps([Goto(Tid(759, "%000002f7"), Attrs([Attr("address","0x6D4"), -Attr("insn","cbnz w0, #0x28")]), - NEQ(Extract(31,0,Var("R0",Imm(64))),Int(0,32)), -Direct(Tid(757, "%000002f5"))), Goto(Tid(1_661, "%0000067d"), Attrs([]), - Int(1,1), Direct(Tid(974, "%000003ce")))])), Blk(Tid(974, "%000003ce"), - Attrs([Attr("address","0x6D8")]), Phis([]), Defs([Def(Tid(977, "%000003d1"), - Attrs([Attr("address","0x6D8"), Attr("insn","adrp x0, #65536")]), - Var("R0",Imm(64)), Int(65536,64)), Def(Tid(984, "%000003d8"), - Attrs([Attr("address","0x6DC"), Attr("insn","ldr x0, [x0, #0xfe0]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(4064,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(990, "%000003de"), Attrs([Attr("address","0x6E0"), -Attr("insn","cbz x0, #0x10")]), EQ(Var("R0",Imm(64)),Int(0,64)), -Direct(Tid(988, "%000003dc"))), Goto(Tid(1_662, "%0000067e"), Attrs([]), - Int(1,1), Direct(Tid(1_013, "%000003f5")))])), Blk(Tid(1_013, "%000003f5"), - Attrs([Attr("address","0x6E4")]), Phis([]), -Defs([Def(Tid(1_016, "%000003f8"), Attrs([Attr("address","0x6E4"), -Attr("insn","adrp x0, #69632")]), Var("R0",Imm(64)), Int(69632,64)), -Def(Tid(1_023, "%000003ff"), Attrs([Attr("address","0x6E8"), -Attr("insn","ldr x0, [x0, #0x8]")]), Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(1_028, "%00000404"), Attrs([Attr("address","0x6EC"), -Attr("insn","bl #-0x11c")]), Var("R30",Imm(64)), Int(1776,64))]), -Jmps([Call(Tid(1_031, "%00000407"), Attrs([Attr("address","0x6EC"), -Attr("insn","bl #-0x11c")]), Int(1,1), -(Direct(Tid(1_659, "@__cxa_finalize")),Direct(Tid(988, "%000003dc"))))])), -Blk(Tid(988, "%000003dc"), Attrs([Attr("address","0x6F0")]), Phis([]), -Defs([Def(Tid(996, "%000003e4"), Attrs([Attr("address","0x6F0"), -Attr("insn","bl #-0xa0")]), Var("R30",Imm(64)), Int(1780,64))]), -Jmps([Call(Tid(998, "%000003e6"), Attrs([Attr("address","0x6F0"), -Attr("insn","bl #-0xa0")]), Int(1,1), -(Direct(Tid(1_673, "@deregister_tm_clones")),Direct(Tid(1_000, "%000003e8"))))])), -Blk(Tid(1_000, "%000003e8"), Attrs([Attr("address","0x6F4")]), Phis([]), -Defs([Def(Tid(1_003, "%000003eb"), Attrs([Attr("address","0x6F4"), -Attr("insn","mov w0, #0x1")]), Var("R0",Imm(64)), Int(1,64)), -Def(Tid(1_011, "%000003f3"), Attrs([Attr("address","0x6F8"), -Attr("insn","strb w0, [x19, #0x10]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R19",Imm(64)),Int(16,64)),Extract(7,0,Var("R0",Imm(64))),LittleEndian(),8))]), -Jmps([Goto(Tid(1_663, "%0000067f"), Attrs([]), Int(1,1), -Direct(Tid(757, "%000002f5")))])), Blk(Tid(757, "%000002f5"), - Attrs([Attr("address","0x6FC")]), Phis([]), Defs([Def(Tid(767, "%000002ff"), - Attrs([Attr("address","0x6FC"), Attr("insn","ldr x19, [sp, #0x10]")]), - Var("R19",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(16,64)),LittleEndian(),64)), -Def(Tid(774, "%00000306"), Attrs([Attr("address","0x700"), -Attr("insn","ldp x29, x30, [sp], #0x20")]), Var("R29",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(779, "%0000030b"), Attrs([Attr("address","0x700"), -Attr("insn","ldp x29, x30, [sp], #0x20")]), Var("R30",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(783, "%0000030f"), Attrs([Attr("address","0x700"), -Attr("insn","ldp x29, x30, [sp], #0x20")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(32,64)))]), Jmps([Call(Tid(788, "%00000314"), - Attrs([Attr("address","0x704"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), Sub(Tid(1_664, "@__libc_start_main"), - Attrs([Attr("c.proto","signed (*)(signed (*)(signed , char** , char** );* main, signed , char** , \nvoid* auxv)"), -Attr("address","0x5C0"), Attr("stub","()")]), "__libc_start_main", - Args([Arg(Tid(1_684, "%00000694"), - Attrs([Attr("c.layout","**[ : 64]"), -Attr("c.data","Top:u64 ptr ptr"), -Attr("c.type","signed (*)(signed , char** , char** );*")]), - Var("__libc_start_main_main",Imm(64)), Var("R0",Imm(64)), In()), -Arg(Tid(1_685, "%00000695"), Attrs([Attr("c.layout","[signed : 32]"), -Attr("c.data","Top:u32"), Attr("c.type","signed")]), - Var("__libc_start_main_arg2",Imm(32)), LOW(32,Var("R1",Imm(64))), In()), -Arg(Tid(1_686, "%00000696"), Attrs([Attr("c.layout","**[char : 8]"), -Attr("c.data","Top:u8 ptr ptr"), Attr("c.type","char**")]), - Var("__libc_start_main_arg3",Imm(64)), Var("R2",Imm(64)), Both()), -Arg(Tid(1_687, "%00000697"), Attrs([Attr("c.layout","*[ : 8]"), -Attr("c.data","{} ptr"), Attr("c.type","void*")]), - Var("__libc_start_main_auxv",Imm(64)), Var("R3",Imm(64)), Both()), -Arg(Tid(1_688, "%00000698"), Attrs([Attr("c.layout","[signed : 32]"), -Attr("c.data","Top:u32"), Attr("c.type","signed")]), - Var("__libc_start_main_result",Imm(32)), LOW(32,Var("R0",Imm(64))), -Out())]), Blks([Blk(Tid(539, "@__libc_start_main"), - Attrs([Attr("address","0x5C0")]), Phis([]), -Defs([Def(Tid(1_255, "%000004e7"), Attrs([Attr("address","0x5C0"), -Attr("insn","adrp x16, #65536")]), Var("R16",Imm(64)), Int(65536,64)), -Def(Tid(1_262, "%000004ee"), Attrs([Attr("address","0x5C4"), -Attr("insn","ldr x17, [x16, #0xfb0]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(4016,64)),LittleEndian(),64)), -Def(Tid(1_268, "%000004f4"), Attrs([Attr("address","0x5C8"), -Attr("insn","add x16, x16, #0xfb0")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(4016,64)))]), Jmps([Call(Tid(1_273, "%000004f9"), - Attrs([Attr("address","0x5CC"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), Sub(Tid(1_665, "@_fini"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x788")]), - "_fini", Args([Arg(Tid(1_689, "%00000699"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("_fini_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(31, "@_fini"), - Attrs([Attr("address","0x788")]), Phis([]), Defs([Def(Tid(37, "%00000025"), - Attrs([Attr("address","0x78C"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("#0",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(18446744073709551600,64))), -Def(Tid(43, "%0000002b"), Attrs([Attr("address","0x78C"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("#0",Imm(64)),Var("R29",Imm(64)),LittleEndian(),64)), -Def(Tid(49, "%00000031"), Attrs([Attr("address","0x78C"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("#0",Imm(64)),Int(8,64)),Var("R30",Imm(64)),LittleEndian(),64)), -Def(Tid(53, "%00000035"), Attrs([Attr("address","0x78C"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("R31",Imm(64)), -Var("#0",Imm(64))), Def(Tid(59, "%0000003b"), Attrs([Attr("address","0x790"), -Attr("insn","mov x29, sp")]), Var("R29",Imm(64)), Var("R31",Imm(64))), -Def(Tid(66, "%00000042"), Attrs([Attr("address","0x794"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R29",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(71, "%00000047"), Attrs([Attr("address","0x794"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R30",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(75, "%0000004b"), Attrs([Attr("address","0x794"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(16,64)))]), Jmps([Call(Tid(80, "%00000050"), - Attrs([Attr("address","0x798"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), Sub(Tid(1_666, "@_init"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x580")]), - "_init", Args([Arg(Tid(1_690, "%0000069a"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("_init_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(1_472, "@_init"), - Attrs([Attr("address","0x580")]), Phis([]), -Defs([Def(Tid(1_478, "%000005c6"), Attrs([Attr("address","0x584"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("#5",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(18446744073709551600,64))), -Def(Tid(1_484, "%000005cc"), Attrs([Attr("address","0x584"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("#5",Imm(64)),Var("R29",Imm(64)),LittleEndian(),64)), -Def(Tid(1_490, "%000005d2"), Attrs([Attr("address","0x584"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("#5",Imm(64)),Int(8,64)),Var("R30",Imm(64)),LittleEndian(),64)), -Def(Tid(1_494, "%000005d6"), Attrs([Attr("address","0x584"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("R31",Imm(64)), -Var("#5",Imm(64))), Def(Tid(1_500, "%000005dc"), - Attrs([Attr("address","0x588"), Attr("insn","mov x29, sp")]), - Var("R29",Imm(64)), Var("R31",Imm(64))), Def(Tid(1_505, "%000005e1"), - Attrs([Attr("address","0x58C"), Attr("insn","bl #0xa8")]), - Var("R30",Imm(64)), Int(1424,64))]), Jmps([Call(Tid(1_507, "%000005e3"), - Attrs([Attr("address","0x58C"), Attr("insn","bl #0xa8")]), Int(1,1), -(Direct(Tid(1_671, "@call_weak_fn")),Direct(Tid(1_509, "%000005e5"))))])), -Blk(Tid(1_509, "%000005e5"), Attrs([Attr("address","0x590")]), Phis([]), -Defs([Def(Tid(1_514, "%000005ea"), Attrs([Attr("address","0x590"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R29",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(1_519, "%000005ef"), Attrs([Attr("address","0x590"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R30",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(1_523, "%000005f3"), Attrs([Attr("address","0x590"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(16,64)))]), Jmps([Call(Tid(1_528, "%000005f8"), - Attrs([Attr("address","0x594"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), Sub(Tid(1_667, "@_start"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x600"), -Attr("stub","()"), Attr("entry-point","()")]), "_start", - Args([Arg(Tid(1_691, "%0000069b"), Attrs([Attr("c.layout","[signed : 32]"), -Attr("c.data","Top:u32"), Attr("c.type","signed")]), - Var("_start_result",Imm(32)), LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(476, "@_start"), Attrs([Attr("address","0x600")]), Phis([]), -Defs([Def(Tid(481, "%000001e1"), Attrs([Attr("address","0x604"), -Attr("insn","mov x29, #0x0")]), Var("R29",Imm(64)), Int(0,64)), -Def(Tid(486, "%000001e6"), Attrs([Attr("address","0x608"), -Attr("insn","mov x30, #0x0")]), Var("R30",Imm(64)), Int(0,64)), -Def(Tid(492, "%000001ec"), Attrs([Attr("address","0x60C"), -Attr("insn","mov x5, x0")]), Var("R5",Imm(64)), Var("R0",Imm(64))), -Def(Tid(499, "%000001f3"), Attrs([Attr("address","0x610"), -Attr("insn","ldr x1, [sp]")]), Var("R1",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(505, "%000001f9"), Attrs([Attr("address","0x614"), -Attr("insn","add x2, sp, #0x8")]), Var("R2",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(8,64))), Def(Tid(511, "%000001ff"), - Attrs([Attr("address","0x618"), Attr("insn","mov x6, sp")]), - Var("R6",Imm(64)), Var("R31",Imm(64))), Def(Tid(516, "%00000204"), - Attrs([Attr("address","0x61C"), Attr("insn","adrp x0, #65536")]), - Var("R0",Imm(64)), Int(65536,64)), Def(Tid(523, "%0000020b"), - Attrs([Attr("address","0x620"), Attr("insn","ldr x0, [x0, #0xff0]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(4080,64)),LittleEndian(),64)), -Def(Tid(528, "%00000210"), Attrs([Attr("address","0x624"), -Attr("insn","mov x3, #0x0")]), Var("R3",Imm(64)), Int(0,64)), -Def(Tid(533, "%00000215"), Attrs([Attr("address","0x628"), -Attr("insn","mov x4, #0x0")]), Var("R4",Imm(64)), Int(0,64)), -Def(Tid(538, "%0000021a"), Attrs([Attr("address","0x62C"), -Attr("insn","bl #-0x6c")]), Var("R30",Imm(64)), Int(1584,64))]), -Jmps([Call(Tid(541, "%0000021d"), Attrs([Attr("address","0x62C"), -Attr("insn","bl #-0x6c")]), Int(1,1), -(Direct(Tid(1_664, "@__libc_start_main")),Direct(Tid(543, "%0000021f"))))])), -Blk(Tid(543, "%0000021f"), Attrs([Attr("address","0x630")]), Phis([]), -Defs([Def(Tid(546, "%00000222"), Attrs([Attr("address","0x630"), -Attr("insn","bl #-0x40")]), Var("R30",Imm(64)), Int(1588,64))]), -Jmps([Call(Tid(549, "%00000225"), Attrs([Attr("address","0x630"), -Attr("insn","bl #-0x40")]), Int(1,1), -(Direct(Tid(1_670, "@abort")),Direct(Tid(1_668, "%00000684"))))])), -Blk(Tid(1_668, "%00000684"), Attrs([]), Phis([]), Defs([]), -Jmps([Call(Tid(1_669, "%00000685"), Attrs([]), Int(1,1), -(Direct(Tid(1_671, "@call_weak_fn")),))]))])), Sub(Tid(1_670, "@abort"), - Attrs([Attr("noreturn","()"), Attr("c.proto","void (*)(void)"), -Attr("address","0x5F0"), Attr("stub","()")]), "abort", Args([]), -Blks([Blk(Tid(547, "@abort"), Attrs([Attr("address","0x5F0")]), Phis([]), -Defs([Def(Tid(1_321, "%00000529"), Attrs([Attr("address","0x5F0"), -Attr("insn","adrp x16, #65536")]), Var("R16",Imm(64)), Int(65536,64)), -Def(Tid(1_328, "%00000530"), Attrs([Attr("address","0x5F4"), -Attr("insn","ldr x17, [x16, #0xfc8]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(4040,64)),LittleEndian(),64)), -Def(Tid(1_334, "%00000536"), Attrs([Attr("address","0x5F8"), -Attr("insn","add x16, x16, #0xfc8")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(4040,64)))]), Jmps([Call(Tid(1_339, "%0000053b"), - Attrs([Attr("address","0x5FC"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), Sub(Tid(1_671, "@call_weak_fn"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x634")]), - "call_weak_fn", Args([Arg(Tid(1_692, "%0000069c"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("call_weak_fn_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(551, "@call_weak_fn"), - Attrs([Attr("address","0x634")]), Phis([]), Defs([Def(Tid(554, "%0000022a"), - Attrs([Attr("address","0x634"), Attr("insn","adrp x0, #65536")]), - Var("R0",Imm(64)), Int(65536,64)), Def(Tid(561, "%00000231"), - Attrs([Attr("address","0x638"), Attr("insn","ldr x0, [x0, #0xfe8]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(4072,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(567, "%00000237"), Attrs([Attr("address","0x63C"), -Attr("insn","cbz x0, #0x8")]), EQ(Var("R0",Imm(64)),Int(0,64)), -Direct(Tid(565, "%00000235"))), Goto(Tid(1_672, "%00000688"), Attrs([]), - Int(1,1), Direct(Tid(1_093, "%00000445")))])), Blk(Tid(565, "%00000235"), - Attrs([Attr("address","0x644")]), Phis([]), Defs([]), -Jmps([Call(Tid(573, "%0000023d"), Attrs([Attr("address","0x644"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))])), -Blk(Tid(1_093, "%00000445"), Attrs([Attr("address","0x640")]), Phis([]), -Defs([]), Jmps([Goto(Tid(1_096, "%00000448"), Attrs([Attr("address","0x640"), -Attr("insn","b #-0x60")]), Int(1,1), -Direct(Tid(1_094, "@__gmon_start__")))])), Blk(Tid(1_094, "@__gmon_start__"), - Attrs([Attr("address","0x5E0")]), Phis([]), -Defs([Def(Tid(1_299, "%00000513"), Attrs([Attr("address","0x5E0"), -Attr("insn","adrp x16, #65536")]), Var("R16",Imm(64)), Int(65536,64)), -Def(Tid(1_306, "%0000051a"), Attrs([Attr("address","0x5E4"), -Attr("insn","ldr x17, [x16, #0xfc0]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(4032,64)),LittleEndian(),64)), -Def(Tid(1_312, "%00000520"), Attrs([Attr("address","0x5E8"), -Attr("insn","add x16, x16, #0xfc0")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(4032,64)))]), Jmps([Call(Tid(1_317, "%00000525"), - Attrs([Attr("address","0x5EC"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), -Sub(Tid(1_673, "@deregister_tm_clones"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x650")]), - "deregister_tm_clones", Args([Arg(Tid(1_693, "%0000069d"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("deregister_tm_clones_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(579, "@deregister_tm_clones"), - Attrs([Attr("address","0x650")]), Phis([]), Defs([Def(Tid(582, "%00000246"), - Attrs([Attr("address","0x650"), Attr("insn","adrp x0, #69632")]), - Var("R0",Imm(64)), Int(69632,64)), Def(Tid(588, "%0000024c"), - Attrs([Attr("address","0x654"), Attr("insn","add x0, x0, #0x10")]), - Var("R0",Imm(64)), PLUS(Var("R0",Imm(64)),Int(16,64))), -Def(Tid(593, "%00000251"), Attrs([Attr("address","0x658"), -Attr("insn","adrp x1, #69632")]), Var("R1",Imm(64)), Int(69632,64)), -Def(Tid(599, "%00000257"), Attrs([Attr("address","0x65C"), -Attr("insn","add x1, x1, #0x10")]), Var("R1",Imm(64)), -PLUS(Var("R1",Imm(64)),Int(16,64))), Def(Tid(605, "%0000025d"), - Attrs([Attr("address","0x660"), Attr("insn","cmp x1, x0")]), - Var("#1",Imm(64)), NOT(Var("R0",Imm(64)))), Def(Tid(610, "%00000262"), - Attrs([Attr("address","0x660"), Attr("insn","cmp x1, x0")]), - Var("#2",Imm(64)), PLUS(Var("R1",Imm(64)),NOT(Var("R0",Imm(64))))), -Def(Tid(616, "%00000268"), Attrs([Attr("address","0x660"), -Attr("insn","cmp x1, x0")]), Var("VF",Imm(1)), -NEQ(SIGNED(65,PLUS(Var("#2",Imm(64)),Int(1,64))),PLUS(PLUS(SIGNED(65,Var("R1",Imm(64))),SIGNED(65,Var("#1",Imm(64)))),Int(1,65)))), -Def(Tid(622, "%0000026e"), Attrs([Attr("address","0x660"), -Attr("insn","cmp x1, x0")]), Var("CF",Imm(1)), -NEQ(UNSIGNED(65,PLUS(Var("#2",Imm(64)),Int(1,64))),PLUS(PLUS(UNSIGNED(65,Var("R1",Imm(64))),UNSIGNED(65,Var("#1",Imm(64)))),Int(1,65)))), -Def(Tid(626, "%00000272"), Attrs([Attr("address","0x660"), -Attr("insn","cmp x1, x0")]), Var("ZF",Imm(1)), -EQ(PLUS(Var("#2",Imm(64)),Int(1,64)),Int(0,64))), Def(Tid(630, "%00000276"), - Attrs([Attr("address","0x660"), Attr("insn","cmp x1, x0")]), - Var("NF",Imm(1)), Extract(63,63,PLUS(Var("#2",Imm(64)),Int(1,64))))]), -Jmps([Goto(Tid(636, "%0000027c"), Attrs([Attr("address","0x664"), -Attr("insn","b.eq #0x18")]), EQ(Var("ZF",Imm(1)),Int(1,1)), -Direct(Tid(634, "%0000027a"))), Goto(Tid(1_674, "%0000068a"), Attrs([]), - Int(1,1), Direct(Tid(1_063, "%00000427")))])), Blk(Tid(1_063, "%00000427"), - Attrs([Attr("address","0x668")]), Phis([]), -Defs([Def(Tid(1_066, "%0000042a"), Attrs([Attr("address","0x668"), -Attr("insn","adrp x1, #65536")]), Var("R1",Imm(64)), Int(65536,64)), -Def(Tid(1_073, "%00000431"), Attrs([Attr("address","0x66C"), -Attr("insn","ldr x1, [x1, #0xfd8]")]), Var("R1",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R1",Imm(64)),Int(4056,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(1_078, "%00000436"), Attrs([Attr("address","0x670"), -Attr("insn","cbz x1, #0xc")]), EQ(Var("R1",Imm(64)),Int(0,64)), -Direct(Tid(634, "%0000027a"))), Goto(Tid(1_675, "%0000068b"), Attrs([]), - Int(1,1), Direct(Tid(1_082, "%0000043a")))])), Blk(Tid(634, "%0000027a"), - Attrs([Attr("address","0x67C")]), Phis([]), Defs([]), -Jmps([Call(Tid(642, "%00000282"), Attrs([Attr("address","0x67C"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))])), -Blk(Tid(1_082, "%0000043a"), Attrs([Attr("address","0x674")]), Phis([]), -Defs([Def(Tid(1_086, "%0000043e"), Attrs([Attr("address","0x674"), -Attr("insn","mov x16, x1")]), Var("R16",Imm(64)), Var("R1",Imm(64)))]), -Jmps([Call(Tid(1_091, "%00000443"), Attrs([Attr("address","0x678"), -Attr("insn","br x16")]), Int(1,1), (Indirect(Var("R16",Imm(64))),))]))])), -Sub(Tid(1_676, "@frame_dummy"), Attrs([Attr("c.proto","signed (*)(void)"), -Attr("address","0x710")]), "frame_dummy", Args([Arg(Tid(1_694, "%0000069e"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("frame_dummy_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(794, "@frame_dummy"), - Attrs([Attr("address","0x710")]), Phis([]), Defs([]), -Jmps([Call(Tid(796, "%0000031c"), Attrs([Attr("address","0x710"), -Attr("insn","b #-0x90")]), Int(1,1), -(Direct(Tid(1_678, "@register_tm_clones")),))]))])), Sub(Tid(1_677, "@main"), - Attrs([Attr("c.proto","signed (*)(signed argc, const char** argv)"), -Attr("address","0x714")]), "main", Args([Arg(Tid(1_695, "%0000069f"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("main_argc",Imm(32)), -LOW(32,Var("R0",Imm(64))), In()), Arg(Tid(1_696, "%000006a0"), - Attrs([Attr("c.layout","**[char : 8]"), Attr("c.data","Top:u8 ptr ptr"), -Attr("c.type"," const char**")]), Var("main_argv",Imm(64)), -Var("R1",Imm(64)), Both()), Arg(Tid(1_697, "%000006a1"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("main_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(798, "@main"), - Attrs([Attr("address","0x714")]), Phis([]), Defs([Def(Tid(801, "%00000321"), - Attrs([Attr("address","0x714"), Attr("insn","adrp x0, #69632")]), - Var("R0",Imm(64)), Int(69632,64)), Def(Tid(807, "%00000327"), - Attrs([Attr("address","0x718"), Attr("insn","add x0, x0, #0x1c")]), - Var("R0",Imm(64)), PLUS(Var("R0",Imm(64)),Int(28,64))), -Def(Tid(814, "%0000032e"), Attrs([Attr("address","0x71C"), -Attr("insn","ldr w1, [x0]")]), Var("R1",Imm(64)), -UNSIGNED(64,Load(Var("mem",Mem(64,8)),Var("R0",Imm(64)),LittleEndian(),32))), -Def(Tid(819, "%00000333"), Attrs([Attr("address","0x720"), -Attr("insn","adrp x0, #69632")]), Var("R0",Imm(64)), Int(69632,64)), -Def(Tid(825, "%00000339"), Attrs([Attr("address","0x724"), -Attr("insn","add x0, x0, #0x14")]), Var("R0",Imm(64)), -PLUS(Var("R0",Imm(64)),Int(20,64))), Def(Tid(833, "%00000341"), - Attrs([Attr("address","0x728"), Attr("insn","str w1, [x0]")]), - Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("R0",Imm(64)),Extract(31,0,Var("R1",Imm(64))),LittleEndian(),32)), -Def(Tid(838, "%00000346"), Attrs([Attr("address","0x72C"), -Attr("insn","adrp x0, #69632")]), Var("R0",Imm(64)), Int(69632,64)), -Def(Tid(844, "%0000034c"), Attrs([Attr("address","0x730"), -Attr("insn","add x0, x0, #0x14")]), Var("R0",Imm(64)), -PLUS(Var("R0",Imm(64)),Int(20,64))), Def(Tid(851, "%00000353"), - Attrs([Attr("address","0x734"), Attr("insn","str wzr, [x0]")]), - Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("R0",Imm(64)),Int(0,32),LittleEndian(),32)), -Def(Tid(856, "%00000358"), Attrs([Attr("address","0x738"), -Attr("insn","adrp x0, #69632")]), Var("R0",Imm(64)), Int(69632,64)), -Def(Tid(862, "%0000035e"), Attrs([Attr("address","0x73C"), -Attr("insn","add x0, x0, #0x14")]), Var("R0",Imm(64)), -PLUS(Var("R0",Imm(64)),Int(20,64))), Def(Tid(869, "%00000365"), - Attrs([Attr("address","0x740"), Attr("insn","ldr w1, [x0]")]), - Var("R1",Imm(64)), -UNSIGNED(64,Load(Var("mem",Mem(64,8)),Var("R0",Imm(64)),LittleEndian(),32))), -Def(Tid(874, "%0000036a"), Attrs([Attr("address","0x744"), -Attr("insn","adrp x0, #69632")]), Var("R0",Imm(64)), Int(69632,64)), -Def(Tid(880, "%00000370"), Attrs([Attr("address","0x748"), -Attr("insn","add x0, x0, #0x18")]), Var("R0",Imm(64)), -PLUS(Var("R0",Imm(64)),Int(24,64))), Def(Tid(888, "%00000378"), - Attrs([Attr("address","0x74C"), Attr("insn","str w1, [x0]")]), - Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("R0",Imm(64)),Extract(31,0,Var("R1",Imm(64))),LittleEndian(),32)), -Def(Tid(893, "%0000037d"), Attrs([Attr("address","0x750"), -Attr("insn","adrp x0, #69632")]), Var("R0",Imm(64)), Int(69632,64)), -Def(Tid(899, "%00000383"), Attrs([Attr("address","0x754"), -Attr("insn","add x0, x0, #0x1c")]), Var("R0",Imm(64)), -PLUS(Var("R0",Imm(64)),Int(28,64))), Def(Tid(906, "%0000038a"), - Attrs([Attr("address","0x758"), Attr("insn","ldr w1, [x0]")]), - Var("R1",Imm(64)), -UNSIGNED(64,Load(Var("mem",Mem(64,8)),Var("R0",Imm(64)),LittleEndian(),32))), -Def(Tid(911, "%0000038f"), Attrs([Attr("address","0x75C"), -Attr("insn","adrp x0, #69632")]), Var("R0",Imm(64)), Int(69632,64)), -Def(Tid(917, "%00000395"), Attrs([Attr("address","0x760"), -Attr("insn","add x0, x0, #0x14")]), Var("R0",Imm(64)), -PLUS(Var("R0",Imm(64)),Int(20,64))), Def(Tid(925, "%0000039d"), - Attrs([Attr("address","0x764"), Attr("insn","str w1, [x0]")]), - Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("R0",Imm(64)),Extract(31,0,Var("R1",Imm(64))),LittleEndian(),32)), -Def(Tid(930, "%000003a2"), Attrs([Attr("address","0x768"), -Attr("insn","adrp x0, #69632")]), Var("R0",Imm(64)), Int(69632,64)), -Def(Tid(936, "%000003a8"), Attrs([Attr("address","0x76C"), -Attr("insn","add x0, x0, #0x14")]), Var("R0",Imm(64)), -PLUS(Var("R0",Imm(64)),Int(20,64))), Def(Tid(943, "%000003af"), - Attrs([Attr("address","0x770"), Attr("insn","ldr w1, [x0]")]), - Var("R1",Imm(64)), -UNSIGNED(64,Load(Var("mem",Mem(64,8)),Var("R0",Imm(64)),LittleEndian(),32))), -Def(Tid(948, "%000003b4"), Attrs([Attr("address","0x774"), -Attr("insn","adrp x0, #69632")]), Var("R0",Imm(64)), Int(69632,64)), -Def(Tid(954, "%000003ba"), Attrs([Attr("address","0x778"), -Attr("insn","add x0, x0, #0x18")]), Var("R0",Imm(64)), -PLUS(Var("R0",Imm(64)),Int(24,64))), Def(Tid(962, "%000003c2"), - Attrs([Attr("address","0x77C"), Attr("insn","str w1, [x0]")]), - Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("R0",Imm(64)),Extract(31,0,Var("R1",Imm(64))),LittleEndian(),32)), -Def(Tid(967, "%000003c7"), Attrs([Attr("address","0x780"), -Attr("insn","mov w0, #0x0")]), Var("R0",Imm(64)), Int(0,64))]), -Jmps([Call(Tid(972, "%000003cc"), Attrs([Attr("address","0x784"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))]))])), -Sub(Tid(1_678, "@register_tm_clones"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x680")]), - "register_tm_clones", Args([Arg(Tid(1_698, "%000006a2"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("register_tm_clones_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(644, "@register_tm_clones"), Attrs([Attr("address","0x680")]), - Phis([]), Defs([Def(Tid(647, "%00000287"), Attrs([Attr("address","0x680"), -Attr("insn","adrp x0, #69632")]), Var("R0",Imm(64)), Int(69632,64)), -Def(Tid(653, "%0000028d"), Attrs([Attr("address","0x684"), -Attr("insn","add x0, x0, #0x10")]), Var("R0",Imm(64)), -PLUS(Var("R0",Imm(64)),Int(16,64))), Def(Tid(658, "%00000292"), - Attrs([Attr("address","0x688"), Attr("insn","adrp x1, #69632")]), - Var("R1",Imm(64)), Int(69632,64)), Def(Tid(664, "%00000298"), - Attrs([Attr("address","0x68C"), Attr("insn","add x1, x1, #0x10")]), - Var("R1",Imm(64)), PLUS(Var("R1",Imm(64)),Int(16,64))), -Def(Tid(671, "%0000029f"), Attrs([Attr("address","0x690"), -Attr("insn","sub x1, x1, x0")]), Var("R1",Imm(64)), -PLUS(PLUS(Var("R1",Imm(64)),NOT(Var("R0",Imm(64)))),Int(1,64))), -Def(Tid(677, "%000002a5"), Attrs([Attr("address","0x694"), -Attr("insn","lsr x2, x1, #63")]), Var("R2",Imm(64)), -Concat(Int(0,63),Extract(63,63,Var("R1",Imm(64))))), -Def(Tid(684, "%000002ac"), Attrs([Attr("address","0x698"), -Attr("insn","add x1, x2, x1, asr #3")]), Var("R1",Imm(64)), -PLUS(Var("R2",Imm(64)),ARSHIFT(Var("R1",Imm(64)),Int(3,3)))), -Def(Tid(690, "%000002b2"), Attrs([Attr("address","0x69C"), -Attr("insn","asr x1, x1, #1")]), Var("R1",Imm(64)), -SIGNED(64,Extract(63,1,Var("R1",Imm(64)))))]), -Jmps([Goto(Tid(696, "%000002b8"), Attrs([Attr("address","0x6A0"), -Attr("insn","cbz x1, #0x18")]), EQ(Var("R1",Imm(64)),Int(0,64)), -Direct(Tid(694, "%000002b6"))), Goto(Tid(1_679, "%0000068f"), Attrs([]), - Int(1,1), Direct(Tid(1_033, "%00000409")))])), Blk(Tid(1_033, "%00000409"), - Attrs([Attr("address","0x6A4")]), Phis([]), -Defs([Def(Tid(1_036, "%0000040c"), Attrs([Attr("address","0x6A4"), -Attr("insn","adrp x2, #65536")]), Var("R2",Imm(64)), Int(65536,64)), -Def(Tid(1_043, "%00000413"), Attrs([Attr("address","0x6A8"), -Attr("insn","ldr x2, [x2, #0xff8]")]), Var("R2",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R2",Imm(64)),Int(4088,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(1_048, "%00000418"), Attrs([Attr("address","0x6AC"), -Attr("insn","cbz x2, #0xc")]), EQ(Var("R2",Imm(64)),Int(0,64)), -Direct(Tid(694, "%000002b6"))), Goto(Tid(1_680, "%00000690"), Attrs([]), - Int(1,1), Direct(Tid(1_052, "%0000041c")))])), Blk(Tid(694, "%000002b6"), - Attrs([Attr("address","0x6B8")]), Phis([]), Defs([]), -Jmps([Call(Tid(702, "%000002be"), Attrs([Attr("address","0x6B8"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))])), -Blk(Tid(1_052, "%0000041c"), Attrs([Attr("address","0x6B0")]), Phis([]), -Defs([Def(Tid(1_056, "%00000420"), Attrs([Attr("address","0x6B0"), -Attr("insn","mov x16, x2")]), Var("R16",Imm(64)), Var("R2",Imm(64)))]), -Jmps([Call(Tid(1_061, "%00000425"), Attrs([Attr("address","0x6B4"), -Attr("insn","br x16")]), Int(1,1), -(Indirect(Var("R16",Imm(64))),))]))]))]))) \ No newline at end of file diff --git a/src/test/incorrect/basicassign/gcc/basicassign.bir b/src/test/incorrect/basicassign/gcc/basicassign.bir deleted file mode 100644 index f6ab62bb7..000000000 --- a/src/test/incorrect/basicassign/gcc/basicassign.bir +++ /dev/null @@ -1,251 +0,0 @@ -00000691: program -0000067b: sub __cxa_finalize(__cxa_finalize_result) -00000692: __cxa_finalize_result :: out u32 = low:32[R0] - -00000405: -000004fd: R16 := 0x10000 -00000504: R17 := mem[R16 + 0xFB8, el]:u64 -0000050a: R16 := R16 + 0xFB8 -0000050f: call R17 with noreturn - -0000067c: sub __do_global_dtors_aux(__do_global_dtors_aux_result) -00000693: __do_global_dtors_aux_result :: out u32 = low:32[R0] - -000002c2: -000002c6: #3 := R31 - 0x20 -000002cc: mem := mem with [#3, el]:u64 <- R29 -000002d2: mem := mem with [#3 + 8, el]:u64 <- R30 -000002d6: R31 := #3 -000002dc: R29 := R31 -000002e4: mem := mem with [R31 + 0x10, el]:u64 <- R19 -000002e9: R19 := 0x11000 -000002f0: R0 := pad:64[mem[R19 + 0x10]] -000002f7: when 31:0[R0] <> 0 goto %000002f5 -0000067d: goto %000003ce - -000003ce: -000003d1: R0 := 0x10000 -000003d8: R0 := mem[R0 + 0xFE0, el]:u64 -000003de: when R0 = 0 goto %000003dc -0000067e: goto %000003f5 - -000003f5: -000003f8: R0 := 0x11000 -000003ff: R0 := mem[R0 + 8, el]:u64 -00000404: R30 := 0x6F0 -00000407: call @__cxa_finalize with return %000003dc - -000003dc: -000003e4: R30 := 0x6F4 -000003e6: call @deregister_tm_clones with return %000003e8 - -000003e8: -000003eb: R0 := 1 -000003f3: mem := mem with [R19 + 0x10] <- 7:0[R0] -0000067f: goto %000002f5 - -000002f5: -000002ff: R19 := mem[R31 + 0x10, el]:u64 -00000306: R29 := mem[R31, el]:u64 -0000030b: R30 := mem[R31 + 8, el]:u64 -0000030f: R31 := R31 + 0x20 -00000314: call R30 with noreturn - -00000680: sub __libc_start_main(__libc_start_main_main, __libc_start_main_arg2, __libc_start_main_arg3, __libc_start_main_auxv, __libc_start_main_result) -00000694: __libc_start_main_main :: in u64 = R0 -00000695: __libc_start_main_arg2 :: in u32 = low:32[R1] -00000696: __libc_start_main_arg3 :: in out u64 = R2 -00000697: __libc_start_main_auxv :: in out u64 = R3 -00000698: __libc_start_main_result :: out u32 = low:32[R0] - -0000021b: -000004e7: R16 := 0x10000 -000004ee: R17 := mem[R16 + 0xFB0, el]:u64 -000004f4: R16 := R16 + 0xFB0 -000004f9: call R17 with noreturn - -00000681: sub _fini(_fini_result) -00000699: _fini_result :: out u32 = low:32[R0] - -0000001f: -00000025: #0 := R31 - 0x10 -0000002b: mem := mem with [#0, el]:u64 <- R29 -00000031: mem := mem with [#0 + 8, el]:u64 <- R30 -00000035: R31 := #0 -0000003b: R29 := R31 -00000042: R29 := mem[R31, el]:u64 -00000047: R30 := mem[R31 + 8, el]:u64 -0000004b: R31 := R31 + 0x10 -00000050: call R30 with noreturn - -00000682: sub _init(_init_result) -0000069a: _init_result :: out u32 = low:32[R0] - -000005c0: -000005c6: #5 := R31 - 0x10 -000005cc: mem := mem with [#5, el]:u64 <- R29 -000005d2: mem := mem with [#5 + 8, el]:u64 <- R30 -000005d6: R31 := #5 -000005dc: R29 := R31 -000005e1: R30 := 0x590 -000005e3: call @call_weak_fn with return %000005e5 - -000005e5: -000005ea: R29 := mem[R31, el]:u64 -000005ef: R30 := mem[R31 + 8, el]:u64 -000005f3: R31 := R31 + 0x10 -000005f8: call R30 with noreturn - -00000683: sub _start(_start_result) -0000069b: _start_result :: out u32 = low:32[R0] - -000001dc: -000001e1: R29 := 0 -000001e6: R30 := 0 -000001ec: R5 := R0 -000001f3: R1 := mem[R31, el]:u64 -000001f9: R2 := R31 + 8 -000001ff: R6 := R31 -00000204: R0 := 0x10000 -0000020b: R0 := mem[R0 + 0xFF0, el]:u64 -00000210: R3 := 0 -00000215: R4 := 0 -0000021a: R30 := 0x630 -0000021d: call @__libc_start_main with return %0000021f - -0000021f: -00000222: R30 := 0x634 -00000225: call @abort with return %00000684 - -00000684: -00000685: call @call_weak_fn with noreturn - -00000686: sub abort() - - -00000223: -00000529: R16 := 0x10000 -00000530: R17 := mem[R16 + 0xFC8, el]:u64 -00000536: R16 := R16 + 0xFC8 -0000053b: call R17 with noreturn - -00000687: sub call_weak_fn(call_weak_fn_result) -0000069c: call_weak_fn_result :: out u32 = low:32[R0] - -00000227: -0000022a: R0 := 0x10000 -00000231: R0 := mem[R0 + 0xFE8, el]:u64 -00000237: when R0 = 0 goto %00000235 -00000688: goto %00000445 - -00000235: -0000023d: call R30 with noreturn - -00000445: -00000448: goto @__gmon_start__ - -00000446: -00000513: R16 := 0x10000 -0000051a: R17 := mem[R16 + 0xFC0, el]:u64 -00000520: R16 := R16 + 0xFC0 -00000525: call R17 with noreturn - -00000689: sub deregister_tm_clones(deregister_tm_clones_result) -0000069d: deregister_tm_clones_result :: out u32 = low:32[R0] - -00000243: -00000246: R0 := 0x11000 -0000024c: R0 := R0 + 0x10 -00000251: R1 := 0x11000 -00000257: R1 := R1 + 0x10 -0000025d: #1 := ~R0 -00000262: #2 := R1 + ~R0 -00000268: VF := extend:65[#2 + 1] <> extend:65[R1] + extend:65[#1] + 1 -0000026e: CF := pad:65[#2 + 1] <> pad:65[R1] + pad:65[#1] + 1 -00000272: ZF := #2 + 1 = 0 -00000276: NF := 63:63[#2 + 1] -0000027c: when ZF goto %0000027a -0000068a: goto %00000427 - -00000427: -0000042a: R1 := 0x10000 -00000431: R1 := mem[R1 + 0xFD8, el]:u64 -00000436: when R1 = 0 goto %0000027a -0000068b: goto %0000043a - -0000027a: -00000282: call R30 with noreturn - -0000043a: -0000043e: R16 := R1 -00000443: call R16 with noreturn - -0000068c: sub frame_dummy(frame_dummy_result) -0000069e: frame_dummy_result :: out u32 = low:32[R0] - -0000031a: -0000031c: call @register_tm_clones with noreturn - -0000068d: sub main(main_argc, main_argv, main_result) -0000069f: main_argc :: in u32 = low:32[R0] -000006a0: main_argv :: in out u64 = R1 -000006a1: main_result :: out u32 = low:32[R0] - -0000031e: -00000321: R0 := 0x11000 -00000327: R0 := R0 + 0x1C -0000032e: R1 := pad:64[mem[R0, el]:u32] -00000333: R0 := 0x11000 -00000339: R0 := R0 + 0x14 -00000341: mem := mem with [R0, el]:u32 <- 31:0[R1] -00000346: R0 := 0x11000 -0000034c: R0 := R0 + 0x14 -00000353: mem := mem with [R0, el]:u32 <- 0 -00000358: R0 := 0x11000 -0000035e: R0 := R0 + 0x14 -00000365: R1 := pad:64[mem[R0, el]:u32] -0000036a: R0 := 0x11000 -00000370: R0 := R0 + 0x18 -00000378: mem := mem with [R0, el]:u32 <- 31:0[R1] -0000037d: R0 := 0x11000 -00000383: R0 := R0 + 0x1C -0000038a: R1 := pad:64[mem[R0, el]:u32] -0000038f: R0 := 0x11000 -00000395: R0 := R0 + 0x14 -0000039d: mem := mem with [R0, el]:u32 <- 31:0[R1] -000003a2: R0 := 0x11000 -000003a8: R0 := R0 + 0x14 -000003af: R1 := pad:64[mem[R0, el]:u32] -000003b4: R0 := 0x11000 -000003ba: R0 := R0 + 0x18 -000003c2: mem := mem with [R0, el]:u32 <- 31:0[R1] -000003c7: R0 := 0 -000003cc: call R30 with noreturn - -0000068e: sub register_tm_clones(register_tm_clones_result) -000006a2: register_tm_clones_result :: out u32 = low:32[R0] - -00000284: -00000287: R0 := 0x11000 -0000028d: R0 := R0 + 0x10 -00000292: R1 := 0x11000 -00000298: R1 := R1 + 0x10 -0000029f: R1 := R1 + ~R0 + 1 -000002a5: R2 := 0.63:63[R1] -000002ac: R1 := R2 + (R1 ~>> 3) -000002b2: R1 := extend:64[63:1[R1]] -000002b8: when R1 = 0 goto %000002b6 -0000068f: goto %00000409 - -00000409: -0000040c: R2 := 0x10000 -00000413: R2 := mem[R2 + 0xFF8, el]:u64 -00000418: when R2 = 0 goto %000002b6 -00000690: goto %0000041c - -000002b6: -000002be: call R30 with noreturn - -0000041c: -00000420: R16 := R2 -00000425: call R16 with noreturn diff --git a/src/test/incorrect/basicassign/gcc/basicassign.expected b/src/test/incorrect/basicassign/gcc/basicassign.expected index 4448e7a61..85ab546ca 100644 --- a/src/test/incorrect/basicassign/gcc/basicassign.expected +++ b/src/test/incorrect/basicassign/gcc/basicassign.expected @@ -1,15 +1,19 @@ var {:extern} Gamma_R0: bool; var {:extern} Gamma_R1: bool; +var {:extern} Gamma_R2: bool; +var {:extern} Gamma_R3: bool; var {:extern} Gamma_mem: [bv64]bool; var {:extern} R0: bv64; var {:extern} R1: bv64; +var {:extern} R2: bv64; +var {:extern} R3: bv64; var {:extern} mem: [bv64]bv8; const {:extern} $secret_addr: bv64; -axiom ($secret_addr == 69660bv64); +axiom ($secret_addr == 4325396bv64); const {:extern} $x_addr: bv64; -axiom ($x_addr == 69652bv64); +axiom ($x_addr == 4325404bv64); const {:extern} $z_addr: bv64; -axiom ($z_addr == 69656bv64); +axiom ($z_addr == 4325400bv64); function {:extern} L(mem$in: [bv64]bv8, index: bv64) returns (bool) { (if (index == $z_addr) then true else (if (index == $secret_addr) then false else (if (index == $x_addr) then false else false))) } @@ -19,6 +23,10 @@ function {:extern} gamma_load32(gammaMap: [bv64]bool, index: bv64) returns (bool (gammaMap[bvadd64(index, 3bv64)] && (gammaMap[bvadd64(index, 2bv64)] && (gammaMap[bvadd64(index, 1bv64)] && gammaMap[index]))) } +function {:extern} gamma_load64(gammaMap: [bv64]bool, index: bv64) returns (bool) { + (gammaMap[bvadd64(index, 7bv64)] && (gammaMap[bvadd64(index, 6bv64)] && (gammaMap[bvadd64(index, 5bv64)] && (gammaMap[bvadd64(index, 4bv64)] && (gammaMap[bvadd64(index, 3bv64)] && (gammaMap[bvadd64(index, 2bv64)] && (gammaMap[bvadd64(index, 1bv64)] && gammaMap[index]))))))) +} + function {:extern} gamma_store32(gammaMap: [bv64]bool, index: bv64, value: bool) returns ([bv64]bool) { gammaMap[index := value][bvadd64(index, 1bv64) := value][bvadd64(index, 2bv64) := value][bvadd64(index, 3bv64) := value] } @@ -40,11 +48,7 @@ procedure {:extern} rely(); modifies Gamma_mem, mem; ensures (forall i: bv64 :: (((mem[i] == old(mem[i])) ==> (Gamma_mem[i] == old(Gamma_mem[i]))))); ensures (memory_load32_le(mem, $x_addr) == old(memory_load32_le(mem, $x_addr))); - free ensures (memory_load32_le(mem, 1948bv64) == 131073bv32); - free ensures (memory_load64_le(mem, 69016bv64) == 1808bv64); - free ensures (memory_load64_le(mem, 69024bv64) == 1728bv64); - free ensures (memory_load64_le(mem, 69616bv64) == 1812bv64); - free ensures (memory_load64_le(mem, 69640bv64) == 69640bv64); + free ensures (memory_load32_le(mem, 4196312bv64) == 131073bv32); procedure {:extern} rely_transitive(); modifies Gamma_mem, mem; @@ -66,87 +70,52 @@ implementation {:extern} rely_reflexive() procedure {:extern} guarantee_reflexive(); modifies Gamma_mem, mem; -procedure main_1812(); - modifies Gamma_R0, Gamma_R1, Gamma_mem, R0, R1, mem; - free requires (memory_load64_le(mem, 69632bv64) == 0bv64); - free requires (memory_load64_le(mem, 69640bv64) == 69640bv64); - free requires (memory_load32_le(mem, 1948bv64) == 131073bv32); - free requires (memory_load64_le(mem, 69016bv64) == 1808bv64); - free requires (memory_load64_le(mem, 69024bv64) == 1728bv64); - free requires (memory_load64_le(mem, 69616bv64) == 1812bv64); - free requires (memory_load64_le(mem, 69640bv64) == 69640bv64); - free ensures (memory_load32_le(mem, 1948bv64) == 131073bv32); - free ensures (memory_load64_le(mem, 69016bv64) == 1808bv64); - free ensures (memory_load64_le(mem, 69024bv64) == 1728bv64); - free ensures (memory_load64_le(mem, 69616bv64) == 1812bv64); - free ensures (memory_load64_le(mem, 69640bv64) == 69640bv64); +procedure main(); + modifies Gamma_R0, Gamma_R1, Gamma_R2, Gamma_R3, Gamma_mem, R0, R1, R2, R3, mem; + free requires (memory_load64_le(mem, 4325376bv64) == 0bv64); + free requires (memory_load64_le(mem, 4325384bv64) == 0bv64); + free requires (memory_load32_le(mem, 4196312bv64) == 131073bv32); + free ensures (memory_load32_le(mem, 4196312bv64) == 131073bv32); -implementation main_1812() +implementation main() { - var Gamma_load18: bool; - var Gamma_load19: bool; - var Gamma_load20: bool; - var Gamma_load21: bool; - var load18: bv32; - var load19: bv32; - var load20: bv32; - var load21: bv32; + var $load$14: bv64; + var $load$15: bv64; + var $load$16: bv64; + var $load$17: bv32; + var Gamma_$load$14: bool; + var Gamma_$load$15: bool; + var Gamma_$load$16: bool; + var Gamma_$load$17: bool; lmain: assume {:captureState "lmain"} true; - R0, Gamma_R0 := 69632bv64, true; - R0, Gamma_R0 := bvadd64(R0, 28bv64), Gamma_R0; - call rely(); - load18, Gamma_load18 := memory_load32_le(mem, R0), (gamma_load32(Gamma_mem, R0) || L(mem, R0)); - R1, Gamma_R1 := zero_extend32_32(load18), Gamma_load18; - R0, Gamma_R0 := 69632bv64, true; - R0, Gamma_R0 := bvadd64(R0, 20bv64), Gamma_R0; - call rely(); - assert (L(mem, R0) ==> Gamma_R1); - mem, Gamma_mem := memory_store32_le(mem, R0, R1[32:0]), gamma_store32(Gamma_mem, R0, Gamma_R1); - assume {:captureState "%00000341"} true; - R0, Gamma_R0 := 69632bv64, true; - R0, Gamma_R0 := bvadd64(R0, 20bv64), Gamma_R0; + R2, Gamma_R2 := 4321280bv64, true; call rely(); - assert (L(mem, R0) ==> true); - mem, Gamma_mem := memory_store32_le(mem, R0, 0bv32), gamma_store32(Gamma_mem, R0, true); - assume {:captureState "%00000353"} true; - R0, Gamma_R0 := 69632bv64, true; - R0, Gamma_R0 := bvadd64(R0, 20bv64), Gamma_R0; - call rely(); - load19, Gamma_load19 := memory_load32_le(mem, R0), (gamma_load32(Gamma_mem, R0) || L(mem, R0)); - R1, Gamma_R1 := zero_extend32_32(load19), Gamma_load19; - R0, Gamma_R0 := 69632bv64, true; - R0, Gamma_R0 := bvadd64(R0, 24bv64), Gamma_R0; + $load$14, Gamma_$load$14 := memory_load64_le(mem, bvadd64(R2, 4080bv64)), (gamma_load64(Gamma_mem, bvadd64(R2, 4080bv64)) || L(mem, bvadd64(R2, 4080bv64))); + R2, Gamma_R2 := $load$14, Gamma_$load$14; + R0, Gamma_R0 := 0bv64, true; + R1, Gamma_R1 := 4321280bv64, true; call rely(); - assert (L(mem, R0) ==> Gamma_R1); - mem, Gamma_mem := memory_store32_le(mem, R0, R1[32:0]), gamma_store32(Gamma_mem, R0, Gamma_R1); - assume {:captureState "%00000378"} true; - R0, Gamma_R0 := 69632bv64, true; - R0, Gamma_R0 := bvadd64(R0, 28bv64), Gamma_R0; + $load$15, Gamma_$load$15 := memory_load64_le(mem, bvadd64(R1, 4064bv64)), (gamma_load64(Gamma_mem, bvadd64(R1, 4064bv64)) || L(mem, bvadd64(R1, 4064bv64))); + R1, Gamma_R1 := $load$15, Gamma_$load$15; + R3, Gamma_R3 := 4321280bv64, true; call rely(); - load20, Gamma_load20 := memory_load32_le(mem, R0), (gamma_load32(Gamma_mem, R0) || L(mem, R0)); - R1, Gamma_R1 := zero_extend32_32(load20), Gamma_load20; - R0, Gamma_R0 := 69632bv64, true; - R0, Gamma_R0 := bvadd64(R0, 20bv64), Gamma_R0; + $load$16, Gamma_$load$16 := memory_load64_le(mem, bvadd64(R3, 4056bv64)), (gamma_load64(Gamma_mem, bvadd64(R3, 4056bv64)) || L(mem, bvadd64(R3, 4056bv64))); + R3, Gamma_R3 := $load$16, Gamma_$load$16; call rely(); - assert (L(mem, R0) ==> Gamma_R1); - mem, Gamma_mem := memory_store32_le(mem, R0, R1[32:0]), gamma_store32(Gamma_mem, R0, Gamma_R1); - assume {:captureState "%0000039d"} true; - R0, Gamma_R0 := 69632bv64, true; - R0, Gamma_R0 := bvadd64(R0, 20bv64), Gamma_R0; + $load$17, Gamma_$load$17 := memory_load32_le(mem, R2), (gamma_load32(Gamma_mem, R2) || L(mem, R2)); + R2, Gamma_R2 := zero_extend32_32($load$17), Gamma_$load$17; call rely(); - load21, Gamma_load21 := memory_load32_le(mem, R0), (gamma_load32(Gamma_mem, R0) || L(mem, R0)); - R1, Gamma_R1 := zero_extend32_32(load21), Gamma_load21; - R0, Gamma_R0 := 69632bv64, true; - R0, Gamma_R0 := bvadd64(R0, 24bv64), Gamma_R0; + assert (L(mem, R1) ==> Gamma_R2); + mem, Gamma_mem := memory_store32_le(mem, R1, R2[32:0]), gamma_store32(Gamma_mem, R1, Gamma_R2); + assume {:captureState "%00000268"} true; call rely(); - assert (L(mem, R0) ==> Gamma_R1); - mem, Gamma_mem := memory_store32_le(mem, R0, R1[32:0]), gamma_store32(Gamma_mem, R0, Gamma_R1); - assume {:captureState "%000003c2"} true; - R0, Gamma_R0 := 0bv64, true; - goto main_1812_basil_return; - main_1812_basil_return: - assume {:captureState "main_1812_basil_return"} true; + assert (L(mem, R3) ==> Gamma_R2); + mem, Gamma_mem := memory_store32_le(mem, R3, R2[32:0]), gamma_store32(Gamma_mem, R3, Gamma_R2); + assume {:captureState "%0000026c"} true; + goto main_basil_return; + main_basil_return: + assume {:captureState "main_basil_return"} true; return; } diff --git a/src/test/incorrect/basicassign/gcc/basicassign.gts b/src/test/incorrect/basicassign/gcc/basicassign.gts deleted file mode 100644 index 0f112e82b..000000000 Binary files a/src/test/incorrect/basicassign/gcc/basicassign.gts and /dev/null differ diff --git a/src/test/incorrect/basicassign/gcc/basicassign.md5sum b/src/test/incorrect/basicassign/gcc/basicassign.md5sum new file mode 100644 index 000000000..6143fab28 --- /dev/null +++ b/src/test/incorrect/basicassign/gcc/basicassign.md5sum @@ -0,0 +1,5 @@ +422eb8033107856b45121128ffb26e30 incorrect/basicassign/gcc/a.out +5726552f38009a0fd92f763808207a11 incorrect/basicassign/gcc/basicassign.adt +fb5e548ac239684e39fa3796826f75d4 incorrect/basicassign/gcc/basicassign.bir +8a7f22f9351b0905bdba908fad44d341 incorrect/basicassign/gcc/basicassign.relf +e7f1232438d381981fe46e2044bc1405 incorrect/basicassign/gcc/basicassign.gts diff --git a/src/test/incorrect/basicassign/gcc/basicassign.relf b/src/test/incorrect/basicassign/gcc/basicassign.relf deleted file mode 100644 index 033fd2d6a..000000000 --- a/src/test/incorrect/basicassign/gcc/basicassign.relf +++ /dev/null @@ -1,123 +0,0 @@ - -Relocation section '.rela.dyn' at offset 0x460 contains 8 entries: - Offset Info Type Symbol's Value Symbol's Name + Addend -0000000000010d98 0000000000000403 R_AARCH64_RELATIVE 710 -0000000000010da0 0000000000000403 R_AARCH64_RELATIVE 6c0 -0000000000010ff0 0000000000000403 R_AARCH64_RELATIVE 714 -0000000000011008 0000000000000403 R_AARCH64_RELATIVE 11008 -0000000000010fd8 0000000400000401 R_AARCH64_GLOB_DAT 0000000000000000 _ITM_deregisterTMCloneTable + 0 -0000000000010fe0 0000000500000401 R_AARCH64_GLOB_DAT 0000000000000000 __cxa_finalize@GLIBC_2.17 + 0 -0000000000010fe8 0000000600000401 R_AARCH64_GLOB_DAT 0000000000000000 __gmon_start__ + 0 -0000000000010ff8 0000000800000401 R_AARCH64_GLOB_DAT 0000000000000000 _ITM_registerTMCloneTable + 0 - -Relocation section '.rela.plt' at offset 0x520 contains 4 entries: - Offset Info Type Symbol's Value Symbol's Name + Addend -0000000000010fb0 0000000300000402 R_AARCH64_JUMP_SLOT 0000000000000000 __libc_start_main@GLIBC_2.34 + 0 -0000000000010fb8 0000000500000402 R_AARCH64_JUMP_SLOT 0000000000000000 __cxa_finalize@GLIBC_2.17 + 0 -0000000000010fc0 0000000600000402 R_AARCH64_JUMP_SLOT 0000000000000000 __gmon_start__ + 0 -0000000000010fc8 0000000700000402 R_AARCH64_JUMP_SLOT 0000000000000000 abort@GLIBC_2.17 + 0 - -Symbol table '.dynsym' contains 9 entries: - Num: Value Size Type Bind Vis Ndx Name - 0: 0000000000000000 0 NOTYPE LOCAL DEFAULT UND - 1: 0000000000000580 0 SECTION LOCAL DEFAULT 11 .init - 2: 0000000000011000 0 SECTION LOCAL DEFAULT 22 .data - 3: 0000000000000000 0 FUNC GLOBAL DEFAULT UND __libc_start_main@GLIBC_2.34 (2) - 4: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_deregisterTMCloneTable - 5: 0000000000000000 0 FUNC WEAK DEFAULT UND __cxa_finalize@GLIBC_2.17 (3) - 6: 0000000000000000 0 NOTYPE WEAK DEFAULT UND __gmon_start__ - 7: 0000000000000000 0 FUNC GLOBAL DEFAULT UND abort@GLIBC_2.17 (3) - 8: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_registerTMCloneTable - -Symbol table '.symtab' contains 90 entries: - Num: Value Size Type Bind Vis Ndx Name - 0: 0000000000000000 0 NOTYPE LOCAL DEFAULT UND - 1: 0000000000000238 0 SECTION LOCAL DEFAULT 1 .interp - 2: 0000000000000254 0 SECTION LOCAL DEFAULT 2 .note.gnu.build-id - 3: 0000000000000278 0 SECTION LOCAL DEFAULT 3 .note.ABI-tag - 4: 0000000000000298 0 SECTION LOCAL DEFAULT 4 .gnu.hash - 5: 00000000000002b8 0 SECTION LOCAL DEFAULT 5 .dynsym - 6: 0000000000000390 0 SECTION LOCAL DEFAULT 6 .dynstr - 7: 000000000000041e 0 SECTION LOCAL DEFAULT 7 .gnu.version - 8: 0000000000000430 0 SECTION LOCAL DEFAULT 8 .gnu.version_r - 9: 0000000000000460 0 SECTION LOCAL DEFAULT 9 .rela.dyn - 10: 0000000000000520 0 SECTION LOCAL DEFAULT 10 .rela.plt - 11: 0000000000000580 0 SECTION LOCAL DEFAULT 11 .init - 12: 00000000000005a0 0 SECTION LOCAL DEFAULT 12 .plt - 13: 0000000000000600 0 SECTION LOCAL DEFAULT 13 .text - 14: 0000000000000788 0 SECTION LOCAL DEFAULT 14 .fini - 15: 000000000000079c 0 SECTION LOCAL DEFAULT 15 .rodata - 16: 00000000000007a0 0 SECTION LOCAL DEFAULT 16 .eh_frame_hdr - 17: 00000000000007e0 0 SECTION LOCAL DEFAULT 17 .eh_frame - 18: 0000000000010d98 0 SECTION LOCAL DEFAULT 18 .init_array - 19: 0000000000010da0 0 SECTION LOCAL DEFAULT 19 .fini_array - 20: 0000000000010da8 0 SECTION LOCAL DEFAULT 20 .dynamic - 21: 0000000000010f98 0 SECTION LOCAL DEFAULT 21 .got - 22: 0000000000011000 0 SECTION LOCAL DEFAULT 22 .data - 23: 0000000000011010 0 SECTION LOCAL DEFAULT 23 .bss - 24: 0000000000000000 0 SECTION LOCAL DEFAULT 24 .comment - 25: 0000000000000000 0 FILE LOCAL DEFAULT ABS Scrt1.o - 26: 0000000000000278 0 NOTYPE LOCAL DEFAULT 3 $d - 27: 0000000000000278 32 OBJECT LOCAL DEFAULT 3 __abi_tag - 28: 0000000000000600 0 NOTYPE LOCAL DEFAULT 13 $x - 29: 00000000000007f4 0 NOTYPE LOCAL DEFAULT 17 $d - 30: 000000000000079c 0 NOTYPE LOCAL DEFAULT 15 $d - 31: 0000000000000000 0 FILE LOCAL DEFAULT ABS crti.o - 32: 0000000000000634 0 NOTYPE LOCAL DEFAULT 13 $x - 33: 0000000000000634 20 FUNC LOCAL DEFAULT 13 call_weak_fn - 34: 0000000000000580 0 NOTYPE LOCAL DEFAULT 11 $x - 35: 0000000000000788 0 NOTYPE LOCAL DEFAULT 14 $x - 36: 0000000000000000 0 FILE LOCAL DEFAULT ABS crtn.o - 37: 0000000000000590 0 NOTYPE LOCAL DEFAULT 11 $x - 38: 0000000000000794 0 NOTYPE LOCAL DEFAULT 14 $x - 39: 0000000000000000 0 FILE LOCAL DEFAULT ABS crtstuff.c - 40: 0000000000000650 0 NOTYPE LOCAL DEFAULT 13 $x - 41: 0000000000000650 0 FUNC LOCAL DEFAULT 13 deregister_tm_clones - 42: 0000000000000680 0 FUNC LOCAL DEFAULT 13 register_tm_clones - 43: 0000000000011008 0 NOTYPE LOCAL DEFAULT 22 $d - 44: 00000000000006c0 0 FUNC LOCAL DEFAULT 13 __do_global_dtors_aux - 45: 0000000000011010 1 OBJECT LOCAL DEFAULT 23 completed.0 - 46: 0000000000010da0 0 NOTYPE LOCAL DEFAULT 19 $d - 47: 0000000000010da0 0 OBJECT LOCAL DEFAULT 19 __do_global_dtors_aux_fini_array_entry - 48: 0000000000000710 0 FUNC LOCAL DEFAULT 13 frame_dummy - 49: 0000000000010d98 0 NOTYPE LOCAL DEFAULT 18 $d - 50: 0000000000010d98 0 OBJECT LOCAL DEFAULT 18 __frame_dummy_init_array_entry - 51: 0000000000000808 0 NOTYPE LOCAL DEFAULT 17 $d - 52: 0000000000011010 0 NOTYPE LOCAL DEFAULT 23 $d - 53: 0000000000000000 0 FILE LOCAL DEFAULT ABS basicassign.c - 54: 0000000000011014 0 NOTYPE LOCAL DEFAULT 23 $d - 55: 0000000000000714 0 NOTYPE LOCAL DEFAULT 13 $x - 56: 0000000000000868 0 NOTYPE LOCAL DEFAULT 17 $d - 57: 0000000000000000 0 FILE LOCAL DEFAULT ABS crtstuff.c - 58: 000000000000087c 0 NOTYPE LOCAL DEFAULT 17 $d - 59: 000000000000087c 0 OBJECT LOCAL DEFAULT 17 __FRAME_END__ - 60: 0000000000000000 0 FILE LOCAL DEFAULT ABS - 61: 0000000000010da8 0 OBJECT LOCAL DEFAULT ABS _DYNAMIC - 62: 00000000000007a0 0 NOTYPE LOCAL DEFAULT 16 __GNU_EH_FRAME_HDR - 63: 0000000000010fd0 0 OBJECT LOCAL DEFAULT ABS _GLOBAL_OFFSET_TABLE_ - 64: 00000000000005a0 0 NOTYPE LOCAL DEFAULT 12 $x - 65: 0000000000000000 0 FUNC GLOBAL DEFAULT UND __libc_start_main@GLIBC_2.34 - 66: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_deregisterTMCloneTable - 67: 0000000000011000 0 NOTYPE WEAK DEFAULT 22 data_start - 68: 0000000000011010 0 NOTYPE GLOBAL DEFAULT 23 __bss_start__ - 69: 0000000000000000 0 FUNC WEAK DEFAULT UND __cxa_finalize@GLIBC_2.17 - 70: 0000000000011020 0 NOTYPE GLOBAL DEFAULT 23 _bss_end__ - 71: 0000000000011010 0 NOTYPE GLOBAL DEFAULT 22 _edata - 72: 0000000000011018 4 OBJECT GLOBAL DEFAULT 23 z - 73: 0000000000011014 4 OBJECT GLOBAL DEFAULT 23 x - 74: 0000000000000788 0 FUNC GLOBAL HIDDEN 14 _fini - 75: 0000000000011020 0 NOTYPE GLOBAL DEFAULT 23 __bss_end__ - 76: 0000000000011000 0 NOTYPE GLOBAL DEFAULT 22 __data_start - 77: 0000000000000000 0 NOTYPE WEAK DEFAULT UND __gmon_start__ - 78: 0000000000011008 0 OBJECT GLOBAL HIDDEN 22 __dso_handle - 79: 0000000000000000 0 FUNC GLOBAL DEFAULT UND abort@GLIBC_2.17 - 80: 000000000000079c 4 OBJECT GLOBAL DEFAULT 15 _IO_stdin_used - 81: 000000000001101c 4 OBJECT GLOBAL DEFAULT 23 secret - 82: 0000000000011020 0 NOTYPE GLOBAL DEFAULT 23 _end - 83: 0000000000000600 52 FUNC GLOBAL DEFAULT 13 _start - 84: 0000000000011020 0 NOTYPE GLOBAL DEFAULT 23 __end__ - 85: 0000000000011010 0 NOTYPE GLOBAL DEFAULT 23 __bss_start - 86: 0000000000000714 116 FUNC GLOBAL DEFAULT 13 main - 87: 0000000000011010 0 OBJECT GLOBAL HIDDEN 22 __TMC_END__ - 88: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_registerTMCloneTable - 89: 0000000000000580 0 FUNC GLOBAL HIDDEN 11 _init diff --git a/src/test/incorrect/basicassign/gcc/basicassign_gtirb.expected b/src/test/incorrect/basicassign/gcc/basicassign_gtirb.expected index 71acd7117..528cb9f8c 100644 --- a/src/test/incorrect/basicassign/gcc/basicassign_gtirb.expected +++ b/src/test/incorrect/basicassign/gcc/basicassign_gtirb.expected @@ -1,15 +1,19 @@ var {:extern} Gamma_R0: bool; var {:extern} Gamma_R1: bool; +var {:extern} Gamma_R2: bool; +var {:extern} Gamma_R3: bool; var {:extern} Gamma_mem: [bv64]bool; var {:extern} R0: bv64; var {:extern} R1: bv64; +var {:extern} R2: bv64; +var {:extern} R3: bv64; var {:extern} mem: [bv64]bv8; const {:extern} $secret_addr: bv64; -axiom ($secret_addr == 69660bv64); +axiom ($secret_addr == 4325396bv64); const {:extern} $x_addr: bv64; -axiom ($x_addr == 69652bv64); +axiom ($x_addr == 4325404bv64); const {:extern} $z_addr: bv64; -axiom ($z_addr == 69656bv64); +axiom ($z_addr == 4325400bv64); function {:extern} L(mem$in: [bv64]bv8, index: bv64) returns (bool) { (if (index == $z_addr) then true else (if (index == $secret_addr) then false else (if (index == $x_addr) then false else false))) } @@ -19,6 +23,10 @@ function {:extern} gamma_load32(gammaMap: [bv64]bool, index: bv64) returns (bool (gammaMap[bvadd64(index, 3bv64)] && (gammaMap[bvadd64(index, 2bv64)] && (gammaMap[bvadd64(index, 1bv64)] && gammaMap[index]))) } +function {:extern} gamma_load64(gammaMap: [bv64]bool, index: bv64) returns (bool) { + (gammaMap[bvadd64(index, 7bv64)] && (gammaMap[bvadd64(index, 6bv64)] && (gammaMap[bvadd64(index, 5bv64)] && (gammaMap[bvadd64(index, 4bv64)] && (gammaMap[bvadd64(index, 3bv64)] && (gammaMap[bvadd64(index, 2bv64)] && (gammaMap[bvadd64(index, 1bv64)] && gammaMap[index]))))))) +} + function {:extern} gamma_store32(gammaMap: [bv64]bool, index: bv64, value: bool) returns ([bv64]bool) { gammaMap[index := value][bvadd64(index, 1bv64) := value][bvadd64(index, 2bv64) := value][bvadd64(index, 3bv64) := value] } @@ -40,11 +48,7 @@ procedure {:extern} rely(); modifies Gamma_mem, mem; ensures (forall i: bv64 :: (((mem[i] == old(mem[i])) ==> (Gamma_mem[i] == old(Gamma_mem[i]))))); ensures (memory_load32_le(mem, $x_addr) == old(memory_load32_le(mem, $x_addr))); - free ensures (memory_load32_le(mem, 1948bv64) == 131073bv32); - free ensures (memory_load64_le(mem, 69016bv64) == 1808bv64); - free ensures (memory_load64_le(mem, 69024bv64) == 1728bv64); - free ensures (memory_load64_le(mem, 69616bv64) == 1812bv64); - free ensures (memory_load64_le(mem, 69640bv64) == 69640bv64); + free ensures (memory_load32_le(mem, 4196312bv64) == 131073bv32); procedure {:extern} rely_transitive(); modifies Gamma_mem, mem; @@ -66,87 +70,52 @@ implementation {:extern} rely_reflexive() procedure {:extern} guarantee_reflexive(); modifies Gamma_mem, mem; -procedure main_1812(); - modifies Gamma_R0, Gamma_R1, Gamma_mem, R0, R1, mem; - free requires (memory_load64_le(mem, 69632bv64) == 0bv64); - free requires (memory_load64_le(mem, 69640bv64) == 69640bv64); - free requires (memory_load32_le(mem, 1948bv64) == 131073bv32); - free requires (memory_load64_le(mem, 69016bv64) == 1808bv64); - free requires (memory_load64_le(mem, 69024bv64) == 1728bv64); - free requires (memory_load64_le(mem, 69616bv64) == 1812bv64); - free requires (memory_load64_le(mem, 69640bv64) == 69640bv64); - free ensures (memory_load32_le(mem, 1948bv64) == 131073bv32); - free ensures (memory_load64_le(mem, 69016bv64) == 1808bv64); - free ensures (memory_load64_le(mem, 69024bv64) == 1728bv64); - free ensures (memory_load64_le(mem, 69616bv64) == 1812bv64); - free ensures (memory_load64_le(mem, 69640bv64) == 69640bv64); +procedure main(); + modifies Gamma_R0, Gamma_R1, Gamma_R2, Gamma_R3, Gamma_mem, R0, R1, R2, R3, mem; + free requires (memory_load64_le(mem, 4325376bv64) == 0bv64); + free requires (memory_load64_le(mem, 4325384bv64) == 0bv64); + free requires (memory_load32_le(mem, 4196312bv64) == 131073bv32); + free ensures (memory_load32_le(mem, 4196312bv64) == 131073bv32); -implementation main_1812() +implementation main() { - var Gamma_load13: bool; - var Gamma_load14: bool; - var Gamma_load15: bool; - var Gamma_load16: bool; - var load13: bv32; - var load14: bv32; - var load15: bv32; - var load16: bv32; - main_1812__0__BKOmkvhNSN~7Fh58nX3c2Q: - assume {:captureState "main_1812__0__BKOmkvhNSN~7Fh58nX3c2Q"} true; - R0, Gamma_R0 := 69632bv64, true; - R0, Gamma_R0 := bvadd64(R0, 28bv64), Gamma_R0; - call rely(); - load13, Gamma_load13 := memory_load32_le(mem, R0), (gamma_load32(Gamma_mem, R0) || L(mem, R0)); - R1, Gamma_R1 := zero_extend32_32(load13), Gamma_load13; - R0, Gamma_R0 := 69632bv64, true; - R0, Gamma_R0 := bvadd64(R0, 20bv64), Gamma_R0; - call rely(); - assert (L(mem, R0) ==> Gamma_R1); - mem, Gamma_mem := memory_store32_le(mem, R0, R1[32:0]), gamma_store32(Gamma_mem, R0, Gamma_R1); - assume {:captureState "1832_0"} true; - R0, Gamma_R0 := 69632bv64, true; - R0, Gamma_R0 := bvadd64(R0, 20bv64), Gamma_R0; + var $load6: bv64; + var $load7: bv64; + var $load8: bv64; + var $load9: bv32; + var Gamma_$load6: bool; + var Gamma_$load7: bool; + var Gamma_$load8: bool; + var Gamma_$load9: bool; + $main$__0__$xdHqi8HzTJ~zBYVemlzAtg: + assume {:captureState "$main$__0__$xdHqi8HzTJ~zBYVemlzAtg"} true; + R2, Gamma_R2 := 4321280bv64, true; call rely(); - assert (L(mem, R0) ==> true); - mem, Gamma_mem := memory_store32_le(mem, R0, 0bv32), gamma_store32(Gamma_mem, R0, true); - assume {:captureState "1844_0"} true; - R0, Gamma_R0 := 69632bv64, true; - R0, Gamma_R0 := bvadd64(R0, 20bv64), Gamma_R0; - call rely(); - load14, Gamma_load14 := memory_load32_le(mem, R0), (gamma_load32(Gamma_mem, R0) || L(mem, R0)); - R1, Gamma_R1 := zero_extend32_32(load14), Gamma_load14; - R0, Gamma_R0 := 69632bv64, true; - R0, Gamma_R0 := bvadd64(R0, 24bv64), Gamma_R0; + $load6, Gamma_$load6 := memory_load64_le(mem, bvadd64(R2, 4080bv64)), (gamma_load64(Gamma_mem, bvadd64(R2, 4080bv64)) || L(mem, bvadd64(R2, 4080bv64))); + R2, Gamma_R2 := $load6, Gamma_$load6; + R0, Gamma_R0 := 0bv64, true; + R1, Gamma_R1 := 4321280bv64, true; call rely(); - assert (L(mem, R0) ==> Gamma_R1); - mem, Gamma_mem := memory_store32_le(mem, R0, R1[32:0]), gamma_store32(Gamma_mem, R0, Gamma_R1); - assume {:captureState "1868_0"} true; - R0, Gamma_R0 := 69632bv64, true; - R0, Gamma_R0 := bvadd64(R0, 28bv64), Gamma_R0; + $load7, Gamma_$load7 := memory_load64_le(mem, bvadd64(R1, 4064bv64)), (gamma_load64(Gamma_mem, bvadd64(R1, 4064bv64)) || L(mem, bvadd64(R1, 4064bv64))); + R1, Gamma_R1 := $load7, Gamma_$load7; + R3, Gamma_R3 := 4321280bv64, true; call rely(); - load15, Gamma_load15 := memory_load32_le(mem, R0), (gamma_load32(Gamma_mem, R0) || L(mem, R0)); - R1, Gamma_R1 := zero_extend32_32(load15), Gamma_load15; - R0, Gamma_R0 := 69632bv64, true; - R0, Gamma_R0 := bvadd64(R0, 20bv64), Gamma_R0; + $load8, Gamma_$load8 := memory_load64_le(mem, bvadd64(R3, 4056bv64)), (gamma_load64(Gamma_mem, bvadd64(R3, 4056bv64)) || L(mem, bvadd64(R3, 4056bv64))); + R3, Gamma_R3 := $load8, Gamma_$load8; call rely(); - assert (L(mem, R0) ==> Gamma_R1); - mem, Gamma_mem := memory_store32_le(mem, R0, R1[32:0]), gamma_store32(Gamma_mem, R0, Gamma_R1); - assume {:captureState "1892_0"} true; - R0, Gamma_R0 := 69632bv64, true; - R0, Gamma_R0 := bvadd64(R0, 20bv64), Gamma_R0; + $load9, Gamma_$load9 := memory_load32_le(mem, R2), (gamma_load32(Gamma_mem, R2) || L(mem, R2)); + R2, Gamma_R2 := zero_extend32_32($load9), Gamma_$load9; call rely(); - load16, Gamma_load16 := memory_load32_le(mem, R0), (gamma_load32(Gamma_mem, R0) || L(mem, R0)); - R1, Gamma_R1 := zero_extend32_32(load16), Gamma_load16; - R0, Gamma_R0 := 69632bv64, true; - R0, Gamma_R0 := bvadd64(R0, 24bv64), Gamma_R0; + assert (L(mem, R1) ==> Gamma_R2); + mem, Gamma_mem := memory_store32_le(mem, R1, R2[32:0]), gamma_store32(Gamma_mem, R1, Gamma_R2); + assume {:captureState "4196000$0"} true; call rely(); - assert (L(mem, R0) ==> Gamma_R1); - mem, Gamma_mem := memory_store32_le(mem, R0, R1[32:0]), gamma_store32(Gamma_mem, R0, Gamma_R1); - assume {:captureState "1916_0"} true; - R0, Gamma_R0 := 0bv64, true; - goto main_1812_basil_return; - main_1812_basil_return: - assume {:captureState "main_1812_basil_return"} true; + assert (L(mem, R3) ==> Gamma_R2); + mem, Gamma_mem := memory_store32_le(mem, R3, R2[32:0]), gamma_store32(Gamma_mem, R3, Gamma_R2); + assume {:captureState "4196004$0"} true; + goto main_basil_return; + main_basil_return: + assume {:captureState "main_basil_return"} true; return; } diff --git a/src/test/incorrect/basicassign/gcc_O2/basicassign.adt b/src/test/incorrect/basicassign/gcc_O2/basicassign.adt deleted file mode 100644 index db2171c76..000000000 --- a/src/test/incorrect/basicassign/gcc_O2/basicassign.adt +++ /dev/null @@ -1,500 +0,0 @@ -Project(Attrs([Attr("filename","\"gcc_O2/basicassign.out\""), -Attr("image-specification","(declare abi (name str))\n(declare arch (name str))\n(declare base-address (addr int))\n(declare bias (off int))\n(declare bits (size int))\n(declare code-region (addr int) (size int) (off int))\n(declare code-start (addr int))\n(declare entry-point (addr int))\n(declare external-reference (addr int) (name str))\n(declare format (name str))\n(declare is-executable (flag bool))\n(declare is-little-endian (flag bool))\n(declare llvm:base-address (addr int))\n(declare llvm:code-entry (name str) (off int) (size int))\n(declare llvm:coff-import-library (name str))\n(declare llvm:coff-virtual-section-header (name str) (addr int) (size int))\n(declare llvm:elf-program-header (name str) (off int) (size int))\n(declare llvm:elf-program-header-flags (name str) (ld bool) (r bool) \n (w bool) (x bool))\n(declare llvm:elf-virtual-program-header (name str) (addr int) (size int))\n(declare llvm:entry-point (addr int))\n(declare llvm:macho-symbol (name str) (value int))\n(declare llvm:name-reference (at int) (name str))\n(declare llvm:relocation (at int) (addr int))\n(declare llvm:section-entry (name str) (addr int) (size int) (off int))\n(declare llvm:section-flags (name str) (r bool) (w bool) (x bool))\n(declare llvm:segment-command (name str) (off int) (size int))\n(declare llvm:segment-command-flags (name str) (r bool) (w bool) (x bool))\n(declare llvm:symbol-entry (name str) (addr int) (size int) (off int)\n (value int))\n(declare llvm:virtual-segment-command (name str) (addr int) (size int))\n(declare mapped (addr int) (size int) (off int))\n(declare named-region (addr int) (size int) (name str))\n(declare named-symbol (addr int) (name str))\n(declare require (name str))\n(declare section (addr int) (size int))\n(declare segment (addr int) (size int) (r bool) (w bool) (x bool))\n(declare subarch (name str))\n(declare symbol-chunk (addr int) (size int) (root int))\n(declare symbol-value (addr int) (value int))\n(declare system (name str))\n(declare vendor (name str))\n\n(abi unknown)\n(arch aarch64)\n(base-address 0)\n(bias 0)\n(bits 64)\n(code-region 1876 20 1876)\n(code-region 1536 340 1536)\n(code-region 1440 96 1440)\n(code-region 1408 24 1408)\n(code-start 1652)\n(code-start 1600)\n(code-start 1536)\n(entry-point 1600)\n(external-reference 69592 _ITM_deregisterTMCloneTable)\n(external-reference 69600 __cxa_finalize)\n(external-reference 69608 __gmon_start__)\n(external-reference 69624 _ITM_registerTMCloneTable)\n(external-reference 69552 __libc_start_main)\n(external-reference 69560 __cxa_finalize)\n(external-reference 69568 __gmon_start__)\n(external-reference 69576 abort)\n(format elf)\n(is-executable true)\n(is-little-endian true)\n(llvm:base-address 0)\n(llvm:code-entry abort 0 0)\n(llvm:code-entry __cxa_finalize 0 0)\n(llvm:code-entry __libc_start_main 0 0)\n(llvm:code-entry _init 1408 0)\n(llvm:code-entry main 1536 24)\n(llvm:code-entry _start 1600 52)\n(llvm:code-entry abort@GLIBC_2.17 0 0)\n(llvm:code-entry _fini 1876 0)\n(llvm:code-entry __cxa_finalize@GLIBC_2.17 0 0)\n(llvm:code-entry __libc_start_main@GLIBC_2.34 0 0)\n(llvm:code-entry frame_dummy 1872 0)\n(llvm:code-entry __do_global_dtors_aux 1792 0)\n(llvm:code-entry register_tm_clones 1728 0)\n(llvm:code-entry deregister_tm_clones 1680 0)\n(llvm:code-entry call_weak_fn 1652 20)\n(llvm:code-entry .fini 1876 20)\n(llvm:code-entry .text 1536 340)\n(llvm:code-entry .plt 1440 96)\n(llvm:code-entry .init 1408 24)\n(llvm:elf-program-header 08 3480 616)\n(llvm:elf-program-header 07 0 0)\n(llvm:elf-program-header 06 1900 60)\n(llvm:elf-program-header 05 596 68)\n(llvm:elf-program-header 04 3496 496)\n(llvm:elf-program-header 03 3480 632)\n(llvm:elf-program-header 02 0 2120)\n(llvm:elf-program-header 01 568 27)\n(llvm:elf-program-header 00 64 504)\n(llvm:elf-program-header-flags 08 false true false false)\n(llvm:elf-program-header-flags 07 false true true false)\n(llvm:elf-program-header-flags 06 false true false false)\n(llvm:elf-program-header-flags 05 false true false false)\n(llvm:elf-program-header-flags 04 false true true false)\n(llvm:elf-program-header-flags 03 true true true false)\n(llvm:elf-program-header-flags 02 true true false true)\n(llvm:elf-program-header-flags 01 false true false false)\n(llvm:elf-program-header-flags 00 false true false false)\n(llvm:elf-virtual-program-header 08 69016 616)\n(llvm:elf-virtual-program-header 07 0 0)\n(llvm:elf-virtual-program-header 06 1900 60)\n(llvm:elf-virtual-program-header 05 596 68)\n(llvm:elf-virtual-program-header 04 69032 496)\n(llvm:elf-virtual-program-header 03 69016 648)\n(llvm:elf-virtual-program-header 02 0 2120)\n(llvm:elf-virtual-program-header 01 568 27)\n(llvm:elf-virtual-program-header 00 64 504)\n(llvm:entry-point 1600)\n(llvm:name-reference 69576 abort)\n(llvm:name-reference 69568 __gmon_start__)\n(llvm:name-reference 69560 __cxa_finalize)\n(llvm:name-reference 69552 __libc_start_main)\n(llvm:name-reference 69624 _ITM_registerTMCloneTable)\n(llvm:name-reference 69608 __gmon_start__)\n(llvm:name-reference 69600 __cxa_finalize)\n(llvm:name-reference 69592 _ITM_deregisterTMCloneTable)\n(llvm:section-entry .shstrtab 0 250 6876)\n(llvm:section-entry .strtab 0 556 6320)\n(llvm:section-entry .symtab 0 2160 4160)\n(llvm:section-entry .comment 0 43 4112)\n(llvm:section-entry .bss 69648 16 4112)\n(llvm:section-entry .data 69632 16 4096)\n(llvm:section-entry .got 69528 104 3992)\n(llvm:section-entry .dynamic 69032 496 3496)\n(llvm:section-entry .fini_array 69024 8 3488)\n(llvm:section-entry .init_array 69016 8 3480)\n(llvm:section-entry .eh_frame 1960 160 1960)\n(llvm:section-entry .eh_frame_hdr 1900 60 1900)\n(llvm:section-entry .rodata 1896 4 1896)\n(llvm:section-entry .fini 1876 20 1876)\n(llvm:section-entry .text 1536 340 1536)\n(llvm:section-entry .plt 1440 96 1440)\n(llvm:section-entry .init 1408 24 1408)\n(llvm:section-entry .rela.plt 1312 96 1312)\n(llvm:section-entry .rela.dyn 1120 192 1120)\n(llvm:section-entry .gnu.version_r 1072 48 1072)\n(llvm:section-entry .gnu.version 1054 18 1054)\n(llvm:section-entry .dynstr 912 141 912)\n(llvm:section-entry .dynsym 696 216 696)\n(llvm:section-entry .gnu.hash 664 28 664)\n(llvm:section-entry .note.ABI-tag 632 32 632)\n(llvm:section-entry .note.gnu.build-id 596 36 596)\n(llvm:section-entry .interp 568 27 568)\n(llvm:section-flags .shstrtab true false false)\n(llvm:section-flags .strtab true false false)\n(llvm:section-flags .symtab true false false)\n(llvm:section-flags .comment true false false)\n(llvm:section-flags .bss true true false)\n(llvm:section-flags .data true true false)\n(llvm:section-flags .got true true false)\n(llvm:section-flags .dynamic true true false)\n(llvm:section-flags .fini_array true true false)\n(llvm:section-flags .init_array true true false)\n(llvm:section-flags .eh_frame true false false)\n(llvm:section-flags .eh_frame_hdr true false false)\n(llvm:section-flags .rodata true false false)\n(llvm:section-flags .fini true false true)\n(llvm:section-flags .text true false true)\n(llvm:section-flags .plt true false true)\n(llvm:section-flags .init true false true)\n(llvm:section-flags .rela.plt true false false)\n(llvm:section-flags .rela.dyn true false false)\n(llvm:section-flags .gnu.version_r true false false)\n(llvm:section-flags .gnu.version true false false)\n(llvm:section-flags .dynstr true false false)\n(llvm:section-flags .dynsym true false false)\n(llvm:section-flags .gnu.hash true false false)\n(llvm:section-flags .note.ABI-tag true false false)\n(llvm:section-flags .note.gnu.build-id true false false)\n(llvm:section-flags .interp true false false)\n(llvm:symbol-entry abort 0 0 0 0)\n(llvm:symbol-entry __cxa_finalize 0 0 0 0)\n(llvm:symbol-entry __libc_start_main 0 0 0 0)\n(llvm:symbol-entry _init 1408 0 1408 1408)\n(llvm:symbol-entry main 1536 24 1536 1536)\n(llvm:symbol-entry _start 1600 52 1600 1600)\n(llvm:symbol-entry abort@GLIBC_2.17 0 0 0 0)\n(llvm:symbol-entry _fini 1876 0 1876 1876)\n(llvm:symbol-entry __cxa_finalize@GLIBC_2.17 0 0 0 0)\n(llvm:symbol-entry __libc_start_main@GLIBC_2.34 0 0 0 0)\n(llvm:symbol-entry frame_dummy 1872 0 1872 1872)\n(llvm:symbol-entry __do_global_dtors_aux 1792 0 1792 1792)\n(llvm:symbol-entry register_tm_clones 1728 0 1728 1728)\n(llvm:symbol-entry deregister_tm_clones 1680 0 1680 1680)\n(llvm:symbol-entry call_weak_fn 1652 20 1652 1652)\n(mapped 0 2120 0)\n(mapped 69016 632 3480)\n(named-region 0 2120 02)\n(named-region 69016 648 03)\n(named-region 568 27 .interp)\n(named-region 596 36 .note.gnu.build-id)\n(named-region 632 32 .note.ABI-tag)\n(named-region 664 28 .gnu.hash)\n(named-region 696 216 .dynsym)\n(named-region 912 141 .dynstr)\n(named-region 1054 18 .gnu.version)\n(named-region 1072 48 .gnu.version_r)\n(named-region 1120 192 .rela.dyn)\n(named-region 1312 96 .rela.plt)\n(named-region 1408 24 .init)\n(named-region 1440 96 .plt)\n(named-region 1536 340 .text)\n(named-region 1876 20 .fini)\n(named-region 1896 4 .rodata)\n(named-region 1900 60 .eh_frame_hdr)\n(named-region 1960 160 .eh_frame)\n(named-region 69016 8 .init_array)\n(named-region 69024 8 .fini_array)\n(named-region 69032 496 .dynamic)\n(named-region 69528 104 .got)\n(named-region 69632 16 .data)\n(named-region 69648 16 .bss)\n(named-region 0 43 .comment)\n(named-region 0 2160 .symtab)\n(named-region 0 556 .strtab)\n(named-region 0 250 .shstrtab)\n(named-symbol 1652 call_weak_fn)\n(named-symbol 1680 deregister_tm_clones)\n(named-symbol 1728 register_tm_clones)\n(named-symbol 1792 __do_global_dtors_aux)\n(named-symbol 1872 frame_dummy)\n(named-symbol 0 __libc_start_main@GLIBC_2.34)\n(named-symbol 0 __cxa_finalize@GLIBC_2.17)\n(named-symbol 1876 _fini)\n(named-symbol 0 abort@GLIBC_2.17)\n(named-symbol 1600 _start)\n(named-symbol 1536 main)\n(named-symbol 1408 _init)\n(named-symbol 0 __libc_start_main)\n(named-symbol 0 __cxa_finalize)\n(named-symbol 0 abort)\n(require libc.so.6)\n(section 568 27)\n(section 596 36)\n(section 632 32)\n(section 664 28)\n(section 696 216)\n(section 912 141)\n(section 1054 18)\n(section 1072 48)\n(section 1120 192)\n(section 1312 96)\n(section 1408 24)\n(section 1440 96)\n(section 1536 340)\n(section 1876 20)\n(section 1896 4)\n(section 1900 60)\n(section 1960 160)\n(section 69016 8)\n(section 69024 8)\n(section 69032 496)\n(section 69528 104)\n(section 69632 16)\n(section 69648 16)\n(section 0 43)\n(section 0 2160)\n(section 0 556)\n(section 0 250)\n(segment 0 2120 true false true)\n(segment 69016 648 true true false)\n(subarch v8)\n(symbol-chunk 1652 20 1652)\n(symbol-chunk 1600 52 1600)\n(symbol-chunk 1536 24 1536)\n(symbol-value 1652 1652)\n(symbol-value 1680 1680)\n(symbol-value 1728 1728)\n(symbol-value 1792 1792)\n(symbol-value 1872 1872)\n(symbol-value 1876 1876)\n(symbol-value 1600 1600)\n(symbol-value 1536 1536)\n(symbol-value 1408 1408)\n(symbol-value 0 0)\n(system \"\")\n(vendor \"\")\n"), -Attr("abi-name","\"aarch64-linux-gnu-elf\"")]), -Sections([Section(".shstrtab", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x40\x06\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xd8\x1b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x38\x00\x09\x00\x40\x00\x1c\x00\x1b\x00\x06\x00\x00\x00\x04\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x04\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x48\x08\x00\x00\x00\x00\x00\x00\x48\x08\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x01\x00\x00\x00\x06\x00\x00\x00\x98\x0d\x00\x00\x00\x00\x00\x00\x98\x0d"), -Section(".strtab", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x40\x06\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xd8\x1b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x38\x00\x09\x00\x40\x00\x1c\x00\x1b\x00\x06\x00\x00\x00\x04\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x04\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x48\x08\x00\x00\x00\x00\x00\x00\x48\x08\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x01\x00\x00\x00\x06\x00\x00\x00\x98\x0d\x00\x00\x00\x00\x00\x00\x98\x0d\x01\x00\x00\x00\x00\x00\x98\x0d\x01\x00\x00\x00\x00\x00\x78\x02\x00\x00\x00\x00\x00\x00\x88\x02\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x02\x00\x00\x00\x06\x00\x00\x00\xa8\x0d\x00\x00\x00\x00\x00\x00\xa8\x0d\x01\x00\x00\x00\x00\x00\xa8\x0d\x01\x00\x00\x00\x00\x00\xf0\x01\x00\x00\x00\x00\x00\x00\xf0\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x04\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x50\xe5\x74\x64\x04\x00\x00\x00\x6c\x07\x00\x00\x00\x00\x00\x00\x6c\x07\x00\x00\x00\x00\x00\x00\x6c\x07\x00\x00\x00\x00\x00\x00\x3c\x00\x00\x00\x00\x00\x00\x00\x3c\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x51\xe5\x74\x64\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x52\xe5\x74\x64\x04\x00\x00\x00\x98\x0d\x00\x00\x00\x00\x00\x00\x98\x0d\x01\x00\x00\x00\x00\x00\x98\x0d\x01\x00\x00\x00\x00\x00\x68\x02\x00\x00\x00\x00\x00\x00\x68\x02\x00\x00"), -Section(".comment", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x40\x06\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xd8\x1b\x00"), -Section(".interp", 0x238, "\x2f\x6c\x69\x62\x2f\x6c\x64\x2d\x6c\x69\x6e\x75\x78\x2d\x61\x61\x72\x63\x68\x36\x34\x2e\x73\x6f\x2e\x31\x00"), -Section(".note.gnu.build-id", 0x254, "\x04\x00\x00\x00\x14\x00\x00\x00\x03\x00\x00\x00\x47\x4e\x55\x00\x63\xe1\x71\x93\x6e\xee\x35\x41\xf8\x5a\x63\xc1\x76\x1c\xee\xa0\x64\x7d\x4c\x83"), -Section(".note.ABI-tag", 0x278, "\x04\x00\x00\x00\x10\x00\x00\x00\x01\x00\x00\x00\x47\x4e\x55\x00\x00\x00\x00\x00\x03\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00"), -Section(".gnu.hash", 0x298, "\x01\x00\x00\x00\x01\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".dynsym", 0x2B8, "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x0b\x00\x80\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x16\x00\x00\x10\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x48\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x22\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x22\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x73\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".dynstr", 0x390, "\x00\x5f\x5f\x63\x78\x61\x5f\x66\x69\x6e\x61\x6c\x69\x7a\x65\x00\x5f\x5f\x6c\x69\x62\x63\x5f\x73\x74\x61\x72\x74\x5f\x6d\x61\x69\x6e\x00\x61\x62\x6f\x72\x74\x00\x6c\x69\x62\x63\x2e\x73\x6f\x2e\x36\x00\x47\x4c\x49\x42\x43\x5f\x32\x2e\x31\x37\x00\x47\x4c\x49\x42\x43\x5f\x32\x2e\x33\x34\x00\x5f\x49\x54\x4d\x5f\x64\x65\x72\x65\x67\x69\x73\x74\x65\x72\x54\x4d\x43\x6c\x6f\x6e\x65\x54\x61\x62\x6c\x65\x00\x5f\x5f\x67\x6d\x6f\x6e\x5f\x73\x74\x61\x72\x74\x5f\x5f\x00\x5f\x49\x54\x4d\x5f\x72\x65\x67\x69\x73\x74\x65\x72\x54\x4d\x43\x6c\x6f\x6e\x65\x54\x61\x62\x6c\x65\x00"), -Section(".gnu.version", 0x41E, "\x00\x00\x00\x00\x00\x00\x02\x00\x01\x00\x03\x00\x01\x00\x03\x00\x01\x00"), -Section(".gnu.version_r", 0x430, "\x01\x00\x02\x00\x28\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x97\x91\x96\x06\x00\x00\x03\x00\x32\x00\x00\x00\x10\x00\x00\x00\xb4\x91\x96\x06\x00\x00\x02\x00\x3d\x00\x00\x00\x00\x00\x00\x00"), -Section(".rela.dyn", 0x460, "\x98\x0d\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x50\x07\x00\x00\x00\x00\x00\x00\xa0\x0d\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\xf0\x0f\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x00\x06\x00\x00\x00\x00\x00\x00\x08\x10\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x08\x10\x01\x00\x00\x00\x00\x00\xd8\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe0\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe8\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xf8\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".rela.plt", 0x520, "\xb0\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xb8\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xc0\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xc8\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".init", 0x580, "\x1f\x20\x03\xd5\xfd\x7b\xbf\xa9\xfd\x03\x00\x91\x3a\x00\x00\x94\xfd\x7b\xc1\xa8\xc0\x03\x5f\xd6"), -Section(".plt", 0x5A0, "\xf0\x7b\xbf\xa9\x90\x00\x00\x90\x11\xd6\x47\xf9\x10\xa2\x3e\x91\x20\x02\x1f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x90\x00\x00\x90\x11\xda\x47\xf9\x10\xc2\x3e\x91\x20\x02\x1f\xd6\x90\x00\x00\x90\x11\xde\x47\xf9\x10\xe2\x3e\x91\x20\x02\x1f\xd6\x90\x00\x00\x90\x11\xe2\x47\xf9\x10\x02\x3f\x91\x20\x02\x1f\xd6\x90\x00\x00\x90\x11\xe6\x47\xf9\x10\x22\x3f\x91\x20\x02\x1f\xd6"), -Section(".fini", 0x754, "\x1f\x20\x03\xd5\xfd\x7b\xbf\xa9\xfd\x03\x00\x91\xfd\x7b\xc1\xa8\xc0\x03\x5f\xd6"), -Section(".rodata", 0x768, "\x01\x00\x02\x00"), -Section(".eh_frame_hdr", 0x76C, "\x01\x1b\x03\x3b\x38\x00\x00\x00\x06\x00\x00\x00\x94\xfe\xff\xff\xc4\x00\x00\x00\xd4\xfe\xff\xff\x50\x00\x00\x00\x24\xff\xff\xff\x64\x00\x00\x00\x54\xff\xff\xff\x78\x00\x00\x00\x94\xff\xff\xff\x8c\x00\x00\x00\xe4\xff\xff\xff\xb0\x00\x00\x00"), -Section(".eh_frame", 0x7A8, "\x10\x00\x00\x00\x00\x00\x00\x00\x01\x7a\x52\x00\x04\x78\x1e\x01\x1b\x0c\x1f\x00\x10\x00\x00\x00\x18\x00\x00\x00\x7c\xfe\xff\xff\x34\x00\x00\x00\x00\x41\x07\x1e\x10\x00\x00\x00\x2c\x00\x00\x00\xb8\xfe\xff\xff\x30\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x40\x00\x00\x00\xd4\xfe\xff\xff\x3c\x00\x00\x00\x00\x00\x00\x00\x20\x00\x00\x00\x54\x00\x00\x00\x00\xff\xff\xff\x48\x00\x00\x00\x00\x41\x0e\x20\x9d\x04\x9e\x03\x42\x93\x02\x4e\xde\xdd\xd3\x0e\x00\x00\x00\x00\x10\x00\x00\x00\x78\x00\x00\x00\x2c\xff\xff\xff\x04\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x8c\x00\x00\x00\xc8\xfd\xff\xff\x18\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".fini_array", 0x10DA0, "\x00\x07\x00\x00\x00\x00\x00\x00"), -Section(".dynamic", 0x10DA8, "\x01\x00\x00\x00\x00\x00\x00\x00\x28\x00\x00\x00\x00\x00\x00\x00\x0c\x00\x00\x00\x00\x00\x00\x00\x80\x05\x00\x00\x00\x00\x00\x00\x0d\x00\x00\x00\x00\x00\x00\x00\x54\x07\x00\x00\x00\x00\x00\x00\x19\x00\x00\x00\x00\x00\x00\x00\x98\x0d\x01\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x1a\x00\x00\x00\x00\x00\x00\x00\xa0\x0d\x01\x00\x00\x00\x00\x00\x1c\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\xf5\xfe\xff\x6f\x00\x00\x00\x00\x98\x02\x00\x00\x00\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x90\x03\x00\x00\x00\x00\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\xb8\x02\x00\x00\x00\x00\x00\x00\x0a\x00\x00\x00\x00\x00\x00\x00\x8d\x00\x00\x00\x00\x00\x00\x00\x0b\x00\x00\x00\x00\x00\x00\x00\x18\x00\x00\x00\x00\x00\x00\x00\x15\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x98\x0f\x01\x00\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x60\x00\x00\x00\x00\x00\x00\x00\x14\x00\x00\x00\x00\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x17\x00\x00\x00\x00\x00\x00\x00\x20\x05\x00\x00\x00\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x60\x04\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\xc0\x00\x00\x00\x00\x00\x00\x00\x09\x00\x00\x00\x00\x00\x00\x00\x18\x00\x00\x00\x00\x00\x00\x00\x1e\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\xfb\xff\xff\x6f\x00\x00\x00\x00\x01\x00\x00\x08\x00\x00\x00\x00\xfe\xff\xff\x6f\x00\x00\x00\x00\x30\x04\x00\x00\x00\x00\x00\x00\xff\xff\xff\x6f\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\xf0\xff\xff\x6f\x00\x00\x00\x00\x1e\x04\x00\x00\x00\x00\x00\x00\xf9\xff\xff\x6f\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".init_array", 0x10D98, "\x50\x07\x00\x00\x00\x00\x00\x00"), -Section(".got", 0x10F98, "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xa0\x05\x00\x00\x00\x00\x00\x00\xa0\x05\x00\x00\x00\x00\x00\x00\xa0\x05\x00\x00\x00\x00\x00\x00\xa0\x05\x00\x00\x00\x00\x00\x00\xa8\x0d\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".data", 0x11000, "\x00\x00\x00\x00\x00\x00\x00\x00\x08\x10\x01\x00\x00\x00\x00\x00"), -Section(".text", 0x600, "\x82\x00\x00\xb0\x41\x50\x00\x91\x00\x00\x80\x52\x42\x14\x40\xb9\x22\x88\x00\x29\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1d\x00\x80\xd2\x1e\x00\x80\xd2\xe5\x03\x00\xaa\xe1\x03\x40\xf9\xe2\x23\x00\x91\xe6\x03\x00\x91\x80\x00\x00\x90\x00\xf8\x47\xf9\x03\x00\x80\xd2\x04\x00\x80\xd2\xd5\xff\xff\x97\xe0\xff\xff\x97\x80\x00\x00\x90\x00\xf4\x47\xf9\x40\x00\x00\xb4\xd8\xff\xff\x17\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x80\x00\x00\xb0\x00\x40\x00\x91\x81\x00\x00\xb0\x21\x40\x00\x91\x3f\x00\x00\xeb\xc0\x00\x00\x54\x81\x00\x00\x90\x21\xec\x47\xf9\x61\x00\x00\xb4\xf0\x03\x01\xaa\x00\x02\x1f\xd6\xc0\x03\x5f\xd6\x80\x00\x00\xb0\x00\x40\x00\x91\x81\x00\x00\xb0\x21\x40\x00\x91\x21\x00\x00\xcb\x22\xfc\x7f\xd3\x41\x0c\x81\x8b\x21\xfc\x41\x93\xc1\x00\x00\xb4\x82\x00\x00\x90\x42\xfc\x47\xf9\x62\x00\x00\xb4\xf0\x03\x02\xaa\x00\x02\x1f\xd6\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\xfd\x7b\xbe\xa9\xfd\x03\x00\x91\xf3\x0b\x00\xf9\x93\x00\x00\xb0\x60\x42\x40\x39\x40\x01\x00\x35\x80\x00\x00\x90\x00\xf0\x47\xf9\x80\x00\x00\xb4\x80\x00\x00\xb0\x00\x04\x40\xf9\xa9\xff\xff\x97\xd8\xff\xff\x97\x20\x00\x80\x52\x60\x42\x00\x39\xf3\x0b\x40\xf9\xfd\x7b\xc2\xa8\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\xdc\xff\xff\x17")]), -Memmap([Annotation(Region(0x0,0x847), Attr("segment","02 0 2120")), -Annotation(Region(0x600,0x617), Attr("symbol","\"main\"")), -Annotation(Region(0x0,0xF9), Attr("section","\".shstrtab\"")), -Annotation(Region(0x0,0x22B), Attr("section","\".strtab\"")), -Annotation(Region(0x0,0x2A), Attr("section","\".comment\"")), -Annotation(Region(0x238,0x252), Attr("section","\".interp\"")), -Annotation(Region(0x254,0x277), Attr("section","\".note.gnu.build-id\"")), -Annotation(Region(0x278,0x297), Attr("section","\".note.ABI-tag\"")), -Annotation(Region(0x298,0x2B3), Attr("section","\".gnu.hash\"")), -Annotation(Region(0x2B8,0x38F), Attr("section","\".dynsym\"")), -Annotation(Region(0x390,0x41C), Attr("section","\".dynstr\"")), -Annotation(Region(0x41E,0x42F), Attr("section","\".gnu.version\"")), -Annotation(Region(0x430,0x45F), Attr("section","\".gnu.version_r\"")), -Annotation(Region(0x460,0x51F), Attr("section","\".rela.dyn\"")), -Annotation(Region(0x520,0x57F), Attr("section","\".rela.plt\"")), -Annotation(Region(0x580,0x597), Attr("section","\".init\"")), -Annotation(Region(0x5A0,0x5FF), Attr("section","\".plt\"")), -Annotation(Region(0x580,0x597), Attr("code-region","()")), -Annotation(Region(0x5A0,0x5FF), Attr("code-region","()")), -Annotation(Region(0x600,0x617), Attr("symbol-info","main 0x600 24")), -Annotation(Region(0x640,0x673), Attr("symbol","\"_start\"")), -Annotation(Region(0x640,0x673), Attr("symbol-info","_start 0x640 52")), -Annotation(Region(0x674,0x687), Attr("symbol","\"call_weak_fn\"")), -Annotation(Region(0x674,0x687), Attr("symbol-info","call_weak_fn 0x674 20")), -Annotation(Region(0x754,0x767), Attr("section","\".fini\"")), -Annotation(Region(0x768,0x76B), Attr("section","\".rodata\"")), -Annotation(Region(0x76C,0x7A7), Attr("section","\".eh_frame_hdr\"")), -Annotation(Region(0x7A8,0x847), Attr("section","\".eh_frame\"")), -Annotation(Region(0x10D98,0x1100F), Attr("segment","03 0x10D98 648")), -Annotation(Region(0x10DA0,0x10DA7), Attr("section","\".fini_array\"")), -Annotation(Region(0x10DA8,0x10F97), Attr("section","\".dynamic\"")), -Annotation(Region(0x10D98,0x10D9F), Attr("section","\".init_array\"")), -Annotation(Region(0x10F98,0x10FFF), Attr("section","\".got\"")), -Annotation(Region(0x11000,0x1100F), Attr("section","\".data\"")), -Annotation(Region(0x600,0x753), Attr("section","\".text\"")), -Annotation(Region(0x600,0x753), Attr("code-region","()")), -Annotation(Region(0x754,0x767), Attr("code-region","()"))]), -Program(Tid(1_493, "%000005d5"), Attrs([]), - Subs([Sub(Tid(1_471, "@__cxa_finalize"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x5D0"), -Attr("stub","()")]), "__cxa_finalize", Args([Arg(Tid(1_494, "%000005d6"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("__cxa_finalize_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(867, "@__cxa_finalize"), - Attrs([Attr("address","0x5D0")]), Phis([]), -Defs([Def(Tid(1_115, "%0000045b"), Attrs([Attr("address","0x5D0"), -Attr("insn","adrp x16, #65536")]), Var("R16",Imm(64)), Int(65536,64)), -Def(Tid(1_122, "%00000462"), Attrs([Attr("address","0x5D4"), -Attr("insn","ldr x17, [x16, #0xfb8]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(4024,64)),LittleEndian(),64)), -Def(Tid(1_128, "%00000468"), Attrs([Attr("address","0x5D8"), -Attr("insn","add x16, x16, #0xfb8")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(4024,64)))]), Jmps([Call(Tid(1_133, "%0000046d"), - Attrs([Attr("address","0x5DC"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), -Sub(Tid(1_472, "@__do_global_dtors_aux"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x700")]), - "__do_global_dtors_aux", Args([Arg(Tid(1_495, "%000005d7"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("__do_global_dtors_aux_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(720, "@__do_global_dtors_aux"), - Attrs([Attr("address","0x700")]), Phis([]), Defs([Def(Tid(724, "%000002d4"), - Attrs([Attr("address","0x700"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("#4",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(18446744073709551584,64))), -Def(Tid(730, "%000002da"), Attrs([Attr("address","0x700"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("#4",Imm(64)),Var("R29",Imm(64)),LittleEndian(),64)), -Def(Tid(736, "%000002e0"), Attrs([Attr("address","0x700"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("#4",Imm(64)),Int(8,64)),Var("R30",Imm(64)),LittleEndian(),64)), -Def(Tid(740, "%000002e4"), Attrs([Attr("address","0x700"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("R31",Imm(64)), -Var("#4",Imm(64))), Def(Tid(746, "%000002ea"), - Attrs([Attr("address","0x704"), Attr("insn","mov x29, sp")]), - Var("R29",Imm(64)), Var("R31",Imm(64))), Def(Tid(754, "%000002f2"), - Attrs([Attr("address","0x708"), Attr("insn","str x19, [sp, #0x10]")]), - Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(16,64)),Var("R19",Imm(64)),LittleEndian(),64)), -Def(Tid(759, "%000002f7"), Attrs([Attr("address","0x70C"), -Attr("insn","adrp x19, #69632")]), Var("R19",Imm(64)), Int(69632,64)), -Def(Tid(766, "%000002fe"), Attrs([Attr("address","0x710"), -Attr("insn","ldrb w0, [x19, #0x10]")]), Var("R0",Imm(64)), -UNSIGNED(64,Load(Var("mem",Mem(64,8)),PLUS(Var("R19",Imm(64)),Int(16,64)),LittleEndian(),8)))]), -Jmps([Goto(Tid(773, "%00000305"), Attrs([Attr("address","0x714"), -Attr("insn","cbnz w0, #0x28")]), - NEQ(Extract(31,0,Var("R0",Imm(64))),Int(0,32)), -Direct(Tid(771, "%00000303"))), Goto(Tid(1_473, "%000005c1"), Attrs([]), - Int(1,1), Direct(Tid(812, "%0000032c")))])), Blk(Tid(812, "%0000032c"), - Attrs([Attr("address","0x718")]), Phis([]), Defs([Def(Tid(815, "%0000032f"), - Attrs([Attr("address","0x718"), Attr("insn","adrp x0, #65536")]), - Var("R0",Imm(64)), Int(65536,64)), Def(Tid(822, "%00000336"), - Attrs([Attr("address","0x71C"), Attr("insn","ldr x0, [x0, #0xfe0]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(4064,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(828, "%0000033c"), Attrs([Attr("address","0x720"), -Attr("insn","cbz x0, #0x10")]), EQ(Var("R0",Imm(64)),Int(0,64)), -Direct(Tid(826, "%0000033a"))), Goto(Tid(1_474, "%000005c2"), Attrs([]), - Int(1,1), Direct(Tid(851, "%00000353")))])), Blk(Tid(851, "%00000353"), - Attrs([Attr("address","0x724")]), Phis([]), Defs([Def(Tid(854, "%00000356"), - Attrs([Attr("address","0x724"), Attr("insn","adrp x0, #69632")]), - Var("R0",Imm(64)), Int(69632,64)), Def(Tid(861, "%0000035d"), - Attrs([Attr("address","0x728"), Attr("insn","ldr x0, [x0, #0x8]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(866, "%00000362"), Attrs([Attr("address","0x72C"), -Attr("insn","bl #-0x15c")]), Var("R30",Imm(64)), Int(1840,64))]), -Jmps([Call(Tid(869, "%00000365"), Attrs([Attr("address","0x72C"), -Attr("insn","bl #-0x15c")]), Int(1,1), -(Direct(Tid(1_471, "@__cxa_finalize")),Direct(Tid(826, "%0000033a"))))])), -Blk(Tid(826, "%0000033a"), Attrs([Attr("address","0x730")]), Phis([]), -Defs([Def(Tid(834, "%00000342"), Attrs([Attr("address","0x730"), -Attr("insn","bl #-0xa0")]), Var("R30",Imm(64)), Int(1844,64))]), -Jmps([Call(Tid(836, "%00000344"), Attrs([Attr("address","0x730"), -Attr("insn","bl #-0xa0")]), Int(1,1), -(Direct(Tid(1_485, "@deregister_tm_clones")),Direct(Tid(838, "%00000346"))))])), -Blk(Tid(838, "%00000346"), Attrs([Attr("address","0x734")]), Phis([]), -Defs([Def(Tid(841, "%00000349"), Attrs([Attr("address","0x734"), -Attr("insn","mov w0, #0x1")]), Var("R0",Imm(64)), Int(1,64)), -Def(Tid(849, "%00000351"), Attrs([Attr("address","0x738"), -Attr("insn","strb w0, [x19, #0x10]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R19",Imm(64)),Int(16,64)),Extract(7,0,Var("R0",Imm(64))),LittleEndian(),8))]), -Jmps([Goto(Tid(1_475, "%000005c3"), Attrs([]), Int(1,1), -Direct(Tid(771, "%00000303")))])), Blk(Tid(771, "%00000303"), - Attrs([Attr("address","0x73C")]), Phis([]), Defs([Def(Tid(781, "%0000030d"), - Attrs([Attr("address","0x73C"), Attr("insn","ldr x19, [sp, #0x10]")]), - Var("R19",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(16,64)),LittleEndian(),64)), -Def(Tid(788, "%00000314"), Attrs([Attr("address","0x740"), -Attr("insn","ldp x29, x30, [sp], #0x20")]), Var("R29",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(793, "%00000319"), Attrs([Attr("address","0x740"), -Attr("insn","ldp x29, x30, [sp], #0x20")]), Var("R30",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(797, "%0000031d"), Attrs([Attr("address","0x740"), -Attr("insn","ldp x29, x30, [sp], #0x20")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(32,64)))]), Jmps([Call(Tid(802, "%00000322"), - Attrs([Attr("address","0x744"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), Sub(Tid(1_476, "@__libc_start_main"), - Attrs([Attr("c.proto","signed (*)(signed (*)(signed , char** , char** );* main, signed , char** , \nvoid* auxv)"), -Attr("address","0x5C0"), Attr("stub","()")]), "__libc_start_main", - Args([Arg(Tid(1_496, "%000005d8"), - Attrs([Attr("c.layout","**[ : 64]"), -Attr("c.data","Top:u64 ptr ptr"), -Attr("c.type","signed (*)(signed , char** , char** );*")]), - Var("__libc_start_main_main",Imm(64)), Var("R0",Imm(64)), In()), -Arg(Tid(1_497, "%000005d9"), Attrs([Attr("c.layout","[signed : 32]"), -Attr("c.data","Top:u32"), Attr("c.type","signed")]), - Var("__libc_start_main_arg2",Imm(32)), LOW(32,Var("R1",Imm(64))), In()), -Arg(Tid(1_498, "%000005da"), Attrs([Attr("c.layout","**[char : 8]"), -Attr("c.data","Top:u8 ptr ptr"), Attr("c.type","char**")]), - Var("__libc_start_main_arg3",Imm(64)), Var("R2",Imm(64)), Both()), -Arg(Tid(1_499, "%000005db"), Attrs([Attr("c.layout","*[ : 8]"), -Attr("c.data","{} ptr"), Attr("c.type","void*")]), - Var("__libc_start_main_auxv",Imm(64)), Var("R3",Imm(64)), Both()), -Arg(Tid(1_500, "%000005dc"), Attrs([Attr("c.layout","[signed : 32]"), -Attr("c.data","Top:u32"), Attr("c.type","signed")]), - Var("__libc_start_main_result",Imm(32)), LOW(32,Var("R0",Imm(64))), -Out())]), Blks([Blk(Tid(553, "@__libc_start_main"), - Attrs([Attr("address","0x5C0")]), Phis([]), -Defs([Def(Tid(1_093, "%00000445"), Attrs([Attr("address","0x5C0"), -Attr("insn","adrp x16, #65536")]), Var("R16",Imm(64)), Int(65536,64)), -Def(Tid(1_100, "%0000044c"), Attrs([Attr("address","0x5C4"), -Attr("insn","ldr x17, [x16, #0xfb0]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(4016,64)),LittleEndian(),64)), -Def(Tid(1_106, "%00000452"), Attrs([Attr("address","0x5C8"), -Attr("insn","add x16, x16, #0xfb0")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(4016,64)))]), Jmps([Call(Tid(1_111, "%00000457"), - Attrs([Attr("address","0x5CC"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), Sub(Tid(1_477, "@_fini"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x754")]), - "_fini", Args([Arg(Tid(1_501, "%000005dd"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("_fini_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(31, "@_fini"), - Attrs([Attr("address","0x754")]), Phis([]), Defs([Def(Tid(37, "%00000025"), - Attrs([Attr("address","0x758"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("#0",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(18446744073709551600,64))), -Def(Tid(43, "%0000002b"), Attrs([Attr("address","0x758"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("#0",Imm(64)),Var("R29",Imm(64)),LittleEndian(),64)), -Def(Tid(49, "%00000031"), Attrs([Attr("address","0x758"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("#0",Imm(64)),Int(8,64)),Var("R30",Imm(64)),LittleEndian(),64)), -Def(Tid(53, "%00000035"), Attrs([Attr("address","0x758"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("R31",Imm(64)), -Var("#0",Imm(64))), Def(Tid(59, "%0000003b"), Attrs([Attr("address","0x75C"), -Attr("insn","mov x29, sp")]), Var("R29",Imm(64)), Var("R31",Imm(64))), -Def(Tid(66, "%00000042"), Attrs([Attr("address","0x760"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R29",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(71, "%00000047"), Attrs([Attr("address","0x760"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R30",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(75, "%0000004b"), Attrs([Attr("address","0x760"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(16,64)))]), Jmps([Call(Tid(80, "%00000050"), - Attrs([Attr("address","0x764"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), Sub(Tid(1_478, "@_init"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x580")]), - "_init", Args([Arg(Tid(1_502, "%000005de"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("_init_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(1_297, "@_init"), - Attrs([Attr("address","0x580")]), Phis([]), -Defs([Def(Tid(1_303, "%00000517"), Attrs([Attr("address","0x584"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("#6",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(18446744073709551600,64))), -Def(Tid(1_309, "%0000051d"), Attrs([Attr("address","0x584"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("#6",Imm(64)),Var("R29",Imm(64)),LittleEndian(),64)), -Def(Tid(1_315, "%00000523"), Attrs([Attr("address","0x584"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("#6",Imm(64)),Int(8,64)),Var("R30",Imm(64)),LittleEndian(),64)), -Def(Tid(1_319, "%00000527"), Attrs([Attr("address","0x584"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("R31",Imm(64)), -Var("#6",Imm(64))), Def(Tid(1_325, "%0000052d"), - Attrs([Attr("address","0x588"), Attr("insn","mov x29, sp")]), - Var("R29",Imm(64)), Var("R31",Imm(64))), Def(Tid(1_330, "%00000532"), - Attrs([Attr("address","0x58C"), Attr("insn","bl #0xe8")]), - Var("R30",Imm(64)), Int(1424,64))]), Jmps([Call(Tid(1_332, "%00000534"), - Attrs([Attr("address","0x58C"), Attr("insn","bl #0xe8")]), Int(1,1), -(Direct(Tid(1_483, "@call_weak_fn")),Direct(Tid(1_334, "%00000536"))))])), -Blk(Tid(1_334, "%00000536"), Attrs([Attr("address","0x590")]), Phis([]), -Defs([Def(Tid(1_339, "%0000053b"), Attrs([Attr("address","0x590"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R29",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(1_344, "%00000540"), Attrs([Attr("address","0x590"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R30",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(1_348, "%00000544"), Attrs([Attr("address","0x590"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(16,64)))]), Jmps([Call(Tid(1_353, "%00000549"), - Attrs([Attr("address","0x594"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), Sub(Tid(1_479, "@_start"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x640"), -Attr("entry-point","()")]), "_start", Args([Arg(Tid(1_503, "%000005df"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("_start_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(490, "@_start"), - Attrs([Attr("address","0x640")]), Phis([]), Defs([Def(Tid(495, "%000001ef"), - Attrs([Attr("address","0x644"), Attr("insn","mov x29, #0x0")]), - Var("R29",Imm(64)), Int(0,64)), Def(Tid(500, "%000001f4"), - Attrs([Attr("address","0x648"), Attr("insn","mov x30, #0x0")]), - Var("R30",Imm(64)), Int(0,64)), Def(Tid(506, "%000001fa"), - Attrs([Attr("address","0x64C"), Attr("insn","mov x5, x0")]), - Var("R5",Imm(64)), Var("R0",Imm(64))), Def(Tid(513, "%00000201"), - Attrs([Attr("address","0x650"), Attr("insn","ldr x1, [sp]")]), - Var("R1",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(519, "%00000207"), Attrs([Attr("address","0x654"), -Attr("insn","add x2, sp, #0x8")]), Var("R2",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(8,64))), Def(Tid(525, "%0000020d"), - Attrs([Attr("address","0x658"), Attr("insn","mov x6, sp")]), - Var("R6",Imm(64)), Var("R31",Imm(64))), Def(Tid(530, "%00000212"), - Attrs([Attr("address","0x65C"), Attr("insn","adrp x0, #65536")]), - Var("R0",Imm(64)), Int(65536,64)), Def(Tid(537, "%00000219"), - Attrs([Attr("address","0x660"), Attr("insn","ldr x0, [x0, #0xff0]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(4080,64)),LittleEndian(),64)), -Def(Tid(542, "%0000021e"), Attrs([Attr("address","0x664"), -Attr("insn","mov x3, #0x0")]), Var("R3",Imm(64)), Int(0,64)), -Def(Tid(547, "%00000223"), Attrs([Attr("address","0x668"), -Attr("insn","mov x4, #0x0")]), Var("R4",Imm(64)), Int(0,64)), -Def(Tid(552, "%00000228"), Attrs([Attr("address","0x66C"), -Attr("insn","bl #-0xac")]), Var("R30",Imm(64)), Int(1648,64))]), -Jmps([Call(Tid(555, "%0000022b"), Attrs([Attr("address","0x66C"), -Attr("insn","bl #-0xac")]), Int(1,1), -(Direct(Tid(1_476, "@__libc_start_main")),Direct(Tid(557, "%0000022d"))))])), -Blk(Tid(557, "%0000022d"), Attrs([Attr("address","0x670")]), Phis([]), -Defs([Def(Tid(560, "%00000230"), Attrs([Attr("address","0x670"), -Attr("insn","bl #-0x80")]), Var("R30",Imm(64)), Int(1652,64))]), -Jmps([Call(Tid(563, "%00000233"), Attrs([Attr("address","0x670"), -Attr("insn","bl #-0x80")]), Int(1,1), -(Direct(Tid(1_482, "@abort")),Direct(Tid(1_480, "%000005c8"))))])), -Blk(Tid(1_480, "%000005c8"), Attrs([]), Phis([]), Defs([]), -Jmps([Call(Tid(1_481, "%000005c9"), Attrs([]), Int(1,1), -(Direct(Tid(1_483, "@call_weak_fn")),))]))])), Sub(Tid(1_482, "@abort"), - Attrs([Attr("noreturn","()"), Attr("c.proto","void (*)(void)"), -Attr("address","0x5F0"), Attr("stub","()")]), "abort", Args([]), -Blks([Blk(Tid(561, "@abort"), Attrs([Attr("address","0x5F0")]), Phis([]), -Defs([Def(Tid(1_159, "%00000487"), Attrs([Attr("address","0x5F0"), -Attr("insn","adrp x16, #65536")]), Var("R16",Imm(64)), Int(65536,64)), -Def(Tid(1_166, "%0000048e"), Attrs([Attr("address","0x5F4"), -Attr("insn","ldr x17, [x16, #0xfc8]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(4040,64)),LittleEndian(),64)), -Def(Tid(1_172, "%00000494"), Attrs([Attr("address","0x5F8"), -Attr("insn","add x16, x16, #0xfc8")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(4040,64)))]), Jmps([Call(Tid(1_177, "%00000499"), - Attrs([Attr("address","0x5FC"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), Sub(Tid(1_483, "@call_weak_fn"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x674")]), - "call_weak_fn", Args([Arg(Tid(1_504, "%000005e0"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("call_weak_fn_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(565, "@call_weak_fn"), - Attrs([Attr("address","0x674")]), Phis([]), Defs([Def(Tid(568, "%00000238"), - Attrs([Attr("address","0x674"), Attr("insn","adrp x0, #65536")]), - Var("R0",Imm(64)), Int(65536,64)), Def(Tid(575, "%0000023f"), - Attrs([Attr("address","0x678"), Attr("insn","ldr x0, [x0, #0xfe8]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(4072,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(581, "%00000245"), Attrs([Attr("address","0x67C"), -Attr("insn","cbz x0, #0x8")]), EQ(Var("R0",Imm(64)),Int(0,64)), -Direct(Tid(579, "%00000243"))), Goto(Tid(1_484, "%000005cc"), Attrs([]), - Int(1,1), Direct(Tid(931, "%000003a3")))])), Blk(Tid(579, "%00000243"), - Attrs([Attr("address","0x684")]), Phis([]), Defs([]), -Jmps([Call(Tid(587, "%0000024b"), Attrs([Attr("address","0x684"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))])), -Blk(Tid(931, "%000003a3"), Attrs([Attr("address","0x680")]), Phis([]), -Defs([]), Jmps([Goto(Tid(934, "%000003a6"), Attrs([Attr("address","0x680"), -Attr("insn","b #-0xa0")]), Int(1,1), Direct(Tid(932, "@__gmon_start__")))])), -Blk(Tid(932, "@__gmon_start__"), Attrs([Attr("address","0x5E0")]), Phis([]), -Defs([Def(Tid(1_137, "%00000471"), Attrs([Attr("address","0x5E0"), -Attr("insn","adrp x16, #65536")]), Var("R16",Imm(64)), Int(65536,64)), -Def(Tid(1_144, "%00000478"), Attrs([Attr("address","0x5E4"), -Attr("insn","ldr x17, [x16, #0xfc0]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(4032,64)),LittleEndian(),64)), -Def(Tid(1_150, "%0000047e"), Attrs([Attr("address","0x5E8"), -Attr("insn","add x16, x16, #0xfc0")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(4032,64)))]), Jmps([Call(Tid(1_155, "%00000483"), - Attrs([Attr("address","0x5EC"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), -Sub(Tid(1_485, "@deregister_tm_clones"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x690")]), - "deregister_tm_clones", Args([Arg(Tid(1_505, "%000005e1"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("deregister_tm_clones_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(593, "@deregister_tm_clones"), - Attrs([Attr("address","0x690")]), Phis([]), Defs([Def(Tid(596, "%00000254"), - Attrs([Attr("address","0x690"), Attr("insn","adrp x0, #69632")]), - Var("R0",Imm(64)), Int(69632,64)), Def(Tid(602, "%0000025a"), - Attrs([Attr("address","0x694"), Attr("insn","add x0, x0, #0x10")]), - Var("R0",Imm(64)), PLUS(Var("R0",Imm(64)),Int(16,64))), -Def(Tid(607, "%0000025f"), Attrs([Attr("address","0x698"), -Attr("insn","adrp x1, #69632")]), Var("R1",Imm(64)), Int(69632,64)), -Def(Tid(613, "%00000265"), Attrs([Attr("address","0x69C"), -Attr("insn","add x1, x1, #0x10")]), Var("R1",Imm(64)), -PLUS(Var("R1",Imm(64)),Int(16,64))), Def(Tid(619, "%0000026b"), - Attrs([Attr("address","0x6A0"), Attr("insn","cmp x1, x0")]), - Var("#2",Imm(64)), NOT(Var("R0",Imm(64)))), Def(Tid(624, "%00000270"), - Attrs([Attr("address","0x6A0"), Attr("insn","cmp x1, x0")]), - Var("#3",Imm(64)), PLUS(Var("R1",Imm(64)),NOT(Var("R0",Imm(64))))), -Def(Tid(630, "%00000276"), Attrs([Attr("address","0x6A0"), -Attr("insn","cmp x1, x0")]), Var("VF",Imm(1)), -NEQ(SIGNED(65,PLUS(Var("#3",Imm(64)),Int(1,64))),PLUS(PLUS(SIGNED(65,Var("R1",Imm(64))),SIGNED(65,Var("#2",Imm(64)))),Int(1,65)))), -Def(Tid(636, "%0000027c"), Attrs([Attr("address","0x6A0"), -Attr("insn","cmp x1, x0")]), Var("CF",Imm(1)), -NEQ(UNSIGNED(65,PLUS(Var("#3",Imm(64)),Int(1,64))),PLUS(PLUS(UNSIGNED(65,Var("R1",Imm(64))),UNSIGNED(65,Var("#2",Imm(64)))),Int(1,65)))), -Def(Tid(640, "%00000280"), Attrs([Attr("address","0x6A0"), -Attr("insn","cmp x1, x0")]), Var("ZF",Imm(1)), -EQ(PLUS(Var("#3",Imm(64)),Int(1,64)),Int(0,64))), Def(Tid(644, "%00000284"), - Attrs([Attr("address","0x6A0"), Attr("insn","cmp x1, x0")]), - Var("NF",Imm(1)), Extract(63,63,PLUS(Var("#3",Imm(64)),Int(1,64))))]), -Jmps([Goto(Tid(650, "%0000028a"), Attrs([Attr("address","0x6A4"), -Attr("insn","b.eq #0x18")]), EQ(Var("ZF",Imm(1)),Int(1,1)), -Direct(Tid(648, "%00000288"))), Goto(Tid(1_486, "%000005ce"), Attrs([]), - Int(1,1), Direct(Tid(901, "%00000385")))])), Blk(Tid(901, "%00000385"), - Attrs([Attr("address","0x6A8")]), Phis([]), Defs([Def(Tid(904, "%00000388"), - Attrs([Attr("address","0x6A8"), Attr("insn","adrp x1, #65536")]), - Var("R1",Imm(64)), Int(65536,64)), Def(Tid(911, "%0000038f"), - Attrs([Attr("address","0x6AC"), Attr("insn","ldr x1, [x1, #0xfd8]")]), - Var("R1",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R1",Imm(64)),Int(4056,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(916, "%00000394"), Attrs([Attr("address","0x6B0"), -Attr("insn","cbz x1, #0xc")]), EQ(Var("R1",Imm(64)),Int(0,64)), -Direct(Tid(648, "%00000288"))), Goto(Tid(1_487, "%000005cf"), Attrs([]), - Int(1,1), Direct(Tid(920, "%00000398")))])), Blk(Tid(648, "%00000288"), - Attrs([Attr("address","0x6BC")]), Phis([]), Defs([]), -Jmps([Call(Tid(656, "%00000290"), Attrs([Attr("address","0x6BC"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))])), -Blk(Tid(920, "%00000398"), Attrs([Attr("address","0x6B4")]), Phis([]), -Defs([Def(Tid(924, "%0000039c"), Attrs([Attr("address","0x6B4"), -Attr("insn","mov x16, x1")]), Var("R16",Imm(64)), Var("R1",Imm(64)))]), -Jmps([Call(Tid(929, "%000003a1"), Attrs([Attr("address","0x6B8"), -Attr("insn","br x16")]), Int(1,1), (Indirect(Var("R16",Imm(64))),))]))])), -Sub(Tid(1_488, "@frame_dummy"), Attrs([Attr("c.proto","signed (*)(void)"), -Attr("address","0x750")]), "frame_dummy", Args([Arg(Tid(1_506, "%000005e2"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("frame_dummy_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(808, "@frame_dummy"), - Attrs([Attr("address","0x750")]), Phis([]), Defs([]), -Jmps([Call(Tid(810, "%0000032a"), Attrs([Attr("address","0x750"), -Attr("insn","b #-0x90")]), Int(1,1), -(Direct(Tid(1_490, "@register_tm_clones")),))]))])), Sub(Tid(1_489, "@main"), - Attrs([Attr("c.proto","signed (*)(signed argc, const char** argv)"), -Attr("address","0x600"), Attr("stub","()")]), "main", - Args([Arg(Tid(1_507, "%000005e3"), Attrs([Attr("c.layout","[signed : 32]"), -Attr("c.data","Top:u32"), Attr("c.type","signed")]), - Var("main_argc",Imm(32)), LOW(32,Var("R0",Imm(64))), In()), -Arg(Tid(1_508, "%000005e4"), Attrs([Attr("c.layout","**[char : 8]"), -Attr("c.data","Top:u8 ptr ptr"), Attr("c.type"," const char**")]), - Var("main_argv",Imm(64)), Var("R1",Imm(64)), Both()), -Arg(Tid(1_509, "%000005e5"), Attrs([Attr("c.layout","[signed : 32]"), -Attr("c.data","Top:u32"), Attr("c.type","signed")]), - Var("main_result",Imm(32)), LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(424, "@main"), Attrs([Attr("address","0x600")]), Phis([]), -Defs([Def(Tid(427, "%000001ab"), Attrs([Attr("address","0x600"), -Attr("insn","adrp x2, #69632")]), Var("R2",Imm(64)), Int(69632,64)), -Def(Tid(433, "%000001b1"), Attrs([Attr("address","0x604"), -Attr("insn","add x1, x2, #0x14")]), Var("R1",Imm(64)), -PLUS(Var("R2",Imm(64)),Int(20,64))), Def(Tid(438, "%000001b6"), - Attrs([Attr("address","0x608"), Attr("insn","mov w0, #0x0")]), - Var("R0",Imm(64)), Int(0,64)), Def(Tid(445, "%000001bd"), - Attrs([Attr("address","0x60C"), Attr("insn","ldr w2, [x2, #0x14]")]), - Var("R2",Imm(64)), -UNSIGNED(64,Load(Var("mem",Mem(64,8)),PLUS(Var("R2",Imm(64)),Int(20,64)),LittleEndian(),32))), -Def(Tid(451, "%000001c3"), Attrs([Attr("address","0x610"), -Attr("insn","stp w2, w2, [x1, #0x4]")]), Var("#1",Imm(64)), -PLUS(Var("R1",Imm(64)),Int(4,64))), Def(Tid(457, "%000001c9"), - Attrs([Attr("address","0x610"), Attr("insn","stp w2, w2, [x1, #0x4]")]), - Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("#1",Imm(64)),Extract(31,0,Var("R2",Imm(64))),LittleEndian(),32)), -Def(Tid(463, "%000001cf"), Attrs([Attr("address","0x610"), -Attr("insn","stp w2, w2, [x1, #0x4]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("#1",Imm(64)),Int(4,64)),Extract(31,0,Var("R2",Imm(64))),LittleEndian(),32))]), -Jmps([Call(Tid(468, "%000001d4"), Attrs([Attr("address","0x614"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))]))])), -Sub(Tid(1_490, "@register_tm_clones"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x6C0")]), - "register_tm_clones", Args([Arg(Tid(1_510, "%000005e6"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("register_tm_clones_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(658, "@register_tm_clones"), Attrs([Attr("address","0x6C0")]), - Phis([]), Defs([Def(Tid(661, "%00000295"), Attrs([Attr("address","0x6C0"), -Attr("insn","adrp x0, #69632")]), Var("R0",Imm(64)), Int(69632,64)), -Def(Tid(667, "%0000029b"), Attrs([Attr("address","0x6C4"), -Attr("insn","add x0, x0, #0x10")]), Var("R0",Imm(64)), -PLUS(Var("R0",Imm(64)),Int(16,64))), Def(Tid(672, "%000002a0"), - Attrs([Attr("address","0x6C8"), Attr("insn","adrp x1, #69632")]), - Var("R1",Imm(64)), Int(69632,64)), Def(Tid(678, "%000002a6"), - Attrs([Attr("address","0x6CC"), Attr("insn","add x1, x1, #0x10")]), - Var("R1",Imm(64)), PLUS(Var("R1",Imm(64)),Int(16,64))), -Def(Tid(685, "%000002ad"), Attrs([Attr("address","0x6D0"), -Attr("insn","sub x1, x1, x0")]), Var("R1",Imm(64)), -PLUS(PLUS(Var("R1",Imm(64)),NOT(Var("R0",Imm(64)))),Int(1,64))), -Def(Tid(691, "%000002b3"), Attrs([Attr("address","0x6D4"), -Attr("insn","lsr x2, x1, #63")]), Var("R2",Imm(64)), -Concat(Int(0,63),Extract(63,63,Var("R1",Imm(64))))), -Def(Tid(698, "%000002ba"), Attrs([Attr("address","0x6D8"), -Attr("insn","add x1, x2, x1, asr #3")]), Var("R1",Imm(64)), -PLUS(Var("R2",Imm(64)),ARSHIFT(Var("R1",Imm(64)),Int(3,3)))), -Def(Tid(704, "%000002c0"), Attrs([Attr("address","0x6DC"), -Attr("insn","asr x1, x1, #1")]), Var("R1",Imm(64)), -SIGNED(64,Extract(63,1,Var("R1",Imm(64)))))]), -Jmps([Goto(Tid(710, "%000002c6"), Attrs([Attr("address","0x6E0"), -Attr("insn","cbz x1, #0x18")]), EQ(Var("R1",Imm(64)),Int(0,64)), -Direct(Tid(708, "%000002c4"))), Goto(Tid(1_491, "%000005d3"), Attrs([]), - Int(1,1), Direct(Tid(871, "%00000367")))])), Blk(Tid(871, "%00000367"), - Attrs([Attr("address","0x6E4")]), Phis([]), Defs([Def(Tid(874, "%0000036a"), - Attrs([Attr("address","0x6E4"), Attr("insn","adrp x2, #65536")]), - Var("R2",Imm(64)), Int(65536,64)), Def(Tid(881, "%00000371"), - Attrs([Attr("address","0x6E8"), Attr("insn","ldr x2, [x2, #0xff8]")]), - Var("R2",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R2",Imm(64)),Int(4088,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(886, "%00000376"), Attrs([Attr("address","0x6EC"), -Attr("insn","cbz x2, #0xc")]), EQ(Var("R2",Imm(64)),Int(0,64)), -Direct(Tid(708, "%000002c4"))), Goto(Tid(1_492, "%000005d4"), Attrs([]), - Int(1,1), Direct(Tid(890, "%0000037a")))])), Blk(Tid(708, "%000002c4"), - Attrs([Attr("address","0x6F8")]), Phis([]), Defs([]), -Jmps([Call(Tid(716, "%000002cc"), Attrs([Attr("address","0x6F8"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))])), -Blk(Tid(890, "%0000037a"), Attrs([Attr("address","0x6F0")]), Phis([]), -Defs([Def(Tid(894, "%0000037e"), Attrs([Attr("address","0x6F0"), -Attr("insn","mov x16, x2")]), Var("R16",Imm(64)), Var("R2",Imm(64)))]), -Jmps([Call(Tid(899, "%00000383"), Attrs([Attr("address","0x6F4"), -Attr("insn","br x16")]), Int(1,1), -(Indirect(Var("R16",Imm(64))),))]))]))]))) \ No newline at end of file diff --git a/src/test/incorrect/basicassign/gcc_O2/basicassign.bir b/src/test/incorrect/basicassign/gcc_O2/basicassign.bir deleted file mode 100644 index 8b553cfe1..000000000 --- a/src/test/incorrect/basicassign/gcc_O2/basicassign.bir +++ /dev/null @@ -1,230 +0,0 @@ -000005d5: program -000005bf: sub __cxa_finalize(__cxa_finalize_result) -000005d6: __cxa_finalize_result :: out u32 = low:32[R0] - -00000363: -0000045b: R16 := 0x10000 -00000462: R17 := mem[R16 + 0xFB8, el]:u64 -00000468: R16 := R16 + 0xFB8 -0000046d: call R17 with noreturn - -000005c0: sub __do_global_dtors_aux(__do_global_dtors_aux_result) -000005d7: __do_global_dtors_aux_result :: out u32 = low:32[R0] - -000002d0: -000002d4: #4 := R31 - 0x20 -000002da: mem := mem with [#4, el]:u64 <- R29 -000002e0: mem := mem with [#4 + 8, el]:u64 <- R30 -000002e4: R31 := #4 -000002ea: R29 := R31 -000002f2: mem := mem with [R31 + 0x10, el]:u64 <- R19 -000002f7: R19 := 0x11000 -000002fe: R0 := pad:64[mem[R19 + 0x10]] -00000305: when 31:0[R0] <> 0 goto %00000303 -000005c1: goto %0000032c - -0000032c: -0000032f: R0 := 0x10000 -00000336: R0 := mem[R0 + 0xFE0, el]:u64 -0000033c: when R0 = 0 goto %0000033a -000005c2: goto %00000353 - -00000353: -00000356: R0 := 0x11000 -0000035d: R0 := mem[R0 + 8, el]:u64 -00000362: R30 := 0x730 -00000365: call @__cxa_finalize with return %0000033a - -0000033a: -00000342: R30 := 0x734 -00000344: call @deregister_tm_clones with return %00000346 - -00000346: -00000349: R0 := 1 -00000351: mem := mem with [R19 + 0x10] <- 7:0[R0] -000005c3: goto %00000303 - -00000303: -0000030d: R19 := mem[R31 + 0x10, el]:u64 -00000314: R29 := mem[R31, el]:u64 -00000319: R30 := mem[R31 + 8, el]:u64 -0000031d: R31 := R31 + 0x20 -00000322: call R30 with noreturn - -000005c4: sub __libc_start_main(__libc_start_main_main, __libc_start_main_arg2, __libc_start_main_arg3, __libc_start_main_auxv, __libc_start_main_result) -000005d8: __libc_start_main_main :: in u64 = R0 -000005d9: __libc_start_main_arg2 :: in u32 = low:32[R1] -000005da: __libc_start_main_arg3 :: in out u64 = R2 -000005db: __libc_start_main_auxv :: in out u64 = R3 -000005dc: __libc_start_main_result :: out u32 = low:32[R0] - -00000229: -00000445: R16 := 0x10000 -0000044c: R17 := mem[R16 + 0xFB0, el]:u64 -00000452: R16 := R16 + 0xFB0 -00000457: call R17 with noreturn - -000005c5: sub _fini(_fini_result) -000005dd: _fini_result :: out u32 = low:32[R0] - -0000001f: -00000025: #0 := R31 - 0x10 -0000002b: mem := mem with [#0, el]:u64 <- R29 -00000031: mem := mem with [#0 + 8, el]:u64 <- R30 -00000035: R31 := #0 -0000003b: R29 := R31 -00000042: R29 := mem[R31, el]:u64 -00000047: R30 := mem[R31 + 8, el]:u64 -0000004b: R31 := R31 + 0x10 -00000050: call R30 with noreturn - -000005c6: sub _init(_init_result) -000005de: _init_result :: out u32 = low:32[R0] - -00000511: -00000517: #6 := R31 - 0x10 -0000051d: mem := mem with [#6, el]:u64 <- R29 -00000523: mem := mem with [#6 + 8, el]:u64 <- R30 -00000527: R31 := #6 -0000052d: R29 := R31 -00000532: R30 := 0x590 -00000534: call @call_weak_fn with return %00000536 - -00000536: -0000053b: R29 := mem[R31, el]:u64 -00000540: R30 := mem[R31 + 8, el]:u64 -00000544: R31 := R31 + 0x10 -00000549: call R30 with noreturn - -000005c7: sub _start(_start_result) -000005df: _start_result :: out u32 = low:32[R0] - -000001ea: -000001ef: R29 := 0 -000001f4: R30 := 0 -000001fa: R5 := R0 -00000201: R1 := mem[R31, el]:u64 -00000207: R2 := R31 + 8 -0000020d: R6 := R31 -00000212: R0 := 0x10000 -00000219: R0 := mem[R0 + 0xFF0, el]:u64 -0000021e: R3 := 0 -00000223: R4 := 0 -00000228: R30 := 0x670 -0000022b: call @__libc_start_main with return %0000022d - -0000022d: -00000230: R30 := 0x674 -00000233: call @abort with return %000005c8 - -000005c8: -000005c9: call @call_weak_fn with noreturn - -000005ca: sub abort() - - -00000231: -00000487: R16 := 0x10000 -0000048e: R17 := mem[R16 + 0xFC8, el]:u64 -00000494: R16 := R16 + 0xFC8 -00000499: call R17 with noreturn - -000005cb: sub call_weak_fn(call_weak_fn_result) -000005e0: call_weak_fn_result :: out u32 = low:32[R0] - -00000235: -00000238: R0 := 0x10000 -0000023f: R0 := mem[R0 + 0xFE8, el]:u64 -00000245: when R0 = 0 goto %00000243 -000005cc: goto %000003a3 - -00000243: -0000024b: call R30 with noreturn - -000003a3: -000003a6: goto @__gmon_start__ - -000003a4: -00000471: R16 := 0x10000 -00000478: R17 := mem[R16 + 0xFC0, el]:u64 -0000047e: R16 := R16 + 0xFC0 -00000483: call R17 with noreturn - -000005cd: sub deregister_tm_clones(deregister_tm_clones_result) -000005e1: deregister_tm_clones_result :: out u32 = low:32[R0] - -00000251: -00000254: R0 := 0x11000 -0000025a: R0 := R0 + 0x10 -0000025f: R1 := 0x11000 -00000265: R1 := R1 + 0x10 -0000026b: #2 := ~R0 -00000270: #3 := R1 + ~R0 -00000276: VF := extend:65[#3 + 1] <> extend:65[R1] + extend:65[#2] + 1 -0000027c: CF := pad:65[#3 + 1] <> pad:65[R1] + pad:65[#2] + 1 -00000280: ZF := #3 + 1 = 0 -00000284: NF := 63:63[#3 + 1] -0000028a: when ZF goto %00000288 -000005ce: goto %00000385 - -00000385: -00000388: R1 := 0x10000 -0000038f: R1 := mem[R1 + 0xFD8, el]:u64 -00000394: when R1 = 0 goto %00000288 -000005cf: goto %00000398 - -00000288: -00000290: call R30 with noreturn - -00000398: -0000039c: R16 := R1 -000003a1: call R16 with noreturn - -000005d0: sub frame_dummy(frame_dummy_result) -000005e2: frame_dummy_result :: out u32 = low:32[R0] - -00000328: -0000032a: call @register_tm_clones with noreturn - -000005d1: sub main(main_argc, main_argv, main_result) -000005e3: main_argc :: in u32 = low:32[R0] -000005e4: main_argv :: in out u64 = R1 -000005e5: main_result :: out u32 = low:32[R0] - -000001a8: -000001ab: R2 := 0x11000 -000001b1: R1 := R2 + 0x14 -000001b6: R0 := 0 -000001bd: R2 := pad:64[mem[R2 + 0x14, el]:u32] -000001c3: #1 := R1 + 4 -000001c9: mem := mem with [#1, el]:u32 <- 31:0[R2] -000001cf: mem := mem with [#1 + 4, el]:u32 <- 31:0[R2] -000001d4: call R30 with noreturn - -000005d2: sub register_tm_clones(register_tm_clones_result) -000005e6: register_tm_clones_result :: out u32 = low:32[R0] - -00000292: -00000295: R0 := 0x11000 -0000029b: R0 := R0 + 0x10 -000002a0: R1 := 0x11000 -000002a6: R1 := R1 + 0x10 -000002ad: R1 := R1 + ~R0 + 1 -000002b3: R2 := 0.63:63[R1] -000002ba: R1 := R2 + (R1 ~>> 3) -000002c0: R1 := extend:64[63:1[R1]] -000002c6: when R1 = 0 goto %000002c4 -000005d3: goto %00000367 - -00000367: -0000036a: R2 := 0x10000 -00000371: R2 := mem[R2 + 0xFF8, el]:u64 -00000376: when R2 = 0 goto %000002c4 -000005d4: goto %0000037a - -000002c4: -000002cc: call R30 with noreturn - -0000037a: -0000037e: R16 := R2 -00000383: call R16 with noreturn diff --git a/src/test/incorrect/basicassign/gcc_O2/basicassign.expected b/src/test/incorrect/basicassign/gcc_O2/basicassign.expected index 12cfca9cb..85ab546ca 100644 --- a/src/test/incorrect/basicassign/gcc_O2/basicassign.expected +++ b/src/test/incorrect/basicassign/gcc_O2/basicassign.expected @@ -1,17 +1,19 @@ var {:extern} Gamma_R0: bool; var {:extern} Gamma_R1: bool; var {:extern} Gamma_R2: bool; +var {:extern} Gamma_R3: bool; var {:extern} Gamma_mem: [bv64]bool; var {:extern} R0: bv64; var {:extern} R1: bv64; var {:extern} R2: bv64; +var {:extern} R3: bv64; var {:extern} mem: [bv64]bv8; const {:extern} $secret_addr: bv64; -axiom ($secret_addr == 69652bv64); +axiom ($secret_addr == 4325396bv64); const {:extern} $x_addr: bv64; -axiom ($x_addr == 69656bv64); +axiom ($x_addr == 4325404bv64); const {:extern} $z_addr: bv64; -axiom ($z_addr == 69660bv64); +axiom ($z_addr == 4325400bv64); function {:extern} L(mem$in: [bv64]bv8, index: bv64) returns (bool) { (if (index == $z_addr) then true else (if (index == $secret_addr) then false else (if (index == $x_addr) then false else false))) } @@ -21,6 +23,10 @@ function {:extern} gamma_load32(gammaMap: [bv64]bool, index: bv64) returns (bool (gammaMap[bvadd64(index, 3bv64)] && (gammaMap[bvadd64(index, 2bv64)] && (gammaMap[bvadd64(index, 1bv64)] && gammaMap[index]))) } +function {:extern} gamma_load64(gammaMap: [bv64]bool, index: bv64) returns (bool) { + (gammaMap[bvadd64(index, 7bv64)] && (gammaMap[bvadd64(index, 6bv64)] && (gammaMap[bvadd64(index, 5bv64)] && (gammaMap[bvadd64(index, 4bv64)] && (gammaMap[bvadd64(index, 3bv64)] && (gammaMap[bvadd64(index, 2bv64)] && (gammaMap[bvadd64(index, 1bv64)] && gammaMap[index]))))))) +} + function {:extern} gamma_store32(gammaMap: [bv64]bool, index: bv64, value: bool) returns ([bv64]bool) { gammaMap[index := value][bvadd64(index, 1bv64) := value][bvadd64(index, 2bv64) := value][bvadd64(index, 3bv64) := value] } @@ -42,11 +48,7 @@ procedure {:extern} rely(); modifies Gamma_mem, mem; ensures (forall i: bv64 :: (((mem[i] == old(mem[i])) ==> (Gamma_mem[i] == old(Gamma_mem[i]))))); ensures (memory_load32_le(mem, $x_addr) == old(memory_load32_le(mem, $x_addr))); - free ensures (memory_load32_le(mem, 1896bv64) == 131073bv32); - free ensures (memory_load64_le(mem, 69016bv64) == 1872bv64); - free ensures (memory_load64_le(mem, 69024bv64) == 1792bv64); - free ensures (memory_load64_le(mem, 69616bv64) == 1536bv64); - free ensures (memory_load64_le(mem, 69640bv64) == 69640bv64); + free ensures (memory_load32_le(mem, 4196312bv64) == 131073bv32); procedure {:extern} rely_transitive(); modifies Gamma_mem, mem; @@ -68,47 +70,52 @@ implementation {:extern} rely_reflexive() procedure {:extern} guarantee_reflexive(); modifies Gamma_mem, mem; -procedure main_1536(); - modifies Gamma_R0, Gamma_R1, Gamma_R2, Gamma_mem, R0, R1, R2, mem; - free requires (memory_load64_le(mem, 69632bv64) == 0bv64); - free requires (memory_load64_le(mem, 69640bv64) == 69640bv64); - free requires (memory_load32_le(mem, 1896bv64) == 131073bv32); - free requires (memory_load64_le(mem, 69016bv64) == 1872bv64); - free requires (memory_load64_le(mem, 69024bv64) == 1792bv64); - free requires (memory_load64_le(mem, 69616bv64) == 1536bv64); - free requires (memory_load64_le(mem, 69640bv64) == 69640bv64); - free ensures (memory_load32_le(mem, 1896bv64) == 131073bv32); - free ensures (memory_load64_le(mem, 69016bv64) == 1872bv64); - free ensures (memory_load64_le(mem, 69024bv64) == 1792bv64); - free ensures (memory_load64_le(mem, 69616bv64) == 1536bv64); - free ensures (memory_load64_le(mem, 69640bv64) == 69640bv64); +procedure main(); + modifies Gamma_R0, Gamma_R1, Gamma_R2, Gamma_R3, Gamma_mem, R0, R1, R2, R3, mem; + free requires (memory_load64_le(mem, 4325376bv64) == 0bv64); + free requires (memory_load64_le(mem, 4325384bv64) == 0bv64); + free requires (memory_load32_le(mem, 4196312bv64) == 131073bv32); + free ensures (memory_load32_le(mem, 4196312bv64) == 131073bv32); -implementation main_1536() +implementation main() { - var #1: bv64; - var Gamma_#1: bool; - var Gamma_load18: bool; - var load18: bv32; + var $load$14: bv64; + var $load$15: bv64; + var $load$16: bv64; + var $load$17: bv32; + var Gamma_$load$14: bool; + var Gamma_$load$15: bool; + var Gamma_$load$16: bool; + var Gamma_$load$17: bool; lmain: assume {:captureState "lmain"} true; - R2, Gamma_R2 := 69632bv64, true; - R1, Gamma_R1 := bvadd64(R2, 20bv64), Gamma_R2; + R2, Gamma_R2 := 4321280bv64, true; + call rely(); + $load$14, Gamma_$load$14 := memory_load64_le(mem, bvadd64(R2, 4080bv64)), (gamma_load64(Gamma_mem, bvadd64(R2, 4080bv64)) || L(mem, bvadd64(R2, 4080bv64))); + R2, Gamma_R2 := $load$14, Gamma_$load$14; R0, Gamma_R0 := 0bv64, true; + R1, Gamma_R1 := 4321280bv64, true; + call rely(); + $load$15, Gamma_$load$15 := memory_load64_le(mem, bvadd64(R1, 4064bv64)), (gamma_load64(Gamma_mem, bvadd64(R1, 4064bv64)) || L(mem, bvadd64(R1, 4064bv64))); + R1, Gamma_R1 := $load$15, Gamma_$load$15; + R3, Gamma_R3 := 4321280bv64, true; + call rely(); + $load$16, Gamma_$load$16 := memory_load64_le(mem, bvadd64(R3, 4056bv64)), (gamma_load64(Gamma_mem, bvadd64(R3, 4056bv64)) || L(mem, bvadd64(R3, 4056bv64))); + R3, Gamma_R3 := $load$16, Gamma_$load$16; call rely(); - load18, Gamma_load18 := memory_load32_le(mem, bvadd64(R2, 20bv64)), (gamma_load32(Gamma_mem, bvadd64(R2, 20bv64)) || L(mem, bvadd64(R2, 20bv64))); - R2, Gamma_R2 := zero_extend32_32(load18), Gamma_load18; - #1, Gamma_#1 := bvadd64(R1, 4bv64), Gamma_R1; + $load$17, Gamma_$load$17 := memory_load32_le(mem, R2), (gamma_load32(Gamma_mem, R2) || L(mem, R2)); + R2, Gamma_R2 := zero_extend32_32($load$17), Gamma_$load$17; call rely(); - assert (L(mem, #1) ==> Gamma_R2); - mem, Gamma_mem := memory_store32_le(mem, #1, R2[32:0]), gamma_store32(Gamma_mem, #1, Gamma_R2); - assume {:captureState "%000001c9"} true; + assert (L(mem, R1) ==> Gamma_R2); + mem, Gamma_mem := memory_store32_le(mem, R1, R2[32:0]), gamma_store32(Gamma_mem, R1, Gamma_R2); + assume {:captureState "%00000268"} true; call rely(); - assert (L(mem, bvadd64(#1, 4bv64)) ==> Gamma_R2); - mem, Gamma_mem := memory_store32_le(mem, bvadd64(#1, 4bv64), R2[32:0]), gamma_store32(Gamma_mem, bvadd64(#1, 4bv64), Gamma_R2); - assume {:captureState "%000001cf"} true; - goto main_1536_basil_return; - main_1536_basil_return: - assume {:captureState "main_1536_basil_return"} true; + assert (L(mem, R3) ==> Gamma_R2); + mem, Gamma_mem := memory_store32_le(mem, R3, R2[32:0]), gamma_store32(Gamma_mem, R3, Gamma_R2); + assume {:captureState "%0000026c"} true; + goto main_basil_return; + main_basil_return: + assume {:captureState "main_basil_return"} true; return; } diff --git a/src/test/incorrect/basicassign/gcc_O2/basicassign.gts b/src/test/incorrect/basicassign/gcc_O2/basicassign.gts deleted file mode 100644 index f5efd34d2..000000000 Binary files a/src/test/incorrect/basicassign/gcc_O2/basicassign.gts and /dev/null differ diff --git a/src/test/incorrect/basicassign/gcc_O2/basicassign.md5sum b/src/test/incorrect/basicassign/gcc_O2/basicassign.md5sum new file mode 100644 index 000000000..954add34f --- /dev/null +++ b/src/test/incorrect/basicassign/gcc_O2/basicassign.md5sum @@ -0,0 +1,5 @@ +12eb3300eb80bb58762d224cd341dd9f incorrect/basicassign/gcc_O2/a.out +0eee5035181f09f1afdd48b811676806 incorrect/basicassign/gcc_O2/basicassign.adt +9bfab5989107a59d046659aad9c64c74 incorrect/basicassign/gcc_O2/basicassign.bir +468c6df60a7765f2179b1026b3d075d7 incorrect/basicassign/gcc_O2/basicassign.relf +74afcfdcbbdce02956741d5ae4c614f3 incorrect/basicassign/gcc_O2/basicassign.gts diff --git a/src/test/incorrect/basicassign/gcc_O2/basicassign.relf b/src/test/incorrect/basicassign/gcc_O2/basicassign.relf deleted file mode 100644 index 5eb566359..000000000 --- a/src/test/incorrect/basicassign/gcc_O2/basicassign.relf +++ /dev/null @@ -1,123 +0,0 @@ - -Relocation section '.rela.dyn' at offset 0x460 contains 8 entries: - Offset Info Type Symbol's Value Symbol's Name + Addend -0000000000010d98 0000000000000403 R_AARCH64_RELATIVE 750 -0000000000010da0 0000000000000403 R_AARCH64_RELATIVE 700 -0000000000010ff0 0000000000000403 R_AARCH64_RELATIVE 600 -0000000000011008 0000000000000403 R_AARCH64_RELATIVE 11008 -0000000000010fd8 0000000400000401 R_AARCH64_GLOB_DAT 0000000000000000 _ITM_deregisterTMCloneTable + 0 -0000000000010fe0 0000000500000401 R_AARCH64_GLOB_DAT 0000000000000000 __cxa_finalize@GLIBC_2.17 + 0 -0000000000010fe8 0000000600000401 R_AARCH64_GLOB_DAT 0000000000000000 __gmon_start__ + 0 -0000000000010ff8 0000000800000401 R_AARCH64_GLOB_DAT 0000000000000000 _ITM_registerTMCloneTable + 0 - -Relocation section '.rela.plt' at offset 0x520 contains 4 entries: - Offset Info Type Symbol's Value Symbol's Name + Addend -0000000000010fb0 0000000300000402 R_AARCH64_JUMP_SLOT 0000000000000000 __libc_start_main@GLIBC_2.34 + 0 -0000000000010fb8 0000000500000402 R_AARCH64_JUMP_SLOT 0000000000000000 __cxa_finalize@GLIBC_2.17 + 0 -0000000000010fc0 0000000600000402 R_AARCH64_JUMP_SLOT 0000000000000000 __gmon_start__ + 0 -0000000000010fc8 0000000700000402 R_AARCH64_JUMP_SLOT 0000000000000000 abort@GLIBC_2.17 + 0 - -Symbol table '.dynsym' contains 9 entries: - Num: Value Size Type Bind Vis Ndx Name - 0: 0000000000000000 0 NOTYPE LOCAL DEFAULT UND - 1: 0000000000000580 0 SECTION LOCAL DEFAULT 11 .init - 2: 0000000000011000 0 SECTION LOCAL DEFAULT 22 .data - 3: 0000000000000000 0 FUNC GLOBAL DEFAULT UND __libc_start_main@GLIBC_2.34 (2) - 4: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_deregisterTMCloneTable - 5: 0000000000000000 0 FUNC WEAK DEFAULT UND __cxa_finalize@GLIBC_2.17 (3) - 6: 0000000000000000 0 NOTYPE WEAK DEFAULT UND __gmon_start__ - 7: 0000000000000000 0 FUNC GLOBAL DEFAULT UND abort@GLIBC_2.17 (3) - 8: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_registerTMCloneTable - -Symbol table '.symtab' contains 90 entries: - Num: Value Size Type Bind Vis Ndx Name - 0: 0000000000000000 0 NOTYPE LOCAL DEFAULT UND - 1: 0000000000000238 0 SECTION LOCAL DEFAULT 1 .interp - 2: 0000000000000254 0 SECTION LOCAL DEFAULT 2 .note.gnu.build-id - 3: 0000000000000278 0 SECTION LOCAL DEFAULT 3 .note.ABI-tag - 4: 0000000000000298 0 SECTION LOCAL DEFAULT 4 .gnu.hash - 5: 00000000000002b8 0 SECTION LOCAL DEFAULT 5 .dynsym - 6: 0000000000000390 0 SECTION LOCAL DEFAULT 6 .dynstr - 7: 000000000000041e 0 SECTION LOCAL DEFAULT 7 .gnu.version - 8: 0000000000000430 0 SECTION LOCAL DEFAULT 8 .gnu.version_r - 9: 0000000000000460 0 SECTION LOCAL DEFAULT 9 .rela.dyn - 10: 0000000000000520 0 SECTION LOCAL DEFAULT 10 .rela.plt - 11: 0000000000000580 0 SECTION LOCAL DEFAULT 11 .init - 12: 00000000000005a0 0 SECTION LOCAL DEFAULT 12 .plt - 13: 0000000000000600 0 SECTION LOCAL DEFAULT 13 .text - 14: 0000000000000754 0 SECTION LOCAL DEFAULT 14 .fini - 15: 0000000000000768 0 SECTION LOCAL DEFAULT 15 .rodata - 16: 000000000000076c 0 SECTION LOCAL DEFAULT 16 .eh_frame_hdr - 17: 00000000000007a8 0 SECTION LOCAL DEFAULT 17 .eh_frame - 18: 0000000000010d98 0 SECTION LOCAL DEFAULT 18 .init_array - 19: 0000000000010da0 0 SECTION LOCAL DEFAULT 19 .fini_array - 20: 0000000000010da8 0 SECTION LOCAL DEFAULT 20 .dynamic - 21: 0000000000010f98 0 SECTION LOCAL DEFAULT 21 .got - 22: 0000000000011000 0 SECTION LOCAL DEFAULT 22 .data - 23: 0000000000011010 0 SECTION LOCAL DEFAULT 23 .bss - 24: 0000000000000000 0 SECTION LOCAL DEFAULT 24 .comment - 25: 0000000000000000 0 FILE LOCAL DEFAULT ABS Scrt1.o - 26: 0000000000000278 0 NOTYPE LOCAL DEFAULT 3 $d - 27: 0000000000000278 32 OBJECT LOCAL DEFAULT 3 __abi_tag - 28: 0000000000000640 0 NOTYPE LOCAL DEFAULT 13 $x - 29: 00000000000007bc 0 NOTYPE LOCAL DEFAULT 17 $d - 30: 0000000000000768 0 NOTYPE LOCAL DEFAULT 15 $d - 31: 0000000000000000 0 FILE LOCAL DEFAULT ABS crti.o - 32: 0000000000000674 0 NOTYPE LOCAL DEFAULT 13 $x - 33: 0000000000000674 20 FUNC LOCAL DEFAULT 13 call_weak_fn - 34: 0000000000000580 0 NOTYPE LOCAL DEFAULT 11 $x - 35: 0000000000000754 0 NOTYPE LOCAL DEFAULT 14 $x - 36: 0000000000000000 0 FILE LOCAL DEFAULT ABS crtn.o - 37: 0000000000000590 0 NOTYPE LOCAL DEFAULT 11 $x - 38: 0000000000000760 0 NOTYPE LOCAL DEFAULT 14 $x - 39: 0000000000000000 0 FILE LOCAL DEFAULT ABS basicassign.c - 40: 0000000000000600 0 NOTYPE LOCAL DEFAULT 13 $x - 41: 0000000000011014 0 NOTYPE LOCAL DEFAULT 23 $d - 42: 0000000000000830 0 NOTYPE LOCAL DEFAULT 17 $d - 43: 0000000000000000 0 FILE LOCAL DEFAULT ABS crtstuff.c - 44: 0000000000000690 0 NOTYPE LOCAL DEFAULT 13 $x - 45: 0000000000000690 0 FUNC LOCAL DEFAULT 13 deregister_tm_clones - 46: 00000000000006c0 0 FUNC LOCAL DEFAULT 13 register_tm_clones - 47: 0000000000011008 0 NOTYPE LOCAL DEFAULT 22 $d - 48: 0000000000000700 0 FUNC LOCAL DEFAULT 13 __do_global_dtors_aux - 49: 0000000000011010 1 OBJECT LOCAL DEFAULT 23 completed.0 - 50: 0000000000010da0 0 NOTYPE LOCAL DEFAULT 19 $d - 51: 0000000000010da0 0 OBJECT LOCAL DEFAULT 19 __do_global_dtors_aux_fini_array_entry - 52: 0000000000000750 0 FUNC LOCAL DEFAULT 13 frame_dummy - 53: 0000000000010d98 0 NOTYPE LOCAL DEFAULT 18 $d - 54: 0000000000010d98 0 OBJECT LOCAL DEFAULT 18 __frame_dummy_init_array_entry - 55: 00000000000007d0 0 NOTYPE LOCAL DEFAULT 17 $d - 56: 0000000000011010 0 NOTYPE LOCAL DEFAULT 23 $d - 57: 0000000000000000 0 FILE LOCAL DEFAULT ABS crtstuff.c - 58: 0000000000000844 0 NOTYPE LOCAL DEFAULT 17 $d - 59: 0000000000000844 0 OBJECT LOCAL DEFAULT 17 __FRAME_END__ - 60: 0000000000000000 0 FILE LOCAL DEFAULT ABS - 61: 0000000000010da8 0 OBJECT LOCAL DEFAULT ABS _DYNAMIC - 62: 000000000000076c 0 NOTYPE LOCAL DEFAULT 16 __GNU_EH_FRAME_HDR - 63: 0000000000010fd0 0 OBJECT LOCAL DEFAULT ABS _GLOBAL_OFFSET_TABLE_ - 64: 00000000000005a0 0 NOTYPE LOCAL DEFAULT 12 $x - 65: 0000000000000000 0 FUNC GLOBAL DEFAULT UND __libc_start_main@GLIBC_2.34 - 66: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_deregisterTMCloneTable - 67: 0000000000011000 0 NOTYPE WEAK DEFAULT 22 data_start - 68: 0000000000011010 0 NOTYPE GLOBAL DEFAULT 23 __bss_start__ - 69: 0000000000000000 0 FUNC WEAK DEFAULT UND __cxa_finalize@GLIBC_2.17 - 70: 0000000000011020 0 NOTYPE GLOBAL DEFAULT 23 _bss_end__ - 71: 0000000000011010 0 NOTYPE GLOBAL DEFAULT 22 _edata - 72: 000000000001101c 4 OBJECT GLOBAL DEFAULT 23 z - 73: 0000000000011018 4 OBJECT GLOBAL DEFAULT 23 x - 74: 0000000000000754 0 FUNC GLOBAL HIDDEN 14 _fini - 75: 0000000000011020 0 NOTYPE GLOBAL DEFAULT 23 __bss_end__ - 76: 0000000000011000 0 NOTYPE GLOBAL DEFAULT 22 __data_start - 77: 0000000000000000 0 NOTYPE WEAK DEFAULT UND __gmon_start__ - 78: 0000000000011008 0 OBJECT GLOBAL HIDDEN 22 __dso_handle - 79: 0000000000000000 0 FUNC GLOBAL DEFAULT UND abort@GLIBC_2.17 - 80: 0000000000000768 4 OBJECT GLOBAL DEFAULT 15 _IO_stdin_used - 81: 0000000000011014 4 OBJECT GLOBAL DEFAULT 23 secret - 82: 0000000000011020 0 NOTYPE GLOBAL DEFAULT 23 _end - 83: 0000000000000640 52 FUNC GLOBAL DEFAULT 13 _start - 84: 0000000000011020 0 NOTYPE GLOBAL DEFAULT 23 __end__ - 85: 0000000000011010 0 NOTYPE GLOBAL DEFAULT 23 __bss_start - 86: 0000000000000600 24 FUNC GLOBAL DEFAULT 13 main - 87: 0000000000011010 0 OBJECT GLOBAL HIDDEN 22 __TMC_END__ - 88: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_registerTMCloneTable - 89: 0000000000000580 0 FUNC GLOBAL HIDDEN 11 _init diff --git a/src/test/incorrect/basicassign/gcc_O2/basicassign_gtirb.expected b/src/test/incorrect/basicassign/gcc_O2/basicassign_gtirb.expected index 00b4d8f5e..528cb9f8c 100644 --- a/src/test/incorrect/basicassign/gcc_O2/basicassign_gtirb.expected +++ b/src/test/incorrect/basicassign/gcc_O2/basicassign_gtirb.expected @@ -1,17 +1,19 @@ var {:extern} Gamma_R0: bool; var {:extern} Gamma_R1: bool; var {:extern} Gamma_R2: bool; +var {:extern} Gamma_R3: bool; var {:extern} Gamma_mem: [bv64]bool; var {:extern} R0: bv64; var {:extern} R1: bv64; var {:extern} R2: bv64; +var {:extern} R3: bv64; var {:extern} mem: [bv64]bv8; const {:extern} $secret_addr: bv64; -axiom ($secret_addr == 69652bv64); +axiom ($secret_addr == 4325396bv64); const {:extern} $x_addr: bv64; -axiom ($x_addr == 69656bv64); +axiom ($x_addr == 4325404bv64); const {:extern} $z_addr: bv64; -axiom ($z_addr == 69660bv64); +axiom ($z_addr == 4325400bv64); function {:extern} L(mem$in: [bv64]bv8, index: bv64) returns (bool) { (if (index == $z_addr) then true else (if (index == $secret_addr) then false else (if (index == $x_addr) then false else false))) } @@ -21,6 +23,10 @@ function {:extern} gamma_load32(gammaMap: [bv64]bool, index: bv64) returns (bool (gammaMap[bvadd64(index, 3bv64)] && (gammaMap[bvadd64(index, 2bv64)] && (gammaMap[bvadd64(index, 1bv64)] && gammaMap[index]))) } +function {:extern} gamma_load64(gammaMap: [bv64]bool, index: bv64) returns (bool) { + (gammaMap[bvadd64(index, 7bv64)] && (gammaMap[bvadd64(index, 6bv64)] && (gammaMap[bvadd64(index, 5bv64)] && (gammaMap[bvadd64(index, 4bv64)] && (gammaMap[bvadd64(index, 3bv64)] && (gammaMap[bvadd64(index, 2bv64)] && (gammaMap[bvadd64(index, 1bv64)] && gammaMap[index]))))))) +} + function {:extern} gamma_store32(gammaMap: [bv64]bool, index: bv64, value: bool) returns ([bv64]bool) { gammaMap[index := value][bvadd64(index, 1bv64) := value][bvadd64(index, 2bv64) := value][bvadd64(index, 3bv64) := value] } @@ -42,11 +48,7 @@ procedure {:extern} rely(); modifies Gamma_mem, mem; ensures (forall i: bv64 :: (((mem[i] == old(mem[i])) ==> (Gamma_mem[i] == old(Gamma_mem[i]))))); ensures (memory_load32_le(mem, $x_addr) == old(memory_load32_le(mem, $x_addr))); - free ensures (memory_load32_le(mem, 1896bv64) == 131073bv32); - free ensures (memory_load64_le(mem, 69016bv64) == 1872bv64); - free ensures (memory_load64_le(mem, 69024bv64) == 1792bv64); - free ensures (memory_load64_le(mem, 69616bv64) == 1536bv64); - free ensures (memory_load64_le(mem, 69640bv64) == 69640bv64); + free ensures (memory_load32_le(mem, 4196312bv64) == 131073bv32); procedure {:extern} rely_transitive(); modifies Gamma_mem, mem; @@ -68,47 +70,52 @@ implementation {:extern} rely_reflexive() procedure {:extern} guarantee_reflexive(); modifies Gamma_mem, mem; -procedure main_1536(); - modifies Gamma_R0, Gamma_R1, Gamma_R2, Gamma_mem, R0, R1, R2, mem; - free requires (memory_load64_le(mem, 69632bv64) == 0bv64); - free requires (memory_load64_le(mem, 69640bv64) == 69640bv64); - free requires (memory_load32_le(mem, 1896bv64) == 131073bv32); - free requires (memory_load64_le(mem, 69016bv64) == 1872bv64); - free requires (memory_load64_le(mem, 69024bv64) == 1792bv64); - free requires (memory_load64_le(mem, 69616bv64) == 1536bv64); - free requires (memory_load64_le(mem, 69640bv64) == 69640bv64); - free ensures (memory_load32_le(mem, 1896bv64) == 131073bv32); - free ensures (memory_load64_le(mem, 69016bv64) == 1872bv64); - free ensures (memory_load64_le(mem, 69024bv64) == 1792bv64); - free ensures (memory_load64_le(mem, 69616bv64) == 1536bv64); - free ensures (memory_load64_le(mem, 69640bv64) == 69640bv64); +procedure main(); + modifies Gamma_R0, Gamma_R1, Gamma_R2, Gamma_R3, Gamma_mem, R0, R1, R2, R3, mem; + free requires (memory_load64_le(mem, 4325376bv64) == 0bv64); + free requires (memory_load64_le(mem, 4325384bv64) == 0bv64); + free requires (memory_load32_le(mem, 4196312bv64) == 131073bv32); + free ensures (memory_load32_le(mem, 4196312bv64) == 131073bv32); -implementation main_1536() +implementation main() { - var Cse0__5_1_4: bv64; - var Gamma_Cse0__5_1_4: bool; - var Gamma_load16: bool; - var load16: bv32; - main_1536__0__10UzS393SWKTYt~mTNe_uw: - assume {:captureState "main_1536__0__10UzS393SWKTYt~mTNe_uw"} true; - R2, Gamma_R2 := 69632bv64, true; - R1, Gamma_R1 := bvadd64(R2, 20bv64), Gamma_R2; + var $load6: bv64; + var $load7: bv64; + var $load8: bv64; + var $load9: bv32; + var Gamma_$load6: bool; + var Gamma_$load7: bool; + var Gamma_$load8: bool; + var Gamma_$load9: bool; + $main$__0__$xdHqi8HzTJ~zBYVemlzAtg: + assume {:captureState "$main$__0__$xdHqi8HzTJ~zBYVemlzAtg"} true; + R2, Gamma_R2 := 4321280bv64, true; + call rely(); + $load6, Gamma_$load6 := memory_load64_le(mem, bvadd64(R2, 4080bv64)), (gamma_load64(Gamma_mem, bvadd64(R2, 4080bv64)) || L(mem, bvadd64(R2, 4080bv64))); + R2, Gamma_R2 := $load6, Gamma_$load6; R0, Gamma_R0 := 0bv64, true; + R1, Gamma_R1 := 4321280bv64, true; + call rely(); + $load7, Gamma_$load7 := memory_load64_le(mem, bvadd64(R1, 4064bv64)), (gamma_load64(Gamma_mem, bvadd64(R1, 4064bv64)) || L(mem, bvadd64(R1, 4064bv64))); + R1, Gamma_R1 := $load7, Gamma_$load7; + R3, Gamma_R3 := 4321280bv64, true; + call rely(); + $load8, Gamma_$load8 := memory_load64_le(mem, bvadd64(R3, 4056bv64)), (gamma_load64(Gamma_mem, bvadd64(R3, 4056bv64)) || L(mem, bvadd64(R3, 4056bv64))); + R3, Gamma_R3 := $load8, Gamma_$load8; call rely(); - load16, Gamma_load16 := memory_load32_le(mem, bvadd64(R2, 20bv64)), (gamma_load32(Gamma_mem, bvadd64(R2, 20bv64)) || L(mem, bvadd64(R2, 20bv64))); - R2, Gamma_R2 := zero_extend32_32(load16), Gamma_load16; - Cse0__5_1_4, Gamma_Cse0__5_1_4 := bvadd64(R1, 4bv64), Gamma_R1; + $load9, Gamma_$load9 := memory_load32_le(mem, R2), (gamma_load32(Gamma_mem, R2) || L(mem, R2)); + R2, Gamma_R2 := zero_extend32_32($load9), Gamma_$load9; call rely(); - assert (L(mem, Cse0__5_1_4) ==> Gamma_R2); - mem, Gamma_mem := memory_store32_le(mem, Cse0__5_1_4, R2[32:0]), gamma_store32(Gamma_mem, Cse0__5_1_4, Gamma_R2); - assume {:captureState "1552_1"} true; + assert (L(mem, R1) ==> Gamma_R2); + mem, Gamma_mem := memory_store32_le(mem, R1, R2[32:0]), gamma_store32(Gamma_mem, R1, Gamma_R2); + assume {:captureState "4196000$0"} true; call rely(); - assert (L(mem, bvadd64(Cse0__5_1_4, 4bv64)) ==> Gamma_R2); - mem, Gamma_mem := memory_store32_le(mem, bvadd64(Cse0__5_1_4, 4bv64), R2[32:0]), gamma_store32(Gamma_mem, bvadd64(Cse0__5_1_4, 4bv64), Gamma_R2); - assume {:captureState "1552_2"} true; - goto main_1536_basil_return; - main_1536_basil_return: - assume {:captureState "main_1536_basil_return"} true; + assert (L(mem, R3) ==> Gamma_R2); + mem, Gamma_mem := memory_store32_le(mem, R3, R2[32:0]), gamma_store32(Gamma_mem, R3, Gamma_R2); + assume {:captureState "4196004$0"} true; + goto main_basil_return; + main_basil_return: + assume {:captureState "main_basil_return"} true; return; } diff --git a/src/test/incorrect/basicassign/gcc_pic/basicassign.adt b/src/test/incorrect/basicassign/gcc_pic/basicassign.adt deleted file mode 100644 index 677f2fc91..000000000 --- a/src/test/incorrect/basicassign/gcc_pic/basicassign.adt +++ /dev/null @@ -1,558 +0,0 @@ -Project(Attrs([Attr("filename","\"gcc_pic/basicassign.out\""), -Attr("image-specification","(declare abi (name str))\n(declare arch (name str))\n(declare base-address (addr int))\n(declare bias (off int))\n(declare bits (size int))\n(declare code-region (addr int) (size int) (off int))\n(declare code-start (addr int))\n(declare entry-point (addr int))\n(declare external-reference (addr int) (name str))\n(declare format (name str))\n(declare is-executable (flag bool))\n(declare is-little-endian (flag bool))\n(declare llvm:base-address (addr int))\n(declare llvm:code-entry (name str) (off int) (size int))\n(declare llvm:coff-import-library (name str))\n(declare llvm:coff-virtual-section-header (name str) (addr int) (size int))\n(declare llvm:elf-program-header (name str) (off int) (size int))\n(declare llvm:elf-program-header-flags (name str) (ld bool) (r bool) \n (w bool) (x bool))\n(declare llvm:elf-virtual-program-header (name str) (addr int) (size int))\n(declare llvm:entry-point (addr int))\n(declare llvm:macho-symbol (name str) (value int))\n(declare llvm:name-reference (at int) (name str))\n(declare llvm:relocation (at int) (addr int))\n(declare llvm:section-entry (name str) (addr int) (size int) (off int))\n(declare llvm:section-flags (name str) (r bool) (w bool) (x bool))\n(declare llvm:segment-command (name str) (off int) (size int))\n(declare llvm:segment-command-flags (name str) (r bool) (w bool) (x bool))\n(declare llvm:symbol-entry (name str) (addr int) (size int) (off int)\n (value int))\n(declare llvm:virtual-segment-command (name str) (addr int) (size int))\n(declare mapped (addr int) (size int) (off int))\n(declare named-region (addr int) (size int) (name str))\n(declare named-symbol (addr int) (name str))\n(declare require (name str))\n(declare section (addr int) (size int))\n(declare segment (addr int) (size int) (r bool) (w bool) (x bool))\n(declare subarch (name str))\n(declare symbol-chunk (addr int) (size int) (root int))\n(declare symbol-value (addr int) (value int))\n(declare system (name str))\n(declare vendor (name str))\n\n(abi unknown)\n(arch aarch64)\n(base-address 0)\n(bias 0)\n(bits 64)\n(code-region 1992 20 1992)\n(code-region 1600 392 1600)\n(code-region 1504 96 1504)\n(code-region 1480 24 1480)\n(code-start 1652)\n(code-start 1600)\n(code-start 1876)\n(entry-point 1600)\n(external-reference 69568 _ITM_deregisterTMCloneTable)\n(external-reference 69576 __cxa_finalize)\n(external-reference 69600 __gmon_start__)\n(external-reference 69624 _ITM_registerTMCloneTable)\n(external-reference 69528 __libc_start_main)\n(external-reference 69536 __cxa_finalize)\n(external-reference 69544 __gmon_start__)\n(external-reference 69552 abort)\n(format elf)\n(is-executable true)\n(is-little-endian true)\n(llvm:base-address 0)\n(llvm:code-entry abort 0 0)\n(llvm:code-entry __cxa_finalize 0 0)\n(llvm:code-entry __libc_start_main 0 0)\n(llvm:code-entry _init 1480 0)\n(llvm:code-entry main 1876 116)\n(llvm:code-entry _start 1600 52)\n(llvm:code-entry abort@GLIBC_2.17 0 0)\n(llvm:code-entry _fini 1992 0)\n(llvm:code-entry __cxa_finalize@GLIBC_2.17 0 0)\n(llvm:code-entry __libc_start_main@GLIBC_2.34 0 0)\n(llvm:code-entry frame_dummy 1872 0)\n(llvm:code-entry __do_global_dtors_aux 1792 0)\n(llvm:code-entry register_tm_clones 1728 0)\n(llvm:code-entry deregister_tm_clones 1680 0)\n(llvm:code-entry call_weak_fn 1652 20)\n(llvm:code-entry .fini 1992 20)\n(llvm:code-entry .text 1600 392)\n(llvm:code-entry .plt 1504 96)\n(llvm:code-entry .init 1480 24)\n(llvm:elf-program-header 08 3456 640)\n(llvm:elf-program-header 07 0 0)\n(llvm:elf-program-header 06 2016 60)\n(llvm:elf-program-header 05 596 68)\n(llvm:elf-program-header 04 3472 496)\n(llvm:elf-program-header 03 3456 656)\n(llvm:elf-program-header 02 0 2240)\n(llvm:elf-program-header 01 568 27)\n(llvm:elf-program-header 00 64 504)\n(llvm:elf-program-header-flags 08 false true false false)\n(llvm:elf-program-header-flags 07 false true true false)\n(llvm:elf-program-header-flags 06 false true false false)\n(llvm:elf-program-header-flags 05 false true false false)\n(llvm:elf-program-header-flags 04 false true true false)\n(llvm:elf-program-header-flags 03 true true true false)\n(llvm:elf-program-header-flags 02 true true false true)\n(llvm:elf-program-header-flags 01 false true false false)\n(llvm:elf-program-header-flags 00 false true false false)\n(llvm:elf-virtual-program-header 08 68992 640)\n(llvm:elf-virtual-program-header 07 0 0)\n(llvm:elf-virtual-program-header 06 2016 60)\n(llvm:elf-virtual-program-header 05 596 68)\n(llvm:elf-virtual-program-header 04 69008 496)\n(llvm:elf-virtual-program-header 03 68992 672)\n(llvm:elf-virtual-program-header 02 0 2240)\n(llvm:elf-virtual-program-header 01 568 27)\n(llvm:elf-virtual-program-header 00 64 504)\n(llvm:entry-point 1600)\n(llvm:name-reference 69552 abort)\n(llvm:name-reference 69544 __gmon_start__)\n(llvm:name-reference 69536 __cxa_finalize)\n(llvm:name-reference 69528 __libc_start_main)\n(llvm:name-reference 69624 _ITM_registerTMCloneTable)\n(llvm:name-reference 69600 __gmon_start__)\n(llvm:name-reference 69576 __cxa_finalize)\n(llvm:name-reference 69568 _ITM_deregisterTMCloneTable)\n(llvm:section-entry .shstrtab 0 250 6876)\n(llvm:section-entry .strtab 0 556 6320)\n(llvm:section-entry .symtab 0 2160 4160)\n(llvm:section-entry .comment 0 43 4112)\n(llvm:section-entry .bss 69648 16 4112)\n(llvm:section-entry .data 69632 16 4096)\n(llvm:section-entry .got 69504 128 3968)\n(llvm:section-entry .dynamic 69008 496 3472)\n(llvm:section-entry .fini_array 69000 8 3464)\n(llvm:section-entry .init_array 68992 8 3456)\n(llvm:section-entry .eh_frame 2080 160 2080)\n(llvm:section-entry .eh_frame_hdr 2016 60 2016)\n(llvm:section-entry .rodata 2012 4 2012)\n(llvm:section-entry .fini 1992 20 1992)\n(llvm:section-entry .text 1600 392 1600)\n(llvm:section-entry .plt 1504 96 1504)\n(llvm:section-entry .init 1480 24 1480)\n(llvm:section-entry .rela.plt 1384 96 1384)\n(llvm:section-entry .rela.dyn 1120 264 1120)\n(llvm:section-entry .gnu.version_r 1072 48 1072)\n(llvm:section-entry .gnu.version 1054 18 1054)\n(llvm:section-entry .dynstr 912 141 912)\n(llvm:section-entry .dynsym 696 216 696)\n(llvm:section-entry .gnu.hash 664 28 664)\n(llvm:section-entry .note.ABI-tag 632 32 632)\n(llvm:section-entry .note.gnu.build-id 596 36 596)\n(llvm:section-entry .interp 568 27 568)\n(llvm:section-flags .shstrtab true false false)\n(llvm:section-flags .strtab true false false)\n(llvm:section-flags .symtab true false false)\n(llvm:section-flags .comment true false false)\n(llvm:section-flags .bss true true false)\n(llvm:section-flags .data true true false)\n(llvm:section-flags .got true true false)\n(llvm:section-flags .dynamic true true false)\n(llvm:section-flags .fini_array true true false)\n(llvm:section-flags .init_array true true false)\n(llvm:section-flags .eh_frame true false false)\n(llvm:section-flags .eh_frame_hdr true false false)\n(llvm:section-flags .rodata true false false)\n(llvm:section-flags .fini true false true)\n(llvm:section-flags .text true false true)\n(llvm:section-flags .plt true false true)\n(llvm:section-flags .init true false true)\n(llvm:section-flags .rela.plt true false false)\n(llvm:section-flags .rela.dyn true false false)\n(llvm:section-flags .gnu.version_r true false false)\n(llvm:section-flags .gnu.version true false false)\n(llvm:section-flags .dynstr true false false)\n(llvm:section-flags .dynsym true false false)\n(llvm:section-flags .gnu.hash true false false)\n(llvm:section-flags .note.ABI-tag true false false)\n(llvm:section-flags .note.gnu.build-id true false false)\n(llvm:section-flags .interp true false false)\n(llvm:symbol-entry abort 0 0 0 0)\n(llvm:symbol-entry __cxa_finalize 0 0 0 0)\n(llvm:symbol-entry __libc_start_main 0 0 0 0)\n(llvm:symbol-entry _init 1480 0 1480 1480)\n(llvm:symbol-entry main 1876 116 1876 1876)\n(llvm:symbol-entry _start 1600 52 1600 1600)\n(llvm:symbol-entry abort@GLIBC_2.17 0 0 0 0)\n(llvm:symbol-entry _fini 1992 0 1992 1992)\n(llvm:symbol-entry __cxa_finalize@GLIBC_2.17 0 0 0 0)\n(llvm:symbol-entry __libc_start_main@GLIBC_2.34 0 0 0 0)\n(llvm:symbol-entry frame_dummy 1872 0 1872 1872)\n(llvm:symbol-entry __do_global_dtors_aux 1792 0 1792 1792)\n(llvm:symbol-entry register_tm_clones 1728 0 1728 1728)\n(llvm:symbol-entry deregister_tm_clones 1680 0 1680 1680)\n(llvm:symbol-entry call_weak_fn 1652 20 1652 1652)\n(mapped 0 2240 0)\n(mapped 68992 656 3456)\n(named-region 0 2240 02)\n(named-region 68992 672 03)\n(named-region 568 27 .interp)\n(named-region 596 36 .note.gnu.build-id)\n(named-region 632 32 .note.ABI-tag)\n(named-region 664 28 .gnu.hash)\n(named-region 696 216 .dynsym)\n(named-region 912 141 .dynstr)\n(named-region 1054 18 .gnu.version)\n(named-region 1072 48 .gnu.version_r)\n(named-region 1120 264 .rela.dyn)\n(named-region 1384 96 .rela.plt)\n(named-region 1480 24 .init)\n(named-region 1504 96 .plt)\n(named-region 1600 392 .text)\n(named-region 1992 20 .fini)\n(named-region 2012 4 .rodata)\n(named-region 2016 60 .eh_frame_hdr)\n(named-region 2080 160 .eh_frame)\n(named-region 68992 8 .init_array)\n(named-region 69000 8 .fini_array)\n(named-region 69008 496 .dynamic)\n(named-region 69504 128 .got)\n(named-region 69632 16 .data)\n(named-region 69648 16 .bss)\n(named-region 0 43 .comment)\n(named-region 0 2160 .symtab)\n(named-region 0 556 .strtab)\n(named-region 0 250 .shstrtab)\n(named-symbol 1652 call_weak_fn)\n(named-symbol 1680 deregister_tm_clones)\n(named-symbol 1728 register_tm_clones)\n(named-symbol 1792 __do_global_dtors_aux)\n(named-symbol 1872 frame_dummy)\n(named-symbol 0 __libc_start_main@GLIBC_2.34)\n(named-symbol 0 __cxa_finalize@GLIBC_2.17)\n(named-symbol 1992 _fini)\n(named-symbol 0 abort@GLIBC_2.17)\n(named-symbol 1600 _start)\n(named-symbol 1876 main)\n(named-symbol 1480 _init)\n(named-symbol 0 __libc_start_main)\n(named-symbol 0 __cxa_finalize)\n(named-symbol 0 abort)\n(require libc.so.6)\n(section 568 27)\n(section 596 36)\n(section 632 32)\n(section 664 28)\n(section 696 216)\n(section 912 141)\n(section 1054 18)\n(section 1072 48)\n(section 1120 264)\n(section 1384 96)\n(section 1480 24)\n(section 1504 96)\n(section 1600 392)\n(section 1992 20)\n(section 2012 4)\n(section 2016 60)\n(section 2080 160)\n(section 68992 8)\n(section 69000 8)\n(section 69008 496)\n(section 69504 128)\n(section 69632 16)\n(section 69648 16)\n(section 0 43)\n(section 0 2160)\n(section 0 556)\n(section 0 250)\n(segment 0 2240 true false true)\n(segment 68992 672 true true false)\n(subarch v8)\n(symbol-chunk 1652 20 1652)\n(symbol-chunk 1600 52 1600)\n(symbol-chunk 1876 116 1876)\n(symbol-value 1652 1652)\n(symbol-value 1680 1680)\n(symbol-value 1728 1728)\n(symbol-value 1792 1792)\n(symbol-value 1872 1872)\n(symbol-value 1992 1992)\n(symbol-value 1600 1600)\n(symbol-value 1876 1876)\n(symbol-value 1480 1480)\n(symbol-value 0 0)\n(system \"\")\n(vendor \"\")\n"), -Attr("abi-name","\"aarch64-linux-gnu-elf\"")]), -Sections([Section(".shstrtab", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x40\x06\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xd8\x1b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x38\x00\x09\x00\x40\x00\x1c\x00\x1b\x00\x06\x00\x00\x00\x04\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x04\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xc0\x08\x00\x00\x00\x00\x00\x00\xc0\x08\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x01\x00\x00\x00\x06\x00\x00\x00\x80\x0d\x00\x00\x00\x00\x00\x00\x80\x0d"), -Section(".strtab", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x40\x06\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xd8\x1b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x38\x00\x09\x00\x40\x00\x1c\x00\x1b\x00\x06\x00\x00\x00\x04\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x04\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xc0\x08\x00\x00\x00\x00\x00\x00\xc0\x08\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x01\x00\x00\x00\x06\x00\x00\x00\x80\x0d\x00\x00\x00\x00\x00\x00\x80\x0d\x01\x00\x00\x00\x00\x00\x80\x0d\x01\x00\x00\x00\x00\x00\x90\x02\x00\x00\x00\x00\x00\x00\xa0\x02\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x02\x00\x00\x00\x06\x00\x00\x00\x90\x0d\x00\x00\x00\x00\x00\x00\x90\x0d\x01\x00\x00\x00\x00\x00\x90\x0d\x01\x00\x00\x00\x00\x00\xf0\x01\x00\x00\x00\x00\x00\x00\xf0\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x04\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x50\xe5\x74\x64\x04\x00\x00\x00\xe0\x07\x00\x00\x00\x00\x00\x00\xe0\x07\x00\x00\x00\x00\x00\x00\xe0\x07\x00\x00\x00\x00\x00\x00\x3c\x00\x00\x00\x00\x00\x00\x00\x3c\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x51\xe5\x74\x64\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x52\xe5\x74\x64\x04\x00\x00\x00\x80\x0d\x00\x00\x00\x00\x00\x00\x80\x0d\x01\x00\x00\x00\x00\x00\x80\x0d\x01\x00\x00\x00\x00\x00\x80\x02\x00\x00\x00\x00\x00\x00\x80\x02\x00\x00"), -Section(".symtab", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x40\x06\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xd8\x1b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x38\x00\x09\x00\x40\x00\x1c\x00\x1b\x00\x06\x00\x00\x00\x04\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x04\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xc0\x08\x00\x00\x00\x00\x00\x00\xc0\x08\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x01\x00\x00\x00\x06\x00\x00\x00\x80\x0d\x00\x00\x00\x00\x00\x00\x80\x0d\x01\x00\x00\x00\x00\x00\x80\x0d\x01\x00\x00\x00\x00\x00\x90\x02\x00\x00\x00\x00\x00\x00\xa0\x02\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x02\x00\x00\x00\x06\x00\x00\x00\x90\x0d\x00\x00\x00\x00\x00\x00\x90\x0d\x01\x00\x00\x00\x00\x00\x90\x0d\x01\x00\x00\x00\x00\x00\xf0\x01\x00\x00\x00\x00\x00\x00\xf0\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x04\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x50\xe5\x74\x64\x04\x00\x00\x00\xe0\x07\x00\x00\x00\x00\x00\x00\xe0\x07\x00\x00\x00\x00\x00\x00\xe0\x07\x00\x00\x00\x00\x00\x00\x3c\x00\x00\x00\x00\x00\x00\x00\x3c\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x51\xe5\x74\x64\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x52\xe5\x74\x64\x04\x00\x00\x00\x80\x0d\x00\x00\x00\x00\x00\x00\x80\x0d\x01\x00\x00\x00\x00\x00\x80\x0d\x01\x00\x00\x00\x00\x00\x80\x02\x00\x00\x00\x00\x00\x00\x80\x02\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x2f\x6c\x69\x62\x2f\x6c\x64\x2d\x6c\x69\x6e\x75\x78\x2d\x61\x61\x72\x63\x68\x36\x34\x2e\x73\x6f\x2e\x31\x00\x00\x04\x00\x00\x00\x14\x00\x00\x00\x03\x00\x00\x00\x47\x4e\x55\x00\x3d\x8b\xdb\x66\x08\xe1\x10\x28\x4b\x6e\xb9\x96\x53\x7b\xfb\xbe\xd4\x98\x5d\x59\x04\x00\x00\x00\x10\x00\x00\x00\x01\x00\x00\x00\x47\x4e\x55\x00\x00\x00\x00\x00\x03\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x01\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x0b\x00\xc8\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x16\x00\x00\x10\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x48\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x22\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x22\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x73\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5f\x5f\x63\x78\x61\x5f\x66\x69\x6e\x61\x6c\x69\x7a\x65\x00\x5f\x5f\x6c\x69\x62\x63\x5f\x73\x74\x61\x72\x74\x5f\x6d\x61\x69\x6e\x00\x61\x62\x6f\x72\x74\x00\x6c\x69\x62\x63\x2e\x73\x6f\x2e\x36\x00\x47\x4c\x49\x42\x43\x5f\x32\x2e\x31\x37\x00\x47\x4c\x49\x42\x43\x5f\x32\x2e\x33\x34\x00\x5f\x49\x54\x4d\x5f\x64\x65\x72\x65\x67\x69\x73\x74\x65\x72\x54\x4d\x43\x6c\x6f\x6e\x65\x54\x61\x62\x6c\x65\x00\x5f\x5f\x67\x6d\x6f\x6e\x5f\x73\x74\x61\x72\x74\x5f\x5f\x00\x5f\x49\x54\x4d\x5f\x72\x65\x67\x69\x73\x74\x65\x72\x54\x4d\x43\x6c\x6f\x6e\x65\x54\x61\x62\x6c\x65\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x01\x00\x03\x00\x01\x00\x03\x00\x01\x00\x01\x00\x02\x00\x28\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x97\x91\x96\x06\x00\x00\x03\x00\x32\x00\x00\x00\x10\x00\x00\x00\xb4\x91\x96\x06\x00\x00\x02\x00\x3d\x00\x00\x00\x00\x00\x00\x00\x80\x0d\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x50\x07\x00\x00\x00\x00\x00\x00\x88\x0d\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\xd0\x0f\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x18\x10\x01\x00\x00\x00\x00\x00\xd8\x0f\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x14\x10\x01\x00\x00\x00\x00\x00\xe8\x0f\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x1c\x10\x01\x00\x00\x00\x00\x00\xf0\x0f\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x54\x07\x00\x00\x00\x00\x00\x00\x08\x10\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x08\x10\x01\x00\x00\x00\x00\x00\xc0\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xc8\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe0\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xf8\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x98\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xa0\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xa8\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xb0\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1f\x20\x03\xd5\xfd\x7b\xbf\xa9\xfd\x03\x00\x91\x28\x00\x00\x94\xfd\x7b\xc1\xa8\xc0\x03\x5f\xd6\xf0\x7b\xbf\xa9\x90\x00\x00\x90\x11\xca\x47\xf9\x10\x42\x3e\x91\x20\x02\x1f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x90\x00\x00\x90\x11\xce\x47\xf9\x10\x62\x3e\x91\x20\x02\x1f\xd6\x90\x00\x00\x90\x11\xd2\x47\xf9\x10\x82\x3e\x91\x20\x02\x1f\xd6\x90\x00\x00\x90\x11\xd6\x47\xf9\x10\xa2\x3e\x91\x20\x02\x1f\xd6\x90\x00\x00\x90\x11\xda\x47\xf9\x10\xc2\x3e\x91\x20\x02\x1f\xd6\x1f\x20\x03\xd5\x1d\x00\x80\xd2\x1e\x00\x80\xd2\xe5\x03\x00\xaa\xe1\x03\x40\xf9\xe2\x23\x00\x91\xe6\x03\x00\x91\x80\x00\x00\x90\x00\xf8\x47\xf9\x03\x00\x80\xd2\x04\x00\x80\xd2\xe5\xff\xff\x97\xf0\xff\xff\x97\x80\x00\x00\x90\x00\xf0\x47\xf9\x40\x00\x00\xb4\xe8\xff\xff\x17\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x80\x00\x00\xb0\x00\x40\x00\x91\x81\x00\x00\xb0\x21\x40\x00\x91\x3f\x00\x00\xeb\xc0\x00\x00\x54\x81\x00\x00\x90\x21\xe0\x47\xf9\x61\x00\x00\xb4\xf0\x03\x01\xaa\x00\x02\x1f\xd6\xc0\x03\x5f\xd6\x80\x00\x00\xb0\x00\x40\x00\x91\x81\x00\x00\xb0\x21\x40\x00\x91\x21\x00\x00\xcb\x22\xfc\x7f\xd3\x41\x0c\x81\x8b\x21\xfc\x41\x93\xc1\x00\x00\xb4\x82\x00\x00\x90\x42\xfc\x47\xf9\x62\x00\x00\xb4\xf0\x03\x02\xaa\x00\x02\x1f\xd6\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\xfd\x7b\xbe\xa9\xfd\x03\x00\x91\xf3\x0b\x00\xf9\x93\x00\x00\xb0\x60\x42\x40\x39\x40\x01\x00\x35\x80\x00\x00\x90\x00\xe4\x47\xf9\x80\x00\x00\xb4\x80\x00\x00\xb0\x00\x04\x40\xf9\xb9\xff\xff\x97\xd8\xff\xff\x97\x20\x00\x80\x52\x60\x42\x00\x39\xf3\x0b\x40\xf9\xfd\x7b\xc2\xa8\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\xdc\xff\xff\x17\x80\x00\x00\x90\x00\xf4\x47\xf9\x01\x00\x40\xb9\x80\x00\x00\x90\x00\xec\x47\xf9\x01\x00\x00\xb9\x80\x00\x00\x90\x00\xec\x47\xf9\x1f\x00\x00\xb9\x80\x00\x00\x90\x00\xec\x47\xf9\x01\x00\x40\xb9\x80\x00\x00\x90\x00\xe8\x47\xf9\x01\x00\x00\xb9\x80\x00\x00\x90\x00\xf4\x47\xf9\x01\x00\x40\xb9\x80\x00\x00\x90\x00\xec\x47\xf9\x01\x00\x00\xb9\x80\x00\x00\x90\x00\xec\x47\xf9\x01\x00\x40\xb9\x80\x00\x00\x90\x00\xe8\x47\xf9\x01\x00\x00\xb9\x00\x00\x80\x52\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\xfd\x7b\xbf\xa9\xfd\x03\x00\x91\xfd\x7b\xc1\xa8\xc0\x03\x5f\xd6\x01\x00\x02\x00\x01\x1b\x03\x3b\x3c\x00\x00\x00\x06\x00\x00\x00\x60\xfe\xff\xff\x54\x00\x00\x00\xb0\xfe\xff\xff\x68\x00\x00\x00\xe0\xfe\xff\xff\x7c\x00\x00\x00\x20\xff\xff\xff\x90\x00\x00\x00\x70\xff\xff\xff\xb4\x00\x00\x00\x74\xff\xff\xff\xc8\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x01\x7a\x52\x00\x04\x78\x1e\x01\x1b\x0c\x1f\x00\x10\x00\x00\x00\x18\x00\x00\x00\x04\xfe\xff\xff\x34\x00\x00\x00\x00\x41\x07\x1e\x10\x00\x00\x00\x2c\x00\x00\x00\x40\xfe\xff\xff\x30\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x40\x00\x00\x00\x5c\xfe\xff\xff\x3c\x00\x00\x00\x00\x00\x00\x00"), -Section(".comment", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x40\x06\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xd8\x1b\x00"), -Section(".interp", 0x238, "\x2f\x6c\x69\x62\x2f\x6c\x64\x2d\x6c\x69\x6e\x75\x78\x2d\x61\x61\x72\x63\x68\x36\x34\x2e\x73\x6f\x2e\x31\x00"), -Section(".note.gnu.build-id", 0x254, "\x04\x00\x00\x00\x14\x00\x00\x00\x03\x00\x00\x00\x47\x4e\x55\x00\x3d\x8b\xdb\x66\x08\xe1\x10\x28\x4b\x6e\xb9\x96\x53\x7b\xfb\xbe\xd4\x98\x5d\x59"), -Section(".note.ABI-tag", 0x278, "\x04\x00\x00\x00\x10\x00\x00\x00\x01\x00\x00\x00\x47\x4e\x55\x00\x00\x00\x00\x00\x03\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00"), -Section(".gnu.hash", 0x298, "\x01\x00\x00\x00\x01\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".dynsym", 0x2B8, "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x0b\x00\xc8\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x16\x00\x00\x10\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x48\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x22\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x22\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x73\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".dynstr", 0x390, "\x00\x5f\x5f\x63\x78\x61\x5f\x66\x69\x6e\x61\x6c\x69\x7a\x65\x00\x5f\x5f\x6c\x69\x62\x63\x5f\x73\x74\x61\x72\x74\x5f\x6d\x61\x69\x6e\x00\x61\x62\x6f\x72\x74\x00\x6c\x69\x62\x63\x2e\x73\x6f\x2e\x36\x00\x47\x4c\x49\x42\x43\x5f\x32\x2e\x31\x37\x00\x47\x4c\x49\x42\x43\x5f\x32\x2e\x33\x34\x00\x5f\x49\x54\x4d\x5f\x64\x65\x72\x65\x67\x69\x73\x74\x65\x72\x54\x4d\x43\x6c\x6f\x6e\x65\x54\x61\x62\x6c\x65\x00\x5f\x5f\x67\x6d\x6f\x6e\x5f\x73\x74\x61\x72\x74\x5f\x5f\x00\x5f\x49\x54\x4d\x5f\x72\x65\x67\x69\x73\x74\x65\x72\x54\x4d\x43\x6c\x6f\x6e\x65\x54\x61\x62\x6c\x65\x00"), -Section(".gnu.version", 0x41E, "\x00\x00\x00\x00\x00\x00\x02\x00\x01\x00\x03\x00\x01\x00\x03\x00\x01\x00"), -Section(".gnu.version_r", 0x430, "\x01\x00\x02\x00\x28\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x97\x91\x96\x06\x00\x00\x03\x00\x32\x00\x00\x00\x10\x00\x00\x00\xb4\x91\x96\x06\x00\x00\x02\x00\x3d\x00\x00\x00\x00\x00\x00\x00"), -Section(".rela.dyn", 0x460, "\x80\x0d\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x50\x07\x00\x00\x00\x00\x00\x00\x88\x0d\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\xd0\x0f\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x18\x10\x01\x00\x00\x00\x00\x00\xd8\x0f\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x14\x10\x01\x00\x00\x00\x00\x00\xe8\x0f\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x1c\x10\x01\x00\x00\x00\x00\x00\xf0\x0f\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x54\x07\x00\x00\x00\x00\x00\x00\x08\x10\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x08\x10\x01\x00\x00\x00\x00\x00\xc0\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xc8\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe0\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xf8\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".rela.plt", 0x568, "\x98\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xa0\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xa8\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xb0\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".init", 0x5C8, "\x1f\x20\x03\xd5\xfd\x7b\xbf\xa9\xfd\x03\x00\x91\x28\x00\x00\x94\xfd\x7b\xc1\xa8\xc0\x03\x5f\xd6"), -Section(".plt", 0x5E0, "\xf0\x7b\xbf\xa9\x90\x00\x00\x90\x11\xca\x47\xf9\x10\x42\x3e\x91\x20\x02\x1f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x90\x00\x00\x90\x11\xce\x47\xf9\x10\x62\x3e\x91\x20\x02\x1f\xd6\x90\x00\x00\x90\x11\xd2\x47\xf9\x10\x82\x3e\x91\x20\x02\x1f\xd6\x90\x00\x00\x90\x11\xd6\x47\xf9\x10\xa2\x3e\x91\x20\x02\x1f\xd6\x90\x00\x00\x90\x11\xda\x47\xf9\x10\xc2\x3e\x91\x20\x02\x1f\xd6"), -Section(".fini", 0x7C8, "\x1f\x20\x03\xd5\xfd\x7b\xbf\xa9\xfd\x03\x00\x91\xfd\x7b\xc1\xa8\xc0\x03\x5f\xd6"), -Section(".rodata", 0x7DC, "\x01\x00\x02\x00"), -Section(".eh_frame_hdr", 0x7E0, "\x01\x1b\x03\x3b\x3c\x00\x00\x00\x06\x00\x00\x00\x60\xfe\xff\xff\x54\x00\x00\x00\xb0\xfe\xff\xff\x68\x00\x00\x00\xe0\xfe\xff\xff\x7c\x00\x00\x00\x20\xff\xff\xff\x90\x00\x00\x00\x70\xff\xff\xff\xb4\x00\x00\x00\x74\xff\xff\xff\xc8\x00\x00\x00"), -Section(".eh_frame", 0x820, "\x10\x00\x00\x00\x00\x00\x00\x00\x01\x7a\x52\x00\x04\x78\x1e\x01\x1b\x0c\x1f\x00\x10\x00\x00\x00\x18\x00\x00\x00\x04\xfe\xff\xff\x34\x00\x00\x00\x00\x41\x07\x1e\x10\x00\x00\x00\x2c\x00\x00\x00\x40\xfe\xff\xff\x30\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x40\x00\x00\x00\x5c\xfe\xff\xff\x3c\x00\x00\x00\x00\x00\x00\x00\x20\x00\x00\x00\x54\x00\x00\x00\x88\xfe\xff\xff\x48\x00\x00\x00\x00\x41\x0e\x20\x9d\x04\x9e\x03\x42\x93\x02\x4e\xde\xdd\xd3\x0e\x00\x00\x00\x00\x10\x00\x00\x00\x78\x00\x00\x00\xb4\xfe\xff\xff\x04\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x8c\x00\x00\x00\xa4\xfe\xff\xff\x74\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".fini_array", 0x10D88, "\x00\x07\x00\x00\x00\x00\x00\x00"), -Section(".dynamic", 0x10D90, "\x01\x00\x00\x00\x00\x00\x00\x00\x28\x00\x00\x00\x00\x00\x00\x00\x0c\x00\x00\x00\x00\x00\x00\x00\xc8\x05\x00\x00\x00\x00\x00\x00\x0d\x00\x00\x00\x00\x00\x00\x00\xc8\x07\x00\x00\x00\x00\x00\x00\x19\x00\x00\x00\x00\x00\x00\x00\x80\x0d\x01\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x1a\x00\x00\x00\x00\x00\x00\x00\x88\x0d\x01\x00\x00\x00\x00\x00\x1c\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\xf5\xfe\xff\x6f\x00\x00\x00\x00\x98\x02\x00\x00\x00\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x90\x03\x00\x00\x00\x00\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\xb8\x02\x00\x00\x00\x00\x00\x00\x0a\x00\x00\x00\x00\x00\x00\x00\x8d\x00\x00\x00\x00\x00\x00\x00\x0b\x00\x00\x00\x00\x00\x00\x00\x18\x00\x00\x00\x00\x00\x00\x00\x15\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x80\x0f\x01\x00\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x60\x00\x00\x00\x00\x00\x00\x00\x14\x00\x00\x00\x00\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x17\x00\x00\x00\x00\x00\x00\x00\x68\x05\x00\x00\x00\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x60\x04\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x08\x01\x00\x00\x00\x00\x00\x00\x09\x00\x00\x00\x00\x00\x00\x00\x18\x00\x00\x00\x00\x00\x00\x00\x1e\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\xfb\xff\xff\x6f\x00\x00\x00\x00\x01\x00\x00\x08\x00\x00\x00\x00\xfe\xff\xff\x6f\x00\x00\x00\x00\x30\x04\x00\x00\x00\x00\x00\x00\xff\xff\xff\x6f\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\xf0\xff\xff\x6f\x00\x00\x00\x00\x1e\x04\x00\x00\x00\x00\x00\x00\xf9\xff\xff\x6f\x00\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".got", 0x10F80, "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe0\x05\x00\x00\x00\x00\x00\x00\xe0\x05\x00\x00\x00\x00\x00\x00\xe0\x05\x00\x00\x00\x00\x00\x00\xe0\x05\x00\x00\x00\x00\x00\x00\x90\x0d\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x18\x10\x01\x00\x00\x00\x00\x00\x14\x10\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1c\x10\x01\x00\x00\x00\x00\x00\x54\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".data", 0x11000, "\x00\x00\x00\x00\x00\x00\x00\x00\x08\x10\x01\x00\x00\x00\x00\x00"), -Section(".init_array", 0x10D80, "\x50\x07\x00\x00\x00\x00\x00\x00"), -Section(".text", 0x640, "\x1f\x20\x03\xd5\x1d\x00\x80\xd2\x1e\x00\x80\xd2\xe5\x03\x00\xaa\xe1\x03\x40\xf9\xe2\x23\x00\x91\xe6\x03\x00\x91\x80\x00\x00\x90\x00\xf8\x47\xf9\x03\x00\x80\xd2\x04\x00\x80\xd2\xe5\xff\xff\x97\xf0\xff\xff\x97\x80\x00\x00\x90\x00\xf0\x47\xf9\x40\x00\x00\xb4\xe8\xff\xff\x17\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x80\x00\x00\xb0\x00\x40\x00\x91\x81\x00\x00\xb0\x21\x40\x00\x91\x3f\x00\x00\xeb\xc0\x00\x00\x54\x81\x00\x00\x90\x21\xe0\x47\xf9\x61\x00\x00\xb4\xf0\x03\x01\xaa\x00\x02\x1f\xd6\xc0\x03\x5f\xd6\x80\x00\x00\xb0\x00\x40\x00\x91\x81\x00\x00\xb0\x21\x40\x00\x91\x21\x00\x00\xcb\x22\xfc\x7f\xd3\x41\x0c\x81\x8b\x21\xfc\x41\x93\xc1\x00\x00\xb4\x82\x00\x00\x90\x42\xfc\x47\xf9\x62\x00\x00\xb4\xf0\x03\x02\xaa\x00\x02\x1f\xd6\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\xfd\x7b\xbe\xa9\xfd\x03\x00\x91\xf3\x0b\x00\xf9\x93\x00\x00\xb0\x60\x42\x40\x39\x40\x01\x00\x35\x80\x00\x00\x90\x00\xe4\x47\xf9\x80\x00\x00\xb4\x80\x00\x00\xb0\x00\x04\x40\xf9\xb9\xff\xff\x97\xd8\xff\xff\x97\x20\x00\x80\x52\x60\x42\x00\x39\xf3\x0b\x40\xf9\xfd\x7b\xc2\xa8\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\xdc\xff\xff\x17\x80\x00\x00\x90\x00\xf4\x47\xf9\x01\x00\x40\xb9\x80\x00\x00\x90\x00\xec\x47\xf9\x01\x00\x00\xb9\x80\x00\x00\x90\x00\xec\x47\xf9\x1f\x00\x00\xb9\x80\x00\x00\x90\x00\xec\x47\xf9\x01\x00\x40\xb9\x80\x00\x00\x90\x00\xe8\x47\xf9\x01\x00\x00\xb9\x80\x00\x00\x90\x00\xf4\x47\xf9\x01\x00\x40\xb9\x80\x00\x00\x90\x00\xec\x47\xf9\x01\x00\x00\xb9\x80\x00\x00\x90\x00\xec\x47\xf9\x01\x00\x40\xb9\x80\x00\x00\x90\x00\xe8\x47\xf9\x01\x00\x00\xb9\x00\x00\x80\x52\xc0\x03\x5f\xd6")]), -Memmap([Annotation(Region(0x0,0x8BF), Attr("segment","02 0 2240")), -Annotation(Region(0x640,0x673), Attr("symbol","\"_start\"")), -Annotation(Region(0x0,0xF9), Attr("section","\".shstrtab\"")), -Annotation(Region(0x0,0x22B), Attr("section","\".strtab\"")), -Annotation(Region(0x0,0x86F), Attr("section","\".symtab\"")), -Annotation(Region(0x0,0x2A), Attr("section","\".comment\"")), -Annotation(Region(0x238,0x252), Attr("section","\".interp\"")), -Annotation(Region(0x254,0x277), Attr("section","\".note.gnu.build-id\"")), -Annotation(Region(0x278,0x297), Attr("section","\".note.ABI-tag\"")), -Annotation(Region(0x298,0x2B3), Attr("section","\".gnu.hash\"")), -Annotation(Region(0x2B8,0x38F), Attr("section","\".dynsym\"")), -Annotation(Region(0x390,0x41C), Attr("section","\".dynstr\"")), -Annotation(Region(0x41E,0x42F), Attr("section","\".gnu.version\"")), -Annotation(Region(0x430,0x45F), Attr("section","\".gnu.version_r\"")), -Annotation(Region(0x460,0x567), Attr("section","\".rela.dyn\"")), -Annotation(Region(0x568,0x5C7), Attr("section","\".rela.plt\"")), -Annotation(Region(0x5C8,0x5DF), Attr("section","\".init\"")), -Annotation(Region(0x5E0,0x63F), Attr("section","\".plt\"")), -Annotation(Region(0x5C8,0x5DF), Attr("code-region","()")), -Annotation(Region(0x5E0,0x63F), Attr("code-region","()")), -Annotation(Region(0x640,0x673), Attr("symbol-info","_start 0x640 52")), -Annotation(Region(0x674,0x687), Attr("symbol","\"call_weak_fn\"")), -Annotation(Region(0x674,0x687), Attr("symbol-info","call_weak_fn 0x674 20")), -Annotation(Region(0x754,0x7C7), Attr("symbol","\"main\"")), -Annotation(Region(0x754,0x7C7), Attr("symbol-info","main 0x754 116")), -Annotation(Region(0x7C8,0x7DB), Attr("section","\".fini\"")), -Annotation(Region(0x7DC,0x7DF), Attr("section","\".rodata\"")), -Annotation(Region(0x7E0,0x81B), Attr("section","\".eh_frame_hdr\"")), -Annotation(Region(0x820,0x8BF), Attr("section","\".eh_frame\"")), -Annotation(Region(0x10D80,0x1100F), Attr("segment","03 0x10D80 672")), -Annotation(Region(0x10D88,0x10D8F), Attr("section","\".fini_array\"")), -Annotation(Region(0x10D90,0x10F7F), Attr("section","\".dynamic\"")), -Annotation(Region(0x10F80,0x10FFF), Attr("section","\".got\"")), -Annotation(Region(0x11000,0x1100F), Attr("section","\".data\"")), -Annotation(Region(0x10D80,0x10D87), Attr("section","\".init_array\"")), -Annotation(Region(0x640,0x7C7), Attr("section","\".text\"")), -Annotation(Region(0x640,0x7C7), Attr("code-region","()")), -Annotation(Region(0x7C8,0x7DB), Attr("code-region","()"))]), -Program(Tid(1_718, "%000006b6"), Attrs([]), - Subs([Sub(Tid(1_668, "@__cxa_finalize"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x610"), -Attr("stub","()")]), "__cxa_finalize", Args([Arg(Tid(1_719, "%000006b7"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("__cxa_finalize_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(1_038, "@__cxa_finalize"), - Attrs([Attr("address","0x610")]), Phis([]), -Defs([Def(Tid(1_286, "%00000506"), Attrs([Attr("address","0x610"), -Attr("insn","adrp x16, #65536")]), Var("R16",Imm(64)), Int(65536,64)), -Def(Tid(1_293, "%0000050d"), Attrs([Attr("address","0x614"), -Attr("insn","ldr x17, [x16, #0xfa0]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(4000,64)),LittleEndian(),64)), -Def(Tid(1_299, "%00000513"), Attrs([Attr("address","0x618"), -Attr("insn","add x16, x16, #0xfa0")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(4000,64)))]), Jmps([Call(Tid(1_304, "%00000518"), - Attrs([Attr("address","0x61C"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), -Sub(Tid(1_669, "@__do_global_dtors_aux"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x700")]), - "__do_global_dtors_aux", Args([Arg(Tid(1_720, "%000006b8"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("__do_global_dtors_aux_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(706, "@__do_global_dtors_aux"), - Attrs([Attr("address","0x700")]), Phis([]), Defs([Def(Tid(710, "%000002c6"), - Attrs([Attr("address","0x700"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("#3",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(18446744073709551584,64))), -Def(Tid(716, "%000002cc"), Attrs([Attr("address","0x700"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("#3",Imm(64)),Var("R29",Imm(64)),LittleEndian(),64)), -Def(Tid(722, "%000002d2"), Attrs([Attr("address","0x700"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("#3",Imm(64)),Int(8,64)),Var("R30",Imm(64)),LittleEndian(),64)), -Def(Tid(726, "%000002d6"), Attrs([Attr("address","0x700"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("R31",Imm(64)), -Var("#3",Imm(64))), Def(Tid(732, "%000002dc"), - Attrs([Attr("address","0x704"), Attr("insn","mov x29, sp")]), - Var("R29",Imm(64)), Var("R31",Imm(64))), Def(Tid(740, "%000002e4"), - Attrs([Attr("address","0x708"), Attr("insn","str x19, [sp, #0x10]")]), - Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(16,64)),Var("R19",Imm(64)),LittleEndian(),64)), -Def(Tid(745, "%000002e9"), Attrs([Attr("address","0x70C"), -Attr("insn","adrp x19, #69632")]), Var("R19",Imm(64)), Int(69632,64)), -Def(Tid(752, "%000002f0"), Attrs([Attr("address","0x710"), -Attr("insn","ldrb w0, [x19, #0x10]")]), Var("R0",Imm(64)), -UNSIGNED(64,Load(Var("mem",Mem(64,8)),PLUS(Var("R19",Imm(64)),Int(16,64)),LittleEndian(),8)))]), -Jmps([Goto(Tid(759, "%000002f7"), Attrs([Attr("address","0x714"), -Attr("insn","cbnz w0, #0x28")]), - NEQ(Extract(31,0,Var("R0",Imm(64))),Int(0,32)), -Direct(Tid(757, "%000002f5"))), Goto(Tid(1_708, "%000006ac"), Attrs([]), - Int(1,1), Direct(Tid(983, "%000003d7")))])), Blk(Tid(983, "%000003d7"), - Attrs([Attr("address","0x718")]), Phis([]), Defs([Def(Tid(986, "%000003da"), - Attrs([Attr("address","0x718"), Attr("insn","adrp x0, #65536")]), - Var("R0",Imm(64)), Int(65536,64)), Def(Tid(993, "%000003e1"), - Attrs([Attr("address","0x71C"), Attr("insn","ldr x0, [x0, #0xfc8]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(4040,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(999, "%000003e7"), Attrs([Attr("address","0x720"), -Attr("insn","cbz x0, #0x10")]), EQ(Var("R0",Imm(64)),Int(0,64)), -Direct(Tid(997, "%000003e5"))), Goto(Tid(1_709, "%000006ad"), Attrs([]), - Int(1,1), Direct(Tid(1_022, "%000003fe")))])), Blk(Tid(1_022, "%000003fe"), - Attrs([Attr("address","0x724")]), Phis([]), -Defs([Def(Tid(1_025, "%00000401"), Attrs([Attr("address","0x724"), -Attr("insn","adrp x0, #69632")]), Var("R0",Imm(64)), Int(69632,64)), -Def(Tid(1_032, "%00000408"), Attrs([Attr("address","0x728"), -Attr("insn","ldr x0, [x0, #0x8]")]), Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(1_037, "%0000040d"), Attrs([Attr("address","0x72C"), -Attr("insn","bl #-0x11c")]), Var("R30",Imm(64)), Int(1840,64))]), -Jmps([Call(Tid(1_040, "%00000410"), Attrs([Attr("address","0x72C"), -Attr("insn","bl #-0x11c")]), Int(1,1), -(Direct(Tid(1_668, "@__cxa_finalize")),Direct(Tid(997, "%000003e5"))))])), -Blk(Tid(997, "%000003e5"), Attrs([Attr("address","0x730")]), Phis([]), -Defs([Def(Tid(1_005, "%000003ed"), Attrs([Attr("address","0x730"), -Attr("insn","bl #-0xa0")]), Var("R30",Imm(64)), Int(1844,64))]), -Jmps([Call(Tid(1_007, "%000003ef"), Attrs([Attr("address","0x730"), -Attr("insn","bl #-0xa0")]), Int(1,1), -(Direct(Tid(1_682, "@deregister_tm_clones")),Direct(Tid(1_009, "%000003f1"))))])), -Blk(Tid(1_009, "%000003f1"), Attrs([Attr("address","0x734")]), Phis([]), -Defs([Def(Tid(1_012, "%000003f4"), Attrs([Attr("address","0x734"), -Attr("insn","mov w0, #0x1")]), Var("R0",Imm(64)), Int(1,64)), -Def(Tid(1_020, "%000003fc"), Attrs([Attr("address","0x738"), -Attr("insn","strb w0, [x19, #0x10]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R19",Imm(64)),Int(16,64)),Extract(7,0,Var("R0",Imm(64))),LittleEndian(),8))]), -Jmps([Goto(Tid(1_710, "%000006ae"), Attrs([]), Int(1,1), -Direct(Tid(757, "%000002f5")))])), Blk(Tid(757, "%000002f5"), - Attrs([Attr("address","0x73C")]), Phis([]), Defs([Def(Tid(767, "%000002ff"), - Attrs([Attr("address","0x73C"), Attr("insn","ldr x19, [sp, #0x10]")]), - Var("R19",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(16,64)),LittleEndian(),64)), -Def(Tid(774, "%00000306"), Attrs([Attr("address","0x740"), -Attr("insn","ldp x29, x30, [sp], #0x20")]), Var("R29",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(779, "%0000030b"), Attrs([Attr("address","0x740"), -Attr("insn","ldp x29, x30, [sp], #0x20")]), Var("R30",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(783, "%0000030f"), Attrs([Attr("address","0x740"), -Attr("insn","ldp x29, x30, [sp], #0x20")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(32,64)))]), Jmps([Call(Tid(788, "%00000314"), - Attrs([Attr("address","0x744"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), Sub(Tid(1_673, "@__libc_start_main"), - Attrs([Attr("c.proto","signed (*)(signed (*)(signed , char** , char** );* main, signed , char** , \nvoid* auxv)"), -Attr("address","0x600"), Attr("stub","()")]), "__libc_start_main", - Args([Arg(Tid(1_721, "%000006b9"), - Attrs([Attr("c.layout","**[ : 64]"), -Attr("c.data","Top:u64 ptr ptr"), -Attr("c.type","signed (*)(signed , char** , char** );*")]), - Var("__libc_start_main_main",Imm(64)), Var("R0",Imm(64)), In()), -Arg(Tid(1_722, "%000006ba"), Attrs([Attr("c.layout","[signed : 32]"), -Attr("c.data","Top:u32"), Attr("c.type","signed")]), - Var("__libc_start_main_arg2",Imm(32)), LOW(32,Var("R1",Imm(64))), In()), -Arg(Tid(1_723, "%000006bb"), Attrs([Attr("c.layout","**[char : 8]"), -Attr("c.data","Top:u8 ptr ptr"), Attr("c.type","char**")]), - Var("__libc_start_main_arg3",Imm(64)), Var("R2",Imm(64)), Both()), -Arg(Tid(1_724, "%000006bc"), Attrs([Attr("c.layout","*[ : 8]"), -Attr("c.data","{} ptr"), Attr("c.type","void*")]), - Var("__libc_start_main_auxv",Imm(64)), Var("R3",Imm(64)), Both()), -Arg(Tid(1_725, "%000006bd"), Attrs([Attr("c.layout","[signed : 32]"), -Attr("c.data","Top:u32"), Attr("c.type","signed")]), - Var("__libc_start_main_result",Imm(32)), LOW(32,Var("R0",Imm(64))), -Out())]), Blks([Blk(Tid(539, "@__libc_start_main"), - Attrs([Attr("address","0x600")]), Phis([]), -Defs([Def(Tid(1_264, "%000004f0"), Attrs([Attr("address","0x600"), -Attr("insn","adrp x16, #65536")]), Var("R16",Imm(64)), Int(65536,64)), -Def(Tid(1_271, "%000004f7"), Attrs([Attr("address","0x604"), -Attr("insn","ldr x17, [x16, #0xf98]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(3992,64)),LittleEndian(),64)), -Def(Tid(1_277, "%000004fd"), Attrs([Attr("address","0x608"), -Attr("insn","add x16, x16, #0xf98")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(3992,64)))]), Jmps([Call(Tid(1_282, "%00000502"), - Attrs([Attr("address","0x60C"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), Sub(Tid(1_674, "@_fini"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x7C8")]), - "_fini", Args([Arg(Tid(1_726, "%000006be"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("_fini_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(31, "@_fini"), - Attrs([Attr("address","0x7C8")]), Phis([]), Defs([Def(Tid(37, "%00000025"), - Attrs([Attr("address","0x7CC"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("#0",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(18446744073709551600,64))), -Def(Tid(43, "%0000002b"), Attrs([Attr("address","0x7CC"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("#0",Imm(64)),Var("R29",Imm(64)),LittleEndian(),64)), -Def(Tid(49, "%00000031"), Attrs([Attr("address","0x7CC"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("#0",Imm(64)),Int(8,64)),Var("R30",Imm(64)),LittleEndian(),64)), -Def(Tid(53, "%00000035"), Attrs([Attr("address","0x7CC"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("R31",Imm(64)), -Var("#0",Imm(64))), Def(Tid(59, "%0000003b"), Attrs([Attr("address","0x7D0"), -Attr("insn","mov x29, sp")]), Var("R29",Imm(64)), Var("R31",Imm(64))), -Def(Tid(66, "%00000042"), Attrs([Attr("address","0x7D4"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R29",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(71, "%00000047"), Attrs([Attr("address","0x7D4"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R30",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(75, "%0000004b"), Attrs([Attr("address","0x7D4"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(16,64)))]), Jmps([Call(Tid(80, "%00000050"), - Attrs([Attr("address","0x7D8"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), Sub(Tid(1_675, "@_init"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x5C8")]), - "_init", Args([Arg(Tid(1_727, "%000006bf"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("_init_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(1_481, "@_init"), - Attrs([Attr("address","0x5C8")]), Phis([]), -Defs([Def(Tid(1_487, "%000005cf"), Attrs([Attr("address","0x5CC"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("#5",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(18446744073709551600,64))), -Def(Tid(1_493, "%000005d5"), Attrs([Attr("address","0x5CC"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("#5",Imm(64)),Var("R29",Imm(64)),LittleEndian(),64)), -Def(Tid(1_499, "%000005db"), Attrs([Attr("address","0x5CC"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("#5",Imm(64)),Int(8,64)),Var("R30",Imm(64)),LittleEndian(),64)), -Def(Tid(1_503, "%000005df"), Attrs([Attr("address","0x5CC"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("R31",Imm(64)), -Var("#5",Imm(64))), Def(Tid(1_509, "%000005e5"), - Attrs([Attr("address","0x5D0"), Attr("insn","mov x29, sp")]), - Var("R29",Imm(64)), Var("R31",Imm(64))), Def(Tid(1_514, "%000005ea"), - Attrs([Attr("address","0x5D4"), Attr("insn","bl #0xa0")]), - Var("R30",Imm(64)), Int(1496,64))]), Jmps([Call(Tid(1_516, "%000005ec"), - Attrs([Attr("address","0x5D4"), Attr("insn","bl #0xa0")]), Int(1,1), -(Direct(Tid(1_680, "@call_weak_fn")),Direct(Tid(1_518, "%000005ee"))))])), -Blk(Tid(1_518, "%000005ee"), Attrs([Attr("address","0x5D8")]), Phis([]), -Defs([Def(Tid(1_523, "%000005f3"), Attrs([Attr("address","0x5D8"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R29",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(1_528, "%000005f8"), Attrs([Attr("address","0x5D8"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R30",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(1_532, "%000005fc"), Attrs([Attr("address","0x5D8"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(16,64)))]), Jmps([Call(Tid(1_537, "%00000601"), - Attrs([Attr("address","0x5DC"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), Sub(Tid(1_676, "@_start"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x640"), -Attr("stub","()"), Attr("entry-point","()")]), "_start", - Args([Arg(Tid(1_728, "%000006c0"), Attrs([Attr("c.layout","[signed : 32]"), -Attr("c.data","Top:u32"), Attr("c.type","signed")]), - Var("_start_result",Imm(32)), LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(476, "@_start"), Attrs([Attr("address","0x640")]), Phis([]), -Defs([Def(Tid(481, "%000001e1"), Attrs([Attr("address","0x644"), -Attr("insn","mov x29, #0x0")]), Var("R29",Imm(64)), Int(0,64)), -Def(Tid(486, "%000001e6"), Attrs([Attr("address","0x648"), -Attr("insn","mov x30, #0x0")]), Var("R30",Imm(64)), Int(0,64)), -Def(Tid(492, "%000001ec"), Attrs([Attr("address","0x64C"), -Attr("insn","mov x5, x0")]), Var("R5",Imm(64)), Var("R0",Imm(64))), -Def(Tid(499, "%000001f3"), Attrs([Attr("address","0x650"), -Attr("insn","ldr x1, [sp]")]), Var("R1",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(505, "%000001f9"), Attrs([Attr("address","0x654"), -Attr("insn","add x2, sp, #0x8")]), Var("R2",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(8,64))), Def(Tid(511, "%000001ff"), - Attrs([Attr("address","0x658"), Attr("insn","mov x6, sp")]), - Var("R6",Imm(64)), Var("R31",Imm(64))), Def(Tid(516, "%00000204"), - Attrs([Attr("address","0x65C"), Attr("insn","adrp x0, #65536")]), - Var("R0",Imm(64)), Int(65536,64)), Def(Tid(523, "%0000020b"), - Attrs([Attr("address","0x660"), Attr("insn","ldr x0, [x0, #0xff0]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(4080,64)),LittleEndian(),64)), -Def(Tid(528, "%00000210"), Attrs([Attr("address","0x664"), -Attr("insn","mov x3, #0x0")]), Var("R3",Imm(64)), Int(0,64)), -Def(Tid(533, "%00000215"), Attrs([Attr("address","0x668"), -Attr("insn","mov x4, #0x0")]), Var("R4",Imm(64)), Int(0,64)), -Def(Tid(538, "%0000021a"), Attrs([Attr("address","0x66C"), -Attr("insn","bl #-0x6c")]), Var("R30",Imm(64)), Int(1648,64))]), -Jmps([Call(Tid(541, "%0000021d"), Attrs([Attr("address","0x66C"), -Attr("insn","bl #-0x6c")]), Int(1,1), -(Direct(Tid(1_673, "@__libc_start_main")),Direct(Tid(543, "%0000021f"))))])), -Blk(Tid(543, "%0000021f"), Attrs([Attr("address","0x670")]), Phis([]), -Defs([Def(Tid(546, "%00000222"), Attrs([Attr("address","0x670"), -Attr("insn","bl #-0x40")]), Var("R30",Imm(64)), Int(1652,64))]), -Jmps([Call(Tid(549, "%00000225"), Attrs([Attr("address","0x670"), -Attr("insn","bl #-0x40")]), Int(1,1), -(Direct(Tid(1_679, "@abort")),Direct(Tid(1_711, "%000006af"))))])), -Blk(Tid(1_711, "%000006af"), Attrs([]), Phis([]), Defs([]), -Jmps([Call(Tid(1_712, "%000006b0"), Attrs([]), Int(1,1), -(Direct(Tid(1_680, "@call_weak_fn")),))]))])), Sub(Tid(1_679, "@abort"), - Attrs([Attr("noreturn","()"), Attr("c.proto","void (*)(void)"), -Attr("address","0x630"), Attr("stub","()")]), "abort", Args([]), -Blks([Blk(Tid(547, "@abort"), Attrs([Attr("address","0x630")]), Phis([]), -Defs([Def(Tid(1_330, "%00000532"), Attrs([Attr("address","0x630"), -Attr("insn","adrp x16, #65536")]), Var("R16",Imm(64)), Int(65536,64)), -Def(Tid(1_337, "%00000539"), Attrs([Attr("address","0x634"), -Attr("insn","ldr x17, [x16, #0xfb0]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(4016,64)),LittleEndian(),64)), -Def(Tid(1_343, "%0000053f"), Attrs([Attr("address","0x638"), -Attr("insn","add x16, x16, #0xfb0")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(4016,64)))]), Jmps([Call(Tid(1_348, "%00000544"), - Attrs([Attr("address","0x63C"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), Sub(Tid(1_680, "@call_weak_fn"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x674")]), - "call_weak_fn", Args([Arg(Tid(1_729, "%000006c1"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("call_weak_fn_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(551, "@call_weak_fn"), - Attrs([Attr("address","0x674")]), Phis([]), Defs([Def(Tid(554, "%0000022a"), - Attrs([Attr("address","0x674"), Attr("insn","adrp x0, #65536")]), - Var("R0",Imm(64)), Int(65536,64)), Def(Tid(561, "%00000231"), - Attrs([Attr("address","0x678"), Attr("insn","ldr x0, [x0, #0xfe0]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(4064,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(567, "%00000237"), Attrs([Attr("address","0x67C"), -Attr("insn","cbz x0, #0x8")]), EQ(Var("R0",Imm(64)),Int(0,64)), -Direct(Tid(565, "%00000235"))), Goto(Tid(1_713, "%000006b1"), Attrs([]), - Int(1,1), Direct(Tid(1_102, "%0000044e")))])), Blk(Tid(565, "%00000235"), - Attrs([Attr("address","0x684")]), Phis([]), Defs([]), -Jmps([Call(Tid(573, "%0000023d"), Attrs([Attr("address","0x684"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))])), -Blk(Tid(1_102, "%0000044e"), Attrs([Attr("address","0x680")]), Phis([]), -Defs([]), Jmps([Goto(Tid(1_105, "%00000451"), Attrs([Attr("address","0x680"), -Attr("insn","b #-0x60")]), Int(1,1), -Direct(Tid(1_103, "@__gmon_start__")))])), Blk(Tid(1_103, "@__gmon_start__"), - Attrs([Attr("address","0x620")]), Phis([]), -Defs([Def(Tid(1_308, "%0000051c"), Attrs([Attr("address","0x620"), -Attr("insn","adrp x16, #65536")]), Var("R16",Imm(64)), Int(65536,64)), -Def(Tid(1_315, "%00000523"), Attrs([Attr("address","0x624"), -Attr("insn","ldr x17, [x16, #0xfa8]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(4008,64)),LittleEndian(),64)), -Def(Tid(1_321, "%00000529"), Attrs([Attr("address","0x628"), -Attr("insn","add x16, x16, #0xfa8")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(4008,64)))]), Jmps([Call(Tid(1_326, "%0000052e"), - Attrs([Attr("address","0x62C"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), -Sub(Tid(1_682, "@deregister_tm_clones"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x690")]), - "deregister_tm_clones", Args([Arg(Tid(1_730, "%000006c2"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("deregister_tm_clones_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(579, "@deregister_tm_clones"), - Attrs([Attr("address","0x690")]), Phis([]), Defs([Def(Tid(582, "%00000246"), - Attrs([Attr("address","0x690"), Attr("insn","adrp x0, #69632")]), - Var("R0",Imm(64)), Int(69632,64)), Def(Tid(588, "%0000024c"), - Attrs([Attr("address","0x694"), Attr("insn","add x0, x0, #0x10")]), - Var("R0",Imm(64)), PLUS(Var("R0",Imm(64)),Int(16,64))), -Def(Tid(593, "%00000251"), Attrs([Attr("address","0x698"), -Attr("insn","adrp x1, #69632")]), Var("R1",Imm(64)), Int(69632,64)), -Def(Tid(599, "%00000257"), Attrs([Attr("address","0x69C"), -Attr("insn","add x1, x1, #0x10")]), Var("R1",Imm(64)), -PLUS(Var("R1",Imm(64)),Int(16,64))), Def(Tid(605, "%0000025d"), - Attrs([Attr("address","0x6A0"), Attr("insn","cmp x1, x0")]), - Var("#1",Imm(64)), NOT(Var("R0",Imm(64)))), Def(Tid(610, "%00000262"), - Attrs([Attr("address","0x6A0"), Attr("insn","cmp x1, x0")]), - Var("#2",Imm(64)), PLUS(Var("R1",Imm(64)),NOT(Var("R0",Imm(64))))), -Def(Tid(616, "%00000268"), Attrs([Attr("address","0x6A0"), -Attr("insn","cmp x1, x0")]), Var("VF",Imm(1)), -NEQ(SIGNED(65,PLUS(Var("#2",Imm(64)),Int(1,64))),PLUS(PLUS(SIGNED(65,Var("R1",Imm(64))),SIGNED(65,Var("#1",Imm(64)))),Int(1,65)))), -Def(Tid(622, "%0000026e"), Attrs([Attr("address","0x6A0"), -Attr("insn","cmp x1, x0")]), Var("CF",Imm(1)), -NEQ(UNSIGNED(65,PLUS(Var("#2",Imm(64)),Int(1,64))),PLUS(PLUS(UNSIGNED(65,Var("R1",Imm(64))),UNSIGNED(65,Var("#1",Imm(64)))),Int(1,65)))), -Def(Tid(626, "%00000272"), Attrs([Attr("address","0x6A0"), -Attr("insn","cmp x1, x0")]), Var("ZF",Imm(1)), -EQ(PLUS(Var("#2",Imm(64)),Int(1,64)),Int(0,64))), Def(Tid(630, "%00000276"), - Attrs([Attr("address","0x6A0"), Attr("insn","cmp x1, x0")]), - Var("NF",Imm(1)), Extract(63,63,PLUS(Var("#2",Imm(64)),Int(1,64))))]), -Jmps([Goto(Tid(636, "%0000027c"), Attrs([Attr("address","0x6A4"), -Attr("insn","b.eq #0x18")]), EQ(Var("ZF",Imm(1)),Int(1,1)), -Direct(Tid(634, "%0000027a"))), Goto(Tid(1_714, "%000006b2"), Attrs([]), - Int(1,1), Direct(Tid(1_072, "%00000430")))])), Blk(Tid(1_072, "%00000430"), - Attrs([Attr("address","0x6A8")]), Phis([]), -Defs([Def(Tid(1_075, "%00000433"), Attrs([Attr("address","0x6A8"), -Attr("insn","adrp x1, #65536")]), Var("R1",Imm(64)), Int(65536,64)), -Def(Tid(1_082, "%0000043a"), Attrs([Attr("address","0x6AC"), -Attr("insn","ldr x1, [x1, #0xfc0]")]), Var("R1",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R1",Imm(64)),Int(4032,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(1_087, "%0000043f"), Attrs([Attr("address","0x6B0"), -Attr("insn","cbz x1, #0xc")]), EQ(Var("R1",Imm(64)),Int(0,64)), -Direct(Tid(634, "%0000027a"))), Goto(Tid(1_715, "%000006b3"), Attrs([]), - Int(1,1), Direct(Tid(1_091, "%00000443")))])), Blk(Tid(634, "%0000027a"), - Attrs([Attr("address","0x6BC")]), Phis([]), Defs([]), -Jmps([Call(Tid(642, "%00000282"), Attrs([Attr("address","0x6BC"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))])), -Blk(Tid(1_091, "%00000443"), Attrs([Attr("address","0x6B4")]), Phis([]), -Defs([Def(Tid(1_095, "%00000447"), Attrs([Attr("address","0x6B4"), -Attr("insn","mov x16, x1")]), Var("R16",Imm(64)), Var("R1",Imm(64)))]), -Jmps([Call(Tid(1_100, "%0000044c"), Attrs([Attr("address","0x6B8"), -Attr("insn","br x16")]), Int(1,1), (Indirect(Var("R16",Imm(64))),))]))])), -Sub(Tid(1_685, "@frame_dummy"), Attrs([Attr("c.proto","signed (*)(void)"), -Attr("address","0x750")]), "frame_dummy", Args([Arg(Tid(1_731, "%000006c3"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("frame_dummy_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(794, "@frame_dummy"), - Attrs([Attr("address","0x750")]), Phis([]), Defs([]), -Jmps([Call(Tid(796, "%0000031c"), Attrs([Attr("address","0x750"), -Attr("insn","b #-0x90")]), Int(1,1), -(Direct(Tid(1_687, "@register_tm_clones")),))]))])), Sub(Tid(1_686, "@main"), - Attrs([Attr("c.proto","signed (*)(signed argc, const char** argv)"), -Attr("address","0x754")]), "main", Args([Arg(Tid(1_732, "%000006c4"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("main_argc",Imm(32)), -LOW(32,Var("R0",Imm(64))), In()), Arg(Tid(1_733, "%000006c5"), - Attrs([Attr("c.layout","**[char : 8]"), Attr("c.data","Top:u8 ptr ptr"), -Attr("c.type"," const char**")]), Var("main_argv",Imm(64)), -Var("R1",Imm(64)), Both()), Arg(Tid(1_734, "%000006c6"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("main_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(798, "@main"), - Attrs([Attr("address","0x754")]), Phis([]), Defs([Def(Tid(801, "%00000321"), - Attrs([Attr("address","0x754"), Attr("insn","adrp x0, #65536")]), - Var("R0",Imm(64)), Int(65536,64)), Def(Tid(808, "%00000328"), - Attrs([Attr("address","0x758"), Attr("insn","ldr x0, [x0, #0xfe8]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(4072,64)),LittleEndian(),64)), -Def(Tid(815, "%0000032f"), Attrs([Attr("address","0x75C"), -Attr("insn","ldr w1, [x0]")]), Var("R1",Imm(64)), -UNSIGNED(64,Load(Var("mem",Mem(64,8)),Var("R0",Imm(64)),LittleEndian(),32))), -Def(Tid(820, "%00000334"), Attrs([Attr("address","0x760"), -Attr("insn","adrp x0, #65536")]), Var("R0",Imm(64)), Int(65536,64)), -Def(Tid(827, "%0000033b"), Attrs([Attr("address","0x764"), -Attr("insn","ldr x0, [x0, #0xfd8]")]), Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(4056,64)),LittleEndian(),64)), -Def(Tid(835, "%00000343"), Attrs([Attr("address","0x768"), -Attr("insn","str w1, [x0]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("R0",Imm(64)),Extract(31,0,Var("R1",Imm(64))),LittleEndian(),32)), -Def(Tid(840, "%00000348"), Attrs([Attr("address","0x76C"), -Attr("insn","adrp x0, #65536")]), Var("R0",Imm(64)), Int(65536,64)), -Def(Tid(847, "%0000034f"), Attrs([Attr("address","0x770"), -Attr("insn","ldr x0, [x0, #0xfd8]")]), Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(4056,64)),LittleEndian(),64)), -Def(Tid(854, "%00000356"), Attrs([Attr("address","0x774"), -Attr("insn","str wzr, [x0]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("R0",Imm(64)),Int(0,32),LittleEndian(),32)), -Def(Tid(859, "%0000035b"), Attrs([Attr("address","0x778"), -Attr("insn","adrp x0, #65536")]), Var("R0",Imm(64)), Int(65536,64)), -Def(Tid(866, "%00000362"), Attrs([Attr("address","0x77C"), -Attr("insn","ldr x0, [x0, #0xfd8]")]), Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(4056,64)),LittleEndian(),64)), -Def(Tid(873, "%00000369"), Attrs([Attr("address","0x780"), -Attr("insn","ldr w1, [x0]")]), Var("R1",Imm(64)), -UNSIGNED(64,Load(Var("mem",Mem(64,8)),Var("R0",Imm(64)),LittleEndian(),32))), -Def(Tid(878, "%0000036e"), Attrs([Attr("address","0x784"), -Attr("insn","adrp x0, #65536")]), Var("R0",Imm(64)), Int(65536,64)), -Def(Tid(885, "%00000375"), Attrs([Attr("address","0x788"), -Attr("insn","ldr x0, [x0, #0xfd0]")]), Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(4048,64)),LittleEndian(),64)), -Def(Tid(893, "%0000037d"), Attrs([Attr("address","0x78C"), -Attr("insn","str w1, [x0]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("R0",Imm(64)),Extract(31,0,Var("R1",Imm(64))),LittleEndian(),32)), -Def(Tid(898, "%00000382"), Attrs([Attr("address","0x790"), -Attr("insn","adrp x0, #65536")]), Var("R0",Imm(64)), Int(65536,64)), -Def(Tid(905, "%00000389"), Attrs([Attr("address","0x794"), -Attr("insn","ldr x0, [x0, #0xfe8]")]), Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(4072,64)),LittleEndian(),64)), -Def(Tid(912, "%00000390"), Attrs([Attr("address","0x798"), -Attr("insn","ldr w1, [x0]")]), Var("R1",Imm(64)), -UNSIGNED(64,Load(Var("mem",Mem(64,8)),Var("R0",Imm(64)),LittleEndian(),32))), -Def(Tid(917, "%00000395"), Attrs([Attr("address","0x79C"), -Attr("insn","adrp x0, #65536")]), Var("R0",Imm(64)), Int(65536,64)), -Def(Tid(924, "%0000039c"), Attrs([Attr("address","0x7A0"), -Attr("insn","ldr x0, [x0, #0xfd8]")]), Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(4056,64)),LittleEndian(),64)), -Def(Tid(932, "%000003a4"), Attrs([Attr("address","0x7A4"), -Attr("insn","str w1, [x0]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("R0",Imm(64)),Extract(31,0,Var("R1",Imm(64))),LittleEndian(),32)), -Def(Tid(937, "%000003a9"), Attrs([Attr("address","0x7A8"), -Attr("insn","adrp x0, #65536")]), Var("R0",Imm(64)), Int(65536,64)), -Def(Tid(944, "%000003b0"), Attrs([Attr("address","0x7AC"), -Attr("insn","ldr x0, [x0, #0xfd8]")]), Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(4056,64)),LittleEndian(),64)), -Def(Tid(951, "%000003b7"), Attrs([Attr("address","0x7B0"), -Attr("insn","ldr w1, [x0]")]), Var("R1",Imm(64)), -UNSIGNED(64,Load(Var("mem",Mem(64,8)),Var("R0",Imm(64)),LittleEndian(),32))), -Def(Tid(956, "%000003bc"), Attrs([Attr("address","0x7B4"), -Attr("insn","adrp x0, #65536")]), Var("R0",Imm(64)), Int(65536,64)), -Def(Tid(963, "%000003c3"), Attrs([Attr("address","0x7B8"), -Attr("insn","ldr x0, [x0, #0xfd0]")]), Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(4048,64)),LittleEndian(),64)), -Def(Tid(971, "%000003cb"), Attrs([Attr("address","0x7BC"), -Attr("insn","str w1, [x0]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("R0",Imm(64)),Extract(31,0,Var("R1",Imm(64))),LittleEndian(),32)), -Def(Tid(976, "%000003d0"), Attrs([Attr("address","0x7C0"), -Attr("insn","mov w0, #0x0")]), Var("R0",Imm(64)), Int(0,64))]), -Jmps([Call(Tid(981, "%000003d5"), Attrs([Attr("address","0x7C4"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))]))])), -Sub(Tid(1_687, "@register_tm_clones"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x6C0")]), - "register_tm_clones", Args([Arg(Tid(1_735, "%000006c7"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("register_tm_clones_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(644, "@register_tm_clones"), Attrs([Attr("address","0x6C0")]), - Phis([]), Defs([Def(Tid(647, "%00000287"), Attrs([Attr("address","0x6C0"), -Attr("insn","adrp x0, #69632")]), Var("R0",Imm(64)), Int(69632,64)), -Def(Tid(653, "%0000028d"), Attrs([Attr("address","0x6C4"), -Attr("insn","add x0, x0, #0x10")]), Var("R0",Imm(64)), -PLUS(Var("R0",Imm(64)),Int(16,64))), Def(Tid(658, "%00000292"), - Attrs([Attr("address","0x6C8"), Attr("insn","adrp x1, #69632")]), - Var("R1",Imm(64)), Int(69632,64)), Def(Tid(664, "%00000298"), - Attrs([Attr("address","0x6CC"), Attr("insn","add x1, x1, #0x10")]), - Var("R1",Imm(64)), PLUS(Var("R1",Imm(64)),Int(16,64))), -Def(Tid(671, "%0000029f"), Attrs([Attr("address","0x6D0"), -Attr("insn","sub x1, x1, x0")]), Var("R1",Imm(64)), -PLUS(PLUS(Var("R1",Imm(64)),NOT(Var("R0",Imm(64)))),Int(1,64))), -Def(Tid(677, "%000002a5"), Attrs([Attr("address","0x6D4"), -Attr("insn","lsr x2, x1, #63")]), Var("R2",Imm(64)), -Concat(Int(0,63),Extract(63,63,Var("R1",Imm(64))))), -Def(Tid(684, "%000002ac"), Attrs([Attr("address","0x6D8"), -Attr("insn","add x1, x2, x1, asr #3")]), Var("R1",Imm(64)), -PLUS(Var("R2",Imm(64)),ARSHIFT(Var("R1",Imm(64)),Int(3,3)))), -Def(Tid(690, "%000002b2"), Attrs([Attr("address","0x6DC"), -Attr("insn","asr x1, x1, #1")]), Var("R1",Imm(64)), -SIGNED(64,Extract(63,1,Var("R1",Imm(64)))))]), -Jmps([Goto(Tid(696, "%000002b8"), Attrs([Attr("address","0x6E0"), -Attr("insn","cbz x1, #0x18")]), EQ(Var("R1",Imm(64)),Int(0,64)), -Direct(Tid(694, "%000002b6"))), Goto(Tid(1_716, "%000006b4"), Attrs([]), - Int(1,1), Direct(Tid(1_042, "%00000412")))])), Blk(Tid(1_042, "%00000412"), - Attrs([Attr("address","0x6E4")]), Phis([]), -Defs([Def(Tid(1_045, "%00000415"), Attrs([Attr("address","0x6E4"), -Attr("insn","adrp x2, #65536")]), Var("R2",Imm(64)), Int(65536,64)), -Def(Tid(1_052, "%0000041c"), Attrs([Attr("address","0x6E8"), -Attr("insn","ldr x2, [x2, #0xff8]")]), Var("R2",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R2",Imm(64)),Int(4088,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(1_057, "%00000421"), Attrs([Attr("address","0x6EC"), -Attr("insn","cbz x2, #0xc")]), EQ(Var("R2",Imm(64)),Int(0,64)), -Direct(Tid(694, "%000002b6"))), Goto(Tid(1_717, "%000006b5"), Attrs([]), - Int(1,1), Direct(Tid(1_061, "%00000425")))])), Blk(Tid(694, "%000002b6"), - Attrs([Attr("address","0x6F8")]), Phis([]), Defs([]), -Jmps([Call(Tid(702, "%000002be"), Attrs([Attr("address","0x6F8"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))])), -Blk(Tid(1_061, "%00000425"), Attrs([Attr("address","0x6F0")]), Phis([]), -Defs([Def(Tid(1_065, "%00000429"), Attrs([Attr("address","0x6F0"), -Attr("insn","mov x16, x2")]), Var("R16",Imm(64)), Var("R2",Imm(64)))]), -Jmps([Call(Tid(1_070, "%0000042e"), Attrs([Attr("address","0x6F4"), -Attr("insn","br x16")]), Int(1,1), -(Indirect(Var("R16",Imm(64))),))]))]))]))) \ No newline at end of file diff --git a/src/test/incorrect/basicassign/gcc_pic/basicassign.bir b/src/test/incorrect/basicassign/gcc_pic/basicassign.bir deleted file mode 100644 index 5e23c9f94..000000000 --- a/src/test/incorrect/basicassign/gcc_pic/basicassign.bir +++ /dev/null @@ -1,251 +0,0 @@ -000006b6: program -00000684: sub __cxa_finalize(__cxa_finalize_result) -000006b7: __cxa_finalize_result :: out u32 = low:32[R0] - -0000040e: -00000506: R16 := 0x10000 -0000050d: R17 := mem[R16 + 0xFA0, el]:u64 -00000513: R16 := R16 + 0xFA0 -00000518: call R17 with noreturn - -00000685: sub __do_global_dtors_aux(__do_global_dtors_aux_result) -000006b8: __do_global_dtors_aux_result :: out u32 = low:32[R0] - -000002c2: -000002c6: #3 := R31 - 0x20 -000002cc: mem := mem with [#3, el]:u64 <- R29 -000002d2: mem := mem with [#3 + 8, el]:u64 <- R30 -000002d6: R31 := #3 -000002dc: R29 := R31 -000002e4: mem := mem with [R31 + 0x10, el]:u64 <- R19 -000002e9: R19 := 0x11000 -000002f0: R0 := pad:64[mem[R19 + 0x10]] -000002f7: when 31:0[R0] <> 0 goto %000002f5 -000006ac: goto %000003d7 - -000003d7: -000003da: R0 := 0x10000 -000003e1: R0 := mem[R0 + 0xFC8, el]:u64 -000003e7: when R0 = 0 goto %000003e5 -000006ad: goto %000003fe - -000003fe: -00000401: R0 := 0x11000 -00000408: R0 := mem[R0 + 8, el]:u64 -0000040d: R30 := 0x730 -00000410: call @__cxa_finalize with return %000003e5 - -000003e5: -000003ed: R30 := 0x734 -000003ef: call @deregister_tm_clones with return %000003f1 - -000003f1: -000003f4: R0 := 1 -000003fc: mem := mem with [R19 + 0x10] <- 7:0[R0] -000006ae: goto %000002f5 - -000002f5: -000002ff: R19 := mem[R31 + 0x10, el]:u64 -00000306: R29 := mem[R31, el]:u64 -0000030b: R30 := mem[R31 + 8, el]:u64 -0000030f: R31 := R31 + 0x20 -00000314: call R30 with noreturn - -00000689: sub __libc_start_main(__libc_start_main_main, __libc_start_main_arg2, __libc_start_main_arg3, __libc_start_main_auxv, __libc_start_main_result) -000006b9: __libc_start_main_main :: in u64 = R0 -000006ba: __libc_start_main_arg2 :: in u32 = low:32[R1] -000006bb: __libc_start_main_arg3 :: in out u64 = R2 -000006bc: __libc_start_main_auxv :: in out u64 = R3 -000006bd: __libc_start_main_result :: out u32 = low:32[R0] - -0000021b: -000004f0: R16 := 0x10000 -000004f7: R17 := mem[R16 + 0xF98, el]:u64 -000004fd: R16 := R16 + 0xF98 -00000502: call R17 with noreturn - -0000068a: sub _fini(_fini_result) -000006be: _fini_result :: out u32 = low:32[R0] - -0000001f: -00000025: #0 := R31 - 0x10 -0000002b: mem := mem with [#0, el]:u64 <- R29 -00000031: mem := mem with [#0 + 8, el]:u64 <- R30 -00000035: R31 := #0 -0000003b: R29 := R31 -00000042: R29 := mem[R31, el]:u64 -00000047: R30 := mem[R31 + 8, el]:u64 -0000004b: R31 := R31 + 0x10 -00000050: call R30 with noreturn - -0000068b: sub _init(_init_result) -000006bf: _init_result :: out u32 = low:32[R0] - -000005c9: -000005cf: #5 := R31 - 0x10 -000005d5: mem := mem with [#5, el]:u64 <- R29 -000005db: mem := mem with [#5 + 8, el]:u64 <- R30 -000005df: R31 := #5 -000005e5: R29 := R31 -000005ea: R30 := 0x5D8 -000005ec: call @call_weak_fn with return %000005ee - -000005ee: -000005f3: R29 := mem[R31, el]:u64 -000005f8: R30 := mem[R31 + 8, el]:u64 -000005fc: R31 := R31 + 0x10 -00000601: call R30 with noreturn - -0000068c: sub _start(_start_result) -000006c0: _start_result :: out u32 = low:32[R0] - -000001dc: -000001e1: R29 := 0 -000001e6: R30 := 0 -000001ec: R5 := R0 -000001f3: R1 := mem[R31, el]:u64 -000001f9: R2 := R31 + 8 -000001ff: R6 := R31 -00000204: R0 := 0x10000 -0000020b: R0 := mem[R0 + 0xFF0, el]:u64 -00000210: R3 := 0 -00000215: R4 := 0 -0000021a: R30 := 0x670 -0000021d: call @__libc_start_main with return %0000021f - -0000021f: -00000222: R30 := 0x674 -00000225: call @abort with return %000006af - -000006af: -000006b0: call @call_weak_fn with noreturn - -0000068f: sub abort() - - -00000223: -00000532: R16 := 0x10000 -00000539: R17 := mem[R16 + 0xFB0, el]:u64 -0000053f: R16 := R16 + 0xFB0 -00000544: call R17 with noreturn - -00000690: sub call_weak_fn(call_weak_fn_result) -000006c1: call_weak_fn_result :: out u32 = low:32[R0] - -00000227: -0000022a: R0 := 0x10000 -00000231: R0 := mem[R0 + 0xFE0, el]:u64 -00000237: when R0 = 0 goto %00000235 -000006b1: goto %0000044e - -00000235: -0000023d: call R30 with noreturn - -0000044e: -00000451: goto @__gmon_start__ - -0000044f: -0000051c: R16 := 0x10000 -00000523: R17 := mem[R16 + 0xFA8, el]:u64 -00000529: R16 := R16 + 0xFA8 -0000052e: call R17 with noreturn - -00000692: sub deregister_tm_clones(deregister_tm_clones_result) -000006c2: deregister_tm_clones_result :: out u32 = low:32[R0] - -00000243: -00000246: R0 := 0x11000 -0000024c: R0 := R0 + 0x10 -00000251: R1 := 0x11000 -00000257: R1 := R1 + 0x10 -0000025d: #1 := ~R0 -00000262: #2 := R1 + ~R0 -00000268: VF := extend:65[#2 + 1] <> extend:65[R1] + extend:65[#1] + 1 -0000026e: CF := pad:65[#2 + 1] <> pad:65[R1] + pad:65[#1] + 1 -00000272: ZF := #2 + 1 = 0 -00000276: NF := 63:63[#2 + 1] -0000027c: when ZF goto %0000027a -000006b2: goto %00000430 - -00000430: -00000433: R1 := 0x10000 -0000043a: R1 := mem[R1 + 0xFC0, el]:u64 -0000043f: when R1 = 0 goto %0000027a -000006b3: goto %00000443 - -0000027a: -00000282: call R30 with noreturn - -00000443: -00000447: R16 := R1 -0000044c: call R16 with noreturn - -00000695: sub frame_dummy(frame_dummy_result) -000006c3: frame_dummy_result :: out u32 = low:32[R0] - -0000031a: -0000031c: call @register_tm_clones with noreturn - -00000696: sub main(main_argc, main_argv, main_result) -000006c4: main_argc :: in u32 = low:32[R0] -000006c5: main_argv :: in out u64 = R1 -000006c6: main_result :: out u32 = low:32[R0] - -0000031e: -00000321: R0 := 0x10000 -00000328: R0 := mem[R0 + 0xFE8, el]:u64 -0000032f: R1 := pad:64[mem[R0, el]:u32] -00000334: R0 := 0x10000 -0000033b: R0 := mem[R0 + 0xFD8, el]:u64 -00000343: mem := mem with [R0, el]:u32 <- 31:0[R1] -00000348: R0 := 0x10000 -0000034f: R0 := mem[R0 + 0xFD8, el]:u64 -00000356: mem := mem with [R0, el]:u32 <- 0 -0000035b: R0 := 0x10000 -00000362: R0 := mem[R0 + 0xFD8, el]:u64 -00000369: R1 := pad:64[mem[R0, el]:u32] -0000036e: R0 := 0x10000 -00000375: R0 := mem[R0 + 0xFD0, el]:u64 -0000037d: mem := mem with [R0, el]:u32 <- 31:0[R1] -00000382: R0 := 0x10000 -00000389: R0 := mem[R0 + 0xFE8, el]:u64 -00000390: R1 := pad:64[mem[R0, el]:u32] -00000395: R0 := 0x10000 -0000039c: R0 := mem[R0 + 0xFD8, el]:u64 -000003a4: mem := mem with [R0, el]:u32 <- 31:0[R1] -000003a9: R0 := 0x10000 -000003b0: R0 := mem[R0 + 0xFD8, el]:u64 -000003b7: R1 := pad:64[mem[R0, el]:u32] -000003bc: R0 := 0x10000 -000003c3: R0 := mem[R0 + 0xFD0, el]:u64 -000003cb: mem := mem with [R0, el]:u32 <- 31:0[R1] -000003d0: R0 := 0 -000003d5: call R30 with noreturn - -00000697: sub register_tm_clones(register_tm_clones_result) -000006c7: register_tm_clones_result :: out u32 = low:32[R0] - -00000284: -00000287: R0 := 0x11000 -0000028d: R0 := R0 + 0x10 -00000292: R1 := 0x11000 -00000298: R1 := R1 + 0x10 -0000029f: R1 := R1 + ~R0 + 1 -000002a5: R2 := 0.63:63[R1] -000002ac: R1 := R2 + (R1 ~>> 3) -000002b2: R1 := extend:64[63:1[R1]] -000002b8: when R1 = 0 goto %000002b6 -000006b4: goto %00000412 - -00000412: -00000415: R2 := 0x10000 -0000041c: R2 := mem[R2 + 0xFF8, el]:u64 -00000421: when R2 = 0 goto %000002b6 -000006b5: goto %00000425 - -000002b6: -000002be: call R30 with noreturn - -00000425: -00000429: R16 := R2 -0000042e: call R16 with noreturn diff --git a/src/test/incorrect/basicassign/gcc_pic/basicassign.expected b/src/test/incorrect/basicassign/gcc_pic/basicassign.expected index 8e0ba2309..f56b0d923 100644 --- a/src/test/incorrect/basicassign/gcc_pic/basicassign.expected +++ b/src/test/incorrect/basicassign/gcc_pic/basicassign.expected @@ -1,15 +1,19 @@ var {:extern} Gamma_R0: bool; var {:extern} Gamma_R1: bool; +var {:extern} Gamma_R2: bool; +var {:extern} Gamma_R3: bool; var {:extern} Gamma_mem: [bv64]bool; var {:extern} R0: bv64; var {:extern} R1: bv64; +var {:extern} R2: bv64; +var {:extern} R3: bv64; var {:extern} mem: [bv64]bv8; const {:extern} $secret_addr: bv64; -axiom ($secret_addr == 69660bv64); +axiom ($secret_addr == 4325396bv64); const {:extern} $x_addr: bv64; -axiom ($x_addr == 69652bv64); +axiom ($x_addr == 4325404bv64); const {:extern} $z_addr: bv64; -axiom ($z_addr == 69656bv64); +axiom ($z_addr == 4325400bv64); function {:extern} L(mem$in: [bv64]bv8, index: bv64) returns (bool) { (if (index == $z_addr) then true else (if (index == $secret_addr) then false else (if (index == $x_addr) then false else false))) } @@ -44,14 +48,7 @@ procedure {:extern} rely(); modifies Gamma_mem, mem; ensures (forall i: bv64 :: (((mem[i] == old(mem[i])) ==> (Gamma_mem[i] == old(Gamma_mem[i]))))); ensures (memory_load32_le(mem, $x_addr) == old(memory_load32_le(mem, $x_addr))); - free ensures (memory_load32_le(mem, 2012bv64) == 131073bv32); - free ensures (memory_load64_le(mem, 68992bv64) == 1872bv64); - free ensures (memory_load64_le(mem, 69000bv64) == 1792bv64); - free ensures (memory_load64_le(mem, 69584bv64) == 69656bv64); - free ensures (memory_load64_le(mem, 69592bv64) == 69652bv64); - free ensures (memory_load64_le(mem, 69608bv64) == 69660bv64); - free ensures (memory_load64_le(mem, 69616bv64) == 1876bv64); - free ensures (memory_load64_le(mem, 69640bv64) == 69640bv64); + free ensures (memory_load32_le(mem, 4196312bv64) == 131073bv32); procedure {:extern} rely_transitive(); modifies Gamma_mem, mem; @@ -73,129 +70,50 @@ implementation {:extern} rely_reflexive() procedure {:extern} guarantee_reflexive(); modifies Gamma_mem, mem; -procedure main_1876(); - modifies Gamma_R0, Gamma_R1, Gamma_mem, R0, R1, mem; - free requires (memory_load64_le(mem, 69632bv64) == 0bv64); - free requires (memory_load64_le(mem, 69640bv64) == 69640bv64); - free requires (memory_load32_le(mem, 2012bv64) == 131073bv32); - free requires (memory_load64_le(mem, 68992bv64) == 1872bv64); - free requires (memory_load64_le(mem, 69000bv64) == 1792bv64); - free requires (memory_load64_le(mem, 69584bv64) == 69656bv64); - free requires (memory_load64_le(mem, 69592bv64) == 69652bv64); - free requires (memory_load64_le(mem, 69608bv64) == 69660bv64); - free requires (memory_load64_le(mem, 69616bv64) == 1876bv64); - free requires (memory_load64_le(mem, 69640bv64) == 69640bv64); - free ensures (memory_load32_le(mem, 2012bv64) == 131073bv32); - free ensures (memory_load64_le(mem, 68992bv64) == 1872bv64); - free ensures (memory_load64_le(mem, 69000bv64) == 1792bv64); - free ensures (memory_load64_le(mem, 69584bv64) == 69656bv64); - free ensures (memory_load64_le(mem, 69592bv64) == 69652bv64); - free ensures (memory_load64_le(mem, 69608bv64) == 69660bv64); - free ensures (memory_load64_le(mem, 69616bv64) == 1876bv64); - free ensures (memory_load64_le(mem, 69640bv64) == 69640bv64); +procedure main(); + modifies Gamma_R0, Gamma_R1, Gamma_R2, Gamma_R3, Gamma_mem, R0, R1, R2, R3, mem; + free requires (memory_load64_le(mem, 4325376bv64) == 0bv64); + free requires (memory_load64_le(mem, 4325384bv64) == 0bv64); + free requires (memory_load32_le(mem, 4196312bv64) == 131073bv32); + free ensures (memory_load32_le(mem, 4196312bv64) == 131073bv32); -implementation main_1876() +implementation main() { - var Gamma_load18: bool; - var Gamma_load19: bool; - var Gamma_load20: bool; - var Gamma_load21: bool; - var Gamma_load22: bool; - var Gamma_load23: bool; - var Gamma_load24: bool; - var Gamma_load25: bool; - var Gamma_load26: bool; - var Gamma_load27: bool; - var Gamma_load28: bool; - var Gamma_load29: bool; - var Gamma_load30: bool; - var load18: bv64; - var load19: bv32; - var load20: bv64; - var load21: bv64; - var load22: bv64; - var load23: bv32; - var load24: bv64; - var load25: bv64; - var load26: bv32; - var load27: bv64; - var load28: bv64; - var load29: bv32; - var load30: bv64; + var $load$14: bv64; + var $load$15: bv64; + var $load$16: bv64; + var $load$17: bv32; + var Gamma_$load$14: bool; + var Gamma_$load$15: bool; + var Gamma_$load$16: bool; + var Gamma_$load$17: bool; lmain: assume {:captureState "lmain"} true; - R0, Gamma_R0 := 65536bv64, true; - call rely(); - load18, Gamma_load18 := memory_load64_le(mem, bvadd64(R0, 4072bv64)), (gamma_load64(Gamma_mem, bvadd64(R0, 4072bv64)) || L(mem, bvadd64(R0, 4072bv64))); - R0, Gamma_R0 := load18, Gamma_load18; - call rely(); - load19, Gamma_load19 := memory_load32_le(mem, R0), (gamma_load32(Gamma_mem, R0) || L(mem, R0)); - R1, Gamma_R1 := zero_extend32_32(load19), Gamma_load19; - R0, Gamma_R0 := 65536bv64, true; - call rely(); - load20, Gamma_load20 := memory_load64_le(mem, bvadd64(R0, 4056bv64)), (gamma_load64(Gamma_mem, bvadd64(R0, 4056bv64)) || L(mem, bvadd64(R0, 4056bv64))); - R0, Gamma_R0 := load20, Gamma_load20; - call rely(); - assert (L(mem, R0) ==> Gamma_R1); - mem, Gamma_mem := memory_store32_le(mem, R0, R1[32:0]), gamma_store32(Gamma_mem, R0, Gamma_R1); - assume {:captureState "%00000343"} true; - R0, Gamma_R0 := 65536bv64, true; - call rely(); - load21, Gamma_load21 := memory_load64_le(mem, bvadd64(R0, 4056bv64)), (gamma_load64(Gamma_mem, bvadd64(R0, 4056bv64)) || L(mem, bvadd64(R0, 4056bv64))); - R0, Gamma_R0 := load21, Gamma_load21; - call rely(); - assert (L(mem, R0) ==> true); - mem, Gamma_mem := memory_store32_le(mem, R0, 0bv32), gamma_store32(Gamma_mem, R0, true); - assume {:captureState "%00000356"} true; - R0, Gamma_R0 := 65536bv64, true; - call rely(); - load22, Gamma_load22 := memory_load64_le(mem, bvadd64(R0, 4056bv64)), (gamma_load64(Gamma_mem, bvadd64(R0, 4056bv64)) || L(mem, bvadd64(R0, 4056bv64))); - R0, Gamma_R0 := load22, Gamma_load22; - call rely(); - load23, Gamma_load23 := memory_load32_le(mem, R0), (gamma_load32(Gamma_mem, R0) || L(mem, R0)); - R1, Gamma_R1 := zero_extend32_32(load23), Gamma_load23; - R0, Gamma_R0 := 65536bv64, true; - call rely(); - load24, Gamma_load24 := memory_load64_le(mem, bvadd64(R0, 4048bv64)), (gamma_load64(Gamma_mem, bvadd64(R0, 4048bv64)) || L(mem, bvadd64(R0, 4048bv64))); - R0, Gamma_R0 := load24, Gamma_load24; - call rely(); - assert (L(mem, R0) ==> Gamma_R1); - mem, Gamma_mem := memory_store32_le(mem, R0, R1[32:0]), gamma_store32(Gamma_mem, R0, Gamma_R1); - assume {:captureState "%0000037d"} true; - R0, Gamma_R0 := 65536bv64, true; - call rely(); - load25, Gamma_load25 := memory_load64_le(mem, bvadd64(R0, 4072bv64)), (gamma_load64(Gamma_mem, bvadd64(R0, 4072bv64)) || L(mem, bvadd64(R0, 4072bv64))); - R0, Gamma_R0 := load25, Gamma_load25; - call rely(); - load26, Gamma_load26 := memory_load32_le(mem, R0), (gamma_load32(Gamma_mem, R0) || L(mem, R0)); - R1, Gamma_R1 := zero_extend32_32(load26), Gamma_load26; - R0, Gamma_R0 := 65536bv64, true; + R1, Gamma_R1 := 4321280bv64, true; + R0, Gamma_R0 := 0bv64, true; call rely(); - load27, Gamma_load27 := memory_load64_le(mem, bvadd64(R0, 4056bv64)), (gamma_load64(Gamma_mem, bvadd64(R0, 4056bv64)) || L(mem, bvadd64(R0, 4056bv64))); - R0, Gamma_R0 := load27, Gamma_load27; + $load$14, Gamma_$load$14 := memory_load64_le(mem, bvadd64(R1, 4080bv64)), (gamma_load64(Gamma_mem, bvadd64(R1, 4080bv64)) || L(mem, bvadd64(R1, 4080bv64))); + R2, Gamma_R2 := $load$14, Gamma_$load$14; call rely(); - assert (L(mem, R0) ==> Gamma_R1); - mem, Gamma_mem := memory_store32_le(mem, R0, R1[32:0]), gamma_store32(Gamma_mem, R0, Gamma_R1); - assume {:captureState "%000003a4"} true; - R0, Gamma_R0 := 65536bv64, true; + $load$15, Gamma_$load$15 := memory_load64_le(mem, bvadd64(R1, 4064bv64)), (gamma_load64(Gamma_mem, bvadd64(R1, 4064bv64)) || L(mem, bvadd64(R1, 4064bv64))); + R3, Gamma_R3 := $load$15, Gamma_$load$15; call rely(); - load28, Gamma_load28 := memory_load64_le(mem, bvadd64(R0, 4056bv64)), (gamma_load64(Gamma_mem, bvadd64(R0, 4056bv64)) || L(mem, bvadd64(R0, 4056bv64))); - R0, Gamma_R0 := load28, Gamma_load28; + $load$16, Gamma_$load$16 := memory_load64_le(mem, bvadd64(R1, 4056bv64)), (gamma_load64(Gamma_mem, bvadd64(R1, 4056bv64)) || L(mem, bvadd64(R1, 4056bv64))); + R1, Gamma_R1 := $load$16, Gamma_$load$16; call rely(); - load29, Gamma_load29 := memory_load32_le(mem, R0), (gamma_load32(Gamma_mem, R0) || L(mem, R0)); - R1, Gamma_R1 := zero_extend32_32(load29), Gamma_load29; - R0, Gamma_R0 := 65536bv64, true; + $load$17, Gamma_$load$17 := memory_load32_le(mem, R2), (gamma_load32(Gamma_mem, R2) || L(mem, R2)); + R2, Gamma_R2 := zero_extend32_32($load$17), Gamma_$load$17; call rely(); - load30, Gamma_load30 := memory_load64_le(mem, bvadd64(R0, 4048bv64)), (gamma_load64(Gamma_mem, bvadd64(R0, 4048bv64)) || L(mem, bvadd64(R0, 4048bv64))); - R0, Gamma_R0 := load30, Gamma_load30; + assert (L(mem, R3) ==> Gamma_R2); + mem, Gamma_mem := memory_store32_le(mem, R3, R2[32:0]), gamma_store32(Gamma_mem, R3, Gamma_R2); + assume {:captureState "%00000260"} true; call rely(); - assert (L(mem, R0) ==> Gamma_R1); - mem, Gamma_mem := memory_store32_le(mem, R0, R1[32:0]), gamma_store32(Gamma_mem, R0, Gamma_R1); - assume {:captureState "%000003cb"} true; - R0, Gamma_R0 := 0bv64, true; - goto main_1876_basil_return; - main_1876_basil_return: - assume {:captureState "main_1876_basil_return"} true; + assert (L(mem, R1) ==> Gamma_R2); + mem, Gamma_mem := memory_store32_le(mem, R1, R2[32:0]), gamma_store32(Gamma_mem, R1, Gamma_R2); + assume {:captureState "%00000264"} true; + goto main_basil_return; + main_basil_return: + assume {:captureState "main_basil_return"} true; return; } diff --git a/src/test/incorrect/basicassign/gcc_pic/basicassign.gts b/src/test/incorrect/basicassign/gcc_pic/basicassign.gts deleted file mode 100644 index 9ad724ca5..000000000 Binary files a/src/test/incorrect/basicassign/gcc_pic/basicassign.gts and /dev/null differ diff --git a/src/test/incorrect/basicassign/gcc_pic/basicassign.md5sum b/src/test/incorrect/basicassign/gcc_pic/basicassign.md5sum new file mode 100644 index 000000000..fbbe91c60 --- /dev/null +++ b/src/test/incorrect/basicassign/gcc_pic/basicassign.md5sum @@ -0,0 +1,5 @@ +96b387f13285e2b53b1d672abc14018d incorrect/basicassign/gcc_pic/a.out +fe965850ec5ad321a44e1405b0243c23 incorrect/basicassign/gcc_pic/basicassign.adt +2c216e83502f20c46b0882eaaf14ba5e incorrect/basicassign/gcc_pic/basicassign.bir +05ca6a8d30903467cf0acde35fa07a4e incorrect/basicassign/gcc_pic/basicassign.relf +440ffc9ae76bedb02135e93ef792eab1 incorrect/basicassign/gcc_pic/basicassign.gts diff --git a/src/test/incorrect/basicassign/gcc_pic/basicassign.relf b/src/test/incorrect/basicassign/gcc_pic/basicassign.relf deleted file mode 100644 index e23913a7f..000000000 --- a/src/test/incorrect/basicassign/gcc_pic/basicassign.relf +++ /dev/null @@ -1,126 +0,0 @@ - -Relocation section '.rela.dyn' at offset 0x460 contains 11 entries: - Offset Info Type Symbol's Value Symbol's Name + Addend -0000000000010d80 0000000000000403 R_AARCH64_RELATIVE 750 -0000000000010d88 0000000000000403 R_AARCH64_RELATIVE 700 -0000000000010fd0 0000000000000403 R_AARCH64_RELATIVE 11018 -0000000000010fd8 0000000000000403 R_AARCH64_RELATIVE 11014 -0000000000010fe8 0000000000000403 R_AARCH64_RELATIVE 1101c -0000000000010ff0 0000000000000403 R_AARCH64_RELATIVE 754 -0000000000011008 0000000000000403 R_AARCH64_RELATIVE 11008 -0000000000010fc0 0000000400000401 R_AARCH64_GLOB_DAT 0000000000000000 _ITM_deregisterTMCloneTable + 0 -0000000000010fc8 0000000500000401 R_AARCH64_GLOB_DAT 0000000000000000 __cxa_finalize@GLIBC_2.17 + 0 -0000000000010fe0 0000000600000401 R_AARCH64_GLOB_DAT 0000000000000000 __gmon_start__ + 0 -0000000000010ff8 0000000800000401 R_AARCH64_GLOB_DAT 0000000000000000 _ITM_registerTMCloneTable + 0 - -Relocation section '.rela.plt' at offset 0x568 contains 4 entries: - Offset Info Type Symbol's Value Symbol's Name + Addend -0000000000010f98 0000000300000402 R_AARCH64_JUMP_SLOT 0000000000000000 __libc_start_main@GLIBC_2.34 + 0 -0000000000010fa0 0000000500000402 R_AARCH64_JUMP_SLOT 0000000000000000 __cxa_finalize@GLIBC_2.17 + 0 -0000000000010fa8 0000000600000402 R_AARCH64_JUMP_SLOT 0000000000000000 __gmon_start__ + 0 -0000000000010fb0 0000000700000402 R_AARCH64_JUMP_SLOT 0000000000000000 abort@GLIBC_2.17 + 0 - -Symbol table '.dynsym' contains 9 entries: - Num: Value Size Type Bind Vis Ndx Name - 0: 0000000000000000 0 NOTYPE LOCAL DEFAULT UND - 1: 00000000000005c8 0 SECTION LOCAL DEFAULT 11 .init - 2: 0000000000011000 0 SECTION LOCAL DEFAULT 22 .data - 3: 0000000000000000 0 FUNC GLOBAL DEFAULT UND __libc_start_main@GLIBC_2.34 (2) - 4: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_deregisterTMCloneTable - 5: 0000000000000000 0 FUNC WEAK DEFAULT UND __cxa_finalize@GLIBC_2.17 (3) - 6: 0000000000000000 0 NOTYPE WEAK DEFAULT UND __gmon_start__ - 7: 0000000000000000 0 FUNC GLOBAL DEFAULT UND abort@GLIBC_2.17 (3) - 8: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_registerTMCloneTable - -Symbol table '.symtab' contains 90 entries: - Num: Value Size Type Bind Vis Ndx Name - 0: 0000000000000000 0 NOTYPE LOCAL DEFAULT UND - 1: 0000000000000238 0 SECTION LOCAL DEFAULT 1 .interp - 2: 0000000000000254 0 SECTION LOCAL DEFAULT 2 .note.gnu.build-id - 3: 0000000000000278 0 SECTION LOCAL DEFAULT 3 .note.ABI-tag - 4: 0000000000000298 0 SECTION LOCAL DEFAULT 4 .gnu.hash - 5: 00000000000002b8 0 SECTION LOCAL DEFAULT 5 .dynsym - 6: 0000000000000390 0 SECTION LOCAL DEFAULT 6 .dynstr - 7: 000000000000041e 0 SECTION LOCAL DEFAULT 7 .gnu.version - 8: 0000000000000430 0 SECTION LOCAL DEFAULT 8 .gnu.version_r - 9: 0000000000000460 0 SECTION LOCAL DEFAULT 9 .rela.dyn - 10: 0000000000000568 0 SECTION LOCAL DEFAULT 10 .rela.plt - 11: 00000000000005c8 0 SECTION LOCAL DEFAULT 11 .init - 12: 00000000000005e0 0 SECTION LOCAL DEFAULT 12 .plt - 13: 0000000000000640 0 SECTION LOCAL DEFAULT 13 .text - 14: 00000000000007c8 0 SECTION LOCAL DEFAULT 14 .fini - 15: 00000000000007dc 0 SECTION LOCAL DEFAULT 15 .rodata - 16: 00000000000007e0 0 SECTION LOCAL DEFAULT 16 .eh_frame_hdr - 17: 0000000000000820 0 SECTION LOCAL DEFAULT 17 .eh_frame - 18: 0000000000010d80 0 SECTION LOCAL DEFAULT 18 .init_array - 19: 0000000000010d88 0 SECTION LOCAL DEFAULT 19 .fini_array - 20: 0000000000010d90 0 SECTION LOCAL DEFAULT 20 .dynamic - 21: 0000000000010f80 0 SECTION LOCAL DEFAULT 21 .got - 22: 0000000000011000 0 SECTION LOCAL DEFAULT 22 .data - 23: 0000000000011010 0 SECTION LOCAL DEFAULT 23 .bss - 24: 0000000000000000 0 SECTION LOCAL DEFAULT 24 .comment - 25: 0000000000000000 0 FILE LOCAL DEFAULT ABS Scrt1.o - 26: 0000000000000278 0 NOTYPE LOCAL DEFAULT 3 $d - 27: 0000000000000278 32 OBJECT LOCAL DEFAULT 3 __abi_tag - 28: 0000000000000640 0 NOTYPE LOCAL DEFAULT 13 $x - 29: 0000000000000834 0 NOTYPE LOCAL DEFAULT 17 $d - 30: 00000000000007dc 0 NOTYPE LOCAL DEFAULT 15 $d - 31: 0000000000000000 0 FILE LOCAL DEFAULT ABS crti.o - 32: 0000000000000674 0 NOTYPE LOCAL DEFAULT 13 $x - 33: 0000000000000674 20 FUNC LOCAL DEFAULT 13 call_weak_fn - 34: 00000000000005c8 0 NOTYPE LOCAL DEFAULT 11 $x - 35: 00000000000007c8 0 NOTYPE LOCAL DEFAULT 14 $x - 36: 0000000000000000 0 FILE LOCAL DEFAULT ABS crtn.o - 37: 00000000000005d8 0 NOTYPE LOCAL DEFAULT 11 $x - 38: 00000000000007d4 0 NOTYPE LOCAL DEFAULT 14 $x - 39: 0000000000000000 0 FILE LOCAL DEFAULT ABS crtstuff.c - 40: 0000000000000690 0 NOTYPE LOCAL DEFAULT 13 $x - 41: 0000000000000690 0 FUNC LOCAL DEFAULT 13 deregister_tm_clones - 42: 00000000000006c0 0 FUNC LOCAL DEFAULT 13 register_tm_clones - 43: 0000000000011008 0 NOTYPE LOCAL DEFAULT 22 $d - 44: 0000000000000700 0 FUNC LOCAL DEFAULT 13 __do_global_dtors_aux - 45: 0000000000011010 1 OBJECT LOCAL DEFAULT 23 completed.0 - 46: 0000000000010d88 0 NOTYPE LOCAL DEFAULT 19 $d - 47: 0000000000010d88 0 OBJECT LOCAL DEFAULT 19 __do_global_dtors_aux_fini_array_entry - 48: 0000000000000750 0 FUNC LOCAL DEFAULT 13 frame_dummy - 49: 0000000000010d80 0 NOTYPE LOCAL DEFAULT 18 $d - 50: 0000000000010d80 0 OBJECT LOCAL DEFAULT 18 __frame_dummy_init_array_entry - 51: 0000000000000848 0 NOTYPE LOCAL DEFAULT 17 $d - 52: 0000000000011010 0 NOTYPE LOCAL DEFAULT 23 $d - 53: 0000000000000000 0 FILE LOCAL DEFAULT ABS basicassign.c - 54: 0000000000011014 0 NOTYPE LOCAL DEFAULT 23 $d - 55: 0000000000000754 0 NOTYPE LOCAL DEFAULT 13 $x - 56: 00000000000008a8 0 NOTYPE LOCAL DEFAULT 17 $d - 57: 0000000000000000 0 FILE LOCAL DEFAULT ABS crtstuff.c - 58: 00000000000008bc 0 NOTYPE LOCAL DEFAULT 17 $d - 59: 00000000000008bc 0 OBJECT LOCAL DEFAULT 17 __FRAME_END__ - 60: 0000000000000000 0 FILE LOCAL DEFAULT ABS - 61: 0000000000010d90 0 OBJECT LOCAL DEFAULT ABS _DYNAMIC - 62: 00000000000007e0 0 NOTYPE LOCAL DEFAULT 16 __GNU_EH_FRAME_HDR - 63: 0000000000010fb8 0 OBJECT LOCAL DEFAULT ABS _GLOBAL_OFFSET_TABLE_ - 64: 00000000000005e0 0 NOTYPE LOCAL DEFAULT 12 $x - 65: 0000000000000000 0 FUNC GLOBAL DEFAULT UND __libc_start_main@GLIBC_2.34 - 66: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_deregisterTMCloneTable - 67: 0000000000011000 0 NOTYPE WEAK DEFAULT 22 data_start - 68: 0000000000011010 0 NOTYPE GLOBAL DEFAULT 23 __bss_start__ - 69: 0000000000000000 0 FUNC WEAK DEFAULT UND __cxa_finalize@GLIBC_2.17 - 70: 0000000000011020 0 NOTYPE GLOBAL DEFAULT 23 _bss_end__ - 71: 0000000000011010 0 NOTYPE GLOBAL DEFAULT 22 _edata - 72: 0000000000011018 4 OBJECT GLOBAL DEFAULT 23 z - 73: 0000000000011014 4 OBJECT GLOBAL DEFAULT 23 x - 74: 00000000000007c8 0 FUNC GLOBAL HIDDEN 14 _fini - 75: 0000000000011020 0 NOTYPE GLOBAL DEFAULT 23 __bss_end__ - 76: 0000000000011000 0 NOTYPE GLOBAL DEFAULT 22 __data_start - 77: 0000000000000000 0 NOTYPE WEAK DEFAULT UND __gmon_start__ - 78: 0000000000011008 0 OBJECT GLOBAL HIDDEN 22 __dso_handle - 79: 0000000000000000 0 FUNC GLOBAL DEFAULT UND abort@GLIBC_2.17 - 80: 00000000000007dc 4 OBJECT GLOBAL DEFAULT 15 _IO_stdin_used - 81: 000000000001101c 4 OBJECT GLOBAL DEFAULT 23 secret - 82: 0000000000011020 0 NOTYPE GLOBAL DEFAULT 23 _end - 83: 0000000000000640 52 FUNC GLOBAL DEFAULT 13 _start - 84: 0000000000011020 0 NOTYPE GLOBAL DEFAULT 23 __end__ - 85: 0000000000011010 0 NOTYPE GLOBAL DEFAULT 23 __bss_start - 86: 0000000000000754 116 FUNC GLOBAL DEFAULT 13 main - 87: 0000000000011010 0 OBJECT GLOBAL HIDDEN 22 __TMC_END__ - 88: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_registerTMCloneTable - 89: 00000000000005c8 0 FUNC GLOBAL HIDDEN 11 _init diff --git a/src/test/incorrect/basicassign/gcc_pic/basicassign_gtirb.expected b/src/test/incorrect/basicassign/gcc_pic/basicassign_gtirb.expected index 820765137..bf7e6c236 100644 --- a/src/test/incorrect/basicassign/gcc_pic/basicassign_gtirb.expected +++ b/src/test/incorrect/basicassign/gcc_pic/basicassign_gtirb.expected @@ -1,15 +1,19 @@ var {:extern} Gamma_R0: bool; var {:extern} Gamma_R1: bool; +var {:extern} Gamma_R2: bool; +var {:extern} Gamma_R3: bool; var {:extern} Gamma_mem: [bv64]bool; var {:extern} R0: bv64; var {:extern} R1: bv64; +var {:extern} R2: bv64; +var {:extern} R3: bv64; var {:extern} mem: [bv64]bv8; const {:extern} $secret_addr: bv64; -axiom ($secret_addr == 69660bv64); +axiom ($secret_addr == 4325396bv64); const {:extern} $x_addr: bv64; -axiom ($x_addr == 69652bv64); +axiom ($x_addr == 4325404bv64); const {:extern} $z_addr: bv64; -axiom ($z_addr == 69656bv64); +axiom ($z_addr == 4325400bv64); function {:extern} L(mem$in: [bv64]bv8, index: bv64) returns (bool) { (if (index == $z_addr) then true else (if (index == $secret_addr) then false else (if (index == $x_addr) then false else false))) } @@ -44,14 +48,7 @@ procedure {:extern} rely(); modifies Gamma_mem, mem; ensures (forall i: bv64 :: (((mem[i] == old(mem[i])) ==> (Gamma_mem[i] == old(Gamma_mem[i]))))); ensures (memory_load32_le(mem, $x_addr) == old(memory_load32_le(mem, $x_addr))); - free ensures (memory_load32_le(mem, 2012bv64) == 131073bv32); - free ensures (memory_load64_le(mem, 68992bv64) == 1872bv64); - free ensures (memory_load64_le(mem, 69000bv64) == 1792bv64); - free ensures (memory_load64_le(mem, 69584bv64) == 69656bv64); - free ensures (memory_load64_le(mem, 69592bv64) == 69652bv64); - free ensures (memory_load64_le(mem, 69608bv64) == 69660bv64); - free ensures (memory_load64_le(mem, 69616bv64) == 1876bv64); - free ensures (memory_load64_le(mem, 69640bv64) == 69640bv64); + free ensures (memory_load32_le(mem, 4196312bv64) == 131073bv32); procedure {:extern} rely_transitive(); modifies Gamma_mem, mem; @@ -73,129 +70,50 @@ implementation {:extern} rely_reflexive() procedure {:extern} guarantee_reflexive(); modifies Gamma_mem, mem; -procedure main_1876(); - modifies Gamma_R0, Gamma_R1, Gamma_mem, R0, R1, mem; - free requires (memory_load64_le(mem, 69632bv64) == 0bv64); - free requires (memory_load64_le(mem, 69640bv64) == 69640bv64); - free requires (memory_load32_le(mem, 2012bv64) == 131073bv32); - free requires (memory_load64_le(mem, 68992bv64) == 1872bv64); - free requires (memory_load64_le(mem, 69000bv64) == 1792bv64); - free requires (memory_load64_le(mem, 69584bv64) == 69656bv64); - free requires (memory_load64_le(mem, 69592bv64) == 69652bv64); - free requires (memory_load64_le(mem, 69608bv64) == 69660bv64); - free requires (memory_load64_le(mem, 69616bv64) == 1876bv64); - free requires (memory_load64_le(mem, 69640bv64) == 69640bv64); - free ensures (memory_load32_le(mem, 2012bv64) == 131073bv32); - free ensures (memory_load64_le(mem, 68992bv64) == 1872bv64); - free ensures (memory_load64_le(mem, 69000bv64) == 1792bv64); - free ensures (memory_load64_le(mem, 69584bv64) == 69656bv64); - free ensures (memory_load64_le(mem, 69592bv64) == 69652bv64); - free ensures (memory_load64_le(mem, 69608bv64) == 69660bv64); - free ensures (memory_load64_le(mem, 69616bv64) == 1876bv64); - free ensures (memory_load64_le(mem, 69640bv64) == 69640bv64); +procedure main(); + modifies Gamma_R0, Gamma_R1, Gamma_R2, Gamma_R3, Gamma_mem, R0, R1, R2, R3, mem; + free requires (memory_load64_le(mem, 4325376bv64) == 0bv64); + free requires (memory_load64_le(mem, 4325384bv64) == 0bv64); + free requires (memory_load32_le(mem, 4196312bv64) == 131073bv32); + free ensures (memory_load32_le(mem, 4196312bv64) == 131073bv32); -implementation main_1876() +implementation main() { - var Gamma_load10: bool; - var Gamma_load11: bool; - var Gamma_load12: bool; - var Gamma_load13: bool; - var Gamma_load14: bool; - var Gamma_load15: bool; - var Gamma_load3: bool; - var Gamma_load4: bool; - var Gamma_load5: bool; - var Gamma_load6: bool; - var Gamma_load7: bool; - var Gamma_load8: bool; - var Gamma_load9: bool; - var load10: bv64; - var load11: bv32; - var load12: bv64; - var load13: bv64; - var load14: bv32; - var load15: bv64; - var load3: bv64; - var load4: bv32; - var load5: bv64; - var load6: bv64; - var load7: bv64; - var load8: bv32; - var load9: bv64; - main_1876__0__yYC26iBgTbWc565tG_Ztxg: - assume {:captureState "main_1876__0__yYC26iBgTbWc565tG_Ztxg"} true; - R0, Gamma_R0 := 65536bv64, true; - call rely(); - load3, Gamma_load3 := memory_load64_le(mem, bvadd64(R0, 4072bv64)), (gamma_load64(Gamma_mem, bvadd64(R0, 4072bv64)) || L(mem, bvadd64(R0, 4072bv64))); - R0, Gamma_R0 := load3, Gamma_load3; - call rely(); - load4, Gamma_load4 := memory_load32_le(mem, R0), (gamma_load32(Gamma_mem, R0) || L(mem, R0)); - R1, Gamma_R1 := zero_extend32_32(load4), Gamma_load4; - R0, Gamma_R0 := 65536bv64, true; - call rely(); - load5, Gamma_load5 := memory_load64_le(mem, bvadd64(R0, 4056bv64)), (gamma_load64(Gamma_mem, bvadd64(R0, 4056bv64)) || L(mem, bvadd64(R0, 4056bv64))); - R0, Gamma_R0 := load5, Gamma_load5; - call rely(); - assert (L(mem, R0) ==> Gamma_R1); - mem, Gamma_mem := memory_store32_le(mem, R0, R1[32:0]), gamma_store32(Gamma_mem, R0, Gamma_R1); - assume {:captureState "1896_0"} true; - R0, Gamma_R0 := 65536bv64, true; - call rely(); - load6, Gamma_load6 := memory_load64_le(mem, bvadd64(R0, 4056bv64)), (gamma_load64(Gamma_mem, bvadd64(R0, 4056bv64)) || L(mem, bvadd64(R0, 4056bv64))); - R0, Gamma_R0 := load6, Gamma_load6; - call rely(); - assert (L(mem, R0) ==> true); - mem, Gamma_mem := memory_store32_le(mem, R0, 0bv32), gamma_store32(Gamma_mem, R0, true); - assume {:captureState "1908_0"} true; - R0, Gamma_R0 := 65536bv64, true; - call rely(); - load7, Gamma_load7 := memory_load64_le(mem, bvadd64(R0, 4056bv64)), (gamma_load64(Gamma_mem, bvadd64(R0, 4056bv64)) || L(mem, bvadd64(R0, 4056bv64))); - R0, Gamma_R0 := load7, Gamma_load7; - call rely(); - load8, Gamma_load8 := memory_load32_le(mem, R0), (gamma_load32(Gamma_mem, R0) || L(mem, R0)); - R1, Gamma_R1 := zero_extend32_32(load8), Gamma_load8; - R0, Gamma_R0 := 65536bv64, true; - call rely(); - load9, Gamma_load9 := memory_load64_le(mem, bvadd64(R0, 4048bv64)), (gamma_load64(Gamma_mem, bvadd64(R0, 4048bv64)) || L(mem, bvadd64(R0, 4048bv64))); - R0, Gamma_R0 := load9, Gamma_load9; - call rely(); - assert (L(mem, R0) ==> Gamma_R1); - mem, Gamma_mem := memory_store32_le(mem, R0, R1[32:0]), gamma_store32(Gamma_mem, R0, Gamma_R1); - assume {:captureState "1932_0"} true; - R0, Gamma_R0 := 65536bv64, true; - call rely(); - load10, Gamma_load10 := memory_load64_le(mem, bvadd64(R0, 4072bv64)), (gamma_load64(Gamma_mem, bvadd64(R0, 4072bv64)) || L(mem, bvadd64(R0, 4072bv64))); - R0, Gamma_R0 := load10, Gamma_load10; - call rely(); - load11, Gamma_load11 := memory_load32_le(mem, R0), (gamma_load32(Gamma_mem, R0) || L(mem, R0)); - R1, Gamma_R1 := zero_extend32_32(load11), Gamma_load11; - R0, Gamma_R0 := 65536bv64, true; + var $load6: bv64; + var $load7: bv64; + var $load8: bv64; + var $load9: bv32; + var Gamma_$load6: bool; + var Gamma_$load7: bool; + var Gamma_$load8: bool; + var Gamma_$load9: bool; + $main$__0__$xdHqi8HzTJ~zBYVemlzAtg: + assume {:captureState "$main$__0__$xdHqi8HzTJ~zBYVemlzAtg"} true; + R1, Gamma_R1 := 4321280bv64, true; + R0, Gamma_R0 := 0bv64, true; call rely(); - load12, Gamma_load12 := memory_load64_le(mem, bvadd64(R0, 4056bv64)), (gamma_load64(Gamma_mem, bvadd64(R0, 4056bv64)) || L(mem, bvadd64(R0, 4056bv64))); - R0, Gamma_R0 := load12, Gamma_load12; + $load6, Gamma_$load6 := memory_load64_le(mem, bvadd64(R1, 4080bv64)), (gamma_load64(Gamma_mem, bvadd64(R1, 4080bv64)) || L(mem, bvadd64(R1, 4080bv64))); + R2, Gamma_R2 := $load6, Gamma_$load6; call rely(); - assert (L(mem, R0) ==> Gamma_R1); - mem, Gamma_mem := memory_store32_le(mem, R0, R1[32:0]), gamma_store32(Gamma_mem, R0, Gamma_R1); - assume {:captureState "1956_0"} true; - R0, Gamma_R0 := 65536bv64, true; + $load7, Gamma_$load7 := memory_load64_le(mem, bvadd64(R1, 4064bv64)), (gamma_load64(Gamma_mem, bvadd64(R1, 4064bv64)) || L(mem, bvadd64(R1, 4064bv64))); + R3, Gamma_R3 := $load7, Gamma_$load7; call rely(); - load13, Gamma_load13 := memory_load64_le(mem, bvadd64(R0, 4056bv64)), (gamma_load64(Gamma_mem, bvadd64(R0, 4056bv64)) || L(mem, bvadd64(R0, 4056bv64))); - R0, Gamma_R0 := load13, Gamma_load13; + $load8, Gamma_$load8 := memory_load64_le(mem, bvadd64(R1, 4056bv64)), (gamma_load64(Gamma_mem, bvadd64(R1, 4056bv64)) || L(mem, bvadd64(R1, 4056bv64))); + R1, Gamma_R1 := $load8, Gamma_$load8; call rely(); - load14, Gamma_load14 := memory_load32_le(mem, R0), (gamma_load32(Gamma_mem, R0) || L(mem, R0)); - R1, Gamma_R1 := zero_extend32_32(load14), Gamma_load14; - R0, Gamma_R0 := 65536bv64, true; + $load9, Gamma_$load9 := memory_load32_le(mem, R2), (gamma_load32(Gamma_mem, R2) || L(mem, R2)); + R2, Gamma_R2 := zero_extend32_32($load9), Gamma_$load9; call rely(); - load15, Gamma_load15 := memory_load64_le(mem, bvadd64(R0, 4048bv64)), (gamma_load64(Gamma_mem, bvadd64(R0, 4048bv64)) || L(mem, bvadd64(R0, 4048bv64))); - R0, Gamma_R0 := load15, Gamma_load15; + assert (L(mem, R3) ==> Gamma_R2); + mem, Gamma_mem := memory_store32_le(mem, R3, R2[32:0]), gamma_store32(Gamma_mem, R3, Gamma_R2); + assume {:captureState "4195992$0"} true; call rely(); - assert (L(mem, R0) ==> Gamma_R1); - mem, Gamma_mem := memory_store32_le(mem, R0, R1[32:0]), gamma_store32(Gamma_mem, R0, Gamma_R1); - assume {:captureState "1980_0"} true; - R0, Gamma_R0 := 0bv64, true; - goto main_1876_basil_return; - main_1876_basil_return: - assume {:captureState "main_1876_basil_return"} true; + assert (L(mem, R1) ==> Gamma_R2); + mem, Gamma_mem := memory_store32_le(mem, R1, R2[32:0]), gamma_store32(Gamma_mem, R1, Gamma_R2); + assume {:captureState "4195996$0"} true; + goto main_basil_return; + main_basil_return: + assume {:captureState "main_basil_return"} true; return; } diff --git a/src/test/incorrect/basicassign1/clang/basicassign1.adt b/src/test/incorrect/basicassign1/clang/basicassign1.adt deleted file mode 100644 index 71843d1e2..000000000 --- a/src/test/incorrect/basicassign1/clang/basicassign1.adt +++ /dev/null @@ -1,521 +0,0 @@ -Project(Attrs([Attr("filename","\"clang/basicassign1.out\""), -Attr("image-specification","(declare abi (name str))\n(declare arch (name str))\n(declare base-address (addr int))\n(declare bias (off int))\n(declare bits (size int))\n(declare code-region (addr int) (size int) (off int))\n(declare code-start (addr int))\n(declare entry-point (addr int))\n(declare external-reference (addr int) (name str))\n(declare format (name str))\n(declare is-executable (flag bool))\n(declare is-little-endian (flag bool))\n(declare llvm:base-address (addr int))\n(declare llvm:code-entry (name str) (off int) (size int))\n(declare llvm:coff-import-library (name str))\n(declare llvm:coff-virtual-section-header (name str) (addr int) (size int))\n(declare llvm:elf-program-header (name str) (off int) (size int))\n(declare llvm:elf-program-header-flags (name str) (ld bool) (r bool) \n (w bool) (x bool))\n(declare llvm:elf-virtual-program-header (name str) (addr int) (size int))\n(declare llvm:entry-point (addr int))\n(declare llvm:macho-symbol (name str) (value int))\n(declare llvm:name-reference (at int) (name str))\n(declare llvm:relocation (at int) (addr int))\n(declare llvm:section-entry (name str) (addr int) (size int) (off int))\n(declare llvm:section-flags (name str) (r bool) (w bool) (x bool))\n(declare llvm:segment-command (name str) (off int) (size int))\n(declare llvm:segment-command-flags (name str) (r bool) (w bool) (x bool))\n(declare llvm:symbol-entry (name str) (addr int) (size int) (off int)\n (value int))\n(declare llvm:virtual-segment-command (name str) (addr int) (size int))\n(declare mapped (addr int) (size int) (off int))\n(declare named-region (addr int) (size int) (name str))\n(declare named-symbol (addr int) (name str))\n(declare require (name str))\n(declare section (addr int) (size int))\n(declare segment (addr int) (size int) (r bool) (w bool) (x bool))\n(declare subarch (name str))\n(declare symbol-chunk (addr int) (size int) (root int))\n(declare symbol-value (addr int) (value int))\n(declare system (name str))\n(declare vendor (name str))\n\n(abi unknown)\n(arch aarch64)\n(base-address 0)\n(bias 0)\n(bits 64)\n(code-region 1872 20 1872)\n(code-region 1536 336 1536)\n(code-region 1440 96 1440)\n(code-region 1408 24 1408)\n(code-start 1588)\n(code-start 1536)\n(code-start 1812)\n(entry-point 1536)\n(external-reference 69568 _ITM_deregisterTMCloneTable)\n(external-reference 69576 __cxa_finalize)\n(external-reference 69584 __gmon_start__)\n(external-reference 69600 _ITM_registerTMCloneTable)\n(external-reference 69632 __libc_start_main)\n(external-reference 69640 __cxa_finalize)\n(external-reference 69648 __gmon_start__)\n(external-reference 69656 abort)\n(format elf)\n(is-executable true)\n(is-little-endian true)\n(llvm:base-address 0)\n(llvm:code-entry abort 0 0)\n(llvm:code-entry __cxa_finalize 0 0)\n(llvm:code-entry __libc_start_main 0 0)\n(llvm:code-entry _init 1408 0)\n(llvm:code-entry main 1812 60)\n(llvm:code-entry _start 1536 52)\n(llvm:code-entry abort@GLIBC_2.17 0 0)\n(llvm:code-entry _fini 1872 0)\n(llvm:code-entry __cxa_finalize@GLIBC_2.17 0 0)\n(llvm:code-entry __libc_start_main@GLIBC_2.34 0 0)\n(llvm:code-entry frame_dummy 1808 0)\n(llvm:code-entry __do_global_dtors_aux 1728 0)\n(llvm:code-entry register_tm_clones 1664 0)\n(llvm:code-entry deregister_tm_clones 1616 0)\n(llvm:code-entry call_weak_fn 1588 20)\n(llvm:code-entry .fini 1872 20)\n(llvm:code-entry .text 1536 336)\n(llvm:code-entry .plt 1440 96)\n(llvm:code-entry .init 1408 24)\n(llvm:elf-program-header 08 3528 568)\n(llvm:elf-program-header 07 0 0)\n(llvm:elf-program-header 06 1896 60)\n(llvm:elf-program-header 05 596 68)\n(llvm:elf-program-header 04 3544 480)\n(llvm:elf-program-header 03 3528 616)\n(llvm:elf-program-header 02 0 2144)\n(llvm:elf-program-header 01 568 27)\n(llvm:elf-program-header 00 64 504)\n(llvm:elf-program-header-flags 08 false true false false)\n(llvm:elf-program-header-flags 07 false true true false)\n(llvm:elf-program-header-flags 06 false true false false)\n(llvm:elf-program-header-flags 05 false true false false)\n(llvm:elf-program-header-flags 04 false true true false)\n(llvm:elf-program-header-flags 03 true true true false)\n(llvm:elf-program-header-flags 02 true true false true)\n(llvm:elf-program-header-flags 01 false true false false)\n(llvm:elf-program-header-flags 00 false true false false)\n(llvm:elf-virtual-program-header 08 69064 568)\n(llvm:elf-virtual-program-header 07 0 0)\n(llvm:elf-virtual-program-header 06 1896 60)\n(llvm:elf-virtual-program-header 05 596 68)\n(llvm:elf-virtual-program-header 04 69080 480)\n(llvm:elf-virtual-program-header 03 69064 632)\n(llvm:elf-virtual-program-header 02 0 2144)\n(llvm:elf-virtual-program-header 01 568 27)\n(llvm:elf-virtual-program-header 00 64 504)\n(llvm:entry-point 1536)\n(llvm:name-reference 69656 abort)\n(llvm:name-reference 69648 __gmon_start__)\n(llvm:name-reference 69640 __cxa_finalize)\n(llvm:name-reference 69632 __libc_start_main)\n(llvm:name-reference 69600 _ITM_registerTMCloneTable)\n(llvm:name-reference 69584 __gmon_start__)\n(llvm:name-reference 69576 __cxa_finalize)\n(llvm:name-reference 69568 _ITM_deregisterTMCloneTable)\n(llvm:section-entry .shstrtab 0 259 6977)\n(llvm:section-entry .strtab 0 577 6400)\n(llvm:section-entry .symtab 0 2184 4216)\n(llvm:section-entry .comment 0 71 4144)\n(llvm:section-entry .bss 69680 16 4144)\n(llvm:section-entry .data 69664 16 4128)\n(llvm:section-entry .got.plt 69608 56 4072)\n(llvm:section-entry .got 69560 48 4024)\n(llvm:section-entry .dynamic 69080 480 3544)\n(llvm:section-entry .fini_array 69072 8 3536)\n(llvm:section-entry .init_array 69064 8 3528)\n(llvm:section-entry .eh_frame 1960 184 1960)\n(llvm:section-entry .eh_frame_hdr 1896 60 1896)\n(llvm:section-entry .rodata 1892 4 1892)\n(llvm:section-entry .fini 1872 20 1872)\n(llvm:section-entry .text 1536 336 1536)\n(llvm:section-entry .plt 1440 96 1440)\n(llvm:section-entry .init 1408 24 1408)\n(llvm:section-entry .rela.plt 1312 96 1312)\n(llvm:section-entry .rela.dyn 1120 192 1120)\n(llvm:section-entry .gnu.version_r 1072 48 1072)\n(llvm:section-entry .gnu.version 1054 18 1054)\n(llvm:section-entry .dynstr 912 141 912)\n(llvm:section-entry .dynsym 696 216 696)\n(llvm:section-entry .gnu.hash 664 28 664)\n(llvm:section-entry .note.ABI-tag 632 32 632)\n(llvm:section-entry .note.gnu.build-id 596 36 596)\n(llvm:section-entry .interp 568 27 568)\n(llvm:section-flags .shstrtab true false false)\n(llvm:section-flags .strtab true false false)\n(llvm:section-flags .symtab true false false)\n(llvm:section-flags .comment true false false)\n(llvm:section-flags .bss true true false)\n(llvm:section-flags .data true true false)\n(llvm:section-flags .got.plt true true false)\n(llvm:section-flags .got true true false)\n(llvm:section-flags .dynamic true true false)\n(llvm:section-flags .fini_array true true false)\n(llvm:section-flags .init_array true true false)\n(llvm:section-flags .eh_frame true false false)\n(llvm:section-flags .eh_frame_hdr true false false)\n(llvm:section-flags .rodata true false false)\n(llvm:section-flags .fini true false true)\n(llvm:section-flags .text true false true)\n(llvm:section-flags .plt true false true)\n(llvm:section-flags .init true false true)\n(llvm:section-flags .rela.plt true false false)\n(llvm:section-flags .rela.dyn true false false)\n(llvm:section-flags .gnu.version_r true false false)\n(llvm:section-flags .gnu.version true false false)\n(llvm:section-flags .dynstr true false false)\n(llvm:section-flags .dynsym true false false)\n(llvm:section-flags .gnu.hash true false false)\n(llvm:section-flags .note.ABI-tag true false false)\n(llvm:section-flags .note.gnu.build-id true false false)\n(llvm:section-flags .interp true false false)\n(llvm:symbol-entry abort 0 0 0 0)\n(llvm:symbol-entry __cxa_finalize 0 0 0 0)\n(llvm:symbol-entry __libc_start_main 0 0 0 0)\n(llvm:symbol-entry _init 1408 0 1408 1408)\n(llvm:symbol-entry main 1812 60 1812 1812)\n(llvm:symbol-entry _start 1536 52 1536 1536)\n(llvm:symbol-entry abort@GLIBC_2.17 0 0 0 0)\n(llvm:symbol-entry _fini 1872 0 1872 1872)\n(llvm:symbol-entry __cxa_finalize@GLIBC_2.17 0 0 0 0)\n(llvm:symbol-entry __libc_start_main@GLIBC_2.34 0 0 0 0)\n(llvm:symbol-entry frame_dummy 1808 0 1808 1808)\n(llvm:symbol-entry __do_global_dtors_aux 1728 0 1728 1728)\n(llvm:symbol-entry register_tm_clones 1664 0 1664 1664)\n(llvm:symbol-entry deregister_tm_clones 1616 0 1616 1616)\n(llvm:symbol-entry call_weak_fn 1588 20 1588 1588)\n(mapped 0 2144 0)\n(mapped 69064 616 3528)\n(named-region 0 2144 02)\n(named-region 69064 632 03)\n(named-region 568 27 .interp)\n(named-region 596 36 .note.gnu.build-id)\n(named-region 632 32 .note.ABI-tag)\n(named-region 664 28 .gnu.hash)\n(named-region 696 216 .dynsym)\n(named-region 912 141 .dynstr)\n(named-region 1054 18 .gnu.version)\n(named-region 1072 48 .gnu.version_r)\n(named-region 1120 192 .rela.dyn)\n(named-region 1312 96 .rela.plt)\n(named-region 1408 24 .init)\n(named-region 1440 96 .plt)\n(named-region 1536 336 .text)\n(named-region 1872 20 .fini)\n(named-region 1892 4 .rodata)\n(named-region 1896 60 .eh_frame_hdr)\n(named-region 1960 184 .eh_frame)\n(named-region 69064 8 .init_array)\n(named-region 69072 8 .fini_array)\n(named-region 69080 480 .dynamic)\n(named-region 69560 48 .got)\n(named-region 69608 56 .got.plt)\n(named-region 69664 16 .data)\n(named-region 69680 16 .bss)\n(named-region 0 71 .comment)\n(named-region 0 2184 .symtab)\n(named-region 0 577 .strtab)\n(named-region 0 259 .shstrtab)\n(named-symbol 1588 call_weak_fn)\n(named-symbol 1616 deregister_tm_clones)\n(named-symbol 1664 register_tm_clones)\n(named-symbol 1728 __do_global_dtors_aux)\n(named-symbol 1808 frame_dummy)\n(named-symbol 0 __libc_start_main@GLIBC_2.34)\n(named-symbol 0 __cxa_finalize@GLIBC_2.17)\n(named-symbol 1872 _fini)\n(named-symbol 0 abort@GLIBC_2.17)\n(named-symbol 1536 _start)\n(named-symbol 1812 main)\n(named-symbol 1408 _init)\n(named-symbol 0 __libc_start_main)\n(named-symbol 0 __cxa_finalize)\n(named-symbol 0 abort)\n(require libc.so.6)\n(section 568 27)\n(section 596 36)\n(section 632 32)\n(section 664 28)\n(section 696 216)\n(section 912 141)\n(section 1054 18)\n(section 1072 48)\n(section 1120 192)\n(section 1312 96)\n(section 1408 24)\n(section 1440 96)\n(section 1536 336)\n(section 1872 20)\n(section 1892 4)\n(section 1896 60)\n(section 1960 184)\n(section 69064 8)\n(section 69072 8)\n(section 69080 480)\n(section 69560 48)\n(section 69608 56)\n(section 69664 16)\n(section 69680 16)\n(section 0 71)\n(section 0 2184)\n(section 0 577)\n(section 0 259)\n(segment 0 2144 true false true)\n(segment 69064 632 true true false)\n(subarch v8)\n(symbol-chunk 1588 20 1588)\n(symbol-chunk 1536 52 1536)\n(symbol-chunk 1812 60 1812)\n(symbol-value 1588 1588)\n(symbol-value 1616 1616)\n(symbol-value 1664 1664)\n(symbol-value 1728 1728)\n(symbol-value 1808 1808)\n(symbol-value 1872 1872)\n(symbol-value 1536 1536)\n(symbol-value 1812 1812)\n(symbol-value 1408 1408)\n(symbol-value 0 0)\n(system \"\")\n(vendor \"\")\n"), -Attr("abi-name","\"aarch64-linux-gnu-elf\"")]), -Sections([Section(".shstrtab", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x00\x06\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x48\x1c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x38\x00\x09\x00\x40\x00\x1d\x00\x1c\x00\x06\x00\x00\x00\x04\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x04\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x60\x08\x00\x00\x00\x00\x00\x00\x60\x08\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x01\x00\x00\x00\x06\x00\x00\x00\xc8\x0d\x00\x00\x00\x00\x00\x00\xc8\x0d\x01\x00\x00\x00\x00\x00\xc8\x0d\x01"), -Section(".strtab", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x00\x06\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x48\x1c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x38\x00\x09\x00\x40\x00\x1d\x00\x1c\x00\x06\x00\x00\x00\x04\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x04\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x60\x08\x00\x00\x00\x00\x00\x00\x60\x08\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x01\x00\x00\x00\x06\x00\x00\x00\xc8\x0d\x00\x00\x00\x00\x00\x00\xc8\x0d\x01\x00\x00\x00\x00\x00\xc8\x0d\x01\x00\x00\x00\x00\x00\x68\x02\x00\x00\x00\x00\x00\x00\x78\x02\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x02\x00\x00\x00\x06\x00\x00\x00\xd8\x0d\x00\x00\x00\x00\x00\x00\xd8\x0d\x01\x00\x00\x00\x00\x00\xd8\x0d\x01\x00\x00\x00\x00\x00\xe0\x01\x00\x00\x00\x00\x00\x00\xe0\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x04\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x50\xe5\x74\x64\x04\x00\x00\x00\x68\x07\x00\x00\x00\x00\x00\x00\x68\x07\x00\x00\x00\x00\x00\x00\x68\x07\x00\x00\x00\x00\x00\x00\x3c\x00\x00\x00\x00\x00\x00\x00\x3c\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x51\xe5\x74\x64\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x52\xe5\x74\x64\x04\x00\x00\x00\xc8\x0d\x00\x00\x00\x00\x00\x00\xc8\x0d\x01\x00\x00\x00\x00\x00\xc8\x0d\x01\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x2f\x6c\x69\x62\x2f\x6c\x64\x2d\x6c"), -Section(".comment", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x00\x06\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x48\x1c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x38\x00\x09\x00\x40\x00\x1d\x00\x1c\x00\x06\x00\x00\x00\x04\x00\x00"), -Section(".interp", 0x238, "\x2f\x6c\x69\x62\x2f\x6c\x64\x2d\x6c\x69\x6e\x75\x78\x2d\x61\x61\x72\x63\x68\x36\x34\x2e\x73\x6f\x2e\x31\x00"), -Section(".note.gnu.build-id", 0x254, "\x04\x00\x00\x00\x14\x00\x00\x00\x03\x00\x00\x00\x47\x4e\x55\x00\xb4\xb7\xc0\x84\x35\x11\xaa\x19\x93\x35\x96\x15\xc4\xff\xf1\x36\x30\xfe\x29\xab"), -Section(".note.ABI-tag", 0x278, "\x04\x00\x00\x00\x10\x00\x00\x00\x01\x00\x00\x00\x47\x4e\x55\x00\x00\x00\x00\x00\x03\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00"), -Section(".gnu.hash", 0x298, "\x01\x00\x00\x00\x01\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".dynsym", 0x2B8, "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x0b\x00\x80\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x17\x00\x20\x10\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x48\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x22\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x22\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x73\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".dynstr", 0x390, "\x00\x5f\x5f\x63\x78\x61\x5f\x66\x69\x6e\x61\x6c\x69\x7a\x65\x00\x5f\x5f\x6c\x69\x62\x63\x5f\x73\x74\x61\x72\x74\x5f\x6d\x61\x69\x6e\x00\x61\x62\x6f\x72\x74\x00\x6c\x69\x62\x63\x2e\x73\x6f\x2e\x36\x00\x47\x4c\x49\x42\x43\x5f\x32\x2e\x31\x37\x00\x47\x4c\x49\x42\x43\x5f\x32\x2e\x33\x34\x00\x5f\x49\x54\x4d\x5f\x64\x65\x72\x65\x67\x69\x73\x74\x65\x72\x54\x4d\x43\x6c\x6f\x6e\x65\x54\x61\x62\x6c\x65\x00\x5f\x5f\x67\x6d\x6f\x6e\x5f\x73\x74\x61\x72\x74\x5f\x5f\x00\x5f\x49\x54\x4d\x5f\x72\x65\x67\x69\x73\x74\x65\x72\x54\x4d\x43\x6c\x6f\x6e\x65\x54\x61\x62\x6c\x65\x00"), -Section(".gnu.version", 0x41E, "\x00\x00\x00\x00\x00\x00\x02\x00\x01\x00\x03\x00\x01\x00\x03\x00\x01\x00"), -Section(".gnu.version_r", 0x430, "\x01\x00\x02\x00\x28\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x97\x91\x96\x06\x00\x00\x03\x00\x32\x00\x00\x00\x10\x00\x00\x00\xb4\x91\x96\x06\x00\x00\x02\x00\x3d\x00\x00\x00\x00\x00\x00\x00"), -Section(".rela.dyn", 0x460, "\xc8\x0d\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x10\x07\x00\x00\x00\x00\x00\x00\xd0\x0d\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\xc0\x06\x00\x00\x00\x00\x00\x00\xd8\x0f\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x14\x07\x00\x00\x00\x00\x00\x00\x28\x10\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x28\x10\x01\x00\x00\x00\x00\x00\xc0\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xc8\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xd0\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe0\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".rela.plt", 0x520, "\x00\x10\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x08\x10\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x10\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x18\x10\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".init", 0x580, "\x1f\x20\x03\xd5\xfd\x7b\xbf\xa9\xfd\x03\x00\x91\x2a\x00\x00\x94\xfd\x7b\xc1\xa8\xc0\x03\x5f\xd6"), -Section(".plt", 0x5A0, "\xf0\x7b\xbf\xa9\x90\x00\x00\x90\x11\xfe\x47\xf9\x10\xe2\x3f\x91\x20\x02\x1f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x90\x00\x00\xb0\x11\x02\x40\xf9\x10\x02\x00\x91\x20\x02\x1f\xd6\x90\x00\x00\xb0\x11\x06\x40\xf9\x10\x22\x00\x91\x20\x02\x1f\xd6\x90\x00\x00\xb0\x11\x0a\x40\xf9\x10\x42\x00\x91\x20\x02\x1f\xd6\x90\x00\x00\xb0\x11\x0e\x40\xf9\x10\x62\x00\x91\x20\x02\x1f\xd6"), -Section(".text", 0x600, "\x1f\x20\x03\xd5\x1d\x00\x80\xd2\x1e\x00\x80\xd2\xe5\x03\x00\xaa\xe1\x03\x40\xf9\xe2\x23\x00\x91\xe6\x03\x00\x91\x80\x00\x00\x90\x00\xec\x47\xf9\x03\x00\x80\xd2\x04\x00\x80\xd2\xe5\xff\xff\x97\xf0\xff\xff\x97\x80\x00\x00\x90\x00\xe8\x47\xf9\x40\x00\x00\xb4\xe8\xff\xff\x17\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x80\x00\x00\xb0\x00\xc0\x00\x91\x81\x00\x00\xb0\x21\xc0\x00\x91\x3f\x00\x00\xeb\xc0\x00\x00\x54\x81\x00\x00\x90\x21\xe0\x47\xf9\x61\x00\x00\xb4\xf0\x03\x01\xaa\x00\x02\x1f\xd6\xc0\x03\x5f\xd6\x80\x00\x00\xb0\x00\xc0\x00\x91\x81\x00\x00\xb0\x21\xc0\x00\x91\x21\x00\x00\xcb\x22\xfc\x7f\xd3\x41\x0c\x81\x8b\x21\xfc\x41\x93\xc1\x00\x00\xb4\x82\x00\x00\x90\x42\xf0\x47\xf9\x62\x00\x00\xb4\xf0\x03\x02\xaa\x00\x02\x1f\xd6\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\xfd\x7b\xbe\xa9\xfd\x03\x00\x91\xf3\x0b\x00\xf9\x93\x00\x00\xb0\x60\xc2\x40\x39\x40\x01\x00\x35\x80\x00\x00\x90\x00\xe4\x47\xf9\x80\x00\x00\xb4\x80\x00\x00\xb0\x00\x14\x40\xf9\xb9\xff\xff\x97\xd8\xff\xff\x97\x20\x00\x80\x52\x60\xc2\x00\x39\xf3\x0b\x40\xf9\xfd\x7b\xc2\xa8\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\xdc\xff\xff\x17\xff\x43\x00\xd1\x88\x00\x00\xb0\x09\x35\x40\xb9\xe9\x0f\x00\xb9\xe0\x03\x1f\x2a\xff\x0f\x00\xb9\xea\x0f\x40\xb9\x89\x00\x00\xb0\x2a\x39\x00\xb9\x08\x35\x40\xb9\xe8\x0f\x00\xb9\xe8\x0f\x40\xb9\x28\x39\x00\xb9\xff\x43\x00\x91\xc0\x03\x5f\xd6"), -Section(".fini", 0x750, "\x1f\x20\x03\xd5\xfd\x7b\xbf\xa9\xfd\x03\x00\x91\xfd\x7b\xc1\xa8\xc0\x03\x5f\xd6"), -Section(".rodata", 0x764, "\x01\x00\x02\x00"), -Section(".eh_frame_hdr", 0x768, "\x01\x1b\x03\x3b\x3c\x00\x00\x00\x06\x00\x00\x00\x98\xfe\xff\xff\x54\x00\x00\x00\xe8\xfe\xff\xff\x68\x00\x00\x00\x18\xff\xff\xff\x7c\x00\x00\x00\x58\xff\xff\xff\x90\x00\x00\x00\xa8\xff\xff\xff\xb4\x00\x00\x00\xac\xff\xff\xff\xdc\x00\x00\x00"), -Section(".eh_frame", 0x7A8, "\x10\x00\x00\x00\x00\x00\x00\x00\x01\x7a\x52\x00\x04\x78\x1e\x01\x1b\x0c\x1f\x00\x10\x00\x00\x00\x18\x00\x00\x00\x3c\xfe\xff\xff\x34\x00\x00\x00\x00\x41\x07\x1e\x10\x00\x00\x00\x2c\x00\x00\x00\x78\xfe\xff\xff\x30\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x40\x00\x00\x00\x94\xfe\xff\xff\x3c\x00\x00\x00\x00\x00\x00\x00\x20\x00\x00\x00\x54\x00\x00\x00\xc0\xfe\xff\xff\x48\x00\x00\x00\x00\x41\x0e\x20\x9d\x04\x9e\x03\x42\x93\x02\x4e\xde\xdd\xd3\x0e\x00\x00\x00\x00\x10\x00\x00\x00\x78\x00\x00\x00\xec\xfe\xff\xff\x04\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x01\x7a\x52\x00\x01\x7c\x1e\x01\x1b\x0c\x1f\x00\x14\x00\x00\x00\x18\x00\x00\x00\xc8\xfe\xff\xff\x3c\x00\x00\x00\x00\x44\x0e\x10\x74\x0e\x00\x00\x00\x00\x00\x00"), -Section(".fini_array", 0x10DD0, "\xc0\x06\x00\x00\x00\x00\x00\x00"), -Section(".dynamic", 0x10DD8, "\x01\x00\x00\x00\x00\x00\x00\x00\x28\x00\x00\x00\x00\x00\x00\x00\x0c\x00\x00\x00\x00\x00\x00\x00\x80\x05\x00\x00\x00\x00\x00\x00\x0d\x00\x00\x00\x00\x00\x00\x00\x50\x07\x00\x00\x00\x00\x00\x00\x19\x00\x00\x00\x00\x00\x00\x00\xc8\x0d\x01\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x1a\x00\x00\x00\x00\x00\x00\x00\xd0\x0d\x01\x00\x00\x00\x00\x00\x1c\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\xf5\xfe\xff\x6f\x00\x00\x00\x00\x98\x02\x00\x00\x00\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x90\x03\x00\x00\x00\x00\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\xb8\x02\x00\x00\x00\x00\x00\x00\x0a\x00\x00\x00\x00\x00\x00\x00\x8d\x00\x00\x00\x00\x00\x00\x00\x0b\x00\x00\x00\x00\x00\x00\x00\x18\x00\x00\x00\x00\x00\x00\x00\x15\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\xe8\x0f\x01\x00\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x60\x00\x00\x00\x00\x00\x00\x00\x14\x00\x00\x00\x00\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x17\x00\x00\x00\x00\x00\x00\x00\x20\x05\x00\x00\x00\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x60\x04\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\xc0\x00\x00\x00\x00\x00\x00\x00\x09\x00\x00\x00\x00\x00\x00\x00\x18\x00\x00\x00\x00\x00\x00\x00\xfb\xff\xff\x6f\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\xfe\xff\xff\x6f\x00\x00\x00\x00\x30\x04\x00\x00\x00\x00\x00\x00\xff\xff\xff\x6f\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\xf0\xff\xff\x6f\x00\x00\x00\x00\x1e\x04\x00\x00\x00\x00\x00\x00\xf9\xff\xff\x6f\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".init_array", 0x10DC8, "\x10\x07\x00\x00\x00\x00\x00\x00"), -Section(".got", 0x10FB8, "\xd8\x0d\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x14\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".got.plt", 0x10FE8, "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xa0\x05\x00\x00\x00\x00\x00\x00\xa0\x05\x00\x00\x00\x00\x00\x00\xa0\x05\x00\x00\x00\x00\x00\x00\xa0\x05\x00\x00\x00\x00\x00\x00"), -Section(".data", 0x11020, "\x00\x00\x00\x00\x00\x00\x00\x00\x28\x10\x01\x00\x00\x00\x00\x00")]), -Memmap([Annotation(Region(0x0,0x85F), Attr("segment","02 0 2144")), -Annotation(Region(0x600,0x633), Attr("symbol","\"_start\"")), -Annotation(Region(0x0,0x102), Attr("section","\".shstrtab\"")), -Annotation(Region(0x0,0x240), Attr("section","\".strtab\"")), -Annotation(Region(0x0,0x46), Attr("section","\".comment\"")), -Annotation(Region(0x238,0x252), Attr("section","\".interp\"")), -Annotation(Region(0x254,0x277), Attr("section","\".note.gnu.build-id\"")), -Annotation(Region(0x278,0x297), Attr("section","\".note.ABI-tag\"")), -Annotation(Region(0x298,0x2B3), Attr("section","\".gnu.hash\"")), -Annotation(Region(0x2B8,0x38F), Attr("section","\".dynsym\"")), -Annotation(Region(0x390,0x41C), Attr("section","\".dynstr\"")), -Annotation(Region(0x41E,0x42F), Attr("section","\".gnu.version\"")), -Annotation(Region(0x430,0x45F), Attr("section","\".gnu.version_r\"")), -Annotation(Region(0x460,0x51F), Attr("section","\".rela.dyn\"")), -Annotation(Region(0x520,0x57F), Attr("section","\".rela.plt\"")), -Annotation(Region(0x580,0x597), Attr("section","\".init\"")), -Annotation(Region(0x5A0,0x5FF), Attr("section","\".plt\"")), -Annotation(Region(0x580,0x597), Attr("code-region","()")), -Annotation(Region(0x5A0,0x5FF), Attr("code-region","()")), -Annotation(Region(0x600,0x633), Attr("symbol-info","_start 0x600 52")), -Annotation(Region(0x634,0x647), Attr("symbol","\"call_weak_fn\"")), -Annotation(Region(0x634,0x647), Attr("symbol-info","call_weak_fn 0x634 20")), -Annotation(Region(0x600,0x74F), Attr("section","\".text\"")), -Annotation(Region(0x600,0x74F), Attr("code-region","()")), -Annotation(Region(0x714,0x74F), Attr("symbol","\"main\"")), -Annotation(Region(0x714,0x74F), Attr("symbol-info","main 0x714 60")), -Annotation(Region(0x750,0x763), Attr("section","\".fini\"")), -Annotation(Region(0x750,0x763), Attr("code-region","()")), -Annotation(Region(0x764,0x767), Attr("section","\".rodata\"")), -Annotation(Region(0x768,0x7A3), Attr("section","\".eh_frame_hdr\"")), -Annotation(Region(0x7A8,0x85F), Attr("section","\".eh_frame\"")), -Annotation(Region(0x10DC8,0x1102F), Attr("segment","03 0x10DC8 632")), -Annotation(Region(0x10DD0,0x10DD7), Attr("section","\".fini_array\"")), -Annotation(Region(0x10DD8,0x10FB7), Attr("section","\".dynamic\"")), -Annotation(Region(0x10DC8,0x10DCF), Attr("section","\".init_array\"")), -Annotation(Region(0x10FB8,0x10FE7), Attr("section","\".got\"")), -Annotation(Region(0x10FE8,0x1101F), Attr("section","\".got.plt\"")), -Annotation(Region(0x11020,0x1102F), Attr("section","\".data\""))]), -Program(Tid(1_520, "%000005f0"), Attrs([]), - Subs([Sub(Tid(1_498, "@__cxa_finalize"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x5D0"), -Attr("stub","()")]), "__cxa_finalize", Args([Arg(Tid(1_521, "%000005f1"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("__cxa_finalize_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(896, "@__cxa_finalize"), - Attrs([Attr("address","0x5D0")]), Phis([]), -Defs([Def(Tid(1_144, "%00000478"), Attrs([Attr("address","0x5D0"), -Attr("insn","adrp x16, #69632")]), Var("R16",Imm(64)), Int(69632,64)), -Def(Tid(1_151, "%0000047f"), Attrs([Attr("address","0x5D4"), -Attr("insn","ldr x17, [x16, #0x8]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(1_157, "%00000485"), Attrs([Attr("address","0x5D8"), -Attr("insn","add x16, x16, #0x8")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(8,64)))]), Jmps([Call(Tid(1_162, "%0000048a"), - Attrs([Attr("address","0x5DC"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), -Sub(Tid(1_499, "@__do_global_dtors_aux"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x6C0")]), - "__do_global_dtors_aux", Args([Arg(Tid(1_522, "%000005f2"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("__do_global_dtors_aux_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(650, "@__do_global_dtors_aux"), - Attrs([Attr("address","0x6C0")]), Phis([]), Defs([Def(Tid(654, "%0000028e"), - Attrs([Attr("address","0x6C0"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("#3",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(18446744073709551584,64))), -Def(Tid(660, "%00000294"), Attrs([Attr("address","0x6C0"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("#3",Imm(64)),Var("R29",Imm(64)),LittleEndian(),64)), -Def(Tid(666, "%0000029a"), Attrs([Attr("address","0x6C0"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("#3",Imm(64)),Int(8,64)),Var("R30",Imm(64)),LittleEndian(),64)), -Def(Tid(670, "%0000029e"), Attrs([Attr("address","0x6C0"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("R31",Imm(64)), -Var("#3",Imm(64))), Def(Tid(676, "%000002a4"), - Attrs([Attr("address","0x6C4"), Attr("insn","mov x29, sp")]), - Var("R29",Imm(64)), Var("R31",Imm(64))), Def(Tid(684, "%000002ac"), - Attrs([Attr("address","0x6C8"), Attr("insn","str x19, [sp, #0x10]")]), - Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(16,64)),Var("R19",Imm(64)),LittleEndian(),64)), -Def(Tid(689, "%000002b1"), Attrs([Attr("address","0x6CC"), -Attr("insn","adrp x19, #69632")]), Var("R19",Imm(64)), Int(69632,64)), -Def(Tid(696, "%000002b8"), Attrs([Attr("address","0x6D0"), -Attr("insn","ldrb w0, [x19, #0x30]")]), Var("R0",Imm(64)), -UNSIGNED(64,Load(Var("mem",Mem(64,8)),PLUS(Var("R19",Imm(64)),Int(48,64)),LittleEndian(),8)))]), -Jmps([Goto(Tid(703, "%000002bf"), Attrs([Attr("address","0x6D4"), -Attr("insn","cbnz w0, #0x28")]), - NEQ(Extract(31,0,Var("R0",Imm(64))),Int(0,32)), -Direct(Tid(701, "%000002bd"))), Goto(Tid(1_500, "%000005dc"), Attrs([]), - Int(1,1), Direct(Tid(841, "%00000349")))])), Blk(Tid(841, "%00000349"), - Attrs([Attr("address","0x6D8")]), Phis([]), Defs([Def(Tid(844, "%0000034c"), - Attrs([Attr("address","0x6D8"), Attr("insn","adrp x0, #65536")]), - Var("R0",Imm(64)), Int(65536,64)), Def(Tid(851, "%00000353"), - Attrs([Attr("address","0x6DC"), Attr("insn","ldr x0, [x0, #0xfc8]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(4040,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(857, "%00000359"), Attrs([Attr("address","0x6E0"), -Attr("insn","cbz x0, #0x10")]), EQ(Var("R0",Imm(64)),Int(0,64)), -Direct(Tid(855, "%00000357"))), Goto(Tid(1_501, "%000005dd"), Attrs([]), - Int(1,1), Direct(Tid(880, "%00000370")))])), Blk(Tid(880, "%00000370"), - Attrs([Attr("address","0x6E4")]), Phis([]), Defs([Def(Tid(883, "%00000373"), - Attrs([Attr("address","0x6E4"), Attr("insn","adrp x0, #69632")]), - Var("R0",Imm(64)), Int(69632,64)), Def(Tid(890, "%0000037a"), - Attrs([Attr("address","0x6E8"), Attr("insn","ldr x0, [x0, #0x28]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(40,64)),LittleEndian(),64)), -Def(Tid(895, "%0000037f"), Attrs([Attr("address","0x6EC"), -Attr("insn","bl #-0x11c")]), Var("R30",Imm(64)), Int(1776,64))]), -Jmps([Call(Tid(898, "%00000382"), Attrs([Attr("address","0x6EC"), -Attr("insn","bl #-0x11c")]), Int(1,1), -(Direct(Tid(1_498, "@__cxa_finalize")),Direct(Tid(855, "%00000357"))))])), -Blk(Tid(855, "%00000357"), Attrs([Attr("address","0x6F0")]), Phis([]), -Defs([Def(Tid(863, "%0000035f"), Attrs([Attr("address","0x6F0"), -Attr("insn","bl #-0xa0")]), Var("R30",Imm(64)), Int(1780,64))]), -Jmps([Call(Tid(865, "%00000361"), Attrs([Attr("address","0x6F0"), -Attr("insn","bl #-0xa0")]), Int(1,1), -(Direct(Tid(1_512, "@deregister_tm_clones")),Direct(Tid(867, "%00000363"))))])), -Blk(Tid(867, "%00000363"), Attrs([Attr("address","0x6F4")]), Phis([]), -Defs([Def(Tid(870, "%00000366"), Attrs([Attr("address","0x6F4"), -Attr("insn","mov w0, #0x1")]), Var("R0",Imm(64)), Int(1,64)), -Def(Tid(878, "%0000036e"), Attrs([Attr("address","0x6F8"), -Attr("insn","strb w0, [x19, #0x30]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R19",Imm(64)),Int(48,64)),Extract(7,0,Var("R0",Imm(64))),LittleEndian(),8))]), -Jmps([Goto(Tid(1_502, "%000005de"), Attrs([]), Int(1,1), -Direct(Tid(701, "%000002bd")))])), Blk(Tid(701, "%000002bd"), - Attrs([Attr("address","0x6FC")]), Phis([]), Defs([Def(Tid(711, "%000002c7"), - Attrs([Attr("address","0x6FC"), Attr("insn","ldr x19, [sp, #0x10]")]), - Var("R19",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(16,64)),LittleEndian(),64)), -Def(Tid(718, "%000002ce"), Attrs([Attr("address","0x700"), -Attr("insn","ldp x29, x30, [sp], #0x20")]), Var("R29",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(723, "%000002d3"), Attrs([Attr("address","0x700"), -Attr("insn","ldp x29, x30, [sp], #0x20")]), Var("R30",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(727, "%000002d7"), Attrs([Attr("address","0x700"), -Attr("insn","ldp x29, x30, [sp], #0x20")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(32,64)))]), Jmps([Call(Tid(732, "%000002dc"), - Attrs([Attr("address","0x704"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), Sub(Tid(1_503, "@__libc_start_main"), - Attrs([Attr("c.proto","signed (*)(signed (*)(signed , char** , char** );* main, signed , char** , \nvoid* auxv)"), -Attr("address","0x5C0"), Attr("stub","()")]), "__libc_start_main", - Args([Arg(Tid(1_523, "%000005f3"), - Attrs([Attr("c.layout","**[ : 64]"), -Attr("c.data","Top:u64 ptr ptr"), -Attr("c.type","signed (*)(signed , char** , char** );*")]), - Var("__libc_start_main_main",Imm(64)), Var("R0",Imm(64)), In()), -Arg(Tid(1_524, "%000005f4"), Attrs([Attr("c.layout","[signed : 32]"), -Attr("c.data","Top:u32"), Attr("c.type","signed")]), - Var("__libc_start_main_arg2",Imm(32)), LOW(32,Var("R1",Imm(64))), In()), -Arg(Tid(1_525, "%000005f5"), Attrs([Attr("c.layout","**[char : 8]"), -Attr("c.data","Top:u8 ptr ptr"), Attr("c.type","char**")]), - Var("__libc_start_main_arg3",Imm(64)), Var("R2",Imm(64)), Both()), -Arg(Tid(1_526, "%000005f6"), Attrs([Attr("c.layout","*[ : 8]"), -Attr("c.data","{} ptr"), Attr("c.type","void*")]), - Var("__libc_start_main_auxv",Imm(64)), Var("R3",Imm(64)), Both()), -Arg(Tid(1_527, "%000005f7"), Attrs([Attr("c.layout","[signed : 32]"), -Attr("c.data","Top:u32"), Attr("c.type","signed")]), - Var("__libc_start_main_result",Imm(32)), LOW(32,Var("R0",Imm(64))), -Out())]), Blks([Blk(Tid(483, "@__libc_start_main"), - Attrs([Attr("address","0x5C0")]), Phis([]), -Defs([Def(Tid(1_122, "%00000462"), Attrs([Attr("address","0x5C0"), -Attr("insn","adrp x16, #69632")]), Var("R16",Imm(64)), Int(69632,64)), -Def(Tid(1_129, "%00000469"), Attrs([Attr("address","0x5C4"), -Attr("insn","ldr x17, [x16]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R16",Imm(64)),LittleEndian(),64)), -Def(Tid(1_135, "%0000046f"), Attrs([Attr("address","0x5C8"), -Attr("insn","add x16, x16, #0x0")]), Var("R16",Imm(64)), -Var("R16",Imm(64)))]), Jmps([Call(Tid(1_140, "%00000474"), - Attrs([Attr("address","0x5CC"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), Sub(Tid(1_504, "@_fini"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x750")]), - "_fini", Args([Arg(Tid(1_528, "%000005f8"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("_fini_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(31, "@_fini"), - Attrs([Attr("address","0x750")]), Phis([]), Defs([Def(Tid(37, "%00000025"), - Attrs([Attr("address","0x754"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("#0",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(18446744073709551600,64))), -Def(Tid(43, "%0000002b"), Attrs([Attr("address","0x754"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("#0",Imm(64)),Var("R29",Imm(64)),LittleEndian(),64)), -Def(Tid(49, "%00000031"), Attrs([Attr("address","0x754"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("#0",Imm(64)),Int(8,64)),Var("R30",Imm(64)),LittleEndian(),64)), -Def(Tid(53, "%00000035"), Attrs([Attr("address","0x754"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("R31",Imm(64)), -Var("#0",Imm(64))), Def(Tid(59, "%0000003b"), Attrs([Attr("address","0x758"), -Attr("insn","mov x29, sp")]), Var("R29",Imm(64)), Var("R31",Imm(64))), -Def(Tid(66, "%00000042"), Attrs([Attr("address","0x75C"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R29",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(71, "%00000047"), Attrs([Attr("address","0x75C"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R30",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(75, "%0000004b"), Attrs([Attr("address","0x75C"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(16,64)))]), Jmps([Call(Tid(80, "%00000050"), - Attrs([Attr("address","0x760"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), Sub(Tid(1_505, "@_init"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x580")]), - "_init", Args([Arg(Tid(1_529, "%000005f9"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("_init_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(1_325, "@_init"), - Attrs([Attr("address","0x580")]), Phis([]), -Defs([Def(Tid(1_331, "%00000533"), Attrs([Attr("address","0x584"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("#5",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(18446744073709551600,64))), -Def(Tid(1_337, "%00000539"), Attrs([Attr("address","0x584"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("#5",Imm(64)),Var("R29",Imm(64)),LittleEndian(),64)), -Def(Tid(1_343, "%0000053f"), Attrs([Attr("address","0x584"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("#5",Imm(64)),Int(8,64)),Var("R30",Imm(64)),LittleEndian(),64)), -Def(Tid(1_347, "%00000543"), Attrs([Attr("address","0x584"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("R31",Imm(64)), -Var("#5",Imm(64))), Def(Tid(1_353, "%00000549"), - Attrs([Attr("address","0x588"), Attr("insn","mov x29, sp")]), - Var("R29",Imm(64)), Var("R31",Imm(64))), Def(Tid(1_358, "%0000054e"), - Attrs([Attr("address","0x58C"), Attr("insn","bl #0xa8")]), - Var("R30",Imm(64)), Int(1424,64))]), Jmps([Call(Tid(1_360, "%00000550"), - Attrs([Attr("address","0x58C"), Attr("insn","bl #0xa8")]), Int(1,1), -(Direct(Tid(1_510, "@call_weak_fn")),Direct(Tid(1_362, "%00000552"))))])), -Blk(Tid(1_362, "%00000552"), Attrs([Attr("address","0x590")]), Phis([]), -Defs([Def(Tid(1_367, "%00000557"), Attrs([Attr("address","0x590"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R29",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(1_372, "%0000055c"), Attrs([Attr("address","0x590"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R30",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(1_376, "%00000560"), Attrs([Attr("address","0x590"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(16,64)))]), Jmps([Call(Tid(1_381, "%00000565"), - Attrs([Attr("address","0x594"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), Sub(Tid(1_506, "@_start"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x600"), -Attr("stub","()"), Attr("entry-point","()")]), "_start", - Args([Arg(Tid(1_530, "%000005fa"), Attrs([Attr("c.layout","[signed : 32]"), -Attr("c.data","Top:u32"), Attr("c.type","signed")]), - Var("_start_result",Imm(32)), LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(420, "@_start"), Attrs([Attr("address","0x600")]), Phis([]), -Defs([Def(Tid(425, "%000001a9"), Attrs([Attr("address","0x604"), -Attr("insn","mov x29, #0x0")]), Var("R29",Imm(64)), Int(0,64)), -Def(Tid(430, "%000001ae"), Attrs([Attr("address","0x608"), -Attr("insn","mov x30, #0x0")]), Var("R30",Imm(64)), Int(0,64)), -Def(Tid(436, "%000001b4"), Attrs([Attr("address","0x60C"), -Attr("insn","mov x5, x0")]), Var("R5",Imm(64)), Var("R0",Imm(64))), -Def(Tid(443, "%000001bb"), Attrs([Attr("address","0x610"), -Attr("insn","ldr x1, [sp]")]), Var("R1",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(449, "%000001c1"), Attrs([Attr("address","0x614"), -Attr("insn","add x2, sp, #0x8")]), Var("R2",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(8,64))), Def(Tid(455, "%000001c7"), - Attrs([Attr("address","0x618"), Attr("insn","mov x6, sp")]), - Var("R6",Imm(64)), Var("R31",Imm(64))), Def(Tid(460, "%000001cc"), - Attrs([Attr("address","0x61C"), Attr("insn","adrp x0, #65536")]), - Var("R0",Imm(64)), Int(65536,64)), Def(Tid(467, "%000001d3"), - Attrs([Attr("address","0x620"), Attr("insn","ldr x0, [x0, #0xfd8]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(4056,64)),LittleEndian(),64)), -Def(Tid(472, "%000001d8"), Attrs([Attr("address","0x624"), -Attr("insn","mov x3, #0x0")]), Var("R3",Imm(64)), Int(0,64)), -Def(Tid(477, "%000001dd"), Attrs([Attr("address","0x628"), -Attr("insn","mov x4, #0x0")]), Var("R4",Imm(64)), Int(0,64)), -Def(Tid(482, "%000001e2"), Attrs([Attr("address","0x62C"), -Attr("insn","bl #-0x6c")]), Var("R30",Imm(64)), Int(1584,64))]), -Jmps([Call(Tid(485, "%000001e5"), Attrs([Attr("address","0x62C"), -Attr("insn","bl #-0x6c")]), Int(1,1), -(Direct(Tid(1_503, "@__libc_start_main")),Direct(Tid(487, "%000001e7"))))])), -Blk(Tid(487, "%000001e7"), Attrs([Attr("address","0x630")]), Phis([]), -Defs([Def(Tid(490, "%000001ea"), Attrs([Attr("address","0x630"), -Attr("insn","bl #-0x40")]), Var("R30",Imm(64)), Int(1588,64))]), -Jmps([Call(Tid(493, "%000001ed"), Attrs([Attr("address","0x630"), -Attr("insn","bl #-0x40")]), Int(1,1), -(Direct(Tid(1_509, "@abort")),Direct(Tid(1_507, "%000005e3"))))])), -Blk(Tid(1_507, "%000005e3"), Attrs([]), Phis([]), Defs([]), -Jmps([Call(Tid(1_508, "%000005e4"), Attrs([]), Int(1,1), -(Direct(Tid(1_510, "@call_weak_fn")),))]))])), Sub(Tid(1_509, "@abort"), - Attrs([Attr("noreturn","()"), Attr("c.proto","void (*)(void)"), -Attr("address","0x5F0"), Attr("stub","()")]), "abort", Args([]), -Blks([Blk(Tid(491, "@abort"), Attrs([Attr("address","0x5F0")]), Phis([]), -Defs([Def(Tid(1_188, "%000004a4"), Attrs([Attr("address","0x5F0"), -Attr("insn","adrp x16, #69632")]), Var("R16",Imm(64)), Int(69632,64)), -Def(Tid(1_195, "%000004ab"), Attrs([Attr("address","0x5F4"), -Attr("insn","ldr x17, [x16, #0x18]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(24,64)),LittleEndian(),64)), -Def(Tid(1_201, "%000004b1"), Attrs([Attr("address","0x5F8"), -Attr("insn","add x16, x16, #0x18")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(24,64)))]), Jmps([Call(Tid(1_206, "%000004b6"), - Attrs([Attr("address","0x5FC"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), Sub(Tid(1_510, "@call_weak_fn"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x634")]), - "call_weak_fn", Args([Arg(Tid(1_531, "%000005fb"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("call_weak_fn_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(495, "@call_weak_fn"), - Attrs([Attr("address","0x634")]), Phis([]), Defs([Def(Tid(498, "%000001f2"), - Attrs([Attr("address","0x634"), Attr("insn","adrp x0, #65536")]), - Var("R0",Imm(64)), Int(65536,64)), Def(Tid(505, "%000001f9"), - Attrs([Attr("address","0x638"), Attr("insn","ldr x0, [x0, #0xfd0]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(4048,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(511, "%000001ff"), Attrs([Attr("address","0x63C"), -Attr("insn","cbz x0, #0x8")]), EQ(Var("R0",Imm(64)),Int(0,64)), -Direct(Tid(509, "%000001fd"))), Goto(Tid(1_511, "%000005e7"), Attrs([]), - Int(1,1), Direct(Tid(960, "%000003c0")))])), Blk(Tid(509, "%000001fd"), - Attrs([Attr("address","0x644")]), Phis([]), Defs([]), -Jmps([Call(Tid(517, "%00000205"), Attrs([Attr("address","0x644"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))])), -Blk(Tid(960, "%000003c0"), Attrs([Attr("address","0x640")]), Phis([]), -Defs([]), Jmps([Goto(Tid(963, "%000003c3"), Attrs([Attr("address","0x640"), -Attr("insn","b #-0x60")]), Int(1,1), Direct(Tid(961, "@__gmon_start__")))])), -Blk(Tid(961, "@__gmon_start__"), Attrs([Attr("address","0x5E0")]), Phis([]), -Defs([Def(Tid(1_166, "%0000048e"), Attrs([Attr("address","0x5E0"), -Attr("insn","adrp x16, #69632")]), Var("R16",Imm(64)), Int(69632,64)), -Def(Tid(1_173, "%00000495"), Attrs([Attr("address","0x5E4"), -Attr("insn","ldr x17, [x16, #0x10]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(16,64)),LittleEndian(),64)), -Def(Tid(1_179, "%0000049b"), Attrs([Attr("address","0x5E8"), -Attr("insn","add x16, x16, #0x10")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(16,64)))]), Jmps([Call(Tid(1_184, "%000004a0"), - Attrs([Attr("address","0x5EC"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), -Sub(Tid(1_512, "@deregister_tm_clones"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x650")]), - "deregister_tm_clones", Args([Arg(Tid(1_532, "%000005fc"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("deregister_tm_clones_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(523, "@deregister_tm_clones"), - Attrs([Attr("address","0x650")]), Phis([]), Defs([Def(Tid(526, "%0000020e"), - Attrs([Attr("address","0x650"), Attr("insn","adrp x0, #69632")]), - Var("R0",Imm(64)), Int(69632,64)), Def(Tid(532, "%00000214"), - Attrs([Attr("address","0x654"), Attr("insn","add x0, x0, #0x30")]), - Var("R0",Imm(64)), PLUS(Var("R0",Imm(64)),Int(48,64))), -Def(Tid(537, "%00000219"), Attrs([Attr("address","0x658"), -Attr("insn","adrp x1, #69632")]), Var("R1",Imm(64)), Int(69632,64)), -Def(Tid(543, "%0000021f"), Attrs([Attr("address","0x65C"), -Attr("insn","add x1, x1, #0x30")]), Var("R1",Imm(64)), -PLUS(Var("R1",Imm(64)),Int(48,64))), Def(Tid(549, "%00000225"), - Attrs([Attr("address","0x660"), Attr("insn","cmp x1, x0")]), - Var("#1",Imm(64)), NOT(Var("R0",Imm(64)))), Def(Tid(554, "%0000022a"), - Attrs([Attr("address","0x660"), Attr("insn","cmp x1, x0")]), - Var("#2",Imm(64)), PLUS(Var("R1",Imm(64)),NOT(Var("R0",Imm(64))))), -Def(Tid(560, "%00000230"), Attrs([Attr("address","0x660"), -Attr("insn","cmp x1, x0")]), Var("VF",Imm(1)), -NEQ(SIGNED(65,PLUS(Var("#2",Imm(64)),Int(1,64))),PLUS(PLUS(SIGNED(65,Var("R1",Imm(64))),SIGNED(65,Var("#1",Imm(64)))),Int(1,65)))), -Def(Tid(566, "%00000236"), Attrs([Attr("address","0x660"), -Attr("insn","cmp x1, x0")]), Var("CF",Imm(1)), -NEQ(UNSIGNED(65,PLUS(Var("#2",Imm(64)),Int(1,64))),PLUS(PLUS(UNSIGNED(65,Var("R1",Imm(64))),UNSIGNED(65,Var("#1",Imm(64)))),Int(1,65)))), -Def(Tid(570, "%0000023a"), Attrs([Attr("address","0x660"), -Attr("insn","cmp x1, x0")]), Var("ZF",Imm(1)), -EQ(PLUS(Var("#2",Imm(64)),Int(1,64)),Int(0,64))), Def(Tid(574, "%0000023e"), - Attrs([Attr("address","0x660"), Attr("insn","cmp x1, x0")]), - Var("NF",Imm(1)), Extract(63,63,PLUS(Var("#2",Imm(64)),Int(1,64))))]), -Jmps([Goto(Tid(580, "%00000244"), Attrs([Attr("address","0x664"), -Attr("insn","b.eq #0x18")]), EQ(Var("ZF",Imm(1)),Int(1,1)), -Direct(Tid(578, "%00000242"))), Goto(Tid(1_513, "%000005e9"), Attrs([]), - Int(1,1), Direct(Tid(930, "%000003a2")))])), Blk(Tid(930, "%000003a2"), - Attrs([Attr("address","0x668")]), Phis([]), Defs([Def(Tid(933, "%000003a5"), - Attrs([Attr("address","0x668"), Attr("insn","adrp x1, #65536")]), - Var("R1",Imm(64)), Int(65536,64)), Def(Tid(940, "%000003ac"), - Attrs([Attr("address","0x66C"), Attr("insn","ldr x1, [x1, #0xfc0]")]), - Var("R1",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R1",Imm(64)),Int(4032,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(945, "%000003b1"), Attrs([Attr("address","0x670"), -Attr("insn","cbz x1, #0xc")]), EQ(Var("R1",Imm(64)),Int(0,64)), -Direct(Tid(578, "%00000242"))), Goto(Tid(1_514, "%000005ea"), Attrs([]), - Int(1,1), Direct(Tid(949, "%000003b5")))])), Blk(Tid(578, "%00000242"), - Attrs([Attr("address","0x67C")]), Phis([]), Defs([]), -Jmps([Call(Tid(586, "%0000024a"), Attrs([Attr("address","0x67C"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))])), -Blk(Tid(949, "%000003b5"), Attrs([Attr("address","0x674")]), Phis([]), -Defs([Def(Tid(953, "%000003b9"), Attrs([Attr("address","0x674"), -Attr("insn","mov x16, x1")]), Var("R16",Imm(64)), Var("R1",Imm(64)))]), -Jmps([Call(Tid(958, "%000003be"), Attrs([Attr("address","0x678"), -Attr("insn","br x16")]), Int(1,1), (Indirect(Var("R16",Imm(64))),))]))])), -Sub(Tid(1_515, "@frame_dummy"), Attrs([Attr("c.proto","signed (*)(void)"), -Attr("address","0x710")]), "frame_dummy", Args([Arg(Tid(1_533, "%000005fd"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("frame_dummy_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(738, "@frame_dummy"), - Attrs([Attr("address","0x710")]), Phis([]), Defs([]), -Jmps([Call(Tid(740, "%000002e4"), Attrs([Attr("address","0x710"), -Attr("insn","b #-0x90")]), Int(1,1), -(Direct(Tid(1_517, "@register_tm_clones")),))]))])), Sub(Tid(1_516, "@main"), - Attrs([Attr("c.proto","signed (*)(signed argc, const char** argv)"), -Attr("address","0x714")]), "main", Args([Arg(Tid(1_534, "%000005fe"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("main_argc",Imm(32)), -LOW(32,Var("R0",Imm(64))), In()), Arg(Tid(1_535, "%000005ff"), - Attrs([Attr("c.layout","**[char : 8]"), Attr("c.data","Top:u8 ptr ptr"), -Attr("c.type"," const char**")]), Var("main_argv",Imm(64)), -Var("R1",Imm(64)), Both()), Arg(Tid(1_536, "%00000600"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("main_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(742, "@main"), - Attrs([Attr("address","0x714")]), Phis([]), Defs([Def(Tid(746, "%000002ea"), - Attrs([Attr("address","0x714"), Attr("insn","sub sp, sp, #0x10")]), - Var("R31",Imm(64)), PLUS(Var("R31",Imm(64)),Int(18446744073709551600,64))), -Def(Tid(751, "%000002ef"), Attrs([Attr("address","0x718"), -Attr("insn","adrp x8, #69632")]), Var("R8",Imm(64)), Int(69632,64)), -Def(Tid(758, "%000002f6"), Attrs([Attr("address","0x71C"), -Attr("insn","ldr w9, [x8, #0x34]")]), Var("R9",Imm(64)), -UNSIGNED(64,Load(Var("mem",Mem(64,8)),PLUS(Var("R8",Imm(64)),Int(52,64)),LittleEndian(),32))), -Def(Tid(766, "%000002fe"), Attrs([Attr("address","0x720"), -Attr("insn","str w9, [sp, #0xc]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(12,64)),Extract(31,0,Var("R9",Imm(64))),LittleEndian(),32)), -Def(Tid(771, "%00000303"), Attrs([Attr("address","0x724"), -Attr("insn","mov w0, wzr")]), Var("R0",Imm(64)), Int(0,64)), -Def(Tid(778, "%0000030a"), Attrs([Attr("address","0x728"), -Attr("insn","str wzr, [sp, #0xc]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(12,64)),Int(0,32),LittleEndian(),32)), -Def(Tid(785, "%00000311"), Attrs([Attr("address","0x72C"), -Attr("insn","ldr w10, [sp, #0xc]")]), Var("R10",Imm(64)), -UNSIGNED(64,Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(12,64)),LittleEndian(),32))), -Def(Tid(790, "%00000316"), Attrs([Attr("address","0x730"), -Attr("insn","adrp x9, #69632")]), Var("R9",Imm(64)), Int(69632,64)), -Def(Tid(798, "%0000031e"), Attrs([Attr("address","0x734"), -Attr("insn","str w10, [x9, #0x38]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R9",Imm(64)),Int(56,64)),Extract(31,0,Var("R10",Imm(64))),LittleEndian(),32)), -Def(Tid(805, "%00000325"), Attrs([Attr("address","0x738"), -Attr("insn","ldr w8, [x8, #0x34]")]), Var("R8",Imm(64)), -UNSIGNED(64,Load(Var("mem",Mem(64,8)),PLUS(Var("R8",Imm(64)),Int(52,64)),LittleEndian(),32))), -Def(Tid(813, "%0000032d"), Attrs([Attr("address","0x73C"), -Attr("insn","str w8, [sp, #0xc]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(12,64)),Extract(31,0,Var("R8",Imm(64))),LittleEndian(),32)), -Def(Tid(820, "%00000334"), Attrs([Attr("address","0x740"), -Attr("insn","ldr w8, [sp, #0xc]")]), Var("R8",Imm(64)), -UNSIGNED(64,Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(12,64)),LittleEndian(),32))), -Def(Tid(828, "%0000033c"), Attrs([Attr("address","0x744"), -Attr("insn","str w8, [x9, #0x38]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R9",Imm(64)),Int(56,64)),Extract(31,0,Var("R8",Imm(64))),LittleEndian(),32)), -Def(Tid(834, "%00000342"), Attrs([Attr("address","0x748"), -Attr("insn","add sp, sp, #0x10")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(16,64)))]), Jmps([Call(Tid(839, "%00000347"), - Attrs([Attr("address","0x74C"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), -Sub(Tid(1_517, "@register_tm_clones"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x680")]), - "register_tm_clones", Args([Arg(Tid(1_537, "%00000601"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("register_tm_clones_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(588, "@register_tm_clones"), Attrs([Attr("address","0x680")]), - Phis([]), Defs([Def(Tid(591, "%0000024f"), Attrs([Attr("address","0x680"), -Attr("insn","adrp x0, #69632")]), Var("R0",Imm(64)), Int(69632,64)), -Def(Tid(597, "%00000255"), Attrs([Attr("address","0x684"), -Attr("insn","add x0, x0, #0x30")]), Var("R0",Imm(64)), -PLUS(Var("R0",Imm(64)),Int(48,64))), Def(Tid(602, "%0000025a"), - Attrs([Attr("address","0x688"), Attr("insn","adrp x1, #69632")]), - Var("R1",Imm(64)), Int(69632,64)), Def(Tid(608, "%00000260"), - Attrs([Attr("address","0x68C"), Attr("insn","add x1, x1, #0x30")]), - Var("R1",Imm(64)), PLUS(Var("R1",Imm(64)),Int(48,64))), -Def(Tid(615, "%00000267"), Attrs([Attr("address","0x690"), -Attr("insn","sub x1, x1, x0")]), Var("R1",Imm(64)), -PLUS(PLUS(Var("R1",Imm(64)),NOT(Var("R0",Imm(64)))),Int(1,64))), -Def(Tid(621, "%0000026d"), Attrs([Attr("address","0x694"), -Attr("insn","lsr x2, x1, #63")]), Var("R2",Imm(64)), -Concat(Int(0,63),Extract(63,63,Var("R1",Imm(64))))), -Def(Tid(628, "%00000274"), Attrs([Attr("address","0x698"), -Attr("insn","add x1, x2, x1, asr #3")]), Var("R1",Imm(64)), -PLUS(Var("R2",Imm(64)),ARSHIFT(Var("R1",Imm(64)),Int(3,3)))), -Def(Tid(634, "%0000027a"), Attrs([Attr("address","0x69C"), -Attr("insn","asr x1, x1, #1")]), Var("R1",Imm(64)), -SIGNED(64,Extract(63,1,Var("R1",Imm(64)))))]), -Jmps([Goto(Tid(640, "%00000280"), Attrs([Attr("address","0x6A0"), -Attr("insn","cbz x1, #0x18")]), EQ(Var("R1",Imm(64)),Int(0,64)), -Direct(Tid(638, "%0000027e"))), Goto(Tid(1_518, "%000005ee"), Attrs([]), - Int(1,1), Direct(Tid(900, "%00000384")))])), Blk(Tid(900, "%00000384"), - Attrs([Attr("address","0x6A4")]), Phis([]), Defs([Def(Tid(903, "%00000387"), - Attrs([Attr("address","0x6A4"), Attr("insn","adrp x2, #65536")]), - Var("R2",Imm(64)), Int(65536,64)), Def(Tid(910, "%0000038e"), - Attrs([Attr("address","0x6A8"), Attr("insn","ldr x2, [x2, #0xfe0]")]), - Var("R2",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R2",Imm(64)),Int(4064,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(915, "%00000393"), Attrs([Attr("address","0x6AC"), -Attr("insn","cbz x2, #0xc")]), EQ(Var("R2",Imm(64)),Int(0,64)), -Direct(Tid(638, "%0000027e"))), Goto(Tid(1_519, "%000005ef"), Attrs([]), - Int(1,1), Direct(Tid(919, "%00000397")))])), Blk(Tid(638, "%0000027e"), - Attrs([Attr("address","0x6B8")]), Phis([]), Defs([]), -Jmps([Call(Tid(646, "%00000286"), Attrs([Attr("address","0x6B8"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))])), -Blk(Tid(919, "%00000397"), Attrs([Attr("address","0x6B0")]), Phis([]), -Defs([Def(Tid(923, "%0000039b"), Attrs([Attr("address","0x6B0"), -Attr("insn","mov x16, x2")]), Var("R16",Imm(64)), Var("R2",Imm(64)))]), -Jmps([Call(Tid(928, "%000003a0"), Attrs([Attr("address","0x6B4"), -Attr("insn","br x16")]), Int(1,1), -(Indirect(Var("R16",Imm(64))),))]))]))]))) \ No newline at end of file diff --git a/src/test/incorrect/basicassign1/clang/basicassign1.bir b/src/test/incorrect/basicassign1/clang/basicassign1.bir deleted file mode 100644 index e6929c350..000000000 --- a/src/test/incorrect/basicassign1/clang/basicassign1.bir +++ /dev/null @@ -1,237 +0,0 @@ -000005f0: program -000005da: sub __cxa_finalize(__cxa_finalize_result) -000005f1: __cxa_finalize_result :: out u32 = low:32[R0] - -00000380: -00000478: R16 := 0x11000 -0000047f: R17 := mem[R16 + 8, el]:u64 -00000485: R16 := R16 + 8 -0000048a: call R17 with noreturn - -000005db: sub __do_global_dtors_aux(__do_global_dtors_aux_result) -000005f2: __do_global_dtors_aux_result :: out u32 = low:32[R0] - -0000028a: -0000028e: #3 := R31 - 0x20 -00000294: mem := mem with [#3, el]:u64 <- R29 -0000029a: mem := mem with [#3 + 8, el]:u64 <- R30 -0000029e: R31 := #3 -000002a4: R29 := R31 -000002ac: mem := mem with [R31 + 0x10, el]:u64 <- R19 -000002b1: R19 := 0x11000 -000002b8: R0 := pad:64[mem[R19 + 0x30]] -000002bf: when 31:0[R0] <> 0 goto %000002bd -000005dc: goto %00000349 - -00000349: -0000034c: R0 := 0x10000 -00000353: R0 := mem[R0 + 0xFC8, el]:u64 -00000359: when R0 = 0 goto %00000357 -000005dd: goto %00000370 - -00000370: -00000373: R0 := 0x11000 -0000037a: R0 := mem[R0 + 0x28, el]:u64 -0000037f: R30 := 0x6F0 -00000382: call @__cxa_finalize with return %00000357 - -00000357: -0000035f: R30 := 0x6F4 -00000361: call @deregister_tm_clones with return %00000363 - -00000363: -00000366: R0 := 1 -0000036e: mem := mem with [R19 + 0x30] <- 7:0[R0] -000005de: goto %000002bd - -000002bd: -000002c7: R19 := mem[R31 + 0x10, el]:u64 -000002ce: R29 := mem[R31, el]:u64 -000002d3: R30 := mem[R31 + 8, el]:u64 -000002d7: R31 := R31 + 0x20 -000002dc: call R30 with noreturn - -000005df: sub __libc_start_main(__libc_start_main_main, __libc_start_main_arg2, __libc_start_main_arg3, __libc_start_main_auxv, __libc_start_main_result) -000005f3: __libc_start_main_main :: in u64 = R0 -000005f4: __libc_start_main_arg2 :: in u32 = low:32[R1] -000005f5: __libc_start_main_arg3 :: in out u64 = R2 -000005f6: __libc_start_main_auxv :: in out u64 = R3 -000005f7: __libc_start_main_result :: out u32 = low:32[R0] - -000001e3: -00000462: R16 := 0x11000 -00000469: R17 := mem[R16, el]:u64 -0000046f: R16 := R16 -00000474: call R17 with noreturn - -000005e0: sub _fini(_fini_result) -000005f8: _fini_result :: out u32 = low:32[R0] - -0000001f: -00000025: #0 := R31 - 0x10 -0000002b: mem := mem with [#0, el]:u64 <- R29 -00000031: mem := mem with [#0 + 8, el]:u64 <- R30 -00000035: R31 := #0 -0000003b: R29 := R31 -00000042: R29 := mem[R31, el]:u64 -00000047: R30 := mem[R31 + 8, el]:u64 -0000004b: R31 := R31 + 0x10 -00000050: call R30 with noreturn - -000005e1: sub _init(_init_result) -000005f9: _init_result :: out u32 = low:32[R0] - -0000052d: -00000533: #5 := R31 - 0x10 -00000539: mem := mem with [#5, el]:u64 <- R29 -0000053f: mem := mem with [#5 + 8, el]:u64 <- R30 -00000543: R31 := #5 -00000549: R29 := R31 -0000054e: R30 := 0x590 -00000550: call @call_weak_fn with return %00000552 - -00000552: -00000557: R29 := mem[R31, el]:u64 -0000055c: R30 := mem[R31 + 8, el]:u64 -00000560: R31 := R31 + 0x10 -00000565: call R30 with noreturn - -000005e2: sub _start(_start_result) -000005fa: _start_result :: out u32 = low:32[R0] - -000001a4: -000001a9: R29 := 0 -000001ae: R30 := 0 -000001b4: R5 := R0 -000001bb: R1 := mem[R31, el]:u64 -000001c1: R2 := R31 + 8 -000001c7: R6 := R31 -000001cc: R0 := 0x10000 -000001d3: R0 := mem[R0 + 0xFD8, el]:u64 -000001d8: R3 := 0 -000001dd: R4 := 0 -000001e2: R30 := 0x630 -000001e5: call @__libc_start_main with return %000001e7 - -000001e7: -000001ea: R30 := 0x634 -000001ed: call @abort with return %000005e3 - -000005e3: -000005e4: call @call_weak_fn with noreturn - -000005e5: sub abort() - - -000001eb: -000004a4: R16 := 0x11000 -000004ab: R17 := mem[R16 + 0x18, el]:u64 -000004b1: R16 := R16 + 0x18 -000004b6: call R17 with noreturn - -000005e6: sub call_weak_fn(call_weak_fn_result) -000005fb: call_weak_fn_result :: out u32 = low:32[R0] - -000001ef: -000001f2: R0 := 0x10000 -000001f9: R0 := mem[R0 + 0xFD0, el]:u64 -000001ff: when R0 = 0 goto %000001fd -000005e7: goto %000003c0 - -000001fd: -00000205: call R30 with noreturn - -000003c0: -000003c3: goto @__gmon_start__ - -000003c1: -0000048e: R16 := 0x11000 -00000495: R17 := mem[R16 + 0x10, el]:u64 -0000049b: R16 := R16 + 0x10 -000004a0: call R17 with noreturn - -000005e8: sub deregister_tm_clones(deregister_tm_clones_result) -000005fc: deregister_tm_clones_result :: out u32 = low:32[R0] - -0000020b: -0000020e: R0 := 0x11000 -00000214: R0 := R0 + 0x30 -00000219: R1 := 0x11000 -0000021f: R1 := R1 + 0x30 -00000225: #1 := ~R0 -0000022a: #2 := R1 + ~R0 -00000230: VF := extend:65[#2 + 1] <> extend:65[R1] + extend:65[#1] + 1 -00000236: CF := pad:65[#2 + 1] <> pad:65[R1] + pad:65[#1] + 1 -0000023a: ZF := #2 + 1 = 0 -0000023e: NF := 63:63[#2 + 1] -00000244: when ZF goto %00000242 -000005e9: goto %000003a2 - -000003a2: -000003a5: R1 := 0x10000 -000003ac: R1 := mem[R1 + 0xFC0, el]:u64 -000003b1: when R1 = 0 goto %00000242 -000005ea: goto %000003b5 - -00000242: -0000024a: call R30 with noreturn - -000003b5: -000003b9: R16 := R1 -000003be: call R16 with noreturn - -000005eb: sub frame_dummy(frame_dummy_result) -000005fd: frame_dummy_result :: out u32 = low:32[R0] - -000002e2: -000002e4: call @register_tm_clones with noreturn - -000005ec: sub main(main_argc, main_argv, main_result) -000005fe: main_argc :: in u32 = low:32[R0] -000005ff: main_argv :: in out u64 = R1 -00000600: main_result :: out u32 = low:32[R0] - -000002e6: -000002ea: R31 := R31 - 0x10 -000002ef: R8 := 0x11000 -000002f6: R9 := pad:64[mem[R8 + 0x34, el]:u32] -000002fe: mem := mem with [R31 + 0xC, el]:u32 <- 31:0[R9] -00000303: R0 := 0 -0000030a: mem := mem with [R31 + 0xC, el]:u32 <- 0 -00000311: R10 := pad:64[mem[R31 + 0xC, el]:u32] -00000316: R9 := 0x11000 -0000031e: mem := mem with [R9 + 0x38, el]:u32 <- 31:0[R10] -00000325: R8 := pad:64[mem[R8 + 0x34, el]:u32] -0000032d: mem := mem with [R31 + 0xC, el]:u32 <- 31:0[R8] -00000334: R8 := pad:64[mem[R31 + 0xC, el]:u32] -0000033c: mem := mem with [R9 + 0x38, el]:u32 <- 31:0[R8] -00000342: R31 := R31 + 0x10 -00000347: call R30 with noreturn - -000005ed: sub register_tm_clones(register_tm_clones_result) -00000601: register_tm_clones_result :: out u32 = low:32[R0] - -0000024c: -0000024f: R0 := 0x11000 -00000255: R0 := R0 + 0x30 -0000025a: R1 := 0x11000 -00000260: R1 := R1 + 0x30 -00000267: R1 := R1 + ~R0 + 1 -0000026d: R2 := 0.63:63[R1] -00000274: R1 := R2 + (R1 ~>> 3) -0000027a: R1 := extend:64[63:1[R1]] -00000280: when R1 = 0 goto %0000027e -000005ee: goto %00000384 - -00000384: -00000387: R2 := 0x10000 -0000038e: R2 := mem[R2 + 0xFE0, el]:u64 -00000393: when R2 = 0 goto %0000027e -000005ef: goto %00000397 - -0000027e: -00000286: call R30 with noreturn - -00000397: -0000039b: R16 := R2 -000003a0: call R16 with noreturn diff --git a/src/test/incorrect/basicassign1/clang/basicassign1.expected b/src/test/incorrect/basicassign1/clang/basicassign1.expected index 9dc6dba0e..3034ecda6 100644 --- a/src/test/incorrect/basicassign1/clang/basicassign1.expected +++ b/src/test/incorrect/basicassign1/clang/basicassign1.expected @@ -1,19 +1,13 @@ var {:extern} Gamma_R0: bool; -var {:extern} Gamma_R10: bool; -var {:extern} Gamma_R31: bool; var {:extern} Gamma_R8: bool; var {:extern} Gamma_R9: bool; var {:extern} Gamma_mem: [bv64]bool; -var {:extern} Gamma_stack: [bv64]bool; var {:extern} R0: bv64; -var {:extern} R10: bv64; -var {:extern} R31: bv64; var {:extern} R8: bv64; var {:extern} R9: bv64; var {:extern} mem: [bv64]bv8; -var {:extern} stack: [bv64]bv8; const {:extern} $z_addr: bv64; -axiom ($z_addr == 69688bv64); +axiom ($z_addr == 131096bv64); function {:extern} L(mem$in: [bv64]bv8, index: bv64) returns (bool) { (if (index == $z_addr) then true else false) } @@ -23,6 +17,10 @@ function {:extern} gamma_load32(gammaMap: [bv64]bool, index: bv64) returns (bool (gammaMap[bvadd64(index, 3bv64)] && (gammaMap[bvadd64(index, 2bv64)] && (gammaMap[bvadd64(index, 1bv64)] && gammaMap[index]))) } +function {:extern} gamma_load64(gammaMap: [bv64]bool, index: bv64) returns (bool) { + (gammaMap[bvadd64(index, 7bv64)] && (gammaMap[bvadd64(index, 6bv64)] && (gammaMap[bvadd64(index, 5bv64)] && (gammaMap[bvadd64(index, 4bv64)] && (gammaMap[bvadd64(index, 3bv64)] && (gammaMap[bvadd64(index, 2bv64)] && (gammaMap[bvadd64(index, 1bv64)] && gammaMap[index]))))))) +} + function {:extern} gamma_store32(gammaMap: [bv64]bool, index: bv64, value: bool) returns ([bv64]bool) { gammaMap[index := value][bvadd64(index, 1bv64) := value][bvadd64(index, 2bv64) := value][bvadd64(index, 3bv64) := value] } @@ -44,11 +42,13 @@ procedure {:extern} rely(); modifies Gamma_mem, mem; ensures (Gamma_mem == old(Gamma_mem)); ensures (mem == old(mem)); - free ensures (memory_load32_le(mem, 1892bv64) == 131073bv32); - free ensures (memory_load64_le(mem, 69064bv64) == 1808bv64); - free ensures (memory_load64_le(mem, 69072bv64) == 1728bv64); - free ensures (memory_load64_le(mem, 69592bv64) == 1812bv64); - free ensures (memory_load64_le(mem, 69672bv64) == 69672bv64); + free ensures (memory_load32_le(mem, 2312bv64) == 131073bv32); + free ensures (memory_load64_le(mem, 130424bv64) == 2256bv64); + free ensures (memory_load64_le(mem, 130432bv64) == 2176bv64); + free ensures (memory_load64_le(mem, 131032bv64) == 131096bv64); + free ensures (memory_load64_le(mem, 131048bv64) == 131092bv64); + free ensures (memory_load64_le(mem, 131056bv64) == 2260bv64); + free ensures (memory_load64_le(mem, 131080bv64) == 131080bv64); procedure {:extern} rely_transitive(); modifies Gamma_mem, mem; @@ -66,67 +66,54 @@ procedure {:extern} rely_reflexive(); procedure {:extern} guarantee_reflexive(); modifies Gamma_mem, mem; -procedure main_1812(); - modifies Gamma_R0, Gamma_R10, Gamma_R31, Gamma_R8, Gamma_R9, Gamma_mem, Gamma_stack, R0, R10, R31, R8, R9, mem, stack; - free requires (memory_load64_le(mem, 69664bv64) == 0bv64); - free requires (memory_load64_le(mem, 69672bv64) == 69672bv64); - free requires (memory_load32_le(mem, 1892bv64) == 131073bv32); - free requires (memory_load64_le(mem, 69064bv64) == 1808bv64); - free requires (memory_load64_le(mem, 69072bv64) == 1728bv64); - free requires (memory_load64_le(mem, 69592bv64) == 1812bv64); - free requires (memory_load64_le(mem, 69672bv64) == 69672bv64); - free ensures (Gamma_R31 == old(Gamma_R31)); - free ensures (R31 == old(R31)); - free ensures (memory_load32_le(mem, 1892bv64) == 131073bv32); - free ensures (memory_load64_le(mem, 69064bv64) == 1808bv64); - free ensures (memory_load64_le(mem, 69072bv64) == 1728bv64); - free ensures (memory_load64_le(mem, 69592bv64) == 1812bv64); - free ensures (memory_load64_le(mem, 69672bv64) == 69672bv64); +procedure main(); + modifies Gamma_R0, Gamma_R8, Gamma_R9, Gamma_mem, R0, R8, R9, mem; + free requires (memory_load64_le(mem, 131072bv64) == 0bv64); + free requires (memory_load64_le(mem, 131080bv64) == 131080bv64); + free requires (memory_load32_le(mem, 2312bv64) == 131073bv32); + free requires (memory_load64_le(mem, 130424bv64) == 2256bv64); + free requires (memory_load64_le(mem, 130432bv64) == 2176bv64); + free requires (memory_load64_le(mem, 131032bv64) == 131096bv64); + free requires (memory_load64_le(mem, 131048bv64) == 131092bv64); + free requires (memory_load64_le(mem, 131056bv64) == 2260bv64); + free requires (memory_load64_le(mem, 131080bv64) == 131080bv64); + free ensures (memory_load32_le(mem, 2312bv64) == 131073bv32); + free ensures (memory_load64_le(mem, 130424bv64) == 2256bv64); + free ensures (memory_load64_le(mem, 130432bv64) == 2176bv64); + free ensures (memory_load64_le(mem, 131032bv64) == 131096bv64); + free ensures (memory_load64_le(mem, 131048bv64) == 131092bv64); + free ensures (memory_load64_le(mem, 131056bv64) == 2260bv64); + free ensures (memory_load64_le(mem, 131080bv64) == 131080bv64); -implementation main_1812() +implementation main() { - var Gamma_load18: bool; - var Gamma_load19: bool; - var Gamma_load20: bool; - var Gamma_load21: bool; - var load18: bv32; - var load19: bv32; - var load20: bv32; - var load21: bv32; + var $load$18: bv64; + var $load$19: bv32; + var $load$20: bv64; + var Gamma_$load$18: bool; + var Gamma_$load$19: bool; + var Gamma_$load$20: bool; lmain: assume {:captureState "lmain"} true; - R31, Gamma_R31 := bvadd64(R31, 18446744073709551600bv64), Gamma_R31; - R8, Gamma_R8 := 69632bv64, true; - call rely(); - load18, Gamma_load18 := memory_load32_le(mem, bvadd64(R8, 52bv64)), (gamma_load32(Gamma_mem, bvadd64(R8, 52bv64)) || L(mem, bvadd64(R8, 52bv64))); - R9, Gamma_R9 := zero_extend32_32(load18), Gamma_load18; - stack, Gamma_stack := memory_store32_le(stack, bvadd64(R31, 12bv64), R9[32:0]), gamma_store32(Gamma_stack, bvadd64(R31, 12bv64), Gamma_R9); - assume {:captureState "%000002fe"} true; + R8, Gamma_R8 := 126976bv64, true; + R9, Gamma_R9 := 126976bv64, true; R0, Gamma_R0 := 0bv64, true; - stack, Gamma_stack := memory_store32_le(stack, bvadd64(R31, 12bv64), 0bv32), gamma_store32(Gamma_stack, bvadd64(R31, 12bv64), true); - assume {:captureState "%0000030a"} true; - load19, Gamma_load19 := memory_load32_le(stack, bvadd64(R31, 12bv64)), gamma_load32(Gamma_stack, bvadd64(R31, 12bv64)); - R10, Gamma_R10 := zero_extend32_32(load19), Gamma_load19; - R9, Gamma_R9 := 69632bv64, true; call rely(); - assert (L(mem, bvadd64(R9, 56bv64)) ==> Gamma_R10); - mem, Gamma_mem := memory_store32_le(mem, bvadd64(R9, 56bv64), R10[32:0]), gamma_store32(Gamma_mem, bvadd64(R9, 56bv64), Gamma_R10); - assume {:captureState "%0000031e"} true; + $load$18, Gamma_$load$18 := memory_load64_le(mem, bvadd64(R8, 4072bv64)), (gamma_load64(Gamma_mem, bvadd64(R8, 4072bv64)) || L(mem, bvadd64(R8, 4072bv64))); + R8, Gamma_R8 := $load$18, Gamma_$load$18; + call rely(); + $load$19, Gamma_$load$19 := memory_load32_le(mem, R8), (gamma_load32(Gamma_mem, R8) || L(mem, R8)); + R8, Gamma_R8 := zero_extend32_32($load$19), Gamma_$load$19; call rely(); - load20, Gamma_load20 := memory_load32_le(mem, bvadd64(R8, 52bv64)), (gamma_load32(Gamma_mem, bvadd64(R8, 52bv64)) || L(mem, bvadd64(R8, 52bv64))); - R8, Gamma_R8 := zero_extend32_32(load20), Gamma_load20; - stack, Gamma_stack := memory_store32_le(stack, bvadd64(R31, 12bv64), R8[32:0]), gamma_store32(Gamma_stack, bvadd64(R31, 12bv64), Gamma_R8); - assume {:captureState "%0000032d"} true; - load21, Gamma_load21 := memory_load32_le(stack, bvadd64(R31, 12bv64)), gamma_load32(Gamma_stack, bvadd64(R31, 12bv64)); - R8, Gamma_R8 := zero_extend32_32(load21), Gamma_load21; + $load$20, Gamma_$load$20 := memory_load64_le(mem, bvadd64(R9, 4056bv64)), (gamma_load64(Gamma_mem, bvadd64(R9, 4056bv64)) || L(mem, bvadd64(R9, 4056bv64))); + R9, Gamma_R9 := $load$20, Gamma_$load$20; call rely(); - assert (L(mem, bvadd64(R9, 56bv64)) ==> Gamma_R8); - mem, Gamma_mem := memory_store32_le(mem, bvadd64(R9, 56bv64), R8[32:0]), gamma_store32(Gamma_mem, bvadd64(R9, 56bv64), Gamma_R8); - assume {:captureState "%0000033c"} true; - R31, Gamma_R31 := bvadd64(R31, 16bv64), Gamma_R31; - goto main_1812_basil_return; - main_1812_basil_return: - assume {:captureState "main_1812_basil_return"} true; + assert (L(mem, R9) ==> Gamma_R8); + mem, Gamma_mem := memory_store32_le(mem, R9, R8[32:0]), gamma_store32(Gamma_mem, R9, Gamma_R8); + assume {:captureState "%00000294"} true; + goto main_basil_return; + main_basil_return: + assume {:captureState "main_basil_return"} true; return; } diff --git a/src/test/incorrect/basicassign1/clang/basicassign1.gts b/src/test/incorrect/basicassign1/clang/basicassign1.gts deleted file mode 100644 index 84d031124..000000000 Binary files a/src/test/incorrect/basicassign1/clang/basicassign1.gts and /dev/null differ diff --git a/src/test/incorrect/basicassign1/clang/basicassign1.md5sum b/src/test/incorrect/basicassign1/clang/basicassign1.md5sum new file mode 100644 index 000000000..57fcbc476 --- /dev/null +++ b/src/test/incorrect/basicassign1/clang/basicassign1.md5sum @@ -0,0 +1,5 @@ +5b1f77665f9504ef51465bdee56755cf incorrect/basicassign1/clang/a.out +deeb18db074096d649075ab4840efd34 incorrect/basicassign1/clang/basicassign1.adt +c550f55b7a5b9db0f91729fdcb5c81e1 incorrect/basicassign1/clang/basicassign1.bir +f8f254214515d616fa14c6ab237a0c54 incorrect/basicassign1/clang/basicassign1.relf +6eef8059f6b4eecedb9c68def10c633c incorrect/basicassign1/clang/basicassign1.gts diff --git a/src/test/incorrect/basicassign1/clang/basicassign1.relf b/src/test/incorrect/basicassign1/clang/basicassign1.relf deleted file mode 100644 index 11288c252..000000000 --- a/src/test/incorrect/basicassign1/clang/basicassign1.relf +++ /dev/null @@ -1,124 +0,0 @@ - -Relocation section '.rela.dyn' at offset 0x460 contains 8 entries: - Offset Info Type Symbol's Value Symbol's Name + Addend -0000000000010dc8 0000000000000403 R_AARCH64_RELATIVE 710 -0000000000010dd0 0000000000000403 R_AARCH64_RELATIVE 6c0 -0000000000010fd8 0000000000000403 R_AARCH64_RELATIVE 714 -0000000000011028 0000000000000403 R_AARCH64_RELATIVE 11028 -0000000000010fc0 0000000400000401 R_AARCH64_GLOB_DAT 0000000000000000 _ITM_deregisterTMCloneTable + 0 -0000000000010fc8 0000000500000401 R_AARCH64_GLOB_DAT 0000000000000000 __cxa_finalize@GLIBC_2.17 + 0 -0000000000010fd0 0000000600000401 R_AARCH64_GLOB_DAT 0000000000000000 __gmon_start__ + 0 -0000000000010fe0 0000000800000401 R_AARCH64_GLOB_DAT 0000000000000000 _ITM_registerTMCloneTable + 0 - -Relocation section '.rela.plt' at offset 0x520 contains 4 entries: - Offset Info Type Symbol's Value Symbol's Name + Addend -0000000000011000 0000000300000402 R_AARCH64_JUMP_SLOT 0000000000000000 __libc_start_main@GLIBC_2.34 + 0 -0000000000011008 0000000500000402 R_AARCH64_JUMP_SLOT 0000000000000000 __cxa_finalize@GLIBC_2.17 + 0 -0000000000011010 0000000600000402 R_AARCH64_JUMP_SLOT 0000000000000000 __gmon_start__ + 0 -0000000000011018 0000000700000402 R_AARCH64_JUMP_SLOT 0000000000000000 abort@GLIBC_2.17 + 0 - -Symbol table '.dynsym' contains 9 entries: - Num: Value Size Type Bind Vis Ndx Name - 0: 0000000000000000 0 NOTYPE LOCAL DEFAULT UND - 1: 0000000000000580 0 SECTION LOCAL DEFAULT 11 .init - 2: 0000000000011020 0 SECTION LOCAL DEFAULT 23 .data - 3: 0000000000000000 0 FUNC GLOBAL DEFAULT UND __libc_start_main@GLIBC_2.34 (2) - 4: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_deregisterTMCloneTable - 5: 0000000000000000 0 FUNC WEAK DEFAULT UND __cxa_finalize@GLIBC_2.17 (3) - 6: 0000000000000000 0 NOTYPE WEAK DEFAULT UND __gmon_start__ - 7: 0000000000000000 0 FUNC GLOBAL DEFAULT UND abort@GLIBC_2.17 (3) - 8: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_registerTMCloneTable - -Symbol table '.symtab' contains 91 entries: - Num: Value Size Type Bind Vis Ndx Name - 0: 0000000000000000 0 NOTYPE LOCAL DEFAULT UND - 1: 0000000000000238 0 SECTION LOCAL DEFAULT 1 .interp - 2: 0000000000000254 0 SECTION LOCAL DEFAULT 2 .note.gnu.build-id - 3: 0000000000000278 0 SECTION LOCAL DEFAULT 3 .note.ABI-tag - 4: 0000000000000298 0 SECTION LOCAL DEFAULT 4 .gnu.hash - 5: 00000000000002b8 0 SECTION LOCAL DEFAULT 5 .dynsym - 6: 0000000000000390 0 SECTION LOCAL DEFAULT 6 .dynstr - 7: 000000000000041e 0 SECTION LOCAL DEFAULT 7 .gnu.version - 8: 0000000000000430 0 SECTION LOCAL DEFAULT 8 .gnu.version_r - 9: 0000000000000460 0 SECTION LOCAL DEFAULT 9 .rela.dyn - 10: 0000000000000520 0 SECTION LOCAL DEFAULT 10 .rela.plt - 11: 0000000000000580 0 SECTION LOCAL DEFAULT 11 .init - 12: 00000000000005a0 0 SECTION LOCAL DEFAULT 12 .plt - 13: 0000000000000600 0 SECTION LOCAL DEFAULT 13 .text - 14: 0000000000000750 0 SECTION LOCAL DEFAULT 14 .fini - 15: 0000000000000764 0 SECTION LOCAL DEFAULT 15 .rodata - 16: 0000000000000768 0 SECTION LOCAL DEFAULT 16 .eh_frame_hdr - 17: 00000000000007a8 0 SECTION LOCAL DEFAULT 17 .eh_frame - 18: 0000000000010dc8 0 SECTION LOCAL DEFAULT 18 .init_array - 19: 0000000000010dd0 0 SECTION LOCAL DEFAULT 19 .fini_array - 20: 0000000000010dd8 0 SECTION LOCAL DEFAULT 20 .dynamic - 21: 0000000000010fb8 0 SECTION LOCAL DEFAULT 21 .got - 22: 0000000000010fe8 0 SECTION LOCAL DEFAULT 22 .got.plt - 23: 0000000000011020 0 SECTION LOCAL DEFAULT 23 .data - 24: 0000000000011030 0 SECTION LOCAL DEFAULT 24 .bss - 25: 0000000000000000 0 SECTION LOCAL DEFAULT 25 .comment - 26: 0000000000000000 0 FILE LOCAL DEFAULT ABS Scrt1.o - 27: 0000000000000278 0 NOTYPE LOCAL DEFAULT 3 $d - 28: 0000000000000278 32 OBJECT LOCAL DEFAULT 3 __abi_tag - 29: 0000000000000600 0 NOTYPE LOCAL DEFAULT 13 $x - 30: 00000000000007bc 0 NOTYPE LOCAL DEFAULT 17 $d - 31: 0000000000000764 0 NOTYPE LOCAL DEFAULT 15 $d - 32: 0000000000000000 0 FILE LOCAL DEFAULT ABS crti.o - 33: 0000000000000634 0 NOTYPE LOCAL DEFAULT 13 $x - 34: 0000000000000634 20 FUNC LOCAL DEFAULT 13 call_weak_fn - 35: 0000000000000580 0 NOTYPE LOCAL DEFAULT 11 $x - 36: 0000000000000750 0 NOTYPE LOCAL DEFAULT 14 $x - 37: 0000000000000000 0 FILE LOCAL DEFAULT ABS crtn.o - 38: 0000000000000590 0 NOTYPE LOCAL DEFAULT 11 $x - 39: 000000000000075c 0 NOTYPE LOCAL DEFAULT 14 $x - 40: 0000000000000000 0 FILE LOCAL DEFAULT ABS crtstuff.c - 41: 0000000000000650 0 NOTYPE LOCAL DEFAULT 13 $x - 42: 0000000000000650 0 FUNC LOCAL DEFAULT 13 deregister_tm_clones - 43: 0000000000000680 0 FUNC LOCAL DEFAULT 13 register_tm_clones - 44: 0000000000011028 0 NOTYPE LOCAL DEFAULT 23 $d - 45: 00000000000006c0 0 FUNC LOCAL DEFAULT 13 __do_global_dtors_aux - 46: 0000000000011030 1 OBJECT LOCAL DEFAULT 24 completed.0 - 47: 0000000000010dd0 0 NOTYPE LOCAL DEFAULT 19 $d - 48: 0000000000010dd0 0 OBJECT LOCAL DEFAULT 19 __do_global_dtors_aux_fini_array_entry - 49: 0000000000000710 0 FUNC LOCAL DEFAULT 13 frame_dummy - 50: 0000000000010dc8 0 NOTYPE LOCAL DEFAULT 18 $d - 51: 0000000000010dc8 0 OBJECT LOCAL DEFAULT 18 __frame_dummy_init_array_entry - 52: 00000000000007d0 0 NOTYPE LOCAL DEFAULT 17 $d - 53: 0000000000011030 0 NOTYPE LOCAL DEFAULT 24 $d - 54: 0000000000000000 0 FILE LOCAL DEFAULT ABS basicassign1.c - 55: 0000000000000714 0 NOTYPE LOCAL DEFAULT 13 $x.0 - 56: 0000000000011034 0 NOTYPE LOCAL DEFAULT 24 $d.1 - 57: 000000000000002a 0 NOTYPE LOCAL DEFAULT 25 $d.2 - 58: 0000000000000830 0 NOTYPE LOCAL DEFAULT 17 $d.3 - 59: 0000000000000000 0 FILE LOCAL DEFAULT ABS crtstuff.c - 60: 000000000000085c 0 NOTYPE LOCAL DEFAULT 17 $d - 61: 000000000000085c 0 OBJECT LOCAL DEFAULT 17 __FRAME_END__ - 62: 0000000000000000 0 FILE LOCAL DEFAULT ABS - 63: 0000000000010dd8 0 OBJECT LOCAL DEFAULT ABS _DYNAMIC - 64: 0000000000000768 0 NOTYPE LOCAL DEFAULT 16 __GNU_EH_FRAME_HDR - 65: 0000000000010fb8 0 OBJECT LOCAL DEFAULT ABS _GLOBAL_OFFSET_TABLE_ - 66: 00000000000005a0 0 NOTYPE LOCAL DEFAULT 12 $x - 67: 0000000000000000 0 FUNC GLOBAL DEFAULT UND __libc_start_main@GLIBC_2.34 - 68: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_deregisterTMCloneTable - 69: 0000000000011020 0 NOTYPE WEAK DEFAULT 23 data_start - 70: 0000000000011030 0 NOTYPE GLOBAL DEFAULT 24 __bss_start__ - 71: 0000000000000000 0 FUNC WEAK DEFAULT UND __cxa_finalize@GLIBC_2.17 - 72: 0000000000011040 0 NOTYPE GLOBAL DEFAULT 24 _bss_end__ - 73: 0000000000011030 0 NOTYPE GLOBAL DEFAULT 23 _edata - 74: 0000000000011038 4 OBJECT GLOBAL DEFAULT 24 z - 75: 0000000000000750 0 FUNC GLOBAL HIDDEN 14 _fini - 76: 0000000000011040 0 NOTYPE GLOBAL DEFAULT 24 __bss_end__ - 77: 0000000000011020 0 NOTYPE GLOBAL DEFAULT 23 __data_start - 78: 0000000000000000 0 NOTYPE WEAK DEFAULT UND __gmon_start__ - 79: 0000000000011028 0 OBJECT GLOBAL HIDDEN 23 __dso_handle - 80: 0000000000000000 0 FUNC GLOBAL DEFAULT UND abort@GLIBC_2.17 - 81: 0000000000000764 4 OBJECT GLOBAL DEFAULT 15 _IO_stdin_used - 82: 0000000000011034 4 OBJECT GLOBAL DEFAULT 24 secret - 83: 0000000000011040 0 NOTYPE GLOBAL DEFAULT 24 _end - 84: 0000000000000600 52 FUNC GLOBAL DEFAULT 13 _start - 85: 0000000000011040 0 NOTYPE GLOBAL DEFAULT 24 __end__ - 86: 0000000000011030 0 NOTYPE GLOBAL DEFAULT 24 __bss_start - 87: 0000000000000714 60 FUNC GLOBAL DEFAULT 13 main - 88: 0000000000011030 0 OBJECT GLOBAL HIDDEN 23 __TMC_END__ - 89: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_registerTMCloneTable - 90: 0000000000000580 0 FUNC GLOBAL HIDDEN 11 _init diff --git a/src/test/incorrect/basicassign1/clang/basicassign1_gtirb.expected b/src/test/incorrect/basicassign1/clang/basicassign1_gtirb.expected index 09fa4c3d1..bcbff1d95 100644 --- a/src/test/incorrect/basicassign1/clang/basicassign1_gtirb.expected +++ b/src/test/incorrect/basicassign1/clang/basicassign1_gtirb.expected @@ -1,19 +1,13 @@ var {:extern} Gamma_R0: bool; -var {:extern} Gamma_R10: bool; -var {:extern} Gamma_R31: bool; var {:extern} Gamma_R8: bool; var {:extern} Gamma_R9: bool; var {:extern} Gamma_mem: [bv64]bool; -var {:extern} Gamma_stack: [bv64]bool; var {:extern} R0: bv64; -var {:extern} R10: bv64; -var {:extern} R31: bv64; var {:extern} R8: bv64; var {:extern} R9: bv64; var {:extern} mem: [bv64]bv8; -var {:extern} stack: [bv64]bv8; const {:extern} $z_addr: bv64; -axiom ($z_addr == 69688bv64); +axiom ($z_addr == 131096bv64); function {:extern} L(mem$in: [bv64]bv8, index: bv64) returns (bool) { (if (index == $z_addr) then true else false) } @@ -23,6 +17,10 @@ function {:extern} gamma_load32(gammaMap: [bv64]bool, index: bv64) returns (bool (gammaMap[bvadd64(index, 3bv64)] && (gammaMap[bvadd64(index, 2bv64)] && (gammaMap[bvadd64(index, 1bv64)] && gammaMap[index]))) } +function {:extern} gamma_load64(gammaMap: [bv64]bool, index: bv64) returns (bool) { + (gammaMap[bvadd64(index, 7bv64)] && (gammaMap[bvadd64(index, 6bv64)] && (gammaMap[bvadd64(index, 5bv64)] && (gammaMap[bvadd64(index, 4bv64)] && (gammaMap[bvadd64(index, 3bv64)] && (gammaMap[bvadd64(index, 2bv64)] && (gammaMap[bvadd64(index, 1bv64)] && gammaMap[index]))))))) +} + function {:extern} gamma_store32(gammaMap: [bv64]bool, index: bv64, value: bool) returns ([bv64]bool) { gammaMap[index := value][bvadd64(index, 1bv64) := value][bvadd64(index, 2bv64) := value][bvadd64(index, 3bv64) := value] } @@ -44,11 +42,13 @@ procedure {:extern} rely(); modifies Gamma_mem, mem; ensures (Gamma_mem == old(Gamma_mem)); ensures (mem == old(mem)); - free ensures (memory_load32_le(mem, 1892bv64) == 131073bv32); - free ensures (memory_load64_le(mem, 69064bv64) == 1808bv64); - free ensures (memory_load64_le(mem, 69072bv64) == 1728bv64); - free ensures (memory_load64_le(mem, 69592bv64) == 1812bv64); - free ensures (memory_load64_le(mem, 69672bv64) == 69672bv64); + free ensures (memory_load32_le(mem, 2312bv64) == 131073bv32); + free ensures (memory_load64_le(mem, 130424bv64) == 2256bv64); + free ensures (memory_load64_le(mem, 130432bv64) == 2176bv64); + free ensures (memory_load64_le(mem, 131032bv64) == 131096bv64); + free ensures (memory_load64_le(mem, 131048bv64) == 131092bv64); + free ensures (memory_load64_le(mem, 131056bv64) == 2260bv64); + free ensures (memory_load64_le(mem, 131080bv64) == 131080bv64); procedure {:extern} rely_transitive(); modifies Gamma_mem, mem; @@ -66,67 +66,54 @@ procedure {:extern} rely_reflexive(); procedure {:extern} guarantee_reflexive(); modifies Gamma_mem, mem; -procedure main_1812(); - modifies Gamma_R0, Gamma_R10, Gamma_R31, Gamma_R8, Gamma_R9, Gamma_mem, Gamma_stack, R0, R10, R31, R8, R9, mem, stack; - free requires (memory_load64_le(mem, 69664bv64) == 0bv64); - free requires (memory_load64_le(mem, 69672bv64) == 69672bv64); - free requires (memory_load32_le(mem, 1892bv64) == 131073bv32); - free requires (memory_load64_le(mem, 69064bv64) == 1808bv64); - free requires (memory_load64_le(mem, 69072bv64) == 1728bv64); - free requires (memory_load64_le(mem, 69592bv64) == 1812bv64); - free requires (memory_load64_le(mem, 69672bv64) == 69672bv64); - free ensures (Gamma_R31 == old(Gamma_R31)); - free ensures (R31 == old(R31)); - free ensures (memory_load32_le(mem, 1892bv64) == 131073bv32); - free ensures (memory_load64_le(mem, 69064bv64) == 1808bv64); - free ensures (memory_load64_le(mem, 69072bv64) == 1728bv64); - free ensures (memory_load64_le(mem, 69592bv64) == 1812bv64); - free ensures (memory_load64_le(mem, 69672bv64) == 69672bv64); +procedure main(); + modifies Gamma_R0, Gamma_R8, Gamma_R9, Gamma_mem, R0, R8, R9, mem; + free requires (memory_load64_le(mem, 131072bv64) == 0bv64); + free requires (memory_load64_le(mem, 131080bv64) == 131080bv64); + free requires (memory_load32_le(mem, 2312bv64) == 131073bv32); + free requires (memory_load64_le(mem, 130424bv64) == 2256bv64); + free requires (memory_load64_le(mem, 130432bv64) == 2176bv64); + free requires (memory_load64_le(mem, 131032bv64) == 131096bv64); + free requires (memory_load64_le(mem, 131048bv64) == 131092bv64); + free requires (memory_load64_le(mem, 131056bv64) == 2260bv64); + free requires (memory_load64_le(mem, 131080bv64) == 131080bv64); + free ensures (memory_load32_le(mem, 2312bv64) == 131073bv32); + free ensures (memory_load64_le(mem, 130424bv64) == 2256bv64); + free ensures (memory_load64_le(mem, 130432bv64) == 2176bv64); + free ensures (memory_load64_le(mem, 131032bv64) == 131096bv64); + free ensures (memory_load64_le(mem, 131048bv64) == 131092bv64); + free ensures (memory_load64_le(mem, 131056bv64) == 2260bv64); + free ensures (memory_load64_le(mem, 131080bv64) == 131080bv64); -implementation main_1812() +implementation main() { - var Gamma_load18: bool; - var Gamma_load19: bool; - var Gamma_load20: bool; - var Gamma_load21: bool; - var load18: bv32; - var load19: bv32; - var load20: bv32; - var load21: bv32; - main_1812__0__DfHVfCMXSoudSko_BS89Jw: - assume {:captureState "main_1812__0__DfHVfCMXSoudSko_BS89Jw"} true; - R31, Gamma_R31 := bvadd64(R31, 18446744073709551600bv64), Gamma_R31; - R8, Gamma_R8 := 69632bv64, true; - call rely(); - load18, Gamma_load18 := memory_load32_le(mem, bvadd64(R8, 52bv64)), (gamma_load32(Gamma_mem, bvadd64(R8, 52bv64)) || L(mem, bvadd64(R8, 52bv64))); - R9, Gamma_R9 := zero_extend32_32(load18), Gamma_load18; - stack, Gamma_stack := memory_store32_le(stack, bvadd64(R31, 12bv64), R9[32:0]), gamma_store32(Gamma_stack, bvadd64(R31, 12bv64), Gamma_R9); - assume {:captureState "1824_0"} true; + var $load5: bv64; + var $load6: bv32; + var $load7: bv64; + var Gamma_$load5: bool; + var Gamma_$load6: bool; + var Gamma_$load7: bool; + $main$__0__$D9t2gNJrSmyMH3GAVRe3IQ: + assume {:captureState "$main$__0__$D9t2gNJrSmyMH3GAVRe3IQ"} true; + R8, Gamma_R8 := 126976bv64, true; + R9, Gamma_R9 := 126976bv64, true; R0, Gamma_R0 := 0bv64, true; - stack, Gamma_stack := memory_store32_le(stack, bvadd64(R31, 12bv64), 0bv32), gamma_store32(Gamma_stack, bvadd64(R31, 12bv64), true); - assume {:captureState "1832_0"} true; - load19, Gamma_load19 := memory_load32_le(stack, bvadd64(R31, 12bv64)), gamma_load32(Gamma_stack, bvadd64(R31, 12bv64)); - R10, Gamma_R10 := zero_extend32_32(load19), Gamma_load19; - R9, Gamma_R9 := 69632bv64, true; call rely(); - assert (L(mem, bvadd64(R9, 56bv64)) ==> Gamma_R10); - mem, Gamma_mem := memory_store32_le(mem, bvadd64(R9, 56bv64), R10[32:0]), gamma_store32(Gamma_mem, bvadd64(R9, 56bv64), Gamma_R10); - assume {:captureState "1844_0"} true; + $load5, Gamma_$load5 := memory_load64_le(mem, bvadd64(R8, 4072bv64)), (gamma_load64(Gamma_mem, bvadd64(R8, 4072bv64)) || L(mem, bvadd64(R8, 4072bv64))); + R8, Gamma_R8 := $load5, Gamma_$load5; + call rely(); + $load6, Gamma_$load6 := memory_load32_le(mem, R8), (gamma_load32(Gamma_mem, R8) || L(mem, R8)); + R8, Gamma_R8 := zero_extend32_32($load6), Gamma_$load6; call rely(); - load20, Gamma_load20 := memory_load32_le(mem, bvadd64(R8, 52bv64)), (gamma_load32(Gamma_mem, bvadd64(R8, 52bv64)) || L(mem, bvadd64(R8, 52bv64))); - R8, Gamma_R8 := zero_extend32_32(load20), Gamma_load20; - stack, Gamma_stack := memory_store32_le(stack, bvadd64(R31, 12bv64), R8[32:0]), gamma_store32(Gamma_stack, bvadd64(R31, 12bv64), Gamma_R8); - assume {:captureState "1852_0"} true; - load21, Gamma_load21 := memory_load32_le(stack, bvadd64(R31, 12bv64)), gamma_load32(Gamma_stack, bvadd64(R31, 12bv64)); - R8, Gamma_R8 := zero_extend32_32(load21), Gamma_load21; + $load7, Gamma_$load7 := memory_load64_le(mem, bvadd64(R9, 4056bv64)), (gamma_load64(Gamma_mem, bvadd64(R9, 4056bv64)) || L(mem, bvadd64(R9, 4056bv64))); + R9, Gamma_R9 := $load7, Gamma_$load7; call rely(); - assert (L(mem, bvadd64(R9, 56bv64)) ==> Gamma_R8); - mem, Gamma_mem := memory_store32_le(mem, bvadd64(R9, 56bv64), R8[32:0]), gamma_store32(Gamma_mem, bvadd64(R9, 56bv64), Gamma_R8); - assume {:captureState "1860_0"} true; - R31, Gamma_R31 := bvadd64(R31, 16bv64), Gamma_R31; - goto main_1812_basil_return; - main_1812_basil_return: - assume {:captureState "main_1812_basil_return"} true; + assert (L(mem, R9) ==> Gamma_R8); + mem, Gamma_mem := memory_store32_le(mem, R9, R8[32:0]), gamma_store32(Gamma_mem, R9, Gamma_R8); + assume {:captureState "2284$0"} true; + goto main_basil_return; + main_basil_return: + assume {:captureState "main_basil_return"} true; return; } diff --git a/src/test/incorrect/basicassign1/clang_O2/basicassign1.adt b/src/test/incorrect/basicassign1/clang_O2/basicassign1.adt deleted file mode 100644 index 160c76fc0..000000000 --- a/src/test/incorrect/basicassign1/clang_O2/basicassign1.adt +++ /dev/null @@ -1,495 +0,0 @@ -Project(Attrs([Attr("filename","\"clang_O2/basicassign1.out\""), -Attr("image-specification","(declare abi (name str))\n(declare arch (name str))\n(declare base-address (addr int))\n(declare bias (off int))\n(declare bits (size int))\n(declare code-region (addr int) (size int) (off int))\n(declare code-start (addr int))\n(declare entry-point (addr int))\n(declare external-reference (addr int) (name str))\n(declare format (name str))\n(declare is-executable (flag bool))\n(declare is-little-endian (flag bool))\n(declare llvm:base-address (addr int))\n(declare llvm:code-entry (name str) (off int) (size int))\n(declare llvm:coff-import-library (name str))\n(declare llvm:coff-virtual-section-header (name str) (addr int) (size int))\n(declare llvm:elf-program-header (name str) (off int) (size int))\n(declare llvm:elf-program-header-flags (name str) (ld bool) (r bool) \n (w bool) (x bool))\n(declare llvm:elf-virtual-program-header (name str) (addr int) (size int))\n(declare llvm:entry-point (addr int))\n(declare llvm:macho-symbol (name str) (value int))\n(declare llvm:name-reference (at int) (name str))\n(declare llvm:relocation (at int) (addr int))\n(declare llvm:section-entry (name str) (addr int) (size int) (off int))\n(declare llvm:section-flags (name str) (r bool) (w bool) (x bool))\n(declare llvm:segment-command (name str) (off int) (size int))\n(declare llvm:segment-command-flags (name str) (r bool) (w bool) (x bool))\n(declare llvm:symbol-entry (name str) (addr int) (size int) (off int)\n (value int))\n(declare llvm:virtual-segment-command (name str) (addr int) (size int))\n(declare mapped (addr int) (size int) (off int))\n(declare named-region (addr int) (size int) (name str))\n(declare named-symbol (addr int) (name str))\n(declare require (name str))\n(declare section (addr int) (size int))\n(declare segment (addr int) (size int) (r bool) (w bool) (x bool))\n(declare subarch (name str))\n(declare symbol-chunk (addr int) (size int) (root int))\n(declare symbol-value (addr int) (value int))\n(declare system (name str))\n(declare vendor (name str))\n\n(abi unknown)\n(arch aarch64)\n(base-address 0)\n(bias 0)\n(bits 64)\n(code-region 1836 20 1836)\n(code-region 1536 300 1536)\n(code-region 1440 96 1440)\n(code-region 1408 24 1408)\n(code-start 1588)\n(code-start 1536)\n(code-start 1812)\n(entry-point 1536)\n(external-reference 69568 _ITM_deregisterTMCloneTable)\n(external-reference 69576 __cxa_finalize)\n(external-reference 69584 __gmon_start__)\n(external-reference 69600 _ITM_registerTMCloneTable)\n(external-reference 69632 __libc_start_main)\n(external-reference 69640 __cxa_finalize)\n(external-reference 69648 __gmon_start__)\n(external-reference 69656 abort)\n(format elf)\n(is-executable true)\n(is-little-endian true)\n(llvm:base-address 0)\n(llvm:code-entry abort 0 0)\n(llvm:code-entry __cxa_finalize 0 0)\n(llvm:code-entry __libc_start_main 0 0)\n(llvm:code-entry _init 1408 0)\n(llvm:code-entry main 1812 24)\n(llvm:code-entry _start 1536 52)\n(llvm:code-entry abort@GLIBC_2.17 0 0)\n(llvm:code-entry _fini 1836 0)\n(llvm:code-entry __cxa_finalize@GLIBC_2.17 0 0)\n(llvm:code-entry __libc_start_main@GLIBC_2.34 0 0)\n(llvm:code-entry frame_dummy 1808 0)\n(llvm:code-entry __do_global_dtors_aux 1728 0)\n(llvm:code-entry register_tm_clones 1664 0)\n(llvm:code-entry deregister_tm_clones 1616 0)\n(llvm:code-entry call_weak_fn 1588 20)\n(llvm:code-entry .fini 1836 20)\n(llvm:code-entry .text 1536 300)\n(llvm:code-entry .plt 1440 96)\n(llvm:code-entry .init 1408 24)\n(llvm:elf-program-header 08 3528 568)\n(llvm:elf-program-header 07 0 0)\n(llvm:elf-program-header 06 1860 60)\n(llvm:elf-program-header 05 596 68)\n(llvm:elf-program-header 04 3544 480)\n(llvm:elf-program-header 03 3528 616)\n(llvm:elf-program-header 02 0 2100)\n(llvm:elf-program-header 01 568 27)\n(llvm:elf-program-header 00 64 504)\n(llvm:elf-program-header-flags 08 false true false false)\n(llvm:elf-program-header-flags 07 false true true false)\n(llvm:elf-program-header-flags 06 false true false false)\n(llvm:elf-program-header-flags 05 false true false false)\n(llvm:elf-program-header-flags 04 false true true false)\n(llvm:elf-program-header-flags 03 true true true false)\n(llvm:elf-program-header-flags 02 true true false true)\n(llvm:elf-program-header-flags 01 false true false false)\n(llvm:elf-program-header-flags 00 false true false false)\n(llvm:elf-virtual-program-header 08 69064 568)\n(llvm:elf-virtual-program-header 07 0 0)\n(llvm:elf-virtual-program-header 06 1860 60)\n(llvm:elf-virtual-program-header 05 596 68)\n(llvm:elf-virtual-program-header 04 69080 480)\n(llvm:elf-virtual-program-header 03 69064 632)\n(llvm:elf-virtual-program-header 02 0 2100)\n(llvm:elf-virtual-program-header 01 568 27)\n(llvm:elf-virtual-program-header 00 64 504)\n(llvm:entry-point 1536)\n(llvm:name-reference 69656 abort)\n(llvm:name-reference 69648 __gmon_start__)\n(llvm:name-reference 69640 __cxa_finalize)\n(llvm:name-reference 69632 __libc_start_main)\n(llvm:name-reference 69600 _ITM_registerTMCloneTable)\n(llvm:name-reference 69584 __gmon_start__)\n(llvm:name-reference 69576 __cxa_finalize)\n(llvm:name-reference 69568 _ITM_deregisterTMCloneTable)\n(llvm:section-entry .shstrtab 0 259 6977)\n(llvm:section-entry .strtab 0 577 6400)\n(llvm:section-entry .symtab 0 2184 4216)\n(llvm:section-entry .comment 0 71 4144)\n(llvm:section-entry .bss 69680 16 4144)\n(llvm:section-entry .data 69664 16 4128)\n(llvm:section-entry .got.plt 69608 56 4072)\n(llvm:section-entry .got 69560 48 4024)\n(llvm:section-entry .dynamic 69080 480 3544)\n(llvm:section-entry .fini_array 69072 8 3536)\n(llvm:section-entry .init_array 69064 8 3528)\n(llvm:section-entry .eh_frame 1920 180 1920)\n(llvm:section-entry .eh_frame_hdr 1860 60 1860)\n(llvm:section-entry .rodata 1856 4 1856)\n(llvm:section-entry .fini 1836 20 1836)\n(llvm:section-entry .text 1536 300 1536)\n(llvm:section-entry .plt 1440 96 1440)\n(llvm:section-entry .init 1408 24 1408)\n(llvm:section-entry .rela.plt 1312 96 1312)\n(llvm:section-entry .rela.dyn 1120 192 1120)\n(llvm:section-entry .gnu.version_r 1072 48 1072)\n(llvm:section-entry .gnu.version 1054 18 1054)\n(llvm:section-entry .dynstr 912 141 912)\n(llvm:section-entry .dynsym 696 216 696)\n(llvm:section-entry .gnu.hash 664 28 664)\n(llvm:section-entry .note.ABI-tag 632 32 632)\n(llvm:section-entry .note.gnu.build-id 596 36 596)\n(llvm:section-entry .interp 568 27 568)\n(llvm:section-flags .shstrtab true false false)\n(llvm:section-flags .strtab true false false)\n(llvm:section-flags .symtab true false false)\n(llvm:section-flags .comment true false false)\n(llvm:section-flags .bss true true false)\n(llvm:section-flags .data true true false)\n(llvm:section-flags .got.plt true true false)\n(llvm:section-flags .got true true false)\n(llvm:section-flags .dynamic true true false)\n(llvm:section-flags .fini_array true true false)\n(llvm:section-flags .init_array true true false)\n(llvm:section-flags .eh_frame true false false)\n(llvm:section-flags .eh_frame_hdr true false false)\n(llvm:section-flags .rodata true false false)\n(llvm:section-flags .fini true false true)\n(llvm:section-flags .text true false true)\n(llvm:section-flags .plt true false true)\n(llvm:section-flags .init true false true)\n(llvm:section-flags .rela.plt true false false)\n(llvm:section-flags .rela.dyn true false false)\n(llvm:section-flags .gnu.version_r true false false)\n(llvm:section-flags .gnu.version true false false)\n(llvm:section-flags .dynstr true false false)\n(llvm:section-flags .dynsym true false false)\n(llvm:section-flags .gnu.hash true false false)\n(llvm:section-flags .note.ABI-tag true false false)\n(llvm:section-flags .note.gnu.build-id true false false)\n(llvm:section-flags .interp true false false)\n(llvm:symbol-entry abort 0 0 0 0)\n(llvm:symbol-entry __cxa_finalize 0 0 0 0)\n(llvm:symbol-entry __libc_start_main 0 0 0 0)\n(llvm:symbol-entry _init 1408 0 1408 1408)\n(llvm:symbol-entry main 1812 24 1812 1812)\n(llvm:symbol-entry _start 1536 52 1536 1536)\n(llvm:symbol-entry abort@GLIBC_2.17 0 0 0 0)\n(llvm:symbol-entry _fini 1836 0 1836 1836)\n(llvm:symbol-entry __cxa_finalize@GLIBC_2.17 0 0 0 0)\n(llvm:symbol-entry __libc_start_main@GLIBC_2.34 0 0 0 0)\n(llvm:symbol-entry frame_dummy 1808 0 1808 1808)\n(llvm:symbol-entry __do_global_dtors_aux 1728 0 1728 1728)\n(llvm:symbol-entry register_tm_clones 1664 0 1664 1664)\n(llvm:symbol-entry deregister_tm_clones 1616 0 1616 1616)\n(llvm:symbol-entry call_weak_fn 1588 20 1588 1588)\n(mapped 0 2100 0)\n(mapped 69064 616 3528)\n(named-region 0 2100 02)\n(named-region 69064 632 03)\n(named-region 568 27 .interp)\n(named-region 596 36 .note.gnu.build-id)\n(named-region 632 32 .note.ABI-tag)\n(named-region 664 28 .gnu.hash)\n(named-region 696 216 .dynsym)\n(named-region 912 141 .dynstr)\n(named-region 1054 18 .gnu.version)\n(named-region 1072 48 .gnu.version_r)\n(named-region 1120 192 .rela.dyn)\n(named-region 1312 96 .rela.plt)\n(named-region 1408 24 .init)\n(named-region 1440 96 .plt)\n(named-region 1536 300 .text)\n(named-region 1836 20 .fini)\n(named-region 1856 4 .rodata)\n(named-region 1860 60 .eh_frame_hdr)\n(named-region 1920 180 .eh_frame)\n(named-region 69064 8 .init_array)\n(named-region 69072 8 .fini_array)\n(named-region 69080 480 .dynamic)\n(named-region 69560 48 .got)\n(named-region 69608 56 .got.plt)\n(named-region 69664 16 .data)\n(named-region 69680 16 .bss)\n(named-region 0 71 .comment)\n(named-region 0 2184 .symtab)\n(named-region 0 577 .strtab)\n(named-region 0 259 .shstrtab)\n(named-symbol 1588 call_weak_fn)\n(named-symbol 1616 deregister_tm_clones)\n(named-symbol 1664 register_tm_clones)\n(named-symbol 1728 __do_global_dtors_aux)\n(named-symbol 1808 frame_dummy)\n(named-symbol 0 __libc_start_main@GLIBC_2.34)\n(named-symbol 0 __cxa_finalize@GLIBC_2.17)\n(named-symbol 1836 _fini)\n(named-symbol 0 abort@GLIBC_2.17)\n(named-symbol 1536 _start)\n(named-symbol 1812 main)\n(named-symbol 1408 _init)\n(named-symbol 0 __libc_start_main)\n(named-symbol 0 __cxa_finalize)\n(named-symbol 0 abort)\n(require libc.so.6)\n(section 568 27)\n(section 596 36)\n(section 632 32)\n(section 664 28)\n(section 696 216)\n(section 912 141)\n(section 1054 18)\n(section 1072 48)\n(section 1120 192)\n(section 1312 96)\n(section 1408 24)\n(section 1440 96)\n(section 1536 300)\n(section 1836 20)\n(section 1856 4)\n(section 1860 60)\n(section 1920 180)\n(section 69064 8)\n(section 69072 8)\n(section 69080 480)\n(section 69560 48)\n(section 69608 56)\n(section 69664 16)\n(section 69680 16)\n(section 0 71)\n(section 0 2184)\n(section 0 577)\n(section 0 259)\n(segment 0 2100 true false true)\n(segment 69064 632 true true false)\n(subarch v8)\n(symbol-chunk 1588 20 1588)\n(symbol-chunk 1536 52 1536)\n(symbol-chunk 1812 24 1812)\n(symbol-value 1588 1588)\n(symbol-value 1616 1616)\n(symbol-value 1664 1664)\n(symbol-value 1728 1728)\n(symbol-value 1808 1808)\n(symbol-value 1836 1836)\n(symbol-value 1536 1536)\n(symbol-value 1812 1812)\n(symbol-value 1408 1408)\n(symbol-value 0 0)\n(system \"\")\n(vendor \"\")\n"), -Attr("abi-name","\"aarch64-linux-gnu-elf\"")]), -Sections([Section(".shstrtab", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x00\x06\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x48\x1c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x38\x00\x09\x00\x40\x00\x1d\x00\x1c\x00\x06\x00\x00\x00\x04\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x04\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x34\x08\x00\x00\x00\x00\x00\x00\x34\x08\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x01\x00\x00\x00\x06\x00\x00\x00\xc8\x0d\x00\x00\x00\x00\x00\x00\xc8\x0d\x01\x00\x00\x00\x00\x00\xc8\x0d\x01"), -Section(".strtab", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x00\x06\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x48\x1c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x38\x00\x09\x00\x40\x00\x1d\x00\x1c\x00\x06\x00\x00\x00\x04\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x04\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x34\x08\x00\x00\x00\x00\x00\x00\x34\x08\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x01\x00\x00\x00\x06\x00\x00\x00\xc8\x0d\x00\x00\x00\x00\x00\x00\xc8\x0d\x01\x00\x00\x00\x00\x00\xc8\x0d\x01\x00\x00\x00\x00\x00\x68\x02\x00\x00\x00\x00\x00\x00\x78\x02\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x02\x00\x00\x00\x06\x00\x00\x00\xd8\x0d\x00\x00\x00\x00\x00\x00\xd8\x0d\x01\x00\x00\x00\x00\x00\xd8\x0d\x01\x00\x00\x00\x00\x00\xe0\x01\x00\x00\x00\x00\x00\x00\xe0\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x04\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x50\xe5\x74\x64\x04\x00\x00\x00\x44\x07\x00\x00\x00\x00\x00\x00\x44\x07\x00\x00\x00\x00\x00\x00\x44\x07\x00\x00\x00\x00\x00\x00\x3c\x00\x00\x00\x00\x00\x00\x00\x3c\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x51\xe5\x74\x64\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x52\xe5\x74\x64\x04\x00\x00\x00\xc8\x0d\x00\x00\x00\x00\x00\x00\xc8\x0d\x01\x00\x00\x00\x00\x00\xc8\x0d\x01\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x2f\x6c\x69\x62\x2f\x6c\x64\x2d\x6c"), -Section(".comment", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x00\x06\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x48\x1c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x38\x00\x09\x00\x40\x00\x1d\x00\x1c\x00\x06\x00\x00\x00\x04\x00\x00"), -Section(".interp", 0x238, "\x2f\x6c\x69\x62\x2f\x6c\x64\x2d\x6c\x69\x6e\x75\x78\x2d\x61\x61\x72\x63\x68\x36\x34\x2e\x73\x6f\x2e\x31\x00"), -Section(".note.gnu.build-id", 0x254, "\x04\x00\x00\x00\x14\x00\x00\x00\x03\x00\x00\x00\x47\x4e\x55\x00\xf2\x55\xf1\x72\x79\x01\xd9\xcb\x4c\xd0\xb9\x4f\xe2\x4c\xa6\xda\x52\x56\x5e\x03"), -Section(".note.ABI-tag", 0x278, "\x04\x00\x00\x00\x10\x00\x00\x00\x01\x00\x00\x00\x47\x4e\x55\x00\x00\x00\x00\x00\x03\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00"), -Section(".gnu.hash", 0x298, "\x01\x00\x00\x00\x01\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".dynsym", 0x2B8, "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x0b\x00\x80\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x17\x00\x20\x10\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x48\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x22\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x22\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x73\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".dynstr", 0x390, "\x00\x5f\x5f\x63\x78\x61\x5f\x66\x69\x6e\x61\x6c\x69\x7a\x65\x00\x5f\x5f\x6c\x69\x62\x63\x5f\x73\x74\x61\x72\x74\x5f\x6d\x61\x69\x6e\x00\x61\x62\x6f\x72\x74\x00\x6c\x69\x62\x63\x2e\x73\x6f\x2e\x36\x00\x47\x4c\x49\x42\x43\x5f\x32\x2e\x31\x37\x00\x47\x4c\x49\x42\x43\x5f\x32\x2e\x33\x34\x00\x5f\x49\x54\x4d\x5f\x64\x65\x72\x65\x67\x69\x73\x74\x65\x72\x54\x4d\x43\x6c\x6f\x6e\x65\x54\x61\x62\x6c\x65\x00\x5f\x5f\x67\x6d\x6f\x6e\x5f\x73\x74\x61\x72\x74\x5f\x5f\x00\x5f\x49\x54\x4d\x5f\x72\x65\x67\x69\x73\x74\x65\x72\x54\x4d\x43\x6c\x6f\x6e\x65\x54\x61\x62\x6c\x65\x00"), -Section(".gnu.version", 0x41E, "\x00\x00\x00\x00\x00\x00\x02\x00\x01\x00\x03\x00\x01\x00\x03\x00\x01\x00"), -Section(".gnu.version_r", 0x430, "\x01\x00\x02\x00\x28\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x97\x91\x96\x06\x00\x00\x03\x00\x32\x00\x00\x00\x10\x00\x00\x00\xb4\x91\x96\x06\x00\x00\x02\x00\x3d\x00\x00\x00\x00\x00\x00\x00"), -Section(".rela.dyn", 0x460, "\xc8\x0d\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x10\x07\x00\x00\x00\x00\x00\x00\xd0\x0d\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\xc0\x06\x00\x00\x00\x00\x00\x00\xd8\x0f\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x14\x07\x00\x00\x00\x00\x00\x00\x28\x10\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x28\x10\x01\x00\x00\x00\x00\x00\xc0\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xc8\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xd0\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe0\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".rela.plt", 0x520, "\x00\x10\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x08\x10\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x10\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x18\x10\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".init", 0x580, "\x1f\x20\x03\xd5\xfd\x7b\xbf\xa9\xfd\x03\x00\x91\x2a\x00\x00\x94\xfd\x7b\xc1\xa8\xc0\x03\x5f\xd6"), -Section(".plt", 0x5A0, "\xf0\x7b\xbf\xa9\x90\x00\x00\x90\x11\xfe\x47\xf9\x10\xe2\x3f\x91\x20\x02\x1f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x90\x00\x00\xb0\x11\x02\x40\xf9\x10\x02\x00\x91\x20\x02\x1f\xd6\x90\x00\x00\xb0\x11\x06\x40\xf9\x10\x22\x00\x91\x20\x02\x1f\xd6\x90\x00\x00\xb0\x11\x0a\x40\xf9\x10\x42\x00\x91\x20\x02\x1f\xd6\x90\x00\x00\xb0\x11\x0e\x40\xf9\x10\x62\x00\x91\x20\x02\x1f\xd6"), -Section(".text", 0x600, "\x1f\x20\x03\xd5\x1d\x00\x80\xd2\x1e\x00\x80\xd2\xe5\x03\x00\xaa\xe1\x03\x40\xf9\xe2\x23\x00\x91\xe6\x03\x00\x91\x80\x00\x00\x90\x00\xec\x47\xf9\x03\x00\x80\xd2\x04\x00\x80\xd2\xe5\xff\xff\x97\xf0\xff\xff\x97\x80\x00\x00\x90\x00\xe8\x47\xf9\x40\x00\x00\xb4\xe8\xff\xff\x17\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x80\x00\x00\xb0\x00\xc0\x00\x91\x81\x00\x00\xb0\x21\xc0\x00\x91\x3f\x00\x00\xeb\xc0\x00\x00\x54\x81\x00\x00\x90\x21\xe0\x47\xf9\x61\x00\x00\xb4\xf0\x03\x01\xaa\x00\x02\x1f\xd6\xc0\x03\x5f\xd6\x80\x00\x00\xb0\x00\xc0\x00\x91\x81\x00\x00\xb0\x21\xc0\x00\x91\x21\x00\x00\xcb\x22\xfc\x7f\xd3\x41\x0c\x81\x8b\x21\xfc\x41\x93\xc1\x00\x00\xb4\x82\x00\x00\x90\x42\xf0\x47\xf9\x62\x00\x00\xb4\xf0\x03\x02\xaa\x00\x02\x1f\xd6\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\xfd\x7b\xbe\xa9\xfd\x03\x00\x91\xf3\x0b\x00\xf9\x93\x00\x00\xb0\x60\xc2\x40\x39\x40\x01\x00\x35\x80\x00\x00\x90\x00\xe4\x47\xf9\x80\x00\x00\xb4\x80\x00\x00\xb0\x00\x14\x40\xf9\xb9\xff\xff\x97\xd8\xff\xff\x97\x20\x00\x80\x52\x60\xc2\x00\x39\xf3\x0b\x40\xf9\xfd\x7b\xc2\xa8\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\xdc\xff\xff\x17\x88\x00\x00\xb0\x89\x00\x00\xb0\xe0\x03\x1f\x2a\x08\x35\x40\xb9\x28\x39\x00\xb9\xc0\x03\x5f\xd6"), -Section(".fini", 0x72C, "\x1f\x20\x03\xd5\xfd\x7b\xbf\xa9\xfd\x03\x00\x91\xfd\x7b\xc1\xa8\xc0\x03\x5f\xd6"), -Section(".rodata", 0x740, "\x01\x00\x02\x00"), -Section(".eh_frame_hdr", 0x744, "\x01\x1b\x03\x3b\x38\x00\x00\x00\x06\x00\x00\x00\xbc\xfe\xff\xff\x50\x00\x00\x00\x0c\xff\xff\xff\x64\x00\x00\x00\x3c\xff\xff\xff\x78\x00\x00\x00\x7c\xff\xff\xff\x8c\x00\x00\x00\xcc\xff\xff\xff\xb0\x00\x00\x00\xd0\xff\xff\xff\xd8\x00\x00\x00"), -Section(".eh_frame", 0x780, "\x10\x00\x00\x00\x00\x00\x00\x00\x01\x7a\x52\x00\x04\x78\x1e\x01\x1b\x0c\x1f\x00\x10\x00\x00\x00\x18\x00\x00\x00\x64\xfe\xff\xff\x34\x00\x00\x00\x00\x41\x07\x1e\x10\x00\x00\x00\x2c\x00\x00\x00\xa0\xfe\xff\xff\x30\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x40\x00\x00\x00\xbc\xfe\xff\xff\x3c\x00\x00\x00\x00\x00\x00\x00\x20\x00\x00\x00\x54\x00\x00\x00\xe8\xfe\xff\xff\x48\x00\x00\x00\x00\x41\x0e\x20\x9d\x04\x9e\x03\x42\x93\x02\x4e\xde\xdd\xd3\x0e\x00\x00\x00\x00\x10\x00\x00\x00\x78\x00\x00\x00\x14\xff\xff\xff\x04\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x01\x7a\x52\x00\x01\x7c\x1e\x01\x1b\x0c\x1f\x00\x10\x00\x00\x00\x18\x00\x00\x00\xf0\xfe\xff\xff\x18\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".fini_array", 0x10DD0, "\xc0\x06\x00\x00\x00\x00\x00\x00"), -Section(".dynamic", 0x10DD8, "\x01\x00\x00\x00\x00\x00\x00\x00\x28\x00\x00\x00\x00\x00\x00\x00\x0c\x00\x00\x00\x00\x00\x00\x00\x80\x05\x00\x00\x00\x00\x00\x00\x0d\x00\x00\x00\x00\x00\x00\x00\x2c\x07\x00\x00\x00\x00\x00\x00\x19\x00\x00\x00\x00\x00\x00\x00\xc8\x0d\x01\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x1a\x00\x00\x00\x00\x00\x00\x00\xd0\x0d\x01\x00\x00\x00\x00\x00\x1c\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\xf5\xfe\xff\x6f\x00\x00\x00\x00\x98\x02\x00\x00\x00\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x90\x03\x00\x00\x00\x00\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\xb8\x02\x00\x00\x00\x00\x00\x00\x0a\x00\x00\x00\x00\x00\x00\x00\x8d\x00\x00\x00\x00\x00\x00\x00\x0b\x00\x00\x00\x00\x00\x00\x00\x18\x00\x00\x00\x00\x00\x00\x00\x15\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\xe8\x0f\x01\x00\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x60\x00\x00\x00\x00\x00\x00\x00\x14\x00\x00\x00\x00\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x17\x00\x00\x00\x00\x00\x00\x00\x20\x05\x00\x00\x00\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x60\x04\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\xc0\x00\x00\x00\x00\x00\x00\x00\x09\x00\x00\x00\x00\x00\x00\x00\x18\x00\x00\x00\x00\x00\x00\x00\xfb\xff\xff\x6f\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\xfe\xff\xff\x6f\x00\x00\x00\x00\x30\x04\x00\x00\x00\x00\x00\x00\xff\xff\xff\x6f\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\xf0\xff\xff\x6f\x00\x00\x00\x00\x1e\x04\x00\x00\x00\x00\x00\x00\xf9\xff\xff\x6f\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".init_array", 0x10DC8, "\x10\x07\x00\x00\x00\x00\x00\x00"), -Section(".got", 0x10FB8, "\xd8\x0d\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x14\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".got.plt", 0x10FE8, "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xa0\x05\x00\x00\x00\x00\x00\x00\xa0\x05\x00\x00\x00\x00\x00\x00\xa0\x05\x00\x00\x00\x00\x00\x00\xa0\x05\x00\x00\x00\x00\x00\x00"), -Section(".data", 0x11020, "\x00\x00\x00\x00\x00\x00\x00\x00\x28\x10\x01\x00\x00\x00\x00\x00")]), -Memmap([Annotation(Region(0x0,0x833), Attr("segment","02 0 2100")), -Annotation(Region(0x600,0x633), Attr("symbol","\"_start\"")), -Annotation(Region(0x0,0x102), Attr("section","\".shstrtab\"")), -Annotation(Region(0x0,0x240), Attr("section","\".strtab\"")), -Annotation(Region(0x0,0x46), Attr("section","\".comment\"")), -Annotation(Region(0x238,0x252), Attr("section","\".interp\"")), -Annotation(Region(0x254,0x277), Attr("section","\".note.gnu.build-id\"")), -Annotation(Region(0x278,0x297), Attr("section","\".note.ABI-tag\"")), -Annotation(Region(0x298,0x2B3), Attr("section","\".gnu.hash\"")), -Annotation(Region(0x2B8,0x38F), Attr("section","\".dynsym\"")), -Annotation(Region(0x390,0x41C), Attr("section","\".dynstr\"")), -Annotation(Region(0x41E,0x42F), Attr("section","\".gnu.version\"")), -Annotation(Region(0x430,0x45F), Attr("section","\".gnu.version_r\"")), -Annotation(Region(0x460,0x51F), Attr("section","\".rela.dyn\"")), -Annotation(Region(0x520,0x57F), Attr("section","\".rela.plt\"")), -Annotation(Region(0x580,0x597), Attr("section","\".init\"")), -Annotation(Region(0x5A0,0x5FF), Attr("section","\".plt\"")), -Annotation(Region(0x580,0x597), Attr("code-region","()")), -Annotation(Region(0x5A0,0x5FF), Attr("code-region","()")), -Annotation(Region(0x600,0x633), Attr("symbol-info","_start 0x600 52")), -Annotation(Region(0x634,0x647), Attr("symbol","\"call_weak_fn\"")), -Annotation(Region(0x634,0x647), Attr("symbol-info","call_weak_fn 0x634 20")), -Annotation(Region(0x600,0x72B), Attr("section","\".text\"")), -Annotation(Region(0x600,0x72B), Attr("code-region","()")), -Annotation(Region(0x714,0x72B), Attr("symbol","\"main\"")), -Annotation(Region(0x714,0x72B), Attr("symbol-info","main 0x714 24")), -Annotation(Region(0x72C,0x73F), Attr("section","\".fini\"")), -Annotation(Region(0x72C,0x73F), Attr("code-region","()")), -Annotation(Region(0x740,0x743), Attr("section","\".rodata\"")), -Annotation(Region(0x744,0x77F), Attr("section","\".eh_frame_hdr\"")), -Annotation(Region(0x780,0x833), Attr("section","\".eh_frame\"")), -Annotation(Region(0x10DC8,0x1102F), Attr("segment","03 0x10DC8 632")), -Annotation(Region(0x10DD0,0x10DD7), Attr("section","\".fini_array\"")), -Annotation(Region(0x10DD8,0x10FB7), Attr("section","\".dynamic\"")), -Annotation(Region(0x10DC8,0x10DCF), Attr("section","\".init_array\"")), -Annotation(Region(0x10FB8,0x10FE7), Attr("section","\".got\"")), -Annotation(Region(0x10FE8,0x1101F), Attr("section","\".got.plt\"")), -Annotation(Region(0x11020,0x1102F), Attr("section","\".data\""))]), -Program(Tid(1_402, "%0000057a"), Attrs([]), - Subs([Sub(Tid(1_380, "@__cxa_finalize"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x5D0"), -Attr("stub","()")]), "__cxa_finalize", Args([Arg(Tid(1_403, "%0000057b"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("__cxa_finalize_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(796, "@__cxa_finalize"), - Attrs([Attr("address","0x5D0")]), Phis([]), -Defs([Def(Tid(1_044, "%00000414"), Attrs([Attr("address","0x5D0"), -Attr("insn","adrp x16, #69632")]), Var("R16",Imm(64)), Int(69632,64)), -Def(Tid(1_051, "%0000041b"), Attrs([Attr("address","0x5D4"), -Attr("insn","ldr x17, [x16, #0x8]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(1_057, "%00000421"), Attrs([Attr("address","0x5D8"), -Attr("insn","add x16, x16, #0x8")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(8,64)))]), Jmps([Call(Tid(1_062, "%00000426"), - Attrs([Attr("address","0x5DC"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), -Sub(Tid(1_381, "@__do_global_dtors_aux"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x6C0")]), - "__do_global_dtors_aux", Args([Arg(Tid(1_404, "%0000057c"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("__do_global_dtors_aux_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(614, "@__do_global_dtors_aux"), - Attrs([Attr("address","0x6C0")]), Phis([]), Defs([Def(Tid(618, "%0000026a"), - Attrs([Attr("address","0x6C0"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("#3",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(18446744073709551584,64))), -Def(Tid(624, "%00000270"), Attrs([Attr("address","0x6C0"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("#3",Imm(64)),Var("R29",Imm(64)),LittleEndian(),64)), -Def(Tid(630, "%00000276"), Attrs([Attr("address","0x6C0"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("#3",Imm(64)),Int(8,64)),Var("R30",Imm(64)),LittleEndian(),64)), -Def(Tid(634, "%0000027a"), Attrs([Attr("address","0x6C0"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("R31",Imm(64)), -Var("#3",Imm(64))), Def(Tid(640, "%00000280"), - Attrs([Attr("address","0x6C4"), Attr("insn","mov x29, sp")]), - Var("R29",Imm(64)), Var("R31",Imm(64))), Def(Tid(648, "%00000288"), - Attrs([Attr("address","0x6C8"), Attr("insn","str x19, [sp, #0x10]")]), - Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(16,64)),Var("R19",Imm(64)),LittleEndian(),64)), -Def(Tid(653, "%0000028d"), Attrs([Attr("address","0x6CC"), -Attr("insn","adrp x19, #69632")]), Var("R19",Imm(64)), Int(69632,64)), -Def(Tid(660, "%00000294"), Attrs([Attr("address","0x6D0"), -Attr("insn","ldrb w0, [x19, #0x30]")]), Var("R0",Imm(64)), -UNSIGNED(64,Load(Var("mem",Mem(64,8)),PLUS(Var("R19",Imm(64)),Int(48,64)),LittleEndian(),8)))]), -Jmps([Goto(Tid(667, "%0000029b"), Attrs([Attr("address","0x6D4"), -Attr("insn","cbnz w0, #0x28")]), - NEQ(Extract(31,0,Var("R0",Imm(64))),Int(0,32)), -Direct(Tid(665, "%00000299"))), Goto(Tid(1_382, "%00000566"), Attrs([]), - Int(1,1), Direct(Tid(741, "%000002e5")))])), Blk(Tid(741, "%000002e5"), - Attrs([Attr("address","0x6D8")]), Phis([]), Defs([Def(Tid(744, "%000002e8"), - Attrs([Attr("address","0x6D8"), Attr("insn","adrp x0, #65536")]), - Var("R0",Imm(64)), Int(65536,64)), Def(Tid(751, "%000002ef"), - Attrs([Attr("address","0x6DC"), Attr("insn","ldr x0, [x0, #0xfc8]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(4040,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(757, "%000002f5"), Attrs([Attr("address","0x6E0"), -Attr("insn","cbz x0, #0x10")]), EQ(Var("R0",Imm(64)),Int(0,64)), -Direct(Tid(755, "%000002f3"))), Goto(Tid(1_383, "%00000567"), Attrs([]), - Int(1,1), Direct(Tid(780, "%0000030c")))])), Blk(Tid(780, "%0000030c"), - Attrs([Attr("address","0x6E4")]), Phis([]), Defs([Def(Tid(783, "%0000030f"), - Attrs([Attr("address","0x6E4"), Attr("insn","adrp x0, #69632")]), - Var("R0",Imm(64)), Int(69632,64)), Def(Tid(790, "%00000316"), - Attrs([Attr("address","0x6E8"), Attr("insn","ldr x0, [x0, #0x28]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(40,64)),LittleEndian(),64)), -Def(Tid(795, "%0000031b"), Attrs([Attr("address","0x6EC"), -Attr("insn","bl #-0x11c")]), Var("R30",Imm(64)), Int(1776,64))]), -Jmps([Call(Tid(798, "%0000031e"), Attrs([Attr("address","0x6EC"), -Attr("insn","bl #-0x11c")]), Int(1,1), -(Direct(Tid(1_380, "@__cxa_finalize")),Direct(Tid(755, "%000002f3"))))])), -Blk(Tid(755, "%000002f3"), Attrs([Attr("address","0x6F0")]), Phis([]), -Defs([Def(Tid(763, "%000002fb"), Attrs([Attr("address","0x6F0"), -Attr("insn","bl #-0xa0")]), Var("R30",Imm(64)), Int(1780,64))]), -Jmps([Call(Tid(765, "%000002fd"), Attrs([Attr("address","0x6F0"), -Attr("insn","bl #-0xa0")]), Int(1,1), -(Direct(Tid(1_394, "@deregister_tm_clones")),Direct(Tid(767, "%000002ff"))))])), -Blk(Tid(767, "%000002ff"), Attrs([Attr("address","0x6F4")]), Phis([]), -Defs([Def(Tid(770, "%00000302"), Attrs([Attr("address","0x6F4"), -Attr("insn","mov w0, #0x1")]), Var("R0",Imm(64)), Int(1,64)), -Def(Tid(778, "%0000030a"), Attrs([Attr("address","0x6F8"), -Attr("insn","strb w0, [x19, #0x30]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R19",Imm(64)),Int(48,64)),Extract(7,0,Var("R0",Imm(64))),LittleEndian(),8))]), -Jmps([Goto(Tid(1_384, "%00000568"), Attrs([]), Int(1,1), -Direct(Tid(665, "%00000299")))])), Blk(Tid(665, "%00000299"), - Attrs([Attr("address","0x6FC")]), Phis([]), Defs([Def(Tid(675, "%000002a3"), - Attrs([Attr("address","0x6FC"), Attr("insn","ldr x19, [sp, #0x10]")]), - Var("R19",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(16,64)),LittleEndian(),64)), -Def(Tid(682, "%000002aa"), Attrs([Attr("address","0x700"), -Attr("insn","ldp x29, x30, [sp], #0x20")]), Var("R29",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(687, "%000002af"), Attrs([Attr("address","0x700"), -Attr("insn","ldp x29, x30, [sp], #0x20")]), Var("R30",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(691, "%000002b3"), Attrs([Attr("address","0x700"), -Attr("insn","ldp x29, x30, [sp], #0x20")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(32,64)))]), Jmps([Call(Tid(696, "%000002b8"), - Attrs([Attr("address","0x704"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), Sub(Tid(1_385, "@__libc_start_main"), - Attrs([Attr("c.proto","signed (*)(signed (*)(signed , char** , char** );* main, signed , char** , \nvoid* auxv)"), -Attr("address","0x5C0"), Attr("stub","()")]), "__libc_start_main", - Args([Arg(Tid(1_405, "%0000057d"), - Attrs([Attr("c.layout","**[ : 64]"), -Attr("c.data","Top:u64 ptr ptr"), -Attr("c.type","signed (*)(signed , char** , char** );*")]), - Var("__libc_start_main_main",Imm(64)), Var("R0",Imm(64)), In()), -Arg(Tid(1_406, "%0000057e"), Attrs([Attr("c.layout","[signed : 32]"), -Attr("c.data","Top:u32"), Attr("c.type","signed")]), - Var("__libc_start_main_arg2",Imm(32)), LOW(32,Var("R1",Imm(64))), In()), -Arg(Tid(1_407, "%0000057f"), Attrs([Attr("c.layout","**[char : 8]"), -Attr("c.data","Top:u8 ptr ptr"), Attr("c.type","char**")]), - Var("__libc_start_main_arg3",Imm(64)), Var("R2",Imm(64)), Both()), -Arg(Tid(1_408, "%00000580"), Attrs([Attr("c.layout","*[ : 8]"), -Attr("c.data","{} ptr"), Attr("c.type","void*")]), - Var("__libc_start_main_auxv",Imm(64)), Var("R3",Imm(64)), Both()), -Arg(Tid(1_409, "%00000581"), Attrs([Attr("c.layout","[signed : 32]"), -Attr("c.data","Top:u32"), Attr("c.type","signed")]), - Var("__libc_start_main_result",Imm(32)), LOW(32,Var("R0",Imm(64))), -Out())]), Blks([Blk(Tid(447, "@__libc_start_main"), - Attrs([Attr("address","0x5C0")]), Phis([]), -Defs([Def(Tid(1_022, "%000003fe"), Attrs([Attr("address","0x5C0"), -Attr("insn","adrp x16, #69632")]), Var("R16",Imm(64)), Int(69632,64)), -Def(Tid(1_029, "%00000405"), Attrs([Attr("address","0x5C4"), -Attr("insn","ldr x17, [x16]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R16",Imm(64)),LittleEndian(),64)), -Def(Tid(1_035, "%0000040b"), Attrs([Attr("address","0x5C8"), -Attr("insn","add x16, x16, #0x0")]), Var("R16",Imm(64)), -Var("R16",Imm(64)))]), Jmps([Call(Tid(1_040, "%00000410"), - Attrs([Attr("address","0x5CC"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), Sub(Tid(1_386, "@_fini"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x72C")]), - "_fini", Args([Arg(Tid(1_410, "%00000582"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("_fini_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(31, "@_fini"), - Attrs([Attr("address","0x72C")]), Phis([]), Defs([Def(Tid(37, "%00000025"), - Attrs([Attr("address","0x730"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("#0",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(18446744073709551600,64))), -Def(Tid(43, "%0000002b"), Attrs([Attr("address","0x730"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("#0",Imm(64)),Var("R29",Imm(64)),LittleEndian(),64)), -Def(Tid(49, "%00000031"), Attrs([Attr("address","0x730"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("#0",Imm(64)),Int(8,64)),Var("R30",Imm(64)),LittleEndian(),64)), -Def(Tid(53, "%00000035"), Attrs([Attr("address","0x730"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("R31",Imm(64)), -Var("#0",Imm(64))), Def(Tid(59, "%0000003b"), Attrs([Attr("address","0x734"), -Attr("insn","mov x29, sp")]), Var("R29",Imm(64)), Var("R31",Imm(64))), -Def(Tid(66, "%00000042"), Attrs([Attr("address","0x738"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R29",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(71, "%00000047"), Attrs([Attr("address","0x738"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R30",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(75, "%0000004b"), Attrs([Attr("address","0x738"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(16,64)))]), Jmps([Call(Tid(80, "%00000050"), - Attrs([Attr("address","0x73C"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), Sub(Tid(1_387, "@_init"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x580")]), - "_init", Args([Arg(Tid(1_411, "%00000583"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("_init_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(1_216, "@_init"), - Attrs([Attr("address","0x580")]), Phis([]), -Defs([Def(Tid(1_222, "%000004c6"), Attrs([Attr("address","0x584"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("#5",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(18446744073709551600,64))), -Def(Tid(1_228, "%000004cc"), Attrs([Attr("address","0x584"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("#5",Imm(64)),Var("R29",Imm(64)),LittleEndian(),64)), -Def(Tid(1_234, "%000004d2"), Attrs([Attr("address","0x584"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("#5",Imm(64)),Int(8,64)),Var("R30",Imm(64)),LittleEndian(),64)), -Def(Tid(1_238, "%000004d6"), Attrs([Attr("address","0x584"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("R31",Imm(64)), -Var("#5",Imm(64))), Def(Tid(1_244, "%000004dc"), - Attrs([Attr("address","0x588"), Attr("insn","mov x29, sp")]), - Var("R29",Imm(64)), Var("R31",Imm(64))), Def(Tid(1_249, "%000004e1"), - Attrs([Attr("address","0x58C"), Attr("insn","bl #0xa8")]), - Var("R30",Imm(64)), Int(1424,64))]), Jmps([Call(Tid(1_251, "%000004e3"), - Attrs([Attr("address","0x58C"), Attr("insn","bl #0xa8")]), Int(1,1), -(Direct(Tid(1_392, "@call_weak_fn")),Direct(Tid(1_253, "%000004e5"))))])), -Blk(Tid(1_253, "%000004e5"), Attrs([Attr("address","0x590")]), Phis([]), -Defs([Def(Tid(1_258, "%000004ea"), Attrs([Attr("address","0x590"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R29",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(1_263, "%000004ef"), Attrs([Attr("address","0x590"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R30",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(1_267, "%000004f3"), Attrs([Attr("address","0x590"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(16,64)))]), Jmps([Call(Tid(1_272, "%000004f8"), - Attrs([Attr("address","0x594"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), Sub(Tid(1_388, "@_start"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x600"), -Attr("stub","()"), Attr("entry-point","()")]), "_start", - Args([Arg(Tid(1_412, "%00000584"), Attrs([Attr("c.layout","[signed : 32]"), -Attr("c.data","Top:u32"), Attr("c.type","signed")]), - Var("_start_result",Imm(32)), LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(384, "@_start"), Attrs([Attr("address","0x600")]), Phis([]), -Defs([Def(Tid(389, "%00000185"), Attrs([Attr("address","0x604"), -Attr("insn","mov x29, #0x0")]), Var("R29",Imm(64)), Int(0,64)), -Def(Tid(394, "%0000018a"), Attrs([Attr("address","0x608"), -Attr("insn","mov x30, #0x0")]), Var("R30",Imm(64)), Int(0,64)), -Def(Tid(400, "%00000190"), Attrs([Attr("address","0x60C"), -Attr("insn","mov x5, x0")]), Var("R5",Imm(64)), Var("R0",Imm(64))), -Def(Tid(407, "%00000197"), Attrs([Attr("address","0x610"), -Attr("insn","ldr x1, [sp]")]), Var("R1",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(413, "%0000019d"), Attrs([Attr("address","0x614"), -Attr("insn","add x2, sp, #0x8")]), Var("R2",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(8,64))), Def(Tid(419, "%000001a3"), - Attrs([Attr("address","0x618"), Attr("insn","mov x6, sp")]), - Var("R6",Imm(64)), Var("R31",Imm(64))), Def(Tid(424, "%000001a8"), - Attrs([Attr("address","0x61C"), Attr("insn","adrp x0, #65536")]), - Var("R0",Imm(64)), Int(65536,64)), Def(Tid(431, "%000001af"), - Attrs([Attr("address","0x620"), Attr("insn","ldr x0, [x0, #0xfd8]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(4056,64)),LittleEndian(),64)), -Def(Tid(436, "%000001b4"), Attrs([Attr("address","0x624"), -Attr("insn","mov x3, #0x0")]), Var("R3",Imm(64)), Int(0,64)), -Def(Tid(441, "%000001b9"), Attrs([Attr("address","0x628"), -Attr("insn","mov x4, #0x0")]), Var("R4",Imm(64)), Int(0,64)), -Def(Tid(446, "%000001be"), Attrs([Attr("address","0x62C"), -Attr("insn","bl #-0x6c")]), Var("R30",Imm(64)), Int(1584,64))]), -Jmps([Call(Tid(449, "%000001c1"), Attrs([Attr("address","0x62C"), -Attr("insn","bl #-0x6c")]), Int(1,1), -(Direct(Tid(1_385, "@__libc_start_main")),Direct(Tid(451, "%000001c3"))))])), -Blk(Tid(451, "%000001c3"), Attrs([Attr("address","0x630")]), Phis([]), -Defs([Def(Tid(454, "%000001c6"), Attrs([Attr("address","0x630"), -Attr("insn","bl #-0x40")]), Var("R30",Imm(64)), Int(1588,64))]), -Jmps([Call(Tid(457, "%000001c9"), Attrs([Attr("address","0x630"), -Attr("insn","bl #-0x40")]), Int(1,1), -(Direct(Tid(1_391, "@abort")),Direct(Tid(1_389, "%0000056d"))))])), -Blk(Tid(1_389, "%0000056d"), Attrs([]), Phis([]), Defs([]), -Jmps([Call(Tid(1_390, "%0000056e"), Attrs([]), Int(1,1), -(Direct(Tid(1_392, "@call_weak_fn")),))]))])), Sub(Tid(1_391, "@abort"), - Attrs([Attr("noreturn","()"), Attr("c.proto","void (*)(void)"), -Attr("address","0x5F0"), Attr("stub","()")]), "abort", Args([]), -Blks([Blk(Tid(455, "@abort"), Attrs([Attr("address","0x5F0")]), Phis([]), -Defs([Def(Tid(1_088, "%00000440"), Attrs([Attr("address","0x5F0"), -Attr("insn","adrp x16, #69632")]), Var("R16",Imm(64)), Int(69632,64)), -Def(Tid(1_095, "%00000447"), Attrs([Attr("address","0x5F4"), -Attr("insn","ldr x17, [x16, #0x18]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(24,64)),LittleEndian(),64)), -Def(Tid(1_101, "%0000044d"), Attrs([Attr("address","0x5F8"), -Attr("insn","add x16, x16, #0x18")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(24,64)))]), Jmps([Call(Tid(1_106, "%00000452"), - Attrs([Attr("address","0x5FC"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), Sub(Tid(1_392, "@call_weak_fn"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x634")]), - "call_weak_fn", Args([Arg(Tid(1_413, "%00000585"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("call_weak_fn_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(459, "@call_weak_fn"), - Attrs([Attr("address","0x634")]), Phis([]), Defs([Def(Tid(462, "%000001ce"), - Attrs([Attr("address","0x634"), Attr("insn","adrp x0, #65536")]), - Var("R0",Imm(64)), Int(65536,64)), Def(Tid(469, "%000001d5"), - Attrs([Attr("address","0x638"), Attr("insn","ldr x0, [x0, #0xfd0]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(4048,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(475, "%000001db"), Attrs([Attr("address","0x63C"), -Attr("insn","cbz x0, #0x8")]), EQ(Var("R0",Imm(64)),Int(0,64)), -Direct(Tid(473, "%000001d9"))), Goto(Tid(1_393, "%00000571"), Attrs([]), - Int(1,1), Direct(Tid(860, "%0000035c")))])), Blk(Tid(473, "%000001d9"), - Attrs([Attr("address","0x644")]), Phis([]), Defs([]), -Jmps([Call(Tid(481, "%000001e1"), Attrs([Attr("address","0x644"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))])), -Blk(Tid(860, "%0000035c"), Attrs([Attr("address","0x640")]), Phis([]), -Defs([]), Jmps([Goto(Tid(863, "%0000035f"), Attrs([Attr("address","0x640"), -Attr("insn","b #-0x60")]), Int(1,1), Direct(Tid(861, "@__gmon_start__")))])), -Blk(Tid(861, "@__gmon_start__"), Attrs([Attr("address","0x5E0")]), Phis([]), -Defs([Def(Tid(1_066, "%0000042a"), Attrs([Attr("address","0x5E0"), -Attr("insn","adrp x16, #69632")]), Var("R16",Imm(64)), Int(69632,64)), -Def(Tid(1_073, "%00000431"), Attrs([Attr("address","0x5E4"), -Attr("insn","ldr x17, [x16, #0x10]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(16,64)),LittleEndian(),64)), -Def(Tid(1_079, "%00000437"), Attrs([Attr("address","0x5E8"), -Attr("insn","add x16, x16, #0x10")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(16,64)))]), Jmps([Call(Tid(1_084, "%0000043c"), - Attrs([Attr("address","0x5EC"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), -Sub(Tid(1_394, "@deregister_tm_clones"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x650")]), - "deregister_tm_clones", Args([Arg(Tid(1_414, "%00000586"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("deregister_tm_clones_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(487, "@deregister_tm_clones"), - Attrs([Attr("address","0x650")]), Phis([]), Defs([Def(Tid(490, "%000001ea"), - Attrs([Attr("address","0x650"), Attr("insn","adrp x0, #69632")]), - Var("R0",Imm(64)), Int(69632,64)), Def(Tid(496, "%000001f0"), - Attrs([Attr("address","0x654"), Attr("insn","add x0, x0, #0x30")]), - Var("R0",Imm(64)), PLUS(Var("R0",Imm(64)),Int(48,64))), -Def(Tid(501, "%000001f5"), Attrs([Attr("address","0x658"), -Attr("insn","adrp x1, #69632")]), Var("R1",Imm(64)), Int(69632,64)), -Def(Tid(507, "%000001fb"), Attrs([Attr("address","0x65C"), -Attr("insn","add x1, x1, #0x30")]), Var("R1",Imm(64)), -PLUS(Var("R1",Imm(64)),Int(48,64))), Def(Tid(513, "%00000201"), - Attrs([Attr("address","0x660"), Attr("insn","cmp x1, x0")]), - Var("#1",Imm(64)), NOT(Var("R0",Imm(64)))), Def(Tid(518, "%00000206"), - Attrs([Attr("address","0x660"), Attr("insn","cmp x1, x0")]), - Var("#2",Imm(64)), PLUS(Var("R1",Imm(64)),NOT(Var("R0",Imm(64))))), -Def(Tid(524, "%0000020c"), Attrs([Attr("address","0x660"), -Attr("insn","cmp x1, x0")]), Var("VF",Imm(1)), -NEQ(SIGNED(65,PLUS(Var("#2",Imm(64)),Int(1,64))),PLUS(PLUS(SIGNED(65,Var("R1",Imm(64))),SIGNED(65,Var("#1",Imm(64)))),Int(1,65)))), -Def(Tid(530, "%00000212"), Attrs([Attr("address","0x660"), -Attr("insn","cmp x1, x0")]), Var("CF",Imm(1)), -NEQ(UNSIGNED(65,PLUS(Var("#2",Imm(64)),Int(1,64))),PLUS(PLUS(UNSIGNED(65,Var("R1",Imm(64))),UNSIGNED(65,Var("#1",Imm(64)))),Int(1,65)))), -Def(Tid(534, "%00000216"), Attrs([Attr("address","0x660"), -Attr("insn","cmp x1, x0")]), Var("ZF",Imm(1)), -EQ(PLUS(Var("#2",Imm(64)),Int(1,64)),Int(0,64))), Def(Tid(538, "%0000021a"), - Attrs([Attr("address","0x660"), Attr("insn","cmp x1, x0")]), - Var("NF",Imm(1)), Extract(63,63,PLUS(Var("#2",Imm(64)),Int(1,64))))]), -Jmps([Goto(Tid(544, "%00000220"), Attrs([Attr("address","0x664"), -Attr("insn","b.eq #0x18")]), EQ(Var("ZF",Imm(1)),Int(1,1)), -Direct(Tid(542, "%0000021e"))), Goto(Tid(1_395, "%00000573"), Attrs([]), - Int(1,1), Direct(Tid(830, "%0000033e")))])), Blk(Tid(830, "%0000033e"), - Attrs([Attr("address","0x668")]), Phis([]), Defs([Def(Tid(833, "%00000341"), - Attrs([Attr("address","0x668"), Attr("insn","adrp x1, #65536")]), - Var("R1",Imm(64)), Int(65536,64)), Def(Tid(840, "%00000348"), - Attrs([Attr("address","0x66C"), Attr("insn","ldr x1, [x1, #0xfc0]")]), - Var("R1",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R1",Imm(64)),Int(4032,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(845, "%0000034d"), Attrs([Attr("address","0x670"), -Attr("insn","cbz x1, #0xc")]), EQ(Var("R1",Imm(64)),Int(0,64)), -Direct(Tid(542, "%0000021e"))), Goto(Tid(1_396, "%00000574"), Attrs([]), - Int(1,1), Direct(Tid(849, "%00000351")))])), Blk(Tid(542, "%0000021e"), - Attrs([Attr("address","0x67C")]), Phis([]), Defs([]), -Jmps([Call(Tid(550, "%00000226"), Attrs([Attr("address","0x67C"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))])), -Blk(Tid(849, "%00000351"), Attrs([Attr("address","0x674")]), Phis([]), -Defs([Def(Tid(853, "%00000355"), Attrs([Attr("address","0x674"), -Attr("insn","mov x16, x1")]), Var("R16",Imm(64)), Var("R1",Imm(64)))]), -Jmps([Call(Tid(858, "%0000035a"), Attrs([Attr("address","0x678"), -Attr("insn","br x16")]), Int(1,1), (Indirect(Var("R16",Imm(64))),))]))])), -Sub(Tid(1_397, "@frame_dummy"), Attrs([Attr("c.proto","signed (*)(void)"), -Attr("address","0x710")]), "frame_dummy", Args([Arg(Tid(1_415, "%00000587"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("frame_dummy_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(702, "@frame_dummy"), - Attrs([Attr("address","0x710")]), Phis([]), Defs([]), -Jmps([Call(Tid(704, "%000002c0"), Attrs([Attr("address","0x710"), -Attr("insn","b #-0x90")]), Int(1,1), -(Direct(Tid(1_399, "@register_tm_clones")),))]))])), Sub(Tid(1_398, "@main"), - Attrs([Attr("c.proto","signed (*)(signed argc, const char** argv)"), -Attr("address","0x714")]), "main", Args([Arg(Tid(1_416, "%00000588"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("main_argc",Imm(32)), -LOW(32,Var("R0",Imm(64))), In()), Arg(Tid(1_417, "%00000589"), - Attrs([Attr("c.layout","**[char : 8]"), Attr("c.data","Top:u8 ptr ptr"), -Attr("c.type"," const char**")]), Var("main_argv",Imm(64)), -Var("R1",Imm(64)), Both()), Arg(Tid(1_418, "%0000058a"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("main_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(706, "@main"), - Attrs([Attr("address","0x714")]), Phis([]), Defs([Def(Tid(709, "%000002c5"), - Attrs([Attr("address","0x714"), Attr("insn","adrp x8, #69632")]), - Var("R8",Imm(64)), Int(69632,64)), Def(Tid(714, "%000002ca"), - Attrs([Attr("address","0x718"), Attr("insn","adrp x9, #69632")]), - Var("R9",Imm(64)), Int(69632,64)), Def(Tid(719, "%000002cf"), - Attrs([Attr("address","0x71C"), Attr("insn","mov w0, wzr")]), - Var("R0",Imm(64)), Int(0,64)), Def(Tid(726, "%000002d6"), - Attrs([Attr("address","0x720"), Attr("insn","ldr w8, [x8, #0x34]")]), - Var("R8",Imm(64)), -UNSIGNED(64,Load(Var("mem",Mem(64,8)),PLUS(Var("R8",Imm(64)),Int(52,64)),LittleEndian(),32))), -Def(Tid(734, "%000002de"), Attrs([Attr("address","0x724"), -Attr("insn","str w8, [x9, #0x38]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R9",Imm(64)),Int(56,64)),Extract(31,0,Var("R8",Imm(64))),LittleEndian(),32))]), -Jmps([Call(Tid(739, "%000002e3"), Attrs([Attr("address","0x728"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))]))])), -Sub(Tid(1_399, "@register_tm_clones"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x680")]), - "register_tm_clones", Args([Arg(Tid(1_419, "%0000058b"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("register_tm_clones_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(552, "@register_tm_clones"), Attrs([Attr("address","0x680")]), - Phis([]), Defs([Def(Tid(555, "%0000022b"), Attrs([Attr("address","0x680"), -Attr("insn","adrp x0, #69632")]), Var("R0",Imm(64)), Int(69632,64)), -Def(Tid(561, "%00000231"), Attrs([Attr("address","0x684"), -Attr("insn","add x0, x0, #0x30")]), Var("R0",Imm(64)), -PLUS(Var("R0",Imm(64)),Int(48,64))), Def(Tid(566, "%00000236"), - Attrs([Attr("address","0x688"), Attr("insn","adrp x1, #69632")]), - Var("R1",Imm(64)), Int(69632,64)), Def(Tid(572, "%0000023c"), - Attrs([Attr("address","0x68C"), Attr("insn","add x1, x1, #0x30")]), - Var("R1",Imm(64)), PLUS(Var("R1",Imm(64)),Int(48,64))), -Def(Tid(579, "%00000243"), Attrs([Attr("address","0x690"), -Attr("insn","sub x1, x1, x0")]), Var("R1",Imm(64)), -PLUS(PLUS(Var("R1",Imm(64)),NOT(Var("R0",Imm(64)))),Int(1,64))), -Def(Tid(585, "%00000249"), Attrs([Attr("address","0x694"), -Attr("insn","lsr x2, x1, #63")]), Var("R2",Imm(64)), -Concat(Int(0,63),Extract(63,63,Var("R1",Imm(64))))), -Def(Tid(592, "%00000250"), Attrs([Attr("address","0x698"), -Attr("insn","add x1, x2, x1, asr #3")]), Var("R1",Imm(64)), -PLUS(Var("R2",Imm(64)),ARSHIFT(Var("R1",Imm(64)),Int(3,3)))), -Def(Tid(598, "%00000256"), Attrs([Attr("address","0x69C"), -Attr("insn","asr x1, x1, #1")]), Var("R1",Imm(64)), -SIGNED(64,Extract(63,1,Var("R1",Imm(64)))))]), -Jmps([Goto(Tid(604, "%0000025c"), Attrs([Attr("address","0x6A0"), -Attr("insn","cbz x1, #0x18")]), EQ(Var("R1",Imm(64)),Int(0,64)), -Direct(Tid(602, "%0000025a"))), Goto(Tid(1_400, "%00000578"), Attrs([]), - Int(1,1), Direct(Tid(800, "%00000320")))])), Blk(Tid(800, "%00000320"), - Attrs([Attr("address","0x6A4")]), Phis([]), Defs([Def(Tid(803, "%00000323"), - Attrs([Attr("address","0x6A4"), Attr("insn","adrp x2, #65536")]), - Var("R2",Imm(64)), Int(65536,64)), Def(Tid(810, "%0000032a"), - Attrs([Attr("address","0x6A8"), Attr("insn","ldr x2, [x2, #0xfe0]")]), - Var("R2",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R2",Imm(64)),Int(4064,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(815, "%0000032f"), Attrs([Attr("address","0x6AC"), -Attr("insn","cbz x2, #0xc")]), EQ(Var("R2",Imm(64)),Int(0,64)), -Direct(Tid(602, "%0000025a"))), Goto(Tid(1_401, "%00000579"), Attrs([]), - Int(1,1), Direct(Tid(819, "%00000333")))])), Blk(Tid(602, "%0000025a"), - Attrs([Attr("address","0x6B8")]), Phis([]), Defs([]), -Jmps([Call(Tid(610, "%00000262"), Attrs([Attr("address","0x6B8"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))])), -Blk(Tid(819, "%00000333"), Attrs([Attr("address","0x6B0")]), Phis([]), -Defs([Def(Tid(823, "%00000337"), Attrs([Attr("address","0x6B0"), -Attr("insn","mov x16, x2")]), Var("R16",Imm(64)), Var("R2",Imm(64)))]), -Jmps([Call(Tid(828, "%0000033c"), Attrs([Attr("address","0x6B4"), -Attr("insn","br x16")]), Int(1,1), -(Indirect(Var("R16",Imm(64))),))]))]))]))) \ No newline at end of file diff --git a/src/test/incorrect/basicassign1/clang_O2/basicassign1.bir b/src/test/incorrect/basicassign1/clang_O2/basicassign1.bir deleted file mode 100644 index e90addc28..000000000 --- a/src/test/incorrect/basicassign1/clang_O2/basicassign1.bir +++ /dev/null @@ -1,228 +0,0 @@ -0000057a: program -00000564: sub __cxa_finalize(__cxa_finalize_result) -0000057b: __cxa_finalize_result :: out u32 = low:32[R0] - -0000031c: -00000414: R16 := 0x11000 -0000041b: R17 := mem[R16 + 8, el]:u64 -00000421: R16 := R16 + 8 -00000426: call R17 with noreturn - -00000565: sub __do_global_dtors_aux(__do_global_dtors_aux_result) -0000057c: __do_global_dtors_aux_result :: out u32 = low:32[R0] - -00000266: -0000026a: #3 := R31 - 0x20 -00000270: mem := mem with [#3, el]:u64 <- R29 -00000276: mem := mem with [#3 + 8, el]:u64 <- R30 -0000027a: R31 := #3 -00000280: R29 := R31 -00000288: mem := mem with [R31 + 0x10, el]:u64 <- R19 -0000028d: R19 := 0x11000 -00000294: R0 := pad:64[mem[R19 + 0x30]] -0000029b: when 31:0[R0] <> 0 goto %00000299 -00000566: goto %000002e5 - -000002e5: -000002e8: R0 := 0x10000 -000002ef: R0 := mem[R0 + 0xFC8, el]:u64 -000002f5: when R0 = 0 goto %000002f3 -00000567: goto %0000030c - -0000030c: -0000030f: R0 := 0x11000 -00000316: R0 := mem[R0 + 0x28, el]:u64 -0000031b: R30 := 0x6F0 -0000031e: call @__cxa_finalize with return %000002f3 - -000002f3: -000002fb: R30 := 0x6F4 -000002fd: call @deregister_tm_clones with return %000002ff - -000002ff: -00000302: R0 := 1 -0000030a: mem := mem with [R19 + 0x30] <- 7:0[R0] -00000568: goto %00000299 - -00000299: -000002a3: R19 := mem[R31 + 0x10, el]:u64 -000002aa: R29 := mem[R31, el]:u64 -000002af: R30 := mem[R31 + 8, el]:u64 -000002b3: R31 := R31 + 0x20 -000002b8: call R30 with noreturn - -00000569: sub __libc_start_main(__libc_start_main_main, __libc_start_main_arg2, __libc_start_main_arg3, __libc_start_main_auxv, __libc_start_main_result) -0000057d: __libc_start_main_main :: in u64 = R0 -0000057e: __libc_start_main_arg2 :: in u32 = low:32[R1] -0000057f: __libc_start_main_arg3 :: in out u64 = R2 -00000580: __libc_start_main_auxv :: in out u64 = R3 -00000581: __libc_start_main_result :: out u32 = low:32[R0] - -000001bf: -000003fe: R16 := 0x11000 -00000405: R17 := mem[R16, el]:u64 -0000040b: R16 := R16 -00000410: call R17 with noreturn - -0000056a: sub _fini(_fini_result) -00000582: _fini_result :: out u32 = low:32[R0] - -0000001f: -00000025: #0 := R31 - 0x10 -0000002b: mem := mem with [#0, el]:u64 <- R29 -00000031: mem := mem with [#0 + 8, el]:u64 <- R30 -00000035: R31 := #0 -0000003b: R29 := R31 -00000042: R29 := mem[R31, el]:u64 -00000047: R30 := mem[R31 + 8, el]:u64 -0000004b: R31 := R31 + 0x10 -00000050: call R30 with noreturn - -0000056b: sub _init(_init_result) -00000583: _init_result :: out u32 = low:32[R0] - -000004c0: -000004c6: #5 := R31 - 0x10 -000004cc: mem := mem with [#5, el]:u64 <- R29 -000004d2: mem := mem with [#5 + 8, el]:u64 <- R30 -000004d6: R31 := #5 -000004dc: R29 := R31 -000004e1: R30 := 0x590 -000004e3: call @call_weak_fn with return %000004e5 - -000004e5: -000004ea: R29 := mem[R31, el]:u64 -000004ef: R30 := mem[R31 + 8, el]:u64 -000004f3: R31 := R31 + 0x10 -000004f8: call R30 with noreturn - -0000056c: sub _start(_start_result) -00000584: _start_result :: out u32 = low:32[R0] - -00000180: -00000185: R29 := 0 -0000018a: R30 := 0 -00000190: R5 := R0 -00000197: R1 := mem[R31, el]:u64 -0000019d: R2 := R31 + 8 -000001a3: R6 := R31 -000001a8: R0 := 0x10000 -000001af: R0 := mem[R0 + 0xFD8, el]:u64 -000001b4: R3 := 0 -000001b9: R4 := 0 -000001be: R30 := 0x630 -000001c1: call @__libc_start_main with return %000001c3 - -000001c3: -000001c6: R30 := 0x634 -000001c9: call @abort with return %0000056d - -0000056d: -0000056e: call @call_weak_fn with noreturn - -0000056f: sub abort() - - -000001c7: -00000440: R16 := 0x11000 -00000447: R17 := mem[R16 + 0x18, el]:u64 -0000044d: R16 := R16 + 0x18 -00000452: call R17 with noreturn - -00000570: sub call_weak_fn(call_weak_fn_result) -00000585: call_weak_fn_result :: out u32 = low:32[R0] - -000001cb: -000001ce: R0 := 0x10000 -000001d5: R0 := mem[R0 + 0xFD0, el]:u64 -000001db: when R0 = 0 goto %000001d9 -00000571: goto %0000035c - -000001d9: -000001e1: call R30 with noreturn - -0000035c: -0000035f: goto @__gmon_start__ - -0000035d: -0000042a: R16 := 0x11000 -00000431: R17 := mem[R16 + 0x10, el]:u64 -00000437: R16 := R16 + 0x10 -0000043c: call R17 with noreturn - -00000572: sub deregister_tm_clones(deregister_tm_clones_result) -00000586: deregister_tm_clones_result :: out u32 = low:32[R0] - -000001e7: -000001ea: R0 := 0x11000 -000001f0: R0 := R0 + 0x30 -000001f5: R1 := 0x11000 -000001fb: R1 := R1 + 0x30 -00000201: #1 := ~R0 -00000206: #2 := R1 + ~R0 -0000020c: VF := extend:65[#2 + 1] <> extend:65[R1] + extend:65[#1] + 1 -00000212: CF := pad:65[#2 + 1] <> pad:65[R1] + pad:65[#1] + 1 -00000216: ZF := #2 + 1 = 0 -0000021a: NF := 63:63[#2 + 1] -00000220: when ZF goto %0000021e -00000573: goto %0000033e - -0000033e: -00000341: R1 := 0x10000 -00000348: R1 := mem[R1 + 0xFC0, el]:u64 -0000034d: when R1 = 0 goto %0000021e -00000574: goto %00000351 - -0000021e: -00000226: call R30 with noreturn - -00000351: -00000355: R16 := R1 -0000035a: call R16 with noreturn - -00000575: sub frame_dummy(frame_dummy_result) -00000587: frame_dummy_result :: out u32 = low:32[R0] - -000002be: -000002c0: call @register_tm_clones with noreturn - -00000576: sub main(main_argc, main_argv, main_result) -00000588: main_argc :: in u32 = low:32[R0] -00000589: main_argv :: in out u64 = R1 -0000058a: main_result :: out u32 = low:32[R0] - -000002c2: -000002c5: R8 := 0x11000 -000002ca: R9 := 0x11000 -000002cf: R0 := 0 -000002d6: R8 := pad:64[mem[R8 + 0x34, el]:u32] -000002de: mem := mem with [R9 + 0x38, el]:u32 <- 31:0[R8] -000002e3: call R30 with noreturn - -00000577: sub register_tm_clones(register_tm_clones_result) -0000058b: register_tm_clones_result :: out u32 = low:32[R0] - -00000228: -0000022b: R0 := 0x11000 -00000231: R0 := R0 + 0x30 -00000236: R1 := 0x11000 -0000023c: R1 := R1 + 0x30 -00000243: R1 := R1 + ~R0 + 1 -00000249: R2 := 0.63:63[R1] -00000250: R1 := R2 + (R1 ~>> 3) -00000256: R1 := extend:64[63:1[R1]] -0000025c: when R1 = 0 goto %0000025a -00000578: goto %00000320 - -00000320: -00000323: R2 := 0x10000 -0000032a: R2 := mem[R2 + 0xFE0, el]:u64 -0000032f: when R2 = 0 goto %0000025a -00000579: goto %00000333 - -0000025a: -00000262: call R30 with noreturn - -00000333: -00000337: R16 := R2 -0000033c: call R16 with noreturn diff --git a/src/test/incorrect/basicassign1/clang_O2/basicassign1.expected b/src/test/incorrect/basicassign1/clang_O2/basicassign1.expected index 4049be8da..3034ecda6 100644 --- a/src/test/incorrect/basicassign1/clang_O2/basicassign1.expected +++ b/src/test/incorrect/basicassign1/clang_O2/basicassign1.expected @@ -7,7 +7,7 @@ var {:extern} R8: bv64; var {:extern} R9: bv64; var {:extern} mem: [bv64]bv8; const {:extern} $z_addr: bv64; -axiom ($z_addr == 69688bv64); +axiom ($z_addr == 131096bv64); function {:extern} L(mem$in: [bv64]bv8, index: bv64) returns (bool) { (if (index == $z_addr) then true else false) } @@ -17,6 +17,10 @@ function {:extern} gamma_load32(gammaMap: [bv64]bool, index: bv64) returns (bool (gammaMap[bvadd64(index, 3bv64)] && (gammaMap[bvadd64(index, 2bv64)] && (gammaMap[bvadd64(index, 1bv64)] && gammaMap[index]))) } +function {:extern} gamma_load64(gammaMap: [bv64]bool, index: bv64) returns (bool) { + (gammaMap[bvadd64(index, 7bv64)] && (gammaMap[bvadd64(index, 6bv64)] && (gammaMap[bvadd64(index, 5bv64)] && (gammaMap[bvadd64(index, 4bv64)] && (gammaMap[bvadd64(index, 3bv64)] && (gammaMap[bvadd64(index, 2bv64)] && (gammaMap[bvadd64(index, 1bv64)] && gammaMap[index]))))))) +} + function {:extern} gamma_store32(gammaMap: [bv64]bool, index: bv64, value: bool) returns ([bv64]bool) { gammaMap[index := value][bvadd64(index, 1bv64) := value][bvadd64(index, 2bv64) := value][bvadd64(index, 3bv64) := value] } @@ -38,11 +42,13 @@ procedure {:extern} rely(); modifies Gamma_mem, mem; ensures (Gamma_mem == old(Gamma_mem)); ensures (mem == old(mem)); - free ensures (memory_load32_le(mem, 1856bv64) == 131073bv32); - free ensures (memory_load64_le(mem, 69064bv64) == 1808bv64); - free ensures (memory_load64_le(mem, 69072bv64) == 1728bv64); - free ensures (memory_load64_le(mem, 69592bv64) == 1812bv64); - free ensures (memory_load64_le(mem, 69672bv64) == 69672bv64); + free ensures (memory_load32_le(mem, 2312bv64) == 131073bv32); + free ensures (memory_load64_le(mem, 130424bv64) == 2256bv64); + free ensures (memory_load64_le(mem, 130432bv64) == 2176bv64); + free ensures (memory_load64_le(mem, 131032bv64) == 131096bv64); + free ensures (memory_load64_le(mem, 131048bv64) == 131092bv64); + free ensures (memory_load64_le(mem, 131056bv64) == 2260bv64); + free ensures (memory_load64_le(mem, 131080bv64) == 131080bv64); procedure {:extern} rely_transitive(); modifies Gamma_mem, mem; @@ -60,40 +66,54 @@ procedure {:extern} rely_reflexive(); procedure {:extern} guarantee_reflexive(); modifies Gamma_mem, mem; -procedure main_1812(); +procedure main(); modifies Gamma_R0, Gamma_R8, Gamma_R9, Gamma_mem, R0, R8, R9, mem; - free requires (memory_load64_le(mem, 69664bv64) == 0bv64); - free requires (memory_load64_le(mem, 69672bv64) == 69672bv64); - free requires (memory_load32_le(mem, 1856bv64) == 131073bv32); - free requires (memory_load64_le(mem, 69064bv64) == 1808bv64); - free requires (memory_load64_le(mem, 69072bv64) == 1728bv64); - free requires (memory_load64_le(mem, 69592bv64) == 1812bv64); - free requires (memory_load64_le(mem, 69672bv64) == 69672bv64); - free ensures (memory_load32_le(mem, 1856bv64) == 131073bv32); - free ensures (memory_load64_le(mem, 69064bv64) == 1808bv64); - free ensures (memory_load64_le(mem, 69072bv64) == 1728bv64); - free ensures (memory_load64_le(mem, 69592bv64) == 1812bv64); - free ensures (memory_load64_le(mem, 69672bv64) == 69672bv64); + free requires (memory_load64_le(mem, 131072bv64) == 0bv64); + free requires (memory_load64_le(mem, 131080bv64) == 131080bv64); + free requires (memory_load32_le(mem, 2312bv64) == 131073bv32); + free requires (memory_load64_le(mem, 130424bv64) == 2256bv64); + free requires (memory_load64_le(mem, 130432bv64) == 2176bv64); + free requires (memory_load64_le(mem, 131032bv64) == 131096bv64); + free requires (memory_load64_le(mem, 131048bv64) == 131092bv64); + free requires (memory_load64_le(mem, 131056bv64) == 2260bv64); + free requires (memory_load64_le(mem, 131080bv64) == 131080bv64); + free ensures (memory_load32_le(mem, 2312bv64) == 131073bv32); + free ensures (memory_load64_le(mem, 130424bv64) == 2256bv64); + free ensures (memory_load64_le(mem, 130432bv64) == 2176bv64); + free ensures (memory_load64_le(mem, 131032bv64) == 131096bv64); + free ensures (memory_load64_le(mem, 131048bv64) == 131092bv64); + free ensures (memory_load64_le(mem, 131056bv64) == 2260bv64); + free ensures (memory_load64_le(mem, 131080bv64) == 131080bv64); -implementation main_1812() +implementation main() { - var Gamma_load18: bool; - var load18: bv32; + var $load$18: bv64; + var $load$19: bv32; + var $load$20: bv64; + var Gamma_$load$18: bool; + var Gamma_$load$19: bool; + var Gamma_$load$20: bool; lmain: assume {:captureState "lmain"} true; - R8, Gamma_R8 := 69632bv64, true; - R9, Gamma_R9 := 69632bv64, true; + R8, Gamma_R8 := 126976bv64, true; + R9, Gamma_R9 := 126976bv64, true; R0, Gamma_R0 := 0bv64, true; call rely(); - load18, Gamma_load18 := memory_load32_le(mem, bvadd64(R8, 52bv64)), (gamma_load32(Gamma_mem, bvadd64(R8, 52bv64)) || L(mem, bvadd64(R8, 52bv64))); - R8, Gamma_R8 := zero_extend32_32(load18), Gamma_load18; + $load$18, Gamma_$load$18 := memory_load64_le(mem, bvadd64(R8, 4072bv64)), (gamma_load64(Gamma_mem, bvadd64(R8, 4072bv64)) || L(mem, bvadd64(R8, 4072bv64))); + R8, Gamma_R8 := $load$18, Gamma_$load$18; + call rely(); + $load$19, Gamma_$load$19 := memory_load32_le(mem, R8), (gamma_load32(Gamma_mem, R8) || L(mem, R8)); + R8, Gamma_R8 := zero_extend32_32($load$19), Gamma_$load$19; + call rely(); + $load$20, Gamma_$load$20 := memory_load64_le(mem, bvadd64(R9, 4056bv64)), (gamma_load64(Gamma_mem, bvadd64(R9, 4056bv64)) || L(mem, bvadd64(R9, 4056bv64))); + R9, Gamma_R9 := $load$20, Gamma_$load$20; call rely(); - assert (L(mem, bvadd64(R9, 56bv64)) ==> Gamma_R8); - mem, Gamma_mem := memory_store32_le(mem, bvadd64(R9, 56bv64), R8[32:0]), gamma_store32(Gamma_mem, bvadd64(R9, 56bv64), Gamma_R8); - assume {:captureState "%000002de"} true; - goto main_1812_basil_return; - main_1812_basil_return: - assume {:captureState "main_1812_basil_return"} true; + assert (L(mem, R9) ==> Gamma_R8); + mem, Gamma_mem := memory_store32_le(mem, R9, R8[32:0]), gamma_store32(Gamma_mem, R9, Gamma_R8); + assume {:captureState "%00000294"} true; + goto main_basil_return; + main_basil_return: + assume {:captureState "main_basil_return"} true; return; } diff --git a/src/test/incorrect/basicassign1/clang_O2/basicassign1.gts b/src/test/incorrect/basicassign1/clang_O2/basicassign1.gts deleted file mode 100644 index 903a27124..000000000 Binary files a/src/test/incorrect/basicassign1/clang_O2/basicassign1.gts and /dev/null differ diff --git a/src/test/incorrect/basicassign1/clang_O2/basicassign1.md5sum b/src/test/incorrect/basicassign1/clang_O2/basicassign1.md5sum new file mode 100644 index 000000000..316a290c0 --- /dev/null +++ b/src/test/incorrect/basicassign1/clang_O2/basicassign1.md5sum @@ -0,0 +1,5 @@ +ffb3a0430fc01035959bacdadfeab93c incorrect/basicassign1/clang_O2/a.out +7cd34d61ca2bceab8b277f96a2797d27 incorrect/basicassign1/clang_O2/basicassign1.adt +499488e5cc23e93db3a003f95383e0b8 incorrect/basicassign1/clang_O2/basicassign1.bir +eba0751f4f9daa422fceaea596d45697 incorrect/basicassign1/clang_O2/basicassign1.relf +0542cf53768ae6089e2a15a9eaae2d0d incorrect/basicassign1/clang_O2/basicassign1.gts diff --git a/src/test/incorrect/basicassign1/clang_O2/basicassign1.relf b/src/test/incorrect/basicassign1/clang_O2/basicassign1.relf deleted file mode 100644 index 99d3d2472..000000000 --- a/src/test/incorrect/basicassign1/clang_O2/basicassign1.relf +++ /dev/null @@ -1,124 +0,0 @@ - -Relocation section '.rela.dyn' at offset 0x460 contains 8 entries: - Offset Info Type Symbol's Value Symbol's Name + Addend -0000000000010dc8 0000000000000403 R_AARCH64_RELATIVE 710 -0000000000010dd0 0000000000000403 R_AARCH64_RELATIVE 6c0 -0000000000010fd8 0000000000000403 R_AARCH64_RELATIVE 714 -0000000000011028 0000000000000403 R_AARCH64_RELATIVE 11028 -0000000000010fc0 0000000400000401 R_AARCH64_GLOB_DAT 0000000000000000 _ITM_deregisterTMCloneTable + 0 -0000000000010fc8 0000000500000401 R_AARCH64_GLOB_DAT 0000000000000000 __cxa_finalize@GLIBC_2.17 + 0 -0000000000010fd0 0000000600000401 R_AARCH64_GLOB_DAT 0000000000000000 __gmon_start__ + 0 -0000000000010fe0 0000000800000401 R_AARCH64_GLOB_DAT 0000000000000000 _ITM_registerTMCloneTable + 0 - -Relocation section '.rela.plt' at offset 0x520 contains 4 entries: - Offset Info Type Symbol's Value Symbol's Name + Addend -0000000000011000 0000000300000402 R_AARCH64_JUMP_SLOT 0000000000000000 __libc_start_main@GLIBC_2.34 + 0 -0000000000011008 0000000500000402 R_AARCH64_JUMP_SLOT 0000000000000000 __cxa_finalize@GLIBC_2.17 + 0 -0000000000011010 0000000600000402 R_AARCH64_JUMP_SLOT 0000000000000000 __gmon_start__ + 0 -0000000000011018 0000000700000402 R_AARCH64_JUMP_SLOT 0000000000000000 abort@GLIBC_2.17 + 0 - -Symbol table '.dynsym' contains 9 entries: - Num: Value Size Type Bind Vis Ndx Name - 0: 0000000000000000 0 NOTYPE LOCAL DEFAULT UND - 1: 0000000000000580 0 SECTION LOCAL DEFAULT 11 .init - 2: 0000000000011020 0 SECTION LOCAL DEFAULT 23 .data - 3: 0000000000000000 0 FUNC GLOBAL DEFAULT UND __libc_start_main@GLIBC_2.34 (2) - 4: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_deregisterTMCloneTable - 5: 0000000000000000 0 FUNC WEAK DEFAULT UND __cxa_finalize@GLIBC_2.17 (3) - 6: 0000000000000000 0 NOTYPE WEAK DEFAULT UND __gmon_start__ - 7: 0000000000000000 0 FUNC GLOBAL DEFAULT UND abort@GLIBC_2.17 (3) - 8: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_registerTMCloneTable - -Symbol table '.symtab' contains 91 entries: - Num: Value Size Type Bind Vis Ndx Name - 0: 0000000000000000 0 NOTYPE LOCAL DEFAULT UND - 1: 0000000000000238 0 SECTION LOCAL DEFAULT 1 .interp - 2: 0000000000000254 0 SECTION LOCAL DEFAULT 2 .note.gnu.build-id - 3: 0000000000000278 0 SECTION LOCAL DEFAULT 3 .note.ABI-tag - 4: 0000000000000298 0 SECTION LOCAL DEFAULT 4 .gnu.hash - 5: 00000000000002b8 0 SECTION LOCAL DEFAULT 5 .dynsym - 6: 0000000000000390 0 SECTION LOCAL DEFAULT 6 .dynstr - 7: 000000000000041e 0 SECTION LOCAL DEFAULT 7 .gnu.version - 8: 0000000000000430 0 SECTION LOCAL DEFAULT 8 .gnu.version_r - 9: 0000000000000460 0 SECTION LOCAL DEFAULT 9 .rela.dyn - 10: 0000000000000520 0 SECTION LOCAL DEFAULT 10 .rela.plt - 11: 0000000000000580 0 SECTION LOCAL DEFAULT 11 .init - 12: 00000000000005a0 0 SECTION LOCAL DEFAULT 12 .plt - 13: 0000000000000600 0 SECTION LOCAL DEFAULT 13 .text - 14: 000000000000072c 0 SECTION LOCAL DEFAULT 14 .fini - 15: 0000000000000740 0 SECTION LOCAL DEFAULT 15 .rodata - 16: 0000000000000744 0 SECTION LOCAL DEFAULT 16 .eh_frame_hdr - 17: 0000000000000780 0 SECTION LOCAL DEFAULT 17 .eh_frame - 18: 0000000000010dc8 0 SECTION LOCAL DEFAULT 18 .init_array - 19: 0000000000010dd0 0 SECTION LOCAL DEFAULT 19 .fini_array - 20: 0000000000010dd8 0 SECTION LOCAL DEFAULT 20 .dynamic - 21: 0000000000010fb8 0 SECTION LOCAL DEFAULT 21 .got - 22: 0000000000010fe8 0 SECTION LOCAL DEFAULT 22 .got.plt - 23: 0000000000011020 0 SECTION LOCAL DEFAULT 23 .data - 24: 0000000000011030 0 SECTION LOCAL DEFAULT 24 .bss - 25: 0000000000000000 0 SECTION LOCAL DEFAULT 25 .comment - 26: 0000000000000000 0 FILE LOCAL DEFAULT ABS Scrt1.o - 27: 0000000000000278 0 NOTYPE LOCAL DEFAULT 3 $d - 28: 0000000000000278 32 OBJECT LOCAL DEFAULT 3 __abi_tag - 29: 0000000000000600 0 NOTYPE LOCAL DEFAULT 13 $x - 30: 0000000000000794 0 NOTYPE LOCAL DEFAULT 17 $d - 31: 0000000000000740 0 NOTYPE LOCAL DEFAULT 15 $d - 32: 0000000000000000 0 FILE LOCAL DEFAULT ABS crti.o - 33: 0000000000000634 0 NOTYPE LOCAL DEFAULT 13 $x - 34: 0000000000000634 20 FUNC LOCAL DEFAULT 13 call_weak_fn - 35: 0000000000000580 0 NOTYPE LOCAL DEFAULT 11 $x - 36: 000000000000072c 0 NOTYPE LOCAL DEFAULT 14 $x - 37: 0000000000000000 0 FILE LOCAL DEFAULT ABS crtn.o - 38: 0000000000000590 0 NOTYPE LOCAL DEFAULT 11 $x - 39: 0000000000000738 0 NOTYPE LOCAL DEFAULT 14 $x - 40: 0000000000000000 0 FILE LOCAL DEFAULT ABS crtstuff.c - 41: 0000000000000650 0 NOTYPE LOCAL DEFAULT 13 $x - 42: 0000000000000650 0 FUNC LOCAL DEFAULT 13 deregister_tm_clones - 43: 0000000000000680 0 FUNC LOCAL DEFAULT 13 register_tm_clones - 44: 0000000000011028 0 NOTYPE LOCAL DEFAULT 23 $d - 45: 00000000000006c0 0 FUNC LOCAL DEFAULT 13 __do_global_dtors_aux - 46: 0000000000011030 1 OBJECT LOCAL DEFAULT 24 completed.0 - 47: 0000000000010dd0 0 NOTYPE LOCAL DEFAULT 19 $d - 48: 0000000000010dd0 0 OBJECT LOCAL DEFAULT 19 __do_global_dtors_aux_fini_array_entry - 49: 0000000000000710 0 FUNC LOCAL DEFAULT 13 frame_dummy - 50: 0000000000010dc8 0 NOTYPE LOCAL DEFAULT 18 $d - 51: 0000000000010dc8 0 OBJECT LOCAL DEFAULT 18 __frame_dummy_init_array_entry - 52: 00000000000007a8 0 NOTYPE LOCAL DEFAULT 17 $d - 53: 0000000000011030 0 NOTYPE LOCAL DEFAULT 24 $d - 54: 0000000000000000 0 FILE LOCAL DEFAULT ABS basicassign1.c - 55: 0000000000000714 0 NOTYPE LOCAL DEFAULT 13 $x.0 - 56: 0000000000011034 0 NOTYPE LOCAL DEFAULT 24 $d.1 - 57: 000000000000002a 0 NOTYPE LOCAL DEFAULT 25 $d.2 - 58: 0000000000000808 0 NOTYPE LOCAL DEFAULT 17 $d.3 - 59: 0000000000000000 0 FILE LOCAL DEFAULT ABS crtstuff.c - 60: 0000000000000830 0 NOTYPE LOCAL DEFAULT 17 $d - 61: 0000000000000830 0 OBJECT LOCAL DEFAULT 17 __FRAME_END__ - 62: 0000000000000000 0 FILE LOCAL DEFAULT ABS - 63: 0000000000010dd8 0 OBJECT LOCAL DEFAULT ABS _DYNAMIC - 64: 0000000000000744 0 NOTYPE LOCAL DEFAULT 16 __GNU_EH_FRAME_HDR - 65: 0000000000010fb8 0 OBJECT LOCAL DEFAULT ABS _GLOBAL_OFFSET_TABLE_ - 66: 00000000000005a0 0 NOTYPE LOCAL DEFAULT 12 $x - 67: 0000000000000000 0 FUNC GLOBAL DEFAULT UND __libc_start_main@GLIBC_2.34 - 68: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_deregisterTMCloneTable - 69: 0000000000011020 0 NOTYPE WEAK DEFAULT 23 data_start - 70: 0000000000011030 0 NOTYPE GLOBAL DEFAULT 24 __bss_start__ - 71: 0000000000000000 0 FUNC WEAK DEFAULT UND __cxa_finalize@GLIBC_2.17 - 72: 0000000000011040 0 NOTYPE GLOBAL DEFAULT 24 _bss_end__ - 73: 0000000000011030 0 NOTYPE GLOBAL DEFAULT 23 _edata - 74: 0000000000011038 4 OBJECT GLOBAL DEFAULT 24 z - 75: 000000000000072c 0 FUNC GLOBAL HIDDEN 14 _fini - 76: 0000000000011040 0 NOTYPE GLOBAL DEFAULT 24 __bss_end__ - 77: 0000000000011020 0 NOTYPE GLOBAL DEFAULT 23 __data_start - 78: 0000000000000000 0 NOTYPE WEAK DEFAULT UND __gmon_start__ - 79: 0000000000011028 0 OBJECT GLOBAL HIDDEN 23 __dso_handle - 80: 0000000000000000 0 FUNC GLOBAL DEFAULT UND abort@GLIBC_2.17 - 81: 0000000000000740 4 OBJECT GLOBAL DEFAULT 15 _IO_stdin_used - 82: 0000000000011034 4 OBJECT GLOBAL DEFAULT 24 secret - 83: 0000000000011040 0 NOTYPE GLOBAL DEFAULT 24 _end - 84: 0000000000000600 52 FUNC GLOBAL DEFAULT 13 _start - 85: 0000000000011040 0 NOTYPE GLOBAL DEFAULT 24 __end__ - 86: 0000000000011030 0 NOTYPE GLOBAL DEFAULT 24 __bss_start - 87: 0000000000000714 24 FUNC GLOBAL DEFAULT 13 main - 88: 0000000000011030 0 OBJECT GLOBAL HIDDEN 23 __TMC_END__ - 89: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_registerTMCloneTable - 90: 0000000000000580 0 FUNC GLOBAL HIDDEN 11 _init diff --git a/src/test/incorrect/basicassign1/clang_O2/basicassign1_gtirb.expected b/src/test/incorrect/basicassign1/clang_O2/basicassign1_gtirb.expected index 6f42c1489..bcbff1d95 100644 --- a/src/test/incorrect/basicassign1/clang_O2/basicassign1_gtirb.expected +++ b/src/test/incorrect/basicassign1/clang_O2/basicassign1_gtirb.expected @@ -7,7 +7,7 @@ var {:extern} R8: bv64; var {:extern} R9: bv64; var {:extern} mem: [bv64]bv8; const {:extern} $z_addr: bv64; -axiom ($z_addr == 69688bv64); +axiom ($z_addr == 131096bv64); function {:extern} L(mem$in: [bv64]bv8, index: bv64) returns (bool) { (if (index == $z_addr) then true else false) } @@ -17,6 +17,10 @@ function {:extern} gamma_load32(gammaMap: [bv64]bool, index: bv64) returns (bool (gammaMap[bvadd64(index, 3bv64)] && (gammaMap[bvadd64(index, 2bv64)] && (gammaMap[bvadd64(index, 1bv64)] && gammaMap[index]))) } +function {:extern} gamma_load64(gammaMap: [bv64]bool, index: bv64) returns (bool) { + (gammaMap[bvadd64(index, 7bv64)] && (gammaMap[bvadd64(index, 6bv64)] && (gammaMap[bvadd64(index, 5bv64)] && (gammaMap[bvadd64(index, 4bv64)] && (gammaMap[bvadd64(index, 3bv64)] && (gammaMap[bvadd64(index, 2bv64)] && (gammaMap[bvadd64(index, 1bv64)] && gammaMap[index]))))))) +} + function {:extern} gamma_store32(gammaMap: [bv64]bool, index: bv64, value: bool) returns ([bv64]bool) { gammaMap[index := value][bvadd64(index, 1bv64) := value][bvadd64(index, 2bv64) := value][bvadd64(index, 3bv64) := value] } @@ -38,11 +42,13 @@ procedure {:extern} rely(); modifies Gamma_mem, mem; ensures (Gamma_mem == old(Gamma_mem)); ensures (mem == old(mem)); - free ensures (memory_load32_le(mem, 1856bv64) == 131073bv32); - free ensures (memory_load64_le(mem, 69064bv64) == 1808bv64); - free ensures (memory_load64_le(mem, 69072bv64) == 1728bv64); - free ensures (memory_load64_le(mem, 69592bv64) == 1812bv64); - free ensures (memory_load64_le(mem, 69672bv64) == 69672bv64); + free ensures (memory_load32_le(mem, 2312bv64) == 131073bv32); + free ensures (memory_load64_le(mem, 130424bv64) == 2256bv64); + free ensures (memory_load64_le(mem, 130432bv64) == 2176bv64); + free ensures (memory_load64_le(mem, 131032bv64) == 131096bv64); + free ensures (memory_load64_le(mem, 131048bv64) == 131092bv64); + free ensures (memory_load64_le(mem, 131056bv64) == 2260bv64); + free ensures (memory_load64_le(mem, 131080bv64) == 131080bv64); procedure {:extern} rely_transitive(); modifies Gamma_mem, mem; @@ -60,40 +66,54 @@ procedure {:extern} rely_reflexive(); procedure {:extern} guarantee_reflexive(); modifies Gamma_mem, mem; -procedure main_1812(); +procedure main(); modifies Gamma_R0, Gamma_R8, Gamma_R9, Gamma_mem, R0, R8, R9, mem; - free requires (memory_load64_le(mem, 69664bv64) == 0bv64); - free requires (memory_load64_le(mem, 69672bv64) == 69672bv64); - free requires (memory_load32_le(mem, 1856bv64) == 131073bv32); - free requires (memory_load64_le(mem, 69064bv64) == 1808bv64); - free requires (memory_load64_le(mem, 69072bv64) == 1728bv64); - free requires (memory_load64_le(mem, 69592bv64) == 1812bv64); - free requires (memory_load64_le(mem, 69672bv64) == 69672bv64); - free ensures (memory_load32_le(mem, 1856bv64) == 131073bv32); - free ensures (memory_load64_le(mem, 69064bv64) == 1808bv64); - free ensures (memory_load64_le(mem, 69072bv64) == 1728bv64); - free ensures (memory_load64_le(mem, 69592bv64) == 1812bv64); - free ensures (memory_load64_le(mem, 69672bv64) == 69672bv64); + free requires (memory_load64_le(mem, 131072bv64) == 0bv64); + free requires (memory_load64_le(mem, 131080bv64) == 131080bv64); + free requires (memory_load32_le(mem, 2312bv64) == 131073bv32); + free requires (memory_load64_le(mem, 130424bv64) == 2256bv64); + free requires (memory_load64_le(mem, 130432bv64) == 2176bv64); + free requires (memory_load64_le(mem, 131032bv64) == 131096bv64); + free requires (memory_load64_le(mem, 131048bv64) == 131092bv64); + free requires (memory_load64_le(mem, 131056bv64) == 2260bv64); + free requires (memory_load64_le(mem, 131080bv64) == 131080bv64); + free ensures (memory_load32_le(mem, 2312bv64) == 131073bv32); + free ensures (memory_load64_le(mem, 130424bv64) == 2256bv64); + free ensures (memory_load64_le(mem, 130432bv64) == 2176bv64); + free ensures (memory_load64_le(mem, 131032bv64) == 131096bv64); + free ensures (memory_load64_le(mem, 131048bv64) == 131092bv64); + free ensures (memory_load64_le(mem, 131056bv64) == 2260bv64); + free ensures (memory_load64_le(mem, 131080bv64) == 131080bv64); -implementation main_1812() +implementation main() { - var Gamma_load3: bool; - var load3: bv32; - main_1812__0__Od2M3mwNQ0~eUkXl2xVFHw: - assume {:captureState "main_1812__0__Od2M3mwNQ0~eUkXl2xVFHw"} true; - R8, Gamma_R8 := 69632bv64, true; - R9, Gamma_R9 := 69632bv64, true; + var $load5: bv64; + var $load6: bv32; + var $load7: bv64; + var Gamma_$load5: bool; + var Gamma_$load6: bool; + var Gamma_$load7: bool; + $main$__0__$D9t2gNJrSmyMH3GAVRe3IQ: + assume {:captureState "$main$__0__$D9t2gNJrSmyMH3GAVRe3IQ"} true; + R8, Gamma_R8 := 126976bv64, true; + R9, Gamma_R9 := 126976bv64, true; R0, Gamma_R0 := 0bv64, true; call rely(); - load3, Gamma_load3 := memory_load32_le(mem, bvadd64(R8, 52bv64)), (gamma_load32(Gamma_mem, bvadd64(R8, 52bv64)) || L(mem, bvadd64(R8, 52bv64))); - R8, Gamma_R8 := zero_extend32_32(load3), Gamma_load3; + $load5, Gamma_$load5 := memory_load64_le(mem, bvadd64(R8, 4072bv64)), (gamma_load64(Gamma_mem, bvadd64(R8, 4072bv64)) || L(mem, bvadd64(R8, 4072bv64))); + R8, Gamma_R8 := $load5, Gamma_$load5; + call rely(); + $load6, Gamma_$load6 := memory_load32_le(mem, R8), (gamma_load32(Gamma_mem, R8) || L(mem, R8)); + R8, Gamma_R8 := zero_extend32_32($load6), Gamma_$load6; + call rely(); + $load7, Gamma_$load7 := memory_load64_le(mem, bvadd64(R9, 4056bv64)), (gamma_load64(Gamma_mem, bvadd64(R9, 4056bv64)) || L(mem, bvadd64(R9, 4056bv64))); + R9, Gamma_R9 := $load7, Gamma_$load7; call rely(); - assert (L(mem, bvadd64(R9, 56bv64)) ==> Gamma_R8); - mem, Gamma_mem := memory_store32_le(mem, bvadd64(R9, 56bv64), R8[32:0]), gamma_store32(Gamma_mem, bvadd64(R9, 56bv64), Gamma_R8); - assume {:captureState "1828_0"} true; - goto main_1812_basil_return; - main_1812_basil_return: - assume {:captureState "main_1812_basil_return"} true; + assert (L(mem, R9) ==> Gamma_R8); + mem, Gamma_mem := memory_store32_le(mem, R9, R8[32:0]), gamma_store32(Gamma_mem, R9, Gamma_R8); + assume {:captureState "2284$0"} true; + goto main_basil_return; + main_basil_return: + assume {:captureState "main_basil_return"} true; return; } diff --git a/src/test/incorrect/basicassign1/clang_pic/basicassign1.adt b/src/test/incorrect/basicassign1/clang_pic/basicassign1.adt deleted file mode 100644 index c2d3fdede..000000000 --- a/src/test/incorrect/basicassign1/clang_pic/basicassign1.adt +++ /dev/null @@ -1,529 +0,0 @@ -Project(Attrs([Attr("filename","\"clang_pic/basicassign1.out\""), -Attr("image-specification","(declare abi (name str))\n(declare arch (name str))\n(declare base-address (addr int))\n(declare bias (off int))\n(declare bits (size int))\n(declare code-region (addr int) (size int) (off int))\n(declare code-start (addr int))\n(declare entry-point (addr int))\n(declare external-reference (addr int) (name str))\n(declare format (name str))\n(declare is-executable (flag bool))\n(declare is-little-endian (flag bool))\n(declare llvm:base-address (addr int))\n(declare llvm:code-entry (name str) (off int) (size int))\n(declare llvm:coff-import-library (name str))\n(declare llvm:coff-virtual-section-header (name str) (addr int) (size int))\n(declare llvm:elf-program-header (name str) (off int) (size int))\n(declare llvm:elf-program-header-flags (name str) (ld bool) (r bool) \n (w bool) (x bool))\n(declare llvm:elf-virtual-program-header (name str) (addr int) (size int))\n(declare llvm:entry-point (addr int))\n(declare llvm:macho-symbol (name str) (value int))\n(declare llvm:name-reference (at int) (name str))\n(declare llvm:relocation (at int) (addr int))\n(declare llvm:section-entry (name str) (addr int) (size int) (off int))\n(declare llvm:section-flags (name str) (r bool) (w bool) (x bool))\n(declare llvm:segment-command (name str) (off int) (size int))\n(declare llvm:segment-command-flags (name str) (r bool) (w bool) (x bool))\n(declare llvm:symbol-entry (name str) (addr int) (size int) (off int)\n (value int))\n(declare llvm:virtual-segment-command (name str) (addr int) (size int))\n(declare mapped (addr int) (size int) (off int))\n(declare named-region (addr int) (size int) (name str))\n(declare named-symbol (addr int) (name str))\n(declare require (name str))\n(declare section (addr int) (size int))\n(declare segment (addr int) (size int) (r bool) (w bool) (x bool))\n(declare subarch (name str))\n(declare symbol-chunk (addr int) (size int) (root int))\n(declare symbol-value (addr int) (value int))\n(declare system (name str))\n(declare vendor (name str))\n\n(abi unknown)\n(arch aarch64)\n(base-address 0)\n(bias 0)\n(bits 64)\n(code-region 1944 20 1944)\n(code-region 1600 344 1600)\n(code-region 1488 96 1488)\n(code-region 1456 24 1456)\n(code-start 1652)\n(code-start 1600)\n(code-start 1876)\n(entry-point 1600)\n(external-reference 69552 _ITM_deregisterTMCloneTable)\n(external-reference 69560 __cxa_finalize)\n(external-reference 69576 __gmon_start__)\n(external-reference 69600 _ITM_registerTMCloneTable)\n(external-reference 69632 __libc_start_main)\n(external-reference 69640 __cxa_finalize)\n(external-reference 69648 __gmon_start__)\n(external-reference 69656 abort)\n(format elf)\n(is-executable true)\n(is-little-endian true)\n(llvm:base-address 0)\n(llvm:code-entry abort 0 0)\n(llvm:code-entry __cxa_finalize 0 0)\n(llvm:code-entry __libc_start_main 0 0)\n(llvm:code-entry _init 1456 0)\n(llvm:code-entry main 1876 68)\n(llvm:code-entry _start 1600 52)\n(llvm:code-entry abort@GLIBC_2.17 0 0)\n(llvm:code-entry _fini 1944 0)\n(llvm:code-entry __cxa_finalize@GLIBC_2.17 0 0)\n(llvm:code-entry __libc_start_main@GLIBC_2.34 0 0)\n(llvm:code-entry frame_dummy 1872 0)\n(llvm:code-entry __do_global_dtors_aux 1792 0)\n(llvm:code-entry register_tm_clones 1728 0)\n(llvm:code-entry deregister_tm_clones 1680 0)\n(llvm:code-entry call_weak_fn 1652 20)\n(llvm:code-entry .fini 1944 20)\n(llvm:code-entry .text 1600 344)\n(llvm:code-entry .plt 1488 96)\n(llvm:code-entry .init 1456 24)\n(llvm:elf-program-header 08 3512 584)\n(llvm:elf-program-header 07 0 0)\n(llvm:elf-program-header 06 1968 60)\n(llvm:elf-program-header 05 596 68)\n(llvm:elf-program-header 04 3528 480)\n(llvm:elf-program-header 03 3512 632)\n(llvm:elf-program-header 02 0 2216)\n(llvm:elf-program-header 01 568 27)\n(llvm:elf-program-header 00 64 504)\n(llvm:elf-program-header-flags 08 false true false false)\n(llvm:elf-program-header-flags 07 false true true false)\n(llvm:elf-program-header-flags 06 false true false false)\n(llvm:elf-program-header-flags 05 false true false false)\n(llvm:elf-program-header-flags 04 false true true false)\n(llvm:elf-program-header-flags 03 true true true false)\n(llvm:elf-program-header-flags 02 true true false true)\n(llvm:elf-program-header-flags 01 false true false false)\n(llvm:elf-program-header-flags 00 false true false false)\n(llvm:elf-virtual-program-header 08 69048 584)\n(llvm:elf-virtual-program-header 07 0 0)\n(llvm:elf-virtual-program-header 06 1968 60)\n(llvm:elf-virtual-program-header 05 596 68)\n(llvm:elf-virtual-program-header 04 69064 480)\n(llvm:elf-virtual-program-header 03 69048 648)\n(llvm:elf-virtual-program-header 02 0 2216)\n(llvm:elf-virtual-program-header 01 568 27)\n(llvm:elf-virtual-program-header 00 64 504)\n(llvm:entry-point 1600)\n(llvm:name-reference 69656 abort)\n(llvm:name-reference 69648 __gmon_start__)\n(llvm:name-reference 69640 __cxa_finalize)\n(llvm:name-reference 69632 __libc_start_main)\n(llvm:name-reference 69600 _ITM_registerTMCloneTable)\n(llvm:name-reference 69576 __gmon_start__)\n(llvm:name-reference 69560 __cxa_finalize)\n(llvm:name-reference 69552 _ITM_deregisterTMCloneTable)\n(llvm:section-entry .shstrtab 0 259 6977)\n(llvm:section-entry .strtab 0 577 6400)\n(llvm:section-entry .symtab 0 2184 4216)\n(llvm:section-entry .comment 0 71 4144)\n(llvm:section-entry .bss 69680 16 4144)\n(llvm:section-entry .data 69664 16 4128)\n(llvm:section-entry .got.plt 69608 56 4072)\n(llvm:section-entry .got 69544 64 4008)\n(llvm:section-entry .dynamic 69064 480 3528)\n(llvm:section-entry .fini_array 69056 8 3520)\n(llvm:section-entry .init_array 69048 8 3512)\n(llvm:section-entry .eh_frame 2032 184 2032)\n(llvm:section-entry .eh_frame_hdr 1968 60 1968)\n(llvm:section-entry .rodata 1964 4 1964)\n(llvm:section-entry .fini 1944 20 1944)\n(llvm:section-entry .text 1600 344 1600)\n(llvm:section-entry .plt 1488 96 1488)\n(llvm:section-entry .init 1456 24 1456)\n(llvm:section-entry .rela.plt 1360 96 1360)\n(llvm:section-entry .rela.dyn 1120 240 1120)\n(llvm:section-entry .gnu.version_r 1072 48 1072)\n(llvm:section-entry .gnu.version 1054 18 1054)\n(llvm:section-entry .dynstr 912 141 912)\n(llvm:section-entry .dynsym 696 216 696)\n(llvm:section-entry .gnu.hash 664 28 664)\n(llvm:section-entry .note.ABI-tag 632 32 632)\n(llvm:section-entry .note.gnu.build-id 596 36 596)\n(llvm:section-entry .interp 568 27 568)\n(llvm:section-flags .shstrtab true false false)\n(llvm:section-flags .strtab true false false)\n(llvm:section-flags .symtab true false false)\n(llvm:section-flags .comment true false false)\n(llvm:section-flags .bss true true false)\n(llvm:section-flags .data true true false)\n(llvm:section-flags .got.plt true true false)\n(llvm:section-flags .got true true false)\n(llvm:section-flags .dynamic true true false)\n(llvm:section-flags .fini_array true true false)\n(llvm:section-flags .init_array true true false)\n(llvm:section-flags .eh_frame true false false)\n(llvm:section-flags .eh_frame_hdr true false false)\n(llvm:section-flags .rodata true false false)\n(llvm:section-flags .fini true false true)\n(llvm:section-flags .text true false true)\n(llvm:section-flags .plt true false true)\n(llvm:section-flags .init true false true)\n(llvm:section-flags .rela.plt true false false)\n(llvm:section-flags .rela.dyn true false false)\n(llvm:section-flags .gnu.version_r true false false)\n(llvm:section-flags .gnu.version true false false)\n(llvm:section-flags .dynstr true false false)\n(llvm:section-flags .dynsym true false false)\n(llvm:section-flags .gnu.hash true false false)\n(llvm:section-flags .note.ABI-tag true false false)\n(llvm:section-flags .note.gnu.build-id true false false)\n(llvm:section-flags .interp true false false)\n(llvm:symbol-entry abort 0 0 0 0)\n(llvm:symbol-entry __cxa_finalize 0 0 0 0)\n(llvm:symbol-entry __libc_start_main 0 0 0 0)\n(llvm:symbol-entry _init 1456 0 1456 1456)\n(llvm:symbol-entry main 1876 68 1876 1876)\n(llvm:symbol-entry _start 1600 52 1600 1600)\n(llvm:symbol-entry abort@GLIBC_2.17 0 0 0 0)\n(llvm:symbol-entry _fini 1944 0 1944 1944)\n(llvm:symbol-entry __cxa_finalize@GLIBC_2.17 0 0 0 0)\n(llvm:symbol-entry __libc_start_main@GLIBC_2.34 0 0 0 0)\n(llvm:symbol-entry frame_dummy 1872 0 1872 1872)\n(llvm:symbol-entry __do_global_dtors_aux 1792 0 1792 1792)\n(llvm:symbol-entry register_tm_clones 1728 0 1728 1728)\n(llvm:symbol-entry deregister_tm_clones 1680 0 1680 1680)\n(llvm:symbol-entry call_weak_fn 1652 20 1652 1652)\n(mapped 0 2216 0)\n(mapped 69048 632 3512)\n(named-region 0 2216 02)\n(named-region 69048 648 03)\n(named-region 568 27 .interp)\n(named-region 596 36 .note.gnu.build-id)\n(named-region 632 32 .note.ABI-tag)\n(named-region 664 28 .gnu.hash)\n(named-region 696 216 .dynsym)\n(named-region 912 141 .dynstr)\n(named-region 1054 18 .gnu.version)\n(named-region 1072 48 .gnu.version_r)\n(named-region 1120 240 .rela.dyn)\n(named-region 1360 96 .rela.plt)\n(named-region 1456 24 .init)\n(named-region 1488 96 .plt)\n(named-region 1600 344 .text)\n(named-region 1944 20 .fini)\n(named-region 1964 4 .rodata)\n(named-region 1968 60 .eh_frame_hdr)\n(named-region 2032 184 .eh_frame)\n(named-region 69048 8 .init_array)\n(named-region 69056 8 .fini_array)\n(named-region 69064 480 .dynamic)\n(named-region 69544 64 .got)\n(named-region 69608 56 .got.plt)\n(named-region 69664 16 .data)\n(named-region 69680 16 .bss)\n(named-region 0 71 .comment)\n(named-region 0 2184 .symtab)\n(named-region 0 577 .strtab)\n(named-region 0 259 .shstrtab)\n(named-symbol 1652 call_weak_fn)\n(named-symbol 1680 deregister_tm_clones)\n(named-symbol 1728 register_tm_clones)\n(named-symbol 1792 __do_global_dtors_aux)\n(named-symbol 1872 frame_dummy)\n(named-symbol 0 __libc_start_main@GLIBC_2.34)\n(named-symbol 0 __cxa_finalize@GLIBC_2.17)\n(named-symbol 1944 _fini)\n(named-symbol 0 abort@GLIBC_2.17)\n(named-symbol 1600 _start)\n(named-symbol 1876 main)\n(named-symbol 1456 _init)\n(named-symbol 0 __libc_start_main)\n(named-symbol 0 __cxa_finalize)\n(named-symbol 0 abort)\n(require libc.so.6)\n(section 568 27)\n(section 596 36)\n(section 632 32)\n(section 664 28)\n(section 696 216)\n(section 912 141)\n(section 1054 18)\n(section 1072 48)\n(section 1120 240)\n(section 1360 96)\n(section 1456 24)\n(section 1488 96)\n(section 1600 344)\n(section 1944 20)\n(section 1964 4)\n(section 1968 60)\n(section 2032 184)\n(section 69048 8)\n(section 69056 8)\n(section 69064 480)\n(section 69544 64)\n(section 69608 56)\n(section 69664 16)\n(section 69680 16)\n(section 0 71)\n(section 0 2184)\n(section 0 577)\n(section 0 259)\n(segment 0 2216 true false true)\n(segment 69048 648 true true false)\n(subarch v8)\n(symbol-chunk 1652 20 1652)\n(symbol-chunk 1600 52 1600)\n(symbol-chunk 1876 68 1876)\n(symbol-value 1652 1652)\n(symbol-value 1680 1680)\n(symbol-value 1728 1728)\n(symbol-value 1792 1792)\n(symbol-value 1872 1872)\n(symbol-value 1944 1944)\n(symbol-value 1600 1600)\n(symbol-value 1876 1876)\n(symbol-value 1456 1456)\n(symbol-value 0 0)\n(system \"\")\n(vendor \"\")\n"), -Attr("abi-name","\"aarch64-linux-gnu-elf\"")]), -Sections([Section(".shstrtab", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x40\x06\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x48\x1c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x38\x00\x09\x00\x40\x00\x1d\x00\x1c\x00\x06\x00\x00\x00\x04\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x04\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xa8\x08\x00\x00\x00\x00\x00\x00\xa8\x08\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x01\x00\x00\x00\x06\x00\x00\x00\xb8\x0d\x00\x00\x00\x00\x00\x00\xb8\x0d\x01\x00\x00\x00\x00\x00\xb8\x0d\x01"), -Section(".strtab", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x40\x06\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x48\x1c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x38\x00\x09\x00\x40\x00\x1d\x00\x1c\x00\x06\x00\x00\x00\x04\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x04\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xa8\x08\x00\x00\x00\x00\x00\x00\xa8\x08\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x01\x00\x00\x00\x06\x00\x00\x00\xb8\x0d\x00\x00\x00\x00\x00\x00\xb8\x0d\x01\x00\x00\x00\x00\x00\xb8\x0d\x01\x00\x00\x00\x00\x00\x78\x02\x00\x00\x00\x00\x00\x00\x88\x02\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x02\x00\x00\x00\x06\x00\x00\x00\xc8\x0d\x00\x00\x00\x00\x00\x00\xc8\x0d\x01\x00\x00\x00\x00\x00\xc8\x0d\x01\x00\x00\x00\x00\x00\xe0\x01\x00\x00\x00\x00\x00\x00\xe0\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x04\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x50\xe5\x74\x64\x04\x00\x00\x00\xb0\x07\x00\x00\x00\x00\x00\x00\xb0\x07\x00\x00\x00\x00\x00\x00\xb0\x07\x00\x00\x00\x00\x00\x00\x3c\x00\x00\x00\x00\x00\x00\x00\x3c\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x51\xe5\x74\x64\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x52\xe5\x74\x64\x04\x00\x00\x00\xb8\x0d\x00\x00\x00\x00\x00\x00\xb8\x0d\x01\x00\x00\x00\x00\x00\xb8\x0d\x01\x00\x00\x00\x00\x00\x48\x02\x00\x00\x00\x00\x00\x00\x48\x02\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x2f\x6c\x69\x62\x2f\x6c\x64\x2d\x6c"), -Section(".symtab", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x40\x06\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x48\x1c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x38\x00\x09\x00\x40\x00\x1d\x00\x1c\x00\x06\x00\x00\x00\x04\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x04\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xa8\x08\x00\x00\x00\x00\x00\x00\xa8\x08\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x01\x00\x00\x00\x06\x00\x00\x00\xb8\x0d\x00\x00\x00\x00\x00\x00\xb8\x0d\x01\x00\x00\x00\x00\x00\xb8\x0d\x01\x00\x00\x00\x00\x00\x78\x02\x00\x00\x00\x00\x00\x00\x88\x02\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x02\x00\x00\x00\x06\x00\x00\x00\xc8\x0d\x00\x00\x00\x00\x00\x00\xc8\x0d\x01\x00\x00\x00\x00\x00\xc8\x0d\x01\x00\x00\x00\x00\x00\xe0\x01\x00\x00\x00\x00\x00\x00\xe0\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x04\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x50\xe5\x74\x64\x04\x00\x00\x00\xb0\x07\x00\x00\x00\x00\x00\x00\xb0\x07\x00\x00\x00\x00\x00\x00\xb0\x07\x00\x00\x00\x00\x00\x00\x3c\x00\x00\x00\x00\x00\x00\x00\x3c\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x51\xe5\x74\x64\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x52\xe5\x74\x64\x04\x00\x00\x00\xb8\x0d\x00\x00\x00\x00\x00\x00\xb8\x0d\x01\x00\x00\x00\x00\x00\xb8\x0d\x01\x00\x00\x00\x00\x00\x48\x02\x00\x00\x00\x00\x00\x00\x48\x02\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x2f\x6c\x69\x62\x2f\x6c\x64\x2d\x6c\x69\x6e\x75\x78\x2d\x61\x61\x72\x63\x68\x36\x34\x2e\x73\x6f\x2e\x31\x00\x00\x04\x00\x00\x00\x14\x00\x00\x00\x03\x00\x00\x00\x47\x4e\x55\x00\x31\x11\x7f\x0d\x03\x52\x29\x84\xd7\x21\x9f\x80\x10\xfd\xd5\xaf\xd2\xda\x12\xc4\x04\x00\x00\x00\x10\x00\x00\x00\x01\x00\x00\x00\x47\x4e\x55\x00\x00\x00\x00\x00\x03\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x01\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x0b\x00\xb0\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x17\x00\x20\x10\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x48\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x22\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x22\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x73\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5f\x5f\x63\x78\x61\x5f\x66\x69\x6e\x61\x6c\x69\x7a\x65\x00\x5f\x5f\x6c\x69\x62\x63\x5f\x73\x74\x61\x72\x74\x5f\x6d\x61\x69\x6e\x00\x61\x62\x6f\x72\x74\x00\x6c\x69\x62\x63\x2e\x73\x6f\x2e\x36\x00\x47\x4c\x49\x42\x43\x5f\x32\x2e\x31\x37\x00\x47\x4c\x49\x42\x43\x5f\x32\x2e\x33\x34\x00\x5f\x49\x54\x4d\x5f\x64\x65\x72\x65\x67\x69\x73\x74\x65\x72\x54\x4d\x43\x6c\x6f\x6e\x65\x54\x61\x62\x6c\x65\x00\x5f\x5f\x67\x6d\x6f\x6e\x5f\x73\x74\x61\x72\x74\x5f\x5f\x00\x5f\x49\x54\x4d\x5f\x72\x65\x67\x69\x73\x74\x65\x72\x54\x4d\x43\x6c\x6f\x6e\x65\x54\x61\x62\x6c\x65\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x01\x00\x03\x00\x01\x00\x03\x00\x01\x00\x01\x00\x02\x00\x28\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x97\x91\x96\x06\x00\x00\x03\x00\x32\x00\x00\x00\x10\x00\x00\x00\xb4\x91\x96\x06\x00\x00\x02\x00\x3d\x00\x00\x00\x00\x00\x00\x00\xb8\x0d\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x50\x07\x00\x00\x00\x00\x00\x00\xc0\x0d\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\xc0\x0f\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x38\x10\x01\x00\x00\x00\x00\x00\xd0\x0f\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x34\x10\x01\x00\x00\x00\x00\x00\xd8\x0f\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x54\x07\x00\x00\x00\x00\x00\x00\x28\x10\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x28\x10\x01\x00\x00\x00\x00\x00\xb0\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xb8\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xc8\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe0\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x08\x10\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x10\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x18\x10\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1f\x20\x03\xd5\xfd\x7b\xbf\xa9\xfd\x03\x00\x91\x2e\x00\x00\x94\xfd\x7b\xc1\xa8\xc0\x03\x5f\xd6\x00\x00\x00\x00\x00\x00\x00\x00\xf0\x7b\xbf\xa9\x90\x00\x00\x90\x11\xfe\x47\xf9\x10\xe2\x3f\x91\x20\x02\x1f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x90\x00\x00\xb0\x11\x02\x40\xf9\x10\x02\x00\x91\x20\x02\x1f\xd6\x90\x00\x00\xb0\x11\x06\x40\xf9\x10\x22\x00\x91\x20\x02\x1f\xd6\x90\x00\x00\xb0\x11\x0a\x40\xf9\x10\x42\x00\x91\x20\x02\x1f\xd6\x90\x00\x00\xb0\x11\x0e\x40\xf9\x10\x62\x00\x91\x20\x02\x1f\xd6\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1f\x20\x03\xd5\x1d\x00\x80\xd2\x1e\x00\x80\xd2\xe5\x03\x00\xaa\xe1\x03\x40\xf9\xe2\x23\x00\x91\xe6\x03\x00\x91\x80\x00\x00\x90\x00\xec\x47\xf9\x03\x00\x80\xd2\x04\x00\x80\xd2\xe1\xff\xff\x97\xec\xff\xff\x97\x80\x00\x00\x90\x00\xe4\x47\xf9\x40\x00\x00\xb4\xe4\xff\xff\x17\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x80\x00\x00\xb0\x00\xc0\x00\x91\x81\x00\x00\xb0\x21\xc0\x00\x91\x3f\x00\x00\xeb\xc0\x00\x00\x54\x81\x00\x00\x90\x21\xd8\x47\xf9\x61\x00\x00\xb4\xf0\x03\x01\xaa\x00\x02\x1f\xd6\xc0\x03\x5f\xd6\x80\x00\x00\xb0\x00\xc0\x00\x91\x81\x00\x00\xb0\x21\xc0\x00\x91\x21\x00\x00\xcb\x22\xfc\x7f\xd3\x41\x0c\x81\x8b\x21\xfc\x41\x93\xc1\x00\x00\xb4\x82\x00\x00\x90\x42\xf0\x47\xf9\x62\x00\x00\xb4\xf0\x03\x02\xaa\x00\x02\x1f\xd6\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\xfd\x7b\xbe\xa9\xfd\x03\x00\x91\xf3\x0b\x00\xf9\x93\x00\x00\xb0\x60\xc2\x40\x39\x40\x01\x00\x35\x80\x00\x00\x90\x00\xdc\x47\xf9\x80\x00\x00\xb4\x80\x00\x00\xb0\x00\x14\x40\xf9\xb5\xff\xff\x97\xd8\xff\xff\x97\x20\x00\x80\x52\x60\xc2\x00\x39\xf3\x0b\x40\xf9\xfd\x7b\xc2\xa8\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\xdc\xff\xff\x17\xff\x43\x00\xd1\x88\x00\x00\x90\x08\xe9\x47\xf9\x09\x01\x40\xb9\xe9\x0f\x00\xb9\xe0\x03\x1f\x2a\xff\x0f\x00\xb9\xea\x0f\x40\xb9\x89\x00\x00\x90\x29\xe1\x47\xf9\x2a\x01\x00\xb9\x08\x01\x40\xb9\xe8\x0f\x00\xb9\xe8\x0f\x40\xb9\x28\x01\x00\xb9\xff\x43\x00\x91\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\xfd\x7b\xbf\xa9\xfd\x03\x00\x91\xfd\x7b\xc1\xa8\xc0\x03\x5f\xd6\x01\x00\x02\x00\x01\x1b\x03\x3b\x3c\x00\x00\x00\x06\x00\x00\x00\x90\xfe\xff\xff\x54\x00\x00\x00\xe0\xfe\xff\xff\x68\x00\x00\x00\x10\xff\xff\xff\x7c\x00\x00\x00\x50\xff\xff\xff\x90\x00\x00\x00\xa0\xff\xff\xff\xb4\x00\x00\x00\xa4\xff\xff\xff\xdc\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x01\x7a\x52\x00\x04\x78\x1e\x01\x1b\x0c\x1f\x00\x10\x00\x00\x00\x18\x00\x00\x00\x34\xfe\xff\xff\x34\x00\x00\x00\x00\x41\x07\x1e\x10\x00\x00\x00\x2c\x00\x00\x00\x70\xfe\xff\xff\x30\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x40\x00\x00\x00\x8c\xfe\xff\xff\x3c\x00\x00\x00\x00\x00\x00\x00\x20\x00\x00\x00\x54\x00\x00\x00\xb8\xfe\xff\xff\x48\x00\x00\x00\x00\x41\x0e\x20\x9d\x04\x9e\x03\x42\x93\x02\x4e\xde\xdd\xd3\x0e\x00\x00\x00\x00\x10\x00\x00\x00\x78\x00\x00\x00\xe4\xfe\xff\xff\x04\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x01\x7a\x52\x00\x01\x7c\x1e\x01"), -Section(".comment", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x40\x06\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x48\x1c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x38\x00\x09\x00\x40\x00\x1d\x00\x1c\x00\x06\x00\x00\x00\x04\x00\x00"), -Section(".interp", 0x238, "\x2f\x6c\x69\x62\x2f\x6c\x64\x2d\x6c\x69\x6e\x75\x78\x2d\x61\x61\x72\x63\x68\x36\x34\x2e\x73\x6f\x2e\x31\x00"), -Section(".note.gnu.build-id", 0x254, "\x04\x00\x00\x00\x14\x00\x00\x00\x03\x00\x00\x00\x47\x4e\x55\x00\x31\x11\x7f\x0d\x03\x52\x29\x84\xd7\x21\x9f\x80\x10\xfd\xd5\xaf\xd2\xda\x12\xc4"), -Section(".note.ABI-tag", 0x278, "\x04\x00\x00\x00\x10\x00\x00\x00\x01\x00\x00\x00\x47\x4e\x55\x00\x00\x00\x00\x00\x03\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00"), -Section(".gnu.hash", 0x298, "\x01\x00\x00\x00\x01\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".dynsym", 0x2B8, "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x0b\x00\xb0\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x17\x00\x20\x10\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x48\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x22\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x22\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x73\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".dynstr", 0x390, "\x00\x5f\x5f\x63\x78\x61\x5f\x66\x69\x6e\x61\x6c\x69\x7a\x65\x00\x5f\x5f\x6c\x69\x62\x63\x5f\x73\x74\x61\x72\x74\x5f\x6d\x61\x69\x6e\x00\x61\x62\x6f\x72\x74\x00\x6c\x69\x62\x63\x2e\x73\x6f\x2e\x36\x00\x47\x4c\x49\x42\x43\x5f\x32\x2e\x31\x37\x00\x47\x4c\x49\x42\x43\x5f\x32\x2e\x33\x34\x00\x5f\x49\x54\x4d\x5f\x64\x65\x72\x65\x67\x69\x73\x74\x65\x72\x54\x4d\x43\x6c\x6f\x6e\x65\x54\x61\x62\x6c\x65\x00\x5f\x5f\x67\x6d\x6f\x6e\x5f\x73\x74\x61\x72\x74\x5f\x5f\x00\x5f\x49\x54\x4d\x5f\x72\x65\x67\x69\x73\x74\x65\x72\x54\x4d\x43\x6c\x6f\x6e\x65\x54\x61\x62\x6c\x65\x00"), -Section(".gnu.version", 0x41E, "\x00\x00\x00\x00\x00\x00\x02\x00\x01\x00\x03\x00\x01\x00\x03\x00\x01\x00"), -Section(".gnu.version_r", 0x430, "\x01\x00\x02\x00\x28\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x97\x91\x96\x06\x00\x00\x03\x00\x32\x00\x00\x00\x10\x00\x00\x00\xb4\x91\x96\x06\x00\x00\x02\x00\x3d\x00\x00\x00\x00\x00\x00\x00"), -Section(".rela.dyn", 0x460, "\xb8\x0d\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x50\x07\x00\x00\x00\x00\x00\x00\xc0\x0d\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\xc0\x0f\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x38\x10\x01\x00\x00\x00\x00\x00\xd0\x0f\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x34\x10\x01\x00\x00\x00\x00\x00\xd8\x0f\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x54\x07\x00\x00\x00\x00\x00\x00\x28\x10\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x28\x10\x01\x00\x00\x00\x00\x00\xb0\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xb8\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xc8\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe0\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".rela.plt", 0x550, "\x00\x10\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x08\x10\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x10\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x18\x10\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".init", 0x5B0, "\x1f\x20\x03\xd5\xfd\x7b\xbf\xa9\xfd\x03\x00\x91\x2e\x00\x00\x94\xfd\x7b\xc1\xa8\xc0\x03\x5f\xd6"), -Section(".plt", 0x5D0, "\xf0\x7b\xbf\xa9\x90\x00\x00\x90\x11\xfe\x47\xf9\x10\xe2\x3f\x91\x20\x02\x1f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x90\x00\x00\xb0\x11\x02\x40\xf9\x10\x02\x00\x91\x20\x02\x1f\xd6\x90\x00\x00\xb0\x11\x06\x40\xf9\x10\x22\x00\x91\x20\x02\x1f\xd6\x90\x00\x00\xb0\x11\x0a\x40\xf9\x10\x42\x00\x91\x20\x02\x1f\xd6\x90\x00\x00\xb0\x11\x0e\x40\xf9\x10\x62\x00\x91\x20\x02\x1f\xd6"), -Section(".fini", 0x798, "\x1f\x20\x03\xd5\xfd\x7b\xbf\xa9\xfd\x03\x00\x91\xfd\x7b\xc1\xa8\xc0\x03\x5f\xd6"), -Section(".rodata", 0x7AC, "\x01\x00\x02\x00"), -Section(".eh_frame_hdr", 0x7B0, "\x01\x1b\x03\x3b\x3c\x00\x00\x00\x06\x00\x00\x00\x90\xfe\xff\xff\x54\x00\x00\x00\xe0\xfe\xff\xff\x68\x00\x00\x00\x10\xff\xff\xff\x7c\x00\x00\x00\x50\xff\xff\xff\x90\x00\x00\x00\xa0\xff\xff\xff\xb4\x00\x00\x00\xa4\xff\xff\xff\xdc\x00\x00\x00"), -Section(".eh_frame", 0x7F0, "\x10\x00\x00\x00\x00\x00\x00\x00\x01\x7a\x52\x00\x04\x78\x1e\x01\x1b\x0c\x1f\x00\x10\x00\x00\x00\x18\x00\x00\x00\x34\xfe\xff\xff\x34\x00\x00\x00\x00\x41\x07\x1e\x10\x00\x00\x00\x2c\x00\x00\x00\x70\xfe\xff\xff\x30\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x40\x00\x00\x00\x8c\xfe\xff\xff\x3c\x00\x00\x00\x00\x00\x00\x00\x20\x00\x00\x00\x54\x00\x00\x00\xb8\xfe\xff\xff\x48\x00\x00\x00\x00\x41\x0e\x20\x9d\x04\x9e\x03\x42\x93\x02\x4e\xde\xdd\xd3\x0e\x00\x00\x00\x00\x10\x00\x00\x00\x78\x00\x00\x00\xe4\xfe\xff\xff\x04\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x01\x7a\x52\x00\x01\x7c\x1e\x01\x1b\x0c\x1f\x00\x14\x00\x00\x00\x18\x00\x00\x00\xc0\xfe\xff\xff\x44\x00\x00\x00\x00\x44\x0e\x10\x7c\x0e\x00\x00\x00\x00\x00\x00"), -Section(".fini_array", 0x10DC0, "\x00\x07\x00\x00\x00\x00\x00\x00"), -Section(".dynamic", 0x10DC8, "\x01\x00\x00\x00\x00\x00\x00\x00\x28\x00\x00\x00\x00\x00\x00\x00\x0c\x00\x00\x00\x00\x00\x00\x00\xb0\x05\x00\x00\x00\x00\x00\x00\x0d\x00\x00\x00\x00\x00\x00\x00\x98\x07\x00\x00\x00\x00\x00\x00\x19\x00\x00\x00\x00\x00\x00\x00\xb8\x0d\x01\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x1a\x00\x00\x00\x00\x00\x00\x00\xc0\x0d\x01\x00\x00\x00\x00\x00\x1c\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\xf5\xfe\xff\x6f\x00\x00\x00\x00\x98\x02\x00\x00\x00\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x90\x03\x00\x00\x00\x00\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\xb8\x02\x00\x00\x00\x00\x00\x00\x0a\x00\x00\x00\x00\x00\x00\x00\x8d\x00\x00\x00\x00\x00\x00\x00\x0b\x00\x00\x00\x00\x00\x00\x00\x18\x00\x00\x00\x00\x00\x00\x00\x15\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\xe8\x0f\x01\x00\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x60\x00\x00\x00\x00\x00\x00\x00\x14\x00\x00\x00\x00\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x17\x00\x00\x00\x00\x00\x00\x00\x50\x05\x00\x00\x00\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x60\x04\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\xf0\x00\x00\x00\x00\x00\x00\x00\x09\x00\x00\x00\x00\x00\x00\x00\x18\x00\x00\x00\x00\x00\x00\x00\xfb\xff\xff\x6f\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\xfe\xff\xff\x6f\x00\x00\x00\x00\x30\x04\x00\x00\x00\x00\x00\x00\xff\xff\xff\x6f\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\xf0\xff\xff\x6f\x00\x00\x00\x00\x1e\x04\x00\x00\x00\x00\x00\x00\xf9\xff\xff\x6f\x00\x00\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".init_array", 0x10DB8, "\x50\x07\x00\x00\x00\x00\x00\x00"), -Section(".got", 0x10FA8, "\xc8\x0d\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x38\x10\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x34\x10\x01\x00\x00\x00\x00\x00\x54\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".got.plt", 0x10FE8, "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xd0\x05\x00\x00\x00\x00\x00\x00\xd0\x05\x00\x00\x00\x00\x00\x00\xd0\x05\x00\x00\x00\x00\x00\x00\xd0\x05\x00\x00\x00\x00\x00\x00"), -Section(".data", 0x11020, "\x00\x00\x00\x00\x00\x00\x00\x00\x28\x10\x01\x00\x00\x00\x00\x00"), -Section(".text", 0x640, "\x1f\x20\x03\xd5\x1d\x00\x80\xd2\x1e\x00\x80\xd2\xe5\x03\x00\xaa\xe1\x03\x40\xf9\xe2\x23\x00\x91\xe6\x03\x00\x91\x80\x00\x00\x90\x00\xec\x47\xf9\x03\x00\x80\xd2\x04\x00\x80\xd2\xe1\xff\xff\x97\xec\xff\xff\x97\x80\x00\x00\x90\x00\xe4\x47\xf9\x40\x00\x00\xb4\xe4\xff\xff\x17\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x80\x00\x00\xb0\x00\xc0\x00\x91\x81\x00\x00\xb0\x21\xc0\x00\x91\x3f\x00\x00\xeb\xc0\x00\x00\x54\x81\x00\x00\x90\x21\xd8\x47\xf9\x61\x00\x00\xb4\xf0\x03\x01\xaa\x00\x02\x1f\xd6\xc0\x03\x5f\xd6\x80\x00\x00\xb0\x00\xc0\x00\x91\x81\x00\x00\xb0\x21\xc0\x00\x91\x21\x00\x00\xcb\x22\xfc\x7f\xd3\x41\x0c\x81\x8b\x21\xfc\x41\x93\xc1\x00\x00\xb4\x82\x00\x00\x90\x42\xf0\x47\xf9\x62\x00\x00\xb4\xf0\x03\x02\xaa\x00\x02\x1f\xd6\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\xfd\x7b\xbe\xa9\xfd\x03\x00\x91\xf3\x0b\x00\xf9\x93\x00\x00\xb0\x60\xc2\x40\x39\x40\x01\x00\x35\x80\x00\x00\x90\x00\xdc\x47\xf9\x80\x00\x00\xb4\x80\x00\x00\xb0\x00\x14\x40\xf9\xb5\xff\xff\x97\xd8\xff\xff\x97\x20\x00\x80\x52\x60\xc2\x00\x39\xf3\x0b\x40\xf9\xfd\x7b\xc2\xa8\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\xdc\xff\xff\x17\xff\x43\x00\xd1\x88\x00\x00\x90\x08\xe9\x47\xf9\x09\x01\x40\xb9\xe9\x0f\x00\xb9\xe0\x03\x1f\x2a\xff\x0f\x00\xb9\xea\x0f\x40\xb9\x89\x00\x00\x90\x29\xe1\x47\xf9\x2a\x01\x00\xb9\x08\x01\x40\xb9\xe8\x0f\x00\xb9\xe8\x0f\x40\xb9\x28\x01\x00\xb9\xff\x43\x00\x91\xc0\x03\x5f\xd6")]), -Memmap([Annotation(Region(0x0,0x8A7), Attr("segment","02 0 2216")), -Annotation(Region(0x640,0x673), Attr("symbol","\"_start\"")), -Annotation(Region(0x0,0x102), Attr("section","\".shstrtab\"")), -Annotation(Region(0x0,0x240), Attr("section","\".strtab\"")), -Annotation(Region(0x0,0x887), Attr("section","\".symtab\"")), -Annotation(Region(0x0,0x46), Attr("section","\".comment\"")), -Annotation(Region(0x238,0x252), Attr("section","\".interp\"")), -Annotation(Region(0x254,0x277), Attr("section","\".note.gnu.build-id\"")), -Annotation(Region(0x278,0x297), Attr("section","\".note.ABI-tag\"")), -Annotation(Region(0x298,0x2B3), Attr("section","\".gnu.hash\"")), -Annotation(Region(0x2B8,0x38F), Attr("section","\".dynsym\"")), -Annotation(Region(0x390,0x41C), Attr("section","\".dynstr\"")), -Annotation(Region(0x41E,0x42F), Attr("section","\".gnu.version\"")), -Annotation(Region(0x430,0x45F), Attr("section","\".gnu.version_r\"")), -Annotation(Region(0x460,0x54F), Attr("section","\".rela.dyn\"")), -Annotation(Region(0x550,0x5AF), Attr("section","\".rela.plt\"")), -Annotation(Region(0x5B0,0x5C7), Attr("section","\".init\"")), -Annotation(Region(0x5D0,0x62F), Attr("section","\".plt\"")), -Annotation(Region(0x5B0,0x5C7), Attr("code-region","()")), -Annotation(Region(0x5D0,0x62F), Attr("code-region","()")), -Annotation(Region(0x640,0x673), Attr("symbol-info","_start 0x640 52")), -Annotation(Region(0x674,0x687), Attr("symbol","\"call_weak_fn\"")), -Annotation(Region(0x674,0x687), Attr("symbol-info","call_weak_fn 0x674 20")), -Annotation(Region(0x754,0x797), Attr("symbol","\"main\"")), -Annotation(Region(0x754,0x797), Attr("symbol-info","main 0x754 68")), -Annotation(Region(0x798,0x7AB), Attr("section","\".fini\"")), -Annotation(Region(0x7AC,0x7AF), Attr("section","\".rodata\"")), -Annotation(Region(0x7B0,0x7EB), Attr("section","\".eh_frame_hdr\"")), -Annotation(Region(0x7F0,0x8A7), Attr("section","\".eh_frame\"")), -Annotation(Region(0x10DB8,0x1102F), Attr("segment","03 0x10DB8 648")), -Annotation(Region(0x10DC0,0x10DC7), Attr("section","\".fini_array\"")), -Annotation(Region(0x10DC8,0x10FA7), Attr("section","\".dynamic\"")), -Annotation(Region(0x10DB8,0x10DBF), Attr("section","\".init_array\"")), -Annotation(Region(0x10FA8,0x10FE7), Attr("section","\".got\"")), -Annotation(Region(0x10FE8,0x1101F), Attr("section","\".got.plt\"")), -Annotation(Region(0x11020,0x1102F), Attr("section","\".data\"")), -Annotation(Region(0x640,0x797), Attr("section","\".text\"")), -Annotation(Region(0x640,0x797), Attr("code-region","()")), -Annotation(Region(0x798,0x7AB), Attr("code-region","()"))]), -Program(Tid(1_456, "%000005b0"), Attrs([]), - Subs([Sub(Tid(1_406, "@__cxa_finalize"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x600"), -Attr("stub","()")]), "__cxa_finalize", Args([Arg(Tid(1_457, "%000005b1"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("__cxa_finalize_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(918, "@__cxa_finalize"), - Attrs([Attr("address","0x600")]), Phis([]), -Defs([Def(Tid(1_166, "%0000048e"), Attrs([Attr("address","0x600"), -Attr("insn","adrp x16, #69632")]), Var("R16",Imm(64)), Int(69632,64)), -Def(Tid(1_173, "%00000495"), Attrs([Attr("address","0x604"), -Attr("insn","ldr x17, [x16, #0x8]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(1_179, "%0000049b"), Attrs([Attr("address","0x608"), -Attr("insn","add x16, x16, #0x8")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(8,64)))]), Jmps([Call(Tid(1_184, "%000004a0"), - Attrs([Attr("address","0x60C"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), -Sub(Tid(1_407, "@__do_global_dtors_aux"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x700")]), - "__do_global_dtors_aux", Args([Arg(Tid(1_458, "%000005b2"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("__do_global_dtors_aux_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(658, "@__do_global_dtors_aux"), - Attrs([Attr("address","0x700")]), Phis([]), Defs([Def(Tid(662, "%00000296"), - Attrs([Attr("address","0x700"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("#3",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(18446744073709551584,64))), -Def(Tid(668, "%0000029c"), Attrs([Attr("address","0x700"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("#3",Imm(64)),Var("R29",Imm(64)),LittleEndian(),64)), -Def(Tid(674, "%000002a2"), Attrs([Attr("address","0x700"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("#3",Imm(64)),Int(8,64)),Var("R30",Imm(64)),LittleEndian(),64)), -Def(Tid(678, "%000002a6"), Attrs([Attr("address","0x700"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("R31",Imm(64)), -Var("#3",Imm(64))), Def(Tid(684, "%000002ac"), - Attrs([Attr("address","0x704"), Attr("insn","mov x29, sp")]), - Var("R29",Imm(64)), Var("R31",Imm(64))), Def(Tid(692, "%000002b4"), - Attrs([Attr("address","0x708"), Attr("insn","str x19, [sp, #0x10]")]), - Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(16,64)),Var("R19",Imm(64)),LittleEndian(),64)), -Def(Tid(697, "%000002b9"), Attrs([Attr("address","0x70C"), -Attr("insn","adrp x19, #69632")]), Var("R19",Imm(64)), Int(69632,64)), -Def(Tid(704, "%000002c0"), Attrs([Attr("address","0x710"), -Attr("insn","ldrb w0, [x19, #0x30]")]), Var("R0",Imm(64)), -UNSIGNED(64,Load(Var("mem",Mem(64,8)),PLUS(Var("R19",Imm(64)),Int(48,64)),LittleEndian(),8)))]), -Jmps([Goto(Tid(711, "%000002c7"), Attrs([Attr("address","0x714"), -Attr("insn","cbnz w0, #0x28")]), - NEQ(Extract(31,0,Var("R0",Imm(64))),Int(0,32)), -Direct(Tid(709, "%000002c5"))), Goto(Tid(1_446, "%000005a6"), Attrs([]), - Int(1,1), Direct(Tid(863, "%0000035f")))])), Blk(Tid(863, "%0000035f"), - Attrs([Attr("address","0x718")]), Phis([]), Defs([Def(Tid(866, "%00000362"), - Attrs([Attr("address","0x718"), Attr("insn","adrp x0, #65536")]), - Var("R0",Imm(64)), Int(65536,64)), Def(Tid(873, "%00000369"), - Attrs([Attr("address","0x71C"), Attr("insn","ldr x0, [x0, #0xfb8]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(4024,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(879, "%0000036f"), Attrs([Attr("address","0x720"), -Attr("insn","cbz x0, #0x10")]), EQ(Var("R0",Imm(64)),Int(0,64)), -Direct(Tid(877, "%0000036d"))), Goto(Tid(1_447, "%000005a7"), Attrs([]), - Int(1,1), Direct(Tid(902, "%00000386")))])), Blk(Tid(902, "%00000386"), - Attrs([Attr("address","0x724")]), Phis([]), Defs([Def(Tid(905, "%00000389"), - Attrs([Attr("address","0x724"), Attr("insn","adrp x0, #69632")]), - Var("R0",Imm(64)), Int(69632,64)), Def(Tid(912, "%00000390"), - Attrs([Attr("address","0x728"), Attr("insn","ldr x0, [x0, #0x28]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(40,64)),LittleEndian(),64)), -Def(Tid(917, "%00000395"), Attrs([Attr("address","0x72C"), -Attr("insn","bl #-0x12c")]), Var("R30",Imm(64)), Int(1840,64))]), -Jmps([Call(Tid(920, "%00000398"), Attrs([Attr("address","0x72C"), -Attr("insn","bl #-0x12c")]), Int(1,1), -(Direct(Tid(1_406, "@__cxa_finalize")),Direct(Tid(877, "%0000036d"))))])), -Blk(Tid(877, "%0000036d"), Attrs([Attr("address","0x730")]), Phis([]), -Defs([Def(Tid(885, "%00000375"), Attrs([Attr("address","0x730"), -Attr("insn","bl #-0xa0")]), Var("R30",Imm(64)), Int(1844,64))]), -Jmps([Call(Tid(887, "%00000377"), Attrs([Attr("address","0x730"), -Attr("insn","bl #-0xa0")]), Int(1,1), -(Direct(Tid(1_420, "@deregister_tm_clones")),Direct(Tid(889, "%00000379"))))])), -Blk(Tid(889, "%00000379"), Attrs([Attr("address","0x734")]), Phis([]), -Defs([Def(Tid(892, "%0000037c"), Attrs([Attr("address","0x734"), -Attr("insn","mov w0, #0x1")]), Var("R0",Imm(64)), Int(1,64)), -Def(Tid(900, "%00000384"), Attrs([Attr("address","0x738"), -Attr("insn","strb w0, [x19, #0x30]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R19",Imm(64)),Int(48,64)),Extract(7,0,Var("R0",Imm(64))),LittleEndian(),8))]), -Jmps([Goto(Tid(1_448, "%000005a8"), Attrs([]), Int(1,1), -Direct(Tid(709, "%000002c5")))])), Blk(Tid(709, "%000002c5"), - Attrs([Attr("address","0x73C")]), Phis([]), Defs([Def(Tid(719, "%000002cf"), - Attrs([Attr("address","0x73C"), Attr("insn","ldr x19, [sp, #0x10]")]), - Var("R19",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(16,64)),LittleEndian(),64)), -Def(Tid(726, "%000002d6"), Attrs([Attr("address","0x740"), -Attr("insn","ldp x29, x30, [sp], #0x20")]), Var("R29",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(731, "%000002db"), Attrs([Attr("address","0x740"), -Attr("insn","ldp x29, x30, [sp], #0x20")]), Var("R30",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(735, "%000002df"), Attrs([Attr("address","0x740"), -Attr("insn","ldp x29, x30, [sp], #0x20")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(32,64)))]), Jmps([Call(Tid(740, "%000002e4"), - Attrs([Attr("address","0x744"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), Sub(Tid(1_411, "@__libc_start_main"), - Attrs([Attr("c.proto","signed (*)(signed (*)(signed , char** , char** );* main, signed , char** , \nvoid* auxv)"), -Attr("address","0x5F0"), Attr("stub","()")]), "__libc_start_main", - Args([Arg(Tid(1_459, "%000005b3"), - Attrs([Attr("c.layout","**[ : 64]"), -Attr("c.data","Top:u64 ptr ptr"), -Attr("c.type","signed (*)(signed , char** , char** );*")]), - Var("__libc_start_main_main",Imm(64)), Var("R0",Imm(64)), In()), -Arg(Tid(1_460, "%000005b4"), Attrs([Attr("c.layout","[signed : 32]"), -Attr("c.data","Top:u32"), Attr("c.type","signed")]), - Var("__libc_start_main_arg2",Imm(32)), LOW(32,Var("R1",Imm(64))), In()), -Arg(Tid(1_461, "%000005b5"), Attrs([Attr("c.layout","**[char : 8]"), -Attr("c.data","Top:u8 ptr ptr"), Attr("c.type","char**")]), - Var("__libc_start_main_arg3",Imm(64)), Var("R2",Imm(64)), Both()), -Arg(Tid(1_462, "%000005b6"), Attrs([Attr("c.layout","*[ : 8]"), -Attr("c.data","{} ptr"), Attr("c.type","void*")]), - Var("__libc_start_main_auxv",Imm(64)), Var("R3",Imm(64)), Both()), -Arg(Tid(1_463, "%000005b7"), Attrs([Attr("c.layout","[signed : 32]"), -Attr("c.data","Top:u32"), Attr("c.type","signed")]), - Var("__libc_start_main_result",Imm(32)), LOW(32,Var("R0",Imm(64))), -Out())]), Blks([Blk(Tid(491, "@__libc_start_main"), - Attrs([Attr("address","0x5F0")]), Phis([]), -Defs([Def(Tid(1_144, "%00000478"), Attrs([Attr("address","0x5F0"), -Attr("insn","adrp x16, #69632")]), Var("R16",Imm(64)), Int(69632,64)), -Def(Tid(1_151, "%0000047f"), Attrs([Attr("address","0x5F4"), -Attr("insn","ldr x17, [x16]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R16",Imm(64)),LittleEndian(),64)), -Def(Tid(1_157, "%00000485"), Attrs([Attr("address","0x5F8"), -Attr("insn","add x16, x16, #0x0")]), Var("R16",Imm(64)), -Var("R16",Imm(64)))]), Jmps([Call(Tid(1_162, "%0000048a"), - Attrs([Attr("address","0x5FC"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), Sub(Tid(1_412, "@_fini"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x798")]), - "_fini", Args([Arg(Tid(1_464, "%000005b8"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("_fini_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(31, "@_fini"), - Attrs([Attr("address","0x798")]), Phis([]), Defs([Def(Tid(37, "%00000025"), - Attrs([Attr("address","0x79C"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("#0",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(18446744073709551600,64))), -Def(Tid(43, "%0000002b"), Attrs([Attr("address","0x79C"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("#0",Imm(64)),Var("R29",Imm(64)),LittleEndian(),64)), -Def(Tid(49, "%00000031"), Attrs([Attr("address","0x79C"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("#0",Imm(64)),Int(8,64)),Var("R30",Imm(64)),LittleEndian(),64)), -Def(Tid(53, "%00000035"), Attrs([Attr("address","0x79C"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("R31",Imm(64)), -Var("#0",Imm(64))), Def(Tid(59, "%0000003b"), Attrs([Attr("address","0x7A0"), -Attr("insn","mov x29, sp")]), Var("R29",Imm(64)), Var("R31",Imm(64))), -Def(Tid(66, "%00000042"), Attrs([Attr("address","0x7A4"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R29",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(71, "%00000047"), Attrs([Attr("address","0x7A4"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R30",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(75, "%0000004b"), Attrs([Attr("address","0x7A4"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(16,64)))]), Jmps([Call(Tid(80, "%00000050"), - Attrs([Attr("address","0x7A8"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), Sub(Tid(1_413, "@_init"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x5B0")]), - "_init", Args([Arg(Tid(1_465, "%000005b9"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("_init_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(1_256, "@_init"), - Attrs([Attr("address","0x5B0")]), Phis([]), -Defs([Def(Tid(1_262, "%000004ee"), Attrs([Attr("address","0x5B4"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("#5",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(18446744073709551600,64))), -Def(Tid(1_268, "%000004f4"), Attrs([Attr("address","0x5B4"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("#5",Imm(64)),Var("R29",Imm(64)),LittleEndian(),64)), -Def(Tid(1_274, "%000004fa"), Attrs([Attr("address","0x5B4"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("#5",Imm(64)),Int(8,64)),Var("R30",Imm(64)),LittleEndian(),64)), -Def(Tid(1_278, "%000004fe"), Attrs([Attr("address","0x5B4"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("R31",Imm(64)), -Var("#5",Imm(64))), Def(Tid(1_284, "%00000504"), - Attrs([Attr("address","0x5B8"), Attr("insn","mov x29, sp")]), - Var("R29",Imm(64)), Var("R31",Imm(64))), Def(Tid(1_289, "%00000509"), - Attrs([Attr("address","0x5BC"), Attr("insn","bl #0xb8")]), - Var("R30",Imm(64)), Int(1472,64))]), Jmps([Call(Tid(1_291, "%0000050b"), - Attrs([Attr("address","0x5BC"), Attr("insn","bl #0xb8")]), Int(1,1), -(Direct(Tid(1_418, "@call_weak_fn")),Direct(Tid(1_293, "%0000050d"))))])), -Blk(Tid(1_293, "%0000050d"), Attrs([Attr("address","0x5C0")]), Phis([]), -Defs([Def(Tid(1_298, "%00000512"), Attrs([Attr("address","0x5C0"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R29",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(1_303, "%00000517"), Attrs([Attr("address","0x5C0"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R30",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(1_307, "%0000051b"), Attrs([Attr("address","0x5C0"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(16,64)))]), Jmps([Call(Tid(1_312, "%00000520"), - Attrs([Attr("address","0x5C4"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), Sub(Tid(1_414, "@_start"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x640"), -Attr("entry-point","()")]), "_start", Args([Arg(Tid(1_466, "%000005ba"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("_start_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(428, "@_start"), - Attrs([Attr("address","0x640")]), Phis([]), Defs([Def(Tid(433, "%000001b1"), - Attrs([Attr("address","0x644"), Attr("insn","mov x29, #0x0")]), - Var("R29",Imm(64)), Int(0,64)), Def(Tid(438, "%000001b6"), - Attrs([Attr("address","0x648"), Attr("insn","mov x30, #0x0")]), - Var("R30",Imm(64)), Int(0,64)), Def(Tid(444, "%000001bc"), - Attrs([Attr("address","0x64C"), Attr("insn","mov x5, x0")]), - Var("R5",Imm(64)), Var("R0",Imm(64))), Def(Tid(451, "%000001c3"), - Attrs([Attr("address","0x650"), Attr("insn","ldr x1, [sp]")]), - Var("R1",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(457, "%000001c9"), Attrs([Attr("address","0x654"), -Attr("insn","add x2, sp, #0x8")]), Var("R2",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(8,64))), Def(Tid(463, "%000001cf"), - Attrs([Attr("address","0x658"), Attr("insn","mov x6, sp")]), - Var("R6",Imm(64)), Var("R31",Imm(64))), Def(Tid(468, "%000001d4"), - Attrs([Attr("address","0x65C"), Attr("insn","adrp x0, #65536")]), - Var("R0",Imm(64)), Int(65536,64)), Def(Tid(475, "%000001db"), - Attrs([Attr("address","0x660"), Attr("insn","ldr x0, [x0, #0xfd8]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(4056,64)),LittleEndian(),64)), -Def(Tid(480, "%000001e0"), Attrs([Attr("address","0x664"), -Attr("insn","mov x3, #0x0")]), Var("R3",Imm(64)), Int(0,64)), -Def(Tid(485, "%000001e5"), Attrs([Attr("address","0x668"), -Attr("insn","mov x4, #0x0")]), Var("R4",Imm(64)), Int(0,64)), -Def(Tid(490, "%000001ea"), Attrs([Attr("address","0x66C"), -Attr("insn","bl #-0x7c")]), Var("R30",Imm(64)), Int(1648,64))]), -Jmps([Call(Tid(493, "%000001ed"), Attrs([Attr("address","0x66C"), -Attr("insn","bl #-0x7c")]), Int(1,1), -(Direct(Tid(1_411, "@__libc_start_main")),Direct(Tid(495, "%000001ef"))))])), -Blk(Tid(495, "%000001ef"), Attrs([Attr("address","0x670")]), Phis([]), -Defs([Def(Tid(498, "%000001f2"), Attrs([Attr("address","0x670"), -Attr("insn","bl #-0x50")]), Var("R30",Imm(64)), Int(1652,64))]), -Jmps([Call(Tid(501, "%000001f5"), Attrs([Attr("address","0x670"), -Attr("insn","bl #-0x50")]), Int(1,1), -(Direct(Tid(1_417, "@abort")),Direct(Tid(1_449, "%000005a9"))))])), -Blk(Tid(1_449, "%000005a9"), Attrs([]), Phis([]), Defs([]), -Jmps([Call(Tid(1_450, "%000005aa"), Attrs([]), Int(1,1), -(Direct(Tid(1_418, "@call_weak_fn")),))]))])), Sub(Tid(1_417, "@abort"), - Attrs([Attr("noreturn","()"), Attr("c.proto","void (*)(void)"), -Attr("address","0x620"), Attr("stub","()")]), "abort", Args([]), -Blks([Blk(Tid(499, "@abort"), Attrs([Attr("address","0x620")]), Phis([]), -Defs([Def(Tid(1_210, "%000004ba"), Attrs([Attr("address","0x620"), -Attr("insn","adrp x16, #69632")]), Var("R16",Imm(64)), Int(69632,64)), -Def(Tid(1_217, "%000004c1"), Attrs([Attr("address","0x624"), -Attr("insn","ldr x17, [x16, #0x18]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(24,64)),LittleEndian(),64)), -Def(Tid(1_223, "%000004c7"), Attrs([Attr("address","0x628"), -Attr("insn","add x16, x16, #0x18")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(24,64)))]), Jmps([Call(Tid(1_228, "%000004cc"), - Attrs([Attr("address","0x62C"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), Sub(Tid(1_418, "@call_weak_fn"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x674")]), - "call_weak_fn", Args([Arg(Tid(1_467, "%000005bb"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("call_weak_fn_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(503, "@call_weak_fn"), - Attrs([Attr("address","0x674")]), Phis([]), Defs([Def(Tid(506, "%000001fa"), - Attrs([Attr("address","0x674"), Attr("insn","adrp x0, #65536")]), - Var("R0",Imm(64)), Int(65536,64)), Def(Tid(513, "%00000201"), - Attrs([Attr("address","0x678"), Attr("insn","ldr x0, [x0, #0xfc8]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(4040,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(519, "%00000207"), Attrs([Attr("address","0x67C"), -Attr("insn","cbz x0, #0x8")]), EQ(Var("R0",Imm(64)),Int(0,64)), -Direct(Tid(517, "%00000205"))), Goto(Tid(1_451, "%000005ab"), Attrs([]), - Int(1,1), Direct(Tid(982, "%000003d6")))])), Blk(Tid(517, "%00000205"), - Attrs([Attr("address","0x684")]), Phis([]), Defs([]), -Jmps([Call(Tid(525, "%0000020d"), Attrs([Attr("address","0x684"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))])), -Blk(Tid(982, "%000003d6"), Attrs([Attr("address","0x680")]), Phis([]), -Defs([]), Jmps([Goto(Tid(985, "%000003d9"), Attrs([Attr("address","0x680"), -Attr("insn","b #-0x70")]), Int(1,1), Direct(Tid(983, "@__gmon_start__")))])), -Blk(Tid(983, "@__gmon_start__"), Attrs([Attr("address","0x610")]), Phis([]), -Defs([Def(Tid(1_188, "%000004a4"), Attrs([Attr("address","0x610"), -Attr("insn","adrp x16, #69632")]), Var("R16",Imm(64)), Int(69632,64)), -Def(Tid(1_195, "%000004ab"), Attrs([Attr("address","0x614"), -Attr("insn","ldr x17, [x16, #0x10]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(16,64)),LittleEndian(),64)), -Def(Tid(1_201, "%000004b1"), Attrs([Attr("address","0x618"), -Attr("insn","add x16, x16, #0x10")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(16,64)))]), Jmps([Call(Tid(1_206, "%000004b6"), - Attrs([Attr("address","0x61C"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), -Sub(Tid(1_420, "@deregister_tm_clones"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x690")]), - "deregister_tm_clones", Args([Arg(Tid(1_468, "%000005bc"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("deregister_tm_clones_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(531, "@deregister_tm_clones"), - Attrs([Attr("address","0x690")]), Phis([]), Defs([Def(Tid(534, "%00000216"), - Attrs([Attr("address","0x690"), Attr("insn","adrp x0, #69632")]), - Var("R0",Imm(64)), Int(69632,64)), Def(Tid(540, "%0000021c"), - Attrs([Attr("address","0x694"), Attr("insn","add x0, x0, #0x30")]), - Var("R0",Imm(64)), PLUS(Var("R0",Imm(64)),Int(48,64))), -Def(Tid(545, "%00000221"), Attrs([Attr("address","0x698"), -Attr("insn","adrp x1, #69632")]), Var("R1",Imm(64)), Int(69632,64)), -Def(Tid(551, "%00000227"), Attrs([Attr("address","0x69C"), -Attr("insn","add x1, x1, #0x30")]), Var("R1",Imm(64)), -PLUS(Var("R1",Imm(64)),Int(48,64))), Def(Tid(557, "%0000022d"), - Attrs([Attr("address","0x6A0"), Attr("insn","cmp x1, x0")]), - Var("#1",Imm(64)), NOT(Var("R0",Imm(64)))), Def(Tid(562, "%00000232"), - Attrs([Attr("address","0x6A0"), Attr("insn","cmp x1, x0")]), - Var("#2",Imm(64)), PLUS(Var("R1",Imm(64)),NOT(Var("R0",Imm(64))))), -Def(Tid(568, "%00000238"), Attrs([Attr("address","0x6A0"), -Attr("insn","cmp x1, x0")]), Var("VF",Imm(1)), -NEQ(SIGNED(65,PLUS(Var("#2",Imm(64)),Int(1,64))),PLUS(PLUS(SIGNED(65,Var("R1",Imm(64))),SIGNED(65,Var("#1",Imm(64)))),Int(1,65)))), -Def(Tid(574, "%0000023e"), Attrs([Attr("address","0x6A0"), -Attr("insn","cmp x1, x0")]), Var("CF",Imm(1)), -NEQ(UNSIGNED(65,PLUS(Var("#2",Imm(64)),Int(1,64))),PLUS(PLUS(UNSIGNED(65,Var("R1",Imm(64))),UNSIGNED(65,Var("#1",Imm(64)))),Int(1,65)))), -Def(Tid(578, "%00000242"), Attrs([Attr("address","0x6A0"), -Attr("insn","cmp x1, x0")]), Var("ZF",Imm(1)), -EQ(PLUS(Var("#2",Imm(64)),Int(1,64)),Int(0,64))), Def(Tid(582, "%00000246"), - Attrs([Attr("address","0x6A0"), Attr("insn","cmp x1, x0")]), - Var("NF",Imm(1)), Extract(63,63,PLUS(Var("#2",Imm(64)),Int(1,64))))]), -Jmps([Goto(Tid(588, "%0000024c"), Attrs([Attr("address","0x6A4"), -Attr("insn","b.eq #0x18")]), EQ(Var("ZF",Imm(1)),Int(1,1)), -Direct(Tid(586, "%0000024a"))), Goto(Tid(1_452, "%000005ac"), Attrs([]), - Int(1,1), Direct(Tid(952, "%000003b8")))])), Blk(Tid(952, "%000003b8"), - Attrs([Attr("address","0x6A8")]), Phis([]), Defs([Def(Tid(955, "%000003bb"), - Attrs([Attr("address","0x6A8"), Attr("insn","adrp x1, #65536")]), - Var("R1",Imm(64)), Int(65536,64)), Def(Tid(962, "%000003c2"), - Attrs([Attr("address","0x6AC"), Attr("insn","ldr x1, [x1, #0xfb0]")]), - Var("R1",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R1",Imm(64)),Int(4016,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(967, "%000003c7"), Attrs([Attr("address","0x6B0"), -Attr("insn","cbz x1, #0xc")]), EQ(Var("R1",Imm(64)),Int(0,64)), -Direct(Tid(586, "%0000024a"))), Goto(Tid(1_453, "%000005ad"), Attrs([]), - Int(1,1), Direct(Tid(971, "%000003cb")))])), Blk(Tid(586, "%0000024a"), - Attrs([Attr("address","0x6BC")]), Phis([]), Defs([]), -Jmps([Call(Tid(594, "%00000252"), Attrs([Attr("address","0x6BC"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))])), -Blk(Tid(971, "%000003cb"), Attrs([Attr("address","0x6B4")]), Phis([]), -Defs([Def(Tid(975, "%000003cf"), Attrs([Attr("address","0x6B4"), -Attr("insn","mov x16, x1")]), Var("R16",Imm(64)), Var("R1",Imm(64)))]), -Jmps([Call(Tid(980, "%000003d4"), Attrs([Attr("address","0x6B8"), -Attr("insn","br x16")]), Int(1,1), (Indirect(Var("R16",Imm(64))),))]))])), -Sub(Tid(1_423, "@frame_dummy"), Attrs([Attr("c.proto","signed (*)(void)"), -Attr("address","0x750")]), "frame_dummy", Args([Arg(Tid(1_469, "%000005bd"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("frame_dummy_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(746, "@frame_dummy"), - Attrs([Attr("address","0x750")]), Phis([]), Defs([]), -Jmps([Call(Tid(748, "%000002ec"), Attrs([Attr("address","0x750"), -Attr("insn","b #-0x90")]), Int(1,1), -(Direct(Tid(1_425, "@register_tm_clones")),))]))])), Sub(Tid(1_424, "@main"), - Attrs([Attr("c.proto","signed (*)(signed argc, const char** argv)"), -Attr("address","0x754")]), "main", Args([Arg(Tid(1_470, "%000005be"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("main_argc",Imm(32)), -LOW(32,Var("R0",Imm(64))), In()), Arg(Tid(1_471, "%000005bf"), - Attrs([Attr("c.layout","**[char : 8]"), Attr("c.data","Top:u8 ptr ptr"), -Attr("c.type"," const char**")]), Var("main_argv",Imm(64)), -Var("R1",Imm(64)), Both()), Arg(Tid(1_472, "%000005c0"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("main_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(750, "@main"), - Attrs([Attr("address","0x754")]), Phis([]), Defs([Def(Tid(754, "%000002f2"), - Attrs([Attr("address","0x754"), Attr("insn","sub sp, sp, #0x10")]), - Var("R31",Imm(64)), PLUS(Var("R31",Imm(64)),Int(18446744073709551600,64))), -Def(Tid(759, "%000002f7"), Attrs([Attr("address","0x758"), -Attr("insn","adrp x8, #65536")]), Var("R8",Imm(64)), Int(65536,64)), -Def(Tid(766, "%000002fe"), Attrs([Attr("address","0x75C"), -Attr("insn","ldr x8, [x8, #0xfd0]")]), Var("R8",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R8",Imm(64)),Int(4048,64)),LittleEndian(),64)), -Def(Tid(773, "%00000305"), Attrs([Attr("address","0x760"), -Attr("insn","ldr w9, [x8]")]), Var("R9",Imm(64)), -UNSIGNED(64,Load(Var("mem",Mem(64,8)),Var("R8",Imm(64)),LittleEndian(),32))), -Def(Tid(781, "%0000030d"), Attrs([Attr("address","0x764"), -Attr("insn","str w9, [sp, #0xc]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(12,64)),Extract(31,0,Var("R9",Imm(64))),LittleEndian(),32)), -Def(Tid(786, "%00000312"), Attrs([Attr("address","0x768"), -Attr("insn","mov w0, wzr")]), Var("R0",Imm(64)), Int(0,64)), -Def(Tid(793, "%00000319"), Attrs([Attr("address","0x76C"), -Attr("insn","str wzr, [sp, #0xc]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(12,64)),Int(0,32),LittleEndian(),32)), -Def(Tid(800, "%00000320"), Attrs([Attr("address","0x770"), -Attr("insn","ldr w10, [sp, #0xc]")]), Var("R10",Imm(64)), -UNSIGNED(64,Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(12,64)),LittleEndian(),32))), -Def(Tid(805, "%00000325"), Attrs([Attr("address","0x774"), -Attr("insn","adrp x9, #65536")]), Var("R9",Imm(64)), Int(65536,64)), -Def(Tid(812, "%0000032c"), Attrs([Attr("address","0x778"), -Attr("insn","ldr x9, [x9, #0xfc0]")]), Var("R9",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R9",Imm(64)),Int(4032,64)),LittleEndian(),64)), -Def(Tid(820, "%00000334"), Attrs([Attr("address","0x77C"), -Attr("insn","str w10, [x9]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("R9",Imm(64)),Extract(31,0,Var("R10",Imm(64))),LittleEndian(),32)), -Def(Tid(827, "%0000033b"), Attrs([Attr("address","0x780"), -Attr("insn","ldr w8, [x8]")]), Var("R8",Imm(64)), -UNSIGNED(64,Load(Var("mem",Mem(64,8)),Var("R8",Imm(64)),LittleEndian(),32))), -Def(Tid(835, "%00000343"), Attrs([Attr("address","0x784"), -Attr("insn","str w8, [sp, #0xc]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(12,64)),Extract(31,0,Var("R8",Imm(64))),LittleEndian(),32)), -Def(Tid(842, "%0000034a"), Attrs([Attr("address","0x788"), -Attr("insn","ldr w8, [sp, #0xc]")]), Var("R8",Imm(64)), -UNSIGNED(64,Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(12,64)),LittleEndian(),32))), -Def(Tid(850, "%00000352"), Attrs([Attr("address","0x78C"), -Attr("insn","str w8, [x9]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("R9",Imm(64)),Extract(31,0,Var("R8",Imm(64))),LittleEndian(),32)), -Def(Tid(856, "%00000358"), Attrs([Attr("address","0x790"), -Attr("insn","add sp, sp, #0x10")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(16,64)))]), Jmps([Call(Tid(861, "%0000035d"), - Attrs([Attr("address","0x794"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), -Sub(Tid(1_425, "@register_tm_clones"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x6C0")]), - "register_tm_clones", Args([Arg(Tid(1_473, "%000005c1"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("register_tm_clones_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(596, "@register_tm_clones"), Attrs([Attr("address","0x6C0")]), - Phis([]), Defs([Def(Tid(599, "%00000257"), Attrs([Attr("address","0x6C0"), -Attr("insn","adrp x0, #69632")]), Var("R0",Imm(64)), Int(69632,64)), -Def(Tid(605, "%0000025d"), Attrs([Attr("address","0x6C4"), -Attr("insn","add x0, x0, #0x30")]), Var("R0",Imm(64)), -PLUS(Var("R0",Imm(64)),Int(48,64))), Def(Tid(610, "%00000262"), - Attrs([Attr("address","0x6C8"), Attr("insn","adrp x1, #69632")]), - Var("R1",Imm(64)), Int(69632,64)), Def(Tid(616, "%00000268"), - Attrs([Attr("address","0x6CC"), Attr("insn","add x1, x1, #0x30")]), - Var("R1",Imm(64)), PLUS(Var("R1",Imm(64)),Int(48,64))), -Def(Tid(623, "%0000026f"), Attrs([Attr("address","0x6D0"), -Attr("insn","sub x1, x1, x0")]), Var("R1",Imm(64)), -PLUS(PLUS(Var("R1",Imm(64)),NOT(Var("R0",Imm(64)))),Int(1,64))), -Def(Tid(629, "%00000275"), Attrs([Attr("address","0x6D4"), -Attr("insn","lsr x2, x1, #63")]), Var("R2",Imm(64)), -Concat(Int(0,63),Extract(63,63,Var("R1",Imm(64))))), -Def(Tid(636, "%0000027c"), Attrs([Attr("address","0x6D8"), -Attr("insn","add x1, x2, x1, asr #3")]), Var("R1",Imm(64)), -PLUS(Var("R2",Imm(64)),ARSHIFT(Var("R1",Imm(64)),Int(3,3)))), -Def(Tid(642, "%00000282"), Attrs([Attr("address","0x6DC"), -Attr("insn","asr x1, x1, #1")]), Var("R1",Imm(64)), -SIGNED(64,Extract(63,1,Var("R1",Imm(64)))))]), -Jmps([Goto(Tid(648, "%00000288"), Attrs([Attr("address","0x6E0"), -Attr("insn","cbz x1, #0x18")]), EQ(Var("R1",Imm(64)),Int(0,64)), -Direct(Tid(646, "%00000286"))), Goto(Tid(1_454, "%000005ae"), Attrs([]), - Int(1,1), Direct(Tid(922, "%0000039a")))])), Blk(Tid(922, "%0000039a"), - Attrs([Attr("address","0x6E4")]), Phis([]), Defs([Def(Tid(925, "%0000039d"), - Attrs([Attr("address","0x6E4"), Attr("insn","adrp x2, #65536")]), - Var("R2",Imm(64)), Int(65536,64)), Def(Tid(932, "%000003a4"), - Attrs([Attr("address","0x6E8"), Attr("insn","ldr x2, [x2, #0xfe0]")]), - Var("R2",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R2",Imm(64)),Int(4064,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(937, "%000003a9"), Attrs([Attr("address","0x6EC"), -Attr("insn","cbz x2, #0xc")]), EQ(Var("R2",Imm(64)),Int(0,64)), -Direct(Tid(646, "%00000286"))), Goto(Tid(1_455, "%000005af"), Attrs([]), - Int(1,1), Direct(Tid(941, "%000003ad")))])), Blk(Tid(646, "%00000286"), - Attrs([Attr("address","0x6F8")]), Phis([]), Defs([]), -Jmps([Call(Tid(654, "%0000028e"), Attrs([Attr("address","0x6F8"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))])), -Blk(Tid(941, "%000003ad"), Attrs([Attr("address","0x6F0")]), Phis([]), -Defs([Def(Tid(945, "%000003b1"), Attrs([Attr("address","0x6F0"), -Attr("insn","mov x16, x2")]), Var("R16",Imm(64)), Var("R2",Imm(64)))]), -Jmps([Call(Tid(950, "%000003b6"), Attrs([Attr("address","0x6F4"), -Attr("insn","br x16")]), Int(1,1), -(Indirect(Var("R16",Imm(64))),))]))]))]))) \ No newline at end of file diff --git a/src/test/incorrect/basicassign1/clang_pic/basicassign1.bir b/src/test/incorrect/basicassign1/clang_pic/basicassign1.bir deleted file mode 100644 index aeb38eec7..000000000 --- a/src/test/incorrect/basicassign1/clang_pic/basicassign1.bir +++ /dev/null @@ -1,239 +0,0 @@ -000005b0: program -0000057e: sub __cxa_finalize(__cxa_finalize_result) -000005b1: __cxa_finalize_result :: out u32 = low:32[R0] - -00000396: -0000048e: R16 := 0x11000 -00000495: R17 := mem[R16 + 8, el]:u64 -0000049b: R16 := R16 + 8 -000004a0: call R17 with noreturn - -0000057f: sub __do_global_dtors_aux(__do_global_dtors_aux_result) -000005b2: __do_global_dtors_aux_result :: out u32 = low:32[R0] - -00000292: -00000296: #3 := R31 - 0x20 -0000029c: mem := mem with [#3, el]:u64 <- R29 -000002a2: mem := mem with [#3 + 8, el]:u64 <- R30 -000002a6: R31 := #3 -000002ac: R29 := R31 -000002b4: mem := mem with [R31 + 0x10, el]:u64 <- R19 -000002b9: R19 := 0x11000 -000002c0: R0 := pad:64[mem[R19 + 0x30]] -000002c7: when 31:0[R0] <> 0 goto %000002c5 -000005a6: goto %0000035f - -0000035f: -00000362: R0 := 0x10000 -00000369: R0 := mem[R0 + 0xFB8, el]:u64 -0000036f: when R0 = 0 goto %0000036d -000005a7: goto %00000386 - -00000386: -00000389: R0 := 0x11000 -00000390: R0 := mem[R0 + 0x28, el]:u64 -00000395: R30 := 0x730 -00000398: call @__cxa_finalize with return %0000036d - -0000036d: -00000375: R30 := 0x734 -00000377: call @deregister_tm_clones with return %00000379 - -00000379: -0000037c: R0 := 1 -00000384: mem := mem with [R19 + 0x30] <- 7:0[R0] -000005a8: goto %000002c5 - -000002c5: -000002cf: R19 := mem[R31 + 0x10, el]:u64 -000002d6: R29 := mem[R31, el]:u64 -000002db: R30 := mem[R31 + 8, el]:u64 -000002df: R31 := R31 + 0x20 -000002e4: call R30 with noreturn - -00000583: sub __libc_start_main(__libc_start_main_main, __libc_start_main_arg2, __libc_start_main_arg3, __libc_start_main_auxv, __libc_start_main_result) -000005b3: __libc_start_main_main :: in u64 = R0 -000005b4: __libc_start_main_arg2 :: in u32 = low:32[R1] -000005b5: __libc_start_main_arg3 :: in out u64 = R2 -000005b6: __libc_start_main_auxv :: in out u64 = R3 -000005b7: __libc_start_main_result :: out u32 = low:32[R0] - -000001eb: -00000478: R16 := 0x11000 -0000047f: R17 := mem[R16, el]:u64 -00000485: R16 := R16 -0000048a: call R17 with noreturn - -00000584: sub _fini(_fini_result) -000005b8: _fini_result :: out u32 = low:32[R0] - -0000001f: -00000025: #0 := R31 - 0x10 -0000002b: mem := mem with [#0, el]:u64 <- R29 -00000031: mem := mem with [#0 + 8, el]:u64 <- R30 -00000035: R31 := #0 -0000003b: R29 := R31 -00000042: R29 := mem[R31, el]:u64 -00000047: R30 := mem[R31 + 8, el]:u64 -0000004b: R31 := R31 + 0x10 -00000050: call R30 with noreturn - -00000585: sub _init(_init_result) -000005b9: _init_result :: out u32 = low:32[R0] - -000004e8: -000004ee: #5 := R31 - 0x10 -000004f4: mem := mem with [#5, el]:u64 <- R29 -000004fa: mem := mem with [#5 + 8, el]:u64 <- R30 -000004fe: R31 := #5 -00000504: R29 := R31 -00000509: R30 := 0x5C0 -0000050b: call @call_weak_fn with return %0000050d - -0000050d: -00000512: R29 := mem[R31, el]:u64 -00000517: R30 := mem[R31 + 8, el]:u64 -0000051b: R31 := R31 + 0x10 -00000520: call R30 with noreturn - -00000586: sub _start(_start_result) -000005ba: _start_result :: out u32 = low:32[R0] - -000001ac: -000001b1: R29 := 0 -000001b6: R30 := 0 -000001bc: R5 := R0 -000001c3: R1 := mem[R31, el]:u64 -000001c9: R2 := R31 + 8 -000001cf: R6 := R31 -000001d4: R0 := 0x10000 -000001db: R0 := mem[R0 + 0xFD8, el]:u64 -000001e0: R3 := 0 -000001e5: R4 := 0 -000001ea: R30 := 0x670 -000001ed: call @__libc_start_main with return %000001ef - -000001ef: -000001f2: R30 := 0x674 -000001f5: call @abort with return %000005a9 - -000005a9: -000005aa: call @call_weak_fn with noreturn - -00000589: sub abort() - - -000001f3: -000004ba: R16 := 0x11000 -000004c1: R17 := mem[R16 + 0x18, el]:u64 -000004c7: R16 := R16 + 0x18 -000004cc: call R17 with noreturn - -0000058a: sub call_weak_fn(call_weak_fn_result) -000005bb: call_weak_fn_result :: out u32 = low:32[R0] - -000001f7: -000001fa: R0 := 0x10000 -00000201: R0 := mem[R0 + 0xFC8, el]:u64 -00000207: when R0 = 0 goto %00000205 -000005ab: goto %000003d6 - -00000205: -0000020d: call R30 with noreturn - -000003d6: -000003d9: goto @__gmon_start__ - -000003d7: -000004a4: R16 := 0x11000 -000004ab: R17 := mem[R16 + 0x10, el]:u64 -000004b1: R16 := R16 + 0x10 -000004b6: call R17 with noreturn - -0000058c: sub deregister_tm_clones(deregister_tm_clones_result) -000005bc: deregister_tm_clones_result :: out u32 = low:32[R0] - -00000213: -00000216: R0 := 0x11000 -0000021c: R0 := R0 + 0x30 -00000221: R1 := 0x11000 -00000227: R1 := R1 + 0x30 -0000022d: #1 := ~R0 -00000232: #2 := R1 + ~R0 -00000238: VF := extend:65[#2 + 1] <> extend:65[R1] + extend:65[#1] + 1 -0000023e: CF := pad:65[#2 + 1] <> pad:65[R1] + pad:65[#1] + 1 -00000242: ZF := #2 + 1 = 0 -00000246: NF := 63:63[#2 + 1] -0000024c: when ZF goto %0000024a -000005ac: goto %000003b8 - -000003b8: -000003bb: R1 := 0x10000 -000003c2: R1 := mem[R1 + 0xFB0, el]:u64 -000003c7: when R1 = 0 goto %0000024a -000005ad: goto %000003cb - -0000024a: -00000252: call R30 with noreturn - -000003cb: -000003cf: R16 := R1 -000003d4: call R16 with noreturn - -0000058f: sub frame_dummy(frame_dummy_result) -000005bd: frame_dummy_result :: out u32 = low:32[R0] - -000002ea: -000002ec: call @register_tm_clones with noreturn - -00000590: sub main(main_argc, main_argv, main_result) -000005be: main_argc :: in u32 = low:32[R0] -000005bf: main_argv :: in out u64 = R1 -000005c0: main_result :: out u32 = low:32[R0] - -000002ee: -000002f2: R31 := R31 - 0x10 -000002f7: R8 := 0x10000 -000002fe: R8 := mem[R8 + 0xFD0, el]:u64 -00000305: R9 := pad:64[mem[R8, el]:u32] -0000030d: mem := mem with [R31 + 0xC, el]:u32 <- 31:0[R9] -00000312: R0 := 0 -00000319: mem := mem with [R31 + 0xC, el]:u32 <- 0 -00000320: R10 := pad:64[mem[R31 + 0xC, el]:u32] -00000325: R9 := 0x10000 -0000032c: R9 := mem[R9 + 0xFC0, el]:u64 -00000334: mem := mem with [R9, el]:u32 <- 31:0[R10] -0000033b: R8 := pad:64[mem[R8, el]:u32] -00000343: mem := mem with [R31 + 0xC, el]:u32 <- 31:0[R8] -0000034a: R8 := pad:64[mem[R31 + 0xC, el]:u32] -00000352: mem := mem with [R9, el]:u32 <- 31:0[R8] -00000358: R31 := R31 + 0x10 -0000035d: call R30 with noreturn - -00000591: sub register_tm_clones(register_tm_clones_result) -000005c1: register_tm_clones_result :: out u32 = low:32[R0] - -00000254: -00000257: R0 := 0x11000 -0000025d: R0 := R0 + 0x30 -00000262: R1 := 0x11000 -00000268: R1 := R1 + 0x30 -0000026f: R1 := R1 + ~R0 + 1 -00000275: R2 := 0.63:63[R1] -0000027c: R1 := R2 + (R1 ~>> 3) -00000282: R1 := extend:64[63:1[R1]] -00000288: when R1 = 0 goto %00000286 -000005ae: goto %0000039a - -0000039a: -0000039d: R2 := 0x10000 -000003a4: R2 := mem[R2 + 0xFE0, el]:u64 -000003a9: when R2 = 0 goto %00000286 -000005af: goto %000003ad - -00000286: -0000028e: call R30 with noreturn - -000003ad: -000003b1: R16 := R2 -000003b6: call R16 with noreturn diff --git a/src/test/incorrect/basicassign1/clang_pic/basicassign1.expected b/src/test/incorrect/basicassign1/clang_pic/basicassign1.expected index 5c7ea1cf1..3034ecda6 100644 --- a/src/test/incorrect/basicassign1/clang_pic/basicassign1.expected +++ b/src/test/incorrect/basicassign1/clang_pic/basicassign1.expected @@ -1,19 +1,13 @@ var {:extern} Gamma_R0: bool; -var {:extern} Gamma_R10: bool; -var {:extern} Gamma_R31: bool; var {:extern} Gamma_R8: bool; var {:extern} Gamma_R9: bool; var {:extern} Gamma_mem: [bv64]bool; -var {:extern} Gamma_stack: [bv64]bool; var {:extern} R0: bv64; -var {:extern} R10: bv64; -var {:extern} R31: bv64; var {:extern} R8: bv64; var {:extern} R9: bv64; var {:extern} mem: [bv64]bv8; -var {:extern} stack: [bv64]bv8; const {:extern} $z_addr: bv64; -axiom ($z_addr == 69688bv64); +axiom ($z_addr == 131096bv64); function {:extern} L(mem$in: [bv64]bv8, index: bv64) returns (bool) { (if (index == $z_addr) then true else false) } @@ -48,13 +42,13 @@ procedure {:extern} rely(); modifies Gamma_mem, mem; ensures (Gamma_mem == old(Gamma_mem)); ensures (mem == old(mem)); - free ensures (memory_load32_le(mem, 1964bv64) == 131073bv32); - free ensures (memory_load64_le(mem, 69048bv64) == 1872bv64); - free ensures (memory_load64_le(mem, 69056bv64) == 1792bv64); - free ensures (memory_load64_le(mem, 69568bv64) == 69688bv64); - free ensures (memory_load64_le(mem, 69584bv64) == 69684bv64); - free ensures (memory_load64_le(mem, 69592bv64) == 1876bv64); - free ensures (memory_load64_le(mem, 69672bv64) == 69672bv64); + free ensures (memory_load32_le(mem, 2312bv64) == 131073bv32); + free ensures (memory_load64_le(mem, 130424bv64) == 2256bv64); + free ensures (memory_load64_le(mem, 130432bv64) == 2176bv64); + free ensures (memory_load64_le(mem, 131032bv64) == 131096bv64); + free ensures (memory_load64_le(mem, 131048bv64) == 131092bv64); + free ensures (memory_load64_le(mem, 131056bv64) == 2260bv64); + free ensures (memory_load64_le(mem, 131080bv64) == 131080bv64); procedure {:extern} rely_transitive(); modifies Gamma_mem, mem; @@ -72,81 +66,54 @@ procedure {:extern} rely_reflexive(); procedure {:extern} guarantee_reflexive(); modifies Gamma_mem, mem; -procedure main_1876(); - modifies Gamma_R0, Gamma_R10, Gamma_R31, Gamma_R8, Gamma_R9, Gamma_mem, Gamma_stack, R0, R10, R31, R8, R9, mem, stack; - free requires (memory_load64_le(mem, 69664bv64) == 0bv64); - free requires (memory_load64_le(mem, 69672bv64) == 69672bv64); - free requires (memory_load32_le(mem, 1964bv64) == 131073bv32); - free requires (memory_load64_le(mem, 69048bv64) == 1872bv64); - free requires (memory_load64_le(mem, 69056bv64) == 1792bv64); - free requires (memory_load64_le(mem, 69568bv64) == 69688bv64); - free requires (memory_load64_le(mem, 69584bv64) == 69684bv64); - free requires (memory_load64_le(mem, 69592bv64) == 1876bv64); - free requires (memory_load64_le(mem, 69672bv64) == 69672bv64); - free ensures (Gamma_R31 == old(Gamma_R31)); - free ensures (R31 == old(R31)); - free ensures (memory_load32_le(mem, 1964bv64) == 131073bv32); - free ensures (memory_load64_le(mem, 69048bv64) == 1872bv64); - free ensures (memory_load64_le(mem, 69056bv64) == 1792bv64); - free ensures (memory_load64_le(mem, 69568bv64) == 69688bv64); - free ensures (memory_load64_le(mem, 69584bv64) == 69684bv64); - free ensures (memory_load64_le(mem, 69592bv64) == 1876bv64); - free ensures (memory_load64_le(mem, 69672bv64) == 69672bv64); +procedure main(); + modifies Gamma_R0, Gamma_R8, Gamma_R9, Gamma_mem, R0, R8, R9, mem; + free requires (memory_load64_le(mem, 131072bv64) == 0bv64); + free requires (memory_load64_le(mem, 131080bv64) == 131080bv64); + free requires (memory_load32_le(mem, 2312bv64) == 131073bv32); + free requires (memory_load64_le(mem, 130424bv64) == 2256bv64); + free requires (memory_load64_le(mem, 130432bv64) == 2176bv64); + free requires (memory_load64_le(mem, 131032bv64) == 131096bv64); + free requires (memory_load64_le(mem, 131048bv64) == 131092bv64); + free requires (memory_load64_le(mem, 131056bv64) == 2260bv64); + free requires (memory_load64_le(mem, 131080bv64) == 131080bv64); + free ensures (memory_load32_le(mem, 2312bv64) == 131073bv32); + free ensures (memory_load64_le(mem, 130424bv64) == 2256bv64); + free ensures (memory_load64_le(mem, 130432bv64) == 2176bv64); + free ensures (memory_load64_le(mem, 131032bv64) == 131096bv64); + free ensures (memory_load64_le(mem, 131048bv64) == 131092bv64); + free ensures (memory_load64_le(mem, 131056bv64) == 2260bv64); + free ensures (memory_load64_le(mem, 131080bv64) == 131080bv64); -implementation main_1876() +implementation main() { - var Gamma_load18: bool; - var Gamma_load19: bool; - var Gamma_load20: bool; - var Gamma_load21: bool; - var Gamma_load22: bool; - var Gamma_load23: bool; - var load18: bv64; - var load19: bv32; - var load20: bv32; - var load21: bv64; - var load22: bv32; - var load23: bv32; + var $load$18: bv64; + var $load$19: bv32; + var $load$20: bv64; + var Gamma_$load$18: bool; + var Gamma_$load$19: bool; + var Gamma_$load$20: bool; lmain: assume {:captureState "lmain"} true; - R31, Gamma_R31 := bvadd64(R31, 18446744073709551600bv64), Gamma_R31; - R8, Gamma_R8 := 65536bv64, true; - call rely(); - load18, Gamma_load18 := memory_load64_le(mem, bvadd64(R8, 4048bv64)), (gamma_load64(Gamma_mem, bvadd64(R8, 4048bv64)) || L(mem, bvadd64(R8, 4048bv64))); - R8, Gamma_R8 := load18, Gamma_load18; - call rely(); - load19, Gamma_load19 := memory_load32_le(mem, R8), (gamma_load32(Gamma_mem, R8) || L(mem, R8)); - R9, Gamma_R9 := zero_extend32_32(load19), Gamma_load19; - stack, Gamma_stack := memory_store32_le(stack, bvadd64(R31, 12bv64), R9[32:0]), gamma_store32(Gamma_stack, bvadd64(R31, 12bv64), Gamma_R9); - assume {:captureState "%0000030d"} true; + R8, Gamma_R8 := 126976bv64, true; + R9, Gamma_R9 := 126976bv64, true; R0, Gamma_R0 := 0bv64, true; - stack, Gamma_stack := memory_store32_le(stack, bvadd64(R31, 12bv64), 0bv32), gamma_store32(Gamma_stack, bvadd64(R31, 12bv64), true); - assume {:captureState "%00000319"} true; - load20, Gamma_load20 := memory_load32_le(stack, bvadd64(R31, 12bv64)), gamma_load32(Gamma_stack, bvadd64(R31, 12bv64)); - R10, Gamma_R10 := zero_extend32_32(load20), Gamma_load20; - R9, Gamma_R9 := 65536bv64, true; call rely(); - load21, Gamma_load21 := memory_load64_le(mem, bvadd64(R9, 4032bv64)), (gamma_load64(Gamma_mem, bvadd64(R9, 4032bv64)) || L(mem, bvadd64(R9, 4032bv64))); - R9, Gamma_R9 := load21, Gamma_load21; + $load$18, Gamma_$load$18 := memory_load64_le(mem, bvadd64(R8, 4072bv64)), (gamma_load64(Gamma_mem, bvadd64(R8, 4072bv64)) || L(mem, bvadd64(R8, 4072bv64))); + R8, Gamma_R8 := $load$18, Gamma_$load$18; call rely(); - assert (L(mem, R9) ==> Gamma_R10); - mem, Gamma_mem := memory_store32_le(mem, R9, R10[32:0]), gamma_store32(Gamma_mem, R9, Gamma_R10); - assume {:captureState "%00000334"} true; + $load$19, Gamma_$load$19 := memory_load32_le(mem, R8), (gamma_load32(Gamma_mem, R8) || L(mem, R8)); + R8, Gamma_R8 := zero_extend32_32($load$19), Gamma_$load$19; call rely(); - load22, Gamma_load22 := memory_load32_le(mem, R8), (gamma_load32(Gamma_mem, R8) || L(mem, R8)); - R8, Gamma_R8 := zero_extend32_32(load22), Gamma_load22; - stack, Gamma_stack := memory_store32_le(stack, bvadd64(R31, 12bv64), R8[32:0]), gamma_store32(Gamma_stack, bvadd64(R31, 12bv64), Gamma_R8); - assume {:captureState "%00000343"} true; - load23, Gamma_load23 := memory_load32_le(stack, bvadd64(R31, 12bv64)), gamma_load32(Gamma_stack, bvadd64(R31, 12bv64)); - R8, Gamma_R8 := zero_extend32_32(load23), Gamma_load23; + $load$20, Gamma_$load$20 := memory_load64_le(mem, bvadd64(R9, 4056bv64)), (gamma_load64(Gamma_mem, bvadd64(R9, 4056bv64)) || L(mem, bvadd64(R9, 4056bv64))); + R9, Gamma_R9 := $load$20, Gamma_$load$20; call rely(); assert (L(mem, R9) ==> Gamma_R8); mem, Gamma_mem := memory_store32_le(mem, R9, R8[32:0]), gamma_store32(Gamma_mem, R9, Gamma_R8); - assume {:captureState "%00000352"} true; - R31, Gamma_R31 := bvadd64(R31, 16bv64), Gamma_R31; - goto main_1876_basil_return; - main_1876_basil_return: - assume {:captureState "main_1876_basil_return"} true; + assume {:captureState "%00000294"} true; + goto main_basil_return; + main_basil_return: + assume {:captureState "main_basil_return"} true; return; } diff --git a/src/test/incorrect/basicassign1/clang_pic/basicassign1.gts b/src/test/incorrect/basicassign1/clang_pic/basicassign1.gts deleted file mode 100644 index c5937c3a9..000000000 Binary files a/src/test/incorrect/basicassign1/clang_pic/basicassign1.gts and /dev/null differ diff --git a/src/test/incorrect/basicassign1/clang_pic/basicassign1.md5sum b/src/test/incorrect/basicassign1/clang_pic/basicassign1.md5sum new file mode 100644 index 000000000..dd680348a --- /dev/null +++ b/src/test/incorrect/basicassign1/clang_pic/basicassign1.md5sum @@ -0,0 +1,5 @@ +e66b2935bce8ee495962c58d43cf2443 incorrect/basicassign1/clang_pic/a.out +3712947f7951e66fba538821e87200a9 incorrect/basicassign1/clang_pic/basicassign1.adt +9075a418c7e1dc3b59b3b652ca5329bd incorrect/basicassign1/clang_pic/basicassign1.bir +f49a8bb41a3bf145b5889c87299a578b incorrect/basicassign1/clang_pic/basicassign1.relf +c7351a4786bff50138f4b088a09d0c95 incorrect/basicassign1/clang_pic/basicassign1.gts diff --git a/src/test/incorrect/basicassign1/clang_pic/basicassign1.relf b/src/test/incorrect/basicassign1/clang_pic/basicassign1.relf deleted file mode 100644 index d2663a026..000000000 --- a/src/test/incorrect/basicassign1/clang_pic/basicassign1.relf +++ /dev/null @@ -1,126 +0,0 @@ - -Relocation section '.rela.dyn' at offset 0x460 contains 10 entries: - Offset Info Type Symbol's Value Symbol's Name + Addend -0000000000010db8 0000000000000403 R_AARCH64_RELATIVE 750 -0000000000010dc0 0000000000000403 R_AARCH64_RELATIVE 700 -0000000000010fc0 0000000000000403 R_AARCH64_RELATIVE 11038 -0000000000010fd0 0000000000000403 R_AARCH64_RELATIVE 11034 -0000000000010fd8 0000000000000403 R_AARCH64_RELATIVE 754 -0000000000011028 0000000000000403 R_AARCH64_RELATIVE 11028 -0000000000010fb0 0000000400000401 R_AARCH64_GLOB_DAT 0000000000000000 _ITM_deregisterTMCloneTable + 0 -0000000000010fb8 0000000500000401 R_AARCH64_GLOB_DAT 0000000000000000 __cxa_finalize@GLIBC_2.17 + 0 -0000000000010fc8 0000000600000401 R_AARCH64_GLOB_DAT 0000000000000000 __gmon_start__ + 0 -0000000000010fe0 0000000800000401 R_AARCH64_GLOB_DAT 0000000000000000 _ITM_registerTMCloneTable + 0 - -Relocation section '.rela.plt' at offset 0x550 contains 4 entries: - Offset Info Type Symbol's Value Symbol's Name + Addend -0000000000011000 0000000300000402 R_AARCH64_JUMP_SLOT 0000000000000000 __libc_start_main@GLIBC_2.34 + 0 -0000000000011008 0000000500000402 R_AARCH64_JUMP_SLOT 0000000000000000 __cxa_finalize@GLIBC_2.17 + 0 -0000000000011010 0000000600000402 R_AARCH64_JUMP_SLOT 0000000000000000 __gmon_start__ + 0 -0000000000011018 0000000700000402 R_AARCH64_JUMP_SLOT 0000000000000000 abort@GLIBC_2.17 + 0 - -Symbol table '.dynsym' contains 9 entries: - Num: Value Size Type Bind Vis Ndx Name - 0: 0000000000000000 0 NOTYPE LOCAL DEFAULT UND - 1: 00000000000005b0 0 SECTION LOCAL DEFAULT 11 .init - 2: 0000000000011020 0 SECTION LOCAL DEFAULT 23 .data - 3: 0000000000000000 0 FUNC GLOBAL DEFAULT UND __libc_start_main@GLIBC_2.34 (2) - 4: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_deregisterTMCloneTable - 5: 0000000000000000 0 FUNC WEAK DEFAULT UND __cxa_finalize@GLIBC_2.17 (3) - 6: 0000000000000000 0 NOTYPE WEAK DEFAULT UND __gmon_start__ - 7: 0000000000000000 0 FUNC GLOBAL DEFAULT UND abort@GLIBC_2.17 (3) - 8: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_registerTMCloneTable - -Symbol table '.symtab' contains 91 entries: - Num: Value Size Type Bind Vis Ndx Name - 0: 0000000000000000 0 NOTYPE LOCAL DEFAULT UND - 1: 0000000000000238 0 SECTION LOCAL DEFAULT 1 .interp - 2: 0000000000000254 0 SECTION LOCAL DEFAULT 2 .note.gnu.build-id - 3: 0000000000000278 0 SECTION LOCAL DEFAULT 3 .note.ABI-tag - 4: 0000000000000298 0 SECTION LOCAL DEFAULT 4 .gnu.hash - 5: 00000000000002b8 0 SECTION LOCAL DEFAULT 5 .dynsym - 6: 0000000000000390 0 SECTION LOCAL DEFAULT 6 .dynstr - 7: 000000000000041e 0 SECTION LOCAL DEFAULT 7 .gnu.version - 8: 0000000000000430 0 SECTION LOCAL DEFAULT 8 .gnu.version_r - 9: 0000000000000460 0 SECTION LOCAL DEFAULT 9 .rela.dyn - 10: 0000000000000550 0 SECTION LOCAL DEFAULT 10 .rela.plt - 11: 00000000000005b0 0 SECTION LOCAL DEFAULT 11 .init - 12: 00000000000005d0 0 SECTION LOCAL DEFAULT 12 .plt - 13: 0000000000000640 0 SECTION LOCAL DEFAULT 13 .text - 14: 0000000000000798 0 SECTION LOCAL DEFAULT 14 .fini - 15: 00000000000007ac 0 SECTION LOCAL DEFAULT 15 .rodata - 16: 00000000000007b0 0 SECTION LOCAL DEFAULT 16 .eh_frame_hdr - 17: 00000000000007f0 0 SECTION LOCAL DEFAULT 17 .eh_frame - 18: 0000000000010db8 0 SECTION LOCAL DEFAULT 18 .init_array - 19: 0000000000010dc0 0 SECTION LOCAL DEFAULT 19 .fini_array - 20: 0000000000010dc8 0 SECTION LOCAL DEFAULT 20 .dynamic - 21: 0000000000010fa8 0 SECTION LOCAL DEFAULT 21 .got - 22: 0000000000010fe8 0 SECTION LOCAL DEFAULT 22 .got.plt - 23: 0000000000011020 0 SECTION LOCAL DEFAULT 23 .data - 24: 0000000000011030 0 SECTION LOCAL DEFAULT 24 .bss - 25: 0000000000000000 0 SECTION LOCAL DEFAULT 25 .comment - 26: 0000000000000000 0 FILE LOCAL DEFAULT ABS Scrt1.o - 27: 0000000000000278 0 NOTYPE LOCAL DEFAULT 3 $d - 28: 0000000000000278 32 OBJECT LOCAL DEFAULT 3 __abi_tag - 29: 0000000000000640 0 NOTYPE LOCAL DEFAULT 13 $x - 30: 0000000000000804 0 NOTYPE LOCAL DEFAULT 17 $d - 31: 00000000000007ac 0 NOTYPE LOCAL DEFAULT 15 $d - 32: 0000000000000000 0 FILE LOCAL DEFAULT ABS crti.o - 33: 0000000000000674 0 NOTYPE LOCAL DEFAULT 13 $x - 34: 0000000000000674 20 FUNC LOCAL DEFAULT 13 call_weak_fn - 35: 00000000000005b0 0 NOTYPE LOCAL DEFAULT 11 $x - 36: 0000000000000798 0 NOTYPE LOCAL DEFAULT 14 $x - 37: 0000000000000000 0 FILE LOCAL DEFAULT ABS crtn.o - 38: 00000000000005c0 0 NOTYPE LOCAL DEFAULT 11 $x - 39: 00000000000007a4 0 NOTYPE LOCAL DEFAULT 14 $x - 40: 0000000000000000 0 FILE LOCAL DEFAULT ABS crtstuff.c - 41: 0000000000000690 0 NOTYPE LOCAL DEFAULT 13 $x - 42: 0000000000000690 0 FUNC LOCAL DEFAULT 13 deregister_tm_clones - 43: 00000000000006c0 0 FUNC LOCAL DEFAULT 13 register_tm_clones - 44: 0000000000011028 0 NOTYPE LOCAL DEFAULT 23 $d - 45: 0000000000000700 0 FUNC LOCAL DEFAULT 13 __do_global_dtors_aux - 46: 0000000000011030 1 OBJECT LOCAL DEFAULT 24 completed.0 - 47: 0000000000010dc0 0 NOTYPE LOCAL DEFAULT 19 $d - 48: 0000000000010dc0 0 OBJECT LOCAL DEFAULT 19 __do_global_dtors_aux_fini_array_entry - 49: 0000000000000750 0 FUNC LOCAL DEFAULT 13 frame_dummy - 50: 0000000000010db8 0 NOTYPE LOCAL DEFAULT 18 $d - 51: 0000000000010db8 0 OBJECT LOCAL DEFAULT 18 __frame_dummy_init_array_entry - 52: 0000000000000818 0 NOTYPE LOCAL DEFAULT 17 $d - 53: 0000000000011030 0 NOTYPE LOCAL DEFAULT 24 $d - 54: 0000000000000000 0 FILE LOCAL DEFAULT ABS basicassign1.c - 55: 0000000000000754 0 NOTYPE LOCAL DEFAULT 13 $x.0 - 56: 0000000000011034 0 NOTYPE LOCAL DEFAULT 24 $d.1 - 57: 000000000000002a 0 NOTYPE LOCAL DEFAULT 25 $d.2 - 58: 0000000000000878 0 NOTYPE LOCAL DEFAULT 17 $d.3 - 59: 0000000000000000 0 FILE LOCAL DEFAULT ABS crtstuff.c - 60: 00000000000008a4 0 NOTYPE LOCAL DEFAULT 17 $d - 61: 00000000000008a4 0 OBJECT LOCAL DEFAULT 17 __FRAME_END__ - 62: 0000000000000000 0 FILE LOCAL DEFAULT ABS - 63: 0000000000010dc8 0 OBJECT LOCAL DEFAULT ABS _DYNAMIC - 64: 00000000000007b0 0 NOTYPE LOCAL DEFAULT 16 __GNU_EH_FRAME_HDR - 65: 0000000000010fa8 0 OBJECT LOCAL DEFAULT ABS _GLOBAL_OFFSET_TABLE_ - 66: 00000000000005d0 0 NOTYPE LOCAL DEFAULT 12 $x - 67: 0000000000000000 0 FUNC GLOBAL DEFAULT UND __libc_start_main@GLIBC_2.34 - 68: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_deregisterTMCloneTable - 69: 0000000000011020 0 NOTYPE WEAK DEFAULT 23 data_start - 70: 0000000000011030 0 NOTYPE GLOBAL DEFAULT 24 __bss_start__ - 71: 0000000000000000 0 FUNC WEAK DEFAULT UND __cxa_finalize@GLIBC_2.17 - 72: 0000000000011040 0 NOTYPE GLOBAL DEFAULT 24 _bss_end__ - 73: 0000000000011030 0 NOTYPE GLOBAL DEFAULT 23 _edata - 74: 0000000000011038 4 OBJECT GLOBAL DEFAULT 24 z - 75: 0000000000000798 0 FUNC GLOBAL HIDDEN 14 _fini - 76: 0000000000011040 0 NOTYPE GLOBAL DEFAULT 24 __bss_end__ - 77: 0000000000011020 0 NOTYPE GLOBAL DEFAULT 23 __data_start - 78: 0000000000000000 0 NOTYPE WEAK DEFAULT UND __gmon_start__ - 79: 0000000000011028 0 OBJECT GLOBAL HIDDEN 23 __dso_handle - 80: 0000000000000000 0 FUNC GLOBAL DEFAULT UND abort@GLIBC_2.17 - 81: 00000000000007ac 4 OBJECT GLOBAL DEFAULT 15 _IO_stdin_used - 82: 0000000000011034 4 OBJECT GLOBAL DEFAULT 24 secret - 83: 0000000000011040 0 NOTYPE GLOBAL DEFAULT 24 _end - 84: 0000000000000640 52 FUNC GLOBAL DEFAULT 13 _start - 85: 0000000000011040 0 NOTYPE GLOBAL DEFAULT 24 __end__ - 86: 0000000000011030 0 NOTYPE GLOBAL DEFAULT 24 __bss_start - 87: 0000000000000754 68 FUNC GLOBAL DEFAULT 13 main - 88: 0000000000011030 0 OBJECT GLOBAL HIDDEN 23 __TMC_END__ - 89: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_registerTMCloneTable - 90: 00000000000005b0 0 FUNC GLOBAL HIDDEN 11 _init diff --git a/src/test/incorrect/basicassign1/clang_pic/basicassign1_gtirb.expected b/src/test/incorrect/basicassign1/clang_pic/basicassign1_gtirb.expected index 4cf5f92fe..bcbff1d95 100644 --- a/src/test/incorrect/basicassign1/clang_pic/basicassign1_gtirb.expected +++ b/src/test/incorrect/basicassign1/clang_pic/basicassign1_gtirb.expected @@ -1,19 +1,13 @@ var {:extern} Gamma_R0: bool; -var {:extern} Gamma_R10: bool; -var {:extern} Gamma_R31: bool; var {:extern} Gamma_R8: bool; var {:extern} Gamma_R9: bool; var {:extern} Gamma_mem: [bv64]bool; -var {:extern} Gamma_stack: [bv64]bool; var {:extern} R0: bv64; -var {:extern} R10: bv64; -var {:extern} R31: bv64; var {:extern} R8: bv64; var {:extern} R9: bv64; var {:extern} mem: [bv64]bv8; -var {:extern} stack: [bv64]bv8; const {:extern} $z_addr: bv64; -axiom ($z_addr == 69688bv64); +axiom ($z_addr == 131096bv64); function {:extern} L(mem$in: [bv64]bv8, index: bv64) returns (bool) { (if (index == $z_addr) then true else false) } @@ -48,13 +42,13 @@ procedure {:extern} rely(); modifies Gamma_mem, mem; ensures (Gamma_mem == old(Gamma_mem)); ensures (mem == old(mem)); - free ensures (memory_load32_le(mem, 1964bv64) == 131073bv32); - free ensures (memory_load64_le(mem, 69048bv64) == 1872bv64); - free ensures (memory_load64_le(mem, 69056bv64) == 1792bv64); - free ensures (memory_load64_le(mem, 69568bv64) == 69688bv64); - free ensures (memory_load64_le(mem, 69584bv64) == 69684bv64); - free ensures (memory_load64_le(mem, 69592bv64) == 1876bv64); - free ensures (memory_load64_le(mem, 69672bv64) == 69672bv64); + free ensures (memory_load32_le(mem, 2312bv64) == 131073bv32); + free ensures (memory_load64_le(mem, 130424bv64) == 2256bv64); + free ensures (memory_load64_le(mem, 130432bv64) == 2176bv64); + free ensures (memory_load64_le(mem, 131032bv64) == 131096bv64); + free ensures (memory_load64_le(mem, 131048bv64) == 131092bv64); + free ensures (memory_load64_le(mem, 131056bv64) == 2260bv64); + free ensures (memory_load64_le(mem, 131080bv64) == 131080bv64); procedure {:extern} rely_transitive(); modifies Gamma_mem, mem; @@ -72,81 +66,54 @@ procedure {:extern} rely_reflexive(); procedure {:extern} guarantee_reflexive(); modifies Gamma_mem, mem; -procedure main_1876(); - modifies Gamma_R0, Gamma_R10, Gamma_R31, Gamma_R8, Gamma_R9, Gamma_mem, Gamma_stack, R0, R10, R31, R8, R9, mem, stack; - free requires (memory_load64_le(mem, 69664bv64) == 0bv64); - free requires (memory_load64_le(mem, 69672bv64) == 69672bv64); - free requires (memory_load32_le(mem, 1964bv64) == 131073bv32); - free requires (memory_load64_le(mem, 69048bv64) == 1872bv64); - free requires (memory_load64_le(mem, 69056bv64) == 1792bv64); - free requires (memory_load64_le(mem, 69568bv64) == 69688bv64); - free requires (memory_load64_le(mem, 69584bv64) == 69684bv64); - free requires (memory_load64_le(mem, 69592bv64) == 1876bv64); - free requires (memory_load64_le(mem, 69672bv64) == 69672bv64); - free ensures (Gamma_R31 == old(Gamma_R31)); - free ensures (R31 == old(R31)); - free ensures (memory_load32_le(mem, 1964bv64) == 131073bv32); - free ensures (memory_load64_le(mem, 69048bv64) == 1872bv64); - free ensures (memory_load64_le(mem, 69056bv64) == 1792bv64); - free ensures (memory_load64_le(mem, 69568bv64) == 69688bv64); - free ensures (memory_load64_le(mem, 69584bv64) == 69684bv64); - free ensures (memory_load64_le(mem, 69592bv64) == 1876bv64); - free ensures (memory_load64_le(mem, 69672bv64) == 69672bv64); +procedure main(); + modifies Gamma_R0, Gamma_R8, Gamma_R9, Gamma_mem, R0, R8, R9, mem; + free requires (memory_load64_le(mem, 131072bv64) == 0bv64); + free requires (memory_load64_le(mem, 131080bv64) == 131080bv64); + free requires (memory_load32_le(mem, 2312bv64) == 131073bv32); + free requires (memory_load64_le(mem, 130424bv64) == 2256bv64); + free requires (memory_load64_le(mem, 130432bv64) == 2176bv64); + free requires (memory_load64_le(mem, 131032bv64) == 131096bv64); + free requires (memory_load64_le(mem, 131048bv64) == 131092bv64); + free requires (memory_load64_le(mem, 131056bv64) == 2260bv64); + free requires (memory_load64_le(mem, 131080bv64) == 131080bv64); + free ensures (memory_load32_le(mem, 2312bv64) == 131073bv32); + free ensures (memory_load64_le(mem, 130424bv64) == 2256bv64); + free ensures (memory_load64_le(mem, 130432bv64) == 2176bv64); + free ensures (memory_load64_le(mem, 131032bv64) == 131096bv64); + free ensures (memory_load64_le(mem, 131048bv64) == 131092bv64); + free ensures (memory_load64_le(mem, 131056bv64) == 2260bv64); + free ensures (memory_load64_le(mem, 131080bv64) == 131080bv64); -implementation main_1876() +implementation main() { - var Gamma_load4: bool; - var Gamma_load5: bool; - var Gamma_load6: bool; - var Gamma_load7: bool; - var Gamma_load8: bool; - var Gamma_load9: bool; - var load4: bv64; - var load5: bv32; - var load6: bv32; - var load7: bv64; - var load8: bv32; - var load9: bv32; - main_1876__0___~KgWfivQ2SPbqUNX0Vjkg: - assume {:captureState "main_1876__0___~KgWfivQ2SPbqUNX0Vjkg"} true; - R31, Gamma_R31 := bvadd64(R31, 18446744073709551600bv64), Gamma_R31; - R8, Gamma_R8 := 65536bv64, true; - call rely(); - load4, Gamma_load4 := memory_load64_le(mem, bvadd64(R8, 4048bv64)), (gamma_load64(Gamma_mem, bvadd64(R8, 4048bv64)) || L(mem, bvadd64(R8, 4048bv64))); - R8, Gamma_R8 := load4, Gamma_load4; - call rely(); - load5, Gamma_load5 := memory_load32_le(mem, R8), (gamma_load32(Gamma_mem, R8) || L(mem, R8)); - R9, Gamma_R9 := zero_extend32_32(load5), Gamma_load5; - stack, Gamma_stack := memory_store32_le(stack, bvadd64(R31, 12bv64), R9[32:0]), gamma_store32(Gamma_stack, bvadd64(R31, 12bv64), Gamma_R9); - assume {:captureState "1892_0"} true; + var $load5: bv64; + var $load6: bv32; + var $load7: bv64; + var Gamma_$load5: bool; + var Gamma_$load6: bool; + var Gamma_$load7: bool; + $main$__0__$D9t2gNJrSmyMH3GAVRe3IQ: + assume {:captureState "$main$__0__$D9t2gNJrSmyMH3GAVRe3IQ"} true; + R8, Gamma_R8 := 126976bv64, true; + R9, Gamma_R9 := 126976bv64, true; R0, Gamma_R0 := 0bv64, true; - stack, Gamma_stack := memory_store32_le(stack, bvadd64(R31, 12bv64), 0bv32), gamma_store32(Gamma_stack, bvadd64(R31, 12bv64), true); - assume {:captureState "1900_0"} true; - load6, Gamma_load6 := memory_load32_le(stack, bvadd64(R31, 12bv64)), gamma_load32(Gamma_stack, bvadd64(R31, 12bv64)); - R10, Gamma_R10 := zero_extend32_32(load6), Gamma_load6; - R9, Gamma_R9 := 65536bv64, true; call rely(); - load7, Gamma_load7 := memory_load64_le(mem, bvadd64(R9, 4032bv64)), (gamma_load64(Gamma_mem, bvadd64(R9, 4032bv64)) || L(mem, bvadd64(R9, 4032bv64))); - R9, Gamma_R9 := load7, Gamma_load7; + $load5, Gamma_$load5 := memory_load64_le(mem, bvadd64(R8, 4072bv64)), (gamma_load64(Gamma_mem, bvadd64(R8, 4072bv64)) || L(mem, bvadd64(R8, 4072bv64))); + R8, Gamma_R8 := $load5, Gamma_$load5; call rely(); - assert (L(mem, R9) ==> Gamma_R10); - mem, Gamma_mem := memory_store32_le(mem, R9, R10[32:0]), gamma_store32(Gamma_mem, R9, Gamma_R10); - assume {:captureState "1916_0"} true; + $load6, Gamma_$load6 := memory_load32_le(mem, R8), (gamma_load32(Gamma_mem, R8) || L(mem, R8)); + R8, Gamma_R8 := zero_extend32_32($load6), Gamma_$load6; call rely(); - load8, Gamma_load8 := memory_load32_le(mem, R8), (gamma_load32(Gamma_mem, R8) || L(mem, R8)); - R8, Gamma_R8 := zero_extend32_32(load8), Gamma_load8; - stack, Gamma_stack := memory_store32_le(stack, bvadd64(R31, 12bv64), R8[32:0]), gamma_store32(Gamma_stack, bvadd64(R31, 12bv64), Gamma_R8); - assume {:captureState "1924_0"} true; - load9, Gamma_load9 := memory_load32_le(stack, bvadd64(R31, 12bv64)), gamma_load32(Gamma_stack, bvadd64(R31, 12bv64)); - R8, Gamma_R8 := zero_extend32_32(load9), Gamma_load9; + $load7, Gamma_$load7 := memory_load64_le(mem, bvadd64(R9, 4056bv64)), (gamma_load64(Gamma_mem, bvadd64(R9, 4056bv64)) || L(mem, bvadd64(R9, 4056bv64))); + R9, Gamma_R9 := $load7, Gamma_$load7; call rely(); assert (L(mem, R9) ==> Gamma_R8); mem, Gamma_mem := memory_store32_le(mem, R9, R8[32:0]), gamma_store32(Gamma_mem, R9, Gamma_R8); - assume {:captureState "1932_0"} true; - R31, Gamma_R31 := bvadd64(R31, 16bv64), Gamma_R31; - goto main_1876_basil_return; - main_1876_basil_return: - assume {:captureState "main_1876_basil_return"} true; + assume {:captureState "2284$0"} true; + goto main_basil_return; + main_basil_return: + assume {:captureState "main_basil_return"} true; return; } diff --git a/src/test/incorrect/basicassign1/gcc/basicassign1.adt b/src/test/incorrect/basicassign1/gcc/basicassign1.adt deleted file mode 100644 index 9cdbae870..000000000 --- a/src/test/incorrect/basicassign1/gcc/basicassign1.adt +++ /dev/null @@ -1,538 +0,0 @@ -Project(Attrs([Attr("filename","\"gcc/basicassign1.out\""), -Attr("image-specification","(declare abi (name str))\n(declare arch (name str))\n(declare base-address (addr int))\n(declare bias (off int))\n(declare bits (size int))\n(declare code-region (addr int) (size int) (off int))\n(declare code-start (addr int))\n(declare entry-point (addr int))\n(declare external-reference (addr int) (name str))\n(declare format (name str))\n(declare is-executable (flag bool))\n(declare is-little-endian (flag bool))\n(declare llvm:base-address (addr int))\n(declare llvm:code-entry (name str) (off int) (size int))\n(declare llvm:coff-import-library (name str))\n(declare llvm:coff-virtual-section-header (name str) (addr int) (size int))\n(declare llvm:elf-program-header (name str) (off int) (size int))\n(declare llvm:elf-program-header-flags (name str) (ld bool) (r bool) \n (w bool) (x bool))\n(declare llvm:elf-virtual-program-header (name str) (addr int) (size int))\n(declare llvm:entry-point (addr int))\n(declare llvm:macho-symbol (name str) (value int))\n(declare llvm:name-reference (at int) (name str))\n(declare llvm:relocation (at int) (addr int))\n(declare llvm:section-entry (name str) (addr int) (size int) (off int))\n(declare llvm:section-flags (name str) (r bool) (w bool) (x bool))\n(declare llvm:segment-command (name str) (off int) (size int))\n(declare llvm:segment-command-flags (name str) (r bool) (w bool) (x bool))\n(declare llvm:symbol-entry (name str) (addr int) (size int) (off int)\n (value int))\n(declare llvm:virtual-segment-command (name str) (addr int) (size int))\n(declare mapped (addr int) (size int) (off int))\n(declare named-region (addr int) (size int) (name str))\n(declare named-symbol (addr int) (name str))\n(declare require (name str))\n(declare section (addr int) (size int))\n(declare segment (addr int) (size int) (r bool) (w bool) (x bool))\n(declare subarch (name str))\n(declare symbol-chunk (addr int) (size int) (root int))\n(declare symbol-value (addr int) (value int))\n(declare system (name str))\n(declare vendor (name str))\n\n(abi unknown)\n(arch aarch64)\n(base-address 0)\n(bias 0)\n(bits 64)\n(code-region 1896 20 1896)\n(code-region 1536 360 1536)\n(code-region 1440 96 1440)\n(code-region 1408 24 1408)\n(code-start 1588)\n(code-start 1536)\n(code-start 1812)\n(entry-point 1536)\n(external-reference 69592 _ITM_deregisterTMCloneTable)\n(external-reference 69600 __cxa_finalize)\n(external-reference 69608 __gmon_start__)\n(external-reference 69624 _ITM_registerTMCloneTable)\n(external-reference 69552 __libc_start_main)\n(external-reference 69560 __cxa_finalize)\n(external-reference 69568 __gmon_start__)\n(external-reference 69576 abort)\n(format elf)\n(is-executable true)\n(is-little-endian true)\n(llvm:base-address 0)\n(llvm:code-entry abort 0 0)\n(llvm:code-entry __cxa_finalize 0 0)\n(llvm:code-entry __libc_start_main 0 0)\n(llvm:code-entry _init 1408 0)\n(llvm:code-entry main 1812 84)\n(llvm:code-entry _start 1536 52)\n(llvm:code-entry abort@GLIBC_2.17 0 0)\n(llvm:code-entry _fini 1896 0)\n(llvm:code-entry __cxa_finalize@GLIBC_2.17 0 0)\n(llvm:code-entry __libc_start_main@GLIBC_2.34 0 0)\n(llvm:code-entry frame_dummy 1808 0)\n(llvm:code-entry __do_global_dtors_aux 1728 0)\n(llvm:code-entry register_tm_clones 1664 0)\n(llvm:code-entry deregister_tm_clones 1616 0)\n(llvm:code-entry call_weak_fn 1588 20)\n(llvm:code-entry .fini 1896 20)\n(llvm:code-entry .text 1536 360)\n(llvm:code-entry .plt 1440 96)\n(llvm:code-entry .init 1408 24)\n(llvm:elf-program-header 08 3480 616)\n(llvm:elf-program-header 07 0 0)\n(llvm:elf-program-header 06 1920 60)\n(llvm:elf-program-header 05 596 68)\n(llvm:elf-program-header 04 3496 496)\n(llvm:elf-program-header 03 3480 632)\n(llvm:elf-program-header 02 0 2148)\n(llvm:elf-program-header 01 568 27)\n(llvm:elf-program-header 00 64 504)\n(llvm:elf-program-header-flags 08 false true false false)\n(llvm:elf-program-header-flags 07 false true true false)\n(llvm:elf-program-header-flags 06 false true false false)\n(llvm:elf-program-header-flags 05 false true false false)\n(llvm:elf-program-header-flags 04 false true true false)\n(llvm:elf-program-header-flags 03 true true true false)\n(llvm:elf-program-header-flags 02 true true false true)\n(llvm:elf-program-header-flags 01 false true false false)\n(llvm:elf-program-header-flags 00 false true false false)\n(llvm:elf-virtual-program-header 08 69016 616)\n(llvm:elf-virtual-program-header 07 0 0)\n(llvm:elf-virtual-program-header 06 1920 60)\n(llvm:elf-virtual-program-header 05 596 68)\n(llvm:elf-virtual-program-header 04 69032 496)\n(llvm:elf-virtual-program-header 03 69016 648)\n(llvm:elf-virtual-program-header 02 0 2148)\n(llvm:elf-virtual-program-header 01 568 27)\n(llvm:elf-virtual-program-header 00 64 504)\n(llvm:entry-point 1536)\n(llvm:name-reference 69576 abort)\n(llvm:name-reference 69568 __gmon_start__)\n(llvm:name-reference 69560 __cxa_finalize)\n(llvm:name-reference 69552 __libc_start_main)\n(llvm:name-reference 69624 _ITM_registerTMCloneTable)\n(llvm:name-reference 69608 __gmon_start__)\n(llvm:name-reference 69600 __cxa_finalize)\n(llvm:name-reference 69592 _ITM_deregisterTMCloneTable)\n(llvm:section-entry .shstrtab 0 250 6853)\n(llvm:section-entry .strtab 0 557 6296)\n(llvm:section-entry .symtab 0 2136 4160)\n(llvm:section-entry .comment 0 43 4112)\n(llvm:section-entry .bss 69648 16 4112)\n(llvm:section-entry .data 69632 16 4096)\n(llvm:section-entry .got 69528 104 3992)\n(llvm:section-entry .dynamic 69032 496 3496)\n(llvm:section-entry .fini_array 69024 8 3488)\n(llvm:section-entry .init_array 69016 8 3480)\n(llvm:section-entry .eh_frame 1984 164 1984)\n(llvm:section-entry .eh_frame_hdr 1920 60 1920)\n(llvm:section-entry .rodata 1916 4 1916)\n(llvm:section-entry .fini 1896 20 1896)\n(llvm:section-entry .text 1536 360 1536)\n(llvm:section-entry .plt 1440 96 1440)\n(llvm:section-entry .init 1408 24 1408)\n(llvm:section-entry .rela.plt 1312 96 1312)\n(llvm:section-entry .rela.dyn 1120 192 1120)\n(llvm:section-entry .gnu.version_r 1072 48 1072)\n(llvm:section-entry .gnu.version 1054 18 1054)\n(llvm:section-entry .dynstr 912 141 912)\n(llvm:section-entry .dynsym 696 216 696)\n(llvm:section-entry .gnu.hash 664 28 664)\n(llvm:section-entry .note.ABI-tag 632 32 632)\n(llvm:section-entry .note.gnu.build-id 596 36 596)\n(llvm:section-entry .interp 568 27 568)\n(llvm:section-flags .shstrtab true false false)\n(llvm:section-flags .strtab true false false)\n(llvm:section-flags .symtab true false false)\n(llvm:section-flags .comment true false false)\n(llvm:section-flags .bss true true false)\n(llvm:section-flags .data true true false)\n(llvm:section-flags .got true true false)\n(llvm:section-flags .dynamic true true false)\n(llvm:section-flags .fini_array true true false)\n(llvm:section-flags .init_array true true false)\n(llvm:section-flags .eh_frame true false false)\n(llvm:section-flags .eh_frame_hdr true false false)\n(llvm:section-flags .rodata true false false)\n(llvm:section-flags .fini true false true)\n(llvm:section-flags .text true false true)\n(llvm:section-flags .plt true false true)\n(llvm:section-flags .init true false true)\n(llvm:section-flags .rela.plt true false false)\n(llvm:section-flags .rela.dyn true false false)\n(llvm:section-flags .gnu.version_r true false false)\n(llvm:section-flags .gnu.version true false false)\n(llvm:section-flags .dynstr true false false)\n(llvm:section-flags .dynsym true false false)\n(llvm:section-flags .gnu.hash true false false)\n(llvm:section-flags .note.ABI-tag true false false)\n(llvm:section-flags .note.gnu.build-id true false false)\n(llvm:section-flags .interp true false false)\n(llvm:symbol-entry abort 0 0 0 0)\n(llvm:symbol-entry __cxa_finalize 0 0 0 0)\n(llvm:symbol-entry __libc_start_main 0 0 0 0)\n(llvm:symbol-entry _init 1408 0 1408 1408)\n(llvm:symbol-entry main 1812 84 1812 1812)\n(llvm:symbol-entry _start 1536 52 1536 1536)\n(llvm:symbol-entry abort@GLIBC_2.17 0 0 0 0)\n(llvm:symbol-entry _fini 1896 0 1896 1896)\n(llvm:symbol-entry __cxa_finalize@GLIBC_2.17 0 0 0 0)\n(llvm:symbol-entry __libc_start_main@GLIBC_2.34 0 0 0 0)\n(llvm:symbol-entry frame_dummy 1808 0 1808 1808)\n(llvm:symbol-entry __do_global_dtors_aux 1728 0 1728 1728)\n(llvm:symbol-entry register_tm_clones 1664 0 1664 1664)\n(llvm:symbol-entry deregister_tm_clones 1616 0 1616 1616)\n(llvm:symbol-entry call_weak_fn 1588 20 1588 1588)\n(mapped 0 2148 0)\n(mapped 69016 632 3480)\n(named-region 0 2148 02)\n(named-region 69016 648 03)\n(named-region 568 27 .interp)\n(named-region 596 36 .note.gnu.build-id)\n(named-region 632 32 .note.ABI-tag)\n(named-region 664 28 .gnu.hash)\n(named-region 696 216 .dynsym)\n(named-region 912 141 .dynstr)\n(named-region 1054 18 .gnu.version)\n(named-region 1072 48 .gnu.version_r)\n(named-region 1120 192 .rela.dyn)\n(named-region 1312 96 .rela.plt)\n(named-region 1408 24 .init)\n(named-region 1440 96 .plt)\n(named-region 1536 360 .text)\n(named-region 1896 20 .fini)\n(named-region 1916 4 .rodata)\n(named-region 1920 60 .eh_frame_hdr)\n(named-region 1984 164 .eh_frame)\n(named-region 69016 8 .init_array)\n(named-region 69024 8 .fini_array)\n(named-region 69032 496 .dynamic)\n(named-region 69528 104 .got)\n(named-region 69632 16 .data)\n(named-region 69648 16 .bss)\n(named-region 0 43 .comment)\n(named-region 0 2136 .symtab)\n(named-region 0 557 .strtab)\n(named-region 0 250 .shstrtab)\n(named-symbol 1588 call_weak_fn)\n(named-symbol 1616 deregister_tm_clones)\n(named-symbol 1664 register_tm_clones)\n(named-symbol 1728 __do_global_dtors_aux)\n(named-symbol 1808 frame_dummy)\n(named-symbol 0 __libc_start_main@GLIBC_2.34)\n(named-symbol 0 __cxa_finalize@GLIBC_2.17)\n(named-symbol 1896 _fini)\n(named-symbol 0 abort@GLIBC_2.17)\n(named-symbol 1536 _start)\n(named-symbol 1812 main)\n(named-symbol 1408 _init)\n(named-symbol 0 __libc_start_main)\n(named-symbol 0 __cxa_finalize)\n(named-symbol 0 abort)\n(require libc.so.6)\n(section 568 27)\n(section 596 36)\n(section 632 32)\n(section 664 28)\n(section 696 216)\n(section 912 141)\n(section 1054 18)\n(section 1072 48)\n(section 1120 192)\n(section 1312 96)\n(section 1408 24)\n(section 1440 96)\n(section 1536 360)\n(section 1896 20)\n(section 1916 4)\n(section 1920 60)\n(section 1984 164)\n(section 69016 8)\n(section 69024 8)\n(section 69032 496)\n(section 69528 104)\n(section 69632 16)\n(section 69648 16)\n(section 0 43)\n(section 0 2136)\n(section 0 557)\n(section 0 250)\n(segment 0 2148 true false true)\n(segment 69016 648 true true false)\n(subarch v8)\n(symbol-chunk 1588 20 1588)\n(symbol-chunk 1536 52 1536)\n(symbol-chunk 1812 84 1812)\n(symbol-value 1588 1588)\n(symbol-value 1616 1616)\n(symbol-value 1664 1664)\n(symbol-value 1728 1728)\n(symbol-value 1808 1808)\n(symbol-value 1896 1896)\n(symbol-value 1536 1536)\n(symbol-value 1812 1812)\n(symbol-value 1408 1408)\n(symbol-value 0 0)\n(system \"\")\n(vendor \"\")\n"), -Attr("abi-name","\"aarch64-linux-gnu-elf\"")]), -Sections([Section(".shstrtab", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x00\x06\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xc0\x1b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x38\x00\x09\x00\x40\x00\x1c\x00\x1b\x00\x06\x00\x00\x00\x04\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x04\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\x08\x00\x00\x00\x00\x00\x00\x64\x08\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x01\x00\x00\x00\x06\x00\x00\x00\x98\x0d\x00\x00\x00\x00\x00\x00\x98\x0d"), -Section(".strtab", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x00\x06\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xc0\x1b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x38\x00\x09\x00\x40\x00\x1c\x00\x1b\x00\x06\x00\x00\x00\x04\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x04\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\x08\x00\x00\x00\x00\x00\x00\x64\x08\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x01\x00\x00\x00\x06\x00\x00\x00\x98\x0d\x00\x00\x00\x00\x00\x00\x98\x0d\x01\x00\x00\x00\x00\x00\x98\x0d\x01\x00\x00\x00\x00\x00\x78\x02\x00\x00\x00\x00\x00\x00\x88\x02\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x02\x00\x00\x00\x06\x00\x00\x00\xa8\x0d\x00\x00\x00\x00\x00\x00\xa8\x0d\x01\x00\x00\x00\x00\x00\xa8\x0d\x01\x00\x00\x00\x00\x00\xf0\x01\x00\x00\x00\x00\x00\x00\xf0\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x04\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x50\xe5\x74\x64\x04\x00\x00\x00\x80\x07\x00\x00\x00\x00\x00\x00\x80\x07\x00\x00\x00\x00\x00\x00\x80\x07\x00\x00\x00\x00\x00\x00\x3c\x00\x00\x00\x00\x00\x00\x00\x3c\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x51\xe5\x74\x64\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x52\xe5\x74\x64\x04\x00\x00\x00\x98\x0d\x00\x00\x00\x00\x00\x00\x98\x0d\x01\x00\x00\x00\x00\x00\x98\x0d\x01\x00\x00\x00\x00\x00\x68\x02\x00\x00\x00\x00\x00\x00\x68\x02\x00\x00\x00"), -Section(".symtab", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x00\x06\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xc0\x1b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x38\x00\x09\x00\x40\x00\x1c\x00\x1b\x00\x06\x00\x00\x00\x04\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x04\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\x08\x00\x00\x00\x00\x00\x00\x64\x08\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x01\x00\x00\x00\x06\x00\x00\x00\x98\x0d\x00\x00\x00\x00\x00\x00\x98\x0d\x01\x00\x00\x00\x00\x00\x98\x0d\x01\x00\x00\x00\x00\x00\x78\x02\x00\x00\x00\x00\x00\x00\x88\x02\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x02\x00\x00\x00\x06\x00\x00\x00\xa8\x0d\x00\x00\x00\x00\x00\x00\xa8\x0d\x01\x00\x00\x00\x00\x00\xa8\x0d\x01\x00\x00\x00\x00\x00\xf0\x01\x00\x00\x00\x00\x00\x00\xf0\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x04\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x50\xe5\x74\x64\x04\x00\x00\x00\x80\x07\x00\x00\x00\x00\x00\x00\x80\x07\x00\x00\x00\x00\x00\x00\x80\x07\x00\x00\x00\x00\x00\x00\x3c\x00\x00\x00\x00\x00\x00\x00\x3c\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x51\xe5\x74\x64\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x52\xe5\x74\x64\x04\x00\x00\x00\x98\x0d\x00\x00\x00\x00\x00\x00\x98\x0d\x01\x00\x00\x00\x00\x00\x98\x0d\x01\x00\x00\x00\x00\x00\x68\x02\x00\x00\x00\x00\x00\x00\x68\x02\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x2f\x6c\x69\x62\x2f\x6c\x64\x2d\x6c\x69\x6e\x75\x78\x2d\x61\x61\x72\x63\x68\x36\x34\x2e\x73\x6f\x2e\x31\x00\x00\x04\x00\x00\x00\x14\x00\x00\x00\x03\x00\x00\x00\x47\x4e\x55\x00\x60\x1e\xb0\xf7\xe8\xe7\x2c\x74\x74\xda\x19\x7a\xe3\xbd\x53\x4e\xc9\x85\xf1\xbe\x04\x00\x00\x00\x10\x00\x00\x00\x01\x00\x00\x00\x47\x4e\x55\x00\x00\x00\x00\x00\x03\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x01\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x0b\x00\x80\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x16\x00\x00\x10\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x48\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x22\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x22\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x73\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5f\x5f\x63\x78\x61\x5f\x66\x69\x6e\x61\x6c\x69\x7a\x65\x00\x5f\x5f\x6c\x69\x62\x63\x5f\x73\x74\x61\x72\x74\x5f\x6d\x61\x69\x6e\x00\x61\x62\x6f\x72\x74\x00\x6c\x69\x62\x63\x2e\x73\x6f\x2e\x36\x00\x47\x4c\x49\x42\x43\x5f\x32\x2e\x31\x37\x00\x47\x4c\x49\x42\x43\x5f\x32\x2e\x33\x34\x00\x5f\x49\x54\x4d\x5f\x64\x65\x72\x65\x67\x69\x73\x74\x65\x72\x54\x4d\x43\x6c\x6f\x6e\x65\x54\x61\x62\x6c\x65\x00\x5f\x5f\x67\x6d\x6f\x6e\x5f\x73\x74\x61\x72\x74\x5f\x5f\x00\x5f\x49\x54\x4d\x5f\x72\x65\x67\x69\x73\x74\x65\x72\x54\x4d\x43\x6c\x6f\x6e\x65\x54\x61\x62\x6c\x65\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x01\x00\x03\x00\x01\x00\x03\x00\x01\x00\x01\x00\x02\x00\x28\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x97\x91\x96\x06\x00\x00\x03\x00\x32\x00\x00\x00\x10\x00\x00\x00\xb4\x91\x96\x06\x00\x00\x02\x00\x3d\x00\x00\x00\x00\x00\x00\x00\x98\x0d\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x10\x07\x00\x00\x00\x00\x00\x00\xa0\x0d\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\xc0\x06\x00\x00\x00\x00\x00\x00\xf0\x0f\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x14\x07\x00\x00\x00\x00\x00\x00\x08\x10\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x08\x10\x01\x00\x00\x00\x00\x00\xd8\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe0\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe8\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xf8\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xb0\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xb8\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xc0\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xc8\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1f\x20\x03\xd5\xfd\x7b\xbf\xa9\xfd\x03\x00\x91\x2a\x00\x00\x94\xfd\x7b\xc1\xa8\xc0\x03\x5f\xd6\x00\x00\x00\x00\x00\x00\x00\x00\xf0\x7b\xbf\xa9\x90\x00\x00\x90\x11\xd6\x47\xf9\x10\xa2\x3e\x91\x20\x02\x1f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x90\x00\x00\x90\x11\xda\x47\xf9\x10\xc2\x3e\x91\x20\x02\x1f\xd6\x90\x00\x00\x90\x11\xde\x47\xf9\x10\xe2\x3e\x91\x20\x02\x1f\xd6\x90\x00\x00\x90\x11\xe2\x47\xf9\x10\x02\x3f\x91\x20\x02\x1f\xd6\x90\x00\x00\x90\x11\xe6\x47\xf9\x10\x22\x3f\x91\x20\x02\x1f\xd6\x1f\x20\x03\xd5\x1d\x00\x80\xd2\x1e\x00\x80\xd2\xe5\x03\x00\xaa\xe1\x03\x40\xf9\xe2\x23\x00\x91\xe6\x03\x00\x91\x80\x00\x00\x90\x00\xf8\x47\xf9\x03\x00\x80\xd2\x04\x00\x80\xd2\xe5\xff\xff\x97\xf0\xff\xff\x97\x80\x00\x00\x90\x00\xf4\x47\xf9\x40\x00\x00\xb4\xe8\xff\xff\x17\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x80\x00\x00\xb0\x00\x40\x00\x91\x81\x00\x00\xb0\x21\x40\x00\x91\x3f\x00\x00\xeb\xc0\x00\x00\x54\x81\x00\x00\x90\x21\xec\x47\xf9\x61\x00\x00\xb4\xf0\x03\x01\xaa\x00\x02\x1f\xd6\xc0\x03\x5f\xd6\x80\x00\x00\xb0\x00\x40\x00\x91\x81\x00\x00\xb0\x21\x40\x00\x91\x21\x00\x00\xcb\x22\xfc\x7f\xd3\x41\x0c\x81\x8b\x21\xfc\x41\x93\xc1\x00\x00\xb4\x82\x00\x00\x90\x42\xfc\x47\xf9\x62\x00\x00\xb4\xf0\x03\x02\xaa\x00\x02\x1f\xd6\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\xfd\x7b\xbe\xa9\xfd\x03\x00\x91\xf3\x0b\x00\xf9\x93\x00\x00\xb0\x60\x42\x40\x39\x40\x01\x00\x35\x80\x00\x00\x90\x00\xf0\x47\xf9\x80\x00\x00\xb4\x80\x00\x00\xb0\x00\x04\x40\xf9\xb9\xff\xff\x97\xd8\xff\xff\x97\x20\x00\x80\x52\x60\x42\x00\x39\xf3\x0b\x40\xf9\xfd\x7b\xc2\xa8\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\xdc\xff\xff\x17\xff\x43\x00\xd1\x80\x00\x00\xb0\x00\x60\x00\x91\x00\x00\x40\xb9\xe0\x0f\x00\xb9\xff\x0f\x00\xb9\x80\x00\x00\xb0\x00\x50\x00\x91\xe1\x0f\x40\xb9\x01\x00\x00\xb9\x80\x00\x00\xb0\x00\x60\x00\x91\x00\x00\x40\xb9\xe0\x0f\x00\xb9\x80\x00\x00\xb0\x00\x50\x00\x91\xe1\x0f\x40\xb9\x01\x00\x00\xb9\x00\x00\x80\x52\xff\x43\x00\x91\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\xfd\x7b\xbf\xa9\xfd\x03\x00\x91\xfd\x7b\xc1\xa8\xc0\x03\x5f\xd6\x01\x00\x02\x00\x01\x1b\x03\x3b\x3c\x00\x00\x00\x06\x00\x00\x00\x80\xfe\xff\xff\x54\x00\x00\x00\xd0\xfe\xff\xff\x68\x00\x00\x00\x00\xff\xff\xff\x7c\x00\x00\x00\x40\xff\xff\xff\x90\x00\x00\x00\x90\xff\xff\xff\xb4\x00\x00\x00\x94\xff\xff\xff\xc8\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x01\x7a\x52\x00\x04\x78\x1e\x01\x1b\x0c\x1f\x00\x10\x00\x00\x00\x18\x00\x00\x00\x24\xfe\xff\xff\x34\x00\x00\x00\x00\x41\x07\x1e\x10\x00\x00\x00\x2c\x00\x00\x00\x60\xfe\xff\xff\x30\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x40\x00\x00\x00\x7c\xfe\xff\xff\x3c\x00\x00\x00\x00\x00\x00\x00\x20\x00\x00\x00\x54\x00\x00\x00\xa8\xfe\xff\xff\x48\x00\x00\x00\x00\x41\x0e\x20\x9d\x04\x9e\x03\x42\x93\x02\x4e\xde\xdd\xd3\x0e\x00\x00\x00\x00\x10\x00\x00\x00\x78\x00\x00\x00\xd4\xfe\xff\xff\x04\x00\x00\x00\x00\x00\x00\x00\x14\x00\x00\x00\x8c\x00\x00\x00\xc4\xfe\xff\xff\x54\x00\x00\x00"), -Section(".comment", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x00\x06\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xc0\x1b\x00"), -Section(".interp", 0x238, "\x2f\x6c\x69\x62\x2f\x6c\x64\x2d\x6c\x69\x6e\x75\x78\x2d\x61\x61\x72\x63\x68\x36\x34\x2e\x73\x6f\x2e\x31\x00"), -Section(".note.gnu.build-id", 0x254, "\x04\x00\x00\x00\x14\x00\x00\x00\x03\x00\x00\x00\x47\x4e\x55\x00\x60\x1e\xb0\xf7\xe8\xe7\x2c\x74\x74\xda\x19\x7a\xe3\xbd\x53\x4e\xc9\x85\xf1\xbe"), -Section(".note.ABI-tag", 0x278, "\x04\x00\x00\x00\x10\x00\x00\x00\x01\x00\x00\x00\x47\x4e\x55\x00\x00\x00\x00\x00\x03\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00"), -Section(".gnu.hash", 0x298, "\x01\x00\x00\x00\x01\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".dynsym", 0x2B8, "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x0b\x00\x80\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x16\x00\x00\x10\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x48\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x22\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x22\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x73\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".dynstr", 0x390, "\x00\x5f\x5f\x63\x78\x61\x5f\x66\x69\x6e\x61\x6c\x69\x7a\x65\x00\x5f\x5f\x6c\x69\x62\x63\x5f\x73\x74\x61\x72\x74\x5f\x6d\x61\x69\x6e\x00\x61\x62\x6f\x72\x74\x00\x6c\x69\x62\x63\x2e\x73\x6f\x2e\x36\x00\x47\x4c\x49\x42\x43\x5f\x32\x2e\x31\x37\x00\x47\x4c\x49\x42\x43\x5f\x32\x2e\x33\x34\x00\x5f\x49\x54\x4d\x5f\x64\x65\x72\x65\x67\x69\x73\x74\x65\x72\x54\x4d\x43\x6c\x6f\x6e\x65\x54\x61\x62\x6c\x65\x00\x5f\x5f\x67\x6d\x6f\x6e\x5f\x73\x74\x61\x72\x74\x5f\x5f\x00\x5f\x49\x54\x4d\x5f\x72\x65\x67\x69\x73\x74\x65\x72\x54\x4d\x43\x6c\x6f\x6e\x65\x54\x61\x62\x6c\x65\x00"), -Section(".gnu.version", 0x41E, "\x00\x00\x00\x00\x00\x00\x02\x00\x01\x00\x03\x00\x01\x00\x03\x00\x01\x00"), -Section(".gnu.version_r", 0x430, "\x01\x00\x02\x00\x28\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x97\x91\x96\x06\x00\x00\x03\x00\x32\x00\x00\x00\x10\x00\x00\x00\xb4\x91\x96\x06\x00\x00\x02\x00\x3d\x00\x00\x00\x00\x00\x00\x00"), -Section(".rela.dyn", 0x460, "\x98\x0d\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x10\x07\x00\x00\x00\x00\x00\x00\xa0\x0d\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\xc0\x06\x00\x00\x00\x00\x00\x00\xf0\x0f\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x14\x07\x00\x00\x00\x00\x00\x00\x08\x10\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x08\x10\x01\x00\x00\x00\x00\x00\xd8\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe0\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe8\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xf8\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".rela.plt", 0x520, "\xb0\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xb8\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xc0\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xc8\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".init", 0x580, "\x1f\x20\x03\xd5\xfd\x7b\xbf\xa9\xfd\x03\x00\x91\x2a\x00\x00\x94\xfd\x7b\xc1\xa8\xc0\x03\x5f\xd6"), -Section(".plt", 0x5A0, "\xf0\x7b\xbf\xa9\x90\x00\x00\x90\x11\xd6\x47\xf9\x10\xa2\x3e\x91\x20\x02\x1f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x90\x00\x00\x90\x11\xda\x47\xf9\x10\xc2\x3e\x91\x20\x02\x1f\xd6\x90\x00\x00\x90\x11\xde\x47\xf9\x10\xe2\x3e\x91\x20\x02\x1f\xd6\x90\x00\x00\x90\x11\xe2\x47\xf9\x10\x02\x3f\x91\x20\x02\x1f\xd6\x90\x00\x00\x90\x11\xe6\x47\xf9\x10\x22\x3f\x91\x20\x02\x1f\xd6"), -Section(".fini", 0x768, "\x1f\x20\x03\xd5\xfd\x7b\xbf\xa9\xfd\x03\x00\x91\xfd\x7b\xc1\xa8\xc0\x03\x5f\xd6"), -Section(".rodata", 0x77C, "\x01\x00\x02\x00"), -Section(".eh_frame_hdr", 0x780, "\x01\x1b\x03\x3b\x3c\x00\x00\x00\x06\x00\x00\x00\x80\xfe\xff\xff\x54\x00\x00\x00\xd0\xfe\xff\xff\x68\x00\x00\x00\x00\xff\xff\xff\x7c\x00\x00\x00\x40\xff\xff\xff\x90\x00\x00\x00\x90\xff\xff\xff\xb4\x00\x00\x00\x94\xff\xff\xff\xc8\x00\x00\x00"), -Section(".eh_frame", 0x7C0, "\x10\x00\x00\x00\x00\x00\x00\x00\x01\x7a\x52\x00\x04\x78\x1e\x01\x1b\x0c\x1f\x00\x10\x00\x00\x00\x18\x00\x00\x00\x24\xfe\xff\xff\x34\x00\x00\x00\x00\x41\x07\x1e\x10\x00\x00\x00\x2c\x00\x00\x00\x60\xfe\xff\xff\x30\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x40\x00\x00\x00\x7c\xfe\xff\xff\x3c\x00\x00\x00\x00\x00\x00\x00\x20\x00\x00\x00\x54\x00\x00\x00\xa8\xfe\xff\xff\x48\x00\x00\x00\x00\x41\x0e\x20\x9d\x04\x9e\x03\x42\x93\x02\x4e\xde\xdd\xd3\x0e\x00\x00\x00\x00\x10\x00\x00\x00\x78\x00\x00\x00\xd4\xfe\xff\xff\x04\x00\x00\x00\x00\x00\x00\x00\x14\x00\x00\x00\x8c\x00\x00\x00\xc4\xfe\xff\xff\x54\x00\x00\x00\x00\x41\x0e\x10\x53\x0e\x00\x00\x00\x00\x00\x00"), -Section(".fini_array", 0x10DA0, "\xc0\x06\x00\x00\x00\x00\x00\x00"), -Section(".dynamic", 0x10DA8, "\x01\x00\x00\x00\x00\x00\x00\x00\x28\x00\x00\x00\x00\x00\x00\x00\x0c\x00\x00\x00\x00\x00\x00\x00\x80\x05\x00\x00\x00\x00\x00\x00\x0d\x00\x00\x00\x00\x00\x00\x00\x68\x07\x00\x00\x00\x00\x00\x00\x19\x00\x00\x00\x00\x00\x00\x00\x98\x0d\x01\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x1a\x00\x00\x00\x00\x00\x00\x00\xa0\x0d\x01\x00\x00\x00\x00\x00\x1c\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\xf5\xfe\xff\x6f\x00\x00\x00\x00\x98\x02\x00\x00\x00\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x90\x03\x00\x00\x00\x00\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\xb8\x02\x00\x00\x00\x00\x00\x00\x0a\x00\x00\x00\x00\x00\x00\x00\x8d\x00\x00\x00\x00\x00\x00\x00\x0b\x00\x00\x00\x00\x00\x00\x00\x18\x00\x00\x00\x00\x00\x00\x00\x15\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x98\x0f\x01\x00\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x60\x00\x00\x00\x00\x00\x00\x00\x14\x00\x00\x00\x00\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x17\x00\x00\x00\x00\x00\x00\x00\x20\x05\x00\x00\x00\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x60\x04\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\xc0\x00\x00\x00\x00\x00\x00\x00\x09\x00\x00\x00\x00\x00\x00\x00\x18\x00\x00\x00\x00\x00\x00\x00\x1e\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\xfb\xff\xff\x6f\x00\x00\x00\x00\x01\x00\x00\x08\x00\x00\x00\x00\xfe\xff\xff\x6f\x00\x00\x00\x00\x30\x04\x00\x00\x00\x00\x00\x00\xff\xff\xff\x6f\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\xf0\xff\xff\x6f\x00\x00\x00\x00\x1e\x04\x00\x00\x00\x00\x00\x00\xf9\xff\xff\x6f\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".got", 0x10F98, "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xa0\x05\x00\x00\x00\x00\x00\x00\xa0\x05\x00\x00\x00\x00\x00\x00\xa0\x05\x00\x00\x00\x00\x00\x00\xa0\x05\x00\x00\x00\x00\x00\x00\xa8\x0d\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x14\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".data", 0x11000, "\x00\x00\x00\x00\x00\x00\x00\x00\x08\x10\x01\x00\x00\x00\x00\x00"), -Section(".init_array", 0x10D98, "\x10\x07\x00\x00\x00\x00\x00\x00"), -Section(".text", 0x600, "\x1f\x20\x03\xd5\x1d\x00\x80\xd2\x1e\x00\x80\xd2\xe5\x03\x00\xaa\xe1\x03\x40\xf9\xe2\x23\x00\x91\xe6\x03\x00\x91\x80\x00\x00\x90\x00\xf8\x47\xf9\x03\x00\x80\xd2\x04\x00\x80\xd2\xe5\xff\xff\x97\xf0\xff\xff\x97\x80\x00\x00\x90\x00\xf4\x47\xf9\x40\x00\x00\xb4\xe8\xff\xff\x17\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x80\x00\x00\xb0\x00\x40\x00\x91\x81\x00\x00\xb0\x21\x40\x00\x91\x3f\x00\x00\xeb\xc0\x00\x00\x54\x81\x00\x00\x90\x21\xec\x47\xf9\x61\x00\x00\xb4\xf0\x03\x01\xaa\x00\x02\x1f\xd6\xc0\x03\x5f\xd6\x80\x00\x00\xb0\x00\x40\x00\x91\x81\x00\x00\xb0\x21\x40\x00\x91\x21\x00\x00\xcb\x22\xfc\x7f\xd3\x41\x0c\x81\x8b\x21\xfc\x41\x93\xc1\x00\x00\xb4\x82\x00\x00\x90\x42\xfc\x47\xf9\x62\x00\x00\xb4\xf0\x03\x02\xaa\x00\x02\x1f\xd6\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\xfd\x7b\xbe\xa9\xfd\x03\x00\x91\xf3\x0b\x00\xf9\x93\x00\x00\xb0\x60\x42\x40\x39\x40\x01\x00\x35\x80\x00\x00\x90\x00\xf0\x47\xf9\x80\x00\x00\xb4\x80\x00\x00\xb0\x00\x04\x40\xf9\xb9\xff\xff\x97\xd8\xff\xff\x97\x20\x00\x80\x52\x60\x42\x00\x39\xf3\x0b\x40\xf9\xfd\x7b\xc2\xa8\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\xdc\xff\xff\x17\xff\x43\x00\xd1\x80\x00\x00\xb0\x00\x60\x00\x91\x00\x00\x40\xb9\xe0\x0f\x00\xb9\xff\x0f\x00\xb9\x80\x00\x00\xb0\x00\x50\x00\x91\xe1\x0f\x40\xb9\x01\x00\x00\xb9\x80\x00\x00\xb0\x00\x60\x00\x91\x00\x00\x40\xb9\xe0\x0f\x00\xb9\x80\x00\x00\xb0\x00\x50\x00\x91\xe1\x0f\x40\xb9\x01\x00\x00\xb9\x00\x00\x80\x52\xff\x43\x00\x91\xc0\x03\x5f\xd6")]), -Memmap([Annotation(Region(0x0,0x863), Attr("segment","02 0 2148")), -Annotation(Region(0x600,0x633), Attr("symbol","\"_start\"")), -Annotation(Region(0x0,0xF9), Attr("section","\".shstrtab\"")), -Annotation(Region(0x0,0x22C), Attr("section","\".strtab\"")), -Annotation(Region(0x0,0x857), Attr("section","\".symtab\"")), -Annotation(Region(0x0,0x2A), Attr("section","\".comment\"")), -Annotation(Region(0x238,0x252), Attr("section","\".interp\"")), -Annotation(Region(0x254,0x277), Attr("section","\".note.gnu.build-id\"")), -Annotation(Region(0x278,0x297), Attr("section","\".note.ABI-tag\"")), -Annotation(Region(0x298,0x2B3), Attr("section","\".gnu.hash\"")), -Annotation(Region(0x2B8,0x38F), Attr("section","\".dynsym\"")), -Annotation(Region(0x390,0x41C), Attr("section","\".dynstr\"")), -Annotation(Region(0x41E,0x42F), Attr("section","\".gnu.version\"")), -Annotation(Region(0x430,0x45F), Attr("section","\".gnu.version_r\"")), -Annotation(Region(0x460,0x51F), Attr("section","\".rela.dyn\"")), -Annotation(Region(0x520,0x57F), Attr("section","\".rela.plt\"")), -Annotation(Region(0x580,0x597), Attr("section","\".init\"")), -Annotation(Region(0x5A0,0x5FF), Attr("section","\".plt\"")), -Annotation(Region(0x580,0x597), Attr("code-region","()")), -Annotation(Region(0x5A0,0x5FF), Attr("code-region","()")), -Annotation(Region(0x600,0x633), Attr("symbol-info","_start 0x600 52")), -Annotation(Region(0x634,0x647), Attr("symbol","\"call_weak_fn\"")), -Annotation(Region(0x634,0x647), Attr("symbol-info","call_weak_fn 0x634 20")), -Annotation(Region(0x714,0x767), Attr("symbol","\"main\"")), -Annotation(Region(0x714,0x767), Attr("symbol-info","main 0x714 84")), -Annotation(Region(0x768,0x77B), Attr("section","\".fini\"")), -Annotation(Region(0x77C,0x77F), Attr("section","\".rodata\"")), -Annotation(Region(0x780,0x7BB), Attr("section","\".eh_frame_hdr\"")), -Annotation(Region(0x7C0,0x863), Attr("section","\".eh_frame\"")), -Annotation(Region(0x10D98,0x1100F), Attr("segment","03 0x10D98 648")), -Annotation(Region(0x10DA0,0x10DA7), Attr("section","\".fini_array\"")), -Annotation(Region(0x10DA8,0x10F97), Attr("section","\".dynamic\"")), -Annotation(Region(0x10F98,0x10FFF), Attr("section","\".got\"")), -Annotation(Region(0x11000,0x1100F), Attr("section","\".data\"")), -Annotation(Region(0x10D98,0x10D9F), Attr("section","\".init_array\"")), -Annotation(Region(0x600,0x767), Attr("section","\".text\"")), -Annotation(Region(0x600,0x767), Attr("code-region","()")), -Annotation(Region(0x768,0x77B), Attr("code-region","()"))]), -Program(Tid(1_590, "%00000636"), Attrs([]), - Subs([Sub(Tid(1_568, "@__cxa_finalize"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x5D0"), -Attr("stub","()")]), "__cxa_finalize", Args([Arg(Tid(1_591, "%00000637"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("__cxa_finalize_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(954, "@__cxa_finalize"), - Attrs([Attr("address","0x5D0")]), Phis([]), -Defs([Def(Tid(1_202, "%000004b2"), Attrs([Attr("address","0x5D0"), -Attr("insn","adrp x16, #65536")]), Var("R16",Imm(64)), Int(65536,64)), -Def(Tid(1_209, "%000004b9"), Attrs([Attr("address","0x5D4"), -Attr("insn","ldr x17, [x16, #0xfb8]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(4024,64)),LittleEndian(),64)), -Def(Tid(1_215, "%000004bf"), Attrs([Attr("address","0x5D8"), -Attr("insn","add x16, x16, #0xfb8")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(4024,64)))]), Jmps([Call(Tid(1_220, "%000004c4"), - Attrs([Attr("address","0x5DC"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), -Sub(Tid(1_569, "@__do_global_dtors_aux"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x6C0")]), - "__do_global_dtors_aux", Args([Arg(Tid(1_592, "%00000638"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("__do_global_dtors_aux_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(674, "@__do_global_dtors_aux"), - Attrs([Attr("address","0x6C0")]), Phis([]), Defs([Def(Tid(678, "%000002a6"), - Attrs([Attr("address","0x6C0"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("#3",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(18446744073709551584,64))), -Def(Tid(684, "%000002ac"), Attrs([Attr("address","0x6C0"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("#3",Imm(64)),Var("R29",Imm(64)),LittleEndian(),64)), -Def(Tid(690, "%000002b2"), Attrs([Attr("address","0x6C0"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("#3",Imm(64)),Int(8,64)),Var("R30",Imm(64)),LittleEndian(),64)), -Def(Tid(694, "%000002b6"), Attrs([Attr("address","0x6C0"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("R31",Imm(64)), -Var("#3",Imm(64))), Def(Tid(700, "%000002bc"), - Attrs([Attr("address","0x6C4"), Attr("insn","mov x29, sp")]), - Var("R29",Imm(64)), Var("R31",Imm(64))), Def(Tid(708, "%000002c4"), - Attrs([Attr("address","0x6C8"), Attr("insn","str x19, [sp, #0x10]")]), - Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(16,64)),Var("R19",Imm(64)),LittleEndian(),64)), -Def(Tid(713, "%000002c9"), Attrs([Attr("address","0x6CC"), -Attr("insn","adrp x19, #69632")]), Var("R19",Imm(64)), Int(69632,64)), -Def(Tid(720, "%000002d0"), Attrs([Attr("address","0x6D0"), -Attr("insn","ldrb w0, [x19, #0x10]")]), Var("R0",Imm(64)), -UNSIGNED(64,Load(Var("mem",Mem(64,8)),PLUS(Var("R19",Imm(64)),Int(16,64)),LittleEndian(),8)))]), -Jmps([Goto(Tid(727, "%000002d7"), Attrs([Attr("address","0x6D4"), -Attr("insn","cbnz w0, #0x28")]), - NEQ(Extract(31,0,Var("R0",Imm(64))),Int(0,32)), -Direct(Tid(725, "%000002d5"))), Goto(Tid(1_570, "%00000622"), Attrs([]), - Int(1,1), Direct(Tid(899, "%00000383")))])), Blk(Tid(899, "%00000383"), - Attrs([Attr("address","0x6D8")]), Phis([]), Defs([Def(Tid(902, "%00000386"), - Attrs([Attr("address","0x6D8"), Attr("insn","adrp x0, #65536")]), - Var("R0",Imm(64)), Int(65536,64)), Def(Tid(909, "%0000038d"), - Attrs([Attr("address","0x6DC"), Attr("insn","ldr x0, [x0, #0xfe0]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(4064,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(915, "%00000393"), Attrs([Attr("address","0x6E0"), -Attr("insn","cbz x0, #0x10")]), EQ(Var("R0",Imm(64)),Int(0,64)), -Direct(Tid(913, "%00000391"))), Goto(Tid(1_571, "%00000623"), Attrs([]), - Int(1,1), Direct(Tid(938, "%000003aa")))])), Blk(Tid(938, "%000003aa"), - Attrs([Attr("address","0x6E4")]), Phis([]), Defs([Def(Tid(941, "%000003ad"), - Attrs([Attr("address","0x6E4"), Attr("insn","adrp x0, #69632")]), - Var("R0",Imm(64)), Int(69632,64)), Def(Tid(948, "%000003b4"), - Attrs([Attr("address","0x6E8"), Attr("insn","ldr x0, [x0, #0x8]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(953, "%000003b9"), Attrs([Attr("address","0x6EC"), -Attr("insn","bl #-0x11c")]), Var("R30",Imm(64)), Int(1776,64))]), -Jmps([Call(Tid(956, "%000003bc"), Attrs([Attr("address","0x6EC"), -Attr("insn","bl #-0x11c")]), Int(1,1), -(Direct(Tid(1_568, "@__cxa_finalize")),Direct(Tid(913, "%00000391"))))])), -Blk(Tid(913, "%00000391"), Attrs([Attr("address","0x6F0")]), Phis([]), -Defs([Def(Tid(921, "%00000399"), Attrs([Attr("address","0x6F0"), -Attr("insn","bl #-0xa0")]), Var("R30",Imm(64)), Int(1780,64))]), -Jmps([Call(Tid(923, "%0000039b"), Attrs([Attr("address","0x6F0"), -Attr("insn","bl #-0xa0")]), Int(1,1), -(Direct(Tid(1_582, "@deregister_tm_clones")),Direct(Tid(925, "%0000039d"))))])), -Blk(Tid(925, "%0000039d"), Attrs([Attr("address","0x6F4")]), Phis([]), -Defs([Def(Tid(928, "%000003a0"), Attrs([Attr("address","0x6F4"), -Attr("insn","mov w0, #0x1")]), Var("R0",Imm(64)), Int(1,64)), -Def(Tid(936, "%000003a8"), Attrs([Attr("address","0x6F8"), -Attr("insn","strb w0, [x19, #0x10]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R19",Imm(64)),Int(16,64)),Extract(7,0,Var("R0",Imm(64))),LittleEndian(),8))]), -Jmps([Goto(Tid(1_572, "%00000624"), Attrs([]), Int(1,1), -Direct(Tid(725, "%000002d5")))])), Blk(Tid(725, "%000002d5"), - Attrs([Attr("address","0x6FC")]), Phis([]), Defs([Def(Tid(735, "%000002df"), - Attrs([Attr("address","0x6FC"), Attr("insn","ldr x19, [sp, #0x10]")]), - Var("R19",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(16,64)),LittleEndian(),64)), -Def(Tid(742, "%000002e6"), Attrs([Attr("address","0x700"), -Attr("insn","ldp x29, x30, [sp], #0x20")]), Var("R29",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(747, "%000002eb"), Attrs([Attr("address","0x700"), -Attr("insn","ldp x29, x30, [sp], #0x20")]), Var("R30",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(751, "%000002ef"), Attrs([Attr("address","0x700"), -Attr("insn","ldp x29, x30, [sp], #0x20")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(32,64)))]), Jmps([Call(Tid(756, "%000002f4"), - Attrs([Attr("address","0x704"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), Sub(Tid(1_573, "@__libc_start_main"), - Attrs([Attr("c.proto","signed (*)(signed (*)(signed , char** , char** );* main, signed , char** , \nvoid* auxv)"), -Attr("address","0x5C0"), Attr("stub","()")]), "__libc_start_main", - Args([Arg(Tid(1_593, "%00000639"), - Attrs([Attr("c.layout","**[ : 64]"), -Attr("c.data","Top:u64 ptr ptr"), -Attr("c.type","signed (*)(signed , char** , char** );*")]), - Var("__libc_start_main_main",Imm(64)), Var("R0",Imm(64)), In()), -Arg(Tid(1_594, "%0000063a"), Attrs([Attr("c.layout","[signed : 32]"), -Attr("c.data","Top:u32"), Attr("c.type","signed")]), - Var("__libc_start_main_arg2",Imm(32)), LOW(32,Var("R1",Imm(64))), In()), -Arg(Tid(1_595, "%0000063b"), Attrs([Attr("c.layout","**[char : 8]"), -Attr("c.data","Top:u8 ptr ptr"), Attr("c.type","char**")]), - Var("__libc_start_main_arg3",Imm(64)), Var("R2",Imm(64)), Both()), -Arg(Tid(1_596, "%0000063c"), Attrs([Attr("c.layout","*[ : 8]"), -Attr("c.data","{} ptr"), Attr("c.type","void*")]), - Var("__libc_start_main_auxv",Imm(64)), Var("R3",Imm(64)), Both()), -Arg(Tid(1_597, "%0000063d"), Attrs([Attr("c.layout","[signed : 32]"), -Attr("c.data","Top:u32"), Attr("c.type","signed")]), - Var("__libc_start_main_result",Imm(32)), LOW(32,Var("R0",Imm(64))), -Out())]), Blks([Blk(Tid(507, "@__libc_start_main"), - Attrs([Attr("address","0x5C0")]), Phis([]), -Defs([Def(Tid(1_180, "%0000049c"), Attrs([Attr("address","0x5C0"), -Attr("insn","adrp x16, #65536")]), Var("R16",Imm(64)), Int(65536,64)), -Def(Tid(1_187, "%000004a3"), Attrs([Attr("address","0x5C4"), -Attr("insn","ldr x17, [x16, #0xfb0]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(4016,64)),LittleEndian(),64)), -Def(Tid(1_193, "%000004a9"), Attrs([Attr("address","0x5C8"), -Attr("insn","add x16, x16, #0xfb0")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(4016,64)))]), Jmps([Call(Tid(1_198, "%000004ae"), - Attrs([Attr("address","0x5CC"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), Sub(Tid(1_574, "@_fini"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x768")]), - "_fini", Args([Arg(Tid(1_598, "%0000063e"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("_fini_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(31, "@_fini"), - Attrs([Attr("address","0x768")]), Phis([]), Defs([Def(Tid(37, "%00000025"), - Attrs([Attr("address","0x76C"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("#0",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(18446744073709551600,64))), -Def(Tid(43, "%0000002b"), Attrs([Attr("address","0x76C"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("#0",Imm(64)),Var("R29",Imm(64)),LittleEndian(),64)), -Def(Tid(49, "%00000031"), Attrs([Attr("address","0x76C"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("#0",Imm(64)),Int(8,64)),Var("R30",Imm(64)),LittleEndian(),64)), -Def(Tid(53, "%00000035"), Attrs([Attr("address","0x76C"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("R31",Imm(64)), -Var("#0",Imm(64))), Def(Tid(59, "%0000003b"), Attrs([Attr("address","0x770"), -Attr("insn","mov x29, sp")]), Var("R29",Imm(64)), Var("R31",Imm(64))), -Def(Tid(66, "%00000042"), Attrs([Attr("address","0x774"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R29",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(71, "%00000047"), Attrs([Attr("address","0x774"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R30",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(75, "%0000004b"), Attrs([Attr("address","0x774"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(16,64)))]), Jmps([Call(Tid(80, "%00000050"), - Attrs([Attr("address","0x778"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), Sub(Tid(1_575, "@_init"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x580")]), - "_init", Args([Arg(Tid(1_599, "%0000063f"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("_init_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(1_389, "@_init"), - Attrs([Attr("address","0x580")]), Phis([]), -Defs([Def(Tid(1_395, "%00000573"), Attrs([Attr("address","0x584"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("#5",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(18446744073709551600,64))), -Def(Tid(1_401, "%00000579"), Attrs([Attr("address","0x584"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("#5",Imm(64)),Var("R29",Imm(64)),LittleEndian(),64)), -Def(Tid(1_407, "%0000057f"), Attrs([Attr("address","0x584"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("#5",Imm(64)),Int(8,64)),Var("R30",Imm(64)),LittleEndian(),64)), -Def(Tid(1_411, "%00000583"), Attrs([Attr("address","0x584"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("R31",Imm(64)), -Var("#5",Imm(64))), Def(Tid(1_417, "%00000589"), - Attrs([Attr("address","0x588"), Attr("insn","mov x29, sp")]), - Var("R29",Imm(64)), Var("R31",Imm(64))), Def(Tid(1_422, "%0000058e"), - Attrs([Attr("address","0x58C"), Attr("insn","bl #0xa8")]), - Var("R30",Imm(64)), Int(1424,64))]), Jmps([Call(Tid(1_424, "%00000590"), - Attrs([Attr("address","0x58C"), Attr("insn","bl #0xa8")]), Int(1,1), -(Direct(Tid(1_580, "@call_weak_fn")),Direct(Tid(1_426, "%00000592"))))])), -Blk(Tid(1_426, "%00000592"), Attrs([Attr("address","0x590")]), Phis([]), -Defs([Def(Tid(1_431, "%00000597"), Attrs([Attr("address","0x590"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R29",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(1_436, "%0000059c"), Attrs([Attr("address","0x590"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R30",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(1_440, "%000005a0"), Attrs([Attr("address","0x590"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(16,64)))]), Jmps([Call(Tid(1_445, "%000005a5"), - Attrs([Attr("address","0x594"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), Sub(Tid(1_576, "@_start"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x600"), -Attr("stub","()"), Attr("entry-point","()")]), "_start", - Args([Arg(Tid(1_600, "%00000640"), Attrs([Attr("c.layout","[signed : 32]"), -Attr("c.data","Top:u32"), Attr("c.type","signed")]), - Var("_start_result",Imm(32)), LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(444, "@_start"), Attrs([Attr("address","0x600")]), Phis([]), -Defs([Def(Tid(449, "%000001c1"), Attrs([Attr("address","0x604"), -Attr("insn","mov x29, #0x0")]), Var("R29",Imm(64)), Int(0,64)), -Def(Tid(454, "%000001c6"), Attrs([Attr("address","0x608"), -Attr("insn","mov x30, #0x0")]), Var("R30",Imm(64)), Int(0,64)), -Def(Tid(460, "%000001cc"), Attrs([Attr("address","0x60C"), -Attr("insn","mov x5, x0")]), Var("R5",Imm(64)), Var("R0",Imm(64))), -Def(Tid(467, "%000001d3"), Attrs([Attr("address","0x610"), -Attr("insn","ldr x1, [sp]")]), Var("R1",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(473, "%000001d9"), Attrs([Attr("address","0x614"), -Attr("insn","add x2, sp, #0x8")]), Var("R2",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(8,64))), Def(Tid(479, "%000001df"), - Attrs([Attr("address","0x618"), Attr("insn","mov x6, sp")]), - Var("R6",Imm(64)), Var("R31",Imm(64))), Def(Tid(484, "%000001e4"), - Attrs([Attr("address","0x61C"), Attr("insn","adrp x0, #65536")]), - Var("R0",Imm(64)), Int(65536,64)), Def(Tid(491, "%000001eb"), - Attrs([Attr("address","0x620"), Attr("insn","ldr x0, [x0, #0xff0]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(4080,64)),LittleEndian(),64)), -Def(Tid(496, "%000001f0"), Attrs([Attr("address","0x624"), -Attr("insn","mov x3, #0x0")]), Var("R3",Imm(64)), Int(0,64)), -Def(Tid(501, "%000001f5"), Attrs([Attr("address","0x628"), -Attr("insn","mov x4, #0x0")]), Var("R4",Imm(64)), Int(0,64)), -Def(Tid(506, "%000001fa"), Attrs([Attr("address","0x62C"), -Attr("insn","bl #-0x6c")]), Var("R30",Imm(64)), Int(1584,64))]), -Jmps([Call(Tid(509, "%000001fd"), Attrs([Attr("address","0x62C"), -Attr("insn","bl #-0x6c")]), Int(1,1), -(Direct(Tid(1_573, "@__libc_start_main")),Direct(Tid(511, "%000001ff"))))])), -Blk(Tid(511, "%000001ff"), Attrs([Attr("address","0x630")]), Phis([]), -Defs([Def(Tid(514, "%00000202"), Attrs([Attr("address","0x630"), -Attr("insn","bl #-0x40")]), Var("R30",Imm(64)), Int(1588,64))]), -Jmps([Call(Tid(517, "%00000205"), Attrs([Attr("address","0x630"), -Attr("insn","bl #-0x40")]), Int(1,1), -(Direct(Tid(1_579, "@abort")),Direct(Tid(1_577, "%00000629"))))])), -Blk(Tid(1_577, "%00000629"), Attrs([]), Phis([]), Defs([]), -Jmps([Call(Tid(1_578, "%0000062a"), Attrs([]), Int(1,1), -(Direct(Tid(1_580, "@call_weak_fn")),))]))])), Sub(Tid(1_579, "@abort"), - Attrs([Attr("noreturn","()"), Attr("c.proto","void (*)(void)"), -Attr("address","0x5F0"), Attr("stub","()")]), "abort", Args([]), -Blks([Blk(Tid(515, "@abort"), Attrs([Attr("address","0x5F0")]), Phis([]), -Defs([Def(Tid(1_246, "%000004de"), Attrs([Attr("address","0x5F0"), -Attr("insn","adrp x16, #65536")]), Var("R16",Imm(64)), Int(65536,64)), -Def(Tid(1_253, "%000004e5"), Attrs([Attr("address","0x5F4"), -Attr("insn","ldr x17, [x16, #0xfc8]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(4040,64)),LittleEndian(),64)), -Def(Tid(1_259, "%000004eb"), Attrs([Attr("address","0x5F8"), -Attr("insn","add x16, x16, #0xfc8")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(4040,64)))]), Jmps([Call(Tid(1_264, "%000004f0"), - Attrs([Attr("address","0x5FC"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), Sub(Tid(1_580, "@call_weak_fn"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x634")]), - "call_weak_fn", Args([Arg(Tid(1_601, "%00000641"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("call_weak_fn_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(519, "@call_weak_fn"), - Attrs([Attr("address","0x634")]), Phis([]), Defs([Def(Tid(522, "%0000020a"), - Attrs([Attr("address","0x634"), Attr("insn","adrp x0, #65536")]), - Var("R0",Imm(64)), Int(65536,64)), Def(Tid(529, "%00000211"), - Attrs([Attr("address","0x638"), Attr("insn","ldr x0, [x0, #0xfe8]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(4072,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(535, "%00000217"), Attrs([Attr("address","0x63C"), -Attr("insn","cbz x0, #0x8")]), EQ(Var("R0",Imm(64)),Int(0,64)), -Direct(Tid(533, "%00000215"))), Goto(Tid(1_581, "%0000062d"), Attrs([]), - Int(1,1), Direct(Tid(1_018, "%000003fa")))])), Blk(Tid(533, "%00000215"), - Attrs([Attr("address","0x644")]), Phis([]), Defs([]), -Jmps([Call(Tid(541, "%0000021d"), Attrs([Attr("address","0x644"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))])), -Blk(Tid(1_018, "%000003fa"), Attrs([Attr("address","0x640")]), Phis([]), -Defs([]), Jmps([Goto(Tid(1_021, "%000003fd"), Attrs([Attr("address","0x640"), -Attr("insn","b #-0x60")]), Int(1,1), -Direct(Tid(1_019, "@__gmon_start__")))])), Blk(Tid(1_019, "@__gmon_start__"), - Attrs([Attr("address","0x5E0")]), Phis([]), -Defs([Def(Tid(1_224, "%000004c8"), Attrs([Attr("address","0x5E0"), -Attr("insn","adrp x16, #65536")]), Var("R16",Imm(64)), Int(65536,64)), -Def(Tid(1_231, "%000004cf"), Attrs([Attr("address","0x5E4"), -Attr("insn","ldr x17, [x16, #0xfc0]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(4032,64)),LittleEndian(),64)), -Def(Tid(1_237, "%000004d5"), Attrs([Attr("address","0x5E8"), -Attr("insn","add x16, x16, #0xfc0")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(4032,64)))]), Jmps([Call(Tid(1_242, "%000004da"), - Attrs([Attr("address","0x5EC"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), -Sub(Tid(1_582, "@deregister_tm_clones"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x650")]), - "deregister_tm_clones", Args([Arg(Tid(1_602, "%00000642"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("deregister_tm_clones_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(547, "@deregister_tm_clones"), - Attrs([Attr("address","0x650")]), Phis([]), Defs([Def(Tid(550, "%00000226"), - Attrs([Attr("address","0x650"), Attr("insn","adrp x0, #69632")]), - Var("R0",Imm(64)), Int(69632,64)), Def(Tid(556, "%0000022c"), - Attrs([Attr("address","0x654"), Attr("insn","add x0, x0, #0x10")]), - Var("R0",Imm(64)), PLUS(Var("R0",Imm(64)),Int(16,64))), -Def(Tid(561, "%00000231"), Attrs([Attr("address","0x658"), -Attr("insn","adrp x1, #69632")]), Var("R1",Imm(64)), Int(69632,64)), -Def(Tid(567, "%00000237"), Attrs([Attr("address","0x65C"), -Attr("insn","add x1, x1, #0x10")]), Var("R1",Imm(64)), -PLUS(Var("R1",Imm(64)),Int(16,64))), Def(Tid(573, "%0000023d"), - Attrs([Attr("address","0x660"), Attr("insn","cmp x1, x0")]), - Var("#1",Imm(64)), NOT(Var("R0",Imm(64)))), Def(Tid(578, "%00000242"), - Attrs([Attr("address","0x660"), Attr("insn","cmp x1, x0")]), - Var("#2",Imm(64)), PLUS(Var("R1",Imm(64)),NOT(Var("R0",Imm(64))))), -Def(Tid(584, "%00000248"), Attrs([Attr("address","0x660"), -Attr("insn","cmp x1, x0")]), Var("VF",Imm(1)), -NEQ(SIGNED(65,PLUS(Var("#2",Imm(64)),Int(1,64))),PLUS(PLUS(SIGNED(65,Var("R1",Imm(64))),SIGNED(65,Var("#1",Imm(64)))),Int(1,65)))), -Def(Tid(590, "%0000024e"), Attrs([Attr("address","0x660"), -Attr("insn","cmp x1, x0")]), Var("CF",Imm(1)), -NEQ(UNSIGNED(65,PLUS(Var("#2",Imm(64)),Int(1,64))),PLUS(PLUS(UNSIGNED(65,Var("R1",Imm(64))),UNSIGNED(65,Var("#1",Imm(64)))),Int(1,65)))), -Def(Tid(594, "%00000252"), Attrs([Attr("address","0x660"), -Attr("insn","cmp x1, x0")]), Var("ZF",Imm(1)), -EQ(PLUS(Var("#2",Imm(64)),Int(1,64)),Int(0,64))), Def(Tid(598, "%00000256"), - Attrs([Attr("address","0x660"), Attr("insn","cmp x1, x0")]), - Var("NF",Imm(1)), Extract(63,63,PLUS(Var("#2",Imm(64)),Int(1,64))))]), -Jmps([Goto(Tid(604, "%0000025c"), Attrs([Attr("address","0x664"), -Attr("insn","b.eq #0x18")]), EQ(Var("ZF",Imm(1)),Int(1,1)), -Direct(Tid(602, "%0000025a"))), Goto(Tid(1_583, "%0000062f"), Attrs([]), - Int(1,1), Direct(Tid(988, "%000003dc")))])), Blk(Tid(988, "%000003dc"), - Attrs([Attr("address","0x668")]), Phis([]), Defs([Def(Tid(991, "%000003df"), - Attrs([Attr("address","0x668"), Attr("insn","adrp x1, #65536")]), - Var("R1",Imm(64)), Int(65536,64)), Def(Tid(998, "%000003e6"), - Attrs([Attr("address","0x66C"), Attr("insn","ldr x1, [x1, #0xfd8]")]), - Var("R1",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R1",Imm(64)),Int(4056,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(1_003, "%000003eb"), Attrs([Attr("address","0x670"), -Attr("insn","cbz x1, #0xc")]), EQ(Var("R1",Imm(64)),Int(0,64)), -Direct(Tid(602, "%0000025a"))), Goto(Tid(1_584, "%00000630"), Attrs([]), - Int(1,1), Direct(Tid(1_007, "%000003ef")))])), Blk(Tid(602, "%0000025a"), - Attrs([Attr("address","0x67C")]), Phis([]), Defs([]), -Jmps([Call(Tid(610, "%00000262"), Attrs([Attr("address","0x67C"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))])), -Blk(Tid(1_007, "%000003ef"), Attrs([Attr("address","0x674")]), Phis([]), -Defs([Def(Tid(1_011, "%000003f3"), Attrs([Attr("address","0x674"), -Attr("insn","mov x16, x1")]), Var("R16",Imm(64)), Var("R1",Imm(64)))]), -Jmps([Call(Tid(1_016, "%000003f8"), Attrs([Attr("address","0x678"), -Attr("insn","br x16")]), Int(1,1), (Indirect(Var("R16",Imm(64))),))]))])), -Sub(Tid(1_585, "@frame_dummy"), Attrs([Attr("c.proto","signed (*)(void)"), -Attr("address","0x710")]), "frame_dummy", Args([Arg(Tid(1_603, "%00000643"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("frame_dummy_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(762, "@frame_dummy"), - Attrs([Attr("address","0x710")]), Phis([]), Defs([]), -Jmps([Call(Tid(764, "%000002fc"), Attrs([Attr("address","0x710"), -Attr("insn","b #-0x90")]), Int(1,1), -(Direct(Tid(1_587, "@register_tm_clones")),))]))])), Sub(Tid(1_586, "@main"), - Attrs([Attr("c.proto","signed (*)(signed argc, const char** argv)"), -Attr("address","0x714")]), "main", Args([Arg(Tid(1_604, "%00000644"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("main_argc",Imm(32)), -LOW(32,Var("R0",Imm(64))), In()), Arg(Tid(1_605, "%00000645"), - Attrs([Attr("c.layout","**[char : 8]"), Attr("c.data","Top:u8 ptr ptr"), -Attr("c.type"," const char**")]), Var("main_argv",Imm(64)), -Var("R1",Imm(64)), Both()), Arg(Tid(1_606, "%00000646"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("main_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(766, "@main"), - Attrs([Attr("address","0x714")]), Phis([]), Defs([Def(Tid(770, "%00000302"), - Attrs([Attr("address","0x714"), Attr("insn","sub sp, sp, #0x10")]), - Var("R31",Imm(64)), PLUS(Var("R31",Imm(64)),Int(18446744073709551600,64))), -Def(Tid(775, "%00000307"), Attrs([Attr("address","0x718"), -Attr("insn","adrp x0, #69632")]), Var("R0",Imm(64)), Int(69632,64)), -Def(Tid(781, "%0000030d"), Attrs([Attr("address","0x71C"), -Attr("insn","add x0, x0, #0x18")]), Var("R0",Imm(64)), -PLUS(Var("R0",Imm(64)),Int(24,64))), Def(Tid(788, "%00000314"), - Attrs([Attr("address","0x720"), Attr("insn","ldr w0, [x0]")]), - Var("R0",Imm(64)), -UNSIGNED(64,Load(Var("mem",Mem(64,8)),Var("R0",Imm(64)),LittleEndian(),32))), -Def(Tid(796, "%0000031c"), Attrs([Attr("address","0x724"), -Attr("insn","str w0, [sp, #0xc]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(12,64)),Extract(31,0,Var("R0",Imm(64))),LittleEndian(),32)), -Def(Tid(803, "%00000323"), Attrs([Attr("address","0x728"), -Attr("insn","str wzr, [sp, #0xc]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(12,64)),Int(0,32),LittleEndian(),32)), -Def(Tid(808, "%00000328"), Attrs([Attr("address","0x72C"), -Attr("insn","adrp x0, #69632")]), Var("R0",Imm(64)), Int(69632,64)), -Def(Tid(814, "%0000032e"), Attrs([Attr("address","0x730"), -Attr("insn","add x0, x0, #0x14")]), Var("R0",Imm(64)), -PLUS(Var("R0",Imm(64)),Int(20,64))), Def(Tid(821, "%00000335"), - Attrs([Attr("address","0x734"), Attr("insn","ldr w1, [sp, #0xc]")]), - Var("R1",Imm(64)), -UNSIGNED(64,Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(12,64)),LittleEndian(),32))), -Def(Tid(829, "%0000033d"), Attrs([Attr("address","0x738"), -Attr("insn","str w1, [x0]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("R0",Imm(64)),Extract(31,0,Var("R1",Imm(64))),LittleEndian(),32)), -Def(Tid(834, "%00000342"), Attrs([Attr("address","0x73C"), -Attr("insn","adrp x0, #69632")]), Var("R0",Imm(64)), Int(69632,64)), -Def(Tid(840, "%00000348"), Attrs([Attr("address","0x740"), -Attr("insn","add x0, x0, #0x18")]), Var("R0",Imm(64)), -PLUS(Var("R0",Imm(64)),Int(24,64))), Def(Tid(847, "%0000034f"), - Attrs([Attr("address","0x744"), Attr("insn","ldr w0, [x0]")]), - Var("R0",Imm(64)), -UNSIGNED(64,Load(Var("mem",Mem(64,8)),Var("R0",Imm(64)),LittleEndian(),32))), -Def(Tid(855, "%00000357"), Attrs([Attr("address","0x748"), -Attr("insn","str w0, [sp, #0xc]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(12,64)),Extract(31,0,Var("R0",Imm(64))),LittleEndian(),32)), -Def(Tid(860, "%0000035c"), Attrs([Attr("address","0x74C"), -Attr("insn","adrp x0, #69632")]), Var("R0",Imm(64)), Int(69632,64)), -Def(Tid(866, "%00000362"), Attrs([Attr("address","0x750"), -Attr("insn","add x0, x0, #0x14")]), Var("R0",Imm(64)), -PLUS(Var("R0",Imm(64)),Int(20,64))), Def(Tid(873, "%00000369"), - Attrs([Attr("address","0x754"), Attr("insn","ldr w1, [sp, #0xc]")]), - Var("R1",Imm(64)), -UNSIGNED(64,Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(12,64)),LittleEndian(),32))), -Def(Tid(881, "%00000371"), Attrs([Attr("address","0x758"), -Attr("insn","str w1, [x0]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("R0",Imm(64)),Extract(31,0,Var("R1",Imm(64))),LittleEndian(),32)), -Def(Tid(886, "%00000376"), Attrs([Attr("address","0x75C"), -Attr("insn","mov w0, #0x0")]), Var("R0",Imm(64)), Int(0,64)), -Def(Tid(892, "%0000037c"), Attrs([Attr("address","0x760"), -Attr("insn","add sp, sp, #0x10")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(16,64)))]), Jmps([Call(Tid(897, "%00000381"), - Attrs([Attr("address","0x764"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), -Sub(Tid(1_587, "@register_tm_clones"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x680")]), - "register_tm_clones", Args([Arg(Tid(1_607, "%00000647"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("register_tm_clones_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(612, "@register_tm_clones"), Attrs([Attr("address","0x680")]), - Phis([]), Defs([Def(Tid(615, "%00000267"), Attrs([Attr("address","0x680"), -Attr("insn","adrp x0, #69632")]), Var("R0",Imm(64)), Int(69632,64)), -Def(Tid(621, "%0000026d"), Attrs([Attr("address","0x684"), -Attr("insn","add x0, x0, #0x10")]), Var("R0",Imm(64)), -PLUS(Var("R0",Imm(64)),Int(16,64))), Def(Tid(626, "%00000272"), - Attrs([Attr("address","0x688"), Attr("insn","adrp x1, #69632")]), - Var("R1",Imm(64)), Int(69632,64)), Def(Tid(632, "%00000278"), - Attrs([Attr("address","0x68C"), Attr("insn","add x1, x1, #0x10")]), - Var("R1",Imm(64)), PLUS(Var("R1",Imm(64)),Int(16,64))), -Def(Tid(639, "%0000027f"), Attrs([Attr("address","0x690"), -Attr("insn","sub x1, x1, x0")]), Var("R1",Imm(64)), -PLUS(PLUS(Var("R1",Imm(64)),NOT(Var("R0",Imm(64)))),Int(1,64))), -Def(Tid(645, "%00000285"), Attrs([Attr("address","0x694"), -Attr("insn","lsr x2, x1, #63")]), Var("R2",Imm(64)), -Concat(Int(0,63),Extract(63,63,Var("R1",Imm(64))))), -Def(Tid(652, "%0000028c"), Attrs([Attr("address","0x698"), -Attr("insn","add x1, x2, x1, asr #3")]), Var("R1",Imm(64)), -PLUS(Var("R2",Imm(64)),ARSHIFT(Var("R1",Imm(64)),Int(3,3)))), -Def(Tid(658, "%00000292"), Attrs([Attr("address","0x69C"), -Attr("insn","asr x1, x1, #1")]), Var("R1",Imm(64)), -SIGNED(64,Extract(63,1,Var("R1",Imm(64)))))]), -Jmps([Goto(Tid(664, "%00000298"), Attrs([Attr("address","0x6A0"), -Attr("insn","cbz x1, #0x18")]), EQ(Var("R1",Imm(64)),Int(0,64)), -Direct(Tid(662, "%00000296"))), Goto(Tid(1_588, "%00000634"), Attrs([]), - Int(1,1), Direct(Tid(958, "%000003be")))])), Blk(Tid(958, "%000003be"), - Attrs([Attr("address","0x6A4")]), Phis([]), Defs([Def(Tid(961, "%000003c1"), - Attrs([Attr("address","0x6A4"), Attr("insn","adrp x2, #65536")]), - Var("R2",Imm(64)), Int(65536,64)), Def(Tid(968, "%000003c8"), - Attrs([Attr("address","0x6A8"), Attr("insn","ldr x2, [x2, #0xff8]")]), - Var("R2",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R2",Imm(64)),Int(4088,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(973, "%000003cd"), Attrs([Attr("address","0x6AC"), -Attr("insn","cbz x2, #0xc")]), EQ(Var("R2",Imm(64)),Int(0,64)), -Direct(Tid(662, "%00000296"))), Goto(Tid(1_589, "%00000635"), Attrs([]), - Int(1,1), Direct(Tid(977, "%000003d1")))])), Blk(Tid(662, "%00000296"), - Attrs([Attr("address","0x6B8")]), Phis([]), Defs([]), -Jmps([Call(Tid(670, "%0000029e"), Attrs([Attr("address","0x6B8"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))])), -Blk(Tid(977, "%000003d1"), Attrs([Attr("address","0x6B0")]), Phis([]), -Defs([Def(Tid(981, "%000003d5"), Attrs([Attr("address","0x6B0"), -Attr("insn","mov x16, x2")]), Var("R16",Imm(64)), Var("R2",Imm(64)))]), -Jmps([Call(Tid(986, "%000003da"), Attrs([Attr("address","0x6B4"), -Attr("insn","br x16")]), Int(1,1), -(Indirect(Var("R16",Imm(64))),))]))]))]))) \ No newline at end of file diff --git a/src/test/incorrect/basicassign1/gcc/basicassign1.bir b/src/test/incorrect/basicassign1/gcc/basicassign1.bir deleted file mode 100644 index 2256f9f9a..000000000 --- a/src/test/incorrect/basicassign1/gcc/basicassign1.bir +++ /dev/null @@ -1,243 +0,0 @@ -00000636: program -00000620: sub __cxa_finalize(__cxa_finalize_result) -00000637: __cxa_finalize_result :: out u32 = low:32[R0] - -000003ba: -000004b2: R16 := 0x10000 -000004b9: R17 := mem[R16 + 0xFB8, el]:u64 -000004bf: R16 := R16 + 0xFB8 -000004c4: call R17 with noreturn - -00000621: sub __do_global_dtors_aux(__do_global_dtors_aux_result) -00000638: __do_global_dtors_aux_result :: out u32 = low:32[R0] - -000002a2: -000002a6: #3 := R31 - 0x20 -000002ac: mem := mem with [#3, el]:u64 <- R29 -000002b2: mem := mem with [#3 + 8, el]:u64 <- R30 -000002b6: R31 := #3 -000002bc: R29 := R31 -000002c4: mem := mem with [R31 + 0x10, el]:u64 <- R19 -000002c9: R19 := 0x11000 -000002d0: R0 := pad:64[mem[R19 + 0x10]] -000002d7: when 31:0[R0] <> 0 goto %000002d5 -00000622: goto %00000383 - -00000383: -00000386: R0 := 0x10000 -0000038d: R0 := mem[R0 + 0xFE0, el]:u64 -00000393: when R0 = 0 goto %00000391 -00000623: goto %000003aa - -000003aa: -000003ad: R0 := 0x11000 -000003b4: R0 := mem[R0 + 8, el]:u64 -000003b9: R30 := 0x6F0 -000003bc: call @__cxa_finalize with return %00000391 - -00000391: -00000399: R30 := 0x6F4 -0000039b: call @deregister_tm_clones with return %0000039d - -0000039d: -000003a0: R0 := 1 -000003a8: mem := mem with [R19 + 0x10] <- 7:0[R0] -00000624: goto %000002d5 - -000002d5: -000002df: R19 := mem[R31 + 0x10, el]:u64 -000002e6: R29 := mem[R31, el]:u64 -000002eb: R30 := mem[R31 + 8, el]:u64 -000002ef: R31 := R31 + 0x20 -000002f4: call R30 with noreturn - -00000625: sub __libc_start_main(__libc_start_main_main, __libc_start_main_arg2, __libc_start_main_arg3, __libc_start_main_auxv, __libc_start_main_result) -00000639: __libc_start_main_main :: in u64 = R0 -0000063a: __libc_start_main_arg2 :: in u32 = low:32[R1] -0000063b: __libc_start_main_arg3 :: in out u64 = R2 -0000063c: __libc_start_main_auxv :: in out u64 = R3 -0000063d: __libc_start_main_result :: out u32 = low:32[R0] - -000001fb: -0000049c: R16 := 0x10000 -000004a3: R17 := mem[R16 + 0xFB0, el]:u64 -000004a9: R16 := R16 + 0xFB0 -000004ae: call R17 with noreturn - -00000626: sub _fini(_fini_result) -0000063e: _fini_result :: out u32 = low:32[R0] - -0000001f: -00000025: #0 := R31 - 0x10 -0000002b: mem := mem with [#0, el]:u64 <- R29 -00000031: mem := mem with [#0 + 8, el]:u64 <- R30 -00000035: R31 := #0 -0000003b: R29 := R31 -00000042: R29 := mem[R31, el]:u64 -00000047: R30 := mem[R31 + 8, el]:u64 -0000004b: R31 := R31 + 0x10 -00000050: call R30 with noreturn - -00000627: sub _init(_init_result) -0000063f: _init_result :: out u32 = low:32[R0] - -0000056d: -00000573: #5 := R31 - 0x10 -00000579: mem := mem with [#5, el]:u64 <- R29 -0000057f: mem := mem with [#5 + 8, el]:u64 <- R30 -00000583: R31 := #5 -00000589: R29 := R31 -0000058e: R30 := 0x590 -00000590: call @call_weak_fn with return %00000592 - -00000592: -00000597: R29 := mem[R31, el]:u64 -0000059c: R30 := mem[R31 + 8, el]:u64 -000005a0: R31 := R31 + 0x10 -000005a5: call R30 with noreturn - -00000628: sub _start(_start_result) -00000640: _start_result :: out u32 = low:32[R0] - -000001bc: -000001c1: R29 := 0 -000001c6: R30 := 0 -000001cc: R5 := R0 -000001d3: R1 := mem[R31, el]:u64 -000001d9: R2 := R31 + 8 -000001df: R6 := R31 -000001e4: R0 := 0x10000 -000001eb: R0 := mem[R0 + 0xFF0, el]:u64 -000001f0: R3 := 0 -000001f5: R4 := 0 -000001fa: R30 := 0x630 -000001fd: call @__libc_start_main with return %000001ff - -000001ff: -00000202: R30 := 0x634 -00000205: call @abort with return %00000629 - -00000629: -0000062a: call @call_weak_fn with noreturn - -0000062b: sub abort() - - -00000203: -000004de: R16 := 0x10000 -000004e5: R17 := mem[R16 + 0xFC8, el]:u64 -000004eb: R16 := R16 + 0xFC8 -000004f0: call R17 with noreturn - -0000062c: sub call_weak_fn(call_weak_fn_result) -00000641: call_weak_fn_result :: out u32 = low:32[R0] - -00000207: -0000020a: R0 := 0x10000 -00000211: R0 := mem[R0 + 0xFE8, el]:u64 -00000217: when R0 = 0 goto %00000215 -0000062d: goto %000003fa - -00000215: -0000021d: call R30 with noreturn - -000003fa: -000003fd: goto @__gmon_start__ - -000003fb: -000004c8: R16 := 0x10000 -000004cf: R17 := mem[R16 + 0xFC0, el]:u64 -000004d5: R16 := R16 + 0xFC0 -000004da: call R17 with noreturn - -0000062e: sub deregister_tm_clones(deregister_tm_clones_result) -00000642: deregister_tm_clones_result :: out u32 = low:32[R0] - -00000223: -00000226: R0 := 0x11000 -0000022c: R0 := R0 + 0x10 -00000231: R1 := 0x11000 -00000237: R1 := R1 + 0x10 -0000023d: #1 := ~R0 -00000242: #2 := R1 + ~R0 -00000248: VF := extend:65[#2 + 1] <> extend:65[R1] + extend:65[#1] + 1 -0000024e: CF := pad:65[#2 + 1] <> pad:65[R1] + pad:65[#1] + 1 -00000252: ZF := #2 + 1 = 0 -00000256: NF := 63:63[#2 + 1] -0000025c: when ZF goto %0000025a -0000062f: goto %000003dc - -000003dc: -000003df: R1 := 0x10000 -000003e6: R1 := mem[R1 + 0xFD8, el]:u64 -000003eb: when R1 = 0 goto %0000025a -00000630: goto %000003ef - -0000025a: -00000262: call R30 with noreturn - -000003ef: -000003f3: R16 := R1 -000003f8: call R16 with noreturn - -00000631: sub frame_dummy(frame_dummy_result) -00000643: frame_dummy_result :: out u32 = low:32[R0] - -000002fa: -000002fc: call @register_tm_clones with noreturn - -00000632: sub main(main_argc, main_argv, main_result) -00000644: main_argc :: in u32 = low:32[R0] -00000645: main_argv :: in out u64 = R1 -00000646: main_result :: out u32 = low:32[R0] - -000002fe: -00000302: R31 := R31 - 0x10 -00000307: R0 := 0x11000 -0000030d: R0 := R0 + 0x18 -00000314: R0 := pad:64[mem[R0, el]:u32] -0000031c: mem := mem with [R31 + 0xC, el]:u32 <- 31:0[R0] -00000323: mem := mem with [R31 + 0xC, el]:u32 <- 0 -00000328: R0 := 0x11000 -0000032e: R0 := R0 + 0x14 -00000335: R1 := pad:64[mem[R31 + 0xC, el]:u32] -0000033d: mem := mem with [R0, el]:u32 <- 31:0[R1] -00000342: R0 := 0x11000 -00000348: R0 := R0 + 0x18 -0000034f: R0 := pad:64[mem[R0, el]:u32] -00000357: mem := mem with [R31 + 0xC, el]:u32 <- 31:0[R0] -0000035c: R0 := 0x11000 -00000362: R0 := R0 + 0x14 -00000369: R1 := pad:64[mem[R31 + 0xC, el]:u32] -00000371: mem := mem with [R0, el]:u32 <- 31:0[R1] -00000376: R0 := 0 -0000037c: R31 := R31 + 0x10 -00000381: call R30 with noreturn - -00000633: sub register_tm_clones(register_tm_clones_result) -00000647: register_tm_clones_result :: out u32 = low:32[R0] - -00000264: -00000267: R0 := 0x11000 -0000026d: R0 := R0 + 0x10 -00000272: R1 := 0x11000 -00000278: R1 := R1 + 0x10 -0000027f: R1 := R1 + ~R0 + 1 -00000285: R2 := 0.63:63[R1] -0000028c: R1 := R2 + (R1 ~>> 3) -00000292: R1 := extend:64[63:1[R1]] -00000298: when R1 = 0 goto %00000296 -00000634: goto %000003be - -000003be: -000003c1: R2 := 0x10000 -000003c8: R2 := mem[R2 + 0xFF8, el]:u64 -000003cd: when R2 = 0 goto %00000296 -00000635: goto %000003d1 - -00000296: -0000029e: call R30 with noreturn - -000003d1: -000003d5: R16 := R2 -000003da: call R16 with noreturn diff --git a/src/test/incorrect/basicassign1/gcc/basicassign1.expected b/src/test/incorrect/basicassign1/gcc/basicassign1.expected index bdbbed858..57b3e30f9 100644 --- a/src/test/incorrect/basicassign1/gcc/basicassign1.expected +++ b/src/test/incorrect/basicassign1/gcc/basicassign1.expected @@ -1,15 +1,13 @@ var {:extern} Gamma_R0: bool; var {:extern} Gamma_R1: bool; -var {:extern} Gamma_R31: bool; +var {:extern} Gamma_R2: bool; var {:extern} Gamma_mem: [bv64]bool; -var {:extern} Gamma_stack: [bv64]bool; var {:extern} R0: bv64; var {:extern} R1: bv64; -var {:extern} R31: bv64; +var {:extern} R2: bv64; var {:extern} mem: [bv64]bv8; -var {:extern} stack: [bv64]bv8; const {:extern} $z_addr: bv64; -axiom ($z_addr == 69652bv64); +axiom ($z_addr == 4325400bv64); function {:extern} L(mem$in: [bv64]bv8, index: bv64) returns (bool) { (if (index == $z_addr) then true else false) } @@ -19,6 +17,10 @@ function {:extern} gamma_load32(gammaMap: [bv64]bool, index: bv64) returns (bool (gammaMap[bvadd64(index, 3bv64)] && (gammaMap[bvadd64(index, 2bv64)] && (gammaMap[bvadd64(index, 1bv64)] && gammaMap[index]))) } +function {:extern} gamma_load64(gammaMap: [bv64]bool, index: bv64) returns (bool) { + (gammaMap[bvadd64(index, 7bv64)] && (gammaMap[bvadd64(index, 6bv64)] && (gammaMap[bvadd64(index, 5bv64)] && (gammaMap[bvadd64(index, 4bv64)] && (gammaMap[bvadd64(index, 3bv64)] && (gammaMap[bvadd64(index, 2bv64)] && (gammaMap[bvadd64(index, 1bv64)] && gammaMap[index]))))))) +} + function {:extern} gamma_store32(gammaMap: [bv64]bool, index: bv64, value: bool) returns ([bv64]bool) { gammaMap[index := value][bvadd64(index, 1bv64) := value][bvadd64(index, 2bv64) := value][bvadd64(index, 3bv64) := value] } @@ -40,11 +42,7 @@ procedure {:extern} rely(); modifies Gamma_mem, mem; ensures (Gamma_mem == old(Gamma_mem)); ensures (mem == old(mem)); - free ensures (memory_load32_le(mem, 1916bv64) == 131073bv32); - free ensures (memory_load64_le(mem, 69016bv64) == 1808bv64); - free ensures (memory_load64_le(mem, 69024bv64) == 1728bv64); - free ensures (memory_load64_le(mem, 69616bv64) == 1812bv64); - free ensures (memory_load64_le(mem, 69640bv64) == 69640bv64); + free ensures (memory_load32_le(mem, 4196312bv64) == 131073bv32); procedure {:extern} rely_transitive(); modifies Gamma_mem, mem; @@ -62,73 +60,42 @@ procedure {:extern} rely_reflexive(); procedure {:extern} guarantee_reflexive(); modifies Gamma_mem, mem; -procedure main_1812(); - modifies Gamma_R0, Gamma_R1, Gamma_R31, Gamma_mem, Gamma_stack, R0, R1, R31, mem, stack; - free requires (memory_load64_le(mem, 69632bv64) == 0bv64); - free requires (memory_load64_le(mem, 69640bv64) == 69640bv64); - free requires (memory_load32_le(mem, 1916bv64) == 131073bv32); - free requires (memory_load64_le(mem, 69016bv64) == 1808bv64); - free requires (memory_load64_le(mem, 69024bv64) == 1728bv64); - free requires (memory_load64_le(mem, 69616bv64) == 1812bv64); - free requires (memory_load64_le(mem, 69640bv64) == 69640bv64); - free ensures (Gamma_R31 == old(Gamma_R31)); - free ensures (R31 == old(R31)); - free ensures (memory_load32_le(mem, 1916bv64) == 131073bv32); - free ensures (memory_load64_le(mem, 69016bv64) == 1808bv64); - free ensures (memory_load64_le(mem, 69024bv64) == 1728bv64); - free ensures (memory_load64_le(mem, 69616bv64) == 1812bv64); - free ensures (memory_load64_le(mem, 69640bv64) == 69640bv64); +procedure main(); + modifies Gamma_R0, Gamma_R1, Gamma_R2, Gamma_mem, R0, R1, R2, mem; + free requires (memory_load64_le(mem, 4325376bv64) == 0bv64); + free requires (memory_load64_le(mem, 4325384bv64) == 0bv64); + free requires (memory_load32_le(mem, 4196312bv64) == 131073bv32); + free ensures (memory_load32_le(mem, 4196312bv64) == 131073bv32); -implementation main_1812() +implementation main() { - var Gamma_load18: bool; - var Gamma_load19: bool; - var Gamma_load20: bool; - var Gamma_load21: bool; - var load18: bv32; - var load19: bv32; - var load20: bv32; - var load21: bv32; + var $load$14: bv64; + var $load$15: bv64; + var $load$16: bv32; + var Gamma_$load$14: bool; + var Gamma_$load$15: bool; + var Gamma_$load$16: bool; lmain: assume {:captureState "lmain"} true; - R31, Gamma_R31 := bvadd64(R31, 18446744073709551600bv64), Gamma_R31; - R0, Gamma_R0 := 69632bv64, true; - R0, Gamma_R0 := bvadd64(R0, 24bv64), Gamma_R0; + R1, Gamma_R1 := 4321280bv64, true; call rely(); - load18, Gamma_load18 := memory_load32_le(mem, R0), (gamma_load32(Gamma_mem, R0) || L(mem, R0)); - R0, Gamma_R0 := zero_extend32_32(load18), Gamma_load18; - stack, Gamma_stack := memory_store32_le(stack, bvadd64(R31, 12bv64), R0[32:0]), gamma_store32(Gamma_stack, bvadd64(R31, 12bv64), Gamma_R0); - assume {:captureState "%0000031c"} true; - stack, Gamma_stack := memory_store32_le(stack, bvadd64(R31, 12bv64), 0bv32), gamma_store32(Gamma_stack, bvadd64(R31, 12bv64), true); - assume {:captureState "%00000323"} true; - R0, Gamma_R0 := 69632bv64, true; - R0, Gamma_R0 := bvadd64(R0, 20bv64), Gamma_R0; - load19, Gamma_load19 := memory_load32_le(stack, bvadd64(R31, 12bv64)), gamma_load32(Gamma_stack, bvadd64(R31, 12bv64)); - R1, Gamma_R1 := zero_extend32_32(load19), Gamma_load19; + $load$14, Gamma_$load$14 := memory_load64_le(mem, bvadd64(R1, 4080bv64)), (gamma_load64(Gamma_mem, bvadd64(R1, 4080bv64)) || L(mem, bvadd64(R1, 4080bv64))); + R1, Gamma_R1 := $load$14, Gamma_$load$14; + R0, Gamma_R0 := 0bv64, true; + R2, Gamma_R2 := 4321280bv64, true; call rely(); - assert (L(mem, R0) ==> Gamma_R1); - mem, Gamma_mem := memory_store32_le(mem, R0, R1[32:0]), gamma_store32(Gamma_mem, R0, Gamma_R1); - assume {:captureState "%0000033d"} true; - R0, Gamma_R0 := 69632bv64, true; - R0, Gamma_R0 := bvadd64(R0, 24bv64), Gamma_R0; + $load$15, Gamma_$load$15 := memory_load64_le(mem, bvadd64(R2, 4064bv64)), (gamma_load64(Gamma_mem, bvadd64(R2, 4064bv64)) || L(mem, bvadd64(R2, 4064bv64))); + R2, Gamma_R2 := $load$15, Gamma_$load$15; call rely(); - load20, Gamma_load20 := memory_load32_le(mem, R0), (gamma_load32(Gamma_mem, R0) || L(mem, R0)); - R0, Gamma_R0 := zero_extend32_32(load20), Gamma_load20; - stack, Gamma_stack := memory_store32_le(stack, bvadd64(R31, 12bv64), R0[32:0]), gamma_store32(Gamma_stack, bvadd64(R31, 12bv64), Gamma_R0); - assume {:captureState "%00000357"} true; - R0, Gamma_R0 := 69632bv64, true; - R0, Gamma_R0 := bvadd64(R0, 20bv64), Gamma_R0; - load21, Gamma_load21 := memory_load32_le(stack, bvadd64(R31, 12bv64)), gamma_load32(Gamma_stack, bvadd64(R31, 12bv64)); - R1, Gamma_R1 := zero_extend32_32(load21), Gamma_load21; + $load$16, Gamma_$load$16 := memory_load32_le(mem, R1), (gamma_load32(Gamma_mem, R1) || L(mem, R1)); + R1, Gamma_R1 := zero_extend32_32($load$16), Gamma_$load$16; call rely(); - assert (L(mem, R0) ==> Gamma_R1); - mem, Gamma_mem := memory_store32_le(mem, R0, R1[32:0]), gamma_store32(Gamma_mem, R0, Gamma_R1); - assume {:captureState "%00000371"} true; - R0, Gamma_R0 := 0bv64, true; - R31, Gamma_R31 := bvadd64(R31, 16bv64), Gamma_R31; - goto main_1812_basil_return; - main_1812_basil_return: - assume {:captureState "main_1812_basil_return"} true; + assert (L(mem, R2) ==> Gamma_R1); + mem, Gamma_mem := memory_store32_le(mem, R2, R1[32:0]), gamma_store32(Gamma_mem, R2, Gamma_R1); + assume {:captureState "%00000260"} true; + goto main_basil_return; + main_basil_return: + assume {:captureState "main_basil_return"} true; return; } diff --git a/src/test/incorrect/basicassign1/gcc/basicassign1.gts b/src/test/incorrect/basicassign1/gcc/basicassign1.gts deleted file mode 100644 index e7a7059e1..000000000 Binary files a/src/test/incorrect/basicassign1/gcc/basicassign1.gts and /dev/null differ diff --git a/src/test/incorrect/basicassign1/gcc/basicassign1.md5sum b/src/test/incorrect/basicassign1/gcc/basicassign1.md5sum new file mode 100644 index 000000000..4e25e93c7 --- /dev/null +++ b/src/test/incorrect/basicassign1/gcc/basicassign1.md5sum @@ -0,0 +1,5 @@ +9d1a4d5866bbc0d4798faaff2d943a54 incorrect/basicassign1/gcc/a.out +12f0be934186ad3d803851c3a08ed524 incorrect/basicassign1/gcc/basicassign1.adt +6c956d99ec21783c672618fa9d755968 incorrect/basicassign1/gcc/basicassign1.bir +2e92d8ec09a9ea1b8196e5620166d48f incorrect/basicassign1/gcc/basicassign1.relf +85cdc31df3715e451dc7fa129d126530 incorrect/basicassign1/gcc/basicassign1.gts diff --git a/src/test/incorrect/basicassign1/gcc/basicassign1.relf b/src/test/incorrect/basicassign1/gcc/basicassign1.relf deleted file mode 100644 index c7fda5e37..000000000 --- a/src/test/incorrect/basicassign1/gcc/basicassign1.relf +++ /dev/null @@ -1,122 +0,0 @@ - -Relocation section '.rela.dyn' at offset 0x460 contains 8 entries: - Offset Info Type Symbol's Value Symbol's Name + Addend -0000000000010d98 0000000000000403 R_AARCH64_RELATIVE 710 -0000000000010da0 0000000000000403 R_AARCH64_RELATIVE 6c0 -0000000000010ff0 0000000000000403 R_AARCH64_RELATIVE 714 -0000000000011008 0000000000000403 R_AARCH64_RELATIVE 11008 -0000000000010fd8 0000000400000401 R_AARCH64_GLOB_DAT 0000000000000000 _ITM_deregisterTMCloneTable + 0 -0000000000010fe0 0000000500000401 R_AARCH64_GLOB_DAT 0000000000000000 __cxa_finalize@GLIBC_2.17 + 0 -0000000000010fe8 0000000600000401 R_AARCH64_GLOB_DAT 0000000000000000 __gmon_start__ + 0 -0000000000010ff8 0000000800000401 R_AARCH64_GLOB_DAT 0000000000000000 _ITM_registerTMCloneTable + 0 - -Relocation section '.rela.plt' at offset 0x520 contains 4 entries: - Offset Info Type Symbol's Value Symbol's Name + Addend -0000000000010fb0 0000000300000402 R_AARCH64_JUMP_SLOT 0000000000000000 __libc_start_main@GLIBC_2.34 + 0 -0000000000010fb8 0000000500000402 R_AARCH64_JUMP_SLOT 0000000000000000 __cxa_finalize@GLIBC_2.17 + 0 -0000000000010fc0 0000000600000402 R_AARCH64_JUMP_SLOT 0000000000000000 __gmon_start__ + 0 -0000000000010fc8 0000000700000402 R_AARCH64_JUMP_SLOT 0000000000000000 abort@GLIBC_2.17 + 0 - -Symbol table '.dynsym' contains 9 entries: - Num: Value Size Type Bind Vis Ndx Name - 0: 0000000000000000 0 NOTYPE LOCAL DEFAULT UND - 1: 0000000000000580 0 SECTION LOCAL DEFAULT 11 .init - 2: 0000000000011000 0 SECTION LOCAL DEFAULT 22 .data - 3: 0000000000000000 0 FUNC GLOBAL DEFAULT UND __libc_start_main@GLIBC_2.34 (2) - 4: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_deregisterTMCloneTable - 5: 0000000000000000 0 FUNC WEAK DEFAULT UND __cxa_finalize@GLIBC_2.17 (3) - 6: 0000000000000000 0 NOTYPE WEAK DEFAULT UND __gmon_start__ - 7: 0000000000000000 0 FUNC GLOBAL DEFAULT UND abort@GLIBC_2.17 (3) - 8: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_registerTMCloneTable - -Symbol table '.symtab' contains 89 entries: - Num: Value Size Type Bind Vis Ndx Name - 0: 0000000000000000 0 NOTYPE LOCAL DEFAULT UND - 1: 0000000000000238 0 SECTION LOCAL DEFAULT 1 .interp - 2: 0000000000000254 0 SECTION LOCAL DEFAULT 2 .note.gnu.build-id - 3: 0000000000000278 0 SECTION LOCAL DEFAULT 3 .note.ABI-tag - 4: 0000000000000298 0 SECTION LOCAL DEFAULT 4 .gnu.hash - 5: 00000000000002b8 0 SECTION LOCAL DEFAULT 5 .dynsym - 6: 0000000000000390 0 SECTION LOCAL DEFAULT 6 .dynstr - 7: 000000000000041e 0 SECTION LOCAL DEFAULT 7 .gnu.version - 8: 0000000000000430 0 SECTION LOCAL DEFAULT 8 .gnu.version_r - 9: 0000000000000460 0 SECTION LOCAL DEFAULT 9 .rela.dyn - 10: 0000000000000520 0 SECTION LOCAL DEFAULT 10 .rela.plt - 11: 0000000000000580 0 SECTION LOCAL DEFAULT 11 .init - 12: 00000000000005a0 0 SECTION LOCAL DEFAULT 12 .plt - 13: 0000000000000600 0 SECTION LOCAL DEFAULT 13 .text - 14: 0000000000000768 0 SECTION LOCAL DEFAULT 14 .fini - 15: 000000000000077c 0 SECTION LOCAL DEFAULT 15 .rodata - 16: 0000000000000780 0 SECTION LOCAL DEFAULT 16 .eh_frame_hdr - 17: 00000000000007c0 0 SECTION LOCAL DEFAULT 17 .eh_frame - 18: 0000000000010d98 0 SECTION LOCAL DEFAULT 18 .init_array - 19: 0000000000010da0 0 SECTION LOCAL DEFAULT 19 .fini_array - 20: 0000000000010da8 0 SECTION LOCAL DEFAULT 20 .dynamic - 21: 0000000000010f98 0 SECTION LOCAL DEFAULT 21 .got - 22: 0000000000011000 0 SECTION LOCAL DEFAULT 22 .data - 23: 0000000000011010 0 SECTION LOCAL DEFAULT 23 .bss - 24: 0000000000000000 0 SECTION LOCAL DEFAULT 24 .comment - 25: 0000000000000000 0 FILE LOCAL DEFAULT ABS Scrt1.o - 26: 0000000000000278 0 NOTYPE LOCAL DEFAULT 3 $d - 27: 0000000000000278 32 OBJECT LOCAL DEFAULT 3 __abi_tag - 28: 0000000000000600 0 NOTYPE LOCAL DEFAULT 13 $x - 29: 00000000000007d4 0 NOTYPE LOCAL DEFAULT 17 $d - 30: 000000000000077c 0 NOTYPE LOCAL DEFAULT 15 $d - 31: 0000000000000000 0 FILE LOCAL DEFAULT ABS crti.o - 32: 0000000000000634 0 NOTYPE LOCAL DEFAULT 13 $x - 33: 0000000000000634 20 FUNC LOCAL DEFAULT 13 call_weak_fn - 34: 0000000000000580 0 NOTYPE LOCAL DEFAULT 11 $x - 35: 0000000000000768 0 NOTYPE LOCAL DEFAULT 14 $x - 36: 0000000000000000 0 FILE LOCAL DEFAULT ABS crtn.o - 37: 0000000000000590 0 NOTYPE LOCAL DEFAULT 11 $x - 38: 0000000000000774 0 NOTYPE LOCAL DEFAULT 14 $x - 39: 0000000000000000 0 FILE LOCAL DEFAULT ABS crtstuff.c - 40: 0000000000000650 0 NOTYPE LOCAL DEFAULT 13 $x - 41: 0000000000000650 0 FUNC LOCAL DEFAULT 13 deregister_tm_clones - 42: 0000000000000680 0 FUNC LOCAL DEFAULT 13 register_tm_clones - 43: 0000000000011008 0 NOTYPE LOCAL DEFAULT 22 $d - 44: 00000000000006c0 0 FUNC LOCAL DEFAULT 13 __do_global_dtors_aux - 45: 0000000000011010 1 OBJECT LOCAL DEFAULT 23 completed.0 - 46: 0000000000010da0 0 NOTYPE LOCAL DEFAULT 19 $d - 47: 0000000000010da0 0 OBJECT LOCAL DEFAULT 19 __do_global_dtors_aux_fini_array_entry - 48: 0000000000000710 0 FUNC LOCAL DEFAULT 13 frame_dummy - 49: 0000000000010d98 0 NOTYPE LOCAL DEFAULT 18 $d - 50: 0000000000010d98 0 OBJECT LOCAL DEFAULT 18 __frame_dummy_init_array_entry - 51: 00000000000007e8 0 NOTYPE LOCAL DEFAULT 17 $d - 52: 0000000000011010 0 NOTYPE LOCAL DEFAULT 23 $d - 53: 0000000000000000 0 FILE LOCAL DEFAULT ABS basicassign1.c - 54: 0000000000011014 0 NOTYPE LOCAL DEFAULT 23 $d - 55: 0000000000000714 0 NOTYPE LOCAL DEFAULT 13 $x - 56: 0000000000000848 0 NOTYPE LOCAL DEFAULT 17 $d - 57: 0000000000000000 0 FILE LOCAL DEFAULT ABS crtstuff.c - 58: 0000000000000860 0 NOTYPE LOCAL DEFAULT 17 $d - 59: 0000000000000860 0 OBJECT LOCAL DEFAULT 17 __FRAME_END__ - 60: 0000000000000000 0 FILE LOCAL DEFAULT ABS - 61: 0000000000010da8 0 OBJECT LOCAL DEFAULT ABS _DYNAMIC - 62: 0000000000000780 0 NOTYPE LOCAL DEFAULT 16 __GNU_EH_FRAME_HDR - 63: 0000000000010fd0 0 OBJECT LOCAL DEFAULT ABS _GLOBAL_OFFSET_TABLE_ - 64: 00000000000005a0 0 NOTYPE LOCAL DEFAULT 12 $x - 65: 0000000000000000 0 FUNC GLOBAL DEFAULT UND __libc_start_main@GLIBC_2.34 - 66: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_deregisterTMCloneTable - 67: 0000000000011000 0 NOTYPE WEAK DEFAULT 22 data_start - 68: 0000000000011010 0 NOTYPE GLOBAL DEFAULT 23 __bss_start__ - 69: 0000000000000000 0 FUNC WEAK DEFAULT UND __cxa_finalize@GLIBC_2.17 - 70: 0000000000011020 0 NOTYPE GLOBAL DEFAULT 23 _bss_end__ - 71: 0000000000011010 0 NOTYPE GLOBAL DEFAULT 22 _edata - 72: 0000000000011014 4 OBJECT GLOBAL DEFAULT 23 z - 73: 0000000000000768 0 FUNC GLOBAL HIDDEN 14 _fini - 74: 0000000000011020 0 NOTYPE GLOBAL DEFAULT 23 __bss_end__ - 75: 0000000000011000 0 NOTYPE GLOBAL DEFAULT 22 __data_start - 76: 0000000000000000 0 NOTYPE WEAK DEFAULT UND __gmon_start__ - 77: 0000000000011008 0 OBJECT GLOBAL HIDDEN 22 __dso_handle - 78: 0000000000000000 0 FUNC GLOBAL DEFAULT UND abort@GLIBC_2.17 - 79: 000000000000077c 4 OBJECT GLOBAL DEFAULT 15 _IO_stdin_used - 80: 0000000000011018 4 OBJECT GLOBAL DEFAULT 23 secret - 81: 0000000000011020 0 NOTYPE GLOBAL DEFAULT 23 _end - 82: 0000000000000600 52 FUNC GLOBAL DEFAULT 13 _start - 83: 0000000000011020 0 NOTYPE GLOBAL DEFAULT 23 __end__ - 84: 0000000000011010 0 NOTYPE GLOBAL DEFAULT 23 __bss_start - 85: 0000000000000714 84 FUNC GLOBAL DEFAULT 13 main - 86: 0000000000011010 0 OBJECT GLOBAL HIDDEN 22 __TMC_END__ - 87: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_registerTMCloneTable - 88: 0000000000000580 0 FUNC GLOBAL HIDDEN 11 _init diff --git a/src/test/incorrect/basicassign1/gcc/basicassign1_gtirb.expected b/src/test/incorrect/basicassign1/gcc/basicassign1_gtirb.expected index a07dc0534..64f983c42 100644 --- a/src/test/incorrect/basicassign1/gcc/basicassign1_gtirb.expected +++ b/src/test/incorrect/basicassign1/gcc/basicassign1_gtirb.expected @@ -1,15 +1,13 @@ var {:extern} Gamma_R0: bool; var {:extern} Gamma_R1: bool; -var {:extern} Gamma_R31: bool; +var {:extern} Gamma_R2: bool; var {:extern} Gamma_mem: [bv64]bool; -var {:extern} Gamma_stack: [bv64]bool; var {:extern} R0: bv64; var {:extern} R1: bv64; -var {:extern} R31: bv64; +var {:extern} R2: bv64; var {:extern} mem: [bv64]bv8; -var {:extern} stack: [bv64]bv8; const {:extern} $z_addr: bv64; -axiom ($z_addr == 69652bv64); +axiom ($z_addr == 4325400bv64); function {:extern} L(mem$in: [bv64]bv8, index: bv64) returns (bool) { (if (index == $z_addr) then true else false) } @@ -19,6 +17,10 @@ function {:extern} gamma_load32(gammaMap: [bv64]bool, index: bv64) returns (bool (gammaMap[bvadd64(index, 3bv64)] && (gammaMap[bvadd64(index, 2bv64)] && (gammaMap[bvadd64(index, 1bv64)] && gammaMap[index]))) } +function {:extern} gamma_load64(gammaMap: [bv64]bool, index: bv64) returns (bool) { + (gammaMap[bvadd64(index, 7bv64)] && (gammaMap[bvadd64(index, 6bv64)] && (gammaMap[bvadd64(index, 5bv64)] && (gammaMap[bvadd64(index, 4bv64)] && (gammaMap[bvadd64(index, 3bv64)] && (gammaMap[bvadd64(index, 2bv64)] && (gammaMap[bvadd64(index, 1bv64)] && gammaMap[index]))))))) +} + function {:extern} gamma_store32(gammaMap: [bv64]bool, index: bv64, value: bool) returns ([bv64]bool) { gammaMap[index := value][bvadd64(index, 1bv64) := value][bvadd64(index, 2bv64) := value][bvadd64(index, 3bv64) := value] } @@ -40,11 +42,7 @@ procedure {:extern} rely(); modifies Gamma_mem, mem; ensures (Gamma_mem == old(Gamma_mem)); ensures (mem == old(mem)); - free ensures (memory_load32_le(mem, 1916bv64) == 131073bv32); - free ensures (memory_load64_le(mem, 69016bv64) == 1808bv64); - free ensures (memory_load64_le(mem, 69024bv64) == 1728bv64); - free ensures (memory_load64_le(mem, 69616bv64) == 1812bv64); - free ensures (memory_load64_le(mem, 69640bv64) == 69640bv64); + free ensures (memory_load32_le(mem, 4196312bv64) == 131073bv32); procedure {:extern} rely_transitive(); modifies Gamma_mem, mem; @@ -62,73 +60,42 @@ procedure {:extern} rely_reflexive(); procedure {:extern} guarantee_reflexive(); modifies Gamma_mem, mem; -procedure main_1812(); - modifies Gamma_R0, Gamma_R1, Gamma_R31, Gamma_mem, Gamma_stack, R0, R1, R31, mem, stack; - free requires (memory_load64_le(mem, 69632bv64) == 0bv64); - free requires (memory_load64_le(mem, 69640bv64) == 69640bv64); - free requires (memory_load32_le(mem, 1916bv64) == 131073bv32); - free requires (memory_load64_le(mem, 69016bv64) == 1808bv64); - free requires (memory_load64_le(mem, 69024bv64) == 1728bv64); - free requires (memory_load64_le(mem, 69616bv64) == 1812bv64); - free requires (memory_load64_le(mem, 69640bv64) == 69640bv64); - free ensures (Gamma_R31 == old(Gamma_R31)); - free ensures (R31 == old(R31)); - free ensures (memory_load32_le(mem, 1916bv64) == 131073bv32); - free ensures (memory_load64_le(mem, 69016bv64) == 1808bv64); - free ensures (memory_load64_le(mem, 69024bv64) == 1728bv64); - free ensures (memory_load64_le(mem, 69616bv64) == 1812bv64); - free ensures (memory_load64_le(mem, 69640bv64) == 69640bv64); +procedure main(); + modifies Gamma_R0, Gamma_R1, Gamma_R2, Gamma_mem, R0, R1, R2, mem; + free requires (memory_load64_le(mem, 4325376bv64) == 0bv64); + free requires (memory_load64_le(mem, 4325384bv64) == 0bv64); + free requires (memory_load32_le(mem, 4196312bv64) == 131073bv32); + free ensures (memory_load32_le(mem, 4196312bv64) == 131073bv32); -implementation main_1812() +implementation main() { - var Gamma_load6: bool; - var Gamma_load7: bool; - var Gamma_load8: bool; - var Gamma_load9: bool; - var load6: bv32; - var load7: bv32; - var load8: bv32; - var load9: bv32; - main_1812__0__nlp0Z6HpSoKsMKUhBvTrsQ: - assume {:captureState "main_1812__0__nlp0Z6HpSoKsMKUhBvTrsQ"} true; - R31, Gamma_R31 := bvadd64(R31, 18446744073709551600bv64), Gamma_R31; - R0, Gamma_R0 := 69632bv64, true; - R0, Gamma_R0 := bvadd64(R0, 24bv64), Gamma_R0; + var $load16: bv64; + var $load17: bv64; + var $load18: bv32; + var Gamma_$load16: bool; + var Gamma_$load17: bool; + var Gamma_$load18: bool; + $main$__0__$i2bc6yURTw~Pq2nxe63pQA: + assume {:captureState "$main$__0__$i2bc6yURTw~Pq2nxe63pQA"} true; + R1, Gamma_R1 := 4321280bv64, true; call rely(); - load6, Gamma_load6 := memory_load32_le(mem, R0), (gamma_load32(Gamma_mem, R0) || L(mem, R0)); - R0, Gamma_R0 := zero_extend32_32(load6), Gamma_load6; - stack, Gamma_stack := memory_store32_le(stack, bvadd64(R31, 12bv64), R0[32:0]), gamma_store32(Gamma_stack, bvadd64(R31, 12bv64), Gamma_R0); - assume {:captureState "1828_0"} true; - stack, Gamma_stack := memory_store32_le(stack, bvadd64(R31, 12bv64), 0bv32), gamma_store32(Gamma_stack, bvadd64(R31, 12bv64), true); - assume {:captureState "1832_0"} true; - R0, Gamma_R0 := 69632bv64, true; - R0, Gamma_R0 := bvadd64(R0, 20bv64), Gamma_R0; - load7, Gamma_load7 := memory_load32_le(stack, bvadd64(R31, 12bv64)), gamma_load32(Gamma_stack, bvadd64(R31, 12bv64)); - R1, Gamma_R1 := zero_extend32_32(load7), Gamma_load7; + $load16, Gamma_$load16 := memory_load64_le(mem, bvadd64(R1, 4080bv64)), (gamma_load64(Gamma_mem, bvadd64(R1, 4080bv64)) || L(mem, bvadd64(R1, 4080bv64))); + R1, Gamma_R1 := $load16, Gamma_$load16; + R0, Gamma_R0 := 0bv64, true; + R2, Gamma_R2 := 4321280bv64, true; call rely(); - assert (L(mem, R0) ==> Gamma_R1); - mem, Gamma_mem := memory_store32_le(mem, R0, R1[32:0]), gamma_store32(Gamma_mem, R0, Gamma_R1); - assume {:captureState "1848_0"} true; - R0, Gamma_R0 := 69632bv64, true; - R0, Gamma_R0 := bvadd64(R0, 24bv64), Gamma_R0; + $load17, Gamma_$load17 := memory_load64_le(mem, bvadd64(R2, 4064bv64)), (gamma_load64(Gamma_mem, bvadd64(R2, 4064bv64)) || L(mem, bvadd64(R2, 4064bv64))); + R2, Gamma_R2 := $load17, Gamma_$load17; call rely(); - load8, Gamma_load8 := memory_load32_le(mem, R0), (gamma_load32(Gamma_mem, R0) || L(mem, R0)); - R0, Gamma_R0 := zero_extend32_32(load8), Gamma_load8; - stack, Gamma_stack := memory_store32_le(stack, bvadd64(R31, 12bv64), R0[32:0]), gamma_store32(Gamma_stack, bvadd64(R31, 12bv64), Gamma_R0); - assume {:captureState "1864_0"} true; - R0, Gamma_R0 := 69632bv64, true; - R0, Gamma_R0 := bvadd64(R0, 20bv64), Gamma_R0; - load9, Gamma_load9 := memory_load32_le(stack, bvadd64(R31, 12bv64)), gamma_load32(Gamma_stack, bvadd64(R31, 12bv64)); - R1, Gamma_R1 := zero_extend32_32(load9), Gamma_load9; + $load18, Gamma_$load18 := memory_load32_le(mem, R1), (gamma_load32(Gamma_mem, R1) || L(mem, R1)); + R1, Gamma_R1 := zero_extend32_32($load18), Gamma_$load18; call rely(); - assert (L(mem, R0) ==> Gamma_R1); - mem, Gamma_mem := memory_store32_le(mem, R0, R1[32:0]), gamma_store32(Gamma_mem, R0, Gamma_R1); - assume {:captureState "1880_0"} true; - R0, Gamma_R0 := 0bv64, true; - R31, Gamma_R31 := bvadd64(R31, 16bv64), Gamma_R31; - goto main_1812_basil_return; - main_1812_basil_return: - assume {:captureState "main_1812_basil_return"} true; + assert (L(mem, R2) ==> Gamma_R1); + mem, Gamma_mem := memory_store32_le(mem, R2, R1[32:0]), gamma_store32(Gamma_mem, R2, Gamma_R1); + assume {:captureState "4195992$0"} true; + goto main_basil_return; + main_basil_return: + assume {:captureState "main_basil_return"} true; return; } diff --git a/src/test/incorrect/basicassign1/gcc_O2/basicassign1.adt b/src/test/incorrect/basicassign1/gcc_O2/basicassign1.adt deleted file mode 100644 index 8ef03bca3..000000000 --- a/src/test/incorrect/basicassign1/gcc_O2/basicassign1.adt +++ /dev/null @@ -1,494 +0,0 @@ -Project(Attrs([Attr("filename","\"gcc_O2/basicassign1.out\""), -Attr("image-specification","(declare abi (name str))\n(declare arch (name str))\n(declare base-address (addr int))\n(declare bias (off int))\n(declare bits (size int))\n(declare code-region (addr int) (size int) (off int))\n(declare code-start (addr int))\n(declare entry-point (addr int))\n(declare external-reference (addr int) (name str))\n(declare format (name str))\n(declare is-executable (flag bool))\n(declare is-little-endian (flag bool))\n(declare llvm:base-address (addr int))\n(declare llvm:code-entry (name str) (off int) (size int))\n(declare llvm:coff-import-library (name str))\n(declare llvm:coff-virtual-section-header (name str) (addr int) (size int))\n(declare llvm:elf-program-header (name str) (off int) (size int))\n(declare llvm:elf-program-header-flags (name str) (ld bool) (r bool) \n (w bool) (x bool))\n(declare llvm:elf-virtual-program-header (name str) (addr int) (size int))\n(declare llvm:entry-point (addr int))\n(declare llvm:macho-symbol (name str) (value int))\n(declare llvm:name-reference (at int) (name str))\n(declare llvm:relocation (at int) (addr int))\n(declare llvm:section-entry (name str) (addr int) (size int) (off int))\n(declare llvm:section-flags (name str) (r bool) (w bool) (x bool))\n(declare llvm:segment-command (name str) (off int) (size int))\n(declare llvm:segment-command-flags (name str) (r bool) (w bool) (x bool))\n(declare llvm:symbol-entry (name str) (addr int) (size int) (off int)\n (value int))\n(declare llvm:virtual-segment-command (name str) (addr int) (size int))\n(declare mapped (addr int) (size int) (off int))\n(declare named-region (addr int) (size int) (name str))\n(declare named-symbol (addr int) (name str))\n(declare require (name str))\n(declare section (addr int) (size int))\n(declare segment (addr int) (size int) (r bool) (w bool) (x bool))\n(declare subarch (name str))\n(declare symbol-chunk (addr int) (size int) (root int))\n(declare symbol-value (addr int) (value int))\n(declare system (name str))\n(declare vendor (name str))\n\n(abi unknown)\n(arch aarch64)\n(base-address 0)\n(bias 0)\n(bits 64)\n(code-region 1876 20 1876)\n(code-region 1536 340 1536)\n(code-region 1440 96 1440)\n(code-region 1408 24 1408)\n(code-start 1652)\n(code-start 1600)\n(code-start 1536)\n(entry-point 1600)\n(external-reference 69592 _ITM_deregisterTMCloneTable)\n(external-reference 69600 __cxa_finalize)\n(external-reference 69608 __gmon_start__)\n(external-reference 69624 _ITM_registerTMCloneTable)\n(external-reference 69552 __libc_start_main)\n(external-reference 69560 __cxa_finalize)\n(external-reference 69568 __gmon_start__)\n(external-reference 69576 abort)\n(format elf)\n(is-executable true)\n(is-little-endian true)\n(llvm:base-address 0)\n(llvm:code-entry abort 0 0)\n(llvm:code-entry __cxa_finalize 0 0)\n(llvm:code-entry __libc_start_main 0 0)\n(llvm:code-entry _init 1408 0)\n(llvm:code-entry main 1536 24)\n(llvm:code-entry _start 1600 52)\n(llvm:code-entry abort@GLIBC_2.17 0 0)\n(llvm:code-entry _fini 1876 0)\n(llvm:code-entry __cxa_finalize@GLIBC_2.17 0 0)\n(llvm:code-entry __libc_start_main@GLIBC_2.34 0 0)\n(llvm:code-entry frame_dummy 1872 0)\n(llvm:code-entry __do_global_dtors_aux 1792 0)\n(llvm:code-entry register_tm_clones 1728 0)\n(llvm:code-entry deregister_tm_clones 1680 0)\n(llvm:code-entry call_weak_fn 1652 20)\n(llvm:code-entry .fini 1876 20)\n(llvm:code-entry .text 1536 340)\n(llvm:code-entry .plt 1440 96)\n(llvm:code-entry .init 1408 24)\n(llvm:elf-program-header 08 3480 616)\n(llvm:elf-program-header 07 0 0)\n(llvm:elf-program-header 06 1900 60)\n(llvm:elf-program-header 05 596 68)\n(llvm:elf-program-header 04 3496 496)\n(llvm:elf-program-header 03 3480 632)\n(llvm:elf-program-header 02 0 2120)\n(llvm:elf-program-header 01 568 27)\n(llvm:elf-program-header 00 64 504)\n(llvm:elf-program-header-flags 08 false true false false)\n(llvm:elf-program-header-flags 07 false true true false)\n(llvm:elf-program-header-flags 06 false true false false)\n(llvm:elf-program-header-flags 05 false true false false)\n(llvm:elf-program-header-flags 04 false true true false)\n(llvm:elf-program-header-flags 03 true true true false)\n(llvm:elf-program-header-flags 02 true true false true)\n(llvm:elf-program-header-flags 01 false true false false)\n(llvm:elf-program-header-flags 00 false true false false)\n(llvm:elf-virtual-program-header 08 69016 616)\n(llvm:elf-virtual-program-header 07 0 0)\n(llvm:elf-virtual-program-header 06 1900 60)\n(llvm:elf-virtual-program-header 05 596 68)\n(llvm:elf-virtual-program-header 04 69032 496)\n(llvm:elf-virtual-program-header 03 69016 648)\n(llvm:elf-virtual-program-header 02 0 2120)\n(llvm:elf-virtual-program-header 01 568 27)\n(llvm:elf-virtual-program-header 00 64 504)\n(llvm:entry-point 1600)\n(llvm:name-reference 69576 abort)\n(llvm:name-reference 69568 __gmon_start__)\n(llvm:name-reference 69560 __cxa_finalize)\n(llvm:name-reference 69552 __libc_start_main)\n(llvm:name-reference 69624 _ITM_registerTMCloneTable)\n(llvm:name-reference 69608 __gmon_start__)\n(llvm:name-reference 69600 __cxa_finalize)\n(llvm:name-reference 69592 _ITM_deregisterTMCloneTable)\n(llvm:section-entry .shstrtab 0 250 6853)\n(llvm:section-entry .strtab 0 557 6296)\n(llvm:section-entry .symtab 0 2136 4160)\n(llvm:section-entry .comment 0 43 4112)\n(llvm:section-entry .bss 69648 16 4112)\n(llvm:section-entry .data 69632 16 4096)\n(llvm:section-entry .got 69528 104 3992)\n(llvm:section-entry .dynamic 69032 496 3496)\n(llvm:section-entry .fini_array 69024 8 3488)\n(llvm:section-entry .init_array 69016 8 3480)\n(llvm:section-entry .eh_frame 1960 160 1960)\n(llvm:section-entry .eh_frame_hdr 1900 60 1900)\n(llvm:section-entry .rodata 1896 4 1896)\n(llvm:section-entry .fini 1876 20 1876)\n(llvm:section-entry .text 1536 340 1536)\n(llvm:section-entry .plt 1440 96 1440)\n(llvm:section-entry .init 1408 24 1408)\n(llvm:section-entry .rela.plt 1312 96 1312)\n(llvm:section-entry .rela.dyn 1120 192 1120)\n(llvm:section-entry .gnu.version_r 1072 48 1072)\n(llvm:section-entry .gnu.version 1054 18 1054)\n(llvm:section-entry .dynstr 912 141 912)\n(llvm:section-entry .dynsym 696 216 696)\n(llvm:section-entry .gnu.hash 664 28 664)\n(llvm:section-entry .note.ABI-tag 632 32 632)\n(llvm:section-entry .note.gnu.build-id 596 36 596)\n(llvm:section-entry .interp 568 27 568)\n(llvm:section-flags .shstrtab true false false)\n(llvm:section-flags .strtab true false false)\n(llvm:section-flags .symtab true false false)\n(llvm:section-flags .comment true false false)\n(llvm:section-flags .bss true true false)\n(llvm:section-flags .data true true false)\n(llvm:section-flags .got true true false)\n(llvm:section-flags .dynamic true true false)\n(llvm:section-flags .fini_array true true false)\n(llvm:section-flags .init_array true true false)\n(llvm:section-flags .eh_frame true false false)\n(llvm:section-flags .eh_frame_hdr true false false)\n(llvm:section-flags .rodata true false false)\n(llvm:section-flags .fini true false true)\n(llvm:section-flags .text true false true)\n(llvm:section-flags .plt true false true)\n(llvm:section-flags .init true false true)\n(llvm:section-flags .rela.plt true false false)\n(llvm:section-flags .rela.dyn true false false)\n(llvm:section-flags .gnu.version_r true false false)\n(llvm:section-flags .gnu.version true false false)\n(llvm:section-flags .dynstr true false false)\n(llvm:section-flags .dynsym true false false)\n(llvm:section-flags .gnu.hash true false false)\n(llvm:section-flags .note.ABI-tag true false false)\n(llvm:section-flags .note.gnu.build-id true false false)\n(llvm:section-flags .interp true false false)\n(llvm:symbol-entry abort 0 0 0 0)\n(llvm:symbol-entry __cxa_finalize 0 0 0 0)\n(llvm:symbol-entry __libc_start_main 0 0 0 0)\n(llvm:symbol-entry _init 1408 0 1408 1408)\n(llvm:symbol-entry main 1536 24 1536 1536)\n(llvm:symbol-entry _start 1600 52 1600 1600)\n(llvm:symbol-entry abort@GLIBC_2.17 0 0 0 0)\n(llvm:symbol-entry _fini 1876 0 1876 1876)\n(llvm:symbol-entry __cxa_finalize@GLIBC_2.17 0 0 0 0)\n(llvm:symbol-entry __libc_start_main@GLIBC_2.34 0 0 0 0)\n(llvm:symbol-entry frame_dummy 1872 0 1872 1872)\n(llvm:symbol-entry __do_global_dtors_aux 1792 0 1792 1792)\n(llvm:symbol-entry register_tm_clones 1728 0 1728 1728)\n(llvm:symbol-entry deregister_tm_clones 1680 0 1680 1680)\n(llvm:symbol-entry call_weak_fn 1652 20 1652 1652)\n(mapped 0 2120 0)\n(mapped 69016 632 3480)\n(named-region 0 2120 02)\n(named-region 69016 648 03)\n(named-region 568 27 .interp)\n(named-region 596 36 .note.gnu.build-id)\n(named-region 632 32 .note.ABI-tag)\n(named-region 664 28 .gnu.hash)\n(named-region 696 216 .dynsym)\n(named-region 912 141 .dynstr)\n(named-region 1054 18 .gnu.version)\n(named-region 1072 48 .gnu.version_r)\n(named-region 1120 192 .rela.dyn)\n(named-region 1312 96 .rela.plt)\n(named-region 1408 24 .init)\n(named-region 1440 96 .plt)\n(named-region 1536 340 .text)\n(named-region 1876 20 .fini)\n(named-region 1896 4 .rodata)\n(named-region 1900 60 .eh_frame_hdr)\n(named-region 1960 160 .eh_frame)\n(named-region 69016 8 .init_array)\n(named-region 69024 8 .fini_array)\n(named-region 69032 496 .dynamic)\n(named-region 69528 104 .got)\n(named-region 69632 16 .data)\n(named-region 69648 16 .bss)\n(named-region 0 43 .comment)\n(named-region 0 2136 .symtab)\n(named-region 0 557 .strtab)\n(named-region 0 250 .shstrtab)\n(named-symbol 1652 call_weak_fn)\n(named-symbol 1680 deregister_tm_clones)\n(named-symbol 1728 register_tm_clones)\n(named-symbol 1792 __do_global_dtors_aux)\n(named-symbol 1872 frame_dummy)\n(named-symbol 0 __libc_start_main@GLIBC_2.34)\n(named-symbol 0 __cxa_finalize@GLIBC_2.17)\n(named-symbol 1876 _fini)\n(named-symbol 0 abort@GLIBC_2.17)\n(named-symbol 1600 _start)\n(named-symbol 1536 main)\n(named-symbol 1408 _init)\n(named-symbol 0 __libc_start_main)\n(named-symbol 0 __cxa_finalize)\n(named-symbol 0 abort)\n(require libc.so.6)\n(section 568 27)\n(section 596 36)\n(section 632 32)\n(section 664 28)\n(section 696 216)\n(section 912 141)\n(section 1054 18)\n(section 1072 48)\n(section 1120 192)\n(section 1312 96)\n(section 1408 24)\n(section 1440 96)\n(section 1536 340)\n(section 1876 20)\n(section 1896 4)\n(section 1900 60)\n(section 1960 160)\n(section 69016 8)\n(section 69024 8)\n(section 69032 496)\n(section 69528 104)\n(section 69632 16)\n(section 69648 16)\n(section 0 43)\n(section 0 2136)\n(section 0 557)\n(section 0 250)\n(segment 0 2120 true false true)\n(segment 69016 648 true true false)\n(subarch v8)\n(symbol-chunk 1652 20 1652)\n(symbol-chunk 1600 52 1600)\n(symbol-chunk 1536 24 1536)\n(symbol-value 1652 1652)\n(symbol-value 1680 1680)\n(symbol-value 1728 1728)\n(symbol-value 1792 1792)\n(symbol-value 1872 1872)\n(symbol-value 1876 1876)\n(symbol-value 1600 1600)\n(symbol-value 1536 1536)\n(symbol-value 1408 1408)\n(symbol-value 0 0)\n(system \"\")\n(vendor \"\")\n"), -Attr("abi-name","\"aarch64-linux-gnu-elf\"")]), -Sections([Section(".shstrtab", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x40\x06\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xc0\x1b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x38\x00\x09\x00\x40\x00\x1c\x00\x1b\x00\x06\x00\x00\x00\x04\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x04\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x48\x08\x00\x00\x00\x00\x00\x00\x48\x08\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x01\x00\x00\x00\x06\x00\x00\x00\x98\x0d\x00\x00\x00\x00\x00\x00\x98\x0d"), -Section(".strtab", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x40\x06\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xc0\x1b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x38\x00\x09\x00\x40\x00\x1c\x00\x1b\x00\x06\x00\x00\x00\x04\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x04\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x48\x08\x00\x00\x00\x00\x00\x00\x48\x08\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x01\x00\x00\x00\x06\x00\x00\x00\x98\x0d\x00\x00\x00\x00\x00\x00\x98\x0d\x01\x00\x00\x00\x00\x00\x98\x0d\x01\x00\x00\x00\x00\x00\x78\x02\x00\x00\x00\x00\x00\x00\x88\x02\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x02\x00\x00\x00\x06\x00\x00\x00\xa8\x0d\x00\x00\x00\x00\x00\x00\xa8\x0d\x01\x00\x00\x00\x00\x00\xa8\x0d\x01\x00\x00\x00\x00\x00\xf0\x01\x00\x00\x00\x00\x00\x00\xf0\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x04\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x50\xe5\x74\x64\x04\x00\x00\x00\x6c\x07\x00\x00\x00\x00\x00\x00\x6c\x07\x00\x00\x00\x00\x00\x00\x6c\x07\x00\x00\x00\x00\x00\x00\x3c\x00\x00\x00\x00\x00\x00\x00\x3c\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x51\xe5\x74\x64\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x52\xe5\x74\x64\x04\x00\x00\x00\x98\x0d\x00\x00\x00\x00\x00\x00\x98\x0d\x01\x00\x00\x00\x00\x00\x98\x0d\x01\x00\x00\x00\x00\x00\x68\x02\x00\x00\x00\x00\x00\x00\x68\x02\x00\x00\x00"), -Section(".comment", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x40\x06\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xc0\x1b\x00"), -Section(".interp", 0x238, "\x2f\x6c\x69\x62\x2f\x6c\x64\x2d\x6c\x69\x6e\x75\x78\x2d\x61\x61\x72\x63\x68\x36\x34\x2e\x73\x6f\x2e\x31\x00"), -Section(".note.gnu.build-id", 0x254, "\x04\x00\x00\x00\x14\x00\x00\x00\x03\x00\x00\x00\x47\x4e\x55\x00\x9e\x40\x85\x86\x16\x04\x49\x66\xca\xa1\x49\x00\x0b\xca\xc0\x3f\x6b\x8b\x4b\x30"), -Section(".note.ABI-tag", 0x278, "\x04\x00\x00\x00\x10\x00\x00\x00\x01\x00\x00\x00\x47\x4e\x55\x00\x00\x00\x00\x00\x03\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00"), -Section(".gnu.hash", 0x298, "\x01\x00\x00\x00\x01\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".dynsym", 0x2B8, "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x0b\x00\x80\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x16\x00\x00\x10\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x48\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x22\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x22\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x73\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".dynstr", 0x390, "\x00\x5f\x5f\x63\x78\x61\x5f\x66\x69\x6e\x61\x6c\x69\x7a\x65\x00\x5f\x5f\x6c\x69\x62\x63\x5f\x73\x74\x61\x72\x74\x5f\x6d\x61\x69\x6e\x00\x61\x62\x6f\x72\x74\x00\x6c\x69\x62\x63\x2e\x73\x6f\x2e\x36\x00\x47\x4c\x49\x42\x43\x5f\x32\x2e\x31\x37\x00\x47\x4c\x49\x42\x43\x5f\x32\x2e\x33\x34\x00\x5f\x49\x54\x4d\x5f\x64\x65\x72\x65\x67\x69\x73\x74\x65\x72\x54\x4d\x43\x6c\x6f\x6e\x65\x54\x61\x62\x6c\x65\x00\x5f\x5f\x67\x6d\x6f\x6e\x5f\x73\x74\x61\x72\x74\x5f\x5f\x00\x5f\x49\x54\x4d\x5f\x72\x65\x67\x69\x73\x74\x65\x72\x54\x4d\x43\x6c\x6f\x6e\x65\x54\x61\x62\x6c\x65\x00"), -Section(".gnu.version", 0x41E, "\x00\x00\x00\x00\x00\x00\x02\x00\x01\x00\x03\x00\x01\x00\x03\x00\x01\x00"), -Section(".gnu.version_r", 0x430, "\x01\x00\x02\x00\x28\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x97\x91\x96\x06\x00\x00\x03\x00\x32\x00\x00\x00\x10\x00\x00\x00\xb4\x91\x96\x06\x00\x00\x02\x00\x3d\x00\x00\x00\x00\x00\x00\x00"), -Section(".rela.dyn", 0x460, "\x98\x0d\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x50\x07\x00\x00\x00\x00\x00\x00\xa0\x0d\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\xf0\x0f\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x00\x06\x00\x00\x00\x00\x00\x00\x08\x10\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x08\x10\x01\x00\x00\x00\x00\x00\xd8\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe0\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe8\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xf8\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".rela.plt", 0x520, "\xb0\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xb8\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xc0\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xc8\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".init", 0x580, "\x1f\x20\x03\xd5\xfd\x7b\xbf\xa9\xfd\x03\x00\x91\x3a\x00\x00\x94\xfd\x7b\xc1\xa8\xc0\x03\x5f\xd6"), -Section(".plt", 0x5A0, "\xf0\x7b\xbf\xa9\x90\x00\x00\x90\x11\xd6\x47\xf9\x10\xa2\x3e\x91\x20\x02\x1f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x90\x00\x00\x90\x11\xda\x47\xf9\x10\xc2\x3e\x91\x20\x02\x1f\xd6\x90\x00\x00\x90\x11\xde\x47\xf9\x10\xe2\x3e\x91\x20\x02\x1f\xd6\x90\x00\x00\x90\x11\xe2\x47\xf9\x10\x02\x3f\x91\x20\x02\x1f\xd6\x90\x00\x00\x90\x11\xe6\x47\xf9\x10\x22\x3f\x91\x20\x02\x1f\xd6"), -Section(".fini", 0x754, "\x1f\x20\x03\xd5\xfd\x7b\xbf\xa9\xfd\x03\x00\x91\xfd\x7b\xc1\xa8\xc0\x03\x5f\xd6"), -Section(".rodata", 0x768, "\x01\x00\x02\x00"), -Section(".eh_frame_hdr", 0x76C, "\x01\x1b\x03\x3b\x38\x00\x00\x00\x06\x00\x00\x00\x94\xfe\xff\xff\xc4\x00\x00\x00\xd4\xfe\xff\xff\x50\x00\x00\x00\x24\xff\xff\xff\x64\x00\x00\x00\x54\xff\xff\xff\x78\x00\x00\x00\x94\xff\xff\xff\x8c\x00\x00\x00\xe4\xff\xff\xff\xb0\x00\x00\x00"), -Section(".eh_frame", 0x7A8, "\x10\x00\x00\x00\x00\x00\x00\x00\x01\x7a\x52\x00\x04\x78\x1e\x01\x1b\x0c\x1f\x00\x10\x00\x00\x00\x18\x00\x00\x00\x7c\xfe\xff\xff\x34\x00\x00\x00\x00\x41\x07\x1e\x10\x00\x00\x00\x2c\x00\x00\x00\xb8\xfe\xff\xff\x30\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x40\x00\x00\x00\xd4\xfe\xff\xff\x3c\x00\x00\x00\x00\x00\x00\x00\x20\x00\x00\x00\x54\x00\x00\x00\x00\xff\xff\xff\x48\x00\x00\x00\x00\x41\x0e\x20\x9d\x04\x9e\x03\x42\x93\x02\x4e\xde\xdd\xd3\x0e\x00\x00\x00\x00\x10\x00\x00\x00\x78\x00\x00\x00\x2c\xff\xff\xff\x04\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x8c\x00\x00\x00\xc8\xfd\xff\xff\x18\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".fini_array", 0x10DA0, "\x00\x07\x00\x00\x00\x00\x00\x00"), -Section(".dynamic", 0x10DA8, "\x01\x00\x00\x00\x00\x00\x00\x00\x28\x00\x00\x00\x00\x00\x00\x00\x0c\x00\x00\x00\x00\x00\x00\x00\x80\x05\x00\x00\x00\x00\x00\x00\x0d\x00\x00\x00\x00\x00\x00\x00\x54\x07\x00\x00\x00\x00\x00\x00\x19\x00\x00\x00\x00\x00\x00\x00\x98\x0d\x01\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x1a\x00\x00\x00\x00\x00\x00\x00\xa0\x0d\x01\x00\x00\x00\x00\x00\x1c\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\xf5\xfe\xff\x6f\x00\x00\x00\x00\x98\x02\x00\x00\x00\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x90\x03\x00\x00\x00\x00\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\xb8\x02\x00\x00\x00\x00\x00\x00\x0a\x00\x00\x00\x00\x00\x00\x00\x8d\x00\x00\x00\x00\x00\x00\x00\x0b\x00\x00\x00\x00\x00\x00\x00\x18\x00\x00\x00\x00\x00\x00\x00\x15\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x98\x0f\x01\x00\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x60\x00\x00\x00\x00\x00\x00\x00\x14\x00\x00\x00\x00\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x17\x00\x00\x00\x00\x00\x00\x00\x20\x05\x00\x00\x00\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x60\x04\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\xc0\x00\x00\x00\x00\x00\x00\x00\x09\x00\x00\x00\x00\x00\x00\x00\x18\x00\x00\x00\x00\x00\x00\x00\x1e\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\xfb\xff\xff\x6f\x00\x00\x00\x00\x01\x00\x00\x08\x00\x00\x00\x00\xfe\xff\xff\x6f\x00\x00\x00\x00\x30\x04\x00\x00\x00\x00\x00\x00\xff\xff\xff\x6f\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\xf0\xff\xff\x6f\x00\x00\x00\x00\x1e\x04\x00\x00\x00\x00\x00\x00\xf9\xff\xff\x6f\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".init_array", 0x10D98, "\x50\x07\x00\x00\x00\x00\x00\x00"), -Section(".got", 0x10F98, "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xa0\x05\x00\x00\x00\x00\x00\x00\xa0\x05\x00\x00\x00\x00\x00\x00\xa0\x05\x00\x00\x00\x00\x00\x00\xa0\x05\x00\x00\x00\x00\x00\x00\xa8\x0d\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".data", 0x11000, "\x00\x00\x00\x00\x00\x00\x00\x00\x08\x10\x01\x00\x00\x00\x00\x00"), -Section(".text", 0x600, "\x81\x00\x00\xb0\x22\x50\x00\x91\x00\x00\x80\x52\x42\x04\x40\xb9\x22\x14\x00\xb9\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1d\x00\x80\xd2\x1e\x00\x80\xd2\xe5\x03\x00\xaa\xe1\x03\x40\xf9\xe2\x23\x00\x91\xe6\x03\x00\x91\x80\x00\x00\x90\x00\xf8\x47\xf9\x03\x00\x80\xd2\x04\x00\x80\xd2\xd5\xff\xff\x97\xe0\xff\xff\x97\x80\x00\x00\x90\x00\xf4\x47\xf9\x40\x00\x00\xb4\xd8\xff\xff\x17\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x80\x00\x00\xb0\x00\x40\x00\x91\x81\x00\x00\xb0\x21\x40\x00\x91\x3f\x00\x00\xeb\xc0\x00\x00\x54\x81\x00\x00\x90\x21\xec\x47\xf9\x61\x00\x00\xb4\xf0\x03\x01\xaa\x00\x02\x1f\xd6\xc0\x03\x5f\xd6\x80\x00\x00\xb0\x00\x40\x00\x91\x81\x00\x00\xb0\x21\x40\x00\x91\x21\x00\x00\xcb\x22\xfc\x7f\xd3\x41\x0c\x81\x8b\x21\xfc\x41\x93\xc1\x00\x00\xb4\x82\x00\x00\x90\x42\xfc\x47\xf9\x62\x00\x00\xb4\xf0\x03\x02\xaa\x00\x02\x1f\xd6\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\xfd\x7b\xbe\xa9\xfd\x03\x00\x91\xf3\x0b\x00\xf9\x93\x00\x00\xb0\x60\x42\x40\x39\x40\x01\x00\x35\x80\x00\x00\x90\x00\xf0\x47\xf9\x80\x00\x00\xb4\x80\x00\x00\xb0\x00\x04\x40\xf9\xa9\xff\xff\x97\xd8\xff\xff\x97\x20\x00\x80\x52\x60\x42\x00\x39\xf3\x0b\x40\xf9\xfd\x7b\xc2\xa8\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\xdc\xff\xff\x17")]), -Memmap([Annotation(Region(0x0,0x847), Attr("segment","02 0 2120")), -Annotation(Region(0x600,0x617), Attr("symbol","\"main\"")), -Annotation(Region(0x0,0xF9), Attr("section","\".shstrtab\"")), -Annotation(Region(0x0,0x22C), Attr("section","\".strtab\"")), -Annotation(Region(0x0,0x2A), Attr("section","\".comment\"")), -Annotation(Region(0x238,0x252), Attr("section","\".interp\"")), -Annotation(Region(0x254,0x277), Attr("section","\".note.gnu.build-id\"")), -Annotation(Region(0x278,0x297), Attr("section","\".note.ABI-tag\"")), -Annotation(Region(0x298,0x2B3), Attr("section","\".gnu.hash\"")), -Annotation(Region(0x2B8,0x38F), Attr("section","\".dynsym\"")), -Annotation(Region(0x390,0x41C), Attr("section","\".dynstr\"")), -Annotation(Region(0x41E,0x42F), Attr("section","\".gnu.version\"")), -Annotation(Region(0x430,0x45F), Attr("section","\".gnu.version_r\"")), -Annotation(Region(0x460,0x51F), Attr("section","\".rela.dyn\"")), -Annotation(Region(0x520,0x57F), Attr("section","\".rela.plt\"")), -Annotation(Region(0x580,0x597), Attr("section","\".init\"")), -Annotation(Region(0x5A0,0x5FF), Attr("section","\".plt\"")), -Annotation(Region(0x580,0x597), Attr("code-region","()")), -Annotation(Region(0x5A0,0x5FF), Attr("code-region","()")), -Annotation(Region(0x600,0x617), Attr("symbol-info","main 0x600 24")), -Annotation(Region(0x640,0x673), Attr("symbol","\"_start\"")), -Annotation(Region(0x640,0x673), Attr("symbol-info","_start 0x640 52")), -Annotation(Region(0x674,0x687), Attr("symbol","\"call_weak_fn\"")), -Annotation(Region(0x674,0x687), Attr("symbol-info","call_weak_fn 0x674 20")), -Annotation(Region(0x754,0x767), Attr("section","\".fini\"")), -Annotation(Region(0x768,0x76B), Attr("section","\".rodata\"")), -Annotation(Region(0x76C,0x7A7), Attr("section","\".eh_frame_hdr\"")), -Annotation(Region(0x7A8,0x847), Attr("section","\".eh_frame\"")), -Annotation(Region(0x10D98,0x1100F), Attr("segment","03 0x10D98 648")), -Annotation(Region(0x10DA0,0x10DA7), Attr("section","\".fini_array\"")), -Annotation(Region(0x10DA8,0x10F97), Attr("section","\".dynamic\"")), -Annotation(Region(0x10D98,0x10D9F), Attr("section","\".init_array\"")), -Annotation(Region(0x10F98,0x10FFF), Attr("section","\".got\"")), -Annotation(Region(0x11000,0x1100F), Attr("section","\".data\"")), -Annotation(Region(0x600,0x753), Attr("section","\".text\"")), -Annotation(Region(0x600,0x753), Attr("code-region","()")), -Annotation(Region(0x754,0x767), Attr("code-region","()"))]), -Program(Tid(1_483, "%000005cb"), Attrs([]), - Subs([Sub(Tid(1_461, "@__cxa_finalize"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x5D0"), -Attr("stub","()")]), "__cxa_finalize", Args([Arg(Tid(1_484, "%000005cc"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("__cxa_finalize_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(857, "@__cxa_finalize"), - Attrs([Attr("address","0x5D0")]), Phis([]), -Defs([Def(Tid(1_105, "%00000451"), Attrs([Attr("address","0x5D0"), -Attr("insn","adrp x16, #65536")]), Var("R16",Imm(64)), Int(65536,64)), -Def(Tid(1_112, "%00000458"), Attrs([Attr("address","0x5D4"), -Attr("insn","ldr x17, [x16, #0xfb8]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(4024,64)),LittleEndian(),64)), -Def(Tid(1_118, "%0000045e"), Attrs([Attr("address","0x5D8"), -Attr("insn","add x16, x16, #0xfb8")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(4024,64)))]), Jmps([Call(Tid(1_123, "%00000463"), - Attrs([Attr("address","0x5DC"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), -Sub(Tid(1_462, "@__do_global_dtors_aux"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x700")]), - "__do_global_dtors_aux", Args([Arg(Tid(1_485, "%000005cd"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("__do_global_dtors_aux_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(710, "@__do_global_dtors_aux"), - Attrs([Attr("address","0x700")]), Phis([]), Defs([Def(Tid(714, "%000002ca"), - Attrs([Attr("address","0x700"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("#3",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(18446744073709551584,64))), -Def(Tid(720, "%000002d0"), Attrs([Attr("address","0x700"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("#3",Imm(64)),Var("R29",Imm(64)),LittleEndian(),64)), -Def(Tid(726, "%000002d6"), Attrs([Attr("address","0x700"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("#3",Imm(64)),Int(8,64)),Var("R30",Imm(64)),LittleEndian(),64)), -Def(Tid(730, "%000002da"), Attrs([Attr("address","0x700"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("R31",Imm(64)), -Var("#3",Imm(64))), Def(Tid(736, "%000002e0"), - Attrs([Attr("address","0x704"), Attr("insn","mov x29, sp")]), - Var("R29",Imm(64)), Var("R31",Imm(64))), Def(Tid(744, "%000002e8"), - Attrs([Attr("address","0x708"), Attr("insn","str x19, [sp, #0x10]")]), - Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(16,64)),Var("R19",Imm(64)),LittleEndian(),64)), -Def(Tid(749, "%000002ed"), Attrs([Attr("address","0x70C"), -Attr("insn","adrp x19, #69632")]), Var("R19",Imm(64)), Int(69632,64)), -Def(Tid(756, "%000002f4"), Attrs([Attr("address","0x710"), -Attr("insn","ldrb w0, [x19, #0x10]")]), Var("R0",Imm(64)), -UNSIGNED(64,Load(Var("mem",Mem(64,8)),PLUS(Var("R19",Imm(64)),Int(16,64)),LittleEndian(),8)))]), -Jmps([Goto(Tid(763, "%000002fb"), Attrs([Attr("address","0x714"), -Attr("insn","cbnz w0, #0x28")]), - NEQ(Extract(31,0,Var("R0",Imm(64))),Int(0,32)), -Direct(Tid(761, "%000002f9"))), Goto(Tid(1_463, "%000005b7"), Attrs([]), - Int(1,1), Direct(Tid(802, "%00000322")))])), Blk(Tid(802, "%00000322"), - Attrs([Attr("address","0x718")]), Phis([]), Defs([Def(Tid(805, "%00000325"), - Attrs([Attr("address","0x718"), Attr("insn","adrp x0, #65536")]), - Var("R0",Imm(64)), Int(65536,64)), Def(Tid(812, "%0000032c"), - Attrs([Attr("address","0x71C"), Attr("insn","ldr x0, [x0, #0xfe0]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(4064,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(818, "%00000332"), Attrs([Attr("address","0x720"), -Attr("insn","cbz x0, #0x10")]), EQ(Var("R0",Imm(64)),Int(0,64)), -Direct(Tid(816, "%00000330"))), Goto(Tid(1_464, "%000005b8"), Attrs([]), - Int(1,1), Direct(Tid(841, "%00000349")))])), Blk(Tid(841, "%00000349"), - Attrs([Attr("address","0x724")]), Phis([]), Defs([Def(Tid(844, "%0000034c"), - Attrs([Attr("address","0x724"), Attr("insn","adrp x0, #69632")]), - Var("R0",Imm(64)), Int(69632,64)), Def(Tid(851, "%00000353"), - Attrs([Attr("address","0x728"), Attr("insn","ldr x0, [x0, #0x8]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(856, "%00000358"), Attrs([Attr("address","0x72C"), -Attr("insn","bl #-0x15c")]), Var("R30",Imm(64)), Int(1840,64))]), -Jmps([Call(Tid(859, "%0000035b"), Attrs([Attr("address","0x72C"), -Attr("insn","bl #-0x15c")]), Int(1,1), -(Direct(Tid(1_461, "@__cxa_finalize")),Direct(Tid(816, "%00000330"))))])), -Blk(Tid(816, "%00000330"), Attrs([Attr("address","0x730")]), Phis([]), -Defs([Def(Tid(824, "%00000338"), Attrs([Attr("address","0x730"), -Attr("insn","bl #-0xa0")]), Var("R30",Imm(64)), Int(1844,64))]), -Jmps([Call(Tid(826, "%0000033a"), Attrs([Attr("address","0x730"), -Attr("insn","bl #-0xa0")]), Int(1,1), -(Direct(Tid(1_475, "@deregister_tm_clones")),Direct(Tid(828, "%0000033c"))))])), -Blk(Tid(828, "%0000033c"), Attrs([Attr("address","0x734")]), Phis([]), -Defs([Def(Tid(831, "%0000033f"), Attrs([Attr("address","0x734"), -Attr("insn","mov w0, #0x1")]), Var("R0",Imm(64)), Int(1,64)), -Def(Tid(839, "%00000347"), Attrs([Attr("address","0x738"), -Attr("insn","strb w0, [x19, #0x10]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R19",Imm(64)),Int(16,64)),Extract(7,0,Var("R0",Imm(64))),LittleEndian(),8))]), -Jmps([Goto(Tid(1_465, "%000005b9"), Attrs([]), Int(1,1), -Direct(Tid(761, "%000002f9")))])), Blk(Tid(761, "%000002f9"), - Attrs([Attr("address","0x73C")]), Phis([]), Defs([Def(Tid(771, "%00000303"), - Attrs([Attr("address","0x73C"), Attr("insn","ldr x19, [sp, #0x10]")]), - Var("R19",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(16,64)),LittleEndian(),64)), -Def(Tid(778, "%0000030a"), Attrs([Attr("address","0x740"), -Attr("insn","ldp x29, x30, [sp], #0x20")]), Var("R29",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(783, "%0000030f"), Attrs([Attr("address","0x740"), -Attr("insn","ldp x29, x30, [sp], #0x20")]), Var("R30",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(787, "%00000313"), Attrs([Attr("address","0x740"), -Attr("insn","ldp x29, x30, [sp], #0x20")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(32,64)))]), Jmps([Call(Tid(792, "%00000318"), - Attrs([Attr("address","0x744"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), Sub(Tid(1_466, "@__libc_start_main"), - Attrs([Attr("c.proto","signed (*)(signed (*)(signed , char** , char** );* main, signed , char** , \nvoid* auxv)"), -Attr("address","0x5C0"), Attr("stub","()")]), "__libc_start_main", - Args([Arg(Tid(1_486, "%000005ce"), - Attrs([Attr("c.layout","**[ : 64]"), -Attr("c.data","Top:u64 ptr ptr"), -Attr("c.type","signed (*)(signed , char** , char** );*")]), - Var("__libc_start_main_main",Imm(64)), Var("R0",Imm(64)), In()), -Arg(Tid(1_487, "%000005cf"), Attrs([Attr("c.layout","[signed : 32]"), -Attr("c.data","Top:u32"), Attr("c.type","signed")]), - Var("__libc_start_main_arg2",Imm(32)), LOW(32,Var("R1",Imm(64))), In()), -Arg(Tid(1_488, "%000005d0"), Attrs([Attr("c.layout","**[char : 8]"), -Attr("c.data","Top:u8 ptr ptr"), Attr("c.type","char**")]), - Var("__libc_start_main_arg3",Imm(64)), Var("R2",Imm(64)), Both()), -Arg(Tid(1_489, "%000005d1"), Attrs([Attr("c.layout","*[ : 8]"), -Attr("c.data","{} ptr"), Attr("c.type","void*")]), - Var("__libc_start_main_auxv",Imm(64)), Var("R3",Imm(64)), Both()), -Arg(Tid(1_490, "%000005d2"), Attrs([Attr("c.layout","[signed : 32]"), -Attr("c.data","Top:u32"), Attr("c.type","signed")]), - Var("__libc_start_main_result",Imm(32)), LOW(32,Var("R0",Imm(64))), -Out())]), Blks([Blk(Tid(543, "@__libc_start_main"), - Attrs([Attr("address","0x5C0")]), Phis([]), -Defs([Def(Tid(1_083, "%0000043b"), Attrs([Attr("address","0x5C0"), -Attr("insn","adrp x16, #65536")]), Var("R16",Imm(64)), Int(65536,64)), -Def(Tid(1_090, "%00000442"), Attrs([Attr("address","0x5C4"), -Attr("insn","ldr x17, [x16, #0xfb0]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(4016,64)),LittleEndian(),64)), -Def(Tid(1_096, "%00000448"), Attrs([Attr("address","0x5C8"), -Attr("insn","add x16, x16, #0xfb0")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(4016,64)))]), Jmps([Call(Tid(1_101, "%0000044d"), - Attrs([Attr("address","0x5CC"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), Sub(Tid(1_467, "@_fini"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x754")]), - "_fini", Args([Arg(Tid(1_491, "%000005d3"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("_fini_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(31, "@_fini"), - Attrs([Attr("address","0x754")]), Phis([]), Defs([Def(Tid(37, "%00000025"), - Attrs([Attr("address","0x758"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("#0",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(18446744073709551600,64))), -Def(Tid(43, "%0000002b"), Attrs([Attr("address","0x758"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("#0",Imm(64)),Var("R29",Imm(64)),LittleEndian(),64)), -Def(Tid(49, "%00000031"), Attrs([Attr("address","0x758"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("#0",Imm(64)),Int(8,64)),Var("R30",Imm(64)),LittleEndian(),64)), -Def(Tid(53, "%00000035"), Attrs([Attr("address","0x758"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("R31",Imm(64)), -Var("#0",Imm(64))), Def(Tid(59, "%0000003b"), Attrs([Attr("address","0x75C"), -Attr("insn","mov x29, sp")]), Var("R29",Imm(64)), Var("R31",Imm(64))), -Def(Tid(66, "%00000042"), Attrs([Attr("address","0x760"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R29",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(71, "%00000047"), Attrs([Attr("address","0x760"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R30",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(75, "%0000004b"), Attrs([Attr("address","0x760"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(16,64)))]), Jmps([Call(Tid(80, "%00000050"), - Attrs([Attr("address","0x764"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), Sub(Tid(1_468, "@_init"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x580")]), - "_init", Args([Arg(Tid(1_492, "%000005d4"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("_init_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(1_287, "@_init"), - Attrs([Attr("address","0x580")]), Phis([]), -Defs([Def(Tid(1_293, "%0000050d"), Attrs([Attr("address","0x584"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("#5",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(18446744073709551600,64))), -Def(Tid(1_299, "%00000513"), Attrs([Attr("address","0x584"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("#5",Imm(64)),Var("R29",Imm(64)),LittleEndian(),64)), -Def(Tid(1_305, "%00000519"), Attrs([Attr("address","0x584"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("#5",Imm(64)),Int(8,64)),Var("R30",Imm(64)),LittleEndian(),64)), -Def(Tid(1_309, "%0000051d"), Attrs([Attr("address","0x584"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("R31",Imm(64)), -Var("#5",Imm(64))), Def(Tid(1_315, "%00000523"), - Attrs([Attr("address","0x588"), Attr("insn","mov x29, sp")]), - Var("R29",Imm(64)), Var("R31",Imm(64))), Def(Tid(1_320, "%00000528"), - Attrs([Attr("address","0x58C"), Attr("insn","bl #0xe8")]), - Var("R30",Imm(64)), Int(1424,64))]), Jmps([Call(Tid(1_322, "%0000052a"), - Attrs([Attr("address","0x58C"), Attr("insn","bl #0xe8")]), Int(1,1), -(Direct(Tid(1_473, "@call_weak_fn")),Direct(Tid(1_324, "%0000052c"))))])), -Blk(Tid(1_324, "%0000052c"), Attrs([Attr("address","0x590")]), Phis([]), -Defs([Def(Tid(1_329, "%00000531"), Attrs([Attr("address","0x590"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R29",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(1_334, "%00000536"), Attrs([Attr("address","0x590"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R30",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(1_338, "%0000053a"), Attrs([Attr("address","0x590"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(16,64)))]), Jmps([Call(Tid(1_343, "%0000053f"), - Attrs([Attr("address","0x594"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), Sub(Tid(1_469, "@_start"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x640"), -Attr("entry-point","()")]), "_start", Args([Arg(Tid(1_493, "%000005d5"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("_start_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(480, "@_start"), - Attrs([Attr("address","0x640")]), Phis([]), Defs([Def(Tid(485, "%000001e5"), - Attrs([Attr("address","0x644"), Attr("insn","mov x29, #0x0")]), - Var("R29",Imm(64)), Int(0,64)), Def(Tid(490, "%000001ea"), - Attrs([Attr("address","0x648"), Attr("insn","mov x30, #0x0")]), - Var("R30",Imm(64)), Int(0,64)), Def(Tid(496, "%000001f0"), - Attrs([Attr("address","0x64C"), Attr("insn","mov x5, x0")]), - Var("R5",Imm(64)), Var("R0",Imm(64))), Def(Tid(503, "%000001f7"), - Attrs([Attr("address","0x650"), Attr("insn","ldr x1, [sp]")]), - Var("R1",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(509, "%000001fd"), Attrs([Attr("address","0x654"), -Attr("insn","add x2, sp, #0x8")]), Var("R2",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(8,64))), Def(Tid(515, "%00000203"), - Attrs([Attr("address","0x658"), Attr("insn","mov x6, sp")]), - Var("R6",Imm(64)), Var("R31",Imm(64))), Def(Tid(520, "%00000208"), - Attrs([Attr("address","0x65C"), Attr("insn","adrp x0, #65536")]), - Var("R0",Imm(64)), Int(65536,64)), Def(Tid(527, "%0000020f"), - Attrs([Attr("address","0x660"), Attr("insn","ldr x0, [x0, #0xff0]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(4080,64)),LittleEndian(),64)), -Def(Tid(532, "%00000214"), Attrs([Attr("address","0x664"), -Attr("insn","mov x3, #0x0")]), Var("R3",Imm(64)), Int(0,64)), -Def(Tid(537, "%00000219"), Attrs([Attr("address","0x668"), -Attr("insn","mov x4, #0x0")]), Var("R4",Imm(64)), Int(0,64)), -Def(Tid(542, "%0000021e"), Attrs([Attr("address","0x66C"), -Attr("insn","bl #-0xac")]), Var("R30",Imm(64)), Int(1648,64))]), -Jmps([Call(Tid(545, "%00000221"), Attrs([Attr("address","0x66C"), -Attr("insn","bl #-0xac")]), Int(1,1), -(Direct(Tid(1_466, "@__libc_start_main")),Direct(Tid(547, "%00000223"))))])), -Blk(Tid(547, "%00000223"), Attrs([Attr("address","0x670")]), Phis([]), -Defs([Def(Tid(550, "%00000226"), Attrs([Attr("address","0x670"), -Attr("insn","bl #-0x80")]), Var("R30",Imm(64)), Int(1652,64))]), -Jmps([Call(Tid(553, "%00000229"), Attrs([Attr("address","0x670"), -Attr("insn","bl #-0x80")]), Int(1,1), -(Direct(Tid(1_472, "@abort")),Direct(Tid(1_470, "%000005be"))))])), -Blk(Tid(1_470, "%000005be"), Attrs([]), Phis([]), Defs([]), -Jmps([Call(Tid(1_471, "%000005bf"), Attrs([]), Int(1,1), -(Direct(Tid(1_473, "@call_weak_fn")),))]))])), Sub(Tid(1_472, "@abort"), - Attrs([Attr("noreturn","()"), Attr("c.proto","void (*)(void)"), -Attr("address","0x5F0"), Attr("stub","()")]), "abort", Args([]), -Blks([Blk(Tid(551, "@abort"), Attrs([Attr("address","0x5F0")]), Phis([]), -Defs([Def(Tid(1_149, "%0000047d"), Attrs([Attr("address","0x5F0"), -Attr("insn","adrp x16, #65536")]), Var("R16",Imm(64)), Int(65536,64)), -Def(Tid(1_156, "%00000484"), Attrs([Attr("address","0x5F4"), -Attr("insn","ldr x17, [x16, #0xfc8]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(4040,64)),LittleEndian(),64)), -Def(Tid(1_162, "%0000048a"), Attrs([Attr("address","0x5F8"), -Attr("insn","add x16, x16, #0xfc8")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(4040,64)))]), Jmps([Call(Tid(1_167, "%0000048f"), - Attrs([Attr("address","0x5FC"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), Sub(Tid(1_473, "@call_weak_fn"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x674")]), - "call_weak_fn", Args([Arg(Tid(1_494, "%000005d6"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("call_weak_fn_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(555, "@call_weak_fn"), - Attrs([Attr("address","0x674")]), Phis([]), Defs([Def(Tid(558, "%0000022e"), - Attrs([Attr("address","0x674"), Attr("insn","adrp x0, #65536")]), - Var("R0",Imm(64)), Int(65536,64)), Def(Tid(565, "%00000235"), - Attrs([Attr("address","0x678"), Attr("insn","ldr x0, [x0, #0xfe8]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(4072,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(571, "%0000023b"), Attrs([Attr("address","0x67C"), -Attr("insn","cbz x0, #0x8")]), EQ(Var("R0",Imm(64)),Int(0,64)), -Direct(Tid(569, "%00000239"))), Goto(Tid(1_474, "%000005c2"), Attrs([]), - Int(1,1), Direct(Tid(921, "%00000399")))])), Blk(Tid(569, "%00000239"), - Attrs([Attr("address","0x684")]), Phis([]), Defs([]), -Jmps([Call(Tid(577, "%00000241"), Attrs([Attr("address","0x684"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))])), -Blk(Tid(921, "%00000399"), Attrs([Attr("address","0x680")]), Phis([]), -Defs([]), Jmps([Goto(Tid(924, "%0000039c"), Attrs([Attr("address","0x680"), -Attr("insn","b #-0xa0")]), Int(1,1), Direct(Tid(922, "@__gmon_start__")))])), -Blk(Tid(922, "@__gmon_start__"), Attrs([Attr("address","0x5E0")]), Phis([]), -Defs([Def(Tid(1_127, "%00000467"), Attrs([Attr("address","0x5E0"), -Attr("insn","adrp x16, #65536")]), Var("R16",Imm(64)), Int(65536,64)), -Def(Tid(1_134, "%0000046e"), Attrs([Attr("address","0x5E4"), -Attr("insn","ldr x17, [x16, #0xfc0]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(4032,64)),LittleEndian(),64)), -Def(Tid(1_140, "%00000474"), Attrs([Attr("address","0x5E8"), -Attr("insn","add x16, x16, #0xfc0")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(4032,64)))]), Jmps([Call(Tid(1_145, "%00000479"), - Attrs([Attr("address","0x5EC"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), -Sub(Tid(1_475, "@deregister_tm_clones"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x690")]), - "deregister_tm_clones", Args([Arg(Tid(1_495, "%000005d7"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("deregister_tm_clones_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(583, "@deregister_tm_clones"), - Attrs([Attr("address","0x690")]), Phis([]), Defs([Def(Tid(586, "%0000024a"), - Attrs([Attr("address","0x690"), Attr("insn","adrp x0, #69632")]), - Var("R0",Imm(64)), Int(69632,64)), Def(Tid(592, "%00000250"), - Attrs([Attr("address","0x694"), Attr("insn","add x0, x0, #0x10")]), - Var("R0",Imm(64)), PLUS(Var("R0",Imm(64)),Int(16,64))), -Def(Tid(597, "%00000255"), Attrs([Attr("address","0x698"), -Attr("insn","adrp x1, #69632")]), Var("R1",Imm(64)), Int(69632,64)), -Def(Tid(603, "%0000025b"), Attrs([Attr("address","0x69C"), -Attr("insn","add x1, x1, #0x10")]), Var("R1",Imm(64)), -PLUS(Var("R1",Imm(64)),Int(16,64))), Def(Tid(609, "%00000261"), - Attrs([Attr("address","0x6A0"), Attr("insn","cmp x1, x0")]), - Var("#1",Imm(64)), NOT(Var("R0",Imm(64)))), Def(Tid(614, "%00000266"), - Attrs([Attr("address","0x6A0"), Attr("insn","cmp x1, x0")]), - Var("#2",Imm(64)), PLUS(Var("R1",Imm(64)),NOT(Var("R0",Imm(64))))), -Def(Tid(620, "%0000026c"), Attrs([Attr("address","0x6A0"), -Attr("insn","cmp x1, x0")]), Var("VF",Imm(1)), -NEQ(SIGNED(65,PLUS(Var("#2",Imm(64)),Int(1,64))),PLUS(PLUS(SIGNED(65,Var("R1",Imm(64))),SIGNED(65,Var("#1",Imm(64)))),Int(1,65)))), -Def(Tid(626, "%00000272"), Attrs([Attr("address","0x6A0"), -Attr("insn","cmp x1, x0")]), Var("CF",Imm(1)), -NEQ(UNSIGNED(65,PLUS(Var("#2",Imm(64)),Int(1,64))),PLUS(PLUS(UNSIGNED(65,Var("R1",Imm(64))),UNSIGNED(65,Var("#1",Imm(64)))),Int(1,65)))), -Def(Tid(630, "%00000276"), Attrs([Attr("address","0x6A0"), -Attr("insn","cmp x1, x0")]), Var("ZF",Imm(1)), -EQ(PLUS(Var("#2",Imm(64)),Int(1,64)),Int(0,64))), Def(Tid(634, "%0000027a"), - Attrs([Attr("address","0x6A0"), Attr("insn","cmp x1, x0")]), - Var("NF",Imm(1)), Extract(63,63,PLUS(Var("#2",Imm(64)),Int(1,64))))]), -Jmps([Goto(Tid(640, "%00000280"), Attrs([Attr("address","0x6A4"), -Attr("insn","b.eq #0x18")]), EQ(Var("ZF",Imm(1)),Int(1,1)), -Direct(Tid(638, "%0000027e"))), Goto(Tid(1_476, "%000005c4"), Attrs([]), - Int(1,1), Direct(Tid(891, "%0000037b")))])), Blk(Tid(891, "%0000037b"), - Attrs([Attr("address","0x6A8")]), Phis([]), Defs([Def(Tid(894, "%0000037e"), - Attrs([Attr("address","0x6A8"), Attr("insn","adrp x1, #65536")]), - Var("R1",Imm(64)), Int(65536,64)), Def(Tid(901, "%00000385"), - Attrs([Attr("address","0x6AC"), Attr("insn","ldr x1, [x1, #0xfd8]")]), - Var("R1",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R1",Imm(64)),Int(4056,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(906, "%0000038a"), Attrs([Attr("address","0x6B0"), -Attr("insn","cbz x1, #0xc")]), EQ(Var("R1",Imm(64)),Int(0,64)), -Direct(Tid(638, "%0000027e"))), Goto(Tid(1_477, "%000005c5"), Attrs([]), - Int(1,1), Direct(Tid(910, "%0000038e")))])), Blk(Tid(638, "%0000027e"), - Attrs([Attr("address","0x6BC")]), Phis([]), Defs([]), -Jmps([Call(Tid(646, "%00000286"), Attrs([Attr("address","0x6BC"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))])), -Blk(Tid(910, "%0000038e"), Attrs([Attr("address","0x6B4")]), Phis([]), -Defs([Def(Tid(914, "%00000392"), Attrs([Attr("address","0x6B4"), -Attr("insn","mov x16, x1")]), Var("R16",Imm(64)), Var("R1",Imm(64)))]), -Jmps([Call(Tid(919, "%00000397"), Attrs([Attr("address","0x6B8"), -Attr("insn","br x16")]), Int(1,1), (Indirect(Var("R16",Imm(64))),))]))])), -Sub(Tid(1_478, "@frame_dummy"), Attrs([Attr("c.proto","signed (*)(void)"), -Attr("address","0x750")]), "frame_dummy", Args([Arg(Tid(1_496, "%000005d8"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("frame_dummy_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(798, "@frame_dummy"), - Attrs([Attr("address","0x750")]), Phis([]), Defs([]), -Jmps([Call(Tid(800, "%00000320"), Attrs([Attr("address","0x750"), -Attr("insn","b #-0x90")]), Int(1,1), -(Direct(Tid(1_480, "@register_tm_clones")),))]))])), Sub(Tid(1_479, "@main"), - Attrs([Attr("c.proto","signed (*)(signed argc, const char** argv)"), -Attr("address","0x600"), Attr("stub","()")]), "main", - Args([Arg(Tid(1_497, "%000005d9"), Attrs([Attr("c.layout","[signed : 32]"), -Attr("c.data","Top:u32"), Attr("c.type","signed")]), - Var("main_argc",Imm(32)), LOW(32,Var("R0",Imm(64))), In()), -Arg(Tid(1_498, "%000005da"), Attrs([Attr("c.layout","**[char : 8]"), -Attr("c.data","Top:u8 ptr ptr"), Attr("c.type"," const char**")]), - Var("main_argv",Imm(64)), Var("R1",Imm(64)), Both()), -Arg(Tid(1_499, "%000005db"), Attrs([Attr("c.layout","[signed : 32]"), -Attr("c.data","Top:u32"), Attr("c.type","signed")]), - Var("main_result",Imm(32)), LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(424, "@main"), Attrs([Attr("address","0x600")]), Phis([]), -Defs([Def(Tid(427, "%000001ab"), Attrs([Attr("address","0x600"), -Attr("insn","adrp x1, #69632")]), Var("R1",Imm(64)), Int(69632,64)), -Def(Tid(433, "%000001b1"), Attrs([Attr("address","0x604"), -Attr("insn","add x2, x1, #0x14")]), Var("R2",Imm(64)), -PLUS(Var("R1",Imm(64)),Int(20,64))), Def(Tid(438, "%000001b6"), - Attrs([Attr("address","0x608"), Attr("insn","mov w0, #0x0")]), - Var("R0",Imm(64)), Int(0,64)), Def(Tid(445, "%000001bd"), - Attrs([Attr("address","0x60C"), Attr("insn","ldr w2, [x2, #0x4]")]), - Var("R2",Imm(64)), -UNSIGNED(64,Load(Var("mem",Mem(64,8)),PLUS(Var("R2",Imm(64)),Int(4,64)),LittleEndian(),32))), -Def(Tid(453, "%000001c5"), Attrs([Attr("address","0x610"), -Attr("insn","str w2, [x1, #0x14]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R1",Imm(64)),Int(20,64)),Extract(31,0,Var("R2",Imm(64))),LittleEndian(),32))]), -Jmps([Call(Tid(458, "%000001ca"), Attrs([Attr("address","0x614"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))]))])), -Sub(Tid(1_480, "@register_tm_clones"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x6C0")]), - "register_tm_clones", Args([Arg(Tid(1_500, "%000005dc"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("register_tm_clones_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(648, "@register_tm_clones"), Attrs([Attr("address","0x6C0")]), - Phis([]), Defs([Def(Tid(651, "%0000028b"), Attrs([Attr("address","0x6C0"), -Attr("insn","adrp x0, #69632")]), Var("R0",Imm(64)), Int(69632,64)), -Def(Tid(657, "%00000291"), Attrs([Attr("address","0x6C4"), -Attr("insn","add x0, x0, #0x10")]), Var("R0",Imm(64)), -PLUS(Var("R0",Imm(64)),Int(16,64))), Def(Tid(662, "%00000296"), - Attrs([Attr("address","0x6C8"), Attr("insn","adrp x1, #69632")]), - Var("R1",Imm(64)), Int(69632,64)), Def(Tid(668, "%0000029c"), - Attrs([Attr("address","0x6CC"), Attr("insn","add x1, x1, #0x10")]), - Var("R1",Imm(64)), PLUS(Var("R1",Imm(64)),Int(16,64))), -Def(Tid(675, "%000002a3"), Attrs([Attr("address","0x6D0"), -Attr("insn","sub x1, x1, x0")]), Var("R1",Imm(64)), -PLUS(PLUS(Var("R1",Imm(64)),NOT(Var("R0",Imm(64)))),Int(1,64))), -Def(Tid(681, "%000002a9"), Attrs([Attr("address","0x6D4"), -Attr("insn","lsr x2, x1, #63")]), Var("R2",Imm(64)), -Concat(Int(0,63),Extract(63,63,Var("R1",Imm(64))))), -Def(Tid(688, "%000002b0"), Attrs([Attr("address","0x6D8"), -Attr("insn","add x1, x2, x1, asr #3")]), Var("R1",Imm(64)), -PLUS(Var("R2",Imm(64)),ARSHIFT(Var("R1",Imm(64)),Int(3,3)))), -Def(Tid(694, "%000002b6"), Attrs([Attr("address","0x6DC"), -Attr("insn","asr x1, x1, #1")]), Var("R1",Imm(64)), -SIGNED(64,Extract(63,1,Var("R1",Imm(64)))))]), -Jmps([Goto(Tid(700, "%000002bc"), Attrs([Attr("address","0x6E0"), -Attr("insn","cbz x1, #0x18")]), EQ(Var("R1",Imm(64)),Int(0,64)), -Direct(Tid(698, "%000002ba"))), Goto(Tid(1_481, "%000005c9"), Attrs([]), - Int(1,1), Direct(Tid(861, "%0000035d")))])), Blk(Tid(861, "%0000035d"), - Attrs([Attr("address","0x6E4")]), Phis([]), Defs([Def(Tid(864, "%00000360"), - Attrs([Attr("address","0x6E4"), Attr("insn","adrp x2, #65536")]), - Var("R2",Imm(64)), Int(65536,64)), Def(Tid(871, "%00000367"), - Attrs([Attr("address","0x6E8"), Attr("insn","ldr x2, [x2, #0xff8]")]), - Var("R2",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R2",Imm(64)),Int(4088,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(876, "%0000036c"), Attrs([Attr("address","0x6EC"), -Attr("insn","cbz x2, #0xc")]), EQ(Var("R2",Imm(64)),Int(0,64)), -Direct(Tid(698, "%000002ba"))), Goto(Tid(1_482, "%000005ca"), Attrs([]), - Int(1,1), Direct(Tid(880, "%00000370")))])), Blk(Tid(698, "%000002ba"), - Attrs([Attr("address","0x6F8")]), Phis([]), Defs([]), -Jmps([Call(Tid(706, "%000002c2"), Attrs([Attr("address","0x6F8"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))])), -Blk(Tid(880, "%00000370"), Attrs([Attr("address","0x6F0")]), Phis([]), -Defs([Def(Tid(884, "%00000374"), Attrs([Attr("address","0x6F0"), -Attr("insn","mov x16, x2")]), Var("R16",Imm(64)), Var("R2",Imm(64)))]), -Jmps([Call(Tid(889, "%00000379"), Attrs([Attr("address","0x6F4"), -Attr("insn","br x16")]), Int(1,1), -(Indirect(Var("R16",Imm(64))),))]))]))]))) \ No newline at end of file diff --git a/src/test/incorrect/basicassign1/gcc_O2/basicassign1.bir b/src/test/incorrect/basicassign1/gcc_O2/basicassign1.bir deleted file mode 100644 index f0e4ba294..000000000 --- a/src/test/incorrect/basicassign1/gcc_O2/basicassign1.bir +++ /dev/null @@ -1,228 +0,0 @@ -000005cb: program -000005b5: sub __cxa_finalize(__cxa_finalize_result) -000005cc: __cxa_finalize_result :: out u32 = low:32[R0] - -00000359: -00000451: R16 := 0x10000 -00000458: R17 := mem[R16 + 0xFB8, el]:u64 -0000045e: R16 := R16 + 0xFB8 -00000463: call R17 with noreturn - -000005b6: sub __do_global_dtors_aux(__do_global_dtors_aux_result) -000005cd: __do_global_dtors_aux_result :: out u32 = low:32[R0] - -000002c6: -000002ca: #3 := R31 - 0x20 -000002d0: mem := mem with [#3, el]:u64 <- R29 -000002d6: mem := mem with [#3 + 8, el]:u64 <- R30 -000002da: R31 := #3 -000002e0: R29 := R31 -000002e8: mem := mem with [R31 + 0x10, el]:u64 <- R19 -000002ed: R19 := 0x11000 -000002f4: R0 := pad:64[mem[R19 + 0x10]] -000002fb: when 31:0[R0] <> 0 goto %000002f9 -000005b7: goto %00000322 - -00000322: -00000325: R0 := 0x10000 -0000032c: R0 := mem[R0 + 0xFE0, el]:u64 -00000332: when R0 = 0 goto %00000330 -000005b8: goto %00000349 - -00000349: -0000034c: R0 := 0x11000 -00000353: R0 := mem[R0 + 8, el]:u64 -00000358: R30 := 0x730 -0000035b: call @__cxa_finalize with return %00000330 - -00000330: -00000338: R30 := 0x734 -0000033a: call @deregister_tm_clones with return %0000033c - -0000033c: -0000033f: R0 := 1 -00000347: mem := mem with [R19 + 0x10] <- 7:0[R0] -000005b9: goto %000002f9 - -000002f9: -00000303: R19 := mem[R31 + 0x10, el]:u64 -0000030a: R29 := mem[R31, el]:u64 -0000030f: R30 := mem[R31 + 8, el]:u64 -00000313: R31 := R31 + 0x20 -00000318: call R30 with noreturn - -000005ba: sub __libc_start_main(__libc_start_main_main, __libc_start_main_arg2, __libc_start_main_arg3, __libc_start_main_auxv, __libc_start_main_result) -000005ce: __libc_start_main_main :: in u64 = R0 -000005cf: __libc_start_main_arg2 :: in u32 = low:32[R1] -000005d0: __libc_start_main_arg3 :: in out u64 = R2 -000005d1: __libc_start_main_auxv :: in out u64 = R3 -000005d2: __libc_start_main_result :: out u32 = low:32[R0] - -0000021f: -0000043b: R16 := 0x10000 -00000442: R17 := mem[R16 + 0xFB0, el]:u64 -00000448: R16 := R16 + 0xFB0 -0000044d: call R17 with noreturn - -000005bb: sub _fini(_fini_result) -000005d3: _fini_result :: out u32 = low:32[R0] - -0000001f: -00000025: #0 := R31 - 0x10 -0000002b: mem := mem with [#0, el]:u64 <- R29 -00000031: mem := mem with [#0 + 8, el]:u64 <- R30 -00000035: R31 := #0 -0000003b: R29 := R31 -00000042: R29 := mem[R31, el]:u64 -00000047: R30 := mem[R31 + 8, el]:u64 -0000004b: R31 := R31 + 0x10 -00000050: call R30 with noreturn - -000005bc: sub _init(_init_result) -000005d4: _init_result :: out u32 = low:32[R0] - -00000507: -0000050d: #5 := R31 - 0x10 -00000513: mem := mem with [#5, el]:u64 <- R29 -00000519: mem := mem with [#5 + 8, el]:u64 <- R30 -0000051d: R31 := #5 -00000523: R29 := R31 -00000528: R30 := 0x590 -0000052a: call @call_weak_fn with return %0000052c - -0000052c: -00000531: R29 := mem[R31, el]:u64 -00000536: R30 := mem[R31 + 8, el]:u64 -0000053a: R31 := R31 + 0x10 -0000053f: call R30 with noreturn - -000005bd: sub _start(_start_result) -000005d5: _start_result :: out u32 = low:32[R0] - -000001e0: -000001e5: R29 := 0 -000001ea: R30 := 0 -000001f0: R5 := R0 -000001f7: R1 := mem[R31, el]:u64 -000001fd: R2 := R31 + 8 -00000203: R6 := R31 -00000208: R0 := 0x10000 -0000020f: R0 := mem[R0 + 0xFF0, el]:u64 -00000214: R3 := 0 -00000219: R4 := 0 -0000021e: R30 := 0x670 -00000221: call @__libc_start_main with return %00000223 - -00000223: -00000226: R30 := 0x674 -00000229: call @abort with return %000005be - -000005be: -000005bf: call @call_weak_fn with noreturn - -000005c0: sub abort() - - -00000227: -0000047d: R16 := 0x10000 -00000484: R17 := mem[R16 + 0xFC8, el]:u64 -0000048a: R16 := R16 + 0xFC8 -0000048f: call R17 with noreturn - -000005c1: sub call_weak_fn(call_weak_fn_result) -000005d6: call_weak_fn_result :: out u32 = low:32[R0] - -0000022b: -0000022e: R0 := 0x10000 -00000235: R0 := mem[R0 + 0xFE8, el]:u64 -0000023b: when R0 = 0 goto %00000239 -000005c2: goto %00000399 - -00000239: -00000241: call R30 with noreturn - -00000399: -0000039c: goto @__gmon_start__ - -0000039a: -00000467: R16 := 0x10000 -0000046e: R17 := mem[R16 + 0xFC0, el]:u64 -00000474: R16 := R16 + 0xFC0 -00000479: call R17 with noreturn - -000005c3: sub deregister_tm_clones(deregister_tm_clones_result) -000005d7: deregister_tm_clones_result :: out u32 = low:32[R0] - -00000247: -0000024a: R0 := 0x11000 -00000250: R0 := R0 + 0x10 -00000255: R1 := 0x11000 -0000025b: R1 := R1 + 0x10 -00000261: #1 := ~R0 -00000266: #2 := R1 + ~R0 -0000026c: VF := extend:65[#2 + 1] <> extend:65[R1] + extend:65[#1] + 1 -00000272: CF := pad:65[#2 + 1] <> pad:65[R1] + pad:65[#1] + 1 -00000276: ZF := #2 + 1 = 0 -0000027a: NF := 63:63[#2 + 1] -00000280: when ZF goto %0000027e -000005c4: goto %0000037b - -0000037b: -0000037e: R1 := 0x10000 -00000385: R1 := mem[R1 + 0xFD8, el]:u64 -0000038a: when R1 = 0 goto %0000027e -000005c5: goto %0000038e - -0000027e: -00000286: call R30 with noreturn - -0000038e: -00000392: R16 := R1 -00000397: call R16 with noreturn - -000005c6: sub frame_dummy(frame_dummy_result) -000005d8: frame_dummy_result :: out u32 = low:32[R0] - -0000031e: -00000320: call @register_tm_clones with noreturn - -000005c7: sub main(main_argc, main_argv, main_result) -000005d9: main_argc :: in u32 = low:32[R0] -000005da: main_argv :: in out u64 = R1 -000005db: main_result :: out u32 = low:32[R0] - -000001a8: -000001ab: R1 := 0x11000 -000001b1: R2 := R1 + 0x14 -000001b6: R0 := 0 -000001bd: R2 := pad:64[mem[R2 + 4, el]:u32] -000001c5: mem := mem with [R1 + 0x14, el]:u32 <- 31:0[R2] -000001ca: call R30 with noreturn - -000005c8: sub register_tm_clones(register_tm_clones_result) -000005dc: register_tm_clones_result :: out u32 = low:32[R0] - -00000288: -0000028b: R0 := 0x11000 -00000291: R0 := R0 + 0x10 -00000296: R1 := 0x11000 -0000029c: R1 := R1 + 0x10 -000002a3: R1 := R1 + ~R0 + 1 -000002a9: R2 := 0.63:63[R1] -000002b0: R1 := R2 + (R1 ~>> 3) -000002b6: R1 := extend:64[63:1[R1]] -000002bc: when R1 = 0 goto %000002ba -000005c9: goto %0000035d - -0000035d: -00000360: R2 := 0x10000 -00000367: R2 := mem[R2 + 0xFF8, el]:u64 -0000036c: when R2 = 0 goto %000002ba -000005ca: goto %00000370 - -000002ba: -000002c2: call R30 with noreturn - -00000370: -00000374: R16 := R2 -00000379: call R16 with noreturn diff --git a/src/test/incorrect/basicassign1/gcc_O2/basicassign1.expected b/src/test/incorrect/basicassign1/gcc_O2/basicassign1.expected index 35b9d81d3..57b3e30f9 100644 --- a/src/test/incorrect/basicassign1/gcc_O2/basicassign1.expected +++ b/src/test/incorrect/basicassign1/gcc_O2/basicassign1.expected @@ -7,7 +7,7 @@ var {:extern} R1: bv64; var {:extern} R2: bv64; var {:extern} mem: [bv64]bv8; const {:extern} $z_addr: bv64; -axiom ($z_addr == 69652bv64); +axiom ($z_addr == 4325400bv64); function {:extern} L(mem$in: [bv64]bv8, index: bv64) returns (bool) { (if (index == $z_addr) then true else false) } @@ -17,6 +17,10 @@ function {:extern} gamma_load32(gammaMap: [bv64]bool, index: bv64) returns (bool (gammaMap[bvadd64(index, 3bv64)] && (gammaMap[bvadd64(index, 2bv64)] && (gammaMap[bvadd64(index, 1bv64)] && gammaMap[index]))) } +function {:extern} gamma_load64(gammaMap: [bv64]bool, index: bv64) returns (bool) { + (gammaMap[bvadd64(index, 7bv64)] && (gammaMap[bvadd64(index, 6bv64)] && (gammaMap[bvadd64(index, 5bv64)] && (gammaMap[bvadd64(index, 4bv64)] && (gammaMap[bvadd64(index, 3bv64)] && (gammaMap[bvadd64(index, 2bv64)] && (gammaMap[bvadd64(index, 1bv64)] && gammaMap[index]))))))) +} + function {:extern} gamma_store32(gammaMap: [bv64]bool, index: bv64, value: bool) returns ([bv64]bool) { gammaMap[index := value][bvadd64(index, 1bv64) := value][bvadd64(index, 2bv64) := value][bvadd64(index, 3bv64) := value] } @@ -38,11 +42,7 @@ procedure {:extern} rely(); modifies Gamma_mem, mem; ensures (Gamma_mem == old(Gamma_mem)); ensures (mem == old(mem)); - free ensures (memory_load32_le(mem, 1896bv64) == 131073bv32); - free ensures (memory_load64_le(mem, 69016bv64) == 1872bv64); - free ensures (memory_load64_le(mem, 69024bv64) == 1792bv64); - free ensures (memory_load64_le(mem, 69616bv64) == 1536bv64); - free ensures (memory_load64_le(mem, 69640bv64) == 69640bv64); + free ensures (memory_load32_le(mem, 4196312bv64) == 131073bv32); procedure {:extern} rely_transitive(); modifies Gamma_mem, mem; @@ -60,40 +60,42 @@ procedure {:extern} rely_reflexive(); procedure {:extern} guarantee_reflexive(); modifies Gamma_mem, mem; -procedure main_1536(); +procedure main(); modifies Gamma_R0, Gamma_R1, Gamma_R2, Gamma_mem, R0, R1, R2, mem; - free requires (memory_load64_le(mem, 69632bv64) == 0bv64); - free requires (memory_load64_le(mem, 69640bv64) == 69640bv64); - free requires (memory_load32_le(mem, 1896bv64) == 131073bv32); - free requires (memory_load64_le(mem, 69016bv64) == 1872bv64); - free requires (memory_load64_le(mem, 69024bv64) == 1792bv64); - free requires (memory_load64_le(mem, 69616bv64) == 1536bv64); - free requires (memory_load64_le(mem, 69640bv64) == 69640bv64); - free ensures (memory_load32_le(mem, 1896bv64) == 131073bv32); - free ensures (memory_load64_le(mem, 69016bv64) == 1872bv64); - free ensures (memory_load64_le(mem, 69024bv64) == 1792bv64); - free ensures (memory_load64_le(mem, 69616bv64) == 1536bv64); - free ensures (memory_load64_le(mem, 69640bv64) == 69640bv64); + free requires (memory_load64_le(mem, 4325376bv64) == 0bv64); + free requires (memory_load64_le(mem, 4325384bv64) == 0bv64); + free requires (memory_load32_le(mem, 4196312bv64) == 131073bv32); + free ensures (memory_load32_le(mem, 4196312bv64) == 131073bv32); -implementation main_1536() +implementation main() { - var Gamma_load18: bool; - var load18: bv32; + var $load$14: bv64; + var $load$15: bv64; + var $load$16: bv32; + var Gamma_$load$14: bool; + var Gamma_$load$15: bool; + var Gamma_$load$16: bool; lmain: assume {:captureState "lmain"} true; - R1, Gamma_R1 := 69632bv64, true; - R2, Gamma_R2 := bvadd64(R1, 20bv64), Gamma_R1; + R1, Gamma_R1 := 4321280bv64, true; + call rely(); + $load$14, Gamma_$load$14 := memory_load64_le(mem, bvadd64(R1, 4080bv64)), (gamma_load64(Gamma_mem, bvadd64(R1, 4080bv64)) || L(mem, bvadd64(R1, 4080bv64))); + R1, Gamma_R1 := $load$14, Gamma_$load$14; R0, Gamma_R0 := 0bv64, true; + R2, Gamma_R2 := 4321280bv64, true; + call rely(); + $load$15, Gamma_$load$15 := memory_load64_le(mem, bvadd64(R2, 4064bv64)), (gamma_load64(Gamma_mem, bvadd64(R2, 4064bv64)) || L(mem, bvadd64(R2, 4064bv64))); + R2, Gamma_R2 := $load$15, Gamma_$load$15; call rely(); - load18, Gamma_load18 := memory_load32_le(mem, bvadd64(R2, 4bv64)), (gamma_load32(Gamma_mem, bvadd64(R2, 4bv64)) || L(mem, bvadd64(R2, 4bv64))); - R2, Gamma_R2 := zero_extend32_32(load18), Gamma_load18; + $load$16, Gamma_$load$16 := memory_load32_le(mem, R1), (gamma_load32(Gamma_mem, R1) || L(mem, R1)); + R1, Gamma_R1 := zero_extend32_32($load$16), Gamma_$load$16; call rely(); - assert (L(mem, bvadd64(R1, 20bv64)) ==> Gamma_R2); - mem, Gamma_mem := memory_store32_le(mem, bvadd64(R1, 20bv64), R2[32:0]), gamma_store32(Gamma_mem, bvadd64(R1, 20bv64), Gamma_R2); - assume {:captureState "%000001c5"} true; - goto main_1536_basil_return; - main_1536_basil_return: - assume {:captureState "main_1536_basil_return"} true; + assert (L(mem, R2) ==> Gamma_R1); + mem, Gamma_mem := memory_store32_le(mem, R2, R1[32:0]), gamma_store32(Gamma_mem, R2, Gamma_R1); + assume {:captureState "%00000260"} true; + goto main_basil_return; + main_basil_return: + assume {:captureState "main_basil_return"} true; return; } diff --git a/src/test/incorrect/basicassign1/gcc_O2/basicassign1.gts b/src/test/incorrect/basicassign1/gcc_O2/basicassign1.gts deleted file mode 100644 index 8863dd32f..000000000 Binary files a/src/test/incorrect/basicassign1/gcc_O2/basicassign1.gts and /dev/null differ diff --git a/src/test/incorrect/basicassign1/gcc_O2/basicassign1.md5sum b/src/test/incorrect/basicassign1/gcc_O2/basicassign1.md5sum new file mode 100644 index 000000000..8ab67ce5b --- /dev/null +++ b/src/test/incorrect/basicassign1/gcc_O2/basicassign1.md5sum @@ -0,0 +1,5 @@ +2b3e42970190a95cabbc19ad27c72f73 incorrect/basicassign1/gcc_O2/a.out +d0200098486e8ffdbf34579d616baf43 incorrect/basicassign1/gcc_O2/basicassign1.adt +5b738b16cfdceca374e7ec5d1dc45d5a incorrect/basicassign1/gcc_O2/basicassign1.bir +c32c21274d303a4391cbf2f958af483e incorrect/basicassign1/gcc_O2/basicassign1.relf +bd3b1e4df2ffa7958c8a7a664791732d incorrect/basicassign1/gcc_O2/basicassign1.gts diff --git a/src/test/incorrect/basicassign1/gcc_O2/basicassign1.relf b/src/test/incorrect/basicassign1/gcc_O2/basicassign1.relf deleted file mode 100644 index 725ca3483..000000000 --- a/src/test/incorrect/basicassign1/gcc_O2/basicassign1.relf +++ /dev/null @@ -1,122 +0,0 @@ - -Relocation section '.rela.dyn' at offset 0x460 contains 8 entries: - Offset Info Type Symbol's Value Symbol's Name + Addend -0000000000010d98 0000000000000403 R_AARCH64_RELATIVE 750 -0000000000010da0 0000000000000403 R_AARCH64_RELATIVE 700 -0000000000010ff0 0000000000000403 R_AARCH64_RELATIVE 600 -0000000000011008 0000000000000403 R_AARCH64_RELATIVE 11008 -0000000000010fd8 0000000400000401 R_AARCH64_GLOB_DAT 0000000000000000 _ITM_deregisterTMCloneTable + 0 -0000000000010fe0 0000000500000401 R_AARCH64_GLOB_DAT 0000000000000000 __cxa_finalize@GLIBC_2.17 + 0 -0000000000010fe8 0000000600000401 R_AARCH64_GLOB_DAT 0000000000000000 __gmon_start__ + 0 -0000000000010ff8 0000000800000401 R_AARCH64_GLOB_DAT 0000000000000000 _ITM_registerTMCloneTable + 0 - -Relocation section '.rela.plt' at offset 0x520 contains 4 entries: - Offset Info Type Symbol's Value Symbol's Name + Addend -0000000000010fb0 0000000300000402 R_AARCH64_JUMP_SLOT 0000000000000000 __libc_start_main@GLIBC_2.34 + 0 -0000000000010fb8 0000000500000402 R_AARCH64_JUMP_SLOT 0000000000000000 __cxa_finalize@GLIBC_2.17 + 0 -0000000000010fc0 0000000600000402 R_AARCH64_JUMP_SLOT 0000000000000000 __gmon_start__ + 0 -0000000000010fc8 0000000700000402 R_AARCH64_JUMP_SLOT 0000000000000000 abort@GLIBC_2.17 + 0 - -Symbol table '.dynsym' contains 9 entries: - Num: Value Size Type Bind Vis Ndx Name - 0: 0000000000000000 0 NOTYPE LOCAL DEFAULT UND - 1: 0000000000000580 0 SECTION LOCAL DEFAULT 11 .init - 2: 0000000000011000 0 SECTION LOCAL DEFAULT 22 .data - 3: 0000000000000000 0 FUNC GLOBAL DEFAULT UND __libc_start_main@GLIBC_2.34 (2) - 4: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_deregisterTMCloneTable - 5: 0000000000000000 0 FUNC WEAK DEFAULT UND __cxa_finalize@GLIBC_2.17 (3) - 6: 0000000000000000 0 NOTYPE WEAK DEFAULT UND __gmon_start__ - 7: 0000000000000000 0 FUNC GLOBAL DEFAULT UND abort@GLIBC_2.17 (3) - 8: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_registerTMCloneTable - -Symbol table '.symtab' contains 89 entries: - Num: Value Size Type Bind Vis Ndx Name - 0: 0000000000000000 0 NOTYPE LOCAL DEFAULT UND - 1: 0000000000000238 0 SECTION LOCAL DEFAULT 1 .interp - 2: 0000000000000254 0 SECTION LOCAL DEFAULT 2 .note.gnu.build-id - 3: 0000000000000278 0 SECTION LOCAL DEFAULT 3 .note.ABI-tag - 4: 0000000000000298 0 SECTION LOCAL DEFAULT 4 .gnu.hash - 5: 00000000000002b8 0 SECTION LOCAL DEFAULT 5 .dynsym - 6: 0000000000000390 0 SECTION LOCAL DEFAULT 6 .dynstr - 7: 000000000000041e 0 SECTION LOCAL DEFAULT 7 .gnu.version - 8: 0000000000000430 0 SECTION LOCAL DEFAULT 8 .gnu.version_r - 9: 0000000000000460 0 SECTION LOCAL DEFAULT 9 .rela.dyn - 10: 0000000000000520 0 SECTION LOCAL DEFAULT 10 .rela.plt - 11: 0000000000000580 0 SECTION LOCAL DEFAULT 11 .init - 12: 00000000000005a0 0 SECTION LOCAL DEFAULT 12 .plt - 13: 0000000000000600 0 SECTION LOCAL DEFAULT 13 .text - 14: 0000000000000754 0 SECTION LOCAL DEFAULT 14 .fini - 15: 0000000000000768 0 SECTION LOCAL DEFAULT 15 .rodata - 16: 000000000000076c 0 SECTION LOCAL DEFAULT 16 .eh_frame_hdr - 17: 00000000000007a8 0 SECTION LOCAL DEFAULT 17 .eh_frame - 18: 0000000000010d98 0 SECTION LOCAL DEFAULT 18 .init_array - 19: 0000000000010da0 0 SECTION LOCAL DEFAULT 19 .fini_array - 20: 0000000000010da8 0 SECTION LOCAL DEFAULT 20 .dynamic - 21: 0000000000010f98 0 SECTION LOCAL DEFAULT 21 .got - 22: 0000000000011000 0 SECTION LOCAL DEFAULT 22 .data - 23: 0000000000011010 0 SECTION LOCAL DEFAULT 23 .bss - 24: 0000000000000000 0 SECTION LOCAL DEFAULT 24 .comment - 25: 0000000000000000 0 FILE LOCAL DEFAULT ABS Scrt1.o - 26: 0000000000000278 0 NOTYPE LOCAL DEFAULT 3 $d - 27: 0000000000000278 32 OBJECT LOCAL DEFAULT 3 __abi_tag - 28: 0000000000000640 0 NOTYPE LOCAL DEFAULT 13 $x - 29: 00000000000007bc 0 NOTYPE LOCAL DEFAULT 17 $d - 30: 0000000000000768 0 NOTYPE LOCAL DEFAULT 15 $d - 31: 0000000000000000 0 FILE LOCAL DEFAULT ABS crti.o - 32: 0000000000000674 0 NOTYPE LOCAL DEFAULT 13 $x - 33: 0000000000000674 20 FUNC LOCAL DEFAULT 13 call_weak_fn - 34: 0000000000000580 0 NOTYPE LOCAL DEFAULT 11 $x - 35: 0000000000000754 0 NOTYPE LOCAL DEFAULT 14 $x - 36: 0000000000000000 0 FILE LOCAL DEFAULT ABS crtn.o - 37: 0000000000000590 0 NOTYPE LOCAL DEFAULT 11 $x - 38: 0000000000000760 0 NOTYPE LOCAL DEFAULT 14 $x - 39: 0000000000000000 0 FILE LOCAL DEFAULT ABS basicassign1.c - 40: 0000000000000600 0 NOTYPE LOCAL DEFAULT 13 $x - 41: 0000000000011014 0 NOTYPE LOCAL DEFAULT 23 $d - 42: 0000000000000830 0 NOTYPE LOCAL DEFAULT 17 $d - 43: 0000000000000000 0 FILE LOCAL DEFAULT ABS crtstuff.c - 44: 0000000000000690 0 NOTYPE LOCAL DEFAULT 13 $x - 45: 0000000000000690 0 FUNC LOCAL DEFAULT 13 deregister_tm_clones - 46: 00000000000006c0 0 FUNC LOCAL DEFAULT 13 register_tm_clones - 47: 0000000000011008 0 NOTYPE LOCAL DEFAULT 22 $d - 48: 0000000000000700 0 FUNC LOCAL DEFAULT 13 __do_global_dtors_aux - 49: 0000000000011010 1 OBJECT LOCAL DEFAULT 23 completed.0 - 50: 0000000000010da0 0 NOTYPE LOCAL DEFAULT 19 $d - 51: 0000000000010da0 0 OBJECT LOCAL DEFAULT 19 __do_global_dtors_aux_fini_array_entry - 52: 0000000000000750 0 FUNC LOCAL DEFAULT 13 frame_dummy - 53: 0000000000010d98 0 NOTYPE LOCAL DEFAULT 18 $d - 54: 0000000000010d98 0 OBJECT LOCAL DEFAULT 18 __frame_dummy_init_array_entry - 55: 00000000000007d0 0 NOTYPE LOCAL DEFAULT 17 $d - 56: 0000000000011010 0 NOTYPE LOCAL DEFAULT 23 $d - 57: 0000000000000000 0 FILE LOCAL DEFAULT ABS crtstuff.c - 58: 0000000000000844 0 NOTYPE LOCAL DEFAULT 17 $d - 59: 0000000000000844 0 OBJECT LOCAL DEFAULT 17 __FRAME_END__ - 60: 0000000000000000 0 FILE LOCAL DEFAULT ABS - 61: 0000000000010da8 0 OBJECT LOCAL DEFAULT ABS _DYNAMIC - 62: 000000000000076c 0 NOTYPE LOCAL DEFAULT 16 __GNU_EH_FRAME_HDR - 63: 0000000000010fd0 0 OBJECT LOCAL DEFAULT ABS _GLOBAL_OFFSET_TABLE_ - 64: 00000000000005a0 0 NOTYPE LOCAL DEFAULT 12 $x - 65: 0000000000000000 0 FUNC GLOBAL DEFAULT UND __libc_start_main@GLIBC_2.34 - 66: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_deregisterTMCloneTable - 67: 0000000000011000 0 NOTYPE WEAK DEFAULT 22 data_start - 68: 0000000000011010 0 NOTYPE GLOBAL DEFAULT 23 __bss_start__ - 69: 0000000000000000 0 FUNC WEAK DEFAULT UND __cxa_finalize@GLIBC_2.17 - 70: 0000000000011020 0 NOTYPE GLOBAL DEFAULT 23 _bss_end__ - 71: 0000000000011010 0 NOTYPE GLOBAL DEFAULT 22 _edata - 72: 0000000000011014 4 OBJECT GLOBAL DEFAULT 23 z - 73: 0000000000000754 0 FUNC GLOBAL HIDDEN 14 _fini - 74: 0000000000011020 0 NOTYPE GLOBAL DEFAULT 23 __bss_end__ - 75: 0000000000011000 0 NOTYPE GLOBAL DEFAULT 22 __data_start - 76: 0000000000000000 0 NOTYPE WEAK DEFAULT UND __gmon_start__ - 77: 0000000000011008 0 OBJECT GLOBAL HIDDEN 22 __dso_handle - 78: 0000000000000000 0 FUNC GLOBAL DEFAULT UND abort@GLIBC_2.17 - 79: 0000000000000768 4 OBJECT GLOBAL DEFAULT 15 _IO_stdin_used - 80: 0000000000011018 4 OBJECT GLOBAL DEFAULT 23 secret - 81: 0000000000011020 0 NOTYPE GLOBAL DEFAULT 23 _end - 82: 0000000000000640 52 FUNC GLOBAL DEFAULT 13 _start - 83: 0000000000011020 0 NOTYPE GLOBAL DEFAULT 23 __end__ - 84: 0000000000011010 0 NOTYPE GLOBAL DEFAULT 23 __bss_start - 85: 0000000000000600 24 FUNC GLOBAL DEFAULT 13 main - 86: 0000000000011010 0 OBJECT GLOBAL HIDDEN 22 __TMC_END__ - 87: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_registerTMCloneTable - 88: 0000000000000580 0 FUNC GLOBAL HIDDEN 11 _init diff --git a/src/test/incorrect/basicassign1/gcc_O2/basicassign1_gtirb.expected b/src/test/incorrect/basicassign1/gcc_O2/basicassign1_gtirb.expected index f3052ad84..64f983c42 100644 --- a/src/test/incorrect/basicassign1/gcc_O2/basicassign1_gtirb.expected +++ b/src/test/incorrect/basicassign1/gcc_O2/basicassign1_gtirb.expected @@ -7,7 +7,7 @@ var {:extern} R1: bv64; var {:extern} R2: bv64; var {:extern} mem: [bv64]bv8; const {:extern} $z_addr: bv64; -axiom ($z_addr == 69652bv64); +axiom ($z_addr == 4325400bv64); function {:extern} L(mem$in: [bv64]bv8, index: bv64) returns (bool) { (if (index == $z_addr) then true else false) } @@ -17,6 +17,10 @@ function {:extern} gamma_load32(gammaMap: [bv64]bool, index: bv64) returns (bool (gammaMap[bvadd64(index, 3bv64)] && (gammaMap[bvadd64(index, 2bv64)] && (gammaMap[bvadd64(index, 1bv64)] && gammaMap[index]))) } +function {:extern} gamma_load64(gammaMap: [bv64]bool, index: bv64) returns (bool) { + (gammaMap[bvadd64(index, 7bv64)] && (gammaMap[bvadd64(index, 6bv64)] && (gammaMap[bvadd64(index, 5bv64)] && (gammaMap[bvadd64(index, 4bv64)] && (gammaMap[bvadd64(index, 3bv64)] && (gammaMap[bvadd64(index, 2bv64)] && (gammaMap[bvadd64(index, 1bv64)] && gammaMap[index]))))))) +} + function {:extern} gamma_store32(gammaMap: [bv64]bool, index: bv64, value: bool) returns ([bv64]bool) { gammaMap[index := value][bvadd64(index, 1bv64) := value][bvadd64(index, 2bv64) := value][bvadd64(index, 3bv64) := value] } @@ -38,11 +42,7 @@ procedure {:extern} rely(); modifies Gamma_mem, mem; ensures (Gamma_mem == old(Gamma_mem)); ensures (mem == old(mem)); - free ensures (memory_load32_le(mem, 1896bv64) == 131073bv32); - free ensures (memory_load64_le(mem, 69016bv64) == 1872bv64); - free ensures (memory_load64_le(mem, 69024bv64) == 1792bv64); - free ensures (memory_load64_le(mem, 69616bv64) == 1536bv64); - free ensures (memory_load64_le(mem, 69640bv64) == 69640bv64); + free ensures (memory_load32_le(mem, 4196312bv64) == 131073bv32); procedure {:extern} rely_transitive(); modifies Gamma_mem, mem; @@ -60,40 +60,42 @@ procedure {:extern} rely_reflexive(); procedure {:extern} guarantee_reflexive(); modifies Gamma_mem, mem; -procedure main_1536(); +procedure main(); modifies Gamma_R0, Gamma_R1, Gamma_R2, Gamma_mem, R0, R1, R2, mem; - free requires (memory_load64_le(mem, 69632bv64) == 0bv64); - free requires (memory_load64_le(mem, 69640bv64) == 69640bv64); - free requires (memory_load32_le(mem, 1896bv64) == 131073bv32); - free requires (memory_load64_le(mem, 69016bv64) == 1872bv64); - free requires (memory_load64_le(mem, 69024bv64) == 1792bv64); - free requires (memory_load64_le(mem, 69616bv64) == 1536bv64); - free requires (memory_load64_le(mem, 69640bv64) == 69640bv64); - free ensures (memory_load32_le(mem, 1896bv64) == 131073bv32); - free ensures (memory_load64_le(mem, 69016bv64) == 1872bv64); - free ensures (memory_load64_le(mem, 69024bv64) == 1792bv64); - free ensures (memory_load64_le(mem, 69616bv64) == 1536bv64); - free ensures (memory_load64_le(mem, 69640bv64) == 69640bv64); + free requires (memory_load64_le(mem, 4325376bv64) == 0bv64); + free requires (memory_load64_le(mem, 4325384bv64) == 0bv64); + free requires (memory_load32_le(mem, 4196312bv64) == 131073bv32); + free ensures (memory_load32_le(mem, 4196312bv64) == 131073bv32); -implementation main_1536() +implementation main() { - var Gamma_load0: bool; - var load0: bv32; - main_1536__0___PNx6V7gRVGINL2khXZ6vg: - assume {:captureState "main_1536__0___PNx6V7gRVGINL2khXZ6vg"} true; - R1, Gamma_R1 := 69632bv64, true; - R2, Gamma_R2 := bvadd64(R1, 20bv64), Gamma_R1; + var $load16: bv64; + var $load17: bv64; + var $load18: bv32; + var Gamma_$load16: bool; + var Gamma_$load17: bool; + var Gamma_$load18: bool; + $main$__0__$i2bc6yURTw~Pq2nxe63pQA: + assume {:captureState "$main$__0__$i2bc6yURTw~Pq2nxe63pQA"} true; + R1, Gamma_R1 := 4321280bv64, true; + call rely(); + $load16, Gamma_$load16 := memory_load64_le(mem, bvadd64(R1, 4080bv64)), (gamma_load64(Gamma_mem, bvadd64(R1, 4080bv64)) || L(mem, bvadd64(R1, 4080bv64))); + R1, Gamma_R1 := $load16, Gamma_$load16; R0, Gamma_R0 := 0bv64, true; + R2, Gamma_R2 := 4321280bv64, true; + call rely(); + $load17, Gamma_$load17 := memory_load64_le(mem, bvadd64(R2, 4064bv64)), (gamma_load64(Gamma_mem, bvadd64(R2, 4064bv64)) || L(mem, bvadd64(R2, 4064bv64))); + R2, Gamma_R2 := $load17, Gamma_$load17; call rely(); - load0, Gamma_load0 := memory_load32_le(mem, bvadd64(R2, 4bv64)), (gamma_load32(Gamma_mem, bvadd64(R2, 4bv64)) || L(mem, bvadd64(R2, 4bv64))); - R2, Gamma_R2 := zero_extend32_32(load0), Gamma_load0; + $load18, Gamma_$load18 := memory_load32_le(mem, R1), (gamma_load32(Gamma_mem, R1) || L(mem, R1)); + R1, Gamma_R1 := zero_extend32_32($load18), Gamma_$load18; call rely(); - assert (L(mem, bvadd64(R1, 20bv64)) ==> Gamma_R2); - mem, Gamma_mem := memory_store32_le(mem, bvadd64(R1, 20bv64), R2[32:0]), gamma_store32(Gamma_mem, bvadd64(R1, 20bv64), Gamma_R2); - assume {:captureState "1552_0"} true; - goto main_1536_basil_return; - main_1536_basil_return: - assume {:captureState "main_1536_basil_return"} true; + assert (L(mem, R2) ==> Gamma_R1); + mem, Gamma_mem := memory_store32_le(mem, R2, R1[32:0]), gamma_store32(Gamma_mem, R2, Gamma_R1); + assume {:captureState "4195992$0"} true; + goto main_basil_return; + main_basil_return: + assume {:captureState "main_basil_return"} true; return; } diff --git a/src/test/incorrect/basicassign1/gcc_pic/basicassign1.adt b/src/test/incorrect/basicassign1/gcc_pic/basicassign1.adt deleted file mode 100644 index 6972afcbb..000000000 --- a/src/test/incorrect/basicassign1/gcc_pic/basicassign1.adt +++ /dev/null @@ -1,538 +0,0 @@ -Project(Attrs([Attr("filename","\"gcc_pic/basicassign1.out\""), -Attr("image-specification","(declare abi (name str))\n(declare arch (name str))\n(declare base-address (addr int))\n(declare bias (off int))\n(declare bits (size int))\n(declare code-region (addr int) (size int) (off int))\n(declare code-start (addr int))\n(declare entry-point (addr int))\n(declare external-reference (addr int) (name str))\n(declare format (name str))\n(declare is-executable (flag bool))\n(declare is-little-endian (flag bool))\n(declare llvm:base-address (addr int))\n(declare llvm:code-entry (name str) (off int) (size int))\n(declare llvm:coff-import-library (name str))\n(declare llvm:coff-virtual-section-header (name str) (addr int) (size int))\n(declare llvm:elf-program-header (name str) (off int) (size int))\n(declare llvm:elf-program-header-flags (name str) (ld bool) (r bool) \n (w bool) (x bool))\n(declare llvm:elf-virtual-program-header (name str) (addr int) (size int))\n(declare llvm:entry-point (addr int))\n(declare llvm:macho-symbol (name str) (value int))\n(declare llvm:name-reference (at int) (name str))\n(declare llvm:relocation (at int) (addr int))\n(declare llvm:section-entry (name str) (addr int) (size int) (off int))\n(declare llvm:section-flags (name str) (r bool) (w bool) (x bool))\n(declare llvm:segment-command (name str) (off int) (size int))\n(declare llvm:segment-command-flags (name str) (r bool) (w bool) (x bool))\n(declare llvm:symbol-entry (name str) (addr int) (size int) (off int)\n (value int))\n(declare llvm:virtual-segment-command (name str) (addr int) (size int))\n(declare mapped (addr int) (size int) (off int))\n(declare named-region (addr int) (size int) (name str))\n(declare named-symbol (addr int) (name str))\n(declare require (name str))\n(declare section (addr int) (size int))\n(declare segment (addr int) (size int) (r bool) (w bool) (x bool))\n(declare subarch (name str))\n(declare symbol-chunk (addr int) (size int) (root int))\n(declare symbol-value (addr int) (value int))\n(declare system (name str))\n(declare vendor (name str))\n\n(abi unknown)\n(arch aarch64)\n(base-address 0)\n(bias 0)\n(bits 64)\n(code-region 1960 20 1960)\n(code-region 1600 360 1600)\n(code-region 1488 96 1488)\n(code-region 1456 24 1456)\n(code-start 1652)\n(code-start 1600)\n(code-start 1876)\n(entry-point 1600)\n(external-reference 69576 _ITM_deregisterTMCloneTable)\n(external-reference 69584 __cxa_finalize)\n(external-reference 69600 __gmon_start__)\n(external-reference 69624 _ITM_registerTMCloneTable)\n(external-reference 69536 __libc_start_main)\n(external-reference 69544 __cxa_finalize)\n(external-reference 69552 __gmon_start__)\n(external-reference 69560 abort)\n(format elf)\n(is-executable true)\n(is-little-endian true)\n(llvm:base-address 0)\n(llvm:code-entry abort 0 0)\n(llvm:code-entry __cxa_finalize 0 0)\n(llvm:code-entry __libc_start_main 0 0)\n(llvm:code-entry _init 1456 0)\n(llvm:code-entry main 1876 84)\n(llvm:code-entry _start 1600 52)\n(llvm:code-entry abort@GLIBC_2.17 0 0)\n(llvm:code-entry _fini 1960 0)\n(llvm:code-entry __cxa_finalize@GLIBC_2.17 0 0)\n(llvm:code-entry __libc_start_main@GLIBC_2.34 0 0)\n(llvm:code-entry frame_dummy 1872 0)\n(llvm:code-entry __do_global_dtors_aux 1792 0)\n(llvm:code-entry register_tm_clones 1728 0)\n(llvm:code-entry deregister_tm_clones 1680 0)\n(llvm:code-entry call_weak_fn 1652 20)\n(llvm:code-entry .fini 1960 20)\n(llvm:code-entry .text 1600 360)\n(llvm:code-entry .plt 1488 96)\n(llvm:code-entry .init 1456 24)\n(llvm:elf-program-header 08 3464 632)\n(llvm:elf-program-header 07 0 0)\n(llvm:elf-program-header 06 1984 60)\n(llvm:elf-program-header 05 596 68)\n(llvm:elf-program-header 04 3480 496)\n(llvm:elf-program-header 03 3464 648)\n(llvm:elf-program-header 02 0 2212)\n(llvm:elf-program-header 01 568 27)\n(llvm:elf-program-header 00 64 504)\n(llvm:elf-program-header-flags 08 false true false false)\n(llvm:elf-program-header-flags 07 false true true false)\n(llvm:elf-program-header-flags 06 false true false false)\n(llvm:elf-program-header-flags 05 false true false false)\n(llvm:elf-program-header-flags 04 false true true false)\n(llvm:elf-program-header-flags 03 true true true false)\n(llvm:elf-program-header-flags 02 true true false true)\n(llvm:elf-program-header-flags 01 false true false false)\n(llvm:elf-program-header-flags 00 false true false false)\n(llvm:elf-virtual-program-header 08 69000 632)\n(llvm:elf-virtual-program-header 07 0 0)\n(llvm:elf-virtual-program-header 06 1984 60)\n(llvm:elf-virtual-program-header 05 596 68)\n(llvm:elf-virtual-program-header 04 69016 496)\n(llvm:elf-virtual-program-header 03 69000 664)\n(llvm:elf-virtual-program-header 02 0 2212)\n(llvm:elf-virtual-program-header 01 568 27)\n(llvm:elf-virtual-program-header 00 64 504)\n(llvm:entry-point 1600)\n(llvm:name-reference 69560 abort)\n(llvm:name-reference 69552 __gmon_start__)\n(llvm:name-reference 69544 __cxa_finalize)\n(llvm:name-reference 69536 __libc_start_main)\n(llvm:name-reference 69624 _ITM_registerTMCloneTable)\n(llvm:name-reference 69600 __gmon_start__)\n(llvm:name-reference 69584 __cxa_finalize)\n(llvm:name-reference 69576 _ITM_deregisterTMCloneTable)\n(llvm:section-entry .shstrtab 0 250 6853)\n(llvm:section-entry .strtab 0 557 6296)\n(llvm:section-entry .symtab 0 2136 4160)\n(llvm:section-entry .comment 0 43 4112)\n(llvm:section-entry .bss 69648 16 4112)\n(llvm:section-entry .data 69632 16 4096)\n(llvm:section-entry .got 69512 120 3976)\n(llvm:section-entry .dynamic 69016 496 3480)\n(llvm:section-entry .fini_array 69008 8 3472)\n(llvm:section-entry .init_array 69000 8 3464)\n(llvm:section-entry .eh_frame 2048 164 2048)\n(llvm:section-entry .eh_frame_hdr 1984 60 1984)\n(llvm:section-entry .rodata 1980 4 1980)\n(llvm:section-entry .fini 1960 20 1960)\n(llvm:section-entry .text 1600 360 1600)\n(llvm:section-entry .plt 1488 96 1488)\n(llvm:section-entry .init 1456 24 1456)\n(llvm:section-entry .rela.plt 1360 96 1360)\n(llvm:section-entry .rela.dyn 1120 240 1120)\n(llvm:section-entry .gnu.version_r 1072 48 1072)\n(llvm:section-entry .gnu.version 1054 18 1054)\n(llvm:section-entry .dynstr 912 141 912)\n(llvm:section-entry .dynsym 696 216 696)\n(llvm:section-entry .gnu.hash 664 28 664)\n(llvm:section-entry .note.ABI-tag 632 32 632)\n(llvm:section-entry .note.gnu.build-id 596 36 596)\n(llvm:section-entry .interp 568 27 568)\n(llvm:section-flags .shstrtab true false false)\n(llvm:section-flags .strtab true false false)\n(llvm:section-flags .symtab true false false)\n(llvm:section-flags .comment true false false)\n(llvm:section-flags .bss true true false)\n(llvm:section-flags .data true true false)\n(llvm:section-flags .got true true false)\n(llvm:section-flags .dynamic true true false)\n(llvm:section-flags .fini_array true true false)\n(llvm:section-flags .init_array true true false)\n(llvm:section-flags .eh_frame true false false)\n(llvm:section-flags .eh_frame_hdr true false false)\n(llvm:section-flags .rodata true false false)\n(llvm:section-flags .fini true false true)\n(llvm:section-flags .text true false true)\n(llvm:section-flags .plt true false true)\n(llvm:section-flags .init true false true)\n(llvm:section-flags .rela.plt true false false)\n(llvm:section-flags .rela.dyn true false false)\n(llvm:section-flags .gnu.version_r true false false)\n(llvm:section-flags .gnu.version true false false)\n(llvm:section-flags .dynstr true false false)\n(llvm:section-flags .dynsym true false false)\n(llvm:section-flags .gnu.hash true false false)\n(llvm:section-flags .note.ABI-tag true false false)\n(llvm:section-flags .note.gnu.build-id true false false)\n(llvm:section-flags .interp true false false)\n(llvm:symbol-entry abort 0 0 0 0)\n(llvm:symbol-entry __cxa_finalize 0 0 0 0)\n(llvm:symbol-entry __libc_start_main 0 0 0 0)\n(llvm:symbol-entry _init 1456 0 1456 1456)\n(llvm:symbol-entry main 1876 84 1876 1876)\n(llvm:symbol-entry _start 1600 52 1600 1600)\n(llvm:symbol-entry abort@GLIBC_2.17 0 0 0 0)\n(llvm:symbol-entry _fini 1960 0 1960 1960)\n(llvm:symbol-entry __cxa_finalize@GLIBC_2.17 0 0 0 0)\n(llvm:symbol-entry __libc_start_main@GLIBC_2.34 0 0 0 0)\n(llvm:symbol-entry frame_dummy 1872 0 1872 1872)\n(llvm:symbol-entry __do_global_dtors_aux 1792 0 1792 1792)\n(llvm:symbol-entry register_tm_clones 1728 0 1728 1728)\n(llvm:symbol-entry deregister_tm_clones 1680 0 1680 1680)\n(llvm:symbol-entry call_weak_fn 1652 20 1652 1652)\n(mapped 0 2212 0)\n(mapped 69000 648 3464)\n(named-region 0 2212 02)\n(named-region 69000 664 03)\n(named-region 568 27 .interp)\n(named-region 596 36 .note.gnu.build-id)\n(named-region 632 32 .note.ABI-tag)\n(named-region 664 28 .gnu.hash)\n(named-region 696 216 .dynsym)\n(named-region 912 141 .dynstr)\n(named-region 1054 18 .gnu.version)\n(named-region 1072 48 .gnu.version_r)\n(named-region 1120 240 .rela.dyn)\n(named-region 1360 96 .rela.plt)\n(named-region 1456 24 .init)\n(named-region 1488 96 .plt)\n(named-region 1600 360 .text)\n(named-region 1960 20 .fini)\n(named-region 1980 4 .rodata)\n(named-region 1984 60 .eh_frame_hdr)\n(named-region 2048 164 .eh_frame)\n(named-region 69000 8 .init_array)\n(named-region 69008 8 .fini_array)\n(named-region 69016 496 .dynamic)\n(named-region 69512 120 .got)\n(named-region 69632 16 .data)\n(named-region 69648 16 .bss)\n(named-region 0 43 .comment)\n(named-region 0 2136 .symtab)\n(named-region 0 557 .strtab)\n(named-region 0 250 .shstrtab)\n(named-symbol 1652 call_weak_fn)\n(named-symbol 1680 deregister_tm_clones)\n(named-symbol 1728 register_tm_clones)\n(named-symbol 1792 __do_global_dtors_aux)\n(named-symbol 1872 frame_dummy)\n(named-symbol 0 __libc_start_main@GLIBC_2.34)\n(named-symbol 0 __cxa_finalize@GLIBC_2.17)\n(named-symbol 1960 _fini)\n(named-symbol 0 abort@GLIBC_2.17)\n(named-symbol 1600 _start)\n(named-symbol 1876 main)\n(named-symbol 1456 _init)\n(named-symbol 0 __libc_start_main)\n(named-symbol 0 __cxa_finalize)\n(named-symbol 0 abort)\n(require libc.so.6)\n(section 568 27)\n(section 596 36)\n(section 632 32)\n(section 664 28)\n(section 696 216)\n(section 912 141)\n(section 1054 18)\n(section 1072 48)\n(section 1120 240)\n(section 1360 96)\n(section 1456 24)\n(section 1488 96)\n(section 1600 360)\n(section 1960 20)\n(section 1980 4)\n(section 1984 60)\n(section 2048 164)\n(section 69000 8)\n(section 69008 8)\n(section 69016 496)\n(section 69512 120)\n(section 69632 16)\n(section 69648 16)\n(section 0 43)\n(section 0 2136)\n(section 0 557)\n(section 0 250)\n(segment 0 2212 true false true)\n(segment 69000 664 true true false)\n(subarch v8)\n(symbol-chunk 1652 20 1652)\n(symbol-chunk 1600 52 1600)\n(symbol-chunk 1876 84 1876)\n(symbol-value 1652 1652)\n(symbol-value 1680 1680)\n(symbol-value 1728 1728)\n(symbol-value 1792 1792)\n(symbol-value 1872 1872)\n(symbol-value 1960 1960)\n(symbol-value 1600 1600)\n(symbol-value 1876 1876)\n(symbol-value 1456 1456)\n(symbol-value 0 0)\n(system \"\")\n(vendor \"\")\n"), -Attr("abi-name","\"aarch64-linux-gnu-elf\"")]), -Sections([Section(".shstrtab", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x40\x06\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xc0\x1b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x38\x00\x09\x00\x40\x00\x1c\x00\x1b\x00\x06\x00\x00\x00\x04\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x04\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xa4\x08\x00\x00\x00\x00\x00\x00\xa4\x08\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x01\x00\x00\x00\x06\x00\x00\x00\x88\x0d\x00\x00\x00\x00\x00\x00\x88\x0d"), -Section(".strtab", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x40\x06\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xc0\x1b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x38\x00\x09\x00\x40\x00\x1c\x00\x1b\x00\x06\x00\x00\x00\x04\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x04\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xa4\x08\x00\x00\x00\x00\x00\x00\xa4\x08\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x01\x00\x00\x00\x06\x00\x00\x00\x88\x0d\x00\x00\x00\x00\x00\x00\x88\x0d\x01\x00\x00\x00\x00\x00\x88\x0d\x01\x00\x00\x00\x00\x00\x88\x02\x00\x00\x00\x00\x00\x00\x98\x02\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x02\x00\x00\x00\x06\x00\x00\x00\x98\x0d\x00\x00\x00\x00\x00\x00\x98\x0d\x01\x00\x00\x00\x00\x00\x98\x0d\x01\x00\x00\x00\x00\x00\xf0\x01\x00\x00\x00\x00\x00\x00\xf0\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x04\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x50\xe5\x74\x64\x04\x00\x00\x00\xc0\x07\x00\x00\x00\x00\x00\x00\xc0\x07\x00\x00\x00\x00\x00\x00\xc0\x07\x00\x00\x00\x00\x00\x00\x3c\x00\x00\x00\x00\x00\x00\x00\x3c\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x51\xe5\x74\x64\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x52\xe5\x74\x64\x04\x00\x00\x00\x88\x0d\x00\x00\x00\x00\x00\x00\x88\x0d\x01\x00\x00\x00\x00\x00\x88\x0d\x01\x00\x00\x00\x00\x00\x78\x02\x00\x00\x00\x00\x00\x00\x78\x02\x00\x00\x00"), -Section(".symtab", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x40\x06\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xc0\x1b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x38\x00\x09\x00\x40\x00\x1c\x00\x1b\x00\x06\x00\x00\x00\x04\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x04\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xa4\x08\x00\x00\x00\x00\x00\x00\xa4\x08\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x01\x00\x00\x00\x06\x00\x00\x00\x88\x0d\x00\x00\x00\x00\x00\x00\x88\x0d\x01\x00\x00\x00\x00\x00\x88\x0d\x01\x00\x00\x00\x00\x00\x88\x02\x00\x00\x00\x00\x00\x00\x98\x02\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x02\x00\x00\x00\x06\x00\x00\x00\x98\x0d\x00\x00\x00\x00\x00\x00\x98\x0d\x01\x00\x00\x00\x00\x00\x98\x0d\x01\x00\x00\x00\x00\x00\xf0\x01\x00\x00\x00\x00\x00\x00\xf0\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x04\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x50\xe5\x74\x64\x04\x00\x00\x00\xc0\x07\x00\x00\x00\x00\x00\x00\xc0\x07\x00\x00\x00\x00\x00\x00\xc0\x07\x00\x00\x00\x00\x00\x00\x3c\x00\x00\x00\x00\x00\x00\x00\x3c\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x51\xe5\x74\x64\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x52\xe5\x74\x64\x04\x00\x00\x00\x88\x0d\x00\x00\x00\x00\x00\x00\x88\x0d\x01\x00\x00\x00\x00\x00\x88\x0d\x01\x00\x00\x00\x00\x00\x78\x02\x00\x00\x00\x00\x00\x00\x78\x02\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x2f\x6c\x69\x62\x2f\x6c\x64\x2d\x6c\x69\x6e\x75\x78\x2d\x61\x61\x72\x63\x68\x36\x34\x2e\x73\x6f\x2e\x31\x00\x00\x04\x00\x00\x00\x14\x00\x00\x00\x03\x00\x00\x00\x47\x4e\x55\x00\xc9\x8f\xaf\x3e\xcd\x39\x5f\x5f\xc9\x92\xfd\x5b\x67\x98\x77\x23\x65\x0b\x95\x3c\x04\x00\x00\x00\x10\x00\x00\x00\x01\x00\x00\x00\x47\x4e\x55\x00\x00\x00\x00\x00\x03\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x01\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x0b\x00\xb0\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x16\x00\x00\x10\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x48\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x22\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x22\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x73\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5f\x5f\x63\x78\x61\x5f\x66\x69\x6e\x61\x6c\x69\x7a\x65\x00\x5f\x5f\x6c\x69\x62\x63\x5f\x73\x74\x61\x72\x74\x5f\x6d\x61\x69\x6e\x00\x61\x62\x6f\x72\x74\x00\x6c\x69\x62\x63\x2e\x73\x6f\x2e\x36\x00\x47\x4c\x49\x42\x43\x5f\x32\x2e\x31\x37\x00\x47\x4c\x49\x42\x43\x5f\x32\x2e\x33\x34\x00\x5f\x49\x54\x4d\x5f\x64\x65\x72\x65\x67\x69\x73\x74\x65\x72\x54\x4d\x43\x6c\x6f\x6e\x65\x54\x61\x62\x6c\x65\x00\x5f\x5f\x67\x6d\x6f\x6e\x5f\x73\x74\x61\x72\x74\x5f\x5f\x00\x5f\x49\x54\x4d\x5f\x72\x65\x67\x69\x73\x74\x65\x72\x54\x4d\x43\x6c\x6f\x6e\x65\x54\x61\x62\x6c\x65\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x01\x00\x03\x00\x01\x00\x03\x00\x01\x00\x01\x00\x02\x00\x28\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x97\x91\x96\x06\x00\x00\x03\x00\x32\x00\x00\x00\x10\x00\x00\x00\xb4\x91\x96\x06\x00\x00\x02\x00\x3d\x00\x00\x00\x00\x00\x00\x00\x88\x0d\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x50\x07\x00\x00\x00\x00\x00\x00\x90\x0d\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\xd8\x0f\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x14\x10\x01\x00\x00\x00\x00\x00\xe8\x0f\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x18\x10\x01\x00\x00\x00\x00\x00\xf0\x0f\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x54\x07\x00\x00\x00\x00\x00\x00\x08\x10\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x08\x10\x01\x00\x00\x00\x00\x00\xc8\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xd0\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe0\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xf8\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xa0\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xa8\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xb0\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xb8\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1f\x20\x03\xd5\xfd\x7b\xbf\xa9\xfd\x03\x00\x91\x2e\x00\x00\x94\xfd\x7b\xc1\xa8\xc0\x03\x5f\xd6\x00\x00\x00\x00\x00\x00\x00\x00\xf0\x7b\xbf\xa9\x90\x00\x00\x90\x11\xce\x47\xf9\x10\x62\x3e\x91\x20\x02\x1f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x90\x00\x00\x90\x11\xd2\x47\xf9\x10\x82\x3e\x91\x20\x02\x1f\xd6\x90\x00\x00\x90\x11\xd6\x47\xf9\x10\xa2\x3e\x91\x20\x02\x1f\xd6\x90\x00\x00\x90\x11\xda\x47\xf9\x10\xc2\x3e\x91\x20\x02\x1f\xd6\x90\x00\x00\x90\x11\xde\x47\xf9\x10\xe2\x3e\x91\x20\x02\x1f\xd6\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1f\x20\x03\xd5\x1d\x00\x80\xd2\x1e\x00\x80\xd2\xe5\x03\x00\xaa\xe1\x03\x40\xf9\xe2\x23\x00\x91\xe6\x03\x00\x91\x80\x00\x00\x90\x00\xf8\x47\xf9\x03\x00\x80\xd2\x04\x00\x80\xd2\xe1\xff\xff\x97\xec\xff\xff\x97\x80\x00\x00\x90\x00\xf0\x47\xf9\x40\x00\x00\xb4\xe4\xff\xff\x17\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x80\x00\x00\xb0\x00\x40\x00\x91\x81\x00\x00\xb0\x21\x40\x00\x91\x3f\x00\x00\xeb\xc0\x00\x00\x54\x81\x00\x00\x90\x21\xe4\x47\xf9\x61\x00\x00\xb4\xf0\x03\x01\xaa\x00\x02\x1f\xd6\xc0\x03\x5f\xd6\x80\x00\x00\xb0\x00\x40\x00\x91\x81\x00\x00\xb0\x21\x40\x00\x91\x21\x00\x00\xcb\x22\xfc\x7f\xd3\x41\x0c\x81\x8b\x21\xfc\x41\x93\xc1\x00\x00\xb4\x82\x00\x00\x90\x42\xfc\x47\xf9\x62\x00\x00\xb4\xf0\x03\x02\xaa\x00\x02\x1f\xd6\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\xfd\x7b\xbe\xa9\xfd\x03\x00\x91\xf3\x0b\x00\xf9\x93\x00\x00\xb0\x60\x42\x40\x39\x40\x01\x00\x35\x80\x00\x00\x90\x00\xe8\x47\xf9\x80\x00\x00\xb4\x80\x00\x00\xb0\x00\x04\x40\xf9\xb5\xff\xff\x97\xd8\xff\xff\x97\x20\x00\x80\x52\x60\x42\x00\x39\xf3\x0b\x40\xf9\xfd\x7b\xc2\xa8\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\xdc\xff\xff\x17\xff\x43\x00\xd1\x80\x00\x00\x90\x00\xf4\x47\xf9\x00\x00\x40\xb9\xe0\x0f\x00\xb9\xff\x0f\x00\xb9\x80\x00\x00\x90\x00\xec\x47\xf9\xe1\x0f\x40\xb9\x01\x00\x00\xb9\x80\x00\x00\x90\x00\xf4\x47\xf9\x00\x00\x40\xb9\xe0\x0f\x00\xb9\x80\x00\x00\x90\x00\xec\x47\xf9\xe1\x0f\x40\xb9\x01\x00\x00\xb9\x00\x00\x80\x52\xff\x43\x00\x91\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\xfd\x7b\xbf\xa9\xfd\x03\x00\x91\xfd\x7b\xc1\xa8\xc0\x03\x5f\xd6\x01\x00\x02\x00\x01\x1b\x03\x3b\x3c\x00\x00\x00\x06\x00\x00\x00\x80\xfe\xff\xff\x54\x00\x00\x00\xd0\xfe\xff\xff\x68\x00\x00\x00\x00\xff\xff\xff\x7c\x00\x00\x00\x40\xff\xff\xff\x90\x00\x00\x00\x90\xff\xff\xff\xb4\x00\x00\x00\x94\xff\xff\xff\xc8\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x01\x7a\x52\x00\x04\x78\x1e\x01\x1b\x0c\x1f\x00\x10\x00\x00\x00\x18\x00\x00\x00\x24\xfe\xff\xff\x34\x00\x00\x00\x00\x41\x07\x1e\x10\x00\x00\x00\x2c\x00\x00\x00\x60\xfe\xff\xff\x30\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x40\x00\x00\x00\x7c\xfe\xff\xff\x3c\x00\x00\x00\x00\x00\x00\x00\x20\x00\x00\x00\x54\x00\x00\x00"), -Section(".comment", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x40\x06\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xc0\x1b\x00"), -Section(".interp", 0x238, "\x2f\x6c\x69\x62\x2f\x6c\x64\x2d\x6c\x69\x6e\x75\x78\x2d\x61\x61\x72\x63\x68\x36\x34\x2e\x73\x6f\x2e\x31\x00"), -Section(".note.gnu.build-id", 0x254, "\x04\x00\x00\x00\x14\x00\x00\x00\x03\x00\x00\x00\x47\x4e\x55\x00\xc9\x8f\xaf\x3e\xcd\x39\x5f\x5f\xc9\x92\xfd\x5b\x67\x98\x77\x23\x65\x0b\x95\x3c"), -Section(".note.ABI-tag", 0x278, "\x04\x00\x00\x00\x10\x00\x00\x00\x01\x00\x00\x00\x47\x4e\x55\x00\x00\x00\x00\x00\x03\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00"), -Section(".gnu.hash", 0x298, "\x01\x00\x00\x00\x01\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".dynsym", 0x2B8, "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x0b\x00\xb0\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x16\x00\x00\x10\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x48\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x22\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x22\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x73\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".dynstr", 0x390, "\x00\x5f\x5f\x63\x78\x61\x5f\x66\x69\x6e\x61\x6c\x69\x7a\x65\x00\x5f\x5f\x6c\x69\x62\x63\x5f\x73\x74\x61\x72\x74\x5f\x6d\x61\x69\x6e\x00\x61\x62\x6f\x72\x74\x00\x6c\x69\x62\x63\x2e\x73\x6f\x2e\x36\x00\x47\x4c\x49\x42\x43\x5f\x32\x2e\x31\x37\x00\x47\x4c\x49\x42\x43\x5f\x32\x2e\x33\x34\x00\x5f\x49\x54\x4d\x5f\x64\x65\x72\x65\x67\x69\x73\x74\x65\x72\x54\x4d\x43\x6c\x6f\x6e\x65\x54\x61\x62\x6c\x65\x00\x5f\x5f\x67\x6d\x6f\x6e\x5f\x73\x74\x61\x72\x74\x5f\x5f\x00\x5f\x49\x54\x4d\x5f\x72\x65\x67\x69\x73\x74\x65\x72\x54\x4d\x43\x6c\x6f\x6e\x65\x54\x61\x62\x6c\x65\x00"), -Section(".gnu.version", 0x41E, "\x00\x00\x00\x00\x00\x00\x02\x00\x01\x00\x03\x00\x01\x00\x03\x00\x01\x00"), -Section(".gnu.version_r", 0x430, "\x01\x00\x02\x00\x28\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x97\x91\x96\x06\x00\x00\x03\x00\x32\x00\x00\x00\x10\x00\x00\x00\xb4\x91\x96\x06\x00\x00\x02\x00\x3d\x00\x00\x00\x00\x00\x00\x00"), -Section(".rela.dyn", 0x460, "\x88\x0d\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x50\x07\x00\x00\x00\x00\x00\x00\x90\x0d\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\xd8\x0f\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x14\x10\x01\x00\x00\x00\x00\x00\xe8\x0f\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x18\x10\x01\x00\x00\x00\x00\x00\xf0\x0f\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x54\x07\x00\x00\x00\x00\x00\x00\x08\x10\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x08\x10\x01\x00\x00\x00\x00\x00\xc8\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xd0\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe0\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xf8\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".rela.plt", 0x550, "\xa0\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xa8\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xb0\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xb8\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".init", 0x5B0, "\x1f\x20\x03\xd5\xfd\x7b\xbf\xa9\xfd\x03\x00\x91\x2e\x00\x00\x94\xfd\x7b\xc1\xa8\xc0\x03\x5f\xd6"), -Section(".plt", 0x5D0, "\xf0\x7b\xbf\xa9\x90\x00\x00\x90\x11\xce\x47\xf9\x10\x62\x3e\x91\x20\x02\x1f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x90\x00\x00\x90\x11\xd2\x47\xf9\x10\x82\x3e\x91\x20\x02\x1f\xd6\x90\x00\x00\x90\x11\xd6\x47\xf9\x10\xa2\x3e\x91\x20\x02\x1f\xd6\x90\x00\x00\x90\x11\xda\x47\xf9\x10\xc2\x3e\x91\x20\x02\x1f\xd6\x90\x00\x00\x90\x11\xde\x47\xf9\x10\xe2\x3e\x91\x20\x02\x1f\xd6"), -Section(".fini", 0x7A8, "\x1f\x20\x03\xd5\xfd\x7b\xbf\xa9\xfd\x03\x00\x91\xfd\x7b\xc1\xa8\xc0\x03\x5f\xd6"), -Section(".rodata", 0x7BC, "\x01\x00\x02\x00"), -Section(".eh_frame_hdr", 0x7C0, "\x01\x1b\x03\x3b\x3c\x00\x00\x00\x06\x00\x00\x00\x80\xfe\xff\xff\x54\x00\x00\x00\xd0\xfe\xff\xff\x68\x00\x00\x00\x00\xff\xff\xff\x7c\x00\x00\x00\x40\xff\xff\xff\x90\x00\x00\x00\x90\xff\xff\xff\xb4\x00\x00\x00\x94\xff\xff\xff\xc8\x00\x00\x00"), -Section(".eh_frame", 0x800, "\x10\x00\x00\x00\x00\x00\x00\x00\x01\x7a\x52\x00\x04\x78\x1e\x01\x1b\x0c\x1f\x00\x10\x00\x00\x00\x18\x00\x00\x00\x24\xfe\xff\xff\x34\x00\x00\x00\x00\x41\x07\x1e\x10\x00\x00\x00\x2c\x00\x00\x00\x60\xfe\xff\xff\x30\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x40\x00\x00\x00\x7c\xfe\xff\xff\x3c\x00\x00\x00\x00\x00\x00\x00\x20\x00\x00\x00\x54\x00\x00\x00\xa8\xfe\xff\xff\x48\x00\x00\x00\x00\x41\x0e\x20\x9d\x04\x9e\x03\x42\x93\x02\x4e\xde\xdd\xd3\x0e\x00\x00\x00\x00\x10\x00\x00\x00\x78\x00\x00\x00\xd4\xfe\xff\xff\x04\x00\x00\x00\x00\x00\x00\x00\x14\x00\x00\x00\x8c\x00\x00\x00\xc4\xfe\xff\xff\x54\x00\x00\x00\x00\x41\x0e\x10\x53\x0e\x00\x00\x00\x00\x00\x00"), -Section(".fini_array", 0x10D90, "\x00\x07\x00\x00\x00\x00\x00\x00"), -Section(".dynamic", 0x10D98, "\x01\x00\x00\x00\x00\x00\x00\x00\x28\x00\x00\x00\x00\x00\x00\x00\x0c\x00\x00\x00\x00\x00\x00\x00\xb0\x05\x00\x00\x00\x00\x00\x00\x0d\x00\x00\x00\x00\x00\x00\x00\xa8\x07\x00\x00\x00\x00\x00\x00\x19\x00\x00\x00\x00\x00\x00\x00\x88\x0d\x01\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x1a\x00\x00\x00\x00\x00\x00\x00\x90\x0d\x01\x00\x00\x00\x00\x00\x1c\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\xf5\xfe\xff\x6f\x00\x00\x00\x00\x98\x02\x00\x00\x00\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x90\x03\x00\x00\x00\x00\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\xb8\x02\x00\x00\x00\x00\x00\x00\x0a\x00\x00\x00\x00\x00\x00\x00\x8d\x00\x00\x00\x00\x00\x00\x00\x0b\x00\x00\x00\x00\x00\x00\x00\x18\x00\x00\x00\x00\x00\x00\x00\x15\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x88\x0f\x01\x00\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x60\x00\x00\x00\x00\x00\x00\x00\x14\x00\x00\x00\x00\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x17\x00\x00\x00\x00\x00\x00\x00\x50\x05\x00\x00\x00\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x60\x04\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\xf0\x00\x00\x00\x00\x00\x00\x00\x09\x00\x00\x00\x00\x00\x00\x00\x18\x00\x00\x00\x00\x00\x00\x00\x1e\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\xfb\xff\xff\x6f\x00\x00\x00\x00\x01\x00\x00\x08\x00\x00\x00\x00\xfe\xff\xff\x6f\x00\x00\x00\x00\x30\x04\x00\x00\x00\x00\x00\x00\xff\xff\xff\x6f\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\xf0\xff\xff\x6f\x00\x00\x00\x00\x1e\x04\x00\x00\x00\x00\x00\x00\xf9\xff\xff\x6f\x00\x00\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".got", 0x10F88, "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xd0\x05\x00\x00\x00\x00\x00\x00\xd0\x05\x00\x00\x00\x00\x00\x00\xd0\x05\x00\x00\x00\x00\x00\x00\xd0\x05\x00\x00\x00\x00\x00\x00\x98\x0d\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x14\x10\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x18\x10\x01\x00\x00\x00\x00\x00\x54\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".data", 0x11000, "\x00\x00\x00\x00\x00\x00\x00\x00\x08\x10\x01\x00\x00\x00\x00\x00"), -Section(".init_array", 0x10D88, "\x50\x07\x00\x00\x00\x00\x00\x00"), -Section(".text", 0x640, "\x1f\x20\x03\xd5\x1d\x00\x80\xd2\x1e\x00\x80\xd2\xe5\x03\x00\xaa\xe1\x03\x40\xf9\xe2\x23\x00\x91\xe6\x03\x00\x91\x80\x00\x00\x90\x00\xf8\x47\xf9\x03\x00\x80\xd2\x04\x00\x80\xd2\xe1\xff\xff\x97\xec\xff\xff\x97\x80\x00\x00\x90\x00\xf0\x47\xf9\x40\x00\x00\xb4\xe4\xff\xff\x17\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x80\x00\x00\xb0\x00\x40\x00\x91\x81\x00\x00\xb0\x21\x40\x00\x91\x3f\x00\x00\xeb\xc0\x00\x00\x54\x81\x00\x00\x90\x21\xe4\x47\xf9\x61\x00\x00\xb4\xf0\x03\x01\xaa\x00\x02\x1f\xd6\xc0\x03\x5f\xd6\x80\x00\x00\xb0\x00\x40\x00\x91\x81\x00\x00\xb0\x21\x40\x00\x91\x21\x00\x00\xcb\x22\xfc\x7f\xd3\x41\x0c\x81\x8b\x21\xfc\x41\x93\xc1\x00\x00\xb4\x82\x00\x00\x90\x42\xfc\x47\xf9\x62\x00\x00\xb4\xf0\x03\x02\xaa\x00\x02\x1f\xd6\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\xfd\x7b\xbe\xa9\xfd\x03\x00\x91\xf3\x0b\x00\xf9\x93\x00\x00\xb0\x60\x42\x40\x39\x40\x01\x00\x35\x80\x00\x00\x90\x00\xe8\x47\xf9\x80\x00\x00\xb4\x80\x00\x00\xb0\x00\x04\x40\xf9\xb5\xff\xff\x97\xd8\xff\xff\x97\x20\x00\x80\x52\x60\x42\x00\x39\xf3\x0b\x40\xf9\xfd\x7b\xc2\xa8\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\xdc\xff\xff\x17\xff\x43\x00\xd1\x80\x00\x00\x90\x00\xf4\x47\xf9\x00\x00\x40\xb9\xe0\x0f\x00\xb9\xff\x0f\x00\xb9\x80\x00\x00\x90\x00\xec\x47\xf9\xe1\x0f\x40\xb9\x01\x00\x00\xb9\x80\x00\x00\x90\x00\xf4\x47\xf9\x00\x00\x40\xb9\xe0\x0f\x00\xb9\x80\x00\x00\x90\x00\xec\x47\xf9\xe1\x0f\x40\xb9\x01\x00\x00\xb9\x00\x00\x80\x52\xff\x43\x00\x91\xc0\x03\x5f\xd6")]), -Memmap([Annotation(Region(0x0,0x8A3), Attr("segment","02 0 2212")), -Annotation(Region(0x640,0x673), Attr("symbol","\"_start\"")), -Annotation(Region(0x0,0xF9), Attr("section","\".shstrtab\"")), -Annotation(Region(0x0,0x22C), Attr("section","\".strtab\"")), -Annotation(Region(0x0,0x857), Attr("section","\".symtab\"")), -Annotation(Region(0x0,0x2A), Attr("section","\".comment\"")), -Annotation(Region(0x238,0x252), Attr("section","\".interp\"")), -Annotation(Region(0x254,0x277), Attr("section","\".note.gnu.build-id\"")), -Annotation(Region(0x278,0x297), Attr("section","\".note.ABI-tag\"")), -Annotation(Region(0x298,0x2B3), Attr("section","\".gnu.hash\"")), -Annotation(Region(0x2B8,0x38F), Attr("section","\".dynsym\"")), -Annotation(Region(0x390,0x41C), Attr("section","\".dynstr\"")), -Annotation(Region(0x41E,0x42F), Attr("section","\".gnu.version\"")), -Annotation(Region(0x430,0x45F), Attr("section","\".gnu.version_r\"")), -Annotation(Region(0x460,0x54F), Attr("section","\".rela.dyn\"")), -Annotation(Region(0x550,0x5AF), Attr("section","\".rela.plt\"")), -Annotation(Region(0x5B0,0x5C7), Attr("section","\".init\"")), -Annotation(Region(0x5D0,0x62F), Attr("section","\".plt\"")), -Annotation(Region(0x5B0,0x5C7), Attr("code-region","()")), -Annotation(Region(0x5D0,0x62F), Attr("code-region","()")), -Annotation(Region(0x640,0x673), Attr("symbol-info","_start 0x640 52")), -Annotation(Region(0x674,0x687), Attr("symbol","\"call_weak_fn\"")), -Annotation(Region(0x674,0x687), Attr("symbol-info","call_weak_fn 0x674 20")), -Annotation(Region(0x754,0x7A7), Attr("symbol","\"main\"")), -Annotation(Region(0x754,0x7A7), Attr("symbol-info","main 0x754 84")), -Annotation(Region(0x7A8,0x7BB), Attr("section","\".fini\"")), -Annotation(Region(0x7BC,0x7BF), Attr("section","\".rodata\"")), -Annotation(Region(0x7C0,0x7FB), Attr("section","\".eh_frame_hdr\"")), -Annotation(Region(0x800,0x8A3), Attr("section","\".eh_frame\"")), -Annotation(Region(0x10D88,0x1100F), Attr("segment","03 0x10D88 664")), -Annotation(Region(0x10D90,0x10D97), Attr("section","\".fini_array\"")), -Annotation(Region(0x10D98,0x10F87), Attr("section","\".dynamic\"")), -Annotation(Region(0x10F88,0x10FFF), Attr("section","\".got\"")), -Annotation(Region(0x11000,0x1100F), Attr("section","\".data\"")), -Annotation(Region(0x10D88,0x10D8F), Attr("section","\".init_array\"")), -Annotation(Region(0x640,0x7A7), Attr("section","\".text\"")), -Annotation(Region(0x640,0x7A7), Attr("code-region","()")), -Annotation(Region(0x7A8,0x7BB), Attr("code-region","()"))]), -Program(Tid(1_500, "%000005dc"), Attrs([]), - Subs([Sub(Tid(1_450, "@__cxa_finalize"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x600"), -Attr("stub","()")]), "__cxa_finalize", Args([Arg(Tid(1_501, "%000005dd"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("__cxa_finalize_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(958, "@__cxa_finalize"), - Attrs([Attr("address","0x600")]), Phis([]), -Defs([Def(Tid(1_206, "%000004b6"), Attrs([Attr("address","0x600"), -Attr("insn","adrp x16, #65536")]), Var("R16",Imm(64)), Int(65536,64)), -Def(Tid(1_213, "%000004bd"), Attrs([Attr("address","0x604"), -Attr("insn","ldr x17, [x16, #0xfa8]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(4008,64)),LittleEndian(),64)), -Def(Tid(1_219, "%000004c3"), Attrs([Attr("address","0x608"), -Attr("insn","add x16, x16, #0xfa8")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(4008,64)))]), Jmps([Call(Tid(1_224, "%000004c8"), - Attrs([Attr("address","0x60C"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), -Sub(Tid(1_451, "@__do_global_dtors_aux"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x700")]), - "__do_global_dtors_aux", Args([Arg(Tid(1_502, "%000005de"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("__do_global_dtors_aux_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(674, "@__do_global_dtors_aux"), - Attrs([Attr("address","0x700")]), Phis([]), Defs([Def(Tid(678, "%000002a6"), - Attrs([Attr("address","0x700"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("#3",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(18446744073709551584,64))), -Def(Tid(684, "%000002ac"), Attrs([Attr("address","0x700"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("#3",Imm(64)),Var("R29",Imm(64)),LittleEndian(),64)), -Def(Tid(690, "%000002b2"), Attrs([Attr("address","0x700"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("#3",Imm(64)),Int(8,64)),Var("R30",Imm(64)),LittleEndian(),64)), -Def(Tid(694, "%000002b6"), Attrs([Attr("address","0x700"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("R31",Imm(64)), -Var("#3",Imm(64))), Def(Tid(700, "%000002bc"), - Attrs([Attr("address","0x704"), Attr("insn","mov x29, sp")]), - Var("R29",Imm(64)), Var("R31",Imm(64))), Def(Tid(708, "%000002c4"), - Attrs([Attr("address","0x708"), Attr("insn","str x19, [sp, #0x10]")]), - Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(16,64)),Var("R19",Imm(64)),LittleEndian(),64)), -Def(Tid(713, "%000002c9"), Attrs([Attr("address","0x70C"), -Attr("insn","adrp x19, #69632")]), Var("R19",Imm(64)), Int(69632,64)), -Def(Tid(720, "%000002d0"), Attrs([Attr("address","0x710"), -Attr("insn","ldrb w0, [x19, #0x10]")]), Var("R0",Imm(64)), -UNSIGNED(64,Load(Var("mem",Mem(64,8)),PLUS(Var("R19",Imm(64)),Int(16,64)),LittleEndian(),8)))]), -Jmps([Goto(Tid(727, "%000002d7"), Attrs([Attr("address","0x714"), -Attr("insn","cbnz w0, #0x28")]), - NEQ(Extract(31,0,Var("R0",Imm(64))),Int(0,32)), -Direct(Tid(725, "%000002d5"))), Goto(Tid(1_490, "%000005d2"), Attrs([]), - Int(1,1), Direct(Tid(903, "%00000387")))])), Blk(Tid(903, "%00000387"), - Attrs([Attr("address","0x718")]), Phis([]), Defs([Def(Tid(906, "%0000038a"), - Attrs([Attr("address","0x718"), Attr("insn","adrp x0, #65536")]), - Var("R0",Imm(64)), Int(65536,64)), Def(Tid(913, "%00000391"), - Attrs([Attr("address","0x71C"), Attr("insn","ldr x0, [x0, #0xfd0]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(4048,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(919, "%00000397"), Attrs([Attr("address","0x720"), -Attr("insn","cbz x0, #0x10")]), EQ(Var("R0",Imm(64)),Int(0,64)), -Direct(Tid(917, "%00000395"))), Goto(Tid(1_491, "%000005d3"), Attrs([]), - Int(1,1), Direct(Tid(942, "%000003ae")))])), Blk(Tid(942, "%000003ae"), - Attrs([Attr("address","0x724")]), Phis([]), Defs([Def(Tid(945, "%000003b1"), - Attrs([Attr("address","0x724"), Attr("insn","adrp x0, #69632")]), - Var("R0",Imm(64)), Int(69632,64)), Def(Tid(952, "%000003b8"), - Attrs([Attr("address","0x728"), Attr("insn","ldr x0, [x0, #0x8]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(957, "%000003bd"), Attrs([Attr("address","0x72C"), -Attr("insn","bl #-0x12c")]), Var("R30",Imm(64)), Int(1840,64))]), -Jmps([Call(Tid(960, "%000003c0"), Attrs([Attr("address","0x72C"), -Attr("insn","bl #-0x12c")]), Int(1,1), -(Direct(Tid(1_450, "@__cxa_finalize")),Direct(Tid(917, "%00000395"))))])), -Blk(Tid(917, "%00000395"), Attrs([Attr("address","0x730")]), Phis([]), -Defs([Def(Tid(925, "%0000039d"), Attrs([Attr("address","0x730"), -Attr("insn","bl #-0xa0")]), Var("R30",Imm(64)), Int(1844,64))]), -Jmps([Call(Tid(927, "%0000039f"), Attrs([Attr("address","0x730"), -Attr("insn","bl #-0xa0")]), Int(1,1), -(Direct(Tid(1_464, "@deregister_tm_clones")),Direct(Tid(929, "%000003a1"))))])), -Blk(Tid(929, "%000003a1"), Attrs([Attr("address","0x734")]), Phis([]), -Defs([Def(Tid(932, "%000003a4"), Attrs([Attr("address","0x734"), -Attr("insn","mov w0, #0x1")]), Var("R0",Imm(64)), Int(1,64)), -Def(Tid(940, "%000003ac"), Attrs([Attr("address","0x738"), -Attr("insn","strb w0, [x19, #0x10]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R19",Imm(64)),Int(16,64)),Extract(7,0,Var("R0",Imm(64))),LittleEndian(),8))]), -Jmps([Goto(Tid(1_492, "%000005d4"), Attrs([]), Int(1,1), -Direct(Tid(725, "%000002d5")))])), Blk(Tid(725, "%000002d5"), - Attrs([Attr("address","0x73C")]), Phis([]), Defs([Def(Tid(735, "%000002df"), - Attrs([Attr("address","0x73C"), Attr("insn","ldr x19, [sp, #0x10]")]), - Var("R19",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(16,64)),LittleEndian(),64)), -Def(Tid(742, "%000002e6"), Attrs([Attr("address","0x740"), -Attr("insn","ldp x29, x30, [sp], #0x20")]), Var("R29",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(747, "%000002eb"), Attrs([Attr("address","0x740"), -Attr("insn","ldp x29, x30, [sp], #0x20")]), Var("R30",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(751, "%000002ef"), Attrs([Attr("address","0x740"), -Attr("insn","ldp x29, x30, [sp], #0x20")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(32,64)))]), Jmps([Call(Tid(756, "%000002f4"), - Attrs([Attr("address","0x744"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), Sub(Tid(1_455, "@__libc_start_main"), - Attrs([Attr("c.proto","signed (*)(signed (*)(signed , char** , char** );* main, signed , char** , \nvoid* auxv)"), -Attr("address","0x5F0"), Attr("stub","()")]), "__libc_start_main", - Args([Arg(Tid(1_503, "%000005df"), - Attrs([Attr("c.layout","**[ : 64]"), -Attr("c.data","Top:u64 ptr ptr"), -Attr("c.type","signed (*)(signed , char** , char** );*")]), - Var("__libc_start_main_main",Imm(64)), Var("R0",Imm(64)), In()), -Arg(Tid(1_504, "%000005e0"), Attrs([Attr("c.layout","[signed : 32]"), -Attr("c.data","Top:u32"), Attr("c.type","signed")]), - Var("__libc_start_main_arg2",Imm(32)), LOW(32,Var("R1",Imm(64))), In()), -Arg(Tid(1_505, "%000005e1"), Attrs([Attr("c.layout","**[char : 8]"), -Attr("c.data","Top:u8 ptr ptr"), Attr("c.type","char**")]), - Var("__libc_start_main_arg3",Imm(64)), Var("R2",Imm(64)), Both()), -Arg(Tid(1_506, "%000005e2"), Attrs([Attr("c.layout","*[ : 8]"), -Attr("c.data","{} ptr"), Attr("c.type","void*")]), - Var("__libc_start_main_auxv",Imm(64)), Var("R3",Imm(64)), Both()), -Arg(Tid(1_507, "%000005e3"), Attrs([Attr("c.layout","[signed : 32]"), -Attr("c.data","Top:u32"), Attr("c.type","signed")]), - Var("__libc_start_main_result",Imm(32)), LOW(32,Var("R0",Imm(64))), -Out())]), Blks([Blk(Tid(507, "@__libc_start_main"), - Attrs([Attr("address","0x5F0")]), Phis([]), -Defs([Def(Tid(1_184, "%000004a0"), Attrs([Attr("address","0x5F0"), -Attr("insn","adrp x16, #65536")]), Var("R16",Imm(64)), Int(65536,64)), -Def(Tid(1_191, "%000004a7"), Attrs([Attr("address","0x5F4"), -Attr("insn","ldr x17, [x16, #0xfa0]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(4000,64)),LittleEndian(),64)), -Def(Tid(1_197, "%000004ad"), Attrs([Attr("address","0x5F8"), -Attr("insn","add x16, x16, #0xfa0")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(4000,64)))]), Jmps([Call(Tid(1_202, "%000004b2"), - Attrs([Attr("address","0x5FC"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), Sub(Tid(1_456, "@_fini"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x7A8")]), - "_fini", Args([Arg(Tid(1_508, "%000005e4"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("_fini_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(31, "@_fini"), - Attrs([Attr("address","0x7A8")]), Phis([]), Defs([Def(Tid(37, "%00000025"), - Attrs([Attr("address","0x7AC"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("#0",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(18446744073709551600,64))), -Def(Tid(43, "%0000002b"), Attrs([Attr("address","0x7AC"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("#0",Imm(64)),Var("R29",Imm(64)),LittleEndian(),64)), -Def(Tid(49, "%00000031"), Attrs([Attr("address","0x7AC"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("#0",Imm(64)),Int(8,64)),Var("R30",Imm(64)),LittleEndian(),64)), -Def(Tid(53, "%00000035"), Attrs([Attr("address","0x7AC"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("R31",Imm(64)), -Var("#0",Imm(64))), Def(Tid(59, "%0000003b"), Attrs([Attr("address","0x7B0"), -Attr("insn","mov x29, sp")]), Var("R29",Imm(64)), Var("R31",Imm(64))), -Def(Tid(66, "%00000042"), Attrs([Attr("address","0x7B4"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R29",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(71, "%00000047"), Attrs([Attr("address","0x7B4"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R30",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(75, "%0000004b"), Attrs([Attr("address","0x7B4"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(16,64)))]), Jmps([Call(Tid(80, "%00000050"), - Attrs([Attr("address","0x7B8"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), Sub(Tid(1_457, "@_init"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x5B0")]), - "_init", Args([Arg(Tid(1_509, "%000005e5"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("_init_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(1_296, "@_init"), - Attrs([Attr("address","0x5B0")]), Phis([]), -Defs([Def(Tid(1_302, "%00000516"), Attrs([Attr("address","0x5B4"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("#5",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(18446744073709551600,64))), -Def(Tid(1_308, "%0000051c"), Attrs([Attr("address","0x5B4"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("#5",Imm(64)),Var("R29",Imm(64)),LittleEndian(),64)), -Def(Tid(1_314, "%00000522"), Attrs([Attr("address","0x5B4"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("#5",Imm(64)),Int(8,64)),Var("R30",Imm(64)),LittleEndian(),64)), -Def(Tid(1_318, "%00000526"), Attrs([Attr("address","0x5B4"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("R31",Imm(64)), -Var("#5",Imm(64))), Def(Tid(1_324, "%0000052c"), - Attrs([Attr("address","0x5B8"), Attr("insn","mov x29, sp")]), - Var("R29",Imm(64)), Var("R31",Imm(64))), Def(Tid(1_329, "%00000531"), - Attrs([Attr("address","0x5BC"), Attr("insn","bl #0xb8")]), - Var("R30",Imm(64)), Int(1472,64))]), Jmps([Call(Tid(1_331, "%00000533"), - Attrs([Attr("address","0x5BC"), Attr("insn","bl #0xb8")]), Int(1,1), -(Direct(Tid(1_462, "@call_weak_fn")),Direct(Tid(1_333, "%00000535"))))])), -Blk(Tid(1_333, "%00000535"), Attrs([Attr("address","0x5C0")]), Phis([]), -Defs([Def(Tid(1_338, "%0000053a"), Attrs([Attr("address","0x5C0"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R29",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(1_343, "%0000053f"), Attrs([Attr("address","0x5C0"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R30",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(1_347, "%00000543"), Attrs([Attr("address","0x5C0"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(16,64)))]), Jmps([Call(Tid(1_352, "%00000548"), - Attrs([Attr("address","0x5C4"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), Sub(Tid(1_458, "@_start"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x640"), -Attr("entry-point","()")]), "_start", Args([Arg(Tid(1_510, "%000005e6"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("_start_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(444, "@_start"), - Attrs([Attr("address","0x640")]), Phis([]), Defs([Def(Tid(449, "%000001c1"), - Attrs([Attr("address","0x644"), Attr("insn","mov x29, #0x0")]), - Var("R29",Imm(64)), Int(0,64)), Def(Tid(454, "%000001c6"), - Attrs([Attr("address","0x648"), Attr("insn","mov x30, #0x0")]), - Var("R30",Imm(64)), Int(0,64)), Def(Tid(460, "%000001cc"), - Attrs([Attr("address","0x64C"), Attr("insn","mov x5, x0")]), - Var("R5",Imm(64)), Var("R0",Imm(64))), Def(Tid(467, "%000001d3"), - Attrs([Attr("address","0x650"), Attr("insn","ldr x1, [sp]")]), - Var("R1",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(473, "%000001d9"), Attrs([Attr("address","0x654"), -Attr("insn","add x2, sp, #0x8")]), Var("R2",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(8,64))), Def(Tid(479, "%000001df"), - Attrs([Attr("address","0x658"), Attr("insn","mov x6, sp")]), - Var("R6",Imm(64)), Var("R31",Imm(64))), Def(Tid(484, "%000001e4"), - Attrs([Attr("address","0x65C"), Attr("insn","adrp x0, #65536")]), - Var("R0",Imm(64)), Int(65536,64)), Def(Tid(491, "%000001eb"), - Attrs([Attr("address","0x660"), Attr("insn","ldr x0, [x0, #0xff0]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(4080,64)),LittleEndian(),64)), -Def(Tid(496, "%000001f0"), Attrs([Attr("address","0x664"), -Attr("insn","mov x3, #0x0")]), Var("R3",Imm(64)), Int(0,64)), -Def(Tid(501, "%000001f5"), Attrs([Attr("address","0x668"), -Attr("insn","mov x4, #0x0")]), Var("R4",Imm(64)), Int(0,64)), -Def(Tid(506, "%000001fa"), Attrs([Attr("address","0x66C"), -Attr("insn","bl #-0x7c")]), Var("R30",Imm(64)), Int(1648,64))]), -Jmps([Call(Tid(509, "%000001fd"), Attrs([Attr("address","0x66C"), -Attr("insn","bl #-0x7c")]), Int(1,1), -(Direct(Tid(1_455, "@__libc_start_main")),Direct(Tid(511, "%000001ff"))))])), -Blk(Tid(511, "%000001ff"), Attrs([Attr("address","0x670")]), Phis([]), -Defs([Def(Tid(514, "%00000202"), Attrs([Attr("address","0x670"), -Attr("insn","bl #-0x50")]), Var("R30",Imm(64)), Int(1652,64))]), -Jmps([Call(Tid(517, "%00000205"), Attrs([Attr("address","0x670"), -Attr("insn","bl #-0x50")]), Int(1,1), -(Direct(Tid(1_461, "@abort")),Direct(Tid(1_493, "%000005d5"))))])), -Blk(Tid(1_493, "%000005d5"), Attrs([]), Phis([]), Defs([]), -Jmps([Call(Tid(1_494, "%000005d6"), Attrs([]), Int(1,1), -(Direct(Tid(1_462, "@call_weak_fn")),))]))])), Sub(Tid(1_461, "@abort"), - Attrs([Attr("noreturn","()"), Attr("c.proto","void (*)(void)"), -Attr("address","0x620"), Attr("stub","()")]), "abort", Args([]), -Blks([Blk(Tid(515, "@abort"), Attrs([Attr("address","0x620")]), Phis([]), -Defs([Def(Tid(1_250, "%000004e2"), Attrs([Attr("address","0x620"), -Attr("insn","adrp x16, #65536")]), Var("R16",Imm(64)), Int(65536,64)), -Def(Tid(1_257, "%000004e9"), Attrs([Attr("address","0x624"), -Attr("insn","ldr x17, [x16, #0xfb8]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(4024,64)),LittleEndian(),64)), -Def(Tid(1_263, "%000004ef"), Attrs([Attr("address","0x628"), -Attr("insn","add x16, x16, #0xfb8")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(4024,64)))]), Jmps([Call(Tid(1_268, "%000004f4"), - Attrs([Attr("address","0x62C"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), Sub(Tid(1_462, "@call_weak_fn"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x674")]), - "call_weak_fn", Args([Arg(Tid(1_511, "%000005e7"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("call_weak_fn_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(519, "@call_weak_fn"), - Attrs([Attr("address","0x674")]), Phis([]), Defs([Def(Tid(522, "%0000020a"), - Attrs([Attr("address","0x674"), Attr("insn","adrp x0, #65536")]), - Var("R0",Imm(64)), Int(65536,64)), Def(Tid(529, "%00000211"), - Attrs([Attr("address","0x678"), Attr("insn","ldr x0, [x0, #0xfe0]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(4064,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(535, "%00000217"), Attrs([Attr("address","0x67C"), -Attr("insn","cbz x0, #0x8")]), EQ(Var("R0",Imm(64)),Int(0,64)), -Direct(Tid(533, "%00000215"))), Goto(Tid(1_495, "%000005d7"), Attrs([]), - Int(1,1), Direct(Tid(1_022, "%000003fe")))])), Blk(Tid(533, "%00000215"), - Attrs([Attr("address","0x684")]), Phis([]), Defs([]), -Jmps([Call(Tid(541, "%0000021d"), Attrs([Attr("address","0x684"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))])), -Blk(Tid(1_022, "%000003fe"), Attrs([Attr("address","0x680")]), Phis([]), -Defs([]), Jmps([Goto(Tid(1_025, "%00000401"), Attrs([Attr("address","0x680"), -Attr("insn","b #-0x70")]), Int(1,1), -Direct(Tid(1_023, "@__gmon_start__")))])), Blk(Tid(1_023, "@__gmon_start__"), - Attrs([Attr("address","0x610")]), Phis([]), -Defs([Def(Tid(1_228, "%000004cc"), Attrs([Attr("address","0x610"), -Attr("insn","adrp x16, #65536")]), Var("R16",Imm(64)), Int(65536,64)), -Def(Tid(1_235, "%000004d3"), Attrs([Attr("address","0x614"), -Attr("insn","ldr x17, [x16, #0xfb0]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(4016,64)),LittleEndian(),64)), -Def(Tid(1_241, "%000004d9"), Attrs([Attr("address","0x618"), -Attr("insn","add x16, x16, #0xfb0")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(4016,64)))]), Jmps([Call(Tid(1_246, "%000004de"), - Attrs([Attr("address","0x61C"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), -Sub(Tid(1_464, "@deregister_tm_clones"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x690")]), - "deregister_tm_clones", Args([Arg(Tid(1_512, "%000005e8"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("deregister_tm_clones_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(547, "@deregister_tm_clones"), - Attrs([Attr("address","0x690")]), Phis([]), Defs([Def(Tid(550, "%00000226"), - Attrs([Attr("address","0x690"), Attr("insn","adrp x0, #69632")]), - Var("R0",Imm(64)), Int(69632,64)), Def(Tid(556, "%0000022c"), - Attrs([Attr("address","0x694"), Attr("insn","add x0, x0, #0x10")]), - Var("R0",Imm(64)), PLUS(Var("R0",Imm(64)),Int(16,64))), -Def(Tid(561, "%00000231"), Attrs([Attr("address","0x698"), -Attr("insn","adrp x1, #69632")]), Var("R1",Imm(64)), Int(69632,64)), -Def(Tid(567, "%00000237"), Attrs([Attr("address","0x69C"), -Attr("insn","add x1, x1, #0x10")]), Var("R1",Imm(64)), -PLUS(Var("R1",Imm(64)),Int(16,64))), Def(Tid(573, "%0000023d"), - Attrs([Attr("address","0x6A0"), Attr("insn","cmp x1, x0")]), - Var("#1",Imm(64)), NOT(Var("R0",Imm(64)))), Def(Tid(578, "%00000242"), - Attrs([Attr("address","0x6A0"), Attr("insn","cmp x1, x0")]), - Var("#2",Imm(64)), PLUS(Var("R1",Imm(64)),NOT(Var("R0",Imm(64))))), -Def(Tid(584, "%00000248"), Attrs([Attr("address","0x6A0"), -Attr("insn","cmp x1, x0")]), Var("VF",Imm(1)), -NEQ(SIGNED(65,PLUS(Var("#2",Imm(64)),Int(1,64))),PLUS(PLUS(SIGNED(65,Var("R1",Imm(64))),SIGNED(65,Var("#1",Imm(64)))),Int(1,65)))), -Def(Tid(590, "%0000024e"), Attrs([Attr("address","0x6A0"), -Attr("insn","cmp x1, x0")]), Var("CF",Imm(1)), -NEQ(UNSIGNED(65,PLUS(Var("#2",Imm(64)),Int(1,64))),PLUS(PLUS(UNSIGNED(65,Var("R1",Imm(64))),UNSIGNED(65,Var("#1",Imm(64)))),Int(1,65)))), -Def(Tid(594, "%00000252"), Attrs([Attr("address","0x6A0"), -Attr("insn","cmp x1, x0")]), Var("ZF",Imm(1)), -EQ(PLUS(Var("#2",Imm(64)),Int(1,64)),Int(0,64))), Def(Tid(598, "%00000256"), - Attrs([Attr("address","0x6A0"), Attr("insn","cmp x1, x0")]), - Var("NF",Imm(1)), Extract(63,63,PLUS(Var("#2",Imm(64)),Int(1,64))))]), -Jmps([Goto(Tid(604, "%0000025c"), Attrs([Attr("address","0x6A4"), -Attr("insn","b.eq #0x18")]), EQ(Var("ZF",Imm(1)),Int(1,1)), -Direct(Tid(602, "%0000025a"))), Goto(Tid(1_496, "%000005d8"), Attrs([]), - Int(1,1), Direct(Tid(992, "%000003e0")))])), Blk(Tid(992, "%000003e0"), - Attrs([Attr("address","0x6A8")]), Phis([]), Defs([Def(Tid(995, "%000003e3"), - Attrs([Attr("address","0x6A8"), Attr("insn","adrp x1, #65536")]), - Var("R1",Imm(64)), Int(65536,64)), Def(Tid(1_002, "%000003ea"), - Attrs([Attr("address","0x6AC"), Attr("insn","ldr x1, [x1, #0xfc8]")]), - Var("R1",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R1",Imm(64)),Int(4040,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(1_007, "%000003ef"), Attrs([Attr("address","0x6B0"), -Attr("insn","cbz x1, #0xc")]), EQ(Var("R1",Imm(64)),Int(0,64)), -Direct(Tid(602, "%0000025a"))), Goto(Tid(1_497, "%000005d9"), Attrs([]), - Int(1,1), Direct(Tid(1_011, "%000003f3")))])), Blk(Tid(602, "%0000025a"), - Attrs([Attr("address","0x6BC")]), Phis([]), Defs([]), -Jmps([Call(Tid(610, "%00000262"), Attrs([Attr("address","0x6BC"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))])), -Blk(Tid(1_011, "%000003f3"), Attrs([Attr("address","0x6B4")]), Phis([]), -Defs([Def(Tid(1_015, "%000003f7"), Attrs([Attr("address","0x6B4"), -Attr("insn","mov x16, x1")]), Var("R16",Imm(64)), Var("R1",Imm(64)))]), -Jmps([Call(Tid(1_020, "%000003fc"), Attrs([Attr("address","0x6B8"), -Attr("insn","br x16")]), Int(1,1), (Indirect(Var("R16",Imm(64))),))]))])), -Sub(Tid(1_467, "@frame_dummy"), Attrs([Attr("c.proto","signed (*)(void)"), -Attr("address","0x750")]), "frame_dummy", Args([Arg(Tid(1_513, "%000005e9"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("frame_dummy_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(762, "@frame_dummy"), - Attrs([Attr("address","0x750")]), Phis([]), Defs([]), -Jmps([Call(Tid(764, "%000002fc"), Attrs([Attr("address","0x750"), -Attr("insn","b #-0x90")]), Int(1,1), -(Direct(Tid(1_469, "@register_tm_clones")),))]))])), Sub(Tid(1_468, "@main"), - Attrs([Attr("c.proto","signed (*)(signed argc, const char** argv)"), -Attr("address","0x754")]), "main", Args([Arg(Tid(1_514, "%000005ea"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("main_argc",Imm(32)), -LOW(32,Var("R0",Imm(64))), In()), Arg(Tid(1_515, "%000005eb"), - Attrs([Attr("c.layout","**[char : 8]"), Attr("c.data","Top:u8 ptr ptr"), -Attr("c.type"," const char**")]), Var("main_argv",Imm(64)), -Var("R1",Imm(64)), Both()), Arg(Tid(1_516, "%000005ec"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("main_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(766, "@main"), - Attrs([Attr("address","0x754")]), Phis([]), Defs([Def(Tid(770, "%00000302"), - Attrs([Attr("address","0x754"), Attr("insn","sub sp, sp, #0x10")]), - Var("R31",Imm(64)), PLUS(Var("R31",Imm(64)),Int(18446744073709551600,64))), -Def(Tid(775, "%00000307"), Attrs([Attr("address","0x758"), -Attr("insn","adrp x0, #65536")]), Var("R0",Imm(64)), Int(65536,64)), -Def(Tid(782, "%0000030e"), Attrs([Attr("address","0x75C"), -Attr("insn","ldr x0, [x0, #0xfe8]")]), Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(4072,64)),LittleEndian(),64)), -Def(Tid(789, "%00000315"), Attrs([Attr("address","0x760"), -Attr("insn","ldr w0, [x0]")]), Var("R0",Imm(64)), -UNSIGNED(64,Load(Var("mem",Mem(64,8)),Var("R0",Imm(64)),LittleEndian(),32))), -Def(Tid(797, "%0000031d"), Attrs([Attr("address","0x764"), -Attr("insn","str w0, [sp, #0xc]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(12,64)),Extract(31,0,Var("R0",Imm(64))),LittleEndian(),32)), -Def(Tid(804, "%00000324"), Attrs([Attr("address","0x768"), -Attr("insn","str wzr, [sp, #0xc]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(12,64)),Int(0,32),LittleEndian(),32)), -Def(Tid(809, "%00000329"), Attrs([Attr("address","0x76C"), -Attr("insn","adrp x0, #65536")]), Var("R0",Imm(64)), Int(65536,64)), -Def(Tid(816, "%00000330"), Attrs([Attr("address","0x770"), -Attr("insn","ldr x0, [x0, #0xfd8]")]), Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(4056,64)),LittleEndian(),64)), -Def(Tid(823, "%00000337"), Attrs([Attr("address","0x774"), -Attr("insn","ldr w1, [sp, #0xc]")]), Var("R1",Imm(64)), -UNSIGNED(64,Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(12,64)),LittleEndian(),32))), -Def(Tid(831, "%0000033f"), Attrs([Attr("address","0x778"), -Attr("insn","str w1, [x0]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("R0",Imm(64)),Extract(31,0,Var("R1",Imm(64))),LittleEndian(),32)), -Def(Tid(836, "%00000344"), Attrs([Attr("address","0x77C"), -Attr("insn","adrp x0, #65536")]), Var("R0",Imm(64)), Int(65536,64)), -Def(Tid(843, "%0000034b"), Attrs([Attr("address","0x780"), -Attr("insn","ldr x0, [x0, #0xfe8]")]), Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(4072,64)),LittleEndian(),64)), -Def(Tid(850, "%00000352"), Attrs([Attr("address","0x784"), -Attr("insn","ldr w0, [x0]")]), Var("R0",Imm(64)), -UNSIGNED(64,Load(Var("mem",Mem(64,8)),Var("R0",Imm(64)),LittleEndian(),32))), -Def(Tid(858, "%0000035a"), Attrs([Attr("address","0x788"), -Attr("insn","str w0, [sp, #0xc]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(12,64)),Extract(31,0,Var("R0",Imm(64))),LittleEndian(),32)), -Def(Tid(863, "%0000035f"), Attrs([Attr("address","0x78C"), -Attr("insn","adrp x0, #65536")]), Var("R0",Imm(64)), Int(65536,64)), -Def(Tid(870, "%00000366"), Attrs([Attr("address","0x790"), -Attr("insn","ldr x0, [x0, #0xfd8]")]), Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(4056,64)),LittleEndian(),64)), -Def(Tid(877, "%0000036d"), Attrs([Attr("address","0x794"), -Attr("insn","ldr w1, [sp, #0xc]")]), Var("R1",Imm(64)), -UNSIGNED(64,Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(12,64)),LittleEndian(),32))), -Def(Tid(885, "%00000375"), Attrs([Attr("address","0x798"), -Attr("insn","str w1, [x0]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("R0",Imm(64)),Extract(31,0,Var("R1",Imm(64))),LittleEndian(),32)), -Def(Tid(890, "%0000037a"), Attrs([Attr("address","0x79C"), -Attr("insn","mov w0, #0x0")]), Var("R0",Imm(64)), Int(0,64)), -Def(Tid(896, "%00000380"), Attrs([Attr("address","0x7A0"), -Attr("insn","add sp, sp, #0x10")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(16,64)))]), Jmps([Call(Tid(901, "%00000385"), - Attrs([Attr("address","0x7A4"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), -Sub(Tid(1_469, "@register_tm_clones"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x6C0")]), - "register_tm_clones", Args([Arg(Tid(1_517, "%000005ed"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("register_tm_clones_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(612, "@register_tm_clones"), Attrs([Attr("address","0x6C0")]), - Phis([]), Defs([Def(Tid(615, "%00000267"), Attrs([Attr("address","0x6C0"), -Attr("insn","adrp x0, #69632")]), Var("R0",Imm(64)), Int(69632,64)), -Def(Tid(621, "%0000026d"), Attrs([Attr("address","0x6C4"), -Attr("insn","add x0, x0, #0x10")]), Var("R0",Imm(64)), -PLUS(Var("R0",Imm(64)),Int(16,64))), Def(Tid(626, "%00000272"), - Attrs([Attr("address","0x6C8"), Attr("insn","adrp x1, #69632")]), - Var("R1",Imm(64)), Int(69632,64)), Def(Tid(632, "%00000278"), - Attrs([Attr("address","0x6CC"), Attr("insn","add x1, x1, #0x10")]), - Var("R1",Imm(64)), PLUS(Var("R1",Imm(64)),Int(16,64))), -Def(Tid(639, "%0000027f"), Attrs([Attr("address","0x6D0"), -Attr("insn","sub x1, x1, x0")]), Var("R1",Imm(64)), -PLUS(PLUS(Var("R1",Imm(64)),NOT(Var("R0",Imm(64)))),Int(1,64))), -Def(Tid(645, "%00000285"), Attrs([Attr("address","0x6D4"), -Attr("insn","lsr x2, x1, #63")]), Var("R2",Imm(64)), -Concat(Int(0,63),Extract(63,63,Var("R1",Imm(64))))), -Def(Tid(652, "%0000028c"), Attrs([Attr("address","0x6D8"), -Attr("insn","add x1, x2, x1, asr #3")]), Var("R1",Imm(64)), -PLUS(Var("R2",Imm(64)),ARSHIFT(Var("R1",Imm(64)),Int(3,3)))), -Def(Tid(658, "%00000292"), Attrs([Attr("address","0x6DC"), -Attr("insn","asr x1, x1, #1")]), Var("R1",Imm(64)), -SIGNED(64,Extract(63,1,Var("R1",Imm(64)))))]), -Jmps([Goto(Tid(664, "%00000298"), Attrs([Attr("address","0x6E0"), -Attr("insn","cbz x1, #0x18")]), EQ(Var("R1",Imm(64)),Int(0,64)), -Direct(Tid(662, "%00000296"))), Goto(Tid(1_498, "%000005da"), Attrs([]), - Int(1,1), Direct(Tid(962, "%000003c2")))])), Blk(Tid(962, "%000003c2"), - Attrs([Attr("address","0x6E4")]), Phis([]), Defs([Def(Tid(965, "%000003c5"), - Attrs([Attr("address","0x6E4"), Attr("insn","adrp x2, #65536")]), - Var("R2",Imm(64)), Int(65536,64)), Def(Tid(972, "%000003cc"), - Attrs([Attr("address","0x6E8"), Attr("insn","ldr x2, [x2, #0xff8]")]), - Var("R2",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R2",Imm(64)),Int(4088,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(977, "%000003d1"), Attrs([Attr("address","0x6EC"), -Attr("insn","cbz x2, #0xc")]), EQ(Var("R2",Imm(64)),Int(0,64)), -Direct(Tid(662, "%00000296"))), Goto(Tid(1_499, "%000005db"), Attrs([]), - Int(1,1), Direct(Tid(981, "%000003d5")))])), Blk(Tid(662, "%00000296"), - Attrs([Attr("address","0x6F8")]), Phis([]), Defs([]), -Jmps([Call(Tid(670, "%0000029e"), Attrs([Attr("address","0x6F8"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))])), -Blk(Tid(981, "%000003d5"), Attrs([Attr("address","0x6F0")]), Phis([]), -Defs([Def(Tid(985, "%000003d9"), Attrs([Attr("address","0x6F0"), -Attr("insn","mov x16, x2")]), Var("R16",Imm(64)), Var("R2",Imm(64)))]), -Jmps([Call(Tid(990, "%000003de"), Attrs([Attr("address","0x6F4"), -Attr("insn","br x16")]), Int(1,1), -(Indirect(Var("R16",Imm(64))),))]))]))]))) \ No newline at end of file diff --git a/src/test/incorrect/basicassign1/gcc_pic/basicassign1.bir b/src/test/incorrect/basicassign1/gcc_pic/basicassign1.bir deleted file mode 100644 index 09c34df07..000000000 --- a/src/test/incorrect/basicassign1/gcc_pic/basicassign1.bir +++ /dev/null @@ -1,243 +0,0 @@ -000005dc: program -000005aa: sub __cxa_finalize(__cxa_finalize_result) -000005dd: __cxa_finalize_result :: out u32 = low:32[R0] - -000003be: -000004b6: R16 := 0x10000 -000004bd: R17 := mem[R16 + 0xFA8, el]:u64 -000004c3: R16 := R16 + 0xFA8 -000004c8: call R17 with noreturn - -000005ab: sub __do_global_dtors_aux(__do_global_dtors_aux_result) -000005de: __do_global_dtors_aux_result :: out u32 = low:32[R0] - -000002a2: -000002a6: #3 := R31 - 0x20 -000002ac: mem := mem with [#3, el]:u64 <- R29 -000002b2: mem := mem with [#3 + 8, el]:u64 <- R30 -000002b6: R31 := #3 -000002bc: R29 := R31 -000002c4: mem := mem with [R31 + 0x10, el]:u64 <- R19 -000002c9: R19 := 0x11000 -000002d0: R0 := pad:64[mem[R19 + 0x10]] -000002d7: when 31:0[R0] <> 0 goto %000002d5 -000005d2: goto %00000387 - -00000387: -0000038a: R0 := 0x10000 -00000391: R0 := mem[R0 + 0xFD0, el]:u64 -00000397: when R0 = 0 goto %00000395 -000005d3: goto %000003ae - -000003ae: -000003b1: R0 := 0x11000 -000003b8: R0 := mem[R0 + 8, el]:u64 -000003bd: R30 := 0x730 -000003c0: call @__cxa_finalize with return %00000395 - -00000395: -0000039d: R30 := 0x734 -0000039f: call @deregister_tm_clones with return %000003a1 - -000003a1: -000003a4: R0 := 1 -000003ac: mem := mem with [R19 + 0x10] <- 7:0[R0] -000005d4: goto %000002d5 - -000002d5: -000002df: R19 := mem[R31 + 0x10, el]:u64 -000002e6: R29 := mem[R31, el]:u64 -000002eb: R30 := mem[R31 + 8, el]:u64 -000002ef: R31 := R31 + 0x20 -000002f4: call R30 with noreturn - -000005af: sub __libc_start_main(__libc_start_main_main, __libc_start_main_arg2, __libc_start_main_arg3, __libc_start_main_auxv, __libc_start_main_result) -000005df: __libc_start_main_main :: in u64 = R0 -000005e0: __libc_start_main_arg2 :: in u32 = low:32[R1] -000005e1: __libc_start_main_arg3 :: in out u64 = R2 -000005e2: __libc_start_main_auxv :: in out u64 = R3 -000005e3: __libc_start_main_result :: out u32 = low:32[R0] - -000001fb: -000004a0: R16 := 0x10000 -000004a7: R17 := mem[R16 + 0xFA0, el]:u64 -000004ad: R16 := R16 + 0xFA0 -000004b2: call R17 with noreturn - -000005b0: sub _fini(_fini_result) -000005e4: _fini_result :: out u32 = low:32[R0] - -0000001f: -00000025: #0 := R31 - 0x10 -0000002b: mem := mem with [#0, el]:u64 <- R29 -00000031: mem := mem with [#0 + 8, el]:u64 <- R30 -00000035: R31 := #0 -0000003b: R29 := R31 -00000042: R29 := mem[R31, el]:u64 -00000047: R30 := mem[R31 + 8, el]:u64 -0000004b: R31 := R31 + 0x10 -00000050: call R30 with noreturn - -000005b1: sub _init(_init_result) -000005e5: _init_result :: out u32 = low:32[R0] - -00000510: -00000516: #5 := R31 - 0x10 -0000051c: mem := mem with [#5, el]:u64 <- R29 -00000522: mem := mem with [#5 + 8, el]:u64 <- R30 -00000526: R31 := #5 -0000052c: R29 := R31 -00000531: R30 := 0x5C0 -00000533: call @call_weak_fn with return %00000535 - -00000535: -0000053a: R29 := mem[R31, el]:u64 -0000053f: R30 := mem[R31 + 8, el]:u64 -00000543: R31 := R31 + 0x10 -00000548: call R30 with noreturn - -000005b2: sub _start(_start_result) -000005e6: _start_result :: out u32 = low:32[R0] - -000001bc: -000001c1: R29 := 0 -000001c6: R30 := 0 -000001cc: R5 := R0 -000001d3: R1 := mem[R31, el]:u64 -000001d9: R2 := R31 + 8 -000001df: R6 := R31 -000001e4: R0 := 0x10000 -000001eb: R0 := mem[R0 + 0xFF0, el]:u64 -000001f0: R3 := 0 -000001f5: R4 := 0 -000001fa: R30 := 0x670 -000001fd: call @__libc_start_main with return %000001ff - -000001ff: -00000202: R30 := 0x674 -00000205: call @abort with return %000005d5 - -000005d5: -000005d6: call @call_weak_fn with noreturn - -000005b5: sub abort() - - -00000203: -000004e2: R16 := 0x10000 -000004e9: R17 := mem[R16 + 0xFB8, el]:u64 -000004ef: R16 := R16 + 0xFB8 -000004f4: call R17 with noreturn - -000005b6: sub call_weak_fn(call_weak_fn_result) -000005e7: call_weak_fn_result :: out u32 = low:32[R0] - -00000207: -0000020a: R0 := 0x10000 -00000211: R0 := mem[R0 + 0xFE0, el]:u64 -00000217: when R0 = 0 goto %00000215 -000005d7: goto %000003fe - -00000215: -0000021d: call R30 with noreturn - -000003fe: -00000401: goto @__gmon_start__ - -000003ff: -000004cc: R16 := 0x10000 -000004d3: R17 := mem[R16 + 0xFB0, el]:u64 -000004d9: R16 := R16 + 0xFB0 -000004de: call R17 with noreturn - -000005b8: sub deregister_tm_clones(deregister_tm_clones_result) -000005e8: deregister_tm_clones_result :: out u32 = low:32[R0] - -00000223: -00000226: R0 := 0x11000 -0000022c: R0 := R0 + 0x10 -00000231: R1 := 0x11000 -00000237: R1 := R1 + 0x10 -0000023d: #1 := ~R0 -00000242: #2 := R1 + ~R0 -00000248: VF := extend:65[#2 + 1] <> extend:65[R1] + extend:65[#1] + 1 -0000024e: CF := pad:65[#2 + 1] <> pad:65[R1] + pad:65[#1] + 1 -00000252: ZF := #2 + 1 = 0 -00000256: NF := 63:63[#2 + 1] -0000025c: when ZF goto %0000025a -000005d8: goto %000003e0 - -000003e0: -000003e3: R1 := 0x10000 -000003ea: R1 := mem[R1 + 0xFC8, el]:u64 -000003ef: when R1 = 0 goto %0000025a -000005d9: goto %000003f3 - -0000025a: -00000262: call R30 with noreturn - -000003f3: -000003f7: R16 := R1 -000003fc: call R16 with noreturn - -000005bb: sub frame_dummy(frame_dummy_result) -000005e9: frame_dummy_result :: out u32 = low:32[R0] - -000002fa: -000002fc: call @register_tm_clones with noreturn - -000005bc: sub main(main_argc, main_argv, main_result) -000005ea: main_argc :: in u32 = low:32[R0] -000005eb: main_argv :: in out u64 = R1 -000005ec: main_result :: out u32 = low:32[R0] - -000002fe: -00000302: R31 := R31 - 0x10 -00000307: R0 := 0x10000 -0000030e: R0 := mem[R0 + 0xFE8, el]:u64 -00000315: R0 := pad:64[mem[R0, el]:u32] -0000031d: mem := mem with [R31 + 0xC, el]:u32 <- 31:0[R0] -00000324: mem := mem with [R31 + 0xC, el]:u32 <- 0 -00000329: R0 := 0x10000 -00000330: R0 := mem[R0 + 0xFD8, el]:u64 -00000337: R1 := pad:64[mem[R31 + 0xC, el]:u32] -0000033f: mem := mem with [R0, el]:u32 <- 31:0[R1] -00000344: R0 := 0x10000 -0000034b: R0 := mem[R0 + 0xFE8, el]:u64 -00000352: R0 := pad:64[mem[R0, el]:u32] -0000035a: mem := mem with [R31 + 0xC, el]:u32 <- 31:0[R0] -0000035f: R0 := 0x10000 -00000366: R0 := mem[R0 + 0xFD8, el]:u64 -0000036d: R1 := pad:64[mem[R31 + 0xC, el]:u32] -00000375: mem := mem with [R0, el]:u32 <- 31:0[R1] -0000037a: R0 := 0 -00000380: R31 := R31 + 0x10 -00000385: call R30 with noreturn - -000005bd: sub register_tm_clones(register_tm_clones_result) -000005ed: register_tm_clones_result :: out u32 = low:32[R0] - -00000264: -00000267: R0 := 0x11000 -0000026d: R0 := R0 + 0x10 -00000272: R1 := 0x11000 -00000278: R1 := R1 + 0x10 -0000027f: R1 := R1 + ~R0 + 1 -00000285: R2 := 0.63:63[R1] -0000028c: R1 := R2 + (R1 ~>> 3) -00000292: R1 := extend:64[63:1[R1]] -00000298: when R1 = 0 goto %00000296 -000005da: goto %000003c2 - -000003c2: -000003c5: R2 := 0x10000 -000003cc: R2 := mem[R2 + 0xFF8, el]:u64 -000003d1: when R2 = 0 goto %00000296 -000005db: goto %000003d5 - -00000296: -0000029e: call R30 with noreturn - -000003d5: -000003d9: R16 := R2 -000003de: call R16 with noreturn diff --git a/src/test/incorrect/basicassign1/gcc_pic/basicassign1.expected b/src/test/incorrect/basicassign1/gcc_pic/basicassign1.expected index 9614d69b3..40aaf7bd2 100644 --- a/src/test/incorrect/basicassign1/gcc_pic/basicassign1.expected +++ b/src/test/incorrect/basicassign1/gcc_pic/basicassign1.expected @@ -1,15 +1,13 @@ var {:extern} Gamma_R0: bool; var {:extern} Gamma_R1: bool; -var {:extern} Gamma_R31: bool; +var {:extern} Gamma_R2: bool; var {:extern} Gamma_mem: [bv64]bool; -var {:extern} Gamma_stack: [bv64]bool; var {:extern} R0: bv64; var {:extern} R1: bv64; -var {:extern} R31: bv64; +var {:extern} R2: bv64; var {:extern} mem: [bv64]bv8; -var {:extern} stack: [bv64]bv8; const {:extern} $z_addr: bv64; -axiom ($z_addr == 69652bv64); +axiom ($z_addr == 4325400bv64); function {:extern} L(mem$in: [bv64]bv8, index: bv64) returns (bool) { (if (index == $z_addr) then true else false) } @@ -44,13 +42,7 @@ procedure {:extern} rely(); modifies Gamma_mem, mem; ensures (Gamma_mem == old(Gamma_mem)); ensures (mem == old(mem)); - free ensures (memory_load32_le(mem, 1980bv64) == 131073bv32); - free ensures (memory_load64_le(mem, 69000bv64) == 1872bv64); - free ensures (memory_load64_le(mem, 69008bv64) == 1792bv64); - free ensures (memory_load64_le(mem, 69592bv64) == 69652bv64); - free ensures (memory_load64_le(mem, 69608bv64) == 69656bv64); - free ensures (memory_load64_le(mem, 69616bv64) == 1876bv64); - free ensures (memory_load64_le(mem, 69640bv64) == 69640bv64); + free ensures (memory_load32_le(mem, 4196312bv64) == 131073bv32); procedure {:extern} rely_transitive(); modifies Gamma_mem, mem; @@ -68,93 +60,41 @@ procedure {:extern} rely_reflexive(); procedure {:extern} guarantee_reflexive(); modifies Gamma_mem, mem; -procedure main_1876(); - modifies Gamma_R0, Gamma_R1, Gamma_R31, Gamma_mem, Gamma_stack, R0, R1, R31, mem, stack; - free requires (memory_load64_le(mem, 69632bv64) == 0bv64); - free requires (memory_load64_le(mem, 69640bv64) == 69640bv64); - free requires (memory_load32_le(mem, 1980bv64) == 131073bv32); - free requires (memory_load64_le(mem, 69000bv64) == 1872bv64); - free requires (memory_load64_le(mem, 69008bv64) == 1792bv64); - free requires (memory_load64_le(mem, 69592bv64) == 69652bv64); - free requires (memory_load64_le(mem, 69608bv64) == 69656bv64); - free requires (memory_load64_le(mem, 69616bv64) == 1876bv64); - free requires (memory_load64_le(mem, 69640bv64) == 69640bv64); - free ensures (Gamma_R31 == old(Gamma_R31)); - free ensures (R31 == old(R31)); - free ensures (memory_load32_le(mem, 1980bv64) == 131073bv32); - free ensures (memory_load64_le(mem, 69000bv64) == 1872bv64); - free ensures (memory_load64_le(mem, 69008bv64) == 1792bv64); - free ensures (memory_load64_le(mem, 69592bv64) == 69652bv64); - free ensures (memory_load64_le(mem, 69608bv64) == 69656bv64); - free ensures (memory_load64_le(mem, 69616bv64) == 1876bv64); - free ensures (memory_load64_le(mem, 69640bv64) == 69640bv64); +procedure main(); + modifies Gamma_R0, Gamma_R1, Gamma_R2, Gamma_mem, R0, R1, R2, mem; + free requires (memory_load64_le(mem, 4325376bv64) == 0bv64); + free requires (memory_load64_le(mem, 4325384bv64) == 0bv64); + free requires (memory_load32_le(mem, 4196312bv64) == 131073bv32); + free ensures (memory_load32_le(mem, 4196312bv64) == 131073bv32); -implementation main_1876() +implementation main() { - var Gamma_load18: bool; - var Gamma_load19: bool; - var Gamma_load20: bool; - var Gamma_load21: bool; - var Gamma_load22: bool; - var Gamma_load23: bool; - var Gamma_load24: bool; - var Gamma_load25: bool; - var load18: bv64; - var load19: bv32; - var load20: bv64; - var load21: bv32; - var load22: bv64; - var load23: bv32; - var load24: bv64; - var load25: bv32; + var $load$14: bv64; + var $load$15: bv64; + var $load$16: bv32; + var Gamma_$load$14: bool; + var Gamma_$load$15: bool; + var Gamma_$load$16: bool; lmain: assume {:captureState "lmain"} true; - R31, Gamma_R31 := bvadd64(R31, 18446744073709551600bv64), Gamma_R31; - R0, Gamma_R0 := 65536bv64, true; - call rely(); - load18, Gamma_load18 := memory_load64_le(mem, bvadd64(R0, 4072bv64)), (gamma_load64(Gamma_mem, bvadd64(R0, 4072bv64)) || L(mem, bvadd64(R0, 4072bv64))); - R0, Gamma_R0 := load18, Gamma_load18; - call rely(); - load19, Gamma_load19 := memory_load32_le(mem, R0), (gamma_load32(Gamma_mem, R0) || L(mem, R0)); - R0, Gamma_R0 := zero_extend32_32(load19), Gamma_load19; - stack, Gamma_stack := memory_store32_le(stack, bvadd64(R31, 12bv64), R0[32:0]), gamma_store32(Gamma_stack, bvadd64(R31, 12bv64), Gamma_R0); - assume {:captureState "%0000031d"} true; - stack, Gamma_stack := memory_store32_le(stack, bvadd64(R31, 12bv64), 0bv32), gamma_store32(Gamma_stack, bvadd64(R31, 12bv64), true); - assume {:captureState "%00000324"} true; - R0, Gamma_R0 := 65536bv64, true; - call rely(); - load20, Gamma_load20 := memory_load64_le(mem, bvadd64(R0, 4056bv64)), (gamma_load64(Gamma_mem, bvadd64(R0, 4056bv64)) || L(mem, bvadd64(R0, 4056bv64))); - R0, Gamma_R0 := load20, Gamma_load20; - load21, Gamma_load21 := memory_load32_le(stack, bvadd64(R31, 12bv64)), gamma_load32(Gamma_stack, bvadd64(R31, 12bv64)); - R1, Gamma_R1 := zero_extend32_32(load21), Gamma_load21; - call rely(); - assert (L(mem, R0) ==> Gamma_R1); - mem, Gamma_mem := memory_store32_le(mem, R0, R1[32:0]), gamma_store32(Gamma_mem, R0, Gamma_R1); - assume {:captureState "%0000033f"} true; - R0, Gamma_R0 := 65536bv64, true; + R1, Gamma_R1 := 4321280bv64, true; + R0, Gamma_R0 := 0bv64, true; call rely(); - load22, Gamma_load22 := memory_load64_le(mem, bvadd64(R0, 4072bv64)), (gamma_load64(Gamma_mem, bvadd64(R0, 4072bv64)) || L(mem, bvadd64(R0, 4072bv64))); - R0, Gamma_R0 := load22, Gamma_load22; + $load$14, Gamma_$load$14 := memory_load64_le(mem, bvadd64(R1, 4080bv64)), (gamma_load64(Gamma_mem, bvadd64(R1, 4080bv64)) || L(mem, bvadd64(R1, 4080bv64))); + R2, Gamma_R2 := $load$14, Gamma_$load$14; call rely(); - load23, Gamma_load23 := memory_load32_le(mem, R0), (gamma_load32(Gamma_mem, R0) || L(mem, R0)); - R0, Gamma_R0 := zero_extend32_32(load23), Gamma_load23; - stack, Gamma_stack := memory_store32_le(stack, bvadd64(R31, 12bv64), R0[32:0]), gamma_store32(Gamma_stack, bvadd64(R31, 12bv64), Gamma_R0); - assume {:captureState "%0000035a"} true; - R0, Gamma_R0 := 65536bv64, true; + $load$15, Gamma_$load$15 := memory_load64_le(mem, bvadd64(R1, 4064bv64)), (gamma_load64(Gamma_mem, bvadd64(R1, 4064bv64)) || L(mem, bvadd64(R1, 4064bv64))); + R1, Gamma_R1 := $load$15, Gamma_$load$15; call rely(); - load24, Gamma_load24 := memory_load64_le(mem, bvadd64(R0, 4056bv64)), (gamma_load64(Gamma_mem, bvadd64(R0, 4056bv64)) || L(mem, bvadd64(R0, 4056bv64))); - R0, Gamma_R0 := load24, Gamma_load24; - load25, Gamma_load25 := memory_load32_le(stack, bvadd64(R31, 12bv64)), gamma_load32(Gamma_stack, bvadd64(R31, 12bv64)); - R1, Gamma_R1 := zero_extend32_32(load25), Gamma_load25; + $load$16, Gamma_$load$16 := memory_load32_le(mem, R2), (gamma_load32(Gamma_mem, R2) || L(mem, R2)); + R2, Gamma_R2 := zero_extend32_32($load$16), Gamma_$load$16; call rely(); - assert (L(mem, R0) ==> Gamma_R1); - mem, Gamma_mem := memory_store32_le(mem, R0, R1[32:0]), gamma_store32(Gamma_mem, R0, Gamma_R1); - assume {:captureState "%00000375"} true; - R0, Gamma_R0 := 0bv64, true; - R31, Gamma_R31 := bvadd64(R31, 16bv64), Gamma_R31; - goto main_1876_basil_return; - main_1876_basil_return: - assume {:captureState "main_1876_basil_return"} true; + assert (L(mem, R1) ==> Gamma_R2); + mem, Gamma_mem := memory_store32_le(mem, R1, R2[32:0]), gamma_store32(Gamma_mem, R1, Gamma_R2); + assume {:captureState "%0000025c"} true; + goto main_basil_return; + main_basil_return: + assume {:captureState "main_basil_return"} true; return; } diff --git a/src/test/incorrect/basicassign1/gcc_pic/basicassign1.gts b/src/test/incorrect/basicassign1/gcc_pic/basicassign1.gts deleted file mode 100644 index 33f3a1b2c..000000000 Binary files a/src/test/incorrect/basicassign1/gcc_pic/basicassign1.gts and /dev/null differ diff --git a/src/test/incorrect/basicassign1/gcc_pic/basicassign1.md5sum b/src/test/incorrect/basicassign1/gcc_pic/basicassign1.md5sum new file mode 100644 index 000000000..b618fe704 --- /dev/null +++ b/src/test/incorrect/basicassign1/gcc_pic/basicassign1.md5sum @@ -0,0 +1,5 @@ +01509a5aae57f1f6ea56d9af06b393fd incorrect/basicassign1/gcc_pic/a.out +744e91791f1bed47077ccdde2bd3f8d0 incorrect/basicassign1/gcc_pic/basicassign1.adt +f3fd913eabe03054524b5b8291fe8cdc incorrect/basicassign1/gcc_pic/basicassign1.bir +ad6ef0faf978f21e0dfe364208239bd1 incorrect/basicassign1/gcc_pic/basicassign1.relf +1eb06c3bf1eb0ea35660cd83328f5046 incorrect/basicassign1/gcc_pic/basicassign1.gts diff --git a/src/test/incorrect/basicassign1/gcc_pic/basicassign1.relf b/src/test/incorrect/basicassign1/gcc_pic/basicassign1.relf deleted file mode 100644 index 5170f71e9..000000000 --- a/src/test/incorrect/basicassign1/gcc_pic/basicassign1.relf +++ /dev/null @@ -1,124 +0,0 @@ - -Relocation section '.rela.dyn' at offset 0x460 contains 10 entries: - Offset Info Type Symbol's Value Symbol's Name + Addend -0000000000010d88 0000000000000403 R_AARCH64_RELATIVE 750 -0000000000010d90 0000000000000403 R_AARCH64_RELATIVE 700 -0000000000010fd8 0000000000000403 R_AARCH64_RELATIVE 11014 -0000000000010fe8 0000000000000403 R_AARCH64_RELATIVE 11018 -0000000000010ff0 0000000000000403 R_AARCH64_RELATIVE 754 -0000000000011008 0000000000000403 R_AARCH64_RELATIVE 11008 -0000000000010fc8 0000000400000401 R_AARCH64_GLOB_DAT 0000000000000000 _ITM_deregisterTMCloneTable + 0 -0000000000010fd0 0000000500000401 R_AARCH64_GLOB_DAT 0000000000000000 __cxa_finalize@GLIBC_2.17 + 0 -0000000000010fe0 0000000600000401 R_AARCH64_GLOB_DAT 0000000000000000 __gmon_start__ + 0 -0000000000010ff8 0000000800000401 R_AARCH64_GLOB_DAT 0000000000000000 _ITM_registerTMCloneTable + 0 - -Relocation section '.rela.plt' at offset 0x550 contains 4 entries: - Offset Info Type Symbol's Value Symbol's Name + Addend -0000000000010fa0 0000000300000402 R_AARCH64_JUMP_SLOT 0000000000000000 __libc_start_main@GLIBC_2.34 + 0 -0000000000010fa8 0000000500000402 R_AARCH64_JUMP_SLOT 0000000000000000 __cxa_finalize@GLIBC_2.17 + 0 -0000000000010fb0 0000000600000402 R_AARCH64_JUMP_SLOT 0000000000000000 __gmon_start__ + 0 -0000000000010fb8 0000000700000402 R_AARCH64_JUMP_SLOT 0000000000000000 abort@GLIBC_2.17 + 0 - -Symbol table '.dynsym' contains 9 entries: - Num: Value Size Type Bind Vis Ndx Name - 0: 0000000000000000 0 NOTYPE LOCAL DEFAULT UND - 1: 00000000000005b0 0 SECTION LOCAL DEFAULT 11 .init - 2: 0000000000011000 0 SECTION LOCAL DEFAULT 22 .data - 3: 0000000000000000 0 FUNC GLOBAL DEFAULT UND __libc_start_main@GLIBC_2.34 (2) - 4: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_deregisterTMCloneTable - 5: 0000000000000000 0 FUNC WEAK DEFAULT UND __cxa_finalize@GLIBC_2.17 (3) - 6: 0000000000000000 0 NOTYPE WEAK DEFAULT UND __gmon_start__ - 7: 0000000000000000 0 FUNC GLOBAL DEFAULT UND abort@GLIBC_2.17 (3) - 8: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_registerTMCloneTable - -Symbol table '.symtab' contains 89 entries: - Num: Value Size Type Bind Vis Ndx Name - 0: 0000000000000000 0 NOTYPE LOCAL DEFAULT UND - 1: 0000000000000238 0 SECTION LOCAL DEFAULT 1 .interp - 2: 0000000000000254 0 SECTION LOCAL DEFAULT 2 .note.gnu.build-id - 3: 0000000000000278 0 SECTION LOCAL DEFAULT 3 .note.ABI-tag - 4: 0000000000000298 0 SECTION LOCAL DEFAULT 4 .gnu.hash - 5: 00000000000002b8 0 SECTION LOCAL DEFAULT 5 .dynsym - 6: 0000000000000390 0 SECTION LOCAL DEFAULT 6 .dynstr - 7: 000000000000041e 0 SECTION LOCAL DEFAULT 7 .gnu.version - 8: 0000000000000430 0 SECTION LOCAL DEFAULT 8 .gnu.version_r - 9: 0000000000000460 0 SECTION LOCAL DEFAULT 9 .rela.dyn - 10: 0000000000000550 0 SECTION LOCAL DEFAULT 10 .rela.plt - 11: 00000000000005b0 0 SECTION LOCAL DEFAULT 11 .init - 12: 00000000000005d0 0 SECTION LOCAL DEFAULT 12 .plt - 13: 0000000000000640 0 SECTION LOCAL DEFAULT 13 .text - 14: 00000000000007a8 0 SECTION LOCAL DEFAULT 14 .fini - 15: 00000000000007bc 0 SECTION LOCAL DEFAULT 15 .rodata - 16: 00000000000007c0 0 SECTION LOCAL DEFAULT 16 .eh_frame_hdr - 17: 0000000000000800 0 SECTION LOCAL DEFAULT 17 .eh_frame - 18: 0000000000010d88 0 SECTION LOCAL DEFAULT 18 .init_array - 19: 0000000000010d90 0 SECTION LOCAL DEFAULT 19 .fini_array - 20: 0000000000010d98 0 SECTION LOCAL DEFAULT 20 .dynamic - 21: 0000000000010f88 0 SECTION LOCAL DEFAULT 21 .got - 22: 0000000000011000 0 SECTION LOCAL DEFAULT 22 .data - 23: 0000000000011010 0 SECTION LOCAL DEFAULT 23 .bss - 24: 0000000000000000 0 SECTION LOCAL DEFAULT 24 .comment - 25: 0000000000000000 0 FILE LOCAL DEFAULT ABS Scrt1.o - 26: 0000000000000278 0 NOTYPE LOCAL DEFAULT 3 $d - 27: 0000000000000278 32 OBJECT LOCAL DEFAULT 3 __abi_tag - 28: 0000000000000640 0 NOTYPE LOCAL DEFAULT 13 $x - 29: 0000000000000814 0 NOTYPE LOCAL DEFAULT 17 $d - 30: 00000000000007bc 0 NOTYPE LOCAL DEFAULT 15 $d - 31: 0000000000000000 0 FILE LOCAL DEFAULT ABS crti.o - 32: 0000000000000674 0 NOTYPE LOCAL DEFAULT 13 $x - 33: 0000000000000674 20 FUNC LOCAL DEFAULT 13 call_weak_fn - 34: 00000000000005b0 0 NOTYPE LOCAL DEFAULT 11 $x - 35: 00000000000007a8 0 NOTYPE LOCAL DEFAULT 14 $x - 36: 0000000000000000 0 FILE LOCAL DEFAULT ABS crtn.o - 37: 00000000000005c0 0 NOTYPE LOCAL DEFAULT 11 $x - 38: 00000000000007b4 0 NOTYPE LOCAL DEFAULT 14 $x - 39: 0000000000000000 0 FILE LOCAL DEFAULT ABS crtstuff.c - 40: 0000000000000690 0 NOTYPE LOCAL DEFAULT 13 $x - 41: 0000000000000690 0 FUNC LOCAL DEFAULT 13 deregister_tm_clones - 42: 00000000000006c0 0 FUNC LOCAL DEFAULT 13 register_tm_clones - 43: 0000000000011008 0 NOTYPE LOCAL DEFAULT 22 $d - 44: 0000000000000700 0 FUNC LOCAL DEFAULT 13 __do_global_dtors_aux - 45: 0000000000011010 1 OBJECT LOCAL DEFAULT 23 completed.0 - 46: 0000000000010d90 0 NOTYPE LOCAL DEFAULT 19 $d - 47: 0000000000010d90 0 OBJECT LOCAL DEFAULT 19 __do_global_dtors_aux_fini_array_entry - 48: 0000000000000750 0 FUNC LOCAL DEFAULT 13 frame_dummy - 49: 0000000000010d88 0 NOTYPE LOCAL DEFAULT 18 $d - 50: 0000000000010d88 0 OBJECT LOCAL DEFAULT 18 __frame_dummy_init_array_entry - 51: 0000000000000828 0 NOTYPE LOCAL DEFAULT 17 $d - 52: 0000000000011010 0 NOTYPE LOCAL DEFAULT 23 $d - 53: 0000000000000000 0 FILE LOCAL DEFAULT ABS basicassign1.c - 54: 0000000000011014 0 NOTYPE LOCAL DEFAULT 23 $d - 55: 0000000000000754 0 NOTYPE LOCAL DEFAULT 13 $x - 56: 0000000000000888 0 NOTYPE LOCAL DEFAULT 17 $d - 57: 0000000000000000 0 FILE LOCAL DEFAULT ABS crtstuff.c - 58: 00000000000008a0 0 NOTYPE LOCAL DEFAULT 17 $d - 59: 00000000000008a0 0 OBJECT LOCAL DEFAULT 17 __FRAME_END__ - 60: 0000000000000000 0 FILE LOCAL DEFAULT ABS - 61: 0000000000010d98 0 OBJECT LOCAL DEFAULT ABS _DYNAMIC - 62: 00000000000007c0 0 NOTYPE LOCAL DEFAULT 16 __GNU_EH_FRAME_HDR - 63: 0000000000010fc0 0 OBJECT LOCAL DEFAULT ABS _GLOBAL_OFFSET_TABLE_ - 64: 00000000000005d0 0 NOTYPE LOCAL DEFAULT 12 $x - 65: 0000000000000000 0 FUNC GLOBAL DEFAULT UND __libc_start_main@GLIBC_2.34 - 66: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_deregisterTMCloneTable - 67: 0000000000011000 0 NOTYPE WEAK DEFAULT 22 data_start - 68: 0000000000011010 0 NOTYPE GLOBAL DEFAULT 23 __bss_start__ - 69: 0000000000000000 0 FUNC WEAK DEFAULT UND __cxa_finalize@GLIBC_2.17 - 70: 0000000000011020 0 NOTYPE GLOBAL DEFAULT 23 _bss_end__ - 71: 0000000000011010 0 NOTYPE GLOBAL DEFAULT 22 _edata - 72: 0000000000011014 4 OBJECT GLOBAL DEFAULT 23 z - 73: 00000000000007a8 0 FUNC GLOBAL HIDDEN 14 _fini - 74: 0000000000011020 0 NOTYPE GLOBAL DEFAULT 23 __bss_end__ - 75: 0000000000011000 0 NOTYPE GLOBAL DEFAULT 22 __data_start - 76: 0000000000000000 0 NOTYPE WEAK DEFAULT UND __gmon_start__ - 77: 0000000000011008 0 OBJECT GLOBAL HIDDEN 22 __dso_handle - 78: 0000000000000000 0 FUNC GLOBAL DEFAULT UND abort@GLIBC_2.17 - 79: 00000000000007bc 4 OBJECT GLOBAL DEFAULT 15 _IO_stdin_used - 80: 0000000000011018 4 OBJECT GLOBAL DEFAULT 23 secret - 81: 0000000000011020 0 NOTYPE GLOBAL DEFAULT 23 _end - 82: 0000000000000640 52 FUNC GLOBAL DEFAULT 13 _start - 83: 0000000000011020 0 NOTYPE GLOBAL DEFAULT 23 __end__ - 84: 0000000000011010 0 NOTYPE GLOBAL DEFAULT 23 __bss_start - 85: 0000000000000754 84 FUNC GLOBAL DEFAULT 13 main - 86: 0000000000011010 0 OBJECT GLOBAL HIDDEN 22 __TMC_END__ - 87: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_registerTMCloneTable - 88: 00000000000005b0 0 FUNC GLOBAL HIDDEN 11 _init diff --git a/src/test/incorrect/basicassign1/gcc_pic/basicassign1_gtirb.expected b/src/test/incorrect/basicassign1/gcc_pic/basicassign1_gtirb.expected index d5c5136ec..f74af9c21 100644 --- a/src/test/incorrect/basicassign1/gcc_pic/basicassign1_gtirb.expected +++ b/src/test/incorrect/basicassign1/gcc_pic/basicassign1_gtirb.expected @@ -1,15 +1,13 @@ var {:extern} Gamma_R0: bool; var {:extern} Gamma_R1: bool; -var {:extern} Gamma_R31: bool; +var {:extern} Gamma_R2: bool; var {:extern} Gamma_mem: [bv64]bool; -var {:extern} Gamma_stack: [bv64]bool; var {:extern} R0: bv64; var {:extern} R1: bv64; -var {:extern} R31: bv64; +var {:extern} R2: bv64; var {:extern} mem: [bv64]bv8; -var {:extern} stack: [bv64]bv8; const {:extern} $z_addr: bv64; -axiom ($z_addr == 69652bv64); +axiom ($z_addr == 4325400bv64); function {:extern} L(mem$in: [bv64]bv8, index: bv64) returns (bool) { (if (index == $z_addr) then true else false) } @@ -44,13 +42,7 @@ procedure {:extern} rely(); modifies Gamma_mem, mem; ensures (Gamma_mem == old(Gamma_mem)); ensures (mem == old(mem)); - free ensures (memory_load32_le(mem, 1980bv64) == 131073bv32); - free ensures (memory_load64_le(mem, 69000bv64) == 1872bv64); - free ensures (memory_load64_le(mem, 69008bv64) == 1792bv64); - free ensures (memory_load64_le(mem, 69592bv64) == 69652bv64); - free ensures (memory_load64_le(mem, 69608bv64) == 69656bv64); - free ensures (memory_load64_le(mem, 69616bv64) == 1876bv64); - free ensures (memory_load64_le(mem, 69640bv64) == 69640bv64); + free ensures (memory_load32_le(mem, 4196312bv64) == 131073bv32); procedure {:extern} rely_transitive(); modifies Gamma_mem, mem; @@ -68,93 +60,41 @@ procedure {:extern} rely_reflexive(); procedure {:extern} guarantee_reflexive(); modifies Gamma_mem, mem; -procedure main_1876(); - modifies Gamma_R0, Gamma_R1, Gamma_R31, Gamma_mem, Gamma_stack, R0, R1, R31, mem, stack; - free requires (memory_load64_le(mem, 69632bv64) == 0bv64); - free requires (memory_load64_le(mem, 69640bv64) == 69640bv64); - free requires (memory_load32_le(mem, 1980bv64) == 131073bv32); - free requires (memory_load64_le(mem, 69000bv64) == 1872bv64); - free requires (memory_load64_le(mem, 69008bv64) == 1792bv64); - free requires (memory_load64_le(mem, 69592bv64) == 69652bv64); - free requires (memory_load64_le(mem, 69608bv64) == 69656bv64); - free requires (memory_load64_le(mem, 69616bv64) == 1876bv64); - free requires (memory_load64_le(mem, 69640bv64) == 69640bv64); - free ensures (Gamma_R31 == old(Gamma_R31)); - free ensures (R31 == old(R31)); - free ensures (memory_load32_le(mem, 1980bv64) == 131073bv32); - free ensures (memory_load64_le(mem, 69000bv64) == 1872bv64); - free ensures (memory_load64_le(mem, 69008bv64) == 1792bv64); - free ensures (memory_load64_le(mem, 69592bv64) == 69652bv64); - free ensures (memory_load64_le(mem, 69608bv64) == 69656bv64); - free ensures (memory_load64_le(mem, 69616bv64) == 1876bv64); - free ensures (memory_load64_le(mem, 69640bv64) == 69640bv64); +procedure main(); + modifies Gamma_R0, Gamma_R1, Gamma_R2, Gamma_mem, R0, R1, R2, mem; + free requires (memory_load64_le(mem, 4325376bv64) == 0bv64); + free requires (memory_load64_le(mem, 4325384bv64) == 0bv64); + free requires (memory_load32_le(mem, 4196312bv64) == 131073bv32); + free ensures (memory_load32_le(mem, 4196312bv64) == 131073bv32); -implementation main_1876() +implementation main() { - var Gamma_load20: bool; - var Gamma_load21: bool; - var Gamma_load22: bool; - var Gamma_load23: bool; - var Gamma_load24: bool; - var Gamma_load25: bool; - var Gamma_load26: bool; - var Gamma_load27: bool; - var load20: bv64; - var load21: bv32; - var load22: bv64; - var load23: bv32; - var load24: bv64; - var load25: bv32; - var load26: bv64; - var load27: bv32; - main_1876__0__A8~XTH6JTGm30lc5MnGYaQ: - assume {:captureState "main_1876__0__A8~XTH6JTGm30lc5MnGYaQ"} true; - R31, Gamma_R31 := bvadd64(R31, 18446744073709551600bv64), Gamma_R31; - R0, Gamma_R0 := 65536bv64, true; - call rely(); - load20, Gamma_load20 := memory_load64_le(mem, bvadd64(R0, 4072bv64)), (gamma_load64(Gamma_mem, bvadd64(R0, 4072bv64)) || L(mem, bvadd64(R0, 4072bv64))); - R0, Gamma_R0 := load20, Gamma_load20; - call rely(); - load21, Gamma_load21 := memory_load32_le(mem, R0), (gamma_load32(Gamma_mem, R0) || L(mem, R0)); - R0, Gamma_R0 := zero_extend32_32(load21), Gamma_load21; - stack, Gamma_stack := memory_store32_le(stack, bvadd64(R31, 12bv64), R0[32:0]), gamma_store32(Gamma_stack, bvadd64(R31, 12bv64), Gamma_R0); - assume {:captureState "1892_0"} true; - stack, Gamma_stack := memory_store32_le(stack, bvadd64(R31, 12bv64), 0bv32), gamma_store32(Gamma_stack, bvadd64(R31, 12bv64), true); - assume {:captureState "1896_0"} true; - R0, Gamma_R0 := 65536bv64, true; - call rely(); - load22, Gamma_load22 := memory_load64_le(mem, bvadd64(R0, 4056bv64)), (gamma_load64(Gamma_mem, bvadd64(R0, 4056bv64)) || L(mem, bvadd64(R0, 4056bv64))); - R0, Gamma_R0 := load22, Gamma_load22; - load23, Gamma_load23 := memory_load32_le(stack, bvadd64(R31, 12bv64)), gamma_load32(Gamma_stack, bvadd64(R31, 12bv64)); - R1, Gamma_R1 := zero_extend32_32(load23), Gamma_load23; - call rely(); - assert (L(mem, R0) ==> Gamma_R1); - mem, Gamma_mem := memory_store32_le(mem, R0, R1[32:0]), gamma_store32(Gamma_mem, R0, Gamma_R1); - assume {:captureState "1912_0"} true; - R0, Gamma_R0 := 65536bv64, true; + var $load16: bv64; + var $load17: bv64; + var $load18: bv32; + var Gamma_$load16: bool; + var Gamma_$load17: bool; + var Gamma_$load18: bool; + $main$__0__$i2bc6yURTw~Pq2nxe63pQA: + assume {:captureState "$main$__0__$i2bc6yURTw~Pq2nxe63pQA"} true; + R1, Gamma_R1 := 4321280bv64, true; + R0, Gamma_R0 := 0bv64, true; call rely(); - load24, Gamma_load24 := memory_load64_le(mem, bvadd64(R0, 4072bv64)), (gamma_load64(Gamma_mem, bvadd64(R0, 4072bv64)) || L(mem, bvadd64(R0, 4072bv64))); - R0, Gamma_R0 := load24, Gamma_load24; + $load16, Gamma_$load16 := memory_load64_le(mem, bvadd64(R1, 4080bv64)), (gamma_load64(Gamma_mem, bvadd64(R1, 4080bv64)) || L(mem, bvadd64(R1, 4080bv64))); + R2, Gamma_R2 := $load16, Gamma_$load16; call rely(); - load25, Gamma_load25 := memory_load32_le(mem, R0), (gamma_load32(Gamma_mem, R0) || L(mem, R0)); - R0, Gamma_R0 := zero_extend32_32(load25), Gamma_load25; - stack, Gamma_stack := memory_store32_le(stack, bvadd64(R31, 12bv64), R0[32:0]), gamma_store32(Gamma_stack, bvadd64(R31, 12bv64), Gamma_R0); - assume {:captureState "1928_0"} true; - R0, Gamma_R0 := 65536bv64, true; + $load17, Gamma_$load17 := memory_load64_le(mem, bvadd64(R1, 4064bv64)), (gamma_load64(Gamma_mem, bvadd64(R1, 4064bv64)) || L(mem, bvadd64(R1, 4064bv64))); + R1, Gamma_R1 := $load17, Gamma_$load17; call rely(); - load26, Gamma_load26 := memory_load64_le(mem, bvadd64(R0, 4056bv64)), (gamma_load64(Gamma_mem, bvadd64(R0, 4056bv64)) || L(mem, bvadd64(R0, 4056bv64))); - R0, Gamma_R0 := load26, Gamma_load26; - load27, Gamma_load27 := memory_load32_le(stack, bvadd64(R31, 12bv64)), gamma_load32(Gamma_stack, bvadd64(R31, 12bv64)); - R1, Gamma_R1 := zero_extend32_32(load27), Gamma_load27; + $load18, Gamma_$load18 := memory_load32_le(mem, R2), (gamma_load32(Gamma_mem, R2) || L(mem, R2)); + R2, Gamma_R2 := zero_extend32_32($load18), Gamma_$load18; call rely(); - assert (L(mem, R0) ==> Gamma_R1); - mem, Gamma_mem := memory_store32_le(mem, R0, R1[32:0]), gamma_store32(Gamma_mem, R0, Gamma_R1); - assume {:captureState "1944_0"} true; - R0, Gamma_R0 := 0bv64, true; - R31, Gamma_R31 := bvadd64(R31, 16bv64), Gamma_R31; - goto main_1876_basil_return; - main_1876_basil_return: - assume {:captureState "main_1876_basil_return"} true; + assert (L(mem, R1) ==> Gamma_R2); + mem, Gamma_mem := memory_store32_le(mem, R1, R2[32:0]), gamma_store32(Gamma_mem, R1, Gamma_R2); + assume {:captureState "4195988$0"} true; + goto main_basil_return; + main_basil_return: + assume {:captureState "main_basil_return"} true; return; } diff --git a/src/test/incorrect/basicassign2/clang/basicassign2.adt b/src/test/incorrect/basicassign2/clang/basicassign2.adt deleted file mode 100644 index 475f877e9..000000000 --- a/src/test/incorrect/basicassign2/clang/basicassign2.adt +++ /dev/null @@ -1,521 +0,0 @@ -Project(Attrs([Attr("filename","\"clang/basicassign2.out\""), -Attr("image-specification","(declare abi (name str))\n(declare arch (name str))\n(declare base-address (addr int))\n(declare bias (off int))\n(declare bits (size int))\n(declare code-region (addr int) (size int) (off int))\n(declare code-start (addr int))\n(declare entry-point (addr int))\n(declare external-reference (addr int) (name str))\n(declare format (name str))\n(declare is-executable (flag bool))\n(declare is-little-endian (flag bool))\n(declare llvm:base-address (addr int))\n(declare llvm:code-entry (name str) (off int) (size int))\n(declare llvm:coff-import-library (name str))\n(declare llvm:coff-virtual-section-header (name str) (addr int) (size int))\n(declare llvm:elf-program-header (name str) (off int) (size int))\n(declare llvm:elf-program-header-flags (name str) (ld bool) (r bool) \n (w bool) (x bool))\n(declare llvm:elf-virtual-program-header (name str) (addr int) (size int))\n(declare llvm:entry-point (addr int))\n(declare llvm:macho-symbol (name str) (value int))\n(declare llvm:name-reference (at int) (name str))\n(declare llvm:relocation (at int) (addr int))\n(declare llvm:section-entry (name str) (addr int) (size int) (off int))\n(declare llvm:section-flags (name str) (r bool) (w bool) (x bool))\n(declare llvm:segment-command (name str) (off int) (size int))\n(declare llvm:segment-command-flags (name str) (r bool) (w bool) (x bool))\n(declare llvm:symbol-entry (name str) (addr int) (size int) (off int)\n (value int))\n(declare llvm:virtual-segment-command (name str) (addr int) (size int))\n(declare mapped (addr int) (size int) (off int))\n(declare named-region (addr int) (size int) (name str))\n(declare named-symbol (addr int) (name str))\n(declare require (name str))\n(declare section (addr int) (size int))\n(declare segment (addr int) (size int) (r bool) (w bool) (x bool))\n(declare subarch (name str))\n(declare symbol-chunk (addr int) (size int) (root int))\n(declare symbol-value (addr int) (value int))\n(declare system (name str))\n(declare vendor (name str))\n\n(abi unknown)\n(arch aarch64)\n(base-address 0)\n(bias 0)\n(bits 64)\n(code-region 1872 20 1872)\n(code-region 1536 336 1536)\n(code-region 1440 96 1440)\n(code-region 1408 24 1408)\n(code-start 1588)\n(code-start 1536)\n(code-start 1812)\n(entry-point 1536)\n(external-reference 69568 _ITM_deregisterTMCloneTable)\n(external-reference 69576 __cxa_finalize)\n(external-reference 69584 __gmon_start__)\n(external-reference 69600 _ITM_registerTMCloneTable)\n(external-reference 69632 __libc_start_main)\n(external-reference 69640 __cxa_finalize)\n(external-reference 69648 __gmon_start__)\n(external-reference 69656 abort)\n(format elf)\n(is-executable true)\n(is-little-endian true)\n(llvm:base-address 0)\n(llvm:code-entry abort 0 0)\n(llvm:code-entry __cxa_finalize 0 0)\n(llvm:code-entry __libc_start_main 0 0)\n(llvm:code-entry _init 1408 0)\n(llvm:code-entry main 1812 60)\n(llvm:code-entry _start 1536 52)\n(llvm:code-entry abort@GLIBC_2.17 0 0)\n(llvm:code-entry _fini 1872 0)\n(llvm:code-entry __cxa_finalize@GLIBC_2.17 0 0)\n(llvm:code-entry __libc_start_main@GLIBC_2.34 0 0)\n(llvm:code-entry frame_dummy 1808 0)\n(llvm:code-entry __do_global_dtors_aux 1728 0)\n(llvm:code-entry register_tm_clones 1664 0)\n(llvm:code-entry deregister_tm_clones 1616 0)\n(llvm:code-entry call_weak_fn 1588 20)\n(llvm:code-entry .fini 1872 20)\n(llvm:code-entry .text 1536 336)\n(llvm:code-entry .plt 1440 96)\n(llvm:code-entry .init 1408 24)\n(llvm:elf-program-header 08 3528 568)\n(llvm:elf-program-header 07 0 0)\n(llvm:elf-program-header 06 1896 60)\n(llvm:elf-program-header 05 596 68)\n(llvm:elf-program-header 04 3544 480)\n(llvm:elf-program-header 03 3528 616)\n(llvm:elf-program-header 02 0 2144)\n(llvm:elf-program-header 01 568 27)\n(llvm:elf-program-header 00 64 504)\n(llvm:elf-program-header-flags 08 false true false false)\n(llvm:elf-program-header-flags 07 false true true false)\n(llvm:elf-program-header-flags 06 false true false false)\n(llvm:elf-program-header-flags 05 false true false false)\n(llvm:elf-program-header-flags 04 false true true false)\n(llvm:elf-program-header-flags 03 true true true false)\n(llvm:elf-program-header-flags 02 true true false true)\n(llvm:elf-program-header-flags 01 false true false false)\n(llvm:elf-program-header-flags 00 false true false false)\n(llvm:elf-virtual-program-header 08 69064 568)\n(llvm:elf-virtual-program-header 07 0 0)\n(llvm:elf-virtual-program-header 06 1896 60)\n(llvm:elf-virtual-program-header 05 596 68)\n(llvm:elf-virtual-program-header 04 69080 480)\n(llvm:elf-virtual-program-header 03 69064 640)\n(llvm:elf-virtual-program-header 02 0 2144)\n(llvm:elf-virtual-program-header 01 568 27)\n(llvm:elf-virtual-program-header 00 64 504)\n(llvm:entry-point 1536)\n(llvm:name-reference 69656 abort)\n(llvm:name-reference 69648 __gmon_start__)\n(llvm:name-reference 69640 __cxa_finalize)\n(llvm:name-reference 69632 __libc_start_main)\n(llvm:name-reference 69600 _ITM_registerTMCloneTable)\n(llvm:name-reference 69584 __gmon_start__)\n(llvm:name-reference 69576 __cxa_finalize)\n(llvm:name-reference 69568 _ITM_deregisterTMCloneTable)\n(llvm:section-entry .shstrtab 0 259 6977)\n(llvm:section-entry .strtab 0 577 6400)\n(llvm:section-entry .symtab 0 2184 4216)\n(llvm:section-entry .comment 0 71 4144)\n(llvm:section-entry .bss 69680 24 4144)\n(llvm:section-entry .data 69664 16 4128)\n(llvm:section-entry .got.plt 69608 56 4072)\n(llvm:section-entry .got 69560 48 4024)\n(llvm:section-entry .dynamic 69080 480 3544)\n(llvm:section-entry .fini_array 69072 8 3536)\n(llvm:section-entry .init_array 69064 8 3528)\n(llvm:section-entry .eh_frame 1960 184 1960)\n(llvm:section-entry .eh_frame_hdr 1896 60 1896)\n(llvm:section-entry .rodata 1892 4 1892)\n(llvm:section-entry .fini 1872 20 1872)\n(llvm:section-entry .text 1536 336 1536)\n(llvm:section-entry .plt 1440 96 1440)\n(llvm:section-entry .init 1408 24 1408)\n(llvm:section-entry .rela.plt 1312 96 1312)\n(llvm:section-entry .rela.dyn 1120 192 1120)\n(llvm:section-entry .gnu.version_r 1072 48 1072)\n(llvm:section-entry .gnu.version 1054 18 1054)\n(llvm:section-entry .dynstr 912 141 912)\n(llvm:section-entry .dynsym 696 216 696)\n(llvm:section-entry .gnu.hash 664 28 664)\n(llvm:section-entry .note.ABI-tag 632 32 632)\n(llvm:section-entry .note.gnu.build-id 596 36 596)\n(llvm:section-entry .interp 568 27 568)\n(llvm:section-flags .shstrtab true false false)\n(llvm:section-flags .strtab true false false)\n(llvm:section-flags .symtab true false false)\n(llvm:section-flags .comment true false false)\n(llvm:section-flags .bss true true false)\n(llvm:section-flags .data true true false)\n(llvm:section-flags .got.plt true true false)\n(llvm:section-flags .got true true false)\n(llvm:section-flags .dynamic true true false)\n(llvm:section-flags .fini_array true true false)\n(llvm:section-flags .init_array true true false)\n(llvm:section-flags .eh_frame true false false)\n(llvm:section-flags .eh_frame_hdr true false false)\n(llvm:section-flags .rodata true false false)\n(llvm:section-flags .fini true false true)\n(llvm:section-flags .text true false true)\n(llvm:section-flags .plt true false true)\n(llvm:section-flags .init true false true)\n(llvm:section-flags .rela.plt true false false)\n(llvm:section-flags .rela.dyn true false false)\n(llvm:section-flags .gnu.version_r true false false)\n(llvm:section-flags .gnu.version true false false)\n(llvm:section-flags .dynstr true false false)\n(llvm:section-flags .dynsym true false false)\n(llvm:section-flags .gnu.hash true false false)\n(llvm:section-flags .note.ABI-tag true false false)\n(llvm:section-flags .note.gnu.build-id true false false)\n(llvm:section-flags .interp true false false)\n(llvm:symbol-entry abort 0 0 0 0)\n(llvm:symbol-entry __cxa_finalize 0 0 0 0)\n(llvm:symbol-entry __libc_start_main 0 0 0 0)\n(llvm:symbol-entry _init 1408 0 1408 1408)\n(llvm:symbol-entry main 1812 60 1812 1812)\n(llvm:symbol-entry _start 1536 52 1536 1536)\n(llvm:symbol-entry abort@GLIBC_2.17 0 0 0 0)\n(llvm:symbol-entry _fini 1872 0 1872 1872)\n(llvm:symbol-entry __cxa_finalize@GLIBC_2.17 0 0 0 0)\n(llvm:symbol-entry __libc_start_main@GLIBC_2.34 0 0 0 0)\n(llvm:symbol-entry frame_dummy 1808 0 1808 1808)\n(llvm:symbol-entry __do_global_dtors_aux 1728 0 1728 1728)\n(llvm:symbol-entry register_tm_clones 1664 0 1664 1664)\n(llvm:symbol-entry deregister_tm_clones 1616 0 1616 1616)\n(llvm:symbol-entry call_weak_fn 1588 20 1588 1588)\n(mapped 0 2144 0)\n(mapped 69064 616 3528)\n(named-region 0 2144 02)\n(named-region 69064 640 03)\n(named-region 568 27 .interp)\n(named-region 596 36 .note.gnu.build-id)\n(named-region 632 32 .note.ABI-tag)\n(named-region 664 28 .gnu.hash)\n(named-region 696 216 .dynsym)\n(named-region 912 141 .dynstr)\n(named-region 1054 18 .gnu.version)\n(named-region 1072 48 .gnu.version_r)\n(named-region 1120 192 .rela.dyn)\n(named-region 1312 96 .rela.plt)\n(named-region 1408 24 .init)\n(named-region 1440 96 .plt)\n(named-region 1536 336 .text)\n(named-region 1872 20 .fini)\n(named-region 1892 4 .rodata)\n(named-region 1896 60 .eh_frame_hdr)\n(named-region 1960 184 .eh_frame)\n(named-region 69064 8 .init_array)\n(named-region 69072 8 .fini_array)\n(named-region 69080 480 .dynamic)\n(named-region 69560 48 .got)\n(named-region 69608 56 .got.plt)\n(named-region 69664 16 .data)\n(named-region 69680 24 .bss)\n(named-region 0 71 .comment)\n(named-region 0 2184 .symtab)\n(named-region 0 577 .strtab)\n(named-region 0 259 .shstrtab)\n(named-symbol 1588 call_weak_fn)\n(named-symbol 1616 deregister_tm_clones)\n(named-symbol 1664 register_tm_clones)\n(named-symbol 1728 __do_global_dtors_aux)\n(named-symbol 1808 frame_dummy)\n(named-symbol 0 __libc_start_main@GLIBC_2.34)\n(named-symbol 0 __cxa_finalize@GLIBC_2.17)\n(named-symbol 1872 _fini)\n(named-symbol 0 abort@GLIBC_2.17)\n(named-symbol 1536 _start)\n(named-symbol 1812 main)\n(named-symbol 1408 _init)\n(named-symbol 0 __libc_start_main)\n(named-symbol 0 __cxa_finalize)\n(named-symbol 0 abort)\n(require libc.so.6)\n(section 568 27)\n(section 596 36)\n(section 632 32)\n(section 664 28)\n(section 696 216)\n(section 912 141)\n(section 1054 18)\n(section 1072 48)\n(section 1120 192)\n(section 1312 96)\n(section 1408 24)\n(section 1440 96)\n(section 1536 336)\n(section 1872 20)\n(section 1892 4)\n(section 1896 60)\n(section 1960 184)\n(section 69064 8)\n(section 69072 8)\n(section 69080 480)\n(section 69560 48)\n(section 69608 56)\n(section 69664 16)\n(section 69680 24)\n(section 0 71)\n(section 0 2184)\n(section 0 577)\n(section 0 259)\n(segment 0 2144 true false true)\n(segment 69064 640 true true false)\n(subarch v8)\n(symbol-chunk 1588 20 1588)\n(symbol-chunk 1536 52 1536)\n(symbol-chunk 1812 60 1812)\n(symbol-value 1588 1588)\n(symbol-value 1616 1616)\n(symbol-value 1664 1664)\n(symbol-value 1728 1728)\n(symbol-value 1808 1808)\n(symbol-value 1872 1872)\n(symbol-value 1536 1536)\n(symbol-value 1812 1812)\n(symbol-value 1408 1408)\n(symbol-value 0 0)\n(system \"\")\n(vendor \"\")\n"), -Attr("abi-name","\"aarch64-linux-gnu-elf\"")]), -Sections([Section(".shstrtab", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x00\x06\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x48\x1c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x38\x00\x09\x00\x40\x00\x1d\x00\x1c\x00\x06\x00\x00\x00\x04\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x04\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x60\x08\x00\x00\x00\x00\x00\x00\x60\x08\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x01\x00\x00\x00\x06\x00\x00\x00\xc8\x0d\x00\x00\x00\x00\x00\x00\xc8\x0d\x01\x00\x00\x00\x00\x00\xc8\x0d\x01"), -Section(".strtab", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x00\x06\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x48\x1c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x38\x00\x09\x00\x40\x00\x1d\x00\x1c\x00\x06\x00\x00\x00\x04\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x04\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x60\x08\x00\x00\x00\x00\x00\x00\x60\x08\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x01\x00\x00\x00\x06\x00\x00\x00\xc8\x0d\x00\x00\x00\x00\x00\x00\xc8\x0d\x01\x00\x00\x00\x00\x00\xc8\x0d\x01\x00\x00\x00\x00\x00\x68\x02\x00\x00\x00\x00\x00\x00\x80\x02\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x02\x00\x00\x00\x06\x00\x00\x00\xd8\x0d\x00\x00\x00\x00\x00\x00\xd8\x0d\x01\x00\x00\x00\x00\x00\xd8\x0d\x01\x00\x00\x00\x00\x00\xe0\x01\x00\x00\x00\x00\x00\x00\xe0\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x04\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x50\xe5\x74\x64\x04\x00\x00\x00\x68\x07\x00\x00\x00\x00\x00\x00\x68\x07\x00\x00\x00\x00\x00\x00\x68\x07\x00\x00\x00\x00\x00\x00\x3c\x00\x00\x00\x00\x00\x00\x00\x3c\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x51\xe5\x74\x64\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x52\xe5\x74\x64\x04\x00\x00\x00\xc8\x0d\x00\x00\x00\x00\x00\x00\xc8\x0d\x01\x00\x00\x00\x00\x00\xc8\x0d\x01\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x2f\x6c\x69\x62\x2f\x6c\x64\x2d\x6c"), -Section(".comment", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x00\x06\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x48\x1c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x38\x00\x09\x00\x40\x00\x1d\x00\x1c\x00\x06\x00\x00\x00\x04\x00\x00"), -Section(".interp", 0x238, "\x2f\x6c\x69\x62\x2f\x6c\x64\x2d\x6c\x69\x6e\x75\x78\x2d\x61\x61\x72\x63\x68\x36\x34\x2e\x73\x6f\x2e\x31\x00"), -Section(".note.gnu.build-id", 0x254, "\x04\x00\x00\x00\x14\x00\x00\x00\x03\x00\x00\x00\x47\x4e\x55\x00\xa2\xd9\x8d\xed\x3a\x45\x81\xb3\xe7\x45\xda\xa5\xb3\xb9\xf9\x3b\x55\x89\x78\x1c"), -Section(".note.ABI-tag", 0x278, "\x04\x00\x00\x00\x10\x00\x00\x00\x01\x00\x00\x00\x47\x4e\x55\x00\x00\x00\x00\x00\x03\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00"), -Section(".gnu.hash", 0x298, "\x01\x00\x00\x00\x01\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".dynsym", 0x2B8, "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x0b\x00\x80\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x17\x00\x20\x10\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x48\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x22\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x22\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x73\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".dynstr", 0x390, "\x00\x5f\x5f\x63\x78\x61\x5f\x66\x69\x6e\x61\x6c\x69\x7a\x65\x00\x5f\x5f\x6c\x69\x62\x63\x5f\x73\x74\x61\x72\x74\x5f\x6d\x61\x69\x6e\x00\x61\x62\x6f\x72\x74\x00\x6c\x69\x62\x63\x2e\x73\x6f\x2e\x36\x00\x47\x4c\x49\x42\x43\x5f\x32\x2e\x31\x37\x00\x47\x4c\x49\x42\x43\x5f\x32\x2e\x33\x34\x00\x5f\x49\x54\x4d\x5f\x64\x65\x72\x65\x67\x69\x73\x74\x65\x72\x54\x4d\x43\x6c\x6f\x6e\x65\x54\x61\x62\x6c\x65\x00\x5f\x5f\x67\x6d\x6f\x6e\x5f\x73\x74\x61\x72\x74\x5f\x5f\x00\x5f\x49\x54\x4d\x5f\x72\x65\x67\x69\x73\x74\x65\x72\x54\x4d\x43\x6c\x6f\x6e\x65\x54\x61\x62\x6c\x65\x00"), -Section(".gnu.version", 0x41E, "\x00\x00\x00\x00\x00\x00\x02\x00\x01\x00\x03\x00\x01\x00\x03\x00\x01\x00"), -Section(".gnu.version_r", 0x430, "\x01\x00\x02\x00\x28\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x97\x91\x96\x06\x00\x00\x03\x00\x32\x00\x00\x00\x10\x00\x00\x00\xb4\x91\x96\x06\x00\x00\x02\x00\x3d\x00\x00\x00\x00\x00\x00\x00"), -Section(".rela.dyn", 0x460, "\xc8\x0d\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x10\x07\x00\x00\x00\x00\x00\x00\xd0\x0d\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\xc0\x06\x00\x00\x00\x00\x00\x00\xd8\x0f\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x14\x07\x00\x00\x00\x00\x00\x00\x28\x10\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x28\x10\x01\x00\x00\x00\x00\x00\xc0\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xc8\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xd0\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe0\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".rela.plt", 0x520, "\x00\x10\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x08\x10\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x10\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x18\x10\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".init", 0x580, "\x1f\x20\x03\xd5\xfd\x7b\xbf\xa9\xfd\x03\x00\x91\x2a\x00\x00\x94\xfd\x7b\xc1\xa8\xc0\x03\x5f\xd6"), -Section(".plt", 0x5A0, "\xf0\x7b\xbf\xa9\x90\x00\x00\x90\x11\xfe\x47\xf9\x10\xe2\x3f\x91\x20\x02\x1f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x90\x00\x00\xb0\x11\x02\x40\xf9\x10\x02\x00\x91\x20\x02\x1f\xd6\x90\x00\x00\xb0\x11\x06\x40\xf9\x10\x22\x00\x91\x20\x02\x1f\xd6\x90\x00\x00\xb0\x11\x0a\x40\xf9\x10\x42\x00\x91\x20\x02\x1f\xd6\x90\x00\x00\xb0\x11\x0e\x40\xf9\x10\x62\x00\x91\x20\x02\x1f\xd6"), -Section(".text", 0x600, "\x1f\x20\x03\xd5\x1d\x00\x80\xd2\x1e\x00\x80\xd2\xe5\x03\x00\xaa\xe1\x03\x40\xf9\xe2\x23\x00\x91\xe6\x03\x00\x91\x80\x00\x00\x90\x00\xec\x47\xf9\x03\x00\x80\xd2\x04\x00\x80\xd2\xe5\xff\xff\x97\xf0\xff\xff\x97\x80\x00\x00\x90\x00\xe8\x47\xf9\x40\x00\x00\xb4\xe8\xff\xff\x17\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x80\x00\x00\xb0\x00\xc0\x00\x91\x81\x00\x00\xb0\x21\xc0\x00\x91\x3f\x00\x00\xeb\xc0\x00\x00\x54\x81\x00\x00\x90\x21\xe0\x47\xf9\x61\x00\x00\xb4\xf0\x03\x01\xaa\x00\x02\x1f\xd6\xc0\x03\x5f\xd6\x80\x00\x00\xb0\x00\xc0\x00\x91\x81\x00\x00\xb0\x21\xc0\x00\x91\x21\x00\x00\xcb\x22\xfc\x7f\xd3\x41\x0c\x81\x8b\x21\xfc\x41\x93\xc1\x00\x00\xb4\x82\x00\x00\x90\x42\xf0\x47\xf9\x62\x00\x00\xb4\xf0\x03\x02\xaa\x00\x02\x1f\xd6\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\xfd\x7b\xbe\xa9\xfd\x03\x00\x91\xf3\x0b\x00\xf9\x93\x00\x00\xb0\x60\xc2\x40\x39\x40\x01\x00\x35\x80\x00\x00\x90\x00\xe4\x47\xf9\x80\x00\x00\xb4\x80\x00\x00\xb0\x00\x14\x40\xf9\xb9\xff\xff\x97\xd8\xff\xff\x97\x20\x00\x80\x52\x60\xc2\x00\x39\xf3\x0b\x40\xf9\xfd\x7b\xc2\xa8\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\xdc\xff\xff\x17\xff\x43\x00\xd1\x88\x00\x00\xb0\x09\x1d\x40\xf9\xe9\x07\x00\xf9\xff\x07\x00\xf9\xea\x07\x40\xf9\x89\x00\x00\xb0\x2a\x21\x00\xf9\x08\x1d\x40\xf9\xe8\x07\x00\xf9\xe8\x07\x40\xf9\x28\x21\x00\xf9\xe0\x03\x1f\x2a\xff\x43\x00\x91\xc0\x03\x5f\xd6"), -Section(".fini", 0x750, "\x1f\x20\x03\xd5\xfd\x7b\xbf\xa9\xfd\x03\x00\x91\xfd\x7b\xc1\xa8\xc0\x03\x5f\xd6"), -Section(".rodata", 0x764, "\x01\x00\x02\x00"), -Section(".eh_frame_hdr", 0x768, "\x01\x1b\x03\x3b\x3c\x00\x00\x00\x06\x00\x00\x00\x98\xfe\xff\xff\x54\x00\x00\x00\xe8\xfe\xff\xff\x68\x00\x00\x00\x18\xff\xff\xff\x7c\x00\x00\x00\x58\xff\xff\xff\x90\x00\x00\x00\xa8\xff\xff\xff\xb4\x00\x00\x00\xac\xff\xff\xff\xdc\x00\x00\x00"), -Section(".eh_frame", 0x7A8, "\x10\x00\x00\x00\x00\x00\x00\x00\x01\x7a\x52\x00\x04\x78\x1e\x01\x1b\x0c\x1f\x00\x10\x00\x00\x00\x18\x00\x00\x00\x3c\xfe\xff\xff\x34\x00\x00\x00\x00\x41\x07\x1e\x10\x00\x00\x00\x2c\x00\x00\x00\x78\xfe\xff\xff\x30\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x40\x00\x00\x00\x94\xfe\xff\xff\x3c\x00\x00\x00\x00\x00\x00\x00\x20\x00\x00\x00\x54\x00\x00\x00\xc0\xfe\xff\xff\x48\x00\x00\x00\x00\x41\x0e\x20\x9d\x04\x9e\x03\x42\x93\x02\x4e\xde\xdd\xd3\x0e\x00\x00\x00\x00\x10\x00\x00\x00\x78\x00\x00\x00\xec\xfe\xff\xff\x04\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x01\x7a\x52\x00\x01\x7c\x1e\x01\x1b\x0c\x1f\x00\x14\x00\x00\x00\x18\x00\x00\x00\xc8\xfe\xff\xff\x3c\x00\x00\x00\x00\x44\x0e\x10\x74\x0e\x00\x00\x00\x00\x00\x00"), -Section(".fini_array", 0x10DD0, "\xc0\x06\x00\x00\x00\x00\x00\x00"), -Section(".dynamic", 0x10DD8, "\x01\x00\x00\x00\x00\x00\x00\x00\x28\x00\x00\x00\x00\x00\x00\x00\x0c\x00\x00\x00\x00\x00\x00\x00\x80\x05\x00\x00\x00\x00\x00\x00\x0d\x00\x00\x00\x00\x00\x00\x00\x50\x07\x00\x00\x00\x00\x00\x00\x19\x00\x00\x00\x00\x00\x00\x00\xc8\x0d\x01\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x1a\x00\x00\x00\x00\x00\x00\x00\xd0\x0d\x01\x00\x00\x00\x00\x00\x1c\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\xf5\xfe\xff\x6f\x00\x00\x00\x00\x98\x02\x00\x00\x00\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x90\x03\x00\x00\x00\x00\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\xb8\x02\x00\x00\x00\x00\x00\x00\x0a\x00\x00\x00\x00\x00\x00\x00\x8d\x00\x00\x00\x00\x00\x00\x00\x0b\x00\x00\x00\x00\x00\x00\x00\x18\x00\x00\x00\x00\x00\x00\x00\x15\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\xe8\x0f\x01\x00\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x60\x00\x00\x00\x00\x00\x00\x00\x14\x00\x00\x00\x00\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x17\x00\x00\x00\x00\x00\x00\x00\x20\x05\x00\x00\x00\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x60\x04\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\xc0\x00\x00\x00\x00\x00\x00\x00\x09\x00\x00\x00\x00\x00\x00\x00\x18\x00\x00\x00\x00\x00\x00\x00\xfb\xff\xff\x6f\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\xfe\xff\xff\x6f\x00\x00\x00\x00\x30\x04\x00\x00\x00\x00\x00\x00\xff\xff\xff\x6f\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\xf0\xff\xff\x6f\x00\x00\x00\x00\x1e\x04\x00\x00\x00\x00\x00\x00\xf9\xff\xff\x6f\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".init_array", 0x10DC8, "\x10\x07\x00\x00\x00\x00\x00\x00"), -Section(".got", 0x10FB8, "\xd8\x0d\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x14\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".got.plt", 0x10FE8, "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xa0\x05\x00\x00\x00\x00\x00\x00\xa0\x05\x00\x00\x00\x00\x00\x00\xa0\x05\x00\x00\x00\x00\x00\x00\xa0\x05\x00\x00\x00\x00\x00\x00"), -Section(".data", 0x11020, "\x00\x00\x00\x00\x00\x00\x00\x00\x28\x10\x01\x00\x00\x00\x00\x00")]), -Memmap([Annotation(Region(0x0,0x85F), Attr("segment","02 0 2144")), -Annotation(Region(0x600,0x633), Attr("symbol","\"_start\"")), -Annotation(Region(0x0,0x102), Attr("section","\".shstrtab\"")), -Annotation(Region(0x0,0x240), Attr("section","\".strtab\"")), -Annotation(Region(0x0,0x46), Attr("section","\".comment\"")), -Annotation(Region(0x238,0x252), Attr("section","\".interp\"")), -Annotation(Region(0x254,0x277), Attr("section","\".note.gnu.build-id\"")), -Annotation(Region(0x278,0x297), Attr("section","\".note.ABI-tag\"")), -Annotation(Region(0x298,0x2B3), Attr("section","\".gnu.hash\"")), -Annotation(Region(0x2B8,0x38F), Attr("section","\".dynsym\"")), -Annotation(Region(0x390,0x41C), Attr("section","\".dynstr\"")), -Annotation(Region(0x41E,0x42F), Attr("section","\".gnu.version\"")), -Annotation(Region(0x430,0x45F), Attr("section","\".gnu.version_r\"")), -Annotation(Region(0x460,0x51F), Attr("section","\".rela.dyn\"")), -Annotation(Region(0x520,0x57F), Attr("section","\".rela.plt\"")), -Annotation(Region(0x580,0x597), Attr("section","\".init\"")), -Annotation(Region(0x5A0,0x5FF), Attr("section","\".plt\"")), -Annotation(Region(0x580,0x597), Attr("code-region","()")), -Annotation(Region(0x5A0,0x5FF), Attr("code-region","()")), -Annotation(Region(0x600,0x633), Attr("symbol-info","_start 0x600 52")), -Annotation(Region(0x634,0x647), Attr("symbol","\"call_weak_fn\"")), -Annotation(Region(0x634,0x647), Attr("symbol-info","call_weak_fn 0x634 20")), -Annotation(Region(0x600,0x74F), Attr("section","\".text\"")), -Annotation(Region(0x600,0x74F), Attr("code-region","()")), -Annotation(Region(0x714,0x74F), Attr("symbol","\"main\"")), -Annotation(Region(0x714,0x74F), Attr("symbol-info","main 0x714 60")), -Annotation(Region(0x750,0x763), Attr("section","\".fini\"")), -Annotation(Region(0x750,0x763), Attr("code-region","()")), -Annotation(Region(0x764,0x767), Attr("section","\".rodata\"")), -Annotation(Region(0x768,0x7A3), Attr("section","\".eh_frame_hdr\"")), -Annotation(Region(0x7A8,0x85F), Attr("section","\".eh_frame\"")), -Annotation(Region(0x10DC8,0x1102F), Attr("segment","03 0x10DC8 640")), -Annotation(Region(0x10DD0,0x10DD7), Attr("section","\".fini_array\"")), -Annotation(Region(0x10DD8,0x10FB7), Attr("section","\".dynamic\"")), -Annotation(Region(0x10DC8,0x10DCF), Attr("section","\".init_array\"")), -Annotation(Region(0x10FB8,0x10FE7), Attr("section","\".got\"")), -Annotation(Region(0x10FE8,0x1101F), Attr("section","\".got.plt\"")), -Annotation(Region(0x11020,0x1102F), Attr("section","\".data\""))]), -Program(Tid(1_520, "%000005f0"), Attrs([]), - Subs([Sub(Tid(1_498, "@__cxa_finalize"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x5D0"), -Attr("stub","()")]), "__cxa_finalize", Args([Arg(Tid(1_521, "%000005f1"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("__cxa_finalize_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(896, "@__cxa_finalize"), - Attrs([Attr("address","0x5D0")]), Phis([]), -Defs([Def(Tid(1_144, "%00000478"), Attrs([Attr("address","0x5D0"), -Attr("insn","adrp x16, #69632")]), Var("R16",Imm(64)), Int(69632,64)), -Def(Tid(1_151, "%0000047f"), Attrs([Attr("address","0x5D4"), -Attr("insn","ldr x17, [x16, #0x8]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(1_157, "%00000485"), Attrs([Attr("address","0x5D8"), -Attr("insn","add x16, x16, #0x8")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(8,64)))]), Jmps([Call(Tid(1_162, "%0000048a"), - Attrs([Attr("address","0x5DC"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), -Sub(Tid(1_499, "@__do_global_dtors_aux"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x6C0")]), - "__do_global_dtors_aux", Args([Arg(Tid(1_522, "%000005f2"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("__do_global_dtors_aux_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(650, "@__do_global_dtors_aux"), - Attrs([Attr("address","0x6C0")]), Phis([]), Defs([Def(Tid(654, "%0000028e"), - Attrs([Attr("address","0x6C0"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("#3",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(18446744073709551584,64))), -Def(Tid(660, "%00000294"), Attrs([Attr("address","0x6C0"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("#3",Imm(64)),Var("R29",Imm(64)),LittleEndian(),64)), -Def(Tid(666, "%0000029a"), Attrs([Attr("address","0x6C0"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("#3",Imm(64)),Int(8,64)),Var("R30",Imm(64)),LittleEndian(),64)), -Def(Tid(670, "%0000029e"), Attrs([Attr("address","0x6C0"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("R31",Imm(64)), -Var("#3",Imm(64))), Def(Tid(676, "%000002a4"), - Attrs([Attr("address","0x6C4"), Attr("insn","mov x29, sp")]), - Var("R29",Imm(64)), Var("R31",Imm(64))), Def(Tid(684, "%000002ac"), - Attrs([Attr("address","0x6C8"), Attr("insn","str x19, [sp, #0x10]")]), - Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(16,64)),Var("R19",Imm(64)),LittleEndian(),64)), -Def(Tid(689, "%000002b1"), Attrs([Attr("address","0x6CC"), -Attr("insn","adrp x19, #69632")]), Var("R19",Imm(64)), Int(69632,64)), -Def(Tid(696, "%000002b8"), Attrs([Attr("address","0x6D0"), -Attr("insn","ldrb w0, [x19, #0x30]")]), Var("R0",Imm(64)), -UNSIGNED(64,Load(Var("mem",Mem(64,8)),PLUS(Var("R19",Imm(64)),Int(48,64)),LittleEndian(),8)))]), -Jmps([Goto(Tid(703, "%000002bf"), Attrs([Attr("address","0x6D4"), -Attr("insn","cbnz w0, #0x28")]), - NEQ(Extract(31,0,Var("R0",Imm(64))),Int(0,32)), -Direct(Tid(701, "%000002bd"))), Goto(Tid(1_500, "%000005dc"), Attrs([]), - Int(1,1), Direct(Tid(841, "%00000349")))])), Blk(Tid(841, "%00000349"), - Attrs([Attr("address","0x6D8")]), Phis([]), Defs([Def(Tid(844, "%0000034c"), - Attrs([Attr("address","0x6D8"), Attr("insn","adrp x0, #65536")]), - Var("R0",Imm(64)), Int(65536,64)), Def(Tid(851, "%00000353"), - Attrs([Attr("address","0x6DC"), Attr("insn","ldr x0, [x0, #0xfc8]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(4040,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(857, "%00000359"), Attrs([Attr("address","0x6E0"), -Attr("insn","cbz x0, #0x10")]), EQ(Var("R0",Imm(64)),Int(0,64)), -Direct(Tid(855, "%00000357"))), Goto(Tid(1_501, "%000005dd"), Attrs([]), - Int(1,1), Direct(Tid(880, "%00000370")))])), Blk(Tid(880, "%00000370"), - Attrs([Attr("address","0x6E4")]), Phis([]), Defs([Def(Tid(883, "%00000373"), - Attrs([Attr("address","0x6E4"), Attr("insn","adrp x0, #69632")]), - Var("R0",Imm(64)), Int(69632,64)), Def(Tid(890, "%0000037a"), - Attrs([Attr("address","0x6E8"), Attr("insn","ldr x0, [x0, #0x28]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(40,64)),LittleEndian(),64)), -Def(Tid(895, "%0000037f"), Attrs([Attr("address","0x6EC"), -Attr("insn","bl #-0x11c")]), Var("R30",Imm(64)), Int(1776,64))]), -Jmps([Call(Tid(898, "%00000382"), Attrs([Attr("address","0x6EC"), -Attr("insn","bl #-0x11c")]), Int(1,1), -(Direct(Tid(1_498, "@__cxa_finalize")),Direct(Tid(855, "%00000357"))))])), -Blk(Tid(855, "%00000357"), Attrs([Attr("address","0x6F0")]), Phis([]), -Defs([Def(Tid(863, "%0000035f"), Attrs([Attr("address","0x6F0"), -Attr("insn","bl #-0xa0")]), Var("R30",Imm(64)), Int(1780,64))]), -Jmps([Call(Tid(865, "%00000361"), Attrs([Attr("address","0x6F0"), -Attr("insn","bl #-0xa0")]), Int(1,1), -(Direct(Tid(1_512, "@deregister_tm_clones")),Direct(Tid(867, "%00000363"))))])), -Blk(Tid(867, "%00000363"), Attrs([Attr("address","0x6F4")]), Phis([]), -Defs([Def(Tid(870, "%00000366"), Attrs([Attr("address","0x6F4"), -Attr("insn","mov w0, #0x1")]), Var("R0",Imm(64)), Int(1,64)), -Def(Tid(878, "%0000036e"), Attrs([Attr("address","0x6F8"), -Attr("insn","strb w0, [x19, #0x30]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R19",Imm(64)),Int(48,64)),Extract(7,0,Var("R0",Imm(64))),LittleEndian(),8))]), -Jmps([Goto(Tid(1_502, "%000005de"), Attrs([]), Int(1,1), -Direct(Tid(701, "%000002bd")))])), Blk(Tid(701, "%000002bd"), - Attrs([Attr("address","0x6FC")]), Phis([]), Defs([Def(Tid(711, "%000002c7"), - Attrs([Attr("address","0x6FC"), Attr("insn","ldr x19, [sp, #0x10]")]), - Var("R19",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(16,64)),LittleEndian(),64)), -Def(Tid(718, "%000002ce"), Attrs([Attr("address","0x700"), -Attr("insn","ldp x29, x30, [sp], #0x20")]), Var("R29",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(723, "%000002d3"), Attrs([Attr("address","0x700"), -Attr("insn","ldp x29, x30, [sp], #0x20")]), Var("R30",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(727, "%000002d7"), Attrs([Attr("address","0x700"), -Attr("insn","ldp x29, x30, [sp], #0x20")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(32,64)))]), Jmps([Call(Tid(732, "%000002dc"), - Attrs([Attr("address","0x704"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), Sub(Tid(1_503, "@__libc_start_main"), - Attrs([Attr("c.proto","signed (*)(signed (*)(signed , char** , char** );* main, signed , char** , \nvoid* auxv)"), -Attr("address","0x5C0"), Attr("stub","()")]), "__libc_start_main", - Args([Arg(Tid(1_523, "%000005f3"), - Attrs([Attr("c.layout","**[ : 64]"), -Attr("c.data","Top:u64 ptr ptr"), -Attr("c.type","signed (*)(signed , char** , char** );*")]), - Var("__libc_start_main_main",Imm(64)), Var("R0",Imm(64)), In()), -Arg(Tid(1_524, "%000005f4"), Attrs([Attr("c.layout","[signed : 32]"), -Attr("c.data","Top:u32"), Attr("c.type","signed")]), - Var("__libc_start_main_arg2",Imm(32)), LOW(32,Var("R1",Imm(64))), In()), -Arg(Tid(1_525, "%000005f5"), Attrs([Attr("c.layout","**[char : 8]"), -Attr("c.data","Top:u8 ptr ptr"), Attr("c.type","char**")]), - Var("__libc_start_main_arg3",Imm(64)), Var("R2",Imm(64)), Both()), -Arg(Tid(1_526, "%000005f6"), Attrs([Attr("c.layout","*[ : 8]"), -Attr("c.data","{} ptr"), Attr("c.type","void*")]), - Var("__libc_start_main_auxv",Imm(64)), Var("R3",Imm(64)), Both()), -Arg(Tid(1_527, "%000005f7"), Attrs([Attr("c.layout","[signed : 32]"), -Attr("c.data","Top:u32"), Attr("c.type","signed")]), - Var("__libc_start_main_result",Imm(32)), LOW(32,Var("R0",Imm(64))), -Out())]), Blks([Blk(Tid(483, "@__libc_start_main"), - Attrs([Attr("address","0x5C0")]), Phis([]), -Defs([Def(Tid(1_122, "%00000462"), Attrs([Attr("address","0x5C0"), -Attr("insn","adrp x16, #69632")]), Var("R16",Imm(64)), Int(69632,64)), -Def(Tid(1_129, "%00000469"), Attrs([Attr("address","0x5C4"), -Attr("insn","ldr x17, [x16]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R16",Imm(64)),LittleEndian(),64)), -Def(Tid(1_135, "%0000046f"), Attrs([Attr("address","0x5C8"), -Attr("insn","add x16, x16, #0x0")]), Var("R16",Imm(64)), -Var("R16",Imm(64)))]), Jmps([Call(Tid(1_140, "%00000474"), - Attrs([Attr("address","0x5CC"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), Sub(Tid(1_504, "@_fini"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x750")]), - "_fini", Args([Arg(Tid(1_528, "%000005f8"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("_fini_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(31, "@_fini"), - Attrs([Attr("address","0x750")]), Phis([]), Defs([Def(Tid(37, "%00000025"), - Attrs([Attr("address","0x754"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("#0",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(18446744073709551600,64))), -Def(Tid(43, "%0000002b"), Attrs([Attr("address","0x754"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("#0",Imm(64)),Var("R29",Imm(64)),LittleEndian(),64)), -Def(Tid(49, "%00000031"), Attrs([Attr("address","0x754"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("#0",Imm(64)),Int(8,64)),Var("R30",Imm(64)),LittleEndian(),64)), -Def(Tid(53, "%00000035"), Attrs([Attr("address","0x754"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("R31",Imm(64)), -Var("#0",Imm(64))), Def(Tid(59, "%0000003b"), Attrs([Attr("address","0x758"), -Attr("insn","mov x29, sp")]), Var("R29",Imm(64)), Var("R31",Imm(64))), -Def(Tid(66, "%00000042"), Attrs([Attr("address","0x75C"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R29",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(71, "%00000047"), Attrs([Attr("address","0x75C"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R30",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(75, "%0000004b"), Attrs([Attr("address","0x75C"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(16,64)))]), Jmps([Call(Tid(80, "%00000050"), - Attrs([Attr("address","0x760"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), Sub(Tid(1_505, "@_init"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x580")]), - "_init", Args([Arg(Tid(1_529, "%000005f9"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("_init_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(1_325, "@_init"), - Attrs([Attr("address","0x580")]), Phis([]), -Defs([Def(Tid(1_331, "%00000533"), Attrs([Attr("address","0x584"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("#5",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(18446744073709551600,64))), -Def(Tid(1_337, "%00000539"), Attrs([Attr("address","0x584"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("#5",Imm(64)),Var("R29",Imm(64)),LittleEndian(),64)), -Def(Tid(1_343, "%0000053f"), Attrs([Attr("address","0x584"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("#5",Imm(64)),Int(8,64)),Var("R30",Imm(64)),LittleEndian(),64)), -Def(Tid(1_347, "%00000543"), Attrs([Attr("address","0x584"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("R31",Imm(64)), -Var("#5",Imm(64))), Def(Tid(1_353, "%00000549"), - Attrs([Attr("address","0x588"), Attr("insn","mov x29, sp")]), - Var("R29",Imm(64)), Var("R31",Imm(64))), Def(Tid(1_358, "%0000054e"), - Attrs([Attr("address","0x58C"), Attr("insn","bl #0xa8")]), - Var("R30",Imm(64)), Int(1424,64))]), Jmps([Call(Tid(1_360, "%00000550"), - Attrs([Attr("address","0x58C"), Attr("insn","bl #0xa8")]), Int(1,1), -(Direct(Tid(1_510, "@call_weak_fn")),Direct(Tid(1_362, "%00000552"))))])), -Blk(Tid(1_362, "%00000552"), Attrs([Attr("address","0x590")]), Phis([]), -Defs([Def(Tid(1_367, "%00000557"), Attrs([Attr("address","0x590"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R29",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(1_372, "%0000055c"), Attrs([Attr("address","0x590"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R30",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(1_376, "%00000560"), Attrs([Attr("address","0x590"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(16,64)))]), Jmps([Call(Tid(1_381, "%00000565"), - Attrs([Attr("address","0x594"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), Sub(Tid(1_506, "@_start"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x600"), -Attr("stub","()"), Attr("entry-point","()")]), "_start", - Args([Arg(Tid(1_530, "%000005fa"), Attrs([Attr("c.layout","[signed : 32]"), -Attr("c.data","Top:u32"), Attr("c.type","signed")]), - Var("_start_result",Imm(32)), LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(420, "@_start"), Attrs([Attr("address","0x600")]), Phis([]), -Defs([Def(Tid(425, "%000001a9"), Attrs([Attr("address","0x604"), -Attr("insn","mov x29, #0x0")]), Var("R29",Imm(64)), Int(0,64)), -Def(Tid(430, "%000001ae"), Attrs([Attr("address","0x608"), -Attr("insn","mov x30, #0x0")]), Var("R30",Imm(64)), Int(0,64)), -Def(Tid(436, "%000001b4"), Attrs([Attr("address","0x60C"), -Attr("insn","mov x5, x0")]), Var("R5",Imm(64)), Var("R0",Imm(64))), -Def(Tid(443, "%000001bb"), Attrs([Attr("address","0x610"), -Attr("insn","ldr x1, [sp]")]), Var("R1",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(449, "%000001c1"), Attrs([Attr("address","0x614"), -Attr("insn","add x2, sp, #0x8")]), Var("R2",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(8,64))), Def(Tid(455, "%000001c7"), - Attrs([Attr("address","0x618"), Attr("insn","mov x6, sp")]), - Var("R6",Imm(64)), Var("R31",Imm(64))), Def(Tid(460, "%000001cc"), - Attrs([Attr("address","0x61C"), Attr("insn","adrp x0, #65536")]), - Var("R0",Imm(64)), Int(65536,64)), Def(Tid(467, "%000001d3"), - Attrs([Attr("address","0x620"), Attr("insn","ldr x0, [x0, #0xfd8]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(4056,64)),LittleEndian(),64)), -Def(Tid(472, "%000001d8"), Attrs([Attr("address","0x624"), -Attr("insn","mov x3, #0x0")]), Var("R3",Imm(64)), Int(0,64)), -Def(Tid(477, "%000001dd"), Attrs([Attr("address","0x628"), -Attr("insn","mov x4, #0x0")]), Var("R4",Imm(64)), Int(0,64)), -Def(Tid(482, "%000001e2"), Attrs([Attr("address","0x62C"), -Attr("insn","bl #-0x6c")]), Var("R30",Imm(64)), Int(1584,64))]), -Jmps([Call(Tid(485, "%000001e5"), Attrs([Attr("address","0x62C"), -Attr("insn","bl #-0x6c")]), Int(1,1), -(Direct(Tid(1_503, "@__libc_start_main")),Direct(Tid(487, "%000001e7"))))])), -Blk(Tid(487, "%000001e7"), Attrs([Attr("address","0x630")]), Phis([]), -Defs([Def(Tid(490, "%000001ea"), Attrs([Attr("address","0x630"), -Attr("insn","bl #-0x40")]), Var("R30",Imm(64)), Int(1588,64))]), -Jmps([Call(Tid(493, "%000001ed"), Attrs([Attr("address","0x630"), -Attr("insn","bl #-0x40")]), Int(1,1), -(Direct(Tid(1_509, "@abort")),Direct(Tid(1_507, "%000005e3"))))])), -Blk(Tid(1_507, "%000005e3"), Attrs([]), Phis([]), Defs([]), -Jmps([Call(Tid(1_508, "%000005e4"), Attrs([]), Int(1,1), -(Direct(Tid(1_510, "@call_weak_fn")),))]))])), Sub(Tid(1_509, "@abort"), - Attrs([Attr("noreturn","()"), Attr("c.proto","void (*)(void)"), -Attr("address","0x5F0"), Attr("stub","()")]), "abort", Args([]), -Blks([Blk(Tid(491, "@abort"), Attrs([Attr("address","0x5F0")]), Phis([]), -Defs([Def(Tid(1_188, "%000004a4"), Attrs([Attr("address","0x5F0"), -Attr("insn","adrp x16, #69632")]), Var("R16",Imm(64)), Int(69632,64)), -Def(Tid(1_195, "%000004ab"), Attrs([Attr("address","0x5F4"), -Attr("insn","ldr x17, [x16, #0x18]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(24,64)),LittleEndian(),64)), -Def(Tid(1_201, "%000004b1"), Attrs([Attr("address","0x5F8"), -Attr("insn","add x16, x16, #0x18")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(24,64)))]), Jmps([Call(Tid(1_206, "%000004b6"), - Attrs([Attr("address","0x5FC"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), Sub(Tid(1_510, "@call_weak_fn"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x634")]), - "call_weak_fn", Args([Arg(Tid(1_531, "%000005fb"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("call_weak_fn_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(495, "@call_weak_fn"), - Attrs([Attr("address","0x634")]), Phis([]), Defs([Def(Tid(498, "%000001f2"), - Attrs([Attr("address","0x634"), Attr("insn","adrp x0, #65536")]), - Var("R0",Imm(64)), Int(65536,64)), Def(Tid(505, "%000001f9"), - Attrs([Attr("address","0x638"), Attr("insn","ldr x0, [x0, #0xfd0]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(4048,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(511, "%000001ff"), Attrs([Attr("address","0x63C"), -Attr("insn","cbz x0, #0x8")]), EQ(Var("R0",Imm(64)),Int(0,64)), -Direct(Tid(509, "%000001fd"))), Goto(Tid(1_511, "%000005e7"), Attrs([]), - Int(1,1), Direct(Tid(960, "%000003c0")))])), Blk(Tid(509, "%000001fd"), - Attrs([Attr("address","0x644")]), Phis([]), Defs([]), -Jmps([Call(Tid(517, "%00000205"), Attrs([Attr("address","0x644"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))])), -Blk(Tid(960, "%000003c0"), Attrs([Attr("address","0x640")]), Phis([]), -Defs([]), Jmps([Goto(Tid(963, "%000003c3"), Attrs([Attr("address","0x640"), -Attr("insn","b #-0x60")]), Int(1,1), Direct(Tid(961, "@__gmon_start__")))])), -Blk(Tid(961, "@__gmon_start__"), Attrs([Attr("address","0x5E0")]), Phis([]), -Defs([Def(Tid(1_166, "%0000048e"), Attrs([Attr("address","0x5E0"), -Attr("insn","adrp x16, #69632")]), Var("R16",Imm(64)), Int(69632,64)), -Def(Tid(1_173, "%00000495"), Attrs([Attr("address","0x5E4"), -Attr("insn","ldr x17, [x16, #0x10]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(16,64)),LittleEndian(),64)), -Def(Tid(1_179, "%0000049b"), Attrs([Attr("address","0x5E8"), -Attr("insn","add x16, x16, #0x10")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(16,64)))]), Jmps([Call(Tid(1_184, "%000004a0"), - Attrs([Attr("address","0x5EC"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), -Sub(Tid(1_512, "@deregister_tm_clones"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x650")]), - "deregister_tm_clones", Args([Arg(Tid(1_532, "%000005fc"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("deregister_tm_clones_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(523, "@deregister_tm_clones"), - Attrs([Attr("address","0x650")]), Phis([]), Defs([Def(Tid(526, "%0000020e"), - Attrs([Attr("address","0x650"), Attr("insn","adrp x0, #69632")]), - Var("R0",Imm(64)), Int(69632,64)), Def(Tid(532, "%00000214"), - Attrs([Attr("address","0x654"), Attr("insn","add x0, x0, #0x30")]), - Var("R0",Imm(64)), PLUS(Var("R0",Imm(64)),Int(48,64))), -Def(Tid(537, "%00000219"), Attrs([Attr("address","0x658"), -Attr("insn","adrp x1, #69632")]), Var("R1",Imm(64)), Int(69632,64)), -Def(Tid(543, "%0000021f"), Attrs([Attr("address","0x65C"), -Attr("insn","add x1, x1, #0x30")]), Var("R1",Imm(64)), -PLUS(Var("R1",Imm(64)),Int(48,64))), Def(Tid(549, "%00000225"), - Attrs([Attr("address","0x660"), Attr("insn","cmp x1, x0")]), - Var("#1",Imm(64)), NOT(Var("R0",Imm(64)))), Def(Tid(554, "%0000022a"), - Attrs([Attr("address","0x660"), Attr("insn","cmp x1, x0")]), - Var("#2",Imm(64)), PLUS(Var("R1",Imm(64)),NOT(Var("R0",Imm(64))))), -Def(Tid(560, "%00000230"), Attrs([Attr("address","0x660"), -Attr("insn","cmp x1, x0")]), Var("VF",Imm(1)), -NEQ(SIGNED(65,PLUS(Var("#2",Imm(64)),Int(1,64))),PLUS(PLUS(SIGNED(65,Var("R1",Imm(64))),SIGNED(65,Var("#1",Imm(64)))),Int(1,65)))), -Def(Tid(566, "%00000236"), Attrs([Attr("address","0x660"), -Attr("insn","cmp x1, x0")]), Var("CF",Imm(1)), -NEQ(UNSIGNED(65,PLUS(Var("#2",Imm(64)),Int(1,64))),PLUS(PLUS(UNSIGNED(65,Var("R1",Imm(64))),UNSIGNED(65,Var("#1",Imm(64)))),Int(1,65)))), -Def(Tid(570, "%0000023a"), Attrs([Attr("address","0x660"), -Attr("insn","cmp x1, x0")]), Var("ZF",Imm(1)), -EQ(PLUS(Var("#2",Imm(64)),Int(1,64)),Int(0,64))), Def(Tid(574, "%0000023e"), - Attrs([Attr("address","0x660"), Attr("insn","cmp x1, x0")]), - Var("NF",Imm(1)), Extract(63,63,PLUS(Var("#2",Imm(64)),Int(1,64))))]), -Jmps([Goto(Tid(580, "%00000244"), Attrs([Attr("address","0x664"), -Attr("insn","b.eq #0x18")]), EQ(Var("ZF",Imm(1)),Int(1,1)), -Direct(Tid(578, "%00000242"))), Goto(Tid(1_513, "%000005e9"), Attrs([]), - Int(1,1), Direct(Tid(930, "%000003a2")))])), Blk(Tid(930, "%000003a2"), - Attrs([Attr("address","0x668")]), Phis([]), Defs([Def(Tid(933, "%000003a5"), - Attrs([Attr("address","0x668"), Attr("insn","adrp x1, #65536")]), - Var("R1",Imm(64)), Int(65536,64)), Def(Tid(940, "%000003ac"), - Attrs([Attr("address","0x66C"), Attr("insn","ldr x1, [x1, #0xfc0]")]), - Var("R1",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R1",Imm(64)),Int(4032,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(945, "%000003b1"), Attrs([Attr("address","0x670"), -Attr("insn","cbz x1, #0xc")]), EQ(Var("R1",Imm(64)),Int(0,64)), -Direct(Tid(578, "%00000242"))), Goto(Tid(1_514, "%000005ea"), Attrs([]), - Int(1,1), Direct(Tid(949, "%000003b5")))])), Blk(Tid(578, "%00000242"), - Attrs([Attr("address","0x67C")]), Phis([]), Defs([]), -Jmps([Call(Tid(586, "%0000024a"), Attrs([Attr("address","0x67C"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))])), -Blk(Tid(949, "%000003b5"), Attrs([Attr("address","0x674")]), Phis([]), -Defs([Def(Tid(953, "%000003b9"), Attrs([Attr("address","0x674"), -Attr("insn","mov x16, x1")]), Var("R16",Imm(64)), Var("R1",Imm(64)))]), -Jmps([Call(Tid(958, "%000003be"), Attrs([Attr("address","0x678"), -Attr("insn","br x16")]), Int(1,1), (Indirect(Var("R16",Imm(64))),))]))])), -Sub(Tid(1_515, "@frame_dummy"), Attrs([Attr("c.proto","signed (*)(void)"), -Attr("address","0x710")]), "frame_dummy", Args([Arg(Tid(1_533, "%000005fd"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("frame_dummy_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(738, "@frame_dummy"), - Attrs([Attr("address","0x710")]), Phis([]), Defs([]), -Jmps([Call(Tid(740, "%000002e4"), Attrs([Attr("address","0x710"), -Attr("insn","b #-0x90")]), Int(1,1), -(Direct(Tid(1_517, "@register_tm_clones")),))]))])), Sub(Tid(1_516, "@main"), - Attrs([Attr("c.proto","signed (*)(signed argc, const char** argv)"), -Attr("address","0x714")]), "main", Args([Arg(Tid(1_534, "%000005fe"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("main_argc",Imm(32)), -LOW(32,Var("R0",Imm(64))), In()), Arg(Tid(1_535, "%000005ff"), - Attrs([Attr("c.layout","**[char : 8]"), Attr("c.data","Top:u8 ptr ptr"), -Attr("c.type"," const char**")]), Var("main_argv",Imm(64)), -Var("R1",Imm(64)), Both()), Arg(Tid(1_536, "%00000600"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("main_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(742, "@main"), - Attrs([Attr("address","0x714")]), Phis([]), Defs([Def(Tid(746, "%000002ea"), - Attrs([Attr("address","0x714"), Attr("insn","sub sp, sp, #0x10")]), - Var("R31",Imm(64)), PLUS(Var("R31",Imm(64)),Int(18446744073709551600,64))), -Def(Tid(751, "%000002ef"), Attrs([Attr("address","0x718"), -Attr("insn","adrp x8, #69632")]), Var("R8",Imm(64)), Int(69632,64)), -Def(Tid(758, "%000002f6"), Attrs([Attr("address","0x71C"), -Attr("insn","ldr x9, [x8, #0x38]")]), Var("R9",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R8",Imm(64)),Int(56,64)),LittleEndian(),64)), -Def(Tid(766, "%000002fe"), Attrs([Attr("address","0x720"), -Attr("insn","str x9, [sp, #0x8]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),Var("R9",Imm(64)),LittleEndian(),64)), -Def(Tid(773, "%00000305"), Attrs([Attr("address","0x724"), -Attr("insn","str xzr, [sp, #0x8]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),Int(0,64),LittleEndian(),64)), -Def(Tid(780, "%0000030c"), Attrs([Attr("address","0x728"), -Attr("insn","ldr x10, [sp, #0x8]")]), Var("R10",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(785, "%00000311"), Attrs([Attr("address","0x72C"), -Attr("insn","adrp x9, #69632")]), Var("R9",Imm(64)), Int(69632,64)), -Def(Tid(793, "%00000319"), Attrs([Attr("address","0x730"), -Attr("insn","str x10, [x9, #0x40]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R9",Imm(64)),Int(64,64)),Var("R10",Imm(64)),LittleEndian(),64)), -Def(Tid(800, "%00000320"), Attrs([Attr("address","0x734"), -Attr("insn","ldr x8, [x8, #0x38]")]), Var("R8",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R8",Imm(64)),Int(56,64)),LittleEndian(),64)), -Def(Tid(808, "%00000328"), Attrs([Attr("address","0x738"), -Attr("insn","str x8, [sp, #0x8]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),Var("R8",Imm(64)),LittleEndian(),64)), -Def(Tid(815, "%0000032f"), Attrs([Attr("address","0x73C"), -Attr("insn","ldr x8, [sp, #0x8]")]), Var("R8",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(823, "%00000337"), Attrs([Attr("address","0x740"), -Attr("insn","str x8, [x9, #0x40]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R9",Imm(64)),Int(64,64)),Var("R8",Imm(64)),LittleEndian(),64)), -Def(Tid(828, "%0000033c"), Attrs([Attr("address","0x744"), -Attr("insn","mov w0, wzr")]), Var("R0",Imm(64)), Int(0,64)), -Def(Tid(834, "%00000342"), Attrs([Attr("address","0x748"), -Attr("insn","add sp, sp, #0x10")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(16,64)))]), Jmps([Call(Tid(839, "%00000347"), - Attrs([Attr("address","0x74C"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), -Sub(Tid(1_517, "@register_tm_clones"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x680")]), - "register_tm_clones", Args([Arg(Tid(1_537, "%00000601"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("register_tm_clones_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(588, "@register_tm_clones"), Attrs([Attr("address","0x680")]), - Phis([]), Defs([Def(Tid(591, "%0000024f"), Attrs([Attr("address","0x680"), -Attr("insn","adrp x0, #69632")]), Var("R0",Imm(64)), Int(69632,64)), -Def(Tid(597, "%00000255"), Attrs([Attr("address","0x684"), -Attr("insn","add x0, x0, #0x30")]), Var("R0",Imm(64)), -PLUS(Var("R0",Imm(64)),Int(48,64))), Def(Tid(602, "%0000025a"), - Attrs([Attr("address","0x688"), Attr("insn","adrp x1, #69632")]), - Var("R1",Imm(64)), Int(69632,64)), Def(Tid(608, "%00000260"), - Attrs([Attr("address","0x68C"), Attr("insn","add x1, x1, #0x30")]), - Var("R1",Imm(64)), PLUS(Var("R1",Imm(64)),Int(48,64))), -Def(Tid(615, "%00000267"), Attrs([Attr("address","0x690"), -Attr("insn","sub x1, x1, x0")]), Var("R1",Imm(64)), -PLUS(PLUS(Var("R1",Imm(64)),NOT(Var("R0",Imm(64)))),Int(1,64))), -Def(Tid(621, "%0000026d"), Attrs([Attr("address","0x694"), -Attr("insn","lsr x2, x1, #63")]), Var("R2",Imm(64)), -Concat(Int(0,63),Extract(63,63,Var("R1",Imm(64))))), -Def(Tid(628, "%00000274"), Attrs([Attr("address","0x698"), -Attr("insn","add x1, x2, x1, asr #3")]), Var("R1",Imm(64)), -PLUS(Var("R2",Imm(64)),ARSHIFT(Var("R1",Imm(64)),Int(3,3)))), -Def(Tid(634, "%0000027a"), Attrs([Attr("address","0x69C"), -Attr("insn","asr x1, x1, #1")]), Var("R1",Imm(64)), -SIGNED(64,Extract(63,1,Var("R1",Imm(64)))))]), -Jmps([Goto(Tid(640, "%00000280"), Attrs([Attr("address","0x6A0"), -Attr("insn","cbz x1, #0x18")]), EQ(Var("R1",Imm(64)),Int(0,64)), -Direct(Tid(638, "%0000027e"))), Goto(Tid(1_518, "%000005ee"), Attrs([]), - Int(1,1), Direct(Tid(900, "%00000384")))])), Blk(Tid(900, "%00000384"), - Attrs([Attr("address","0x6A4")]), Phis([]), Defs([Def(Tid(903, "%00000387"), - Attrs([Attr("address","0x6A4"), Attr("insn","adrp x2, #65536")]), - Var("R2",Imm(64)), Int(65536,64)), Def(Tid(910, "%0000038e"), - Attrs([Attr("address","0x6A8"), Attr("insn","ldr x2, [x2, #0xfe0]")]), - Var("R2",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R2",Imm(64)),Int(4064,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(915, "%00000393"), Attrs([Attr("address","0x6AC"), -Attr("insn","cbz x2, #0xc")]), EQ(Var("R2",Imm(64)),Int(0,64)), -Direct(Tid(638, "%0000027e"))), Goto(Tid(1_519, "%000005ef"), Attrs([]), - Int(1,1), Direct(Tid(919, "%00000397")))])), Blk(Tid(638, "%0000027e"), - Attrs([Attr("address","0x6B8")]), Phis([]), Defs([]), -Jmps([Call(Tid(646, "%00000286"), Attrs([Attr("address","0x6B8"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))])), -Blk(Tid(919, "%00000397"), Attrs([Attr("address","0x6B0")]), Phis([]), -Defs([Def(Tid(923, "%0000039b"), Attrs([Attr("address","0x6B0"), -Attr("insn","mov x16, x2")]), Var("R16",Imm(64)), Var("R2",Imm(64)))]), -Jmps([Call(Tid(928, "%000003a0"), Attrs([Attr("address","0x6B4"), -Attr("insn","br x16")]), Int(1,1), -(Indirect(Var("R16",Imm(64))),))]))]))]))) \ No newline at end of file diff --git a/src/test/incorrect/basicassign2/clang/basicassign2.bir b/src/test/incorrect/basicassign2/clang/basicassign2.bir deleted file mode 100644 index c70535d88..000000000 --- a/src/test/incorrect/basicassign2/clang/basicassign2.bir +++ /dev/null @@ -1,237 +0,0 @@ -000005f0: program -000005da: sub __cxa_finalize(__cxa_finalize_result) -000005f1: __cxa_finalize_result :: out u32 = low:32[R0] - -00000380: -00000478: R16 := 0x11000 -0000047f: R17 := mem[R16 + 8, el]:u64 -00000485: R16 := R16 + 8 -0000048a: call R17 with noreturn - -000005db: sub __do_global_dtors_aux(__do_global_dtors_aux_result) -000005f2: __do_global_dtors_aux_result :: out u32 = low:32[R0] - -0000028a: -0000028e: #3 := R31 - 0x20 -00000294: mem := mem with [#3, el]:u64 <- R29 -0000029a: mem := mem with [#3 + 8, el]:u64 <- R30 -0000029e: R31 := #3 -000002a4: R29 := R31 -000002ac: mem := mem with [R31 + 0x10, el]:u64 <- R19 -000002b1: R19 := 0x11000 -000002b8: R0 := pad:64[mem[R19 + 0x30]] -000002bf: when 31:0[R0] <> 0 goto %000002bd -000005dc: goto %00000349 - -00000349: -0000034c: R0 := 0x10000 -00000353: R0 := mem[R0 + 0xFC8, el]:u64 -00000359: when R0 = 0 goto %00000357 -000005dd: goto %00000370 - -00000370: -00000373: R0 := 0x11000 -0000037a: R0 := mem[R0 + 0x28, el]:u64 -0000037f: R30 := 0x6F0 -00000382: call @__cxa_finalize with return %00000357 - -00000357: -0000035f: R30 := 0x6F4 -00000361: call @deregister_tm_clones with return %00000363 - -00000363: -00000366: R0 := 1 -0000036e: mem := mem with [R19 + 0x30] <- 7:0[R0] -000005de: goto %000002bd - -000002bd: -000002c7: R19 := mem[R31 + 0x10, el]:u64 -000002ce: R29 := mem[R31, el]:u64 -000002d3: R30 := mem[R31 + 8, el]:u64 -000002d7: R31 := R31 + 0x20 -000002dc: call R30 with noreturn - -000005df: sub __libc_start_main(__libc_start_main_main, __libc_start_main_arg2, __libc_start_main_arg3, __libc_start_main_auxv, __libc_start_main_result) -000005f3: __libc_start_main_main :: in u64 = R0 -000005f4: __libc_start_main_arg2 :: in u32 = low:32[R1] -000005f5: __libc_start_main_arg3 :: in out u64 = R2 -000005f6: __libc_start_main_auxv :: in out u64 = R3 -000005f7: __libc_start_main_result :: out u32 = low:32[R0] - -000001e3: -00000462: R16 := 0x11000 -00000469: R17 := mem[R16, el]:u64 -0000046f: R16 := R16 -00000474: call R17 with noreturn - -000005e0: sub _fini(_fini_result) -000005f8: _fini_result :: out u32 = low:32[R0] - -0000001f: -00000025: #0 := R31 - 0x10 -0000002b: mem := mem with [#0, el]:u64 <- R29 -00000031: mem := mem with [#0 + 8, el]:u64 <- R30 -00000035: R31 := #0 -0000003b: R29 := R31 -00000042: R29 := mem[R31, el]:u64 -00000047: R30 := mem[R31 + 8, el]:u64 -0000004b: R31 := R31 + 0x10 -00000050: call R30 with noreturn - -000005e1: sub _init(_init_result) -000005f9: _init_result :: out u32 = low:32[R0] - -0000052d: -00000533: #5 := R31 - 0x10 -00000539: mem := mem with [#5, el]:u64 <- R29 -0000053f: mem := mem with [#5 + 8, el]:u64 <- R30 -00000543: R31 := #5 -00000549: R29 := R31 -0000054e: R30 := 0x590 -00000550: call @call_weak_fn with return %00000552 - -00000552: -00000557: R29 := mem[R31, el]:u64 -0000055c: R30 := mem[R31 + 8, el]:u64 -00000560: R31 := R31 + 0x10 -00000565: call R30 with noreturn - -000005e2: sub _start(_start_result) -000005fa: _start_result :: out u32 = low:32[R0] - -000001a4: -000001a9: R29 := 0 -000001ae: R30 := 0 -000001b4: R5 := R0 -000001bb: R1 := mem[R31, el]:u64 -000001c1: R2 := R31 + 8 -000001c7: R6 := R31 -000001cc: R0 := 0x10000 -000001d3: R0 := mem[R0 + 0xFD8, el]:u64 -000001d8: R3 := 0 -000001dd: R4 := 0 -000001e2: R30 := 0x630 -000001e5: call @__libc_start_main with return %000001e7 - -000001e7: -000001ea: R30 := 0x634 -000001ed: call @abort with return %000005e3 - -000005e3: -000005e4: call @call_weak_fn with noreturn - -000005e5: sub abort() - - -000001eb: -000004a4: R16 := 0x11000 -000004ab: R17 := mem[R16 + 0x18, el]:u64 -000004b1: R16 := R16 + 0x18 -000004b6: call R17 with noreturn - -000005e6: sub call_weak_fn(call_weak_fn_result) -000005fb: call_weak_fn_result :: out u32 = low:32[R0] - -000001ef: -000001f2: R0 := 0x10000 -000001f9: R0 := mem[R0 + 0xFD0, el]:u64 -000001ff: when R0 = 0 goto %000001fd -000005e7: goto %000003c0 - -000001fd: -00000205: call R30 with noreturn - -000003c0: -000003c3: goto @__gmon_start__ - -000003c1: -0000048e: R16 := 0x11000 -00000495: R17 := mem[R16 + 0x10, el]:u64 -0000049b: R16 := R16 + 0x10 -000004a0: call R17 with noreturn - -000005e8: sub deregister_tm_clones(deregister_tm_clones_result) -000005fc: deregister_tm_clones_result :: out u32 = low:32[R0] - -0000020b: -0000020e: R0 := 0x11000 -00000214: R0 := R0 + 0x30 -00000219: R1 := 0x11000 -0000021f: R1 := R1 + 0x30 -00000225: #1 := ~R0 -0000022a: #2 := R1 + ~R0 -00000230: VF := extend:65[#2 + 1] <> extend:65[R1] + extend:65[#1] + 1 -00000236: CF := pad:65[#2 + 1] <> pad:65[R1] + pad:65[#1] + 1 -0000023a: ZF := #2 + 1 = 0 -0000023e: NF := 63:63[#2 + 1] -00000244: when ZF goto %00000242 -000005e9: goto %000003a2 - -000003a2: -000003a5: R1 := 0x10000 -000003ac: R1 := mem[R1 + 0xFC0, el]:u64 -000003b1: when R1 = 0 goto %00000242 -000005ea: goto %000003b5 - -00000242: -0000024a: call R30 with noreturn - -000003b5: -000003b9: R16 := R1 -000003be: call R16 with noreturn - -000005eb: sub frame_dummy(frame_dummy_result) -000005fd: frame_dummy_result :: out u32 = low:32[R0] - -000002e2: -000002e4: call @register_tm_clones with noreturn - -000005ec: sub main(main_argc, main_argv, main_result) -000005fe: main_argc :: in u32 = low:32[R0] -000005ff: main_argv :: in out u64 = R1 -00000600: main_result :: out u32 = low:32[R0] - -000002e6: -000002ea: R31 := R31 - 0x10 -000002ef: R8 := 0x11000 -000002f6: R9 := mem[R8 + 0x38, el]:u64 -000002fe: mem := mem with [R31 + 8, el]:u64 <- R9 -00000305: mem := mem with [R31 + 8, el]:u64 <- 0 -0000030c: R10 := mem[R31 + 8, el]:u64 -00000311: R9 := 0x11000 -00000319: mem := mem with [R9 + 0x40, el]:u64 <- R10 -00000320: R8 := mem[R8 + 0x38, el]:u64 -00000328: mem := mem with [R31 + 8, el]:u64 <- R8 -0000032f: R8 := mem[R31 + 8, el]:u64 -00000337: mem := mem with [R9 + 0x40, el]:u64 <- R8 -0000033c: R0 := 0 -00000342: R31 := R31 + 0x10 -00000347: call R30 with noreturn - -000005ed: sub register_tm_clones(register_tm_clones_result) -00000601: register_tm_clones_result :: out u32 = low:32[R0] - -0000024c: -0000024f: R0 := 0x11000 -00000255: R0 := R0 + 0x30 -0000025a: R1 := 0x11000 -00000260: R1 := R1 + 0x30 -00000267: R1 := R1 + ~R0 + 1 -0000026d: R2 := 0.63:63[R1] -00000274: R1 := R2 + (R1 ~>> 3) -0000027a: R1 := extend:64[63:1[R1]] -00000280: when R1 = 0 goto %0000027e -000005ee: goto %00000384 - -00000384: -00000387: R2 := 0x10000 -0000038e: R2 := mem[R2 + 0xFE0, el]:u64 -00000393: when R2 = 0 goto %0000027e -000005ef: goto %00000397 - -0000027e: -00000286: call R30 with noreturn - -00000397: -0000039b: R16 := R2 -000003a0: call R16 with noreturn diff --git a/src/test/incorrect/basicassign2/clang/basicassign2.expected b/src/test/incorrect/basicassign2/clang/basicassign2.expected index bf587b2d5..839f672f2 100644 --- a/src/test/incorrect/basicassign2/clang/basicassign2.expected +++ b/src/test/incorrect/basicassign2/clang/basicassign2.expected @@ -1,21 +1,15 @@ var {:extern} Gamma_R0: bool; -var {:extern} Gamma_R10: bool; -var {:extern} Gamma_R31: bool; var {:extern} Gamma_R8: bool; var {:extern} Gamma_R9: bool; var {:extern} Gamma_mem: [bv64]bool; -var {:extern} Gamma_stack: [bv64]bool; var {:extern} R0: bv64; -var {:extern} R10: bv64; -var {:extern} R31: bv64; var {:extern} R8: bv64; var {:extern} R9: bv64; var {:extern} mem: [bv64]bv8; -var {:extern} stack: [bv64]bv8; const {:extern} $secret_addr: bv64; -axiom ($secret_addr == 69688bv64); +axiom ($secret_addr == 131096bv64); const {:extern} $z_addr: bv64; -axiom ($z_addr == 69696bv64); +axiom ($z_addr == 131104bv64); function {:extern} L(mem$in: [bv64]bv8, index: bv64) returns (bool) { (if (index == $z_addr) then true else (if (index == $secret_addr) then false else false)) } @@ -45,11 +39,13 @@ procedure {:extern} rely(); modifies Gamma_mem, mem; ensures (Gamma_mem == old(Gamma_mem)); ensures (mem == old(mem)); - free ensures (memory_load32_le(mem, 1892bv64) == 131073bv32); - free ensures (memory_load64_le(mem, 69064bv64) == 1808bv64); - free ensures (memory_load64_le(mem, 69072bv64) == 1728bv64); - free ensures (memory_load64_le(mem, 69592bv64) == 1812bv64); - free ensures (memory_load64_le(mem, 69672bv64) == 69672bv64); + free ensures (memory_load32_le(mem, 2312bv64) == 131073bv32); + free ensures (memory_load64_le(mem, 130424bv64) == 2256bv64); + free ensures (memory_load64_le(mem, 130432bv64) == 2176bv64); + free ensures (memory_load64_le(mem, 131032bv64) == 131104bv64); + free ensures (memory_load64_le(mem, 131048bv64) == 131096bv64); + free ensures (memory_load64_le(mem, 131056bv64) == 2260bv64); + free ensures (memory_load64_le(mem, 131080bv64) == 131080bv64); procedure {:extern} rely_transitive(); modifies Gamma_mem, mem; @@ -67,67 +63,54 @@ procedure {:extern} rely_reflexive(); procedure {:extern} guarantee_reflexive(); modifies Gamma_mem, mem; -procedure main_1812(); - modifies Gamma_R0, Gamma_R10, Gamma_R31, Gamma_R8, Gamma_R9, Gamma_mem, Gamma_stack, R0, R10, R31, R8, R9, mem, stack; - free requires (memory_load64_le(mem, 69664bv64) == 0bv64); - free requires (memory_load64_le(mem, 69672bv64) == 69672bv64); - free requires (memory_load32_le(mem, 1892bv64) == 131073bv32); - free requires (memory_load64_le(mem, 69064bv64) == 1808bv64); - free requires (memory_load64_le(mem, 69072bv64) == 1728bv64); - free requires (memory_load64_le(mem, 69592bv64) == 1812bv64); - free requires (memory_load64_le(mem, 69672bv64) == 69672bv64); - free ensures (Gamma_R31 == old(Gamma_R31)); - free ensures (R31 == old(R31)); - free ensures (memory_load32_le(mem, 1892bv64) == 131073bv32); - free ensures (memory_load64_le(mem, 69064bv64) == 1808bv64); - free ensures (memory_load64_le(mem, 69072bv64) == 1728bv64); - free ensures (memory_load64_le(mem, 69592bv64) == 1812bv64); - free ensures (memory_load64_le(mem, 69672bv64) == 69672bv64); +procedure main(); + modifies Gamma_R0, Gamma_R8, Gamma_R9, Gamma_mem, R0, R8, R9, mem; + free requires (memory_load64_le(mem, 131072bv64) == 0bv64); + free requires (memory_load64_le(mem, 131080bv64) == 131080bv64); + free requires (memory_load32_le(mem, 2312bv64) == 131073bv32); + free requires (memory_load64_le(mem, 130424bv64) == 2256bv64); + free requires (memory_load64_le(mem, 130432bv64) == 2176bv64); + free requires (memory_load64_le(mem, 131032bv64) == 131104bv64); + free requires (memory_load64_le(mem, 131048bv64) == 131096bv64); + free requires (memory_load64_le(mem, 131056bv64) == 2260bv64); + free requires (memory_load64_le(mem, 131080bv64) == 131080bv64); + free ensures (memory_load32_le(mem, 2312bv64) == 131073bv32); + free ensures (memory_load64_le(mem, 130424bv64) == 2256bv64); + free ensures (memory_load64_le(mem, 130432bv64) == 2176bv64); + free ensures (memory_load64_le(mem, 131032bv64) == 131104bv64); + free ensures (memory_load64_le(mem, 131048bv64) == 131096bv64); + free ensures (memory_load64_le(mem, 131056bv64) == 2260bv64); + free ensures (memory_load64_le(mem, 131080bv64) == 131080bv64); -implementation main_1812() +implementation main() { - var Gamma_load18: bool; - var Gamma_load19: bool; - var Gamma_load20: bool; - var Gamma_load21: bool; - var load18: bv64; - var load19: bv64; - var load20: bv64; - var load21: bv64; + var $load$18: bv64; + var $load$19: bv64; + var $load$20: bv64; + var Gamma_$load$18: bool; + var Gamma_$load$19: bool; + var Gamma_$load$20: bool; lmain: assume {:captureState "lmain"} true; - R31, Gamma_R31 := bvadd64(R31, 18446744073709551600bv64), Gamma_R31; - R8, Gamma_R8 := 69632bv64, true; + R8, Gamma_R8 := 126976bv64, true; + R9, Gamma_R9 := 126976bv64, true; + R0, Gamma_R0 := 0bv64, true; call rely(); - load18, Gamma_load18 := memory_load64_le(mem, bvadd64(R8, 56bv64)), (gamma_load64(Gamma_mem, bvadd64(R8, 56bv64)) || L(mem, bvadd64(R8, 56bv64))); - R9, Gamma_R9 := load18, Gamma_load18; - stack, Gamma_stack := memory_store64_le(stack, bvadd64(R31, 8bv64), R9), gamma_store64(Gamma_stack, bvadd64(R31, 8bv64), Gamma_R9); - assume {:captureState "%000002fe"} true; - stack, Gamma_stack := memory_store64_le(stack, bvadd64(R31, 8bv64), 0bv64), gamma_store64(Gamma_stack, bvadd64(R31, 8bv64), true); - assume {:captureState "%00000305"} true; - load19, Gamma_load19 := memory_load64_le(stack, bvadd64(R31, 8bv64)), gamma_load64(Gamma_stack, bvadd64(R31, 8bv64)); - R10, Gamma_R10 := load19, Gamma_load19; - R9, Gamma_R9 := 69632bv64, true; + $load$18, Gamma_$load$18 := memory_load64_le(mem, bvadd64(R8, 4072bv64)), (gamma_load64(Gamma_mem, bvadd64(R8, 4072bv64)) || L(mem, bvadd64(R8, 4072bv64))); + R8, Gamma_R8 := $load$18, Gamma_$load$18; call rely(); - assert (L(mem, bvadd64(R9, 64bv64)) ==> Gamma_R10); - mem, Gamma_mem := memory_store64_le(mem, bvadd64(R9, 64bv64), R10), gamma_store64(Gamma_mem, bvadd64(R9, 64bv64), Gamma_R10); - assume {:captureState "%00000319"} true; + $load$19, Gamma_$load$19 := memory_load64_le(mem, R8), (gamma_load64(Gamma_mem, R8) || L(mem, R8)); + R8, Gamma_R8 := $load$19, Gamma_$load$19; call rely(); - load20, Gamma_load20 := memory_load64_le(mem, bvadd64(R8, 56bv64)), (gamma_load64(Gamma_mem, bvadd64(R8, 56bv64)) || L(mem, bvadd64(R8, 56bv64))); - R8, Gamma_R8 := load20, Gamma_load20; - stack, Gamma_stack := memory_store64_le(stack, bvadd64(R31, 8bv64), R8), gamma_store64(Gamma_stack, bvadd64(R31, 8bv64), Gamma_R8); - assume {:captureState "%00000328"} true; - load21, Gamma_load21 := memory_load64_le(stack, bvadd64(R31, 8bv64)), gamma_load64(Gamma_stack, bvadd64(R31, 8bv64)); - R8, Gamma_R8 := load21, Gamma_load21; + $load$20, Gamma_$load$20 := memory_load64_le(mem, bvadd64(R9, 4056bv64)), (gamma_load64(Gamma_mem, bvadd64(R9, 4056bv64)) || L(mem, bvadd64(R9, 4056bv64))); + R9, Gamma_R9 := $load$20, Gamma_$load$20; call rely(); - assert (L(mem, bvadd64(R9, 64bv64)) ==> Gamma_R8); - mem, Gamma_mem := memory_store64_le(mem, bvadd64(R9, 64bv64), R8), gamma_store64(Gamma_mem, bvadd64(R9, 64bv64), Gamma_R8); - assume {:captureState "%00000337"} true; - R0, Gamma_R0 := 0bv64, true; - R31, Gamma_R31 := bvadd64(R31, 16bv64), Gamma_R31; - goto main_1812_basil_return; - main_1812_basil_return: - assume {:captureState "main_1812_basil_return"} true; + assert (L(mem, R9) ==> Gamma_R8); + mem, Gamma_mem := memory_store64_le(mem, R9, R8), gamma_store64(Gamma_mem, R9, Gamma_R8); + assume {:captureState "%00000294"} true; + goto main_basil_return; + main_basil_return: + assume {:captureState "main_basil_return"} true; return; } diff --git a/src/test/incorrect/basicassign2/clang/basicassign2.gts b/src/test/incorrect/basicassign2/clang/basicassign2.gts deleted file mode 100644 index 5387acb66..000000000 Binary files a/src/test/incorrect/basicassign2/clang/basicassign2.gts and /dev/null differ diff --git a/src/test/incorrect/basicassign2/clang/basicassign2.md5sum b/src/test/incorrect/basicassign2/clang/basicassign2.md5sum new file mode 100644 index 000000000..b73d6257e --- /dev/null +++ b/src/test/incorrect/basicassign2/clang/basicassign2.md5sum @@ -0,0 +1,5 @@ +0e58950dc77a8d63142b477e6fe6b591 incorrect/basicassign2/clang/a.out +af6b671032938ebdee106e412436e0e6 incorrect/basicassign2/clang/basicassign2.adt +295fee9670df4ebc3b352e88c32ea459 incorrect/basicassign2/clang/basicassign2.bir +453d7e73c7819c05048bd06dfcb7b2a8 incorrect/basicassign2/clang/basicassign2.relf +70e6c3853d2efe605a3147be8a469d76 incorrect/basicassign2/clang/basicassign2.gts diff --git a/src/test/incorrect/basicassign2/clang/basicassign2.relf b/src/test/incorrect/basicassign2/clang/basicassign2.relf deleted file mode 100644 index c33e511fd..000000000 --- a/src/test/incorrect/basicassign2/clang/basicassign2.relf +++ /dev/null @@ -1,124 +0,0 @@ - -Relocation section '.rela.dyn' at offset 0x460 contains 8 entries: - Offset Info Type Symbol's Value Symbol's Name + Addend -0000000000010dc8 0000000000000403 R_AARCH64_RELATIVE 710 -0000000000010dd0 0000000000000403 R_AARCH64_RELATIVE 6c0 -0000000000010fd8 0000000000000403 R_AARCH64_RELATIVE 714 -0000000000011028 0000000000000403 R_AARCH64_RELATIVE 11028 -0000000000010fc0 0000000400000401 R_AARCH64_GLOB_DAT 0000000000000000 _ITM_deregisterTMCloneTable + 0 -0000000000010fc8 0000000500000401 R_AARCH64_GLOB_DAT 0000000000000000 __cxa_finalize@GLIBC_2.17 + 0 -0000000000010fd0 0000000600000401 R_AARCH64_GLOB_DAT 0000000000000000 __gmon_start__ + 0 -0000000000010fe0 0000000800000401 R_AARCH64_GLOB_DAT 0000000000000000 _ITM_registerTMCloneTable + 0 - -Relocation section '.rela.plt' at offset 0x520 contains 4 entries: - Offset Info Type Symbol's Value Symbol's Name + Addend -0000000000011000 0000000300000402 R_AARCH64_JUMP_SLOT 0000000000000000 __libc_start_main@GLIBC_2.34 + 0 -0000000000011008 0000000500000402 R_AARCH64_JUMP_SLOT 0000000000000000 __cxa_finalize@GLIBC_2.17 + 0 -0000000000011010 0000000600000402 R_AARCH64_JUMP_SLOT 0000000000000000 __gmon_start__ + 0 -0000000000011018 0000000700000402 R_AARCH64_JUMP_SLOT 0000000000000000 abort@GLIBC_2.17 + 0 - -Symbol table '.dynsym' contains 9 entries: - Num: Value Size Type Bind Vis Ndx Name - 0: 0000000000000000 0 NOTYPE LOCAL DEFAULT UND - 1: 0000000000000580 0 SECTION LOCAL DEFAULT 11 .init - 2: 0000000000011020 0 SECTION LOCAL DEFAULT 23 .data - 3: 0000000000000000 0 FUNC GLOBAL DEFAULT UND __libc_start_main@GLIBC_2.34 (2) - 4: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_deregisterTMCloneTable - 5: 0000000000000000 0 FUNC WEAK DEFAULT UND __cxa_finalize@GLIBC_2.17 (3) - 6: 0000000000000000 0 NOTYPE WEAK DEFAULT UND __gmon_start__ - 7: 0000000000000000 0 FUNC GLOBAL DEFAULT UND abort@GLIBC_2.17 (3) - 8: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_registerTMCloneTable - -Symbol table '.symtab' contains 91 entries: - Num: Value Size Type Bind Vis Ndx Name - 0: 0000000000000000 0 NOTYPE LOCAL DEFAULT UND - 1: 0000000000000238 0 SECTION LOCAL DEFAULT 1 .interp - 2: 0000000000000254 0 SECTION LOCAL DEFAULT 2 .note.gnu.build-id - 3: 0000000000000278 0 SECTION LOCAL DEFAULT 3 .note.ABI-tag - 4: 0000000000000298 0 SECTION LOCAL DEFAULT 4 .gnu.hash - 5: 00000000000002b8 0 SECTION LOCAL DEFAULT 5 .dynsym - 6: 0000000000000390 0 SECTION LOCAL DEFAULT 6 .dynstr - 7: 000000000000041e 0 SECTION LOCAL DEFAULT 7 .gnu.version - 8: 0000000000000430 0 SECTION LOCAL DEFAULT 8 .gnu.version_r - 9: 0000000000000460 0 SECTION LOCAL DEFAULT 9 .rela.dyn - 10: 0000000000000520 0 SECTION LOCAL DEFAULT 10 .rela.plt - 11: 0000000000000580 0 SECTION LOCAL DEFAULT 11 .init - 12: 00000000000005a0 0 SECTION LOCAL DEFAULT 12 .plt - 13: 0000000000000600 0 SECTION LOCAL DEFAULT 13 .text - 14: 0000000000000750 0 SECTION LOCAL DEFAULT 14 .fini - 15: 0000000000000764 0 SECTION LOCAL DEFAULT 15 .rodata - 16: 0000000000000768 0 SECTION LOCAL DEFAULT 16 .eh_frame_hdr - 17: 00000000000007a8 0 SECTION LOCAL DEFAULT 17 .eh_frame - 18: 0000000000010dc8 0 SECTION LOCAL DEFAULT 18 .init_array - 19: 0000000000010dd0 0 SECTION LOCAL DEFAULT 19 .fini_array - 20: 0000000000010dd8 0 SECTION LOCAL DEFAULT 20 .dynamic - 21: 0000000000010fb8 0 SECTION LOCAL DEFAULT 21 .got - 22: 0000000000010fe8 0 SECTION LOCAL DEFAULT 22 .got.plt - 23: 0000000000011020 0 SECTION LOCAL DEFAULT 23 .data - 24: 0000000000011030 0 SECTION LOCAL DEFAULT 24 .bss - 25: 0000000000000000 0 SECTION LOCAL DEFAULT 25 .comment - 26: 0000000000000000 0 FILE LOCAL DEFAULT ABS Scrt1.o - 27: 0000000000000278 0 NOTYPE LOCAL DEFAULT 3 $d - 28: 0000000000000278 32 OBJECT LOCAL DEFAULT 3 __abi_tag - 29: 0000000000000600 0 NOTYPE LOCAL DEFAULT 13 $x - 30: 00000000000007bc 0 NOTYPE LOCAL DEFAULT 17 $d - 31: 0000000000000764 0 NOTYPE LOCAL DEFAULT 15 $d - 32: 0000000000000000 0 FILE LOCAL DEFAULT ABS crti.o - 33: 0000000000000634 0 NOTYPE LOCAL DEFAULT 13 $x - 34: 0000000000000634 20 FUNC LOCAL DEFAULT 13 call_weak_fn - 35: 0000000000000580 0 NOTYPE LOCAL DEFAULT 11 $x - 36: 0000000000000750 0 NOTYPE LOCAL DEFAULT 14 $x - 37: 0000000000000000 0 FILE LOCAL DEFAULT ABS crtn.o - 38: 0000000000000590 0 NOTYPE LOCAL DEFAULT 11 $x - 39: 000000000000075c 0 NOTYPE LOCAL DEFAULT 14 $x - 40: 0000000000000000 0 FILE LOCAL DEFAULT ABS crtstuff.c - 41: 0000000000000650 0 NOTYPE LOCAL DEFAULT 13 $x - 42: 0000000000000650 0 FUNC LOCAL DEFAULT 13 deregister_tm_clones - 43: 0000000000000680 0 FUNC LOCAL DEFAULT 13 register_tm_clones - 44: 0000000000011028 0 NOTYPE LOCAL DEFAULT 23 $d - 45: 00000000000006c0 0 FUNC LOCAL DEFAULT 13 __do_global_dtors_aux - 46: 0000000000011030 1 OBJECT LOCAL DEFAULT 24 completed.0 - 47: 0000000000010dd0 0 NOTYPE LOCAL DEFAULT 19 $d - 48: 0000000000010dd0 0 OBJECT LOCAL DEFAULT 19 __do_global_dtors_aux_fini_array_entry - 49: 0000000000000710 0 FUNC LOCAL DEFAULT 13 frame_dummy - 50: 0000000000010dc8 0 NOTYPE LOCAL DEFAULT 18 $d - 51: 0000000000010dc8 0 OBJECT LOCAL DEFAULT 18 __frame_dummy_init_array_entry - 52: 00000000000007d0 0 NOTYPE LOCAL DEFAULT 17 $d - 53: 0000000000011030 0 NOTYPE LOCAL DEFAULT 24 $d - 54: 0000000000000000 0 FILE LOCAL DEFAULT ABS basicassign2.c - 55: 0000000000000714 0 NOTYPE LOCAL DEFAULT 13 $x.0 - 56: 0000000000011038 0 NOTYPE LOCAL DEFAULT 24 $d.1 - 57: 000000000000002a 0 NOTYPE LOCAL DEFAULT 25 $d.2 - 58: 0000000000000830 0 NOTYPE LOCAL DEFAULT 17 $d.3 - 59: 0000000000000000 0 FILE LOCAL DEFAULT ABS crtstuff.c - 60: 000000000000085c 0 NOTYPE LOCAL DEFAULT 17 $d - 61: 000000000000085c 0 OBJECT LOCAL DEFAULT 17 __FRAME_END__ - 62: 0000000000000000 0 FILE LOCAL DEFAULT ABS - 63: 0000000000010dd8 0 OBJECT LOCAL DEFAULT ABS _DYNAMIC - 64: 0000000000000768 0 NOTYPE LOCAL DEFAULT 16 __GNU_EH_FRAME_HDR - 65: 0000000000010fb8 0 OBJECT LOCAL DEFAULT ABS _GLOBAL_OFFSET_TABLE_ - 66: 00000000000005a0 0 NOTYPE LOCAL DEFAULT 12 $x - 67: 0000000000000000 0 FUNC GLOBAL DEFAULT UND __libc_start_main@GLIBC_2.34 - 68: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_deregisterTMCloneTable - 69: 0000000000011020 0 NOTYPE WEAK DEFAULT 23 data_start - 70: 0000000000011030 0 NOTYPE GLOBAL DEFAULT 24 __bss_start__ - 71: 0000000000000000 0 FUNC WEAK DEFAULT UND __cxa_finalize@GLIBC_2.17 - 72: 0000000000011048 0 NOTYPE GLOBAL DEFAULT 24 _bss_end__ - 73: 0000000000011030 0 NOTYPE GLOBAL DEFAULT 23 _edata - 74: 0000000000011040 8 OBJECT GLOBAL DEFAULT 24 z - 75: 0000000000000750 0 FUNC GLOBAL HIDDEN 14 _fini - 76: 0000000000011048 0 NOTYPE GLOBAL DEFAULT 24 __bss_end__ - 77: 0000000000011020 0 NOTYPE GLOBAL DEFAULT 23 __data_start - 78: 0000000000000000 0 NOTYPE WEAK DEFAULT UND __gmon_start__ - 79: 0000000000011028 0 OBJECT GLOBAL HIDDEN 23 __dso_handle - 80: 0000000000000000 0 FUNC GLOBAL DEFAULT UND abort@GLIBC_2.17 - 81: 0000000000000764 4 OBJECT GLOBAL DEFAULT 15 _IO_stdin_used - 82: 0000000000011038 8 OBJECT GLOBAL DEFAULT 24 secret - 83: 0000000000011048 0 NOTYPE GLOBAL DEFAULT 24 _end - 84: 0000000000000600 52 FUNC GLOBAL DEFAULT 13 _start - 85: 0000000000011048 0 NOTYPE GLOBAL DEFAULT 24 __end__ - 86: 0000000000011030 0 NOTYPE GLOBAL DEFAULT 24 __bss_start - 87: 0000000000000714 60 FUNC GLOBAL DEFAULT 13 main - 88: 0000000000011030 0 OBJECT GLOBAL HIDDEN 23 __TMC_END__ - 89: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_registerTMCloneTable - 90: 0000000000000580 0 FUNC GLOBAL HIDDEN 11 _init diff --git a/src/test/incorrect/basicassign2/clang/basicassign2_gtirb.expected b/src/test/incorrect/basicassign2/clang/basicassign2_gtirb.expected index 8fd59e7c1..a68fabce8 100644 --- a/src/test/incorrect/basicassign2/clang/basicassign2_gtirb.expected +++ b/src/test/incorrect/basicassign2/clang/basicassign2_gtirb.expected @@ -1,21 +1,15 @@ var {:extern} Gamma_R0: bool; -var {:extern} Gamma_R10: bool; -var {:extern} Gamma_R31: bool; var {:extern} Gamma_R8: bool; var {:extern} Gamma_R9: bool; var {:extern} Gamma_mem: [bv64]bool; -var {:extern} Gamma_stack: [bv64]bool; var {:extern} R0: bv64; -var {:extern} R10: bv64; -var {:extern} R31: bv64; var {:extern} R8: bv64; var {:extern} R9: bv64; var {:extern} mem: [bv64]bv8; -var {:extern} stack: [bv64]bv8; const {:extern} $secret_addr: bv64; -axiom ($secret_addr == 69688bv64); +axiom ($secret_addr == 131096bv64); const {:extern} $z_addr: bv64; -axiom ($z_addr == 69696bv64); +axiom ($z_addr == 131104bv64); function {:extern} L(mem$in: [bv64]bv8, index: bv64) returns (bool) { (if (index == $z_addr) then true else (if (index == $secret_addr) then false else false)) } @@ -45,11 +39,13 @@ procedure {:extern} rely(); modifies Gamma_mem, mem; ensures (Gamma_mem == old(Gamma_mem)); ensures (mem == old(mem)); - free ensures (memory_load32_le(mem, 1892bv64) == 131073bv32); - free ensures (memory_load64_le(mem, 69064bv64) == 1808bv64); - free ensures (memory_load64_le(mem, 69072bv64) == 1728bv64); - free ensures (memory_load64_le(mem, 69592bv64) == 1812bv64); - free ensures (memory_load64_le(mem, 69672bv64) == 69672bv64); + free ensures (memory_load32_le(mem, 2312bv64) == 131073bv32); + free ensures (memory_load64_le(mem, 130424bv64) == 2256bv64); + free ensures (memory_load64_le(mem, 130432bv64) == 2176bv64); + free ensures (memory_load64_le(mem, 131032bv64) == 131104bv64); + free ensures (memory_load64_le(mem, 131048bv64) == 131096bv64); + free ensures (memory_load64_le(mem, 131056bv64) == 2260bv64); + free ensures (memory_load64_le(mem, 131080bv64) == 131080bv64); procedure {:extern} rely_transitive(); modifies Gamma_mem, mem; @@ -67,67 +63,54 @@ procedure {:extern} rely_reflexive(); procedure {:extern} guarantee_reflexive(); modifies Gamma_mem, mem; -procedure main_1812(); - modifies Gamma_R0, Gamma_R10, Gamma_R31, Gamma_R8, Gamma_R9, Gamma_mem, Gamma_stack, R0, R10, R31, R8, R9, mem, stack; - free requires (memory_load64_le(mem, 69664bv64) == 0bv64); - free requires (memory_load64_le(mem, 69672bv64) == 69672bv64); - free requires (memory_load32_le(mem, 1892bv64) == 131073bv32); - free requires (memory_load64_le(mem, 69064bv64) == 1808bv64); - free requires (memory_load64_le(mem, 69072bv64) == 1728bv64); - free requires (memory_load64_le(mem, 69592bv64) == 1812bv64); - free requires (memory_load64_le(mem, 69672bv64) == 69672bv64); - free ensures (Gamma_R31 == old(Gamma_R31)); - free ensures (R31 == old(R31)); - free ensures (memory_load32_le(mem, 1892bv64) == 131073bv32); - free ensures (memory_load64_le(mem, 69064bv64) == 1808bv64); - free ensures (memory_load64_le(mem, 69072bv64) == 1728bv64); - free ensures (memory_load64_le(mem, 69592bv64) == 1812bv64); - free ensures (memory_load64_le(mem, 69672bv64) == 69672bv64); +procedure main(); + modifies Gamma_R0, Gamma_R8, Gamma_R9, Gamma_mem, R0, R8, R9, mem; + free requires (memory_load64_le(mem, 131072bv64) == 0bv64); + free requires (memory_load64_le(mem, 131080bv64) == 131080bv64); + free requires (memory_load32_le(mem, 2312bv64) == 131073bv32); + free requires (memory_load64_le(mem, 130424bv64) == 2256bv64); + free requires (memory_load64_le(mem, 130432bv64) == 2176bv64); + free requires (memory_load64_le(mem, 131032bv64) == 131104bv64); + free requires (memory_load64_le(mem, 131048bv64) == 131096bv64); + free requires (memory_load64_le(mem, 131056bv64) == 2260bv64); + free requires (memory_load64_le(mem, 131080bv64) == 131080bv64); + free ensures (memory_load32_le(mem, 2312bv64) == 131073bv32); + free ensures (memory_load64_le(mem, 130424bv64) == 2256bv64); + free ensures (memory_load64_le(mem, 130432bv64) == 2176bv64); + free ensures (memory_load64_le(mem, 131032bv64) == 131104bv64); + free ensures (memory_load64_le(mem, 131048bv64) == 131096bv64); + free ensures (memory_load64_le(mem, 131056bv64) == 2260bv64); + free ensures (memory_load64_le(mem, 131080bv64) == 131080bv64); -implementation main_1812() +implementation main() { - var Gamma_load10: bool; - var Gamma_load11: bool; - var Gamma_load12: bool; - var Gamma_load13: bool; - var load10: bv64; - var load11: bv64; - var load12: bv64; - var load13: bv64; - main_1812__0__YYWIvImmSVCq8LWicwynYQ: - assume {:captureState "main_1812__0__YYWIvImmSVCq8LWicwynYQ"} true; - R31, Gamma_R31 := bvadd64(R31, 18446744073709551600bv64), Gamma_R31; - R8, Gamma_R8 := 69632bv64, true; + var $load5: bv64; + var $load6: bv64; + var $load7: bv64; + var Gamma_$load5: bool; + var Gamma_$load6: bool; + var Gamma_$load7: bool; + $main$__0__$D9t2gNJrSmyMH3GAVRe3IQ: + assume {:captureState "$main$__0__$D9t2gNJrSmyMH3GAVRe3IQ"} true; + R8, Gamma_R8 := 126976bv64, true; + R9, Gamma_R9 := 126976bv64, true; + R0, Gamma_R0 := 0bv64, true; call rely(); - load10, Gamma_load10 := memory_load64_le(mem, bvadd64(R8, 56bv64)), (gamma_load64(Gamma_mem, bvadd64(R8, 56bv64)) || L(mem, bvadd64(R8, 56bv64))); - R9, Gamma_R9 := load10, Gamma_load10; - stack, Gamma_stack := memory_store64_le(stack, bvadd64(R31, 8bv64), R9), gamma_store64(Gamma_stack, bvadd64(R31, 8bv64), Gamma_R9); - assume {:captureState "1824_0"} true; - stack, Gamma_stack := memory_store64_le(stack, bvadd64(R31, 8bv64), 0bv64), gamma_store64(Gamma_stack, bvadd64(R31, 8bv64), true); - assume {:captureState "1828_0"} true; - load11, Gamma_load11 := memory_load64_le(stack, bvadd64(R31, 8bv64)), gamma_load64(Gamma_stack, bvadd64(R31, 8bv64)); - R10, Gamma_R10 := load11, Gamma_load11; - R9, Gamma_R9 := 69632bv64, true; + $load5, Gamma_$load5 := memory_load64_le(mem, bvadd64(R8, 4072bv64)), (gamma_load64(Gamma_mem, bvadd64(R8, 4072bv64)) || L(mem, bvadd64(R8, 4072bv64))); + R8, Gamma_R8 := $load5, Gamma_$load5; call rely(); - assert (L(mem, bvadd64(R9, 64bv64)) ==> Gamma_R10); - mem, Gamma_mem := memory_store64_le(mem, bvadd64(R9, 64bv64), R10), gamma_store64(Gamma_mem, bvadd64(R9, 64bv64), Gamma_R10); - assume {:captureState "1840_0"} true; + $load6, Gamma_$load6 := memory_load64_le(mem, R8), (gamma_load64(Gamma_mem, R8) || L(mem, R8)); + R8, Gamma_R8 := $load6, Gamma_$load6; call rely(); - load12, Gamma_load12 := memory_load64_le(mem, bvadd64(R8, 56bv64)), (gamma_load64(Gamma_mem, bvadd64(R8, 56bv64)) || L(mem, bvadd64(R8, 56bv64))); - R8, Gamma_R8 := load12, Gamma_load12; - stack, Gamma_stack := memory_store64_le(stack, bvadd64(R31, 8bv64), R8), gamma_store64(Gamma_stack, bvadd64(R31, 8bv64), Gamma_R8); - assume {:captureState "1848_0"} true; - load13, Gamma_load13 := memory_load64_le(stack, bvadd64(R31, 8bv64)), gamma_load64(Gamma_stack, bvadd64(R31, 8bv64)); - R8, Gamma_R8 := load13, Gamma_load13; + $load7, Gamma_$load7 := memory_load64_le(mem, bvadd64(R9, 4056bv64)), (gamma_load64(Gamma_mem, bvadd64(R9, 4056bv64)) || L(mem, bvadd64(R9, 4056bv64))); + R9, Gamma_R9 := $load7, Gamma_$load7; call rely(); - assert (L(mem, bvadd64(R9, 64bv64)) ==> Gamma_R8); - mem, Gamma_mem := memory_store64_le(mem, bvadd64(R9, 64bv64), R8), gamma_store64(Gamma_mem, bvadd64(R9, 64bv64), Gamma_R8); - assume {:captureState "1856_0"} true; - R0, Gamma_R0 := 0bv64, true; - R31, Gamma_R31 := bvadd64(R31, 16bv64), Gamma_R31; - goto main_1812_basil_return; - main_1812_basil_return: - assume {:captureState "main_1812_basil_return"} true; + assert (L(mem, R9) ==> Gamma_R8); + mem, Gamma_mem := memory_store64_le(mem, R9, R8), gamma_store64(Gamma_mem, R9, Gamma_R8); + assume {:captureState "2284$0"} true; + goto main_basil_return; + main_basil_return: + assume {:captureState "main_basil_return"} true; return; } diff --git a/src/test/incorrect/basicassign2/clang_O2/basicassign2.adt b/src/test/incorrect/basicassign2/clang_O2/basicassign2.adt deleted file mode 100644 index 8fada336e..000000000 --- a/src/test/incorrect/basicassign2/clang_O2/basicassign2.adt +++ /dev/null @@ -1,495 +0,0 @@ -Project(Attrs([Attr("filename","\"clang_O2/basicassign2.out\""), -Attr("image-specification","(declare abi (name str))\n(declare arch (name str))\n(declare base-address (addr int))\n(declare bias (off int))\n(declare bits (size int))\n(declare code-region (addr int) (size int) (off int))\n(declare code-start (addr int))\n(declare entry-point (addr int))\n(declare external-reference (addr int) (name str))\n(declare format (name str))\n(declare is-executable (flag bool))\n(declare is-little-endian (flag bool))\n(declare llvm:base-address (addr int))\n(declare llvm:code-entry (name str) (off int) (size int))\n(declare llvm:coff-import-library (name str))\n(declare llvm:coff-virtual-section-header (name str) (addr int) (size int))\n(declare llvm:elf-program-header (name str) (off int) (size int))\n(declare llvm:elf-program-header-flags (name str) (ld bool) (r bool) \n (w bool) (x bool))\n(declare llvm:elf-virtual-program-header (name str) (addr int) (size int))\n(declare llvm:entry-point (addr int))\n(declare llvm:macho-symbol (name str) (value int))\n(declare llvm:name-reference (at int) (name str))\n(declare llvm:relocation (at int) (addr int))\n(declare llvm:section-entry (name str) (addr int) (size int) (off int))\n(declare llvm:section-flags (name str) (r bool) (w bool) (x bool))\n(declare llvm:segment-command (name str) (off int) (size int))\n(declare llvm:segment-command-flags (name str) (r bool) (w bool) (x bool))\n(declare llvm:symbol-entry (name str) (addr int) (size int) (off int)\n (value int))\n(declare llvm:virtual-segment-command (name str) (addr int) (size int))\n(declare mapped (addr int) (size int) (off int))\n(declare named-region (addr int) (size int) (name str))\n(declare named-symbol (addr int) (name str))\n(declare require (name str))\n(declare section (addr int) (size int))\n(declare segment (addr int) (size int) (r bool) (w bool) (x bool))\n(declare subarch (name str))\n(declare symbol-chunk (addr int) (size int) (root int))\n(declare symbol-value (addr int) (value int))\n(declare system (name str))\n(declare vendor (name str))\n\n(abi unknown)\n(arch aarch64)\n(base-address 0)\n(bias 0)\n(bits 64)\n(code-region 1836 20 1836)\n(code-region 1536 300 1536)\n(code-region 1440 96 1440)\n(code-region 1408 24 1408)\n(code-start 1588)\n(code-start 1536)\n(code-start 1812)\n(entry-point 1536)\n(external-reference 69568 _ITM_deregisterTMCloneTable)\n(external-reference 69576 __cxa_finalize)\n(external-reference 69584 __gmon_start__)\n(external-reference 69600 _ITM_registerTMCloneTable)\n(external-reference 69632 __libc_start_main)\n(external-reference 69640 __cxa_finalize)\n(external-reference 69648 __gmon_start__)\n(external-reference 69656 abort)\n(format elf)\n(is-executable true)\n(is-little-endian true)\n(llvm:base-address 0)\n(llvm:code-entry abort 0 0)\n(llvm:code-entry __cxa_finalize 0 0)\n(llvm:code-entry __libc_start_main 0 0)\n(llvm:code-entry _init 1408 0)\n(llvm:code-entry main 1812 24)\n(llvm:code-entry _start 1536 52)\n(llvm:code-entry abort@GLIBC_2.17 0 0)\n(llvm:code-entry _fini 1836 0)\n(llvm:code-entry __cxa_finalize@GLIBC_2.17 0 0)\n(llvm:code-entry __libc_start_main@GLIBC_2.34 0 0)\n(llvm:code-entry frame_dummy 1808 0)\n(llvm:code-entry __do_global_dtors_aux 1728 0)\n(llvm:code-entry register_tm_clones 1664 0)\n(llvm:code-entry deregister_tm_clones 1616 0)\n(llvm:code-entry call_weak_fn 1588 20)\n(llvm:code-entry .fini 1836 20)\n(llvm:code-entry .text 1536 300)\n(llvm:code-entry .plt 1440 96)\n(llvm:code-entry .init 1408 24)\n(llvm:elf-program-header 08 3528 568)\n(llvm:elf-program-header 07 0 0)\n(llvm:elf-program-header 06 1860 60)\n(llvm:elf-program-header 05 596 68)\n(llvm:elf-program-header 04 3544 480)\n(llvm:elf-program-header 03 3528 616)\n(llvm:elf-program-header 02 0 2100)\n(llvm:elf-program-header 01 568 27)\n(llvm:elf-program-header 00 64 504)\n(llvm:elf-program-header-flags 08 false true false false)\n(llvm:elf-program-header-flags 07 false true true false)\n(llvm:elf-program-header-flags 06 false true false false)\n(llvm:elf-program-header-flags 05 false true false false)\n(llvm:elf-program-header-flags 04 false true true false)\n(llvm:elf-program-header-flags 03 true true true false)\n(llvm:elf-program-header-flags 02 true true false true)\n(llvm:elf-program-header-flags 01 false true false false)\n(llvm:elf-program-header-flags 00 false true false false)\n(llvm:elf-virtual-program-header 08 69064 568)\n(llvm:elf-virtual-program-header 07 0 0)\n(llvm:elf-virtual-program-header 06 1860 60)\n(llvm:elf-virtual-program-header 05 596 68)\n(llvm:elf-virtual-program-header 04 69080 480)\n(llvm:elf-virtual-program-header 03 69064 640)\n(llvm:elf-virtual-program-header 02 0 2100)\n(llvm:elf-virtual-program-header 01 568 27)\n(llvm:elf-virtual-program-header 00 64 504)\n(llvm:entry-point 1536)\n(llvm:name-reference 69656 abort)\n(llvm:name-reference 69648 __gmon_start__)\n(llvm:name-reference 69640 __cxa_finalize)\n(llvm:name-reference 69632 __libc_start_main)\n(llvm:name-reference 69600 _ITM_registerTMCloneTable)\n(llvm:name-reference 69584 __gmon_start__)\n(llvm:name-reference 69576 __cxa_finalize)\n(llvm:name-reference 69568 _ITM_deregisterTMCloneTable)\n(llvm:section-entry .shstrtab 0 259 6977)\n(llvm:section-entry .strtab 0 577 6400)\n(llvm:section-entry .symtab 0 2184 4216)\n(llvm:section-entry .comment 0 71 4144)\n(llvm:section-entry .bss 69680 24 4144)\n(llvm:section-entry .data 69664 16 4128)\n(llvm:section-entry .got.plt 69608 56 4072)\n(llvm:section-entry .got 69560 48 4024)\n(llvm:section-entry .dynamic 69080 480 3544)\n(llvm:section-entry .fini_array 69072 8 3536)\n(llvm:section-entry .init_array 69064 8 3528)\n(llvm:section-entry .eh_frame 1920 180 1920)\n(llvm:section-entry .eh_frame_hdr 1860 60 1860)\n(llvm:section-entry .rodata 1856 4 1856)\n(llvm:section-entry .fini 1836 20 1836)\n(llvm:section-entry .text 1536 300 1536)\n(llvm:section-entry .plt 1440 96 1440)\n(llvm:section-entry .init 1408 24 1408)\n(llvm:section-entry .rela.plt 1312 96 1312)\n(llvm:section-entry .rela.dyn 1120 192 1120)\n(llvm:section-entry .gnu.version_r 1072 48 1072)\n(llvm:section-entry .gnu.version 1054 18 1054)\n(llvm:section-entry .dynstr 912 141 912)\n(llvm:section-entry .dynsym 696 216 696)\n(llvm:section-entry .gnu.hash 664 28 664)\n(llvm:section-entry .note.ABI-tag 632 32 632)\n(llvm:section-entry .note.gnu.build-id 596 36 596)\n(llvm:section-entry .interp 568 27 568)\n(llvm:section-flags .shstrtab true false false)\n(llvm:section-flags .strtab true false false)\n(llvm:section-flags .symtab true false false)\n(llvm:section-flags .comment true false false)\n(llvm:section-flags .bss true true false)\n(llvm:section-flags .data true true false)\n(llvm:section-flags .got.plt true true false)\n(llvm:section-flags .got true true false)\n(llvm:section-flags .dynamic true true false)\n(llvm:section-flags .fini_array true true false)\n(llvm:section-flags .init_array true true false)\n(llvm:section-flags .eh_frame true false false)\n(llvm:section-flags .eh_frame_hdr true false false)\n(llvm:section-flags .rodata true false false)\n(llvm:section-flags .fini true false true)\n(llvm:section-flags .text true false true)\n(llvm:section-flags .plt true false true)\n(llvm:section-flags .init true false true)\n(llvm:section-flags .rela.plt true false false)\n(llvm:section-flags .rela.dyn true false false)\n(llvm:section-flags .gnu.version_r true false false)\n(llvm:section-flags .gnu.version true false false)\n(llvm:section-flags .dynstr true false false)\n(llvm:section-flags .dynsym true false false)\n(llvm:section-flags .gnu.hash true false false)\n(llvm:section-flags .note.ABI-tag true false false)\n(llvm:section-flags .note.gnu.build-id true false false)\n(llvm:section-flags .interp true false false)\n(llvm:symbol-entry abort 0 0 0 0)\n(llvm:symbol-entry __cxa_finalize 0 0 0 0)\n(llvm:symbol-entry __libc_start_main 0 0 0 0)\n(llvm:symbol-entry _init 1408 0 1408 1408)\n(llvm:symbol-entry main 1812 24 1812 1812)\n(llvm:symbol-entry _start 1536 52 1536 1536)\n(llvm:symbol-entry abort@GLIBC_2.17 0 0 0 0)\n(llvm:symbol-entry _fini 1836 0 1836 1836)\n(llvm:symbol-entry __cxa_finalize@GLIBC_2.17 0 0 0 0)\n(llvm:symbol-entry __libc_start_main@GLIBC_2.34 0 0 0 0)\n(llvm:symbol-entry frame_dummy 1808 0 1808 1808)\n(llvm:symbol-entry __do_global_dtors_aux 1728 0 1728 1728)\n(llvm:symbol-entry register_tm_clones 1664 0 1664 1664)\n(llvm:symbol-entry deregister_tm_clones 1616 0 1616 1616)\n(llvm:symbol-entry call_weak_fn 1588 20 1588 1588)\n(mapped 0 2100 0)\n(mapped 69064 616 3528)\n(named-region 0 2100 02)\n(named-region 69064 640 03)\n(named-region 568 27 .interp)\n(named-region 596 36 .note.gnu.build-id)\n(named-region 632 32 .note.ABI-tag)\n(named-region 664 28 .gnu.hash)\n(named-region 696 216 .dynsym)\n(named-region 912 141 .dynstr)\n(named-region 1054 18 .gnu.version)\n(named-region 1072 48 .gnu.version_r)\n(named-region 1120 192 .rela.dyn)\n(named-region 1312 96 .rela.plt)\n(named-region 1408 24 .init)\n(named-region 1440 96 .plt)\n(named-region 1536 300 .text)\n(named-region 1836 20 .fini)\n(named-region 1856 4 .rodata)\n(named-region 1860 60 .eh_frame_hdr)\n(named-region 1920 180 .eh_frame)\n(named-region 69064 8 .init_array)\n(named-region 69072 8 .fini_array)\n(named-region 69080 480 .dynamic)\n(named-region 69560 48 .got)\n(named-region 69608 56 .got.plt)\n(named-region 69664 16 .data)\n(named-region 69680 24 .bss)\n(named-region 0 71 .comment)\n(named-region 0 2184 .symtab)\n(named-region 0 577 .strtab)\n(named-region 0 259 .shstrtab)\n(named-symbol 1588 call_weak_fn)\n(named-symbol 1616 deregister_tm_clones)\n(named-symbol 1664 register_tm_clones)\n(named-symbol 1728 __do_global_dtors_aux)\n(named-symbol 1808 frame_dummy)\n(named-symbol 0 __libc_start_main@GLIBC_2.34)\n(named-symbol 0 __cxa_finalize@GLIBC_2.17)\n(named-symbol 1836 _fini)\n(named-symbol 0 abort@GLIBC_2.17)\n(named-symbol 1536 _start)\n(named-symbol 1812 main)\n(named-symbol 1408 _init)\n(named-symbol 0 __libc_start_main)\n(named-symbol 0 __cxa_finalize)\n(named-symbol 0 abort)\n(require libc.so.6)\n(section 568 27)\n(section 596 36)\n(section 632 32)\n(section 664 28)\n(section 696 216)\n(section 912 141)\n(section 1054 18)\n(section 1072 48)\n(section 1120 192)\n(section 1312 96)\n(section 1408 24)\n(section 1440 96)\n(section 1536 300)\n(section 1836 20)\n(section 1856 4)\n(section 1860 60)\n(section 1920 180)\n(section 69064 8)\n(section 69072 8)\n(section 69080 480)\n(section 69560 48)\n(section 69608 56)\n(section 69664 16)\n(section 69680 24)\n(section 0 71)\n(section 0 2184)\n(section 0 577)\n(section 0 259)\n(segment 0 2100 true false true)\n(segment 69064 640 true true false)\n(subarch v8)\n(symbol-chunk 1588 20 1588)\n(symbol-chunk 1536 52 1536)\n(symbol-chunk 1812 24 1812)\n(symbol-value 1588 1588)\n(symbol-value 1616 1616)\n(symbol-value 1664 1664)\n(symbol-value 1728 1728)\n(symbol-value 1808 1808)\n(symbol-value 1836 1836)\n(symbol-value 1536 1536)\n(symbol-value 1812 1812)\n(symbol-value 1408 1408)\n(symbol-value 0 0)\n(system \"\")\n(vendor \"\")\n"), -Attr("abi-name","\"aarch64-linux-gnu-elf\"")]), -Sections([Section(".shstrtab", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x00\x06\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x48\x1c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x38\x00\x09\x00\x40\x00\x1d\x00\x1c\x00\x06\x00\x00\x00\x04\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x04\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x34\x08\x00\x00\x00\x00\x00\x00\x34\x08\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x01\x00\x00\x00\x06\x00\x00\x00\xc8\x0d\x00\x00\x00\x00\x00\x00\xc8\x0d\x01\x00\x00\x00\x00\x00\xc8\x0d\x01"), -Section(".strtab", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x00\x06\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x48\x1c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x38\x00\x09\x00\x40\x00\x1d\x00\x1c\x00\x06\x00\x00\x00\x04\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x04\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x34\x08\x00\x00\x00\x00\x00\x00\x34\x08\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x01\x00\x00\x00\x06\x00\x00\x00\xc8\x0d\x00\x00\x00\x00\x00\x00\xc8\x0d\x01\x00\x00\x00\x00\x00\xc8\x0d\x01\x00\x00\x00\x00\x00\x68\x02\x00\x00\x00\x00\x00\x00\x80\x02\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x02\x00\x00\x00\x06\x00\x00\x00\xd8\x0d\x00\x00\x00\x00\x00\x00\xd8\x0d\x01\x00\x00\x00\x00\x00\xd8\x0d\x01\x00\x00\x00\x00\x00\xe0\x01\x00\x00\x00\x00\x00\x00\xe0\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x04\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x50\xe5\x74\x64\x04\x00\x00\x00\x44\x07\x00\x00\x00\x00\x00\x00\x44\x07\x00\x00\x00\x00\x00\x00\x44\x07\x00\x00\x00\x00\x00\x00\x3c\x00\x00\x00\x00\x00\x00\x00\x3c\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x51\xe5\x74\x64\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x52\xe5\x74\x64\x04\x00\x00\x00\xc8\x0d\x00\x00\x00\x00\x00\x00\xc8\x0d\x01\x00\x00\x00\x00\x00\xc8\x0d\x01\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x2f\x6c\x69\x62\x2f\x6c\x64\x2d\x6c"), -Section(".comment", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x00\x06\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x48\x1c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x38\x00\x09\x00\x40\x00\x1d\x00\x1c\x00\x06\x00\x00\x00\x04\x00\x00"), -Section(".interp", 0x238, "\x2f\x6c\x69\x62\x2f\x6c\x64\x2d\x6c\x69\x6e\x75\x78\x2d\x61\x61\x72\x63\x68\x36\x34\x2e\x73\x6f\x2e\x31\x00"), -Section(".note.gnu.build-id", 0x254, "\x04\x00\x00\x00\x14\x00\x00\x00\x03\x00\x00\x00\x47\x4e\x55\x00\xaf\xe1\x38\x1f\x66\x7f\x29\xf2\x5f\x6f\x29\xfa\x5d\x51\xef\x7e\x57\x54\xb9\x99"), -Section(".note.ABI-tag", 0x278, "\x04\x00\x00\x00\x10\x00\x00\x00\x01\x00\x00\x00\x47\x4e\x55\x00\x00\x00\x00\x00\x03\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00"), -Section(".gnu.hash", 0x298, "\x01\x00\x00\x00\x01\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".dynsym", 0x2B8, "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x0b\x00\x80\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x17\x00\x20\x10\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x48\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x22\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x22\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x73\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".dynstr", 0x390, "\x00\x5f\x5f\x63\x78\x61\x5f\x66\x69\x6e\x61\x6c\x69\x7a\x65\x00\x5f\x5f\x6c\x69\x62\x63\x5f\x73\x74\x61\x72\x74\x5f\x6d\x61\x69\x6e\x00\x61\x62\x6f\x72\x74\x00\x6c\x69\x62\x63\x2e\x73\x6f\x2e\x36\x00\x47\x4c\x49\x42\x43\x5f\x32\x2e\x31\x37\x00\x47\x4c\x49\x42\x43\x5f\x32\x2e\x33\x34\x00\x5f\x49\x54\x4d\x5f\x64\x65\x72\x65\x67\x69\x73\x74\x65\x72\x54\x4d\x43\x6c\x6f\x6e\x65\x54\x61\x62\x6c\x65\x00\x5f\x5f\x67\x6d\x6f\x6e\x5f\x73\x74\x61\x72\x74\x5f\x5f\x00\x5f\x49\x54\x4d\x5f\x72\x65\x67\x69\x73\x74\x65\x72\x54\x4d\x43\x6c\x6f\x6e\x65\x54\x61\x62\x6c\x65\x00"), -Section(".gnu.version", 0x41E, "\x00\x00\x00\x00\x00\x00\x02\x00\x01\x00\x03\x00\x01\x00\x03\x00\x01\x00"), -Section(".gnu.version_r", 0x430, "\x01\x00\x02\x00\x28\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x97\x91\x96\x06\x00\x00\x03\x00\x32\x00\x00\x00\x10\x00\x00\x00\xb4\x91\x96\x06\x00\x00\x02\x00\x3d\x00\x00\x00\x00\x00\x00\x00"), -Section(".rela.dyn", 0x460, "\xc8\x0d\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x10\x07\x00\x00\x00\x00\x00\x00\xd0\x0d\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\xc0\x06\x00\x00\x00\x00\x00\x00\xd8\x0f\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x14\x07\x00\x00\x00\x00\x00\x00\x28\x10\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x28\x10\x01\x00\x00\x00\x00\x00\xc0\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xc8\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xd0\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe0\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".rela.plt", 0x520, "\x00\x10\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x08\x10\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x10\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x18\x10\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".init", 0x580, "\x1f\x20\x03\xd5\xfd\x7b\xbf\xa9\xfd\x03\x00\x91\x2a\x00\x00\x94\xfd\x7b\xc1\xa8\xc0\x03\x5f\xd6"), -Section(".plt", 0x5A0, "\xf0\x7b\xbf\xa9\x90\x00\x00\x90\x11\xfe\x47\xf9\x10\xe2\x3f\x91\x20\x02\x1f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x90\x00\x00\xb0\x11\x02\x40\xf9\x10\x02\x00\x91\x20\x02\x1f\xd6\x90\x00\x00\xb0\x11\x06\x40\xf9\x10\x22\x00\x91\x20\x02\x1f\xd6\x90\x00\x00\xb0\x11\x0a\x40\xf9\x10\x42\x00\x91\x20\x02\x1f\xd6\x90\x00\x00\xb0\x11\x0e\x40\xf9\x10\x62\x00\x91\x20\x02\x1f\xd6"), -Section(".text", 0x600, "\x1f\x20\x03\xd5\x1d\x00\x80\xd2\x1e\x00\x80\xd2\xe5\x03\x00\xaa\xe1\x03\x40\xf9\xe2\x23\x00\x91\xe6\x03\x00\x91\x80\x00\x00\x90\x00\xec\x47\xf9\x03\x00\x80\xd2\x04\x00\x80\xd2\xe5\xff\xff\x97\xf0\xff\xff\x97\x80\x00\x00\x90\x00\xe8\x47\xf9\x40\x00\x00\xb4\xe8\xff\xff\x17\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x80\x00\x00\xb0\x00\xc0\x00\x91\x81\x00\x00\xb0\x21\xc0\x00\x91\x3f\x00\x00\xeb\xc0\x00\x00\x54\x81\x00\x00\x90\x21\xe0\x47\xf9\x61\x00\x00\xb4\xf0\x03\x01\xaa\x00\x02\x1f\xd6\xc0\x03\x5f\xd6\x80\x00\x00\xb0\x00\xc0\x00\x91\x81\x00\x00\xb0\x21\xc0\x00\x91\x21\x00\x00\xcb\x22\xfc\x7f\xd3\x41\x0c\x81\x8b\x21\xfc\x41\x93\xc1\x00\x00\xb4\x82\x00\x00\x90\x42\xf0\x47\xf9\x62\x00\x00\xb4\xf0\x03\x02\xaa\x00\x02\x1f\xd6\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\xfd\x7b\xbe\xa9\xfd\x03\x00\x91\xf3\x0b\x00\xf9\x93\x00\x00\xb0\x60\xc2\x40\x39\x40\x01\x00\x35\x80\x00\x00\x90\x00\xe4\x47\xf9\x80\x00\x00\xb4\x80\x00\x00\xb0\x00\x14\x40\xf9\xb9\xff\xff\x97\xd8\xff\xff\x97\x20\x00\x80\x52\x60\xc2\x00\x39\xf3\x0b\x40\xf9\xfd\x7b\xc2\xa8\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\xdc\xff\xff\x17\x88\x00\x00\xb0\x89\x00\x00\xb0\xe0\x03\x1f\x2a\x08\x1d\x40\xf9\x28\x21\x00\xf9\xc0\x03\x5f\xd6"), -Section(".fini", 0x72C, "\x1f\x20\x03\xd5\xfd\x7b\xbf\xa9\xfd\x03\x00\x91\xfd\x7b\xc1\xa8\xc0\x03\x5f\xd6"), -Section(".rodata", 0x740, "\x01\x00\x02\x00"), -Section(".eh_frame_hdr", 0x744, "\x01\x1b\x03\x3b\x38\x00\x00\x00\x06\x00\x00\x00\xbc\xfe\xff\xff\x50\x00\x00\x00\x0c\xff\xff\xff\x64\x00\x00\x00\x3c\xff\xff\xff\x78\x00\x00\x00\x7c\xff\xff\xff\x8c\x00\x00\x00\xcc\xff\xff\xff\xb0\x00\x00\x00\xd0\xff\xff\xff\xd8\x00\x00\x00"), -Section(".eh_frame", 0x780, "\x10\x00\x00\x00\x00\x00\x00\x00\x01\x7a\x52\x00\x04\x78\x1e\x01\x1b\x0c\x1f\x00\x10\x00\x00\x00\x18\x00\x00\x00\x64\xfe\xff\xff\x34\x00\x00\x00\x00\x41\x07\x1e\x10\x00\x00\x00\x2c\x00\x00\x00\xa0\xfe\xff\xff\x30\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x40\x00\x00\x00\xbc\xfe\xff\xff\x3c\x00\x00\x00\x00\x00\x00\x00\x20\x00\x00\x00\x54\x00\x00\x00\xe8\xfe\xff\xff\x48\x00\x00\x00\x00\x41\x0e\x20\x9d\x04\x9e\x03\x42\x93\x02\x4e\xde\xdd\xd3\x0e\x00\x00\x00\x00\x10\x00\x00\x00\x78\x00\x00\x00\x14\xff\xff\xff\x04\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x01\x7a\x52\x00\x01\x7c\x1e\x01\x1b\x0c\x1f\x00\x10\x00\x00\x00\x18\x00\x00\x00\xf0\xfe\xff\xff\x18\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".fini_array", 0x10DD0, "\xc0\x06\x00\x00\x00\x00\x00\x00"), -Section(".dynamic", 0x10DD8, "\x01\x00\x00\x00\x00\x00\x00\x00\x28\x00\x00\x00\x00\x00\x00\x00\x0c\x00\x00\x00\x00\x00\x00\x00\x80\x05\x00\x00\x00\x00\x00\x00\x0d\x00\x00\x00\x00\x00\x00\x00\x2c\x07\x00\x00\x00\x00\x00\x00\x19\x00\x00\x00\x00\x00\x00\x00\xc8\x0d\x01\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x1a\x00\x00\x00\x00\x00\x00\x00\xd0\x0d\x01\x00\x00\x00\x00\x00\x1c\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\xf5\xfe\xff\x6f\x00\x00\x00\x00\x98\x02\x00\x00\x00\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x90\x03\x00\x00\x00\x00\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\xb8\x02\x00\x00\x00\x00\x00\x00\x0a\x00\x00\x00\x00\x00\x00\x00\x8d\x00\x00\x00\x00\x00\x00\x00\x0b\x00\x00\x00\x00\x00\x00\x00\x18\x00\x00\x00\x00\x00\x00\x00\x15\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\xe8\x0f\x01\x00\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x60\x00\x00\x00\x00\x00\x00\x00\x14\x00\x00\x00\x00\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x17\x00\x00\x00\x00\x00\x00\x00\x20\x05\x00\x00\x00\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x60\x04\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\xc0\x00\x00\x00\x00\x00\x00\x00\x09\x00\x00\x00\x00\x00\x00\x00\x18\x00\x00\x00\x00\x00\x00\x00\xfb\xff\xff\x6f\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\xfe\xff\xff\x6f\x00\x00\x00\x00\x30\x04\x00\x00\x00\x00\x00\x00\xff\xff\xff\x6f\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\xf0\xff\xff\x6f\x00\x00\x00\x00\x1e\x04\x00\x00\x00\x00\x00\x00\xf9\xff\xff\x6f\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".init_array", 0x10DC8, "\x10\x07\x00\x00\x00\x00\x00\x00"), -Section(".got", 0x10FB8, "\xd8\x0d\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x14\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".got.plt", 0x10FE8, "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xa0\x05\x00\x00\x00\x00\x00\x00\xa0\x05\x00\x00\x00\x00\x00\x00\xa0\x05\x00\x00\x00\x00\x00\x00\xa0\x05\x00\x00\x00\x00\x00\x00"), -Section(".data", 0x11020, "\x00\x00\x00\x00\x00\x00\x00\x00\x28\x10\x01\x00\x00\x00\x00\x00")]), -Memmap([Annotation(Region(0x0,0x833), Attr("segment","02 0 2100")), -Annotation(Region(0x600,0x633), Attr("symbol","\"_start\"")), -Annotation(Region(0x0,0x102), Attr("section","\".shstrtab\"")), -Annotation(Region(0x0,0x240), Attr("section","\".strtab\"")), -Annotation(Region(0x0,0x46), Attr("section","\".comment\"")), -Annotation(Region(0x238,0x252), Attr("section","\".interp\"")), -Annotation(Region(0x254,0x277), Attr("section","\".note.gnu.build-id\"")), -Annotation(Region(0x278,0x297), Attr("section","\".note.ABI-tag\"")), -Annotation(Region(0x298,0x2B3), Attr("section","\".gnu.hash\"")), -Annotation(Region(0x2B8,0x38F), Attr("section","\".dynsym\"")), -Annotation(Region(0x390,0x41C), Attr("section","\".dynstr\"")), -Annotation(Region(0x41E,0x42F), Attr("section","\".gnu.version\"")), -Annotation(Region(0x430,0x45F), Attr("section","\".gnu.version_r\"")), -Annotation(Region(0x460,0x51F), Attr("section","\".rela.dyn\"")), -Annotation(Region(0x520,0x57F), Attr("section","\".rela.plt\"")), -Annotation(Region(0x580,0x597), Attr("section","\".init\"")), -Annotation(Region(0x5A0,0x5FF), Attr("section","\".plt\"")), -Annotation(Region(0x580,0x597), Attr("code-region","()")), -Annotation(Region(0x5A0,0x5FF), Attr("code-region","()")), -Annotation(Region(0x600,0x633), Attr("symbol-info","_start 0x600 52")), -Annotation(Region(0x634,0x647), Attr("symbol","\"call_weak_fn\"")), -Annotation(Region(0x634,0x647), Attr("symbol-info","call_weak_fn 0x634 20")), -Annotation(Region(0x600,0x72B), Attr("section","\".text\"")), -Annotation(Region(0x600,0x72B), Attr("code-region","()")), -Annotation(Region(0x714,0x72B), Attr("symbol","\"main\"")), -Annotation(Region(0x714,0x72B), Attr("symbol-info","main 0x714 24")), -Annotation(Region(0x72C,0x73F), Attr("section","\".fini\"")), -Annotation(Region(0x72C,0x73F), Attr("code-region","()")), -Annotation(Region(0x740,0x743), Attr("section","\".rodata\"")), -Annotation(Region(0x744,0x77F), Attr("section","\".eh_frame_hdr\"")), -Annotation(Region(0x780,0x833), Attr("section","\".eh_frame\"")), -Annotation(Region(0x10DC8,0x1102F), Attr("segment","03 0x10DC8 640")), -Annotation(Region(0x10DD0,0x10DD7), Attr("section","\".fini_array\"")), -Annotation(Region(0x10DD8,0x10FB7), Attr("section","\".dynamic\"")), -Annotation(Region(0x10DC8,0x10DCF), Attr("section","\".init_array\"")), -Annotation(Region(0x10FB8,0x10FE7), Attr("section","\".got\"")), -Annotation(Region(0x10FE8,0x1101F), Attr("section","\".got.plt\"")), -Annotation(Region(0x11020,0x1102F), Attr("section","\".data\""))]), -Program(Tid(1_402, "%0000057a"), Attrs([]), - Subs([Sub(Tid(1_380, "@__cxa_finalize"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x5D0"), -Attr("stub","()")]), "__cxa_finalize", Args([Arg(Tid(1_403, "%0000057b"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("__cxa_finalize_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(796, "@__cxa_finalize"), - Attrs([Attr("address","0x5D0")]), Phis([]), -Defs([Def(Tid(1_044, "%00000414"), Attrs([Attr("address","0x5D0"), -Attr("insn","adrp x16, #69632")]), Var("R16",Imm(64)), Int(69632,64)), -Def(Tid(1_051, "%0000041b"), Attrs([Attr("address","0x5D4"), -Attr("insn","ldr x17, [x16, #0x8]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(1_057, "%00000421"), Attrs([Attr("address","0x5D8"), -Attr("insn","add x16, x16, #0x8")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(8,64)))]), Jmps([Call(Tid(1_062, "%00000426"), - Attrs([Attr("address","0x5DC"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), -Sub(Tid(1_381, "@__do_global_dtors_aux"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x6C0")]), - "__do_global_dtors_aux", Args([Arg(Tid(1_404, "%0000057c"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("__do_global_dtors_aux_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(614, "@__do_global_dtors_aux"), - Attrs([Attr("address","0x6C0")]), Phis([]), Defs([Def(Tid(618, "%0000026a"), - Attrs([Attr("address","0x6C0"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("#3",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(18446744073709551584,64))), -Def(Tid(624, "%00000270"), Attrs([Attr("address","0x6C0"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("#3",Imm(64)),Var("R29",Imm(64)),LittleEndian(),64)), -Def(Tid(630, "%00000276"), Attrs([Attr("address","0x6C0"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("#3",Imm(64)),Int(8,64)),Var("R30",Imm(64)),LittleEndian(),64)), -Def(Tid(634, "%0000027a"), Attrs([Attr("address","0x6C0"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("R31",Imm(64)), -Var("#3",Imm(64))), Def(Tid(640, "%00000280"), - Attrs([Attr("address","0x6C4"), Attr("insn","mov x29, sp")]), - Var("R29",Imm(64)), Var("R31",Imm(64))), Def(Tid(648, "%00000288"), - Attrs([Attr("address","0x6C8"), Attr("insn","str x19, [sp, #0x10]")]), - Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(16,64)),Var("R19",Imm(64)),LittleEndian(),64)), -Def(Tid(653, "%0000028d"), Attrs([Attr("address","0x6CC"), -Attr("insn","adrp x19, #69632")]), Var("R19",Imm(64)), Int(69632,64)), -Def(Tid(660, "%00000294"), Attrs([Attr("address","0x6D0"), -Attr("insn","ldrb w0, [x19, #0x30]")]), Var("R0",Imm(64)), -UNSIGNED(64,Load(Var("mem",Mem(64,8)),PLUS(Var("R19",Imm(64)),Int(48,64)),LittleEndian(),8)))]), -Jmps([Goto(Tid(667, "%0000029b"), Attrs([Attr("address","0x6D4"), -Attr("insn","cbnz w0, #0x28")]), - NEQ(Extract(31,0,Var("R0",Imm(64))),Int(0,32)), -Direct(Tid(665, "%00000299"))), Goto(Tid(1_382, "%00000566"), Attrs([]), - Int(1,1), Direct(Tid(741, "%000002e5")))])), Blk(Tid(741, "%000002e5"), - Attrs([Attr("address","0x6D8")]), Phis([]), Defs([Def(Tid(744, "%000002e8"), - Attrs([Attr("address","0x6D8"), Attr("insn","adrp x0, #65536")]), - Var("R0",Imm(64)), Int(65536,64)), Def(Tid(751, "%000002ef"), - Attrs([Attr("address","0x6DC"), Attr("insn","ldr x0, [x0, #0xfc8]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(4040,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(757, "%000002f5"), Attrs([Attr("address","0x6E0"), -Attr("insn","cbz x0, #0x10")]), EQ(Var("R0",Imm(64)),Int(0,64)), -Direct(Tid(755, "%000002f3"))), Goto(Tid(1_383, "%00000567"), Attrs([]), - Int(1,1), Direct(Tid(780, "%0000030c")))])), Blk(Tid(780, "%0000030c"), - Attrs([Attr("address","0x6E4")]), Phis([]), Defs([Def(Tid(783, "%0000030f"), - Attrs([Attr("address","0x6E4"), Attr("insn","adrp x0, #69632")]), - Var("R0",Imm(64)), Int(69632,64)), Def(Tid(790, "%00000316"), - Attrs([Attr("address","0x6E8"), Attr("insn","ldr x0, [x0, #0x28]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(40,64)),LittleEndian(),64)), -Def(Tid(795, "%0000031b"), Attrs([Attr("address","0x6EC"), -Attr("insn","bl #-0x11c")]), Var("R30",Imm(64)), Int(1776,64))]), -Jmps([Call(Tid(798, "%0000031e"), Attrs([Attr("address","0x6EC"), -Attr("insn","bl #-0x11c")]), Int(1,1), -(Direct(Tid(1_380, "@__cxa_finalize")),Direct(Tid(755, "%000002f3"))))])), -Blk(Tid(755, "%000002f3"), Attrs([Attr("address","0x6F0")]), Phis([]), -Defs([Def(Tid(763, "%000002fb"), Attrs([Attr("address","0x6F0"), -Attr("insn","bl #-0xa0")]), Var("R30",Imm(64)), Int(1780,64))]), -Jmps([Call(Tid(765, "%000002fd"), Attrs([Attr("address","0x6F0"), -Attr("insn","bl #-0xa0")]), Int(1,1), -(Direct(Tid(1_394, "@deregister_tm_clones")),Direct(Tid(767, "%000002ff"))))])), -Blk(Tid(767, "%000002ff"), Attrs([Attr("address","0x6F4")]), Phis([]), -Defs([Def(Tid(770, "%00000302"), Attrs([Attr("address","0x6F4"), -Attr("insn","mov w0, #0x1")]), Var("R0",Imm(64)), Int(1,64)), -Def(Tid(778, "%0000030a"), Attrs([Attr("address","0x6F8"), -Attr("insn","strb w0, [x19, #0x30]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R19",Imm(64)),Int(48,64)),Extract(7,0,Var("R0",Imm(64))),LittleEndian(),8))]), -Jmps([Goto(Tid(1_384, "%00000568"), Attrs([]), Int(1,1), -Direct(Tid(665, "%00000299")))])), Blk(Tid(665, "%00000299"), - Attrs([Attr("address","0x6FC")]), Phis([]), Defs([Def(Tid(675, "%000002a3"), - Attrs([Attr("address","0x6FC"), Attr("insn","ldr x19, [sp, #0x10]")]), - Var("R19",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(16,64)),LittleEndian(),64)), -Def(Tid(682, "%000002aa"), Attrs([Attr("address","0x700"), -Attr("insn","ldp x29, x30, [sp], #0x20")]), Var("R29",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(687, "%000002af"), Attrs([Attr("address","0x700"), -Attr("insn","ldp x29, x30, [sp], #0x20")]), Var("R30",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(691, "%000002b3"), Attrs([Attr("address","0x700"), -Attr("insn","ldp x29, x30, [sp], #0x20")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(32,64)))]), Jmps([Call(Tid(696, "%000002b8"), - Attrs([Attr("address","0x704"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), Sub(Tid(1_385, "@__libc_start_main"), - Attrs([Attr("c.proto","signed (*)(signed (*)(signed , char** , char** );* main, signed , char** , \nvoid* auxv)"), -Attr("address","0x5C0"), Attr("stub","()")]), "__libc_start_main", - Args([Arg(Tid(1_405, "%0000057d"), - Attrs([Attr("c.layout","**[ : 64]"), -Attr("c.data","Top:u64 ptr ptr"), -Attr("c.type","signed (*)(signed , char** , char** );*")]), - Var("__libc_start_main_main",Imm(64)), Var("R0",Imm(64)), In()), -Arg(Tid(1_406, "%0000057e"), Attrs([Attr("c.layout","[signed : 32]"), -Attr("c.data","Top:u32"), Attr("c.type","signed")]), - Var("__libc_start_main_arg2",Imm(32)), LOW(32,Var("R1",Imm(64))), In()), -Arg(Tid(1_407, "%0000057f"), Attrs([Attr("c.layout","**[char : 8]"), -Attr("c.data","Top:u8 ptr ptr"), Attr("c.type","char**")]), - Var("__libc_start_main_arg3",Imm(64)), Var("R2",Imm(64)), Both()), -Arg(Tid(1_408, "%00000580"), Attrs([Attr("c.layout","*[ : 8]"), -Attr("c.data","{} ptr"), Attr("c.type","void*")]), - Var("__libc_start_main_auxv",Imm(64)), Var("R3",Imm(64)), Both()), -Arg(Tid(1_409, "%00000581"), Attrs([Attr("c.layout","[signed : 32]"), -Attr("c.data","Top:u32"), Attr("c.type","signed")]), - Var("__libc_start_main_result",Imm(32)), LOW(32,Var("R0",Imm(64))), -Out())]), Blks([Blk(Tid(447, "@__libc_start_main"), - Attrs([Attr("address","0x5C0")]), Phis([]), -Defs([Def(Tid(1_022, "%000003fe"), Attrs([Attr("address","0x5C0"), -Attr("insn","adrp x16, #69632")]), Var("R16",Imm(64)), Int(69632,64)), -Def(Tid(1_029, "%00000405"), Attrs([Attr("address","0x5C4"), -Attr("insn","ldr x17, [x16]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R16",Imm(64)),LittleEndian(),64)), -Def(Tid(1_035, "%0000040b"), Attrs([Attr("address","0x5C8"), -Attr("insn","add x16, x16, #0x0")]), Var("R16",Imm(64)), -Var("R16",Imm(64)))]), Jmps([Call(Tid(1_040, "%00000410"), - Attrs([Attr("address","0x5CC"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), Sub(Tid(1_386, "@_fini"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x72C")]), - "_fini", Args([Arg(Tid(1_410, "%00000582"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("_fini_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(31, "@_fini"), - Attrs([Attr("address","0x72C")]), Phis([]), Defs([Def(Tid(37, "%00000025"), - Attrs([Attr("address","0x730"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("#0",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(18446744073709551600,64))), -Def(Tid(43, "%0000002b"), Attrs([Attr("address","0x730"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("#0",Imm(64)),Var("R29",Imm(64)),LittleEndian(),64)), -Def(Tid(49, "%00000031"), Attrs([Attr("address","0x730"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("#0",Imm(64)),Int(8,64)),Var("R30",Imm(64)),LittleEndian(),64)), -Def(Tid(53, "%00000035"), Attrs([Attr("address","0x730"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("R31",Imm(64)), -Var("#0",Imm(64))), Def(Tid(59, "%0000003b"), Attrs([Attr("address","0x734"), -Attr("insn","mov x29, sp")]), Var("R29",Imm(64)), Var("R31",Imm(64))), -Def(Tid(66, "%00000042"), Attrs([Attr("address","0x738"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R29",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(71, "%00000047"), Attrs([Attr("address","0x738"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R30",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(75, "%0000004b"), Attrs([Attr("address","0x738"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(16,64)))]), Jmps([Call(Tid(80, "%00000050"), - Attrs([Attr("address","0x73C"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), Sub(Tid(1_387, "@_init"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x580")]), - "_init", Args([Arg(Tid(1_411, "%00000583"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("_init_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(1_216, "@_init"), - Attrs([Attr("address","0x580")]), Phis([]), -Defs([Def(Tid(1_222, "%000004c6"), Attrs([Attr("address","0x584"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("#5",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(18446744073709551600,64))), -Def(Tid(1_228, "%000004cc"), Attrs([Attr("address","0x584"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("#5",Imm(64)),Var("R29",Imm(64)),LittleEndian(),64)), -Def(Tid(1_234, "%000004d2"), Attrs([Attr("address","0x584"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("#5",Imm(64)),Int(8,64)),Var("R30",Imm(64)),LittleEndian(),64)), -Def(Tid(1_238, "%000004d6"), Attrs([Attr("address","0x584"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("R31",Imm(64)), -Var("#5",Imm(64))), Def(Tid(1_244, "%000004dc"), - Attrs([Attr("address","0x588"), Attr("insn","mov x29, sp")]), - Var("R29",Imm(64)), Var("R31",Imm(64))), Def(Tid(1_249, "%000004e1"), - Attrs([Attr("address","0x58C"), Attr("insn","bl #0xa8")]), - Var("R30",Imm(64)), Int(1424,64))]), Jmps([Call(Tid(1_251, "%000004e3"), - Attrs([Attr("address","0x58C"), Attr("insn","bl #0xa8")]), Int(1,1), -(Direct(Tid(1_392, "@call_weak_fn")),Direct(Tid(1_253, "%000004e5"))))])), -Blk(Tid(1_253, "%000004e5"), Attrs([Attr("address","0x590")]), Phis([]), -Defs([Def(Tid(1_258, "%000004ea"), Attrs([Attr("address","0x590"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R29",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(1_263, "%000004ef"), Attrs([Attr("address","0x590"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R30",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(1_267, "%000004f3"), Attrs([Attr("address","0x590"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(16,64)))]), Jmps([Call(Tid(1_272, "%000004f8"), - Attrs([Attr("address","0x594"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), Sub(Tid(1_388, "@_start"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x600"), -Attr("stub","()"), Attr("entry-point","()")]), "_start", - Args([Arg(Tid(1_412, "%00000584"), Attrs([Attr("c.layout","[signed : 32]"), -Attr("c.data","Top:u32"), Attr("c.type","signed")]), - Var("_start_result",Imm(32)), LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(384, "@_start"), Attrs([Attr("address","0x600")]), Phis([]), -Defs([Def(Tid(389, "%00000185"), Attrs([Attr("address","0x604"), -Attr("insn","mov x29, #0x0")]), Var("R29",Imm(64)), Int(0,64)), -Def(Tid(394, "%0000018a"), Attrs([Attr("address","0x608"), -Attr("insn","mov x30, #0x0")]), Var("R30",Imm(64)), Int(0,64)), -Def(Tid(400, "%00000190"), Attrs([Attr("address","0x60C"), -Attr("insn","mov x5, x0")]), Var("R5",Imm(64)), Var("R0",Imm(64))), -Def(Tid(407, "%00000197"), Attrs([Attr("address","0x610"), -Attr("insn","ldr x1, [sp]")]), Var("R1",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(413, "%0000019d"), Attrs([Attr("address","0x614"), -Attr("insn","add x2, sp, #0x8")]), Var("R2",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(8,64))), Def(Tid(419, "%000001a3"), - Attrs([Attr("address","0x618"), Attr("insn","mov x6, sp")]), - Var("R6",Imm(64)), Var("R31",Imm(64))), Def(Tid(424, "%000001a8"), - Attrs([Attr("address","0x61C"), Attr("insn","adrp x0, #65536")]), - Var("R0",Imm(64)), Int(65536,64)), Def(Tid(431, "%000001af"), - Attrs([Attr("address","0x620"), Attr("insn","ldr x0, [x0, #0xfd8]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(4056,64)),LittleEndian(),64)), -Def(Tid(436, "%000001b4"), Attrs([Attr("address","0x624"), -Attr("insn","mov x3, #0x0")]), Var("R3",Imm(64)), Int(0,64)), -Def(Tid(441, "%000001b9"), Attrs([Attr("address","0x628"), -Attr("insn","mov x4, #0x0")]), Var("R4",Imm(64)), Int(0,64)), -Def(Tid(446, "%000001be"), Attrs([Attr("address","0x62C"), -Attr("insn","bl #-0x6c")]), Var("R30",Imm(64)), Int(1584,64))]), -Jmps([Call(Tid(449, "%000001c1"), Attrs([Attr("address","0x62C"), -Attr("insn","bl #-0x6c")]), Int(1,1), -(Direct(Tid(1_385, "@__libc_start_main")),Direct(Tid(451, "%000001c3"))))])), -Blk(Tid(451, "%000001c3"), Attrs([Attr("address","0x630")]), Phis([]), -Defs([Def(Tid(454, "%000001c6"), Attrs([Attr("address","0x630"), -Attr("insn","bl #-0x40")]), Var("R30",Imm(64)), Int(1588,64))]), -Jmps([Call(Tid(457, "%000001c9"), Attrs([Attr("address","0x630"), -Attr("insn","bl #-0x40")]), Int(1,1), -(Direct(Tid(1_391, "@abort")),Direct(Tid(1_389, "%0000056d"))))])), -Blk(Tid(1_389, "%0000056d"), Attrs([]), Phis([]), Defs([]), -Jmps([Call(Tid(1_390, "%0000056e"), Attrs([]), Int(1,1), -(Direct(Tid(1_392, "@call_weak_fn")),))]))])), Sub(Tid(1_391, "@abort"), - Attrs([Attr("noreturn","()"), Attr("c.proto","void (*)(void)"), -Attr("address","0x5F0"), Attr("stub","()")]), "abort", Args([]), -Blks([Blk(Tid(455, "@abort"), Attrs([Attr("address","0x5F0")]), Phis([]), -Defs([Def(Tid(1_088, "%00000440"), Attrs([Attr("address","0x5F0"), -Attr("insn","adrp x16, #69632")]), Var("R16",Imm(64)), Int(69632,64)), -Def(Tid(1_095, "%00000447"), Attrs([Attr("address","0x5F4"), -Attr("insn","ldr x17, [x16, #0x18]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(24,64)),LittleEndian(),64)), -Def(Tid(1_101, "%0000044d"), Attrs([Attr("address","0x5F8"), -Attr("insn","add x16, x16, #0x18")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(24,64)))]), Jmps([Call(Tid(1_106, "%00000452"), - Attrs([Attr("address","0x5FC"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), Sub(Tid(1_392, "@call_weak_fn"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x634")]), - "call_weak_fn", Args([Arg(Tid(1_413, "%00000585"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("call_weak_fn_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(459, "@call_weak_fn"), - Attrs([Attr("address","0x634")]), Phis([]), Defs([Def(Tid(462, "%000001ce"), - Attrs([Attr("address","0x634"), Attr("insn","adrp x0, #65536")]), - Var("R0",Imm(64)), Int(65536,64)), Def(Tid(469, "%000001d5"), - Attrs([Attr("address","0x638"), Attr("insn","ldr x0, [x0, #0xfd0]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(4048,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(475, "%000001db"), Attrs([Attr("address","0x63C"), -Attr("insn","cbz x0, #0x8")]), EQ(Var("R0",Imm(64)),Int(0,64)), -Direct(Tid(473, "%000001d9"))), Goto(Tid(1_393, "%00000571"), Attrs([]), - Int(1,1), Direct(Tid(860, "%0000035c")))])), Blk(Tid(473, "%000001d9"), - Attrs([Attr("address","0x644")]), Phis([]), Defs([]), -Jmps([Call(Tid(481, "%000001e1"), Attrs([Attr("address","0x644"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))])), -Blk(Tid(860, "%0000035c"), Attrs([Attr("address","0x640")]), Phis([]), -Defs([]), Jmps([Goto(Tid(863, "%0000035f"), Attrs([Attr("address","0x640"), -Attr("insn","b #-0x60")]), Int(1,1), Direct(Tid(861, "@__gmon_start__")))])), -Blk(Tid(861, "@__gmon_start__"), Attrs([Attr("address","0x5E0")]), Phis([]), -Defs([Def(Tid(1_066, "%0000042a"), Attrs([Attr("address","0x5E0"), -Attr("insn","adrp x16, #69632")]), Var("R16",Imm(64)), Int(69632,64)), -Def(Tid(1_073, "%00000431"), Attrs([Attr("address","0x5E4"), -Attr("insn","ldr x17, [x16, #0x10]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(16,64)),LittleEndian(),64)), -Def(Tid(1_079, "%00000437"), Attrs([Attr("address","0x5E8"), -Attr("insn","add x16, x16, #0x10")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(16,64)))]), Jmps([Call(Tid(1_084, "%0000043c"), - Attrs([Attr("address","0x5EC"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), -Sub(Tid(1_394, "@deregister_tm_clones"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x650")]), - "deregister_tm_clones", Args([Arg(Tid(1_414, "%00000586"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("deregister_tm_clones_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(487, "@deregister_tm_clones"), - Attrs([Attr("address","0x650")]), Phis([]), Defs([Def(Tid(490, "%000001ea"), - Attrs([Attr("address","0x650"), Attr("insn","adrp x0, #69632")]), - Var("R0",Imm(64)), Int(69632,64)), Def(Tid(496, "%000001f0"), - Attrs([Attr("address","0x654"), Attr("insn","add x0, x0, #0x30")]), - Var("R0",Imm(64)), PLUS(Var("R0",Imm(64)),Int(48,64))), -Def(Tid(501, "%000001f5"), Attrs([Attr("address","0x658"), -Attr("insn","adrp x1, #69632")]), Var("R1",Imm(64)), Int(69632,64)), -Def(Tid(507, "%000001fb"), Attrs([Attr("address","0x65C"), -Attr("insn","add x1, x1, #0x30")]), Var("R1",Imm(64)), -PLUS(Var("R1",Imm(64)),Int(48,64))), Def(Tid(513, "%00000201"), - Attrs([Attr("address","0x660"), Attr("insn","cmp x1, x0")]), - Var("#1",Imm(64)), NOT(Var("R0",Imm(64)))), Def(Tid(518, "%00000206"), - Attrs([Attr("address","0x660"), Attr("insn","cmp x1, x0")]), - Var("#2",Imm(64)), PLUS(Var("R1",Imm(64)),NOT(Var("R0",Imm(64))))), -Def(Tid(524, "%0000020c"), Attrs([Attr("address","0x660"), -Attr("insn","cmp x1, x0")]), Var("VF",Imm(1)), -NEQ(SIGNED(65,PLUS(Var("#2",Imm(64)),Int(1,64))),PLUS(PLUS(SIGNED(65,Var("R1",Imm(64))),SIGNED(65,Var("#1",Imm(64)))),Int(1,65)))), -Def(Tid(530, "%00000212"), Attrs([Attr("address","0x660"), -Attr("insn","cmp x1, x0")]), Var("CF",Imm(1)), -NEQ(UNSIGNED(65,PLUS(Var("#2",Imm(64)),Int(1,64))),PLUS(PLUS(UNSIGNED(65,Var("R1",Imm(64))),UNSIGNED(65,Var("#1",Imm(64)))),Int(1,65)))), -Def(Tid(534, "%00000216"), Attrs([Attr("address","0x660"), -Attr("insn","cmp x1, x0")]), Var("ZF",Imm(1)), -EQ(PLUS(Var("#2",Imm(64)),Int(1,64)),Int(0,64))), Def(Tid(538, "%0000021a"), - Attrs([Attr("address","0x660"), Attr("insn","cmp x1, x0")]), - Var("NF",Imm(1)), Extract(63,63,PLUS(Var("#2",Imm(64)),Int(1,64))))]), -Jmps([Goto(Tid(544, "%00000220"), Attrs([Attr("address","0x664"), -Attr("insn","b.eq #0x18")]), EQ(Var("ZF",Imm(1)),Int(1,1)), -Direct(Tid(542, "%0000021e"))), Goto(Tid(1_395, "%00000573"), Attrs([]), - Int(1,1), Direct(Tid(830, "%0000033e")))])), Blk(Tid(830, "%0000033e"), - Attrs([Attr("address","0x668")]), Phis([]), Defs([Def(Tid(833, "%00000341"), - Attrs([Attr("address","0x668"), Attr("insn","adrp x1, #65536")]), - Var("R1",Imm(64)), Int(65536,64)), Def(Tid(840, "%00000348"), - Attrs([Attr("address","0x66C"), Attr("insn","ldr x1, [x1, #0xfc0]")]), - Var("R1",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R1",Imm(64)),Int(4032,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(845, "%0000034d"), Attrs([Attr("address","0x670"), -Attr("insn","cbz x1, #0xc")]), EQ(Var("R1",Imm(64)),Int(0,64)), -Direct(Tid(542, "%0000021e"))), Goto(Tid(1_396, "%00000574"), Attrs([]), - Int(1,1), Direct(Tid(849, "%00000351")))])), Blk(Tid(542, "%0000021e"), - Attrs([Attr("address","0x67C")]), Phis([]), Defs([]), -Jmps([Call(Tid(550, "%00000226"), Attrs([Attr("address","0x67C"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))])), -Blk(Tid(849, "%00000351"), Attrs([Attr("address","0x674")]), Phis([]), -Defs([Def(Tid(853, "%00000355"), Attrs([Attr("address","0x674"), -Attr("insn","mov x16, x1")]), Var("R16",Imm(64)), Var("R1",Imm(64)))]), -Jmps([Call(Tid(858, "%0000035a"), Attrs([Attr("address","0x678"), -Attr("insn","br x16")]), Int(1,1), (Indirect(Var("R16",Imm(64))),))]))])), -Sub(Tid(1_397, "@frame_dummy"), Attrs([Attr("c.proto","signed (*)(void)"), -Attr("address","0x710")]), "frame_dummy", Args([Arg(Tid(1_415, "%00000587"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("frame_dummy_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(702, "@frame_dummy"), - Attrs([Attr("address","0x710")]), Phis([]), Defs([]), -Jmps([Call(Tid(704, "%000002c0"), Attrs([Attr("address","0x710"), -Attr("insn","b #-0x90")]), Int(1,1), -(Direct(Tid(1_399, "@register_tm_clones")),))]))])), Sub(Tid(1_398, "@main"), - Attrs([Attr("c.proto","signed (*)(signed argc, const char** argv)"), -Attr("address","0x714")]), "main", Args([Arg(Tid(1_416, "%00000588"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("main_argc",Imm(32)), -LOW(32,Var("R0",Imm(64))), In()), Arg(Tid(1_417, "%00000589"), - Attrs([Attr("c.layout","**[char : 8]"), Attr("c.data","Top:u8 ptr ptr"), -Attr("c.type"," const char**")]), Var("main_argv",Imm(64)), -Var("R1",Imm(64)), Both()), Arg(Tid(1_418, "%0000058a"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("main_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(706, "@main"), - Attrs([Attr("address","0x714")]), Phis([]), Defs([Def(Tid(709, "%000002c5"), - Attrs([Attr("address","0x714"), Attr("insn","adrp x8, #69632")]), - Var("R8",Imm(64)), Int(69632,64)), Def(Tid(714, "%000002ca"), - Attrs([Attr("address","0x718"), Attr("insn","adrp x9, #69632")]), - Var("R9",Imm(64)), Int(69632,64)), Def(Tid(719, "%000002cf"), - Attrs([Attr("address","0x71C"), Attr("insn","mov w0, wzr")]), - Var("R0",Imm(64)), Int(0,64)), Def(Tid(726, "%000002d6"), - Attrs([Attr("address","0x720"), Attr("insn","ldr x8, [x8, #0x38]")]), - Var("R8",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R8",Imm(64)),Int(56,64)),LittleEndian(),64)), -Def(Tid(734, "%000002de"), Attrs([Attr("address","0x724"), -Attr("insn","str x8, [x9, #0x40]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R9",Imm(64)),Int(64,64)),Var("R8",Imm(64)),LittleEndian(),64))]), -Jmps([Call(Tid(739, "%000002e3"), Attrs([Attr("address","0x728"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))]))])), -Sub(Tid(1_399, "@register_tm_clones"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x680")]), - "register_tm_clones", Args([Arg(Tid(1_419, "%0000058b"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("register_tm_clones_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(552, "@register_tm_clones"), Attrs([Attr("address","0x680")]), - Phis([]), Defs([Def(Tid(555, "%0000022b"), Attrs([Attr("address","0x680"), -Attr("insn","adrp x0, #69632")]), Var("R0",Imm(64)), Int(69632,64)), -Def(Tid(561, "%00000231"), Attrs([Attr("address","0x684"), -Attr("insn","add x0, x0, #0x30")]), Var("R0",Imm(64)), -PLUS(Var("R0",Imm(64)),Int(48,64))), Def(Tid(566, "%00000236"), - Attrs([Attr("address","0x688"), Attr("insn","adrp x1, #69632")]), - Var("R1",Imm(64)), Int(69632,64)), Def(Tid(572, "%0000023c"), - Attrs([Attr("address","0x68C"), Attr("insn","add x1, x1, #0x30")]), - Var("R1",Imm(64)), PLUS(Var("R1",Imm(64)),Int(48,64))), -Def(Tid(579, "%00000243"), Attrs([Attr("address","0x690"), -Attr("insn","sub x1, x1, x0")]), Var("R1",Imm(64)), -PLUS(PLUS(Var("R1",Imm(64)),NOT(Var("R0",Imm(64)))),Int(1,64))), -Def(Tid(585, "%00000249"), Attrs([Attr("address","0x694"), -Attr("insn","lsr x2, x1, #63")]), Var("R2",Imm(64)), -Concat(Int(0,63),Extract(63,63,Var("R1",Imm(64))))), -Def(Tid(592, "%00000250"), Attrs([Attr("address","0x698"), -Attr("insn","add x1, x2, x1, asr #3")]), Var("R1",Imm(64)), -PLUS(Var("R2",Imm(64)),ARSHIFT(Var("R1",Imm(64)),Int(3,3)))), -Def(Tid(598, "%00000256"), Attrs([Attr("address","0x69C"), -Attr("insn","asr x1, x1, #1")]), Var("R1",Imm(64)), -SIGNED(64,Extract(63,1,Var("R1",Imm(64)))))]), -Jmps([Goto(Tid(604, "%0000025c"), Attrs([Attr("address","0x6A0"), -Attr("insn","cbz x1, #0x18")]), EQ(Var("R1",Imm(64)),Int(0,64)), -Direct(Tid(602, "%0000025a"))), Goto(Tid(1_400, "%00000578"), Attrs([]), - Int(1,1), Direct(Tid(800, "%00000320")))])), Blk(Tid(800, "%00000320"), - Attrs([Attr("address","0x6A4")]), Phis([]), Defs([Def(Tid(803, "%00000323"), - Attrs([Attr("address","0x6A4"), Attr("insn","adrp x2, #65536")]), - Var("R2",Imm(64)), Int(65536,64)), Def(Tid(810, "%0000032a"), - Attrs([Attr("address","0x6A8"), Attr("insn","ldr x2, [x2, #0xfe0]")]), - Var("R2",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R2",Imm(64)),Int(4064,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(815, "%0000032f"), Attrs([Attr("address","0x6AC"), -Attr("insn","cbz x2, #0xc")]), EQ(Var("R2",Imm(64)),Int(0,64)), -Direct(Tid(602, "%0000025a"))), Goto(Tid(1_401, "%00000579"), Attrs([]), - Int(1,1), Direct(Tid(819, "%00000333")))])), Blk(Tid(602, "%0000025a"), - Attrs([Attr("address","0x6B8")]), Phis([]), Defs([]), -Jmps([Call(Tid(610, "%00000262"), Attrs([Attr("address","0x6B8"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))])), -Blk(Tid(819, "%00000333"), Attrs([Attr("address","0x6B0")]), Phis([]), -Defs([Def(Tid(823, "%00000337"), Attrs([Attr("address","0x6B0"), -Attr("insn","mov x16, x2")]), Var("R16",Imm(64)), Var("R2",Imm(64)))]), -Jmps([Call(Tid(828, "%0000033c"), Attrs([Attr("address","0x6B4"), -Attr("insn","br x16")]), Int(1,1), -(Indirect(Var("R16",Imm(64))),))]))]))]))) \ No newline at end of file diff --git a/src/test/incorrect/basicassign2/clang_O2/basicassign2.bir b/src/test/incorrect/basicassign2/clang_O2/basicassign2.bir deleted file mode 100644 index eba3cd858..000000000 --- a/src/test/incorrect/basicassign2/clang_O2/basicassign2.bir +++ /dev/null @@ -1,228 +0,0 @@ -0000057a: program -00000564: sub __cxa_finalize(__cxa_finalize_result) -0000057b: __cxa_finalize_result :: out u32 = low:32[R0] - -0000031c: -00000414: R16 := 0x11000 -0000041b: R17 := mem[R16 + 8, el]:u64 -00000421: R16 := R16 + 8 -00000426: call R17 with noreturn - -00000565: sub __do_global_dtors_aux(__do_global_dtors_aux_result) -0000057c: __do_global_dtors_aux_result :: out u32 = low:32[R0] - -00000266: -0000026a: #3 := R31 - 0x20 -00000270: mem := mem with [#3, el]:u64 <- R29 -00000276: mem := mem with [#3 + 8, el]:u64 <- R30 -0000027a: R31 := #3 -00000280: R29 := R31 -00000288: mem := mem with [R31 + 0x10, el]:u64 <- R19 -0000028d: R19 := 0x11000 -00000294: R0 := pad:64[mem[R19 + 0x30]] -0000029b: when 31:0[R0] <> 0 goto %00000299 -00000566: goto %000002e5 - -000002e5: -000002e8: R0 := 0x10000 -000002ef: R0 := mem[R0 + 0xFC8, el]:u64 -000002f5: when R0 = 0 goto %000002f3 -00000567: goto %0000030c - -0000030c: -0000030f: R0 := 0x11000 -00000316: R0 := mem[R0 + 0x28, el]:u64 -0000031b: R30 := 0x6F0 -0000031e: call @__cxa_finalize with return %000002f3 - -000002f3: -000002fb: R30 := 0x6F4 -000002fd: call @deregister_tm_clones with return %000002ff - -000002ff: -00000302: R0 := 1 -0000030a: mem := mem with [R19 + 0x30] <- 7:0[R0] -00000568: goto %00000299 - -00000299: -000002a3: R19 := mem[R31 + 0x10, el]:u64 -000002aa: R29 := mem[R31, el]:u64 -000002af: R30 := mem[R31 + 8, el]:u64 -000002b3: R31 := R31 + 0x20 -000002b8: call R30 with noreturn - -00000569: sub __libc_start_main(__libc_start_main_main, __libc_start_main_arg2, __libc_start_main_arg3, __libc_start_main_auxv, __libc_start_main_result) -0000057d: __libc_start_main_main :: in u64 = R0 -0000057e: __libc_start_main_arg2 :: in u32 = low:32[R1] -0000057f: __libc_start_main_arg3 :: in out u64 = R2 -00000580: __libc_start_main_auxv :: in out u64 = R3 -00000581: __libc_start_main_result :: out u32 = low:32[R0] - -000001bf: -000003fe: R16 := 0x11000 -00000405: R17 := mem[R16, el]:u64 -0000040b: R16 := R16 -00000410: call R17 with noreturn - -0000056a: sub _fini(_fini_result) -00000582: _fini_result :: out u32 = low:32[R0] - -0000001f: -00000025: #0 := R31 - 0x10 -0000002b: mem := mem with [#0, el]:u64 <- R29 -00000031: mem := mem with [#0 + 8, el]:u64 <- R30 -00000035: R31 := #0 -0000003b: R29 := R31 -00000042: R29 := mem[R31, el]:u64 -00000047: R30 := mem[R31 + 8, el]:u64 -0000004b: R31 := R31 + 0x10 -00000050: call R30 with noreturn - -0000056b: sub _init(_init_result) -00000583: _init_result :: out u32 = low:32[R0] - -000004c0: -000004c6: #5 := R31 - 0x10 -000004cc: mem := mem with [#5, el]:u64 <- R29 -000004d2: mem := mem with [#5 + 8, el]:u64 <- R30 -000004d6: R31 := #5 -000004dc: R29 := R31 -000004e1: R30 := 0x590 -000004e3: call @call_weak_fn with return %000004e5 - -000004e5: -000004ea: R29 := mem[R31, el]:u64 -000004ef: R30 := mem[R31 + 8, el]:u64 -000004f3: R31 := R31 + 0x10 -000004f8: call R30 with noreturn - -0000056c: sub _start(_start_result) -00000584: _start_result :: out u32 = low:32[R0] - -00000180: -00000185: R29 := 0 -0000018a: R30 := 0 -00000190: R5 := R0 -00000197: R1 := mem[R31, el]:u64 -0000019d: R2 := R31 + 8 -000001a3: R6 := R31 -000001a8: R0 := 0x10000 -000001af: R0 := mem[R0 + 0xFD8, el]:u64 -000001b4: R3 := 0 -000001b9: R4 := 0 -000001be: R30 := 0x630 -000001c1: call @__libc_start_main with return %000001c3 - -000001c3: -000001c6: R30 := 0x634 -000001c9: call @abort with return %0000056d - -0000056d: -0000056e: call @call_weak_fn with noreturn - -0000056f: sub abort() - - -000001c7: -00000440: R16 := 0x11000 -00000447: R17 := mem[R16 + 0x18, el]:u64 -0000044d: R16 := R16 + 0x18 -00000452: call R17 with noreturn - -00000570: sub call_weak_fn(call_weak_fn_result) -00000585: call_weak_fn_result :: out u32 = low:32[R0] - -000001cb: -000001ce: R0 := 0x10000 -000001d5: R0 := mem[R0 + 0xFD0, el]:u64 -000001db: when R0 = 0 goto %000001d9 -00000571: goto %0000035c - -000001d9: -000001e1: call R30 with noreturn - -0000035c: -0000035f: goto @__gmon_start__ - -0000035d: -0000042a: R16 := 0x11000 -00000431: R17 := mem[R16 + 0x10, el]:u64 -00000437: R16 := R16 + 0x10 -0000043c: call R17 with noreturn - -00000572: sub deregister_tm_clones(deregister_tm_clones_result) -00000586: deregister_tm_clones_result :: out u32 = low:32[R0] - -000001e7: -000001ea: R0 := 0x11000 -000001f0: R0 := R0 + 0x30 -000001f5: R1 := 0x11000 -000001fb: R1 := R1 + 0x30 -00000201: #1 := ~R0 -00000206: #2 := R1 + ~R0 -0000020c: VF := extend:65[#2 + 1] <> extend:65[R1] + extend:65[#1] + 1 -00000212: CF := pad:65[#2 + 1] <> pad:65[R1] + pad:65[#1] + 1 -00000216: ZF := #2 + 1 = 0 -0000021a: NF := 63:63[#2 + 1] -00000220: when ZF goto %0000021e -00000573: goto %0000033e - -0000033e: -00000341: R1 := 0x10000 -00000348: R1 := mem[R1 + 0xFC0, el]:u64 -0000034d: when R1 = 0 goto %0000021e -00000574: goto %00000351 - -0000021e: -00000226: call R30 with noreturn - -00000351: -00000355: R16 := R1 -0000035a: call R16 with noreturn - -00000575: sub frame_dummy(frame_dummy_result) -00000587: frame_dummy_result :: out u32 = low:32[R0] - -000002be: -000002c0: call @register_tm_clones with noreturn - -00000576: sub main(main_argc, main_argv, main_result) -00000588: main_argc :: in u32 = low:32[R0] -00000589: main_argv :: in out u64 = R1 -0000058a: main_result :: out u32 = low:32[R0] - -000002c2: -000002c5: R8 := 0x11000 -000002ca: R9 := 0x11000 -000002cf: R0 := 0 -000002d6: R8 := mem[R8 + 0x38, el]:u64 -000002de: mem := mem with [R9 + 0x40, el]:u64 <- R8 -000002e3: call R30 with noreturn - -00000577: sub register_tm_clones(register_tm_clones_result) -0000058b: register_tm_clones_result :: out u32 = low:32[R0] - -00000228: -0000022b: R0 := 0x11000 -00000231: R0 := R0 + 0x30 -00000236: R1 := 0x11000 -0000023c: R1 := R1 + 0x30 -00000243: R1 := R1 + ~R0 + 1 -00000249: R2 := 0.63:63[R1] -00000250: R1 := R2 + (R1 ~>> 3) -00000256: R1 := extend:64[63:1[R1]] -0000025c: when R1 = 0 goto %0000025a -00000578: goto %00000320 - -00000320: -00000323: R2 := 0x10000 -0000032a: R2 := mem[R2 + 0xFE0, el]:u64 -0000032f: when R2 = 0 goto %0000025a -00000579: goto %00000333 - -0000025a: -00000262: call R30 with noreturn - -00000333: -00000337: R16 := R2 -0000033c: call R16 with noreturn diff --git a/src/test/incorrect/basicassign2/clang_O2/basicassign2.expected b/src/test/incorrect/basicassign2/clang_O2/basicassign2.expected index 4bccea171..839f672f2 100644 --- a/src/test/incorrect/basicassign2/clang_O2/basicassign2.expected +++ b/src/test/incorrect/basicassign2/clang_O2/basicassign2.expected @@ -7,9 +7,9 @@ var {:extern} R8: bv64; var {:extern} R9: bv64; var {:extern} mem: [bv64]bv8; const {:extern} $secret_addr: bv64; -axiom ($secret_addr == 69688bv64); +axiom ($secret_addr == 131096bv64); const {:extern} $z_addr: bv64; -axiom ($z_addr == 69696bv64); +axiom ($z_addr == 131104bv64); function {:extern} L(mem$in: [bv64]bv8, index: bv64) returns (bool) { (if (index == $z_addr) then true else (if (index == $secret_addr) then false else false)) } @@ -39,11 +39,13 @@ procedure {:extern} rely(); modifies Gamma_mem, mem; ensures (Gamma_mem == old(Gamma_mem)); ensures (mem == old(mem)); - free ensures (memory_load32_le(mem, 1856bv64) == 131073bv32); - free ensures (memory_load64_le(mem, 69064bv64) == 1808bv64); - free ensures (memory_load64_le(mem, 69072bv64) == 1728bv64); - free ensures (memory_load64_le(mem, 69592bv64) == 1812bv64); - free ensures (memory_load64_le(mem, 69672bv64) == 69672bv64); + free ensures (memory_load32_le(mem, 2312bv64) == 131073bv32); + free ensures (memory_load64_le(mem, 130424bv64) == 2256bv64); + free ensures (memory_load64_le(mem, 130432bv64) == 2176bv64); + free ensures (memory_load64_le(mem, 131032bv64) == 131104bv64); + free ensures (memory_load64_le(mem, 131048bv64) == 131096bv64); + free ensures (memory_load64_le(mem, 131056bv64) == 2260bv64); + free ensures (memory_load64_le(mem, 131080bv64) == 131080bv64); procedure {:extern} rely_transitive(); modifies Gamma_mem, mem; @@ -61,40 +63,54 @@ procedure {:extern} rely_reflexive(); procedure {:extern} guarantee_reflexive(); modifies Gamma_mem, mem; -procedure main_1812(); +procedure main(); modifies Gamma_R0, Gamma_R8, Gamma_R9, Gamma_mem, R0, R8, R9, mem; - free requires (memory_load64_le(mem, 69664bv64) == 0bv64); - free requires (memory_load64_le(mem, 69672bv64) == 69672bv64); - free requires (memory_load32_le(mem, 1856bv64) == 131073bv32); - free requires (memory_load64_le(mem, 69064bv64) == 1808bv64); - free requires (memory_load64_le(mem, 69072bv64) == 1728bv64); - free requires (memory_load64_le(mem, 69592bv64) == 1812bv64); - free requires (memory_load64_le(mem, 69672bv64) == 69672bv64); - free ensures (memory_load32_le(mem, 1856bv64) == 131073bv32); - free ensures (memory_load64_le(mem, 69064bv64) == 1808bv64); - free ensures (memory_load64_le(mem, 69072bv64) == 1728bv64); - free ensures (memory_load64_le(mem, 69592bv64) == 1812bv64); - free ensures (memory_load64_le(mem, 69672bv64) == 69672bv64); + free requires (memory_load64_le(mem, 131072bv64) == 0bv64); + free requires (memory_load64_le(mem, 131080bv64) == 131080bv64); + free requires (memory_load32_le(mem, 2312bv64) == 131073bv32); + free requires (memory_load64_le(mem, 130424bv64) == 2256bv64); + free requires (memory_load64_le(mem, 130432bv64) == 2176bv64); + free requires (memory_load64_le(mem, 131032bv64) == 131104bv64); + free requires (memory_load64_le(mem, 131048bv64) == 131096bv64); + free requires (memory_load64_le(mem, 131056bv64) == 2260bv64); + free requires (memory_load64_le(mem, 131080bv64) == 131080bv64); + free ensures (memory_load32_le(mem, 2312bv64) == 131073bv32); + free ensures (memory_load64_le(mem, 130424bv64) == 2256bv64); + free ensures (memory_load64_le(mem, 130432bv64) == 2176bv64); + free ensures (memory_load64_le(mem, 131032bv64) == 131104bv64); + free ensures (memory_load64_le(mem, 131048bv64) == 131096bv64); + free ensures (memory_load64_le(mem, 131056bv64) == 2260bv64); + free ensures (memory_load64_le(mem, 131080bv64) == 131080bv64); -implementation main_1812() +implementation main() { - var Gamma_load18: bool; - var load18: bv64; + var $load$18: bv64; + var $load$19: bv64; + var $load$20: bv64; + var Gamma_$load$18: bool; + var Gamma_$load$19: bool; + var Gamma_$load$20: bool; lmain: assume {:captureState "lmain"} true; - R8, Gamma_R8 := 69632bv64, true; - R9, Gamma_R9 := 69632bv64, true; + R8, Gamma_R8 := 126976bv64, true; + R9, Gamma_R9 := 126976bv64, true; R0, Gamma_R0 := 0bv64, true; call rely(); - load18, Gamma_load18 := memory_load64_le(mem, bvadd64(R8, 56bv64)), (gamma_load64(Gamma_mem, bvadd64(R8, 56bv64)) || L(mem, bvadd64(R8, 56bv64))); - R8, Gamma_R8 := load18, Gamma_load18; + $load$18, Gamma_$load$18 := memory_load64_le(mem, bvadd64(R8, 4072bv64)), (gamma_load64(Gamma_mem, bvadd64(R8, 4072bv64)) || L(mem, bvadd64(R8, 4072bv64))); + R8, Gamma_R8 := $load$18, Gamma_$load$18; call rely(); - assert (L(mem, bvadd64(R9, 64bv64)) ==> Gamma_R8); - mem, Gamma_mem := memory_store64_le(mem, bvadd64(R9, 64bv64), R8), gamma_store64(Gamma_mem, bvadd64(R9, 64bv64), Gamma_R8); - assume {:captureState "%000002de"} true; - goto main_1812_basil_return; - main_1812_basil_return: - assume {:captureState "main_1812_basil_return"} true; + $load$19, Gamma_$load$19 := memory_load64_le(mem, R8), (gamma_load64(Gamma_mem, R8) || L(mem, R8)); + R8, Gamma_R8 := $load$19, Gamma_$load$19; + call rely(); + $load$20, Gamma_$load$20 := memory_load64_le(mem, bvadd64(R9, 4056bv64)), (gamma_load64(Gamma_mem, bvadd64(R9, 4056bv64)) || L(mem, bvadd64(R9, 4056bv64))); + R9, Gamma_R9 := $load$20, Gamma_$load$20; + call rely(); + assert (L(mem, R9) ==> Gamma_R8); + mem, Gamma_mem := memory_store64_le(mem, R9, R8), gamma_store64(Gamma_mem, R9, Gamma_R8); + assume {:captureState "%00000294"} true; + goto main_basil_return; + main_basil_return: + assume {:captureState "main_basil_return"} true; return; } diff --git a/src/test/incorrect/basicassign2/clang_O2/basicassign2.gts b/src/test/incorrect/basicassign2/clang_O2/basicassign2.gts deleted file mode 100644 index 235fe38ce..000000000 Binary files a/src/test/incorrect/basicassign2/clang_O2/basicassign2.gts and /dev/null differ diff --git a/src/test/incorrect/basicassign2/clang_O2/basicassign2.md5sum b/src/test/incorrect/basicassign2/clang_O2/basicassign2.md5sum new file mode 100644 index 000000000..1b6408ce3 --- /dev/null +++ b/src/test/incorrect/basicassign2/clang_O2/basicassign2.md5sum @@ -0,0 +1,5 @@ +ac64aada3a83d648e7946181b82a36f1 incorrect/basicassign2/clang_O2/a.out +ea180e5d8aa11a68b92738a79e4b5b8a incorrect/basicassign2/clang_O2/basicassign2.adt +a227d4cab0e38e7b70e01ddcc4e85b71 incorrect/basicassign2/clang_O2/basicassign2.bir +39b3650d3524adbbc91ef8f656ce564b incorrect/basicassign2/clang_O2/basicassign2.relf +354fc362e4cedac3149c2db37fff632c incorrect/basicassign2/clang_O2/basicassign2.gts diff --git a/src/test/incorrect/basicassign2/clang_O2/basicassign2.relf b/src/test/incorrect/basicassign2/clang_O2/basicassign2.relf deleted file mode 100644 index db70aed85..000000000 --- a/src/test/incorrect/basicassign2/clang_O2/basicassign2.relf +++ /dev/null @@ -1,124 +0,0 @@ - -Relocation section '.rela.dyn' at offset 0x460 contains 8 entries: - Offset Info Type Symbol's Value Symbol's Name + Addend -0000000000010dc8 0000000000000403 R_AARCH64_RELATIVE 710 -0000000000010dd0 0000000000000403 R_AARCH64_RELATIVE 6c0 -0000000000010fd8 0000000000000403 R_AARCH64_RELATIVE 714 -0000000000011028 0000000000000403 R_AARCH64_RELATIVE 11028 -0000000000010fc0 0000000400000401 R_AARCH64_GLOB_DAT 0000000000000000 _ITM_deregisterTMCloneTable + 0 -0000000000010fc8 0000000500000401 R_AARCH64_GLOB_DAT 0000000000000000 __cxa_finalize@GLIBC_2.17 + 0 -0000000000010fd0 0000000600000401 R_AARCH64_GLOB_DAT 0000000000000000 __gmon_start__ + 0 -0000000000010fe0 0000000800000401 R_AARCH64_GLOB_DAT 0000000000000000 _ITM_registerTMCloneTable + 0 - -Relocation section '.rela.plt' at offset 0x520 contains 4 entries: - Offset Info Type Symbol's Value Symbol's Name + Addend -0000000000011000 0000000300000402 R_AARCH64_JUMP_SLOT 0000000000000000 __libc_start_main@GLIBC_2.34 + 0 -0000000000011008 0000000500000402 R_AARCH64_JUMP_SLOT 0000000000000000 __cxa_finalize@GLIBC_2.17 + 0 -0000000000011010 0000000600000402 R_AARCH64_JUMP_SLOT 0000000000000000 __gmon_start__ + 0 -0000000000011018 0000000700000402 R_AARCH64_JUMP_SLOT 0000000000000000 abort@GLIBC_2.17 + 0 - -Symbol table '.dynsym' contains 9 entries: - Num: Value Size Type Bind Vis Ndx Name - 0: 0000000000000000 0 NOTYPE LOCAL DEFAULT UND - 1: 0000000000000580 0 SECTION LOCAL DEFAULT 11 .init - 2: 0000000000011020 0 SECTION LOCAL DEFAULT 23 .data - 3: 0000000000000000 0 FUNC GLOBAL DEFAULT UND __libc_start_main@GLIBC_2.34 (2) - 4: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_deregisterTMCloneTable - 5: 0000000000000000 0 FUNC WEAK DEFAULT UND __cxa_finalize@GLIBC_2.17 (3) - 6: 0000000000000000 0 NOTYPE WEAK DEFAULT UND __gmon_start__ - 7: 0000000000000000 0 FUNC GLOBAL DEFAULT UND abort@GLIBC_2.17 (3) - 8: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_registerTMCloneTable - -Symbol table '.symtab' contains 91 entries: - Num: Value Size Type Bind Vis Ndx Name - 0: 0000000000000000 0 NOTYPE LOCAL DEFAULT UND - 1: 0000000000000238 0 SECTION LOCAL DEFAULT 1 .interp - 2: 0000000000000254 0 SECTION LOCAL DEFAULT 2 .note.gnu.build-id - 3: 0000000000000278 0 SECTION LOCAL DEFAULT 3 .note.ABI-tag - 4: 0000000000000298 0 SECTION LOCAL DEFAULT 4 .gnu.hash - 5: 00000000000002b8 0 SECTION LOCAL DEFAULT 5 .dynsym - 6: 0000000000000390 0 SECTION LOCAL DEFAULT 6 .dynstr - 7: 000000000000041e 0 SECTION LOCAL DEFAULT 7 .gnu.version - 8: 0000000000000430 0 SECTION LOCAL DEFAULT 8 .gnu.version_r - 9: 0000000000000460 0 SECTION LOCAL DEFAULT 9 .rela.dyn - 10: 0000000000000520 0 SECTION LOCAL DEFAULT 10 .rela.plt - 11: 0000000000000580 0 SECTION LOCAL DEFAULT 11 .init - 12: 00000000000005a0 0 SECTION LOCAL DEFAULT 12 .plt - 13: 0000000000000600 0 SECTION LOCAL DEFAULT 13 .text - 14: 000000000000072c 0 SECTION LOCAL DEFAULT 14 .fini - 15: 0000000000000740 0 SECTION LOCAL DEFAULT 15 .rodata - 16: 0000000000000744 0 SECTION LOCAL DEFAULT 16 .eh_frame_hdr - 17: 0000000000000780 0 SECTION LOCAL DEFAULT 17 .eh_frame - 18: 0000000000010dc8 0 SECTION LOCAL DEFAULT 18 .init_array - 19: 0000000000010dd0 0 SECTION LOCAL DEFAULT 19 .fini_array - 20: 0000000000010dd8 0 SECTION LOCAL DEFAULT 20 .dynamic - 21: 0000000000010fb8 0 SECTION LOCAL DEFAULT 21 .got - 22: 0000000000010fe8 0 SECTION LOCAL DEFAULT 22 .got.plt - 23: 0000000000011020 0 SECTION LOCAL DEFAULT 23 .data - 24: 0000000000011030 0 SECTION LOCAL DEFAULT 24 .bss - 25: 0000000000000000 0 SECTION LOCAL DEFAULT 25 .comment - 26: 0000000000000000 0 FILE LOCAL DEFAULT ABS Scrt1.o - 27: 0000000000000278 0 NOTYPE LOCAL DEFAULT 3 $d - 28: 0000000000000278 32 OBJECT LOCAL DEFAULT 3 __abi_tag - 29: 0000000000000600 0 NOTYPE LOCAL DEFAULT 13 $x - 30: 0000000000000794 0 NOTYPE LOCAL DEFAULT 17 $d - 31: 0000000000000740 0 NOTYPE LOCAL DEFAULT 15 $d - 32: 0000000000000000 0 FILE LOCAL DEFAULT ABS crti.o - 33: 0000000000000634 0 NOTYPE LOCAL DEFAULT 13 $x - 34: 0000000000000634 20 FUNC LOCAL DEFAULT 13 call_weak_fn - 35: 0000000000000580 0 NOTYPE LOCAL DEFAULT 11 $x - 36: 000000000000072c 0 NOTYPE LOCAL DEFAULT 14 $x - 37: 0000000000000000 0 FILE LOCAL DEFAULT ABS crtn.o - 38: 0000000000000590 0 NOTYPE LOCAL DEFAULT 11 $x - 39: 0000000000000738 0 NOTYPE LOCAL DEFAULT 14 $x - 40: 0000000000000000 0 FILE LOCAL DEFAULT ABS crtstuff.c - 41: 0000000000000650 0 NOTYPE LOCAL DEFAULT 13 $x - 42: 0000000000000650 0 FUNC LOCAL DEFAULT 13 deregister_tm_clones - 43: 0000000000000680 0 FUNC LOCAL DEFAULT 13 register_tm_clones - 44: 0000000000011028 0 NOTYPE LOCAL DEFAULT 23 $d - 45: 00000000000006c0 0 FUNC LOCAL DEFAULT 13 __do_global_dtors_aux - 46: 0000000000011030 1 OBJECT LOCAL DEFAULT 24 completed.0 - 47: 0000000000010dd0 0 NOTYPE LOCAL DEFAULT 19 $d - 48: 0000000000010dd0 0 OBJECT LOCAL DEFAULT 19 __do_global_dtors_aux_fini_array_entry - 49: 0000000000000710 0 FUNC LOCAL DEFAULT 13 frame_dummy - 50: 0000000000010dc8 0 NOTYPE LOCAL DEFAULT 18 $d - 51: 0000000000010dc8 0 OBJECT LOCAL DEFAULT 18 __frame_dummy_init_array_entry - 52: 00000000000007a8 0 NOTYPE LOCAL DEFAULT 17 $d - 53: 0000000000011030 0 NOTYPE LOCAL DEFAULT 24 $d - 54: 0000000000000000 0 FILE LOCAL DEFAULT ABS basicassign2.c - 55: 0000000000000714 0 NOTYPE LOCAL DEFAULT 13 $x.0 - 56: 0000000000011038 0 NOTYPE LOCAL DEFAULT 24 $d.1 - 57: 000000000000002a 0 NOTYPE LOCAL DEFAULT 25 $d.2 - 58: 0000000000000808 0 NOTYPE LOCAL DEFAULT 17 $d.3 - 59: 0000000000000000 0 FILE LOCAL DEFAULT ABS crtstuff.c - 60: 0000000000000830 0 NOTYPE LOCAL DEFAULT 17 $d - 61: 0000000000000830 0 OBJECT LOCAL DEFAULT 17 __FRAME_END__ - 62: 0000000000000000 0 FILE LOCAL DEFAULT ABS - 63: 0000000000010dd8 0 OBJECT LOCAL DEFAULT ABS _DYNAMIC - 64: 0000000000000744 0 NOTYPE LOCAL DEFAULT 16 __GNU_EH_FRAME_HDR - 65: 0000000000010fb8 0 OBJECT LOCAL DEFAULT ABS _GLOBAL_OFFSET_TABLE_ - 66: 00000000000005a0 0 NOTYPE LOCAL DEFAULT 12 $x - 67: 0000000000000000 0 FUNC GLOBAL DEFAULT UND __libc_start_main@GLIBC_2.34 - 68: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_deregisterTMCloneTable - 69: 0000000000011020 0 NOTYPE WEAK DEFAULT 23 data_start - 70: 0000000000011030 0 NOTYPE GLOBAL DEFAULT 24 __bss_start__ - 71: 0000000000000000 0 FUNC WEAK DEFAULT UND __cxa_finalize@GLIBC_2.17 - 72: 0000000000011048 0 NOTYPE GLOBAL DEFAULT 24 _bss_end__ - 73: 0000000000011030 0 NOTYPE GLOBAL DEFAULT 23 _edata - 74: 0000000000011040 8 OBJECT GLOBAL DEFAULT 24 z - 75: 000000000000072c 0 FUNC GLOBAL HIDDEN 14 _fini - 76: 0000000000011048 0 NOTYPE GLOBAL DEFAULT 24 __bss_end__ - 77: 0000000000011020 0 NOTYPE GLOBAL DEFAULT 23 __data_start - 78: 0000000000000000 0 NOTYPE WEAK DEFAULT UND __gmon_start__ - 79: 0000000000011028 0 OBJECT GLOBAL HIDDEN 23 __dso_handle - 80: 0000000000000000 0 FUNC GLOBAL DEFAULT UND abort@GLIBC_2.17 - 81: 0000000000000740 4 OBJECT GLOBAL DEFAULT 15 _IO_stdin_used - 82: 0000000000011038 8 OBJECT GLOBAL DEFAULT 24 secret - 83: 0000000000011048 0 NOTYPE GLOBAL DEFAULT 24 _end - 84: 0000000000000600 52 FUNC GLOBAL DEFAULT 13 _start - 85: 0000000000011048 0 NOTYPE GLOBAL DEFAULT 24 __end__ - 86: 0000000000011030 0 NOTYPE GLOBAL DEFAULT 24 __bss_start - 87: 0000000000000714 24 FUNC GLOBAL DEFAULT 13 main - 88: 0000000000011030 0 OBJECT GLOBAL HIDDEN 23 __TMC_END__ - 89: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_registerTMCloneTable - 90: 0000000000000580 0 FUNC GLOBAL HIDDEN 11 _init diff --git a/src/test/incorrect/basicassign2/clang_O2/basicassign2_gtirb.expected b/src/test/incorrect/basicassign2/clang_O2/basicassign2_gtirb.expected index 2ad900977..a68fabce8 100644 --- a/src/test/incorrect/basicassign2/clang_O2/basicassign2_gtirb.expected +++ b/src/test/incorrect/basicassign2/clang_O2/basicassign2_gtirb.expected @@ -7,9 +7,9 @@ var {:extern} R8: bv64; var {:extern} R9: bv64; var {:extern} mem: [bv64]bv8; const {:extern} $secret_addr: bv64; -axiom ($secret_addr == 69688bv64); +axiom ($secret_addr == 131096bv64); const {:extern} $z_addr: bv64; -axiom ($z_addr == 69696bv64); +axiom ($z_addr == 131104bv64); function {:extern} L(mem$in: [bv64]bv8, index: bv64) returns (bool) { (if (index == $z_addr) then true else (if (index == $secret_addr) then false else false)) } @@ -39,11 +39,13 @@ procedure {:extern} rely(); modifies Gamma_mem, mem; ensures (Gamma_mem == old(Gamma_mem)); ensures (mem == old(mem)); - free ensures (memory_load32_le(mem, 1856bv64) == 131073bv32); - free ensures (memory_load64_le(mem, 69064bv64) == 1808bv64); - free ensures (memory_load64_le(mem, 69072bv64) == 1728bv64); - free ensures (memory_load64_le(mem, 69592bv64) == 1812bv64); - free ensures (memory_load64_le(mem, 69672bv64) == 69672bv64); + free ensures (memory_load32_le(mem, 2312bv64) == 131073bv32); + free ensures (memory_load64_le(mem, 130424bv64) == 2256bv64); + free ensures (memory_load64_le(mem, 130432bv64) == 2176bv64); + free ensures (memory_load64_le(mem, 131032bv64) == 131104bv64); + free ensures (memory_load64_le(mem, 131048bv64) == 131096bv64); + free ensures (memory_load64_le(mem, 131056bv64) == 2260bv64); + free ensures (memory_load64_le(mem, 131080bv64) == 131080bv64); procedure {:extern} rely_transitive(); modifies Gamma_mem, mem; @@ -61,40 +63,54 @@ procedure {:extern} rely_reflexive(); procedure {:extern} guarantee_reflexive(); modifies Gamma_mem, mem; -procedure main_1812(); +procedure main(); modifies Gamma_R0, Gamma_R8, Gamma_R9, Gamma_mem, R0, R8, R9, mem; - free requires (memory_load64_le(mem, 69664bv64) == 0bv64); - free requires (memory_load64_le(mem, 69672bv64) == 69672bv64); - free requires (memory_load32_le(mem, 1856bv64) == 131073bv32); - free requires (memory_load64_le(mem, 69064bv64) == 1808bv64); - free requires (memory_load64_le(mem, 69072bv64) == 1728bv64); - free requires (memory_load64_le(mem, 69592bv64) == 1812bv64); - free requires (memory_load64_le(mem, 69672bv64) == 69672bv64); - free ensures (memory_load32_le(mem, 1856bv64) == 131073bv32); - free ensures (memory_load64_le(mem, 69064bv64) == 1808bv64); - free ensures (memory_load64_le(mem, 69072bv64) == 1728bv64); - free ensures (memory_load64_le(mem, 69592bv64) == 1812bv64); - free ensures (memory_load64_le(mem, 69672bv64) == 69672bv64); + free requires (memory_load64_le(mem, 131072bv64) == 0bv64); + free requires (memory_load64_le(mem, 131080bv64) == 131080bv64); + free requires (memory_load32_le(mem, 2312bv64) == 131073bv32); + free requires (memory_load64_le(mem, 130424bv64) == 2256bv64); + free requires (memory_load64_le(mem, 130432bv64) == 2176bv64); + free requires (memory_load64_le(mem, 131032bv64) == 131104bv64); + free requires (memory_load64_le(mem, 131048bv64) == 131096bv64); + free requires (memory_load64_le(mem, 131056bv64) == 2260bv64); + free requires (memory_load64_le(mem, 131080bv64) == 131080bv64); + free ensures (memory_load32_le(mem, 2312bv64) == 131073bv32); + free ensures (memory_load64_le(mem, 130424bv64) == 2256bv64); + free ensures (memory_load64_le(mem, 130432bv64) == 2176bv64); + free ensures (memory_load64_le(mem, 131032bv64) == 131104bv64); + free ensures (memory_load64_le(mem, 131048bv64) == 131096bv64); + free ensures (memory_load64_le(mem, 131056bv64) == 2260bv64); + free ensures (memory_load64_le(mem, 131080bv64) == 131080bv64); -implementation main_1812() +implementation main() { - var Gamma_load8: bool; - var load8: bv64; - main_1812__0__NDJX6ve4TTG0FoXJqQLDfQ: - assume {:captureState "main_1812__0__NDJX6ve4TTG0FoXJqQLDfQ"} true; - R8, Gamma_R8 := 69632bv64, true; - R9, Gamma_R9 := 69632bv64, true; + var $load5: bv64; + var $load6: bv64; + var $load7: bv64; + var Gamma_$load5: bool; + var Gamma_$load6: bool; + var Gamma_$load7: bool; + $main$__0__$D9t2gNJrSmyMH3GAVRe3IQ: + assume {:captureState "$main$__0__$D9t2gNJrSmyMH3GAVRe3IQ"} true; + R8, Gamma_R8 := 126976bv64, true; + R9, Gamma_R9 := 126976bv64, true; R0, Gamma_R0 := 0bv64, true; call rely(); - load8, Gamma_load8 := memory_load64_le(mem, bvadd64(R8, 56bv64)), (gamma_load64(Gamma_mem, bvadd64(R8, 56bv64)) || L(mem, bvadd64(R8, 56bv64))); - R8, Gamma_R8 := load8, Gamma_load8; + $load5, Gamma_$load5 := memory_load64_le(mem, bvadd64(R8, 4072bv64)), (gamma_load64(Gamma_mem, bvadd64(R8, 4072bv64)) || L(mem, bvadd64(R8, 4072bv64))); + R8, Gamma_R8 := $load5, Gamma_$load5; call rely(); - assert (L(mem, bvadd64(R9, 64bv64)) ==> Gamma_R8); - mem, Gamma_mem := memory_store64_le(mem, bvadd64(R9, 64bv64), R8), gamma_store64(Gamma_mem, bvadd64(R9, 64bv64), Gamma_R8); - assume {:captureState "1828_0"} true; - goto main_1812_basil_return; - main_1812_basil_return: - assume {:captureState "main_1812_basil_return"} true; + $load6, Gamma_$load6 := memory_load64_le(mem, R8), (gamma_load64(Gamma_mem, R8) || L(mem, R8)); + R8, Gamma_R8 := $load6, Gamma_$load6; + call rely(); + $load7, Gamma_$load7 := memory_load64_le(mem, bvadd64(R9, 4056bv64)), (gamma_load64(Gamma_mem, bvadd64(R9, 4056bv64)) || L(mem, bvadd64(R9, 4056bv64))); + R9, Gamma_R9 := $load7, Gamma_$load7; + call rely(); + assert (L(mem, R9) ==> Gamma_R8); + mem, Gamma_mem := memory_store64_le(mem, R9, R8), gamma_store64(Gamma_mem, R9, Gamma_R8); + assume {:captureState "2284$0"} true; + goto main_basil_return; + main_basil_return: + assume {:captureState "main_basil_return"} true; return; } diff --git a/src/test/incorrect/basicassign2/clang_pic/basicassign2.adt b/src/test/incorrect/basicassign2/clang_pic/basicassign2.adt deleted file mode 100644 index 8f37cc49f..000000000 --- a/src/test/incorrect/basicassign2/clang_pic/basicassign2.adt +++ /dev/null @@ -1,529 +0,0 @@ -Project(Attrs([Attr("filename","\"clang_pic/basicassign2.out\""), -Attr("image-specification","(declare abi (name str))\n(declare arch (name str))\n(declare base-address (addr int))\n(declare bias (off int))\n(declare bits (size int))\n(declare code-region (addr int) (size int) (off int))\n(declare code-start (addr int))\n(declare entry-point (addr int))\n(declare external-reference (addr int) (name str))\n(declare format (name str))\n(declare is-executable (flag bool))\n(declare is-little-endian (flag bool))\n(declare llvm:base-address (addr int))\n(declare llvm:code-entry (name str) (off int) (size int))\n(declare llvm:coff-import-library (name str))\n(declare llvm:coff-virtual-section-header (name str) (addr int) (size int))\n(declare llvm:elf-program-header (name str) (off int) (size int))\n(declare llvm:elf-program-header-flags (name str) (ld bool) (r bool) \n (w bool) (x bool))\n(declare llvm:elf-virtual-program-header (name str) (addr int) (size int))\n(declare llvm:entry-point (addr int))\n(declare llvm:macho-symbol (name str) (value int))\n(declare llvm:name-reference (at int) (name str))\n(declare llvm:relocation (at int) (addr int))\n(declare llvm:section-entry (name str) (addr int) (size int) (off int))\n(declare llvm:section-flags (name str) (r bool) (w bool) (x bool))\n(declare llvm:segment-command (name str) (off int) (size int))\n(declare llvm:segment-command-flags (name str) (r bool) (w bool) (x bool))\n(declare llvm:symbol-entry (name str) (addr int) (size int) (off int)\n (value int))\n(declare llvm:virtual-segment-command (name str) (addr int) (size int))\n(declare mapped (addr int) (size int) (off int))\n(declare named-region (addr int) (size int) (name str))\n(declare named-symbol (addr int) (name str))\n(declare require (name str))\n(declare section (addr int) (size int))\n(declare segment (addr int) (size int) (r bool) (w bool) (x bool))\n(declare subarch (name str))\n(declare symbol-chunk (addr int) (size int) (root int))\n(declare symbol-value (addr int) (value int))\n(declare system (name str))\n(declare vendor (name str))\n\n(abi unknown)\n(arch aarch64)\n(base-address 0)\n(bias 0)\n(bits 64)\n(code-region 1944 20 1944)\n(code-region 1600 344 1600)\n(code-region 1488 96 1488)\n(code-region 1456 24 1456)\n(code-start 1652)\n(code-start 1600)\n(code-start 1876)\n(entry-point 1600)\n(external-reference 69552 _ITM_deregisterTMCloneTable)\n(external-reference 69560 __cxa_finalize)\n(external-reference 69576 __gmon_start__)\n(external-reference 69600 _ITM_registerTMCloneTable)\n(external-reference 69632 __libc_start_main)\n(external-reference 69640 __cxa_finalize)\n(external-reference 69648 __gmon_start__)\n(external-reference 69656 abort)\n(format elf)\n(is-executable true)\n(is-little-endian true)\n(llvm:base-address 0)\n(llvm:code-entry abort 0 0)\n(llvm:code-entry __cxa_finalize 0 0)\n(llvm:code-entry __libc_start_main 0 0)\n(llvm:code-entry _init 1456 0)\n(llvm:code-entry main 1876 68)\n(llvm:code-entry _start 1600 52)\n(llvm:code-entry abort@GLIBC_2.17 0 0)\n(llvm:code-entry _fini 1944 0)\n(llvm:code-entry __cxa_finalize@GLIBC_2.17 0 0)\n(llvm:code-entry __libc_start_main@GLIBC_2.34 0 0)\n(llvm:code-entry frame_dummy 1872 0)\n(llvm:code-entry __do_global_dtors_aux 1792 0)\n(llvm:code-entry register_tm_clones 1728 0)\n(llvm:code-entry deregister_tm_clones 1680 0)\n(llvm:code-entry call_weak_fn 1652 20)\n(llvm:code-entry .fini 1944 20)\n(llvm:code-entry .text 1600 344)\n(llvm:code-entry .plt 1488 96)\n(llvm:code-entry .init 1456 24)\n(llvm:elf-program-header 08 3512 584)\n(llvm:elf-program-header 07 0 0)\n(llvm:elf-program-header 06 1968 60)\n(llvm:elf-program-header 05 596 68)\n(llvm:elf-program-header 04 3528 480)\n(llvm:elf-program-header 03 3512 632)\n(llvm:elf-program-header 02 0 2216)\n(llvm:elf-program-header 01 568 27)\n(llvm:elf-program-header 00 64 504)\n(llvm:elf-program-header-flags 08 false true false false)\n(llvm:elf-program-header-flags 07 false true true false)\n(llvm:elf-program-header-flags 06 false true false false)\n(llvm:elf-program-header-flags 05 false true false false)\n(llvm:elf-program-header-flags 04 false true true false)\n(llvm:elf-program-header-flags 03 true true true false)\n(llvm:elf-program-header-flags 02 true true false true)\n(llvm:elf-program-header-flags 01 false true false false)\n(llvm:elf-program-header-flags 00 false true false false)\n(llvm:elf-virtual-program-header 08 69048 584)\n(llvm:elf-virtual-program-header 07 0 0)\n(llvm:elf-virtual-program-header 06 1968 60)\n(llvm:elf-virtual-program-header 05 596 68)\n(llvm:elf-virtual-program-header 04 69064 480)\n(llvm:elf-virtual-program-header 03 69048 656)\n(llvm:elf-virtual-program-header 02 0 2216)\n(llvm:elf-virtual-program-header 01 568 27)\n(llvm:elf-virtual-program-header 00 64 504)\n(llvm:entry-point 1600)\n(llvm:name-reference 69656 abort)\n(llvm:name-reference 69648 __gmon_start__)\n(llvm:name-reference 69640 __cxa_finalize)\n(llvm:name-reference 69632 __libc_start_main)\n(llvm:name-reference 69600 _ITM_registerTMCloneTable)\n(llvm:name-reference 69576 __gmon_start__)\n(llvm:name-reference 69560 __cxa_finalize)\n(llvm:name-reference 69552 _ITM_deregisterTMCloneTable)\n(llvm:section-entry .shstrtab 0 259 6977)\n(llvm:section-entry .strtab 0 577 6400)\n(llvm:section-entry .symtab 0 2184 4216)\n(llvm:section-entry .comment 0 71 4144)\n(llvm:section-entry .bss 69680 24 4144)\n(llvm:section-entry .data 69664 16 4128)\n(llvm:section-entry .got.plt 69608 56 4072)\n(llvm:section-entry .got 69544 64 4008)\n(llvm:section-entry .dynamic 69064 480 3528)\n(llvm:section-entry .fini_array 69056 8 3520)\n(llvm:section-entry .init_array 69048 8 3512)\n(llvm:section-entry .eh_frame 2032 184 2032)\n(llvm:section-entry .eh_frame_hdr 1968 60 1968)\n(llvm:section-entry .rodata 1964 4 1964)\n(llvm:section-entry .fini 1944 20 1944)\n(llvm:section-entry .text 1600 344 1600)\n(llvm:section-entry .plt 1488 96 1488)\n(llvm:section-entry .init 1456 24 1456)\n(llvm:section-entry .rela.plt 1360 96 1360)\n(llvm:section-entry .rela.dyn 1120 240 1120)\n(llvm:section-entry .gnu.version_r 1072 48 1072)\n(llvm:section-entry .gnu.version 1054 18 1054)\n(llvm:section-entry .dynstr 912 141 912)\n(llvm:section-entry .dynsym 696 216 696)\n(llvm:section-entry .gnu.hash 664 28 664)\n(llvm:section-entry .note.ABI-tag 632 32 632)\n(llvm:section-entry .note.gnu.build-id 596 36 596)\n(llvm:section-entry .interp 568 27 568)\n(llvm:section-flags .shstrtab true false false)\n(llvm:section-flags .strtab true false false)\n(llvm:section-flags .symtab true false false)\n(llvm:section-flags .comment true false false)\n(llvm:section-flags .bss true true false)\n(llvm:section-flags .data true true false)\n(llvm:section-flags .got.plt true true false)\n(llvm:section-flags .got true true false)\n(llvm:section-flags .dynamic true true false)\n(llvm:section-flags .fini_array true true false)\n(llvm:section-flags .init_array true true false)\n(llvm:section-flags .eh_frame true false false)\n(llvm:section-flags .eh_frame_hdr true false false)\n(llvm:section-flags .rodata true false false)\n(llvm:section-flags .fini true false true)\n(llvm:section-flags .text true false true)\n(llvm:section-flags .plt true false true)\n(llvm:section-flags .init true false true)\n(llvm:section-flags .rela.plt true false false)\n(llvm:section-flags .rela.dyn true false false)\n(llvm:section-flags .gnu.version_r true false false)\n(llvm:section-flags .gnu.version true false false)\n(llvm:section-flags .dynstr true false false)\n(llvm:section-flags .dynsym true false false)\n(llvm:section-flags .gnu.hash true false false)\n(llvm:section-flags .note.ABI-tag true false false)\n(llvm:section-flags .note.gnu.build-id true false false)\n(llvm:section-flags .interp true false false)\n(llvm:symbol-entry abort 0 0 0 0)\n(llvm:symbol-entry __cxa_finalize 0 0 0 0)\n(llvm:symbol-entry __libc_start_main 0 0 0 0)\n(llvm:symbol-entry _init 1456 0 1456 1456)\n(llvm:symbol-entry main 1876 68 1876 1876)\n(llvm:symbol-entry _start 1600 52 1600 1600)\n(llvm:symbol-entry abort@GLIBC_2.17 0 0 0 0)\n(llvm:symbol-entry _fini 1944 0 1944 1944)\n(llvm:symbol-entry __cxa_finalize@GLIBC_2.17 0 0 0 0)\n(llvm:symbol-entry __libc_start_main@GLIBC_2.34 0 0 0 0)\n(llvm:symbol-entry frame_dummy 1872 0 1872 1872)\n(llvm:symbol-entry __do_global_dtors_aux 1792 0 1792 1792)\n(llvm:symbol-entry register_tm_clones 1728 0 1728 1728)\n(llvm:symbol-entry deregister_tm_clones 1680 0 1680 1680)\n(llvm:symbol-entry call_weak_fn 1652 20 1652 1652)\n(mapped 0 2216 0)\n(mapped 69048 632 3512)\n(named-region 0 2216 02)\n(named-region 69048 656 03)\n(named-region 568 27 .interp)\n(named-region 596 36 .note.gnu.build-id)\n(named-region 632 32 .note.ABI-tag)\n(named-region 664 28 .gnu.hash)\n(named-region 696 216 .dynsym)\n(named-region 912 141 .dynstr)\n(named-region 1054 18 .gnu.version)\n(named-region 1072 48 .gnu.version_r)\n(named-region 1120 240 .rela.dyn)\n(named-region 1360 96 .rela.plt)\n(named-region 1456 24 .init)\n(named-region 1488 96 .plt)\n(named-region 1600 344 .text)\n(named-region 1944 20 .fini)\n(named-region 1964 4 .rodata)\n(named-region 1968 60 .eh_frame_hdr)\n(named-region 2032 184 .eh_frame)\n(named-region 69048 8 .init_array)\n(named-region 69056 8 .fini_array)\n(named-region 69064 480 .dynamic)\n(named-region 69544 64 .got)\n(named-region 69608 56 .got.plt)\n(named-region 69664 16 .data)\n(named-region 69680 24 .bss)\n(named-region 0 71 .comment)\n(named-region 0 2184 .symtab)\n(named-region 0 577 .strtab)\n(named-region 0 259 .shstrtab)\n(named-symbol 1652 call_weak_fn)\n(named-symbol 1680 deregister_tm_clones)\n(named-symbol 1728 register_tm_clones)\n(named-symbol 1792 __do_global_dtors_aux)\n(named-symbol 1872 frame_dummy)\n(named-symbol 0 __libc_start_main@GLIBC_2.34)\n(named-symbol 0 __cxa_finalize@GLIBC_2.17)\n(named-symbol 1944 _fini)\n(named-symbol 0 abort@GLIBC_2.17)\n(named-symbol 1600 _start)\n(named-symbol 1876 main)\n(named-symbol 1456 _init)\n(named-symbol 0 __libc_start_main)\n(named-symbol 0 __cxa_finalize)\n(named-symbol 0 abort)\n(require libc.so.6)\n(section 568 27)\n(section 596 36)\n(section 632 32)\n(section 664 28)\n(section 696 216)\n(section 912 141)\n(section 1054 18)\n(section 1072 48)\n(section 1120 240)\n(section 1360 96)\n(section 1456 24)\n(section 1488 96)\n(section 1600 344)\n(section 1944 20)\n(section 1964 4)\n(section 1968 60)\n(section 2032 184)\n(section 69048 8)\n(section 69056 8)\n(section 69064 480)\n(section 69544 64)\n(section 69608 56)\n(section 69664 16)\n(section 69680 24)\n(section 0 71)\n(section 0 2184)\n(section 0 577)\n(section 0 259)\n(segment 0 2216 true false true)\n(segment 69048 656 true true false)\n(subarch v8)\n(symbol-chunk 1652 20 1652)\n(symbol-chunk 1600 52 1600)\n(symbol-chunk 1876 68 1876)\n(symbol-value 1652 1652)\n(symbol-value 1680 1680)\n(symbol-value 1728 1728)\n(symbol-value 1792 1792)\n(symbol-value 1872 1872)\n(symbol-value 1944 1944)\n(symbol-value 1600 1600)\n(symbol-value 1876 1876)\n(symbol-value 1456 1456)\n(symbol-value 0 0)\n(system \"\")\n(vendor \"\")\n"), -Attr("abi-name","\"aarch64-linux-gnu-elf\"")]), -Sections([Section(".shstrtab", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x40\x06\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x48\x1c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x38\x00\x09\x00\x40\x00\x1d\x00\x1c\x00\x06\x00\x00\x00\x04\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x04\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xa8\x08\x00\x00\x00\x00\x00\x00\xa8\x08\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x01\x00\x00\x00\x06\x00\x00\x00\xb8\x0d\x00\x00\x00\x00\x00\x00\xb8\x0d\x01\x00\x00\x00\x00\x00\xb8\x0d\x01"), -Section(".strtab", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x40\x06\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x48\x1c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x38\x00\x09\x00\x40\x00\x1d\x00\x1c\x00\x06\x00\x00\x00\x04\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x04\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xa8\x08\x00\x00\x00\x00\x00\x00\xa8\x08\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x01\x00\x00\x00\x06\x00\x00\x00\xb8\x0d\x00\x00\x00\x00\x00\x00\xb8\x0d\x01\x00\x00\x00\x00\x00\xb8\x0d\x01\x00\x00\x00\x00\x00\x78\x02\x00\x00\x00\x00\x00\x00\x90\x02\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x02\x00\x00\x00\x06\x00\x00\x00\xc8\x0d\x00\x00\x00\x00\x00\x00\xc8\x0d\x01\x00\x00\x00\x00\x00\xc8\x0d\x01\x00\x00\x00\x00\x00\xe0\x01\x00\x00\x00\x00\x00\x00\xe0\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x04\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x50\xe5\x74\x64\x04\x00\x00\x00\xb0\x07\x00\x00\x00\x00\x00\x00\xb0\x07\x00\x00\x00\x00\x00\x00\xb0\x07\x00\x00\x00\x00\x00\x00\x3c\x00\x00\x00\x00\x00\x00\x00\x3c\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x51\xe5\x74\x64\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x52\xe5\x74\x64\x04\x00\x00\x00\xb8\x0d\x00\x00\x00\x00\x00\x00\xb8\x0d\x01\x00\x00\x00\x00\x00\xb8\x0d\x01\x00\x00\x00\x00\x00\x48\x02\x00\x00\x00\x00\x00\x00\x48\x02\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x2f\x6c\x69\x62\x2f\x6c\x64\x2d\x6c"), -Section(".symtab", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x40\x06\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x48\x1c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x38\x00\x09\x00\x40\x00\x1d\x00\x1c\x00\x06\x00\x00\x00\x04\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x04\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xa8\x08\x00\x00\x00\x00\x00\x00\xa8\x08\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x01\x00\x00\x00\x06\x00\x00\x00\xb8\x0d\x00\x00\x00\x00\x00\x00\xb8\x0d\x01\x00\x00\x00\x00\x00\xb8\x0d\x01\x00\x00\x00\x00\x00\x78\x02\x00\x00\x00\x00\x00\x00\x90\x02\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x02\x00\x00\x00\x06\x00\x00\x00\xc8\x0d\x00\x00\x00\x00\x00\x00\xc8\x0d\x01\x00\x00\x00\x00\x00\xc8\x0d\x01\x00\x00\x00\x00\x00\xe0\x01\x00\x00\x00\x00\x00\x00\xe0\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x04\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x50\xe5\x74\x64\x04\x00\x00\x00\xb0\x07\x00\x00\x00\x00\x00\x00\xb0\x07\x00\x00\x00\x00\x00\x00\xb0\x07\x00\x00\x00\x00\x00\x00\x3c\x00\x00\x00\x00\x00\x00\x00\x3c\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x51\xe5\x74\x64\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x52\xe5\x74\x64\x04\x00\x00\x00\xb8\x0d\x00\x00\x00\x00\x00\x00\xb8\x0d\x01\x00\x00\x00\x00\x00\xb8\x0d\x01\x00\x00\x00\x00\x00\x48\x02\x00\x00\x00\x00\x00\x00\x48\x02\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x2f\x6c\x69\x62\x2f\x6c\x64\x2d\x6c\x69\x6e\x75\x78\x2d\x61\x61\x72\x63\x68\x36\x34\x2e\x73\x6f\x2e\x31\x00\x00\x04\x00\x00\x00\x14\x00\x00\x00\x03\x00\x00\x00\x47\x4e\x55\x00\xb2\xcc\x3e\x0c\xb2\x6e\xf9\xb3\xf8\x41\xb0\xd9\xb3\xac\x6f\x21\x76\xa6\x1f\xb3\x04\x00\x00\x00\x10\x00\x00\x00\x01\x00\x00\x00\x47\x4e\x55\x00\x00\x00\x00\x00\x03\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x01\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x0b\x00\xb0\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x17\x00\x20\x10\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x48\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x22\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x22\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x73\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5f\x5f\x63\x78\x61\x5f\x66\x69\x6e\x61\x6c\x69\x7a\x65\x00\x5f\x5f\x6c\x69\x62\x63\x5f\x73\x74\x61\x72\x74\x5f\x6d\x61\x69\x6e\x00\x61\x62\x6f\x72\x74\x00\x6c\x69\x62\x63\x2e\x73\x6f\x2e\x36\x00\x47\x4c\x49\x42\x43\x5f\x32\x2e\x31\x37\x00\x47\x4c\x49\x42\x43\x5f\x32\x2e\x33\x34\x00\x5f\x49\x54\x4d\x5f\x64\x65\x72\x65\x67\x69\x73\x74\x65\x72\x54\x4d\x43\x6c\x6f\x6e\x65\x54\x61\x62\x6c\x65\x00\x5f\x5f\x67\x6d\x6f\x6e\x5f\x73\x74\x61\x72\x74\x5f\x5f\x00\x5f\x49\x54\x4d\x5f\x72\x65\x67\x69\x73\x74\x65\x72\x54\x4d\x43\x6c\x6f\x6e\x65\x54\x61\x62\x6c\x65\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x01\x00\x03\x00\x01\x00\x03\x00\x01\x00\x01\x00\x02\x00\x28\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x97\x91\x96\x06\x00\x00\x03\x00\x32\x00\x00\x00\x10\x00\x00\x00\xb4\x91\x96\x06\x00\x00\x02\x00\x3d\x00\x00\x00\x00\x00\x00\x00\xb8\x0d\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x50\x07\x00\x00\x00\x00\x00\x00\xc0\x0d\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\xc0\x0f\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x40\x10\x01\x00\x00\x00\x00\x00\xd0\x0f\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x38\x10\x01\x00\x00\x00\x00\x00\xd8\x0f\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x54\x07\x00\x00\x00\x00\x00\x00\x28\x10\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x28\x10\x01\x00\x00\x00\x00\x00\xb0\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xb8\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xc8\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe0\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x08\x10\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x10\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x18\x10\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1f\x20\x03\xd5\xfd\x7b\xbf\xa9\xfd\x03\x00\x91\x2e\x00\x00\x94\xfd\x7b\xc1\xa8\xc0\x03\x5f\xd6\x00\x00\x00\x00\x00\x00\x00\x00\xf0\x7b\xbf\xa9\x90\x00\x00\x90\x11\xfe\x47\xf9\x10\xe2\x3f\x91\x20\x02\x1f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x90\x00\x00\xb0\x11\x02\x40\xf9\x10\x02\x00\x91\x20\x02\x1f\xd6\x90\x00\x00\xb0\x11\x06\x40\xf9\x10\x22\x00\x91\x20\x02\x1f\xd6\x90\x00\x00\xb0\x11\x0a\x40\xf9\x10\x42\x00\x91\x20\x02\x1f\xd6\x90\x00\x00\xb0\x11\x0e\x40\xf9\x10\x62\x00\x91\x20\x02\x1f\xd6\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1f\x20\x03\xd5\x1d\x00\x80\xd2\x1e\x00\x80\xd2\xe5\x03\x00\xaa\xe1\x03\x40\xf9\xe2\x23\x00\x91\xe6\x03\x00\x91\x80\x00\x00\x90\x00\xec\x47\xf9\x03\x00\x80\xd2\x04\x00\x80\xd2\xe1\xff\xff\x97\xec\xff\xff\x97\x80\x00\x00\x90\x00\xe4\x47\xf9\x40\x00\x00\xb4\xe4\xff\xff\x17\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x80\x00\x00\xb0\x00\xc0\x00\x91\x81\x00\x00\xb0\x21\xc0\x00\x91\x3f\x00\x00\xeb\xc0\x00\x00\x54\x81\x00\x00\x90\x21\xd8\x47\xf9\x61\x00\x00\xb4\xf0\x03\x01\xaa\x00\x02\x1f\xd6\xc0\x03\x5f\xd6\x80\x00\x00\xb0\x00\xc0\x00\x91\x81\x00\x00\xb0\x21\xc0\x00\x91\x21\x00\x00\xcb\x22\xfc\x7f\xd3\x41\x0c\x81\x8b\x21\xfc\x41\x93\xc1\x00\x00\xb4\x82\x00\x00\x90\x42\xf0\x47\xf9\x62\x00\x00\xb4\xf0\x03\x02\xaa\x00\x02\x1f\xd6\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\xfd\x7b\xbe\xa9\xfd\x03\x00\x91\xf3\x0b\x00\xf9\x93\x00\x00\xb0\x60\xc2\x40\x39\x40\x01\x00\x35\x80\x00\x00\x90\x00\xdc\x47\xf9\x80\x00\x00\xb4\x80\x00\x00\xb0\x00\x14\x40\xf9\xb5\xff\xff\x97\xd8\xff\xff\x97\x20\x00\x80\x52\x60\xc2\x00\x39\xf3\x0b\x40\xf9\xfd\x7b\xc2\xa8\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\xdc\xff\xff\x17\xff\x43\x00\xd1\x88\x00\x00\x90\x08\xe9\x47\xf9\x09\x01\x40\xf9\xe9\x07\x00\xf9\xff\x07\x00\xf9\xea\x07\x40\xf9\x89\x00\x00\x90\x29\xe1\x47\xf9\x2a\x01\x00\xf9\x08\x01\x40\xf9\xe8\x07\x00\xf9\xe8\x07\x40\xf9\x28\x01\x00\xf9\xe0\x03\x1f\x2a\xff\x43\x00\x91\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\xfd\x7b\xbf\xa9\xfd\x03\x00\x91\xfd\x7b\xc1\xa8\xc0\x03\x5f\xd6\x01\x00\x02\x00\x01\x1b\x03\x3b\x3c\x00\x00\x00\x06\x00\x00\x00\x90\xfe\xff\xff\x54\x00\x00\x00\xe0\xfe\xff\xff\x68\x00\x00\x00\x10\xff\xff\xff\x7c\x00\x00\x00\x50\xff\xff\xff\x90\x00\x00\x00\xa0\xff\xff\xff\xb4\x00\x00\x00\xa4\xff\xff\xff\xdc\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x01\x7a\x52\x00\x04\x78\x1e\x01\x1b\x0c\x1f\x00\x10\x00\x00\x00\x18\x00\x00\x00\x34\xfe\xff\xff\x34\x00\x00\x00\x00\x41\x07\x1e\x10\x00\x00\x00\x2c\x00\x00\x00\x70\xfe\xff\xff\x30\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x40\x00\x00\x00\x8c\xfe\xff\xff\x3c\x00\x00\x00\x00\x00\x00\x00\x20\x00\x00\x00\x54\x00\x00\x00\xb8\xfe\xff\xff\x48\x00\x00\x00\x00\x41\x0e\x20\x9d\x04\x9e\x03\x42\x93\x02\x4e\xde\xdd\xd3\x0e\x00\x00\x00\x00\x10\x00\x00\x00\x78\x00\x00\x00\xe4\xfe\xff\xff\x04\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x01\x7a\x52\x00\x01\x7c\x1e\x01"), -Section(".comment", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x40\x06\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x48\x1c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x38\x00\x09\x00\x40\x00\x1d\x00\x1c\x00\x06\x00\x00\x00\x04\x00\x00"), -Section(".interp", 0x238, "\x2f\x6c\x69\x62\x2f\x6c\x64\x2d\x6c\x69\x6e\x75\x78\x2d\x61\x61\x72\x63\x68\x36\x34\x2e\x73\x6f\x2e\x31\x00"), -Section(".note.gnu.build-id", 0x254, "\x04\x00\x00\x00\x14\x00\x00\x00\x03\x00\x00\x00\x47\x4e\x55\x00\xb2\xcc\x3e\x0c\xb2\x6e\xf9\xb3\xf8\x41\xb0\xd9\xb3\xac\x6f\x21\x76\xa6\x1f\xb3"), -Section(".note.ABI-tag", 0x278, "\x04\x00\x00\x00\x10\x00\x00\x00\x01\x00\x00\x00\x47\x4e\x55\x00\x00\x00\x00\x00\x03\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00"), -Section(".gnu.hash", 0x298, "\x01\x00\x00\x00\x01\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".dynsym", 0x2B8, "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x0b\x00\xb0\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x17\x00\x20\x10\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x48\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x22\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x22\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x73\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".dynstr", 0x390, "\x00\x5f\x5f\x63\x78\x61\x5f\x66\x69\x6e\x61\x6c\x69\x7a\x65\x00\x5f\x5f\x6c\x69\x62\x63\x5f\x73\x74\x61\x72\x74\x5f\x6d\x61\x69\x6e\x00\x61\x62\x6f\x72\x74\x00\x6c\x69\x62\x63\x2e\x73\x6f\x2e\x36\x00\x47\x4c\x49\x42\x43\x5f\x32\x2e\x31\x37\x00\x47\x4c\x49\x42\x43\x5f\x32\x2e\x33\x34\x00\x5f\x49\x54\x4d\x5f\x64\x65\x72\x65\x67\x69\x73\x74\x65\x72\x54\x4d\x43\x6c\x6f\x6e\x65\x54\x61\x62\x6c\x65\x00\x5f\x5f\x67\x6d\x6f\x6e\x5f\x73\x74\x61\x72\x74\x5f\x5f\x00\x5f\x49\x54\x4d\x5f\x72\x65\x67\x69\x73\x74\x65\x72\x54\x4d\x43\x6c\x6f\x6e\x65\x54\x61\x62\x6c\x65\x00"), -Section(".gnu.version", 0x41E, "\x00\x00\x00\x00\x00\x00\x02\x00\x01\x00\x03\x00\x01\x00\x03\x00\x01\x00"), -Section(".gnu.version_r", 0x430, "\x01\x00\x02\x00\x28\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x97\x91\x96\x06\x00\x00\x03\x00\x32\x00\x00\x00\x10\x00\x00\x00\xb4\x91\x96\x06\x00\x00\x02\x00\x3d\x00\x00\x00\x00\x00\x00\x00"), -Section(".rela.dyn", 0x460, "\xb8\x0d\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x50\x07\x00\x00\x00\x00\x00\x00\xc0\x0d\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\xc0\x0f\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x40\x10\x01\x00\x00\x00\x00\x00\xd0\x0f\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x38\x10\x01\x00\x00\x00\x00\x00\xd8\x0f\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x54\x07\x00\x00\x00\x00\x00\x00\x28\x10\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x28\x10\x01\x00\x00\x00\x00\x00\xb0\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xb8\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xc8\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe0\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".rela.plt", 0x550, "\x00\x10\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x08\x10\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x10\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x18\x10\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".init", 0x5B0, "\x1f\x20\x03\xd5\xfd\x7b\xbf\xa9\xfd\x03\x00\x91\x2e\x00\x00\x94\xfd\x7b\xc1\xa8\xc0\x03\x5f\xd6"), -Section(".plt", 0x5D0, "\xf0\x7b\xbf\xa9\x90\x00\x00\x90\x11\xfe\x47\xf9\x10\xe2\x3f\x91\x20\x02\x1f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x90\x00\x00\xb0\x11\x02\x40\xf9\x10\x02\x00\x91\x20\x02\x1f\xd6\x90\x00\x00\xb0\x11\x06\x40\xf9\x10\x22\x00\x91\x20\x02\x1f\xd6\x90\x00\x00\xb0\x11\x0a\x40\xf9\x10\x42\x00\x91\x20\x02\x1f\xd6\x90\x00\x00\xb0\x11\x0e\x40\xf9\x10\x62\x00\x91\x20\x02\x1f\xd6"), -Section(".fini", 0x798, "\x1f\x20\x03\xd5\xfd\x7b\xbf\xa9\xfd\x03\x00\x91\xfd\x7b\xc1\xa8\xc0\x03\x5f\xd6"), -Section(".rodata", 0x7AC, "\x01\x00\x02\x00"), -Section(".eh_frame_hdr", 0x7B0, "\x01\x1b\x03\x3b\x3c\x00\x00\x00\x06\x00\x00\x00\x90\xfe\xff\xff\x54\x00\x00\x00\xe0\xfe\xff\xff\x68\x00\x00\x00\x10\xff\xff\xff\x7c\x00\x00\x00\x50\xff\xff\xff\x90\x00\x00\x00\xa0\xff\xff\xff\xb4\x00\x00\x00\xa4\xff\xff\xff\xdc\x00\x00\x00"), -Section(".eh_frame", 0x7F0, "\x10\x00\x00\x00\x00\x00\x00\x00\x01\x7a\x52\x00\x04\x78\x1e\x01\x1b\x0c\x1f\x00\x10\x00\x00\x00\x18\x00\x00\x00\x34\xfe\xff\xff\x34\x00\x00\x00\x00\x41\x07\x1e\x10\x00\x00\x00\x2c\x00\x00\x00\x70\xfe\xff\xff\x30\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x40\x00\x00\x00\x8c\xfe\xff\xff\x3c\x00\x00\x00\x00\x00\x00\x00\x20\x00\x00\x00\x54\x00\x00\x00\xb8\xfe\xff\xff\x48\x00\x00\x00\x00\x41\x0e\x20\x9d\x04\x9e\x03\x42\x93\x02\x4e\xde\xdd\xd3\x0e\x00\x00\x00\x00\x10\x00\x00\x00\x78\x00\x00\x00\xe4\xfe\xff\xff\x04\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x01\x7a\x52\x00\x01\x7c\x1e\x01\x1b\x0c\x1f\x00\x14\x00\x00\x00\x18\x00\x00\x00\xc0\xfe\xff\xff\x44\x00\x00\x00\x00\x44\x0e\x10\x7c\x0e\x00\x00\x00\x00\x00\x00"), -Section(".fini_array", 0x10DC0, "\x00\x07\x00\x00\x00\x00\x00\x00"), -Section(".dynamic", 0x10DC8, "\x01\x00\x00\x00\x00\x00\x00\x00\x28\x00\x00\x00\x00\x00\x00\x00\x0c\x00\x00\x00\x00\x00\x00\x00\xb0\x05\x00\x00\x00\x00\x00\x00\x0d\x00\x00\x00\x00\x00\x00\x00\x98\x07\x00\x00\x00\x00\x00\x00\x19\x00\x00\x00\x00\x00\x00\x00\xb8\x0d\x01\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x1a\x00\x00\x00\x00\x00\x00\x00\xc0\x0d\x01\x00\x00\x00\x00\x00\x1c\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\xf5\xfe\xff\x6f\x00\x00\x00\x00\x98\x02\x00\x00\x00\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x90\x03\x00\x00\x00\x00\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\xb8\x02\x00\x00\x00\x00\x00\x00\x0a\x00\x00\x00\x00\x00\x00\x00\x8d\x00\x00\x00\x00\x00\x00\x00\x0b\x00\x00\x00\x00\x00\x00\x00\x18\x00\x00\x00\x00\x00\x00\x00\x15\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\xe8\x0f\x01\x00\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x60\x00\x00\x00\x00\x00\x00\x00\x14\x00\x00\x00\x00\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x17\x00\x00\x00\x00\x00\x00\x00\x50\x05\x00\x00\x00\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x60\x04\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\xf0\x00\x00\x00\x00\x00\x00\x00\x09\x00\x00\x00\x00\x00\x00\x00\x18\x00\x00\x00\x00\x00\x00\x00\xfb\xff\xff\x6f\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\xfe\xff\xff\x6f\x00\x00\x00\x00\x30\x04\x00\x00\x00\x00\x00\x00\xff\xff\xff\x6f\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\xf0\xff\xff\x6f\x00\x00\x00\x00\x1e\x04\x00\x00\x00\x00\x00\x00\xf9\xff\xff\x6f\x00\x00\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".init_array", 0x10DB8, "\x50\x07\x00\x00\x00\x00\x00\x00"), -Section(".got", 0x10FA8, "\xc8\x0d\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x10\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x38\x10\x01\x00\x00\x00\x00\x00\x54\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".got.plt", 0x10FE8, "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xd0\x05\x00\x00\x00\x00\x00\x00\xd0\x05\x00\x00\x00\x00\x00\x00\xd0\x05\x00\x00\x00\x00\x00\x00\xd0\x05\x00\x00\x00\x00\x00\x00"), -Section(".data", 0x11020, "\x00\x00\x00\x00\x00\x00\x00\x00\x28\x10\x01\x00\x00\x00\x00\x00"), -Section(".text", 0x640, "\x1f\x20\x03\xd5\x1d\x00\x80\xd2\x1e\x00\x80\xd2\xe5\x03\x00\xaa\xe1\x03\x40\xf9\xe2\x23\x00\x91\xe6\x03\x00\x91\x80\x00\x00\x90\x00\xec\x47\xf9\x03\x00\x80\xd2\x04\x00\x80\xd2\xe1\xff\xff\x97\xec\xff\xff\x97\x80\x00\x00\x90\x00\xe4\x47\xf9\x40\x00\x00\xb4\xe4\xff\xff\x17\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x80\x00\x00\xb0\x00\xc0\x00\x91\x81\x00\x00\xb0\x21\xc0\x00\x91\x3f\x00\x00\xeb\xc0\x00\x00\x54\x81\x00\x00\x90\x21\xd8\x47\xf9\x61\x00\x00\xb4\xf0\x03\x01\xaa\x00\x02\x1f\xd6\xc0\x03\x5f\xd6\x80\x00\x00\xb0\x00\xc0\x00\x91\x81\x00\x00\xb0\x21\xc0\x00\x91\x21\x00\x00\xcb\x22\xfc\x7f\xd3\x41\x0c\x81\x8b\x21\xfc\x41\x93\xc1\x00\x00\xb4\x82\x00\x00\x90\x42\xf0\x47\xf9\x62\x00\x00\xb4\xf0\x03\x02\xaa\x00\x02\x1f\xd6\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\xfd\x7b\xbe\xa9\xfd\x03\x00\x91\xf3\x0b\x00\xf9\x93\x00\x00\xb0\x60\xc2\x40\x39\x40\x01\x00\x35\x80\x00\x00\x90\x00\xdc\x47\xf9\x80\x00\x00\xb4\x80\x00\x00\xb0\x00\x14\x40\xf9\xb5\xff\xff\x97\xd8\xff\xff\x97\x20\x00\x80\x52\x60\xc2\x00\x39\xf3\x0b\x40\xf9\xfd\x7b\xc2\xa8\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\xdc\xff\xff\x17\xff\x43\x00\xd1\x88\x00\x00\x90\x08\xe9\x47\xf9\x09\x01\x40\xf9\xe9\x07\x00\xf9\xff\x07\x00\xf9\xea\x07\x40\xf9\x89\x00\x00\x90\x29\xe1\x47\xf9\x2a\x01\x00\xf9\x08\x01\x40\xf9\xe8\x07\x00\xf9\xe8\x07\x40\xf9\x28\x01\x00\xf9\xe0\x03\x1f\x2a\xff\x43\x00\x91\xc0\x03\x5f\xd6")]), -Memmap([Annotation(Region(0x0,0x8A7), Attr("segment","02 0 2216")), -Annotation(Region(0x640,0x673), Attr("symbol","\"_start\"")), -Annotation(Region(0x0,0x102), Attr("section","\".shstrtab\"")), -Annotation(Region(0x0,0x240), Attr("section","\".strtab\"")), -Annotation(Region(0x0,0x887), Attr("section","\".symtab\"")), -Annotation(Region(0x0,0x46), Attr("section","\".comment\"")), -Annotation(Region(0x238,0x252), Attr("section","\".interp\"")), -Annotation(Region(0x254,0x277), Attr("section","\".note.gnu.build-id\"")), -Annotation(Region(0x278,0x297), Attr("section","\".note.ABI-tag\"")), -Annotation(Region(0x298,0x2B3), Attr("section","\".gnu.hash\"")), -Annotation(Region(0x2B8,0x38F), Attr("section","\".dynsym\"")), -Annotation(Region(0x390,0x41C), Attr("section","\".dynstr\"")), -Annotation(Region(0x41E,0x42F), Attr("section","\".gnu.version\"")), -Annotation(Region(0x430,0x45F), Attr("section","\".gnu.version_r\"")), -Annotation(Region(0x460,0x54F), Attr("section","\".rela.dyn\"")), -Annotation(Region(0x550,0x5AF), Attr("section","\".rela.plt\"")), -Annotation(Region(0x5B0,0x5C7), Attr("section","\".init\"")), -Annotation(Region(0x5D0,0x62F), Attr("section","\".plt\"")), -Annotation(Region(0x5B0,0x5C7), Attr("code-region","()")), -Annotation(Region(0x5D0,0x62F), Attr("code-region","()")), -Annotation(Region(0x640,0x673), Attr("symbol-info","_start 0x640 52")), -Annotation(Region(0x674,0x687), Attr("symbol","\"call_weak_fn\"")), -Annotation(Region(0x674,0x687), Attr("symbol-info","call_weak_fn 0x674 20")), -Annotation(Region(0x754,0x797), Attr("symbol","\"main\"")), -Annotation(Region(0x754,0x797), Attr("symbol-info","main 0x754 68")), -Annotation(Region(0x798,0x7AB), Attr("section","\".fini\"")), -Annotation(Region(0x7AC,0x7AF), Attr("section","\".rodata\"")), -Annotation(Region(0x7B0,0x7EB), Attr("section","\".eh_frame_hdr\"")), -Annotation(Region(0x7F0,0x8A7), Attr("section","\".eh_frame\"")), -Annotation(Region(0x10DB8,0x1102F), Attr("segment","03 0x10DB8 656")), -Annotation(Region(0x10DC0,0x10DC7), Attr("section","\".fini_array\"")), -Annotation(Region(0x10DC8,0x10FA7), Attr("section","\".dynamic\"")), -Annotation(Region(0x10DB8,0x10DBF), Attr("section","\".init_array\"")), -Annotation(Region(0x10FA8,0x10FE7), Attr("section","\".got\"")), -Annotation(Region(0x10FE8,0x1101F), Attr("section","\".got.plt\"")), -Annotation(Region(0x11020,0x1102F), Attr("section","\".data\"")), -Annotation(Region(0x640,0x797), Attr("section","\".text\"")), -Annotation(Region(0x640,0x797), Attr("code-region","()")), -Annotation(Region(0x798,0x7AB), Attr("code-region","()"))]), -Program(Tid(1_456, "%000005b0"), Attrs([]), - Subs([Sub(Tid(1_406, "@__cxa_finalize"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x600"), -Attr("stub","()")]), "__cxa_finalize", Args([Arg(Tid(1_457, "%000005b1"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("__cxa_finalize_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(918, "@__cxa_finalize"), - Attrs([Attr("address","0x600")]), Phis([]), -Defs([Def(Tid(1_166, "%0000048e"), Attrs([Attr("address","0x600"), -Attr("insn","adrp x16, #69632")]), Var("R16",Imm(64)), Int(69632,64)), -Def(Tid(1_173, "%00000495"), Attrs([Attr("address","0x604"), -Attr("insn","ldr x17, [x16, #0x8]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(1_179, "%0000049b"), Attrs([Attr("address","0x608"), -Attr("insn","add x16, x16, #0x8")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(8,64)))]), Jmps([Call(Tid(1_184, "%000004a0"), - Attrs([Attr("address","0x60C"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), -Sub(Tid(1_407, "@__do_global_dtors_aux"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x700")]), - "__do_global_dtors_aux", Args([Arg(Tid(1_458, "%000005b2"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("__do_global_dtors_aux_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(658, "@__do_global_dtors_aux"), - Attrs([Attr("address","0x700")]), Phis([]), Defs([Def(Tid(662, "%00000296"), - Attrs([Attr("address","0x700"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("#3",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(18446744073709551584,64))), -Def(Tid(668, "%0000029c"), Attrs([Attr("address","0x700"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("#3",Imm(64)),Var("R29",Imm(64)),LittleEndian(),64)), -Def(Tid(674, "%000002a2"), Attrs([Attr("address","0x700"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("#3",Imm(64)),Int(8,64)),Var("R30",Imm(64)),LittleEndian(),64)), -Def(Tid(678, "%000002a6"), Attrs([Attr("address","0x700"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("R31",Imm(64)), -Var("#3",Imm(64))), Def(Tid(684, "%000002ac"), - Attrs([Attr("address","0x704"), Attr("insn","mov x29, sp")]), - Var("R29",Imm(64)), Var("R31",Imm(64))), Def(Tid(692, "%000002b4"), - Attrs([Attr("address","0x708"), Attr("insn","str x19, [sp, #0x10]")]), - Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(16,64)),Var("R19",Imm(64)),LittleEndian(),64)), -Def(Tid(697, "%000002b9"), Attrs([Attr("address","0x70C"), -Attr("insn","adrp x19, #69632")]), Var("R19",Imm(64)), Int(69632,64)), -Def(Tid(704, "%000002c0"), Attrs([Attr("address","0x710"), -Attr("insn","ldrb w0, [x19, #0x30]")]), Var("R0",Imm(64)), -UNSIGNED(64,Load(Var("mem",Mem(64,8)),PLUS(Var("R19",Imm(64)),Int(48,64)),LittleEndian(),8)))]), -Jmps([Goto(Tid(711, "%000002c7"), Attrs([Attr("address","0x714"), -Attr("insn","cbnz w0, #0x28")]), - NEQ(Extract(31,0,Var("R0",Imm(64))),Int(0,32)), -Direct(Tid(709, "%000002c5"))), Goto(Tid(1_446, "%000005a6"), Attrs([]), - Int(1,1), Direct(Tid(863, "%0000035f")))])), Blk(Tid(863, "%0000035f"), - Attrs([Attr("address","0x718")]), Phis([]), Defs([Def(Tid(866, "%00000362"), - Attrs([Attr("address","0x718"), Attr("insn","adrp x0, #65536")]), - Var("R0",Imm(64)), Int(65536,64)), Def(Tid(873, "%00000369"), - Attrs([Attr("address","0x71C"), Attr("insn","ldr x0, [x0, #0xfb8]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(4024,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(879, "%0000036f"), Attrs([Attr("address","0x720"), -Attr("insn","cbz x0, #0x10")]), EQ(Var("R0",Imm(64)),Int(0,64)), -Direct(Tid(877, "%0000036d"))), Goto(Tid(1_447, "%000005a7"), Attrs([]), - Int(1,1), Direct(Tid(902, "%00000386")))])), Blk(Tid(902, "%00000386"), - Attrs([Attr("address","0x724")]), Phis([]), Defs([Def(Tid(905, "%00000389"), - Attrs([Attr("address","0x724"), Attr("insn","adrp x0, #69632")]), - Var("R0",Imm(64)), Int(69632,64)), Def(Tid(912, "%00000390"), - Attrs([Attr("address","0x728"), Attr("insn","ldr x0, [x0, #0x28]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(40,64)),LittleEndian(),64)), -Def(Tid(917, "%00000395"), Attrs([Attr("address","0x72C"), -Attr("insn","bl #-0x12c")]), Var("R30",Imm(64)), Int(1840,64))]), -Jmps([Call(Tid(920, "%00000398"), Attrs([Attr("address","0x72C"), -Attr("insn","bl #-0x12c")]), Int(1,1), -(Direct(Tid(1_406, "@__cxa_finalize")),Direct(Tid(877, "%0000036d"))))])), -Blk(Tid(877, "%0000036d"), Attrs([Attr("address","0x730")]), Phis([]), -Defs([Def(Tid(885, "%00000375"), Attrs([Attr("address","0x730"), -Attr("insn","bl #-0xa0")]), Var("R30",Imm(64)), Int(1844,64))]), -Jmps([Call(Tid(887, "%00000377"), Attrs([Attr("address","0x730"), -Attr("insn","bl #-0xa0")]), Int(1,1), -(Direct(Tid(1_420, "@deregister_tm_clones")),Direct(Tid(889, "%00000379"))))])), -Blk(Tid(889, "%00000379"), Attrs([Attr("address","0x734")]), Phis([]), -Defs([Def(Tid(892, "%0000037c"), Attrs([Attr("address","0x734"), -Attr("insn","mov w0, #0x1")]), Var("R0",Imm(64)), Int(1,64)), -Def(Tid(900, "%00000384"), Attrs([Attr("address","0x738"), -Attr("insn","strb w0, [x19, #0x30]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R19",Imm(64)),Int(48,64)),Extract(7,0,Var("R0",Imm(64))),LittleEndian(),8))]), -Jmps([Goto(Tid(1_448, "%000005a8"), Attrs([]), Int(1,1), -Direct(Tid(709, "%000002c5")))])), Blk(Tid(709, "%000002c5"), - Attrs([Attr("address","0x73C")]), Phis([]), Defs([Def(Tid(719, "%000002cf"), - Attrs([Attr("address","0x73C"), Attr("insn","ldr x19, [sp, #0x10]")]), - Var("R19",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(16,64)),LittleEndian(),64)), -Def(Tid(726, "%000002d6"), Attrs([Attr("address","0x740"), -Attr("insn","ldp x29, x30, [sp], #0x20")]), Var("R29",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(731, "%000002db"), Attrs([Attr("address","0x740"), -Attr("insn","ldp x29, x30, [sp], #0x20")]), Var("R30",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(735, "%000002df"), Attrs([Attr("address","0x740"), -Attr("insn","ldp x29, x30, [sp], #0x20")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(32,64)))]), Jmps([Call(Tid(740, "%000002e4"), - Attrs([Attr("address","0x744"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), Sub(Tid(1_411, "@__libc_start_main"), - Attrs([Attr("c.proto","signed (*)(signed (*)(signed , char** , char** );* main, signed , char** , \nvoid* auxv)"), -Attr("address","0x5F0"), Attr("stub","()")]), "__libc_start_main", - Args([Arg(Tid(1_459, "%000005b3"), - Attrs([Attr("c.layout","**[ : 64]"), -Attr("c.data","Top:u64 ptr ptr"), -Attr("c.type","signed (*)(signed , char** , char** );*")]), - Var("__libc_start_main_main",Imm(64)), Var("R0",Imm(64)), In()), -Arg(Tid(1_460, "%000005b4"), Attrs([Attr("c.layout","[signed : 32]"), -Attr("c.data","Top:u32"), Attr("c.type","signed")]), - Var("__libc_start_main_arg2",Imm(32)), LOW(32,Var("R1",Imm(64))), In()), -Arg(Tid(1_461, "%000005b5"), Attrs([Attr("c.layout","**[char : 8]"), -Attr("c.data","Top:u8 ptr ptr"), Attr("c.type","char**")]), - Var("__libc_start_main_arg3",Imm(64)), Var("R2",Imm(64)), Both()), -Arg(Tid(1_462, "%000005b6"), Attrs([Attr("c.layout","*[ : 8]"), -Attr("c.data","{} ptr"), Attr("c.type","void*")]), - Var("__libc_start_main_auxv",Imm(64)), Var("R3",Imm(64)), Both()), -Arg(Tid(1_463, "%000005b7"), Attrs([Attr("c.layout","[signed : 32]"), -Attr("c.data","Top:u32"), Attr("c.type","signed")]), - Var("__libc_start_main_result",Imm(32)), LOW(32,Var("R0",Imm(64))), -Out())]), Blks([Blk(Tid(491, "@__libc_start_main"), - Attrs([Attr("address","0x5F0")]), Phis([]), -Defs([Def(Tid(1_144, "%00000478"), Attrs([Attr("address","0x5F0"), -Attr("insn","adrp x16, #69632")]), Var("R16",Imm(64)), Int(69632,64)), -Def(Tid(1_151, "%0000047f"), Attrs([Attr("address","0x5F4"), -Attr("insn","ldr x17, [x16]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R16",Imm(64)),LittleEndian(),64)), -Def(Tid(1_157, "%00000485"), Attrs([Attr("address","0x5F8"), -Attr("insn","add x16, x16, #0x0")]), Var("R16",Imm(64)), -Var("R16",Imm(64)))]), Jmps([Call(Tid(1_162, "%0000048a"), - Attrs([Attr("address","0x5FC"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), Sub(Tid(1_412, "@_fini"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x798")]), - "_fini", Args([Arg(Tid(1_464, "%000005b8"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("_fini_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(31, "@_fini"), - Attrs([Attr("address","0x798")]), Phis([]), Defs([Def(Tid(37, "%00000025"), - Attrs([Attr("address","0x79C"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("#0",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(18446744073709551600,64))), -Def(Tid(43, "%0000002b"), Attrs([Attr("address","0x79C"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("#0",Imm(64)),Var("R29",Imm(64)),LittleEndian(),64)), -Def(Tid(49, "%00000031"), Attrs([Attr("address","0x79C"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("#0",Imm(64)),Int(8,64)),Var("R30",Imm(64)),LittleEndian(),64)), -Def(Tid(53, "%00000035"), Attrs([Attr("address","0x79C"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("R31",Imm(64)), -Var("#0",Imm(64))), Def(Tid(59, "%0000003b"), Attrs([Attr("address","0x7A0"), -Attr("insn","mov x29, sp")]), Var("R29",Imm(64)), Var("R31",Imm(64))), -Def(Tid(66, "%00000042"), Attrs([Attr("address","0x7A4"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R29",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(71, "%00000047"), Attrs([Attr("address","0x7A4"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R30",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(75, "%0000004b"), Attrs([Attr("address","0x7A4"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(16,64)))]), Jmps([Call(Tid(80, "%00000050"), - Attrs([Attr("address","0x7A8"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), Sub(Tid(1_413, "@_init"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x5B0")]), - "_init", Args([Arg(Tid(1_465, "%000005b9"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("_init_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(1_256, "@_init"), - Attrs([Attr("address","0x5B0")]), Phis([]), -Defs([Def(Tid(1_262, "%000004ee"), Attrs([Attr("address","0x5B4"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("#5",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(18446744073709551600,64))), -Def(Tid(1_268, "%000004f4"), Attrs([Attr("address","0x5B4"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("#5",Imm(64)),Var("R29",Imm(64)),LittleEndian(),64)), -Def(Tid(1_274, "%000004fa"), Attrs([Attr("address","0x5B4"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("#5",Imm(64)),Int(8,64)),Var("R30",Imm(64)),LittleEndian(),64)), -Def(Tid(1_278, "%000004fe"), Attrs([Attr("address","0x5B4"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("R31",Imm(64)), -Var("#5",Imm(64))), Def(Tid(1_284, "%00000504"), - Attrs([Attr("address","0x5B8"), Attr("insn","mov x29, sp")]), - Var("R29",Imm(64)), Var("R31",Imm(64))), Def(Tid(1_289, "%00000509"), - Attrs([Attr("address","0x5BC"), Attr("insn","bl #0xb8")]), - Var("R30",Imm(64)), Int(1472,64))]), Jmps([Call(Tid(1_291, "%0000050b"), - Attrs([Attr("address","0x5BC"), Attr("insn","bl #0xb8")]), Int(1,1), -(Direct(Tid(1_418, "@call_weak_fn")),Direct(Tid(1_293, "%0000050d"))))])), -Blk(Tid(1_293, "%0000050d"), Attrs([Attr("address","0x5C0")]), Phis([]), -Defs([Def(Tid(1_298, "%00000512"), Attrs([Attr("address","0x5C0"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R29",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(1_303, "%00000517"), Attrs([Attr("address","0x5C0"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R30",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(1_307, "%0000051b"), Attrs([Attr("address","0x5C0"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(16,64)))]), Jmps([Call(Tid(1_312, "%00000520"), - Attrs([Attr("address","0x5C4"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), Sub(Tid(1_414, "@_start"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x640"), -Attr("entry-point","()")]), "_start", Args([Arg(Tid(1_466, "%000005ba"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("_start_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(428, "@_start"), - Attrs([Attr("address","0x640")]), Phis([]), Defs([Def(Tid(433, "%000001b1"), - Attrs([Attr("address","0x644"), Attr("insn","mov x29, #0x0")]), - Var("R29",Imm(64)), Int(0,64)), Def(Tid(438, "%000001b6"), - Attrs([Attr("address","0x648"), Attr("insn","mov x30, #0x0")]), - Var("R30",Imm(64)), Int(0,64)), Def(Tid(444, "%000001bc"), - Attrs([Attr("address","0x64C"), Attr("insn","mov x5, x0")]), - Var("R5",Imm(64)), Var("R0",Imm(64))), Def(Tid(451, "%000001c3"), - Attrs([Attr("address","0x650"), Attr("insn","ldr x1, [sp]")]), - Var("R1",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(457, "%000001c9"), Attrs([Attr("address","0x654"), -Attr("insn","add x2, sp, #0x8")]), Var("R2",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(8,64))), Def(Tid(463, "%000001cf"), - Attrs([Attr("address","0x658"), Attr("insn","mov x6, sp")]), - Var("R6",Imm(64)), Var("R31",Imm(64))), Def(Tid(468, "%000001d4"), - Attrs([Attr("address","0x65C"), Attr("insn","adrp x0, #65536")]), - Var("R0",Imm(64)), Int(65536,64)), Def(Tid(475, "%000001db"), - Attrs([Attr("address","0x660"), Attr("insn","ldr x0, [x0, #0xfd8]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(4056,64)),LittleEndian(),64)), -Def(Tid(480, "%000001e0"), Attrs([Attr("address","0x664"), -Attr("insn","mov x3, #0x0")]), Var("R3",Imm(64)), Int(0,64)), -Def(Tid(485, "%000001e5"), Attrs([Attr("address","0x668"), -Attr("insn","mov x4, #0x0")]), Var("R4",Imm(64)), Int(0,64)), -Def(Tid(490, "%000001ea"), Attrs([Attr("address","0x66C"), -Attr("insn","bl #-0x7c")]), Var("R30",Imm(64)), Int(1648,64))]), -Jmps([Call(Tid(493, "%000001ed"), Attrs([Attr("address","0x66C"), -Attr("insn","bl #-0x7c")]), Int(1,1), -(Direct(Tid(1_411, "@__libc_start_main")),Direct(Tid(495, "%000001ef"))))])), -Blk(Tid(495, "%000001ef"), Attrs([Attr("address","0x670")]), Phis([]), -Defs([Def(Tid(498, "%000001f2"), Attrs([Attr("address","0x670"), -Attr("insn","bl #-0x50")]), Var("R30",Imm(64)), Int(1652,64))]), -Jmps([Call(Tid(501, "%000001f5"), Attrs([Attr("address","0x670"), -Attr("insn","bl #-0x50")]), Int(1,1), -(Direct(Tid(1_417, "@abort")),Direct(Tid(1_449, "%000005a9"))))])), -Blk(Tid(1_449, "%000005a9"), Attrs([]), Phis([]), Defs([]), -Jmps([Call(Tid(1_450, "%000005aa"), Attrs([]), Int(1,1), -(Direct(Tid(1_418, "@call_weak_fn")),))]))])), Sub(Tid(1_417, "@abort"), - Attrs([Attr("noreturn","()"), Attr("c.proto","void (*)(void)"), -Attr("address","0x620"), Attr("stub","()")]), "abort", Args([]), -Blks([Blk(Tid(499, "@abort"), Attrs([Attr("address","0x620")]), Phis([]), -Defs([Def(Tid(1_210, "%000004ba"), Attrs([Attr("address","0x620"), -Attr("insn","adrp x16, #69632")]), Var("R16",Imm(64)), Int(69632,64)), -Def(Tid(1_217, "%000004c1"), Attrs([Attr("address","0x624"), -Attr("insn","ldr x17, [x16, #0x18]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(24,64)),LittleEndian(),64)), -Def(Tid(1_223, "%000004c7"), Attrs([Attr("address","0x628"), -Attr("insn","add x16, x16, #0x18")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(24,64)))]), Jmps([Call(Tid(1_228, "%000004cc"), - Attrs([Attr("address","0x62C"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), Sub(Tid(1_418, "@call_weak_fn"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x674")]), - "call_weak_fn", Args([Arg(Tid(1_467, "%000005bb"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("call_weak_fn_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(503, "@call_weak_fn"), - Attrs([Attr("address","0x674")]), Phis([]), Defs([Def(Tid(506, "%000001fa"), - Attrs([Attr("address","0x674"), Attr("insn","adrp x0, #65536")]), - Var("R0",Imm(64)), Int(65536,64)), Def(Tid(513, "%00000201"), - Attrs([Attr("address","0x678"), Attr("insn","ldr x0, [x0, #0xfc8]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(4040,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(519, "%00000207"), Attrs([Attr("address","0x67C"), -Attr("insn","cbz x0, #0x8")]), EQ(Var("R0",Imm(64)),Int(0,64)), -Direct(Tid(517, "%00000205"))), Goto(Tid(1_451, "%000005ab"), Attrs([]), - Int(1,1), Direct(Tid(982, "%000003d6")))])), Blk(Tid(517, "%00000205"), - Attrs([Attr("address","0x684")]), Phis([]), Defs([]), -Jmps([Call(Tid(525, "%0000020d"), Attrs([Attr("address","0x684"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))])), -Blk(Tid(982, "%000003d6"), Attrs([Attr("address","0x680")]), Phis([]), -Defs([]), Jmps([Goto(Tid(985, "%000003d9"), Attrs([Attr("address","0x680"), -Attr("insn","b #-0x70")]), Int(1,1), Direct(Tid(983, "@__gmon_start__")))])), -Blk(Tid(983, "@__gmon_start__"), Attrs([Attr("address","0x610")]), Phis([]), -Defs([Def(Tid(1_188, "%000004a4"), Attrs([Attr("address","0x610"), -Attr("insn","adrp x16, #69632")]), Var("R16",Imm(64)), Int(69632,64)), -Def(Tid(1_195, "%000004ab"), Attrs([Attr("address","0x614"), -Attr("insn","ldr x17, [x16, #0x10]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(16,64)),LittleEndian(),64)), -Def(Tid(1_201, "%000004b1"), Attrs([Attr("address","0x618"), -Attr("insn","add x16, x16, #0x10")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(16,64)))]), Jmps([Call(Tid(1_206, "%000004b6"), - Attrs([Attr("address","0x61C"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), -Sub(Tid(1_420, "@deregister_tm_clones"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x690")]), - "deregister_tm_clones", Args([Arg(Tid(1_468, "%000005bc"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("deregister_tm_clones_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(531, "@deregister_tm_clones"), - Attrs([Attr("address","0x690")]), Phis([]), Defs([Def(Tid(534, "%00000216"), - Attrs([Attr("address","0x690"), Attr("insn","adrp x0, #69632")]), - Var("R0",Imm(64)), Int(69632,64)), Def(Tid(540, "%0000021c"), - Attrs([Attr("address","0x694"), Attr("insn","add x0, x0, #0x30")]), - Var("R0",Imm(64)), PLUS(Var("R0",Imm(64)),Int(48,64))), -Def(Tid(545, "%00000221"), Attrs([Attr("address","0x698"), -Attr("insn","adrp x1, #69632")]), Var("R1",Imm(64)), Int(69632,64)), -Def(Tid(551, "%00000227"), Attrs([Attr("address","0x69C"), -Attr("insn","add x1, x1, #0x30")]), Var("R1",Imm(64)), -PLUS(Var("R1",Imm(64)),Int(48,64))), Def(Tid(557, "%0000022d"), - Attrs([Attr("address","0x6A0"), Attr("insn","cmp x1, x0")]), - Var("#1",Imm(64)), NOT(Var("R0",Imm(64)))), Def(Tid(562, "%00000232"), - Attrs([Attr("address","0x6A0"), Attr("insn","cmp x1, x0")]), - Var("#2",Imm(64)), PLUS(Var("R1",Imm(64)),NOT(Var("R0",Imm(64))))), -Def(Tid(568, "%00000238"), Attrs([Attr("address","0x6A0"), -Attr("insn","cmp x1, x0")]), Var("VF",Imm(1)), -NEQ(SIGNED(65,PLUS(Var("#2",Imm(64)),Int(1,64))),PLUS(PLUS(SIGNED(65,Var("R1",Imm(64))),SIGNED(65,Var("#1",Imm(64)))),Int(1,65)))), -Def(Tid(574, "%0000023e"), Attrs([Attr("address","0x6A0"), -Attr("insn","cmp x1, x0")]), Var("CF",Imm(1)), -NEQ(UNSIGNED(65,PLUS(Var("#2",Imm(64)),Int(1,64))),PLUS(PLUS(UNSIGNED(65,Var("R1",Imm(64))),UNSIGNED(65,Var("#1",Imm(64)))),Int(1,65)))), -Def(Tid(578, "%00000242"), Attrs([Attr("address","0x6A0"), -Attr("insn","cmp x1, x0")]), Var("ZF",Imm(1)), -EQ(PLUS(Var("#2",Imm(64)),Int(1,64)),Int(0,64))), Def(Tid(582, "%00000246"), - Attrs([Attr("address","0x6A0"), Attr("insn","cmp x1, x0")]), - Var("NF",Imm(1)), Extract(63,63,PLUS(Var("#2",Imm(64)),Int(1,64))))]), -Jmps([Goto(Tid(588, "%0000024c"), Attrs([Attr("address","0x6A4"), -Attr("insn","b.eq #0x18")]), EQ(Var("ZF",Imm(1)),Int(1,1)), -Direct(Tid(586, "%0000024a"))), Goto(Tid(1_452, "%000005ac"), Attrs([]), - Int(1,1), Direct(Tid(952, "%000003b8")))])), Blk(Tid(952, "%000003b8"), - Attrs([Attr("address","0x6A8")]), Phis([]), Defs([Def(Tid(955, "%000003bb"), - Attrs([Attr("address","0x6A8"), Attr("insn","adrp x1, #65536")]), - Var("R1",Imm(64)), Int(65536,64)), Def(Tid(962, "%000003c2"), - Attrs([Attr("address","0x6AC"), Attr("insn","ldr x1, [x1, #0xfb0]")]), - Var("R1",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R1",Imm(64)),Int(4016,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(967, "%000003c7"), Attrs([Attr("address","0x6B0"), -Attr("insn","cbz x1, #0xc")]), EQ(Var("R1",Imm(64)),Int(0,64)), -Direct(Tid(586, "%0000024a"))), Goto(Tid(1_453, "%000005ad"), Attrs([]), - Int(1,1), Direct(Tid(971, "%000003cb")))])), Blk(Tid(586, "%0000024a"), - Attrs([Attr("address","0x6BC")]), Phis([]), Defs([]), -Jmps([Call(Tid(594, "%00000252"), Attrs([Attr("address","0x6BC"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))])), -Blk(Tid(971, "%000003cb"), Attrs([Attr("address","0x6B4")]), Phis([]), -Defs([Def(Tid(975, "%000003cf"), Attrs([Attr("address","0x6B4"), -Attr("insn","mov x16, x1")]), Var("R16",Imm(64)), Var("R1",Imm(64)))]), -Jmps([Call(Tid(980, "%000003d4"), Attrs([Attr("address","0x6B8"), -Attr("insn","br x16")]), Int(1,1), (Indirect(Var("R16",Imm(64))),))]))])), -Sub(Tid(1_423, "@frame_dummy"), Attrs([Attr("c.proto","signed (*)(void)"), -Attr("address","0x750")]), "frame_dummy", Args([Arg(Tid(1_469, "%000005bd"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("frame_dummy_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(746, "@frame_dummy"), - Attrs([Attr("address","0x750")]), Phis([]), Defs([]), -Jmps([Call(Tid(748, "%000002ec"), Attrs([Attr("address","0x750"), -Attr("insn","b #-0x90")]), Int(1,1), -(Direct(Tid(1_425, "@register_tm_clones")),))]))])), Sub(Tid(1_424, "@main"), - Attrs([Attr("c.proto","signed (*)(signed argc, const char** argv)"), -Attr("address","0x754")]), "main", Args([Arg(Tid(1_470, "%000005be"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("main_argc",Imm(32)), -LOW(32,Var("R0",Imm(64))), In()), Arg(Tid(1_471, "%000005bf"), - Attrs([Attr("c.layout","**[char : 8]"), Attr("c.data","Top:u8 ptr ptr"), -Attr("c.type"," const char**")]), Var("main_argv",Imm(64)), -Var("R1",Imm(64)), Both()), Arg(Tid(1_472, "%000005c0"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("main_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(750, "@main"), - Attrs([Attr("address","0x754")]), Phis([]), Defs([Def(Tid(754, "%000002f2"), - Attrs([Attr("address","0x754"), Attr("insn","sub sp, sp, #0x10")]), - Var("R31",Imm(64)), PLUS(Var("R31",Imm(64)),Int(18446744073709551600,64))), -Def(Tid(759, "%000002f7"), Attrs([Attr("address","0x758"), -Attr("insn","adrp x8, #65536")]), Var("R8",Imm(64)), Int(65536,64)), -Def(Tid(766, "%000002fe"), Attrs([Attr("address","0x75C"), -Attr("insn","ldr x8, [x8, #0xfd0]")]), Var("R8",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R8",Imm(64)),Int(4048,64)),LittleEndian(),64)), -Def(Tid(773, "%00000305"), Attrs([Attr("address","0x760"), -Attr("insn","ldr x9, [x8]")]), Var("R9",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R8",Imm(64)),LittleEndian(),64)), -Def(Tid(781, "%0000030d"), Attrs([Attr("address","0x764"), -Attr("insn","str x9, [sp, #0x8]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),Var("R9",Imm(64)),LittleEndian(),64)), -Def(Tid(788, "%00000314"), Attrs([Attr("address","0x768"), -Attr("insn","str xzr, [sp, #0x8]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),Int(0,64),LittleEndian(),64)), -Def(Tid(795, "%0000031b"), Attrs([Attr("address","0x76C"), -Attr("insn","ldr x10, [sp, #0x8]")]), Var("R10",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(800, "%00000320"), Attrs([Attr("address","0x770"), -Attr("insn","adrp x9, #65536")]), Var("R9",Imm(64)), Int(65536,64)), -Def(Tid(807, "%00000327"), Attrs([Attr("address","0x774"), -Attr("insn","ldr x9, [x9, #0xfc0]")]), Var("R9",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R9",Imm(64)),Int(4032,64)),LittleEndian(),64)), -Def(Tid(815, "%0000032f"), Attrs([Attr("address","0x778"), -Attr("insn","str x10, [x9]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("R9",Imm(64)),Var("R10",Imm(64)),LittleEndian(),64)), -Def(Tid(822, "%00000336"), Attrs([Attr("address","0x77C"), -Attr("insn","ldr x8, [x8]")]), Var("R8",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R8",Imm(64)),LittleEndian(),64)), -Def(Tid(830, "%0000033e"), Attrs([Attr("address","0x780"), -Attr("insn","str x8, [sp, #0x8]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),Var("R8",Imm(64)),LittleEndian(),64)), -Def(Tid(837, "%00000345"), Attrs([Attr("address","0x784"), -Attr("insn","ldr x8, [sp, #0x8]")]), Var("R8",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(845, "%0000034d"), Attrs([Attr("address","0x788"), -Attr("insn","str x8, [x9]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("R9",Imm(64)),Var("R8",Imm(64)),LittleEndian(),64)), -Def(Tid(850, "%00000352"), Attrs([Attr("address","0x78C"), -Attr("insn","mov w0, wzr")]), Var("R0",Imm(64)), Int(0,64)), -Def(Tid(856, "%00000358"), Attrs([Attr("address","0x790"), -Attr("insn","add sp, sp, #0x10")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(16,64)))]), Jmps([Call(Tid(861, "%0000035d"), - Attrs([Attr("address","0x794"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), -Sub(Tid(1_425, "@register_tm_clones"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x6C0")]), - "register_tm_clones", Args([Arg(Tid(1_473, "%000005c1"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("register_tm_clones_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(596, "@register_tm_clones"), Attrs([Attr("address","0x6C0")]), - Phis([]), Defs([Def(Tid(599, "%00000257"), Attrs([Attr("address","0x6C0"), -Attr("insn","adrp x0, #69632")]), Var("R0",Imm(64)), Int(69632,64)), -Def(Tid(605, "%0000025d"), Attrs([Attr("address","0x6C4"), -Attr("insn","add x0, x0, #0x30")]), Var("R0",Imm(64)), -PLUS(Var("R0",Imm(64)),Int(48,64))), Def(Tid(610, "%00000262"), - Attrs([Attr("address","0x6C8"), Attr("insn","adrp x1, #69632")]), - Var("R1",Imm(64)), Int(69632,64)), Def(Tid(616, "%00000268"), - Attrs([Attr("address","0x6CC"), Attr("insn","add x1, x1, #0x30")]), - Var("R1",Imm(64)), PLUS(Var("R1",Imm(64)),Int(48,64))), -Def(Tid(623, "%0000026f"), Attrs([Attr("address","0x6D0"), -Attr("insn","sub x1, x1, x0")]), Var("R1",Imm(64)), -PLUS(PLUS(Var("R1",Imm(64)),NOT(Var("R0",Imm(64)))),Int(1,64))), -Def(Tid(629, "%00000275"), Attrs([Attr("address","0x6D4"), -Attr("insn","lsr x2, x1, #63")]), Var("R2",Imm(64)), -Concat(Int(0,63),Extract(63,63,Var("R1",Imm(64))))), -Def(Tid(636, "%0000027c"), Attrs([Attr("address","0x6D8"), -Attr("insn","add x1, x2, x1, asr #3")]), Var("R1",Imm(64)), -PLUS(Var("R2",Imm(64)),ARSHIFT(Var("R1",Imm(64)),Int(3,3)))), -Def(Tid(642, "%00000282"), Attrs([Attr("address","0x6DC"), -Attr("insn","asr x1, x1, #1")]), Var("R1",Imm(64)), -SIGNED(64,Extract(63,1,Var("R1",Imm(64)))))]), -Jmps([Goto(Tid(648, "%00000288"), Attrs([Attr("address","0x6E0"), -Attr("insn","cbz x1, #0x18")]), EQ(Var("R1",Imm(64)),Int(0,64)), -Direct(Tid(646, "%00000286"))), Goto(Tid(1_454, "%000005ae"), Attrs([]), - Int(1,1), Direct(Tid(922, "%0000039a")))])), Blk(Tid(922, "%0000039a"), - Attrs([Attr("address","0x6E4")]), Phis([]), Defs([Def(Tid(925, "%0000039d"), - Attrs([Attr("address","0x6E4"), Attr("insn","adrp x2, #65536")]), - Var("R2",Imm(64)), Int(65536,64)), Def(Tid(932, "%000003a4"), - Attrs([Attr("address","0x6E8"), Attr("insn","ldr x2, [x2, #0xfe0]")]), - Var("R2",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R2",Imm(64)),Int(4064,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(937, "%000003a9"), Attrs([Attr("address","0x6EC"), -Attr("insn","cbz x2, #0xc")]), EQ(Var("R2",Imm(64)),Int(0,64)), -Direct(Tid(646, "%00000286"))), Goto(Tid(1_455, "%000005af"), Attrs([]), - Int(1,1), Direct(Tid(941, "%000003ad")))])), Blk(Tid(646, "%00000286"), - Attrs([Attr("address","0x6F8")]), Phis([]), Defs([]), -Jmps([Call(Tid(654, "%0000028e"), Attrs([Attr("address","0x6F8"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))])), -Blk(Tid(941, "%000003ad"), Attrs([Attr("address","0x6F0")]), Phis([]), -Defs([Def(Tid(945, "%000003b1"), Attrs([Attr("address","0x6F0"), -Attr("insn","mov x16, x2")]), Var("R16",Imm(64)), Var("R2",Imm(64)))]), -Jmps([Call(Tid(950, "%000003b6"), Attrs([Attr("address","0x6F4"), -Attr("insn","br x16")]), Int(1,1), -(Indirect(Var("R16",Imm(64))),))]))]))]))) \ No newline at end of file diff --git a/src/test/incorrect/basicassign2/clang_pic/basicassign2.bir b/src/test/incorrect/basicassign2/clang_pic/basicassign2.bir deleted file mode 100644 index b5e278304..000000000 --- a/src/test/incorrect/basicassign2/clang_pic/basicassign2.bir +++ /dev/null @@ -1,239 +0,0 @@ -000005b0: program -0000057e: sub __cxa_finalize(__cxa_finalize_result) -000005b1: __cxa_finalize_result :: out u32 = low:32[R0] - -00000396: -0000048e: R16 := 0x11000 -00000495: R17 := mem[R16 + 8, el]:u64 -0000049b: R16 := R16 + 8 -000004a0: call R17 with noreturn - -0000057f: sub __do_global_dtors_aux(__do_global_dtors_aux_result) -000005b2: __do_global_dtors_aux_result :: out u32 = low:32[R0] - -00000292: -00000296: #3 := R31 - 0x20 -0000029c: mem := mem with [#3, el]:u64 <- R29 -000002a2: mem := mem with [#3 + 8, el]:u64 <- R30 -000002a6: R31 := #3 -000002ac: R29 := R31 -000002b4: mem := mem with [R31 + 0x10, el]:u64 <- R19 -000002b9: R19 := 0x11000 -000002c0: R0 := pad:64[mem[R19 + 0x30]] -000002c7: when 31:0[R0] <> 0 goto %000002c5 -000005a6: goto %0000035f - -0000035f: -00000362: R0 := 0x10000 -00000369: R0 := mem[R0 + 0xFB8, el]:u64 -0000036f: when R0 = 0 goto %0000036d -000005a7: goto %00000386 - -00000386: -00000389: R0 := 0x11000 -00000390: R0 := mem[R0 + 0x28, el]:u64 -00000395: R30 := 0x730 -00000398: call @__cxa_finalize with return %0000036d - -0000036d: -00000375: R30 := 0x734 -00000377: call @deregister_tm_clones with return %00000379 - -00000379: -0000037c: R0 := 1 -00000384: mem := mem with [R19 + 0x30] <- 7:0[R0] -000005a8: goto %000002c5 - -000002c5: -000002cf: R19 := mem[R31 + 0x10, el]:u64 -000002d6: R29 := mem[R31, el]:u64 -000002db: R30 := mem[R31 + 8, el]:u64 -000002df: R31 := R31 + 0x20 -000002e4: call R30 with noreturn - -00000583: sub __libc_start_main(__libc_start_main_main, __libc_start_main_arg2, __libc_start_main_arg3, __libc_start_main_auxv, __libc_start_main_result) -000005b3: __libc_start_main_main :: in u64 = R0 -000005b4: __libc_start_main_arg2 :: in u32 = low:32[R1] -000005b5: __libc_start_main_arg3 :: in out u64 = R2 -000005b6: __libc_start_main_auxv :: in out u64 = R3 -000005b7: __libc_start_main_result :: out u32 = low:32[R0] - -000001eb: -00000478: R16 := 0x11000 -0000047f: R17 := mem[R16, el]:u64 -00000485: R16 := R16 -0000048a: call R17 with noreturn - -00000584: sub _fini(_fini_result) -000005b8: _fini_result :: out u32 = low:32[R0] - -0000001f: -00000025: #0 := R31 - 0x10 -0000002b: mem := mem with [#0, el]:u64 <- R29 -00000031: mem := mem with [#0 + 8, el]:u64 <- R30 -00000035: R31 := #0 -0000003b: R29 := R31 -00000042: R29 := mem[R31, el]:u64 -00000047: R30 := mem[R31 + 8, el]:u64 -0000004b: R31 := R31 + 0x10 -00000050: call R30 with noreturn - -00000585: sub _init(_init_result) -000005b9: _init_result :: out u32 = low:32[R0] - -000004e8: -000004ee: #5 := R31 - 0x10 -000004f4: mem := mem with [#5, el]:u64 <- R29 -000004fa: mem := mem with [#5 + 8, el]:u64 <- R30 -000004fe: R31 := #5 -00000504: R29 := R31 -00000509: R30 := 0x5C0 -0000050b: call @call_weak_fn with return %0000050d - -0000050d: -00000512: R29 := mem[R31, el]:u64 -00000517: R30 := mem[R31 + 8, el]:u64 -0000051b: R31 := R31 + 0x10 -00000520: call R30 with noreturn - -00000586: sub _start(_start_result) -000005ba: _start_result :: out u32 = low:32[R0] - -000001ac: -000001b1: R29 := 0 -000001b6: R30 := 0 -000001bc: R5 := R0 -000001c3: R1 := mem[R31, el]:u64 -000001c9: R2 := R31 + 8 -000001cf: R6 := R31 -000001d4: R0 := 0x10000 -000001db: R0 := mem[R0 + 0xFD8, el]:u64 -000001e0: R3 := 0 -000001e5: R4 := 0 -000001ea: R30 := 0x670 -000001ed: call @__libc_start_main with return %000001ef - -000001ef: -000001f2: R30 := 0x674 -000001f5: call @abort with return %000005a9 - -000005a9: -000005aa: call @call_weak_fn with noreturn - -00000589: sub abort() - - -000001f3: -000004ba: R16 := 0x11000 -000004c1: R17 := mem[R16 + 0x18, el]:u64 -000004c7: R16 := R16 + 0x18 -000004cc: call R17 with noreturn - -0000058a: sub call_weak_fn(call_weak_fn_result) -000005bb: call_weak_fn_result :: out u32 = low:32[R0] - -000001f7: -000001fa: R0 := 0x10000 -00000201: R0 := mem[R0 + 0xFC8, el]:u64 -00000207: when R0 = 0 goto %00000205 -000005ab: goto %000003d6 - -00000205: -0000020d: call R30 with noreturn - -000003d6: -000003d9: goto @__gmon_start__ - -000003d7: -000004a4: R16 := 0x11000 -000004ab: R17 := mem[R16 + 0x10, el]:u64 -000004b1: R16 := R16 + 0x10 -000004b6: call R17 with noreturn - -0000058c: sub deregister_tm_clones(deregister_tm_clones_result) -000005bc: deregister_tm_clones_result :: out u32 = low:32[R0] - -00000213: -00000216: R0 := 0x11000 -0000021c: R0 := R0 + 0x30 -00000221: R1 := 0x11000 -00000227: R1 := R1 + 0x30 -0000022d: #1 := ~R0 -00000232: #2 := R1 + ~R0 -00000238: VF := extend:65[#2 + 1] <> extend:65[R1] + extend:65[#1] + 1 -0000023e: CF := pad:65[#2 + 1] <> pad:65[R1] + pad:65[#1] + 1 -00000242: ZF := #2 + 1 = 0 -00000246: NF := 63:63[#2 + 1] -0000024c: when ZF goto %0000024a -000005ac: goto %000003b8 - -000003b8: -000003bb: R1 := 0x10000 -000003c2: R1 := mem[R1 + 0xFB0, el]:u64 -000003c7: when R1 = 0 goto %0000024a -000005ad: goto %000003cb - -0000024a: -00000252: call R30 with noreturn - -000003cb: -000003cf: R16 := R1 -000003d4: call R16 with noreturn - -0000058f: sub frame_dummy(frame_dummy_result) -000005bd: frame_dummy_result :: out u32 = low:32[R0] - -000002ea: -000002ec: call @register_tm_clones with noreturn - -00000590: sub main(main_argc, main_argv, main_result) -000005be: main_argc :: in u32 = low:32[R0] -000005bf: main_argv :: in out u64 = R1 -000005c0: main_result :: out u32 = low:32[R0] - -000002ee: -000002f2: R31 := R31 - 0x10 -000002f7: R8 := 0x10000 -000002fe: R8 := mem[R8 + 0xFD0, el]:u64 -00000305: R9 := mem[R8, el]:u64 -0000030d: mem := mem with [R31 + 8, el]:u64 <- R9 -00000314: mem := mem with [R31 + 8, el]:u64 <- 0 -0000031b: R10 := mem[R31 + 8, el]:u64 -00000320: R9 := 0x10000 -00000327: R9 := mem[R9 + 0xFC0, el]:u64 -0000032f: mem := mem with [R9, el]:u64 <- R10 -00000336: R8 := mem[R8, el]:u64 -0000033e: mem := mem with [R31 + 8, el]:u64 <- R8 -00000345: R8 := mem[R31 + 8, el]:u64 -0000034d: mem := mem with [R9, el]:u64 <- R8 -00000352: R0 := 0 -00000358: R31 := R31 + 0x10 -0000035d: call R30 with noreturn - -00000591: sub register_tm_clones(register_tm_clones_result) -000005c1: register_tm_clones_result :: out u32 = low:32[R0] - -00000254: -00000257: R0 := 0x11000 -0000025d: R0 := R0 + 0x30 -00000262: R1 := 0x11000 -00000268: R1 := R1 + 0x30 -0000026f: R1 := R1 + ~R0 + 1 -00000275: R2 := 0.63:63[R1] -0000027c: R1 := R2 + (R1 ~>> 3) -00000282: R1 := extend:64[63:1[R1]] -00000288: when R1 = 0 goto %00000286 -000005ae: goto %0000039a - -0000039a: -0000039d: R2 := 0x10000 -000003a4: R2 := mem[R2 + 0xFE0, el]:u64 -000003a9: when R2 = 0 goto %00000286 -000005af: goto %000003ad - -00000286: -0000028e: call R30 with noreturn - -000003ad: -000003b1: R16 := R2 -000003b6: call R16 with noreturn diff --git a/src/test/incorrect/basicassign2/clang_pic/basicassign2.expected b/src/test/incorrect/basicassign2/clang_pic/basicassign2.expected index c33bc3a9f..839f672f2 100644 --- a/src/test/incorrect/basicassign2/clang_pic/basicassign2.expected +++ b/src/test/incorrect/basicassign2/clang_pic/basicassign2.expected @@ -1,21 +1,15 @@ var {:extern} Gamma_R0: bool; -var {:extern} Gamma_R10: bool; -var {:extern} Gamma_R31: bool; var {:extern} Gamma_R8: bool; var {:extern} Gamma_R9: bool; var {:extern} Gamma_mem: [bv64]bool; -var {:extern} Gamma_stack: [bv64]bool; var {:extern} R0: bv64; -var {:extern} R10: bv64; -var {:extern} R31: bv64; var {:extern} R8: bv64; var {:extern} R9: bv64; var {:extern} mem: [bv64]bv8; -var {:extern} stack: [bv64]bv8; const {:extern} $secret_addr: bv64; -axiom ($secret_addr == 69688bv64); +axiom ($secret_addr == 131096bv64); const {:extern} $z_addr: bv64; -axiom ($z_addr == 69696bv64); +axiom ($z_addr == 131104bv64); function {:extern} L(mem$in: [bv64]bv8, index: bv64) returns (bool) { (if (index == $z_addr) then true else (if (index == $secret_addr) then false else false)) } @@ -45,13 +39,13 @@ procedure {:extern} rely(); modifies Gamma_mem, mem; ensures (Gamma_mem == old(Gamma_mem)); ensures (mem == old(mem)); - free ensures (memory_load32_le(mem, 1964bv64) == 131073bv32); - free ensures (memory_load64_le(mem, 69048bv64) == 1872bv64); - free ensures (memory_load64_le(mem, 69056bv64) == 1792bv64); - free ensures (memory_load64_le(mem, 69568bv64) == 69696bv64); - free ensures (memory_load64_le(mem, 69584bv64) == 69688bv64); - free ensures (memory_load64_le(mem, 69592bv64) == 1876bv64); - free ensures (memory_load64_le(mem, 69672bv64) == 69672bv64); + free ensures (memory_load32_le(mem, 2312bv64) == 131073bv32); + free ensures (memory_load64_le(mem, 130424bv64) == 2256bv64); + free ensures (memory_load64_le(mem, 130432bv64) == 2176bv64); + free ensures (memory_load64_le(mem, 131032bv64) == 131104bv64); + free ensures (memory_load64_le(mem, 131048bv64) == 131096bv64); + free ensures (memory_load64_le(mem, 131056bv64) == 2260bv64); + free ensures (memory_load64_le(mem, 131080bv64) == 131080bv64); procedure {:extern} rely_transitive(); modifies Gamma_mem, mem; @@ -69,81 +63,54 @@ procedure {:extern} rely_reflexive(); procedure {:extern} guarantee_reflexive(); modifies Gamma_mem, mem; -procedure main_1876(); - modifies Gamma_R0, Gamma_R10, Gamma_R31, Gamma_R8, Gamma_R9, Gamma_mem, Gamma_stack, R0, R10, R31, R8, R9, mem, stack; - free requires (memory_load64_le(mem, 69664bv64) == 0bv64); - free requires (memory_load64_le(mem, 69672bv64) == 69672bv64); - free requires (memory_load32_le(mem, 1964bv64) == 131073bv32); - free requires (memory_load64_le(mem, 69048bv64) == 1872bv64); - free requires (memory_load64_le(mem, 69056bv64) == 1792bv64); - free requires (memory_load64_le(mem, 69568bv64) == 69696bv64); - free requires (memory_load64_le(mem, 69584bv64) == 69688bv64); - free requires (memory_load64_le(mem, 69592bv64) == 1876bv64); - free requires (memory_load64_le(mem, 69672bv64) == 69672bv64); - free ensures (Gamma_R31 == old(Gamma_R31)); - free ensures (R31 == old(R31)); - free ensures (memory_load32_le(mem, 1964bv64) == 131073bv32); - free ensures (memory_load64_le(mem, 69048bv64) == 1872bv64); - free ensures (memory_load64_le(mem, 69056bv64) == 1792bv64); - free ensures (memory_load64_le(mem, 69568bv64) == 69696bv64); - free ensures (memory_load64_le(mem, 69584bv64) == 69688bv64); - free ensures (memory_load64_le(mem, 69592bv64) == 1876bv64); - free ensures (memory_load64_le(mem, 69672bv64) == 69672bv64); +procedure main(); + modifies Gamma_R0, Gamma_R8, Gamma_R9, Gamma_mem, R0, R8, R9, mem; + free requires (memory_load64_le(mem, 131072bv64) == 0bv64); + free requires (memory_load64_le(mem, 131080bv64) == 131080bv64); + free requires (memory_load32_le(mem, 2312bv64) == 131073bv32); + free requires (memory_load64_le(mem, 130424bv64) == 2256bv64); + free requires (memory_load64_le(mem, 130432bv64) == 2176bv64); + free requires (memory_load64_le(mem, 131032bv64) == 131104bv64); + free requires (memory_load64_le(mem, 131048bv64) == 131096bv64); + free requires (memory_load64_le(mem, 131056bv64) == 2260bv64); + free requires (memory_load64_le(mem, 131080bv64) == 131080bv64); + free ensures (memory_load32_le(mem, 2312bv64) == 131073bv32); + free ensures (memory_load64_le(mem, 130424bv64) == 2256bv64); + free ensures (memory_load64_le(mem, 130432bv64) == 2176bv64); + free ensures (memory_load64_le(mem, 131032bv64) == 131104bv64); + free ensures (memory_load64_le(mem, 131048bv64) == 131096bv64); + free ensures (memory_load64_le(mem, 131056bv64) == 2260bv64); + free ensures (memory_load64_le(mem, 131080bv64) == 131080bv64); -implementation main_1876() +implementation main() { - var Gamma_load18: bool; - var Gamma_load19: bool; - var Gamma_load20: bool; - var Gamma_load21: bool; - var Gamma_load22: bool; - var Gamma_load23: bool; - var load18: bv64; - var load19: bv64; - var load20: bv64; - var load21: bv64; - var load22: bv64; - var load23: bv64; + var $load$18: bv64; + var $load$19: bv64; + var $load$20: bv64; + var Gamma_$load$18: bool; + var Gamma_$load$19: bool; + var Gamma_$load$20: bool; lmain: assume {:captureState "lmain"} true; - R31, Gamma_R31 := bvadd64(R31, 18446744073709551600bv64), Gamma_R31; - R8, Gamma_R8 := 65536bv64, true; - call rely(); - load18, Gamma_load18 := memory_load64_le(mem, bvadd64(R8, 4048bv64)), (gamma_load64(Gamma_mem, bvadd64(R8, 4048bv64)) || L(mem, bvadd64(R8, 4048bv64))); - R8, Gamma_R8 := load18, Gamma_load18; - call rely(); - load19, Gamma_load19 := memory_load64_le(mem, R8), (gamma_load64(Gamma_mem, R8) || L(mem, R8)); - R9, Gamma_R9 := load19, Gamma_load19; - stack, Gamma_stack := memory_store64_le(stack, bvadd64(R31, 8bv64), R9), gamma_store64(Gamma_stack, bvadd64(R31, 8bv64), Gamma_R9); - assume {:captureState "%0000030d"} true; - stack, Gamma_stack := memory_store64_le(stack, bvadd64(R31, 8bv64), 0bv64), gamma_store64(Gamma_stack, bvadd64(R31, 8bv64), true); - assume {:captureState "%00000314"} true; - load20, Gamma_load20 := memory_load64_le(stack, bvadd64(R31, 8bv64)), gamma_load64(Gamma_stack, bvadd64(R31, 8bv64)); - R10, Gamma_R10 := load20, Gamma_load20; - R9, Gamma_R9 := 65536bv64, true; + R8, Gamma_R8 := 126976bv64, true; + R9, Gamma_R9 := 126976bv64, true; + R0, Gamma_R0 := 0bv64, true; call rely(); - load21, Gamma_load21 := memory_load64_le(mem, bvadd64(R9, 4032bv64)), (gamma_load64(Gamma_mem, bvadd64(R9, 4032bv64)) || L(mem, bvadd64(R9, 4032bv64))); - R9, Gamma_R9 := load21, Gamma_load21; + $load$18, Gamma_$load$18 := memory_load64_le(mem, bvadd64(R8, 4072bv64)), (gamma_load64(Gamma_mem, bvadd64(R8, 4072bv64)) || L(mem, bvadd64(R8, 4072bv64))); + R8, Gamma_R8 := $load$18, Gamma_$load$18; call rely(); - assert (L(mem, R9) ==> Gamma_R10); - mem, Gamma_mem := memory_store64_le(mem, R9, R10), gamma_store64(Gamma_mem, R9, Gamma_R10); - assume {:captureState "%0000032f"} true; + $load$19, Gamma_$load$19 := memory_load64_le(mem, R8), (gamma_load64(Gamma_mem, R8) || L(mem, R8)); + R8, Gamma_R8 := $load$19, Gamma_$load$19; call rely(); - load22, Gamma_load22 := memory_load64_le(mem, R8), (gamma_load64(Gamma_mem, R8) || L(mem, R8)); - R8, Gamma_R8 := load22, Gamma_load22; - stack, Gamma_stack := memory_store64_le(stack, bvadd64(R31, 8bv64), R8), gamma_store64(Gamma_stack, bvadd64(R31, 8bv64), Gamma_R8); - assume {:captureState "%0000033e"} true; - load23, Gamma_load23 := memory_load64_le(stack, bvadd64(R31, 8bv64)), gamma_load64(Gamma_stack, bvadd64(R31, 8bv64)); - R8, Gamma_R8 := load23, Gamma_load23; + $load$20, Gamma_$load$20 := memory_load64_le(mem, bvadd64(R9, 4056bv64)), (gamma_load64(Gamma_mem, bvadd64(R9, 4056bv64)) || L(mem, bvadd64(R9, 4056bv64))); + R9, Gamma_R9 := $load$20, Gamma_$load$20; call rely(); assert (L(mem, R9) ==> Gamma_R8); mem, Gamma_mem := memory_store64_le(mem, R9, R8), gamma_store64(Gamma_mem, R9, Gamma_R8); - assume {:captureState "%0000034d"} true; - R0, Gamma_R0 := 0bv64, true; - R31, Gamma_R31 := bvadd64(R31, 16bv64), Gamma_R31; - goto main_1876_basil_return; - main_1876_basil_return: - assume {:captureState "main_1876_basil_return"} true; + assume {:captureState "%00000294"} true; + goto main_basil_return; + main_basil_return: + assume {:captureState "main_basil_return"} true; return; } diff --git a/src/test/incorrect/basicassign2/clang_pic/basicassign2.gts b/src/test/incorrect/basicassign2/clang_pic/basicassign2.gts deleted file mode 100644 index e590b35db..000000000 Binary files a/src/test/incorrect/basicassign2/clang_pic/basicassign2.gts and /dev/null differ diff --git a/src/test/incorrect/basicassign2/clang_pic/basicassign2.md5sum b/src/test/incorrect/basicassign2/clang_pic/basicassign2.md5sum new file mode 100644 index 000000000..8ff269b8b --- /dev/null +++ b/src/test/incorrect/basicassign2/clang_pic/basicassign2.md5sum @@ -0,0 +1,5 @@ +2a5236c3334ff061e9aae55a8dd0fe88 incorrect/basicassign2/clang_pic/a.out +acb7ce148622ec39adb41e2e50839901 incorrect/basicassign2/clang_pic/basicassign2.adt +47ea1051f1874a66112adcfd6c7ef918 incorrect/basicassign2/clang_pic/basicassign2.bir +e96203db91b7702f582c510975eb33be incorrect/basicassign2/clang_pic/basicassign2.relf +ddc1c34272c1e9a59a8708bf95f26cf7 incorrect/basicassign2/clang_pic/basicassign2.gts diff --git a/src/test/incorrect/basicassign2/clang_pic/basicassign2.relf b/src/test/incorrect/basicassign2/clang_pic/basicassign2.relf deleted file mode 100644 index 4b036c0f7..000000000 --- a/src/test/incorrect/basicassign2/clang_pic/basicassign2.relf +++ /dev/null @@ -1,126 +0,0 @@ - -Relocation section '.rela.dyn' at offset 0x460 contains 10 entries: - Offset Info Type Symbol's Value Symbol's Name + Addend -0000000000010db8 0000000000000403 R_AARCH64_RELATIVE 750 -0000000000010dc0 0000000000000403 R_AARCH64_RELATIVE 700 -0000000000010fc0 0000000000000403 R_AARCH64_RELATIVE 11040 -0000000000010fd0 0000000000000403 R_AARCH64_RELATIVE 11038 -0000000000010fd8 0000000000000403 R_AARCH64_RELATIVE 754 -0000000000011028 0000000000000403 R_AARCH64_RELATIVE 11028 -0000000000010fb0 0000000400000401 R_AARCH64_GLOB_DAT 0000000000000000 _ITM_deregisterTMCloneTable + 0 -0000000000010fb8 0000000500000401 R_AARCH64_GLOB_DAT 0000000000000000 __cxa_finalize@GLIBC_2.17 + 0 -0000000000010fc8 0000000600000401 R_AARCH64_GLOB_DAT 0000000000000000 __gmon_start__ + 0 -0000000000010fe0 0000000800000401 R_AARCH64_GLOB_DAT 0000000000000000 _ITM_registerTMCloneTable + 0 - -Relocation section '.rela.plt' at offset 0x550 contains 4 entries: - Offset Info Type Symbol's Value Symbol's Name + Addend -0000000000011000 0000000300000402 R_AARCH64_JUMP_SLOT 0000000000000000 __libc_start_main@GLIBC_2.34 + 0 -0000000000011008 0000000500000402 R_AARCH64_JUMP_SLOT 0000000000000000 __cxa_finalize@GLIBC_2.17 + 0 -0000000000011010 0000000600000402 R_AARCH64_JUMP_SLOT 0000000000000000 __gmon_start__ + 0 -0000000000011018 0000000700000402 R_AARCH64_JUMP_SLOT 0000000000000000 abort@GLIBC_2.17 + 0 - -Symbol table '.dynsym' contains 9 entries: - Num: Value Size Type Bind Vis Ndx Name - 0: 0000000000000000 0 NOTYPE LOCAL DEFAULT UND - 1: 00000000000005b0 0 SECTION LOCAL DEFAULT 11 .init - 2: 0000000000011020 0 SECTION LOCAL DEFAULT 23 .data - 3: 0000000000000000 0 FUNC GLOBAL DEFAULT UND __libc_start_main@GLIBC_2.34 (2) - 4: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_deregisterTMCloneTable - 5: 0000000000000000 0 FUNC WEAK DEFAULT UND __cxa_finalize@GLIBC_2.17 (3) - 6: 0000000000000000 0 NOTYPE WEAK DEFAULT UND __gmon_start__ - 7: 0000000000000000 0 FUNC GLOBAL DEFAULT UND abort@GLIBC_2.17 (3) - 8: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_registerTMCloneTable - -Symbol table '.symtab' contains 91 entries: - Num: Value Size Type Bind Vis Ndx Name - 0: 0000000000000000 0 NOTYPE LOCAL DEFAULT UND - 1: 0000000000000238 0 SECTION LOCAL DEFAULT 1 .interp - 2: 0000000000000254 0 SECTION LOCAL DEFAULT 2 .note.gnu.build-id - 3: 0000000000000278 0 SECTION LOCAL DEFAULT 3 .note.ABI-tag - 4: 0000000000000298 0 SECTION LOCAL DEFAULT 4 .gnu.hash - 5: 00000000000002b8 0 SECTION LOCAL DEFAULT 5 .dynsym - 6: 0000000000000390 0 SECTION LOCAL DEFAULT 6 .dynstr - 7: 000000000000041e 0 SECTION LOCAL DEFAULT 7 .gnu.version - 8: 0000000000000430 0 SECTION LOCAL DEFAULT 8 .gnu.version_r - 9: 0000000000000460 0 SECTION LOCAL DEFAULT 9 .rela.dyn - 10: 0000000000000550 0 SECTION LOCAL DEFAULT 10 .rela.plt - 11: 00000000000005b0 0 SECTION LOCAL DEFAULT 11 .init - 12: 00000000000005d0 0 SECTION LOCAL DEFAULT 12 .plt - 13: 0000000000000640 0 SECTION LOCAL DEFAULT 13 .text - 14: 0000000000000798 0 SECTION LOCAL DEFAULT 14 .fini - 15: 00000000000007ac 0 SECTION LOCAL DEFAULT 15 .rodata - 16: 00000000000007b0 0 SECTION LOCAL DEFAULT 16 .eh_frame_hdr - 17: 00000000000007f0 0 SECTION LOCAL DEFAULT 17 .eh_frame - 18: 0000000000010db8 0 SECTION LOCAL DEFAULT 18 .init_array - 19: 0000000000010dc0 0 SECTION LOCAL DEFAULT 19 .fini_array - 20: 0000000000010dc8 0 SECTION LOCAL DEFAULT 20 .dynamic - 21: 0000000000010fa8 0 SECTION LOCAL DEFAULT 21 .got - 22: 0000000000010fe8 0 SECTION LOCAL DEFAULT 22 .got.plt - 23: 0000000000011020 0 SECTION LOCAL DEFAULT 23 .data - 24: 0000000000011030 0 SECTION LOCAL DEFAULT 24 .bss - 25: 0000000000000000 0 SECTION LOCAL DEFAULT 25 .comment - 26: 0000000000000000 0 FILE LOCAL DEFAULT ABS Scrt1.o - 27: 0000000000000278 0 NOTYPE LOCAL DEFAULT 3 $d - 28: 0000000000000278 32 OBJECT LOCAL DEFAULT 3 __abi_tag - 29: 0000000000000640 0 NOTYPE LOCAL DEFAULT 13 $x - 30: 0000000000000804 0 NOTYPE LOCAL DEFAULT 17 $d - 31: 00000000000007ac 0 NOTYPE LOCAL DEFAULT 15 $d - 32: 0000000000000000 0 FILE LOCAL DEFAULT ABS crti.o - 33: 0000000000000674 0 NOTYPE LOCAL DEFAULT 13 $x - 34: 0000000000000674 20 FUNC LOCAL DEFAULT 13 call_weak_fn - 35: 00000000000005b0 0 NOTYPE LOCAL DEFAULT 11 $x - 36: 0000000000000798 0 NOTYPE LOCAL DEFAULT 14 $x - 37: 0000000000000000 0 FILE LOCAL DEFAULT ABS crtn.o - 38: 00000000000005c0 0 NOTYPE LOCAL DEFAULT 11 $x - 39: 00000000000007a4 0 NOTYPE LOCAL DEFAULT 14 $x - 40: 0000000000000000 0 FILE LOCAL DEFAULT ABS crtstuff.c - 41: 0000000000000690 0 NOTYPE LOCAL DEFAULT 13 $x - 42: 0000000000000690 0 FUNC LOCAL DEFAULT 13 deregister_tm_clones - 43: 00000000000006c0 0 FUNC LOCAL DEFAULT 13 register_tm_clones - 44: 0000000000011028 0 NOTYPE LOCAL DEFAULT 23 $d - 45: 0000000000000700 0 FUNC LOCAL DEFAULT 13 __do_global_dtors_aux - 46: 0000000000011030 1 OBJECT LOCAL DEFAULT 24 completed.0 - 47: 0000000000010dc0 0 NOTYPE LOCAL DEFAULT 19 $d - 48: 0000000000010dc0 0 OBJECT LOCAL DEFAULT 19 __do_global_dtors_aux_fini_array_entry - 49: 0000000000000750 0 FUNC LOCAL DEFAULT 13 frame_dummy - 50: 0000000000010db8 0 NOTYPE LOCAL DEFAULT 18 $d - 51: 0000000000010db8 0 OBJECT LOCAL DEFAULT 18 __frame_dummy_init_array_entry - 52: 0000000000000818 0 NOTYPE LOCAL DEFAULT 17 $d - 53: 0000000000011030 0 NOTYPE LOCAL DEFAULT 24 $d - 54: 0000000000000000 0 FILE LOCAL DEFAULT ABS basicassign2.c - 55: 0000000000000754 0 NOTYPE LOCAL DEFAULT 13 $x.0 - 56: 0000000000011038 0 NOTYPE LOCAL DEFAULT 24 $d.1 - 57: 000000000000002a 0 NOTYPE LOCAL DEFAULT 25 $d.2 - 58: 0000000000000878 0 NOTYPE LOCAL DEFAULT 17 $d.3 - 59: 0000000000000000 0 FILE LOCAL DEFAULT ABS crtstuff.c - 60: 00000000000008a4 0 NOTYPE LOCAL DEFAULT 17 $d - 61: 00000000000008a4 0 OBJECT LOCAL DEFAULT 17 __FRAME_END__ - 62: 0000000000000000 0 FILE LOCAL DEFAULT ABS - 63: 0000000000010dc8 0 OBJECT LOCAL DEFAULT ABS _DYNAMIC - 64: 00000000000007b0 0 NOTYPE LOCAL DEFAULT 16 __GNU_EH_FRAME_HDR - 65: 0000000000010fa8 0 OBJECT LOCAL DEFAULT ABS _GLOBAL_OFFSET_TABLE_ - 66: 00000000000005d0 0 NOTYPE LOCAL DEFAULT 12 $x - 67: 0000000000000000 0 FUNC GLOBAL DEFAULT UND __libc_start_main@GLIBC_2.34 - 68: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_deregisterTMCloneTable - 69: 0000000000011020 0 NOTYPE WEAK DEFAULT 23 data_start - 70: 0000000000011030 0 NOTYPE GLOBAL DEFAULT 24 __bss_start__ - 71: 0000000000000000 0 FUNC WEAK DEFAULT UND __cxa_finalize@GLIBC_2.17 - 72: 0000000000011048 0 NOTYPE GLOBAL DEFAULT 24 _bss_end__ - 73: 0000000000011030 0 NOTYPE GLOBAL DEFAULT 23 _edata - 74: 0000000000011040 8 OBJECT GLOBAL DEFAULT 24 z - 75: 0000000000000798 0 FUNC GLOBAL HIDDEN 14 _fini - 76: 0000000000011048 0 NOTYPE GLOBAL DEFAULT 24 __bss_end__ - 77: 0000000000011020 0 NOTYPE GLOBAL DEFAULT 23 __data_start - 78: 0000000000000000 0 NOTYPE WEAK DEFAULT UND __gmon_start__ - 79: 0000000000011028 0 OBJECT GLOBAL HIDDEN 23 __dso_handle - 80: 0000000000000000 0 FUNC GLOBAL DEFAULT UND abort@GLIBC_2.17 - 81: 00000000000007ac 4 OBJECT GLOBAL DEFAULT 15 _IO_stdin_used - 82: 0000000000011038 8 OBJECT GLOBAL DEFAULT 24 secret - 83: 0000000000011048 0 NOTYPE GLOBAL DEFAULT 24 _end - 84: 0000000000000640 52 FUNC GLOBAL DEFAULT 13 _start - 85: 0000000000011048 0 NOTYPE GLOBAL DEFAULT 24 __end__ - 86: 0000000000011030 0 NOTYPE GLOBAL DEFAULT 24 __bss_start - 87: 0000000000000754 68 FUNC GLOBAL DEFAULT 13 main - 88: 0000000000011030 0 OBJECT GLOBAL HIDDEN 23 __TMC_END__ - 89: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_registerTMCloneTable - 90: 00000000000005b0 0 FUNC GLOBAL HIDDEN 11 _init diff --git a/src/test/incorrect/basicassign2/clang_pic/basicassign2_gtirb.expected b/src/test/incorrect/basicassign2/clang_pic/basicassign2_gtirb.expected index 98e703f33..a68fabce8 100644 --- a/src/test/incorrect/basicassign2/clang_pic/basicassign2_gtirb.expected +++ b/src/test/incorrect/basicassign2/clang_pic/basicassign2_gtirb.expected @@ -1,21 +1,15 @@ var {:extern} Gamma_R0: bool; -var {:extern} Gamma_R10: bool; -var {:extern} Gamma_R31: bool; var {:extern} Gamma_R8: bool; var {:extern} Gamma_R9: bool; var {:extern} Gamma_mem: [bv64]bool; -var {:extern} Gamma_stack: [bv64]bool; var {:extern} R0: bv64; -var {:extern} R10: bv64; -var {:extern} R31: bv64; var {:extern} R8: bv64; var {:extern} R9: bv64; var {:extern} mem: [bv64]bv8; -var {:extern} stack: [bv64]bv8; const {:extern} $secret_addr: bv64; -axiom ($secret_addr == 69688bv64); +axiom ($secret_addr == 131096bv64); const {:extern} $z_addr: bv64; -axiom ($z_addr == 69696bv64); +axiom ($z_addr == 131104bv64); function {:extern} L(mem$in: [bv64]bv8, index: bv64) returns (bool) { (if (index == $z_addr) then true else (if (index == $secret_addr) then false else false)) } @@ -45,13 +39,13 @@ procedure {:extern} rely(); modifies Gamma_mem, mem; ensures (Gamma_mem == old(Gamma_mem)); ensures (mem == old(mem)); - free ensures (memory_load32_le(mem, 1964bv64) == 131073bv32); - free ensures (memory_load64_le(mem, 69048bv64) == 1872bv64); - free ensures (memory_load64_le(mem, 69056bv64) == 1792bv64); - free ensures (memory_load64_le(mem, 69568bv64) == 69696bv64); - free ensures (memory_load64_le(mem, 69584bv64) == 69688bv64); - free ensures (memory_load64_le(mem, 69592bv64) == 1876bv64); - free ensures (memory_load64_le(mem, 69672bv64) == 69672bv64); + free ensures (memory_load32_le(mem, 2312bv64) == 131073bv32); + free ensures (memory_load64_le(mem, 130424bv64) == 2256bv64); + free ensures (memory_load64_le(mem, 130432bv64) == 2176bv64); + free ensures (memory_load64_le(mem, 131032bv64) == 131104bv64); + free ensures (memory_load64_le(mem, 131048bv64) == 131096bv64); + free ensures (memory_load64_le(mem, 131056bv64) == 2260bv64); + free ensures (memory_load64_le(mem, 131080bv64) == 131080bv64); procedure {:extern} rely_transitive(); modifies Gamma_mem, mem; @@ -69,81 +63,54 @@ procedure {:extern} rely_reflexive(); procedure {:extern} guarantee_reflexive(); modifies Gamma_mem, mem; -procedure main_1876(); - modifies Gamma_R0, Gamma_R10, Gamma_R31, Gamma_R8, Gamma_R9, Gamma_mem, Gamma_stack, R0, R10, R31, R8, R9, mem, stack; - free requires (memory_load64_le(mem, 69664bv64) == 0bv64); - free requires (memory_load64_le(mem, 69672bv64) == 69672bv64); - free requires (memory_load32_le(mem, 1964bv64) == 131073bv32); - free requires (memory_load64_le(mem, 69048bv64) == 1872bv64); - free requires (memory_load64_le(mem, 69056bv64) == 1792bv64); - free requires (memory_load64_le(mem, 69568bv64) == 69696bv64); - free requires (memory_load64_le(mem, 69584bv64) == 69688bv64); - free requires (memory_load64_le(mem, 69592bv64) == 1876bv64); - free requires (memory_load64_le(mem, 69672bv64) == 69672bv64); - free ensures (Gamma_R31 == old(Gamma_R31)); - free ensures (R31 == old(R31)); - free ensures (memory_load32_le(mem, 1964bv64) == 131073bv32); - free ensures (memory_load64_le(mem, 69048bv64) == 1872bv64); - free ensures (memory_load64_le(mem, 69056bv64) == 1792bv64); - free ensures (memory_load64_le(mem, 69568bv64) == 69696bv64); - free ensures (memory_load64_le(mem, 69584bv64) == 69688bv64); - free ensures (memory_load64_le(mem, 69592bv64) == 1876bv64); - free ensures (memory_load64_le(mem, 69672bv64) == 69672bv64); +procedure main(); + modifies Gamma_R0, Gamma_R8, Gamma_R9, Gamma_mem, R0, R8, R9, mem; + free requires (memory_load64_le(mem, 131072bv64) == 0bv64); + free requires (memory_load64_le(mem, 131080bv64) == 131080bv64); + free requires (memory_load32_le(mem, 2312bv64) == 131073bv32); + free requires (memory_load64_le(mem, 130424bv64) == 2256bv64); + free requires (memory_load64_le(mem, 130432bv64) == 2176bv64); + free requires (memory_load64_le(mem, 131032bv64) == 131104bv64); + free requires (memory_load64_le(mem, 131048bv64) == 131096bv64); + free requires (memory_load64_le(mem, 131056bv64) == 2260bv64); + free requires (memory_load64_le(mem, 131080bv64) == 131080bv64); + free ensures (memory_load32_le(mem, 2312bv64) == 131073bv32); + free ensures (memory_load64_le(mem, 130424bv64) == 2256bv64); + free ensures (memory_load64_le(mem, 130432bv64) == 2176bv64); + free ensures (memory_load64_le(mem, 131032bv64) == 131104bv64); + free ensures (memory_load64_le(mem, 131048bv64) == 131096bv64); + free ensures (memory_load64_le(mem, 131056bv64) == 2260bv64); + free ensures (memory_load64_le(mem, 131080bv64) == 131080bv64); -implementation main_1876() +implementation main() { - var Gamma_load13: bool; - var Gamma_load14: bool; - var Gamma_load15: bool; - var Gamma_load16: bool; - var Gamma_load17: bool; - var Gamma_load18: bool; - var load13: bv64; - var load14: bv64; - var load15: bv64; - var load16: bv64; - var load17: bv64; - var load18: bv64; - main_1876__0__BA9VRiRVRpCw4REE15gPpA: - assume {:captureState "main_1876__0__BA9VRiRVRpCw4REE15gPpA"} true; - R31, Gamma_R31 := bvadd64(R31, 18446744073709551600bv64), Gamma_R31; - R8, Gamma_R8 := 65536bv64, true; - call rely(); - load13, Gamma_load13 := memory_load64_le(mem, bvadd64(R8, 4048bv64)), (gamma_load64(Gamma_mem, bvadd64(R8, 4048bv64)) || L(mem, bvadd64(R8, 4048bv64))); - R8, Gamma_R8 := load13, Gamma_load13; - call rely(); - load14, Gamma_load14 := memory_load64_le(mem, R8), (gamma_load64(Gamma_mem, R8) || L(mem, R8)); - R9, Gamma_R9 := load14, Gamma_load14; - stack, Gamma_stack := memory_store64_le(stack, bvadd64(R31, 8bv64), R9), gamma_store64(Gamma_stack, bvadd64(R31, 8bv64), Gamma_R9); - assume {:captureState "1892_0"} true; - stack, Gamma_stack := memory_store64_le(stack, bvadd64(R31, 8bv64), 0bv64), gamma_store64(Gamma_stack, bvadd64(R31, 8bv64), true); - assume {:captureState "1896_0"} true; - load15, Gamma_load15 := memory_load64_le(stack, bvadd64(R31, 8bv64)), gamma_load64(Gamma_stack, bvadd64(R31, 8bv64)); - R10, Gamma_R10 := load15, Gamma_load15; - R9, Gamma_R9 := 65536bv64, true; + var $load5: bv64; + var $load6: bv64; + var $load7: bv64; + var Gamma_$load5: bool; + var Gamma_$load6: bool; + var Gamma_$load7: bool; + $main$__0__$D9t2gNJrSmyMH3GAVRe3IQ: + assume {:captureState "$main$__0__$D9t2gNJrSmyMH3GAVRe3IQ"} true; + R8, Gamma_R8 := 126976bv64, true; + R9, Gamma_R9 := 126976bv64, true; + R0, Gamma_R0 := 0bv64, true; call rely(); - load16, Gamma_load16 := memory_load64_le(mem, bvadd64(R9, 4032bv64)), (gamma_load64(Gamma_mem, bvadd64(R9, 4032bv64)) || L(mem, bvadd64(R9, 4032bv64))); - R9, Gamma_R9 := load16, Gamma_load16; + $load5, Gamma_$load5 := memory_load64_le(mem, bvadd64(R8, 4072bv64)), (gamma_load64(Gamma_mem, bvadd64(R8, 4072bv64)) || L(mem, bvadd64(R8, 4072bv64))); + R8, Gamma_R8 := $load5, Gamma_$load5; call rely(); - assert (L(mem, R9) ==> Gamma_R10); - mem, Gamma_mem := memory_store64_le(mem, R9, R10), gamma_store64(Gamma_mem, R9, Gamma_R10); - assume {:captureState "1912_0"} true; + $load6, Gamma_$load6 := memory_load64_le(mem, R8), (gamma_load64(Gamma_mem, R8) || L(mem, R8)); + R8, Gamma_R8 := $load6, Gamma_$load6; call rely(); - load17, Gamma_load17 := memory_load64_le(mem, R8), (gamma_load64(Gamma_mem, R8) || L(mem, R8)); - R8, Gamma_R8 := load17, Gamma_load17; - stack, Gamma_stack := memory_store64_le(stack, bvadd64(R31, 8bv64), R8), gamma_store64(Gamma_stack, bvadd64(R31, 8bv64), Gamma_R8); - assume {:captureState "1920_0"} true; - load18, Gamma_load18 := memory_load64_le(stack, bvadd64(R31, 8bv64)), gamma_load64(Gamma_stack, bvadd64(R31, 8bv64)); - R8, Gamma_R8 := load18, Gamma_load18; + $load7, Gamma_$load7 := memory_load64_le(mem, bvadd64(R9, 4056bv64)), (gamma_load64(Gamma_mem, bvadd64(R9, 4056bv64)) || L(mem, bvadd64(R9, 4056bv64))); + R9, Gamma_R9 := $load7, Gamma_$load7; call rely(); assert (L(mem, R9) ==> Gamma_R8); mem, Gamma_mem := memory_store64_le(mem, R9, R8), gamma_store64(Gamma_mem, R9, Gamma_R8); - assume {:captureState "1928_0"} true; - R0, Gamma_R0 := 0bv64, true; - R31, Gamma_R31 := bvadd64(R31, 16bv64), Gamma_R31; - goto main_1876_basil_return; - main_1876_basil_return: - assume {:captureState "main_1876_basil_return"} true; + assume {:captureState "2284$0"} true; + goto main_basil_return; + main_basil_return: + assume {:captureState "main_basil_return"} true; return; } diff --git a/src/test/incorrect/basicassign2/gcc/basicassign2.adt b/src/test/incorrect/basicassign2/gcc/basicassign2.adt deleted file mode 100644 index 3e0ae2962..000000000 --- a/src/test/incorrect/basicassign2/gcc/basicassign2.adt +++ /dev/null @@ -1,538 +0,0 @@ -Project(Attrs([Attr("filename","\"gcc/basicassign2.out\""), -Attr("image-specification","(declare abi (name str))\n(declare arch (name str))\n(declare base-address (addr int))\n(declare bias (off int))\n(declare bits (size int))\n(declare code-region (addr int) (size int) (off int))\n(declare code-start (addr int))\n(declare entry-point (addr int))\n(declare external-reference (addr int) (name str))\n(declare format (name str))\n(declare is-executable (flag bool))\n(declare is-little-endian (flag bool))\n(declare llvm:base-address (addr int))\n(declare llvm:code-entry (name str) (off int) (size int))\n(declare llvm:coff-import-library (name str))\n(declare llvm:coff-virtual-section-header (name str) (addr int) (size int))\n(declare llvm:elf-program-header (name str) (off int) (size int))\n(declare llvm:elf-program-header-flags (name str) (ld bool) (r bool) \n (w bool) (x bool))\n(declare llvm:elf-virtual-program-header (name str) (addr int) (size int))\n(declare llvm:entry-point (addr int))\n(declare llvm:macho-symbol (name str) (value int))\n(declare llvm:name-reference (at int) (name str))\n(declare llvm:relocation (at int) (addr int))\n(declare llvm:section-entry (name str) (addr int) (size int) (off int))\n(declare llvm:section-flags (name str) (r bool) (w bool) (x bool))\n(declare llvm:segment-command (name str) (off int) (size int))\n(declare llvm:segment-command-flags (name str) (r bool) (w bool) (x bool))\n(declare llvm:symbol-entry (name str) (addr int) (size int) (off int)\n (value int))\n(declare llvm:virtual-segment-command (name str) (addr int) (size int))\n(declare mapped (addr int) (size int) (off int))\n(declare named-region (addr int) (size int) (name str))\n(declare named-symbol (addr int) (name str))\n(declare require (name str))\n(declare section (addr int) (size int))\n(declare segment (addr int) (size int) (r bool) (w bool) (x bool))\n(declare subarch (name str))\n(declare symbol-chunk (addr int) (size int) (root int))\n(declare symbol-value (addr int) (value int))\n(declare system (name str))\n(declare vendor (name str))\n\n(abi unknown)\n(arch aarch64)\n(base-address 0)\n(bias 0)\n(bits 64)\n(code-region 1896 20 1896)\n(code-region 1536 360 1536)\n(code-region 1440 96 1440)\n(code-region 1408 24 1408)\n(code-start 1588)\n(code-start 1536)\n(code-start 1812)\n(entry-point 1536)\n(external-reference 69592 _ITM_deregisterTMCloneTable)\n(external-reference 69600 __cxa_finalize)\n(external-reference 69608 __gmon_start__)\n(external-reference 69624 _ITM_registerTMCloneTable)\n(external-reference 69552 __libc_start_main)\n(external-reference 69560 __cxa_finalize)\n(external-reference 69568 __gmon_start__)\n(external-reference 69576 abort)\n(format elf)\n(is-executable true)\n(is-little-endian true)\n(llvm:base-address 0)\n(llvm:code-entry abort 0 0)\n(llvm:code-entry __cxa_finalize 0 0)\n(llvm:code-entry __libc_start_main 0 0)\n(llvm:code-entry _init 1408 0)\n(llvm:code-entry main 1812 84)\n(llvm:code-entry _start 1536 52)\n(llvm:code-entry abort@GLIBC_2.17 0 0)\n(llvm:code-entry _fini 1896 0)\n(llvm:code-entry __cxa_finalize@GLIBC_2.17 0 0)\n(llvm:code-entry __libc_start_main@GLIBC_2.34 0 0)\n(llvm:code-entry frame_dummy 1808 0)\n(llvm:code-entry __do_global_dtors_aux 1728 0)\n(llvm:code-entry register_tm_clones 1664 0)\n(llvm:code-entry deregister_tm_clones 1616 0)\n(llvm:code-entry call_weak_fn 1588 20)\n(llvm:code-entry .fini 1896 20)\n(llvm:code-entry .text 1536 360)\n(llvm:code-entry .plt 1440 96)\n(llvm:code-entry .init 1408 24)\n(llvm:elf-program-header 08 3480 616)\n(llvm:elf-program-header 07 0 0)\n(llvm:elf-program-header 06 1920 60)\n(llvm:elf-program-header 05 596 68)\n(llvm:elf-program-header 04 3496 496)\n(llvm:elf-program-header 03 3480 632)\n(llvm:elf-program-header 02 0 2148)\n(llvm:elf-program-header 01 568 27)\n(llvm:elf-program-header 00 64 504)\n(llvm:elf-program-header-flags 08 false true false false)\n(llvm:elf-program-header-flags 07 false true true false)\n(llvm:elf-program-header-flags 06 false true false false)\n(llvm:elf-program-header-flags 05 false true false false)\n(llvm:elf-program-header-flags 04 false true true false)\n(llvm:elf-program-header-flags 03 true true true false)\n(llvm:elf-program-header-flags 02 true true false true)\n(llvm:elf-program-header-flags 01 false true false false)\n(llvm:elf-program-header-flags 00 false true false false)\n(llvm:elf-virtual-program-header 08 69016 616)\n(llvm:elf-virtual-program-header 07 0 0)\n(llvm:elf-virtual-program-header 06 1920 60)\n(llvm:elf-virtual-program-header 05 596 68)\n(llvm:elf-virtual-program-header 04 69032 496)\n(llvm:elf-virtual-program-header 03 69016 656)\n(llvm:elf-virtual-program-header 02 0 2148)\n(llvm:elf-virtual-program-header 01 568 27)\n(llvm:elf-virtual-program-header 00 64 504)\n(llvm:entry-point 1536)\n(llvm:name-reference 69576 abort)\n(llvm:name-reference 69568 __gmon_start__)\n(llvm:name-reference 69560 __cxa_finalize)\n(llvm:name-reference 69552 __libc_start_main)\n(llvm:name-reference 69624 _ITM_registerTMCloneTable)\n(llvm:name-reference 69608 __gmon_start__)\n(llvm:name-reference 69600 __cxa_finalize)\n(llvm:name-reference 69592 _ITM_deregisterTMCloneTable)\n(llvm:section-entry .shstrtab 0 250 6853)\n(llvm:section-entry .strtab 0 557 6296)\n(llvm:section-entry .symtab 0 2136 4160)\n(llvm:section-entry .comment 0 43 4112)\n(llvm:section-entry .bss 69648 24 4112)\n(llvm:section-entry .data 69632 16 4096)\n(llvm:section-entry .got 69528 104 3992)\n(llvm:section-entry .dynamic 69032 496 3496)\n(llvm:section-entry .fini_array 69024 8 3488)\n(llvm:section-entry .init_array 69016 8 3480)\n(llvm:section-entry .eh_frame 1984 164 1984)\n(llvm:section-entry .eh_frame_hdr 1920 60 1920)\n(llvm:section-entry .rodata 1916 4 1916)\n(llvm:section-entry .fini 1896 20 1896)\n(llvm:section-entry .text 1536 360 1536)\n(llvm:section-entry .plt 1440 96 1440)\n(llvm:section-entry .init 1408 24 1408)\n(llvm:section-entry .rela.plt 1312 96 1312)\n(llvm:section-entry .rela.dyn 1120 192 1120)\n(llvm:section-entry .gnu.version_r 1072 48 1072)\n(llvm:section-entry .gnu.version 1054 18 1054)\n(llvm:section-entry .dynstr 912 141 912)\n(llvm:section-entry .dynsym 696 216 696)\n(llvm:section-entry .gnu.hash 664 28 664)\n(llvm:section-entry .note.ABI-tag 632 32 632)\n(llvm:section-entry .note.gnu.build-id 596 36 596)\n(llvm:section-entry .interp 568 27 568)\n(llvm:section-flags .shstrtab true false false)\n(llvm:section-flags .strtab true false false)\n(llvm:section-flags .symtab true false false)\n(llvm:section-flags .comment true false false)\n(llvm:section-flags .bss true true false)\n(llvm:section-flags .data true true false)\n(llvm:section-flags .got true true false)\n(llvm:section-flags .dynamic true true false)\n(llvm:section-flags .fini_array true true false)\n(llvm:section-flags .init_array true true false)\n(llvm:section-flags .eh_frame true false false)\n(llvm:section-flags .eh_frame_hdr true false false)\n(llvm:section-flags .rodata true false false)\n(llvm:section-flags .fini true false true)\n(llvm:section-flags .text true false true)\n(llvm:section-flags .plt true false true)\n(llvm:section-flags .init true false true)\n(llvm:section-flags .rela.plt true false false)\n(llvm:section-flags .rela.dyn true false false)\n(llvm:section-flags .gnu.version_r true false false)\n(llvm:section-flags .gnu.version true false false)\n(llvm:section-flags .dynstr true false false)\n(llvm:section-flags .dynsym true false false)\n(llvm:section-flags .gnu.hash true false false)\n(llvm:section-flags .note.ABI-tag true false false)\n(llvm:section-flags .note.gnu.build-id true false false)\n(llvm:section-flags .interp true false false)\n(llvm:symbol-entry abort 0 0 0 0)\n(llvm:symbol-entry __cxa_finalize 0 0 0 0)\n(llvm:symbol-entry __libc_start_main 0 0 0 0)\n(llvm:symbol-entry _init 1408 0 1408 1408)\n(llvm:symbol-entry main 1812 84 1812 1812)\n(llvm:symbol-entry _start 1536 52 1536 1536)\n(llvm:symbol-entry abort@GLIBC_2.17 0 0 0 0)\n(llvm:symbol-entry _fini 1896 0 1896 1896)\n(llvm:symbol-entry __cxa_finalize@GLIBC_2.17 0 0 0 0)\n(llvm:symbol-entry __libc_start_main@GLIBC_2.34 0 0 0 0)\n(llvm:symbol-entry frame_dummy 1808 0 1808 1808)\n(llvm:symbol-entry __do_global_dtors_aux 1728 0 1728 1728)\n(llvm:symbol-entry register_tm_clones 1664 0 1664 1664)\n(llvm:symbol-entry deregister_tm_clones 1616 0 1616 1616)\n(llvm:symbol-entry call_weak_fn 1588 20 1588 1588)\n(mapped 0 2148 0)\n(mapped 69016 632 3480)\n(named-region 0 2148 02)\n(named-region 69016 656 03)\n(named-region 568 27 .interp)\n(named-region 596 36 .note.gnu.build-id)\n(named-region 632 32 .note.ABI-tag)\n(named-region 664 28 .gnu.hash)\n(named-region 696 216 .dynsym)\n(named-region 912 141 .dynstr)\n(named-region 1054 18 .gnu.version)\n(named-region 1072 48 .gnu.version_r)\n(named-region 1120 192 .rela.dyn)\n(named-region 1312 96 .rela.plt)\n(named-region 1408 24 .init)\n(named-region 1440 96 .plt)\n(named-region 1536 360 .text)\n(named-region 1896 20 .fini)\n(named-region 1916 4 .rodata)\n(named-region 1920 60 .eh_frame_hdr)\n(named-region 1984 164 .eh_frame)\n(named-region 69016 8 .init_array)\n(named-region 69024 8 .fini_array)\n(named-region 69032 496 .dynamic)\n(named-region 69528 104 .got)\n(named-region 69632 16 .data)\n(named-region 69648 24 .bss)\n(named-region 0 43 .comment)\n(named-region 0 2136 .symtab)\n(named-region 0 557 .strtab)\n(named-region 0 250 .shstrtab)\n(named-symbol 1588 call_weak_fn)\n(named-symbol 1616 deregister_tm_clones)\n(named-symbol 1664 register_tm_clones)\n(named-symbol 1728 __do_global_dtors_aux)\n(named-symbol 1808 frame_dummy)\n(named-symbol 0 __libc_start_main@GLIBC_2.34)\n(named-symbol 0 __cxa_finalize@GLIBC_2.17)\n(named-symbol 1896 _fini)\n(named-symbol 0 abort@GLIBC_2.17)\n(named-symbol 1536 _start)\n(named-symbol 1812 main)\n(named-symbol 1408 _init)\n(named-symbol 0 __libc_start_main)\n(named-symbol 0 __cxa_finalize)\n(named-symbol 0 abort)\n(require libc.so.6)\n(section 568 27)\n(section 596 36)\n(section 632 32)\n(section 664 28)\n(section 696 216)\n(section 912 141)\n(section 1054 18)\n(section 1072 48)\n(section 1120 192)\n(section 1312 96)\n(section 1408 24)\n(section 1440 96)\n(section 1536 360)\n(section 1896 20)\n(section 1916 4)\n(section 1920 60)\n(section 1984 164)\n(section 69016 8)\n(section 69024 8)\n(section 69032 496)\n(section 69528 104)\n(section 69632 16)\n(section 69648 24)\n(section 0 43)\n(section 0 2136)\n(section 0 557)\n(section 0 250)\n(segment 0 2148 true false true)\n(segment 69016 656 true true false)\n(subarch v8)\n(symbol-chunk 1588 20 1588)\n(symbol-chunk 1536 52 1536)\n(symbol-chunk 1812 84 1812)\n(symbol-value 1588 1588)\n(symbol-value 1616 1616)\n(symbol-value 1664 1664)\n(symbol-value 1728 1728)\n(symbol-value 1808 1808)\n(symbol-value 1896 1896)\n(symbol-value 1536 1536)\n(symbol-value 1812 1812)\n(symbol-value 1408 1408)\n(symbol-value 0 0)\n(system \"\")\n(vendor \"\")\n"), -Attr("abi-name","\"aarch64-linux-gnu-elf\"")]), -Sections([Section(".shstrtab", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x00\x06\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xc0\x1b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x38\x00\x09\x00\x40\x00\x1c\x00\x1b\x00\x06\x00\x00\x00\x04\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x04\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\x08\x00\x00\x00\x00\x00\x00\x64\x08\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x01\x00\x00\x00\x06\x00\x00\x00\x98\x0d\x00\x00\x00\x00\x00\x00\x98\x0d"), -Section(".strtab", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x00\x06\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xc0\x1b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x38\x00\x09\x00\x40\x00\x1c\x00\x1b\x00\x06\x00\x00\x00\x04\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x04\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\x08\x00\x00\x00\x00\x00\x00\x64\x08\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x01\x00\x00\x00\x06\x00\x00\x00\x98\x0d\x00\x00\x00\x00\x00\x00\x98\x0d\x01\x00\x00\x00\x00\x00\x98\x0d\x01\x00\x00\x00\x00\x00\x78\x02\x00\x00\x00\x00\x00\x00\x90\x02\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x02\x00\x00\x00\x06\x00\x00\x00\xa8\x0d\x00\x00\x00\x00\x00\x00\xa8\x0d\x01\x00\x00\x00\x00\x00\xa8\x0d\x01\x00\x00\x00\x00\x00\xf0\x01\x00\x00\x00\x00\x00\x00\xf0\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x04\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x50\xe5\x74\x64\x04\x00\x00\x00\x80\x07\x00\x00\x00\x00\x00\x00\x80\x07\x00\x00\x00\x00\x00\x00\x80\x07\x00\x00\x00\x00\x00\x00\x3c\x00\x00\x00\x00\x00\x00\x00\x3c\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x51\xe5\x74\x64\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x52\xe5\x74\x64\x04\x00\x00\x00\x98\x0d\x00\x00\x00\x00\x00\x00\x98\x0d\x01\x00\x00\x00\x00\x00\x98\x0d\x01\x00\x00\x00\x00\x00\x68\x02\x00\x00\x00\x00\x00\x00\x68\x02\x00\x00\x00"), -Section(".symtab", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x00\x06\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xc0\x1b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x38\x00\x09\x00\x40\x00\x1c\x00\x1b\x00\x06\x00\x00\x00\x04\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x04\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\x08\x00\x00\x00\x00\x00\x00\x64\x08\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x01\x00\x00\x00\x06\x00\x00\x00\x98\x0d\x00\x00\x00\x00\x00\x00\x98\x0d\x01\x00\x00\x00\x00\x00\x98\x0d\x01\x00\x00\x00\x00\x00\x78\x02\x00\x00\x00\x00\x00\x00\x90\x02\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x02\x00\x00\x00\x06\x00\x00\x00\xa8\x0d\x00\x00\x00\x00\x00\x00\xa8\x0d\x01\x00\x00\x00\x00\x00\xa8\x0d\x01\x00\x00\x00\x00\x00\xf0\x01\x00\x00\x00\x00\x00\x00\xf0\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x04\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x50\xe5\x74\x64\x04\x00\x00\x00\x80\x07\x00\x00\x00\x00\x00\x00\x80\x07\x00\x00\x00\x00\x00\x00\x80\x07\x00\x00\x00\x00\x00\x00\x3c\x00\x00\x00\x00\x00\x00\x00\x3c\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x51\xe5\x74\x64\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x52\xe5\x74\x64\x04\x00\x00\x00\x98\x0d\x00\x00\x00\x00\x00\x00\x98\x0d\x01\x00\x00\x00\x00\x00\x98\x0d\x01\x00\x00\x00\x00\x00\x68\x02\x00\x00\x00\x00\x00\x00\x68\x02\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x2f\x6c\x69\x62\x2f\x6c\x64\x2d\x6c\x69\x6e\x75\x78\x2d\x61\x61\x72\x63\x68\x36\x34\x2e\x73\x6f\x2e\x31\x00\x00\x04\x00\x00\x00\x14\x00\x00\x00\x03\x00\x00\x00\x47\x4e\x55\x00\xb8\xb7\x79\x63\x50\x73\x03\xdc\x4a\xc4\xf7\xb1\x72\x7b\xa9\x27\xe0\xdf\x56\xb1\x04\x00\x00\x00\x10\x00\x00\x00\x01\x00\x00\x00\x47\x4e\x55\x00\x00\x00\x00\x00\x03\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x01\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x0b\x00\x80\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x16\x00\x00\x10\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x48\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x22\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x22\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x73\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5f\x5f\x63\x78\x61\x5f\x66\x69\x6e\x61\x6c\x69\x7a\x65\x00\x5f\x5f\x6c\x69\x62\x63\x5f\x73\x74\x61\x72\x74\x5f\x6d\x61\x69\x6e\x00\x61\x62\x6f\x72\x74\x00\x6c\x69\x62\x63\x2e\x73\x6f\x2e\x36\x00\x47\x4c\x49\x42\x43\x5f\x32\x2e\x31\x37\x00\x47\x4c\x49\x42\x43\x5f\x32\x2e\x33\x34\x00\x5f\x49\x54\x4d\x5f\x64\x65\x72\x65\x67\x69\x73\x74\x65\x72\x54\x4d\x43\x6c\x6f\x6e\x65\x54\x61\x62\x6c\x65\x00\x5f\x5f\x67\x6d\x6f\x6e\x5f\x73\x74\x61\x72\x74\x5f\x5f\x00\x5f\x49\x54\x4d\x5f\x72\x65\x67\x69\x73\x74\x65\x72\x54\x4d\x43\x6c\x6f\x6e\x65\x54\x61\x62\x6c\x65\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x01\x00\x03\x00\x01\x00\x03\x00\x01\x00\x01\x00\x02\x00\x28\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x97\x91\x96\x06\x00\x00\x03\x00\x32\x00\x00\x00\x10\x00\x00\x00\xb4\x91\x96\x06\x00\x00\x02\x00\x3d\x00\x00\x00\x00\x00\x00\x00\x98\x0d\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x10\x07\x00\x00\x00\x00\x00\x00\xa0\x0d\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\xc0\x06\x00\x00\x00\x00\x00\x00\xf0\x0f\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x14\x07\x00\x00\x00\x00\x00\x00\x08\x10\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x08\x10\x01\x00\x00\x00\x00\x00\xd8\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe0\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe8\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xf8\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xb0\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xb8\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xc0\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xc8\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1f\x20\x03\xd5\xfd\x7b\xbf\xa9\xfd\x03\x00\x91\x2a\x00\x00\x94\xfd\x7b\xc1\xa8\xc0\x03\x5f\xd6\x00\x00\x00\x00\x00\x00\x00\x00\xf0\x7b\xbf\xa9\x90\x00\x00\x90\x11\xd6\x47\xf9\x10\xa2\x3e\x91\x20\x02\x1f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x90\x00\x00\x90\x11\xda\x47\xf9\x10\xc2\x3e\x91\x20\x02\x1f\xd6\x90\x00\x00\x90\x11\xde\x47\xf9\x10\xe2\x3e\x91\x20\x02\x1f\xd6\x90\x00\x00\x90\x11\xe2\x47\xf9\x10\x02\x3f\x91\x20\x02\x1f\xd6\x90\x00\x00\x90\x11\xe6\x47\xf9\x10\x22\x3f\x91\x20\x02\x1f\xd6\x1f\x20\x03\xd5\x1d\x00\x80\xd2\x1e\x00\x80\xd2\xe5\x03\x00\xaa\xe1\x03\x40\xf9\xe2\x23\x00\x91\xe6\x03\x00\x91\x80\x00\x00\x90\x00\xf8\x47\xf9\x03\x00\x80\xd2\x04\x00\x80\xd2\xe5\xff\xff\x97\xf0\xff\xff\x97\x80\x00\x00\x90\x00\xf4\x47\xf9\x40\x00\x00\xb4\xe8\xff\xff\x17\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x80\x00\x00\xb0\x00\x40\x00\x91\x81\x00\x00\xb0\x21\x40\x00\x91\x3f\x00\x00\xeb\xc0\x00\x00\x54\x81\x00\x00\x90\x21\xec\x47\xf9\x61\x00\x00\xb4\xf0\x03\x01\xaa\x00\x02\x1f\xd6\xc0\x03\x5f\xd6\x80\x00\x00\xb0\x00\x40\x00\x91\x81\x00\x00\xb0\x21\x40\x00\x91\x21\x00\x00\xcb\x22\xfc\x7f\xd3\x41\x0c\x81\x8b\x21\xfc\x41\x93\xc1\x00\x00\xb4\x82\x00\x00\x90\x42\xfc\x47\xf9\x62\x00\x00\xb4\xf0\x03\x02\xaa\x00\x02\x1f\xd6\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\xfd\x7b\xbe\xa9\xfd\x03\x00\x91\xf3\x0b\x00\xf9\x93\x00\x00\xb0\x60\x42\x40\x39\x40\x01\x00\x35\x80\x00\x00\x90\x00\xf0\x47\xf9\x80\x00\x00\xb4\x80\x00\x00\xb0\x00\x04\x40\xf9\xb9\xff\xff\x97\xd8\xff\xff\x97\x20\x00\x80\x52\x60\x42\x00\x39\xf3\x0b\x40\xf9\xfd\x7b\xc2\xa8\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\xdc\xff\xff\x17\xff\x43\x00\xd1\x80\x00\x00\xb0\x00\x80\x00\x91\x00\x00\x40\xf9\xe0\x07\x00\xf9\xff\x07\x00\xf9\x80\x00\x00\xb0\x00\x60\x00\x91\xe1\x07\x40\xf9\x01\x00\x00\xf9\x80\x00\x00\xb0\x00\x80\x00\x91\x00\x00\x40\xf9\xe0\x07\x00\xf9\x80\x00\x00\xb0\x00\x60\x00\x91\xe1\x07\x40\xf9\x01\x00\x00\xf9\x00\x00\x80\x52\xff\x43\x00\x91\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\xfd\x7b\xbf\xa9\xfd\x03\x00\x91\xfd\x7b\xc1\xa8\xc0\x03\x5f\xd6\x01\x00\x02\x00\x01\x1b\x03\x3b\x3c\x00\x00\x00\x06\x00\x00\x00\x80\xfe\xff\xff\x54\x00\x00\x00\xd0\xfe\xff\xff\x68\x00\x00\x00\x00\xff\xff\xff\x7c\x00\x00\x00\x40\xff\xff\xff\x90\x00\x00\x00\x90\xff\xff\xff\xb4\x00\x00\x00\x94\xff\xff\xff\xc8\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x01\x7a\x52\x00\x04\x78\x1e\x01\x1b\x0c\x1f\x00\x10\x00\x00\x00\x18\x00\x00\x00\x24\xfe\xff\xff\x34\x00\x00\x00\x00\x41\x07\x1e\x10\x00\x00\x00\x2c\x00\x00\x00\x60\xfe\xff\xff\x30\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x40\x00\x00\x00\x7c\xfe\xff\xff\x3c\x00\x00\x00\x00\x00\x00\x00\x20\x00\x00\x00\x54\x00\x00\x00\xa8\xfe\xff\xff\x48\x00\x00\x00\x00\x41\x0e\x20\x9d\x04\x9e\x03\x42\x93\x02\x4e\xde\xdd\xd3\x0e\x00\x00\x00\x00\x10\x00\x00\x00\x78\x00\x00\x00\xd4\xfe\xff\xff\x04\x00\x00\x00\x00\x00\x00\x00\x14\x00\x00\x00\x8c\x00\x00\x00\xc4\xfe\xff\xff\x54\x00\x00\x00"), -Section(".comment", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x00\x06\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xc0\x1b\x00"), -Section(".interp", 0x238, "\x2f\x6c\x69\x62\x2f\x6c\x64\x2d\x6c\x69\x6e\x75\x78\x2d\x61\x61\x72\x63\x68\x36\x34\x2e\x73\x6f\x2e\x31\x00"), -Section(".note.gnu.build-id", 0x254, "\x04\x00\x00\x00\x14\x00\x00\x00\x03\x00\x00\x00\x47\x4e\x55\x00\xb8\xb7\x79\x63\x50\x73\x03\xdc\x4a\xc4\xf7\xb1\x72\x7b\xa9\x27\xe0\xdf\x56\xb1"), -Section(".note.ABI-tag", 0x278, "\x04\x00\x00\x00\x10\x00\x00\x00\x01\x00\x00\x00\x47\x4e\x55\x00\x00\x00\x00\x00\x03\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00"), -Section(".gnu.hash", 0x298, "\x01\x00\x00\x00\x01\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".dynsym", 0x2B8, "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x0b\x00\x80\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x16\x00\x00\x10\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x48\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x22\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x22\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x73\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".dynstr", 0x390, "\x00\x5f\x5f\x63\x78\x61\x5f\x66\x69\x6e\x61\x6c\x69\x7a\x65\x00\x5f\x5f\x6c\x69\x62\x63\x5f\x73\x74\x61\x72\x74\x5f\x6d\x61\x69\x6e\x00\x61\x62\x6f\x72\x74\x00\x6c\x69\x62\x63\x2e\x73\x6f\x2e\x36\x00\x47\x4c\x49\x42\x43\x5f\x32\x2e\x31\x37\x00\x47\x4c\x49\x42\x43\x5f\x32\x2e\x33\x34\x00\x5f\x49\x54\x4d\x5f\x64\x65\x72\x65\x67\x69\x73\x74\x65\x72\x54\x4d\x43\x6c\x6f\x6e\x65\x54\x61\x62\x6c\x65\x00\x5f\x5f\x67\x6d\x6f\x6e\x5f\x73\x74\x61\x72\x74\x5f\x5f\x00\x5f\x49\x54\x4d\x5f\x72\x65\x67\x69\x73\x74\x65\x72\x54\x4d\x43\x6c\x6f\x6e\x65\x54\x61\x62\x6c\x65\x00"), -Section(".gnu.version", 0x41E, "\x00\x00\x00\x00\x00\x00\x02\x00\x01\x00\x03\x00\x01\x00\x03\x00\x01\x00"), -Section(".gnu.version_r", 0x430, "\x01\x00\x02\x00\x28\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x97\x91\x96\x06\x00\x00\x03\x00\x32\x00\x00\x00\x10\x00\x00\x00\xb4\x91\x96\x06\x00\x00\x02\x00\x3d\x00\x00\x00\x00\x00\x00\x00"), -Section(".rela.dyn", 0x460, "\x98\x0d\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x10\x07\x00\x00\x00\x00\x00\x00\xa0\x0d\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\xc0\x06\x00\x00\x00\x00\x00\x00\xf0\x0f\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x14\x07\x00\x00\x00\x00\x00\x00\x08\x10\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x08\x10\x01\x00\x00\x00\x00\x00\xd8\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe0\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe8\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xf8\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".rela.plt", 0x520, "\xb0\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xb8\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xc0\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xc8\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".init", 0x580, "\x1f\x20\x03\xd5\xfd\x7b\xbf\xa9\xfd\x03\x00\x91\x2a\x00\x00\x94\xfd\x7b\xc1\xa8\xc0\x03\x5f\xd6"), -Section(".plt", 0x5A0, "\xf0\x7b\xbf\xa9\x90\x00\x00\x90\x11\xd6\x47\xf9\x10\xa2\x3e\x91\x20\x02\x1f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x90\x00\x00\x90\x11\xda\x47\xf9\x10\xc2\x3e\x91\x20\x02\x1f\xd6\x90\x00\x00\x90\x11\xde\x47\xf9\x10\xe2\x3e\x91\x20\x02\x1f\xd6\x90\x00\x00\x90\x11\xe2\x47\xf9\x10\x02\x3f\x91\x20\x02\x1f\xd6\x90\x00\x00\x90\x11\xe6\x47\xf9\x10\x22\x3f\x91\x20\x02\x1f\xd6"), -Section(".fini", 0x768, "\x1f\x20\x03\xd5\xfd\x7b\xbf\xa9\xfd\x03\x00\x91\xfd\x7b\xc1\xa8\xc0\x03\x5f\xd6"), -Section(".rodata", 0x77C, "\x01\x00\x02\x00"), -Section(".eh_frame_hdr", 0x780, "\x01\x1b\x03\x3b\x3c\x00\x00\x00\x06\x00\x00\x00\x80\xfe\xff\xff\x54\x00\x00\x00\xd0\xfe\xff\xff\x68\x00\x00\x00\x00\xff\xff\xff\x7c\x00\x00\x00\x40\xff\xff\xff\x90\x00\x00\x00\x90\xff\xff\xff\xb4\x00\x00\x00\x94\xff\xff\xff\xc8\x00\x00\x00"), -Section(".eh_frame", 0x7C0, "\x10\x00\x00\x00\x00\x00\x00\x00\x01\x7a\x52\x00\x04\x78\x1e\x01\x1b\x0c\x1f\x00\x10\x00\x00\x00\x18\x00\x00\x00\x24\xfe\xff\xff\x34\x00\x00\x00\x00\x41\x07\x1e\x10\x00\x00\x00\x2c\x00\x00\x00\x60\xfe\xff\xff\x30\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x40\x00\x00\x00\x7c\xfe\xff\xff\x3c\x00\x00\x00\x00\x00\x00\x00\x20\x00\x00\x00\x54\x00\x00\x00\xa8\xfe\xff\xff\x48\x00\x00\x00\x00\x41\x0e\x20\x9d\x04\x9e\x03\x42\x93\x02\x4e\xde\xdd\xd3\x0e\x00\x00\x00\x00\x10\x00\x00\x00\x78\x00\x00\x00\xd4\xfe\xff\xff\x04\x00\x00\x00\x00\x00\x00\x00\x14\x00\x00\x00\x8c\x00\x00\x00\xc4\xfe\xff\xff\x54\x00\x00\x00\x00\x41\x0e\x10\x53\x0e\x00\x00\x00\x00\x00\x00"), -Section(".fini_array", 0x10DA0, "\xc0\x06\x00\x00\x00\x00\x00\x00"), -Section(".dynamic", 0x10DA8, "\x01\x00\x00\x00\x00\x00\x00\x00\x28\x00\x00\x00\x00\x00\x00\x00\x0c\x00\x00\x00\x00\x00\x00\x00\x80\x05\x00\x00\x00\x00\x00\x00\x0d\x00\x00\x00\x00\x00\x00\x00\x68\x07\x00\x00\x00\x00\x00\x00\x19\x00\x00\x00\x00\x00\x00\x00\x98\x0d\x01\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x1a\x00\x00\x00\x00\x00\x00\x00\xa0\x0d\x01\x00\x00\x00\x00\x00\x1c\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\xf5\xfe\xff\x6f\x00\x00\x00\x00\x98\x02\x00\x00\x00\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x90\x03\x00\x00\x00\x00\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\xb8\x02\x00\x00\x00\x00\x00\x00\x0a\x00\x00\x00\x00\x00\x00\x00\x8d\x00\x00\x00\x00\x00\x00\x00\x0b\x00\x00\x00\x00\x00\x00\x00\x18\x00\x00\x00\x00\x00\x00\x00\x15\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x98\x0f\x01\x00\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x60\x00\x00\x00\x00\x00\x00\x00\x14\x00\x00\x00\x00\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x17\x00\x00\x00\x00\x00\x00\x00\x20\x05\x00\x00\x00\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x60\x04\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\xc0\x00\x00\x00\x00\x00\x00\x00\x09\x00\x00\x00\x00\x00\x00\x00\x18\x00\x00\x00\x00\x00\x00\x00\x1e\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\xfb\xff\xff\x6f\x00\x00\x00\x00\x01\x00\x00\x08\x00\x00\x00\x00\xfe\xff\xff\x6f\x00\x00\x00\x00\x30\x04\x00\x00\x00\x00\x00\x00\xff\xff\xff\x6f\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\xf0\xff\xff\x6f\x00\x00\x00\x00\x1e\x04\x00\x00\x00\x00\x00\x00\xf9\xff\xff\x6f\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".got", 0x10F98, "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xa0\x05\x00\x00\x00\x00\x00\x00\xa0\x05\x00\x00\x00\x00\x00\x00\xa0\x05\x00\x00\x00\x00\x00\x00\xa0\x05\x00\x00\x00\x00\x00\x00\xa8\x0d\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x14\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".data", 0x11000, "\x00\x00\x00\x00\x00\x00\x00\x00\x08\x10\x01\x00\x00\x00\x00\x00"), -Section(".init_array", 0x10D98, "\x10\x07\x00\x00\x00\x00\x00\x00"), -Section(".text", 0x600, "\x1f\x20\x03\xd5\x1d\x00\x80\xd2\x1e\x00\x80\xd2\xe5\x03\x00\xaa\xe1\x03\x40\xf9\xe2\x23\x00\x91\xe6\x03\x00\x91\x80\x00\x00\x90\x00\xf8\x47\xf9\x03\x00\x80\xd2\x04\x00\x80\xd2\xe5\xff\xff\x97\xf0\xff\xff\x97\x80\x00\x00\x90\x00\xf4\x47\xf9\x40\x00\x00\xb4\xe8\xff\xff\x17\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x80\x00\x00\xb0\x00\x40\x00\x91\x81\x00\x00\xb0\x21\x40\x00\x91\x3f\x00\x00\xeb\xc0\x00\x00\x54\x81\x00\x00\x90\x21\xec\x47\xf9\x61\x00\x00\xb4\xf0\x03\x01\xaa\x00\x02\x1f\xd6\xc0\x03\x5f\xd6\x80\x00\x00\xb0\x00\x40\x00\x91\x81\x00\x00\xb0\x21\x40\x00\x91\x21\x00\x00\xcb\x22\xfc\x7f\xd3\x41\x0c\x81\x8b\x21\xfc\x41\x93\xc1\x00\x00\xb4\x82\x00\x00\x90\x42\xfc\x47\xf9\x62\x00\x00\xb4\xf0\x03\x02\xaa\x00\x02\x1f\xd6\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\xfd\x7b\xbe\xa9\xfd\x03\x00\x91\xf3\x0b\x00\xf9\x93\x00\x00\xb0\x60\x42\x40\x39\x40\x01\x00\x35\x80\x00\x00\x90\x00\xf0\x47\xf9\x80\x00\x00\xb4\x80\x00\x00\xb0\x00\x04\x40\xf9\xb9\xff\xff\x97\xd8\xff\xff\x97\x20\x00\x80\x52\x60\x42\x00\x39\xf3\x0b\x40\xf9\xfd\x7b\xc2\xa8\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\xdc\xff\xff\x17\xff\x43\x00\xd1\x80\x00\x00\xb0\x00\x80\x00\x91\x00\x00\x40\xf9\xe0\x07\x00\xf9\xff\x07\x00\xf9\x80\x00\x00\xb0\x00\x60\x00\x91\xe1\x07\x40\xf9\x01\x00\x00\xf9\x80\x00\x00\xb0\x00\x80\x00\x91\x00\x00\x40\xf9\xe0\x07\x00\xf9\x80\x00\x00\xb0\x00\x60\x00\x91\xe1\x07\x40\xf9\x01\x00\x00\xf9\x00\x00\x80\x52\xff\x43\x00\x91\xc0\x03\x5f\xd6")]), -Memmap([Annotation(Region(0x0,0x863), Attr("segment","02 0 2148")), -Annotation(Region(0x600,0x633), Attr("symbol","\"_start\"")), -Annotation(Region(0x0,0xF9), Attr("section","\".shstrtab\"")), -Annotation(Region(0x0,0x22C), Attr("section","\".strtab\"")), -Annotation(Region(0x0,0x857), Attr("section","\".symtab\"")), -Annotation(Region(0x0,0x2A), Attr("section","\".comment\"")), -Annotation(Region(0x238,0x252), Attr("section","\".interp\"")), -Annotation(Region(0x254,0x277), Attr("section","\".note.gnu.build-id\"")), -Annotation(Region(0x278,0x297), Attr("section","\".note.ABI-tag\"")), -Annotation(Region(0x298,0x2B3), Attr("section","\".gnu.hash\"")), -Annotation(Region(0x2B8,0x38F), Attr("section","\".dynsym\"")), -Annotation(Region(0x390,0x41C), Attr("section","\".dynstr\"")), -Annotation(Region(0x41E,0x42F), Attr("section","\".gnu.version\"")), -Annotation(Region(0x430,0x45F), Attr("section","\".gnu.version_r\"")), -Annotation(Region(0x460,0x51F), Attr("section","\".rela.dyn\"")), -Annotation(Region(0x520,0x57F), Attr("section","\".rela.plt\"")), -Annotation(Region(0x580,0x597), Attr("section","\".init\"")), -Annotation(Region(0x5A0,0x5FF), Attr("section","\".plt\"")), -Annotation(Region(0x580,0x597), Attr("code-region","()")), -Annotation(Region(0x5A0,0x5FF), Attr("code-region","()")), -Annotation(Region(0x600,0x633), Attr("symbol-info","_start 0x600 52")), -Annotation(Region(0x634,0x647), Attr("symbol","\"call_weak_fn\"")), -Annotation(Region(0x634,0x647), Attr("symbol-info","call_weak_fn 0x634 20")), -Annotation(Region(0x714,0x767), Attr("symbol","\"main\"")), -Annotation(Region(0x714,0x767), Attr("symbol-info","main 0x714 84")), -Annotation(Region(0x768,0x77B), Attr("section","\".fini\"")), -Annotation(Region(0x77C,0x77F), Attr("section","\".rodata\"")), -Annotation(Region(0x780,0x7BB), Attr("section","\".eh_frame_hdr\"")), -Annotation(Region(0x7C0,0x863), Attr("section","\".eh_frame\"")), -Annotation(Region(0x10D98,0x1100F), Attr("segment","03 0x10D98 656")), -Annotation(Region(0x10DA0,0x10DA7), Attr("section","\".fini_array\"")), -Annotation(Region(0x10DA8,0x10F97), Attr("section","\".dynamic\"")), -Annotation(Region(0x10F98,0x10FFF), Attr("section","\".got\"")), -Annotation(Region(0x11000,0x1100F), Attr("section","\".data\"")), -Annotation(Region(0x10D98,0x10D9F), Attr("section","\".init_array\"")), -Annotation(Region(0x600,0x767), Attr("section","\".text\"")), -Annotation(Region(0x600,0x767), Attr("code-region","()")), -Annotation(Region(0x768,0x77B), Attr("code-region","()"))]), -Program(Tid(1_590, "%00000636"), Attrs([]), - Subs([Sub(Tid(1_568, "@__cxa_finalize"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x5D0"), -Attr("stub","()")]), "__cxa_finalize", Args([Arg(Tid(1_591, "%00000637"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("__cxa_finalize_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(954, "@__cxa_finalize"), - Attrs([Attr("address","0x5D0")]), Phis([]), -Defs([Def(Tid(1_202, "%000004b2"), Attrs([Attr("address","0x5D0"), -Attr("insn","adrp x16, #65536")]), Var("R16",Imm(64)), Int(65536,64)), -Def(Tid(1_209, "%000004b9"), Attrs([Attr("address","0x5D4"), -Attr("insn","ldr x17, [x16, #0xfb8]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(4024,64)),LittleEndian(),64)), -Def(Tid(1_215, "%000004bf"), Attrs([Attr("address","0x5D8"), -Attr("insn","add x16, x16, #0xfb8")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(4024,64)))]), Jmps([Call(Tid(1_220, "%000004c4"), - Attrs([Attr("address","0x5DC"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), -Sub(Tid(1_569, "@__do_global_dtors_aux"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x6C0")]), - "__do_global_dtors_aux", Args([Arg(Tid(1_592, "%00000638"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("__do_global_dtors_aux_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(674, "@__do_global_dtors_aux"), - Attrs([Attr("address","0x6C0")]), Phis([]), Defs([Def(Tid(678, "%000002a6"), - Attrs([Attr("address","0x6C0"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("#3",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(18446744073709551584,64))), -Def(Tid(684, "%000002ac"), Attrs([Attr("address","0x6C0"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("#3",Imm(64)),Var("R29",Imm(64)),LittleEndian(),64)), -Def(Tid(690, "%000002b2"), Attrs([Attr("address","0x6C0"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("#3",Imm(64)),Int(8,64)),Var("R30",Imm(64)),LittleEndian(),64)), -Def(Tid(694, "%000002b6"), Attrs([Attr("address","0x6C0"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("R31",Imm(64)), -Var("#3",Imm(64))), Def(Tid(700, "%000002bc"), - Attrs([Attr("address","0x6C4"), Attr("insn","mov x29, sp")]), - Var("R29",Imm(64)), Var("R31",Imm(64))), Def(Tid(708, "%000002c4"), - Attrs([Attr("address","0x6C8"), Attr("insn","str x19, [sp, #0x10]")]), - Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(16,64)),Var("R19",Imm(64)),LittleEndian(),64)), -Def(Tid(713, "%000002c9"), Attrs([Attr("address","0x6CC"), -Attr("insn","adrp x19, #69632")]), Var("R19",Imm(64)), Int(69632,64)), -Def(Tid(720, "%000002d0"), Attrs([Attr("address","0x6D0"), -Attr("insn","ldrb w0, [x19, #0x10]")]), Var("R0",Imm(64)), -UNSIGNED(64,Load(Var("mem",Mem(64,8)),PLUS(Var("R19",Imm(64)),Int(16,64)),LittleEndian(),8)))]), -Jmps([Goto(Tid(727, "%000002d7"), Attrs([Attr("address","0x6D4"), -Attr("insn","cbnz w0, #0x28")]), - NEQ(Extract(31,0,Var("R0",Imm(64))),Int(0,32)), -Direct(Tid(725, "%000002d5"))), Goto(Tid(1_570, "%00000622"), Attrs([]), - Int(1,1), Direct(Tid(899, "%00000383")))])), Blk(Tid(899, "%00000383"), - Attrs([Attr("address","0x6D8")]), Phis([]), Defs([Def(Tid(902, "%00000386"), - Attrs([Attr("address","0x6D8"), Attr("insn","adrp x0, #65536")]), - Var("R0",Imm(64)), Int(65536,64)), Def(Tid(909, "%0000038d"), - Attrs([Attr("address","0x6DC"), Attr("insn","ldr x0, [x0, #0xfe0]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(4064,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(915, "%00000393"), Attrs([Attr("address","0x6E0"), -Attr("insn","cbz x0, #0x10")]), EQ(Var("R0",Imm(64)),Int(0,64)), -Direct(Tid(913, "%00000391"))), Goto(Tid(1_571, "%00000623"), Attrs([]), - Int(1,1), Direct(Tid(938, "%000003aa")))])), Blk(Tid(938, "%000003aa"), - Attrs([Attr("address","0x6E4")]), Phis([]), Defs([Def(Tid(941, "%000003ad"), - Attrs([Attr("address","0x6E4"), Attr("insn","adrp x0, #69632")]), - Var("R0",Imm(64)), Int(69632,64)), Def(Tid(948, "%000003b4"), - Attrs([Attr("address","0x6E8"), Attr("insn","ldr x0, [x0, #0x8]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(953, "%000003b9"), Attrs([Attr("address","0x6EC"), -Attr("insn","bl #-0x11c")]), Var("R30",Imm(64)), Int(1776,64))]), -Jmps([Call(Tid(956, "%000003bc"), Attrs([Attr("address","0x6EC"), -Attr("insn","bl #-0x11c")]), Int(1,1), -(Direct(Tid(1_568, "@__cxa_finalize")),Direct(Tid(913, "%00000391"))))])), -Blk(Tid(913, "%00000391"), Attrs([Attr("address","0x6F0")]), Phis([]), -Defs([Def(Tid(921, "%00000399"), Attrs([Attr("address","0x6F0"), -Attr("insn","bl #-0xa0")]), Var("R30",Imm(64)), Int(1780,64))]), -Jmps([Call(Tid(923, "%0000039b"), Attrs([Attr("address","0x6F0"), -Attr("insn","bl #-0xa0")]), Int(1,1), -(Direct(Tid(1_582, "@deregister_tm_clones")),Direct(Tid(925, "%0000039d"))))])), -Blk(Tid(925, "%0000039d"), Attrs([Attr("address","0x6F4")]), Phis([]), -Defs([Def(Tid(928, "%000003a0"), Attrs([Attr("address","0x6F4"), -Attr("insn","mov w0, #0x1")]), Var("R0",Imm(64)), Int(1,64)), -Def(Tid(936, "%000003a8"), Attrs([Attr("address","0x6F8"), -Attr("insn","strb w0, [x19, #0x10]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R19",Imm(64)),Int(16,64)),Extract(7,0,Var("R0",Imm(64))),LittleEndian(),8))]), -Jmps([Goto(Tid(1_572, "%00000624"), Attrs([]), Int(1,1), -Direct(Tid(725, "%000002d5")))])), Blk(Tid(725, "%000002d5"), - Attrs([Attr("address","0x6FC")]), Phis([]), Defs([Def(Tid(735, "%000002df"), - Attrs([Attr("address","0x6FC"), Attr("insn","ldr x19, [sp, #0x10]")]), - Var("R19",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(16,64)),LittleEndian(),64)), -Def(Tid(742, "%000002e6"), Attrs([Attr("address","0x700"), -Attr("insn","ldp x29, x30, [sp], #0x20")]), Var("R29",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(747, "%000002eb"), Attrs([Attr("address","0x700"), -Attr("insn","ldp x29, x30, [sp], #0x20")]), Var("R30",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(751, "%000002ef"), Attrs([Attr("address","0x700"), -Attr("insn","ldp x29, x30, [sp], #0x20")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(32,64)))]), Jmps([Call(Tid(756, "%000002f4"), - Attrs([Attr("address","0x704"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), Sub(Tid(1_573, "@__libc_start_main"), - Attrs([Attr("c.proto","signed (*)(signed (*)(signed , char** , char** );* main, signed , char** , \nvoid* auxv)"), -Attr("address","0x5C0"), Attr("stub","()")]), "__libc_start_main", - Args([Arg(Tid(1_593, "%00000639"), - Attrs([Attr("c.layout","**[ : 64]"), -Attr("c.data","Top:u64 ptr ptr"), -Attr("c.type","signed (*)(signed , char** , char** );*")]), - Var("__libc_start_main_main",Imm(64)), Var("R0",Imm(64)), In()), -Arg(Tid(1_594, "%0000063a"), Attrs([Attr("c.layout","[signed : 32]"), -Attr("c.data","Top:u32"), Attr("c.type","signed")]), - Var("__libc_start_main_arg2",Imm(32)), LOW(32,Var("R1",Imm(64))), In()), -Arg(Tid(1_595, "%0000063b"), Attrs([Attr("c.layout","**[char : 8]"), -Attr("c.data","Top:u8 ptr ptr"), Attr("c.type","char**")]), - Var("__libc_start_main_arg3",Imm(64)), Var("R2",Imm(64)), Both()), -Arg(Tid(1_596, "%0000063c"), Attrs([Attr("c.layout","*[ : 8]"), -Attr("c.data","{} ptr"), Attr("c.type","void*")]), - Var("__libc_start_main_auxv",Imm(64)), Var("R3",Imm(64)), Both()), -Arg(Tid(1_597, "%0000063d"), Attrs([Attr("c.layout","[signed : 32]"), -Attr("c.data","Top:u32"), Attr("c.type","signed")]), - Var("__libc_start_main_result",Imm(32)), LOW(32,Var("R0",Imm(64))), -Out())]), Blks([Blk(Tid(507, "@__libc_start_main"), - Attrs([Attr("address","0x5C0")]), Phis([]), -Defs([Def(Tid(1_180, "%0000049c"), Attrs([Attr("address","0x5C0"), -Attr("insn","adrp x16, #65536")]), Var("R16",Imm(64)), Int(65536,64)), -Def(Tid(1_187, "%000004a3"), Attrs([Attr("address","0x5C4"), -Attr("insn","ldr x17, [x16, #0xfb0]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(4016,64)),LittleEndian(),64)), -Def(Tid(1_193, "%000004a9"), Attrs([Attr("address","0x5C8"), -Attr("insn","add x16, x16, #0xfb0")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(4016,64)))]), Jmps([Call(Tid(1_198, "%000004ae"), - Attrs([Attr("address","0x5CC"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), Sub(Tid(1_574, "@_fini"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x768")]), - "_fini", Args([Arg(Tid(1_598, "%0000063e"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("_fini_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(31, "@_fini"), - Attrs([Attr("address","0x768")]), Phis([]), Defs([Def(Tid(37, "%00000025"), - Attrs([Attr("address","0x76C"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("#0",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(18446744073709551600,64))), -Def(Tid(43, "%0000002b"), Attrs([Attr("address","0x76C"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("#0",Imm(64)),Var("R29",Imm(64)),LittleEndian(),64)), -Def(Tid(49, "%00000031"), Attrs([Attr("address","0x76C"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("#0",Imm(64)),Int(8,64)),Var("R30",Imm(64)),LittleEndian(),64)), -Def(Tid(53, "%00000035"), Attrs([Attr("address","0x76C"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("R31",Imm(64)), -Var("#0",Imm(64))), Def(Tid(59, "%0000003b"), Attrs([Attr("address","0x770"), -Attr("insn","mov x29, sp")]), Var("R29",Imm(64)), Var("R31",Imm(64))), -Def(Tid(66, "%00000042"), Attrs([Attr("address","0x774"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R29",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(71, "%00000047"), Attrs([Attr("address","0x774"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R30",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(75, "%0000004b"), Attrs([Attr("address","0x774"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(16,64)))]), Jmps([Call(Tid(80, "%00000050"), - Attrs([Attr("address","0x778"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), Sub(Tid(1_575, "@_init"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x580")]), - "_init", Args([Arg(Tid(1_599, "%0000063f"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("_init_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(1_389, "@_init"), - Attrs([Attr("address","0x580")]), Phis([]), -Defs([Def(Tid(1_395, "%00000573"), Attrs([Attr("address","0x584"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("#5",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(18446744073709551600,64))), -Def(Tid(1_401, "%00000579"), Attrs([Attr("address","0x584"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("#5",Imm(64)),Var("R29",Imm(64)),LittleEndian(),64)), -Def(Tid(1_407, "%0000057f"), Attrs([Attr("address","0x584"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("#5",Imm(64)),Int(8,64)),Var("R30",Imm(64)),LittleEndian(),64)), -Def(Tid(1_411, "%00000583"), Attrs([Attr("address","0x584"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("R31",Imm(64)), -Var("#5",Imm(64))), Def(Tid(1_417, "%00000589"), - Attrs([Attr("address","0x588"), Attr("insn","mov x29, sp")]), - Var("R29",Imm(64)), Var("R31",Imm(64))), Def(Tid(1_422, "%0000058e"), - Attrs([Attr("address","0x58C"), Attr("insn","bl #0xa8")]), - Var("R30",Imm(64)), Int(1424,64))]), Jmps([Call(Tid(1_424, "%00000590"), - Attrs([Attr("address","0x58C"), Attr("insn","bl #0xa8")]), Int(1,1), -(Direct(Tid(1_580, "@call_weak_fn")),Direct(Tid(1_426, "%00000592"))))])), -Blk(Tid(1_426, "%00000592"), Attrs([Attr("address","0x590")]), Phis([]), -Defs([Def(Tid(1_431, "%00000597"), Attrs([Attr("address","0x590"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R29",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(1_436, "%0000059c"), Attrs([Attr("address","0x590"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R30",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(1_440, "%000005a0"), Attrs([Attr("address","0x590"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(16,64)))]), Jmps([Call(Tid(1_445, "%000005a5"), - Attrs([Attr("address","0x594"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), Sub(Tid(1_576, "@_start"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x600"), -Attr("stub","()"), Attr("entry-point","()")]), "_start", - Args([Arg(Tid(1_600, "%00000640"), Attrs([Attr("c.layout","[signed : 32]"), -Attr("c.data","Top:u32"), Attr("c.type","signed")]), - Var("_start_result",Imm(32)), LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(444, "@_start"), Attrs([Attr("address","0x600")]), Phis([]), -Defs([Def(Tid(449, "%000001c1"), Attrs([Attr("address","0x604"), -Attr("insn","mov x29, #0x0")]), Var("R29",Imm(64)), Int(0,64)), -Def(Tid(454, "%000001c6"), Attrs([Attr("address","0x608"), -Attr("insn","mov x30, #0x0")]), Var("R30",Imm(64)), Int(0,64)), -Def(Tid(460, "%000001cc"), Attrs([Attr("address","0x60C"), -Attr("insn","mov x5, x0")]), Var("R5",Imm(64)), Var("R0",Imm(64))), -Def(Tid(467, "%000001d3"), Attrs([Attr("address","0x610"), -Attr("insn","ldr x1, [sp]")]), Var("R1",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(473, "%000001d9"), Attrs([Attr("address","0x614"), -Attr("insn","add x2, sp, #0x8")]), Var("R2",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(8,64))), Def(Tid(479, "%000001df"), - Attrs([Attr("address","0x618"), Attr("insn","mov x6, sp")]), - Var("R6",Imm(64)), Var("R31",Imm(64))), Def(Tid(484, "%000001e4"), - Attrs([Attr("address","0x61C"), Attr("insn","adrp x0, #65536")]), - Var("R0",Imm(64)), Int(65536,64)), Def(Tid(491, "%000001eb"), - Attrs([Attr("address","0x620"), Attr("insn","ldr x0, [x0, #0xff0]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(4080,64)),LittleEndian(),64)), -Def(Tid(496, "%000001f0"), Attrs([Attr("address","0x624"), -Attr("insn","mov x3, #0x0")]), Var("R3",Imm(64)), Int(0,64)), -Def(Tid(501, "%000001f5"), Attrs([Attr("address","0x628"), -Attr("insn","mov x4, #0x0")]), Var("R4",Imm(64)), Int(0,64)), -Def(Tid(506, "%000001fa"), Attrs([Attr("address","0x62C"), -Attr("insn","bl #-0x6c")]), Var("R30",Imm(64)), Int(1584,64))]), -Jmps([Call(Tid(509, "%000001fd"), Attrs([Attr("address","0x62C"), -Attr("insn","bl #-0x6c")]), Int(1,1), -(Direct(Tid(1_573, "@__libc_start_main")),Direct(Tid(511, "%000001ff"))))])), -Blk(Tid(511, "%000001ff"), Attrs([Attr("address","0x630")]), Phis([]), -Defs([Def(Tid(514, "%00000202"), Attrs([Attr("address","0x630"), -Attr("insn","bl #-0x40")]), Var("R30",Imm(64)), Int(1588,64))]), -Jmps([Call(Tid(517, "%00000205"), Attrs([Attr("address","0x630"), -Attr("insn","bl #-0x40")]), Int(1,1), -(Direct(Tid(1_579, "@abort")),Direct(Tid(1_577, "%00000629"))))])), -Blk(Tid(1_577, "%00000629"), Attrs([]), Phis([]), Defs([]), -Jmps([Call(Tid(1_578, "%0000062a"), Attrs([]), Int(1,1), -(Direct(Tid(1_580, "@call_weak_fn")),))]))])), Sub(Tid(1_579, "@abort"), - Attrs([Attr("noreturn","()"), Attr("c.proto","void (*)(void)"), -Attr("address","0x5F0"), Attr("stub","()")]), "abort", Args([]), -Blks([Blk(Tid(515, "@abort"), Attrs([Attr("address","0x5F0")]), Phis([]), -Defs([Def(Tid(1_246, "%000004de"), Attrs([Attr("address","0x5F0"), -Attr("insn","adrp x16, #65536")]), Var("R16",Imm(64)), Int(65536,64)), -Def(Tid(1_253, "%000004e5"), Attrs([Attr("address","0x5F4"), -Attr("insn","ldr x17, [x16, #0xfc8]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(4040,64)),LittleEndian(),64)), -Def(Tid(1_259, "%000004eb"), Attrs([Attr("address","0x5F8"), -Attr("insn","add x16, x16, #0xfc8")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(4040,64)))]), Jmps([Call(Tid(1_264, "%000004f0"), - Attrs([Attr("address","0x5FC"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), Sub(Tid(1_580, "@call_weak_fn"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x634")]), - "call_weak_fn", Args([Arg(Tid(1_601, "%00000641"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("call_weak_fn_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(519, "@call_weak_fn"), - Attrs([Attr("address","0x634")]), Phis([]), Defs([Def(Tid(522, "%0000020a"), - Attrs([Attr("address","0x634"), Attr("insn","adrp x0, #65536")]), - Var("R0",Imm(64)), Int(65536,64)), Def(Tid(529, "%00000211"), - Attrs([Attr("address","0x638"), Attr("insn","ldr x0, [x0, #0xfe8]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(4072,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(535, "%00000217"), Attrs([Attr("address","0x63C"), -Attr("insn","cbz x0, #0x8")]), EQ(Var("R0",Imm(64)),Int(0,64)), -Direct(Tid(533, "%00000215"))), Goto(Tid(1_581, "%0000062d"), Attrs([]), - Int(1,1), Direct(Tid(1_018, "%000003fa")))])), Blk(Tid(533, "%00000215"), - Attrs([Attr("address","0x644")]), Phis([]), Defs([]), -Jmps([Call(Tid(541, "%0000021d"), Attrs([Attr("address","0x644"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))])), -Blk(Tid(1_018, "%000003fa"), Attrs([Attr("address","0x640")]), Phis([]), -Defs([]), Jmps([Goto(Tid(1_021, "%000003fd"), Attrs([Attr("address","0x640"), -Attr("insn","b #-0x60")]), Int(1,1), -Direct(Tid(1_019, "@__gmon_start__")))])), Blk(Tid(1_019, "@__gmon_start__"), - Attrs([Attr("address","0x5E0")]), Phis([]), -Defs([Def(Tid(1_224, "%000004c8"), Attrs([Attr("address","0x5E0"), -Attr("insn","adrp x16, #65536")]), Var("R16",Imm(64)), Int(65536,64)), -Def(Tid(1_231, "%000004cf"), Attrs([Attr("address","0x5E4"), -Attr("insn","ldr x17, [x16, #0xfc0]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(4032,64)),LittleEndian(),64)), -Def(Tid(1_237, "%000004d5"), Attrs([Attr("address","0x5E8"), -Attr("insn","add x16, x16, #0xfc0")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(4032,64)))]), Jmps([Call(Tid(1_242, "%000004da"), - Attrs([Attr("address","0x5EC"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), -Sub(Tid(1_582, "@deregister_tm_clones"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x650")]), - "deregister_tm_clones", Args([Arg(Tid(1_602, "%00000642"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("deregister_tm_clones_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(547, "@deregister_tm_clones"), - Attrs([Attr("address","0x650")]), Phis([]), Defs([Def(Tid(550, "%00000226"), - Attrs([Attr("address","0x650"), Attr("insn","adrp x0, #69632")]), - Var("R0",Imm(64)), Int(69632,64)), Def(Tid(556, "%0000022c"), - Attrs([Attr("address","0x654"), Attr("insn","add x0, x0, #0x10")]), - Var("R0",Imm(64)), PLUS(Var("R0",Imm(64)),Int(16,64))), -Def(Tid(561, "%00000231"), Attrs([Attr("address","0x658"), -Attr("insn","adrp x1, #69632")]), Var("R1",Imm(64)), Int(69632,64)), -Def(Tid(567, "%00000237"), Attrs([Attr("address","0x65C"), -Attr("insn","add x1, x1, #0x10")]), Var("R1",Imm(64)), -PLUS(Var("R1",Imm(64)),Int(16,64))), Def(Tid(573, "%0000023d"), - Attrs([Attr("address","0x660"), Attr("insn","cmp x1, x0")]), - Var("#1",Imm(64)), NOT(Var("R0",Imm(64)))), Def(Tid(578, "%00000242"), - Attrs([Attr("address","0x660"), Attr("insn","cmp x1, x0")]), - Var("#2",Imm(64)), PLUS(Var("R1",Imm(64)),NOT(Var("R0",Imm(64))))), -Def(Tid(584, "%00000248"), Attrs([Attr("address","0x660"), -Attr("insn","cmp x1, x0")]), Var("VF",Imm(1)), -NEQ(SIGNED(65,PLUS(Var("#2",Imm(64)),Int(1,64))),PLUS(PLUS(SIGNED(65,Var("R1",Imm(64))),SIGNED(65,Var("#1",Imm(64)))),Int(1,65)))), -Def(Tid(590, "%0000024e"), Attrs([Attr("address","0x660"), -Attr("insn","cmp x1, x0")]), Var("CF",Imm(1)), -NEQ(UNSIGNED(65,PLUS(Var("#2",Imm(64)),Int(1,64))),PLUS(PLUS(UNSIGNED(65,Var("R1",Imm(64))),UNSIGNED(65,Var("#1",Imm(64)))),Int(1,65)))), -Def(Tid(594, "%00000252"), Attrs([Attr("address","0x660"), -Attr("insn","cmp x1, x0")]), Var("ZF",Imm(1)), -EQ(PLUS(Var("#2",Imm(64)),Int(1,64)),Int(0,64))), Def(Tid(598, "%00000256"), - Attrs([Attr("address","0x660"), Attr("insn","cmp x1, x0")]), - Var("NF",Imm(1)), Extract(63,63,PLUS(Var("#2",Imm(64)),Int(1,64))))]), -Jmps([Goto(Tid(604, "%0000025c"), Attrs([Attr("address","0x664"), -Attr("insn","b.eq #0x18")]), EQ(Var("ZF",Imm(1)),Int(1,1)), -Direct(Tid(602, "%0000025a"))), Goto(Tid(1_583, "%0000062f"), Attrs([]), - Int(1,1), Direct(Tid(988, "%000003dc")))])), Blk(Tid(988, "%000003dc"), - Attrs([Attr("address","0x668")]), Phis([]), Defs([Def(Tid(991, "%000003df"), - Attrs([Attr("address","0x668"), Attr("insn","adrp x1, #65536")]), - Var("R1",Imm(64)), Int(65536,64)), Def(Tid(998, "%000003e6"), - Attrs([Attr("address","0x66C"), Attr("insn","ldr x1, [x1, #0xfd8]")]), - Var("R1",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R1",Imm(64)),Int(4056,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(1_003, "%000003eb"), Attrs([Attr("address","0x670"), -Attr("insn","cbz x1, #0xc")]), EQ(Var("R1",Imm(64)),Int(0,64)), -Direct(Tid(602, "%0000025a"))), Goto(Tid(1_584, "%00000630"), Attrs([]), - Int(1,1), Direct(Tid(1_007, "%000003ef")))])), Blk(Tid(602, "%0000025a"), - Attrs([Attr("address","0x67C")]), Phis([]), Defs([]), -Jmps([Call(Tid(610, "%00000262"), Attrs([Attr("address","0x67C"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))])), -Blk(Tid(1_007, "%000003ef"), Attrs([Attr("address","0x674")]), Phis([]), -Defs([Def(Tid(1_011, "%000003f3"), Attrs([Attr("address","0x674"), -Attr("insn","mov x16, x1")]), Var("R16",Imm(64)), Var("R1",Imm(64)))]), -Jmps([Call(Tid(1_016, "%000003f8"), Attrs([Attr("address","0x678"), -Attr("insn","br x16")]), Int(1,1), (Indirect(Var("R16",Imm(64))),))]))])), -Sub(Tid(1_585, "@frame_dummy"), Attrs([Attr("c.proto","signed (*)(void)"), -Attr("address","0x710")]), "frame_dummy", Args([Arg(Tid(1_603, "%00000643"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("frame_dummy_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(762, "@frame_dummy"), - Attrs([Attr("address","0x710")]), Phis([]), Defs([]), -Jmps([Call(Tid(764, "%000002fc"), Attrs([Attr("address","0x710"), -Attr("insn","b #-0x90")]), Int(1,1), -(Direct(Tid(1_587, "@register_tm_clones")),))]))])), Sub(Tid(1_586, "@main"), - Attrs([Attr("c.proto","signed (*)(signed argc, const char** argv)"), -Attr("address","0x714")]), "main", Args([Arg(Tid(1_604, "%00000644"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("main_argc",Imm(32)), -LOW(32,Var("R0",Imm(64))), In()), Arg(Tid(1_605, "%00000645"), - Attrs([Attr("c.layout","**[char : 8]"), Attr("c.data","Top:u8 ptr ptr"), -Attr("c.type"," const char**")]), Var("main_argv",Imm(64)), -Var("R1",Imm(64)), Both()), Arg(Tid(1_606, "%00000646"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("main_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(766, "@main"), - Attrs([Attr("address","0x714")]), Phis([]), Defs([Def(Tid(770, "%00000302"), - Attrs([Attr("address","0x714"), Attr("insn","sub sp, sp, #0x10")]), - Var("R31",Imm(64)), PLUS(Var("R31",Imm(64)),Int(18446744073709551600,64))), -Def(Tid(775, "%00000307"), Attrs([Attr("address","0x718"), -Attr("insn","adrp x0, #69632")]), Var("R0",Imm(64)), Int(69632,64)), -Def(Tid(781, "%0000030d"), Attrs([Attr("address","0x71C"), -Attr("insn","add x0, x0, #0x20")]), Var("R0",Imm(64)), -PLUS(Var("R0",Imm(64)),Int(32,64))), Def(Tid(788, "%00000314"), - Attrs([Attr("address","0x720"), Attr("insn","ldr x0, [x0]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R0",Imm(64)),LittleEndian(),64)), -Def(Tid(796, "%0000031c"), Attrs([Attr("address","0x724"), -Attr("insn","str x0, [sp, #0x8]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),Var("R0",Imm(64)),LittleEndian(),64)), -Def(Tid(803, "%00000323"), Attrs([Attr("address","0x728"), -Attr("insn","str xzr, [sp, #0x8]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),Int(0,64),LittleEndian(),64)), -Def(Tid(808, "%00000328"), Attrs([Attr("address","0x72C"), -Attr("insn","adrp x0, #69632")]), Var("R0",Imm(64)), Int(69632,64)), -Def(Tid(814, "%0000032e"), Attrs([Attr("address","0x730"), -Attr("insn","add x0, x0, #0x18")]), Var("R0",Imm(64)), -PLUS(Var("R0",Imm(64)),Int(24,64))), Def(Tid(821, "%00000335"), - Attrs([Attr("address","0x734"), Attr("insn","ldr x1, [sp, #0x8]")]), - Var("R1",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(829, "%0000033d"), Attrs([Attr("address","0x738"), -Attr("insn","str x1, [x0]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("R0",Imm(64)),Var("R1",Imm(64)),LittleEndian(),64)), -Def(Tid(834, "%00000342"), Attrs([Attr("address","0x73C"), -Attr("insn","adrp x0, #69632")]), Var("R0",Imm(64)), Int(69632,64)), -Def(Tid(840, "%00000348"), Attrs([Attr("address","0x740"), -Attr("insn","add x0, x0, #0x20")]), Var("R0",Imm(64)), -PLUS(Var("R0",Imm(64)),Int(32,64))), Def(Tid(847, "%0000034f"), - Attrs([Attr("address","0x744"), Attr("insn","ldr x0, [x0]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R0",Imm(64)),LittleEndian(),64)), -Def(Tid(855, "%00000357"), Attrs([Attr("address","0x748"), -Attr("insn","str x0, [sp, #0x8]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),Var("R0",Imm(64)),LittleEndian(),64)), -Def(Tid(860, "%0000035c"), Attrs([Attr("address","0x74C"), -Attr("insn","adrp x0, #69632")]), Var("R0",Imm(64)), Int(69632,64)), -Def(Tid(866, "%00000362"), Attrs([Attr("address","0x750"), -Attr("insn","add x0, x0, #0x18")]), Var("R0",Imm(64)), -PLUS(Var("R0",Imm(64)),Int(24,64))), Def(Tid(873, "%00000369"), - Attrs([Attr("address","0x754"), Attr("insn","ldr x1, [sp, #0x8]")]), - Var("R1",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(881, "%00000371"), Attrs([Attr("address","0x758"), -Attr("insn","str x1, [x0]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("R0",Imm(64)),Var("R1",Imm(64)),LittleEndian(),64)), -Def(Tid(886, "%00000376"), Attrs([Attr("address","0x75C"), -Attr("insn","mov w0, #0x0")]), Var("R0",Imm(64)), Int(0,64)), -Def(Tid(892, "%0000037c"), Attrs([Attr("address","0x760"), -Attr("insn","add sp, sp, #0x10")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(16,64)))]), Jmps([Call(Tid(897, "%00000381"), - Attrs([Attr("address","0x764"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), -Sub(Tid(1_587, "@register_tm_clones"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x680")]), - "register_tm_clones", Args([Arg(Tid(1_607, "%00000647"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("register_tm_clones_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(612, "@register_tm_clones"), Attrs([Attr("address","0x680")]), - Phis([]), Defs([Def(Tid(615, "%00000267"), Attrs([Attr("address","0x680"), -Attr("insn","adrp x0, #69632")]), Var("R0",Imm(64)), Int(69632,64)), -Def(Tid(621, "%0000026d"), Attrs([Attr("address","0x684"), -Attr("insn","add x0, x0, #0x10")]), Var("R0",Imm(64)), -PLUS(Var("R0",Imm(64)),Int(16,64))), Def(Tid(626, "%00000272"), - Attrs([Attr("address","0x688"), Attr("insn","adrp x1, #69632")]), - Var("R1",Imm(64)), Int(69632,64)), Def(Tid(632, "%00000278"), - Attrs([Attr("address","0x68C"), Attr("insn","add x1, x1, #0x10")]), - Var("R1",Imm(64)), PLUS(Var("R1",Imm(64)),Int(16,64))), -Def(Tid(639, "%0000027f"), Attrs([Attr("address","0x690"), -Attr("insn","sub x1, x1, x0")]), Var("R1",Imm(64)), -PLUS(PLUS(Var("R1",Imm(64)),NOT(Var("R0",Imm(64)))),Int(1,64))), -Def(Tid(645, "%00000285"), Attrs([Attr("address","0x694"), -Attr("insn","lsr x2, x1, #63")]), Var("R2",Imm(64)), -Concat(Int(0,63),Extract(63,63,Var("R1",Imm(64))))), -Def(Tid(652, "%0000028c"), Attrs([Attr("address","0x698"), -Attr("insn","add x1, x2, x1, asr #3")]), Var("R1",Imm(64)), -PLUS(Var("R2",Imm(64)),ARSHIFT(Var("R1",Imm(64)),Int(3,3)))), -Def(Tid(658, "%00000292"), Attrs([Attr("address","0x69C"), -Attr("insn","asr x1, x1, #1")]), Var("R1",Imm(64)), -SIGNED(64,Extract(63,1,Var("R1",Imm(64)))))]), -Jmps([Goto(Tid(664, "%00000298"), Attrs([Attr("address","0x6A0"), -Attr("insn","cbz x1, #0x18")]), EQ(Var("R1",Imm(64)),Int(0,64)), -Direct(Tid(662, "%00000296"))), Goto(Tid(1_588, "%00000634"), Attrs([]), - Int(1,1), Direct(Tid(958, "%000003be")))])), Blk(Tid(958, "%000003be"), - Attrs([Attr("address","0x6A4")]), Phis([]), Defs([Def(Tid(961, "%000003c1"), - Attrs([Attr("address","0x6A4"), Attr("insn","adrp x2, #65536")]), - Var("R2",Imm(64)), Int(65536,64)), Def(Tid(968, "%000003c8"), - Attrs([Attr("address","0x6A8"), Attr("insn","ldr x2, [x2, #0xff8]")]), - Var("R2",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R2",Imm(64)),Int(4088,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(973, "%000003cd"), Attrs([Attr("address","0x6AC"), -Attr("insn","cbz x2, #0xc")]), EQ(Var("R2",Imm(64)),Int(0,64)), -Direct(Tid(662, "%00000296"))), Goto(Tid(1_589, "%00000635"), Attrs([]), - Int(1,1), Direct(Tid(977, "%000003d1")))])), Blk(Tid(662, "%00000296"), - Attrs([Attr("address","0x6B8")]), Phis([]), Defs([]), -Jmps([Call(Tid(670, "%0000029e"), Attrs([Attr("address","0x6B8"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))])), -Blk(Tid(977, "%000003d1"), Attrs([Attr("address","0x6B0")]), Phis([]), -Defs([Def(Tid(981, "%000003d5"), Attrs([Attr("address","0x6B0"), -Attr("insn","mov x16, x2")]), Var("R16",Imm(64)), Var("R2",Imm(64)))]), -Jmps([Call(Tid(986, "%000003da"), Attrs([Attr("address","0x6B4"), -Attr("insn","br x16")]), Int(1,1), -(Indirect(Var("R16",Imm(64))),))]))]))]))) \ No newline at end of file diff --git a/src/test/incorrect/basicassign2/gcc/basicassign2.bir b/src/test/incorrect/basicassign2/gcc/basicassign2.bir deleted file mode 100644 index 2903ceb40..000000000 --- a/src/test/incorrect/basicassign2/gcc/basicassign2.bir +++ /dev/null @@ -1,243 +0,0 @@ -00000636: program -00000620: sub __cxa_finalize(__cxa_finalize_result) -00000637: __cxa_finalize_result :: out u32 = low:32[R0] - -000003ba: -000004b2: R16 := 0x10000 -000004b9: R17 := mem[R16 + 0xFB8, el]:u64 -000004bf: R16 := R16 + 0xFB8 -000004c4: call R17 with noreturn - -00000621: sub __do_global_dtors_aux(__do_global_dtors_aux_result) -00000638: __do_global_dtors_aux_result :: out u32 = low:32[R0] - -000002a2: -000002a6: #3 := R31 - 0x20 -000002ac: mem := mem with [#3, el]:u64 <- R29 -000002b2: mem := mem with [#3 + 8, el]:u64 <- R30 -000002b6: R31 := #3 -000002bc: R29 := R31 -000002c4: mem := mem with [R31 + 0x10, el]:u64 <- R19 -000002c9: R19 := 0x11000 -000002d0: R0 := pad:64[mem[R19 + 0x10]] -000002d7: when 31:0[R0] <> 0 goto %000002d5 -00000622: goto %00000383 - -00000383: -00000386: R0 := 0x10000 -0000038d: R0 := mem[R0 + 0xFE0, el]:u64 -00000393: when R0 = 0 goto %00000391 -00000623: goto %000003aa - -000003aa: -000003ad: R0 := 0x11000 -000003b4: R0 := mem[R0 + 8, el]:u64 -000003b9: R30 := 0x6F0 -000003bc: call @__cxa_finalize with return %00000391 - -00000391: -00000399: R30 := 0x6F4 -0000039b: call @deregister_tm_clones with return %0000039d - -0000039d: -000003a0: R0 := 1 -000003a8: mem := mem with [R19 + 0x10] <- 7:0[R0] -00000624: goto %000002d5 - -000002d5: -000002df: R19 := mem[R31 + 0x10, el]:u64 -000002e6: R29 := mem[R31, el]:u64 -000002eb: R30 := mem[R31 + 8, el]:u64 -000002ef: R31 := R31 + 0x20 -000002f4: call R30 with noreturn - -00000625: sub __libc_start_main(__libc_start_main_main, __libc_start_main_arg2, __libc_start_main_arg3, __libc_start_main_auxv, __libc_start_main_result) -00000639: __libc_start_main_main :: in u64 = R0 -0000063a: __libc_start_main_arg2 :: in u32 = low:32[R1] -0000063b: __libc_start_main_arg3 :: in out u64 = R2 -0000063c: __libc_start_main_auxv :: in out u64 = R3 -0000063d: __libc_start_main_result :: out u32 = low:32[R0] - -000001fb: -0000049c: R16 := 0x10000 -000004a3: R17 := mem[R16 + 0xFB0, el]:u64 -000004a9: R16 := R16 + 0xFB0 -000004ae: call R17 with noreturn - -00000626: sub _fini(_fini_result) -0000063e: _fini_result :: out u32 = low:32[R0] - -0000001f: -00000025: #0 := R31 - 0x10 -0000002b: mem := mem with [#0, el]:u64 <- R29 -00000031: mem := mem with [#0 + 8, el]:u64 <- R30 -00000035: R31 := #0 -0000003b: R29 := R31 -00000042: R29 := mem[R31, el]:u64 -00000047: R30 := mem[R31 + 8, el]:u64 -0000004b: R31 := R31 + 0x10 -00000050: call R30 with noreturn - -00000627: sub _init(_init_result) -0000063f: _init_result :: out u32 = low:32[R0] - -0000056d: -00000573: #5 := R31 - 0x10 -00000579: mem := mem with [#5, el]:u64 <- R29 -0000057f: mem := mem with [#5 + 8, el]:u64 <- R30 -00000583: R31 := #5 -00000589: R29 := R31 -0000058e: R30 := 0x590 -00000590: call @call_weak_fn with return %00000592 - -00000592: -00000597: R29 := mem[R31, el]:u64 -0000059c: R30 := mem[R31 + 8, el]:u64 -000005a0: R31 := R31 + 0x10 -000005a5: call R30 with noreturn - -00000628: sub _start(_start_result) -00000640: _start_result :: out u32 = low:32[R0] - -000001bc: -000001c1: R29 := 0 -000001c6: R30 := 0 -000001cc: R5 := R0 -000001d3: R1 := mem[R31, el]:u64 -000001d9: R2 := R31 + 8 -000001df: R6 := R31 -000001e4: R0 := 0x10000 -000001eb: R0 := mem[R0 + 0xFF0, el]:u64 -000001f0: R3 := 0 -000001f5: R4 := 0 -000001fa: R30 := 0x630 -000001fd: call @__libc_start_main with return %000001ff - -000001ff: -00000202: R30 := 0x634 -00000205: call @abort with return %00000629 - -00000629: -0000062a: call @call_weak_fn with noreturn - -0000062b: sub abort() - - -00000203: -000004de: R16 := 0x10000 -000004e5: R17 := mem[R16 + 0xFC8, el]:u64 -000004eb: R16 := R16 + 0xFC8 -000004f0: call R17 with noreturn - -0000062c: sub call_weak_fn(call_weak_fn_result) -00000641: call_weak_fn_result :: out u32 = low:32[R0] - -00000207: -0000020a: R0 := 0x10000 -00000211: R0 := mem[R0 + 0xFE8, el]:u64 -00000217: when R0 = 0 goto %00000215 -0000062d: goto %000003fa - -00000215: -0000021d: call R30 with noreturn - -000003fa: -000003fd: goto @__gmon_start__ - -000003fb: -000004c8: R16 := 0x10000 -000004cf: R17 := mem[R16 + 0xFC0, el]:u64 -000004d5: R16 := R16 + 0xFC0 -000004da: call R17 with noreturn - -0000062e: sub deregister_tm_clones(deregister_tm_clones_result) -00000642: deregister_tm_clones_result :: out u32 = low:32[R0] - -00000223: -00000226: R0 := 0x11000 -0000022c: R0 := R0 + 0x10 -00000231: R1 := 0x11000 -00000237: R1 := R1 + 0x10 -0000023d: #1 := ~R0 -00000242: #2 := R1 + ~R0 -00000248: VF := extend:65[#2 + 1] <> extend:65[R1] + extend:65[#1] + 1 -0000024e: CF := pad:65[#2 + 1] <> pad:65[R1] + pad:65[#1] + 1 -00000252: ZF := #2 + 1 = 0 -00000256: NF := 63:63[#2 + 1] -0000025c: when ZF goto %0000025a -0000062f: goto %000003dc - -000003dc: -000003df: R1 := 0x10000 -000003e6: R1 := mem[R1 + 0xFD8, el]:u64 -000003eb: when R1 = 0 goto %0000025a -00000630: goto %000003ef - -0000025a: -00000262: call R30 with noreturn - -000003ef: -000003f3: R16 := R1 -000003f8: call R16 with noreturn - -00000631: sub frame_dummy(frame_dummy_result) -00000643: frame_dummy_result :: out u32 = low:32[R0] - -000002fa: -000002fc: call @register_tm_clones with noreturn - -00000632: sub main(main_argc, main_argv, main_result) -00000644: main_argc :: in u32 = low:32[R0] -00000645: main_argv :: in out u64 = R1 -00000646: main_result :: out u32 = low:32[R0] - -000002fe: -00000302: R31 := R31 - 0x10 -00000307: R0 := 0x11000 -0000030d: R0 := R0 + 0x20 -00000314: R0 := mem[R0, el]:u64 -0000031c: mem := mem with [R31 + 8, el]:u64 <- R0 -00000323: mem := mem with [R31 + 8, el]:u64 <- 0 -00000328: R0 := 0x11000 -0000032e: R0 := R0 + 0x18 -00000335: R1 := mem[R31 + 8, el]:u64 -0000033d: mem := mem with [R0, el]:u64 <- R1 -00000342: R0 := 0x11000 -00000348: R0 := R0 + 0x20 -0000034f: R0 := mem[R0, el]:u64 -00000357: mem := mem with [R31 + 8, el]:u64 <- R0 -0000035c: R0 := 0x11000 -00000362: R0 := R0 + 0x18 -00000369: R1 := mem[R31 + 8, el]:u64 -00000371: mem := mem with [R0, el]:u64 <- R1 -00000376: R0 := 0 -0000037c: R31 := R31 + 0x10 -00000381: call R30 with noreturn - -00000633: sub register_tm_clones(register_tm_clones_result) -00000647: register_tm_clones_result :: out u32 = low:32[R0] - -00000264: -00000267: R0 := 0x11000 -0000026d: R0 := R0 + 0x10 -00000272: R1 := 0x11000 -00000278: R1 := R1 + 0x10 -0000027f: R1 := R1 + ~R0 + 1 -00000285: R2 := 0.63:63[R1] -0000028c: R1 := R2 + (R1 ~>> 3) -00000292: R1 := extend:64[63:1[R1]] -00000298: when R1 = 0 goto %00000296 -00000634: goto %000003be - -000003be: -000003c1: R2 := 0x10000 -000003c8: R2 := mem[R2 + 0xFF8, el]:u64 -000003cd: when R2 = 0 goto %00000296 -00000635: goto %000003d1 - -00000296: -0000029e: call R30 with noreturn - -000003d1: -000003d5: R16 := R2 -000003da: call R16 with noreturn diff --git a/src/test/incorrect/basicassign2/gcc/basicassign2.expected b/src/test/incorrect/basicassign2/gcc/basicassign2.expected index 399d2d3cc..f0c6f7fd0 100644 --- a/src/test/incorrect/basicassign2/gcc/basicassign2.expected +++ b/src/test/incorrect/basicassign2/gcc/basicassign2.expected @@ -1,17 +1,15 @@ var {:extern} Gamma_R0: bool; var {:extern} Gamma_R1: bool; -var {:extern} Gamma_R31: bool; +var {:extern} Gamma_R2: bool; var {:extern} Gamma_mem: [bv64]bool; -var {:extern} Gamma_stack: [bv64]bool; var {:extern} R0: bv64; var {:extern} R1: bv64; -var {:extern} R31: bv64; +var {:extern} R2: bv64; var {:extern} mem: [bv64]bv8; -var {:extern} stack: [bv64]bv8; const {:extern} $secret_addr: bv64; -axiom ($secret_addr == 69664bv64); +axiom ($secret_addr == 4325400bv64); const {:extern} $z_addr: bv64; -axiom ($z_addr == 69656bv64); +axiom ($z_addr == 4325408bv64); function {:extern} L(mem$in: [bv64]bv8, index: bv64) returns (bool) { (if (index == $z_addr) then true else (if (index == $secret_addr) then false else false)) } @@ -41,11 +39,7 @@ procedure {:extern} rely(); modifies Gamma_mem, mem; ensures (Gamma_mem == old(Gamma_mem)); ensures (mem == old(mem)); - free ensures (memory_load32_le(mem, 1916bv64) == 131073bv32); - free ensures (memory_load64_le(mem, 69016bv64) == 1808bv64); - free ensures (memory_load64_le(mem, 69024bv64) == 1728bv64); - free ensures (memory_load64_le(mem, 69616bv64) == 1812bv64); - free ensures (memory_load64_le(mem, 69640bv64) == 69640bv64); + free ensures (memory_load32_le(mem, 4196312bv64) == 131073bv32); procedure {:extern} rely_transitive(); modifies Gamma_mem, mem; @@ -63,73 +57,42 @@ procedure {:extern} rely_reflexive(); procedure {:extern} guarantee_reflexive(); modifies Gamma_mem, mem; -procedure main_1812(); - modifies Gamma_R0, Gamma_R1, Gamma_R31, Gamma_mem, Gamma_stack, R0, R1, R31, mem, stack; - free requires (memory_load64_le(mem, 69632bv64) == 0bv64); - free requires (memory_load64_le(mem, 69640bv64) == 69640bv64); - free requires (memory_load32_le(mem, 1916bv64) == 131073bv32); - free requires (memory_load64_le(mem, 69016bv64) == 1808bv64); - free requires (memory_load64_le(mem, 69024bv64) == 1728bv64); - free requires (memory_load64_le(mem, 69616bv64) == 1812bv64); - free requires (memory_load64_le(mem, 69640bv64) == 69640bv64); - free ensures (Gamma_R31 == old(Gamma_R31)); - free ensures (R31 == old(R31)); - free ensures (memory_load32_le(mem, 1916bv64) == 131073bv32); - free ensures (memory_load64_le(mem, 69016bv64) == 1808bv64); - free ensures (memory_load64_le(mem, 69024bv64) == 1728bv64); - free ensures (memory_load64_le(mem, 69616bv64) == 1812bv64); - free ensures (memory_load64_le(mem, 69640bv64) == 69640bv64); +procedure main(); + modifies Gamma_R0, Gamma_R1, Gamma_R2, Gamma_mem, R0, R1, R2, mem; + free requires (memory_load64_le(mem, 4325376bv64) == 0bv64); + free requires (memory_load64_le(mem, 4325384bv64) == 0bv64); + free requires (memory_load32_le(mem, 4196312bv64) == 131073bv32); + free ensures (memory_load32_le(mem, 4196312bv64) == 131073bv32); -implementation main_1812() +implementation main() { - var Gamma_load18: bool; - var Gamma_load19: bool; - var Gamma_load20: bool; - var Gamma_load21: bool; - var load18: bv64; - var load19: bv64; - var load20: bv64; - var load21: bv64; + var $load$14: bv64; + var $load$15: bv64; + var $load$16: bv64; + var Gamma_$load$14: bool; + var Gamma_$load$15: bool; + var Gamma_$load$16: bool; lmain: assume {:captureState "lmain"} true; - R31, Gamma_R31 := bvadd64(R31, 18446744073709551600bv64), Gamma_R31; - R0, Gamma_R0 := 69632bv64, true; - R0, Gamma_R0 := bvadd64(R0, 32bv64), Gamma_R0; + R1, Gamma_R1 := 4321280bv64, true; call rely(); - load18, Gamma_load18 := memory_load64_le(mem, R0), (gamma_load64(Gamma_mem, R0) || L(mem, R0)); - R0, Gamma_R0 := load18, Gamma_load18; - stack, Gamma_stack := memory_store64_le(stack, bvadd64(R31, 8bv64), R0), gamma_store64(Gamma_stack, bvadd64(R31, 8bv64), Gamma_R0); - assume {:captureState "%0000031c"} true; - stack, Gamma_stack := memory_store64_le(stack, bvadd64(R31, 8bv64), 0bv64), gamma_store64(Gamma_stack, bvadd64(R31, 8bv64), true); - assume {:captureState "%00000323"} true; - R0, Gamma_R0 := 69632bv64, true; - R0, Gamma_R0 := bvadd64(R0, 24bv64), Gamma_R0; - load19, Gamma_load19 := memory_load64_le(stack, bvadd64(R31, 8bv64)), gamma_load64(Gamma_stack, bvadd64(R31, 8bv64)); - R1, Gamma_R1 := load19, Gamma_load19; + $load$14, Gamma_$load$14 := memory_load64_le(mem, bvadd64(R1, 4080bv64)), (gamma_load64(Gamma_mem, bvadd64(R1, 4080bv64)) || L(mem, bvadd64(R1, 4080bv64))); + R1, Gamma_R1 := $load$14, Gamma_$load$14; + R0, Gamma_R0 := 0bv64, true; + R2, Gamma_R2 := 4321280bv64, true; call rely(); - assert (L(mem, R0) ==> Gamma_R1); - mem, Gamma_mem := memory_store64_le(mem, R0, R1), gamma_store64(Gamma_mem, R0, Gamma_R1); - assume {:captureState "%0000033d"} true; - R0, Gamma_R0 := 69632bv64, true; - R0, Gamma_R0 := bvadd64(R0, 32bv64), Gamma_R0; + $load$15, Gamma_$load$15 := memory_load64_le(mem, bvadd64(R2, 4064bv64)), (gamma_load64(Gamma_mem, bvadd64(R2, 4064bv64)) || L(mem, bvadd64(R2, 4064bv64))); + R2, Gamma_R2 := $load$15, Gamma_$load$15; call rely(); - load20, Gamma_load20 := memory_load64_le(mem, R0), (gamma_load64(Gamma_mem, R0) || L(mem, R0)); - R0, Gamma_R0 := load20, Gamma_load20; - stack, Gamma_stack := memory_store64_le(stack, bvadd64(R31, 8bv64), R0), gamma_store64(Gamma_stack, bvadd64(R31, 8bv64), Gamma_R0); - assume {:captureState "%00000357"} true; - R0, Gamma_R0 := 69632bv64, true; - R0, Gamma_R0 := bvadd64(R0, 24bv64), Gamma_R0; - load21, Gamma_load21 := memory_load64_le(stack, bvadd64(R31, 8bv64)), gamma_load64(Gamma_stack, bvadd64(R31, 8bv64)); - R1, Gamma_R1 := load21, Gamma_load21; + $load$16, Gamma_$load$16 := memory_load64_le(mem, R1), (gamma_load64(Gamma_mem, R1) || L(mem, R1)); + R1, Gamma_R1 := $load$16, Gamma_$load$16; call rely(); - assert (L(mem, R0) ==> Gamma_R1); - mem, Gamma_mem := memory_store64_le(mem, R0, R1), gamma_store64(Gamma_mem, R0, Gamma_R1); - assume {:captureState "%00000371"} true; - R0, Gamma_R0 := 0bv64, true; - R31, Gamma_R31 := bvadd64(R31, 16bv64), Gamma_R31; - goto main_1812_basil_return; - main_1812_basil_return: - assume {:captureState "main_1812_basil_return"} true; + assert (L(mem, R2) ==> Gamma_R1); + mem, Gamma_mem := memory_store64_le(mem, R2, R1), gamma_store64(Gamma_mem, R2, Gamma_R1); + assume {:captureState "%00000260"} true; + goto main_basil_return; + main_basil_return: + assume {:captureState "main_basil_return"} true; return; } diff --git a/src/test/incorrect/basicassign2/gcc/basicassign2.gts b/src/test/incorrect/basicassign2/gcc/basicassign2.gts deleted file mode 100644 index 7ca5bbdd8..000000000 Binary files a/src/test/incorrect/basicassign2/gcc/basicassign2.gts and /dev/null differ diff --git a/src/test/incorrect/basicassign2/gcc/basicassign2.md5sum b/src/test/incorrect/basicassign2/gcc/basicassign2.md5sum new file mode 100644 index 000000000..fadf79fb5 --- /dev/null +++ b/src/test/incorrect/basicassign2/gcc/basicassign2.md5sum @@ -0,0 +1,5 @@ +2bfb0128a856790bbda4cf7d53a9c242 incorrect/basicassign2/gcc/a.out +dc318643fcfd05ff990bf87bd3a7c228 incorrect/basicassign2/gcc/basicassign2.adt +e2b3a344d84c3f47af200c4b0e09e738 incorrect/basicassign2/gcc/basicassign2.bir +816af3ed5ea608d92f87a695be05e2de incorrect/basicassign2/gcc/basicassign2.relf +d9b55584e00f64ad6e76f18542e6637e incorrect/basicassign2/gcc/basicassign2.gts diff --git a/src/test/incorrect/basicassign2/gcc/basicassign2.relf b/src/test/incorrect/basicassign2/gcc/basicassign2.relf deleted file mode 100644 index 32de001f4..000000000 --- a/src/test/incorrect/basicassign2/gcc/basicassign2.relf +++ /dev/null @@ -1,122 +0,0 @@ - -Relocation section '.rela.dyn' at offset 0x460 contains 8 entries: - Offset Info Type Symbol's Value Symbol's Name + Addend -0000000000010d98 0000000000000403 R_AARCH64_RELATIVE 710 -0000000000010da0 0000000000000403 R_AARCH64_RELATIVE 6c0 -0000000000010ff0 0000000000000403 R_AARCH64_RELATIVE 714 -0000000000011008 0000000000000403 R_AARCH64_RELATIVE 11008 -0000000000010fd8 0000000400000401 R_AARCH64_GLOB_DAT 0000000000000000 _ITM_deregisterTMCloneTable + 0 -0000000000010fe0 0000000500000401 R_AARCH64_GLOB_DAT 0000000000000000 __cxa_finalize@GLIBC_2.17 + 0 -0000000000010fe8 0000000600000401 R_AARCH64_GLOB_DAT 0000000000000000 __gmon_start__ + 0 -0000000000010ff8 0000000800000401 R_AARCH64_GLOB_DAT 0000000000000000 _ITM_registerTMCloneTable + 0 - -Relocation section '.rela.plt' at offset 0x520 contains 4 entries: - Offset Info Type Symbol's Value Symbol's Name + Addend -0000000000010fb0 0000000300000402 R_AARCH64_JUMP_SLOT 0000000000000000 __libc_start_main@GLIBC_2.34 + 0 -0000000000010fb8 0000000500000402 R_AARCH64_JUMP_SLOT 0000000000000000 __cxa_finalize@GLIBC_2.17 + 0 -0000000000010fc0 0000000600000402 R_AARCH64_JUMP_SLOT 0000000000000000 __gmon_start__ + 0 -0000000000010fc8 0000000700000402 R_AARCH64_JUMP_SLOT 0000000000000000 abort@GLIBC_2.17 + 0 - -Symbol table '.dynsym' contains 9 entries: - Num: Value Size Type Bind Vis Ndx Name - 0: 0000000000000000 0 NOTYPE LOCAL DEFAULT UND - 1: 0000000000000580 0 SECTION LOCAL DEFAULT 11 .init - 2: 0000000000011000 0 SECTION LOCAL DEFAULT 22 .data - 3: 0000000000000000 0 FUNC GLOBAL DEFAULT UND __libc_start_main@GLIBC_2.34 (2) - 4: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_deregisterTMCloneTable - 5: 0000000000000000 0 FUNC WEAK DEFAULT UND __cxa_finalize@GLIBC_2.17 (3) - 6: 0000000000000000 0 NOTYPE WEAK DEFAULT UND __gmon_start__ - 7: 0000000000000000 0 FUNC GLOBAL DEFAULT UND abort@GLIBC_2.17 (3) - 8: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_registerTMCloneTable - -Symbol table '.symtab' contains 89 entries: - Num: Value Size Type Bind Vis Ndx Name - 0: 0000000000000000 0 NOTYPE LOCAL DEFAULT UND - 1: 0000000000000238 0 SECTION LOCAL DEFAULT 1 .interp - 2: 0000000000000254 0 SECTION LOCAL DEFAULT 2 .note.gnu.build-id - 3: 0000000000000278 0 SECTION LOCAL DEFAULT 3 .note.ABI-tag - 4: 0000000000000298 0 SECTION LOCAL DEFAULT 4 .gnu.hash - 5: 00000000000002b8 0 SECTION LOCAL DEFAULT 5 .dynsym - 6: 0000000000000390 0 SECTION LOCAL DEFAULT 6 .dynstr - 7: 000000000000041e 0 SECTION LOCAL DEFAULT 7 .gnu.version - 8: 0000000000000430 0 SECTION LOCAL DEFAULT 8 .gnu.version_r - 9: 0000000000000460 0 SECTION LOCAL DEFAULT 9 .rela.dyn - 10: 0000000000000520 0 SECTION LOCAL DEFAULT 10 .rela.plt - 11: 0000000000000580 0 SECTION LOCAL DEFAULT 11 .init - 12: 00000000000005a0 0 SECTION LOCAL DEFAULT 12 .plt - 13: 0000000000000600 0 SECTION LOCAL DEFAULT 13 .text - 14: 0000000000000768 0 SECTION LOCAL DEFAULT 14 .fini - 15: 000000000000077c 0 SECTION LOCAL DEFAULT 15 .rodata - 16: 0000000000000780 0 SECTION LOCAL DEFAULT 16 .eh_frame_hdr - 17: 00000000000007c0 0 SECTION LOCAL DEFAULT 17 .eh_frame - 18: 0000000000010d98 0 SECTION LOCAL DEFAULT 18 .init_array - 19: 0000000000010da0 0 SECTION LOCAL DEFAULT 19 .fini_array - 20: 0000000000010da8 0 SECTION LOCAL DEFAULT 20 .dynamic - 21: 0000000000010f98 0 SECTION LOCAL DEFAULT 21 .got - 22: 0000000000011000 0 SECTION LOCAL DEFAULT 22 .data - 23: 0000000000011010 0 SECTION LOCAL DEFAULT 23 .bss - 24: 0000000000000000 0 SECTION LOCAL DEFAULT 24 .comment - 25: 0000000000000000 0 FILE LOCAL DEFAULT ABS Scrt1.o - 26: 0000000000000278 0 NOTYPE LOCAL DEFAULT 3 $d - 27: 0000000000000278 32 OBJECT LOCAL DEFAULT 3 __abi_tag - 28: 0000000000000600 0 NOTYPE LOCAL DEFAULT 13 $x - 29: 00000000000007d4 0 NOTYPE LOCAL DEFAULT 17 $d - 30: 000000000000077c 0 NOTYPE LOCAL DEFAULT 15 $d - 31: 0000000000000000 0 FILE LOCAL DEFAULT ABS crti.o - 32: 0000000000000634 0 NOTYPE LOCAL DEFAULT 13 $x - 33: 0000000000000634 20 FUNC LOCAL DEFAULT 13 call_weak_fn - 34: 0000000000000580 0 NOTYPE LOCAL DEFAULT 11 $x - 35: 0000000000000768 0 NOTYPE LOCAL DEFAULT 14 $x - 36: 0000000000000000 0 FILE LOCAL DEFAULT ABS crtn.o - 37: 0000000000000590 0 NOTYPE LOCAL DEFAULT 11 $x - 38: 0000000000000774 0 NOTYPE LOCAL DEFAULT 14 $x - 39: 0000000000000000 0 FILE LOCAL DEFAULT ABS crtstuff.c - 40: 0000000000000650 0 NOTYPE LOCAL DEFAULT 13 $x - 41: 0000000000000650 0 FUNC LOCAL DEFAULT 13 deregister_tm_clones - 42: 0000000000000680 0 FUNC LOCAL DEFAULT 13 register_tm_clones - 43: 0000000000011008 0 NOTYPE LOCAL DEFAULT 22 $d - 44: 00000000000006c0 0 FUNC LOCAL DEFAULT 13 __do_global_dtors_aux - 45: 0000000000011010 1 OBJECT LOCAL DEFAULT 23 completed.0 - 46: 0000000000010da0 0 NOTYPE LOCAL DEFAULT 19 $d - 47: 0000000000010da0 0 OBJECT LOCAL DEFAULT 19 __do_global_dtors_aux_fini_array_entry - 48: 0000000000000710 0 FUNC LOCAL DEFAULT 13 frame_dummy - 49: 0000000000010d98 0 NOTYPE LOCAL DEFAULT 18 $d - 50: 0000000000010d98 0 OBJECT LOCAL DEFAULT 18 __frame_dummy_init_array_entry - 51: 00000000000007e8 0 NOTYPE LOCAL DEFAULT 17 $d - 52: 0000000000011010 0 NOTYPE LOCAL DEFAULT 23 $d - 53: 0000000000000000 0 FILE LOCAL DEFAULT ABS basicassign2.c - 54: 0000000000011018 0 NOTYPE LOCAL DEFAULT 23 $d - 55: 0000000000000714 0 NOTYPE LOCAL DEFAULT 13 $x - 56: 0000000000000848 0 NOTYPE LOCAL DEFAULT 17 $d - 57: 0000000000000000 0 FILE LOCAL DEFAULT ABS crtstuff.c - 58: 0000000000000860 0 NOTYPE LOCAL DEFAULT 17 $d - 59: 0000000000000860 0 OBJECT LOCAL DEFAULT 17 __FRAME_END__ - 60: 0000000000000000 0 FILE LOCAL DEFAULT ABS - 61: 0000000000010da8 0 OBJECT LOCAL DEFAULT ABS _DYNAMIC - 62: 0000000000000780 0 NOTYPE LOCAL DEFAULT 16 __GNU_EH_FRAME_HDR - 63: 0000000000010fd0 0 OBJECT LOCAL DEFAULT ABS _GLOBAL_OFFSET_TABLE_ - 64: 00000000000005a0 0 NOTYPE LOCAL DEFAULT 12 $x - 65: 0000000000000000 0 FUNC GLOBAL DEFAULT UND __libc_start_main@GLIBC_2.34 - 66: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_deregisterTMCloneTable - 67: 0000000000011000 0 NOTYPE WEAK DEFAULT 22 data_start - 68: 0000000000011010 0 NOTYPE GLOBAL DEFAULT 23 __bss_start__ - 69: 0000000000000000 0 FUNC WEAK DEFAULT UND __cxa_finalize@GLIBC_2.17 - 70: 0000000000011028 0 NOTYPE GLOBAL DEFAULT 23 _bss_end__ - 71: 0000000000011010 0 NOTYPE GLOBAL DEFAULT 22 _edata - 72: 0000000000011018 8 OBJECT GLOBAL DEFAULT 23 z - 73: 0000000000000768 0 FUNC GLOBAL HIDDEN 14 _fini - 74: 0000000000011028 0 NOTYPE GLOBAL DEFAULT 23 __bss_end__ - 75: 0000000000011000 0 NOTYPE GLOBAL DEFAULT 22 __data_start - 76: 0000000000000000 0 NOTYPE WEAK DEFAULT UND __gmon_start__ - 77: 0000000000011008 0 OBJECT GLOBAL HIDDEN 22 __dso_handle - 78: 0000000000000000 0 FUNC GLOBAL DEFAULT UND abort@GLIBC_2.17 - 79: 000000000000077c 4 OBJECT GLOBAL DEFAULT 15 _IO_stdin_used - 80: 0000000000011020 8 OBJECT GLOBAL DEFAULT 23 secret - 81: 0000000000011028 0 NOTYPE GLOBAL DEFAULT 23 _end - 82: 0000000000000600 52 FUNC GLOBAL DEFAULT 13 _start - 83: 0000000000011028 0 NOTYPE GLOBAL DEFAULT 23 __end__ - 84: 0000000000011010 0 NOTYPE GLOBAL DEFAULT 23 __bss_start - 85: 0000000000000714 84 FUNC GLOBAL DEFAULT 13 main - 86: 0000000000011010 0 OBJECT GLOBAL HIDDEN 22 __TMC_END__ - 87: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_registerTMCloneTable - 88: 0000000000000580 0 FUNC GLOBAL HIDDEN 11 _init diff --git a/src/test/incorrect/basicassign2/gcc/basicassign2_gtirb.expected b/src/test/incorrect/basicassign2/gcc/basicassign2_gtirb.expected index 69a74a2f0..bbc6590f2 100644 --- a/src/test/incorrect/basicassign2/gcc/basicassign2_gtirb.expected +++ b/src/test/incorrect/basicassign2/gcc/basicassign2_gtirb.expected @@ -1,17 +1,15 @@ var {:extern} Gamma_R0: bool; var {:extern} Gamma_R1: bool; -var {:extern} Gamma_R31: bool; +var {:extern} Gamma_R2: bool; var {:extern} Gamma_mem: [bv64]bool; -var {:extern} Gamma_stack: [bv64]bool; var {:extern} R0: bv64; var {:extern} R1: bv64; -var {:extern} R31: bv64; +var {:extern} R2: bv64; var {:extern} mem: [bv64]bv8; -var {:extern} stack: [bv64]bv8; const {:extern} $secret_addr: bv64; -axiom ($secret_addr == 69664bv64); +axiom ($secret_addr == 4325400bv64); const {:extern} $z_addr: bv64; -axiom ($z_addr == 69656bv64); +axiom ($z_addr == 4325408bv64); function {:extern} L(mem$in: [bv64]bv8, index: bv64) returns (bool) { (if (index == $z_addr) then true else (if (index == $secret_addr) then false else false)) } @@ -41,11 +39,7 @@ procedure {:extern} rely(); modifies Gamma_mem, mem; ensures (Gamma_mem == old(Gamma_mem)); ensures (mem == old(mem)); - free ensures (memory_load32_le(mem, 1916bv64) == 131073bv32); - free ensures (memory_load64_le(mem, 69016bv64) == 1808bv64); - free ensures (memory_load64_le(mem, 69024bv64) == 1728bv64); - free ensures (memory_load64_le(mem, 69616bv64) == 1812bv64); - free ensures (memory_load64_le(mem, 69640bv64) == 69640bv64); + free ensures (memory_load32_le(mem, 4196312bv64) == 131073bv32); procedure {:extern} rely_transitive(); modifies Gamma_mem, mem; @@ -63,73 +57,42 @@ procedure {:extern} rely_reflexive(); procedure {:extern} guarantee_reflexive(); modifies Gamma_mem, mem; -procedure main_1812(); - modifies Gamma_R0, Gamma_R1, Gamma_R31, Gamma_mem, Gamma_stack, R0, R1, R31, mem, stack; - free requires (memory_load64_le(mem, 69632bv64) == 0bv64); - free requires (memory_load64_le(mem, 69640bv64) == 69640bv64); - free requires (memory_load32_le(mem, 1916bv64) == 131073bv32); - free requires (memory_load64_le(mem, 69016bv64) == 1808bv64); - free requires (memory_load64_le(mem, 69024bv64) == 1728bv64); - free requires (memory_load64_le(mem, 69616bv64) == 1812bv64); - free requires (memory_load64_le(mem, 69640bv64) == 69640bv64); - free ensures (Gamma_R31 == old(Gamma_R31)); - free ensures (R31 == old(R31)); - free ensures (memory_load32_le(mem, 1916bv64) == 131073bv32); - free ensures (memory_load64_le(mem, 69016bv64) == 1808bv64); - free ensures (memory_load64_le(mem, 69024bv64) == 1728bv64); - free ensures (memory_load64_le(mem, 69616bv64) == 1812bv64); - free ensures (memory_load64_le(mem, 69640bv64) == 69640bv64); +procedure main(); + modifies Gamma_R0, Gamma_R1, Gamma_R2, Gamma_mem, R0, R1, R2, mem; + free requires (memory_load64_le(mem, 4325376bv64) == 0bv64); + free requires (memory_load64_le(mem, 4325384bv64) == 0bv64); + free requires (memory_load32_le(mem, 4196312bv64) == 131073bv32); + free ensures (memory_load32_le(mem, 4196312bv64) == 131073bv32); -implementation main_1812() +implementation main() { - var Gamma_load20: bool; - var Gamma_load21: bool; - var Gamma_load22: bool; - var Gamma_load23: bool; - var load20: bv64; - var load21: bv64; - var load22: bv64; - var load23: bv64; - main_1812__0__RSR08m7kSH6UIQCFKlRaqg: - assume {:captureState "main_1812__0__RSR08m7kSH6UIQCFKlRaqg"} true; - R31, Gamma_R31 := bvadd64(R31, 18446744073709551600bv64), Gamma_R31; - R0, Gamma_R0 := 69632bv64, true; - R0, Gamma_R0 := bvadd64(R0, 32bv64), Gamma_R0; + var $load16: bv64; + var $load17: bv64; + var $load18: bv64; + var Gamma_$load16: bool; + var Gamma_$load17: bool; + var Gamma_$load18: bool; + $main$__0__$i2bc6yURTw~Pq2nxe63pQA: + assume {:captureState "$main$__0__$i2bc6yURTw~Pq2nxe63pQA"} true; + R1, Gamma_R1 := 4321280bv64, true; call rely(); - load20, Gamma_load20 := memory_load64_le(mem, R0), (gamma_load64(Gamma_mem, R0) || L(mem, R0)); - R0, Gamma_R0 := load20, Gamma_load20; - stack, Gamma_stack := memory_store64_le(stack, bvadd64(R31, 8bv64), R0), gamma_store64(Gamma_stack, bvadd64(R31, 8bv64), Gamma_R0); - assume {:captureState "1828_0"} true; - stack, Gamma_stack := memory_store64_le(stack, bvadd64(R31, 8bv64), 0bv64), gamma_store64(Gamma_stack, bvadd64(R31, 8bv64), true); - assume {:captureState "1832_0"} true; - R0, Gamma_R0 := 69632bv64, true; - R0, Gamma_R0 := bvadd64(R0, 24bv64), Gamma_R0; - load21, Gamma_load21 := memory_load64_le(stack, bvadd64(R31, 8bv64)), gamma_load64(Gamma_stack, bvadd64(R31, 8bv64)); - R1, Gamma_R1 := load21, Gamma_load21; + $load16, Gamma_$load16 := memory_load64_le(mem, bvadd64(R1, 4080bv64)), (gamma_load64(Gamma_mem, bvadd64(R1, 4080bv64)) || L(mem, bvadd64(R1, 4080bv64))); + R1, Gamma_R1 := $load16, Gamma_$load16; + R0, Gamma_R0 := 0bv64, true; + R2, Gamma_R2 := 4321280bv64, true; call rely(); - assert (L(mem, R0) ==> Gamma_R1); - mem, Gamma_mem := memory_store64_le(mem, R0, R1), gamma_store64(Gamma_mem, R0, Gamma_R1); - assume {:captureState "1848_0"} true; - R0, Gamma_R0 := 69632bv64, true; - R0, Gamma_R0 := bvadd64(R0, 32bv64), Gamma_R0; + $load17, Gamma_$load17 := memory_load64_le(mem, bvadd64(R2, 4064bv64)), (gamma_load64(Gamma_mem, bvadd64(R2, 4064bv64)) || L(mem, bvadd64(R2, 4064bv64))); + R2, Gamma_R2 := $load17, Gamma_$load17; call rely(); - load22, Gamma_load22 := memory_load64_le(mem, R0), (gamma_load64(Gamma_mem, R0) || L(mem, R0)); - R0, Gamma_R0 := load22, Gamma_load22; - stack, Gamma_stack := memory_store64_le(stack, bvadd64(R31, 8bv64), R0), gamma_store64(Gamma_stack, bvadd64(R31, 8bv64), Gamma_R0); - assume {:captureState "1864_0"} true; - R0, Gamma_R0 := 69632bv64, true; - R0, Gamma_R0 := bvadd64(R0, 24bv64), Gamma_R0; - load23, Gamma_load23 := memory_load64_le(stack, bvadd64(R31, 8bv64)), gamma_load64(Gamma_stack, bvadd64(R31, 8bv64)); - R1, Gamma_R1 := load23, Gamma_load23; + $load18, Gamma_$load18 := memory_load64_le(mem, R1), (gamma_load64(Gamma_mem, R1) || L(mem, R1)); + R1, Gamma_R1 := $load18, Gamma_$load18; call rely(); - assert (L(mem, R0) ==> Gamma_R1); - mem, Gamma_mem := memory_store64_le(mem, R0, R1), gamma_store64(Gamma_mem, R0, Gamma_R1); - assume {:captureState "1880_0"} true; - R0, Gamma_R0 := 0bv64, true; - R31, Gamma_R31 := bvadd64(R31, 16bv64), Gamma_R31; - goto main_1812_basil_return; - main_1812_basil_return: - assume {:captureState "main_1812_basil_return"} true; + assert (L(mem, R2) ==> Gamma_R1); + mem, Gamma_mem := memory_store64_le(mem, R2, R1), gamma_store64(Gamma_mem, R2, Gamma_R1); + assume {:captureState "4195992$0"} true; + goto main_basil_return; + main_basil_return: + assume {:captureState "main_basil_return"} true; return; } diff --git a/src/test/incorrect/basicassign2/gcc_O2/basicassign2.adt b/src/test/incorrect/basicassign2/gcc_O2/basicassign2.adt deleted file mode 100644 index 5dddfc08f..000000000 --- a/src/test/incorrect/basicassign2/gcc_O2/basicassign2.adt +++ /dev/null @@ -1,494 +0,0 @@ -Project(Attrs([Attr("filename","\"gcc_O2/basicassign2.out\""), -Attr("image-specification","(declare abi (name str))\n(declare arch (name str))\n(declare base-address (addr int))\n(declare bias (off int))\n(declare bits (size int))\n(declare code-region (addr int) (size int) (off int))\n(declare code-start (addr int))\n(declare entry-point (addr int))\n(declare external-reference (addr int) (name str))\n(declare format (name str))\n(declare is-executable (flag bool))\n(declare is-little-endian (flag bool))\n(declare llvm:base-address (addr int))\n(declare llvm:code-entry (name str) (off int) (size int))\n(declare llvm:coff-import-library (name str))\n(declare llvm:coff-virtual-section-header (name str) (addr int) (size int))\n(declare llvm:elf-program-header (name str) (off int) (size int))\n(declare llvm:elf-program-header-flags (name str) (ld bool) (r bool) \n (w bool) (x bool))\n(declare llvm:elf-virtual-program-header (name str) (addr int) (size int))\n(declare llvm:entry-point (addr int))\n(declare llvm:macho-symbol (name str) (value int))\n(declare llvm:name-reference (at int) (name str))\n(declare llvm:relocation (at int) (addr int))\n(declare llvm:section-entry (name str) (addr int) (size int) (off int))\n(declare llvm:section-flags (name str) (r bool) (w bool) (x bool))\n(declare llvm:segment-command (name str) (off int) (size int))\n(declare llvm:segment-command-flags (name str) (r bool) (w bool) (x bool))\n(declare llvm:symbol-entry (name str) (addr int) (size int) (off int)\n (value int))\n(declare llvm:virtual-segment-command (name str) (addr int) (size int))\n(declare mapped (addr int) (size int) (off int))\n(declare named-region (addr int) (size int) (name str))\n(declare named-symbol (addr int) (name str))\n(declare require (name str))\n(declare section (addr int) (size int))\n(declare segment (addr int) (size int) (r bool) (w bool) (x bool))\n(declare subarch (name str))\n(declare symbol-chunk (addr int) (size int) (root int))\n(declare symbol-value (addr int) (value int))\n(declare system (name str))\n(declare vendor (name str))\n\n(abi unknown)\n(arch aarch64)\n(base-address 0)\n(bias 0)\n(bits 64)\n(code-region 1876 20 1876)\n(code-region 1536 340 1536)\n(code-region 1440 96 1440)\n(code-region 1408 24 1408)\n(code-start 1652)\n(code-start 1600)\n(code-start 1536)\n(entry-point 1600)\n(external-reference 69592 _ITM_deregisterTMCloneTable)\n(external-reference 69600 __cxa_finalize)\n(external-reference 69608 __gmon_start__)\n(external-reference 69624 _ITM_registerTMCloneTable)\n(external-reference 69552 __libc_start_main)\n(external-reference 69560 __cxa_finalize)\n(external-reference 69568 __gmon_start__)\n(external-reference 69576 abort)\n(format elf)\n(is-executable true)\n(is-little-endian true)\n(llvm:base-address 0)\n(llvm:code-entry abort 0 0)\n(llvm:code-entry __cxa_finalize 0 0)\n(llvm:code-entry __libc_start_main 0 0)\n(llvm:code-entry _init 1408 0)\n(llvm:code-entry main 1536 24)\n(llvm:code-entry _start 1600 52)\n(llvm:code-entry abort@GLIBC_2.17 0 0)\n(llvm:code-entry _fini 1876 0)\n(llvm:code-entry __cxa_finalize@GLIBC_2.17 0 0)\n(llvm:code-entry __libc_start_main@GLIBC_2.34 0 0)\n(llvm:code-entry frame_dummy 1872 0)\n(llvm:code-entry __do_global_dtors_aux 1792 0)\n(llvm:code-entry register_tm_clones 1728 0)\n(llvm:code-entry deregister_tm_clones 1680 0)\n(llvm:code-entry call_weak_fn 1652 20)\n(llvm:code-entry .fini 1876 20)\n(llvm:code-entry .text 1536 340)\n(llvm:code-entry .plt 1440 96)\n(llvm:code-entry .init 1408 24)\n(llvm:elf-program-header 08 3480 616)\n(llvm:elf-program-header 07 0 0)\n(llvm:elf-program-header 06 1900 60)\n(llvm:elf-program-header 05 596 68)\n(llvm:elf-program-header 04 3496 496)\n(llvm:elf-program-header 03 3480 632)\n(llvm:elf-program-header 02 0 2120)\n(llvm:elf-program-header 01 568 27)\n(llvm:elf-program-header 00 64 504)\n(llvm:elf-program-header-flags 08 false true false false)\n(llvm:elf-program-header-flags 07 false true true false)\n(llvm:elf-program-header-flags 06 false true false false)\n(llvm:elf-program-header-flags 05 false true false false)\n(llvm:elf-program-header-flags 04 false true true false)\n(llvm:elf-program-header-flags 03 true true true false)\n(llvm:elf-program-header-flags 02 true true false true)\n(llvm:elf-program-header-flags 01 false true false false)\n(llvm:elf-program-header-flags 00 false true false false)\n(llvm:elf-virtual-program-header 08 69016 616)\n(llvm:elf-virtual-program-header 07 0 0)\n(llvm:elf-virtual-program-header 06 1900 60)\n(llvm:elf-virtual-program-header 05 596 68)\n(llvm:elf-virtual-program-header 04 69032 496)\n(llvm:elf-virtual-program-header 03 69016 656)\n(llvm:elf-virtual-program-header 02 0 2120)\n(llvm:elf-virtual-program-header 01 568 27)\n(llvm:elf-virtual-program-header 00 64 504)\n(llvm:entry-point 1600)\n(llvm:name-reference 69576 abort)\n(llvm:name-reference 69568 __gmon_start__)\n(llvm:name-reference 69560 __cxa_finalize)\n(llvm:name-reference 69552 __libc_start_main)\n(llvm:name-reference 69624 _ITM_registerTMCloneTable)\n(llvm:name-reference 69608 __gmon_start__)\n(llvm:name-reference 69600 __cxa_finalize)\n(llvm:name-reference 69592 _ITM_deregisterTMCloneTable)\n(llvm:section-entry .shstrtab 0 250 6853)\n(llvm:section-entry .strtab 0 557 6296)\n(llvm:section-entry .symtab 0 2136 4160)\n(llvm:section-entry .comment 0 43 4112)\n(llvm:section-entry .bss 69648 24 4112)\n(llvm:section-entry .data 69632 16 4096)\n(llvm:section-entry .got 69528 104 3992)\n(llvm:section-entry .dynamic 69032 496 3496)\n(llvm:section-entry .fini_array 69024 8 3488)\n(llvm:section-entry .init_array 69016 8 3480)\n(llvm:section-entry .eh_frame 1960 160 1960)\n(llvm:section-entry .eh_frame_hdr 1900 60 1900)\n(llvm:section-entry .rodata 1896 4 1896)\n(llvm:section-entry .fini 1876 20 1876)\n(llvm:section-entry .text 1536 340 1536)\n(llvm:section-entry .plt 1440 96 1440)\n(llvm:section-entry .init 1408 24 1408)\n(llvm:section-entry .rela.plt 1312 96 1312)\n(llvm:section-entry .rela.dyn 1120 192 1120)\n(llvm:section-entry .gnu.version_r 1072 48 1072)\n(llvm:section-entry .gnu.version 1054 18 1054)\n(llvm:section-entry .dynstr 912 141 912)\n(llvm:section-entry .dynsym 696 216 696)\n(llvm:section-entry .gnu.hash 664 28 664)\n(llvm:section-entry .note.ABI-tag 632 32 632)\n(llvm:section-entry .note.gnu.build-id 596 36 596)\n(llvm:section-entry .interp 568 27 568)\n(llvm:section-flags .shstrtab true false false)\n(llvm:section-flags .strtab true false false)\n(llvm:section-flags .symtab true false false)\n(llvm:section-flags .comment true false false)\n(llvm:section-flags .bss true true false)\n(llvm:section-flags .data true true false)\n(llvm:section-flags .got true true false)\n(llvm:section-flags .dynamic true true false)\n(llvm:section-flags .fini_array true true false)\n(llvm:section-flags .init_array true true false)\n(llvm:section-flags .eh_frame true false false)\n(llvm:section-flags .eh_frame_hdr true false false)\n(llvm:section-flags .rodata true false false)\n(llvm:section-flags .fini true false true)\n(llvm:section-flags .text true false true)\n(llvm:section-flags .plt true false true)\n(llvm:section-flags .init true false true)\n(llvm:section-flags .rela.plt true false false)\n(llvm:section-flags .rela.dyn true false false)\n(llvm:section-flags .gnu.version_r true false false)\n(llvm:section-flags .gnu.version true false false)\n(llvm:section-flags .dynstr true false false)\n(llvm:section-flags .dynsym true false false)\n(llvm:section-flags .gnu.hash true false false)\n(llvm:section-flags .note.ABI-tag true false false)\n(llvm:section-flags .note.gnu.build-id true false false)\n(llvm:section-flags .interp true false false)\n(llvm:symbol-entry abort 0 0 0 0)\n(llvm:symbol-entry __cxa_finalize 0 0 0 0)\n(llvm:symbol-entry __libc_start_main 0 0 0 0)\n(llvm:symbol-entry _init 1408 0 1408 1408)\n(llvm:symbol-entry main 1536 24 1536 1536)\n(llvm:symbol-entry _start 1600 52 1600 1600)\n(llvm:symbol-entry abort@GLIBC_2.17 0 0 0 0)\n(llvm:symbol-entry _fini 1876 0 1876 1876)\n(llvm:symbol-entry __cxa_finalize@GLIBC_2.17 0 0 0 0)\n(llvm:symbol-entry __libc_start_main@GLIBC_2.34 0 0 0 0)\n(llvm:symbol-entry frame_dummy 1872 0 1872 1872)\n(llvm:symbol-entry __do_global_dtors_aux 1792 0 1792 1792)\n(llvm:symbol-entry register_tm_clones 1728 0 1728 1728)\n(llvm:symbol-entry deregister_tm_clones 1680 0 1680 1680)\n(llvm:symbol-entry call_weak_fn 1652 20 1652 1652)\n(mapped 0 2120 0)\n(mapped 69016 632 3480)\n(named-region 0 2120 02)\n(named-region 69016 656 03)\n(named-region 568 27 .interp)\n(named-region 596 36 .note.gnu.build-id)\n(named-region 632 32 .note.ABI-tag)\n(named-region 664 28 .gnu.hash)\n(named-region 696 216 .dynsym)\n(named-region 912 141 .dynstr)\n(named-region 1054 18 .gnu.version)\n(named-region 1072 48 .gnu.version_r)\n(named-region 1120 192 .rela.dyn)\n(named-region 1312 96 .rela.plt)\n(named-region 1408 24 .init)\n(named-region 1440 96 .plt)\n(named-region 1536 340 .text)\n(named-region 1876 20 .fini)\n(named-region 1896 4 .rodata)\n(named-region 1900 60 .eh_frame_hdr)\n(named-region 1960 160 .eh_frame)\n(named-region 69016 8 .init_array)\n(named-region 69024 8 .fini_array)\n(named-region 69032 496 .dynamic)\n(named-region 69528 104 .got)\n(named-region 69632 16 .data)\n(named-region 69648 24 .bss)\n(named-region 0 43 .comment)\n(named-region 0 2136 .symtab)\n(named-region 0 557 .strtab)\n(named-region 0 250 .shstrtab)\n(named-symbol 1652 call_weak_fn)\n(named-symbol 1680 deregister_tm_clones)\n(named-symbol 1728 register_tm_clones)\n(named-symbol 1792 __do_global_dtors_aux)\n(named-symbol 1872 frame_dummy)\n(named-symbol 0 __libc_start_main@GLIBC_2.34)\n(named-symbol 0 __cxa_finalize@GLIBC_2.17)\n(named-symbol 1876 _fini)\n(named-symbol 0 abort@GLIBC_2.17)\n(named-symbol 1600 _start)\n(named-symbol 1536 main)\n(named-symbol 1408 _init)\n(named-symbol 0 __libc_start_main)\n(named-symbol 0 __cxa_finalize)\n(named-symbol 0 abort)\n(require libc.so.6)\n(section 568 27)\n(section 596 36)\n(section 632 32)\n(section 664 28)\n(section 696 216)\n(section 912 141)\n(section 1054 18)\n(section 1072 48)\n(section 1120 192)\n(section 1312 96)\n(section 1408 24)\n(section 1440 96)\n(section 1536 340)\n(section 1876 20)\n(section 1896 4)\n(section 1900 60)\n(section 1960 160)\n(section 69016 8)\n(section 69024 8)\n(section 69032 496)\n(section 69528 104)\n(section 69632 16)\n(section 69648 24)\n(section 0 43)\n(section 0 2136)\n(section 0 557)\n(section 0 250)\n(segment 0 2120 true false true)\n(segment 69016 656 true true false)\n(subarch v8)\n(symbol-chunk 1652 20 1652)\n(symbol-chunk 1600 52 1600)\n(symbol-chunk 1536 24 1536)\n(symbol-value 1652 1652)\n(symbol-value 1680 1680)\n(symbol-value 1728 1728)\n(symbol-value 1792 1792)\n(symbol-value 1872 1872)\n(symbol-value 1876 1876)\n(symbol-value 1600 1600)\n(symbol-value 1536 1536)\n(symbol-value 1408 1408)\n(symbol-value 0 0)\n(system \"\")\n(vendor \"\")\n"), -Attr("abi-name","\"aarch64-linux-gnu-elf\"")]), -Sections([Section(".shstrtab", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x40\x06\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xc0\x1b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x38\x00\x09\x00\x40\x00\x1c\x00\x1b\x00\x06\x00\x00\x00\x04\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x04\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x48\x08\x00\x00\x00\x00\x00\x00\x48\x08\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x01\x00\x00\x00\x06\x00\x00\x00\x98\x0d\x00\x00\x00\x00\x00\x00\x98\x0d"), -Section(".strtab", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x40\x06\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xc0\x1b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x38\x00\x09\x00\x40\x00\x1c\x00\x1b\x00\x06\x00\x00\x00\x04\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x04\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x48\x08\x00\x00\x00\x00\x00\x00\x48\x08\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x01\x00\x00\x00\x06\x00\x00\x00\x98\x0d\x00\x00\x00\x00\x00\x00\x98\x0d\x01\x00\x00\x00\x00\x00\x98\x0d\x01\x00\x00\x00\x00\x00\x78\x02\x00\x00\x00\x00\x00\x00\x90\x02\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x02\x00\x00\x00\x06\x00\x00\x00\xa8\x0d\x00\x00\x00\x00\x00\x00\xa8\x0d\x01\x00\x00\x00\x00\x00\xa8\x0d\x01\x00\x00\x00\x00\x00\xf0\x01\x00\x00\x00\x00\x00\x00\xf0\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x04\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x50\xe5\x74\x64\x04\x00\x00\x00\x6c\x07\x00\x00\x00\x00\x00\x00\x6c\x07\x00\x00\x00\x00\x00\x00\x6c\x07\x00\x00\x00\x00\x00\x00\x3c\x00\x00\x00\x00\x00\x00\x00\x3c\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x51\xe5\x74\x64\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x52\xe5\x74\x64\x04\x00\x00\x00\x98\x0d\x00\x00\x00\x00\x00\x00\x98\x0d\x01\x00\x00\x00\x00\x00\x98\x0d\x01\x00\x00\x00\x00\x00\x68\x02\x00\x00\x00\x00\x00\x00\x68\x02\x00\x00\x00"), -Section(".comment", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x40\x06\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xc0\x1b\x00"), -Section(".interp", 0x238, "\x2f\x6c\x69\x62\x2f\x6c\x64\x2d\x6c\x69\x6e\x75\x78\x2d\x61\x61\x72\x63\x68\x36\x34\x2e\x73\x6f\x2e\x31\x00"), -Section(".note.gnu.build-id", 0x254, "\x04\x00\x00\x00\x14\x00\x00\x00\x03\x00\x00\x00\x47\x4e\x55\x00\xbb\x01\xb3\x6f\xde\x27\x4d\x30\x56\xa2\xc1\x83\x1f\x64\x82\x2d\xe5\xf4\x80\x3a"), -Section(".note.ABI-tag", 0x278, "\x04\x00\x00\x00\x10\x00\x00\x00\x01\x00\x00\x00\x47\x4e\x55\x00\x00\x00\x00\x00\x03\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00"), -Section(".gnu.hash", 0x298, "\x01\x00\x00\x00\x01\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".dynsym", 0x2B8, "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x0b\x00\x80\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x16\x00\x00\x10\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x48\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x22\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x22\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x73\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".dynstr", 0x390, "\x00\x5f\x5f\x63\x78\x61\x5f\x66\x69\x6e\x61\x6c\x69\x7a\x65\x00\x5f\x5f\x6c\x69\x62\x63\x5f\x73\x74\x61\x72\x74\x5f\x6d\x61\x69\x6e\x00\x61\x62\x6f\x72\x74\x00\x6c\x69\x62\x63\x2e\x73\x6f\x2e\x36\x00\x47\x4c\x49\x42\x43\x5f\x32\x2e\x31\x37\x00\x47\x4c\x49\x42\x43\x5f\x32\x2e\x33\x34\x00\x5f\x49\x54\x4d\x5f\x64\x65\x72\x65\x67\x69\x73\x74\x65\x72\x54\x4d\x43\x6c\x6f\x6e\x65\x54\x61\x62\x6c\x65\x00\x5f\x5f\x67\x6d\x6f\x6e\x5f\x73\x74\x61\x72\x74\x5f\x5f\x00\x5f\x49\x54\x4d\x5f\x72\x65\x67\x69\x73\x74\x65\x72\x54\x4d\x43\x6c\x6f\x6e\x65\x54\x61\x62\x6c\x65\x00"), -Section(".gnu.version", 0x41E, "\x00\x00\x00\x00\x00\x00\x02\x00\x01\x00\x03\x00\x01\x00\x03\x00\x01\x00"), -Section(".gnu.version_r", 0x430, "\x01\x00\x02\x00\x28\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x97\x91\x96\x06\x00\x00\x03\x00\x32\x00\x00\x00\x10\x00\x00\x00\xb4\x91\x96\x06\x00\x00\x02\x00\x3d\x00\x00\x00\x00\x00\x00\x00"), -Section(".rela.dyn", 0x460, "\x98\x0d\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x50\x07\x00\x00\x00\x00\x00\x00\xa0\x0d\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\xf0\x0f\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x00\x06\x00\x00\x00\x00\x00\x00\x08\x10\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x08\x10\x01\x00\x00\x00\x00\x00\xd8\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe0\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe8\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xf8\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".rela.plt", 0x520, "\xb0\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xb8\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xc0\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xc8\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".init", 0x580, "\x1f\x20\x03\xd5\xfd\x7b\xbf\xa9\xfd\x03\x00\x91\x3a\x00\x00\x94\xfd\x7b\xc1\xa8\xc0\x03\x5f\xd6"), -Section(".plt", 0x5A0, "\xf0\x7b\xbf\xa9\x90\x00\x00\x90\x11\xd6\x47\xf9\x10\xa2\x3e\x91\x20\x02\x1f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x90\x00\x00\x90\x11\xda\x47\xf9\x10\xc2\x3e\x91\x20\x02\x1f\xd6\x90\x00\x00\x90\x11\xde\x47\xf9\x10\xe2\x3e\x91\x20\x02\x1f\xd6\x90\x00\x00\x90\x11\xe2\x47\xf9\x10\x02\x3f\x91\x20\x02\x1f\xd6\x90\x00\x00\x90\x11\xe6\x47\xf9\x10\x22\x3f\x91\x20\x02\x1f\xd6"), -Section(".fini", 0x754, "\x1f\x20\x03\xd5\xfd\x7b\xbf\xa9\xfd\x03\x00\x91\xfd\x7b\xc1\xa8\xc0\x03\x5f\xd6"), -Section(".rodata", 0x768, "\x01\x00\x02\x00"), -Section(".eh_frame_hdr", 0x76C, "\x01\x1b\x03\x3b\x38\x00\x00\x00\x06\x00\x00\x00\x94\xfe\xff\xff\xc4\x00\x00\x00\xd4\xfe\xff\xff\x50\x00\x00\x00\x24\xff\xff\xff\x64\x00\x00\x00\x54\xff\xff\xff\x78\x00\x00\x00\x94\xff\xff\xff\x8c\x00\x00\x00\xe4\xff\xff\xff\xb0\x00\x00\x00"), -Section(".eh_frame", 0x7A8, "\x10\x00\x00\x00\x00\x00\x00\x00\x01\x7a\x52\x00\x04\x78\x1e\x01\x1b\x0c\x1f\x00\x10\x00\x00\x00\x18\x00\x00\x00\x7c\xfe\xff\xff\x34\x00\x00\x00\x00\x41\x07\x1e\x10\x00\x00\x00\x2c\x00\x00\x00\xb8\xfe\xff\xff\x30\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x40\x00\x00\x00\xd4\xfe\xff\xff\x3c\x00\x00\x00\x00\x00\x00\x00\x20\x00\x00\x00\x54\x00\x00\x00\x00\xff\xff\xff\x48\x00\x00\x00\x00\x41\x0e\x20\x9d\x04\x9e\x03\x42\x93\x02\x4e\xde\xdd\xd3\x0e\x00\x00\x00\x00\x10\x00\x00\x00\x78\x00\x00\x00\x2c\xff\xff\xff\x04\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x8c\x00\x00\x00\xc8\xfd\xff\xff\x18\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".fini_array", 0x10DA0, "\x00\x07\x00\x00\x00\x00\x00\x00"), -Section(".dynamic", 0x10DA8, "\x01\x00\x00\x00\x00\x00\x00\x00\x28\x00\x00\x00\x00\x00\x00\x00\x0c\x00\x00\x00\x00\x00\x00\x00\x80\x05\x00\x00\x00\x00\x00\x00\x0d\x00\x00\x00\x00\x00\x00\x00\x54\x07\x00\x00\x00\x00\x00\x00\x19\x00\x00\x00\x00\x00\x00\x00\x98\x0d\x01\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x1a\x00\x00\x00\x00\x00\x00\x00\xa0\x0d\x01\x00\x00\x00\x00\x00\x1c\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\xf5\xfe\xff\x6f\x00\x00\x00\x00\x98\x02\x00\x00\x00\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x90\x03\x00\x00\x00\x00\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\xb8\x02\x00\x00\x00\x00\x00\x00\x0a\x00\x00\x00\x00\x00\x00\x00\x8d\x00\x00\x00\x00\x00\x00\x00\x0b\x00\x00\x00\x00\x00\x00\x00\x18\x00\x00\x00\x00\x00\x00\x00\x15\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x98\x0f\x01\x00\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x60\x00\x00\x00\x00\x00\x00\x00\x14\x00\x00\x00\x00\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x17\x00\x00\x00\x00\x00\x00\x00\x20\x05\x00\x00\x00\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x60\x04\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\xc0\x00\x00\x00\x00\x00\x00\x00\x09\x00\x00\x00\x00\x00\x00\x00\x18\x00\x00\x00\x00\x00\x00\x00\x1e\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\xfb\xff\xff\x6f\x00\x00\x00\x00\x01\x00\x00\x08\x00\x00\x00\x00\xfe\xff\xff\x6f\x00\x00\x00\x00\x30\x04\x00\x00\x00\x00\x00\x00\xff\xff\xff\x6f\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\xf0\xff\xff\x6f\x00\x00\x00\x00\x1e\x04\x00\x00\x00\x00\x00\x00\xf9\xff\xff\x6f\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".init_array", 0x10D98, "\x50\x07\x00\x00\x00\x00\x00\x00"), -Section(".got", 0x10F98, "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xa0\x05\x00\x00\x00\x00\x00\x00\xa0\x05\x00\x00\x00\x00\x00\x00\xa0\x05\x00\x00\x00\x00\x00\x00\xa0\x05\x00\x00\x00\x00\x00\x00\xa8\x0d\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".data", 0x11000, "\x00\x00\x00\x00\x00\x00\x00\x00\x08\x10\x01\x00\x00\x00\x00\x00"), -Section(".text", 0x600, "\x81\x00\x00\xb0\x22\x60\x00\x91\x00\x00\x80\x52\x42\x04\x40\xf9\x22\x0c\x00\xf9\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1d\x00\x80\xd2\x1e\x00\x80\xd2\xe5\x03\x00\xaa\xe1\x03\x40\xf9\xe2\x23\x00\x91\xe6\x03\x00\x91\x80\x00\x00\x90\x00\xf8\x47\xf9\x03\x00\x80\xd2\x04\x00\x80\xd2\xd5\xff\xff\x97\xe0\xff\xff\x97\x80\x00\x00\x90\x00\xf4\x47\xf9\x40\x00\x00\xb4\xd8\xff\xff\x17\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x80\x00\x00\xb0\x00\x40\x00\x91\x81\x00\x00\xb0\x21\x40\x00\x91\x3f\x00\x00\xeb\xc0\x00\x00\x54\x81\x00\x00\x90\x21\xec\x47\xf9\x61\x00\x00\xb4\xf0\x03\x01\xaa\x00\x02\x1f\xd6\xc0\x03\x5f\xd6\x80\x00\x00\xb0\x00\x40\x00\x91\x81\x00\x00\xb0\x21\x40\x00\x91\x21\x00\x00\xcb\x22\xfc\x7f\xd3\x41\x0c\x81\x8b\x21\xfc\x41\x93\xc1\x00\x00\xb4\x82\x00\x00\x90\x42\xfc\x47\xf9\x62\x00\x00\xb4\xf0\x03\x02\xaa\x00\x02\x1f\xd6\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\xfd\x7b\xbe\xa9\xfd\x03\x00\x91\xf3\x0b\x00\xf9\x93\x00\x00\xb0\x60\x42\x40\x39\x40\x01\x00\x35\x80\x00\x00\x90\x00\xf0\x47\xf9\x80\x00\x00\xb4\x80\x00\x00\xb0\x00\x04\x40\xf9\xa9\xff\xff\x97\xd8\xff\xff\x97\x20\x00\x80\x52\x60\x42\x00\x39\xf3\x0b\x40\xf9\xfd\x7b\xc2\xa8\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\xdc\xff\xff\x17")]), -Memmap([Annotation(Region(0x0,0x847), Attr("segment","02 0 2120")), -Annotation(Region(0x600,0x617), Attr("symbol","\"main\"")), -Annotation(Region(0x0,0xF9), Attr("section","\".shstrtab\"")), -Annotation(Region(0x0,0x22C), Attr("section","\".strtab\"")), -Annotation(Region(0x0,0x2A), Attr("section","\".comment\"")), -Annotation(Region(0x238,0x252), Attr("section","\".interp\"")), -Annotation(Region(0x254,0x277), Attr("section","\".note.gnu.build-id\"")), -Annotation(Region(0x278,0x297), Attr("section","\".note.ABI-tag\"")), -Annotation(Region(0x298,0x2B3), Attr("section","\".gnu.hash\"")), -Annotation(Region(0x2B8,0x38F), Attr("section","\".dynsym\"")), -Annotation(Region(0x390,0x41C), Attr("section","\".dynstr\"")), -Annotation(Region(0x41E,0x42F), Attr("section","\".gnu.version\"")), -Annotation(Region(0x430,0x45F), Attr("section","\".gnu.version_r\"")), -Annotation(Region(0x460,0x51F), Attr("section","\".rela.dyn\"")), -Annotation(Region(0x520,0x57F), Attr("section","\".rela.plt\"")), -Annotation(Region(0x580,0x597), Attr("section","\".init\"")), -Annotation(Region(0x5A0,0x5FF), Attr("section","\".plt\"")), -Annotation(Region(0x580,0x597), Attr("code-region","()")), -Annotation(Region(0x5A0,0x5FF), Attr("code-region","()")), -Annotation(Region(0x600,0x617), Attr("symbol-info","main 0x600 24")), -Annotation(Region(0x640,0x673), Attr("symbol","\"_start\"")), -Annotation(Region(0x640,0x673), Attr("symbol-info","_start 0x640 52")), -Annotation(Region(0x674,0x687), Attr("symbol","\"call_weak_fn\"")), -Annotation(Region(0x674,0x687), Attr("symbol-info","call_weak_fn 0x674 20")), -Annotation(Region(0x754,0x767), Attr("section","\".fini\"")), -Annotation(Region(0x768,0x76B), Attr("section","\".rodata\"")), -Annotation(Region(0x76C,0x7A7), Attr("section","\".eh_frame_hdr\"")), -Annotation(Region(0x7A8,0x847), Attr("section","\".eh_frame\"")), -Annotation(Region(0x10D98,0x1100F), Attr("segment","03 0x10D98 656")), -Annotation(Region(0x10DA0,0x10DA7), Attr("section","\".fini_array\"")), -Annotation(Region(0x10DA8,0x10F97), Attr("section","\".dynamic\"")), -Annotation(Region(0x10D98,0x10D9F), Attr("section","\".init_array\"")), -Annotation(Region(0x10F98,0x10FFF), Attr("section","\".got\"")), -Annotation(Region(0x11000,0x1100F), Attr("section","\".data\"")), -Annotation(Region(0x600,0x753), Attr("section","\".text\"")), -Annotation(Region(0x600,0x753), Attr("code-region","()")), -Annotation(Region(0x754,0x767), Attr("code-region","()"))]), -Program(Tid(1_483, "%000005cb"), Attrs([]), - Subs([Sub(Tid(1_461, "@__cxa_finalize"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x5D0"), -Attr("stub","()")]), "__cxa_finalize", Args([Arg(Tid(1_484, "%000005cc"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("__cxa_finalize_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(857, "@__cxa_finalize"), - Attrs([Attr("address","0x5D0")]), Phis([]), -Defs([Def(Tid(1_105, "%00000451"), Attrs([Attr("address","0x5D0"), -Attr("insn","adrp x16, #65536")]), Var("R16",Imm(64)), Int(65536,64)), -Def(Tid(1_112, "%00000458"), Attrs([Attr("address","0x5D4"), -Attr("insn","ldr x17, [x16, #0xfb8]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(4024,64)),LittleEndian(),64)), -Def(Tid(1_118, "%0000045e"), Attrs([Attr("address","0x5D8"), -Attr("insn","add x16, x16, #0xfb8")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(4024,64)))]), Jmps([Call(Tid(1_123, "%00000463"), - Attrs([Attr("address","0x5DC"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), -Sub(Tid(1_462, "@__do_global_dtors_aux"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x700")]), - "__do_global_dtors_aux", Args([Arg(Tid(1_485, "%000005cd"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("__do_global_dtors_aux_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(710, "@__do_global_dtors_aux"), - Attrs([Attr("address","0x700")]), Phis([]), Defs([Def(Tid(714, "%000002ca"), - Attrs([Attr("address","0x700"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("#3",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(18446744073709551584,64))), -Def(Tid(720, "%000002d0"), Attrs([Attr("address","0x700"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("#3",Imm(64)),Var("R29",Imm(64)),LittleEndian(),64)), -Def(Tid(726, "%000002d6"), Attrs([Attr("address","0x700"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("#3",Imm(64)),Int(8,64)),Var("R30",Imm(64)),LittleEndian(),64)), -Def(Tid(730, "%000002da"), Attrs([Attr("address","0x700"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("R31",Imm(64)), -Var("#3",Imm(64))), Def(Tid(736, "%000002e0"), - Attrs([Attr("address","0x704"), Attr("insn","mov x29, sp")]), - Var("R29",Imm(64)), Var("R31",Imm(64))), Def(Tid(744, "%000002e8"), - Attrs([Attr("address","0x708"), Attr("insn","str x19, [sp, #0x10]")]), - Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(16,64)),Var("R19",Imm(64)),LittleEndian(),64)), -Def(Tid(749, "%000002ed"), Attrs([Attr("address","0x70C"), -Attr("insn","adrp x19, #69632")]), Var("R19",Imm(64)), Int(69632,64)), -Def(Tid(756, "%000002f4"), Attrs([Attr("address","0x710"), -Attr("insn","ldrb w0, [x19, #0x10]")]), Var("R0",Imm(64)), -UNSIGNED(64,Load(Var("mem",Mem(64,8)),PLUS(Var("R19",Imm(64)),Int(16,64)),LittleEndian(),8)))]), -Jmps([Goto(Tid(763, "%000002fb"), Attrs([Attr("address","0x714"), -Attr("insn","cbnz w0, #0x28")]), - NEQ(Extract(31,0,Var("R0",Imm(64))),Int(0,32)), -Direct(Tid(761, "%000002f9"))), Goto(Tid(1_463, "%000005b7"), Attrs([]), - Int(1,1), Direct(Tid(802, "%00000322")))])), Blk(Tid(802, "%00000322"), - Attrs([Attr("address","0x718")]), Phis([]), Defs([Def(Tid(805, "%00000325"), - Attrs([Attr("address","0x718"), Attr("insn","adrp x0, #65536")]), - Var("R0",Imm(64)), Int(65536,64)), Def(Tid(812, "%0000032c"), - Attrs([Attr("address","0x71C"), Attr("insn","ldr x0, [x0, #0xfe0]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(4064,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(818, "%00000332"), Attrs([Attr("address","0x720"), -Attr("insn","cbz x0, #0x10")]), EQ(Var("R0",Imm(64)),Int(0,64)), -Direct(Tid(816, "%00000330"))), Goto(Tid(1_464, "%000005b8"), Attrs([]), - Int(1,1), Direct(Tid(841, "%00000349")))])), Blk(Tid(841, "%00000349"), - Attrs([Attr("address","0x724")]), Phis([]), Defs([Def(Tid(844, "%0000034c"), - Attrs([Attr("address","0x724"), Attr("insn","adrp x0, #69632")]), - Var("R0",Imm(64)), Int(69632,64)), Def(Tid(851, "%00000353"), - Attrs([Attr("address","0x728"), Attr("insn","ldr x0, [x0, #0x8]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(856, "%00000358"), Attrs([Attr("address","0x72C"), -Attr("insn","bl #-0x15c")]), Var("R30",Imm(64)), Int(1840,64))]), -Jmps([Call(Tid(859, "%0000035b"), Attrs([Attr("address","0x72C"), -Attr("insn","bl #-0x15c")]), Int(1,1), -(Direct(Tid(1_461, "@__cxa_finalize")),Direct(Tid(816, "%00000330"))))])), -Blk(Tid(816, "%00000330"), Attrs([Attr("address","0x730")]), Phis([]), -Defs([Def(Tid(824, "%00000338"), Attrs([Attr("address","0x730"), -Attr("insn","bl #-0xa0")]), Var("R30",Imm(64)), Int(1844,64))]), -Jmps([Call(Tid(826, "%0000033a"), Attrs([Attr("address","0x730"), -Attr("insn","bl #-0xa0")]), Int(1,1), -(Direct(Tid(1_475, "@deregister_tm_clones")),Direct(Tid(828, "%0000033c"))))])), -Blk(Tid(828, "%0000033c"), Attrs([Attr("address","0x734")]), Phis([]), -Defs([Def(Tid(831, "%0000033f"), Attrs([Attr("address","0x734"), -Attr("insn","mov w0, #0x1")]), Var("R0",Imm(64)), Int(1,64)), -Def(Tid(839, "%00000347"), Attrs([Attr("address","0x738"), -Attr("insn","strb w0, [x19, #0x10]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R19",Imm(64)),Int(16,64)),Extract(7,0,Var("R0",Imm(64))),LittleEndian(),8))]), -Jmps([Goto(Tid(1_465, "%000005b9"), Attrs([]), Int(1,1), -Direct(Tid(761, "%000002f9")))])), Blk(Tid(761, "%000002f9"), - Attrs([Attr("address","0x73C")]), Phis([]), Defs([Def(Tid(771, "%00000303"), - Attrs([Attr("address","0x73C"), Attr("insn","ldr x19, [sp, #0x10]")]), - Var("R19",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(16,64)),LittleEndian(),64)), -Def(Tid(778, "%0000030a"), Attrs([Attr("address","0x740"), -Attr("insn","ldp x29, x30, [sp], #0x20")]), Var("R29",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(783, "%0000030f"), Attrs([Attr("address","0x740"), -Attr("insn","ldp x29, x30, [sp], #0x20")]), Var("R30",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(787, "%00000313"), Attrs([Attr("address","0x740"), -Attr("insn","ldp x29, x30, [sp], #0x20")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(32,64)))]), Jmps([Call(Tid(792, "%00000318"), - Attrs([Attr("address","0x744"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), Sub(Tid(1_466, "@__libc_start_main"), - Attrs([Attr("c.proto","signed (*)(signed (*)(signed , char** , char** );* main, signed , char** , \nvoid* auxv)"), -Attr("address","0x5C0"), Attr("stub","()")]), "__libc_start_main", - Args([Arg(Tid(1_486, "%000005ce"), - Attrs([Attr("c.layout","**[ : 64]"), -Attr("c.data","Top:u64 ptr ptr"), -Attr("c.type","signed (*)(signed , char** , char** );*")]), - Var("__libc_start_main_main",Imm(64)), Var("R0",Imm(64)), In()), -Arg(Tid(1_487, "%000005cf"), Attrs([Attr("c.layout","[signed : 32]"), -Attr("c.data","Top:u32"), Attr("c.type","signed")]), - Var("__libc_start_main_arg2",Imm(32)), LOW(32,Var("R1",Imm(64))), In()), -Arg(Tid(1_488, "%000005d0"), Attrs([Attr("c.layout","**[char : 8]"), -Attr("c.data","Top:u8 ptr ptr"), Attr("c.type","char**")]), - Var("__libc_start_main_arg3",Imm(64)), Var("R2",Imm(64)), Both()), -Arg(Tid(1_489, "%000005d1"), Attrs([Attr("c.layout","*[ : 8]"), -Attr("c.data","{} ptr"), Attr("c.type","void*")]), - Var("__libc_start_main_auxv",Imm(64)), Var("R3",Imm(64)), Both()), -Arg(Tid(1_490, "%000005d2"), Attrs([Attr("c.layout","[signed : 32]"), -Attr("c.data","Top:u32"), Attr("c.type","signed")]), - Var("__libc_start_main_result",Imm(32)), LOW(32,Var("R0",Imm(64))), -Out())]), Blks([Blk(Tid(543, "@__libc_start_main"), - Attrs([Attr("address","0x5C0")]), Phis([]), -Defs([Def(Tid(1_083, "%0000043b"), Attrs([Attr("address","0x5C0"), -Attr("insn","adrp x16, #65536")]), Var("R16",Imm(64)), Int(65536,64)), -Def(Tid(1_090, "%00000442"), Attrs([Attr("address","0x5C4"), -Attr("insn","ldr x17, [x16, #0xfb0]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(4016,64)),LittleEndian(),64)), -Def(Tid(1_096, "%00000448"), Attrs([Attr("address","0x5C8"), -Attr("insn","add x16, x16, #0xfb0")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(4016,64)))]), Jmps([Call(Tid(1_101, "%0000044d"), - Attrs([Attr("address","0x5CC"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), Sub(Tid(1_467, "@_fini"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x754")]), - "_fini", Args([Arg(Tid(1_491, "%000005d3"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("_fini_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(31, "@_fini"), - Attrs([Attr("address","0x754")]), Phis([]), Defs([Def(Tid(37, "%00000025"), - Attrs([Attr("address","0x758"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("#0",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(18446744073709551600,64))), -Def(Tid(43, "%0000002b"), Attrs([Attr("address","0x758"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("#0",Imm(64)),Var("R29",Imm(64)),LittleEndian(),64)), -Def(Tid(49, "%00000031"), Attrs([Attr("address","0x758"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("#0",Imm(64)),Int(8,64)),Var("R30",Imm(64)),LittleEndian(),64)), -Def(Tid(53, "%00000035"), Attrs([Attr("address","0x758"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("R31",Imm(64)), -Var("#0",Imm(64))), Def(Tid(59, "%0000003b"), Attrs([Attr("address","0x75C"), -Attr("insn","mov x29, sp")]), Var("R29",Imm(64)), Var("R31",Imm(64))), -Def(Tid(66, "%00000042"), Attrs([Attr("address","0x760"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R29",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(71, "%00000047"), Attrs([Attr("address","0x760"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R30",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(75, "%0000004b"), Attrs([Attr("address","0x760"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(16,64)))]), Jmps([Call(Tid(80, "%00000050"), - Attrs([Attr("address","0x764"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), Sub(Tid(1_468, "@_init"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x580")]), - "_init", Args([Arg(Tid(1_492, "%000005d4"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("_init_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(1_287, "@_init"), - Attrs([Attr("address","0x580")]), Phis([]), -Defs([Def(Tid(1_293, "%0000050d"), Attrs([Attr("address","0x584"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("#5",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(18446744073709551600,64))), -Def(Tid(1_299, "%00000513"), Attrs([Attr("address","0x584"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("#5",Imm(64)),Var("R29",Imm(64)),LittleEndian(),64)), -Def(Tid(1_305, "%00000519"), Attrs([Attr("address","0x584"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("#5",Imm(64)),Int(8,64)),Var("R30",Imm(64)),LittleEndian(),64)), -Def(Tid(1_309, "%0000051d"), Attrs([Attr("address","0x584"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("R31",Imm(64)), -Var("#5",Imm(64))), Def(Tid(1_315, "%00000523"), - Attrs([Attr("address","0x588"), Attr("insn","mov x29, sp")]), - Var("R29",Imm(64)), Var("R31",Imm(64))), Def(Tid(1_320, "%00000528"), - Attrs([Attr("address","0x58C"), Attr("insn","bl #0xe8")]), - Var("R30",Imm(64)), Int(1424,64))]), Jmps([Call(Tid(1_322, "%0000052a"), - Attrs([Attr("address","0x58C"), Attr("insn","bl #0xe8")]), Int(1,1), -(Direct(Tid(1_473, "@call_weak_fn")),Direct(Tid(1_324, "%0000052c"))))])), -Blk(Tid(1_324, "%0000052c"), Attrs([Attr("address","0x590")]), Phis([]), -Defs([Def(Tid(1_329, "%00000531"), Attrs([Attr("address","0x590"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R29",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(1_334, "%00000536"), Attrs([Attr("address","0x590"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R30",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(1_338, "%0000053a"), Attrs([Attr("address","0x590"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(16,64)))]), Jmps([Call(Tid(1_343, "%0000053f"), - Attrs([Attr("address","0x594"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), Sub(Tid(1_469, "@_start"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x640"), -Attr("entry-point","()")]), "_start", Args([Arg(Tid(1_493, "%000005d5"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("_start_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(480, "@_start"), - Attrs([Attr("address","0x640")]), Phis([]), Defs([Def(Tid(485, "%000001e5"), - Attrs([Attr("address","0x644"), Attr("insn","mov x29, #0x0")]), - Var("R29",Imm(64)), Int(0,64)), Def(Tid(490, "%000001ea"), - Attrs([Attr("address","0x648"), Attr("insn","mov x30, #0x0")]), - Var("R30",Imm(64)), Int(0,64)), Def(Tid(496, "%000001f0"), - Attrs([Attr("address","0x64C"), Attr("insn","mov x5, x0")]), - Var("R5",Imm(64)), Var("R0",Imm(64))), Def(Tid(503, "%000001f7"), - Attrs([Attr("address","0x650"), Attr("insn","ldr x1, [sp]")]), - Var("R1",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(509, "%000001fd"), Attrs([Attr("address","0x654"), -Attr("insn","add x2, sp, #0x8")]), Var("R2",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(8,64))), Def(Tid(515, "%00000203"), - Attrs([Attr("address","0x658"), Attr("insn","mov x6, sp")]), - Var("R6",Imm(64)), Var("R31",Imm(64))), Def(Tid(520, "%00000208"), - Attrs([Attr("address","0x65C"), Attr("insn","adrp x0, #65536")]), - Var("R0",Imm(64)), Int(65536,64)), Def(Tid(527, "%0000020f"), - Attrs([Attr("address","0x660"), Attr("insn","ldr x0, [x0, #0xff0]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(4080,64)),LittleEndian(),64)), -Def(Tid(532, "%00000214"), Attrs([Attr("address","0x664"), -Attr("insn","mov x3, #0x0")]), Var("R3",Imm(64)), Int(0,64)), -Def(Tid(537, "%00000219"), Attrs([Attr("address","0x668"), -Attr("insn","mov x4, #0x0")]), Var("R4",Imm(64)), Int(0,64)), -Def(Tid(542, "%0000021e"), Attrs([Attr("address","0x66C"), -Attr("insn","bl #-0xac")]), Var("R30",Imm(64)), Int(1648,64))]), -Jmps([Call(Tid(545, "%00000221"), Attrs([Attr("address","0x66C"), -Attr("insn","bl #-0xac")]), Int(1,1), -(Direct(Tid(1_466, "@__libc_start_main")),Direct(Tid(547, "%00000223"))))])), -Blk(Tid(547, "%00000223"), Attrs([Attr("address","0x670")]), Phis([]), -Defs([Def(Tid(550, "%00000226"), Attrs([Attr("address","0x670"), -Attr("insn","bl #-0x80")]), Var("R30",Imm(64)), Int(1652,64))]), -Jmps([Call(Tid(553, "%00000229"), Attrs([Attr("address","0x670"), -Attr("insn","bl #-0x80")]), Int(1,1), -(Direct(Tid(1_472, "@abort")),Direct(Tid(1_470, "%000005be"))))])), -Blk(Tid(1_470, "%000005be"), Attrs([]), Phis([]), Defs([]), -Jmps([Call(Tid(1_471, "%000005bf"), Attrs([]), Int(1,1), -(Direct(Tid(1_473, "@call_weak_fn")),))]))])), Sub(Tid(1_472, "@abort"), - Attrs([Attr("noreturn","()"), Attr("c.proto","void (*)(void)"), -Attr("address","0x5F0"), Attr("stub","()")]), "abort", Args([]), -Blks([Blk(Tid(551, "@abort"), Attrs([Attr("address","0x5F0")]), Phis([]), -Defs([Def(Tid(1_149, "%0000047d"), Attrs([Attr("address","0x5F0"), -Attr("insn","adrp x16, #65536")]), Var("R16",Imm(64)), Int(65536,64)), -Def(Tid(1_156, "%00000484"), Attrs([Attr("address","0x5F4"), -Attr("insn","ldr x17, [x16, #0xfc8]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(4040,64)),LittleEndian(),64)), -Def(Tid(1_162, "%0000048a"), Attrs([Attr("address","0x5F8"), -Attr("insn","add x16, x16, #0xfc8")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(4040,64)))]), Jmps([Call(Tid(1_167, "%0000048f"), - Attrs([Attr("address","0x5FC"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), Sub(Tid(1_473, "@call_weak_fn"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x674")]), - "call_weak_fn", Args([Arg(Tid(1_494, "%000005d6"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("call_weak_fn_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(555, "@call_weak_fn"), - Attrs([Attr("address","0x674")]), Phis([]), Defs([Def(Tid(558, "%0000022e"), - Attrs([Attr("address","0x674"), Attr("insn","adrp x0, #65536")]), - Var("R0",Imm(64)), Int(65536,64)), Def(Tid(565, "%00000235"), - Attrs([Attr("address","0x678"), Attr("insn","ldr x0, [x0, #0xfe8]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(4072,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(571, "%0000023b"), Attrs([Attr("address","0x67C"), -Attr("insn","cbz x0, #0x8")]), EQ(Var("R0",Imm(64)),Int(0,64)), -Direct(Tid(569, "%00000239"))), Goto(Tid(1_474, "%000005c2"), Attrs([]), - Int(1,1), Direct(Tid(921, "%00000399")))])), Blk(Tid(569, "%00000239"), - Attrs([Attr("address","0x684")]), Phis([]), Defs([]), -Jmps([Call(Tid(577, "%00000241"), Attrs([Attr("address","0x684"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))])), -Blk(Tid(921, "%00000399"), Attrs([Attr("address","0x680")]), Phis([]), -Defs([]), Jmps([Goto(Tid(924, "%0000039c"), Attrs([Attr("address","0x680"), -Attr("insn","b #-0xa0")]), Int(1,1), Direct(Tid(922, "@__gmon_start__")))])), -Blk(Tid(922, "@__gmon_start__"), Attrs([Attr("address","0x5E0")]), Phis([]), -Defs([Def(Tid(1_127, "%00000467"), Attrs([Attr("address","0x5E0"), -Attr("insn","adrp x16, #65536")]), Var("R16",Imm(64)), Int(65536,64)), -Def(Tid(1_134, "%0000046e"), Attrs([Attr("address","0x5E4"), -Attr("insn","ldr x17, [x16, #0xfc0]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(4032,64)),LittleEndian(),64)), -Def(Tid(1_140, "%00000474"), Attrs([Attr("address","0x5E8"), -Attr("insn","add x16, x16, #0xfc0")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(4032,64)))]), Jmps([Call(Tid(1_145, "%00000479"), - Attrs([Attr("address","0x5EC"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), -Sub(Tid(1_475, "@deregister_tm_clones"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x690")]), - "deregister_tm_clones", Args([Arg(Tid(1_495, "%000005d7"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("deregister_tm_clones_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(583, "@deregister_tm_clones"), - Attrs([Attr("address","0x690")]), Phis([]), Defs([Def(Tid(586, "%0000024a"), - Attrs([Attr("address","0x690"), Attr("insn","adrp x0, #69632")]), - Var("R0",Imm(64)), Int(69632,64)), Def(Tid(592, "%00000250"), - Attrs([Attr("address","0x694"), Attr("insn","add x0, x0, #0x10")]), - Var("R0",Imm(64)), PLUS(Var("R0",Imm(64)),Int(16,64))), -Def(Tid(597, "%00000255"), Attrs([Attr("address","0x698"), -Attr("insn","adrp x1, #69632")]), Var("R1",Imm(64)), Int(69632,64)), -Def(Tid(603, "%0000025b"), Attrs([Attr("address","0x69C"), -Attr("insn","add x1, x1, #0x10")]), Var("R1",Imm(64)), -PLUS(Var("R1",Imm(64)),Int(16,64))), Def(Tid(609, "%00000261"), - Attrs([Attr("address","0x6A0"), Attr("insn","cmp x1, x0")]), - Var("#1",Imm(64)), NOT(Var("R0",Imm(64)))), Def(Tid(614, "%00000266"), - Attrs([Attr("address","0x6A0"), Attr("insn","cmp x1, x0")]), - Var("#2",Imm(64)), PLUS(Var("R1",Imm(64)),NOT(Var("R0",Imm(64))))), -Def(Tid(620, "%0000026c"), Attrs([Attr("address","0x6A0"), -Attr("insn","cmp x1, x0")]), Var("VF",Imm(1)), -NEQ(SIGNED(65,PLUS(Var("#2",Imm(64)),Int(1,64))),PLUS(PLUS(SIGNED(65,Var("R1",Imm(64))),SIGNED(65,Var("#1",Imm(64)))),Int(1,65)))), -Def(Tid(626, "%00000272"), Attrs([Attr("address","0x6A0"), -Attr("insn","cmp x1, x0")]), Var("CF",Imm(1)), -NEQ(UNSIGNED(65,PLUS(Var("#2",Imm(64)),Int(1,64))),PLUS(PLUS(UNSIGNED(65,Var("R1",Imm(64))),UNSIGNED(65,Var("#1",Imm(64)))),Int(1,65)))), -Def(Tid(630, "%00000276"), Attrs([Attr("address","0x6A0"), -Attr("insn","cmp x1, x0")]), Var("ZF",Imm(1)), -EQ(PLUS(Var("#2",Imm(64)),Int(1,64)),Int(0,64))), Def(Tid(634, "%0000027a"), - Attrs([Attr("address","0x6A0"), Attr("insn","cmp x1, x0")]), - Var("NF",Imm(1)), Extract(63,63,PLUS(Var("#2",Imm(64)),Int(1,64))))]), -Jmps([Goto(Tid(640, "%00000280"), Attrs([Attr("address","0x6A4"), -Attr("insn","b.eq #0x18")]), EQ(Var("ZF",Imm(1)),Int(1,1)), -Direct(Tid(638, "%0000027e"))), Goto(Tid(1_476, "%000005c4"), Attrs([]), - Int(1,1), Direct(Tid(891, "%0000037b")))])), Blk(Tid(891, "%0000037b"), - Attrs([Attr("address","0x6A8")]), Phis([]), Defs([Def(Tid(894, "%0000037e"), - Attrs([Attr("address","0x6A8"), Attr("insn","adrp x1, #65536")]), - Var("R1",Imm(64)), Int(65536,64)), Def(Tid(901, "%00000385"), - Attrs([Attr("address","0x6AC"), Attr("insn","ldr x1, [x1, #0xfd8]")]), - Var("R1",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R1",Imm(64)),Int(4056,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(906, "%0000038a"), Attrs([Attr("address","0x6B0"), -Attr("insn","cbz x1, #0xc")]), EQ(Var("R1",Imm(64)),Int(0,64)), -Direct(Tid(638, "%0000027e"))), Goto(Tid(1_477, "%000005c5"), Attrs([]), - Int(1,1), Direct(Tid(910, "%0000038e")))])), Blk(Tid(638, "%0000027e"), - Attrs([Attr("address","0x6BC")]), Phis([]), Defs([]), -Jmps([Call(Tid(646, "%00000286"), Attrs([Attr("address","0x6BC"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))])), -Blk(Tid(910, "%0000038e"), Attrs([Attr("address","0x6B4")]), Phis([]), -Defs([Def(Tid(914, "%00000392"), Attrs([Attr("address","0x6B4"), -Attr("insn","mov x16, x1")]), Var("R16",Imm(64)), Var("R1",Imm(64)))]), -Jmps([Call(Tid(919, "%00000397"), Attrs([Attr("address","0x6B8"), -Attr("insn","br x16")]), Int(1,1), (Indirect(Var("R16",Imm(64))),))]))])), -Sub(Tid(1_478, "@frame_dummy"), Attrs([Attr("c.proto","signed (*)(void)"), -Attr("address","0x750")]), "frame_dummy", Args([Arg(Tid(1_496, "%000005d8"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("frame_dummy_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(798, "@frame_dummy"), - Attrs([Attr("address","0x750")]), Phis([]), Defs([]), -Jmps([Call(Tid(800, "%00000320"), Attrs([Attr("address","0x750"), -Attr("insn","b #-0x90")]), Int(1,1), -(Direct(Tid(1_480, "@register_tm_clones")),))]))])), Sub(Tid(1_479, "@main"), - Attrs([Attr("c.proto","signed (*)(signed argc, const char** argv)"), -Attr("address","0x600"), Attr("stub","()")]), "main", - Args([Arg(Tid(1_497, "%000005d9"), Attrs([Attr("c.layout","[signed : 32]"), -Attr("c.data","Top:u32"), Attr("c.type","signed")]), - Var("main_argc",Imm(32)), LOW(32,Var("R0",Imm(64))), In()), -Arg(Tid(1_498, "%000005da"), Attrs([Attr("c.layout","**[char : 8]"), -Attr("c.data","Top:u8 ptr ptr"), Attr("c.type"," const char**")]), - Var("main_argv",Imm(64)), Var("R1",Imm(64)), Both()), -Arg(Tid(1_499, "%000005db"), Attrs([Attr("c.layout","[signed : 32]"), -Attr("c.data","Top:u32"), Attr("c.type","signed")]), - Var("main_result",Imm(32)), LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(424, "@main"), Attrs([Attr("address","0x600")]), Phis([]), -Defs([Def(Tid(427, "%000001ab"), Attrs([Attr("address","0x600"), -Attr("insn","adrp x1, #69632")]), Var("R1",Imm(64)), Int(69632,64)), -Def(Tid(433, "%000001b1"), Attrs([Attr("address","0x604"), -Attr("insn","add x2, x1, #0x18")]), Var("R2",Imm(64)), -PLUS(Var("R1",Imm(64)),Int(24,64))), Def(Tid(438, "%000001b6"), - Attrs([Attr("address","0x608"), Attr("insn","mov w0, #0x0")]), - Var("R0",Imm(64)), Int(0,64)), Def(Tid(445, "%000001bd"), - Attrs([Attr("address","0x60C"), Attr("insn","ldr x2, [x2, #0x8]")]), - Var("R2",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R2",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(453, "%000001c5"), Attrs([Attr("address","0x610"), -Attr("insn","str x2, [x1, #0x18]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R1",Imm(64)),Int(24,64)),Var("R2",Imm(64)),LittleEndian(),64))]), -Jmps([Call(Tid(458, "%000001ca"), Attrs([Attr("address","0x614"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))]))])), -Sub(Tid(1_480, "@register_tm_clones"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x6C0")]), - "register_tm_clones", Args([Arg(Tid(1_500, "%000005dc"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("register_tm_clones_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(648, "@register_tm_clones"), Attrs([Attr("address","0x6C0")]), - Phis([]), Defs([Def(Tid(651, "%0000028b"), Attrs([Attr("address","0x6C0"), -Attr("insn","adrp x0, #69632")]), Var("R0",Imm(64)), Int(69632,64)), -Def(Tid(657, "%00000291"), Attrs([Attr("address","0x6C4"), -Attr("insn","add x0, x0, #0x10")]), Var("R0",Imm(64)), -PLUS(Var("R0",Imm(64)),Int(16,64))), Def(Tid(662, "%00000296"), - Attrs([Attr("address","0x6C8"), Attr("insn","adrp x1, #69632")]), - Var("R1",Imm(64)), Int(69632,64)), Def(Tid(668, "%0000029c"), - Attrs([Attr("address","0x6CC"), Attr("insn","add x1, x1, #0x10")]), - Var("R1",Imm(64)), PLUS(Var("R1",Imm(64)),Int(16,64))), -Def(Tid(675, "%000002a3"), Attrs([Attr("address","0x6D0"), -Attr("insn","sub x1, x1, x0")]), Var("R1",Imm(64)), -PLUS(PLUS(Var("R1",Imm(64)),NOT(Var("R0",Imm(64)))),Int(1,64))), -Def(Tid(681, "%000002a9"), Attrs([Attr("address","0x6D4"), -Attr("insn","lsr x2, x1, #63")]), Var("R2",Imm(64)), -Concat(Int(0,63),Extract(63,63,Var("R1",Imm(64))))), -Def(Tid(688, "%000002b0"), Attrs([Attr("address","0x6D8"), -Attr("insn","add x1, x2, x1, asr #3")]), Var("R1",Imm(64)), -PLUS(Var("R2",Imm(64)),ARSHIFT(Var("R1",Imm(64)),Int(3,3)))), -Def(Tid(694, "%000002b6"), Attrs([Attr("address","0x6DC"), -Attr("insn","asr x1, x1, #1")]), Var("R1",Imm(64)), -SIGNED(64,Extract(63,1,Var("R1",Imm(64)))))]), -Jmps([Goto(Tid(700, "%000002bc"), Attrs([Attr("address","0x6E0"), -Attr("insn","cbz x1, #0x18")]), EQ(Var("R1",Imm(64)),Int(0,64)), -Direct(Tid(698, "%000002ba"))), Goto(Tid(1_481, "%000005c9"), Attrs([]), - Int(1,1), Direct(Tid(861, "%0000035d")))])), Blk(Tid(861, "%0000035d"), - Attrs([Attr("address","0x6E4")]), Phis([]), Defs([Def(Tid(864, "%00000360"), - Attrs([Attr("address","0x6E4"), Attr("insn","adrp x2, #65536")]), - Var("R2",Imm(64)), Int(65536,64)), Def(Tid(871, "%00000367"), - Attrs([Attr("address","0x6E8"), Attr("insn","ldr x2, [x2, #0xff8]")]), - Var("R2",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R2",Imm(64)),Int(4088,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(876, "%0000036c"), Attrs([Attr("address","0x6EC"), -Attr("insn","cbz x2, #0xc")]), EQ(Var("R2",Imm(64)),Int(0,64)), -Direct(Tid(698, "%000002ba"))), Goto(Tid(1_482, "%000005ca"), Attrs([]), - Int(1,1), Direct(Tid(880, "%00000370")))])), Blk(Tid(698, "%000002ba"), - Attrs([Attr("address","0x6F8")]), Phis([]), Defs([]), -Jmps([Call(Tid(706, "%000002c2"), Attrs([Attr("address","0x6F8"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))])), -Blk(Tid(880, "%00000370"), Attrs([Attr("address","0x6F0")]), Phis([]), -Defs([Def(Tid(884, "%00000374"), Attrs([Attr("address","0x6F0"), -Attr("insn","mov x16, x2")]), Var("R16",Imm(64)), Var("R2",Imm(64)))]), -Jmps([Call(Tid(889, "%00000379"), Attrs([Attr("address","0x6F4"), -Attr("insn","br x16")]), Int(1,1), -(Indirect(Var("R16",Imm(64))),))]))]))]))) \ No newline at end of file diff --git a/src/test/incorrect/basicassign2/gcc_O2/basicassign2.bir b/src/test/incorrect/basicassign2/gcc_O2/basicassign2.bir deleted file mode 100644 index d28bca058..000000000 --- a/src/test/incorrect/basicassign2/gcc_O2/basicassign2.bir +++ /dev/null @@ -1,228 +0,0 @@ -000005cb: program -000005b5: sub __cxa_finalize(__cxa_finalize_result) -000005cc: __cxa_finalize_result :: out u32 = low:32[R0] - -00000359: -00000451: R16 := 0x10000 -00000458: R17 := mem[R16 + 0xFB8, el]:u64 -0000045e: R16 := R16 + 0xFB8 -00000463: call R17 with noreturn - -000005b6: sub __do_global_dtors_aux(__do_global_dtors_aux_result) -000005cd: __do_global_dtors_aux_result :: out u32 = low:32[R0] - -000002c6: -000002ca: #3 := R31 - 0x20 -000002d0: mem := mem with [#3, el]:u64 <- R29 -000002d6: mem := mem with [#3 + 8, el]:u64 <- R30 -000002da: R31 := #3 -000002e0: R29 := R31 -000002e8: mem := mem with [R31 + 0x10, el]:u64 <- R19 -000002ed: R19 := 0x11000 -000002f4: R0 := pad:64[mem[R19 + 0x10]] -000002fb: when 31:0[R0] <> 0 goto %000002f9 -000005b7: goto %00000322 - -00000322: -00000325: R0 := 0x10000 -0000032c: R0 := mem[R0 + 0xFE0, el]:u64 -00000332: when R0 = 0 goto %00000330 -000005b8: goto %00000349 - -00000349: -0000034c: R0 := 0x11000 -00000353: R0 := mem[R0 + 8, el]:u64 -00000358: R30 := 0x730 -0000035b: call @__cxa_finalize with return %00000330 - -00000330: -00000338: R30 := 0x734 -0000033a: call @deregister_tm_clones with return %0000033c - -0000033c: -0000033f: R0 := 1 -00000347: mem := mem with [R19 + 0x10] <- 7:0[R0] -000005b9: goto %000002f9 - -000002f9: -00000303: R19 := mem[R31 + 0x10, el]:u64 -0000030a: R29 := mem[R31, el]:u64 -0000030f: R30 := mem[R31 + 8, el]:u64 -00000313: R31 := R31 + 0x20 -00000318: call R30 with noreturn - -000005ba: sub __libc_start_main(__libc_start_main_main, __libc_start_main_arg2, __libc_start_main_arg3, __libc_start_main_auxv, __libc_start_main_result) -000005ce: __libc_start_main_main :: in u64 = R0 -000005cf: __libc_start_main_arg2 :: in u32 = low:32[R1] -000005d0: __libc_start_main_arg3 :: in out u64 = R2 -000005d1: __libc_start_main_auxv :: in out u64 = R3 -000005d2: __libc_start_main_result :: out u32 = low:32[R0] - -0000021f: -0000043b: R16 := 0x10000 -00000442: R17 := mem[R16 + 0xFB0, el]:u64 -00000448: R16 := R16 + 0xFB0 -0000044d: call R17 with noreturn - -000005bb: sub _fini(_fini_result) -000005d3: _fini_result :: out u32 = low:32[R0] - -0000001f: -00000025: #0 := R31 - 0x10 -0000002b: mem := mem with [#0, el]:u64 <- R29 -00000031: mem := mem with [#0 + 8, el]:u64 <- R30 -00000035: R31 := #0 -0000003b: R29 := R31 -00000042: R29 := mem[R31, el]:u64 -00000047: R30 := mem[R31 + 8, el]:u64 -0000004b: R31 := R31 + 0x10 -00000050: call R30 with noreturn - -000005bc: sub _init(_init_result) -000005d4: _init_result :: out u32 = low:32[R0] - -00000507: -0000050d: #5 := R31 - 0x10 -00000513: mem := mem with [#5, el]:u64 <- R29 -00000519: mem := mem with [#5 + 8, el]:u64 <- R30 -0000051d: R31 := #5 -00000523: R29 := R31 -00000528: R30 := 0x590 -0000052a: call @call_weak_fn with return %0000052c - -0000052c: -00000531: R29 := mem[R31, el]:u64 -00000536: R30 := mem[R31 + 8, el]:u64 -0000053a: R31 := R31 + 0x10 -0000053f: call R30 with noreturn - -000005bd: sub _start(_start_result) -000005d5: _start_result :: out u32 = low:32[R0] - -000001e0: -000001e5: R29 := 0 -000001ea: R30 := 0 -000001f0: R5 := R0 -000001f7: R1 := mem[R31, el]:u64 -000001fd: R2 := R31 + 8 -00000203: R6 := R31 -00000208: R0 := 0x10000 -0000020f: R0 := mem[R0 + 0xFF0, el]:u64 -00000214: R3 := 0 -00000219: R4 := 0 -0000021e: R30 := 0x670 -00000221: call @__libc_start_main with return %00000223 - -00000223: -00000226: R30 := 0x674 -00000229: call @abort with return %000005be - -000005be: -000005bf: call @call_weak_fn with noreturn - -000005c0: sub abort() - - -00000227: -0000047d: R16 := 0x10000 -00000484: R17 := mem[R16 + 0xFC8, el]:u64 -0000048a: R16 := R16 + 0xFC8 -0000048f: call R17 with noreturn - -000005c1: sub call_weak_fn(call_weak_fn_result) -000005d6: call_weak_fn_result :: out u32 = low:32[R0] - -0000022b: -0000022e: R0 := 0x10000 -00000235: R0 := mem[R0 + 0xFE8, el]:u64 -0000023b: when R0 = 0 goto %00000239 -000005c2: goto %00000399 - -00000239: -00000241: call R30 with noreturn - -00000399: -0000039c: goto @__gmon_start__ - -0000039a: -00000467: R16 := 0x10000 -0000046e: R17 := mem[R16 + 0xFC0, el]:u64 -00000474: R16 := R16 + 0xFC0 -00000479: call R17 with noreturn - -000005c3: sub deregister_tm_clones(deregister_tm_clones_result) -000005d7: deregister_tm_clones_result :: out u32 = low:32[R0] - -00000247: -0000024a: R0 := 0x11000 -00000250: R0 := R0 + 0x10 -00000255: R1 := 0x11000 -0000025b: R1 := R1 + 0x10 -00000261: #1 := ~R0 -00000266: #2 := R1 + ~R0 -0000026c: VF := extend:65[#2 + 1] <> extend:65[R1] + extend:65[#1] + 1 -00000272: CF := pad:65[#2 + 1] <> pad:65[R1] + pad:65[#1] + 1 -00000276: ZF := #2 + 1 = 0 -0000027a: NF := 63:63[#2 + 1] -00000280: when ZF goto %0000027e -000005c4: goto %0000037b - -0000037b: -0000037e: R1 := 0x10000 -00000385: R1 := mem[R1 + 0xFD8, el]:u64 -0000038a: when R1 = 0 goto %0000027e -000005c5: goto %0000038e - -0000027e: -00000286: call R30 with noreturn - -0000038e: -00000392: R16 := R1 -00000397: call R16 with noreturn - -000005c6: sub frame_dummy(frame_dummy_result) -000005d8: frame_dummy_result :: out u32 = low:32[R0] - -0000031e: -00000320: call @register_tm_clones with noreturn - -000005c7: sub main(main_argc, main_argv, main_result) -000005d9: main_argc :: in u32 = low:32[R0] -000005da: main_argv :: in out u64 = R1 -000005db: main_result :: out u32 = low:32[R0] - -000001a8: -000001ab: R1 := 0x11000 -000001b1: R2 := R1 + 0x18 -000001b6: R0 := 0 -000001bd: R2 := mem[R2 + 8, el]:u64 -000001c5: mem := mem with [R1 + 0x18, el]:u64 <- R2 -000001ca: call R30 with noreturn - -000005c8: sub register_tm_clones(register_tm_clones_result) -000005dc: register_tm_clones_result :: out u32 = low:32[R0] - -00000288: -0000028b: R0 := 0x11000 -00000291: R0 := R0 + 0x10 -00000296: R1 := 0x11000 -0000029c: R1 := R1 + 0x10 -000002a3: R1 := R1 + ~R0 + 1 -000002a9: R2 := 0.63:63[R1] -000002b0: R1 := R2 + (R1 ~>> 3) -000002b6: R1 := extend:64[63:1[R1]] -000002bc: when R1 = 0 goto %000002ba -000005c9: goto %0000035d - -0000035d: -00000360: R2 := 0x10000 -00000367: R2 := mem[R2 + 0xFF8, el]:u64 -0000036c: when R2 = 0 goto %000002ba -000005ca: goto %00000370 - -000002ba: -000002c2: call R30 with noreturn - -00000370: -00000374: R16 := R2 -00000379: call R16 with noreturn diff --git a/src/test/incorrect/basicassign2/gcc_O2/basicassign2.expected b/src/test/incorrect/basicassign2/gcc_O2/basicassign2.expected index 5c021f69f..f0c6f7fd0 100644 --- a/src/test/incorrect/basicassign2/gcc_O2/basicassign2.expected +++ b/src/test/incorrect/basicassign2/gcc_O2/basicassign2.expected @@ -7,9 +7,9 @@ var {:extern} R1: bv64; var {:extern} R2: bv64; var {:extern} mem: [bv64]bv8; const {:extern} $secret_addr: bv64; -axiom ($secret_addr == 69664bv64); +axiom ($secret_addr == 4325400bv64); const {:extern} $z_addr: bv64; -axiom ($z_addr == 69656bv64); +axiom ($z_addr == 4325408bv64); function {:extern} L(mem$in: [bv64]bv8, index: bv64) returns (bool) { (if (index == $z_addr) then true else (if (index == $secret_addr) then false else false)) } @@ -39,11 +39,7 @@ procedure {:extern} rely(); modifies Gamma_mem, mem; ensures (Gamma_mem == old(Gamma_mem)); ensures (mem == old(mem)); - free ensures (memory_load32_le(mem, 1896bv64) == 131073bv32); - free ensures (memory_load64_le(mem, 69016bv64) == 1872bv64); - free ensures (memory_load64_le(mem, 69024bv64) == 1792bv64); - free ensures (memory_load64_le(mem, 69616bv64) == 1536bv64); - free ensures (memory_load64_le(mem, 69640bv64) == 69640bv64); + free ensures (memory_load32_le(mem, 4196312bv64) == 131073bv32); procedure {:extern} rely_transitive(); modifies Gamma_mem, mem; @@ -61,40 +57,42 @@ procedure {:extern} rely_reflexive(); procedure {:extern} guarantee_reflexive(); modifies Gamma_mem, mem; -procedure main_1536(); +procedure main(); modifies Gamma_R0, Gamma_R1, Gamma_R2, Gamma_mem, R0, R1, R2, mem; - free requires (memory_load64_le(mem, 69632bv64) == 0bv64); - free requires (memory_load64_le(mem, 69640bv64) == 69640bv64); - free requires (memory_load32_le(mem, 1896bv64) == 131073bv32); - free requires (memory_load64_le(mem, 69016bv64) == 1872bv64); - free requires (memory_load64_le(mem, 69024bv64) == 1792bv64); - free requires (memory_load64_le(mem, 69616bv64) == 1536bv64); - free requires (memory_load64_le(mem, 69640bv64) == 69640bv64); - free ensures (memory_load32_le(mem, 1896bv64) == 131073bv32); - free ensures (memory_load64_le(mem, 69016bv64) == 1872bv64); - free ensures (memory_load64_le(mem, 69024bv64) == 1792bv64); - free ensures (memory_load64_le(mem, 69616bv64) == 1536bv64); - free ensures (memory_load64_le(mem, 69640bv64) == 69640bv64); + free requires (memory_load64_le(mem, 4325376bv64) == 0bv64); + free requires (memory_load64_le(mem, 4325384bv64) == 0bv64); + free requires (memory_load32_le(mem, 4196312bv64) == 131073bv32); + free ensures (memory_load32_le(mem, 4196312bv64) == 131073bv32); -implementation main_1536() +implementation main() { - var Gamma_load18: bool; - var load18: bv64; + var $load$14: bv64; + var $load$15: bv64; + var $load$16: bv64; + var Gamma_$load$14: bool; + var Gamma_$load$15: bool; + var Gamma_$load$16: bool; lmain: assume {:captureState "lmain"} true; - R1, Gamma_R1 := 69632bv64, true; - R2, Gamma_R2 := bvadd64(R1, 24bv64), Gamma_R1; + R1, Gamma_R1 := 4321280bv64, true; + call rely(); + $load$14, Gamma_$load$14 := memory_load64_le(mem, bvadd64(R1, 4080bv64)), (gamma_load64(Gamma_mem, bvadd64(R1, 4080bv64)) || L(mem, bvadd64(R1, 4080bv64))); + R1, Gamma_R1 := $load$14, Gamma_$load$14; R0, Gamma_R0 := 0bv64, true; + R2, Gamma_R2 := 4321280bv64, true; + call rely(); + $load$15, Gamma_$load$15 := memory_load64_le(mem, bvadd64(R2, 4064bv64)), (gamma_load64(Gamma_mem, bvadd64(R2, 4064bv64)) || L(mem, bvadd64(R2, 4064bv64))); + R2, Gamma_R2 := $load$15, Gamma_$load$15; call rely(); - load18, Gamma_load18 := memory_load64_le(mem, bvadd64(R2, 8bv64)), (gamma_load64(Gamma_mem, bvadd64(R2, 8bv64)) || L(mem, bvadd64(R2, 8bv64))); - R2, Gamma_R2 := load18, Gamma_load18; + $load$16, Gamma_$load$16 := memory_load64_le(mem, R1), (gamma_load64(Gamma_mem, R1) || L(mem, R1)); + R1, Gamma_R1 := $load$16, Gamma_$load$16; call rely(); - assert (L(mem, bvadd64(R1, 24bv64)) ==> Gamma_R2); - mem, Gamma_mem := memory_store64_le(mem, bvadd64(R1, 24bv64), R2), gamma_store64(Gamma_mem, bvadd64(R1, 24bv64), Gamma_R2); - assume {:captureState "%000001c5"} true; - goto main_1536_basil_return; - main_1536_basil_return: - assume {:captureState "main_1536_basil_return"} true; + assert (L(mem, R2) ==> Gamma_R1); + mem, Gamma_mem := memory_store64_le(mem, R2, R1), gamma_store64(Gamma_mem, R2, Gamma_R1); + assume {:captureState "%00000260"} true; + goto main_basil_return; + main_basil_return: + assume {:captureState "main_basil_return"} true; return; } diff --git a/src/test/incorrect/basicassign2/gcc_O2/basicassign2.gts b/src/test/incorrect/basicassign2/gcc_O2/basicassign2.gts deleted file mode 100644 index 5989d3b78..000000000 Binary files a/src/test/incorrect/basicassign2/gcc_O2/basicassign2.gts and /dev/null differ diff --git a/src/test/incorrect/basicassign2/gcc_O2/basicassign2.md5sum b/src/test/incorrect/basicassign2/gcc_O2/basicassign2.md5sum new file mode 100644 index 000000000..727f9071e --- /dev/null +++ b/src/test/incorrect/basicassign2/gcc_O2/basicassign2.md5sum @@ -0,0 +1,5 @@ +2d14bf1e65d811d0628da6248153f22f incorrect/basicassign2/gcc_O2/a.out +80f5bb76f954960d5b205c3613ea57f6 incorrect/basicassign2/gcc_O2/basicassign2.adt +6cc4d2cdeeadfefbbad51ddabae9b6d9 incorrect/basicassign2/gcc_O2/basicassign2.bir +ffeeed473b25d66b8f37923c6e1cb5d0 incorrect/basicassign2/gcc_O2/basicassign2.relf +6067dd983257654e11c06998938187b4 incorrect/basicassign2/gcc_O2/basicassign2.gts diff --git a/src/test/incorrect/basicassign2/gcc_O2/basicassign2.relf b/src/test/incorrect/basicassign2/gcc_O2/basicassign2.relf deleted file mode 100644 index 4a0c380b1..000000000 --- a/src/test/incorrect/basicassign2/gcc_O2/basicassign2.relf +++ /dev/null @@ -1,122 +0,0 @@ - -Relocation section '.rela.dyn' at offset 0x460 contains 8 entries: - Offset Info Type Symbol's Value Symbol's Name + Addend -0000000000010d98 0000000000000403 R_AARCH64_RELATIVE 750 -0000000000010da0 0000000000000403 R_AARCH64_RELATIVE 700 -0000000000010ff0 0000000000000403 R_AARCH64_RELATIVE 600 -0000000000011008 0000000000000403 R_AARCH64_RELATIVE 11008 -0000000000010fd8 0000000400000401 R_AARCH64_GLOB_DAT 0000000000000000 _ITM_deregisterTMCloneTable + 0 -0000000000010fe0 0000000500000401 R_AARCH64_GLOB_DAT 0000000000000000 __cxa_finalize@GLIBC_2.17 + 0 -0000000000010fe8 0000000600000401 R_AARCH64_GLOB_DAT 0000000000000000 __gmon_start__ + 0 -0000000000010ff8 0000000800000401 R_AARCH64_GLOB_DAT 0000000000000000 _ITM_registerTMCloneTable + 0 - -Relocation section '.rela.plt' at offset 0x520 contains 4 entries: - Offset Info Type Symbol's Value Symbol's Name + Addend -0000000000010fb0 0000000300000402 R_AARCH64_JUMP_SLOT 0000000000000000 __libc_start_main@GLIBC_2.34 + 0 -0000000000010fb8 0000000500000402 R_AARCH64_JUMP_SLOT 0000000000000000 __cxa_finalize@GLIBC_2.17 + 0 -0000000000010fc0 0000000600000402 R_AARCH64_JUMP_SLOT 0000000000000000 __gmon_start__ + 0 -0000000000010fc8 0000000700000402 R_AARCH64_JUMP_SLOT 0000000000000000 abort@GLIBC_2.17 + 0 - -Symbol table '.dynsym' contains 9 entries: - Num: Value Size Type Bind Vis Ndx Name - 0: 0000000000000000 0 NOTYPE LOCAL DEFAULT UND - 1: 0000000000000580 0 SECTION LOCAL DEFAULT 11 .init - 2: 0000000000011000 0 SECTION LOCAL DEFAULT 22 .data - 3: 0000000000000000 0 FUNC GLOBAL DEFAULT UND __libc_start_main@GLIBC_2.34 (2) - 4: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_deregisterTMCloneTable - 5: 0000000000000000 0 FUNC WEAK DEFAULT UND __cxa_finalize@GLIBC_2.17 (3) - 6: 0000000000000000 0 NOTYPE WEAK DEFAULT UND __gmon_start__ - 7: 0000000000000000 0 FUNC GLOBAL DEFAULT UND abort@GLIBC_2.17 (3) - 8: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_registerTMCloneTable - -Symbol table '.symtab' contains 89 entries: - Num: Value Size Type Bind Vis Ndx Name - 0: 0000000000000000 0 NOTYPE LOCAL DEFAULT UND - 1: 0000000000000238 0 SECTION LOCAL DEFAULT 1 .interp - 2: 0000000000000254 0 SECTION LOCAL DEFAULT 2 .note.gnu.build-id - 3: 0000000000000278 0 SECTION LOCAL DEFAULT 3 .note.ABI-tag - 4: 0000000000000298 0 SECTION LOCAL DEFAULT 4 .gnu.hash - 5: 00000000000002b8 0 SECTION LOCAL DEFAULT 5 .dynsym - 6: 0000000000000390 0 SECTION LOCAL DEFAULT 6 .dynstr - 7: 000000000000041e 0 SECTION LOCAL DEFAULT 7 .gnu.version - 8: 0000000000000430 0 SECTION LOCAL DEFAULT 8 .gnu.version_r - 9: 0000000000000460 0 SECTION LOCAL DEFAULT 9 .rela.dyn - 10: 0000000000000520 0 SECTION LOCAL DEFAULT 10 .rela.plt - 11: 0000000000000580 0 SECTION LOCAL DEFAULT 11 .init - 12: 00000000000005a0 0 SECTION LOCAL DEFAULT 12 .plt - 13: 0000000000000600 0 SECTION LOCAL DEFAULT 13 .text - 14: 0000000000000754 0 SECTION LOCAL DEFAULT 14 .fini - 15: 0000000000000768 0 SECTION LOCAL DEFAULT 15 .rodata - 16: 000000000000076c 0 SECTION LOCAL DEFAULT 16 .eh_frame_hdr - 17: 00000000000007a8 0 SECTION LOCAL DEFAULT 17 .eh_frame - 18: 0000000000010d98 0 SECTION LOCAL DEFAULT 18 .init_array - 19: 0000000000010da0 0 SECTION LOCAL DEFAULT 19 .fini_array - 20: 0000000000010da8 0 SECTION LOCAL DEFAULT 20 .dynamic - 21: 0000000000010f98 0 SECTION LOCAL DEFAULT 21 .got - 22: 0000000000011000 0 SECTION LOCAL DEFAULT 22 .data - 23: 0000000000011010 0 SECTION LOCAL DEFAULT 23 .bss - 24: 0000000000000000 0 SECTION LOCAL DEFAULT 24 .comment - 25: 0000000000000000 0 FILE LOCAL DEFAULT ABS Scrt1.o - 26: 0000000000000278 0 NOTYPE LOCAL DEFAULT 3 $d - 27: 0000000000000278 32 OBJECT LOCAL DEFAULT 3 __abi_tag - 28: 0000000000000640 0 NOTYPE LOCAL DEFAULT 13 $x - 29: 00000000000007bc 0 NOTYPE LOCAL DEFAULT 17 $d - 30: 0000000000000768 0 NOTYPE LOCAL DEFAULT 15 $d - 31: 0000000000000000 0 FILE LOCAL DEFAULT ABS crti.o - 32: 0000000000000674 0 NOTYPE LOCAL DEFAULT 13 $x - 33: 0000000000000674 20 FUNC LOCAL DEFAULT 13 call_weak_fn - 34: 0000000000000580 0 NOTYPE LOCAL DEFAULT 11 $x - 35: 0000000000000754 0 NOTYPE LOCAL DEFAULT 14 $x - 36: 0000000000000000 0 FILE LOCAL DEFAULT ABS crtn.o - 37: 0000000000000590 0 NOTYPE LOCAL DEFAULT 11 $x - 38: 0000000000000760 0 NOTYPE LOCAL DEFAULT 14 $x - 39: 0000000000000000 0 FILE LOCAL DEFAULT ABS basicassign2.c - 40: 0000000000000600 0 NOTYPE LOCAL DEFAULT 13 $x - 41: 0000000000011018 0 NOTYPE LOCAL DEFAULT 23 $d - 42: 0000000000000830 0 NOTYPE LOCAL DEFAULT 17 $d - 43: 0000000000000000 0 FILE LOCAL DEFAULT ABS crtstuff.c - 44: 0000000000000690 0 NOTYPE LOCAL DEFAULT 13 $x - 45: 0000000000000690 0 FUNC LOCAL DEFAULT 13 deregister_tm_clones - 46: 00000000000006c0 0 FUNC LOCAL DEFAULT 13 register_tm_clones - 47: 0000000000011008 0 NOTYPE LOCAL DEFAULT 22 $d - 48: 0000000000000700 0 FUNC LOCAL DEFAULT 13 __do_global_dtors_aux - 49: 0000000000011010 1 OBJECT LOCAL DEFAULT 23 completed.0 - 50: 0000000000010da0 0 NOTYPE LOCAL DEFAULT 19 $d - 51: 0000000000010da0 0 OBJECT LOCAL DEFAULT 19 __do_global_dtors_aux_fini_array_entry - 52: 0000000000000750 0 FUNC LOCAL DEFAULT 13 frame_dummy - 53: 0000000000010d98 0 NOTYPE LOCAL DEFAULT 18 $d - 54: 0000000000010d98 0 OBJECT LOCAL DEFAULT 18 __frame_dummy_init_array_entry - 55: 00000000000007d0 0 NOTYPE LOCAL DEFAULT 17 $d - 56: 0000000000011010 0 NOTYPE LOCAL DEFAULT 23 $d - 57: 0000000000000000 0 FILE LOCAL DEFAULT ABS crtstuff.c - 58: 0000000000000844 0 NOTYPE LOCAL DEFAULT 17 $d - 59: 0000000000000844 0 OBJECT LOCAL DEFAULT 17 __FRAME_END__ - 60: 0000000000000000 0 FILE LOCAL DEFAULT ABS - 61: 0000000000010da8 0 OBJECT LOCAL DEFAULT ABS _DYNAMIC - 62: 000000000000076c 0 NOTYPE LOCAL DEFAULT 16 __GNU_EH_FRAME_HDR - 63: 0000000000010fd0 0 OBJECT LOCAL DEFAULT ABS _GLOBAL_OFFSET_TABLE_ - 64: 00000000000005a0 0 NOTYPE LOCAL DEFAULT 12 $x - 65: 0000000000000000 0 FUNC GLOBAL DEFAULT UND __libc_start_main@GLIBC_2.34 - 66: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_deregisterTMCloneTable - 67: 0000000000011000 0 NOTYPE WEAK DEFAULT 22 data_start - 68: 0000000000011010 0 NOTYPE GLOBAL DEFAULT 23 __bss_start__ - 69: 0000000000000000 0 FUNC WEAK DEFAULT UND __cxa_finalize@GLIBC_2.17 - 70: 0000000000011028 0 NOTYPE GLOBAL DEFAULT 23 _bss_end__ - 71: 0000000000011010 0 NOTYPE GLOBAL DEFAULT 22 _edata - 72: 0000000000011018 8 OBJECT GLOBAL DEFAULT 23 z - 73: 0000000000000754 0 FUNC GLOBAL HIDDEN 14 _fini - 74: 0000000000011028 0 NOTYPE GLOBAL DEFAULT 23 __bss_end__ - 75: 0000000000011000 0 NOTYPE GLOBAL DEFAULT 22 __data_start - 76: 0000000000000000 0 NOTYPE WEAK DEFAULT UND __gmon_start__ - 77: 0000000000011008 0 OBJECT GLOBAL HIDDEN 22 __dso_handle - 78: 0000000000000000 0 FUNC GLOBAL DEFAULT UND abort@GLIBC_2.17 - 79: 0000000000000768 4 OBJECT GLOBAL DEFAULT 15 _IO_stdin_used - 80: 0000000000011020 8 OBJECT GLOBAL DEFAULT 23 secret - 81: 0000000000011028 0 NOTYPE GLOBAL DEFAULT 23 _end - 82: 0000000000000640 52 FUNC GLOBAL DEFAULT 13 _start - 83: 0000000000011028 0 NOTYPE GLOBAL DEFAULT 23 __end__ - 84: 0000000000011010 0 NOTYPE GLOBAL DEFAULT 23 __bss_start - 85: 0000000000000600 24 FUNC GLOBAL DEFAULT 13 main - 86: 0000000000011010 0 OBJECT GLOBAL HIDDEN 22 __TMC_END__ - 87: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_registerTMCloneTable - 88: 0000000000000580 0 FUNC GLOBAL HIDDEN 11 _init diff --git a/src/test/incorrect/basicassign2/gcc_O2/basicassign2_gtirb.expected b/src/test/incorrect/basicassign2/gcc_O2/basicassign2_gtirb.expected index beb5c1c1f..bbc6590f2 100644 --- a/src/test/incorrect/basicassign2/gcc_O2/basicassign2_gtirb.expected +++ b/src/test/incorrect/basicassign2/gcc_O2/basicassign2_gtirb.expected @@ -7,9 +7,9 @@ var {:extern} R1: bv64; var {:extern} R2: bv64; var {:extern} mem: [bv64]bv8; const {:extern} $secret_addr: bv64; -axiom ($secret_addr == 69664bv64); +axiom ($secret_addr == 4325400bv64); const {:extern} $z_addr: bv64; -axiom ($z_addr == 69656bv64); +axiom ($z_addr == 4325408bv64); function {:extern} L(mem$in: [bv64]bv8, index: bv64) returns (bool) { (if (index == $z_addr) then true else (if (index == $secret_addr) then false else false)) } @@ -39,11 +39,7 @@ procedure {:extern} rely(); modifies Gamma_mem, mem; ensures (Gamma_mem == old(Gamma_mem)); ensures (mem == old(mem)); - free ensures (memory_load32_le(mem, 1896bv64) == 131073bv32); - free ensures (memory_load64_le(mem, 69016bv64) == 1872bv64); - free ensures (memory_load64_le(mem, 69024bv64) == 1792bv64); - free ensures (memory_load64_le(mem, 69616bv64) == 1536bv64); - free ensures (memory_load64_le(mem, 69640bv64) == 69640bv64); + free ensures (memory_load32_le(mem, 4196312bv64) == 131073bv32); procedure {:extern} rely_transitive(); modifies Gamma_mem, mem; @@ -61,40 +57,42 @@ procedure {:extern} rely_reflexive(); procedure {:extern} guarantee_reflexive(); modifies Gamma_mem, mem; -procedure main_1536(); +procedure main(); modifies Gamma_R0, Gamma_R1, Gamma_R2, Gamma_mem, R0, R1, R2, mem; - free requires (memory_load64_le(mem, 69632bv64) == 0bv64); - free requires (memory_load64_le(mem, 69640bv64) == 69640bv64); - free requires (memory_load32_le(mem, 1896bv64) == 131073bv32); - free requires (memory_load64_le(mem, 69016bv64) == 1872bv64); - free requires (memory_load64_le(mem, 69024bv64) == 1792bv64); - free requires (memory_load64_le(mem, 69616bv64) == 1536bv64); - free requires (memory_load64_le(mem, 69640bv64) == 69640bv64); - free ensures (memory_load32_le(mem, 1896bv64) == 131073bv32); - free ensures (memory_load64_le(mem, 69016bv64) == 1872bv64); - free ensures (memory_load64_le(mem, 69024bv64) == 1792bv64); - free ensures (memory_load64_le(mem, 69616bv64) == 1536bv64); - free ensures (memory_load64_le(mem, 69640bv64) == 69640bv64); + free requires (memory_load64_le(mem, 4325376bv64) == 0bv64); + free requires (memory_load64_le(mem, 4325384bv64) == 0bv64); + free requires (memory_load32_le(mem, 4196312bv64) == 131073bv32); + free ensures (memory_load32_le(mem, 4196312bv64) == 131073bv32); -implementation main_1536() +implementation main() { - var Gamma_load14: bool; - var load14: bv64; - main_1536__0__ebQhd7tnS62etDAtES6e5g: - assume {:captureState "main_1536__0__ebQhd7tnS62etDAtES6e5g"} true; - R1, Gamma_R1 := 69632bv64, true; - R2, Gamma_R2 := bvadd64(R1, 24bv64), Gamma_R1; + var $load16: bv64; + var $load17: bv64; + var $load18: bv64; + var Gamma_$load16: bool; + var Gamma_$load17: bool; + var Gamma_$load18: bool; + $main$__0__$i2bc6yURTw~Pq2nxe63pQA: + assume {:captureState "$main$__0__$i2bc6yURTw~Pq2nxe63pQA"} true; + R1, Gamma_R1 := 4321280bv64, true; + call rely(); + $load16, Gamma_$load16 := memory_load64_le(mem, bvadd64(R1, 4080bv64)), (gamma_load64(Gamma_mem, bvadd64(R1, 4080bv64)) || L(mem, bvadd64(R1, 4080bv64))); + R1, Gamma_R1 := $load16, Gamma_$load16; R0, Gamma_R0 := 0bv64, true; + R2, Gamma_R2 := 4321280bv64, true; + call rely(); + $load17, Gamma_$load17 := memory_load64_le(mem, bvadd64(R2, 4064bv64)), (gamma_load64(Gamma_mem, bvadd64(R2, 4064bv64)) || L(mem, bvadd64(R2, 4064bv64))); + R2, Gamma_R2 := $load17, Gamma_$load17; call rely(); - load14, Gamma_load14 := memory_load64_le(mem, bvadd64(R2, 8bv64)), (gamma_load64(Gamma_mem, bvadd64(R2, 8bv64)) || L(mem, bvadd64(R2, 8bv64))); - R2, Gamma_R2 := load14, Gamma_load14; + $load18, Gamma_$load18 := memory_load64_le(mem, R1), (gamma_load64(Gamma_mem, R1) || L(mem, R1)); + R1, Gamma_R1 := $load18, Gamma_$load18; call rely(); - assert (L(mem, bvadd64(R1, 24bv64)) ==> Gamma_R2); - mem, Gamma_mem := memory_store64_le(mem, bvadd64(R1, 24bv64), R2), gamma_store64(Gamma_mem, bvadd64(R1, 24bv64), Gamma_R2); - assume {:captureState "1552_0"} true; - goto main_1536_basil_return; - main_1536_basil_return: - assume {:captureState "main_1536_basil_return"} true; + assert (L(mem, R2) ==> Gamma_R1); + mem, Gamma_mem := memory_store64_le(mem, R2, R1), gamma_store64(Gamma_mem, R2, Gamma_R1); + assume {:captureState "4195992$0"} true; + goto main_basil_return; + main_basil_return: + assume {:captureState "main_basil_return"} true; return; } diff --git a/src/test/incorrect/basicassign2/gcc_pic/basicassign2.adt b/src/test/incorrect/basicassign2/gcc_pic/basicassign2.adt deleted file mode 100644 index 4cfbfab54..000000000 --- a/src/test/incorrect/basicassign2/gcc_pic/basicassign2.adt +++ /dev/null @@ -1,538 +0,0 @@ -Project(Attrs([Attr("filename","\"gcc_pic/basicassign2.out\""), -Attr("image-specification","(declare abi (name str))\n(declare arch (name str))\n(declare base-address (addr int))\n(declare bias (off int))\n(declare bits (size int))\n(declare code-region (addr int) (size int) (off int))\n(declare code-start (addr int))\n(declare entry-point (addr int))\n(declare external-reference (addr int) (name str))\n(declare format (name str))\n(declare is-executable (flag bool))\n(declare is-little-endian (flag bool))\n(declare llvm:base-address (addr int))\n(declare llvm:code-entry (name str) (off int) (size int))\n(declare llvm:coff-import-library (name str))\n(declare llvm:coff-virtual-section-header (name str) (addr int) (size int))\n(declare llvm:elf-program-header (name str) (off int) (size int))\n(declare llvm:elf-program-header-flags (name str) (ld bool) (r bool) \n (w bool) (x bool))\n(declare llvm:elf-virtual-program-header (name str) (addr int) (size int))\n(declare llvm:entry-point (addr int))\n(declare llvm:macho-symbol (name str) (value int))\n(declare llvm:name-reference (at int) (name str))\n(declare llvm:relocation (at int) (addr int))\n(declare llvm:section-entry (name str) (addr int) (size int) (off int))\n(declare llvm:section-flags (name str) (r bool) (w bool) (x bool))\n(declare llvm:segment-command (name str) (off int) (size int))\n(declare llvm:segment-command-flags (name str) (r bool) (w bool) (x bool))\n(declare llvm:symbol-entry (name str) (addr int) (size int) (off int)\n (value int))\n(declare llvm:virtual-segment-command (name str) (addr int) (size int))\n(declare mapped (addr int) (size int) (off int))\n(declare named-region (addr int) (size int) (name str))\n(declare named-symbol (addr int) (name str))\n(declare require (name str))\n(declare section (addr int) (size int))\n(declare segment (addr int) (size int) (r bool) (w bool) (x bool))\n(declare subarch (name str))\n(declare symbol-chunk (addr int) (size int) (root int))\n(declare symbol-value (addr int) (value int))\n(declare system (name str))\n(declare vendor (name str))\n\n(abi unknown)\n(arch aarch64)\n(base-address 0)\n(bias 0)\n(bits 64)\n(code-region 1960 20 1960)\n(code-region 1600 360 1600)\n(code-region 1488 96 1488)\n(code-region 1456 24 1456)\n(code-start 1652)\n(code-start 1600)\n(code-start 1876)\n(entry-point 1600)\n(external-reference 69576 _ITM_deregisterTMCloneTable)\n(external-reference 69584 __cxa_finalize)\n(external-reference 69600 __gmon_start__)\n(external-reference 69624 _ITM_registerTMCloneTable)\n(external-reference 69536 __libc_start_main)\n(external-reference 69544 __cxa_finalize)\n(external-reference 69552 __gmon_start__)\n(external-reference 69560 abort)\n(format elf)\n(is-executable true)\n(is-little-endian true)\n(llvm:base-address 0)\n(llvm:code-entry abort 0 0)\n(llvm:code-entry __cxa_finalize 0 0)\n(llvm:code-entry __libc_start_main 0 0)\n(llvm:code-entry _init 1456 0)\n(llvm:code-entry main 1876 84)\n(llvm:code-entry _start 1600 52)\n(llvm:code-entry abort@GLIBC_2.17 0 0)\n(llvm:code-entry _fini 1960 0)\n(llvm:code-entry __cxa_finalize@GLIBC_2.17 0 0)\n(llvm:code-entry __libc_start_main@GLIBC_2.34 0 0)\n(llvm:code-entry frame_dummy 1872 0)\n(llvm:code-entry __do_global_dtors_aux 1792 0)\n(llvm:code-entry register_tm_clones 1728 0)\n(llvm:code-entry deregister_tm_clones 1680 0)\n(llvm:code-entry call_weak_fn 1652 20)\n(llvm:code-entry .fini 1960 20)\n(llvm:code-entry .text 1600 360)\n(llvm:code-entry .plt 1488 96)\n(llvm:code-entry .init 1456 24)\n(llvm:elf-program-header 08 3464 632)\n(llvm:elf-program-header 07 0 0)\n(llvm:elf-program-header 06 1984 60)\n(llvm:elf-program-header 05 596 68)\n(llvm:elf-program-header 04 3480 496)\n(llvm:elf-program-header 03 3464 648)\n(llvm:elf-program-header 02 0 2212)\n(llvm:elf-program-header 01 568 27)\n(llvm:elf-program-header 00 64 504)\n(llvm:elf-program-header-flags 08 false true false false)\n(llvm:elf-program-header-flags 07 false true true false)\n(llvm:elf-program-header-flags 06 false true false false)\n(llvm:elf-program-header-flags 05 false true false false)\n(llvm:elf-program-header-flags 04 false true true false)\n(llvm:elf-program-header-flags 03 true true true false)\n(llvm:elf-program-header-flags 02 true true false true)\n(llvm:elf-program-header-flags 01 false true false false)\n(llvm:elf-program-header-flags 00 false true false false)\n(llvm:elf-virtual-program-header 08 69000 632)\n(llvm:elf-virtual-program-header 07 0 0)\n(llvm:elf-virtual-program-header 06 1984 60)\n(llvm:elf-virtual-program-header 05 596 68)\n(llvm:elf-virtual-program-header 04 69016 496)\n(llvm:elf-virtual-program-header 03 69000 672)\n(llvm:elf-virtual-program-header 02 0 2212)\n(llvm:elf-virtual-program-header 01 568 27)\n(llvm:elf-virtual-program-header 00 64 504)\n(llvm:entry-point 1600)\n(llvm:name-reference 69560 abort)\n(llvm:name-reference 69552 __gmon_start__)\n(llvm:name-reference 69544 __cxa_finalize)\n(llvm:name-reference 69536 __libc_start_main)\n(llvm:name-reference 69624 _ITM_registerTMCloneTable)\n(llvm:name-reference 69600 __gmon_start__)\n(llvm:name-reference 69584 __cxa_finalize)\n(llvm:name-reference 69576 _ITM_deregisterTMCloneTable)\n(llvm:section-entry .shstrtab 0 250 6853)\n(llvm:section-entry .strtab 0 557 6296)\n(llvm:section-entry .symtab 0 2136 4160)\n(llvm:section-entry .comment 0 43 4112)\n(llvm:section-entry .bss 69648 24 4112)\n(llvm:section-entry .data 69632 16 4096)\n(llvm:section-entry .got 69512 120 3976)\n(llvm:section-entry .dynamic 69016 496 3480)\n(llvm:section-entry .fini_array 69008 8 3472)\n(llvm:section-entry .init_array 69000 8 3464)\n(llvm:section-entry .eh_frame 2048 164 2048)\n(llvm:section-entry .eh_frame_hdr 1984 60 1984)\n(llvm:section-entry .rodata 1980 4 1980)\n(llvm:section-entry .fini 1960 20 1960)\n(llvm:section-entry .text 1600 360 1600)\n(llvm:section-entry .plt 1488 96 1488)\n(llvm:section-entry .init 1456 24 1456)\n(llvm:section-entry .rela.plt 1360 96 1360)\n(llvm:section-entry .rela.dyn 1120 240 1120)\n(llvm:section-entry .gnu.version_r 1072 48 1072)\n(llvm:section-entry .gnu.version 1054 18 1054)\n(llvm:section-entry .dynstr 912 141 912)\n(llvm:section-entry .dynsym 696 216 696)\n(llvm:section-entry .gnu.hash 664 28 664)\n(llvm:section-entry .note.ABI-tag 632 32 632)\n(llvm:section-entry .note.gnu.build-id 596 36 596)\n(llvm:section-entry .interp 568 27 568)\n(llvm:section-flags .shstrtab true false false)\n(llvm:section-flags .strtab true false false)\n(llvm:section-flags .symtab true false false)\n(llvm:section-flags .comment true false false)\n(llvm:section-flags .bss true true false)\n(llvm:section-flags .data true true false)\n(llvm:section-flags .got true true false)\n(llvm:section-flags .dynamic true true false)\n(llvm:section-flags .fini_array true true false)\n(llvm:section-flags .init_array true true false)\n(llvm:section-flags .eh_frame true false false)\n(llvm:section-flags .eh_frame_hdr true false false)\n(llvm:section-flags .rodata true false false)\n(llvm:section-flags .fini true false true)\n(llvm:section-flags .text true false true)\n(llvm:section-flags .plt true false true)\n(llvm:section-flags .init true false true)\n(llvm:section-flags .rela.plt true false false)\n(llvm:section-flags .rela.dyn true false false)\n(llvm:section-flags .gnu.version_r true false false)\n(llvm:section-flags .gnu.version true false false)\n(llvm:section-flags .dynstr true false false)\n(llvm:section-flags .dynsym true false false)\n(llvm:section-flags .gnu.hash true false false)\n(llvm:section-flags .note.ABI-tag true false false)\n(llvm:section-flags .note.gnu.build-id true false false)\n(llvm:section-flags .interp true false false)\n(llvm:symbol-entry abort 0 0 0 0)\n(llvm:symbol-entry __cxa_finalize 0 0 0 0)\n(llvm:symbol-entry __libc_start_main 0 0 0 0)\n(llvm:symbol-entry _init 1456 0 1456 1456)\n(llvm:symbol-entry main 1876 84 1876 1876)\n(llvm:symbol-entry _start 1600 52 1600 1600)\n(llvm:symbol-entry abort@GLIBC_2.17 0 0 0 0)\n(llvm:symbol-entry _fini 1960 0 1960 1960)\n(llvm:symbol-entry __cxa_finalize@GLIBC_2.17 0 0 0 0)\n(llvm:symbol-entry __libc_start_main@GLIBC_2.34 0 0 0 0)\n(llvm:symbol-entry frame_dummy 1872 0 1872 1872)\n(llvm:symbol-entry __do_global_dtors_aux 1792 0 1792 1792)\n(llvm:symbol-entry register_tm_clones 1728 0 1728 1728)\n(llvm:symbol-entry deregister_tm_clones 1680 0 1680 1680)\n(llvm:symbol-entry call_weak_fn 1652 20 1652 1652)\n(mapped 0 2212 0)\n(mapped 69000 648 3464)\n(named-region 0 2212 02)\n(named-region 69000 672 03)\n(named-region 568 27 .interp)\n(named-region 596 36 .note.gnu.build-id)\n(named-region 632 32 .note.ABI-tag)\n(named-region 664 28 .gnu.hash)\n(named-region 696 216 .dynsym)\n(named-region 912 141 .dynstr)\n(named-region 1054 18 .gnu.version)\n(named-region 1072 48 .gnu.version_r)\n(named-region 1120 240 .rela.dyn)\n(named-region 1360 96 .rela.plt)\n(named-region 1456 24 .init)\n(named-region 1488 96 .plt)\n(named-region 1600 360 .text)\n(named-region 1960 20 .fini)\n(named-region 1980 4 .rodata)\n(named-region 1984 60 .eh_frame_hdr)\n(named-region 2048 164 .eh_frame)\n(named-region 69000 8 .init_array)\n(named-region 69008 8 .fini_array)\n(named-region 69016 496 .dynamic)\n(named-region 69512 120 .got)\n(named-region 69632 16 .data)\n(named-region 69648 24 .bss)\n(named-region 0 43 .comment)\n(named-region 0 2136 .symtab)\n(named-region 0 557 .strtab)\n(named-region 0 250 .shstrtab)\n(named-symbol 1652 call_weak_fn)\n(named-symbol 1680 deregister_tm_clones)\n(named-symbol 1728 register_tm_clones)\n(named-symbol 1792 __do_global_dtors_aux)\n(named-symbol 1872 frame_dummy)\n(named-symbol 0 __libc_start_main@GLIBC_2.34)\n(named-symbol 0 __cxa_finalize@GLIBC_2.17)\n(named-symbol 1960 _fini)\n(named-symbol 0 abort@GLIBC_2.17)\n(named-symbol 1600 _start)\n(named-symbol 1876 main)\n(named-symbol 1456 _init)\n(named-symbol 0 __libc_start_main)\n(named-symbol 0 __cxa_finalize)\n(named-symbol 0 abort)\n(require libc.so.6)\n(section 568 27)\n(section 596 36)\n(section 632 32)\n(section 664 28)\n(section 696 216)\n(section 912 141)\n(section 1054 18)\n(section 1072 48)\n(section 1120 240)\n(section 1360 96)\n(section 1456 24)\n(section 1488 96)\n(section 1600 360)\n(section 1960 20)\n(section 1980 4)\n(section 1984 60)\n(section 2048 164)\n(section 69000 8)\n(section 69008 8)\n(section 69016 496)\n(section 69512 120)\n(section 69632 16)\n(section 69648 24)\n(section 0 43)\n(section 0 2136)\n(section 0 557)\n(section 0 250)\n(segment 0 2212 true false true)\n(segment 69000 672 true true false)\n(subarch v8)\n(symbol-chunk 1652 20 1652)\n(symbol-chunk 1600 52 1600)\n(symbol-chunk 1876 84 1876)\n(symbol-value 1652 1652)\n(symbol-value 1680 1680)\n(symbol-value 1728 1728)\n(symbol-value 1792 1792)\n(symbol-value 1872 1872)\n(symbol-value 1960 1960)\n(symbol-value 1600 1600)\n(symbol-value 1876 1876)\n(symbol-value 1456 1456)\n(symbol-value 0 0)\n(system \"\")\n(vendor \"\")\n"), -Attr("abi-name","\"aarch64-linux-gnu-elf\"")]), -Sections([Section(".shstrtab", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x40\x06\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xc0\x1b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x38\x00\x09\x00\x40\x00\x1c\x00\x1b\x00\x06\x00\x00\x00\x04\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x04\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xa4\x08\x00\x00\x00\x00\x00\x00\xa4\x08\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x01\x00\x00\x00\x06\x00\x00\x00\x88\x0d\x00\x00\x00\x00\x00\x00\x88\x0d"), -Section(".strtab", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x40\x06\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xc0\x1b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x38\x00\x09\x00\x40\x00\x1c\x00\x1b\x00\x06\x00\x00\x00\x04\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x04\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xa4\x08\x00\x00\x00\x00\x00\x00\xa4\x08\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x01\x00\x00\x00\x06\x00\x00\x00\x88\x0d\x00\x00\x00\x00\x00\x00\x88\x0d\x01\x00\x00\x00\x00\x00\x88\x0d\x01\x00\x00\x00\x00\x00\x88\x02\x00\x00\x00\x00\x00\x00\xa0\x02\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x02\x00\x00\x00\x06\x00\x00\x00\x98\x0d\x00\x00\x00\x00\x00\x00\x98\x0d\x01\x00\x00\x00\x00\x00\x98\x0d\x01\x00\x00\x00\x00\x00\xf0\x01\x00\x00\x00\x00\x00\x00\xf0\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x04\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x50\xe5\x74\x64\x04\x00\x00\x00\xc0\x07\x00\x00\x00\x00\x00\x00\xc0\x07\x00\x00\x00\x00\x00\x00\xc0\x07\x00\x00\x00\x00\x00\x00\x3c\x00\x00\x00\x00\x00\x00\x00\x3c\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x51\xe5\x74\x64\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x52\xe5\x74\x64\x04\x00\x00\x00\x88\x0d\x00\x00\x00\x00\x00\x00\x88\x0d\x01\x00\x00\x00\x00\x00\x88\x0d\x01\x00\x00\x00\x00\x00\x78\x02\x00\x00\x00\x00\x00\x00\x78\x02\x00\x00\x00"), -Section(".symtab", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x40\x06\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xc0\x1b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x38\x00\x09\x00\x40\x00\x1c\x00\x1b\x00\x06\x00\x00\x00\x04\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x04\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xa4\x08\x00\x00\x00\x00\x00\x00\xa4\x08\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x01\x00\x00\x00\x06\x00\x00\x00\x88\x0d\x00\x00\x00\x00\x00\x00\x88\x0d\x01\x00\x00\x00\x00\x00\x88\x0d\x01\x00\x00\x00\x00\x00\x88\x02\x00\x00\x00\x00\x00\x00\xa0\x02\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x02\x00\x00\x00\x06\x00\x00\x00\x98\x0d\x00\x00\x00\x00\x00\x00\x98\x0d\x01\x00\x00\x00\x00\x00\x98\x0d\x01\x00\x00\x00\x00\x00\xf0\x01\x00\x00\x00\x00\x00\x00\xf0\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x04\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x50\xe5\x74\x64\x04\x00\x00\x00\xc0\x07\x00\x00\x00\x00\x00\x00\xc0\x07\x00\x00\x00\x00\x00\x00\xc0\x07\x00\x00\x00\x00\x00\x00\x3c\x00\x00\x00\x00\x00\x00\x00\x3c\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x51\xe5\x74\x64\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x52\xe5\x74\x64\x04\x00\x00\x00\x88\x0d\x00\x00\x00\x00\x00\x00\x88\x0d\x01\x00\x00\x00\x00\x00\x88\x0d\x01\x00\x00\x00\x00\x00\x78\x02\x00\x00\x00\x00\x00\x00\x78\x02\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x2f\x6c\x69\x62\x2f\x6c\x64\x2d\x6c\x69\x6e\x75\x78\x2d\x61\x61\x72\x63\x68\x36\x34\x2e\x73\x6f\x2e\x31\x00\x00\x04\x00\x00\x00\x14\x00\x00\x00\x03\x00\x00\x00\x47\x4e\x55\x00\x5f\x01\x14\xee\xb8\x64\xb3\xe5\x2e\xd9\x8a\x9a\x34\x97\xf9\xb0\x02\xed\x9e\xb3\x04\x00\x00\x00\x10\x00\x00\x00\x01\x00\x00\x00\x47\x4e\x55\x00\x00\x00\x00\x00\x03\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x01\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x0b\x00\xb0\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x16\x00\x00\x10\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x48\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x22\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x22\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x73\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5f\x5f\x63\x78\x61\x5f\x66\x69\x6e\x61\x6c\x69\x7a\x65\x00\x5f\x5f\x6c\x69\x62\x63\x5f\x73\x74\x61\x72\x74\x5f\x6d\x61\x69\x6e\x00\x61\x62\x6f\x72\x74\x00\x6c\x69\x62\x63\x2e\x73\x6f\x2e\x36\x00\x47\x4c\x49\x42\x43\x5f\x32\x2e\x31\x37\x00\x47\x4c\x49\x42\x43\x5f\x32\x2e\x33\x34\x00\x5f\x49\x54\x4d\x5f\x64\x65\x72\x65\x67\x69\x73\x74\x65\x72\x54\x4d\x43\x6c\x6f\x6e\x65\x54\x61\x62\x6c\x65\x00\x5f\x5f\x67\x6d\x6f\x6e\x5f\x73\x74\x61\x72\x74\x5f\x5f\x00\x5f\x49\x54\x4d\x5f\x72\x65\x67\x69\x73\x74\x65\x72\x54\x4d\x43\x6c\x6f\x6e\x65\x54\x61\x62\x6c\x65\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x01\x00\x03\x00\x01\x00\x03\x00\x01\x00\x01\x00\x02\x00\x28\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x97\x91\x96\x06\x00\x00\x03\x00\x32\x00\x00\x00\x10\x00\x00\x00\xb4\x91\x96\x06\x00\x00\x02\x00\x3d\x00\x00\x00\x00\x00\x00\x00\x88\x0d\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x50\x07\x00\x00\x00\x00\x00\x00\x90\x0d\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\xd8\x0f\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x18\x10\x01\x00\x00\x00\x00\x00\xe8\x0f\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x20\x10\x01\x00\x00\x00\x00\x00\xf0\x0f\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x54\x07\x00\x00\x00\x00\x00\x00\x08\x10\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x08\x10\x01\x00\x00\x00\x00\x00\xc8\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xd0\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe0\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xf8\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xa0\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xa8\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xb0\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xb8\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1f\x20\x03\xd5\xfd\x7b\xbf\xa9\xfd\x03\x00\x91\x2e\x00\x00\x94\xfd\x7b\xc1\xa8\xc0\x03\x5f\xd6\x00\x00\x00\x00\x00\x00\x00\x00\xf0\x7b\xbf\xa9\x90\x00\x00\x90\x11\xce\x47\xf9\x10\x62\x3e\x91\x20\x02\x1f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x90\x00\x00\x90\x11\xd2\x47\xf9\x10\x82\x3e\x91\x20\x02\x1f\xd6\x90\x00\x00\x90\x11\xd6\x47\xf9\x10\xa2\x3e\x91\x20\x02\x1f\xd6\x90\x00\x00\x90\x11\xda\x47\xf9\x10\xc2\x3e\x91\x20\x02\x1f\xd6\x90\x00\x00\x90\x11\xde\x47\xf9\x10\xe2\x3e\x91\x20\x02\x1f\xd6\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1f\x20\x03\xd5\x1d\x00\x80\xd2\x1e\x00\x80\xd2\xe5\x03\x00\xaa\xe1\x03\x40\xf9\xe2\x23\x00\x91\xe6\x03\x00\x91\x80\x00\x00\x90\x00\xf8\x47\xf9\x03\x00\x80\xd2\x04\x00\x80\xd2\xe1\xff\xff\x97\xec\xff\xff\x97\x80\x00\x00\x90\x00\xf0\x47\xf9\x40\x00\x00\xb4\xe4\xff\xff\x17\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x80\x00\x00\xb0\x00\x40\x00\x91\x81\x00\x00\xb0\x21\x40\x00\x91\x3f\x00\x00\xeb\xc0\x00\x00\x54\x81\x00\x00\x90\x21\xe4\x47\xf9\x61\x00\x00\xb4\xf0\x03\x01\xaa\x00\x02\x1f\xd6\xc0\x03\x5f\xd6\x80\x00\x00\xb0\x00\x40\x00\x91\x81\x00\x00\xb0\x21\x40\x00\x91\x21\x00\x00\xcb\x22\xfc\x7f\xd3\x41\x0c\x81\x8b\x21\xfc\x41\x93\xc1\x00\x00\xb4\x82\x00\x00\x90\x42\xfc\x47\xf9\x62\x00\x00\xb4\xf0\x03\x02\xaa\x00\x02\x1f\xd6\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\xfd\x7b\xbe\xa9\xfd\x03\x00\x91\xf3\x0b\x00\xf9\x93\x00\x00\xb0\x60\x42\x40\x39\x40\x01\x00\x35\x80\x00\x00\x90\x00\xe8\x47\xf9\x80\x00\x00\xb4\x80\x00\x00\xb0\x00\x04\x40\xf9\xb5\xff\xff\x97\xd8\xff\xff\x97\x20\x00\x80\x52\x60\x42\x00\x39\xf3\x0b\x40\xf9\xfd\x7b\xc2\xa8\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\xdc\xff\xff\x17\xff\x43\x00\xd1\x80\x00\x00\x90\x00\xf4\x47\xf9\x00\x00\x40\xf9\xe0\x07\x00\xf9\xff\x07\x00\xf9\x80\x00\x00\x90\x00\xec\x47\xf9\xe1\x07\x40\xf9\x01\x00\x00\xf9\x80\x00\x00\x90\x00\xf4\x47\xf9\x00\x00\x40\xf9\xe0\x07\x00\xf9\x80\x00\x00\x90\x00\xec\x47\xf9\xe1\x07\x40\xf9\x01\x00\x00\xf9\x00\x00\x80\x52\xff\x43\x00\x91\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\xfd\x7b\xbf\xa9\xfd\x03\x00\x91\xfd\x7b\xc1\xa8\xc0\x03\x5f\xd6\x01\x00\x02\x00\x01\x1b\x03\x3b\x3c\x00\x00\x00\x06\x00\x00\x00\x80\xfe\xff\xff\x54\x00\x00\x00\xd0\xfe\xff\xff\x68\x00\x00\x00\x00\xff\xff\xff\x7c\x00\x00\x00\x40\xff\xff\xff\x90\x00\x00\x00\x90\xff\xff\xff\xb4\x00\x00\x00\x94\xff\xff\xff\xc8\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x01\x7a\x52\x00\x04\x78\x1e\x01\x1b\x0c\x1f\x00\x10\x00\x00\x00\x18\x00\x00\x00\x24\xfe\xff\xff\x34\x00\x00\x00\x00\x41\x07\x1e\x10\x00\x00\x00\x2c\x00\x00\x00\x60\xfe\xff\xff\x30\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x40\x00\x00\x00\x7c\xfe\xff\xff\x3c\x00\x00\x00\x00\x00\x00\x00\x20\x00\x00\x00\x54\x00\x00\x00"), -Section(".comment", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x40\x06\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xc0\x1b\x00"), -Section(".interp", 0x238, "\x2f\x6c\x69\x62\x2f\x6c\x64\x2d\x6c\x69\x6e\x75\x78\x2d\x61\x61\x72\x63\x68\x36\x34\x2e\x73\x6f\x2e\x31\x00"), -Section(".note.gnu.build-id", 0x254, "\x04\x00\x00\x00\x14\x00\x00\x00\x03\x00\x00\x00\x47\x4e\x55\x00\x5f\x01\x14\xee\xb8\x64\xb3\xe5\x2e\xd9\x8a\x9a\x34\x97\xf9\xb0\x02\xed\x9e\xb3"), -Section(".note.ABI-tag", 0x278, "\x04\x00\x00\x00\x10\x00\x00\x00\x01\x00\x00\x00\x47\x4e\x55\x00\x00\x00\x00\x00\x03\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00"), -Section(".gnu.hash", 0x298, "\x01\x00\x00\x00\x01\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".dynsym", 0x2B8, "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x0b\x00\xb0\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x16\x00\x00\x10\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x48\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x22\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x22\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x73\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".dynstr", 0x390, "\x00\x5f\x5f\x63\x78\x61\x5f\x66\x69\x6e\x61\x6c\x69\x7a\x65\x00\x5f\x5f\x6c\x69\x62\x63\x5f\x73\x74\x61\x72\x74\x5f\x6d\x61\x69\x6e\x00\x61\x62\x6f\x72\x74\x00\x6c\x69\x62\x63\x2e\x73\x6f\x2e\x36\x00\x47\x4c\x49\x42\x43\x5f\x32\x2e\x31\x37\x00\x47\x4c\x49\x42\x43\x5f\x32\x2e\x33\x34\x00\x5f\x49\x54\x4d\x5f\x64\x65\x72\x65\x67\x69\x73\x74\x65\x72\x54\x4d\x43\x6c\x6f\x6e\x65\x54\x61\x62\x6c\x65\x00\x5f\x5f\x67\x6d\x6f\x6e\x5f\x73\x74\x61\x72\x74\x5f\x5f\x00\x5f\x49\x54\x4d\x5f\x72\x65\x67\x69\x73\x74\x65\x72\x54\x4d\x43\x6c\x6f\x6e\x65\x54\x61\x62\x6c\x65\x00"), -Section(".gnu.version", 0x41E, "\x00\x00\x00\x00\x00\x00\x02\x00\x01\x00\x03\x00\x01\x00\x03\x00\x01\x00"), -Section(".gnu.version_r", 0x430, "\x01\x00\x02\x00\x28\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x97\x91\x96\x06\x00\x00\x03\x00\x32\x00\x00\x00\x10\x00\x00\x00\xb4\x91\x96\x06\x00\x00\x02\x00\x3d\x00\x00\x00\x00\x00\x00\x00"), -Section(".rela.dyn", 0x460, "\x88\x0d\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x50\x07\x00\x00\x00\x00\x00\x00\x90\x0d\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\xd8\x0f\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x18\x10\x01\x00\x00\x00\x00\x00\xe8\x0f\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x20\x10\x01\x00\x00\x00\x00\x00\xf0\x0f\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x54\x07\x00\x00\x00\x00\x00\x00\x08\x10\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x08\x10\x01\x00\x00\x00\x00\x00\xc8\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xd0\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe0\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xf8\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".rela.plt", 0x550, "\xa0\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xa8\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xb0\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xb8\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".init", 0x5B0, "\x1f\x20\x03\xd5\xfd\x7b\xbf\xa9\xfd\x03\x00\x91\x2e\x00\x00\x94\xfd\x7b\xc1\xa8\xc0\x03\x5f\xd6"), -Section(".plt", 0x5D0, "\xf0\x7b\xbf\xa9\x90\x00\x00\x90\x11\xce\x47\xf9\x10\x62\x3e\x91\x20\x02\x1f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x90\x00\x00\x90\x11\xd2\x47\xf9\x10\x82\x3e\x91\x20\x02\x1f\xd6\x90\x00\x00\x90\x11\xd6\x47\xf9\x10\xa2\x3e\x91\x20\x02\x1f\xd6\x90\x00\x00\x90\x11\xda\x47\xf9\x10\xc2\x3e\x91\x20\x02\x1f\xd6\x90\x00\x00\x90\x11\xde\x47\xf9\x10\xe2\x3e\x91\x20\x02\x1f\xd6"), -Section(".fini", 0x7A8, "\x1f\x20\x03\xd5\xfd\x7b\xbf\xa9\xfd\x03\x00\x91\xfd\x7b\xc1\xa8\xc0\x03\x5f\xd6"), -Section(".rodata", 0x7BC, "\x01\x00\x02\x00"), -Section(".eh_frame_hdr", 0x7C0, "\x01\x1b\x03\x3b\x3c\x00\x00\x00\x06\x00\x00\x00\x80\xfe\xff\xff\x54\x00\x00\x00\xd0\xfe\xff\xff\x68\x00\x00\x00\x00\xff\xff\xff\x7c\x00\x00\x00\x40\xff\xff\xff\x90\x00\x00\x00\x90\xff\xff\xff\xb4\x00\x00\x00\x94\xff\xff\xff\xc8\x00\x00\x00"), -Section(".eh_frame", 0x800, "\x10\x00\x00\x00\x00\x00\x00\x00\x01\x7a\x52\x00\x04\x78\x1e\x01\x1b\x0c\x1f\x00\x10\x00\x00\x00\x18\x00\x00\x00\x24\xfe\xff\xff\x34\x00\x00\x00\x00\x41\x07\x1e\x10\x00\x00\x00\x2c\x00\x00\x00\x60\xfe\xff\xff\x30\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x40\x00\x00\x00\x7c\xfe\xff\xff\x3c\x00\x00\x00\x00\x00\x00\x00\x20\x00\x00\x00\x54\x00\x00\x00\xa8\xfe\xff\xff\x48\x00\x00\x00\x00\x41\x0e\x20\x9d\x04\x9e\x03\x42\x93\x02\x4e\xde\xdd\xd3\x0e\x00\x00\x00\x00\x10\x00\x00\x00\x78\x00\x00\x00\xd4\xfe\xff\xff\x04\x00\x00\x00\x00\x00\x00\x00\x14\x00\x00\x00\x8c\x00\x00\x00\xc4\xfe\xff\xff\x54\x00\x00\x00\x00\x41\x0e\x10\x53\x0e\x00\x00\x00\x00\x00\x00"), -Section(".fini_array", 0x10D90, "\x00\x07\x00\x00\x00\x00\x00\x00"), -Section(".dynamic", 0x10D98, "\x01\x00\x00\x00\x00\x00\x00\x00\x28\x00\x00\x00\x00\x00\x00\x00\x0c\x00\x00\x00\x00\x00\x00\x00\xb0\x05\x00\x00\x00\x00\x00\x00\x0d\x00\x00\x00\x00\x00\x00\x00\xa8\x07\x00\x00\x00\x00\x00\x00\x19\x00\x00\x00\x00\x00\x00\x00\x88\x0d\x01\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x1a\x00\x00\x00\x00\x00\x00\x00\x90\x0d\x01\x00\x00\x00\x00\x00\x1c\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\xf5\xfe\xff\x6f\x00\x00\x00\x00\x98\x02\x00\x00\x00\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x90\x03\x00\x00\x00\x00\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\xb8\x02\x00\x00\x00\x00\x00\x00\x0a\x00\x00\x00\x00\x00\x00\x00\x8d\x00\x00\x00\x00\x00\x00\x00\x0b\x00\x00\x00\x00\x00\x00\x00\x18\x00\x00\x00\x00\x00\x00\x00\x15\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x88\x0f\x01\x00\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x60\x00\x00\x00\x00\x00\x00\x00\x14\x00\x00\x00\x00\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x17\x00\x00\x00\x00\x00\x00\x00\x50\x05\x00\x00\x00\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x60\x04\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\xf0\x00\x00\x00\x00\x00\x00\x00\x09\x00\x00\x00\x00\x00\x00\x00\x18\x00\x00\x00\x00\x00\x00\x00\x1e\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\xfb\xff\xff\x6f\x00\x00\x00\x00\x01\x00\x00\x08\x00\x00\x00\x00\xfe\xff\xff\x6f\x00\x00\x00\x00\x30\x04\x00\x00\x00\x00\x00\x00\xff\xff\xff\x6f\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\xf0\xff\xff\x6f\x00\x00\x00\x00\x1e\x04\x00\x00\x00\x00\x00\x00\xf9\xff\xff\x6f\x00\x00\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".got", 0x10F88, "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xd0\x05\x00\x00\x00\x00\x00\x00\xd0\x05\x00\x00\x00\x00\x00\x00\xd0\x05\x00\x00\x00\x00\x00\x00\xd0\x05\x00\x00\x00\x00\x00\x00\x98\x0d\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x18\x10\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x20\x10\x01\x00\x00\x00\x00\x00\x54\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".data", 0x11000, "\x00\x00\x00\x00\x00\x00\x00\x00\x08\x10\x01\x00\x00\x00\x00\x00"), -Section(".init_array", 0x10D88, "\x50\x07\x00\x00\x00\x00\x00\x00"), -Section(".text", 0x640, "\x1f\x20\x03\xd5\x1d\x00\x80\xd2\x1e\x00\x80\xd2\xe5\x03\x00\xaa\xe1\x03\x40\xf9\xe2\x23\x00\x91\xe6\x03\x00\x91\x80\x00\x00\x90\x00\xf8\x47\xf9\x03\x00\x80\xd2\x04\x00\x80\xd2\xe1\xff\xff\x97\xec\xff\xff\x97\x80\x00\x00\x90\x00\xf0\x47\xf9\x40\x00\x00\xb4\xe4\xff\xff\x17\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x80\x00\x00\xb0\x00\x40\x00\x91\x81\x00\x00\xb0\x21\x40\x00\x91\x3f\x00\x00\xeb\xc0\x00\x00\x54\x81\x00\x00\x90\x21\xe4\x47\xf9\x61\x00\x00\xb4\xf0\x03\x01\xaa\x00\x02\x1f\xd6\xc0\x03\x5f\xd6\x80\x00\x00\xb0\x00\x40\x00\x91\x81\x00\x00\xb0\x21\x40\x00\x91\x21\x00\x00\xcb\x22\xfc\x7f\xd3\x41\x0c\x81\x8b\x21\xfc\x41\x93\xc1\x00\x00\xb4\x82\x00\x00\x90\x42\xfc\x47\xf9\x62\x00\x00\xb4\xf0\x03\x02\xaa\x00\x02\x1f\xd6\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\xfd\x7b\xbe\xa9\xfd\x03\x00\x91\xf3\x0b\x00\xf9\x93\x00\x00\xb0\x60\x42\x40\x39\x40\x01\x00\x35\x80\x00\x00\x90\x00\xe8\x47\xf9\x80\x00\x00\xb4\x80\x00\x00\xb0\x00\x04\x40\xf9\xb5\xff\xff\x97\xd8\xff\xff\x97\x20\x00\x80\x52\x60\x42\x00\x39\xf3\x0b\x40\xf9\xfd\x7b\xc2\xa8\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\xdc\xff\xff\x17\xff\x43\x00\xd1\x80\x00\x00\x90\x00\xf4\x47\xf9\x00\x00\x40\xf9\xe0\x07\x00\xf9\xff\x07\x00\xf9\x80\x00\x00\x90\x00\xec\x47\xf9\xe1\x07\x40\xf9\x01\x00\x00\xf9\x80\x00\x00\x90\x00\xf4\x47\xf9\x00\x00\x40\xf9\xe0\x07\x00\xf9\x80\x00\x00\x90\x00\xec\x47\xf9\xe1\x07\x40\xf9\x01\x00\x00\xf9\x00\x00\x80\x52\xff\x43\x00\x91\xc0\x03\x5f\xd6")]), -Memmap([Annotation(Region(0x0,0x8A3), Attr("segment","02 0 2212")), -Annotation(Region(0x640,0x673), Attr("symbol","\"_start\"")), -Annotation(Region(0x0,0xF9), Attr("section","\".shstrtab\"")), -Annotation(Region(0x0,0x22C), Attr("section","\".strtab\"")), -Annotation(Region(0x0,0x857), Attr("section","\".symtab\"")), -Annotation(Region(0x0,0x2A), Attr("section","\".comment\"")), -Annotation(Region(0x238,0x252), Attr("section","\".interp\"")), -Annotation(Region(0x254,0x277), Attr("section","\".note.gnu.build-id\"")), -Annotation(Region(0x278,0x297), Attr("section","\".note.ABI-tag\"")), -Annotation(Region(0x298,0x2B3), Attr("section","\".gnu.hash\"")), -Annotation(Region(0x2B8,0x38F), Attr("section","\".dynsym\"")), -Annotation(Region(0x390,0x41C), Attr("section","\".dynstr\"")), -Annotation(Region(0x41E,0x42F), Attr("section","\".gnu.version\"")), -Annotation(Region(0x430,0x45F), Attr("section","\".gnu.version_r\"")), -Annotation(Region(0x460,0x54F), Attr("section","\".rela.dyn\"")), -Annotation(Region(0x550,0x5AF), Attr("section","\".rela.plt\"")), -Annotation(Region(0x5B0,0x5C7), Attr("section","\".init\"")), -Annotation(Region(0x5D0,0x62F), Attr("section","\".plt\"")), -Annotation(Region(0x5B0,0x5C7), Attr("code-region","()")), -Annotation(Region(0x5D0,0x62F), Attr("code-region","()")), -Annotation(Region(0x640,0x673), Attr("symbol-info","_start 0x640 52")), -Annotation(Region(0x674,0x687), Attr("symbol","\"call_weak_fn\"")), -Annotation(Region(0x674,0x687), Attr("symbol-info","call_weak_fn 0x674 20")), -Annotation(Region(0x754,0x7A7), Attr("symbol","\"main\"")), -Annotation(Region(0x754,0x7A7), Attr("symbol-info","main 0x754 84")), -Annotation(Region(0x7A8,0x7BB), Attr("section","\".fini\"")), -Annotation(Region(0x7BC,0x7BF), Attr("section","\".rodata\"")), -Annotation(Region(0x7C0,0x7FB), Attr("section","\".eh_frame_hdr\"")), -Annotation(Region(0x800,0x8A3), Attr("section","\".eh_frame\"")), -Annotation(Region(0x10D88,0x1100F), Attr("segment","03 0x10D88 672")), -Annotation(Region(0x10D90,0x10D97), Attr("section","\".fini_array\"")), -Annotation(Region(0x10D98,0x10F87), Attr("section","\".dynamic\"")), -Annotation(Region(0x10F88,0x10FFF), Attr("section","\".got\"")), -Annotation(Region(0x11000,0x1100F), Attr("section","\".data\"")), -Annotation(Region(0x10D88,0x10D8F), Attr("section","\".init_array\"")), -Annotation(Region(0x640,0x7A7), Attr("section","\".text\"")), -Annotation(Region(0x640,0x7A7), Attr("code-region","()")), -Annotation(Region(0x7A8,0x7BB), Attr("code-region","()"))]), -Program(Tid(1_500, "%000005dc"), Attrs([]), - Subs([Sub(Tid(1_450, "@__cxa_finalize"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x600"), -Attr("stub","()")]), "__cxa_finalize", Args([Arg(Tid(1_501, "%000005dd"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("__cxa_finalize_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(958, "@__cxa_finalize"), - Attrs([Attr("address","0x600")]), Phis([]), -Defs([Def(Tid(1_206, "%000004b6"), Attrs([Attr("address","0x600"), -Attr("insn","adrp x16, #65536")]), Var("R16",Imm(64)), Int(65536,64)), -Def(Tid(1_213, "%000004bd"), Attrs([Attr("address","0x604"), -Attr("insn","ldr x17, [x16, #0xfa8]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(4008,64)),LittleEndian(),64)), -Def(Tid(1_219, "%000004c3"), Attrs([Attr("address","0x608"), -Attr("insn","add x16, x16, #0xfa8")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(4008,64)))]), Jmps([Call(Tid(1_224, "%000004c8"), - Attrs([Attr("address","0x60C"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), -Sub(Tid(1_451, "@__do_global_dtors_aux"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x700")]), - "__do_global_dtors_aux", Args([Arg(Tid(1_502, "%000005de"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("__do_global_dtors_aux_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(674, "@__do_global_dtors_aux"), - Attrs([Attr("address","0x700")]), Phis([]), Defs([Def(Tid(678, "%000002a6"), - Attrs([Attr("address","0x700"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("#3",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(18446744073709551584,64))), -Def(Tid(684, "%000002ac"), Attrs([Attr("address","0x700"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("#3",Imm(64)),Var("R29",Imm(64)),LittleEndian(),64)), -Def(Tid(690, "%000002b2"), Attrs([Attr("address","0x700"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("#3",Imm(64)),Int(8,64)),Var("R30",Imm(64)),LittleEndian(),64)), -Def(Tid(694, "%000002b6"), Attrs([Attr("address","0x700"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("R31",Imm(64)), -Var("#3",Imm(64))), Def(Tid(700, "%000002bc"), - Attrs([Attr("address","0x704"), Attr("insn","mov x29, sp")]), - Var("R29",Imm(64)), Var("R31",Imm(64))), Def(Tid(708, "%000002c4"), - Attrs([Attr("address","0x708"), Attr("insn","str x19, [sp, #0x10]")]), - Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(16,64)),Var("R19",Imm(64)),LittleEndian(),64)), -Def(Tid(713, "%000002c9"), Attrs([Attr("address","0x70C"), -Attr("insn","adrp x19, #69632")]), Var("R19",Imm(64)), Int(69632,64)), -Def(Tid(720, "%000002d0"), Attrs([Attr("address","0x710"), -Attr("insn","ldrb w0, [x19, #0x10]")]), Var("R0",Imm(64)), -UNSIGNED(64,Load(Var("mem",Mem(64,8)),PLUS(Var("R19",Imm(64)),Int(16,64)),LittleEndian(),8)))]), -Jmps([Goto(Tid(727, "%000002d7"), Attrs([Attr("address","0x714"), -Attr("insn","cbnz w0, #0x28")]), - NEQ(Extract(31,0,Var("R0",Imm(64))),Int(0,32)), -Direct(Tid(725, "%000002d5"))), Goto(Tid(1_490, "%000005d2"), Attrs([]), - Int(1,1), Direct(Tid(903, "%00000387")))])), Blk(Tid(903, "%00000387"), - Attrs([Attr("address","0x718")]), Phis([]), Defs([Def(Tid(906, "%0000038a"), - Attrs([Attr("address","0x718"), Attr("insn","adrp x0, #65536")]), - Var("R0",Imm(64)), Int(65536,64)), Def(Tid(913, "%00000391"), - Attrs([Attr("address","0x71C"), Attr("insn","ldr x0, [x0, #0xfd0]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(4048,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(919, "%00000397"), Attrs([Attr("address","0x720"), -Attr("insn","cbz x0, #0x10")]), EQ(Var("R0",Imm(64)),Int(0,64)), -Direct(Tid(917, "%00000395"))), Goto(Tid(1_491, "%000005d3"), Attrs([]), - Int(1,1), Direct(Tid(942, "%000003ae")))])), Blk(Tid(942, "%000003ae"), - Attrs([Attr("address","0x724")]), Phis([]), Defs([Def(Tid(945, "%000003b1"), - Attrs([Attr("address","0x724"), Attr("insn","adrp x0, #69632")]), - Var("R0",Imm(64)), Int(69632,64)), Def(Tid(952, "%000003b8"), - Attrs([Attr("address","0x728"), Attr("insn","ldr x0, [x0, #0x8]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(957, "%000003bd"), Attrs([Attr("address","0x72C"), -Attr("insn","bl #-0x12c")]), Var("R30",Imm(64)), Int(1840,64))]), -Jmps([Call(Tid(960, "%000003c0"), Attrs([Attr("address","0x72C"), -Attr("insn","bl #-0x12c")]), Int(1,1), -(Direct(Tid(1_450, "@__cxa_finalize")),Direct(Tid(917, "%00000395"))))])), -Blk(Tid(917, "%00000395"), Attrs([Attr("address","0x730")]), Phis([]), -Defs([Def(Tid(925, "%0000039d"), Attrs([Attr("address","0x730"), -Attr("insn","bl #-0xa0")]), Var("R30",Imm(64)), Int(1844,64))]), -Jmps([Call(Tid(927, "%0000039f"), Attrs([Attr("address","0x730"), -Attr("insn","bl #-0xa0")]), Int(1,1), -(Direct(Tid(1_464, "@deregister_tm_clones")),Direct(Tid(929, "%000003a1"))))])), -Blk(Tid(929, "%000003a1"), Attrs([Attr("address","0x734")]), Phis([]), -Defs([Def(Tid(932, "%000003a4"), Attrs([Attr("address","0x734"), -Attr("insn","mov w0, #0x1")]), Var("R0",Imm(64)), Int(1,64)), -Def(Tid(940, "%000003ac"), Attrs([Attr("address","0x738"), -Attr("insn","strb w0, [x19, #0x10]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R19",Imm(64)),Int(16,64)),Extract(7,0,Var("R0",Imm(64))),LittleEndian(),8))]), -Jmps([Goto(Tid(1_492, "%000005d4"), Attrs([]), Int(1,1), -Direct(Tid(725, "%000002d5")))])), Blk(Tid(725, "%000002d5"), - Attrs([Attr("address","0x73C")]), Phis([]), Defs([Def(Tid(735, "%000002df"), - Attrs([Attr("address","0x73C"), Attr("insn","ldr x19, [sp, #0x10]")]), - Var("R19",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(16,64)),LittleEndian(),64)), -Def(Tid(742, "%000002e6"), Attrs([Attr("address","0x740"), -Attr("insn","ldp x29, x30, [sp], #0x20")]), Var("R29",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(747, "%000002eb"), Attrs([Attr("address","0x740"), -Attr("insn","ldp x29, x30, [sp], #0x20")]), Var("R30",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(751, "%000002ef"), Attrs([Attr("address","0x740"), -Attr("insn","ldp x29, x30, [sp], #0x20")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(32,64)))]), Jmps([Call(Tid(756, "%000002f4"), - Attrs([Attr("address","0x744"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), Sub(Tid(1_455, "@__libc_start_main"), - Attrs([Attr("c.proto","signed (*)(signed (*)(signed , char** , char** );* main, signed , char** , \nvoid* auxv)"), -Attr("address","0x5F0"), Attr("stub","()")]), "__libc_start_main", - Args([Arg(Tid(1_503, "%000005df"), - Attrs([Attr("c.layout","**[ : 64]"), -Attr("c.data","Top:u64 ptr ptr"), -Attr("c.type","signed (*)(signed , char** , char** );*")]), - Var("__libc_start_main_main",Imm(64)), Var("R0",Imm(64)), In()), -Arg(Tid(1_504, "%000005e0"), Attrs([Attr("c.layout","[signed : 32]"), -Attr("c.data","Top:u32"), Attr("c.type","signed")]), - Var("__libc_start_main_arg2",Imm(32)), LOW(32,Var("R1",Imm(64))), In()), -Arg(Tid(1_505, "%000005e1"), Attrs([Attr("c.layout","**[char : 8]"), -Attr("c.data","Top:u8 ptr ptr"), Attr("c.type","char**")]), - Var("__libc_start_main_arg3",Imm(64)), Var("R2",Imm(64)), Both()), -Arg(Tid(1_506, "%000005e2"), Attrs([Attr("c.layout","*[ : 8]"), -Attr("c.data","{} ptr"), Attr("c.type","void*")]), - Var("__libc_start_main_auxv",Imm(64)), Var("R3",Imm(64)), Both()), -Arg(Tid(1_507, "%000005e3"), Attrs([Attr("c.layout","[signed : 32]"), -Attr("c.data","Top:u32"), Attr("c.type","signed")]), - Var("__libc_start_main_result",Imm(32)), LOW(32,Var("R0",Imm(64))), -Out())]), Blks([Blk(Tid(507, "@__libc_start_main"), - Attrs([Attr("address","0x5F0")]), Phis([]), -Defs([Def(Tid(1_184, "%000004a0"), Attrs([Attr("address","0x5F0"), -Attr("insn","adrp x16, #65536")]), Var("R16",Imm(64)), Int(65536,64)), -Def(Tid(1_191, "%000004a7"), Attrs([Attr("address","0x5F4"), -Attr("insn","ldr x17, [x16, #0xfa0]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(4000,64)),LittleEndian(),64)), -Def(Tid(1_197, "%000004ad"), Attrs([Attr("address","0x5F8"), -Attr("insn","add x16, x16, #0xfa0")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(4000,64)))]), Jmps([Call(Tid(1_202, "%000004b2"), - Attrs([Attr("address","0x5FC"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), Sub(Tid(1_456, "@_fini"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x7A8")]), - "_fini", Args([Arg(Tid(1_508, "%000005e4"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("_fini_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(31, "@_fini"), - Attrs([Attr("address","0x7A8")]), Phis([]), Defs([Def(Tid(37, "%00000025"), - Attrs([Attr("address","0x7AC"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("#0",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(18446744073709551600,64))), -Def(Tid(43, "%0000002b"), Attrs([Attr("address","0x7AC"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("#0",Imm(64)),Var("R29",Imm(64)),LittleEndian(),64)), -Def(Tid(49, "%00000031"), Attrs([Attr("address","0x7AC"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("#0",Imm(64)),Int(8,64)),Var("R30",Imm(64)),LittleEndian(),64)), -Def(Tid(53, "%00000035"), Attrs([Attr("address","0x7AC"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("R31",Imm(64)), -Var("#0",Imm(64))), Def(Tid(59, "%0000003b"), Attrs([Attr("address","0x7B0"), -Attr("insn","mov x29, sp")]), Var("R29",Imm(64)), Var("R31",Imm(64))), -Def(Tid(66, "%00000042"), Attrs([Attr("address","0x7B4"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R29",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(71, "%00000047"), Attrs([Attr("address","0x7B4"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R30",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(75, "%0000004b"), Attrs([Attr("address","0x7B4"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(16,64)))]), Jmps([Call(Tid(80, "%00000050"), - Attrs([Attr("address","0x7B8"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), Sub(Tid(1_457, "@_init"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x5B0")]), - "_init", Args([Arg(Tid(1_509, "%000005e5"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("_init_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(1_296, "@_init"), - Attrs([Attr("address","0x5B0")]), Phis([]), -Defs([Def(Tid(1_302, "%00000516"), Attrs([Attr("address","0x5B4"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("#5",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(18446744073709551600,64))), -Def(Tid(1_308, "%0000051c"), Attrs([Attr("address","0x5B4"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("#5",Imm(64)),Var("R29",Imm(64)),LittleEndian(),64)), -Def(Tid(1_314, "%00000522"), Attrs([Attr("address","0x5B4"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("#5",Imm(64)),Int(8,64)),Var("R30",Imm(64)),LittleEndian(),64)), -Def(Tid(1_318, "%00000526"), Attrs([Attr("address","0x5B4"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("R31",Imm(64)), -Var("#5",Imm(64))), Def(Tid(1_324, "%0000052c"), - Attrs([Attr("address","0x5B8"), Attr("insn","mov x29, sp")]), - Var("R29",Imm(64)), Var("R31",Imm(64))), Def(Tid(1_329, "%00000531"), - Attrs([Attr("address","0x5BC"), Attr("insn","bl #0xb8")]), - Var("R30",Imm(64)), Int(1472,64))]), Jmps([Call(Tid(1_331, "%00000533"), - Attrs([Attr("address","0x5BC"), Attr("insn","bl #0xb8")]), Int(1,1), -(Direct(Tid(1_462, "@call_weak_fn")),Direct(Tid(1_333, "%00000535"))))])), -Blk(Tid(1_333, "%00000535"), Attrs([Attr("address","0x5C0")]), Phis([]), -Defs([Def(Tid(1_338, "%0000053a"), Attrs([Attr("address","0x5C0"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R29",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(1_343, "%0000053f"), Attrs([Attr("address","0x5C0"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R30",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(1_347, "%00000543"), Attrs([Attr("address","0x5C0"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(16,64)))]), Jmps([Call(Tid(1_352, "%00000548"), - Attrs([Attr("address","0x5C4"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), Sub(Tid(1_458, "@_start"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x640"), -Attr("entry-point","()")]), "_start", Args([Arg(Tid(1_510, "%000005e6"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("_start_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(444, "@_start"), - Attrs([Attr("address","0x640")]), Phis([]), Defs([Def(Tid(449, "%000001c1"), - Attrs([Attr("address","0x644"), Attr("insn","mov x29, #0x0")]), - Var("R29",Imm(64)), Int(0,64)), Def(Tid(454, "%000001c6"), - Attrs([Attr("address","0x648"), Attr("insn","mov x30, #0x0")]), - Var("R30",Imm(64)), Int(0,64)), Def(Tid(460, "%000001cc"), - Attrs([Attr("address","0x64C"), Attr("insn","mov x5, x0")]), - Var("R5",Imm(64)), Var("R0",Imm(64))), Def(Tid(467, "%000001d3"), - Attrs([Attr("address","0x650"), Attr("insn","ldr x1, [sp]")]), - Var("R1",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(473, "%000001d9"), Attrs([Attr("address","0x654"), -Attr("insn","add x2, sp, #0x8")]), Var("R2",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(8,64))), Def(Tid(479, "%000001df"), - Attrs([Attr("address","0x658"), Attr("insn","mov x6, sp")]), - Var("R6",Imm(64)), Var("R31",Imm(64))), Def(Tid(484, "%000001e4"), - Attrs([Attr("address","0x65C"), Attr("insn","adrp x0, #65536")]), - Var("R0",Imm(64)), Int(65536,64)), Def(Tid(491, "%000001eb"), - Attrs([Attr("address","0x660"), Attr("insn","ldr x0, [x0, #0xff0]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(4080,64)),LittleEndian(),64)), -Def(Tid(496, "%000001f0"), Attrs([Attr("address","0x664"), -Attr("insn","mov x3, #0x0")]), Var("R3",Imm(64)), Int(0,64)), -Def(Tid(501, "%000001f5"), Attrs([Attr("address","0x668"), -Attr("insn","mov x4, #0x0")]), Var("R4",Imm(64)), Int(0,64)), -Def(Tid(506, "%000001fa"), Attrs([Attr("address","0x66C"), -Attr("insn","bl #-0x7c")]), Var("R30",Imm(64)), Int(1648,64))]), -Jmps([Call(Tid(509, "%000001fd"), Attrs([Attr("address","0x66C"), -Attr("insn","bl #-0x7c")]), Int(1,1), -(Direct(Tid(1_455, "@__libc_start_main")),Direct(Tid(511, "%000001ff"))))])), -Blk(Tid(511, "%000001ff"), Attrs([Attr("address","0x670")]), Phis([]), -Defs([Def(Tid(514, "%00000202"), Attrs([Attr("address","0x670"), -Attr("insn","bl #-0x50")]), Var("R30",Imm(64)), Int(1652,64))]), -Jmps([Call(Tid(517, "%00000205"), Attrs([Attr("address","0x670"), -Attr("insn","bl #-0x50")]), Int(1,1), -(Direct(Tid(1_461, "@abort")),Direct(Tid(1_493, "%000005d5"))))])), -Blk(Tid(1_493, "%000005d5"), Attrs([]), Phis([]), Defs([]), -Jmps([Call(Tid(1_494, "%000005d6"), Attrs([]), Int(1,1), -(Direct(Tid(1_462, "@call_weak_fn")),))]))])), Sub(Tid(1_461, "@abort"), - Attrs([Attr("noreturn","()"), Attr("c.proto","void (*)(void)"), -Attr("address","0x620"), Attr("stub","()")]), "abort", Args([]), -Blks([Blk(Tid(515, "@abort"), Attrs([Attr("address","0x620")]), Phis([]), -Defs([Def(Tid(1_250, "%000004e2"), Attrs([Attr("address","0x620"), -Attr("insn","adrp x16, #65536")]), Var("R16",Imm(64)), Int(65536,64)), -Def(Tid(1_257, "%000004e9"), Attrs([Attr("address","0x624"), -Attr("insn","ldr x17, [x16, #0xfb8]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(4024,64)),LittleEndian(),64)), -Def(Tid(1_263, "%000004ef"), Attrs([Attr("address","0x628"), -Attr("insn","add x16, x16, #0xfb8")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(4024,64)))]), Jmps([Call(Tid(1_268, "%000004f4"), - Attrs([Attr("address","0x62C"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), Sub(Tid(1_462, "@call_weak_fn"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x674")]), - "call_weak_fn", Args([Arg(Tid(1_511, "%000005e7"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("call_weak_fn_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(519, "@call_weak_fn"), - Attrs([Attr("address","0x674")]), Phis([]), Defs([Def(Tid(522, "%0000020a"), - Attrs([Attr("address","0x674"), Attr("insn","adrp x0, #65536")]), - Var("R0",Imm(64)), Int(65536,64)), Def(Tid(529, "%00000211"), - Attrs([Attr("address","0x678"), Attr("insn","ldr x0, [x0, #0xfe0]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(4064,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(535, "%00000217"), Attrs([Attr("address","0x67C"), -Attr("insn","cbz x0, #0x8")]), EQ(Var("R0",Imm(64)),Int(0,64)), -Direct(Tid(533, "%00000215"))), Goto(Tid(1_495, "%000005d7"), Attrs([]), - Int(1,1), Direct(Tid(1_022, "%000003fe")))])), Blk(Tid(533, "%00000215"), - Attrs([Attr("address","0x684")]), Phis([]), Defs([]), -Jmps([Call(Tid(541, "%0000021d"), Attrs([Attr("address","0x684"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))])), -Blk(Tid(1_022, "%000003fe"), Attrs([Attr("address","0x680")]), Phis([]), -Defs([]), Jmps([Goto(Tid(1_025, "%00000401"), Attrs([Attr("address","0x680"), -Attr("insn","b #-0x70")]), Int(1,1), -Direct(Tid(1_023, "@__gmon_start__")))])), Blk(Tid(1_023, "@__gmon_start__"), - Attrs([Attr("address","0x610")]), Phis([]), -Defs([Def(Tid(1_228, "%000004cc"), Attrs([Attr("address","0x610"), -Attr("insn","adrp x16, #65536")]), Var("R16",Imm(64)), Int(65536,64)), -Def(Tid(1_235, "%000004d3"), Attrs([Attr("address","0x614"), -Attr("insn","ldr x17, [x16, #0xfb0]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(4016,64)),LittleEndian(),64)), -Def(Tid(1_241, "%000004d9"), Attrs([Attr("address","0x618"), -Attr("insn","add x16, x16, #0xfb0")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(4016,64)))]), Jmps([Call(Tid(1_246, "%000004de"), - Attrs([Attr("address","0x61C"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), -Sub(Tid(1_464, "@deregister_tm_clones"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x690")]), - "deregister_tm_clones", Args([Arg(Tid(1_512, "%000005e8"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("deregister_tm_clones_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(547, "@deregister_tm_clones"), - Attrs([Attr("address","0x690")]), Phis([]), Defs([Def(Tid(550, "%00000226"), - Attrs([Attr("address","0x690"), Attr("insn","adrp x0, #69632")]), - Var("R0",Imm(64)), Int(69632,64)), Def(Tid(556, "%0000022c"), - Attrs([Attr("address","0x694"), Attr("insn","add x0, x0, #0x10")]), - Var("R0",Imm(64)), PLUS(Var("R0",Imm(64)),Int(16,64))), -Def(Tid(561, "%00000231"), Attrs([Attr("address","0x698"), -Attr("insn","adrp x1, #69632")]), Var("R1",Imm(64)), Int(69632,64)), -Def(Tid(567, "%00000237"), Attrs([Attr("address","0x69C"), -Attr("insn","add x1, x1, #0x10")]), Var("R1",Imm(64)), -PLUS(Var("R1",Imm(64)),Int(16,64))), Def(Tid(573, "%0000023d"), - Attrs([Attr("address","0x6A0"), Attr("insn","cmp x1, x0")]), - Var("#1",Imm(64)), NOT(Var("R0",Imm(64)))), Def(Tid(578, "%00000242"), - Attrs([Attr("address","0x6A0"), Attr("insn","cmp x1, x0")]), - Var("#2",Imm(64)), PLUS(Var("R1",Imm(64)),NOT(Var("R0",Imm(64))))), -Def(Tid(584, "%00000248"), Attrs([Attr("address","0x6A0"), -Attr("insn","cmp x1, x0")]), Var("VF",Imm(1)), -NEQ(SIGNED(65,PLUS(Var("#2",Imm(64)),Int(1,64))),PLUS(PLUS(SIGNED(65,Var("R1",Imm(64))),SIGNED(65,Var("#1",Imm(64)))),Int(1,65)))), -Def(Tid(590, "%0000024e"), Attrs([Attr("address","0x6A0"), -Attr("insn","cmp x1, x0")]), Var("CF",Imm(1)), -NEQ(UNSIGNED(65,PLUS(Var("#2",Imm(64)),Int(1,64))),PLUS(PLUS(UNSIGNED(65,Var("R1",Imm(64))),UNSIGNED(65,Var("#1",Imm(64)))),Int(1,65)))), -Def(Tid(594, "%00000252"), Attrs([Attr("address","0x6A0"), -Attr("insn","cmp x1, x0")]), Var("ZF",Imm(1)), -EQ(PLUS(Var("#2",Imm(64)),Int(1,64)),Int(0,64))), Def(Tid(598, "%00000256"), - Attrs([Attr("address","0x6A0"), Attr("insn","cmp x1, x0")]), - Var("NF",Imm(1)), Extract(63,63,PLUS(Var("#2",Imm(64)),Int(1,64))))]), -Jmps([Goto(Tid(604, "%0000025c"), Attrs([Attr("address","0x6A4"), -Attr("insn","b.eq #0x18")]), EQ(Var("ZF",Imm(1)),Int(1,1)), -Direct(Tid(602, "%0000025a"))), Goto(Tid(1_496, "%000005d8"), Attrs([]), - Int(1,1), Direct(Tid(992, "%000003e0")))])), Blk(Tid(992, "%000003e0"), - Attrs([Attr("address","0x6A8")]), Phis([]), Defs([Def(Tid(995, "%000003e3"), - Attrs([Attr("address","0x6A8"), Attr("insn","adrp x1, #65536")]), - Var("R1",Imm(64)), Int(65536,64)), Def(Tid(1_002, "%000003ea"), - Attrs([Attr("address","0x6AC"), Attr("insn","ldr x1, [x1, #0xfc8]")]), - Var("R1",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R1",Imm(64)),Int(4040,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(1_007, "%000003ef"), Attrs([Attr("address","0x6B0"), -Attr("insn","cbz x1, #0xc")]), EQ(Var("R1",Imm(64)),Int(0,64)), -Direct(Tid(602, "%0000025a"))), Goto(Tid(1_497, "%000005d9"), Attrs([]), - Int(1,1), Direct(Tid(1_011, "%000003f3")))])), Blk(Tid(602, "%0000025a"), - Attrs([Attr("address","0x6BC")]), Phis([]), Defs([]), -Jmps([Call(Tid(610, "%00000262"), Attrs([Attr("address","0x6BC"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))])), -Blk(Tid(1_011, "%000003f3"), Attrs([Attr("address","0x6B4")]), Phis([]), -Defs([Def(Tid(1_015, "%000003f7"), Attrs([Attr("address","0x6B4"), -Attr("insn","mov x16, x1")]), Var("R16",Imm(64)), Var("R1",Imm(64)))]), -Jmps([Call(Tid(1_020, "%000003fc"), Attrs([Attr("address","0x6B8"), -Attr("insn","br x16")]), Int(1,1), (Indirect(Var("R16",Imm(64))),))]))])), -Sub(Tid(1_467, "@frame_dummy"), Attrs([Attr("c.proto","signed (*)(void)"), -Attr("address","0x750")]), "frame_dummy", Args([Arg(Tid(1_513, "%000005e9"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("frame_dummy_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(762, "@frame_dummy"), - Attrs([Attr("address","0x750")]), Phis([]), Defs([]), -Jmps([Call(Tid(764, "%000002fc"), Attrs([Attr("address","0x750"), -Attr("insn","b #-0x90")]), Int(1,1), -(Direct(Tid(1_469, "@register_tm_clones")),))]))])), Sub(Tid(1_468, "@main"), - Attrs([Attr("c.proto","signed (*)(signed argc, const char** argv)"), -Attr("address","0x754")]), "main", Args([Arg(Tid(1_514, "%000005ea"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("main_argc",Imm(32)), -LOW(32,Var("R0",Imm(64))), In()), Arg(Tid(1_515, "%000005eb"), - Attrs([Attr("c.layout","**[char : 8]"), Attr("c.data","Top:u8 ptr ptr"), -Attr("c.type"," const char**")]), Var("main_argv",Imm(64)), -Var("R1",Imm(64)), Both()), Arg(Tid(1_516, "%000005ec"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("main_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(766, "@main"), - Attrs([Attr("address","0x754")]), Phis([]), Defs([Def(Tid(770, "%00000302"), - Attrs([Attr("address","0x754"), Attr("insn","sub sp, sp, #0x10")]), - Var("R31",Imm(64)), PLUS(Var("R31",Imm(64)),Int(18446744073709551600,64))), -Def(Tid(775, "%00000307"), Attrs([Attr("address","0x758"), -Attr("insn","adrp x0, #65536")]), Var("R0",Imm(64)), Int(65536,64)), -Def(Tid(782, "%0000030e"), Attrs([Attr("address","0x75C"), -Attr("insn","ldr x0, [x0, #0xfe8]")]), Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(4072,64)),LittleEndian(),64)), -Def(Tid(789, "%00000315"), Attrs([Attr("address","0x760"), -Attr("insn","ldr x0, [x0]")]), Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R0",Imm(64)),LittleEndian(),64)), -Def(Tid(797, "%0000031d"), Attrs([Attr("address","0x764"), -Attr("insn","str x0, [sp, #0x8]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),Var("R0",Imm(64)),LittleEndian(),64)), -Def(Tid(804, "%00000324"), Attrs([Attr("address","0x768"), -Attr("insn","str xzr, [sp, #0x8]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),Int(0,64),LittleEndian(),64)), -Def(Tid(809, "%00000329"), Attrs([Attr("address","0x76C"), -Attr("insn","adrp x0, #65536")]), Var("R0",Imm(64)), Int(65536,64)), -Def(Tid(816, "%00000330"), Attrs([Attr("address","0x770"), -Attr("insn","ldr x0, [x0, #0xfd8]")]), Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(4056,64)),LittleEndian(),64)), -Def(Tid(823, "%00000337"), Attrs([Attr("address","0x774"), -Attr("insn","ldr x1, [sp, #0x8]")]), Var("R1",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(831, "%0000033f"), Attrs([Attr("address","0x778"), -Attr("insn","str x1, [x0]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("R0",Imm(64)),Var("R1",Imm(64)),LittleEndian(),64)), -Def(Tid(836, "%00000344"), Attrs([Attr("address","0x77C"), -Attr("insn","adrp x0, #65536")]), Var("R0",Imm(64)), Int(65536,64)), -Def(Tid(843, "%0000034b"), Attrs([Attr("address","0x780"), -Attr("insn","ldr x0, [x0, #0xfe8]")]), Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(4072,64)),LittleEndian(),64)), -Def(Tid(850, "%00000352"), Attrs([Attr("address","0x784"), -Attr("insn","ldr x0, [x0]")]), Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R0",Imm(64)),LittleEndian(),64)), -Def(Tid(858, "%0000035a"), Attrs([Attr("address","0x788"), -Attr("insn","str x0, [sp, #0x8]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),Var("R0",Imm(64)),LittleEndian(),64)), -Def(Tid(863, "%0000035f"), Attrs([Attr("address","0x78C"), -Attr("insn","adrp x0, #65536")]), Var("R0",Imm(64)), Int(65536,64)), -Def(Tid(870, "%00000366"), Attrs([Attr("address","0x790"), -Attr("insn","ldr x0, [x0, #0xfd8]")]), Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(4056,64)),LittleEndian(),64)), -Def(Tid(877, "%0000036d"), Attrs([Attr("address","0x794"), -Attr("insn","ldr x1, [sp, #0x8]")]), Var("R1",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(885, "%00000375"), Attrs([Attr("address","0x798"), -Attr("insn","str x1, [x0]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("R0",Imm(64)),Var("R1",Imm(64)),LittleEndian(),64)), -Def(Tid(890, "%0000037a"), Attrs([Attr("address","0x79C"), -Attr("insn","mov w0, #0x0")]), Var("R0",Imm(64)), Int(0,64)), -Def(Tid(896, "%00000380"), Attrs([Attr("address","0x7A0"), -Attr("insn","add sp, sp, #0x10")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(16,64)))]), Jmps([Call(Tid(901, "%00000385"), - Attrs([Attr("address","0x7A4"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), -Sub(Tid(1_469, "@register_tm_clones"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x6C0")]), - "register_tm_clones", Args([Arg(Tid(1_517, "%000005ed"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("register_tm_clones_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(612, "@register_tm_clones"), Attrs([Attr("address","0x6C0")]), - Phis([]), Defs([Def(Tid(615, "%00000267"), Attrs([Attr("address","0x6C0"), -Attr("insn","adrp x0, #69632")]), Var("R0",Imm(64)), Int(69632,64)), -Def(Tid(621, "%0000026d"), Attrs([Attr("address","0x6C4"), -Attr("insn","add x0, x0, #0x10")]), Var("R0",Imm(64)), -PLUS(Var("R0",Imm(64)),Int(16,64))), Def(Tid(626, "%00000272"), - Attrs([Attr("address","0x6C8"), Attr("insn","adrp x1, #69632")]), - Var("R1",Imm(64)), Int(69632,64)), Def(Tid(632, "%00000278"), - Attrs([Attr("address","0x6CC"), Attr("insn","add x1, x1, #0x10")]), - Var("R1",Imm(64)), PLUS(Var("R1",Imm(64)),Int(16,64))), -Def(Tid(639, "%0000027f"), Attrs([Attr("address","0x6D0"), -Attr("insn","sub x1, x1, x0")]), Var("R1",Imm(64)), -PLUS(PLUS(Var("R1",Imm(64)),NOT(Var("R0",Imm(64)))),Int(1,64))), -Def(Tid(645, "%00000285"), Attrs([Attr("address","0x6D4"), -Attr("insn","lsr x2, x1, #63")]), Var("R2",Imm(64)), -Concat(Int(0,63),Extract(63,63,Var("R1",Imm(64))))), -Def(Tid(652, "%0000028c"), Attrs([Attr("address","0x6D8"), -Attr("insn","add x1, x2, x1, asr #3")]), Var("R1",Imm(64)), -PLUS(Var("R2",Imm(64)),ARSHIFT(Var("R1",Imm(64)),Int(3,3)))), -Def(Tid(658, "%00000292"), Attrs([Attr("address","0x6DC"), -Attr("insn","asr x1, x1, #1")]), Var("R1",Imm(64)), -SIGNED(64,Extract(63,1,Var("R1",Imm(64)))))]), -Jmps([Goto(Tid(664, "%00000298"), Attrs([Attr("address","0x6E0"), -Attr("insn","cbz x1, #0x18")]), EQ(Var("R1",Imm(64)),Int(0,64)), -Direct(Tid(662, "%00000296"))), Goto(Tid(1_498, "%000005da"), Attrs([]), - Int(1,1), Direct(Tid(962, "%000003c2")))])), Blk(Tid(962, "%000003c2"), - Attrs([Attr("address","0x6E4")]), Phis([]), Defs([Def(Tid(965, "%000003c5"), - Attrs([Attr("address","0x6E4"), Attr("insn","adrp x2, #65536")]), - Var("R2",Imm(64)), Int(65536,64)), Def(Tid(972, "%000003cc"), - Attrs([Attr("address","0x6E8"), Attr("insn","ldr x2, [x2, #0xff8]")]), - Var("R2",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R2",Imm(64)),Int(4088,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(977, "%000003d1"), Attrs([Attr("address","0x6EC"), -Attr("insn","cbz x2, #0xc")]), EQ(Var("R2",Imm(64)),Int(0,64)), -Direct(Tid(662, "%00000296"))), Goto(Tid(1_499, "%000005db"), Attrs([]), - Int(1,1), Direct(Tid(981, "%000003d5")))])), Blk(Tid(662, "%00000296"), - Attrs([Attr("address","0x6F8")]), Phis([]), Defs([]), -Jmps([Call(Tid(670, "%0000029e"), Attrs([Attr("address","0x6F8"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))])), -Blk(Tid(981, "%000003d5"), Attrs([Attr("address","0x6F0")]), Phis([]), -Defs([Def(Tid(985, "%000003d9"), Attrs([Attr("address","0x6F0"), -Attr("insn","mov x16, x2")]), Var("R16",Imm(64)), Var("R2",Imm(64)))]), -Jmps([Call(Tid(990, "%000003de"), Attrs([Attr("address","0x6F4"), -Attr("insn","br x16")]), Int(1,1), -(Indirect(Var("R16",Imm(64))),))]))]))]))) \ No newline at end of file diff --git a/src/test/incorrect/basicassign2/gcc_pic/basicassign2.bir b/src/test/incorrect/basicassign2/gcc_pic/basicassign2.bir deleted file mode 100644 index bc10803be..000000000 --- a/src/test/incorrect/basicassign2/gcc_pic/basicassign2.bir +++ /dev/null @@ -1,243 +0,0 @@ -000005dc: program -000005aa: sub __cxa_finalize(__cxa_finalize_result) -000005dd: __cxa_finalize_result :: out u32 = low:32[R0] - -000003be: -000004b6: R16 := 0x10000 -000004bd: R17 := mem[R16 + 0xFA8, el]:u64 -000004c3: R16 := R16 + 0xFA8 -000004c8: call R17 with noreturn - -000005ab: sub __do_global_dtors_aux(__do_global_dtors_aux_result) -000005de: __do_global_dtors_aux_result :: out u32 = low:32[R0] - -000002a2: -000002a6: #3 := R31 - 0x20 -000002ac: mem := mem with [#3, el]:u64 <- R29 -000002b2: mem := mem with [#3 + 8, el]:u64 <- R30 -000002b6: R31 := #3 -000002bc: R29 := R31 -000002c4: mem := mem with [R31 + 0x10, el]:u64 <- R19 -000002c9: R19 := 0x11000 -000002d0: R0 := pad:64[mem[R19 + 0x10]] -000002d7: when 31:0[R0] <> 0 goto %000002d5 -000005d2: goto %00000387 - -00000387: -0000038a: R0 := 0x10000 -00000391: R0 := mem[R0 + 0xFD0, el]:u64 -00000397: when R0 = 0 goto %00000395 -000005d3: goto %000003ae - -000003ae: -000003b1: R0 := 0x11000 -000003b8: R0 := mem[R0 + 8, el]:u64 -000003bd: R30 := 0x730 -000003c0: call @__cxa_finalize with return %00000395 - -00000395: -0000039d: R30 := 0x734 -0000039f: call @deregister_tm_clones with return %000003a1 - -000003a1: -000003a4: R0 := 1 -000003ac: mem := mem with [R19 + 0x10] <- 7:0[R0] -000005d4: goto %000002d5 - -000002d5: -000002df: R19 := mem[R31 + 0x10, el]:u64 -000002e6: R29 := mem[R31, el]:u64 -000002eb: R30 := mem[R31 + 8, el]:u64 -000002ef: R31 := R31 + 0x20 -000002f4: call R30 with noreturn - -000005af: sub __libc_start_main(__libc_start_main_main, __libc_start_main_arg2, __libc_start_main_arg3, __libc_start_main_auxv, __libc_start_main_result) -000005df: __libc_start_main_main :: in u64 = R0 -000005e0: __libc_start_main_arg2 :: in u32 = low:32[R1] -000005e1: __libc_start_main_arg3 :: in out u64 = R2 -000005e2: __libc_start_main_auxv :: in out u64 = R3 -000005e3: __libc_start_main_result :: out u32 = low:32[R0] - -000001fb: -000004a0: R16 := 0x10000 -000004a7: R17 := mem[R16 + 0xFA0, el]:u64 -000004ad: R16 := R16 + 0xFA0 -000004b2: call R17 with noreturn - -000005b0: sub _fini(_fini_result) -000005e4: _fini_result :: out u32 = low:32[R0] - -0000001f: -00000025: #0 := R31 - 0x10 -0000002b: mem := mem with [#0, el]:u64 <- R29 -00000031: mem := mem with [#0 + 8, el]:u64 <- R30 -00000035: R31 := #0 -0000003b: R29 := R31 -00000042: R29 := mem[R31, el]:u64 -00000047: R30 := mem[R31 + 8, el]:u64 -0000004b: R31 := R31 + 0x10 -00000050: call R30 with noreturn - -000005b1: sub _init(_init_result) -000005e5: _init_result :: out u32 = low:32[R0] - -00000510: -00000516: #5 := R31 - 0x10 -0000051c: mem := mem with [#5, el]:u64 <- R29 -00000522: mem := mem with [#5 + 8, el]:u64 <- R30 -00000526: R31 := #5 -0000052c: R29 := R31 -00000531: R30 := 0x5C0 -00000533: call @call_weak_fn with return %00000535 - -00000535: -0000053a: R29 := mem[R31, el]:u64 -0000053f: R30 := mem[R31 + 8, el]:u64 -00000543: R31 := R31 + 0x10 -00000548: call R30 with noreturn - -000005b2: sub _start(_start_result) -000005e6: _start_result :: out u32 = low:32[R0] - -000001bc: -000001c1: R29 := 0 -000001c6: R30 := 0 -000001cc: R5 := R0 -000001d3: R1 := mem[R31, el]:u64 -000001d9: R2 := R31 + 8 -000001df: R6 := R31 -000001e4: R0 := 0x10000 -000001eb: R0 := mem[R0 + 0xFF0, el]:u64 -000001f0: R3 := 0 -000001f5: R4 := 0 -000001fa: R30 := 0x670 -000001fd: call @__libc_start_main with return %000001ff - -000001ff: -00000202: R30 := 0x674 -00000205: call @abort with return %000005d5 - -000005d5: -000005d6: call @call_weak_fn with noreturn - -000005b5: sub abort() - - -00000203: -000004e2: R16 := 0x10000 -000004e9: R17 := mem[R16 + 0xFB8, el]:u64 -000004ef: R16 := R16 + 0xFB8 -000004f4: call R17 with noreturn - -000005b6: sub call_weak_fn(call_weak_fn_result) -000005e7: call_weak_fn_result :: out u32 = low:32[R0] - -00000207: -0000020a: R0 := 0x10000 -00000211: R0 := mem[R0 + 0xFE0, el]:u64 -00000217: when R0 = 0 goto %00000215 -000005d7: goto %000003fe - -00000215: -0000021d: call R30 with noreturn - -000003fe: -00000401: goto @__gmon_start__ - -000003ff: -000004cc: R16 := 0x10000 -000004d3: R17 := mem[R16 + 0xFB0, el]:u64 -000004d9: R16 := R16 + 0xFB0 -000004de: call R17 with noreturn - -000005b8: sub deregister_tm_clones(deregister_tm_clones_result) -000005e8: deregister_tm_clones_result :: out u32 = low:32[R0] - -00000223: -00000226: R0 := 0x11000 -0000022c: R0 := R0 + 0x10 -00000231: R1 := 0x11000 -00000237: R1 := R1 + 0x10 -0000023d: #1 := ~R0 -00000242: #2 := R1 + ~R0 -00000248: VF := extend:65[#2 + 1] <> extend:65[R1] + extend:65[#1] + 1 -0000024e: CF := pad:65[#2 + 1] <> pad:65[R1] + pad:65[#1] + 1 -00000252: ZF := #2 + 1 = 0 -00000256: NF := 63:63[#2 + 1] -0000025c: when ZF goto %0000025a -000005d8: goto %000003e0 - -000003e0: -000003e3: R1 := 0x10000 -000003ea: R1 := mem[R1 + 0xFC8, el]:u64 -000003ef: when R1 = 0 goto %0000025a -000005d9: goto %000003f3 - -0000025a: -00000262: call R30 with noreturn - -000003f3: -000003f7: R16 := R1 -000003fc: call R16 with noreturn - -000005bb: sub frame_dummy(frame_dummy_result) -000005e9: frame_dummy_result :: out u32 = low:32[R0] - -000002fa: -000002fc: call @register_tm_clones with noreturn - -000005bc: sub main(main_argc, main_argv, main_result) -000005ea: main_argc :: in u32 = low:32[R0] -000005eb: main_argv :: in out u64 = R1 -000005ec: main_result :: out u32 = low:32[R0] - -000002fe: -00000302: R31 := R31 - 0x10 -00000307: R0 := 0x10000 -0000030e: R0 := mem[R0 + 0xFE8, el]:u64 -00000315: R0 := mem[R0, el]:u64 -0000031d: mem := mem with [R31 + 8, el]:u64 <- R0 -00000324: mem := mem with [R31 + 8, el]:u64 <- 0 -00000329: R0 := 0x10000 -00000330: R0 := mem[R0 + 0xFD8, el]:u64 -00000337: R1 := mem[R31 + 8, el]:u64 -0000033f: mem := mem with [R0, el]:u64 <- R1 -00000344: R0 := 0x10000 -0000034b: R0 := mem[R0 + 0xFE8, el]:u64 -00000352: R0 := mem[R0, el]:u64 -0000035a: mem := mem with [R31 + 8, el]:u64 <- R0 -0000035f: R0 := 0x10000 -00000366: R0 := mem[R0 + 0xFD8, el]:u64 -0000036d: R1 := mem[R31 + 8, el]:u64 -00000375: mem := mem with [R0, el]:u64 <- R1 -0000037a: R0 := 0 -00000380: R31 := R31 + 0x10 -00000385: call R30 with noreturn - -000005bd: sub register_tm_clones(register_tm_clones_result) -000005ed: register_tm_clones_result :: out u32 = low:32[R0] - -00000264: -00000267: R0 := 0x11000 -0000026d: R0 := R0 + 0x10 -00000272: R1 := 0x11000 -00000278: R1 := R1 + 0x10 -0000027f: R1 := R1 + ~R0 + 1 -00000285: R2 := 0.63:63[R1] -0000028c: R1 := R2 + (R1 ~>> 3) -00000292: R1 := extend:64[63:1[R1]] -00000298: when R1 = 0 goto %00000296 -000005da: goto %000003c2 - -000003c2: -000003c5: R2 := 0x10000 -000003cc: R2 := mem[R2 + 0xFF8, el]:u64 -000003d1: when R2 = 0 goto %00000296 -000005db: goto %000003d5 - -00000296: -0000029e: call R30 with noreturn - -000003d5: -000003d9: R16 := R2 -000003de: call R16 with noreturn diff --git a/src/test/incorrect/basicassign2/gcc_pic/basicassign2.expected b/src/test/incorrect/basicassign2/gcc_pic/basicassign2.expected index bbeca733b..7c03ef65c 100644 --- a/src/test/incorrect/basicassign2/gcc_pic/basicassign2.expected +++ b/src/test/incorrect/basicassign2/gcc_pic/basicassign2.expected @@ -1,17 +1,15 @@ var {:extern} Gamma_R0: bool; var {:extern} Gamma_R1: bool; -var {:extern} Gamma_R31: bool; +var {:extern} Gamma_R2: bool; var {:extern} Gamma_mem: [bv64]bool; -var {:extern} Gamma_stack: [bv64]bool; var {:extern} R0: bv64; var {:extern} R1: bv64; -var {:extern} R31: bv64; +var {:extern} R2: bv64; var {:extern} mem: [bv64]bv8; -var {:extern} stack: [bv64]bv8; const {:extern} $secret_addr: bv64; -axiom ($secret_addr == 69664bv64); +axiom ($secret_addr == 4325400bv64); const {:extern} $z_addr: bv64; -axiom ($z_addr == 69656bv64); +axiom ($z_addr == 4325408bv64); function {:extern} L(mem$in: [bv64]bv8, index: bv64) returns (bool) { (if (index == $z_addr) then true else (if (index == $secret_addr) then false else false)) } @@ -41,13 +39,7 @@ procedure {:extern} rely(); modifies Gamma_mem, mem; ensures (Gamma_mem == old(Gamma_mem)); ensures (mem == old(mem)); - free ensures (memory_load32_le(mem, 1980bv64) == 131073bv32); - free ensures (memory_load64_le(mem, 69000bv64) == 1872bv64); - free ensures (memory_load64_le(mem, 69008bv64) == 1792bv64); - free ensures (memory_load64_le(mem, 69592bv64) == 69656bv64); - free ensures (memory_load64_le(mem, 69608bv64) == 69664bv64); - free ensures (memory_load64_le(mem, 69616bv64) == 1876bv64); - free ensures (memory_load64_le(mem, 69640bv64) == 69640bv64); + free ensures (memory_load32_le(mem, 4196312bv64) == 131073bv32); procedure {:extern} rely_transitive(); modifies Gamma_mem, mem; @@ -65,93 +57,41 @@ procedure {:extern} rely_reflexive(); procedure {:extern} guarantee_reflexive(); modifies Gamma_mem, mem; -procedure main_1876(); - modifies Gamma_R0, Gamma_R1, Gamma_R31, Gamma_mem, Gamma_stack, R0, R1, R31, mem, stack; - free requires (memory_load64_le(mem, 69632bv64) == 0bv64); - free requires (memory_load64_le(mem, 69640bv64) == 69640bv64); - free requires (memory_load32_le(mem, 1980bv64) == 131073bv32); - free requires (memory_load64_le(mem, 69000bv64) == 1872bv64); - free requires (memory_load64_le(mem, 69008bv64) == 1792bv64); - free requires (memory_load64_le(mem, 69592bv64) == 69656bv64); - free requires (memory_load64_le(mem, 69608bv64) == 69664bv64); - free requires (memory_load64_le(mem, 69616bv64) == 1876bv64); - free requires (memory_load64_le(mem, 69640bv64) == 69640bv64); - free ensures (Gamma_R31 == old(Gamma_R31)); - free ensures (R31 == old(R31)); - free ensures (memory_load32_le(mem, 1980bv64) == 131073bv32); - free ensures (memory_load64_le(mem, 69000bv64) == 1872bv64); - free ensures (memory_load64_le(mem, 69008bv64) == 1792bv64); - free ensures (memory_load64_le(mem, 69592bv64) == 69656bv64); - free ensures (memory_load64_le(mem, 69608bv64) == 69664bv64); - free ensures (memory_load64_le(mem, 69616bv64) == 1876bv64); - free ensures (memory_load64_le(mem, 69640bv64) == 69640bv64); +procedure main(); + modifies Gamma_R0, Gamma_R1, Gamma_R2, Gamma_mem, R0, R1, R2, mem; + free requires (memory_load64_le(mem, 4325376bv64) == 0bv64); + free requires (memory_load64_le(mem, 4325384bv64) == 0bv64); + free requires (memory_load32_le(mem, 4196312bv64) == 131073bv32); + free ensures (memory_load32_le(mem, 4196312bv64) == 131073bv32); -implementation main_1876() +implementation main() { - var Gamma_load18: bool; - var Gamma_load19: bool; - var Gamma_load20: bool; - var Gamma_load21: bool; - var Gamma_load22: bool; - var Gamma_load23: bool; - var Gamma_load24: bool; - var Gamma_load25: bool; - var load18: bv64; - var load19: bv64; - var load20: bv64; - var load21: bv64; - var load22: bv64; - var load23: bv64; - var load24: bv64; - var load25: bv64; + var $load$14: bv64; + var $load$15: bv64; + var $load$16: bv64; + var Gamma_$load$14: bool; + var Gamma_$load$15: bool; + var Gamma_$load$16: bool; lmain: assume {:captureState "lmain"} true; - R31, Gamma_R31 := bvadd64(R31, 18446744073709551600bv64), Gamma_R31; - R0, Gamma_R0 := 65536bv64, true; - call rely(); - load18, Gamma_load18 := memory_load64_le(mem, bvadd64(R0, 4072bv64)), (gamma_load64(Gamma_mem, bvadd64(R0, 4072bv64)) || L(mem, bvadd64(R0, 4072bv64))); - R0, Gamma_R0 := load18, Gamma_load18; - call rely(); - load19, Gamma_load19 := memory_load64_le(mem, R0), (gamma_load64(Gamma_mem, R0) || L(mem, R0)); - R0, Gamma_R0 := load19, Gamma_load19; - stack, Gamma_stack := memory_store64_le(stack, bvadd64(R31, 8bv64), R0), gamma_store64(Gamma_stack, bvadd64(R31, 8bv64), Gamma_R0); - assume {:captureState "%0000031d"} true; - stack, Gamma_stack := memory_store64_le(stack, bvadd64(R31, 8bv64), 0bv64), gamma_store64(Gamma_stack, bvadd64(R31, 8bv64), true); - assume {:captureState "%00000324"} true; - R0, Gamma_R0 := 65536bv64, true; - call rely(); - load20, Gamma_load20 := memory_load64_le(mem, bvadd64(R0, 4056bv64)), (gamma_load64(Gamma_mem, bvadd64(R0, 4056bv64)) || L(mem, bvadd64(R0, 4056bv64))); - R0, Gamma_R0 := load20, Gamma_load20; - load21, Gamma_load21 := memory_load64_le(stack, bvadd64(R31, 8bv64)), gamma_load64(Gamma_stack, bvadd64(R31, 8bv64)); - R1, Gamma_R1 := load21, Gamma_load21; - call rely(); - assert (L(mem, R0) ==> Gamma_R1); - mem, Gamma_mem := memory_store64_le(mem, R0, R1), gamma_store64(Gamma_mem, R0, Gamma_R1); - assume {:captureState "%0000033f"} true; - R0, Gamma_R0 := 65536bv64, true; + R1, Gamma_R1 := 4321280bv64, true; + R0, Gamma_R0 := 0bv64, true; call rely(); - load22, Gamma_load22 := memory_load64_le(mem, bvadd64(R0, 4072bv64)), (gamma_load64(Gamma_mem, bvadd64(R0, 4072bv64)) || L(mem, bvadd64(R0, 4072bv64))); - R0, Gamma_R0 := load22, Gamma_load22; + $load$14, Gamma_$load$14 := memory_load64_le(mem, bvadd64(R1, 4080bv64)), (gamma_load64(Gamma_mem, bvadd64(R1, 4080bv64)) || L(mem, bvadd64(R1, 4080bv64))); + R2, Gamma_R2 := $load$14, Gamma_$load$14; call rely(); - load23, Gamma_load23 := memory_load64_le(mem, R0), (gamma_load64(Gamma_mem, R0) || L(mem, R0)); - R0, Gamma_R0 := load23, Gamma_load23; - stack, Gamma_stack := memory_store64_le(stack, bvadd64(R31, 8bv64), R0), gamma_store64(Gamma_stack, bvadd64(R31, 8bv64), Gamma_R0); - assume {:captureState "%0000035a"} true; - R0, Gamma_R0 := 65536bv64, true; + $load$15, Gamma_$load$15 := memory_load64_le(mem, bvadd64(R1, 4064bv64)), (gamma_load64(Gamma_mem, bvadd64(R1, 4064bv64)) || L(mem, bvadd64(R1, 4064bv64))); + R1, Gamma_R1 := $load$15, Gamma_$load$15; call rely(); - load24, Gamma_load24 := memory_load64_le(mem, bvadd64(R0, 4056bv64)), (gamma_load64(Gamma_mem, bvadd64(R0, 4056bv64)) || L(mem, bvadd64(R0, 4056bv64))); - R0, Gamma_R0 := load24, Gamma_load24; - load25, Gamma_load25 := memory_load64_le(stack, bvadd64(R31, 8bv64)), gamma_load64(Gamma_stack, bvadd64(R31, 8bv64)); - R1, Gamma_R1 := load25, Gamma_load25; + $load$16, Gamma_$load$16 := memory_load64_le(mem, R2), (gamma_load64(Gamma_mem, R2) || L(mem, R2)); + R2, Gamma_R2 := $load$16, Gamma_$load$16; call rely(); - assert (L(mem, R0) ==> Gamma_R1); - mem, Gamma_mem := memory_store64_le(mem, R0, R1), gamma_store64(Gamma_mem, R0, Gamma_R1); - assume {:captureState "%00000375"} true; - R0, Gamma_R0 := 0bv64, true; - R31, Gamma_R31 := bvadd64(R31, 16bv64), Gamma_R31; - goto main_1876_basil_return; - main_1876_basil_return: - assume {:captureState "main_1876_basil_return"} true; + assert (L(mem, R1) ==> Gamma_R2); + mem, Gamma_mem := memory_store64_le(mem, R1, R2), gamma_store64(Gamma_mem, R1, Gamma_R2); + assume {:captureState "%0000025c"} true; + goto main_basil_return; + main_basil_return: + assume {:captureState "main_basil_return"} true; return; } diff --git a/src/test/incorrect/basicassign2/gcc_pic/basicassign2.gts b/src/test/incorrect/basicassign2/gcc_pic/basicassign2.gts deleted file mode 100644 index e1c741564..000000000 Binary files a/src/test/incorrect/basicassign2/gcc_pic/basicassign2.gts and /dev/null differ diff --git a/src/test/incorrect/basicassign2/gcc_pic/basicassign2.md5sum b/src/test/incorrect/basicassign2/gcc_pic/basicassign2.md5sum new file mode 100644 index 000000000..10c9aa02d --- /dev/null +++ b/src/test/incorrect/basicassign2/gcc_pic/basicassign2.md5sum @@ -0,0 +1,5 @@ +292aac63ddf2f4e716de8d52778cf1d6 incorrect/basicassign2/gcc_pic/a.out +efd92c305a85865e7e856245b7de9ae4 incorrect/basicassign2/gcc_pic/basicassign2.adt +2a7522776af7087d062cb7070d5ea9d2 incorrect/basicassign2/gcc_pic/basicassign2.bir +dcf972da809769f4fcf4ac750b869ebb incorrect/basicassign2/gcc_pic/basicassign2.relf +85582b816254a5f69b5a8b3f9e3f86d0 incorrect/basicassign2/gcc_pic/basicassign2.gts diff --git a/src/test/incorrect/basicassign2/gcc_pic/basicassign2.relf b/src/test/incorrect/basicassign2/gcc_pic/basicassign2.relf deleted file mode 100644 index e539c5279..000000000 --- a/src/test/incorrect/basicassign2/gcc_pic/basicassign2.relf +++ /dev/null @@ -1,124 +0,0 @@ - -Relocation section '.rela.dyn' at offset 0x460 contains 10 entries: - Offset Info Type Symbol's Value Symbol's Name + Addend -0000000000010d88 0000000000000403 R_AARCH64_RELATIVE 750 -0000000000010d90 0000000000000403 R_AARCH64_RELATIVE 700 -0000000000010fd8 0000000000000403 R_AARCH64_RELATIVE 11018 -0000000000010fe8 0000000000000403 R_AARCH64_RELATIVE 11020 -0000000000010ff0 0000000000000403 R_AARCH64_RELATIVE 754 -0000000000011008 0000000000000403 R_AARCH64_RELATIVE 11008 -0000000000010fc8 0000000400000401 R_AARCH64_GLOB_DAT 0000000000000000 _ITM_deregisterTMCloneTable + 0 -0000000000010fd0 0000000500000401 R_AARCH64_GLOB_DAT 0000000000000000 __cxa_finalize@GLIBC_2.17 + 0 -0000000000010fe0 0000000600000401 R_AARCH64_GLOB_DAT 0000000000000000 __gmon_start__ + 0 -0000000000010ff8 0000000800000401 R_AARCH64_GLOB_DAT 0000000000000000 _ITM_registerTMCloneTable + 0 - -Relocation section '.rela.plt' at offset 0x550 contains 4 entries: - Offset Info Type Symbol's Value Symbol's Name + Addend -0000000000010fa0 0000000300000402 R_AARCH64_JUMP_SLOT 0000000000000000 __libc_start_main@GLIBC_2.34 + 0 -0000000000010fa8 0000000500000402 R_AARCH64_JUMP_SLOT 0000000000000000 __cxa_finalize@GLIBC_2.17 + 0 -0000000000010fb0 0000000600000402 R_AARCH64_JUMP_SLOT 0000000000000000 __gmon_start__ + 0 -0000000000010fb8 0000000700000402 R_AARCH64_JUMP_SLOT 0000000000000000 abort@GLIBC_2.17 + 0 - -Symbol table '.dynsym' contains 9 entries: - Num: Value Size Type Bind Vis Ndx Name - 0: 0000000000000000 0 NOTYPE LOCAL DEFAULT UND - 1: 00000000000005b0 0 SECTION LOCAL DEFAULT 11 .init - 2: 0000000000011000 0 SECTION LOCAL DEFAULT 22 .data - 3: 0000000000000000 0 FUNC GLOBAL DEFAULT UND __libc_start_main@GLIBC_2.34 (2) - 4: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_deregisterTMCloneTable - 5: 0000000000000000 0 FUNC WEAK DEFAULT UND __cxa_finalize@GLIBC_2.17 (3) - 6: 0000000000000000 0 NOTYPE WEAK DEFAULT UND __gmon_start__ - 7: 0000000000000000 0 FUNC GLOBAL DEFAULT UND abort@GLIBC_2.17 (3) - 8: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_registerTMCloneTable - -Symbol table '.symtab' contains 89 entries: - Num: Value Size Type Bind Vis Ndx Name - 0: 0000000000000000 0 NOTYPE LOCAL DEFAULT UND - 1: 0000000000000238 0 SECTION LOCAL DEFAULT 1 .interp - 2: 0000000000000254 0 SECTION LOCAL DEFAULT 2 .note.gnu.build-id - 3: 0000000000000278 0 SECTION LOCAL DEFAULT 3 .note.ABI-tag - 4: 0000000000000298 0 SECTION LOCAL DEFAULT 4 .gnu.hash - 5: 00000000000002b8 0 SECTION LOCAL DEFAULT 5 .dynsym - 6: 0000000000000390 0 SECTION LOCAL DEFAULT 6 .dynstr - 7: 000000000000041e 0 SECTION LOCAL DEFAULT 7 .gnu.version - 8: 0000000000000430 0 SECTION LOCAL DEFAULT 8 .gnu.version_r - 9: 0000000000000460 0 SECTION LOCAL DEFAULT 9 .rela.dyn - 10: 0000000000000550 0 SECTION LOCAL DEFAULT 10 .rela.plt - 11: 00000000000005b0 0 SECTION LOCAL DEFAULT 11 .init - 12: 00000000000005d0 0 SECTION LOCAL DEFAULT 12 .plt - 13: 0000000000000640 0 SECTION LOCAL DEFAULT 13 .text - 14: 00000000000007a8 0 SECTION LOCAL DEFAULT 14 .fini - 15: 00000000000007bc 0 SECTION LOCAL DEFAULT 15 .rodata - 16: 00000000000007c0 0 SECTION LOCAL DEFAULT 16 .eh_frame_hdr - 17: 0000000000000800 0 SECTION LOCAL DEFAULT 17 .eh_frame - 18: 0000000000010d88 0 SECTION LOCAL DEFAULT 18 .init_array - 19: 0000000000010d90 0 SECTION LOCAL DEFAULT 19 .fini_array - 20: 0000000000010d98 0 SECTION LOCAL DEFAULT 20 .dynamic - 21: 0000000000010f88 0 SECTION LOCAL DEFAULT 21 .got - 22: 0000000000011000 0 SECTION LOCAL DEFAULT 22 .data - 23: 0000000000011010 0 SECTION LOCAL DEFAULT 23 .bss - 24: 0000000000000000 0 SECTION LOCAL DEFAULT 24 .comment - 25: 0000000000000000 0 FILE LOCAL DEFAULT ABS Scrt1.o - 26: 0000000000000278 0 NOTYPE LOCAL DEFAULT 3 $d - 27: 0000000000000278 32 OBJECT LOCAL DEFAULT 3 __abi_tag - 28: 0000000000000640 0 NOTYPE LOCAL DEFAULT 13 $x - 29: 0000000000000814 0 NOTYPE LOCAL DEFAULT 17 $d - 30: 00000000000007bc 0 NOTYPE LOCAL DEFAULT 15 $d - 31: 0000000000000000 0 FILE LOCAL DEFAULT ABS crti.o - 32: 0000000000000674 0 NOTYPE LOCAL DEFAULT 13 $x - 33: 0000000000000674 20 FUNC LOCAL DEFAULT 13 call_weak_fn - 34: 00000000000005b0 0 NOTYPE LOCAL DEFAULT 11 $x - 35: 00000000000007a8 0 NOTYPE LOCAL DEFAULT 14 $x - 36: 0000000000000000 0 FILE LOCAL DEFAULT ABS crtn.o - 37: 00000000000005c0 0 NOTYPE LOCAL DEFAULT 11 $x - 38: 00000000000007b4 0 NOTYPE LOCAL DEFAULT 14 $x - 39: 0000000000000000 0 FILE LOCAL DEFAULT ABS crtstuff.c - 40: 0000000000000690 0 NOTYPE LOCAL DEFAULT 13 $x - 41: 0000000000000690 0 FUNC LOCAL DEFAULT 13 deregister_tm_clones - 42: 00000000000006c0 0 FUNC LOCAL DEFAULT 13 register_tm_clones - 43: 0000000000011008 0 NOTYPE LOCAL DEFAULT 22 $d - 44: 0000000000000700 0 FUNC LOCAL DEFAULT 13 __do_global_dtors_aux - 45: 0000000000011010 1 OBJECT LOCAL DEFAULT 23 completed.0 - 46: 0000000000010d90 0 NOTYPE LOCAL DEFAULT 19 $d - 47: 0000000000010d90 0 OBJECT LOCAL DEFAULT 19 __do_global_dtors_aux_fini_array_entry - 48: 0000000000000750 0 FUNC LOCAL DEFAULT 13 frame_dummy - 49: 0000000000010d88 0 NOTYPE LOCAL DEFAULT 18 $d - 50: 0000000000010d88 0 OBJECT LOCAL DEFAULT 18 __frame_dummy_init_array_entry - 51: 0000000000000828 0 NOTYPE LOCAL DEFAULT 17 $d - 52: 0000000000011010 0 NOTYPE LOCAL DEFAULT 23 $d - 53: 0000000000000000 0 FILE LOCAL DEFAULT ABS basicassign2.c - 54: 0000000000011018 0 NOTYPE LOCAL DEFAULT 23 $d - 55: 0000000000000754 0 NOTYPE LOCAL DEFAULT 13 $x - 56: 0000000000000888 0 NOTYPE LOCAL DEFAULT 17 $d - 57: 0000000000000000 0 FILE LOCAL DEFAULT ABS crtstuff.c - 58: 00000000000008a0 0 NOTYPE LOCAL DEFAULT 17 $d - 59: 00000000000008a0 0 OBJECT LOCAL DEFAULT 17 __FRAME_END__ - 60: 0000000000000000 0 FILE LOCAL DEFAULT ABS - 61: 0000000000010d98 0 OBJECT LOCAL DEFAULT ABS _DYNAMIC - 62: 00000000000007c0 0 NOTYPE LOCAL DEFAULT 16 __GNU_EH_FRAME_HDR - 63: 0000000000010fc0 0 OBJECT LOCAL DEFAULT ABS _GLOBAL_OFFSET_TABLE_ - 64: 00000000000005d0 0 NOTYPE LOCAL DEFAULT 12 $x - 65: 0000000000000000 0 FUNC GLOBAL DEFAULT UND __libc_start_main@GLIBC_2.34 - 66: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_deregisterTMCloneTable - 67: 0000000000011000 0 NOTYPE WEAK DEFAULT 22 data_start - 68: 0000000000011010 0 NOTYPE GLOBAL DEFAULT 23 __bss_start__ - 69: 0000000000000000 0 FUNC WEAK DEFAULT UND __cxa_finalize@GLIBC_2.17 - 70: 0000000000011028 0 NOTYPE GLOBAL DEFAULT 23 _bss_end__ - 71: 0000000000011010 0 NOTYPE GLOBAL DEFAULT 22 _edata - 72: 0000000000011018 8 OBJECT GLOBAL DEFAULT 23 z - 73: 00000000000007a8 0 FUNC GLOBAL HIDDEN 14 _fini - 74: 0000000000011028 0 NOTYPE GLOBAL DEFAULT 23 __bss_end__ - 75: 0000000000011000 0 NOTYPE GLOBAL DEFAULT 22 __data_start - 76: 0000000000000000 0 NOTYPE WEAK DEFAULT UND __gmon_start__ - 77: 0000000000011008 0 OBJECT GLOBAL HIDDEN 22 __dso_handle - 78: 0000000000000000 0 FUNC GLOBAL DEFAULT UND abort@GLIBC_2.17 - 79: 00000000000007bc 4 OBJECT GLOBAL DEFAULT 15 _IO_stdin_used - 80: 0000000000011020 8 OBJECT GLOBAL DEFAULT 23 secret - 81: 0000000000011028 0 NOTYPE GLOBAL DEFAULT 23 _end - 82: 0000000000000640 52 FUNC GLOBAL DEFAULT 13 _start - 83: 0000000000011028 0 NOTYPE GLOBAL DEFAULT 23 __end__ - 84: 0000000000011010 0 NOTYPE GLOBAL DEFAULT 23 __bss_start - 85: 0000000000000754 84 FUNC GLOBAL DEFAULT 13 main - 86: 0000000000011010 0 OBJECT GLOBAL HIDDEN 22 __TMC_END__ - 87: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_registerTMCloneTable - 88: 00000000000005b0 0 FUNC GLOBAL HIDDEN 11 _init diff --git a/src/test/incorrect/basicassign2/gcc_pic/basicassign2_gtirb.expected b/src/test/incorrect/basicassign2/gcc_pic/basicassign2_gtirb.expected index 885e7b0c8..011e1f840 100644 --- a/src/test/incorrect/basicassign2/gcc_pic/basicassign2_gtirb.expected +++ b/src/test/incorrect/basicassign2/gcc_pic/basicassign2_gtirb.expected @@ -1,17 +1,15 @@ var {:extern} Gamma_R0: bool; var {:extern} Gamma_R1: bool; -var {:extern} Gamma_R31: bool; +var {:extern} Gamma_R2: bool; var {:extern} Gamma_mem: [bv64]bool; -var {:extern} Gamma_stack: [bv64]bool; var {:extern} R0: bv64; var {:extern} R1: bv64; -var {:extern} R31: bv64; +var {:extern} R2: bv64; var {:extern} mem: [bv64]bv8; -var {:extern} stack: [bv64]bv8; const {:extern} $secret_addr: bv64; -axiom ($secret_addr == 69664bv64); +axiom ($secret_addr == 4325400bv64); const {:extern} $z_addr: bv64; -axiom ($z_addr == 69656bv64); +axiom ($z_addr == 4325408bv64); function {:extern} L(mem$in: [bv64]bv8, index: bv64) returns (bool) { (if (index == $z_addr) then true else (if (index == $secret_addr) then false else false)) } @@ -41,13 +39,7 @@ procedure {:extern} rely(); modifies Gamma_mem, mem; ensures (Gamma_mem == old(Gamma_mem)); ensures (mem == old(mem)); - free ensures (memory_load32_le(mem, 1980bv64) == 131073bv32); - free ensures (memory_load64_le(mem, 69000bv64) == 1872bv64); - free ensures (memory_load64_le(mem, 69008bv64) == 1792bv64); - free ensures (memory_load64_le(mem, 69592bv64) == 69656bv64); - free ensures (memory_load64_le(mem, 69608bv64) == 69664bv64); - free ensures (memory_load64_le(mem, 69616bv64) == 1876bv64); - free ensures (memory_load64_le(mem, 69640bv64) == 69640bv64); + free ensures (memory_load32_le(mem, 4196312bv64) == 131073bv32); procedure {:extern} rely_transitive(); modifies Gamma_mem, mem; @@ -65,93 +57,41 @@ procedure {:extern} rely_reflexive(); procedure {:extern} guarantee_reflexive(); modifies Gamma_mem, mem; -procedure main_1876(); - modifies Gamma_R0, Gamma_R1, Gamma_R31, Gamma_mem, Gamma_stack, R0, R1, R31, mem, stack; - free requires (memory_load64_le(mem, 69632bv64) == 0bv64); - free requires (memory_load64_le(mem, 69640bv64) == 69640bv64); - free requires (memory_load32_le(mem, 1980bv64) == 131073bv32); - free requires (memory_load64_le(mem, 69000bv64) == 1872bv64); - free requires (memory_load64_le(mem, 69008bv64) == 1792bv64); - free requires (memory_load64_le(mem, 69592bv64) == 69656bv64); - free requires (memory_load64_le(mem, 69608bv64) == 69664bv64); - free requires (memory_load64_le(mem, 69616bv64) == 1876bv64); - free requires (memory_load64_le(mem, 69640bv64) == 69640bv64); - free ensures (Gamma_R31 == old(Gamma_R31)); - free ensures (R31 == old(R31)); - free ensures (memory_load32_le(mem, 1980bv64) == 131073bv32); - free ensures (memory_load64_le(mem, 69000bv64) == 1872bv64); - free ensures (memory_load64_le(mem, 69008bv64) == 1792bv64); - free ensures (memory_load64_le(mem, 69592bv64) == 69656bv64); - free ensures (memory_load64_le(mem, 69608bv64) == 69664bv64); - free ensures (memory_load64_le(mem, 69616bv64) == 1876bv64); - free ensures (memory_load64_le(mem, 69640bv64) == 69640bv64); +procedure main(); + modifies Gamma_R0, Gamma_R1, Gamma_R2, Gamma_mem, R0, R1, R2, mem; + free requires (memory_load64_le(mem, 4325376bv64) == 0bv64); + free requires (memory_load64_le(mem, 4325384bv64) == 0bv64); + free requires (memory_load32_le(mem, 4196312bv64) == 131073bv32); + free ensures (memory_load32_le(mem, 4196312bv64) == 131073bv32); -implementation main_1876() +implementation main() { - var Gamma_load10: bool; - var Gamma_load11: bool; - var Gamma_load4: bool; - var Gamma_load5: bool; - var Gamma_load6: bool; - var Gamma_load7: bool; - var Gamma_load8: bool; - var Gamma_load9: bool; - var load10: bv64; - var load11: bv64; - var load4: bv64; - var load5: bv64; - var load6: bv64; - var load7: bv64; - var load8: bv64; - var load9: bv64; - main_1876__0__cAr~xZczTJ6UG_oTonnnNw: - assume {:captureState "main_1876__0__cAr~xZczTJ6UG_oTonnnNw"} true; - R31, Gamma_R31 := bvadd64(R31, 18446744073709551600bv64), Gamma_R31; - R0, Gamma_R0 := 65536bv64, true; - call rely(); - load4, Gamma_load4 := memory_load64_le(mem, bvadd64(R0, 4072bv64)), (gamma_load64(Gamma_mem, bvadd64(R0, 4072bv64)) || L(mem, bvadd64(R0, 4072bv64))); - R0, Gamma_R0 := load4, Gamma_load4; - call rely(); - load5, Gamma_load5 := memory_load64_le(mem, R0), (gamma_load64(Gamma_mem, R0) || L(mem, R0)); - R0, Gamma_R0 := load5, Gamma_load5; - stack, Gamma_stack := memory_store64_le(stack, bvadd64(R31, 8bv64), R0), gamma_store64(Gamma_stack, bvadd64(R31, 8bv64), Gamma_R0); - assume {:captureState "1892_0"} true; - stack, Gamma_stack := memory_store64_le(stack, bvadd64(R31, 8bv64), 0bv64), gamma_store64(Gamma_stack, bvadd64(R31, 8bv64), true); - assume {:captureState "1896_0"} true; - R0, Gamma_R0 := 65536bv64, true; - call rely(); - load6, Gamma_load6 := memory_load64_le(mem, bvadd64(R0, 4056bv64)), (gamma_load64(Gamma_mem, bvadd64(R0, 4056bv64)) || L(mem, bvadd64(R0, 4056bv64))); - R0, Gamma_R0 := load6, Gamma_load6; - load7, Gamma_load7 := memory_load64_le(stack, bvadd64(R31, 8bv64)), gamma_load64(Gamma_stack, bvadd64(R31, 8bv64)); - R1, Gamma_R1 := load7, Gamma_load7; - call rely(); - assert (L(mem, R0) ==> Gamma_R1); - mem, Gamma_mem := memory_store64_le(mem, R0, R1), gamma_store64(Gamma_mem, R0, Gamma_R1); - assume {:captureState "1912_0"} true; - R0, Gamma_R0 := 65536bv64, true; + var $load16: bv64; + var $load17: bv64; + var $load18: bv64; + var Gamma_$load16: bool; + var Gamma_$load17: bool; + var Gamma_$load18: bool; + $main$__0__$i2bc6yURTw~Pq2nxe63pQA: + assume {:captureState "$main$__0__$i2bc6yURTw~Pq2nxe63pQA"} true; + R1, Gamma_R1 := 4321280bv64, true; + R0, Gamma_R0 := 0bv64, true; call rely(); - load8, Gamma_load8 := memory_load64_le(mem, bvadd64(R0, 4072bv64)), (gamma_load64(Gamma_mem, bvadd64(R0, 4072bv64)) || L(mem, bvadd64(R0, 4072bv64))); - R0, Gamma_R0 := load8, Gamma_load8; + $load16, Gamma_$load16 := memory_load64_le(mem, bvadd64(R1, 4080bv64)), (gamma_load64(Gamma_mem, bvadd64(R1, 4080bv64)) || L(mem, bvadd64(R1, 4080bv64))); + R2, Gamma_R2 := $load16, Gamma_$load16; call rely(); - load9, Gamma_load9 := memory_load64_le(mem, R0), (gamma_load64(Gamma_mem, R0) || L(mem, R0)); - R0, Gamma_R0 := load9, Gamma_load9; - stack, Gamma_stack := memory_store64_le(stack, bvadd64(R31, 8bv64), R0), gamma_store64(Gamma_stack, bvadd64(R31, 8bv64), Gamma_R0); - assume {:captureState "1928_0"} true; - R0, Gamma_R0 := 65536bv64, true; + $load17, Gamma_$load17 := memory_load64_le(mem, bvadd64(R1, 4064bv64)), (gamma_load64(Gamma_mem, bvadd64(R1, 4064bv64)) || L(mem, bvadd64(R1, 4064bv64))); + R1, Gamma_R1 := $load17, Gamma_$load17; call rely(); - load10, Gamma_load10 := memory_load64_le(mem, bvadd64(R0, 4056bv64)), (gamma_load64(Gamma_mem, bvadd64(R0, 4056bv64)) || L(mem, bvadd64(R0, 4056bv64))); - R0, Gamma_R0 := load10, Gamma_load10; - load11, Gamma_load11 := memory_load64_le(stack, bvadd64(R31, 8bv64)), gamma_load64(Gamma_stack, bvadd64(R31, 8bv64)); - R1, Gamma_R1 := load11, Gamma_load11; + $load18, Gamma_$load18 := memory_load64_le(mem, R2), (gamma_load64(Gamma_mem, R2) || L(mem, R2)); + R2, Gamma_R2 := $load18, Gamma_$load18; call rely(); - assert (L(mem, R0) ==> Gamma_R1); - mem, Gamma_mem := memory_store64_le(mem, R0, R1), gamma_store64(Gamma_mem, R0, Gamma_R1); - assume {:captureState "1944_0"} true; - R0, Gamma_R0 := 0bv64, true; - R31, Gamma_R31 := bvadd64(R31, 16bv64), Gamma_R31; - goto main_1876_basil_return; - main_1876_basil_return: - assume {:captureState "main_1876_basil_return"} true; + assert (L(mem, R1) ==> Gamma_R2); + mem, Gamma_mem := memory_store64_le(mem, R1, R2), gamma_store64(Gamma_mem, R1, Gamma_R2); + assume {:captureState "4195988$0"} true; + goto main_basil_return; + main_basil_return: + assume {:captureState "main_basil_return"} true; return; } diff --git a/src/test/incorrect/basicassign3/clang/basicassign3.adt b/src/test/incorrect/basicassign3/clang/basicassign3.adt deleted file mode 100644 index fa91d9eee..000000000 --- a/src/test/incorrect/basicassign3/clang/basicassign3.adt +++ /dev/null @@ -1,521 +0,0 @@ -Project(Attrs([Attr("filename","\"clang/basicassign3.out\""), -Attr("image-specification","(declare abi (name str))\n(declare arch (name str))\n(declare base-address (addr int))\n(declare bias (off int))\n(declare bits (size int))\n(declare code-region (addr int) (size int) (off int))\n(declare code-start (addr int))\n(declare entry-point (addr int))\n(declare external-reference (addr int) (name str))\n(declare format (name str))\n(declare is-executable (flag bool))\n(declare is-little-endian (flag bool))\n(declare llvm:base-address (addr int))\n(declare llvm:code-entry (name str) (off int) (size int))\n(declare llvm:coff-import-library (name str))\n(declare llvm:coff-virtual-section-header (name str) (addr int) (size int))\n(declare llvm:elf-program-header (name str) (off int) (size int))\n(declare llvm:elf-program-header-flags (name str) (ld bool) (r bool) \n (w bool) (x bool))\n(declare llvm:elf-virtual-program-header (name str) (addr int) (size int))\n(declare llvm:entry-point (addr int))\n(declare llvm:macho-symbol (name str) (value int))\n(declare llvm:name-reference (at int) (name str))\n(declare llvm:relocation (at int) (addr int))\n(declare llvm:section-entry (name str) (addr int) (size int) (off int))\n(declare llvm:section-flags (name str) (r bool) (w bool) (x bool))\n(declare llvm:segment-command (name str) (off int) (size int))\n(declare llvm:segment-command-flags (name str) (r bool) (w bool) (x bool))\n(declare llvm:symbol-entry (name str) (addr int) (size int) (off int)\n (value int))\n(declare llvm:virtual-segment-command (name str) (addr int) (size int))\n(declare mapped (addr int) (size int) (off int))\n(declare named-region (addr int) (size int) (name str))\n(declare named-symbol (addr int) (name str))\n(declare require (name str))\n(declare section (addr int) (size int))\n(declare segment (addr int) (size int) (r bool) (w bool) (x bool))\n(declare subarch (name str))\n(declare symbol-chunk (addr int) (size int) (root int))\n(declare symbol-value (addr int) (value int))\n(declare system (name str))\n(declare vendor (name str))\n\n(abi unknown)\n(arch aarch64)\n(base-address 0)\n(bias 0)\n(bits 64)\n(code-region 1872 20 1872)\n(code-region 1536 336 1536)\n(code-region 1440 96 1440)\n(code-region 1408 24 1408)\n(code-start 1588)\n(code-start 1536)\n(code-start 1812)\n(entry-point 1536)\n(external-reference 69568 _ITM_deregisterTMCloneTable)\n(external-reference 69576 __cxa_finalize)\n(external-reference 69584 __gmon_start__)\n(external-reference 69600 _ITM_registerTMCloneTable)\n(external-reference 69632 __libc_start_main)\n(external-reference 69640 __cxa_finalize)\n(external-reference 69648 __gmon_start__)\n(external-reference 69656 abort)\n(format elf)\n(is-executable true)\n(is-little-endian true)\n(llvm:base-address 0)\n(llvm:code-entry abort 0 0)\n(llvm:code-entry __cxa_finalize 0 0)\n(llvm:code-entry __libc_start_main 0 0)\n(llvm:code-entry _init 1408 0)\n(llvm:code-entry main 1812 60)\n(llvm:code-entry _start 1536 52)\n(llvm:code-entry abort@GLIBC_2.17 0 0)\n(llvm:code-entry _fini 1872 0)\n(llvm:code-entry __cxa_finalize@GLIBC_2.17 0 0)\n(llvm:code-entry __libc_start_main@GLIBC_2.34 0 0)\n(llvm:code-entry frame_dummy 1808 0)\n(llvm:code-entry __do_global_dtors_aux 1728 0)\n(llvm:code-entry register_tm_clones 1664 0)\n(llvm:code-entry deregister_tm_clones 1616 0)\n(llvm:code-entry call_weak_fn 1588 20)\n(llvm:code-entry .fini 1872 20)\n(llvm:code-entry .text 1536 336)\n(llvm:code-entry .plt 1440 96)\n(llvm:code-entry .init 1408 24)\n(llvm:elf-program-header 08 3528 568)\n(llvm:elf-program-header 07 0 0)\n(llvm:elf-program-header 06 1896 60)\n(llvm:elf-program-header 05 596 68)\n(llvm:elf-program-header 04 3544 480)\n(llvm:elf-program-header 03 3528 616)\n(llvm:elf-program-header 02 0 2144)\n(llvm:elf-program-header 01 568 27)\n(llvm:elf-program-header 00 64 504)\n(llvm:elf-program-header-flags 08 false true false false)\n(llvm:elf-program-header-flags 07 false true true false)\n(llvm:elf-program-header-flags 06 false true false false)\n(llvm:elf-program-header-flags 05 false true false false)\n(llvm:elf-program-header-flags 04 false true true false)\n(llvm:elf-program-header-flags 03 true true true false)\n(llvm:elf-program-header-flags 02 true true false true)\n(llvm:elf-program-header-flags 01 false true false false)\n(llvm:elf-program-header-flags 00 false true false false)\n(llvm:elf-virtual-program-header 08 69064 568)\n(llvm:elf-virtual-program-header 07 0 0)\n(llvm:elf-virtual-program-header 06 1896 60)\n(llvm:elf-virtual-program-header 05 596 68)\n(llvm:elf-virtual-program-header 04 69080 480)\n(llvm:elf-virtual-program-header 03 69064 624)\n(llvm:elf-virtual-program-header 02 0 2144)\n(llvm:elf-virtual-program-header 01 568 27)\n(llvm:elf-virtual-program-header 00 64 504)\n(llvm:entry-point 1536)\n(llvm:name-reference 69656 abort)\n(llvm:name-reference 69648 __gmon_start__)\n(llvm:name-reference 69640 __cxa_finalize)\n(llvm:name-reference 69632 __libc_start_main)\n(llvm:name-reference 69600 _ITM_registerTMCloneTable)\n(llvm:name-reference 69584 __gmon_start__)\n(llvm:name-reference 69576 __cxa_finalize)\n(llvm:name-reference 69568 _ITM_deregisterTMCloneTable)\n(llvm:section-entry .shstrtab 0 259 6977)\n(llvm:section-entry .strtab 0 577 6400)\n(llvm:section-entry .symtab 0 2184 4216)\n(llvm:section-entry .comment 0 71 4144)\n(llvm:section-entry .bss 69680 8 4144)\n(llvm:section-entry .data 69664 16 4128)\n(llvm:section-entry .got.plt 69608 56 4072)\n(llvm:section-entry .got 69560 48 4024)\n(llvm:section-entry .dynamic 69080 480 3544)\n(llvm:section-entry .fini_array 69072 8 3536)\n(llvm:section-entry .init_array 69064 8 3528)\n(llvm:section-entry .eh_frame 1960 184 1960)\n(llvm:section-entry .eh_frame_hdr 1896 60 1896)\n(llvm:section-entry .rodata 1892 4 1892)\n(llvm:section-entry .fini 1872 20 1872)\n(llvm:section-entry .text 1536 336 1536)\n(llvm:section-entry .plt 1440 96 1440)\n(llvm:section-entry .init 1408 24 1408)\n(llvm:section-entry .rela.plt 1312 96 1312)\n(llvm:section-entry .rela.dyn 1120 192 1120)\n(llvm:section-entry .gnu.version_r 1072 48 1072)\n(llvm:section-entry .gnu.version 1054 18 1054)\n(llvm:section-entry .dynstr 912 141 912)\n(llvm:section-entry .dynsym 696 216 696)\n(llvm:section-entry .gnu.hash 664 28 664)\n(llvm:section-entry .note.ABI-tag 632 32 632)\n(llvm:section-entry .note.gnu.build-id 596 36 596)\n(llvm:section-entry .interp 568 27 568)\n(llvm:section-flags .shstrtab true false false)\n(llvm:section-flags .strtab true false false)\n(llvm:section-flags .symtab true false false)\n(llvm:section-flags .comment true false false)\n(llvm:section-flags .bss true true false)\n(llvm:section-flags .data true true false)\n(llvm:section-flags .got.plt true true false)\n(llvm:section-flags .got true true false)\n(llvm:section-flags .dynamic true true false)\n(llvm:section-flags .fini_array true true false)\n(llvm:section-flags .init_array true true false)\n(llvm:section-flags .eh_frame true false false)\n(llvm:section-flags .eh_frame_hdr true false false)\n(llvm:section-flags .rodata true false false)\n(llvm:section-flags .fini true false true)\n(llvm:section-flags .text true false true)\n(llvm:section-flags .plt true false true)\n(llvm:section-flags .init true false true)\n(llvm:section-flags .rela.plt true false false)\n(llvm:section-flags .rela.dyn true false false)\n(llvm:section-flags .gnu.version_r true false false)\n(llvm:section-flags .gnu.version true false false)\n(llvm:section-flags .dynstr true false false)\n(llvm:section-flags .dynsym true false false)\n(llvm:section-flags .gnu.hash true false false)\n(llvm:section-flags .note.ABI-tag true false false)\n(llvm:section-flags .note.gnu.build-id true false false)\n(llvm:section-flags .interp true false false)\n(llvm:symbol-entry abort 0 0 0 0)\n(llvm:symbol-entry __cxa_finalize 0 0 0 0)\n(llvm:symbol-entry __libc_start_main 0 0 0 0)\n(llvm:symbol-entry _init 1408 0 1408 1408)\n(llvm:symbol-entry main 1812 60 1812 1812)\n(llvm:symbol-entry _start 1536 52 1536 1536)\n(llvm:symbol-entry abort@GLIBC_2.17 0 0 0 0)\n(llvm:symbol-entry _fini 1872 0 1872 1872)\n(llvm:symbol-entry __cxa_finalize@GLIBC_2.17 0 0 0 0)\n(llvm:symbol-entry __libc_start_main@GLIBC_2.34 0 0 0 0)\n(llvm:symbol-entry frame_dummy 1808 0 1808 1808)\n(llvm:symbol-entry __do_global_dtors_aux 1728 0 1728 1728)\n(llvm:symbol-entry register_tm_clones 1664 0 1664 1664)\n(llvm:symbol-entry deregister_tm_clones 1616 0 1616 1616)\n(llvm:symbol-entry call_weak_fn 1588 20 1588 1588)\n(mapped 0 2144 0)\n(mapped 69064 616 3528)\n(named-region 0 2144 02)\n(named-region 69064 624 03)\n(named-region 568 27 .interp)\n(named-region 596 36 .note.gnu.build-id)\n(named-region 632 32 .note.ABI-tag)\n(named-region 664 28 .gnu.hash)\n(named-region 696 216 .dynsym)\n(named-region 912 141 .dynstr)\n(named-region 1054 18 .gnu.version)\n(named-region 1072 48 .gnu.version_r)\n(named-region 1120 192 .rela.dyn)\n(named-region 1312 96 .rela.plt)\n(named-region 1408 24 .init)\n(named-region 1440 96 .plt)\n(named-region 1536 336 .text)\n(named-region 1872 20 .fini)\n(named-region 1892 4 .rodata)\n(named-region 1896 60 .eh_frame_hdr)\n(named-region 1960 184 .eh_frame)\n(named-region 69064 8 .init_array)\n(named-region 69072 8 .fini_array)\n(named-region 69080 480 .dynamic)\n(named-region 69560 48 .got)\n(named-region 69608 56 .got.plt)\n(named-region 69664 16 .data)\n(named-region 69680 8 .bss)\n(named-region 0 71 .comment)\n(named-region 0 2184 .symtab)\n(named-region 0 577 .strtab)\n(named-region 0 259 .shstrtab)\n(named-symbol 1588 call_weak_fn)\n(named-symbol 1616 deregister_tm_clones)\n(named-symbol 1664 register_tm_clones)\n(named-symbol 1728 __do_global_dtors_aux)\n(named-symbol 1808 frame_dummy)\n(named-symbol 0 __libc_start_main@GLIBC_2.34)\n(named-symbol 0 __cxa_finalize@GLIBC_2.17)\n(named-symbol 1872 _fini)\n(named-symbol 0 abort@GLIBC_2.17)\n(named-symbol 1536 _start)\n(named-symbol 1812 main)\n(named-symbol 1408 _init)\n(named-symbol 0 __libc_start_main)\n(named-symbol 0 __cxa_finalize)\n(named-symbol 0 abort)\n(require libc.so.6)\n(section 568 27)\n(section 596 36)\n(section 632 32)\n(section 664 28)\n(section 696 216)\n(section 912 141)\n(section 1054 18)\n(section 1072 48)\n(section 1120 192)\n(section 1312 96)\n(section 1408 24)\n(section 1440 96)\n(section 1536 336)\n(section 1872 20)\n(section 1892 4)\n(section 1896 60)\n(section 1960 184)\n(section 69064 8)\n(section 69072 8)\n(section 69080 480)\n(section 69560 48)\n(section 69608 56)\n(section 69664 16)\n(section 69680 8)\n(section 0 71)\n(section 0 2184)\n(section 0 577)\n(section 0 259)\n(segment 0 2144 true false true)\n(segment 69064 624 true true false)\n(subarch v8)\n(symbol-chunk 1588 20 1588)\n(symbol-chunk 1536 52 1536)\n(symbol-chunk 1812 60 1812)\n(symbol-value 1588 1588)\n(symbol-value 1616 1616)\n(symbol-value 1664 1664)\n(symbol-value 1728 1728)\n(symbol-value 1808 1808)\n(symbol-value 1872 1872)\n(symbol-value 1536 1536)\n(symbol-value 1812 1812)\n(symbol-value 1408 1408)\n(symbol-value 0 0)\n(system \"\")\n(vendor \"\")\n"), -Attr("abi-name","\"aarch64-linux-gnu-elf\"")]), -Sections([Section(".shstrtab", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x00\x06\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x48\x1c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x38\x00\x09\x00\x40\x00\x1d\x00\x1c\x00\x06\x00\x00\x00\x04\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x04\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x60\x08\x00\x00\x00\x00\x00\x00\x60\x08\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x01\x00\x00\x00\x06\x00\x00\x00\xc8\x0d\x00\x00\x00\x00\x00\x00\xc8\x0d\x01\x00\x00\x00\x00\x00\xc8\x0d\x01"), -Section(".strtab", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x00\x06\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x48\x1c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x38\x00\x09\x00\x40\x00\x1d\x00\x1c\x00\x06\x00\x00\x00\x04\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x04\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x60\x08\x00\x00\x00\x00\x00\x00\x60\x08\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x01\x00\x00\x00\x06\x00\x00\x00\xc8\x0d\x00\x00\x00\x00\x00\x00\xc8\x0d\x01\x00\x00\x00\x00\x00\xc8\x0d\x01\x00\x00\x00\x00\x00\x68\x02\x00\x00\x00\x00\x00\x00\x70\x02\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x02\x00\x00\x00\x06\x00\x00\x00\xd8\x0d\x00\x00\x00\x00\x00\x00\xd8\x0d\x01\x00\x00\x00\x00\x00\xd8\x0d\x01\x00\x00\x00\x00\x00\xe0\x01\x00\x00\x00\x00\x00\x00\xe0\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x04\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x50\xe5\x74\x64\x04\x00\x00\x00\x68\x07\x00\x00\x00\x00\x00\x00\x68\x07\x00\x00\x00\x00\x00\x00\x68\x07\x00\x00\x00\x00\x00\x00\x3c\x00\x00\x00\x00\x00\x00\x00\x3c\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x51\xe5\x74\x64\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x52\xe5\x74\x64\x04\x00\x00\x00\xc8\x0d\x00\x00\x00\x00\x00\x00\xc8\x0d\x01\x00\x00\x00\x00\x00\xc8\x0d\x01\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x2f\x6c\x69\x62\x2f\x6c\x64\x2d\x6c"), -Section(".comment", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x00\x06\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x48\x1c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x38\x00\x09\x00\x40\x00\x1d\x00\x1c\x00\x06\x00\x00\x00\x04\x00\x00"), -Section(".interp", 0x238, "\x2f\x6c\x69\x62\x2f\x6c\x64\x2d\x6c\x69\x6e\x75\x78\x2d\x61\x61\x72\x63\x68\x36\x34\x2e\x73\x6f\x2e\x31\x00"), -Section(".note.gnu.build-id", 0x254, "\x04\x00\x00\x00\x14\x00\x00\x00\x03\x00\x00\x00\x47\x4e\x55\x00\xec\x70\x53\xf3\x3e\x35\xe0\xbc\x1c\xbe\x34\x39\x00\x5a\x2a\x9c\x73\x08\xd2\xa4"), -Section(".note.ABI-tag", 0x278, "\x04\x00\x00\x00\x10\x00\x00\x00\x01\x00\x00\x00\x47\x4e\x55\x00\x00\x00\x00\x00\x03\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00"), -Section(".gnu.hash", 0x298, "\x01\x00\x00\x00\x01\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".dynsym", 0x2B8, "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x0b\x00\x80\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x17\x00\x20\x10\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x48\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x22\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x22\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x73\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".dynstr", 0x390, "\x00\x5f\x5f\x63\x78\x61\x5f\x66\x69\x6e\x61\x6c\x69\x7a\x65\x00\x5f\x5f\x6c\x69\x62\x63\x5f\x73\x74\x61\x72\x74\x5f\x6d\x61\x69\x6e\x00\x61\x62\x6f\x72\x74\x00\x6c\x69\x62\x63\x2e\x73\x6f\x2e\x36\x00\x47\x4c\x49\x42\x43\x5f\x32\x2e\x31\x37\x00\x47\x4c\x49\x42\x43\x5f\x32\x2e\x33\x34\x00\x5f\x49\x54\x4d\x5f\x64\x65\x72\x65\x67\x69\x73\x74\x65\x72\x54\x4d\x43\x6c\x6f\x6e\x65\x54\x61\x62\x6c\x65\x00\x5f\x5f\x67\x6d\x6f\x6e\x5f\x73\x74\x61\x72\x74\x5f\x5f\x00\x5f\x49\x54\x4d\x5f\x72\x65\x67\x69\x73\x74\x65\x72\x54\x4d\x43\x6c\x6f\x6e\x65\x54\x61\x62\x6c\x65\x00"), -Section(".gnu.version", 0x41E, "\x00\x00\x00\x00\x00\x00\x02\x00\x01\x00\x03\x00\x01\x00\x03\x00\x01\x00"), -Section(".gnu.version_r", 0x430, "\x01\x00\x02\x00\x28\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x97\x91\x96\x06\x00\x00\x03\x00\x32\x00\x00\x00\x10\x00\x00\x00\xb4\x91\x96\x06\x00\x00\x02\x00\x3d\x00\x00\x00\x00\x00\x00\x00"), -Section(".rela.dyn", 0x460, "\xc8\x0d\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x10\x07\x00\x00\x00\x00\x00\x00\xd0\x0d\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\xc0\x06\x00\x00\x00\x00\x00\x00\xd8\x0f\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x14\x07\x00\x00\x00\x00\x00\x00\x28\x10\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x28\x10\x01\x00\x00\x00\x00\x00\xc0\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xc8\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xd0\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe0\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".rela.plt", 0x520, "\x00\x10\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x08\x10\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x10\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x18\x10\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".init", 0x580, "\x1f\x20\x03\xd5\xfd\x7b\xbf\xa9\xfd\x03\x00\x91\x2a\x00\x00\x94\xfd\x7b\xc1\xa8\xc0\x03\x5f\xd6"), -Section(".plt", 0x5A0, "\xf0\x7b\xbf\xa9\x90\x00\x00\x90\x11\xfe\x47\xf9\x10\xe2\x3f\x91\x20\x02\x1f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x90\x00\x00\xb0\x11\x02\x40\xf9\x10\x02\x00\x91\x20\x02\x1f\xd6\x90\x00\x00\xb0\x11\x06\x40\xf9\x10\x22\x00\x91\x20\x02\x1f\xd6\x90\x00\x00\xb0\x11\x0a\x40\xf9\x10\x42\x00\x91\x20\x02\x1f\xd6\x90\x00\x00\xb0\x11\x0e\x40\xf9\x10\x62\x00\x91\x20\x02\x1f\xd6"), -Section(".text", 0x600, "\x1f\x20\x03\xd5\x1d\x00\x80\xd2\x1e\x00\x80\xd2\xe5\x03\x00\xaa\xe1\x03\x40\xf9\xe2\x23\x00\x91\xe6\x03\x00\x91\x80\x00\x00\x90\x00\xec\x47\xf9\x03\x00\x80\xd2\x04\x00\x80\xd2\xe5\xff\xff\x97\xf0\xff\xff\x97\x80\x00\x00\x90\x00\xe8\x47\xf9\x40\x00\x00\xb4\xe8\xff\xff\x17\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x80\x00\x00\xb0\x00\xc0\x00\x91\x81\x00\x00\xb0\x21\xc0\x00\x91\x3f\x00\x00\xeb\xc0\x00\x00\x54\x81\x00\x00\x90\x21\xe0\x47\xf9\x61\x00\x00\xb4\xf0\x03\x01\xaa\x00\x02\x1f\xd6\xc0\x03\x5f\xd6\x80\x00\x00\xb0\x00\xc0\x00\x91\x81\x00\x00\xb0\x21\xc0\x00\x91\x21\x00\x00\xcb\x22\xfc\x7f\xd3\x41\x0c\x81\x8b\x21\xfc\x41\x93\xc1\x00\x00\xb4\x82\x00\x00\x90\x42\xf0\x47\xf9\x62\x00\x00\xb4\xf0\x03\x02\xaa\x00\x02\x1f\xd6\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\xfd\x7b\xbe\xa9\xfd\x03\x00\x91\xf3\x0b\x00\xf9\x93\x00\x00\xb0\x60\xc2\x40\x39\x40\x01\x00\x35\x80\x00\x00\x90\x00\xe4\x47\xf9\x80\x00\x00\xb4\x80\x00\x00\xb0\x00\x14\x40\xf9\xb9\xff\xff\x97\xd8\xff\xff\x97\x20\x00\x80\x52\x60\xc2\x00\x39\xf3\x0b\x40\xf9\xfd\x7b\xc2\xa8\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\xdc\xff\xff\x17\xff\x43\x00\xd1\x88\x00\x00\xb0\x09\xc5\x40\x39\xe9\x3f\x00\x39\xff\x3f\x00\x39\xea\x3f\x40\x39\x89\x00\x00\xb0\x2a\xc9\x00\x39\x08\xc5\x40\x39\xe8\x3f\x00\x39\xe8\x3f\x40\x39\x28\xc9\x00\x39\xe0\x03\x1f\x2a\xff\x43\x00\x91\xc0\x03\x5f\xd6"), -Section(".fini", 0x750, "\x1f\x20\x03\xd5\xfd\x7b\xbf\xa9\xfd\x03\x00\x91\xfd\x7b\xc1\xa8\xc0\x03\x5f\xd6"), -Section(".rodata", 0x764, "\x01\x00\x02\x00"), -Section(".eh_frame_hdr", 0x768, "\x01\x1b\x03\x3b\x3c\x00\x00\x00\x06\x00\x00\x00\x98\xfe\xff\xff\x54\x00\x00\x00\xe8\xfe\xff\xff\x68\x00\x00\x00\x18\xff\xff\xff\x7c\x00\x00\x00\x58\xff\xff\xff\x90\x00\x00\x00\xa8\xff\xff\xff\xb4\x00\x00\x00\xac\xff\xff\xff\xdc\x00\x00\x00"), -Section(".eh_frame", 0x7A8, "\x10\x00\x00\x00\x00\x00\x00\x00\x01\x7a\x52\x00\x04\x78\x1e\x01\x1b\x0c\x1f\x00\x10\x00\x00\x00\x18\x00\x00\x00\x3c\xfe\xff\xff\x34\x00\x00\x00\x00\x41\x07\x1e\x10\x00\x00\x00\x2c\x00\x00\x00\x78\xfe\xff\xff\x30\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x40\x00\x00\x00\x94\xfe\xff\xff\x3c\x00\x00\x00\x00\x00\x00\x00\x20\x00\x00\x00\x54\x00\x00\x00\xc0\xfe\xff\xff\x48\x00\x00\x00\x00\x41\x0e\x20\x9d\x04\x9e\x03\x42\x93\x02\x4e\xde\xdd\xd3\x0e\x00\x00\x00\x00\x10\x00\x00\x00\x78\x00\x00\x00\xec\xfe\xff\xff\x04\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x01\x7a\x52\x00\x01\x7c\x1e\x01\x1b\x0c\x1f\x00\x14\x00\x00\x00\x18\x00\x00\x00\xc8\xfe\xff\xff\x3c\x00\x00\x00\x00\x44\x0e\x10\x74\x0e\x00\x00\x00\x00\x00\x00"), -Section(".fini_array", 0x10DD0, "\xc0\x06\x00\x00\x00\x00\x00\x00"), -Section(".dynamic", 0x10DD8, "\x01\x00\x00\x00\x00\x00\x00\x00\x28\x00\x00\x00\x00\x00\x00\x00\x0c\x00\x00\x00\x00\x00\x00\x00\x80\x05\x00\x00\x00\x00\x00\x00\x0d\x00\x00\x00\x00\x00\x00\x00\x50\x07\x00\x00\x00\x00\x00\x00\x19\x00\x00\x00\x00\x00\x00\x00\xc8\x0d\x01\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x1a\x00\x00\x00\x00\x00\x00\x00\xd0\x0d\x01\x00\x00\x00\x00\x00\x1c\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\xf5\xfe\xff\x6f\x00\x00\x00\x00\x98\x02\x00\x00\x00\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x90\x03\x00\x00\x00\x00\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\xb8\x02\x00\x00\x00\x00\x00\x00\x0a\x00\x00\x00\x00\x00\x00\x00\x8d\x00\x00\x00\x00\x00\x00\x00\x0b\x00\x00\x00\x00\x00\x00\x00\x18\x00\x00\x00\x00\x00\x00\x00\x15\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\xe8\x0f\x01\x00\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x60\x00\x00\x00\x00\x00\x00\x00\x14\x00\x00\x00\x00\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x17\x00\x00\x00\x00\x00\x00\x00\x20\x05\x00\x00\x00\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x60\x04\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\xc0\x00\x00\x00\x00\x00\x00\x00\x09\x00\x00\x00\x00\x00\x00\x00\x18\x00\x00\x00\x00\x00\x00\x00\xfb\xff\xff\x6f\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\xfe\xff\xff\x6f\x00\x00\x00\x00\x30\x04\x00\x00\x00\x00\x00\x00\xff\xff\xff\x6f\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\xf0\xff\xff\x6f\x00\x00\x00\x00\x1e\x04\x00\x00\x00\x00\x00\x00\xf9\xff\xff\x6f\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".init_array", 0x10DC8, "\x10\x07\x00\x00\x00\x00\x00\x00"), -Section(".got", 0x10FB8, "\xd8\x0d\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x14\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".got.plt", 0x10FE8, "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xa0\x05\x00\x00\x00\x00\x00\x00\xa0\x05\x00\x00\x00\x00\x00\x00\xa0\x05\x00\x00\x00\x00\x00\x00\xa0\x05\x00\x00\x00\x00\x00\x00"), -Section(".data", 0x11020, "\x00\x00\x00\x00\x00\x00\x00\x00\x28\x10\x01\x00\x00\x00\x00\x00")]), -Memmap([Annotation(Region(0x0,0x85F), Attr("segment","02 0 2144")), -Annotation(Region(0x600,0x633), Attr("symbol","\"_start\"")), -Annotation(Region(0x0,0x102), Attr("section","\".shstrtab\"")), -Annotation(Region(0x0,0x240), Attr("section","\".strtab\"")), -Annotation(Region(0x0,0x46), Attr("section","\".comment\"")), -Annotation(Region(0x238,0x252), Attr("section","\".interp\"")), -Annotation(Region(0x254,0x277), Attr("section","\".note.gnu.build-id\"")), -Annotation(Region(0x278,0x297), Attr("section","\".note.ABI-tag\"")), -Annotation(Region(0x298,0x2B3), Attr("section","\".gnu.hash\"")), -Annotation(Region(0x2B8,0x38F), Attr("section","\".dynsym\"")), -Annotation(Region(0x390,0x41C), Attr("section","\".dynstr\"")), -Annotation(Region(0x41E,0x42F), Attr("section","\".gnu.version\"")), -Annotation(Region(0x430,0x45F), Attr("section","\".gnu.version_r\"")), -Annotation(Region(0x460,0x51F), Attr("section","\".rela.dyn\"")), -Annotation(Region(0x520,0x57F), Attr("section","\".rela.plt\"")), -Annotation(Region(0x580,0x597), Attr("section","\".init\"")), -Annotation(Region(0x5A0,0x5FF), Attr("section","\".plt\"")), -Annotation(Region(0x580,0x597), Attr("code-region","()")), -Annotation(Region(0x5A0,0x5FF), Attr("code-region","()")), -Annotation(Region(0x600,0x633), Attr("symbol-info","_start 0x600 52")), -Annotation(Region(0x634,0x647), Attr("symbol","\"call_weak_fn\"")), -Annotation(Region(0x634,0x647), Attr("symbol-info","call_weak_fn 0x634 20")), -Annotation(Region(0x600,0x74F), Attr("section","\".text\"")), -Annotation(Region(0x600,0x74F), Attr("code-region","()")), -Annotation(Region(0x714,0x74F), Attr("symbol","\"main\"")), -Annotation(Region(0x714,0x74F), Attr("symbol-info","main 0x714 60")), -Annotation(Region(0x750,0x763), Attr("section","\".fini\"")), -Annotation(Region(0x750,0x763), Attr("code-region","()")), -Annotation(Region(0x764,0x767), Attr("section","\".rodata\"")), -Annotation(Region(0x768,0x7A3), Attr("section","\".eh_frame_hdr\"")), -Annotation(Region(0x7A8,0x85F), Attr("section","\".eh_frame\"")), -Annotation(Region(0x10DC8,0x1102F), Attr("segment","03 0x10DC8 624")), -Annotation(Region(0x10DD0,0x10DD7), Attr("section","\".fini_array\"")), -Annotation(Region(0x10DD8,0x10FB7), Attr("section","\".dynamic\"")), -Annotation(Region(0x10DC8,0x10DCF), Attr("section","\".init_array\"")), -Annotation(Region(0x10FB8,0x10FE7), Attr("section","\".got\"")), -Annotation(Region(0x10FE8,0x1101F), Attr("section","\".got.plt\"")), -Annotation(Region(0x11020,0x1102F), Attr("section","\".data\""))]), -Program(Tid(1_520, "%000005f0"), Attrs([]), - Subs([Sub(Tid(1_498, "@__cxa_finalize"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x5D0"), -Attr("stub","()")]), "__cxa_finalize", Args([Arg(Tid(1_521, "%000005f1"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("__cxa_finalize_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(896, "@__cxa_finalize"), - Attrs([Attr("address","0x5D0")]), Phis([]), -Defs([Def(Tid(1_144, "%00000478"), Attrs([Attr("address","0x5D0"), -Attr("insn","adrp x16, #69632")]), Var("R16",Imm(64)), Int(69632,64)), -Def(Tid(1_151, "%0000047f"), Attrs([Attr("address","0x5D4"), -Attr("insn","ldr x17, [x16, #0x8]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(1_157, "%00000485"), Attrs([Attr("address","0x5D8"), -Attr("insn","add x16, x16, #0x8")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(8,64)))]), Jmps([Call(Tid(1_162, "%0000048a"), - Attrs([Attr("address","0x5DC"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), -Sub(Tid(1_499, "@__do_global_dtors_aux"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x6C0")]), - "__do_global_dtors_aux", Args([Arg(Tid(1_522, "%000005f2"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("__do_global_dtors_aux_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(650, "@__do_global_dtors_aux"), - Attrs([Attr("address","0x6C0")]), Phis([]), Defs([Def(Tid(654, "%0000028e"), - Attrs([Attr("address","0x6C0"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("#3",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(18446744073709551584,64))), -Def(Tid(660, "%00000294"), Attrs([Attr("address","0x6C0"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("#3",Imm(64)),Var("R29",Imm(64)),LittleEndian(),64)), -Def(Tid(666, "%0000029a"), Attrs([Attr("address","0x6C0"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("#3",Imm(64)),Int(8,64)),Var("R30",Imm(64)),LittleEndian(),64)), -Def(Tid(670, "%0000029e"), Attrs([Attr("address","0x6C0"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("R31",Imm(64)), -Var("#3",Imm(64))), Def(Tid(676, "%000002a4"), - Attrs([Attr("address","0x6C4"), Attr("insn","mov x29, sp")]), - Var("R29",Imm(64)), Var("R31",Imm(64))), Def(Tid(684, "%000002ac"), - Attrs([Attr("address","0x6C8"), Attr("insn","str x19, [sp, #0x10]")]), - Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(16,64)),Var("R19",Imm(64)),LittleEndian(),64)), -Def(Tid(689, "%000002b1"), Attrs([Attr("address","0x6CC"), -Attr("insn","adrp x19, #69632")]), Var("R19",Imm(64)), Int(69632,64)), -Def(Tid(696, "%000002b8"), Attrs([Attr("address","0x6D0"), -Attr("insn","ldrb w0, [x19, #0x30]")]), Var("R0",Imm(64)), -UNSIGNED(64,Load(Var("mem",Mem(64,8)),PLUS(Var("R19",Imm(64)),Int(48,64)),LittleEndian(),8)))]), -Jmps([Goto(Tid(703, "%000002bf"), Attrs([Attr("address","0x6D4"), -Attr("insn","cbnz w0, #0x28")]), - NEQ(Extract(31,0,Var("R0",Imm(64))),Int(0,32)), -Direct(Tid(701, "%000002bd"))), Goto(Tid(1_500, "%000005dc"), Attrs([]), - Int(1,1), Direct(Tid(841, "%00000349")))])), Blk(Tid(841, "%00000349"), - Attrs([Attr("address","0x6D8")]), Phis([]), Defs([Def(Tid(844, "%0000034c"), - Attrs([Attr("address","0x6D8"), Attr("insn","adrp x0, #65536")]), - Var("R0",Imm(64)), Int(65536,64)), Def(Tid(851, "%00000353"), - Attrs([Attr("address","0x6DC"), Attr("insn","ldr x0, [x0, #0xfc8]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(4040,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(857, "%00000359"), Attrs([Attr("address","0x6E0"), -Attr("insn","cbz x0, #0x10")]), EQ(Var("R0",Imm(64)),Int(0,64)), -Direct(Tid(855, "%00000357"))), Goto(Tid(1_501, "%000005dd"), Attrs([]), - Int(1,1), Direct(Tid(880, "%00000370")))])), Blk(Tid(880, "%00000370"), - Attrs([Attr("address","0x6E4")]), Phis([]), Defs([Def(Tid(883, "%00000373"), - Attrs([Attr("address","0x6E4"), Attr("insn","adrp x0, #69632")]), - Var("R0",Imm(64)), Int(69632,64)), Def(Tid(890, "%0000037a"), - Attrs([Attr("address","0x6E8"), Attr("insn","ldr x0, [x0, #0x28]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(40,64)),LittleEndian(),64)), -Def(Tid(895, "%0000037f"), Attrs([Attr("address","0x6EC"), -Attr("insn","bl #-0x11c")]), Var("R30",Imm(64)), Int(1776,64))]), -Jmps([Call(Tid(898, "%00000382"), Attrs([Attr("address","0x6EC"), -Attr("insn","bl #-0x11c")]), Int(1,1), -(Direct(Tid(1_498, "@__cxa_finalize")),Direct(Tid(855, "%00000357"))))])), -Blk(Tid(855, "%00000357"), Attrs([Attr("address","0x6F0")]), Phis([]), -Defs([Def(Tid(863, "%0000035f"), Attrs([Attr("address","0x6F0"), -Attr("insn","bl #-0xa0")]), Var("R30",Imm(64)), Int(1780,64))]), -Jmps([Call(Tid(865, "%00000361"), Attrs([Attr("address","0x6F0"), -Attr("insn","bl #-0xa0")]), Int(1,1), -(Direct(Tid(1_512, "@deregister_tm_clones")),Direct(Tid(867, "%00000363"))))])), -Blk(Tid(867, "%00000363"), Attrs([Attr("address","0x6F4")]), Phis([]), -Defs([Def(Tid(870, "%00000366"), Attrs([Attr("address","0x6F4"), -Attr("insn","mov w0, #0x1")]), Var("R0",Imm(64)), Int(1,64)), -Def(Tid(878, "%0000036e"), Attrs([Attr("address","0x6F8"), -Attr("insn","strb w0, [x19, #0x30]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R19",Imm(64)),Int(48,64)),Extract(7,0,Var("R0",Imm(64))),LittleEndian(),8))]), -Jmps([Goto(Tid(1_502, "%000005de"), Attrs([]), Int(1,1), -Direct(Tid(701, "%000002bd")))])), Blk(Tid(701, "%000002bd"), - Attrs([Attr("address","0x6FC")]), Phis([]), Defs([Def(Tid(711, "%000002c7"), - Attrs([Attr("address","0x6FC"), Attr("insn","ldr x19, [sp, #0x10]")]), - Var("R19",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(16,64)),LittleEndian(),64)), -Def(Tid(718, "%000002ce"), Attrs([Attr("address","0x700"), -Attr("insn","ldp x29, x30, [sp], #0x20")]), Var("R29",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(723, "%000002d3"), Attrs([Attr("address","0x700"), -Attr("insn","ldp x29, x30, [sp], #0x20")]), Var("R30",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(727, "%000002d7"), Attrs([Attr("address","0x700"), -Attr("insn","ldp x29, x30, [sp], #0x20")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(32,64)))]), Jmps([Call(Tid(732, "%000002dc"), - Attrs([Attr("address","0x704"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), Sub(Tid(1_503, "@__libc_start_main"), - Attrs([Attr("c.proto","signed (*)(signed (*)(signed , char** , char** );* main, signed , char** , \nvoid* auxv)"), -Attr("address","0x5C0"), Attr("stub","()")]), "__libc_start_main", - Args([Arg(Tid(1_523, "%000005f3"), - Attrs([Attr("c.layout","**[ : 64]"), -Attr("c.data","Top:u64 ptr ptr"), -Attr("c.type","signed (*)(signed , char** , char** );*")]), - Var("__libc_start_main_main",Imm(64)), Var("R0",Imm(64)), In()), -Arg(Tid(1_524, "%000005f4"), Attrs([Attr("c.layout","[signed : 32]"), -Attr("c.data","Top:u32"), Attr("c.type","signed")]), - Var("__libc_start_main_arg2",Imm(32)), LOW(32,Var("R1",Imm(64))), In()), -Arg(Tid(1_525, "%000005f5"), Attrs([Attr("c.layout","**[char : 8]"), -Attr("c.data","Top:u8 ptr ptr"), Attr("c.type","char**")]), - Var("__libc_start_main_arg3",Imm(64)), Var("R2",Imm(64)), Both()), -Arg(Tid(1_526, "%000005f6"), Attrs([Attr("c.layout","*[ : 8]"), -Attr("c.data","{} ptr"), Attr("c.type","void*")]), - Var("__libc_start_main_auxv",Imm(64)), Var("R3",Imm(64)), Both()), -Arg(Tid(1_527, "%000005f7"), Attrs([Attr("c.layout","[signed : 32]"), -Attr("c.data","Top:u32"), Attr("c.type","signed")]), - Var("__libc_start_main_result",Imm(32)), LOW(32,Var("R0",Imm(64))), -Out())]), Blks([Blk(Tid(483, "@__libc_start_main"), - Attrs([Attr("address","0x5C0")]), Phis([]), -Defs([Def(Tid(1_122, "%00000462"), Attrs([Attr("address","0x5C0"), -Attr("insn","adrp x16, #69632")]), Var("R16",Imm(64)), Int(69632,64)), -Def(Tid(1_129, "%00000469"), Attrs([Attr("address","0x5C4"), -Attr("insn","ldr x17, [x16]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R16",Imm(64)),LittleEndian(),64)), -Def(Tid(1_135, "%0000046f"), Attrs([Attr("address","0x5C8"), -Attr("insn","add x16, x16, #0x0")]), Var("R16",Imm(64)), -Var("R16",Imm(64)))]), Jmps([Call(Tid(1_140, "%00000474"), - Attrs([Attr("address","0x5CC"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), Sub(Tid(1_504, "@_fini"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x750")]), - "_fini", Args([Arg(Tid(1_528, "%000005f8"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("_fini_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(31, "@_fini"), - Attrs([Attr("address","0x750")]), Phis([]), Defs([Def(Tid(37, "%00000025"), - Attrs([Attr("address","0x754"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("#0",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(18446744073709551600,64))), -Def(Tid(43, "%0000002b"), Attrs([Attr("address","0x754"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("#0",Imm(64)),Var("R29",Imm(64)),LittleEndian(),64)), -Def(Tid(49, "%00000031"), Attrs([Attr("address","0x754"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("#0",Imm(64)),Int(8,64)),Var("R30",Imm(64)),LittleEndian(),64)), -Def(Tid(53, "%00000035"), Attrs([Attr("address","0x754"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("R31",Imm(64)), -Var("#0",Imm(64))), Def(Tid(59, "%0000003b"), Attrs([Attr("address","0x758"), -Attr("insn","mov x29, sp")]), Var("R29",Imm(64)), Var("R31",Imm(64))), -Def(Tid(66, "%00000042"), Attrs([Attr("address","0x75C"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R29",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(71, "%00000047"), Attrs([Attr("address","0x75C"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R30",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(75, "%0000004b"), Attrs([Attr("address","0x75C"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(16,64)))]), Jmps([Call(Tid(80, "%00000050"), - Attrs([Attr("address","0x760"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), Sub(Tid(1_505, "@_init"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x580")]), - "_init", Args([Arg(Tid(1_529, "%000005f9"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("_init_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(1_325, "@_init"), - Attrs([Attr("address","0x580")]), Phis([]), -Defs([Def(Tid(1_331, "%00000533"), Attrs([Attr("address","0x584"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("#5",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(18446744073709551600,64))), -Def(Tid(1_337, "%00000539"), Attrs([Attr("address","0x584"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("#5",Imm(64)),Var("R29",Imm(64)),LittleEndian(),64)), -Def(Tid(1_343, "%0000053f"), Attrs([Attr("address","0x584"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("#5",Imm(64)),Int(8,64)),Var("R30",Imm(64)),LittleEndian(),64)), -Def(Tid(1_347, "%00000543"), Attrs([Attr("address","0x584"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("R31",Imm(64)), -Var("#5",Imm(64))), Def(Tid(1_353, "%00000549"), - Attrs([Attr("address","0x588"), Attr("insn","mov x29, sp")]), - Var("R29",Imm(64)), Var("R31",Imm(64))), Def(Tid(1_358, "%0000054e"), - Attrs([Attr("address","0x58C"), Attr("insn","bl #0xa8")]), - Var("R30",Imm(64)), Int(1424,64))]), Jmps([Call(Tid(1_360, "%00000550"), - Attrs([Attr("address","0x58C"), Attr("insn","bl #0xa8")]), Int(1,1), -(Direct(Tid(1_510, "@call_weak_fn")),Direct(Tid(1_362, "%00000552"))))])), -Blk(Tid(1_362, "%00000552"), Attrs([Attr("address","0x590")]), Phis([]), -Defs([Def(Tid(1_367, "%00000557"), Attrs([Attr("address","0x590"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R29",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(1_372, "%0000055c"), Attrs([Attr("address","0x590"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R30",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(1_376, "%00000560"), Attrs([Attr("address","0x590"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(16,64)))]), Jmps([Call(Tid(1_381, "%00000565"), - Attrs([Attr("address","0x594"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), Sub(Tid(1_506, "@_start"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x600"), -Attr("stub","()"), Attr("entry-point","()")]), "_start", - Args([Arg(Tid(1_530, "%000005fa"), Attrs([Attr("c.layout","[signed : 32]"), -Attr("c.data","Top:u32"), Attr("c.type","signed")]), - Var("_start_result",Imm(32)), LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(420, "@_start"), Attrs([Attr("address","0x600")]), Phis([]), -Defs([Def(Tid(425, "%000001a9"), Attrs([Attr("address","0x604"), -Attr("insn","mov x29, #0x0")]), Var("R29",Imm(64)), Int(0,64)), -Def(Tid(430, "%000001ae"), Attrs([Attr("address","0x608"), -Attr("insn","mov x30, #0x0")]), Var("R30",Imm(64)), Int(0,64)), -Def(Tid(436, "%000001b4"), Attrs([Attr("address","0x60C"), -Attr("insn","mov x5, x0")]), Var("R5",Imm(64)), Var("R0",Imm(64))), -Def(Tid(443, "%000001bb"), Attrs([Attr("address","0x610"), -Attr("insn","ldr x1, [sp]")]), Var("R1",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(449, "%000001c1"), Attrs([Attr("address","0x614"), -Attr("insn","add x2, sp, #0x8")]), Var("R2",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(8,64))), Def(Tid(455, "%000001c7"), - Attrs([Attr("address","0x618"), Attr("insn","mov x6, sp")]), - Var("R6",Imm(64)), Var("R31",Imm(64))), Def(Tid(460, "%000001cc"), - Attrs([Attr("address","0x61C"), Attr("insn","adrp x0, #65536")]), - Var("R0",Imm(64)), Int(65536,64)), Def(Tid(467, "%000001d3"), - Attrs([Attr("address","0x620"), Attr("insn","ldr x0, [x0, #0xfd8]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(4056,64)),LittleEndian(),64)), -Def(Tid(472, "%000001d8"), Attrs([Attr("address","0x624"), -Attr("insn","mov x3, #0x0")]), Var("R3",Imm(64)), Int(0,64)), -Def(Tid(477, "%000001dd"), Attrs([Attr("address","0x628"), -Attr("insn","mov x4, #0x0")]), Var("R4",Imm(64)), Int(0,64)), -Def(Tid(482, "%000001e2"), Attrs([Attr("address","0x62C"), -Attr("insn","bl #-0x6c")]), Var("R30",Imm(64)), Int(1584,64))]), -Jmps([Call(Tid(485, "%000001e5"), Attrs([Attr("address","0x62C"), -Attr("insn","bl #-0x6c")]), Int(1,1), -(Direct(Tid(1_503, "@__libc_start_main")),Direct(Tid(487, "%000001e7"))))])), -Blk(Tid(487, "%000001e7"), Attrs([Attr("address","0x630")]), Phis([]), -Defs([Def(Tid(490, "%000001ea"), Attrs([Attr("address","0x630"), -Attr("insn","bl #-0x40")]), Var("R30",Imm(64)), Int(1588,64))]), -Jmps([Call(Tid(493, "%000001ed"), Attrs([Attr("address","0x630"), -Attr("insn","bl #-0x40")]), Int(1,1), -(Direct(Tid(1_509, "@abort")),Direct(Tid(1_507, "%000005e3"))))])), -Blk(Tid(1_507, "%000005e3"), Attrs([]), Phis([]), Defs([]), -Jmps([Call(Tid(1_508, "%000005e4"), Attrs([]), Int(1,1), -(Direct(Tid(1_510, "@call_weak_fn")),))]))])), Sub(Tid(1_509, "@abort"), - Attrs([Attr("noreturn","()"), Attr("c.proto","void (*)(void)"), -Attr("address","0x5F0"), Attr("stub","()")]), "abort", Args([]), -Blks([Blk(Tid(491, "@abort"), Attrs([Attr("address","0x5F0")]), Phis([]), -Defs([Def(Tid(1_188, "%000004a4"), Attrs([Attr("address","0x5F0"), -Attr("insn","adrp x16, #69632")]), Var("R16",Imm(64)), Int(69632,64)), -Def(Tid(1_195, "%000004ab"), Attrs([Attr("address","0x5F4"), -Attr("insn","ldr x17, [x16, #0x18]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(24,64)),LittleEndian(),64)), -Def(Tid(1_201, "%000004b1"), Attrs([Attr("address","0x5F8"), -Attr("insn","add x16, x16, #0x18")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(24,64)))]), Jmps([Call(Tid(1_206, "%000004b6"), - Attrs([Attr("address","0x5FC"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), Sub(Tid(1_510, "@call_weak_fn"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x634")]), - "call_weak_fn", Args([Arg(Tid(1_531, "%000005fb"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("call_weak_fn_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(495, "@call_weak_fn"), - Attrs([Attr("address","0x634")]), Phis([]), Defs([Def(Tid(498, "%000001f2"), - Attrs([Attr("address","0x634"), Attr("insn","adrp x0, #65536")]), - Var("R0",Imm(64)), Int(65536,64)), Def(Tid(505, "%000001f9"), - Attrs([Attr("address","0x638"), Attr("insn","ldr x0, [x0, #0xfd0]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(4048,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(511, "%000001ff"), Attrs([Attr("address","0x63C"), -Attr("insn","cbz x0, #0x8")]), EQ(Var("R0",Imm(64)),Int(0,64)), -Direct(Tid(509, "%000001fd"))), Goto(Tid(1_511, "%000005e7"), Attrs([]), - Int(1,1), Direct(Tid(960, "%000003c0")))])), Blk(Tid(509, "%000001fd"), - Attrs([Attr("address","0x644")]), Phis([]), Defs([]), -Jmps([Call(Tid(517, "%00000205"), Attrs([Attr("address","0x644"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))])), -Blk(Tid(960, "%000003c0"), Attrs([Attr("address","0x640")]), Phis([]), -Defs([]), Jmps([Goto(Tid(963, "%000003c3"), Attrs([Attr("address","0x640"), -Attr("insn","b #-0x60")]), Int(1,1), Direct(Tid(961, "@__gmon_start__")))])), -Blk(Tid(961, "@__gmon_start__"), Attrs([Attr("address","0x5E0")]), Phis([]), -Defs([Def(Tid(1_166, "%0000048e"), Attrs([Attr("address","0x5E0"), -Attr("insn","adrp x16, #69632")]), Var("R16",Imm(64)), Int(69632,64)), -Def(Tid(1_173, "%00000495"), Attrs([Attr("address","0x5E4"), -Attr("insn","ldr x17, [x16, #0x10]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(16,64)),LittleEndian(),64)), -Def(Tid(1_179, "%0000049b"), Attrs([Attr("address","0x5E8"), -Attr("insn","add x16, x16, #0x10")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(16,64)))]), Jmps([Call(Tid(1_184, "%000004a0"), - Attrs([Attr("address","0x5EC"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), -Sub(Tid(1_512, "@deregister_tm_clones"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x650")]), - "deregister_tm_clones", Args([Arg(Tid(1_532, "%000005fc"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("deregister_tm_clones_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(523, "@deregister_tm_clones"), - Attrs([Attr("address","0x650")]), Phis([]), Defs([Def(Tid(526, "%0000020e"), - Attrs([Attr("address","0x650"), Attr("insn","adrp x0, #69632")]), - Var("R0",Imm(64)), Int(69632,64)), Def(Tid(532, "%00000214"), - Attrs([Attr("address","0x654"), Attr("insn","add x0, x0, #0x30")]), - Var("R0",Imm(64)), PLUS(Var("R0",Imm(64)),Int(48,64))), -Def(Tid(537, "%00000219"), Attrs([Attr("address","0x658"), -Attr("insn","adrp x1, #69632")]), Var("R1",Imm(64)), Int(69632,64)), -Def(Tid(543, "%0000021f"), Attrs([Attr("address","0x65C"), -Attr("insn","add x1, x1, #0x30")]), Var("R1",Imm(64)), -PLUS(Var("R1",Imm(64)),Int(48,64))), Def(Tid(549, "%00000225"), - Attrs([Attr("address","0x660"), Attr("insn","cmp x1, x0")]), - Var("#1",Imm(64)), NOT(Var("R0",Imm(64)))), Def(Tid(554, "%0000022a"), - Attrs([Attr("address","0x660"), Attr("insn","cmp x1, x0")]), - Var("#2",Imm(64)), PLUS(Var("R1",Imm(64)),NOT(Var("R0",Imm(64))))), -Def(Tid(560, "%00000230"), Attrs([Attr("address","0x660"), -Attr("insn","cmp x1, x0")]), Var("VF",Imm(1)), -NEQ(SIGNED(65,PLUS(Var("#2",Imm(64)),Int(1,64))),PLUS(PLUS(SIGNED(65,Var("R1",Imm(64))),SIGNED(65,Var("#1",Imm(64)))),Int(1,65)))), -Def(Tid(566, "%00000236"), Attrs([Attr("address","0x660"), -Attr("insn","cmp x1, x0")]), Var("CF",Imm(1)), -NEQ(UNSIGNED(65,PLUS(Var("#2",Imm(64)),Int(1,64))),PLUS(PLUS(UNSIGNED(65,Var("R1",Imm(64))),UNSIGNED(65,Var("#1",Imm(64)))),Int(1,65)))), -Def(Tid(570, "%0000023a"), Attrs([Attr("address","0x660"), -Attr("insn","cmp x1, x0")]), Var("ZF",Imm(1)), -EQ(PLUS(Var("#2",Imm(64)),Int(1,64)),Int(0,64))), Def(Tid(574, "%0000023e"), - Attrs([Attr("address","0x660"), Attr("insn","cmp x1, x0")]), - Var("NF",Imm(1)), Extract(63,63,PLUS(Var("#2",Imm(64)),Int(1,64))))]), -Jmps([Goto(Tid(580, "%00000244"), Attrs([Attr("address","0x664"), -Attr("insn","b.eq #0x18")]), EQ(Var("ZF",Imm(1)),Int(1,1)), -Direct(Tid(578, "%00000242"))), Goto(Tid(1_513, "%000005e9"), Attrs([]), - Int(1,1), Direct(Tid(930, "%000003a2")))])), Blk(Tid(930, "%000003a2"), - Attrs([Attr("address","0x668")]), Phis([]), Defs([Def(Tid(933, "%000003a5"), - Attrs([Attr("address","0x668"), Attr("insn","adrp x1, #65536")]), - Var("R1",Imm(64)), Int(65536,64)), Def(Tid(940, "%000003ac"), - Attrs([Attr("address","0x66C"), Attr("insn","ldr x1, [x1, #0xfc0]")]), - Var("R1",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R1",Imm(64)),Int(4032,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(945, "%000003b1"), Attrs([Attr("address","0x670"), -Attr("insn","cbz x1, #0xc")]), EQ(Var("R1",Imm(64)),Int(0,64)), -Direct(Tid(578, "%00000242"))), Goto(Tid(1_514, "%000005ea"), Attrs([]), - Int(1,1), Direct(Tid(949, "%000003b5")))])), Blk(Tid(578, "%00000242"), - Attrs([Attr("address","0x67C")]), Phis([]), Defs([]), -Jmps([Call(Tid(586, "%0000024a"), Attrs([Attr("address","0x67C"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))])), -Blk(Tid(949, "%000003b5"), Attrs([Attr("address","0x674")]), Phis([]), -Defs([Def(Tid(953, "%000003b9"), Attrs([Attr("address","0x674"), -Attr("insn","mov x16, x1")]), Var("R16",Imm(64)), Var("R1",Imm(64)))]), -Jmps([Call(Tid(958, "%000003be"), Attrs([Attr("address","0x678"), -Attr("insn","br x16")]), Int(1,1), (Indirect(Var("R16",Imm(64))),))]))])), -Sub(Tid(1_515, "@frame_dummy"), Attrs([Attr("c.proto","signed (*)(void)"), -Attr("address","0x710")]), "frame_dummy", Args([Arg(Tid(1_533, "%000005fd"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("frame_dummy_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(738, "@frame_dummy"), - Attrs([Attr("address","0x710")]), Phis([]), Defs([]), -Jmps([Call(Tid(740, "%000002e4"), Attrs([Attr("address","0x710"), -Attr("insn","b #-0x90")]), Int(1,1), -(Direct(Tid(1_517, "@register_tm_clones")),))]))])), Sub(Tid(1_516, "@main"), - Attrs([Attr("c.proto","signed (*)(signed argc, const char** argv)"), -Attr("address","0x714")]), "main", Args([Arg(Tid(1_534, "%000005fe"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("main_argc",Imm(32)), -LOW(32,Var("R0",Imm(64))), In()), Arg(Tid(1_535, "%000005ff"), - Attrs([Attr("c.layout","**[char : 8]"), Attr("c.data","Top:u8 ptr ptr"), -Attr("c.type"," const char**")]), Var("main_argv",Imm(64)), -Var("R1",Imm(64)), Both()), Arg(Tid(1_536, "%00000600"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("main_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(742, "@main"), - Attrs([Attr("address","0x714")]), Phis([]), Defs([Def(Tid(746, "%000002ea"), - Attrs([Attr("address","0x714"), Attr("insn","sub sp, sp, #0x10")]), - Var("R31",Imm(64)), PLUS(Var("R31",Imm(64)),Int(18446744073709551600,64))), -Def(Tid(751, "%000002ef"), Attrs([Attr("address","0x718"), -Attr("insn","adrp x8, #69632")]), Var("R8",Imm(64)), Int(69632,64)), -Def(Tid(758, "%000002f6"), Attrs([Attr("address","0x71C"), -Attr("insn","ldrb w9, [x8, #0x31]")]), Var("R9",Imm(64)), -UNSIGNED(64,Load(Var("mem",Mem(64,8)),PLUS(Var("R8",Imm(64)),Int(49,64)),LittleEndian(),8))), -Def(Tid(766, "%000002fe"), Attrs([Attr("address","0x720"), -Attr("insn","strb w9, [sp, #0xf]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(15,64)),Extract(7,0,Var("R9",Imm(64))),LittleEndian(),8)), -Def(Tid(773, "%00000305"), Attrs([Attr("address","0x724"), -Attr("insn","strb wzr, [sp, #0xf]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(15,64)),Int(0,8),LittleEndian(),8)), -Def(Tid(780, "%0000030c"), Attrs([Attr("address","0x728"), -Attr("insn","ldrb w10, [sp, #0xf]")]), Var("R10",Imm(64)), -UNSIGNED(64,Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(15,64)),LittleEndian(),8))), -Def(Tid(785, "%00000311"), Attrs([Attr("address","0x72C"), -Attr("insn","adrp x9, #69632")]), Var("R9",Imm(64)), Int(69632,64)), -Def(Tid(793, "%00000319"), Attrs([Attr("address","0x730"), -Attr("insn","strb w10, [x9, #0x32]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R9",Imm(64)),Int(50,64)),Extract(7,0,Var("R10",Imm(64))),LittleEndian(),8)), -Def(Tid(800, "%00000320"), Attrs([Attr("address","0x734"), -Attr("insn","ldrb w8, [x8, #0x31]")]), Var("R8",Imm(64)), -UNSIGNED(64,Load(Var("mem",Mem(64,8)),PLUS(Var("R8",Imm(64)),Int(49,64)),LittleEndian(),8))), -Def(Tid(808, "%00000328"), Attrs([Attr("address","0x738"), -Attr("insn","strb w8, [sp, #0xf]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(15,64)),Extract(7,0,Var("R8",Imm(64))),LittleEndian(),8)), -Def(Tid(815, "%0000032f"), Attrs([Attr("address","0x73C"), -Attr("insn","ldrb w8, [sp, #0xf]")]), Var("R8",Imm(64)), -UNSIGNED(64,Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(15,64)),LittleEndian(),8))), -Def(Tid(823, "%00000337"), Attrs([Attr("address","0x740"), -Attr("insn","strb w8, [x9, #0x32]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R9",Imm(64)),Int(50,64)),Extract(7,0,Var("R8",Imm(64))),LittleEndian(),8)), -Def(Tid(828, "%0000033c"), Attrs([Attr("address","0x744"), -Attr("insn","mov w0, wzr")]), Var("R0",Imm(64)), Int(0,64)), -Def(Tid(834, "%00000342"), Attrs([Attr("address","0x748"), -Attr("insn","add sp, sp, #0x10")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(16,64)))]), Jmps([Call(Tid(839, "%00000347"), - Attrs([Attr("address","0x74C"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), -Sub(Tid(1_517, "@register_tm_clones"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x680")]), - "register_tm_clones", Args([Arg(Tid(1_537, "%00000601"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("register_tm_clones_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(588, "@register_tm_clones"), Attrs([Attr("address","0x680")]), - Phis([]), Defs([Def(Tid(591, "%0000024f"), Attrs([Attr("address","0x680"), -Attr("insn","adrp x0, #69632")]), Var("R0",Imm(64)), Int(69632,64)), -Def(Tid(597, "%00000255"), Attrs([Attr("address","0x684"), -Attr("insn","add x0, x0, #0x30")]), Var("R0",Imm(64)), -PLUS(Var("R0",Imm(64)),Int(48,64))), Def(Tid(602, "%0000025a"), - Attrs([Attr("address","0x688"), Attr("insn","adrp x1, #69632")]), - Var("R1",Imm(64)), Int(69632,64)), Def(Tid(608, "%00000260"), - Attrs([Attr("address","0x68C"), Attr("insn","add x1, x1, #0x30")]), - Var("R1",Imm(64)), PLUS(Var("R1",Imm(64)),Int(48,64))), -Def(Tid(615, "%00000267"), Attrs([Attr("address","0x690"), -Attr("insn","sub x1, x1, x0")]), Var("R1",Imm(64)), -PLUS(PLUS(Var("R1",Imm(64)),NOT(Var("R0",Imm(64)))),Int(1,64))), -Def(Tid(621, "%0000026d"), Attrs([Attr("address","0x694"), -Attr("insn","lsr x2, x1, #63")]), Var("R2",Imm(64)), -Concat(Int(0,63),Extract(63,63,Var("R1",Imm(64))))), -Def(Tid(628, "%00000274"), Attrs([Attr("address","0x698"), -Attr("insn","add x1, x2, x1, asr #3")]), Var("R1",Imm(64)), -PLUS(Var("R2",Imm(64)),ARSHIFT(Var("R1",Imm(64)),Int(3,3)))), -Def(Tid(634, "%0000027a"), Attrs([Attr("address","0x69C"), -Attr("insn","asr x1, x1, #1")]), Var("R1",Imm(64)), -SIGNED(64,Extract(63,1,Var("R1",Imm(64)))))]), -Jmps([Goto(Tid(640, "%00000280"), Attrs([Attr("address","0x6A0"), -Attr("insn","cbz x1, #0x18")]), EQ(Var("R1",Imm(64)),Int(0,64)), -Direct(Tid(638, "%0000027e"))), Goto(Tid(1_518, "%000005ee"), Attrs([]), - Int(1,1), Direct(Tid(900, "%00000384")))])), Blk(Tid(900, "%00000384"), - Attrs([Attr("address","0x6A4")]), Phis([]), Defs([Def(Tid(903, "%00000387"), - Attrs([Attr("address","0x6A4"), Attr("insn","adrp x2, #65536")]), - Var("R2",Imm(64)), Int(65536,64)), Def(Tid(910, "%0000038e"), - Attrs([Attr("address","0x6A8"), Attr("insn","ldr x2, [x2, #0xfe0]")]), - Var("R2",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R2",Imm(64)),Int(4064,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(915, "%00000393"), Attrs([Attr("address","0x6AC"), -Attr("insn","cbz x2, #0xc")]), EQ(Var("R2",Imm(64)),Int(0,64)), -Direct(Tid(638, "%0000027e"))), Goto(Tid(1_519, "%000005ef"), Attrs([]), - Int(1,1), Direct(Tid(919, "%00000397")))])), Blk(Tid(638, "%0000027e"), - Attrs([Attr("address","0x6B8")]), Phis([]), Defs([]), -Jmps([Call(Tid(646, "%00000286"), Attrs([Attr("address","0x6B8"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))])), -Blk(Tid(919, "%00000397"), Attrs([Attr("address","0x6B0")]), Phis([]), -Defs([Def(Tid(923, "%0000039b"), Attrs([Attr("address","0x6B0"), -Attr("insn","mov x16, x2")]), Var("R16",Imm(64)), Var("R2",Imm(64)))]), -Jmps([Call(Tid(928, "%000003a0"), Attrs([Attr("address","0x6B4"), -Attr("insn","br x16")]), Int(1,1), -(Indirect(Var("R16",Imm(64))),))]))]))]))) \ No newline at end of file diff --git a/src/test/incorrect/basicassign3/clang/basicassign3.bir b/src/test/incorrect/basicassign3/clang/basicassign3.bir deleted file mode 100644 index 0552d0f10..000000000 --- a/src/test/incorrect/basicassign3/clang/basicassign3.bir +++ /dev/null @@ -1,237 +0,0 @@ -000005f0: program -000005da: sub __cxa_finalize(__cxa_finalize_result) -000005f1: __cxa_finalize_result :: out u32 = low:32[R0] - -00000380: -00000478: R16 := 0x11000 -0000047f: R17 := mem[R16 + 8, el]:u64 -00000485: R16 := R16 + 8 -0000048a: call R17 with noreturn - -000005db: sub __do_global_dtors_aux(__do_global_dtors_aux_result) -000005f2: __do_global_dtors_aux_result :: out u32 = low:32[R0] - -0000028a: -0000028e: #3 := R31 - 0x20 -00000294: mem := mem with [#3, el]:u64 <- R29 -0000029a: mem := mem with [#3 + 8, el]:u64 <- R30 -0000029e: R31 := #3 -000002a4: R29 := R31 -000002ac: mem := mem with [R31 + 0x10, el]:u64 <- R19 -000002b1: R19 := 0x11000 -000002b8: R0 := pad:64[mem[R19 + 0x30]] -000002bf: when 31:0[R0] <> 0 goto %000002bd -000005dc: goto %00000349 - -00000349: -0000034c: R0 := 0x10000 -00000353: R0 := mem[R0 + 0xFC8, el]:u64 -00000359: when R0 = 0 goto %00000357 -000005dd: goto %00000370 - -00000370: -00000373: R0 := 0x11000 -0000037a: R0 := mem[R0 + 0x28, el]:u64 -0000037f: R30 := 0x6F0 -00000382: call @__cxa_finalize with return %00000357 - -00000357: -0000035f: R30 := 0x6F4 -00000361: call @deregister_tm_clones with return %00000363 - -00000363: -00000366: R0 := 1 -0000036e: mem := mem with [R19 + 0x30] <- 7:0[R0] -000005de: goto %000002bd - -000002bd: -000002c7: R19 := mem[R31 + 0x10, el]:u64 -000002ce: R29 := mem[R31, el]:u64 -000002d3: R30 := mem[R31 + 8, el]:u64 -000002d7: R31 := R31 + 0x20 -000002dc: call R30 with noreturn - -000005df: sub __libc_start_main(__libc_start_main_main, __libc_start_main_arg2, __libc_start_main_arg3, __libc_start_main_auxv, __libc_start_main_result) -000005f3: __libc_start_main_main :: in u64 = R0 -000005f4: __libc_start_main_arg2 :: in u32 = low:32[R1] -000005f5: __libc_start_main_arg3 :: in out u64 = R2 -000005f6: __libc_start_main_auxv :: in out u64 = R3 -000005f7: __libc_start_main_result :: out u32 = low:32[R0] - -000001e3: -00000462: R16 := 0x11000 -00000469: R17 := mem[R16, el]:u64 -0000046f: R16 := R16 -00000474: call R17 with noreturn - -000005e0: sub _fini(_fini_result) -000005f8: _fini_result :: out u32 = low:32[R0] - -0000001f: -00000025: #0 := R31 - 0x10 -0000002b: mem := mem with [#0, el]:u64 <- R29 -00000031: mem := mem with [#0 + 8, el]:u64 <- R30 -00000035: R31 := #0 -0000003b: R29 := R31 -00000042: R29 := mem[R31, el]:u64 -00000047: R30 := mem[R31 + 8, el]:u64 -0000004b: R31 := R31 + 0x10 -00000050: call R30 with noreturn - -000005e1: sub _init(_init_result) -000005f9: _init_result :: out u32 = low:32[R0] - -0000052d: -00000533: #5 := R31 - 0x10 -00000539: mem := mem with [#5, el]:u64 <- R29 -0000053f: mem := mem with [#5 + 8, el]:u64 <- R30 -00000543: R31 := #5 -00000549: R29 := R31 -0000054e: R30 := 0x590 -00000550: call @call_weak_fn with return %00000552 - -00000552: -00000557: R29 := mem[R31, el]:u64 -0000055c: R30 := mem[R31 + 8, el]:u64 -00000560: R31 := R31 + 0x10 -00000565: call R30 with noreturn - -000005e2: sub _start(_start_result) -000005fa: _start_result :: out u32 = low:32[R0] - -000001a4: -000001a9: R29 := 0 -000001ae: R30 := 0 -000001b4: R5 := R0 -000001bb: R1 := mem[R31, el]:u64 -000001c1: R2 := R31 + 8 -000001c7: R6 := R31 -000001cc: R0 := 0x10000 -000001d3: R0 := mem[R0 + 0xFD8, el]:u64 -000001d8: R3 := 0 -000001dd: R4 := 0 -000001e2: R30 := 0x630 -000001e5: call @__libc_start_main with return %000001e7 - -000001e7: -000001ea: R30 := 0x634 -000001ed: call @abort with return %000005e3 - -000005e3: -000005e4: call @call_weak_fn with noreturn - -000005e5: sub abort() - - -000001eb: -000004a4: R16 := 0x11000 -000004ab: R17 := mem[R16 + 0x18, el]:u64 -000004b1: R16 := R16 + 0x18 -000004b6: call R17 with noreturn - -000005e6: sub call_weak_fn(call_weak_fn_result) -000005fb: call_weak_fn_result :: out u32 = low:32[R0] - -000001ef: -000001f2: R0 := 0x10000 -000001f9: R0 := mem[R0 + 0xFD0, el]:u64 -000001ff: when R0 = 0 goto %000001fd -000005e7: goto %000003c0 - -000001fd: -00000205: call R30 with noreturn - -000003c0: -000003c3: goto @__gmon_start__ - -000003c1: -0000048e: R16 := 0x11000 -00000495: R17 := mem[R16 + 0x10, el]:u64 -0000049b: R16 := R16 + 0x10 -000004a0: call R17 with noreturn - -000005e8: sub deregister_tm_clones(deregister_tm_clones_result) -000005fc: deregister_tm_clones_result :: out u32 = low:32[R0] - -0000020b: -0000020e: R0 := 0x11000 -00000214: R0 := R0 + 0x30 -00000219: R1 := 0x11000 -0000021f: R1 := R1 + 0x30 -00000225: #1 := ~R0 -0000022a: #2 := R1 + ~R0 -00000230: VF := extend:65[#2 + 1] <> extend:65[R1] + extend:65[#1] + 1 -00000236: CF := pad:65[#2 + 1] <> pad:65[R1] + pad:65[#1] + 1 -0000023a: ZF := #2 + 1 = 0 -0000023e: NF := 63:63[#2 + 1] -00000244: when ZF goto %00000242 -000005e9: goto %000003a2 - -000003a2: -000003a5: R1 := 0x10000 -000003ac: R1 := mem[R1 + 0xFC0, el]:u64 -000003b1: when R1 = 0 goto %00000242 -000005ea: goto %000003b5 - -00000242: -0000024a: call R30 with noreturn - -000003b5: -000003b9: R16 := R1 -000003be: call R16 with noreturn - -000005eb: sub frame_dummy(frame_dummy_result) -000005fd: frame_dummy_result :: out u32 = low:32[R0] - -000002e2: -000002e4: call @register_tm_clones with noreturn - -000005ec: sub main(main_argc, main_argv, main_result) -000005fe: main_argc :: in u32 = low:32[R0] -000005ff: main_argv :: in out u64 = R1 -00000600: main_result :: out u32 = low:32[R0] - -000002e6: -000002ea: R31 := R31 - 0x10 -000002ef: R8 := 0x11000 -000002f6: R9 := pad:64[mem[R8 + 0x31]] -000002fe: mem := mem with [R31 + 0xF] <- 7:0[R9] -00000305: mem := mem with [R31 + 0xF] <- 0 -0000030c: R10 := pad:64[mem[R31 + 0xF]] -00000311: R9 := 0x11000 -00000319: mem := mem with [R9 + 0x32] <- 7:0[R10] -00000320: R8 := pad:64[mem[R8 + 0x31]] -00000328: mem := mem with [R31 + 0xF] <- 7:0[R8] -0000032f: R8 := pad:64[mem[R31 + 0xF]] -00000337: mem := mem with [R9 + 0x32] <- 7:0[R8] -0000033c: R0 := 0 -00000342: R31 := R31 + 0x10 -00000347: call R30 with noreturn - -000005ed: sub register_tm_clones(register_tm_clones_result) -00000601: register_tm_clones_result :: out u32 = low:32[R0] - -0000024c: -0000024f: R0 := 0x11000 -00000255: R0 := R0 + 0x30 -0000025a: R1 := 0x11000 -00000260: R1 := R1 + 0x30 -00000267: R1 := R1 + ~R0 + 1 -0000026d: R2 := 0.63:63[R1] -00000274: R1 := R2 + (R1 ~>> 3) -0000027a: R1 := extend:64[63:1[R1]] -00000280: when R1 = 0 goto %0000027e -000005ee: goto %00000384 - -00000384: -00000387: R2 := 0x10000 -0000038e: R2 := mem[R2 + 0xFE0, el]:u64 -00000393: when R2 = 0 goto %0000027e -000005ef: goto %00000397 - -0000027e: -00000286: call R30 with noreturn - -00000397: -0000039b: R16 := R2 -000003a0: call R16 with noreturn diff --git a/src/test/incorrect/basicassign3/clang/basicassign3.expected b/src/test/incorrect/basicassign3/clang/basicassign3.expected index 2f778d1ff..e22cf08e6 100644 --- a/src/test/incorrect/basicassign3/clang/basicassign3.expected +++ b/src/test/incorrect/basicassign3/clang/basicassign3.expected @@ -1,26 +1,24 @@ var {:extern} Gamma_R0: bool; -var {:extern} Gamma_R10: bool; -var {:extern} Gamma_R31: bool; var {:extern} Gamma_R8: bool; var {:extern} Gamma_R9: bool; var {:extern} Gamma_mem: [bv64]bool; -var {:extern} Gamma_stack: [bv64]bool; var {:extern} R0: bv64; -var {:extern} R10: bv64; -var {:extern} R31: bv64; var {:extern} R8: bv64; var {:extern} R9: bv64; var {:extern} mem: [bv64]bv8; -var {:extern} stack: [bv64]bv8; const {:extern} $secret_addr: bv64; -axiom ($secret_addr == 69681bv64); +axiom ($secret_addr == 131089bv64); const {:extern} $z_addr: bv64; -axiom ($z_addr == 69682bv64); +axiom ($z_addr == 131090bv64); function {:extern} L(mem$in: [bv64]bv8, index: bv64) returns (bool) { (if (index == $secret_addr) then false else (if (index == $z_addr) then true else false)) } function {:extern} {:bvbuiltin "bvadd"} bvadd64(bv64, bv64) returns (bv64); +function {:extern} gamma_load64(gammaMap: [bv64]bool, index: bv64) returns (bool) { + (gammaMap[bvadd64(index, 7bv64)] && (gammaMap[bvadd64(index, 6bv64)] && (gammaMap[bvadd64(index, 5bv64)] && (gammaMap[bvadd64(index, 4bv64)] && (gammaMap[bvadd64(index, 3bv64)] && (gammaMap[bvadd64(index, 2bv64)] && (gammaMap[bvadd64(index, 1bv64)] && gammaMap[index]))))))) +} + function {:extern} gamma_load8(gammaMap: [bv64]bool, index: bv64) returns (bool) { gammaMap[index] } @@ -50,11 +48,13 @@ procedure {:extern} rely(); modifies Gamma_mem, mem; ensures (Gamma_mem == old(Gamma_mem)); ensures (mem == old(mem)); - free ensures (memory_load32_le(mem, 1892bv64) == 131073bv32); - free ensures (memory_load64_le(mem, 69064bv64) == 1808bv64); - free ensures (memory_load64_le(mem, 69072bv64) == 1728bv64); - free ensures (memory_load64_le(mem, 69592bv64) == 1812bv64); - free ensures (memory_load64_le(mem, 69672bv64) == 69672bv64); + free ensures (memory_load32_le(mem, 2312bv64) == 131073bv32); + free ensures (memory_load64_le(mem, 130424bv64) == 2256bv64); + free ensures (memory_load64_le(mem, 130432bv64) == 2176bv64); + free ensures (memory_load64_le(mem, 131032bv64) == 131090bv64); + free ensures (memory_load64_le(mem, 131048bv64) == 131089bv64); + free ensures (memory_load64_le(mem, 131056bv64) == 2260bv64); + free ensures (memory_load64_le(mem, 131080bv64) == 131080bv64); procedure {:extern} rely_transitive(); modifies Gamma_mem, mem; @@ -72,67 +72,54 @@ procedure {:extern} rely_reflexive(); procedure {:extern} guarantee_reflexive(); modifies Gamma_mem, mem; -procedure main_1812(); - modifies Gamma_R0, Gamma_R10, Gamma_R31, Gamma_R8, Gamma_R9, Gamma_mem, Gamma_stack, R0, R10, R31, R8, R9, mem, stack; - free requires (memory_load64_le(mem, 69664bv64) == 0bv64); - free requires (memory_load64_le(mem, 69672bv64) == 69672bv64); - free requires (memory_load32_le(mem, 1892bv64) == 131073bv32); - free requires (memory_load64_le(mem, 69064bv64) == 1808bv64); - free requires (memory_load64_le(mem, 69072bv64) == 1728bv64); - free requires (memory_load64_le(mem, 69592bv64) == 1812bv64); - free requires (memory_load64_le(mem, 69672bv64) == 69672bv64); - free ensures (Gamma_R31 == old(Gamma_R31)); - free ensures (R31 == old(R31)); - free ensures (memory_load32_le(mem, 1892bv64) == 131073bv32); - free ensures (memory_load64_le(mem, 69064bv64) == 1808bv64); - free ensures (memory_load64_le(mem, 69072bv64) == 1728bv64); - free ensures (memory_load64_le(mem, 69592bv64) == 1812bv64); - free ensures (memory_load64_le(mem, 69672bv64) == 69672bv64); +procedure main(); + modifies Gamma_R0, Gamma_R8, Gamma_R9, Gamma_mem, R0, R8, R9, mem; + free requires (memory_load64_le(mem, 131072bv64) == 0bv64); + free requires (memory_load64_le(mem, 131080bv64) == 131080bv64); + free requires (memory_load32_le(mem, 2312bv64) == 131073bv32); + free requires (memory_load64_le(mem, 130424bv64) == 2256bv64); + free requires (memory_load64_le(mem, 130432bv64) == 2176bv64); + free requires (memory_load64_le(mem, 131032bv64) == 131090bv64); + free requires (memory_load64_le(mem, 131048bv64) == 131089bv64); + free requires (memory_load64_le(mem, 131056bv64) == 2260bv64); + free requires (memory_load64_le(mem, 131080bv64) == 131080bv64); + free ensures (memory_load32_le(mem, 2312bv64) == 131073bv32); + free ensures (memory_load64_le(mem, 130424bv64) == 2256bv64); + free ensures (memory_load64_le(mem, 130432bv64) == 2176bv64); + free ensures (memory_load64_le(mem, 131032bv64) == 131090bv64); + free ensures (memory_load64_le(mem, 131048bv64) == 131089bv64); + free ensures (memory_load64_le(mem, 131056bv64) == 2260bv64); + free ensures (memory_load64_le(mem, 131080bv64) == 131080bv64); -implementation main_1812() +implementation main() { - var Gamma_load18: bool; - var Gamma_load19: bool; - var Gamma_load20: bool; - var Gamma_load21: bool; - var load18: bv8; - var load19: bv8; - var load20: bv8; - var load21: bv8; + var $load$18: bv64; + var $load$19: bv8; + var $load$20: bv64; + var Gamma_$load$18: bool; + var Gamma_$load$19: bool; + var Gamma_$load$20: bool; lmain: assume {:captureState "lmain"} true; - R31, Gamma_R31 := bvadd64(R31, 18446744073709551600bv64), Gamma_R31; - R8, Gamma_R8 := 69632bv64, true; + R8, Gamma_R8 := 126976bv64, true; + R9, Gamma_R9 := 126976bv64, true; + R0, Gamma_R0 := 0bv64, true; call rely(); - load18, Gamma_load18 := memory_load8_le(mem, bvadd64(R8, 49bv64)), (gamma_load8(Gamma_mem, bvadd64(R8, 49bv64)) || L(mem, bvadd64(R8, 49bv64))); - R9, Gamma_R9 := zero_extend56_8(load18), Gamma_load18; - stack, Gamma_stack := memory_store8_le(stack, bvadd64(R31, 15bv64), R9[8:0]), gamma_store8(Gamma_stack, bvadd64(R31, 15bv64), Gamma_R9); - assume {:captureState "%000002fe"} true; - stack, Gamma_stack := memory_store8_le(stack, bvadd64(R31, 15bv64), 0bv8), gamma_store8(Gamma_stack, bvadd64(R31, 15bv64), true); - assume {:captureState "%00000305"} true; - load19, Gamma_load19 := memory_load8_le(stack, bvadd64(R31, 15bv64)), gamma_load8(Gamma_stack, bvadd64(R31, 15bv64)); - R10, Gamma_R10 := zero_extend56_8(load19), Gamma_load19; - R9, Gamma_R9 := 69632bv64, true; + $load$18, Gamma_$load$18 := memory_load64_le(mem, bvadd64(R8, 4072bv64)), (gamma_load64(Gamma_mem, bvadd64(R8, 4072bv64)) || L(mem, bvadd64(R8, 4072bv64))); + R8, Gamma_R8 := $load$18, Gamma_$load$18; call rely(); - assert (L(mem, bvadd64(R9, 50bv64)) ==> Gamma_R10); - mem, Gamma_mem := memory_store8_le(mem, bvadd64(R9, 50bv64), R10[8:0]), gamma_store8(Gamma_mem, bvadd64(R9, 50bv64), Gamma_R10); - assume {:captureState "%00000319"} true; + $load$19, Gamma_$load$19 := memory_load8_le(mem, R8), (gamma_load8(Gamma_mem, R8) || L(mem, R8)); + R8, Gamma_R8 := zero_extend56_8($load$19), Gamma_$load$19; call rely(); - load20, Gamma_load20 := memory_load8_le(mem, bvadd64(R8, 49bv64)), (gamma_load8(Gamma_mem, bvadd64(R8, 49bv64)) || L(mem, bvadd64(R8, 49bv64))); - R8, Gamma_R8 := zero_extend56_8(load20), Gamma_load20; - stack, Gamma_stack := memory_store8_le(stack, bvadd64(R31, 15bv64), R8[8:0]), gamma_store8(Gamma_stack, bvadd64(R31, 15bv64), Gamma_R8); - assume {:captureState "%00000328"} true; - load21, Gamma_load21 := memory_load8_le(stack, bvadd64(R31, 15bv64)), gamma_load8(Gamma_stack, bvadd64(R31, 15bv64)); - R8, Gamma_R8 := zero_extend56_8(load21), Gamma_load21; + $load$20, Gamma_$load$20 := memory_load64_le(mem, bvadd64(R9, 4056bv64)), (gamma_load64(Gamma_mem, bvadd64(R9, 4056bv64)) || L(mem, bvadd64(R9, 4056bv64))); + R9, Gamma_R9 := $load$20, Gamma_$load$20; call rely(); - assert (L(mem, bvadd64(R9, 50bv64)) ==> Gamma_R8); - mem, Gamma_mem := memory_store8_le(mem, bvadd64(R9, 50bv64), R8[8:0]), gamma_store8(Gamma_mem, bvadd64(R9, 50bv64), Gamma_R8); - assume {:captureState "%00000337"} true; - R0, Gamma_R0 := 0bv64, true; - R31, Gamma_R31 := bvadd64(R31, 16bv64), Gamma_R31; - goto main_1812_basil_return; - main_1812_basil_return: - assume {:captureState "main_1812_basil_return"} true; + assert (L(mem, R9) ==> Gamma_R8); + mem, Gamma_mem := memory_store8_le(mem, R9, R8[8:0]), gamma_store8(Gamma_mem, R9, Gamma_R8); + assume {:captureState "%00000294"} true; + goto main_basil_return; + main_basil_return: + assume {:captureState "main_basil_return"} true; return; } diff --git a/src/test/incorrect/basicassign3/clang/basicassign3.gts b/src/test/incorrect/basicassign3/clang/basicassign3.gts deleted file mode 100644 index d80e2a712..000000000 Binary files a/src/test/incorrect/basicassign3/clang/basicassign3.gts and /dev/null differ diff --git a/src/test/incorrect/basicassign3/clang/basicassign3.md5sum b/src/test/incorrect/basicassign3/clang/basicassign3.md5sum new file mode 100644 index 000000000..53a3650cc --- /dev/null +++ b/src/test/incorrect/basicassign3/clang/basicassign3.md5sum @@ -0,0 +1,5 @@ +f76da7406faf2be9a0035c7a8bd31ce4 incorrect/basicassign3/clang/a.out +a4e1bca153a6dccbd86b4f008cd02be1 incorrect/basicassign3/clang/basicassign3.adt +b3fe4a8f7827819d59fefb1a5afe20c4 incorrect/basicassign3/clang/basicassign3.bir +e68a39805bdcf29ab61b3d4fe7a008bf incorrect/basicassign3/clang/basicassign3.relf +a5cf9340dfb25b5efe1c90b471d36bc1 incorrect/basicassign3/clang/basicassign3.gts diff --git a/src/test/incorrect/basicassign3/clang/basicassign3.relf b/src/test/incorrect/basicassign3/clang/basicassign3.relf deleted file mode 100644 index a3480d76d..000000000 --- a/src/test/incorrect/basicassign3/clang/basicassign3.relf +++ /dev/null @@ -1,124 +0,0 @@ - -Relocation section '.rela.dyn' at offset 0x460 contains 8 entries: - Offset Info Type Symbol's Value Symbol's Name + Addend -0000000000010dc8 0000000000000403 R_AARCH64_RELATIVE 710 -0000000000010dd0 0000000000000403 R_AARCH64_RELATIVE 6c0 -0000000000010fd8 0000000000000403 R_AARCH64_RELATIVE 714 -0000000000011028 0000000000000403 R_AARCH64_RELATIVE 11028 -0000000000010fc0 0000000400000401 R_AARCH64_GLOB_DAT 0000000000000000 _ITM_deregisterTMCloneTable + 0 -0000000000010fc8 0000000500000401 R_AARCH64_GLOB_DAT 0000000000000000 __cxa_finalize@GLIBC_2.17 + 0 -0000000000010fd0 0000000600000401 R_AARCH64_GLOB_DAT 0000000000000000 __gmon_start__ + 0 -0000000000010fe0 0000000800000401 R_AARCH64_GLOB_DAT 0000000000000000 _ITM_registerTMCloneTable + 0 - -Relocation section '.rela.plt' at offset 0x520 contains 4 entries: - Offset Info Type Symbol's Value Symbol's Name + Addend -0000000000011000 0000000300000402 R_AARCH64_JUMP_SLOT 0000000000000000 __libc_start_main@GLIBC_2.34 + 0 -0000000000011008 0000000500000402 R_AARCH64_JUMP_SLOT 0000000000000000 __cxa_finalize@GLIBC_2.17 + 0 -0000000000011010 0000000600000402 R_AARCH64_JUMP_SLOT 0000000000000000 __gmon_start__ + 0 -0000000000011018 0000000700000402 R_AARCH64_JUMP_SLOT 0000000000000000 abort@GLIBC_2.17 + 0 - -Symbol table '.dynsym' contains 9 entries: - Num: Value Size Type Bind Vis Ndx Name - 0: 0000000000000000 0 NOTYPE LOCAL DEFAULT UND - 1: 0000000000000580 0 SECTION LOCAL DEFAULT 11 .init - 2: 0000000000011020 0 SECTION LOCAL DEFAULT 23 .data - 3: 0000000000000000 0 FUNC GLOBAL DEFAULT UND __libc_start_main@GLIBC_2.34 (2) - 4: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_deregisterTMCloneTable - 5: 0000000000000000 0 FUNC WEAK DEFAULT UND __cxa_finalize@GLIBC_2.17 (3) - 6: 0000000000000000 0 NOTYPE WEAK DEFAULT UND __gmon_start__ - 7: 0000000000000000 0 FUNC GLOBAL DEFAULT UND abort@GLIBC_2.17 (3) - 8: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_registerTMCloneTable - -Symbol table '.symtab' contains 91 entries: - Num: Value Size Type Bind Vis Ndx Name - 0: 0000000000000000 0 NOTYPE LOCAL DEFAULT UND - 1: 0000000000000238 0 SECTION LOCAL DEFAULT 1 .interp - 2: 0000000000000254 0 SECTION LOCAL DEFAULT 2 .note.gnu.build-id - 3: 0000000000000278 0 SECTION LOCAL DEFAULT 3 .note.ABI-tag - 4: 0000000000000298 0 SECTION LOCAL DEFAULT 4 .gnu.hash - 5: 00000000000002b8 0 SECTION LOCAL DEFAULT 5 .dynsym - 6: 0000000000000390 0 SECTION LOCAL DEFAULT 6 .dynstr - 7: 000000000000041e 0 SECTION LOCAL DEFAULT 7 .gnu.version - 8: 0000000000000430 0 SECTION LOCAL DEFAULT 8 .gnu.version_r - 9: 0000000000000460 0 SECTION LOCAL DEFAULT 9 .rela.dyn - 10: 0000000000000520 0 SECTION LOCAL DEFAULT 10 .rela.plt - 11: 0000000000000580 0 SECTION LOCAL DEFAULT 11 .init - 12: 00000000000005a0 0 SECTION LOCAL DEFAULT 12 .plt - 13: 0000000000000600 0 SECTION LOCAL DEFAULT 13 .text - 14: 0000000000000750 0 SECTION LOCAL DEFAULT 14 .fini - 15: 0000000000000764 0 SECTION LOCAL DEFAULT 15 .rodata - 16: 0000000000000768 0 SECTION LOCAL DEFAULT 16 .eh_frame_hdr - 17: 00000000000007a8 0 SECTION LOCAL DEFAULT 17 .eh_frame - 18: 0000000000010dc8 0 SECTION LOCAL DEFAULT 18 .init_array - 19: 0000000000010dd0 0 SECTION LOCAL DEFAULT 19 .fini_array - 20: 0000000000010dd8 0 SECTION LOCAL DEFAULT 20 .dynamic - 21: 0000000000010fb8 0 SECTION LOCAL DEFAULT 21 .got - 22: 0000000000010fe8 0 SECTION LOCAL DEFAULT 22 .got.plt - 23: 0000000000011020 0 SECTION LOCAL DEFAULT 23 .data - 24: 0000000000011030 0 SECTION LOCAL DEFAULT 24 .bss - 25: 0000000000000000 0 SECTION LOCAL DEFAULT 25 .comment - 26: 0000000000000000 0 FILE LOCAL DEFAULT ABS Scrt1.o - 27: 0000000000000278 0 NOTYPE LOCAL DEFAULT 3 $d - 28: 0000000000000278 32 OBJECT LOCAL DEFAULT 3 __abi_tag - 29: 0000000000000600 0 NOTYPE LOCAL DEFAULT 13 $x - 30: 00000000000007bc 0 NOTYPE LOCAL DEFAULT 17 $d - 31: 0000000000000764 0 NOTYPE LOCAL DEFAULT 15 $d - 32: 0000000000000000 0 FILE LOCAL DEFAULT ABS crti.o - 33: 0000000000000634 0 NOTYPE LOCAL DEFAULT 13 $x - 34: 0000000000000634 20 FUNC LOCAL DEFAULT 13 call_weak_fn - 35: 0000000000000580 0 NOTYPE LOCAL DEFAULT 11 $x - 36: 0000000000000750 0 NOTYPE LOCAL DEFAULT 14 $x - 37: 0000000000000000 0 FILE LOCAL DEFAULT ABS crtn.o - 38: 0000000000000590 0 NOTYPE LOCAL DEFAULT 11 $x - 39: 000000000000075c 0 NOTYPE LOCAL DEFAULT 14 $x - 40: 0000000000000000 0 FILE LOCAL DEFAULT ABS crtstuff.c - 41: 0000000000000650 0 NOTYPE LOCAL DEFAULT 13 $x - 42: 0000000000000650 0 FUNC LOCAL DEFAULT 13 deregister_tm_clones - 43: 0000000000000680 0 FUNC LOCAL DEFAULT 13 register_tm_clones - 44: 0000000000011028 0 NOTYPE LOCAL DEFAULT 23 $d - 45: 00000000000006c0 0 FUNC LOCAL DEFAULT 13 __do_global_dtors_aux - 46: 0000000000011030 1 OBJECT LOCAL DEFAULT 24 completed.0 - 47: 0000000000010dd0 0 NOTYPE LOCAL DEFAULT 19 $d - 48: 0000000000010dd0 0 OBJECT LOCAL DEFAULT 19 __do_global_dtors_aux_fini_array_entry - 49: 0000000000000710 0 FUNC LOCAL DEFAULT 13 frame_dummy - 50: 0000000000010dc8 0 NOTYPE LOCAL DEFAULT 18 $d - 51: 0000000000010dc8 0 OBJECT LOCAL DEFAULT 18 __frame_dummy_init_array_entry - 52: 00000000000007d0 0 NOTYPE LOCAL DEFAULT 17 $d - 53: 0000000000011030 0 NOTYPE LOCAL DEFAULT 24 $d - 54: 0000000000000000 0 FILE LOCAL DEFAULT ABS basicassign3.c - 55: 0000000000000714 0 NOTYPE LOCAL DEFAULT 13 $x.0 - 56: 0000000000011031 0 NOTYPE LOCAL DEFAULT 24 $d.1 - 57: 000000000000002a 0 NOTYPE LOCAL DEFAULT 25 $d.2 - 58: 0000000000000830 0 NOTYPE LOCAL DEFAULT 17 $d.3 - 59: 0000000000000000 0 FILE LOCAL DEFAULT ABS crtstuff.c - 60: 000000000000085c 0 NOTYPE LOCAL DEFAULT 17 $d - 61: 000000000000085c 0 OBJECT LOCAL DEFAULT 17 __FRAME_END__ - 62: 0000000000000000 0 FILE LOCAL DEFAULT ABS - 63: 0000000000010dd8 0 OBJECT LOCAL DEFAULT ABS _DYNAMIC - 64: 0000000000000768 0 NOTYPE LOCAL DEFAULT 16 __GNU_EH_FRAME_HDR - 65: 0000000000010fb8 0 OBJECT LOCAL DEFAULT ABS _GLOBAL_OFFSET_TABLE_ - 66: 00000000000005a0 0 NOTYPE LOCAL DEFAULT 12 $x - 67: 0000000000000000 0 FUNC GLOBAL DEFAULT UND __libc_start_main@GLIBC_2.34 - 68: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_deregisterTMCloneTable - 69: 0000000000011020 0 NOTYPE WEAK DEFAULT 23 data_start - 70: 0000000000011030 0 NOTYPE GLOBAL DEFAULT 24 __bss_start__ - 71: 0000000000000000 0 FUNC WEAK DEFAULT UND __cxa_finalize@GLIBC_2.17 - 72: 0000000000011038 0 NOTYPE GLOBAL DEFAULT 24 _bss_end__ - 73: 0000000000011030 0 NOTYPE GLOBAL DEFAULT 23 _edata - 74: 0000000000011032 1 OBJECT GLOBAL DEFAULT 24 z - 75: 0000000000000750 0 FUNC GLOBAL HIDDEN 14 _fini - 76: 0000000000011038 0 NOTYPE GLOBAL DEFAULT 24 __bss_end__ - 77: 0000000000011020 0 NOTYPE GLOBAL DEFAULT 23 __data_start - 78: 0000000000000000 0 NOTYPE WEAK DEFAULT UND __gmon_start__ - 79: 0000000000011028 0 OBJECT GLOBAL HIDDEN 23 __dso_handle - 80: 0000000000000000 0 FUNC GLOBAL DEFAULT UND abort@GLIBC_2.17 - 81: 0000000000000764 4 OBJECT GLOBAL DEFAULT 15 _IO_stdin_used - 82: 0000000000011031 1 OBJECT GLOBAL DEFAULT 24 secret - 83: 0000000000011038 0 NOTYPE GLOBAL DEFAULT 24 _end - 84: 0000000000000600 52 FUNC GLOBAL DEFAULT 13 _start - 85: 0000000000011038 0 NOTYPE GLOBAL DEFAULT 24 __end__ - 86: 0000000000011030 0 NOTYPE GLOBAL DEFAULT 24 __bss_start - 87: 0000000000000714 60 FUNC GLOBAL DEFAULT 13 main - 88: 0000000000011030 0 OBJECT GLOBAL HIDDEN 23 __TMC_END__ - 89: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_registerTMCloneTable - 90: 0000000000000580 0 FUNC GLOBAL HIDDEN 11 _init diff --git a/src/test/incorrect/basicassign3/clang/basicassign3_gtirb.expected b/src/test/incorrect/basicassign3/clang/basicassign3_gtirb.expected index b722f835d..5eac97a09 100644 --- a/src/test/incorrect/basicassign3/clang/basicassign3_gtirb.expected +++ b/src/test/incorrect/basicassign3/clang/basicassign3_gtirb.expected @@ -1,26 +1,24 @@ var {:extern} Gamma_R0: bool; -var {:extern} Gamma_R10: bool; -var {:extern} Gamma_R31: bool; var {:extern} Gamma_R8: bool; var {:extern} Gamma_R9: bool; var {:extern} Gamma_mem: [bv64]bool; -var {:extern} Gamma_stack: [bv64]bool; var {:extern} R0: bv64; -var {:extern} R10: bv64; -var {:extern} R31: bv64; var {:extern} R8: bv64; var {:extern} R9: bv64; var {:extern} mem: [bv64]bv8; -var {:extern} stack: [bv64]bv8; const {:extern} $secret_addr: bv64; -axiom ($secret_addr == 69681bv64); +axiom ($secret_addr == 131089bv64); const {:extern} $z_addr: bv64; -axiom ($z_addr == 69682bv64); +axiom ($z_addr == 131090bv64); function {:extern} L(mem$in: [bv64]bv8, index: bv64) returns (bool) { (if (index == $secret_addr) then false else (if (index == $z_addr) then true else false)) } function {:extern} {:bvbuiltin "bvadd"} bvadd64(bv64, bv64) returns (bv64); +function {:extern} gamma_load64(gammaMap: [bv64]bool, index: bv64) returns (bool) { + (gammaMap[bvadd64(index, 7bv64)] && (gammaMap[bvadd64(index, 6bv64)] && (gammaMap[bvadd64(index, 5bv64)] && (gammaMap[bvadd64(index, 4bv64)] && (gammaMap[bvadd64(index, 3bv64)] && (gammaMap[bvadd64(index, 2bv64)] && (gammaMap[bvadd64(index, 1bv64)] && gammaMap[index]))))))) +} + function {:extern} gamma_load8(gammaMap: [bv64]bool, index: bv64) returns (bool) { gammaMap[index] } @@ -51,11 +49,13 @@ procedure {:extern} rely(); modifies Gamma_mem, mem; ensures (Gamma_mem == old(Gamma_mem)); ensures (mem == old(mem)); - free ensures (memory_load32_le(mem, 1892bv64) == 131073bv32); - free ensures (memory_load64_le(mem, 69064bv64) == 1808bv64); - free ensures (memory_load64_le(mem, 69072bv64) == 1728bv64); - free ensures (memory_load64_le(mem, 69592bv64) == 1812bv64); - free ensures (memory_load64_le(mem, 69672bv64) == 69672bv64); + free ensures (memory_load32_le(mem, 2312bv64) == 131073bv32); + free ensures (memory_load64_le(mem, 130424bv64) == 2256bv64); + free ensures (memory_load64_le(mem, 130432bv64) == 2176bv64); + free ensures (memory_load64_le(mem, 131032bv64) == 131090bv64); + free ensures (memory_load64_le(mem, 131048bv64) == 131089bv64); + free ensures (memory_load64_le(mem, 131056bv64) == 2260bv64); + free ensures (memory_load64_le(mem, 131080bv64) == 131080bv64); procedure {:extern} rely_transitive(); modifies Gamma_mem, mem; @@ -73,67 +73,54 @@ procedure {:extern} rely_reflexive(); procedure {:extern} guarantee_reflexive(); modifies Gamma_mem, mem; -procedure main_1812(); - modifies Gamma_R0, Gamma_R10, Gamma_R31, Gamma_R8, Gamma_R9, Gamma_mem, Gamma_stack, R0, R10, R31, R8, R9, mem, stack; - free requires (memory_load64_le(mem, 69664bv64) == 0bv64); - free requires (memory_load64_le(mem, 69672bv64) == 69672bv64); - free requires (memory_load32_le(mem, 1892bv64) == 131073bv32); - free requires (memory_load64_le(mem, 69064bv64) == 1808bv64); - free requires (memory_load64_le(mem, 69072bv64) == 1728bv64); - free requires (memory_load64_le(mem, 69592bv64) == 1812bv64); - free requires (memory_load64_le(mem, 69672bv64) == 69672bv64); - free ensures (Gamma_R31 == old(Gamma_R31)); - free ensures (R31 == old(R31)); - free ensures (memory_load32_le(mem, 1892bv64) == 131073bv32); - free ensures (memory_load64_le(mem, 69064bv64) == 1808bv64); - free ensures (memory_load64_le(mem, 69072bv64) == 1728bv64); - free ensures (memory_load64_le(mem, 69592bv64) == 1812bv64); - free ensures (memory_load64_le(mem, 69672bv64) == 69672bv64); +procedure main(); + modifies Gamma_R0, Gamma_R8, Gamma_R9, Gamma_mem, R0, R8, R9, mem; + free requires (memory_load64_le(mem, 131072bv64) == 0bv64); + free requires (memory_load64_le(mem, 131080bv64) == 131080bv64); + free requires (memory_load32_le(mem, 2312bv64) == 131073bv32); + free requires (memory_load64_le(mem, 130424bv64) == 2256bv64); + free requires (memory_load64_le(mem, 130432bv64) == 2176bv64); + free requires (memory_load64_le(mem, 131032bv64) == 131090bv64); + free requires (memory_load64_le(mem, 131048bv64) == 131089bv64); + free requires (memory_load64_le(mem, 131056bv64) == 2260bv64); + free requires (memory_load64_le(mem, 131080bv64) == 131080bv64); + free ensures (memory_load32_le(mem, 2312bv64) == 131073bv32); + free ensures (memory_load64_le(mem, 130424bv64) == 2256bv64); + free ensures (memory_load64_le(mem, 130432bv64) == 2176bv64); + free ensures (memory_load64_le(mem, 131032bv64) == 131090bv64); + free ensures (memory_load64_le(mem, 131048bv64) == 131089bv64); + free ensures (memory_load64_le(mem, 131056bv64) == 2260bv64); + free ensures (memory_load64_le(mem, 131080bv64) == 131080bv64); -implementation main_1812() +implementation main() { - var Gamma_load5: bool; - var Gamma_load6: bool; - var Gamma_load7: bool; - var Gamma_load8: bool; - var load5: bv8; - var load6: bv8; - var load7: bv8; - var load8: bv8; - main_1812__0__MRIfZSIyTFWNRJjkc4x55g: - assume {:captureState "main_1812__0__MRIfZSIyTFWNRJjkc4x55g"} true; - R31, Gamma_R31 := bvadd64(R31, 18446744073709551600bv64), Gamma_R31; - R8, Gamma_R8 := 69632bv64, true; + var $load5: bv64; + var $load6: bv8; + var $load7: bv64; + var Gamma_$load5: bool; + var Gamma_$load6: bool; + var Gamma_$load7: bool; + $main$__0__$D9t2gNJrSmyMH3GAVRe3IQ: + assume {:captureState "$main$__0__$D9t2gNJrSmyMH3GAVRe3IQ"} true; + R8, Gamma_R8 := 126976bv64, true; + R9, Gamma_R9 := 126976bv64, true; + R0, Gamma_R0 := 0bv64, true; call rely(); - load5, Gamma_load5 := memory_load8_le(mem, bvadd64(R8, 49bv64)), (gamma_load8(Gamma_mem, bvadd64(R8, 49bv64)) || L(mem, bvadd64(R8, 49bv64))); - R9, Gamma_R9 := zero_extend32_32(zero_extend24_8(load5)), Gamma_load5; - stack, Gamma_stack := memory_store8_le(stack, bvadd64(R31, 15bv64), R9[8:0]), gamma_store8(Gamma_stack, bvadd64(R31, 15bv64), Gamma_R9); - assume {:captureState "1824_0"} true; - stack, Gamma_stack := memory_store8_le(stack, bvadd64(R31, 15bv64), 0bv8), gamma_store8(Gamma_stack, bvadd64(R31, 15bv64), true); - assume {:captureState "1828_0"} true; - load6, Gamma_load6 := memory_load8_le(stack, bvadd64(R31, 15bv64)), gamma_load8(Gamma_stack, bvadd64(R31, 15bv64)); - R10, Gamma_R10 := zero_extend32_32(zero_extend24_8(load6)), Gamma_load6; - R9, Gamma_R9 := 69632bv64, true; + $load5, Gamma_$load5 := memory_load64_le(mem, bvadd64(R8, 4072bv64)), (gamma_load64(Gamma_mem, bvadd64(R8, 4072bv64)) || L(mem, bvadd64(R8, 4072bv64))); + R8, Gamma_R8 := $load5, Gamma_$load5; call rely(); - assert (L(mem, bvadd64(R9, 50bv64)) ==> Gamma_R10); - mem, Gamma_mem := memory_store8_le(mem, bvadd64(R9, 50bv64), R10[8:0]), gamma_store8(Gamma_mem, bvadd64(R9, 50bv64), Gamma_R10); - assume {:captureState "1840_0"} true; + $load6, Gamma_$load6 := memory_load8_le(mem, R8), (gamma_load8(Gamma_mem, R8) || L(mem, R8)); + R8, Gamma_R8 := zero_extend32_32(zero_extend24_8($load6)), Gamma_$load6; call rely(); - load7, Gamma_load7 := memory_load8_le(mem, bvadd64(R8, 49bv64)), (gamma_load8(Gamma_mem, bvadd64(R8, 49bv64)) || L(mem, bvadd64(R8, 49bv64))); - R8, Gamma_R8 := zero_extend32_32(zero_extend24_8(load7)), Gamma_load7; - stack, Gamma_stack := memory_store8_le(stack, bvadd64(R31, 15bv64), R8[8:0]), gamma_store8(Gamma_stack, bvadd64(R31, 15bv64), Gamma_R8); - assume {:captureState "1848_0"} true; - load8, Gamma_load8 := memory_load8_le(stack, bvadd64(R31, 15bv64)), gamma_load8(Gamma_stack, bvadd64(R31, 15bv64)); - R8, Gamma_R8 := zero_extend32_32(zero_extend24_8(load8)), Gamma_load8; + $load7, Gamma_$load7 := memory_load64_le(mem, bvadd64(R9, 4056bv64)), (gamma_load64(Gamma_mem, bvadd64(R9, 4056bv64)) || L(mem, bvadd64(R9, 4056bv64))); + R9, Gamma_R9 := $load7, Gamma_$load7; call rely(); - assert (L(mem, bvadd64(R9, 50bv64)) ==> Gamma_R8); - mem, Gamma_mem := memory_store8_le(mem, bvadd64(R9, 50bv64), R8[8:0]), gamma_store8(Gamma_mem, bvadd64(R9, 50bv64), Gamma_R8); - assume {:captureState "1856_0"} true; - R0, Gamma_R0 := 0bv64, true; - R31, Gamma_R31 := bvadd64(R31, 16bv64), Gamma_R31; - goto main_1812_basil_return; - main_1812_basil_return: - assume {:captureState "main_1812_basil_return"} true; + assert (L(mem, R9) ==> Gamma_R8); + mem, Gamma_mem := memory_store8_le(mem, R9, R8[8:0]), gamma_store8(Gamma_mem, R9, Gamma_R8); + assume {:captureState "2284$0"} true; + goto main_basil_return; + main_basil_return: + assume {:captureState "main_basil_return"} true; return; } diff --git a/src/test/incorrect/basicassign3/clang_O2/basicassign3.adt b/src/test/incorrect/basicassign3/clang_O2/basicassign3.adt deleted file mode 100644 index 2ba3e256a..000000000 --- a/src/test/incorrect/basicassign3/clang_O2/basicassign3.adt +++ /dev/null @@ -1,495 +0,0 @@ -Project(Attrs([Attr("filename","\"clang_O2/basicassign3.out\""), -Attr("image-specification","(declare abi (name str))\n(declare arch (name str))\n(declare base-address (addr int))\n(declare bias (off int))\n(declare bits (size int))\n(declare code-region (addr int) (size int) (off int))\n(declare code-start (addr int))\n(declare entry-point (addr int))\n(declare external-reference (addr int) (name str))\n(declare format (name str))\n(declare is-executable (flag bool))\n(declare is-little-endian (flag bool))\n(declare llvm:base-address (addr int))\n(declare llvm:code-entry (name str) (off int) (size int))\n(declare llvm:coff-import-library (name str))\n(declare llvm:coff-virtual-section-header (name str) (addr int) (size int))\n(declare llvm:elf-program-header (name str) (off int) (size int))\n(declare llvm:elf-program-header-flags (name str) (ld bool) (r bool) \n (w bool) (x bool))\n(declare llvm:elf-virtual-program-header (name str) (addr int) (size int))\n(declare llvm:entry-point (addr int))\n(declare llvm:macho-symbol (name str) (value int))\n(declare llvm:name-reference (at int) (name str))\n(declare llvm:relocation (at int) (addr int))\n(declare llvm:section-entry (name str) (addr int) (size int) (off int))\n(declare llvm:section-flags (name str) (r bool) (w bool) (x bool))\n(declare llvm:segment-command (name str) (off int) (size int))\n(declare llvm:segment-command-flags (name str) (r bool) (w bool) (x bool))\n(declare llvm:symbol-entry (name str) (addr int) (size int) (off int)\n (value int))\n(declare llvm:virtual-segment-command (name str) (addr int) (size int))\n(declare mapped (addr int) (size int) (off int))\n(declare named-region (addr int) (size int) (name str))\n(declare named-symbol (addr int) (name str))\n(declare require (name str))\n(declare section (addr int) (size int))\n(declare segment (addr int) (size int) (r bool) (w bool) (x bool))\n(declare subarch (name str))\n(declare symbol-chunk (addr int) (size int) (root int))\n(declare symbol-value (addr int) (value int))\n(declare system (name str))\n(declare vendor (name str))\n\n(abi unknown)\n(arch aarch64)\n(base-address 0)\n(bias 0)\n(bits 64)\n(code-region 1836 20 1836)\n(code-region 1536 300 1536)\n(code-region 1440 96 1440)\n(code-region 1408 24 1408)\n(code-start 1588)\n(code-start 1536)\n(code-start 1812)\n(entry-point 1536)\n(external-reference 69568 _ITM_deregisterTMCloneTable)\n(external-reference 69576 __cxa_finalize)\n(external-reference 69584 __gmon_start__)\n(external-reference 69600 _ITM_registerTMCloneTable)\n(external-reference 69632 __libc_start_main)\n(external-reference 69640 __cxa_finalize)\n(external-reference 69648 __gmon_start__)\n(external-reference 69656 abort)\n(format elf)\n(is-executable true)\n(is-little-endian true)\n(llvm:base-address 0)\n(llvm:code-entry abort 0 0)\n(llvm:code-entry __cxa_finalize 0 0)\n(llvm:code-entry __libc_start_main 0 0)\n(llvm:code-entry _init 1408 0)\n(llvm:code-entry main 1812 24)\n(llvm:code-entry _start 1536 52)\n(llvm:code-entry abort@GLIBC_2.17 0 0)\n(llvm:code-entry _fini 1836 0)\n(llvm:code-entry __cxa_finalize@GLIBC_2.17 0 0)\n(llvm:code-entry __libc_start_main@GLIBC_2.34 0 0)\n(llvm:code-entry frame_dummy 1808 0)\n(llvm:code-entry __do_global_dtors_aux 1728 0)\n(llvm:code-entry register_tm_clones 1664 0)\n(llvm:code-entry deregister_tm_clones 1616 0)\n(llvm:code-entry call_weak_fn 1588 20)\n(llvm:code-entry .fini 1836 20)\n(llvm:code-entry .text 1536 300)\n(llvm:code-entry .plt 1440 96)\n(llvm:code-entry .init 1408 24)\n(llvm:elf-program-header 08 3528 568)\n(llvm:elf-program-header 07 0 0)\n(llvm:elf-program-header 06 1860 60)\n(llvm:elf-program-header 05 596 68)\n(llvm:elf-program-header 04 3544 480)\n(llvm:elf-program-header 03 3528 616)\n(llvm:elf-program-header 02 0 2100)\n(llvm:elf-program-header 01 568 27)\n(llvm:elf-program-header 00 64 504)\n(llvm:elf-program-header-flags 08 false true false false)\n(llvm:elf-program-header-flags 07 false true true false)\n(llvm:elf-program-header-flags 06 false true false false)\n(llvm:elf-program-header-flags 05 false true false false)\n(llvm:elf-program-header-flags 04 false true true false)\n(llvm:elf-program-header-flags 03 true true true false)\n(llvm:elf-program-header-flags 02 true true false true)\n(llvm:elf-program-header-flags 01 false true false false)\n(llvm:elf-program-header-flags 00 false true false false)\n(llvm:elf-virtual-program-header 08 69064 568)\n(llvm:elf-virtual-program-header 07 0 0)\n(llvm:elf-virtual-program-header 06 1860 60)\n(llvm:elf-virtual-program-header 05 596 68)\n(llvm:elf-virtual-program-header 04 69080 480)\n(llvm:elf-virtual-program-header 03 69064 632)\n(llvm:elf-virtual-program-header 02 0 2100)\n(llvm:elf-virtual-program-header 01 568 27)\n(llvm:elf-virtual-program-header 00 64 504)\n(llvm:entry-point 1536)\n(llvm:name-reference 69656 abort)\n(llvm:name-reference 69648 __gmon_start__)\n(llvm:name-reference 69640 __cxa_finalize)\n(llvm:name-reference 69632 __libc_start_main)\n(llvm:name-reference 69600 _ITM_registerTMCloneTable)\n(llvm:name-reference 69584 __gmon_start__)\n(llvm:name-reference 69576 __cxa_finalize)\n(llvm:name-reference 69568 _ITM_deregisterTMCloneTable)\n(llvm:section-entry .shstrtab 0 259 6977)\n(llvm:section-entry .strtab 0 577 6400)\n(llvm:section-entry .symtab 0 2184 4216)\n(llvm:section-entry .comment 0 71 4144)\n(llvm:section-entry .bss 69680 16 4144)\n(llvm:section-entry .data 69664 16 4128)\n(llvm:section-entry .got.plt 69608 56 4072)\n(llvm:section-entry .got 69560 48 4024)\n(llvm:section-entry .dynamic 69080 480 3544)\n(llvm:section-entry .fini_array 69072 8 3536)\n(llvm:section-entry .init_array 69064 8 3528)\n(llvm:section-entry .eh_frame 1920 180 1920)\n(llvm:section-entry .eh_frame_hdr 1860 60 1860)\n(llvm:section-entry .rodata 1856 4 1856)\n(llvm:section-entry .fini 1836 20 1836)\n(llvm:section-entry .text 1536 300 1536)\n(llvm:section-entry .plt 1440 96 1440)\n(llvm:section-entry .init 1408 24 1408)\n(llvm:section-entry .rela.plt 1312 96 1312)\n(llvm:section-entry .rela.dyn 1120 192 1120)\n(llvm:section-entry .gnu.version_r 1072 48 1072)\n(llvm:section-entry .gnu.version 1054 18 1054)\n(llvm:section-entry .dynstr 912 141 912)\n(llvm:section-entry .dynsym 696 216 696)\n(llvm:section-entry .gnu.hash 664 28 664)\n(llvm:section-entry .note.ABI-tag 632 32 632)\n(llvm:section-entry .note.gnu.build-id 596 36 596)\n(llvm:section-entry .interp 568 27 568)\n(llvm:section-flags .shstrtab true false false)\n(llvm:section-flags .strtab true false false)\n(llvm:section-flags .symtab true false false)\n(llvm:section-flags .comment true false false)\n(llvm:section-flags .bss true true false)\n(llvm:section-flags .data true true false)\n(llvm:section-flags .got.plt true true false)\n(llvm:section-flags .got true true false)\n(llvm:section-flags .dynamic true true false)\n(llvm:section-flags .fini_array true true false)\n(llvm:section-flags .init_array true true false)\n(llvm:section-flags .eh_frame true false false)\n(llvm:section-flags .eh_frame_hdr true false false)\n(llvm:section-flags .rodata true false false)\n(llvm:section-flags .fini true false true)\n(llvm:section-flags .text true false true)\n(llvm:section-flags .plt true false true)\n(llvm:section-flags .init true false true)\n(llvm:section-flags .rela.plt true false false)\n(llvm:section-flags .rela.dyn true false false)\n(llvm:section-flags .gnu.version_r true false false)\n(llvm:section-flags .gnu.version true false false)\n(llvm:section-flags .dynstr true false false)\n(llvm:section-flags .dynsym true false false)\n(llvm:section-flags .gnu.hash true false false)\n(llvm:section-flags .note.ABI-tag true false false)\n(llvm:section-flags .note.gnu.build-id true false false)\n(llvm:section-flags .interp true false false)\n(llvm:symbol-entry abort 0 0 0 0)\n(llvm:symbol-entry __cxa_finalize 0 0 0 0)\n(llvm:symbol-entry __libc_start_main 0 0 0 0)\n(llvm:symbol-entry _init 1408 0 1408 1408)\n(llvm:symbol-entry main 1812 24 1812 1812)\n(llvm:symbol-entry _start 1536 52 1536 1536)\n(llvm:symbol-entry abort@GLIBC_2.17 0 0 0 0)\n(llvm:symbol-entry _fini 1836 0 1836 1836)\n(llvm:symbol-entry __cxa_finalize@GLIBC_2.17 0 0 0 0)\n(llvm:symbol-entry __libc_start_main@GLIBC_2.34 0 0 0 0)\n(llvm:symbol-entry frame_dummy 1808 0 1808 1808)\n(llvm:symbol-entry __do_global_dtors_aux 1728 0 1728 1728)\n(llvm:symbol-entry register_tm_clones 1664 0 1664 1664)\n(llvm:symbol-entry deregister_tm_clones 1616 0 1616 1616)\n(llvm:symbol-entry call_weak_fn 1588 20 1588 1588)\n(mapped 0 2100 0)\n(mapped 69064 616 3528)\n(named-region 0 2100 02)\n(named-region 69064 632 03)\n(named-region 568 27 .interp)\n(named-region 596 36 .note.gnu.build-id)\n(named-region 632 32 .note.ABI-tag)\n(named-region 664 28 .gnu.hash)\n(named-region 696 216 .dynsym)\n(named-region 912 141 .dynstr)\n(named-region 1054 18 .gnu.version)\n(named-region 1072 48 .gnu.version_r)\n(named-region 1120 192 .rela.dyn)\n(named-region 1312 96 .rela.plt)\n(named-region 1408 24 .init)\n(named-region 1440 96 .plt)\n(named-region 1536 300 .text)\n(named-region 1836 20 .fini)\n(named-region 1856 4 .rodata)\n(named-region 1860 60 .eh_frame_hdr)\n(named-region 1920 180 .eh_frame)\n(named-region 69064 8 .init_array)\n(named-region 69072 8 .fini_array)\n(named-region 69080 480 .dynamic)\n(named-region 69560 48 .got)\n(named-region 69608 56 .got.plt)\n(named-region 69664 16 .data)\n(named-region 69680 16 .bss)\n(named-region 0 71 .comment)\n(named-region 0 2184 .symtab)\n(named-region 0 577 .strtab)\n(named-region 0 259 .shstrtab)\n(named-symbol 1588 call_weak_fn)\n(named-symbol 1616 deregister_tm_clones)\n(named-symbol 1664 register_tm_clones)\n(named-symbol 1728 __do_global_dtors_aux)\n(named-symbol 1808 frame_dummy)\n(named-symbol 0 __libc_start_main@GLIBC_2.34)\n(named-symbol 0 __cxa_finalize@GLIBC_2.17)\n(named-symbol 1836 _fini)\n(named-symbol 0 abort@GLIBC_2.17)\n(named-symbol 1536 _start)\n(named-symbol 1812 main)\n(named-symbol 1408 _init)\n(named-symbol 0 __libc_start_main)\n(named-symbol 0 __cxa_finalize)\n(named-symbol 0 abort)\n(require libc.so.6)\n(section 568 27)\n(section 596 36)\n(section 632 32)\n(section 664 28)\n(section 696 216)\n(section 912 141)\n(section 1054 18)\n(section 1072 48)\n(section 1120 192)\n(section 1312 96)\n(section 1408 24)\n(section 1440 96)\n(section 1536 300)\n(section 1836 20)\n(section 1856 4)\n(section 1860 60)\n(section 1920 180)\n(section 69064 8)\n(section 69072 8)\n(section 69080 480)\n(section 69560 48)\n(section 69608 56)\n(section 69664 16)\n(section 69680 16)\n(section 0 71)\n(section 0 2184)\n(section 0 577)\n(section 0 259)\n(segment 0 2100 true false true)\n(segment 69064 632 true true false)\n(subarch v8)\n(symbol-chunk 1588 20 1588)\n(symbol-chunk 1536 52 1536)\n(symbol-chunk 1812 24 1812)\n(symbol-value 1588 1588)\n(symbol-value 1616 1616)\n(symbol-value 1664 1664)\n(symbol-value 1728 1728)\n(symbol-value 1808 1808)\n(symbol-value 1836 1836)\n(symbol-value 1536 1536)\n(symbol-value 1812 1812)\n(symbol-value 1408 1408)\n(symbol-value 0 0)\n(system \"\")\n(vendor \"\")\n"), -Attr("abi-name","\"aarch64-linux-gnu-elf\"")]), -Sections([Section(".shstrtab", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x00\x06\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x48\x1c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x38\x00\x09\x00\x40\x00\x1d\x00\x1c\x00\x06\x00\x00\x00\x04\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x04\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x34\x08\x00\x00\x00\x00\x00\x00\x34\x08\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x01\x00\x00\x00\x06\x00\x00\x00\xc8\x0d\x00\x00\x00\x00\x00\x00\xc8\x0d\x01\x00\x00\x00\x00\x00\xc8\x0d\x01"), -Section(".strtab", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x00\x06\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x48\x1c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x38\x00\x09\x00\x40\x00\x1d\x00\x1c\x00\x06\x00\x00\x00\x04\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x04\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x34\x08\x00\x00\x00\x00\x00\x00\x34\x08\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x01\x00\x00\x00\x06\x00\x00\x00\xc8\x0d\x00\x00\x00\x00\x00\x00\xc8\x0d\x01\x00\x00\x00\x00\x00\xc8\x0d\x01\x00\x00\x00\x00\x00\x68\x02\x00\x00\x00\x00\x00\x00\x78\x02\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x02\x00\x00\x00\x06\x00\x00\x00\xd8\x0d\x00\x00\x00\x00\x00\x00\xd8\x0d\x01\x00\x00\x00\x00\x00\xd8\x0d\x01\x00\x00\x00\x00\x00\xe0\x01\x00\x00\x00\x00\x00\x00\xe0\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x04\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x50\xe5\x74\x64\x04\x00\x00\x00\x44\x07\x00\x00\x00\x00\x00\x00\x44\x07\x00\x00\x00\x00\x00\x00\x44\x07\x00\x00\x00\x00\x00\x00\x3c\x00\x00\x00\x00\x00\x00\x00\x3c\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x51\xe5\x74\x64\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x52\xe5\x74\x64\x04\x00\x00\x00\xc8\x0d\x00\x00\x00\x00\x00\x00\xc8\x0d\x01\x00\x00\x00\x00\x00\xc8\x0d\x01\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x2f\x6c\x69\x62\x2f\x6c\x64\x2d\x6c"), -Section(".comment", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x00\x06\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x48\x1c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x38\x00\x09\x00\x40\x00\x1d\x00\x1c\x00\x06\x00\x00\x00\x04\x00\x00"), -Section(".interp", 0x238, "\x2f\x6c\x69\x62\x2f\x6c\x64\x2d\x6c\x69\x6e\x75\x78\x2d\x61\x61\x72\x63\x68\x36\x34\x2e\x73\x6f\x2e\x31\x00"), -Section(".note.gnu.build-id", 0x254, "\x04\x00\x00\x00\x14\x00\x00\x00\x03\x00\x00\x00\x47\x4e\x55\x00\xf6\x7f\x32\xab\x52\xba\xf9\x57\xc4\xf1\x2d\xb6\x30\x42\xde\xe7\x49\x8e\xbe\x9b"), -Section(".note.ABI-tag", 0x278, "\x04\x00\x00\x00\x10\x00\x00\x00\x01\x00\x00\x00\x47\x4e\x55\x00\x00\x00\x00\x00\x03\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00"), -Section(".gnu.hash", 0x298, "\x01\x00\x00\x00\x01\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".dynsym", 0x2B8, "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x0b\x00\x80\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x17\x00\x20\x10\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x48\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x22\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x22\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x73\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".dynstr", 0x390, "\x00\x5f\x5f\x63\x78\x61\x5f\x66\x69\x6e\x61\x6c\x69\x7a\x65\x00\x5f\x5f\x6c\x69\x62\x63\x5f\x73\x74\x61\x72\x74\x5f\x6d\x61\x69\x6e\x00\x61\x62\x6f\x72\x74\x00\x6c\x69\x62\x63\x2e\x73\x6f\x2e\x36\x00\x47\x4c\x49\x42\x43\x5f\x32\x2e\x31\x37\x00\x47\x4c\x49\x42\x43\x5f\x32\x2e\x33\x34\x00\x5f\x49\x54\x4d\x5f\x64\x65\x72\x65\x67\x69\x73\x74\x65\x72\x54\x4d\x43\x6c\x6f\x6e\x65\x54\x61\x62\x6c\x65\x00\x5f\x5f\x67\x6d\x6f\x6e\x5f\x73\x74\x61\x72\x74\x5f\x5f\x00\x5f\x49\x54\x4d\x5f\x72\x65\x67\x69\x73\x74\x65\x72\x54\x4d\x43\x6c\x6f\x6e\x65\x54\x61\x62\x6c\x65\x00"), -Section(".gnu.version", 0x41E, "\x00\x00\x00\x00\x00\x00\x02\x00\x01\x00\x03\x00\x01\x00\x03\x00\x01\x00"), -Section(".gnu.version_r", 0x430, "\x01\x00\x02\x00\x28\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x97\x91\x96\x06\x00\x00\x03\x00\x32\x00\x00\x00\x10\x00\x00\x00\xb4\x91\x96\x06\x00\x00\x02\x00\x3d\x00\x00\x00\x00\x00\x00\x00"), -Section(".rela.dyn", 0x460, "\xc8\x0d\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x10\x07\x00\x00\x00\x00\x00\x00\xd0\x0d\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\xc0\x06\x00\x00\x00\x00\x00\x00\xd8\x0f\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x14\x07\x00\x00\x00\x00\x00\x00\x28\x10\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x28\x10\x01\x00\x00\x00\x00\x00\xc0\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xc8\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xd0\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe0\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".rela.plt", 0x520, "\x00\x10\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x08\x10\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x10\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x18\x10\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".init", 0x580, "\x1f\x20\x03\xd5\xfd\x7b\xbf\xa9\xfd\x03\x00\x91\x2a\x00\x00\x94\xfd\x7b\xc1\xa8\xc0\x03\x5f\xd6"), -Section(".plt", 0x5A0, "\xf0\x7b\xbf\xa9\x90\x00\x00\x90\x11\xfe\x47\xf9\x10\xe2\x3f\x91\x20\x02\x1f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x90\x00\x00\xb0\x11\x02\x40\xf9\x10\x02\x00\x91\x20\x02\x1f\xd6\x90\x00\x00\xb0\x11\x06\x40\xf9\x10\x22\x00\x91\x20\x02\x1f\xd6\x90\x00\x00\xb0\x11\x0a\x40\xf9\x10\x42\x00\x91\x20\x02\x1f\xd6\x90\x00\x00\xb0\x11\x0e\x40\xf9\x10\x62\x00\x91\x20\x02\x1f\xd6"), -Section(".text", 0x600, "\x1f\x20\x03\xd5\x1d\x00\x80\xd2\x1e\x00\x80\xd2\xe5\x03\x00\xaa\xe1\x03\x40\xf9\xe2\x23\x00\x91\xe6\x03\x00\x91\x80\x00\x00\x90\x00\xec\x47\xf9\x03\x00\x80\xd2\x04\x00\x80\xd2\xe5\xff\xff\x97\xf0\xff\xff\x97\x80\x00\x00\x90\x00\xe8\x47\xf9\x40\x00\x00\xb4\xe8\xff\xff\x17\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x80\x00\x00\xb0\x00\xc0\x00\x91\x81\x00\x00\xb0\x21\xc0\x00\x91\x3f\x00\x00\xeb\xc0\x00\x00\x54\x81\x00\x00\x90\x21\xe0\x47\xf9\x61\x00\x00\xb4\xf0\x03\x01\xaa\x00\x02\x1f\xd6\xc0\x03\x5f\xd6\x80\x00\x00\xb0\x00\xc0\x00\x91\x81\x00\x00\xb0\x21\xc0\x00\x91\x21\x00\x00\xcb\x22\xfc\x7f\xd3\x41\x0c\x81\x8b\x21\xfc\x41\x93\xc1\x00\x00\xb4\x82\x00\x00\x90\x42\xf0\x47\xf9\x62\x00\x00\xb4\xf0\x03\x02\xaa\x00\x02\x1f\xd6\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\xfd\x7b\xbe\xa9\xfd\x03\x00\x91\xf3\x0b\x00\xf9\x93\x00\x00\xb0\x60\xc2\x40\x39\x40\x01\x00\x35\x80\x00\x00\x90\x00\xe4\x47\xf9\x80\x00\x00\xb4\x80\x00\x00\xb0\x00\x14\x40\xf9\xb9\xff\xff\x97\xd8\xff\xff\x97\x20\x00\x80\x52\x60\xc2\x00\x39\xf3\x0b\x40\xf9\xfd\x7b\xc2\xa8\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\xdc\xff\xff\x17\x88\x00\x00\xb0\x89\x00\x00\xb0\xe0\x03\x1f\x2a\x08\xd1\x40\x39\x28\xe1\x00\x39\xc0\x03\x5f\xd6"), -Section(".fini", 0x72C, "\x1f\x20\x03\xd5\xfd\x7b\xbf\xa9\xfd\x03\x00\x91\xfd\x7b\xc1\xa8\xc0\x03\x5f\xd6"), -Section(".rodata", 0x740, "\x01\x00\x02\x00"), -Section(".eh_frame_hdr", 0x744, "\x01\x1b\x03\x3b\x38\x00\x00\x00\x06\x00\x00\x00\xbc\xfe\xff\xff\x50\x00\x00\x00\x0c\xff\xff\xff\x64\x00\x00\x00\x3c\xff\xff\xff\x78\x00\x00\x00\x7c\xff\xff\xff\x8c\x00\x00\x00\xcc\xff\xff\xff\xb0\x00\x00\x00\xd0\xff\xff\xff\xd8\x00\x00\x00"), -Section(".eh_frame", 0x780, "\x10\x00\x00\x00\x00\x00\x00\x00\x01\x7a\x52\x00\x04\x78\x1e\x01\x1b\x0c\x1f\x00\x10\x00\x00\x00\x18\x00\x00\x00\x64\xfe\xff\xff\x34\x00\x00\x00\x00\x41\x07\x1e\x10\x00\x00\x00\x2c\x00\x00\x00\xa0\xfe\xff\xff\x30\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x40\x00\x00\x00\xbc\xfe\xff\xff\x3c\x00\x00\x00\x00\x00\x00\x00\x20\x00\x00\x00\x54\x00\x00\x00\xe8\xfe\xff\xff\x48\x00\x00\x00\x00\x41\x0e\x20\x9d\x04\x9e\x03\x42\x93\x02\x4e\xde\xdd\xd3\x0e\x00\x00\x00\x00\x10\x00\x00\x00\x78\x00\x00\x00\x14\xff\xff\xff\x04\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x01\x7a\x52\x00\x01\x7c\x1e\x01\x1b\x0c\x1f\x00\x10\x00\x00\x00\x18\x00\x00\x00\xf0\xfe\xff\xff\x18\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".fini_array", 0x10DD0, "\xc0\x06\x00\x00\x00\x00\x00\x00"), -Section(".dynamic", 0x10DD8, "\x01\x00\x00\x00\x00\x00\x00\x00\x28\x00\x00\x00\x00\x00\x00\x00\x0c\x00\x00\x00\x00\x00\x00\x00\x80\x05\x00\x00\x00\x00\x00\x00\x0d\x00\x00\x00\x00\x00\x00\x00\x2c\x07\x00\x00\x00\x00\x00\x00\x19\x00\x00\x00\x00\x00\x00\x00\xc8\x0d\x01\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x1a\x00\x00\x00\x00\x00\x00\x00\xd0\x0d\x01\x00\x00\x00\x00\x00\x1c\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\xf5\xfe\xff\x6f\x00\x00\x00\x00\x98\x02\x00\x00\x00\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x90\x03\x00\x00\x00\x00\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\xb8\x02\x00\x00\x00\x00\x00\x00\x0a\x00\x00\x00\x00\x00\x00\x00\x8d\x00\x00\x00\x00\x00\x00\x00\x0b\x00\x00\x00\x00\x00\x00\x00\x18\x00\x00\x00\x00\x00\x00\x00\x15\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\xe8\x0f\x01\x00\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x60\x00\x00\x00\x00\x00\x00\x00\x14\x00\x00\x00\x00\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x17\x00\x00\x00\x00\x00\x00\x00\x20\x05\x00\x00\x00\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x60\x04\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\xc0\x00\x00\x00\x00\x00\x00\x00\x09\x00\x00\x00\x00\x00\x00\x00\x18\x00\x00\x00\x00\x00\x00\x00\xfb\xff\xff\x6f\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\xfe\xff\xff\x6f\x00\x00\x00\x00\x30\x04\x00\x00\x00\x00\x00\x00\xff\xff\xff\x6f\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\xf0\xff\xff\x6f\x00\x00\x00\x00\x1e\x04\x00\x00\x00\x00\x00\x00\xf9\xff\xff\x6f\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".init_array", 0x10DC8, "\x10\x07\x00\x00\x00\x00\x00\x00"), -Section(".got", 0x10FB8, "\xd8\x0d\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x14\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".got.plt", 0x10FE8, "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xa0\x05\x00\x00\x00\x00\x00\x00\xa0\x05\x00\x00\x00\x00\x00\x00\xa0\x05\x00\x00\x00\x00\x00\x00\xa0\x05\x00\x00\x00\x00\x00\x00"), -Section(".data", 0x11020, "\x00\x00\x00\x00\x00\x00\x00\x00\x28\x10\x01\x00\x00\x00\x00\x00")]), -Memmap([Annotation(Region(0x0,0x833), Attr("segment","02 0 2100")), -Annotation(Region(0x600,0x633), Attr("symbol","\"_start\"")), -Annotation(Region(0x0,0x102), Attr("section","\".shstrtab\"")), -Annotation(Region(0x0,0x240), Attr("section","\".strtab\"")), -Annotation(Region(0x0,0x46), Attr("section","\".comment\"")), -Annotation(Region(0x238,0x252), Attr("section","\".interp\"")), -Annotation(Region(0x254,0x277), Attr("section","\".note.gnu.build-id\"")), -Annotation(Region(0x278,0x297), Attr("section","\".note.ABI-tag\"")), -Annotation(Region(0x298,0x2B3), Attr("section","\".gnu.hash\"")), -Annotation(Region(0x2B8,0x38F), Attr("section","\".dynsym\"")), -Annotation(Region(0x390,0x41C), Attr("section","\".dynstr\"")), -Annotation(Region(0x41E,0x42F), Attr("section","\".gnu.version\"")), -Annotation(Region(0x430,0x45F), Attr("section","\".gnu.version_r\"")), -Annotation(Region(0x460,0x51F), Attr("section","\".rela.dyn\"")), -Annotation(Region(0x520,0x57F), Attr("section","\".rela.plt\"")), -Annotation(Region(0x580,0x597), Attr("section","\".init\"")), -Annotation(Region(0x5A0,0x5FF), Attr("section","\".plt\"")), -Annotation(Region(0x580,0x597), Attr("code-region","()")), -Annotation(Region(0x5A0,0x5FF), Attr("code-region","()")), -Annotation(Region(0x600,0x633), Attr("symbol-info","_start 0x600 52")), -Annotation(Region(0x634,0x647), Attr("symbol","\"call_weak_fn\"")), -Annotation(Region(0x634,0x647), Attr("symbol-info","call_weak_fn 0x634 20")), -Annotation(Region(0x600,0x72B), Attr("section","\".text\"")), -Annotation(Region(0x600,0x72B), Attr("code-region","()")), -Annotation(Region(0x714,0x72B), Attr("symbol","\"main\"")), -Annotation(Region(0x714,0x72B), Attr("symbol-info","main 0x714 24")), -Annotation(Region(0x72C,0x73F), Attr("section","\".fini\"")), -Annotation(Region(0x72C,0x73F), Attr("code-region","()")), -Annotation(Region(0x740,0x743), Attr("section","\".rodata\"")), -Annotation(Region(0x744,0x77F), Attr("section","\".eh_frame_hdr\"")), -Annotation(Region(0x780,0x833), Attr("section","\".eh_frame\"")), -Annotation(Region(0x10DC8,0x1102F), Attr("segment","03 0x10DC8 632")), -Annotation(Region(0x10DD0,0x10DD7), Attr("section","\".fini_array\"")), -Annotation(Region(0x10DD8,0x10FB7), Attr("section","\".dynamic\"")), -Annotation(Region(0x10DC8,0x10DCF), Attr("section","\".init_array\"")), -Annotation(Region(0x10FB8,0x10FE7), Attr("section","\".got\"")), -Annotation(Region(0x10FE8,0x1101F), Attr("section","\".got.plt\"")), -Annotation(Region(0x11020,0x1102F), Attr("section","\".data\""))]), -Program(Tid(1_402, "%0000057a"), Attrs([]), - Subs([Sub(Tid(1_380, "@__cxa_finalize"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x5D0"), -Attr("stub","()")]), "__cxa_finalize", Args([Arg(Tid(1_403, "%0000057b"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("__cxa_finalize_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(796, "@__cxa_finalize"), - Attrs([Attr("address","0x5D0")]), Phis([]), -Defs([Def(Tid(1_044, "%00000414"), Attrs([Attr("address","0x5D0"), -Attr("insn","adrp x16, #69632")]), Var("R16",Imm(64)), Int(69632,64)), -Def(Tid(1_051, "%0000041b"), Attrs([Attr("address","0x5D4"), -Attr("insn","ldr x17, [x16, #0x8]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(1_057, "%00000421"), Attrs([Attr("address","0x5D8"), -Attr("insn","add x16, x16, #0x8")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(8,64)))]), Jmps([Call(Tid(1_062, "%00000426"), - Attrs([Attr("address","0x5DC"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), -Sub(Tid(1_381, "@__do_global_dtors_aux"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x6C0")]), - "__do_global_dtors_aux", Args([Arg(Tid(1_404, "%0000057c"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("__do_global_dtors_aux_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(614, "@__do_global_dtors_aux"), - Attrs([Attr("address","0x6C0")]), Phis([]), Defs([Def(Tid(618, "%0000026a"), - Attrs([Attr("address","0x6C0"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("#3",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(18446744073709551584,64))), -Def(Tid(624, "%00000270"), Attrs([Attr("address","0x6C0"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("#3",Imm(64)),Var("R29",Imm(64)),LittleEndian(),64)), -Def(Tid(630, "%00000276"), Attrs([Attr("address","0x6C0"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("#3",Imm(64)),Int(8,64)),Var("R30",Imm(64)),LittleEndian(),64)), -Def(Tid(634, "%0000027a"), Attrs([Attr("address","0x6C0"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("R31",Imm(64)), -Var("#3",Imm(64))), Def(Tid(640, "%00000280"), - Attrs([Attr("address","0x6C4"), Attr("insn","mov x29, sp")]), - Var("R29",Imm(64)), Var("R31",Imm(64))), Def(Tid(648, "%00000288"), - Attrs([Attr("address","0x6C8"), Attr("insn","str x19, [sp, #0x10]")]), - Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(16,64)),Var("R19",Imm(64)),LittleEndian(),64)), -Def(Tid(653, "%0000028d"), Attrs([Attr("address","0x6CC"), -Attr("insn","adrp x19, #69632")]), Var("R19",Imm(64)), Int(69632,64)), -Def(Tid(660, "%00000294"), Attrs([Attr("address","0x6D0"), -Attr("insn","ldrb w0, [x19, #0x30]")]), Var("R0",Imm(64)), -UNSIGNED(64,Load(Var("mem",Mem(64,8)),PLUS(Var("R19",Imm(64)),Int(48,64)),LittleEndian(),8)))]), -Jmps([Goto(Tid(667, "%0000029b"), Attrs([Attr("address","0x6D4"), -Attr("insn","cbnz w0, #0x28")]), - NEQ(Extract(31,0,Var("R0",Imm(64))),Int(0,32)), -Direct(Tid(665, "%00000299"))), Goto(Tid(1_382, "%00000566"), Attrs([]), - Int(1,1), Direct(Tid(741, "%000002e5")))])), Blk(Tid(741, "%000002e5"), - Attrs([Attr("address","0x6D8")]), Phis([]), Defs([Def(Tid(744, "%000002e8"), - Attrs([Attr("address","0x6D8"), Attr("insn","adrp x0, #65536")]), - Var("R0",Imm(64)), Int(65536,64)), Def(Tid(751, "%000002ef"), - Attrs([Attr("address","0x6DC"), Attr("insn","ldr x0, [x0, #0xfc8]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(4040,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(757, "%000002f5"), Attrs([Attr("address","0x6E0"), -Attr("insn","cbz x0, #0x10")]), EQ(Var("R0",Imm(64)),Int(0,64)), -Direct(Tid(755, "%000002f3"))), Goto(Tid(1_383, "%00000567"), Attrs([]), - Int(1,1), Direct(Tid(780, "%0000030c")))])), Blk(Tid(780, "%0000030c"), - Attrs([Attr("address","0x6E4")]), Phis([]), Defs([Def(Tid(783, "%0000030f"), - Attrs([Attr("address","0x6E4"), Attr("insn","adrp x0, #69632")]), - Var("R0",Imm(64)), Int(69632,64)), Def(Tid(790, "%00000316"), - Attrs([Attr("address","0x6E8"), Attr("insn","ldr x0, [x0, #0x28]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(40,64)),LittleEndian(),64)), -Def(Tid(795, "%0000031b"), Attrs([Attr("address","0x6EC"), -Attr("insn","bl #-0x11c")]), Var("R30",Imm(64)), Int(1776,64))]), -Jmps([Call(Tid(798, "%0000031e"), Attrs([Attr("address","0x6EC"), -Attr("insn","bl #-0x11c")]), Int(1,1), -(Direct(Tid(1_380, "@__cxa_finalize")),Direct(Tid(755, "%000002f3"))))])), -Blk(Tid(755, "%000002f3"), Attrs([Attr("address","0x6F0")]), Phis([]), -Defs([Def(Tid(763, "%000002fb"), Attrs([Attr("address","0x6F0"), -Attr("insn","bl #-0xa0")]), Var("R30",Imm(64)), Int(1780,64))]), -Jmps([Call(Tid(765, "%000002fd"), Attrs([Attr("address","0x6F0"), -Attr("insn","bl #-0xa0")]), Int(1,1), -(Direct(Tid(1_394, "@deregister_tm_clones")),Direct(Tid(767, "%000002ff"))))])), -Blk(Tid(767, "%000002ff"), Attrs([Attr("address","0x6F4")]), Phis([]), -Defs([Def(Tid(770, "%00000302"), Attrs([Attr("address","0x6F4"), -Attr("insn","mov w0, #0x1")]), Var("R0",Imm(64)), Int(1,64)), -Def(Tid(778, "%0000030a"), Attrs([Attr("address","0x6F8"), -Attr("insn","strb w0, [x19, #0x30]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R19",Imm(64)),Int(48,64)),Extract(7,0,Var("R0",Imm(64))),LittleEndian(),8))]), -Jmps([Goto(Tid(1_384, "%00000568"), Attrs([]), Int(1,1), -Direct(Tid(665, "%00000299")))])), Blk(Tid(665, "%00000299"), - Attrs([Attr("address","0x6FC")]), Phis([]), Defs([Def(Tid(675, "%000002a3"), - Attrs([Attr("address","0x6FC"), Attr("insn","ldr x19, [sp, #0x10]")]), - Var("R19",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(16,64)),LittleEndian(),64)), -Def(Tid(682, "%000002aa"), Attrs([Attr("address","0x700"), -Attr("insn","ldp x29, x30, [sp], #0x20")]), Var("R29",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(687, "%000002af"), Attrs([Attr("address","0x700"), -Attr("insn","ldp x29, x30, [sp], #0x20")]), Var("R30",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(691, "%000002b3"), Attrs([Attr("address","0x700"), -Attr("insn","ldp x29, x30, [sp], #0x20")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(32,64)))]), Jmps([Call(Tid(696, "%000002b8"), - Attrs([Attr("address","0x704"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), Sub(Tid(1_385, "@__libc_start_main"), - Attrs([Attr("c.proto","signed (*)(signed (*)(signed , char** , char** );* main, signed , char** , \nvoid* auxv)"), -Attr("address","0x5C0"), Attr("stub","()")]), "__libc_start_main", - Args([Arg(Tid(1_405, "%0000057d"), - Attrs([Attr("c.layout","**[ : 64]"), -Attr("c.data","Top:u64 ptr ptr"), -Attr("c.type","signed (*)(signed , char** , char** );*")]), - Var("__libc_start_main_main",Imm(64)), Var("R0",Imm(64)), In()), -Arg(Tid(1_406, "%0000057e"), Attrs([Attr("c.layout","[signed : 32]"), -Attr("c.data","Top:u32"), Attr("c.type","signed")]), - Var("__libc_start_main_arg2",Imm(32)), LOW(32,Var("R1",Imm(64))), In()), -Arg(Tid(1_407, "%0000057f"), Attrs([Attr("c.layout","**[char : 8]"), -Attr("c.data","Top:u8 ptr ptr"), Attr("c.type","char**")]), - Var("__libc_start_main_arg3",Imm(64)), Var("R2",Imm(64)), Both()), -Arg(Tid(1_408, "%00000580"), Attrs([Attr("c.layout","*[ : 8]"), -Attr("c.data","{} ptr"), Attr("c.type","void*")]), - Var("__libc_start_main_auxv",Imm(64)), Var("R3",Imm(64)), Both()), -Arg(Tid(1_409, "%00000581"), Attrs([Attr("c.layout","[signed : 32]"), -Attr("c.data","Top:u32"), Attr("c.type","signed")]), - Var("__libc_start_main_result",Imm(32)), LOW(32,Var("R0",Imm(64))), -Out())]), Blks([Blk(Tid(447, "@__libc_start_main"), - Attrs([Attr("address","0x5C0")]), Phis([]), -Defs([Def(Tid(1_022, "%000003fe"), Attrs([Attr("address","0x5C0"), -Attr("insn","adrp x16, #69632")]), Var("R16",Imm(64)), Int(69632,64)), -Def(Tid(1_029, "%00000405"), Attrs([Attr("address","0x5C4"), -Attr("insn","ldr x17, [x16]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R16",Imm(64)),LittleEndian(),64)), -Def(Tid(1_035, "%0000040b"), Attrs([Attr("address","0x5C8"), -Attr("insn","add x16, x16, #0x0")]), Var("R16",Imm(64)), -Var("R16",Imm(64)))]), Jmps([Call(Tid(1_040, "%00000410"), - Attrs([Attr("address","0x5CC"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), Sub(Tid(1_386, "@_fini"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x72C")]), - "_fini", Args([Arg(Tid(1_410, "%00000582"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("_fini_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(31, "@_fini"), - Attrs([Attr("address","0x72C")]), Phis([]), Defs([Def(Tid(37, "%00000025"), - Attrs([Attr("address","0x730"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("#0",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(18446744073709551600,64))), -Def(Tid(43, "%0000002b"), Attrs([Attr("address","0x730"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("#0",Imm(64)),Var("R29",Imm(64)),LittleEndian(),64)), -Def(Tid(49, "%00000031"), Attrs([Attr("address","0x730"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("#0",Imm(64)),Int(8,64)),Var("R30",Imm(64)),LittleEndian(),64)), -Def(Tid(53, "%00000035"), Attrs([Attr("address","0x730"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("R31",Imm(64)), -Var("#0",Imm(64))), Def(Tid(59, "%0000003b"), Attrs([Attr("address","0x734"), -Attr("insn","mov x29, sp")]), Var("R29",Imm(64)), Var("R31",Imm(64))), -Def(Tid(66, "%00000042"), Attrs([Attr("address","0x738"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R29",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(71, "%00000047"), Attrs([Attr("address","0x738"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R30",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(75, "%0000004b"), Attrs([Attr("address","0x738"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(16,64)))]), Jmps([Call(Tid(80, "%00000050"), - Attrs([Attr("address","0x73C"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), Sub(Tid(1_387, "@_init"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x580")]), - "_init", Args([Arg(Tid(1_411, "%00000583"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("_init_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(1_216, "@_init"), - Attrs([Attr("address","0x580")]), Phis([]), -Defs([Def(Tid(1_222, "%000004c6"), Attrs([Attr("address","0x584"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("#5",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(18446744073709551600,64))), -Def(Tid(1_228, "%000004cc"), Attrs([Attr("address","0x584"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("#5",Imm(64)),Var("R29",Imm(64)),LittleEndian(),64)), -Def(Tid(1_234, "%000004d2"), Attrs([Attr("address","0x584"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("#5",Imm(64)),Int(8,64)),Var("R30",Imm(64)),LittleEndian(),64)), -Def(Tid(1_238, "%000004d6"), Attrs([Attr("address","0x584"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("R31",Imm(64)), -Var("#5",Imm(64))), Def(Tid(1_244, "%000004dc"), - Attrs([Attr("address","0x588"), Attr("insn","mov x29, sp")]), - Var("R29",Imm(64)), Var("R31",Imm(64))), Def(Tid(1_249, "%000004e1"), - Attrs([Attr("address","0x58C"), Attr("insn","bl #0xa8")]), - Var("R30",Imm(64)), Int(1424,64))]), Jmps([Call(Tid(1_251, "%000004e3"), - Attrs([Attr("address","0x58C"), Attr("insn","bl #0xa8")]), Int(1,1), -(Direct(Tid(1_392, "@call_weak_fn")),Direct(Tid(1_253, "%000004e5"))))])), -Blk(Tid(1_253, "%000004e5"), Attrs([Attr("address","0x590")]), Phis([]), -Defs([Def(Tid(1_258, "%000004ea"), Attrs([Attr("address","0x590"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R29",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(1_263, "%000004ef"), Attrs([Attr("address","0x590"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R30",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(1_267, "%000004f3"), Attrs([Attr("address","0x590"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(16,64)))]), Jmps([Call(Tid(1_272, "%000004f8"), - Attrs([Attr("address","0x594"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), Sub(Tid(1_388, "@_start"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x600"), -Attr("stub","()"), Attr("entry-point","()")]), "_start", - Args([Arg(Tid(1_412, "%00000584"), Attrs([Attr("c.layout","[signed : 32]"), -Attr("c.data","Top:u32"), Attr("c.type","signed")]), - Var("_start_result",Imm(32)), LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(384, "@_start"), Attrs([Attr("address","0x600")]), Phis([]), -Defs([Def(Tid(389, "%00000185"), Attrs([Attr("address","0x604"), -Attr("insn","mov x29, #0x0")]), Var("R29",Imm(64)), Int(0,64)), -Def(Tid(394, "%0000018a"), Attrs([Attr("address","0x608"), -Attr("insn","mov x30, #0x0")]), Var("R30",Imm(64)), Int(0,64)), -Def(Tid(400, "%00000190"), Attrs([Attr("address","0x60C"), -Attr("insn","mov x5, x0")]), Var("R5",Imm(64)), Var("R0",Imm(64))), -Def(Tid(407, "%00000197"), Attrs([Attr("address","0x610"), -Attr("insn","ldr x1, [sp]")]), Var("R1",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(413, "%0000019d"), Attrs([Attr("address","0x614"), -Attr("insn","add x2, sp, #0x8")]), Var("R2",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(8,64))), Def(Tid(419, "%000001a3"), - Attrs([Attr("address","0x618"), Attr("insn","mov x6, sp")]), - Var("R6",Imm(64)), Var("R31",Imm(64))), Def(Tid(424, "%000001a8"), - Attrs([Attr("address","0x61C"), Attr("insn","adrp x0, #65536")]), - Var("R0",Imm(64)), Int(65536,64)), Def(Tid(431, "%000001af"), - Attrs([Attr("address","0x620"), Attr("insn","ldr x0, [x0, #0xfd8]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(4056,64)),LittleEndian(),64)), -Def(Tid(436, "%000001b4"), Attrs([Attr("address","0x624"), -Attr("insn","mov x3, #0x0")]), Var("R3",Imm(64)), Int(0,64)), -Def(Tid(441, "%000001b9"), Attrs([Attr("address","0x628"), -Attr("insn","mov x4, #0x0")]), Var("R4",Imm(64)), Int(0,64)), -Def(Tid(446, "%000001be"), Attrs([Attr("address","0x62C"), -Attr("insn","bl #-0x6c")]), Var("R30",Imm(64)), Int(1584,64))]), -Jmps([Call(Tid(449, "%000001c1"), Attrs([Attr("address","0x62C"), -Attr("insn","bl #-0x6c")]), Int(1,1), -(Direct(Tid(1_385, "@__libc_start_main")),Direct(Tid(451, "%000001c3"))))])), -Blk(Tid(451, "%000001c3"), Attrs([Attr("address","0x630")]), Phis([]), -Defs([Def(Tid(454, "%000001c6"), Attrs([Attr("address","0x630"), -Attr("insn","bl #-0x40")]), Var("R30",Imm(64)), Int(1588,64))]), -Jmps([Call(Tid(457, "%000001c9"), Attrs([Attr("address","0x630"), -Attr("insn","bl #-0x40")]), Int(1,1), -(Direct(Tid(1_391, "@abort")),Direct(Tid(1_389, "%0000056d"))))])), -Blk(Tid(1_389, "%0000056d"), Attrs([]), Phis([]), Defs([]), -Jmps([Call(Tid(1_390, "%0000056e"), Attrs([]), Int(1,1), -(Direct(Tid(1_392, "@call_weak_fn")),))]))])), Sub(Tid(1_391, "@abort"), - Attrs([Attr("noreturn","()"), Attr("c.proto","void (*)(void)"), -Attr("address","0x5F0"), Attr("stub","()")]), "abort", Args([]), -Blks([Blk(Tid(455, "@abort"), Attrs([Attr("address","0x5F0")]), Phis([]), -Defs([Def(Tid(1_088, "%00000440"), Attrs([Attr("address","0x5F0"), -Attr("insn","adrp x16, #69632")]), Var("R16",Imm(64)), Int(69632,64)), -Def(Tid(1_095, "%00000447"), Attrs([Attr("address","0x5F4"), -Attr("insn","ldr x17, [x16, #0x18]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(24,64)),LittleEndian(),64)), -Def(Tid(1_101, "%0000044d"), Attrs([Attr("address","0x5F8"), -Attr("insn","add x16, x16, #0x18")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(24,64)))]), Jmps([Call(Tid(1_106, "%00000452"), - Attrs([Attr("address","0x5FC"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), Sub(Tid(1_392, "@call_weak_fn"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x634")]), - "call_weak_fn", Args([Arg(Tid(1_413, "%00000585"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("call_weak_fn_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(459, "@call_weak_fn"), - Attrs([Attr("address","0x634")]), Phis([]), Defs([Def(Tid(462, "%000001ce"), - Attrs([Attr("address","0x634"), Attr("insn","adrp x0, #65536")]), - Var("R0",Imm(64)), Int(65536,64)), Def(Tid(469, "%000001d5"), - Attrs([Attr("address","0x638"), Attr("insn","ldr x0, [x0, #0xfd0]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(4048,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(475, "%000001db"), Attrs([Attr("address","0x63C"), -Attr("insn","cbz x0, #0x8")]), EQ(Var("R0",Imm(64)),Int(0,64)), -Direct(Tid(473, "%000001d9"))), Goto(Tid(1_393, "%00000571"), Attrs([]), - Int(1,1), Direct(Tid(860, "%0000035c")))])), Blk(Tid(473, "%000001d9"), - Attrs([Attr("address","0x644")]), Phis([]), Defs([]), -Jmps([Call(Tid(481, "%000001e1"), Attrs([Attr("address","0x644"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))])), -Blk(Tid(860, "%0000035c"), Attrs([Attr("address","0x640")]), Phis([]), -Defs([]), Jmps([Goto(Tid(863, "%0000035f"), Attrs([Attr("address","0x640"), -Attr("insn","b #-0x60")]), Int(1,1), Direct(Tid(861, "@__gmon_start__")))])), -Blk(Tid(861, "@__gmon_start__"), Attrs([Attr("address","0x5E0")]), Phis([]), -Defs([Def(Tid(1_066, "%0000042a"), Attrs([Attr("address","0x5E0"), -Attr("insn","adrp x16, #69632")]), Var("R16",Imm(64)), Int(69632,64)), -Def(Tid(1_073, "%00000431"), Attrs([Attr("address","0x5E4"), -Attr("insn","ldr x17, [x16, #0x10]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(16,64)),LittleEndian(),64)), -Def(Tid(1_079, "%00000437"), Attrs([Attr("address","0x5E8"), -Attr("insn","add x16, x16, #0x10")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(16,64)))]), Jmps([Call(Tid(1_084, "%0000043c"), - Attrs([Attr("address","0x5EC"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), -Sub(Tid(1_394, "@deregister_tm_clones"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x650")]), - "deregister_tm_clones", Args([Arg(Tid(1_414, "%00000586"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("deregister_tm_clones_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(487, "@deregister_tm_clones"), - Attrs([Attr("address","0x650")]), Phis([]), Defs([Def(Tid(490, "%000001ea"), - Attrs([Attr("address","0x650"), Attr("insn","adrp x0, #69632")]), - Var("R0",Imm(64)), Int(69632,64)), Def(Tid(496, "%000001f0"), - Attrs([Attr("address","0x654"), Attr("insn","add x0, x0, #0x30")]), - Var("R0",Imm(64)), PLUS(Var("R0",Imm(64)),Int(48,64))), -Def(Tid(501, "%000001f5"), Attrs([Attr("address","0x658"), -Attr("insn","adrp x1, #69632")]), Var("R1",Imm(64)), Int(69632,64)), -Def(Tid(507, "%000001fb"), Attrs([Attr("address","0x65C"), -Attr("insn","add x1, x1, #0x30")]), Var("R1",Imm(64)), -PLUS(Var("R1",Imm(64)),Int(48,64))), Def(Tid(513, "%00000201"), - Attrs([Attr("address","0x660"), Attr("insn","cmp x1, x0")]), - Var("#1",Imm(64)), NOT(Var("R0",Imm(64)))), Def(Tid(518, "%00000206"), - Attrs([Attr("address","0x660"), Attr("insn","cmp x1, x0")]), - Var("#2",Imm(64)), PLUS(Var("R1",Imm(64)),NOT(Var("R0",Imm(64))))), -Def(Tid(524, "%0000020c"), Attrs([Attr("address","0x660"), -Attr("insn","cmp x1, x0")]), Var("VF",Imm(1)), -NEQ(SIGNED(65,PLUS(Var("#2",Imm(64)),Int(1,64))),PLUS(PLUS(SIGNED(65,Var("R1",Imm(64))),SIGNED(65,Var("#1",Imm(64)))),Int(1,65)))), -Def(Tid(530, "%00000212"), Attrs([Attr("address","0x660"), -Attr("insn","cmp x1, x0")]), Var("CF",Imm(1)), -NEQ(UNSIGNED(65,PLUS(Var("#2",Imm(64)),Int(1,64))),PLUS(PLUS(UNSIGNED(65,Var("R1",Imm(64))),UNSIGNED(65,Var("#1",Imm(64)))),Int(1,65)))), -Def(Tid(534, "%00000216"), Attrs([Attr("address","0x660"), -Attr("insn","cmp x1, x0")]), Var("ZF",Imm(1)), -EQ(PLUS(Var("#2",Imm(64)),Int(1,64)),Int(0,64))), Def(Tid(538, "%0000021a"), - Attrs([Attr("address","0x660"), Attr("insn","cmp x1, x0")]), - Var("NF",Imm(1)), Extract(63,63,PLUS(Var("#2",Imm(64)),Int(1,64))))]), -Jmps([Goto(Tid(544, "%00000220"), Attrs([Attr("address","0x664"), -Attr("insn","b.eq #0x18")]), EQ(Var("ZF",Imm(1)),Int(1,1)), -Direct(Tid(542, "%0000021e"))), Goto(Tid(1_395, "%00000573"), Attrs([]), - Int(1,1), Direct(Tid(830, "%0000033e")))])), Blk(Tid(830, "%0000033e"), - Attrs([Attr("address","0x668")]), Phis([]), Defs([Def(Tid(833, "%00000341"), - Attrs([Attr("address","0x668"), Attr("insn","adrp x1, #65536")]), - Var("R1",Imm(64)), Int(65536,64)), Def(Tid(840, "%00000348"), - Attrs([Attr("address","0x66C"), Attr("insn","ldr x1, [x1, #0xfc0]")]), - Var("R1",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R1",Imm(64)),Int(4032,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(845, "%0000034d"), Attrs([Attr("address","0x670"), -Attr("insn","cbz x1, #0xc")]), EQ(Var("R1",Imm(64)),Int(0,64)), -Direct(Tid(542, "%0000021e"))), Goto(Tid(1_396, "%00000574"), Attrs([]), - Int(1,1), Direct(Tid(849, "%00000351")))])), Blk(Tid(542, "%0000021e"), - Attrs([Attr("address","0x67C")]), Phis([]), Defs([]), -Jmps([Call(Tid(550, "%00000226"), Attrs([Attr("address","0x67C"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))])), -Blk(Tid(849, "%00000351"), Attrs([Attr("address","0x674")]), Phis([]), -Defs([Def(Tid(853, "%00000355"), Attrs([Attr("address","0x674"), -Attr("insn","mov x16, x1")]), Var("R16",Imm(64)), Var("R1",Imm(64)))]), -Jmps([Call(Tid(858, "%0000035a"), Attrs([Attr("address","0x678"), -Attr("insn","br x16")]), Int(1,1), (Indirect(Var("R16",Imm(64))),))]))])), -Sub(Tid(1_397, "@frame_dummy"), Attrs([Attr("c.proto","signed (*)(void)"), -Attr("address","0x710")]), "frame_dummy", Args([Arg(Tid(1_415, "%00000587"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("frame_dummy_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(702, "@frame_dummy"), - Attrs([Attr("address","0x710")]), Phis([]), Defs([]), -Jmps([Call(Tid(704, "%000002c0"), Attrs([Attr("address","0x710"), -Attr("insn","b #-0x90")]), Int(1,1), -(Direct(Tid(1_399, "@register_tm_clones")),))]))])), Sub(Tid(1_398, "@main"), - Attrs([Attr("c.proto","signed (*)(signed argc, const char** argv)"), -Attr("address","0x714")]), "main", Args([Arg(Tid(1_416, "%00000588"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("main_argc",Imm(32)), -LOW(32,Var("R0",Imm(64))), In()), Arg(Tid(1_417, "%00000589"), - Attrs([Attr("c.layout","**[char : 8]"), Attr("c.data","Top:u8 ptr ptr"), -Attr("c.type"," const char**")]), Var("main_argv",Imm(64)), -Var("R1",Imm(64)), Both()), Arg(Tid(1_418, "%0000058a"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("main_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(706, "@main"), - Attrs([Attr("address","0x714")]), Phis([]), Defs([Def(Tid(709, "%000002c5"), - Attrs([Attr("address","0x714"), Attr("insn","adrp x8, #69632")]), - Var("R8",Imm(64)), Int(69632,64)), Def(Tid(714, "%000002ca"), - Attrs([Attr("address","0x718"), Attr("insn","adrp x9, #69632")]), - Var("R9",Imm(64)), Int(69632,64)), Def(Tid(719, "%000002cf"), - Attrs([Attr("address","0x71C"), Attr("insn","mov w0, wzr")]), - Var("R0",Imm(64)), Int(0,64)), Def(Tid(726, "%000002d6"), - Attrs([Attr("address","0x720"), Attr("insn","ldrb w8, [x8, #0x34]")]), - Var("R8",Imm(64)), -UNSIGNED(64,Load(Var("mem",Mem(64,8)),PLUS(Var("R8",Imm(64)),Int(52,64)),LittleEndian(),8))), -Def(Tid(734, "%000002de"), Attrs([Attr("address","0x724"), -Attr("insn","strb w8, [x9, #0x38]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R9",Imm(64)),Int(56,64)),Extract(7,0,Var("R8",Imm(64))),LittleEndian(),8))]), -Jmps([Call(Tid(739, "%000002e3"), Attrs([Attr("address","0x728"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))]))])), -Sub(Tid(1_399, "@register_tm_clones"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x680")]), - "register_tm_clones", Args([Arg(Tid(1_419, "%0000058b"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("register_tm_clones_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(552, "@register_tm_clones"), Attrs([Attr("address","0x680")]), - Phis([]), Defs([Def(Tid(555, "%0000022b"), Attrs([Attr("address","0x680"), -Attr("insn","adrp x0, #69632")]), Var("R0",Imm(64)), Int(69632,64)), -Def(Tid(561, "%00000231"), Attrs([Attr("address","0x684"), -Attr("insn","add x0, x0, #0x30")]), Var("R0",Imm(64)), -PLUS(Var("R0",Imm(64)),Int(48,64))), Def(Tid(566, "%00000236"), - Attrs([Attr("address","0x688"), Attr("insn","adrp x1, #69632")]), - Var("R1",Imm(64)), Int(69632,64)), Def(Tid(572, "%0000023c"), - Attrs([Attr("address","0x68C"), Attr("insn","add x1, x1, #0x30")]), - Var("R1",Imm(64)), PLUS(Var("R1",Imm(64)),Int(48,64))), -Def(Tid(579, "%00000243"), Attrs([Attr("address","0x690"), -Attr("insn","sub x1, x1, x0")]), Var("R1",Imm(64)), -PLUS(PLUS(Var("R1",Imm(64)),NOT(Var("R0",Imm(64)))),Int(1,64))), -Def(Tid(585, "%00000249"), Attrs([Attr("address","0x694"), -Attr("insn","lsr x2, x1, #63")]), Var("R2",Imm(64)), -Concat(Int(0,63),Extract(63,63,Var("R1",Imm(64))))), -Def(Tid(592, "%00000250"), Attrs([Attr("address","0x698"), -Attr("insn","add x1, x2, x1, asr #3")]), Var("R1",Imm(64)), -PLUS(Var("R2",Imm(64)),ARSHIFT(Var("R1",Imm(64)),Int(3,3)))), -Def(Tid(598, "%00000256"), Attrs([Attr("address","0x69C"), -Attr("insn","asr x1, x1, #1")]), Var("R1",Imm(64)), -SIGNED(64,Extract(63,1,Var("R1",Imm(64)))))]), -Jmps([Goto(Tid(604, "%0000025c"), Attrs([Attr("address","0x6A0"), -Attr("insn","cbz x1, #0x18")]), EQ(Var("R1",Imm(64)),Int(0,64)), -Direct(Tid(602, "%0000025a"))), Goto(Tid(1_400, "%00000578"), Attrs([]), - Int(1,1), Direct(Tid(800, "%00000320")))])), Blk(Tid(800, "%00000320"), - Attrs([Attr("address","0x6A4")]), Phis([]), Defs([Def(Tid(803, "%00000323"), - Attrs([Attr("address","0x6A4"), Attr("insn","adrp x2, #65536")]), - Var("R2",Imm(64)), Int(65536,64)), Def(Tid(810, "%0000032a"), - Attrs([Attr("address","0x6A8"), Attr("insn","ldr x2, [x2, #0xfe0]")]), - Var("R2",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R2",Imm(64)),Int(4064,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(815, "%0000032f"), Attrs([Attr("address","0x6AC"), -Attr("insn","cbz x2, #0xc")]), EQ(Var("R2",Imm(64)),Int(0,64)), -Direct(Tid(602, "%0000025a"))), Goto(Tid(1_401, "%00000579"), Attrs([]), - Int(1,1), Direct(Tid(819, "%00000333")))])), Blk(Tid(602, "%0000025a"), - Attrs([Attr("address","0x6B8")]), Phis([]), Defs([]), -Jmps([Call(Tid(610, "%00000262"), Attrs([Attr("address","0x6B8"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))])), -Blk(Tid(819, "%00000333"), Attrs([Attr("address","0x6B0")]), Phis([]), -Defs([Def(Tid(823, "%00000337"), Attrs([Attr("address","0x6B0"), -Attr("insn","mov x16, x2")]), Var("R16",Imm(64)), Var("R2",Imm(64)))]), -Jmps([Call(Tid(828, "%0000033c"), Attrs([Attr("address","0x6B4"), -Attr("insn","br x16")]), Int(1,1), -(Indirect(Var("R16",Imm(64))),))]))]))]))) \ No newline at end of file diff --git a/src/test/incorrect/basicassign3/clang_O2/basicassign3.bir b/src/test/incorrect/basicassign3/clang_O2/basicassign3.bir deleted file mode 100644 index 511340754..000000000 --- a/src/test/incorrect/basicassign3/clang_O2/basicassign3.bir +++ /dev/null @@ -1,228 +0,0 @@ -0000057a: program -00000564: sub __cxa_finalize(__cxa_finalize_result) -0000057b: __cxa_finalize_result :: out u32 = low:32[R0] - -0000031c: -00000414: R16 := 0x11000 -0000041b: R17 := mem[R16 + 8, el]:u64 -00000421: R16 := R16 + 8 -00000426: call R17 with noreturn - -00000565: sub __do_global_dtors_aux(__do_global_dtors_aux_result) -0000057c: __do_global_dtors_aux_result :: out u32 = low:32[R0] - -00000266: -0000026a: #3 := R31 - 0x20 -00000270: mem := mem with [#3, el]:u64 <- R29 -00000276: mem := mem with [#3 + 8, el]:u64 <- R30 -0000027a: R31 := #3 -00000280: R29 := R31 -00000288: mem := mem with [R31 + 0x10, el]:u64 <- R19 -0000028d: R19 := 0x11000 -00000294: R0 := pad:64[mem[R19 + 0x30]] -0000029b: when 31:0[R0] <> 0 goto %00000299 -00000566: goto %000002e5 - -000002e5: -000002e8: R0 := 0x10000 -000002ef: R0 := mem[R0 + 0xFC8, el]:u64 -000002f5: when R0 = 0 goto %000002f3 -00000567: goto %0000030c - -0000030c: -0000030f: R0 := 0x11000 -00000316: R0 := mem[R0 + 0x28, el]:u64 -0000031b: R30 := 0x6F0 -0000031e: call @__cxa_finalize with return %000002f3 - -000002f3: -000002fb: R30 := 0x6F4 -000002fd: call @deregister_tm_clones with return %000002ff - -000002ff: -00000302: R0 := 1 -0000030a: mem := mem with [R19 + 0x30] <- 7:0[R0] -00000568: goto %00000299 - -00000299: -000002a3: R19 := mem[R31 + 0x10, el]:u64 -000002aa: R29 := mem[R31, el]:u64 -000002af: R30 := mem[R31 + 8, el]:u64 -000002b3: R31 := R31 + 0x20 -000002b8: call R30 with noreturn - -00000569: sub __libc_start_main(__libc_start_main_main, __libc_start_main_arg2, __libc_start_main_arg3, __libc_start_main_auxv, __libc_start_main_result) -0000057d: __libc_start_main_main :: in u64 = R0 -0000057e: __libc_start_main_arg2 :: in u32 = low:32[R1] -0000057f: __libc_start_main_arg3 :: in out u64 = R2 -00000580: __libc_start_main_auxv :: in out u64 = R3 -00000581: __libc_start_main_result :: out u32 = low:32[R0] - -000001bf: -000003fe: R16 := 0x11000 -00000405: R17 := mem[R16, el]:u64 -0000040b: R16 := R16 -00000410: call R17 with noreturn - -0000056a: sub _fini(_fini_result) -00000582: _fini_result :: out u32 = low:32[R0] - -0000001f: -00000025: #0 := R31 - 0x10 -0000002b: mem := mem with [#0, el]:u64 <- R29 -00000031: mem := mem with [#0 + 8, el]:u64 <- R30 -00000035: R31 := #0 -0000003b: R29 := R31 -00000042: R29 := mem[R31, el]:u64 -00000047: R30 := mem[R31 + 8, el]:u64 -0000004b: R31 := R31 + 0x10 -00000050: call R30 with noreturn - -0000056b: sub _init(_init_result) -00000583: _init_result :: out u32 = low:32[R0] - -000004c0: -000004c6: #5 := R31 - 0x10 -000004cc: mem := mem with [#5, el]:u64 <- R29 -000004d2: mem := mem with [#5 + 8, el]:u64 <- R30 -000004d6: R31 := #5 -000004dc: R29 := R31 -000004e1: R30 := 0x590 -000004e3: call @call_weak_fn with return %000004e5 - -000004e5: -000004ea: R29 := mem[R31, el]:u64 -000004ef: R30 := mem[R31 + 8, el]:u64 -000004f3: R31 := R31 + 0x10 -000004f8: call R30 with noreturn - -0000056c: sub _start(_start_result) -00000584: _start_result :: out u32 = low:32[R0] - -00000180: -00000185: R29 := 0 -0000018a: R30 := 0 -00000190: R5 := R0 -00000197: R1 := mem[R31, el]:u64 -0000019d: R2 := R31 + 8 -000001a3: R6 := R31 -000001a8: R0 := 0x10000 -000001af: R0 := mem[R0 + 0xFD8, el]:u64 -000001b4: R3 := 0 -000001b9: R4 := 0 -000001be: R30 := 0x630 -000001c1: call @__libc_start_main with return %000001c3 - -000001c3: -000001c6: R30 := 0x634 -000001c9: call @abort with return %0000056d - -0000056d: -0000056e: call @call_weak_fn with noreturn - -0000056f: sub abort() - - -000001c7: -00000440: R16 := 0x11000 -00000447: R17 := mem[R16 + 0x18, el]:u64 -0000044d: R16 := R16 + 0x18 -00000452: call R17 with noreturn - -00000570: sub call_weak_fn(call_weak_fn_result) -00000585: call_weak_fn_result :: out u32 = low:32[R0] - -000001cb: -000001ce: R0 := 0x10000 -000001d5: R0 := mem[R0 + 0xFD0, el]:u64 -000001db: when R0 = 0 goto %000001d9 -00000571: goto %0000035c - -000001d9: -000001e1: call R30 with noreturn - -0000035c: -0000035f: goto @__gmon_start__ - -0000035d: -0000042a: R16 := 0x11000 -00000431: R17 := mem[R16 + 0x10, el]:u64 -00000437: R16 := R16 + 0x10 -0000043c: call R17 with noreturn - -00000572: sub deregister_tm_clones(deregister_tm_clones_result) -00000586: deregister_tm_clones_result :: out u32 = low:32[R0] - -000001e7: -000001ea: R0 := 0x11000 -000001f0: R0 := R0 + 0x30 -000001f5: R1 := 0x11000 -000001fb: R1 := R1 + 0x30 -00000201: #1 := ~R0 -00000206: #2 := R1 + ~R0 -0000020c: VF := extend:65[#2 + 1] <> extend:65[R1] + extend:65[#1] + 1 -00000212: CF := pad:65[#2 + 1] <> pad:65[R1] + pad:65[#1] + 1 -00000216: ZF := #2 + 1 = 0 -0000021a: NF := 63:63[#2 + 1] -00000220: when ZF goto %0000021e -00000573: goto %0000033e - -0000033e: -00000341: R1 := 0x10000 -00000348: R1 := mem[R1 + 0xFC0, el]:u64 -0000034d: when R1 = 0 goto %0000021e -00000574: goto %00000351 - -0000021e: -00000226: call R30 with noreturn - -00000351: -00000355: R16 := R1 -0000035a: call R16 with noreturn - -00000575: sub frame_dummy(frame_dummy_result) -00000587: frame_dummy_result :: out u32 = low:32[R0] - -000002be: -000002c0: call @register_tm_clones with noreturn - -00000576: sub main(main_argc, main_argv, main_result) -00000588: main_argc :: in u32 = low:32[R0] -00000589: main_argv :: in out u64 = R1 -0000058a: main_result :: out u32 = low:32[R0] - -000002c2: -000002c5: R8 := 0x11000 -000002ca: R9 := 0x11000 -000002cf: R0 := 0 -000002d6: R8 := pad:64[mem[R8 + 0x34]] -000002de: mem := mem with [R9 + 0x38] <- 7:0[R8] -000002e3: call R30 with noreturn - -00000577: sub register_tm_clones(register_tm_clones_result) -0000058b: register_tm_clones_result :: out u32 = low:32[R0] - -00000228: -0000022b: R0 := 0x11000 -00000231: R0 := R0 + 0x30 -00000236: R1 := 0x11000 -0000023c: R1 := R1 + 0x30 -00000243: R1 := R1 + ~R0 + 1 -00000249: R2 := 0.63:63[R1] -00000250: R1 := R2 + (R1 ~>> 3) -00000256: R1 := extend:64[63:1[R1]] -0000025c: when R1 = 0 goto %0000025a -00000578: goto %00000320 - -00000320: -00000323: R2 := 0x10000 -0000032a: R2 := mem[R2 + 0xFE0, el]:u64 -0000032f: when R2 = 0 goto %0000025a -00000579: goto %00000333 - -0000025a: -00000262: call R30 with noreturn - -00000333: -00000337: R16 := R2 -0000033c: call R16 with noreturn diff --git a/src/test/incorrect/basicassign3/clang_O2/basicassign3.expected b/src/test/incorrect/basicassign3/clang_O2/basicassign3.expected index af031d04f..e22cf08e6 100644 --- a/src/test/incorrect/basicassign3/clang_O2/basicassign3.expected +++ b/src/test/incorrect/basicassign3/clang_O2/basicassign3.expected @@ -7,14 +7,18 @@ var {:extern} R8: bv64; var {:extern} R9: bv64; var {:extern} mem: [bv64]bv8; const {:extern} $secret_addr: bv64; -axiom ($secret_addr == 69684bv64); +axiom ($secret_addr == 131089bv64); const {:extern} $z_addr: bv64; -axiom ($z_addr == 69688bv64); +axiom ($z_addr == 131090bv64); function {:extern} L(mem$in: [bv64]bv8, index: bv64) returns (bool) { (if (index == $secret_addr) then false else (if (index == $z_addr) then true else false)) } function {:extern} {:bvbuiltin "bvadd"} bvadd64(bv64, bv64) returns (bv64); +function {:extern} gamma_load64(gammaMap: [bv64]bool, index: bv64) returns (bool) { + (gammaMap[bvadd64(index, 7bv64)] && (gammaMap[bvadd64(index, 6bv64)] && (gammaMap[bvadd64(index, 5bv64)] && (gammaMap[bvadd64(index, 4bv64)] && (gammaMap[bvadd64(index, 3bv64)] && (gammaMap[bvadd64(index, 2bv64)] && (gammaMap[bvadd64(index, 1bv64)] && gammaMap[index]))))))) +} + function {:extern} gamma_load8(gammaMap: [bv64]bool, index: bv64) returns (bool) { gammaMap[index] } @@ -44,11 +48,13 @@ procedure {:extern} rely(); modifies Gamma_mem, mem; ensures (Gamma_mem == old(Gamma_mem)); ensures (mem == old(mem)); - free ensures (memory_load32_le(mem, 1856bv64) == 131073bv32); - free ensures (memory_load64_le(mem, 69064bv64) == 1808bv64); - free ensures (memory_load64_le(mem, 69072bv64) == 1728bv64); - free ensures (memory_load64_le(mem, 69592bv64) == 1812bv64); - free ensures (memory_load64_le(mem, 69672bv64) == 69672bv64); + free ensures (memory_load32_le(mem, 2312bv64) == 131073bv32); + free ensures (memory_load64_le(mem, 130424bv64) == 2256bv64); + free ensures (memory_load64_le(mem, 130432bv64) == 2176bv64); + free ensures (memory_load64_le(mem, 131032bv64) == 131090bv64); + free ensures (memory_load64_le(mem, 131048bv64) == 131089bv64); + free ensures (memory_load64_le(mem, 131056bv64) == 2260bv64); + free ensures (memory_load64_le(mem, 131080bv64) == 131080bv64); procedure {:extern} rely_transitive(); modifies Gamma_mem, mem; @@ -66,40 +72,54 @@ procedure {:extern} rely_reflexive(); procedure {:extern} guarantee_reflexive(); modifies Gamma_mem, mem; -procedure main_1812(); +procedure main(); modifies Gamma_R0, Gamma_R8, Gamma_R9, Gamma_mem, R0, R8, R9, mem; - free requires (memory_load64_le(mem, 69664bv64) == 0bv64); - free requires (memory_load64_le(mem, 69672bv64) == 69672bv64); - free requires (memory_load32_le(mem, 1856bv64) == 131073bv32); - free requires (memory_load64_le(mem, 69064bv64) == 1808bv64); - free requires (memory_load64_le(mem, 69072bv64) == 1728bv64); - free requires (memory_load64_le(mem, 69592bv64) == 1812bv64); - free requires (memory_load64_le(mem, 69672bv64) == 69672bv64); - free ensures (memory_load32_le(mem, 1856bv64) == 131073bv32); - free ensures (memory_load64_le(mem, 69064bv64) == 1808bv64); - free ensures (memory_load64_le(mem, 69072bv64) == 1728bv64); - free ensures (memory_load64_le(mem, 69592bv64) == 1812bv64); - free ensures (memory_load64_le(mem, 69672bv64) == 69672bv64); + free requires (memory_load64_le(mem, 131072bv64) == 0bv64); + free requires (memory_load64_le(mem, 131080bv64) == 131080bv64); + free requires (memory_load32_le(mem, 2312bv64) == 131073bv32); + free requires (memory_load64_le(mem, 130424bv64) == 2256bv64); + free requires (memory_load64_le(mem, 130432bv64) == 2176bv64); + free requires (memory_load64_le(mem, 131032bv64) == 131090bv64); + free requires (memory_load64_le(mem, 131048bv64) == 131089bv64); + free requires (memory_load64_le(mem, 131056bv64) == 2260bv64); + free requires (memory_load64_le(mem, 131080bv64) == 131080bv64); + free ensures (memory_load32_le(mem, 2312bv64) == 131073bv32); + free ensures (memory_load64_le(mem, 130424bv64) == 2256bv64); + free ensures (memory_load64_le(mem, 130432bv64) == 2176bv64); + free ensures (memory_load64_le(mem, 131032bv64) == 131090bv64); + free ensures (memory_load64_le(mem, 131048bv64) == 131089bv64); + free ensures (memory_load64_le(mem, 131056bv64) == 2260bv64); + free ensures (memory_load64_le(mem, 131080bv64) == 131080bv64); -implementation main_1812() +implementation main() { - var Gamma_load18: bool; - var load18: bv8; + var $load$18: bv64; + var $load$19: bv8; + var $load$20: bv64; + var Gamma_$load$18: bool; + var Gamma_$load$19: bool; + var Gamma_$load$20: bool; lmain: assume {:captureState "lmain"} true; - R8, Gamma_R8 := 69632bv64, true; - R9, Gamma_R9 := 69632bv64, true; + R8, Gamma_R8 := 126976bv64, true; + R9, Gamma_R9 := 126976bv64, true; R0, Gamma_R0 := 0bv64, true; call rely(); - load18, Gamma_load18 := memory_load8_le(mem, bvadd64(R8, 52bv64)), (gamma_load8(Gamma_mem, bvadd64(R8, 52bv64)) || L(mem, bvadd64(R8, 52bv64))); - R8, Gamma_R8 := zero_extend56_8(load18), Gamma_load18; + $load$18, Gamma_$load$18 := memory_load64_le(mem, bvadd64(R8, 4072bv64)), (gamma_load64(Gamma_mem, bvadd64(R8, 4072bv64)) || L(mem, bvadd64(R8, 4072bv64))); + R8, Gamma_R8 := $load$18, Gamma_$load$18; + call rely(); + $load$19, Gamma_$load$19 := memory_load8_le(mem, R8), (gamma_load8(Gamma_mem, R8) || L(mem, R8)); + R8, Gamma_R8 := zero_extend56_8($load$19), Gamma_$load$19; + call rely(); + $load$20, Gamma_$load$20 := memory_load64_le(mem, bvadd64(R9, 4056bv64)), (gamma_load64(Gamma_mem, bvadd64(R9, 4056bv64)) || L(mem, bvadd64(R9, 4056bv64))); + R9, Gamma_R9 := $load$20, Gamma_$load$20; call rely(); - assert (L(mem, bvadd64(R9, 56bv64)) ==> Gamma_R8); - mem, Gamma_mem := memory_store8_le(mem, bvadd64(R9, 56bv64), R8[8:0]), gamma_store8(Gamma_mem, bvadd64(R9, 56bv64), Gamma_R8); - assume {:captureState "%000002de"} true; - goto main_1812_basil_return; - main_1812_basil_return: - assume {:captureState "main_1812_basil_return"} true; + assert (L(mem, R9) ==> Gamma_R8); + mem, Gamma_mem := memory_store8_le(mem, R9, R8[8:0]), gamma_store8(Gamma_mem, R9, Gamma_R8); + assume {:captureState "%00000294"} true; + goto main_basil_return; + main_basil_return: + assume {:captureState "main_basil_return"} true; return; } diff --git a/src/test/incorrect/basicassign3/clang_O2/basicassign3.gts b/src/test/incorrect/basicassign3/clang_O2/basicassign3.gts deleted file mode 100644 index 63e57f308..000000000 Binary files a/src/test/incorrect/basicassign3/clang_O2/basicassign3.gts and /dev/null differ diff --git a/src/test/incorrect/basicassign3/clang_O2/basicassign3.md5sum b/src/test/incorrect/basicassign3/clang_O2/basicassign3.md5sum new file mode 100644 index 000000000..8d5d16b3d --- /dev/null +++ b/src/test/incorrect/basicassign3/clang_O2/basicassign3.md5sum @@ -0,0 +1,5 @@ +2784d0b45b5d25eadde0d0bcafefd8f7 incorrect/basicassign3/clang_O2/a.out +ec2344ba70be3d72ce00d9ff5488d2d5 incorrect/basicassign3/clang_O2/basicassign3.adt +af2ccea6abcf47fac81f69de0f7f8f04 incorrect/basicassign3/clang_O2/basicassign3.bir +5d60e8fe7b05e748286dd6bd1b92225c incorrect/basicassign3/clang_O2/basicassign3.relf +edb725a42c5163ae89dd561f7fc64a2c incorrect/basicassign3/clang_O2/basicassign3.gts diff --git a/src/test/incorrect/basicassign3/clang_O2/basicassign3.relf b/src/test/incorrect/basicassign3/clang_O2/basicassign3.relf deleted file mode 100644 index 83717a289..000000000 --- a/src/test/incorrect/basicassign3/clang_O2/basicassign3.relf +++ /dev/null @@ -1,124 +0,0 @@ - -Relocation section '.rela.dyn' at offset 0x460 contains 8 entries: - Offset Info Type Symbol's Value Symbol's Name + Addend -0000000000010dc8 0000000000000403 R_AARCH64_RELATIVE 710 -0000000000010dd0 0000000000000403 R_AARCH64_RELATIVE 6c0 -0000000000010fd8 0000000000000403 R_AARCH64_RELATIVE 714 -0000000000011028 0000000000000403 R_AARCH64_RELATIVE 11028 -0000000000010fc0 0000000400000401 R_AARCH64_GLOB_DAT 0000000000000000 _ITM_deregisterTMCloneTable + 0 -0000000000010fc8 0000000500000401 R_AARCH64_GLOB_DAT 0000000000000000 __cxa_finalize@GLIBC_2.17 + 0 -0000000000010fd0 0000000600000401 R_AARCH64_GLOB_DAT 0000000000000000 __gmon_start__ + 0 -0000000000010fe0 0000000800000401 R_AARCH64_GLOB_DAT 0000000000000000 _ITM_registerTMCloneTable + 0 - -Relocation section '.rela.plt' at offset 0x520 contains 4 entries: - Offset Info Type Symbol's Value Symbol's Name + Addend -0000000000011000 0000000300000402 R_AARCH64_JUMP_SLOT 0000000000000000 __libc_start_main@GLIBC_2.34 + 0 -0000000000011008 0000000500000402 R_AARCH64_JUMP_SLOT 0000000000000000 __cxa_finalize@GLIBC_2.17 + 0 -0000000000011010 0000000600000402 R_AARCH64_JUMP_SLOT 0000000000000000 __gmon_start__ + 0 -0000000000011018 0000000700000402 R_AARCH64_JUMP_SLOT 0000000000000000 abort@GLIBC_2.17 + 0 - -Symbol table '.dynsym' contains 9 entries: - Num: Value Size Type Bind Vis Ndx Name - 0: 0000000000000000 0 NOTYPE LOCAL DEFAULT UND - 1: 0000000000000580 0 SECTION LOCAL DEFAULT 11 .init - 2: 0000000000011020 0 SECTION LOCAL DEFAULT 23 .data - 3: 0000000000000000 0 FUNC GLOBAL DEFAULT UND __libc_start_main@GLIBC_2.34 (2) - 4: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_deregisterTMCloneTable - 5: 0000000000000000 0 FUNC WEAK DEFAULT UND __cxa_finalize@GLIBC_2.17 (3) - 6: 0000000000000000 0 NOTYPE WEAK DEFAULT UND __gmon_start__ - 7: 0000000000000000 0 FUNC GLOBAL DEFAULT UND abort@GLIBC_2.17 (3) - 8: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_registerTMCloneTable - -Symbol table '.symtab' contains 91 entries: - Num: Value Size Type Bind Vis Ndx Name - 0: 0000000000000000 0 NOTYPE LOCAL DEFAULT UND - 1: 0000000000000238 0 SECTION LOCAL DEFAULT 1 .interp - 2: 0000000000000254 0 SECTION LOCAL DEFAULT 2 .note.gnu.build-id - 3: 0000000000000278 0 SECTION LOCAL DEFAULT 3 .note.ABI-tag - 4: 0000000000000298 0 SECTION LOCAL DEFAULT 4 .gnu.hash - 5: 00000000000002b8 0 SECTION LOCAL DEFAULT 5 .dynsym - 6: 0000000000000390 0 SECTION LOCAL DEFAULT 6 .dynstr - 7: 000000000000041e 0 SECTION LOCAL DEFAULT 7 .gnu.version - 8: 0000000000000430 0 SECTION LOCAL DEFAULT 8 .gnu.version_r - 9: 0000000000000460 0 SECTION LOCAL DEFAULT 9 .rela.dyn - 10: 0000000000000520 0 SECTION LOCAL DEFAULT 10 .rela.plt - 11: 0000000000000580 0 SECTION LOCAL DEFAULT 11 .init - 12: 00000000000005a0 0 SECTION LOCAL DEFAULT 12 .plt - 13: 0000000000000600 0 SECTION LOCAL DEFAULT 13 .text - 14: 000000000000072c 0 SECTION LOCAL DEFAULT 14 .fini - 15: 0000000000000740 0 SECTION LOCAL DEFAULT 15 .rodata - 16: 0000000000000744 0 SECTION LOCAL DEFAULT 16 .eh_frame_hdr - 17: 0000000000000780 0 SECTION LOCAL DEFAULT 17 .eh_frame - 18: 0000000000010dc8 0 SECTION LOCAL DEFAULT 18 .init_array - 19: 0000000000010dd0 0 SECTION LOCAL DEFAULT 19 .fini_array - 20: 0000000000010dd8 0 SECTION LOCAL DEFAULT 20 .dynamic - 21: 0000000000010fb8 0 SECTION LOCAL DEFAULT 21 .got - 22: 0000000000010fe8 0 SECTION LOCAL DEFAULT 22 .got.plt - 23: 0000000000011020 0 SECTION LOCAL DEFAULT 23 .data - 24: 0000000000011030 0 SECTION LOCAL DEFAULT 24 .bss - 25: 0000000000000000 0 SECTION LOCAL DEFAULT 25 .comment - 26: 0000000000000000 0 FILE LOCAL DEFAULT ABS Scrt1.o - 27: 0000000000000278 0 NOTYPE LOCAL DEFAULT 3 $d - 28: 0000000000000278 32 OBJECT LOCAL DEFAULT 3 __abi_tag - 29: 0000000000000600 0 NOTYPE LOCAL DEFAULT 13 $x - 30: 0000000000000794 0 NOTYPE LOCAL DEFAULT 17 $d - 31: 0000000000000740 0 NOTYPE LOCAL DEFAULT 15 $d - 32: 0000000000000000 0 FILE LOCAL DEFAULT ABS crti.o - 33: 0000000000000634 0 NOTYPE LOCAL DEFAULT 13 $x - 34: 0000000000000634 20 FUNC LOCAL DEFAULT 13 call_weak_fn - 35: 0000000000000580 0 NOTYPE LOCAL DEFAULT 11 $x - 36: 000000000000072c 0 NOTYPE LOCAL DEFAULT 14 $x - 37: 0000000000000000 0 FILE LOCAL DEFAULT ABS crtn.o - 38: 0000000000000590 0 NOTYPE LOCAL DEFAULT 11 $x - 39: 0000000000000738 0 NOTYPE LOCAL DEFAULT 14 $x - 40: 0000000000000000 0 FILE LOCAL DEFAULT ABS crtstuff.c - 41: 0000000000000650 0 NOTYPE LOCAL DEFAULT 13 $x - 42: 0000000000000650 0 FUNC LOCAL DEFAULT 13 deregister_tm_clones - 43: 0000000000000680 0 FUNC LOCAL DEFAULT 13 register_tm_clones - 44: 0000000000011028 0 NOTYPE LOCAL DEFAULT 23 $d - 45: 00000000000006c0 0 FUNC LOCAL DEFAULT 13 __do_global_dtors_aux - 46: 0000000000011030 1 OBJECT LOCAL DEFAULT 24 completed.0 - 47: 0000000000010dd0 0 NOTYPE LOCAL DEFAULT 19 $d - 48: 0000000000010dd0 0 OBJECT LOCAL DEFAULT 19 __do_global_dtors_aux_fini_array_entry - 49: 0000000000000710 0 FUNC LOCAL DEFAULT 13 frame_dummy - 50: 0000000000010dc8 0 NOTYPE LOCAL DEFAULT 18 $d - 51: 0000000000010dc8 0 OBJECT LOCAL DEFAULT 18 __frame_dummy_init_array_entry - 52: 00000000000007a8 0 NOTYPE LOCAL DEFAULT 17 $d - 53: 0000000000011030 0 NOTYPE LOCAL DEFAULT 24 $d - 54: 0000000000000000 0 FILE LOCAL DEFAULT ABS basicassign3.c - 55: 0000000000000714 0 NOTYPE LOCAL DEFAULT 13 $x.0 - 56: 0000000000011034 0 NOTYPE LOCAL DEFAULT 24 $d.1 - 57: 000000000000002a 0 NOTYPE LOCAL DEFAULT 25 $d.2 - 58: 0000000000000808 0 NOTYPE LOCAL DEFAULT 17 $d.3 - 59: 0000000000000000 0 FILE LOCAL DEFAULT ABS crtstuff.c - 60: 0000000000000830 0 NOTYPE LOCAL DEFAULT 17 $d - 61: 0000000000000830 0 OBJECT LOCAL DEFAULT 17 __FRAME_END__ - 62: 0000000000000000 0 FILE LOCAL DEFAULT ABS - 63: 0000000000010dd8 0 OBJECT LOCAL DEFAULT ABS _DYNAMIC - 64: 0000000000000744 0 NOTYPE LOCAL DEFAULT 16 __GNU_EH_FRAME_HDR - 65: 0000000000010fb8 0 OBJECT LOCAL DEFAULT ABS _GLOBAL_OFFSET_TABLE_ - 66: 00000000000005a0 0 NOTYPE LOCAL DEFAULT 12 $x - 67: 0000000000000000 0 FUNC GLOBAL DEFAULT UND __libc_start_main@GLIBC_2.34 - 68: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_deregisterTMCloneTable - 69: 0000000000011020 0 NOTYPE WEAK DEFAULT 23 data_start - 70: 0000000000011030 0 NOTYPE GLOBAL DEFAULT 24 __bss_start__ - 71: 0000000000000000 0 FUNC WEAK DEFAULT UND __cxa_finalize@GLIBC_2.17 - 72: 0000000000011040 0 NOTYPE GLOBAL DEFAULT 24 _bss_end__ - 73: 0000000000011030 0 NOTYPE GLOBAL DEFAULT 23 _edata - 74: 0000000000011038 1 OBJECT GLOBAL DEFAULT 24 z - 75: 000000000000072c 0 FUNC GLOBAL HIDDEN 14 _fini - 76: 0000000000011040 0 NOTYPE GLOBAL DEFAULT 24 __bss_end__ - 77: 0000000000011020 0 NOTYPE GLOBAL DEFAULT 23 __data_start - 78: 0000000000000000 0 NOTYPE WEAK DEFAULT UND __gmon_start__ - 79: 0000000000011028 0 OBJECT GLOBAL HIDDEN 23 __dso_handle - 80: 0000000000000000 0 FUNC GLOBAL DEFAULT UND abort@GLIBC_2.17 - 81: 0000000000000740 4 OBJECT GLOBAL DEFAULT 15 _IO_stdin_used - 82: 0000000000011034 1 OBJECT GLOBAL DEFAULT 24 secret - 83: 0000000000011040 0 NOTYPE GLOBAL DEFAULT 24 _end - 84: 0000000000000600 52 FUNC GLOBAL DEFAULT 13 _start - 85: 0000000000011040 0 NOTYPE GLOBAL DEFAULT 24 __end__ - 86: 0000000000011030 0 NOTYPE GLOBAL DEFAULT 24 __bss_start - 87: 0000000000000714 24 FUNC GLOBAL DEFAULT 13 main - 88: 0000000000011030 0 OBJECT GLOBAL HIDDEN 23 __TMC_END__ - 89: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_registerTMCloneTable - 90: 0000000000000580 0 FUNC GLOBAL HIDDEN 11 _init diff --git a/src/test/incorrect/basicassign3/clang_O2/basicassign3_gtirb.expected b/src/test/incorrect/basicassign3/clang_O2/basicassign3_gtirb.expected index d6aa4e201..5eac97a09 100644 --- a/src/test/incorrect/basicassign3/clang_O2/basicassign3_gtirb.expected +++ b/src/test/incorrect/basicassign3/clang_O2/basicassign3_gtirb.expected @@ -7,14 +7,18 @@ var {:extern} R8: bv64; var {:extern} R9: bv64; var {:extern} mem: [bv64]bv8; const {:extern} $secret_addr: bv64; -axiom ($secret_addr == 69684bv64); +axiom ($secret_addr == 131089bv64); const {:extern} $z_addr: bv64; -axiom ($z_addr == 69688bv64); +axiom ($z_addr == 131090bv64); function {:extern} L(mem$in: [bv64]bv8, index: bv64) returns (bool) { (if (index == $secret_addr) then false else (if (index == $z_addr) then true else false)) } function {:extern} {:bvbuiltin "bvadd"} bvadd64(bv64, bv64) returns (bv64); +function {:extern} gamma_load64(gammaMap: [bv64]bool, index: bv64) returns (bool) { + (gammaMap[bvadd64(index, 7bv64)] && (gammaMap[bvadd64(index, 6bv64)] && (gammaMap[bvadd64(index, 5bv64)] && (gammaMap[bvadd64(index, 4bv64)] && (gammaMap[bvadd64(index, 3bv64)] && (gammaMap[bvadd64(index, 2bv64)] && (gammaMap[bvadd64(index, 1bv64)] && gammaMap[index]))))))) +} + function {:extern} gamma_load8(gammaMap: [bv64]bool, index: bv64) returns (bool) { gammaMap[index] } @@ -45,11 +49,13 @@ procedure {:extern} rely(); modifies Gamma_mem, mem; ensures (Gamma_mem == old(Gamma_mem)); ensures (mem == old(mem)); - free ensures (memory_load32_le(mem, 1856bv64) == 131073bv32); - free ensures (memory_load64_le(mem, 69064bv64) == 1808bv64); - free ensures (memory_load64_le(mem, 69072bv64) == 1728bv64); - free ensures (memory_load64_le(mem, 69592bv64) == 1812bv64); - free ensures (memory_load64_le(mem, 69672bv64) == 69672bv64); + free ensures (memory_load32_le(mem, 2312bv64) == 131073bv32); + free ensures (memory_load64_le(mem, 130424bv64) == 2256bv64); + free ensures (memory_load64_le(mem, 130432bv64) == 2176bv64); + free ensures (memory_load64_le(mem, 131032bv64) == 131090bv64); + free ensures (memory_load64_le(mem, 131048bv64) == 131089bv64); + free ensures (memory_load64_le(mem, 131056bv64) == 2260bv64); + free ensures (memory_load64_le(mem, 131080bv64) == 131080bv64); procedure {:extern} rely_transitive(); modifies Gamma_mem, mem; @@ -67,40 +73,54 @@ procedure {:extern} rely_reflexive(); procedure {:extern} guarantee_reflexive(); modifies Gamma_mem, mem; -procedure main_1812(); +procedure main(); modifies Gamma_R0, Gamma_R8, Gamma_R9, Gamma_mem, R0, R8, R9, mem; - free requires (memory_load64_le(mem, 69664bv64) == 0bv64); - free requires (memory_load64_le(mem, 69672bv64) == 69672bv64); - free requires (memory_load32_le(mem, 1856bv64) == 131073bv32); - free requires (memory_load64_le(mem, 69064bv64) == 1808bv64); - free requires (memory_load64_le(mem, 69072bv64) == 1728bv64); - free requires (memory_load64_le(mem, 69592bv64) == 1812bv64); - free requires (memory_load64_le(mem, 69672bv64) == 69672bv64); - free ensures (memory_load32_le(mem, 1856bv64) == 131073bv32); - free ensures (memory_load64_le(mem, 69064bv64) == 1808bv64); - free ensures (memory_load64_le(mem, 69072bv64) == 1728bv64); - free ensures (memory_load64_le(mem, 69592bv64) == 1812bv64); - free ensures (memory_load64_le(mem, 69672bv64) == 69672bv64); + free requires (memory_load64_le(mem, 131072bv64) == 0bv64); + free requires (memory_load64_le(mem, 131080bv64) == 131080bv64); + free requires (memory_load32_le(mem, 2312bv64) == 131073bv32); + free requires (memory_load64_le(mem, 130424bv64) == 2256bv64); + free requires (memory_load64_le(mem, 130432bv64) == 2176bv64); + free requires (memory_load64_le(mem, 131032bv64) == 131090bv64); + free requires (memory_load64_le(mem, 131048bv64) == 131089bv64); + free requires (memory_load64_le(mem, 131056bv64) == 2260bv64); + free requires (memory_load64_le(mem, 131080bv64) == 131080bv64); + free ensures (memory_load32_le(mem, 2312bv64) == 131073bv32); + free ensures (memory_load64_le(mem, 130424bv64) == 2256bv64); + free ensures (memory_load64_le(mem, 130432bv64) == 2176bv64); + free ensures (memory_load64_le(mem, 131032bv64) == 131090bv64); + free ensures (memory_load64_le(mem, 131048bv64) == 131089bv64); + free ensures (memory_load64_le(mem, 131056bv64) == 2260bv64); + free ensures (memory_load64_le(mem, 131080bv64) == 131080bv64); -implementation main_1812() +implementation main() { - var Gamma_load12: bool; - var load12: bv8; - main_1812__0__i980uv9RSgi73HJREH52Kw: - assume {:captureState "main_1812__0__i980uv9RSgi73HJREH52Kw"} true; - R8, Gamma_R8 := 69632bv64, true; - R9, Gamma_R9 := 69632bv64, true; + var $load5: bv64; + var $load6: bv8; + var $load7: bv64; + var Gamma_$load5: bool; + var Gamma_$load6: bool; + var Gamma_$load7: bool; + $main$__0__$D9t2gNJrSmyMH3GAVRe3IQ: + assume {:captureState "$main$__0__$D9t2gNJrSmyMH3GAVRe3IQ"} true; + R8, Gamma_R8 := 126976bv64, true; + R9, Gamma_R9 := 126976bv64, true; R0, Gamma_R0 := 0bv64, true; call rely(); - load12, Gamma_load12 := memory_load8_le(mem, bvadd64(R8, 52bv64)), (gamma_load8(Gamma_mem, bvadd64(R8, 52bv64)) || L(mem, bvadd64(R8, 52bv64))); - R8, Gamma_R8 := zero_extend32_32(zero_extend24_8(load12)), Gamma_load12; + $load5, Gamma_$load5 := memory_load64_le(mem, bvadd64(R8, 4072bv64)), (gamma_load64(Gamma_mem, bvadd64(R8, 4072bv64)) || L(mem, bvadd64(R8, 4072bv64))); + R8, Gamma_R8 := $load5, Gamma_$load5; + call rely(); + $load6, Gamma_$load6 := memory_load8_le(mem, R8), (gamma_load8(Gamma_mem, R8) || L(mem, R8)); + R8, Gamma_R8 := zero_extend32_32(zero_extend24_8($load6)), Gamma_$load6; + call rely(); + $load7, Gamma_$load7 := memory_load64_le(mem, bvadd64(R9, 4056bv64)), (gamma_load64(Gamma_mem, bvadd64(R9, 4056bv64)) || L(mem, bvadd64(R9, 4056bv64))); + R9, Gamma_R9 := $load7, Gamma_$load7; call rely(); - assert (L(mem, bvadd64(R9, 56bv64)) ==> Gamma_R8); - mem, Gamma_mem := memory_store8_le(mem, bvadd64(R9, 56bv64), R8[8:0]), gamma_store8(Gamma_mem, bvadd64(R9, 56bv64), Gamma_R8); - assume {:captureState "1828_0"} true; - goto main_1812_basil_return; - main_1812_basil_return: - assume {:captureState "main_1812_basil_return"} true; + assert (L(mem, R9) ==> Gamma_R8); + mem, Gamma_mem := memory_store8_le(mem, R9, R8[8:0]), gamma_store8(Gamma_mem, R9, Gamma_R8); + assume {:captureState "2284$0"} true; + goto main_basil_return; + main_basil_return: + assume {:captureState "main_basil_return"} true; return; } diff --git a/src/test/incorrect/basicassign3/clang_pic/basicassign3.adt b/src/test/incorrect/basicassign3/clang_pic/basicassign3.adt deleted file mode 100644 index 368781311..000000000 --- a/src/test/incorrect/basicassign3/clang_pic/basicassign3.adt +++ /dev/null @@ -1,529 +0,0 @@ -Project(Attrs([Attr("filename","\"clang_pic/basicassign3.out\""), -Attr("image-specification","(declare abi (name str))\n(declare arch (name str))\n(declare base-address (addr int))\n(declare bias (off int))\n(declare bits (size int))\n(declare code-region (addr int) (size int) (off int))\n(declare code-start (addr int))\n(declare entry-point (addr int))\n(declare external-reference (addr int) (name str))\n(declare format (name str))\n(declare is-executable (flag bool))\n(declare is-little-endian (flag bool))\n(declare llvm:base-address (addr int))\n(declare llvm:code-entry (name str) (off int) (size int))\n(declare llvm:coff-import-library (name str))\n(declare llvm:coff-virtual-section-header (name str) (addr int) (size int))\n(declare llvm:elf-program-header (name str) (off int) (size int))\n(declare llvm:elf-program-header-flags (name str) (ld bool) (r bool) \n (w bool) (x bool))\n(declare llvm:elf-virtual-program-header (name str) (addr int) (size int))\n(declare llvm:entry-point (addr int))\n(declare llvm:macho-symbol (name str) (value int))\n(declare llvm:name-reference (at int) (name str))\n(declare llvm:relocation (at int) (addr int))\n(declare llvm:section-entry (name str) (addr int) (size int) (off int))\n(declare llvm:section-flags (name str) (r bool) (w bool) (x bool))\n(declare llvm:segment-command (name str) (off int) (size int))\n(declare llvm:segment-command-flags (name str) (r bool) (w bool) (x bool))\n(declare llvm:symbol-entry (name str) (addr int) (size int) (off int)\n (value int))\n(declare llvm:virtual-segment-command (name str) (addr int) (size int))\n(declare mapped (addr int) (size int) (off int))\n(declare named-region (addr int) (size int) (name str))\n(declare named-symbol (addr int) (name str))\n(declare require (name str))\n(declare section (addr int) (size int))\n(declare segment (addr int) (size int) (r bool) (w bool) (x bool))\n(declare subarch (name str))\n(declare symbol-chunk (addr int) (size int) (root int))\n(declare symbol-value (addr int) (value int))\n(declare system (name str))\n(declare vendor (name str))\n\n(abi unknown)\n(arch aarch64)\n(base-address 0)\n(bias 0)\n(bits 64)\n(code-region 1944 20 1944)\n(code-region 1600 344 1600)\n(code-region 1488 96 1488)\n(code-region 1456 24 1456)\n(code-start 1652)\n(code-start 1600)\n(code-start 1876)\n(entry-point 1600)\n(external-reference 69552 _ITM_deregisterTMCloneTable)\n(external-reference 69560 __cxa_finalize)\n(external-reference 69576 __gmon_start__)\n(external-reference 69600 _ITM_registerTMCloneTable)\n(external-reference 69632 __libc_start_main)\n(external-reference 69640 __cxa_finalize)\n(external-reference 69648 __gmon_start__)\n(external-reference 69656 abort)\n(format elf)\n(is-executable true)\n(is-little-endian true)\n(llvm:base-address 0)\n(llvm:code-entry abort 0 0)\n(llvm:code-entry __cxa_finalize 0 0)\n(llvm:code-entry __libc_start_main 0 0)\n(llvm:code-entry _init 1456 0)\n(llvm:code-entry main 1876 68)\n(llvm:code-entry _start 1600 52)\n(llvm:code-entry abort@GLIBC_2.17 0 0)\n(llvm:code-entry _fini 1944 0)\n(llvm:code-entry __cxa_finalize@GLIBC_2.17 0 0)\n(llvm:code-entry __libc_start_main@GLIBC_2.34 0 0)\n(llvm:code-entry frame_dummy 1872 0)\n(llvm:code-entry __do_global_dtors_aux 1792 0)\n(llvm:code-entry register_tm_clones 1728 0)\n(llvm:code-entry deregister_tm_clones 1680 0)\n(llvm:code-entry call_weak_fn 1652 20)\n(llvm:code-entry .fini 1944 20)\n(llvm:code-entry .text 1600 344)\n(llvm:code-entry .plt 1488 96)\n(llvm:code-entry .init 1456 24)\n(llvm:elf-program-header 08 3512 584)\n(llvm:elf-program-header 07 0 0)\n(llvm:elf-program-header 06 1968 60)\n(llvm:elf-program-header 05 596 68)\n(llvm:elf-program-header 04 3528 480)\n(llvm:elf-program-header 03 3512 632)\n(llvm:elf-program-header 02 0 2216)\n(llvm:elf-program-header 01 568 27)\n(llvm:elf-program-header 00 64 504)\n(llvm:elf-program-header-flags 08 false true false false)\n(llvm:elf-program-header-flags 07 false true true false)\n(llvm:elf-program-header-flags 06 false true false false)\n(llvm:elf-program-header-flags 05 false true false false)\n(llvm:elf-program-header-flags 04 false true true false)\n(llvm:elf-program-header-flags 03 true true true false)\n(llvm:elf-program-header-flags 02 true true false true)\n(llvm:elf-program-header-flags 01 false true false false)\n(llvm:elf-program-header-flags 00 false true false false)\n(llvm:elf-virtual-program-header 08 69048 584)\n(llvm:elf-virtual-program-header 07 0 0)\n(llvm:elf-virtual-program-header 06 1968 60)\n(llvm:elf-virtual-program-header 05 596 68)\n(llvm:elf-virtual-program-header 04 69064 480)\n(llvm:elf-virtual-program-header 03 69048 640)\n(llvm:elf-virtual-program-header 02 0 2216)\n(llvm:elf-virtual-program-header 01 568 27)\n(llvm:elf-virtual-program-header 00 64 504)\n(llvm:entry-point 1600)\n(llvm:name-reference 69656 abort)\n(llvm:name-reference 69648 __gmon_start__)\n(llvm:name-reference 69640 __cxa_finalize)\n(llvm:name-reference 69632 __libc_start_main)\n(llvm:name-reference 69600 _ITM_registerTMCloneTable)\n(llvm:name-reference 69576 __gmon_start__)\n(llvm:name-reference 69560 __cxa_finalize)\n(llvm:name-reference 69552 _ITM_deregisterTMCloneTable)\n(llvm:section-entry .shstrtab 0 259 6977)\n(llvm:section-entry .strtab 0 577 6400)\n(llvm:section-entry .symtab 0 2184 4216)\n(llvm:section-entry .comment 0 71 4144)\n(llvm:section-entry .bss 69680 8 4144)\n(llvm:section-entry .data 69664 16 4128)\n(llvm:section-entry .got.plt 69608 56 4072)\n(llvm:section-entry .got 69544 64 4008)\n(llvm:section-entry .dynamic 69064 480 3528)\n(llvm:section-entry .fini_array 69056 8 3520)\n(llvm:section-entry .init_array 69048 8 3512)\n(llvm:section-entry .eh_frame 2032 184 2032)\n(llvm:section-entry .eh_frame_hdr 1968 60 1968)\n(llvm:section-entry .rodata 1964 4 1964)\n(llvm:section-entry .fini 1944 20 1944)\n(llvm:section-entry .text 1600 344 1600)\n(llvm:section-entry .plt 1488 96 1488)\n(llvm:section-entry .init 1456 24 1456)\n(llvm:section-entry .rela.plt 1360 96 1360)\n(llvm:section-entry .rela.dyn 1120 240 1120)\n(llvm:section-entry .gnu.version_r 1072 48 1072)\n(llvm:section-entry .gnu.version 1054 18 1054)\n(llvm:section-entry .dynstr 912 141 912)\n(llvm:section-entry .dynsym 696 216 696)\n(llvm:section-entry .gnu.hash 664 28 664)\n(llvm:section-entry .note.ABI-tag 632 32 632)\n(llvm:section-entry .note.gnu.build-id 596 36 596)\n(llvm:section-entry .interp 568 27 568)\n(llvm:section-flags .shstrtab true false false)\n(llvm:section-flags .strtab true false false)\n(llvm:section-flags .symtab true false false)\n(llvm:section-flags .comment true false false)\n(llvm:section-flags .bss true true false)\n(llvm:section-flags .data true true false)\n(llvm:section-flags .got.plt true true false)\n(llvm:section-flags .got true true false)\n(llvm:section-flags .dynamic true true false)\n(llvm:section-flags .fini_array true true false)\n(llvm:section-flags .init_array true true false)\n(llvm:section-flags .eh_frame true false false)\n(llvm:section-flags .eh_frame_hdr true false false)\n(llvm:section-flags .rodata true false false)\n(llvm:section-flags .fini true false true)\n(llvm:section-flags .text true false true)\n(llvm:section-flags .plt true false true)\n(llvm:section-flags .init true false true)\n(llvm:section-flags .rela.plt true false false)\n(llvm:section-flags .rela.dyn true false false)\n(llvm:section-flags .gnu.version_r true false false)\n(llvm:section-flags .gnu.version true false false)\n(llvm:section-flags .dynstr true false false)\n(llvm:section-flags .dynsym true false false)\n(llvm:section-flags .gnu.hash true false false)\n(llvm:section-flags .note.ABI-tag true false false)\n(llvm:section-flags .note.gnu.build-id true false false)\n(llvm:section-flags .interp true false false)\n(llvm:symbol-entry abort 0 0 0 0)\n(llvm:symbol-entry __cxa_finalize 0 0 0 0)\n(llvm:symbol-entry __libc_start_main 0 0 0 0)\n(llvm:symbol-entry _init 1456 0 1456 1456)\n(llvm:symbol-entry main 1876 68 1876 1876)\n(llvm:symbol-entry _start 1600 52 1600 1600)\n(llvm:symbol-entry abort@GLIBC_2.17 0 0 0 0)\n(llvm:symbol-entry _fini 1944 0 1944 1944)\n(llvm:symbol-entry __cxa_finalize@GLIBC_2.17 0 0 0 0)\n(llvm:symbol-entry __libc_start_main@GLIBC_2.34 0 0 0 0)\n(llvm:symbol-entry frame_dummy 1872 0 1872 1872)\n(llvm:symbol-entry __do_global_dtors_aux 1792 0 1792 1792)\n(llvm:symbol-entry register_tm_clones 1728 0 1728 1728)\n(llvm:symbol-entry deregister_tm_clones 1680 0 1680 1680)\n(llvm:symbol-entry call_weak_fn 1652 20 1652 1652)\n(mapped 0 2216 0)\n(mapped 69048 632 3512)\n(named-region 0 2216 02)\n(named-region 69048 640 03)\n(named-region 568 27 .interp)\n(named-region 596 36 .note.gnu.build-id)\n(named-region 632 32 .note.ABI-tag)\n(named-region 664 28 .gnu.hash)\n(named-region 696 216 .dynsym)\n(named-region 912 141 .dynstr)\n(named-region 1054 18 .gnu.version)\n(named-region 1072 48 .gnu.version_r)\n(named-region 1120 240 .rela.dyn)\n(named-region 1360 96 .rela.plt)\n(named-region 1456 24 .init)\n(named-region 1488 96 .plt)\n(named-region 1600 344 .text)\n(named-region 1944 20 .fini)\n(named-region 1964 4 .rodata)\n(named-region 1968 60 .eh_frame_hdr)\n(named-region 2032 184 .eh_frame)\n(named-region 69048 8 .init_array)\n(named-region 69056 8 .fini_array)\n(named-region 69064 480 .dynamic)\n(named-region 69544 64 .got)\n(named-region 69608 56 .got.plt)\n(named-region 69664 16 .data)\n(named-region 69680 8 .bss)\n(named-region 0 71 .comment)\n(named-region 0 2184 .symtab)\n(named-region 0 577 .strtab)\n(named-region 0 259 .shstrtab)\n(named-symbol 1652 call_weak_fn)\n(named-symbol 1680 deregister_tm_clones)\n(named-symbol 1728 register_tm_clones)\n(named-symbol 1792 __do_global_dtors_aux)\n(named-symbol 1872 frame_dummy)\n(named-symbol 0 __libc_start_main@GLIBC_2.34)\n(named-symbol 0 __cxa_finalize@GLIBC_2.17)\n(named-symbol 1944 _fini)\n(named-symbol 0 abort@GLIBC_2.17)\n(named-symbol 1600 _start)\n(named-symbol 1876 main)\n(named-symbol 1456 _init)\n(named-symbol 0 __libc_start_main)\n(named-symbol 0 __cxa_finalize)\n(named-symbol 0 abort)\n(require libc.so.6)\n(section 568 27)\n(section 596 36)\n(section 632 32)\n(section 664 28)\n(section 696 216)\n(section 912 141)\n(section 1054 18)\n(section 1072 48)\n(section 1120 240)\n(section 1360 96)\n(section 1456 24)\n(section 1488 96)\n(section 1600 344)\n(section 1944 20)\n(section 1964 4)\n(section 1968 60)\n(section 2032 184)\n(section 69048 8)\n(section 69056 8)\n(section 69064 480)\n(section 69544 64)\n(section 69608 56)\n(section 69664 16)\n(section 69680 8)\n(section 0 71)\n(section 0 2184)\n(section 0 577)\n(section 0 259)\n(segment 0 2216 true false true)\n(segment 69048 640 true true false)\n(subarch v8)\n(symbol-chunk 1652 20 1652)\n(symbol-chunk 1600 52 1600)\n(symbol-chunk 1876 68 1876)\n(symbol-value 1652 1652)\n(symbol-value 1680 1680)\n(symbol-value 1728 1728)\n(symbol-value 1792 1792)\n(symbol-value 1872 1872)\n(symbol-value 1944 1944)\n(symbol-value 1600 1600)\n(symbol-value 1876 1876)\n(symbol-value 1456 1456)\n(symbol-value 0 0)\n(system \"\")\n(vendor \"\")\n"), -Attr("abi-name","\"aarch64-linux-gnu-elf\"")]), -Sections([Section(".shstrtab", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x40\x06\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x48\x1c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x38\x00\x09\x00\x40\x00\x1d\x00\x1c\x00\x06\x00\x00\x00\x04\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x04\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xa8\x08\x00\x00\x00\x00\x00\x00\xa8\x08\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x01\x00\x00\x00\x06\x00\x00\x00\xb8\x0d\x00\x00\x00\x00\x00\x00\xb8\x0d\x01\x00\x00\x00\x00\x00\xb8\x0d\x01"), -Section(".strtab", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x40\x06\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x48\x1c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x38\x00\x09\x00\x40\x00\x1d\x00\x1c\x00\x06\x00\x00\x00\x04\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x04\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xa8\x08\x00\x00\x00\x00\x00\x00\xa8\x08\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x01\x00\x00\x00\x06\x00\x00\x00\xb8\x0d\x00\x00\x00\x00\x00\x00\xb8\x0d\x01\x00\x00\x00\x00\x00\xb8\x0d\x01\x00\x00\x00\x00\x00\x78\x02\x00\x00\x00\x00\x00\x00\x80\x02\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x02\x00\x00\x00\x06\x00\x00\x00\xc8\x0d\x00\x00\x00\x00\x00\x00\xc8\x0d\x01\x00\x00\x00\x00\x00\xc8\x0d\x01\x00\x00\x00\x00\x00\xe0\x01\x00\x00\x00\x00\x00\x00\xe0\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x04\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x50\xe5\x74\x64\x04\x00\x00\x00\xb0\x07\x00\x00\x00\x00\x00\x00\xb0\x07\x00\x00\x00\x00\x00\x00\xb0\x07\x00\x00\x00\x00\x00\x00\x3c\x00\x00\x00\x00\x00\x00\x00\x3c\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x51\xe5\x74\x64\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x52\xe5\x74\x64\x04\x00\x00\x00\xb8\x0d\x00\x00\x00\x00\x00\x00\xb8\x0d\x01\x00\x00\x00\x00\x00\xb8\x0d\x01\x00\x00\x00\x00\x00\x48\x02\x00\x00\x00\x00\x00\x00\x48\x02\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x2f\x6c\x69\x62\x2f\x6c\x64\x2d\x6c"), -Section(".symtab", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x40\x06\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x48\x1c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x38\x00\x09\x00\x40\x00\x1d\x00\x1c\x00\x06\x00\x00\x00\x04\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x04\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xa8\x08\x00\x00\x00\x00\x00\x00\xa8\x08\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x01\x00\x00\x00\x06\x00\x00\x00\xb8\x0d\x00\x00\x00\x00\x00\x00\xb8\x0d\x01\x00\x00\x00\x00\x00\xb8\x0d\x01\x00\x00\x00\x00\x00\x78\x02\x00\x00\x00\x00\x00\x00\x80\x02\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x02\x00\x00\x00\x06\x00\x00\x00\xc8\x0d\x00\x00\x00\x00\x00\x00\xc8\x0d\x01\x00\x00\x00\x00\x00\xc8\x0d\x01\x00\x00\x00\x00\x00\xe0\x01\x00\x00\x00\x00\x00\x00\xe0\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x04\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x50\xe5\x74\x64\x04\x00\x00\x00\xb0\x07\x00\x00\x00\x00\x00\x00\xb0\x07\x00\x00\x00\x00\x00\x00\xb0\x07\x00\x00\x00\x00\x00\x00\x3c\x00\x00\x00\x00\x00\x00\x00\x3c\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x51\xe5\x74\x64\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x52\xe5\x74\x64\x04\x00\x00\x00\xb8\x0d\x00\x00\x00\x00\x00\x00\xb8\x0d\x01\x00\x00\x00\x00\x00\xb8\x0d\x01\x00\x00\x00\x00\x00\x48\x02\x00\x00\x00\x00\x00\x00\x48\x02\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x2f\x6c\x69\x62\x2f\x6c\x64\x2d\x6c\x69\x6e\x75\x78\x2d\x61\x61\x72\x63\x68\x36\x34\x2e\x73\x6f\x2e\x31\x00\x00\x04\x00\x00\x00\x14\x00\x00\x00\x03\x00\x00\x00\x47\x4e\x55\x00\xb8\xdb\xd0\x4c\xa2\xa7\x69\x3c\x6f\x56\xfd\xc3\xa8\x17\x5c\xb6\x20\xee\xe3\x61\x04\x00\x00\x00\x10\x00\x00\x00\x01\x00\x00\x00\x47\x4e\x55\x00\x00\x00\x00\x00\x03\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x01\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x0b\x00\xb0\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x17\x00\x20\x10\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x48\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x22\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x22\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x73\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5f\x5f\x63\x78\x61\x5f\x66\x69\x6e\x61\x6c\x69\x7a\x65\x00\x5f\x5f\x6c\x69\x62\x63\x5f\x73\x74\x61\x72\x74\x5f\x6d\x61\x69\x6e\x00\x61\x62\x6f\x72\x74\x00\x6c\x69\x62\x63\x2e\x73\x6f\x2e\x36\x00\x47\x4c\x49\x42\x43\x5f\x32\x2e\x31\x37\x00\x47\x4c\x49\x42\x43\x5f\x32\x2e\x33\x34\x00\x5f\x49\x54\x4d\x5f\x64\x65\x72\x65\x67\x69\x73\x74\x65\x72\x54\x4d\x43\x6c\x6f\x6e\x65\x54\x61\x62\x6c\x65\x00\x5f\x5f\x67\x6d\x6f\x6e\x5f\x73\x74\x61\x72\x74\x5f\x5f\x00\x5f\x49\x54\x4d\x5f\x72\x65\x67\x69\x73\x74\x65\x72\x54\x4d\x43\x6c\x6f\x6e\x65\x54\x61\x62\x6c\x65\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x01\x00\x03\x00\x01\x00\x03\x00\x01\x00\x01\x00\x02\x00\x28\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x97\x91\x96\x06\x00\x00\x03\x00\x32\x00\x00\x00\x10\x00\x00\x00\xb4\x91\x96\x06\x00\x00\x02\x00\x3d\x00\x00\x00\x00\x00\x00\x00\xb8\x0d\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x50\x07\x00\x00\x00\x00\x00\x00\xc0\x0d\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\xc0\x0f\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x32\x10\x01\x00\x00\x00\x00\x00\xd0\x0f\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x31\x10\x01\x00\x00\x00\x00\x00\xd8\x0f\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x54\x07\x00\x00\x00\x00\x00\x00\x28\x10\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x28\x10\x01\x00\x00\x00\x00\x00\xb0\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xb8\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xc8\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe0\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x08\x10\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x10\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x18\x10\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1f\x20\x03\xd5\xfd\x7b\xbf\xa9\xfd\x03\x00\x91\x2e\x00\x00\x94\xfd\x7b\xc1\xa8\xc0\x03\x5f\xd6\x00\x00\x00\x00\x00\x00\x00\x00\xf0\x7b\xbf\xa9\x90\x00\x00\x90\x11\xfe\x47\xf9\x10\xe2\x3f\x91\x20\x02\x1f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x90\x00\x00\xb0\x11\x02\x40\xf9\x10\x02\x00\x91\x20\x02\x1f\xd6\x90\x00\x00\xb0\x11\x06\x40\xf9\x10\x22\x00\x91\x20\x02\x1f\xd6\x90\x00\x00\xb0\x11\x0a\x40\xf9\x10\x42\x00\x91\x20\x02\x1f\xd6\x90\x00\x00\xb0\x11\x0e\x40\xf9\x10\x62\x00\x91\x20\x02\x1f\xd6\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1f\x20\x03\xd5\x1d\x00\x80\xd2\x1e\x00\x80\xd2\xe5\x03\x00\xaa\xe1\x03\x40\xf9\xe2\x23\x00\x91\xe6\x03\x00\x91\x80\x00\x00\x90\x00\xec\x47\xf9\x03\x00\x80\xd2\x04\x00\x80\xd2\xe1\xff\xff\x97\xec\xff\xff\x97\x80\x00\x00\x90\x00\xe4\x47\xf9\x40\x00\x00\xb4\xe4\xff\xff\x17\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x80\x00\x00\xb0\x00\xc0\x00\x91\x81\x00\x00\xb0\x21\xc0\x00\x91\x3f\x00\x00\xeb\xc0\x00\x00\x54\x81\x00\x00\x90\x21\xd8\x47\xf9\x61\x00\x00\xb4\xf0\x03\x01\xaa\x00\x02\x1f\xd6\xc0\x03\x5f\xd6\x80\x00\x00\xb0\x00\xc0\x00\x91\x81\x00\x00\xb0\x21\xc0\x00\x91\x21\x00\x00\xcb\x22\xfc\x7f\xd3\x41\x0c\x81\x8b\x21\xfc\x41\x93\xc1\x00\x00\xb4\x82\x00\x00\x90\x42\xf0\x47\xf9\x62\x00\x00\xb4\xf0\x03\x02\xaa\x00\x02\x1f\xd6\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\xfd\x7b\xbe\xa9\xfd\x03\x00\x91\xf3\x0b\x00\xf9\x93\x00\x00\xb0\x60\xc2\x40\x39\x40\x01\x00\x35\x80\x00\x00\x90\x00\xdc\x47\xf9\x80\x00\x00\xb4\x80\x00\x00\xb0\x00\x14\x40\xf9\xb5\xff\xff\x97\xd8\xff\xff\x97\x20\x00\x80\x52\x60\xc2\x00\x39\xf3\x0b\x40\xf9\xfd\x7b\xc2\xa8\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\xdc\xff\xff\x17\xff\x43\x00\xd1\x88\x00\x00\x90\x08\xe9\x47\xf9\x09\x01\x40\x39\xe9\x3f\x00\x39\xff\x3f\x00\x39\xea\x3f\x40\x39\x89\x00\x00\x90\x29\xe1\x47\xf9\x2a\x01\x00\x39\x08\x01\x40\x39\xe8\x3f\x00\x39\xe8\x3f\x40\x39\x28\x01\x00\x39\xe0\x03\x1f\x2a\xff\x43\x00\x91\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\xfd\x7b\xbf\xa9\xfd\x03\x00\x91\xfd\x7b\xc1\xa8\xc0\x03\x5f\xd6\x01\x00\x02\x00\x01\x1b\x03\x3b\x3c\x00\x00\x00\x06\x00\x00\x00\x90\xfe\xff\xff\x54\x00\x00\x00\xe0\xfe\xff\xff\x68\x00\x00\x00\x10\xff\xff\xff\x7c\x00\x00\x00\x50\xff\xff\xff\x90\x00\x00\x00\xa0\xff\xff\xff\xb4\x00\x00\x00\xa4\xff\xff\xff\xdc\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x01\x7a\x52\x00\x04\x78\x1e\x01\x1b\x0c\x1f\x00\x10\x00\x00\x00\x18\x00\x00\x00\x34\xfe\xff\xff\x34\x00\x00\x00\x00\x41\x07\x1e\x10\x00\x00\x00\x2c\x00\x00\x00\x70\xfe\xff\xff\x30\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x40\x00\x00\x00\x8c\xfe\xff\xff\x3c\x00\x00\x00\x00\x00\x00\x00\x20\x00\x00\x00\x54\x00\x00\x00\xb8\xfe\xff\xff\x48\x00\x00\x00\x00\x41\x0e\x20\x9d\x04\x9e\x03\x42\x93\x02\x4e\xde\xdd\xd3\x0e\x00\x00\x00\x00\x10\x00\x00\x00\x78\x00\x00\x00\xe4\xfe\xff\xff\x04\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x01\x7a\x52\x00\x01\x7c\x1e\x01"), -Section(".comment", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x40\x06\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x48\x1c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x38\x00\x09\x00\x40\x00\x1d\x00\x1c\x00\x06\x00\x00\x00\x04\x00\x00"), -Section(".interp", 0x238, "\x2f\x6c\x69\x62\x2f\x6c\x64\x2d\x6c\x69\x6e\x75\x78\x2d\x61\x61\x72\x63\x68\x36\x34\x2e\x73\x6f\x2e\x31\x00"), -Section(".note.gnu.build-id", 0x254, "\x04\x00\x00\x00\x14\x00\x00\x00\x03\x00\x00\x00\x47\x4e\x55\x00\xb8\xdb\xd0\x4c\xa2\xa7\x69\x3c\x6f\x56\xfd\xc3\xa8\x17\x5c\xb6\x20\xee\xe3\x61"), -Section(".note.ABI-tag", 0x278, "\x04\x00\x00\x00\x10\x00\x00\x00\x01\x00\x00\x00\x47\x4e\x55\x00\x00\x00\x00\x00\x03\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00"), -Section(".gnu.hash", 0x298, "\x01\x00\x00\x00\x01\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".dynsym", 0x2B8, "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x0b\x00\xb0\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x17\x00\x20\x10\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x48\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x22\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x22\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x73\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".dynstr", 0x390, "\x00\x5f\x5f\x63\x78\x61\x5f\x66\x69\x6e\x61\x6c\x69\x7a\x65\x00\x5f\x5f\x6c\x69\x62\x63\x5f\x73\x74\x61\x72\x74\x5f\x6d\x61\x69\x6e\x00\x61\x62\x6f\x72\x74\x00\x6c\x69\x62\x63\x2e\x73\x6f\x2e\x36\x00\x47\x4c\x49\x42\x43\x5f\x32\x2e\x31\x37\x00\x47\x4c\x49\x42\x43\x5f\x32\x2e\x33\x34\x00\x5f\x49\x54\x4d\x5f\x64\x65\x72\x65\x67\x69\x73\x74\x65\x72\x54\x4d\x43\x6c\x6f\x6e\x65\x54\x61\x62\x6c\x65\x00\x5f\x5f\x67\x6d\x6f\x6e\x5f\x73\x74\x61\x72\x74\x5f\x5f\x00\x5f\x49\x54\x4d\x5f\x72\x65\x67\x69\x73\x74\x65\x72\x54\x4d\x43\x6c\x6f\x6e\x65\x54\x61\x62\x6c\x65\x00"), -Section(".gnu.version", 0x41E, "\x00\x00\x00\x00\x00\x00\x02\x00\x01\x00\x03\x00\x01\x00\x03\x00\x01\x00"), -Section(".gnu.version_r", 0x430, "\x01\x00\x02\x00\x28\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x97\x91\x96\x06\x00\x00\x03\x00\x32\x00\x00\x00\x10\x00\x00\x00\xb4\x91\x96\x06\x00\x00\x02\x00\x3d\x00\x00\x00\x00\x00\x00\x00"), -Section(".rela.dyn", 0x460, "\xb8\x0d\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x50\x07\x00\x00\x00\x00\x00\x00\xc0\x0d\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\xc0\x0f\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x32\x10\x01\x00\x00\x00\x00\x00\xd0\x0f\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x31\x10\x01\x00\x00\x00\x00\x00\xd8\x0f\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x54\x07\x00\x00\x00\x00\x00\x00\x28\x10\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x28\x10\x01\x00\x00\x00\x00\x00\xb0\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xb8\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xc8\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe0\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".rela.plt", 0x550, "\x00\x10\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x08\x10\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x10\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x18\x10\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".init", 0x5B0, "\x1f\x20\x03\xd5\xfd\x7b\xbf\xa9\xfd\x03\x00\x91\x2e\x00\x00\x94\xfd\x7b\xc1\xa8\xc0\x03\x5f\xd6"), -Section(".plt", 0x5D0, "\xf0\x7b\xbf\xa9\x90\x00\x00\x90\x11\xfe\x47\xf9\x10\xe2\x3f\x91\x20\x02\x1f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x90\x00\x00\xb0\x11\x02\x40\xf9\x10\x02\x00\x91\x20\x02\x1f\xd6\x90\x00\x00\xb0\x11\x06\x40\xf9\x10\x22\x00\x91\x20\x02\x1f\xd6\x90\x00\x00\xb0\x11\x0a\x40\xf9\x10\x42\x00\x91\x20\x02\x1f\xd6\x90\x00\x00\xb0\x11\x0e\x40\xf9\x10\x62\x00\x91\x20\x02\x1f\xd6"), -Section(".fini", 0x798, "\x1f\x20\x03\xd5\xfd\x7b\xbf\xa9\xfd\x03\x00\x91\xfd\x7b\xc1\xa8\xc0\x03\x5f\xd6"), -Section(".rodata", 0x7AC, "\x01\x00\x02\x00"), -Section(".eh_frame_hdr", 0x7B0, "\x01\x1b\x03\x3b\x3c\x00\x00\x00\x06\x00\x00\x00\x90\xfe\xff\xff\x54\x00\x00\x00\xe0\xfe\xff\xff\x68\x00\x00\x00\x10\xff\xff\xff\x7c\x00\x00\x00\x50\xff\xff\xff\x90\x00\x00\x00\xa0\xff\xff\xff\xb4\x00\x00\x00\xa4\xff\xff\xff\xdc\x00\x00\x00"), -Section(".eh_frame", 0x7F0, "\x10\x00\x00\x00\x00\x00\x00\x00\x01\x7a\x52\x00\x04\x78\x1e\x01\x1b\x0c\x1f\x00\x10\x00\x00\x00\x18\x00\x00\x00\x34\xfe\xff\xff\x34\x00\x00\x00\x00\x41\x07\x1e\x10\x00\x00\x00\x2c\x00\x00\x00\x70\xfe\xff\xff\x30\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x40\x00\x00\x00\x8c\xfe\xff\xff\x3c\x00\x00\x00\x00\x00\x00\x00\x20\x00\x00\x00\x54\x00\x00\x00\xb8\xfe\xff\xff\x48\x00\x00\x00\x00\x41\x0e\x20\x9d\x04\x9e\x03\x42\x93\x02\x4e\xde\xdd\xd3\x0e\x00\x00\x00\x00\x10\x00\x00\x00\x78\x00\x00\x00\xe4\xfe\xff\xff\x04\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x01\x7a\x52\x00\x01\x7c\x1e\x01\x1b\x0c\x1f\x00\x14\x00\x00\x00\x18\x00\x00\x00\xc0\xfe\xff\xff\x44\x00\x00\x00\x00\x44\x0e\x10\x7c\x0e\x00\x00\x00\x00\x00\x00"), -Section(".fini_array", 0x10DC0, "\x00\x07\x00\x00\x00\x00\x00\x00"), -Section(".dynamic", 0x10DC8, "\x01\x00\x00\x00\x00\x00\x00\x00\x28\x00\x00\x00\x00\x00\x00\x00\x0c\x00\x00\x00\x00\x00\x00\x00\xb0\x05\x00\x00\x00\x00\x00\x00\x0d\x00\x00\x00\x00\x00\x00\x00\x98\x07\x00\x00\x00\x00\x00\x00\x19\x00\x00\x00\x00\x00\x00\x00\xb8\x0d\x01\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x1a\x00\x00\x00\x00\x00\x00\x00\xc0\x0d\x01\x00\x00\x00\x00\x00\x1c\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\xf5\xfe\xff\x6f\x00\x00\x00\x00\x98\x02\x00\x00\x00\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x90\x03\x00\x00\x00\x00\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\xb8\x02\x00\x00\x00\x00\x00\x00\x0a\x00\x00\x00\x00\x00\x00\x00\x8d\x00\x00\x00\x00\x00\x00\x00\x0b\x00\x00\x00\x00\x00\x00\x00\x18\x00\x00\x00\x00\x00\x00\x00\x15\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\xe8\x0f\x01\x00\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x60\x00\x00\x00\x00\x00\x00\x00\x14\x00\x00\x00\x00\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x17\x00\x00\x00\x00\x00\x00\x00\x50\x05\x00\x00\x00\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x60\x04\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\xf0\x00\x00\x00\x00\x00\x00\x00\x09\x00\x00\x00\x00\x00\x00\x00\x18\x00\x00\x00\x00\x00\x00\x00\xfb\xff\xff\x6f\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\xfe\xff\xff\x6f\x00\x00\x00\x00\x30\x04\x00\x00\x00\x00\x00\x00\xff\xff\xff\x6f\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\xf0\xff\xff\x6f\x00\x00\x00\x00\x1e\x04\x00\x00\x00\x00\x00\x00\xf9\xff\xff\x6f\x00\x00\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".init_array", 0x10DB8, "\x50\x07\x00\x00\x00\x00\x00\x00"), -Section(".got", 0x10FA8, "\xc8\x0d\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x32\x10\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x31\x10\x01\x00\x00\x00\x00\x00\x54\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".got.plt", 0x10FE8, "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xd0\x05\x00\x00\x00\x00\x00\x00\xd0\x05\x00\x00\x00\x00\x00\x00\xd0\x05\x00\x00\x00\x00\x00\x00\xd0\x05\x00\x00\x00\x00\x00\x00"), -Section(".data", 0x11020, "\x00\x00\x00\x00\x00\x00\x00\x00\x28\x10\x01\x00\x00\x00\x00\x00"), -Section(".text", 0x640, "\x1f\x20\x03\xd5\x1d\x00\x80\xd2\x1e\x00\x80\xd2\xe5\x03\x00\xaa\xe1\x03\x40\xf9\xe2\x23\x00\x91\xe6\x03\x00\x91\x80\x00\x00\x90\x00\xec\x47\xf9\x03\x00\x80\xd2\x04\x00\x80\xd2\xe1\xff\xff\x97\xec\xff\xff\x97\x80\x00\x00\x90\x00\xe4\x47\xf9\x40\x00\x00\xb4\xe4\xff\xff\x17\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x80\x00\x00\xb0\x00\xc0\x00\x91\x81\x00\x00\xb0\x21\xc0\x00\x91\x3f\x00\x00\xeb\xc0\x00\x00\x54\x81\x00\x00\x90\x21\xd8\x47\xf9\x61\x00\x00\xb4\xf0\x03\x01\xaa\x00\x02\x1f\xd6\xc0\x03\x5f\xd6\x80\x00\x00\xb0\x00\xc0\x00\x91\x81\x00\x00\xb0\x21\xc0\x00\x91\x21\x00\x00\xcb\x22\xfc\x7f\xd3\x41\x0c\x81\x8b\x21\xfc\x41\x93\xc1\x00\x00\xb4\x82\x00\x00\x90\x42\xf0\x47\xf9\x62\x00\x00\xb4\xf0\x03\x02\xaa\x00\x02\x1f\xd6\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\xfd\x7b\xbe\xa9\xfd\x03\x00\x91\xf3\x0b\x00\xf9\x93\x00\x00\xb0\x60\xc2\x40\x39\x40\x01\x00\x35\x80\x00\x00\x90\x00\xdc\x47\xf9\x80\x00\x00\xb4\x80\x00\x00\xb0\x00\x14\x40\xf9\xb5\xff\xff\x97\xd8\xff\xff\x97\x20\x00\x80\x52\x60\xc2\x00\x39\xf3\x0b\x40\xf9\xfd\x7b\xc2\xa8\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\xdc\xff\xff\x17\xff\x43\x00\xd1\x88\x00\x00\x90\x08\xe9\x47\xf9\x09\x01\x40\x39\xe9\x3f\x00\x39\xff\x3f\x00\x39\xea\x3f\x40\x39\x89\x00\x00\x90\x29\xe1\x47\xf9\x2a\x01\x00\x39\x08\x01\x40\x39\xe8\x3f\x00\x39\xe8\x3f\x40\x39\x28\x01\x00\x39\xe0\x03\x1f\x2a\xff\x43\x00\x91\xc0\x03\x5f\xd6")]), -Memmap([Annotation(Region(0x0,0x8A7), Attr("segment","02 0 2216")), -Annotation(Region(0x640,0x673), Attr("symbol","\"_start\"")), -Annotation(Region(0x0,0x102), Attr("section","\".shstrtab\"")), -Annotation(Region(0x0,0x240), Attr("section","\".strtab\"")), -Annotation(Region(0x0,0x887), Attr("section","\".symtab\"")), -Annotation(Region(0x0,0x46), Attr("section","\".comment\"")), -Annotation(Region(0x238,0x252), Attr("section","\".interp\"")), -Annotation(Region(0x254,0x277), Attr("section","\".note.gnu.build-id\"")), -Annotation(Region(0x278,0x297), Attr("section","\".note.ABI-tag\"")), -Annotation(Region(0x298,0x2B3), Attr("section","\".gnu.hash\"")), -Annotation(Region(0x2B8,0x38F), Attr("section","\".dynsym\"")), -Annotation(Region(0x390,0x41C), Attr("section","\".dynstr\"")), -Annotation(Region(0x41E,0x42F), Attr("section","\".gnu.version\"")), -Annotation(Region(0x430,0x45F), Attr("section","\".gnu.version_r\"")), -Annotation(Region(0x460,0x54F), Attr("section","\".rela.dyn\"")), -Annotation(Region(0x550,0x5AF), Attr("section","\".rela.plt\"")), -Annotation(Region(0x5B0,0x5C7), Attr("section","\".init\"")), -Annotation(Region(0x5D0,0x62F), Attr("section","\".plt\"")), -Annotation(Region(0x5B0,0x5C7), Attr("code-region","()")), -Annotation(Region(0x5D0,0x62F), Attr("code-region","()")), -Annotation(Region(0x640,0x673), Attr("symbol-info","_start 0x640 52")), -Annotation(Region(0x674,0x687), Attr("symbol","\"call_weak_fn\"")), -Annotation(Region(0x674,0x687), Attr("symbol-info","call_weak_fn 0x674 20")), -Annotation(Region(0x754,0x797), Attr("symbol","\"main\"")), -Annotation(Region(0x754,0x797), Attr("symbol-info","main 0x754 68")), -Annotation(Region(0x798,0x7AB), Attr("section","\".fini\"")), -Annotation(Region(0x7AC,0x7AF), Attr("section","\".rodata\"")), -Annotation(Region(0x7B0,0x7EB), Attr("section","\".eh_frame_hdr\"")), -Annotation(Region(0x7F0,0x8A7), Attr("section","\".eh_frame\"")), -Annotation(Region(0x10DB8,0x1102F), Attr("segment","03 0x10DB8 640")), -Annotation(Region(0x10DC0,0x10DC7), Attr("section","\".fini_array\"")), -Annotation(Region(0x10DC8,0x10FA7), Attr("section","\".dynamic\"")), -Annotation(Region(0x10DB8,0x10DBF), Attr("section","\".init_array\"")), -Annotation(Region(0x10FA8,0x10FE7), Attr("section","\".got\"")), -Annotation(Region(0x10FE8,0x1101F), Attr("section","\".got.plt\"")), -Annotation(Region(0x11020,0x1102F), Attr("section","\".data\"")), -Annotation(Region(0x640,0x797), Attr("section","\".text\"")), -Annotation(Region(0x640,0x797), Attr("code-region","()")), -Annotation(Region(0x798,0x7AB), Attr("code-region","()"))]), -Program(Tid(1_456, "%000005b0"), Attrs([]), - Subs([Sub(Tid(1_406, "@__cxa_finalize"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x600"), -Attr("stub","()")]), "__cxa_finalize", Args([Arg(Tid(1_457, "%000005b1"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("__cxa_finalize_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(918, "@__cxa_finalize"), - Attrs([Attr("address","0x600")]), Phis([]), -Defs([Def(Tid(1_166, "%0000048e"), Attrs([Attr("address","0x600"), -Attr("insn","adrp x16, #69632")]), Var("R16",Imm(64)), Int(69632,64)), -Def(Tid(1_173, "%00000495"), Attrs([Attr("address","0x604"), -Attr("insn","ldr x17, [x16, #0x8]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(1_179, "%0000049b"), Attrs([Attr("address","0x608"), -Attr("insn","add x16, x16, #0x8")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(8,64)))]), Jmps([Call(Tid(1_184, "%000004a0"), - Attrs([Attr("address","0x60C"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), -Sub(Tid(1_407, "@__do_global_dtors_aux"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x700")]), - "__do_global_dtors_aux", Args([Arg(Tid(1_458, "%000005b2"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("__do_global_dtors_aux_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(658, "@__do_global_dtors_aux"), - Attrs([Attr("address","0x700")]), Phis([]), Defs([Def(Tid(662, "%00000296"), - Attrs([Attr("address","0x700"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("#3",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(18446744073709551584,64))), -Def(Tid(668, "%0000029c"), Attrs([Attr("address","0x700"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("#3",Imm(64)),Var("R29",Imm(64)),LittleEndian(),64)), -Def(Tid(674, "%000002a2"), Attrs([Attr("address","0x700"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("#3",Imm(64)),Int(8,64)),Var("R30",Imm(64)),LittleEndian(),64)), -Def(Tid(678, "%000002a6"), Attrs([Attr("address","0x700"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("R31",Imm(64)), -Var("#3",Imm(64))), Def(Tid(684, "%000002ac"), - Attrs([Attr("address","0x704"), Attr("insn","mov x29, sp")]), - Var("R29",Imm(64)), Var("R31",Imm(64))), Def(Tid(692, "%000002b4"), - Attrs([Attr("address","0x708"), Attr("insn","str x19, [sp, #0x10]")]), - Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(16,64)),Var("R19",Imm(64)),LittleEndian(),64)), -Def(Tid(697, "%000002b9"), Attrs([Attr("address","0x70C"), -Attr("insn","adrp x19, #69632")]), Var("R19",Imm(64)), Int(69632,64)), -Def(Tid(704, "%000002c0"), Attrs([Attr("address","0x710"), -Attr("insn","ldrb w0, [x19, #0x30]")]), Var("R0",Imm(64)), -UNSIGNED(64,Load(Var("mem",Mem(64,8)),PLUS(Var("R19",Imm(64)),Int(48,64)),LittleEndian(),8)))]), -Jmps([Goto(Tid(711, "%000002c7"), Attrs([Attr("address","0x714"), -Attr("insn","cbnz w0, #0x28")]), - NEQ(Extract(31,0,Var("R0",Imm(64))),Int(0,32)), -Direct(Tid(709, "%000002c5"))), Goto(Tid(1_446, "%000005a6"), Attrs([]), - Int(1,1), Direct(Tid(863, "%0000035f")))])), Blk(Tid(863, "%0000035f"), - Attrs([Attr("address","0x718")]), Phis([]), Defs([Def(Tid(866, "%00000362"), - Attrs([Attr("address","0x718"), Attr("insn","adrp x0, #65536")]), - Var("R0",Imm(64)), Int(65536,64)), Def(Tid(873, "%00000369"), - Attrs([Attr("address","0x71C"), Attr("insn","ldr x0, [x0, #0xfb8]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(4024,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(879, "%0000036f"), Attrs([Attr("address","0x720"), -Attr("insn","cbz x0, #0x10")]), EQ(Var("R0",Imm(64)),Int(0,64)), -Direct(Tid(877, "%0000036d"))), Goto(Tid(1_447, "%000005a7"), Attrs([]), - Int(1,1), Direct(Tid(902, "%00000386")))])), Blk(Tid(902, "%00000386"), - Attrs([Attr("address","0x724")]), Phis([]), Defs([Def(Tid(905, "%00000389"), - Attrs([Attr("address","0x724"), Attr("insn","adrp x0, #69632")]), - Var("R0",Imm(64)), Int(69632,64)), Def(Tid(912, "%00000390"), - Attrs([Attr("address","0x728"), Attr("insn","ldr x0, [x0, #0x28]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(40,64)),LittleEndian(),64)), -Def(Tid(917, "%00000395"), Attrs([Attr("address","0x72C"), -Attr("insn","bl #-0x12c")]), Var("R30",Imm(64)), Int(1840,64))]), -Jmps([Call(Tid(920, "%00000398"), Attrs([Attr("address","0x72C"), -Attr("insn","bl #-0x12c")]), Int(1,1), -(Direct(Tid(1_406, "@__cxa_finalize")),Direct(Tid(877, "%0000036d"))))])), -Blk(Tid(877, "%0000036d"), Attrs([Attr("address","0x730")]), Phis([]), -Defs([Def(Tid(885, "%00000375"), Attrs([Attr("address","0x730"), -Attr("insn","bl #-0xa0")]), Var("R30",Imm(64)), Int(1844,64))]), -Jmps([Call(Tid(887, "%00000377"), Attrs([Attr("address","0x730"), -Attr("insn","bl #-0xa0")]), Int(1,1), -(Direct(Tid(1_420, "@deregister_tm_clones")),Direct(Tid(889, "%00000379"))))])), -Blk(Tid(889, "%00000379"), Attrs([Attr("address","0x734")]), Phis([]), -Defs([Def(Tid(892, "%0000037c"), Attrs([Attr("address","0x734"), -Attr("insn","mov w0, #0x1")]), Var("R0",Imm(64)), Int(1,64)), -Def(Tid(900, "%00000384"), Attrs([Attr("address","0x738"), -Attr("insn","strb w0, [x19, #0x30]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R19",Imm(64)),Int(48,64)),Extract(7,0,Var("R0",Imm(64))),LittleEndian(),8))]), -Jmps([Goto(Tid(1_448, "%000005a8"), Attrs([]), Int(1,1), -Direct(Tid(709, "%000002c5")))])), Blk(Tid(709, "%000002c5"), - Attrs([Attr("address","0x73C")]), Phis([]), Defs([Def(Tid(719, "%000002cf"), - Attrs([Attr("address","0x73C"), Attr("insn","ldr x19, [sp, #0x10]")]), - Var("R19",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(16,64)),LittleEndian(),64)), -Def(Tid(726, "%000002d6"), Attrs([Attr("address","0x740"), -Attr("insn","ldp x29, x30, [sp], #0x20")]), Var("R29",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(731, "%000002db"), Attrs([Attr("address","0x740"), -Attr("insn","ldp x29, x30, [sp], #0x20")]), Var("R30",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(735, "%000002df"), Attrs([Attr("address","0x740"), -Attr("insn","ldp x29, x30, [sp], #0x20")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(32,64)))]), Jmps([Call(Tid(740, "%000002e4"), - Attrs([Attr("address","0x744"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), Sub(Tid(1_411, "@__libc_start_main"), - Attrs([Attr("c.proto","signed (*)(signed (*)(signed , char** , char** );* main, signed , char** , \nvoid* auxv)"), -Attr("address","0x5F0"), Attr("stub","()")]), "__libc_start_main", - Args([Arg(Tid(1_459, "%000005b3"), - Attrs([Attr("c.layout","**[ : 64]"), -Attr("c.data","Top:u64 ptr ptr"), -Attr("c.type","signed (*)(signed , char** , char** );*")]), - Var("__libc_start_main_main",Imm(64)), Var("R0",Imm(64)), In()), -Arg(Tid(1_460, "%000005b4"), Attrs([Attr("c.layout","[signed : 32]"), -Attr("c.data","Top:u32"), Attr("c.type","signed")]), - Var("__libc_start_main_arg2",Imm(32)), LOW(32,Var("R1",Imm(64))), In()), -Arg(Tid(1_461, "%000005b5"), Attrs([Attr("c.layout","**[char : 8]"), -Attr("c.data","Top:u8 ptr ptr"), Attr("c.type","char**")]), - Var("__libc_start_main_arg3",Imm(64)), Var("R2",Imm(64)), Both()), -Arg(Tid(1_462, "%000005b6"), Attrs([Attr("c.layout","*[ : 8]"), -Attr("c.data","{} ptr"), Attr("c.type","void*")]), - Var("__libc_start_main_auxv",Imm(64)), Var("R3",Imm(64)), Both()), -Arg(Tid(1_463, "%000005b7"), Attrs([Attr("c.layout","[signed : 32]"), -Attr("c.data","Top:u32"), Attr("c.type","signed")]), - Var("__libc_start_main_result",Imm(32)), LOW(32,Var("R0",Imm(64))), -Out())]), Blks([Blk(Tid(491, "@__libc_start_main"), - Attrs([Attr("address","0x5F0")]), Phis([]), -Defs([Def(Tid(1_144, "%00000478"), Attrs([Attr("address","0x5F0"), -Attr("insn","adrp x16, #69632")]), Var("R16",Imm(64)), Int(69632,64)), -Def(Tid(1_151, "%0000047f"), Attrs([Attr("address","0x5F4"), -Attr("insn","ldr x17, [x16]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R16",Imm(64)),LittleEndian(),64)), -Def(Tid(1_157, "%00000485"), Attrs([Attr("address","0x5F8"), -Attr("insn","add x16, x16, #0x0")]), Var("R16",Imm(64)), -Var("R16",Imm(64)))]), Jmps([Call(Tid(1_162, "%0000048a"), - Attrs([Attr("address","0x5FC"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), Sub(Tid(1_412, "@_fini"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x798")]), - "_fini", Args([Arg(Tid(1_464, "%000005b8"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("_fini_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(31, "@_fini"), - Attrs([Attr("address","0x798")]), Phis([]), Defs([Def(Tid(37, "%00000025"), - Attrs([Attr("address","0x79C"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("#0",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(18446744073709551600,64))), -Def(Tid(43, "%0000002b"), Attrs([Attr("address","0x79C"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("#0",Imm(64)),Var("R29",Imm(64)),LittleEndian(),64)), -Def(Tid(49, "%00000031"), Attrs([Attr("address","0x79C"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("#0",Imm(64)),Int(8,64)),Var("R30",Imm(64)),LittleEndian(),64)), -Def(Tid(53, "%00000035"), Attrs([Attr("address","0x79C"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("R31",Imm(64)), -Var("#0",Imm(64))), Def(Tid(59, "%0000003b"), Attrs([Attr("address","0x7A0"), -Attr("insn","mov x29, sp")]), Var("R29",Imm(64)), Var("R31",Imm(64))), -Def(Tid(66, "%00000042"), Attrs([Attr("address","0x7A4"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R29",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(71, "%00000047"), Attrs([Attr("address","0x7A4"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R30",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(75, "%0000004b"), Attrs([Attr("address","0x7A4"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(16,64)))]), Jmps([Call(Tid(80, "%00000050"), - Attrs([Attr("address","0x7A8"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), Sub(Tid(1_413, "@_init"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x5B0")]), - "_init", Args([Arg(Tid(1_465, "%000005b9"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("_init_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(1_256, "@_init"), - Attrs([Attr("address","0x5B0")]), Phis([]), -Defs([Def(Tid(1_262, "%000004ee"), Attrs([Attr("address","0x5B4"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("#5",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(18446744073709551600,64))), -Def(Tid(1_268, "%000004f4"), Attrs([Attr("address","0x5B4"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("#5",Imm(64)),Var("R29",Imm(64)),LittleEndian(),64)), -Def(Tid(1_274, "%000004fa"), Attrs([Attr("address","0x5B4"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("#5",Imm(64)),Int(8,64)),Var("R30",Imm(64)),LittleEndian(),64)), -Def(Tid(1_278, "%000004fe"), Attrs([Attr("address","0x5B4"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("R31",Imm(64)), -Var("#5",Imm(64))), Def(Tid(1_284, "%00000504"), - Attrs([Attr("address","0x5B8"), Attr("insn","mov x29, sp")]), - Var("R29",Imm(64)), Var("R31",Imm(64))), Def(Tid(1_289, "%00000509"), - Attrs([Attr("address","0x5BC"), Attr("insn","bl #0xb8")]), - Var("R30",Imm(64)), Int(1472,64))]), Jmps([Call(Tid(1_291, "%0000050b"), - Attrs([Attr("address","0x5BC"), Attr("insn","bl #0xb8")]), Int(1,1), -(Direct(Tid(1_418, "@call_weak_fn")),Direct(Tid(1_293, "%0000050d"))))])), -Blk(Tid(1_293, "%0000050d"), Attrs([Attr("address","0x5C0")]), Phis([]), -Defs([Def(Tid(1_298, "%00000512"), Attrs([Attr("address","0x5C0"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R29",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(1_303, "%00000517"), Attrs([Attr("address","0x5C0"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R30",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(1_307, "%0000051b"), Attrs([Attr("address","0x5C0"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(16,64)))]), Jmps([Call(Tid(1_312, "%00000520"), - Attrs([Attr("address","0x5C4"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), Sub(Tid(1_414, "@_start"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x640"), -Attr("entry-point","()")]), "_start", Args([Arg(Tid(1_466, "%000005ba"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("_start_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(428, "@_start"), - Attrs([Attr("address","0x640")]), Phis([]), Defs([Def(Tid(433, "%000001b1"), - Attrs([Attr("address","0x644"), Attr("insn","mov x29, #0x0")]), - Var("R29",Imm(64)), Int(0,64)), Def(Tid(438, "%000001b6"), - Attrs([Attr("address","0x648"), Attr("insn","mov x30, #0x0")]), - Var("R30",Imm(64)), Int(0,64)), Def(Tid(444, "%000001bc"), - Attrs([Attr("address","0x64C"), Attr("insn","mov x5, x0")]), - Var("R5",Imm(64)), Var("R0",Imm(64))), Def(Tid(451, "%000001c3"), - Attrs([Attr("address","0x650"), Attr("insn","ldr x1, [sp]")]), - Var("R1",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(457, "%000001c9"), Attrs([Attr("address","0x654"), -Attr("insn","add x2, sp, #0x8")]), Var("R2",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(8,64))), Def(Tid(463, "%000001cf"), - Attrs([Attr("address","0x658"), Attr("insn","mov x6, sp")]), - Var("R6",Imm(64)), Var("R31",Imm(64))), Def(Tid(468, "%000001d4"), - Attrs([Attr("address","0x65C"), Attr("insn","adrp x0, #65536")]), - Var("R0",Imm(64)), Int(65536,64)), Def(Tid(475, "%000001db"), - Attrs([Attr("address","0x660"), Attr("insn","ldr x0, [x0, #0xfd8]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(4056,64)),LittleEndian(),64)), -Def(Tid(480, "%000001e0"), Attrs([Attr("address","0x664"), -Attr("insn","mov x3, #0x0")]), Var("R3",Imm(64)), Int(0,64)), -Def(Tid(485, "%000001e5"), Attrs([Attr("address","0x668"), -Attr("insn","mov x4, #0x0")]), Var("R4",Imm(64)), Int(0,64)), -Def(Tid(490, "%000001ea"), Attrs([Attr("address","0x66C"), -Attr("insn","bl #-0x7c")]), Var("R30",Imm(64)), Int(1648,64))]), -Jmps([Call(Tid(493, "%000001ed"), Attrs([Attr("address","0x66C"), -Attr("insn","bl #-0x7c")]), Int(1,1), -(Direct(Tid(1_411, "@__libc_start_main")),Direct(Tid(495, "%000001ef"))))])), -Blk(Tid(495, "%000001ef"), Attrs([Attr("address","0x670")]), Phis([]), -Defs([Def(Tid(498, "%000001f2"), Attrs([Attr("address","0x670"), -Attr("insn","bl #-0x50")]), Var("R30",Imm(64)), Int(1652,64))]), -Jmps([Call(Tid(501, "%000001f5"), Attrs([Attr("address","0x670"), -Attr("insn","bl #-0x50")]), Int(1,1), -(Direct(Tid(1_417, "@abort")),Direct(Tid(1_449, "%000005a9"))))])), -Blk(Tid(1_449, "%000005a9"), Attrs([]), Phis([]), Defs([]), -Jmps([Call(Tid(1_450, "%000005aa"), Attrs([]), Int(1,1), -(Direct(Tid(1_418, "@call_weak_fn")),))]))])), Sub(Tid(1_417, "@abort"), - Attrs([Attr("noreturn","()"), Attr("c.proto","void (*)(void)"), -Attr("address","0x620"), Attr("stub","()")]), "abort", Args([]), -Blks([Blk(Tid(499, "@abort"), Attrs([Attr("address","0x620")]), Phis([]), -Defs([Def(Tid(1_210, "%000004ba"), Attrs([Attr("address","0x620"), -Attr("insn","adrp x16, #69632")]), Var("R16",Imm(64)), Int(69632,64)), -Def(Tid(1_217, "%000004c1"), Attrs([Attr("address","0x624"), -Attr("insn","ldr x17, [x16, #0x18]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(24,64)),LittleEndian(),64)), -Def(Tid(1_223, "%000004c7"), Attrs([Attr("address","0x628"), -Attr("insn","add x16, x16, #0x18")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(24,64)))]), Jmps([Call(Tid(1_228, "%000004cc"), - Attrs([Attr("address","0x62C"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), Sub(Tid(1_418, "@call_weak_fn"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x674")]), - "call_weak_fn", Args([Arg(Tid(1_467, "%000005bb"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("call_weak_fn_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(503, "@call_weak_fn"), - Attrs([Attr("address","0x674")]), Phis([]), Defs([Def(Tid(506, "%000001fa"), - Attrs([Attr("address","0x674"), Attr("insn","adrp x0, #65536")]), - Var("R0",Imm(64)), Int(65536,64)), Def(Tid(513, "%00000201"), - Attrs([Attr("address","0x678"), Attr("insn","ldr x0, [x0, #0xfc8]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(4040,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(519, "%00000207"), Attrs([Attr("address","0x67C"), -Attr("insn","cbz x0, #0x8")]), EQ(Var("R0",Imm(64)),Int(0,64)), -Direct(Tid(517, "%00000205"))), Goto(Tid(1_451, "%000005ab"), Attrs([]), - Int(1,1), Direct(Tid(982, "%000003d6")))])), Blk(Tid(517, "%00000205"), - Attrs([Attr("address","0x684")]), Phis([]), Defs([]), -Jmps([Call(Tid(525, "%0000020d"), Attrs([Attr("address","0x684"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))])), -Blk(Tid(982, "%000003d6"), Attrs([Attr("address","0x680")]), Phis([]), -Defs([]), Jmps([Goto(Tid(985, "%000003d9"), Attrs([Attr("address","0x680"), -Attr("insn","b #-0x70")]), Int(1,1), Direct(Tid(983, "@__gmon_start__")))])), -Blk(Tid(983, "@__gmon_start__"), Attrs([Attr("address","0x610")]), Phis([]), -Defs([Def(Tid(1_188, "%000004a4"), Attrs([Attr("address","0x610"), -Attr("insn","adrp x16, #69632")]), Var("R16",Imm(64)), Int(69632,64)), -Def(Tid(1_195, "%000004ab"), Attrs([Attr("address","0x614"), -Attr("insn","ldr x17, [x16, #0x10]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(16,64)),LittleEndian(),64)), -Def(Tid(1_201, "%000004b1"), Attrs([Attr("address","0x618"), -Attr("insn","add x16, x16, #0x10")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(16,64)))]), Jmps([Call(Tid(1_206, "%000004b6"), - Attrs([Attr("address","0x61C"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), -Sub(Tid(1_420, "@deregister_tm_clones"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x690")]), - "deregister_tm_clones", Args([Arg(Tid(1_468, "%000005bc"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("deregister_tm_clones_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(531, "@deregister_tm_clones"), - Attrs([Attr("address","0x690")]), Phis([]), Defs([Def(Tid(534, "%00000216"), - Attrs([Attr("address","0x690"), Attr("insn","adrp x0, #69632")]), - Var("R0",Imm(64)), Int(69632,64)), Def(Tid(540, "%0000021c"), - Attrs([Attr("address","0x694"), Attr("insn","add x0, x0, #0x30")]), - Var("R0",Imm(64)), PLUS(Var("R0",Imm(64)),Int(48,64))), -Def(Tid(545, "%00000221"), Attrs([Attr("address","0x698"), -Attr("insn","adrp x1, #69632")]), Var("R1",Imm(64)), Int(69632,64)), -Def(Tid(551, "%00000227"), Attrs([Attr("address","0x69C"), -Attr("insn","add x1, x1, #0x30")]), Var("R1",Imm(64)), -PLUS(Var("R1",Imm(64)),Int(48,64))), Def(Tid(557, "%0000022d"), - Attrs([Attr("address","0x6A0"), Attr("insn","cmp x1, x0")]), - Var("#1",Imm(64)), NOT(Var("R0",Imm(64)))), Def(Tid(562, "%00000232"), - Attrs([Attr("address","0x6A0"), Attr("insn","cmp x1, x0")]), - Var("#2",Imm(64)), PLUS(Var("R1",Imm(64)),NOT(Var("R0",Imm(64))))), -Def(Tid(568, "%00000238"), Attrs([Attr("address","0x6A0"), -Attr("insn","cmp x1, x0")]), Var("VF",Imm(1)), -NEQ(SIGNED(65,PLUS(Var("#2",Imm(64)),Int(1,64))),PLUS(PLUS(SIGNED(65,Var("R1",Imm(64))),SIGNED(65,Var("#1",Imm(64)))),Int(1,65)))), -Def(Tid(574, "%0000023e"), Attrs([Attr("address","0x6A0"), -Attr("insn","cmp x1, x0")]), Var("CF",Imm(1)), -NEQ(UNSIGNED(65,PLUS(Var("#2",Imm(64)),Int(1,64))),PLUS(PLUS(UNSIGNED(65,Var("R1",Imm(64))),UNSIGNED(65,Var("#1",Imm(64)))),Int(1,65)))), -Def(Tid(578, "%00000242"), Attrs([Attr("address","0x6A0"), -Attr("insn","cmp x1, x0")]), Var("ZF",Imm(1)), -EQ(PLUS(Var("#2",Imm(64)),Int(1,64)),Int(0,64))), Def(Tid(582, "%00000246"), - Attrs([Attr("address","0x6A0"), Attr("insn","cmp x1, x0")]), - Var("NF",Imm(1)), Extract(63,63,PLUS(Var("#2",Imm(64)),Int(1,64))))]), -Jmps([Goto(Tid(588, "%0000024c"), Attrs([Attr("address","0x6A4"), -Attr("insn","b.eq #0x18")]), EQ(Var("ZF",Imm(1)),Int(1,1)), -Direct(Tid(586, "%0000024a"))), Goto(Tid(1_452, "%000005ac"), Attrs([]), - Int(1,1), Direct(Tid(952, "%000003b8")))])), Blk(Tid(952, "%000003b8"), - Attrs([Attr("address","0x6A8")]), Phis([]), Defs([Def(Tid(955, "%000003bb"), - Attrs([Attr("address","0x6A8"), Attr("insn","adrp x1, #65536")]), - Var("R1",Imm(64)), Int(65536,64)), Def(Tid(962, "%000003c2"), - Attrs([Attr("address","0x6AC"), Attr("insn","ldr x1, [x1, #0xfb0]")]), - Var("R1",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R1",Imm(64)),Int(4016,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(967, "%000003c7"), Attrs([Attr("address","0x6B0"), -Attr("insn","cbz x1, #0xc")]), EQ(Var("R1",Imm(64)),Int(0,64)), -Direct(Tid(586, "%0000024a"))), Goto(Tid(1_453, "%000005ad"), Attrs([]), - Int(1,1), Direct(Tid(971, "%000003cb")))])), Blk(Tid(586, "%0000024a"), - Attrs([Attr("address","0x6BC")]), Phis([]), Defs([]), -Jmps([Call(Tid(594, "%00000252"), Attrs([Attr("address","0x6BC"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))])), -Blk(Tid(971, "%000003cb"), Attrs([Attr("address","0x6B4")]), Phis([]), -Defs([Def(Tid(975, "%000003cf"), Attrs([Attr("address","0x6B4"), -Attr("insn","mov x16, x1")]), Var("R16",Imm(64)), Var("R1",Imm(64)))]), -Jmps([Call(Tid(980, "%000003d4"), Attrs([Attr("address","0x6B8"), -Attr("insn","br x16")]), Int(1,1), (Indirect(Var("R16",Imm(64))),))]))])), -Sub(Tid(1_423, "@frame_dummy"), Attrs([Attr("c.proto","signed (*)(void)"), -Attr("address","0x750")]), "frame_dummy", Args([Arg(Tid(1_469, "%000005bd"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("frame_dummy_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(746, "@frame_dummy"), - Attrs([Attr("address","0x750")]), Phis([]), Defs([]), -Jmps([Call(Tid(748, "%000002ec"), Attrs([Attr("address","0x750"), -Attr("insn","b #-0x90")]), Int(1,1), -(Direct(Tid(1_425, "@register_tm_clones")),))]))])), Sub(Tid(1_424, "@main"), - Attrs([Attr("c.proto","signed (*)(signed argc, const char** argv)"), -Attr("address","0x754")]), "main", Args([Arg(Tid(1_470, "%000005be"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("main_argc",Imm(32)), -LOW(32,Var("R0",Imm(64))), In()), Arg(Tid(1_471, "%000005bf"), - Attrs([Attr("c.layout","**[char : 8]"), Attr("c.data","Top:u8 ptr ptr"), -Attr("c.type"," const char**")]), Var("main_argv",Imm(64)), -Var("R1",Imm(64)), Both()), Arg(Tid(1_472, "%000005c0"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("main_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(750, "@main"), - Attrs([Attr("address","0x754")]), Phis([]), Defs([Def(Tid(754, "%000002f2"), - Attrs([Attr("address","0x754"), Attr("insn","sub sp, sp, #0x10")]), - Var("R31",Imm(64)), PLUS(Var("R31",Imm(64)),Int(18446744073709551600,64))), -Def(Tid(759, "%000002f7"), Attrs([Attr("address","0x758"), -Attr("insn","adrp x8, #65536")]), Var("R8",Imm(64)), Int(65536,64)), -Def(Tid(766, "%000002fe"), Attrs([Attr("address","0x75C"), -Attr("insn","ldr x8, [x8, #0xfd0]")]), Var("R8",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R8",Imm(64)),Int(4048,64)),LittleEndian(),64)), -Def(Tid(773, "%00000305"), Attrs([Attr("address","0x760"), -Attr("insn","ldrb w9, [x8]")]), Var("R9",Imm(64)), -UNSIGNED(64,Load(Var("mem",Mem(64,8)),Var("R8",Imm(64)),LittleEndian(),8))), -Def(Tid(781, "%0000030d"), Attrs([Attr("address","0x764"), -Attr("insn","strb w9, [sp, #0xf]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(15,64)),Extract(7,0,Var("R9",Imm(64))),LittleEndian(),8)), -Def(Tid(788, "%00000314"), Attrs([Attr("address","0x768"), -Attr("insn","strb wzr, [sp, #0xf]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(15,64)),Int(0,8),LittleEndian(),8)), -Def(Tid(795, "%0000031b"), Attrs([Attr("address","0x76C"), -Attr("insn","ldrb w10, [sp, #0xf]")]), Var("R10",Imm(64)), -UNSIGNED(64,Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(15,64)),LittleEndian(),8))), -Def(Tid(800, "%00000320"), Attrs([Attr("address","0x770"), -Attr("insn","adrp x9, #65536")]), Var("R9",Imm(64)), Int(65536,64)), -Def(Tid(807, "%00000327"), Attrs([Attr("address","0x774"), -Attr("insn","ldr x9, [x9, #0xfc0]")]), Var("R9",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R9",Imm(64)),Int(4032,64)),LittleEndian(),64)), -Def(Tid(815, "%0000032f"), Attrs([Attr("address","0x778"), -Attr("insn","strb w10, [x9]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("R9",Imm(64)),Extract(7,0,Var("R10",Imm(64))),LittleEndian(),8)), -Def(Tid(822, "%00000336"), Attrs([Attr("address","0x77C"), -Attr("insn","ldrb w8, [x8]")]), Var("R8",Imm(64)), -UNSIGNED(64,Load(Var("mem",Mem(64,8)),Var("R8",Imm(64)),LittleEndian(),8))), -Def(Tid(830, "%0000033e"), Attrs([Attr("address","0x780"), -Attr("insn","strb w8, [sp, #0xf]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(15,64)),Extract(7,0,Var("R8",Imm(64))),LittleEndian(),8)), -Def(Tid(837, "%00000345"), Attrs([Attr("address","0x784"), -Attr("insn","ldrb w8, [sp, #0xf]")]), Var("R8",Imm(64)), -UNSIGNED(64,Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(15,64)),LittleEndian(),8))), -Def(Tid(845, "%0000034d"), Attrs([Attr("address","0x788"), -Attr("insn","strb w8, [x9]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("R9",Imm(64)),Extract(7,0,Var("R8",Imm(64))),LittleEndian(),8)), -Def(Tid(850, "%00000352"), Attrs([Attr("address","0x78C"), -Attr("insn","mov w0, wzr")]), Var("R0",Imm(64)), Int(0,64)), -Def(Tid(856, "%00000358"), Attrs([Attr("address","0x790"), -Attr("insn","add sp, sp, #0x10")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(16,64)))]), Jmps([Call(Tid(861, "%0000035d"), - Attrs([Attr("address","0x794"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), -Sub(Tid(1_425, "@register_tm_clones"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x6C0")]), - "register_tm_clones", Args([Arg(Tid(1_473, "%000005c1"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("register_tm_clones_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(596, "@register_tm_clones"), Attrs([Attr("address","0x6C0")]), - Phis([]), Defs([Def(Tid(599, "%00000257"), Attrs([Attr("address","0x6C0"), -Attr("insn","adrp x0, #69632")]), Var("R0",Imm(64)), Int(69632,64)), -Def(Tid(605, "%0000025d"), Attrs([Attr("address","0x6C4"), -Attr("insn","add x0, x0, #0x30")]), Var("R0",Imm(64)), -PLUS(Var("R0",Imm(64)),Int(48,64))), Def(Tid(610, "%00000262"), - Attrs([Attr("address","0x6C8"), Attr("insn","adrp x1, #69632")]), - Var("R1",Imm(64)), Int(69632,64)), Def(Tid(616, "%00000268"), - Attrs([Attr("address","0x6CC"), Attr("insn","add x1, x1, #0x30")]), - Var("R1",Imm(64)), PLUS(Var("R1",Imm(64)),Int(48,64))), -Def(Tid(623, "%0000026f"), Attrs([Attr("address","0x6D0"), -Attr("insn","sub x1, x1, x0")]), Var("R1",Imm(64)), -PLUS(PLUS(Var("R1",Imm(64)),NOT(Var("R0",Imm(64)))),Int(1,64))), -Def(Tid(629, "%00000275"), Attrs([Attr("address","0x6D4"), -Attr("insn","lsr x2, x1, #63")]), Var("R2",Imm(64)), -Concat(Int(0,63),Extract(63,63,Var("R1",Imm(64))))), -Def(Tid(636, "%0000027c"), Attrs([Attr("address","0x6D8"), -Attr("insn","add x1, x2, x1, asr #3")]), Var("R1",Imm(64)), -PLUS(Var("R2",Imm(64)),ARSHIFT(Var("R1",Imm(64)),Int(3,3)))), -Def(Tid(642, "%00000282"), Attrs([Attr("address","0x6DC"), -Attr("insn","asr x1, x1, #1")]), Var("R1",Imm(64)), -SIGNED(64,Extract(63,1,Var("R1",Imm(64)))))]), -Jmps([Goto(Tid(648, "%00000288"), Attrs([Attr("address","0x6E0"), -Attr("insn","cbz x1, #0x18")]), EQ(Var("R1",Imm(64)),Int(0,64)), -Direct(Tid(646, "%00000286"))), Goto(Tid(1_454, "%000005ae"), Attrs([]), - Int(1,1), Direct(Tid(922, "%0000039a")))])), Blk(Tid(922, "%0000039a"), - Attrs([Attr("address","0x6E4")]), Phis([]), Defs([Def(Tid(925, "%0000039d"), - Attrs([Attr("address","0x6E4"), Attr("insn","adrp x2, #65536")]), - Var("R2",Imm(64)), Int(65536,64)), Def(Tid(932, "%000003a4"), - Attrs([Attr("address","0x6E8"), Attr("insn","ldr x2, [x2, #0xfe0]")]), - Var("R2",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R2",Imm(64)),Int(4064,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(937, "%000003a9"), Attrs([Attr("address","0x6EC"), -Attr("insn","cbz x2, #0xc")]), EQ(Var("R2",Imm(64)),Int(0,64)), -Direct(Tid(646, "%00000286"))), Goto(Tid(1_455, "%000005af"), Attrs([]), - Int(1,1), Direct(Tid(941, "%000003ad")))])), Blk(Tid(646, "%00000286"), - Attrs([Attr("address","0x6F8")]), Phis([]), Defs([]), -Jmps([Call(Tid(654, "%0000028e"), Attrs([Attr("address","0x6F8"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))])), -Blk(Tid(941, "%000003ad"), Attrs([Attr("address","0x6F0")]), Phis([]), -Defs([Def(Tid(945, "%000003b1"), Attrs([Attr("address","0x6F0"), -Attr("insn","mov x16, x2")]), Var("R16",Imm(64)), Var("R2",Imm(64)))]), -Jmps([Call(Tid(950, "%000003b6"), Attrs([Attr("address","0x6F4"), -Attr("insn","br x16")]), Int(1,1), -(Indirect(Var("R16",Imm(64))),))]))]))]))) \ No newline at end of file diff --git a/src/test/incorrect/basicassign3/clang_pic/basicassign3.bir b/src/test/incorrect/basicassign3/clang_pic/basicassign3.bir deleted file mode 100644 index 68b5d1342..000000000 --- a/src/test/incorrect/basicassign3/clang_pic/basicassign3.bir +++ /dev/null @@ -1,239 +0,0 @@ -000005b0: program -0000057e: sub __cxa_finalize(__cxa_finalize_result) -000005b1: __cxa_finalize_result :: out u32 = low:32[R0] - -00000396: -0000048e: R16 := 0x11000 -00000495: R17 := mem[R16 + 8, el]:u64 -0000049b: R16 := R16 + 8 -000004a0: call R17 with noreturn - -0000057f: sub __do_global_dtors_aux(__do_global_dtors_aux_result) -000005b2: __do_global_dtors_aux_result :: out u32 = low:32[R0] - -00000292: -00000296: #3 := R31 - 0x20 -0000029c: mem := mem with [#3, el]:u64 <- R29 -000002a2: mem := mem with [#3 + 8, el]:u64 <- R30 -000002a6: R31 := #3 -000002ac: R29 := R31 -000002b4: mem := mem with [R31 + 0x10, el]:u64 <- R19 -000002b9: R19 := 0x11000 -000002c0: R0 := pad:64[mem[R19 + 0x30]] -000002c7: when 31:0[R0] <> 0 goto %000002c5 -000005a6: goto %0000035f - -0000035f: -00000362: R0 := 0x10000 -00000369: R0 := mem[R0 + 0xFB8, el]:u64 -0000036f: when R0 = 0 goto %0000036d -000005a7: goto %00000386 - -00000386: -00000389: R0 := 0x11000 -00000390: R0 := mem[R0 + 0x28, el]:u64 -00000395: R30 := 0x730 -00000398: call @__cxa_finalize with return %0000036d - -0000036d: -00000375: R30 := 0x734 -00000377: call @deregister_tm_clones with return %00000379 - -00000379: -0000037c: R0 := 1 -00000384: mem := mem with [R19 + 0x30] <- 7:0[R0] -000005a8: goto %000002c5 - -000002c5: -000002cf: R19 := mem[R31 + 0x10, el]:u64 -000002d6: R29 := mem[R31, el]:u64 -000002db: R30 := mem[R31 + 8, el]:u64 -000002df: R31 := R31 + 0x20 -000002e4: call R30 with noreturn - -00000583: sub __libc_start_main(__libc_start_main_main, __libc_start_main_arg2, __libc_start_main_arg3, __libc_start_main_auxv, __libc_start_main_result) -000005b3: __libc_start_main_main :: in u64 = R0 -000005b4: __libc_start_main_arg2 :: in u32 = low:32[R1] -000005b5: __libc_start_main_arg3 :: in out u64 = R2 -000005b6: __libc_start_main_auxv :: in out u64 = R3 -000005b7: __libc_start_main_result :: out u32 = low:32[R0] - -000001eb: -00000478: R16 := 0x11000 -0000047f: R17 := mem[R16, el]:u64 -00000485: R16 := R16 -0000048a: call R17 with noreturn - -00000584: sub _fini(_fini_result) -000005b8: _fini_result :: out u32 = low:32[R0] - -0000001f: -00000025: #0 := R31 - 0x10 -0000002b: mem := mem with [#0, el]:u64 <- R29 -00000031: mem := mem with [#0 + 8, el]:u64 <- R30 -00000035: R31 := #0 -0000003b: R29 := R31 -00000042: R29 := mem[R31, el]:u64 -00000047: R30 := mem[R31 + 8, el]:u64 -0000004b: R31 := R31 + 0x10 -00000050: call R30 with noreturn - -00000585: sub _init(_init_result) -000005b9: _init_result :: out u32 = low:32[R0] - -000004e8: -000004ee: #5 := R31 - 0x10 -000004f4: mem := mem with [#5, el]:u64 <- R29 -000004fa: mem := mem with [#5 + 8, el]:u64 <- R30 -000004fe: R31 := #5 -00000504: R29 := R31 -00000509: R30 := 0x5C0 -0000050b: call @call_weak_fn with return %0000050d - -0000050d: -00000512: R29 := mem[R31, el]:u64 -00000517: R30 := mem[R31 + 8, el]:u64 -0000051b: R31 := R31 + 0x10 -00000520: call R30 with noreturn - -00000586: sub _start(_start_result) -000005ba: _start_result :: out u32 = low:32[R0] - -000001ac: -000001b1: R29 := 0 -000001b6: R30 := 0 -000001bc: R5 := R0 -000001c3: R1 := mem[R31, el]:u64 -000001c9: R2 := R31 + 8 -000001cf: R6 := R31 -000001d4: R0 := 0x10000 -000001db: R0 := mem[R0 + 0xFD8, el]:u64 -000001e0: R3 := 0 -000001e5: R4 := 0 -000001ea: R30 := 0x670 -000001ed: call @__libc_start_main with return %000001ef - -000001ef: -000001f2: R30 := 0x674 -000001f5: call @abort with return %000005a9 - -000005a9: -000005aa: call @call_weak_fn with noreturn - -00000589: sub abort() - - -000001f3: -000004ba: R16 := 0x11000 -000004c1: R17 := mem[R16 + 0x18, el]:u64 -000004c7: R16 := R16 + 0x18 -000004cc: call R17 with noreturn - -0000058a: sub call_weak_fn(call_weak_fn_result) -000005bb: call_weak_fn_result :: out u32 = low:32[R0] - -000001f7: -000001fa: R0 := 0x10000 -00000201: R0 := mem[R0 + 0xFC8, el]:u64 -00000207: when R0 = 0 goto %00000205 -000005ab: goto %000003d6 - -00000205: -0000020d: call R30 with noreturn - -000003d6: -000003d9: goto @__gmon_start__ - -000003d7: -000004a4: R16 := 0x11000 -000004ab: R17 := mem[R16 + 0x10, el]:u64 -000004b1: R16 := R16 + 0x10 -000004b6: call R17 with noreturn - -0000058c: sub deregister_tm_clones(deregister_tm_clones_result) -000005bc: deregister_tm_clones_result :: out u32 = low:32[R0] - -00000213: -00000216: R0 := 0x11000 -0000021c: R0 := R0 + 0x30 -00000221: R1 := 0x11000 -00000227: R1 := R1 + 0x30 -0000022d: #1 := ~R0 -00000232: #2 := R1 + ~R0 -00000238: VF := extend:65[#2 + 1] <> extend:65[R1] + extend:65[#1] + 1 -0000023e: CF := pad:65[#2 + 1] <> pad:65[R1] + pad:65[#1] + 1 -00000242: ZF := #2 + 1 = 0 -00000246: NF := 63:63[#2 + 1] -0000024c: when ZF goto %0000024a -000005ac: goto %000003b8 - -000003b8: -000003bb: R1 := 0x10000 -000003c2: R1 := mem[R1 + 0xFB0, el]:u64 -000003c7: when R1 = 0 goto %0000024a -000005ad: goto %000003cb - -0000024a: -00000252: call R30 with noreturn - -000003cb: -000003cf: R16 := R1 -000003d4: call R16 with noreturn - -0000058f: sub frame_dummy(frame_dummy_result) -000005bd: frame_dummy_result :: out u32 = low:32[R0] - -000002ea: -000002ec: call @register_tm_clones with noreturn - -00000590: sub main(main_argc, main_argv, main_result) -000005be: main_argc :: in u32 = low:32[R0] -000005bf: main_argv :: in out u64 = R1 -000005c0: main_result :: out u32 = low:32[R0] - -000002ee: -000002f2: R31 := R31 - 0x10 -000002f7: R8 := 0x10000 -000002fe: R8 := mem[R8 + 0xFD0, el]:u64 -00000305: R9 := pad:64[mem[R8]] -0000030d: mem := mem with [R31 + 0xF] <- 7:0[R9] -00000314: mem := mem with [R31 + 0xF] <- 0 -0000031b: R10 := pad:64[mem[R31 + 0xF]] -00000320: R9 := 0x10000 -00000327: R9 := mem[R9 + 0xFC0, el]:u64 -0000032f: mem := mem with [R9] <- 7:0[R10] -00000336: R8 := pad:64[mem[R8]] -0000033e: mem := mem with [R31 + 0xF] <- 7:0[R8] -00000345: R8 := pad:64[mem[R31 + 0xF]] -0000034d: mem := mem with [R9] <- 7:0[R8] -00000352: R0 := 0 -00000358: R31 := R31 + 0x10 -0000035d: call R30 with noreturn - -00000591: sub register_tm_clones(register_tm_clones_result) -000005c1: register_tm_clones_result :: out u32 = low:32[R0] - -00000254: -00000257: R0 := 0x11000 -0000025d: R0 := R0 + 0x30 -00000262: R1 := 0x11000 -00000268: R1 := R1 + 0x30 -0000026f: R1 := R1 + ~R0 + 1 -00000275: R2 := 0.63:63[R1] -0000027c: R1 := R2 + (R1 ~>> 3) -00000282: R1 := extend:64[63:1[R1]] -00000288: when R1 = 0 goto %00000286 -000005ae: goto %0000039a - -0000039a: -0000039d: R2 := 0x10000 -000003a4: R2 := mem[R2 + 0xFE0, el]:u64 -000003a9: when R2 = 0 goto %00000286 -000005af: goto %000003ad - -00000286: -0000028e: call R30 with noreturn - -000003ad: -000003b1: R16 := R2 -000003b6: call R16 with noreturn diff --git a/src/test/incorrect/basicassign3/clang_pic/basicassign3.expected b/src/test/incorrect/basicassign3/clang_pic/basicassign3.expected index 10bef53f6..e22cf08e6 100644 --- a/src/test/incorrect/basicassign3/clang_pic/basicassign3.expected +++ b/src/test/incorrect/basicassign3/clang_pic/basicassign3.expected @@ -1,21 +1,15 @@ var {:extern} Gamma_R0: bool; -var {:extern} Gamma_R10: bool; -var {:extern} Gamma_R31: bool; var {:extern} Gamma_R8: bool; var {:extern} Gamma_R9: bool; var {:extern} Gamma_mem: [bv64]bool; -var {:extern} Gamma_stack: [bv64]bool; var {:extern} R0: bv64; -var {:extern} R10: bv64; -var {:extern} R31: bv64; var {:extern} R8: bv64; var {:extern} R9: bv64; var {:extern} mem: [bv64]bv8; -var {:extern} stack: [bv64]bv8; const {:extern} $secret_addr: bv64; -axiom ($secret_addr == 69681bv64); +axiom ($secret_addr == 131089bv64); const {:extern} $z_addr: bv64; -axiom ($z_addr == 69682bv64); +axiom ($z_addr == 131090bv64); function {:extern} L(mem$in: [bv64]bv8, index: bv64) returns (bool) { (if (index == $secret_addr) then false else (if (index == $z_addr) then true else false)) } @@ -54,13 +48,13 @@ procedure {:extern} rely(); modifies Gamma_mem, mem; ensures (Gamma_mem == old(Gamma_mem)); ensures (mem == old(mem)); - free ensures (memory_load32_le(mem, 1964bv64) == 131073bv32); - free ensures (memory_load64_le(mem, 69048bv64) == 1872bv64); - free ensures (memory_load64_le(mem, 69056bv64) == 1792bv64); - free ensures (memory_load64_le(mem, 69568bv64) == 69682bv64); - free ensures (memory_load64_le(mem, 69584bv64) == 69681bv64); - free ensures (memory_load64_le(mem, 69592bv64) == 1876bv64); - free ensures (memory_load64_le(mem, 69672bv64) == 69672bv64); + free ensures (memory_load32_le(mem, 2312bv64) == 131073bv32); + free ensures (memory_load64_le(mem, 130424bv64) == 2256bv64); + free ensures (memory_load64_le(mem, 130432bv64) == 2176bv64); + free ensures (memory_load64_le(mem, 131032bv64) == 131090bv64); + free ensures (memory_load64_le(mem, 131048bv64) == 131089bv64); + free ensures (memory_load64_le(mem, 131056bv64) == 2260bv64); + free ensures (memory_load64_le(mem, 131080bv64) == 131080bv64); procedure {:extern} rely_transitive(); modifies Gamma_mem, mem; @@ -78,81 +72,54 @@ procedure {:extern} rely_reflexive(); procedure {:extern} guarantee_reflexive(); modifies Gamma_mem, mem; -procedure main_1876(); - modifies Gamma_R0, Gamma_R10, Gamma_R31, Gamma_R8, Gamma_R9, Gamma_mem, Gamma_stack, R0, R10, R31, R8, R9, mem, stack; - free requires (memory_load64_le(mem, 69664bv64) == 0bv64); - free requires (memory_load64_le(mem, 69672bv64) == 69672bv64); - free requires (memory_load32_le(mem, 1964bv64) == 131073bv32); - free requires (memory_load64_le(mem, 69048bv64) == 1872bv64); - free requires (memory_load64_le(mem, 69056bv64) == 1792bv64); - free requires (memory_load64_le(mem, 69568bv64) == 69682bv64); - free requires (memory_load64_le(mem, 69584bv64) == 69681bv64); - free requires (memory_load64_le(mem, 69592bv64) == 1876bv64); - free requires (memory_load64_le(mem, 69672bv64) == 69672bv64); - free ensures (Gamma_R31 == old(Gamma_R31)); - free ensures (R31 == old(R31)); - free ensures (memory_load32_le(mem, 1964bv64) == 131073bv32); - free ensures (memory_load64_le(mem, 69048bv64) == 1872bv64); - free ensures (memory_load64_le(mem, 69056bv64) == 1792bv64); - free ensures (memory_load64_le(mem, 69568bv64) == 69682bv64); - free ensures (memory_load64_le(mem, 69584bv64) == 69681bv64); - free ensures (memory_load64_le(mem, 69592bv64) == 1876bv64); - free ensures (memory_load64_le(mem, 69672bv64) == 69672bv64); +procedure main(); + modifies Gamma_R0, Gamma_R8, Gamma_R9, Gamma_mem, R0, R8, R9, mem; + free requires (memory_load64_le(mem, 131072bv64) == 0bv64); + free requires (memory_load64_le(mem, 131080bv64) == 131080bv64); + free requires (memory_load32_le(mem, 2312bv64) == 131073bv32); + free requires (memory_load64_le(mem, 130424bv64) == 2256bv64); + free requires (memory_load64_le(mem, 130432bv64) == 2176bv64); + free requires (memory_load64_le(mem, 131032bv64) == 131090bv64); + free requires (memory_load64_le(mem, 131048bv64) == 131089bv64); + free requires (memory_load64_le(mem, 131056bv64) == 2260bv64); + free requires (memory_load64_le(mem, 131080bv64) == 131080bv64); + free ensures (memory_load32_le(mem, 2312bv64) == 131073bv32); + free ensures (memory_load64_le(mem, 130424bv64) == 2256bv64); + free ensures (memory_load64_le(mem, 130432bv64) == 2176bv64); + free ensures (memory_load64_le(mem, 131032bv64) == 131090bv64); + free ensures (memory_load64_le(mem, 131048bv64) == 131089bv64); + free ensures (memory_load64_le(mem, 131056bv64) == 2260bv64); + free ensures (memory_load64_le(mem, 131080bv64) == 131080bv64); -implementation main_1876() +implementation main() { - var Gamma_load18: bool; - var Gamma_load19: bool; - var Gamma_load20: bool; - var Gamma_load21: bool; - var Gamma_load22: bool; - var Gamma_load23: bool; - var load18: bv64; - var load19: bv8; - var load20: bv8; - var load21: bv64; - var load22: bv8; - var load23: bv8; + var $load$18: bv64; + var $load$19: bv8; + var $load$20: bv64; + var Gamma_$load$18: bool; + var Gamma_$load$19: bool; + var Gamma_$load$20: bool; lmain: assume {:captureState "lmain"} true; - R31, Gamma_R31 := bvadd64(R31, 18446744073709551600bv64), Gamma_R31; - R8, Gamma_R8 := 65536bv64, true; - call rely(); - load18, Gamma_load18 := memory_load64_le(mem, bvadd64(R8, 4048bv64)), (gamma_load64(Gamma_mem, bvadd64(R8, 4048bv64)) || L(mem, bvadd64(R8, 4048bv64))); - R8, Gamma_R8 := load18, Gamma_load18; - call rely(); - load19, Gamma_load19 := memory_load8_le(mem, R8), (gamma_load8(Gamma_mem, R8) || L(mem, R8)); - R9, Gamma_R9 := zero_extend56_8(load19), Gamma_load19; - stack, Gamma_stack := memory_store8_le(stack, bvadd64(R31, 15bv64), R9[8:0]), gamma_store8(Gamma_stack, bvadd64(R31, 15bv64), Gamma_R9); - assume {:captureState "%0000030d"} true; - stack, Gamma_stack := memory_store8_le(stack, bvadd64(R31, 15bv64), 0bv8), gamma_store8(Gamma_stack, bvadd64(R31, 15bv64), true); - assume {:captureState "%00000314"} true; - load20, Gamma_load20 := memory_load8_le(stack, bvadd64(R31, 15bv64)), gamma_load8(Gamma_stack, bvadd64(R31, 15bv64)); - R10, Gamma_R10 := zero_extend56_8(load20), Gamma_load20; - R9, Gamma_R9 := 65536bv64, true; + R8, Gamma_R8 := 126976bv64, true; + R9, Gamma_R9 := 126976bv64, true; + R0, Gamma_R0 := 0bv64, true; call rely(); - load21, Gamma_load21 := memory_load64_le(mem, bvadd64(R9, 4032bv64)), (gamma_load64(Gamma_mem, bvadd64(R9, 4032bv64)) || L(mem, bvadd64(R9, 4032bv64))); - R9, Gamma_R9 := load21, Gamma_load21; + $load$18, Gamma_$load$18 := memory_load64_le(mem, bvadd64(R8, 4072bv64)), (gamma_load64(Gamma_mem, bvadd64(R8, 4072bv64)) || L(mem, bvadd64(R8, 4072bv64))); + R8, Gamma_R8 := $load$18, Gamma_$load$18; call rely(); - assert (L(mem, R9) ==> Gamma_R10); - mem, Gamma_mem := memory_store8_le(mem, R9, R10[8:0]), gamma_store8(Gamma_mem, R9, Gamma_R10); - assume {:captureState "%0000032f"} true; + $load$19, Gamma_$load$19 := memory_load8_le(mem, R8), (gamma_load8(Gamma_mem, R8) || L(mem, R8)); + R8, Gamma_R8 := zero_extend56_8($load$19), Gamma_$load$19; call rely(); - load22, Gamma_load22 := memory_load8_le(mem, R8), (gamma_load8(Gamma_mem, R8) || L(mem, R8)); - R8, Gamma_R8 := zero_extend56_8(load22), Gamma_load22; - stack, Gamma_stack := memory_store8_le(stack, bvadd64(R31, 15bv64), R8[8:0]), gamma_store8(Gamma_stack, bvadd64(R31, 15bv64), Gamma_R8); - assume {:captureState "%0000033e"} true; - load23, Gamma_load23 := memory_load8_le(stack, bvadd64(R31, 15bv64)), gamma_load8(Gamma_stack, bvadd64(R31, 15bv64)); - R8, Gamma_R8 := zero_extend56_8(load23), Gamma_load23; + $load$20, Gamma_$load$20 := memory_load64_le(mem, bvadd64(R9, 4056bv64)), (gamma_load64(Gamma_mem, bvadd64(R9, 4056bv64)) || L(mem, bvadd64(R9, 4056bv64))); + R9, Gamma_R9 := $load$20, Gamma_$load$20; call rely(); assert (L(mem, R9) ==> Gamma_R8); mem, Gamma_mem := memory_store8_le(mem, R9, R8[8:0]), gamma_store8(Gamma_mem, R9, Gamma_R8); - assume {:captureState "%0000034d"} true; - R0, Gamma_R0 := 0bv64, true; - R31, Gamma_R31 := bvadd64(R31, 16bv64), Gamma_R31; - goto main_1876_basil_return; - main_1876_basil_return: - assume {:captureState "main_1876_basil_return"} true; + assume {:captureState "%00000294"} true; + goto main_basil_return; + main_basil_return: + assume {:captureState "main_basil_return"} true; return; } diff --git a/src/test/incorrect/basicassign3/clang_pic/basicassign3.gts b/src/test/incorrect/basicassign3/clang_pic/basicassign3.gts deleted file mode 100644 index fd346c230..000000000 Binary files a/src/test/incorrect/basicassign3/clang_pic/basicassign3.gts and /dev/null differ diff --git a/src/test/incorrect/basicassign3/clang_pic/basicassign3.md5sum b/src/test/incorrect/basicassign3/clang_pic/basicassign3.md5sum new file mode 100644 index 000000000..9223224e9 --- /dev/null +++ b/src/test/incorrect/basicassign3/clang_pic/basicassign3.md5sum @@ -0,0 +1,5 @@ +9245d13c6c2b92d951145213bdb4cdd2 incorrect/basicassign3/clang_pic/a.out +a68ab4f5cad923ba3e2defd828bf4a28 incorrect/basicassign3/clang_pic/basicassign3.adt +4e89c2ee47af663f8d5718ad383d5caf incorrect/basicassign3/clang_pic/basicassign3.bir +444bb939537688ee58eb07eeb37a14a7 incorrect/basicassign3/clang_pic/basicassign3.relf +8d120184fa4d588261a08c39b5c00b81 incorrect/basicassign3/clang_pic/basicassign3.gts diff --git a/src/test/incorrect/basicassign3/clang_pic/basicassign3.relf b/src/test/incorrect/basicassign3/clang_pic/basicassign3.relf deleted file mode 100644 index 027bcf334..000000000 --- a/src/test/incorrect/basicassign3/clang_pic/basicassign3.relf +++ /dev/null @@ -1,126 +0,0 @@ - -Relocation section '.rela.dyn' at offset 0x460 contains 10 entries: - Offset Info Type Symbol's Value Symbol's Name + Addend -0000000000010db8 0000000000000403 R_AARCH64_RELATIVE 750 -0000000000010dc0 0000000000000403 R_AARCH64_RELATIVE 700 -0000000000010fc0 0000000000000403 R_AARCH64_RELATIVE 11032 -0000000000010fd0 0000000000000403 R_AARCH64_RELATIVE 11031 -0000000000010fd8 0000000000000403 R_AARCH64_RELATIVE 754 -0000000000011028 0000000000000403 R_AARCH64_RELATIVE 11028 -0000000000010fb0 0000000400000401 R_AARCH64_GLOB_DAT 0000000000000000 _ITM_deregisterTMCloneTable + 0 -0000000000010fb8 0000000500000401 R_AARCH64_GLOB_DAT 0000000000000000 __cxa_finalize@GLIBC_2.17 + 0 -0000000000010fc8 0000000600000401 R_AARCH64_GLOB_DAT 0000000000000000 __gmon_start__ + 0 -0000000000010fe0 0000000800000401 R_AARCH64_GLOB_DAT 0000000000000000 _ITM_registerTMCloneTable + 0 - -Relocation section '.rela.plt' at offset 0x550 contains 4 entries: - Offset Info Type Symbol's Value Symbol's Name + Addend -0000000000011000 0000000300000402 R_AARCH64_JUMP_SLOT 0000000000000000 __libc_start_main@GLIBC_2.34 + 0 -0000000000011008 0000000500000402 R_AARCH64_JUMP_SLOT 0000000000000000 __cxa_finalize@GLIBC_2.17 + 0 -0000000000011010 0000000600000402 R_AARCH64_JUMP_SLOT 0000000000000000 __gmon_start__ + 0 -0000000000011018 0000000700000402 R_AARCH64_JUMP_SLOT 0000000000000000 abort@GLIBC_2.17 + 0 - -Symbol table '.dynsym' contains 9 entries: - Num: Value Size Type Bind Vis Ndx Name - 0: 0000000000000000 0 NOTYPE LOCAL DEFAULT UND - 1: 00000000000005b0 0 SECTION LOCAL DEFAULT 11 .init - 2: 0000000000011020 0 SECTION LOCAL DEFAULT 23 .data - 3: 0000000000000000 0 FUNC GLOBAL DEFAULT UND __libc_start_main@GLIBC_2.34 (2) - 4: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_deregisterTMCloneTable - 5: 0000000000000000 0 FUNC WEAK DEFAULT UND __cxa_finalize@GLIBC_2.17 (3) - 6: 0000000000000000 0 NOTYPE WEAK DEFAULT UND __gmon_start__ - 7: 0000000000000000 0 FUNC GLOBAL DEFAULT UND abort@GLIBC_2.17 (3) - 8: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_registerTMCloneTable - -Symbol table '.symtab' contains 91 entries: - Num: Value Size Type Bind Vis Ndx Name - 0: 0000000000000000 0 NOTYPE LOCAL DEFAULT UND - 1: 0000000000000238 0 SECTION LOCAL DEFAULT 1 .interp - 2: 0000000000000254 0 SECTION LOCAL DEFAULT 2 .note.gnu.build-id - 3: 0000000000000278 0 SECTION LOCAL DEFAULT 3 .note.ABI-tag - 4: 0000000000000298 0 SECTION LOCAL DEFAULT 4 .gnu.hash - 5: 00000000000002b8 0 SECTION LOCAL DEFAULT 5 .dynsym - 6: 0000000000000390 0 SECTION LOCAL DEFAULT 6 .dynstr - 7: 000000000000041e 0 SECTION LOCAL DEFAULT 7 .gnu.version - 8: 0000000000000430 0 SECTION LOCAL DEFAULT 8 .gnu.version_r - 9: 0000000000000460 0 SECTION LOCAL DEFAULT 9 .rela.dyn - 10: 0000000000000550 0 SECTION LOCAL DEFAULT 10 .rela.plt - 11: 00000000000005b0 0 SECTION LOCAL DEFAULT 11 .init - 12: 00000000000005d0 0 SECTION LOCAL DEFAULT 12 .plt - 13: 0000000000000640 0 SECTION LOCAL DEFAULT 13 .text - 14: 0000000000000798 0 SECTION LOCAL DEFAULT 14 .fini - 15: 00000000000007ac 0 SECTION LOCAL DEFAULT 15 .rodata - 16: 00000000000007b0 0 SECTION LOCAL DEFAULT 16 .eh_frame_hdr - 17: 00000000000007f0 0 SECTION LOCAL DEFAULT 17 .eh_frame - 18: 0000000000010db8 0 SECTION LOCAL DEFAULT 18 .init_array - 19: 0000000000010dc0 0 SECTION LOCAL DEFAULT 19 .fini_array - 20: 0000000000010dc8 0 SECTION LOCAL DEFAULT 20 .dynamic - 21: 0000000000010fa8 0 SECTION LOCAL DEFAULT 21 .got - 22: 0000000000010fe8 0 SECTION LOCAL DEFAULT 22 .got.plt - 23: 0000000000011020 0 SECTION LOCAL DEFAULT 23 .data - 24: 0000000000011030 0 SECTION LOCAL DEFAULT 24 .bss - 25: 0000000000000000 0 SECTION LOCAL DEFAULT 25 .comment - 26: 0000000000000000 0 FILE LOCAL DEFAULT ABS Scrt1.o - 27: 0000000000000278 0 NOTYPE LOCAL DEFAULT 3 $d - 28: 0000000000000278 32 OBJECT LOCAL DEFAULT 3 __abi_tag - 29: 0000000000000640 0 NOTYPE LOCAL DEFAULT 13 $x - 30: 0000000000000804 0 NOTYPE LOCAL DEFAULT 17 $d - 31: 00000000000007ac 0 NOTYPE LOCAL DEFAULT 15 $d - 32: 0000000000000000 0 FILE LOCAL DEFAULT ABS crti.o - 33: 0000000000000674 0 NOTYPE LOCAL DEFAULT 13 $x - 34: 0000000000000674 20 FUNC LOCAL DEFAULT 13 call_weak_fn - 35: 00000000000005b0 0 NOTYPE LOCAL DEFAULT 11 $x - 36: 0000000000000798 0 NOTYPE LOCAL DEFAULT 14 $x - 37: 0000000000000000 0 FILE LOCAL DEFAULT ABS crtn.o - 38: 00000000000005c0 0 NOTYPE LOCAL DEFAULT 11 $x - 39: 00000000000007a4 0 NOTYPE LOCAL DEFAULT 14 $x - 40: 0000000000000000 0 FILE LOCAL DEFAULT ABS crtstuff.c - 41: 0000000000000690 0 NOTYPE LOCAL DEFAULT 13 $x - 42: 0000000000000690 0 FUNC LOCAL DEFAULT 13 deregister_tm_clones - 43: 00000000000006c0 0 FUNC LOCAL DEFAULT 13 register_tm_clones - 44: 0000000000011028 0 NOTYPE LOCAL DEFAULT 23 $d - 45: 0000000000000700 0 FUNC LOCAL DEFAULT 13 __do_global_dtors_aux - 46: 0000000000011030 1 OBJECT LOCAL DEFAULT 24 completed.0 - 47: 0000000000010dc0 0 NOTYPE LOCAL DEFAULT 19 $d - 48: 0000000000010dc0 0 OBJECT LOCAL DEFAULT 19 __do_global_dtors_aux_fini_array_entry - 49: 0000000000000750 0 FUNC LOCAL DEFAULT 13 frame_dummy - 50: 0000000000010db8 0 NOTYPE LOCAL DEFAULT 18 $d - 51: 0000000000010db8 0 OBJECT LOCAL DEFAULT 18 __frame_dummy_init_array_entry - 52: 0000000000000818 0 NOTYPE LOCAL DEFAULT 17 $d - 53: 0000000000011030 0 NOTYPE LOCAL DEFAULT 24 $d - 54: 0000000000000000 0 FILE LOCAL DEFAULT ABS basicassign3.c - 55: 0000000000000754 0 NOTYPE LOCAL DEFAULT 13 $x.0 - 56: 0000000000011031 0 NOTYPE LOCAL DEFAULT 24 $d.1 - 57: 000000000000002a 0 NOTYPE LOCAL DEFAULT 25 $d.2 - 58: 0000000000000878 0 NOTYPE LOCAL DEFAULT 17 $d.3 - 59: 0000000000000000 0 FILE LOCAL DEFAULT ABS crtstuff.c - 60: 00000000000008a4 0 NOTYPE LOCAL DEFAULT 17 $d - 61: 00000000000008a4 0 OBJECT LOCAL DEFAULT 17 __FRAME_END__ - 62: 0000000000000000 0 FILE LOCAL DEFAULT ABS - 63: 0000000000010dc8 0 OBJECT LOCAL DEFAULT ABS _DYNAMIC - 64: 00000000000007b0 0 NOTYPE LOCAL DEFAULT 16 __GNU_EH_FRAME_HDR - 65: 0000000000010fa8 0 OBJECT LOCAL DEFAULT ABS _GLOBAL_OFFSET_TABLE_ - 66: 00000000000005d0 0 NOTYPE LOCAL DEFAULT 12 $x - 67: 0000000000000000 0 FUNC GLOBAL DEFAULT UND __libc_start_main@GLIBC_2.34 - 68: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_deregisterTMCloneTable - 69: 0000000000011020 0 NOTYPE WEAK DEFAULT 23 data_start - 70: 0000000000011030 0 NOTYPE GLOBAL DEFAULT 24 __bss_start__ - 71: 0000000000000000 0 FUNC WEAK DEFAULT UND __cxa_finalize@GLIBC_2.17 - 72: 0000000000011038 0 NOTYPE GLOBAL DEFAULT 24 _bss_end__ - 73: 0000000000011030 0 NOTYPE GLOBAL DEFAULT 23 _edata - 74: 0000000000011032 1 OBJECT GLOBAL DEFAULT 24 z - 75: 0000000000000798 0 FUNC GLOBAL HIDDEN 14 _fini - 76: 0000000000011038 0 NOTYPE GLOBAL DEFAULT 24 __bss_end__ - 77: 0000000000011020 0 NOTYPE GLOBAL DEFAULT 23 __data_start - 78: 0000000000000000 0 NOTYPE WEAK DEFAULT UND __gmon_start__ - 79: 0000000000011028 0 OBJECT GLOBAL HIDDEN 23 __dso_handle - 80: 0000000000000000 0 FUNC GLOBAL DEFAULT UND abort@GLIBC_2.17 - 81: 00000000000007ac 4 OBJECT GLOBAL DEFAULT 15 _IO_stdin_used - 82: 0000000000011031 1 OBJECT GLOBAL DEFAULT 24 secret - 83: 0000000000011038 0 NOTYPE GLOBAL DEFAULT 24 _end - 84: 0000000000000640 52 FUNC GLOBAL DEFAULT 13 _start - 85: 0000000000011038 0 NOTYPE GLOBAL DEFAULT 24 __end__ - 86: 0000000000011030 0 NOTYPE GLOBAL DEFAULT 24 __bss_start - 87: 0000000000000754 68 FUNC GLOBAL DEFAULT 13 main - 88: 0000000000011030 0 OBJECT GLOBAL HIDDEN 23 __TMC_END__ - 89: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_registerTMCloneTable - 90: 00000000000005b0 0 FUNC GLOBAL HIDDEN 11 _init diff --git a/src/test/incorrect/basicassign3/clang_pic/basicassign3_gtirb.expected b/src/test/incorrect/basicassign3/clang_pic/basicassign3_gtirb.expected index b27f2b57f..5eac97a09 100644 --- a/src/test/incorrect/basicassign3/clang_pic/basicassign3_gtirb.expected +++ b/src/test/incorrect/basicassign3/clang_pic/basicassign3_gtirb.expected @@ -1,21 +1,15 @@ var {:extern} Gamma_R0: bool; -var {:extern} Gamma_R10: bool; -var {:extern} Gamma_R31: bool; var {:extern} Gamma_R8: bool; var {:extern} Gamma_R9: bool; var {:extern} Gamma_mem: [bv64]bool; -var {:extern} Gamma_stack: [bv64]bool; var {:extern} R0: bv64; -var {:extern} R10: bv64; -var {:extern} R31: bv64; var {:extern} R8: bv64; var {:extern} R9: bv64; var {:extern} mem: [bv64]bv8; -var {:extern} stack: [bv64]bv8; const {:extern} $secret_addr: bv64; -axiom ($secret_addr == 69681bv64); +axiom ($secret_addr == 131089bv64); const {:extern} $z_addr: bv64; -axiom ($z_addr == 69682bv64); +axiom ($z_addr == 131090bv64); function {:extern} L(mem$in: [bv64]bv8, index: bv64) returns (bool) { (if (index == $secret_addr) then false else (if (index == $z_addr) then true else false)) } @@ -55,13 +49,13 @@ procedure {:extern} rely(); modifies Gamma_mem, mem; ensures (Gamma_mem == old(Gamma_mem)); ensures (mem == old(mem)); - free ensures (memory_load32_le(mem, 1964bv64) == 131073bv32); - free ensures (memory_load64_le(mem, 69048bv64) == 1872bv64); - free ensures (memory_load64_le(mem, 69056bv64) == 1792bv64); - free ensures (memory_load64_le(mem, 69568bv64) == 69682bv64); - free ensures (memory_load64_le(mem, 69584bv64) == 69681bv64); - free ensures (memory_load64_le(mem, 69592bv64) == 1876bv64); - free ensures (memory_load64_le(mem, 69672bv64) == 69672bv64); + free ensures (memory_load32_le(mem, 2312bv64) == 131073bv32); + free ensures (memory_load64_le(mem, 130424bv64) == 2256bv64); + free ensures (memory_load64_le(mem, 130432bv64) == 2176bv64); + free ensures (memory_load64_le(mem, 131032bv64) == 131090bv64); + free ensures (memory_load64_le(mem, 131048bv64) == 131089bv64); + free ensures (memory_load64_le(mem, 131056bv64) == 2260bv64); + free ensures (memory_load64_le(mem, 131080bv64) == 131080bv64); procedure {:extern} rely_transitive(); modifies Gamma_mem, mem; @@ -79,81 +73,54 @@ procedure {:extern} rely_reflexive(); procedure {:extern} guarantee_reflexive(); modifies Gamma_mem, mem; -procedure main_1876(); - modifies Gamma_R0, Gamma_R10, Gamma_R31, Gamma_R8, Gamma_R9, Gamma_mem, Gamma_stack, R0, R10, R31, R8, R9, mem, stack; - free requires (memory_load64_le(mem, 69664bv64) == 0bv64); - free requires (memory_load64_le(mem, 69672bv64) == 69672bv64); - free requires (memory_load32_le(mem, 1964bv64) == 131073bv32); - free requires (memory_load64_le(mem, 69048bv64) == 1872bv64); - free requires (memory_load64_le(mem, 69056bv64) == 1792bv64); - free requires (memory_load64_le(mem, 69568bv64) == 69682bv64); - free requires (memory_load64_le(mem, 69584bv64) == 69681bv64); - free requires (memory_load64_le(mem, 69592bv64) == 1876bv64); - free requires (memory_load64_le(mem, 69672bv64) == 69672bv64); - free ensures (Gamma_R31 == old(Gamma_R31)); - free ensures (R31 == old(R31)); - free ensures (memory_load32_le(mem, 1964bv64) == 131073bv32); - free ensures (memory_load64_le(mem, 69048bv64) == 1872bv64); - free ensures (memory_load64_le(mem, 69056bv64) == 1792bv64); - free ensures (memory_load64_le(mem, 69568bv64) == 69682bv64); - free ensures (memory_load64_le(mem, 69584bv64) == 69681bv64); - free ensures (memory_load64_le(mem, 69592bv64) == 1876bv64); - free ensures (memory_load64_le(mem, 69672bv64) == 69672bv64); +procedure main(); + modifies Gamma_R0, Gamma_R8, Gamma_R9, Gamma_mem, R0, R8, R9, mem; + free requires (memory_load64_le(mem, 131072bv64) == 0bv64); + free requires (memory_load64_le(mem, 131080bv64) == 131080bv64); + free requires (memory_load32_le(mem, 2312bv64) == 131073bv32); + free requires (memory_load64_le(mem, 130424bv64) == 2256bv64); + free requires (memory_load64_le(mem, 130432bv64) == 2176bv64); + free requires (memory_load64_le(mem, 131032bv64) == 131090bv64); + free requires (memory_load64_le(mem, 131048bv64) == 131089bv64); + free requires (memory_load64_le(mem, 131056bv64) == 2260bv64); + free requires (memory_load64_le(mem, 131080bv64) == 131080bv64); + free ensures (memory_load32_le(mem, 2312bv64) == 131073bv32); + free ensures (memory_load64_le(mem, 130424bv64) == 2256bv64); + free ensures (memory_load64_le(mem, 130432bv64) == 2176bv64); + free ensures (memory_load64_le(mem, 131032bv64) == 131090bv64); + free ensures (memory_load64_le(mem, 131048bv64) == 131089bv64); + free ensures (memory_load64_le(mem, 131056bv64) == 2260bv64); + free ensures (memory_load64_le(mem, 131080bv64) == 131080bv64); -implementation main_1876() +implementation main() { - var Gamma_load2: bool; - var Gamma_load3: bool; - var Gamma_load4: bool; - var Gamma_load5: bool; - var Gamma_load6: bool; - var Gamma_load7: bool; - var load2: bv64; - var load3: bv8; - var load4: bv8; - var load5: bv64; - var load6: bv8; - var load7: bv8; - main_1876__0__3y3_IhBrScqKSl092foduA: - assume {:captureState "main_1876__0__3y3_IhBrScqKSl092foduA"} true; - R31, Gamma_R31 := bvadd64(R31, 18446744073709551600bv64), Gamma_R31; - R8, Gamma_R8 := 65536bv64, true; - call rely(); - load2, Gamma_load2 := memory_load64_le(mem, bvadd64(R8, 4048bv64)), (gamma_load64(Gamma_mem, bvadd64(R8, 4048bv64)) || L(mem, bvadd64(R8, 4048bv64))); - R8, Gamma_R8 := load2, Gamma_load2; - call rely(); - load3, Gamma_load3 := memory_load8_le(mem, R8), (gamma_load8(Gamma_mem, R8) || L(mem, R8)); - R9, Gamma_R9 := zero_extend32_32(zero_extend24_8(load3)), Gamma_load3; - stack, Gamma_stack := memory_store8_le(stack, bvadd64(R31, 15bv64), R9[8:0]), gamma_store8(Gamma_stack, bvadd64(R31, 15bv64), Gamma_R9); - assume {:captureState "1892_0"} true; - stack, Gamma_stack := memory_store8_le(stack, bvadd64(R31, 15bv64), 0bv8), gamma_store8(Gamma_stack, bvadd64(R31, 15bv64), true); - assume {:captureState "1896_0"} true; - load4, Gamma_load4 := memory_load8_le(stack, bvadd64(R31, 15bv64)), gamma_load8(Gamma_stack, bvadd64(R31, 15bv64)); - R10, Gamma_R10 := zero_extend32_32(zero_extend24_8(load4)), Gamma_load4; - R9, Gamma_R9 := 65536bv64, true; + var $load5: bv64; + var $load6: bv8; + var $load7: bv64; + var Gamma_$load5: bool; + var Gamma_$load6: bool; + var Gamma_$load7: bool; + $main$__0__$D9t2gNJrSmyMH3GAVRe3IQ: + assume {:captureState "$main$__0__$D9t2gNJrSmyMH3GAVRe3IQ"} true; + R8, Gamma_R8 := 126976bv64, true; + R9, Gamma_R9 := 126976bv64, true; + R0, Gamma_R0 := 0bv64, true; call rely(); - load5, Gamma_load5 := memory_load64_le(mem, bvadd64(R9, 4032bv64)), (gamma_load64(Gamma_mem, bvadd64(R9, 4032bv64)) || L(mem, bvadd64(R9, 4032bv64))); - R9, Gamma_R9 := load5, Gamma_load5; + $load5, Gamma_$load5 := memory_load64_le(mem, bvadd64(R8, 4072bv64)), (gamma_load64(Gamma_mem, bvadd64(R8, 4072bv64)) || L(mem, bvadd64(R8, 4072bv64))); + R8, Gamma_R8 := $load5, Gamma_$load5; call rely(); - assert (L(mem, R9) ==> Gamma_R10); - mem, Gamma_mem := memory_store8_le(mem, R9, R10[8:0]), gamma_store8(Gamma_mem, R9, Gamma_R10); - assume {:captureState "1912_0"} true; + $load6, Gamma_$load6 := memory_load8_le(mem, R8), (gamma_load8(Gamma_mem, R8) || L(mem, R8)); + R8, Gamma_R8 := zero_extend32_32(zero_extend24_8($load6)), Gamma_$load6; call rely(); - load6, Gamma_load6 := memory_load8_le(mem, R8), (gamma_load8(Gamma_mem, R8) || L(mem, R8)); - R8, Gamma_R8 := zero_extend32_32(zero_extend24_8(load6)), Gamma_load6; - stack, Gamma_stack := memory_store8_le(stack, bvadd64(R31, 15bv64), R8[8:0]), gamma_store8(Gamma_stack, bvadd64(R31, 15bv64), Gamma_R8); - assume {:captureState "1920_0"} true; - load7, Gamma_load7 := memory_load8_le(stack, bvadd64(R31, 15bv64)), gamma_load8(Gamma_stack, bvadd64(R31, 15bv64)); - R8, Gamma_R8 := zero_extend32_32(zero_extend24_8(load7)), Gamma_load7; + $load7, Gamma_$load7 := memory_load64_le(mem, bvadd64(R9, 4056bv64)), (gamma_load64(Gamma_mem, bvadd64(R9, 4056bv64)) || L(mem, bvadd64(R9, 4056bv64))); + R9, Gamma_R9 := $load7, Gamma_$load7; call rely(); assert (L(mem, R9) ==> Gamma_R8); mem, Gamma_mem := memory_store8_le(mem, R9, R8[8:0]), gamma_store8(Gamma_mem, R9, Gamma_R8); - assume {:captureState "1928_0"} true; - R0, Gamma_R0 := 0bv64, true; - R31, Gamma_R31 := bvadd64(R31, 16bv64), Gamma_R31; - goto main_1876_basil_return; - main_1876_basil_return: - assume {:captureState "main_1876_basil_return"} true; + assume {:captureState "2284$0"} true; + goto main_basil_return; + main_basil_return: + assume {:captureState "main_basil_return"} true; return; } diff --git a/src/test/incorrect/basicassign3/gcc/basicassign3.adt b/src/test/incorrect/basicassign3/gcc/basicassign3.adt deleted file mode 100644 index 6a8b7009a..000000000 --- a/src/test/incorrect/basicassign3/gcc/basicassign3.adt +++ /dev/null @@ -1,538 +0,0 @@ -Project(Attrs([Attr("filename","\"gcc/basicassign3.out\""), -Attr("image-specification","(declare abi (name str))\n(declare arch (name str))\n(declare base-address (addr int))\n(declare bias (off int))\n(declare bits (size int))\n(declare code-region (addr int) (size int) (off int))\n(declare code-start (addr int))\n(declare entry-point (addr int))\n(declare external-reference (addr int) (name str))\n(declare format (name str))\n(declare is-executable (flag bool))\n(declare is-little-endian (flag bool))\n(declare llvm:base-address (addr int))\n(declare llvm:code-entry (name str) (off int) (size int))\n(declare llvm:coff-import-library (name str))\n(declare llvm:coff-virtual-section-header (name str) (addr int) (size int))\n(declare llvm:elf-program-header (name str) (off int) (size int))\n(declare llvm:elf-program-header-flags (name str) (ld bool) (r bool) \n (w bool) (x bool))\n(declare llvm:elf-virtual-program-header (name str) (addr int) (size int))\n(declare llvm:entry-point (addr int))\n(declare llvm:macho-symbol (name str) (value int))\n(declare llvm:name-reference (at int) (name str))\n(declare llvm:relocation (at int) (addr int))\n(declare llvm:section-entry (name str) (addr int) (size int) (off int))\n(declare llvm:section-flags (name str) (r bool) (w bool) (x bool))\n(declare llvm:segment-command (name str) (off int) (size int))\n(declare llvm:segment-command-flags (name str) (r bool) (w bool) (x bool))\n(declare llvm:symbol-entry (name str) (addr int) (size int) (off int)\n (value int))\n(declare llvm:virtual-segment-command (name str) (addr int) (size int))\n(declare mapped (addr int) (size int) (off int))\n(declare named-region (addr int) (size int) (name str))\n(declare named-symbol (addr int) (name str))\n(declare require (name str))\n(declare section (addr int) (size int))\n(declare segment (addr int) (size int) (r bool) (w bool) (x bool))\n(declare subarch (name str))\n(declare symbol-chunk (addr int) (size int) (root int))\n(declare symbol-value (addr int) (value int))\n(declare system (name str))\n(declare vendor (name str))\n\n(abi unknown)\n(arch aarch64)\n(base-address 0)\n(bias 0)\n(bits 64)\n(code-region 1896 20 1896)\n(code-region 1536 360 1536)\n(code-region 1440 96 1440)\n(code-region 1408 24 1408)\n(code-start 1588)\n(code-start 1536)\n(code-start 1812)\n(entry-point 1536)\n(external-reference 69592 _ITM_deregisterTMCloneTable)\n(external-reference 69600 __cxa_finalize)\n(external-reference 69608 __gmon_start__)\n(external-reference 69624 _ITM_registerTMCloneTable)\n(external-reference 69552 __libc_start_main)\n(external-reference 69560 __cxa_finalize)\n(external-reference 69568 __gmon_start__)\n(external-reference 69576 abort)\n(format elf)\n(is-executable true)\n(is-little-endian true)\n(llvm:base-address 0)\n(llvm:code-entry abort 0 0)\n(llvm:code-entry __cxa_finalize 0 0)\n(llvm:code-entry __libc_start_main 0 0)\n(llvm:code-entry _init 1408 0)\n(llvm:code-entry main 1812 84)\n(llvm:code-entry _start 1536 52)\n(llvm:code-entry abort@GLIBC_2.17 0 0)\n(llvm:code-entry _fini 1896 0)\n(llvm:code-entry __cxa_finalize@GLIBC_2.17 0 0)\n(llvm:code-entry __libc_start_main@GLIBC_2.34 0 0)\n(llvm:code-entry frame_dummy 1808 0)\n(llvm:code-entry __do_global_dtors_aux 1728 0)\n(llvm:code-entry register_tm_clones 1664 0)\n(llvm:code-entry deregister_tm_clones 1616 0)\n(llvm:code-entry call_weak_fn 1588 20)\n(llvm:code-entry .fini 1896 20)\n(llvm:code-entry .text 1536 360)\n(llvm:code-entry .plt 1440 96)\n(llvm:code-entry .init 1408 24)\n(llvm:elf-program-header 08 3480 616)\n(llvm:elf-program-header 07 0 0)\n(llvm:elf-program-header 06 1920 60)\n(llvm:elf-program-header 05 596 68)\n(llvm:elf-program-header 04 3496 496)\n(llvm:elf-program-header 03 3480 632)\n(llvm:elf-program-header 02 0 2148)\n(llvm:elf-program-header 01 568 27)\n(llvm:elf-program-header 00 64 504)\n(llvm:elf-program-header-flags 08 false true false false)\n(llvm:elf-program-header-flags 07 false true true false)\n(llvm:elf-program-header-flags 06 false true false false)\n(llvm:elf-program-header-flags 05 false true false false)\n(llvm:elf-program-header-flags 04 false true true false)\n(llvm:elf-program-header-flags 03 true true true false)\n(llvm:elf-program-header-flags 02 true true false true)\n(llvm:elf-program-header-flags 01 false true false false)\n(llvm:elf-program-header-flags 00 false true false false)\n(llvm:elf-virtual-program-header 08 69016 616)\n(llvm:elf-virtual-program-header 07 0 0)\n(llvm:elf-virtual-program-header 06 1920 60)\n(llvm:elf-virtual-program-header 05 596 68)\n(llvm:elf-virtual-program-header 04 69032 496)\n(llvm:elf-virtual-program-header 03 69016 640)\n(llvm:elf-virtual-program-header 02 0 2148)\n(llvm:elf-virtual-program-header 01 568 27)\n(llvm:elf-virtual-program-header 00 64 504)\n(llvm:entry-point 1536)\n(llvm:name-reference 69576 abort)\n(llvm:name-reference 69568 __gmon_start__)\n(llvm:name-reference 69560 __cxa_finalize)\n(llvm:name-reference 69552 __libc_start_main)\n(llvm:name-reference 69624 _ITM_registerTMCloneTable)\n(llvm:name-reference 69608 __gmon_start__)\n(llvm:name-reference 69600 __cxa_finalize)\n(llvm:name-reference 69592 _ITM_deregisterTMCloneTable)\n(llvm:section-entry .shstrtab 0 250 6853)\n(llvm:section-entry .strtab 0 557 6296)\n(llvm:section-entry .symtab 0 2136 4160)\n(llvm:section-entry .comment 0 43 4112)\n(llvm:section-entry .bss 69648 8 4112)\n(llvm:section-entry .data 69632 16 4096)\n(llvm:section-entry .got 69528 104 3992)\n(llvm:section-entry .dynamic 69032 496 3496)\n(llvm:section-entry .fini_array 69024 8 3488)\n(llvm:section-entry .init_array 69016 8 3480)\n(llvm:section-entry .eh_frame 1984 164 1984)\n(llvm:section-entry .eh_frame_hdr 1920 60 1920)\n(llvm:section-entry .rodata 1916 4 1916)\n(llvm:section-entry .fini 1896 20 1896)\n(llvm:section-entry .text 1536 360 1536)\n(llvm:section-entry .plt 1440 96 1440)\n(llvm:section-entry .init 1408 24 1408)\n(llvm:section-entry .rela.plt 1312 96 1312)\n(llvm:section-entry .rela.dyn 1120 192 1120)\n(llvm:section-entry .gnu.version_r 1072 48 1072)\n(llvm:section-entry .gnu.version 1054 18 1054)\n(llvm:section-entry .dynstr 912 141 912)\n(llvm:section-entry .dynsym 696 216 696)\n(llvm:section-entry .gnu.hash 664 28 664)\n(llvm:section-entry .note.ABI-tag 632 32 632)\n(llvm:section-entry .note.gnu.build-id 596 36 596)\n(llvm:section-entry .interp 568 27 568)\n(llvm:section-flags .shstrtab true false false)\n(llvm:section-flags .strtab true false false)\n(llvm:section-flags .symtab true false false)\n(llvm:section-flags .comment true false false)\n(llvm:section-flags .bss true true false)\n(llvm:section-flags .data true true false)\n(llvm:section-flags .got true true false)\n(llvm:section-flags .dynamic true true false)\n(llvm:section-flags .fini_array true true false)\n(llvm:section-flags .init_array true true false)\n(llvm:section-flags .eh_frame true false false)\n(llvm:section-flags .eh_frame_hdr true false false)\n(llvm:section-flags .rodata true false false)\n(llvm:section-flags .fini true false true)\n(llvm:section-flags .text true false true)\n(llvm:section-flags .plt true false true)\n(llvm:section-flags .init true false true)\n(llvm:section-flags .rela.plt true false false)\n(llvm:section-flags .rela.dyn true false false)\n(llvm:section-flags .gnu.version_r true false false)\n(llvm:section-flags .gnu.version true false false)\n(llvm:section-flags .dynstr true false false)\n(llvm:section-flags .dynsym true false false)\n(llvm:section-flags .gnu.hash true false false)\n(llvm:section-flags .note.ABI-tag true false false)\n(llvm:section-flags .note.gnu.build-id true false false)\n(llvm:section-flags .interp true false false)\n(llvm:symbol-entry abort 0 0 0 0)\n(llvm:symbol-entry __cxa_finalize 0 0 0 0)\n(llvm:symbol-entry __libc_start_main 0 0 0 0)\n(llvm:symbol-entry _init 1408 0 1408 1408)\n(llvm:symbol-entry main 1812 84 1812 1812)\n(llvm:symbol-entry _start 1536 52 1536 1536)\n(llvm:symbol-entry abort@GLIBC_2.17 0 0 0 0)\n(llvm:symbol-entry _fini 1896 0 1896 1896)\n(llvm:symbol-entry __cxa_finalize@GLIBC_2.17 0 0 0 0)\n(llvm:symbol-entry __libc_start_main@GLIBC_2.34 0 0 0 0)\n(llvm:symbol-entry frame_dummy 1808 0 1808 1808)\n(llvm:symbol-entry __do_global_dtors_aux 1728 0 1728 1728)\n(llvm:symbol-entry register_tm_clones 1664 0 1664 1664)\n(llvm:symbol-entry deregister_tm_clones 1616 0 1616 1616)\n(llvm:symbol-entry call_weak_fn 1588 20 1588 1588)\n(mapped 0 2148 0)\n(mapped 69016 632 3480)\n(named-region 0 2148 02)\n(named-region 69016 640 03)\n(named-region 568 27 .interp)\n(named-region 596 36 .note.gnu.build-id)\n(named-region 632 32 .note.ABI-tag)\n(named-region 664 28 .gnu.hash)\n(named-region 696 216 .dynsym)\n(named-region 912 141 .dynstr)\n(named-region 1054 18 .gnu.version)\n(named-region 1072 48 .gnu.version_r)\n(named-region 1120 192 .rela.dyn)\n(named-region 1312 96 .rela.plt)\n(named-region 1408 24 .init)\n(named-region 1440 96 .plt)\n(named-region 1536 360 .text)\n(named-region 1896 20 .fini)\n(named-region 1916 4 .rodata)\n(named-region 1920 60 .eh_frame_hdr)\n(named-region 1984 164 .eh_frame)\n(named-region 69016 8 .init_array)\n(named-region 69024 8 .fini_array)\n(named-region 69032 496 .dynamic)\n(named-region 69528 104 .got)\n(named-region 69632 16 .data)\n(named-region 69648 8 .bss)\n(named-region 0 43 .comment)\n(named-region 0 2136 .symtab)\n(named-region 0 557 .strtab)\n(named-region 0 250 .shstrtab)\n(named-symbol 1588 call_weak_fn)\n(named-symbol 1616 deregister_tm_clones)\n(named-symbol 1664 register_tm_clones)\n(named-symbol 1728 __do_global_dtors_aux)\n(named-symbol 1808 frame_dummy)\n(named-symbol 0 __libc_start_main@GLIBC_2.34)\n(named-symbol 0 __cxa_finalize@GLIBC_2.17)\n(named-symbol 1896 _fini)\n(named-symbol 0 abort@GLIBC_2.17)\n(named-symbol 1536 _start)\n(named-symbol 1812 main)\n(named-symbol 1408 _init)\n(named-symbol 0 __libc_start_main)\n(named-symbol 0 __cxa_finalize)\n(named-symbol 0 abort)\n(require libc.so.6)\n(section 568 27)\n(section 596 36)\n(section 632 32)\n(section 664 28)\n(section 696 216)\n(section 912 141)\n(section 1054 18)\n(section 1072 48)\n(section 1120 192)\n(section 1312 96)\n(section 1408 24)\n(section 1440 96)\n(section 1536 360)\n(section 1896 20)\n(section 1916 4)\n(section 1920 60)\n(section 1984 164)\n(section 69016 8)\n(section 69024 8)\n(section 69032 496)\n(section 69528 104)\n(section 69632 16)\n(section 69648 8)\n(section 0 43)\n(section 0 2136)\n(section 0 557)\n(section 0 250)\n(segment 0 2148 true false true)\n(segment 69016 640 true true false)\n(subarch v8)\n(symbol-chunk 1588 20 1588)\n(symbol-chunk 1536 52 1536)\n(symbol-chunk 1812 84 1812)\n(symbol-value 1588 1588)\n(symbol-value 1616 1616)\n(symbol-value 1664 1664)\n(symbol-value 1728 1728)\n(symbol-value 1808 1808)\n(symbol-value 1896 1896)\n(symbol-value 1536 1536)\n(symbol-value 1812 1812)\n(symbol-value 1408 1408)\n(symbol-value 0 0)\n(system \"\")\n(vendor \"\")\n"), -Attr("abi-name","\"aarch64-linux-gnu-elf\"")]), -Sections([Section(".shstrtab", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x00\x06\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xc0\x1b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x38\x00\x09\x00\x40\x00\x1c\x00\x1b\x00\x06\x00\x00\x00\x04\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x04\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\x08\x00\x00\x00\x00\x00\x00\x64\x08\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x01\x00\x00\x00\x06\x00\x00\x00\x98\x0d\x00\x00\x00\x00\x00\x00\x98\x0d"), -Section(".strtab", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x00\x06\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xc0\x1b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x38\x00\x09\x00\x40\x00\x1c\x00\x1b\x00\x06\x00\x00\x00\x04\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x04\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\x08\x00\x00\x00\x00\x00\x00\x64\x08\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x01\x00\x00\x00\x06\x00\x00\x00\x98\x0d\x00\x00\x00\x00\x00\x00\x98\x0d\x01\x00\x00\x00\x00\x00\x98\x0d\x01\x00\x00\x00\x00\x00\x78\x02\x00\x00\x00\x00\x00\x00\x80\x02\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x02\x00\x00\x00\x06\x00\x00\x00\xa8\x0d\x00\x00\x00\x00\x00\x00\xa8\x0d\x01\x00\x00\x00\x00\x00\xa8\x0d\x01\x00\x00\x00\x00\x00\xf0\x01\x00\x00\x00\x00\x00\x00\xf0\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x04\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x50\xe5\x74\x64\x04\x00\x00\x00\x80\x07\x00\x00\x00\x00\x00\x00\x80\x07\x00\x00\x00\x00\x00\x00\x80\x07\x00\x00\x00\x00\x00\x00\x3c\x00\x00\x00\x00\x00\x00\x00\x3c\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x51\xe5\x74\x64\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x52\xe5\x74\x64\x04\x00\x00\x00\x98\x0d\x00\x00\x00\x00\x00\x00\x98\x0d\x01\x00\x00\x00\x00\x00\x98\x0d\x01\x00\x00\x00\x00\x00\x68\x02\x00\x00\x00\x00\x00\x00\x68\x02\x00\x00\x00"), -Section(".symtab", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x00\x06\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xc0\x1b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x38\x00\x09\x00\x40\x00\x1c\x00\x1b\x00\x06\x00\x00\x00\x04\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x04\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\x08\x00\x00\x00\x00\x00\x00\x64\x08\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x01\x00\x00\x00\x06\x00\x00\x00\x98\x0d\x00\x00\x00\x00\x00\x00\x98\x0d\x01\x00\x00\x00\x00\x00\x98\x0d\x01\x00\x00\x00\x00\x00\x78\x02\x00\x00\x00\x00\x00\x00\x80\x02\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x02\x00\x00\x00\x06\x00\x00\x00\xa8\x0d\x00\x00\x00\x00\x00\x00\xa8\x0d\x01\x00\x00\x00\x00\x00\xa8\x0d\x01\x00\x00\x00\x00\x00\xf0\x01\x00\x00\x00\x00\x00\x00\xf0\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x04\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x50\xe5\x74\x64\x04\x00\x00\x00\x80\x07\x00\x00\x00\x00\x00\x00\x80\x07\x00\x00\x00\x00\x00\x00\x80\x07\x00\x00\x00\x00\x00\x00\x3c\x00\x00\x00\x00\x00\x00\x00\x3c\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x51\xe5\x74\x64\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x52\xe5\x74\x64\x04\x00\x00\x00\x98\x0d\x00\x00\x00\x00\x00\x00\x98\x0d\x01\x00\x00\x00\x00\x00\x98\x0d\x01\x00\x00\x00\x00\x00\x68\x02\x00\x00\x00\x00\x00\x00\x68\x02\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x2f\x6c\x69\x62\x2f\x6c\x64\x2d\x6c\x69\x6e\x75\x78\x2d\x61\x61\x72\x63\x68\x36\x34\x2e\x73\x6f\x2e\x31\x00\x00\x04\x00\x00\x00\x14\x00\x00\x00\x03\x00\x00\x00\x47\x4e\x55\x00\xda\x09\x97\x85\x6d\xcf\xdd\xc9\x47\x1b\x8c\x19\xdc\x1f\x01\x7e\xcc\x81\x7b\x7b\x04\x00\x00\x00\x10\x00\x00\x00\x01\x00\x00\x00\x47\x4e\x55\x00\x00\x00\x00\x00\x03\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x01\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x0b\x00\x80\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x16\x00\x00\x10\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x48\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x22\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x22\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x73\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5f\x5f\x63\x78\x61\x5f\x66\x69\x6e\x61\x6c\x69\x7a\x65\x00\x5f\x5f\x6c\x69\x62\x63\x5f\x73\x74\x61\x72\x74\x5f\x6d\x61\x69\x6e\x00\x61\x62\x6f\x72\x74\x00\x6c\x69\x62\x63\x2e\x73\x6f\x2e\x36\x00\x47\x4c\x49\x42\x43\x5f\x32\x2e\x31\x37\x00\x47\x4c\x49\x42\x43\x5f\x32\x2e\x33\x34\x00\x5f\x49\x54\x4d\x5f\x64\x65\x72\x65\x67\x69\x73\x74\x65\x72\x54\x4d\x43\x6c\x6f\x6e\x65\x54\x61\x62\x6c\x65\x00\x5f\x5f\x67\x6d\x6f\x6e\x5f\x73\x74\x61\x72\x74\x5f\x5f\x00\x5f\x49\x54\x4d\x5f\x72\x65\x67\x69\x73\x74\x65\x72\x54\x4d\x43\x6c\x6f\x6e\x65\x54\x61\x62\x6c\x65\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x01\x00\x03\x00\x01\x00\x03\x00\x01\x00\x01\x00\x02\x00\x28\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x97\x91\x96\x06\x00\x00\x03\x00\x32\x00\x00\x00\x10\x00\x00\x00\xb4\x91\x96\x06\x00\x00\x02\x00\x3d\x00\x00\x00\x00\x00\x00\x00\x98\x0d\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x10\x07\x00\x00\x00\x00\x00\x00\xa0\x0d\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\xc0\x06\x00\x00\x00\x00\x00\x00\xf0\x0f\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x14\x07\x00\x00\x00\x00\x00\x00\x08\x10\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x08\x10\x01\x00\x00\x00\x00\x00\xd8\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe0\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe8\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xf8\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xb0\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xb8\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xc0\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xc8\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1f\x20\x03\xd5\xfd\x7b\xbf\xa9\xfd\x03\x00\x91\x2a\x00\x00\x94\xfd\x7b\xc1\xa8\xc0\x03\x5f\xd6\x00\x00\x00\x00\x00\x00\x00\x00\xf0\x7b\xbf\xa9\x90\x00\x00\x90\x11\xd6\x47\xf9\x10\xa2\x3e\x91\x20\x02\x1f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x90\x00\x00\x90\x11\xda\x47\xf9\x10\xc2\x3e\x91\x20\x02\x1f\xd6\x90\x00\x00\x90\x11\xde\x47\xf9\x10\xe2\x3e\x91\x20\x02\x1f\xd6\x90\x00\x00\x90\x11\xe2\x47\xf9\x10\x02\x3f\x91\x20\x02\x1f\xd6\x90\x00\x00\x90\x11\xe6\x47\xf9\x10\x22\x3f\x91\x20\x02\x1f\xd6\x1f\x20\x03\xd5\x1d\x00\x80\xd2\x1e\x00\x80\xd2\xe5\x03\x00\xaa\xe1\x03\x40\xf9\xe2\x23\x00\x91\xe6\x03\x00\x91\x80\x00\x00\x90\x00\xf8\x47\xf9\x03\x00\x80\xd2\x04\x00\x80\xd2\xe5\xff\xff\x97\xf0\xff\xff\x97\x80\x00\x00\x90\x00\xf4\x47\xf9\x40\x00\x00\xb4\xe8\xff\xff\x17\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x80\x00\x00\xb0\x00\x40\x00\x91\x81\x00\x00\xb0\x21\x40\x00\x91\x3f\x00\x00\xeb\xc0\x00\x00\x54\x81\x00\x00\x90\x21\xec\x47\xf9\x61\x00\x00\xb4\xf0\x03\x01\xaa\x00\x02\x1f\xd6\xc0\x03\x5f\xd6\x80\x00\x00\xb0\x00\x40\x00\x91\x81\x00\x00\xb0\x21\x40\x00\x91\x21\x00\x00\xcb\x22\xfc\x7f\xd3\x41\x0c\x81\x8b\x21\xfc\x41\x93\xc1\x00\x00\xb4\x82\x00\x00\x90\x42\xfc\x47\xf9\x62\x00\x00\xb4\xf0\x03\x02\xaa\x00\x02\x1f\xd6\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\xfd\x7b\xbe\xa9\xfd\x03\x00\x91\xf3\x0b\x00\xf9\x93\x00\x00\xb0\x60\x42\x40\x39\x40\x01\x00\x35\x80\x00\x00\x90\x00\xf0\x47\xf9\x80\x00\x00\xb4\x80\x00\x00\xb0\x00\x04\x40\xf9\xb9\xff\xff\x97\xd8\xff\xff\x97\x20\x00\x80\x52\x60\x42\x00\x39\xf3\x0b\x40\xf9\xfd\x7b\xc2\xa8\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\xdc\xff\xff\x17\xff\x43\x00\xd1\x80\x00\x00\xb0\x00\x48\x00\x91\x00\x00\x40\x39\xe0\x3f\x00\x39\xff\x3f\x00\x39\x80\x00\x00\xb0\x00\x44\x00\x91\xe1\x3f\x40\x39\x01\x00\x00\x39\x80\x00\x00\xb0\x00\x48\x00\x91\x00\x00\x40\x39\xe0\x3f\x00\x39\x80\x00\x00\xb0\x00\x44\x00\x91\xe1\x3f\x40\x39\x01\x00\x00\x39\x00\x00\x80\x52\xff\x43\x00\x91\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\xfd\x7b\xbf\xa9\xfd\x03\x00\x91\xfd\x7b\xc1\xa8\xc0\x03\x5f\xd6\x01\x00\x02\x00\x01\x1b\x03\x3b\x3c\x00\x00\x00\x06\x00\x00\x00\x80\xfe\xff\xff\x54\x00\x00\x00\xd0\xfe\xff\xff\x68\x00\x00\x00\x00\xff\xff\xff\x7c\x00\x00\x00\x40\xff\xff\xff\x90\x00\x00\x00\x90\xff\xff\xff\xb4\x00\x00\x00\x94\xff\xff\xff\xc8\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x01\x7a\x52\x00\x04\x78\x1e\x01\x1b\x0c\x1f\x00\x10\x00\x00\x00\x18\x00\x00\x00\x24\xfe\xff\xff\x34\x00\x00\x00\x00\x41\x07\x1e\x10\x00\x00\x00\x2c\x00\x00\x00\x60\xfe\xff\xff\x30\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x40\x00\x00\x00\x7c\xfe\xff\xff\x3c\x00\x00\x00\x00\x00\x00\x00\x20\x00\x00\x00\x54\x00\x00\x00\xa8\xfe\xff\xff\x48\x00\x00\x00\x00\x41\x0e\x20\x9d\x04\x9e\x03\x42\x93\x02\x4e\xde\xdd\xd3\x0e\x00\x00\x00\x00\x10\x00\x00\x00\x78\x00\x00\x00\xd4\xfe\xff\xff\x04\x00\x00\x00\x00\x00\x00\x00\x14\x00\x00\x00\x8c\x00\x00\x00\xc4\xfe\xff\xff\x54\x00\x00\x00"), -Section(".comment", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x00\x06\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xc0\x1b\x00"), -Section(".interp", 0x238, "\x2f\x6c\x69\x62\x2f\x6c\x64\x2d\x6c\x69\x6e\x75\x78\x2d\x61\x61\x72\x63\x68\x36\x34\x2e\x73\x6f\x2e\x31\x00"), -Section(".note.gnu.build-id", 0x254, "\x04\x00\x00\x00\x14\x00\x00\x00\x03\x00\x00\x00\x47\x4e\x55\x00\xda\x09\x97\x85\x6d\xcf\xdd\xc9\x47\x1b\x8c\x19\xdc\x1f\x01\x7e\xcc\x81\x7b\x7b"), -Section(".note.ABI-tag", 0x278, "\x04\x00\x00\x00\x10\x00\x00\x00\x01\x00\x00\x00\x47\x4e\x55\x00\x00\x00\x00\x00\x03\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00"), -Section(".gnu.hash", 0x298, "\x01\x00\x00\x00\x01\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".dynsym", 0x2B8, "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x0b\x00\x80\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x16\x00\x00\x10\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x48\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x22\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x22\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x73\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".dynstr", 0x390, "\x00\x5f\x5f\x63\x78\x61\x5f\x66\x69\x6e\x61\x6c\x69\x7a\x65\x00\x5f\x5f\x6c\x69\x62\x63\x5f\x73\x74\x61\x72\x74\x5f\x6d\x61\x69\x6e\x00\x61\x62\x6f\x72\x74\x00\x6c\x69\x62\x63\x2e\x73\x6f\x2e\x36\x00\x47\x4c\x49\x42\x43\x5f\x32\x2e\x31\x37\x00\x47\x4c\x49\x42\x43\x5f\x32\x2e\x33\x34\x00\x5f\x49\x54\x4d\x5f\x64\x65\x72\x65\x67\x69\x73\x74\x65\x72\x54\x4d\x43\x6c\x6f\x6e\x65\x54\x61\x62\x6c\x65\x00\x5f\x5f\x67\x6d\x6f\x6e\x5f\x73\x74\x61\x72\x74\x5f\x5f\x00\x5f\x49\x54\x4d\x5f\x72\x65\x67\x69\x73\x74\x65\x72\x54\x4d\x43\x6c\x6f\x6e\x65\x54\x61\x62\x6c\x65\x00"), -Section(".gnu.version", 0x41E, "\x00\x00\x00\x00\x00\x00\x02\x00\x01\x00\x03\x00\x01\x00\x03\x00\x01\x00"), -Section(".gnu.version_r", 0x430, "\x01\x00\x02\x00\x28\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x97\x91\x96\x06\x00\x00\x03\x00\x32\x00\x00\x00\x10\x00\x00\x00\xb4\x91\x96\x06\x00\x00\x02\x00\x3d\x00\x00\x00\x00\x00\x00\x00"), -Section(".rela.dyn", 0x460, "\x98\x0d\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x10\x07\x00\x00\x00\x00\x00\x00\xa0\x0d\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\xc0\x06\x00\x00\x00\x00\x00\x00\xf0\x0f\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x14\x07\x00\x00\x00\x00\x00\x00\x08\x10\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x08\x10\x01\x00\x00\x00\x00\x00\xd8\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe0\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe8\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xf8\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".rela.plt", 0x520, "\xb0\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xb8\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xc0\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xc8\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".init", 0x580, "\x1f\x20\x03\xd5\xfd\x7b\xbf\xa9\xfd\x03\x00\x91\x2a\x00\x00\x94\xfd\x7b\xc1\xa8\xc0\x03\x5f\xd6"), -Section(".plt", 0x5A0, "\xf0\x7b\xbf\xa9\x90\x00\x00\x90\x11\xd6\x47\xf9\x10\xa2\x3e\x91\x20\x02\x1f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x90\x00\x00\x90\x11\xda\x47\xf9\x10\xc2\x3e\x91\x20\x02\x1f\xd6\x90\x00\x00\x90\x11\xde\x47\xf9\x10\xe2\x3e\x91\x20\x02\x1f\xd6\x90\x00\x00\x90\x11\xe2\x47\xf9\x10\x02\x3f\x91\x20\x02\x1f\xd6\x90\x00\x00\x90\x11\xe6\x47\xf9\x10\x22\x3f\x91\x20\x02\x1f\xd6"), -Section(".fini", 0x768, "\x1f\x20\x03\xd5\xfd\x7b\xbf\xa9\xfd\x03\x00\x91\xfd\x7b\xc1\xa8\xc0\x03\x5f\xd6"), -Section(".rodata", 0x77C, "\x01\x00\x02\x00"), -Section(".eh_frame_hdr", 0x780, "\x01\x1b\x03\x3b\x3c\x00\x00\x00\x06\x00\x00\x00\x80\xfe\xff\xff\x54\x00\x00\x00\xd0\xfe\xff\xff\x68\x00\x00\x00\x00\xff\xff\xff\x7c\x00\x00\x00\x40\xff\xff\xff\x90\x00\x00\x00\x90\xff\xff\xff\xb4\x00\x00\x00\x94\xff\xff\xff\xc8\x00\x00\x00"), -Section(".eh_frame", 0x7C0, "\x10\x00\x00\x00\x00\x00\x00\x00\x01\x7a\x52\x00\x04\x78\x1e\x01\x1b\x0c\x1f\x00\x10\x00\x00\x00\x18\x00\x00\x00\x24\xfe\xff\xff\x34\x00\x00\x00\x00\x41\x07\x1e\x10\x00\x00\x00\x2c\x00\x00\x00\x60\xfe\xff\xff\x30\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x40\x00\x00\x00\x7c\xfe\xff\xff\x3c\x00\x00\x00\x00\x00\x00\x00\x20\x00\x00\x00\x54\x00\x00\x00\xa8\xfe\xff\xff\x48\x00\x00\x00\x00\x41\x0e\x20\x9d\x04\x9e\x03\x42\x93\x02\x4e\xde\xdd\xd3\x0e\x00\x00\x00\x00\x10\x00\x00\x00\x78\x00\x00\x00\xd4\xfe\xff\xff\x04\x00\x00\x00\x00\x00\x00\x00\x14\x00\x00\x00\x8c\x00\x00\x00\xc4\xfe\xff\xff\x54\x00\x00\x00\x00\x41\x0e\x10\x53\x0e\x00\x00\x00\x00\x00\x00"), -Section(".fini_array", 0x10DA0, "\xc0\x06\x00\x00\x00\x00\x00\x00"), -Section(".dynamic", 0x10DA8, "\x01\x00\x00\x00\x00\x00\x00\x00\x28\x00\x00\x00\x00\x00\x00\x00\x0c\x00\x00\x00\x00\x00\x00\x00\x80\x05\x00\x00\x00\x00\x00\x00\x0d\x00\x00\x00\x00\x00\x00\x00\x68\x07\x00\x00\x00\x00\x00\x00\x19\x00\x00\x00\x00\x00\x00\x00\x98\x0d\x01\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x1a\x00\x00\x00\x00\x00\x00\x00\xa0\x0d\x01\x00\x00\x00\x00\x00\x1c\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\xf5\xfe\xff\x6f\x00\x00\x00\x00\x98\x02\x00\x00\x00\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x90\x03\x00\x00\x00\x00\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\xb8\x02\x00\x00\x00\x00\x00\x00\x0a\x00\x00\x00\x00\x00\x00\x00\x8d\x00\x00\x00\x00\x00\x00\x00\x0b\x00\x00\x00\x00\x00\x00\x00\x18\x00\x00\x00\x00\x00\x00\x00\x15\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x98\x0f\x01\x00\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x60\x00\x00\x00\x00\x00\x00\x00\x14\x00\x00\x00\x00\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x17\x00\x00\x00\x00\x00\x00\x00\x20\x05\x00\x00\x00\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x60\x04\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\xc0\x00\x00\x00\x00\x00\x00\x00\x09\x00\x00\x00\x00\x00\x00\x00\x18\x00\x00\x00\x00\x00\x00\x00\x1e\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\xfb\xff\xff\x6f\x00\x00\x00\x00\x01\x00\x00\x08\x00\x00\x00\x00\xfe\xff\xff\x6f\x00\x00\x00\x00\x30\x04\x00\x00\x00\x00\x00\x00\xff\xff\xff\x6f\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\xf0\xff\xff\x6f\x00\x00\x00\x00\x1e\x04\x00\x00\x00\x00\x00\x00\xf9\xff\xff\x6f\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".got", 0x10F98, "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xa0\x05\x00\x00\x00\x00\x00\x00\xa0\x05\x00\x00\x00\x00\x00\x00\xa0\x05\x00\x00\x00\x00\x00\x00\xa0\x05\x00\x00\x00\x00\x00\x00\xa8\x0d\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x14\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".data", 0x11000, "\x00\x00\x00\x00\x00\x00\x00\x00\x08\x10\x01\x00\x00\x00\x00\x00"), -Section(".init_array", 0x10D98, "\x10\x07\x00\x00\x00\x00\x00\x00"), -Section(".text", 0x600, "\x1f\x20\x03\xd5\x1d\x00\x80\xd2\x1e\x00\x80\xd2\xe5\x03\x00\xaa\xe1\x03\x40\xf9\xe2\x23\x00\x91\xe6\x03\x00\x91\x80\x00\x00\x90\x00\xf8\x47\xf9\x03\x00\x80\xd2\x04\x00\x80\xd2\xe5\xff\xff\x97\xf0\xff\xff\x97\x80\x00\x00\x90\x00\xf4\x47\xf9\x40\x00\x00\xb4\xe8\xff\xff\x17\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x80\x00\x00\xb0\x00\x40\x00\x91\x81\x00\x00\xb0\x21\x40\x00\x91\x3f\x00\x00\xeb\xc0\x00\x00\x54\x81\x00\x00\x90\x21\xec\x47\xf9\x61\x00\x00\xb4\xf0\x03\x01\xaa\x00\x02\x1f\xd6\xc0\x03\x5f\xd6\x80\x00\x00\xb0\x00\x40\x00\x91\x81\x00\x00\xb0\x21\x40\x00\x91\x21\x00\x00\xcb\x22\xfc\x7f\xd3\x41\x0c\x81\x8b\x21\xfc\x41\x93\xc1\x00\x00\xb4\x82\x00\x00\x90\x42\xfc\x47\xf9\x62\x00\x00\xb4\xf0\x03\x02\xaa\x00\x02\x1f\xd6\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\xfd\x7b\xbe\xa9\xfd\x03\x00\x91\xf3\x0b\x00\xf9\x93\x00\x00\xb0\x60\x42\x40\x39\x40\x01\x00\x35\x80\x00\x00\x90\x00\xf0\x47\xf9\x80\x00\x00\xb4\x80\x00\x00\xb0\x00\x04\x40\xf9\xb9\xff\xff\x97\xd8\xff\xff\x97\x20\x00\x80\x52\x60\x42\x00\x39\xf3\x0b\x40\xf9\xfd\x7b\xc2\xa8\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\xdc\xff\xff\x17\xff\x43\x00\xd1\x80\x00\x00\xb0\x00\x48\x00\x91\x00\x00\x40\x39\xe0\x3f\x00\x39\xff\x3f\x00\x39\x80\x00\x00\xb0\x00\x44\x00\x91\xe1\x3f\x40\x39\x01\x00\x00\x39\x80\x00\x00\xb0\x00\x48\x00\x91\x00\x00\x40\x39\xe0\x3f\x00\x39\x80\x00\x00\xb0\x00\x44\x00\x91\xe1\x3f\x40\x39\x01\x00\x00\x39\x00\x00\x80\x52\xff\x43\x00\x91\xc0\x03\x5f\xd6")]), -Memmap([Annotation(Region(0x0,0x863), Attr("segment","02 0 2148")), -Annotation(Region(0x600,0x633), Attr("symbol","\"_start\"")), -Annotation(Region(0x0,0xF9), Attr("section","\".shstrtab\"")), -Annotation(Region(0x0,0x22C), Attr("section","\".strtab\"")), -Annotation(Region(0x0,0x857), Attr("section","\".symtab\"")), -Annotation(Region(0x0,0x2A), Attr("section","\".comment\"")), -Annotation(Region(0x238,0x252), Attr("section","\".interp\"")), -Annotation(Region(0x254,0x277), Attr("section","\".note.gnu.build-id\"")), -Annotation(Region(0x278,0x297), Attr("section","\".note.ABI-tag\"")), -Annotation(Region(0x298,0x2B3), Attr("section","\".gnu.hash\"")), -Annotation(Region(0x2B8,0x38F), Attr("section","\".dynsym\"")), -Annotation(Region(0x390,0x41C), Attr("section","\".dynstr\"")), -Annotation(Region(0x41E,0x42F), Attr("section","\".gnu.version\"")), -Annotation(Region(0x430,0x45F), Attr("section","\".gnu.version_r\"")), -Annotation(Region(0x460,0x51F), Attr("section","\".rela.dyn\"")), -Annotation(Region(0x520,0x57F), Attr("section","\".rela.plt\"")), -Annotation(Region(0x580,0x597), Attr("section","\".init\"")), -Annotation(Region(0x5A0,0x5FF), Attr("section","\".plt\"")), -Annotation(Region(0x580,0x597), Attr("code-region","()")), -Annotation(Region(0x5A0,0x5FF), Attr("code-region","()")), -Annotation(Region(0x600,0x633), Attr("symbol-info","_start 0x600 52")), -Annotation(Region(0x634,0x647), Attr("symbol","\"call_weak_fn\"")), -Annotation(Region(0x634,0x647), Attr("symbol-info","call_weak_fn 0x634 20")), -Annotation(Region(0x714,0x767), Attr("symbol","\"main\"")), -Annotation(Region(0x714,0x767), Attr("symbol-info","main 0x714 84")), -Annotation(Region(0x768,0x77B), Attr("section","\".fini\"")), -Annotation(Region(0x77C,0x77F), Attr("section","\".rodata\"")), -Annotation(Region(0x780,0x7BB), Attr("section","\".eh_frame_hdr\"")), -Annotation(Region(0x7C0,0x863), Attr("section","\".eh_frame\"")), -Annotation(Region(0x10D98,0x1100F), Attr("segment","03 0x10D98 640")), -Annotation(Region(0x10DA0,0x10DA7), Attr("section","\".fini_array\"")), -Annotation(Region(0x10DA8,0x10F97), Attr("section","\".dynamic\"")), -Annotation(Region(0x10F98,0x10FFF), Attr("section","\".got\"")), -Annotation(Region(0x11000,0x1100F), Attr("section","\".data\"")), -Annotation(Region(0x10D98,0x10D9F), Attr("section","\".init_array\"")), -Annotation(Region(0x600,0x767), Attr("section","\".text\"")), -Annotation(Region(0x600,0x767), Attr("code-region","()")), -Annotation(Region(0x768,0x77B), Attr("code-region","()"))]), -Program(Tid(1_590, "%00000636"), Attrs([]), - Subs([Sub(Tid(1_568, "@__cxa_finalize"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x5D0"), -Attr("stub","()")]), "__cxa_finalize", Args([Arg(Tid(1_591, "%00000637"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("__cxa_finalize_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(954, "@__cxa_finalize"), - Attrs([Attr("address","0x5D0")]), Phis([]), -Defs([Def(Tid(1_202, "%000004b2"), Attrs([Attr("address","0x5D0"), -Attr("insn","adrp x16, #65536")]), Var("R16",Imm(64)), Int(65536,64)), -Def(Tid(1_209, "%000004b9"), Attrs([Attr("address","0x5D4"), -Attr("insn","ldr x17, [x16, #0xfb8]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(4024,64)),LittleEndian(),64)), -Def(Tid(1_215, "%000004bf"), Attrs([Attr("address","0x5D8"), -Attr("insn","add x16, x16, #0xfb8")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(4024,64)))]), Jmps([Call(Tid(1_220, "%000004c4"), - Attrs([Attr("address","0x5DC"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), -Sub(Tid(1_569, "@__do_global_dtors_aux"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x6C0")]), - "__do_global_dtors_aux", Args([Arg(Tid(1_592, "%00000638"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("__do_global_dtors_aux_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(674, "@__do_global_dtors_aux"), - Attrs([Attr("address","0x6C0")]), Phis([]), Defs([Def(Tid(678, "%000002a6"), - Attrs([Attr("address","0x6C0"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("#3",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(18446744073709551584,64))), -Def(Tid(684, "%000002ac"), Attrs([Attr("address","0x6C0"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("#3",Imm(64)),Var("R29",Imm(64)),LittleEndian(),64)), -Def(Tid(690, "%000002b2"), Attrs([Attr("address","0x6C0"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("#3",Imm(64)),Int(8,64)),Var("R30",Imm(64)),LittleEndian(),64)), -Def(Tid(694, "%000002b6"), Attrs([Attr("address","0x6C0"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("R31",Imm(64)), -Var("#3",Imm(64))), Def(Tid(700, "%000002bc"), - Attrs([Attr("address","0x6C4"), Attr("insn","mov x29, sp")]), - Var("R29",Imm(64)), Var("R31",Imm(64))), Def(Tid(708, "%000002c4"), - Attrs([Attr("address","0x6C8"), Attr("insn","str x19, [sp, #0x10]")]), - Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(16,64)),Var("R19",Imm(64)),LittleEndian(),64)), -Def(Tid(713, "%000002c9"), Attrs([Attr("address","0x6CC"), -Attr("insn","adrp x19, #69632")]), Var("R19",Imm(64)), Int(69632,64)), -Def(Tid(720, "%000002d0"), Attrs([Attr("address","0x6D0"), -Attr("insn","ldrb w0, [x19, #0x10]")]), Var("R0",Imm(64)), -UNSIGNED(64,Load(Var("mem",Mem(64,8)),PLUS(Var("R19",Imm(64)),Int(16,64)),LittleEndian(),8)))]), -Jmps([Goto(Tid(727, "%000002d7"), Attrs([Attr("address","0x6D4"), -Attr("insn","cbnz w0, #0x28")]), - NEQ(Extract(31,0,Var("R0",Imm(64))),Int(0,32)), -Direct(Tid(725, "%000002d5"))), Goto(Tid(1_570, "%00000622"), Attrs([]), - Int(1,1), Direct(Tid(899, "%00000383")))])), Blk(Tid(899, "%00000383"), - Attrs([Attr("address","0x6D8")]), Phis([]), Defs([Def(Tid(902, "%00000386"), - Attrs([Attr("address","0x6D8"), Attr("insn","adrp x0, #65536")]), - Var("R0",Imm(64)), Int(65536,64)), Def(Tid(909, "%0000038d"), - Attrs([Attr("address","0x6DC"), Attr("insn","ldr x0, [x0, #0xfe0]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(4064,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(915, "%00000393"), Attrs([Attr("address","0x6E0"), -Attr("insn","cbz x0, #0x10")]), EQ(Var("R0",Imm(64)),Int(0,64)), -Direct(Tid(913, "%00000391"))), Goto(Tid(1_571, "%00000623"), Attrs([]), - Int(1,1), Direct(Tid(938, "%000003aa")))])), Blk(Tid(938, "%000003aa"), - Attrs([Attr("address","0x6E4")]), Phis([]), Defs([Def(Tid(941, "%000003ad"), - Attrs([Attr("address","0x6E4"), Attr("insn","adrp x0, #69632")]), - Var("R0",Imm(64)), Int(69632,64)), Def(Tid(948, "%000003b4"), - Attrs([Attr("address","0x6E8"), Attr("insn","ldr x0, [x0, #0x8]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(953, "%000003b9"), Attrs([Attr("address","0x6EC"), -Attr("insn","bl #-0x11c")]), Var("R30",Imm(64)), Int(1776,64))]), -Jmps([Call(Tid(956, "%000003bc"), Attrs([Attr("address","0x6EC"), -Attr("insn","bl #-0x11c")]), Int(1,1), -(Direct(Tid(1_568, "@__cxa_finalize")),Direct(Tid(913, "%00000391"))))])), -Blk(Tid(913, "%00000391"), Attrs([Attr("address","0x6F0")]), Phis([]), -Defs([Def(Tid(921, "%00000399"), Attrs([Attr("address","0x6F0"), -Attr("insn","bl #-0xa0")]), Var("R30",Imm(64)), Int(1780,64))]), -Jmps([Call(Tid(923, "%0000039b"), Attrs([Attr("address","0x6F0"), -Attr("insn","bl #-0xa0")]), Int(1,1), -(Direct(Tid(1_582, "@deregister_tm_clones")),Direct(Tid(925, "%0000039d"))))])), -Blk(Tid(925, "%0000039d"), Attrs([Attr("address","0x6F4")]), Phis([]), -Defs([Def(Tid(928, "%000003a0"), Attrs([Attr("address","0x6F4"), -Attr("insn","mov w0, #0x1")]), Var("R0",Imm(64)), Int(1,64)), -Def(Tid(936, "%000003a8"), Attrs([Attr("address","0x6F8"), -Attr("insn","strb w0, [x19, #0x10]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R19",Imm(64)),Int(16,64)),Extract(7,0,Var("R0",Imm(64))),LittleEndian(),8))]), -Jmps([Goto(Tid(1_572, "%00000624"), Attrs([]), Int(1,1), -Direct(Tid(725, "%000002d5")))])), Blk(Tid(725, "%000002d5"), - Attrs([Attr("address","0x6FC")]), Phis([]), Defs([Def(Tid(735, "%000002df"), - Attrs([Attr("address","0x6FC"), Attr("insn","ldr x19, [sp, #0x10]")]), - Var("R19",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(16,64)),LittleEndian(),64)), -Def(Tid(742, "%000002e6"), Attrs([Attr("address","0x700"), -Attr("insn","ldp x29, x30, [sp], #0x20")]), Var("R29",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(747, "%000002eb"), Attrs([Attr("address","0x700"), -Attr("insn","ldp x29, x30, [sp], #0x20")]), Var("R30",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(751, "%000002ef"), Attrs([Attr("address","0x700"), -Attr("insn","ldp x29, x30, [sp], #0x20")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(32,64)))]), Jmps([Call(Tid(756, "%000002f4"), - Attrs([Attr("address","0x704"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), Sub(Tid(1_573, "@__libc_start_main"), - Attrs([Attr("c.proto","signed (*)(signed (*)(signed , char** , char** );* main, signed , char** , \nvoid* auxv)"), -Attr("address","0x5C0"), Attr("stub","()")]), "__libc_start_main", - Args([Arg(Tid(1_593, "%00000639"), - Attrs([Attr("c.layout","**[ : 64]"), -Attr("c.data","Top:u64 ptr ptr"), -Attr("c.type","signed (*)(signed , char** , char** );*")]), - Var("__libc_start_main_main",Imm(64)), Var("R0",Imm(64)), In()), -Arg(Tid(1_594, "%0000063a"), Attrs([Attr("c.layout","[signed : 32]"), -Attr("c.data","Top:u32"), Attr("c.type","signed")]), - Var("__libc_start_main_arg2",Imm(32)), LOW(32,Var("R1",Imm(64))), In()), -Arg(Tid(1_595, "%0000063b"), Attrs([Attr("c.layout","**[char : 8]"), -Attr("c.data","Top:u8 ptr ptr"), Attr("c.type","char**")]), - Var("__libc_start_main_arg3",Imm(64)), Var("R2",Imm(64)), Both()), -Arg(Tid(1_596, "%0000063c"), Attrs([Attr("c.layout","*[ : 8]"), -Attr("c.data","{} ptr"), Attr("c.type","void*")]), - Var("__libc_start_main_auxv",Imm(64)), Var("R3",Imm(64)), Both()), -Arg(Tid(1_597, "%0000063d"), Attrs([Attr("c.layout","[signed : 32]"), -Attr("c.data","Top:u32"), Attr("c.type","signed")]), - Var("__libc_start_main_result",Imm(32)), LOW(32,Var("R0",Imm(64))), -Out())]), Blks([Blk(Tid(507, "@__libc_start_main"), - Attrs([Attr("address","0x5C0")]), Phis([]), -Defs([Def(Tid(1_180, "%0000049c"), Attrs([Attr("address","0x5C0"), -Attr("insn","adrp x16, #65536")]), Var("R16",Imm(64)), Int(65536,64)), -Def(Tid(1_187, "%000004a3"), Attrs([Attr("address","0x5C4"), -Attr("insn","ldr x17, [x16, #0xfb0]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(4016,64)),LittleEndian(),64)), -Def(Tid(1_193, "%000004a9"), Attrs([Attr("address","0x5C8"), -Attr("insn","add x16, x16, #0xfb0")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(4016,64)))]), Jmps([Call(Tid(1_198, "%000004ae"), - Attrs([Attr("address","0x5CC"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), Sub(Tid(1_574, "@_fini"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x768")]), - "_fini", Args([Arg(Tid(1_598, "%0000063e"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("_fini_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(31, "@_fini"), - Attrs([Attr("address","0x768")]), Phis([]), Defs([Def(Tid(37, "%00000025"), - Attrs([Attr("address","0x76C"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("#0",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(18446744073709551600,64))), -Def(Tid(43, "%0000002b"), Attrs([Attr("address","0x76C"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("#0",Imm(64)),Var("R29",Imm(64)),LittleEndian(),64)), -Def(Tid(49, "%00000031"), Attrs([Attr("address","0x76C"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("#0",Imm(64)),Int(8,64)),Var("R30",Imm(64)),LittleEndian(),64)), -Def(Tid(53, "%00000035"), Attrs([Attr("address","0x76C"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("R31",Imm(64)), -Var("#0",Imm(64))), Def(Tid(59, "%0000003b"), Attrs([Attr("address","0x770"), -Attr("insn","mov x29, sp")]), Var("R29",Imm(64)), Var("R31",Imm(64))), -Def(Tid(66, "%00000042"), Attrs([Attr("address","0x774"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R29",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(71, "%00000047"), Attrs([Attr("address","0x774"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R30",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(75, "%0000004b"), Attrs([Attr("address","0x774"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(16,64)))]), Jmps([Call(Tid(80, "%00000050"), - Attrs([Attr("address","0x778"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), Sub(Tid(1_575, "@_init"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x580")]), - "_init", Args([Arg(Tid(1_599, "%0000063f"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("_init_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(1_389, "@_init"), - Attrs([Attr("address","0x580")]), Phis([]), -Defs([Def(Tid(1_395, "%00000573"), Attrs([Attr("address","0x584"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("#5",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(18446744073709551600,64))), -Def(Tid(1_401, "%00000579"), Attrs([Attr("address","0x584"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("#5",Imm(64)),Var("R29",Imm(64)),LittleEndian(),64)), -Def(Tid(1_407, "%0000057f"), Attrs([Attr("address","0x584"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("#5",Imm(64)),Int(8,64)),Var("R30",Imm(64)),LittleEndian(),64)), -Def(Tid(1_411, "%00000583"), Attrs([Attr("address","0x584"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("R31",Imm(64)), -Var("#5",Imm(64))), Def(Tid(1_417, "%00000589"), - Attrs([Attr("address","0x588"), Attr("insn","mov x29, sp")]), - Var("R29",Imm(64)), Var("R31",Imm(64))), Def(Tid(1_422, "%0000058e"), - Attrs([Attr("address","0x58C"), Attr("insn","bl #0xa8")]), - Var("R30",Imm(64)), Int(1424,64))]), Jmps([Call(Tid(1_424, "%00000590"), - Attrs([Attr("address","0x58C"), Attr("insn","bl #0xa8")]), Int(1,1), -(Direct(Tid(1_580, "@call_weak_fn")),Direct(Tid(1_426, "%00000592"))))])), -Blk(Tid(1_426, "%00000592"), Attrs([Attr("address","0x590")]), Phis([]), -Defs([Def(Tid(1_431, "%00000597"), Attrs([Attr("address","0x590"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R29",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(1_436, "%0000059c"), Attrs([Attr("address","0x590"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R30",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(1_440, "%000005a0"), Attrs([Attr("address","0x590"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(16,64)))]), Jmps([Call(Tid(1_445, "%000005a5"), - Attrs([Attr("address","0x594"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), Sub(Tid(1_576, "@_start"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x600"), -Attr("stub","()"), Attr("entry-point","()")]), "_start", - Args([Arg(Tid(1_600, "%00000640"), Attrs([Attr("c.layout","[signed : 32]"), -Attr("c.data","Top:u32"), Attr("c.type","signed")]), - Var("_start_result",Imm(32)), LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(444, "@_start"), Attrs([Attr("address","0x600")]), Phis([]), -Defs([Def(Tid(449, "%000001c1"), Attrs([Attr("address","0x604"), -Attr("insn","mov x29, #0x0")]), Var("R29",Imm(64)), Int(0,64)), -Def(Tid(454, "%000001c6"), Attrs([Attr("address","0x608"), -Attr("insn","mov x30, #0x0")]), Var("R30",Imm(64)), Int(0,64)), -Def(Tid(460, "%000001cc"), Attrs([Attr("address","0x60C"), -Attr("insn","mov x5, x0")]), Var("R5",Imm(64)), Var("R0",Imm(64))), -Def(Tid(467, "%000001d3"), Attrs([Attr("address","0x610"), -Attr("insn","ldr x1, [sp]")]), Var("R1",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(473, "%000001d9"), Attrs([Attr("address","0x614"), -Attr("insn","add x2, sp, #0x8")]), Var("R2",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(8,64))), Def(Tid(479, "%000001df"), - Attrs([Attr("address","0x618"), Attr("insn","mov x6, sp")]), - Var("R6",Imm(64)), Var("R31",Imm(64))), Def(Tid(484, "%000001e4"), - Attrs([Attr("address","0x61C"), Attr("insn","adrp x0, #65536")]), - Var("R0",Imm(64)), Int(65536,64)), Def(Tid(491, "%000001eb"), - Attrs([Attr("address","0x620"), Attr("insn","ldr x0, [x0, #0xff0]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(4080,64)),LittleEndian(),64)), -Def(Tid(496, "%000001f0"), Attrs([Attr("address","0x624"), -Attr("insn","mov x3, #0x0")]), Var("R3",Imm(64)), Int(0,64)), -Def(Tid(501, "%000001f5"), Attrs([Attr("address","0x628"), -Attr("insn","mov x4, #0x0")]), Var("R4",Imm(64)), Int(0,64)), -Def(Tid(506, "%000001fa"), Attrs([Attr("address","0x62C"), -Attr("insn","bl #-0x6c")]), Var("R30",Imm(64)), Int(1584,64))]), -Jmps([Call(Tid(509, "%000001fd"), Attrs([Attr("address","0x62C"), -Attr("insn","bl #-0x6c")]), Int(1,1), -(Direct(Tid(1_573, "@__libc_start_main")),Direct(Tid(511, "%000001ff"))))])), -Blk(Tid(511, "%000001ff"), Attrs([Attr("address","0x630")]), Phis([]), -Defs([Def(Tid(514, "%00000202"), Attrs([Attr("address","0x630"), -Attr("insn","bl #-0x40")]), Var("R30",Imm(64)), Int(1588,64))]), -Jmps([Call(Tid(517, "%00000205"), Attrs([Attr("address","0x630"), -Attr("insn","bl #-0x40")]), Int(1,1), -(Direct(Tid(1_579, "@abort")),Direct(Tid(1_577, "%00000629"))))])), -Blk(Tid(1_577, "%00000629"), Attrs([]), Phis([]), Defs([]), -Jmps([Call(Tid(1_578, "%0000062a"), Attrs([]), Int(1,1), -(Direct(Tid(1_580, "@call_weak_fn")),))]))])), Sub(Tid(1_579, "@abort"), - Attrs([Attr("noreturn","()"), Attr("c.proto","void (*)(void)"), -Attr("address","0x5F0"), Attr("stub","()")]), "abort", Args([]), -Blks([Blk(Tid(515, "@abort"), Attrs([Attr("address","0x5F0")]), Phis([]), -Defs([Def(Tid(1_246, "%000004de"), Attrs([Attr("address","0x5F0"), -Attr("insn","adrp x16, #65536")]), Var("R16",Imm(64)), Int(65536,64)), -Def(Tid(1_253, "%000004e5"), Attrs([Attr("address","0x5F4"), -Attr("insn","ldr x17, [x16, #0xfc8]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(4040,64)),LittleEndian(),64)), -Def(Tid(1_259, "%000004eb"), Attrs([Attr("address","0x5F8"), -Attr("insn","add x16, x16, #0xfc8")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(4040,64)))]), Jmps([Call(Tid(1_264, "%000004f0"), - Attrs([Attr("address","0x5FC"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), Sub(Tid(1_580, "@call_weak_fn"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x634")]), - "call_weak_fn", Args([Arg(Tid(1_601, "%00000641"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("call_weak_fn_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(519, "@call_weak_fn"), - Attrs([Attr("address","0x634")]), Phis([]), Defs([Def(Tid(522, "%0000020a"), - Attrs([Attr("address","0x634"), Attr("insn","adrp x0, #65536")]), - Var("R0",Imm(64)), Int(65536,64)), Def(Tid(529, "%00000211"), - Attrs([Attr("address","0x638"), Attr("insn","ldr x0, [x0, #0xfe8]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(4072,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(535, "%00000217"), Attrs([Attr("address","0x63C"), -Attr("insn","cbz x0, #0x8")]), EQ(Var("R0",Imm(64)),Int(0,64)), -Direct(Tid(533, "%00000215"))), Goto(Tid(1_581, "%0000062d"), Attrs([]), - Int(1,1), Direct(Tid(1_018, "%000003fa")))])), Blk(Tid(533, "%00000215"), - Attrs([Attr("address","0x644")]), Phis([]), Defs([]), -Jmps([Call(Tid(541, "%0000021d"), Attrs([Attr("address","0x644"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))])), -Blk(Tid(1_018, "%000003fa"), Attrs([Attr("address","0x640")]), Phis([]), -Defs([]), Jmps([Goto(Tid(1_021, "%000003fd"), Attrs([Attr("address","0x640"), -Attr("insn","b #-0x60")]), Int(1,1), -Direct(Tid(1_019, "@__gmon_start__")))])), Blk(Tid(1_019, "@__gmon_start__"), - Attrs([Attr("address","0x5E0")]), Phis([]), -Defs([Def(Tid(1_224, "%000004c8"), Attrs([Attr("address","0x5E0"), -Attr("insn","adrp x16, #65536")]), Var("R16",Imm(64)), Int(65536,64)), -Def(Tid(1_231, "%000004cf"), Attrs([Attr("address","0x5E4"), -Attr("insn","ldr x17, [x16, #0xfc0]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(4032,64)),LittleEndian(),64)), -Def(Tid(1_237, "%000004d5"), Attrs([Attr("address","0x5E8"), -Attr("insn","add x16, x16, #0xfc0")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(4032,64)))]), Jmps([Call(Tid(1_242, "%000004da"), - Attrs([Attr("address","0x5EC"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), -Sub(Tid(1_582, "@deregister_tm_clones"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x650")]), - "deregister_tm_clones", Args([Arg(Tid(1_602, "%00000642"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("deregister_tm_clones_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(547, "@deregister_tm_clones"), - Attrs([Attr("address","0x650")]), Phis([]), Defs([Def(Tid(550, "%00000226"), - Attrs([Attr("address","0x650"), Attr("insn","adrp x0, #69632")]), - Var("R0",Imm(64)), Int(69632,64)), Def(Tid(556, "%0000022c"), - Attrs([Attr("address","0x654"), Attr("insn","add x0, x0, #0x10")]), - Var("R0",Imm(64)), PLUS(Var("R0",Imm(64)),Int(16,64))), -Def(Tid(561, "%00000231"), Attrs([Attr("address","0x658"), -Attr("insn","adrp x1, #69632")]), Var("R1",Imm(64)), Int(69632,64)), -Def(Tid(567, "%00000237"), Attrs([Attr("address","0x65C"), -Attr("insn","add x1, x1, #0x10")]), Var("R1",Imm(64)), -PLUS(Var("R1",Imm(64)),Int(16,64))), Def(Tid(573, "%0000023d"), - Attrs([Attr("address","0x660"), Attr("insn","cmp x1, x0")]), - Var("#1",Imm(64)), NOT(Var("R0",Imm(64)))), Def(Tid(578, "%00000242"), - Attrs([Attr("address","0x660"), Attr("insn","cmp x1, x0")]), - Var("#2",Imm(64)), PLUS(Var("R1",Imm(64)),NOT(Var("R0",Imm(64))))), -Def(Tid(584, "%00000248"), Attrs([Attr("address","0x660"), -Attr("insn","cmp x1, x0")]), Var("VF",Imm(1)), -NEQ(SIGNED(65,PLUS(Var("#2",Imm(64)),Int(1,64))),PLUS(PLUS(SIGNED(65,Var("R1",Imm(64))),SIGNED(65,Var("#1",Imm(64)))),Int(1,65)))), -Def(Tid(590, "%0000024e"), Attrs([Attr("address","0x660"), -Attr("insn","cmp x1, x0")]), Var("CF",Imm(1)), -NEQ(UNSIGNED(65,PLUS(Var("#2",Imm(64)),Int(1,64))),PLUS(PLUS(UNSIGNED(65,Var("R1",Imm(64))),UNSIGNED(65,Var("#1",Imm(64)))),Int(1,65)))), -Def(Tid(594, "%00000252"), Attrs([Attr("address","0x660"), -Attr("insn","cmp x1, x0")]), Var("ZF",Imm(1)), -EQ(PLUS(Var("#2",Imm(64)),Int(1,64)),Int(0,64))), Def(Tid(598, "%00000256"), - Attrs([Attr("address","0x660"), Attr("insn","cmp x1, x0")]), - Var("NF",Imm(1)), Extract(63,63,PLUS(Var("#2",Imm(64)),Int(1,64))))]), -Jmps([Goto(Tid(604, "%0000025c"), Attrs([Attr("address","0x664"), -Attr("insn","b.eq #0x18")]), EQ(Var("ZF",Imm(1)),Int(1,1)), -Direct(Tid(602, "%0000025a"))), Goto(Tid(1_583, "%0000062f"), Attrs([]), - Int(1,1), Direct(Tid(988, "%000003dc")))])), Blk(Tid(988, "%000003dc"), - Attrs([Attr("address","0x668")]), Phis([]), Defs([Def(Tid(991, "%000003df"), - Attrs([Attr("address","0x668"), Attr("insn","adrp x1, #65536")]), - Var("R1",Imm(64)), Int(65536,64)), Def(Tid(998, "%000003e6"), - Attrs([Attr("address","0x66C"), Attr("insn","ldr x1, [x1, #0xfd8]")]), - Var("R1",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R1",Imm(64)),Int(4056,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(1_003, "%000003eb"), Attrs([Attr("address","0x670"), -Attr("insn","cbz x1, #0xc")]), EQ(Var("R1",Imm(64)),Int(0,64)), -Direct(Tid(602, "%0000025a"))), Goto(Tid(1_584, "%00000630"), Attrs([]), - Int(1,1), Direct(Tid(1_007, "%000003ef")))])), Blk(Tid(602, "%0000025a"), - Attrs([Attr("address","0x67C")]), Phis([]), Defs([]), -Jmps([Call(Tid(610, "%00000262"), Attrs([Attr("address","0x67C"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))])), -Blk(Tid(1_007, "%000003ef"), Attrs([Attr("address","0x674")]), Phis([]), -Defs([Def(Tid(1_011, "%000003f3"), Attrs([Attr("address","0x674"), -Attr("insn","mov x16, x1")]), Var("R16",Imm(64)), Var("R1",Imm(64)))]), -Jmps([Call(Tid(1_016, "%000003f8"), Attrs([Attr("address","0x678"), -Attr("insn","br x16")]), Int(1,1), (Indirect(Var("R16",Imm(64))),))]))])), -Sub(Tid(1_585, "@frame_dummy"), Attrs([Attr("c.proto","signed (*)(void)"), -Attr("address","0x710")]), "frame_dummy", Args([Arg(Tid(1_603, "%00000643"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("frame_dummy_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(762, "@frame_dummy"), - Attrs([Attr("address","0x710")]), Phis([]), Defs([]), -Jmps([Call(Tid(764, "%000002fc"), Attrs([Attr("address","0x710"), -Attr("insn","b #-0x90")]), Int(1,1), -(Direct(Tid(1_587, "@register_tm_clones")),))]))])), Sub(Tid(1_586, "@main"), - Attrs([Attr("c.proto","signed (*)(signed argc, const char** argv)"), -Attr("address","0x714")]), "main", Args([Arg(Tid(1_604, "%00000644"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("main_argc",Imm(32)), -LOW(32,Var("R0",Imm(64))), In()), Arg(Tid(1_605, "%00000645"), - Attrs([Attr("c.layout","**[char : 8]"), Attr("c.data","Top:u8 ptr ptr"), -Attr("c.type"," const char**")]), Var("main_argv",Imm(64)), -Var("R1",Imm(64)), Both()), Arg(Tid(1_606, "%00000646"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("main_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(766, "@main"), - Attrs([Attr("address","0x714")]), Phis([]), Defs([Def(Tid(770, "%00000302"), - Attrs([Attr("address","0x714"), Attr("insn","sub sp, sp, #0x10")]), - Var("R31",Imm(64)), PLUS(Var("R31",Imm(64)),Int(18446744073709551600,64))), -Def(Tid(775, "%00000307"), Attrs([Attr("address","0x718"), -Attr("insn","adrp x0, #69632")]), Var("R0",Imm(64)), Int(69632,64)), -Def(Tid(781, "%0000030d"), Attrs([Attr("address","0x71C"), -Attr("insn","add x0, x0, #0x12")]), Var("R0",Imm(64)), -PLUS(Var("R0",Imm(64)),Int(18,64))), Def(Tid(788, "%00000314"), - Attrs([Attr("address","0x720"), Attr("insn","ldrb w0, [x0]")]), - Var("R0",Imm(64)), -UNSIGNED(64,Load(Var("mem",Mem(64,8)),Var("R0",Imm(64)),LittleEndian(),8))), -Def(Tid(796, "%0000031c"), Attrs([Attr("address","0x724"), -Attr("insn","strb w0, [sp, #0xf]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(15,64)),Extract(7,0,Var("R0",Imm(64))),LittleEndian(),8)), -Def(Tid(803, "%00000323"), Attrs([Attr("address","0x728"), -Attr("insn","strb wzr, [sp, #0xf]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(15,64)),Int(0,8),LittleEndian(),8)), -Def(Tid(808, "%00000328"), Attrs([Attr("address","0x72C"), -Attr("insn","adrp x0, #69632")]), Var("R0",Imm(64)), Int(69632,64)), -Def(Tid(814, "%0000032e"), Attrs([Attr("address","0x730"), -Attr("insn","add x0, x0, #0x11")]), Var("R0",Imm(64)), -PLUS(Var("R0",Imm(64)),Int(17,64))), Def(Tid(821, "%00000335"), - Attrs([Attr("address","0x734"), Attr("insn","ldrb w1, [sp, #0xf]")]), - Var("R1",Imm(64)), -UNSIGNED(64,Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(15,64)),LittleEndian(),8))), -Def(Tid(829, "%0000033d"), Attrs([Attr("address","0x738"), -Attr("insn","strb w1, [x0]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("R0",Imm(64)),Extract(7,0,Var("R1",Imm(64))),LittleEndian(),8)), -Def(Tid(834, "%00000342"), Attrs([Attr("address","0x73C"), -Attr("insn","adrp x0, #69632")]), Var("R0",Imm(64)), Int(69632,64)), -Def(Tid(840, "%00000348"), Attrs([Attr("address","0x740"), -Attr("insn","add x0, x0, #0x12")]), Var("R0",Imm(64)), -PLUS(Var("R0",Imm(64)),Int(18,64))), Def(Tid(847, "%0000034f"), - Attrs([Attr("address","0x744"), Attr("insn","ldrb w0, [x0]")]), - Var("R0",Imm(64)), -UNSIGNED(64,Load(Var("mem",Mem(64,8)),Var("R0",Imm(64)),LittleEndian(),8))), -Def(Tid(855, "%00000357"), Attrs([Attr("address","0x748"), -Attr("insn","strb w0, [sp, #0xf]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(15,64)),Extract(7,0,Var("R0",Imm(64))),LittleEndian(),8)), -Def(Tid(860, "%0000035c"), Attrs([Attr("address","0x74C"), -Attr("insn","adrp x0, #69632")]), Var("R0",Imm(64)), Int(69632,64)), -Def(Tid(866, "%00000362"), Attrs([Attr("address","0x750"), -Attr("insn","add x0, x0, #0x11")]), Var("R0",Imm(64)), -PLUS(Var("R0",Imm(64)),Int(17,64))), Def(Tid(873, "%00000369"), - Attrs([Attr("address","0x754"), Attr("insn","ldrb w1, [sp, #0xf]")]), - Var("R1",Imm(64)), -UNSIGNED(64,Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(15,64)),LittleEndian(),8))), -Def(Tid(881, "%00000371"), Attrs([Attr("address","0x758"), -Attr("insn","strb w1, [x0]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("R0",Imm(64)),Extract(7,0,Var("R1",Imm(64))),LittleEndian(),8)), -Def(Tid(886, "%00000376"), Attrs([Attr("address","0x75C"), -Attr("insn","mov w0, #0x0")]), Var("R0",Imm(64)), Int(0,64)), -Def(Tid(892, "%0000037c"), Attrs([Attr("address","0x760"), -Attr("insn","add sp, sp, #0x10")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(16,64)))]), Jmps([Call(Tid(897, "%00000381"), - Attrs([Attr("address","0x764"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), -Sub(Tid(1_587, "@register_tm_clones"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x680")]), - "register_tm_clones", Args([Arg(Tid(1_607, "%00000647"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("register_tm_clones_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(612, "@register_tm_clones"), Attrs([Attr("address","0x680")]), - Phis([]), Defs([Def(Tid(615, "%00000267"), Attrs([Attr("address","0x680"), -Attr("insn","adrp x0, #69632")]), Var("R0",Imm(64)), Int(69632,64)), -Def(Tid(621, "%0000026d"), Attrs([Attr("address","0x684"), -Attr("insn","add x0, x0, #0x10")]), Var("R0",Imm(64)), -PLUS(Var("R0",Imm(64)),Int(16,64))), Def(Tid(626, "%00000272"), - Attrs([Attr("address","0x688"), Attr("insn","adrp x1, #69632")]), - Var("R1",Imm(64)), Int(69632,64)), Def(Tid(632, "%00000278"), - Attrs([Attr("address","0x68C"), Attr("insn","add x1, x1, #0x10")]), - Var("R1",Imm(64)), PLUS(Var("R1",Imm(64)),Int(16,64))), -Def(Tid(639, "%0000027f"), Attrs([Attr("address","0x690"), -Attr("insn","sub x1, x1, x0")]), Var("R1",Imm(64)), -PLUS(PLUS(Var("R1",Imm(64)),NOT(Var("R0",Imm(64)))),Int(1,64))), -Def(Tid(645, "%00000285"), Attrs([Attr("address","0x694"), -Attr("insn","lsr x2, x1, #63")]), Var("R2",Imm(64)), -Concat(Int(0,63),Extract(63,63,Var("R1",Imm(64))))), -Def(Tid(652, "%0000028c"), Attrs([Attr("address","0x698"), -Attr("insn","add x1, x2, x1, asr #3")]), Var("R1",Imm(64)), -PLUS(Var("R2",Imm(64)),ARSHIFT(Var("R1",Imm(64)),Int(3,3)))), -Def(Tid(658, "%00000292"), Attrs([Attr("address","0x69C"), -Attr("insn","asr x1, x1, #1")]), Var("R1",Imm(64)), -SIGNED(64,Extract(63,1,Var("R1",Imm(64)))))]), -Jmps([Goto(Tid(664, "%00000298"), Attrs([Attr("address","0x6A0"), -Attr("insn","cbz x1, #0x18")]), EQ(Var("R1",Imm(64)),Int(0,64)), -Direct(Tid(662, "%00000296"))), Goto(Tid(1_588, "%00000634"), Attrs([]), - Int(1,1), Direct(Tid(958, "%000003be")))])), Blk(Tid(958, "%000003be"), - Attrs([Attr("address","0x6A4")]), Phis([]), Defs([Def(Tid(961, "%000003c1"), - Attrs([Attr("address","0x6A4"), Attr("insn","adrp x2, #65536")]), - Var("R2",Imm(64)), Int(65536,64)), Def(Tid(968, "%000003c8"), - Attrs([Attr("address","0x6A8"), Attr("insn","ldr x2, [x2, #0xff8]")]), - Var("R2",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R2",Imm(64)),Int(4088,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(973, "%000003cd"), Attrs([Attr("address","0x6AC"), -Attr("insn","cbz x2, #0xc")]), EQ(Var("R2",Imm(64)),Int(0,64)), -Direct(Tid(662, "%00000296"))), Goto(Tid(1_589, "%00000635"), Attrs([]), - Int(1,1), Direct(Tid(977, "%000003d1")))])), Blk(Tid(662, "%00000296"), - Attrs([Attr("address","0x6B8")]), Phis([]), Defs([]), -Jmps([Call(Tid(670, "%0000029e"), Attrs([Attr("address","0x6B8"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))])), -Blk(Tid(977, "%000003d1"), Attrs([Attr("address","0x6B0")]), Phis([]), -Defs([Def(Tid(981, "%000003d5"), Attrs([Attr("address","0x6B0"), -Attr("insn","mov x16, x2")]), Var("R16",Imm(64)), Var("R2",Imm(64)))]), -Jmps([Call(Tid(986, "%000003da"), Attrs([Attr("address","0x6B4"), -Attr("insn","br x16")]), Int(1,1), -(Indirect(Var("R16",Imm(64))),))]))]))]))) \ No newline at end of file diff --git a/src/test/incorrect/basicassign3/gcc/basicassign3.bir b/src/test/incorrect/basicassign3/gcc/basicassign3.bir deleted file mode 100644 index d3e55b0a5..000000000 --- a/src/test/incorrect/basicassign3/gcc/basicassign3.bir +++ /dev/null @@ -1,243 +0,0 @@ -00000636: program -00000620: sub __cxa_finalize(__cxa_finalize_result) -00000637: __cxa_finalize_result :: out u32 = low:32[R0] - -000003ba: -000004b2: R16 := 0x10000 -000004b9: R17 := mem[R16 + 0xFB8, el]:u64 -000004bf: R16 := R16 + 0xFB8 -000004c4: call R17 with noreturn - -00000621: sub __do_global_dtors_aux(__do_global_dtors_aux_result) -00000638: __do_global_dtors_aux_result :: out u32 = low:32[R0] - -000002a2: -000002a6: #3 := R31 - 0x20 -000002ac: mem := mem with [#3, el]:u64 <- R29 -000002b2: mem := mem with [#3 + 8, el]:u64 <- R30 -000002b6: R31 := #3 -000002bc: R29 := R31 -000002c4: mem := mem with [R31 + 0x10, el]:u64 <- R19 -000002c9: R19 := 0x11000 -000002d0: R0 := pad:64[mem[R19 + 0x10]] -000002d7: when 31:0[R0] <> 0 goto %000002d5 -00000622: goto %00000383 - -00000383: -00000386: R0 := 0x10000 -0000038d: R0 := mem[R0 + 0xFE0, el]:u64 -00000393: when R0 = 0 goto %00000391 -00000623: goto %000003aa - -000003aa: -000003ad: R0 := 0x11000 -000003b4: R0 := mem[R0 + 8, el]:u64 -000003b9: R30 := 0x6F0 -000003bc: call @__cxa_finalize with return %00000391 - -00000391: -00000399: R30 := 0x6F4 -0000039b: call @deregister_tm_clones with return %0000039d - -0000039d: -000003a0: R0 := 1 -000003a8: mem := mem with [R19 + 0x10] <- 7:0[R0] -00000624: goto %000002d5 - -000002d5: -000002df: R19 := mem[R31 + 0x10, el]:u64 -000002e6: R29 := mem[R31, el]:u64 -000002eb: R30 := mem[R31 + 8, el]:u64 -000002ef: R31 := R31 + 0x20 -000002f4: call R30 with noreturn - -00000625: sub __libc_start_main(__libc_start_main_main, __libc_start_main_arg2, __libc_start_main_arg3, __libc_start_main_auxv, __libc_start_main_result) -00000639: __libc_start_main_main :: in u64 = R0 -0000063a: __libc_start_main_arg2 :: in u32 = low:32[R1] -0000063b: __libc_start_main_arg3 :: in out u64 = R2 -0000063c: __libc_start_main_auxv :: in out u64 = R3 -0000063d: __libc_start_main_result :: out u32 = low:32[R0] - -000001fb: -0000049c: R16 := 0x10000 -000004a3: R17 := mem[R16 + 0xFB0, el]:u64 -000004a9: R16 := R16 + 0xFB0 -000004ae: call R17 with noreturn - -00000626: sub _fini(_fini_result) -0000063e: _fini_result :: out u32 = low:32[R0] - -0000001f: -00000025: #0 := R31 - 0x10 -0000002b: mem := mem with [#0, el]:u64 <- R29 -00000031: mem := mem with [#0 + 8, el]:u64 <- R30 -00000035: R31 := #0 -0000003b: R29 := R31 -00000042: R29 := mem[R31, el]:u64 -00000047: R30 := mem[R31 + 8, el]:u64 -0000004b: R31 := R31 + 0x10 -00000050: call R30 with noreturn - -00000627: sub _init(_init_result) -0000063f: _init_result :: out u32 = low:32[R0] - -0000056d: -00000573: #5 := R31 - 0x10 -00000579: mem := mem with [#5, el]:u64 <- R29 -0000057f: mem := mem with [#5 + 8, el]:u64 <- R30 -00000583: R31 := #5 -00000589: R29 := R31 -0000058e: R30 := 0x590 -00000590: call @call_weak_fn with return %00000592 - -00000592: -00000597: R29 := mem[R31, el]:u64 -0000059c: R30 := mem[R31 + 8, el]:u64 -000005a0: R31 := R31 + 0x10 -000005a5: call R30 with noreturn - -00000628: sub _start(_start_result) -00000640: _start_result :: out u32 = low:32[R0] - -000001bc: -000001c1: R29 := 0 -000001c6: R30 := 0 -000001cc: R5 := R0 -000001d3: R1 := mem[R31, el]:u64 -000001d9: R2 := R31 + 8 -000001df: R6 := R31 -000001e4: R0 := 0x10000 -000001eb: R0 := mem[R0 + 0xFF0, el]:u64 -000001f0: R3 := 0 -000001f5: R4 := 0 -000001fa: R30 := 0x630 -000001fd: call @__libc_start_main with return %000001ff - -000001ff: -00000202: R30 := 0x634 -00000205: call @abort with return %00000629 - -00000629: -0000062a: call @call_weak_fn with noreturn - -0000062b: sub abort() - - -00000203: -000004de: R16 := 0x10000 -000004e5: R17 := mem[R16 + 0xFC8, el]:u64 -000004eb: R16 := R16 + 0xFC8 -000004f0: call R17 with noreturn - -0000062c: sub call_weak_fn(call_weak_fn_result) -00000641: call_weak_fn_result :: out u32 = low:32[R0] - -00000207: -0000020a: R0 := 0x10000 -00000211: R0 := mem[R0 + 0xFE8, el]:u64 -00000217: when R0 = 0 goto %00000215 -0000062d: goto %000003fa - -00000215: -0000021d: call R30 with noreturn - -000003fa: -000003fd: goto @__gmon_start__ - -000003fb: -000004c8: R16 := 0x10000 -000004cf: R17 := mem[R16 + 0xFC0, el]:u64 -000004d5: R16 := R16 + 0xFC0 -000004da: call R17 with noreturn - -0000062e: sub deregister_tm_clones(deregister_tm_clones_result) -00000642: deregister_tm_clones_result :: out u32 = low:32[R0] - -00000223: -00000226: R0 := 0x11000 -0000022c: R0 := R0 + 0x10 -00000231: R1 := 0x11000 -00000237: R1 := R1 + 0x10 -0000023d: #1 := ~R0 -00000242: #2 := R1 + ~R0 -00000248: VF := extend:65[#2 + 1] <> extend:65[R1] + extend:65[#1] + 1 -0000024e: CF := pad:65[#2 + 1] <> pad:65[R1] + pad:65[#1] + 1 -00000252: ZF := #2 + 1 = 0 -00000256: NF := 63:63[#2 + 1] -0000025c: when ZF goto %0000025a -0000062f: goto %000003dc - -000003dc: -000003df: R1 := 0x10000 -000003e6: R1 := mem[R1 + 0xFD8, el]:u64 -000003eb: when R1 = 0 goto %0000025a -00000630: goto %000003ef - -0000025a: -00000262: call R30 with noreturn - -000003ef: -000003f3: R16 := R1 -000003f8: call R16 with noreturn - -00000631: sub frame_dummy(frame_dummy_result) -00000643: frame_dummy_result :: out u32 = low:32[R0] - -000002fa: -000002fc: call @register_tm_clones with noreturn - -00000632: sub main(main_argc, main_argv, main_result) -00000644: main_argc :: in u32 = low:32[R0] -00000645: main_argv :: in out u64 = R1 -00000646: main_result :: out u32 = low:32[R0] - -000002fe: -00000302: R31 := R31 - 0x10 -00000307: R0 := 0x11000 -0000030d: R0 := R0 + 0x12 -00000314: R0 := pad:64[mem[R0]] -0000031c: mem := mem with [R31 + 0xF] <- 7:0[R0] -00000323: mem := mem with [R31 + 0xF] <- 0 -00000328: R0 := 0x11000 -0000032e: R0 := R0 + 0x11 -00000335: R1 := pad:64[mem[R31 + 0xF]] -0000033d: mem := mem with [R0] <- 7:0[R1] -00000342: R0 := 0x11000 -00000348: R0 := R0 + 0x12 -0000034f: R0 := pad:64[mem[R0]] -00000357: mem := mem with [R31 + 0xF] <- 7:0[R0] -0000035c: R0 := 0x11000 -00000362: R0 := R0 + 0x11 -00000369: R1 := pad:64[mem[R31 + 0xF]] -00000371: mem := mem with [R0] <- 7:0[R1] -00000376: R0 := 0 -0000037c: R31 := R31 + 0x10 -00000381: call R30 with noreturn - -00000633: sub register_tm_clones(register_tm_clones_result) -00000647: register_tm_clones_result :: out u32 = low:32[R0] - -00000264: -00000267: R0 := 0x11000 -0000026d: R0 := R0 + 0x10 -00000272: R1 := 0x11000 -00000278: R1 := R1 + 0x10 -0000027f: R1 := R1 + ~R0 + 1 -00000285: R2 := 0.63:63[R1] -0000028c: R1 := R2 + (R1 ~>> 3) -00000292: R1 := extend:64[63:1[R1]] -00000298: when R1 = 0 goto %00000296 -00000634: goto %000003be - -000003be: -000003c1: R2 := 0x10000 -000003c8: R2 := mem[R2 + 0xFF8, el]:u64 -000003cd: when R2 = 0 goto %00000296 -00000635: goto %000003d1 - -00000296: -0000029e: call R30 with noreturn - -000003d1: -000003d5: R16 := R2 -000003da: call R16 with noreturn diff --git a/src/test/incorrect/basicassign3/gcc/basicassign3.expected b/src/test/incorrect/basicassign3/gcc/basicassign3.expected index b34a624be..28f27700d 100644 --- a/src/test/incorrect/basicassign3/gcc/basicassign3.expected +++ b/src/test/incorrect/basicassign3/gcc/basicassign3.expected @@ -1,22 +1,24 @@ var {:extern} Gamma_R0: bool; var {:extern} Gamma_R1: bool; -var {:extern} Gamma_R31: bool; +var {:extern} Gamma_R2: bool; var {:extern} Gamma_mem: [bv64]bool; -var {:extern} Gamma_stack: [bv64]bool; var {:extern} R0: bv64; var {:extern} R1: bv64; -var {:extern} R31: bv64; +var {:extern} R2: bv64; var {:extern} mem: [bv64]bv8; -var {:extern} stack: [bv64]bv8; const {:extern} $secret_addr: bv64; -axiom ($secret_addr == 69650bv64); +axiom ($secret_addr == 4325393bv64); const {:extern} $z_addr: bv64; -axiom ($z_addr == 69649bv64); +axiom ($z_addr == 4325394bv64); function {:extern} L(mem$in: [bv64]bv8, index: bv64) returns (bool) { (if (index == $secret_addr) then false else (if (index == $z_addr) then true else false)) } function {:extern} {:bvbuiltin "bvadd"} bvadd64(bv64, bv64) returns (bv64); +function {:extern} gamma_load64(gammaMap: [bv64]bool, index: bv64) returns (bool) { + (gammaMap[bvadd64(index, 7bv64)] && (gammaMap[bvadd64(index, 6bv64)] && (gammaMap[bvadd64(index, 5bv64)] && (gammaMap[bvadd64(index, 4bv64)] && (gammaMap[bvadd64(index, 3bv64)] && (gammaMap[bvadd64(index, 2bv64)] && (gammaMap[bvadd64(index, 1bv64)] && gammaMap[index]))))))) +} + function {:extern} gamma_load8(gammaMap: [bv64]bool, index: bv64) returns (bool) { gammaMap[index] } @@ -46,11 +48,7 @@ procedure {:extern} rely(); modifies Gamma_mem, mem; ensures (Gamma_mem == old(Gamma_mem)); ensures (mem == old(mem)); - free ensures (memory_load32_le(mem, 1916bv64) == 131073bv32); - free ensures (memory_load64_le(mem, 69016bv64) == 1808bv64); - free ensures (memory_load64_le(mem, 69024bv64) == 1728bv64); - free ensures (memory_load64_le(mem, 69616bv64) == 1812bv64); - free ensures (memory_load64_le(mem, 69640bv64) == 69640bv64); + free ensures (memory_load32_le(mem, 4196312bv64) == 131073bv32); procedure {:extern} rely_transitive(); modifies Gamma_mem, mem; @@ -68,73 +66,42 @@ procedure {:extern} rely_reflexive(); procedure {:extern} guarantee_reflexive(); modifies Gamma_mem, mem; -procedure main_1812(); - modifies Gamma_R0, Gamma_R1, Gamma_R31, Gamma_mem, Gamma_stack, R0, R1, R31, mem, stack; - free requires (memory_load64_le(mem, 69632bv64) == 0bv64); - free requires (memory_load64_le(mem, 69640bv64) == 69640bv64); - free requires (memory_load32_le(mem, 1916bv64) == 131073bv32); - free requires (memory_load64_le(mem, 69016bv64) == 1808bv64); - free requires (memory_load64_le(mem, 69024bv64) == 1728bv64); - free requires (memory_load64_le(mem, 69616bv64) == 1812bv64); - free requires (memory_load64_le(mem, 69640bv64) == 69640bv64); - free ensures (Gamma_R31 == old(Gamma_R31)); - free ensures (R31 == old(R31)); - free ensures (memory_load32_le(mem, 1916bv64) == 131073bv32); - free ensures (memory_load64_le(mem, 69016bv64) == 1808bv64); - free ensures (memory_load64_le(mem, 69024bv64) == 1728bv64); - free ensures (memory_load64_le(mem, 69616bv64) == 1812bv64); - free ensures (memory_load64_le(mem, 69640bv64) == 69640bv64); +procedure main(); + modifies Gamma_R0, Gamma_R1, Gamma_R2, Gamma_mem, R0, R1, R2, mem; + free requires (memory_load64_le(mem, 4325376bv64) == 0bv64); + free requires (memory_load64_le(mem, 4325384bv64) == 0bv64); + free requires (memory_load32_le(mem, 4196312bv64) == 131073bv32); + free ensures (memory_load32_le(mem, 4196312bv64) == 131073bv32); -implementation main_1812() +implementation main() { - var Gamma_load18: bool; - var Gamma_load19: bool; - var Gamma_load20: bool; - var Gamma_load21: bool; - var load18: bv8; - var load19: bv8; - var load20: bv8; - var load21: bv8; + var $load$14: bv64; + var $load$15: bv64; + var $load$16: bv8; + var Gamma_$load$14: bool; + var Gamma_$load$15: bool; + var Gamma_$load$16: bool; lmain: assume {:captureState "lmain"} true; - R31, Gamma_R31 := bvadd64(R31, 18446744073709551600bv64), Gamma_R31; - R0, Gamma_R0 := 69632bv64, true; - R0, Gamma_R0 := bvadd64(R0, 18bv64), Gamma_R0; + R1, Gamma_R1 := 4321280bv64, true; call rely(); - load18, Gamma_load18 := memory_load8_le(mem, R0), (gamma_load8(Gamma_mem, R0) || L(mem, R0)); - R0, Gamma_R0 := zero_extend56_8(load18), Gamma_load18; - stack, Gamma_stack := memory_store8_le(stack, bvadd64(R31, 15bv64), R0[8:0]), gamma_store8(Gamma_stack, bvadd64(R31, 15bv64), Gamma_R0); - assume {:captureState "%0000031c"} true; - stack, Gamma_stack := memory_store8_le(stack, bvadd64(R31, 15bv64), 0bv8), gamma_store8(Gamma_stack, bvadd64(R31, 15bv64), true); - assume {:captureState "%00000323"} true; - R0, Gamma_R0 := 69632bv64, true; - R0, Gamma_R0 := bvadd64(R0, 17bv64), Gamma_R0; - load19, Gamma_load19 := memory_load8_le(stack, bvadd64(R31, 15bv64)), gamma_load8(Gamma_stack, bvadd64(R31, 15bv64)); - R1, Gamma_R1 := zero_extend56_8(load19), Gamma_load19; + $load$14, Gamma_$load$14 := memory_load64_le(mem, bvadd64(R1, 4080bv64)), (gamma_load64(Gamma_mem, bvadd64(R1, 4080bv64)) || L(mem, bvadd64(R1, 4080bv64))); + R1, Gamma_R1 := $load$14, Gamma_$load$14; + R0, Gamma_R0 := 0bv64, true; + R2, Gamma_R2 := 4321280bv64, true; call rely(); - assert (L(mem, R0) ==> Gamma_R1); - mem, Gamma_mem := memory_store8_le(mem, R0, R1[8:0]), gamma_store8(Gamma_mem, R0, Gamma_R1); - assume {:captureState "%0000033d"} true; - R0, Gamma_R0 := 69632bv64, true; - R0, Gamma_R0 := bvadd64(R0, 18bv64), Gamma_R0; + $load$15, Gamma_$load$15 := memory_load64_le(mem, bvadd64(R2, 4064bv64)), (gamma_load64(Gamma_mem, bvadd64(R2, 4064bv64)) || L(mem, bvadd64(R2, 4064bv64))); + R2, Gamma_R2 := $load$15, Gamma_$load$15; call rely(); - load20, Gamma_load20 := memory_load8_le(mem, R0), (gamma_load8(Gamma_mem, R0) || L(mem, R0)); - R0, Gamma_R0 := zero_extend56_8(load20), Gamma_load20; - stack, Gamma_stack := memory_store8_le(stack, bvadd64(R31, 15bv64), R0[8:0]), gamma_store8(Gamma_stack, bvadd64(R31, 15bv64), Gamma_R0); - assume {:captureState "%00000357"} true; - R0, Gamma_R0 := 69632bv64, true; - R0, Gamma_R0 := bvadd64(R0, 17bv64), Gamma_R0; - load21, Gamma_load21 := memory_load8_le(stack, bvadd64(R31, 15bv64)), gamma_load8(Gamma_stack, bvadd64(R31, 15bv64)); - R1, Gamma_R1 := zero_extend56_8(load21), Gamma_load21; + $load$16, Gamma_$load$16 := memory_load8_le(mem, R1), (gamma_load8(Gamma_mem, R1) || L(mem, R1)); + R1, Gamma_R1 := zero_extend56_8($load$16), Gamma_$load$16; call rely(); - assert (L(mem, R0) ==> Gamma_R1); - mem, Gamma_mem := memory_store8_le(mem, R0, R1[8:0]), gamma_store8(Gamma_mem, R0, Gamma_R1); - assume {:captureState "%00000371"} true; - R0, Gamma_R0 := 0bv64, true; - R31, Gamma_R31 := bvadd64(R31, 16bv64), Gamma_R31; - goto main_1812_basil_return; - main_1812_basil_return: - assume {:captureState "main_1812_basil_return"} true; + assert (L(mem, R2) ==> Gamma_R1); + mem, Gamma_mem := memory_store8_le(mem, R2, R1[8:0]), gamma_store8(Gamma_mem, R2, Gamma_R1); + assume {:captureState "%00000260"} true; + goto main_basil_return; + main_basil_return: + assume {:captureState "main_basil_return"} true; return; } diff --git a/src/test/incorrect/basicassign3/gcc/basicassign3.gts b/src/test/incorrect/basicassign3/gcc/basicassign3.gts deleted file mode 100644 index 9d3979bf9..000000000 Binary files a/src/test/incorrect/basicassign3/gcc/basicassign3.gts and /dev/null differ diff --git a/src/test/incorrect/basicassign3/gcc/basicassign3.md5sum b/src/test/incorrect/basicassign3/gcc/basicassign3.md5sum new file mode 100644 index 000000000..3c322f159 --- /dev/null +++ b/src/test/incorrect/basicassign3/gcc/basicassign3.md5sum @@ -0,0 +1,5 @@ +7fa781205cfcdf3af12f8a6b3d60f7a2 incorrect/basicassign3/gcc/a.out +4d68e8b8d9b11f2ddf434b14c7c6dbda incorrect/basicassign3/gcc/basicassign3.adt +2a928cb6dea0928ffaae3b26eb84aa59 incorrect/basicassign3/gcc/basicassign3.bir +5b61477b59b10bd9e6666d5bb97418ae incorrect/basicassign3/gcc/basicassign3.relf +abb70c6a5e5b5845872d82de3c9fe3af incorrect/basicassign3/gcc/basicassign3.gts diff --git a/src/test/incorrect/basicassign3/gcc/basicassign3.relf b/src/test/incorrect/basicassign3/gcc/basicassign3.relf deleted file mode 100644 index 92b07c874..000000000 --- a/src/test/incorrect/basicassign3/gcc/basicassign3.relf +++ /dev/null @@ -1,122 +0,0 @@ - -Relocation section '.rela.dyn' at offset 0x460 contains 8 entries: - Offset Info Type Symbol's Value Symbol's Name + Addend -0000000000010d98 0000000000000403 R_AARCH64_RELATIVE 710 -0000000000010da0 0000000000000403 R_AARCH64_RELATIVE 6c0 -0000000000010ff0 0000000000000403 R_AARCH64_RELATIVE 714 -0000000000011008 0000000000000403 R_AARCH64_RELATIVE 11008 -0000000000010fd8 0000000400000401 R_AARCH64_GLOB_DAT 0000000000000000 _ITM_deregisterTMCloneTable + 0 -0000000000010fe0 0000000500000401 R_AARCH64_GLOB_DAT 0000000000000000 __cxa_finalize@GLIBC_2.17 + 0 -0000000000010fe8 0000000600000401 R_AARCH64_GLOB_DAT 0000000000000000 __gmon_start__ + 0 -0000000000010ff8 0000000800000401 R_AARCH64_GLOB_DAT 0000000000000000 _ITM_registerTMCloneTable + 0 - -Relocation section '.rela.plt' at offset 0x520 contains 4 entries: - Offset Info Type Symbol's Value Symbol's Name + Addend -0000000000010fb0 0000000300000402 R_AARCH64_JUMP_SLOT 0000000000000000 __libc_start_main@GLIBC_2.34 + 0 -0000000000010fb8 0000000500000402 R_AARCH64_JUMP_SLOT 0000000000000000 __cxa_finalize@GLIBC_2.17 + 0 -0000000000010fc0 0000000600000402 R_AARCH64_JUMP_SLOT 0000000000000000 __gmon_start__ + 0 -0000000000010fc8 0000000700000402 R_AARCH64_JUMP_SLOT 0000000000000000 abort@GLIBC_2.17 + 0 - -Symbol table '.dynsym' contains 9 entries: - Num: Value Size Type Bind Vis Ndx Name - 0: 0000000000000000 0 NOTYPE LOCAL DEFAULT UND - 1: 0000000000000580 0 SECTION LOCAL DEFAULT 11 .init - 2: 0000000000011000 0 SECTION LOCAL DEFAULT 22 .data - 3: 0000000000000000 0 FUNC GLOBAL DEFAULT UND __libc_start_main@GLIBC_2.34 (2) - 4: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_deregisterTMCloneTable - 5: 0000000000000000 0 FUNC WEAK DEFAULT UND __cxa_finalize@GLIBC_2.17 (3) - 6: 0000000000000000 0 NOTYPE WEAK DEFAULT UND __gmon_start__ - 7: 0000000000000000 0 FUNC GLOBAL DEFAULT UND abort@GLIBC_2.17 (3) - 8: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_registerTMCloneTable - -Symbol table '.symtab' contains 89 entries: - Num: Value Size Type Bind Vis Ndx Name - 0: 0000000000000000 0 NOTYPE LOCAL DEFAULT UND - 1: 0000000000000238 0 SECTION LOCAL DEFAULT 1 .interp - 2: 0000000000000254 0 SECTION LOCAL DEFAULT 2 .note.gnu.build-id - 3: 0000000000000278 0 SECTION LOCAL DEFAULT 3 .note.ABI-tag - 4: 0000000000000298 0 SECTION LOCAL DEFAULT 4 .gnu.hash - 5: 00000000000002b8 0 SECTION LOCAL DEFAULT 5 .dynsym - 6: 0000000000000390 0 SECTION LOCAL DEFAULT 6 .dynstr - 7: 000000000000041e 0 SECTION LOCAL DEFAULT 7 .gnu.version - 8: 0000000000000430 0 SECTION LOCAL DEFAULT 8 .gnu.version_r - 9: 0000000000000460 0 SECTION LOCAL DEFAULT 9 .rela.dyn - 10: 0000000000000520 0 SECTION LOCAL DEFAULT 10 .rela.plt - 11: 0000000000000580 0 SECTION LOCAL DEFAULT 11 .init - 12: 00000000000005a0 0 SECTION LOCAL DEFAULT 12 .plt - 13: 0000000000000600 0 SECTION LOCAL DEFAULT 13 .text - 14: 0000000000000768 0 SECTION LOCAL DEFAULT 14 .fini - 15: 000000000000077c 0 SECTION LOCAL DEFAULT 15 .rodata - 16: 0000000000000780 0 SECTION LOCAL DEFAULT 16 .eh_frame_hdr - 17: 00000000000007c0 0 SECTION LOCAL DEFAULT 17 .eh_frame - 18: 0000000000010d98 0 SECTION LOCAL DEFAULT 18 .init_array - 19: 0000000000010da0 0 SECTION LOCAL DEFAULT 19 .fini_array - 20: 0000000000010da8 0 SECTION LOCAL DEFAULT 20 .dynamic - 21: 0000000000010f98 0 SECTION LOCAL DEFAULT 21 .got - 22: 0000000000011000 0 SECTION LOCAL DEFAULT 22 .data - 23: 0000000000011010 0 SECTION LOCAL DEFAULT 23 .bss - 24: 0000000000000000 0 SECTION LOCAL DEFAULT 24 .comment - 25: 0000000000000000 0 FILE LOCAL DEFAULT ABS Scrt1.o - 26: 0000000000000278 0 NOTYPE LOCAL DEFAULT 3 $d - 27: 0000000000000278 32 OBJECT LOCAL DEFAULT 3 __abi_tag - 28: 0000000000000600 0 NOTYPE LOCAL DEFAULT 13 $x - 29: 00000000000007d4 0 NOTYPE LOCAL DEFAULT 17 $d - 30: 000000000000077c 0 NOTYPE LOCAL DEFAULT 15 $d - 31: 0000000000000000 0 FILE LOCAL DEFAULT ABS crti.o - 32: 0000000000000634 0 NOTYPE LOCAL DEFAULT 13 $x - 33: 0000000000000634 20 FUNC LOCAL DEFAULT 13 call_weak_fn - 34: 0000000000000580 0 NOTYPE LOCAL DEFAULT 11 $x - 35: 0000000000000768 0 NOTYPE LOCAL DEFAULT 14 $x - 36: 0000000000000000 0 FILE LOCAL DEFAULT ABS crtn.o - 37: 0000000000000590 0 NOTYPE LOCAL DEFAULT 11 $x - 38: 0000000000000774 0 NOTYPE LOCAL DEFAULT 14 $x - 39: 0000000000000000 0 FILE LOCAL DEFAULT ABS crtstuff.c - 40: 0000000000000650 0 NOTYPE LOCAL DEFAULT 13 $x - 41: 0000000000000650 0 FUNC LOCAL DEFAULT 13 deregister_tm_clones - 42: 0000000000000680 0 FUNC LOCAL DEFAULT 13 register_tm_clones - 43: 0000000000011008 0 NOTYPE LOCAL DEFAULT 22 $d - 44: 00000000000006c0 0 FUNC LOCAL DEFAULT 13 __do_global_dtors_aux - 45: 0000000000011010 1 OBJECT LOCAL DEFAULT 23 completed.0 - 46: 0000000000010da0 0 NOTYPE LOCAL DEFAULT 19 $d - 47: 0000000000010da0 0 OBJECT LOCAL DEFAULT 19 __do_global_dtors_aux_fini_array_entry - 48: 0000000000000710 0 FUNC LOCAL DEFAULT 13 frame_dummy - 49: 0000000000010d98 0 NOTYPE LOCAL DEFAULT 18 $d - 50: 0000000000010d98 0 OBJECT LOCAL DEFAULT 18 __frame_dummy_init_array_entry - 51: 00000000000007e8 0 NOTYPE LOCAL DEFAULT 17 $d - 52: 0000000000011010 0 NOTYPE LOCAL DEFAULT 23 $d - 53: 0000000000000000 0 FILE LOCAL DEFAULT ABS basicassign3.c - 54: 0000000000011011 0 NOTYPE LOCAL DEFAULT 23 $d - 55: 0000000000000714 0 NOTYPE LOCAL DEFAULT 13 $x - 56: 0000000000000848 0 NOTYPE LOCAL DEFAULT 17 $d - 57: 0000000000000000 0 FILE LOCAL DEFAULT ABS crtstuff.c - 58: 0000000000000860 0 NOTYPE LOCAL DEFAULT 17 $d - 59: 0000000000000860 0 OBJECT LOCAL DEFAULT 17 __FRAME_END__ - 60: 0000000000000000 0 FILE LOCAL DEFAULT ABS - 61: 0000000000010da8 0 OBJECT LOCAL DEFAULT ABS _DYNAMIC - 62: 0000000000000780 0 NOTYPE LOCAL DEFAULT 16 __GNU_EH_FRAME_HDR - 63: 0000000000010fd0 0 OBJECT LOCAL DEFAULT ABS _GLOBAL_OFFSET_TABLE_ - 64: 00000000000005a0 0 NOTYPE LOCAL DEFAULT 12 $x - 65: 0000000000000000 0 FUNC GLOBAL DEFAULT UND __libc_start_main@GLIBC_2.34 - 66: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_deregisterTMCloneTable - 67: 0000000000011000 0 NOTYPE WEAK DEFAULT 22 data_start - 68: 0000000000011010 0 NOTYPE GLOBAL DEFAULT 23 __bss_start__ - 69: 0000000000000000 0 FUNC WEAK DEFAULT UND __cxa_finalize@GLIBC_2.17 - 70: 0000000000011018 0 NOTYPE GLOBAL DEFAULT 23 _bss_end__ - 71: 0000000000011010 0 NOTYPE GLOBAL DEFAULT 22 _edata - 72: 0000000000011011 1 OBJECT GLOBAL DEFAULT 23 z - 73: 0000000000000768 0 FUNC GLOBAL HIDDEN 14 _fini - 74: 0000000000011018 0 NOTYPE GLOBAL DEFAULT 23 __bss_end__ - 75: 0000000000011000 0 NOTYPE GLOBAL DEFAULT 22 __data_start - 76: 0000000000000000 0 NOTYPE WEAK DEFAULT UND __gmon_start__ - 77: 0000000000011008 0 OBJECT GLOBAL HIDDEN 22 __dso_handle - 78: 0000000000000000 0 FUNC GLOBAL DEFAULT UND abort@GLIBC_2.17 - 79: 000000000000077c 4 OBJECT GLOBAL DEFAULT 15 _IO_stdin_used - 80: 0000000000011012 1 OBJECT GLOBAL DEFAULT 23 secret - 81: 0000000000011018 0 NOTYPE GLOBAL DEFAULT 23 _end - 82: 0000000000000600 52 FUNC GLOBAL DEFAULT 13 _start - 83: 0000000000011018 0 NOTYPE GLOBAL DEFAULT 23 __end__ - 84: 0000000000011010 0 NOTYPE GLOBAL DEFAULT 23 __bss_start - 85: 0000000000000714 84 FUNC GLOBAL DEFAULT 13 main - 86: 0000000000011010 0 OBJECT GLOBAL HIDDEN 22 __TMC_END__ - 87: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_registerTMCloneTable - 88: 0000000000000580 0 FUNC GLOBAL HIDDEN 11 _init diff --git a/src/test/incorrect/basicassign3/gcc/basicassign3_gtirb.expected b/src/test/incorrect/basicassign3/gcc/basicassign3_gtirb.expected index 303f5e3e4..06c551f8e 100644 --- a/src/test/incorrect/basicassign3/gcc/basicassign3_gtirb.expected +++ b/src/test/incorrect/basicassign3/gcc/basicassign3_gtirb.expected @@ -1,22 +1,24 @@ var {:extern} Gamma_R0: bool; var {:extern} Gamma_R1: bool; -var {:extern} Gamma_R31: bool; +var {:extern} Gamma_R2: bool; var {:extern} Gamma_mem: [bv64]bool; -var {:extern} Gamma_stack: [bv64]bool; var {:extern} R0: bv64; var {:extern} R1: bv64; -var {:extern} R31: bv64; +var {:extern} R2: bv64; var {:extern} mem: [bv64]bv8; -var {:extern} stack: [bv64]bv8; const {:extern} $secret_addr: bv64; -axiom ($secret_addr == 69650bv64); +axiom ($secret_addr == 4325393bv64); const {:extern} $z_addr: bv64; -axiom ($z_addr == 69649bv64); +axiom ($z_addr == 4325394bv64); function {:extern} L(mem$in: [bv64]bv8, index: bv64) returns (bool) { (if (index == $secret_addr) then false else (if (index == $z_addr) then true else false)) } function {:extern} {:bvbuiltin "bvadd"} bvadd64(bv64, bv64) returns (bv64); +function {:extern} gamma_load64(gammaMap: [bv64]bool, index: bv64) returns (bool) { + (gammaMap[bvadd64(index, 7bv64)] && (gammaMap[bvadd64(index, 6bv64)] && (gammaMap[bvadd64(index, 5bv64)] && (gammaMap[bvadd64(index, 4bv64)] && (gammaMap[bvadd64(index, 3bv64)] && (gammaMap[bvadd64(index, 2bv64)] && (gammaMap[bvadd64(index, 1bv64)] && gammaMap[index]))))))) +} + function {:extern} gamma_load8(gammaMap: [bv64]bool, index: bv64) returns (bool) { gammaMap[index] } @@ -47,11 +49,7 @@ procedure {:extern} rely(); modifies Gamma_mem, mem; ensures (Gamma_mem == old(Gamma_mem)); ensures (mem == old(mem)); - free ensures (memory_load32_le(mem, 1916bv64) == 131073bv32); - free ensures (memory_load64_le(mem, 69016bv64) == 1808bv64); - free ensures (memory_load64_le(mem, 69024bv64) == 1728bv64); - free ensures (memory_load64_le(mem, 69616bv64) == 1812bv64); - free ensures (memory_load64_le(mem, 69640bv64) == 69640bv64); + free ensures (memory_load32_le(mem, 4196312bv64) == 131073bv32); procedure {:extern} rely_transitive(); modifies Gamma_mem, mem; @@ -69,73 +67,42 @@ procedure {:extern} rely_reflexive(); procedure {:extern} guarantee_reflexive(); modifies Gamma_mem, mem; -procedure main_1812(); - modifies Gamma_R0, Gamma_R1, Gamma_R31, Gamma_mem, Gamma_stack, R0, R1, R31, mem, stack; - free requires (memory_load64_le(mem, 69632bv64) == 0bv64); - free requires (memory_load64_le(mem, 69640bv64) == 69640bv64); - free requires (memory_load32_le(mem, 1916bv64) == 131073bv32); - free requires (memory_load64_le(mem, 69016bv64) == 1808bv64); - free requires (memory_load64_le(mem, 69024bv64) == 1728bv64); - free requires (memory_load64_le(mem, 69616bv64) == 1812bv64); - free requires (memory_load64_le(mem, 69640bv64) == 69640bv64); - free ensures (Gamma_R31 == old(Gamma_R31)); - free ensures (R31 == old(R31)); - free ensures (memory_load32_le(mem, 1916bv64) == 131073bv32); - free ensures (memory_load64_le(mem, 69016bv64) == 1808bv64); - free ensures (memory_load64_le(mem, 69024bv64) == 1728bv64); - free ensures (memory_load64_le(mem, 69616bv64) == 1812bv64); - free ensures (memory_load64_le(mem, 69640bv64) == 69640bv64); +procedure main(); + modifies Gamma_R0, Gamma_R1, Gamma_R2, Gamma_mem, R0, R1, R2, mem; + free requires (memory_load64_le(mem, 4325376bv64) == 0bv64); + free requires (memory_load64_le(mem, 4325384bv64) == 0bv64); + free requires (memory_load32_le(mem, 4196312bv64) == 131073bv32); + free ensures (memory_load32_le(mem, 4196312bv64) == 131073bv32); -implementation main_1812() +implementation main() { - var Gamma_load10: bool; - var Gamma_load11: bool; - var Gamma_load8: bool; - var Gamma_load9: bool; - var load10: bv8; - var load11: bv8; - var load8: bv8; - var load9: bv8; - main_1812__0__6KyTrn2fQai0rTadNoNzYA: - assume {:captureState "main_1812__0__6KyTrn2fQai0rTadNoNzYA"} true; - R31, Gamma_R31 := bvadd64(R31, 18446744073709551600bv64), Gamma_R31; - R0, Gamma_R0 := 69632bv64, true; - R0, Gamma_R0 := bvadd64(R0, 18bv64), Gamma_R0; + var $load16: bv64; + var $load17: bv64; + var $load18: bv8; + var Gamma_$load16: bool; + var Gamma_$load17: bool; + var Gamma_$load18: bool; + $main$__0__$i2bc6yURTw~Pq2nxe63pQA: + assume {:captureState "$main$__0__$i2bc6yURTw~Pq2nxe63pQA"} true; + R1, Gamma_R1 := 4321280bv64, true; call rely(); - load8, Gamma_load8 := memory_load8_le(mem, R0), (gamma_load8(Gamma_mem, R0) || L(mem, R0)); - R0, Gamma_R0 := zero_extend32_32(zero_extend24_8(load8)), Gamma_load8; - stack, Gamma_stack := memory_store8_le(stack, bvadd64(R31, 15bv64), R0[8:0]), gamma_store8(Gamma_stack, bvadd64(R31, 15bv64), Gamma_R0); - assume {:captureState "1828_0"} true; - stack, Gamma_stack := memory_store8_le(stack, bvadd64(R31, 15bv64), 0bv8), gamma_store8(Gamma_stack, bvadd64(R31, 15bv64), true); - assume {:captureState "1832_0"} true; - R0, Gamma_R0 := 69632bv64, true; - R0, Gamma_R0 := bvadd64(R0, 17bv64), Gamma_R0; - load9, Gamma_load9 := memory_load8_le(stack, bvadd64(R31, 15bv64)), gamma_load8(Gamma_stack, bvadd64(R31, 15bv64)); - R1, Gamma_R1 := zero_extend32_32(zero_extend24_8(load9)), Gamma_load9; + $load16, Gamma_$load16 := memory_load64_le(mem, bvadd64(R1, 4080bv64)), (gamma_load64(Gamma_mem, bvadd64(R1, 4080bv64)) || L(mem, bvadd64(R1, 4080bv64))); + R1, Gamma_R1 := $load16, Gamma_$load16; + R0, Gamma_R0 := 0bv64, true; + R2, Gamma_R2 := 4321280bv64, true; call rely(); - assert (L(mem, R0) ==> Gamma_R1); - mem, Gamma_mem := memory_store8_le(mem, R0, R1[8:0]), gamma_store8(Gamma_mem, R0, Gamma_R1); - assume {:captureState "1848_0"} true; - R0, Gamma_R0 := 69632bv64, true; - R0, Gamma_R0 := bvadd64(R0, 18bv64), Gamma_R0; + $load17, Gamma_$load17 := memory_load64_le(mem, bvadd64(R2, 4064bv64)), (gamma_load64(Gamma_mem, bvadd64(R2, 4064bv64)) || L(mem, bvadd64(R2, 4064bv64))); + R2, Gamma_R2 := $load17, Gamma_$load17; call rely(); - load10, Gamma_load10 := memory_load8_le(mem, R0), (gamma_load8(Gamma_mem, R0) || L(mem, R0)); - R0, Gamma_R0 := zero_extend32_32(zero_extend24_8(load10)), Gamma_load10; - stack, Gamma_stack := memory_store8_le(stack, bvadd64(R31, 15bv64), R0[8:0]), gamma_store8(Gamma_stack, bvadd64(R31, 15bv64), Gamma_R0); - assume {:captureState "1864_0"} true; - R0, Gamma_R0 := 69632bv64, true; - R0, Gamma_R0 := bvadd64(R0, 17bv64), Gamma_R0; - load11, Gamma_load11 := memory_load8_le(stack, bvadd64(R31, 15bv64)), gamma_load8(Gamma_stack, bvadd64(R31, 15bv64)); - R1, Gamma_R1 := zero_extend32_32(zero_extend24_8(load11)), Gamma_load11; + $load18, Gamma_$load18 := memory_load8_le(mem, R1), (gamma_load8(Gamma_mem, R1) || L(mem, R1)); + R1, Gamma_R1 := zero_extend32_32(zero_extend24_8($load18)), Gamma_$load18; call rely(); - assert (L(mem, R0) ==> Gamma_R1); - mem, Gamma_mem := memory_store8_le(mem, R0, R1[8:0]), gamma_store8(Gamma_mem, R0, Gamma_R1); - assume {:captureState "1880_0"} true; - R0, Gamma_R0 := 0bv64, true; - R31, Gamma_R31 := bvadd64(R31, 16bv64), Gamma_R31; - goto main_1812_basil_return; - main_1812_basil_return: - assume {:captureState "main_1812_basil_return"} true; + assert (L(mem, R2) ==> Gamma_R1); + mem, Gamma_mem := memory_store8_le(mem, R2, R1[8:0]), gamma_store8(Gamma_mem, R2, Gamma_R1); + assume {:captureState "4195992$0"} true; + goto main_basil_return; + main_basil_return: + assume {:captureState "main_basil_return"} true; return; } diff --git a/src/test/incorrect/basicassign3/gcc_O2/basicassign3.adt b/src/test/incorrect/basicassign3/gcc_O2/basicassign3.adt deleted file mode 100644 index a9e6c30b6..000000000 --- a/src/test/incorrect/basicassign3/gcc_O2/basicassign3.adt +++ /dev/null @@ -1,494 +0,0 @@ -Project(Attrs([Attr("filename","\"gcc_O2/basicassign3.out\""), -Attr("image-specification","(declare abi (name str))\n(declare arch (name str))\n(declare base-address (addr int))\n(declare bias (off int))\n(declare bits (size int))\n(declare code-region (addr int) (size int) (off int))\n(declare code-start (addr int))\n(declare entry-point (addr int))\n(declare external-reference (addr int) (name str))\n(declare format (name str))\n(declare is-executable (flag bool))\n(declare is-little-endian (flag bool))\n(declare llvm:base-address (addr int))\n(declare llvm:code-entry (name str) (off int) (size int))\n(declare llvm:coff-import-library (name str))\n(declare llvm:coff-virtual-section-header (name str) (addr int) (size int))\n(declare llvm:elf-program-header (name str) (off int) (size int))\n(declare llvm:elf-program-header-flags (name str) (ld bool) (r bool) \n (w bool) (x bool))\n(declare llvm:elf-virtual-program-header (name str) (addr int) (size int))\n(declare llvm:entry-point (addr int))\n(declare llvm:macho-symbol (name str) (value int))\n(declare llvm:name-reference (at int) (name str))\n(declare llvm:relocation (at int) (addr int))\n(declare llvm:section-entry (name str) (addr int) (size int) (off int))\n(declare llvm:section-flags (name str) (r bool) (w bool) (x bool))\n(declare llvm:segment-command (name str) (off int) (size int))\n(declare llvm:segment-command-flags (name str) (r bool) (w bool) (x bool))\n(declare llvm:symbol-entry (name str) (addr int) (size int) (off int)\n (value int))\n(declare llvm:virtual-segment-command (name str) (addr int) (size int))\n(declare mapped (addr int) (size int) (off int))\n(declare named-region (addr int) (size int) (name str))\n(declare named-symbol (addr int) (name str))\n(declare require (name str))\n(declare section (addr int) (size int))\n(declare segment (addr int) (size int) (r bool) (w bool) (x bool))\n(declare subarch (name str))\n(declare symbol-chunk (addr int) (size int) (root int))\n(declare symbol-value (addr int) (value int))\n(declare system (name str))\n(declare vendor (name str))\n\n(abi unknown)\n(arch aarch64)\n(base-address 0)\n(bias 0)\n(bits 64)\n(code-region 1876 20 1876)\n(code-region 1536 340 1536)\n(code-region 1440 96 1440)\n(code-region 1408 24 1408)\n(code-start 1652)\n(code-start 1600)\n(code-start 1536)\n(entry-point 1600)\n(external-reference 69592 _ITM_deregisterTMCloneTable)\n(external-reference 69600 __cxa_finalize)\n(external-reference 69608 __gmon_start__)\n(external-reference 69624 _ITM_registerTMCloneTable)\n(external-reference 69552 __libc_start_main)\n(external-reference 69560 __cxa_finalize)\n(external-reference 69568 __gmon_start__)\n(external-reference 69576 abort)\n(format elf)\n(is-executable true)\n(is-little-endian true)\n(llvm:base-address 0)\n(llvm:code-entry abort 0 0)\n(llvm:code-entry __cxa_finalize 0 0)\n(llvm:code-entry __libc_start_main 0 0)\n(llvm:code-entry _init 1408 0)\n(llvm:code-entry main 1536 24)\n(llvm:code-entry _start 1600 52)\n(llvm:code-entry abort@GLIBC_2.17 0 0)\n(llvm:code-entry _fini 1876 0)\n(llvm:code-entry __cxa_finalize@GLIBC_2.17 0 0)\n(llvm:code-entry __libc_start_main@GLIBC_2.34 0 0)\n(llvm:code-entry frame_dummy 1872 0)\n(llvm:code-entry __do_global_dtors_aux 1792 0)\n(llvm:code-entry register_tm_clones 1728 0)\n(llvm:code-entry deregister_tm_clones 1680 0)\n(llvm:code-entry call_weak_fn 1652 20)\n(llvm:code-entry .fini 1876 20)\n(llvm:code-entry .text 1536 340)\n(llvm:code-entry .plt 1440 96)\n(llvm:code-entry .init 1408 24)\n(llvm:elf-program-header 08 3480 616)\n(llvm:elf-program-header 07 0 0)\n(llvm:elf-program-header 06 1900 60)\n(llvm:elf-program-header 05 596 68)\n(llvm:elf-program-header 04 3496 496)\n(llvm:elf-program-header 03 3480 632)\n(llvm:elf-program-header 02 0 2120)\n(llvm:elf-program-header 01 568 27)\n(llvm:elf-program-header 00 64 504)\n(llvm:elf-program-header-flags 08 false true false false)\n(llvm:elf-program-header-flags 07 false true true false)\n(llvm:elf-program-header-flags 06 false true false false)\n(llvm:elf-program-header-flags 05 false true false false)\n(llvm:elf-program-header-flags 04 false true true false)\n(llvm:elf-program-header-flags 03 true true true false)\n(llvm:elf-program-header-flags 02 true true false true)\n(llvm:elf-program-header-flags 01 false true false false)\n(llvm:elf-program-header-flags 00 false true false false)\n(llvm:elf-virtual-program-header 08 69016 616)\n(llvm:elf-virtual-program-header 07 0 0)\n(llvm:elf-virtual-program-header 06 1900 60)\n(llvm:elf-virtual-program-header 05 596 68)\n(llvm:elf-virtual-program-header 04 69032 496)\n(llvm:elf-virtual-program-header 03 69016 640)\n(llvm:elf-virtual-program-header 02 0 2120)\n(llvm:elf-virtual-program-header 01 568 27)\n(llvm:elf-virtual-program-header 00 64 504)\n(llvm:entry-point 1600)\n(llvm:name-reference 69576 abort)\n(llvm:name-reference 69568 __gmon_start__)\n(llvm:name-reference 69560 __cxa_finalize)\n(llvm:name-reference 69552 __libc_start_main)\n(llvm:name-reference 69624 _ITM_registerTMCloneTable)\n(llvm:name-reference 69608 __gmon_start__)\n(llvm:name-reference 69600 __cxa_finalize)\n(llvm:name-reference 69592 _ITM_deregisterTMCloneTable)\n(llvm:section-entry .shstrtab 0 250 6853)\n(llvm:section-entry .strtab 0 557 6296)\n(llvm:section-entry .symtab 0 2136 4160)\n(llvm:section-entry .comment 0 43 4112)\n(llvm:section-entry .bss 69648 8 4112)\n(llvm:section-entry .data 69632 16 4096)\n(llvm:section-entry .got 69528 104 3992)\n(llvm:section-entry .dynamic 69032 496 3496)\n(llvm:section-entry .fini_array 69024 8 3488)\n(llvm:section-entry .init_array 69016 8 3480)\n(llvm:section-entry .eh_frame 1960 160 1960)\n(llvm:section-entry .eh_frame_hdr 1900 60 1900)\n(llvm:section-entry .rodata 1896 4 1896)\n(llvm:section-entry .fini 1876 20 1876)\n(llvm:section-entry .text 1536 340 1536)\n(llvm:section-entry .plt 1440 96 1440)\n(llvm:section-entry .init 1408 24 1408)\n(llvm:section-entry .rela.plt 1312 96 1312)\n(llvm:section-entry .rela.dyn 1120 192 1120)\n(llvm:section-entry .gnu.version_r 1072 48 1072)\n(llvm:section-entry .gnu.version 1054 18 1054)\n(llvm:section-entry .dynstr 912 141 912)\n(llvm:section-entry .dynsym 696 216 696)\n(llvm:section-entry .gnu.hash 664 28 664)\n(llvm:section-entry .note.ABI-tag 632 32 632)\n(llvm:section-entry .note.gnu.build-id 596 36 596)\n(llvm:section-entry .interp 568 27 568)\n(llvm:section-flags .shstrtab true false false)\n(llvm:section-flags .strtab true false false)\n(llvm:section-flags .symtab true false false)\n(llvm:section-flags .comment true false false)\n(llvm:section-flags .bss true true false)\n(llvm:section-flags .data true true false)\n(llvm:section-flags .got true true false)\n(llvm:section-flags .dynamic true true false)\n(llvm:section-flags .fini_array true true false)\n(llvm:section-flags .init_array true true false)\n(llvm:section-flags .eh_frame true false false)\n(llvm:section-flags .eh_frame_hdr true false false)\n(llvm:section-flags .rodata true false false)\n(llvm:section-flags .fini true false true)\n(llvm:section-flags .text true false true)\n(llvm:section-flags .plt true false true)\n(llvm:section-flags .init true false true)\n(llvm:section-flags .rela.plt true false false)\n(llvm:section-flags .rela.dyn true false false)\n(llvm:section-flags .gnu.version_r true false false)\n(llvm:section-flags .gnu.version true false false)\n(llvm:section-flags .dynstr true false false)\n(llvm:section-flags .dynsym true false false)\n(llvm:section-flags .gnu.hash true false false)\n(llvm:section-flags .note.ABI-tag true false false)\n(llvm:section-flags .note.gnu.build-id true false false)\n(llvm:section-flags .interp true false false)\n(llvm:symbol-entry abort 0 0 0 0)\n(llvm:symbol-entry __cxa_finalize 0 0 0 0)\n(llvm:symbol-entry __libc_start_main 0 0 0 0)\n(llvm:symbol-entry _init 1408 0 1408 1408)\n(llvm:symbol-entry main 1536 24 1536 1536)\n(llvm:symbol-entry _start 1600 52 1600 1600)\n(llvm:symbol-entry abort@GLIBC_2.17 0 0 0 0)\n(llvm:symbol-entry _fini 1876 0 1876 1876)\n(llvm:symbol-entry __cxa_finalize@GLIBC_2.17 0 0 0 0)\n(llvm:symbol-entry __libc_start_main@GLIBC_2.34 0 0 0 0)\n(llvm:symbol-entry frame_dummy 1872 0 1872 1872)\n(llvm:symbol-entry __do_global_dtors_aux 1792 0 1792 1792)\n(llvm:symbol-entry register_tm_clones 1728 0 1728 1728)\n(llvm:symbol-entry deregister_tm_clones 1680 0 1680 1680)\n(llvm:symbol-entry call_weak_fn 1652 20 1652 1652)\n(mapped 0 2120 0)\n(mapped 69016 632 3480)\n(named-region 0 2120 02)\n(named-region 69016 640 03)\n(named-region 568 27 .interp)\n(named-region 596 36 .note.gnu.build-id)\n(named-region 632 32 .note.ABI-tag)\n(named-region 664 28 .gnu.hash)\n(named-region 696 216 .dynsym)\n(named-region 912 141 .dynstr)\n(named-region 1054 18 .gnu.version)\n(named-region 1072 48 .gnu.version_r)\n(named-region 1120 192 .rela.dyn)\n(named-region 1312 96 .rela.plt)\n(named-region 1408 24 .init)\n(named-region 1440 96 .plt)\n(named-region 1536 340 .text)\n(named-region 1876 20 .fini)\n(named-region 1896 4 .rodata)\n(named-region 1900 60 .eh_frame_hdr)\n(named-region 1960 160 .eh_frame)\n(named-region 69016 8 .init_array)\n(named-region 69024 8 .fini_array)\n(named-region 69032 496 .dynamic)\n(named-region 69528 104 .got)\n(named-region 69632 16 .data)\n(named-region 69648 8 .bss)\n(named-region 0 43 .comment)\n(named-region 0 2136 .symtab)\n(named-region 0 557 .strtab)\n(named-region 0 250 .shstrtab)\n(named-symbol 1652 call_weak_fn)\n(named-symbol 1680 deregister_tm_clones)\n(named-symbol 1728 register_tm_clones)\n(named-symbol 1792 __do_global_dtors_aux)\n(named-symbol 1872 frame_dummy)\n(named-symbol 0 __libc_start_main@GLIBC_2.34)\n(named-symbol 0 __cxa_finalize@GLIBC_2.17)\n(named-symbol 1876 _fini)\n(named-symbol 0 abort@GLIBC_2.17)\n(named-symbol 1600 _start)\n(named-symbol 1536 main)\n(named-symbol 1408 _init)\n(named-symbol 0 __libc_start_main)\n(named-symbol 0 __cxa_finalize)\n(named-symbol 0 abort)\n(require libc.so.6)\n(section 568 27)\n(section 596 36)\n(section 632 32)\n(section 664 28)\n(section 696 216)\n(section 912 141)\n(section 1054 18)\n(section 1072 48)\n(section 1120 192)\n(section 1312 96)\n(section 1408 24)\n(section 1440 96)\n(section 1536 340)\n(section 1876 20)\n(section 1896 4)\n(section 1900 60)\n(section 1960 160)\n(section 69016 8)\n(section 69024 8)\n(section 69032 496)\n(section 69528 104)\n(section 69632 16)\n(section 69648 8)\n(section 0 43)\n(section 0 2136)\n(section 0 557)\n(section 0 250)\n(segment 0 2120 true false true)\n(segment 69016 640 true true false)\n(subarch v8)\n(symbol-chunk 1652 20 1652)\n(symbol-chunk 1600 52 1600)\n(symbol-chunk 1536 24 1536)\n(symbol-value 1652 1652)\n(symbol-value 1680 1680)\n(symbol-value 1728 1728)\n(symbol-value 1792 1792)\n(symbol-value 1872 1872)\n(symbol-value 1876 1876)\n(symbol-value 1600 1600)\n(symbol-value 1536 1536)\n(symbol-value 1408 1408)\n(symbol-value 0 0)\n(system \"\")\n(vendor \"\")\n"), -Attr("abi-name","\"aarch64-linux-gnu-elf\"")]), -Sections([Section(".shstrtab", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x40\x06\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xc0\x1b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x38\x00\x09\x00\x40\x00\x1c\x00\x1b\x00\x06\x00\x00\x00\x04\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x04\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x48\x08\x00\x00\x00\x00\x00\x00\x48\x08\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x01\x00\x00\x00\x06\x00\x00\x00\x98\x0d\x00\x00\x00\x00\x00\x00\x98\x0d"), -Section(".strtab", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x40\x06\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xc0\x1b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x38\x00\x09\x00\x40\x00\x1c\x00\x1b\x00\x06\x00\x00\x00\x04\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x04\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x48\x08\x00\x00\x00\x00\x00\x00\x48\x08\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x01\x00\x00\x00\x06\x00\x00\x00\x98\x0d\x00\x00\x00\x00\x00\x00\x98\x0d\x01\x00\x00\x00\x00\x00\x98\x0d\x01\x00\x00\x00\x00\x00\x78\x02\x00\x00\x00\x00\x00\x00\x80\x02\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x02\x00\x00\x00\x06\x00\x00\x00\xa8\x0d\x00\x00\x00\x00\x00\x00\xa8\x0d\x01\x00\x00\x00\x00\x00\xa8\x0d\x01\x00\x00\x00\x00\x00\xf0\x01\x00\x00\x00\x00\x00\x00\xf0\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x04\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x50\xe5\x74\x64\x04\x00\x00\x00\x6c\x07\x00\x00\x00\x00\x00\x00\x6c\x07\x00\x00\x00\x00\x00\x00\x6c\x07\x00\x00\x00\x00\x00\x00\x3c\x00\x00\x00\x00\x00\x00\x00\x3c\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x51\xe5\x74\x64\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x52\xe5\x74\x64\x04\x00\x00\x00\x98\x0d\x00\x00\x00\x00\x00\x00\x98\x0d\x01\x00\x00\x00\x00\x00\x98\x0d\x01\x00\x00\x00\x00\x00\x68\x02\x00\x00\x00\x00\x00\x00\x68\x02\x00\x00\x00"), -Section(".comment", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x40\x06\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xc0\x1b\x00"), -Section(".interp", 0x238, "\x2f\x6c\x69\x62\x2f\x6c\x64\x2d\x6c\x69\x6e\x75\x78\x2d\x61\x61\x72\x63\x68\x36\x34\x2e\x73\x6f\x2e\x31\x00"), -Section(".note.gnu.build-id", 0x254, "\x04\x00\x00\x00\x14\x00\x00\x00\x03\x00\x00\x00\x47\x4e\x55\x00\x34\x85\x98\xfd\xb9\x63\x8c\x87\x45\x4a\x0e\xb9\x2d\x8f\x35\x25\x34\x63\x85\x1b"), -Section(".note.ABI-tag", 0x278, "\x04\x00\x00\x00\x10\x00\x00\x00\x01\x00\x00\x00\x47\x4e\x55\x00\x00\x00\x00\x00\x03\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00"), -Section(".gnu.hash", 0x298, "\x01\x00\x00\x00\x01\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".dynsym", 0x2B8, "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x0b\x00\x80\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x16\x00\x00\x10\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x48\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x22\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x22\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x73\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".dynstr", 0x390, "\x00\x5f\x5f\x63\x78\x61\x5f\x66\x69\x6e\x61\x6c\x69\x7a\x65\x00\x5f\x5f\x6c\x69\x62\x63\x5f\x73\x74\x61\x72\x74\x5f\x6d\x61\x69\x6e\x00\x61\x62\x6f\x72\x74\x00\x6c\x69\x62\x63\x2e\x73\x6f\x2e\x36\x00\x47\x4c\x49\x42\x43\x5f\x32\x2e\x31\x37\x00\x47\x4c\x49\x42\x43\x5f\x32\x2e\x33\x34\x00\x5f\x49\x54\x4d\x5f\x64\x65\x72\x65\x67\x69\x73\x74\x65\x72\x54\x4d\x43\x6c\x6f\x6e\x65\x54\x61\x62\x6c\x65\x00\x5f\x5f\x67\x6d\x6f\x6e\x5f\x73\x74\x61\x72\x74\x5f\x5f\x00\x5f\x49\x54\x4d\x5f\x72\x65\x67\x69\x73\x74\x65\x72\x54\x4d\x43\x6c\x6f\x6e\x65\x54\x61\x62\x6c\x65\x00"), -Section(".gnu.version", 0x41E, "\x00\x00\x00\x00\x00\x00\x02\x00\x01\x00\x03\x00\x01\x00\x03\x00\x01\x00"), -Section(".gnu.version_r", 0x430, "\x01\x00\x02\x00\x28\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x97\x91\x96\x06\x00\x00\x03\x00\x32\x00\x00\x00\x10\x00\x00\x00\xb4\x91\x96\x06\x00\x00\x02\x00\x3d\x00\x00\x00\x00\x00\x00\x00"), -Section(".rela.dyn", 0x460, "\x98\x0d\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x50\x07\x00\x00\x00\x00\x00\x00\xa0\x0d\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\xf0\x0f\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x00\x06\x00\x00\x00\x00\x00\x00\x08\x10\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x08\x10\x01\x00\x00\x00\x00\x00\xd8\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe0\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe8\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xf8\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".rela.plt", 0x520, "\xb0\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xb8\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xc0\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xc8\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".init", 0x580, "\x1f\x20\x03\xd5\xfd\x7b\xbf\xa9\xfd\x03\x00\x91\x3a\x00\x00\x94\xfd\x7b\xc1\xa8\xc0\x03\x5f\xd6"), -Section(".plt", 0x5A0, "\xf0\x7b\xbf\xa9\x90\x00\x00\x90\x11\xd6\x47\xf9\x10\xa2\x3e\x91\x20\x02\x1f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x90\x00\x00\x90\x11\xda\x47\xf9\x10\xc2\x3e\x91\x20\x02\x1f\xd6\x90\x00\x00\x90\x11\xde\x47\xf9\x10\xe2\x3e\x91\x20\x02\x1f\xd6\x90\x00\x00\x90\x11\xe2\x47\xf9\x10\x02\x3f\x91\x20\x02\x1f\xd6\x90\x00\x00\x90\x11\xe6\x47\xf9\x10\x22\x3f\x91\x20\x02\x1f\xd6"), -Section(".fini", 0x754, "\x1f\x20\x03\xd5\xfd\x7b\xbf\xa9\xfd\x03\x00\x91\xfd\x7b\xc1\xa8\xc0\x03\x5f\xd6"), -Section(".rodata", 0x768, "\x01\x00\x02\x00"), -Section(".eh_frame_hdr", 0x76C, "\x01\x1b\x03\x3b\x38\x00\x00\x00\x06\x00\x00\x00\x94\xfe\xff\xff\xc4\x00\x00\x00\xd4\xfe\xff\xff\x50\x00\x00\x00\x24\xff\xff\xff\x64\x00\x00\x00\x54\xff\xff\xff\x78\x00\x00\x00\x94\xff\xff\xff\x8c\x00\x00\x00\xe4\xff\xff\xff\xb0\x00\x00\x00"), -Section(".eh_frame", 0x7A8, "\x10\x00\x00\x00\x00\x00\x00\x00\x01\x7a\x52\x00\x04\x78\x1e\x01\x1b\x0c\x1f\x00\x10\x00\x00\x00\x18\x00\x00\x00\x7c\xfe\xff\xff\x34\x00\x00\x00\x00\x41\x07\x1e\x10\x00\x00\x00\x2c\x00\x00\x00\xb8\xfe\xff\xff\x30\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x40\x00\x00\x00\xd4\xfe\xff\xff\x3c\x00\x00\x00\x00\x00\x00\x00\x20\x00\x00\x00\x54\x00\x00\x00\x00\xff\xff\xff\x48\x00\x00\x00\x00\x41\x0e\x20\x9d\x04\x9e\x03\x42\x93\x02\x4e\xde\xdd\xd3\x0e\x00\x00\x00\x00\x10\x00\x00\x00\x78\x00\x00\x00\x2c\xff\xff\xff\x04\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x8c\x00\x00\x00\xc8\xfd\xff\xff\x18\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".fini_array", 0x10DA0, "\x00\x07\x00\x00\x00\x00\x00\x00"), -Section(".dynamic", 0x10DA8, "\x01\x00\x00\x00\x00\x00\x00\x00\x28\x00\x00\x00\x00\x00\x00\x00\x0c\x00\x00\x00\x00\x00\x00\x00\x80\x05\x00\x00\x00\x00\x00\x00\x0d\x00\x00\x00\x00\x00\x00\x00\x54\x07\x00\x00\x00\x00\x00\x00\x19\x00\x00\x00\x00\x00\x00\x00\x98\x0d\x01\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x1a\x00\x00\x00\x00\x00\x00\x00\xa0\x0d\x01\x00\x00\x00\x00\x00\x1c\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\xf5\xfe\xff\x6f\x00\x00\x00\x00\x98\x02\x00\x00\x00\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x90\x03\x00\x00\x00\x00\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\xb8\x02\x00\x00\x00\x00\x00\x00\x0a\x00\x00\x00\x00\x00\x00\x00\x8d\x00\x00\x00\x00\x00\x00\x00\x0b\x00\x00\x00\x00\x00\x00\x00\x18\x00\x00\x00\x00\x00\x00\x00\x15\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x98\x0f\x01\x00\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x60\x00\x00\x00\x00\x00\x00\x00\x14\x00\x00\x00\x00\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x17\x00\x00\x00\x00\x00\x00\x00\x20\x05\x00\x00\x00\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x60\x04\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\xc0\x00\x00\x00\x00\x00\x00\x00\x09\x00\x00\x00\x00\x00\x00\x00\x18\x00\x00\x00\x00\x00\x00\x00\x1e\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\xfb\xff\xff\x6f\x00\x00\x00\x00\x01\x00\x00\x08\x00\x00\x00\x00\xfe\xff\xff\x6f\x00\x00\x00\x00\x30\x04\x00\x00\x00\x00\x00\x00\xff\xff\xff\x6f\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\xf0\xff\xff\x6f\x00\x00\x00\x00\x1e\x04\x00\x00\x00\x00\x00\x00\xf9\xff\xff\x6f\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".init_array", 0x10D98, "\x50\x07\x00\x00\x00\x00\x00\x00"), -Section(".got", 0x10F98, "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xa0\x05\x00\x00\x00\x00\x00\x00\xa0\x05\x00\x00\x00\x00\x00\x00\xa0\x05\x00\x00\x00\x00\x00\x00\xa0\x05\x00\x00\x00\x00\x00\x00\xa8\x0d\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".data", 0x11000, "\x00\x00\x00\x00\x00\x00\x00\x00\x08\x10\x01\x00\x00\x00\x00\x00"), -Section(".text", 0x600, "\x81\x00\x00\xb0\x22\x44\x00\x91\x00\x00\x80\x52\x42\x04\x40\x39\x22\x44\x00\x39\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1d\x00\x80\xd2\x1e\x00\x80\xd2\xe5\x03\x00\xaa\xe1\x03\x40\xf9\xe2\x23\x00\x91\xe6\x03\x00\x91\x80\x00\x00\x90\x00\xf8\x47\xf9\x03\x00\x80\xd2\x04\x00\x80\xd2\xd5\xff\xff\x97\xe0\xff\xff\x97\x80\x00\x00\x90\x00\xf4\x47\xf9\x40\x00\x00\xb4\xd8\xff\xff\x17\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x80\x00\x00\xb0\x00\x40\x00\x91\x81\x00\x00\xb0\x21\x40\x00\x91\x3f\x00\x00\xeb\xc0\x00\x00\x54\x81\x00\x00\x90\x21\xec\x47\xf9\x61\x00\x00\xb4\xf0\x03\x01\xaa\x00\x02\x1f\xd6\xc0\x03\x5f\xd6\x80\x00\x00\xb0\x00\x40\x00\x91\x81\x00\x00\xb0\x21\x40\x00\x91\x21\x00\x00\xcb\x22\xfc\x7f\xd3\x41\x0c\x81\x8b\x21\xfc\x41\x93\xc1\x00\x00\xb4\x82\x00\x00\x90\x42\xfc\x47\xf9\x62\x00\x00\xb4\xf0\x03\x02\xaa\x00\x02\x1f\xd6\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\xfd\x7b\xbe\xa9\xfd\x03\x00\x91\xf3\x0b\x00\xf9\x93\x00\x00\xb0\x60\x42\x40\x39\x40\x01\x00\x35\x80\x00\x00\x90\x00\xf0\x47\xf9\x80\x00\x00\xb4\x80\x00\x00\xb0\x00\x04\x40\xf9\xa9\xff\xff\x97\xd8\xff\xff\x97\x20\x00\x80\x52\x60\x42\x00\x39\xf3\x0b\x40\xf9\xfd\x7b\xc2\xa8\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\xdc\xff\xff\x17")]), -Memmap([Annotation(Region(0x0,0x847), Attr("segment","02 0 2120")), -Annotation(Region(0x600,0x617), Attr("symbol","\"main\"")), -Annotation(Region(0x0,0xF9), Attr("section","\".shstrtab\"")), -Annotation(Region(0x0,0x22C), Attr("section","\".strtab\"")), -Annotation(Region(0x0,0x2A), Attr("section","\".comment\"")), -Annotation(Region(0x238,0x252), Attr("section","\".interp\"")), -Annotation(Region(0x254,0x277), Attr("section","\".note.gnu.build-id\"")), -Annotation(Region(0x278,0x297), Attr("section","\".note.ABI-tag\"")), -Annotation(Region(0x298,0x2B3), Attr("section","\".gnu.hash\"")), -Annotation(Region(0x2B8,0x38F), Attr("section","\".dynsym\"")), -Annotation(Region(0x390,0x41C), Attr("section","\".dynstr\"")), -Annotation(Region(0x41E,0x42F), Attr("section","\".gnu.version\"")), -Annotation(Region(0x430,0x45F), Attr("section","\".gnu.version_r\"")), -Annotation(Region(0x460,0x51F), Attr("section","\".rela.dyn\"")), -Annotation(Region(0x520,0x57F), Attr("section","\".rela.plt\"")), -Annotation(Region(0x580,0x597), Attr("section","\".init\"")), -Annotation(Region(0x5A0,0x5FF), Attr("section","\".plt\"")), -Annotation(Region(0x580,0x597), Attr("code-region","()")), -Annotation(Region(0x5A0,0x5FF), Attr("code-region","()")), -Annotation(Region(0x600,0x617), Attr("symbol-info","main 0x600 24")), -Annotation(Region(0x640,0x673), Attr("symbol","\"_start\"")), -Annotation(Region(0x640,0x673), Attr("symbol-info","_start 0x640 52")), -Annotation(Region(0x674,0x687), Attr("symbol","\"call_weak_fn\"")), -Annotation(Region(0x674,0x687), Attr("symbol-info","call_weak_fn 0x674 20")), -Annotation(Region(0x754,0x767), Attr("section","\".fini\"")), -Annotation(Region(0x768,0x76B), Attr("section","\".rodata\"")), -Annotation(Region(0x76C,0x7A7), Attr("section","\".eh_frame_hdr\"")), -Annotation(Region(0x7A8,0x847), Attr("section","\".eh_frame\"")), -Annotation(Region(0x10D98,0x1100F), Attr("segment","03 0x10D98 640")), -Annotation(Region(0x10DA0,0x10DA7), Attr("section","\".fini_array\"")), -Annotation(Region(0x10DA8,0x10F97), Attr("section","\".dynamic\"")), -Annotation(Region(0x10D98,0x10D9F), Attr("section","\".init_array\"")), -Annotation(Region(0x10F98,0x10FFF), Attr("section","\".got\"")), -Annotation(Region(0x11000,0x1100F), Attr("section","\".data\"")), -Annotation(Region(0x600,0x753), Attr("section","\".text\"")), -Annotation(Region(0x600,0x753), Attr("code-region","()")), -Annotation(Region(0x754,0x767), Attr("code-region","()"))]), -Program(Tid(1_483, "%000005cb"), Attrs([]), - Subs([Sub(Tid(1_461, "@__cxa_finalize"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x5D0"), -Attr("stub","()")]), "__cxa_finalize", Args([Arg(Tid(1_484, "%000005cc"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("__cxa_finalize_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(857, "@__cxa_finalize"), - Attrs([Attr("address","0x5D0")]), Phis([]), -Defs([Def(Tid(1_105, "%00000451"), Attrs([Attr("address","0x5D0"), -Attr("insn","adrp x16, #65536")]), Var("R16",Imm(64)), Int(65536,64)), -Def(Tid(1_112, "%00000458"), Attrs([Attr("address","0x5D4"), -Attr("insn","ldr x17, [x16, #0xfb8]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(4024,64)),LittleEndian(),64)), -Def(Tid(1_118, "%0000045e"), Attrs([Attr("address","0x5D8"), -Attr("insn","add x16, x16, #0xfb8")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(4024,64)))]), Jmps([Call(Tid(1_123, "%00000463"), - Attrs([Attr("address","0x5DC"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), -Sub(Tid(1_462, "@__do_global_dtors_aux"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x700")]), - "__do_global_dtors_aux", Args([Arg(Tid(1_485, "%000005cd"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("__do_global_dtors_aux_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(710, "@__do_global_dtors_aux"), - Attrs([Attr("address","0x700")]), Phis([]), Defs([Def(Tid(714, "%000002ca"), - Attrs([Attr("address","0x700"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("#3",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(18446744073709551584,64))), -Def(Tid(720, "%000002d0"), Attrs([Attr("address","0x700"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("#3",Imm(64)),Var("R29",Imm(64)),LittleEndian(),64)), -Def(Tid(726, "%000002d6"), Attrs([Attr("address","0x700"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("#3",Imm(64)),Int(8,64)),Var("R30",Imm(64)),LittleEndian(),64)), -Def(Tid(730, "%000002da"), Attrs([Attr("address","0x700"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("R31",Imm(64)), -Var("#3",Imm(64))), Def(Tid(736, "%000002e0"), - Attrs([Attr("address","0x704"), Attr("insn","mov x29, sp")]), - Var("R29",Imm(64)), Var("R31",Imm(64))), Def(Tid(744, "%000002e8"), - Attrs([Attr("address","0x708"), Attr("insn","str x19, [sp, #0x10]")]), - Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(16,64)),Var("R19",Imm(64)),LittleEndian(),64)), -Def(Tid(749, "%000002ed"), Attrs([Attr("address","0x70C"), -Attr("insn","adrp x19, #69632")]), Var("R19",Imm(64)), Int(69632,64)), -Def(Tid(756, "%000002f4"), Attrs([Attr("address","0x710"), -Attr("insn","ldrb w0, [x19, #0x10]")]), Var("R0",Imm(64)), -UNSIGNED(64,Load(Var("mem",Mem(64,8)),PLUS(Var("R19",Imm(64)),Int(16,64)),LittleEndian(),8)))]), -Jmps([Goto(Tid(763, "%000002fb"), Attrs([Attr("address","0x714"), -Attr("insn","cbnz w0, #0x28")]), - NEQ(Extract(31,0,Var("R0",Imm(64))),Int(0,32)), -Direct(Tid(761, "%000002f9"))), Goto(Tid(1_463, "%000005b7"), Attrs([]), - Int(1,1), Direct(Tid(802, "%00000322")))])), Blk(Tid(802, "%00000322"), - Attrs([Attr("address","0x718")]), Phis([]), Defs([Def(Tid(805, "%00000325"), - Attrs([Attr("address","0x718"), Attr("insn","adrp x0, #65536")]), - Var("R0",Imm(64)), Int(65536,64)), Def(Tid(812, "%0000032c"), - Attrs([Attr("address","0x71C"), Attr("insn","ldr x0, [x0, #0xfe0]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(4064,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(818, "%00000332"), Attrs([Attr("address","0x720"), -Attr("insn","cbz x0, #0x10")]), EQ(Var("R0",Imm(64)),Int(0,64)), -Direct(Tid(816, "%00000330"))), Goto(Tid(1_464, "%000005b8"), Attrs([]), - Int(1,1), Direct(Tid(841, "%00000349")))])), Blk(Tid(841, "%00000349"), - Attrs([Attr("address","0x724")]), Phis([]), Defs([Def(Tid(844, "%0000034c"), - Attrs([Attr("address","0x724"), Attr("insn","adrp x0, #69632")]), - Var("R0",Imm(64)), Int(69632,64)), Def(Tid(851, "%00000353"), - Attrs([Attr("address","0x728"), Attr("insn","ldr x0, [x0, #0x8]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(856, "%00000358"), Attrs([Attr("address","0x72C"), -Attr("insn","bl #-0x15c")]), Var("R30",Imm(64)), Int(1840,64))]), -Jmps([Call(Tid(859, "%0000035b"), Attrs([Attr("address","0x72C"), -Attr("insn","bl #-0x15c")]), Int(1,1), -(Direct(Tid(1_461, "@__cxa_finalize")),Direct(Tid(816, "%00000330"))))])), -Blk(Tid(816, "%00000330"), Attrs([Attr("address","0x730")]), Phis([]), -Defs([Def(Tid(824, "%00000338"), Attrs([Attr("address","0x730"), -Attr("insn","bl #-0xa0")]), Var("R30",Imm(64)), Int(1844,64))]), -Jmps([Call(Tid(826, "%0000033a"), Attrs([Attr("address","0x730"), -Attr("insn","bl #-0xa0")]), Int(1,1), -(Direct(Tid(1_475, "@deregister_tm_clones")),Direct(Tid(828, "%0000033c"))))])), -Blk(Tid(828, "%0000033c"), Attrs([Attr("address","0x734")]), Phis([]), -Defs([Def(Tid(831, "%0000033f"), Attrs([Attr("address","0x734"), -Attr("insn","mov w0, #0x1")]), Var("R0",Imm(64)), Int(1,64)), -Def(Tid(839, "%00000347"), Attrs([Attr("address","0x738"), -Attr("insn","strb w0, [x19, #0x10]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R19",Imm(64)),Int(16,64)),Extract(7,0,Var("R0",Imm(64))),LittleEndian(),8))]), -Jmps([Goto(Tid(1_465, "%000005b9"), Attrs([]), Int(1,1), -Direct(Tid(761, "%000002f9")))])), Blk(Tid(761, "%000002f9"), - Attrs([Attr("address","0x73C")]), Phis([]), Defs([Def(Tid(771, "%00000303"), - Attrs([Attr("address","0x73C"), Attr("insn","ldr x19, [sp, #0x10]")]), - Var("R19",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(16,64)),LittleEndian(),64)), -Def(Tid(778, "%0000030a"), Attrs([Attr("address","0x740"), -Attr("insn","ldp x29, x30, [sp], #0x20")]), Var("R29",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(783, "%0000030f"), Attrs([Attr("address","0x740"), -Attr("insn","ldp x29, x30, [sp], #0x20")]), Var("R30",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(787, "%00000313"), Attrs([Attr("address","0x740"), -Attr("insn","ldp x29, x30, [sp], #0x20")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(32,64)))]), Jmps([Call(Tid(792, "%00000318"), - Attrs([Attr("address","0x744"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), Sub(Tid(1_466, "@__libc_start_main"), - Attrs([Attr("c.proto","signed (*)(signed (*)(signed , char** , char** );* main, signed , char** , \nvoid* auxv)"), -Attr("address","0x5C0"), Attr("stub","()")]), "__libc_start_main", - Args([Arg(Tid(1_486, "%000005ce"), - Attrs([Attr("c.layout","**[ : 64]"), -Attr("c.data","Top:u64 ptr ptr"), -Attr("c.type","signed (*)(signed , char** , char** );*")]), - Var("__libc_start_main_main",Imm(64)), Var("R0",Imm(64)), In()), -Arg(Tid(1_487, "%000005cf"), Attrs([Attr("c.layout","[signed : 32]"), -Attr("c.data","Top:u32"), Attr("c.type","signed")]), - Var("__libc_start_main_arg2",Imm(32)), LOW(32,Var("R1",Imm(64))), In()), -Arg(Tid(1_488, "%000005d0"), Attrs([Attr("c.layout","**[char : 8]"), -Attr("c.data","Top:u8 ptr ptr"), Attr("c.type","char**")]), - Var("__libc_start_main_arg3",Imm(64)), Var("R2",Imm(64)), Both()), -Arg(Tid(1_489, "%000005d1"), Attrs([Attr("c.layout","*[ : 8]"), -Attr("c.data","{} ptr"), Attr("c.type","void*")]), - Var("__libc_start_main_auxv",Imm(64)), Var("R3",Imm(64)), Both()), -Arg(Tid(1_490, "%000005d2"), Attrs([Attr("c.layout","[signed : 32]"), -Attr("c.data","Top:u32"), Attr("c.type","signed")]), - Var("__libc_start_main_result",Imm(32)), LOW(32,Var("R0",Imm(64))), -Out())]), Blks([Blk(Tid(543, "@__libc_start_main"), - Attrs([Attr("address","0x5C0")]), Phis([]), -Defs([Def(Tid(1_083, "%0000043b"), Attrs([Attr("address","0x5C0"), -Attr("insn","adrp x16, #65536")]), Var("R16",Imm(64)), Int(65536,64)), -Def(Tid(1_090, "%00000442"), Attrs([Attr("address","0x5C4"), -Attr("insn","ldr x17, [x16, #0xfb0]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(4016,64)),LittleEndian(),64)), -Def(Tid(1_096, "%00000448"), Attrs([Attr("address","0x5C8"), -Attr("insn","add x16, x16, #0xfb0")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(4016,64)))]), Jmps([Call(Tid(1_101, "%0000044d"), - Attrs([Attr("address","0x5CC"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), Sub(Tid(1_467, "@_fini"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x754")]), - "_fini", Args([Arg(Tid(1_491, "%000005d3"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("_fini_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(31, "@_fini"), - Attrs([Attr("address","0x754")]), Phis([]), Defs([Def(Tid(37, "%00000025"), - Attrs([Attr("address","0x758"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("#0",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(18446744073709551600,64))), -Def(Tid(43, "%0000002b"), Attrs([Attr("address","0x758"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("#0",Imm(64)),Var("R29",Imm(64)),LittleEndian(),64)), -Def(Tid(49, "%00000031"), Attrs([Attr("address","0x758"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("#0",Imm(64)),Int(8,64)),Var("R30",Imm(64)),LittleEndian(),64)), -Def(Tid(53, "%00000035"), Attrs([Attr("address","0x758"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("R31",Imm(64)), -Var("#0",Imm(64))), Def(Tid(59, "%0000003b"), Attrs([Attr("address","0x75C"), -Attr("insn","mov x29, sp")]), Var("R29",Imm(64)), Var("R31",Imm(64))), -Def(Tid(66, "%00000042"), Attrs([Attr("address","0x760"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R29",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(71, "%00000047"), Attrs([Attr("address","0x760"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R30",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(75, "%0000004b"), Attrs([Attr("address","0x760"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(16,64)))]), Jmps([Call(Tid(80, "%00000050"), - Attrs([Attr("address","0x764"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), Sub(Tid(1_468, "@_init"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x580")]), - "_init", Args([Arg(Tid(1_492, "%000005d4"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("_init_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(1_287, "@_init"), - Attrs([Attr("address","0x580")]), Phis([]), -Defs([Def(Tid(1_293, "%0000050d"), Attrs([Attr("address","0x584"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("#5",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(18446744073709551600,64))), -Def(Tid(1_299, "%00000513"), Attrs([Attr("address","0x584"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("#5",Imm(64)),Var("R29",Imm(64)),LittleEndian(),64)), -Def(Tid(1_305, "%00000519"), Attrs([Attr("address","0x584"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("#5",Imm(64)),Int(8,64)),Var("R30",Imm(64)),LittleEndian(),64)), -Def(Tid(1_309, "%0000051d"), Attrs([Attr("address","0x584"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("R31",Imm(64)), -Var("#5",Imm(64))), Def(Tid(1_315, "%00000523"), - Attrs([Attr("address","0x588"), Attr("insn","mov x29, sp")]), - Var("R29",Imm(64)), Var("R31",Imm(64))), Def(Tid(1_320, "%00000528"), - Attrs([Attr("address","0x58C"), Attr("insn","bl #0xe8")]), - Var("R30",Imm(64)), Int(1424,64))]), Jmps([Call(Tid(1_322, "%0000052a"), - Attrs([Attr("address","0x58C"), Attr("insn","bl #0xe8")]), Int(1,1), -(Direct(Tid(1_473, "@call_weak_fn")),Direct(Tid(1_324, "%0000052c"))))])), -Blk(Tid(1_324, "%0000052c"), Attrs([Attr("address","0x590")]), Phis([]), -Defs([Def(Tid(1_329, "%00000531"), Attrs([Attr("address","0x590"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R29",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(1_334, "%00000536"), Attrs([Attr("address","0x590"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R30",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(1_338, "%0000053a"), Attrs([Attr("address","0x590"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(16,64)))]), Jmps([Call(Tid(1_343, "%0000053f"), - Attrs([Attr("address","0x594"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), Sub(Tid(1_469, "@_start"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x640"), -Attr("entry-point","()")]), "_start", Args([Arg(Tid(1_493, "%000005d5"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("_start_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(480, "@_start"), - Attrs([Attr("address","0x640")]), Phis([]), Defs([Def(Tid(485, "%000001e5"), - Attrs([Attr("address","0x644"), Attr("insn","mov x29, #0x0")]), - Var("R29",Imm(64)), Int(0,64)), Def(Tid(490, "%000001ea"), - Attrs([Attr("address","0x648"), Attr("insn","mov x30, #0x0")]), - Var("R30",Imm(64)), Int(0,64)), Def(Tid(496, "%000001f0"), - Attrs([Attr("address","0x64C"), Attr("insn","mov x5, x0")]), - Var("R5",Imm(64)), Var("R0",Imm(64))), Def(Tid(503, "%000001f7"), - Attrs([Attr("address","0x650"), Attr("insn","ldr x1, [sp]")]), - Var("R1",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(509, "%000001fd"), Attrs([Attr("address","0x654"), -Attr("insn","add x2, sp, #0x8")]), Var("R2",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(8,64))), Def(Tid(515, "%00000203"), - Attrs([Attr("address","0x658"), Attr("insn","mov x6, sp")]), - Var("R6",Imm(64)), Var("R31",Imm(64))), Def(Tid(520, "%00000208"), - Attrs([Attr("address","0x65C"), Attr("insn","adrp x0, #65536")]), - Var("R0",Imm(64)), Int(65536,64)), Def(Tid(527, "%0000020f"), - Attrs([Attr("address","0x660"), Attr("insn","ldr x0, [x0, #0xff0]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(4080,64)),LittleEndian(),64)), -Def(Tid(532, "%00000214"), Attrs([Attr("address","0x664"), -Attr("insn","mov x3, #0x0")]), Var("R3",Imm(64)), Int(0,64)), -Def(Tid(537, "%00000219"), Attrs([Attr("address","0x668"), -Attr("insn","mov x4, #0x0")]), Var("R4",Imm(64)), Int(0,64)), -Def(Tid(542, "%0000021e"), Attrs([Attr("address","0x66C"), -Attr("insn","bl #-0xac")]), Var("R30",Imm(64)), Int(1648,64))]), -Jmps([Call(Tid(545, "%00000221"), Attrs([Attr("address","0x66C"), -Attr("insn","bl #-0xac")]), Int(1,1), -(Direct(Tid(1_466, "@__libc_start_main")),Direct(Tid(547, "%00000223"))))])), -Blk(Tid(547, "%00000223"), Attrs([Attr("address","0x670")]), Phis([]), -Defs([Def(Tid(550, "%00000226"), Attrs([Attr("address","0x670"), -Attr("insn","bl #-0x80")]), Var("R30",Imm(64)), Int(1652,64))]), -Jmps([Call(Tid(553, "%00000229"), Attrs([Attr("address","0x670"), -Attr("insn","bl #-0x80")]), Int(1,1), -(Direct(Tid(1_472, "@abort")),Direct(Tid(1_470, "%000005be"))))])), -Blk(Tid(1_470, "%000005be"), Attrs([]), Phis([]), Defs([]), -Jmps([Call(Tid(1_471, "%000005bf"), Attrs([]), Int(1,1), -(Direct(Tid(1_473, "@call_weak_fn")),))]))])), Sub(Tid(1_472, "@abort"), - Attrs([Attr("noreturn","()"), Attr("c.proto","void (*)(void)"), -Attr("address","0x5F0"), Attr("stub","()")]), "abort", Args([]), -Blks([Blk(Tid(551, "@abort"), Attrs([Attr("address","0x5F0")]), Phis([]), -Defs([Def(Tid(1_149, "%0000047d"), Attrs([Attr("address","0x5F0"), -Attr("insn","adrp x16, #65536")]), Var("R16",Imm(64)), Int(65536,64)), -Def(Tid(1_156, "%00000484"), Attrs([Attr("address","0x5F4"), -Attr("insn","ldr x17, [x16, #0xfc8]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(4040,64)),LittleEndian(),64)), -Def(Tid(1_162, "%0000048a"), Attrs([Attr("address","0x5F8"), -Attr("insn","add x16, x16, #0xfc8")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(4040,64)))]), Jmps([Call(Tid(1_167, "%0000048f"), - Attrs([Attr("address","0x5FC"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), Sub(Tid(1_473, "@call_weak_fn"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x674")]), - "call_weak_fn", Args([Arg(Tid(1_494, "%000005d6"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("call_weak_fn_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(555, "@call_weak_fn"), - Attrs([Attr("address","0x674")]), Phis([]), Defs([Def(Tid(558, "%0000022e"), - Attrs([Attr("address","0x674"), Attr("insn","adrp x0, #65536")]), - Var("R0",Imm(64)), Int(65536,64)), Def(Tid(565, "%00000235"), - Attrs([Attr("address","0x678"), Attr("insn","ldr x0, [x0, #0xfe8]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(4072,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(571, "%0000023b"), Attrs([Attr("address","0x67C"), -Attr("insn","cbz x0, #0x8")]), EQ(Var("R0",Imm(64)),Int(0,64)), -Direct(Tid(569, "%00000239"))), Goto(Tid(1_474, "%000005c2"), Attrs([]), - Int(1,1), Direct(Tid(921, "%00000399")))])), Blk(Tid(569, "%00000239"), - Attrs([Attr("address","0x684")]), Phis([]), Defs([]), -Jmps([Call(Tid(577, "%00000241"), Attrs([Attr("address","0x684"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))])), -Blk(Tid(921, "%00000399"), Attrs([Attr("address","0x680")]), Phis([]), -Defs([]), Jmps([Goto(Tid(924, "%0000039c"), Attrs([Attr("address","0x680"), -Attr("insn","b #-0xa0")]), Int(1,1), Direct(Tid(922, "@__gmon_start__")))])), -Blk(Tid(922, "@__gmon_start__"), Attrs([Attr("address","0x5E0")]), Phis([]), -Defs([Def(Tid(1_127, "%00000467"), Attrs([Attr("address","0x5E0"), -Attr("insn","adrp x16, #65536")]), Var("R16",Imm(64)), Int(65536,64)), -Def(Tid(1_134, "%0000046e"), Attrs([Attr("address","0x5E4"), -Attr("insn","ldr x17, [x16, #0xfc0]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(4032,64)),LittleEndian(),64)), -Def(Tid(1_140, "%00000474"), Attrs([Attr("address","0x5E8"), -Attr("insn","add x16, x16, #0xfc0")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(4032,64)))]), Jmps([Call(Tid(1_145, "%00000479"), - Attrs([Attr("address","0x5EC"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), -Sub(Tid(1_475, "@deregister_tm_clones"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x690")]), - "deregister_tm_clones", Args([Arg(Tid(1_495, "%000005d7"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("deregister_tm_clones_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(583, "@deregister_tm_clones"), - Attrs([Attr("address","0x690")]), Phis([]), Defs([Def(Tid(586, "%0000024a"), - Attrs([Attr("address","0x690"), Attr("insn","adrp x0, #69632")]), - Var("R0",Imm(64)), Int(69632,64)), Def(Tid(592, "%00000250"), - Attrs([Attr("address","0x694"), Attr("insn","add x0, x0, #0x10")]), - Var("R0",Imm(64)), PLUS(Var("R0",Imm(64)),Int(16,64))), -Def(Tid(597, "%00000255"), Attrs([Attr("address","0x698"), -Attr("insn","adrp x1, #69632")]), Var("R1",Imm(64)), Int(69632,64)), -Def(Tid(603, "%0000025b"), Attrs([Attr("address","0x69C"), -Attr("insn","add x1, x1, #0x10")]), Var("R1",Imm(64)), -PLUS(Var("R1",Imm(64)),Int(16,64))), Def(Tid(609, "%00000261"), - Attrs([Attr("address","0x6A0"), Attr("insn","cmp x1, x0")]), - Var("#1",Imm(64)), NOT(Var("R0",Imm(64)))), Def(Tid(614, "%00000266"), - Attrs([Attr("address","0x6A0"), Attr("insn","cmp x1, x0")]), - Var("#2",Imm(64)), PLUS(Var("R1",Imm(64)),NOT(Var("R0",Imm(64))))), -Def(Tid(620, "%0000026c"), Attrs([Attr("address","0x6A0"), -Attr("insn","cmp x1, x0")]), Var("VF",Imm(1)), -NEQ(SIGNED(65,PLUS(Var("#2",Imm(64)),Int(1,64))),PLUS(PLUS(SIGNED(65,Var("R1",Imm(64))),SIGNED(65,Var("#1",Imm(64)))),Int(1,65)))), -Def(Tid(626, "%00000272"), Attrs([Attr("address","0x6A0"), -Attr("insn","cmp x1, x0")]), Var("CF",Imm(1)), -NEQ(UNSIGNED(65,PLUS(Var("#2",Imm(64)),Int(1,64))),PLUS(PLUS(UNSIGNED(65,Var("R1",Imm(64))),UNSIGNED(65,Var("#1",Imm(64)))),Int(1,65)))), -Def(Tid(630, "%00000276"), Attrs([Attr("address","0x6A0"), -Attr("insn","cmp x1, x0")]), Var("ZF",Imm(1)), -EQ(PLUS(Var("#2",Imm(64)),Int(1,64)),Int(0,64))), Def(Tid(634, "%0000027a"), - Attrs([Attr("address","0x6A0"), Attr("insn","cmp x1, x0")]), - Var("NF",Imm(1)), Extract(63,63,PLUS(Var("#2",Imm(64)),Int(1,64))))]), -Jmps([Goto(Tid(640, "%00000280"), Attrs([Attr("address","0x6A4"), -Attr("insn","b.eq #0x18")]), EQ(Var("ZF",Imm(1)),Int(1,1)), -Direct(Tid(638, "%0000027e"))), Goto(Tid(1_476, "%000005c4"), Attrs([]), - Int(1,1), Direct(Tid(891, "%0000037b")))])), Blk(Tid(891, "%0000037b"), - Attrs([Attr("address","0x6A8")]), Phis([]), Defs([Def(Tid(894, "%0000037e"), - Attrs([Attr("address","0x6A8"), Attr("insn","adrp x1, #65536")]), - Var("R1",Imm(64)), Int(65536,64)), Def(Tid(901, "%00000385"), - Attrs([Attr("address","0x6AC"), Attr("insn","ldr x1, [x1, #0xfd8]")]), - Var("R1",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R1",Imm(64)),Int(4056,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(906, "%0000038a"), Attrs([Attr("address","0x6B0"), -Attr("insn","cbz x1, #0xc")]), EQ(Var("R1",Imm(64)),Int(0,64)), -Direct(Tid(638, "%0000027e"))), Goto(Tid(1_477, "%000005c5"), Attrs([]), - Int(1,1), Direct(Tid(910, "%0000038e")))])), Blk(Tid(638, "%0000027e"), - Attrs([Attr("address","0x6BC")]), Phis([]), Defs([]), -Jmps([Call(Tid(646, "%00000286"), Attrs([Attr("address","0x6BC"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))])), -Blk(Tid(910, "%0000038e"), Attrs([Attr("address","0x6B4")]), Phis([]), -Defs([Def(Tid(914, "%00000392"), Attrs([Attr("address","0x6B4"), -Attr("insn","mov x16, x1")]), Var("R16",Imm(64)), Var("R1",Imm(64)))]), -Jmps([Call(Tid(919, "%00000397"), Attrs([Attr("address","0x6B8"), -Attr("insn","br x16")]), Int(1,1), (Indirect(Var("R16",Imm(64))),))]))])), -Sub(Tid(1_478, "@frame_dummy"), Attrs([Attr("c.proto","signed (*)(void)"), -Attr("address","0x750")]), "frame_dummy", Args([Arg(Tid(1_496, "%000005d8"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("frame_dummy_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(798, "@frame_dummy"), - Attrs([Attr("address","0x750")]), Phis([]), Defs([]), -Jmps([Call(Tid(800, "%00000320"), Attrs([Attr("address","0x750"), -Attr("insn","b #-0x90")]), Int(1,1), -(Direct(Tid(1_480, "@register_tm_clones")),))]))])), Sub(Tid(1_479, "@main"), - Attrs([Attr("c.proto","signed (*)(signed argc, const char** argv)"), -Attr("address","0x600"), Attr("stub","()")]), "main", - Args([Arg(Tid(1_497, "%000005d9"), Attrs([Attr("c.layout","[signed : 32]"), -Attr("c.data","Top:u32"), Attr("c.type","signed")]), - Var("main_argc",Imm(32)), LOW(32,Var("R0",Imm(64))), In()), -Arg(Tid(1_498, "%000005da"), Attrs([Attr("c.layout","**[char : 8]"), -Attr("c.data","Top:u8 ptr ptr"), Attr("c.type"," const char**")]), - Var("main_argv",Imm(64)), Var("R1",Imm(64)), Both()), -Arg(Tid(1_499, "%000005db"), Attrs([Attr("c.layout","[signed : 32]"), -Attr("c.data","Top:u32"), Attr("c.type","signed")]), - Var("main_result",Imm(32)), LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(424, "@main"), Attrs([Attr("address","0x600")]), Phis([]), -Defs([Def(Tid(427, "%000001ab"), Attrs([Attr("address","0x600"), -Attr("insn","adrp x1, #69632")]), Var("R1",Imm(64)), Int(69632,64)), -Def(Tid(433, "%000001b1"), Attrs([Attr("address","0x604"), -Attr("insn","add x2, x1, #0x11")]), Var("R2",Imm(64)), -PLUS(Var("R1",Imm(64)),Int(17,64))), Def(Tid(438, "%000001b6"), - Attrs([Attr("address","0x608"), Attr("insn","mov w0, #0x0")]), - Var("R0",Imm(64)), Int(0,64)), Def(Tid(445, "%000001bd"), - Attrs([Attr("address","0x60C"), Attr("insn","ldrb w2, [x2, #0x1]")]), - Var("R2",Imm(64)), -UNSIGNED(64,Load(Var("mem",Mem(64,8)),PLUS(Var("R2",Imm(64)),Int(1,64)),LittleEndian(),8))), -Def(Tid(453, "%000001c5"), Attrs([Attr("address","0x610"), -Attr("insn","strb w2, [x1, #0x11]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R1",Imm(64)),Int(17,64)),Extract(7,0,Var("R2",Imm(64))),LittleEndian(),8))]), -Jmps([Call(Tid(458, "%000001ca"), Attrs([Attr("address","0x614"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))]))])), -Sub(Tid(1_480, "@register_tm_clones"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x6C0")]), - "register_tm_clones", Args([Arg(Tid(1_500, "%000005dc"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("register_tm_clones_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(648, "@register_tm_clones"), Attrs([Attr("address","0x6C0")]), - Phis([]), Defs([Def(Tid(651, "%0000028b"), Attrs([Attr("address","0x6C0"), -Attr("insn","adrp x0, #69632")]), Var("R0",Imm(64)), Int(69632,64)), -Def(Tid(657, "%00000291"), Attrs([Attr("address","0x6C4"), -Attr("insn","add x0, x0, #0x10")]), Var("R0",Imm(64)), -PLUS(Var("R0",Imm(64)),Int(16,64))), Def(Tid(662, "%00000296"), - Attrs([Attr("address","0x6C8"), Attr("insn","adrp x1, #69632")]), - Var("R1",Imm(64)), Int(69632,64)), Def(Tid(668, "%0000029c"), - Attrs([Attr("address","0x6CC"), Attr("insn","add x1, x1, #0x10")]), - Var("R1",Imm(64)), PLUS(Var("R1",Imm(64)),Int(16,64))), -Def(Tid(675, "%000002a3"), Attrs([Attr("address","0x6D0"), -Attr("insn","sub x1, x1, x0")]), Var("R1",Imm(64)), -PLUS(PLUS(Var("R1",Imm(64)),NOT(Var("R0",Imm(64)))),Int(1,64))), -Def(Tid(681, "%000002a9"), Attrs([Attr("address","0x6D4"), -Attr("insn","lsr x2, x1, #63")]), Var("R2",Imm(64)), -Concat(Int(0,63),Extract(63,63,Var("R1",Imm(64))))), -Def(Tid(688, "%000002b0"), Attrs([Attr("address","0x6D8"), -Attr("insn","add x1, x2, x1, asr #3")]), Var("R1",Imm(64)), -PLUS(Var("R2",Imm(64)),ARSHIFT(Var("R1",Imm(64)),Int(3,3)))), -Def(Tid(694, "%000002b6"), Attrs([Attr("address","0x6DC"), -Attr("insn","asr x1, x1, #1")]), Var("R1",Imm(64)), -SIGNED(64,Extract(63,1,Var("R1",Imm(64)))))]), -Jmps([Goto(Tid(700, "%000002bc"), Attrs([Attr("address","0x6E0"), -Attr("insn","cbz x1, #0x18")]), EQ(Var("R1",Imm(64)),Int(0,64)), -Direct(Tid(698, "%000002ba"))), Goto(Tid(1_481, "%000005c9"), Attrs([]), - Int(1,1), Direct(Tid(861, "%0000035d")))])), Blk(Tid(861, "%0000035d"), - Attrs([Attr("address","0x6E4")]), Phis([]), Defs([Def(Tid(864, "%00000360"), - Attrs([Attr("address","0x6E4"), Attr("insn","adrp x2, #65536")]), - Var("R2",Imm(64)), Int(65536,64)), Def(Tid(871, "%00000367"), - Attrs([Attr("address","0x6E8"), Attr("insn","ldr x2, [x2, #0xff8]")]), - Var("R2",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R2",Imm(64)),Int(4088,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(876, "%0000036c"), Attrs([Attr("address","0x6EC"), -Attr("insn","cbz x2, #0xc")]), EQ(Var("R2",Imm(64)),Int(0,64)), -Direct(Tid(698, "%000002ba"))), Goto(Tid(1_482, "%000005ca"), Attrs([]), - Int(1,1), Direct(Tid(880, "%00000370")))])), Blk(Tid(698, "%000002ba"), - Attrs([Attr("address","0x6F8")]), Phis([]), Defs([]), -Jmps([Call(Tid(706, "%000002c2"), Attrs([Attr("address","0x6F8"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))])), -Blk(Tid(880, "%00000370"), Attrs([Attr("address","0x6F0")]), Phis([]), -Defs([Def(Tid(884, "%00000374"), Attrs([Attr("address","0x6F0"), -Attr("insn","mov x16, x2")]), Var("R16",Imm(64)), Var("R2",Imm(64)))]), -Jmps([Call(Tid(889, "%00000379"), Attrs([Attr("address","0x6F4"), -Attr("insn","br x16")]), Int(1,1), -(Indirect(Var("R16",Imm(64))),))]))]))]))) \ No newline at end of file diff --git a/src/test/incorrect/basicassign3/gcc_O2/basicassign3.bir b/src/test/incorrect/basicassign3/gcc_O2/basicassign3.bir deleted file mode 100644 index 9c08c75ed..000000000 --- a/src/test/incorrect/basicassign3/gcc_O2/basicassign3.bir +++ /dev/null @@ -1,228 +0,0 @@ -000005cb: program -000005b5: sub __cxa_finalize(__cxa_finalize_result) -000005cc: __cxa_finalize_result :: out u32 = low:32[R0] - -00000359: -00000451: R16 := 0x10000 -00000458: R17 := mem[R16 + 0xFB8, el]:u64 -0000045e: R16 := R16 + 0xFB8 -00000463: call R17 with noreturn - -000005b6: sub __do_global_dtors_aux(__do_global_dtors_aux_result) -000005cd: __do_global_dtors_aux_result :: out u32 = low:32[R0] - -000002c6: -000002ca: #3 := R31 - 0x20 -000002d0: mem := mem with [#3, el]:u64 <- R29 -000002d6: mem := mem with [#3 + 8, el]:u64 <- R30 -000002da: R31 := #3 -000002e0: R29 := R31 -000002e8: mem := mem with [R31 + 0x10, el]:u64 <- R19 -000002ed: R19 := 0x11000 -000002f4: R0 := pad:64[mem[R19 + 0x10]] -000002fb: when 31:0[R0] <> 0 goto %000002f9 -000005b7: goto %00000322 - -00000322: -00000325: R0 := 0x10000 -0000032c: R0 := mem[R0 + 0xFE0, el]:u64 -00000332: when R0 = 0 goto %00000330 -000005b8: goto %00000349 - -00000349: -0000034c: R0 := 0x11000 -00000353: R0 := mem[R0 + 8, el]:u64 -00000358: R30 := 0x730 -0000035b: call @__cxa_finalize with return %00000330 - -00000330: -00000338: R30 := 0x734 -0000033a: call @deregister_tm_clones with return %0000033c - -0000033c: -0000033f: R0 := 1 -00000347: mem := mem with [R19 + 0x10] <- 7:0[R0] -000005b9: goto %000002f9 - -000002f9: -00000303: R19 := mem[R31 + 0x10, el]:u64 -0000030a: R29 := mem[R31, el]:u64 -0000030f: R30 := mem[R31 + 8, el]:u64 -00000313: R31 := R31 + 0x20 -00000318: call R30 with noreturn - -000005ba: sub __libc_start_main(__libc_start_main_main, __libc_start_main_arg2, __libc_start_main_arg3, __libc_start_main_auxv, __libc_start_main_result) -000005ce: __libc_start_main_main :: in u64 = R0 -000005cf: __libc_start_main_arg2 :: in u32 = low:32[R1] -000005d0: __libc_start_main_arg3 :: in out u64 = R2 -000005d1: __libc_start_main_auxv :: in out u64 = R3 -000005d2: __libc_start_main_result :: out u32 = low:32[R0] - -0000021f: -0000043b: R16 := 0x10000 -00000442: R17 := mem[R16 + 0xFB0, el]:u64 -00000448: R16 := R16 + 0xFB0 -0000044d: call R17 with noreturn - -000005bb: sub _fini(_fini_result) -000005d3: _fini_result :: out u32 = low:32[R0] - -0000001f: -00000025: #0 := R31 - 0x10 -0000002b: mem := mem with [#0, el]:u64 <- R29 -00000031: mem := mem with [#0 + 8, el]:u64 <- R30 -00000035: R31 := #0 -0000003b: R29 := R31 -00000042: R29 := mem[R31, el]:u64 -00000047: R30 := mem[R31 + 8, el]:u64 -0000004b: R31 := R31 + 0x10 -00000050: call R30 with noreturn - -000005bc: sub _init(_init_result) -000005d4: _init_result :: out u32 = low:32[R0] - -00000507: -0000050d: #5 := R31 - 0x10 -00000513: mem := mem with [#5, el]:u64 <- R29 -00000519: mem := mem with [#5 + 8, el]:u64 <- R30 -0000051d: R31 := #5 -00000523: R29 := R31 -00000528: R30 := 0x590 -0000052a: call @call_weak_fn with return %0000052c - -0000052c: -00000531: R29 := mem[R31, el]:u64 -00000536: R30 := mem[R31 + 8, el]:u64 -0000053a: R31 := R31 + 0x10 -0000053f: call R30 with noreturn - -000005bd: sub _start(_start_result) -000005d5: _start_result :: out u32 = low:32[R0] - -000001e0: -000001e5: R29 := 0 -000001ea: R30 := 0 -000001f0: R5 := R0 -000001f7: R1 := mem[R31, el]:u64 -000001fd: R2 := R31 + 8 -00000203: R6 := R31 -00000208: R0 := 0x10000 -0000020f: R0 := mem[R0 + 0xFF0, el]:u64 -00000214: R3 := 0 -00000219: R4 := 0 -0000021e: R30 := 0x670 -00000221: call @__libc_start_main with return %00000223 - -00000223: -00000226: R30 := 0x674 -00000229: call @abort with return %000005be - -000005be: -000005bf: call @call_weak_fn with noreturn - -000005c0: sub abort() - - -00000227: -0000047d: R16 := 0x10000 -00000484: R17 := mem[R16 + 0xFC8, el]:u64 -0000048a: R16 := R16 + 0xFC8 -0000048f: call R17 with noreturn - -000005c1: sub call_weak_fn(call_weak_fn_result) -000005d6: call_weak_fn_result :: out u32 = low:32[R0] - -0000022b: -0000022e: R0 := 0x10000 -00000235: R0 := mem[R0 + 0xFE8, el]:u64 -0000023b: when R0 = 0 goto %00000239 -000005c2: goto %00000399 - -00000239: -00000241: call R30 with noreturn - -00000399: -0000039c: goto @__gmon_start__ - -0000039a: -00000467: R16 := 0x10000 -0000046e: R17 := mem[R16 + 0xFC0, el]:u64 -00000474: R16 := R16 + 0xFC0 -00000479: call R17 with noreturn - -000005c3: sub deregister_tm_clones(deregister_tm_clones_result) -000005d7: deregister_tm_clones_result :: out u32 = low:32[R0] - -00000247: -0000024a: R0 := 0x11000 -00000250: R0 := R0 + 0x10 -00000255: R1 := 0x11000 -0000025b: R1 := R1 + 0x10 -00000261: #1 := ~R0 -00000266: #2 := R1 + ~R0 -0000026c: VF := extend:65[#2 + 1] <> extend:65[R1] + extend:65[#1] + 1 -00000272: CF := pad:65[#2 + 1] <> pad:65[R1] + pad:65[#1] + 1 -00000276: ZF := #2 + 1 = 0 -0000027a: NF := 63:63[#2 + 1] -00000280: when ZF goto %0000027e -000005c4: goto %0000037b - -0000037b: -0000037e: R1 := 0x10000 -00000385: R1 := mem[R1 + 0xFD8, el]:u64 -0000038a: when R1 = 0 goto %0000027e -000005c5: goto %0000038e - -0000027e: -00000286: call R30 with noreturn - -0000038e: -00000392: R16 := R1 -00000397: call R16 with noreturn - -000005c6: sub frame_dummy(frame_dummy_result) -000005d8: frame_dummy_result :: out u32 = low:32[R0] - -0000031e: -00000320: call @register_tm_clones with noreturn - -000005c7: sub main(main_argc, main_argv, main_result) -000005d9: main_argc :: in u32 = low:32[R0] -000005da: main_argv :: in out u64 = R1 -000005db: main_result :: out u32 = low:32[R0] - -000001a8: -000001ab: R1 := 0x11000 -000001b1: R2 := R1 + 0x11 -000001b6: R0 := 0 -000001bd: R2 := pad:64[mem[R2 + 1]] -000001c5: mem := mem with [R1 + 0x11] <- 7:0[R2] -000001ca: call R30 with noreturn - -000005c8: sub register_tm_clones(register_tm_clones_result) -000005dc: register_tm_clones_result :: out u32 = low:32[R0] - -00000288: -0000028b: R0 := 0x11000 -00000291: R0 := R0 + 0x10 -00000296: R1 := 0x11000 -0000029c: R1 := R1 + 0x10 -000002a3: R1 := R1 + ~R0 + 1 -000002a9: R2 := 0.63:63[R1] -000002b0: R1 := R2 + (R1 ~>> 3) -000002b6: R1 := extend:64[63:1[R1]] -000002bc: when R1 = 0 goto %000002ba -000005c9: goto %0000035d - -0000035d: -00000360: R2 := 0x10000 -00000367: R2 := mem[R2 + 0xFF8, el]:u64 -0000036c: when R2 = 0 goto %000002ba -000005ca: goto %00000370 - -000002ba: -000002c2: call R30 with noreturn - -00000370: -00000374: R16 := R2 -00000379: call R16 with noreturn diff --git a/src/test/incorrect/basicassign3/gcc_O2/basicassign3.expected b/src/test/incorrect/basicassign3/gcc_O2/basicassign3.expected index 807ccd52a..28f27700d 100644 --- a/src/test/incorrect/basicassign3/gcc_O2/basicassign3.expected +++ b/src/test/incorrect/basicassign3/gcc_O2/basicassign3.expected @@ -7,14 +7,18 @@ var {:extern} R1: bv64; var {:extern} R2: bv64; var {:extern} mem: [bv64]bv8; const {:extern} $secret_addr: bv64; -axiom ($secret_addr == 69650bv64); +axiom ($secret_addr == 4325393bv64); const {:extern} $z_addr: bv64; -axiom ($z_addr == 69649bv64); +axiom ($z_addr == 4325394bv64); function {:extern} L(mem$in: [bv64]bv8, index: bv64) returns (bool) { (if (index == $secret_addr) then false else (if (index == $z_addr) then true else false)) } function {:extern} {:bvbuiltin "bvadd"} bvadd64(bv64, bv64) returns (bv64); +function {:extern} gamma_load64(gammaMap: [bv64]bool, index: bv64) returns (bool) { + (gammaMap[bvadd64(index, 7bv64)] && (gammaMap[bvadd64(index, 6bv64)] && (gammaMap[bvadd64(index, 5bv64)] && (gammaMap[bvadd64(index, 4bv64)] && (gammaMap[bvadd64(index, 3bv64)] && (gammaMap[bvadd64(index, 2bv64)] && (gammaMap[bvadd64(index, 1bv64)] && gammaMap[index]))))))) +} + function {:extern} gamma_load8(gammaMap: [bv64]bool, index: bv64) returns (bool) { gammaMap[index] } @@ -44,11 +48,7 @@ procedure {:extern} rely(); modifies Gamma_mem, mem; ensures (Gamma_mem == old(Gamma_mem)); ensures (mem == old(mem)); - free ensures (memory_load32_le(mem, 1896bv64) == 131073bv32); - free ensures (memory_load64_le(mem, 69016bv64) == 1872bv64); - free ensures (memory_load64_le(mem, 69024bv64) == 1792bv64); - free ensures (memory_load64_le(mem, 69616bv64) == 1536bv64); - free ensures (memory_load64_le(mem, 69640bv64) == 69640bv64); + free ensures (memory_load32_le(mem, 4196312bv64) == 131073bv32); procedure {:extern} rely_transitive(); modifies Gamma_mem, mem; @@ -66,40 +66,42 @@ procedure {:extern} rely_reflexive(); procedure {:extern} guarantee_reflexive(); modifies Gamma_mem, mem; -procedure main_1536(); +procedure main(); modifies Gamma_R0, Gamma_R1, Gamma_R2, Gamma_mem, R0, R1, R2, mem; - free requires (memory_load64_le(mem, 69632bv64) == 0bv64); - free requires (memory_load64_le(mem, 69640bv64) == 69640bv64); - free requires (memory_load32_le(mem, 1896bv64) == 131073bv32); - free requires (memory_load64_le(mem, 69016bv64) == 1872bv64); - free requires (memory_load64_le(mem, 69024bv64) == 1792bv64); - free requires (memory_load64_le(mem, 69616bv64) == 1536bv64); - free requires (memory_load64_le(mem, 69640bv64) == 69640bv64); - free ensures (memory_load32_le(mem, 1896bv64) == 131073bv32); - free ensures (memory_load64_le(mem, 69016bv64) == 1872bv64); - free ensures (memory_load64_le(mem, 69024bv64) == 1792bv64); - free ensures (memory_load64_le(mem, 69616bv64) == 1536bv64); - free ensures (memory_load64_le(mem, 69640bv64) == 69640bv64); + free requires (memory_load64_le(mem, 4325376bv64) == 0bv64); + free requires (memory_load64_le(mem, 4325384bv64) == 0bv64); + free requires (memory_load32_le(mem, 4196312bv64) == 131073bv32); + free ensures (memory_load32_le(mem, 4196312bv64) == 131073bv32); -implementation main_1536() +implementation main() { - var Gamma_load18: bool; - var load18: bv8; + var $load$14: bv64; + var $load$15: bv64; + var $load$16: bv8; + var Gamma_$load$14: bool; + var Gamma_$load$15: bool; + var Gamma_$load$16: bool; lmain: assume {:captureState "lmain"} true; - R1, Gamma_R1 := 69632bv64, true; - R2, Gamma_R2 := bvadd64(R1, 17bv64), Gamma_R1; + R1, Gamma_R1 := 4321280bv64, true; + call rely(); + $load$14, Gamma_$load$14 := memory_load64_le(mem, bvadd64(R1, 4080bv64)), (gamma_load64(Gamma_mem, bvadd64(R1, 4080bv64)) || L(mem, bvadd64(R1, 4080bv64))); + R1, Gamma_R1 := $load$14, Gamma_$load$14; R0, Gamma_R0 := 0bv64, true; + R2, Gamma_R2 := 4321280bv64, true; + call rely(); + $load$15, Gamma_$load$15 := memory_load64_le(mem, bvadd64(R2, 4064bv64)), (gamma_load64(Gamma_mem, bvadd64(R2, 4064bv64)) || L(mem, bvadd64(R2, 4064bv64))); + R2, Gamma_R2 := $load$15, Gamma_$load$15; call rely(); - load18, Gamma_load18 := memory_load8_le(mem, bvadd64(R2, 1bv64)), (gamma_load8(Gamma_mem, bvadd64(R2, 1bv64)) || L(mem, bvadd64(R2, 1bv64))); - R2, Gamma_R2 := zero_extend56_8(load18), Gamma_load18; + $load$16, Gamma_$load$16 := memory_load8_le(mem, R1), (gamma_load8(Gamma_mem, R1) || L(mem, R1)); + R1, Gamma_R1 := zero_extend56_8($load$16), Gamma_$load$16; call rely(); - assert (L(mem, bvadd64(R1, 17bv64)) ==> Gamma_R2); - mem, Gamma_mem := memory_store8_le(mem, bvadd64(R1, 17bv64), R2[8:0]), gamma_store8(Gamma_mem, bvadd64(R1, 17bv64), Gamma_R2); - assume {:captureState "%000001c5"} true; - goto main_1536_basil_return; - main_1536_basil_return: - assume {:captureState "main_1536_basil_return"} true; + assert (L(mem, R2) ==> Gamma_R1); + mem, Gamma_mem := memory_store8_le(mem, R2, R1[8:0]), gamma_store8(Gamma_mem, R2, Gamma_R1); + assume {:captureState "%00000260"} true; + goto main_basil_return; + main_basil_return: + assume {:captureState "main_basil_return"} true; return; } diff --git a/src/test/incorrect/basicassign3/gcc_O2/basicassign3.gts b/src/test/incorrect/basicassign3/gcc_O2/basicassign3.gts deleted file mode 100644 index 4022df3e4..000000000 Binary files a/src/test/incorrect/basicassign3/gcc_O2/basicassign3.gts and /dev/null differ diff --git a/src/test/incorrect/basicassign3/gcc_O2/basicassign3.md5sum b/src/test/incorrect/basicassign3/gcc_O2/basicassign3.md5sum new file mode 100644 index 000000000..362f9ba41 --- /dev/null +++ b/src/test/incorrect/basicassign3/gcc_O2/basicassign3.md5sum @@ -0,0 +1,5 @@ +08765465e9597bf3ee7da0d24797c9ec incorrect/basicassign3/gcc_O2/a.out +f44ee2f244fddf77d01e2b497113c5a1 incorrect/basicassign3/gcc_O2/basicassign3.adt +36c91cc22d260797a9b86f9d15bc2278 incorrect/basicassign3/gcc_O2/basicassign3.bir +a716ff78f9f0b6b1c2e8398f33eea491 incorrect/basicassign3/gcc_O2/basicassign3.relf +0f57bd57c41d6b61864223ba4b3c79bc incorrect/basicassign3/gcc_O2/basicassign3.gts diff --git a/src/test/incorrect/basicassign3/gcc_O2/basicassign3.relf b/src/test/incorrect/basicassign3/gcc_O2/basicassign3.relf deleted file mode 100644 index caeefba35..000000000 --- a/src/test/incorrect/basicassign3/gcc_O2/basicassign3.relf +++ /dev/null @@ -1,122 +0,0 @@ - -Relocation section '.rela.dyn' at offset 0x460 contains 8 entries: - Offset Info Type Symbol's Value Symbol's Name + Addend -0000000000010d98 0000000000000403 R_AARCH64_RELATIVE 750 -0000000000010da0 0000000000000403 R_AARCH64_RELATIVE 700 -0000000000010ff0 0000000000000403 R_AARCH64_RELATIVE 600 -0000000000011008 0000000000000403 R_AARCH64_RELATIVE 11008 -0000000000010fd8 0000000400000401 R_AARCH64_GLOB_DAT 0000000000000000 _ITM_deregisterTMCloneTable + 0 -0000000000010fe0 0000000500000401 R_AARCH64_GLOB_DAT 0000000000000000 __cxa_finalize@GLIBC_2.17 + 0 -0000000000010fe8 0000000600000401 R_AARCH64_GLOB_DAT 0000000000000000 __gmon_start__ + 0 -0000000000010ff8 0000000800000401 R_AARCH64_GLOB_DAT 0000000000000000 _ITM_registerTMCloneTable + 0 - -Relocation section '.rela.plt' at offset 0x520 contains 4 entries: - Offset Info Type Symbol's Value Symbol's Name + Addend -0000000000010fb0 0000000300000402 R_AARCH64_JUMP_SLOT 0000000000000000 __libc_start_main@GLIBC_2.34 + 0 -0000000000010fb8 0000000500000402 R_AARCH64_JUMP_SLOT 0000000000000000 __cxa_finalize@GLIBC_2.17 + 0 -0000000000010fc0 0000000600000402 R_AARCH64_JUMP_SLOT 0000000000000000 __gmon_start__ + 0 -0000000000010fc8 0000000700000402 R_AARCH64_JUMP_SLOT 0000000000000000 abort@GLIBC_2.17 + 0 - -Symbol table '.dynsym' contains 9 entries: - Num: Value Size Type Bind Vis Ndx Name - 0: 0000000000000000 0 NOTYPE LOCAL DEFAULT UND - 1: 0000000000000580 0 SECTION LOCAL DEFAULT 11 .init - 2: 0000000000011000 0 SECTION LOCAL DEFAULT 22 .data - 3: 0000000000000000 0 FUNC GLOBAL DEFAULT UND __libc_start_main@GLIBC_2.34 (2) - 4: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_deregisterTMCloneTable - 5: 0000000000000000 0 FUNC WEAK DEFAULT UND __cxa_finalize@GLIBC_2.17 (3) - 6: 0000000000000000 0 NOTYPE WEAK DEFAULT UND __gmon_start__ - 7: 0000000000000000 0 FUNC GLOBAL DEFAULT UND abort@GLIBC_2.17 (3) - 8: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_registerTMCloneTable - -Symbol table '.symtab' contains 89 entries: - Num: Value Size Type Bind Vis Ndx Name - 0: 0000000000000000 0 NOTYPE LOCAL DEFAULT UND - 1: 0000000000000238 0 SECTION LOCAL DEFAULT 1 .interp - 2: 0000000000000254 0 SECTION LOCAL DEFAULT 2 .note.gnu.build-id - 3: 0000000000000278 0 SECTION LOCAL DEFAULT 3 .note.ABI-tag - 4: 0000000000000298 0 SECTION LOCAL DEFAULT 4 .gnu.hash - 5: 00000000000002b8 0 SECTION LOCAL DEFAULT 5 .dynsym - 6: 0000000000000390 0 SECTION LOCAL DEFAULT 6 .dynstr - 7: 000000000000041e 0 SECTION LOCAL DEFAULT 7 .gnu.version - 8: 0000000000000430 0 SECTION LOCAL DEFAULT 8 .gnu.version_r - 9: 0000000000000460 0 SECTION LOCAL DEFAULT 9 .rela.dyn - 10: 0000000000000520 0 SECTION LOCAL DEFAULT 10 .rela.plt - 11: 0000000000000580 0 SECTION LOCAL DEFAULT 11 .init - 12: 00000000000005a0 0 SECTION LOCAL DEFAULT 12 .plt - 13: 0000000000000600 0 SECTION LOCAL DEFAULT 13 .text - 14: 0000000000000754 0 SECTION LOCAL DEFAULT 14 .fini - 15: 0000000000000768 0 SECTION LOCAL DEFAULT 15 .rodata - 16: 000000000000076c 0 SECTION LOCAL DEFAULT 16 .eh_frame_hdr - 17: 00000000000007a8 0 SECTION LOCAL DEFAULT 17 .eh_frame - 18: 0000000000010d98 0 SECTION LOCAL DEFAULT 18 .init_array - 19: 0000000000010da0 0 SECTION LOCAL DEFAULT 19 .fini_array - 20: 0000000000010da8 0 SECTION LOCAL DEFAULT 20 .dynamic - 21: 0000000000010f98 0 SECTION LOCAL DEFAULT 21 .got - 22: 0000000000011000 0 SECTION LOCAL DEFAULT 22 .data - 23: 0000000000011010 0 SECTION LOCAL DEFAULT 23 .bss - 24: 0000000000000000 0 SECTION LOCAL DEFAULT 24 .comment - 25: 0000000000000000 0 FILE LOCAL DEFAULT ABS Scrt1.o - 26: 0000000000000278 0 NOTYPE LOCAL DEFAULT 3 $d - 27: 0000000000000278 32 OBJECT LOCAL DEFAULT 3 __abi_tag - 28: 0000000000000640 0 NOTYPE LOCAL DEFAULT 13 $x - 29: 00000000000007bc 0 NOTYPE LOCAL DEFAULT 17 $d - 30: 0000000000000768 0 NOTYPE LOCAL DEFAULT 15 $d - 31: 0000000000000000 0 FILE LOCAL DEFAULT ABS crti.o - 32: 0000000000000674 0 NOTYPE LOCAL DEFAULT 13 $x - 33: 0000000000000674 20 FUNC LOCAL DEFAULT 13 call_weak_fn - 34: 0000000000000580 0 NOTYPE LOCAL DEFAULT 11 $x - 35: 0000000000000754 0 NOTYPE LOCAL DEFAULT 14 $x - 36: 0000000000000000 0 FILE LOCAL DEFAULT ABS crtn.o - 37: 0000000000000590 0 NOTYPE LOCAL DEFAULT 11 $x - 38: 0000000000000760 0 NOTYPE LOCAL DEFAULT 14 $x - 39: 0000000000000000 0 FILE LOCAL DEFAULT ABS basicassign3.c - 40: 0000000000000600 0 NOTYPE LOCAL DEFAULT 13 $x - 41: 0000000000011011 0 NOTYPE LOCAL DEFAULT 23 $d - 42: 0000000000000830 0 NOTYPE LOCAL DEFAULT 17 $d - 43: 0000000000000000 0 FILE LOCAL DEFAULT ABS crtstuff.c - 44: 0000000000000690 0 NOTYPE LOCAL DEFAULT 13 $x - 45: 0000000000000690 0 FUNC LOCAL DEFAULT 13 deregister_tm_clones - 46: 00000000000006c0 0 FUNC LOCAL DEFAULT 13 register_tm_clones - 47: 0000000000011008 0 NOTYPE LOCAL DEFAULT 22 $d - 48: 0000000000000700 0 FUNC LOCAL DEFAULT 13 __do_global_dtors_aux - 49: 0000000000011010 1 OBJECT LOCAL DEFAULT 23 completed.0 - 50: 0000000000010da0 0 NOTYPE LOCAL DEFAULT 19 $d - 51: 0000000000010da0 0 OBJECT LOCAL DEFAULT 19 __do_global_dtors_aux_fini_array_entry - 52: 0000000000000750 0 FUNC LOCAL DEFAULT 13 frame_dummy - 53: 0000000000010d98 0 NOTYPE LOCAL DEFAULT 18 $d - 54: 0000000000010d98 0 OBJECT LOCAL DEFAULT 18 __frame_dummy_init_array_entry - 55: 00000000000007d0 0 NOTYPE LOCAL DEFAULT 17 $d - 56: 0000000000011010 0 NOTYPE LOCAL DEFAULT 23 $d - 57: 0000000000000000 0 FILE LOCAL DEFAULT ABS crtstuff.c - 58: 0000000000000844 0 NOTYPE LOCAL DEFAULT 17 $d - 59: 0000000000000844 0 OBJECT LOCAL DEFAULT 17 __FRAME_END__ - 60: 0000000000000000 0 FILE LOCAL DEFAULT ABS - 61: 0000000000010da8 0 OBJECT LOCAL DEFAULT ABS _DYNAMIC - 62: 000000000000076c 0 NOTYPE LOCAL DEFAULT 16 __GNU_EH_FRAME_HDR - 63: 0000000000010fd0 0 OBJECT LOCAL DEFAULT ABS _GLOBAL_OFFSET_TABLE_ - 64: 00000000000005a0 0 NOTYPE LOCAL DEFAULT 12 $x - 65: 0000000000000000 0 FUNC GLOBAL DEFAULT UND __libc_start_main@GLIBC_2.34 - 66: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_deregisterTMCloneTable - 67: 0000000000011000 0 NOTYPE WEAK DEFAULT 22 data_start - 68: 0000000000011010 0 NOTYPE GLOBAL DEFAULT 23 __bss_start__ - 69: 0000000000000000 0 FUNC WEAK DEFAULT UND __cxa_finalize@GLIBC_2.17 - 70: 0000000000011018 0 NOTYPE GLOBAL DEFAULT 23 _bss_end__ - 71: 0000000000011010 0 NOTYPE GLOBAL DEFAULT 22 _edata - 72: 0000000000011011 1 OBJECT GLOBAL DEFAULT 23 z - 73: 0000000000000754 0 FUNC GLOBAL HIDDEN 14 _fini - 74: 0000000000011018 0 NOTYPE GLOBAL DEFAULT 23 __bss_end__ - 75: 0000000000011000 0 NOTYPE GLOBAL DEFAULT 22 __data_start - 76: 0000000000000000 0 NOTYPE WEAK DEFAULT UND __gmon_start__ - 77: 0000000000011008 0 OBJECT GLOBAL HIDDEN 22 __dso_handle - 78: 0000000000000000 0 FUNC GLOBAL DEFAULT UND abort@GLIBC_2.17 - 79: 0000000000000768 4 OBJECT GLOBAL DEFAULT 15 _IO_stdin_used - 80: 0000000000011012 1 OBJECT GLOBAL DEFAULT 23 secret - 81: 0000000000011018 0 NOTYPE GLOBAL DEFAULT 23 _end - 82: 0000000000000640 52 FUNC GLOBAL DEFAULT 13 _start - 83: 0000000000011018 0 NOTYPE GLOBAL DEFAULT 23 __end__ - 84: 0000000000011010 0 NOTYPE GLOBAL DEFAULT 23 __bss_start - 85: 0000000000000600 24 FUNC GLOBAL DEFAULT 13 main - 86: 0000000000011010 0 OBJECT GLOBAL HIDDEN 22 __TMC_END__ - 87: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_registerTMCloneTable - 88: 0000000000000580 0 FUNC GLOBAL HIDDEN 11 _init diff --git a/src/test/incorrect/basicassign3/gcc_O2/basicassign3_gtirb.expected b/src/test/incorrect/basicassign3/gcc_O2/basicassign3_gtirb.expected index 969d0915c..06c551f8e 100644 --- a/src/test/incorrect/basicassign3/gcc_O2/basicassign3_gtirb.expected +++ b/src/test/incorrect/basicassign3/gcc_O2/basicassign3_gtirb.expected @@ -7,14 +7,18 @@ var {:extern} R1: bv64; var {:extern} R2: bv64; var {:extern} mem: [bv64]bv8; const {:extern} $secret_addr: bv64; -axiom ($secret_addr == 69650bv64); +axiom ($secret_addr == 4325393bv64); const {:extern} $z_addr: bv64; -axiom ($z_addr == 69649bv64); +axiom ($z_addr == 4325394bv64); function {:extern} L(mem$in: [bv64]bv8, index: bv64) returns (bool) { (if (index == $secret_addr) then false else (if (index == $z_addr) then true else false)) } function {:extern} {:bvbuiltin "bvadd"} bvadd64(bv64, bv64) returns (bv64); +function {:extern} gamma_load64(gammaMap: [bv64]bool, index: bv64) returns (bool) { + (gammaMap[bvadd64(index, 7bv64)] && (gammaMap[bvadd64(index, 6bv64)] && (gammaMap[bvadd64(index, 5bv64)] && (gammaMap[bvadd64(index, 4bv64)] && (gammaMap[bvadd64(index, 3bv64)] && (gammaMap[bvadd64(index, 2bv64)] && (gammaMap[bvadd64(index, 1bv64)] && gammaMap[index]))))))) +} + function {:extern} gamma_load8(gammaMap: [bv64]bool, index: bv64) returns (bool) { gammaMap[index] } @@ -45,11 +49,7 @@ procedure {:extern} rely(); modifies Gamma_mem, mem; ensures (Gamma_mem == old(Gamma_mem)); ensures (mem == old(mem)); - free ensures (memory_load32_le(mem, 1896bv64) == 131073bv32); - free ensures (memory_load64_le(mem, 69016bv64) == 1872bv64); - free ensures (memory_load64_le(mem, 69024bv64) == 1792bv64); - free ensures (memory_load64_le(mem, 69616bv64) == 1536bv64); - free ensures (memory_load64_le(mem, 69640bv64) == 69640bv64); + free ensures (memory_load32_le(mem, 4196312bv64) == 131073bv32); procedure {:extern} rely_transitive(); modifies Gamma_mem, mem; @@ -67,40 +67,42 @@ procedure {:extern} rely_reflexive(); procedure {:extern} guarantee_reflexive(); modifies Gamma_mem, mem; -procedure main_1536(); +procedure main(); modifies Gamma_R0, Gamma_R1, Gamma_R2, Gamma_mem, R0, R1, R2, mem; - free requires (memory_load64_le(mem, 69632bv64) == 0bv64); - free requires (memory_load64_le(mem, 69640bv64) == 69640bv64); - free requires (memory_load32_le(mem, 1896bv64) == 131073bv32); - free requires (memory_load64_le(mem, 69016bv64) == 1872bv64); - free requires (memory_load64_le(mem, 69024bv64) == 1792bv64); - free requires (memory_load64_le(mem, 69616bv64) == 1536bv64); - free requires (memory_load64_le(mem, 69640bv64) == 69640bv64); - free ensures (memory_load32_le(mem, 1896bv64) == 131073bv32); - free ensures (memory_load64_le(mem, 69016bv64) == 1872bv64); - free ensures (memory_load64_le(mem, 69024bv64) == 1792bv64); - free ensures (memory_load64_le(mem, 69616bv64) == 1536bv64); - free ensures (memory_load64_le(mem, 69640bv64) == 69640bv64); + free requires (memory_load64_le(mem, 4325376bv64) == 0bv64); + free requires (memory_load64_le(mem, 4325384bv64) == 0bv64); + free requires (memory_load32_le(mem, 4196312bv64) == 131073bv32); + free ensures (memory_load32_le(mem, 4196312bv64) == 131073bv32); -implementation main_1536() +implementation main() { - var Gamma_load14: bool; - var load14: bv8; - main_1536__0__C40bGhKMQsKtBZRFrd1r0w: - assume {:captureState "main_1536__0__C40bGhKMQsKtBZRFrd1r0w"} true; - R1, Gamma_R1 := 69632bv64, true; - R2, Gamma_R2 := bvadd64(R1, 17bv64), Gamma_R1; + var $load16: bv64; + var $load17: bv64; + var $load18: bv8; + var Gamma_$load16: bool; + var Gamma_$load17: bool; + var Gamma_$load18: bool; + $main$__0__$i2bc6yURTw~Pq2nxe63pQA: + assume {:captureState "$main$__0__$i2bc6yURTw~Pq2nxe63pQA"} true; + R1, Gamma_R1 := 4321280bv64, true; + call rely(); + $load16, Gamma_$load16 := memory_load64_le(mem, bvadd64(R1, 4080bv64)), (gamma_load64(Gamma_mem, bvadd64(R1, 4080bv64)) || L(mem, bvadd64(R1, 4080bv64))); + R1, Gamma_R1 := $load16, Gamma_$load16; R0, Gamma_R0 := 0bv64, true; + R2, Gamma_R2 := 4321280bv64, true; + call rely(); + $load17, Gamma_$load17 := memory_load64_le(mem, bvadd64(R2, 4064bv64)), (gamma_load64(Gamma_mem, bvadd64(R2, 4064bv64)) || L(mem, bvadd64(R2, 4064bv64))); + R2, Gamma_R2 := $load17, Gamma_$load17; call rely(); - load14, Gamma_load14 := memory_load8_le(mem, bvadd64(R2, 1bv64)), (gamma_load8(Gamma_mem, bvadd64(R2, 1bv64)) || L(mem, bvadd64(R2, 1bv64))); - R2, Gamma_R2 := zero_extend32_32(zero_extend24_8(load14)), Gamma_load14; + $load18, Gamma_$load18 := memory_load8_le(mem, R1), (gamma_load8(Gamma_mem, R1) || L(mem, R1)); + R1, Gamma_R1 := zero_extend32_32(zero_extend24_8($load18)), Gamma_$load18; call rely(); - assert (L(mem, bvadd64(R1, 17bv64)) ==> Gamma_R2); - mem, Gamma_mem := memory_store8_le(mem, bvadd64(R1, 17bv64), R2[8:0]), gamma_store8(Gamma_mem, bvadd64(R1, 17bv64), Gamma_R2); - assume {:captureState "1552_0"} true; - goto main_1536_basil_return; - main_1536_basil_return: - assume {:captureState "main_1536_basil_return"} true; + assert (L(mem, R2) ==> Gamma_R1); + mem, Gamma_mem := memory_store8_le(mem, R2, R1[8:0]), gamma_store8(Gamma_mem, R2, Gamma_R1); + assume {:captureState "4195992$0"} true; + goto main_basil_return; + main_basil_return: + assume {:captureState "main_basil_return"} true; return; } diff --git a/src/test/incorrect/basicassign3/gcc_pic/basicassign3.adt b/src/test/incorrect/basicassign3/gcc_pic/basicassign3.adt deleted file mode 100644 index b97be4b77..000000000 --- a/src/test/incorrect/basicassign3/gcc_pic/basicassign3.adt +++ /dev/null @@ -1,538 +0,0 @@ -Project(Attrs([Attr("filename","\"gcc_pic/basicassign3.out\""), -Attr("image-specification","(declare abi (name str))\n(declare arch (name str))\n(declare base-address (addr int))\n(declare bias (off int))\n(declare bits (size int))\n(declare code-region (addr int) (size int) (off int))\n(declare code-start (addr int))\n(declare entry-point (addr int))\n(declare external-reference (addr int) (name str))\n(declare format (name str))\n(declare is-executable (flag bool))\n(declare is-little-endian (flag bool))\n(declare llvm:base-address (addr int))\n(declare llvm:code-entry (name str) (off int) (size int))\n(declare llvm:coff-import-library (name str))\n(declare llvm:coff-virtual-section-header (name str) (addr int) (size int))\n(declare llvm:elf-program-header (name str) (off int) (size int))\n(declare llvm:elf-program-header-flags (name str) (ld bool) (r bool) \n (w bool) (x bool))\n(declare llvm:elf-virtual-program-header (name str) (addr int) (size int))\n(declare llvm:entry-point (addr int))\n(declare llvm:macho-symbol (name str) (value int))\n(declare llvm:name-reference (at int) (name str))\n(declare llvm:relocation (at int) (addr int))\n(declare llvm:section-entry (name str) (addr int) (size int) (off int))\n(declare llvm:section-flags (name str) (r bool) (w bool) (x bool))\n(declare llvm:segment-command (name str) (off int) (size int))\n(declare llvm:segment-command-flags (name str) (r bool) (w bool) (x bool))\n(declare llvm:symbol-entry (name str) (addr int) (size int) (off int)\n (value int))\n(declare llvm:virtual-segment-command (name str) (addr int) (size int))\n(declare mapped (addr int) (size int) (off int))\n(declare named-region (addr int) (size int) (name str))\n(declare named-symbol (addr int) (name str))\n(declare require (name str))\n(declare section (addr int) (size int))\n(declare segment (addr int) (size int) (r bool) (w bool) (x bool))\n(declare subarch (name str))\n(declare symbol-chunk (addr int) (size int) (root int))\n(declare symbol-value (addr int) (value int))\n(declare system (name str))\n(declare vendor (name str))\n\n(abi unknown)\n(arch aarch64)\n(base-address 0)\n(bias 0)\n(bits 64)\n(code-region 1960 20 1960)\n(code-region 1600 360 1600)\n(code-region 1488 96 1488)\n(code-region 1456 24 1456)\n(code-start 1652)\n(code-start 1600)\n(code-start 1876)\n(entry-point 1600)\n(external-reference 69576 _ITM_deregisterTMCloneTable)\n(external-reference 69584 __cxa_finalize)\n(external-reference 69600 __gmon_start__)\n(external-reference 69624 _ITM_registerTMCloneTable)\n(external-reference 69536 __libc_start_main)\n(external-reference 69544 __cxa_finalize)\n(external-reference 69552 __gmon_start__)\n(external-reference 69560 abort)\n(format elf)\n(is-executable true)\n(is-little-endian true)\n(llvm:base-address 0)\n(llvm:code-entry abort 0 0)\n(llvm:code-entry __cxa_finalize 0 0)\n(llvm:code-entry __libc_start_main 0 0)\n(llvm:code-entry _init 1456 0)\n(llvm:code-entry main 1876 84)\n(llvm:code-entry _start 1600 52)\n(llvm:code-entry abort@GLIBC_2.17 0 0)\n(llvm:code-entry _fini 1960 0)\n(llvm:code-entry __cxa_finalize@GLIBC_2.17 0 0)\n(llvm:code-entry __libc_start_main@GLIBC_2.34 0 0)\n(llvm:code-entry frame_dummy 1872 0)\n(llvm:code-entry __do_global_dtors_aux 1792 0)\n(llvm:code-entry register_tm_clones 1728 0)\n(llvm:code-entry deregister_tm_clones 1680 0)\n(llvm:code-entry call_weak_fn 1652 20)\n(llvm:code-entry .fini 1960 20)\n(llvm:code-entry .text 1600 360)\n(llvm:code-entry .plt 1488 96)\n(llvm:code-entry .init 1456 24)\n(llvm:elf-program-header 08 3464 632)\n(llvm:elf-program-header 07 0 0)\n(llvm:elf-program-header 06 1984 60)\n(llvm:elf-program-header 05 596 68)\n(llvm:elf-program-header 04 3480 496)\n(llvm:elf-program-header 03 3464 648)\n(llvm:elf-program-header 02 0 2212)\n(llvm:elf-program-header 01 568 27)\n(llvm:elf-program-header 00 64 504)\n(llvm:elf-program-header-flags 08 false true false false)\n(llvm:elf-program-header-flags 07 false true true false)\n(llvm:elf-program-header-flags 06 false true false false)\n(llvm:elf-program-header-flags 05 false true false false)\n(llvm:elf-program-header-flags 04 false true true false)\n(llvm:elf-program-header-flags 03 true true true false)\n(llvm:elf-program-header-flags 02 true true false true)\n(llvm:elf-program-header-flags 01 false true false false)\n(llvm:elf-program-header-flags 00 false true false false)\n(llvm:elf-virtual-program-header 08 69000 632)\n(llvm:elf-virtual-program-header 07 0 0)\n(llvm:elf-virtual-program-header 06 1984 60)\n(llvm:elf-virtual-program-header 05 596 68)\n(llvm:elf-virtual-program-header 04 69016 496)\n(llvm:elf-virtual-program-header 03 69000 656)\n(llvm:elf-virtual-program-header 02 0 2212)\n(llvm:elf-virtual-program-header 01 568 27)\n(llvm:elf-virtual-program-header 00 64 504)\n(llvm:entry-point 1600)\n(llvm:name-reference 69560 abort)\n(llvm:name-reference 69552 __gmon_start__)\n(llvm:name-reference 69544 __cxa_finalize)\n(llvm:name-reference 69536 __libc_start_main)\n(llvm:name-reference 69624 _ITM_registerTMCloneTable)\n(llvm:name-reference 69600 __gmon_start__)\n(llvm:name-reference 69584 __cxa_finalize)\n(llvm:name-reference 69576 _ITM_deregisterTMCloneTable)\n(llvm:section-entry .shstrtab 0 250 6853)\n(llvm:section-entry .strtab 0 557 6296)\n(llvm:section-entry .symtab 0 2136 4160)\n(llvm:section-entry .comment 0 43 4112)\n(llvm:section-entry .bss 69648 8 4112)\n(llvm:section-entry .data 69632 16 4096)\n(llvm:section-entry .got 69512 120 3976)\n(llvm:section-entry .dynamic 69016 496 3480)\n(llvm:section-entry .fini_array 69008 8 3472)\n(llvm:section-entry .init_array 69000 8 3464)\n(llvm:section-entry .eh_frame 2048 164 2048)\n(llvm:section-entry .eh_frame_hdr 1984 60 1984)\n(llvm:section-entry .rodata 1980 4 1980)\n(llvm:section-entry .fini 1960 20 1960)\n(llvm:section-entry .text 1600 360 1600)\n(llvm:section-entry .plt 1488 96 1488)\n(llvm:section-entry .init 1456 24 1456)\n(llvm:section-entry .rela.plt 1360 96 1360)\n(llvm:section-entry .rela.dyn 1120 240 1120)\n(llvm:section-entry .gnu.version_r 1072 48 1072)\n(llvm:section-entry .gnu.version 1054 18 1054)\n(llvm:section-entry .dynstr 912 141 912)\n(llvm:section-entry .dynsym 696 216 696)\n(llvm:section-entry .gnu.hash 664 28 664)\n(llvm:section-entry .note.ABI-tag 632 32 632)\n(llvm:section-entry .note.gnu.build-id 596 36 596)\n(llvm:section-entry .interp 568 27 568)\n(llvm:section-flags .shstrtab true false false)\n(llvm:section-flags .strtab true false false)\n(llvm:section-flags .symtab true false false)\n(llvm:section-flags .comment true false false)\n(llvm:section-flags .bss true true false)\n(llvm:section-flags .data true true false)\n(llvm:section-flags .got true true false)\n(llvm:section-flags .dynamic true true false)\n(llvm:section-flags .fini_array true true false)\n(llvm:section-flags .init_array true true false)\n(llvm:section-flags .eh_frame true false false)\n(llvm:section-flags .eh_frame_hdr true false false)\n(llvm:section-flags .rodata true false false)\n(llvm:section-flags .fini true false true)\n(llvm:section-flags .text true false true)\n(llvm:section-flags .plt true false true)\n(llvm:section-flags .init true false true)\n(llvm:section-flags .rela.plt true false false)\n(llvm:section-flags .rela.dyn true false false)\n(llvm:section-flags .gnu.version_r true false false)\n(llvm:section-flags .gnu.version true false false)\n(llvm:section-flags .dynstr true false false)\n(llvm:section-flags .dynsym true false false)\n(llvm:section-flags .gnu.hash true false false)\n(llvm:section-flags .note.ABI-tag true false false)\n(llvm:section-flags .note.gnu.build-id true false false)\n(llvm:section-flags .interp true false false)\n(llvm:symbol-entry abort 0 0 0 0)\n(llvm:symbol-entry __cxa_finalize 0 0 0 0)\n(llvm:symbol-entry __libc_start_main 0 0 0 0)\n(llvm:symbol-entry _init 1456 0 1456 1456)\n(llvm:symbol-entry main 1876 84 1876 1876)\n(llvm:symbol-entry _start 1600 52 1600 1600)\n(llvm:symbol-entry abort@GLIBC_2.17 0 0 0 0)\n(llvm:symbol-entry _fini 1960 0 1960 1960)\n(llvm:symbol-entry __cxa_finalize@GLIBC_2.17 0 0 0 0)\n(llvm:symbol-entry __libc_start_main@GLIBC_2.34 0 0 0 0)\n(llvm:symbol-entry frame_dummy 1872 0 1872 1872)\n(llvm:symbol-entry __do_global_dtors_aux 1792 0 1792 1792)\n(llvm:symbol-entry register_tm_clones 1728 0 1728 1728)\n(llvm:symbol-entry deregister_tm_clones 1680 0 1680 1680)\n(llvm:symbol-entry call_weak_fn 1652 20 1652 1652)\n(mapped 0 2212 0)\n(mapped 69000 648 3464)\n(named-region 0 2212 02)\n(named-region 69000 656 03)\n(named-region 568 27 .interp)\n(named-region 596 36 .note.gnu.build-id)\n(named-region 632 32 .note.ABI-tag)\n(named-region 664 28 .gnu.hash)\n(named-region 696 216 .dynsym)\n(named-region 912 141 .dynstr)\n(named-region 1054 18 .gnu.version)\n(named-region 1072 48 .gnu.version_r)\n(named-region 1120 240 .rela.dyn)\n(named-region 1360 96 .rela.plt)\n(named-region 1456 24 .init)\n(named-region 1488 96 .plt)\n(named-region 1600 360 .text)\n(named-region 1960 20 .fini)\n(named-region 1980 4 .rodata)\n(named-region 1984 60 .eh_frame_hdr)\n(named-region 2048 164 .eh_frame)\n(named-region 69000 8 .init_array)\n(named-region 69008 8 .fini_array)\n(named-region 69016 496 .dynamic)\n(named-region 69512 120 .got)\n(named-region 69632 16 .data)\n(named-region 69648 8 .bss)\n(named-region 0 43 .comment)\n(named-region 0 2136 .symtab)\n(named-region 0 557 .strtab)\n(named-region 0 250 .shstrtab)\n(named-symbol 1652 call_weak_fn)\n(named-symbol 1680 deregister_tm_clones)\n(named-symbol 1728 register_tm_clones)\n(named-symbol 1792 __do_global_dtors_aux)\n(named-symbol 1872 frame_dummy)\n(named-symbol 0 __libc_start_main@GLIBC_2.34)\n(named-symbol 0 __cxa_finalize@GLIBC_2.17)\n(named-symbol 1960 _fini)\n(named-symbol 0 abort@GLIBC_2.17)\n(named-symbol 1600 _start)\n(named-symbol 1876 main)\n(named-symbol 1456 _init)\n(named-symbol 0 __libc_start_main)\n(named-symbol 0 __cxa_finalize)\n(named-symbol 0 abort)\n(require libc.so.6)\n(section 568 27)\n(section 596 36)\n(section 632 32)\n(section 664 28)\n(section 696 216)\n(section 912 141)\n(section 1054 18)\n(section 1072 48)\n(section 1120 240)\n(section 1360 96)\n(section 1456 24)\n(section 1488 96)\n(section 1600 360)\n(section 1960 20)\n(section 1980 4)\n(section 1984 60)\n(section 2048 164)\n(section 69000 8)\n(section 69008 8)\n(section 69016 496)\n(section 69512 120)\n(section 69632 16)\n(section 69648 8)\n(section 0 43)\n(section 0 2136)\n(section 0 557)\n(section 0 250)\n(segment 0 2212 true false true)\n(segment 69000 656 true true false)\n(subarch v8)\n(symbol-chunk 1652 20 1652)\n(symbol-chunk 1600 52 1600)\n(symbol-chunk 1876 84 1876)\n(symbol-value 1652 1652)\n(symbol-value 1680 1680)\n(symbol-value 1728 1728)\n(symbol-value 1792 1792)\n(symbol-value 1872 1872)\n(symbol-value 1960 1960)\n(symbol-value 1600 1600)\n(symbol-value 1876 1876)\n(symbol-value 1456 1456)\n(symbol-value 0 0)\n(system \"\")\n(vendor \"\")\n"), -Attr("abi-name","\"aarch64-linux-gnu-elf\"")]), -Sections([Section(".shstrtab", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x40\x06\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xc0\x1b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x38\x00\x09\x00\x40\x00\x1c\x00\x1b\x00\x06\x00\x00\x00\x04\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x04\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xa4\x08\x00\x00\x00\x00\x00\x00\xa4\x08\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x01\x00\x00\x00\x06\x00\x00\x00\x88\x0d\x00\x00\x00\x00\x00\x00\x88\x0d"), -Section(".strtab", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x40\x06\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xc0\x1b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x38\x00\x09\x00\x40\x00\x1c\x00\x1b\x00\x06\x00\x00\x00\x04\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x04\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xa4\x08\x00\x00\x00\x00\x00\x00\xa4\x08\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x01\x00\x00\x00\x06\x00\x00\x00\x88\x0d\x00\x00\x00\x00\x00\x00\x88\x0d\x01\x00\x00\x00\x00\x00\x88\x0d\x01\x00\x00\x00\x00\x00\x88\x02\x00\x00\x00\x00\x00\x00\x90\x02\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x02\x00\x00\x00\x06\x00\x00\x00\x98\x0d\x00\x00\x00\x00\x00\x00\x98\x0d\x01\x00\x00\x00\x00\x00\x98\x0d\x01\x00\x00\x00\x00\x00\xf0\x01\x00\x00\x00\x00\x00\x00\xf0\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x04\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x50\xe5\x74\x64\x04\x00\x00\x00\xc0\x07\x00\x00\x00\x00\x00\x00\xc0\x07\x00\x00\x00\x00\x00\x00\xc0\x07\x00\x00\x00\x00\x00\x00\x3c\x00\x00\x00\x00\x00\x00\x00\x3c\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x51\xe5\x74\x64\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x52\xe5\x74\x64\x04\x00\x00\x00\x88\x0d\x00\x00\x00\x00\x00\x00\x88\x0d\x01\x00\x00\x00\x00\x00\x88\x0d\x01\x00\x00\x00\x00\x00\x78\x02\x00\x00\x00\x00\x00\x00\x78\x02\x00\x00\x00"), -Section(".symtab", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x40\x06\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xc0\x1b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x38\x00\x09\x00\x40\x00\x1c\x00\x1b\x00\x06\x00\x00\x00\x04\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x04\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xa4\x08\x00\x00\x00\x00\x00\x00\xa4\x08\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x01\x00\x00\x00\x06\x00\x00\x00\x88\x0d\x00\x00\x00\x00\x00\x00\x88\x0d\x01\x00\x00\x00\x00\x00\x88\x0d\x01\x00\x00\x00\x00\x00\x88\x02\x00\x00\x00\x00\x00\x00\x90\x02\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x02\x00\x00\x00\x06\x00\x00\x00\x98\x0d\x00\x00\x00\x00\x00\x00\x98\x0d\x01\x00\x00\x00\x00\x00\x98\x0d\x01\x00\x00\x00\x00\x00\xf0\x01\x00\x00\x00\x00\x00\x00\xf0\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x04\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x50\xe5\x74\x64\x04\x00\x00\x00\xc0\x07\x00\x00\x00\x00\x00\x00\xc0\x07\x00\x00\x00\x00\x00\x00\xc0\x07\x00\x00\x00\x00\x00\x00\x3c\x00\x00\x00\x00\x00\x00\x00\x3c\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x51\xe5\x74\x64\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x52\xe5\x74\x64\x04\x00\x00\x00\x88\x0d\x00\x00\x00\x00\x00\x00\x88\x0d\x01\x00\x00\x00\x00\x00\x88\x0d\x01\x00\x00\x00\x00\x00\x78\x02\x00\x00\x00\x00\x00\x00\x78\x02\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x2f\x6c\x69\x62\x2f\x6c\x64\x2d\x6c\x69\x6e\x75\x78\x2d\x61\x61\x72\x63\x68\x36\x34\x2e\x73\x6f\x2e\x31\x00\x00\x04\x00\x00\x00\x14\x00\x00\x00\x03\x00\x00\x00\x47\x4e\x55\x00\x8d\xd7\xd6\x6e\x8e\xa3\xba\xfe\xeb\x30\x6a\xf2\x7d\x6c\x64\xd4\xf0\xf2\xf8\xa6\x04\x00\x00\x00\x10\x00\x00\x00\x01\x00\x00\x00\x47\x4e\x55\x00\x00\x00\x00\x00\x03\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x01\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x0b\x00\xb0\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x16\x00\x00\x10\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x48\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x22\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x22\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x73\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5f\x5f\x63\x78\x61\x5f\x66\x69\x6e\x61\x6c\x69\x7a\x65\x00\x5f\x5f\x6c\x69\x62\x63\x5f\x73\x74\x61\x72\x74\x5f\x6d\x61\x69\x6e\x00\x61\x62\x6f\x72\x74\x00\x6c\x69\x62\x63\x2e\x73\x6f\x2e\x36\x00\x47\x4c\x49\x42\x43\x5f\x32\x2e\x31\x37\x00\x47\x4c\x49\x42\x43\x5f\x32\x2e\x33\x34\x00\x5f\x49\x54\x4d\x5f\x64\x65\x72\x65\x67\x69\x73\x74\x65\x72\x54\x4d\x43\x6c\x6f\x6e\x65\x54\x61\x62\x6c\x65\x00\x5f\x5f\x67\x6d\x6f\x6e\x5f\x73\x74\x61\x72\x74\x5f\x5f\x00\x5f\x49\x54\x4d\x5f\x72\x65\x67\x69\x73\x74\x65\x72\x54\x4d\x43\x6c\x6f\x6e\x65\x54\x61\x62\x6c\x65\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x01\x00\x03\x00\x01\x00\x03\x00\x01\x00\x01\x00\x02\x00\x28\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x97\x91\x96\x06\x00\x00\x03\x00\x32\x00\x00\x00\x10\x00\x00\x00\xb4\x91\x96\x06\x00\x00\x02\x00\x3d\x00\x00\x00\x00\x00\x00\x00\x88\x0d\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x50\x07\x00\x00\x00\x00\x00\x00\x90\x0d\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\xd8\x0f\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x11\x10\x01\x00\x00\x00\x00\x00\xe8\x0f\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x12\x10\x01\x00\x00\x00\x00\x00\xf0\x0f\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x54\x07\x00\x00\x00\x00\x00\x00\x08\x10\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x08\x10\x01\x00\x00\x00\x00\x00\xc8\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xd0\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe0\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xf8\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xa0\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xa8\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xb0\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xb8\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1f\x20\x03\xd5\xfd\x7b\xbf\xa9\xfd\x03\x00\x91\x2e\x00\x00\x94\xfd\x7b\xc1\xa8\xc0\x03\x5f\xd6\x00\x00\x00\x00\x00\x00\x00\x00\xf0\x7b\xbf\xa9\x90\x00\x00\x90\x11\xce\x47\xf9\x10\x62\x3e\x91\x20\x02\x1f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x90\x00\x00\x90\x11\xd2\x47\xf9\x10\x82\x3e\x91\x20\x02\x1f\xd6\x90\x00\x00\x90\x11\xd6\x47\xf9\x10\xa2\x3e\x91\x20\x02\x1f\xd6\x90\x00\x00\x90\x11\xda\x47\xf9\x10\xc2\x3e\x91\x20\x02\x1f\xd6\x90\x00\x00\x90\x11\xde\x47\xf9\x10\xe2\x3e\x91\x20\x02\x1f\xd6\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1f\x20\x03\xd5\x1d\x00\x80\xd2\x1e\x00\x80\xd2\xe5\x03\x00\xaa\xe1\x03\x40\xf9\xe2\x23\x00\x91\xe6\x03\x00\x91\x80\x00\x00\x90\x00\xf8\x47\xf9\x03\x00\x80\xd2\x04\x00\x80\xd2\xe1\xff\xff\x97\xec\xff\xff\x97\x80\x00\x00\x90\x00\xf0\x47\xf9\x40\x00\x00\xb4\xe4\xff\xff\x17\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x80\x00\x00\xb0\x00\x40\x00\x91\x81\x00\x00\xb0\x21\x40\x00\x91\x3f\x00\x00\xeb\xc0\x00\x00\x54\x81\x00\x00\x90\x21\xe4\x47\xf9\x61\x00\x00\xb4\xf0\x03\x01\xaa\x00\x02\x1f\xd6\xc0\x03\x5f\xd6\x80\x00\x00\xb0\x00\x40\x00\x91\x81\x00\x00\xb0\x21\x40\x00\x91\x21\x00\x00\xcb\x22\xfc\x7f\xd3\x41\x0c\x81\x8b\x21\xfc\x41\x93\xc1\x00\x00\xb4\x82\x00\x00\x90\x42\xfc\x47\xf9\x62\x00\x00\xb4\xf0\x03\x02\xaa\x00\x02\x1f\xd6\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\xfd\x7b\xbe\xa9\xfd\x03\x00\x91\xf3\x0b\x00\xf9\x93\x00\x00\xb0\x60\x42\x40\x39\x40\x01\x00\x35\x80\x00\x00\x90\x00\xe8\x47\xf9\x80\x00\x00\xb4\x80\x00\x00\xb0\x00\x04\x40\xf9\xb5\xff\xff\x97\xd8\xff\xff\x97\x20\x00\x80\x52\x60\x42\x00\x39\xf3\x0b\x40\xf9\xfd\x7b\xc2\xa8\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\xdc\xff\xff\x17\xff\x43\x00\xd1\x80\x00\x00\x90\x00\xf4\x47\xf9\x00\x00\x40\x39\xe0\x3f\x00\x39\xff\x3f\x00\x39\x80\x00\x00\x90\x00\xec\x47\xf9\xe1\x3f\x40\x39\x01\x00\x00\x39\x80\x00\x00\x90\x00\xf4\x47\xf9\x00\x00\x40\x39\xe0\x3f\x00\x39\x80\x00\x00\x90\x00\xec\x47\xf9\xe1\x3f\x40\x39\x01\x00\x00\x39\x00\x00\x80\x52\xff\x43\x00\x91\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\xfd\x7b\xbf\xa9\xfd\x03\x00\x91\xfd\x7b\xc1\xa8\xc0\x03\x5f\xd6\x01\x00\x02\x00\x01\x1b\x03\x3b\x3c\x00\x00\x00\x06\x00\x00\x00\x80\xfe\xff\xff\x54\x00\x00\x00\xd0\xfe\xff\xff\x68\x00\x00\x00\x00\xff\xff\xff\x7c\x00\x00\x00\x40\xff\xff\xff\x90\x00\x00\x00\x90\xff\xff\xff\xb4\x00\x00\x00\x94\xff\xff\xff\xc8\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x01\x7a\x52\x00\x04\x78\x1e\x01\x1b\x0c\x1f\x00\x10\x00\x00\x00\x18\x00\x00\x00\x24\xfe\xff\xff\x34\x00\x00\x00\x00\x41\x07\x1e\x10\x00\x00\x00\x2c\x00\x00\x00\x60\xfe\xff\xff\x30\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x40\x00\x00\x00\x7c\xfe\xff\xff\x3c\x00\x00\x00\x00\x00\x00\x00\x20\x00\x00\x00\x54\x00\x00\x00"), -Section(".comment", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x40\x06\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xc0\x1b\x00"), -Section(".interp", 0x238, "\x2f\x6c\x69\x62\x2f\x6c\x64\x2d\x6c\x69\x6e\x75\x78\x2d\x61\x61\x72\x63\x68\x36\x34\x2e\x73\x6f\x2e\x31\x00"), -Section(".note.gnu.build-id", 0x254, "\x04\x00\x00\x00\x14\x00\x00\x00\x03\x00\x00\x00\x47\x4e\x55\x00\x8d\xd7\xd6\x6e\x8e\xa3\xba\xfe\xeb\x30\x6a\xf2\x7d\x6c\x64\xd4\xf0\xf2\xf8\xa6"), -Section(".note.ABI-tag", 0x278, "\x04\x00\x00\x00\x10\x00\x00\x00\x01\x00\x00\x00\x47\x4e\x55\x00\x00\x00\x00\x00\x03\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00"), -Section(".gnu.hash", 0x298, "\x01\x00\x00\x00\x01\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".dynsym", 0x2B8, "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x0b\x00\xb0\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x16\x00\x00\x10\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x48\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x22\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x22\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x73\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".dynstr", 0x390, "\x00\x5f\x5f\x63\x78\x61\x5f\x66\x69\x6e\x61\x6c\x69\x7a\x65\x00\x5f\x5f\x6c\x69\x62\x63\x5f\x73\x74\x61\x72\x74\x5f\x6d\x61\x69\x6e\x00\x61\x62\x6f\x72\x74\x00\x6c\x69\x62\x63\x2e\x73\x6f\x2e\x36\x00\x47\x4c\x49\x42\x43\x5f\x32\x2e\x31\x37\x00\x47\x4c\x49\x42\x43\x5f\x32\x2e\x33\x34\x00\x5f\x49\x54\x4d\x5f\x64\x65\x72\x65\x67\x69\x73\x74\x65\x72\x54\x4d\x43\x6c\x6f\x6e\x65\x54\x61\x62\x6c\x65\x00\x5f\x5f\x67\x6d\x6f\x6e\x5f\x73\x74\x61\x72\x74\x5f\x5f\x00\x5f\x49\x54\x4d\x5f\x72\x65\x67\x69\x73\x74\x65\x72\x54\x4d\x43\x6c\x6f\x6e\x65\x54\x61\x62\x6c\x65\x00"), -Section(".gnu.version", 0x41E, "\x00\x00\x00\x00\x00\x00\x02\x00\x01\x00\x03\x00\x01\x00\x03\x00\x01\x00"), -Section(".gnu.version_r", 0x430, "\x01\x00\x02\x00\x28\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x97\x91\x96\x06\x00\x00\x03\x00\x32\x00\x00\x00\x10\x00\x00\x00\xb4\x91\x96\x06\x00\x00\x02\x00\x3d\x00\x00\x00\x00\x00\x00\x00"), -Section(".rela.dyn", 0x460, "\x88\x0d\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x50\x07\x00\x00\x00\x00\x00\x00\x90\x0d\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\xd8\x0f\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x11\x10\x01\x00\x00\x00\x00\x00\xe8\x0f\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x12\x10\x01\x00\x00\x00\x00\x00\xf0\x0f\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x54\x07\x00\x00\x00\x00\x00\x00\x08\x10\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x08\x10\x01\x00\x00\x00\x00\x00\xc8\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xd0\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe0\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xf8\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".rela.plt", 0x550, "\xa0\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xa8\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xb0\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xb8\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".init", 0x5B0, "\x1f\x20\x03\xd5\xfd\x7b\xbf\xa9\xfd\x03\x00\x91\x2e\x00\x00\x94\xfd\x7b\xc1\xa8\xc0\x03\x5f\xd6"), -Section(".plt", 0x5D0, "\xf0\x7b\xbf\xa9\x90\x00\x00\x90\x11\xce\x47\xf9\x10\x62\x3e\x91\x20\x02\x1f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x90\x00\x00\x90\x11\xd2\x47\xf9\x10\x82\x3e\x91\x20\x02\x1f\xd6\x90\x00\x00\x90\x11\xd6\x47\xf9\x10\xa2\x3e\x91\x20\x02\x1f\xd6\x90\x00\x00\x90\x11\xda\x47\xf9\x10\xc2\x3e\x91\x20\x02\x1f\xd6\x90\x00\x00\x90\x11\xde\x47\xf9\x10\xe2\x3e\x91\x20\x02\x1f\xd6"), -Section(".fini", 0x7A8, "\x1f\x20\x03\xd5\xfd\x7b\xbf\xa9\xfd\x03\x00\x91\xfd\x7b\xc1\xa8\xc0\x03\x5f\xd6"), -Section(".rodata", 0x7BC, "\x01\x00\x02\x00"), -Section(".eh_frame_hdr", 0x7C0, "\x01\x1b\x03\x3b\x3c\x00\x00\x00\x06\x00\x00\x00\x80\xfe\xff\xff\x54\x00\x00\x00\xd0\xfe\xff\xff\x68\x00\x00\x00\x00\xff\xff\xff\x7c\x00\x00\x00\x40\xff\xff\xff\x90\x00\x00\x00\x90\xff\xff\xff\xb4\x00\x00\x00\x94\xff\xff\xff\xc8\x00\x00\x00"), -Section(".eh_frame", 0x800, "\x10\x00\x00\x00\x00\x00\x00\x00\x01\x7a\x52\x00\x04\x78\x1e\x01\x1b\x0c\x1f\x00\x10\x00\x00\x00\x18\x00\x00\x00\x24\xfe\xff\xff\x34\x00\x00\x00\x00\x41\x07\x1e\x10\x00\x00\x00\x2c\x00\x00\x00\x60\xfe\xff\xff\x30\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x40\x00\x00\x00\x7c\xfe\xff\xff\x3c\x00\x00\x00\x00\x00\x00\x00\x20\x00\x00\x00\x54\x00\x00\x00\xa8\xfe\xff\xff\x48\x00\x00\x00\x00\x41\x0e\x20\x9d\x04\x9e\x03\x42\x93\x02\x4e\xde\xdd\xd3\x0e\x00\x00\x00\x00\x10\x00\x00\x00\x78\x00\x00\x00\xd4\xfe\xff\xff\x04\x00\x00\x00\x00\x00\x00\x00\x14\x00\x00\x00\x8c\x00\x00\x00\xc4\xfe\xff\xff\x54\x00\x00\x00\x00\x41\x0e\x10\x53\x0e\x00\x00\x00\x00\x00\x00"), -Section(".fini_array", 0x10D90, "\x00\x07\x00\x00\x00\x00\x00\x00"), -Section(".dynamic", 0x10D98, "\x01\x00\x00\x00\x00\x00\x00\x00\x28\x00\x00\x00\x00\x00\x00\x00\x0c\x00\x00\x00\x00\x00\x00\x00\xb0\x05\x00\x00\x00\x00\x00\x00\x0d\x00\x00\x00\x00\x00\x00\x00\xa8\x07\x00\x00\x00\x00\x00\x00\x19\x00\x00\x00\x00\x00\x00\x00\x88\x0d\x01\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x1a\x00\x00\x00\x00\x00\x00\x00\x90\x0d\x01\x00\x00\x00\x00\x00\x1c\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\xf5\xfe\xff\x6f\x00\x00\x00\x00\x98\x02\x00\x00\x00\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x90\x03\x00\x00\x00\x00\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\xb8\x02\x00\x00\x00\x00\x00\x00\x0a\x00\x00\x00\x00\x00\x00\x00\x8d\x00\x00\x00\x00\x00\x00\x00\x0b\x00\x00\x00\x00\x00\x00\x00\x18\x00\x00\x00\x00\x00\x00\x00\x15\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x88\x0f\x01\x00\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x60\x00\x00\x00\x00\x00\x00\x00\x14\x00\x00\x00\x00\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x17\x00\x00\x00\x00\x00\x00\x00\x50\x05\x00\x00\x00\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x60\x04\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\xf0\x00\x00\x00\x00\x00\x00\x00\x09\x00\x00\x00\x00\x00\x00\x00\x18\x00\x00\x00\x00\x00\x00\x00\x1e\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\xfb\xff\xff\x6f\x00\x00\x00\x00\x01\x00\x00\x08\x00\x00\x00\x00\xfe\xff\xff\x6f\x00\x00\x00\x00\x30\x04\x00\x00\x00\x00\x00\x00\xff\xff\xff\x6f\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\xf0\xff\xff\x6f\x00\x00\x00\x00\x1e\x04\x00\x00\x00\x00\x00\x00\xf9\xff\xff\x6f\x00\x00\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".got", 0x10F88, "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xd0\x05\x00\x00\x00\x00\x00\x00\xd0\x05\x00\x00\x00\x00\x00\x00\xd0\x05\x00\x00\x00\x00\x00\x00\xd0\x05\x00\x00\x00\x00\x00\x00\x98\x0d\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x11\x10\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x12\x10\x01\x00\x00\x00\x00\x00\x54\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".data", 0x11000, "\x00\x00\x00\x00\x00\x00\x00\x00\x08\x10\x01\x00\x00\x00\x00\x00"), -Section(".init_array", 0x10D88, "\x50\x07\x00\x00\x00\x00\x00\x00"), -Section(".text", 0x640, "\x1f\x20\x03\xd5\x1d\x00\x80\xd2\x1e\x00\x80\xd2\xe5\x03\x00\xaa\xe1\x03\x40\xf9\xe2\x23\x00\x91\xe6\x03\x00\x91\x80\x00\x00\x90\x00\xf8\x47\xf9\x03\x00\x80\xd2\x04\x00\x80\xd2\xe1\xff\xff\x97\xec\xff\xff\x97\x80\x00\x00\x90\x00\xf0\x47\xf9\x40\x00\x00\xb4\xe4\xff\xff\x17\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x80\x00\x00\xb0\x00\x40\x00\x91\x81\x00\x00\xb0\x21\x40\x00\x91\x3f\x00\x00\xeb\xc0\x00\x00\x54\x81\x00\x00\x90\x21\xe4\x47\xf9\x61\x00\x00\xb4\xf0\x03\x01\xaa\x00\x02\x1f\xd6\xc0\x03\x5f\xd6\x80\x00\x00\xb0\x00\x40\x00\x91\x81\x00\x00\xb0\x21\x40\x00\x91\x21\x00\x00\xcb\x22\xfc\x7f\xd3\x41\x0c\x81\x8b\x21\xfc\x41\x93\xc1\x00\x00\xb4\x82\x00\x00\x90\x42\xfc\x47\xf9\x62\x00\x00\xb4\xf0\x03\x02\xaa\x00\x02\x1f\xd6\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\xfd\x7b\xbe\xa9\xfd\x03\x00\x91\xf3\x0b\x00\xf9\x93\x00\x00\xb0\x60\x42\x40\x39\x40\x01\x00\x35\x80\x00\x00\x90\x00\xe8\x47\xf9\x80\x00\x00\xb4\x80\x00\x00\xb0\x00\x04\x40\xf9\xb5\xff\xff\x97\xd8\xff\xff\x97\x20\x00\x80\x52\x60\x42\x00\x39\xf3\x0b\x40\xf9\xfd\x7b\xc2\xa8\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\xdc\xff\xff\x17\xff\x43\x00\xd1\x80\x00\x00\x90\x00\xf4\x47\xf9\x00\x00\x40\x39\xe0\x3f\x00\x39\xff\x3f\x00\x39\x80\x00\x00\x90\x00\xec\x47\xf9\xe1\x3f\x40\x39\x01\x00\x00\x39\x80\x00\x00\x90\x00\xf4\x47\xf9\x00\x00\x40\x39\xe0\x3f\x00\x39\x80\x00\x00\x90\x00\xec\x47\xf9\xe1\x3f\x40\x39\x01\x00\x00\x39\x00\x00\x80\x52\xff\x43\x00\x91\xc0\x03\x5f\xd6")]), -Memmap([Annotation(Region(0x0,0x8A3), Attr("segment","02 0 2212")), -Annotation(Region(0x640,0x673), Attr("symbol","\"_start\"")), -Annotation(Region(0x0,0xF9), Attr("section","\".shstrtab\"")), -Annotation(Region(0x0,0x22C), Attr("section","\".strtab\"")), -Annotation(Region(0x0,0x857), Attr("section","\".symtab\"")), -Annotation(Region(0x0,0x2A), Attr("section","\".comment\"")), -Annotation(Region(0x238,0x252), Attr("section","\".interp\"")), -Annotation(Region(0x254,0x277), Attr("section","\".note.gnu.build-id\"")), -Annotation(Region(0x278,0x297), Attr("section","\".note.ABI-tag\"")), -Annotation(Region(0x298,0x2B3), Attr("section","\".gnu.hash\"")), -Annotation(Region(0x2B8,0x38F), Attr("section","\".dynsym\"")), -Annotation(Region(0x390,0x41C), Attr("section","\".dynstr\"")), -Annotation(Region(0x41E,0x42F), Attr("section","\".gnu.version\"")), -Annotation(Region(0x430,0x45F), Attr("section","\".gnu.version_r\"")), -Annotation(Region(0x460,0x54F), Attr("section","\".rela.dyn\"")), -Annotation(Region(0x550,0x5AF), Attr("section","\".rela.plt\"")), -Annotation(Region(0x5B0,0x5C7), Attr("section","\".init\"")), -Annotation(Region(0x5D0,0x62F), Attr("section","\".plt\"")), -Annotation(Region(0x5B0,0x5C7), Attr("code-region","()")), -Annotation(Region(0x5D0,0x62F), Attr("code-region","()")), -Annotation(Region(0x640,0x673), Attr("symbol-info","_start 0x640 52")), -Annotation(Region(0x674,0x687), Attr("symbol","\"call_weak_fn\"")), -Annotation(Region(0x674,0x687), Attr("symbol-info","call_weak_fn 0x674 20")), -Annotation(Region(0x754,0x7A7), Attr("symbol","\"main\"")), -Annotation(Region(0x754,0x7A7), Attr("symbol-info","main 0x754 84")), -Annotation(Region(0x7A8,0x7BB), Attr("section","\".fini\"")), -Annotation(Region(0x7BC,0x7BF), Attr("section","\".rodata\"")), -Annotation(Region(0x7C0,0x7FB), Attr("section","\".eh_frame_hdr\"")), -Annotation(Region(0x800,0x8A3), Attr("section","\".eh_frame\"")), -Annotation(Region(0x10D88,0x1100F), Attr("segment","03 0x10D88 656")), -Annotation(Region(0x10D90,0x10D97), Attr("section","\".fini_array\"")), -Annotation(Region(0x10D98,0x10F87), Attr("section","\".dynamic\"")), -Annotation(Region(0x10F88,0x10FFF), Attr("section","\".got\"")), -Annotation(Region(0x11000,0x1100F), Attr("section","\".data\"")), -Annotation(Region(0x10D88,0x10D8F), Attr("section","\".init_array\"")), -Annotation(Region(0x640,0x7A7), Attr("section","\".text\"")), -Annotation(Region(0x640,0x7A7), Attr("code-region","()")), -Annotation(Region(0x7A8,0x7BB), Attr("code-region","()"))]), -Program(Tid(1_500, "%000005dc"), Attrs([]), - Subs([Sub(Tid(1_450, "@__cxa_finalize"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x600"), -Attr("stub","()")]), "__cxa_finalize", Args([Arg(Tid(1_501, "%000005dd"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("__cxa_finalize_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(958, "@__cxa_finalize"), - Attrs([Attr("address","0x600")]), Phis([]), -Defs([Def(Tid(1_206, "%000004b6"), Attrs([Attr("address","0x600"), -Attr("insn","adrp x16, #65536")]), Var("R16",Imm(64)), Int(65536,64)), -Def(Tid(1_213, "%000004bd"), Attrs([Attr("address","0x604"), -Attr("insn","ldr x17, [x16, #0xfa8]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(4008,64)),LittleEndian(),64)), -Def(Tid(1_219, "%000004c3"), Attrs([Attr("address","0x608"), -Attr("insn","add x16, x16, #0xfa8")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(4008,64)))]), Jmps([Call(Tid(1_224, "%000004c8"), - Attrs([Attr("address","0x60C"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), -Sub(Tid(1_451, "@__do_global_dtors_aux"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x700")]), - "__do_global_dtors_aux", Args([Arg(Tid(1_502, "%000005de"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("__do_global_dtors_aux_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(674, "@__do_global_dtors_aux"), - Attrs([Attr("address","0x700")]), Phis([]), Defs([Def(Tid(678, "%000002a6"), - Attrs([Attr("address","0x700"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("#3",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(18446744073709551584,64))), -Def(Tid(684, "%000002ac"), Attrs([Attr("address","0x700"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("#3",Imm(64)),Var("R29",Imm(64)),LittleEndian(),64)), -Def(Tid(690, "%000002b2"), Attrs([Attr("address","0x700"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("#3",Imm(64)),Int(8,64)),Var("R30",Imm(64)),LittleEndian(),64)), -Def(Tid(694, "%000002b6"), Attrs([Attr("address","0x700"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("R31",Imm(64)), -Var("#3",Imm(64))), Def(Tid(700, "%000002bc"), - Attrs([Attr("address","0x704"), Attr("insn","mov x29, sp")]), - Var("R29",Imm(64)), Var("R31",Imm(64))), Def(Tid(708, "%000002c4"), - Attrs([Attr("address","0x708"), Attr("insn","str x19, [sp, #0x10]")]), - Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(16,64)),Var("R19",Imm(64)),LittleEndian(),64)), -Def(Tid(713, "%000002c9"), Attrs([Attr("address","0x70C"), -Attr("insn","adrp x19, #69632")]), Var("R19",Imm(64)), Int(69632,64)), -Def(Tid(720, "%000002d0"), Attrs([Attr("address","0x710"), -Attr("insn","ldrb w0, [x19, #0x10]")]), Var("R0",Imm(64)), -UNSIGNED(64,Load(Var("mem",Mem(64,8)),PLUS(Var("R19",Imm(64)),Int(16,64)),LittleEndian(),8)))]), -Jmps([Goto(Tid(727, "%000002d7"), Attrs([Attr("address","0x714"), -Attr("insn","cbnz w0, #0x28")]), - NEQ(Extract(31,0,Var("R0",Imm(64))),Int(0,32)), -Direct(Tid(725, "%000002d5"))), Goto(Tid(1_490, "%000005d2"), Attrs([]), - Int(1,1), Direct(Tid(903, "%00000387")))])), Blk(Tid(903, "%00000387"), - Attrs([Attr("address","0x718")]), Phis([]), Defs([Def(Tid(906, "%0000038a"), - Attrs([Attr("address","0x718"), Attr("insn","adrp x0, #65536")]), - Var("R0",Imm(64)), Int(65536,64)), Def(Tid(913, "%00000391"), - Attrs([Attr("address","0x71C"), Attr("insn","ldr x0, [x0, #0xfd0]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(4048,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(919, "%00000397"), Attrs([Attr("address","0x720"), -Attr("insn","cbz x0, #0x10")]), EQ(Var("R0",Imm(64)),Int(0,64)), -Direct(Tid(917, "%00000395"))), Goto(Tid(1_491, "%000005d3"), Attrs([]), - Int(1,1), Direct(Tid(942, "%000003ae")))])), Blk(Tid(942, "%000003ae"), - Attrs([Attr("address","0x724")]), Phis([]), Defs([Def(Tid(945, "%000003b1"), - Attrs([Attr("address","0x724"), Attr("insn","adrp x0, #69632")]), - Var("R0",Imm(64)), Int(69632,64)), Def(Tid(952, "%000003b8"), - Attrs([Attr("address","0x728"), Attr("insn","ldr x0, [x0, #0x8]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(957, "%000003bd"), Attrs([Attr("address","0x72C"), -Attr("insn","bl #-0x12c")]), Var("R30",Imm(64)), Int(1840,64))]), -Jmps([Call(Tid(960, "%000003c0"), Attrs([Attr("address","0x72C"), -Attr("insn","bl #-0x12c")]), Int(1,1), -(Direct(Tid(1_450, "@__cxa_finalize")),Direct(Tid(917, "%00000395"))))])), -Blk(Tid(917, "%00000395"), Attrs([Attr("address","0x730")]), Phis([]), -Defs([Def(Tid(925, "%0000039d"), Attrs([Attr("address","0x730"), -Attr("insn","bl #-0xa0")]), Var("R30",Imm(64)), Int(1844,64))]), -Jmps([Call(Tid(927, "%0000039f"), Attrs([Attr("address","0x730"), -Attr("insn","bl #-0xa0")]), Int(1,1), -(Direct(Tid(1_464, "@deregister_tm_clones")),Direct(Tid(929, "%000003a1"))))])), -Blk(Tid(929, "%000003a1"), Attrs([Attr("address","0x734")]), Phis([]), -Defs([Def(Tid(932, "%000003a4"), Attrs([Attr("address","0x734"), -Attr("insn","mov w0, #0x1")]), Var("R0",Imm(64)), Int(1,64)), -Def(Tid(940, "%000003ac"), Attrs([Attr("address","0x738"), -Attr("insn","strb w0, [x19, #0x10]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R19",Imm(64)),Int(16,64)),Extract(7,0,Var("R0",Imm(64))),LittleEndian(),8))]), -Jmps([Goto(Tid(1_492, "%000005d4"), Attrs([]), Int(1,1), -Direct(Tid(725, "%000002d5")))])), Blk(Tid(725, "%000002d5"), - Attrs([Attr("address","0x73C")]), Phis([]), Defs([Def(Tid(735, "%000002df"), - Attrs([Attr("address","0x73C"), Attr("insn","ldr x19, [sp, #0x10]")]), - Var("R19",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(16,64)),LittleEndian(),64)), -Def(Tid(742, "%000002e6"), Attrs([Attr("address","0x740"), -Attr("insn","ldp x29, x30, [sp], #0x20")]), Var("R29",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(747, "%000002eb"), Attrs([Attr("address","0x740"), -Attr("insn","ldp x29, x30, [sp], #0x20")]), Var("R30",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(751, "%000002ef"), Attrs([Attr("address","0x740"), -Attr("insn","ldp x29, x30, [sp], #0x20")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(32,64)))]), Jmps([Call(Tid(756, "%000002f4"), - Attrs([Attr("address","0x744"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), Sub(Tid(1_455, "@__libc_start_main"), - Attrs([Attr("c.proto","signed (*)(signed (*)(signed , char** , char** );* main, signed , char** , \nvoid* auxv)"), -Attr("address","0x5F0"), Attr("stub","()")]), "__libc_start_main", - Args([Arg(Tid(1_503, "%000005df"), - Attrs([Attr("c.layout","**[ : 64]"), -Attr("c.data","Top:u64 ptr ptr"), -Attr("c.type","signed (*)(signed , char** , char** );*")]), - Var("__libc_start_main_main",Imm(64)), Var("R0",Imm(64)), In()), -Arg(Tid(1_504, "%000005e0"), Attrs([Attr("c.layout","[signed : 32]"), -Attr("c.data","Top:u32"), Attr("c.type","signed")]), - Var("__libc_start_main_arg2",Imm(32)), LOW(32,Var("R1",Imm(64))), In()), -Arg(Tid(1_505, "%000005e1"), Attrs([Attr("c.layout","**[char : 8]"), -Attr("c.data","Top:u8 ptr ptr"), Attr("c.type","char**")]), - Var("__libc_start_main_arg3",Imm(64)), Var("R2",Imm(64)), Both()), -Arg(Tid(1_506, "%000005e2"), Attrs([Attr("c.layout","*[ : 8]"), -Attr("c.data","{} ptr"), Attr("c.type","void*")]), - Var("__libc_start_main_auxv",Imm(64)), Var("R3",Imm(64)), Both()), -Arg(Tid(1_507, "%000005e3"), Attrs([Attr("c.layout","[signed : 32]"), -Attr("c.data","Top:u32"), Attr("c.type","signed")]), - Var("__libc_start_main_result",Imm(32)), LOW(32,Var("R0",Imm(64))), -Out())]), Blks([Blk(Tid(507, "@__libc_start_main"), - Attrs([Attr("address","0x5F0")]), Phis([]), -Defs([Def(Tid(1_184, "%000004a0"), Attrs([Attr("address","0x5F0"), -Attr("insn","adrp x16, #65536")]), Var("R16",Imm(64)), Int(65536,64)), -Def(Tid(1_191, "%000004a7"), Attrs([Attr("address","0x5F4"), -Attr("insn","ldr x17, [x16, #0xfa0]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(4000,64)),LittleEndian(),64)), -Def(Tid(1_197, "%000004ad"), Attrs([Attr("address","0x5F8"), -Attr("insn","add x16, x16, #0xfa0")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(4000,64)))]), Jmps([Call(Tid(1_202, "%000004b2"), - Attrs([Attr("address","0x5FC"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), Sub(Tid(1_456, "@_fini"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x7A8")]), - "_fini", Args([Arg(Tid(1_508, "%000005e4"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("_fini_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(31, "@_fini"), - Attrs([Attr("address","0x7A8")]), Phis([]), Defs([Def(Tid(37, "%00000025"), - Attrs([Attr("address","0x7AC"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("#0",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(18446744073709551600,64))), -Def(Tid(43, "%0000002b"), Attrs([Attr("address","0x7AC"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("#0",Imm(64)),Var("R29",Imm(64)),LittleEndian(),64)), -Def(Tid(49, "%00000031"), Attrs([Attr("address","0x7AC"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("#0",Imm(64)),Int(8,64)),Var("R30",Imm(64)),LittleEndian(),64)), -Def(Tid(53, "%00000035"), Attrs([Attr("address","0x7AC"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("R31",Imm(64)), -Var("#0",Imm(64))), Def(Tid(59, "%0000003b"), Attrs([Attr("address","0x7B0"), -Attr("insn","mov x29, sp")]), Var("R29",Imm(64)), Var("R31",Imm(64))), -Def(Tid(66, "%00000042"), Attrs([Attr("address","0x7B4"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R29",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(71, "%00000047"), Attrs([Attr("address","0x7B4"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R30",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(75, "%0000004b"), Attrs([Attr("address","0x7B4"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(16,64)))]), Jmps([Call(Tid(80, "%00000050"), - Attrs([Attr("address","0x7B8"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), Sub(Tid(1_457, "@_init"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x5B0")]), - "_init", Args([Arg(Tid(1_509, "%000005e5"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("_init_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(1_296, "@_init"), - Attrs([Attr("address","0x5B0")]), Phis([]), -Defs([Def(Tid(1_302, "%00000516"), Attrs([Attr("address","0x5B4"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("#5",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(18446744073709551600,64))), -Def(Tid(1_308, "%0000051c"), Attrs([Attr("address","0x5B4"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("#5",Imm(64)),Var("R29",Imm(64)),LittleEndian(),64)), -Def(Tid(1_314, "%00000522"), Attrs([Attr("address","0x5B4"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("#5",Imm(64)),Int(8,64)),Var("R30",Imm(64)),LittleEndian(),64)), -Def(Tid(1_318, "%00000526"), Attrs([Attr("address","0x5B4"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("R31",Imm(64)), -Var("#5",Imm(64))), Def(Tid(1_324, "%0000052c"), - Attrs([Attr("address","0x5B8"), Attr("insn","mov x29, sp")]), - Var("R29",Imm(64)), Var("R31",Imm(64))), Def(Tid(1_329, "%00000531"), - Attrs([Attr("address","0x5BC"), Attr("insn","bl #0xb8")]), - Var("R30",Imm(64)), Int(1472,64))]), Jmps([Call(Tid(1_331, "%00000533"), - Attrs([Attr("address","0x5BC"), Attr("insn","bl #0xb8")]), Int(1,1), -(Direct(Tid(1_462, "@call_weak_fn")),Direct(Tid(1_333, "%00000535"))))])), -Blk(Tid(1_333, "%00000535"), Attrs([Attr("address","0x5C0")]), Phis([]), -Defs([Def(Tid(1_338, "%0000053a"), Attrs([Attr("address","0x5C0"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R29",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(1_343, "%0000053f"), Attrs([Attr("address","0x5C0"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R30",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(1_347, "%00000543"), Attrs([Attr("address","0x5C0"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(16,64)))]), Jmps([Call(Tid(1_352, "%00000548"), - Attrs([Attr("address","0x5C4"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), Sub(Tid(1_458, "@_start"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x640"), -Attr("entry-point","()")]), "_start", Args([Arg(Tid(1_510, "%000005e6"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("_start_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(444, "@_start"), - Attrs([Attr("address","0x640")]), Phis([]), Defs([Def(Tid(449, "%000001c1"), - Attrs([Attr("address","0x644"), Attr("insn","mov x29, #0x0")]), - Var("R29",Imm(64)), Int(0,64)), Def(Tid(454, "%000001c6"), - Attrs([Attr("address","0x648"), Attr("insn","mov x30, #0x0")]), - Var("R30",Imm(64)), Int(0,64)), Def(Tid(460, "%000001cc"), - Attrs([Attr("address","0x64C"), Attr("insn","mov x5, x0")]), - Var("R5",Imm(64)), Var("R0",Imm(64))), Def(Tid(467, "%000001d3"), - Attrs([Attr("address","0x650"), Attr("insn","ldr x1, [sp]")]), - Var("R1",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(473, "%000001d9"), Attrs([Attr("address","0x654"), -Attr("insn","add x2, sp, #0x8")]), Var("R2",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(8,64))), Def(Tid(479, "%000001df"), - Attrs([Attr("address","0x658"), Attr("insn","mov x6, sp")]), - Var("R6",Imm(64)), Var("R31",Imm(64))), Def(Tid(484, "%000001e4"), - Attrs([Attr("address","0x65C"), Attr("insn","adrp x0, #65536")]), - Var("R0",Imm(64)), Int(65536,64)), Def(Tid(491, "%000001eb"), - Attrs([Attr("address","0x660"), Attr("insn","ldr x0, [x0, #0xff0]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(4080,64)),LittleEndian(),64)), -Def(Tid(496, "%000001f0"), Attrs([Attr("address","0x664"), -Attr("insn","mov x3, #0x0")]), Var("R3",Imm(64)), Int(0,64)), -Def(Tid(501, "%000001f5"), Attrs([Attr("address","0x668"), -Attr("insn","mov x4, #0x0")]), Var("R4",Imm(64)), Int(0,64)), -Def(Tid(506, "%000001fa"), Attrs([Attr("address","0x66C"), -Attr("insn","bl #-0x7c")]), Var("R30",Imm(64)), Int(1648,64))]), -Jmps([Call(Tid(509, "%000001fd"), Attrs([Attr("address","0x66C"), -Attr("insn","bl #-0x7c")]), Int(1,1), -(Direct(Tid(1_455, "@__libc_start_main")),Direct(Tid(511, "%000001ff"))))])), -Blk(Tid(511, "%000001ff"), Attrs([Attr("address","0x670")]), Phis([]), -Defs([Def(Tid(514, "%00000202"), Attrs([Attr("address","0x670"), -Attr("insn","bl #-0x50")]), Var("R30",Imm(64)), Int(1652,64))]), -Jmps([Call(Tid(517, "%00000205"), Attrs([Attr("address","0x670"), -Attr("insn","bl #-0x50")]), Int(1,1), -(Direct(Tid(1_461, "@abort")),Direct(Tid(1_493, "%000005d5"))))])), -Blk(Tid(1_493, "%000005d5"), Attrs([]), Phis([]), Defs([]), -Jmps([Call(Tid(1_494, "%000005d6"), Attrs([]), Int(1,1), -(Direct(Tid(1_462, "@call_weak_fn")),))]))])), Sub(Tid(1_461, "@abort"), - Attrs([Attr("noreturn","()"), Attr("c.proto","void (*)(void)"), -Attr("address","0x620"), Attr("stub","()")]), "abort", Args([]), -Blks([Blk(Tid(515, "@abort"), Attrs([Attr("address","0x620")]), Phis([]), -Defs([Def(Tid(1_250, "%000004e2"), Attrs([Attr("address","0x620"), -Attr("insn","adrp x16, #65536")]), Var("R16",Imm(64)), Int(65536,64)), -Def(Tid(1_257, "%000004e9"), Attrs([Attr("address","0x624"), -Attr("insn","ldr x17, [x16, #0xfb8]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(4024,64)),LittleEndian(),64)), -Def(Tid(1_263, "%000004ef"), Attrs([Attr("address","0x628"), -Attr("insn","add x16, x16, #0xfb8")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(4024,64)))]), Jmps([Call(Tid(1_268, "%000004f4"), - Attrs([Attr("address","0x62C"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), Sub(Tid(1_462, "@call_weak_fn"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x674")]), - "call_weak_fn", Args([Arg(Tid(1_511, "%000005e7"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("call_weak_fn_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(519, "@call_weak_fn"), - Attrs([Attr("address","0x674")]), Phis([]), Defs([Def(Tid(522, "%0000020a"), - Attrs([Attr("address","0x674"), Attr("insn","adrp x0, #65536")]), - Var("R0",Imm(64)), Int(65536,64)), Def(Tid(529, "%00000211"), - Attrs([Attr("address","0x678"), Attr("insn","ldr x0, [x0, #0xfe0]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(4064,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(535, "%00000217"), Attrs([Attr("address","0x67C"), -Attr("insn","cbz x0, #0x8")]), EQ(Var("R0",Imm(64)),Int(0,64)), -Direct(Tid(533, "%00000215"))), Goto(Tid(1_495, "%000005d7"), Attrs([]), - Int(1,1), Direct(Tid(1_022, "%000003fe")))])), Blk(Tid(533, "%00000215"), - Attrs([Attr("address","0x684")]), Phis([]), Defs([]), -Jmps([Call(Tid(541, "%0000021d"), Attrs([Attr("address","0x684"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))])), -Blk(Tid(1_022, "%000003fe"), Attrs([Attr("address","0x680")]), Phis([]), -Defs([]), Jmps([Goto(Tid(1_025, "%00000401"), Attrs([Attr("address","0x680"), -Attr("insn","b #-0x70")]), Int(1,1), -Direct(Tid(1_023, "@__gmon_start__")))])), Blk(Tid(1_023, "@__gmon_start__"), - Attrs([Attr("address","0x610")]), Phis([]), -Defs([Def(Tid(1_228, "%000004cc"), Attrs([Attr("address","0x610"), -Attr("insn","adrp x16, #65536")]), Var("R16",Imm(64)), Int(65536,64)), -Def(Tid(1_235, "%000004d3"), Attrs([Attr("address","0x614"), -Attr("insn","ldr x17, [x16, #0xfb0]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(4016,64)),LittleEndian(),64)), -Def(Tid(1_241, "%000004d9"), Attrs([Attr("address","0x618"), -Attr("insn","add x16, x16, #0xfb0")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(4016,64)))]), Jmps([Call(Tid(1_246, "%000004de"), - Attrs([Attr("address","0x61C"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), -Sub(Tid(1_464, "@deregister_tm_clones"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x690")]), - "deregister_tm_clones", Args([Arg(Tid(1_512, "%000005e8"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("deregister_tm_clones_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(547, "@deregister_tm_clones"), - Attrs([Attr("address","0x690")]), Phis([]), Defs([Def(Tid(550, "%00000226"), - Attrs([Attr("address","0x690"), Attr("insn","adrp x0, #69632")]), - Var("R0",Imm(64)), Int(69632,64)), Def(Tid(556, "%0000022c"), - Attrs([Attr("address","0x694"), Attr("insn","add x0, x0, #0x10")]), - Var("R0",Imm(64)), PLUS(Var("R0",Imm(64)),Int(16,64))), -Def(Tid(561, "%00000231"), Attrs([Attr("address","0x698"), -Attr("insn","adrp x1, #69632")]), Var("R1",Imm(64)), Int(69632,64)), -Def(Tid(567, "%00000237"), Attrs([Attr("address","0x69C"), -Attr("insn","add x1, x1, #0x10")]), Var("R1",Imm(64)), -PLUS(Var("R1",Imm(64)),Int(16,64))), Def(Tid(573, "%0000023d"), - Attrs([Attr("address","0x6A0"), Attr("insn","cmp x1, x0")]), - Var("#1",Imm(64)), NOT(Var("R0",Imm(64)))), Def(Tid(578, "%00000242"), - Attrs([Attr("address","0x6A0"), Attr("insn","cmp x1, x0")]), - Var("#2",Imm(64)), PLUS(Var("R1",Imm(64)),NOT(Var("R0",Imm(64))))), -Def(Tid(584, "%00000248"), Attrs([Attr("address","0x6A0"), -Attr("insn","cmp x1, x0")]), Var("VF",Imm(1)), -NEQ(SIGNED(65,PLUS(Var("#2",Imm(64)),Int(1,64))),PLUS(PLUS(SIGNED(65,Var("R1",Imm(64))),SIGNED(65,Var("#1",Imm(64)))),Int(1,65)))), -Def(Tid(590, "%0000024e"), Attrs([Attr("address","0x6A0"), -Attr("insn","cmp x1, x0")]), Var("CF",Imm(1)), -NEQ(UNSIGNED(65,PLUS(Var("#2",Imm(64)),Int(1,64))),PLUS(PLUS(UNSIGNED(65,Var("R1",Imm(64))),UNSIGNED(65,Var("#1",Imm(64)))),Int(1,65)))), -Def(Tid(594, "%00000252"), Attrs([Attr("address","0x6A0"), -Attr("insn","cmp x1, x0")]), Var("ZF",Imm(1)), -EQ(PLUS(Var("#2",Imm(64)),Int(1,64)),Int(0,64))), Def(Tid(598, "%00000256"), - Attrs([Attr("address","0x6A0"), Attr("insn","cmp x1, x0")]), - Var("NF",Imm(1)), Extract(63,63,PLUS(Var("#2",Imm(64)),Int(1,64))))]), -Jmps([Goto(Tid(604, "%0000025c"), Attrs([Attr("address","0x6A4"), -Attr("insn","b.eq #0x18")]), EQ(Var("ZF",Imm(1)),Int(1,1)), -Direct(Tid(602, "%0000025a"))), Goto(Tid(1_496, "%000005d8"), Attrs([]), - Int(1,1), Direct(Tid(992, "%000003e0")))])), Blk(Tid(992, "%000003e0"), - Attrs([Attr("address","0x6A8")]), Phis([]), Defs([Def(Tid(995, "%000003e3"), - Attrs([Attr("address","0x6A8"), Attr("insn","adrp x1, #65536")]), - Var("R1",Imm(64)), Int(65536,64)), Def(Tid(1_002, "%000003ea"), - Attrs([Attr("address","0x6AC"), Attr("insn","ldr x1, [x1, #0xfc8]")]), - Var("R1",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R1",Imm(64)),Int(4040,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(1_007, "%000003ef"), Attrs([Attr("address","0x6B0"), -Attr("insn","cbz x1, #0xc")]), EQ(Var("R1",Imm(64)),Int(0,64)), -Direct(Tid(602, "%0000025a"))), Goto(Tid(1_497, "%000005d9"), Attrs([]), - Int(1,1), Direct(Tid(1_011, "%000003f3")))])), Blk(Tid(602, "%0000025a"), - Attrs([Attr("address","0x6BC")]), Phis([]), Defs([]), -Jmps([Call(Tid(610, "%00000262"), Attrs([Attr("address","0x6BC"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))])), -Blk(Tid(1_011, "%000003f3"), Attrs([Attr("address","0x6B4")]), Phis([]), -Defs([Def(Tid(1_015, "%000003f7"), Attrs([Attr("address","0x6B4"), -Attr("insn","mov x16, x1")]), Var("R16",Imm(64)), Var("R1",Imm(64)))]), -Jmps([Call(Tid(1_020, "%000003fc"), Attrs([Attr("address","0x6B8"), -Attr("insn","br x16")]), Int(1,1), (Indirect(Var("R16",Imm(64))),))]))])), -Sub(Tid(1_467, "@frame_dummy"), Attrs([Attr("c.proto","signed (*)(void)"), -Attr("address","0x750")]), "frame_dummy", Args([Arg(Tid(1_513, "%000005e9"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("frame_dummy_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(762, "@frame_dummy"), - Attrs([Attr("address","0x750")]), Phis([]), Defs([]), -Jmps([Call(Tid(764, "%000002fc"), Attrs([Attr("address","0x750"), -Attr("insn","b #-0x90")]), Int(1,1), -(Direct(Tid(1_469, "@register_tm_clones")),))]))])), Sub(Tid(1_468, "@main"), - Attrs([Attr("c.proto","signed (*)(signed argc, const char** argv)"), -Attr("address","0x754")]), "main", Args([Arg(Tid(1_514, "%000005ea"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("main_argc",Imm(32)), -LOW(32,Var("R0",Imm(64))), In()), Arg(Tid(1_515, "%000005eb"), - Attrs([Attr("c.layout","**[char : 8]"), Attr("c.data","Top:u8 ptr ptr"), -Attr("c.type"," const char**")]), Var("main_argv",Imm(64)), -Var("R1",Imm(64)), Both()), Arg(Tid(1_516, "%000005ec"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("main_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(766, "@main"), - Attrs([Attr("address","0x754")]), Phis([]), Defs([Def(Tid(770, "%00000302"), - Attrs([Attr("address","0x754"), Attr("insn","sub sp, sp, #0x10")]), - Var("R31",Imm(64)), PLUS(Var("R31",Imm(64)),Int(18446744073709551600,64))), -Def(Tid(775, "%00000307"), Attrs([Attr("address","0x758"), -Attr("insn","adrp x0, #65536")]), Var("R0",Imm(64)), Int(65536,64)), -Def(Tid(782, "%0000030e"), Attrs([Attr("address","0x75C"), -Attr("insn","ldr x0, [x0, #0xfe8]")]), Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(4072,64)),LittleEndian(),64)), -Def(Tid(789, "%00000315"), Attrs([Attr("address","0x760"), -Attr("insn","ldrb w0, [x0]")]), Var("R0",Imm(64)), -UNSIGNED(64,Load(Var("mem",Mem(64,8)),Var("R0",Imm(64)),LittleEndian(),8))), -Def(Tid(797, "%0000031d"), Attrs([Attr("address","0x764"), -Attr("insn","strb w0, [sp, #0xf]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(15,64)),Extract(7,0,Var("R0",Imm(64))),LittleEndian(),8)), -Def(Tid(804, "%00000324"), Attrs([Attr("address","0x768"), -Attr("insn","strb wzr, [sp, #0xf]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(15,64)),Int(0,8),LittleEndian(),8)), -Def(Tid(809, "%00000329"), Attrs([Attr("address","0x76C"), -Attr("insn","adrp x0, #65536")]), Var("R0",Imm(64)), Int(65536,64)), -Def(Tid(816, "%00000330"), Attrs([Attr("address","0x770"), -Attr("insn","ldr x0, [x0, #0xfd8]")]), Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(4056,64)),LittleEndian(),64)), -Def(Tid(823, "%00000337"), Attrs([Attr("address","0x774"), -Attr("insn","ldrb w1, [sp, #0xf]")]), Var("R1",Imm(64)), -UNSIGNED(64,Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(15,64)),LittleEndian(),8))), -Def(Tid(831, "%0000033f"), Attrs([Attr("address","0x778"), -Attr("insn","strb w1, [x0]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("R0",Imm(64)),Extract(7,0,Var("R1",Imm(64))),LittleEndian(),8)), -Def(Tid(836, "%00000344"), Attrs([Attr("address","0x77C"), -Attr("insn","adrp x0, #65536")]), Var("R0",Imm(64)), Int(65536,64)), -Def(Tid(843, "%0000034b"), Attrs([Attr("address","0x780"), -Attr("insn","ldr x0, [x0, #0xfe8]")]), Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(4072,64)),LittleEndian(),64)), -Def(Tid(850, "%00000352"), Attrs([Attr("address","0x784"), -Attr("insn","ldrb w0, [x0]")]), Var("R0",Imm(64)), -UNSIGNED(64,Load(Var("mem",Mem(64,8)),Var("R0",Imm(64)),LittleEndian(),8))), -Def(Tid(858, "%0000035a"), Attrs([Attr("address","0x788"), -Attr("insn","strb w0, [sp, #0xf]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(15,64)),Extract(7,0,Var("R0",Imm(64))),LittleEndian(),8)), -Def(Tid(863, "%0000035f"), Attrs([Attr("address","0x78C"), -Attr("insn","adrp x0, #65536")]), Var("R0",Imm(64)), Int(65536,64)), -Def(Tid(870, "%00000366"), Attrs([Attr("address","0x790"), -Attr("insn","ldr x0, [x0, #0xfd8]")]), Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(4056,64)),LittleEndian(),64)), -Def(Tid(877, "%0000036d"), Attrs([Attr("address","0x794"), -Attr("insn","ldrb w1, [sp, #0xf]")]), Var("R1",Imm(64)), -UNSIGNED(64,Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(15,64)),LittleEndian(),8))), -Def(Tid(885, "%00000375"), Attrs([Attr("address","0x798"), -Attr("insn","strb w1, [x0]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("R0",Imm(64)),Extract(7,0,Var("R1",Imm(64))),LittleEndian(),8)), -Def(Tid(890, "%0000037a"), Attrs([Attr("address","0x79C"), -Attr("insn","mov w0, #0x0")]), Var("R0",Imm(64)), Int(0,64)), -Def(Tid(896, "%00000380"), Attrs([Attr("address","0x7A0"), -Attr("insn","add sp, sp, #0x10")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(16,64)))]), Jmps([Call(Tid(901, "%00000385"), - Attrs([Attr("address","0x7A4"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), -Sub(Tid(1_469, "@register_tm_clones"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x6C0")]), - "register_tm_clones", Args([Arg(Tid(1_517, "%000005ed"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("register_tm_clones_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(612, "@register_tm_clones"), Attrs([Attr("address","0x6C0")]), - Phis([]), Defs([Def(Tid(615, "%00000267"), Attrs([Attr("address","0x6C0"), -Attr("insn","adrp x0, #69632")]), Var("R0",Imm(64)), Int(69632,64)), -Def(Tid(621, "%0000026d"), Attrs([Attr("address","0x6C4"), -Attr("insn","add x0, x0, #0x10")]), Var("R0",Imm(64)), -PLUS(Var("R0",Imm(64)),Int(16,64))), Def(Tid(626, "%00000272"), - Attrs([Attr("address","0x6C8"), Attr("insn","adrp x1, #69632")]), - Var("R1",Imm(64)), Int(69632,64)), Def(Tid(632, "%00000278"), - Attrs([Attr("address","0x6CC"), Attr("insn","add x1, x1, #0x10")]), - Var("R1",Imm(64)), PLUS(Var("R1",Imm(64)),Int(16,64))), -Def(Tid(639, "%0000027f"), Attrs([Attr("address","0x6D0"), -Attr("insn","sub x1, x1, x0")]), Var("R1",Imm(64)), -PLUS(PLUS(Var("R1",Imm(64)),NOT(Var("R0",Imm(64)))),Int(1,64))), -Def(Tid(645, "%00000285"), Attrs([Attr("address","0x6D4"), -Attr("insn","lsr x2, x1, #63")]), Var("R2",Imm(64)), -Concat(Int(0,63),Extract(63,63,Var("R1",Imm(64))))), -Def(Tid(652, "%0000028c"), Attrs([Attr("address","0x6D8"), -Attr("insn","add x1, x2, x1, asr #3")]), Var("R1",Imm(64)), -PLUS(Var("R2",Imm(64)),ARSHIFT(Var("R1",Imm(64)),Int(3,3)))), -Def(Tid(658, "%00000292"), Attrs([Attr("address","0x6DC"), -Attr("insn","asr x1, x1, #1")]), Var("R1",Imm(64)), -SIGNED(64,Extract(63,1,Var("R1",Imm(64)))))]), -Jmps([Goto(Tid(664, "%00000298"), Attrs([Attr("address","0x6E0"), -Attr("insn","cbz x1, #0x18")]), EQ(Var("R1",Imm(64)),Int(0,64)), -Direct(Tid(662, "%00000296"))), Goto(Tid(1_498, "%000005da"), Attrs([]), - Int(1,1), Direct(Tid(962, "%000003c2")))])), Blk(Tid(962, "%000003c2"), - Attrs([Attr("address","0x6E4")]), Phis([]), Defs([Def(Tid(965, "%000003c5"), - Attrs([Attr("address","0x6E4"), Attr("insn","adrp x2, #65536")]), - Var("R2",Imm(64)), Int(65536,64)), Def(Tid(972, "%000003cc"), - Attrs([Attr("address","0x6E8"), Attr("insn","ldr x2, [x2, #0xff8]")]), - Var("R2",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R2",Imm(64)),Int(4088,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(977, "%000003d1"), Attrs([Attr("address","0x6EC"), -Attr("insn","cbz x2, #0xc")]), EQ(Var("R2",Imm(64)),Int(0,64)), -Direct(Tid(662, "%00000296"))), Goto(Tid(1_499, "%000005db"), Attrs([]), - Int(1,1), Direct(Tid(981, "%000003d5")))])), Blk(Tid(662, "%00000296"), - Attrs([Attr("address","0x6F8")]), Phis([]), Defs([]), -Jmps([Call(Tid(670, "%0000029e"), Attrs([Attr("address","0x6F8"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))])), -Blk(Tid(981, "%000003d5"), Attrs([Attr("address","0x6F0")]), Phis([]), -Defs([Def(Tid(985, "%000003d9"), Attrs([Attr("address","0x6F0"), -Attr("insn","mov x16, x2")]), Var("R16",Imm(64)), Var("R2",Imm(64)))]), -Jmps([Call(Tid(990, "%000003de"), Attrs([Attr("address","0x6F4"), -Attr("insn","br x16")]), Int(1,1), -(Indirect(Var("R16",Imm(64))),))]))]))]))) \ No newline at end of file diff --git a/src/test/incorrect/basicassign3/gcc_pic/basicassign3.bir b/src/test/incorrect/basicassign3/gcc_pic/basicassign3.bir deleted file mode 100644 index 5b9a13e91..000000000 --- a/src/test/incorrect/basicassign3/gcc_pic/basicassign3.bir +++ /dev/null @@ -1,243 +0,0 @@ -000005dc: program -000005aa: sub __cxa_finalize(__cxa_finalize_result) -000005dd: __cxa_finalize_result :: out u32 = low:32[R0] - -000003be: -000004b6: R16 := 0x10000 -000004bd: R17 := mem[R16 + 0xFA8, el]:u64 -000004c3: R16 := R16 + 0xFA8 -000004c8: call R17 with noreturn - -000005ab: sub __do_global_dtors_aux(__do_global_dtors_aux_result) -000005de: __do_global_dtors_aux_result :: out u32 = low:32[R0] - -000002a2: -000002a6: #3 := R31 - 0x20 -000002ac: mem := mem with [#3, el]:u64 <- R29 -000002b2: mem := mem with [#3 + 8, el]:u64 <- R30 -000002b6: R31 := #3 -000002bc: R29 := R31 -000002c4: mem := mem with [R31 + 0x10, el]:u64 <- R19 -000002c9: R19 := 0x11000 -000002d0: R0 := pad:64[mem[R19 + 0x10]] -000002d7: when 31:0[R0] <> 0 goto %000002d5 -000005d2: goto %00000387 - -00000387: -0000038a: R0 := 0x10000 -00000391: R0 := mem[R0 + 0xFD0, el]:u64 -00000397: when R0 = 0 goto %00000395 -000005d3: goto %000003ae - -000003ae: -000003b1: R0 := 0x11000 -000003b8: R0 := mem[R0 + 8, el]:u64 -000003bd: R30 := 0x730 -000003c0: call @__cxa_finalize with return %00000395 - -00000395: -0000039d: R30 := 0x734 -0000039f: call @deregister_tm_clones with return %000003a1 - -000003a1: -000003a4: R0 := 1 -000003ac: mem := mem with [R19 + 0x10] <- 7:0[R0] -000005d4: goto %000002d5 - -000002d5: -000002df: R19 := mem[R31 + 0x10, el]:u64 -000002e6: R29 := mem[R31, el]:u64 -000002eb: R30 := mem[R31 + 8, el]:u64 -000002ef: R31 := R31 + 0x20 -000002f4: call R30 with noreturn - -000005af: sub __libc_start_main(__libc_start_main_main, __libc_start_main_arg2, __libc_start_main_arg3, __libc_start_main_auxv, __libc_start_main_result) -000005df: __libc_start_main_main :: in u64 = R0 -000005e0: __libc_start_main_arg2 :: in u32 = low:32[R1] -000005e1: __libc_start_main_arg3 :: in out u64 = R2 -000005e2: __libc_start_main_auxv :: in out u64 = R3 -000005e3: __libc_start_main_result :: out u32 = low:32[R0] - -000001fb: -000004a0: R16 := 0x10000 -000004a7: R17 := mem[R16 + 0xFA0, el]:u64 -000004ad: R16 := R16 + 0xFA0 -000004b2: call R17 with noreturn - -000005b0: sub _fini(_fini_result) -000005e4: _fini_result :: out u32 = low:32[R0] - -0000001f: -00000025: #0 := R31 - 0x10 -0000002b: mem := mem with [#0, el]:u64 <- R29 -00000031: mem := mem with [#0 + 8, el]:u64 <- R30 -00000035: R31 := #0 -0000003b: R29 := R31 -00000042: R29 := mem[R31, el]:u64 -00000047: R30 := mem[R31 + 8, el]:u64 -0000004b: R31 := R31 + 0x10 -00000050: call R30 with noreturn - -000005b1: sub _init(_init_result) -000005e5: _init_result :: out u32 = low:32[R0] - -00000510: -00000516: #5 := R31 - 0x10 -0000051c: mem := mem with [#5, el]:u64 <- R29 -00000522: mem := mem with [#5 + 8, el]:u64 <- R30 -00000526: R31 := #5 -0000052c: R29 := R31 -00000531: R30 := 0x5C0 -00000533: call @call_weak_fn with return %00000535 - -00000535: -0000053a: R29 := mem[R31, el]:u64 -0000053f: R30 := mem[R31 + 8, el]:u64 -00000543: R31 := R31 + 0x10 -00000548: call R30 with noreturn - -000005b2: sub _start(_start_result) -000005e6: _start_result :: out u32 = low:32[R0] - -000001bc: -000001c1: R29 := 0 -000001c6: R30 := 0 -000001cc: R5 := R0 -000001d3: R1 := mem[R31, el]:u64 -000001d9: R2 := R31 + 8 -000001df: R6 := R31 -000001e4: R0 := 0x10000 -000001eb: R0 := mem[R0 + 0xFF0, el]:u64 -000001f0: R3 := 0 -000001f5: R4 := 0 -000001fa: R30 := 0x670 -000001fd: call @__libc_start_main with return %000001ff - -000001ff: -00000202: R30 := 0x674 -00000205: call @abort with return %000005d5 - -000005d5: -000005d6: call @call_weak_fn with noreturn - -000005b5: sub abort() - - -00000203: -000004e2: R16 := 0x10000 -000004e9: R17 := mem[R16 + 0xFB8, el]:u64 -000004ef: R16 := R16 + 0xFB8 -000004f4: call R17 with noreturn - -000005b6: sub call_weak_fn(call_weak_fn_result) -000005e7: call_weak_fn_result :: out u32 = low:32[R0] - -00000207: -0000020a: R0 := 0x10000 -00000211: R0 := mem[R0 + 0xFE0, el]:u64 -00000217: when R0 = 0 goto %00000215 -000005d7: goto %000003fe - -00000215: -0000021d: call R30 with noreturn - -000003fe: -00000401: goto @__gmon_start__ - -000003ff: -000004cc: R16 := 0x10000 -000004d3: R17 := mem[R16 + 0xFB0, el]:u64 -000004d9: R16 := R16 + 0xFB0 -000004de: call R17 with noreturn - -000005b8: sub deregister_tm_clones(deregister_tm_clones_result) -000005e8: deregister_tm_clones_result :: out u32 = low:32[R0] - -00000223: -00000226: R0 := 0x11000 -0000022c: R0 := R0 + 0x10 -00000231: R1 := 0x11000 -00000237: R1 := R1 + 0x10 -0000023d: #1 := ~R0 -00000242: #2 := R1 + ~R0 -00000248: VF := extend:65[#2 + 1] <> extend:65[R1] + extend:65[#1] + 1 -0000024e: CF := pad:65[#2 + 1] <> pad:65[R1] + pad:65[#1] + 1 -00000252: ZF := #2 + 1 = 0 -00000256: NF := 63:63[#2 + 1] -0000025c: when ZF goto %0000025a -000005d8: goto %000003e0 - -000003e0: -000003e3: R1 := 0x10000 -000003ea: R1 := mem[R1 + 0xFC8, el]:u64 -000003ef: when R1 = 0 goto %0000025a -000005d9: goto %000003f3 - -0000025a: -00000262: call R30 with noreturn - -000003f3: -000003f7: R16 := R1 -000003fc: call R16 with noreturn - -000005bb: sub frame_dummy(frame_dummy_result) -000005e9: frame_dummy_result :: out u32 = low:32[R0] - -000002fa: -000002fc: call @register_tm_clones with noreturn - -000005bc: sub main(main_argc, main_argv, main_result) -000005ea: main_argc :: in u32 = low:32[R0] -000005eb: main_argv :: in out u64 = R1 -000005ec: main_result :: out u32 = low:32[R0] - -000002fe: -00000302: R31 := R31 - 0x10 -00000307: R0 := 0x10000 -0000030e: R0 := mem[R0 + 0xFE8, el]:u64 -00000315: R0 := pad:64[mem[R0]] -0000031d: mem := mem with [R31 + 0xF] <- 7:0[R0] -00000324: mem := mem with [R31 + 0xF] <- 0 -00000329: R0 := 0x10000 -00000330: R0 := mem[R0 + 0xFD8, el]:u64 -00000337: R1 := pad:64[mem[R31 + 0xF]] -0000033f: mem := mem with [R0] <- 7:0[R1] -00000344: R0 := 0x10000 -0000034b: R0 := mem[R0 + 0xFE8, el]:u64 -00000352: R0 := pad:64[mem[R0]] -0000035a: mem := mem with [R31 + 0xF] <- 7:0[R0] -0000035f: R0 := 0x10000 -00000366: R0 := mem[R0 + 0xFD8, el]:u64 -0000036d: R1 := pad:64[mem[R31 + 0xF]] -00000375: mem := mem with [R0] <- 7:0[R1] -0000037a: R0 := 0 -00000380: R31 := R31 + 0x10 -00000385: call R30 with noreturn - -000005bd: sub register_tm_clones(register_tm_clones_result) -000005ed: register_tm_clones_result :: out u32 = low:32[R0] - -00000264: -00000267: R0 := 0x11000 -0000026d: R0 := R0 + 0x10 -00000272: R1 := 0x11000 -00000278: R1 := R1 + 0x10 -0000027f: R1 := R1 + ~R0 + 1 -00000285: R2 := 0.63:63[R1] -0000028c: R1 := R2 + (R1 ~>> 3) -00000292: R1 := extend:64[63:1[R1]] -00000298: when R1 = 0 goto %00000296 -000005da: goto %000003c2 - -000003c2: -000003c5: R2 := 0x10000 -000003cc: R2 := mem[R2 + 0xFF8, el]:u64 -000003d1: when R2 = 0 goto %00000296 -000005db: goto %000003d5 - -00000296: -0000029e: call R30 with noreturn - -000003d5: -000003d9: R16 := R2 -000003de: call R16 with noreturn diff --git a/src/test/incorrect/basicassign3/gcc_pic/basicassign3.expected b/src/test/incorrect/basicassign3/gcc_pic/basicassign3.expected index e0be3875e..b369bbd2f 100644 --- a/src/test/incorrect/basicassign3/gcc_pic/basicassign3.expected +++ b/src/test/incorrect/basicassign3/gcc_pic/basicassign3.expected @@ -1,17 +1,15 @@ var {:extern} Gamma_R0: bool; var {:extern} Gamma_R1: bool; -var {:extern} Gamma_R31: bool; +var {:extern} Gamma_R2: bool; var {:extern} Gamma_mem: [bv64]bool; -var {:extern} Gamma_stack: [bv64]bool; var {:extern} R0: bv64; var {:extern} R1: bv64; -var {:extern} R31: bv64; +var {:extern} R2: bv64; var {:extern} mem: [bv64]bv8; -var {:extern} stack: [bv64]bv8; const {:extern} $secret_addr: bv64; -axiom ($secret_addr == 69650bv64); +axiom ($secret_addr == 4325393bv64); const {:extern} $z_addr: bv64; -axiom ($z_addr == 69649bv64); +axiom ($z_addr == 4325394bv64); function {:extern} L(mem$in: [bv64]bv8, index: bv64) returns (bool) { (if (index == $secret_addr) then false else (if (index == $z_addr) then true else false)) } @@ -50,13 +48,7 @@ procedure {:extern} rely(); modifies Gamma_mem, mem; ensures (Gamma_mem == old(Gamma_mem)); ensures (mem == old(mem)); - free ensures (memory_load32_le(mem, 1980bv64) == 131073bv32); - free ensures (memory_load64_le(mem, 69000bv64) == 1872bv64); - free ensures (memory_load64_le(mem, 69008bv64) == 1792bv64); - free ensures (memory_load64_le(mem, 69592bv64) == 69649bv64); - free ensures (memory_load64_le(mem, 69608bv64) == 69650bv64); - free ensures (memory_load64_le(mem, 69616bv64) == 1876bv64); - free ensures (memory_load64_le(mem, 69640bv64) == 69640bv64); + free ensures (memory_load32_le(mem, 4196312bv64) == 131073bv32); procedure {:extern} rely_transitive(); modifies Gamma_mem, mem; @@ -74,93 +66,41 @@ procedure {:extern} rely_reflexive(); procedure {:extern} guarantee_reflexive(); modifies Gamma_mem, mem; -procedure main_1876(); - modifies Gamma_R0, Gamma_R1, Gamma_R31, Gamma_mem, Gamma_stack, R0, R1, R31, mem, stack; - free requires (memory_load64_le(mem, 69632bv64) == 0bv64); - free requires (memory_load64_le(mem, 69640bv64) == 69640bv64); - free requires (memory_load32_le(mem, 1980bv64) == 131073bv32); - free requires (memory_load64_le(mem, 69000bv64) == 1872bv64); - free requires (memory_load64_le(mem, 69008bv64) == 1792bv64); - free requires (memory_load64_le(mem, 69592bv64) == 69649bv64); - free requires (memory_load64_le(mem, 69608bv64) == 69650bv64); - free requires (memory_load64_le(mem, 69616bv64) == 1876bv64); - free requires (memory_load64_le(mem, 69640bv64) == 69640bv64); - free ensures (Gamma_R31 == old(Gamma_R31)); - free ensures (R31 == old(R31)); - free ensures (memory_load32_le(mem, 1980bv64) == 131073bv32); - free ensures (memory_load64_le(mem, 69000bv64) == 1872bv64); - free ensures (memory_load64_le(mem, 69008bv64) == 1792bv64); - free ensures (memory_load64_le(mem, 69592bv64) == 69649bv64); - free ensures (memory_load64_le(mem, 69608bv64) == 69650bv64); - free ensures (memory_load64_le(mem, 69616bv64) == 1876bv64); - free ensures (memory_load64_le(mem, 69640bv64) == 69640bv64); +procedure main(); + modifies Gamma_R0, Gamma_R1, Gamma_R2, Gamma_mem, R0, R1, R2, mem; + free requires (memory_load64_le(mem, 4325376bv64) == 0bv64); + free requires (memory_load64_le(mem, 4325384bv64) == 0bv64); + free requires (memory_load32_le(mem, 4196312bv64) == 131073bv32); + free ensures (memory_load32_le(mem, 4196312bv64) == 131073bv32); -implementation main_1876() +implementation main() { - var Gamma_load18: bool; - var Gamma_load19: bool; - var Gamma_load20: bool; - var Gamma_load21: bool; - var Gamma_load22: bool; - var Gamma_load23: bool; - var Gamma_load24: bool; - var Gamma_load25: bool; - var load18: bv64; - var load19: bv8; - var load20: bv64; - var load21: bv8; - var load22: bv64; - var load23: bv8; - var load24: bv64; - var load25: bv8; + var $load$14: bv64; + var $load$15: bv64; + var $load$16: bv8; + var Gamma_$load$14: bool; + var Gamma_$load$15: bool; + var Gamma_$load$16: bool; lmain: assume {:captureState "lmain"} true; - R31, Gamma_R31 := bvadd64(R31, 18446744073709551600bv64), Gamma_R31; - R0, Gamma_R0 := 65536bv64, true; - call rely(); - load18, Gamma_load18 := memory_load64_le(mem, bvadd64(R0, 4072bv64)), (gamma_load64(Gamma_mem, bvadd64(R0, 4072bv64)) || L(mem, bvadd64(R0, 4072bv64))); - R0, Gamma_R0 := load18, Gamma_load18; - call rely(); - load19, Gamma_load19 := memory_load8_le(mem, R0), (gamma_load8(Gamma_mem, R0) || L(mem, R0)); - R0, Gamma_R0 := zero_extend56_8(load19), Gamma_load19; - stack, Gamma_stack := memory_store8_le(stack, bvadd64(R31, 15bv64), R0[8:0]), gamma_store8(Gamma_stack, bvadd64(R31, 15bv64), Gamma_R0); - assume {:captureState "%0000031d"} true; - stack, Gamma_stack := memory_store8_le(stack, bvadd64(R31, 15bv64), 0bv8), gamma_store8(Gamma_stack, bvadd64(R31, 15bv64), true); - assume {:captureState "%00000324"} true; - R0, Gamma_R0 := 65536bv64, true; - call rely(); - load20, Gamma_load20 := memory_load64_le(mem, bvadd64(R0, 4056bv64)), (gamma_load64(Gamma_mem, bvadd64(R0, 4056bv64)) || L(mem, bvadd64(R0, 4056bv64))); - R0, Gamma_R0 := load20, Gamma_load20; - load21, Gamma_load21 := memory_load8_le(stack, bvadd64(R31, 15bv64)), gamma_load8(Gamma_stack, bvadd64(R31, 15bv64)); - R1, Gamma_R1 := zero_extend56_8(load21), Gamma_load21; - call rely(); - assert (L(mem, R0) ==> Gamma_R1); - mem, Gamma_mem := memory_store8_le(mem, R0, R1[8:0]), gamma_store8(Gamma_mem, R0, Gamma_R1); - assume {:captureState "%0000033f"} true; - R0, Gamma_R0 := 65536bv64, true; + R1, Gamma_R1 := 4321280bv64, true; + R0, Gamma_R0 := 0bv64, true; call rely(); - load22, Gamma_load22 := memory_load64_le(mem, bvadd64(R0, 4072bv64)), (gamma_load64(Gamma_mem, bvadd64(R0, 4072bv64)) || L(mem, bvadd64(R0, 4072bv64))); - R0, Gamma_R0 := load22, Gamma_load22; + $load$14, Gamma_$load$14 := memory_load64_le(mem, bvadd64(R1, 4080bv64)), (gamma_load64(Gamma_mem, bvadd64(R1, 4080bv64)) || L(mem, bvadd64(R1, 4080bv64))); + R2, Gamma_R2 := $load$14, Gamma_$load$14; call rely(); - load23, Gamma_load23 := memory_load8_le(mem, R0), (gamma_load8(Gamma_mem, R0) || L(mem, R0)); - R0, Gamma_R0 := zero_extend56_8(load23), Gamma_load23; - stack, Gamma_stack := memory_store8_le(stack, bvadd64(R31, 15bv64), R0[8:0]), gamma_store8(Gamma_stack, bvadd64(R31, 15bv64), Gamma_R0); - assume {:captureState "%0000035a"} true; - R0, Gamma_R0 := 65536bv64, true; + $load$15, Gamma_$load$15 := memory_load64_le(mem, bvadd64(R1, 4064bv64)), (gamma_load64(Gamma_mem, bvadd64(R1, 4064bv64)) || L(mem, bvadd64(R1, 4064bv64))); + R1, Gamma_R1 := $load$15, Gamma_$load$15; call rely(); - load24, Gamma_load24 := memory_load64_le(mem, bvadd64(R0, 4056bv64)), (gamma_load64(Gamma_mem, bvadd64(R0, 4056bv64)) || L(mem, bvadd64(R0, 4056bv64))); - R0, Gamma_R0 := load24, Gamma_load24; - load25, Gamma_load25 := memory_load8_le(stack, bvadd64(R31, 15bv64)), gamma_load8(Gamma_stack, bvadd64(R31, 15bv64)); - R1, Gamma_R1 := zero_extend56_8(load25), Gamma_load25; + $load$16, Gamma_$load$16 := memory_load8_le(mem, R2), (gamma_load8(Gamma_mem, R2) || L(mem, R2)); + R2, Gamma_R2 := zero_extend56_8($load$16), Gamma_$load$16; call rely(); - assert (L(mem, R0) ==> Gamma_R1); - mem, Gamma_mem := memory_store8_le(mem, R0, R1[8:0]), gamma_store8(Gamma_mem, R0, Gamma_R1); - assume {:captureState "%00000375"} true; - R0, Gamma_R0 := 0bv64, true; - R31, Gamma_R31 := bvadd64(R31, 16bv64), Gamma_R31; - goto main_1876_basil_return; - main_1876_basil_return: - assume {:captureState "main_1876_basil_return"} true; + assert (L(mem, R1) ==> Gamma_R2); + mem, Gamma_mem := memory_store8_le(mem, R1, R2[8:0]), gamma_store8(Gamma_mem, R1, Gamma_R2); + assume {:captureState "%0000025c"} true; + goto main_basil_return; + main_basil_return: + assume {:captureState "main_basil_return"} true; return; } diff --git a/src/test/incorrect/basicassign3/gcc_pic/basicassign3.gts b/src/test/incorrect/basicassign3/gcc_pic/basicassign3.gts deleted file mode 100644 index 60e68a2f1..000000000 Binary files a/src/test/incorrect/basicassign3/gcc_pic/basicassign3.gts and /dev/null differ diff --git a/src/test/incorrect/basicassign3/gcc_pic/basicassign3.md5sum b/src/test/incorrect/basicassign3/gcc_pic/basicassign3.md5sum new file mode 100644 index 000000000..257161658 --- /dev/null +++ b/src/test/incorrect/basicassign3/gcc_pic/basicassign3.md5sum @@ -0,0 +1,5 @@ +73bb96d52241c9ba4cc7381e04f44713 incorrect/basicassign3/gcc_pic/a.out +75c1c0b0a888d675be348de20e97dbdd incorrect/basicassign3/gcc_pic/basicassign3.adt +650a9cee912732e0a5e94983c4da28fe incorrect/basicassign3/gcc_pic/basicassign3.bir +b2b901a1850dc203e1ad88f1da2b4d97 incorrect/basicassign3/gcc_pic/basicassign3.relf +4aa1a3031d768d3abb2e6540b7765921 incorrect/basicassign3/gcc_pic/basicassign3.gts diff --git a/src/test/incorrect/basicassign3/gcc_pic/basicassign3.relf b/src/test/incorrect/basicassign3/gcc_pic/basicassign3.relf deleted file mode 100644 index 3182d75c1..000000000 --- a/src/test/incorrect/basicassign3/gcc_pic/basicassign3.relf +++ /dev/null @@ -1,124 +0,0 @@ - -Relocation section '.rela.dyn' at offset 0x460 contains 10 entries: - Offset Info Type Symbol's Value Symbol's Name + Addend -0000000000010d88 0000000000000403 R_AARCH64_RELATIVE 750 -0000000000010d90 0000000000000403 R_AARCH64_RELATIVE 700 -0000000000010fd8 0000000000000403 R_AARCH64_RELATIVE 11011 -0000000000010fe8 0000000000000403 R_AARCH64_RELATIVE 11012 -0000000000010ff0 0000000000000403 R_AARCH64_RELATIVE 754 -0000000000011008 0000000000000403 R_AARCH64_RELATIVE 11008 -0000000000010fc8 0000000400000401 R_AARCH64_GLOB_DAT 0000000000000000 _ITM_deregisterTMCloneTable + 0 -0000000000010fd0 0000000500000401 R_AARCH64_GLOB_DAT 0000000000000000 __cxa_finalize@GLIBC_2.17 + 0 -0000000000010fe0 0000000600000401 R_AARCH64_GLOB_DAT 0000000000000000 __gmon_start__ + 0 -0000000000010ff8 0000000800000401 R_AARCH64_GLOB_DAT 0000000000000000 _ITM_registerTMCloneTable + 0 - -Relocation section '.rela.plt' at offset 0x550 contains 4 entries: - Offset Info Type Symbol's Value Symbol's Name + Addend -0000000000010fa0 0000000300000402 R_AARCH64_JUMP_SLOT 0000000000000000 __libc_start_main@GLIBC_2.34 + 0 -0000000000010fa8 0000000500000402 R_AARCH64_JUMP_SLOT 0000000000000000 __cxa_finalize@GLIBC_2.17 + 0 -0000000000010fb0 0000000600000402 R_AARCH64_JUMP_SLOT 0000000000000000 __gmon_start__ + 0 -0000000000010fb8 0000000700000402 R_AARCH64_JUMP_SLOT 0000000000000000 abort@GLIBC_2.17 + 0 - -Symbol table '.dynsym' contains 9 entries: - Num: Value Size Type Bind Vis Ndx Name - 0: 0000000000000000 0 NOTYPE LOCAL DEFAULT UND - 1: 00000000000005b0 0 SECTION LOCAL DEFAULT 11 .init - 2: 0000000000011000 0 SECTION LOCAL DEFAULT 22 .data - 3: 0000000000000000 0 FUNC GLOBAL DEFAULT UND __libc_start_main@GLIBC_2.34 (2) - 4: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_deregisterTMCloneTable - 5: 0000000000000000 0 FUNC WEAK DEFAULT UND __cxa_finalize@GLIBC_2.17 (3) - 6: 0000000000000000 0 NOTYPE WEAK DEFAULT UND __gmon_start__ - 7: 0000000000000000 0 FUNC GLOBAL DEFAULT UND abort@GLIBC_2.17 (3) - 8: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_registerTMCloneTable - -Symbol table '.symtab' contains 89 entries: - Num: Value Size Type Bind Vis Ndx Name - 0: 0000000000000000 0 NOTYPE LOCAL DEFAULT UND - 1: 0000000000000238 0 SECTION LOCAL DEFAULT 1 .interp - 2: 0000000000000254 0 SECTION LOCAL DEFAULT 2 .note.gnu.build-id - 3: 0000000000000278 0 SECTION LOCAL DEFAULT 3 .note.ABI-tag - 4: 0000000000000298 0 SECTION LOCAL DEFAULT 4 .gnu.hash - 5: 00000000000002b8 0 SECTION LOCAL DEFAULT 5 .dynsym - 6: 0000000000000390 0 SECTION LOCAL DEFAULT 6 .dynstr - 7: 000000000000041e 0 SECTION LOCAL DEFAULT 7 .gnu.version - 8: 0000000000000430 0 SECTION LOCAL DEFAULT 8 .gnu.version_r - 9: 0000000000000460 0 SECTION LOCAL DEFAULT 9 .rela.dyn - 10: 0000000000000550 0 SECTION LOCAL DEFAULT 10 .rela.plt - 11: 00000000000005b0 0 SECTION LOCAL DEFAULT 11 .init - 12: 00000000000005d0 0 SECTION LOCAL DEFAULT 12 .plt - 13: 0000000000000640 0 SECTION LOCAL DEFAULT 13 .text - 14: 00000000000007a8 0 SECTION LOCAL DEFAULT 14 .fini - 15: 00000000000007bc 0 SECTION LOCAL DEFAULT 15 .rodata - 16: 00000000000007c0 0 SECTION LOCAL DEFAULT 16 .eh_frame_hdr - 17: 0000000000000800 0 SECTION LOCAL DEFAULT 17 .eh_frame - 18: 0000000000010d88 0 SECTION LOCAL DEFAULT 18 .init_array - 19: 0000000000010d90 0 SECTION LOCAL DEFAULT 19 .fini_array - 20: 0000000000010d98 0 SECTION LOCAL DEFAULT 20 .dynamic - 21: 0000000000010f88 0 SECTION LOCAL DEFAULT 21 .got - 22: 0000000000011000 0 SECTION LOCAL DEFAULT 22 .data - 23: 0000000000011010 0 SECTION LOCAL DEFAULT 23 .bss - 24: 0000000000000000 0 SECTION LOCAL DEFAULT 24 .comment - 25: 0000000000000000 0 FILE LOCAL DEFAULT ABS Scrt1.o - 26: 0000000000000278 0 NOTYPE LOCAL DEFAULT 3 $d - 27: 0000000000000278 32 OBJECT LOCAL DEFAULT 3 __abi_tag - 28: 0000000000000640 0 NOTYPE LOCAL DEFAULT 13 $x - 29: 0000000000000814 0 NOTYPE LOCAL DEFAULT 17 $d - 30: 00000000000007bc 0 NOTYPE LOCAL DEFAULT 15 $d - 31: 0000000000000000 0 FILE LOCAL DEFAULT ABS crti.o - 32: 0000000000000674 0 NOTYPE LOCAL DEFAULT 13 $x - 33: 0000000000000674 20 FUNC LOCAL DEFAULT 13 call_weak_fn - 34: 00000000000005b0 0 NOTYPE LOCAL DEFAULT 11 $x - 35: 00000000000007a8 0 NOTYPE LOCAL DEFAULT 14 $x - 36: 0000000000000000 0 FILE LOCAL DEFAULT ABS crtn.o - 37: 00000000000005c0 0 NOTYPE LOCAL DEFAULT 11 $x - 38: 00000000000007b4 0 NOTYPE LOCAL DEFAULT 14 $x - 39: 0000000000000000 0 FILE LOCAL DEFAULT ABS crtstuff.c - 40: 0000000000000690 0 NOTYPE LOCAL DEFAULT 13 $x - 41: 0000000000000690 0 FUNC LOCAL DEFAULT 13 deregister_tm_clones - 42: 00000000000006c0 0 FUNC LOCAL DEFAULT 13 register_tm_clones - 43: 0000000000011008 0 NOTYPE LOCAL DEFAULT 22 $d - 44: 0000000000000700 0 FUNC LOCAL DEFAULT 13 __do_global_dtors_aux - 45: 0000000000011010 1 OBJECT LOCAL DEFAULT 23 completed.0 - 46: 0000000000010d90 0 NOTYPE LOCAL DEFAULT 19 $d - 47: 0000000000010d90 0 OBJECT LOCAL DEFAULT 19 __do_global_dtors_aux_fini_array_entry - 48: 0000000000000750 0 FUNC LOCAL DEFAULT 13 frame_dummy - 49: 0000000000010d88 0 NOTYPE LOCAL DEFAULT 18 $d - 50: 0000000000010d88 0 OBJECT LOCAL DEFAULT 18 __frame_dummy_init_array_entry - 51: 0000000000000828 0 NOTYPE LOCAL DEFAULT 17 $d - 52: 0000000000011010 0 NOTYPE LOCAL DEFAULT 23 $d - 53: 0000000000000000 0 FILE LOCAL DEFAULT ABS basicassign3.c - 54: 0000000000011011 0 NOTYPE LOCAL DEFAULT 23 $d - 55: 0000000000000754 0 NOTYPE LOCAL DEFAULT 13 $x - 56: 0000000000000888 0 NOTYPE LOCAL DEFAULT 17 $d - 57: 0000000000000000 0 FILE LOCAL DEFAULT ABS crtstuff.c - 58: 00000000000008a0 0 NOTYPE LOCAL DEFAULT 17 $d - 59: 00000000000008a0 0 OBJECT LOCAL DEFAULT 17 __FRAME_END__ - 60: 0000000000000000 0 FILE LOCAL DEFAULT ABS - 61: 0000000000010d98 0 OBJECT LOCAL DEFAULT ABS _DYNAMIC - 62: 00000000000007c0 0 NOTYPE LOCAL DEFAULT 16 __GNU_EH_FRAME_HDR - 63: 0000000000010fc0 0 OBJECT LOCAL DEFAULT ABS _GLOBAL_OFFSET_TABLE_ - 64: 00000000000005d0 0 NOTYPE LOCAL DEFAULT 12 $x - 65: 0000000000000000 0 FUNC GLOBAL DEFAULT UND __libc_start_main@GLIBC_2.34 - 66: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_deregisterTMCloneTable - 67: 0000000000011000 0 NOTYPE WEAK DEFAULT 22 data_start - 68: 0000000000011010 0 NOTYPE GLOBAL DEFAULT 23 __bss_start__ - 69: 0000000000000000 0 FUNC WEAK DEFAULT UND __cxa_finalize@GLIBC_2.17 - 70: 0000000000011018 0 NOTYPE GLOBAL DEFAULT 23 _bss_end__ - 71: 0000000000011010 0 NOTYPE GLOBAL DEFAULT 22 _edata - 72: 0000000000011011 1 OBJECT GLOBAL DEFAULT 23 z - 73: 00000000000007a8 0 FUNC GLOBAL HIDDEN 14 _fini - 74: 0000000000011018 0 NOTYPE GLOBAL DEFAULT 23 __bss_end__ - 75: 0000000000011000 0 NOTYPE GLOBAL DEFAULT 22 __data_start - 76: 0000000000000000 0 NOTYPE WEAK DEFAULT UND __gmon_start__ - 77: 0000000000011008 0 OBJECT GLOBAL HIDDEN 22 __dso_handle - 78: 0000000000000000 0 FUNC GLOBAL DEFAULT UND abort@GLIBC_2.17 - 79: 00000000000007bc 4 OBJECT GLOBAL DEFAULT 15 _IO_stdin_used - 80: 0000000000011012 1 OBJECT GLOBAL DEFAULT 23 secret - 81: 0000000000011018 0 NOTYPE GLOBAL DEFAULT 23 _end - 82: 0000000000000640 52 FUNC GLOBAL DEFAULT 13 _start - 83: 0000000000011018 0 NOTYPE GLOBAL DEFAULT 23 __end__ - 84: 0000000000011010 0 NOTYPE GLOBAL DEFAULT 23 __bss_start - 85: 0000000000000754 84 FUNC GLOBAL DEFAULT 13 main - 86: 0000000000011010 0 OBJECT GLOBAL HIDDEN 22 __TMC_END__ - 87: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_registerTMCloneTable - 88: 00000000000005b0 0 FUNC GLOBAL HIDDEN 11 _init diff --git a/src/test/incorrect/basicassign3/gcc_pic/basicassign3_gtirb.expected b/src/test/incorrect/basicassign3/gcc_pic/basicassign3_gtirb.expected index 701d87c06..6b00f833c 100644 --- a/src/test/incorrect/basicassign3/gcc_pic/basicassign3_gtirb.expected +++ b/src/test/incorrect/basicassign3/gcc_pic/basicassign3_gtirb.expected @@ -1,17 +1,15 @@ var {:extern} Gamma_R0: bool; var {:extern} Gamma_R1: bool; -var {:extern} Gamma_R31: bool; +var {:extern} Gamma_R2: bool; var {:extern} Gamma_mem: [bv64]bool; -var {:extern} Gamma_stack: [bv64]bool; var {:extern} R0: bv64; var {:extern} R1: bv64; -var {:extern} R31: bv64; +var {:extern} R2: bv64; var {:extern} mem: [bv64]bv8; -var {:extern} stack: [bv64]bv8; const {:extern} $secret_addr: bv64; -axiom ($secret_addr == 69650bv64); +axiom ($secret_addr == 4325393bv64); const {:extern} $z_addr: bv64; -axiom ($z_addr == 69649bv64); +axiom ($z_addr == 4325394bv64); function {:extern} L(mem$in: [bv64]bv8, index: bv64) returns (bool) { (if (index == $secret_addr) then false else (if (index == $z_addr) then true else false)) } @@ -51,13 +49,7 @@ procedure {:extern} rely(); modifies Gamma_mem, mem; ensures (Gamma_mem == old(Gamma_mem)); ensures (mem == old(mem)); - free ensures (memory_load32_le(mem, 1980bv64) == 131073bv32); - free ensures (memory_load64_le(mem, 69000bv64) == 1872bv64); - free ensures (memory_load64_le(mem, 69008bv64) == 1792bv64); - free ensures (memory_load64_le(mem, 69592bv64) == 69649bv64); - free ensures (memory_load64_le(mem, 69608bv64) == 69650bv64); - free ensures (memory_load64_le(mem, 69616bv64) == 1876bv64); - free ensures (memory_load64_le(mem, 69640bv64) == 69640bv64); + free ensures (memory_load32_le(mem, 4196312bv64) == 131073bv32); procedure {:extern} rely_transitive(); modifies Gamma_mem, mem; @@ -75,93 +67,41 @@ procedure {:extern} rely_reflexive(); procedure {:extern} guarantee_reflexive(); modifies Gamma_mem, mem; -procedure main_1876(); - modifies Gamma_R0, Gamma_R1, Gamma_R31, Gamma_mem, Gamma_stack, R0, R1, R31, mem, stack; - free requires (memory_load64_le(mem, 69632bv64) == 0bv64); - free requires (memory_load64_le(mem, 69640bv64) == 69640bv64); - free requires (memory_load32_le(mem, 1980bv64) == 131073bv32); - free requires (memory_load64_le(mem, 69000bv64) == 1872bv64); - free requires (memory_load64_le(mem, 69008bv64) == 1792bv64); - free requires (memory_load64_le(mem, 69592bv64) == 69649bv64); - free requires (memory_load64_le(mem, 69608bv64) == 69650bv64); - free requires (memory_load64_le(mem, 69616bv64) == 1876bv64); - free requires (memory_load64_le(mem, 69640bv64) == 69640bv64); - free ensures (Gamma_R31 == old(Gamma_R31)); - free ensures (R31 == old(R31)); - free ensures (memory_load32_le(mem, 1980bv64) == 131073bv32); - free ensures (memory_load64_le(mem, 69000bv64) == 1872bv64); - free ensures (memory_load64_le(mem, 69008bv64) == 1792bv64); - free ensures (memory_load64_le(mem, 69592bv64) == 69649bv64); - free ensures (memory_load64_le(mem, 69608bv64) == 69650bv64); - free ensures (memory_load64_le(mem, 69616bv64) == 1876bv64); - free ensures (memory_load64_le(mem, 69640bv64) == 69640bv64); +procedure main(); + modifies Gamma_R0, Gamma_R1, Gamma_R2, Gamma_mem, R0, R1, R2, mem; + free requires (memory_load64_le(mem, 4325376bv64) == 0bv64); + free requires (memory_load64_le(mem, 4325384bv64) == 0bv64); + free requires (memory_load32_le(mem, 4196312bv64) == 131073bv32); + free ensures (memory_load32_le(mem, 4196312bv64) == 131073bv32); -implementation main_1876() +implementation main() { - var Gamma_load10: bool; - var Gamma_load11: bool; - var Gamma_load12: bool; - var Gamma_load13: bool; - var Gamma_load14: bool; - var Gamma_load15: bool; - var Gamma_load16: bool; - var Gamma_load17: bool; - var load10: bv64; - var load11: bv8; - var load12: bv64; - var load13: bv8; - var load14: bv64; - var load15: bv8; - var load16: bv64; - var load17: bv8; - main_1876__0__rtcpQtj9TBywq60y1zeDfg: - assume {:captureState "main_1876__0__rtcpQtj9TBywq60y1zeDfg"} true; - R31, Gamma_R31 := bvadd64(R31, 18446744073709551600bv64), Gamma_R31; - R0, Gamma_R0 := 65536bv64, true; - call rely(); - load10, Gamma_load10 := memory_load64_le(mem, bvadd64(R0, 4072bv64)), (gamma_load64(Gamma_mem, bvadd64(R0, 4072bv64)) || L(mem, bvadd64(R0, 4072bv64))); - R0, Gamma_R0 := load10, Gamma_load10; - call rely(); - load11, Gamma_load11 := memory_load8_le(mem, R0), (gamma_load8(Gamma_mem, R0) || L(mem, R0)); - R0, Gamma_R0 := zero_extend32_32(zero_extend24_8(load11)), Gamma_load11; - stack, Gamma_stack := memory_store8_le(stack, bvadd64(R31, 15bv64), R0[8:0]), gamma_store8(Gamma_stack, bvadd64(R31, 15bv64), Gamma_R0); - assume {:captureState "1892_0"} true; - stack, Gamma_stack := memory_store8_le(stack, bvadd64(R31, 15bv64), 0bv8), gamma_store8(Gamma_stack, bvadd64(R31, 15bv64), true); - assume {:captureState "1896_0"} true; - R0, Gamma_R0 := 65536bv64, true; - call rely(); - load12, Gamma_load12 := memory_load64_le(mem, bvadd64(R0, 4056bv64)), (gamma_load64(Gamma_mem, bvadd64(R0, 4056bv64)) || L(mem, bvadd64(R0, 4056bv64))); - R0, Gamma_R0 := load12, Gamma_load12; - load13, Gamma_load13 := memory_load8_le(stack, bvadd64(R31, 15bv64)), gamma_load8(Gamma_stack, bvadd64(R31, 15bv64)); - R1, Gamma_R1 := zero_extend32_32(zero_extend24_8(load13)), Gamma_load13; - call rely(); - assert (L(mem, R0) ==> Gamma_R1); - mem, Gamma_mem := memory_store8_le(mem, R0, R1[8:0]), gamma_store8(Gamma_mem, R0, Gamma_R1); - assume {:captureState "1912_0"} true; - R0, Gamma_R0 := 65536bv64, true; + var $load16: bv64; + var $load17: bv64; + var $load18: bv8; + var Gamma_$load16: bool; + var Gamma_$load17: bool; + var Gamma_$load18: bool; + $main$__0__$i2bc6yURTw~Pq2nxe63pQA: + assume {:captureState "$main$__0__$i2bc6yURTw~Pq2nxe63pQA"} true; + R1, Gamma_R1 := 4321280bv64, true; + R0, Gamma_R0 := 0bv64, true; call rely(); - load14, Gamma_load14 := memory_load64_le(mem, bvadd64(R0, 4072bv64)), (gamma_load64(Gamma_mem, bvadd64(R0, 4072bv64)) || L(mem, bvadd64(R0, 4072bv64))); - R0, Gamma_R0 := load14, Gamma_load14; + $load16, Gamma_$load16 := memory_load64_le(mem, bvadd64(R1, 4080bv64)), (gamma_load64(Gamma_mem, bvadd64(R1, 4080bv64)) || L(mem, bvadd64(R1, 4080bv64))); + R2, Gamma_R2 := $load16, Gamma_$load16; call rely(); - load15, Gamma_load15 := memory_load8_le(mem, R0), (gamma_load8(Gamma_mem, R0) || L(mem, R0)); - R0, Gamma_R0 := zero_extend32_32(zero_extend24_8(load15)), Gamma_load15; - stack, Gamma_stack := memory_store8_le(stack, bvadd64(R31, 15bv64), R0[8:0]), gamma_store8(Gamma_stack, bvadd64(R31, 15bv64), Gamma_R0); - assume {:captureState "1928_0"} true; - R0, Gamma_R0 := 65536bv64, true; + $load17, Gamma_$load17 := memory_load64_le(mem, bvadd64(R1, 4064bv64)), (gamma_load64(Gamma_mem, bvadd64(R1, 4064bv64)) || L(mem, bvadd64(R1, 4064bv64))); + R1, Gamma_R1 := $load17, Gamma_$load17; call rely(); - load16, Gamma_load16 := memory_load64_le(mem, bvadd64(R0, 4056bv64)), (gamma_load64(Gamma_mem, bvadd64(R0, 4056bv64)) || L(mem, bvadd64(R0, 4056bv64))); - R0, Gamma_R0 := load16, Gamma_load16; - load17, Gamma_load17 := memory_load8_le(stack, bvadd64(R31, 15bv64)), gamma_load8(Gamma_stack, bvadd64(R31, 15bv64)); - R1, Gamma_R1 := zero_extend32_32(zero_extend24_8(load17)), Gamma_load17; + $load18, Gamma_$load18 := memory_load8_le(mem, R2), (gamma_load8(Gamma_mem, R2) || L(mem, R2)); + R2, Gamma_R2 := zero_extend32_32(zero_extend24_8($load18)), Gamma_$load18; call rely(); - assert (L(mem, R0) ==> Gamma_R1); - mem, Gamma_mem := memory_store8_le(mem, R0, R1[8:0]), gamma_store8(Gamma_mem, R0, Gamma_R1); - assume {:captureState "1944_0"} true; - R0, Gamma_R0 := 0bv64, true; - R31, Gamma_R31 := bvadd64(R31, 16bv64), Gamma_R31; - goto main_1876_basil_return; - main_1876_basil_return: - assume {:captureState "main_1876_basil_return"} true; + assert (L(mem, R1) ==> Gamma_R2); + mem, Gamma_mem := memory_store8_le(mem, R1, R2[8:0]), gamma_store8(Gamma_mem, R1, Gamma_R2); + assume {:captureState "4195988$0"} true; + goto main_basil_return; + main_basil_return: + assume {:captureState "main_basil_return"} true; return; } diff --git a/src/test/incorrect/iflocal/clang/iflocal.adt b/src/test/incorrect/iflocal/clang/iflocal.adt deleted file mode 100644 index c548ef0df..000000000 --- a/src/test/incorrect/iflocal/clang/iflocal.adt +++ /dev/null @@ -1,557 +0,0 @@ -Project(Attrs([Attr("filename","\"clang/iflocal.out\""), -Attr("image-specification","(declare abi (name str))\n(declare arch (name str))\n(declare base-address (addr int))\n(declare bias (off int))\n(declare bits (size int))\n(declare code-region (addr int) (size int) (off int))\n(declare code-start (addr int))\n(declare entry-point (addr int))\n(declare external-reference (addr int) (name str))\n(declare format (name str))\n(declare is-executable (flag bool))\n(declare is-little-endian (flag bool))\n(declare llvm:base-address (addr int))\n(declare llvm:code-entry (name str) (off int) (size int))\n(declare llvm:coff-import-library (name str))\n(declare llvm:coff-virtual-section-header (name str) (addr int) (size int))\n(declare llvm:elf-program-header (name str) (off int) (size int))\n(declare llvm:elf-program-header-flags (name str) (ld bool) (r bool) \n (w bool) (x bool))\n(declare llvm:elf-virtual-program-header (name str) (addr int) (size int))\n(declare llvm:entry-point (addr int))\n(declare llvm:macho-symbol (name str) (value int))\n(declare llvm:name-reference (at int) (name str))\n(declare llvm:relocation (at int) (addr int))\n(declare llvm:section-entry (name str) (addr int) (size int) (off int))\n(declare llvm:section-flags (name str) (r bool) (w bool) (x bool))\n(declare llvm:segment-command (name str) (off int) (size int))\n(declare llvm:segment-command-flags (name str) (r bool) (w bool) (x bool))\n(declare llvm:symbol-entry (name str) (addr int) (size int) (off int)\n (value int))\n(declare llvm:virtual-segment-command (name str) (addr int) (size int))\n(declare mapped (addr int) (size int) (off int))\n(declare named-region (addr int) (size int) (name str))\n(declare named-symbol (addr int) (name str))\n(declare require (name str))\n(declare section (addr int) (size int))\n(declare segment (addr int) (size int) (r bool) (w bool) (x bool))\n(declare subarch (name str))\n(declare symbol-chunk (addr int) (size int) (root int))\n(declare symbol-value (addr int) (value int))\n(declare system (name str))\n(declare vendor (name str))\n\n(abi unknown)\n(arch aarch64)\n(base-address 0)\n(bias 0)\n(bits 64)\n(code-region 1876 20 1876)\n(code-region 1536 340 1536)\n(code-region 1440 96 1440)\n(code-region 1408 24 1408)\n(code-start 1588)\n(code-start 1536)\n(code-start 1812)\n(entry-point 1536)\n(external-reference 69568 _ITM_deregisterTMCloneTable)\n(external-reference 69576 __cxa_finalize)\n(external-reference 69584 __gmon_start__)\n(external-reference 69600 _ITM_registerTMCloneTable)\n(external-reference 69632 __libc_start_main)\n(external-reference 69640 __cxa_finalize)\n(external-reference 69648 __gmon_start__)\n(external-reference 69656 abort)\n(format elf)\n(is-executable true)\n(is-little-endian true)\n(llvm:base-address 0)\n(llvm:code-entry abort 0 0)\n(llvm:code-entry __cxa_finalize 0 0)\n(llvm:code-entry __libc_start_main 0 0)\n(llvm:code-entry _init 1408 0)\n(llvm:code-entry main 1812 64)\n(llvm:code-entry _start 1536 52)\n(llvm:code-entry abort@GLIBC_2.17 0 0)\n(llvm:code-entry _fini 1876 0)\n(llvm:code-entry __cxa_finalize@GLIBC_2.17 0 0)\n(llvm:code-entry __libc_start_main@GLIBC_2.34 0 0)\n(llvm:code-entry frame_dummy 1808 0)\n(llvm:code-entry __do_global_dtors_aux 1728 0)\n(llvm:code-entry register_tm_clones 1664 0)\n(llvm:code-entry deregister_tm_clones 1616 0)\n(llvm:code-entry call_weak_fn 1588 20)\n(llvm:code-entry .fini 1876 20)\n(llvm:code-entry .text 1536 340)\n(llvm:code-entry .plt 1440 96)\n(llvm:code-entry .init 1408 24)\n(llvm:elf-program-header 08 3528 568)\n(llvm:elf-program-header 07 0 0)\n(llvm:elf-program-header 06 1900 60)\n(llvm:elf-program-header 05 596 68)\n(llvm:elf-program-header 04 3544 480)\n(llvm:elf-program-header 03 3528 616)\n(llvm:elf-program-header 02 0 2144)\n(llvm:elf-program-header 01 568 27)\n(llvm:elf-program-header 00 64 504)\n(llvm:elf-program-header-flags 08 false true false false)\n(llvm:elf-program-header-flags 07 false true true false)\n(llvm:elf-program-header-flags 06 false true false false)\n(llvm:elf-program-header-flags 05 false true false false)\n(llvm:elf-program-header-flags 04 false true true false)\n(llvm:elf-program-header-flags 03 true true true false)\n(llvm:elf-program-header-flags 02 true true false true)\n(llvm:elf-program-header-flags 01 false true false false)\n(llvm:elf-program-header-flags 00 false true false false)\n(llvm:elf-virtual-program-header 08 69064 568)\n(llvm:elf-virtual-program-header 07 0 0)\n(llvm:elf-virtual-program-header 06 1900 60)\n(llvm:elf-virtual-program-header 05 596 68)\n(llvm:elf-virtual-program-header 04 69080 480)\n(llvm:elf-virtual-program-header 03 69064 624)\n(llvm:elf-virtual-program-header 02 0 2144)\n(llvm:elf-virtual-program-header 01 568 27)\n(llvm:elf-virtual-program-header 00 64 504)\n(llvm:entry-point 1536)\n(llvm:name-reference 69656 abort)\n(llvm:name-reference 69648 __gmon_start__)\n(llvm:name-reference 69640 __cxa_finalize)\n(llvm:name-reference 69632 __libc_start_main)\n(llvm:name-reference 69600 _ITM_registerTMCloneTable)\n(llvm:name-reference 69584 __gmon_start__)\n(llvm:name-reference 69576 __cxa_finalize)\n(llvm:name-reference 69568 _ITM_deregisterTMCloneTable)\n(llvm:section-entry .shstrtab 0 259 6886)\n(llvm:section-entry .strtab 0 558 6328)\n(llvm:section-entry .symtab 0 2112 4216)\n(llvm:section-entry .comment 0 71 4144)\n(llvm:section-entry .bss 69680 8 4144)\n(llvm:section-entry .data 69664 16 4128)\n(llvm:section-entry .got.plt 69608 56 4072)\n(llvm:section-entry .got 69560 48 4024)\n(llvm:section-entry .dynamic 69080 480 3544)\n(llvm:section-entry .fini_array 69072 8 3536)\n(llvm:section-entry .init_array 69064 8 3528)\n(llvm:section-entry .eh_frame 1960 184 1960)\n(llvm:section-entry .eh_frame_hdr 1900 60 1900)\n(llvm:section-entry .rodata 1896 4 1896)\n(llvm:section-entry .fini 1876 20 1876)\n(llvm:section-entry .text 1536 340 1536)\n(llvm:section-entry .plt 1440 96 1440)\n(llvm:section-entry .init 1408 24 1408)\n(llvm:section-entry .rela.plt 1312 96 1312)\n(llvm:section-entry .rela.dyn 1120 192 1120)\n(llvm:section-entry .gnu.version_r 1072 48 1072)\n(llvm:section-entry .gnu.version 1054 18 1054)\n(llvm:section-entry .dynstr 912 141 912)\n(llvm:section-entry .dynsym 696 216 696)\n(llvm:section-entry .gnu.hash 664 28 664)\n(llvm:section-entry .note.ABI-tag 632 32 632)\n(llvm:section-entry .note.gnu.build-id 596 36 596)\n(llvm:section-entry .interp 568 27 568)\n(llvm:section-flags .shstrtab true false false)\n(llvm:section-flags .strtab true false false)\n(llvm:section-flags .symtab true false false)\n(llvm:section-flags .comment true false false)\n(llvm:section-flags .bss true true false)\n(llvm:section-flags .data true true false)\n(llvm:section-flags .got.plt true true false)\n(llvm:section-flags .got true true false)\n(llvm:section-flags .dynamic true true false)\n(llvm:section-flags .fini_array true true false)\n(llvm:section-flags .init_array true true false)\n(llvm:section-flags .eh_frame true false false)\n(llvm:section-flags .eh_frame_hdr true false false)\n(llvm:section-flags .rodata true false false)\n(llvm:section-flags .fini true false true)\n(llvm:section-flags .text true false true)\n(llvm:section-flags .plt true false true)\n(llvm:section-flags .init true false true)\n(llvm:section-flags .rela.plt true false false)\n(llvm:section-flags .rela.dyn true false false)\n(llvm:section-flags .gnu.version_r true false false)\n(llvm:section-flags .gnu.version true false false)\n(llvm:section-flags .dynstr true false false)\n(llvm:section-flags .dynsym true false false)\n(llvm:section-flags .gnu.hash true false false)\n(llvm:section-flags .note.ABI-tag true false false)\n(llvm:section-flags .note.gnu.build-id true false false)\n(llvm:section-flags .interp true false false)\n(llvm:symbol-entry abort 0 0 0 0)\n(llvm:symbol-entry __cxa_finalize 0 0 0 0)\n(llvm:symbol-entry __libc_start_main 0 0 0 0)\n(llvm:symbol-entry _init 1408 0 1408 1408)\n(llvm:symbol-entry main 1812 64 1812 1812)\n(llvm:symbol-entry _start 1536 52 1536 1536)\n(llvm:symbol-entry abort@GLIBC_2.17 0 0 0 0)\n(llvm:symbol-entry _fini 1876 0 1876 1876)\n(llvm:symbol-entry __cxa_finalize@GLIBC_2.17 0 0 0 0)\n(llvm:symbol-entry __libc_start_main@GLIBC_2.34 0 0 0 0)\n(llvm:symbol-entry frame_dummy 1808 0 1808 1808)\n(llvm:symbol-entry __do_global_dtors_aux 1728 0 1728 1728)\n(llvm:symbol-entry register_tm_clones 1664 0 1664 1664)\n(llvm:symbol-entry deregister_tm_clones 1616 0 1616 1616)\n(llvm:symbol-entry call_weak_fn 1588 20 1588 1588)\n(mapped 0 2144 0)\n(mapped 69064 616 3528)\n(named-region 0 2144 02)\n(named-region 69064 624 03)\n(named-region 568 27 .interp)\n(named-region 596 36 .note.gnu.build-id)\n(named-region 632 32 .note.ABI-tag)\n(named-region 664 28 .gnu.hash)\n(named-region 696 216 .dynsym)\n(named-region 912 141 .dynstr)\n(named-region 1054 18 .gnu.version)\n(named-region 1072 48 .gnu.version_r)\n(named-region 1120 192 .rela.dyn)\n(named-region 1312 96 .rela.plt)\n(named-region 1408 24 .init)\n(named-region 1440 96 .plt)\n(named-region 1536 340 .text)\n(named-region 1876 20 .fini)\n(named-region 1896 4 .rodata)\n(named-region 1900 60 .eh_frame_hdr)\n(named-region 1960 184 .eh_frame)\n(named-region 69064 8 .init_array)\n(named-region 69072 8 .fini_array)\n(named-region 69080 480 .dynamic)\n(named-region 69560 48 .got)\n(named-region 69608 56 .got.plt)\n(named-region 69664 16 .data)\n(named-region 69680 8 .bss)\n(named-region 0 71 .comment)\n(named-region 0 2112 .symtab)\n(named-region 0 558 .strtab)\n(named-region 0 259 .shstrtab)\n(named-symbol 1588 call_weak_fn)\n(named-symbol 1616 deregister_tm_clones)\n(named-symbol 1664 register_tm_clones)\n(named-symbol 1728 __do_global_dtors_aux)\n(named-symbol 1808 frame_dummy)\n(named-symbol 0 __libc_start_main@GLIBC_2.34)\n(named-symbol 0 __cxa_finalize@GLIBC_2.17)\n(named-symbol 1876 _fini)\n(named-symbol 0 abort@GLIBC_2.17)\n(named-symbol 1536 _start)\n(named-symbol 1812 main)\n(named-symbol 1408 _init)\n(named-symbol 0 __libc_start_main)\n(named-symbol 0 __cxa_finalize)\n(named-symbol 0 abort)\n(require libc.so.6)\n(section 568 27)\n(section 596 36)\n(section 632 32)\n(section 664 28)\n(section 696 216)\n(section 912 141)\n(section 1054 18)\n(section 1072 48)\n(section 1120 192)\n(section 1312 96)\n(section 1408 24)\n(section 1440 96)\n(section 1536 340)\n(section 1876 20)\n(section 1896 4)\n(section 1900 60)\n(section 1960 184)\n(section 69064 8)\n(section 69072 8)\n(section 69080 480)\n(section 69560 48)\n(section 69608 56)\n(section 69664 16)\n(section 69680 8)\n(section 0 71)\n(section 0 2112)\n(section 0 558)\n(section 0 259)\n(segment 0 2144 true false true)\n(segment 69064 624 true true false)\n(subarch v8)\n(symbol-chunk 1588 20 1588)\n(symbol-chunk 1536 52 1536)\n(symbol-chunk 1812 64 1812)\n(symbol-value 1588 1588)\n(symbol-value 1616 1616)\n(symbol-value 1664 1664)\n(symbol-value 1728 1728)\n(symbol-value 1808 1808)\n(symbol-value 1876 1876)\n(symbol-value 1536 1536)\n(symbol-value 1812 1812)\n(symbol-value 1408 1408)\n(symbol-value 0 0)\n(system \"\")\n(vendor \"\")\n"), -Attr("abi-name","\"aarch64-linux-gnu-elf\"")]), -Sections([Section(".shstrtab", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x00\x06\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xf0\x1b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x38\x00\x09\x00\x40\x00\x1d\x00\x1c\x00\x06\x00\x00\x00\x04\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x04\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x60\x08\x00\x00\x00\x00\x00\x00\x60\x08\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x01\x00\x00\x00\x06\x00\x00\x00\xc8\x0d\x00\x00\x00\x00\x00\x00\xc8\x0d\x01\x00\x00\x00\x00\x00\xc8\x0d\x01"), -Section(".strtab", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x00\x06\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xf0\x1b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x38\x00\x09\x00\x40\x00\x1d\x00\x1c\x00\x06\x00\x00\x00\x04\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x04\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x60\x08\x00\x00\x00\x00\x00\x00\x60\x08\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x01\x00\x00\x00\x06\x00\x00\x00\xc8\x0d\x00\x00\x00\x00\x00\x00\xc8\x0d\x01\x00\x00\x00\x00\x00\xc8\x0d\x01\x00\x00\x00\x00\x00\x68\x02\x00\x00\x00\x00\x00\x00\x70\x02\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x02\x00\x00\x00\x06\x00\x00\x00\xd8\x0d\x00\x00\x00\x00\x00\x00\xd8\x0d\x01\x00\x00\x00\x00\x00\xd8\x0d\x01\x00\x00\x00\x00\x00\xe0\x01\x00\x00\x00\x00\x00\x00\xe0\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x04\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x50\xe5\x74\x64\x04\x00\x00\x00\x6c\x07\x00\x00\x00\x00\x00\x00\x6c\x07\x00\x00\x00\x00\x00\x00\x6c\x07\x00\x00\x00\x00\x00\x00\x3c\x00\x00\x00\x00\x00\x00\x00\x3c\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x51\xe5\x74\x64\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x52\xe5\x74\x64\x04\x00\x00\x00\xc8\x0d\x00\x00\x00\x00\x00\x00\xc8\x0d\x01\x00\x00\x00\x00\x00\xc8\x0d\x01\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00"), -Section(".symtab", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x00\x06\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xf0\x1b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x38\x00\x09\x00\x40\x00\x1d\x00\x1c\x00\x06\x00\x00\x00\x04\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x04\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x60\x08\x00\x00\x00\x00\x00\x00\x60\x08\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x01\x00\x00\x00\x06\x00\x00\x00\xc8\x0d\x00\x00\x00\x00\x00\x00\xc8\x0d\x01\x00\x00\x00\x00\x00\xc8\x0d\x01\x00\x00\x00\x00\x00\x68\x02\x00\x00\x00\x00\x00\x00\x70\x02\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x02\x00\x00\x00\x06\x00\x00\x00\xd8\x0d\x00\x00\x00\x00\x00\x00\xd8\x0d\x01\x00\x00\x00\x00\x00\xd8\x0d\x01\x00\x00\x00\x00\x00\xe0\x01\x00\x00\x00\x00\x00\x00\xe0\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x04\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x50\xe5\x74\x64\x04\x00\x00\x00\x6c\x07\x00\x00\x00\x00\x00\x00\x6c\x07\x00\x00\x00\x00\x00\x00\x6c\x07\x00\x00\x00\x00\x00\x00\x3c\x00\x00\x00\x00\x00\x00\x00\x3c\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x51\xe5\x74\x64\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x52\xe5\x74\x64\x04\x00\x00\x00\xc8\x0d\x00\x00\x00\x00\x00\x00\xc8\x0d\x01\x00\x00\x00\x00\x00\xc8\x0d\x01\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x2f\x6c\x69\x62\x2f\x6c\x64\x2d\x6c\x69\x6e\x75\x78\x2d\x61\x61\x72\x63\x68\x36\x34\x2e\x73\x6f\x2e\x31\x00\x00\x04\x00\x00\x00\x14\x00\x00\x00\x03\x00\x00\x00\x47\x4e\x55\x00\x76\x73\x8c\x69\xa1\xfd\x5e\x1b\xa4\x6e\x0b\x64\xe7\x05\x19\xf2\xb3\xeb\x3a\x59\x04\x00\x00\x00\x10\x00\x00\x00\x01\x00\x00\x00\x47\x4e\x55\x00\x00\x00\x00\x00\x03\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x01\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x0b\x00\x80\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x17\x00\x20\x10\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x48\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x22\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x22\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x73\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5f\x5f\x63\x78\x61\x5f\x66\x69\x6e\x61\x6c\x69\x7a\x65\x00\x5f\x5f\x6c\x69\x62\x63\x5f\x73\x74\x61\x72\x74\x5f\x6d\x61\x69\x6e\x00\x61\x62\x6f\x72\x74\x00\x6c\x69\x62\x63\x2e\x73\x6f\x2e\x36\x00\x47\x4c\x49\x42\x43\x5f\x32\x2e\x31\x37\x00\x47\x4c\x49\x42\x43\x5f\x32\x2e\x33\x34\x00\x5f\x49\x54\x4d\x5f\x64\x65\x72\x65\x67\x69\x73\x74\x65\x72\x54\x4d\x43\x6c\x6f\x6e\x65\x54\x61\x62\x6c\x65\x00\x5f\x5f\x67\x6d\x6f\x6e\x5f\x73\x74\x61\x72\x74\x5f\x5f\x00\x5f\x49\x54\x4d\x5f\x72\x65\x67\x69\x73\x74\x65\x72\x54\x4d\x43\x6c\x6f\x6e\x65\x54\x61\x62\x6c\x65\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x01\x00\x03\x00\x01\x00\x03\x00\x01\x00\x01\x00\x02\x00\x28\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x97\x91\x96\x06\x00\x00\x03\x00\x32\x00\x00\x00\x10\x00\x00\x00\xb4\x91\x96\x06\x00\x00\x02\x00\x3d\x00\x00\x00\x00\x00\x00\x00\xc8\x0d\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x10\x07\x00\x00\x00\x00\x00\x00\xd0\x0d\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\xc0\x06\x00\x00\x00\x00\x00\x00\xd8\x0f\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x14\x07\x00\x00\x00\x00\x00\x00\x28\x10\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x28\x10\x01\x00\x00\x00\x00\x00\xc0\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xc8\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xd0\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe0\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x08\x10\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x10\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x18\x10\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1f\x20\x03\xd5\xfd\x7b\xbf\xa9\xfd\x03\x00\x91\x2a\x00\x00\x94\xfd\x7b\xc1\xa8\xc0\x03\x5f\xd6\x00\x00\x00\x00\x00\x00\x00\x00\xf0\x7b\xbf\xa9\x90\x00\x00\x90\x11\xfe\x47\xf9\x10\xe2\x3f\x91\x20\x02\x1f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x90\x00\x00\xb0\x11\x02\x40\xf9\x10\x02\x00\x91\x20\x02\x1f\xd6\x90\x00\x00\xb0\x11\x06\x40\xf9\x10\x22\x00\x91\x20\x02\x1f\xd6\x90\x00\x00\xb0\x11\x0a\x40\xf9\x10\x42\x00\x91\x20\x02\x1f\xd6\x90\x00\x00\xb0\x11\x0e\x40\xf9\x10\x62\x00\x91\x20\x02\x1f\xd6\x1f\x20\x03\xd5\x1d\x00\x80\xd2\x1e\x00\x80\xd2\xe5\x03\x00\xaa\xe1\x03\x40\xf9\xe2\x23\x00\x91\xe6\x03\x00\x91\x80\x00\x00\x90\x00\xec\x47\xf9\x03\x00\x80\xd2\x04\x00\x80\xd2\xe5\xff\xff\x97\xf0\xff\xff\x97\x80\x00\x00\x90\x00\xe8\x47\xf9\x40\x00\x00\xb4\xe8\xff\xff\x17\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x80\x00\x00\xb0\x00\xc0\x00\x91\x81\x00\x00\xb0\x21\xc0\x00\x91\x3f\x00\x00\xeb\xc0\x00\x00\x54\x81\x00\x00\x90\x21\xe0\x47\xf9\x61\x00\x00\xb4\xf0\x03\x01\xaa\x00\x02\x1f\xd6\xc0\x03\x5f\xd6\x80\x00\x00\xb0\x00\xc0\x00\x91\x81\x00\x00\xb0\x21\xc0\x00\x91\x21\x00\x00\xcb\x22\xfc\x7f\xd3\x41\x0c\x81\x8b\x21\xfc\x41\x93\xc1\x00\x00\xb4\x82\x00\x00\x90\x42\xf0\x47\xf9\x62\x00\x00\xb4\xf0\x03\x02\xaa\x00\x02\x1f\xd6\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\xfd\x7b\xbe\xa9\xfd\x03\x00\x91\xf3\x0b\x00\xf9\x93\x00\x00\xb0\x60\xc2\x40\x39\x40\x01\x00\x35\x80\x00\x00\x90\x00\xe4\x47\xf9\x80\x00\x00\xb4\x80\x00\x00\xb0\x00\x14\x40\xf9\xb9\xff\xff\x97\xd8\xff\xff\x97\x20\x00\x80\x52\x60\xc2\x00\x39\xf3\x0b\x40\xf9\xfd\x7b\xc2\xa8\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\xdc\xff\xff\x17\xff\x43\x00\xd1\xff\x0f\x00\xb9\xe0\x0b\x00\xb9\xe8\x0b\x40\xb9\xe8\x07\x00\xb9\xe8\x07\x40\xb9\x08\x01\x00\x71\xe8\x07\x9f\x1a\xa8\x00\x00\x37\x01\x00\x00\x14\x28\x00\x80\x52\xe8\x07\x00\xb9\x01\x00\x00\x14\xe0\x0f\x40\xb9\xff\x43\x00\x91\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\xfd\x7b\xbf\xa9\xfd\x03\x00\x91\xfd\x7b\xc1\xa8\xc0\x03\x5f\xd6\x01\x00\x02\x00\x01\x1b\x03\x3b\x38\x00\x00\x00\x06\x00\x00\x00\x94\xfe\xff\xff\x50\x00\x00\x00\xe4\xfe\xff\xff\x64\x00\x00\x00\x14\xff\xff\xff\x78\x00\x00\x00\x54\xff\xff\xff\x8c\x00\x00\x00\xa4\xff\xff\xff\xb0\x00\x00\x00\xa8\xff\xff\xff\xd8\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x01\x7a\x52\x00\x04\x78\x1e\x01\x1b\x0c\x1f\x00\x10\x00\x00\x00\x18\x00\x00\x00\x3c\xfe\xff\xff\x34\x00\x00\x00\x00\x41\x07\x1e\x10\x00\x00\x00\x2c\x00\x00\x00\x78\xfe\xff\xff\x30\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x40\x00\x00\x00\x94\xfe\xff\xff\x3c\x00\x00\x00\x00\x00\x00\x00\x20\x00\x00\x00\x54\x00\x00\x00\xc0\xfe\xff\xff\x48\x00\x00\x00\x00\x41\x0e\x20\x9d\x04\x9e\x03\x42\x93\x02\x4e\xde\xdd\xd3\x0e\x00\x00\x00\x00\x10\x00\x00\x00\x78\x00\x00\x00\xec\xfe\xff\xff\x04\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x01\x7a\x52\x00\x01\x7c\x1e\x01"), -Section(".comment", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x00\x06\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xf0\x1b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x38\x00\x09\x00\x40\x00\x1d\x00\x1c\x00\x06\x00\x00\x00\x04\x00\x00"), -Section(".interp", 0x238, "\x2f\x6c\x69\x62\x2f\x6c\x64\x2d\x6c\x69\x6e\x75\x78\x2d\x61\x61\x72\x63\x68\x36\x34\x2e\x73\x6f\x2e\x31\x00"), -Section(".note.gnu.build-id", 0x254, "\x04\x00\x00\x00\x14\x00\x00\x00\x03\x00\x00\x00\x47\x4e\x55\x00\x76\x73\x8c\x69\xa1\xfd\x5e\x1b\xa4\x6e\x0b\x64\xe7\x05\x19\xf2\xb3\xeb\x3a\x59"), -Section(".note.ABI-tag", 0x278, "\x04\x00\x00\x00\x10\x00\x00\x00\x01\x00\x00\x00\x47\x4e\x55\x00\x00\x00\x00\x00\x03\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00"), -Section(".gnu.hash", 0x298, "\x01\x00\x00\x00\x01\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".dynsym", 0x2B8, "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x0b\x00\x80\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x17\x00\x20\x10\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x48\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x22\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x22\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x73\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".dynstr", 0x390, "\x00\x5f\x5f\x63\x78\x61\x5f\x66\x69\x6e\x61\x6c\x69\x7a\x65\x00\x5f\x5f\x6c\x69\x62\x63\x5f\x73\x74\x61\x72\x74\x5f\x6d\x61\x69\x6e\x00\x61\x62\x6f\x72\x74\x00\x6c\x69\x62\x63\x2e\x73\x6f\x2e\x36\x00\x47\x4c\x49\x42\x43\x5f\x32\x2e\x31\x37\x00\x47\x4c\x49\x42\x43\x5f\x32\x2e\x33\x34\x00\x5f\x49\x54\x4d\x5f\x64\x65\x72\x65\x67\x69\x73\x74\x65\x72\x54\x4d\x43\x6c\x6f\x6e\x65\x54\x61\x62\x6c\x65\x00\x5f\x5f\x67\x6d\x6f\x6e\x5f\x73\x74\x61\x72\x74\x5f\x5f\x00\x5f\x49\x54\x4d\x5f\x72\x65\x67\x69\x73\x74\x65\x72\x54\x4d\x43\x6c\x6f\x6e\x65\x54\x61\x62\x6c\x65\x00"), -Section(".gnu.version", 0x41E, "\x00\x00\x00\x00\x00\x00\x02\x00\x01\x00\x03\x00\x01\x00\x03\x00\x01\x00"), -Section(".gnu.version_r", 0x430, "\x01\x00\x02\x00\x28\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x97\x91\x96\x06\x00\x00\x03\x00\x32\x00\x00\x00\x10\x00\x00\x00\xb4\x91\x96\x06\x00\x00\x02\x00\x3d\x00\x00\x00\x00\x00\x00\x00"), -Section(".rela.dyn", 0x460, "\xc8\x0d\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x10\x07\x00\x00\x00\x00\x00\x00\xd0\x0d\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\xc0\x06\x00\x00\x00\x00\x00\x00\xd8\x0f\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x14\x07\x00\x00\x00\x00\x00\x00\x28\x10\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x28\x10\x01\x00\x00\x00\x00\x00\xc0\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xc8\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xd0\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe0\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".rela.plt", 0x520, "\x00\x10\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x08\x10\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x10\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x18\x10\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".init", 0x580, "\x1f\x20\x03\xd5\xfd\x7b\xbf\xa9\xfd\x03\x00\x91\x2a\x00\x00\x94\xfd\x7b\xc1\xa8\xc0\x03\x5f\xd6"), -Section(".plt", 0x5A0, "\xf0\x7b\xbf\xa9\x90\x00\x00\x90\x11\xfe\x47\xf9\x10\xe2\x3f\x91\x20\x02\x1f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x90\x00\x00\xb0\x11\x02\x40\xf9\x10\x02\x00\x91\x20\x02\x1f\xd6\x90\x00\x00\xb0\x11\x06\x40\xf9\x10\x22\x00\x91\x20\x02\x1f\xd6\x90\x00\x00\xb0\x11\x0a\x40\xf9\x10\x42\x00\x91\x20\x02\x1f\xd6\x90\x00\x00\xb0\x11\x0e\x40\xf9\x10\x62\x00\x91\x20\x02\x1f\xd6"), -Section(".fini", 0x754, "\x1f\x20\x03\xd5\xfd\x7b\xbf\xa9\xfd\x03\x00\x91\xfd\x7b\xc1\xa8\xc0\x03\x5f\xd6"), -Section(".rodata", 0x768, "\x01\x00\x02\x00"), -Section(".eh_frame_hdr", 0x76C, "\x01\x1b\x03\x3b\x38\x00\x00\x00\x06\x00\x00\x00\x94\xfe\xff\xff\x50\x00\x00\x00\xe4\xfe\xff\xff\x64\x00\x00\x00\x14\xff\xff\xff\x78\x00\x00\x00\x54\xff\xff\xff\x8c\x00\x00\x00\xa4\xff\xff\xff\xb0\x00\x00\x00\xa8\xff\xff\xff\xd8\x00\x00\x00"), -Section(".eh_frame", 0x7A8, "\x10\x00\x00\x00\x00\x00\x00\x00\x01\x7a\x52\x00\x04\x78\x1e\x01\x1b\x0c\x1f\x00\x10\x00\x00\x00\x18\x00\x00\x00\x3c\xfe\xff\xff\x34\x00\x00\x00\x00\x41\x07\x1e\x10\x00\x00\x00\x2c\x00\x00\x00\x78\xfe\xff\xff\x30\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x40\x00\x00\x00\x94\xfe\xff\xff\x3c\x00\x00\x00\x00\x00\x00\x00\x20\x00\x00\x00\x54\x00\x00\x00\xc0\xfe\xff\xff\x48\x00\x00\x00\x00\x41\x0e\x20\x9d\x04\x9e\x03\x42\x93\x02\x4e\xde\xdd\xd3\x0e\x00\x00\x00\x00\x10\x00\x00\x00\x78\x00\x00\x00\xec\xfe\xff\xff\x04\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x01\x7a\x52\x00\x01\x7c\x1e\x01\x1b\x0c\x1f\x00\x14\x00\x00\x00\x18\x00\x00\x00\xc8\xfe\xff\xff\x40\x00\x00\x00\x00\x44\x0e\x10\x78\x0e\x00\x00\x00\x00\x00\x00"), -Section(".fini_array", 0x10DD0, "\xc0\x06\x00\x00\x00\x00\x00\x00"), -Section(".dynamic", 0x10DD8, "\x01\x00\x00\x00\x00\x00\x00\x00\x28\x00\x00\x00\x00\x00\x00\x00\x0c\x00\x00\x00\x00\x00\x00\x00\x80\x05\x00\x00\x00\x00\x00\x00\x0d\x00\x00\x00\x00\x00\x00\x00\x54\x07\x00\x00\x00\x00\x00\x00\x19\x00\x00\x00\x00\x00\x00\x00\xc8\x0d\x01\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x1a\x00\x00\x00\x00\x00\x00\x00\xd0\x0d\x01\x00\x00\x00\x00\x00\x1c\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\xf5\xfe\xff\x6f\x00\x00\x00\x00\x98\x02\x00\x00\x00\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x90\x03\x00\x00\x00\x00\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\xb8\x02\x00\x00\x00\x00\x00\x00\x0a\x00\x00\x00\x00\x00\x00\x00\x8d\x00\x00\x00\x00\x00\x00\x00\x0b\x00\x00\x00\x00\x00\x00\x00\x18\x00\x00\x00\x00\x00\x00\x00\x15\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\xe8\x0f\x01\x00\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x60\x00\x00\x00\x00\x00\x00\x00\x14\x00\x00\x00\x00\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x17\x00\x00\x00\x00\x00\x00\x00\x20\x05\x00\x00\x00\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x60\x04\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\xc0\x00\x00\x00\x00\x00\x00\x00\x09\x00\x00\x00\x00\x00\x00\x00\x18\x00\x00\x00\x00\x00\x00\x00\xfb\xff\xff\x6f\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\xfe\xff\xff\x6f\x00\x00\x00\x00\x30\x04\x00\x00\x00\x00\x00\x00\xff\xff\xff\x6f\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\xf0\xff\xff\x6f\x00\x00\x00\x00\x1e\x04\x00\x00\x00\x00\x00\x00\xf9\xff\xff\x6f\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".init_array", 0x10DC8, "\x10\x07\x00\x00\x00\x00\x00\x00"), -Section(".got", 0x10FB8, "\xd8\x0d\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x14\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".got.plt", 0x10FE8, "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xa0\x05\x00\x00\x00\x00\x00\x00\xa0\x05\x00\x00\x00\x00\x00\x00\xa0\x05\x00\x00\x00\x00\x00\x00\xa0\x05\x00\x00\x00\x00\x00\x00"), -Section(".data", 0x11020, "\x00\x00\x00\x00\x00\x00\x00\x00\x28\x10\x01\x00\x00\x00\x00\x00"), -Section(".text", 0x600, "\x1f\x20\x03\xd5\x1d\x00\x80\xd2\x1e\x00\x80\xd2\xe5\x03\x00\xaa\xe1\x03\x40\xf9\xe2\x23\x00\x91\xe6\x03\x00\x91\x80\x00\x00\x90\x00\xec\x47\xf9\x03\x00\x80\xd2\x04\x00\x80\xd2\xe5\xff\xff\x97\xf0\xff\xff\x97\x80\x00\x00\x90\x00\xe8\x47\xf9\x40\x00\x00\xb4\xe8\xff\xff\x17\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x80\x00\x00\xb0\x00\xc0\x00\x91\x81\x00\x00\xb0\x21\xc0\x00\x91\x3f\x00\x00\xeb\xc0\x00\x00\x54\x81\x00\x00\x90\x21\xe0\x47\xf9\x61\x00\x00\xb4\xf0\x03\x01\xaa\x00\x02\x1f\xd6\xc0\x03\x5f\xd6\x80\x00\x00\xb0\x00\xc0\x00\x91\x81\x00\x00\xb0\x21\xc0\x00\x91\x21\x00\x00\xcb\x22\xfc\x7f\xd3\x41\x0c\x81\x8b\x21\xfc\x41\x93\xc1\x00\x00\xb4\x82\x00\x00\x90\x42\xf0\x47\xf9\x62\x00\x00\xb4\xf0\x03\x02\xaa\x00\x02\x1f\xd6\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\xfd\x7b\xbe\xa9\xfd\x03\x00\x91\xf3\x0b\x00\xf9\x93\x00\x00\xb0\x60\xc2\x40\x39\x40\x01\x00\x35\x80\x00\x00\x90\x00\xe4\x47\xf9\x80\x00\x00\xb4\x80\x00\x00\xb0\x00\x14\x40\xf9\xb9\xff\xff\x97\xd8\xff\xff\x97\x20\x00\x80\x52\x60\xc2\x00\x39\xf3\x0b\x40\xf9\xfd\x7b\xc2\xa8\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\xdc\xff\xff\x17\xff\x43\x00\xd1\xff\x0f\x00\xb9\xe0\x0b\x00\xb9\xe8\x0b\x40\xb9\xe8\x07\x00\xb9\xe8\x07\x40\xb9\x08\x01\x00\x71\xe8\x07\x9f\x1a\xa8\x00\x00\x37\x01\x00\x00\x14\x28\x00\x80\x52\xe8\x07\x00\xb9\x01\x00\x00\x14\xe0\x0f\x40\xb9\xff\x43\x00\x91\xc0\x03\x5f\xd6")]), -Memmap([Annotation(Region(0x0,0x85F), Attr("segment","02 0 2144")), -Annotation(Region(0x600,0x633), Attr("symbol","\"_start\"")), -Annotation(Region(0x0,0x102), Attr("section","\".shstrtab\"")), -Annotation(Region(0x0,0x22D), Attr("section","\".strtab\"")), -Annotation(Region(0x0,0x83F), Attr("section","\".symtab\"")), -Annotation(Region(0x0,0x46), Attr("section","\".comment\"")), -Annotation(Region(0x238,0x252), Attr("section","\".interp\"")), -Annotation(Region(0x254,0x277), Attr("section","\".note.gnu.build-id\"")), -Annotation(Region(0x278,0x297), Attr("section","\".note.ABI-tag\"")), -Annotation(Region(0x298,0x2B3), Attr("section","\".gnu.hash\"")), -Annotation(Region(0x2B8,0x38F), Attr("section","\".dynsym\"")), -Annotation(Region(0x390,0x41C), Attr("section","\".dynstr\"")), -Annotation(Region(0x41E,0x42F), Attr("section","\".gnu.version\"")), -Annotation(Region(0x430,0x45F), Attr("section","\".gnu.version_r\"")), -Annotation(Region(0x460,0x51F), Attr("section","\".rela.dyn\"")), -Annotation(Region(0x520,0x57F), Attr("section","\".rela.plt\"")), -Annotation(Region(0x580,0x597), Attr("section","\".init\"")), -Annotation(Region(0x5A0,0x5FF), Attr("section","\".plt\"")), -Annotation(Region(0x580,0x597), Attr("code-region","()")), -Annotation(Region(0x5A0,0x5FF), Attr("code-region","()")), -Annotation(Region(0x600,0x633), Attr("symbol-info","_start 0x600 52")), -Annotation(Region(0x634,0x647), Attr("symbol","\"call_weak_fn\"")), -Annotation(Region(0x634,0x647), Attr("symbol-info","call_weak_fn 0x634 20")), -Annotation(Region(0x714,0x753), Attr("symbol","\"main\"")), -Annotation(Region(0x714,0x753), Attr("symbol-info","main 0x714 64")), -Annotation(Region(0x754,0x767), Attr("section","\".fini\"")), -Annotation(Region(0x768,0x76B), Attr("section","\".rodata\"")), -Annotation(Region(0x76C,0x7A7), Attr("section","\".eh_frame_hdr\"")), -Annotation(Region(0x7A8,0x85F), Attr("section","\".eh_frame\"")), -Annotation(Region(0x10DC8,0x1102F), Attr("segment","03 0x10DC8 624")), -Annotation(Region(0x10DD0,0x10DD7), Attr("section","\".fini_array\"")), -Annotation(Region(0x10DD8,0x10FB7), Attr("section","\".dynamic\"")), -Annotation(Region(0x10DC8,0x10DCF), Attr("section","\".init_array\"")), -Annotation(Region(0x10FB8,0x10FE7), Attr("section","\".got\"")), -Annotation(Region(0x10FE8,0x1101F), Attr("section","\".got.plt\"")), -Annotation(Region(0x11020,0x1102F), Attr("section","\".data\"")), -Annotation(Region(0x600,0x753), Attr("section","\".text\"")), -Annotation(Region(0x600,0x753), Attr("code-region","()")), -Annotation(Region(0x754,0x767), Attr("code-region","()"))]), -Program(Tid(1_589, "%00000635"), Attrs([]), - Subs([Sub(Tid(1_537, "@__cxa_finalize"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x5D0"), -Attr("stub","()")]), "__cxa_finalize", Args([Arg(Tid(1_590, "%00000636"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("__cxa_finalize_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(933, "@__cxa_finalize"), - Attrs([Attr("address","0x5D0")]), Phis([]), -Defs([Def(Tid(1_181, "%0000049d"), Attrs([Attr("address","0x5D0"), -Attr("insn","adrp x16, #69632")]), Var("R16",Imm(64)), Int(69632,64)), -Def(Tid(1_188, "%000004a4"), Attrs([Attr("address","0x5D4"), -Attr("insn","ldr x17, [x16, #0x8]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(1_194, "%000004aa"), Attrs([Attr("address","0x5D8"), -Attr("insn","add x16, x16, #0x8")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(8,64)))]), Jmps([Call(Tid(1_199, "%000004af"), - Attrs([Attr("address","0x5DC"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), -Sub(Tid(1_538, "@__do_global_dtors_aux"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x6C0")]), - "__do_global_dtors_aux", Args([Arg(Tid(1_591, "%00000637"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("__do_global_dtors_aux_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(654, "@__do_global_dtors_aux"), - Attrs([Attr("address","0x6C0")]), Phis([]), Defs([Def(Tid(658, "%00000292"), - Attrs([Attr("address","0x6C0"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("#3",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(18446744073709551584,64))), -Def(Tid(664, "%00000298"), Attrs([Attr("address","0x6C0"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("#3",Imm(64)),Var("R29",Imm(64)),LittleEndian(),64)), -Def(Tid(670, "%0000029e"), Attrs([Attr("address","0x6C0"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("#3",Imm(64)),Int(8,64)),Var("R30",Imm(64)),LittleEndian(),64)), -Def(Tid(674, "%000002a2"), Attrs([Attr("address","0x6C0"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("R31",Imm(64)), -Var("#3",Imm(64))), Def(Tid(680, "%000002a8"), - Attrs([Attr("address","0x6C4"), Attr("insn","mov x29, sp")]), - Var("R29",Imm(64)), Var("R31",Imm(64))), Def(Tid(688, "%000002b0"), - Attrs([Attr("address","0x6C8"), Attr("insn","str x19, [sp, #0x10]")]), - Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(16,64)),Var("R19",Imm(64)),LittleEndian(),64)), -Def(Tid(693, "%000002b5"), Attrs([Attr("address","0x6CC"), -Attr("insn","adrp x19, #69632")]), Var("R19",Imm(64)), Int(69632,64)), -Def(Tid(700, "%000002bc"), Attrs([Attr("address","0x6D0"), -Attr("insn","ldrb w0, [x19, #0x30]")]), Var("R0",Imm(64)), -UNSIGNED(64,Load(Var("mem",Mem(64,8)),PLUS(Var("R19",Imm(64)),Int(48,64)),LittleEndian(),8)))]), -Jmps([Goto(Tid(707, "%000002c3"), Attrs([Attr("address","0x6D4"), -Attr("insn","cbnz w0, #0x28")]), - NEQ(Extract(31,0,Var("R0",Imm(64))),Int(0,32)), -Direct(Tid(705, "%000002c1"))), Goto(Tid(1_578, "%0000062a"), Attrs([]), - Int(1,1), Direct(Tid(878, "%0000036e")))])), Blk(Tid(878, "%0000036e"), - Attrs([Attr("address","0x6D8")]), Phis([]), Defs([Def(Tid(881, "%00000371"), - Attrs([Attr("address","0x6D8"), Attr("insn","adrp x0, #65536")]), - Var("R0",Imm(64)), Int(65536,64)), Def(Tid(888, "%00000378"), - Attrs([Attr("address","0x6DC"), Attr("insn","ldr x0, [x0, #0xfc8]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(4040,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(894, "%0000037e"), Attrs([Attr("address","0x6E0"), -Attr("insn","cbz x0, #0x10")]), EQ(Var("R0",Imm(64)),Int(0,64)), -Direct(Tid(892, "%0000037c"))), Goto(Tid(1_579, "%0000062b"), Attrs([]), - Int(1,1), Direct(Tid(917, "%00000395")))])), Blk(Tid(917, "%00000395"), - Attrs([Attr("address","0x6E4")]), Phis([]), Defs([Def(Tid(920, "%00000398"), - Attrs([Attr("address","0x6E4"), Attr("insn","adrp x0, #69632")]), - Var("R0",Imm(64)), Int(69632,64)), Def(Tid(927, "%0000039f"), - Attrs([Attr("address","0x6E8"), Attr("insn","ldr x0, [x0, #0x28]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(40,64)),LittleEndian(),64)), -Def(Tid(932, "%000003a4"), Attrs([Attr("address","0x6EC"), -Attr("insn","bl #-0x11c")]), Var("R30",Imm(64)), Int(1776,64))]), -Jmps([Call(Tid(935, "%000003a7"), Attrs([Attr("address","0x6EC"), -Attr("insn","bl #-0x11c")]), Int(1,1), -(Direct(Tid(1_537, "@__cxa_finalize")),Direct(Tid(892, "%0000037c"))))])), -Blk(Tid(892, "%0000037c"), Attrs([Attr("address","0x6F0")]), Phis([]), -Defs([Def(Tid(900, "%00000384"), Attrs([Attr("address","0x6F0"), -Attr("insn","bl #-0xa0")]), Var("R30",Imm(64)), Int(1780,64))]), -Jmps([Call(Tid(902, "%00000386"), Attrs([Attr("address","0x6F0"), -Attr("insn","bl #-0xa0")]), Int(1,1), -(Direct(Tid(1_551, "@deregister_tm_clones")),Direct(Tid(904, "%00000388"))))])), -Blk(Tid(904, "%00000388"), Attrs([Attr("address","0x6F4")]), Phis([]), -Defs([Def(Tid(907, "%0000038b"), Attrs([Attr("address","0x6F4"), -Attr("insn","mov w0, #0x1")]), Var("R0",Imm(64)), Int(1,64)), -Def(Tid(915, "%00000393"), Attrs([Attr("address","0x6F8"), -Attr("insn","strb w0, [x19, #0x30]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R19",Imm(64)),Int(48,64)),Extract(7,0,Var("R0",Imm(64))),LittleEndian(),8))]), -Jmps([Goto(Tid(1_580, "%0000062c"), Attrs([]), Int(1,1), -Direct(Tid(705, "%000002c1")))])), Blk(Tid(705, "%000002c1"), - Attrs([Attr("address","0x6FC")]), Phis([]), Defs([Def(Tid(715, "%000002cb"), - Attrs([Attr("address","0x6FC"), Attr("insn","ldr x19, [sp, #0x10]")]), - Var("R19",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(16,64)),LittleEndian(),64)), -Def(Tid(722, "%000002d2"), Attrs([Attr("address","0x700"), -Attr("insn","ldp x29, x30, [sp], #0x20")]), Var("R29",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(727, "%000002d7"), Attrs([Attr("address","0x700"), -Attr("insn","ldp x29, x30, [sp], #0x20")]), Var("R30",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(731, "%000002db"), Attrs([Attr("address","0x700"), -Attr("insn","ldp x29, x30, [sp], #0x20")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(32,64)))]), Jmps([Call(Tid(736, "%000002e0"), - Attrs([Attr("address","0x704"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), Sub(Tid(1_542, "@__libc_start_main"), - Attrs([Attr("c.proto","signed (*)(signed (*)(signed , char** , char** );* main, signed , char** , \nvoid* auxv)"), -Attr("address","0x5C0"), Attr("stub","()")]), "__libc_start_main", - Args([Arg(Tid(1_592, "%00000638"), - Attrs([Attr("c.layout","**[ : 64]"), -Attr("c.data","Top:u64 ptr ptr"), -Attr("c.type","signed (*)(signed , char** , char** );*")]), - Var("__libc_start_main_main",Imm(64)), Var("R0",Imm(64)), In()), -Arg(Tid(1_593, "%00000639"), Attrs([Attr("c.layout","[signed : 32]"), -Attr("c.data","Top:u32"), Attr("c.type","signed")]), - Var("__libc_start_main_arg2",Imm(32)), LOW(32,Var("R1",Imm(64))), In()), -Arg(Tid(1_594, "%0000063a"), Attrs([Attr("c.layout","**[char : 8]"), -Attr("c.data","Top:u8 ptr ptr"), Attr("c.type","char**")]), - Var("__libc_start_main_arg3",Imm(64)), Var("R2",Imm(64)), Both()), -Arg(Tid(1_595, "%0000063b"), Attrs([Attr("c.layout","*[ : 8]"), -Attr("c.data","{} ptr"), Attr("c.type","void*")]), - Var("__libc_start_main_auxv",Imm(64)), Var("R3",Imm(64)), Both()), -Arg(Tid(1_596, "%0000063c"), Attrs([Attr("c.layout","[signed : 32]"), -Attr("c.data","Top:u32"), Attr("c.type","signed")]), - Var("__libc_start_main_result",Imm(32)), LOW(32,Var("R0",Imm(64))), -Out())]), Blks([Blk(Tid(487, "@__libc_start_main"), - Attrs([Attr("address","0x5C0")]), Phis([]), -Defs([Def(Tid(1_159, "%00000487"), Attrs([Attr("address","0x5C0"), -Attr("insn","adrp x16, #69632")]), Var("R16",Imm(64)), Int(69632,64)), -Def(Tid(1_166, "%0000048e"), Attrs([Attr("address","0x5C4"), -Attr("insn","ldr x17, [x16]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R16",Imm(64)),LittleEndian(),64)), -Def(Tid(1_172, "%00000494"), Attrs([Attr("address","0x5C8"), -Attr("insn","add x16, x16, #0x0")]), Var("R16",Imm(64)), -Var("R16",Imm(64)))]), Jmps([Call(Tid(1_177, "%00000499"), - Attrs([Attr("address","0x5CC"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), Sub(Tid(1_543, "@_fini"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x754")]), - "_fini", Args([Arg(Tid(1_597, "%0000063d"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("_fini_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(31, "@_fini"), - Attrs([Attr("address","0x754")]), Phis([]), Defs([Def(Tid(37, "%00000025"), - Attrs([Attr("address","0x758"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("#0",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(18446744073709551600,64))), -Def(Tid(43, "%0000002b"), Attrs([Attr("address","0x758"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("#0",Imm(64)),Var("R29",Imm(64)),LittleEndian(),64)), -Def(Tid(49, "%00000031"), Attrs([Attr("address","0x758"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("#0",Imm(64)),Int(8,64)),Var("R30",Imm(64)),LittleEndian(),64)), -Def(Tid(53, "%00000035"), Attrs([Attr("address","0x758"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("R31",Imm(64)), -Var("#0",Imm(64))), Def(Tid(59, "%0000003b"), Attrs([Attr("address","0x75C"), -Attr("insn","mov x29, sp")]), Var("R29",Imm(64)), Var("R31",Imm(64))), -Def(Tid(66, "%00000042"), Attrs([Attr("address","0x760"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R29",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(71, "%00000047"), Attrs([Attr("address","0x760"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R30",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(75, "%0000004b"), Attrs([Attr("address","0x760"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(16,64)))]), Jmps([Call(Tid(80, "%00000050"), - Attrs([Attr("address","0x764"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), Sub(Tid(1_544, "@_init"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x580")]), - "_init", Args([Arg(Tid(1_598, "%0000063e"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("_init_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(1_363, "@_init"), - Attrs([Attr("address","0x580")]), Phis([]), -Defs([Def(Tid(1_369, "%00000559"), Attrs([Attr("address","0x584"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("#6",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(18446744073709551600,64))), -Def(Tid(1_375, "%0000055f"), Attrs([Attr("address","0x584"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("#6",Imm(64)),Var("R29",Imm(64)),LittleEndian(),64)), -Def(Tid(1_381, "%00000565"), Attrs([Attr("address","0x584"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("#6",Imm(64)),Int(8,64)),Var("R30",Imm(64)),LittleEndian(),64)), -Def(Tid(1_385, "%00000569"), Attrs([Attr("address","0x584"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("R31",Imm(64)), -Var("#6",Imm(64))), Def(Tid(1_391, "%0000056f"), - Attrs([Attr("address","0x588"), Attr("insn","mov x29, sp")]), - Var("R29",Imm(64)), Var("R31",Imm(64))), Def(Tid(1_396, "%00000574"), - Attrs([Attr("address","0x58C"), Attr("insn","bl #0xa8")]), - Var("R30",Imm(64)), Int(1424,64))]), Jmps([Call(Tid(1_398, "%00000576"), - Attrs([Attr("address","0x58C"), Attr("insn","bl #0xa8")]), Int(1,1), -(Direct(Tid(1_549, "@call_weak_fn")),Direct(Tid(1_400, "%00000578"))))])), -Blk(Tid(1_400, "%00000578"), Attrs([Attr("address","0x590")]), Phis([]), -Defs([Def(Tid(1_405, "%0000057d"), Attrs([Attr("address","0x590"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R29",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(1_410, "%00000582"), Attrs([Attr("address","0x590"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R30",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(1_414, "%00000586"), Attrs([Attr("address","0x590"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(16,64)))]), Jmps([Call(Tid(1_419, "%0000058b"), - Attrs([Attr("address","0x594"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), Sub(Tid(1_545, "@_start"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x600"), -Attr("stub","()"), Attr("entry-point","()")]), "_start", - Args([Arg(Tid(1_599, "%0000063f"), Attrs([Attr("c.layout","[signed : 32]"), -Attr("c.data","Top:u32"), Attr("c.type","signed")]), - Var("_start_result",Imm(32)), LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(424, "@_start"), Attrs([Attr("address","0x600")]), Phis([]), -Defs([Def(Tid(429, "%000001ad"), Attrs([Attr("address","0x604"), -Attr("insn","mov x29, #0x0")]), Var("R29",Imm(64)), Int(0,64)), -Def(Tid(434, "%000001b2"), Attrs([Attr("address","0x608"), -Attr("insn","mov x30, #0x0")]), Var("R30",Imm(64)), Int(0,64)), -Def(Tid(440, "%000001b8"), Attrs([Attr("address","0x60C"), -Attr("insn","mov x5, x0")]), Var("R5",Imm(64)), Var("R0",Imm(64))), -Def(Tid(447, "%000001bf"), Attrs([Attr("address","0x610"), -Attr("insn","ldr x1, [sp]")]), Var("R1",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(453, "%000001c5"), Attrs([Attr("address","0x614"), -Attr("insn","add x2, sp, #0x8")]), Var("R2",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(8,64))), Def(Tid(459, "%000001cb"), - Attrs([Attr("address","0x618"), Attr("insn","mov x6, sp")]), - Var("R6",Imm(64)), Var("R31",Imm(64))), Def(Tid(464, "%000001d0"), - Attrs([Attr("address","0x61C"), Attr("insn","adrp x0, #65536")]), - Var("R0",Imm(64)), Int(65536,64)), Def(Tid(471, "%000001d7"), - Attrs([Attr("address","0x620"), Attr("insn","ldr x0, [x0, #0xfd8]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(4056,64)),LittleEndian(),64)), -Def(Tid(476, "%000001dc"), Attrs([Attr("address","0x624"), -Attr("insn","mov x3, #0x0")]), Var("R3",Imm(64)), Int(0,64)), -Def(Tid(481, "%000001e1"), Attrs([Attr("address","0x628"), -Attr("insn","mov x4, #0x0")]), Var("R4",Imm(64)), Int(0,64)), -Def(Tid(486, "%000001e6"), Attrs([Attr("address","0x62C"), -Attr("insn","bl #-0x6c")]), Var("R30",Imm(64)), Int(1584,64))]), -Jmps([Call(Tid(489, "%000001e9"), Attrs([Attr("address","0x62C"), -Attr("insn","bl #-0x6c")]), Int(1,1), -(Direct(Tid(1_542, "@__libc_start_main")),Direct(Tid(491, "%000001eb"))))])), -Blk(Tid(491, "%000001eb"), Attrs([Attr("address","0x630")]), Phis([]), -Defs([Def(Tid(494, "%000001ee"), Attrs([Attr("address","0x630"), -Attr("insn","bl #-0x40")]), Var("R30",Imm(64)), Int(1588,64))]), -Jmps([Call(Tid(497, "%000001f1"), Attrs([Attr("address","0x630"), -Attr("insn","bl #-0x40")]), Int(1,1), -(Direct(Tid(1_548, "@abort")),Direct(Tid(1_581, "%0000062d"))))])), -Blk(Tid(1_581, "%0000062d"), Attrs([]), Phis([]), Defs([]), -Jmps([Call(Tid(1_582, "%0000062e"), Attrs([]), Int(1,1), -(Direct(Tid(1_549, "@call_weak_fn")),))]))])), Sub(Tid(1_548, "@abort"), - Attrs([Attr("noreturn","()"), Attr("c.proto","void (*)(void)"), -Attr("address","0x5F0"), Attr("stub","()")]), "abort", Args([]), -Blks([Blk(Tid(495, "@abort"), Attrs([Attr("address","0x5F0")]), Phis([]), -Defs([Def(Tid(1_225, "%000004c9"), Attrs([Attr("address","0x5F0"), -Attr("insn","adrp x16, #69632")]), Var("R16",Imm(64)), Int(69632,64)), -Def(Tid(1_232, "%000004d0"), Attrs([Attr("address","0x5F4"), -Attr("insn","ldr x17, [x16, #0x18]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(24,64)),LittleEndian(),64)), -Def(Tid(1_238, "%000004d6"), Attrs([Attr("address","0x5F8"), -Attr("insn","add x16, x16, #0x18")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(24,64)))]), Jmps([Call(Tid(1_243, "%000004db"), - Attrs([Attr("address","0x5FC"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), Sub(Tid(1_549, "@call_weak_fn"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x634")]), - "call_weak_fn", Args([Arg(Tid(1_600, "%00000640"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("call_weak_fn_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(499, "@call_weak_fn"), - Attrs([Attr("address","0x634")]), Phis([]), Defs([Def(Tid(502, "%000001f6"), - Attrs([Attr("address","0x634"), Attr("insn","adrp x0, #65536")]), - Var("R0",Imm(64)), Int(65536,64)), Def(Tid(509, "%000001fd"), - Attrs([Attr("address","0x638"), Attr("insn","ldr x0, [x0, #0xfd0]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(4048,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(515, "%00000203"), Attrs([Attr("address","0x63C"), -Attr("insn","cbz x0, #0x8")]), EQ(Var("R0",Imm(64)),Int(0,64)), -Direct(Tid(513, "%00000201"))), Goto(Tid(1_583, "%0000062f"), Attrs([]), - Int(1,1), Direct(Tid(997, "%000003e5")))])), Blk(Tid(513, "%00000201"), - Attrs([Attr("address","0x644")]), Phis([]), Defs([]), -Jmps([Call(Tid(521, "%00000209"), Attrs([Attr("address","0x644"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))])), -Blk(Tid(997, "%000003e5"), Attrs([Attr("address","0x640")]), Phis([]), -Defs([]), Jmps([Goto(Tid(1_000, "%000003e8"), Attrs([Attr("address","0x640"), -Attr("insn","b #-0x60")]), Int(1,1), Direct(Tid(998, "@__gmon_start__")))])), -Blk(Tid(998, "@__gmon_start__"), Attrs([Attr("address","0x5E0")]), Phis([]), -Defs([Def(Tid(1_203, "%000004b3"), Attrs([Attr("address","0x5E0"), -Attr("insn","adrp x16, #69632")]), Var("R16",Imm(64)), Int(69632,64)), -Def(Tid(1_210, "%000004ba"), Attrs([Attr("address","0x5E4"), -Attr("insn","ldr x17, [x16, #0x10]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(16,64)),LittleEndian(),64)), -Def(Tid(1_216, "%000004c0"), Attrs([Attr("address","0x5E8"), -Attr("insn","add x16, x16, #0x10")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(16,64)))]), Jmps([Call(Tid(1_221, "%000004c5"), - Attrs([Attr("address","0x5EC"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), -Sub(Tid(1_551, "@deregister_tm_clones"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x650")]), - "deregister_tm_clones", Args([Arg(Tid(1_601, "%00000641"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("deregister_tm_clones_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(527, "@deregister_tm_clones"), - Attrs([Attr("address","0x650")]), Phis([]), Defs([Def(Tid(530, "%00000212"), - Attrs([Attr("address","0x650"), Attr("insn","adrp x0, #69632")]), - Var("R0",Imm(64)), Int(69632,64)), Def(Tid(536, "%00000218"), - Attrs([Attr("address","0x654"), Attr("insn","add x0, x0, #0x30")]), - Var("R0",Imm(64)), PLUS(Var("R0",Imm(64)),Int(48,64))), -Def(Tid(541, "%0000021d"), Attrs([Attr("address","0x658"), -Attr("insn","adrp x1, #69632")]), Var("R1",Imm(64)), Int(69632,64)), -Def(Tid(547, "%00000223"), Attrs([Attr("address","0x65C"), -Attr("insn","add x1, x1, #0x30")]), Var("R1",Imm(64)), -PLUS(Var("R1",Imm(64)),Int(48,64))), Def(Tid(553, "%00000229"), - Attrs([Attr("address","0x660"), Attr("insn","cmp x1, x0")]), - Var("#1",Imm(64)), NOT(Var("R0",Imm(64)))), Def(Tid(558, "%0000022e"), - Attrs([Attr("address","0x660"), Attr("insn","cmp x1, x0")]), - Var("#2",Imm(64)), PLUS(Var("R1",Imm(64)),NOT(Var("R0",Imm(64))))), -Def(Tid(564, "%00000234"), Attrs([Attr("address","0x660"), -Attr("insn","cmp x1, x0")]), Var("VF",Imm(1)), -NEQ(SIGNED(65,PLUS(Var("#2",Imm(64)),Int(1,64))),PLUS(PLUS(SIGNED(65,Var("R1",Imm(64))),SIGNED(65,Var("#1",Imm(64)))),Int(1,65)))), -Def(Tid(570, "%0000023a"), Attrs([Attr("address","0x660"), -Attr("insn","cmp x1, x0")]), Var("CF",Imm(1)), -NEQ(UNSIGNED(65,PLUS(Var("#2",Imm(64)),Int(1,64))),PLUS(PLUS(UNSIGNED(65,Var("R1",Imm(64))),UNSIGNED(65,Var("#1",Imm(64)))),Int(1,65)))), -Def(Tid(574, "%0000023e"), Attrs([Attr("address","0x660"), -Attr("insn","cmp x1, x0")]), Var("ZF",Imm(1)), -EQ(PLUS(Var("#2",Imm(64)),Int(1,64)),Int(0,64))), Def(Tid(578, "%00000242"), - Attrs([Attr("address","0x660"), Attr("insn","cmp x1, x0")]), - Var("NF",Imm(1)), Extract(63,63,PLUS(Var("#2",Imm(64)),Int(1,64))))]), -Jmps([Goto(Tid(584, "%00000248"), Attrs([Attr("address","0x664"), -Attr("insn","b.eq #0x18")]), EQ(Var("ZF",Imm(1)),Int(1,1)), -Direct(Tid(582, "%00000246"))), Goto(Tid(1_584, "%00000630"), Attrs([]), - Int(1,1), Direct(Tid(967, "%000003c7")))])), Blk(Tid(967, "%000003c7"), - Attrs([Attr("address","0x668")]), Phis([]), Defs([Def(Tid(970, "%000003ca"), - Attrs([Attr("address","0x668"), Attr("insn","adrp x1, #65536")]), - Var("R1",Imm(64)), Int(65536,64)), Def(Tid(977, "%000003d1"), - Attrs([Attr("address","0x66C"), Attr("insn","ldr x1, [x1, #0xfc0]")]), - Var("R1",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R1",Imm(64)),Int(4032,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(982, "%000003d6"), Attrs([Attr("address","0x670"), -Attr("insn","cbz x1, #0xc")]), EQ(Var("R1",Imm(64)),Int(0,64)), -Direct(Tid(582, "%00000246"))), Goto(Tid(1_585, "%00000631"), Attrs([]), - Int(1,1), Direct(Tid(986, "%000003da")))])), Blk(Tid(582, "%00000246"), - Attrs([Attr("address","0x67C")]), Phis([]), Defs([]), -Jmps([Call(Tid(590, "%0000024e"), Attrs([Attr("address","0x67C"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))])), -Blk(Tid(986, "%000003da"), Attrs([Attr("address","0x674")]), Phis([]), -Defs([Def(Tid(990, "%000003de"), Attrs([Attr("address","0x674"), -Attr("insn","mov x16, x1")]), Var("R16",Imm(64)), Var("R1",Imm(64)))]), -Jmps([Call(Tid(995, "%000003e3"), Attrs([Attr("address","0x678"), -Attr("insn","br x16")]), Int(1,1), (Indirect(Var("R16",Imm(64))),))]))])), -Sub(Tid(1_554, "@frame_dummy"), Attrs([Attr("c.proto","signed (*)(void)"), -Attr("address","0x710")]), "frame_dummy", Args([Arg(Tid(1_602, "%00000642"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("frame_dummy_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(742, "@frame_dummy"), - Attrs([Attr("address","0x710")]), Phis([]), Defs([]), -Jmps([Call(Tid(744, "%000002e8"), Attrs([Attr("address","0x710"), -Attr("insn","b #-0x90")]), Int(1,1), -(Direct(Tid(1_557, "@register_tm_clones")),))]))])), Sub(Tid(1_555, "@main"), - Attrs([Attr("c.proto","signed (*)(signed argc, const char** argv)"), -Attr("address","0x714")]), "main", Args([Arg(Tid(1_603, "%00000643"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("main_argc",Imm(32)), -LOW(32,Var("R0",Imm(64))), In()), Arg(Tid(1_604, "%00000644"), - Attrs([Attr("c.layout","**[char : 8]"), Attr("c.data","Top:u8 ptr ptr"), -Attr("c.type"," const char**")]), Var("main_argv",Imm(64)), -Var("R1",Imm(64)), Both()), Arg(Tid(1_605, "%00000645"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("main_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(746, "@main"), - Attrs([Attr("address","0x714")]), Phis([]), Defs([Def(Tid(750, "%000002ee"), - Attrs([Attr("address","0x714"), Attr("insn","sub sp, sp, #0x10")]), - Var("R31",Imm(64)), PLUS(Var("R31",Imm(64)),Int(18446744073709551600,64))), -Def(Tid(757, "%000002f5"), Attrs([Attr("address","0x718"), -Attr("insn","str wzr, [sp, #0xc]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(12,64)),Int(0,32),LittleEndian(),32)), -Def(Tid(765, "%000002fd"), Attrs([Attr("address","0x71C"), -Attr("insn","str w0, [sp, #0x8]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),Extract(31,0,Var("R0",Imm(64))),LittleEndian(),32)), -Def(Tid(772, "%00000304"), Attrs([Attr("address","0x720"), -Attr("insn","ldr w8, [sp, #0x8]")]), Var("R8",Imm(64)), -UNSIGNED(64,Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),LittleEndian(),32))), -Def(Tid(780, "%0000030c"), Attrs([Attr("address","0x724"), -Attr("insn","str w8, [sp, #0x4]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(4,64)),Extract(31,0,Var("R8",Imm(64))),LittleEndian(),32)), -Def(Tid(787, "%00000313"), Attrs([Attr("address","0x728"), -Attr("insn","ldr w8, [sp, #0x4]")]), Var("R8",Imm(64)), -UNSIGNED(64,Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(4,64)),LittleEndian(),32))), -Def(Tid(793, "%00000319"), Attrs([Attr("address","0x72C"), -Attr("insn","subs w8, w8, #0x0")]), Var("#4",Imm(32)), -PLUS(Extract(31,0,Var("R8",Imm(64))),Int(4294967295,32))), -Def(Tid(798, "%0000031e"), Attrs([Attr("address","0x72C"), -Attr("insn","subs w8, w8, #0x0")]), Var("VF",Imm(1)), -NEQ(SIGNED(33,PLUS(Var("#4",Imm(32)),Int(1,32))),PLUS(SIGNED(33,Extract(31,0,Var("R8",Imm(64)))),Int(0,33)))), -Def(Tid(803, "%00000323"), Attrs([Attr("address","0x72C"), -Attr("insn","subs w8, w8, #0x0")]), Var("CF",Imm(1)), -NEQ(UNSIGNED(33,PLUS(Var("#4",Imm(32)),Int(1,32))),PLUS(UNSIGNED(33,Extract(31,0,Var("R8",Imm(64)))),Int(4294967296,33)))), -Def(Tid(807, "%00000327"), Attrs([Attr("address","0x72C"), -Attr("insn","subs w8, w8, #0x0")]), Var("ZF",Imm(1)), -EQ(PLUS(Var("#4",Imm(32)),Int(1,32)),Int(0,32))), Def(Tid(811, "%0000032b"), - Attrs([Attr("address","0x72C"), Attr("insn","subs w8, w8, #0x0")]), - Var("NF",Imm(1)), Extract(31,31,PLUS(Var("#4",Imm(32)),Int(1,32)))), -Def(Tid(815, "%0000032f"), Attrs([Attr("address","0x72C"), -Attr("insn","subs w8, w8, #0x0")]), Var("R8",Imm(64)), -UNSIGNED(64,PLUS(Var("#4",Imm(32)),Int(1,32))))]), -Jmps([Goto(Tid(827, "%0000033b"), Attrs([Attr("address","0x730"), -Attr("insn","cset w8, ne")]), EQ(Var("ZF",Imm(1)),Int(1,1)), -Direct(Tid(820, "%00000334"))), Goto(Tid(828, "%0000033c"), - Attrs([Attr("address","0x730"), Attr("insn","cset w8, ne")]), Int(1,1), -Direct(Tid(823, "%00000337")))])), Blk(Tid(823, "%00000337"), Attrs([]), - Phis([]), Defs([Def(Tid(824, "%00000338"), Attrs([Attr("address","0x730"), -Attr("insn","cset w8, ne")]), Var("R8",Imm(64)), Int(1,64))]), -Jmps([Goto(Tid(830, "%0000033e"), Attrs([Attr("address","0x730"), -Attr("insn","cset w8, ne")]), Int(1,1), Direct(Tid(826, "%0000033a")))])), -Blk(Tid(820, "%00000334"), Attrs([]), Phis([]), -Defs([Def(Tid(821, "%00000335"), Attrs([Attr("address","0x730"), -Attr("insn","cset w8, ne")]), Var("R8",Imm(64)), Int(0,64))]), -Jmps([Goto(Tid(829, "%0000033d"), Attrs([Attr("address","0x730"), -Attr("insn","cset w8, ne")]), Int(1,1), Direct(Tid(826, "%0000033a")))])), -Blk(Tid(826, "%0000033a"), Attrs([]), Phis([]), Defs([]), -Jmps([Goto(Tid(836, "%00000344"), Attrs([Attr("address","0x734"), -Attr("insn","tbnz w8, #0x0, #0x14")]), - EQ(Extract(0,0,Var("R8",Imm(64))),Int(1,1)), Direct(Tid(834, "%00000342"))), -Goto(Tid(1_586, "%00000632"), Attrs([]), Int(1,1), -Direct(Tid(857, "%00000359")))])), Blk(Tid(857, "%00000359"), - Attrs([Attr("address","0x738")]), Phis([]), Defs([]), -Jmps([Goto(Tid(860, "%0000035c"), Attrs([Attr("address","0x738"), -Attr("insn","b #0x4")]), Int(1,1), Direct(Tid(858, "%0000035a")))])), -Blk(Tid(858, "%0000035a"), Attrs([Attr("address","0x73C")]), Phis([]), -Defs([Def(Tid(864, "%00000360"), Attrs([Attr("address","0x73C"), -Attr("insn","mov w8, #0x1")]), Var("R8",Imm(64)), Int(1,64)), -Def(Tid(872, "%00000368"), Attrs([Attr("address","0x740"), -Attr("insn","str w8, [sp, #0x4]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(4,64)),Extract(31,0,Var("R8",Imm(64))),LittleEndian(),32))]), -Jmps([Goto(Tid(876, "%0000036c"), Attrs([Attr("address","0x744"), -Attr("insn","b #0x4")]), Int(1,1), Direct(Tid(834, "%00000342")))])), -Blk(Tid(834, "%00000342"), Attrs([Attr("address","0x748")]), Phis([]), -Defs([Def(Tid(844, "%0000034c"), Attrs([Attr("address","0x748"), -Attr("insn","ldr w0, [sp, #0xc]")]), Var("R0",Imm(64)), -UNSIGNED(64,Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(12,64)),LittleEndian(),32))), -Def(Tid(850, "%00000352"), Attrs([Attr("address","0x74C"), -Attr("insn","add sp, sp, #0x10")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(16,64)))]), Jmps([Call(Tid(855, "%00000357"), - Attrs([Attr("address","0x750"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), -Sub(Tid(1_557, "@register_tm_clones"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x680")]), - "register_tm_clones", Args([Arg(Tid(1_606, "%00000646"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("register_tm_clones_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(592, "@register_tm_clones"), Attrs([Attr("address","0x680")]), - Phis([]), Defs([Def(Tid(595, "%00000253"), Attrs([Attr("address","0x680"), -Attr("insn","adrp x0, #69632")]), Var("R0",Imm(64)), Int(69632,64)), -Def(Tid(601, "%00000259"), Attrs([Attr("address","0x684"), -Attr("insn","add x0, x0, #0x30")]), Var("R0",Imm(64)), -PLUS(Var("R0",Imm(64)),Int(48,64))), Def(Tid(606, "%0000025e"), - Attrs([Attr("address","0x688"), Attr("insn","adrp x1, #69632")]), - Var("R1",Imm(64)), Int(69632,64)), Def(Tid(612, "%00000264"), - Attrs([Attr("address","0x68C"), Attr("insn","add x1, x1, #0x30")]), - Var("R1",Imm(64)), PLUS(Var("R1",Imm(64)),Int(48,64))), -Def(Tid(619, "%0000026b"), Attrs([Attr("address","0x690"), -Attr("insn","sub x1, x1, x0")]), Var("R1",Imm(64)), -PLUS(PLUS(Var("R1",Imm(64)),NOT(Var("R0",Imm(64)))),Int(1,64))), -Def(Tid(625, "%00000271"), Attrs([Attr("address","0x694"), -Attr("insn","lsr x2, x1, #63")]), Var("R2",Imm(64)), -Concat(Int(0,63),Extract(63,63,Var("R1",Imm(64))))), -Def(Tid(632, "%00000278"), Attrs([Attr("address","0x698"), -Attr("insn","add x1, x2, x1, asr #3")]), Var("R1",Imm(64)), -PLUS(Var("R2",Imm(64)),ARSHIFT(Var("R1",Imm(64)),Int(3,3)))), -Def(Tid(638, "%0000027e"), Attrs([Attr("address","0x69C"), -Attr("insn","asr x1, x1, #1")]), Var("R1",Imm(64)), -SIGNED(64,Extract(63,1,Var("R1",Imm(64)))))]), -Jmps([Goto(Tid(644, "%00000284"), Attrs([Attr("address","0x6A0"), -Attr("insn","cbz x1, #0x18")]), EQ(Var("R1",Imm(64)),Int(0,64)), -Direct(Tid(642, "%00000282"))), Goto(Tid(1_587, "%00000633"), Attrs([]), - Int(1,1), Direct(Tid(937, "%000003a9")))])), Blk(Tid(937, "%000003a9"), - Attrs([Attr("address","0x6A4")]), Phis([]), Defs([Def(Tid(940, "%000003ac"), - Attrs([Attr("address","0x6A4"), Attr("insn","adrp x2, #65536")]), - Var("R2",Imm(64)), Int(65536,64)), Def(Tid(947, "%000003b3"), - Attrs([Attr("address","0x6A8"), Attr("insn","ldr x2, [x2, #0xfe0]")]), - Var("R2",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R2",Imm(64)),Int(4064,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(952, "%000003b8"), Attrs([Attr("address","0x6AC"), -Attr("insn","cbz x2, #0xc")]), EQ(Var("R2",Imm(64)),Int(0,64)), -Direct(Tid(642, "%00000282"))), Goto(Tid(1_588, "%00000634"), Attrs([]), - Int(1,1), Direct(Tid(956, "%000003bc")))])), Blk(Tid(642, "%00000282"), - Attrs([Attr("address","0x6B8")]), Phis([]), Defs([]), -Jmps([Call(Tid(650, "%0000028a"), Attrs([Attr("address","0x6B8"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))])), -Blk(Tid(956, "%000003bc"), Attrs([Attr("address","0x6B0")]), Phis([]), -Defs([Def(Tid(960, "%000003c0"), Attrs([Attr("address","0x6B0"), -Attr("insn","mov x16, x2")]), Var("R16",Imm(64)), Var("R2",Imm(64)))]), -Jmps([Call(Tid(965, "%000003c5"), Attrs([Attr("address","0x6B4"), -Attr("insn","br x16")]), Int(1,1), -(Indirect(Var("R16",Imm(64))),))]))]))]))) \ No newline at end of file diff --git a/src/test/incorrect/iflocal/clang/iflocal.bir b/src/test/incorrect/iflocal/clang/iflocal.bir deleted file mode 100644 index 87caa97ae..000000000 --- a/src/test/incorrect/iflocal/clang/iflocal.bir +++ /dev/null @@ -1,261 +0,0 @@ -00000635: program -00000601: sub __cxa_finalize(__cxa_finalize_result) -00000636: __cxa_finalize_result :: out u32 = low:32[R0] - -000003a5: -0000049d: R16 := 0x11000 -000004a4: R17 := mem[R16 + 8, el]:u64 -000004aa: R16 := R16 + 8 -000004af: call R17 with noreturn - -00000602: sub __do_global_dtors_aux(__do_global_dtors_aux_result) -00000637: __do_global_dtors_aux_result :: out u32 = low:32[R0] - -0000028e: -00000292: #3 := R31 - 0x20 -00000298: mem := mem with [#3, el]:u64 <- R29 -0000029e: mem := mem with [#3 + 8, el]:u64 <- R30 -000002a2: R31 := #3 -000002a8: R29 := R31 -000002b0: mem := mem with [R31 + 0x10, el]:u64 <- R19 -000002b5: R19 := 0x11000 -000002bc: R0 := pad:64[mem[R19 + 0x30]] -000002c3: when 31:0[R0] <> 0 goto %000002c1 -0000062a: goto %0000036e - -0000036e: -00000371: R0 := 0x10000 -00000378: R0 := mem[R0 + 0xFC8, el]:u64 -0000037e: when R0 = 0 goto %0000037c -0000062b: goto %00000395 - -00000395: -00000398: R0 := 0x11000 -0000039f: R0 := mem[R0 + 0x28, el]:u64 -000003a4: R30 := 0x6F0 -000003a7: call @__cxa_finalize with return %0000037c - -0000037c: -00000384: R30 := 0x6F4 -00000386: call @deregister_tm_clones with return %00000388 - -00000388: -0000038b: R0 := 1 -00000393: mem := mem with [R19 + 0x30] <- 7:0[R0] -0000062c: goto %000002c1 - -000002c1: -000002cb: R19 := mem[R31 + 0x10, el]:u64 -000002d2: R29 := mem[R31, el]:u64 -000002d7: R30 := mem[R31 + 8, el]:u64 -000002db: R31 := R31 + 0x20 -000002e0: call R30 with noreturn - -00000606: sub __libc_start_main(__libc_start_main_main, __libc_start_main_arg2, __libc_start_main_arg3, __libc_start_main_auxv, __libc_start_main_result) -00000638: __libc_start_main_main :: in u64 = R0 -00000639: __libc_start_main_arg2 :: in u32 = low:32[R1] -0000063a: __libc_start_main_arg3 :: in out u64 = R2 -0000063b: __libc_start_main_auxv :: in out u64 = R3 -0000063c: __libc_start_main_result :: out u32 = low:32[R0] - -000001e7: -00000487: R16 := 0x11000 -0000048e: R17 := mem[R16, el]:u64 -00000494: R16 := R16 -00000499: call R17 with noreturn - -00000607: sub _fini(_fini_result) -0000063d: _fini_result :: out u32 = low:32[R0] - -0000001f: -00000025: #0 := R31 - 0x10 -0000002b: mem := mem with [#0, el]:u64 <- R29 -00000031: mem := mem with [#0 + 8, el]:u64 <- R30 -00000035: R31 := #0 -0000003b: R29 := R31 -00000042: R29 := mem[R31, el]:u64 -00000047: R30 := mem[R31 + 8, el]:u64 -0000004b: R31 := R31 + 0x10 -00000050: call R30 with noreturn - -00000608: sub _init(_init_result) -0000063e: _init_result :: out u32 = low:32[R0] - -00000553: -00000559: #6 := R31 - 0x10 -0000055f: mem := mem with [#6, el]:u64 <- R29 -00000565: mem := mem with [#6 + 8, el]:u64 <- R30 -00000569: R31 := #6 -0000056f: R29 := R31 -00000574: R30 := 0x590 -00000576: call @call_weak_fn with return %00000578 - -00000578: -0000057d: R29 := mem[R31, el]:u64 -00000582: R30 := mem[R31 + 8, el]:u64 -00000586: R31 := R31 + 0x10 -0000058b: call R30 with noreturn - -00000609: sub _start(_start_result) -0000063f: _start_result :: out u32 = low:32[R0] - -000001a8: -000001ad: R29 := 0 -000001b2: R30 := 0 -000001b8: R5 := R0 -000001bf: R1 := mem[R31, el]:u64 -000001c5: R2 := R31 + 8 -000001cb: R6 := R31 -000001d0: R0 := 0x10000 -000001d7: R0 := mem[R0 + 0xFD8, el]:u64 -000001dc: R3 := 0 -000001e1: R4 := 0 -000001e6: R30 := 0x630 -000001e9: call @__libc_start_main with return %000001eb - -000001eb: -000001ee: R30 := 0x634 -000001f1: call @abort with return %0000062d - -0000062d: -0000062e: call @call_weak_fn with noreturn - -0000060c: sub abort() - - -000001ef: -000004c9: R16 := 0x11000 -000004d0: R17 := mem[R16 + 0x18, el]:u64 -000004d6: R16 := R16 + 0x18 -000004db: call R17 with noreturn - -0000060d: sub call_weak_fn(call_weak_fn_result) -00000640: call_weak_fn_result :: out u32 = low:32[R0] - -000001f3: -000001f6: R0 := 0x10000 -000001fd: R0 := mem[R0 + 0xFD0, el]:u64 -00000203: when R0 = 0 goto %00000201 -0000062f: goto %000003e5 - -00000201: -00000209: call R30 with noreturn - -000003e5: -000003e8: goto @__gmon_start__ - -000003e6: -000004b3: R16 := 0x11000 -000004ba: R17 := mem[R16 + 0x10, el]:u64 -000004c0: R16 := R16 + 0x10 -000004c5: call R17 with noreturn - -0000060f: sub deregister_tm_clones(deregister_tm_clones_result) -00000641: deregister_tm_clones_result :: out u32 = low:32[R0] - -0000020f: -00000212: R0 := 0x11000 -00000218: R0 := R0 + 0x30 -0000021d: R1 := 0x11000 -00000223: R1 := R1 + 0x30 -00000229: #1 := ~R0 -0000022e: #2 := R1 + ~R0 -00000234: VF := extend:65[#2 + 1] <> extend:65[R1] + extend:65[#1] + 1 -0000023a: CF := pad:65[#2 + 1] <> pad:65[R1] + pad:65[#1] + 1 -0000023e: ZF := #2 + 1 = 0 -00000242: NF := 63:63[#2 + 1] -00000248: when ZF goto %00000246 -00000630: goto %000003c7 - -000003c7: -000003ca: R1 := 0x10000 -000003d1: R1 := mem[R1 + 0xFC0, el]:u64 -000003d6: when R1 = 0 goto %00000246 -00000631: goto %000003da - -00000246: -0000024e: call R30 with noreturn - -000003da: -000003de: R16 := R1 -000003e3: call R16 with noreturn - -00000612: sub frame_dummy(frame_dummy_result) -00000642: frame_dummy_result :: out u32 = low:32[R0] - -000002e6: -000002e8: call @register_tm_clones with noreturn - -00000613: sub main(main_argc, main_argv, main_result) -00000643: main_argc :: in u32 = low:32[R0] -00000644: main_argv :: in out u64 = R1 -00000645: main_result :: out u32 = low:32[R0] - -000002ea: -000002ee: R31 := R31 - 0x10 -000002f5: mem := mem with [R31 + 0xC, el]:u32 <- 0 -000002fd: mem := mem with [R31 + 8, el]:u32 <- 31:0[R0] -00000304: R8 := pad:64[mem[R31 + 8, el]:u32] -0000030c: mem := mem with [R31 + 4, el]:u32 <- 31:0[R8] -00000313: R8 := pad:64[mem[R31 + 4, el]:u32] -00000319: #4 := 31:0[R8] - 1 -0000031e: VF := extend:33[#4 + 1] <> extend:33[31:0[R8]] + 0 -00000323: CF := pad:33[#4 + 1] <> pad:33[31:0[R8]] - 0x100000000 -00000327: ZF := #4 + 1 = 0 -0000032b: NF := 31:31[#4 + 1] -0000032f: R8 := pad:64[#4 + 1] -0000033b: when ZF goto %00000334 -0000033c: goto %00000337 - -00000337: -00000338: R8 := 1 -0000033e: goto %0000033a - -00000334: -00000335: R8 := 0 -0000033d: goto %0000033a - -0000033a: -00000344: when 0:0[R8] goto %00000342 -00000632: goto %00000359 - -00000359: -0000035c: goto %0000035a - -0000035a: -00000360: R8 := 1 -00000368: mem := mem with [R31 + 4, el]:u32 <- 31:0[R8] -0000036c: goto %00000342 - -00000342: -0000034c: R0 := pad:64[mem[R31 + 0xC, el]:u32] -00000352: R31 := R31 + 0x10 -00000357: call R30 with noreturn - -00000615: sub register_tm_clones(register_tm_clones_result) -00000646: register_tm_clones_result :: out u32 = low:32[R0] - -00000250: -00000253: R0 := 0x11000 -00000259: R0 := R0 + 0x30 -0000025e: R1 := 0x11000 -00000264: R1 := R1 + 0x30 -0000026b: R1 := R1 + ~R0 + 1 -00000271: R2 := 0.63:63[R1] -00000278: R1 := R2 + (R1 ~>> 3) -0000027e: R1 := extend:64[63:1[R1]] -00000284: when R1 = 0 goto %00000282 -00000633: goto %000003a9 - -000003a9: -000003ac: R2 := 0x10000 -000003b3: R2 := mem[R2 + 0xFE0, el]:u64 -000003b8: when R2 = 0 goto %00000282 -00000634: goto %000003bc - -00000282: -0000028a: call R30 with noreturn - -000003bc: -000003c0: R16 := R2 -000003c5: call R16 with noreturn diff --git a/src/test/incorrect/iflocal/clang/iflocal.expected b/src/test/incorrect/iflocal/clang/iflocal.expected index af2843f3b..38046f5a4 100644 --- a/src/test/incorrect/iflocal/clang/iflocal.expected +++ b/src/test/incorrect/iflocal/clang/iflocal.expected @@ -2,35 +2,21 @@ var {:extern} CF: bv1; var {:extern} Gamma_CF: bool; var {:extern} Gamma_NF: bool; var {:extern} Gamma_R0: bool; -var {:extern} Gamma_R31: bool; -var {:extern} Gamma_R8: bool; var {:extern} Gamma_VF: bool; var {:extern} Gamma_ZF: bool; var {:extern} Gamma_mem: [bv64]bool; -var {:extern} Gamma_stack: [bv64]bool; var {:extern} NF: bv1; var {:extern} R0: bv64; -var {:extern} R31: bv64; -var {:extern} R8: bv64; var {:extern} VF: bv1; var {:extern} ZF: bv1; var {:extern} mem: [bv64]bv8; -var {:extern} stack: [bv64]bv8; function {:extern} {:bvbuiltin "bvadd"} bvadd32(bv32, bv32) returns (bv32); -function {:extern} {:bvbuiltin "bvadd"} bvadd33(bv33, bv33) returns (bv33); function {:extern} {:bvbuiltin "bvadd"} bvadd64(bv64, bv64) returns (bv64); +function {:extern} {:bvbuiltin "bvand"} bvand1(bv1, bv1) returns (bv1); function {:extern} {:bvbuiltin "bvcomp"} bvcomp1(bv1, bv1) returns (bv1); function {:extern} {:bvbuiltin "bvcomp"} bvcomp32(bv32, bv32) returns (bv1); -function {:extern} {:bvbuiltin "bvcomp"} bvcomp33(bv33, bv33) returns (bv1); +function {:extern} {:bvbuiltin "bvcomp"} bvcomp64(bv64, bv64) returns (bv1); function {:extern} {:bvbuiltin "bvnot"} bvnot1(bv1) returns (bv1); -function {:extern} gamma_load32(gammaMap: [bv64]bool, index: bv64) returns (bool) { - (gammaMap[bvadd64(index, 3bv64)] && (gammaMap[bvadd64(index, 2bv64)] && (gammaMap[bvadd64(index, 1bv64)] && gammaMap[index]))) -} - -function {:extern} gamma_store32(gammaMap: [bv64]bool, index: bv64, value: bool) returns ([bv64]bool) { - gammaMap[index := value][bvadd64(index, 1bv64) := value][bvadd64(index, 2bv64) := value][bvadd64(index, 3bv64) := value] -} - function {:extern} memory_load32_le(memory: [bv64]bv8, index: bv64) returns (bv32) { (memory[bvadd64(index, 3bv64)] ++ (memory[bvadd64(index, 2bv64)] ++ (memory[bvadd64(index, 1bv64)] ++ memory[index]))) } @@ -39,22 +25,17 @@ function {:extern} memory_load64_le(memory: [bv64]bv8, index: bv64) returns (bv6 (memory[bvadd64(index, 7bv64)] ++ (memory[bvadd64(index, 6bv64)] ++ (memory[bvadd64(index, 5bv64)] ++ (memory[bvadd64(index, 4bv64)] ++ (memory[bvadd64(index, 3bv64)] ++ (memory[bvadd64(index, 2bv64)] ++ (memory[bvadd64(index, 1bv64)] ++ memory[index]))))))) } -function {:extern} memory_store32_le(memory: [bv64]bv8, index: bv64, value: bv32) returns ([bv64]bv8) { - memory[index := value[8:0]][bvadd64(index, 1bv64) := value[16:8]][bvadd64(index, 2bv64) := value[24:16]][bvadd64(index, 3bv64) := value[32:24]] -} - -function {:extern} {:bvbuiltin "sign_extend 1"} sign_extend1_32(bv32) returns (bv33); -function {:extern} {:bvbuiltin "zero_extend 1"} zero_extend1_32(bv32) returns (bv33); +function {:extern} {:bvbuiltin "sign_extend 32"} sign_extend32_32(bv32) returns (bv64); function {:extern} {:bvbuiltin "zero_extend 32"} zero_extend32_32(bv32) returns (bv64); procedure {:extern} rely(); modifies Gamma_mem, mem; ensures (Gamma_mem == old(Gamma_mem)); ensures (mem == old(mem)); - free ensures (memory_load32_le(mem, 1896bv64) == 131073bv32); - free ensures (memory_load64_le(mem, 69064bv64) == 1808bv64); - free ensures (memory_load64_le(mem, 69072bv64) == 1728bv64); - free ensures (memory_load64_le(mem, 69592bv64) == 1812bv64); - free ensures (memory_load64_le(mem, 69672bv64) == 69672bv64); + free ensures (memory_load32_le(mem, 2228bv64) == 131073bv32); + free ensures (memory_load64_le(mem, 130440bv64) == 2192bv64); + free ensures (memory_load64_le(mem, 130448bv64) == 2112bv64); + free ensures (memory_load64_le(mem, 131056bv64) == 2196bv64); + free ensures (memory_load64_le(mem, 131080bv64) == 131080bv64); procedure {:extern} rely_transitive(); modifies Gamma_mem, mem; @@ -72,99 +53,55 @@ procedure {:extern} rely_reflexive(); procedure {:extern} guarantee_reflexive(); modifies Gamma_mem, mem; -procedure main_1812(); - modifies CF, Gamma_CF, Gamma_NF, Gamma_R0, Gamma_R31, Gamma_R8, Gamma_VF, Gamma_ZF, Gamma_stack, NF, R0, R31, R8, VF, ZF, stack; - free requires (memory_load64_le(mem, 69664bv64) == 0bv64); - free requires (memory_load64_le(mem, 69672bv64) == 69672bv64); - free requires (memory_load32_le(mem, 1896bv64) == 131073bv32); - free requires (memory_load64_le(mem, 69064bv64) == 1808bv64); - free requires (memory_load64_le(mem, 69072bv64) == 1728bv64); - free requires (memory_load64_le(mem, 69592bv64) == 1812bv64); - free requires (memory_load64_le(mem, 69672bv64) == 69672bv64); - free ensures (Gamma_R31 == old(Gamma_R31)); - free ensures (R31 == old(R31)); - free ensures (memory_load32_le(mem, 1896bv64) == 131073bv32); - free ensures (memory_load64_le(mem, 69064bv64) == 1808bv64); - free ensures (memory_load64_le(mem, 69072bv64) == 1728bv64); - free ensures (memory_load64_le(mem, 69592bv64) == 1812bv64); - free ensures (memory_load64_le(mem, 69672bv64) == 69672bv64); +procedure main(); + modifies CF, Gamma_CF, Gamma_NF, Gamma_R0, Gamma_VF, Gamma_ZF, NF, R0, VF, ZF; + free requires (memory_load64_le(mem, 131072bv64) == 0bv64); + free requires (memory_load64_le(mem, 131080bv64) == 131080bv64); + free requires (memory_load32_le(mem, 2228bv64) == 131073bv32); + free requires (memory_load64_le(mem, 130440bv64) == 2192bv64); + free requires (memory_load64_le(mem, 130448bv64) == 2112bv64); + free requires (memory_load64_le(mem, 131056bv64) == 2196bv64); + free requires (memory_load64_le(mem, 131080bv64) == 131080bv64); + free ensures (memory_load32_le(mem, 2228bv64) == 131073bv32); + free ensures (memory_load64_le(mem, 130440bv64) == 2192bv64); + free ensures (memory_load64_le(mem, 130448bv64) == 2112bv64); + free ensures (memory_load64_le(mem, 131056bv64) == 2196bv64); + free ensures (memory_load64_le(mem, 131080bv64) == 131080bv64); -implementation main_1812() +implementation main() { var #4: bv32; var Gamma_#4: bool; - var Gamma_load18: bool; - var Gamma_load19: bool; - var Gamma_load20: bool; - var load18: bv32; - var load19: bv32; - var load20: bv32; lmain: assume {:captureState "lmain"} true; - R31, Gamma_R31 := bvadd64(R31, 18446744073709551600bv64), Gamma_R31; - stack, Gamma_stack := memory_store32_le(stack, bvadd64(R31, 12bv64), 0bv32), gamma_store32(Gamma_stack, bvadd64(R31, 12bv64), true); - assume {:captureState "%000002f5"} true; - stack, Gamma_stack := memory_store32_le(stack, bvadd64(R31, 8bv64), R0[32:0]), gamma_store32(Gamma_stack, bvadd64(R31, 8bv64), Gamma_R0); - assume {:captureState "%000002fd"} true; - load18, Gamma_load18 := memory_load32_le(stack, bvadd64(R31, 8bv64)), gamma_load32(Gamma_stack, bvadd64(R31, 8bv64)); - R8, Gamma_R8 := zero_extend32_32(load18), Gamma_load18; - stack, Gamma_stack := memory_store32_le(stack, bvadd64(R31, 4bv64), R8[32:0]), gamma_store32(Gamma_stack, bvadd64(R31, 4bv64), Gamma_R8); - assume {:captureState "%0000030c"} true; - load19, Gamma_load19 := memory_load32_le(stack, bvadd64(R31, 4bv64)), gamma_load32(Gamma_stack, bvadd64(R31, 4bv64)); - R8, Gamma_R8 := zero_extend32_32(load19), Gamma_load19; - #4, Gamma_#4 := bvadd32(R8[32:0], 4294967295bv32), Gamma_R8; - VF, Gamma_VF := bvnot1(bvcomp33(sign_extend1_32(bvadd32(#4, 1bv32)), bvadd33(sign_extend1_32(R8[32:0]), 0bv33))), (Gamma_R8 && Gamma_#4); - CF, Gamma_CF := bvnot1(bvcomp33(zero_extend1_32(bvadd32(#4, 1bv32)), bvadd33(zero_extend1_32(R8[32:0]), 4294967296bv33))), (Gamma_R8 && Gamma_#4); - ZF, Gamma_ZF := bvcomp32(bvadd32(#4, 1bv32), 0bv32), Gamma_#4; - NF, Gamma_NF := bvadd32(#4, 1bv32)[32:31], Gamma_#4; - R8, Gamma_R8 := zero_extend32_32(bvadd32(#4, 1bv32)), Gamma_#4; - assert Gamma_ZF; - goto lmain_goto_l00000334, lmain_goto_l00000337; - lmain_goto_l00000337: - assume {:captureState "lmain_goto_l00000337"} true; - assume (bvcomp1(ZF, 1bv1) == 0bv1); - R8, Gamma_R8 := 1bv64, true; - goto l00000337; - l00000337: - assume {:captureState "l00000337"} true; - goto l0000033a; - lmain_goto_l00000334: - assume {:captureState "lmain_goto_l00000334"} true; - assume (bvcomp1(ZF, 1bv1) != 0bv1); - R8, Gamma_R8 := 0bv64, true; - goto l00000334; - l00000334: - assume {:captureState "l00000334"} true; - goto l0000033a; - l0000033a: - assume {:captureState "l0000033a"} true; - assert Gamma_R8; - goto l0000033a_goto_l00000342, l0000033a_goto_l00000359; - l0000033a_goto_l00000359: - assume {:captureState "l0000033a_goto_l00000359"} true; - assume (bvcomp1(R8[1:0], 1bv1) == 0bv1); - goto l00000359; - l00000359: - assume {:captureState "l00000359"} true; - goto l0000035a; - l0000035a: - assume {:captureState "l0000035a"} true; - R8, Gamma_R8 := 1bv64, true; - stack, Gamma_stack := memory_store32_le(stack, bvadd64(R31, 4bv64), R8[32:0]), gamma_store32(Gamma_stack, bvadd64(R31, 4bv64), Gamma_R8); - assume {:captureState "%00000368"} true; - goto l00000342; - l0000033a_goto_l00000342: - assume {:captureState "l0000033a_goto_l00000342"} true; - assume (bvcomp1(R8[1:0], 1bv1) != 0bv1); - goto l00000342; - l00000342: - assume {:captureState "l00000342"} true; - load20, Gamma_load20 := memory_load32_le(stack, bvadd64(R31, 12bv64)), gamma_load32(Gamma_stack, bvadd64(R31, 12bv64)); - R0, Gamma_R0 := zero_extend32_32(load20), Gamma_load20; - R31, Gamma_R31 := bvadd64(R31, 16bv64), Gamma_R31; - goto main_1812_basil_return; - main_1812_basil_return: - assume {:captureState "main_1812_basil_return"} true; + #4, Gamma_#4 := bvadd32(R0[32:0], 4294967295bv32), Gamma_R0; + VF, Gamma_VF := bvnot1(bvcomp64(sign_extend32_32(#4), bvadd64(sign_extend32_32(R0[32:0]), 18446744073709551615bv64))), (Gamma_R0 && Gamma_#4); + CF, Gamma_CF := bvnot1(bvcomp64(zero_extend32_32(#4), bvadd64(zero_extend32_32(R0[32:0]), 4294967295bv64))), (Gamma_R0 && Gamma_#4); + ZF, Gamma_ZF := bvcomp32(#4, 0bv32), Gamma_#4; + NF, Gamma_NF := #4[32:31], Gamma_#4; + assert (Gamma_CF && Gamma_ZF); + goto lmain_goto_l00000294, lmain_goto_l0000029c; + l0000029c: + assume {:captureState "l0000029c"} true; + R0, Gamma_R0 := 1bv64, true; + goto l000002a8; + l00000294: + assume {:captureState "l00000294"} true; + R0, Gamma_R0 := zero_extend32_32(R0[32:0]), Gamma_R0; + goto l000002a8; + l000002a8: + assume {:captureState "l000002a8"} true; + goto main_basil_return; + lmain_goto_l00000294: + assume {:captureState "lmain_goto_l00000294"} true; + assume (bvand1(bvcomp1(CF, 1bv1), bvcomp1(ZF, 0bv1)) != 0bv1); + goto l00000294; + lmain_goto_l0000029c: + assume {:captureState "lmain_goto_l0000029c"} true; + assume (bvand1(bvcomp1(CF, 1bv1), bvcomp1(ZF, 0bv1)) == 0bv1); + goto l0000029c; + main_basil_return: + assume {:captureState "main_basil_return"} true; return; } diff --git a/src/test/incorrect/iflocal/clang/iflocal.gts b/src/test/incorrect/iflocal/clang/iflocal.gts deleted file mode 100644 index ad728ca05..000000000 Binary files a/src/test/incorrect/iflocal/clang/iflocal.gts and /dev/null differ diff --git a/src/test/incorrect/iflocal/clang/iflocal.md5sum b/src/test/incorrect/iflocal/clang/iflocal.md5sum new file mode 100644 index 000000000..b47b9981e --- /dev/null +++ b/src/test/incorrect/iflocal/clang/iflocal.md5sum @@ -0,0 +1,5 @@ +e7ea8ae290b4385c99f2a5ebe1cb42ef incorrect/iflocal/clang/a.out +e2e1565ebb64bd5133c1e3928eb0ea41 incorrect/iflocal/clang/iflocal.adt +dd50bf2dea71804338962e5badb1aa68 incorrect/iflocal/clang/iflocal.bir +7df027a8b5dd4a4c9cdaaa41fc3bb90e incorrect/iflocal/clang/iflocal.relf +fd023738b9d14f7476ef3f61038aa315 incorrect/iflocal/clang/iflocal.gts diff --git a/src/test/incorrect/iflocal/clang/iflocal.relf b/src/test/incorrect/iflocal/clang/iflocal.relf deleted file mode 100644 index ca63f0193..000000000 --- a/src/test/incorrect/iflocal/clang/iflocal.relf +++ /dev/null @@ -1,121 +0,0 @@ - -Relocation section '.rela.dyn' at offset 0x460 contains 8 entries: - Offset Info Type Symbol's Value Symbol's Name + Addend -0000000000010dc8 0000000000000403 R_AARCH64_RELATIVE 710 -0000000000010dd0 0000000000000403 R_AARCH64_RELATIVE 6c0 -0000000000010fd8 0000000000000403 R_AARCH64_RELATIVE 714 -0000000000011028 0000000000000403 R_AARCH64_RELATIVE 11028 -0000000000010fc0 0000000400000401 R_AARCH64_GLOB_DAT 0000000000000000 _ITM_deregisterTMCloneTable + 0 -0000000000010fc8 0000000500000401 R_AARCH64_GLOB_DAT 0000000000000000 __cxa_finalize@GLIBC_2.17 + 0 -0000000000010fd0 0000000600000401 R_AARCH64_GLOB_DAT 0000000000000000 __gmon_start__ + 0 -0000000000010fe0 0000000800000401 R_AARCH64_GLOB_DAT 0000000000000000 _ITM_registerTMCloneTable + 0 - -Relocation section '.rela.plt' at offset 0x520 contains 4 entries: - Offset Info Type Symbol's Value Symbol's Name + Addend -0000000000011000 0000000300000402 R_AARCH64_JUMP_SLOT 0000000000000000 __libc_start_main@GLIBC_2.34 + 0 -0000000000011008 0000000500000402 R_AARCH64_JUMP_SLOT 0000000000000000 __cxa_finalize@GLIBC_2.17 + 0 -0000000000011010 0000000600000402 R_AARCH64_JUMP_SLOT 0000000000000000 __gmon_start__ + 0 -0000000000011018 0000000700000402 R_AARCH64_JUMP_SLOT 0000000000000000 abort@GLIBC_2.17 + 0 - -Symbol table '.dynsym' contains 9 entries: - Num: Value Size Type Bind Vis Ndx Name - 0: 0000000000000000 0 NOTYPE LOCAL DEFAULT UND - 1: 0000000000000580 0 SECTION LOCAL DEFAULT 11 .init - 2: 0000000000011020 0 SECTION LOCAL DEFAULT 23 .data - 3: 0000000000000000 0 FUNC GLOBAL DEFAULT UND __libc_start_main@GLIBC_2.34 (2) - 4: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_deregisterTMCloneTable - 5: 0000000000000000 0 FUNC WEAK DEFAULT UND __cxa_finalize@GLIBC_2.17 (3) - 6: 0000000000000000 0 NOTYPE WEAK DEFAULT UND __gmon_start__ - 7: 0000000000000000 0 FUNC GLOBAL DEFAULT UND abort@GLIBC_2.17 (3) - 8: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_registerTMCloneTable - -Symbol table '.symtab' contains 88 entries: - Num: Value Size Type Bind Vis Ndx Name - 0: 0000000000000000 0 NOTYPE LOCAL DEFAULT UND - 1: 0000000000000238 0 SECTION LOCAL DEFAULT 1 .interp - 2: 0000000000000254 0 SECTION LOCAL DEFAULT 2 .note.gnu.build-id - 3: 0000000000000278 0 SECTION LOCAL DEFAULT 3 .note.ABI-tag - 4: 0000000000000298 0 SECTION LOCAL DEFAULT 4 .gnu.hash - 5: 00000000000002b8 0 SECTION LOCAL DEFAULT 5 .dynsym - 6: 0000000000000390 0 SECTION LOCAL DEFAULT 6 .dynstr - 7: 000000000000041e 0 SECTION LOCAL DEFAULT 7 .gnu.version - 8: 0000000000000430 0 SECTION LOCAL DEFAULT 8 .gnu.version_r - 9: 0000000000000460 0 SECTION LOCAL DEFAULT 9 .rela.dyn - 10: 0000000000000520 0 SECTION LOCAL DEFAULT 10 .rela.plt - 11: 0000000000000580 0 SECTION LOCAL DEFAULT 11 .init - 12: 00000000000005a0 0 SECTION LOCAL DEFAULT 12 .plt - 13: 0000000000000600 0 SECTION LOCAL DEFAULT 13 .text - 14: 0000000000000754 0 SECTION LOCAL DEFAULT 14 .fini - 15: 0000000000000768 0 SECTION LOCAL DEFAULT 15 .rodata - 16: 000000000000076c 0 SECTION LOCAL DEFAULT 16 .eh_frame_hdr - 17: 00000000000007a8 0 SECTION LOCAL DEFAULT 17 .eh_frame - 18: 0000000000010dc8 0 SECTION LOCAL DEFAULT 18 .init_array - 19: 0000000000010dd0 0 SECTION LOCAL DEFAULT 19 .fini_array - 20: 0000000000010dd8 0 SECTION LOCAL DEFAULT 20 .dynamic - 21: 0000000000010fb8 0 SECTION LOCAL DEFAULT 21 .got - 22: 0000000000010fe8 0 SECTION LOCAL DEFAULT 22 .got.plt - 23: 0000000000011020 0 SECTION LOCAL DEFAULT 23 .data - 24: 0000000000011030 0 SECTION LOCAL DEFAULT 24 .bss - 25: 0000000000000000 0 SECTION LOCAL DEFAULT 25 .comment - 26: 0000000000000000 0 FILE LOCAL DEFAULT ABS Scrt1.o - 27: 0000000000000278 0 NOTYPE LOCAL DEFAULT 3 $d - 28: 0000000000000278 32 OBJECT LOCAL DEFAULT 3 __abi_tag - 29: 0000000000000600 0 NOTYPE LOCAL DEFAULT 13 $x - 30: 00000000000007bc 0 NOTYPE LOCAL DEFAULT 17 $d - 31: 0000000000000768 0 NOTYPE LOCAL DEFAULT 15 $d - 32: 0000000000000000 0 FILE LOCAL DEFAULT ABS crti.o - 33: 0000000000000634 0 NOTYPE LOCAL DEFAULT 13 $x - 34: 0000000000000634 20 FUNC LOCAL DEFAULT 13 call_weak_fn - 35: 0000000000000580 0 NOTYPE LOCAL DEFAULT 11 $x - 36: 0000000000000754 0 NOTYPE LOCAL DEFAULT 14 $x - 37: 0000000000000000 0 FILE LOCAL DEFAULT ABS crtn.o - 38: 0000000000000590 0 NOTYPE LOCAL DEFAULT 11 $x - 39: 0000000000000760 0 NOTYPE LOCAL DEFAULT 14 $x - 40: 0000000000000000 0 FILE LOCAL DEFAULT ABS crtstuff.c - 41: 0000000000000650 0 NOTYPE LOCAL DEFAULT 13 $x - 42: 0000000000000650 0 FUNC LOCAL DEFAULT 13 deregister_tm_clones - 43: 0000000000000680 0 FUNC LOCAL DEFAULT 13 register_tm_clones - 44: 0000000000011028 0 NOTYPE LOCAL DEFAULT 23 $d - 45: 00000000000006c0 0 FUNC LOCAL DEFAULT 13 __do_global_dtors_aux - 46: 0000000000011030 1 OBJECT LOCAL DEFAULT 24 completed.0 - 47: 0000000000010dd0 0 NOTYPE LOCAL DEFAULT 19 $d - 48: 0000000000010dd0 0 OBJECT LOCAL DEFAULT 19 __do_global_dtors_aux_fini_array_entry - 49: 0000000000000710 0 FUNC LOCAL DEFAULT 13 frame_dummy - 50: 0000000000010dc8 0 NOTYPE LOCAL DEFAULT 18 $d - 51: 0000000000010dc8 0 OBJECT LOCAL DEFAULT 18 __frame_dummy_init_array_entry - 52: 00000000000007d0 0 NOTYPE LOCAL DEFAULT 17 $d - 53: 0000000000011030 0 NOTYPE LOCAL DEFAULT 24 $d - 54: 0000000000000000 0 FILE LOCAL DEFAULT ABS iflocal.c - 55: 0000000000000714 0 NOTYPE LOCAL DEFAULT 13 $x.0 - 56: 000000000000002a 0 NOTYPE LOCAL DEFAULT 25 $d.1 - 57: 0000000000000830 0 NOTYPE LOCAL DEFAULT 17 $d.2 - 58: 0000000000000000 0 FILE LOCAL DEFAULT ABS crtstuff.c - 59: 000000000000085c 0 NOTYPE LOCAL DEFAULT 17 $d - 60: 000000000000085c 0 OBJECT LOCAL DEFAULT 17 __FRAME_END__ - 61: 0000000000000000 0 FILE LOCAL DEFAULT ABS - 62: 0000000000010dd8 0 OBJECT LOCAL DEFAULT ABS _DYNAMIC - 63: 000000000000076c 0 NOTYPE LOCAL DEFAULT 16 __GNU_EH_FRAME_HDR - 64: 0000000000010fb8 0 OBJECT LOCAL DEFAULT ABS _GLOBAL_OFFSET_TABLE_ - 65: 00000000000005a0 0 NOTYPE LOCAL DEFAULT 12 $x - 66: 0000000000000000 0 FUNC GLOBAL DEFAULT UND __libc_start_main@GLIBC_2.34 - 67: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_deregisterTMCloneTable - 68: 0000000000011020 0 NOTYPE WEAK DEFAULT 23 data_start - 69: 0000000000011030 0 NOTYPE GLOBAL DEFAULT 24 __bss_start__ - 70: 0000000000000000 0 FUNC WEAK DEFAULT UND __cxa_finalize@GLIBC_2.17 - 71: 0000000000011038 0 NOTYPE GLOBAL DEFAULT 24 _bss_end__ - 72: 0000000000011030 0 NOTYPE GLOBAL DEFAULT 23 _edata - 73: 0000000000000754 0 FUNC GLOBAL HIDDEN 14 _fini - 74: 0000000000011038 0 NOTYPE GLOBAL DEFAULT 24 __bss_end__ - 75: 0000000000011020 0 NOTYPE GLOBAL DEFAULT 23 __data_start - 76: 0000000000000000 0 NOTYPE WEAK DEFAULT UND __gmon_start__ - 77: 0000000000011028 0 OBJECT GLOBAL HIDDEN 23 __dso_handle - 78: 0000000000000000 0 FUNC GLOBAL DEFAULT UND abort@GLIBC_2.17 - 79: 0000000000000768 4 OBJECT GLOBAL DEFAULT 15 _IO_stdin_used - 80: 0000000000011038 0 NOTYPE GLOBAL DEFAULT 24 _end - 81: 0000000000000600 52 FUNC GLOBAL DEFAULT 13 _start - 82: 0000000000011038 0 NOTYPE GLOBAL DEFAULT 24 __end__ - 83: 0000000000011030 0 NOTYPE GLOBAL DEFAULT 24 __bss_start - 84: 0000000000000714 64 FUNC GLOBAL DEFAULT 13 main - 85: 0000000000011030 0 OBJECT GLOBAL HIDDEN 23 __TMC_END__ - 86: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_registerTMCloneTable - 87: 0000000000000580 0 FUNC GLOBAL HIDDEN 11 _init diff --git a/src/test/incorrect/iflocal/clang/iflocal_gtirb.expected b/src/test/incorrect/iflocal/clang/iflocal_gtirb.expected index 857176fc1..e21bee74f 100644 --- a/src/test/incorrect/iflocal/clang/iflocal_gtirb.expected +++ b/src/test/incorrect/iflocal/clang/iflocal_gtirb.expected @@ -2,34 +2,19 @@ var {:extern} CF: bv1; var {:extern} Gamma_CF: bool; var {:extern} Gamma_NF: bool; var {:extern} Gamma_R0: bool; -var {:extern} Gamma_R31: bool; -var {:extern} Gamma_R8: bool; var {:extern} Gamma_VF: bool; var {:extern} Gamma_ZF: bool; var {:extern} Gamma_mem: [bv64]bool; -var {:extern} Gamma_stack: [bv64]bool; var {:extern} NF: bv1; var {:extern} R0: bv64; -var {:extern} R31: bv64; -var {:extern} R8: bv64; var {:extern} VF: bv1; var {:extern} ZF: bv1; var {:extern} mem: [bv64]bv8; -var {:extern} stack: [bv64]bv8; function {:extern} {:bvbuiltin "bvadd"} bvadd32(bv32, bv32) returns (bv32); -function {:extern} {:bvbuiltin "bvadd"} bvadd33(bv33, bv33) returns (bv33); function {:extern} {:bvbuiltin "bvadd"} bvadd64(bv64, bv64) returns (bv64); function {:extern} {:bvbuiltin "bvcomp"} bvcomp32(bv32, bv32) returns (bv1); -function {:extern} {:bvbuiltin "bvcomp"} bvcomp33(bv33, bv33) returns (bv1); +function {:extern} {:bvbuiltin "bvcomp"} bvcomp64(bv64, bv64) returns (bv1); function {:extern} {:bvbuiltin "bvnot"} bvnot1(bv1) returns (bv1); -function {:extern} gamma_load32(gammaMap: [bv64]bool, index: bv64) returns (bool) { - (gammaMap[bvadd64(index, 3bv64)] && (gammaMap[bvadd64(index, 2bv64)] && (gammaMap[bvadd64(index, 1bv64)] && gammaMap[index]))) -} - -function {:extern} gamma_store32(gammaMap: [bv64]bool, index: bv64, value: bool) returns ([bv64]bool) { - gammaMap[index := value][bvadd64(index, 1bv64) := value][bvadd64(index, 2bv64) := value][bvadd64(index, 3bv64) := value] -} - function {:extern} memory_load32_le(memory: [bv64]bv8, index: bv64) returns (bv32) { (memory[bvadd64(index, 3bv64)] ++ (memory[bvadd64(index, 2bv64)] ++ (memory[bvadd64(index, 1bv64)] ++ memory[index]))) } @@ -38,21 +23,17 @@ function {:extern} memory_load64_le(memory: [bv64]bv8, index: bv64) returns (bv6 (memory[bvadd64(index, 7bv64)] ++ (memory[bvadd64(index, 6bv64)] ++ (memory[bvadd64(index, 5bv64)] ++ (memory[bvadd64(index, 4bv64)] ++ (memory[bvadd64(index, 3bv64)] ++ (memory[bvadd64(index, 2bv64)] ++ (memory[bvadd64(index, 1bv64)] ++ memory[index]))))))) } -function {:extern} memory_store32_le(memory: [bv64]bv8, index: bv64, value: bv32) returns ([bv64]bv8) { - memory[index := value[8:0]][bvadd64(index, 1bv64) := value[16:8]][bvadd64(index, 2bv64) := value[24:16]][bvadd64(index, 3bv64) := value[32:24]] -} - -function {:extern} {:bvbuiltin "zero_extend 1"} zero_extend1_32(bv32) returns (bv33); +function {:extern} {:bvbuiltin "sign_extend 32"} sign_extend32_32(bv32) returns (bv64); function {:extern} {:bvbuiltin "zero_extend 32"} zero_extend32_32(bv32) returns (bv64); procedure {:extern} rely(); modifies Gamma_mem, mem; ensures (Gamma_mem == old(Gamma_mem)); ensures (mem == old(mem)); - free ensures (memory_load32_le(mem, 1896bv64) == 131073bv32); - free ensures (memory_load64_le(mem, 69064bv64) == 1808bv64); - free ensures (memory_load64_le(mem, 69072bv64) == 1728bv64); - free ensures (memory_load64_le(mem, 69592bv64) == 1812bv64); - free ensures (memory_load64_le(mem, 69672bv64) == 69672bv64); + free ensures (memory_load32_le(mem, 2228bv64) == 131073bv32); + free ensures (memory_load64_le(mem, 130440bv64) == 2192bv64); + free ensures (memory_load64_le(mem, 130448bv64) == 2112bv64); + free ensures (memory_load64_le(mem, 131056bv64) == 2196bv64); + free ensures (memory_load64_le(mem, 131080bv64) == 131080bv64); procedure {:extern} rely_transitive(); modifies Gamma_mem, mem; @@ -70,91 +51,46 @@ procedure {:extern} rely_reflexive(); procedure {:extern} guarantee_reflexive(); modifies Gamma_mem, mem; -procedure main_1812(); - modifies CF, Gamma_CF, Gamma_NF, Gamma_R0, Gamma_R31, Gamma_R8, Gamma_VF, Gamma_ZF, Gamma_stack, NF, R0, R31, R8, VF, ZF, stack; - free requires (memory_load64_le(mem, 69664bv64) == 0bv64); - free requires (memory_load64_le(mem, 69672bv64) == 69672bv64); - free requires (memory_load32_le(mem, 1896bv64) == 131073bv32); - free requires (memory_load64_le(mem, 69064bv64) == 1808bv64); - free requires (memory_load64_le(mem, 69072bv64) == 1728bv64); - free requires (memory_load64_le(mem, 69592bv64) == 1812bv64); - free requires (memory_load64_le(mem, 69672bv64) == 69672bv64); - free ensures (Gamma_R31 == old(Gamma_R31)); - free ensures (R31 == old(R31)); - free ensures (memory_load32_le(mem, 1896bv64) == 131073bv32); - free ensures (memory_load64_le(mem, 69064bv64) == 1808bv64); - free ensures (memory_load64_le(mem, 69072bv64) == 1728bv64); - free ensures (memory_load64_le(mem, 69592bv64) == 1812bv64); - free ensures (memory_load64_le(mem, 69672bv64) == 69672bv64); +procedure main(); + modifies CF, Gamma_CF, Gamma_NF, Gamma_R0, Gamma_VF, Gamma_ZF, NF, R0, VF, ZF; + free requires (memory_load64_le(mem, 131072bv64) == 0bv64); + free requires (memory_load64_le(mem, 131080bv64) == 131080bv64); + free requires (memory_load32_le(mem, 2228bv64) == 131073bv32); + free requires (memory_load64_le(mem, 130440bv64) == 2192bv64); + free requires (memory_load64_le(mem, 130448bv64) == 2112bv64); + free requires (memory_load64_le(mem, 131056bv64) == 2196bv64); + free requires (memory_load64_le(mem, 131080bv64) == 131080bv64); + free ensures (memory_load32_le(mem, 2228bv64) == 131073bv32); + free ensures (memory_load64_le(mem, 130440bv64) == 2192bv64); + free ensures (memory_load64_le(mem, 130448bv64) == 2112bv64); + free ensures (memory_load64_le(mem, 131056bv64) == 2196bv64); + free ensures (memory_load64_le(mem, 131080bv64) == 131080bv64); -implementation main_1812() +implementation main() { - var Cse0__5_1_6: bv32; - var Gamma_Cse0__5_1_6: bool; - var Gamma_load14: bool; - var Gamma_load15: bool; - var Gamma_load16: bool; - var load14: bv32; - var load15: bv32; - var load16: bv32; - main_1812__0__dITIp_QuTySaVuiLkGLLoQ: - assume {:captureState "main_1812__0__dITIp_QuTySaVuiLkGLLoQ"} true; - R31, Gamma_R31 := bvadd64(R31, 18446744073709551600bv64), Gamma_R31; - stack, Gamma_stack := memory_store32_le(stack, bvadd64(R31, 12bv64), 0bv32), gamma_store32(Gamma_stack, bvadd64(R31, 12bv64), true); - assume {:captureState "1816_0"} true; - stack, Gamma_stack := memory_store32_le(stack, bvadd64(R31, 8bv64), R0[32:0]), gamma_store32(Gamma_stack, bvadd64(R31, 8bv64), Gamma_R0); - assume {:captureState "1820_0"} true; - load15, Gamma_load15 := memory_load32_le(stack, bvadd64(R31, 8bv64)), gamma_load32(Gamma_stack, bvadd64(R31, 8bv64)); - R8, Gamma_R8 := zero_extend32_32(load15), Gamma_load15; - stack, Gamma_stack := memory_store32_le(stack, bvadd64(R31, 4bv64), R8[32:0]), gamma_store32(Gamma_stack, bvadd64(R31, 4bv64), Gamma_R8); - assume {:captureState "1828_0"} true; - load16, Gamma_load16 := memory_load32_le(stack, bvadd64(R31, 4bv64)), gamma_load32(Gamma_stack, bvadd64(R31, 4bv64)); - R8, Gamma_R8 := zero_extend32_32(load16), Gamma_load16; - Cse0__5_1_6, Gamma_Cse0__5_1_6 := bvadd32(R8[32:0], 0bv32), Gamma_R8; - VF, Gamma_VF := bvnot1(bvcomp32(Cse0__5_1_6, Cse0__5_1_6)), Gamma_Cse0__5_1_6; - CF, Gamma_CF := bvnot1(bvcomp33(zero_extend1_32(Cse0__5_1_6), bvadd33(zero_extend1_32(R8[32:0]), 4294967296bv33))), (Gamma_R8 && Gamma_Cse0__5_1_6); - ZF, Gamma_ZF := bvcomp32(Cse0__5_1_6, 0bv32), Gamma_Cse0__5_1_6; - NF, Gamma_NF := Cse0__5_1_6[32:31], Gamma_Cse0__5_1_6; - R8, Gamma_R8 := zero_extend32_32(Cse0__5_1_6), Gamma_Cse0__5_1_6; - assert Gamma_ZF; - goto main_1812__0__dITIp_QuTySaVuiLkGLLoQ$__0, main_1812__0__dITIp_QuTySaVuiLkGLLoQ$__1; - main_1812__0__dITIp_QuTySaVuiLkGLLoQ$__1: - assume {:captureState "main_1812__0__dITIp_QuTySaVuiLkGLLoQ$__1"} true; - assume (!(ZF == 1bv1)); - R8, Gamma_R8 := 1bv64, true; - assert Gamma_R8; - goto main_1812__0__dITIp_QuTySaVuiLkGLLoQ_goto_main_1812__3__VzkdJ~gQQUaAj8nayCsAQg, main_1812__0__dITIp_QuTySaVuiLkGLLoQ_goto_main_1812__1__9yZxYvkWSfeMd9LhgBu42A; - main_1812__0__dITIp_QuTySaVuiLkGLLoQ$__0: - assume {:captureState "main_1812__0__dITIp_QuTySaVuiLkGLLoQ$__0"} true; - assume (ZF == 1bv1); - R8, Gamma_R8 := 0bv64, true; - assert Gamma_R8; - goto main_1812__0__dITIp_QuTySaVuiLkGLLoQ_goto_main_1812__3__VzkdJ~gQQUaAj8nayCsAQg, main_1812__0__dITIp_QuTySaVuiLkGLLoQ_goto_main_1812__1__9yZxYvkWSfeMd9LhgBu42A; - main_1812__0__dITIp_QuTySaVuiLkGLLoQ_goto_main_1812__1__9yZxYvkWSfeMd9LhgBu42A: - assume {:captureState "main_1812__0__dITIp_QuTySaVuiLkGLLoQ_goto_main_1812__1__9yZxYvkWSfeMd9LhgBu42A"} true; - assume (!(R8[1:0] == 1bv1)); - goto main_1812__1__9yZxYvkWSfeMd9LhgBu42A; - main_1812__1__9yZxYvkWSfeMd9LhgBu42A: - assume {:captureState "main_1812__1__9yZxYvkWSfeMd9LhgBu42A"} true; - goto main_1812__2__imxUF1WxQcO7w5yQCfBNQw; - main_1812__2__imxUF1WxQcO7w5yQCfBNQw: - assume {:captureState "main_1812__2__imxUF1WxQcO7w5yQCfBNQw"} true; - R8, Gamma_R8 := 1bv64, true; - stack, Gamma_stack := memory_store32_le(stack, bvadd64(R31, 4bv64), R8[32:0]), gamma_store32(Gamma_stack, bvadd64(R31, 4bv64), Gamma_R8); - assume {:captureState "1856_0"} true; - goto main_1812__3__VzkdJ~gQQUaAj8nayCsAQg; - main_1812__0__dITIp_QuTySaVuiLkGLLoQ_goto_main_1812__3__VzkdJ~gQQUaAj8nayCsAQg: - assume {:captureState "main_1812__0__dITIp_QuTySaVuiLkGLLoQ_goto_main_1812__3__VzkdJ~gQQUaAj8nayCsAQg"} true; - assume (R8[1:0] == 1bv1); - goto main_1812__3__VzkdJ~gQQUaAj8nayCsAQg; - main_1812__3__VzkdJ~gQQUaAj8nayCsAQg: - assume {:captureState "main_1812__3__VzkdJ~gQQUaAj8nayCsAQg"} true; - load14, Gamma_load14 := memory_load32_le(stack, bvadd64(R31, 4bv64)), gamma_load32(Gamma_stack, bvadd64(R31, 4bv64)); - R0, Gamma_R0 := zero_extend32_32(load14), Gamma_load14; - R31, Gamma_R31 := bvadd64(R31, 16bv64), Gamma_R31; - goto main_1812_basil_return; - main_1812_basil_return: - assume {:captureState "main_1812_basil_return"} true; + var Cse0__5$0$0: bv32; + var Gamma_Cse0__5$0$0: bool; + $main$__0__$cdQ2GS2~QhaOa7OUvPWMRQ: + assume {:captureState "$main$__0__$cdQ2GS2~QhaOa7OUvPWMRQ"} true; + Cse0__5$0$0, Gamma_Cse0__5$0$0 := bvadd32(R0[32:0], 4294967295bv32), Gamma_R0; + VF, Gamma_VF := bvnot1(bvcomp64(sign_extend32_32(Cse0__5$0$0), bvadd64(sign_extend32_32(R0[32:0]), 18446744073709551615bv64))), (Gamma_R0 && Gamma_Cse0__5$0$0); + CF, Gamma_CF := bvnot1(bvcomp64(zero_extend32_32(Cse0__5$0$0), bvadd64(zero_extend32_32(R0[32:0]), 4294967295bv64))), (Gamma_R0 && Gamma_Cse0__5$0$0); + ZF, Gamma_ZF := bvcomp32(Cse0__5$0$0, 0bv32), Gamma_Cse0__5$0$0; + NF, Gamma_NF := Cse0__5$0$0[32:31], Gamma_Cse0__5$0$0; + assert (Gamma_CF && Gamma_ZF); + goto $main$__0__$cdQ2GS2~QhaOa7OUvPWMRQ$__0, $main$__0__$cdQ2GS2~QhaOa7OUvPWMRQ$__1; + $main$__0__$cdQ2GS2~QhaOa7OUvPWMRQ$__0: + assume {:captureState "$main$__0__$cdQ2GS2~QhaOa7OUvPWMRQ$__0"} true; + assume ((CF == 1bv1) && (ZF == 0bv1)); + R0, Gamma_R0 := zero_extend32_32(R0[32:0]), Gamma_R0; + goto main_basil_return; + $main$__0__$cdQ2GS2~QhaOa7OUvPWMRQ$__1: + assume {:captureState "$main$__0__$cdQ2GS2~QhaOa7OUvPWMRQ$__1"} true; + assume (!((CF == 1bv1) && (ZF == 0bv1))); + R0, Gamma_R0 := 1bv64, true; + goto main_basil_return; + main_basil_return: + assume {:captureState "main_basil_return"} true; return; } diff --git a/src/test/incorrect/iflocal/gcc/iflocal.adt b/src/test/incorrect/iflocal/gcc/iflocal.adt deleted file mode 100644 index 289a9d238..000000000 --- a/src/test/incorrect/iflocal/gcc/iflocal.adt +++ /dev/null @@ -1,528 +0,0 @@ -Project(Attrs([Attr("filename","\"gcc/iflocal.out\""), -Attr("image-specification","(declare abi (name str))\n(declare arch (name str))\n(declare base-address (addr int))\n(declare bias (off int))\n(declare bits (size int))\n(declare code-region (addr int) (size int) (off int))\n(declare code-start (addr int))\n(declare entry-point (addr int))\n(declare external-reference (addr int) (name str))\n(declare format (name str))\n(declare is-executable (flag bool))\n(declare is-little-endian (flag bool))\n(declare llvm:base-address (addr int))\n(declare llvm:code-entry (name str) (off int) (size int))\n(declare llvm:coff-import-library (name str))\n(declare llvm:coff-virtual-section-header (name str) (addr int) (size int))\n(declare llvm:elf-program-header (name str) (off int) (size int))\n(declare llvm:elf-program-header-flags (name str) (ld bool) (r bool) \n (w bool) (x bool))\n(declare llvm:elf-virtual-program-header (name str) (addr int) (size int))\n(declare llvm:entry-point (addr int))\n(declare llvm:macho-symbol (name str) (value int))\n(declare llvm:name-reference (at int) (name str))\n(declare llvm:relocation (at int) (addr int))\n(declare llvm:section-entry (name str) (addr int) (size int) (off int))\n(declare llvm:section-flags (name str) (r bool) (w bool) (x bool))\n(declare llvm:segment-command (name str) (off int) (size int))\n(declare llvm:segment-command-flags (name str) (r bool) (w bool) (x bool))\n(declare llvm:symbol-entry (name str) (addr int) (size int) (off int)\n (value int))\n(declare llvm:virtual-segment-command (name str) (addr int) (size int))\n(declare mapped (addr int) (size int) (off int))\n(declare named-region (addr int) (size int) (name str))\n(declare named-symbol (addr int) (name str))\n(declare require (name str))\n(declare section (addr int) (size int))\n(declare segment (addr int) (size int) (r bool) (w bool) (x bool))\n(declare subarch (name str))\n(declare symbol-chunk (addr int) (size int) (root int))\n(declare symbol-value (addr int) (value int))\n(declare system (name str))\n(declare vendor (name str))\n\n(abi unknown)\n(arch aarch64)\n(base-address 0)\n(bias 0)\n(bits 64)\n(code-region 1860 20 1860)\n(code-region 1536 324 1536)\n(code-region 1440 96 1440)\n(code-region 1408 24 1408)\n(code-start 1588)\n(code-start 1536)\n(code-start 1812)\n(entry-point 1536)\n(external-reference 69592 _ITM_deregisterTMCloneTable)\n(external-reference 69600 __cxa_finalize)\n(external-reference 69608 __gmon_start__)\n(external-reference 69624 _ITM_registerTMCloneTable)\n(external-reference 69552 __libc_start_main)\n(external-reference 69560 __cxa_finalize)\n(external-reference 69568 __gmon_start__)\n(external-reference 69576 abort)\n(format elf)\n(is-executable true)\n(is-little-endian true)\n(llvm:base-address 0)\n(llvm:code-entry abort 0 0)\n(llvm:code-entry __cxa_finalize 0 0)\n(llvm:code-entry __libc_start_main 0 0)\n(llvm:code-entry _init 1408 0)\n(llvm:code-entry main 1812 48)\n(llvm:code-entry _start 1536 52)\n(llvm:code-entry abort@GLIBC_2.17 0 0)\n(llvm:code-entry _fini 1860 0)\n(llvm:code-entry __cxa_finalize@GLIBC_2.17 0 0)\n(llvm:code-entry __libc_start_main@GLIBC_2.34 0 0)\n(llvm:code-entry frame_dummy 1808 0)\n(llvm:code-entry __do_global_dtors_aux 1728 0)\n(llvm:code-entry register_tm_clones 1664 0)\n(llvm:code-entry deregister_tm_clones 1616 0)\n(llvm:code-entry call_weak_fn 1588 20)\n(llvm:code-entry .fini 1860 20)\n(llvm:code-entry .text 1536 324)\n(llvm:code-entry .plt 1440 96)\n(llvm:code-entry .init 1408 24)\n(llvm:elf-program-header 08 3480 616)\n(llvm:elf-program-header 07 0 0)\n(llvm:elf-program-header 06 1884 60)\n(llvm:elf-program-header 05 596 68)\n(llvm:elf-program-header 04 3496 496)\n(llvm:elf-program-header 03 3480 632)\n(llvm:elf-program-header 02 0 2108)\n(llvm:elf-program-header 01 568 27)\n(llvm:elf-program-header 00 64 504)\n(llvm:elf-program-header-flags 08 false true false false)\n(llvm:elf-program-header-flags 07 false true true false)\n(llvm:elf-program-header-flags 06 false true false false)\n(llvm:elf-program-header-flags 05 false true false false)\n(llvm:elf-program-header-flags 04 false true true false)\n(llvm:elf-program-header-flags 03 true true true false)\n(llvm:elf-program-header-flags 02 true true false true)\n(llvm:elf-program-header-flags 01 false true false false)\n(llvm:elf-program-header-flags 00 false true false false)\n(llvm:elf-virtual-program-header 08 69016 616)\n(llvm:elf-virtual-program-header 07 0 0)\n(llvm:elf-virtual-program-header 06 1884 60)\n(llvm:elf-virtual-program-header 05 596 68)\n(llvm:elf-virtual-program-header 04 69032 496)\n(llvm:elf-virtual-program-header 03 69016 640)\n(llvm:elf-virtual-program-header 02 0 2108)\n(llvm:elf-virtual-program-header 01 568 27)\n(llvm:elf-virtual-program-header 00 64 504)\n(llvm:entry-point 1536)\n(llvm:name-reference 69576 abort)\n(llvm:name-reference 69568 __gmon_start__)\n(llvm:name-reference 69560 __cxa_finalize)\n(llvm:name-reference 69552 __libc_start_main)\n(llvm:name-reference 69624 _ITM_registerTMCloneTable)\n(llvm:name-reference 69608 __gmon_start__)\n(llvm:name-reference 69600 __cxa_finalize)\n(llvm:name-reference 69592 _ITM_deregisterTMCloneTable)\n(llvm:section-entry .shstrtab 0 250 6767)\n(llvm:section-entry .strtab 0 543 6224)\n(llvm:section-entry .symtab 0 2064 4160)\n(llvm:section-entry .comment 0 43 4112)\n(llvm:section-entry .bss 69648 8 4112)\n(llvm:section-entry .data 69632 16 4096)\n(llvm:section-entry .got 69528 104 3992)\n(llvm:section-entry .dynamic 69032 496 3496)\n(llvm:section-entry .fini_array 69024 8 3488)\n(llvm:section-entry .init_array 69016 8 3480)\n(llvm:section-entry .eh_frame 1944 164 1944)\n(llvm:section-entry .eh_frame_hdr 1884 60 1884)\n(llvm:section-entry .rodata 1880 4 1880)\n(llvm:section-entry .fini 1860 20 1860)\n(llvm:section-entry .text 1536 324 1536)\n(llvm:section-entry .plt 1440 96 1440)\n(llvm:section-entry .init 1408 24 1408)\n(llvm:section-entry .rela.plt 1312 96 1312)\n(llvm:section-entry .rela.dyn 1120 192 1120)\n(llvm:section-entry .gnu.version_r 1072 48 1072)\n(llvm:section-entry .gnu.version 1054 18 1054)\n(llvm:section-entry .dynstr 912 141 912)\n(llvm:section-entry .dynsym 696 216 696)\n(llvm:section-entry .gnu.hash 664 28 664)\n(llvm:section-entry .note.ABI-tag 632 32 632)\n(llvm:section-entry .note.gnu.build-id 596 36 596)\n(llvm:section-entry .interp 568 27 568)\n(llvm:section-flags .shstrtab true false false)\n(llvm:section-flags .strtab true false false)\n(llvm:section-flags .symtab true false false)\n(llvm:section-flags .comment true false false)\n(llvm:section-flags .bss true true false)\n(llvm:section-flags .data true true false)\n(llvm:section-flags .got true true false)\n(llvm:section-flags .dynamic true true false)\n(llvm:section-flags .fini_array true true false)\n(llvm:section-flags .init_array true true false)\n(llvm:section-flags .eh_frame true false false)\n(llvm:section-flags .eh_frame_hdr true false false)\n(llvm:section-flags .rodata true false false)\n(llvm:section-flags .fini true false true)\n(llvm:section-flags .text true false true)\n(llvm:section-flags .plt true false true)\n(llvm:section-flags .init true false true)\n(llvm:section-flags .rela.plt true false false)\n(llvm:section-flags .rela.dyn true false false)\n(llvm:section-flags .gnu.version_r true false false)\n(llvm:section-flags .gnu.version true false false)\n(llvm:section-flags .dynstr true false false)\n(llvm:section-flags .dynsym true false false)\n(llvm:section-flags .gnu.hash true false false)\n(llvm:section-flags .note.ABI-tag true false false)\n(llvm:section-flags .note.gnu.build-id true false false)\n(llvm:section-flags .interp true false false)\n(llvm:symbol-entry abort 0 0 0 0)\n(llvm:symbol-entry __cxa_finalize 0 0 0 0)\n(llvm:symbol-entry __libc_start_main 0 0 0 0)\n(llvm:symbol-entry _init 1408 0 1408 1408)\n(llvm:symbol-entry main 1812 48 1812 1812)\n(llvm:symbol-entry _start 1536 52 1536 1536)\n(llvm:symbol-entry abort@GLIBC_2.17 0 0 0 0)\n(llvm:symbol-entry _fini 1860 0 1860 1860)\n(llvm:symbol-entry __cxa_finalize@GLIBC_2.17 0 0 0 0)\n(llvm:symbol-entry __libc_start_main@GLIBC_2.34 0 0 0 0)\n(llvm:symbol-entry frame_dummy 1808 0 1808 1808)\n(llvm:symbol-entry __do_global_dtors_aux 1728 0 1728 1728)\n(llvm:symbol-entry register_tm_clones 1664 0 1664 1664)\n(llvm:symbol-entry deregister_tm_clones 1616 0 1616 1616)\n(llvm:symbol-entry call_weak_fn 1588 20 1588 1588)\n(mapped 0 2108 0)\n(mapped 69016 632 3480)\n(named-region 0 2108 02)\n(named-region 69016 640 03)\n(named-region 568 27 .interp)\n(named-region 596 36 .note.gnu.build-id)\n(named-region 632 32 .note.ABI-tag)\n(named-region 664 28 .gnu.hash)\n(named-region 696 216 .dynsym)\n(named-region 912 141 .dynstr)\n(named-region 1054 18 .gnu.version)\n(named-region 1072 48 .gnu.version_r)\n(named-region 1120 192 .rela.dyn)\n(named-region 1312 96 .rela.plt)\n(named-region 1408 24 .init)\n(named-region 1440 96 .plt)\n(named-region 1536 324 .text)\n(named-region 1860 20 .fini)\n(named-region 1880 4 .rodata)\n(named-region 1884 60 .eh_frame_hdr)\n(named-region 1944 164 .eh_frame)\n(named-region 69016 8 .init_array)\n(named-region 69024 8 .fini_array)\n(named-region 69032 496 .dynamic)\n(named-region 69528 104 .got)\n(named-region 69632 16 .data)\n(named-region 69648 8 .bss)\n(named-region 0 43 .comment)\n(named-region 0 2064 .symtab)\n(named-region 0 543 .strtab)\n(named-region 0 250 .shstrtab)\n(named-symbol 1588 call_weak_fn)\n(named-symbol 1616 deregister_tm_clones)\n(named-symbol 1664 register_tm_clones)\n(named-symbol 1728 __do_global_dtors_aux)\n(named-symbol 1808 frame_dummy)\n(named-symbol 0 __libc_start_main@GLIBC_2.34)\n(named-symbol 0 __cxa_finalize@GLIBC_2.17)\n(named-symbol 1860 _fini)\n(named-symbol 0 abort@GLIBC_2.17)\n(named-symbol 1536 _start)\n(named-symbol 1812 main)\n(named-symbol 1408 _init)\n(named-symbol 0 __libc_start_main)\n(named-symbol 0 __cxa_finalize)\n(named-symbol 0 abort)\n(require libc.so.6)\n(section 568 27)\n(section 596 36)\n(section 632 32)\n(section 664 28)\n(section 696 216)\n(section 912 141)\n(section 1054 18)\n(section 1072 48)\n(section 1120 192)\n(section 1312 96)\n(section 1408 24)\n(section 1440 96)\n(section 1536 324)\n(section 1860 20)\n(section 1880 4)\n(section 1884 60)\n(section 1944 164)\n(section 69016 8)\n(section 69024 8)\n(section 69032 496)\n(section 69528 104)\n(section 69632 16)\n(section 69648 8)\n(section 0 43)\n(section 0 2064)\n(section 0 543)\n(section 0 250)\n(segment 0 2108 true false true)\n(segment 69016 640 true true false)\n(subarch v8)\n(symbol-chunk 1588 20 1588)\n(symbol-chunk 1536 52 1536)\n(symbol-chunk 1812 48 1812)\n(symbol-value 1588 1588)\n(symbol-value 1616 1616)\n(symbol-value 1664 1664)\n(symbol-value 1728 1728)\n(symbol-value 1808 1808)\n(symbol-value 1860 1860)\n(symbol-value 1536 1536)\n(symbol-value 1812 1812)\n(symbol-value 1408 1408)\n(symbol-value 0 0)\n(system \"\")\n(vendor \"\")\n"), -Attr("abi-name","\"aarch64-linux-gnu-elf\"")]), -Sections([Section(".shstrtab", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x00\x06\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x70\x1b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x38\x00\x09\x00\x40\x00\x1c\x00\x1b\x00\x06\x00\x00\x00\x04\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x04\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x3c\x08\x00\x00\x00\x00\x00\x00\x3c\x08\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x01\x00\x00\x00\x06\x00\x00\x00\x98\x0d\x00\x00\x00\x00\x00\x00\x98\x0d"), -Section(".strtab", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x00\x06\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x70\x1b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x38\x00\x09\x00\x40\x00\x1c\x00\x1b\x00\x06\x00\x00\x00\x04\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x04\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x3c\x08\x00\x00\x00\x00\x00\x00\x3c\x08\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x01\x00\x00\x00\x06\x00\x00\x00\x98\x0d\x00\x00\x00\x00\x00\x00\x98\x0d\x01\x00\x00\x00\x00\x00\x98\x0d\x01\x00\x00\x00\x00\x00\x78\x02\x00\x00\x00\x00\x00\x00\x80\x02\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x02\x00\x00\x00\x06\x00\x00\x00\xa8\x0d\x00\x00\x00\x00\x00\x00\xa8\x0d\x01\x00\x00\x00\x00\x00\xa8\x0d\x01\x00\x00\x00\x00\x00\xf0\x01\x00\x00\x00\x00\x00\x00\xf0\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x04\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x50\xe5\x74\x64\x04\x00\x00\x00\x5c\x07\x00\x00\x00\x00\x00\x00\x5c\x07\x00\x00\x00\x00\x00\x00\x5c\x07\x00\x00\x00\x00\x00\x00\x3c\x00\x00\x00\x00\x00\x00\x00\x3c\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x51\xe5\x74\x64\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x52\xe5\x74\x64\x04\x00\x00\x00\x98\x0d\x00\x00\x00\x00\x00\x00\x98\x0d\x01\x00\x00\x00\x00\x00\x98\x0d\x01\x00\x00\x00\x00"), -Section(".symtab", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x00\x06\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x70\x1b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x38\x00\x09\x00\x40\x00\x1c\x00\x1b\x00\x06\x00\x00\x00\x04\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x04\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x3c\x08\x00\x00\x00\x00\x00\x00\x3c\x08\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x01\x00\x00\x00\x06\x00\x00\x00\x98\x0d\x00\x00\x00\x00\x00\x00\x98\x0d\x01\x00\x00\x00\x00\x00\x98\x0d\x01\x00\x00\x00\x00\x00\x78\x02\x00\x00\x00\x00\x00\x00\x80\x02\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x02\x00\x00\x00\x06\x00\x00\x00\xa8\x0d\x00\x00\x00\x00\x00\x00\xa8\x0d\x01\x00\x00\x00\x00\x00\xa8\x0d\x01\x00\x00\x00\x00\x00\xf0\x01\x00\x00\x00\x00\x00\x00\xf0\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x04\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x50\xe5\x74\x64\x04\x00\x00\x00\x5c\x07\x00\x00\x00\x00\x00\x00\x5c\x07\x00\x00\x00\x00\x00\x00\x5c\x07\x00\x00\x00\x00\x00\x00\x3c\x00\x00\x00\x00\x00\x00\x00\x3c\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x51\xe5\x74\x64\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x52\xe5\x74\x64\x04\x00\x00\x00\x98\x0d\x00\x00\x00\x00\x00\x00\x98\x0d\x01\x00\x00\x00\x00\x00\x98\x0d\x01\x00\x00\x00\x00\x00\x68\x02\x00\x00\x00\x00\x00\x00\x68\x02\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x2f\x6c\x69\x62\x2f\x6c\x64\x2d\x6c\x69\x6e\x75\x78\x2d\x61\x61\x72\x63\x68\x36\x34\x2e\x73\x6f\x2e\x31\x00\x00\x04\x00\x00\x00\x14\x00\x00\x00\x03\x00\x00\x00\x47\x4e\x55\x00\x54\x6f\xa9\xf2\xd9\x34\x3c\xd2\x7b\x3e\x8c\x94\xfe\xa0\x93\xc9\x4e\x37\xb5\x4b\x04\x00\x00\x00\x10\x00\x00\x00\x01\x00\x00\x00\x47\x4e\x55\x00\x00\x00\x00\x00\x03\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x01\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x0b\x00\x80\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x16\x00\x00\x10\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x48\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x22\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x22\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x73\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5f\x5f\x63\x78\x61\x5f\x66\x69\x6e\x61\x6c\x69\x7a\x65\x00\x5f\x5f\x6c\x69\x62\x63\x5f\x73\x74\x61\x72\x74\x5f\x6d\x61\x69\x6e\x00\x61\x62\x6f\x72\x74\x00\x6c\x69\x62\x63\x2e\x73\x6f\x2e\x36\x00\x47\x4c\x49\x42\x43\x5f\x32\x2e\x31\x37\x00\x47\x4c\x49\x42\x43\x5f\x32\x2e\x33\x34\x00\x5f\x49\x54\x4d\x5f\x64\x65\x72\x65\x67\x69\x73\x74\x65\x72\x54\x4d\x43\x6c\x6f\x6e\x65\x54\x61\x62\x6c\x65\x00\x5f\x5f\x67\x6d\x6f\x6e\x5f\x73\x74\x61\x72\x74\x5f\x5f\x00\x5f\x49\x54\x4d\x5f\x72\x65\x67\x69\x73\x74\x65\x72\x54\x4d\x43\x6c\x6f\x6e\x65\x54\x61\x62\x6c\x65\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x01\x00\x03\x00\x01\x00\x03\x00\x01\x00\x01\x00\x02\x00\x28\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x97\x91\x96\x06\x00\x00\x03\x00\x32\x00\x00\x00\x10\x00\x00\x00\xb4\x91\x96\x06\x00\x00\x02\x00\x3d\x00\x00\x00\x00\x00\x00\x00\x98\x0d\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x10\x07\x00\x00\x00\x00\x00\x00\xa0\x0d\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\xc0\x06\x00\x00\x00\x00\x00\x00\xf0\x0f\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x14\x07\x00\x00\x00\x00\x00\x00\x08\x10\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x08\x10\x01\x00\x00\x00\x00\x00\xd8\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe0\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe8\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xf8\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xb0\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xb8\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xc0\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xc8\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1f\x20\x03\xd5\xfd\x7b\xbf\xa9\xfd\x03\x00\x91\x2a\x00\x00\x94\xfd\x7b\xc1\xa8\xc0\x03\x5f\xd6\x00\x00\x00\x00\x00\x00\x00\x00\xf0\x7b\xbf\xa9\x90\x00\x00\x90\x11\xd6\x47\xf9\x10\xa2\x3e\x91\x20\x02\x1f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x90\x00\x00\x90\x11\xda\x47\xf9\x10\xc2\x3e\x91\x20\x02\x1f\xd6\x90\x00\x00\x90\x11\xde\x47\xf9\x10\xe2\x3e\x91\x20\x02\x1f\xd6\x90\x00\x00\x90\x11\xe2\x47\xf9\x10\x02\x3f\x91\x20\x02\x1f\xd6\x90\x00\x00\x90\x11\xe6\x47\xf9\x10\x22\x3f\x91\x20\x02\x1f\xd6\x1f\x20\x03\xd5\x1d\x00\x80\xd2\x1e\x00\x80\xd2\xe5\x03\x00\xaa\xe1\x03\x40\xf9\xe2\x23\x00\x91\xe6\x03\x00\x91\x80\x00\x00\x90\x00\xf8\x47\xf9\x03\x00\x80\xd2\x04\x00\x80\xd2\xe5\xff\xff\x97\xf0\xff\xff\x97\x80\x00\x00\x90\x00\xf4\x47\xf9\x40\x00\x00\xb4\xe8\xff\xff\x17\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x80\x00\x00\xb0\x00\x40\x00\x91\x81\x00\x00\xb0\x21\x40\x00\x91\x3f\x00\x00\xeb\xc0\x00\x00\x54\x81\x00\x00\x90\x21\xec\x47\xf9\x61\x00\x00\xb4\xf0\x03\x01\xaa\x00\x02\x1f\xd6\xc0\x03\x5f\xd6\x80\x00\x00\xb0\x00\x40\x00\x91\x81\x00\x00\xb0\x21\x40\x00\x91\x21\x00\x00\xcb\x22\xfc\x7f\xd3\x41\x0c\x81\x8b\x21\xfc\x41\x93\xc1\x00\x00\xb4\x82\x00\x00\x90\x42\xfc\x47\xf9\x62\x00\x00\xb4\xf0\x03\x02\xaa\x00\x02\x1f\xd6\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\xfd\x7b\xbe\xa9\xfd\x03\x00\x91\xf3\x0b\x00\xf9\x93\x00\x00\xb0\x60\x42\x40\x39\x40\x01\x00\x35\x80\x00\x00\x90\x00\xf0\x47\xf9\x80\x00\x00\xb4\x80\x00\x00\xb0\x00\x04\x40\xf9\xb9\xff\xff\x97\xd8\xff\xff\x97\x20\x00\x80\x52\x60\x42\x00\x39\xf3\x0b\x40\xf9\xfd\x7b\xc2\xa8\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\xdc\xff\xff\x17\xff\x83\x00\xd1\xe0\x0f\x00\xb9\xe0\x0f\x40\xb9\xe0\x1f\x00\xb9\xe0\x1f\x40\xb9\x1f\x00\x00\x71\x61\x00\x00\x54\x20\x00\x80\x52\xe0\x1f\x00\xb9\x00\x00\x80\x52\xff\x83\x00\x91\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\xfd\x7b\xbf\xa9\xfd\x03\x00\x91\xfd\x7b\xc1\xa8\xc0\x03\x5f\xd6\x01\x00\x02\x00\x01\x1b\x03\x3b\x38\x00\x00\x00\x06\x00\x00\x00\xa4\xfe\xff\xff\x50\x00\x00\x00\xf4\xfe\xff\xff\x64\x00\x00\x00\x24\xff\xff\xff\x78\x00\x00\x00\x64\xff\xff\xff\x8c\x00\x00\x00\xb4\xff\xff\xff\xb0\x00\x00\x00\xb8\xff\xff\xff\xc4\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x01\x7a\x52\x00\x04\x78\x1e\x01\x1b\x0c\x1f\x00\x10\x00\x00\x00\x18\x00\x00\x00\x4c\xfe\xff\xff\x34\x00\x00\x00\x00\x41\x07\x1e\x10\x00\x00\x00\x2c\x00\x00\x00\x88\xfe\xff\xff\x30\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x40\x00\x00\x00\xa4\xfe\xff\xff\x3c\x00\x00\x00\x00\x00\x00\x00\x20\x00\x00\x00\x54\x00\x00\x00\xd0\xfe\xff\xff\x48\x00\x00\x00\x00\x41\x0e\x20\x9d\x04\x9e\x03\x42\x93\x02\x4e\xde\xdd\xd3\x0e\x00\x00\x00\x00\x10\x00\x00\x00"), -Section(".comment", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x00\x06\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x70\x1b\x00"), -Section(".interp", 0x238, "\x2f\x6c\x69\x62\x2f\x6c\x64\x2d\x6c\x69\x6e\x75\x78\x2d\x61\x61\x72\x63\x68\x36\x34\x2e\x73\x6f\x2e\x31\x00"), -Section(".note.gnu.build-id", 0x254, "\x04\x00\x00\x00\x14\x00\x00\x00\x03\x00\x00\x00\x47\x4e\x55\x00\x54\x6f\xa9\xf2\xd9\x34\x3c\xd2\x7b\x3e\x8c\x94\xfe\xa0\x93\xc9\x4e\x37\xb5\x4b"), -Section(".note.ABI-tag", 0x278, "\x04\x00\x00\x00\x10\x00\x00\x00\x01\x00\x00\x00\x47\x4e\x55\x00\x00\x00\x00\x00\x03\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00"), -Section(".gnu.hash", 0x298, "\x01\x00\x00\x00\x01\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".dynsym", 0x2B8, "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x0b\x00\x80\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x16\x00\x00\x10\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x48\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x22\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x22\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x73\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".dynstr", 0x390, "\x00\x5f\x5f\x63\x78\x61\x5f\x66\x69\x6e\x61\x6c\x69\x7a\x65\x00\x5f\x5f\x6c\x69\x62\x63\x5f\x73\x74\x61\x72\x74\x5f\x6d\x61\x69\x6e\x00\x61\x62\x6f\x72\x74\x00\x6c\x69\x62\x63\x2e\x73\x6f\x2e\x36\x00\x47\x4c\x49\x42\x43\x5f\x32\x2e\x31\x37\x00\x47\x4c\x49\x42\x43\x5f\x32\x2e\x33\x34\x00\x5f\x49\x54\x4d\x5f\x64\x65\x72\x65\x67\x69\x73\x74\x65\x72\x54\x4d\x43\x6c\x6f\x6e\x65\x54\x61\x62\x6c\x65\x00\x5f\x5f\x67\x6d\x6f\x6e\x5f\x73\x74\x61\x72\x74\x5f\x5f\x00\x5f\x49\x54\x4d\x5f\x72\x65\x67\x69\x73\x74\x65\x72\x54\x4d\x43\x6c\x6f\x6e\x65\x54\x61\x62\x6c\x65\x00"), -Section(".gnu.version", 0x41E, "\x00\x00\x00\x00\x00\x00\x02\x00\x01\x00\x03\x00\x01\x00\x03\x00\x01\x00"), -Section(".gnu.version_r", 0x430, "\x01\x00\x02\x00\x28\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x97\x91\x96\x06\x00\x00\x03\x00\x32\x00\x00\x00\x10\x00\x00\x00\xb4\x91\x96\x06\x00\x00\x02\x00\x3d\x00\x00\x00\x00\x00\x00\x00"), -Section(".rela.dyn", 0x460, "\x98\x0d\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x10\x07\x00\x00\x00\x00\x00\x00\xa0\x0d\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\xc0\x06\x00\x00\x00\x00\x00\x00\xf0\x0f\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x14\x07\x00\x00\x00\x00\x00\x00\x08\x10\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x08\x10\x01\x00\x00\x00\x00\x00\xd8\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe0\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe8\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xf8\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".rela.plt", 0x520, "\xb0\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xb8\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xc0\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xc8\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".init", 0x580, "\x1f\x20\x03\xd5\xfd\x7b\xbf\xa9\xfd\x03\x00\x91\x2a\x00\x00\x94\xfd\x7b\xc1\xa8\xc0\x03\x5f\xd6"), -Section(".plt", 0x5A0, "\xf0\x7b\xbf\xa9\x90\x00\x00\x90\x11\xd6\x47\xf9\x10\xa2\x3e\x91\x20\x02\x1f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x90\x00\x00\x90\x11\xda\x47\xf9\x10\xc2\x3e\x91\x20\x02\x1f\xd6\x90\x00\x00\x90\x11\xde\x47\xf9\x10\xe2\x3e\x91\x20\x02\x1f\xd6\x90\x00\x00\x90\x11\xe2\x47\xf9\x10\x02\x3f\x91\x20\x02\x1f\xd6\x90\x00\x00\x90\x11\xe6\x47\xf9\x10\x22\x3f\x91\x20\x02\x1f\xd6"), -Section(".fini", 0x744, "\x1f\x20\x03\xd5\xfd\x7b\xbf\xa9\xfd\x03\x00\x91\xfd\x7b\xc1\xa8\xc0\x03\x5f\xd6"), -Section(".rodata", 0x758, "\x01\x00\x02\x00"), -Section(".eh_frame_hdr", 0x75C, "\x01\x1b\x03\x3b\x38\x00\x00\x00\x06\x00\x00\x00\xa4\xfe\xff\xff\x50\x00\x00\x00\xf4\xfe\xff\xff\x64\x00\x00\x00\x24\xff\xff\xff\x78\x00\x00\x00\x64\xff\xff\xff\x8c\x00\x00\x00\xb4\xff\xff\xff\xb0\x00\x00\x00\xb8\xff\xff\xff\xc4\x00\x00\x00"), -Section(".eh_frame", 0x798, "\x10\x00\x00\x00\x00\x00\x00\x00\x01\x7a\x52\x00\x04\x78\x1e\x01\x1b\x0c\x1f\x00\x10\x00\x00\x00\x18\x00\x00\x00\x4c\xfe\xff\xff\x34\x00\x00\x00\x00\x41\x07\x1e\x10\x00\x00\x00\x2c\x00\x00\x00\x88\xfe\xff\xff\x30\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x40\x00\x00\x00\xa4\xfe\xff\xff\x3c\x00\x00\x00\x00\x00\x00\x00\x20\x00\x00\x00\x54\x00\x00\x00\xd0\xfe\xff\xff\x48\x00\x00\x00\x00\x41\x0e\x20\x9d\x04\x9e\x03\x42\x93\x02\x4e\xde\xdd\xd3\x0e\x00\x00\x00\x00\x10\x00\x00\x00\x78\x00\x00\x00\xfc\xfe\xff\xff\x04\x00\x00\x00\x00\x00\x00\x00\x14\x00\x00\x00\x8c\x00\x00\x00\xec\xfe\xff\xff\x30\x00\x00\x00\x00\x41\x0e\x20\x4a\x0e\x00\x00\x00\x00\x00\x00"), -Section(".fini_array", 0x10DA0, "\xc0\x06\x00\x00\x00\x00\x00\x00"), -Section(".dynamic", 0x10DA8, "\x01\x00\x00\x00\x00\x00\x00\x00\x28\x00\x00\x00\x00\x00\x00\x00\x0c\x00\x00\x00\x00\x00\x00\x00\x80\x05\x00\x00\x00\x00\x00\x00\x0d\x00\x00\x00\x00\x00\x00\x00\x44\x07\x00\x00\x00\x00\x00\x00\x19\x00\x00\x00\x00\x00\x00\x00\x98\x0d\x01\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x1a\x00\x00\x00\x00\x00\x00\x00\xa0\x0d\x01\x00\x00\x00\x00\x00\x1c\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\xf5\xfe\xff\x6f\x00\x00\x00\x00\x98\x02\x00\x00\x00\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x90\x03\x00\x00\x00\x00\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\xb8\x02\x00\x00\x00\x00\x00\x00\x0a\x00\x00\x00\x00\x00\x00\x00\x8d\x00\x00\x00\x00\x00\x00\x00\x0b\x00\x00\x00\x00\x00\x00\x00\x18\x00\x00\x00\x00\x00\x00\x00\x15\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x98\x0f\x01\x00\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x60\x00\x00\x00\x00\x00\x00\x00\x14\x00\x00\x00\x00\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x17\x00\x00\x00\x00\x00\x00\x00\x20\x05\x00\x00\x00\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x60\x04\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\xc0\x00\x00\x00\x00\x00\x00\x00\x09\x00\x00\x00\x00\x00\x00\x00\x18\x00\x00\x00\x00\x00\x00\x00\x1e\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\xfb\xff\xff\x6f\x00\x00\x00\x00\x01\x00\x00\x08\x00\x00\x00\x00\xfe\xff\xff\x6f\x00\x00\x00\x00\x30\x04\x00\x00\x00\x00\x00\x00\xff\xff\xff\x6f\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\xf0\xff\xff\x6f\x00\x00\x00\x00\x1e\x04\x00\x00\x00\x00\x00\x00\xf9\xff\xff\x6f\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".got", 0x10F98, "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xa0\x05\x00\x00\x00\x00\x00\x00\xa0\x05\x00\x00\x00\x00\x00\x00\xa0\x05\x00\x00\x00\x00\x00\x00\xa0\x05\x00\x00\x00\x00\x00\x00\xa8\x0d\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x14\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".data", 0x11000, "\x00\x00\x00\x00\x00\x00\x00\x00\x08\x10\x01\x00\x00\x00\x00\x00"), -Section(".init_array", 0x10D98, "\x10\x07\x00\x00\x00\x00\x00\x00"), -Section(".text", 0x600, "\x1f\x20\x03\xd5\x1d\x00\x80\xd2\x1e\x00\x80\xd2\xe5\x03\x00\xaa\xe1\x03\x40\xf9\xe2\x23\x00\x91\xe6\x03\x00\x91\x80\x00\x00\x90\x00\xf8\x47\xf9\x03\x00\x80\xd2\x04\x00\x80\xd2\xe5\xff\xff\x97\xf0\xff\xff\x97\x80\x00\x00\x90\x00\xf4\x47\xf9\x40\x00\x00\xb4\xe8\xff\xff\x17\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x80\x00\x00\xb0\x00\x40\x00\x91\x81\x00\x00\xb0\x21\x40\x00\x91\x3f\x00\x00\xeb\xc0\x00\x00\x54\x81\x00\x00\x90\x21\xec\x47\xf9\x61\x00\x00\xb4\xf0\x03\x01\xaa\x00\x02\x1f\xd6\xc0\x03\x5f\xd6\x80\x00\x00\xb0\x00\x40\x00\x91\x81\x00\x00\xb0\x21\x40\x00\x91\x21\x00\x00\xcb\x22\xfc\x7f\xd3\x41\x0c\x81\x8b\x21\xfc\x41\x93\xc1\x00\x00\xb4\x82\x00\x00\x90\x42\xfc\x47\xf9\x62\x00\x00\xb4\xf0\x03\x02\xaa\x00\x02\x1f\xd6\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\xfd\x7b\xbe\xa9\xfd\x03\x00\x91\xf3\x0b\x00\xf9\x93\x00\x00\xb0\x60\x42\x40\x39\x40\x01\x00\x35\x80\x00\x00\x90\x00\xf0\x47\xf9\x80\x00\x00\xb4\x80\x00\x00\xb0\x00\x04\x40\xf9\xb9\xff\xff\x97\xd8\xff\xff\x97\x20\x00\x80\x52\x60\x42\x00\x39\xf3\x0b\x40\xf9\xfd\x7b\xc2\xa8\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\xdc\xff\xff\x17\xff\x83\x00\xd1\xe0\x0f\x00\xb9\xe0\x0f\x40\xb9\xe0\x1f\x00\xb9\xe0\x1f\x40\xb9\x1f\x00\x00\x71\x61\x00\x00\x54\x20\x00\x80\x52\xe0\x1f\x00\xb9\x00\x00\x80\x52\xff\x83\x00\x91\xc0\x03\x5f\xd6")]), -Memmap([Annotation(Region(0x0,0x83B), Attr("segment","02 0 2108")), -Annotation(Region(0x600,0x633), Attr("symbol","\"_start\"")), -Annotation(Region(0x0,0xF9), Attr("section","\".shstrtab\"")), -Annotation(Region(0x0,0x21E), Attr("section","\".strtab\"")), -Annotation(Region(0x0,0x80F), Attr("section","\".symtab\"")), -Annotation(Region(0x0,0x2A), Attr("section","\".comment\"")), -Annotation(Region(0x238,0x252), Attr("section","\".interp\"")), -Annotation(Region(0x254,0x277), Attr("section","\".note.gnu.build-id\"")), -Annotation(Region(0x278,0x297), Attr("section","\".note.ABI-tag\"")), -Annotation(Region(0x298,0x2B3), Attr("section","\".gnu.hash\"")), -Annotation(Region(0x2B8,0x38F), Attr("section","\".dynsym\"")), -Annotation(Region(0x390,0x41C), Attr("section","\".dynstr\"")), -Annotation(Region(0x41E,0x42F), Attr("section","\".gnu.version\"")), -Annotation(Region(0x430,0x45F), Attr("section","\".gnu.version_r\"")), -Annotation(Region(0x460,0x51F), Attr("section","\".rela.dyn\"")), -Annotation(Region(0x520,0x57F), Attr("section","\".rela.plt\"")), -Annotation(Region(0x580,0x597), Attr("section","\".init\"")), -Annotation(Region(0x5A0,0x5FF), Attr("section","\".plt\"")), -Annotation(Region(0x580,0x597), Attr("code-region","()")), -Annotation(Region(0x5A0,0x5FF), Attr("code-region","()")), -Annotation(Region(0x600,0x633), Attr("symbol-info","_start 0x600 52")), -Annotation(Region(0x634,0x647), Attr("symbol","\"call_weak_fn\"")), -Annotation(Region(0x634,0x647), Attr("symbol-info","call_weak_fn 0x634 20")), -Annotation(Region(0x714,0x743), Attr("symbol","\"main\"")), -Annotation(Region(0x714,0x743), Attr("symbol-info","main 0x714 48")), -Annotation(Region(0x744,0x757), Attr("section","\".fini\"")), -Annotation(Region(0x758,0x75B), Attr("section","\".rodata\"")), -Annotation(Region(0x75C,0x797), Attr("section","\".eh_frame_hdr\"")), -Annotation(Region(0x798,0x83B), Attr("section","\".eh_frame\"")), -Annotation(Region(0x10D98,0x1100F), Attr("segment","03 0x10D98 640")), -Annotation(Region(0x10DA0,0x10DA7), Attr("section","\".fini_array\"")), -Annotation(Region(0x10DA8,0x10F97), Attr("section","\".dynamic\"")), -Annotation(Region(0x10F98,0x10FFF), Attr("section","\".got\"")), -Annotation(Region(0x11000,0x1100F), Attr("section","\".data\"")), -Annotation(Region(0x10D98,0x10D9F), Attr("section","\".init_array\"")), -Annotation(Region(0x600,0x743), Attr("section","\".text\"")), -Annotation(Region(0x600,0x743), Attr("code-region","()")), -Annotation(Region(0x744,0x757), Attr("code-region","()"))]), -Program(Tid(1_531, "%000005fb"), Attrs([]), - Subs([Sub(Tid(1_477, "@__cxa_finalize"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x5D0"), -Attr("stub","()")]), "__cxa_finalize", Args([Arg(Tid(1_532, "%000005fc"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("__cxa_finalize_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(881, "@__cxa_finalize"), - Attrs([Attr("address","0x5D0")]), Phis([]), -Defs([Def(Tid(1_129, "%00000469"), Attrs([Attr("address","0x5D0"), -Attr("insn","adrp x16, #65536")]), Var("R16",Imm(64)), Int(65536,64)), -Def(Tid(1_136, "%00000470"), Attrs([Attr("address","0x5D4"), -Attr("insn","ldr x17, [x16, #0xfb8]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(4024,64)),LittleEndian(),64)), -Def(Tid(1_142, "%00000476"), Attrs([Attr("address","0x5D8"), -Attr("insn","add x16, x16, #0xfb8")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(4024,64)))]), Jmps([Call(Tid(1_147, "%0000047b"), - Attrs([Attr("address","0x5DC"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), -Sub(Tid(1_478, "@__do_global_dtors_aux"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x6C0")]), - "__do_global_dtors_aux", Args([Arg(Tid(1_533, "%000005fd"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("__do_global_dtors_aux_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(638, "@__do_global_dtors_aux"), - Attrs([Attr("address","0x6C0")]), Phis([]), Defs([Def(Tid(642, "%00000282"), - Attrs([Attr("address","0x6C0"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("#3",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(18446744073709551584,64))), -Def(Tid(648, "%00000288"), Attrs([Attr("address","0x6C0"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("#3",Imm(64)),Var("R29",Imm(64)),LittleEndian(),64)), -Def(Tid(654, "%0000028e"), Attrs([Attr("address","0x6C0"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("#3",Imm(64)),Int(8,64)),Var("R30",Imm(64)),LittleEndian(),64)), -Def(Tid(658, "%00000292"), Attrs([Attr("address","0x6C0"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("R31",Imm(64)), -Var("#3",Imm(64))), Def(Tid(664, "%00000298"), - Attrs([Attr("address","0x6C4"), Attr("insn","mov x29, sp")]), - Var("R29",Imm(64)), Var("R31",Imm(64))), Def(Tid(672, "%000002a0"), - Attrs([Attr("address","0x6C8"), Attr("insn","str x19, [sp, #0x10]")]), - Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(16,64)),Var("R19",Imm(64)),LittleEndian(),64)), -Def(Tid(677, "%000002a5"), Attrs([Attr("address","0x6CC"), -Attr("insn","adrp x19, #69632")]), Var("R19",Imm(64)), Int(69632,64)), -Def(Tid(684, "%000002ac"), Attrs([Attr("address","0x6D0"), -Attr("insn","ldrb w0, [x19, #0x10]")]), Var("R0",Imm(64)), -UNSIGNED(64,Load(Var("mem",Mem(64,8)),PLUS(Var("R19",Imm(64)),Int(16,64)),LittleEndian(),8)))]), -Jmps([Goto(Tid(691, "%000002b3"), Attrs([Attr("address","0x6D4"), -Attr("insn","cbnz w0, #0x28")]), - NEQ(Extract(31,0,Var("R0",Imm(64))),Int(0,32)), -Direct(Tid(689, "%000002b1"))), Goto(Tid(1_519, "%000005ef"), Attrs([]), - Int(1,1), Direct(Tid(826, "%0000033a")))])), Blk(Tid(826, "%0000033a"), - Attrs([Attr("address","0x6D8")]), Phis([]), Defs([Def(Tid(829, "%0000033d"), - Attrs([Attr("address","0x6D8"), Attr("insn","adrp x0, #65536")]), - Var("R0",Imm(64)), Int(65536,64)), Def(Tid(836, "%00000344"), - Attrs([Attr("address","0x6DC"), Attr("insn","ldr x0, [x0, #0xfe0]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(4064,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(842, "%0000034a"), Attrs([Attr("address","0x6E0"), -Attr("insn","cbz x0, #0x10")]), EQ(Var("R0",Imm(64)),Int(0,64)), -Direct(Tid(840, "%00000348"))), Goto(Tid(1_520, "%000005f0"), Attrs([]), - Int(1,1), Direct(Tid(865, "%00000361")))])), Blk(Tid(865, "%00000361"), - Attrs([Attr("address","0x6E4")]), Phis([]), Defs([Def(Tid(868, "%00000364"), - Attrs([Attr("address","0x6E4"), Attr("insn","adrp x0, #69632")]), - Var("R0",Imm(64)), Int(69632,64)), Def(Tid(875, "%0000036b"), - Attrs([Attr("address","0x6E8"), Attr("insn","ldr x0, [x0, #0x8]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(880, "%00000370"), Attrs([Attr("address","0x6EC"), -Attr("insn","bl #-0x11c")]), Var("R30",Imm(64)), Int(1776,64))]), -Jmps([Call(Tid(883, "%00000373"), Attrs([Attr("address","0x6EC"), -Attr("insn","bl #-0x11c")]), Int(1,1), -(Direct(Tid(1_477, "@__cxa_finalize")),Direct(Tid(840, "%00000348"))))])), -Blk(Tid(840, "%00000348"), Attrs([Attr("address","0x6F0")]), Phis([]), -Defs([Def(Tid(848, "%00000350"), Attrs([Attr("address","0x6F0"), -Attr("insn","bl #-0xa0")]), Var("R30",Imm(64)), Int(1780,64))]), -Jmps([Call(Tid(850, "%00000352"), Attrs([Attr("address","0x6F0"), -Attr("insn","bl #-0xa0")]), Int(1,1), -(Direct(Tid(1_491, "@deregister_tm_clones")),Direct(Tid(852, "%00000354"))))])), -Blk(Tid(852, "%00000354"), Attrs([Attr("address","0x6F4")]), Phis([]), -Defs([Def(Tid(855, "%00000357"), Attrs([Attr("address","0x6F4"), -Attr("insn","mov w0, #0x1")]), Var("R0",Imm(64)), Int(1,64)), -Def(Tid(863, "%0000035f"), Attrs([Attr("address","0x6F8"), -Attr("insn","strb w0, [x19, #0x10]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R19",Imm(64)),Int(16,64)),Extract(7,0,Var("R0",Imm(64))),LittleEndian(),8))]), -Jmps([Goto(Tid(1_521, "%000005f1"), Attrs([]), Int(1,1), -Direct(Tid(689, "%000002b1")))])), Blk(Tid(689, "%000002b1"), - Attrs([Attr("address","0x6FC")]), Phis([]), Defs([Def(Tid(699, "%000002bb"), - Attrs([Attr("address","0x6FC"), Attr("insn","ldr x19, [sp, #0x10]")]), - Var("R19",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(16,64)),LittleEndian(),64)), -Def(Tid(706, "%000002c2"), Attrs([Attr("address","0x700"), -Attr("insn","ldp x29, x30, [sp], #0x20")]), Var("R29",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(711, "%000002c7"), Attrs([Attr("address","0x700"), -Attr("insn","ldp x29, x30, [sp], #0x20")]), Var("R30",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(715, "%000002cb"), Attrs([Attr("address","0x700"), -Attr("insn","ldp x29, x30, [sp], #0x20")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(32,64)))]), Jmps([Call(Tid(720, "%000002d0"), - Attrs([Attr("address","0x704"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), Sub(Tid(1_482, "@__libc_start_main"), - Attrs([Attr("c.proto","signed (*)(signed (*)(signed , char** , char** );* main, signed , char** , \nvoid* auxv)"), -Attr("address","0x5C0"), Attr("stub","()")]), "__libc_start_main", - Args([Arg(Tid(1_534, "%000005fe"), - Attrs([Attr("c.layout","**[ : 64]"), -Attr("c.data","Top:u64 ptr ptr"), -Attr("c.type","signed (*)(signed , char** , char** );*")]), - Var("__libc_start_main_main",Imm(64)), Var("R0",Imm(64)), In()), -Arg(Tid(1_535, "%000005ff"), Attrs([Attr("c.layout","[signed : 32]"), -Attr("c.data","Top:u32"), Attr("c.type","signed")]), - Var("__libc_start_main_arg2",Imm(32)), LOW(32,Var("R1",Imm(64))), In()), -Arg(Tid(1_536, "%00000600"), Attrs([Attr("c.layout","**[char : 8]"), -Attr("c.data","Top:u8 ptr ptr"), Attr("c.type","char**")]), - Var("__libc_start_main_arg3",Imm(64)), Var("R2",Imm(64)), Both()), -Arg(Tid(1_537, "%00000601"), Attrs([Attr("c.layout","*[ : 8]"), -Attr("c.data","{} ptr"), Attr("c.type","void*")]), - Var("__libc_start_main_auxv",Imm(64)), Var("R3",Imm(64)), Both()), -Arg(Tid(1_538, "%00000602"), Attrs([Attr("c.layout","[signed : 32]"), -Attr("c.data","Top:u32"), Attr("c.type","signed")]), - Var("__libc_start_main_result",Imm(32)), LOW(32,Var("R0",Imm(64))), -Out())]), Blks([Blk(Tid(471, "@__libc_start_main"), - Attrs([Attr("address","0x5C0")]), Phis([]), -Defs([Def(Tid(1_107, "%00000453"), Attrs([Attr("address","0x5C0"), -Attr("insn","adrp x16, #65536")]), Var("R16",Imm(64)), Int(65536,64)), -Def(Tid(1_114, "%0000045a"), Attrs([Attr("address","0x5C4"), -Attr("insn","ldr x17, [x16, #0xfb0]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(4016,64)),LittleEndian(),64)), -Def(Tid(1_120, "%00000460"), Attrs([Attr("address","0x5C8"), -Attr("insn","add x16, x16, #0xfb0")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(4016,64)))]), Jmps([Call(Tid(1_125, "%00000465"), - Attrs([Attr("address","0x5CC"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), Sub(Tid(1_483, "@_fini"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x744")]), - "_fini", Args([Arg(Tid(1_539, "%00000603"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("_fini_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(31, "@_fini"), - Attrs([Attr("address","0x744")]), Phis([]), Defs([Def(Tid(37, "%00000025"), - Attrs([Attr("address","0x748"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("#0",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(18446744073709551600,64))), -Def(Tid(43, "%0000002b"), Attrs([Attr("address","0x748"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("#0",Imm(64)),Var("R29",Imm(64)),LittleEndian(),64)), -Def(Tid(49, "%00000031"), Attrs([Attr("address","0x748"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("#0",Imm(64)),Int(8,64)),Var("R30",Imm(64)),LittleEndian(),64)), -Def(Tid(53, "%00000035"), Attrs([Attr("address","0x748"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("R31",Imm(64)), -Var("#0",Imm(64))), Def(Tid(59, "%0000003b"), Attrs([Attr("address","0x74C"), -Attr("insn","mov x29, sp")]), Var("R29",Imm(64)), Var("R31",Imm(64))), -Def(Tid(66, "%00000042"), Attrs([Attr("address","0x750"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R29",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(71, "%00000047"), Attrs([Attr("address","0x750"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R30",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(75, "%0000004b"), Attrs([Attr("address","0x750"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(16,64)))]), Jmps([Call(Tid(80, "%00000050"), - Attrs([Attr("address","0x754"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), Sub(Tid(1_484, "@_init"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x580")]), - "_init", Args([Arg(Tid(1_540, "%00000604"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("_init_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(1_307, "@_init"), - Attrs([Attr("address","0x580")]), Phis([]), -Defs([Def(Tid(1_313, "%00000521"), Attrs([Attr("address","0x584"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("#6",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(18446744073709551600,64))), -Def(Tid(1_319, "%00000527"), Attrs([Attr("address","0x584"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("#6",Imm(64)),Var("R29",Imm(64)),LittleEndian(),64)), -Def(Tid(1_325, "%0000052d"), Attrs([Attr("address","0x584"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("#6",Imm(64)),Int(8,64)),Var("R30",Imm(64)),LittleEndian(),64)), -Def(Tid(1_329, "%00000531"), Attrs([Attr("address","0x584"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("R31",Imm(64)), -Var("#6",Imm(64))), Def(Tid(1_335, "%00000537"), - Attrs([Attr("address","0x588"), Attr("insn","mov x29, sp")]), - Var("R29",Imm(64)), Var("R31",Imm(64))), Def(Tid(1_340, "%0000053c"), - Attrs([Attr("address","0x58C"), Attr("insn","bl #0xa8")]), - Var("R30",Imm(64)), Int(1424,64))]), Jmps([Call(Tid(1_342, "%0000053e"), - Attrs([Attr("address","0x58C"), Attr("insn","bl #0xa8")]), Int(1,1), -(Direct(Tid(1_489, "@call_weak_fn")),Direct(Tid(1_344, "%00000540"))))])), -Blk(Tid(1_344, "%00000540"), Attrs([Attr("address","0x590")]), Phis([]), -Defs([Def(Tid(1_349, "%00000545"), Attrs([Attr("address","0x590"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R29",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(1_354, "%0000054a"), Attrs([Attr("address","0x590"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R30",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(1_358, "%0000054e"), Attrs([Attr("address","0x590"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(16,64)))]), Jmps([Call(Tid(1_363, "%00000553"), - Attrs([Attr("address","0x594"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), Sub(Tid(1_485, "@_start"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x600"), -Attr("stub","()"), Attr("entry-point","()")]), "_start", - Args([Arg(Tid(1_541, "%00000605"), Attrs([Attr("c.layout","[signed : 32]"), -Attr("c.data","Top:u32"), Attr("c.type","signed")]), - Var("_start_result",Imm(32)), LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(408, "@_start"), Attrs([Attr("address","0x600")]), Phis([]), -Defs([Def(Tid(413, "%0000019d"), Attrs([Attr("address","0x604"), -Attr("insn","mov x29, #0x0")]), Var("R29",Imm(64)), Int(0,64)), -Def(Tid(418, "%000001a2"), Attrs([Attr("address","0x608"), -Attr("insn","mov x30, #0x0")]), Var("R30",Imm(64)), Int(0,64)), -Def(Tid(424, "%000001a8"), Attrs([Attr("address","0x60C"), -Attr("insn","mov x5, x0")]), Var("R5",Imm(64)), Var("R0",Imm(64))), -Def(Tid(431, "%000001af"), Attrs([Attr("address","0x610"), -Attr("insn","ldr x1, [sp]")]), Var("R1",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(437, "%000001b5"), Attrs([Attr("address","0x614"), -Attr("insn","add x2, sp, #0x8")]), Var("R2",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(8,64))), Def(Tid(443, "%000001bb"), - Attrs([Attr("address","0x618"), Attr("insn","mov x6, sp")]), - Var("R6",Imm(64)), Var("R31",Imm(64))), Def(Tid(448, "%000001c0"), - Attrs([Attr("address","0x61C"), Attr("insn","adrp x0, #65536")]), - Var("R0",Imm(64)), Int(65536,64)), Def(Tid(455, "%000001c7"), - Attrs([Attr("address","0x620"), Attr("insn","ldr x0, [x0, #0xff0]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(4080,64)),LittleEndian(),64)), -Def(Tid(460, "%000001cc"), Attrs([Attr("address","0x624"), -Attr("insn","mov x3, #0x0")]), Var("R3",Imm(64)), Int(0,64)), -Def(Tid(465, "%000001d1"), Attrs([Attr("address","0x628"), -Attr("insn","mov x4, #0x0")]), Var("R4",Imm(64)), Int(0,64)), -Def(Tid(470, "%000001d6"), Attrs([Attr("address","0x62C"), -Attr("insn","bl #-0x6c")]), Var("R30",Imm(64)), Int(1584,64))]), -Jmps([Call(Tid(473, "%000001d9"), Attrs([Attr("address","0x62C"), -Attr("insn","bl #-0x6c")]), Int(1,1), -(Direct(Tid(1_482, "@__libc_start_main")),Direct(Tid(475, "%000001db"))))])), -Blk(Tid(475, "%000001db"), Attrs([Attr("address","0x630")]), Phis([]), -Defs([Def(Tid(478, "%000001de"), Attrs([Attr("address","0x630"), -Attr("insn","bl #-0x40")]), Var("R30",Imm(64)), Int(1588,64))]), -Jmps([Call(Tid(481, "%000001e1"), Attrs([Attr("address","0x630"), -Attr("insn","bl #-0x40")]), Int(1,1), -(Direct(Tid(1_488, "@abort")),Direct(Tid(1_522, "%000005f2"))))])), -Blk(Tid(1_522, "%000005f2"), Attrs([]), Phis([]), Defs([]), -Jmps([Call(Tid(1_523, "%000005f3"), Attrs([]), Int(1,1), -(Direct(Tid(1_489, "@call_weak_fn")),))]))])), Sub(Tid(1_488, "@abort"), - Attrs([Attr("noreturn","()"), Attr("c.proto","void (*)(void)"), -Attr("address","0x5F0"), Attr("stub","()")]), "abort", Args([]), -Blks([Blk(Tid(479, "@abort"), Attrs([Attr("address","0x5F0")]), Phis([]), -Defs([Def(Tid(1_173, "%00000495"), Attrs([Attr("address","0x5F0"), -Attr("insn","adrp x16, #65536")]), Var("R16",Imm(64)), Int(65536,64)), -Def(Tid(1_180, "%0000049c"), Attrs([Attr("address","0x5F4"), -Attr("insn","ldr x17, [x16, #0xfc8]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(4040,64)),LittleEndian(),64)), -Def(Tid(1_186, "%000004a2"), Attrs([Attr("address","0x5F8"), -Attr("insn","add x16, x16, #0xfc8")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(4040,64)))]), Jmps([Call(Tid(1_191, "%000004a7"), - Attrs([Attr("address","0x5FC"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), Sub(Tid(1_489, "@call_weak_fn"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x634")]), - "call_weak_fn", Args([Arg(Tid(1_542, "%00000606"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("call_weak_fn_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(483, "@call_weak_fn"), - Attrs([Attr("address","0x634")]), Phis([]), Defs([Def(Tid(486, "%000001e6"), - Attrs([Attr("address","0x634"), Attr("insn","adrp x0, #65536")]), - Var("R0",Imm(64)), Int(65536,64)), Def(Tid(493, "%000001ed"), - Attrs([Attr("address","0x638"), Attr("insn","ldr x0, [x0, #0xfe8]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(4072,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(499, "%000001f3"), Attrs([Attr("address","0x63C"), -Attr("insn","cbz x0, #0x8")]), EQ(Var("R0",Imm(64)),Int(0,64)), -Direct(Tid(497, "%000001f1"))), Goto(Tid(1_524, "%000005f4"), Attrs([]), - Int(1,1), Direct(Tid(945, "%000003b1")))])), Blk(Tid(497, "%000001f1"), - Attrs([Attr("address","0x644")]), Phis([]), Defs([]), -Jmps([Call(Tid(505, "%000001f9"), Attrs([Attr("address","0x644"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))])), -Blk(Tid(945, "%000003b1"), Attrs([Attr("address","0x640")]), Phis([]), -Defs([]), Jmps([Goto(Tid(948, "%000003b4"), Attrs([Attr("address","0x640"), -Attr("insn","b #-0x60")]), Int(1,1), Direct(Tid(946, "@__gmon_start__")))])), -Blk(Tid(946, "@__gmon_start__"), Attrs([Attr("address","0x5E0")]), Phis([]), -Defs([Def(Tid(1_151, "%0000047f"), Attrs([Attr("address","0x5E0"), -Attr("insn","adrp x16, #65536")]), Var("R16",Imm(64)), Int(65536,64)), -Def(Tid(1_158, "%00000486"), Attrs([Attr("address","0x5E4"), -Attr("insn","ldr x17, [x16, #0xfc0]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(4032,64)),LittleEndian(),64)), -Def(Tid(1_164, "%0000048c"), Attrs([Attr("address","0x5E8"), -Attr("insn","add x16, x16, #0xfc0")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(4032,64)))]), Jmps([Call(Tid(1_169, "%00000491"), - Attrs([Attr("address","0x5EC"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), -Sub(Tid(1_491, "@deregister_tm_clones"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x650")]), - "deregister_tm_clones", Args([Arg(Tid(1_543, "%00000607"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("deregister_tm_clones_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(511, "@deregister_tm_clones"), - Attrs([Attr("address","0x650")]), Phis([]), Defs([Def(Tid(514, "%00000202"), - Attrs([Attr("address","0x650"), Attr("insn","adrp x0, #69632")]), - Var("R0",Imm(64)), Int(69632,64)), Def(Tid(520, "%00000208"), - Attrs([Attr("address","0x654"), Attr("insn","add x0, x0, #0x10")]), - Var("R0",Imm(64)), PLUS(Var("R0",Imm(64)),Int(16,64))), -Def(Tid(525, "%0000020d"), Attrs([Attr("address","0x658"), -Attr("insn","adrp x1, #69632")]), Var("R1",Imm(64)), Int(69632,64)), -Def(Tid(531, "%00000213"), Attrs([Attr("address","0x65C"), -Attr("insn","add x1, x1, #0x10")]), Var("R1",Imm(64)), -PLUS(Var("R1",Imm(64)),Int(16,64))), Def(Tid(537, "%00000219"), - Attrs([Attr("address","0x660"), Attr("insn","cmp x1, x0")]), - Var("#1",Imm(64)), NOT(Var("R0",Imm(64)))), Def(Tid(542, "%0000021e"), - Attrs([Attr("address","0x660"), Attr("insn","cmp x1, x0")]), - Var("#2",Imm(64)), PLUS(Var("R1",Imm(64)),NOT(Var("R0",Imm(64))))), -Def(Tid(548, "%00000224"), Attrs([Attr("address","0x660"), -Attr("insn","cmp x1, x0")]), Var("VF",Imm(1)), -NEQ(SIGNED(65,PLUS(Var("#2",Imm(64)),Int(1,64))),PLUS(PLUS(SIGNED(65,Var("R1",Imm(64))),SIGNED(65,Var("#1",Imm(64)))),Int(1,65)))), -Def(Tid(554, "%0000022a"), Attrs([Attr("address","0x660"), -Attr("insn","cmp x1, x0")]), Var("CF",Imm(1)), -NEQ(UNSIGNED(65,PLUS(Var("#2",Imm(64)),Int(1,64))),PLUS(PLUS(UNSIGNED(65,Var("R1",Imm(64))),UNSIGNED(65,Var("#1",Imm(64)))),Int(1,65)))), -Def(Tid(558, "%0000022e"), Attrs([Attr("address","0x660"), -Attr("insn","cmp x1, x0")]), Var("ZF",Imm(1)), -EQ(PLUS(Var("#2",Imm(64)),Int(1,64)),Int(0,64))), Def(Tid(562, "%00000232"), - Attrs([Attr("address","0x660"), Attr("insn","cmp x1, x0")]), - Var("NF",Imm(1)), Extract(63,63,PLUS(Var("#2",Imm(64)),Int(1,64))))]), -Jmps([Goto(Tid(568, "%00000238"), Attrs([Attr("address","0x664"), -Attr("insn","b.eq #0x18")]), EQ(Var("ZF",Imm(1)),Int(1,1)), -Direct(Tid(566, "%00000236"))), Goto(Tid(1_525, "%000005f5"), Attrs([]), - Int(1,1), Direct(Tid(915, "%00000393")))])), Blk(Tid(915, "%00000393"), - Attrs([Attr("address","0x668")]), Phis([]), Defs([Def(Tid(918, "%00000396"), - Attrs([Attr("address","0x668"), Attr("insn","adrp x1, #65536")]), - Var("R1",Imm(64)), Int(65536,64)), Def(Tid(925, "%0000039d"), - Attrs([Attr("address","0x66C"), Attr("insn","ldr x1, [x1, #0xfd8]")]), - Var("R1",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R1",Imm(64)),Int(4056,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(930, "%000003a2"), Attrs([Attr("address","0x670"), -Attr("insn","cbz x1, #0xc")]), EQ(Var("R1",Imm(64)),Int(0,64)), -Direct(Tid(566, "%00000236"))), Goto(Tid(1_526, "%000005f6"), Attrs([]), - Int(1,1), Direct(Tid(934, "%000003a6")))])), Blk(Tid(566, "%00000236"), - Attrs([Attr("address","0x67C")]), Phis([]), Defs([]), -Jmps([Call(Tid(574, "%0000023e"), Attrs([Attr("address","0x67C"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))])), -Blk(Tid(934, "%000003a6"), Attrs([Attr("address","0x674")]), Phis([]), -Defs([Def(Tid(938, "%000003aa"), Attrs([Attr("address","0x674"), -Attr("insn","mov x16, x1")]), Var("R16",Imm(64)), Var("R1",Imm(64)))]), -Jmps([Call(Tid(943, "%000003af"), Attrs([Attr("address","0x678"), -Attr("insn","br x16")]), Int(1,1), (Indirect(Var("R16",Imm(64))),))]))])), -Sub(Tid(1_494, "@frame_dummy"), Attrs([Attr("c.proto","signed (*)(void)"), -Attr("address","0x710")]), "frame_dummy", Args([Arg(Tid(1_544, "%00000608"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("frame_dummy_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(726, "@frame_dummy"), - Attrs([Attr("address","0x710")]), Phis([]), Defs([]), -Jmps([Call(Tid(728, "%000002d8"), Attrs([Attr("address","0x710"), -Attr("insn","b #-0x90")]), Int(1,1), -(Direct(Tid(1_498, "@register_tm_clones")),))]))])), Sub(Tid(1_495, "@main"), - Attrs([Attr("c.proto","signed (*)(signed argc, const char** argv)"), -Attr("address","0x714")]), "main", Args([Arg(Tid(1_545, "%00000609"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("main_argc",Imm(32)), -LOW(32,Var("R0",Imm(64))), In()), Arg(Tid(1_546, "%0000060a"), - Attrs([Attr("c.layout","**[char : 8]"), Attr("c.data","Top:u8 ptr ptr"), -Attr("c.type"," const char**")]), Var("main_argv",Imm(64)), -Var("R1",Imm(64)), Both()), Arg(Tid(1_547, "%0000060b"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("main_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(730, "@main"), - Attrs([Attr("address","0x714")]), Phis([]), Defs([Def(Tid(734, "%000002de"), - Attrs([Attr("address","0x714"), Attr("insn","sub sp, sp, #0x20")]), - Var("R31",Imm(64)), PLUS(Var("R31",Imm(64)),Int(18446744073709551584,64))), -Def(Tid(742, "%000002e6"), Attrs([Attr("address","0x718"), -Attr("insn","str w0, [sp, #0xc]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(12,64)),Extract(31,0,Var("R0",Imm(64))),LittleEndian(),32)), -Def(Tid(749, "%000002ed"), Attrs([Attr("address","0x71C"), -Attr("insn","ldr w0, [sp, #0xc]")]), Var("R0",Imm(64)), -UNSIGNED(64,Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(12,64)),LittleEndian(),32))), -Def(Tid(757, "%000002f5"), Attrs([Attr("address","0x720"), -Attr("insn","str w0, [sp, #0x1c]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(28,64)),Extract(31,0,Var("R0",Imm(64))),LittleEndian(),32)), -Def(Tid(764, "%000002fc"), Attrs([Attr("address","0x724"), -Attr("insn","ldr w0, [sp, #0x1c]")]), Var("R0",Imm(64)), -UNSIGNED(64,Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(28,64)),LittleEndian(),32))), -Def(Tid(770, "%00000302"), Attrs([Attr("address","0x728"), -Attr("insn","cmp w0, #0x0")]), Var("#4",Imm(32)), -PLUS(Extract(31,0,Var("R0",Imm(64))),Int(4294967295,32))), -Def(Tid(775, "%00000307"), Attrs([Attr("address","0x728"), -Attr("insn","cmp w0, #0x0")]), Var("VF",Imm(1)), -NEQ(SIGNED(33,PLUS(Var("#4",Imm(32)),Int(1,32))),PLUS(SIGNED(33,Extract(31,0,Var("R0",Imm(64)))),Int(0,33)))), -Def(Tid(780, "%0000030c"), Attrs([Attr("address","0x728"), -Attr("insn","cmp w0, #0x0")]), Var("CF",Imm(1)), -NEQ(UNSIGNED(33,PLUS(Var("#4",Imm(32)),Int(1,32))),PLUS(UNSIGNED(33,Extract(31,0,Var("R0",Imm(64)))),Int(4294967296,33)))), -Def(Tid(784, "%00000310"), Attrs([Attr("address","0x728"), -Attr("insn","cmp w0, #0x0")]), Var("ZF",Imm(1)), -EQ(PLUS(Var("#4",Imm(32)),Int(1,32)),Int(0,32))), Def(Tid(788, "%00000314"), - Attrs([Attr("address","0x728"), Attr("insn","cmp w0, #0x0")]), - Var("NF",Imm(1)), Extract(31,31,PLUS(Var("#4",Imm(32)),Int(1,32))))]), -Jmps([Goto(Tid(794, "%0000031a"), Attrs([Attr("address","0x72C"), -Attr("insn","b.ne #0xc")]), NEQ(Var("ZF",Imm(1)),Int(1,1)), -Direct(Tid(792, "%00000318"))), Goto(Tid(1_527, "%000005f7"), Attrs([]), - Int(1,1), Direct(Tid(813, "%0000032d")))])), Blk(Tid(813, "%0000032d"), - Attrs([Attr("address","0x730")]), Phis([]), Defs([Def(Tid(816, "%00000330"), - Attrs([Attr("address","0x730"), Attr("insn","mov w0, #0x1")]), - Var("R0",Imm(64)), Int(1,64)), Def(Tid(824, "%00000338"), - Attrs([Attr("address","0x734"), Attr("insn","str w0, [sp, #0x1c]")]), - Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(28,64)),Extract(31,0,Var("R0",Imm(64))),LittleEndian(),32))]), -Jmps([Goto(Tid(1_528, "%000005f8"), Attrs([]), Int(1,1), -Direct(Tid(792, "%00000318")))])), Blk(Tid(792, "%00000318"), - Attrs([Attr("address","0x738")]), Phis([]), Defs([Def(Tid(800, "%00000320"), - Attrs([Attr("address","0x738"), Attr("insn","mov w0, #0x0")]), - Var("R0",Imm(64)), Int(0,64)), Def(Tid(806, "%00000326"), - Attrs([Attr("address","0x73C"), Attr("insn","add sp, sp, #0x20")]), - Var("R31",Imm(64)), PLUS(Var("R31",Imm(64)),Int(32,64)))]), -Jmps([Call(Tid(811, "%0000032b"), Attrs([Attr("address","0x740"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))]))])), -Sub(Tid(1_498, "@register_tm_clones"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x680")]), - "register_tm_clones", Args([Arg(Tid(1_548, "%0000060c"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("register_tm_clones_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(576, "@register_tm_clones"), Attrs([Attr("address","0x680")]), - Phis([]), Defs([Def(Tid(579, "%00000243"), Attrs([Attr("address","0x680"), -Attr("insn","adrp x0, #69632")]), Var("R0",Imm(64)), Int(69632,64)), -Def(Tid(585, "%00000249"), Attrs([Attr("address","0x684"), -Attr("insn","add x0, x0, #0x10")]), Var("R0",Imm(64)), -PLUS(Var("R0",Imm(64)),Int(16,64))), Def(Tid(590, "%0000024e"), - Attrs([Attr("address","0x688"), Attr("insn","adrp x1, #69632")]), - Var("R1",Imm(64)), Int(69632,64)), Def(Tid(596, "%00000254"), - Attrs([Attr("address","0x68C"), Attr("insn","add x1, x1, #0x10")]), - Var("R1",Imm(64)), PLUS(Var("R1",Imm(64)),Int(16,64))), -Def(Tid(603, "%0000025b"), Attrs([Attr("address","0x690"), -Attr("insn","sub x1, x1, x0")]), Var("R1",Imm(64)), -PLUS(PLUS(Var("R1",Imm(64)),NOT(Var("R0",Imm(64)))),Int(1,64))), -Def(Tid(609, "%00000261"), Attrs([Attr("address","0x694"), -Attr("insn","lsr x2, x1, #63")]), Var("R2",Imm(64)), -Concat(Int(0,63),Extract(63,63,Var("R1",Imm(64))))), -Def(Tid(616, "%00000268"), Attrs([Attr("address","0x698"), -Attr("insn","add x1, x2, x1, asr #3")]), Var("R1",Imm(64)), -PLUS(Var("R2",Imm(64)),ARSHIFT(Var("R1",Imm(64)),Int(3,3)))), -Def(Tid(622, "%0000026e"), Attrs([Attr("address","0x69C"), -Attr("insn","asr x1, x1, #1")]), Var("R1",Imm(64)), -SIGNED(64,Extract(63,1,Var("R1",Imm(64)))))]), -Jmps([Goto(Tid(628, "%00000274"), Attrs([Attr("address","0x6A0"), -Attr("insn","cbz x1, #0x18")]), EQ(Var("R1",Imm(64)),Int(0,64)), -Direct(Tid(626, "%00000272"))), Goto(Tid(1_529, "%000005f9"), Attrs([]), - Int(1,1), Direct(Tid(885, "%00000375")))])), Blk(Tid(885, "%00000375"), - Attrs([Attr("address","0x6A4")]), Phis([]), Defs([Def(Tid(888, "%00000378"), - Attrs([Attr("address","0x6A4"), Attr("insn","adrp x2, #65536")]), - Var("R2",Imm(64)), Int(65536,64)), Def(Tid(895, "%0000037f"), - Attrs([Attr("address","0x6A8"), Attr("insn","ldr x2, [x2, #0xff8]")]), - Var("R2",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R2",Imm(64)),Int(4088,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(900, "%00000384"), Attrs([Attr("address","0x6AC"), -Attr("insn","cbz x2, #0xc")]), EQ(Var("R2",Imm(64)),Int(0,64)), -Direct(Tid(626, "%00000272"))), Goto(Tid(1_530, "%000005fa"), Attrs([]), - Int(1,1), Direct(Tid(904, "%00000388")))])), Blk(Tid(626, "%00000272"), - Attrs([Attr("address","0x6B8")]), Phis([]), Defs([]), -Jmps([Call(Tid(634, "%0000027a"), Attrs([Attr("address","0x6B8"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))])), -Blk(Tid(904, "%00000388"), Attrs([Attr("address","0x6B0")]), Phis([]), -Defs([Def(Tid(908, "%0000038c"), Attrs([Attr("address","0x6B0"), -Attr("insn","mov x16, x2")]), Var("R16",Imm(64)), Var("R2",Imm(64)))]), -Jmps([Call(Tid(913, "%00000391"), Attrs([Attr("address","0x6B4"), -Attr("insn","br x16")]), Int(1,1), -(Indirect(Var("R16",Imm(64))),))]))]))]))) \ No newline at end of file diff --git a/src/test/incorrect/iflocal/gcc/iflocal.bir b/src/test/incorrect/iflocal/gcc/iflocal.bir deleted file mode 100644 index c242e5fc0..000000000 --- a/src/test/incorrect/iflocal/gcc/iflocal.bir +++ /dev/null @@ -1,244 +0,0 @@ -000005fb: program -000005c5: sub __cxa_finalize(__cxa_finalize_result) -000005fc: __cxa_finalize_result :: out u32 = low:32[R0] - -00000371: -00000469: R16 := 0x10000 -00000470: R17 := mem[R16 + 0xFB8, el]:u64 -00000476: R16 := R16 + 0xFB8 -0000047b: call R17 with noreturn - -000005c6: sub __do_global_dtors_aux(__do_global_dtors_aux_result) -000005fd: __do_global_dtors_aux_result :: out u32 = low:32[R0] - -0000027e: -00000282: #3 := R31 - 0x20 -00000288: mem := mem with [#3, el]:u64 <- R29 -0000028e: mem := mem with [#3 + 8, el]:u64 <- R30 -00000292: R31 := #3 -00000298: R29 := R31 -000002a0: mem := mem with [R31 + 0x10, el]:u64 <- R19 -000002a5: R19 := 0x11000 -000002ac: R0 := pad:64[mem[R19 + 0x10]] -000002b3: when 31:0[R0] <> 0 goto %000002b1 -000005ef: goto %0000033a - -0000033a: -0000033d: R0 := 0x10000 -00000344: R0 := mem[R0 + 0xFE0, el]:u64 -0000034a: when R0 = 0 goto %00000348 -000005f0: goto %00000361 - -00000361: -00000364: R0 := 0x11000 -0000036b: R0 := mem[R0 + 8, el]:u64 -00000370: R30 := 0x6F0 -00000373: call @__cxa_finalize with return %00000348 - -00000348: -00000350: R30 := 0x6F4 -00000352: call @deregister_tm_clones with return %00000354 - -00000354: -00000357: R0 := 1 -0000035f: mem := mem with [R19 + 0x10] <- 7:0[R0] -000005f1: goto %000002b1 - -000002b1: -000002bb: R19 := mem[R31 + 0x10, el]:u64 -000002c2: R29 := mem[R31, el]:u64 -000002c7: R30 := mem[R31 + 8, el]:u64 -000002cb: R31 := R31 + 0x20 -000002d0: call R30 with noreturn - -000005ca: sub __libc_start_main(__libc_start_main_main, __libc_start_main_arg2, __libc_start_main_arg3, __libc_start_main_auxv, __libc_start_main_result) -000005fe: __libc_start_main_main :: in u64 = R0 -000005ff: __libc_start_main_arg2 :: in u32 = low:32[R1] -00000600: __libc_start_main_arg3 :: in out u64 = R2 -00000601: __libc_start_main_auxv :: in out u64 = R3 -00000602: __libc_start_main_result :: out u32 = low:32[R0] - -000001d7: -00000453: R16 := 0x10000 -0000045a: R17 := mem[R16 + 0xFB0, el]:u64 -00000460: R16 := R16 + 0xFB0 -00000465: call R17 with noreturn - -000005cb: sub _fini(_fini_result) -00000603: _fini_result :: out u32 = low:32[R0] - -0000001f: -00000025: #0 := R31 - 0x10 -0000002b: mem := mem with [#0, el]:u64 <- R29 -00000031: mem := mem with [#0 + 8, el]:u64 <- R30 -00000035: R31 := #0 -0000003b: R29 := R31 -00000042: R29 := mem[R31, el]:u64 -00000047: R30 := mem[R31 + 8, el]:u64 -0000004b: R31 := R31 + 0x10 -00000050: call R30 with noreturn - -000005cc: sub _init(_init_result) -00000604: _init_result :: out u32 = low:32[R0] - -0000051b: -00000521: #6 := R31 - 0x10 -00000527: mem := mem with [#6, el]:u64 <- R29 -0000052d: mem := mem with [#6 + 8, el]:u64 <- R30 -00000531: R31 := #6 -00000537: R29 := R31 -0000053c: R30 := 0x590 -0000053e: call @call_weak_fn with return %00000540 - -00000540: -00000545: R29 := mem[R31, el]:u64 -0000054a: R30 := mem[R31 + 8, el]:u64 -0000054e: R31 := R31 + 0x10 -00000553: call R30 with noreturn - -000005cd: sub _start(_start_result) -00000605: _start_result :: out u32 = low:32[R0] - -00000198: -0000019d: R29 := 0 -000001a2: R30 := 0 -000001a8: R5 := R0 -000001af: R1 := mem[R31, el]:u64 -000001b5: R2 := R31 + 8 -000001bb: R6 := R31 -000001c0: R0 := 0x10000 -000001c7: R0 := mem[R0 + 0xFF0, el]:u64 -000001cc: R3 := 0 -000001d1: R4 := 0 -000001d6: R30 := 0x630 -000001d9: call @__libc_start_main with return %000001db - -000001db: -000001de: R30 := 0x634 -000001e1: call @abort with return %000005f2 - -000005f2: -000005f3: call @call_weak_fn with noreturn - -000005d0: sub abort() - - -000001df: -00000495: R16 := 0x10000 -0000049c: R17 := mem[R16 + 0xFC8, el]:u64 -000004a2: R16 := R16 + 0xFC8 -000004a7: call R17 with noreturn - -000005d1: sub call_weak_fn(call_weak_fn_result) -00000606: call_weak_fn_result :: out u32 = low:32[R0] - -000001e3: -000001e6: R0 := 0x10000 -000001ed: R0 := mem[R0 + 0xFE8, el]:u64 -000001f3: when R0 = 0 goto %000001f1 -000005f4: goto %000003b1 - -000001f1: -000001f9: call R30 with noreturn - -000003b1: -000003b4: goto @__gmon_start__ - -000003b2: -0000047f: R16 := 0x10000 -00000486: R17 := mem[R16 + 0xFC0, el]:u64 -0000048c: R16 := R16 + 0xFC0 -00000491: call R17 with noreturn - -000005d3: sub deregister_tm_clones(deregister_tm_clones_result) -00000607: deregister_tm_clones_result :: out u32 = low:32[R0] - -000001ff: -00000202: R0 := 0x11000 -00000208: R0 := R0 + 0x10 -0000020d: R1 := 0x11000 -00000213: R1 := R1 + 0x10 -00000219: #1 := ~R0 -0000021e: #2 := R1 + ~R0 -00000224: VF := extend:65[#2 + 1] <> extend:65[R1] + extend:65[#1] + 1 -0000022a: CF := pad:65[#2 + 1] <> pad:65[R1] + pad:65[#1] + 1 -0000022e: ZF := #2 + 1 = 0 -00000232: NF := 63:63[#2 + 1] -00000238: when ZF goto %00000236 -000005f5: goto %00000393 - -00000393: -00000396: R1 := 0x10000 -0000039d: R1 := mem[R1 + 0xFD8, el]:u64 -000003a2: when R1 = 0 goto %00000236 -000005f6: goto %000003a6 - -00000236: -0000023e: call R30 with noreturn - -000003a6: -000003aa: R16 := R1 -000003af: call R16 with noreturn - -000005d6: sub frame_dummy(frame_dummy_result) -00000608: frame_dummy_result :: out u32 = low:32[R0] - -000002d6: -000002d8: call @register_tm_clones with noreturn - -000005d7: sub main(main_argc, main_argv, main_result) -00000609: main_argc :: in u32 = low:32[R0] -0000060a: main_argv :: in out u64 = R1 -0000060b: main_result :: out u32 = low:32[R0] - -000002da: -000002de: R31 := R31 - 0x20 -000002e6: mem := mem with [R31 + 0xC, el]:u32 <- 31:0[R0] -000002ed: R0 := pad:64[mem[R31 + 0xC, el]:u32] -000002f5: mem := mem with [R31 + 0x1C, el]:u32 <- 31:0[R0] -000002fc: R0 := pad:64[mem[R31 + 0x1C, el]:u32] -00000302: #4 := 31:0[R0] - 1 -00000307: VF := extend:33[#4 + 1] <> extend:33[31:0[R0]] + 0 -0000030c: CF := pad:33[#4 + 1] <> pad:33[31:0[R0]] - 0x100000000 -00000310: ZF := #4 + 1 = 0 -00000314: NF := 31:31[#4 + 1] -0000031a: when ZF <> 1 goto %00000318 -000005f7: goto %0000032d - -0000032d: -00000330: R0 := 1 -00000338: mem := mem with [R31 + 0x1C, el]:u32 <- 31:0[R0] -000005f8: goto %00000318 - -00000318: -00000320: R0 := 0 -00000326: R31 := R31 + 0x20 -0000032b: call R30 with noreturn - -000005da: sub register_tm_clones(register_tm_clones_result) -0000060c: register_tm_clones_result :: out u32 = low:32[R0] - -00000240: -00000243: R0 := 0x11000 -00000249: R0 := R0 + 0x10 -0000024e: R1 := 0x11000 -00000254: R1 := R1 + 0x10 -0000025b: R1 := R1 + ~R0 + 1 -00000261: R2 := 0.63:63[R1] -00000268: R1 := R2 + (R1 ~>> 3) -0000026e: R1 := extend:64[63:1[R1]] -00000274: when R1 = 0 goto %00000272 -000005f9: goto %00000375 - -00000375: -00000378: R2 := 0x10000 -0000037f: R2 := mem[R2 + 0xFF8, el]:u64 -00000384: when R2 = 0 goto %00000272 -000005fa: goto %00000388 - -00000272: -0000027a: call R30 with noreturn - -00000388: -0000038c: R16 := R2 -00000391: call R16 with noreturn diff --git a/src/test/incorrect/iflocal/gcc/iflocal.expected b/src/test/incorrect/iflocal/gcc/iflocal.expected index 155dbac4a..9b4d3763f 100644 --- a/src/test/incorrect/iflocal/gcc/iflocal.expected +++ b/src/test/incorrect/iflocal/gcc/iflocal.expected @@ -2,33 +2,18 @@ var {:extern} CF: bv1; var {:extern} Gamma_CF: bool; var {:extern} Gamma_NF: bool; var {:extern} Gamma_R0: bool; -var {:extern} Gamma_R31: bool; var {:extern} Gamma_VF: bool; var {:extern} Gamma_ZF: bool; var {:extern} Gamma_mem: [bv64]bool; -var {:extern} Gamma_stack: [bv64]bool; var {:extern} NF: bv1; var {:extern} R0: bv64; -var {:extern} R31: bv64; var {:extern} VF: bv1; var {:extern} ZF: bv1; var {:extern} mem: [bv64]bv8; -var {:extern} stack: [bv64]bv8; -function {:extern} {:bvbuiltin "bvadd"} bvadd32(bv32, bv32) returns (bv32); -function {:extern} {:bvbuiltin "bvadd"} bvadd33(bv33, bv33) returns (bv33); function {:extern} {:bvbuiltin "bvadd"} bvadd64(bv64, bv64) returns (bv64); function {:extern} {:bvbuiltin "bvcomp"} bvcomp1(bv1, bv1) returns (bv1); function {:extern} {:bvbuiltin "bvcomp"} bvcomp32(bv32, bv32) returns (bv1); -function {:extern} {:bvbuiltin "bvcomp"} bvcomp33(bv33, bv33) returns (bv1); function {:extern} {:bvbuiltin "bvnot"} bvnot1(bv1) returns (bv1); -function {:extern} gamma_load32(gammaMap: [bv64]bool, index: bv64) returns (bool) { - (gammaMap[bvadd64(index, 3bv64)] && (gammaMap[bvadd64(index, 2bv64)] && (gammaMap[bvadd64(index, 1bv64)] && gammaMap[index]))) -} - -function {:extern} gamma_store32(gammaMap: [bv64]bool, index: bv64, value: bool) returns ([bv64]bool) { - gammaMap[index := value][bvadd64(index, 1bv64) := value][bvadd64(index, 2bv64) := value][bvadd64(index, 3bv64) := value] -} - function {:extern} memory_load32_le(memory: [bv64]bv8, index: bv64) returns (bv32) { (memory[bvadd64(index, 3bv64)] ++ (memory[bvadd64(index, 2bv64)] ++ (memory[bvadd64(index, 1bv64)] ++ memory[index]))) } @@ -37,22 +22,12 @@ function {:extern} memory_load64_le(memory: [bv64]bv8, index: bv64) returns (bv6 (memory[bvadd64(index, 7bv64)] ++ (memory[bvadd64(index, 6bv64)] ++ (memory[bvadd64(index, 5bv64)] ++ (memory[bvadd64(index, 4bv64)] ++ (memory[bvadd64(index, 3bv64)] ++ (memory[bvadd64(index, 2bv64)] ++ (memory[bvadd64(index, 1bv64)] ++ memory[index]))))))) } -function {:extern} memory_store32_le(memory: [bv64]bv8, index: bv64, value: bv32) returns ([bv64]bv8) { - memory[index := value[8:0]][bvadd64(index, 1bv64) := value[16:8]][bvadd64(index, 2bv64) := value[24:16]][bvadd64(index, 3bv64) := value[32:24]] -} - -function {:extern} {:bvbuiltin "sign_extend 1"} sign_extend1_32(bv32) returns (bv33); -function {:extern} {:bvbuiltin "zero_extend 1"} zero_extend1_32(bv32) returns (bv33); function {:extern} {:bvbuiltin "zero_extend 32"} zero_extend32_32(bv32) returns (bv64); procedure {:extern} rely(); modifies Gamma_mem, mem; ensures (Gamma_mem == old(Gamma_mem)); ensures (mem == old(mem)); - free ensures (memory_load32_le(mem, 1880bv64) == 131073bv32); - free ensures (memory_load64_le(mem, 69016bv64) == 1808bv64); - free ensures (memory_load64_le(mem, 69024bv64) == 1728bv64); - free ensures (memory_load64_le(mem, 69616bv64) == 1812bv64); - free ensures (memory_load64_le(mem, 69640bv64) == 69640bv64); + free ensures (memory_load32_le(mem, 4196312bv64) == 131073bv32); procedure {:extern} rely_transitive(); modifies Gamma_mem, mem; @@ -70,70 +45,44 @@ procedure {:extern} rely_reflexive(); procedure {:extern} guarantee_reflexive(); modifies Gamma_mem, mem; -procedure main_1812(); - modifies CF, Gamma_CF, Gamma_NF, Gamma_R0, Gamma_R31, Gamma_VF, Gamma_ZF, Gamma_stack, NF, R0, R31, VF, ZF, stack; - free requires (memory_load64_le(mem, 69632bv64) == 0bv64); - free requires (memory_load64_le(mem, 69640bv64) == 69640bv64); - free requires (memory_load32_le(mem, 1880bv64) == 131073bv32); - free requires (memory_load64_le(mem, 69016bv64) == 1808bv64); - free requires (memory_load64_le(mem, 69024bv64) == 1728bv64); - free requires (memory_load64_le(mem, 69616bv64) == 1812bv64); - free requires (memory_load64_le(mem, 69640bv64) == 69640bv64); - free ensures (Gamma_R31 == old(Gamma_R31)); - free ensures (R31 == old(R31)); - free ensures (memory_load32_le(mem, 1880bv64) == 131073bv32); - free ensures (memory_load64_le(mem, 69016bv64) == 1808bv64); - free ensures (memory_load64_le(mem, 69024bv64) == 1728bv64); - free ensures (memory_load64_le(mem, 69616bv64) == 1812bv64); - free ensures (memory_load64_le(mem, 69640bv64) == 69640bv64); +procedure main(); + modifies CF, Gamma_CF, Gamma_NF, Gamma_R0, Gamma_VF, Gamma_ZF, NF, R0, VF, ZF; + free requires (memory_load64_le(mem, 4325376bv64) == 0bv64); + free requires (memory_load64_le(mem, 4325384bv64) == 0bv64); + free requires (memory_load32_le(mem, 4196312bv64) == 131073bv32); + free ensures (memory_load32_le(mem, 4196312bv64) == 131073bv32); -implementation main_1812() +implementation main() { - var #4: bv32; - var Gamma_#4: bool; - var Gamma_load18: bool; - var Gamma_load19: bool; - var load18: bv32; - var load19: bv32; lmain: assume {:captureState "lmain"} true; - R31, Gamma_R31 := bvadd64(R31, 18446744073709551584bv64), Gamma_R31; - stack, Gamma_stack := memory_store32_le(stack, bvadd64(R31, 12bv64), R0[32:0]), gamma_store32(Gamma_stack, bvadd64(R31, 12bv64), Gamma_R0); - assume {:captureState "%000002e6"} true; - load18, Gamma_load18 := memory_load32_le(stack, bvadd64(R31, 12bv64)), gamma_load32(Gamma_stack, bvadd64(R31, 12bv64)); - R0, Gamma_R0 := zero_extend32_32(load18), Gamma_load18; - stack, Gamma_stack := memory_store32_le(stack, bvadd64(R31, 28bv64), R0[32:0]), gamma_store32(Gamma_stack, bvadd64(R31, 28bv64), Gamma_R0); - assume {:captureState "%000002f5"} true; - load19, Gamma_load19 := memory_load32_le(stack, bvadd64(R31, 28bv64)), gamma_load32(Gamma_stack, bvadd64(R31, 28bv64)); - R0, Gamma_R0 := zero_extend32_32(load19), Gamma_load19; - #4, Gamma_#4 := bvadd32(R0[32:0], 4294967295bv32), Gamma_R0; - VF, Gamma_VF := bvnot1(bvcomp33(sign_extend1_32(bvadd32(#4, 1bv32)), bvadd33(sign_extend1_32(R0[32:0]), 0bv33))), (Gamma_R0 && Gamma_#4); - CF, Gamma_CF := bvnot1(bvcomp33(zero_extend1_32(bvadd32(#4, 1bv32)), bvadd33(zero_extend1_32(R0[32:0]), 4294967296bv33))), (Gamma_R0 && Gamma_#4); - ZF, Gamma_ZF := bvcomp32(bvadd32(#4, 1bv32), 0bv32), Gamma_#4; - NF, Gamma_NF := bvadd32(#4, 1bv32)[32:31], Gamma_#4; + VF, Gamma_VF := 0bv1, true; + CF, Gamma_CF := 1bv1, true; + ZF, Gamma_ZF := bvcomp32(R0[32:0], 0bv32), Gamma_R0; + NF, Gamma_NF := R0[32:31], Gamma_R0; assert Gamma_ZF; - goto lmain_goto_l00000318, lmain_goto_l0000032d; - lmain_goto_l0000032d: - assume {:captureState "lmain_goto_l0000032d"} true; - assume (bvnot1(bvcomp1(ZF, 1bv1)) == 0bv1); + goto lmain_goto_l0000025c, lmain_goto_l00000264; + l00000264: + assume {:captureState "l00000264"} true; R0, Gamma_R0 := 1bv64, true; - stack, Gamma_stack := memory_store32_le(stack, bvadd64(R31, 28bv64), R0[32:0]), gamma_store32(Gamma_stack, bvadd64(R31, 28bv64), Gamma_R0); - assume {:captureState "%00000338"} true; - goto l0000032d; - l0000032d: - assume {:captureState "l0000032d"} true; - goto l00000318; - lmain_goto_l00000318: - assume {:captureState "lmain_goto_l00000318"} true; + goto l00000270; + l0000025c: + assume {:captureState "l0000025c"} true; + R0, Gamma_R0 := zero_extend32_32(R0[32:0]), Gamma_R0; + goto l00000270; + l00000270: + assume {:captureState "l00000270"} true; + goto main_basil_return; + lmain_goto_l0000025c: + assume {:captureState "lmain_goto_l0000025c"} true; assume (bvnot1(bvcomp1(ZF, 1bv1)) != 0bv1); - goto l00000318; - l00000318: - assume {:captureState "l00000318"} true; - R0, Gamma_R0 := 0bv64, true; - R31, Gamma_R31 := bvadd64(R31, 32bv64), Gamma_R31; - goto main_1812_basil_return; - main_1812_basil_return: - assume {:captureState "main_1812_basil_return"} true; + goto l0000025c; + lmain_goto_l00000264: + assume {:captureState "lmain_goto_l00000264"} true; + assume (bvnot1(bvcomp1(ZF, 1bv1)) == 0bv1); + goto l00000264; + main_basil_return: + assume {:captureState "main_basil_return"} true; return; } diff --git a/src/test/incorrect/iflocal/gcc/iflocal.gts b/src/test/incorrect/iflocal/gcc/iflocal.gts deleted file mode 100644 index 1419ba7bb..000000000 Binary files a/src/test/incorrect/iflocal/gcc/iflocal.gts and /dev/null differ diff --git a/src/test/incorrect/iflocal/gcc/iflocal.md5sum b/src/test/incorrect/iflocal/gcc/iflocal.md5sum new file mode 100644 index 000000000..101143443 --- /dev/null +++ b/src/test/incorrect/iflocal/gcc/iflocal.md5sum @@ -0,0 +1,5 @@ +45c5f8851836f56e668b214e138b4401 incorrect/iflocal/gcc/a.out +49838137de38fd15701bab76ad89d2bc incorrect/iflocal/gcc/iflocal.adt +b6d8cef9c2471c88027c27cc8d0cca42 incorrect/iflocal/gcc/iflocal.bir +c3f196ed63ee15c028a1a91422ea5361 incorrect/iflocal/gcc/iflocal.relf +a6063732b2306343106ae73ce6835eea incorrect/iflocal/gcc/iflocal.gts diff --git a/src/test/incorrect/iflocal/gcc/iflocal.relf b/src/test/incorrect/iflocal/gcc/iflocal.relf deleted file mode 100644 index 54526f651..000000000 --- a/src/test/incorrect/iflocal/gcc/iflocal.relf +++ /dev/null @@ -1,119 +0,0 @@ - -Relocation section '.rela.dyn' at offset 0x460 contains 8 entries: - Offset Info Type Symbol's Value Symbol's Name + Addend -0000000000010d98 0000000000000403 R_AARCH64_RELATIVE 710 -0000000000010da0 0000000000000403 R_AARCH64_RELATIVE 6c0 -0000000000010ff0 0000000000000403 R_AARCH64_RELATIVE 714 -0000000000011008 0000000000000403 R_AARCH64_RELATIVE 11008 -0000000000010fd8 0000000400000401 R_AARCH64_GLOB_DAT 0000000000000000 _ITM_deregisterTMCloneTable + 0 -0000000000010fe0 0000000500000401 R_AARCH64_GLOB_DAT 0000000000000000 __cxa_finalize@GLIBC_2.17 + 0 -0000000000010fe8 0000000600000401 R_AARCH64_GLOB_DAT 0000000000000000 __gmon_start__ + 0 -0000000000010ff8 0000000800000401 R_AARCH64_GLOB_DAT 0000000000000000 _ITM_registerTMCloneTable + 0 - -Relocation section '.rela.plt' at offset 0x520 contains 4 entries: - Offset Info Type Symbol's Value Symbol's Name + Addend -0000000000010fb0 0000000300000402 R_AARCH64_JUMP_SLOT 0000000000000000 __libc_start_main@GLIBC_2.34 + 0 -0000000000010fb8 0000000500000402 R_AARCH64_JUMP_SLOT 0000000000000000 __cxa_finalize@GLIBC_2.17 + 0 -0000000000010fc0 0000000600000402 R_AARCH64_JUMP_SLOT 0000000000000000 __gmon_start__ + 0 -0000000000010fc8 0000000700000402 R_AARCH64_JUMP_SLOT 0000000000000000 abort@GLIBC_2.17 + 0 - -Symbol table '.dynsym' contains 9 entries: - Num: Value Size Type Bind Vis Ndx Name - 0: 0000000000000000 0 NOTYPE LOCAL DEFAULT UND - 1: 0000000000000580 0 SECTION LOCAL DEFAULT 11 .init - 2: 0000000000011000 0 SECTION LOCAL DEFAULT 22 .data - 3: 0000000000000000 0 FUNC GLOBAL DEFAULT UND __libc_start_main@GLIBC_2.34 (2) - 4: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_deregisterTMCloneTable - 5: 0000000000000000 0 FUNC WEAK DEFAULT UND __cxa_finalize@GLIBC_2.17 (3) - 6: 0000000000000000 0 NOTYPE WEAK DEFAULT UND __gmon_start__ - 7: 0000000000000000 0 FUNC GLOBAL DEFAULT UND abort@GLIBC_2.17 (3) - 8: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_registerTMCloneTable - -Symbol table '.symtab' contains 86 entries: - Num: Value Size Type Bind Vis Ndx Name - 0: 0000000000000000 0 NOTYPE LOCAL DEFAULT UND - 1: 0000000000000238 0 SECTION LOCAL DEFAULT 1 .interp - 2: 0000000000000254 0 SECTION LOCAL DEFAULT 2 .note.gnu.build-id - 3: 0000000000000278 0 SECTION LOCAL DEFAULT 3 .note.ABI-tag - 4: 0000000000000298 0 SECTION LOCAL DEFAULT 4 .gnu.hash - 5: 00000000000002b8 0 SECTION LOCAL DEFAULT 5 .dynsym - 6: 0000000000000390 0 SECTION LOCAL DEFAULT 6 .dynstr - 7: 000000000000041e 0 SECTION LOCAL DEFAULT 7 .gnu.version - 8: 0000000000000430 0 SECTION LOCAL DEFAULT 8 .gnu.version_r - 9: 0000000000000460 0 SECTION LOCAL DEFAULT 9 .rela.dyn - 10: 0000000000000520 0 SECTION LOCAL DEFAULT 10 .rela.plt - 11: 0000000000000580 0 SECTION LOCAL DEFAULT 11 .init - 12: 00000000000005a0 0 SECTION LOCAL DEFAULT 12 .plt - 13: 0000000000000600 0 SECTION LOCAL DEFAULT 13 .text - 14: 0000000000000744 0 SECTION LOCAL DEFAULT 14 .fini - 15: 0000000000000758 0 SECTION LOCAL DEFAULT 15 .rodata - 16: 000000000000075c 0 SECTION LOCAL DEFAULT 16 .eh_frame_hdr - 17: 0000000000000798 0 SECTION LOCAL DEFAULT 17 .eh_frame - 18: 0000000000010d98 0 SECTION LOCAL DEFAULT 18 .init_array - 19: 0000000000010da0 0 SECTION LOCAL DEFAULT 19 .fini_array - 20: 0000000000010da8 0 SECTION LOCAL DEFAULT 20 .dynamic - 21: 0000000000010f98 0 SECTION LOCAL DEFAULT 21 .got - 22: 0000000000011000 0 SECTION LOCAL DEFAULT 22 .data - 23: 0000000000011010 0 SECTION LOCAL DEFAULT 23 .bss - 24: 0000000000000000 0 SECTION LOCAL DEFAULT 24 .comment - 25: 0000000000000000 0 FILE LOCAL DEFAULT ABS Scrt1.o - 26: 0000000000000278 0 NOTYPE LOCAL DEFAULT 3 $d - 27: 0000000000000278 32 OBJECT LOCAL DEFAULT 3 __abi_tag - 28: 0000000000000600 0 NOTYPE LOCAL DEFAULT 13 $x - 29: 00000000000007ac 0 NOTYPE LOCAL DEFAULT 17 $d - 30: 0000000000000758 0 NOTYPE LOCAL DEFAULT 15 $d - 31: 0000000000000000 0 FILE LOCAL DEFAULT ABS crti.o - 32: 0000000000000634 0 NOTYPE LOCAL DEFAULT 13 $x - 33: 0000000000000634 20 FUNC LOCAL DEFAULT 13 call_weak_fn - 34: 0000000000000580 0 NOTYPE LOCAL DEFAULT 11 $x - 35: 0000000000000744 0 NOTYPE LOCAL DEFAULT 14 $x - 36: 0000000000000000 0 FILE LOCAL DEFAULT ABS crtn.o - 37: 0000000000000590 0 NOTYPE LOCAL DEFAULT 11 $x - 38: 0000000000000750 0 NOTYPE LOCAL DEFAULT 14 $x - 39: 0000000000000000 0 FILE LOCAL DEFAULT ABS crtstuff.c - 40: 0000000000000650 0 NOTYPE LOCAL DEFAULT 13 $x - 41: 0000000000000650 0 FUNC LOCAL DEFAULT 13 deregister_tm_clones - 42: 0000000000000680 0 FUNC LOCAL DEFAULT 13 register_tm_clones - 43: 0000000000011008 0 NOTYPE LOCAL DEFAULT 22 $d - 44: 00000000000006c0 0 FUNC LOCAL DEFAULT 13 __do_global_dtors_aux - 45: 0000000000011010 1 OBJECT LOCAL DEFAULT 23 completed.0 - 46: 0000000000010da0 0 NOTYPE LOCAL DEFAULT 19 $d - 47: 0000000000010da0 0 OBJECT LOCAL DEFAULT 19 __do_global_dtors_aux_fini_array_entry - 48: 0000000000000710 0 FUNC LOCAL DEFAULT 13 frame_dummy - 49: 0000000000010d98 0 NOTYPE LOCAL DEFAULT 18 $d - 50: 0000000000010d98 0 OBJECT LOCAL DEFAULT 18 __frame_dummy_init_array_entry - 51: 00000000000007c0 0 NOTYPE LOCAL DEFAULT 17 $d - 52: 0000000000011010 0 NOTYPE LOCAL DEFAULT 23 $d - 53: 0000000000000000 0 FILE LOCAL DEFAULT ABS iflocal.c - 54: 0000000000000714 0 NOTYPE LOCAL DEFAULT 13 $x - 55: 0000000000000820 0 NOTYPE LOCAL DEFAULT 17 $d - 56: 0000000000000000 0 FILE LOCAL DEFAULT ABS crtstuff.c - 57: 0000000000000838 0 NOTYPE LOCAL DEFAULT 17 $d - 58: 0000000000000838 0 OBJECT LOCAL DEFAULT 17 __FRAME_END__ - 59: 0000000000000000 0 FILE LOCAL DEFAULT ABS - 60: 0000000000010da8 0 OBJECT LOCAL DEFAULT ABS _DYNAMIC - 61: 000000000000075c 0 NOTYPE LOCAL DEFAULT 16 __GNU_EH_FRAME_HDR - 62: 0000000000010fd0 0 OBJECT LOCAL DEFAULT ABS _GLOBAL_OFFSET_TABLE_ - 63: 00000000000005a0 0 NOTYPE LOCAL DEFAULT 12 $x - 64: 0000000000000000 0 FUNC GLOBAL DEFAULT UND __libc_start_main@GLIBC_2.34 - 65: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_deregisterTMCloneTable - 66: 0000000000011000 0 NOTYPE WEAK DEFAULT 22 data_start - 67: 0000000000011010 0 NOTYPE GLOBAL DEFAULT 23 __bss_start__ - 68: 0000000000000000 0 FUNC WEAK DEFAULT UND __cxa_finalize@GLIBC_2.17 - 69: 0000000000011018 0 NOTYPE GLOBAL DEFAULT 23 _bss_end__ - 70: 0000000000011010 0 NOTYPE GLOBAL DEFAULT 22 _edata - 71: 0000000000000744 0 FUNC GLOBAL HIDDEN 14 _fini - 72: 0000000000011018 0 NOTYPE GLOBAL DEFAULT 23 __bss_end__ - 73: 0000000000011000 0 NOTYPE GLOBAL DEFAULT 22 __data_start - 74: 0000000000000000 0 NOTYPE WEAK DEFAULT UND __gmon_start__ - 75: 0000000000011008 0 OBJECT GLOBAL HIDDEN 22 __dso_handle - 76: 0000000000000000 0 FUNC GLOBAL DEFAULT UND abort@GLIBC_2.17 - 77: 0000000000000758 4 OBJECT GLOBAL DEFAULT 15 _IO_stdin_used - 78: 0000000000011018 0 NOTYPE GLOBAL DEFAULT 23 _end - 79: 0000000000000600 52 FUNC GLOBAL DEFAULT 13 _start - 80: 0000000000011018 0 NOTYPE GLOBAL DEFAULT 23 __end__ - 81: 0000000000011010 0 NOTYPE GLOBAL DEFAULT 23 __bss_start - 82: 0000000000000714 48 FUNC GLOBAL DEFAULT 13 main - 83: 0000000000011010 0 OBJECT GLOBAL HIDDEN 22 __TMC_END__ - 84: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_registerTMCloneTable - 85: 0000000000000580 0 FUNC GLOBAL HIDDEN 11 _init diff --git a/src/test/incorrect/iflocal/gcc/iflocal_gtirb.expected b/src/test/incorrect/iflocal/gcc/iflocal_gtirb.expected index d3b2dca24..b531c698b 100644 --- a/src/test/incorrect/iflocal/gcc/iflocal_gtirb.expected +++ b/src/test/incorrect/iflocal/gcc/iflocal_gtirb.expected @@ -2,32 +2,16 @@ var {:extern} CF: bv1; var {:extern} Gamma_CF: bool; var {:extern} Gamma_NF: bool; var {:extern} Gamma_R0: bool; -var {:extern} Gamma_R31: bool; var {:extern} Gamma_VF: bool; var {:extern} Gamma_ZF: bool; var {:extern} Gamma_mem: [bv64]bool; -var {:extern} Gamma_stack: [bv64]bool; var {:extern} NF: bv1; var {:extern} R0: bv64; -var {:extern} R31: bv64; var {:extern} VF: bv1; var {:extern} ZF: bv1; var {:extern} mem: [bv64]bv8; -var {:extern} stack: [bv64]bv8; -function {:extern} {:bvbuiltin "bvadd"} bvadd32(bv32, bv32) returns (bv32); -function {:extern} {:bvbuiltin "bvadd"} bvadd33(bv33, bv33) returns (bv33); function {:extern} {:bvbuiltin "bvadd"} bvadd64(bv64, bv64) returns (bv64); function {:extern} {:bvbuiltin "bvcomp"} bvcomp32(bv32, bv32) returns (bv1); -function {:extern} {:bvbuiltin "bvcomp"} bvcomp33(bv33, bv33) returns (bv1); -function {:extern} {:bvbuiltin "bvnot"} bvnot1(bv1) returns (bv1); -function {:extern} gamma_load32(gammaMap: [bv64]bool, index: bv64) returns (bool) { - (gammaMap[bvadd64(index, 3bv64)] && (gammaMap[bvadd64(index, 2bv64)] && (gammaMap[bvadd64(index, 1bv64)] && gammaMap[index]))) -} - -function {:extern} gamma_store32(gammaMap: [bv64]bool, index: bv64, value: bool) returns ([bv64]bool) { - gammaMap[index := value][bvadd64(index, 1bv64) := value][bvadd64(index, 2bv64) := value][bvadd64(index, 3bv64) := value] -} - function {:extern} memory_load32_le(memory: [bv64]bv8, index: bv64) returns (bv32) { (memory[bvadd64(index, 3bv64)] ++ (memory[bvadd64(index, 2bv64)] ++ (memory[bvadd64(index, 1bv64)] ++ memory[index]))) } @@ -36,21 +20,12 @@ function {:extern} memory_load64_le(memory: [bv64]bv8, index: bv64) returns (bv6 (memory[bvadd64(index, 7bv64)] ++ (memory[bvadd64(index, 6bv64)] ++ (memory[bvadd64(index, 5bv64)] ++ (memory[bvadd64(index, 4bv64)] ++ (memory[bvadd64(index, 3bv64)] ++ (memory[bvadd64(index, 2bv64)] ++ (memory[bvadd64(index, 1bv64)] ++ memory[index]))))))) } -function {:extern} memory_store32_le(memory: [bv64]bv8, index: bv64, value: bv32) returns ([bv64]bv8) { - memory[index := value[8:0]][bvadd64(index, 1bv64) := value[16:8]][bvadd64(index, 2bv64) := value[24:16]][bvadd64(index, 3bv64) := value[32:24]] -} - -function {:extern} {:bvbuiltin "zero_extend 1"} zero_extend1_32(bv32) returns (bv33); function {:extern} {:bvbuiltin "zero_extend 32"} zero_extend32_32(bv32) returns (bv64); procedure {:extern} rely(); modifies Gamma_mem, mem; ensures (Gamma_mem == old(Gamma_mem)); ensures (mem == old(mem)); - free ensures (memory_load32_le(mem, 1880bv64) == 131073bv32); - free ensures (memory_load64_le(mem, 69016bv64) == 1808bv64); - free ensures (memory_load64_le(mem, 69024bv64) == 1728bv64); - free ensures (memory_load64_le(mem, 69616bv64) == 1812bv64); - free ensures (memory_load64_le(mem, 69640bv64) == 69640bv64); + free ensures (memory_load32_le(mem, 4196312bv64) == 131073bv32); procedure {:extern} rely_transitive(); modifies Gamma_mem, mem; @@ -68,73 +43,35 @@ procedure {:extern} rely_reflexive(); procedure {:extern} guarantee_reflexive(); modifies Gamma_mem, mem; -procedure main_1812(); - modifies CF, Gamma_CF, Gamma_NF, Gamma_R0, Gamma_R31, Gamma_VF, Gamma_ZF, Gamma_stack, NF, R0, R31, VF, ZF, stack; - free requires (memory_load64_le(mem, 69632bv64) == 0bv64); - free requires (memory_load64_le(mem, 69640bv64) == 69640bv64); - free requires (memory_load32_le(mem, 1880bv64) == 131073bv32); - free requires (memory_load64_le(mem, 69016bv64) == 1808bv64); - free requires (memory_load64_le(mem, 69024bv64) == 1728bv64); - free requires (memory_load64_le(mem, 69616bv64) == 1812bv64); - free requires (memory_load64_le(mem, 69640bv64) == 69640bv64); - free ensures (Gamma_R31 == old(Gamma_R31)); - free ensures (R31 == old(R31)); - free ensures (memory_load32_le(mem, 1880bv64) == 131073bv32); - free ensures (memory_load64_le(mem, 69016bv64) == 1808bv64); - free ensures (memory_load64_le(mem, 69024bv64) == 1728bv64); - free ensures (memory_load64_le(mem, 69616bv64) == 1812bv64); - free ensures (memory_load64_le(mem, 69640bv64) == 69640bv64); +procedure main(); + modifies CF, Gamma_CF, Gamma_NF, Gamma_R0, Gamma_VF, Gamma_ZF, NF, R0, VF, ZF; + free requires (memory_load64_le(mem, 4325376bv64) == 0bv64); + free requires (memory_load64_le(mem, 4325384bv64) == 0bv64); + free requires (memory_load32_le(mem, 4196312bv64) == 131073bv32); + free ensures (memory_load32_le(mem, 4196312bv64) == 131073bv32); -implementation main_1812() +implementation main() { - var Cse0__5_1_5: bv32; - var Gamma_Cse0__5_1_5: bool; - var Gamma_load3: bool; - var Gamma_load4: bool; - var Gamma_load5: bool; - var load3: bv32; - var load4: bv32; - var load5: bv32; - main_1812__0__JHsGwNfGRCOpiUZHeubweA: - assume {:captureState "main_1812__0__JHsGwNfGRCOpiUZHeubweA"} true; - R31, Gamma_R31 := bvadd64(R31, 18446744073709551584bv64), Gamma_R31; - stack, Gamma_stack := memory_store32_le(stack, bvadd64(R31, 12bv64), R0[32:0]), gamma_store32(Gamma_stack, bvadd64(R31, 12bv64), Gamma_R0); - assume {:captureState "1816_0"} true; - load4, Gamma_load4 := memory_load32_le(stack, bvadd64(R31, 12bv64)), gamma_load32(Gamma_stack, bvadd64(R31, 12bv64)); - R0, Gamma_R0 := zero_extend32_32(load4), Gamma_load4; - stack, Gamma_stack := memory_store32_le(stack, bvadd64(R31, 28bv64), R0[32:0]), gamma_store32(Gamma_stack, bvadd64(R31, 28bv64), Gamma_R0); - assume {:captureState "1824_0"} true; - load5, Gamma_load5 := memory_load32_le(stack, bvadd64(R31, 28bv64)), gamma_load32(Gamma_stack, bvadd64(R31, 28bv64)); - R0, Gamma_R0 := zero_extend32_32(load5), Gamma_load5; - Cse0__5_1_5, Gamma_Cse0__5_1_5 := bvadd32(R0[32:0], 0bv32), Gamma_R0; - VF, Gamma_VF := bvnot1(bvcomp32(Cse0__5_1_5, Cse0__5_1_5)), Gamma_Cse0__5_1_5; - CF, Gamma_CF := bvnot1(bvcomp33(zero_extend1_32(Cse0__5_1_5), bvadd33(zero_extend1_32(R0[32:0]), 4294967296bv33))), (Gamma_R0 && Gamma_Cse0__5_1_5); - ZF, Gamma_ZF := bvcomp32(Cse0__5_1_5, 0bv32), Gamma_Cse0__5_1_5; - NF, Gamma_NF := Cse0__5_1_5[32:31], Gamma_Cse0__5_1_5; + $main$__0__$cegbDVc9S6m8Z0kHHU8BZQ: + assume {:captureState "$main$__0__$cegbDVc9S6m8Z0kHHU8BZQ"} true; + VF, Gamma_VF := 0bv1, true; + CF, Gamma_CF := 1bv1, true; + ZF, Gamma_ZF := bvcomp32(R0[32:0], 0bv32), Gamma_R0; + NF, Gamma_NF := R0[32:31], Gamma_R0; assert Gamma_ZF; - goto main_1812__0__JHsGwNfGRCOpiUZHeubweA_goto_main_1812__2__ISicwCLjQ0aYINQWknU4Ug, main_1812__0__JHsGwNfGRCOpiUZHeubweA_goto_main_1812__1__f08glPMzTSyyoBl6Ituc2w; - main_1812__0__JHsGwNfGRCOpiUZHeubweA_goto_main_1812__1__f08glPMzTSyyoBl6Ituc2w: - assume {:captureState "main_1812__0__JHsGwNfGRCOpiUZHeubweA_goto_main_1812__1__f08glPMzTSyyoBl6Ituc2w"} true; + goto $main$__0__$cegbDVc9S6m8Z0kHHU8BZQ$__0, $main$__0__$cegbDVc9S6m8Z0kHHU8BZQ$__1; + $main$__0__$cegbDVc9S6m8Z0kHHU8BZQ$__0: + assume {:captureState "$main$__0__$cegbDVc9S6m8Z0kHHU8BZQ$__0"} true; + assume (!(ZF == 1bv1)); + R0, Gamma_R0 := zero_extend32_32(R0[32:0]), Gamma_R0; + goto main_basil_return; + $main$__0__$cegbDVc9S6m8Z0kHHU8BZQ$__1: + assume {:captureState "$main$__0__$cegbDVc9S6m8Z0kHHU8BZQ$__1"} true; assume (!(!(ZF == 1bv1))); R0, Gamma_R0 := 1bv64, true; - stack, Gamma_stack := memory_store32_le(stack, bvadd64(R31, 28bv64), R0[32:0]), gamma_store32(Gamma_stack, bvadd64(R31, 28bv64), Gamma_R0); - assume {:captureState "1844_0"} true; - goto main_1812__1__f08glPMzTSyyoBl6Ituc2w; - main_1812__1__f08glPMzTSyyoBl6Ituc2w: - assume {:captureState "main_1812__1__f08glPMzTSyyoBl6Ituc2w"} true; - goto main_1812__2__ISicwCLjQ0aYINQWknU4Ug; - main_1812__0__JHsGwNfGRCOpiUZHeubweA_goto_main_1812__2__ISicwCLjQ0aYINQWknU4Ug: - assume {:captureState "main_1812__0__JHsGwNfGRCOpiUZHeubweA_goto_main_1812__2__ISicwCLjQ0aYINQWknU4Ug"} true; - assume (!(ZF == 1bv1)); - goto main_1812__2__ISicwCLjQ0aYINQWknU4Ug; - main_1812__2__ISicwCLjQ0aYINQWknU4Ug: - assume {:captureState "main_1812__2__ISicwCLjQ0aYINQWknU4Ug"} true; - load3, Gamma_load3 := memory_load32_le(stack, bvadd64(R31, 28bv64)), gamma_load32(Gamma_stack, bvadd64(R31, 28bv64)); - R0, Gamma_R0 := zero_extend32_32(load3), Gamma_load3; - R31, Gamma_R31 := bvadd64(R31, 32bv64), Gamma_R31; - goto main_1812_basil_return; - main_1812_basil_return: - assume {:captureState "main_1812_basil_return"} true; + goto main_basil_return; + main_basil_return: + assume {:captureState "main_basil_return"} true; return; } diff --git a/src/test/incorrect/nestedifglobal/clang/nestedifglobal.adt b/src/test/incorrect/nestedifglobal/clang/nestedifglobal.adt deleted file mode 100644 index 92b012f93..000000000 --- a/src/test/incorrect/nestedifglobal/clang/nestedifglobal.adt +++ /dev/null @@ -1,673 +0,0 @@ -Project(Attrs([Attr("filename","\"clang/nestedifglobal.out\""), -Attr("image-specification","(declare abi (name str))\n(declare arch (name str))\n(declare base-address (addr int))\n(declare bias (off int))\n(declare bits (size int))\n(declare code-region (addr int) (size int) (off int))\n(declare code-start (addr int))\n(declare entry-point (addr int))\n(declare external-reference (addr int) (name str))\n(declare format (name str))\n(declare is-executable (flag bool))\n(declare is-little-endian (flag bool))\n(declare llvm:base-address (addr int))\n(declare llvm:code-entry (name str) (off int) (size int))\n(declare llvm:coff-import-library (name str))\n(declare llvm:coff-virtual-section-header (name str) (addr int) (size int))\n(declare llvm:elf-program-header (name str) (off int) (size int))\n(declare llvm:elf-program-header-flags (name str) (ld bool) (r bool) \n (w bool) (x bool))\n(declare llvm:elf-virtual-program-header (name str) (addr int) (size int))\n(declare llvm:entry-point (addr int))\n(declare llvm:macho-symbol (name str) (value int))\n(declare llvm:name-reference (at int) (name str))\n(declare llvm:relocation (at int) (addr int))\n(declare llvm:section-entry (name str) (addr int) (size int) (off int))\n(declare llvm:section-flags (name str) (r bool) (w bool) (x bool))\n(declare llvm:segment-command (name str) (off int) (size int))\n(declare llvm:segment-command-flags (name str) (r bool) (w bool) (x bool))\n(declare llvm:symbol-entry (name str) (addr int) (size int) (off int)\n (value int))\n(declare llvm:virtual-segment-command (name str) (addr int) (size int))\n(declare mapped (addr int) (size int) (off int))\n(declare named-region (addr int) (size int) (name str))\n(declare named-symbol (addr int) (name str))\n(declare require (name str))\n(declare section (addr int) (size int))\n(declare segment (addr int) (size int) (r bool) (w bool) (x bool))\n(declare subarch (name str))\n(declare symbol-chunk (addr int) (size int) (root int))\n(declare symbol-value (addr int) (value int))\n(declare system (name str))\n(declare vendor (name str))\n\n(abi unknown)\n(arch aarch64)\n(base-address 0)\n(bias 0)\n(bits 64)\n(code-region 1956 20 1956)\n(code-region 1536 420 1536)\n(code-region 1440 96 1440)\n(code-region 1408 24 1408)\n(code-start 1588)\n(code-start 1536)\n(code-start 1812)\n(entry-point 1536)\n(external-reference 69568 _ITM_deregisterTMCloneTable)\n(external-reference 69576 __cxa_finalize)\n(external-reference 69584 __gmon_start__)\n(external-reference 69600 _ITM_registerTMCloneTable)\n(external-reference 69632 __libc_start_main)\n(external-reference 69640 __cxa_finalize)\n(external-reference 69648 __gmon_start__)\n(external-reference 69656 abort)\n(format elf)\n(is-executable true)\n(is-little-endian true)\n(llvm:base-address 0)\n(llvm:code-entry abort 0 0)\n(llvm:code-entry __cxa_finalize 0 0)\n(llvm:code-entry __libc_start_main 0 0)\n(llvm:code-entry _init 1408 0)\n(llvm:code-entry main 1812 144)\n(llvm:code-entry _start 1536 52)\n(llvm:code-entry abort@GLIBC_2.17 0 0)\n(llvm:code-entry _fini 1956 0)\n(llvm:code-entry __cxa_finalize@GLIBC_2.17 0 0)\n(llvm:code-entry __libc_start_main@GLIBC_2.34 0 0)\n(llvm:code-entry frame_dummy 1808 0)\n(llvm:code-entry __do_global_dtors_aux 1728 0)\n(llvm:code-entry register_tm_clones 1664 0)\n(llvm:code-entry deregister_tm_clones 1616 0)\n(llvm:code-entry call_weak_fn 1588 20)\n(llvm:code-entry .fini 1956 20)\n(llvm:code-entry .text 1536 420)\n(llvm:code-entry .plt 1440 96)\n(llvm:code-entry .init 1408 24)\n(llvm:elf-program-header 08 3528 568)\n(llvm:elf-program-header 07 0 0)\n(llvm:elf-program-header 06 1980 60)\n(llvm:elf-program-header 05 596 68)\n(llvm:elf-program-header 04 3544 480)\n(llvm:elf-program-header 03 3528 616)\n(llvm:elf-program-header 02 0 2224)\n(llvm:elf-program-header 01 568 27)\n(llvm:elf-program-header 00 64 504)\n(llvm:elf-program-header-flags 08 false true false false)\n(llvm:elf-program-header-flags 07 false true true false)\n(llvm:elf-program-header-flags 06 false true false false)\n(llvm:elf-program-header-flags 05 false true false false)\n(llvm:elf-program-header-flags 04 false true true false)\n(llvm:elf-program-header-flags 03 true true true false)\n(llvm:elf-program-header-flags 02 true true false true)\n(llvm:elf-program-header-flags 01 false true false false)\n(llvm:elf-program-header-flags 00 false true false false)\n(llvm:elf-virtual-program-header 08 69064 568)\n(llvm:elf-virtual-program-header 07 0 0)\n(llvm:elf-virtual-program-header 06 1980 60)\n(llvm:elf-virtual-program-header 05 596 68)\n(llvm:elf-virtual-program-header 04 69080 480)\n(llvm:elf-virtual-program-header 03 69064 632)\n(llvm:elf-virtual-program-header 02 0 2224)\n(llvm:elf-virtual-program-header 01 568 27)\n(llvm:elf-virtual-program-header 00 64 504)\n(llvm:entry-point 1536)\n(llvm:name-reference 69656 abort)\n(llvm:name-reference 69648 __gmon_start__)\n(llvm:name-reference 69640 __cxa_finalize)\n(llvm:name-reference 69632 __libc_start_main)\n(llvm:name-reference 69600 _ITM_registerTMCloneTable)\n(llvm:name-reference 69584 __gmon_start__)\n(llvm:name-reference 69576 __cxa_finalize)\n(llvm:name-reference 69568 _ITM_deregisterTMCloneTable)\n(llvm:section-entry .shstrtab 0 259 6972)\n(llvm:section-entry .strtab 0 572 6400)\n(llvm:section-entry .symtab 0 2184 4216)\n(llvm:section-entry .comment 0 71 4144)\n(llvm:section-entry .bss 69680 16 4144)\n(llvm:section-entry .data 69664 16 4128)\n(llvm:section-entry .got.plt 69608 56 4072)\n(llvm:section-entry .got 69560 48 4024)\n(llvm:section-entry .dynamic 69080 480 3544)\n(llvm:section-entry .fini_array 69072 8 3536)\n(llvm:section-entry .init_array 69064 8 3528)\n(llvm:section-entry .eh_frame 2040 184 2040)\n(llvm:section-entry .eh_frame_hdr 1980 60 1980)\n(llvm:section-entry .rodata 1976 4 1976)\n(llvm:section-entry .fini 1956 20 1956)\n(llvm:section-entry .text 1536 420 1536)\n(llvm:section-entry .plt 1440 96 1440)\n(llvm:section-entry .init 1408 24 1408)\n(llvm:section-entry .rela.plt 1312 96 1312)\n(llvm:section-entry .rela.dyn 1120 192 1120)\n(llvm:section-entry .gnu.version_r 1072 48 1072)\n(llvm:section-entry .gnu.version 1054 18 1054)\n(llvm:section-entry .dynstr 912 141 912)\n(llvm:section-entry .dynsym 696 216 696)\n(llvm:section-entry .gnu.hash 664 28 664)\n(llvm:section-entry .note.ABI-tag 632 32 632)\n(llvm:section-entry .note.gnu.build-id 596 36 596)\n(llvm:section-entry .interp 568 27 568)\n(llvm:section-flags .shstrtab true false false)\n(llvm:section-flags .strtab true false false)\n(llvm:section-flags .symtab true false false)\n(llvm:section-flags .comment true false false)\n(llvm:section-flags .bss true true false)\n(llvm:section-flags .data true true false)\n(llvm:section-flags .got.plt true true false)\n(llvm:section-flags .got true true false)\n(llvm:section-flags .dynamic true true false)\n(llvm:section-flags .fini_array true true false)\n(llvm:section-flags .init_array true true false)\n(llvm:section-flags .eh_frame true false false)\n(llvm:section-flags .eh_frame_hdr true false false)\n(llvm:section-flags .rodata true false false)\n(llvm:section-flags .fini true false true)\n(llvm:section-flags .text true false true)\n(llvm:section-flags .plt true false true)\n(llvm:section-flags .init true false true)\n(llvm:section-flags .rela.plt true false false)\n(llvm:section-flags .rela.dyn true false false)\n(llvm:section-flags .gnu.version_r true false false)\n(llvm:section-flags .gnu.version true false false)\n(llvm:section-flags .dynstr true false false)\n(llvm:section-flags .dynsym true false false)\n(llvm:section-flags .gnu.hash true false false)\n(llvm:section-flags .note.ABI-tag true false false)\n(llvm:section-flags .note.gnu.build-id true false false)\n(llvm:section-flags .interp true false false)\n(llvm:symbol-entry abort 0 0 0 0)\n(llvm:symbol-entry __cxa_finalize 0 0 0 0)\n(llvm:symbol-entry __libc_start_main 0 0 0 0)\n(llvm:symbol-entry _init 1408 0 1408 1408)\n(llvm:symbol-entry main 1812 144 1812 1812)\n(llvm:symbol-entry _start 1536 52 1536 1536)\n(llvm:symbol-entry abort@GLIBC_2.17 0 0 0 0)\n(llvm:symbol-entry _fini 1956 0 1956 1956)\n(llvm:symbol-entry __cxa_finalize@GLIBC_2.17 0 0 0 0)\n(llvm:symbol-entry __libc_start_main@GLIBC_2.34 0 0 0 0)\n(llvm:symbol-entry frame_dummy 1808 0 1808 1808)\n(llvm:symbol-entry __do_global_dtors_aux 1728 0 1728 1728)\n(llvm:symbol-entry register_tm_clones 1664 0 1664 1664)\n(llvm:symbol-entry deregister_tm_clones 1616 0 1616 1616)\n(llvm:symbol-entry call_weak_fn 1588 20 1588 1588)\n(mapped 0 2224 0)\n(mapped 69064 616 3528)\n(named-region 0 2224 02)\n(named-region 69064 632 03)\n(named-region 568 27 .interp)\n(named-region 596 36 .note.gnu.build-id)\n(named-region 632 32 .note.ABI-tag)\n(named-region 664 28 .gnu.hash)\n(named-region 696 216 .dynsym)\n(named-region 912 141 .dynstr)\n(named-region 1054 18 .gnu.version)\n(named-region 1072 48 .gnu.version_r)\n(named-region 1120 192 .rela.dyn)\n(named-region 1312 96 .rela.plt)\n(named-region 1408 24 .init)\n(named-region 1440 96 .plt)\n(named-region 1536 420 .text)\n(named-region 1956 20 .fini)\n(named-region 1976 4 .rodata)\n(named-region 1980 60 .eh_frame_hdr)\n(named-region 2040 184 .eh_frame)\n(named-region 69064 8 .init_array)\n(named-region 69072 8 .fini_array)\n(named-region 69080 480 .dynamic)\n(named-region 69560 48 .got)\n(named-region 69608 56 .got.plt)\n(named-region 69664 16 .data)\n(named-region 69680 16 .bss)\n(named-region 0 71 .comment)\n(named-region 0 2184 .symtab)\n(named-region 0 572 .strtab)\n(named-region 0 259 .shstrtab)\n(named-symbol 1588 call_weak_fn)\n(named-symbol 1616 deregister_tm_clones)\n(named-symbol 1664 register_tm_clones)\n(named-symbol 1728 __do_global_dtors_aux)\n(named-symbol 1808 frame_dummy)\n(named-symbol 0 __libc_start_main@GLIBC_2.34)\n(named-symbol 0 __cxa_finalize@GLIBC_2.17)\n(named-symbol 1956 _fini)\n(named-symbol 0 abort@GLIBC_2.17)\n(named-symbol 1536 _start)\n(named-symbol 1812 main)\n(named-symbol 1408 _init)\n(named-symbol 0 __libc_start_main)\n(named-symbol 0 __cxa_finalize)\n(named-symbol 0 abort)\n(require libc.so.6)\n(section 568 27)\n(section 596 36)\n(section 632 32)\n(section 664 28)\n(section 696 216)\n(section 912 141)\n(section 1054 18)\n(section 1072 48)\n(section 1120 192)\n(section 1312 96)\n(section 1408 24)\n(section 1440 96)\n(section 1536 420)\n(section 1956 20)\n(section 1976 4)\n(section 1980 60)\n(section 2040 184)\n(section 69064 8)\n(section 69072 8)\n(section 69080 480)\n(section 69560 48)\n(section 69608 56)\n(section 69664 16)\n(section 69680 16)\n(section 0 71)\n(section 0 2184)\n(section 0 572)\n(section 0 259)\n(segment 0 2224 true false true)\n(segment 69064 632 true true false)\n(subarch v8)\n(symbol-chunk 1588 20 1588)\n(symbol-chunk 1536 52 1536)\n(symbol-chunk 1812 144 1812)\n(symbol-value 1588 1588)\n(symbol-value 1616 1616)\n(symbol-value 1664 1664)\n(symbol-value 1728 1728)\n(symbol-value 1808 1808)\n(symbol-value 1956 1956)\n(symbol-value 1536 1536)\n(symbol-value 1812 1812)\n(symbol-value 1408 1408)\n(symbol-value 0 0)\n(system \"\")\n(vendor \"\")\n"), -Attr("abi-name","\"aarch64-linux-gnu-elf\"")]), -Sections([Section(".shstrtab", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x00\x06\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x1c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x38\x00\x09\x00\x40\x00\x1d\x00\x1c\x00\x06\x00\x00\x00\x04\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x04\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xb0\x08\x00\x00\x00\x00\x00\x00\xb0\x08\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x01\x00\x00\x00\x06\x00\x00\x00\xc8\x0d\x00\x00\x00\x00\x00\x00\xc8\x0d\x01\x00\x00\x00\x00\x00\xc8\x0d\x01"), -Section(".strtab", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x00\x06\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x1c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x38\x00\x09\x00\x40\x00\x1d\x00\x1c\x00\x06\x00\x00\x00\x04\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x04\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xb0\x08\x00\x00\x00\x00\x00\x00\xb0\x08\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x01\x00\x00\x00\x06\x00\x00\x00\xc8\x0d\x00\x00\x00\x00\x00\x00\xc8\x0d\x01\x00\x00\x00\x00\x00\xc8\x0d\x01\x00\x00\x00\x00\x00\x68\x02\x00\x00\x00\x00\x00\x00\x78\x02\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x02\x00\x00\x00\x06\x00\x00\x00\xd8\x0d\x00\x00\x00\x00\x00\x00\xd8\x0d\x01\x00\x00\x00\x00\x00\xd8\x0d\x01\x00\x00\x00\x00\x00\xe0\x01\x00\x00\x00\x00\x00\x00\xe0\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x04\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x50\xe5\x74\x64\x04\x00\x00\x00\xbc\x07\x00\x00\x00\x00\x00\x00\xbc\x07\x00\x00\x00\x00\x00\x00\xbc\x07\x00\x00\x00\x00\x00\x00\x3c\x00\x00\x00\x00\x00\x00\x00\x3c\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x51\xe5\x74\x64\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x52\xe5\x74\x64\x04\x00\x00\x00\xc8\x0d\x00\x00\x00\x00\x00\x00\xc8\x0d\x01\x00\x00\x00\x00\x00\xc8\x0d\x01\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x2f\x6c\x69\x62"), -Section(".symtab", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x00\x06\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x1c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x38\x00\x09\x00\x40\x00\x1d\x00\x1c\x00\x06\x00\x00\x00\x04\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x04\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xb0\x08\x00\x00\x00\x00\x00\x00\xb0\x08\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x01\x00\x00\x00\x06\x00\x00\x00\xc8\x0d\x00\x00\x00\x00\x00\x00\xc8\x0d\x01\x00\x00\x00\x00\x00\xc8\x0d\x01\x00\x00\x00\x00\x00\x68\x02\x00\x00\x00\x00\x00\x00\x78\x02\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x02\x00\x00\x00\x06\x00\x00\x00\xd8\x0d\x00\x00\x00\x00\x00\x00\xd8\x0d\x01\x00\x00\x00\x00\x00\xd8\x0d\x01\x00\x00\x00\x00\x00\xe0\x01\x00\x00\x00\x00\x00\x00\xe0\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x04\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x50\xe5\x74\x64\x04\x00\x00\x00\xbc\x07\x00\x00\x00\x00\x00\x00\xbc\x07\x00\x00\x00\x00\x00\x00\xbc\x07\x00\x00\x00\x00\x00\x00\x3c\x00\x00\x00\x00\x00\x00\x00\x3c\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x51\xe5\x74\x64\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x52\xe5\x74\x64\x04\x00\x00\x00\xc8\x0d\x00\x00\x00\x00\x00\x00\xc8\x0d\x01\x00\x00\x00\x00\x00\xc8\x0d\x01\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x2f\x6c\x69\x62\x2f\x6c\x64\x2d\x6c\x69\x6e\x75\x78\x2d\x61\x61\x72\x63\x68\x36\x34\x2e\x73\x6f\x2e\x31\x00\x00\x04\x00\x00\x00\x14\x00\x00\x00\x03\x00\x00\x00\x47\x4e\x55\x00\x80\xfd\x26\x95\xc6\x34\x48\x2b\x96\x8e\x2e\x03\x95\x96\x23\x24\xb1\x67\xc9\xc1\x04\x00\x00\x00\x10\x00\x00\x00\x01\x00\x00\x00\x47\x4e\x55\x00\x00\x00\x00\x00\x03\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x01\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x0b\x00\x80\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x17\x00\x20\x10\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x48\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x22\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x22\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x73\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5f\x5f\x63\x78\x61\x5f\x66\x69\x6e\x61\x6c\x69\x7a\x65\x00\x5f\x5f\x6c\x69\x62\x63\x5f\x73\x74\x61\x72\x74\x5f\x6d\x61\x69\x6e\x00\x61\x62\x6f\x72\x74\x00\x6c\x69\x62\x63\x2e\x73\x6f\x2e\x36\x00\x47\x4c\x49\x42\x43\x5f\x32\x2e\x31\x37\x00\x47\x4c\x49\x42\x43\x5f\x32\x2e\x33\x34\x00\x5f\x49\x54\x4d\x5f\x64\x65\x72\x65\x67\x69\x73\x74\x65\x72\x54\x4d\x43\x6c\x6f\x6e\x65\x54\x61\x62\x6c\x65\x00\x5f\x5f\x67\x6d\x6f\x6e\x5f\x73\x74\x61\x72\x74\x5f\x5f\x00\x5f\x49\x54\x4d\x5f\x72\x65\x67\x69\x73\x74\x65\x72\x54\x4d\x43\x6c\x6f\x6e\x65\x54\x61\x62\x6c\x65\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x01\x00\x03\x00\x01\x00\x03\x00\x01\x00\x01\x00\x02\x00\x28\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x97\x91\x96\x06\x00\x00\x03\x00\x32\x00\x00\x00\x10\x00\x00\x00\xb4\x91\x96\x06\x00\x00\x02\x00\x3d\x00\x00\x00\x00\x00\x00\x00\xc8\x0d\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x10\x07\x00\x00\x00\x00\x00\x00\xd0\x0d\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\xc0\x06\x00\x00\x00\x00\x00\x00\xd8\x0f\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x14\x07\x00\x00\x00\x00\x00\x00\x28\x10\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x28\x10\x01\x00\x00\x00\x00\x00\xc0\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xc8\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xd0\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe0\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x08\x10\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x10\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x18\x10\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1f\x20\x03\xd5\xfd\x7b\xbf\xa9\xfd\x03\x00\x91\x2a\x00\x00\x94\xfd\x7b\xc1\xa8\xc0\x03\x5f\xd6\x00\x00\x00\x00\x00\x00\x00\x00\xf0\x7b\xbf\xa9\x90\x00\x00\x90\x11\xfe\x47\xf9\x10\xe2\x3f\x91\x20\x02\x1f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x90\x00\x00\xb0\x11\x02\x40\xf9\x10\x02\x00\x91\x20\x02\x1f\xd6\x90\x00\x00\xb0\x11\x06\x40\xf9\x10\x22\x00\x91\x20\x02\x1f\xd6\x90\x00\x00\xb0\x11\x0a\x40\xf9\x10\x42\x00\x91\x20\x02\x1f\xd6\x90\x00\x00\xb0\x11\x0e\x40\xf9\x10\x62\x00\x91\x20\x02\x1f\xd6\x1f\x20\x03\xd5\x1d\x00\x80\xd2\x1e\x00\x80\xd2\xe5\x03\x00\xaa\xe1\x03\x40\xf9\xe2\x23\x00\x91\xe6\x03\x00\x91\x80\x00\x00\x90\x00\xec\x47\xf9\x03\x00\x80\xd2\x04\x00\x80\xd2\xe5\xff\xff\x97\xf0\xff\xff\x97\x80\x00\x00\x90\x00\xe8\x47\xf9\x40\x00\x00\xb4\xe8\xff\xff\x17\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x80\x00\x00\xb0\x00\xc0\x00\x91\x81\x00\x00\xb0\x21\xc0\x00\x91\x3f\x00\x00\xeb\xc0\x00\x00\x54\x81\x00\x00\x90\x21\xe0\x47\xf9\x61\x00\x00\xb4\xf0\x03\x01\xaa\x00\x02\x1f\xd6\xc0\x03\x5f\xd6\x80\x00\x00\xb0\x00\xc0\x00\x91\x81\x00\x00\xb0\x21\xc0\x00\x91\x21\x00\x00\xcb\x22\xfc\x7f\xd3\x41\x0c\x81\x8b\x21\xfc\x41\x93\xc1\x00\x00\xb4\x82\x00\x00\x90\x42\xf0\x47\xf9\x62\x00\x00\xb4\xf0\x03\x02\xaa\x00\x02\x1f\xd6\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\xfd\x7b\xbe\xa9\xfd\x03\x00\x91\xf3\x0b\x00\xf9\x93\x00\x00\xb0\x60\xc2\x40\x39\x40\x01\x00\x35\x80\x00\x00\x90\x00\xe4\x47\xf9\x80\x00\x00\xb4\x80\x00\x00\xb0\x00\x14\x40\xf9\xb9\xff\xff\x97\xd8\xff\xff\x97\x20\x00\x80\x52\x60\xc2\x00\x39\xf3\x0b\x40\xf9\xfd\x7b\xc2\xa8\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\xdc\xff\xff\x17\xff\x43\x00\xd1\xff\x0f\x00\xb9\xe0\x0b\x00\xb9\xe9\x0b\x40\xb9\x88\x00\x00\xb0\x09\x35\x00\xb9\xff\x07\x00\xb9\x08\x35\x40\xb9\x08\x01\x00\x71\xe8\x07\x9f\x1a\xa8\x00\x00\x37\x01\x00\x00\x14\x68\x00\x80\x52\xe8\x07\x00\xb9\x01\x00\x00\x14\x88\x00\x00\xb0\x08\x35\x40\xb9\x08\x05\x00\x71\xe8\x07\x9f\x1a\xa8\x00\x00\x37\x01\x00\x00\x14\xa8\x00\x80\x52\xe8\x07\x00\xb9\x01\x00\x00\x14\xe8\x07\x40\xb9\x08\x0d\x00\x71\xe8\x07\x9f\x1a\xc8\x00\x00\x37\x01\x00\x00\x14\x88\x00\x00\xb0\x08\x39\x40\xb9\xe8\x07\x00\xb9\x01\x00\x00\x14\xe0\x0f\x40\xb9\xff\x43\x00\x91\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\xfd\x7b\xbf\xa9\xfd\x03\x00\x91\xfd\x7b\xc1\xa8\xc0\x03\x5f\xd6\x01\x00\x02\x00\x01\x1b\x03\x3b\x38\x00\x00\x00\x06\x00\x00\x00\x44\xfe\xff\xff\x50\x00\x00\x00\x94\xfe\xff\xff\x64\x00\x00\x00\xc4\xfe\xff\xff\x78\x00\x00\x00\x04\xff\xff\xff\x8c\x00\x00\x00\x54\xff\xff\xff\xb0\x00\x00\x00\x58\xff\xff\xff\xd8\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x01\x7a\x52\x00\x04\x78\x1e\x01\x1b\x0c\x1f\x00\x10\x00\x00\x00\x18\x00\x00\x00\xec\xfd\xff\xff\x34\x00\x00\x00\x00\x41\x07\x1e\x10\x00\x00\x00\x2c\x00\x00\x00\x28\xfe\xff\xff\x30\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x40\x00\x00\x00\x44\xfe\xff\xff\x3c\x00\x00\x00\x00\x00\x00\x00\x20\x00\x00\x00\x54\x00\x00\x00\x70\xfe\xff\xff\x48\x00\x00\x00\x00\x41\x0e\x20\x9d\x04\x9e\x03\x42\x93\x02\x4e\xde\xdd\xd3\x0e\x00\x00\x00\x00\x10\x00\x00\x00\x78\x00\x00\x00\x9c\xfe\xff\xff\x04\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00"), -Section(".comment", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x00\x06\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x1c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x38\x00\x09\x00\x40\x00\x1d\x00\x1c\x00\x06\x00\x00\x00\x04\x00\x00"), -Section(".interp", 0x238, "\x2f\x6c\x69\x62\x2f\x6c\x64\x2d\x6c\x69\x6e\x75\x78\x2d\x61\x61\x72\x63\x68\x36\x34\x2e\x73\x6f\x2e\x31\x00"), -Section(".note.gnu.build-id", 0x254, "\x04\x00\x00\x00\x14\x00\x00\x00\x03\x00\x00\x00\x47\x4e\x55\x00\x80\xfd\x26\x95\xc6\x34\x48\x2b\x96\x8e\x2e\x03\x95\x96\x23\x24\xb1\x67\xc9\xc1"), -Section(".note.ABI-tag", 0x278, "\x04\x00\x00\x00\x10\x00\x00\x00\x01\x00\x00\x00\x47\x4e\x55\x00\x00\x00\x00\x00\x03\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00"), -Section(".gnu.hash", 0x298, "\x01\x00\x00\x00\x01\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".dynsym", 0x2B8, "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x0b\x00\x80\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x17\x00\x20\x10\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x48\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x22\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x22\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x73\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".dynstr", 0x390, "\x00\x5f\x5f\x63\x78\x61\x5f\x66\x69\x6e\x61\x6c\x69\x7a\x65\x00\x5f\x5f\x6c\x69\x62\x63\x5f\x73\x74\x61\x72\x74\x5f\x6d\x61\x69\x6e\x00\x61\x62\x6f\x72\x74\x00\x6c\x69\x62\x63\x2e\x73\x6f\x2e\x36\x00\x47\x4c\x49\x42\x43\x5f\x32\x2e\x31\x37\x00\x47\x4c\x49\x42\x43\x5f\x32\x2e\x33\x34\x00\x5f\x49\x54\x4d\x5f\x64\x65\x72\x65\x67\x69\x73\x74\x65\x72\x54\x4d\x43\x6c\x6f\x6e\x65\x54\x61\x62\x6c\x65\x00\x5f\x5f\x67\x6d\x6f\x6e\x5f\x73\x74\x61\x72\x74\x5f\x5f\x00\x5f\x49\x54\x4d\x5f\x72\x65\x67\x69\x73\x74\x65\x72\x54\x4d\x43\x6c\x6f\x6e\x65\x54\x61\x62\x6c\x65\x00"), -Section(".gnu.version", 0x41E, "\x00\x00\x00\x00\x00\x00\x02\x00\x01\x00\x03\x00\x01\x00\x03\x00\x01\x00"), -Section(".gnu.version_r", 0x430, "\x01\x00\x02\x00\x28\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x97\x91\x96\x06\x00\x00\x03\x00\x32\x00\x00\x00\x10\x00\x00\x00\xb4\x91\x96\x06\x00\x00\x02\x00\x3d\x00\x00\x00\x00\x00\x00\x00"), -Section(".rela.dyn", 0x460, "\xc8\x0d\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x10\x07\x00\x00\x00\x00\x00\x00\xd0\x0d\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\xc0\x06\x00\x00\x00\x00\x00\x00\xd8\x0f\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x14\x07\x00\x00\x00\x00\x00\x00\x28\x10\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x28\x10\x01\x00\x00\x00\x00\x00\xc0\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xc8\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xd0\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe0\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".rela.plt", 0x520, "\x00\x10\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x08\x10\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x10\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x18\x10\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".init", 0x580, "\x1f\x20\x03\xd5\xfd\x7b\xbf\xa9\xfd\x03\x00\x91\x2a\x00\x00\x94\xfd\x7b\xc1\xa8\xc0\x03\x5f\xd6"), -Section(".plt", 0x5A0, "\xf0\x7b\xbf\xa9\x90\x00\x00\x90\x11\xfe\x47\xf9\x10\xe2\x3f\x91\x20\x02\x1f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x90\x00\x00\xb0\x11\x02\x40\xf9\x10\x02\x00\x91\x20\x02\x1f\xd6\x90\x00\x00\xb0\x11\x06\x40\xf9\x10\x22\x00\x91\x20\x02\x1f\xd6\x90\x00\x00\xb0\x11\x0a\x40\xf9\x10\x42\x00\x91\x20\x02\x1f\xd6\x90\x00\x00\xb0\x11\x0e\x40\xf9\x10\x62\x00\x91\x20\x02\x1f\xd6"), -Section(".fini", 0x7A4, "\x1f\x20\x03\xd5\xfd\x7b\xbf\xa9\xfd\x03\x00\x91\xfd\x7b\xc1\xa8\xc0\x03\x5f\xd6"), -Section(".rodata", 0x7B8, "\x01\x00\x02\x00"), -Section(".eh_frame_hdr", 0x7BC, "\x01\x1b\x03\x3b\x38\x00\x00\x00\x06\x00\x00\x00\x44\xfe\xff\xff\x50\x00\x00\x00\x94\xfe\xff\xff\x64\x00\x00\x00\xc4\xfe\xff\xff\x78\x00\x00\x00\x04\xff\xff\xff\x8c\x00\x00\x00\x54\xff\xff\xff\xb0\x00\x00\x00\x58\xff\xff\xff\xd8\x00\x00\x00"), -Section(".eh_frame", 0x7F8, "\x10\x00\x00\x00\x00\x00\x00\x00\x01\x7a\x52\x00\x04\x78\x1e\x01\x1b\x0c\x1f\x00\x10\x00\x00\x00\x18\x00\x00\x00\xec\xfd\xff\xff\x34\x00\x00\x00\x00\x41\x07\x1e\x10\x00\x00\x00\x2c\x00\x00\x00\x28\xfe\xff\xff\x30\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x40\x00\x00\x00\x44\xfe\xff\xff\x3c\x00\x00\x00\x00\x00\x00\x00\x20\x00\x00\x00\x54\x00\x00\x00\x70\xfe\xff\xff\x48\x00\x00\x00\x00\x41\x0e\x20\x9d\x04\x9e\x03\x42\x93\x02\x4e\xde\xdd\xd3\x0e\x00\x00\x00\x00\x10\x00\x00\x00\x78\x00\x00\x00\x9c\xfe\xff\xff\x04\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x01\x7a\x52\x00\x01\x7c\x1e\x01\x1b\x0c\x1f\x00\x14\x00\x00\x00\x18\x00\x00\x00\x78\xfe\xff\xff\x90\x00\x00\x00\x00\x44\x0e\x10\x02\x88\x0e\x00\x00\x00\x00\x00"), -Section(".fini_array", 0x10DD0, "\xc0\x06\x00\x00\x00\x00\x00\x00"), -Section(".dynamic", 0x10DD8, "\x01\x00\x00\x00\x00\x00\x00\x00\x28\x00\x00\x00\x00\x00\x00\x00\x0c\x00\x00\x00\x00\x00\x00\x00\x80\x05\x00\x00\x00\x00\x00\x00\x0d\x00\x00\x00\x00\x00\x00\x00\xa4\x07\x00\x00\x00\x00\x00\x00\x19\x00\x00\x00\x00\x00\x00\x00\xc8\x0d\x01\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x1a\x00\x00\x00\x00\x00\x00\x00\xd0\x0d\x01\x00\x00\x00\x00\x00\x1c\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\xf5\xfe\xff\x6f\x00\x00\x00\x00\x98\x02\x00\x00\x00\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x90\x03\x00\x00\x00\x00\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\xb8\x02\x00\x00\x00\x00\x00\x00\x0a\x00\x00\x00\x00\x00\x00\x00\x8d\x00\x00\x00\x00\x00\x00\x00\x0b\x00\x00\x00\x00\x00\x00\x00\x18\x00\x00\x00\x00\x00\x00\x00\x15\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\xe8\x0f\x01\x00\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x60\x00\x00\x00\x00\x00\x00\x00\x14\x00\x00\x00\x00\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x17\x00\x00\x00\x00\x00\x00\x00\x20\x05\x00\x00\x00\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x60\x04\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\xc0\x00\x00\x00\x00\x00\x00\x00\x09\x00\x00\x00\x00\x00\x00\x00\x18\x00\x00\x00\x00\x00\x00\x00\xfb\xff\xff\x6f\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\xfe\xff\xff\x6f\x00\x00\x00\x00\x30\x04\x00\x00\x00\x00\x00\x00\xff\xff\xff\x6f\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\xf0\xff\xff\x6f\x00\x00\x00\x00\x1e\x04\x00\x00\x00\x00\x00\x00\xf9\xff\xff\x6f\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".init_array", 0x10DC8, "\x10\x07\x00\x00\x00\x00\x00\x00"), -Section(".got", 0x10FB8, "\xd8\x0d\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x14\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".got.plt", 0x10FE8, "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xa0\x05\x00\x00\x00\x00\x00\x00\xa0\x05\x00\x00\x00\x00\x00\x00\xa0\x05\x00\x00\x00\x00\x00\x00\xa0\x05\x00\x00\x00\x00\x00\x00"), -Section(".data", 0x11020, "\x00\x00\x00\x00\x00\x00\x00\x00\x28\x10\x01\x00\x00\x00\x00\x00"), -Section(".text", 0x600, "\x1f\x20\x03\xd5\x1d\x00\x80\xd2\x1e\x00\x80\xd2\xe5\x03\x00\xaa\xe1\x03\x40\xf9\xe2\x23\x00\x91\xe6\x03\x00\x91\x80\x00\x00\x90\x00\xec\x47\xf9\x03\x00\x80\xd2\x04\x00\x80\xd2\xe5\xff\xff\x97\xf0\xff\xff\x97\x80\x00\x00\x90\x00\xe8\x47\xf9\x40\x00\x00\xb4\xe8\xff\xff\x17\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x80\x00\x00\xb0\x00\xc0\x00\x91\x81\x00\x00\xb0\x21\xc0\x00\x91\x3f\x00\x00\xeb\xc0\x00\x00\x54\x81\x00\x00\x90\x21\xe0\x47\xf9\x61\x00\x00\xb4\xf0\x03\x01\xaa\x00\x02\x1f\xd6\xc0\x03\x5f\xd6\x80\x00\x00\xb0\x00\xc0\x00\x91\x81\x00\x00\xb0\x21\xc0\x00\x91\x21\x00\x00\xcb\x22\xfc\x7f\xd3\x41\x0c\x81\x8b\x21\xfc\x41\x93\xc1\x00\x00\xb4\x82\x00\x00\x90\x42\xf0\x47\xf9\x62\x00\x00\xb4\xf0\x03\x02\xaa\x00\x02\x1f\xd6\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\xfd\x7b\xbe\xa9\xfd\x03\x00\x91\xf3\x0b\x00\xf9\x93\x00\x00\xb0\x60\xc2\x40\x39\x40\x01\x00\x35\x80\x00\x00\x90\x00\xe4\x47\xf9\x80\x00\x00\xb4\x80\x00\x00\xb0\x00\x14\x40\xf9\xb9\xff\xff\x97\xd8\xff\xff\x97\x20\x00\x80\x52\x60\xc2\x00\x39\xf3\x0b\x40\xf9\xfd\x7b\xc2\xa8\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\xdc\xff\xff\x17\xff\x43\x00\xd1\xff\x0f\x00\xb9\xe0\x0b\x00\xb9\xe9\x0b\x40\xb9\x88\x00\x00\xb0\x09\x35\x00\xb9\xff\x07\x00\xb9\x08\x35\x40\xb9\x08\x01\x00\x71\xe8\x07\x9f\x1a\xa8\x00\x00\x37\x01\x00\x00\x14\x68\x00\x80\x52\xe8\x07\x00\xb9\x01\x00\x00\x14\x88\x00\x00\xb0\x08\x35\x40\xb9\x08\x05\x00\x71\xe8\x07\x9f\x1a\xa8\x00\x00\x37\x01\x00\x00\x14\xa8\x00\x80\x52\xe8\x07\x00\xb9\x01\x00\x00\x14\xe8\x07\x40\xb9\x08\x0d\x00\x71\xe8\x07\x9f\x1a\xc8\x00\x00\x37\x01\x00\x00\x14\x88\x00\x00\xb0\x08\x39\x40\xb9\xe8\x07\x00\xb9\x01\x00\x00\x14\xe0\x0f\x40\xb9\xff\x43\x00\x91\xc0\x03\x5f\xd6")]), -Memmap([Annotation(Region(0x0,0x8AF), Attr("segment","02 0 2224")), -Annotation(Region(0x600,0x633), Attr("symbol","\"_start\"")), -Annotation(Region(0x0,0x102), Attr("section","\".shstrtab\"")), -Annotation(Region(0x0,0x23B), Attr("section","\".strtab\"")), -Annotation(Region(0x0,0x887), Attr("section","\".symtab\"")), -Annotation(Region(0x0,0x46), Attr("section","\".comment\"")), -Annotation(Region(0x238,0x252), Attr("section","\".interp\"")), -Annotation(Region(0x254,0x277), Attr("section","\".note.gnu.build-id\"")), -Annotation(Region(0x278,0x297), Attr("section","\".note.ABI-tag\"")), -Annotation(Region(0x298,0x2B3), Attr("section","\".gnu.hash\"")), -Annotation(Region(0x2B8,0x38F), Attr("section","\".dynsym\"")), -Annotation(Region(0x390,0x41C), Attr("section","\".dynstr\"")), -Annotation(Region(0x41E,0x42F), Attr("section","\".gnu.version\"")), -Annotation(Region(0x430,0x45F), Attr("section","\".gnu.version_r\"")), -Annotation(Region(0x460,0x51F), Attr("section","\".rela.dyn\"")), -Annotation(Region(0x520,0x57F), Attr("section","\".rela.plt\"")), -Annotation(Region(0x580,0x597), Attr("section","\".init\"")), -Annotation(Region(0x5A0,0x5FF), Attr("section","\".plt\"")), -Annotation(Region(0x580,0x597), Attr("code-region","()")), -Annotation(Region(0x5A0,0x5FF), Attr("code-region","()")), -Annotation(Region(0x600,0x633), Attr("symbol-info","_start 0x600 52")), -Annotation(Region(0x634,0x647), Attr("symbol","\"call_weak_fn\"")), -Annotation(Region(0x634,0x647), Attr("symbol-info","call_weak_fn 0x634 20")), -Annotation(Region(0x714,0x7A3), Attr("symbol","\"main\"")), -Annotation(Region(0x714,0x7A3), Attr("symbol-info","main 0x714 144")), -Annotation(Region(0x7A4,0x7B7), Attr("section","\".fini\"")), -Annotation(Region(0x7B8,0x7BB), Attr("section","\".rodata\"")), -Annotation(Region(0x7BC,0x7F7), Attr("section","\".eh_frame_hdr\"")), -Annotation(Region(0x7F8,0x8AF), Attr("section","\".eh_frame\"")), -Annotation(Region(0x10DC8,0x1102F), Attr("segment","03 0x10DC8 632")), -Annotation(Region(0x10DD0,0x10DD7), Attr("section","\".fini_array\"")), -Annotation(Region(0x10DD8,0x10FB7), Attr("section","\".dynamic\"")), -Annotation(Region(0x10DC8,0x10DCF), Attr("section","\".init_array\"")), -Annotation(Region(0x10FB8,0x10FE7), Attr("section","\".got\"")), -Annotation(Region(0x10FE8,0x1101F), Attr("section","\".got.plt\"")), -Annotation(Region(0x11020,0x1102F), Attr("section","\".data\"")), -Annotation(Region(0x600,0x7A3), Attr("section","\".text\"")), -Annotation(Region(0x600,0x7A3), Attr("code-region","()")), -Annotation(Region(0x7A4,0x7B7), Attr("code-region","()"))]), -Program(Tid(1_893, "%00000765"), Attrs([]), - Subs([Sub(Tid(1_837, "@__cxa_finalize"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x5D0"), -Attr("stub","()")]), "__cxa_finalize", Args([Arg(Tid(1_894, "%00000766"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("__cxa_finalize_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(1_193, "@__cxa_finalize"), - Attrs([Attr("address","0x5D0")]), Phis([]), -Defs([Def(Tid(1_441, "%000005a1"), Attrs([Attr("address","0x5D0"), -Attr("insn","adrp x16, #69632")]), Var("R16",Imm(64)), Int(69632,64)), -Def(Tid(1_448, "%000005a8"), Attrs([Attr("address","0x5D4"), -Attr("insn","ldr x17, [x16, #0x8]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(1_454, "%000005ae"), Attrs([Attr("address","0x5D8"), -Attr("insn","add x16, x16, #0x8")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(8,64)))]), Jmps([Call(Tid(1_459, "%000005b3"), - Attrs([Attr("address","0x5DC"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), -Sub(Tid(1_838, "@__do_global_dtors_aux"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x6C0")]), - "__do_global_dtors_aux", Args([Arg(Tid(1_895, "%00000767"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("__do_global_dtors_aux_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(734, "@__do_global_dtors_aux"), - Attrs([Attr("address","0x6C0")]), Phis([]), Defs([Def(Tid(738, "%000002e2"), - Attrs([Attr("address","0x6C0"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("#3",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(18446744073709551584,64))), -Def(Tid(744, "%000002e8"), Attrs([Attr("address","0x6C0"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("#3",Imm(64)),Var("R29",Imm(64)),LittleEndian(),64)), -Def(Tid(750, "%000002ee"), Attrs([Attr("address","0x6C0"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("#3",Imm(64)),Int(8,64)),Var("R30",Imm(64)),LittleEndian(),64)), -Def(Tid(754, "%000002f2"), Attrs([Attr("address","0x6C0"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("R31",Imm(64)), -Var("#3",Imm(64))), Def(Tid(760, "%000002f8"), - Attrs([Attr("address","0x6C4"), Attr("insn","mov x29, sp")]), - Var("R29",Imm(64)), Var("R31",Imm(64))), Def(Tid(768, "%00000300"), - Attrs([Attr("address","0x6C8"), Attr("insn","str x19, [sp, #0x10]")]), - Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(16,64)),Var("R19",Imm(64)),LittleEndian(),64)), -Def(Tid(773, "%00000305"), Attrs([Attr("address","0x6CC"), -Attr("insn","adrp x19, #69632")]), Var("R19",Imm(64)), Int(69632,64)), -Def(Tid(780, "%0000030c"), Attrs([Attr("address","0x6D0"), -Attr("insn","ldrb w0, [x19, #0x30]")]), Var("R0",Imm(64)), -UNSIGNED(64,Load(Var("mem",Mem(64,8)),PLUS(Var("R19",Imm(64)),Int(48,64)),LittleEndian(),8)))]), -Jmps([Goto(Tid(787, "%00000313"), Attrs([Attr("address","0x6D4"), -Attr("insn","cbnz w0, #0x28")]), - NEQ(Extract(31,0,Var("R0",Imm(64))),Int(0,32)), -Direct(Tid(785, "%00000311"))), Goto(Tid(1_880, "%00000758"), Attrs([]), - Int(1,1), Direct(Tid(1_138, "%00000472")))])), Blk(Tid(1_138, "%00000472"), - Attrs([Attr("address","0x6D8")]), Phis([]), -Defs([Def(Tid(1_141, "%00000475"), Attrs([Attr("address","0x6D8"), -Attr("insn","adrp x0, #65536")]), Var("R0",Imm(64)), Int(65536,64)), -Def(Tid(1_148, "%0000047c"), Attrs([Attr("address","0x6DC"), -Attr("insn","ldr x0, [x0, #0xfc8]")]), Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(4040,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(1_154, "%00000482"), Attrs([Attr("address","0x6E0"), -Attr("insn","cbz x0, #0x10")]), EQ(Var("R0",Imm(64)),Int(0,64)), -Direct(Tid(1_152, "%00000480"))), Goto(Tid(1_881, "%00000759"), Attrs([]), - Int(1,1), Direct(Tid(1_177, "%00000499")))])), Blk(Tid(1_177, "%00000499"), - Attrs([Attr("address","0x6E4")]), Phis([]), -Defs([Def(Tid(1_180, "%0000049c"), Attrs([Attr("address","0x6E4"), -Attr("insn","adrp x0, #69632")]), Var("R0",Imm(64)), Int(69632,64)), -Def(Tid(1_187, "%000004a3"), Attrs([Attr("address","0x6E8"), -Attr("insn","ldr x0, [x0, #0x28]")]), Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(40,64)),LittleEndian(),64)), -Def(Tid(1_192, "%000004a8"), Attrs([Attr("address","0x6EC"), -Attr("insn","bl #-0x11c")]), Var("R30",Imm(64)), Int(1776,64))]), -Jmps([Call(Tid(1_195, "%000004ab"), Attrs([Attr("address","0x6EC"), -Attr("insn","bl #-0x11c")]), Int(1,1), -(Direct(Tid(1_837, "@__cxa_finalize")),Direct(Tid(1_152, "%00000480"))))])), -Blk(Tid(1_152, "%00000480"), Attrs([Attr("address","0x6F0")]), Phis([]), -Defs([Def(Tid(1_160, "%00000488"), Attrs([Attr("address","0x6F0"), -Attr("insn","bl #-0xa0")]), Var("R30",Imm(64)), Int(1780,64))]), -Jmps([Call(Tid(1_162, "%0000048a"), Attrs([Attr("address","0x6F0"), -Attr("insn","bl #-0xa0")]), Int(1,1), -(Direct(Tid(1_851, "@deregister_tm_clones")),Direct(Tid(1_164, "%0000048c"))))])), -Blk(Tid(1_164, "%0000048c"), Attrs([Attr("address","0x6F4")]), Phis([]), -Defs([Def(Tid(1_167, "%0000048f"), Attrs([Attr("address","0x6F4"), -Attr("insn","mov w0, #0x1")]), Var("R0",Imm(64)), Int(1,64)), -Def(Tid(1_175, "%00000497"), Attrs([Attr("address","0x6F8"), -Attr("insn","strb w0, [x19, #0x30]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R19",Imm(64)),Int(48,64)),Extract(7,0,Var("R0",Imm(64))),LittleEndian(),8))]), -Jmps([Goto(Tid(1_882, "%0000075a"), Attrs([]), Int(1,1), -Direct(Tid(785, "%00000311")))])), Blk(Tid(785, "%00000311"), - Attrs([Attr("address","0x6FC")]), Phis([]), Defs([Def(Tid(795, "%0000031b"), - Attrs([Attr("address","0x6FC"), Attr("insn","ldr x19, [sp, #0x10]")]), - Var("R19",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(16,64)),LittleEndian(),64)), -Def(Tid(802, "%00000322"), Attrs([Attr("address","0x700"), -Attr("insn","ldp x29, x30, [sp], #0x20")]), Var("R29",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(807, "%00000327"), Attrs([Attr("address","0x700"), -Attr("insn","ldp x29, x30, [sp], #0x20")]), Var("R30",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(811, "%0000032b"), Attrs([Attr("address","0x700"), -Attr("insn","ldp x29, x30, [sp], #0x20")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(32,64)))]), Jmps([Call(Tid(816, "%00000330"), - Attrs([Attr("address","0x704"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), Sub(Tid(1_842, "@__libc_start_main"), - Attrs([Attr("c.proto","signed (*)(signed (*)(signed , char** , char** );* main, signed , char** , \nvoid* auxv)"), -Attr("address","0x5C0"), Attr("stub","()")]), "__libc_start_main", - Args([Arg(Tid(1_896, "%00000768"), - Attrs([Attr("c.layout","**[ : 64]"), -Attr("c.data","Top:u64 ptr ptr"), -Attr("c.type","signed (*)(signed , char** , char** );*")]), - Var("__libc_start_main_main",Imm(64)), Var("R0",Imm(64)), In()), -Arg(Tid(1_897, "%00000769"), Attrs([Attr("c.layout","[signed : 32]"), -Attr("c.data","Top:u32"), Attr("c.type","signed")]), - Var("__libc_start_main_arg2",Imm(32)), LOW(32,Var("R1",Imm(64))), In()), -Arg(Tid(1_898, "%0000076a"), Attrs([Attr("c.layout","**[char : 8]"), -Attr("c.data","Top:u8 ptr ptr"), Attr("c.type","char**")]), - Var("__libc_start_main_arg3",Imm(64)), Var("R2",Imm(64)), Both()), -Arg(Tid(1_899, "%0000076b"), Attrs([Attr("c.layout","*[ : 8]"), -Attr("c.data","{} ptr"), Attr("c.type","void*")]), - Var("__libc_start_main_auxv",Imm(64)), Var("R3",Imm(64)), Both()), -Arg(Tid(1_900, "%0000076c"), Attrs([Attr("c.layout","[signed : 32]"), -Attr("c.data","Top:u32"), Attr("c.type","signed")]), - Var("__libc_start_main_result",Imm(32)), LOW(32,Var("R0",Imm(64))), -Out())]), Blks([Blk(Tid(567, "@__libc_start_main"), - Attrs([Attr("address","0x5C0")]), Phis([]), -Defs([Def(Tid(1_419, "%0000058b"), Attrs([Attr("address","0x5C0"), -Attr("insn","adrp x16, #69632")]), Var("R16",Imm(64)), Int(69632,64)), -Def(Tid(1_426, "%00000592"), Attrs([Attr("address","0x5C4"), -Attr("insn","ldr x17, [x16]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R16",Imm(64)),LittleEndian(),64)), -Def(Tid(1_432, "%00000598"), Attrs([Attr("address","0x5C8"), -Attr("insn","add x16, x16, #0x0")]), Var("R16",Imm(64)), -Var("R16",Imm(64)))]), Jmps([Call(Tid(1_437, "%0000059d"), - Attrs([Attr("address","0x5CC"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), Sub(Tid(1_843, "@_fini"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x7A4")]), - "_fini", Args([Arg(Tid(1_901, "%0000076d"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("_fini_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(31, "@_fini"), - Attrs([Attr("address","0x7A4")]), Phis([]), Defs([Def(Tid(37, "%00000025"), - Attrs([Attr("address","0x7A8"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("#0",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(18446744073709551600,64))), -Def(Tid(43, "%0000002b"), Attrs([Attr("address","0x7A8"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("#0",Imm(64)),Var("R29",Imm(64)),LittleEndian(),64)), -Def(Tid(49, "%00000031"), Attrs([Attr("address","0x7A8"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("#0",Imm(64)),Int(8,64)),Var("R30",Imm(64)),LittleEndian(),64)), -Def(Tid(53, "%00000035"), Attrs([Attr("address","0x7A8"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("R31",Imm(64)), -Var("#0",Imm(64))), Def(Tid(59, "%0000003b"), Attrs([Attr("address","0x7AC"), -Attr("insn","mov x29, sp")]), Var("R29",Imm(64)), Var("R31",Imm(64))), -Def(Tid(66, "%00000042"), Attrs([Attr("address","0x7B0"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R29",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(71, "%00000047"), Attrs([Attr("address","0x7B0"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R30",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(75, "%0000004b"), Attrs([Attr("address","0x7B0"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(16,64)))]), Jmps([Call(Tid(80, "%00000050"), - Attrs([Attr("address","0x7B4"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), Sub(Tid(1_844, "@_init"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x580")]), - "_init", Args([Arg(Tid(1_902, "%0000076e"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("_init_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(1_643, "@_init"), - Attrs([Attr("address","0x580")]), Phis([]), -Defs([Def(Tid(1_649, "%00000671"), Attrs([Attr("address","0x584"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("#8",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(18446744073709551600,64))), -Def(Tid(1_655, "%00000677"), Attrs([Attr("address","0x584"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("#8",Imm(64)),Var("R29",Imm(64)),LittleEndian(),64)), -Def(Tid(1_661, "%0000067d"), Attrs([Attr("address","0x584"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("#8",Imm(64)),Int(8,64)),Var("R30",Imm(64)),LittleEndian(),64)), -Def(Tid(1_665, "%00000681"), Attrs([Attr("address","0x584"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("R31",Imm(64)), -Var("#8",Imm(64))), Def(Tid(1_671, "%00000687"), - Attrs([Attr("address","0x588"), Attr("insn","mov x29, sp")]), - Var("R29",Imm(64)), Var("R31",Imm(64))), Def(Tid(1_676, "%0000068c"), - Attrs([Attr("address","0x58C"), Attr("insn","bl #0xa8")]), - Var("R30",Imm(64)), Int(1424,64))]), Jmps([Call(Tid(1_678, "%0000068e"), - Attrs([Attr("address","0x58C"), Attr("insn","bl #0xa8")]), Int(1,1), -(Direct(Tid(1_849, "@call_weak_fn")),Direct(Tid(1_680, "%00000690"))))])), -Blk(Tid(1_680, "%00000690"), Attrs([Attr("address","0x590")]), Phis([]), -Defs([Def(Tid(1_685, "%00000695"), Attrs([Attr("address","0x590"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R29",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(1_690, "%0000069a"), Attrs([Attr("address","0x590"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R30",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(1_694, "%0000069e"), Attrs([Attr("address","0x590"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(16,64)))]), Jmps([Call(Tid(1_699, "%000006a3"), - Attrs([Attr("address","0x594"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), Sub(Tid(1_845, "@_start"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x600"), -Attr("stub","()"), Attr("entry-point","()")]), "_start", - Args([Arg(Tid(1_903, "%0000076f"), Attrs([Attr("c.layout","[signed : 32]"), -Attr("c.data","Top:u32"), Attr("c.type","signed")]), - Var("_start_result",Imm(32)), LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(504, "@_start"), Attrs([Attr("address","0x600")]), Phis([]), -Defs([Def(Tid(509, "%000001fd"), Attrs([Attr("address","0x604"), -Attr("insn","mov x29, #0x0")]), Var("R29",Imm(64)), Int(0,64)), -Def(Tid(514, "%00000202"), Attrs([Attr("address","0x608"), -Attr("insn","mov x30, #0x0")]), Var("R30",Imm(64)), Int(0,64)), -Def(Tid(520, "%00000208"), Attrs([Attr("address","0x60C"), -Attr("insn","mov x5, x0")]), Var("R5",Imm(64)), Var("R0",Imm(64))), -Def(Tid(527, "%0000020f"), Attrs([Attr("address","0x610"), -Attr("insn","ldr x1, [sp]")]), Var("R1",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(533, "%00000215"), Attrs([Attr("address","0x614"), -Attr("insn","add x2, sp, #0x8")]), Var("R2",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(8,64))), Def(Tid(539, "%0000021b"), - Attrs([Attr("address","0x618"), Attr("insn","mov x6, sp")]), - Var("R6",Imm(64)), Var("R31",Imm(64))), Def(Tid(544, "%00000220"), - Attrs([Attr("address","0x61C"), Attr("insn","adrp x0, #65536")]), - Var("R0",Imm(64)), Int(65536,64)), Def(Tid(551, "%00000227"), - Attrs([Attr("address","0x620"), Attr("insn","ldr x0, [x0, #0xfd8]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(4056,64)),LittleEndian(),64)), -Def(Tid(556, "%0000022c"), Attrs([Attr("address","0x624"), -Attr("insn","mov x3, #0x0")]), Var("R3",Imm(64)), Int(0,64)), -Def(Tid(561, "%00000231"), Attrs([Attr("address","0x628"), -Attr("insn","mov x4, #0x0")]), Var("R4",Imm(64)), Int(0,64)), -Def(Tid(566, "%00000236"), Attrs([Attr("address","0x62C"), -Attr("insn","bl #-0x6c")]), Var("R30",Imm(64)), Int(1584,64))]), -Jmps([Call(Tid(569, "%00000239"), Attrs([Attr("address","0x62C"), -Attr("insn","bl #-0x6c")]), Int(1,1), -(Direct(Tid(1_842, "@__libc_start_main")),Direct(Tid(571, "%0000023b"))))])), -Blk(Tid(571, "%0000023b"), Attrs([Attr("address","0x630")]), Phis([]), -Defs([Def(Tid(574, "%0000023e"), Attrs([Attr("address","0x630"), -Attr("insn","bl #-0x40")]), Var("R30",Imm(64)), Int(1588,64))]), -Jmps([Call(Tid(577, "%00000241"), Attrs([Attr("address","0x630"), -Attr("insn","bl #-0x40")]), Int(1,1), -(Direct(Tid(1_848, "@abort")),Direct(Tid(1_883, "%0000075b"))))])), -Blk(Tid(1_883, "%0000075b"), Attrs([]), Phis([]), Defs([]), -Jmps([Call(Tid(1_884, "%0000075c"), Attrs([]), Int(1,1), -(Direct(Tid(1_849, "@call_weak_fn")),))]))])), Sub(Tid(1_848, "@abort"), - Attrs([Attr("noreturn","()"), Attr("c.proto","void (*)(void)"), -Attr("address","0x5F0"), Attr("stub","()")]), "abort", Args([]), -Blks([Blk(Tid(575, "@abort"), Attrs([Attr("address","0x5F0")]), Phis([]), -Defs([Def(Tid(1_485, "%000005cd"), Attrs([Attr("address","0x5F0"), -Attr("insn","adrp x16, #69632")]), Var("R16",Imm(64)), Int(69632,64)), -Def(Tid(1_492, "%000005d4"), Attrs([Attr("address","0x5F4"), -Attr("insn","ldr x17, [x16, #0x18]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(24,64)),LittleEndian(),64)), -Def(Tid(1_498, "%000005da"), Attrs([Attr("address","0x5F8"), -Attr("insn","add x16, x16, #0x18")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(24,64)))]), Jmps([Call(Tid(1_503, "%000005df"), - Attrs([Attr("address","0x5FC"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), Sub(Tid(1_849, "@call_weak_fn"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x634")]), - "call_weak_fn", Args([Arg(Tid(1_904, "%00000770"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("call_weak_fn_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(579, "@call_weak_fn"), - Attrs([Attr("address","0x634")]), Phis([]), Defs([Def(Tid(582, "%00000246"), - Attrs([Attr("address","0x634"), Attr("insn","adrp x0, #65536")]), - Var("R0",Imm(64)), Int(65536,64)), Def(Tid(589, "%0000024d"), - Attrs([Attr("address","0x638"), Attr("insn","ldr x0, [x0, #0xfd0]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(4048,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(595, "%00000253"), Attrs([Attr("address","0x63C"), -Attr("insn","cbz x0, #0x8")]), EQ(Var("R0",Imm(64)),Int(0,64)), -Direct(Tid(593, "%00000251"))), Goto(Tid(1_885, "%0000075d"), Attrs([]), - Int(1,1), Direct(Tid(1_257, "%000004e9")))])), Blk(Tid(593, "%00000251"), - Attrs([Attr("address","0x644")]), Phis([]), Defs([]), -Jmps([Call(Tid(601, "%00000259"), Attrs([Attr("address","0x644"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))])), -Blk(Tid(1_257, "%000004e9"), Attrs([Attr("address","0x640")]), Phis([]), -Defs([]), Jmps([Goto(Tid(1_260, "%000004ec"), Attrs([Attr("address","0x640"), -Attr("insn","b #-0x60")]), Int(1,1), -Direct(Tid(1_258, "@__gmon_start__")))])), Blk(Tid(1_258, "@__gmon_start__"), - Attrs([Attr("address","0x5E0")]), Phis([]), -Defs([Def(Tid(1_463, "%000005b7"), Attrs([Attr("address","0x5E0"), -Attr("insn","adrp x16, #69632")]), Var("R16",Imm(64)), Int(69632,64)), -Def(Tid(1_470, "%000005be"), Attrs([Attr("address","0x5E4"), -Attr("insn","ldr x17, [x16, #0x10]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(16,64)),LittleEndian(),64)), -Def(Tid(1_476, "%000005c4"), Attrs([Attr("address","0x5E8"), -Attr("insn","add x16, x16, #0x10")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(16,64)))]), Jmps([Call(Tid(1_481, "%000005c9"), - Attrs([Attr("address","0x5EC"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), -Sub(Tid(1_851, "@deregister_tm_clones"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x650")]), - "deregister_tm_clones", Args([Arg(Tid(1_905, "%00000771"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("deregister_tm_clones_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(607, "@deregister_tm_clones"), - Attrs([Attr("address","0x650")]), Phis([]), Defs([Def(Tid(610, "%00000262"), - Attrs([Attr("address","0x650"), Attr("insn","adrp x0, #69632")]), - Var("R0",Imm(64)), Int(69632,64)), Def(Tid(616, "%00000268"), - Attrs([Attr("address","0x654"), Attr("insn","add x0, x0, #0x30")]), - Var("R0",Imm(64)), PLUS(Var("R0",Imm(64)),Int(48,64))), -Def(Tid(621, "%0000026d"), Attrs([Attr("address","0x658"), -Attr("insn","adrp x1, #69632")]), Var("R1",Imm(64)), Int(69632,64)), -Def(Tid(627, "%00000273"), Attrs([Attr("address","0x65C"), -Attr("insn","add x1, x1, #0x30")]), Var("R1",Imm(64)), -PLUS(Var("R1",Imm(64)),Int(48,64))), Def(Tid(633, "%00000279"), - Attrs([Attr("address","0x660"), Attr("insn","cmp x1, x0")]), - Var("#1",Imm(64)), NOT(Var("R0",Imm(64)))), Def(Tid(638, "%0000027e"), - Attrs([Attr("address","0x660"), Attr("insn","cmp x1, x0")]), - Var("#2",Imm(64)), PLUS(Var("R1",Imm(64)),NOT(Var("R0",Imm(64))))), -Def(Tid(644, "%00000284"), Attrs([Attr("address","0x660"), -Attr("insn","cmp x1, x0")]), Var("VF",Imm(1)), -NEQ(SIGNED(65,PLUS(Var("#2",Imm(64)),Int(1,64))),PLUS(PLUS(SIGNED(65,Var("R1",Imm(64))),SIGNED(65,Var("#1",Imm(64)))),Int(1,65)))), -Def(Tid(650, "%0000028a"), Attrs([Attr("address","0x660"), -Attr("insn","cmp x1, x0")]), Var("CF",Imm(1)), -NEQ(UNSIGNED(65,PLUS(Var("#2",Imm(64)),Int(1,64))),PLUS(PLUS(UNSIGNED(65,Var("R1",Imm(64))),UNSIGNED(65,Var("#1",Imm(64)))),Int(1,65)))), -Def(Tid(654, "%0000028e"), Attrs([Attr("address","0x660"), -Attr("insn","cmp x1, x0")]), Var("ZF",Imm(1)), -EQ(PLUS(Var("#2",Imm(64)),Int(1,64)),Int(0,64))), Def(Tid(658, "%00000292"), - Attrs([Attr("address","0x660"), Attr("insn","cmp x1, x0")]), - Var("NF",Imm(1)), Extract(63,63,PLUS(Var("#2",Imm(64)),Int(1,64))))]), -Jmps([Goto(Tid(664, "%00000298"), Attrs([Attr("address","0x664"), -Attr("insn","b.eq #0x18")]), EQ(Var("ZF",Imm(1)),Int(1,1)), -Direct(Tid(662, "%00000296"))), Goto(Tid(1_886, "%0000075e"), Attrs([]), - Int(1,1), Direct(Tid(1_227, "%000004cb")))])), Blk(Tid(1_227, "%000004cb"), - Attrs([Attr("address","0x668")]), Phis([]), -Defs([Def(Tid(1_230, "%000004ce"), Attrs([Attr("address","0x668"), -Attr("insn","adrp x1, #65536")]), Var("R1",Imm(64)), Int(65536,64)), -Def(Tid(1_237, "%000004d5"), Attrs([Attr("address","0x66C"), -Attr("insn","ldr x1, [x1, #0xfc0]")]), Var("R1",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R1",Imm(64)),Int(4032,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(1_242, "%000004da"), Attrs([Attr("address","0x670"), -Attr("insn","cbz x1, #0xc")]), EQ(Var("R1",Imm(64)),Int(0,64)), -Direct(Tid(662, "%00000296"))), Goto(Tid(1_887, "%0000075f"), Attrs([]), - Int(1,1), Direct(Tid(1_246, "%000004de")))])), Blk(Tid(662, "%00000296"), - Attrs([Attr("address","0x67C")]), Phis([]), Defs([]), -Jmps([Call(Tid(670, "%0000029e"), Attrs([Attr("address","0x67C"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))])), -Blk(Tid(1_246, "%000004de"), Attrs([Attr("address","0x674")]), Phis([]), -Defs([Def(Tid(1_250, "%000004e2"), Attrs([Attr("address","0x674"), -Attr("insn","mov x16, x1")]), Var("R16",Imm(64)), Var("R1",Imm(64)))]), -Jmps([Call(Tid(1_255, "%000004e7"), Attrs([Attr("address","0x678"), -Attr("insn","br x16")]), Int(1,1), (Indirect(Var("R16",Imm(64))),))]))])), -Sub(Tid(1_854, "@frame_dummy"), Attrs([Attr("c.proto","signed (*)(void)"), -Attr("address","0x710")]), "frame_dummy", Args([Arg(Tid(1_906, "%00000772"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("frame_dummy_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(822, "@frame_dummy"), - Attrs([Attr("address","0x710")]), Phis([]), Defs([]), -Jmps([Call(Tid(824, "%00000338"), Attrs([Attr("address","0x710"), -Attr("insn","b #-0x90")]), Int(1,1), -(Direct(Tid(1_859, "@register_tm_clones")),))]))])), Sub(Tid(1_855, "@main"), - Attrs([Attr("c.proto","signed (*)(signed argc, const char** argv)"), -Attr("address","0x714")]), "main", Args([Arg(Tid(1_907, "%00000773"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("main_argc",Imm(32)), -LOW(32,Var("R0",Imm(64))), In()), Arg(Tid(1_908, "%00000774"), - Attrs([Attr("c.layout","**[char : 8]"), Attr("c.data","Top:u8 ptr ptr"), -Attr("c.type"," const char**")]), Var("main_argv",Imm(64)), -Var("R1",Imm(64)), Both()), Arg(Tid(1_909, "%00000775"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("main_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(826, "@main"), - Attrs([Attr("address","0x714")]), Phis([]), Defs([Def(Tid(830, "%0000033e"), - Attrs([Attr("address","0x714"), Attr("insn","sub sp, sp, #0x10")]), - Var("R31",Imm(64)), PLUS(Var("R31",Imm(64)),Int(18446744073709551600,64))), -Def(Tid(837, "%00000345"), Attrs([Attr("address","0x718"), -Attr("insn","str wzr, [sp, #0xc]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(12,64)),Int(0,32),LittleEndian(),32)), -Def(Tid(845, "%0000034d"), Attrs([Attr("address","0x71C"), -Attr("insn","str w0, [sp, #0x8]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),Extract(31,0,Var("R0",Imm(64))),LittleEndian(),32)), -Def(Tid(852, "%00000354"), Attrs([Attr("address","0x720"), -Attr("insn","ldr w9, [sp, #0x8]")]), Var("R9",Imm(64)), -UNSIGNED(64,Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),LittleEndian(),32))), -Def(Tid(857, "%00000359"), Attrs([Attr("address","0x724"), -Attr("insn","adrp x8, #69632")]), Var("R8",Imm(64)), Int(69632,64)), -Def(Tid(865, "%00000361"), Attrs([Attr("address","0x728"), -Attr("insn","str w9, [x8, #0x34]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R8",Imm(64)),Int(52,64)),Extract(31,0,Var("R9",Imm(64))),LittleEndian(),32)), -Def(Tid(872, "%00000368"), Attrs([Attr("address","0x72C"), -Attr("insn","str wzr, [sp, #0x4]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(4,64)),Int(0,32),LittleEndian(),32)), -Def(Tid(879, "%0000036f"), Attrs([Attr("address","0x730"), -Attr("insn","ldr w8, [x8, #0x34]")]), Var("R8",Imm(64)), -UNSIGNED(64,Load(Var("mem",Mem(64,8)),PLUS(Var("R8",Imm(64)),Int(52,64)),LittleEndian(),32))), -Def(Tid(885, "%00000375"), Attrs([Attr("address","0x734"), -Attr("insn","subs w8, w8, #0x0")]), Var("#4",Imm(32)), -PLUS(Extract(31,0,Var("R8",Imm(64))),Int(4294967295,32))), -Def(Tid(890, "%0000037a"), Attrs([Attr("address","0x734"), -Attr("insn","subs w8, w8, #0x0")]), Var("VF",Imm(1)), -NEQ(SIGNED(33,PLUS(Var("#4",Imm(32)),Int(1,32))),PLUS(SIGNED(33,Extract(31,0,Var("R8",Imm(64)))),Int(0,33)))), -Def(Tid(895, "%0000037f"), Attrs([Attr("address","0x734"), -Attr("insn","subs w8, w8, #0x0")]), Var("CF",Imm(1)), -NEQ(UNSIGNED(33,PLUS(Var("#4",Imm(32)),Int(1,32))),PLUS(UNSIGNED(33,Extract(31,0,Var("R8",Imm(64)))),Int(4294967296,33)))), -Def(Tid(899, "%00000383"), Attrs([Attr("address","0x734"), -Attr("insn","subs w8, w8, #0x0")]), Var("ZF",Imm(1)), -EQ(PLUS(Var("#4",Imm(32)),Int(1,32)),Int(0,32))), Def(Tid(903, "%00000387"), - Attrs([Attr("address","0x734"), Attr("insn","subs w8, w8, #0x0")]), - Var("NF",Imm(1)), Extract(31,31,PLUS(Var("#4",Imm(32)),Int(1,32)))), -Def(Tid(907, "%0000038b"), Attrs([Attr("address","0x734"), -Attr("insn","subs w8, w8, #0x0")]), Var("R8",Imm(64)), -UNSIGNED(64,PLUS(Var("#4",Imm(32)),Int(1,32))))]), -Jmps([Goto(Tid(919, "%00000397"), Attrs([Attr("address","0x738"), -Attr("insn","cset w8, ne")]), EQ(Var("ZF",Imm(1)),Int(1,1)), -Direct(Tid(912, "%00000390"))), Goto(Tid(920, "%00000398"), - Attrs([Attr("address","0x738"), Attr("insn","cset w8, ne")]), Int(1,1), -Direct(Tid(915, "%00000393")))])), Blk(Tid(915, "%00000393"), Attrs([]), - Phis([]), Defs([Def(Tid(916, "%00000394"), Attrs([Attr("address","0x738"), -Attr("insn","cset w8, ne")]), Var("R8",Imm(64)), Int(1,64))]), -Jmps([Goto(Tid(922, "%0000039a"), Attrs([Attr("address","0x738"), -Attr("insn","cset w8, ne")]), Int(1,1), Direct(Tid(918, "%00000396")))])), -Blk(Tid(912, "%00000390"), Attrs([]), Phis([]), -Defs([Def(Tid(913, "%00000391"), Attrs([Attr("address","0x738"), -Attr("insn","cset w8, ne")]), Var("R8",Imm(64)), Int(0,64))]), -Jmps([Goto(Tid(921, "%00000399"), Attrs([Attr("address","0x738"), -Attr("insn","cset w8, ne")]), Int(1,1), Direct(Tid(918, "%00000396")))])), -Blk(Tid(918, "%00000396"), Attrs([]), Phis([]), Defs([]), -Jmps([Goto(Tid(928, "%000003a0"), Attrs([Attr("address","0x73C"), -Attr("insn","tbnz w8, #0x0, #0x14")]), - EQ(Extract(0,0,Var("R8",Imm(64))),Int(1,1)), Direct(Tid(926, "%0000039e"))), -Goto(Tid(1_888, "%00000760"), Attrs([]), Int(1,1), -Direct(Tid(1_117, "%0000045d")))])), Blk(Tid(1_117, "%0000045d"), - Attrs([Attr("address","0x740")]), Phis([]), Defs([]), -Jmps([Goto(Tid(1_120, "%00000460"), Attrs([Attr("address","0x740"), -Attr("insn","b #0x4")]), Int(1,1), Direct(Tid(1_118, "%0000045e")))])), -Blk(Tid(1_118, "%0000045e"), Attrs([Attr("address","0x744")]), Phis([]), -Defs([Def(Tid(1_124, "%00000464"), Attrs([Attr("address","0x744"), -Attr("insn","mov w8, #0x3")]), Var("R8",Imm(64)), Int(3,64)), -Def(Tid(1_132, "%0000046c"), Attrs([Attr("address","0x748"), -Attr("insn","str w8, [sp, #0x4]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(4,64)),Extract(31,0,Var("R8",Imm(64))),LittleEndian(),32))]), -Jmps([Goto(Tid(1_136, "%00000470"), Attrs([Attr("address","0x74C"), -Attr("insn","b #0x4")]), Int(1,1), Direct(Tid(926, "%0000039e")))])), -Blk(Tid(926, "%0000039e"), Attrs([Attr("address","0x750")]), Phis([]), -Defs([Def(Tid(934, "%000003a6"), Attrs([Attr("address","0x750"), -Attr("insn","adrp x8, #69632")]), Var("R8",Imm(64)), Int(69632,64)), -Def(Tid(941, "%000003ad"), Attrs([Attr("address","0x754"), -Attr("insn","ldr w8, [x8, #0x34]")]), Var("R8",Imm(64)), -UNSIGNED(64,Load(Var("mem",Mem(64,8)),PLUS(Var("R8",Imm(64)),Int(52,64)),LittleEndian(),32))), -Def(Tid(947, "%000003b3"), Attrs([Attr("address","0x758"), -Attr("insn","subs w8, w8, #0x1")]), Var("#5",Imm(32)), -PLUS(Extract(31,0,Var("R8",Imm(64))),Int(4294967294,32))), -Def(Tid(952, "%000003b8"), Attrs([Attr("address","0x758"), -Attr("insn","subs w8, w8, #0x1")]), Var("VF",Imm(1)), -NEQ(SIGNED(33,PLUS(Var("#5",Imm(32)),Int(1,32))),PLUS(SIGNED(33,Extract(31,0,Var("R8",Imm(64)))),Int(8589934591,33)))), -Def(Tid(957, "%000003bd"), Attrs([Attr("address","0x758"), -Attr("insn","subs w8, w8, #0x1")]), Var("CF",Imm(1)), -NEQ(UNSIGNED(33,PLUS(Var("#5",Imm(32)),Int(1,32))),PLUS(UNSIGNED(33,Extract(31,0,Var("R8",Imm(64)))),Int(4294967295,33)))), -Def(Tid(961, "%000003c1"), Attrs([Attr("address","0x758"), -Attr("insn","subs w8, w8, #0x1")]), Var("ZF",Imm(1)), -EQ(PLUS(Var("#5",Imm(32)),Int(1,32)),Int(0,32))), Def(Tid(965, "%000003c5"), - Attrs([Attr("address","0x758"), Attr("insn","subs w8, w8, #0x1")]), - Var("NF",Imm(1)), Extract(31,31,PLUS(Var("#5",Imm(32)),Int(1,32)))), -Def(Tid(969, "%000003c9"), Attrs([Attr("address","0x758"), -Attr("insn","subs w8, w8, #0x1")]), Var("R8",Imm(64)), -UNSIGNED(64,PLUS(Var("#5",Imm(32)),Int(1,32))))]), -Jmps([Goto(Tid(981, "%000003d5"), Attrs([Attr("address","0x75C"), -Attr("insn","cset w8, ne")]), EQ(Var("ZF",Imm(1)),Int(1,1)), -Direct(Tid(974, "%000003ce"))), Goto(Tid(982, "%000003d6"), - Attrs([Attr("address","0x75C"), Attr("insn","cset w8, ne")]), Int(1,1), -Direct(Tid(977, "%000003d1")))])), Blk(Tid(977, "%000003d1"), Attrs([]), - Phis([]), Defs([Def(Tid(978, "%000003d2"), Attrs([Attr("address","0x75C"), -Attr("insn","cset w8, ne")]), Var("R8",Imm(64)), Int(1,64))]), -Jmps([Goto(Tid(984, "%000003d8"), Attrs([Attr("address","0x75C"), -Attr("insn","cset w8, ne")]), Int(1,1), Direct(Tid(980, "%000003d4")))])), -Blk(Tid(974, "%000003ce"), Attrs([]), Phis([]), -Defs([Def(Tid(975, "%000003cf"), Attrs([Attr("address","0x75C"), -Attr("insn","cset w8, ne")]), Var("R8",Imm(64)), Int(0,64))]), -Jmps([Goto(Tid(983, "%000003d7"), Attrs([Attr("address","0x75C"), -Attr("insn","cset w8, ne")]), Int(1,1), Direct(Tid(980, "%000003d4")))])), -Blk(Tid(980, "%000003d4"), Attrs([]), Phis([]), Defs([]), -Jmps([Goto(Tid(990, "%000003de"), Attrs([Attr("address","0x760"), -Attr("insn","tbnz w8, #0x0, #0x14")]), - EQ(Extract(0,0,Var("R8",Imm(64))),Int(1,1)), Direct(Tid(988, "%000003dc"))), -Goto(Tid(1_889, "%00000761"), Attrs([]), Int(1,1), -Direct(Tid(1_096, "%00000448")))])), Blk(Tid(1_096, "%00000448"), - Attrs([Attr("address","0x764")]), Phis([]), Defs([]), -Jmps([Goto(Tid(1_099, "%0000044b"), Attrs([Attr("address","0x764"), -Attr("insn","b #0x4")]), Int(1,1), Direct(Tid(1_097, "%00000449")))])), -Blk(Tid(1_097, "%00000449"), Attrs([Attr("address","0x768")]), Phis([]), -Defs([Def(Tid(1_103, "%0000044f"), Attrs([Attr("address","0x768"), -Attr("insn","mov w8, #0x5")]), Var("R8",Imm(64)), Int(5,64)), -Def(Tid(1_111, "%00000457"), Attrs([Attr("address","0x76C"), -Attr("insn","str w8, [sp, #0x4]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(4,64)),Extract(31,0,Var("R8",Imm(64))),LittleEndian(),32))]), -Jmps([Goto(Tid(1_115, "%0000045b"), Attrs([Attr("address","0x770"), -Attr("insn","b #0x4")]), Int(1,1), Direct(Tid(988, "%000003dc")))])), -Blk(Tid(988, "%000003dc"), Attrs([Attr("address","0x774")]), Phis([]), -Defs([Def(Tid(998, "%000003e6"), Attrs([Attr("address","0x774"), -Attr("insn","ldr w8, [sp, #0x4]")]), Var("R8",Imm(64)), -UNSIGNED(64,Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(4,64)),LittleEndian(),32))), -Def(Tid(1_004, "%000003ec"), Attrs([Attr("address","0x778"), -Attr("insn","subs w8, w8, #0x3")]), Var("#6",Imm(32)), -PLUS(Extract(31,0,Var("R8",Imm(64))),Int(4294967292,32))), -Def(Tid(1_009, "%000003f1"), Attrs([Attr("address","0x778"), -Attr("insn","subs w8, w8, #0x3")]), Var("VF",Imm(1)), -NEQ(SIGNED(33,PLUS(Var("#6",Imm(32)),Int(1,32))),PLUS(SIGNED(33,Extract(31,0,Var("R8",Imm(64)))),Int(8589934589,33)))), -Def(Tid(1_014, "%000003f6"), Attrs([Attr("address","0x778"), -Attr("insn","subs w8, w8, #0x3")]), Var("CF",Imm(1)), -NEQ(UNSIGNED(33,PLUS(Var("#6",Imm(32)),Int(1,32))),PLUS(UNSIGNED(33,Extract(31,0,Var("R8",Imm(64)))),Int(4294967293,33)))), -Def(Tid(1_018, "%000003fa"), Attrs([Attr("address","0x778"), -Attr("insn","subs w8, w8, #0x3")]), Var("ZF",Imm(1)), -EQ(PLUS(Var("#6",Imm(32)),Int(1,32)),Int(0,32))), -Def(Tid(1_022, "%000003fe"), Attrs([Attr("address","0x778"), -Attr("insn","subs w8, w8, #0x3")]), Var("NF",Imm(1)), -Extract(31,31,PLUS(Var("#6",Imm(32)),Int(1,32)))), -Def(Tid(1_026, "%00000402"), Attrs([Attr("address","0x778"), -Attr("insn","subs w8, w8, #0x3")]), Var("R8",Imm(64)), -UNSIGNED(64,PLUS(Var("#6",Imm(32)),Int(1,32))))]), -Jmps([Goto(Tid(1_038, "%0000040e"), Attrs([Attr("address","0x77C"), -Attr("insn","cset w8, ne")]), EQ(Var("ZF",Imm(1)),Int(1,1)), -Direct(Tid(1_031, "%00000407"))), Goto(Tid(1_039, "%0000040f"), - Attrs([Attr("address","0x77C"), Attr("insn","cset w8, ne")]), Int(1,1), -Direct(Tid(1_034, "%0000040a")))])), Blk(Tid(1_034, "%0000040a"), Attrs([]), - Phis([]), Defs([Def(Tid(1_035, "%0000040b"), Attrs([Attr("address","0x77C"), -Attr("insn","cset w8, ne")]), Var("R8",Imm(64)), Int(1,64))]), -Jmps([Goto(Tid(1_041, "%00000411"), Attrs([Attr("address","0x77C"), -Attr("insn","cset w8, ne")]), Int(1,1), Direct(Tid(1_037, "%0000040d")))])), -Blk(Tid(1_031, "%00000407"), Attrs([]), Phis([]), -Defs([Def(Tid(1_032, "%00000408"), Attrs([Attr("address","0x77C"), -Attr("insn","cset w8, ne")]), Var("R8",Imm(64)), Int(0,64))]), -Jmps([Goto(Tid(1_040, "%00000410"), Attrs([Attr("address","0x77C"), -Attr("insn","cset w8, ne")]), Int(1,1), Direct(Tid(1_037, "%0000040d")))])), -Blk(Tid(1_037, "%0000040d"), Attrs([]), Phis([]), Defs([]), -Jmps([Goto(Tid(1_047, "%00000417"), Attrs([Attr("address","0x780"), -Attr("insn","tbnz w8, #0x0, #0x18")]), - EQ(Extract(0,0,Var("R8",Imm(64))),Int(1,1)), -Direct(Tid(1_045, "%00000415"))), Goto(Tid(1_890, "%00000762"), Attrs([]), - Int(1,1), Direct(Tid(1_068, "%0000042c")))])), Blk(Tid(1_068, "%0000042c"), - Attrs([Attr("address","0x784")]), Phis([]), Defs([]), -Jmps([Goto(Tid(1_071, "%0000042f"), Attrs([Attr("address","0x784"), -Attr("insn","b #0x4")]), Int(1,1), Direct(Tid(1_069, "%0000042d")))])), -Blk(Tid(1_069, "%0000042d"), Attrs([Attr("address","0x788")]), Phis([]), -Defs([Def(Tid(1_075, "%00000433"), Attrs([Attr("address","0x788"), -Attr("insn","adrp x8, #69632")]), Var("R8",Imm(64)), Int(69632,64)), -Def(Tid(1_082, "%0000043a"), Attrs([Attr("address","0x78C"), -Attr("insn","ldr w8, [x8, #0x38]")]), Var("R8",Imm(64)), -UNSIGNED(64,Load(Var("mem",Mem(64,8)),PLUS(Var("R8",Imm(64)),Int(56,64)),LittleEndian(),32))), -Def(Tid(1_090, "%00000442"), Attrs([Attr("address","0x790"), -Attr("insn","str w8, [sp, #0x4]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(4,64)),Extract(31,0,Var("R8",Imm(64))),LittleEndian(),32))]), -Jmps([Goto(Tid(1_094, "%00000446"), Attrs([Attr("address","0x794"), -Attr("insn","b #0x4")]), Int(1,1), Direct(Tid(1_045, "%00000415")))])), -Blk(Tid(1_045, "%00000415"), Attrs([Attr("address","0x798")]), Phis([]), -Defs([Def(Tid(1_055, "%0000041f"), Attrs([Attr("address","0x798"), -Attr("insn","ldr w0, [sp, #0xc]")]), Var("R0",Imm(64)), -UNSIGNED(64,Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(12,64)),LittleEndian(),32))), -Def(Tid(1_061, "%00000425"), Attrs([Attr("address","0x79C"), -Attr("insn","add sp, sp, #0x10")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(16,64)))]), Jmps([Call(Tid(1_066, "%0000042a"), - Attrs([Attr("address","0x7A0"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), -Sub(Tid(1_859, "@register_tm_clones"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x680")]), - "register_tm_clones", Args([Arg(Tid(1_910, "%00000776"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("register_tm_clones_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(672, "@register_tm_clones"), Attrs([Attr("address","0x680")]), - Phis([]), Defs([Def(Tid(675, "%000002a3"), Attrs([Attr("address","0x680"), -Attr("insn","adrp x0, #69632")]), Var("R0",Imm(64)), Int(69632,64)), -Def(Tid(681, "%000002a9"), Attrs([Attr("address","0x684"), -Attr("insn","add x0, x0, #0x30")]), Var("R0",Imm(64)), -PLUS(Var("R0",Imm(64)),Int(48,64))), Def(Tid(686, "%000002ae"), - Attrs([Attr("address","0x688"), Attr("insn","adrp x1, #69632")]), - Var("R1",Imm(64)), Int(69632,64)), Def(Tid(692, "%000002b4"), - Attrs([Attr("address","0x68C"), Attr("insn","add x1, x1, #0x30")]), - Var("R1",Imm(64)), PLUS(Var("R1",Imm(64)),Int(48,64))), -Def(Tid(699, "%000002bb"), Attrs([Attr("address","0x690"), -Attr("insn","sub x1, x1, x0")]), Var("R1",Imm(64)), -PLUS(PLUS(Var("R1",Imm(64)),NOT(Var("R0",Imm(64)))),Int(1,64))), -Def(Tid(705, "%000002c1"), Attrs([Attr("address","0x694"), -Attr("insn","lsr x2, x1, #63")]), Var("R2",Imm(64)), -Concat(Int(0,63),Extract(63,63,Var("R1",Imm(64))))), -Def(Tid(712, "%000002c8"), Attrs([Attr("address","0x698"), -Attr("insn","add x1, x2, x1, asr #3")]), Var("R1",Imm(64)), -PLUS(Var("R2",Imm(64)),ARSHIFT(Var("R1",Imm(64)),Int(3,3)))), -Def(Tid(718, "%000002ce"), Attrs([Attr("address","0x69C"), -Attr("insn","asr x1, x1, #1")]), Var("R1",Imm(64)), -SIGNED(64,Extract(63,1,Var("R1",Imm(64)))))]), -Jmps([Goto(Tid(724, "%000002d4"), Attrs([Attr("address","0x6A0"), -Attr("insn","cbz x1, #0x18")]), EQ(Var("R1",Imm(64)),Int(0,64)), -Direct(Tid(722, "%000002d2"))), Goto(Tid(1_891, "%00000763"), Attrs([]), - Int(1,1), Direct(Tid(1_197, "%000004ad")))])), Blk(Tid(1_197, "%000004ad"), - Attrs([Attr("address","0x6A4")]), Phis([]), -Defs([Def(Tid(1_200, "%000004b0"), Attrs([Attr("address","0x6A4"), -Attr("insn","adrp x2, #65536")]), Var("R2",Imm(64)), Int(65536,64)), -Def(Tid(1_207, "%000004b7"), Attrs([Attr("address","0x6A8"), -Attr("insn","ldr x2, [x2, #0xfe0]")]), Var("R2",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R2",Imm(64)),Int(4064,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(1_212, "%000004bc"), Attrs([Attr("address","0x6AC"), -Attr("insn","cbz x2, #0xc")]), EQ(Var("R2",Imm(64)),Int(0,64)), -Direct(Tid(722, "%000002d2"))), Goto(Tid(1_892, "%00000764"), Attrs([]), - Int(1,1), Direct(Tid(1_216, "%000004c0")))])), Blk(Tid(722, "%000002d2"), - Attrs([Attr("address","0x6B8")]), Phis([]), Defs([]), -Jmps([Call(Tid(730, "%000002da"), Attrs([Attr("address","0x6B8"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))])), -Blk(Tid(1_216, "%000004c0"), Attrs([Attr("address","0x6B0")]), Phis([]), -Defs([Def(Tid(1_220, "%000004c4"), Attrs([Attr("address","0x6B0"), -Attr("insn","mov x16, x2")]), Var("R16",Imm(64)), Var("R2",Imm(64)))]), -Jmps([Call(Tid(1_225, "%000004c9"), Attrs([Attr("address","0x6B4"), -Attr("insn","br x16")]), Int(1,1), -(Indirect(Var("R16",Imm(64))),))]))]))]))) \ No newline at end of file diff --git a/src/test/incorrect/nestedifglobal/clang/nestedifglobal.bir b/src/test/incorrect/nestedifglobal/clang/nestedifglobal.bir deleted file mode 100644 index d09863c8d..000000000 --- a/src/test/incorrect/nestedifglobal/clang/nestedifglobal.bir +++ /dev/null @@ -1,327 +0,0 @@ -00000765: program -0000072d: sub __cxa_finalize(__cxa_finalize_result) -00000766: __cxa_finalize_result :: out u32 = low:32[R0] - -000004a9: -000005a1: R16 := 0x11000 -000005a8: R17 := mem[R16 + 8, el]:u64 -000005ae: R16 := R16 + 8 -000005b3: call R17 with noreturn - -0000072e: sub __do_global_dtors_aux(__do_global_dtors_aux_result) -00000767: __do_global_dtors_aux_result :: out u32 = low:32[R0] - -000002de: -000002e2: #3 := R31 - 0x20 -000002e8: mem := mem with [#3, el]:u64 <- R29 -000002ee: mem := mem with [#3 + 8, el]:u64 <- R30 -000002f2: R31 := #3 -000002f8: R29 := R31 -00000300: mem := mem with [R31 + 0x10, el]:u64 <- R19 -00000305: R19 := 0x11000 -0000030c: R0 := pad:64[mem[R19 + 0x30]] -00000313: when 31:0[R0] <> 0 goto %00000311 -00000758: goto %00000472 - -00000472: -00000475: R0 := 0x10000 -0000047c: R0 := mem[R0 + 0xFC8, el]:u64 -00000482: when R0 = 0 goto %00000480 -00000759: goto %00000499 - -00000499: -0000049c: R0 := 0x11000 -000004a3: R0 := mem[R0 + 0x28, el]:u64 -000004a8: R30 := 0x6F0 -000004ab: call @__cxa_finalize with return %00000480 - -00000480: -00000488: R30 := 0x6F4 -0000048a: call @deregister_tm_clones with return %0000048c - -0000048c: -0000048f: R0 := 1 -00000497: mem := mem with [R19 + 0x30] <- 7:0[R0] -0000075a: goto %00000311 - -00000311: -0000031b: R19 := mem[R31 + 0x10, el]:u64 -00000322: R29 := mem[R31, el]:u64 -00000327: R30 := mem[R31 + 8, el]:u64 -0000032b: R31 := R31 + 0x20 -00000330: call R30 with noreturn - -00000732: sub __libc_start_main(__libc_start_main_main, __libc_start_main_arg2, __libc_start_main_arg3, __libc_start_main_auxv, __libc_start_main_result) -00000768: __libc_start_main_main :: in u64 = R0 -00000769: __libc_start_main_arg2 :: in u32 = low:32[R1] -0000076a: __libc_start_main_arg3 :: in out u64 = R2 -0000076b: __libc_start_main_auxv :: in out u64 = R3 -0000076c: __libc_start_main_result :: out u32 = low:32[R0] - -00000237: -0000058b: R16 := 0x11000 -00000592: R17 := mem[R16, el]:u64 -00000598: R16 := R16 -0000059d: call R17 with noreturn - -00000733: sub _fini(_fini_result) -0000076d: _fini_result :: out u32 = low:32[R0] - -0000001f: -00000025: #0 := R31 - 0x10 -0000002b: mem := mem with [#0, el]:u64 <- R29 -00000031: mem := mem with [#0 + 8, el]:u64 <- R30 -00000035: R31 := #0 -0000003b: R29 := R31 -00000042: R29 := mem[R31, el]:u64 -00000047: R30 := mem[R31 + 8, el]:u64 -0000004b: R31 := R31 + 0x10 -00000050: call R30 with noreturn - -00000734: sub _init(_init_result) -0000076e: _init_result :: out u32 = low:32[R0] - -0000066b: -00000671: #8 := R31 - 0x10 -00000677: mem := mem with [#8, el]:u64 <- R29 -0000067d: mem := mem with [#8 + 8, el]:u64 <- R30 -00000681: R31 := #8 -00000687: R29 := R31 -0000068c: R30 := 0x590 -0000068e: call @call_weak_fn with return %00000690 - -00000690: -00000695: R29 := mem[R31, el]:u64 -0000069a: R30 := mem[R31 + 8, el]:u64 -0000069e: R31 := R31 + 0x10 -000006a3: call R30 with noreturn - -00000735: sub _start(_start_result) -0000076f: _start_result :: out u32 = low:32[R0] - -000001f8: -000001fd: R29 := 0 -00000202: R30 := 0 -00000208: R5 := R0 -0000020f: R1 := mem[R31, el]:u64 -00000215: R2 := R31 + 8 -0000021b: R6 := R31 -00000220: R0 := 0x10000 -00000227: R0 := mem[R0 + 0xFD8, el]:u64 -0000022c: R3 := 0 -00000231: R4 := 0 -00000236: R30 := 0x630 -00000239: call @__libc_start_main with return %0000023b - -0000023b: -0000023e: R30 := 0x634 -00000241: call @abort with return %0000075b - -0000075b: -0000075c: call @call_weak_fn with noreturn - -00000738: sub abort() - - -0000023f: -000005cd: R16 := 0x11000 -000005d4: R17 := mem[R16 + 0x18, el]:u64 -000005da: R16 := R16 + 0x18 -000005df: call R17 with noreturn - -00000739: sub call_weak_fn(call_weak_fn_result) -00000770: call_weak_fn_result :: out u32 = low:32[R0] - -00000243: -00000246: R0 := 0x10000 -0000024d: R0 := mem[R0 + 0xFD0, el]:u64 -00000253: when R0 = 0 goto %00000251 -0000075d: goto %000004e9 - -00000251: -00000259: call R30 with noreturn - -000004e9: -000004ec: goto @__gmon_start__ - -000004ea: -000005b7: R16 := 0x11000 -000005be: R17 := mem[R16 + 0x10, el]:u64 -000005c4: R16 := R16 + 0x10 -000005c9: call R17 with noreturn - -0000073b: sub deregister_tm_clones(deregister_tm_clones_result) -00000771: deregister_tm_clones_result :: out u32 = low:32[R0] - -0000025f: -00000262: R0 := 0x11000 -00000268: R0 := R0 + 0x30 -0000026d: R1 := 0x11000 -00000273: R1 := R1 + 0x30 -00000279: #1 := ~R0 -0000027e: #2 := R1 + ~R0 -00000284: VF := extend:65[#2 + 1] <> extend:65[R1] + extend:65[#1] + 1 -0000028a: CF := pad:65[#2 + 1] <> pad:65[R1] + pad:65[#1] + 1 -0000028e: ZF := #2 + 1 = 0 -00000292: NF := 63:63[#2 + 1] -00000298: when ZF goto %00000296 -0000075e: goto %000004cb - -000004cb: -000004ce: R1 := 0x10000 -000004d5: R1 := mem[R1 + 0xFC0, el]:u64 -000004da: when R1 = 0 goto %00000296 -0000075f: goto %000004de - -00000296: -0000029e: call R30 with noreturn - -000004de: -000004e2: R16 := R1 -000004e7: call R16 with noreturn - -0000073e: sub frame_dummy(frame_dummy_result) -00000772: frame_dummy_result :: out u32 = low:32[R0] - -00000336: -00000338: call @register_tm_clones with noreturn - -0000073f: sub main(main_argc, main_argv, main_result) -00000773: main_argc :: in u32 = low:32[R0] -00000774: main_argv :: in out u64 = R1 -00000775: main_result :: out u32 = low:32[R0] - -0000033a: -0000033e: R31 := R31 - 0x10 -00000345: mem := mem with [R31 + 0xC, el]:u32 <- 0 -0000034d: mem := mem with [R31 + 8, el]:u32 <- 31:0[R0] -00000354: R9 := pad:64[mem[R31 + 8, el]:u32] -00000359: R8 := 0x11000 -00000361: mem := mem with [R8 + 0x34, el]:u32 <- 31:0[R9] -00000368: mem := mem with [R31 + 4, el]:u32 <- 0 -0000036f: R8 := pad:64[mem[R8 + 0x34, el]:u32] -00000375: #4 := 31:0[R8] - 1 -0000037a: VF := extend:33[#4 + 1] <> extend:33[31:0[R8]] + 0 -0000037f: CF := pad:33[#4 + 1] <> pad:33[31:0[R8]] - 0x100000000 -00000383: ZF := #4 + 1 = 0 -00000387: NF := 31:31[#4 + 1] -0000038b: R8 := pad:64[#4 + 1] -00000397: when ZF goto %00000390 -00000398: goto %00000393 - -00000393: -00000394: R8 := 1 -0000039a: goto %00000396 - -00000390: -00000391: R8 := 0 -00000399: goto %00000396 - -00000396: -000003a0: when 0:0[R8] goto %0000039e -00000760: goto %0000045d - -0000045d: -00000460: goto %0000045e - -0000045e: -00000464: R8 := 3 -0000046c: mem := mem with [R31 + 4, el]:u32 <- 31:0[R8] -00000470: goto %0000039e - -0000039e: -000003a6: R8 := 0x11000 -000003ad: R8 := pad:64[mem[R8 + 0x34, el]:u32] -000003b3: #5 := 31:0[R8] - 2 -000003b8: VF := extend:33[#5 + 1] <> extend:33[31:0[R8]] - 1 -000003bd: CF := pad:33[#5 + 1] <> pad:33[31:0[R8]] + 0xFFFFFFFF -000003c1: ZF := #5 + 1 = 0 -000003c5: NF := 31:31[#5 + 1] -000003c9: R8 := pad:64[#5 + 1] -000003d5: when ZF goto %000003ce -000003d6: goto %000003d1 - -000003d1: -000003d2: R8 := 1 -000003d8: goto %000003d4 - -000003ce: -000003cf: R8 := 0 -000003d7: goto %000003d4 - -000003d4: -000003de: when 0:0[R8] goto %000003dc -00000761: goto %00000448 - -00000448: -0000044b: goto %00000449 - -00000449: -0000044f: R8 := 5 -00000457: mem := mem with [R31 + 4, el]:u32 <- 31:0[R8] -0000045b: goto %000003dc - -000003dc: -000003e6: R8 := pad:64[mem[R31 + 4, el]:u32] -000003ec: #6 := 31:0[R8] - 4 -000003f1: VF := extend:33[#6 + 1] <> extend:33[31:0[R8]] - 3 -000003f6: CF := pad:33[#6 + 1] <> pad:33[31:0[R8]] + 0xFFFFFFFD -000003fa: ZF := #6 + 1 = 0 -000003fe: NF := 31:31[#6 + 1] -00000402: R8 := pad:64[#6 + 1] -0000040e: when ZF goto %00000407 -0000040f: goto %0000040a - -0000040a: -0000040b: R8 := 1 -00000411: goto %0000040d - -00000407: -00000408: R8 := 0 -00000410: goto %0000040d - -0000040d: -00000417: when 0:0[R8] goto %00000415 -00000762: goto %0000042c - -0000042c: -0000042f: goto %0000042d - -0000042d: -00000433: R8 := 0x11000 -0000043a: R8 := pad:64[mem[R8 + 0x38, el]:u32] -00000442: mem := mem with [R31 + 4, el]:u32 <- 31:0[R8] -00000446: goto %00000415 - -00000415: -0000041f: R0 := pad:64[mem[R31 + 0xC, el]:u32] -00000425: R31 := R31 + 0x10 -0000042a: call R30 with noreturn - -00000743: sub register_tm_clones(register_tm_clones_result) -00000776: register_tm_clones_result :: out u32 = low:32[R0] - -000002a0: -000002a3: R0 := 0x11000 -000002a9: R0 := R0 + 0x30 -000002ae: R1 := 0x11000 -000002b4: R1 := R1 + 0x30 -000002bb: R1 := R1 + ~R0 + 1 -000002c1: R2 := 0.63:63[R1] -000002c8: R1 := R2 + (R1 ~>> 3) -000002ce: R1 := extend:64[63:1[R1]] -000002d4: when R1 = 0 goto %000002d2 -00000763: goto %000004ad - -000004ad: -000004b0: R2 := 0x10000 -000004b7: R2 := mem[R2 + 0xFE0, el]:u64 -000004bc: when R2 = 0 goto %000002d2 -00000764: goto %000004c0 - -000002d2: -000002da: call R30 with noreturn - -000004c0: -000004c4: R16 := R2 -000004c9: call R16 with noreturn diff --git a/src/test/incorrect/nestedifglobal/clang/nestedifglobal.expected b/src/test/incorrect/nestedifglobal/clang/nestedifglobal.expected index 1fcdfdadf..f588aef60 100644 --- a/src/test/incorrect/nestedifglobal/clang/nestedifglobal.expected +++ b/src/test/incorrect/nestedifglobal/clang/nestedifglobal.expected @@ -78,7 +78,7 @@ procedure {:extern} rely_reflexive(); procedure {:extern} guarantee_reflexive(); modifies Gamma_mem, mem; -procedure main_1812(); +procedure main(); modifies CF, Gamma_CF, Gamma_NF, Gamma_R0, Gamma_R31, Gamma_R8, Gamma_R9, Gamma_VF, Gamma_ZF, Gamma_mem, Gamma_stack, NF, R0, R31, R8, R9, VF, ZF, mem, stack; free requires (memory_load64_le(mem, 69664bv64) == 0bv64); free requires (memory_load64_le(mem, 69672bv64) == 69672bv64); @@ -95,26 +95,26 @@ procedure main_1812(); free ensures (memory_load64_le(mem, 69592bv64) == 1812bv64); free ensures (memory_load64_le(mem, 69672bv64) == 69672bv64); -implementation main_1812() +implementation main() { var #4: bv32; var #5: bv32; var #6: bv32; + var $load$18: bv32; + var $load$19: bv32; + var $load$20: bv32; + var $load$21: bv32; + var $load$22: bv32; + var $load$23: bv32; var Gamma_#4: bool; var Gamma_#5: bool; var Gamma_#6: bool; - var Gamma_load18: bool; - var Gamma_load19: bool; - var Gamma_load20: bool; - var Gamma_load21: bool; - var Gamma_load22: bool; - var Gamma_load23: bool; - var load18: bv32; - var load19: bv32; - var load20: bv32; - var load21: bv32; - var load22: bv32; - var load23: bv32; + var Gamma_$load$18: bool; + var Gamma_$load$19: bool; + var Gamma_$load$20: bool; + var Gamma_$load$21: bool; + var Gamma_$load$22: bool; + var Gamma_$load$23: bool; lmain: assume {:captureState "lmain"} true; R31, Gamma_R31 := bvadd64(R31, 18446744073709551600bv64), Gamma_R31; @@ -122,8 +122,8 @@ implementation main_1812() assume {:captureState "%00000345"} true; stack, Gamma_stack := memory_store32_le(stack, bvadd64(R31, 8bv64), R0[32:0]), gamma_store32(Gamma_stack, bvadd64(R31, 8bv64), Gamma_R0); assume {:captureState "%0000034d"} true; - load18, Gamma_load18 := memory_load32_le(stack, bvadd64(R31, 8bv64)), gamma_load32(Gamma_stack, bvadd64(R31, 8bv64)); - R9, Gamma_R9 := zero_extend32_32(load18), Gamma_load18; + $load$18, Gamma_$load$18 := memory_load32_le(stack, bvadd64(R31, 8bv64)), gamma_load32(Gamma_stack, bvadd64(R31, 8bv64)); + R9, Gamma_R9 := zero_extend32_32($load$18), Gamma_$load$18; R8, Gamma_R8 := 69632bv64, true; call rely(); assert (L(mem, bvadd64(R8, 52bv64)) ==> Gamma_R9); @@ -132,8 +132,8 @@ implementation main_1812() stack, Gamma_stack := memory_store32_le(stack, bvadd64(R31, 4bv64), 0bv32), gamma_store32(Gamma_stack, bvadd64(R31, 4bv64), true); assume {:captureState "%00000368"} true; call rely(); - load19, Gamma_load19 := memory_load32_le(mem, bvadd64(R8, 52bv64)), (gamma_load32(Gamma_mem, bvadd64(R8, 52bv64)) || L(mem, bvadd64(R8, 52bv64))); - R8, Gamma_R8 := zero_extend32_32(load19), Gamma_load19; + $load$19, Gamma_$load$19 := memory_load32_le(mem, bvadd64(R8, 52bv64)), (gamma_load32(Gamma_mem, bvadd64(R8, 52bv64)) || L(mem, bvadd64(R8, 52bv64))); + R8, Gamma_R8 := zero_extend32_32($load$19), Gamma_$load$19; #4, Gamma_#4 := bvadd32(R8[32:0], 4294967295bv32), Gamma_R8; VF, Gamma_VF := bvnot1(bvcomp33(sign_extend1_32(bvadd32(#4, 1bv32)), bvadd33(sign_extend1_32(R8[32:0]), 0bv33))), (Gamma_R8 && Gamma_#4); CF, Gamma_CF := bvnot1(bvcomp33(zero_extend1_32(bvadd32(#4, 1bv32)), bvadd33(zero_extend1_32(R8[32:0]), 4294967296bv33))), (Gamma_R8 && Gamma_#4); @@ -142,30 +142,18 @@ implementation main_1812() R8, Gamma_R8 := zero_extend32_32(bvadd32(#4, 1bv32)), Gamma_#4; assert Gamma_ZF; goto lmain_goto_l00000390, lmain_goto_l00000393; - lmain_goto_l00000393: - assume {:captureState "lmain_goto_l00000393"} true; - assume (bvcomp1(ZF, 1bv1) == 0bv1); - R8, Gamma_R8 := 1bv64, true; - goto l00000393; l00000393: assume {:captureState "l00000393"} true; + R8, Gamma_R8 := 1bv64, true; goto l00000396; - lmain_goto_l00000390: - assume {:captureState "lmain_goto_l00000390"} true; - assume (bvcomp1(ZF, 1bv1) != 0bv1); - R8, Gamma_R8 := 0bv64, true; - goto l00000390; l00000390: assume {:captureState "l00000390"} true; + R8, Gamma_R8 := 0bv64, true; goto l00000396; l00000396: assume {:captureState "l00000396"} true; assert Gamma_R8; goto l00000396_goto_l0000039e, l00000396_goto_l0000045d; - l00000396_goto_l0000045d: - assume {:captureState "l00000396_goto_l0000045d"} true; - assume (bvcomp1(R8[1:0], 1bv1) == 0bv1); - goto l0000045d; l0000045d: assume {:captureState "l0000045d"} true; goto l0000045e; @@ -175,16 +163,12 @@ implementation main_1812() stack, Gamma_stack := memory_store32_le(stack, bvadd64(R31, 4bv64), R8[32:0]), gamma_store32(Gamma_stack, bvadd64(R31, 4bv64), Gamma_R8); assume {:captureState "%0000046c"} true; goto l0000039e; - l00000396_goto_l0000039e: - assume {:captureState "l00000396_goto_l0000039e"} true; - assume (bvcomp1(R8[1:0], 1bv1) != 0bv1); - goto l0000039e; l0000039e: assume {:captureState "l0000039e"} true; R8, Gamma_R8 := 69632bv64, true; call rely(); - load20, Gamma_load20 := memory_load32_le(mem, bvadd64(R8, 52bv64)), (gamma_load32(Gamma_mem, bvadd64(R8, 52bv64)) || L(mem, bvadd64(R8, 52bv64))); - R8, Gamma_R8 := zero_extend32_32(load20), Gamma_load20; + $load$20, Gamma_$load$20 := memory_load32_le(mem, bvadd64(R8, 52bv64)), (gamma_load32(Gamma_mem, bvadd64(R8, 52bv64)) || L(mem, bvadd64(R8, 52bv64))); + R8, Gamma_R8 := zero_extend32_32($load$20), Gamma_$load$20; #5, Gamma_#5 := bvadd32(R8[32:0], 4294967294bv32), Gamma_R8; VF, Gamma_VF := bvnot1(bvcomp33(sign_extend1_32(bvadd32(#5, 1bv32)), bvadd33(sign_extend1_32(R8[32:0]), 8589934591bv33))), (Gamma_R8 && Gamma_#5); CF, Gamma_CF := bvnot1(bvcomp33(zero_extend1_32(bvadd32(#5, 1bv32)), bvadd33(zero_extend1_32(R8[32:0]), 4294967295bv33))), (Gamma_R8 && Gamma_#5); @@ -193,30 +177,18 @@ implementation main_1812() R8, Gamma_R8 := zero_extend32_32(bvadd32(#5, 1bv32)), Gamma_#5; assert Gamma_ZF; goto l0000039e_goto_l000003ce, l0000039e_goto_l000003d1; - l0000039e_goto_l000003d1: - assume {:captureState "l0000039e_goto_l000003d1"} true; - assume (bvcomp1(ZF, 1bv1) == 0bv1); - R8, Gamma_R8 := 1bv64, true; - goto l000003d1; l000003d1: assume {:captureState "l000003d1"} true; + R8, Gamma_R8 := 1bv64, true; goto l000003d4; - l0000039e_goto_l000003ce: - assume {:captureState "l0000039e_goto_l000003ce"} true; - assume (bvcomp1(ZF, 1bv1) != 0bv1); - R8, Gamma_R8 := 0bv64, true; - goto l000003ce; l000003ce: assume {:captureState "l000003ce"} true; + R8, Gamma_R8 := 0bv64, true; goto l000003d4; l000003d4: assume {:captureState "l000003d4"} true; assert Gamma_R8; goto l000003d4_goto_l000003dc, l000003d4_goto_l00000448; - l000003d4_goto_l00000448: - assume {:captureState "l000003d4_goto_l00000448"} true; - assume (bvcomp1(R8[1:0], 1bv1) == 0bv1); - goto l00000448; l00000448: assume {:captureState "l00000448"} true; goto l00000449; @@ -226,14 +198,10 @@ implementation main_1812() stack, Gamma_stack := memory_store32_le(stack, bvadd64(R31, 4bv64), R8[32:0]), gamma_store32(Gamma_stack, bvadd64(R31, 4bv64), Gamma_R8); assume {:captureState "%00000457"} true; goto l000003dc; - l000003d4_goto_l000003dc: - assume {:captureState "l000003d4_goto_l000003dc"} true; - assume (bvcomp1(R8[1:0], 1bv1) != 0bv1); - goto l000003dc; l000003dc: assume {:captureState "l000003dc"} true; - load21, Gamma_load21 := memory_load32_le(stack, bvadd64(R31, 4bv64)), gamma_load32(Gamma_stack, bvadd64(R31, 4bv64)); - R8, Gamma_R8 := zero_extend32_32(load21), Gamma_load21; + $load$21, Gamma_$load$21 := memory_load32_le(stack, bvadd64(R31, 4bv64)), gamma_load32(Gamma_stack, bvadd64(R31, 4bv64)); + R8, Gamma_R8 := zero_extend32_32($load$21), Gamma_$load$21; #6, Gamma_#6 := bvadd32(R8[32:0], 4294967292bv32), Gamma_R8; VF, Gamma_VF := bvnot1(bvcomp33(sign_extend1_32(bvadd32(#6, 1bv32)), bvadd33(sign_extend1_32(R8[32:0]), 8589934589bv33))), (Gamma_R8 && Gamma_#6); CF, Gamma_CF := bvnot1(bvcomp33(zero_extend1_32(bvadd32(#6, 1bv32)), bvadd33(zero_extend1_32(R8[32:0]), 4294967293bv33))), (Gamma_R8 && Gamma_#6); @@ -242,30 +210,18 @@ implementation main_1812() R8, Gamma_R8 := zero_extend32_32(bvadd32(#6, 1bv32)), Gamma_#6; assert Gamma_ZF; goto l000003dc_goto_l00000407, l000003dc_goto_l0000040a; - l000003dc_goto_l0000040a: - assume {:captureState "l000003dc_goto_l0000040a"} true; - assume (bvcomp1(ZF, 1bv1) == 0bv1); - R8, Gamma_R8 := 1bv64, true; - goto l0000040a; l0000040a: assume {:captureState "l0000040a"} true; + R8, Gamma_R8 := 1bv64, true; goto l0000040d; - l000003dc_goto_l00000407: - assume {:captureState "l000003dc_goto_l00000407"} true; - assume (bvcomp1(ZF, 1bv1) != 0bv1); - R8, Gamma_R8 := 0bv64, true; - goto l00000407; l00000407: assume {:captureState "l00000407"} true; + R8, Gamma_R8 := 0bv64, true; goto l0000040d; l0000040d: assume {:captureState "l0000040d"} true; assert Gamma_R8; goto l0000040d_goto_l00000415, l0000040d_goto_l0000042c; - l0000040d_goto_l0000042c: - assume {:captureState "l0000040d_goto_l0000042c"} true; - assume (bvcomp1(R8[1:0], 1bv1) == 0bv1); - goto l0000042c; l0000042c: assume {:captureState "l0000042c"} true; goto l0000042d; @@ -273,23 +229,67 @@ implementation main_1812() assume {:captureState "l0000042d"} true; R8, Gamma_R8 := 69632bv64, true; call rely(); - load22, Gamma_load22 := memory_load32_le(mem, bvadd64(R8, 56bv64)), (gamma_load32(Gamma_mem, bvadd64(R8, 56bv64)) || L(mem, bvadd64(R8, 56bv64))); - R8, Gamma_R8 := zero_extend32_32(load22), Gamma_load22; + $load$22, Gamma_$load$22 := memory_load32_le(mem, bvadd64(R8, 56bv64)), (gamma_load32(Gamma_mem, bvadd64(R8, 56bv64)) || L(mem, bvadd64(R8, 56bv64))); + R8, Gamma_R8 := zero_extend32_32($load$22), Gamma_$load$22; stack, Gamma_stack := memory_store32_le(stack, bvadd64(R31, 4bv64), R8[32:0]), gamma_store32(Gamma_stack, bvadd64(R31, 4bv64), Gamma_R8); assume {:captureState "%00000442"} true; goto l00000415; + l00000415: + assume {:captureState "l00000415"} true; + $load$23, Gamma_$load$23 := memory_load32_le(stack, bvadd64(R31, 12bv64)), gamma_load32(Gamma_stack, bvadd64(R31, 12bv64)); + R0, Gamma_R0 := zero_extend32_32($load$23), Gamma_$load$23; + R31, Gamma_R31 := bvadd64(R31, 16bv64), Gamma_R31; + goto main_basil_return; + lmain_goto_l00000390: + assume {:captureState "lmain_goto_l00000390"} true; + assume (bvcomp1(ZF, 1bv1) != 0bv1); + goto l00000390; + lmain_goto_l00000393: + assume {:captureState "lmain_goto_l00000393"} true; + assume (bvcomp1(ZF, 1bv1) == 0bv1); + goto l00000393; + l00000396_goto_l0000039e: + assume {:captureState "l00000396_goto_l0000039e"} true; + assume (bvcomp1(R8[1:0], 1bv1) != 0bv1); + goto l0000039e; + l00000396_goto_l0000045d: + assume {:captureState "l00000396_goto_l0000045d"} true; + assume (bvcomp1(R8[1:0], 1bv1) == 0bv1); + goto l0000045d; + l0000039e_goto_l000003ce: + assume {:captureState "l0000039e_goto_l000003ce"} true; + assume (bvcomp1(ZF, 1bv1) != 0bv1); + goto l000003ce; + l0000039e_goto_l000003d1: + assume {:captureState "l0000039e_goto_l000003d1"} true; + assume (bvcomp1(ZF, 1bv1) == 0bv1); + goto l000003d1; + l000003d4_goto_l000003dc: + assume {:captureState "l000003d4_goto_l000003dc"} true; + assume (bvcomp1(R8[1:0], 1bv1) != 0bv1); + goto l000003dc; + l000003d4_goto_l00000448: + assume {:captureState "l000003d4_goto_l00000448"} true; + assume (bvcomp1(R8[1:0], 1bv1) == 0bv1); + goto l00000448; + l000003dc_goto_l00000407: + assume {:captureState "l000003dc_goto_l00000407"} true; + assume (bvcomp1(ZF, 1bv1) != 0bv1); + goto l00000407; + l000003dc_goto_l0000040a: + assume {:captureState "l000003dc_goto_l0000040a"} true; + assume (bvcomp1(ZF, 1bv1) == 0bv1); + goto l0000040a; l0000040d_goto_l00000415: assume {:captureState "l0000040d_goto_l00000415"} true; assume (bvcomp1(R8[1:0], 1bv1) != 0bv1); goto l00000415; - l00000415: - assume {:captureState "l00000415"} true; - load23, Gamma_load23 := memory_load32_le(stack, bvadd64(R31, 12bv64)), gamma_load32(Gamma_stack, bvadd64(R31, 12bv64)); - R0, Gamma_R0 := zero_extend32_32(load23), Gamma_load23; - R31, Gamma_R31 := bvadd64(R31, 16bv64), Gamma_R31; - goto main_1812_basil_return; - main_1812_basil_return: - assume {:captureState "main_1812_basil_return"} true; + l0000040d_goto_l0000042c: + assume {:captureState "l0000040d_goto_l0000042c"} true; + assume (bvcomp1(R8[1:0], 1bv1) == 0bv1); + goto l0000042c; + main_basil_return: + assume {:captureState "main_basil_return"} true; return; } diff --git a/src/test/incorrect/nestedifglobal/clang/nestedifglobal.gts b/src/test/incorrect/nestedifglobal/clang/nestedifglobal.gts deleted file mode 100644 index 061475449..000000000 Binary files a/src/test/incorrect/nestedifglobal/clang/nestedifglobal.gts and /dev/null differ diff --git a/src/test/incorrect/nestedifglobal/clang/nestedifglobal.md5sum b/src/test/incorrect/nestedifglobal/clang/nestedifglobal.md5sum new file mode 100644 index 000000000..f8cc3832a --- /dev/null +++ b/src/test/incorrect/nestedifglobal/clang/nestedifglobal.md5sum @@ -0,0 +1,5 @@ +dfc6042b787d9375e2026c5e29e0a750 incorrect/nestedifglobal/clang/a.out +9e3841ec297f7b8663b2aa41460e80c8 incorrect/nestedifglobal/clang/nestedifglobal.adt +3beb30b73b0022fb5718347f71e19072 incorrect/nestedifglobal/clang/nestedifglobal.bir +08d0147e58c1b38851f1373d42e4640f incorrect/nestedifglobal/clang/nestedifglobal.relf +b30a3e45f8576a8a1848eb1b58d99ba0 incorrect/nestedifglobal/clang/nestedifglobal.gts diff --git a/src/test/incorrect/nestedifglobal/clang/nestedifglobal.relf b/src/test/incorrect/nestedifglobal/clang/nestedifglobal.relf deleted file mode 100644 index bf4c31e9c..000000000 --- a/src/test/incorrect/nestedifglobal/clang/nestedifglobal.relf +++ /dev/null @@ -1,124 +0,0 @@ - -Relocation section '.rela.dyn' at offset 0x460 contains 8 entries: - Offset Info Type Symbol's Value Symbol's Name + Addend -0000000000010dc8 0000000000000403 R_AARCH64_RELATIVE 710 -0000000000010dd0 0000000000000403 R_AARCH64_RELATIVE 6c0 -0000000000010fd8 0000000000000403 R_AARCH64_RELATIVE 714 -0000000000011028 0000000000000403 R_AARCH64_RELATIVE 11028 -0000000000010fc0 0000000400000401 R_AARCH64_GLOB_DAT 0000000000000000 _ITM_deregisterTMCloneTable + 0 -0000000000010fc8 0000000500000401 R_AARCH64_GLOB_DAT 0000000000000000 __cxa_finalize@GLIBC_2.17 + 0 -0000000000010fd0 0000000600000401 R_AARCH64_GLOB_DAT 0000000000000000 __gmon_start__ + 0 -0000000000010fe0 0000000800000401 R_AARCH64_GLOB_DAT 0000000000000000 _ITM_registerTMCloneTable + 0 - -Relocation section '.rela.plt' at offset 0x520 contains 4 entries: - Offset Info Type Symbol's Value Symbol's Name + Addend -0000000000011000 0000000300000402 R_AARCH64_JUMP_SLOT 0000000000000000 __libc_start_main@GLIBC_2.34 + 0 -0000000000011008 0000000500000402 R_AARCH64_JUMP_SLOT 0000000000000000 __cxa_finalize@GLIBC_2.17 + 0 -0000000000011010 0000000600000402 R_AARCH64_JUMP_SLOT 0000000000000000 __gmon_start__ + 0 -0000000000011018 0000000700000402 R_AARCH64_JUMP_SLOT 0000000000000000 abort@GLIBC_2.17 + 0 - -Symbol table '.dynsym' contains 9 entries: - Num: Value Size Type Bind Vis Ndx Name - 0: 0000000000000000 0 NOTYPE LOCAL DEFAULT UND - 1: 0000000000000580 0 SECTION LOCAL DEFAULT 11 .init - 2: 0000000000011020 0 SECTION LOCAL DEFAULT 23 .data - 3: 0000000000000000 0 FUNC GLOBAL DEFAULT UND __libc_start_main@GLIBC_2.34 (2) - 4: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_deregisterTMCloneTable - 5: 0000000000000000 0 FUNC WEAK DEFAULT UND __cxa_finalize@GLIBC_2.17 (3) - 6: 0000000000000000 0 NOTYPE WEAK DEFAULT UND __gmon_start__ - 7: 0000000000000000 0 FUNC GLOBAL DEFAULT UND abort@GLIBC_2.17 (3) - 8: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_registerTMCloneTable - -Symbol table '.symtab' contains 91 entries: - Num: Value Size Type Bind Vis Ndx Name - 0: 0000000000000000 0 NOTYPE LOCAL DEFAULT UND - 1: 0000000000000238 0 SECTION LOCAL DEFAULT 1 .interp - 2: 0000000000000254 0 SECTION LOCAL DEFAULT 2 .note.gnu.build-id - 3: 0000000000000278 0 SECTION LOCAL DEFAULT 3 .note.ABI-tag - 4: 0000000000000298 0 SECTION LOCAL DEFAULT 4 .gnu.hash - 5: 00000000000002b8 0 SECTION LOCAL DEFAULT 5 .dynsym - 6: 0000000000000390 0 SECTION LOCAL DEFAULT 6 .dynstr - 7: 000000000000041e 0 SECTION LOCAL DEFAULT 7 .gnu.version - 8: 0000000000000430 0 SECTION LOCAL DEFAULT 8 .gnu.version_r - 9: 0000000000000460 0 SECTION LOCAL DEFAULT 9 .rela.dyn - 10: 0000000000000520 0 SECTION LOCAL DEFAULT 10 .rela.plt - 11: 0000000000000580 0 SECTION LOCAL DEFAULT 11 .init - 12: 00000000000005a0 0 SECTION LOCAL DEFAULT 12 .plt - 13: 0000000000000600 0 SECTION LOCAL DEFAULT 13 .text - 14: 00000000000007a4 0 SECTION LOCAL DEFAULT 14 .fini - 15: 00000000000007b8 0 SECTION LOCAL DEFAULT 15 .rodata - 16: 00000000000007bc 0 SECTION LOCAL DEFAULT 16 .eh_frame_hdr - 17: 00000000000007f8 0 SECTION LOCAL DEFAULT 17 .eh_frame - 18: 0000000000010dc8 0 SECTION LOCAL DEFAULT 18 .init_array - 19: 0000000000010dd0 0 SECTION LOCAL DEFAULT 19 .fini_array - 20: 0000000000010dd8 0 SECTION LOCAL DEFAULT 20 .dynamic - 21: 0000000000010fb8 0 SECTION LOCAL DEFAULT 21 .got - 22: 0000000000010fe8 0 SECTION LOCAL DEFAULT 22 .got.plt - 23: 0000000000011020 0 SECTION LOCAL DEFAULT 23 .data - 24: 0000000000011030 0 SECTION LOCAL DEFAULT 24 .bss - 25: 0000000000000000 0 SECTION LOCAL DEFAULT 25 .comment - 26: 0000000000000000 0 FILE LOCAL DEFAULT ABS Scrt1.o - 27: 0000000000000278 0 NOTYPE LOCAL DEFAULT 3 $d - 28: 0000000000000278 32 OBJECT LOCAL DEFAULT 3 __abi_tag - 29: 0000000000000600 0 NOTYPE LOCAL DEFAULT 13 $x - 30: 000000000000080c 0 NOTYPE LOCAL DEFAULT 17 $d - 31: 00000000000007b8 0 NOTYPE LOCAL DEFAULT 15 $d - 32: 0000000000000000 0 FILE LOCAL DEFAULT ABS crti.o - 33: 0000000000000634 0 NOTYPE LOCAL DEFAULT 13 $x - 34: 0000000000000634 20 FUNC LOCAL DEFAULT 13 call_weak_fn - 35: 0000000000000580 0 NOTYPE LOCAL DEFAULT 11 $x - 36: 00000000000007a4 0 NOTYPE LOCAL DEFAULT 14 $x - 37: 0000000000000000 0 FILE LOCAL DEFAULT ABS crtn.o - 38: 0000000000000590 0 NOTYPE LOCAL DEFAULT 11 $x - 39: 00000000000007b0 0 NOTYPE LOCAL DEFAULT 14 $x - 40: 0000000000000000 0 FILE LOCAL DEFAULT ABS crtstuff.c - 41: 0000000000000650 0 NOTYPE LOCAL DEFAULT 13 $x - 42: 0000000000000650 0 FUNC LOCAL DEFAULT 13 deregister_tm_clones - 43: 0000000000000680 0 FUNC LOCAL DEFAULT 13 register_tm_clones - 44: 0000000000011028 0 NOTYPE LOCAL DEFAULT 23 $d - 45: 00000000000006c0 0 FUNC LOCAL DEFAULT 13 __do_global_dtors_aux - 46: 0000000000011030 1 OBJECT LOCAL DEFAULT 24 completed.0 - 47: 0000000000010dd0 0 NOTYPE LOCAL DEFAULT 19 $d - 48: 0000000000010dd0 0 OBJECT LOCAL DEFAULT 19 __do_global_dtors_aux_fini_array_entry - 49: 0000000000000710 0 FUNC LOCAL DEFAULT 13 frame_dummy - 50: 0000000000010dc8 0 NOTYPE LOCAL DEFAULT 18 $d - 51: 0000000000010dc8 0 OBJECT LOCAL DEFAULT 18 __frame_dummy_init_array_entry - 52: 0000000000000820 0 NOTYPE LOCAL DEFAULT 17 $d - 53: 0000000000011030 0 NOTYPE LOCAL DEFAULT 24 $d - 54: 0000000000000000 0 FILE LOCAL DEFAULT ABS nestedifglobal.c - 55: 0000000000000714 0 NOTYPE LOCAL DEFAULT 13 $x.0 - 56: 0000000000011034 0 NOTYPE LOCAL DEFAULT 24 $d.1 - 57: 000000000000002a 0 NOTYPE LOCAL DEFAULT 25 $d.2 - 58: 0000000000000880 0 NOTYPE LOCAL DEFAULT 17 $d.3 - 59: 0000000000000000 0 FILE LOCAL DEFAULT ABS crtstuff.c - 60: 00000000000008ac 0 NOTYPE LOCAL DEFAULT 17 $d - 61: 00000000000008ac 0 OBJECT LOCAL DEFAULT 17 __FRAME_END__ - 62: 0000000000000000 0 FILE LOCAL DEFAULT ABS - 63: 0000000000010dd8 0 OBJECT LOCAL DEFAULT ABS _DYNAMIC - 64: 00000000000007bc 0 NOTYPE LOCAL DEFAULT 16 __GNU_EH_FRAME_HDR - 65: 0000000000010fb8 0 OBJECT LOCAL DEFAULT ABS _GLOBAL_OFFSET_TABLE_ - 66: 00000000000005a0 0 NOTYPE LOCAL DEFAULT 12 $x - 67: 0000000000000000 0 FUNC GLOBAL DEFAULT UND __libc_start_main@GLIBC_2.34 - 68: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_deregisterTMCloneTable - 69: 0000000000011020 0 NOTYPE WEAK DEFAULT 23 data_start - 70: 0000000000011030 0 NOTYPE GLOBAL DEFAULT 24 __bss_start__ - 71: 0000000000000000 0 FUNC WEAK DEFAULT UND __cxa_finalize@GLIBC_2.17 - 72: 0000000000011040 0 NOTYPE GLOBAL DEFAULT 24 _bss_end__ - 73: 0000000000011030 0 NOTYPE GLOBAL DEFAULT 23 _edata - 74: 0000000000011038 4 OBJECT GLOBAL DEFAULT 24 z - 75: 0000000000011034 4 OBJECT GLOBAL DEFAULT 24 x - 76: 00000000000007a4 0 FUNC GLOBAL HIDDEN 14 _fini - 77: 0000000000011040 0 NOTYPE GLOBAL DEFAULT 24 __bss_end__ - 78: 0000000000011020 0 NOTYPE GLOBAL DEFAULT 23 __data_start - 79: 0000000000000000 0 NOTYPE WEAK DEFAULT UND __gmon_start__ - 80: 0000000000011028 0 OBJECT GLOBAL HIDDEN 23 __dso_handle - 81: 0000000000000000 0 FUNC GLOBAL DEFAULT UND abort@GLIBC_2.17 - 82: 00000000000007b8 4 OBJECT GLOBAL DEFAULT 15 _IO_stdin_used - 83: 0000000000011040 0 NOTYPE GLOBAL DEFAULT 24 _end - 84: 0000000000000600 52 FUNC GLOBAL DEFAULT 13 _start - 85: 0000000000011040 0 NOTYPE GLOBAL DEFAULT 24 __end__ - 86: 0000000000011030 0 NOTYPE GLOBAL DEFAULT 24 __bss_start - 87: 0000000000000714 144 FUNC GLOBAL DEFAULT 13 main - 88: 0000000000011030 0 OBJECT GLOBAL HIDDEN 23 __TMC_END__ - 89: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_registerTMCloneTable - 90: 0000000000000580 0 FUNC GLOBAL HIDDEN 11 _init diff --git a/src/test/incorrect/nestedifglobal/clang/nestedifglobal_gtirb.expected b/src/test/incorrect/nestedifglobal/clang/nestedifglobal_gtirb.expected index e5d0fdb10..8e49b5b87 100644 --- a/src/test/incorrect/nestedifglobal/clang/nestedifglobal_gtirb.expected +++ b/src/test/incorrect/nestedifglobal/clang/nestedifglobal_gtirb.expected @@ -77,7 +77,7 @@ procedure {:extern} rely_reflexive(); procedure {:extern} guarantee_reflexive(); modifies Gamma_mem, mem; -procedure main_1812(); +procedure main(); modifies CF, Gamma_CF, Gamma_NF, Gamma_R0, Gamma_R31, Gamma_R8, Gamma_R9, Gamma_VF, Gamma_ZF, Gamma_mem, Gamma_stack, NF, R0, R31, R8, R9, VF, ZF, mem, stack; free requires (memory_load64_le(mem, 69664bv64) == 0bv64); free requires (memory_load64_le(mem, 69672bv64) == 69672bv64); @@ -94,179 +94,179 @@ procedure main_1812(); free ensures (memory_load64_le(mem, 69592bv64) == 1812bv64); free ensures (memory_load64_le(mem, 69672bv64) == 69672bv64); -implementation main_1812() +implementation main() { - var Cse0__5_1_2: bv32; - var Cse0__5_2_8: bv32; - var Cse0__5_4_1: bv32; - var Gamma_Cse0__5_1_2: bool; - var Gamma_Cse0__5_2_8: bool; - var Gamma_Cse0__5_4_1: bool; - var Gamma_load3: bool; - var Gamma_load4: bool; - var Gamma_load5: bool; - var Gamma_load6: bool; - var Gamma_load7: bool; - var Gamma_load8: bool; - var load3: bv32; - var load4: bv32; - var load5: bv32; - var load6: bv32; - var load7: bv32; - var load8: bv32; - main_1812__0__5~JKHoJWR8~6Qpjlk4xLag: - assume {:captureState "main_1812__0__5~JKHoJWR8~6Qpjlk4xLag"} true; + var $load3: bv32; + var $load4: bv32; + var $load5: bv32; + var $load6: bv32; + var $load7: bv32; + var $load8: bv32; + var Cse0__5$1$2: bv32; + var Cse0__5$2$8: bv32; + var Cse0__5$4$1: bv32; + var Gamma_$load3: bool; + var Gamma_$load4: bool; + var Gamma_$load5: bool; + var Gamma_$load6: bool; + var Gamma_$load7: bool; + var Gamma_$load8: bool; + var Gamma_Cse0__5$1$2: bool; + var Gamma_Cse0__5$2$8: bool; + var Gamma_Cse0__5$4$1: bool; + $main$__0__$5~JKHoJWR8~6Qpjlk4xLag: + assume {:captureState "$main$__0__$5~JKHoJWR8~6Qpjlk4xLag"} true; R31, Gamma_R31 := bvadd64(R31, 18446744073709551600bv64), Gamma_R31; stack, Gamma_stack := memory_store32_le(stack, bvadd64(R31, 12bv64), 0bv32), gamma_store32(Gamma_stack, bvadd64(R31, 12bv64), true); - assume {:captureState "1816_0"} true; + assume {:captureState "1816$0"} true; stack, Gamma_stack := memory_store32_le(stack, bvadd64(R31, 8bv64), R0[32:0]), gamma_store32(Gamma_stack, bvadd64(R31, 8bv64), Gamma_R0); - assume {:captureState "1820_0"} true; - load4, Gamma_load4 := memory_load32_le(stack, bvadd64(R31, 8bv64)), gamma_load32(Gamma_stack, bvadd64(R31, 8bv64)); - R9, Gamma_R9 := zero_extend32_32(load4), Gamma_load4; + assume {:captureState "1820$0"} true; + $load4, Gamma_$load4 := memory_load32_le(stack, bvadd64(R31, 8bv64)), gamma_load32(Gamma_stack, bvadd64(R31, 8bv64)); + R9, Gamma_R9 := zero_extend32_32($load4), Gamma_$load4; R8, Gamma_R8 := 69632bv64, true; call rely(); assert (L(mem, bvadd64(R8, 52bv64)) ==> Gamma_R9); mem, Gamma_mem := memory_store32_le(mem, bvadd64(R8, 52bv64), R9[32:0]), gamma_store32(Gamma_mem, bvadd64(R8, 52bv64), Gamma_R9); - assume {:captureState "1832_0"} true; + assume {:captureState "1832$0"} true; stack, Gamma_stack := memory_store32_le(stack, bvadd64(R31, 4bv64), 0bv32), gamma_store32(Gamma_stack, bvadd64(R31, 4bv64), true); - assume {:captureState "1836_0"} true; + assume {:captureState "1836$0"} true; call rely(); - load5, Gamma_load5 := memory_load32_le(mem, bvadd64(R8, 52bv64)), (gamma_load32(Gamma_mem, bvadd64(R8, 52bv64)) || L(mem, bvadd64(R8, 52bv64))); - R8, Gamma_R8 := zero_extend32_32(load5), Gamma_load5; - Cse0__5_2_8, Gamma_Cse0__5_2_8 := bvadd32(R8[32:0], 0bv32), Gamma_R8; - VF, Gamma_VF := bvnot1(bvcomp32(Cse0__5_2_8, Cse0__5_2_8)), Gamma_Cse0__5_2_8; - CF, Gamma_CF := bvnot1(bvcomp33(zero_extend1_32(Cse0__5_2_8), bvadd33(zero_extend1_32(R8[32:0]), 4294967296bv33))), (Gamma_R8 && Gamma_Cse0__5_2_8); - ZF, Gamma_ZF := bvcomp32(Cse0__5_2_8, 0bv32), Gamma_Cse0__5_2_8; - NF, Gamma_NF := Cse0__5_2_8[32:31], Gamma_Cse0__5_2_8; - R8, Gamma_R8 := zero_extend32_32(Cse0__5_2_8), Gamma_Cse0__5_2_8; + $load5, Gamma_$load5 := memory_load32_le(mem, bvadd64(R8, 52bv64)), (gamma_load32(Gamma_mem, bvadd64(R8, 52bv64)) || L(mem, bvadd64(R8, 52bv64))); + R8, Gamma_R8 := zero_extend32_32($load5), Gamma_$load5; + Cse0__5$2$8, Gamma_Cse0__5$2$8 := bvadd32(R8[32:0], 0bv32), Gamma_R8; + VF, Gamma_VF := bvnot1(bvcomp32(Cse0__5$2$8, Cse0__5$2$8)), Gamma_Cse0__5$2$8; + CF, Gamma_CF := bvnot1(bvcomp33(zero_extend1_32(Cse0__5$2$8), bvadd33(zero_extend1_32(R8[32:0]), 4294967296bv33))), (Gamma_R8 && Gamma_Cse0__5$2$8); + ZF, Gamma_ZF := bvcomp32(Cse0__5$2$8, 0bv32), Gamma_Cse0__5$2$8; + NF, Gamma_NF := Cse0__5$2$8[32:31], Gamma_Cse0__5$2$8; + R8, Gamma_R8 := zero_extend32_32(Cse0__5$2$8), Gamma_Cse0__5$2$8; assert Gamma_ZF; - goto main_1812__0__5~JKHoJWR8~6Qpjlk4xLag$__0, main_1812__0__5~JKHoJWR8~6Qpjlk4xLag$__1; - main_1812__0__5~JKHoJWR8~6Qpjlk4xLag$__1: - assume {:captureState "main_1812__0__5~JKHoJWR8~6Qpjlk4xLag$__1"} true; - assume (!(ZF == 1bv1)); - R8, Gamma_R8 := 1bv64, true; - assert Gamma_R8; - goto main_1812__0__5~JKHoJWR8~6Qpjlk4xLag_goto_main_1812__3__4zQQ78p3RBGN7NOzIYTxvg, main_1812__0__5~JKHoJWR8~6Qpjlk4xLag_goto_main_1812__1__KuIORB~IS7~W8tkjfAUb_Q; - main_1812__0__5~JKHoJWR8~6Qpjlk4xLag$__0: - assume {:captureState "main_1812__0__5~JKHoJWR8~6Qpjlk4xLag$__0"} true; - assume (ZF == 1bv1); - R8, Gamma_R8 := 0bv64, true; - assert Gamma_R8; - goto main_1812__0__5~JKHoJWR8~6Qpjlk4xLag_goto_main_1812__3__4zQQ78p3RBGN7NOzIYTxvg, main_1812__0__5~JKHoJWR8~6Qpjlk4xLag_goto_main_1812__1__KuIORB~IS7~W8tkjfAUb_Q; - main_1812__0__5~JKHoJWR8~6Qpjlk4xLag_goto_main_1812__1__KuIORB~IS7~W8tkjfAUb_Q: - assume {:captureState "main_1812__0__5~JKHoJWR8~6Qpjlk4xLag_goto_main_1812__1__KuIORB~IS7~W8tkjfAUb_Q"} true; - assume (!(R8[1:0] == 1bv1)); - goto main_1812__1__KuIORB~IS7~W8tkjfAUb_Q; - main_1812__1__KuIORB~IS7~W8tkjfAUb_Q: - assume {:captureState "main_1812__1__KuIORB~IS7~W8tkjfAUb_Q"} true; - goto main_1812__2__YnjHRw7ZSTa3I0Dc55xViw; - main_1812__2__YnjHRw7ZSTa3I0Dc55xViw: - assume {:captureState "main_1812__2__YnjHRw7ZSTa3I0Dc55xViw"} true; + goto $main$__0__$5~JKHoJWR8~6Qpjlk4xLag$__0, $main$__0__$5~JKHoJWR8~6Qpjlk4xLag$__1; + $main$__1__$KuIORB~IS7~W8tkjfAUb_Q: + assume {:captureState "$main$__1__$KuIORB~IS7~W8tkjfAUb_Q"} true; + goto $main$__2__$YnjHRw7ZSTa3I0Dc55xViw; + $main$__2__$YnjHRw7ZSTa3I0Dc55xViw: + assume {:captureState "$main$__2__$YnjHRw7ZSTa3I0Dc55xViw"} true; R8, Gamma_R8 := 3bv64, true; stack, Gamma_stack := memory_store32_le(stack, bvadd64(R31, 4bv64), R8[32:0]), gamma_store32(Gamma_stack, bvadd64(R31, 4bv64), Gamma_R8); - assume {:captureState "1864_0"} true; - goto main_1812__3__4zQQ78p3RBGN7NOzIYTxvg; - main_1812__0__5~JKHoJWR8~6Qpjlk4xLag_goto_main_1812__3__4zQQ78p3RBGN7NOzIYTxvg: - assume {:captureState "main_1812__0__5~JKHoJWR8~6Qpjlk4xLag_goto_main_1812__3__4zQQ78p3RBGN7NOzIYTxvg"} true; - assume (R8[1:0] == 1bv1); - goto main_1812__3__4zQQ78p3RBGN7NOzIYTxvg; - main_1812__3__4zQQ78p3RBGN7NOzIYTxvg: - assume {:captureState "main_1812__3__4zQQ78p3RBGN7NOzIYTxvg"} true; + assume {:captureState "1864$0"} true; + goto $main$__3__$4zQQ78p3RBGN7NOzIYTxvg; + $main$__3__$4zQQ78p3RBGN7NOzIYTxvg: + assume {:captureState "$main$__3__$4zQQ78p3RBGN7NOzIYTxvg"} true; R8, Gamma_R8 := 69632bv64, true; call rely(); - load3, Gamma_load3 := memory_load32_le(mem, bvadd64(R8, 52bv64)), (gamma_load32(Gamma_mem, bvadd64(R8, 52bv64)) || L(mem, bvadd64(R8, 52bv64))); - R8, Gamma_R8 := zero_extend32_32(load3), Gamma_load3; - Cse0__5_1_2, Gamma_Cse0__5_1_2 := bvadd32(R8[32:0], 4294967295bv32), Gamma_R8; - VF, Gamma_VF := bvnot1(bvcomp33(sign_extend1_32(Cse0__5_1_2), bvadd33(sign_extend1_32(R8[32:0]), 8589934591bv33))), (Gamma_R8 && Gamma_Cse0__5_1_2); - CF, Gamma_CF := bvnot1(bvcomp33(zero_extend1_32(Cse0__5_1_2), bvadd33(zero_extend1_32(R8[32:0]), 4294967295bv33))), (Gamma_R8 && Gamma_Cse0__5_1_2); - ZF, Gamma_ZF := bvcomp32(Cse0__5_1_2, 0bv32), Gamma_Cse0__5_1_2; - NF, Gamma_NF := Cse0__5_1_2[32:31], Gamma_Cse0__5_1_2; - R8, Gamma_R8 := zero_extend32_32(Cse0__5_1_2), Gamma_Cse0__5_1_2; + $load3, Gamma_$load3 := memory_load32_le(mem, bvadd64(R8, 52bv64)), (gamma_load32(Gamma_mem, bvadd64(R8, 52bv64)) || L(mem, bvadd64(R8, 52bv64))); + R8, Gamma_R8 := zero_extend32_32($load3), Gamma_$load3; + Cse0__5$1$2, Gamma_Cse0__5$1$2 := bvadd32(R8[32:0], 4294967295bv32), Gamma_R8; + VF, Gamma_VF := bvnot1(bvcomp33(sign_extend1_32(Cse0__5$1$2), bvadd33(sign_extend1_32(R8[32:0]), 8589934591bv33))), (Gamma_R8 && Gamma_Cse0__5$1$2); + CF, Gamma_CF := bvnot1(bvcomp33(zero_extend1_32(Cse0__5$1$2), bvadd33(zero_extend1_32(R8[32:0]), 4294967295bv33))), (Gamma_R8 && Gamma_Cse0__5$1$2); + ZF, Gamma_ZF := bvcomp32(Cse0__5$1$2, 0bv32), Gamma_Cse0__5$1$2; + NF, Gamma_NF := Cse0__5$1$2[32:31], Gamma_Cse0__5$1$2; + R8, Gamma_R8 := zero_extend32_32(Cse0__5$1$2), Gamma_Cse0__5$1$2; + assert Gamma_ZF; + goto $main$__3__$4zQQ78p3RBGN7NOzIYTxvg$__0, $main$__3__$4zQQ78p3RBGN7NOzIYTxvg$__1; + $main$__4__$mvvj12GjRhuZDH0mklvA1Q: + assume {:captureState "$main$__4__$mvvj12GjRhuZDH0mklvA1Q"} true; + goto $main$__5__$qyZYtjM~TZG82G5a2M8umw; + $main$__5__$qyZYtjM~TZG82G5a2M8umw: + assume {:captureState "$main$__5__$qyZYtjM~TZG82G5a2M8umw"} true; + R8, Gamma_R8 := 5bv64, true; + stack, Gamma_stack := memory_store32_le(stack, bvadd64(R31, 4bv64), R8[32:0]), gamma_store32(Gamma_stack, bvadd64(R31, 4bv64), Gamma_R8); + assume {:captureState "1900$0"} true; + goto $main$__6__$Bi8U6733SjiyOwaLV4yoGg; + $main$__6__$Bi8U6733SjiyOwaLV4yoGg: + assume {:captureState "$main$__6__$Bi8U6733SjiyOwaLV4yoGg"} true; + $load7, Gamma_$load7 := memory_load32_le(stack, bvadd64(R31, 4bv64)), gamma_load32(Gamma_stack, bvadd64(R31, 4bv64)); + R8, Gamma_R8 := zero_extend32_32($load7), Gamma_$load7; + Cse0__5$4$1, Gamma_Cse0__5$4$1 := bvadd32(R8[32:0], 4294967293bv32), Gamma_R8; + VF, Gamma_VF := bvnot1(bvcomp33(sign_extend1_32(Cse0__5$4$1), bvadd33(sign_extend1_32(R8[32:0]), 8589934589bv33))), (Gamma_R8 && Gamma_Cse0__5$4$1); + CF, Gamma_CF := bvnot1(bvcomp33(zero_extend1_32(Cse0__5$4$1), bvadd33(zero_extend1_32(R8[32:0]), 4294967293bv33))), (Gamma_R8 && Gamma_Cse0__5$4$1); + ZF, Gamma_ZF := bvcomp32(Cse0__5$4$1, 0bv32), Gamma_Cse0__5$4$1; + NF, Gamma_NF := Cse0__5$4$1[32:31], Gamma_Cse0__5$4$1; + R8, Gamma_R8 := zero_extend32_32(Cse0__5$4$1), Gamma_Cse0__5$4$1; assert Gamma_ZF; - goto main_1812__3__4zQQ78p3RBGN7NOzIYTxvg$__0, main_1812__3__4zQQ78p3RBGN7NOzIYTxvg$__1; - main_1812__3__4zQQ78p3RBGN7NOzIYTxvg$__1: - assume {:captureState "main_1812__3__4zQQ78p3RBGN7NOzIYTxvg$__1"} true; + goto $main$__6__$Bi8U6733SjiyOwaLV4yoGg$__0, $main$__6__$Bi8U6733SjiyOwaLV4yoGg$__1; + $main$__7__$Ke1U9A74QzyX5d6~BvAXuA: + assume {:captureState "$main$__7__$Ke1U9A74QzyX5d6~BvAXuA"} true; + goto $main$__8__$Y0H3mt1KQG6tdER4yPd20Q; + $main$__8__$Y0H3mt1KQG6tdER4yPd20Q: + assume {:captureState "$main$__8__$Y0H3mt1KQG6tdER4yPd20Q"} true; + R8, Gamma_R8 := 69632bv64, true; + call rely(); + $load6, Gamma_$load6 := memory_load32_le(mem, bvadd64(R8, 56bv64)), (gamma_load32(Gamma_mem, bvadd64(R8, 56bv64)) || L(mem, bvadd64(R8, 56bv64))); + R8, Gamma_R8 := zero_extend32_32($load6), Gamma_$load6; + stack, Gamma_stack := memory_store32_le(stack, bvadd64(R31, 4bv64), R8[32:0]), gamma_store32(Gamma_stack, bvadd64(R31, 4bv64), Gamma_R8); + assume {:captureState "1936$0"} true; + goto $main$__9__$ZE4m7PzcQaiZtThKfMYMbw; + $main$__9__$ZE4m7PzcQaiZtThKfMYMbw: + assume {:captureState "$main$__9__$ZE4m7PzcQaiZtThKfMYMbw"} true; + R8, Gamma_R8 := 69632bv64, true; + call rely(); + $load8, Gamma_$load8 := memory_load32_le(mem, bvadd64(R8, 56bv64)), (gamma_load32(Gamma_mem, bvadd64(R8, 56bv64)) || L(mem, bvadd64(R8, 56bv64))); + R0, Gamma_R0 := zero_extend32_32($load8), Gamma_$load8; + R31, Gamma_R31 := bvadd64(R31, 16bv64), Gamma_R31; + goto main_basil_return; + $main$__3__$4zQQ78p3RBGN7NOzIYTxvg_goto_$main$__6__$Bi8U6733SjiyOwaLV4yoGg: + assume {:captureState "$main$__3__$4zQQ78p3RBGN7NOzIYTxvg_goto_$main$__6__$Bi8U6733SjiyOwaLV4yoGg"} true; + assume (R8[1:0] == 1bv1); + goto $main$__6__$Bi8U6733SjiyOwaLV4yoGg; + $main$__3__$4zQQ78p3RBGN7NOzIYTxvg_goto_$main$__4__$mvvj12GjRhuZDH0mklvA1Q: + assume {:captureState "$main$__3__$4zQQ78p3RBGN7NOzIYTxvg_goto_$main$__4__$mvvj12GjRhuZDH0mklvA1Q"} true; + assume (!(R8[1:0] == 1bv1)); + goto $main$__4__$mvvj12GjRhuZDH0mklvA1Q; + $main$__3__$4zQQ78p3RBGN7NOzIYTxvg$__0: + assume {:captureState "$main$__3__$4zQQ78p3RBGN7NOzIYTxvg$__0"} true; + assume (ZF == 1bv1); + R8, Gamma_R8 := 0bv64, true; + assert Gamma_R8; + goto $main$__3__$4zQQ78p3RBGN7NOzIYTxvg_goto_$main$__6__$Bi8U6733SjiyOwaLV4yoGg, $main$__3__$4zQQ78p3RBGN7NOzIYTxvg_goto_$main$__4__$mvvj12GjRhuZDH0mklvA1Q; + $main$__3__$4zQQ78p3RBGN7NOzIYTxvg$__1: + assume {:captureState "$main$__3__$4zQQ78p3RBGN7NOzIYTxvg$__1"} true; assume (!(ZF == 1bv1)); R8, Gamma_R8 := 1bv64, true; assert Gamma_R8; - goto main_1812__3__4zQQ78p3RBGN7NOzIYTxvg_goto_main_1812__6__Bi8U6733SjiyOwaLV4yoGg, main_1812__3__4zQQ78p3RBGN7NOzIYTxvg_goto_main_1812__4__mvvj12GjRhuZDH0mklvA1Q; - main_1812__3__4zQQ78p3RBGN7NOzIYTxvg$__0: - assume {:captureState "main_1812__3__4zQQ78p3RBGN7NOzIYTxvg$__0"} true; + goto $main$__3__$4zQQ78p3RBGN7NOzIYTxvg_goto_$main$__6__$Bi8U6733SjiyOwaLV4yoGg, $main$__3__$4zQQ78p3RBGN7NOzIYTxvg_goto_$main$__4__$mvvj12GjRhuZDH0mklvA1Q; + $main$__0__$5~JKHoJWR8~6Qpjlk4xLag_goto_$main$__3__$4zQQ78p3RBGN7NOzIYTxvg: + assume {:captureState "$main$__0__$5~JKHoJWR8~6Qpjlk4xLag_goto_$main$__3__$4zQQ78p3RBGN7NOzIYTxvg"} true; + assume (R8[1:0] == 1bv1); + goto $main$__3__$4zQQ78p3RBGN7NOzIYTxvg; + $main$__0__$5~JKHoJWR8~6Qpjlk4xLag_goto_$main$__1__$KuIORB~IS7~W8tkjfAUb_Q: + assume {:captureState "$main$__0__$5~JKHoJWR8~6Qpjlk4xLag_goto_$main$__1__$KuIORB~IS7~W8tkjfAUb_Q"} true; + assume (!(R8[1:0] == 1bv1)); + goto $main$__1__$KuIORB~IS7~W8tkjfAUb_Q; + $main$__0__$5~JKHoJWR8~6Qpjlk4xLag$__0: + assume {:captureState "$main$__0__$5~JKHoJWR8~6Qpjlk4xLag$__0"} true; assume (ZF == 1bv1); R8, Gamma_R8 := 0bv64, true; assert Gamma_R8; - goto main_1812__3__4zQQ78p3RBGN7NOzIYTxvg_goto_main_1812__6__Bi8U6733SjiyOwaLV4yoGg, main_1812__3__4zQQ78p3RBGN7NOzIYTxvg_goto_main_1812__4__mvvj12GjRhuZDH0mklvA1Q; - main_1812__3__4zQQ78p3RBGN7NOzIYTxvg_goto_main_1812__4__mvvj12GjRhuZDH0mklvA1Q: - assume {:captureState "main_1812__3__4zQQ78p3RBGN7NOzIYTxvg_goto_main_1812__4__mvvj12GjRhuZDH0mklvA1Q"} true; - assume (!(R8[1:0] == 1bv1)); - goto main_1812__4__mvvj12GjRhuZDH0mklvA1Q; - main_1812__4__mvvj12GjRhuZDH0mklvA1Q: - assume {:captureState "main_1812__4__mvvj12GjRhuZDH0mklvA1Q"} true; - goto main_1812__5__qyZYtjM~TZG82G5a2M8umw; - main_1812__5__qyZYtjM~TZG82G5a2M8umw: - assume {:captureState "main_1812__5__qyZYtjM~TZG82G5a2M8umw"} true; - R8, Gamma_R8 := 5bv64, true; - stack, Gamma_stack := memory_store32_le(stack, bvadd64(R31, 4bv64), R8[32:0]), gamma_store32(Gamma_stack, bvadd64(R31, 4bv64), Gamma_R8); - assume {:captureState "1900_0"} true; - goto main_1812__6__Bi8U6733SjiyOwaLV4yoGg; - main_1812__3__4zQQ78p3RBGN7NOzIYTxvg_goto_main_1812__6__Bi8U6733SjiyOwaLV4yoGg: - assume {:captureState "main_1812__3__4zQQ78p3RBGN7NOzIYTxvg_goto_main_1812__6__Bi8U6733SjiyOwaLV4yoGg"} true; - assume (R8[1:0] == 1bv1); - goto main_1812__6__Bi8U6733SjiyOwaLV4yoGg; - main_1812__6__Bi8U6733SjiyOwaLV4yoGg: - assume {:captureState "main_1812__6__Bi8U6733SjiyOwaLV4yoGg"} true; - load7, Gamma_load7 := memory_load32_le(stack, bvadd64(R31, 4bv64)), gamma_load32(Gamma_stack, bvadd64(R31, 4bv64)); - R8, Gamma_R8 := zero_extend32_32(load7), Gamma_load7; - Cse0__5_4_1, Gamma_Cse0__5_4_1 := bvadd32(R8[32:0], 4294967293bv32), Gamma_R8; - VF, Gamma_VF := bvnot1(bvcomp33(sign_extend1_32(Cse0__5_4_1), bvadd33(sign_extend1_32(R8[32:0]), 8589934589bv33))), (Gamma_R8 && Gamma_Cse0__5_4_1); - CF, Gamma_CF := bvnot1(bvcomp33(zero_extend1_32(Cse0__5_4_1), bvadd33(zero_extend1_32(R8[32:0]), 4294967293bv33))), (Gamma_R8 && Gamma_Cse0__5_4_1); - ZF, Gamma_ZF := bvcomp32(Cse0__5_4_1, 0bv32), Gamma_Cse0__5_4_1; - NF, Gamma_NF := Cse0__5_4_1[32:31], Gamma_Cse0__5_4_1; - R8, Gamma_R8 := zero_extend32_32(Cse0__5_4_1), Gamma_Cse0__5_4_1; - assert Gamma_ZF; - goto main_1812__6__Bi8U6733SjiyOwaLV4yoGg$__0, main_1812__6__Bi8U6733SjiyOwaLV4yoGg$__1; - main_1812__6__Bi8U6733SjiyOwaLV4yoGg$__1: - assume {:captureState "main_1812__6__Bi8U6733SjiyOwaLV4yoGg$__1"} true; + goto $main$__0__$5~JKHoJWR8~6Qpjlk4xLag_goto_$main$__3__$4zQQ78p3RBGN7NOzIYTxvg, $main$__0__$5~JKHoJWR8~6Qpjlk4xLag_goto_$main$__1__$KuIORB~IS7~W8tkjfAUb_Q; + $main$__0__$5~JKHoJWR8~6Qpjlk4xLag$__1: + assume {:captureState "$main$__0__$5~JKHoJWR8~6Qpjlk4xLag$__1"} true; assume (!(ZF == 1bv1)); R8, Gamma_R8 := 1bv64, true; assert Gamma_R8; - goto main_1812__6__Bi8U6733SjiyOwaLV4yoGg_goto_main_1812__9__ZE4m7PzcQaiZtThKfMYMbw, main_1812__6__Bi8U6733SjiyOwaLV4yoGg_goto_main_1812__7__Ke1U9A74QzyX5d6~BvAXuA; - main_1812__6__Bi8U6733SjiyOwaLV4yoGg$__0: - assume {:captureState "main_1812__6__Bi8U6733SjiyOwaLV4yoGg$__0"} true; + goto $main$__0__$5~JKHoJWR8~6Qpjlk4xLag_goto_$main$__3__$4zQQ78p3RBGN7NOzIYTxvg, $main$__0__$5~JKHoJWR8~6Qpjlk4xLag_goto_$main$__1__$KuIORB~IS7~W8tkjfAUb_Q; + $main$__6__$Bi8U6733SjiyOwaLV4yoGg_goto_$main$__9__$ZE4m7PzcQaiZtThKfMYMbw: + assume {:captureState "$main$__6__$Bi8U6733SjiyOwaLV4yoGg_goto_$main$__9__$ZE4m7PzcQaiZtThKfMYMbw"} true; + assume (R8[1:0] == 1bv1); + goto $main$__9__$ZE4m7PzcQaiZtThKfMYMbw; + $main$__6__$Bi8U6733SjiyOwaLV4yoGg_goto_$main$__7__$Ke1U9A74QzyX5d6~BvAXuA: + assume {:captureState "$main$__6__$Bi8U6733SjiyOwaLV4yoGg_goto_$main$__7__$Ke1U9A74QzyX5d6~BvAXuA"} true; + assume (!(R8[1:0] == 1bv1)); + goto $main$__7__$Ke1U9A74QzyX5d6~BvAXuA; + $main$__6__$Bi8U6733SjiyOwaLV4yoGg$__0: + assume {:captureState "$main$__6__$Bi8U6733SjiyOwaLV4yoGg$__0"} true; assume (ZF == 1bv1); R8, Gamma_R8 := 0bv64, true; assert Gamma_R8; - goto main_1812__6__Bi8U6733SjiyOwaLV4yoGg_goto_main_1812__9__ZE4m7PzcQaiZtThKfMYMbw, main_1812__6__Bi8U6733SjiyOwaLV4yoGg_goto_main_1812__7__Ke1U9A74QzyX5d6~BvAXuA; - main_1812__6__Bi8U6733SjiyOwaLV4yoGg_goto_main_1812__7__Ke1U9A74QzyX5d6~BvAXuA: - assume {:captureState "main_1812__6__Bi8U6733SjiyOwaLV4yoGg_goto_main_1812__7__Ke1U9A74QzyX5d6~BvAXuA"} true; - assume (!(R8[1:0] == 1bv1)); - goto main_1812__7__Ke1U9A74QzyX5d6~BvAXuA; - main_1812__7__Ke1U9A74QzyX5d6~BvAXuA: - assume {:captureState "main_1812__7__Ke1U9A74QzyX5d6~BvAXuA"} true; - goto main_1812__8__Y0H3mt1KQG6tdER4yPd20Q; - main_1812__8__Y0H3mt1KQG6tdER4yPd20Q: - assume {:captureState "main_1812__8__Y0H3mt1KQG6tdER4yPd20Q"} true; - R8, Gamma_R8 := 69632bv64, true; - call rely(); - load6, Gamma_load6 := memory_load32_le(mem, bvadd64(R8, 56bv64)), (gamma_load32(Gamma_mem, bvadd64(R8, 56bv64)) || L(mem, bvadd64(R8, 56bv64))); - R8, Gamma_R8 := zero_extend32_32(load6), Gamma_load6; - stack, Gamma_stack := memory_store32_le(stack, bvadd64(R31, 4bv64), R8[32:0]), gamma_store32(Gamma_stack, bvadd64(R31, 4bv64), Gamma_R8); - assume {:captureState "1936_0"} true; - goto main_1812__9__ZE4m7PzcQaiZtThKfMYMbw; - main_1812__6__Bi8U6733SjiyOwaLV4yoGg_goto_main_1812__9__ZE4m7PzcQaiZtThKfMYMbw: - assume {:captureState "main_1812__6__Bi8U6733SjiyOwaLV4yoGg_goto_main_1812__9__ZE4m7PzcQaiZtThKfMYMbw"} true; - assume (R8[1:0] == 1bv1); - goto main_1812__9__ZE4m7PzcQaiZtThKfMYMbw; - main_1812__9__ZE4m7PzcQaiZtThKfMYMbw: - assume {:captureState "main_1812__9__ZE4m7PzcQaiZtThKfMYMbw"} true; - R8, Gamma_R8 := 69632bv64, true; - call rely(); - load8, Gamma_load8 := memory_load32_le(mem, bvadd64(R8, 56bv64)), (gamma_load32(Gamma_mem, bvadd64(R8, 56bv64)) || L(mem, bvadd64(R8, 56bv64))); - R0, Gamma_R0 := zero_extend32_32(load8), Gamma_load8; - R31, Gamma_R31 := bvadd64(R31, 16bv64), Gamma_R31; - goto main_1812_basil_return; - main_1812_basil_return: - assume {:captureState "main_1812_basil_return"} true; + goto $main$__6__$Bi8U6733SjiyOwaLV4yoGg_goto_$main$__9__$ZE4m7PzcQaiZtThKfMYMbw, $main$__6__$Bi8U6733SjiyOwaLV4yoGg_goto_$main$__7__$Ke1U9A74QzyX5d6~BvAXuA; + $main$__6__$Bi8U6733SjiyOwaLV4yoGg$__1: + assume {:captureState "$main$__6__$Bi8U6733SjiyOwaLV4yoGg$__1"} true; + assume (!(ZF == 1bv1)); + R8, Gamma_R8 := 1bv64, true; + assert Gamma_R8; + goto $main$__6__$Bi8U6733SjiyOwaLV4yoGg_goto_$main$__9__$ZE4m7PzcQaiZtThKfMYMbw, $main$__6__$Bi8U6733SjiyOwaLV4yoGg_goto_$main$__7__$Ke1U9A74QzyX5d6~BvAXuA; + main_basil_return: + assume {:captureState "main_basil_return"} true; return; } diff --git a/src/test/incorrect/nestedifglobal/clang_pic/nestedifglobal.adt b/src/test/incorrect/nestedifglobal/clang_pic/nestedifglobal.adt deleted file mode 100644 index c0f21a683..000000000 --- a/src/test/incorrect/nestedifglobal/clang_pic/nestedifglobal.adt +++ /dev/null @@ -1,683 +0,0 @@ -Project(Attrs([Attr("filename","\"clang_pic/nestedifglobal.out\""), -Attr("image-specification","(declare abi (name str))\n(declare arch (name str))\n(declare base-address (addr int))\n(declare bias (off int))\n(declare bits (size int))\n(declare code-region (addr int) (size int) (off int))\n(declare code-start (addr int))\n(declare entry-point (addr int))\n(declare external-reference (addr int) (name str))\n(declare format (name str))\n(declare is-executable (flag bool))\n(declare is-little-endian (flag bool))\n(declare llvm:base-address (addr int))\n(declare llvm:code-entry (name str) (off int) (size int))\n(declare llvm:coff-import-library (name str))\n(declare llvm:coff-virtual-section-header (name str) (addr int) (size int))\n(declare llvm:elf-program-header (name str) (off int) (size int))\n(declare llvm:elf-program-header-flags (name str) (ld bool) (r bool) \n (w bool) (x bool))\n(declare llvm:elf-virtual-program-header (name str) (addr int) (size int))\n(declare llvm:entry-point (addr int))\n(declare llvm:macho-symbol (name str) (value int))\n(declare llvm:name-reference (at int) (name str))\n(declare llvm:relocation (at int) (addr int))\n(declare llvm:section-entry (name str) (addr int) (size int) (off int))\n(declare llvm:section-flags (name str) (r bool) (w bool) (x bool))\n(declare llvm:segment-command (name str) (off int) (size int))\n(declare llvm:segment-command-flags (name str) (r bool) (w bool) (x bool))\n(declare llvm:symbol-entry (name str) (addr int) (size int) (off int)\n (value int))\n(declare llvm:virtual-segment-command (name str) (addr int) (size int))\n(declare mapped (addr int) (size int) (off int))\n(declare named-region (addr int) (size int) (name str))\n(declare named-symbol (addr int) (name str))\n(declare require (name str))\n(declare section (addr int) (size int))\n(declare segment (addr int) (size int) (r bool) (w bool) (x bool))\n(declare subarch (name str))\n(declare symbol-chunk (addr int) (size int) (root int))\n(declare symbol-value (addr int) (value int))\n(declare system (name str))\n(declare vendor (name str))\n\n(abi unknown)\n(arch aarch64)\n(base-address 0)\n(bias 0)\n(bits 64)\n(code-region 2032 20 2032)\n(code-region 1600 432 1600)\n(code-region 1488 96 1488)\n(code-region 1456 24 1456)\n(code-start 1652)\n(code-start 1600)\n(code-start 1876)\n(entry-point 1600)\n(external-reference 69552 _ITM_deregisterTMCloneTable)\n(external-reference 69560 __cxa_finalize)\n(external-reference 69584 __gmon_start__)\n(external-reference 69600 _ITM_registerTMCloneTable)\n(external-reference 69632 __libc_start_main)\n(external-reference 69640 __cxa_finalize)\n(external-reference 69648 __gmon_start__)\n(external-reference 69656 abort)\n(format elf)\n(is-executable true)\n(is-little-endian true)\n(llvm:base-address 0)\n(llvm:code-entry abort 0 0)\n(llvm:code-entry __cxa_finalize 0 0)\n(llvm:code-entry __libc_start_main 0 0)\n(llvm:code-entry _init 1456 0)\n(llvm:code-entry main 1876 156)\n(llvm:code-entry _start 1600 52)\n(llvm:code-entry abort@GLIBC_2.17 0 0)\n(llvm:code-entry _fini 2032 0)\n(llvm:code-entry __cxa_finalize@GLIBC_2.17 0 0)\n(llvm:code-entry __libc_start_main@GLIBC_2.34 0 0)\n(llvm:code-entry frame_dummy 1872 0)\n(llvm:code-entry __do_global_dtors_aux 1792 0)\n(llvm:code-entry register_tm_clones 1728 0)\n(llvm:code-entry deregister_tm_clones 1680 0)\n(llvm:code-entry call_weak_fn 1652 20)\n(llvm:code-entry .fini 2032 20)\n(llvm:code-entry .text 1600 432)\n(llvm:code-entry .plt 1488 96)\n(llvm:code-entry .init 1456 24)\n(llvm:elf-program-header 08 3512 584)\n(llvm:elf-program-header 07 0 0)\n(llvm:elf-program-header 06 2056 60)\n(llvm:elf-program-header 05 596 68)\n(llvm:elf-program-header 04 3528 480)\n(llvm:elf-program-header 03 3512 632)\n(llvm:elf-program-header 02 0 2304)\n(llvm:elf-program-header 01 568 27)\n(llvm:elf-program-header 00 64 504)\n(llvm:elf-program-header-flags 08 false true false false)\n(llvm:elf-program-header-flags 07 false true true false)\n(llvm:elf-program-header-flags 06 false true false false)\n(llvm:elf-program-header-flags 05 false true false false)\n(llvm:elf-program-header-flags 04 false true true false)\n(llvm:elf-program-header-flags 03 true true true false)\n(llvm:elf-program-header-flags 02 true true false true)\n(llvm:elf-program-header-flags 01 false true false false)\n(llvm:elf-program-header-flags 00 false true false false)\n(llvm:elf-virtual-program-header 08 69048 584)\n(llvm:elf-virtual-program-header 07 0 0)\n(llvm:elf-virtual-program-header 06 2056 60)\n(llvm:elf-virtual-program-header 05 596 68)\n(llvm:elf-virtual-program-header 04 69064 480)\n(llvm:elf-virtual-program-header 03 69048 648)\n(llvm:elf-virtual-program-header 02 0 2304)\n(llvm:elf-virtual-program-header 01 568 27)\n(llvm:elf-virtual-program-header 00 64 504)\n(llvm:entry-point 1600)\n(llvm:name-reference 69656 abort)\n(llvm:name-reference 69648 __gmon_start__)\n(llvm:name-reference 69640 __cxa_finalize)\n(llvm:name-reference 69632 __libc_start_main)\n(llvm:name-reference 69600 _ITM_registerTMCloneTable)\n(llvm:name-reference 69584 __gmon_start__)\n(llvm:name-reference 69560 __cxa_finalize)\n(llvm:name-reference 69552 _ITM_deregisterTMCloneTable)\n(llvm:section-entry .shstrtab 0 259 6972)\n(llvm:section-entry .strtab 0 572 6400)\n(llvm:section-entry .symtab 0 2184 4216)\n(llvm:section-entry .comment 0 71 4144)\n(llvm:section-entry .bss 69680 16 4144)\n(llvm:section-entry .data 69664 16 4128)\n(llvm:section-entry .got.plt 69608 56 4072)\n(llvm:section-entry .got 69544 64 4008)\n(llvm:section-entry .dynamic 69064 480 3528)\n(llvm:section-entry .fini_array 69056 8 3520)\n(llvm:section-entry .init_array 69048 8 3512)\n(llvm:section-entry .eh_frame 2120 184 2120)\n(llvm:section-entry .eh_frame_hdr 2056 60 2056)\n(llvm:section-entry .rodata 2052 4 2052)\n(llvm:section-entry .fini 2032 20 2032)\n(llvm:section-entry .text 1600 432 1600)\n(llvm:section-entry .plt 1488 96 1488)\n(llvm:section-entry .init 1456 24 1456)\n(llvm:section-entry .rela.plt 1360 96 1360)\n(llvm:section-entry .rela.dyn 1120 240 1120)\n(llvm:section-entry .gnu.version_r 1072 48 1072)\n(llvm:section-entry .gnu.version 1054 18 1054)\n(llvm:section-entry .dynstr 912 141 912)\n(llvm:section-entry .dynsym 696 216 696)\n(llvm:section-entry .gnu.hash 664 28 664)\n(llvm:section-entry .note.ABI-tag 632 32 632)\n(llvm:section-entry .note.gnu.build-id 596 36 596)\n(llvm:section-entry .interp 568 27 568)\n(llvm:section-flags .shstrtab true false false)\n(llvm:section-flags .strtab true false false)\n(llvm:section-flags .symtab true false false)\n(llvm:section-flags .comment true false false)\n(llvm:section-flags .bss true true false)\n(llvm:section-flags .data true true false)\n(llvm:section-flags .got.plt true true false)\n(llvm:section-flags .got true true false)\n(llvm:section-flags .dynamic true true false)\n(llvm:section-flags .fini_array true true false)\n(llvm:section-flags .init_array true true false)\n(llvm:section-flags .eh_frame true false false)\n(llvm:section-flags .eh_frame_hdr true false false)\n(llvm:section-flags .rodata true false false)\n(llvm:section-flags .fini true false true)\n(llvm:section-flags .text true false true)\n(llvm:section-flags .plt true false true)\n(llvm:section-flags .init true false true)\n(llvm:section-flags .rela.plt true false false)\n(llvm:section-flags .rela.dyn true false false)\n(llvm:section-flags .gnu.version_r true false false)\n(llvm:section-flags .gnu.version true false false)\n(llvm:section-flags .dynstr true false false)\n(llvm:section-flags .dynsym true false false)\n(llvm:section-flags .gnu.hash true false false)\n(llvm:section-flags .note.ABI-tag true false false)\n(llvm:section-flags .note.gnu.build-id true false false)\n(llvm:section-flags .interp true false false)\n(llvm:symbol-entry abort 0 0 0 0)\n(llvm:symbol-entry __cxa_finalize 0 0 0 0)\n(llvm:symbol-entry __libc_start_main 0 0 0 0)\n(llvm:symbol-entry _init 1456 0 1456 1456)\n(llvm:symbol-entry main 1876 156 1876 1876)\n(llvm:symbol-entry _start 1600 52 1600 1600)\n(llvm:symbol-entry abort@GLIBC_2.17 0 0 0 0)\n(llvm:symbol-entry _fini 2032 0 2032 2032)\n(llvm:symbol-entry __cxa_finalize@GLIBC_2.17 0 0 0 0)\n(llvm:symbol-entry __libc_start_main@GLIBC_2.34 0 0 0 0)\n(llvm:symbol-entry frame_dummy 1872 0 1872 1872)\n(llvm:symbol-entry __do_global_dtors_aux 1792 0 1792 1792)\n(llvm:symbol-entry register_tm_clones 1728 0 1728 1728)\n(llvm:symbol-entry deregister_tm_clones 1680 0 1680 1680)\n(llvm:symbol-entry call_weak_fn 1652 20 1652 1652)\n(mapped 0 2304 0)\n(mapped 69048 632 3512)\n(named-region 0 2304 02)\n(named-region 69048 648 03)\n(named-region 568 27 .interp)\n(named-region 596 36 .note.gnu.build-id)\n(named-region 632 32 .note.ABI-tag)\n(named-region 664 28 .gnu.hash)\n(named-region 696 216 .dynsym)\n(named-region 912 141 .dynstr)\n(named-region 1054 18 .gnu.version)\n(named-region 1072 48 .gnu.version_r)\n(named-region 1120 240 .rela.dyn)\n(named-region 1360 96 .rela.plt)\n(named-region 1456 24 .init)\n(named-region 1488 96 .plt)\n(named-region 1600 432 .text)\n(named-region 2032 20 .fini)\n(named-region 2052 4 .rodata)\n(named-region 2056 60 .eh_frame_hdr)\n(named-region 2120 184 .eh_frame)\n(named-region 69048 8 .init_array)\n(named-region 69056 8 .fini_array)\n(named-region 69064 480 .dynamic)\n(named-region 69544 64 .got)\n(named-region 69608 56 .got.plt)\n(named-region 69664 16 .data)\n(named-region 69680 16 .bss)\n(named-region 0 71 .comment)\n(named-region 0 2184 .symtab)\n(named-region 0 572 .strtab)\n(named-region 0 259 .shstrtab)\n(named-symbol 1652 call_weak_fn)\n(named-symbol 1680 deregister_tm_clones)\n(named-symbol 1728 register_tm_clones)\n(named-symbol 1792 __do_global_dtors_aux)\n(named-symbol 1872 frame_dummy)\n(named-symbol 0 __libc_start_main@GLIBC_2.34)\n(named-symbol 0 __cxa_finalize@GLIBC_2.17)\n(named-symbol 2032 _fini)\n(named-symbol 0 abort@GLIBC_2.17)\n(named-symbol 1600 _start)\n(named-symbol 1876 main)\n(named-symbol 1456 _init)\n(named-symbol 0 __libc_start_main)\n(named-symbol 0 __cxa_finalize)\n(named-symbol 0 abort)\n(require libc.so.6)\n(section 568 27)\n(section 596 36)\n(section 632 32)\n(section 664 28)\n(section 696 216)\n(section 912 141)\n(section 1054 18)\n(section 1072 48)\n(section 1120 240)\n(section 1360 96)\n(section 1456 24)\n(section 1488 96)\n(section 1600 432)\n(section 2032 20)\n(section 2052 4)\n(section 2056 60)\n(section 2120 184)\n(section 69048 8)\n(section 69056 8)\n(section 69064 480)\n(section 69544 64)\n(section 69608 56)\n(section 69664 16)\n(section 69680 16)\n(section 0 71)\n(section 0 2184)\n(section 0 572)\n(section 0 259)\n(segment 0 2304 true false true)\n(segment 69048 648 true true false)\n(subarch v8)\n(symbol-chunk 1652 20 1652)\n(symbol-chunk 1600 52 1600)\n(symbol-chunk 1876 156 1876)\n(symbol-value 1652 1652)\n(symbol-value 1680 1680)\n(symbol-value 1728 1728)\n(symbol-value 1792 1792)\n(symbol-value 1872 1872)\n(symbol-value 2032 2032)\n(symbol-value 1600 1600)\n(symbol-value 1876 1876)\n(symbol-value 1456 1456)\n(symbol-value 0 0)\n(system \"\")\n(vendor \"\")\n"), -Attr("abi-name","\"aarch64-linux-gnu-elf\"")]), -Sections([Section(".shstrtab", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x40\x06\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x1c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x38\x00\x09\x00\x40\x00\x1d\x00\x1c\x00\x06\x00\x00\x00\x04\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x04\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x09\x00\x00\x00\x00\x00\x00\x00\x09\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x01\x00\x00\x00\x06\x00\x00\x00\xb8\x0d\x00\x00\x00\x00\x00\x00\xb8\x0d\x01\x00\x00\x00\x00\x00\xb8\x0d\x01"), -Section(".strtab", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x40\x06\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x1c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x38\x00\x09\x00\x40\x00\x1d\x00\x1c\x00\x06\x00\x00\x00\x04\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x04\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x09\x00\x00\x00\x00\x00\x00\x00\x09\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x01\x00\x00\x00\x06\x00\x00\x00\xb8\x0d\x00\x00\x00\x00\x00\x00\xb8\x0d\x01\x00\x00\x00\x00\x00\xb8\x0d\x01\x00\x00\x00\x00\x00\x78\x02\x00\x00\x00\x00\x00\x00\x88\x02\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x02\x00\x00\x00\x06\x00\x00\x00\xc8\x0d\x00\x00\x00\x00\x00\x00\xc8\x0d\x01\x00\x00\x00\x00\x00\xc8\x0d\x01\x00\x00\x00\x00\x00\xe0\x01\x00\x00\x00\x00\x00\x00\xe0\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x04\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x50\xe5\x74\x64\x04\x00\x00\x00\x08\x08\x00\x00\x00\x00\x00\x00\x08\x08\x00\x00\x00\x00\x00\x00\x08\x08\x00\x00\x00\x00\x00\x00\x3c\x00\x00\x00\x00\x00\x00\x00\x3c\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x51\xe5\x74\x64\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x52\xe5\x74\x64\x04\x00\x00\x00\xb8\x0d\x00\x00\x00\x00\x00\x00\xb8\x0d\x01\x00\x00\x00\x00\x00\xb8\x0d\x01\x00\x00\x00\x00\x00\x48\x02\x00\x00\x00\x00\x00\x00\x48\x02\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x2f\x6c\x69\x62"), -Section(".symtab", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x40\x06\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x1c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x38\x00\x09\x00\x40\x00\x1d\x00\x1c\x00\x06\x00\x00\x00\x04\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x04\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x09\x00\x00\x00\x00\x00\x00\x00\x09\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x01\x00\x00\x00\x06\x00\x00\x00\xb8\x0d\x00\x00\x00\x00\x00\x00\xb8\x0d\x01\x00\x00\x00\x00\x00\xb8\x0d\x01\x00\x00\x00\x00\x00\x78\x02\x00\x00\x00\x00\x00\x00\x88\x02\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x02\x00\x00\x00\x06\x00\x00\x00\xc8\x0d\x00\x00\x00\x00\x00\x00\xc8\x0d\x01\x00\x00\x00\x00\x00\xc8\x0d\x01\x00\x00\x00\x00\x00\xe0\x01\x00\x00\x00\x00\x00\x00\xe0\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x04\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x50\xe5\x74\x64\x04\x00\x00\x00\x08\x08\x00\x00\x00\x00\x00\x00\x08\x08\x00\x00\x00\x00\x00\x00\x08\x08\x00\x00\x00\x00\x00\x00\x3c\x00\x00\x00\x00\x00\x00\x00\x3c\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x51\xe5\x74\x64\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x52\xe5\x74\x64\x04\x00\x00\x00\xb8\x0d\x00\x00\x00\x00\x00\x00\xb8\x0d\x01\x00\x00\x00\x00\x00\xb8\x0d\x01\x00\x00\x00\x00\x00\x48\x02\x00\x00\x00\x00\x00\x00\x48\x02\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x2f\x6c\x69\x62\x2f\x6c\x64\x2d\x6c\x69\x6e\x75\x78\x2d\x61\x61\x72\x63\x68\x36\x34\x2e\x73\x6f\x2e\x31\x00\x00\x04\x00\x00\x00\x14\x00\x00\x00\x03\x00\x00\x00\x47\x4e\x55\x00\x30\xdf\x59\x34\xc2\x0e\xcf\x05\xf0\x1d\x98\xdd\xa1\x83\x26\xaf\xf1\x18\xc8\x21\x04\x00\x00\x00\x10\x00\x00\x00\x01\x00\x00\x00\x47\x4e\x55\x00\x00\x00\x00\x00\x03\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x01\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x0b\x00\xb0\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x17\x00\x20\x10\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x48\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x22\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x22\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x73\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5f\x5f\x63\x78\x61\x5f\x66\x69\x6e\x61\x6c\x69\x7a\x65\x00\x5f\x5f\x6c\x69\x62\x63\x5f\x73\x74\x61\x72\x74\x5f\x6d\x61\x69\x6e\x00\x61\x62\x6f\x72\x74\x00\x6c\x69\x62\x63\x2e\x73\x6f\x2e\x36\x00\x47\x4c\x49\x42\x43\x5f\x32\x2e\x31\x37\x00\x47\x4c\x49\x42\x43\x5f\x32\x2e\x33\x34\x00\x5f\x49\x54\x4d\x5f\x64\x65\x72\x65\x67\x69\x73\x74\x65\x72\x54\x4d\x43\x6c\x6f\x6e\x65\x54\x61\x62\x6c\x65\x00\x5f\x5f\x67\x6d\x6f\x6e\x5f\x73\x74\x61\x72\x74\x5f\x5f\x00\x5f\x49\x54\x4d\x5f\x72\x65\x67\x69\x73\x74\x65\x72\x54\x4d\x43\x6c\x6f\x6e\x65\x54\x61\x62\x6c\x65\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x01\x00\x03\x00\x01\x00\x03\x00\x01\x00\x01\x00\x02\x00\x28\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x97\x91\x96\x06\x00\x00\x03\x00\x32\x00\x00\x00\x10\x00\x00\x00\xb4\x91\x96\x06\x00\x00\x02\x00\x3d\x00\x00\x00\x00\x00\x00\x00\xb8\x0d\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x50\x07\x00\x00\x00\x00\x00\x00\xc0\x0d\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\xc0\x0f\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x38\x10\x01\x00\x00\x00\x00\x00\xc8\x0f\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x34\x10\x01\x00\x00\x00\x00\x00\xd8\x0f\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x54\x07\x00\x00\x00\x00\x00\x00\x28\x10\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x28\x10\x01\x00\x00\x00\x00\x00\xb0\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xb8\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xd0\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe0\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x08\x10\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x10\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x18\x10\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1f\x20\x03\xd5\xfd\x7b\xbf\xa9\xfd\x03\x00\x91\x2e\x00\x00\x94\xfd\x7b\xc1\xa8\xc0\x03\x5f\xd6\x00\x00\x00\x00\x00\x00\x00\x00\xf0\x7b\xbf\xa9\x90\x00\x00\x90\x11\xfe\x47\xf9\x10\xe2\x3f\x91\x20\x02\x1f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x90\x00\x00\xb0\x11\x02\x40\xf9\x10\x02\x00\x91\x20\x02\x1f\xd6\x90\x00\x00\xb0\x11\x06\x40\xf9\x10\x22\x00\x91\x20\x02\x1f\xd6\x90\x00\x00\xb0\x11\x0a\x40\xf9\x10\x42\x00\x91\x20\x02\x1f\xd6\x90\x00\x00\xb0\x11\x0e\x40\xf9\x10\x62\x00\x91\x20\x02\x1f\xd6\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1f\x20\x03\xd5\x1d\x00\x80\xd2\x1e\x00\x80\xd2\xe5\x03\x00\xaa\xe1\x03\x40\xf9\xe2\x23\x00\x91\xe6\x03\x00\x91\x80\x00\x00\x90\x00\xec\x47\xf9\x03\x00\x80\xd2\x04\x00\x80\xd2\xe1\xff\xff\x97\xec\xff\xff\x97\x80\x00\x00\x90\x00\xe8\x47\xf9\x40\x00\x00\xb4\xe4\xff\xff\x17\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x80\x00\x00\xb0\x00\xc0\x00\x91\x81\x00\x00\xb0\x21\xc0\x00\x91\x3f\x00\x00\xeb\xc0\x00\x00\x54\x81\x00\x00\x90\x21\xd8\x47\xf9\x61\x00\x00\xb4\xf0\x03\x01\xaa\x00\x02\x1f\xd6\xc0\x03\x5f\xd6\x80\x00\x00\xb0\x00\xc0\x00\x91\x81\x00\x00\xb0\x21\xc0\x00\x91\x21\x00\x00\xcb\x22\xfc\x7f\xd3\x41\x0c\x81\x8b\x21\xfc\x41\x93\xc1\x00\x00\xb4\x82\x00\x00\x90\x42\xf0\x47\xf9\x62\x00\x00\xb4\xf0\x03\x02\xaa\x00\x02\x1f\xd6\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\xfd\x7b\xbe\xa9\xfd\x03\x00\x91\xf3\x0b\x00\xf9\x93\x00\x00\xb0\x60\xc2\x40\x39\x40\x01\x00\x35\x80\x00\x00\x90\x00\xdc\x47\xf9\x80\x00\x00\xb4\x80\x00\x00\xb0\x00\x14\x40\xf9\xb5\xff\xff\x97\xd8\xff\xff\x97\x20\x00\x80\x52\x60\xc2\x00\x39\xf3\x0b\x40\xf9\xfd\x7b\xc2\xa8\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\xdc\xff\xff\x17\xff\x83\x00\xd1\x88\x00\x00\x90\x08\xe5\x47\xf9\xe8\x07\x00\xf9\xff\x1f\x00\xb9\xe0\x1b\x00\xb9\xe9\x1b\x40\xb9\x09\x01\x00\xb9\xff\x17\x00\xb9\x08\x01\x40\xb9\x08\x01\x00\x71\xe8\x07\x9f\x1a\xa8\x00\x00\x37\x01\x00\x00\x14\x68\x00\x80\x52\xe8\x17\x00\xb9\x01\x00\x00\x14\xe8\x07\x40\xf9\x08\x01\x40\xb9\x08\x05\x00\x71\xe8\x07\x9f\x1a\xa8\x00\x00\x37\x01\x00\x00\x14\xa8\x00\x80\x52\xe8\x17\x00\xb9\x01\x00\x00\x14\xe8\x17\x40\xb9\x08\x0d\x00\x71\xe8\x07\x9f\x1a\xe8\x00\x00\x37\x01\x00\x00\x14\x88\x00\x00\x90\x08\xe1\x47\xf9\x08\x01\x40\xb9\xe8\x17\x00\xb9\x01\x00\x00\x14\xe0\x1f\x40\xb9\xff\x83\x00\x91\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\xfd\x7b\xbf\xa9\xfd\x03\x00\x91\xfd\x7b\xc1\xa8\xc0\x03\x5f\xd6\x01\x00\x02\x00\x01\x1b\x03\x3b\x3c\x00\x00\x00\x06\x00\x00\x00\x38\xfe\xff\xff\x54\x00\x00\x00\x88\xfe\xff\xff\x68\x00\x00\x00\xb8\xfe\xff\xff\x7c\x00\x00\x00\xf8\xfe\xff\xff\x90\x00\x00\x00\x48\xff\xff\xff\xb4\x00\x00\x00\x4c\xff\xff\xff\xdc\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x01\x7a\x52\x00\x04\x78\x1e\x01\x1b\x0c\x1f\x00\x10\x00\x00\x00\x18\x00\x00\x00\xdc\xfd\xff\xff\x34\x00\x00\x00\x00\x41\x07\x1e\x10\x00\x00\x00\x2c\x00\x00\x00\x18\xfe\xff\xff\x30\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00"), -Section(".comment", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x40\x06\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x1c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x38\x00\x09\x00\x40\x00\x1d\x00\x1c\x00\x06\x00\x00\x00\x04\x00\x00"), -Section(".interp", 0x238, "\x2f\x6c\x69\x62\x2f\x6c\x64\x2d\x6c\x69\x6e\x75\x78\x2d\x61\x61\x72\x63\x68\x36\x34\x2e\x73\x6f\x2e\x31\x00"), -Section(".note.gnu.build-id", 0x254, "\x04\x00\x00\x00\x14\x00\x00\x00\x03\x00\x00\x00\x47\x4e\x55\x00\x30\xdf\x59\x34\xc2\x0e\xcf\x05\xf0\x1d\x98\xdd\xa1\x83\x26\xaf\xf1\x18\xc8\x21"), -Section(".note.ABI-tag", 0x278, "\x04\x00\x00\x00\x10\x00\x00\x00\x01\x00\x00\x00\x47\x4e\x55\x00\x00\x00\x00\x00\x03\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00"), -Section(".gnu.hash", 0x298, "\x01\x00\x00\x00\x01\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".dynsym", 0x2B8, "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x0b\x00\xb0\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x17\x00\x20\x10\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x48\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x22\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x22\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x73\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".dynstr", 0x390, "\x00\x5f\x5f\x63\x78\x61\x5f\x66\x69\x6e\x61\x6c\x69\x7a\x65\x00\x5f\x5f\x6c\x69\x62\x63\x5f\x73\x74\x61\x72\x74\x5f\x6d\x61\x69\x6e\x00\x61\x62\x6f\x72\x74\x00\x6c\x69\x62\x63\x2e\x73\x6f\x2e\x36\x00\x47\x4c\x49\x42\x43\x5f\x32\x2e\x31\x37\x00\x47\x4c\x49\x42\x43\x5f\x32\x2e\x33\x34\x00\x5f\x49\x54\x4d\x5f\x64\x65\x72\x65\x67\x69\x73\x74\x65\x72\x54\x4d\x43\x6c\x6f\x6e\x65\x54\x61\x62\x6c\x65\x00\x5f\x5f\x67\x6d\x6f\x6e\x5f\x73\x74\x61\x72\x74\x5f\x5f\x00\x5f\x49\x54\x4d\x5f\x72\x65\x67\x69\x73\x74\x65\x72\x54\x4d\x43\x6c\x6f\x6e\x65\x54\x61\x62\x6c\x65\x00"), -Section(".gnu.version", 0x41E, "\x00\x00\x00\x00\x00\x00\x02\x00\x01\x00\x03\x00\x01\x00\x03\x00\x01\x00"), -Section(".gnu.version_r", 0x430, "\x01\x00\x02\x00\x28\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x97\x91\x96\x06\x00\x00\x03\x00\x32\x00\x00\x00\x10\x00\x00\x00\xb4\x91\x96\x06\x00\x00\x02\x00\x3d\x00\x00\x00\x00\x00\x00\x00"), -Section(".rela.dyn", 0x460, "\xb8\x0d\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x50\x07\x00\x00\x00\x00\x00\x00\xc0\x0d\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\xc0\x0f\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x38\x10\x01\x00\x00\x00\x00\x00\xc8\x0f\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x34\x10\x01\x00\x00\x00\x00\x00\xd8\x0f\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x54\x07\x00\x00\x00\x00\x00\x00\x28\x10\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x28\x10\x01\x00\x00\x00\x00\x00\xb0\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xb8\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xd0\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe0\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".rela.plt", 0x550, "\x00\x10\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x08\x10\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x10\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x18\x10\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".init", 0x5B0, "\x1f\x20\x03\xd5\xfd\x7b\xbf\xa9\xfd\x03\x00\x91\x2e\x00\x00\x94\xfd\x7b\xc1\xa8\xc0\x03\x5f\xd6"), -Section(".plt", 0x5D0, "\xf0\x7b\xbf\xa9\x90\x00\x00\x90\x11\xfe\x47\xf9\x10\xe2\x3f\x91\x20\x02\x1f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x90\x00\x00\xb0\x11\x02\x40\xf9\x10\x02\x00\x91\x20\x02\x1f\xd6\x90\x00\x00\xb0\x11\x06\x40\xf9\x10\x22\x00\x91\x20\x02\x1f\xd6\x90\x00\x00\xb0\x11\x0a\x40\xf9\x10\x42\x00\x91\x20\x02\x1f\xd6\x90\x00\x00\xb0\x11\x0e\x40\xf9\x10\x62\x00\x91\x20\x02\x1f\xd6"), -Section(".fini", 0x7F0, "\x1f\x20\x03\xd5\xfd\x7b\xbf\xa9\xfd\x03\x00\x91\xfd\x7b\xc1\xa8\xc0\x03\x5f\xd6"), -Section(".rodata", 0x804, "\x01\x00\x02\x00"), -Section(".eh_frame_hdr", 0x808, "\x01\x1b\x03\x3b\x3c\x00\x00\x00\x06\x00\x00\x00\x38\xfe\xff\xff\x54\x00\x00\x00\x88\xfe\xff\xff\x68\x00\x00\x00\xb8\xfe\xff\xff\x7c\x00\x00\x00\xf8\xfe\xff\xff\x90\x00\x00\x00\x48\xff\xff\xff\xb4\x00\x00\x00\x4c\xff\xff\xff\xdc\x00\x00\x00"), -Section(".eh_frame", 0x848, "\x10\x00\x00\x00\x00\x00\x00\x00\x01\x7a\x52\x00\x04\x78\x1e\x01\x1b\x0c\x1f\x00\x10\x00\x00\x00\x18\x00\x00\x00\xdc\xfd\xff\xff\x34\x00\x00\x00\x00\x41\x07\x1e\x10\x00\x00\x00\x2c\x00\x00\x00\x18\xfe\xff\xff\x30\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x40\x00\x00\x00\x34\xfe\xff\xff\x3c\x00\x00\x00\x00\x00\x00\x00\x20\x00\x00\x00\x54\x00\x00\x00\x60\xfe\xff\xff\x48\x00\x00\x00\x00\x41\x0e\x20\x9d\x04\x9e\x03\x42\x93\x02\x4e\xde\xdd\xd3\x0e\x00\x00\x00\x00\x10\x00\x00\x00\x78\x00\x00\x00\x8c\xfe\xff\xff\x04\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x01\x7a\x52\x00\x01\x7c\x1e\x01\x1b\x0c\x1f\x00\x14\x00\x00\x00\x18\x00\x00\x00\x68\xfe\xff\xff\x9c\x00\x00\x00\x00\x44\x0e\x20\x02\x94\x0e\x00\x00\x00\x00\x00"), -Section(".fini_array", 0x10DC0, "\x00\x07\x00\x00\x00\x00\x00\x00"), -Section(".dynamic", 0x10DC8, "\x01\x00\x00\x00\x00\x00\x00\x00\x28\x00\x00\x00\x00\x00\x00\x00\x0c\x00\x00\x00\x00\x00\x00\x00\xb0\x05\x00\x00\x00\x00\x00\x00\x0d\x00\x00\x00\x00\x00\x00\x00\xf0\x07\x00\x00\x00\x00\x00\x00\x19\x00\x00\x00\x00\x00\x00\x00\xb8\x0d\x01\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x1a\x00\x00\x00\x00\x00\x00\x00\xc0\x0d\x01\x00\x00\x00\x00\x00\x1c\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\xf5\xfe\xff\x6f\x00\x00\x00\x00\x98\x02\x00\x00\x00\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x90\x03\x00\x00\x00\x00\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\xb8\x02\x00\x00\x00\x00\x00\x00\x0a\x00\x00\x00\x00\x00\x00\x00\x8d\x00\x00\x00\x00\x00\x00\x00\x0b\x00\x00\x00\x00\x00\x00\x00\x18\x00\x00\x00\x00\x00\x00\x00\x15\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\xe8\x0f\x01\x00\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x60\x00\x00\x00\x00\x00\x00\x00\x14\x00\x00\x00\x00\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x17\x00\x00\x00\x00\x00\x00\x00\x50\x05\x00\x00\x00\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x60\x04\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\xf0\x00\x00\x00\x00\x00\x00\x00\x09\x00\x00\x00\x00\x00\x00\x00\x18\x00\x00\x00\x00\x00\x00\x00\xfb\xff\xff\x6f\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\xfe\xff\xff\x6f\x00\x00\x00\x00\x30\x04\x00\x00\x00\x00\x00\x00\xff\xff\xff\x6f\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\xf0\xff\xff\x6f\x00\x00\x00\x00\x1e\x04\x00\x00\x00\x00\x00\x00\xf9\xff\xff\x6f\x00\x00\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".init_array", 0x10DB8, "\x50\x07\x00\x00\x00\x00\x00\x00"), -Section(".got", 0x10FA8, "\xc8\x0d\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x38\x10\x01\x00\x00\x00\x00\x00\x34\x10\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x54\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".got.plt", 0x10FE8, "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xd0\x05\x00\x00\x00\x00\x00\x00\xd0\x05\x00\x00\x00\x00\x00\x00\xd0\x05\x00\x00\x00\x00\x00\x00\xd0\x05\x00\x00\x00\x00\x00\x00"), -Section(".data", 0x11020, "\x00\x00\x00\x00\x00\x00\x00\x00\x28\x10\x01\x00\x00\x00\x00\x00"), -Section(".text", 0x640, "\x1f\x20\x03\xd5\x1d\x00\x80\xd2\x1e\x00\x80\xd2\xe5\x03\x00\xaa\xe1\x03\x40\xf9\xe2\x23\x00\x91\xe6\x03\x00\x91\x80\x00\x00\x90\x00\xec\x47\xf9\x03\x00\x80\xd2\x04\x00\x80\xd2\xe1\xff\xff\x97\xec\xff\xff\x97\x80\x00\x00\x90\x00\xe8\x47\xf9\x40\x00\x00\xb4\xe4\xff\xff\x17\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x80\x00\x00\xb0\x00\xc0\x00\x91\x81\x00\x00\xb0\x21\xc0\x00\x91\x3f\x00\x00\xeb\xc0\x00\x00\x54\x81\x00\x00\x90\x21\xd8\x47\xf9\x61\x00\x00\xb4\xf0\x03\x01\xaa\x00\x02\x1f\xd6\xc0\x03\x5f\xd6\x80\x00\x00\xb0\x00\xc0\x00\x91\x81\x00\x00\xb0\x21\xc0\x00\x91\x21\x00\x00\xcb\x22\xfc\x7f\xd3\x41\x0c\x81\x8b\x21\xfc\x41\x93\xc1\x00\x00\xb4\x82\x00\x00\x90\x42\xf0\x47\xf9\x62\x00\x00\xb4\xf0\x03\x02\xaa\x00\x02\x1f\xd6\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\xfd\x7b\xbe\xa9\xfd\x03\x00\x91\xf3\x0b\x00\xf9\x93\x00\x00\xb0\x60\xc2\x40\x39\x40\x01\x00\x35\x80\x00\x00\x90\x00\xdc\x47\xf9\x80\x00\x00\xb4\x80\x00\x00\xb0\x00\x14\x40\xf9\xb5\xff\xff\x97\xd8\xff\xff\x97\x20\x00\x80\x52\x60\xc2\x00\x39\xf3\x0b\x40\xf9\xfd\x7b\xc2\xa8\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\xdc\xff\xff\x17\xff\x83\x00\xd1\x88\x00\x00\x90\x08\xe5\x47\xf9\xe8\x07\x00\xf9\xff\x1f\x00\xb9\xe0\x1b\x00\xb9\xe9\x1b\x40\xb9\x09\x01\x00\xb9\xff\x17\x00\xb9\x08\x01\x40\xb9\x08\x01\x00\x71\xe8\x07\x9f\x1a\xa8\x00\x00\x37\x01\x00\x00\x14\x68\x00\x80\x52\xe8\x17\x00\xb9\x01\x00\x00\x14\xe8\x07\x40\xf9\x08\x01\x40\xb9\x08\x05\x00\x71\xe8\x07\x9f\x1a\xa8\x00\x00\x37\x01\x00\x00\x14\xa8\x00\x80\x52\xe8\x17\x00\xb9\x01\x00\x00\x14\xe8\x17\x40\xb9\x08\x0d\x00\x71\xe8\x07\x9f\x1a\xe8\x00\x00\x37\x01\x00\x00\x14\x88\x00\x00\x90\x08\xe1\x47\xf9\x08\x01\x40\xb9\xe8\x17\x00\xb9\x01\x00\x00\x14\xe0\x1f\x40\xb9\xff\x83\x00\x91\xc0\x03\x5f\xd6")]), -Memmap([Annotation(Region(0x0,0x8FF), Attr("segment","02 0 2304")), -Annotation(Region(0x640,0x673), Attr("symbol","\"_start\"")), -Annotation(Region(0x0,0x102), Attr("section","\".shstrtab\"")), -Annotation(Region(0x0,0x23B), Attr("section","\".strtab\"")), -Annotation(Region(0x0,0x887), Attr("section","\".symtab\"")), -Annotation(Region(0x0,0x46), Attr("section","\".comment\"")), -Annotation(Region(0x238,0x252), Attr("section","\".interp\"")), -Annotation(Region(0x254,0x277), Attr("section","\".note.gnu.build-id\"")), -Annotation(Region(0x278,0x297), Attr("section","\".note.ABI-tag\"")), -Annotation(Region(0x298,0x2B3), Attr("section","\".gnu.hash\"")), -Annotation(Region(0x2B8,0x38F), Attr("section","\".dynsym\"")), -Annotation(Region(0x390,0x41C), Attr("section","\".dynstr\"")), -Annotation(Region(0x41E,0x42F), Attr("section","\".gnu.version\"")), -Annotation(Region(0x430,0x45F), Attr("section","\".gnu.version_r\"")), -Annotation(Region(0x460,0x54F), Attr("section","\".rela.dyn\"")), -Annotation(Region(0x550,0x5AF), Attr("section","\".rela.plt\"")), -Annotation(Region(0x5B0,0x5C7), Attr("section","\".init\"")), -Annotation(Region(0x5D0,0x62F), Attr("section","\".plt\"")), -Annotation(Region(0x5B0,0x5C7), Attr("code-region","()")), -Annotation(Region(0x5D0,0x62F), Attr("code-region","()")), -Annotation(Region(0x640,0x673), Attr("symbol-info","_start 0x640 52")), -Annotation(Region(0x674,0x687), Attr("symbol","\"call_weak_fn\"")), -Annotation(Region(0x674,0x687), Attr("symbol-info","call_weak_fn 0x674 20")), -Annotation(Region(0x754,0x7EF), Attr("symbol","\"main\"")), -Annotation(Region(0x754,0x7EF), Attr("symbol-info","main 0x754 156")), -Annotation(Region(0x7F0,0x803), Attr("section","\".fini\"")), -Annotation(Region(0x804,0x807), Attr("section","\".rodata\"")), -Annotation(Region(0x808,0x843), Attr("section","\".eh_frame_hdr\"")), -Annotation(Region(0x848,0x8FF), Attr("section","\".eh_frame\"")), -Annotation(Region(0x10DB8,0x1102F), Attr("segment","03 0x10DB8 648")), -Annotation(Region(0x10DC0,0x10DC7), Attr("section","\".fini_array\"")), -Annotation(Region(0x10DC8,0x10FA7), Attr("section","\".dynamic\"")), -Annotation(Region(0x10DB8,0x10DBF), Attr("section","\".init_array\"")), -Annotation(Region(0x10FA8,0x10FE7), Attr("section","\".got\"")), -Annotation(Region(0x10FE8,0x1101F), Attr("section","\".got.plt\"")), -Annotation(Region(0x11020,0x1102F), Attr("section","\".data\"")), -Annotation(Region(0x640,0x7EF), Attr("section","\".text\"")), -Annotation(Region(0x640,0x7EF), Attr("code-region","()")), -Annotation(Region(0x7F0,0x803), Attr("code-region","()"))]), -Program(Tid(1_795, "%00000703"), Attrs([]), - Subs([Sub(Tid(1_739, "@__cxa_finalize"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x600"), -Attr("stub","()")]), "__cxa_finalize", Args([Arg(Tid(1_796, "%00000704"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("__cxa_finalize_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(1_229, "@__cxa_finalize"), - Attrs([Attr("address","0x600")]), Phis([]), -Defs([Def(Tid(1_477, "%000005c5"), Attrs([Attr("address","0x600"), -Attr("insn","adrp x16, #69632")]), Var("R16",Imm(64)), Int(69632,64)), -Def(Tid(1_484, "%000005cc"), Attrs([Attr("address","0x604"), -Attr("insn","ldr x17, [x16, #0x8]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(1_490, "%000005d2"), Attrs([Attr("address","0x608"), -Attr("insn","add x16, x16, #0x8")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(8,64)))]), Jmps([Call(Tid(1_495, "%000005d7"), - Attrs([Attr("address","0x60C"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), -Sub(Tid(1_740, "@__do_global_dtors_aux"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x700")]), - "__do_global_dtors_aux", Args([Arg(Tid(1_797, "%00000705"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("__do_global_dtors_aux_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(746, "@__do_global_dtors_aux"), - Attrs([Attr("address","0x700")]), Phis([]), Defs([Def(Tid(750, "%000002ee"), - Attrs([Attr("address","0x700"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("#3",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(18446744073709551584,64))), -Def(Tid(756, "%000002f4"), Attrs([Attr("address","0x700"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("#3",Imm(64)),Var("R29",Imm(64)),LittleEndian(),64)), -Def(Tid(762, "%000002fa"), Attrs([Attr("address","0x700"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("#3",Imm(64)),Int(8,64)),Var("R30",Imm(64)),LittleEndian(),64)), -Def(Tid(766, "%000002fe"), Attrs([Attr("address","0x700"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("R31",Imm(64)), -Var("#3",Imm(64))), Def(Tid(772, "%00000304"), - Attrs([Attr("address","0x704"), Attr("insn","mov x29, sp")]), - Var("R29",Imm(64)), Var("R31",Imm(64))), Def(Tid(780, "%0000030c"), - Attrs([Attr("address","0x708"), Attr("insn","str x19, [sp, #0x10]")]), - Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(16,64)),Var("R19",Imm(64)),LittleEndian(),64)), -Def(Tid(785, "%00000311"), Attrs([Attr("address","0x70C"), -Attr("insn","adrp x19, #69632")]), Var("R19",Imm(64)), Int(69632,64)), -Def(Tid(792, "%00000318"), Attrs([Attr("address","0x710"), -Attr("insn","ldrb w0, [x19, #0x30]")]), Var("R0",Imm(64)), -UNSIGNED(64,Load(Var("mem",Mem(64,8)),PLUS(Var("R19",Imm(64)),Int(48,64)),LittleEndian(),8)))]), -Jmps([Goto(Tid(799, "%0000031f"), Attrs([Attr("address","0x714"), -Attr("insn","cbnz w0, #0x28")]), - NEQ(Extract(31,0,Var("R0",Imm(64))),Int(0,32)), -Direct(Tid(797, "%0000031d"))), Goto(Tid(1_782, "%000006f6"), Attrs([]), - Int(1,1), Direct(Tid(1_174, "%00000496")))])), Blk(Tid(1_174, "%00000496"), - Attrs([Attr("address","0x718")]), Phis([]), -Defs([Def(Tid(1_177, "%00000499"), Attrs([Attr("address","0x718"), -Attr("insn","adrp x0, #65536")]), Var("R0",Imm(64)), Int(65536,64)), -Def(Tid(1_184, "%000004a0"), Attrs([Attr("address","0x71C"), -Attr("insn","ldr x0, [x0, #0xfb8]")]), Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(4024,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(1_190, "%000004a6"), Attrs([Attr("address","0x720"), -Attr("insn","cbz x0, #0x10")]), EQ(Var("R0",Imm(64)),Int(0,64)), -Direct(Tid(1_188, "%000004a4"))), Goto(Tid(1_783, "%000006f7"), Attrs([]), - Int(1,1), Direct(Tid(1_213, "%000004bd")))])), Blk(Tid(1_213, "%000004bd"), - Attrs([Attr("address","0x724")]), Phis([]), -Defs([Def(Tid(1_216, "%000004c0"), Attrs([Attr("address","0x724"), -Attr("insn","adrp x0, #69632")]), Var("R0",Imm(64)), Int(69632,64)), -Def(Tid(1_223, "%000004c7"), Attrs([Attr("address","0x728"), -Attr("insn","ldr x0, [x0, #0x28]")]), Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(40,64)),LittleEndian(),64)), -Def(Tid(1_228, "%000004cc"), Attrs([Attr("address","0x72C"), -Attr("insn","bl #-0x12c")]), Var("R30",Imm(64)), Int(1840,64))]), -Jmps([Call(Tid(1_231, "%000004cf"), Attrs([Attr("address","0x72C"), -Attr("insn","bl #-0x12c")]), Int(1,1), -(Direct(Tid(1_739, "@__cxa_finalize")),Direct(Tid(1_188, "%000004a4"))))])), -Blk(Tid(1_188, "%000004a4"), Attrs([Attr("address","0x730")]), Phis([]), -Defs([Def(Tid(1_196, "%000004ac"), Attrs([Attr("address","0x730"), -Attr("insn","bl #-0xa0")]), Var("R30",Imm(64)), Int(1844,64))]), -Jmps([Call(Tid(1_198, "%000004ae"), Attrs([Attr("address","0x730"), -Attr("insn","bl #-0xa0")]), Int(1,1), -(Direct(Tid(1_753, "@deregister_tm_clones")),Direct(Tid(1_200, "%000004b0"))))])), -Blk(Tid(1_200, "%000004b0"), Attrs([Attr("address","0x734")]), Phis([]), -Defs([Def(Tid(1_203, "%000004b3"), Attrs([Attr("address","0x734"), -Attr("insn","mov w0, #0x1")]), Var("R0",Imm(64)), Int(1,64)), -Def(Tid(1_211, "%000004bb"), Attrs([Attr("address","0x738"), -Attr("insn","strb w0, [x19, #0x30]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R19",Imm(64)),Int(48,64)),Extract(7,0,Var("R0",Imm(64))),LittleEndian(),8))]), -Jmps([Goto(Tid(1_784, "%000006f8"), Attrs([]), Int(1,1), -Direct(Tid(797, "%0000031d")))])), Blk(Tid(797, "%0000031d"), - Attrs([Attr("address","0x73C")]), Phis([]), Defs([Def(Tid(807, "%00000327"), - Attrs([Attr("address","0x73C"), Attr("insn","ldr x19, [sp, #0x10]")]), - Var("R19",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(16,64)),LittleEndian(),64)), -Def(Tid(814, "%0000032e"), Attrs([Attr("address","0x740"), -Attr("insn","ldp x29, x30, [sp], #0x20")]), Var("R29",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(819, "%00000333"), Attrs([Attr("address","0x740"), -Attr("insn","ldp x29, x30, [sp], #0x20")]), Var("R30",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(823, "%00000337"), Attrs([Attr("address","0x740"), -Attr("insn","ldp x29, x30, [sp], #0x20")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(32,64)))]), Jmps([Call(Tid(828, "%0000033c"), - Attrs([Attr("address","0x744"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), Sub(Tid(1_744, "@__libc_start_main"), - Attrs([Attr("c.proto","signed (*)(signed (*)(signed , char** , char** );* main, signed , char** , \nvoid* auxv)"), -Attr("address","0x5F0"), Attr("stub","()")]), "__libc_start_main", - Args([Arg(Tid(1_798, "%00000706"), - Attrs([Attr("c.layout","**[ : 64]"), -Attr("c.data","Top:u64 ptr ptr"), -Attr("c.type","signed (*)(signed , char** , char** );*")]), - Var("__libc_start_main_main",Imm(64)), Var("R0",Imm(64)), In()), -Arg(Tid(1_799, "%00000707"), Attrs([Attr("c.layout","[signed : 32]"), -Attr("c.data","Top:u32"), Attr("c.type","signed")]), - Var("__libc_start_main_arg2",Imm(32)), LOW(32,Var("R1",Imm(64))), In()), -Arg(Tid(1_800, "%00000708"), Attrs([Attr("c.layout","**[char : 8]"), -Attr("c.data","Top:u8 ptr ptr"), Attr("c.type","char**")]), - Var("__libc_start_main_arg3",Imm(64)), Var("R2",Imm(64)), Both()), -Arg(Tid(1_801, "%00000709"), Attrs([Attr("c.layout","*[ : 8]"), -Attr("c.data","{} ptr"), Attr("c.type","void*")]), - Var("__libc_start_main_auxv",Imm(64)), Var("R3",Imm(64)), Both()), -Arg(Tid(1_802, "%0000070a"), Attrs([Attr("c.layout","[signed : 32]"), -Attr("c.data","Top:u32"), Attr("c.type","signed")]), - Var("__libc_start_main_result",Imm(32)), LOW(32,Var("R0",Imm(64))), -Out())]), Blks([Blk(Tid(579, "@__libc_start_main"), - Attrs([Attr("address","0x5F0")]), Phis([]), -Defs([Def(Tid(1_455, "%000005af"), Attrs([Attr("address","0x5F0"), -Attr("insn","adrp x16, #69632")]), Var("R16",Imm(64)), Int(69632,64)), -Def(Tid(1_462, "%000005b6"), Attrs([Attr("address","0x5F4"), -Attr("insn","ldr x17, [x16]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R16",Imm(64)),LittleEndian(),64)), -Def(Tid(1_468, "%000005bc"), Attrs([Attr("address","0x5F8"), -Attr("insn","add x16, x16, #0x0")]), Var("R16",Imm(64)), -Var("R16",Imm(64)))]), Jmps([Call(Tid(1_473, "%000005c1"), - Attrs([Attr("address","0x5FC"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), Sub(Tid(1_745, "@_fini"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x7F0")]), - "_fini", Args([Arg(Tid(1_803, "%0000070b"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("_fini_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(31, "@_fini"), - Attrs([Attr("address","0x7F0")]), Phis([]), Defs([Def(Tid(37, "%00000025"), - Attrs([Attr("address","0x7F4"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("#0",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(18446744073709551600,64))), -Def(Tid(43, "%0000002b"), Attrs([Attr("address","0x7F4"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("#0",Imm(64)),Var("R29",Imm(64)),LittleEndian(),64)), -Def(Tid(49, "%00000031"), Attrs([Attr("address","0x7F4"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("#0",Imm(64)),Int(8,64)),Var("R30",Imm(64)),LittleEndian(),64)), -Def(Tid(53, "%00000035"), Attrs([Attr("address","0x7F4"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("R31",Imm(64)), -Var("#0",Imm(64))), Def(Tid(59, "%0000003b"), Attrs([Attr("address","0x7F8"), -Attr("insn","mov x29, sp")]), Var("R29",Imm(64)), Var("R31",Imm(64))), -Def(Tid(66, "%00000042"), Attrs([Attr("address","0x7FC"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R29",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(71, "%00000047"), Attrs([Attr("address","0x7FC"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R30",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(75, "%0000004b"), Attrs([Attr("address","0x7FC"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(16,64)))]), Jmps([Call(Tid(80, "%00000050"), - Attrs([Attr("address","0x800"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), Sub(Tid(1_746, "@_init"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x5B0")]), - "_init", Args([Arg(Tid(1_804, "%0000070c"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("_init_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(1_567, "@_init"), - Attrs([Attr("address","0x5B0")]), Phis([]), -Defs([Def(Tid(1_573, "%00000625"), Attrs([Attr("address","0x5B4"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("#8",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(18446744073709551600,64))), -Def(Tid(1_579, "%0000062b"), Attrs([Attr("address","0x5B4"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("#8",Imm(64)),Var("R29",Imm(64)),LittleEndian(),64)), -Def(Tid(1_585, "%00000631"), Attrs([Attr("address","0x5B4"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("#8",Imm(64)),Int(8,64)),Var("R30",Imm(64)),LittleEndian(),64)), -Def(Tid(1_589, "%00000635"), Attrs([Attr("address","0x5B4"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("R31",Imm(64)), -Var("#8",Imm(64))), Def(Tid(1_595, "%0000063b"), - Attrs([Attr("address","0x5B8"), Attr("insn","mov x29, sp")]), - Var("R29",Imm(64)), Var("R31",Imm(64))), Def(Tid(1_600, "%00000640"), - Attrs([Attr("address","0x5BC"), Attr("insn","bl #0xb8")]), - Var("R30",Imm(64)), Int(1472,64))]), Jmps([Call(Tid(1_602, "%00000642"), - Attrs([Attr("address","0x5BC"), Attr("insn","bl #0xb8")]), Int(1,1), -(Direct(Tid(1_751, "@call_weak_fn")),Direct(Tid(1_604, "%00000644"))))])), -Blk(Tid(1_604, "%00000644"), Attrs([Attr("address","0x5C0")]), Phis([]), -Defs([Def(Tid(1_609, "%00000649"), Attrs([Attr("address","0x5C0"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R29",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(1_614, "%0000064e"), Attrs([Attr("address","0x5C0"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R30",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(1_618, "%00000652"), Attrs([Attr("address","0x5C0"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(16,64)))]), Jmps([Call(Tid(1_623, "%00000657"), - Attrs([Attr("address","0x5C4"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), Sub(Tid(1_747, "@_start"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x640"), -Attr("entry-point","()")]), "_start", Args([Arg(Tid(1_805, "%0000070d"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("_start_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(516, "@_start"), - Attrs([Attr("address","0x640")]), Phis([]), Defs([Def(Tid(521, "%00000209"), - Attrs([Attr("address","0x644"), Attr("insn","mov x29, #0x0")]), - Var("R29",Imm(64)), Int(0,64)), Def(Tid(526, "%0000020e"), - Attrs([Attr("address","0x648"), Attr("insn","mov x30, #0x0")]), - Var("R30",Imm(64)), Int(0,64)), Def(Tid(532, "%00000214"), - Attrs([Attr("address","0x64C"), Attr("insn","mov x5, x0")]), - Var("R5",Imm(64)), Var("R0",Imm(64))), Def(Tid(539, "%0000021b"), - Attrs([Attr("address","0x650"), Attr("insn","ldr x1, [sp]")]), - Var("R1",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(545, "%00000221"), Attrs([Attr("address","0x654"), -Attr("insn","add x2, sp, #0x8")]), Var("R2",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(8,64))), Def(Tid(551, "%00000227"), - Attrs([Attr("address","0x658"), Attr("insn","mov x6, sp")]), - Var("R6",Imm(64)), Var("R31",Imm(64))), Def(Tid(556, "%0000022c"), - Attrs([Attr("address","0x65C"), Attr("insn","adrp x0, #65536")]), - Var("R0",Imm(64)), Int(65536,64)), Def(Tid(563, "%00000233"), - Attrs([Attr("address","0x660"), Attr("insn","ldr x0, [x0, #0xfd8]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(4056,64)),LittleEndian(),64)), -Def(Tid(568, "%00000238"), Attrs([Attr("address","0x664"), -Attr("insn","mov x3, #0x0")]), Var("R3",Imm(64)), Int(0,64)), -Def(Tid(573, "%0000023d"), Attrs([Attr("address","0x668"), -Attr("insn","mov x4, #0x0")]), Var("R4",Imm(64)), Int(0,64)), -Def(Tid(578, "%00000242"), Attrs([Attr("address","0x66C"), -Attr("insn","bl #-0x7c")]), Var("R30",Imm(64)), Int(1648,64))]), -Jmps([Call(Tid(581, "%00000245"), Attrs([Attr("address","0x66C"), -Attr("insn","bl #-0x7c")]), Int(1,1), -(Direct(Tid(1_744, "@__libc_start_main")),Direct(Tid(583, "%00000247"))))])), -Blk(Tid(583, "%00000247"), Attrs([Attr("address","0x670")]), Phis([]), -Defs([Def(Tid(586, "%0000024a"), Attrs([Attr("address","0x670"), -Attr("insn","bl #-0x50")]), Var("R30",Imm(64)), Int(1652,64))]), -Jmps([Call(Tid(589, "%0000024d"), Attrs([Attr("address","0x670"), -Attr("insn","bl #-0x50")]), Int(1,1), -(Direct(Tid(1_750, "@abort")),Direct(Tid(1_785, "%000006f9"))))])), -Blk(Tid(1_785, "%000006f9"), Attrs([]), Phis([]), Defs([]), -Jmps([Call(Tid(1_786, "%000006fa"), Attrs([]), Int(1,1), -(Direct(Tid(1_751, "@call_weak_fn")),))]))])), Sub(Tid(1_750, "@abort"), - Attrs([Attr("noreturn","()"), Attr("c.proto","void (*)(void)"), -Attr("address","0x620"), Attr("stub","()")]), "abort", Args([]), -Blks([Blk(Tid(587, "@abort"), Attrs([Attr("address","0x620")]), Phis([]), -Defs([Def(Tid(1_521, "%000005f1"), Attrs([Attr("address","0x620"), -Attr("insn","adrp x16, #69632")]), Var("R16",Imm(64)), Int(69632,64)), -Def(Tid(1_528, "%000005f8"), Attrs([Attr("address","0x624"), -Attr("insn","ldr x17, [x16, #0x18]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(24,64)),LittleEndian(),64)), -Def(Tid(1_534, "%000005fe"), Attrs([Attr("address","0x628"), -Attr("insn","add x16, x16, #0x18")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(24,64)))]), Jmps([Call(Tid(1_539, "%00000603"), - Attrs([Attr("address","0x62C"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), Sub(Tid(1_751, "@call_weak_fn"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x674")]), - "call_weak_fn", Args([Arg(Tid(1_806, "%0000070e"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("call_weak_fn_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(591, "@call_weak_fn"), - Attrs([Attr("address","0x674")]), Phis([]), Defs([Def(Tid(594, "%00000252"), - Attrs([Attr("address","0x674"), Attr("insn","adrp x0, #65536")]), - Var("R0",Imm(64)), Int(65536,64)), Def(Tid(601, "%00000259"), - Attrs([Attr("address","0x678"), Attr("insn","ldr x0, [x0, #0xfd0]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(4048,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(607, "%0000025f"), Attrs([Attr("address","0x67C"), -Attr("insn","cbz x0, #0x8")]), EQ(Var("R0",Imm(64)),Int(0,64)), -Direct(Tid(605, "%0000025d"))), Goto(Tid(1_787, "%000006fb"), Attrs([]), - Int(1,1), Direct(Tid(1_293, "%0000050d")))])), Blk(Tid(605, "%0000025d"), - Attrs([Attr("address","0x684")]), Phis([]), Defs([]), -Jmps([Call(Tid(613, "%00000265"), Attrs([Attr("address","0x684"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))])), -Blk(Tid(1_293, "%0000050d"), Attrs([Attr("address","0x680")]), Phis([]), -Defs([]), Jmps([Goto(Tid(1_296, "%00000510"), Attrs([Attr("address","0x680"), -Attr("insn","b #-0x70")]), Int(1,1), -Direct(Tid(1_294, "@__gmon_start__")))])), Blk(Tid(1_294, "@__gmon_start__"), - Attrs([Attr("address","0x610")]), Phis([]), -Defs([Def(Tid(1_499, "%000005db"), Attrs([Attr("address","0x610"), -Attr("insn","adrp x16, #69632")]), Var("R16",Imm(64)), Int(69632,64)), -Def(Tid(1_506, "%000005e2"), Attrs([Attr("address","0x614"), -Attr("insn","ldr x17, [x16, #0x10]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(16,64)),LittleEndian(),64)), -Def(Tid(1_512, "%000005e8"), Attrs([Attr("address","0x618"), -Attr("insn","add x16, x16, #0x10")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(16,64)))]), Jmps([Call(Tid(1_517, "%000005ed"), - Attrs([Attr("address","0x61C"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), -Sub(Tid(1_753, "@deregister_tm_clones"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x690")]), - "deregister_tm_clones", Args([Arg(Tid(1_807, "%0000070f"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("deregister_tm_clones_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(619, "@deregister_tm_clones"), - Attrs([Attr("address","0x690")]), Phis([]), Defs([Def(Tid(622, "%0000026e"), - Attrs([Attr("address","0x690"), Attr("insn","adrp x0, #69632")]), - Var("R0",Imm(64)), Int(69632,64)), Def(Tid(628, "%00000274"), - Attrs([Attr("address","0x694"), Attr("insn","add x0, x0, #0x30")]), - Var("R0",Imm(64)), PLUS(Var("R0",Imm(64)),Int(48,64))), -Def(Tid(633, "%00000279"), Attrs([Attr("address","0x698"), -Attr("insn","adrp x1, #69632")]), Var("R1",Imm(64)), Int(69632,64)), -Def(Tid(639, "%0000027f"), Attrs([Attr("address","0x69C"), -Attr("insn","add x1, x1, #0x30")]), Var("R1",Imm(64)), -PLUS(Var("R1",Imm(64)),Int(48,64))), Def(Tid(645, "%00000285"), - Attrs([Attr("address","0x6A0"), Attr("insn","cmp x1, x0")]), - Var("#1",Imm(64)), NOT(Var("R0",Imm(64)))), Def(Tid(650, "%0000028a"), - Attrs([Attr("address","0x6A0"), Attr("insn","cmp x1, x0")]), - Var("#2",Imm(64)), PLUS(Var("R1",Imm(64)),NOT(Var("R0",Imm(64))))), -Def(Tid(656, "%00000290"), Attrs([Attr("address","0x6A0"), -Attr("insn","cmp x1, x0")]), Var("VF",Imm(1)), -NEQ(SIGNED(65,PLUS(Var("#2",Imm(64)),Int(1,64))),PLUS(PLUS(SIGNED(65,Var("R1",Imm(64))),SIGNED(65,Var("#1",Imm(64)))),Int(1,65)))), -Def(Tid(662, "%00000296"), Attrs([Attr("address","0x6A0"), -Attr("insn","cmp x1, x0")]), Var("CF",Imm(1)), -NEQ(UNSIGNED(65,PLUS(Var("#2",Imm(64)),Int(1,64))),PLUS(PLUS(UNSIGNED(65,Var("R1",Imm(64))),UNSIGNED(65,Var("#1",Imm(64)))),Int(1,65)))), -Def(Tid(666, "%0000029a"), Attrs([Attr("address","0x6A0"), -Attr("insn","cmp x1, x0")]), Var("ZF",Imm(1)), -EQ(PLUS(Var("#2",Imm(64)),Int(1,64)),Int(0,64))), Def(Tid(670, "%0000029e"), - Attrs([Attr("address","0x6A0"), Attr("insn","cmp x1, x0")]), - Var("NF",Imm(1)), Extract(63,63,PLUS(Var("#2",Imm(64)),Int(1,64))))]), -Jmps([Goto(Tid(676, "%000002a4"), Attrs([Attr("address","0x6A4"), -Attr("insn","b.eq #0x18")]), EQ(Var("ZF",Imm(1)),Int(1,1)), -Direct(Tid(674, "%000002a2"))), Goto(Tid(1_788, "%000006fc"), Attrs([]), - Int(1,1), Direct(Tid(1_263, "%000004ef")))])), Blk(Tid(1_263, "%000004ef"), - Attrs([Attr("address","0x6A8")]), Phis([]), -Defs([Def(Tid(1_266, "%000004f2"), Attrs([Attr("address","0x6A8"), -Attr("insn","adrp x1, #65536")]), Var("R1",Imm(64)), Int(65536,64)), -Def(Tid(1_273, "%000004f9"), Attrs([Attr("address","0x6AC"), -Attr("insn","ldr x1, [x1, #0xfb0]")]), Var("R1",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R1",Imm(64)),Int(4016,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(1_278, "%000004fe"), Attrs([Attr("address","0x6B0"), -Attr("insn","cbz x1, #0xc")]), EQ(Var("R1",Imm(64)),Int(0,64)), -Direct(Tid(674, "%000002a2"))), Goto(Tid(1_789, "%000006fd"), Attrs([]), - Int(1,1), Direct(Tid(1_282, "%00000502")))])), Blk(Tid(674, "%000002a2"), - Attrs([Attr("address","0x6BC")]), Phis([]), Defs([]), -Jmps([Call(Tid(682, "%000002aa"), Attrs([Attr("address","0x6BC"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))])), -Blk(Tid(1_282, "%00000502"), Attrs([Attr("address","0x6B4")]), Phis([]), -Defs([Def(Tid(1_286, "%00000506"), Attrs([Attr("address","0x6B4"), -Attr("insn","mov x16, x1")]), Var("R16",Imm(64)), Var("R1",Imm(64)))]), -Jmps([Call(Tid(1_291, "%0000050b"), Attrs([Attr("address","0x6B8"), -Attr("insn","br x16")]), Int(1,1), (Indirect(Var("R16",Imm(64))),))]))])), -Sub(Tid(1_756, "@frame_dummy"), Attrs([Attr("c.proto","signed (*)(void)"), -Attr("address","0x750")]), "frame_dummy", Args([Arg(Tid(1_808, "%00000710"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("frame_dummy_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(834, "@frame_dummy"), - Attrs([Attr("address","0x750")]), Phis([]), Defs([]), -Jmps([Call(Tid(836, "%00000344"), Attrs([Attr("address","0x750"), -Attr("insn","b #-0x90")]), Int(1,1), -(Direct(Tid(1_761, "@register_tm_clones")),))]))])), Sub(Tid(1_757, "@main"), - Attrs([Attr("c.proto","signed (*)(signed argc, const char** argv)"), -Attr("address","0x754")]), "main", Args([Arg(Tid(1_809, "%00000711"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("main_argc",Imm(32)), -LOW(32,Var("R0",Imm(64))), In()), Arg(Tid(1_810, "%00000712"), - Attrs([Attr("c.layout","**[char : 8]"), Attr("c.data","Top:u8 ptr ptr"), -Attr("c.type"," const char**")]), Var("main_argv",Imm(64)), -Var("R1",Imm(64)), Both()), Arg(Tid(1_811, "%00000713"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("main_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(838, "@main"), - Attrs([Attr("address","0x754")]), Phis([]), Defs([Def(Tid(842, "%0000034a"), - Attrs([Attr("address","0x754"), Attr("insn","sub sp, sp, #0x20")]), - Var("R31",Imm(64)), PLUS(Var("R31",Imm(64)),Int(18446744073709551584,64))), -Def(Tid(847, "%0000034f"), Attrs([Attr("address","0x758"), -Attr("insn","adrp x8, #65536")]), Var("R8",Imm(64)), Int(65536,64)), -Def(Tid(854, "%00000356"), Attrs([Attr("address","0x75C"), -Attr("insn","ldr x8, [x8, #0xfc8]")]), Var("R8",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R8",Imm(64)),Int(4040,64)),LittleEndian(),64)), -Def(Tid(862, "%0000035e"), Attrs([Attr("address","0x760"), -Attr("insn","str x8, [sp, #0x8]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),Var("R8",Imm(64)),LittleEndian(),64)), -Def(Tid(869, "%00000365"), Attrs([Attr("address","0x764"), -Attr("insn","str wzr, [sp, #0x1c]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(28,64)),Int(0,32),LittleEndian(),32)), -Def(Tid(877, "%0000036d"), Attrs([Attr("address","0x768"), -Attr("insn","str w0, [sp, #0x18]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(24,64)),Extract(31,0,Var("R0",Imm(64))),LittleEndian(),32)), -Def(Tid(884, "%00000374"), Attrs([Attr("address","0x76C"), -Attr("insn","ldr w9, [sp, #0x18]")]), Var("R9",Imm(64)), -UNSIGNED(64,Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(24,64)),LittleEndian(),32))), -Def(Tid(892, "%0000037c"), Attrs([Attr("address","0x770"), -Attr("insn","str w9, [x8]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("R8",Imm(64)),Extract(31,0,Var("R9",Imm(64))),LittleEndian(),32)), -Def(Tid(899, "%00000383"), Attrs([Attr("address","0x774"), -Attr("insn","str wzr, [sp, #0x14]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(20,64)),Int(0,32),LittleEndian(),32)), -Def(Tid(906, "%0000038a"), Attrs([Attr("address","0x778"), -Attr("insn","ldr w8, [x8]")]), Var("R8",Imm(64)), -UNSIGNED(64,Load(Var("mem",Mem(64,8)),Var("R8",Imm(64)),LittleEndian(),32))), -Def(Tid(912, "%00000390"), Attrs([Attr("address","0x77C"), -Attr("insn","subs w8, w8, #0x0")]), Var("#4",Imm(32)), -PLUS(Extract(31,0,Var("R8",Imm(64))),Int(4294967295,32))), -Def(Tid(917, "%00000395"), Attrs([Attr("address","0x77C"), -Attr("insn","subs w8, w8, #0x0")]), Var("VF",Imm(1)), -NEQ(SIGNED(33,PLUS(Var("#4",Imm(32)),Int(1,32))),PLUS(SIGNED(33,Extract(31,0,Var("R8",Imm(64)))),Int(0,33)))), -Def(Tid(922, "%0000039a"), Attrs([Attr("address","0x77C"), -Attr("insn","subs w8, w8, #0x0")]), Var("CF",Imm(1)), -NEQ(UNSIGNED(33,PLUS(Var("#4",Imm(32)),Int(1,32))),PLUS(UNSIGNED(33,Extract(31,0,Var("R8",Imm(64)))),Int(4294967296,33)))), -Def(Tid(926, "%0000039e"), Attrs([Attr("address","0x77C"), -Attr("insn","subs w8, w8, #0x0")]), Var("ZF",Imm(1)), -EQ(PLUS(Var("#4",Imm(32)),Int(1,32)),Int(0,32))), Def(Tid(930, "%000003a2"), - Attrs([Attr("address","0x77C"), Attr("insn","subs w8, w8, #0x0")]), - Var("NF",Imm(1)), Extract(31,31,PLUS(Var("#4",Imm(32)),Int(1,32)))), -Def(Tid(934, "%000003a6"), Attrs([Attr("address","0x77C"), -Attr("insn","subs w8, w8, #0x0")]), Var("R8",Imm(64)), -UNSIGNED(64,PLUS(Var("#4",Imm(32)),Int(1,32))))]), -Jmps([Goto(Tid(946, "%000003b2"), Attrs([Attr("address","0x780"), -Attr("insn","cset w8, ne")]), EQ(Var("ZF",Imm(1)),Int(1,1)), -Direct(Tid(939, "%000003ab"))), Goto(Tid(947, "%000003b3"), - Attrs([Attr("address","0x780"), Attr("insn","cset w8, ne")]), Int(1,1), -Direct(Tid(942, "%000003ae")))])), Blk(Tid(942, "%000003ae"), Attrs([]), - Phis([]), Defs([Def(Tid(943, "%000003af"), Attrs([Attr("address","0x780"), -Attr("insn","cset w8, ne")]), Var("R8",Imm(64)), Int(1,64))]), -Jmps([Goto(Tid(949, "%000003b5"), Attrs([Attr("address","0x780"), -Attr("insn","cset w8, ne")]), Int(1,1), Direct(Tid(945, "%000003b1")))])), -Blk(Tid(939, "%000003ab"), Attrs([]), Phis([]), -Defs([Def(Tid(940, "%000003ac"), Attrs([Attr("address","0x780"), -Attr("insn","cset w8, ne")]), Var("R8",Imm(64)), Int(0,64))]), -Jmps([Goto(Tid(948, "%000003b4"), Attrs([Attr("address","0x780"), -Attr("insn","cset w8, ne")]), Int(1,1), Direct(Tid(945, "%000003b1")))])), -Blk(Tid(945, "%000003b1"), Attrs([]), Phis([]), Defs([]), -Jmps([Goto(Tid(955, "%000003bb"), Attrs([Attr("address","0x784"), -Attr("insn","tbnz w8, #0x0, #0x14")]), - EQ(Extract(0,0,Var("R8",Imm(64))),Int(1,1)), Direct(Tid(953, "%000003b9"))), -Goto(Tid(1_790, "%000006fe"), Attrs([]), Int(1,1), -Direct(Tid(1_153, "%00000481")))])), Blk(Tid(1_153, "%00000481"), - Attrs([Attr("address","0x788")]), Phis([]), Defs([]), -Jmps([Goto(Tid(1_156, "%00000484"), Attrs([Attr("address","0x788"), -Attr("insn","b #0x4")]), Int(1,1), Direct(Tid(1_154, "%00000482")))])), -Blk(Tid(1_154, "%00000482"), Attrs([Attr("address","0x78C")]), Phis([]), -Defs([Def(Tid(1_160, "%00000488"), Attrs([Attr("address","0x78C"), -Attr("insn","mov w8, #0x3")]), Var("R8",Imm(64)), Int(3,64)), -Def(Tid(1_168, "%00000490"), Attrs([Attr("address","0x790"), -Attr("insn","str w8, [sp, #0x14]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(20,64)),Extract(31,0,Var("R8",Imm(64))),LittleEndian(),32))]), -Jmps([Goto(Tid(1_172, "%00000494"), Attrs([Attr("address","0x794"), -Attr("insn","b #0x4")]), Int(1,1), Direct(Tid(953, "%000003b9")))])), -Blk(Tid(953, "%000003b9"), Attrs([Attr("address","0x798")]), Phis([]), -Defs([Def(Tid(963, "%000003c3"), Attrs([Attr("address","0x798"), -Attr("insn","ldr x8, [sp, #0x8]")]), Var("R8",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(970, "%000003ca"), Attrs([Attr("address","0x79C"), -Attr("insn","ldr w8, [x8]")]), Var("R8",Imm(64)), -UNSIGNED(64,Load(Var("mem",Mem(64,8)),Var("R8",Imm(64)),LittleEndian(),32))), -Def(Tid(976, "%000003d0"), Attrs([Attr("address","0x7A0"), -Attr("insn","subs w8, w8, #0x1")]), Var("#5",Imm(32)), -PLUS(Extract(31,0,Var("R8",Imm(64))),Int(4294967294,32))), -Def(Tid(981, "%000003d5"), Attrs([Attr("address","0x7A0"), -Attr("insn","subs w8, w8, #0x1")]), Var("VF",Imm(1)), -NEQ(SIGNED(33,PLUS(Var("#5",Imm(32)),Int(1,32))),PLUS(SIGNED(33,Extract(31,0,Var("R8",Imm(64)))),Int(8589934591,33)))), -Def(Tid(986, "%000003da"), Attrs([Attr("address","0x7A0"), -Attr("insn","subs w8, w8, #0x1")]), Var("CF",Imm(1)), -NEQ(UNSIGNED(33,PLUS(Var("#5",Imm(32)),Int(1,32))),PLUS(UNSIGNED(33,Extract(31,0,Var("R8",Imm(64)))),Int(4294967295,33)))), -Def(Tid(990, "%000003de"), Attrs([Attr("address","0x7A0"), -Attr("insn","subs w8, w8, #0x1")]), Var("ZF",Imm(1)), -EQ(PLUS(Var("#5",Imm(32)),Int(1,32)),Int(0,32))), Def(Tid(994, "%000003e2"), - Attrs([Attr("address","0x7A0"), Attr("insn","subs w8, w8, #0x1")]), - Var("NF",Imm(1)), Extract(31,31,PLUS(Var("#5",Imm(32)),Int(1,32)))), -Def(Tid(998, "%000003e6"), Attrs([Attr("address","0x7A0"), -Attr("insn","subs w8, w8, #0x1")]), Var("R8",Imm(64)), -UNSIGNED(64,PLUS(Var("#5",Imm(32)),Int(1,32))))]), -Jmps([Goto(Tid(1_010, "%000003f2"), Attrs([Attr("address","0x7A4"), -Attr("insn","cset w8, ne")]), EQ(Var("ZF",Imm(1)),Int(1,1)), -Direct(Tid(1_003, "%000003eb"))), Goto(Tid(1_011, "%000003f3"), - Attrs([Attr("address","0x7A4"), Attr("insn","cset w8, ne")]), Int(1,1), -Direct(Tid(1_006, "%000003ee")))])), Blk(Tid(1_006, "%000003ee"), Attrs([]), - Phis([]), Defs([Def(Tid(1_007, "%000003ef"), Attrs([Attr("address","0x7A4"), -Attr("insn","cset w8, ne")]), Var("R8",Imm(64)), Int(1,64))]), -Jmps([Goto(Tid(1_013, "%000003f5"), Attrs([Attr("address","0x7A4"), -Attr("insn","cset w8, ne")]), Int(1,1), Direct(Tid(1_009, "%000003f1")))])), -Blk(Tid(1_003, "%000003eb"), Attrs([]), Phis([]), -Defs([Def(Tid(1_004, "%000003ec"), Attrs([Attr("address","0x7A4"), -Attr("insn","cset w8, ne")]), Var("R8",Imm(64)), Int(0,64))]), -Jmps([Goto(Tid(1_012, "%000003f4"), Attrs([Attr("address","0x7A4"), -Attr("insn","cset w8, ne")]), Int(1,1), Direct(Tid(1_009, "%000003f1")))])), -Blk(Tid(1_009, "%000003f1"), Attrs([]), Phis([]), Defs([]), -Jmps([Goto(Tid(1_019, "%000003fb"), Attrs([Attr("address","0x7A8"), -Attr("insn","tbnz w8, #0x0, #0x14")]), - EQ(Extract(0,0,Var("R8",Imm(64))),Int(1,1)), -Direct(Tid(1_017, "%000003f9"))), Goto(Tid(1_791, "%000006ff"), Attrs([]), - Int(1,1), Direct(Tid(1_132, "%0000046c")))])), Blk(Tid(1_132, "%0000046c"), - Attrs([Attr("address","0x7AC")]), Phis([]), Defs([]), -Jmps([Goto(Tid(1_135, "%0000046f"), Attrs([Attr("address","0x7AC"), -Attr("insn","b #0x4")]), Int(1,1), Direct(Tid(1_133, "%0000046d")))])), -Blk(Tid(1_133, "%0000046d"), Attrs([Attr("address","0x7B0")]), Phis([]), -Defs([Def(Tid(1_139, "%00000473"), Attrs([Attr("address","0x7B0"), -Attr("insn","mov w8, #0x5")]), Var("R8",Imm(64)), Int(5,64)), -Def(Tid(1_147, "%0000047b"), Attrs([Attr("address","0x7B4"), -Attr("insn","str w8, [sp, #0x14]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(20,64)),Extract(31,0,Var("R8",Imm(64))),LittleEndian(),32))]), -Jmps([Goto(Tid(1_151, "%0000047f"), Attrs([Attr("address","0x7B8"), -Attr("insn","b #0x4")]), Int(1,1), Direct(Tid(1_017, "%000003f9")))])), -Blk(Tid(1_017, "%000003f9"), Attrs([Attr("address","0x7BC")]), Phis([]), -Defs([Def(Tid(1_027, "%00000403"), Attrs([Attr("address","0x7BC"), -Attr("insn","ldr w8, [sp, #0x14]")]), Var("R8",Imm(64)), -UNSIGNED(64,Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(20,64)),LittleEndian(),32))), -Def(Tid(1_033, "%00000409"), Attrs([Attr("address","0x7C0"), -Attr("insn","subs w8, w8, #0x3")]), Var("#6",Imm(32)), -PLUS(Extract(31,0,Var("R8",Imm(64))),Int(4294967292,32))), -Def(Tid(1_038, "%0000040e"), Attrs([Attr("address","0x7C0"), -Attr("insn","subs w8, w8, #0x3")]), Var("VF",Imm(1)), -NEQ(SIGNED(33,PLUS(Var("#6",Imm(32)),Int(1,32))),PLUS(SIGNED(33,Extract(31,0,Var("R8",Imm(64)))),Int(8589934589,33)))), -Def(Tid(1_043, "%00000413"), Attrs([Attr("address","0x7C0"), -Attr("insn","subs w8, w8, #0x3")]), Var("CF",Imm(1)), -NEQ(UNSIGNED(33,PLUS(Var("#6",Imm(32)),Int(1,32))),PLUS(UNSIGNED(33,Extract(31,0,Var("R8",Imm(64)))),Int(4294967293,33)))), -Def(Tid(1_047, "%00000417"), Attrs([Attr("address","0x7C0"), -Attr("insn","subs w8, w8, #0x3")]), Var("ZF",Imm(1)), -EQ(PLUS(Var("#6",Imm(32)),Int(1,32)),Int(0,32))), -Def(Tid(1_051, "%0000041b"), Attrs([Attr("address","0x7C0"), -Attr("insn","subs w8, w8, #0x3")]), Var("NF",Imm(1)), -Extract(31,31,PLUS(Var("#6",Imm(32)),Int(1,32)))), -Def(Tid(1_055, "%0000041f"), Attrs([Attr("address","0x7C0"), -Attr("insn","subs w8, w8, #0x3")]), Var("R8",Imm(64)), -UNSIGNED(64,PLUS(Var("#6",Imm(32)),Int(1,32))))]), -Jmps([Goto(Tid(1_067, "%0000042b"), Attrs([Attr("address","0x7C4"), -Attr("insn","cset w8, ne")]), EQ(Var("ZF",Imm(1)),Int(1,1)), -Direct(Tid(1_060, "%00000424"))), Goto(Tid(1_068, "%0000042c"), - Attrs([Attr("address","0x7C4"), Attr("insn","cset w8, ne")]), Int(1,1), -Direct(Tid(1_063, "%00000427")))])), Blk(Tid(1_063, "%00000427"), Attrs([]), - Phis([]), Defs([Def(Tid(1_064, "%00000428"), Attrs([Attr("address","0x7C4"), -Attr("insn","cset w8, ne")]), Var("R8",Imm(64)), Int(1,64))]), -Jmps([Goto(Tid(1_070, "%0000042e"), Attrs([Attr("address","0x7C4"), -Attr("insn","cset w8, ne")]), Int(1,1), Direct(Tid(1_066, "%0000042a")))])), -Blk(Tid(1_060, "%00000424"), Attrs([]), Phis([]), -Defs([Def(Tid(1_061, "%00000425"), Attrs([Attr("address","0x7C4"), -Attr("insn","cset w8, ne")]), Var("R8",Imm(64)), Int(0,64))]), -Jmps([Goto(Tid(1_069, "%0000042d"), Attrs([Attr("address","0x7C4"), -Attr("insn","cset w8, ne")]), Int(1,1), Direct(Tid(1_066, "%0000042a")))])), -Blk(Tid(1_066, "%0000042a"), Attrs([]), Phis([]), Defs([]), -Jmps([Goto(Tid(1_076, "%00000434"), Attrs([Attr("address","0x7C8"), -Attr("insn","tbnz w8, #0x0, #0x1c")]), - EQ(Extract(0,0,Var("R8",Imm(64))),Int(1,1)), -Direct(Tid(1_074, "%00000432"))), Goto(Tid(1_792, "%00000700"), Attrs([]), - Int(1,1), Direct(Tid(1_097, "%00000449")))])), Blk(Tid(1_097, "%00000449"), - Attrs([Attr("address","0x7CC")]), Phis([]), Defs([]), -Jmps([Goto(Tid(1_100, "%0000044c"), Attrs([Attr("address","0x7CC"), -Attr("insn","b #0x4")]), Int(1,1), Direct(Tid(1_098, "%0000044a")))])), -Blk(Tid(1_098, "%0000044a"), Attrs([Attr("address","0x7D0")]), Phis([]), -Defs([Def(Tid(1_104, "%00000450"), Attrs([Attr("address","0x7D0"), -Attr("insn","adrp x8, #65536")]), Var("R8",Imm(64)), Int(65536,64)), -Def(Tid(1_111, "%00000457"), Attrs([Attr("address","0x7D4"), -Attr("insn","ldr x8, [x8, #0xfc0]")]), Var("R8",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R8",Imm(64)),Int(4032,64)),LittleEndian(),64)), -Def(Tid(1_118, "%0000045e"), Attrs([Attr("address","0x7D8"), -Attr("insn","ldr w8, [x8]")]), Var("R8",Imm(64)), -UNSIGNED(64,Load(Var("mem",Mem(64,8)),Var("R8",Imm(64)),LittleEndian(),32))), -Def(Tid(1_126, "%00000466"), Attrs([Attr("address","0x7DC"), -Attr("insn","str w8, [sp, #0x14]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(20,64)),Extract(31,0,Var("R8",Imm(64))),LittleEndian(),32))]), -Jmps([Goto(Tid(1_130, "%0000046a"), Attrs([Attr("address","0x7E0"), -Attr("insn","b #0x4")]), Int(1,1), Direct(Tid(1_074, "%00000432")))])), -Blk(Tid(1_074, "%00000432"), Attrs([Attr("address","0x7E4")]), Phis([]), -Defs([Def(Tid(1_084, "%0000043c"), Attrs([Attr("address","0x7E4"), -Attr("insn","ldr w0, [sp, #0x1c]")]), Var("R0",Imm(64)), -UNSIGNED(64,Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(28,64)),LittleEndian(),32))), -Def(Tid(1_090, "%00000442"), Attrs([Attr("address","0x7E8"), -Attr("insn","add sp, sp, #0x20")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(32,64)))]), Jmps([Call(Tid(1_095, "%00000447"), - Attrs([Attr("address","0x7EC"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), -Sub(Tid(1_761, "@register_tm_clones"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x6C0")]), - "register_tm_clones", Args([Arg(Tid(1_812, "%00000714"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("register_tm_clones_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(684, "@register_tm_clones"), Attrs([Attr("address","0x6C0")]), - Phis([]), Defs([Def(Tid(687, "%000002af"), Attrs([Attr("address","0x6C0"), -Attr("insn","adrp x0, #69632")]), Var("R0",Imm(64)), Int(69632,64)), -Def(Tid(693, "%000002b5"), Attrs([Attr("address","0x6C4"), -Attr("insn","add x0, x0, #0x30")]), Var("R0",Imm(64)), -PLUS(Var("R0",Imm(64)),Int(48,64))), Def(Tid(698, "%000002ba"), - Attrs([Attr("address","0x6C8"), Attr("insn","adrp x1, #69632")]), - Var("R1",Imm(64)), Int(69632,64)), Def(Tid(704, "%000002c0"), - Attrs([Attr("address","0x6CC"), Attr("insn","add x1, x1, #0x30")]), - Var("R1",Imm(64)), PLUS(Var("R1",Imm(64)),Int(48,64))), -Def(Tid(711, "%000002c7"), Attrs([Attr("address","0x6D0"), -Attr("insn","sub x1, x1, x0")]), Var("R1",Imm(64)), -PLUS(PLUS(Var("R1",Imm(64)),NOT(Var("R0",Imm(64)))),Int(1,64))), -Def(Tid(717, "%000002cd"), Attrs([Attr("address","0x6D4"), -Attr("insn","lsr x2, x1, #63")]), Var("R2",Imm(64)), -Concat(Int(0,63),Extract(63,63,Var("R1",Imm(64))))), -Def(Tid(724, "%000002d4"), Attrs([Attr("address","0x6D8"), -Attr("insn","add x1, x2, x1, asr #3")]), Var("R1",Imm(64)), -PLUS(Var("R2",Imm(64)),ARSHIFT(Var("R1",Imm(64)),Int(3,3)))), -Def(Tid(730, "%000002da"), Attrs([Attr("address","0x6DC"), -Attr("insn","asr x1, x1, #1")]), Var("R1",Imm(64)), -SIGNED(64,Extract(63,1,Var("R1",Imm(64)))))]), -Jmps([Goto(Tid(736, "%000002e0"), Attrs([Attr("address","0x6E0"), -Attr("insn","cbz x1, #0x18")]), EQ(Var("R1",Imm(64)),Int(0,64)), -Direct(Tid(734, "%000002de"))), Goto(Tid(1_793, "%00000701"), Attrs([]), - Int(1,1), Direct(Tid(1_233, "%000004d1")))])), Blk(Tid(1_233, "%000004d1"), - Attrs([Attr("address","0x6E4")]), Phis([]), -Defs([Def(Tid(1_236, "%000004d4"), Attrs([Attr("address","0x6E4"), -Attr("insn","adrp x2, #65536")]), Var("R2",Imm(64)), Int(65536,64)), -Def(Tid(1_243, "%000004db"), Attrs([Attr("address","0x6E8"), -Attr("insn","ldr x2, [x2, #0xfe0]")]), Var("R2",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R2",Imm(64)),Int(4064,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(1_248, "%000004e0"), Attrs([Attr("address","0x6EC"), -Attr("insn","cbz x2, #0xc")]), EQ(Var("R2",Imm(64)),Int(0,64)), -Direct(Tid(734, "%000002de"))), Goto(Tid(1_794, "%00000702"), Attrs([]), - Int(1,1), Direct(Tid(1_252, "%000004e4")))])), Blk(Tid(734, "%000002de"), - Attrs([Attr("address","0x6F8")]), Phis([]), Defs([]), -Jmps([Call(Tid(742, "%000002e6"), Attrs([Attr("address","0x6F8"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))])), -Blk(Tid(1_252, "%000004e4"), Attrs([Attr("address","0x6F0")]), Phis([]), -Defs([Def(Tid(1_256, "%000004e8"), Attrs([Attr("address","0x6F0"), -Attr("insn","mov x16, x2")]), Var("R16",Imm(64)), Var("R2",Imm(64)))]), -Jmps([Call(Tid(1_261, "%000004ed"), Attrs([Attr("address","0x6F4"), -Attr("insn","br x16")]), Int(1,1), -(Indirect(Var("R16",Imm(64))),))]))]))]))) \ No newline at end of file diff --git a/src/test/incorrect/nestedifglobal/clang_pic/nestedifglobal.bir b/src/test/incorrect/nestedifglobal/clang_pic/nestedifglobal.bir deleted file mode 100644 index 5258bf29d..000000000 --- a/src/test/incorrect/nestedifglobal/clang_pic/nestedifglobal.bir +++ /dev/null @@ -1,330 +0,0 @@ -00000703: program -000006cb: sub __cxa_finalize(__cxa_finalize_result) -00000704: __cxa_finalize_result :: out u32 = low:32[R0] - -000004cd: -000005c5: R16 := 0x11000 -000005cc: R17 := mem[R16 + 8, el]:u64 -000005d2: R16 := R16 + 8 -000005d7: call R17 with noreturn - -000006cc: sub __do_global_dtors_aux(__do_global_dtors_aux_result) -00000705: __do_global_dtors_aux_result :: out u32 = low:32[R0] - -000002ea: -000002ee: #3 := R31 - 0x20 -000002f4: mem := mem with [#3, el]:u64 <- R29 -000002fa: mem := mem with [#3 + 8, el]:u64 <- R30 -000002fe: R31 := #3 -00000304: R29 := R31 -0000030c: mem := mem with [R31 + 0x10, el]:u64 <- R19 -00000311: R19 := 0x11000 -00000318: R0 := pad:64[mem[R19 + 0x30]] -0000031f: when 31:0[R0] <> 0 goto %0000031d -000006f6: goto %00000496 - -00000496: -00000499: R0 := 0x10000 -000004a0: R0 := mem[R0 + 0xFB8, el]:u64 -000004a6: when R0 = 0 goto %000004a4 -000006f7: goto %000004bd - -000004bd: -000004c0: R0 := 0x11000 -000004c7: R0 := mem[R0 + 0x28, el]:u64 -000004cc: R30 := 0x730 -000004cf: call @__cxa_finalize with return %000004a4 - -000004a4: -000004ac: R30 := 0x734 -000004ae: call @deregister_tm_clones with return %000004b0 - -000004b0: -000004b3: R0 := 1 -000004bb: mem := mem with [R19 + 0x30] <- 7:0[R0] -000006f8: goto %0000031d - -0000031d: -00000327: R19 := mem[R31 + 0x10, el]:u64 -0000032e: R29 := mem[R31, el]:u64 -00000333: R30 := mem[R31 + 8, el]:u64 -00000337: R31 := R31 + 0x20 -0000033c: call R30 with noreturn - -000006d0: sub __libc_start_main(__libc_start_main_main, __libc_start_main_arg2, __libc_start_main_arg3, __libc_start_main_auxv, __libc_start_main_result) -00000706: __libc_start_main_main :: in u64 = R0 -00000707: __libc_start_main_arg2 :: in u32 = low:32[R1] -00000708: __libc_start_main_arg3 :: in out u64 = R2 -00000709: __libc_start_main_auxv :: in out u64 = R3 -0000070a: __libc_start_main_result :: out u32 = low:32[R0] - -00000243: -000005af: R16 := 0x11000 -000005b6: R17 := mem[R16, el]:u64 -000005bc: R16 := R16 -000005c1: call R17 with noreturn - -000006d1: sub _fini(_fini_result) -0000070b: _fini_result :: out u32 = low:32[R0] - -0000001f: -00000025: #0 := R31 - 0x10 -0000002b: mem := mem with [#0, el]:u64 <- R29 -00000031: mem := mem with [#0 + 8, el]:u64 <- R30 -00000035: R31 := #0 -0000003b: R29 := R31 -00000042: R29 := mem[R31, el]:u64 -00000047: R30 := mem[R31 + 8, el]:u64 -0000004b: R31 := R31 + 0x10 -00000050: call R30 with noreturn - -000006d2: sub _init(_init_result) -0000070c: _init_result :: out u32 = low:32[R0] - -0000061f: -00000625: #8 := R31 - 0x10 -0000062b: mem := mem with [#8, el]:u64 <- R29 -00000631: mem := mem with [#8 + 8, el]:u64 <- R30 -00000635: R31 := #8 -0000063b: R29 := R31 -00000640: R30 := 0x5C0 -00000642: call @call_weak_fn with return %00000644 - -00000644: -00000649: R29 := mem[R31, el]:u64 -0000064e: R30 := mem[R31 + 8, el]:u64 -00000652: R31 := R31 + 0x10 -00000657: call R30 with noreturn - -000006d3: sub _start(_start_result) -0000070d: _start_result :: out u32 = low:32[R0] - -00000204: -00000209: R29 := 0 -0000020e: R30 := 0 -00000214: R5 := R0 -0000021b: R1 := mem[R31, el]:u64 -00000221: R2 := R31 + 8 -00000227: R6 := R31 -0000022c: R0 := 0x10000 -00000233: R0 := mem[R0 + 0xFD8, el]:u64 -00000238: R3 := 0 -0000023d: R4 := 0 -00000242: R30 := 0x670 -00000245: call @__libc_start_main with return %00000247 - -00000247: -0000024a: R30 := 0x674 -0000024d: call @abort with return %000006f9 - -000006f9: -000006fa: call @call_weak_fn with noreturn - -000006d6: sub abort() - - -0000024b: -000005f1: R16 := 0x11000 -000005f8: R17 := mem[R16 + 0x18, el]:u64 -000005fe: R16 := R16 + 0x18 -00000603: call R17 with noreturn - -000006d7: sub call_weak_fn(call_weak_fn_result) -0000070e: call_weak_fn_result :: out u32 = low:32[R0] - -0000024f: -00000252: R0 := 0x10000 -00000259: R0 := mem[R0 + 0xFD0, el]:u64 -0000025f: when R0 = 0 goto %0000025d -000006fb: goto %0000050d - -0000025d: -00000265: call R30 with noreturn - -0000050d: -00000510: goto @__gmon_start__ - -0000050e: -000005db: R16 := 0x11000 -000005e2: R17 := mem[R16 + 0x10, el]:u64 -000005e8: R16 := R16 + 0x10 -000005ed: call R17 with noreturn - -000006d9: sub deregister_tm_clones(deregister_tm_clones_result) -0000070f: deregister_tm_clones_result :: out u32 = low:32[R0] - -0000026b: -0000026e: R0 := 0x11000 -00000274: R0 := R0 + 0x30 -00000279: R1 := 0x11000 -0000027f: R1 := R1 + 0x30 -00000285: #1 := ~R0 -0000028a: #2 := R1 + ~R0 -00000290: VF := extend:65[#2 + 1] <> extend:65[R1] + extend:65[#1] + 1 -00000296: CF := pad:65[#2 + 1] <> pad:65[R1] + pad:65[#1] + 1 -0000029a: ZF := #2 + 1 = 0 -0000029e: NF := 63:63[#2 + 1] -000002a4: when ZF goto %000002a2 -000006fc: goto %000004ef - -000004ef: -000004f2: R1 := 0x10000 -000004f9: R1 := mem[R1 + 0xFB0, el]:u64 -000004fe: when R1 = 0 goto %000002a2 -000006fd: goto %00000502 - -000002a2: -000002aa: call R30 with noreturn - -00000502: -00000506: R16 := R1 -0000050b: call R16 with noreturn - -000006dc: sub frame_dummy(frame_dummy_result) -00000710: frame_dummy_result :: out u32 = low:32[R0] - -00000342: -00000344: call @register_tm_clones with noreturn - -000006dd: sub main(main_argc, main_argv, main_result) -00000711: main_argc :: in u32 = low:32[R0] -00000712: main_argv :: in out u64 = R1 -00000713: main_result :: out u32 = low:32[R0] - -00000346: -0000034a: R31 := R31 - 0x20 -0000034f: R8 := 0x10000 -00000356: R8 := mem[R8 + 0xFC8, el]:u64 -0000035e: mem := mem with [R31 + 8, el]:u64 <- R8 -00000365: mem := mem with [R31 + 0x1C, el]:u32 <- 0 -0000036d: mem := mem with [R31 + 0x18, el]:u32 <- 31:0[R0] -00000374: R9 := pad:64[mem[R31 + 0x18, el]:u32] -0000037c: mem := mem with [R8, el]:u32 <- 31:0[R9] -00000383: mem := mem with [R31 + 0x14, el]:u32 <- 0 -0000038a: R8 := pad:64[mem[R8, el]:u32] -00000390: #4 := 31:0[R8] - 1 -00000395: VF := extend:33[#4 + 1] <> extend:33[31:0[R8]] + 0 -0000039a: CF := pad:33[#4 + 1] <> pad:33[31:0[R8]] - 0x100000000 -0000039e: ZF := #4 + 1 = 0 -000003a2: NF := 31:31[#4 + 1] -000003a6: R8 := pad:64[#4 + 1] -000003b2: when ZF goto %000003ab -000003b3: goto %000003ae - -000003ae: -000003af: R8 := 1 -000003b5: goto %000003b1 - -000003ab: -000003ac: R8 := 0 -000003b4: goto %000003b1 - -000003b1: -000003bb: when 0:0[R8] goto %000003b9 -000006fe: goto %00000481 - -00000481: -00000484: goto %00000482 - -00000482: -00000488: R8 := 3 -00000490: mem := mem with [R31 + 0x14, el]:u32 <- 31:0[R8] -00000494: goto %000003b9 - -000003b9: -000003c3: R8 := mem[R31 + 8, el]:u64 -000003ca: R8 := pad:64[mem[R8, el]:u32] -000003d0: #5 := 31:0[R8] - 2 -000003d5: VF := extend:33[#5 + 1] <> extend:33[31:0[R8]] - 1 -000003da: CF := pad:33[#5 + 1] <> pad:33[31:0[R8]] + 0xFFFFFFFF -000003de: ZF := #5 + 1 = 0 -000003e2: NF := 31:31[#5 + 1] -000003e6: R8 := pad:64[#5 + 1] -000003f2: when ZF goto %000003eb -000003f3: goto %000003ee - -000003ee: -000003ef: R8 := 1 -000003f5: goto %000003f1 - -000003eb: -000003ec: R8 := 0 -000003f4: goto %000003f1 - -000003f1: -000003fb: when 0:0[R8] goto %000003f9 -000006ff: goto %0000046c - -0000046c: -0000046f: goto %0000046d - -0000046d: -00000473: R8 := 5 -0000047b: mem := mem with [R31 + 0x14, el]:u32 <- 31:0[R8] -0000047f: goto %000003f9 - -000003f9: -00000403: R8 := pad:64[mem[R31 + 0x14, el]:u32] -00000409: #6 := 31:0[R8] - 4 -0000040e: VF := extend:33[#6 + 1] <> extend:33[31:0[R8]] - 3 -00000413: CF := pad:33[#6 + 1] <> pad:33[31:0[R8]] + 0xFFFFFFFD -00000417: ZF := #6 + 1 = 0 -0000041b: NF := 31:31[#6 + 1] -0000041f: R8 := pad:64[#6 + 1] -0000042b: when ZF goto %00000424 -0000042c: goto %00000427 - -00000427: -00000428: R8 := 1 -0000042e: goto %0000042a - -00000424: -00000425: R8 := 0 -0000042d: goto %0000042a - -0000042a: -00000434: when 0:0[R8] goto %00000432 -00000700: goto %00000449 - -00000449: -0000044c: goto %0000044a - -0000044a: -00000450: R8 := 0x10000 -00000457: R8 := mem[R8 + 0xFC0, el]:u64 -0000045e: R8 := pad:64[mem[R8, el]:u32] -00000466: mem := mem with [R31 + 0x14, el]:u32 <- 31:0[R8] -0000046a: goto %00000432 - -00000432: -0000043c: R0 := pad:64[mem[R31 + 0x1C, el]:u32] -00000442: R31 := R31 + 0x20 -00000447: call R30 with noreturn - -000006e1: sub register_tm_clones(register_tm_clones_result) -00000714: register_tm_clones_result :: out u32 = low:32[R0] - -000002ac: -000002af: R0 := 0x11000 -000002b5: R0 := R0 + 0x30 -000002ba: R1 := 0x11000 -000002c0: R1 := R1 + 0x30 -000002c7: R1 := R1 + ~R0 + 1 -000002cd: R2 := 0.63:63[R1] -000002d4: R1 := R2 + (R1 ~>> 3) -000002da: R1 := extend:64[63:1[R1]] -000002e0: when R1 = 0 goto %000002de -00000701: goto %000004d1 - -000004d1: -000004d4: R2 := 0x10000 -000004db: R2 := mem[R2 + 0xFE0, el]:u64 -000004e0: when R2 = 0 goto %000002de -00000702: goto %000004e4 - -000002de: -000002e6: call R30 with noreturn - -000004e4: -000004e8: R16 := R2 -000004ed: call R16 with noreturn diff --git a/src/test/incorrect/nestedifglobal/clang_pic/nestedifglobal.expected b/src/test/incorrect/nestedifglobal/clang_pic/nestedifglobal.expected index 7a7b85131..93f78802b 100644 --- a/src/test/incorrect/nestedifglobal/clang_pic/nestedifglobal.expected +++ b/src/test/incorrect/nestedifglobal/clang_pic/nestedifglobal.expected @@ -92,7 +92,7 @@ procedure {:extern} rely_reflexive(); procedure {:extern} guarantee_reflexive(); modifies Gamma_mem, mem; -procedure main_1876(); +procedure main(); modifies CF, Gamma_CF, Gamma_NF, Gamma_R0, Gamma_R31, Gamma_R8, Gamma_R9, Gamma_VF, Gamma_ZF, Gamma_mem, Gamma_stack, NF, R0, R31, R8, R9, VF, ZF, mem, stack; free requires (memory_load64_le(mem, 69664bv64) == 0bv64); free requires (memory_load64_le(mem, 69672bv64) == 69672bv64); @@ -113,47 +113,47 @@ procedure main_1876(); free ensures (memory_load64_le(mem, 69592bv64) == 1876bv64); free ensures (memory_load64_le(mem, 69672bv64) == 69672bv64); -implementation main_1876() +implementation main() { var #4: bv32; var #5: bv32; var #6: bv32; + var $load$18: bv64; + var $load$19: bv32; + var $load$20: bv32; + var $load$21: bv64; + var $load$22: bv32; + var $load$23: bv32; + var $load$24: bv64; + var $load$25: bv32; + var $load$26: bv32; var Gamma_#4: bool; var Gamma_#5: bool; var Gamma_#6: bool; - var Gamma_load18: bool; - var Gamma_load19: bool; - var Gamma_load20: bool; - var Gamma_load21: bool; - var Gamma_load22: bool; - var Gamma_load23: bool; - var Gamma_load24: bool; - var Gamma_load25: bool; - var Gamma_load26: bool; - var load18: bv64; - var load19: bv32; - var load20: bv32; - var load21: bv64; - var load22: bv32; - var load23: bv32; - var load24: bv64; - var load25: bv32; - var load26: bv32; + var Gamma_$load$18: bool; + var Gamma_$load$19: bool; + var Gamma_$load$20: bool; + var Gamma_$load$21: bool; + var Gamma_$load$22: bool; + var Gamma_$load$23: bool; + var Gamma_$load$24: bool; + var Gamma_$load$25: bool; + var Gamma_$load$26: bool; lmain: assume {:captureState "lmain"} true; R31, Gamma_R31 := bvadd64(R31, 18446744073709551584bv64), Gamma_R31; R8, Gamma_R8 := 65536bv64, true; call rely(); - load18, Gamma_load18 := memory_load64_le(mem, bvadd64(R8, 4040bv64)), (gamma_load64(Gamma_mem, bvadd64(R8, 4040bv64)) || L(mem, bvadd64(R8, 4040bv64))); - R8, Gamma_R8 := load18, Gamma_load18; + $load$18, Gamma_$load$18 := memory_load64_le(mem, bvadd64(R8, 4040bv64)), (gamma_load64(Gamma_mem, bvadd64(R8, 4040bv64)) || L(mem, bvadd64(R8, 4040bv64))); + R8, Gamma_R8 := $load$18, Gamma_$load$18; stack, Gamma_stack := memory_store64_le(stack, bvadd64(R31, 8bv64), R8), gamma_store64(Gamma_stack, bvadd64(R31, 8bv64), Gamma_R8); assume {:captureState "%0000035e"} true; stack, Gamma_stack := memory_store32_le(stack, bvadd64(R31, 28bv64), 0bv32), gamma_store32(Gamma_stack, bvadd64(R31, 28bv64), true); assume {:captureState "%00000365"} true; stack, Gamma_stack := memory_store32_le(stack, bvadd64(R31, 24bv64), R0[32:0]), gamma_store32(Gamma_stack, bvadd64(R31, 24bv64), Gamma_R0); assume {:captureState "%0000036d"} true; - load19, Gamma_load19 := memory_load32_le(stack, bvadd64(R31, 24bv64)), gamma_load32(Gamma_stack, bvadd64(R31, 24bv64)); - R9, Gamma_R9 := zero_extend32_32(load19), Gamma_load19; + $load$19, Gamma_$load$19 := memory_load32_le(stack, bvadd64(R31, 24bv64)), gamma_load32(Gamma_stack, bvadd64(R31, 24bv64)); + R9, Gamma_R9 := zero_extend32_32($load$19), Gamma_$load$19; call rely(); assert (L(mem, R8) ==> Gamma_R9); mem, Gamma_mem := memory_store32_le(mem, R8, R9[32:0]), gamma_store32(Gamma_mem, R8, Gamma_R9); @@ -161,8 +161,8 @@ implementation main_1876() stack, Gamma_stack := memory_store32_le(stack, bvadd64(R31, 20bv64), 0bv32), gamma_store32(Gamma_stack, bvadd64(R31, 20bv64), true); assume {:captureState "%00000383"} true; call rely(); - load20, Gamma_load20 := memory_load32_le(mem, R8), (gamma_load32(Gamma_mem, R8) || L(mem, R8)); - R8, Gamma_R8 := zero_extend32_32(load20), Gamma_load20; + $load$20, Gamma_$load$20 := memory_load32_le(mem, R8), (gamma_load32(Gamma_mem, R8) || L(mem, R8)); + R8, Gamma_R8 := zero_extend32_32($load$20), Gamma_$load$20; #4, Gamma_#4 := bvadd32(R8[32:0], 4294967295bv32), Gamma_R8; VF, Gamma_VF := bvnot1(bvcomp33(sign_extend1_32(bvadd32(#4, 1bv32)), bvadd33(sign_extend1_32(R8[32:0]), 0bv33))), (Gamma_R8 && Gamma_#4); CF, Gamma_CF := bvnot1(bvcomp33(zero_extend1_32(bvadd32(#4, 1bv32)), bvadd33(zero_extend1_32(R8[32:0]), 4294967296bv33))), (Gamma_R8 && Gamma_#4); @@ -171,30 +171,18 @@ implementation main_1876() R8, Gamma_R8 := zero_extend32_32(bvadd32(#4, 1bv32)), Gamma_#4; assert Gamma_ZF; goto lmain_goto_l000003ab, lmain_goto_l000003ae; - lmain_goto_l000003ae: - assume {:captureState "lmain_goto_l000003ae"} true; - assume (bvcomp1(ZF, 1bv1) == 0bv1); - R8, Gamma_R8 := 1bv64, true; - goto l000003ae; l000003ae: assume {:captureState "l000003ae"} true; + R8, Gamma_R8 := 1bv64, true; goto l000003b1; - lmain_goto_l000003ab: - assume {:captureState "lmain_goto_l000003ab"} true; - assume (bvcomp1(ZF, 1bv1) != 0bv1); - R8, Gamma_R8 := 0bv64, true; - goto l000003ab; l000003ab: assume {:captureState "l000003ab"} true; + R8, Gamma_R8 := 0bv64, true; goto l000003b1; l000003b1: assume {:captureState "l000003b1"} true; assert Gamma_R8; goto l000003b1_goto_l000003b9, l000003b1_goto_l00000481; - l000003b1_goto_l00000481: - assume {:captureState "l000003b1_goto_l00000481"} true; - assume (bvcomp1(R8[1:0], 1bv1) == 0bv1); - goto l00000481; l00000481: assume {:captureState "l00000481"} true; goto l00000482; @@ -204,17 +192,13 @@ implementation main_1876() stack, Gamma_stack := memory_store32_le(stack, bvadd64(R31, 20bv64), R8[32:0]), gamma_store32(Gamma_stack, bvadd64(R31, 20bv64), Gamma_R8); assume {:captureState "%00000490"} true; goto l000003b9; - l000003b1_goto_l000003b9: - assume {:captureState "l000003b1_goto_l000003b9"} true; - assume (bvcomp1(R8[1:0], 1bv1) != 0bv1); - goto l000003b9; l000003b9: assume {:captureState "l000003b9"} true; - load21, Gamma_load21 := memory_load64_le(stack, bvadd64(R31, 8bv64)), gamma_load64(Gamma_stack, bvadd64(R31, 8bv64)); - R8, Gamma_R8 := load21, Gamma_load21; + $load$21, Gamma_$load$21 := memory_load64_le(stack, bvadd64(R31, 8bv64)), gamma_load64(Gamma_stack, bvadd64(R31, 8bv64)); + R8, Gamma_R8 := $load$21, Gamma_$load$21; call rely(); - load22, Gamma_load22 := memory_load32_le(mem, R8), (gamma_load32(Gamma_mem, R8) || L(mem, R8)); - R8, Gamma_R8 := zero_extend32_32(load22), Gamma_load22; + $load$22, Gamma_$load$22 := memory_load32_le(mem, R8), (gamma_load32(Gamma_mem, R8) || L(mem, R8)); + R8, Gamma_R8 := zero_extend32_32($load$22), Gamma_$load$22; #5, Gamma_#5 := bvadd32(R8[32:0], 4294967294bv32), Gamma_R8; VF, Gamma_VF := bvnot1(bvcomp33(sign_extend1_32(bvadd32(#5, 1bv32)), bvadd33(sign_extend1_32(R8[32:0]), 8589934591bv33))), (Gamma_R8 && Gamma_#5); CF, Gamma_CF := bvnot1(bvcomp33(zero_extend1_32(bvadd32(#5, 1bv32)), bvadd33(zero_extend1_32(R8[32:0]), 4294967295bv33))), (Gamma_R8 && Gamma_#5); @@ -223,30 +207,18 @@ implementation main_1876() R8, Gamma_R8 := zero_extend32_32(bvadd32(#5, 1bv32)), Gamma_#5; assert Gamma_ZF; goto l000003b9_goto_l000003eb, l000003b9_goto_l000003ee; - l000003b9_goto_l000003ee: - assume {:captureState "l000003b9_goto_l000003ee"} true; - assume (bvcomp1(ZF, 1bv1) == 0bv1); - R8, Gamma_R8 := 1bv64, true; - goto l000003ee; l000003ee: assume {:captureState "l000003ee"} true; + R8, Gamma_R8 := 1bv64, true; goto l000003f1; - l000003b9_goto_l000003eb: - assume {:captureState "l000003b9_goto_l000003eb"} true; - assume (bvcomp1(ZF, 1bv1) != 0bv1); - R8, Gamma_R8 := 0bv64, true; - goto l000003eb; l000003eb: assume {:captureState "l000003eb"} true; + R8, Gamma_R8 := 0bv64, true; goto l000003f1; l000003f1: assume {:captureState "l000003f1"} true; assert Gamma_R8; goto l000003f1_goto_l000003f9, l000003f1_goto_l0000046c; - l000003f1_goto_l0000046c: - assume {:captureState "l000003f1_goto_l0000046c"} true; - assume (bvcomp1(R8[1:0], 1bv1) == 0bv1); - goto l0000046c; l0000046c: assume {:captureState "l0000046c"} true; goto l0000046d; @@ -256,14 +228,10 @@ implementation main_1876() stack, Gamma_stack := memory_store32_le(stack, bvadd64(R31, 20bv64), R8[32:0]), gamma_store32(Gamma_stack, bvadd64(R31, 20bv64), Gamma_R8); assume {:captureState "%0000047b"} true; goto l000003f9; - l000003f1_goto_l000003f9: - assume {:captureState "l000003f1_goto_l000003f9"} true; - assume (bvcomp1(R8[1:0], 1bv1) != 0bv1); - goto l000003f9; l000003f9: assume {:captureState "l000003f9"} true; - load23, Gamma_load23 := memory_load32_le(stack, bvadd64(R31, 20bv64)), gamma_load32(Gamma_stack, bvadd64(R31, 20bv64)); - R8, Gamma_R8 := zero_extend32_32(load23), Gamma_load23; + $load$23, Gamma_$load$23 := memory_load32_le(stack, bvadd64(R31, 20bv64)), gamma_load32(Gamma_stack, bvadd64(R31, 20bv64)); + R8, Gamma_R8 := zero_extend32_32($load$23), Gamma_$load$23; #6, Gamma_#6 := bvadd32(R8[32:0], 4294967292bv32), Gamma_R8; VF, Gamma_VF := bvnot1(bvcomp33(sign_extend1_32(bvadd32(#6, 1bv32)), bvadd33(sign_extend1_32(R8[32:0]), 8589934589bv33))), (Gamma_R8 && Gamma_#6); CF, Gamma_CF := bvnot1(bvcomp33(zero_extend1_32(bvadd32(#6, 1bv32)), bvadd33(zero_extend1_32(R8[32:0]), 4294967293bv33))), (Gamma_R8 && Gamma_#6); @@ -272,30 +240,18 @@ implementation main_1876() R8, Gamma_R8 := zero_extend32_32(bvadd32(#6, 1bv32)), Gamma_#6; assert Gamma_ZF; goto l000003f9_goto_l00000424, l000003f9_goto_l00000427; - l000003f9_goto_l00000427: - assume {:captureState "l000003f9_goto_l00000427"} true; - assume (bvcomp1(ZF, 1bv1) == 0bv1); - R8, Gamma_R8 := 1bv64, true; - goto l00000427; l00000427: assume {:captureState "l00000427"} true; + R8, Gamma_R8 := 1bv64, true; goto l0000042a; - l000003f9_goto_l00000424: - assume {:captureState "l000003f9_goto_l00000424"} true; - assume (bvcomp1(ZF, 1bv1) != 0bv1); - R8, Gamma_R8 := 0bv64, true; - goto l00000424; l00000424: assume {:captureState "l00000424"} true; + R8, Gamma_R8 := 0bv64, true; goto l0000042a; l0000042a: assume {:captureState "l0000042a"} true; assert Gamma_R8; goto l0000042a_goto_l00000432, l0000042a_goto_l00000449; - l0000042a_goto_l00000449: - assume {:captureState "l0000042a_goto_l00000449"} true; - assume (bvcomp1(R8[1:0], 1bv1) == 0bv1); - goto l00000449; l00000449: assume {:captureState "l00000449"} true; goto l0000044a; @@ -303,26 +259,70 @@ implementation main_1876() assume {:captureState "l0000044a"} true; R8, Gamma_R8 := 65536bv64, true; call rely(); - load24, Gamma_load24 := memory_load64_le(mem, bvadd64(R8, 4032bv64)), (gamma_load64(Gamma_mem, bvadd64(R8, 4032bv64)) || L(mem, bvadd64(R8, 4032bv64))); - R8, Gamma_R8 := load24, Gamma_load24; + $load$24, Gamma_$load$24 := memory_load64_le(mem, bvadd64(R8, 4032bv64)), (gamma_load64(Gamma_mem, bvadd64(R8, 4032bv64)) || L(mem, bvadd64(R8, 4032bv64))); + R8, Gamma_R8 := $load$24, Gamma_$load$24; call rely(); - load25, Gamma_load25 := memory_load32_le(mem, R8), (gamma_load32(Gamma_mem, R8) || L(mem, R8)); - R8, Gamma_R8 := zero_extend32_32(load25), Gamma_load25; + $load$25, Gamma_$load$25 := memory_load32_le(mem, R8), (gamma_load32(Gamma_mem, R8) || L(mem, R8)); + R8, Gamma_R8 := zero_extend32_32($load$25), Gamma_$load$25; stack, Gamma_stack := memory_store32_le(stack, bvadd64(R31, 20bv64), R8[32:0]), gamma_store32(Gamma_stack, bvadd64(R31, 20bv64), Gamma_R8); assume {:captureState "%00000466"} true; goto l00000432; + l00000432: + assume {:captureState "l00000432"} true; + $load$26, Gamma_$load$26 := memory_load32_le(stack, bvadd64(R31, 28bv64)), gamma_load32(Gamma_stack, bvadd64(R31, 28bv64)); + R0, Gamma_R0 := zero_extend32_32($load$26), Gamma_$load$26; + R31, Gamma_R31 := bvadd64(R31, 32bv64), Gamma_R31; + goto main_basil_return; + lmain_goto_l000003ab: + assume {:captureState "lmain_goto_l000003ab"} true; + assume (bvcomp1(ZF, 1bv1) != 0bv1); + goto l000003ab; + lmain_goto_l000003ae: + assume {:captureState "lmain_goto_l000003ae"} true; + assume (bvcomp1(ZF, 1bv1) == 0bv1); + goto l000003ae; + l000003b1_goto_l000003b9: + assume {:captureState "l000003b1_goto_l000003b9"} true; + assume (bvcomp1(R8[1:0], 1bv1) != 0bv1); + goto l000003b9; + l000003b1_goto_l00000481: + assume {:captureState "l000003b1_goto_l00000481"} true; + assume (bvcomp1(R8[1:0], 1bv1) == 0bv1); + goto l00000481; + l000003b9_goto_l000003eb: + assume {:captureState "l000003b9_goto_l000003eb"} true; + assume (bvcomp1(ZF, 1bv1) != 0bv1); + goto l000003eb; + l000003b9_goto_l000003ee: + assume {:captureState "l000003b9_goto_l000003ee"} true; + assume (bvcomp1(ZF, 1bv1) == 0bv1); + goto l000003ee; + l000003f1_goto_l000003f9: + assume {:captureState "l000003f1_goto_l000003f9"} true; + assume (bvcomp1(R8[1:0], 1bv1) != 0bv1); + goto l000003f9; + l000003f1_goto_l0000046c: + assume {:captureState "l000003f1_goto_l0000046c"} true; + assume (bvcomp1(R8[1:0], 1bv1) == 0bv1); + goto l0000046c; + l000003f9_goto_l00000424: + assume {:captureState "l000003f9_goto_l00000424"} true; + assume (bvcomp1(ZF, 1bv1) != 0bv1); + goto l00000424; + l000003f9_goto_l00000427: + assume {:captureState "l000003f9_goto_l00000427"} true; + assume (bvcomp1(ZF, 1bv1) == 0bv1); + goto l00000427; l0000042a_goto_l00000432: assume {:captureState "l0000042a_goto_l00000432"} true; assume (bvcomp1(R8[1:0], 1bv1) != 0bv1); goto l00000432; - l00000432: - assume {:captureState "l00000432"} true; - load26, Gamma_load26 := memory_load32_le(stack, bvadd64(R31, 28bv64)), gamma_load32(Gamma_stack, bvadd64(R31, 28bv64)); - R0, Gamma_R0 := zero_extend32_32(load26), Gamma_load26; - R31, Gamma_R31 := bvadd64(R31, 32bv64), Gamma_R31; - goto main_1876_basil_return; - main_1876_basil_return: - assume {:captureState "main_1876_basil_return"} true; + l0000042a_goto_l00000449: + assume {:captureState "l0000042a_goto_l00000449"} true; + assume (bvcomp1(R8[1:0], 1bv1) == 0bv1); + goto l00000449; + main_basil_return: + assume {:captureState "main_basil_return"} true; return; } diff --git a/src/test/incorrect/nestedifglobal/clang_pic/nestedifglobal.gts b/src/test/incorrect/nestedifglobal/clang_pic/nestedifglobal.gts deleted file mode 100644 index f9ad509ae..000000000 Binary files a/src/test/incorrect/nestedifglobal/clang_pic/nestedifglobal.gts and /dev/null differ diff --git a/src/test/incorrect/nestedifglobal/clang_pic/nestedifglobal.md5sum b/src/test/incorrect/nestedifglobal/clang_pic/nestedifglobal.md5sum new file mode 100644 index 000000000..b8c713478 --- /dev/null +++ b/src/test/incorrect/nestedifglobal/clang_pic/nestedifglobal.md5sum @@ -0,0 +1,5 @@ +c3b267f7efa5aa8cb2eda7c87e042471 incorrect/nestedifglobal/clang_pic/a.out +9d8f1263953dcb871ae61b1933db00ab incorrect/nestedifglobal/clang_pic/nestedifglobal.adt +36216bfa0c5bfa6d0de031b17ee0a887 incorrect/nestedifglobal/clang_pic/nestedifglobal.bir +b3c633ddd93dcc2a203d491c479b77b0 incorrect/nestedifglobal/clang_pic/nestedifglobal.relf +25bd1d95bf06006367af8e2e174bf5d7 incorrect/nestedifglobal/clang_pic/nestedifglobal.gts diff --git a/src/test/incorrect/nestedifglobal/clang_pic/nestedifglobal.relf b/src/test/incorrect/nestedifglobal/clang_pic/nestedifglobal.relf deleted file mode 100644 index 1528ff5e9..000000000 --- a/src/test/incorrect/nestedifglobal/clang_pic/nestedifglobal.relf +++ /dev/null @@ -1,126 +0,0 @@ - -Relocation section '.rela.dyn' at offset 0x460 contains 10 entries: - Offset Info Type Symbol's Value Symbol's Name + Addend -0000000000010db8 0000000000000403 R_AARCH64_RELATIVE 750 -0000000000010dc0 0000000000000403 R_AARCH64_RELATIVE 700 -0000000000010fc0 0000000000000403 R_AARCH64_RELATIVE 11038 -0000000000010fc8 0000000000000403 R_AARCH64_RELATIVE 11034 -0000000000010fd8 0000000000000403 R_AARCH64_RELATIVE 754 -0000000000011028 0000000000000403 R_AARCH64_RELATIVE 11028 -0000000000010fb0 0000000400000401 R_AARCH64_GLOB_DAT 0000000000000000 _ITM_deregisterTMCloneTable + 0 -0000000000010fb8 0000000500000401 R_AARCH64_GLOB_DAT 0000000000000000 __cxa_finalize@GLIBC_2.17 + 0 -0000000000010fd0 0000000600000401 R_AARCH64_GLOB_DAT 0000000000000000 __gmon_start__ + 0 -0000000000010fe0 0000000800000401 R_AARCH64_GLOB_DAT 0000000000000000 _ITM_registerTMCloneTable + 0 - -Relocation section '.rela.plt' at offset 0x550 contains 4 entries: - Offset Info Type Symbol's Value Symbol's Name + Addend -0000000000011000 0000000300000402 R_AARCH64_JUMP_SLOT 0000000000000000 __libc_start_main@GLIBC_2.34 + 0 -0000000000011008 0000000500000402 R_AARCH64_JUMP_SLOT 0000000000000000 __cxa_finalize@GLIBC_2.17 + 0 -0000000000011010 0000000600000402 R_AARCH64_JUMP_SLOT 0000000000000000 __gmon_start__ + 0 -0000000000011018 0000000700000402 R_AARCH64_JUMP_SLOT 0000000000000000 abort@GLIBC_2.17 + 0 - -Symbol table '.dynsym' contains 9 entries: - Num: Value Size Type Bind Vis Ndx Name - 0: 0000000000000000 0 NOTYPE LOCAL DEFAULT UND - 1: 00000000000005b0 0 SECTION LOCAL DEFAULT 11 .init - 2: 0000000000011020 0 SECTION LOCAL DEFAULT 23 .data - 3: 0000000000000000 0 FUNC GLOBAL DEFAULT UND __libc_start_main@GLIBC_2.34 (2) - 4: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_deregisterTMCloneTable - 5: 0000000000000000 0 FUNC WEAK DEFAULT UND __cxa_finalize@GLIBC_2.17 (3) - 6: 0000000000000000 0 NOTYPE WEAK DEFAULT UND __gmon_start__ - 7: 0000000000000000 0 FUNC GLOBAL DEFAULT UND abort@GLIBC_2.17 (3) - 8: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_registerTMCloneTable - -Symbol table '.symtab' contains 91 entries: - Num: Value Size Type Bind Vis Ndx Name - 0: 0000000000000000 0 NOTYPE LOCAL DEFAULT UND - 1: 0000000000000238 0 SECTION LOCAL DEFAULT 1 .interp - 2: 0000000000000254 0 SECTION LOCAL DEFAULT 2 .note.gnu.build-id - 3: 0000000000000278 0 SECTION LOCAL DEFAULT 3 .note.ABI-tag - 4: 0000000000000298 0 SECTION LOCAL DEFAULT 4 .gnu.hash - 5: 00000000000002b8 0 SECTION LOCAL DEFAULT 5 .dynsym - 6: 0000000000000390 0 SECTION LOCAL DEFAULT 6 .dynstr - 7: 000000000000041e 0 SECTION LOCAL DEFAULT 7 .gnu.version - 8: 0000000000000430 0 SECTION LOCAL DEFAULT 8 .gnu.version_r - 9: 0000000000000460 0 SECTION LOCAL DEFAULT 9 .rela.dyn - 10: 0000000000000550 0 SECTION LOCAL DEFAULT 10 .rela.plt - 11: 00000000000005b0 0 SECTION LOCAL DEFAULT 11 .init - 12: 00000000000005d0 0 SECTION LOCAL DEFAULT 12 .plt - 13: 0000000000000640 0 SECTION LOCAL DEFAULT 13 .text - 14: 00000000000007f0 0 SECTION LOCAL DEFAULT 14 .fini - 15: 0000000000000804 0 SECTION LOCAL DEFAULT 15 .rodata - 16: 0000000000000808 0 SECTION LOCAL DEFAULT 16 .eh_frame_hdr - 17: 0000000000000848 0 SECTION LOCAL DEFAULT 17 .eh_frame - 18: 0000000000010db8 0 SECTION LOCAL DEFAULT 18 .init_array - 19: 0000000000010dc0 0 SECTION LOCAL DEFAULT 19 .fini_array - 20: 0000000000010dc8 0 SECTION LOCAL DEFAULT 20 .dynamic - 21: 0000000000010fa8 0 SECTION LOCAL DEFAULT 21 .got - 22: 0000000000010fe8 0 SECTION LOCAL DEFAULT 22 .got.plt - 23: 0000000000011020 0 SECTION LOCAL DEFAULT 23 .data - 24: 0000000000011030 0 SECTION LOCAL DEFAULT 24 .bss - 25: 0000000000000000 0 SECTION LOCAL DEFAULT 25 .comment - 26: 0000000000000000 0 FILE LOCAL DEFAULT ABS Scrt1.o - 27: 0000000000000278 0 NOTYPE LOCAL DEFAULT 3 $d - 28: 0000000000000278 32 OBJECT LOCAL DEFAULT 3 __abi_tag - 29: 0000000000000640 0 NOTYPE LOCAL DEFAULT 13 $x - 30: 000000000000085c 0 NOTYPE LOCAL DEFAULT 17 $d - 31: 0000000000000804 0 NOTYPE LOCAL DEFAULT 15 $d - 32: 0000000000000000 0 FILE LOCAL DEFAULT ABS crti.o - 33: 0000000000000674 0 NOTYPE LOCAL DEFAULT 13 $x - 34: 0000000000000674 20 FUNC LOCAL DEFAULT 13 call_weak_fn - 35: 00000000000005b0 0 NOTYPE LOCAL DEFAULT 11 $x - 36: 00000000000007f0 0 NOTYPE LOCAL DEFAULT 14 $x - 37: 0000000000000000 0 FILE LOCAL DEFAULT ABS crtn.o - 38: 00000000000005c0 0 NOTYPE LOCAL DEFAULT 11 $x - 39: 00000000000007fc 0 NOTYPE LOCAL DEFAULT 14 $x - 40: 0000000000000000 0 FILE LOCAL DEFAULT ABS crtstuff.c - 41: 0000000000000690 0 NOTYPE LOCAL DEFAULT 13 $x - 42: 0000000000000690 0 FUNC LOCAL DEFAULT 13 deregister_tm_clones - 43: 00000000000006c0 0 FUNC LOCAL DEFAULT 13 register_tm_clones - 44: 0000000000011028 0 NOTYPE LOCAL DEFAULT 23 $d - 45: 0000000000000700 0 FUNC LOCAL DEFAULT 13 __do_global_dtors_aux - 46: 0000000000011030 1 OBJECT LOCAL DEFAULT 24 completed.0 - 47: 0000000000010dc0 0 NOTYPE LOCAL DEFAULT 19 $d - 48: 0000000000010dc0 0 OBJECT LOCAL DEFAULT 19 __do_global_dtors_aux_fini_array_entry - 49: 0000000000000750 0 FUNC LOCAL DEFAULT 13 frame_dummy - 50: 0000000000010db8 0 NOTYPE LOCAL DEFAULT 18 $d - 51: 0000000000010db8 0 OBJECT LOCAL DEFAULT 18 __frame_dummy_init_array_entry - 52: 0000000000000870 0 NOTYPE LOCAL DEFAULT 17 $d - 53: 0000000000011030 0 NOTYPE LOCAL DEFAULT 24 $d - 54: 0000000000000000 0 FILE LOCAL DEFAULT ABS nestedifglobal.c - 55: 0000000000000754 0 NOTYPE LOCAL DEFAULT 13 $x.0 - 56: 0000000000011034 0 NOTYPE LOCAL DEFAULT 24 $d.1 - 57: 000000000000002a 0 NOTYPE LOCAL DEFAULT 25 $d.2 - 58: 00000000000008d0 0 NOTYPE LOCAL DEFAULT 17 $d.3 - 59: 0000000000000000 0 FILE LOCAL DEFAULT ABS crtstuff.c - 60: 00000000000008fc 0 NOTYPE LOCAL DEFAULT 17 $d - 61: 00000000000008fc 0 OBJECT LOCAL DEFAULT 17 __FRAME_END__ - 62: 0000000000000000 0 FILE LOCAL DEFAULT ABS - 63: 0000000000010dc8 0 OBJECT LOCAL DEFAULT ABS _DYNAMIC - 64: 0000000000000808 0 NOTYPE LOCAL DEFAULT 16 __GNU_EH_FRAME_HDR - 65: 0000000000010fa8 0 OBJECT LOCAL DEFAULT ABS _GLOBAL_OFFSET_TABLE_ - 66: 00000000000005d0 0 NOTYPE LOCAL DEFAULT 12 $x - 67: 0000000000000000 0 FUNC GLOBAL DEFAULT UND __libc_start_main@GLIBC_2.34 - 68: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_deregisterTMCloneTable - 69: 0000000000011020 0 NOTYPE WEAK DEFAULT 23 data_start - 70: 0000000000011030 0 NOTYPE GLOBAL DEFAULT 24 __bss_start__ - 71: 0000000000000000 0 FUNC WEAK DEFAULT UND __cxa_finalize@GLIBC_2.17 - 72: 0000000000011040 0 NOTYPE GLOBAL DEFAULT 24 _bss_end__ - 73: 0000000000011030 0 NOTYPE GLOBAL DEFAULT 23 _edata - 74: 0000000000011038 4 OBJECT GLOBAL DEFAULT 24 z - 75: 0000000000011034 4 OBJECT GLOBAL DEFAULT 24 x - 76: 00000000000007f0 0 FUNC GLOBAL HIDDEN 14 _fini - 77: 0000000000011040 0 NOTYPE GLOBAL DEFAULT 24 __bss_end__ - 78: 0000000000011020 0 NOTYPE GLOBAL DEFAULT 23 __data_start - 79: 0000000000000000 0 NOTYPE WEAK DEFAULT UND __gmon_start__ - 80: 0000000000011028 0 OBJECT GLOBAL HIDDEN 23 __dso_handle - 81: 0000000000000000 0 FUNC GLOBAL DEFAULT UND abort@GLIBC_2.17 - 82: 0000000000000804 4 OBJECT GLOBAL DEFAULT 15 _IO_stdin_used - 83: 0000000000011040 0 NOTYPE GLOBAL DEFAULT 24 _end - 84: 0000000000000640 52 FUNC GLOBAL DEFAULT 13 _start - 85: 0000000000011040 0 NOTYPE GLOBAL DEFAULT 24 __end__ - 86: 0000000000011030 0 NOTYPE GLOBAL DEFAULT 24 __bss_start - 87: 0000000000000754 156 FUNC GLOBAL DEFAULT 13 main - 88: 0000000000011030 0 OBJECT GLOBAL HIDDEN 23 __TMC_END__ - 89: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_registerTMCloneTable - 90: 00000000000005b0 0 FUNC GLOBAL HIDDEN 11 _init diff --git a/src/test/incorrect/nestedifglobal/clang_pic/nestedifglobal_gtirb.expected b/src/test/incorrect/nestedifglobal/clang_pic/nestedifglobal_gtirb.expected index 96d4bb61f..b84543eab 100644 --- a/src/test/incorrect/nestedifglobal/clang_pic/nestedifglobal_gtirb.expected +++ b/src/test/incorrect/nestedifglobal/clang_pic/nestedifglobal_gtirb.expected @@ -91,7 +91,7 @@ procedure {:extern} rely_reflexive(); procedure {:extern} guarantee_reflexive(); modifies Gamma_mem, mem; -procedure main_1876(); +procedure main(); modifies CF, Gamma_CF, Gamma_NF, Gamma_R0, Gamma_R31, Gamma_R8, Gamma_R9, Gamma_VF, Gamma_ZF, Gamma_mem, Gamma_stack, NF, R0, R31, R8, R9, VF, ZF, mem, stack; free requires (memory_load64_le(mem, 69664bv64) == 0bv64); free requires (memory_load64_le(mem, 69672bv64) == 69672bv64); @@ -112,199 +112,199 @@ procedure main_1876(); free ensures (memory_load64_le(mem, 69592bv64) == 1876bv64); free ensures (memory_load64_le(mem, 69672bv64) == 69672bv64); -implementation main_1876() +implementation main() { - var Cse0__5_3_1: bv32; - var Cse0__5_4_2: bv32; - var Cse0__5_7_10: bv32; - var Gamma_Cse0__5_3_1: bool; - var Gamma_Cse0__5_4_2: bool; - var Gamma_Cse0__5_7_10: bool; - var Gamma_load11: bool; - var Gamma_load12: bool; - var Gamma_load13: bool; - var Gamma_load14: bool; - var Gamma_load15: bool; - var Gamma_load16: bool; - var Gamma_load17: bool; - var Gamma_load18: bool; - var Gamma_load19: bool; - var Gamma_load20: bool; - var load11: bv64; - var load12: bv32; - var load13: bv32; - var load14: bv64; - var load15: bv32; - var load16: bv64; - var load17: bv32; - var load18: bv64; - var load19: bv32; - var load20: bv32; - main_1876__0__T93CJsvjRiGkLGM3lm~zUw: - assume {:captureState "main_1876__0__T93CJsvjRiGkLGM3lm~zUw"} true; + var $load11: bv64; + var $load12: bv32; + var $load13: bv32; + var $load14: bv64; + var $load15: bv32; + var $load16: bv64; + var $load17: bv32; + var $load18: bv64; + var $load19: bv32; + var $load20: bv32; + var Cse0__5$3$1: bv32; + var Cse0__5$4$2: bv32; + var Cse0__5$7$10: bv32; + var Gamma_$load11: bool; + var Gamma_$load12: bool; + var Gamma_$load13: bool; + var Gamma_$load14: bool; + var Gamma_$load15: bool; + var Gamma_$load16: bool; + var Gamma_$load17: bool; + var Gamma_$load18: bool; + var Gamma_$load19: bool; + var Gamma_$load20: bool; + var Gamma_Cse0__5$3$1: bool; + var Gamma_Cse0__5$4$2: bool; + var Gamma_Cse0__5$7$10: bool; + $main$__0__$T93CJsvjRiGkLGM3lm~zUw: + assume {:captureState "$main$__0__$T93CJsvjRiGkLGM3lm~zUw"} true; R31, Gamma_R31 := bvadd64(R31, 18446744073709551584bv64), Gamma_R31; R8, Gamma_R8 := 65536bv64, true; call rely(); - load18, Gamma_load18 := memory_load64_le(mem, bvadd64(R8, 4040bv64)), (gamma_load64(Gamma_mem, bvadd64(R8, 4040bv64)) || L(mem, bvadd64(R8, 4040bv64))); - R8, Gamma_R8 := load18, Gamma_load18; + $load18, Gamma_$load18 := memory_load64_le(mem, bvadd64(R8, 4040bv64)), (gamma_load64(Gamma_mem, bvadd64(R8, 4040bv64)) || L(mem, bvadd64(R8, 4040bv64))); + R8, Gamma_R8 := $load18, Gamma_$load18; stack, Gamma_stack := memory_store64_le(stack, bvadd64(R31, 8bv64), R8), gamma_store64(Gamma_stack, bvadd64(R31, 8bv64), Gamma_R8); - assume {:captureState "1888_0"} true; + assume {:captureState "1888$0"} true; stack, Gamma_stack := memory_store32_le(stack, bvadd64(R31, 28bv64), 0bv32), gamma_store32(Gamma_stack, bvadd64(R31, 28bv64), true); - assume {:captureState "1892_0"} true; + assume {:captureState "1892$0"} true; stack, Gamma_stack := memory_store32_le(stack, bvadd64(R31, 24bv64), R0[32:0]), gamma_store32(Gamma_stack, bvadd64(R31, 24bv64), Gamma_R0); - assume {:captureState "1896_0"} true; - load19, Gamma_load19 := memory_load32_le(stack, bvadd64(R31, 24bv64)), gamma_load32(Gamma_stack, bvadd64(R31, 24bv64)); - R9, Gamma_R9 := zero_extend32_32(load19), Gamma_load19; + assume {:captureState "1896$0"} true; + $load19, Gamma_$load19 := memory_load32_le(stack, bvadd64(R31, 24bv64)), gamma_load32(Gamma_stack, bvadd64(R31, 24bv64)); + R9, Gamma_R9 := zero_extend32_32($load19), Gamma_$load19; call rely(); assert (L(mem, R8) ==> Gamma_R9); mem, Gamma_mem := memory_store32_le(mem, R8, R9[32:0]), gamma_store32(Gamma_mem, R8, Gamma_R9); - assume {:captureState "1904_0"} true; + assume {:captureState "1904$0"} true; stack, Gamma_stack := memory_store32_le(stack, bvadd64(R31, 20bv64), 0bv32), gamma_store32(Gamma_stack, bvadd64(R31, 20bv64), true); - assume {:captureState "1908_0"} true; + assume {:captureState "1908$0"} true; call rely(); - load20, Gamma_load20 := memory_load32_le(mem, R8), (gamma_load32(Gamma_mem, R8) || L(mem, R8)); - R8, Gamma_R8 := zero_extend32_32(load20), Gamma_load20; - Cse0__5_7_10, Gamma_Cse0__5_7_10 := bvadd32(R8[32:0], 0bv32), Gamma_R8; - VF, Gamma_VF := bvnot1(bvcomp32(Cse0__5_7_10, Cse0__5_7_10)), Gamma_Cse0__5_7_10; - CF, Gamma_CF := bvnot1(bvcomp33(zero_extend1_32(Cse0__5_7_10), bvadd33(zero_extend1_32(R8[32:0]), 4294967296bv33))), (Gamma_R8 && Gamma_Cse0__5_7_10); - ZF, Gamma_ZF := bvcomp32(Cse0__5_7_10, 0bv32), Gamma_Cse0__5_7_10; - NF, Gamma_NF := Cse0__5_7_10[32:31], Gamma_Cse0__5_7_10; - R8, Gamma_R8 := zero_extend32_32(Cse0__5_7_10), Gamma_Cse0__5_7_10; + $load20, Gamma_$load20 := memory_load32_le(mem, R8), (gamma_load32(Gamma_mem, R8) || L(mem, R8)); + R8, Gamma_R8 := zero_extend32_32($load20), Gamma_$load20; + Cse0__5$7$10, Gamma_Cse0__5$7$10 := bvadd32(R8[32:0], 0bv32), Gamma_R8; + VF, Gamma_VF := bvnot1(bvcomp32(Cse0__5$7$10, Cse0__5$7$10)), Gamma_Cse0__5$7$10; + CF, Gamma_CF := bvnot1(bvcomp33(zero_extend1_32(Cse0__5$7$10), bvadd33(zero_extend1_32(R8[32:0]), 4294967296bv33))), (Gamma_R8 && Gamma_Cse0__5$7$10); + ZF, Gamma_ZF := bvcomp32(Cse0__5$7$10, 0bv32), Gamma_Cse0__5$7$10; + NF, Gamma_NF := Cse0__5$7$10[32:31], Gamma_Cse0__5$7$10; + R8, Gamma_R8 := zero_extend32_32(Cse0__5$7$10), Gamma_Cse0__5$7$10; assert Gamma_ZF; - goto main_1876__0__T93CJsvjRiGkLGM3lm~zUw$__0, main_1876__0__T93CJsvjRiGkLGM3lm~zUw$__1; - main_1876__0__T93CJsvjRiGkLGM3lm~zUw$__1: - assume {:captureState "main_1876__0__T93CJsvjRiGkLGM3lm~zUw$__1"} true; - assume (!(ZF == 1bv1)); - R8, Gamma_R8 := 1bv64, true; - assert Gamma_R8; - goto main_1876__0__T93CJsvjRiGkLGM3lm~zUw_goto_main_1876__3__BQu4h3vlSRawGkdd3zg0DQ, main_1876__0__T93CJsvjRiGkLGM3lm~zUw_goto_main_1876__1__XR5j_yKuQR24HXECGUTTaw; - main_1876__0__T93CJsvjRiGkLGM3lm~zUw$__0: - assume {:captureState "main_1876__0__T93CJsvjRiGkLGM3lm~zUw$__0"} true; - assume (ZF == 1bv1); - R8, Gamma_R8 := 0bv64, true; - assert Gamma_R8; - goto main_1876__0__T93CJsvjRiGkLGM3lm~zUw_goto_main_1876__3__BQu4h3vlSRawGkdd3zg0DQ, main_1876__0__T93CJsvjRiGkLGM3lm~zUw_goto_main_1876__1__XR5j_yKuQR24HXECGUTTaw; - main_1876__0__T93CJsvjRiGkLGM3lm~zUw_goto_main_1876__1__XR5j_yKuQR24HXECGUTTaw: - assume {:captureState "main_1876__0__T93CJsvjRiGkLGM3lm~zUw_goto_main_1876__1__XR5j_yKuQR24HXECGUTTaw"} true; - assume (!(R8[1:0] == 1bv1)); - goto main_1876__1__XR5j_yKuQR24HXECGUTTaw; - main_1876__1__XR5j_yKuQR24HXECGUTTaw: - assume {:captureState "main_1876__1__XR5j_yKuQR24HXECGUTTaw"} true; - goto main_1876__2__StfBUB0KQESSUkJf_60bAQ; - main_1876__2__StfBUB0KQESSUkJf_60bAQ: - assume {:captureState "main_1876__2__StfBUB0KQESSUkJf_60bAQ"} true; + goto $main$__0__$T93CJsvjRiGkLGM3lm~zUw$__0, $main$__0__$T93CJsvjRiGkLGM3lm~zUw$__1; + $main$__1__$XR5j_yKuQR24HXECGUTTaw: + assume {:captureState "$main$__1__$XR5j_yKuQR24HXECGUTTaw"} true; + goto $main$__2__$StfBUB0KQESSUkJf_60bAQ; + $main$__2__$StfBUB0KQESSUkJf_60bAQ: + assume {:captureState "$main$__2__$StfBUB0KQESSUkJf_60bAQ"} true; R8, Gamma_R8 := 3bv64, true; stack, Gamma_stack := memory_store32_le(stack, bvadd64(R31, 20bv64), R8[32:0]), gamma_store32(Gamma_stack, bvadd64(R31, 20bv64), Gamma_R8); - assume {:captureState "1936_0"} true; - goto main_1876__3__BQu4h3vlSRawGkdd3zg0DQ; - main_1876__0__T93CJsvjRiGkLGM3lm~zUw_goto_main_1876__3__BQu4h3vlSRawGkdd3zg0DQ: - assume {:captureState "main_1876__0__T93CJsvjRiGkLGM3lm~zUw_goto_main_1876__3__BQu4h3vlSRawGkdd3zg0DQ"} true; - assume (R8[1:0] == 1bv1); - goto main_1876__3__BQu4h3vlSRawGkdd3zg0DQ; - main_1876__3__BQu4h3vlSRawGkdd3zg0DQ: - assume {:captureState "main_1876__3__BQu4h3vlSRawGkdd3zg0DQ"} true; - load14, Gamma_load14 := memory_load64_le(stack, bvadd64(R31, 8bv64)), gamma_load64(Gamma_stack, bvadd64(R31, 8bv64)); - R8, Gamma_R8 := load14, Gamma_load14; + assume {:captureState "1936$0"} true; + goto $main$__3__$BQu4h3vlSRawGkdd3zg0DQ; + $main$__3__$BQu4h3vlSRawGkdd3zg0DQ: + assume {:captureState "$main$__3__$BQu4h3vlSRawGkdd3zg0DQ"} true; + $load14, Gamma_$load14 := memory_load64_le(stack, bvadd64(R31, 8bv64)), gamma_load64(Gamma_stack, bvadd64(R31, 8bv64)); + R8, Gamma_R8 := $load14, Gamma_$load14; call rely(); - load15, Gamma_load15 := memory_load32_le(mem, R8), (gamma_load32(Gamma_mem, R8) || L(mem, R8)); - R8, Gamma_R8 := zero_extend32_32(load15), Gamma_load15; - Cse0__5_4_2, Gamma_Cse0__5_4_2 := bvadd32(R8[32:0], 4294967295bv32), Gamma_R8; - VF, Gamma_VF := bvnot1(bvcomp33(sign_extend1_32(Cse0__5_4_2), bvadd33(sign_extend1_32(R8[32:0]), 8589934591bv33))), (Gamma_R8 && Gamma_Cse0__5_4_2); - CF, Gamma_CF := bvnot1(bvcomp33(zero_extend1_32(Cse0__5_4_2), bvadd33(zero_extend1_32(R8[32:0]), 4294967295bv33))), (Gamma_R8 && Gamma_Cse0__5_4_2); - ZF, Gamma_ZF := bvcomp32(Cse0__5_4_2, 0bv32), Gamma_Cse0__5_4_2; - NF, Gamma_NF := Cse0__5_4_2[32:31], Gamma_Cse0__5_4_2; - R8, Gamma_R8 := zero_extend32_32(Cse0__5_4_2), Gamma_Cse0__5_4_2; + $load15, Gamma_$load15 := memory_load32_le(mem, R8), (gamma_load32(Gamma_mem, R8) || L(mem, R8)); + R8, Gamma_R8 := zero_extend32_32($load15), Gamma_$load15; + Cse0__5$4$2, Gamma_Cse0__5$4$2 := bvadd32(R8[32:0], 4294967295bv32), Gamma_R8; + VF, Gamma_VF := bvnot1(bvcomp33(sign_extend1_32(Cse0__5$4$2), bvadd33(sign_extend1_32(R8[32:0]), 8589934591bv33))), (Gamma_R8 && Gamma_Cse0__5$4$2); + CF, Gamma_CF := bvnot1(bvcomp33(zero_extend1_32(Cse0__5$4$2), bvadd33(zero_extend1_32(R8[32:0]), 4294967295bv33))), (Gamma_R8 && Gamma_Cse0__5$4$2); + ZF, Gamma_ZF := bvcomp32(Cse0__5$4$2, 0bv32), Gamma_Cse0__5$4$2; + NF, Gamma_NF := Cse0__5$4$2[32:31], Gamma_Cse0__5$4$2; + R8, Gamma_R8 := zero_extend32_32(Cse0__5$4$2), Gamma_Cse0__5$4$2; + assert Gamma_ZF; + goto $main$__3__$BQu4h3vlSRawGkdd3zg0DQ$__0, $main$__3__$BQu4h3vlSRawGkdd3zg0DQ$__1; + $main$__4__$kgyF7X0vQAeoGY79WFpAXw: + assume {:captureState "$main$__4__$kgyF7X0vQAeoGY79WFpAXw"} true; + goto $main$__5__$La5W_bn0QnSJ~MnvpXFWoA; + $main$__5__$La5W_bn0QnSJ~MnvpXFWoA: + assume {:captureState "$main$__5__$La5W_bn0QnSJ~MnvpXFWoA"} true; + R8, Gamma_R8 := 5bv64, true; + stack, Gamma_stack := memory_store32_le(stack, bvadd64(R31, 20bv64), R8[32:0]), gamma_store32(Gamma_stack, bvadd64(R31, 20bv64), Gamma_R8); + assume {:captureState "1972$0"} true; + goto $main$__6__$ScgHlHhCS1WcMwxSLBCjog; + $main$__6__$ScgHlHhCS1WcMwxSLBCjog: + assume {:captureState "$main$__6__$ScgHlHhCS1WcMwxSLBCjog"} true; + $load13, Gamma_$load13 := memory_load32_le(stack, bvadd64(R31, 20bv64)), gamma_load32(Gamma_stack, bvadd64(R31, 20bv64)); + R8, Gamma_R8 := zero_extend32_32($load13), Gamma_$load13; + Cse0__5$3$1, Gamma_Cse0__5$3$1 := bvadd32(R8[32:0], 4294967293bv32), Gamma_R8; + VF, Gamma_VF := bvnot1(bvcomp33(sign_extend1_32(Cse0__5$3$1), bvadd33(sign_extend1_32(R8[32:0]), 8589934589bv33))), (Gamma_R8 && Gamma_Cse0__5$3$1); + CF, Gamma_CF := bvnot1(bvcomp33(zero_extend1_32(Cse0__5$3$1), bvadd33(zero_extend1_32(R8[32:0]), 4294967293bv33))), (Gamma_R8 && Gamma_Cse0__5$3$1); + ZF, Gamma_ZF := bvcomp32(Cse0__5$3$1, 0bv32), Gamma_Cse0__5$3$1; + NF, Gamma_NF := Cse0__5$3$1[32:31], Gamma_Cse0__5$3$1; + R8, Gamma_R8 := zero_extend32_32(Cse0__5$3$1), Gamma_Cse0__5$3$1; assert Gamma_ZF; - goto main_1876__3__BQu4h3vlSRawGkdd3zg0DQ$__0, main_1876__3__BQu4h3vlSRawGkdd3zg0DQ$__1; - main_1876__3__BQu4h3vlSRawGkdd3zg0DQ$__1: - assume {:captureState "main_1876__3__BQu4h3vlSRawGkdd3zg0DQ$__1"} true; + goto $main$__6__$ScgHlHhCS1WcMwxSLBCjog$__0, $main$__6__$ScgHlHhCS1WcMwxSLBCjog$__1; + $main$__7__$PJQQ~S5hQ3isxVg_lohkuQ: + assume {:captureState "$main$__7__$PJQQ~S5hQ3isxVg_lohkuQ"} true; + goto $main$__8__$iZUB7usbTzOrpOA3bSaAkg; + $main$__8__$iZUB7usbTzOrpOA3bSaAkg: + assume {:captureState "$main$__8__$iZUB7usbTzOrpOA3bSaAkg"} true; + R8, Gamma_R8 := 65536bv64, true; + call rely(); + $load16, Gamma_$load16 := memory_load64_le(mem, bvadd64(R8, 4032bv64)), (gamma_load64(Gamma_mem, bvadd64(R8, 4032bv64)) || L(mem, bvadd64(R8, 4032bv64))); + R8, Gamma_R8 := $load16, Gamma_$load16; + call rely(); + $load17, Gamma_$load17 := memory_load32_le(mem, R8), (gamma_load32(Gamma_mem, R8) || L(mem, R8)); + R8, Gamma_R8 := zero_extend32_32($load17), Gamma_$load17; + stack, Gamma_stack := memory_store32_le(stack, bvadd64(R31, 20bv64), R8[32:0]), gamma_store32(Gamma_stack, bvadd64(R31, 20bv64), Gamma_R8); + assume {:captureState "2012$0"} true; + goto $main$__9__$WNf_4UJFTCupBtDlyt4H0A; + $main$__9__$WNf_4UJFTCupBtDlyt4H0A: + assume {:captureState "$main$__9__$WNf_4UJFTCupBtDlyt4H0A"} true; + R8, Gamma_R8 := 65536bv64, true; + call rely(); + $load11, Gamma_$load11 := memory_load64_le(mem, bvadd64(R8, 4032bv64)), (gamma_load64(Gamma_mem, bvadd64(R8, 4032bv64)) || L(mem, bvadd64(R8, 4032bv64))); + R8, Gamma_R8 := $load11, Gamma_$load11; + call rely(); + $load12, Gamma_$load12 := memory_load32_le(mem, R8), (gamma_load32(Gamma_mem, R8) || L(mem, R8)); + R0, Gamma_R0 := zero_extend32_32($load12), Gamma_$load12; + R31, Gamma_R31 := bvadd64(R31, 32bv64), Gamma_R31; + goto main_basil_return; + $main$__6__$ScgHlHhCS1WcMwxSLBCjog_goto_$main$__9__$WNf_4UJFTCupBtDlyt4H0A: + assume {:captureState "$main$__6__$ScgHlHhCS1WcMwxSLBCjog_goto_$main$__9__$WNf_4UJFTCupBtDlyt4H0A"} true; + assume (R8[1:0] == 1bv1); + goto $main$__9__$WNf_4UJFTCupBtDlyt4H0A; + $main$__6__$ScgHlHhCS1WcMwxSLBCjog_goto_$main$__7__$PJQQ~S5hQ3isxVg_lohkuQ: + assume {:captureState "$main$__6__$ScgHlHhCS1WcMwxSLBCjog_goto_$main$__7__$PJQQ~S5hQ3isxVg_lohkuQ"} true; + assume (!(R8[1:0] == 1bv1)); + goto $main$__7__$PJQQ~S5hQ3isxVg_lohkuQ; + $main$__6__$ScgHlHhCS1WcMwxSLBCjog$__0: + assume {:captureState "$main$__6__$ScgHlHhCS1WcMwxSLBCjog$__0"} true; + assume (ZF == 1bv1); + R8, Gamma_R8 := 0bv64, true; + assert Gamma_R8; + goto $main$__6__$ScgHlHhCS1WcMwxSLBCjog_goto_$main$__9__$WNf_4UJFTCupBtDlyt4H0A, $main$__6__$ScgHlHhCS1WcMwxSLBCjog_goto_$main$__7__$PJQQ~S5hQ3isxVg_lohkuQ; + $main$__6__$ScgHlHhCS1WcMwxSLBCjog$__1: + assume {:captureState "$main$__6__$ScgHlHhCS1WcMwxSLBCjog$__1"} true; assume (!(ZF == 1bv1)); R8, Gamma_R8 := 1bv64, true; assert Gamma_R8; - goto main_1876__3__BQu4h3vlSRawGkdd3zg0DQ_goto_main_1876__6__ScgHlHhCS1WcMwxSLBCjog, main_1876__3__BQu4h3vlSRawGkdd3zg0DQ_goto_main_1876__4__kgyF7X0vQAeoGY79WFpAXw; - main_1876__3__BQu4h3vlSRawGkdd3zg0DQ$__0: - assume {:captureState "main_1876__3__BQu4h3vlSRawGkdd3zg0DQ$__0"} true; + goto $main$__6__$ScgHlHhCS1WcMwxSLBCjog_goto_$main$__9__$WNf_4UJFTCupBtDlyt4H0A, $main$__6__$ScgHlHhCS1WcMwxSLBCjog_goto_$main$__7__$PJQQ~S5hQ3isxVg_lohkuQ; + $main$__3__$BQu4h3vlSRawGkdd3zg0DQ_goto_$main$__6__$ScgHlHhCS1WcMwxSLBCjog: + assume {:captureState "$main$__3__$BQu4h3vlSRawGkdd3zg0DQ_goto_$main$__6__$ScgHlHhCS1WcMwxSLBCjog"} true; + assume (R8[1:0] == 1bv1); + goto $main$__6__$ScgHlHhCS1WcMwxSLBCjog; + $main$__3__$BQu4h3vlSRawGkdd3zg0DQ_goto_$main$__4__$kgyF7X0vQAeoGY79WFpAXw: + assume {:captureState "$main$__3__$BQu4h3vlSRawGkdd3zg0DQ_goto_$main$__4__$kgyF7X0vQAeoGY79WFpAXw"} true; + assume (!(R8[1:0] == 1bv1)); + goto $main$__4__$kgyF7X0vQAeoGY79WFpAXw; + $main$__3__$BQu4h3vlSRawGkdd3zg0DQ$__0: + assume {:captureState "$main$__3__$BQu4h3vlSRawGkdd3zg0DQ$__0"} true; assume (ZF == 1bv1); R8, Gamma_R8 := 0bv64, true; assert Gamma_R8; - goto main_1876__3__BQu4h3vlSRawGkdd3zg0DQ_goto_main_1876__6__ScgHlHhCS1WcMwxSLBCjog, main_1876__3__BQu4h3vlSRawGkdd3zg0DQ_goto_main_1876__4__kgyF7X0vQAeoGY79WFpAXw; - main_1876__3__BQu4h3vlSRawGkdd3zg0DQ_goto_main_1876__4__kgyF7X0vQAeoGY79WFpAXw: - assume {:captureState "main_1876__3__BQu4h3vlSRawGkdd3zg0DQ_goto_main_1876__4__kgyF7X0vQAeoGY79WFpAXw"} true; - assume (!(R8[1:0] == 1bv1)); - goto main_1876__4__kgyF7X0vQAeoGY79WFpAXw; - main_1876__4__kgyF7X0vQAeoGY79WFpAXw: - assume {:captureState "main_1876__4__kgyF7X0vQAeoGY79WFpAXw"} true; - goto main_1876__5__La5W_bn0QnSJ~MnvpXFWoA; - main_1876__5__La5W_bn0QnSJ~MnvpXFWoA: - assume {:captureState "main_1876__5__La5W_bn0QnSJ~MnvpXFWoA"} true; - R8, Gamma_R8 := 5bv64, true; - stack, Gamma_stack := memory_store32_le(stack, bvadd64(R31, 20bv64), R8[32:0]), gamma_store32(Gamma_stack, bvadd64(R31, 20bv64), Gamma_R8); - assume {:captureState "1972_0"} true; - goto main_1876__6__ScgHlHhCS1WcMwxSLBCjog; - main_1876__3__BQu4h3vlSRawGkdd3zg0DQ_goto_main_1876__6__ScgHlHhCS1WcMwxSLBCjog: - assume {:captureState "main_1876__3__BQu4h3vlSRawGkdd3zg0DQ_goto_main_1876__6__ScgHlHhCS1WcMwxSLBCjog"} true; - assume (R8[1:0] == 1bv1); - goto main_1876__6__ScgHlHhCS1WcMwxSLBCjog; - main_1876__6__ScgHlHhCS1WcMwxSLBCjog: - assume {:captureState "main_1876__6__ScgHlHhCS1WcMwxSLBCjog"} true; - load13, Gamma_load13 := memory_load32_le(stack, bvadd64(R31, 20bv64)), gamma_load32(Gamma_stack, bvadd64(R31, 20bv64)); - R8, Gamma_R8 := zero_extend32_32(load13), Gamma_load13; - Cse0__5_3_1, Gamma_Cse0__5_3_1 := bvadd32(R8[32:0], 4294967293bv32), Gamma_R8; - VF, Gamma_VF := bvnot1(bvcomp33(sign_extend1_32(Cse0__5_3_1), bvadd33(sign_extend1_32(R8[32:0]), 8589934589bv33))), (Gamma_R8 && Gamma_Cse0__5_3_1); - CF, Gamma_CF := bvnot1(bvcomp33(zero_extend1_32(Cse0__5_3_1), bvadd33(zero_extend1_32(R8[32:0]), 4294967293bv33))), (Gamma_R8 && Gamma_Cse0__5_3_1); - ZF, Gamma_ZF := bvcomp32(Cse0__5_3_1, 0bv32), Gamma_Cse0__5_3_1; - NF, Gamma_NF := Cse0__5_3_1[32:31], Gamma_Cse0__5_3_1; - R8, Gamma_R8 := zero_extend32_32(Cse0__5_3_1), Gamma_Cse0__5_3_1; - assert Gamma_ZF; - goto main_1876__6__ScgHlHhCS1WcMwxSLBCjog$__0, main_1876__6__ScgHlHhCS1WcMwxSLBCjog$__1; - main_1876__6__ScgHlHhCS1WcMwxSLBCjog$__1: - assume {:captureState "main_1876__6__ScgHlHhCS1WcMwxSLBCjog$__1"} true; + goto $main$__3__$BQu4h3vlSRawGkdd3zg0DQ_goto_$main$__6__$ScgHlHhCS1WcMwxSLBCjog, $main$__3__$BQu4h3vlSRawGkdd3zg0DQ_goto_$main$__4__$kgyF7X0vQAeoGY79WFpAXw; + $main$__3__$BQu4h3vlSRawGkdd3zg0DQ$__1: + assume {:captureState "$main$__3__$BQu4h3vlSRawGkdd3zg0DQ$__1"} true; assume (!(ZF == 1bv1)); R8, Gamma_R8 := 1bv64, true; assert Gamma_R8; - goto main_1876__6__ScgHlHhCS1WcMwxSLBCjog_goto_main_1876__9__WNf_4UJFTCupBtDlyt4H0A, main_1876__6__ScgHlHhCS1WcMwxSLBCjog_goto_main_1876__7__PJQQ~S5hQ3isxVg_lohkuQ; - main_1876__6__ScgHlHhCS1WcMwxSLBCjog$__0: - assume {:captureState "main_1876__6__ScgHlHhCS1WcMwxSLBCjog$__0"} true; + goto $main$__3__$BQu4h3vlSRawGkdd3zg0DQ_goto_$main$__6__$ScgHlHhCS1WcMwxSLBCjog, $main$__3__$BQu4h3vlSRawGkdd3zg0DQ_goto_$main$__4__$kgyF7X0vQAeoGY79WFpAXw; + $main$__0__$T93CJsvjRiGkLGM3lm~zUw_goto_$main$__3__$BQu4h3vlSRawGkdd3zg0DQ: + assume {:captureState "$main$__0__$T93CJsvjRiGkLGM3lm~zUw_goto_$main$__3__$BQu4h3vlSRawGkdd3zg0DQ"} true; + assume (R8[1:0] == 1bv1); + goto $main$__3__$BQu4h3vlSRawGkdd3zg0DQ; + $main$__0__$T93CJsvjRiGkLGM3lm~zUw_goto_$main$__1__$XR5j_yKuQR24HXECGUTTaw: + assume {:captureState "$main$__0__$T93CJsvjRiGkLGM3lm~zUw_goto_$main$__1__$XR5j_yKuQR24HXECGUTTaw"} true; + assume (!(R8[1:0] == 1bv1)); + goto $main$__1__$XR5j_yKuQR24HXECGUTTaw; + $main$__0__$T93CJsvjRiGkLGM3lm~zUw$__0: + assume {:captureState "$main$__0__$T93CJsvjRiGkLGM3lm~zUw$__0"} true; assume (ZF == 1bv1); R8, Gamma_R8 := 0bv64, true; assert Gamma_R8; - goto main_1876__6__ScgHlHhCS1WcMwxSLBCjog_goto_main_1876__9__WNf_4UJFTCupBtDlyt4H0A, main_1876__6__ScgHlHhCS1WcMwxSLBCjog_goto_main_1876__7__PJQQ~S5hQ3isxVg_lohkuQ; - main_1876__6__ScgHlHhCS1WcMwxSLBCjog_goto_main_1876__7__PJQQ~S5hQ3isxVg_lohkuQ: - assume {:captureState "main_1876__6__ScgHlHhCS1WcMwxSLBCjog_goto_main_1876__7__PJQQ~S5hQ3isxVg_lohkuQ"} true; - assume (!(R8[1:0] == 1bv1)); - goto main_1876__7__PJQQ~S5hQ3isxVg_lohkuQ; - main_1876__7__PJQQ~S5hQ3isxVg_lohkuQ: - assume {:captureState "main_1876__7__PJQQ~S5hQ3isxVg_lohkuQ"} true; - goto main_1876__8__iZUB7usbTzOrpOA3bSaAkg; - main_1876__8__iZUB7usbTzOrpOA3bSaAkg: - assume {:captureState "main_1876__8__iZUB7usbTzOrpOA3bSaAkg"} true; - R8, Gamma_R8 := 65536bv64, true; - call rely(); - load16, Gamma_load16 := memory_load64_le(mem, bvadd64(R8, 4032bv64)), (gamma_load64(Gamma_mem, bvadd64(R8, 4032bv64)) || L(mem, bvadd64(R8, 4032bv64))); - R8, Gamma_R8 := load16, Gamma_load16; - call rely(); - load17, Gamma_load17 := memory_load32_le(mem, R8), (gamma_load32(Gamma_mem, R8) || L(mem, R8)); - R8, Gamma_R8 := zero_extend32_32(load17), Gamma_load17; - stack, Gamma_stack := memory_store32_le(stack, bvadd64(R31, 20bv64), R8[32:0]), gamma_store32(Gamma_stack, bvadd64(R31, 20bv64), Gamma_R8); - assume {:captureState "2012_0"} true; - goto main_1876__9__WNf_4UJFTCupBtDlyt4H0A; - main_1876__6__ScgHlHhCS1WcMwxSLBCjog_goto_main_1876__9__WNf_4UJFTCupBtDlyt4H0A: - assume {:captureState "main_1876__6__ScgHlHhCS1WcMwxSLBCjog_goto_main_1876__9__WNf_4UJFTCupBtDlyt4H0A"} true; - assume (R8[1:0] == 1bv1); - goto main_1876__9__WNf_4UJFTCupBtDlyt4H0A; - main_1876__9__WNf_4UJFTCupBtDlyt4H0A: - assume {:captureState "main_1876__9__WNf_4UJFTCupBtDlyt4H0A"} true; - R8, Gamma_R8 := 65536bv64, true; - call rely(); - load11, Gamma_load11 := memory_load64_le(mem, bvadd64(R8, 4032bv64)), (gamma_load64(Gamma_mem, bvadd64(R8, 4032bv64)) || L(mem, bvadd64(R8, 4032bv64))); - R8, Gamma_R8 := load11, Gamma_load11; - call rely(); - load12, Gamma_load12 := memory_load32_le(mem, R8), (gamma_load32(Gamma_mem, R8) || L(mem, R8)); - R0, Gamma_R0 := zero_extend32_32(load12), Gamma_load12; - R31, Gamma_R31 := bvadd64(R31, 32bv64), Gamma_R31; - goto main_1876_basil_return; - main_1876_basil_return: - assume {:captureState "main_1876_basil_return"} true; + goto $main$__0__$T93CJsvjRiGkLGM3lm~zUw_goto_$main$__3__$BQu4h3vlSRawGkdd3zg0DQ, $main$__0__$T93CJsvjRiGkLGM3lm~zUw_goto_$main$__1__$XR5j_yKuQR24HXECGUTTaw; + $main$__0__$T93CJsvjRiGkLGM3lm~zUw$__1: + assume {:captureState "$main$__0__$T93CJsvjRiGkLGM3lm~zUw$__1"} true; + assume (!(ZF == 1bv1)); + R8, Gamma_R8 := 1bv64, true; + assert Gamma_R8; + goto $main$__0__$T93CJsvjRiGkLGM3lm~zUw_goto_$main$__3__$BQu4h3vlSRawGkdd3zg0DQ, $main$__0__$T93CJsvjRiGkLGM3lm~zUw_goto_$main$__1__$XR5j_yKuQR24HXECGUTTaw; + main_basil_return: + assume {:captureState "main_basil_return"} true; return; } diff --git a/src/test/incorrect/nestedifglobal/gcc/nestedifglobal.adt b/src/test/incorrect/nestedifglobal/gcc/nestedifglobal.adt deleted file mode 100644 index 0a575589b..000000000 --- a/src/test/incorrect/nestedifglobal/gcc/nestedifglobal.adt +++ /dev/null @@ -1,612 +0,0 @@ -Project(Attrs([Attr("filename","\"gcc/nestedifglobal.out\""), -Attr("image-specification","(declare abi (name str))\n(declare arch (name str))\n(declare base-address (addr int))\n(declare bias (off int))\n(declare bits (size int))\n(declare code-region (addr int) (size int) (off int))\n(declare code-start (addr int))\n(declare entry-point (addr int))\n(declare external-reference (addr int) (name str))\n(declare format (name str))\n(declare is-executable (flag bool))\n(declare is-little-endian (flag bool))\n(declare llvm:base-address (addr int))\n(declare llvm:code-entry (name str) (off int) (size int))\n(declare llvm:coff-import-library (name str))\n(declare llvm:coff-virtual-section-header (name str) (addr int) (size int))\n(declare llvm:elf-program-header (name str) (off int) (size int))\n(declare llvm:elf-program-header-flags (name str) (ld bool) (r bool) \n (w bool) (x bool))\n(declare llvm:elf-virtual-program-header (name str) (addr int) (size int))\n(declare llvm:entry-point (addr int))\n(declare llvm:macho-symbol (name str) (value int))\n(declare llvm:name-reference (at int) (name str))\n(declare llvm:relocation (at int) (addr int))\n(declare llvm:section-entry (name str) (addr int) (size int) (off int))\n(declare llvm:section-flags (name str) (r bool) (w bool) (x bool))\n(declare llvm:segment-command (name str) (off int) (size int))\n(declare llvm:segment-command-flags (name str) (r bool) (w bool) (x bool))\n(declare llvm:symbol-entry (name str) (addr int) (size int) (off int)\n (value int))\n(declare llvm:virtual-segment-command (name str) (addr int) (size int))\n(declare mapped (addr int) (size int) (off int))\n(declare named-region (addr int) (size int) (name str))\n(declare named-symbol (addr int) (name str))\n(declare require (name str))\n(declare section (addr int) (size int))\n(declare segment (addr int) (size int) (r bool) (w bool) (x bool))\n(declare subarch (name str))\n(declare symbol-chunk (addr int) (size int) (root int))\n(declare symbol-value (addr int) (value int))\n(declare system (name str))\n(declare vendor (name str))\n\n(abi unknown)\n(arch aarch64)\n(base-address 0)\n(bias 0)\n(bits 64)\n(code-region 1936 20 1936)\n(code-region 1536 400 1536)\n(code-region 1440 96 1440)\n(code-region 1408 24 1408)\n(code-start 1588)\n(code-start 1536)\n(code-start 1812)\n(entry-point 1536)\n(external-reference 69592 _ITM_deregisterTMCloneTable)\n(external-reference 69600 __cxa_finalize)\n(external-reference 69608 __gmon_start__)\n(external-reference 69624 _ITM_registerTMCloneTable)\n(external-reference 69552 __libc_start_main)\n(external-reference 69560 __cxa_finalize)\n(external-reference 69568 __gmon_start__)\n(external-reference 69576 abort)\n(format elf)\n(is-executable true)\n(is-little-endian true)\n(llvm:base-address 0)\n(llvm:code-entry abort 0 0)\n(llvm:code-entry __cxa_finalize 0 0)\n(llvm:code-entry __libc_start_main 0 0)\n(llvm:code-entry _init 1408 0)\n(llvm:code-entry main 1812 124)\n(llvm:code-entry _start 1536 52)\n(llvm:code-entry abort@GLIBC_2.17 0 0)\n(llvm:code-entry _fini 1936 0)\n(llvm:code-entry __cxa_finalize@GLIBC_2.17 0 0)\n(llvm:code-entry __libc_start_main@GLIBC_2.34 0 0)\n(llvm:code-entry frame_dummy 1808 0)\n(llvm:code-entry __do_global_dtors_aux 1728 0)\n(llvm:code-entry register_tm_clones 1664 0)\n(llvm:code-entry deregister_tm_clones 1616 0)\n(llvm:code-entry call_weak_fn 1588 20)\n(llvm:code-entry .fini 1936 20)\n(llvm:code-entry .text 1536 400)\n(llvm:code-entry .plt 1440 96)\n(llvm:code-entry .init 1408 24)\n(llvm:elf-program-header 08 3480 616)\n(llvm:elf-program-header 07 0 0)\n(llvm:elf-program-header 06 1960 60)\n(llvm:elf-program-header 05 596 68)\n(llvm:elf-program-header 04 3496 496)\n(llvm:elf-program-header 03 3480 632)\n(llvm:elf-program-header 02 0 2188)\n(llvm:elf-program-header 01 568 27)\n(llvm:elf-program-header 00 64 504)\n(llvm:elf-program-header-flags 08 false true false false)\n(llvm:elf-program-header-flags 07 false true true false)\n(llvm:elf-program-header-flags 06 false true false false)\n(llvm:elf-program-header-flags 05 false true false false)\n(llvm:elf-program-header-flags 04 false true true false)\n(llvm:elf-program-header-flags 03 true true true false)\n(llvm:elf-program-header-flags 02 true true false true)\n(llvm:elf-program-header-flags 01 false true false false)\n(llvm:elf-program-header-flags 00 false true false false)\n(llvm:elf-virtual-program-header 08 69016 616)\n(llvm:elf-virtual-program-header 07 0 0)\n(llvm:elf-virtual-program-header 06 1960 60)\n(llvm:elf-virtual-program-header 05 596 68)\n(llvm:elf-virtual-program-header 04 69032 496)\n(llvm:elf-virtual-program-header 03 69016 648)\n(llvm:elf-virtual-program-header 02 0 2188)\n(llvm:elf-virtual-program-header 01 568 27)\n(llvm:elf-virtual-program-header 00 64 504)\n(llvm:entry-point 1536)\n(llvm:name-reference 69576 abort)\n(llvm:name-reference 69568 __gmon_start__)\n(llvm:name-reference 69560 __cxa_finalize)\n(llvm:name-reference 69552 __libc_start_main)\n(llvm:name-reference 69624 _ITM_registerTMCloneTable)\n(llvm:name-reference 69608 __gmon_start__)\n(llvm:name-reference 69600 __cxa_finalize)\n(llvm:name-reference 69592 _ITM_deregisterTMCloneTable)\n(llvm:section-entry .shstrtab 0 250 6848)\n(llvm:section-entry .strtab 0 552 6296)\n(llvm:section-entry .symtab 0 2136 4160)\n(llvm:section-entry .comment 0 43 4112)\n(llvm:section-entry .bss 69648 16 4112)\n(llvm:section-entry .data 69632 16 4096)\n(llvm:section-entry .got 69528 104 3992)\n(llvm:section-entry .dynamic 69032 496 3496)\n(llvm:section-entry .fini_array 69024 8 3488)\n(llvm:section-entry .init_array 69016 8 3480)\n(llvm:section-entry .eh_frame 2024 164 2024)\n(llvm:section-entry .eh_frame_hdr 1960 60 1960)\n(llvm:section-entry .rodata 1956 4 1956)\n(llvm:section-entry .fini 1936 20 1936)\n(llvm:section-entry .text 1536 400 1536)\n(llvm:section-entry .plt 1440 96 1440)\n(llvm:section-entry .init 1408 24 1408)\n(llvm:section-entry .rela.plt 1312 96 1312)\n(llvm:section-entry .rela.dyn 1120 192 1120)\n(llvm:section-entry .gnu.version_r 1072 48 1072)\n(llvm:section-entry .gnu.version 1054 18 1054)\n(llvm:section-entry .dynstr 912 141 912)\n(llvm:section-entry .dynsym 696 216 696)\n(llvm:section-entry .gnu.hash 664 28 664)\n(llvm:section-entry .note.ABI-tag 632 32 632)\n(llvm:section-entry .note.gnu.build-id 596 36 596)\n(llvm:section-entry .interp 568 27 568)\n(llvm:section-flags .shstrtab true false false)\n(llvm:section-flags .strtab true false false)\n(llvm:section-flags .symtab true false false)\n(llvm:section-flags .comment true false false)\n(llvm:section-flags .bss true true false)\n(llvm:section-flags .data true true false)\n(llvm:section-flags .got true true false)\n(llvm:section-flags .dynamic true true false)\n(llvm:section-flags .fini_array true true false)\n(llvm:section-flags .init_array true true false)\n(llvm:section-flags .eh_frame true false false)\n(llvm:section-flags .eh_frame_hdr true false false)\n(llvm:section-flags .rodata true false false)\n(llvm:section-flags .fini true false true)\n(llvm:section-flags .text true false true)\n(llvm:section-flags .plt true false true)\n(llvm:section-flags .init true false true)\n(llvm:section-flags .rela.plt true false false)\n(llvm:section-flags .rela.dyn true false false)\n(llvm:section-flags .gnu.version_r true false false)\n(llvm:section-flags .gnu.version true false false)\n(llvm:section-flags .dynstr true false false)\n(llvm:section-flags .dynsym true false false)\n(llvm:section-flags .gnu.hash true false false)\n(llvm:section-flags .note.ABI-tag true false false)\n(llvm:section-flags .note.gnu.build-id true false false)\n(llvm:section-flags .interp true false false)\n(llvm:symbol-entry abort 0 0 0 0)\n(llvm:symbol-entry __cxa_finalize 0 0 0 0)\n(llvm:symbol-entry __libc_start_main 0 0 0 0)\n(llvm:symbol-entry _init 1408 0 1408 1408)\n(llvm:symbol-entry main 1812 124 1812 1812)\n(llvm:symbol-entry _start 1536 52 1536 1536)\n(llvm:symbol-entry abort@GLIBC_2.17 0 0 0 0)\n(llvm:symbol-entry _fini 1936 0 1936 1936)\n(llvm:symbol-entry __cxa_finalize@GLIBC_2.17 0 0 0 0)\n(llvm:symbol-entry __libc_start_main@GLIBC_2.34 0 0 0 0)\n(llvm:symbol-entry frame_dummy 1808 0 1808 1808)\n(llvm:symbol-entry __do_global_dtors_aux 1728 0 1728 1728)\n(llvm:symbol-entry register_tm_clones 1664 0 1664 1664)\n(llvm:symbol-entry deregister_tm_clones 1616 0 1616 1616)\n(llvm:symbol-entry call_weak_fn 1588 20 1588 1588)\n(mapped 0 2188 0)\n(mapped 69016 632 3480)\n(named-region 0 2188 02)\n(named-region 69016 648 03)\n(named-region 568 27 .interp)\n(named-region 596 36 .note.gnu.build-id)\n(named-region 632 32 .note.ABI-tag)\n(named-region 664 28 .gnu.hash)\n(named-region 696 216 .dynsym)\n(named-region 912 141 .dynstr)\n(named-region 1054 18 .gnu.version)\n(named-region 1072 48 .gnu.version_r)\n(named-region 1120 192 .rela.dyn)\n(named-region 1312 96 .rela.plt)\n(named-region 1408 24 .init)\n(named-region 1440 96 .plt)\n(named-region 1536 400 .text)\n(named-region 1936 20 .fini)\n(named-region 1956 4 .rodata)\n(named-region 1960 60 .eh_frame_hdr)\n(named-region 2024 164 .eh_frame)\n(named-region 69016 8 .init_array)\n(named-region 69024 8 .fini_array)\n(named-region 69032 496 .dynamic)\n(named-region 69528 104 .got)\n(named-region 69632 16 .data)\n(named-region 69648 16 .bss)\n(named-region 0 43 .comment)\n(named-region 0 2136 .symtab)\n(named-region 0 552 .strtab)\n(named-region 0 250 .shstrtab)\n(named-symbol 1588 call_weak_fn)\n(named-symbol 1616 deregister_tm_clones)\n(named-symbol 1664 register_tm_clones)\n(named-symbol 1728 __do_global_dtors_aux)\n(named-symbol 1808 frame_dummy)\n(named-symbol 0 __libc_start_main@GLIBC_2.34)\n(named-symbol 0 __cxa_finalize@GLIBC_2.17)\n(named-symbol 1936 _fini)\n(named-symbol 0 abort@GLIBC_2.17)\n(named-symbol 1536 _start)\n(named-symbol 1812 main)\n(named-symbol 1408 _init)\n(named-symbol 0 __libc_start_main)\n(named-symbol 0 __cxa_finalize)\n(named-symbol 0 abort)\n(require libc.so.6)\n(section 568 27)\n(section 596 36)\n(section 632 32)\n(section 664 28)\n(section 696 216)\n(section 912 141)\n(section 1054 18)\n(section 1072 48)\n(section 1120 192)\n(section 1312 96)\n(section 1408 24)\n(section 1440 96)\n(section 1536 400)\n(section 1936 20)\n(section 1956 4)\n(section 1960 60)\n(section 2024 164)\n(section 69016 8)\n(section 69024 8)\n(section 69032 496)\n(section 69528 104)\n(section 69632 16)\n(section 69648 16)\n(section 0 43)\n(section 0 2136)\n(section 0 552)\n(section 0 250)\n(segment 0 2188 true false true)\n(segment 69016 648 true true false)\n(subarch v8)\n(symbol-chunk 1588 20 1588)\n(symbol-chunk 1536 52 1536)\n(symbol-chunk 1812 124 1812)\n(symbol-value 1588 1588)\n(symbol-value 1616 1616)\n(symbol-value 1664 1664)\n(symbol-value 1728 1728)\n(symbol-value 1808 1808)\n(symbol-value 1936 1936)\n(symbol-value 1536 1536)\n(symbol-value 1812 1812)\n(symbol-value 1408 1408)\n(symbol-value 0 0)\n(system \"\")\n(vendor \"\")\n"), -Attr("abi-name","\"aarch64-linux-gnu-elf\"")]), -Sections([Section(".shstrtab", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x00\x06\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xc0\x1b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x38\x00\x09\x00\x40\x00\x1c\x00\x1b\x00\x06\x00\x00\x00\x04\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x04\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x8c\x08\x00\x00\x00\x00\x00\x00\x8c\x08\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x01\x00\x00\x00\x06\x00\x00\x00\x98\x0d\x00\x00\x00\x00\x00\x00\x98\x0d"), -Section(".strtab", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x00\x06\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xc0\x1b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x38\x00\x09\x00\x40\x00\x1c\x00\x1b\x00\x06\x00\x00\x00\x04\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x04\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x8c\x08\x00\x00\x00\x00\x00\x00\x8c\x08\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x01\x00\x00\x00\x06\x00\x00\x00\x98\x0d\x00\x00\x00\x00\x00\x00\x98\x0d\x01\x00\x00\x00\x00\x00\x98\x0d\x01\x00\x00\x00\x00\x00\x78\x02\x00\x00\x00\x00\x00\x00\x88\x02\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x02\x00\x00\x00\x06\x00\x00\x00\xa8\x0d\x00\x00\x00\x00\x00\x00\xa8\x0d\x01\x00\x00\x00\x00\x00\xa8\x0d\x01\x00\x00\x00\x00\x00\xf0\x01\x00\x00\x00\x00\x00\x00\xf0\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x04\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x50\xe5\x74\x64\x04\x00\x00\x00\xa8\x07\x00\x00\x00\x00\x00\x00\xa8\x07\x00\x00\x00\x00\x00\x00\xa8\x07\x00\x00\x00\x00\x00\x00\x3c\x00\x00\x00\x00\x00\x00\x00\x3c\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x51\xe5\x74\x64\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x52\xe5\x74\x64\x04\x00\x00\x00\x98\x0d\x00\x00\x00\x00\x00\x00\x98\x0d\x01\x00\x00\x00\x00\x00\x98\x0d\x01\x00\x00\x00\x00\x00\x68\x02\x00\x00\x00\x00\x00\x00"), -Section(".symtab", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x00\x06\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xc0\x1b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x38\x00\x09\x00\x40\x00\x1c\x00\x1b\x00\x06\x00\x00\x00\x04\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x04\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x8c\x08\x00\x00\x00\x00\x00\x00\x8c\x08\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x01\x00\x00\x00\x06\x00\x00\x00\x98\x0d\x00\x00\x00\x00\x00\x00\x98\x0d\x01\x00\x00\x00\x00\x00\x98\x0d\x01\x00\x00\x00\x00\x00\x78\x02\x00\x00\x00\x00\x00\x00\x88\x02\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x02\x00\x00\x00\x06\x00\x00\x00\xa8\x0d\x00\x00\x00\x00\x00\x00\xa8\x0d\x01\x00\x00\x00\x00\x00\xa8\x0d\x01\x00\x00\x00\x00\x00\xf0\x01\x00\x00\x00\x00\x00\x00\xf0\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x04\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x50\xe5\x74\x64\x04\x00\x00\x00\xa8\x07\x00\x00\x00\x00\x00\x00\xa8\x07\x00\x00\x00\x00\x00\x00\xa8\x07\x00\x00\x00\x00\x00\x00\x3c\x00\x00\x00\x00\x00\x00\x00\x3c\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x51\xe5\x74\x64\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x52\xe5\x74\x64\x04\x00\x00\x00\x98\x0d\x00\x00\x00\x00\x00\x00\x98\x0d\x01\x00\x00\x00\x00\x00\x98\x0d\x01\x00\x00\x00\x00\x00\x68\x02\x00\x00\x00\x00\x00\x00\x68\x02\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x2f\x6c\x69\x62\x2f\x6c\x64\x2d\x6c\x69\x6e\x75\x78\x2d\x61\x61\x72\x63\x68\x36\x34\x2e\x73\x6f\x2e\x31\x00\x00\x04\x00\x00\x00\x14\x00\x00\x00\x03\x00\x00\x00\x47\x4e\x55\x00\xa5\x2c\xa2\x5f\x93\xfa\x18\x14\x03\xd3\x58\x99\x96\xb1\x3d\xd7\x8e\x13\x8e\x90\x04\x00\x00\x00\x10\x00\x00\x00\x01\x00\x00\x00\x47\x4e\x55\x00\x00\x00\x00\x00\x03\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x01\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x0b\x00\x80\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x16\x00\x00\x10\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x48\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x22\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x22\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x73\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5f\x5f\x63\x78\x61\x5f\x66\x69\x6e\x61\x6c\x69\x7a\x65\x00\x5f\x5f\x6c\x69\x62\x63\x5f\x73\x74\x61\x72\x74\x5f\x6d\x61\x69\x6e\x00\x61\x62\x6f\x72\x74\x00\x6c\x69\x62\x63\x2e\x73\x6f\x2e\x36\x00\x47\x4c\x49\x42\x43\x5f\x32\x2e\x31\x37\x00\x47\x4c\x49\x42\x43\x5f\x32\x2e\x33\x34\x00\x5f\x49\x54\x4d\x5f\x64\x65\x72\x65\x67\x69\x73\x74\x65\x72\x54\x4d\x43\x6c\x6f\x6e\x65\x54\x61\x62\x6c\x65\x00\x5f\x5f\x67\x6d\x6f\x6e\x5f\x73\x74\x61\x72\x74\x5f\x5f\x00\x5f\x49\x54\x4d\x5f\x72\x65\x67\x69\x73\x74\x65\x72\x54\x4d\x43\x6c\x6f\x6e\x65\x54\x61\x62\x6c\x65\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x01\x00\x03\x00\x01\x00\x03\x00\x01\x00\x01\x00\x02\x00\x28\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x97\x91\x96\x06\x00\x00\x03\x00\x32\x00\x00\x00\x10\x00\x00\x00\xb4\x91\x96\x06\x00\x00\x02\x00\x3d\x00\x00\x00\x00\x00\x00\x00\x98\x0d\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x10\x07\x00\x00\x00\x00\x00\x00\xa0\x0d\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\xc0\x06\x00\x00\x00\x00\x00\x00\xf0\x0f\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x14\x07\x00\x00\x00\x00\x00\x00\x08\x10\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x08\x10\x01\x00\x00\x00\x00\x00\xd8\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe0\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe8\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xf8\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xb0\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xb8\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xc0\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xc8\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1f\x20\x03\xd5\xfd\x7b\xbf\xa9\xfd\x03\x00\x91\x2a\x00\x00\x94\xfd\x7b\xc1\xa8\xc0\x03\x5f\xd6\x00\x00\x00\x00\x00\x00\x00\x00\xf0\x7b\xbf\xa9\x90\x00\x00\x90\x11\xd6\x47\xf9\x10\xa2\x3e\x91\x20\x02\x1f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x90\x00\x00\x90\x11\xda\x47\xf9\x10\xc2\x3e\x91\x20\x02\x1f\xd6\x90\x00\x00\x90\x11\xde\x47\xf9\x10\xe2\x3e\x91\x20\x02\x1f\xd6\x90\x00\x00\x90\x11\xe2\x47\xf9\x10\x02\x3f\x91\x20\x02\x1f\xd6\x90\x00\x00\x90\x11\xe6\x47\xf9\x10\x22\x3f\x91\x20\x02\x1f\xd6\x1f\x20\x03\xd5\x1d\x00\x80\xd2\x1e\x00\x80\xd2\xe5\x03\x00\xaa\xe1\x03\x40\xf9\xe2\x23\x00\x91\xe6\x03\x00\x91\x80\x00\x00\x90\x00\xf8\x47\xf9\x03\x00\x80\xd2\x04\x00\x80\xd2\xe5\xff\xff\x97\xf0\xff\xff\x97\x80\x00\x00\x90\x00\xf4\x47\xf9\x40\x00\x00\xb4\xe8\xff\xff\x17\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x80\x00\x00\xb0\x00\x40\x00\x91\x81\x00\x00\xb0\x21\x40\x00\x91\x3f\x00\x00\xeb\xc0\x00\x00\x54\x81\x00\x00\x90\x21\xec\x47\xf9\x61\x00\x00\xb4\xf0\x03\x01\xaa\x00\x02\x1f\xd6\xc0\x03\x5f\xd6\x80\x00\x00\xb0\x00\x40\x00\x91\x81\x00\x00\xb0\x21\x40\x00\x91\x21\x00\x00\xcb\x22\xfc\x7f\xd3\x41\x0c\x81\x8b\x21\xfc\x41\x93\xc1\x00\x00\xb4\x82\x00\x00\x90\x42\xfc\x47\xf9\x62\x00\x00\xb4\xf0\x03\x02\xaa\x00\x02\x1f\xd6\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\xfd\x7b\xbe\xa9\xfd\x03\x00\x91\xf3\x0b\x00\xf9\x93\x00\x00\xb0\x60\x42\x40\x39\x40\x01\x00\x35\x80\x00\x00\x90\x00\xf0\x47\xf9\x80\x00\x00\xb4\x80\x00\x00\xb0\x00\x04\x40\xf9\xb9\xff\xff\x97\xd8\xff\xff\x97\x20\x00\x80\x52\x60\x42\x00\x39\xf3\x0b\x40\xf9\xfd\x7b\xc2\xa8\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\xdc\xff\xff\x17\xff\x83\x00\xd1\xe0\x0f\x00\xb9\x80\x00\x00\xb0\x00\x50\x00\x91\xe1\x0f\x40\xb9\x01\x00\x00\xb9\xff\x1f\x00\xb9\x80\x00\x00\xb0\x00\x50\x00\x91\x00\x00\x40\xb9\x1f\x00\x00\x71\x61\x00\x00\x54\x60\x00\x80\x52\xe0\x1f\x00\xb9\x80\x00\x00\xb0\x00\x50\x00\x91\x00\x00\x40\xb9\x1f\x04\x00\x71\x61\x00\x00\x54\xa0\x00\x80\x52\xe0\x1f\x00\xb9\xe0\x1f\x40\xb9\x1f\x0c\x00\x71\xa1\x00\x00\x54\x80\x00\x00\xb0\x00\x60\x00\x91\x00\x00\x40\xb9\xe0\x1f\x00\xb9\x00\x00\x80\x52\xff\x83\x00\x91\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\xfd\x7b\xbf\xa9\xfd\x03\x00\x91\xfd\x7b\xc1\xa8\xc0\x03\x5f\xd6\x01\x00\x02\x00\x01\x1b\x03\x3b\x3c\x00\x00\x00\x06\x00\x00\x00\x58\xfe\xff\xff\x54\x00\x00\x00\xa8\xfe\xff\xff\x68\x00\x00\x00\xd8\xfe\xff\xff\x7c\x00\x00\x00\x18\xff\xff\xff\x90\x00\x00\x00\x68\xff\xff\xff\xb4\x00\x00\x00\x6c\xff\xff\xff\xc8\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x01\x7a\x52\x00\x04\x78\x1e\x01\x1b\x0c\x1f\x00\x10\x00\x00\x00\x18\x00\x00\x00\xfc\xfd\xff\xff\x34\x00\x00\x00\x00\x41\x07\x1e\x10\x00\x00\x00\x2c\x00\x00\x00\x38\xfe\xff\xff\x30\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x40\x00\x00\x00\x54\xfe\xff\xff\x3c\x00\x00\x00\x00\x00\x00\x00\x20\x00\x00\x00\x54\x00\x00\x00\x80\xfe\xff\xff\x48\x00\x00\x00\x00\x41\x0e\x20\x9d\x04\x9e\x03\x42\x93\x02\x4e\xde\xdd\xd3\x0e"), -Section(".comment", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x00\x06\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xc0\x1b\x00"), -Section(".interp", 0x238, "\x2f\x6c\x69\x62\x2f\x6c\x64\x2d\x6c\x69\x6e\x75\x78\x2d\x61\x61\x72\x63\x68\x36\x34\x2e\x73\x6f\x2e\x31\x00"), -Section(".note.gnu.build-id", 0x254, "\x04\x00\x00\x00\x14\x00\x00\x00\x03\x00\x00\x00\x47\x4e\x55\x00\xa5\x2c\xa2\x5f\x93\xfa\x18\x14\x03\xd3\x58\x99\x96\xb1\x3d\xd7\x8e\x13\x8e\x90"), -Section(".note.ABI-tag", 0x278, "\x04\x00\x00\x00\x10\x00\x00\x00\x01\x00\x00\x00\x47\x4e\x55\x00\x00\x00\x00\x00\x03\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00"), -Section(".gnu.hash", 0x298, "\x01\x00\x00\x00\x01\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".dynsym", 0x2B8, "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x0b\x00\x80\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x16\x00\x00\x10\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x48\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x22\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x22\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x73\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".dynstr", 0x390, "\x00\x5f\x5f\x63\x78\x61\x5f\x66\x69\x6e\x61\x6c\x69\x7a\x65\x00\x5f\x5f\x6c\x69\x62\x63\x5f\x73\x74\x61\x72\x74\x5f\x6d\x61\x69\x6e\x00\x61\x62\x6f\x72\x74\x00\x6c\x69\x62\x63\x2e\x73\x6f\x2e\x36\x00\x47\x4c\x49\x42\x43\x5f\x32\x2e\x31\x37\x00\x47\x4c\x49\x42\x43\x5f\x32\x2e\x33\x34\x00\x5f\x49\x54\x4d\x5f\x64\x65\x72\x65\x67\x69\x73\x74\x65\x72\x54\x4d\x43\x6c\x6f\x6e\x65\x54\x61\x62\x6c\x65\x00\x5f\x5f\x67\x6d\x6f\x6e\x5f\x73\x74\x61\x72\x74\x5f\x5f\x00\x5f\x49\x54\x4d\x5f\x72\x65\x67\x69\x73\x74\x65\x72\x54\x4d\x43\x6c\x6f\x6e\x65\x54\x61\x62\x6c\x65\x00"), -Section(".gnu.version", 0x41E, "\x00\x00\x00\x00\x00\x00\x02\x00\x01\x00\x03\x00\x01\x00\x03\x00\x01\x00"), -Section(".gnu.version_r", 0x430, "\x01\x00\x02\x00\x28\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x97\x91\x96\x06\x00\x00\x03\x00\x32\x00\x00\x00\x10\x00\x00\x00\xb4\x91\x96\x06\x00\x00\x02\x00\x3d\x00\x00\x00\x00\x00\x00\x00"), -Section(".rela.dyn", 0x460, "\x98\x0d\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x10\x07\x00\x00\x00\x00\x00\x00\xa0\x0d\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\xc0\x06\x00\x00\x00\x00\x00\x00\xf0\x0f\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x14\x07\x00\x00\x00\x00\x00\x00\x08\x10\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x08\x10\x01\x00\x00\x00\x00\x00\xd8\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe0\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe8\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xf8\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".rela.plt", 0x520, "\xb0\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xb8\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xc0\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xc8\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".init", 0x580, "\x1f\x20\x03\xd5\xfd\x7b\xbf\xa9\xfd\x03\x00\x91\x2a\x00\x00\x94\xfd\x7b\xc1\xa8\xc0\x03\x5f\xd6"), -Section(".plt", 0x5A0, "\xf0\x7b\xbf\xa9\x90\x00\x00\x90\x11\xd6\x47\xf9\x10\xa2\x3e\x91\x20\x02\x1f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x90\x00\x00\x90\x11\xda\x47\xf9\x10\xc2\x3e\x91\x20\x02\x1f\xd6\x90\x00\x00\x90\x11\xde\x47\xf9\x10\xe2\x3e\x91\x20\x02\x1f\xd6\x90\x00\x00\x90\x11\xe2\x47\xf9\x10\x02\x3f\x91\x20\x02\x1f\xd6\x90\x00\x00\x90\x11\xe6\x47\xf9\x10\x22\x3f\x91\x20\x02\x1f\xd6"), -Section(".fini", 0x790, "\x1f\x20\x03\xd5\xfd\x7b\xbf\xa9\xfd\x03\x00\x91\xfd\x7b\xc1\xa8\xc0\x03\x5f\xd6"), -Section(".rodata", 0x7A4, "\x01\x00\x02\x00"), -Section(".eh_frame_hdr", 0x7A8, "\x01\x1b\x03\x3b\x3c\x00\x00\x00\x06\x00\x00\x00\x58\xfe\xff\xff\x54\x00\x00\x00\xa8\xfe\xff\xff\x68\x00\x00\x00\xd8\xfe\xff\xff\x7c\x00\x00\x00\x18\xff\xff\xff\x90\x00\x00\x00\x68\xff\xff\xff\xb4\x00\x00\x00\x6c\xff\xff\xff\xc8\x00\x00\x00"), -Section(".eh_frame", 0x7E8, "\x10\x00\x00\x00\x00\x00\x00\x00\x01\x7a\x52\x00\x04\x78\x1e\x01\x1b\x0c\x1f\x00\x10\x00\x00\x00\x18\x00\x00\x00\xfc\xfd\xff\xff\x34\x00\x00\x00\x00\x41\x07\x1e\x10\x00\x00\x00\x2c\x00\x00\x00\x38\xfe\xff\xff\x30\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x40\x00\x00\x00\x54\xfe\xff\xff\x3c\x00\x00\x00\x00\x00\x00\x00\x20\x00\x00\x00\x54\x00\x00\x00\x80\xfe\xff\xff\x48\x00\x00\x00\x00\x41\x0e\x20\x9d\x04\x9e\x03\x42\x93\x02\x4e\xde\xdd\xd3\x0e\x00\x00\x00\x00\x10\x00\x00\x00\x78\x00\x00\x00\xac\xfe\xff\xff\x04\x00\x00\x00\x00\x00\x00\x00\x14\x00\x00\x00\x8c\x00\x00\x00\x9c\xfe\xff\xff\x7c\x00\x00\x00\x00\x41\x0e\x20\x5d\x0e\x00\x00\x00\x00\x00\x00"), -Section(".fini_array", 0x10DA0, "\xc0\x06\x00\x00\x00\x00\x00\x00"), -Section(".dynamic", 0x10DA8, "\x01\x00\x00\x00\x00\x00\x00\x00\x28\x00\x00\x00\x00\x00\x00\x00\x0c\x00\x00\x00\x00\x00\x00\x00\x80\x05\x00\x00\x00\x00\x00\x00\x0d\x00\x00\x00\x00\x00\x00\x00\x90\x07\x00\x00\x00\x00\x00\x00\x19\x00\x00\x00\x00\x00\x00\x00\x98\x0d\x01\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x1a\x00\x00\x00\x00\x00\x00\x00\xa0\x0d\x01\x00\x00\x00\x00\x00\x1c\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\xf5\xfe\xff\x6f\x00\x00\x00\x00\x98\x02\x00\x00\x00\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x90\x03\x00\x00\x00\x00\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\xb8\x02\x00\x00\x00\x00\x00\x00\x0a\x00\x00\x00\x00\x00\x00\x00\x8d\x00\x00\x00\x00\x00\x00\x00\x0b\x00\x00\x00\x00\x00\x00\x00\x18\x00\x00\x00\x00\x00\x00\x00\x15\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x98\x0f\x01\x00\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x60\x00\x00\x00\x00\x00\x00\x00\x14\x00\x00\x00\x00\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x17\x00\x00\x00\x00\x00\x00\x00\x20\x05\x00\x00\x00\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x60\x04\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\xc0\x00\x00\x00\x00\x00\x00\x00\x09\x00\x00\x00\x00\x00\x00\x00\x18\x00\x00\x00\x00\x00\x00\x00\x1e\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\xfb\xff\xff\x6f\x00\x00\x00\x00\x01\x00\x00\x08\x00\x00\x00\x00\xfe\xff\xff\x6f\x00\x00\x00\x00\x30\x04\x00\x00\x00\x00\x00\x00\xff\xff\xff\x6f\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\xf0\xff\xff\x6f\x00\x00\x00\x00\x1e\x04\x00\x00\x00\x00\x00\x00\xf9\xff\xff\x6f\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".got", 0x10F98, "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xa0\x05\x00\x00\x00\x00\x00\x00\xa0\x05\x00\x00\x00\x00\x00\x00\xa0\x05\x00\x00\x00\x00\x00\x00\xa0\x05\x00\x00\x00\x00\x00\x00\xa8\x0d\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x14\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".data", 0x11000, "\x00\x00\x00\x00\x00\x00\x00\x00\x08\x10\x01\x00\x00\x00\x00\x00"), -Section(".init_array", 0x10D98, "\x10\x07\x00\x00\x00\x00\x00\x00"), -Section(".text", 0x600, "\x1f\x20\x03\xd5\x1d\x00\x80\xd2\x1e\x00\x80\xd2\xe5\x03\x00\xaa\xe1\x03\x40\xf9\xe2\x23\x00\x91\xe6\x03\x00\x91\x80\x00\x00\x90\x00\xf8\x47\xf9\x03\x00\x80\xd2\x04\x00\x80\xd2\xe5\xff\xff\x97\xf0\xff\xff\x97\x80\x00\x00\x90\x00\xf4\x47\xf9\x40\x00\x00\xb4\xe8\xff\xff\x17\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x80\x00\x00\xb0\x00\x40\x00\x91\x81\x00\x00\xb0\x21\x40\x00\x91\x3f\x00\x00\xeb\xc0\x00\x00\x54\x81\x00\x00\x90\x21\xec\x47\xf9\x61\x00\x00\xb4\xf0\x03\x01\xaa\x00\x02\x1f\xd6\xc0\x03\x5f\xd6\x80\x00\x00\xb0\x00\x40\x00\x91\x81\x00\x00\xb0\x21\x40\x00\x91\x21\x00\x00\xcb\x22\xfc\x7f\xd3\x41\x0c\x81\x8b\x21\xfc\x41\x93\xc1\x00\x00\xb4\x82\x00\x00\x90\x42\xfc\x47\xf9\x62\x00\x00\xb4\xf0\x03\x02\xaa\x00\x02\x1f\xd6\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\xfd\x7b\xbe\xa9\xfd\x03\x00\x91\xf3\x0b\x00\xf9\x93\x00\x00\xb0\x60\x42\x40\x39\x40\x01\x00\x35\x80\x00\x00\x90\x00\xf0\x47\xf9\x80\x00\x00\xb4\x80\x00\x00\xb0\x00\x04\x40\xf9\xb9\xff\xff\x97\xd8\xff\xff\x97\x20\x00\x80\x52\x60\x42\x00\x39\xf3\x0b\x40\xf9\xfd\x7b\xc2\xa8\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\xdc\xff\xff\x17\xff\x83\x00\xd1\xe0\x0f\x00\xb9\x80\x00\x00\xb0\x00\x50\x00\x91\xe1\x0f\x40\xb9\x01\x00\x00\xb9\xff\x1f\x00\xb9\x80\x00\x00\xb0\x00\x50\x00\x91\x00\x00\x40\xb9\x1f\x00\x00\x71\x61\x00\x00\x54\x60\x00\x80\x52\xe0\x1f\x00\xb9\x80\x00\x00\xb0\x00\x50\x00\x91\x00\x00\x40\xb9\x1f\x04\x00\x71\x61\x00\x00\x54\xa0\x00\x80\x52\xe0\x1f\x00\xb9\xe0\x1f\x40\xb9\x1f\x0c\x00\x71\xa1\x00\x00\x54\x80\x00\x00\xb0\x00\x60\x00\x91\x00\x00\x40\xb9\xe0\x1f\x00\xb9\x00\x00\x80\x52\xff\x83\x00\x91\xc0\x03\x5f\xd6")]), -Memmap([Annotation(Region(0x0,0x88B), Attr("segment","02 0 2188")), -Annotation(Region(0x600,0x633), Attr("symbol","\"_start\"")), -Annotation(Region(0x0,0xF9), Attr("section","\".shstrtab\"")), -Annotation(Region(0x0,0x227), Attr("section","\".strtab\"")), -Annotation(Region(0x0,0x857), Attr("section","\".symtab\"")), -Annotation(Region(0x0,0x2A), Attr("section","\".comment\"")), -Annotation(Region(0x238,0x252), Attr("section","\".interp\"")), -Annotation(Region(0x254,0x277), Attr("section","\".note.gnu.build-id\"")), -Annotation(Region(0x278,0x297), Attr("section","\".note.ABI-tag\"")), -Annotation(Region(0x298,0x2B3), Attr("section","\".gnu.hash\"")), -Annotation(Region(0x2B8,0x38F), Attr("section","\".dynsym\"")), -Annotation(Region(0x390,0x41C), Attr("section","\".dynstr\"")), -Annotation(Region(0x41E,0x42F), Attr("section","\".gnu.version\"")), -Annotation(Region(0x430,0x45F), Attr("section","\".gnu.version_r\"")), -Annotation(Region(0x460,0x51F), Attr("section","\".rela.dyn\"")), -Annotation(Region(0x520,0x57F), Attr("section","\".rela.plt\"")), -Annotation(Region(0x580,0x597), Attr("section","\".init\"")), -Annotation(Region(0x5A0,0x5FF), Attr("section","\".plt\"")), -Annotation(Region(0x580,0x597), Attr("code-region","()")), -Annotation(Region(0x5A0,0x5FF), Attr("code-region","()")), -Annotation(Region(0x600,0x633), Attr("symbol-info","_start 0x600 52")), -Annotation(Region(0x634,0x647), Attr("symbol","\"call_weak_fn\"")), -Annotation(Region(0x634,0x647), Attr("symbol-info","call_weak_fn 0x634 20")), -Annotation(Region(0x714,0x78F), Attr("symbol","\"main\"")), -Annotation(Region(0x714,0x78F), Attr("symbol-info","main 0x714 124")), -Annotation(Region(0x790,0x7A3), Attr("section","\".fini\"")), -Annotation(Region(0x7A4,0x7A7), Attr("section","\".rodata\"")), -Annotation(Region(0x7A8,0x7E3), Attr("section","\".eh_frame_hdr\"")), -Annotation(Region(0x7E8,0x88B), Attr("section","\".eh_frame\"")), -Annotation(Region(0x10D98,0x1100F), Attr("segment","03 0x10D98 648")), -Annotation(Region(0x10DA0,0x10DA7), Attr("section","\".fini_array\"")), -Annotation(Region(0x10DA8,0x10F97), Attr("section","\".dynamic\"")), -Annotation(Region(0x10F98,0x10FFF), Attr("section","\".got\"")), -Annotation(Region(0x11000,0x1100F), Attr("section","\".data\"")), -Annotation(Region(0x10D98,0x10D9F), Attr("section","\".init_array\"")), -Annotation(Region(0x600,0x78F), Attr("section","\".text\"")), -Annotation(Region(0x600,0x78F), Attr("code-region","()")), -Annotation(Region(0x790,0x7A3), Attr("code-region","()"))]), -Program(Tid(1_808, "%00000710"), Attrs([]), - Subs([Sub(Tid(1_746, "@__cxa_finalize"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x5D0"), -Attr("stub","()")]), "__cxa_finalize", Args([Arg(Tid(1_809, "%00000711"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("__cxa_finalize_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(1_112, "@__cxa_finalize"), - Attrs([Attr("address","0x5D0")]), Phis([]), -Defs([Def(Tid(1_360, "%00000550"), Attrs([Attr("address","0x5D0"), -Attr("insn","adrp x16, #65536")]), Var("R16",Imm(64)), Int(65536,64)), -Def(Tid(1_367, "%00000557"), Attrs([Attr("address","0x5D4"), -Attr("insn","ldr x17, [x16, #0xfb8]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(4024,64)),LittleEndian(),64)), -Def(Tid(1_373, "%0000055d"), Attrs([Attr("address","0x5D8"), -Attr("insn","add x16, x16, #0xfb8")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(4024,64)))]), Jmps([Call(Tid(1_378, "%00000562"), - Attrs([Attr("address","0x5DC"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), -Sub(Tid(1_747, "@__do_global_dtors_aux"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x6C0")]), - "__do_global_dtors_aux", Args([Arg(Tid(1_810, "%00000712"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("__do_global_dtors_aux_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(714, "@__do_global_dtors_aux"), - Attrs([Attr("address","0x6C0")]), Phis([]), Defs([Def(Tid(718, "%000002ce"), - Attrs([Attr("address","0x6C0"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("#3",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(18446744073709551584,64))), -Def(Tid(724, "%000002d4"), Attrs([Attr("address","0x6C0"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("#3",Imm(64)),Var("R29",Imm(64)),LittleEndian(),64)), -Def(Tid(730, "%000002da"), Attrs([Attr("address","0x6C0"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("#3",Imm(64)),Int(8,64)),Var("R30",Imm(64)),LittleEndian(),64)), -Def(Tid(734, "%000002de"), Attrs([Attr("address","0x6C0"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("R31",Imm(64)), -Var("#3",Imm(64))), Def(Tid(740, "%000002e4"), - Attrs([Attr("address","0x6C4"), Attr("insn","mov x29, sp")]), - Var("R29",Imm(64)), Var("R31",Imm(64))), Def(Tid(748, "%000002ec"), - Attrs([Attr("address","0x6C8"), Attr("insn","str x19, [sp, #0x10]")]), - Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(16,64)),Var("R19",Imm(64)),LittleEndian(),64)), -Def(Tid(753, "%000002f1"), Attrs([Attr("address","0x6CC"), -Attr("insn","adrp x19, #69632")]), Var("R19",Imm(64)), Int(69632,64)), -Def(Tid(760, "%000002f8"), Attrs([Attr("address","0x6D0"), -Attr("insn","ldrb w0, [x19, #0x10]")]), Var("R0",Imm(64)), -UNSIGNED(64,Load(Var("mem",Mem(64,8)),PLUS(Var("R19",Imm(64)),Int(16,64)),LittleEndian(),8)))]), -Jmps([Goto(Tid(767, "%000002ff"), Attrs([Attr("address","0x6D4"), -Attr("insn","cbnz w0, #0x28")]), - NEQ(Extract(31,0,Var("R0",Imm(64))),Int(0,32)), -Direct(Tid(765, "%000002fd"))), Goto(Tid(1_792, "%00000700"), Attrs([]), - Int(1,1), Direct(Tid(1_057, "%00000421")))])), Blk(Tid(1_057, "%00000421"), - Attrs([Attr("address","0x6D8")]), Phis([]), -Defs([Def(Tid(1_060, "%00000424"), Attrs([Attr("address","0x6D8"), -Attr("insn","adrp x0, #65536")]), Var("R0",Imm(64)), Int(65536,64)), -Def(Tid(1_067, "%0000042b"), Attrs([Attr("address","0x6DC"), -Attr("insn","ldr x0, [x0, #0xfe0]")]), Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(4064,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(1_073, "%00000431"), Attrs([Attr("address","0x6E0"), -Attr("insn","cbz x0, #0x10")]), EQ(Var("R0",Imm(64)),Int(0,64)), -Direct(Tid(1_071, "%0000042f"))), Goto(Tid(1_793, "%00000701"), Attrs([]), - Int(1,1), Direct(Tid(1_096, "%00000448")))])), Blk(Tid(1_096, "%00000448"), - Attrs([Attr("address","0x6E4")]), Phis([]), -Defs([Def(Tid(1_099, "%0000044b"), Attrs([Attr("address","0x6E4"), -Attr("insn","adrp x0, #69632")]), Var("R0",Imm(64)), Int(69632,64)), -Def(Tid(1_106, "%00000452"), Attrs([Attr("address","0x6E8"), -Attr("insn","ldr x0, [x0, #0x8]")]), Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(1_111, "%00000457"), Attrs([Attr("address","0x6EC"), -Attr("insn","bl #-0x11c")]), Var("R30",Imm(64)), Int(1776,64))]), -Jmps([Call(Tid(1_114, "%0000045a"), Attrs([Attr("address","0x6EC"), -Attr("insn","bl #-0x11c")]), Int(1,1), -(Direct(Tid(1_746, "@__cxa_finalize")),Direct(Tid(1_071, "%0000042f"))))])), -Blk(Tid(1_071, "%0000042f"), Attrs([Attr("address","0x6F0")]), Phis([]), -Defs([Def(Tid(1_079, "%00000437"), Attrs([Attr("address","0x6F0"), -Attr("insn","bl #-0xa0")]), Var("R30",Imm(64)), Int(1780,64))]), -Jmps([Call(Tid(1_081, "%00000439"), Attrs([Attr("address","0x6F0"), -Attr("insn","bl #-0xa0")]), Int(1,1), -(Direct(Tid(1_760, "@deregister_tm_clones")),Direct(Tid(1_083, "%0000043b"))))])), -Blk(Tid(1_083, "%0000043b"), Attrs([Attr("address","0x6F4")]), Phis([]), -Defs([Def(Tid(1_086, "%0000043e"), Attrs([Attr("address","0x6F4"), -Attr("insn","mov w0, #0x1")]), Var("R0",Imm(64)), Int(1,64)), -Def(Tid(1_094, "%00000446"), Attrs([Attr("address","0x6F8"), -Attr("insn","strb w0, [x19, #0x10]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R19",Imm(64)),Int(16,64)),Extract(7,0,Var("R0",Imm(64))),LittleEndian(),8))]), -Jmps([Goto(Tid(1_794, "%00000702"), Attrs([]), Int(1,1), -Direct(Tid(765, "%000002fd")))])), Blk(Tid(765, "%000002fd"), - Attrs([Attr("address","0x6FC")]), Phis([]), Defs([Def(Tid(775, "%00000307"), - Attrs([Attr("address","0x6FC"), Attr("insn","ldr x19, [sp, #0x10]")]), - Var("R19",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(16,64)),LittleEndian(),64)), -Def(Tid(782, "%0000030e"), Attrs([Attr("address","0x700"), -Attr("insn","ldp x29, x30, [sp], #0x20")]), Var("R29",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(787, "%00000313"), Attrs([Attr("address","0x700"), -Attr("insn","ldp x29, x30, [sp], #0x20")]), Var("R30",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(791, "%00000317"), Attrs([Attr("address","0x700"), -Attr("insn","ldp x29, x30, [sp], #0x20")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(32,64)))]), Jmps([Call(Tid(796, "%0000031c"), - Attrs([Attr("address","0x704"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), Sub(Tid(1_751, "@__libc_start_main"), - Attrs([Attr("c.proto","signed (*)(signed (*)(signed , char** , char** );* main, signed , char** , \nvoid* auxv)"), -Attr("address","0x5C0"), Attr("stub","()")]), "__libc_start_main", - Args([Arg(Tid(1_811, "%00000713"), - Attrs([Attr("c.layout","**[ : 64]"), -Attr("c.data","Top:u64 ptr ptr"), -Attr("c.type","signed (*)(signed , char** , char** );*")]), - Var("__libc_start_main_main",Imm(64)), Var("R0",Imm(64)), In()), -Arg(Tid(1_812, "%00000714"), Attrs([Attr("c.layout","[signed : 32]"), -Attr("c.data","Top:u32"), Attr("c.type","signed")]), - Var("__libc_start_main_arg2",Imm(32)), LOW(32,Var("R1",Imm(64))), In()), -Arg(Tid(1_813, "%00000715"), Attrs([Attr("c.layout","**[char : 8]"), -Attr("c.data","Top:u8 ptr ptr"), Attr("c.type","char**")]), - Var("__libc_start_main_arg3",Imm(64)), Var("R2",Imm(64)), Both()), -Arg(Tid(1_814, "%00000716"), Attrs([Attr("c.layout","*[ : 8]"), -Attr("c.data","{} ptr"), Attr("c.type","void*")]), - Var("__libc_start_main_auxv",Imm(64)), Var("R3",Imm(64)), Both()), -Arg(Tid(1_815, "%00000717"), Attrs([Attr("c.layout","[signed : 32]"), -Attr("c.data","Top:u32"), Attr("c.type","signed")]), - Var("__libc_start_main_result",Imm(32)), LOW(32,Var("R0",Imm(64))), -Out())]), Blks([Blk(Tid(547, "@__libc_start_main"), - Attrs([Attr("address","0x5C0")]), Phis([]), -Defs([Def(Tid(1_338, "%0000053a"), Attrs([Attr("address","0x5C0"), -Attr("insn","adrp x16, #65536")]), Var("R16",Imm(64)), Int(65536,64)), -Def(Tid(1_345, "%00000541"), Attrs([Attr("address","0x5C4"), -Attr("insn","ldr x17, [x16, #0xfb0]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(4016,64)),LittleEndian(),64)), -Def(Tid(1_351, "%00000547"), Attrs([Attr("address","0x5C8"), -Attr("insn","add x16, x16, #0xfb0")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(4016,64)))]), Jmps([Call(Tid(1_356, "%0000054c"), - Attrs([Attr("address","0x5CC"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), Sub(Tid(1_752, "@_fini"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x790")]), - "_fini", Args([Arg(Tid(1_816, "%00000718"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("_fini_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(31, "@_fini"), - Attrs([Attr("address","0x790")]), Phis([]), Defs([Def(Tid(37, "%00000025"), - Attrs([Attr("address","0x794"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("#0",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(18446744073709551600,64))), -Def(Tid(43, "%0000002b"), Attrs([Attr("address","0x794"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("#0",Imm(64)),Var("R29",Imm(64)),LittleEndian(),64)), -Def(Tid(49, "%00000031"), Attrs([Attr("address","0x794"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("#0",Imm(64)),Int(8,64)),Var("R30",Imm(64)),LittleEndian(),64)), -Def(Tid(53, "%00000035"), Attrs([Attr("address","0x794"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("R31",Imm(64)), -Var("#0",Imm(64))), Def(Tid(59, "%0000003b"), Attrs([Attr("address","0x798"), -Attr("insn","mov x29, sp")]), Var("R29",Imm(64)), Var("R31",Imm(64))), -Def(Tid(66, "%00000042"), Attrs([Attr("address","0x79C"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R29",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(71, "%00000047"), Attrs([Attr("address","0x79C"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R30",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(75, "%0000004b"), Attrs([Attr("address","0x79C"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(16,64)))]), Jmps([Call(Tid(80, "%00000050"), - Attrs([Attr("address","0x7A0"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), Sub(Tid(1_753, "@_init"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x580")]), - "_init", Args([Arg(Tid(1_817, "%00000719"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("_init_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(1_557, "@_init"), - Attrs([Attr("address","0x580")]), Phis([]), -Defs([Def(Tid(1_563, "%0000061b"), Attrs([Attr("address","0x584"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("#8",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(18446744073709551600,64))), -Def(Tid(1_569, "%00000621"), Attrs([Attr("address","0x584"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("#8",Imm(64)),Var("R29",Imm(64)),LittleEndian(),64)), -Def(Tid(1_575, "%00000627"), Attrs([Attr("address","0x584"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("#8",Imm(64)),Int(8,64)),Var("R30",Imm(64)),LittleEndian(),64)), -Def(Tid(1_579, "%0000062b"), Attrs([Attr("address","0x584"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("R31",Imm(64)), -Var("#8",Imm(64))), Def(Tid(1_585, "%00000631"), - Attrs([Attr("address","0x588"), Attr("insn","mov x29, sp")]), - Var("R29",Imm(64)), Var("R31",Imm(64))), Def(Tid(1_590, "%00000636"), - Attrs([Attr("address","0x58C"), Attr("insn","bl #0xa8")]), - Var("R30",Imm(64)), Int(1424,64))]), Jmps([Call(Tid(1_592, "%00000638"), - Attrs([Attr("address","0x58C"), Attr("insn","bl #0xa8")]), Int(1,1), -(Direct(Tid(1_758, "@call_weak_fn")),Direct(Tid(1_594, "%0000063a"))))])), -Blk(Tid(1_594, "%0000063a"), Attrs([Attr("address","0x590")]), Phis([]), -Defs([Def(Tid(1_599, "%0000063f"), Attrs([Attr("address","0x590"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R29",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(1_604, "%00000644"), Attrs([Attr("address","0x590"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R30",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(1_608, "%00000648"), Attrs([Attr("address","0x590"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(16,64)))]), Jmps([Call(Tid(1_613, "%0000064d"), - Attrs([Attr("address","0x594"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), Sub(Tid(1_754, "@_start"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x600"), -Attr("stub","()"), Attr("entry-point","()")]), "_start", - Args([Arg(Tid(1_818, "%0000071a"), Attrs([Attr("c.layout","[signed : 32]"), -Attr("c.data","Top:u32"), Attr("c.type","signed")]), - Var("_start_result",Imm(32)), LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(484, "@_start"), Attrs([Attr("address","0x600")]), Phis([]), -Defs([Def(Tid(489, "%000001e9"), Attrs([Attr("address","0x604"), -Attr("insn","mov x29, #0x0")]), Var("R29",Imm(64)), Int(0,64)), -Def(Tid(494, "%000001ee"), Attrs([Attr("address","0x608"), -Attr("insn","mov x30, #0x0")]), Var("R30",Imm(64)), Int(0,64)), -Def(Tid(500, "%000001f4"), Attrs([Attr("address","0x60C"), -Attr("insn","mov x5, x0")]), Var("R5",Imm(64)), Var("R0",Imm(64))), -Def(Tid(507, "%000001fb"), Attrs([Attr("address","0x610"), -Attr("insn","ldr x1, [sp]")]), Var("R1",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(513, "%00000201"), Attrs([Attr("address","0x614"), -Attr("insn","add x2, sp, #0x8")]), Var("R2",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(8,64))), Def(Tid(519, "%00000207"), - Attrs([Attr("address","0x618"), Attr("insn","mov x6, sp")]), - Var("R6",Imm(64)), Var("R31",Imm(64))), Def(Tid(524, "%0000020c"), - Attrs([Attr("address","0x61C"), Attr("insn","adrp x0, #65536")]), - Var("R0",Imm(64)), Int(65536,64)), Def(Tid(531, "%00000213"), - Attrs([Attr("address","0x620"), Attr("insn","ldr x0, [x0, #0xff0]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(4080,64)),LittleEndian(),64)), -Def(Tid(536, "%00000218"), Attrs([Attr("address","0x624"), -Attr("insn","mov x3, #0x0")]), Var("R3",Imm(64)), Int(0,64)), -Def(Tid(541, "%0000021d"), Attrs([Attr("address","0x628"), -Attr("insn","mov x4, #0x0")]), Var("R4",Imm(64)), Int(0,64)), -Def(Tid(546, "%00000222"), Attrs([Attr("address","0x62C"), -Attr("insn","bl #-0x6c")]), Var("R30",Imm(64)), Int(1584,64))]), -Jmps([Call(Tid(549, "%00000225"), Attrs([Attr("address","0x62C"), -Attr("insn","bl #-0x6c")]), Int(1,1), -(Direct(Tid(1_751, "@__libc_start_main")),Direct(Tid(551, "%00000227"))))])), -Blk(Tid(551, "%00000227"), Attrs([Attr("address","0x630")]), Phis([]), -Defs([Def(Tid(554, "%0000022a"), Attrs([Attr("address","0x630"), -Attr("insn","bl #-0x40")]), Var("R30",Imm(64)), Int(1588,64))]), -Jmps([Call(Tid(557, "%0000022d"), Attrs([Attr("address","0x630"), -Attr("insn","bl #-0x40")]), Int(1,1), -(Direct(Tid(1_757, "@abort")),Direct(Tid(1_795, "%00000703"))))])), -Blk(Tid(1_795, "%00000703"), Attrs([]), Phis([]), Defs([]), -Jmps([Call(Tid(1_796, "%00000704"), Attrs([]), Int(1,1), -(Direct(Tid(1_758, "@call_weak_fn")),))]))])), Sub(Tid(1_757, "@abort"), - Attrs([Attr("noreturn","()"), Attr("c.proto","void (*)(void)"), -Attr("address","0x5F0"), Attr("stub","()")]), "abort", Args([]), -Blks([Blk(Tid(555, "@abort"), Attrs([Attr("address","0x5F0")]), Phis([]), -Defs([Def(Tid(1_404, "%0000057c"), Attrs([Attr("address","0x5F0"), -Attr("insn","adrp x16, #65536")]), Var("R16",Imm(64)), Int(65536,64)), -Def(Tid(1_411, "%00000583"), Attrs([Attr("address","0x5F4"), -Attr("insn","ldr x17, [x16, #0xfc8]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(4040,64)),LittleEndian(),64)), -Def(Tid(1_417, "%00000589"), Attrs([Attr("address","0x5F8"), -Attr("insn","add x16, x16, #0xfc8")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(4040,64)))]), Jmps([Call(Tid(1_422, "%0000058e"), - Attrs([Attr("address","0x5FC"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), Sub(Tid(1_758, "@call_weak_fn"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x634")]), - "call_weak_fn", Args([Arg(Tid(1_819, "%0000071b"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("call_weak_fn_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(559, "@call_weak_fn"), - Attrs([Attr("address","0x634")]), Phis([]), Defs([Def(Tid(562, "%00000232"), - Attrs([Attr("address","0x634"), Attr("insn","adrp x0, #65536")]), - Var("R0",Imm(64)), Int(65536,64)), Def(Tid(569, "%00000239"), - Attrs([Attr("address","0x638"), Attr("insn","ldr x0, [x0, #0xfe8]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(4072,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(575, "%0000023f"), Attrs([Attr("address","0x63C"), -Attr("insn","cbz x0, #0x8")]), EQ(Var("R0",Imm(64)),Int(0,64)), -Direct(Tid(573, "%0000023d"))), Goto(Tid(1_797, "%00000705"), Attrs([]), - Int(1,1), Direct(Tid(1_176, "%00000498")))])), Blk(Tid(573, "%0000023d"), - Attrs([Attr("address","0x644")]), Phis([]), Defs([]), -Jmps([Call(Tid(581, "%00000245"), Attrs([Attr("address","0x644"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))])), -Blk(Tid(1_176, "%00000498"), Attrs([Attr("address","0x640")]), Phis([]), -Defs([]), Jmps([Goto(Tid(1_179, "%0000049b"), Attrs([Attr("address","0x640"), -Attr("insn","b #-0x60")]), Int(1,1), -Direct(Tid(1_177, "@__gmon_start__")))])), Blk(Tid(1_177, "@__gmon_start__"), - Attrs([Attr("address","0x5E0")]), Phis([]), -Defs([Def(Tid(1_382, "%00000566"), Attrs([Attr("address","0x5E0"), -Attr("insn","adrp x16, #65536")]), Var("R16",Imm(64)), Int(65536,64)), -Def(Tid(1_389, "%0000056d"), Attrs([Attr("address","0x5E4"), -Attr("insn","ldr x17, [x16, #0xfc0]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(4032,64)),LittleEndian(),64)), -Def(Tid(1_395, "%00000573"), Attrs([Attr("address","0x5E8"), -Attr("insn","add x16, x16, #0xfc0")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(4032,64)))]), Jmps([Call(Tid(1_400, "%00000578"), - Attrs([Attr("address","0x5EC"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), -Sub(Tid(1_760, "@deregister_tm_clones"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x650")]), - "deregister_tm_clones", Args([Arg(Tid(1_820, "%0000071c"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("deregister_tm_clones_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(587, "@deregister_tm_clones"), - Attrs([Attr("address","0x650")]), Phis([]), Defs([Def(Tid(590, "%0000024e"), - Attrs([Attr("address","0x650"), Attr("insn","adrp x0, #69632")]), - Var("R0",Imm(64)), Int(69632,64)), Def(Tid(596, "%00000254"), - Attrs([Attr("address","0x654"), Attr("insn","add x0, x0, #0x10")]), - Var("R0",Imm(64)), PLUS(Var("R0",Imm(64)),Int(16,64))), -Def(Tid(601, "%00000259"), Attrs([Attr("address","0x658"), -Attr("insn","adrp x1, #69632")]), Var("R1",Imm(64)), Int(69632,64)), -Def(Tid(607, "%0000025f"), Attrs([Attr("address","0x65C"), -Attr("insn","add x1, x1, #0x10")]), Var("R1",Imm(64)), -PLUS(Var("R1",Imm(64)),Int(16,64))), Def(Tid(613, "%00000265"), - Attrs([Attr("address","0x660"), Attr("insn","cmp x1, x0")]), - Var("#1",Imm(64)), NOT(Var("R0",Imm(64)))), Def(Tid(618, "%0000026a"), - Attrs([Attr("address","0x660"), Attr("insn","cmp x1, x0")]), - Var("#2",Imm(64)), PLUS(Var("R1",Imm(64)),NOT(Var("R0",Imm(64))))), -Def(Tid(624, "%00000270"), Attrs([Attr("address","0x660"), -Attr("insn","cmp x1, x0")]), Var("VF",Imm(1)), -NEQ(SIGNED(65,PLUS(Var("#2",Imm(64)),Int(1,64))),PLUS(PLUS(SIGNED(65,Var("R1",Imm(64))),SIGNED(65,Var("#1",Imm(64)))),Int(1,65)))), -Def(Tid(630, "%00000276"), Attrs([Attr("address","0x660"), -Attr("insn","cmp x1, x0")]), Var("CF",Imm(1)), -NEQ(UNSIGNED(65,PLUS(Var("#2",Imm(64)),Int(1,64))),PLUS(PLUS(UNSIGNED(65,Var("R1",Imm(64))),UNSIGNED(65,Var("#1",Imm(64)))),Int(1,65)))), -Def(Tid(634, "%0000027a"), Attrs([Attr("address","0x660"), -Attr("insn","cmp x1, x0")]), Var("ZF",Imm(1)), -EQ(PLUS(Var("#2",Imm(64)),Int(1,64)),Int(0,64))), Def(Tid(638, "%0000027e"), - Attrs([Attr("address","0x660"), Attr("insn","cmp x1, x0")]), - Var("NF",Imm(1)), Extract(63,63,PLUS(Var("#2",Imm(64)),Int(1,64))))]), -Jmps([Goto(Tid(644, "%00000284"), Attrs([Attr("address","0x664"), -Attr("insn","b.eq #0x18")]), EQ(Var("ZF",Imm(1)),Int(1,1)), -Direct(Tid(642, "%00000282"))), Goto(Tid(1_798, "%00000706"), Attrs([]), - Int(1,1), Direct(Tid(1_146, "%0000047a")))])), Blk(Tid(1_146, "%0000047a"), - Attrs([Attr("address","0x668")]), Phis([]), -Defs([Def(Tid(1_149, "%0000047d"), Attrs([Attr("address","0x668"), -Attr("insn","adrp x1, #65536")]), Var("R1",Imm(64)), Int(65536,64)), -Def(Tid(1_156, "%00000484"), Attrs([Attr("address","0x66C"), -Attr("insn","ldr x1, [x1, #0xfd8]")]), Var("R1",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R1",Imm(64)),Int(4056,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(1_161, "%00000489"), Attrs([Attr("address","0x670"), -Attr("insn","cbz x1, #0xc")]), EQ(Var("R1",Imm(64)),Int(0,64)), -Direct(Tid(642, "%00000282"))), Goto(Tid(1_799, "%00000707"), Attrs([]), - Int(1,1), Direct(Tid(1_165, "%0000048d")))])), Blk(Tid(642, "%00000282"), - Attrs([Attr("address","0x67C")]), Phis([]), Defs([]), -Jmps([Call(Tid(650, "%0000028a"), Attrs([Attr("address","0x67C"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))])), -Blk(Tid(1_165, "%0000048d"), Attrs([Attr("address","0x674")]), Phis([]), -Defs([Def(Tid(1_169, "%00000491"), Attrs([Attr("address","0x674"), -Attr("insn","mov x16, x1")]), Var("R16",Imm(64)), Var("R1",Imm(64)))]), -Jmps([Call(Tid(1_174, "%00000496"), Attrs([Attr("address","0x678"), -Attr("insn","br x16")]), Int(1,1), (Indirect(Var("R16",Imm(64))),))]))])), -Sub(Tid(1_763, "@frame_dummy"), Attrs([Attr("c.proto","signed (*)(void)"), -Attr("address","0x710")]), "frame_dummy", Args([Arg(Tid(1_821, "%0000071d"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("frame_dummy_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(802, "@frame_dummy"), - Attrs([Attr("address","0x710")]), Phis([]), Defs([]), -Jmps([Call(Tid(804, "%00000324"), Attrs([Attr("address","0x710"), -Attr("insn","b #-0x90")]), Int(1,1), -(Direct(Tid(1_771, "@register_tm_clones")),))]))])), Sub(Tid(1_764, "@main"), - Attrs([Attr("c.proto","signed (*)(signed argc, const char** argv)"), -Attr("address","0x714")]), "main", Args([Arg(Tid(1_822, "%0000071e"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("main_argc",Imm(32)), -LOW(32,Var("R0",Imm(64))), In()), Arg(Tid(1_823, "%0000071f"), - Attrs([Attr("c.layout","**[char : 8]"), Attr("c.data","Top:u8 ptr ptr"), -Attr("c.type"," const char**")]), Var("main_argv",Imm(64)), -Var("R1",Imm(64)), Both()), Arg(Tid(1_824, "%00000720"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("main_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(806, "@main"), - Attrs([Attr("address","0x714")]), Phis([]), Defs([Def(Tid(810, "%0000032a"), - Attrs([Attr("address","0x714"), Attr("insn","sub sp, sp, #0x20")]), - Var("R31",Imm(64)), PLUS(Var("R31",Imm(64)),Int(18446744073709551584,64))), -Def(Tid(818, "%00000332"), Attrs([Attr("address","0x718"), -Attr("insn","str w0, [sp, #0xc]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(12,64)),Extract(31,0,Var("R0",Imm(64))),LittleEndian(),32)), -Def(Tid(823, "%00000337"), Attrs([Attr("address","0x71C"), -Attr("insn","adrp x0, #69632")]), Var("R0",Imm(64)), Int(69632,64)), -Def(Tid(829, "%0000033d"), Attrs([Attr("address","0x720"), -Attr("insn","add x0, x0, #0x14")]), Var("R0",Imm(64)), -PLUS(Var("R0",Imm(64)),Int(20,64))), Def(Tid(836, "%00000344"), - Attrs([Attr("address","0x724"), Attr("insn","ldr w1, [sp, #0xc]")]), - Var("R1",Imm(64)), -UNSIGNED(64,Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(12,64)),LittleEndian(),32))), -Def(Tid(844, "%0000034c"), Attrs([Attr("address","0x728"), -Attr("insn","str w1, [x0]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("R0",Imm(64)),Extract(31,0,Var("R1",Imm(64))),LittleEndian(),32)), -Def(Tid(851, "%00000353"), Attrs([Attr("address","0x72C"), -Attr("insn","str wzr, [sp, #0x1c]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(28,64)),Int(0,32),LittleEndian(),32)), -Def(Tid(856, "%00000358"), Attrs([Attr("address","0x730"), -Attr("insn","adrp x0, #69632")]), Var("R0",Imm(64)), Int(69632,64)), -Def(Tid(862, "%0000035e"), Attrs([Attr("address","0x734"), -Attr("insn","add x0, x0, #0x14")]), Var("R0",Imm(64)), -PLUS(Var("R0",Imm(64)),Int(20,64))), Def(Tid(869, "%00000365"), - Attrs([Attr("address","0x738"), Attr("insn","ldr w0, [x0]")]), - Var("R0",Imm(64)), -UNSIGNED(64,Load(Var("mem",Mem(64,8)),Var("R0",Imm(64)),LittleEndian(),32))), -Def(Tid(875, "%0000036b"), Attrs([Attr("address","0x73C"), -Attr("insn","cmp w0, #0x0")]), Var("#4",Imm(32)), -PLUS(Extract(31,0,Var("R0",Imm(64))),Int(4294967295,32))), -Def(Tid(880, "%00000370"), Attrs([Attr("address","0x73C"), -Attr("insn","cmp w0, #0x0")]), Var("VF",Imm(1)), -NEQ(SIGNED(33,PLUS(Var("#4",Imm(32)),Int(1,32))),PLUS(SIGNED(33,Extract(31,0,Var("R0",Imm(64)))),Int(0,33)))), -Def(Tid(885, "%00000375"), Attrs([Attr("address","0x73C"), -Attr("insn","cmp w0, #0x0")]), Var("CF",Imm(1)), -NEQ(UNSIGNED(33,PLUS(Var("#4",Imm(32)),Int(1,32))),PLUS(UNSIGNED(33,Extract(31,0,Var("R0",Imm(64)))),Int(4294967296,33)))), -Def(Tid(889, "%00000379"), Attrs([Attr("address","0x73C"), -Attr("insn","cmp w0, #0x0")]), Var("ZF",Imm(1)), -EQ(PLUS(Var("#4",Imm(32)),Int(1,32)),Int(0,32))), Def(Tid(893, "%0000037d"), - Attrs([Attr("address","0x73C"), Attr("insn","cmp w0, #0x0")]), - Var("NF",Imm(1)), Extract(31,31,PLUS(Var("#4",Imm(32)),Int(1,32))))]), -Jmps([Goto(Tid(899, "%00000383"), Attrs([Attr("address","0x740"), -Attr("insn","b.ne #0xc")]), NEQ(Var("ZF",Imm(1)),Int(1,1)), -Direct(Tid(897, "%00000381"))), Goto(Tid(1_800, "%00000708"), Attrs([]), - Int(1,1), Direct(Tid(1_044, "%00000414")))])), Blk(Tid(1_044, "%00000414"), - Attrs([Attr("address","0x744")]), Phis([]), -Defs([Def(Tid(1_047, "%00000417"), Attrs([Attr("address","0x744"), -Attr("insn","mov w0, #0x3")]), Var("R0",Imm(64)), Int(3,64)), -Def(Tid(1_055, "%0000041f"), Attrs([Attr("address","0x748"), -Attr("insn","str w0, [sp, #0x1c]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(28,64)),Extract(31,0,Var("R0",Imm(64))),LittleEndian(),32))]), -Jmps([Goto(Tid(1_801, "%00000709"), Attrs([]), Int(1,1), -Direct(Tid(897, "%00000381")))])), Blk(Tid(897, "%00000381"), - Attrs([Attr("address","0x74C")]), Phis([]), Defs([Def(Tid(905, "%00000389"), - Attrs([Attr("address","0x74C"), Attr("insn","adrp x0, #69632")]), - Var("R0",Imm(64)), Int(69632,64)), Def(Tid(911, "%0000038f"), - Attrs([Attr("address","0x750"), Attr("insn","add x0, x0, #0x14")]), - Var("R0",Imm(64)), PLUS(Var("R0",Imm(64)),Int(20,64))), -Def(Tid(918, "%00000396"), Attrs([Attr("address","0x754"), -Attr("insn","ldr w0, [x0]")]), Var("R0",Imm(64)), -UNSIGNED(64,Load(Var("mem",Mem(64,8)),Var("R0",Imm(64)),LittleEndian(),32))), -Def(Tid(924, "%0000039c"), Attrs([Attr("address","0x758"), -Attr("insn","cmp w0, #0x1")]), Var("#5",Imm(32)), -PLUS(Extract(31,0,Var("R0",Imm(64))),Int(4294967294,32))), -Def(Tid(929, "%000003a1"), Attrs([Attr("address","0x758"), -Attr("insn","cmp w0, #0x1")]), Var("VF",Imm(1)), -NEQ(SIGNED(33,PLUS(Var("#5",Imm(32)),Int(1,32))),PLUS(SIGNED(33,Extract(31,0,Var("R0",Imm(64)))),Int(8589934591,33)))), -Def(Tid(934, "%000003a6"), Attrs([Attr("address","0x758"), -Attr("insn","cmp w0, #0x1")]), Var("CF",Imm(1)), -NEQ(UNSIGNED(33,PLUS(Var("#5",Imm(32)),Int(1,32))),PLUS(UNSIGNED(33,Extract(31,0,Var("R0",Imm(64)))),Int(4294967295,33)))), -Def(Tid(938, "%000003aa"), Attrs([Attr("address","0x758"), -Attr("insn","cmp w0, #0x1")]), Var("ZF",Imm(1)), -EQ(PLUS(Var("#5",Imm(32)),Int(1,32)),Int(0,32))), Def(Tid(942, "%000003ae"), - Attrs([Attr("address","0x758"), Attr("insn","cmp w0, #0x1")]), - Var("NF",Imm(1)), Extract(31,31,PLUS(Var("#5",Imm(32)),Int(1,32))))]), -Jmps([Goto(Tid(948, "%000003b4"), Attrs([Attr("address","0x75C"), -Attr("insn","b.ne #0xc")]), NEQ(Var("ZF",Imm(1)),Int(1,1)), -Direct(Tid(946, "%000003b2"))), Goto(Tid(1_802, "%0000070a"), Attrs([]), - Int(1,1), Direct(Tid(1_031, "%00000407")))])), Blk(Tid(1_031, "%00000407"), - Attrs([Attr("address","0x760")]), Phis([]), -Defs([Def(Tid(1_034, "%0000040a"), Attrs([Attr("address","0x760"), -Attr("insn","mov w0, #0x5")]), Var("R0",Imm(64)), Int(5,64)), -Def(Tid(1_042, "%00000412"), Attrs([Attr("address","0x764"), -Attr("insn","str w0, [sp, #0x1c]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(28,64)),Extract(31,0,Var("R0",Imm(64))),LittleEndian(),32))]), -Jmps([Goto(Tid(1_803, "%0000070b"), Attrs([]), Int(1,1), -Direct(Tid(946, "%000003b2")))])), Blk(Tid(946, "%000003b2"), - Attrs([Attr("address","0x768")]), Phis([]), Defs([Def(Tid(956, "%000003bc"), - Attrs([Attr("address","0x768"), Attr("insn","ldr w0, [sp, #0x1c]")]), - Var("R0",Imm(64)), -UNSIGNED(64,Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(28,64)),LittleEndian(),32))), -Def(Tid(962, "%000003c2"), Attrs([Attr("address","0x76C"), -Attr("insn","cmp w0, #0x3")]), Var("#6",Imm(32)), -PLUS(Extract(31,0,Var("R0",Imm(64))),Int(4294967292,32))), -Def(Tid(967, "%000003c7"), Attrs([Attr("address","0x76C"), -Attr("insn","cmp w0, #0x3")]), Var("VF",Imm(1)), -NEQ(SIGNED(33,PLUS(Var("#6",Imm(32)),Int(1,32))),PLUS(SIGNED(33,Extract(31,0,Var("R0",Imm(64)))),Int(8589934589,33)))), -Def(Tid(972, "%000003cc"), Attrs([Attr("address","0x76C"), -Attr("insn","cmp w0, #0x3")]), Var("CF",Imm(1)), -NEQ(UNSIGNED(33,PLUS(Var("#6",Imm(32)),Int(1,32))),PLUS(UNSIGNED(33,Extract(31,0,Var("R0",Imm(64)))),Int(4294967293,33)))), -Def(Tid(976, "%000003d0"), Attrs([Attr("address","0x76C"), -Attr("insn","cmp w0, #0x3")]), Var("ZF",Imm(1)), -EQ(PLUS(Var("#6",Imm(32)),Int(1,32)),Int(0,32))), Def(Tid(980, "%000003d4"), - Attrs([Attr("address","0x76C"), Attr("insn","cmp w0, #0x3")]), - Var("NF",Imm(1)), Extract(31,31,PLUS(Var("#6",Imm(32)),Int(1,32))))]), -Jmps([Goto(Tid(986, "%000003da"), Attrs([Attr("address","0x770"), -Attr("insn","b.ne #0x14")]), NEQ(Var("ZF",Imm(1)),Int(1,1)), -Direct(Tid(984, "%000003d8"))), Goto(Tid(1_804, "%0000070c"), Attrs([]), - Int(1,1), Direct(Tid(1_005, "%000003ed")))])), Blk(Tid(1_005, "%000003ed"), - Attrs([Attr("address","0x774")]), Phis([]), -Defs([Def(Tid(1_008, "%000003f0"), Attrs([Attr("address","0x774"), -Attr("insn","adrp x0, #69632")]), Var("R0",Imm(64)), Int(69632,64)), -Def(Tid(1_014, "%000003f6"), Attrs([Attr("address","0x778"), -Attr("insn","add x0, x0, #0x18")]), Var("R0",Imm(64)), -PLUS(Var("R0",Imm(64)),Int(24,64))), Def(Tid(1_021, "%000003fd"), - Attrs([Attr("address","0x77C"), Attr("insn","ldr w0, [x0]")]), - Var("R0",Imm(64)), -UNSIGNED(64,Load(Var("mem",Mem(64,8)),Var("R0",Imm(64)),LittleEndian(),32))), -Def(Tid(1_029, "%00000405"), Attrs([Attr("address","0x780"), -Attr("insn","str w0, [sp, #0x1c]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(28,64)),Extract(31,0,Var("R0",Imm(64))),LittleEndian(),32))]), -Jmps([Goto(Tid(1_805, "%0000070d"), Attrs([]), Int(1,1), -Direct(Tid(984, "%000003d8")))])), Blk(Tid(984, "%000003d8"), - Attrs([Attr("address","0x784")]), Phis([]), Defs([Def(Tid(992, "%000003e0"), - Attrs([Attr("address","0x784"), Attr("insn","mov w0, #0x0")]), - Var("R0",Imm(64)), Int(0,64)), Def(Tid(998, "%000003e6"), - Attrs([Attr("address","0x788"), Attr("insn","add sp, sp, #0x20")]), - Var("R31",Imm(64)), PLUS(Var("R31",Imm(64)),Int(32,64)))]), -Jmps([Call(Tid(1_003, "%000003eb"), Attrs([Attr("address","0x78C"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))]))])), -Sub(Tid(1_771, "@register_tm_clones"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x680")]), - "register_tm_clones", Args([Arg(Tid(1_825, "%00000721"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("register_tm_clones_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(652, "@register_tm_clones"), Attrs([Attr("address","0x680")]), - Phis([]), Defs([Def(Tid(655, "%0000028f"), Attrs([Attr("address","0x680"), -Attr("insn","adrp x0, #69632")]), Var("R0",Imm(64)), Int(69632,64)), -Def(Tid(661, "%00000295"), Attrs([Attr("address","0x684"), -Attr("insn","add x0, x0, #0x10")]), Var("R0",Imm(64)), -PLUS(Var("R0",Imm(64)),Int(16,64))), Def(Tid(666, "%0000029a"), - Attrs([Attr("address","0x688"), Attr("insn","adrp x1, #69632")]), - Var("R1",Imm(64)), Int(69632,64)), Def(Tid(672, "%000002a0"), - Attrs([Attr("address","0x68C"), Attr("insn","add x1, x1, #0x10")]), - Var("R1",Imm(64)), PLUS(Var("R1",Imm(64)),Int(16,64))), -Def(Tid(679, "%000002a7"), Attrs([Attr("address","0x690"), -Attr("insn","sub x1, x1, x0")]), Var("R1",Imm(64)), -PLUS(PLUS(Var("R1",Imm(64)),NOT(Var("R0",Imm(64)))),Int(1,64))), -Def(Tid(685, "%000002ad"), Attrs([Attr("address","0x694"), -Attr("insn","lsr x2, x1, #63")]), Var("R2",Imm(64)), -Concat(Int(0,63),Extract(63,63,Var("R1",Imm(64))))), -Def(Tid(692, "%000002b4"), Attrs([Attr("address","0x698"), -Attr("insn","add x1, x2, x1, asr #3")]), Var("R1",Imm(64)), -PLUS(Var("R2",Imm(64)),ARSHIFT(Var("R1",Imm(64)),Int(3,3)))), -Def(Tid(698, "%000002ba"), Attrs([Attr("address","0x69C"), -Attr("insn","asr x1, x1, #1")]), Var("R1",Imm(64)), -SIGNED(64,Extract(63,1,Var("R1",Imm(64)))))]), -Jmps([Goto(Tid(704, "%000002c0"), Attrs([Attr("address","0x6A0"), -Attr("insn","cbz x1, #0x18")]), EQ(Var("R1",Imm(64)),Int(0,64)), -Direct(Tid(702, "%000002be"))), Goto(Tid(1_806, "%0000070e"), Attrs([]), - Int(1,1), Direct(Tid(1_116, "%0000045c")))])), Blk(Tid(1_116, "%0000045c"), - Attrs([Attr("address","0x6A4")]), Phis([]), -Defs([Def(Tid(1_119, "%0000045f"), Attrs([Attr("address","0x6A4"), -Attr("insn","adrp x2, #65536")]), Var("R2",Imm(64)), Int(65536,64)), -Def(Tid(1_126, "%00000466"), Attrs([Attr("address","0x6A8"), -Attr("insn","ldr x2, [x2, #0xff8]")]), Var("R2",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R2",Imm(64)),Int(4088,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(1_131, "%0000046b"), Attrs([Attr("address","0x6AC"), -Attr("insn","cbz x2, #0xc")]), EQ(Var("R2",Imm(64)),Int(0,64)), -Direct(Tid(702, "%000002be"))), Goto(Tid(1_807, "%0000070f"), Attrs([]), - Int(1,1), Direct(Tid(1_135, "%0000046f")))])), Blk(Tid(702, "%000002be"), - Attrs([Attr("address","0x6B8")]), Phis([]), Defs([]), -Jmps([Call(Tid(710, "%000002c6"), Attrs([Attr("address","0x6B8"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))])), -Blk(Tid(1_135, "%0000046f"), Attrs([Attr("address","0x6B0")]), Phis([]), -Defs([Def(Tid(1_139, "%00000473"), Attrs([Attr("address","0x6B0"), -Attr("insn","mov x16, x2")]), Var("R16",Imm(64)), Var("R2",Imm(64)))]), -Jmps([Call(Tid(1_144, "%00000478"), Attrs([Attr("address","0x6B4"), -Attr("insn","br x16")]), Int(1,1), -(Indirect(Var("R16",Imm(64))),))]))]))]))) \ No newline at end of file diff --git a/src/test/incorrect/nestedifglobal/gcc/nestedifglobal.bir b/src/test/incorrect/nestedifglobal/gcc/nestedifglobal.bir deleted file mode 100644 index 042f3a819..000000000 --- a/src/test/incorrect/nestedifglobal/gcc/nestedifglobal.bir +++ /dev/null @@ -1,283 +0,0 @@ -00000710: program -000006d2: sub __cxa_finalize(__cxa_finalize_result) -00000711: __cxa_finalize_result :: out u32 = low:32[R0] - -00000458: -00000550: R16 := 0x10000 -00000557: R17 := mem[R16 + 0xFB8, el]:u64 -0000055d: R16 := R16 + 0xFB8 -00000562: call R17 with noreturn - -000006d3: sub __do_global_dtors_aux(__do_global_dtors_aux_result) -00000712: __do_global_dtors_aux_result :: out u32 = low:32[R0] - -000002ca: -000002ce: #3 := R31 - 0x20 -000002d4: mem := mem with [#3, el]:u64 <- R29 -000002da: mem := mem with [#3 + 8, el]:u64 <- R30 -000002de: R31 := #3 -000002e4: R29 := R31 -000002ec: mem := mem with [R31 + 0x10, el]:u64 <- R19 -000002f1: R19 := 0x11000 -000002f8: R0 := pad:64[mem[R19 + 0x10]] -000002ff: when 31:0[R0] <> 0 goto %000002fd -00000700: goto %00000421 - -00000421: -00000424: R0 := 0x10000 -0000042b: R0 := mem[R0 + 0xFE0, el]:u64 -00000431: when R0 = 0 goto %0000042f -00000701: goto %00000448 - -00000448: -0000044b: R0 := 0x11000 -00000452: R0 := mem[R0 + 8, el]:u64 -00000457: R30 := 0x6F0 -0000045a: call @__cxa_finalize with return %0000042f - -0000042f: -00000437: R30 := 0x6F4 -00000439: call @deregister_tm_clones with return %0000043b - -0000043b: -0000043e: R0 := 1 -00000446: mem := mem with [R19 + 0x10] <- 7:0[R0] -00000702: goto %000002fd - -000002fd: -00000307: R19 := mem[R31 + 0x10, el]:u64 -0000030e: R29 := mem[R31, el]:u64 -00000313: R30 := mem[R31 + 8, el]:u64 -00000317: R31 := R31 + 0x20 -0000031c: call R30 with noreturn - -000006d7: sub __libc_start_main(__libc_start_main_main, __libc_start_main_arg2, __libc_start_main_arg3, __libc_start_main_auxv, __libc_start_main_result) -00000713: __libc_start_main_main :: in u64 = R0 -00000714: __libc_start_main_arg2 :: in u32 = low:32[R1] -00000715: __libc_start_main_arg3 :: in out u64 = R2 -00000716: __libc_start_main_auxv :: in out u64 = R3 -00000717: __libc_start_main_result :: out u32 = low:32[R0] - -00000223: -0000053a: R16 := 0x10000 -00000541: R17 := mem[R16 + 0xFB0, el]:u64 -00000547: R16 := R16 + 0xFB0 -0000054c: call R17 with noreturn - -000006d8: sub _fini(_fini_result) -00000718: _fini_result :: out u32 = low:32[R0] - -0000001f: -00000025: #0 := R31 - 0x10 -0000002b: mem := mem with [#0, el]:u64 <- R29 -00000031: mem := mem with [#0 + 8, el]:u64 <- R30 -00000035: R31 := #0 -0000003b: R29 := R31 -00000042: R29 := mem[R31, el]:u64 -00000047: R30 := mem[R31 + 8, el]:u64 -0000004b: R31 := R31 + 0x10 -00000050: call R30 with noreturn - -000006d9: sub _init(_init_result) -00000719: _init_result :: out u32 = low:32[R0] - -00000615: -0000061b: #8 := R31 - 0x10 -00000621: mem := mem with [#8, el]:u64 <- R29 -00000627: mem := mem with [#8 + 8, el]:u64 <- R30 -0000062b: R31 := #8 -00000631: R29 := R31 -00000636: R30 := 0x590 -00000638: call @call_weak_fn with return %0000063a - -0000063a: -0000063f: R29 := mem[R31, el]:u64 -00000644: R30 := mem[R31 + 8, el]:u64 -00000648: R31 := R31 + 0x10 -0000064d: call R30 with noreturn - -000006da: sub _start(_start_result) -0000071a: _start_result :: out u32 = low:32[R0] - -000001e4: -000001e9: R29 := 0 -000001ee: R30 := 0 -000001f4: R5 := R0 -000001fb: R1 := mem[R31, el]:u64 -00000201: R2 := R31 + 8 -00000207: R6 := R31 -0000020c: R0 := 0x10000 -00000213: R0 := mem[R0 + 0xFF0, el]:u64 -00000218: R3 := 0 -0000021d: R4 := 0 -00000222: R30 := 0x630 -00000225: call @__libc_start_main with return %00000227 - -00000227: -0000022a: R30 := 0x634 -0000022d: call @abort with return %00000703 - -00000703: -00000704: call @call_weak_fn with noreturn - -000006dd: sub abort() - - -0000022b: -0000057c: R16 := 0x10000 -00000583: R17 := mem[R16 + 0xFC8, el]:u64 -00000589: R16 := R16 + 0xFC8 -0000058e: call R17 with noreturn - -000006de: sub call_weak_fn(call_weak_fn_result) -0000071b: call_weak_fn_result :: out u32 = low:32[R0] - -0000022f: -00000232: R0 := 0x10000 -00000239: R0 := mem[R0 + 0xFE8, el]:u64 -0000023f: when R0 = 0 goto %0000023d -00000705: goto %00000498 - -0000023d: -00000245: call R30 with noreturn - -00000498: -0000049b: goto @__gmon_start__ - -00000499: -00000566: R16 := 0x10000 -0000056d: R17 := mem[R16 + 0xFC0, el]:u64 -00000573: R16 := R16 + 0xFC0 -00000578: call R17 with noreturn - -000006e0: sub deregister_tm_clones(deregister_tm_clones_result) -0000071c: deregister_tm_clones_result :: out u32 = low:32[R0] - -0000024b: -0000024e: R0 := 0x11000 -00000254: R0 := R0 + 0x10 -00000259: R1 := 0x11000 -0000025f: R1 := R1 + 0x10 -00000265: #1 := ~R0 -0000026a: #2 := R1 + ~R0 -00000270: VF := extend:65[#2 + 1] <> extend:65[R1] + extend:65[#1] + 1 -00000276: CF := pad:65[#2 + 1] <> pad:65[R1] + pad:65[#1] + 1 -0000027a: ZF := #2 + 1 = 0 -0000027e: NF := 63:63[#2 + 1] -00000284: when ZF goto %00000282 -00000706: goto %0000047a - -0000047a: -0000047d: R1 := 0x10000 -00000484: R1 := mem[R1 + 0xFD8, el]:u64 -00000489: when R1 = 0 goto %00000282 -00000707: goto %0000048d - -00000282: -0000028a: call R30 with noreturn - -0000048d: -00000491: R16 := R1 -00000496: call R16 with noreturn - -000006e3: sub frame_dummy(frame_dummy_result) -0000071d: frame_dummy_result :: out u32 = low:32[R0] - -00000322: -00000324: call @register_tm_clones with noreturn - -000006e4: sub main(main_argc, main_argv, main_result) -0000071e: main_argc :: in u32 = low:32[R0] -0000071f: main_argv :: in out u64 = R1 -00000720: main_result :: out u32 = low:32[R0] - -00000326: -0000032a: R31 := R31 - 0x20 -00000332: mem := mem with [R31 + 0xC, el]:u32 <- 31:0[R0] -00000337: R0 := 0x11000 -0000033d: R0 := R0 + 0x14 -00000344: R1 := pad:64[mem[R31 + 0xC, el]:u32] -0000034c: mem := mem with [R0, el]:u32 <- 31:0[R1] -00000353: mem := mem with [R31 + 0x1C, el]:u32 <- 0 -00000358: R0 := 0x11000 -0000035e: R0 := R0 + 0x14 -00000365: R0 := pad:64[mem[R0, el]:u32] -0000036b: #4 := 31:0[R0] - 1 -00000370: VF := extend:33[#4 + 1] <> extend:33[31:0[R0]] + 0 -00000375: CF := pad:33[#4 + 1] <> pad:33[31:0[R0]] - 0x100000000 -00000379: ZF := #4 + 1 = 0 -0000037d: NF := 31:31[#4 + 1] -00000383: when ZF <> 1 goto %00000381 -00000708: goto %00000414 - -00000414: -00000417: R0 := 3 -0000041f: mem := mem with [R31 + 0x1C, el]:u32 <- 31:0[R0] -00000709: goto %00000381 - -00000381: -00000389: R0 := 0x11000 -0000038f: R0 := R0 + 0x14 -00000396: R0 := pad:64[mem[R0, el]:u32] -0000039c: #5 := 31:0[R0] - 2 -000003a1: VF := extend:33[#5 + 1] <> extend:33[31:0[R0]] - 1 -000003a6: CF := pad:33[#5 + 1] <> pad:33[31:0[R0]] + 0xFFFFFFFF -000003aa: ZF := #5 + 1 = 0 -000003ae: NF := 31:31[#5 + 1] -000003b4: when ZF <> 1 goto %000003b2 -0000070a: goto %00000407 - -00000407: -0000040a: R0 := 5 -00000412: mem := mem with [R31 + 0x1C, el]:u32 <- 31:0[R0] -0000070b: goto %000003b2 - -000003b2: -000003bc: R0 := pad:64[mem[R31 + 0x1C, el]:u32] -000003c2: #6 := 31:0[R0] - 4 -000003c7: VF := extend:33[#6 + 1] <> extend:33[31:0[R0]] - 3 -000003cc: CF := pad:33[#6 + 1] <> pad:33[31:0[R0]] + 0xFFFFFFFD -000003d0: ZF := #6 + 1 = 0 -000003d4: NF := 31:31[#6 + 1] -000003da: when ZF <> 1 goto %000003d8 -0000070c: goto %000003ed - -000003ed: -000003f0: R0 := 0x11000 -000003f6: R0 := R0 + 0x18 -000003fd: R0 := pad:64[mem[R0, el]:u32] -00000405: mem := mem with [R31 + 0x1C, el]:u32 <- 31:0[R0] -0000070d: goto %000003d8 - -000003d8: -000003e0: R0 := 0 -000003e6: R31 := R31 + 0x20 -000003eb: call R30 with noreturn - -000006eb: sub register_tm_clones(register_tm_clones_result) -00000721: register_tm_clones_result :: out u32 = low:32[R0] - -0000028c: -0000028f: R0 := 0x11000 -00000295: R0 := R0 + 0x10 -0000029a: R1 := 0x11000 -000002a0: R1 := R1 + 0x10 -000002a7: R1 := R1 + ~R0 + 1 -000002ad: R2 := 0.63:63[R1] -000002b4: R1 := R2 + (R1 ~>> 3) -000002ba: R1 := extend:64[63:1[R1]] -000002c0: when R1 = 0 goto %000002be -0000070e: goto %0000045c - -0000045c: -0000045f: R2 := 0x10000 -00000466: R2 := mem[R2 + 0xFF8, el]:u64 -0000046b: when R2 = 0 goto %000002be -0000070f: goto %0000046f - -000002be: -000002c6: call R30 with noreturn - -0000046f: -00000473: R16 := R2 -00000478: call R16 with noreturn diff --git a/src/test/incorrect/nestedifglobal/gcc/nestedifglobal.expected b/src/test/incorrect/nestedifglobal/gcc/nestedifglobal.expected index f2a65c402..5543b12f0 100644 --- a/src/test/incorrect/nestedifglobal/gcc/nestedifglobal.expected +++ b/src/test/incorrect/nestedifglobal/gcc/nestedifglobal.expected @@ -76,7 +76,7 @@ procedure {:extern} rely_reflexive(); procedure {:extern} guarantee_reflexive(); modifies Gamma_mem, mem; -procedure main_1812(); +procedure main(); modifies CF, Gamma_CF, Gamma_NF, Gamma_R0, Gamma_R1, Gamma_R31, Gamma_VF, Gamma_ZF, Gamma_mem, Gamma_stack, NF, R0, R1, R31, VF, ZF, mem, stack; free requires (memory_load64_le(mem, 69632bv64) == 0bv64); free requires (memory_load64_le(mem, 69640bv64) == 69640bv64); @@ -93,24 +93,24 @@ procedure main_1812(); free ensures (memory_load64_le(mem, 69616bv64) == 1812bv64); free ensures (memory_load64_le(mem, 69640bv64) == 69640bv64); -implementation main_1812() +implementation main() { var #4: bv32; var #5: bv32; var #6: bv32; + var $load$18: bv32; + var $load$19: bv32; + var $load$20: bv32; + var $load$21: bv32; + var $load$22: bv32; var Gamma_#4: bool; var Gamma_#5: bool; var Gamma_#6: bool; - var Gamma_load18: bool; - var Gamma_load19: bool; - var Gamma_load20: bool; - var Gamma_load21: bool; - var Gamma_load22: bool; - var load18: bv32; - var load19: bv32; - var load20: bv32; - var load21: bv32; - var load22: bv32; + var Gamma_$load$18: bool; + var Gamma_$load$19: bool; + var Gamma_$load$20: bool; + var Gamma_$load$21: bool; + var Gamma_$load$22: bool; lmain: assume {:captureState "lmain"} true; R31, Gamma_R31 := bvadd64(R31, 18446744073709551584bv64), Gamma_R31; @@ -118,8 +118,8 @@ implementation main_1812() assume {:captureState "%00000332"} true; R0, Gamma_R0 := 69632bv64, true; R0, Gamma_R0 := bvadd64(R0, 20bv64), Gamma_R0; - load18, Gamma_load18 := memory_load32_le(stack, bvadd64(R31, 12bv64)), gamma_load32(Gamma_stack, bvadd64(R31, 12bv64)); - R1, Gamma_R1 := zero_extend32_32(load18), Gamma_load18; + $load$18, Gamma_$load$18 := memory_load32_le(stack, bvadd64(R31, 12bv64)), gamma_load32(Gamma_stack, bvadd64(R31, 12bv64)); + R1, Gamma_R1 := zero_extend32_32($load$18), Gamma_$load$18; call rely(); assert (L(mem, R0) ==> Gamma_R1); mem, Gamma_mem := memory_store32_le(mem, R0, R1[32:0]), gamma_store32(Gamma_mem, R0, Gamma_R1); @@ -129,8 +129,8 @@ implementation main_1812() R0, Gamma_R0 := 69632bv64, true; R0, Gamma_R0 := bvadd64(R0, 20bv64), Gamma_R0; call rely(); - load19, Gamma_load19 := memory_load32_le(mem, R0), (gamma_load32(Gamma_mem, R0) || L(mem, R0)); - R0, Gamma_R0 := zero_extend32_32(load19), Gamma_load19; + $load$19, Gamma_$load$19 := memory_load32_le(mem, R0), (gamma_load32(Gamma_mem, R0) || L(mem, R0)); + R0, Gamma_R0 := zero_extend32_32($load$19), Gamma_$load$19; #4, Gamma_#4 := bvadd32(R0[32:0], 4294967295bv32), Gamma_R0; VF, Gamma_VF := bvnot1(bvcomp33(sign_extend1_32(bvadd32(#4, 1bv32)), bvadd33(sign_extend1_32(R0[32:0]), 0bv33))), (Gamma_R0 && Gamma_#4); CF, Gamma_CF := bvnot1(bvcomp33(zero_extend1_32(bvadd32(#4, 1bv32)), bvadd33(zero_extend1_32(R0[32:0]), 4294967296bv33))), (Gamma_R0 && Gamma_#4); @@ -138,27 +138,19 @@ implementation main_1812() NF, Gamma_NF := bvadd32(#4, 1bv32)[32:31], Gamma_#4; assert Gamma_ZF; goto lmain_goto_l00000381, lmain_goto_l00000414; - lmain_goto_l00000414: - assume {:captureState "lmain_goto_l00000414"} true; - assume (bvnot1(bvcomp1(ZF, 1bv1)) == 0bv1); + l00000414: + assume {:captureState "l00000414"} true; R0, Gamma_R0 := 3bv64, true; stack, Gamma_stack := memory_store32_le(stack, bvadd64(R31, 28bv64), R0[32:0]), gamma_store32(Gamma_stack, bvadd64(R31, 28bv64), Gamma_R0); assume {:captureState "%0000041f"} true; - goto l00000414; - l00000414: - assume {:captureState "l00000414"} true; - goto l00000381; - lmain_goto_l00000381: - assume {:captureState "lmain_goto_l00000381"} true; - assume (bvnot1(bvcomp1(ZF, 1bv1)) != 0bv1); goto l00000381; l00000381: assume {:captureState "l00000381"} true; R0, Gamma_R0 := 69632bv64, true; R0, Gamma_R0 := bvadd64(R0, 20bv64), Gamma_R0; call rely(); - load20, Gamma_load20 := memory_load32_le(mem, R0), (gamma_load32(Gamma_mem, R0) || L(mem, R0)); - R0, Gamma_R0 := zero_extend32_32(load20), Gamma_load20; + $load$20, Gamma_$load$20 := memory_load32_le(mem, R0), (gamma_load32(Gamma_mem, R0) || L(mem, R0)); + R0, Gamma_R0 := zero_extend32_32($load$20), Gamma_$load$20; #5, Gamma_#5 := bvadd32(R0[32:0], 4294967294bv32), Gamma_R0; VF, Gamma_VF := bvnot1(bvcomp33(sign_extend1_32(bvadd32(#5, 1bv32)), bvadd33(sign_extend1_32(R0[32:0]), 8589934591bv33))), (Gamma_R0 && Gamma_#5); CF, Gamma_CF := bvnot1(bvcomp33(zero_extend1_32(bvadd32(#5, 1bv32)), bvadd33(zero_extend1_32(R0[32:0]), 4294967295bv33))), (Gamma_R0 && Gamma_#5); @@ -166,24 +158,16 @@ implementation main_1812() NF, Gamma_NF := bvadd32(#5, 1bv32)[32:31], Gamma_#5; assert Gamma_ZF; goto l00000381_goto_l000003b2, l00000381_goto_l00000407; - l00000381_goto_l00000407: - assume {:captureState "l00000381_goto_l00000407"} true; - assume (bvnot1(bvcomp1(ZF, 1bv1)) == 0bv1); + l00000407: + assume {:captureState "l00000407"} true; R0, Gamma_R0 := 5bv64, true; stack, Gamma_stack := memory_store32_le(stack, bvadd64(R31, 28bv64), R0[32:0]), gamma_store32(Gamma_stack, bvadd64(R31, 28bv64), Gamma_R0); assume {:captureState "%00000412"} true; - goto l00000407; - l00000407: - assume {:captureState "l00000407"} true; - goto l000003b2; - l00000381_goto_l000003b2: - assume {:captureState "l00000381_goto_l000003b2"} true; - assume (bvnot1(bvcomp1(ZF, 1bv1)) != 0bv1); goto l000003b2; l000003b2: assume {:captureState "l000003b2"} true; - load21, Gamma_load21 := memory_load32_le(stack, bvadd64(R31, 28bv64)), gamma_load32(Gamma_stack, bvadd64(R31, 28bv64)); - R0, Gamma_R0 := zero_extend32_32(load21), Gamma_load21; + $load$21, Gamma_$load$21 := memory_load32_le(stack, bvadd64(R31, 28bv64)), gamma_load32(Gamma_stack, bvadd64(R31, 28bv64)); + R0, Gamma_R0 := zero_extend32_32($load$21), Gamma_$load$21; #6, Gamma_#6 := bvadd32(R0[32:0], 4294967292bv32), Gamma_R0; VF, Gamma_VF := bvnot1(bvcomp33(sign_extend1_32(bvadd32(#6, 1bv32)), bvadd33(sign_extend1_32(R0[32:0]), 8589934589bv33))), (Gamma_R0 && Gamma_#6); CF, Gamma_CF := bvnot1(bvcomp33(zero_extend1_32(bvadd32(#6, 1bv32)), bvadd33(zero_extend1_32(R0[32:0]), 4294967293bv33))), (Gamma_R0 && Gamma_#6); @@ -191,31 +175,47 @@ implementation main_1812() NF, Gamma_NF := bvadd32(#6, 1bv32)[32:31], Gamma_#6; assert Gamma_ZF; goto l000003b2_goto_l000003d8, l000003b2_goto_l000003ed; - l000003b2_goto_l000003ed: - assume {:captureState "l000003b2_goto_l000003ed"} true; - assume (bvnot1(bvcomp1(ZF, 1bv1)) == 0bv1); + l000003ed: + assume {:captureState "l000003ed"} true; R0, Gamma_R0 := 69632bv64, true; R0, Gamma_R0 := bvadd64(R0, 24bv64), Gamma_R0; call rely(); - load22, Gamma_load22 := memory_load32_le(mem, R0), (gamma_load32(Gamma_mem, R0) || L(mem, R0)); - R0, Gamma_R0 := zero_extend32_32(load22), Gamma_load22; + $load$22, Gamma_$load$22 := memory_load32_le(mem, R0), (gamma_load32(Gamma_mem, R0) || L(mem, R0)); + R0, Gamma_R0 := zero_extend32_32($load$22), Gamma_$load$22; stack, Gamma_stack := memory_store32_le(stack, bvadd64(R31, 28bv64), R0[32:0]), gamma_store32(Gamma_stack, bvadd64(R31, 28bv64), Gamma_R0); assume {:captureState "%00000405"} true; - goto l000003ed; - l000003ed: - assume {:captureState "l000003ed"} true; - goto l000003d8; - l000003b2_goto_l000003d8: - assume {:captureState "l000003b2_goto_l000003d8"} true; - assume (bvnot1(bvcomp1(ZF, 1bv1)) != 0bv1); goto l000003d8; l000003d8: assume {:captureState "l000003d8"} true; R0, Gamma_R0 := 0bv64, true; R31, Gamma_R31 := bvadd64(R31, 32bv64), Gamma_R31; - goto main_1812_basil_return; - main_1812_basil_return: - assume {:captureState "main_1812_basil_return"} true; + goto main_basil_return; + lmain_goto_l00000381: + assume {:captureState "lmain_goto_l00000381"} true; + assume (bvnot1(bvcomp1(ZF, 1bv1)) != 0bv1); + goto l00000381; + lmain_goto_l00000414: + assume {:captureState "lmain_goto_l00000414"} true; + assume (bvnot1(bvcomp1(ZF, 1bv1)) == 0bv1); + goto l00000414; + l00000381_goto_l000003b2: + assume {:captureState "l00000381_goto_l000003b2"} true; + assume (bvnot1(bvcomp1(ZF, 1bv1)) != 0bv1); + goto l000003b2; + l00000381_goto_l00000407: + assume {:captureState "l00000381_goto_l00000407"} true; + assume (bvnot1(bvcomp1(ZF, 1bv1)) == 0bv1); + goto l00000407; + l000003b2_goto_l000003d8: + assume {:captureState "l000003b2_goto_l000003d8"} true; + assume (bvnot1(bvcomp1(ZF, 1bv1)) != 0bv1); + goto l000003d8; + l000003b2_goto_l000003ed: + assume {:captureState "l000003b2_goto_l000003ed"} true; + assume (bvnot1(bvcomp1(ZF, 1bv1)) == 0bv1); + goto l000003ed; + main_basil_return: + assume {:captureState "main_basil_return"} true; return; } diff --git a/src/test/incorrect/nestedifglobal/gcc/nestedifglobal.gts b/src/test/incorrect/nestedifglobal/gcc/nestedifglobal.gts deleted file mode 100644 index 7734fcc6e..000000000 Binary files a/src/test/incorrect/nestedifglobal/gcc/nestedifglobal.gts and /dev/null differ diff --git a/src/test/incorrect/nestedifglobal/gcc/nestedifglobal.md5sum b/src/test/incorrect/nestedifglobal/gcc/nestedifglobal.md5sum new file mode 100644 index 000000000..c94689607 --- /dev/null +++ b/src/test/incorrect/nestedifglobal/gcc/nestedifglobal.md5sum @@ -0,0 +1,5 @@ +b0de489fabba537f5259cc9f416c19e1 incorrect/nestedifglobal/gcc/a.out +fe7a91ba10c07587137279426e53aca5 incorrect/nestedifglobal/gcc/nestedifglobal.adt +2ad9c00ac31d36103429787eeb5bd3a0 incorrect/nestedifglobal/gcc/nestedifglobal.bir +6dee997a2830cbabaff7d51283042253 incorrect/nestedifglobal/gcc/nestedifglobal.relf +5f9b137d56c560b201f66bff2cd5da47 incorrect/nestedifglobal/gcc/nestedifglobal.gts diff --git a/src/test/incorrect/nestedifglobal/gcc/nestedifglobal.relf b/src/test/incorrect/nestedifglobal/gcc/nestedifglobal.relf deleted file mode 100644 index 6260b3b5b..000000000 --- a/src/test/incorrect/nestedifglobal/gcc/nestedifglobal.relf +++ /dev/null @@ -1,122 +0,0 @@ - -Relocation section '.rela.dyn' at offset 0x460 contains 8 entries: - Offset Info Type Symbol's Value Symbol's Name + Addend -0000000000010d98 0000000000000403 R_AARCH64_RELATIVE 710 -0000000000010da0 0000000000000403 R_AARCH64_RELATIVE 6c0 -0000000000010ff0 0000000000000403 R_AARCH64_RELATIVE 714 -0000000000011008 0000000000000403 R_AARCH64_RELATIVE 11008 -0000000000010fd8 0000000400000401 R_AARCH64_GLOB_DAT 0000000000000000 _ITM_deregisterTMCloneTable + 0 -0000000000010fe0 0000000500000401 R_AARCH64_GLOB_DAT 0000000000000000 __cxa_finalize@GLIBC_2.17 + 0 -0000000000010fe8 0000000600000401 R_AARCH64_GLOB_DAT 0000000000000000 __gmon_start__ + 0 -0000000000010ff8 0000000800000401 R_AARCH64_GLOB_DAT 0000000000000000 _ITM_registerTMCloneTable + 0 - -Relocation section '.rela.plt' at offset 0x520 contains 4 entries: - Offset Info Type Symbol's Value Symbol's Name + Addend -0000000000010fb0 0000000300000402 R_AARCH64_JUMP_SLOT 0000000000000000 __libc_start_main@GLIBC_2.34 + 0 -0000000000010fb8 0000000500000402 R_AARCH64_JUMP_SLOT 0000000000000000 __cxa_finalize@GLIBC_2.17 + 0 -0000000000010fc0 0000000600000402 R_AARCH64_JUMP_SLOT 0000000000000000 __gmon_start__ + 0 -0000000000010fc8 0000000700000402 R_AARCH64_JUMP_SLOT 0000000000000000 abort@GLIBC_2.17 + 0 - -Symbol table '.dynsym' contains 9 entries: - Num: Value Size Type Bind Vis Ndx Name - 0: 0000000000000000 0 NOTYPE LOCAL DEFAULT UND - 1: 0000000000000580 0 SECTION LOCAL DEFAULT 11 .init - 2: 0000000000011000 0 SECTION LOCAL DEFAULT 22 .data - 3: 0000000000000000 0 FUNC GLOBAL DEFAULT UND __libc_start_main@GLIBC_2.34 (2) - 4: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_deregisterTMCloneTable - 5: 0000000000000000 0 FUNC WEAK DEFAULT UND __cxa_finalize@GLIBC_2.17 (3) - 6: 0000000000000000 0 NOTYPE WEAK DEFAULT UND __gmon_start__ - 7: 0000000000000000 0 FUNC GLOBAL DEFAULT UND abort@GLIBC_2.17 (3) - 8: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_registerTMCloneTable - -Symbol table '.symtab' contains 89 entries: - Num: Value Size Type Bind Vis Ndx Name - 0: 0000000000000000 0 NOTYPE LOCAL DEFAULT UND - 1: 0000000000000238 0 SECTION LOCAL DEFAULT 1 .interp - 2: 0000000000000254 0 SECTION LOCAL DEFAULT 2 .note.gnu.build-id - 3: 0000000000000278 0 SECTION LOCAL DEFAULT 3 .note.ABI-tag - 4: 0000000000000298 0 SECTION LOCAL DEFAULT 4 .gnu.hash - 5: 00000000000002b8 0 SECTION LOCAL DEFAULT 5 .dynsym - 6: 0000000000000390 0 SECTION LOCAL DEFAULT 6 .dynstr - 7: 000000000000041e 0 SECTION LOCAL DEFAULT 7 .gnu.version - 8: 0000000000000430 0 SECTION LOCAL DEFAULT 8 .gnu.version_r - 9: 0000000000000460 0 SECTION LOCAL DEFAULT 9 .rela.dyn - 10: 0000000000000520 0 SECTION LOCAL DEFAULT 10 .rela.plt - 11: 0000000000000580 0 SECTION LOCAL DEFAULT 11 .init - 12: 00000000000005a0 0 SECTION LOCAL DEFAULT 12 .plt - 13: 0000000000000600 0 SECTION LOCAL DEFAULT 13 .text - 14: 0000000000000790 0 SECTION LOCAL DEFAULT 14 .fini - 15: 00000000000007a4 0 SECTION LOCAL DEFAULT 15 .rodata - 16: 00000000000007a8 0 SECTION LOCAL DEFAULT 16 .eh_frame_hdr - 17: 00000000000007e8 0 SECTION LOCAL DEFAULT 17 .eh_frame - 18: 0000000000010d98 0 SECTION LOCAL DEFAULT 18 .init_array - 19: 0000000000010da0 0 SECTION LOCAL DEFAULT 19 .fini_array - 20: 0000000000010da8 0 SECTION LOCAL DEFAULT 20 .dynamic - 21: 0000000000010f98 0 SECTION LOCAL DEFAULT 21 .got - 22: 0000000000011000 0 SECTION LOCAL DEFAULT 22 .data - 23: 0000000000011010 0 SECTION LOCAL DEFAULT 23 .bss - 24: 0000000000000000 0 SECTION LOCAL DEFAULT 24 .comment - 25: 0000000000000000 0 FILE LOCAL DEFAULT ABS Scrt1.o - 26: 0000000000000278 0 NOTYPE LOCAL DEFAULT 3 $d - 27: 0000000000000278 32 OBJECT LOCAL DEFAULT 3 __abi_tag - 28: 0000000000000600 0 NOTYPE LOCAL DEFAULT 13 $x - 29: 00000000000007fc 0 NOTYPE LOCAL DEFAULT 17 $d - 30: 00000000000007a4 0 NOTYPE LOCAL DEFAULT 15 $d - 31: 0000000000000000 0 FILE LOCAL DEFAULT ABS crti.o - 32: 0000000000000634 0 NOTYPE LOCAL DEFAULT 13 $x - 33: 0000000000000634 20 FUNC LOCAL DEFAULT 13 call_weak_fn - 34: 0000000000000580 0 NOTYPE LOCAL DEFAULT 11 $x - 35: 0000000000000790 0 NOTYPE LOCAL DEFAULT 14 $x - 36: 0000000000000000 0 FILE LOCAL DEFAULT ABS crtn.o - 37: 0000000000000590 0 NOTYPE LOCAL DEFAULT 11 $x - 38: 000000000000079c 0 NOTYPE LOCAL DEFAULT 14 $x - 39: 0000000000000000 0 FILE LOCAL DEFAULT ABS crtstuff.c - 40: 0000000000000650 0 NOTYPE LOCAL DEFAULT 13 $x - 41: 0000000000000650 0 FUNC LOCAL DEFAULT 13 deregister_tm_clones - 42: 0000000000000680 0 FUNC LOCAL DEFAULT 13 register_tm_clones - 43: 0000000000011008 0 NOTYPE LOCAL DEFAULT 22 $d - 44: 00000000000006c0 0 FUNC LOCAL DEFAULT 13 __do_global_dtors_aux - 45: 0000000000011010 1 OBJECT LOCAL DEFAULT 23 completed.0 - 46: 0000000000010da0 0 NOTYPE LOCAL DEFAULT 19 $d - 47: 0000000000010da0 0 OBJECT LOCAL DEFAULT 19 __do_global_dtors_aux_fini_array_entry - 48: 0000000000000710 0 FUNC LOCAL DEFAULT 13 frame_dummy - 49: 0000000000010d98 0 NOTYPE LOCAL DEFAULT 18 $d - 50: 0000000000010d98 0 OBJECT LOCAL DEFAULT 18 __frame_dummy_init_array_entry - 51: 0000000000000810 0 NOTYPE LOCAL DEFAULT 17 $d - 52: 0000000000011010 0 NOTYPE LOCAL DEFAULT 23 $d - 53: 0000000000000000 0 FILE LOCAL DEFAULT ABS nestedifglobal.c - 54: 0000000000011014 0 NOTYPE LOCAL DEFAULT 23 $d - 55: 0000000000000714 0 NOTYPE LOCAL DEFAULT 13 $x - 56: 0000000000000870 0 NOTYPE LOCAL DEFAULT 17 $d - 57: 0000000000000000 0 FILE LOCAL DEFAULT ABS crtstuff.c - 58: 0000000000000888 0 NOTYPE LOCAL DEFAULT 17 $d - 59: 0000000000000888 0 OBJECT LOCAL DEFAULT 17 __FRAME_END__ - 60: 0000000000000000 0 FILE LOCAL DEFAULT ABS - 61: 0000000000010da8 0 OBJECT LOCAL DEFAULT ABS _DYNAMIC - 62: 00000000000007a8 0 NOTYPE LOCAL DEFAULT 16 __GNU_EH_FRAME_HDR - 63: 0000000000010fd0 0 OBJECT LOCAL DEFAULT ABS _GLOBAL_OFFSET_TABLE_ - 64: 00000000000005a0 0 NOTYPE LOCAL DEFAULT 12 $x - 65: 0000000000000000 0 FUNC GLOBAL DEFAULT UND __libc_start_main@GLIBC_2.34 - 66: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_deregisterTMCloneTable - 67: 0000000000011000 0 NOTYPE WEAK DEFAULT 22 data_start - 68: 0000000000011010 0 NOTYPE GLOBAL DEFAULT 23 __bss_start__ - 69: 0000000000000000 0 FUNC WEAK DEFAULT UND __cxa_finalize@GLIBC_2.17 - 70: 0000000000011020 0 NOTYPE GLOBAL DEFAULT 23 _bss_end__ - 71: 0000000000011010 0 NOTYPE GLOBAL DEFAULT 22 _edata - 72: 0000000000011018 4 OBJECT GLOBAL DEFAULT 23 z - 73: 0000000000011014 4 OBJECT GLOBAL DEFAULT 23 x - 74: 0000000000000790 0 FUNC GLOBAL HIDDEN 14 _fini - 75: 0000000000011020 0 NOTYPE GLOBAL DEFAULT 23 __bss_end__ - 76: 0000000000011000 0 NOTYPE GLOBAL DEFAULT 22 __data_start - 77: 0000000000000000 0 NOTYPE WEAK DEFAULT UND __gmon_start__ - 78: 0000000000011008 0 OBJECT GLOBAL HIDDEN 22 __dso_handle - 79: 0000000000000000 0 FUNC GLOBAL DEFAULT UND abort@GLIBC_2.17 - 80: 00000000000007a4 4 OBJECT GLOBAL DEFAULT 15 _IO_stdin_used - 81: 0000000000011020 0 NOTYPE GLOBAL DEFAULT 23 _end - 82: 0000000000000600 52 FUNC GLOBAL DEFAULT 13 _start - 83: 0000000000011020 0 NOTYPE GLOBAL DEFAULT 23 __end__ - 84: 0000000000011010 0 NOTYPE GLOBAL DEFAULT 23 __bss_start - 85: 0000000000000714 124 FUNC GLOBAL DEFAULT 13 main - 86: 0000000000011010 0 OBJECT GLOBAL HIDDEN 22 __TMC_END__ - 87: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_registerTMCloneTable - 88: 0000000000000580 0 FUNC GLOBAL HIDDEN 11 _init diff --git a/src/test/incorrect/nestedifglobal/gcc/nestedifglobal_gtirb.expected b/src/test/incorrect/nestedifglobal/gcc/nestedifglobal_gtirb.expected index 074731e69..9bcd316e3 100644 --- a/src/test/incorrect/nestedifglobal/gcc/nestedifglobal_gtirb.expected +++ b/src/test/incorrect/nestedifglobal/gcc/nestedifglobal_gtirb.expected @@ -75,7 +75,7 @@ procedure {:extern} rely_reflexive(); procedure {:extern} guarantee_reflexive(); modifies Gamma_mem, mem; -procedure main_1812(); +procedure main(); modifies CF, Gamma_CF, Gamma_NF, Gamma_R0, Gamma_R1, Gamma_R31, Gamma_VF, Gamma_ZF, Gamma_mem, Gamma_stack, NF, R0, R1, R31, VF, ZF, mem, stack; free requires (memory_load64_le(mem, 69632bv64) == 0bv64); free requires (memory_load64_le(mem, 69640bv64) == 69640bv64); @@ -92,135 +92,135 @@ procedure main_1812(); free ensures (memory_load64_le(mem, 69616bv64) == 1812bv64); free ensures (memory_load64_le(mem, 69640bv64) == 69640bv64); -implementation main_1812() +implementation main() { - var Cse0__5_4_1: bv32; - var Cse0__5_5_3: bv32; - var Cse0__5_6_10: bv32; - var Gamma_Cse0__5_4_1: bool; - var Gamma_Cse0__5_5_3: bool; - var Gamma_Cse0__5_6_10: bool; - var Gamma_load0: bool; - var Gamma_load1: bool; - var Gamma_load2: bool; - var Gamma_load3: bool; - var Gamma_load4: bool; - var Gamma_load5: bool; - var load0: bv32; - var load1: bv32; - var load2: bv32; - var load3: bv32; - var load4: bv32; - var load5: bv32; - main_1812__0__9yseNFkhTuK04TK0yW3DZQ: - assume {:captureState "main_1812__0__9yseNFkhTuK04TK0yW3DZQ"} true; + var $load0: bv32; + var $load1: bv32; + var $load2: bv32; + var $load3: bv32; + var $load4: bv32; + var $load5: bv32; + var Cse0__5$4$1: bv32; + var Cse0__5$5$3: bv32; + var Cse0__5$6$10: bv32; + var Gamma_$load0: bool; + var Gamma_$load1: bool; + var Gamma_$load2: bool; + var Gamma_$load3: bool; + var Gamma_$load4: bool; + var Gamma_$load5: bool; + var Gamma_Cse0__5$4$1: bool; + var Gamma_Cse0__5$5$3: bool; + var Gamma_Cse0__5$6$10: bool; + $main$__0__$9yseNFkhTuK04TK0yW3DZQ: + assume {:captureState "$main$__0__$9yseNFkhTuK04TK0yW3DZQ"} true; R31, Gamma_R31 := bvadd64(R31, 18446744073709551584bv64), Gamma_R31; stack, Gamma_stack := memory_store32_le(stack, bvadd64(R31, 12bv64), R0[32:0]), gamma_store32(Gamma_stack, bvadd64(R31, 12bv64), Gamma_R0); - assume {:captureState "1816_0"} true; + assume {:captureState "1816$0"} true; R0, Gamma_R0 := 69632bv64, true; R0, Gamma_R0 := bvadd64(R0, 20bv64), Gamma_R0; - load4, Gamma_load4 := memory_load32_le(stack, bvadd64(R31, 12bv64)), gamma_load32(Gamma_stack, bvadd64(R31, 12bv64)); - R1, Gamma_R1 := zero_extend32_32(load4), Gamma_load4; + $load4, Gamma_$load4 := memory_load32_le(stack, bvadd64(R31, 12bv64)), gamma_load32(Gamma_stack, bvadd64(R31, 12bv64)); + R1, Gamma_R1 := zero_extend32_32($load4), Gamma_$load4; call rely(); assert (L(mem, R0) ==> Gamma_R1); mem, Gamma_mem := memory_store32_le(mem, R0, R1[32:0]), gamma_store32(Gamma_mem, R0, Gamma_R1); - assume {:captureState "1832_0"} true; + assume {:captureState "1832$0"} true; stack, Gamma_stack := memory_store32_le(stack, bvadd64(R31, 28bv64), 0bv32), gamma_store32(Gamma_stack, bvadd64(R31, 28bv64), true); - assume {:captureState "1836_0"} true; + assume {:captureState "1836$0"} true; R0, Gamma_R0 := 69632bv64, true; R0, Gamma_R0 := bvadd64(R0, 20bv64), Gamma_R0; call rely(); - load5, Gamma_load5 := memory_load32_le(mem, R0), (gamma_load32(Gamma_mem, R0) || L(mem, R0)); - R0, Gamma_R0 := zero_extend32_32(load5), Gamma_load5; - Cse0__5_6_10, Gamma_Cse0__5_6_10 := bvadd32(R0[32:0], 0bv32), Gamma_R0; - VF, Gamma_VF := bvnot1(bvcomp32(Cse0__5_6_10, Cse0__5_6_10)), Gamma_Cse0__5_6_10; - CF, Gamma_CF := bvnot1(bvcomp33(zero_extend1_32(Cse0__5_6_10), bvadd33(zero_extend1_32(R0[32:0]), 4294967296bv33))), (Gamma_R0 && Gamma_Cse0__5_6_10); - ZF, Gamma_ZF := bvcomp32(Cse0__5_6_10, 0bv32), Gamma_Cse0__5_6_10; - NF, Gamma_NF := Cse0__5_6_10[32:31], Gamma_Cse0__5_6_10; + $load5, Gamma_$load5 := memory_load32_le(mem, R0), (gamma_load32(Gamma_mem, R0) || L(mem, R0)); + R0, Gamma_R0 := zero_extend32_32($load5), Gamma_$load5; + Cse0__5$6$10, Gamma_Cse0__5$6$10 := bvadd32(R0[32:0], 0bv32), Gamma_R0; + VF, Gamma_VF := bvnot1(bvcomp32(Cse0__5$6$10, Cse0__5$6$10)), Gamma_Cse0__5$6$10; + CF, Gamma_CF := bvnot1(bvcomp33(zero_extend1_32(Cse0__5$6$10), bvadd33(zero_extend1_32(R0[32:0]), 4294967296bv33))), (Gamma_R0 && Gamma_Cse0__5$6$10); + ZF, Gamma_ZF := bvcomp32(Cse0__5$6$10, 0bv32), Gamma_Cse0__5$6$10; + NF, Gamma_NF := Cse0__5$6$10[32:31], Gamma_Cse0__5$6$10; assert Gamma_ZF; - goto main_1812__0__9yseNFkhTuK04TK0yW3DZQ_goto_main_1812__2__yfXOQSPfSoG_R~3nzeQfBw, main_1812__0__9yseNFkhTuK04TK0yW3DZQ_goto_main_1812__1__hCnLZz43RxuSXmdEBY0pRw; - main_1812__0__9yseNFkhTuK04TK0yW3DZQ_goto_main_1812__1__hCnLZz43RxuSXmdEBY0pRw: - assume {:captureState "main_1812__0__9yseNFkhTuK04TK0yW3DZQ_goto_main_1812__1__hCnLZz43RxuSXmdEBY0pRw"} true; - assume (!(!(ZF == 1bv1))); + goto $main$__0__$9yseNFkhTuK04TK0yW3DZQ_goto_$main$__2__$yfXOQSPfSoG_R~3nzeQfBw, $main$__0__$9yseNFkhTuK04TK0yW3DZQ_goto_$main$__1__$hCnLZz43RxuSXmdEBY0pRw; + $main$__1__$hCnLZz43RxuSXmdEBY0pRw: + assume {:captureState "$main$__1__$hCnLZz43RxuSXmdEBY0pRw"} true; R0, Gamma_R0 := 3bv64, true; stack, Gamma_stack := memory_store32_le(stack, bvadd64(R31, 28bv64), R0[32:0]), gamma_store32(Gamma_stack, bvadd64(R31, 28bv64), Gamma_R0); - assume {:captureState "1864_0"} true; - goto main_1812__1__hCnLZz43RxuSXmdEBY0pRw; - main_1812__1__hCnLZz43RxuSXmdEBY0pRw: - assume {:captureState "main_1812__1__hCnLZz43RxuSXmdEBY0pRw"} true; - goto main_1812__2__yfXOQSPfSoG_R~3nzeQfBw; - main_1812__0__9yseNFkhTuK04TK0yW3DZQ_goto_main_1812__2__yfXOQSPfSoG_R~3nzeQfBw: - assume {:captureState "main_1812__0__9yseNFkhTuK04TK0yW3DZQ_goto_main_1812__2__yfXOQSPfSoG_R~3nzeQfBw"} true; - assume (!(ZF == 1bv1)); - goto main_1812__2__yfXOQSPfSoG_R~3nzeQfBw; - main_1812__2__yfXOQSPfSoG_R~3nzeQfBw: - assume {:captureState "main_1812__2__yfXOQSPfSoG_R~3nzeQfBw"} true; + assume {:captureState "1864$0"} true; + goto $main$__2__$yfXOQSPfSoG_R~3nzeQfBw; + $main$__2__$yfXOQSPfSoG_R~3nzeQfBw: + assume {:captureState "$main$__2__$yfXOQSPfSoG_R~3nzeQfBw"} true; R0, Gamma_R0 := 69632bv64, true; R0, Gamma_R0 := bvadd64(R0, 20bv64), Gamma_R0; call rely(); - load3, Gamma_load3 := memory_load32_le(mem, R0), (gamma_load32(Gamma_mem, R0) || L(mem, R0)); - R0, Gamma_R0 := zero_extend32_32(load3), Gamma_load3; - Cse0__5_5_3, Gamma_Cse0__5_5_3 := bvadd32(R0[32:0], 4294967295bv32), Gamma_R0; - VF, Gamma_VF := bvnot1(bvcomp33(sign_extend1_32(Cse0__5_5_3), bvadd33(sign_extend1_32(R0[32:0]), 8589934591bv33))), (Gamma_R0 && Gamma_Cse0__5_5_3); - CF, Gamma_CF := bvnot1(bvcomp33(zero_extend1_32(Cse0__5_5_3), bvadd33(zero_extend1_32(R0[32:0]), 4294967295bv33))), (Gamma_R0 && Gamma_Cse0__5_5_3); - ZF, Gamma_ZF := bvcomp32(Cse0__5_5_3, 0bv32), Gamma_Cse0__5_5_3; - NF, Gamma_NF := Cse0__5_5_3[32:31], Gamma_Cse0__5_5_3; + $load3, Gamma_$load3 := memory_load32_le(mem, R0), (gamma_load32(Gamma_mem, R0) || L(mem, R0)); + R0, Gamma_R0 := zero_extend32_32($load3), Gamma_$load3; + Cse0__5$5$3, Gamma_Cse0__5$5$3 := bvadd32(R0[32:0], 4294967295bv32), Gamma_R0; + VF, Gamma_VF := bvnot1(bvcomp33(sign_extend1_32(Cse0__5$5$3), bvadd33(sign_extend1_32(R0[32:0]), 8589934591bv33))), (Gamma_R0 && Gamma_Cse0__5$5$3); + CF, Gamma_CF := bvnot1(bvcomp33(zero_extend1_32(Cse0__5$5$3), bvadd33(zero_extend1_32(R0[32:0]), 4294967295bv33))), (Gamma_R0 && Gamma_Cse0__5$5$3); + ZF, Gamma_ZF := bvcomp32(Cse0__5$5$3, 0bv32), Gamma_Cse0__5$5$3; + NF, Gamma_NF := Cse0__5$5$3[32:31], Gamma_Cse0__5$5$3; assert Gamma_ZF; - goto main_1812__2__yfXOQSPfSoG_R~3nzeQfBw_goto_main_1812__4__oqZU9BW6TP6kbuw3LSxXQA, main_1812__2__yfXOQSPfSoG_R~3nzeQfBw_goto_main_1812__3__9kAXtc8KTiCv7~xlE1Ofpg; - main_1812__2__yfXOQSPfSoG_R~3nzeQfBw_goto_main_1812__3__9kAXtc8KTiCv7~xlE1Ofpg: - assume {:captureState "main_1812__2__yfXOQSPfSoG_R~3nzeQfBw_goto_main_1812__3__9kAXtc8KTiCv7~xlE1Ofpg"} true; - assume (!(!(ZF == 1bv1))); + goto $main$__2__$yfXOQSPfSoG_R~3nzeQfBw_goto_$main$__4__$oqZU9BW6TP6kbuw3LSxXQA, $main$__2__$yfXOQSPfSoG_R~3nzeQfBw_goto_$main$__3__$9kAXtc8KTiCv7~xlE1Ofpg; + $main$__3__$9kAXtc8KTiCv7~xlE1Ofpg: + assume {:captureState "$main$__3__$9kAXtc8KTiCv7~xlE1Ofpg"} true; R0, Gamma_R0 := 5bv64, true; stack, Gamma_stack := memory_store32_le(stack, bvadd64(R31, 28bv64), R0[32:0]), gamma_store32(Gamma_stack, bvadd64(R31, 28bv64), Gamma_R0); - assume {:captureState "1892_0"} true; - goto main_1812__3__9kAXtc8KTiCv7~xlE1Ofpg; - main_1812__3__9kAXtc8KTiCv7~xlE1Ofpg: - assume {:captureState "main_1812__3__9kAXtc8KTiCv7~xlE1Ofpg"} true; - goto main_1812__4__oqZU9BW6TP6kbuw3LSxXQA; - main_1812__2__yfXOQSPfSoG_R~3nzeQfBw_goto_main_1812__4__oqZU9BW6TP6kbuw3LSxXQA: - assume {:captureState "main_1812__2__yfXOQSPfSoG_R~3nzeQfBw_goto_main_1812__4__oqZU9BW6TP6kbuw3LSxXQA"} true; - assume (!(ZF == 1bv1)); - goto main_1812__4__oqZU9BW6TP6kbuw3LSxXQA; - main_1812__4__oqZU9BW6TP6kbuw3LSxXQA: - assume {:captureState "main_1812__4__oqZU9BW6TP6kbuw3LSxXQA"} true; - load2, Gamma_load2 := memory_load32_le(stack, bvadd64(R31, 28bv64)), gamma_load32(Gamma_stack, bvadd64(R31, 28bv64)); - R0, Gamma_R0 := zero_extend32_32(load2), Gamma_load2; - Cse0__5_4_1, Gamma_Cse0__5_4_1 := bvadd32(R0[32:0], 4294967293bv32), Gamma_R0; - VF, Gamma_VF := bvnot1(bvcomp33(sign_extend1_32(Cse0__5_4_1), bvadd33(sign_extend1_32(R0[32:0]), 8589934589bv33))), (Gamma_R0 && Gamma_Cse0__5_4_1); - CF, Gamma_CF := bvnot1(bvcomp33(zero_extend1_32(Cse0__5_4_1), bvadd33(zero_extend1_32(R0[32:0]), 4294967293bv33))), (Gamma_R0 && Gamma_Cse0__5_4_1); - ZF, Gamma_ZF := bvcomp32(Cse0__5_4_1, 0bv32), Gamma_Cse0__5_4_1; - NF, Gamma_NF := Cse0__5_4_1[32:31], Gamma_Cse0__5_4_1; + assume {:captureState "1892$0"} true; + goto $main$__4__$oqZU9BW6TP6kbuw3LSxXQA; + $main$__4__$oqZU9BW6TP6kbuw3LSxXQA: + assume {:captureState "$main$__4__$oqZU9BW6TP6kbuw3LSxXQA"} true; + $load2, Gamma_$load2 := memory_load32_le(stack, bvadd64(R31, 28bv64)), gamma_load32(Gamma_stack, bvadd64(R31, 28bv64)); + R0, Gamma_R0 := zero_extend32_32($load2), Gamma_$load2; + Cse0__5$4$1, Gamma_Cse0__5$4$1 := bvadd32(R0[32:0], 4294967293bv32), Gamma_R0; + VF, Gamma_VF := bvnot1(bvcomp33(sign_extend1_32(Cse0__5$4$1), bvadd33(sign_extend1_32(R0[32:0]), 8589934589bv33))), (Gamma_R0 && Gamma_Cse0__5$4$1); + CF, Gamma_CF := bvnot1(bvcomp33(zero_extend1_32(Cse0__5$4$1), bvadd33(zero_extend1_32(R0[32:0]), 4294967293bv33))), (Gamma_R0 && Gamma_Cse0__5$4$1); + ZF, Gamma_ZF := bvcomp32(Cse0__5$4$1, 0bv32), Gamma_Cse0__5$4$1; + NF, Gamma_NF := Cse0__5$4$1[32:31], Gamma_Cse0__5$4$1; assert Gamma_ZF; - goto main_1812__4__oqZU9BW6TP6kbuw3LSxXQA_goto_main_1812__6__dkXkbQHUTxKWR8e~2scKWw, main_1812__4__oqZU9BW6TP6kbuw3LSxXQA_goto_main_1812__5__NGQwXgNySXKcztP0lKywGA; - main_1812__4__oqZU9BW6TP6kbuw3LSxXQA_goto_main_1812__5__NGQwXgNySXKcztP0lKywGA: - assume {:captureState "main_1812__4__oqZU9BW6TP6kbuw3LSxXQA_goto_main_1812__5__NGQwXgNySXKcztP0lKywGA"} true; - assume (!(!(ZF == 1bv1))); + goto $main$__4__$oqZU9BW6TP6kbuw3LSxXQA_goto_$main$__6__$dkXkbQHUTxKWR8e~2scKWw, $main$__4__$oqZU9BW6TP6kbuw3LSxXQA_goto_$main$__5__$NGQwXgNySXKcztP0lKywGA; + $main$__5__$NGQwXgNySXKcztP0lKywGA: + assume {:captureState "$main$__5__$NGQwXgNySXKcztP0lKywGA"} true; R0, Gamma_R0 := 69632bv64, true; R0, Gamma_R0 := bvadd64(R0, 24bv64), Gamma_R0; call rely(); - load0, Gamma_load0 := memory_load32_le(mem, R0), (gamma_load32(Gamma_mem, R0) || L(mem, R0)); - R0, Gamma_R0 := zero_extend32_32(load0), Gamma_load0; + $load0, Gamma_$load0 := memory_load32_le(mem, R0), (gamma_load32(Gamma_mem, R0) || L(mem, R0)); + R0, Gamma_R0 := zero_extend32_32($load0), Gamma_$load0; stack, Gamma_stack := memory_store32_le(stack, bvadd64(R31, 28bv64), R0[32:0]), gamma_store32(Gamma_stack, bvadd64(R31, 28bv64), Gamma_R0); - assume {:captureState "1920_0"} true; - goto main_1812__5__NGQwXgNySXKcztP0lKywGA; - main_1812__5__NGQwXgNySXKcztP0lKywGA: - assume {:captureState "main_1812__5__NGQwXgNySXKcztP0lKywGA"} true; - goto main_1812__6__dkXkbQHUTxKWR8e~2scKWw; - main_1812__4__oqZU9BW6TP6kbuw3LSxXQA_goto_main_1812__6__dkXkbQHUTxKWR8e~2scKWw: - assume {:captureState "main_1812__4__oqZU9BW6TP6kbuw3LSxXQA_goto_main_1812__6__dkXkbQHUTxKWR8e~2scKWw"} true; - assume (!(ZF == 1bv1)); - goto main_1812__6__dkXkbQHUTxKWR8e~2scKWw; - main_1812__6__dkXkbQHUTxKWR8e~2scKWw: - assume {:captureState "main_1812__6__dkXkbQHUTxKWR8e~2scKWw"} true; + assume {:captureState "1920$0"} true; + goto $main$__6__$dkXkbQHUTxKWR8e~2scKWw; + $main$__6__$dkXkbQHUTxKWR8e~2scKWw: + assume {:captureState "$main$__6__$dkXkbQHUTxKWR8e~2scKWw"} true; R0, Gamma_R0 := 69632bv64, true; R0, Gamma_R0 := bvadd64(R0, 24bv64), Gamma_R0; call rely(); - load1, Gamma_load1 := memory_load32_le(mem, R0), (gamma_load32(Gamma_mem, R0) || L(mem, R0)); - R0, Gamma_R0 := zero_extend32_32(load1), Gamma_load1; + $load1, Gamma_$load1 := memory_load32_le(mem, R0), (gamma_load32(Gamma_mem, R0) || L(mem, R0)); + R0, Gamma_R0 := zero_extend32_32($load1), Gamma_$load1; R31, Gamma_R31 := bvadd64(R31, 32bv64), Gamma_R31; - goto main_1812_basil_return; - main_1812_basil_return: - assume {:captureState "main_1812_basil_return"} true; + goto main_basil_return; + $main$__4__$oqZU9BW6TP6kbuw3LSxXQA_goto_$main$__6__$dkXkbQHUTxKWR8e~2scKWw: + assume {:captureState "$main$__4__$oqZU9BW6TP6kbuw3LSxXQA_goto_$main$__6__$dkXkbQHUTxKWR8e~2scKWw"} true; + assume (!(ZF == 1bv1)); + goto $main$__6__$dkXkbQHUTxKWR8e~2scKWw; + $main$__4__$oqZU9BW6TP6kbuw3LSxXQA_goto_$main$__5__$NGQwXgNySXKcztP0lKywGA: + assume {:captureState "$main$__4__$oqZU9BW6TP6kbuw3LSxXQA_goto_$main$__5__$NGQwXgNySXKcztP0lKywGA"} true; + assume (!(!(ZF == 1bv1))); + goto $main$__5__$NGQwXgNySXKcztP0lKywGA; + $main$__2__$yfXOQSPfSoG_R~3nzeQfBw_goto_$main$__4__$oqZU9BW6TP6kbuw3LSxXQA: + assume {:captureState "$main$__2__$yfXOQSPfSoG_R~3nzeQfBw_goto_$main$__4__$oqZU9BW6TP6kbuw3LSxXQA"} true; + assume (!(ZF == 1bv1)); + goto $main$__4__$oqZU9BW6TP6kbuw3LSxXQA; + $main$__2__$yfXOQSPfSoG_R~3nzeQfBw_goto_$main$__3__$9kAXtc8KTiCv7~xlE1Ofpg: + assume {:captureState "$main$__2__$yfXOQSPfSoG_R~3nzeQfBw_goto_$main$__3__$9kAXtc8KTiCv7~xlE1Ofpg"} true; + assume (!(!(ZF == 1bv1))); + goto $main$__3__$9kAXtc8KTiCv7~xlE1Ofpg; + $main$__0__$9yseNFkhTuK04TK0yW3DZQ_goto_$main$__2__$yfXOQSPfSoG_R~3nzeQfBw: + assume {:captureState "$main$__0__$9yseNFkhTuK04TK0yW3DZQ_goto_$main$__2__$yfXOQSPfSoG_R~3nzeQfBw"} true; + assume (!(ZF == 1bv1)); + goto $main$__2__$yfXOQSPfSoG_R~3nzeQfBw; + $main$__0__$9yseNFkhTuK04TK0yW3DZQ_goto_$main$__1__$hCnLZz43RxuSXmdEBY0pRw: + assume {:captureState "$main$__0__$9yseNFkhTuK04TK0yW3DZQ_goto_$main$__1__$hCnLZz43RxuSXmdEBY0pRw"} true; + assume (!(!(ZF == 1bv1))); + goto $main$__1__$hCnLZz43RxuSXmdEBY0pRw; + main_basil_return: + assume {:captureState "main_basil_return"} true; return; } diff --git a/src/test/incorrect/nestedifglobal/gcc_pic/nestedifglobal.adt b/src/test/incorrect/nestedifglobal/gcc_pic/nestedifglobal.adt deleted file mode 100644 index 0b2acb763..000000000 --- a/src/test/incorrect/nestedifglobal/gcc_pic/nestedifglobal.adt +++ /dev/null @@ -1,613 +0,0 @@ -Project(Attrs([Attr("filename","\"gcc_pic/nestedifglobal.out\""), -Attr("image-specification","(declare abi (name str))\n(declare arch (name str))\n(declare base-address (addr int))\n(declare bias (off int))\n(declare bits (size int))\n(declare code-region (addr int) (size int) (off int))\n(declare code-start (addr int))\n(declare entry-point (addr int))\n(declare external-reference (addr int) (name str))\n(declare format (name str))\n(declare is-executable (flag bool))\n(declare is-little-endian (flag bool))\n(declare llvm:base-address (addr int))\n(declare llvm:code-entry (name str) (off int) (size int))\n(declare llvm:coff-import-library (name str))\n(declare llvm:coff-virtual-section-header (name str) (addr int) (size int))\n(declare llvm:elf-program-header (name str) (off int) (size int))\n(declare llvm:elf-program-header-flags (name str) (ld bool) (r bool) \n (w bool) (x bool))\n(declare llvm:elf-virtual-program-header (name str) (addr int) (size int))\n(declare llvm:entry-point (addr int))\n(declare llvm:macho-symbol (name str) (value int))\n(declare llvm:name-reference (at int) (name str))\n(declare llvm:relocation (at int) (addr int))\n(declare llvm:section-entry (name str) (addr int) (size int) (off int))\n(declare llvm:section-flags (name str) (r bool) (w bool) (x bool))\n(declare llvm:segment-command (name str) (off int) (size int))\n(declare llvm:segment-command-flags (name str) (r bool) (w bool) (x bool))\n(declare llvm:symbol-entry (name str) (addr int) (size int) (off int)\n (value int))\n(declare llvm:virtual-segment-command (name str) (addr int) (size int))\n(declare mapped (addr int) (size int) (off int))\n(declare named-region (addr int) (size int) (name str))\n(declare named-symbol (addr int) (name str))\n(declare require (name str))\n(declare section (addr int) (size int))\n(declare segment (addr int) (size int) (r bool) (w bool) (x bool))\n(declare subarch (name str))\n(declare symbol-chunk (addr int) (size int) (root int))\n(declare symbol-value (addr int) (value int))\n(declare system (name str))\n(declare vendor (name str))\n\n(abi unknown)\n(arch aarch64)\n(base-address 0)\n(bias 0)\n(bits 64)\n(code-region 2000 20 2000)\n(code-region 1600 400 1600)\n(code-region 1488 96 1488)\n(code-region 1456 24 1456)\n(code-start 1652)\n(code-start 1600)\n(code-start 1876)\n(entry-point 1600)\n(external-reference 69576 _ITM_deregisterTMCloneTable)\n(external-reference 69584 __cxa_finalize)\n(external-reference 69608 __gmon_start__)\n(external-reference 69624 _ITM_registerTMCloneTable)\n(external-reference 69536 __libc_start_main)\n(external-reference 69544 __cxa_finalize)\n(external-reference 69552 __gmon_start__)\n(external-reference 69560 abort)\n(format elf)\n(is-executable true)\n(is-little-endian true)\n(llvm:base-address 0)\n(llvm:code-entry abort 0 0)\n(llvm:code-entry __cxa_finalize 0 0)\n(llvm:code-entry __libc_start_main 0 0)\n(llvm:code-entry _init 1456 0)\n(llvm:code-entry main 1876 124)\n(llvm:code-entry _start 1600 52)\n(llvm:code-entry abort@GLIBC_2.17 0 0)\n(llvm:code-entry _fini 2000 0)\n(llvm:code-entry __cxa_finalize@GLIBC_2.17 0 0)\n(llvm:code-entry __libc_start_main@GLIBC_2.34 0 0)\n(llvm:code-entry frame_dummy 1872 0)\n(llvm:code-entry __do_global_dtors_aux 1792 0)\n(llvm:code-entry register_tm_clones 1728 0)\n(llvm:code-entry deregister_tm_clones 1680 0)\n(llvm:code-entry call_weak_fn 1652 20)\n(llvm:code-entry .fini 2000 20)\n(llvm:code-entry .text 1600 400)\n(llvm:code-entry .plt 1488 96)\n(llvm:code-entry .init 1456 24)\n(llvm:elf-program-header 08 3464 632)\n(llvm:elf-program-header 07 0 0)\n(llvm:elf-program-header 06 2024 60)\n(llvm:elf-program-header 05 596 68)\n(llvm:elf-program-header 04 3480 496)\n(llvm:elf-program-header 03 3464 648)\n(llvm:elf-program-header 02 0 2252)\n(llvm:elf-program-header 01 568 27)\n(llvm:elf-program-header 00 64 504)\n(llvm:elf-program-header-flags 08 false true false false)\n(llvm:elf-program-header-flags 07 false true true false)\n(llvm:elf-program-header-flags 06 false true false false)\n(llvm:elf-program-header-flags 05 false true false false)\n(llvm:elf-program-header-flags 04 false true true false)\n(llvm:elf-program-header-flags 03 true true true false)\n(llvm:elf-program-header-flags 02 true true false true)\n(llvm:elf-program-header-flags 01 false true false false)\n(llvm:elf-program-header-flags 00 false true false false)\n(llvm:elf-virtual-program-header 08 69000 632)\n(llvm:elf-virtual-program-header 07 0 0)\n(llvm:elf-virtual-program-header 06 2024 60)\n(llvm:elf-virtual-program-header 05 596 68)\n(llvm:elf-virtual-program-header 04 69016 496)\n(llvm:elf-virtual-program-header 03 69000 664)\n(llvm:elf-virtual-program-header 02 0 2252)\n(llvm:elf-virtual-program-header 01 568 27)\n(llvm:elf-virtual-program-header 00 64 504)\n(llvm:entry-point 1600)\n(llvm:name-reference 69560 abort)\n(llvm:name-reference 69552 __gmon_start__)\n(llvm:name-reference 69544 __cxa_finalize)\n(llvm:name-reference 69536 __libc_start_main)\n(llvm:name-reference 69624 _ITM_registerTMCloneTable)\n(llvm:name-reference 69608 __gmon_start__)\n(llvm:name-reference 69584 __cxa_finalize)\n(llvm:name-reference 69576 _ITM_deregisterTMCloneTable)\n(llvm:section-entry .shstrtab 0 250 6848)\n(llvm:section-entry .strtab 0 552 6296)\n(llvm:section-entry .symtab 0 2136 4160)\n(llvm:section-entry .comment 0 43 4112)\n(llvm:section-entry .bss 69648 16 4112)\n(llvm:section-entry .data 69632 16 4096)\n(llvm:section-entry .got 69512 120 3976)\n(llvm:section-entry .dynamic 69016 496 3480)\n(llvm:section-entry .fini_array 69008 8 3472)\n(llvm:section-entry .init_array 69000 8 3464)\n(llvm:section-entry .eh_frame 2088 164 2088)\n(llvm:section-entry .eh_frame_hdr 2024 60 2024)\n(llvm:section-entry .rodata 2020 4 2020)\n(llvm:section-entry .fini 2000 20 2000)\n(llvm:section-entry .text 1600 400 1600)\n(llvm:section-entry .plt 1488 96 1488)\n(llvm:section-entry .init 1456 24 1456)\n(llvm:section-entry .rela.plt 1360 96 1360)\n(llvm:section-entry .rela.dyn 1120 240 1120)\n(llvm:section-entry .gnu.version_r 1072 48 1072)\n(llvm:section-entry .gnu.version 1054 18 1054)\n(llvm:section-entry .dynstr 912 141 912)\n(llvm:section-entry .dynsym 696 216 696)\n(llvm:section-entry .gnu.hash 664 28 664)\n(llvm:section-entry .note.ABI-tag 632 32 632)\n(llvm:section-entry .note.gnu.build-id 596 36 596)\n(llvm:section-entry .interp 568 27 568)\n(llvm:section-flags .shstrtab true false false)\n(llvm:section-flags .strtab true false false)\n(llvm:section-flags .symtab true false false)\n(llvm:section-flags .comment true false false)\n(llvm:section-flags .bss true true false)\n(llvm:section-flags .data true true false)\n(llvm:section-flags .got true true false)\n(llvm:section-flags .dynamic true true false)\n(llvm:section-flags .fini_array true true false)\n(llvm:section-flags .init_array true true false)\n(llvm:section-flags .eh_frame true false false)\n(llvm:section-flags .eh_frame_hdr true false false)\n(llvm:section-flags .rodata true false false)\n(llvm:section-flags .fini true false true)\n(llvm:section-flags .text true false true)\n(llvm:section-flags .plt true false true)\n(llvm:section-flags .init true false true)\n(llvm:section-flags .rela.plt true false false)\n(llvm:section-flags .rela.dyn true false false)\n(llvm:section-flags .gnu.version_r true false false)\n(llvm:section-flags .gnu.version true false false)\n(llvm:section-flags .dynstr true false false)\n(llvm:section-flags .dynsym true false false)\n(llvm:section-flags .gnu.hash true false false)\n(llvm:section-flags .note.ABI-tag true false false)\n(llvm:section-flags .note.gnu.build-id true false false)\n(llvm:section-flags .interp true false false)\n(llvm:symbol-entry abort 0 0 0 0)\n(llvm:symbol-entry __cxa_finalize 0 0 0 0)\n(llvm:symbol-entry __libc_start_main 0 0 0 0)\n(llvm:symbol-entry _init 1456 0 1456 1456)\n(llvm:symbol-entry main 1876 124 1876 1876)\n(llvm:symbol-entry _start 1600 52 1600 1600)\n(llvm:symbol-entry abort@GLIBC_2.17 0 0 0 0)\n(llvm:symbol-entry _fini 2000 0 2000 2000)\n(llvm:symbol-entry __cxa_finalize@GLIBC_2.17 0 0 0 0)\n(llvm:symbol-entry __libc_start_main@GLIBC_2.34 0 0 0 0)\n(llvm:symbol-entry frame_dummy 1872 0 1872 1872)\n(llvm:symbol-entry __do_global_dtors_aux 1792 0 1792 1792)\n(llvm:symbol-entry register_tm_clones 1728 0 1728 1728)\n(llvm:symbol-entry deregister_tm_clones 1680 0 1680 1680)\n(llvm:symbol-entry call_weak_fn 1652 20 1652 1652)\n(mapped 0 2252 0)\n(mapped 69000 648 3464)\n(named-region 0 2252 02)\n(named-region 69000 664 03)\n(named-region 568 27 .interp)\n(named-region 596 36 .note.gnu.build-id)\n(named-region 632 32 .note.ABI-tag)\n(named-region 664 28 .gnu.hash)\n(named-region 696 216 .dynsym)\n(named-region 912 141 .dynstr)\n(named-region 1054 18 .gnu.version)\n(named-region 1072 48 .gnu.version_r)\n(named-region 1120 240 .rela.dyn)\n(named-region 1360 96 .rela.plt)\n(named-region 1456 24 .init)\n(named-region 1488 96 .plt)\n(named-region 1600 400 .text)\n(named-region 2000 20 .fini)\n(named-region 2020 4 .rodata)\n(named-region 2024 60 .eh_frame_hdr)\n(named-region 2088 164 .eh_frame)\n(named-region 69000 8 .init_array)\n(named-region 69008 8 .fini_array)\n(named-region 69016 496 .dynamic)\n(named-region 69512 120 .got)\n(named-region 69632 16 .data)\n(named-region 69648 16 .bss)\n(named-region 0 43 .comment)\n(named-region 0 2136 .symtab)\n(named-region 0 552 .strtab)\n(named-region 0 250 .shstrtab)\n(named-symbol 1652 call_weak_fn)\n(named-symbol 1680 deregister_tm_clones)\n(named-symbol 1728 register_tm_clones)\n(named-symbol 1792 __do_global_dtors_aux)\n(named-symbol 1872 frame_dummy)\n(named-symbol 0 __libc_start_main@GLIBC_2.34)\n(named-symbol 0 __cxa_finalize@GLIBC_2.17)\n(named-symbol 2000 _fini)\n(named-symbol 0 abort@GLIBC_2.17)\n(named-symbol 1600 _start)\n(named-symbol 1876 main)\n(named-symbol 1456 _init)\n(named-symbol 0 __libc_start_main)\n(named-symbol 0 __cxa_finalize)\n(named-symbol 0 abort)\n(require libc.so.6)\n(section 568 27)\n(section 596 36)\n(section 632 32)\n(section 664 28)\n(section 696 216)\n(section 912 141)\n(section 1054 18)\n(section 1072 48)\n(section 1120 240)\n(section 1360 96)\n(section 1456 24)\n(section 1488 96)\n(section 1600 400)\n(section 2000 20)\n(section 2020 4)\n(section 2024 60)\n(section 2088 164)\n(section 69000 8)\n(section 69008 8)\n(section 69016 496)\n(section 69512 120)\n(section 69632 16)\n(section 69648 16)\n(section 0 43)\n(section 0 2136)\n(section 0 552)\n(section 0 250)\n(segment 0 2252 true false true)\n(segment 69000 664 true true false)\n(subarch v8)\n(symbol-chunk 1652 20 1652)\n(symbol-chunk 1600 52 1600)\n(symbol-chunk 1876 124 1876)\n(symbol-value 1652 1652)\n(symbol-value 1680 1680)\n(symbol-value 1728 1728)\n(symbol-value 1792 1792)\n(symbol-value 1872 1872)\n(symbol-value 2000 2000)\n(symbol-value 1600 1600)\n(symbol-value 1876 1876)\n(symbol-value 1456 1456)\n(symbol-value 0 0)\n(system \"\")\n(vendor \"\")\n"), -Attr("abi-name","\"aarch64-linux-gnu-elf\"")]), -Sections([Section(".shstrtab", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x40\x06\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xc0\x1b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x38\x00\x09\x00\x40\x00\x1c\x00\x1b\x00\x06\x00\x00\x00\x04\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x04\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xcc\x08\x00\x00\x00\x00\x00\x00\xcc\x08\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x01\x00\x00\x00\x06\x00\x00\x00\x88\x0d\x00\x00\x00\x00\x00\x00\x88\x0d"), -Section(".strtab", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x40\x06\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xc0\x1b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x38\x00\x09\x00\x40\x00\x1c\x00\x1b\x00\x06\x00\x00\x00\x04\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x04\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xcc\x08\x00\x00\x00\x00\x00\x00\xcc\x08\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x01\x00\x00\x00\x06\x00\x00\x00\x88\x0d\x00\x00\x00\x00\x00\x00\x88\x0d\x01\x00\x00\x00\x00\x00\x88\x0d\x01\x00\x00\x00\x00\x00\x88\x02\x00\x00\x00\x00\x00\x00\x98\x02\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x02\x00\x00\x00\x06\x00\x00\x00\x98\x0d\x00\x00\x00\x00\x00\x00\x98\x0d\x01\x00\x00\x00\x00\x00\x98\x0d\x01\x00\x00\x00\x00\x00\xf0\x01\x00\x00\x00\x00\x00\x00\xf0\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x04\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x50\xe5\x74\x64\x04\x00\x00\x00\xe8\x07\x00\x00\x00\x00\x00\x00\xe8\x07\x00\x00\x00\x00\x00\x00\xe8\x07\x00\x00\x00\x00\x00\x00\x3c\x00\x00\x00\x00\x00\x00\x00\x3c\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x51\xe5\x74\x64\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x52\xe5\x74\x64\x04\x00\x00\x00\x88\x0d\x00\x00\x00\x00\x00\x00\x88\x0d\x01\x00\x00\x00\x00\x00\x88\x0d\x01\x00\x00\x00\x00\x00\x78\x02\x00\x00\x00\x00\x00\x00"), -Section(".symtab", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x40\x06\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xc0\x1b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x38\x00\x09\x00\x40\x00\x1c\x00\x1b\x00\x06\x00\x00\x00\x04\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x04\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xcc\x08\x00\x00\x00\x00\x00\x00\xcc\x08\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x01\x00\x00\x00\x06\x00\x00\x00\x88\x0d\x00\x00\x00\x00\x00\x00\x88\x0d\x01\x00\x00\x00\x00\x00\x88\x0d\x01\x00\x00\x00\x00\x00\x88\x02\x00\x00\x00\x00\x00\x00\x98\x02\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x02\x00\x00\x00\x06\x00\x00\x00\x98\x0d\x00\x00\x00\x00\x00\x00\x98\x0d\x01\x00\x00\x00\x00\x00\x98\x0d\x01\x00\x00\x00\x00\x00\xf0\x01\x00\x00\x00\x00\x00\x00\xf0\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x04\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x50\xe5\x74\x64\x04\x00\x00\x00\xe8\x07\x00\x00\x00\x00\x00\x00\xe8\x07\x00\x00\x00\x00\x00\x00\xe8\x07\x00\x00\x00\x00\x00\x00\x3c\x00\x00\x00\x00\x00\x00\x00\x3c\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x51\xe5\x74\x64\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x52\xe5\x74\x64\x04\x00\x00\x00\x88\x0d\x00\x00\x00\x00\x00\x00\x88\x0d\x01\x00\x00\x00\x00\x00\x88\x0d\x01\x00\x00\x00\x00\x00\x78\x02\x00\x00\x00\x00\x00\x00\x78\x02\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x2f\x6c\x69\x62\x2f\x6c\x64\x2d\x6c\x69\x6e\x75\x78\x2d\x61\x61\x72\x63\x68\x36\x34\x2e\x73\x6f\x2e\x31\x00\x00\x04\x00\x00\x00\x14\x00\x00\x00\x03\x00\x00\x00\x47\x4e\x55\x00\x54\x32\x54\xd7\x3c\x9c\x52\xe7\x3c\x2b\x8f\xb6\x4a\xd9\x89\x60\xf6\x2f\xa6\xa3\x04\x00\x00\x00\x10\x00\x00\x00\x01\x00\x00\x00\x47\x4e\x55\x00\x00\x00\x00\x00\x03\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x01\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x0b\x00\xb0\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x16\x00\x00\x10\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x48\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x22\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x22\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x73\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5f\x5f\x63\x78\x61\x5f\x66\x69\x6e\x61\x6c\x69\x7a\x65\x00\x5f\x5f\x6c\x69\x62\x63\x5f\x73\x74\x61\x72\x74\x5f\x6d\x61\x69\x6e\x00\x61\x62\x6f\x72\x74\x00\x6c\x69\x62\x63\x2e\x73\x6f\x2e\x36\x00\x47\x4c\x49\x42\x43\x5f\x32\x2e\x31\x37\x00\x47\x4c\x49\x42\x43\x5f\x32\x2e\x33\x34\x00\x5f\x49\x54\x4d\x5f\x64\x65\x72\x65\x67\x69\x73\x74\x65\x72\x54\x4d\x43\x6c\x6f\x6e\x65\x54\x61\x62\x6c\x65\x00\x5f\x5f\x67\x6d\x6f\x6e\x5f\x73\x74\x61\x72\x74\x5f\x5f\x00\x5f\x49\x54\x4d\x5f\x72\x65\x67\x69\x73\x74\x65\x72\x54\x4d\x43\x6c\x6f\x6e\x65\x54\x61\x62\x6c\x65\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x01\x00\x03\x00\x01\x00\x03\x00\x01\x00\x01\x00\x02\x00\x28\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x97\x91\x96\x06\x00\x00\x03\x00\x32\x00\x00\x00\x10\x00\x00\x00\xb4\x91\x96\x06\x00\x00\x02\x00\x3d\x00\x00\x00\x00\x00\x00\x00\x88\x0d\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x50\x07\x00\x00\x00\x00\x00\x00\x90\x0d\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\xd8\x0f\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x18\x10\x01\x00\x00\x00\x00\x00\xe0\x0f\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x14\x10\x01\x00\x00\x00\x00\x00\xf0\x0f\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x54\x07\x00\x00\x00\x00\x00\x00\x08\x10\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x08\x10\x01\x00\x00\x00\x00\x00\xc8\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xd0\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe8\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xf8\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xa0\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xa8\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xb0\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xb8\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1f\x20\x03\xd5\xfd\x7b\xbf\xa9\xfd\x03\x00\x91\x2e\x00\x00\x94\xfd\x7b\xc1\xa8\xc0\x03\x5f\xd6\x00\x00\x00\x00\x00\x00\x00\x00\xf0\x7b\xbf\xa9\x90\x00\x00\x90\x11\xce\x47\xf9\x10\x62\x3e\x91\x20\x02\x1f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x90\x00\x00\x90\x11\xd2\x47\xf9\x10\x82\x3e\x91\x20\x02\x1f\xd6\x90\x00\x00\x90\x11\xd6\x47\xf9\x10\xa2\x3e\x91\x20\x02\x1f\xd6\x90\x00\x00\x90\x11\xda\x47\xf9\x10\xc2\x3e\x91\x20\x02\x1f\xd6\x90\x00\x00\x90\x11\xde\x47\xf9\x10\xe2\x3e\x91\x20\x02\x1f\xd6\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1f\x20\x03\xd5\x1d\x00\x80\xd2\x1e\x00\x80\xd2\xe5\x03\x00\xaa\xe1\x03\x40\xf9\xe2\x23\x00\x91\xe6\x03\x00\x91\x80\x00\x00\x90\x00\xf8\x47\xf9\x03\x00\x80\xd2\x04\x00\x80\xd2\xe1\xff\xff\x97\xec\xff\xff\x97\x80\x00\x00\x90\x00\xf4\x47\xf9\x40\x00\x00\xb4\xe4\xff\xff\x17\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x80\x00\x00\xb0\x00\x40\x00\x91\x81\x00\x00\xb0\x21\x40\x00\x91\x3f\x00\x00\xeb\xc0\x00\x00\x54\x81\x00\x00\x90\x21\xe4\x47\xf9\x61\x00\x00\xb4\xf0\x03\x01\xaa\x00\x02\x1f\xd6\xc0\x03\x5f\xd6\x80\x00\x00\xb0\x00\x40\x00\x91\x81\x00\x00\xb0\x21\x40\x00\x91\x21\x00\x00\xcb\x22\xfc\x7f\xd3\x41\x0c\x81\x8b\x21\xfc\x41\x93\xc1\x00\x00\xb4\x82\x00\x00\x90\x42\xfc\x47\xf9\x62\x00\x00\xb4\xf0\x03\x02\xaa\x00\x02\x1f\xd6\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\xfd\x7b\xbe\xa9\xfd\x03\x00\x91\xf3\x0b\x00\xf9\x93\x00\x00\xb0\x60\x42\x40\x39\x40\x01\x00\x35\x80\x00\x00\x90\x00\xe8\x47\xf9\x80\x00\x00\xb4\x80\x00\x00\xb0\x00\x04\x40\xf9\xb5\xff\xff\x97\xd8\xff\xff\x97\x20\x00\x80\x52\x60\x42\x00\x39\xf3\x0b\x40\xf9\xfd\x7b\xc2\xa8\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\xdc\xff\xff\x17\xff\x83\x00\xd1\xe0\x0f\x00\xb9\x80\x00\x00\x90\x00\xf0\x47\xf9\xe1\x0f\x40\xb9\x01\x00\x00\xb9\xff\x1f\x00\xb9\x80\x00\x00\x90\x00\xf0\x47\xf9\x00\x00\x40\xb9\x1f\x00\x00\x71\x61\x00\x00\x54\x60\x00\x80\x52\xe0\x1f\x00\xb9\x80\x00\x00\x90\x00\xf0\x47\xf9\x00\x00\x40\xb9\x1f\x04\x00\x71\x61\x00\x00\x54\xa0\x00\x80\x52\xe0\x1f\x00\xb9\xe0\x1f\x40\xb9\x1f\x0c\x00\x71\xa1\x00\x00\x54\x80\x00\x00\x90\x00\xec\x47\xf9\x00\x00\x40\xb9\xe0\x1f\x00\xb9\x00\x00\x80\x52\xff\x83\x00\x91\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\xfd\x7b\xbf\xa9\xfd\x03\x00\x91\xfd\x7b\xc1\xa8\xc0\x03\x5f\xd6\x01\x00\x02\x00\x01\x1b\x03\x3b\x3c\x00\x00\x00\x06\x00\x00\x00\x58\xfe\xff\xff\x54\x00\x00\x00\xa8\xfe\xff\xff\x68\x00\x00\x00\xd8\xfe\xff\xff\x7c\x00\x00\x00\x18\xff\xff\xff\x90\x00\x00\x00\x68\xff\xff\xff\xb4\x00\x00\x00\x6c\xff\xff\xff\xc8\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x01\x7a\x52\x00\x04\x78\x1e\x01\x1b\x0c\x1f\x00\x10\x00\x00\x00\x18\x00\x00\x00\xfc\xfd\xff\xff\x34\x00\x00\x00\x00\x41\x07\x1e\x10\x00\x00\x00\x2c\x00\x00\x00"), -Section(".comment", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x40\x06\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xc0\x1b\x00"), -Section(".interp", 0x238, "\x2f\x6c\x69\x62\x2f\x6c\x64\x2d\x6c\x69\x6e\x75\x78\x2d\x61\x61\x72\x63\x68\x36\x34\x2e\x73\x6f\x2e\x31\x00"), -Section(".note.gnu.build-id", 0x254, "\x04\x00\x00\x00\x14\x00\x00\x00\x03\x00\x00\x00\x47\x4e\x55\x00\x54\x32\x54\xd7\x3c\x9c\x52\xe7\x3c\x2b\x8f\xb6\x4a\xd9\x89\x60\xf6\x2f\xa6\xa3"), -Section(".note.ABI-tag", 0x278, "\x04\x00\x00\x00\x10\x00\x00\x00\x01\x00\x00\x00\x47\x4e\x55\x00\x00\x00\x00\x00\x03\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00"), -Section(".gnu.hash", 0x298, "\x01\x00\x00\x00\x01\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".dynsym", 0x2B8, "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x0b\x00\xb0\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x16\x00\x00\x10\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x48\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x22\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x22\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x73\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".dynstr", 0x390, "\x00\x5f\x5f\x63\x78\x61\x5f\x66\x69\x6e\x61\x6c\x69\x7a\x65\x00\x5f\x5f\x6c\x69\x62\x63\x5f\x73\x74\x61\x72\x74\x5f\x6d\x61\x69\x6e\x00\x61\x62\x6f\x72\x74\x00\x6c\x69\x62\x63\x2e\x73\x6f\x2e\x36\x00\x47\x4c\x49\x42\x43\x5f\x32\x2e\x31\x37\x00\x47\x4c\x49\x42\x43\x5f\x32\x2e\x33\x34\x00\x5f\x49\x54\x4d\x5f\x64\x65\x72\x65\x67\x69\x73\x74\x65\x72\x54\x4d\x43\x6c\x6f\x6e\x65\x54\x61\x62\x6c\x65\x00\x5f\x5f\x67\x6d\x6f\x6e\x5f\x73\x74\x61\x72\x74\x5f\x5f\x00\x5f\x49\x54\x4d\x5f\x72\x65\x67\x69\x73\x74\x65\x72\x54\x4d\x43\x6c\x6f\x6e\x65\x54\x61\x62\x6c\x65\x00"), -Section(".gnu.version", 0x41E, "\x00\x00\x00\x00\x00\x00\x02\x00\x01\x00\x03\x00\x01\x00\x03\x00\x01\x00"), -Section(".gnu.version_r", 0x430, "\x01\x00\x02\x00\x28\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x97\x91\x96\x06\x00\x00\x03\x00\x32\x00\x00\x00\x10\x00\x00\x00\xb4\x91\x96\x06\x00\x00\x02\x00\x3d\x00\x00\x00\x00\x00\x00\x00"), -Section(".rela.dyn", 0x460, "\x88\x0d\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x50\x07\x00\x00\x00\x00\x00\x00\x90\x0d\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\xd8\x0f\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x18\x10\x01\x00\x00\x00\x00\x00\xe0\x0f\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x14\x10\x01\x00\x00\x00\x00\x00\xf0\x0f\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x54\x07\x00\x00\x00\x00\x00\x00\x08\x10\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x08\x10\x01\x00\x00\x00\x00\x00\xc8\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xd0\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe8\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xf8\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".rela.plt", 0x550, "\xa0\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xa8\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xb0\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xb8\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".init", 0x5B0, "\x1f\x20\x03\xd5\xfd\x7b\xbf\xa9\xfd\x03\x00\x91\x2e\x00\x00\x94\xfd\x7b\xc1\xa8\xc0\x03\x5f\xd6"), -Section(".plt", 0x5D0, "\xf0\x7b\xbf\xa9\x90\x00\x00\x90\x11\xce\x47\xf9\x10\x62\x3e\x91\x20\x02\x1f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x90\x00\x00\x90\x11\xd2\x47\xf9\x10\x82\x3e\x91\x20\x02\x1f\xd6\x90\x00\x00\x90\x11\xd6\x47\xf9\x10\xa2\x3e\x91\x20\x02\x1f\xd6\x90\x00\x00\x90\x11\xda\x47\xf9\x10\xc2\x3e\x91\x20\x02\x1f\xd6\x90\x00\x00\x90\x11\xde\x47\xf9\x10\xe2\x3e\x91\x20\x02\x1f\xd6"), -Section(".fini", 0x7D0, "\x1f\x20\x03\xd5\xfd\x7b\xbf\xa9\xfd\x03\x00\x91\xfd\x7b\xc1\xa8\xc0\x03\x5f\xd6"), -Section(".rodata", 0x7E4, "\x01\x00\x02\x00"), -Section(".eh_frame_hdr", 0x7E8, "\x01\x1b\x03\x3b\x3c\x00\x00\x00\x06\x00\x00\x00\x58\xfe\xff\xff\x54\x00\x00\x00\xa8\xfe\xff\xff\x68\x00\x00\x00\xd8\xfe\xff\xff\x7c\x00\x00\x00\x18\xff\xff\xff\x90\x00\x00\x00\x68\xff\xff\xff\xb4\x00\x00\x00\x6c\xff\xff\xff\xc8\x00\x00\x00"), -Section(".eh_frame", 0x828, "\x10\x00\x00\x00\x00\x00\x00\x00\x01\x7a\x52\x00\x04\x78\x1e\x01\x1b\x0c\x1f\x00\x10\x00\x00\x00\x18\x00\x00\x00\xfc\xfd\xff\xff\x34\x00\x00\x00\x00\x41\x07\x1e\x10\x00\x00\x00\x2c\x00\x00\x00\x38\xfe\xff\xff\x30\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x40\x00\x00\x00\x54\xfe\xff\xff\x3c\x00\x00\x00\x00\x00\x00\x00\x20\x00\x00\x00\x54\x00\x00\x00\x80\xfe\xff\xff\x48\x00\x00\x00\x00\x41\x0e\x20\x9d\x04\x9e\x03\x42\x93\x02\x4e\xde\xdd\xd3\x0e\x00\x00\x00\x00\x10\x00\x00\x00\x78\x00\x00\x00\xac\xfe\xff\xff\x04\x00\x00\x00\x00\x00\x00\x00\x14\x00\x00\x00\x8c\x00\x00\x00\x9c\xfe\xff\xff\x7c\x00\x00\x00\x00\x41\x0e\x20\x5d\x0e\x00\x00\x00\x00\x00\x00"), -Section(".fini_array", 0x10D90, "\x00\x07\x00\x00\x00\x00\x00\x00"), -Section(".dynamic", 0x10D98, "\x01\x00\x00\x00\x00\x00\x00\x00\x28\x00\x00\x00\x00\x00\x00\x00\x0c\x00\x00\x00\x00\x00\x00\x00\xb0\x05\x00\x00\x00\x00\x00\x00\x0d\x00\x00\x00\x00\x00\x00\x00\xd0\x07\x00\x00\x00\x00\x00\x00\x19\x00\x00\x00\x00\x00\x00\x00\x88\x0d\x01\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x1a\x00\x00\x00\x00\x00\x00\x00\x90\x0d\x01\x00\x00\x00\x00\x00\x1c\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\xf5\xfe\xff\x6f\x00\x00\x00\x00\x98\x02\x00\x00\x00\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x90\x03\x00\x00\x00\x00\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\xb8\x02\x00\x00\x00\x00\x00\x00\x0a\x00\x00\x00\x00\x00\x00\x00\x8d\x00\x00\x00\x00\x00\x00\x00\x0b\x00\x00\x00\x00\x00\x00\x00\x18\x00\x00\x00\x00\x00\x00\x00\x15\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x88\x0f\x01\x00\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x60\x00\x00\x00\x00\x00\x00\x00\x14\x00\x00\x00\x00\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x17\x00\x00\x00\x00\x00\x00\x00\x50\x05\x00\x00\x00\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x60\x04\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\xf0\x00\x00\x00\x00\x00\x00\x00\x09\x00\x00\x00\x00\x00\x00\x00\x18\x00\x00\x00\x00\x00\x00\x00\x1e\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\xfb\xff\xff\x6f\x00\x00\x00\x00\x01\x00\x00\x08\x00\x00\x00\x00\xfe\xff\xff\x6f\x00\x00\x00\x00\x30\x04\x00\x00\x00\x00\x00\x00\xff\xff\xff\x6f\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\xf0\xff\xff\x6f\x00\x00\x00\x00\x1e\x04\x00\x00\x00\x00\x00\x00\xf9\xff\xff\x6f\x00\x00\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".got", 0x10F88, "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xd0\x05\x00\x00\x00\x00\x00\x00\xd0\x05\x00\x00\x00\x00\x00\x00\xd0\x05\x00\x00\x00\x00\x00\x00\xd0\x05\x00\x00\x00\x00\x00\x00\x98\x0d\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x18\x10\x01\x00\x00\x00\x00\x00\x14\x10\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x54\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".data", 0x11000, "\x00\x00\x00\x00\x00\x00\x00\x00\x08\x10\x01\x00\x00\x00\x00\x00"), -Section(".init_array", 0x10D88, "\x50\x07\x00\x00\x00\x00\x00\x00"), -Section(".text", 0x640, "\x1f\x20\x03\xd5\x1d\x00\x80\xd2\x1e\x00\x80\xd2\xe5\x03\x00\xaa\xe1\x03\x40\xf9\xe2\x23\x00\x91\xe6\x03\x00\x91\x80\x00\x00\x90\x00\xf8\x47\xf9\x03\x00\x80\xd2\x04\x00\x80\xd2\xe1\xff\xff\x97\xec\xff\xff\x97\x80\x00\x00\x90\x00\xf4\x47\xf9\x40\x00\x00\xb4\xe4\xff\xff\x17\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x80\x00\x00\xb0\x00\x40\x00\x91\x81\x00\x00\xb0\x21\x40\x00\x91\x3f\x00\x00\xeb\xc0\x00\x00\x54\x81\x00\x00\x90\x21\xe4\x47\xf9\x61\x00\x00\xb4\xf0\x03\x01\xaa\x00\x02\x1f\xd6\xc0\x03\x5f\xd6\x80\x00\x00\xb0\x00\x40\x00\x91\x81\x00\x00\xb0\x21\x40\x00\x91\x21\x00\x00\xcb\x22\xfc\x7f\xd3\x41\x0c\x81\x8b\x21\xfc\x41\x93\xc1\x00\x00\xb4\x82\x00\x00\x90\x42\xfc\x47\xf9\x62\x00\x00\xb4\xf0\x03\x02\xaa\x00\x02\x1f\xd6\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\xfd\x7b\xbe\xa9\xfd\x03\x00\x91\xf3\x0b\x00\xf9\x93\x00\x00\xb0\x60\x42\x40\x39\x40\x01\x00\x35\x80\x00\x00\x90\x00\xe8\x47\xf9\x80\x00\x00\xb4\x80\x00\x00\xb0\x00\x04\x40\xf9\xb5\xff\xff\x97\xd8\xff\xff\x97\x20\x00\x80\x52\x60\x42\x00\x39\xf3\x0b\x40\xf9\xfd\x7b\xc2\xa8\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\xdc\xff\xff\x17\xff\x83\x00\xd1\xe0\x0f\x00\xb9\x80\x00\x00\x90\x00\xf0\x47\xf9\xe1\x0f\x40\xb9\x01\x00\x00\xb9\xff\x1f\x00\xb9\x80\x00\x00\x90\x00\xf0\x47\xf9\x00\x00\x40\xb9\x1f\x00\x00\x71\x61\x00\x00\x54\x60\x00\x80\x52\xe0\x1f\x00\xb9\x80\x00\x00\x90\x00\xf0\x47\xf9\x00\x00\x40\xb9\x1f\x04\x00\x71\x61\x00\x00\x54\xa0\x00\x80\x52\xe0\x1f\x00\xb9\xe0\x1f\x40\xb9\x1f\x0c\x00\x71\xa1\x00\x00\x54\x80\x00\x00\x90\x00\xec\x47\xf9\x00\x00\x40\xb9\xe0\x1f\x00\xb9\x00\x00\x80\x52\xff\x83\x00\x91\xc0\x03\x5f\xd6")]), -Memmap([Annotation(Region(0x0,0x8CB), Attr("segment","02 0 2252")), -Annotation(Region(0x640,0x673), Attr("symbol","\"_start\"")), -Annotation(Region(0x0,0xF9), Attr("section","\".shstrtab\"")), -Annotation(Region(0x0,0x227), Attr("section","\".strtab\"")), -Annotation(Region(0x0,0x857), Attr("section","\".symtab\"")), -Annotation(Region(0x0,0x2A), Attr("section","\".comment\"")), -Annotation(Region(0x238,0x252), Attr("section","\".interp\"")), -Annotation(Region(0x254,0x277), Attr("section","\".note.gnu.build-id\"")), -Annotation(Region(0x278,0x297), Attr("section","\".note.ABI-tag\"")), -Annotation(Region(0x298,0x2B3), Attr("section","\".gnu.hash\"")), -Annotation(Region(0x2B8,0x38F), Attr("section","\".dynsym\"")), -Annotation(Region(0x390,0x41C), Attr("section","\".dynstr\"")), -Annotation(Region(0x41E,0x42F), Attr("section","\".gnu.version\"")), -Annotation(Region(0x430,0x45F), Attr("section","\".gnu.version_r\"")), -Annotation(Region(0x460,0x54F), Attr("section","\".rela.dyn\"")), -Annotation(Region(0x550,0x5AF), Attr("section","\".rela.plt\"")), -Annotation(Region(0x5B0,0x5C7), Attr("section","\".init\"")), -Annotation(Region(0x5D0,0x62F), Attr("section","\".plt\"")), -Annotation(Region(0x5B0,0x5C7), Attr("code-region","()")), -Annotation(Region(0x5D0,0x62F), Attr("code-region","()")), -Annotation(Region(0x640,0x673), Attr("symbol-info","_start 0x640 52")), -Annotation(Region(0x674,0x687), Attr("symbol","\"call_weak_fn\"")), -Annotation(Region(0x674,0x687), Attr("symbol-info","call_weak_fn 0x674 20")), -Annotation(Region(0x754,0x7CF), Attr("symbol","\"main\"")), -Annotation(Region(0x754,0x7CF), Attr("symbol-info","main 0x754 124")), -Annotation(Region(0x7D0,0x7E3), Attr("section","\".fini\"")), -Annotation(Region(0x7E4,0x7E7), Attr("section","\".rodata\"")), -Annotation(Region(0x7E8,0x823), Attr("section","\".eh_frame_hdr\"")), -Annotation(Region(0x828,0x8CB), Attr("section","\".eh_frame\"")), -Annotation(Region(0x10D88,0x1100F), Attr("segment","03 0x10D88 664")), -Annotation(Region(0x10D90,0x10D97), Attr("section","\".fini_array\"")), -Annotation(Region(0x10D98,0x10F87), Attr("section","\".dynamic\"")), -Annotation(Region(0x10F88,0x10FFF), Attr("section","\".got\"")), -Annotation(Region(0x11000,0x1100F), Attr("section","\".data\"")), -Annotation(Region(0x10D88,0x10D8F), Attr("section","\".init_array\"")), -Annotation(Region(0x640,0x7CF), Attr("section","\".text\"")), -Annotation(Region(0x640,0x7CF), Attr("code-region","()")), -Annotation(Region(0x7D0,0x7E3), Attr("code-region","()"))]), -Program(Tid(1_680, "%00000690"), Attrs([]), - Subs([Sub(Tid(1_618, "@__cxa_finalize"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x600"), -Attr("stub","()")]), "__cxa_finalize", Args([Arg(Tid(1_681, "%00000691"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("__cxa_finalize_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(1_116, "@__cxa_finalize"), - Attrs([Attr("address","0x600")]), Phis([]), -Defs([Def(Tid(1_364, "%00000554"), Attrs([Attr("address","0x600"), -Attr("insn","adrp x16, #65536")]), Var("R16",Imm(64)), Int(65536,64)), -Def(Tid(1_371, "%0000055b"), Attrs([Attr("address","0x604"), -Attr("insn","ldr x17, [x16, #0xfa8]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(4008,64)),LittleEndian(),64)), -Def(Tid(1_377, "%00000561"), Attrs([Attr("address","0x608"), -Attr("insn","add x16, x16, #0xfa8")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(4008,64)))]), Jmps([Call(Tid(1_382, "%00000566"), - Attrs([Attr("address","0x60C"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), -Sub(Tid(1_619, "@__do_global_dtors_aux"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x700")]), - "__do_global_dtors_aux", Args([Arg(Tid(1_682, "%00000692"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("__do_global_dtors_aux_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(714, "@__do_global_dtors_aux"), - Attrs([Attr("address","0x700")]), Phis([]), Defs([Def(Tid(718, "%000002ce"), - Attrs([Attr("address","0x700"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("#3",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(18446744073709551584,64))), -Def(Tid(724, "%000002d4"), Attrs([Attr("address","0x700"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("#3",Imm(64)),Var("R29",Imm(64)),LittleEndian(),64)), -Def(Tid(730, "%000002da"), Attrs([Attr("address","0x700"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("#3",Imm(64)),Int(8,64)),Var("R30",Imm(64)),LittleEndian(),64)), -Def(Tid(734, "%000002de"), Attrs([Attr("address","0x700"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("R31",Imm(64)), -Var("#3",Imm(64))), Def(Tid(740, "%000002e4"), - Attrs([Attr("address","0x704"), Attr("insn","mov x29, sp")]), - Var("R29",Imm(64)), Var("R31",Imm(64))), Def(Tid(748, "%000002ec"), - Attrs([Attr("address","0x708"), Attr("insn","str x19, [sp, #0x10]")]), - Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(16,64)),Var("R19",Imm(64)),LittleEndian(),64)), -Def(Tid(753, "%000002f1"), Attrs([Attr("address","0x70C"), -Attr("insn","adrp x19, #69632")]), Var("R19",Imm(64)), Int(69632,64)), -Def(Tid(760, "%000002f8"), Attrs([Attr("address","0x710"), -Attr("insn","ldrb w0, [x19, #0x10]")]), Var("R0",Imm(64)), -UNSIGNED(64,Load(Var("mem",Mem(64,8)),PLUS(Var("R19",Imm(64)),Int(16,64)),LittleEndian(),8)))]), -Jmps([Goto(Tid(767, "%000002ff"), Attrs([Attr("address","0x714"), -Attr("insn","cbnz w0, #0x28")]), - NEQ(Extract(31,0,Var("R0",Imm(64))),Int(0,32)), -Direct(Tid(765, "%000002fd"))), Goto(Tid(1_664, "%00000680"), Attrs([]), - Int(1,1), Direct(Tid(1_061, "%00000425")))])), Blk(Tid(1_061, "%00000425"), - Attrs([Attr("address","0x718")]), Phis([]), -Defs([Def(Tid(1_064, "%00000428"), Attrs([Attr("address","0x718"), -Attr("insn","adrp x0, #65536")]), Var("R0",Imm(64)), Int(65536,64)), -Def(Tid(1_071, "%0000042f"), Attrs([Attr("address","0x71C"), -Attr("insn","ldr x0, [x0, #0xfd0]")]), Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(4048,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(1_077, "%00000435"), Attrs([Attr("address","0x720"), -Attr("insn","cbz x0, #0x10")]), EQ(Var("R0",Imm(64)),Int(0,64)), -Direct(Tid(1_075, "%00000433"))), Goto(Tid(1_665, "%00000681"), Attrs([]), - Int(1,1), Direct(Tid(1_100, "%0000044c")))])), Blk(Tid(1_100, "%0000044c"), - Attrs([Attr("address","0x724")]), Phis([]), -Defs([Def(Tid(1_103, "%0000044f"), Attrs([Attr("address","0x724"), -Attr("insn","adrp x0, #69632")]), Var("R0",Imm(64)), Int(69632,64)), -Def(Tid(1_110, "%00000456"), Attrs([Attr("address","0x728"), -Attr("insn","ldr x0, [x0, #0x8]")]), Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(1_115, "%0000045b"), Attrs([Attr("address","0x72C"), -Attr("insn","bl #-0x12c")]), Var("R30",Imm(64)), Int(1840,64))]), -Jmps([Call(Tid(1_118, "%0000045e"), Attrs([Attr("address","0x72C"), -Attr("insn","bl #-0x12c")]), Int(1,1), -(Direct(Tid(1_618, "@__cxa_finalize")),Direct(Tid(1_075, "%00000433"))))])), -Blk(Tid(1_075, "%00000433"), Attrs([Attr("address","0x730")]), Phis([]), -Defs([Def(Tid(1_083, "%0000043b"), Attrs([Attr("address","0x730"), -Attr("insn","bl #-0xa0")]), Var("R30",Imm(64)), Int(1844,64))]), -Jmps([Call(Tid(1_085, "%0000043d"), Attrs([Attr("address","0x730"), -Attr("insn","bl #-0xa0")]), Int(1,1), -(Direct(Tid(1_632, "@deregister_tm_clones")),Direct(Tid(1_087, "%0000043f"))))])), -Blk(Tid(1_087, "%0000043f"), Attrs([Attr("address","0x734")]), Phis([]), -Defs([Def(Tid(1_090, "%00000442"), Attrs([Attr("address","0x734"), -Attr("insn","mov w0, #0x1")]), Var("R0",Imm(64)), Int(1,64)), -Def(Tid(1_098, "%0000044a"), Attrs([Attr("address","0x738"), -Attr("insn","strb w0, [x19, #0x10]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R19",Imm(64)),Int(16,64)),Extract(7,0,Var("R0",Imm(64))),LittleEndian(),8))]), -Jmps([Goto(Tid(1_666, "%00000682"), Attrs([]), Int(1,1), -Direct(Tid(765, "%000002fd")))])), Blk(Tid(765, "%000002fd"), - Attrs([Attr("address","0x73C")]), Phis([]), Defs([Def(Tid(775, "%00000307"), - Attrs([Attr("address","0x73C"), Attr("insn","ldr x19, [sp, #0x10]")]), - Var("R19",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(16,64)),LittleEndian(),64)), -Def(Tid(782, "%0000030e"), Attrs([Attr("address","0x740"), -Attr("insn","ldp x29, x30, [sp], #0x20")]), Var("R29",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(787, "%00000313"), Attrs([Attr("address","0x740"), -Attr("insn","ldp x29, x30, [sp], #0x20")]), Var("R30",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(791, "%00000317"), Attrs([Attr("address","0x740"), -Attr("insn","ldp x29, x30, [sp], #0x20")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(32,64)))]), Jmps([Call(Tid(796, "%0000031c"), - Attrs([Attr("address","0x744"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), Sub(Tid(1_623, "@__libc_start_main"), - Attrs([Attr("c.proto","signed (*)(signed (*)(signed , char** , char** );* main, signed , char** , \nvoid* auxv)"), -Attr("address","0x5F0"), Attr("stub","()")]), "__libc_start_main", - Args([Arg(Tid(1_683, "%00000693"), - Attrs([Attr("c.layout","**[ : 64]"), -Attr("c.data","Top:u64 ptr ptr"), -Attr("c.type","signed (*)(signed , char** , char** );*")]), - Var("__libc_start_main_main",Imm(64)), Var("R0",Imm(64)), In()), -Arg(Tid(1_684, "%00000694"), Attrs([Attr("c.layout","[signed : 32]"), -Attr("c.data","Top:u32"), Attr("c.type","signed")]), - Var("__libc_start_main_arg2",Imm(32)), LOW(32,Var("R1",Imm(64))), In()), -Arg(Tid(1_685, "%00000695"), Attrs([Attr("c.layout","**[char : 8]"), -Attr("c.data","Top:u8 ptr ptr"), Attr("c.type","char**")]), - Var("__libc_start_main_arg3",Imm(64)), Var("R2",Imm(64)), Both()), -Arg(Tid(1_686, "%00000696"), Attrs([Attr("c.layout","*[ : 8]"), -Attr("c.data","{} ptr"), Attr("c.type","void*")]), - Var("__libc_start_main_auxv",Imm(64)), Var("R3",Imm(64)), Both()), -Arg(Tid(1_687, "%00000697"), Attrs([Attr("c.layout","[signed : 32]"), -Attr("c.data","Top:u32"), Attr("c.type","signed")]), - Var("__libc_start_main_result",Imm(32)), LOW(32,Var("R0",Imm(64))), -Out())]), Blks([Blk(Tid(547, "@__libc_start_main"), - Attrs([Attr("address","0x5F0")]), Phis([]), -Defs([Def(Tid(1_342, "%0000053e"), Attrs([Attr("address","0x5F0"), -Attr("insn","adrp x16, #65536")]), Var("R16",Imm(64)), Int(65536,64)), -Def(Tid(1_349, "%00000545"), Attrs([Attr("address","0x5F4"), -Attr("insn","ldr x17, [x16, #0xfa0]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(4000,64)),LittleEndian(),64)), -Def(Tid(1_355, "%0000054b"), Attrs([Attr("address","0x5F8"), -Attr("insn","add x16, x16, #0xfa0")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(4000,64)))]), Jmps([Call(Tid(1_360, "%00000550"), - Attrs([Attr("address","0x5FC"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), Sub(Tid(1_624, "@_fini"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x7D0")]), - "_fini", Args([Arg(Tid(1_688, "%00000698"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("_fini_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(31, "@_fini"), - Attrs([Attr("address","0x7D0")]), Phis([]), Defs([Def(Tid(37, "%00000025"), - Attrs([Attr("address","0x7D4"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("#0",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(18446744073709551600,64))), -Def(Tid(43, "%0000002b"), Attrs([Attr("address","0x7D4"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("#0",Imm(64)),Var("R29",Imm(64)),LittleEndian(),64)), -Def(Tid(49, "%00000031"), Attrs([Attr("address","0x7D4"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("#0",Imm(64)),Int(8,64)),Var("R30",Imm(64)),LittleEndian(),64)), -Def(Tid(53, "%00000035"), Attrs([Attr("address","0x7D4"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("R31",Imm(64)), -Var("#0",Imm(64))), Def(Tid(59, "%0000003b"), Attrs([Attr("address","0x7D8"), -Attr("insn","mov x29, sp")]), Var("R29",Imm(64)), Var("R31",Imm(64))), -Def(Tid(66, "%00000042"), Attrs([Attr("address","0x7DC"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R29",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(71, "%00000047"), Attrs([Attr("address","0x7DC"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R30",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(75, "%0000004b"), Attrs([Attr("address","0x7DC"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(16,64)))]), Jmps([Call(Tid(80, "%00000050"), - Attrs([Attr("address","0x7E0"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), Sub(Tid(1_625, "@_init"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x5B0")]), - "_init", Args([Arg(Tid(1_689, "%00000699"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("_init_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(1_454, "@_init"), - Attrs([Attr("address","0x5B0")]), Phis([]), -Defs([Def(Tid(1_460, "%000005b4"), Attrs([Attr("address","0x5B4"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("#8",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(18446744073709551600,64))), -Def(Tid(1_466, "%000005ba"), Attrs([Attr("address","0x5B4"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("#8",Imm(64)),Var("R29",Imm(64)),LittleEndian(),64)), -Def(Tid(1_472, "%000005c0"), Attrs([Attr("address","0x5B4"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("#8",Imm(64)),Int(8,64)),Var("R30",Imm(64)),LittleEndian(),64)), -Def(Tid(1_476, "%000005c4"), Attrs([Attr("address","0x5B4"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("R31",Imm(64)), -Var("#8",Imm(64))), Def(Tid(1_482, "%000005ca"), - Attrs([Attr("address","0x5B8"), Attr("insn","mov x29, sp")]), - Var("R29",Imm(64)), Var("R31",Imm(64))), Def(Tid(1_487, "%000005cf"), - Attrs([Attr("address","0x5BC"), Attr("insn","bl #0xb8")]), - Var("R30",Imm(64)), Int(1472,64))]), Jmps([Call(Tid(1_489, "%000005d1"), - Attrs([Attr("address","0x5BC"), Attr("insn","bl #0xb8")]), Int(1,1), -(Direct(Tid(1_630, "@call_weak_fn")),Direct(Tid(1_491, "%000005d3"))))])), -Blk(Tid(1_491, "%000005d3"), Attrs([Attr("address","0x5C0")]), Phis([]), -Defs([Def(Tid(1_496, "%000005d8"), Attrs([Attr("address","0x5C0"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R29",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(1_501, "%000005dd"), Attrs([Attr("address","0x5C0"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R30",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(1_505, "%000005e1"), Attrs([Attr("address","0x5C0"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(16,64)))]), Jmps([Call(Tid(1_510, "%000005e6"), - Attrs([Attr("address","0x5C4"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), Sub(Tid(1_626, "@_start"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x640"), -Attr("entry-point","()")]), "_start", Args([Arg(Tid(1_690, "%0000069a"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("_start_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(484, "@_start"), - Attrs([Attr("address","0x640")]), Phis([]), Defs([Def(Tid(489, "%000001e9"), - Attrs([Attr("address","0x644"), Attr("insn","mov x29, #0x0")]), - Var("R29",Imm(64)), Int(0,64)), Def(Tid(494, "%000001ee"), - Attrs([Attr("address","0x648"), Attr("insn","mov x30, #0x0")]), - Var("R30",Imm(64)), Int(0,64)), Def(Tid(500, "%000001f4"), - Attrs([Attr("address","0x64C"), Attr("insn","mov x5, x0")]), - Var("R5",Imm(64)), Var("R0",Imm(64))), Def(Tid(507, "%000001fb"), - Attrs([Attr("address","0x650"), Attr("insn","ldr x1, [sp]")]), - Var("R1",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(513, "%00000201"), Attrs([Attr("address","0x654"), -Attr("insn","add x2, sp, #0x8")]), Var("R2",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(8,64))), Def(Tid(519, "%00000207"), - Attrs([Attr("address","0x658"), Attr("insn","mov x6, sp")]), - Var("R6",Imm(64)), Var("R31",Imm(64))), Def(Tid(524, "%0000020c"), - Attrs([Attr("address","0x65C"), Attr("insn","adrp x0, #65536")]), - Var("R0",Imm(64)), Int(65536,64)), Def(Tid(531, "%00000213"), - Attrs([Attr("address","0x660"), Attr("insn","ldr x0, [x0, #0xff0]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(4080,64)),LittleEndian(),64)), -Def(Tid(536, "%00000218"), Attrs([Attr("address","0x664"), -Attr("insn","mov x3, #0x0")]), Var("R3",Imm(64)), Int(0,64)), -Def(Tid(541, "%0000021d"), Attrs([Attr("address","0x668"), -Attr("insn","mov x4, #0x0")]), Var("R4",Imm(64)), Int(0,64)), -Def(Tid(546, "%00000222"), Attrs([Attr("address","0x66C"), -Attr("insn","bl #-0x7c")]), Var("R30",Imm(64)), Int(1648,64))]), -Jmps([Call(Tid(549, "%00000225"), Attrs([Attr("address","0x66C"), -Attr("insn","bl #-0x7c")]), Int(1,1), -(Direct(Tid(1_623, "@__libc_start_main")),Direct(Tid(551, "%00000227"))))])), -Blk(Tid(551, "%00000227"), Attrs([Attr("address","0x670")]), Phis([]), -Defs([Def(Tid(554, "%0000022a"), Attrs([Attr("address","0x670"), -Attr("insn","bl #-0x50")]), Var("R30",Imm(64)), Int(1652,64))]), -Jmps([Call(Tid(557, "%0000022d"), Attrs([Attr("address","0x670"), -Attr("insn","bl #-0x50")]), Int(1,1), -(Direct(Tid(1_629, "@abort")),Direct(Tid(1_667, "%00000683"))))])), -Blk(Tid(1_667, "%00000683"), Attrs([]), Phis([]), Defs([]), -Jmps([Call(Tid(1_668, "%00000684"), Attrs([]), Int(1,1), -(Direct(Tid(1_630, "@call_weak_fn")),))]))])), Sub(Tid(1_629, "@abort"), - Attrs([Attr("noreturn","()"), Attr("c.proto","void (*)(void)"), -Attr("address","0x620"), Attr("stub","()")]), "abort", Args([]), -Blks([Blk(Tid(555, "@abort"), Attrs([Attr("address","0x620")]), Phis([]), -Defs([Def(Tid(1_408, "%00000580"), Attrs([Attr("address","0x620"), -Attr("insn","adrp x16, #65536")]), Var("R16",Imm(64)), Int(65536,64)), -Def(Tid(1_415, "%00000587"), Attrs([Attr("address","0x624"), -Attr("insn","ldr x17, [x16, #0xfb8]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(4024,64)),LittleEndian(),64)), -Def(Tid(1_421, "%0000058d"), Attrs([Attr("address","0x628"), -Attr("insn","add x16, x16, #0xfb8")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(4024,64)))]), Jmps([Call(Tid(1_426, "%00000592"), - Attrs([Attr("address","0x62C"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), Sub(Tid(1_630, "@call_weak_fn"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x674")]), - "call_weak_fn", Args([Arg(Tid(1_691, "%0000069b"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("call_weak_fn_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(559, "@call_weak_fn"), - Attrs([Attr("address","0x674")]), Phis([]), Defs([Def(Tid(562, "%00000232"), - Attrs([Attr("address","0x674"), Attr("insn","adrp x0, #65536")]), - Var("R0",Imm(64)), Int(65536,64)), Def(Tid(569, "%00000239"), - Attrs([Attr("address","0x678"), Attr("insn","ldr x0, [x0, #0xfe8]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(4072,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(575, "%0000023f"), Attrs([Attr("address","0x67C"), -Attr("insn","cbz x0, #0x8")]), EQ(Var("R0",Imm(64)),Int(0,64)), -Direct(Tid(573, "%0000023d"))), Goto(Tid(1_669, "%00000685"), Attrs([]), - Int(1,1), Direct(Tid(1_180, "%0000049c")))])), Blk(Tid(573, "%0000023d"), - Attrs([Attr("address","0x684")]), Phis([]), Defs([]), -Jmps([Call(Tid(581, "%00000245"), Attrs([Attr("address","0x684"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))])), -Blk(Tid(1_180, "%0000049c"), Attrs([Attr("address","0x680")]), Phis([]), -Defs([]), Jmps([Goto(Tid(1_183, "%0000049f"), Attrs([Attr("address","0x680"), -Attr("insn","b #-0x70")]), Int(1,1), -Direct(Tid(1_181, "@__gmon_start__")))])), Blk(Tid(1_181, "@__gmon_start__"), - Attrs([Attr("address","0x610")]), Phis([]), -Defs([Def(Tid(1_386, "%0000056a"), Attrs([Attr("address","0x610"), -Attr("insn","adrp x16, #65536")]), Var("R16",Imm(64)), Int(65536,64)), -Def(Tid(1_393, "%00000571"), Attrs([Attr("address","0x614"), -Attr("insn","ldr x17, [x16, #0xfb0]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(4016,64)),LittleEndian(),64)), -Def(Tid(1_399, "%00000577"), Attrs([Attr("address","0x618"), -Attr("insn","add x16, x16, #0xfb0")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(4016,64)))]), Jmps([Call(Tid(1_404, "%0000057c"), - Attrs([Attr("address","0x61C"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), -Sub(Tid(1_632, "@deregister_tm_clones"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x690")]), - "deregister_tm_clones", Args([Arg(Tid(1_692, "%0000069c"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("deregister_tm_clones_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(587, "@deregister_tm_clones"), - Attrs([Attr("address","0x690")]), Phis([]), Defs([Def(Tid(590, "%0000024e"), - Attrs([Attr("address","0x690"), Attr("insn","adrp x0, #69632")]), - Var("R0",Imm(64)), Int(69632,64)), Def(Tid(596, "%00000254"), - Attrs([Attr("address","0x694"), Attr("insn","add x0, x0, #0x10")]), - Var("R0",Imm(64)), PLUS(Var("R0",Imm(64)),Int(16,64))), -Def(Tid(601, "%00000259"), Attrs([Attr("address","0x698"), -Attr("insn","adrp x1, #69632")]), Var("R1",Imm(64)), Int(69632,64)), -Def(Tid(607, "%0000025f"), Attrs([Attr("address","0x69C"), -Attr("insn","add x1, x1, #0x10")]), Var("R1",Imm(64)), -PLUS(Var("R1",Imm(64)),Int(16,64))), Def(Tid(613, "%00000265"), - Attrs([Attr("address","0x6A0"), Attr("insn","cmp x1, x0")]), - Var("#1",Imm(64)), NOT(Var("R0",Imm(64)))), Def(Tid(618, "%0000026a"), - Attrs([Attr("address","0x6A0"), Attr("insn","cmp x1, x0")]), - Var("#2",Imm(64)), PLUS(Var("R1",Imm(64)),NOT(Var("R0",Imm(64))))), -Def(Tid(624, "%00000270"), Attrs([Attr("address","0x6A0"), -Attr("insn","cmp x1, x0")]), Var("VF",Imm(1)), -NEQ(SIGNED(65,PLUS(Var("#2",Imm(64)),Int(1,64))),PLUS(PLUS(SIGNED(65,Var("R1",Imm(64))),SIGNED(65,Var("#1",Imm(64)))),Int(1,65)))), -Def(Tid(630, "%00000276"), Attrs([Attr("address","0x6A0"), -Attr("insn","cmp x1, x0")]), Var("CF",Imm(1)), -NEQ(UNSIGNED(65,PLUS(Var("#2",Imm(64)),Int(1,64))),PLUS(PLUS(UNSIGNED(65,Var("R1",Imm(64))),UNSIGNED(65,Var("#1",Imm(64)))),Int(1,65)))), -Def(Tid(634, "%0000027a"), Attrs([Attr("address","0x6A0"), -Attr("insn","cmp x1, x0")]), Var("ZF",Imm(1)), -EQ(PLUS(Var("#2",Imm(64)),Int(1,64)),Int(0,64))), Def(Tid(638, "%0000027e"), - Attrs([Attr("address","0x6A0"), Attr("insn","cmp x1, x0")]), - Var("NF",Imm(1)), Extract(63,63,PLUS(Var("#2",Imm(64)),Int(1,64))))]), -Jmps([Goto(Tid(644, "%00000284"), Attrs([Attr("address","0x6A4"), -Attr("insn","b.eq #0x18")]), EQ(Var("ZF",Imm(1)),Int(1,1)), -Direct(Tid(642, "%00000282"))), Goto(Tid(1_670, "%00000686"), Attrs([]), - Int(1,1), Direct(Tid(1_150, "%0000047e")))])), Blk(Tid(1_150, "%0000047e"), - Attrs([Attr("address","0x6A8")]), Phis([]), -Defs([Def(Tid(1_153, "%00000481"), Attrs([Attr("address","0x6A8"), -Attr("insn","adrp x1, #65536")]), Var("R1",Imm(64)), Int(65536,64)), -Def(Tid(1_160, "%00000488"), Attrs([Attr("address","0x6AC"), -Attr("insn","ldr x1, [x1, #0xfc8]")]), Var("R1",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R1",Imm(64)),Int(4040,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(1_165, "%0000048d"), Attrs([Attr("address","0x6B0"), -Attr("insn","cbz x1, #0xc")]), EQ(Var("R1",Imm(64)),Int(0,64)), -Direct(Tid(642, "%00000282"))), Goto(Tid(1_671, "%00000687"), Attrs([]), - Int(1,1), Direct(Tid(1_169, "%00000491")))])), Blk(Tid(642, "%00000282"), - Attrs([Attr("address","0x6BC")]), Phis([]), Defs([]), -Jmps([Call(Tid(650, "%0000028a"), Attrs([Attr("address","0x6BC"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))])), -Blk(Tid(1_169, "%00000491"), Attrs([Attr("address","0x6B4")]), Phis([]), -Defs([Def(Tid(1_173, "%00000495"), Attrs([Attr("address","0x6B4"), -Attr("insn","mov x16, x1")]), Var("R16",Imm(64)), Var("R1",Imm(64)))]), -Jmps([Call(Tid(1_178, "%0000049a"), Attrs([Attr("address","0x6B8"), -Attr("insn","br x16")]), Int(1,1), (Indirect(Var("R16",Imm(64))),))]))])), -Sub(Tid(1_635, "@frame_dummy"), Attrs([Attr("c.proto","signed (*)(void)"), -Attr("address","0x750")]), "frame_dummy", Args([Arg(Tid(1_693, "%0000069d"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("frame_dummy_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(802, "@frame_dummy"), - Attrs([Attr("address","0x750")]), Phis([]), Defs([]), -Jmps([Call(Tid(804, "%00000324"), Attrs([Attr("address","0x750"), -Attr("insn","b #-0x90")]), Int(1,1), -(Direct(Tid(1_643, "@register_tm_clones")),))]))])), Sub(Tid(1_636, "@main"), - Attrs([Attr("c.proto","signed (*)(signed argc, const char** argv)"), -Attr("address","0x754")]), "main", Args([Arg(Tid(1_694, "%0000069e"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("main_argc",Imm(32)), -LOW(32,Var("R0",Imm(64))), In()), Arg(Tid(1_695, "%0000069f"), - Attrs([Attr("c.layout","**[char : 8]"), Attr("c.data","Top:u8 ptr ptr"), -Attr("c.type"," const char**")]), Var("main_argv",Imm(64)), -Var("R1",Imm(64)), Both()), Arg(Tid(1_696, "%000006a0"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("main_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(806, "@main"), - Attrs([Attr("address","0x754")]), Phis([]), Defs([Def(Tid(810, "%0000032a"), - Attrs([Attr("address","0x754"), Attr("insn","sub sp, sp, #0x20")]), - Var("R31",Imm(64)), PLUS(Var("R31",Imm(64)),Int(18446744073709551584,64))), -Def(Tid(818, "%00000332"), Attrs([Attr("address","0x758"), -Attr("insn","str w0, [sp, #0xc]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(12,64)),Extract(31,0,Var("R0",Imm(64))),LittleEndian(),32)), -Def(Tid(823, "%00000337"), Attrs([Attr("address","0x75C"), -Attr("insn","adrp x0, #65536")]), Var("R0",Imm(64)), Int(65536,64)), -Def(Tid(830, "%0000033e"), Attrs([Attr("address","0x760"), -Attr("insn","ldr x0, [x0, #0xfe0]")]), Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(4064,64)),LittleEndian(),64)), -Def(Tid(837, "%00000345"), Attrs([Attr("address","0x764"), -Attr("insn","ldr w1, [sp, #0xc]")]), Var("R1",Imm(64)), -UNSIGNED(64,Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(12,64)),LittleEndian(),32))), -Def(Tid(845, "%0000034d"), Attrs([Attr("address","0x768"), -Attr("insn","str w1, [x0]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("R0",Imm(64)),Extract(31,0,Var("R1",Imm(64))),LittleEndian(),32)), -Def(Tid(852, "%00000354"), Attrs([Attr("address","0x76C"), -Attr("insn","str wzr, [sp, #0x1c]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(28,64)),Int(0,32),LittleEndian(),32)), -Def(Tid(857, "%00000359"), Attrs([Attr("address","0x770"), -Attr("insn","adrp x0, #65536")]), Var("R0",Imm(64)), Int(65536,64)), -Def(Tid(864, "%00000360"), Attrs([Attr("address","0x774"), -Attr("insn","ldr x0, [x0, #0xfe0]")]), Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(4064,64)),LittleEndian(),64)), -Def(Tid(871, "%00000367"), Attrs([Attr("address","0x778"), -Attr("insn","ldr w0, [x0]")]), Var("R0",Imm(64)), -UNSIGNED(64,Load(Var("mem",Mem(64,8)),Var("R0",Imm(64)),LittleEndian(),32))), -Def(Tid(877, "%0000036d"), Attrs([Attr("address","0x77C"), -Attr("insn","cmp w0, #0x0")]), Var("#4",Imm(32)), -PLUS(Extract(31,0,Var("R0",Imm(64))),Int(4294967295,32))), -Def(Tid(882, "%00000372"), Attrs([Attr("address","0x77C"), -Attr("insn","cmp w0, #0x0")]), Var("VF",Imm(1)), -NEQ(SIGNED(33,PLUS(Var("#4",Imm(32)),Int(1,32))),PLUS(SIGNED(33,Extract(31,0,Var("R0",Imm(64)))),Int(0,33)))), -Def(Tid(887, "%00000377"), Attrs([Attr("address","0x77C"), -Attr("insn","cmp w0, #0x0")]), Var("CF",Imm(1)), -NEQ(UNSIGNED(33,PLUS(Var("#4",Imm(32)),Int(1,32))),PLUS(UNSIGNED(33,Extract(31,0,Var("R0",Imm(64)))),Int(4294967296,33)))), -Def(Tid(891, "%0000037b"), Attrs([Attr("address","0x77C"), -Attr("insn","cmp w0, #0x0")]), Var("ZF",Imm(1)), -EQ(PLUS(Var("#4",Imm(32)),Int(1,32)),Int(0,32))), Def(Tid(895, "%0000037f"), - Attrs([Attr("address","0x77C"), Attr("insn","cmp w0, #0x0")]), - Var("NF",Imm(1)), Extract(31,31,PLUS(Var("#4",Imm(32)),Int(1,32))))]), -Jmps([Goto(Tid(901, "%00000385"), Attrs([Attr("address","0x780"), -Attr("insn","b.ne #0xc")]), NEQ(Var("ZF",Imm(1)),Int(1,1)), -Direct(Tid(899, "%00000383"))), Goto(Tid(1_672, "%00000688"), Attrs([]), - Int(1,1), Direct(Tid(1_048, "%00000418")))])), Blk(Tid(1_048, "%00000418"), - Attrs([Attr("address","0x784")]), Phis([]), -Defs([Def(Tid(1_051, "%0000041b"), Attrs([Attr("address","0x784"), -Attr("insn","mov w0, #0x3")]), Var("R0",Imm(64)), Int(3,64)), -Def(Tid(1_059, "%00000423"), Attrs([Attr("address","0x788"), -Attr("insn","str w0, [sp, #0x1c]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(28,64)),Extract(31,0,Var("R0",Imm(64))),LittleEndian(),32))]), -Jmps([Goto(Tid(1_673, "%00000689"), Attrs([]), Int(1,1), -Direct(Tid(899, "%00000383")))])), Blk(Tid(899, "%00000383"), - Attrs([Attr("address","0x78C")]), Phis([]), Defs([Def(Tid(907, "%0000038b"), - Attrs([Attr("address","0x78C"), Attr("insn","adrp x0, #65536")]), - Var("R0",Imm(64)), Int(65536,64)), Def(Tid(914, "%00000392"), - Attrs([Attr("address","0x790"), Attr("insn","ldr x0, [x0, #0xfe0]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(4064,64)),LittleEndian(),64)), -Def(Tid(921, "%00000399"), Attrs([Attr("address","0x794"), -Attr("insn","ldr w0, [x0]")]), Var("R0",Imm(64)), -UNSIGNED(64,Load(Var("mem",Mem(64,8)),Var("R0",Imm(64)),LittleEndian(),32))), -Def(Tid(927, "%0000039f"), Attrs([Attr("address","0x798"), -Attr("insn","cmp w0, #0x1")]), Var("#5",Imm(32)), -PLUS(Extract(31,0,Var("R0",Imm(64))),Int(4294967294,32))), -Def(Tid(932, "%000003a4"), Attrs([Attr("address","0x798"), -Attr("insn","cmp w0, #0x1")]), Var("VF",Imm(1)), -NEQ(SIGNED(33,PLUS(Var("#5",Imm(32)),Int(1,32))),PLUS(SIGNED(33,Extract(31,0,Var("R0",Imm(64)))),Int(8589934591,33)))), -Def(Tid(937, "%000003a9"), Attrs([Attr("address","0x798"), -Attr("insn","cmp w0, #0x1")]), Var("CF",Imm(1)), -NEQ(UNSIGNED(33,PLUS(Var("#5",Imm(32)),Int(1,32))),PLUS(UNSIGNED(33,Extract(31,0,Var("R0",Imm(64)))),Int(4294967295,33)))), -Def(Tid(941, "%000003ad"), Attrs([Attr("address","0x798"), -Attr("insn","cmp w0, #0x1")]), Var("ZF",Imm(1)), -EQ(PLUS(Var("#5",Imm(32)),Int(1,32)),Int(0,32))), Def(Tid(945, "%000003b1"), - Attrs([Attr("address","0x798"), Attr("insn","cmp w0, #0x1")]), - Var("NF",Imm(1)), Extract(31,31,PLUS(Var("#5",Imm(32)),Int(1,32))))]), -Jmps([Goto(Tid(951, "%000003b7"), Attrs([Attr("address","0x79C"), -Attr("insn","b.ne #0xc")]), NEQ(Var("ZF",Imm(1)),Int(1,1)), -Direct(Tid(949, "%000003b5"))), Goto(Tid(1_674, "%0000068a"), Attrs([]), - Int(1,1), Direct(Tid(1_035, "%0000040b")))])), Blk(Tid(1_035, "%0000040b"), - Attrs([Attr("address","0x7A0")]), Phis([]), -Defs([Def(Tid(1_038, "%0000040e"), Attrs([Attr("address","0x7A0"), -Attr("insn","mov w0, #0x5")]), Var("R0",Imm(64)), Int(5,64)), -Def(Tid(1_046, "%00000416"), Attrs([Attr("address","0x7A4"), -Attr("insn","str w0, [sp, #0x1c]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(28,64)),Extract(31,0,Var("R0",Imm(64))),LittleEndian(),32))]), -Jmps([Goto(Tid(1_675, "%0000068b"), Attrs([]), Int(1,1), -Direct(Tid(949, "%000003b5")))])), Blk(Tid(949, "%000003b5"), - Attrs([Attr("address","0x7A8")]), Phis([]), Defs([Def(Tid(959, "%000003bf"), - Attrs([Attr("address","0x7A8"), Attr("insn","ldr w0, [sp, #0x1c]")]), - Var("R0",Imm(64)), -UNSIGNED(64,Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(28,64)),LittleEndian(),32))), -Def(Tid(965, "%000003c5"), Attrs([Attr("address","0x7AC"), -Attr("insn","cmp w0, #0x3")]), Var("#6",Imm(32)), -PLUS(Extract(31,0,Var("R0",Imm(64))),Int(4294967292,32))), -Def(Tid(970, "%000003ca"), Attrs([Attr("address","0x7AC"), -Attr("insn","cmp w0, #0x3")]), Var("VF",Imm(1)), -NEQ(SIGNED(33,PLUS(Var("#6",Imm(32)),Int(1,32))),PLUS(SIGNED(33,Extract(31,0,Var("R0",Imm(64)))),Int(8589934589,33)))), -Def(Tid(975, "%000003cf"), Attrs([Attr("address","0x7AC"), -Attr("insn","cmp w0, #0x3")]), Var("CF",Imm(1)), -NEQ(UNSIGNED(33,PLUS(Var("#6",Imm(32)),Int(1,32))),PLUS(UNSIGNED(33,Extract(31,0,Var("R0",Imm(64)))),Int(4294967293,33)))), -Def(Tid(979, "%000003d3"), Attrs([Attr("address","0x7AC"), -Attr("insn","cmp w0, #0x3")]), Var("ZF",Imm(1)), -EQ(PLUS(Var("#6",Imm(32)),Int(1,32)),Int(0,32))), Def(Tid(983, "%000003d7"), - Attrs([Attr("address","0x7AC"), Attr("insn","cmp w0, #0x3")]), - Var("NF",Imm(1)), Extract(31,31,PLUS(Var("#6",Imm(32)),Int(1,32))))]), -Jmps([Goto(Tid(989, "%000003dd"), Attrs([Attr("address","0x7B0"), -Attr("insn","b.ne #0x14")]), NEQ(Var("ZF",Imm(1)),Int(1,1)), -Direct(Tid(987, "%000003db"))), Goto(Tid(1_676, "%0000068c"), Attrs([]), - Int(1,1), Direct(Tid(1_008, "%000003f0")))])), Blk(Tid(1_008, "%000003f0"), - Attrs([Attr("address","0x7B4")]), Phis([]), -Defs([Def(Tid(1_011, "%000003f3"), Attrs([Attr("address","0x7B4"), -Attr("insn","adrp x0, #65536")]), Var("R0",Imm(64)), Int(65536,64)), -Def(Tid(1_018, "%000003fa"), Attrs([Attr("address","0x7B8"), -Attr("insn","ldr x0, [x0, #0xfd8]")]), Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(4056,64)),LittleEndian(),64)), -Def(Tid(1_025, "%00000401"), Attrs([Attr("address","0x7BC"), -Attr("insn","ldr w0, [x0]")]), Var("R0",Imm(64)), -UNSIGNED(64,Load(Var("mem",Mem(64,8)),Var("R0",Imm(64)),LittleEndian(),32))), -Def(Tid(1_033, "%00000409"), Attrs([Attr("address","0x7C0"), -Attr("insn","str w0, [sp, #0x1c]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(28,64)),Extract(31,0,Var("R0",Imm(64))),LittleEndian(),32))]), -Jmps([Goto(Tid(1_677, "%0000068d"), Attrs([]), Int(1,1), -Direct(Tid(987, "%000003db")))])), Blk(Tid(987, "%000003db"), - Attrs([Attr("address","0x7C4")]), Phis([]), Defs([Def(Tid(995, "%000003e3"), - Attrs([Attr("address","0x7C4"), Attr("insn","mov w0, #0x0")]), - Var("R0",Imm(64)), Int(0,64)), Def(Tid(1_001, "%000003e9"), - Attrs([Attr("address","0x7C8"), Attr("insn","add sp, sp, #0x20")]), - Var("R31",Imm(64)), PLUS(Var("R31",Imm(64)),Int(32,64)))]), -Jmps([Call(Tid(1_006, "%000003ee"), Attrs([Attr("address","0x7CC"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))]))])), -Sub(Tid(1_643, "@register_tm_clones"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x6C0")]), - "register_tm_clones", Args([Arg(Tid(1_697, "%000006a1"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("register_tm_clones_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(652, "@register_tm_clones"), Attrs([Attr("address","0x6C0")]), - Phis([]), Defs([Def(Tid(655, "%0000028f"), Attrs([Attr("address","0x6C0"), -Attr("insn","adrp x0, #69632")]), Var("R0",Imm(64)), Int(69632,64)), -Def(Tid(661, "%00000295"), Attrs([Attr("address","0x6C4"), -Attr("insn","add x0, x0, #0x10")]), Var("R0",Imm(64)), -PLUS(Var("R0",Imm(64)),Int(16,64))), Def(Tid(666, "%0000029a"), - Attrs([Attr("address","0x6C8"), Attr("insn","adrp x1, #69632")]), - Var("R1",Imm(64)), Int(69632,64)), Def(Tid(672, "%000002a0"), - Attrs([Attr("address","0x6CC"), Attr("insn","add x1, x1, #0x10")]), - Var("R1",Imm(64)), PLUS(Var("R1",Imm(64)),Int(16,64))), -Def(Tid(679, "%000002a7"), Attrs([Attr("address","0x6D0"), -Attr("insn","sub x1, x1, x0")]), Var("R1",Imm(64)), -PLUS(PLUS(Var("R1",Imm(64)),NOT(Var("R0",Imm(64)))),Int(1,64))), -Def(Tid(685, "%000002ad"), Attrs([Attr("address","0x6D4"), -Attr("insn","lsr x2, x1, #63")]), Var("R2",Imm(64)), -Concat(Int(0,63),Extract(63,63,Var("R1",Imm(64))))), -Def(Tid(692, "%000002b4"), Attrs([Attr("address","0x6D8"), -Attr("insn","add x1, x2, x1, asr #3")]), Var("R1",Imm(64)), -PLUS(Var("R2",Imm(64)),ARSHIFT(Var("R1",Imm(64)),Int(3,3)))), -Def(Tid(698, "%000002ba"), Attrs([Attr("address","0x6DC"), -Attr("insn","asr x1, x1, #1")]), Var("R1",Imm(64)), -SIGNED(64,Extract(63,1,Var("R1",Imm(64)))))]), -Jmps([Goto(Tid(704, "%000002c0"), Attrs([Attr("address","0x6E0"), -Attr("insn","cbz x1, #0x18")]), EQ(Var("R1",Imm(64)),Int(0,64)), -Direct(Tid(702, "%000002be"))), Goto(Tid(1_678, "%0000068e"), Attrs([]), - Int(1,1), Direct(Tid(1_120, "%00000460")))])), Blk(Tid(1_120, "%00000460"), - Attrs([Attr("address","0x6E4")]), Phis([]), -Defs([Def(Tid(1_123, "%00000463"), Attrs([Attr("address","0x6E4"), -Attr("insn","adrp x2, #65536")]), Var("R2",Imm(64)), Int(65536,64)), -Def(Tid(1_130, "%0000046a"), Attrs([Attr("address","0x6E8"), -Attr("insn","ldr x2, [x2, #0xff8]")]), Var("R2",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R2",Imm(64)),Int(4088,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(1_135, "%0000046f"), Attrs([Attr("address","0x6EC"), -Attr("insn","cbz x2, #0xc")]), EQ(Var("R2",Imm(64)),Int(0,64)), -Direct(Tid(702, "%000002be"))), Goto(Tid(1_679, "%0000068f"), Attrs([]), - Int(1,1), Direct(Tid(1_139, "%00000473")))])), Blk(Tid(702, "%000002be"), - Attrs([Attr("address","0x6F8")]), Phis([]), Defs([]), -Jmps([Call(Tid(710, "%000002c6"), Attrs([Attr("address","0x6F8"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))])), -Blk(Tid(1_139, "%00000473"), Attrs([Attr("address","0x6F0")]), Phis([]), -Defs([Def(Tid(1_143, "%00000477"), Attrs([Attr("address","0x6F0"), -Attr("insn","mov x16, x2")]), Var("R16",Imm(64)), Var("R2",Imm(64)))]), -Jmps([Call(Tid(1_148, "%0000047c"), Attrs([Attr("address","0x6F4"), -Attr("insn","br x16")]), Int(1,1), -(Indirect(Var("R16",Imm(64))),))]))]))]))) \ No newline at end of file diff --git a/src/test/incorrect/nestedifglobal/gcc_pic/nestedifglobal.bir b/src/test/incorrect/nestedifglobal/gcc_pic/nestedifglobal.bir deleted file mode 100644 index a7e915206..000000000 --- a/src/test/incorrect/nestedifglobal/gcc_pic/nestedifglobal.bir +++ /dev/null @@ -1,283 +0,0 @@ -00000690: program -00000652: sub __cxa_finalize(__cxa_finalize_result) -00000691: __cxa_finalize_result :: out u32 = low:32[R0] - -0000045c: -00000554: R16 := 0x10000 -0000055b: R17 := mem[R16 + 0xFA8, el]:u64 -00000561: R16 := R16 + 0xFA8 -00000566: call R17 with noreturn - -00000653: sub __do_global_dtors_aux(__do_global_dtors_aux_result) -00000692: __do_global_dtors_aux_result :: out u32 = low:32[R0] - -000002ca: -000002ce: #3 := R31 - 0x20 -000002d4: mem := mem with [#3, el]:u64 <- R29 -000002da: mem := mem with [#3 + 8, el]:u64 <- R30 -000002de: R31 := #3 -000002e4: R29 := R31 -000002ec: mem := mem with [R31 + 0x10, el]:u64 <- R19 -000002f1: R19 := 0x11000 -000002f8: R0 := pad:64[mem[R19 + 0x10]] -000002ff: when 31:0[R0] <> 0 goto %000002fd -00000680: goto %00000425 - -00000425: -00000428: R0 := 0x10000 -0000042f: R0 := mem[R0 + 0xFD0, el]:u64 -00000435: when R0 = 0 goto %00000433 -00000681: goto %0000044c - -0000044c: -0000044f: R0 := 0x11000 -00000456: R0 := mem[R0 + 8, el]:u64 -0000045b: R30 := 0x730 -0000045e: call @__cxa_finalize with return %00000433 - -00000433: -0000043b: R30 := 0x734 -0000043d: call @deregister_tm_clones with return %0000043f - -0000043f: -00000442: R0 := 1 -0000044a: mem := mem with [R19 + 0x10] <- 7:0[R0] -00000682: goto %000002fd - -000002fd: -00000307: R19 := mem[R31 + 0x10, el]:u64 -0000030e: R29 := mem[R31, el]:u64 -00000313: R30 := mem[R31 + 8, el]:u64 -00000317: R31 := R31 + 0x20 -0000031c: call R30 with noreturn - -00000657: sub __libc_start_main(__libc_start_main_main, __libc_start_main_arg2, __libc_start_main_arg3, __libc_start_main_auxv, __libc_start_main_result) -00000693: __libc_start_main_main :: in u64 = R0 -00000694: __libc_start_main_arg2 :: in u32 = low:32[R1] -00000695: __libc_start_main_arg3 :: in out u64 = R2 -00000696: __libc_start_main_auxv :: in out u64 = R3 -00000697: __libc_start_main_result :: out u32 = low:32[R0] - -00000223: -0000053e: R16 := 0x10000 -00000545: R17 := mem[R16 + 0xFA0, el]:u64 -0000054b: R16 := R16 + 0xFA0 -00000550: call R17 with noreturn - -00000658: sub _fini(_fini_result) -00000698: _fini_result :: out u32 = low:32[R0] - -0000001f: -00000025: #0 := R31 - 0x10 -0000002b: mem := mem with [#0, el]:u64 <- R29 -00000031: mem := mem with [#0 + 8, el]:u64 <- R30 -00000035: R31 := #0 -0000003b: R29 := R31 -00000042: R29 := mem[R31, el]:u64 -00000047: R30 := mem[R31 + 8, el]:u64 -0000004b: R31 := R31 + 0x10 -00000050: call R30 with noreturn - -00000659: sub _init(_init_result) -00000699: _init_result :: out u32 = low:32[R0] - -000005ae: -000005b4: #8 := R31 - 0x10 -000005ba: mem := mem with [#8, el]:u64 <- R29 -000005c0: mem := mem with [#8 + 8, el]:u64 <- R30 -000005c4: R31 := #8 -000005ca: R29 := R31 -000005cf: R30 := 0x5C0 -000005d1: call @call_weak_fn with return %000005d3 - -000005d3: -000005d8: R29 := mem[R31, el]:u64 -000005dd: R30 := mem[R31 + 8, el]:u64 -000005e1: R31 := R31 + 0x10 -000005e6: call R30 with noreturn - -0000065a: sub _start(_start_result) -0000069a: _start_result :: out u32 = low:32[R0] - -000001e4: -000001e9: R29 := 0 -000001ee: R30 := 0 -000001f4: R5 := R0 -000001fb: R1 := mem[R31, el]:u64 -00000201: R2 := R31 + 8 -00000207: R6 := R31 -0000020c: R0 := 0x10000 -00000213: R0 := mem[R0 + 0xFF0, el]:u64 -00000218: R3 := 0 -0000021d: R4 := 0 -00000222: R30 := 0x670 -00000225: call @__libc_start_main with return %00000227 - -00000227: -0000022a: R30 := 0x674 -0000022d: call @abort with return %00000683 - -00000683: -00000684: call @call_weak_fn with noreturn - -0000065d: sub abort() - - -0000022b: -00000580: R16 := 0x10000 -00000587: R17 := mem[R16 + 0xFB8, el]:u64 -0000058d: R16 := R16 + 0xFB8 -00000592: call R17 with noreturn - -0000065e: sub call_weak_fn(call_weak_fn_result) -0000069b: call_weak_fn_result :: out u32 = low:32[R0] - -0000022f: -00000232: R0 := 0x10000 -00000239: R0 := mem[R0 + 0xFE8, el]:u64 -0000023f: when R0 = 0 goto %0000023d -00000685: goto %0000049c - -0000023d: -00000245: call R30 with noreturn - -0000049c: -0000049f: goto @__gmon_start__ - -0000049d: -0000056a: R16 := 0x10000 -00000571: R17 := mem[R16 + 0xFB0, el]:u64 -00000577: R16 := R16 + 0xFB0 -0000057c: call R17 with noreturn - -00000660: sub deregister_tm_clones(deregister_tm_clones_result) -0000069c: deregister_tm_clones_result :: out u32 = low:32[R0] - -0000024b: -0000024e: R0 := 0x11000 -00000254: R0 := R0 + 0x10 -00000259: R1 := 0x11000 -0000025f: R1 := R1 + 0x10 -00000265: #1 := ~R0 -0000026a: #2 := R1 + ~R0 -00000270: VF := extend:65[#2 + 1] <> extend:65[R1] + extend:65[#1] + 1 -00000276: CF := pad:65[#2 + 1] <> pad:65[R1] + pad:65[#1] + 1 -0000027a: ZF := #2 + 1 = 0 -0000027e: NF := 63:63[#2 + 1] -00000284: when ZF goto %00000282 -00000686: goto %0000047e - -0000047e: -00000481: R1 := 0x10000 -00000488: R1 := mem[R1 + 0xFC8, el]:u64 -0000048d: when R1 = 0 goto %00000282 -00000687: goto %00000491 - -00000282: -0000028a: call R30 with noreturn - -00000491: -00000495: R16 := R1 -0000049a: call R16 with noreturn - -00000663: sub frame_dummy(frame_dummy_result) -0000069d: frame_dummy_result :: out u32 = low:32[R0] - -00000322: -00000324: call @register_tm_clones with noreturn - -00000664: sub main(main_argc, main_argv, main_result) -0000069e: main_argc :: in u32 = low:32[R0] -0000069f: main_argv :: in out u64 = R1 -000006a0: main_result :: out u32 = low:32[R0] - -00000326: -0000032a: R31 := R31 - 0x20 -00000332: mem := mem with [R31 + 0xC, el]:u32 <- 31:0[R0] -00000337: R0 := 0x10000 -0000033e: R0 := mem[R0 + 0xFE0, el]:u64 -00000345: R1 := pad:64[mem[R31 + 0xC, el]:u32] -0000034d: mem := mem with [R0, el]:u32 <- 31:0[R1] -00000354: mem := mem with [R31 + 0x1C, el]:u32 <- 0 -00000359: R0 := 0x10000 -00000360: R0 := mem[R0 + 0xFE0, el]:u64 -00000367: R0 := pad:64[mem[R0, el]:u32] -0000036d: #4 := 31:0[R0] - 1 -00000372: VF := extend:33[#4 + 1] <> extend:33[31:0[R0]] + 0 -00000377: CF := pad:33[#4 + 1] <> pad:33[31:0[R0]] - 0x100000000 -0000037b: ZF := #4 + 1 = 0 -0000037f: NF := 31:31[#4 + 1] -00000385: when ZF <> 1 goto %00000383 -00000688: goto %00000418 - -00000418: -0000041b: R0 := 3 -00000423: mem := mem with [R31 + 0x1C, el]:u32 <- 31:0[R0] -00000689: goto %00000383 - -00000383: -0000038b: R0 := 0x10000 -00000392: R0 := mem[R0 + 0xFE0, el]:u64 -00000399: R0 := pad:64[mem[R0, el]:u32] -0000039f: #5 := 31:0[R0] - 2 -000003a4: VF := extend:33[#5 + 1] <> extend:33[31:0[R0]] - 1 -000003a9: CF := pad:33[#5 + 1] <> pad:33[31:0[R0]] + 0xFFFFFFFF -000003ad: ZF := #5 + 1 = 0 -000003b1: NF := 31:31[#5 + 1] -000003b7: when ZF <> 1 goto %000003b5 -0000068a: goto %0000040b - -0000040b: -0000040e: R0 := 5 -00000416: mem := mem with [R31 + 0x1C, el]:u32 <- 31:0[R0] -0000068b: goto %000003b5 - -000003b5: -000003bf: R0 := pad:64[mem[R31 + 0x1C, el]:u32] -000003c5: #6 := 31:0[R0] - 4 -000003ca: VF := extend:33[#6 + 1] <> extend:33[31:0[R0]] - 3 -000003cf: CF := pad:33[#6 + 1] <> pad:33[31:0[R0]] + 0xFFFFFFFD -000003d3: ZF := #6 + 1 = 0 -000003d7: NF := 31:31[#6 + 1] -000003dd: when ZF <> 1 goto %000003db -0000068c: goto %000003f0 - -000003f0: -000003f3: R0 := 0x10000 -000003fa: R0 := mem[R0 + 0xFD8, el]:u64 -00000401: R0 := pad:64[mem[R0, el]:u32] -00000409: mem := mem with [R31 + 0x1C, el]:u32 <- 31:0[R0] -0000068d: goto %000003db - -000003db: -000003e3: R0 := 0 -000003e9: R31 := R31 + 0x20 -000003ee: call R30 with noreturn - -0000066b: sub register_tm_clones(register_tm_clones_result) -000006a1: register_tm_clones_result :: out u32 = low:32[R0] - -0000028c: -0000028f: R0 := 0x11000 -00000295: R0 := R0 + 0x10 -0000029a: R1 := 0x11000 -000002a0: R1 := R1 + 0x10 -000002a7: R1 := R1 + ~R0 + 1 -000002ad: R2 := 0.63:63[R1] -000002b4: R1 := R2 + (R1 ~>> 3) -000002ba: R1 := extend:64[63:1[R1]] -000002c0: when R1 = 0 goto %000002be -0000068e: goto %00000460 - -00000460: -00000463: R2 := 0x10000 -0000046a: R2 := mem[R2 + 0xFF8, el]:u64 -0000046f: when R2 = 0 goto %000002be -0000068f: goto %00000473 - -000002be: -000002c6: call R30 with noreturn - -00000473: -00000477: R16 := R2 -0000047c: call R16 with noreturn diff --git a/src/test/incorrect/nestedifglobal/gcc_pic/nestedifglobal.expected b/src/test/incorrect/nestedifglobal/gcc_pic/nestedifglobal.expected index 6c78be72c..a2510eea0 100644 --- a/src/test/incorrect/nestedifglobal/gcc_pic/nestedifglobal.expected +++ b/src/test/incorrect/nestedifglobal/gcc_pic/nestedifglobal.expected @@ -82,7 +82,7 @@ procedure {:extern} rely_reflexive(); procedure {:extern} guarantee_reflexive(); modifies Gamma_mem, mem; -procedure main_1876(); +procedure main(); modifies CF, Gamma_CF, Gamma_NF, Gamma_R0, Gamma_R1, Gamma_R31, Gamma_VF, Gamma_ZF, Gamma_mem, Gamma_stack, NF, R0, R1, R31, VF, ZF, mem, stack; free requires (memory_load64_le(mem, 69632bv64) == 0bv64); free requires (memory_load64_le(mem, 69640bv64) == 69640bv64); @@ -103,32 +103,32 @@ procedure main_1876(); free ensures (memory_load64_le(mem, 69616bv64) == 1876bv64); free ensures (memory_load64_le(mem, 69640bv64) == 69640bv64); -implementation main_1876() +implementation main() { var #4: bv32; var #5: bv32; var #6: bv32; + var $load$18: bv64; + var $load$19: bv32; + var $load$20: bv64; + var $load$21: bv32; + var $load$22: bv64; + var $load$23: bv32; + var $load$24: bv32; + var $load$25: bv64; + var $load$26: bv32; var Gamma_#4: bool; var Gamma_#5: bool; var Gamma_#6: bool; - var Gamma_load18: bool; - var Gamma_load19: bool; - var Gamma_load20: bool; - var Gamma_load21: bool; - var Gamma_load22: bool; - var Gamma_load23: bool; - var Gamma_load24: bool; - var Gamma_load25: bool; - var Gamma_load26: bool; - var load18: bv64; - var load19: bv32; - var load20: bv64; - var load21: bv32; - var load22: bv64; - var load23: bv32; - var load24: bv32; - var load25: bv64; - var load26: bv32; + var Gamma_$load$18: bool; + var Gamma_$load$19: bool; + var Gamma_$load$20: bool; + var Gamma_$load$21: bool; + var Gamma_$load$22: bool; + var Gamma_$load$23: bool; + var Gamma_$load$24: bool; + var Gamma_$load$25: bool; + var Gamma_$load$26: bool; lmain: assume {:captureState "lmain"} true; R31, Gamma_R31 := bvadd64(R31, 18446744073709551584bv64), Gamma_R31; @@ -136,10 +136,10 @@ implementation main_1876() assume {:captureState "%00000332"} true; R0, Gamma_R0 := 65536bv64, true; call rely(); - load18, Gamma_load18 := memory_load64_le(mem, bvadd64(R0, 4064bv64)), (gamma_load64(Gamma_mem, bvadd64(R0, 4064bv64)) || L(mem, bvadd64(R0, 4064bv64))); - R0, Gamma_R0 := load18, Gamma_load18; - load19, Gamma_load19 := memory_load32_le(stack, bvadd64(R31, 12bv64)), gamma_load32(Gamma_stack, bvadd64(R31, 12bv64)); - R1, Gamma_R1 := zero_extend32_32(load19), Gamma_load19; + $load$18, Gamma_$load$18 := memory_load64_le(mem, bvadd64(R0, 4064bv64)), (gamma_load64(Gamma_mem, bvadd64(R0, 4064bv64)) || L(mem, bvadd64(R0, 4064bv64))); + R0, Gamma_R0 := $load$18, Gamma_$load$18; + $load$19, Gamma_$load$19 := memory_load32_le(stack, bvadd64(R31, 12bv64)), gamma_load32(Gamma_stack, bvadd64(R31, 12bv64)); + R1, Gamma_R1 := zero_extend32_32($load$19), Gamma_$load$19; call rely(); assert (L(mem, R0) ==> Gamma_R1); mem, Gamma_mem := memory_store32_le(mem, R0, R1[32:0]), gamma_store32(Gamma_mem, R0, Gamma_R1); @@ -148,11 +148,11 @@ implementation main_1876() assume {:captureState "%00000354"} true; R0, Gamma_R0 := 65536bv64, true; call rely(); - load20, Gamma_load20 := memory_load64_le(mem, bvadd64(R0, 4064bv64)), (gamma_load64(Gamma_mem, bvadd64(R0, 4064bv64)) || L(mem, bvadd64(R0, 4064bv64))); - R0, Gamma_R0 := load20, Gamma_load20; + $load$20, Gamma_$load$20 := memory_load64_le(mem, bvadd64(R0, 4064bv64)), (gamma_load64(Gamma_mem, bvadd64(R0, 4064bv64)) || L(mem, bvadd64(R0, 4064bv64))); + R0, Gamma_R0 := $load$20, Gamma_$load$20; call rely(); - load21, Gamma_load21 := memory_load32_le(mem, R0), (gamma_load32(Gamma_mem, R0) || L(mem, R0)); - R0, Gamma_R0 := zero_extend32_32(load21), Gamma_load21; + $load$21, Gamma_$load$21 := memory_load32_le(mem, R0), (gamma_load32(Gamma_mem, R0) || L(mem, R0)); + R0, Gamma_R0 := zero_extend32_32($load$21), Gamma_$load$21; #4, Gamma_#4 := bvadd32(R0[32:0], 4294967295bv32), Gamma_R0; VF, Gamma_VF := bvnot1(bvcomp33(sign_extend1_32(bvadd32(#4, 1bv32)), bvadd33(sign_extend1_32(R0[32:0]), 0bv33))), (Gamma_R0 && Gamma_#4); CF, Gamma_CF := bvnot1(bvcomp33(zero_extend1_32(bvadd32(#4, 1bv32)), bvadd33(zero_extend1_32(R0[32:0]), 4294967296bv33))), (Gamma_R0 && Gamma_#4); @@ -160,29 +160,21 @@ implementation main_1876() NF, Gamma_NF := bvadd32(#4, 1bv32)[32:31], Gamma_#4; assert Gamma_ZF; goto lmain_goto_l00000383, lmain_goto_l00000418; - lmain_goto_l00000418: - assume {:captureState "lmain_goto_l00000418"} true; - assume (bvnot1(bvcomp1(ZF, 1bv1)) == 0bv1); + l00000418: + assume {:captureState "l00000418"} true; R0, Gamma_R0 := 3bv64, true; stack, Gamma_stack := memory_store32_le(stack, bvadd64(R31, 28bv64), R0[32:0]), gamma_store32(Gamma_stack, bvadd64(R31, 28bv64), Gamma_R0); assume {:captureState "%00000423"} true; - goto l00000418; - l00000418: - assume {:captureState "l00000418"} true; - goto l00000383; - lmain_goto_l00000383: - assume {:captureState "lmain_goto_l00000383"} true; - assume (bvnot1(bvcomp1(ZF, 1bv1)) != 0bv1); goto l00000383; l00000383: assume {:captureState "l00000383"} true; R0, Gamma_R0 := 65536bv64, true; call rely(); - load22, Gamma_load22 := memory_load64_le(mem, bvadd64(R0, 4064bv64)), (gamma_load64(Gamma_mem, bvadd64(R0, 4064bv64)) || L(mem, bvadd64(R0, 4064bv64))); - R0, Gamma_R0 := load22, Gamma_load22; + $load$22, Gamma_$load$22 := memory_load64_le(mem, bvadd64(R0, 4064bv64)), (gamma_load64(Gamma_mem, bvadd64(R0, 4064bv64)) || L(mem, bvadd64(R0, 4064bv64))); + R0, Gamma_R0 := $load$22, Gamma_$load$22; call rely(); - load23, Gamma_load23 := memory_load32_le(mem, R0), (gamma_load32(Gamma_mem, R0) || L(mem, R0)); - R0, Gamma_R0 := zero_extend32_32(load23), Gamma_load23; + $load$23, Gamma_$load$23 := memory_load32_le(mem, R0), (gamma_load32(Gamma_mem, R0) || L(mem, R0)); + R0, Gamma_R0 := zero_extend32_32($load$23), Gamma_$load$23; #5, Gamma_#5 := bvadd32(R0[32:0], 4294967294bv32), Gamma_R0; VF, Gamma_VF := bvnot1(bvcomp33(sign_extend1_32(bvadd32(#5, 1bv32)), bvadd33(sign_extend1_32(R0[32:0]), 8589934591bv33))), (Gamma_R0 && Gamma_#5); CF, Gamma_CF := bvnot1(bvcomp33(zero_extend1_32(bvadd32(#5, 1bv32)), bvadd33(zero_extend1_32(R0[32:0]), 4294967295bv33))), (Gamma_R0 && Gamma_#5); @@ -190,24 +182,16 @@ implementation main_1876() NF, Gamma_NF := bvadd32(#5, 1bv32)[32:31], Gamma_#5; assert Gamma_ZF; goto l00000383_goto_l000003b5, l00000383_goto_l0000040b; - l00000383_goto_l0000040b: - assume {:captureState "l00000383_goto_l0000040b"} true; - assume (bvnot1(bvcomp1(ZF, 1bv1)) == 0bv1); + l0000040b: + assume {:captureState "l0000040b"} true; R0, Gamma_R0 := 5bv64, true; stack, Gamma_stack := memory_store32_le(stack, bvadd64(R31, 28bv64), R0[32:0]), gamma_store32(Gamma_stack, bvadd64(R31, 28bv64), Gamma_R0); assume {:captureState "%00000416"} true; - goto l0000040b; - l0000040b: - assume {:captureState "l0000040b"} true; - goto l000003b5; - l00000383_goto_l000003b5: - assume {:captureState "l00000383_goto_l000003b5"} true; - assume (bvnot1(bvcomp1(ZF, 1bv1)) != 0bv1); goto l000003b5; l000003b5: assume {:captureState "l000003b5"} true; - load24, Gamma_load24 := memory_load32_le(stack, bvadd64(R31, 28bv64)), gamma_load32(Gamma_stack, bvadd64(R31, 28bv64)); - R0, Gamma_R0 := zero_extend32_32(load24), Gamma_load24; + $load$24, Gamma_$load$24 := memory_load32_le(stack, bvadd64(R31, 28bv64)), gamma_load32(Gamma_stack, bvadd64(R31, 28bv64)); + R0, Gamma_R0 := zero_extend32_32($load$24), Gamma_$load$24; #6, Gamma_#6 := bvadd32(R0[32:0], 4294967292bv32), Gamma_R0; VF, Gamma_VF := bvnot1(bvcomp33(sign_extend1_32(bvadd32(#6, 1bv32)), bvadd33(sign_extend1_32(R0[32:0]), 8589934589bv33))), (Gamma_R0 && Gamma_#6); CF, Gamma_CF := bvnot1(bvcomp33(zero_extend1_32(bvadd32(#6, 1bv32)), bvadd33(zero_extend1_32(R0[32:0]), 4294967293bv33))), (Gamma_R0 && Gamma_#6); @@ -215,33 +199,49 @@ implementation main_1876() NF, Gamma_NF := bvadd32(#6, 1bv32)[32:31], Gamma_#6; assert Gamma_ZF; goto l000003b5_goto_l000003db, l000003b5_goto_l000003f0; - l000003b5_goto_l000003f0: - assume {:captureState "l000003b5_goto_l000003f0"} true; - assume (bvnot1(bvcomp1(ZF, 1bv1)) == 0bv1); + l000003f0: + assume {:captureState "l000003f0"} true; R0, Gamma_R0 := 65536bv64, true; call rely(); - load25, Gamma_load25 := memory_load64_le(mem, bvadd64(R0, 4056bv64)), (gamma_load64(Gamma_mem, bvadd64(R0, 4056bv64)) || L(mem, bvadd64(R0, 4056bv64))); - R0, Gamma_R0 := load25, Gamma_load25; + $load$25, Gamma_$load$25 := memory_load64_le(mem, bvadd64(R0, 4056bv64)), (gamma_load64(Gamma_mem, bvadd64(R0, 4056bv64)) || L(mem, bvadd64(R0, 4056bv64))); + R0, Gamma_R0 := $load$25, Gamma_$load$25; call rely(); - load26, Gamma_load26 := memory_load32_le(mem, R0), (gamma_load32(Gamma_mem, R0) || L(mem, R0)); - R0, Gamma_R0 := zero_extend32_32(load26), Gamma_load26; + $load$26, Gamma_$load$26 := memory_load32_le(mem, R0), (gamma_load32(Gamma_mem, R0) || L(mem, R0)); + R0, Gamma_R0 := zero_extend32_32($load$26), Gamma_$load$26; stack, Gamma_stack := memory_store32_le(stack, bvadd64(R31, 28bv64), R0[32:0]), gamma_store32(Gamma_stack, bvadd64(R31, 28bv64), Gamma_R0); assume {:captureState "%00000409"} true; - goto l000003f0; - l000003f0: - assume {:captureState "l000003f0"} true; - goto l000003db; - l000003b5_goto_l000003db: - assume {:captureState "l000003b5_goto_l000003db"} true; - assume (bvnot1(bvcomp1(ZF, 1bv1)) != 0bv1); goto l000003db; l000003db: assume {:captureState "l000003db"} true; R0, Gamma_R0 := 0bv64, true; R31, Gamma_R31 := bvadd64(R31, 32bv64), Gamma_R31; - goto main_1876_basil_return; - main_1876_basil_return: - assume {:captureState "main_1876_basil_return"} true; + goto main_basil_return; + lmain_goto_l00000383: + assume {:captureState "lmain_goto_l00000383"} true; + assume (bvnot1(bvcomp1(ZF, 1bv1)) != 0bv1); + goto l00000383; + lmain_goto_l00000418: + assume {:captureState "lmain_goto_l00000418"} true; + assume (bvnot1(bvcomp1(ZF, 1bv1)) == 0bv1); + goto l00000418; + l00000383_goto_l000003b5: + assume {:captureState "l00000383_goto_l000003b5"} true; + assume (bvnot1(bvcomp1(ZF, 1bv1)) != 0bv1); + goto l000003b5; + l00000383_goto_l0000040b: + assume {:captureState "l00000383_goto_l0000040b"} true; + assume (bvnot1(bvcomp1(ZF, 1bv1)) == 0bv1); + goto l0000040b; + l000003b5_goto_l000003db: + assume {:captureState "l000003b5_goto_l000003db"} true; + assume (bvnot1(bvcomp1(ZF, 1bv1)) != 0bv1); + goto l000003db; + l000003b5_goto_l000003f0: + assume {:captureState "l000003b5_goto_l000003f0"} true; + assume (bvnot1(bvcomp1(ZF, 1bv1)) == 0bv1); + goto l000003f0; + main_basil_return: + assume {:captureState "main_basil_return"} true; return; } diff --git a/src/test/incorrect/nestedifglobal/gcc_pic/nestedifglobal.gts b/src/test/incorrect/nestedifglobal/gcc_pic/nestedifglobal.gts deleted file mode 100644 index dd1f5e3fc..000000000 Binary files a/src/test/incorrect/nestedifglobal/gcc_pic/nestedifglobal.gts and /dev/null differ diff --git a/src/test/incorrect/nestedifglobal/gcc_pic/nestedifglobal.md5sum b/src/test/incorrect/nestedifglobal/gcc_pic/nestedifglobal.md5sum new file mode 100644 index 000000000..af8110b69 --- /dev/null +++ b/src/test/incorrect/nestedifglobal/gcc_pic/nestedifglobal.md5sum @@ -0,0 +1,5 @@ +5a4831f7c580188aa6ac336b0cf0f1a9 incorrect/nestedifglobal/gcc_pic/a.out +829639c034657a3d7b3c0006f77e5f0a incorrect/nestedifglobal/gcc_pic/nestedifglobal.adt +a08ef64a33e6641706414900e6c2c5f7 incorrect/nestedifglobal/gcc_pic/nestedifglobal.bir +a47a028a779077c6ea3b796391c27097 incorrect/nestedifglobal/gcc_pic/nestedifglobal.relf +2a50bc83927f7275ad3d55ffb9b178e9 incorrect/nestedifglobal/gcc_pic/nestedifglobal.gts diff --git a/src/test/incorrect/nestedifglobal/gcc_pic/nestedifglobal.relf b/src/test/incorrect/nestedifglobal/gcc_pic/nestedifglobal.relf deleted file mode 100644 index e5cab42ff..000000000 --- a/src/test/incorrect/nestedifglobal/gcc_pic/nestedifglobal.relf +++ /dev/null @@ -1,124 +0,0 @@ - -Relocation section '.rela.dyn' at offset 0x460 contains 10 entries: - Offset Info Type Symbol's Value Symbol's Name + Addend -0000000000010d88 0000000000000403 R_AARCH64_RELATIVE 750 -0000000000010d90 0000000000000403 R_AARCH64_RELATIVE 700 -0000000000010fd8 0000000000000403 R_AARCH64_RELATIVE 11018 -0000000000010fe0 0000000000000403 R_AARCH64_RELATIVE 11014 -0000000000010ff0 0000000000000403 R_AARCH64_RELATIVE 754 -0000000000011008 0000000000000403 R_AARCH64_RELATIVE 11008 -0000000000010fc8 0000000400000401 R_AARCH64_GLOB_DAT 0000000000000000 _ITM_deregisterTMCloneTable + 0 -0000000000010fd0 0000000500000401 R_AARCH64_GLOB_DAT 0000000000000000 __cxa_finalize@GLIBC_2.17 + 0 -0000000000010fe8 0000000600000401 R_AARCH64_GLOB_DAT 0000000000000000 __gmon_start__ + 0 -0000000000010ff8 0000000800000401 R_AARCH64_GLOB_DAT 0000000000000000 _ITM_registerTMCloneTable + 0 - -Relocation section '.rela.plt' at offset 0x550 contains 4 entries: - Offset Info Type Symbol's Value Symbol's Name + Addend -0000000000010fa0 0000000300000402 R_AARCH64_JUMP_SLOT 0000000000000000 __libc_start_main@GLIBC_2.34 + 0 -0000000000010fa8 0000000500000402 R_AARCH64_JUMP_SLOT 0000000000000000 __cxa_finalize@GLIBC_2.17 + 0 -0000000000010fb0 0000000600000402 R_AARCH64_JUMP_SLOT 0000000000000000 __gmon_start__ + 0 -0000000000010fb8 0000000700000402 R_AARCH64_JUMP_SLOT 0000000000000000 abort@GLIBC_2.17 + 0 - -Symbol table '.dynsym' contains 9 entries: - Num: Value Size Type Bind Vis Ndx Name - 0: 0000000000000000 0 NOTYPE LOCAL DEFAULT UND - 1: 00000000000005b0 0 SECTION LOCAL DEFAULT 11 .init - 2: 0000000000011000 0 SECTION LOCAL DEFAULT 22 .data - 3: 0000000000000000 0 FUNC GLOBAL DEFAULT UND __libc_start_main@GLIBC_2.34 (2) - 4: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_deregisterTMCloneTable - 5: 0000000000000000 0 FUNC WEAK DEFAULT UND __cxa_finalize@GLIBC_2.17 (3) - 6: 0000000000000000 0 NOTYPE WEAK DEFAULT UND __gmon_start__ - 7: 0000000000000000 0 FUNC GLOBAL DEFAULT UND abort@GLIBC_2.17 (3) - 8: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_registerTMCloneTable - -Symbol table '.symtab' contains 89 entries: - Num: Value Size Type Bind Vis Ndx Name - 0: 0000000000000000 0 NOTYPE LOCAL DEFAULT UND - 1: 0000000000000238 0 SECTION LOCAL DEFAULT 1 .interp - 2: 0000000000000254 0 SECTION LOCAL DEFAULT 2 .note.gnu.build-id - 3: 0000000000000278 0 SECTION LOCAL DEFAULT 3 .note.ABI-tag - 4: 0000000000000298 0 SECTION LOCAL DEFAULT 4 .gnu.hash - 5: 00000000000002b8 0 SECTION LOCAL DEFAULT 5 .dynsym - 6: 0000000000000390 0 SECTION LOCAL DEFAULT 6 .dynstr - 7: 000000000000041e 0 SECTION LOCAL DEFAULT 7 .gnu.version - 8: 0000000000000430 0 SECTION LOCAL DEFAULT 8 .gnu.version_r - 9: 0000000000000460 0 SECTION LOCAL DEFAULT 9 .rela.dyn - 10: 0000000000000550 0 SECTION LOCAL DEFAULT 10 .rela.plt - 11: 00000000000005b0 0 SECTION LOCAL DEFAULT 11 .init - 12: 00000000000005d0 0 SECTION LOCAL DEFAULT 12 .plt - 13: 0000000000000640 0 SECTION LOCAL DEFAULT 13 .text - 14: 00000000000007d0 0 SECTION LOCAL DEFAULT 14 .fini - 15: 00000000000007e4 0 SECTION LOCAL DEFAULT 15 .rodata - 16: 00000000000007e8 0 SECTION LOCAL DEFAULT 16 .eh_frame_hdr - 17: 0000000000000828 0 SECTION LOCAL DEFAULT 17 .eh_frame - 18: 0000000000010d88 0 SECTION LOCAL DEFAULT 18 .init_array - 19: 0000000000010d90 0 SECTION LOCAL DEFAULT 19 .fini_array - 20: 0000000000010d98 0 SECTION LOCAL DEFAULT 20 .dynamic - 21: 0000000000010f88 0 SECTION LOCAL DEFAULT 21 .got - 22: 0000000000011000 0 SECTION LOCAL DEFAULT 22 .data - 23: 0000000000011010 0 SECTION LOCAL DEFAULT 23 .bss - 24: 0000000000000000 0 SECTION LOCAL DEFAULT 24 .comment - 25: 0000000000000000 0 FILE LOCAL DEFAULT ABS Scrt1.o - 26: 0000000000000278 0 NOTYPE LOCAL DEFAULT 3 $d - 27: 0000000000000278 32 OBJECT LOCAL DEFAULT 3 __abi_tag - 28: 0000000000000640 0 NOTYPE LOCAL DEFAULT 13 $x - 29: 000000000000083c 0 NOTYPE LOCAL DEFAULT 17 $d - 30: 00000000000007e4 0 NOTYPE LOCAL DEFAULT 15 $d - 31: 0000000000000000 0 FILE LOCAL DEFAULT ABS crti.o - 32: 0000000000000674 0 NOTYPE LOCAL DEFAULT 13 $x - 33: 0000000000000674 20 FUNC LOCAL DEFAULT 13 call_weak_fn - 34: 00000000000005b0 0 NOTYPE LOCAL DEFAULT 11 $x - 35: 00000000000007d0 0 NOTYPE LOCAL DEFAULT 14 $x - 36: 0000000000000000 0 FILE LOCAL DEFAULT ABS crtn.o - 37: 00000000000005c0 0 NOTYPE LOCAL DEFAULT 11 $x - 38: 00000000000007dc 0 NOTYPE LOCAL DEFAULT 14 $x - 39: 0000000000000000 0 FILE LOCAL DEFAULT ABS crtstuff.c - 40: 0000000000000690 0 NOTYPE LOCAL DEFAULT 13 $x - 41: 0000000000000690 0 FUNC LOCAL DEFAULT 13 deregister_tm_clones - 42: 00000000000006c0 0 FUNC LOCAL DEFAULT 13 register_tm_clones - 43: 0000000000011008 0 NOTYPE LOCAL DEFAULT 22 $d - 44: 0000000000000700 0 FUNC LOCAL DEFAULT 13 __do_global_dtors_aux - 45: 0000000000011010 1 OBJECT LOCAL DEFAULT 23 completed.0 - 46: 0000000000010d90 0 NOTYPE LOCAL DEFAULT 19 $d - 47: 0000000000010d90 0 OBJECT LOCAL DEFAULT 19 __do_global_dtors_aux_fini_array_entry - 48: 0000000000000750 0 FUNC LOCAL DEFAULT 13 frame_dummy - 49: 0000000000010d88 0 NOTYPE LOCAL DEFAULT 18 $d - 50: 0000000000010d88 0 OBJECT LOCAL DEFAULT 18 __frame_dummy_init_array_entry - 51: 0000000000000850 0 NOTYPE LOCAL DEFAULT 17 $d - 52: 0000000000011010 0 NOTYPE LOCAL DEFAULT 23 $d - 53: 0000000000000000 0 FILE LOCAL DEFAULT ABS nestedifglobal.c - 54: 0000000000011014 0 NOTYPE LOCAL DEFAULT 23 $d - 55: 0000000000000754 0 NOTYPE LOCAL DEFAULT 13 $x - 56: 00000000000008b0 0 NOTYPE LOCAL DEFAULT 17 $d - 57: 0000000000000000 0 FILE LOCAL DEFAULT ABS crtstuff.c - 58: 00000000000008c8 0 NOTYPE LOCAL DEFAULT 17 $d - 59: 00000000000008c8 0 OBJECT LOCAL DEFAULT 17 __FRAME_END__ - 60: 0000000000000000 0 FILE LOCAL DEFAULT ABS - 61: 0000000000010d98 0 OBJECT LOCAL DEFAULT ABS _DYNAMIC - 62: 00000000000007e8 0 NOTYPE LOCAL DEFAULT 16 __GNU_EH_FRAME_HDR - 63: 0000000000010fc0 0 OBJECT LOCAL DEFAULT ABS _GLOBAL_OFFSET_TABLE_ - 64: 00000000000005d0 0 NOTYPE LOCAL DEFAULT 12 $x - 65: 0000000000000000 0 FUNC GLOBAL DEFAULT UND __libc_start_main@GLIBC_2.34 - 66: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_deregisterTMCloneTable - 67: 0000000000011000 0 NOTYPE WEAK DEFAULT 22 data_start - 68: 0000000000011010 0 NOTYPE GLOBAL DEFAULT 23 __bss_start__ - 69: 0000000000000000 0 FUNC WEAK DEFAULT UND __cxa_finalize@GLIBC_2.17 - 70: 0000000000011020 0 NOTYPE GLOBAL DEFAULT 23 _bss_end__ - 71: 0000000000011010 0 NOTYPE GLOBAL DEFAULT 22 _edata - 72: 0000000000011018 4 OBJECT GLOBAL DEFAULT 23 z - 73: 0000000000011014 4 OBJECT GLOBAL DEFAULT 23 x - 74: 00000000000007d0 0 FUNC GLOBAL HIDDEN 14 _fini - 75: 0000000000011020 0 NOTYPE GLOBAL DEFAULT 23 __bss_end__ - 76: 0000000000011000 0 NOTYPE GLOBAL DEFAULT 22 __data_start - 77: 0000000000000000 0 NOTYPE WEAK DEFAULT UND __gmon_start__ - 78: 0000000000011008 0 OBJECT GLOBAL HIDDEN 22 __dso_handle - 79: 0000000000000000 0 FUNC GLOBAL DEFAULT UND abort@GLIBC_2.17 - 80: 00000000000007e4 4 OBJECT GLOBAL DEFAULT 15 _IO_stdin_used - 81: 0000000000011020 0 NOTYPE GLOBAL DEFAULT 23 _end - 82: 0000000000000640 52 FUNC GLOBAL DEFAULT 13 _start - 83: 0000000000011020 0 NOTYPE GLOBAL DEFAULT 23 __end__ - 84: 0000000000011010 0 NOTYPE GLOBAL DEFAULT 23 __bss_start - 85: 0000000000000754 124 FUNC GLOBAL DEFAULT 13 main - 86: 0000000000011010 0 OBJECT GLOBAL HIDDEN 22 __TMC_END__ - 87: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_registerTMCloneTable - 88: 00000000000005b0 0 FUNC GLOBAL HIDDEN 11 _init diff --git a/src/test/incorrect/nestedifglobal/gcc_pic/nestedifglobal_gtirb.expected b/src/test/incorrect/nestedifglobal/gcc_pic/nestedifglobal_gtirb.expected index 97fd41a06..458dee6c9 100644 --- a/src/test/incorrect/nestedifglobal/gcc_pic/nestedifglobal_gtirb.expected +++ b/src/test/incorrect/nestedifglobal/gcc_pic/nestedifglobal_gtirb.expected @@ -81,7 +81,7 @@ procedure {:extern} rely_reflexive(); procedure {:extern} guarantee_reflexive(); modifies Gamma_mem, mem; -procedure main_1876(); +procedure main(); modifies CF, Gamma_CF, Gamma_NF, Gamma_R0, Gamma_R1, Gamma_R31, Gamma_VF, Gamma_ZF, Gamma_mem, Gamma_stack, NF, R0, R1, R31, VF, ZF, mem, stack; free requires (memory_load64_le(mem, 69632bv64) == 0bv64); free requires (memory_load64_le(mem, 69640bv64) == 69640bv64); @@ -102,155 +102,155 @@ procedure main_1876(); free ensures (memory_load64_le(mem, 69616bv64) == 1876bv64); free ensures (memory_load64_le(mem, 69640bv64) == 69640bv64); -implementation main_1876() +implementation main() { - var Cse0__5_1_10: bv32; - var Cse0__5_3_1: bv32; - var Cse0__5_5_3: bv32; - var Gamma_Cse0__5_1_10: bool; - var Gamma_Cse0__5_3_1: bool; - var Gamma_Cse0__5_5_3: bool; - var Gamma_load14: bool; - var Gamma_load15: bool; - var Gamma_load16: bool; - var Gamma_load17: bool; - var Gamma_load18: bool; - var Gamma_load19: bool; - var Gamma_load20: bool; - var Gamma_load21: bool; - var Gamma_load22: bool; - var Gamma_load23: bool; - var Gamma_load24: bool; - var load14: bv64; - var load15: bv32; - var load16: bv64; - var load17: bv32; - var load18: bv32; - var load19: bv64; - var load20: bv32; - var load21: bv64; - var load22: bv32; - var load23: bv64; - var load24: bv32; - main_1876__0___4YKHPc_R16UBSwXbttMHg: - assume {:captureState "main_1876__0___4YKHPc_R16UBSwXbttMHg"} true; + var $load14: bv64; + var $load15: bv32; + var $load16: bv64; + var $load17: bv32; + var $load18: bv32; + var $load19: bv64; + var $load20: bv32; + var $load21: bv64; + var $load22: bv32; + var $load23: bv64; + var $load24: bv32; + var Cse0__5$1$10: bv32; + var Cse0__5$3$1: bv32; + var Cse0__5$5$3: bv32; + var Gamma_$load14: bool; + var Gamma_$load15: bool; + var Gamma_$load16: bool; + var Gamma_$load17: bool; + var Gamma_$load18: bool; + var Gamma_$load19: bool; + var Gamma_$load20: bool; + var Gamma_$load21: bool; + var Gamma_$load22: bool; + var Gamma_$load23: bool; + var Gamma_$load24: bool; + var Gamma_Cse0__5$1$10: bool; + var Gamma_Cse0__5$3$1: bool; + var Gamma_Cse0__5$5$3: bool; + $main$__0__$_4YKHPc_R16UBSwXbttMHg: + assume {:captureState "$main$__0__$_4YKHPc_R16UBSwXbttMHg"} true; R31, Gamma_R31 := bvadd64(R31, 18446744073709551584bv64), Gamma_R31; stack, Gamma_stack := memory_store32_le(stack, bvadd64(R31, 12bv64), R0[32:0]), gamma_store32(Gamma_stack, bvadd64(R31, 12bv64), Gamma_R0); - assume {:captureState "1880_0"} true; + assume {:captureState "1880$0"} true; R0, Gamma_R0 := 65536bv64, true; call rely(); - load14, Gamma_load14 := memory_load64_le(mem, bvadd64(R0, 4064bv64)), (gamma_load64(Gamma_mem, bvadd64(R0, 4064bv64)) || L(mem, bvadd64(R0, 4064bv64))); - R0, Gamma_R0 := load14, Gamma_load14; - load15, Gamma_load15 := memory_load32_le(stack, bvadd64(R31, 12bv64)), gamma_load32(Gamma_stack, bvadd64(R31, 12bv64)); - R1, Gamma_R1 := zero_extend32_32(load15), Gamma_load15; + $load14, Gamma_$load14 := memory_load64_le(mem, bvadd64(R0, 4064bv64)), (gamma_load64(Gamma_mem, bvadd64(R0, 4064bv64)) || L(mem, bvadd64(R0, 4064bv64))); + R0, Gamma_R0 := $load14, Gamma_$load14; + $load15, Gamma_$load15 := memory_load32_le(stack, bvadd64(R31, 12bv64)), gamma_load32(Gamma_stack, bvadd64(R31, 12bv64)); + R1, Gamma_R1 := zero_extend32_32($load15), Gamma_$load15; call rely(); assert (L(mem, R0) ==> Gamma_R1); mem, Gamma_mem := memory_store32_le(mem, R0, R1[32:0]), gamma_store32(Gamma_mem, R0, Gamma_R1); - assume {:captureState "1896_0"} true; + assume {:captureState "1896$0"} true; stack, Gamma_stack := memory_store32_le(stack, bvadd64(R31, 28bv64), 0bv32), gamma_store32(Gamma_stack, bvadd64(R31, 28bv64), true); - assume {:captureState "1900_0"} true; + assume {:captureState "1900$0"} true; R0, Gamma_R0 := 65536bv64, true; call rely(); - load16, Gamma_load16 := memory_load64_le(mem, bvadd64(R0, 4064bv64)), (gamma_load64(Gamma_mem, bvadd64(R0, 4064bv64)) || L(mem, bvadd64(R0, 4064bv64))); - R0, Gamma_R0 := load16, Gamma_load16; + $load16, Gamma_$load16 := memory_load64_le(mem, bvadd64(R0, 4064bv64)), (gamma_load64(Gamma_mem, bvadd64(R0, 4064bv64)) || L(mem, bvadd64(R0, 4064bv64))); + R0, Gamma_R0 := $load16, Gamma_$load16; call rely(); - load17, Gamma_load17 := memory_load32_le(mem, R0), (gamma_load32(Gamma_mem, R0) || L(mem, R0)); - R0, Gamma_R0 := zero_extend32_32(load17), Gamma_load17; - Cse0__5_1_10, Gamma_Cse0__5_1_10 := bvadd32(R0[32:0], 0bv32), Gamma_R0; - VF, Gamma_VF := bvnot1(bvcomp32(Cse0__5_1_10, Cse0__5_1_10)), Gamma_Cse0__5_1_10; - CF, Gamma_CF := bvnot1(bvcomp33(zero_extend1_32(Cse0__5_1_10), bvadd33(zero_extend1_32(R0[32:0]), 4294967296bv33))), (Gamma_R0 && Gamma_Cse0__5_1_10); - ZF, Gamma_ZF := bvcomp32(Cse0__5_1_10, 0bv32), Gamma_Cse0__5_1_10; - NF, Gamma_NF := Cse0__5_1_10[32:31], Gamma_Cse0__5_1_10; + $load17, Gamma_$load17 := memory_load32_le(mem, R0), (gamma_load32(Gamma_mem, R0) || L(mem, R0)); + R0, Gamma_R0 := zero_extend32_32($load17), Gamma_$load17; + Cse0__5$1$10, Gamma_Cse0__5$1$10 := bvadd32(R0[32:0], 0bv32), Gamma_R0; + VF, Gamma_VF := bvnot1(bvcomp32(Cse0__5$1$10, Cse0__5$1$10)), Gamma_Cse0__5$1$10; + CF, Gamma_CF := bvnot1(bvcomp33(zero_extend1_32(Cse0__5$1$10), bvadd33(zero_extend1_32(R0[32:0]), 4294967296bv33))), (Gamma_R0 && Gamma_Cse0__5$1$10); + ZF, Gamma_ZF := bvcomp32(Cse0__5$1$10, 0bv32), Gamma_Cse0__5$1$10; + NF, Gamma_NF := Cse0__5$1$10[32:31], Gamma_Cse0__5$1$10; assert Gamma_ZF; - goto main_1876__0___4YKHPc_R16UBSwXbttMHg_goto_main_1876__2__suhWjK9FQk6egl8Kq7bkzA, main_1876__0___4YKHPc_R16UBSwXbttMHg_goto_main_1876__1__JFpnTYKyQUOhK~aVMxMB9w; - main_1876__0___4YKHPc_R16UBSwXbttMHg_goto_main_1876__1__JFpnTYKyQUOhK~aVMxMB9w: - assume {:captureState "main_1876__0___4YKHPc_R16UBSwXbttMHg_goto_main_1876__1__JFpnTYKyQUOhK~aVMxMB9w"} true; - assume (!(!(ZF == 1bv1))); + goto $main$__0__$_4YKHPc_R16UBSwXbttMHg_goto_$main$__2__$suhWjK9FQk6egl8Kq7bkzA, $main$__0__$_4YKHPc_R16UBSwXbttMHg_goto_$main$__1__$JFpnTYKyQUOhK~aVMxMB9w; + $main$__1__$JFpnTYKyQUOhK~aVMxMB9w: + assume {:captureState "$main$__1__$JFpnTYKyQUOhK~aVMxMB9w"} true; R0, Gamma_R0 := 3bv64, true; stack, Gamma_stack := memory_store32_le(stack, bvadd64(R31, 28bv64), R0[32:0]), gamma_store32(Gamma_stack, bvadd64(R31, 28bv64), Gamma_R0); - assume {:captureState "1928_0"} true; - goto main_1876__1__JFpnTYKyQUOhK~aVMxMB9w; - main_1876__1__JFpnTYKyQUOhK~aVMxMB9w: - assume {:captureState "main_1876__1__JFpnTYKyQUOhK~aVMxMB9w"} true; - goto main_1876__2__suhWjK9FQk6egl8Kq7bkzA; - main_1876__0___4YKHPc_R16UBSwXbttMHg_goto_main_1876__2__suhWjK9FQk6egl8Kq7bkzA: - assume {:captureState "main_1876__0___4YKHPc_R16UBSwXbttMHg_goto_main_1876__2__suhWjK9FQk6egl8Kq7bkzA"} true; - assume (!(ZF == 1bv1)); - goto main_1876__2__suhWjK9FQk6egl8Kq7bkzA; - main_1876__2__suhWjK9FQk6egl8Kq7bkzA: - assume {:captureState "main_1876__2__suhWjK9FQk6egl8Kq7bkzA"} true; + assume {:captureState "1928$0"} true; + goto $main$__2__$suhWjK9FQk6egl8Kq7bkzA; + $main$__2__$suhWjK9FQk6egl8Kq7bkzA: + assume {:captureState "$main$__2__$suhWjK9FQk6egl8Kq7bkzA"} true; R0, Gamma_R0 := 65536bv64, true; call rely(); - load21, Gamma_load21 := memory_load64_le(mem, bvadd64(R0, 4064bv64)), (gamma_load64(Gamma_mem, bvadd64(R0, 4064bv64)) || L(mem, bvadd64(R0, 4064bv64))); - R0, Gamma_R0 := load21, Gamma_load21; + $load21, Gamma_$load21 := memory_load64_le(mem, bvadd64(R0, 4064bv64)), (gamma_load64(Gamma_mem, bvadd64(R0, 4064bv64)) || L(mem, bvadd64(R0, 4064bv64))); + R0, Gamma_R0 := $load21, Gamma_$load21; call rely(); - load22, Gamma_load22 := memory_load32_le(mem, R0), (gamma_load32(Gamma_mem, R0) || L(mem, R0)); - R0, Gamma_R0 := zero_extend32_32(load22), Gamma_load22; - Cse0__5_5_3, Gamma_Cse0__5_5_3 := bvadd32(R0[32:0], 4294967295bv32), Gamma_R0; - VF, Gamma_VF := bvnot1(bvcomp33(sign_extend1_32(Cse0__5_5_3), bvadd33(sign_extend1_32(R0[32:0]), 8589934591bv33))), (Gamma_R0 && Gamma_Cse0__5_5_3); - CF, Gamma_CF := bvnot1(bvcomp33(zero_extend1_32(Cse0__5_5_3), bvadd33(zero_extend1_32(R0[32:0]), 4294967295bv33))), (Gamma_R0 && Gamma_Cse0__5_5_3); - ZF, Gamma_ZF := bvcomp32(Cse0__5_5_3, 0bv32), Gamma_Cse0__5_5_3; - NF, Gamma_NF := Cse0__5_5_3[32:31], Gamma_Cse0__5_5_3; + $load22, Gamma_$load22 := memory_load32_le(mem, R0), (gamma_load32(Gamma_mem, R0) || L(mem, R0)); + R0, Gamma_R0 := zero_extend32_32($load22), Gamma_$load22; + Cse0__5$5$3, Gamma_Cse0__5$5$3 := bvadd32(R0[32:0], 4294967295bv32), Gamma_R0; + VF, Gamma_VF := bvnot1(bvcomp33(sign_extend1_32(Cse0__5$5$3), bvadd33(sign_extend1_32(R0[32:0]), 8589934591bv33))), (Gamma_R0 && Gamma_Cse0__5$5$3); + CF, Gamma_CF := bvnot1(bvcomp33(zero_extend1_32(Cse0__5$5$3), bvadd33(zero_extend1_32(R0[32:0]), 4294967295bv33))), (Gamma_R0 && Gamma_Cse0__5$5$3); + ZF, Gamma_ZF := bvcomp32(Cse0__5$5$3, 0bv32), Gamma_Cse0__5$5$3; + NF, Gamma_NF := Cse0__5$5$3[32:31], Gamma_Cse0__5$5$3; assert Gamma_ZF; - goto main_1876__2__suhWjK9FQk6egl8Kq7bkzA_goto_main_1876__4__pjW61HZrTOmndoem0ZAjmQ, main_1876__2__suhWjK9FQk6egl8Kq7bkzA_goto_main_1876__3__25~YyveSSxKjFiy3ZvDL7w; - main_1876__2__suhWjK9FQk6egl8Kq7bkzA_goto_main_1876__3__25~YyveSSxKjFiy3ZvDL7w: - assume {:captureState "main_1876__2__suhWjK9FQk6egl8Kq7bkzA_goto_main_1876__3__25~YyveSSxKjFiy3ZvDL7w"} true; - assume (!(!(ZF == 1bv1))); + goto $main$__2__$suhWjK9FQk6egl8Kq7bkzA_goto_$main$__4__$pjW61HZrTOmndoem0ZAjmQ, $main$__2__$suhWjK9FQk6egl8Kq7bkzA_goto_$main$__3__$25~YyveSSxKjFiy3ZvDL7w; + $main$__3__$25~YyveSSxKjFiy3ZvDL7w: + assume {:captureState "$main$__3__$25~YyveSSxKjFiy3ZvDL7w"} true; R0, Gamma_R0 := 5bv64, true; stack, Gamma_stack := memory_store32_le(stack, bvadd64(R31, 28bv64), R0[32:0]), gamma_store32(Gamma_stack, bvadd64(R31, 28bv64), Gamma_R0); - assume {:captureState "1956_0"} true; - goto main_1876__3__25~YyveSSxKjFiy3ZvDL7w; - main_1876__3__25~YyveSSxKjFiy3ZvDL7w: - assume {:captureState "main_1876__3__25~YyveSSxKjFiy3ZvDL7w"} true; - goto main_1876__4__pjW61HZrTOmndoem0ZAjmQ; - main_1876__2__suhWjK9FQk6egl8Kq7bkzA_goto_main_1876__4__pjW61HZrTOmndoem0ZAjmQ: - assume {:captureState "main_1876__2__suhWjK9FQk6egl8Kq7bkzA_goto_main_1876__4__pjW61HZrTOmndoem0ZAjmQ"} true; - assume (!(ZF == 1bv1)); - goto main_1876__4__pjW61HZrTOmndoem0ZAjmQ; - main_1876__4__pjW61HZrTOmndoem0ZAjmQ: - assume {:captureState "main_1876__4__pjW61HZrTOmndoem0ZAjmQ"} true; - load18, Gamma_load18 := memory_load32_le(stack, bvadd64(R31, 28bv64)), gamma_load32(Gamma_stack, bvadd64(R31, 28bv64)); - R0, Gamma_R0 := zero_extend32_32(load18), Gamma_load18; - Cse0__5_3_1, Gamma_Cse0__5_3_1 := bvadd32(R0[32:0], 4294967293bv32), Gamma_R0; - VF, Gamma_VF := bvnot1(bvcomp33(sign_extend1_32(Cse0__5_3_1), bvadd33(sign_extend1_32(R0[32:0]), 8589934589bv33))), (Gamma_R0 && Gamma_Cse0__5_3_1); - CF, Gamma_CF := bvnot1(bvcomp33(zero_extend1_32(Cse0__5_3_1), bvadd33(zero_extend1_32(R0[32:0]), 4294967293bv33))), (Gamma_R0 && Gamma_Cse0__5_3_1); - ZF, Gamma_ZF := bvcomp32(Cse0__5_3_1, 0bv32), Gamma_Cse0__5_3_1; - NF, Gamma_NF := Cse0__5_3_1[32:31], Gamma_Cse0__5_3_1; + assume {:captureState "1956$0"} true; + goto $main$__4__$pjW61HZrTOmndoem0ZAjmQ; + $main$__4__$pjW61HZrTOmndoem0ZAjmQ: + assume {:captureState "$main$__4__$pjW61HZrTOmndoem0ZAjmQ"} true; + $load18, Gamma_$load18 := memory_load32_le(stack, bvadd64(R31, 28bv64)), gamma_load32(Gamma_stack, bvadd64(R31, 28bv64)); + R0, Gamma_R0 := zero_extend32_32($load18), Gamma_$load18; + Cse0__5$3$1, Gamma_Cse0__5$3$1 := bvadd32(R0[32:0], 4294967293bv32), Gamma_R0; + VF, Gamma_VF := bvnot1(bvcomp33(sign_extend1_32(Cse0__5$3$1), bvadd33(sign_extend1_32(R0[32:0]), 8589934589bv33))), (Gamma_R0 && Gamma_Cse0__5$3$1); + CF, Gamma_CF := bvnot1(bvcomp33(zero_extend1_32(Cse0__5$3$1), bvadd33(zero_extend1_32(R0[32:0]), 4294967293bv33))), (Gamma_R0 && Gamma_Cse0__5$3$1); + ZF, Gamma_ZF := bvcomp32(Cse0__5$3$1, 0bv32), Gamma_Cse0__5$3$1; + NF, Gamma_NF := Cse0__5$3$1[32:31], Gamma_Cse0__5$3$1; assert Gamma_ZF; - goto main_1876__4__pjW61HZrTOmndoem0ZAjmQ_goto_main_1876__6__~1v8YRimTzWott7vgkSlCw, main_1876__4__pjW61HZrTOmndoem0ZAjmQ_goto_main_1876__5__7jJxdga~TUGdn0Pj55GVWw; - main_1876__4__pjW61HZrTOmndoem0ZAjmQ_goto_main_1876__5__7jJxdga~TUGdn0Pj55GVWw: - assume {:captureState "main_1876__4__pjW61HZrTOmndoem0ZAjmQ_goto_main_1876__5__7jJxdga~TUGdn0Pj55GVWw"} true; - assume (!(!(ZF == 1bv1))); + goto $main$__4__$pjW61HZrTOmndoem0ZAjmQ_goto_$main$__6__$~1v8YRimTzWott7vgkSlCw, $main$__4__$pjW61HZrTOmndoem0ZAjmQ_goto_$main$__5__$7jJxdga~TUGdn0Pj55GVWw; + $main$__5__$7jJxdga~TUGdn0Pj55GVWw: + assume {:captureState "$main$__5__$7jJxdga~TUGdn0Pj55GVWw"} true; R0, Gamma_R0 := 65536bv64, true; call rely(); - load23, Gamma_load23 := memory_load64_le(mem, bvadd64(R0, 4056bv64)), (gamma_load64(Gamma_mem, bvadd64(R0, 4056bv64)) || L(mem, bvadd64(R0, 4056bv64))); - R0, Gamma_R0 := load23, Gamma_load23; + $load23, Gamma_$load23 := memory_load64_le(mem, bvadd64(R0, 4056bv64)), (gamma_load64(Gamma_mem, bvadd64(R0, 4056bv64)) || L(mem, bvadd64(R0, 4056bv64))); + R0, Gamma_R0 := $load23, Gamma_$load23; call rely(); - load24, Gamma_load24 := memory_load32_le(mem, R0), (gamma_load32(Gamma_mem, R0) || L(mem, R0)); - R0, Gamma_R0 := zero_extend32_32(load24), Gamma_load24; + $load24, Gamma_$load24 := memory_load32_le(mem, R0), (gamma_load32(Gamma_mem, R0) || L(mem, R0)); + R0, Gamma_R0 := zero_extend32_32($load24), Gamma_$load24; stack, Gamma_stack := memory_store32_le(stack, bvadd64(R31, 28bv64), R0[32:0]), gamma_store32(Gamma_stack, bvadd64(R31, 28bv64), Gamma_R0); - assume {:captureState "1984_0"} true; - goto main_1876__5__7jJxdga~TUGdn0Pj55GVWw; - main_1876__5__7jJxdga~TUGdn0Pj55GVWw: - assume {:captureState "main_1876__5__7jJxdga~TUGdn0Pj55GVWw"} true; - goto main_1876__6__~1v8YRimTzWott7vgkSlCw; - main_1876__4__pjW61HZrTOmndoem0ZAjmQ_goto_main_1876__6__~1v8YRimTzWott7vgkSlCw: - assume {:captureState "main_1876__4__pjW61HZrTOmndoem0ZAjmQ_goto_main_1876__6__~1v8YRimTzWott7vgkSlCw"} true; - assume (!(ZF == 1bv1)); - goto main_1876__6__~1v8YRimTzWott7vgkSlCw; - main_1876__6__~1v8YRimTzWott7vgkSlCw: - assume {:captureState "main_1876__6__~1v8YRimTzWott7vgkSlCw"} true; + assume {:captureState "1984$0"} true; + goto $main$__6__$~1v8YRimTzWott7vgkSlCw; + $main$__6__$~1v8YRimTzWott7vgkSlCw: + assume {:captureState "$main$__6__$~1v8YRimTzWott7vgkSlCw"} true; R0, Gamma_R0 := 65536bv64, true; call rely(); - load19, Gamma_load19 := memory_load64_le(mem, bvadd64(R0, 4056bv64)), (gamma_load64(Gamma_mem, bvadd64(R0, 4056bv64)) || L(mem, bvadd64(R0, 4056bv64))); - R0, Gamma_R0 := load19, Gamma_load19; + $load19, Gamma_$load19 := memory_load64_le(mem, bvadd64(R0, 4056bv64)), (gamma_load64(Gamma_mem, bvadd64(R0, 4056bv64)) || L(mem, bvadd64(R0, 4056bv64))); + R0, Gamma_R0 := $load19, Gamma_$load19; call rely(); - load20, Gamma_load20 := memory_load32_le(mem, R0), (gamma_load32(Gamma_mem, R0) || L(mem, R0)); - R0, Gamma_R0 := zero_extend32_32(load20), Gamma_load20; + $load20, Gamma_$load20 := memory_load32_le(mem, R0), (gamma_load32(Gamma_mem, R0) || L(mem, R0)); + R0, Gamma_R0 := zero_extend32_32($load20), Gamma_$load20; R31, Gamma_R31 := bvadd64(R31, 32bv64), Gamma_R31; - goto main_1876_basil_return; - main_1876_basil_return: - assume {:captureState "main_1876_basil_return"} true; + goto main_basil_return; + $main$__0__$_4YKHPc_R16UBSwXbttMHg_goto_$main$__2__$suhWjK9FQk6egl8Kq7bkzA: + assume {:captureState "$main$__0__$_4YKHPc_R16UBSwXbttMHg_goto_$main$__2__$suhWjK9FQk6egl8Kq7bkzA"} true; + assume (!(ZF == 1bv1)); + goto $main$__2__$suhWjK9FQk6egl8Kq7bkzA; + $main$__0__$_4YKHPc_R16UBSwXbttMHg_goto_$main$__1__$JFpnTYKyQUOhK~aVMxMB9w: + assume {:captureState "$main$__0__$_4YKHPc_R16UBSwXbttMHg_goto_$main$__1__$JFpnTYKyQUOhK~aVMxMB9w"} true; + assume (!(!(ZF == 1bv1))); + goto $main$__1__$JFpnTYKyQUOhK~aVMxMB9w; + $main$__4__$pjW61HZrTOmndoem0ZAjmQ_goto_$main$__6__$~1v8YRimTzWott7vgkSlCw: + assume {:captureState "$main$__4__$pjW61HZrTOmndoem0ZAjmQ_goto_$main$__6__$~1v8YRimTzWott7vgkSlCw"} true; + assume (!(ZF == 1bv1)); + goto $main$__6__$~1v8YRimTzWott7vgkSlCw; + $main$__4__$pjW61HZrTOmndoem0ZAjmQ_goto_$main$__5__$7jJxdga~TUGdn0Pj55GVWw: + assume {:captureState "$main$__4__$pjW61HZrTOmndoem0ZAjmQ_goto_$main$__5__$7jJxdga~TUGdn0Pj55GVWw"} true; + assume (!(!(ZF == 1bv1))); + goto $main$__5__$7jJxdga~TUGdn0Pj55GVWw; + $main$__2__$suhWjK9FQk6egl8Kq7bkzA_goto_$main$__4__$pjW61HZrTOmndoem0ZAjmQ: + assume {:captureState "$main$__2__$suhWjK9FQk6egl8Kq7bkzA_goto_$main$__4__$pjW61HZrTOmndoem0ZAjmQ"} true; + assume (!(ZF == 1bv1)); + goto $main$__4__$pjW61HZrTOmndoem0ZAjmQ; + $main$__2__$suhWjK9FQk6egl8Kq7bkzA_goto_$main$__3__$25~YyveSSxKjFiy3ZvDL7w: + assume {:captureState "$main$__2__$suhWjK9FQk6egl8Kq7bkzA_goto_$main$__3__$25~YyveSSxKjFiy3ZvDL7w"} true; + assume (!(!(ZF == 1bv1))); + goto $main$__3__$25~YyveSSxKjFiy3ZvDL7w; + main_basil_return: + assume {:captureState "main_basil_return"} true; return; } diff --git a/src/test/indirect_calls/functionpointer/clang/functionpointer.adt b/src/test/indirect_calls/functionpointer/clang/functionpointer.adt deleted file mode 100644 index 9ce9e713a..000000000 --- a/src/test/indirect_calls/functionpointer/clang/functionpointer.adt +++ /dev/null @@ -1,762 +0,0 @@ -Project(Attrs([Attr("filename","\"clang/functionpointer.out\""), -Attr("image-specification","(declare abi (name str))\n(declare arch (name str))\n(declare base-address (addr int))\n(declare bias (off int))\n(declare bits (size int))\n(declare code-region (addr int) (size int) (off int))\n(declare code-start (addr int))\n(declare entry-point (addr int))\n(declare external-reference (addr int) (name str))\n(declare format (name str))\n(declare is-executable (flag bool))\n(declare is-little-endian (flag bool))\n(declare llvm:base-address (addr int))\n(declare llvm:code-entry (name str) (off int) (size int))\n(declare llvm:coff-import-library (name str))\n(declare llvm:coff-virtual-section-header (name str) (addr int) (size int))\n(declare llvm:elf-program-header (name str) (off int) (size int))\n(declare llvm:elf-program-header-flags (name str) (ld bool) (r bool) \n (w bool) (x bool))\n(declare llvm:elf-virtual-program-header (name str) (addr int) (size int))\n(declare llvm:entry-point (addr int))\n(declare llvm:macho-symbol (name str) (value int))\n(declare llvm:name-reference (at int) (name str))\n(declare llvm:relocation (at int) (addr int))\n(declare llvm:section-entry (name str) (addr int) (size int) (off int))\n(declare llvm:section-flags (name str) (r bool) (w bool) (x bool))\n(declare llvm:segment-command (name str) (off int) (size int))\n(declare llvm:segment-command-flags (name str) (r bool) (w bool) (x bool))\n(declare llvm:symbol-entry (name str) (addr int) (size int) (off int)\n (value int))\n(declare llvm:virtual-segment-command (name str) (addr int) (size int))\n(declare mapped (addr int) (size int) (off int))\n(declare named-region (addr int) (size int) (name str))\n(declare named-symbol (addr int) (name str))\n(declare require (name str))\n(declare section (addr int) (size int))\n(declare segment (addr int) (size int) (r bool) (w bool) (x bool))\n(declare subarch (name str))\n(declare symbol-chunk (addr int) (size int) (root int))\n(declare symbol-value (addr int) (value int))\n(declare system (name str))\n(declare vendor (name str))\n\n(abi unknown)\n(arch aarch64)\n(base-address 0)\n(bias 0)\n(bits 64)\n(code-region 2032 20 2032)\n(code-region 1536 496 1536)\n(code-region 1440 96 1440)\n(code-region 1408 24 1408)\n(code-start 1588)\n(code-start 1812)\n(code-start 1536)\n(code-start 1828)\n(code-start 1860)\n(code-start 1844)\n(entry-point 1536)\n(external-reference 69568 _ITM_deregisterTMCloneTable)\n(external-reference 69576 __cxa_finalize)\n(external-reference 69584 __gmon_start__)\n(external-reference 69600 _ITM_registerTMCloneTable)\n(external-reference 69632 __libc_start_main)\n(external-reference 69640 __cxa_finalize)\n(external-reference 69648 __gmon_start__)\n(external-reference 69656 abort)\n(format elf)\n(is-executable true)\n(is-little-endian true)\n(llvm:base-address 0)\n(llvm:code-entry abort 0 0)\n(llvm:code-entry __cxa_finalize 0 0)\n(llvm:code-entry __libc_start_main 0 0)\n(llvm:code-entry _init 1408 0)\n(llvm:code-entry set_seven 1844 16)\n(llvm:code-entry main 1860 172)\n(llvm:code-entry set_six 1828 16)\n(llvm:code-entry _start 1536 52)\n(llvm:code-entry set_two 1812 16)\n(llvm:code-entry abort@GLIBC_2.17 0 0)\n(llvm:code-entry _fini 2032 0)\n(llvm:code-entry __cxa_finalize@GLIBC_2.17 0 0)\n(llvm:code-entry __libc_start_main@GLIBC_2.34 0 0)\n(llvm:code-entry frame_dummy 1808 0)\n(llvm:code-entry __do_global_dtors_aux 1728 0)\n(llvm:code-entry register_tm_clones 1664 0)\n(llvm:code-entry deregister_tm_clones 1616 0)\n(llvm:code-entry call_weak_fn 1588 20)\n(llvm:code-entry .fini 2032 20)\n(llvm:code-entry .text 1536 496)\n(llvm:code-entry .plt 1440 96)\n(llvm:code-entry .init 1408 24)\n(llvm:elf-program-header 08 3528 568)\n(llvm:elf-program-header 07 0 0)\n(llvm:elf-program-header 06 2056 84)\n(llvm:elf-program-header 05 596 68)\n(llvm:elf-program-header 04 3544 480)\n(llvm:elf-program-header 03 3528 616)\n(llvm:elf-program-header 02 0 2404)\n(llvm:elf-program-header 01 568 27)\n(llvm:elf-program-header 00 64 504)\n(llvm:elf-program-header-flags 08 false true false false)\n(llvm:elf-program-header-flags 07 false true true false)\n(llvm:elf-program-header-flags 06 false true false false)\n(llvm:elf-program-header-flags 05 false true false false)\n(llvm:elf-program-header-flags 04 false true true false)\n(llvm:elf-program-header-flags 03 true true true false)\n(llvm:elf-program-header-flags 02 true true false true)\n(llvm:elf-program-header-flags 01 false true false false)\n(llvm:elf-program-header-flags 00 false true false false)\n(llvm:elf-virtual-program-header 08 69064 568)\n(llvm:elf-virtual-program-header 07 0 0)\n(llvm:elf-virtual-program-header 06 2056 84)\n(llvm:elf-virtual-program-header 05 596 68)\n(llvm:elf-virtual-program-header 04 69080 480)\n(llvm:elf-virtual-program-header 03 69064 624)\n(llvm:elf-virtual-program-header 02 0 2404)\n(llvm:elf-virtual-program-header 01 568 27)\n(llvm:elf-virtual-program-header 00 64 504)\n(llvm:entry-point 1536)\n(llvm:name-reference 69656 abort)\n(llvm:name-reference 69648 __gmon_start__)\n(llvm:name-reference 69640 __cxa_finalize)\n(llvm:name-reference 69632 __libc_start_main)\n(llvm:name-reference 69600 _ITM_registerTMCloneTable)\n(llvm:name-reference 69584 __gmon_start__)\n(llvm:name-reference 69576 __cxa_finalize)\n(llvm:name-reference 69568 _ITM_deregisterTMCloneTable)\n(llvm:section-entry .shstrtab 0 259 7045)\n(llvm:section-entry .strtab 0 597 6448)\n(llvm:section-entry .symtab 0 2232 4216)\n(llvm:section-entry .comment 0 71 4144)\n(llvm:section-entry .bss 69680 8 4144)\n(llvm:section-entry .data 69664 16 4128)\n(llvm:section-entry .got.plt 69608 56 4072)\n(llvm:section-entry .got 69560 48 4024)\n(llvm:section-entry .dynamic 69080 480 3544)\n(llvm:section-entry .fini_array 69072 8 3536)\n(llvm:section-entry .init_array 69064 8 3528)\n(llvm:section-entry .eh_frame 2144 260 2144)\n(llvm:section-entry .eh_frame_hdr 2056 84 2056)\n(llvm:section-entry .rodata 2052 4 2052)\n(llvm:section-entry .fini 2032 20 2032)\n(llvm:section-entry .text 1536 496 1536)\n(llvm:section-entry .plt 1440 96 1440)\n(llvm:section-entry .init 1408 24 1408)\n(llvm:section-entry .rela.plt 1312 96 1312)\n(llvm:section-entry .rela.dyn 1120 192 1120)\n(llvm:section-entry .gnu.version_r 1072 48 1072)\n(llvm:section-entry .gnu.version 1054 18 1054)\n(llvm:section-entry .dynstr 912 141 912)\n(llvm:section-entry .dynsym 696 216 696)\n(llvm:section-entry .gnu.hash 664 28 664)\n(llvm:section-entry .note.ABI-tag 632 32 632)\n(llvm:section-entry .note.gnu.build-id 596 36 596)\n(llvm:section-entry .interp 568 27 568)\n(llvm:section-flags .shstrtab true false false)\n(llvm:section-flags .strtab true false false)\n(llvm:section-flags .symtab true false false)\n(llvm:section-flags .comment true false false)\n(llvm:section-flags .bss true true false)\n(llvm:section-flags .data true true false)\n(llvm:section-flags .got.plt true true false)\n(llvm:section-flags .got true true false)\n(llvm:section-flags .dynamic true true false)\n(llvm:section-flags .fini_array true true false)\n(llvm:section-flags .init_array true true false)\n(llvm:section-flags .eh_frame true false false)\n(llvm:section-flags .eh_frame_hdr true false false)\n(llvm:section-flags .rodata true false false)\n(llvm:section-flags .fini true false true)\n(llvm:section-flags .text true false true)\n(llvm:section-flags .plt true false true)\n(llvm:section-flags .init true false true)\n(llvm:section-flags .rela.plt true false false)\n(llvm:section-flags .rela.dyn true false false)\n(llvm:section-flags .gnu.version_r true false false)\n(llvm:section-flags .gnu.version true false false)\n(llvm:section-flags .dynstr true false false)\n(llvm:section-flags .dynsym true false false)\n(llvm:section-flags .gnu.hash true false false)\n(llvm:section-flags .note.ABI-tag true false false)\n(llvm:section-flags .note.gnu.build-id true false false)\n(llvm:section-flags .interp true false false)\n(llvm:symbol-entry abort 0 0 0 0)\n(llvm:symbol-entry __cxa_finalize 0 0 0 0)\n(llvm:symbol-entry __libc_start_main 0 0 0 0)\n(llvm:symbol-entry _init 1408 0 1408 1408)\n(llvm:symbol-entry set_seven 1844 16 1844 1844)\n(llvm:symbol-entry main 1860 172 1860 1860)\n(llvm:symbol-entry set_six 1828 16 1828 1828)\n(llvm:symbol-entry _start 1536 52 1536 1536)\n(llvm:symbol-entry set_two 1812 16 1812 1812)\n(llvm:symbol-entry abort@GLIBC_2.17 0 0 0 0)\n(llvm:symbol-entry _fini 2032 0 2032 2032)\n(llvm:symbol-entry __cxa_finalize@GLIBC_2.17 0 0 0 0)\n(llvm:symbol-entry __libc_start_main@GLIBC_2.34 0 0 0 0)\n(llvm:symbol-entry frame_dummy 1808 0 1808 1808)\n(llvm:symbol-entry __do_global_dtors_aux 1728 0 1728 1728)\n(llvm:symbol-entry register_tm_clones 1664 0 1664 1664)\n(llvm:symbol-entry deregister_tm_clones 1616 0 1616 1616)\n(llvm:symbol-entry call_weak_fn 1588 20 1588 1588)\n(mapped 0 2404 0)\n(mapped 69064 616 3528)\n(named-region 0 2404 02)\n(named-region 69064 624 03)\n(named-region 568 27 .interp)\n(named-region 596 36 .note.gnu.build-id)\n(named-region 632 32 .note.ABI-tag)\n(named-region 664 28 .gnu.hash)\n(named-region 696 216 .dynsym)\n(named-region 912 141 .dynstr)\n(named-region 1054 18 .gnu.version)\n(named-region 1072 48 .gnu.version_r)\n(named-region 1120 192 .rela.dyn)\n(named-region 1312 96 .rela.plt)\n(named-region 1408 24 .init)\n(named-region 1440 96 .plt)\n(named-region 1536 496 .text)\n(named-region 2032 20 .fini)\n(named-region 2052 4 .rodata)\n(named-region 2056 84 .eh_frame_hdr)\n(named-region 2144 260 .eh_frame)\n(named-region 69064 8 .init_array)\n(named-region 69072 8 .fini_array)\n(named-region 69080 480 .dynamic)\n(named-region 69560 48 .got)\n(named-region 69608 56 .got.plt)\n(named-region 69664 16 .data)\n(named-region 69680 8 .bss)\n(named-region 0 71 .comment)\n(named-region 0 2232 .symtab)\n(named-region 0 597 .strtab)\n(named-region 0 259 .shstrtab)\n(named-symbol 1588 call_weak_fn)\n(named-symbol 1616 deregister_tm_clones)\n(named-symbol 1664 register_tm_clones)\n(named-symbol 1728 __do_global_dtors_aux)\n(named-symbol 1808 frame_dummy)\n(named-symbol 0 __libc_start_main@GLIBC_2.34)\n(named-symbol 0 __cxa_finalize@GLIBC_2.17)\n(named-symbol 2032 _fini)\n(named-symbol 0 abort@GLIBC_2.17)\n(named-symbol 1812 set_two)\n(named-symbol 1536 _start)\n(named-symbol 1828 set_six)\n(named-symbol 1860 main)\n(named-symbol 1844 set_seven)\n(named-symbol 1408 _init)\n(named-symbol 0 __libc_start_main)\n(named-symbol 0 __cxa_finalize)\n(named-symbol 0 abort)\n(require libc.so.6)\n(section 568 27)\n(section 596 36)\n(section 632 32)\n(section 664 28)\n(section 696 216)\n(section 912 141)\n(section 1054 18)\n(section 1072 48)\n(section 1120 192)\n(section 1312 96)\n(section 1408 24)\n(section 1440 96)\n(section 1536 496)\n(section 2032 20)\n(section 2052 4)\n(section 2056 84)\n(section 2144 260)\n(section 69064 8)\n(section 69072 8)\n(section 69080 480)\n(section 69560 48)\n(section 69608 56)\n(section 69664 16)\n(section 69680 8)\n(section 0 71)\n(section 0 2232)\n(section 0 597)\n(section 0 259)\n(segment 0 2404 true false true)\n(segment 69064 624 true true false)\n(subarch v8)\n(symbol-chunk 1588 20 1588)\n(symbol-chunk 1812 16 1812)\n(symbol-chunk 1536 52 1536)\n(symbol-chunk 1828 16 1828)\n(symbol-chunk 1860 172 1860)\n(symbol-chunk 1844 16 1844)\n(symbol-value 1588 1588)\n(symbol-value 1616 1616)\n(symbol-value 1664 1664)\n(symbol-value 1728 1728)\n(symbol-value 1808 1808)\n(symbol-value 2032 2032)\n(symbol-value 1812 1812)\n(symbol-value 1536 1536)\n(symbol-value 1828 1828)\n(symbol-value 1860 1860)\n(symbol-value 1844 1844)\n(symbol-value 1408 1408)\n(symbol-value 0 0)\n(system \"\")\n(vendor \"\")\n"), -Attr("abi-name","\"aarch64-linux-gnu-elf\"")]), -Sections([Section(".shstrtab", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x00\x06\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x88\x1c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x38\x00\x09\x00\x40\x00\x1d\x00\x1c\x00\x06\x00\x00\x00\x04\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x04\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\x09\x00\x00\x00\x00\x00\x00\x64\x09\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x01\x00\x00\x00\x06\x00\x00\x00\xc8\x0d\x00\x00\x00\x00\x00\x00\xc8\x0d\x01\x00\x00\x00\x00\x00\xc8\x0d\x01"), -Section(".strtab", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x00\x06\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x88\x1c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x38\x00\x09\x00\x40\x00\x1d\x00\x1c\x00\x06\x00\x00\x00\x04\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x04\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\x09\x00\x00\x00\x00\x00\x00\x64\x09\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x01\x00\x00\x00\x06\x00\x00\x00\xc8\x0d\x00\x00\x00\x00\x00\x00\xc8\x0d\x01\x00\x00\x00\x00\x00\xc8\x0d\x01\x00\x00\x00\x00\x00\x68\x02\x00\x00\x00\x00\x00\x00\x70\x02\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x02\x00\x00\x00\x06\x00\x00\x00\xd8\x0d\x00\x00\x00\x00\x00\x00\xd8\x0d\x01\x00\x00\x00\x00\x00\xd8\x0d\x01\x00\x00\x00\x00\x00\xe0\x01\x00\x00\x00\x00\x00\x00\xe0\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x04\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x50\xe5\x74\x64\x04\x00\x00\x00\x08\x08\x00\x00\x00\x00\x00\x00\x08\x08\x00\x00\x00\x00\x00\x00\x08\x08\x00\x00\x00\x00\x00\x00\x54\x00\x00\x00\x00\x00\x00\x00\x54\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x51\xe5\x74\x64\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x52\xe5\x74\x64\x04\x00\x00\x00\xc8\x0d\x00\x00\x00\x00\x00\x00\xc8\x0d\x01\x00\x00\x00\x00\x00\xc8\x0d\x01\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x2f\x6c\x69\x62\x2f\x6c\x64\x2d\x6c\x69\x6e\x75\x78\x2d\x61\x61\x72\x63\x68\x36\x34\x2e\x73\x6f\x2e\x31\x00\x00\x04"), -Section(".symtab", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x00\x06\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x88\x1c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x38\x00\x09\x00\x40\x00\x1d\x00\x1c\x00\x06\x00\x00\x00\x04\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x04\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\x09\x00\x00\x00\x00\x00\x00\x64\x09\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x01\x00\x00\x00\x06\x00\x00\x00\xc8\x0d\x00\x00\x00\x00\x00\x00\xc8\x0d\x01\x00\x00\x00\x00\x00\xc8\x0d\x01\x00\x00\x00\x00\x00\x68\x02\x00\x00\x00\x00\x00\x00\x70\x02\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x02\x00\x00\x00\x06\x00\x00\x00\xd8\x0d\x00\x00\x00\x00\x00\x00\xd8\x0d\x01\x00\x00\x00\x00\x00\xd8\x0d\x01\x00\x00\x00\x00\x00\xe0\x01\x00\x00\x00\x00\x00\x00\xe0\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x04\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x50\xe5\x74\x64\x04\x00\x00\x00\x08\x08\x00\x00\x00\x00\x00\x00\x08\x08\x00\x00\x00\x00\x00\x00\x08\x08\x00\x00\x00\x00\x00\x00\x54\x00\x00\x00\x00\x00\x00\x00\x54\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x51\xe5\x74\x64\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x52\xe5\x74\x64\x04\x00\x00\x00\xc8\x0d\x00\x00\x00\x00\x00\x00\xc8\x0d\x01\x00\x00\x00\x00\x00\xc8\x0d\x01\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x2f\x6c\x69\x62\x2f\x6c\x64\x2d\x6c\x69\x6e\x75\x78\x2d\x61\x61\x72\x63\x68\x36\x34\x2e\x73\x6f\x2e\x31\x00\x00\x04\x00\x00\x00\x14\x00\x00\x00\x03\x00\x00\x00\x47\x4e\x55\x00\xaf\xb1\x31\x9d\x1f\x40\x14\xfb\x39\xa6\x41\x51\xf7\xf8\x27\x8e\x0b\x65\x0d\x4a\x04\x00\x00\x00\x10\x00\x00\x00\x01\x00\x00\x00\x47\x4e\x55\x00\x00\x00\x00\x00\x03\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x01\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x0b\x00\x80\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x17\x00\x20\x10\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x48\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x22\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x22\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x73\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5f\x5f\x63\x78\x61\x5f\x66\x69\x6e\x61\x6c\x69\x7a\x65\x00\x5f\x5f\x6c\x69\x62\x63\x5f\x73\x74\x61\x72\x74\x5f\x6d\x61\x69\x6e\x00\x61\x62\x6f\x72\x74\x00\x6c\x69\x62\x63\x2e\x73\x6f\x2e\x36\x00\x47\x4c\x49\x42\x43\x5f\x32\x2e\x31\x37\x00\x47\x4c\x49\x42\x43\x5f\x32\x2e\x33\x34\x00\x5f\x49\x54\x4d\x5f\x64\x65\x72\x65\x67\x69\x73\x74\x65\x72\x54\x4d\x43\x6c\x6f\x6e\x65\x54\x61\x62\x6c\x65\x00\x5f\x5f\x67\x6d\x6f\x6e\x5f\x73\x74\x61\x72\x74\x5f\x5f\x00\x5f\x49\x54\x4d\x5f\x72\x65\x67\x69\x73\x74\x65\x72\x54\x4d\x43\x6c\x6f\x6e\x65\x54\x61\x62\x6c\x65\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x01\x00\x03\x00\x01\x00\x03\x00\x01\x00\x01\x00\x02\x00\x28\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x97\x91\x96\x06\x00\x00\x03\x00\x32\x00\x00\x00\x10\x00\x00\x00\xb4\x91\x96\x06\x00\x00\x02\x00\x3d\x00\x00\x00\x00\x00\x00\x00\xc8\x0d\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x10\x07\x00\x00\x00\x00\x00\x00\xd0\x0d\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\xc0\x06\x00\x00\x00\x00\x00\x00\xd8\x0f\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x44\x07\x00\x00\x00\x00\x00\x00\x28\x10\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x28\x10\x01\x00\x00\x00\x00\x00\xc0\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xc8\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xd0\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe0\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x08\x10\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x10\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x18\x10\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1f\x20\x03\xd5\xfd\x7b\xbf\xa9\xfd\x03\x00\x91\x2a\x00\x00\x94\xfd\x7b\xc1\xa8\xc0\x03\x5f\xd6\x00\x00\x00\x00\x00\x00\x00\x00\xf0\x7b\xbf\xa9\x90\x00\x00\x90\x11\xfe\x47\xf9\x10\xe2\x3f\x91\x20\x02\x1f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x90\x00\x00\xb0\x11\x02\x40\xf9\x10\x02\x00\x91\x20\x02\x1f\xd6\x90\x00\x00\xb0\x11\x06\x40\xf9\x10\x22\x00\x91\x20\x02\x1f\xd6\x90\x00\x00\xb0\x11\x0a\x40\xf9\x10\x42\x00\x91\x20\x02\x1f\xd6\x90\x00\x00\xb0\x11\x0e\x40\xf9\x10\x62\x00\x91\x20\x02\x1f\xd6\x1f\x20\x03\xd5\x1d\x00\x80\xd2\x1e\x00\x80\xd2\xe5\x03\x00\xaa\xe1\x03\x40\xf9\xe2\x23\x00\x91\xe6\x03\x00\x91\x80\x00\x00\x90\x00\xec\x47\xf9\x03\x00\x80\xd2\x04\x00\x80\xd2\xe5\xff\xff\x97\xf0\xff\xff\x97\x80\x00\x00\x90\x00\xe8\x47\xf9\x40\x00\x00\xb4\xe8\xff\xff\x17\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x80\x00\x00\xb0\x00\xc0\x00\x91\x81\x00\x00\xb0\x21\xc0\x00\x91\x3f\x00\x00\xeb\xc0\x00\x00\x54\x81\x00\x00\x90\x21\xe0\x47\xf9\x61\x00\x00\xb4\xf0\x03\x01\xaa\x00\x02\x1f\xd6\xc0\x03\x5f\xd6\x80\x00\x00\xb0\x00\xc0\x00\x91\x81\x00\x00\xb0\x21\xc0\x00\x91\x21\x00\x00\xcb\x22\xfc\x7f\xd3\x41\x0c\x81\x8b\x21\xfc\x41\x93\xc1\x00\x00\xb4\x82\x00\x00\x90\x42\xf0\x47\xf9\x62\x00\x00\xb4\xf0\x03\x02\xaa\x00\x02\x1f\xd6\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\xfd\x7b\xbe\xa9\xfd\x03\x00\x91\xf3\x0b\x00\xf9\x93\x00\x00\xb0\x60\xc2\x40\x39\x40\x01\x00\x35\x80\x00\x00\x90\x00\xe4\x47\xf9\x80\x00\x00\xb4\x80\x00\x00\xb0\x00\x14\x40\xf9\xb9\xff\xff\x97\xd8\xff\xff\x97\x20\x00\x80\x52\x60\xc2\x00\x39\xf3\x0b\x40\xf9\xfd\x7b\xc2\xa8\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\xdc\xff\xff\x17\x89\x00\x00\xb0\x48\x00\x80\x52\x28\x35\x00\xb9\xc0\x03\x5f\xd6\x89\x00\x00\xb0\xc8\x00\x80\x52\x28\x35\x00\xb9\xc0\x03\x5f\xd6\x89\x00\x00\xb0\xe8\x00\x80\x52\x28\x35\x00\xb9\xc0\x03\x5f\xd6\xff\xc3\x00\xd1\xfd\x7b\x02\xa9\xfd\x83\x00\x91\xbf\xc3\x1f\xb8\xa0\x83\x1f\xb8\xa8\x83\x5f\xb8\xe8\x0f\x00\xb9\x08\x01\x00\x71\xe8\x17\x9f\x1a\x88\x01\x00\x37\x01\x00\x00\x14\xe8\x0f\x40\xb9\x08\x05\x00\x71\xe8\x17\x9f\x1a\x68\x01\x00\x37\x01\x00\x00\x14\xe8\x0f\x40\xb9\x08\x09\x00\x71\xe8\x17\x9f\x1a\x48\x01\x00\x37\x0d\x00\x00\x14\x08\x00\x00\x90\x08\x51\x1c\x91\xe8\x0b\x00\xf9\x0d\x00\x00\x14\x08\x00\x00\x90\x08\x91\x1c\x91\xe8\x0b\x00\xf9\x09\x00\x00\x14\x08\x00\x00\x90\x08\xd1\x1c\x91\xe8\x0b\x00\xf9\x05\x00\x00\x14\x08\x00\x00\x90\x08\x51\x1c\x91\xe8\x0b\x00\xf9\x01\x00\x00\x14\xe8\x0b\x40\xf9\x00\x01\x3f\xd6\xe0\x03\x1f\x2a\xfd\x7b\x42\xa9\xff\xc3\x00\x91\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\xfd\x7b\xbf\xa9\xfd\x03\x00\x91\xfd\x7b\xc1\xa8\xc0\x03\x5f\xd6\x01\x00\x02\x00\x01\x1b\x03\x3b\x54\x00\x00\x00\x09\x00\x00\x00\xf8\xfd\xff\xff\x6c\x00\x00\x00\x48\xfe\xff\xff\x80\x00\x00\x00\x78\xfe\xff\xff\x94\x00\x00\x00\xb8\xfe\xff\xff\xa8\x00\x00\x00\x08\xff\xff\xff\xcc\x00\x00\x00\x0c\xff\xff\xff\xf4\x00\x00\x00\x1c\xff\xff\xff\x08\x01\x00\x00\x2c\xff\xff\xff\x1c\x01\x00\x00\x3c\xff\xff\xff\x30\x01\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x01\x7a\x52\x00\x04\x78\x1e\x01\x1b\x0c\x1f\x00\x10\x00\x00\x00\x18\x00\x00\x00\x84\xfd\xff\xff\x34\x00\x00\x00\x00\x41\x07\x1e\x10\x00\x00\x00\x2c\x00\x00\x00\xc0\xfd\xff\xff\x30\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x40\x00\x00\x00\xdc\xfd\xff\xff\x3c\x00\x00\x00\x00\x00\x00\x00\x20\x00\x00\x00\x54\x00\x00\x00"), -Section(".comment", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x00\x06\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x88\x1c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x38\x00\x09\x00\x40\x00\x1d\x00\x1c\x00\x06\x00\x00\x00\x04\x00\x00"), -Section(".interp", 0x238, "\x2f\x6c\x69\x62\x2f\x6c\x64\x2d\x6c\x69\x6e\x75\x78\x2d\x61\x61\x72\x63\x68\x36\x34\x2e\x73\x6f\x2e\x31\x00"), -Section(".note.gnu.build-id", 0x254, "\x04\x00\x00\x00\x14\x00\x00\x00\x03\x00\x00\x00\x47\x4e\x55\x00\xaf\xb1\x31\x9d\x1f\x40\x14\xfb\x39\xa6\x41\x51\xf7\xf8\x27\x8e\x0b\x65\x0d\x4a"), -Section(".note.ABI-tag", 0x278, "\x04\x00\x00\x00\x10\x00\x00\x00\x01\x00\x00\x00\x47\x4e\x55\x00\x00\x00\x00\x00\x03\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00"), -Section(".gnu.hash", 0x298, "\x01\x00\x00\x00\x01\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".dynsym", 0x2B8, "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x0b\x00\x80\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x17\x00\x20\x10\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x48\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x22\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x22\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x73\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".dynstr", 0x390, "\x00\x5f\x5f\x63\x78\x61\x5f\x66\x69\x6e\x61\x6c\x69\x7a\x65\x00\x5f\x5f\x6c\x69\x62\x63\x5f\x73\x74\x61\x72\x74\x5f\x6d\x61\x69\x6e\x00\x61\x62\x6f\x72\x74\x00\x6c\x69\x62\x63\x2e\x73\x6f\x2e\x36\x00\x47\x4c\x49\x42\x43\x5f\x32\x2e\x31\x37\x00\x47\x4c\x49\x42\x43\x5f\x32\x2e\x33\x34\x00\x5f\x49\x54\x4d\x5f\x64\x65\x72\x65\x67\x69\x73\x74\x65\x72\x54\x4d\x43\x6c\x6f\x6e\x65\x54\x61\x62\x6c\x65\x00\x5f\x5f\x67\x6d\x6f\x6e\x5f\x73\x74\x61\x72\x74\x5f\x5f\x00\x5f\x49\x54\x4d\x5f\x72\x65\x67\x69\x73\x74\x65\x72\x54\x4d\x43\x6c\x6f\x6e\x65\x54\x61\x62\x6c\x65\x00"), -Section(".gnu.version", 0x41E, "\x00\x00\x00\x00\x00\x00\x02\x00\x01\x00\x03\x00\x01\x00\x03\x00\x01\x00"), -Section(".gnu.version_r", 0x430, "\x01\x00\x02\x00\x28\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x97\x91\x96\x06\x00\x00\x03\x00\x32\x00\x00\x00\x10\x00\x00\x00\xb4\x91\x96\x06\x00\x00\x02\x00\x3d\x00\x00\x00\x00\x00\x00\x00"), -Section(".rela.dyn", 0x460, "\xc8\x0d\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x10\x07\x00\x00\x00\x00\x00\x00\xd0\x0d\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\xc0\x06\x00\x00\x00\x00\x00\x00\xd8\x0f\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x44\x07\x00\x00\x00\x00\x00\x00\x28\x10\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x28\x10\x01\x00\x00\x00\x00\x00\xc0\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xc8\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xd0\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe0\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".rela.plt", 0x520, "\x00\x10\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x08\x10\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x10\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x18\x10\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".init", 0x580, "\x1f\x20\x03\xd5\xfd\x7b\xbf\xa9\xfd\x03\x00\x91\x2a\x00\x00\x94\xfd\x7b\xc1\xa8\xc0\x03\x5f\xd6"), -Section(".plt", 0x5A0, "\xf0\x7b\xbf\xa9\x90\x00\x00\x90\x11\xfe\x47\xf9\x10\xe2\x3f\x91\x20\x02\x1f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x90\x00\x00\xb0\x11\x02\x40\xf9\x10\x02\x00\x91\x20\x02\x1f\xd6\x90\x00\x00\xb0\x11\x06\x40\xf9\x10\x22\x00\x91\x20\x02\x1f\xd6\x90\x00\x00\xb0\x11\x0a\x40\xf9\x10\x42\x00\x91\x20\x02\x1f\xd6\x90\x00\x00\xb0\x11\x0e\x40\xf9\x10\x62\x00\x91\x20\x02\x1f\xd6"), -Section(".text", 0x600, "\x1f\x20\x03\xd5\x1d\x00\x80\xd2\x1e\x00\x80\xd2\xe5\x03\x00\xaa\xe1\x03\x40\xf9\xe2\x23\x00\x91\xe6\x03\x00\x91\x80\x00\x00\x90\x00\xec\x47\xf9\x03\x00\x80\xd2\x04\x00\x80\xd2\xe5\xff\xff\x97\xf0\xff\xff\x97\x80\x00\x00\x90\x00\xe8\x47\xf9\x40\x00\x00\xb4\xe8\xff\xff\x17\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x80\x00\x00\xb0\x00\xc0\x00\x91\x81\x00\x00\xb0\x21\xc0\x00\x91\x3f\x00\x00\xeb\xc0\x00\x00\x54\x81\x00\x00\x90\x21\xe0\x47\xf9\x61\x00\x00\xb4\xf0\x03\x01\xaa\x00\x02\x1f\xd6\xc0\x03\x5f\xd6\x80\x00\x00\xb0\x00\xc0\x00\x91\x81\x00\x00\xb0\x21\xc0\x00\x91\x21\x00\x00\xcb\x22\xfc\x7f\xd3\x41\x0c\x81\x8b\x21\xfc\x41\x93\xc1\x00\x00\xb4\x82\x00\x00\x90\x42\xf0\x47\xf9\x62\x00\x00\xb4\xf0\x03\x02\xaa\x00\x02\x1f\xd6\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\xfd\x7b\xbe\xa9\xfd\x03\x00\x91\xf3\x0b\x00\xf9\x93\x00\x00\xb0\x60\xc2\x40\x39\x40\x01\x00\x35\x80\x00\x00\x90\x00\xe4\x47\xf9\x80\x00\x00\xb4\x80\x00\x00\xb0\x00\x14\x40\xf9\xb9\xff\xff\x97\xd8\xff\xff\x97\x20\x00\x80\x52\x60\xc2\x00\x39\xf3\x0b\x40\xf9\xfd\x7b\xc2\xa8\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\xdc\xff\xff\x17\x89\x00\x00\xb0\x48\x00\x80\x52\x28\x35\x00\xb9\xc0\x03\x5f\xd6\x89\x00\x00\xb0\xc8\x00\x80\x52\x28\x35\x00\xb9\xc0\x03\x5f\xd6\x89\x00\x00\xb0\xe8\x00\x80\x52\x28\x35\x00\xb9\xc0\x03\x5f\xd6\xff\xc3\x00\xd1\xfd\x7b\x02\xa9\xfd\x83\x00\x91\xbf\xc3\x1f\xb8\xa0\x83\x1f\xb8\xa8\x83\x5f\xb8\xe8\x0f\x00\xb9\x08\x01\x00\x71\xe8\x17\x9f\x1a\x88\x01\x00\x37\x01\x00\x00\x14\xe8\x0f\x40\xb9\x08\x05\x00\x71\xe8\x17\x9f\x1a\x68\x01\x00\x37\x01\x00\x00\x14\xe8\x0f\x40\xb9\x08\x09\x00\x71\xe8\x17\x9f\x1a\x48\x01\x00\x37\x0d\x00\x00\x14\x08\x00\x00\x90\x08\x51\x1c\x91\xe8\x0b\x00\xf9\x0d\x00\x00\x14\x08\x00\x00\x90\x08\x91\x1c\x91\xe8\x0b\x00\xf9\x09\x00\x00\x14\x08\x00\x00\x90\x08\xd1\x1c\x91\xe8\x0b\x00\xf9\x05\x00\x00\x14\x08\x00\x00\x90\x08\x51\x1c\x91\xe8\x0b\x00\xf9\x01\x00\x00\x14\xe8\x0b\x40\xf9\x00\x01\x3f\xd6\xe0\x03\x1f\x2a\xfd\x7b\x42\xa9\xff\xc3\x00\x91\xc0\x03\x5f\xd6"), -Section(".fini", 0x7F0, "\x1f\x20\x03\xd5\xfd\x7b\xbf\xa9\xfd\x03\x00\x91\xfd\x7b\xc1\xa8\xc0\x03\x5f\xd6"), -Section(".rodata", 0x804, "\x01\x00\x02\x00"), -Section(".eh_frame_hdr", 0x808, "\x01\x1b\x03\x3b\x54\x00\x00\x00\x09\x00\x00\x00\xf8\xfd\xff\xff\x6c\x00\x00\x00\x48\xfe\xff\xff\x80\x00\x00\x00\x78\xfe\xff\xff\x94\x00\x00\x00\xb8\xfe\xff\xff\xa8\x00\x00\x00\x08\xff\xff\xff\xcc\x00\x00\x00\x0c\xff\xff\xff\xf4\x00\x00\x00\x1c\xff\xff\xff\x08\x01\x00\x00\x2c\xff\xff\xff\x1c\x01\x00\x00\x3c\xff\xff\xff\x30\x01\x00\x00"), -Section(".eh_frame", 0x860, "\x10\x00\x00\x00\x00\x00\x00\x00\x01\x7a\x52\x00\x04\x78\x1e\x01\x1b\x0c\x1f\x00\x10\x00\x00\x00\x18\x00\x00\x00\x84\xfd\xff\xff\x34\x00\x00\x00\x00\x41\x07\x1e\x10\x00\x00\x00\x2c\x00\x00\x00\xc0\xfd\xff\xff\x30\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x40\x00\x00\x00\xdc\xfd\xff\xff\x3c\x00\x00\x00\x00\x00\x00\x00\x20\x00\x00\x00\x54\x00\x00\x00\x08\xfe\xff\xff\x48\x00\x00\x00\x00\x41\x0e\x20\x9d\x04\x9e\x03\x42\x93\x02\x4e\xde\xdd\xd3\x0e\x00\x00\x00\x00\x10\x00\x00\x00\x78\x00\x00\x00\x34\xfe\xff\xff\x04\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x01\x7a\x52\x00\x01\x7c\x1e\x01\x1b\x0c\x1f\x00\x10\x00\x00\x00\x18\x00\x00\x00\x10\xfe\xff\xff\x10\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x2c\x00\x00\x00\x0c\xfe\xff\xff\x10\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x40\x00\x00\x00\x08\xfe\xff\xff\x10\x00\x00\x00\x00\x00\x00\x00\x24\x00\x00\x00\x54\x00\x00\x00\x04\xfe\xff\xff\xac\x00\x00\x00\x00\x44\x0e\x30\x48\x0c\x1d\x10\x9e\x02\x9d\x04\x02\x94\x0c\x1f\x30\x48\x0e\x00\xde\xdd\x00\x00\x00\x00\x00\x00"), -Section(".fini_array", 0x10DD0, "\xc0\x06\x00\x00\x00\x00\x00\x00"), -Section(".dynamic", 0x10DD8, "\x01\x00\x00\x00\x00\x00\x00\x00\x28\x00\x00\x00\x00\x00\x00\x00\x0c\x00\x00\x00\x00\x00\x00\x00\x80\x05\x00\x00\x00\x00\x00\x00\x0d\x00\x00\x00\x00\x00\x00\x00\xf0\x07\x00\x00\x00\x00\x00\x00\x19\x00\x00\x00\x00\x00\x00\x00\xc8\x0d\x01\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x1a\x00\x00\x00\x00\x00\x00\x00\xd0\x0d\x01\x00\x00\x00\x00\x00\x1c\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\xf5\xfe\xff\x6f\x00\x00\x00\x00\x98\x02\x00\x00\x00\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x90\x03\x00\x00\x00\x00\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\xb8\x02\x00\x00\x00\x00\x00\x00\x0a\x00\x00\x00\x00\x00\x00\x00\x8d\x00\x00\x00\x00\x00\x00\x00\x0b\x00\x00\x00\x00\x00\x00\x00\x18\x00\x00\x00\x00\x00\x00\x00\x15\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\xe8\x0f\x01\x00\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x60\x00\x00\x00\x00\x00\x00\x00\x14\x00\x00\x00\x00\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x17\x00\x00\x00\x00\x00\x00\x00\x20\x05\x00\x00\x00\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x60\x04\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\xc0\x00\x00\x00\x00\x00\x00\x00\x09\x00\x00\x00\x00\x00\x00\x00\x18\x00\x00\x00\x00\x00\x00\x00\xfb\xff\xff\x6f\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\xfe\xff\xff\x6f\x00\x00\x00\x00\x30\x04\x00\x00\x00\x00\x00\x00\xff\xff\xff\x6f\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\xf0\xff\xff\x6f\x00\x00\x00\x00\x1e\x04\x00\x00\x00\x00\x00\x00\xf9\xff\xff\x6f\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".got", 0x10FB8, "\xd8\x0d\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x44\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".got.plt", 0x10FE8, "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xa0\x05\x00\x00\x00\x00\x00\x00\xa0\x05\x00\x00\x00\x00\x00\x00\xa0\x05\x00\x00\x00\x00\x00\x00\xa0\x05\x00\x00\x00\x00\x00\x00"), -Section(".data", 0x11020, "\x00\x00\x00\x00\x00\x00\x00\x00\x28\x10\x01\x00\x00\x00\x00\x00"), -Section(".init_array", 0x10DC8, "\x10\x07\x00\x00\x00\x00\x00\x00")]), -Memmap([Annotation(Region(0x0,0x963), Attr("segment","02 0 2404")), -Annotation(Region(0x600,0x633), Attr("symbol","\"_start\"")), -Annotation(Region(0x0,0x102), Attr("section","\".shstrtab\"")), -Annotation(Region(0x0,0x254), Attr("section","\".strtab\"")), -Annotation(Region(0x0,0x8B7), Attr("section","\".symtab\"")), -Annotation(Region(0x0,0x46), Attr("section","\".comment\"")), -Annotation(Region(0x238,0x252), Attr("section","\".interp\"")), -Annotation(Region(0x254,0x277), Attr("section","\".note.gnu.build-id\"")), -Annotation(Region(0x278,0x297), Attr("section","\".note.ABI-tag\"")), -Annotation(Region(0x298,0x2B3), Attr("section","\".gnu.hash\"")), -Annotation(Region(0x2B8,0x38F), Attr("section","\".dynsym\"")), -Annotation(Region(0x390,0x41C), Attr("section","\".dynstr\"")), -Annotation(Region(0x41E,0x42F), Attr("section","\".gnu.version\"")), -Annotation(Region(0x430,0x45F), Attr("section","\".gnu.version_r\"")), -Annotation(Region(0x460,0x51F), Attr("section","\".rela.dyn\"")), -Annotation(Region(0x520,0x57F), Attr("section","\".rela.plt\"")), -Annotation(Region(0x580,0x597), Attr("section","\".init\"")), -Annotation(Region(0x5A0,0x5FF), Attr("section","\".plt\"")), -Annotation(Region(0x580,0x597), Attr("code-region","()")), -Annotation(Region(0x5A0,0x5FF), Attr("code-region","()")), -Annotation(Region(0x600,0x633), Attr("symbol-info","_start 0x600 52")), -Annotation(Region(0x634,0x647), Attr("symbol","\"call_weak_fn\"")), -Annotation(Region(0x634,0x647), Attr("symbol-info","call_weak_fn 0x634 20")), -Annotation(Region(0x714,0x723), Attr("symbol","\"set_two\"")), -Annotation(Region(0x714,0x723), Attr("symbol-info","set_two 0x714 16")), -Annotation(Region(0x724,0x733), Attr("symbol","\"set_six\"")), -Annotation(Region(0x724,0x733), Attr("symbol-info","set_six 0x724 16")), -Annotation(Region(0x734,0x743), Attr("symbol","\"set_seven\"")), -Annotation(Region(0x600,0x7EF), Attr("section","\".text\"")), -Annotation(Region(0x600,0x7EF), Attr("code-region","()")), -Annotation(Region(0x734,0x743), Attr("symbol-info","set_seven 0x734 16")), -Annotation(Region(0x744,0x7EF), Attr("symbol","\"main\"")), -Annotation(Region(0x744,0x7EF), Attr("symbol-info","main 0x744 172")), -Annotation(Region(0x7F0,0x803), Attr("section","\".fini\"")), -Annotation(Region(0x7F0,0x803), Attr("code-region","()")), -Annotation(Region(0x804,0x807), Attr("section","\".rodata\"")), -Annotation(Region(0x808,0x85B), Attr("section","\".eh_frame_hdr\"")), -Annotation(Region(0x860,0x963), Attr("section","\".eh_frame\"")), -Annotation(Region(0x10DC8,0x1102F), Attr("segment","03 0x10DC8 624")), -Annotation(Region(0x10DD0,0x10DD7), Attr("section","\".fini_array\"")), -Annotation(Region(0x10DD8,0x10FB7), Attr("section","\".dynamic\"")), -Annotation(Region(0x10FB8,0x10FE7), Attr("section","\".got\"")), -Annotation(Region(0x10FE8,0x1101F), Attr("section","\".got.plt\"")), -Annotation(Region(0x11020,0x1102F), Attr("section","\".data\"")), -Annotation(Region(0x10DC8,0x10DCF), Attr("section","\".init_array\""))]), -Program(Tid(2_145, "%00000861"), Attrs([]), - Subs([Sub(Tid(2_083, "@__cxa_finalize"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x5D0"), -Attr("stub","()")]), "__cxa_finalize", Args([Arg(Tid(2_146, "%00000862"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("__cxa_finalize_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(1_401, "@__cxa_finalize"), - Attrs([Attr("address","0x5D0")]), Phis([]), -Defs([Def(Tid(1_649, "%00000671"), Attrs([Attr("address","0x5D0"), -Attr("insn","adrp x16, #69632")]), Var("R16",Imm(64)), Int(69632,64)), -Def(Tid(1_656, "%00000678"), Attrs([Attr("address","0x5D4"), -Attr("insn","ldr x17, [x16, #0x8]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(1_662, "%0000067e"), Attrs([Attr("address","0x5D8"), -Attr("insn","add x16, x16, #0x8")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(8,64)))]), Jmps([Call(Tid(1_667, "%00000683"), - Attrs([Attr("address","0x5DC"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), -Sub(Tid(2_084, "@__do_global_dtors_aux"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x6C0")]), - "__do_global_dtors_aux", Args([Arg(Tid(2_147, "%00000863"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("__do_global_dtors_aux_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(810, "@__do_global_dtors_aux"), - Attrs([Attr("address","0x6C0")]), Phis([]), Defs([Def(Tid(814, "%0000032e"), - Attrs([Attr("address","0x6C0"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("#3",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(18446744073709551584,64))), -Def(Tid(820, "%00000334"), Attrs([Attr("address","0x6C0"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("#3",Imm(64)),Var("R29",Imm(64)),LittleEndian(),64)), -Def(Tid(826, "%0000033a"), Attrs([Attr("address","0x6C0"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("#3",Imm(64)),Int(8,64)),Var("R30",Imm(64)),LittleEndian(),64)), -Def(Tid(830, "%0000033e"), Attrs([Attr("address","0x6C0"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("R31",Imm(64)), -Var("#3",Imm(64))), Def(Tid(836, "%00000344"), - Attrs([Attr("address","0x6C4"), Attr("insn","mov x29, sp")]), - Var("R29",Imm(64)), Var("R31",Imm(64))), Def(Tid(844, "%0000034c"), - Attrs([Attr("address","0x6C8"), Attr("insn","str x19, [sp, #0x10]")]), - Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(16,64)),Var("R19",Imm(64)),LittleEndian(),64)), -Def(Tid(849, "%00000351"), Attrs([Attr("address","0x6CC"), -Attr("insn","adrp x19, #69632")]), Var("R19",Imm(64)), Int(69632,64)), -Def(Tid(856, "%00000358"), Attrs([Attr("address","0x6D0"), -Attr("insn","ldrb w0, [x19, #0x30]")]), Var("R0",Imm(64)), -UNSIGNED(64,Load(Var("mem",Mem(64,8)),PLUS(Var("R19",Imm(64)),Int(48,64)),LittleEndian(),8)))]), -Jmps([Goto(Tid(863, "%0000035f"), Attrs([Attr("address","0x6D4"), -Attr("insn","cbnz w0, #0x28")]), - NEQ(Extract(31,0,Var("R0",Imm(64))),Int(0,32)), -Direct(Tid(861, "%0000035d"))), Goto(Tid(2_132, "%00000854"), Attrs([]), - Int(1,1), Direct(Tid(1_346, "%00000542")))])), Blk(Tid(1_346, "%00000542"), - Attrs([Attr("address","0x6D8")]), Phis([]), -Defs([Def(Tid(1_349, "%00000545"), Attrs([Attr("address","0x6D8"), -Attr("insn","adrp x0, #65536")]), Var("R0",Imm(64)), Int(65536,64)), -Def(Tid(1_356, "%0000054c"), Attrs([Attr("address","0x6DC"), -Attr("insn","ldr x0, [x0, #0xfc8]")]), Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(4040,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(1_362, "%00000552"), Attrs([Attr("address","0x6E0"), -Attr("insn","cbz x0, #0x10")]), EQ(Var("R0",Imm(64)),Int(0,64)), -Direct(Tid(1_360, "%00000550"))), Goto(Tid(2_133, "%00000855"), Attrs([]), - Int(1,1), Direct(Tid(1_385, "%00000569")))])), Blk(Tid(1_385, "%00000569"), - Attrs([Attr("address","0x6E4")]), Phis([]), -Defs([Def(Tid(1_388, "%0000056c"), Attrs([Attr("address","0x6E4"), -Attr("insn","adrp x0, #69632")]), Var("R0",Imm(64)), Int(69632,64)), -Def(Tid(1_395, "%00000573"), Attrs([Attr("address","0x6E8"), -Attr("insn","ldr x0, [x0, #0x28]")]), Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(40,64)),LittleEndian(),64)), -Def(Tid(1_400, "%00000578"), Attrs([Attr("address","0x6EC"), -Attr("insn","bl #-0x11c")]), Var("R30",Imm(64)), Int(1776,64))]), -Jmps([Call(Tid(1_403, "%0000057b"), Attrs([Attr("address","0x6EC"), -Attr("insn","bl #-0x11c")]), Int(1,1), -(Direct(Tid(2_083, "@__cxa_finalize")),Direct(Tid(1_360, "%00000550"))))])), -Blk(Tid(1_360, "%00000550"), Attrs([Attr("address","0x6F0")]), Phis([]), -Defs([Def(Tid(1_368, "%00000558"), Attrs([Attr("address","0x6F0"), -Attr("insn","bl #-0xa0")]), Var("R30",Imm(64)), Int(1780,64))]), -Jmps([Call(Tid(1_370, "%0000055a"), Attrs([Attr("address","0x6F0"), -Attr("insn","bl #-0xa0")]), Int(1,1), -(Direct(Tid(2_097, "@deregister_tm_clones")),Direct(Tid(1_372, "%0000055c"))))])), -Blk(Tid(1_372, "%0000055c"), Attrs([Attr("address","0x6F4")]), Phis([]), -Defs([Def(Tid(1_375, "%0000055f"), Attrs([Attr("address","0x6F4"), -Attr("insn","mov w0, #0x1")]), Var("R0",Imm(64)), Int(1,64)), -Def(Tid(1_383, "%00000567"), Attrs([Attr("address","0x6F8"), -Attr("insn","strb w0, [x19, #0x30]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R19",Imm(64)),Int(48,64)),Extract(7,0,Var("R0",Imm(64))),LittleEndian(),8))]), -Jmps([Goto(Tid(2_134, "%00000856"), Attrs([]), Int(1,1), -Direct(Tid(861, "%0000035d")))])), Blk(Tid(861, "%0000035d"), - Attrs([Attr("address","0x6FC")]), Phis([]), Defs([Def(Tid(871, "%00000367"), - Attrs([Attr("address","0x6FC"), Attr("insn","ldr x19, [sp, #0x10]")]), - Var("R19",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(16,64)),LittleEndian(),64)), -Def(Tid(878, "%0000036e"), Attrs([Attr("address","0x700"), -Attr("insn","ldp x29, x30, [sp], #0x20")]), Var("R29",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(883, "%00000373"), Attrs([Attr("address","0x700"), -Attr("insn","ldp x29, x30, [sp], #0x20")]), Var("R30",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(887, "%00000377"), Attrs([Attr("address","0x700"), -Attr("insn","ldp x29, x30, [sp], #0x20")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(32,64)))]), Jmps([Call(Tid(892, "%0000037c"), - Attrs([Attr("address","0x704"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), Sub(Tid(2_088, "@__libc_start_main"), - Attrs([Attr("c.proto","signed (*)(signed (*)(signed , char** , char** );* main, signed , char** , \nvoid* auxv)"), -Attr("address","0x5C0"), Attr("stub","()")]), "__libc_start_main", - Args([Arg(Tid(2_148, "%00000864"), - Attrs([Attr("c.layout","**[ : 64]"), -Attr("c.data","Top:u64 ptr ptr"), -Attr("c.type","signed (*)(signed , char** , char** );*")]), - Var("__libc_start_main_main",Imm(64)), Var("R0",Imm(64)), In()), -Arg(Tid(2_149, "%00000865"), Attrs([Attr("c.layout","[signed : 32]"), -Attr("c.data","Top:u32"), Attr("c.type","signed")]), - Var("__libc_start_main_arg2",Imm(32)), LOW(32,Var("R1",Imm(64))), In()), -Arg(Tid(2_150, "%00000866"), Attrs([Attr("c.layout","**[char : 8]"), -Attr("c.data","Top:u8 ptr ptr"), Attr("c.type","char**")]), - Var("__libc_start_main_arg3",Imm(64)), Var("R2",Imm(64)), Both()), -Arg(Tid(2_151, "%00000867"), Attrs([Attr("c.layout","*[ : 8]"), -Attr("c.data","{} ptr"), Attr("c.type","void*")]), - Var("__libc_start_main_auxv",Imm(64)), Var("R3",Imm(64)), Both()), -Arg(Tid(2_152, "%00000868"), Attrs([Attr("c.layout","[signed : 32]"), -Attr("c.data","Top:u32"), Attr("c.type","signed")]), - Var("__libc_start_main_result",Imm(32)), LOW(32,Var("R0",Imm(64))), -Out())]), Blks([Blk(Tid(643, "@__libc_start_main"), - Attrs([Attr("address","0x5C0")]), Phis([]), -Defs([Def(Tid(1_627, "%0000065b"), Attrs([Attr("address","0x5C0"), -Attr("insn","adrp x16, #69632")]), Var("R16",Imm(64)), Int(69632,64)), -Def(Tid(1_634, "%00000662"), Attrs([Attr("address","0x5C4"), -Attr("insn","ldr x17, [x16]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R16",Imm(64)),LittleEndian(),64)), -Def(Tid(1_640, "%00000668"), Attrs([Attr("address","0x5C8"), -Attr("insn","add x16, x16, #0x0")]), Var("R16",Imm(64)), -Var("R16",Imm(64)))]), Jmps([Call(Tid(1_645, "%0000066d"), - Attrs([Attr("address","0x5CC"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), Sub(Tid(2_089, "@_fini"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x7F0")]), - "_fini", Args([Arg(Tid(2_153, "%00000869"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("_fini_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(31, "@_fini"), - Attrs([Attr("address","0x7F0")]), Phis([]), Defs([Def(Tid(37, "%00000025"), - Attrs([Attr("address","0x7F4"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("#0",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(18446744073709551600,64))), -Def(Tid(43, "%0000002b"), Attrs([Attr("address","0x7F4"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("#0",Imm(64)),Var("R29",Imm(64)),LittleEndian(),64)), -Def(Tid(49, "%00000031"), Attrs([Attr("address","0x7F4"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("#0",Imm(64)),Int(8,64)),Var("R30",Imm(64)),LittleEndian(),64)), -Def(Tid(53, "%00000035"), Attrs([Attr("address","0x7F4"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("R31",Imm(64)), -Var("#0",Imm(64))), Def(Tid(59, "%0000003b"), Attrs([Attr("address","0x7F8"), -Attr("insn","mov x29, sp")]), Var("R29",Imm(64)), Var("R31",Imm(64))), -Def(Tid(66, "%00000042"), Attrs([Attr("address","0x7FC"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R29",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(71, "%00000047"), Attrs([Attr("address","0x7FC"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R30",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(75, "%0000004b"), Attrs([Attr("address","0x7FC"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(16,64)))]), Jmps([Call(Tid(80, "%00000050"), - Attrs([Attr("address","0x800"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), Sub(Tid(2_090, "@_init"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x580")]), - "_init", Args([Arg(Tid(2_154, "%0000086a"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("_init_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(1_870, "@_init"), - Attrs([Attr("address","0x580")]), Phis([]), -Defs([Def(Tid(1_876, "%00000754"), Attrs([Attr("address","0x584"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("#10",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(18446744073709551600,64))), -Def(Tid(1_882, "%0000075a"), Attrs([Attr("address","0x584"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("#10",Imm(64)),Var("R29",Imm(64)),LittleEndian(),64)), -Def(Tid(1_888, "%00000760"), Attrs([Attr("address","0x584"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("#10",Imm(64)),Int(8,64)),Var("R30",Imm(64)),LittleEndian(),64)), -Def(Tid(1_892, "%00000764"), Attrs([Attr("address","0x584"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("R31",Imm(64)), -Var("#10",Imm(64))), Def(Tid(1_898, "%0000076a"), - Attrs([Attr("address","0x588"), Attr("insn","mov x29, sp")]), - Var("R29",Imm(64)), Var("R31",Imm(64))), Def(Tid(1_903, "%0000076f"), - Attrs([Attr("address","0x58C"), Attr("insn","bl #0xa8")]), - Var("R30",Imm(64)), Int(1424,64))]), Jmps([Call(Tid(1_905, "%00000771"), - Attrs([Attr("address","0x58C"), Attr("insn","bl #0xa8")]), Int(1,1), -(Direct(Tid(2_095, "@call_weak_fn")),Direct(Tid(1_907, "%00000773"))))])), -Blk(Tid(1_907, "%00000773"), Attrs([Attr("address","0x590")]), Phis([]), -Defs([Def(Tid(1_912, "%00000778"), Attrs([Attr("address","0x590"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R29",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(1_917, "%0000077d"), Attrs([Attr("address","0x590"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R30",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(1_921, "%00000781"), Attrs([Attr("address","0x590"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(16,64)))]), Jmps([Call(Tid(1_926, "%00000786"), - Attrs([Attr("address","0x594"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), Sub(Tid(2_091, "@_start"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x600"), -Attr("stub","()"), Attr("entry-point","()")]), "_start", - Args([Arg(Tid(2_155, "%0000086b"), Attrs([Attr("c.layout","[signed : 32]"), -Attr("c.data","Top:u32"), Attr("c.type","signed")]), - Var("_start_result",Imm(32)), LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(580, "@_start"), Attrs([Attr("address","0x600")]), Phis([]), -Defs([Def(Tid(585, "%00000249"), Attrs([Attr("address","0x604"), -Attr("insn","mov x29, #0x0")]), Var("R29",Imm(64)), Int(0,64)), -Def(Tid(590, "%0000024e"), Attrs([Attr("address","0x608"), -Attr("insn","mov x30, #0x0")]), Var("R30",Imm(64)), Int(0,64)), -Def(Tid(596, "%00000254"), Attrs([Attr("address","0x60C"), -Attr("insn","mov x5, x0")]), Var("R5",Imm(64)), Var("R0",Imm(64))), -Def(Tid(603, "%0000025b"), Attrs([Attr("address","0x610"), -Attr("insn","ldr x1, [sp]")]), Var("R1",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(609, "%00000261"), Attrs([Attr("address","0x614"), -Attr("insn","add x2, sp, #0x8")]), Var("R2",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(8,64))), Def(Tid(615, "%00000267"), - Attrs([Attr("address","0x618"), Attr("insn","mov x6, sp")]), - Var("R6",Imm(64)), Var("R31",Imm(64))), Def(Tid(620, "%0000026c"), - Attrs([Attr("address","0x61C"), Attr("insn","adrp x0, #65536")]), - Var("R0",Imm(64)), Int(65536,64)), Def(Tid(627, "%00000273"), - Attrs([Attr("address","0x620"), Attr("insn","ldr x0, [x0, #0xfd8]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(4056,64)),LittleEndian(),64)), -Def(Tid(632, "%00000278"), Attrs([Attr("address","0x624"), -Attr("insn","mov x3, #0x0")]), Var("R3",Imm(64)), Int(0,64)), -Def(Tid(637, "%0000027d"), Attrs([Attr("address","0x628"), -Attr("insn","mov x4, #0x0")]), Var("R4",Imm(64)), Int(0,64)), -Def(Tid(642, "%00000282"), Attrs([Attr("address","0x62C"), -Attr("insn","bl #-0x6c")]), Var("R30",Imm(64)), Int(1584,64))]), -Jmps([Call(Tid(645, "%00000285"), Attrs([Attr("address","0x62C"), -Attr("insn","bl #-0x6c")]), Int(1,1), -(Direct(Tid(2_088, "@__libc_start_main")),Direct(Tid(647, "%00000287"))))])), -Blk(Tid(647, "%00000287"), Attrs([Attr("address","0x630")]), Phis([]), -Defs([Def(Tid(650, "%0000028a"), Attrs([Attr("address","0x630"), -Attr("insn","bl #-0x40")]), Var("R30",Imm(64)), Int(1588,64))]), -Jmps([Call(Tid(653, "%0000028d"), Attrs([Attr("address","0x630"), -Attr("insn","bl #-0x40")]), Int(1,1), -(Direct(Tid(2_094, "@abort")),Direct(Tid(2_135, "%00000857"))))])), -Blk(Tid(2_135, "%00000857"), Attrs([]), Phis([]), Defs([]), -Jmps([Call(Tid(2_136, "%00000858"), Attrs([]), Int(1,1), -(Direct(Tid(2_095, "@call_weak_fn")),))]))])), Sub(Tid(2_094, "@abort"), - Attrs([Attr("noreturn","()"), Attr("c.proto","void (*)(void)"), -Attr("address","0x5F0"), Attr("stub","()")]), "abort", Args([]), -Blks([Blk(Tid(651, "@abort"), Attrs([Attr("address","0x5F0")]), Phis([]), -Defs([Def(Tid(1_693, "%0000069d"), Attrs([Attr("address","0x5F0"), -Attr("insn","adrp x16, #69632")]), Var("R16",Imm(64)), Int(69632,64)), -Def(Tid(1_700, "%000006a4"), Attrs([Attr("address","0x5F4"), -Attr("insn","ldr x17, [x16, #0x18]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(24,64)),LittleEndian(),64)), -Def(Tid(1_706, "%000006aa"), Attrs([Attr("address","0x5F8"), -Attr("insn","add x16, x16, #0x18")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(24,64)))]), Jmps([Call(Tid(1_711, "%000006af"), - Attrs([Attr("address","0x5FC"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), Sub(Tid(2_095, "@call_weak_fn"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x634")]), - "call_weak_fn", Args([Arg(Tid(2_156, "%0000086c"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("call_weak_fn_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(655, "@call_weak_fn"), - Attrs([Attr("address","0x634")]), Phis([]), Defs([Def(Tid(658, "%00000292"), - Attrs([Attr("address","0x634"), Attr("insn","adrp x0, #65536")]), - Var("R0",Imm(64)), Int(65536,64)), Def(Tid(665, "%00000299"), - Attrs([Attr("address","0x638"), Attr("insn","ldr x0, [x0, #0xfd0]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(4048,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(671, "%0000029f"), Attrs([Attr("address","0x63C"), -Attr("insn","cbz x0, #0x8")]), EQ(Var("R0",Imm(64)),Int(0,64)), -Direct(Tid(669, "%0000029d"))), Goto(Tid(2_137, "%00000859"), Attrs([]), - Int(1,1), Direct(Tid(1_465, "%000005b9")))])), Blk(Tid(669, "%0000029d"), - Attrs([Attr("address","0x644")]), Phis([]), Defs([]), -Jmps([Call(Tid(677, "%000002a5"), Attrs([Attr("address","0x644"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))])), -Blk(Tid(1_465, "%000005b9"), Attrs([Attr("address","0x640")]), Phis([]), -Defs([]), Jmps([Goto(Tid(1_468, "%000005bc"), Attrs([Attr("address","0x640"), -Attr("insn","b #-0x60")]), Int(1,1), -Direct(Tid(1_466, "@__gmon_start__")))])), Blk(Tid(1_466, "@__gmon_start__"), - Attrs([Attr("address","0x5E0")]), Phis([]), -Defs([Def(Tid(1_671, "%00000687"), Attrs([Attr("address","0x5E0"), -Attr("insn","adrp x16, #69632")]), Var("R16",Imm(64)), Int(69632,64)), -Def(Tid(1_678, "%0000068e"), Attrs([Attr("address","0x5E4"), -Attr("insn","ldr x17, [x16, #0x10]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(16,64)),LittleEndian(),64)), -Def(Tid(1_684, "%00000694"), Attrs([Attr("address","0x5E8"), -Attr("insn","add x16, x16, #0x10")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(16,64)))]), Jmps([Call(Tid(1_689, "%00000699"), - Attrs([Attr("address","0x5EC"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), -Sub(Tid(2_097, "@deregister_tm_clones"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x650")]), - "deregister_tm_clones", Args([Arg(Tid(2_157, "%0000086d"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("deregister_tm_clones_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(683, "@deregister_tm_clones"), - Attrs([Attr("address","0x650")]), Phis([]), Defs([Def(Tid(686, "%000002ae"), - Attrs([Attr("address","0x650"), Attr("insn","adrp x0, #69632")]), - Var("R0",Imm(64)), Int(69632,64)), Def(Tid(692, "%000002b4"), - Attrs([Attr("address","0x654"), Attr("insn","add x0, x0, #0x30")]), - Var("R0",Imm(64)), PLUS(Var("R0",Imm(64)),Int(48,64))), -Def(Tid(697, "%000002b9"), Attrs([Attr("address","0x658"), -Attr("insn","adrp x1, #69632")]), Var("R1",Imm(64)), Int(69632,64)), -Def(Tid(703, "%000002bf"), Attrs([Attr("address","0x65C"), -Attr("insn","add x1, x1, #0x30")]), Var("R1",Imm(64)), -PLUS(Var("R1",Imm(64)),Int(48,64))), Def(Tid(709, "%000002c5"), - Attrs([Attr("address","0x660"), Attr("insn","cmp x1, x0")]), - Var("#1",Imm(64)), NOT(Var("R0",Imm(64)))), Def(Tid(714, "%000002ca"), - Attrs([Attr("address","0x660"), Attr("insn","cmp x1, x0")]), - Var("#2",Imm(64)), PLUS(Var("R1",Imm(64)),NOT(Var("R0",Imm(64))))), -Def(Tid(720, "%000002d0"), Attrs([Attr("address","0x660"), -Attr("insn","cmp x1, x0")]), Var("VF",Imm(1)), -NEQ(SIGNED(65,PLUS(Var("#2",Imm(64)),Int(1,64))),PLUS(PLUS(SIGNED(65,Var("R1",Imm(64))),SIGNED(65,Var("#1",Imm(64)))),Int(1,65)))), -Def(Tid(726, "%000002d6"), Attrs([Attr("address","0x660"), -Attr("insn","cmp x1, x0")]), Var("CF",Imm(1)), -NEQ(UNSIGNED(65,PLUS(Var("#2",Imm(64)),Int(1,64))),PLUS(PLUS(UNSIGNED(65,Var("R1",Imm(64))),UNSIGNED(65,Var("#1",Imm(64)))),Int(1,65)))), -Def(Tid(730, "%000002da"), Attrs([Attr("address","0x660"), -Attr("insn","cmp x1, x0")]), Var("ZF",Imm(1)), -EQ(PLUS(Var("#2",Imm(64)),Int(1,64)),Int(0,64))), Def(Tid(734, "%000002de"), - Attrs([Attr("address","0x660"), Attr("insn","cmp x1, x0")]), - Var("NF",Imm(1)), Extract(63,63,PLUS(Var("#2",Imm(64)),Int(1,64))))]), -Jmps([Goto(Tid(740, "%000002e4"), Attrs([Attr("address","0x664"), -Attr("insn","b.eq #0x18")]), EQ(Var("ZF",Imm(1)),Int(1,1)), -Direct(Tid(738, "%000002e2"))), Goto(Tid(2_138, "%0000085a"), Attrs([]), - Int(1,1), Direct(Tid(1_435, "%0000059b")))])), Blk(Tid(1_435, "%0000059b"), - Attrs([Attr("address","0x668")]), Phis([]), -Defs([Def(Tid(1_438, "%0000059e"), Attrs([Attr("address","0x668"), -Attr("insn","adrp x1, #65536")]), Var("R1",Imm(64)), Int(65536,64)), -Def(Tid(1_445, "%000005a5"), Attrs([Attr("address","0x66C"), -Attr("insn","ldr x1, [x1, #0xfc0]")]), Var("R1",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R1",Imm(64)),Int(4032,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(1_450, "%000005aa"), Attrs([Attr("address","0x670"), -Attr("insn","cbz x1, #0xc")]), EQ(Var("R1",Imm(64)),Int(0,64)), -Direct(Tid(738, "%000002e2"))), Goto(Tid(2_139, "%0000085b"), Attrs([]), - Int(1,1), Direct(Tid(1_454, "%000005ae")))])), Blk(Tid(738, "%000002e2"), - Attrs([Attr("address","0x67C")]), Phis([]), Defs([]), -Jmps([Call(Tid(746, "%000002ea"), Attrs([Attr("address","0x67C"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))])), -Blk(Tid(1_454, "%000005ae"), Attrs([Attr("address","0x674")]), Phis([]), -Defs([Def(Tid(1_458, "%000005b2"), Attrs([Attr("address","0x674"), -Attr("insn","mov x16, x1")]), Var("R16",Imm(64)), Var("R1",Imm(64)))]), -Jmps([Call(Tid(1_463, "%000005b7"), Attrs([Attr("address","0x678"), -Attr("insn","br x16")]), Int(1,1), (Indirect(Var("R16",Imm(64))),))]))])), -Sub(Tid(2_100, "@frame_dummy"), Attrs([Attr("c.proto","signed (*)(void)"), -Attr("address","0x710")]), "frame_dummy", Args([Arg(Tid(2_158, "%0000086e"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("frame_dummy_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(898, "@frame_dummy"), - Attrs([Attr("address","0x710")]), Phis([]), Defs([]), -Jmps([Call(Tid(900, "%00000384"), Attrs([Attr("address","0x710"), -Attr("insn","b #-0x90")]), Int(1,1), -(Direct(Tid(2_105, "@register_tm_clones")),))]))])), Sub(Tid(2_101, "@main"), - Attrs([Attr("c.proto","signed (*)(signed argc, const char** argv)"), -Attr("address","0x744")]), "main", Args([Arg(Tid(2_159, "%0000086f"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("main_argc",Imm(32)), -LOW(32,Var("R0",Imm(64))), In()), Arg(Tid(2_160, "%00000870"), - Attrs([Attr("c.layout","**[char : 8]"), Attr("c.data","Top:u8 ptr ptr"), -Attr("c.type"," const char**")]), Var("main_argv",Imm(64)), -Var("R1",Imm(64)), Both()), Arg(Tid(2_161, "%00000871"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("main_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(971, "@main"), - Attrs([Attr("address","0x744")]), Phis([]), Defs([Def(Tid(975, "%000003cf"), - Attrs([Attr("address","0x744"), Attr("insn","sub sp, sp, #0x30")]), - Var("R31",Imm(64)), PLUS(Var("R31",Imm(64)),Int(18446744073709551568,64))), -Def(Tid(981, "%000003d5"), Attrs([Attr("address","0x748"), -Attr("insn","stp x29, x30, [sp, #0x20]")]), Var("#4",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(32,64))), Def(Tid(987, "%000003db"), - Attrs([Attr("address","0x748"), Attr("insn","stp x29, x30, [sp, #0x20]")]), - Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("#4",Imm(64)),Var("R29",Imm(64)),LittleEndian(),64)), -Def(Tid(993, "%000003e1"), Attrs([Attr("address","0x748"), -Attr("insn","stp x29, x30, [sp, #0x20]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("#4",Imm(64)),Int(8,64)),Var("R30",Imm(64)),LittleEndian(),64)), -Def(Tid(999, "%000003e7"), Attrs([Attr("address","0x74C"), -Attr("insn","add x29, sp, #0x20")]), Var("R29",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(32,64))), Def(Tid(1_006, "%000003ee"), - Attrs([Attr("address","0x750"), Attr("insn","stur wzr, [x29, #-0x4]")]), - Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R29",Imm(64)),Int(18446744073709551612,64)),Int(0,32),LittleEndian(),32)), -Def(Tid(1_014, "%000003f6"), Attrs([Attr("address","0x754"), -Attr("insn","stur w0, [x29, #-0x8]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R29",Imm(64)),Int(18446744073709551608,64)),Extract(31,0,Var("R0",Imm(64))),LittleEndian(),32)), -Def(Tid(1_021, "%000003fd"), Attrs([Attr("address","0x758"), -Attr("insn","ldur w8, [x29, #-0x8]")]), Var("R8",Imm(64)), -UNSIGNED(64,Load(Var("mem",Mem(64,8)),PLUS(Var("R29",Imm(64)),Int(18446744073709551608,64)),LittleEndian(),32))), -Def(Tid(1_029, "%00000405"), Attrs([Attr("address","0x75C"), -Attr("insn","str w8, [sp, #0xc]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(12,64)),Extract(31,0,Var("R8",Imm(64))),LittleEndian(),32)), -Def(Tid(1_035, "%0000040b"), Attrs([Attr("address","0x760"), -Attr("insn","subs w8, w8, #0x0")]), Var("#5",Imm(32)), -PLUS(Extract(31,0,Var("R8",Imm(64))),Int(4294967295,32))), -Def(Tid(1_040, "%00000410"), Attrs([Attr("address","0x760"), -Attr("insn","subs w8, w8, #0x0")]), Var("VF",Imm(1)), -NEQ(SIGNED(33,PLUS(Var("#5",Imm(32)),Int(1,32))),PLUS(SIGNED(33,Extract(31,0,Var("R8",Imm(64)))),Int(0,33)))), -Def(Tid(1_045, "%00000415"), Attrs([Attr("address","0x760"), -Attr("insn","subs w8, w8, #0x0")]), Var("CF",Imm(1)), -NEQ(UNSIGNED(33,PLUS(Var("#5",Imm(32)),Int(1,32))),PLUS(UNSIGNED(33,Extract(31,0,Var("R8",Imm(64)))),Int(4294967296,33)))), -Def(Tid(1_049, "%00000419"), Attrs([Attr("address","0x760"), -Attr("insn","subs w8, w8, #0x0")]), Var("ZF",Imm(1)), -EQ(PLUS(Var("#5",Imm(32)),Int(1,32)),Int(0,32))), -Def(Tid(1_053, "%0000041d"), Attrs([Attr("address","0x760"), -Attr("insn","subs w8, w8, #0x0")]), Var("NF",Imm(1)), -Extract(31,31,PLUS(Var("#5",Imm(32)),Int(1,32)))), -Def(Tid(1_057, "%00000421"), Attrs([Attr("address","0x760"), -Attr("insn","subs w8, w8, #0x0")]), Var("R8",Imm(64)), -UNSIGNED(64,PLUS(Var("#5",Imm(32)),Int(1,32))))]), -Jmps([Goto(Tid(1_069, "%0000042d"), Attrs([Attr("address","0x764"), -Attr("insn","cset w8, eq")]), NEQ(Var("ZF",Imm(1)),Int(1,1)), -Direct(Tid(1_062, "%00000426"))), Goto(Tid(1_070, "%0000042e"), - Attrs([Attr("address","0x764"), Attr("insn","cset w8, eq")]), Int(1,1), -Direct(Tid(1_065, "%00000429")))])), Blk(Tid(1_065, "%00000429"), Attrs([]), - Phis([]), Defs([Def(Tid(1_066, "%0000042a"), Attrs([Attr("address","0x764"), -Attr("insn","cset w8, eq")]), Var("R8",Imm(64)), Int(1,64))]), -Jmps([Goto(Tid(1_072, "%00000430"), Attrs([Attr("address","0x764"), -Attr("insn","cset w8, eq")]), Int(1,1), Direct(Tid(1_068, "%0000042c")))])), -Blk(Tid(1_062, "%00000426"), Attrs([]), Phis([]), -Defs([Def(Tid(1_063, "%00000427"), Attrs([Attr("address","0x764"), -Attr("insn","cset w8, eq")]), Var("R8",Imm(64)), Int(0,64))]), -Jmps([Goto(Tid(1_071, "%0000042f"), Attrs([Attr("address","0x764"), -Attr("insn","cset w8, eq")]), Int(1,1), Direct(Tid(1_068, "%0000042c")))])), -Blk(Tid(1_068, "%0000042c"), Attrs([]), Phis([]), Defs([]), -Jmps([Goto(Tid(1_078, "%00000436"), Attrs([Attr("address","0x768"), -Attr("insn","tbnz w8, #0x0, #0x30")]), - EQ(Extract(0,0,Var("R8",Imm(64))),Int(1,1)), -Direct(Tid(1_076, "%00000434"))), Goto(Tid(2_140, "%0000085c"), Attrs([]), - Int(1,1), Direct(Tid(1_220, "%000004c4")))])), Blk(Tid(1_076, "%00000434"), - Attrs([Attr("address","0x798")]), Phis([]), -Defs([Def(Tid(1_084, "%0000043c"), Attrs([Attr("address","0x798"), -Attr("insn","adrp x8, #0")]), Var("R8",Imm(64)), Int(0,64)), -Def(Tid(1_090, "%00000442"), Attrs([Attr("address","0x79C"), -Attr("insn","add x8, x8, #0x714")]), Var("R8",Imm(64)), -PLUS(Var("R8",Imm(64)),Int(1812,64))), Def(Tid(1_098, "%0000044a"), - Attrs([Attr("address","0x7A0"), Attr("insn","str x8, [sp, #0x10]")]), - Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(16,64)),Var("R8",Imm(64)),LittleEndian(),64))]), -Jmps([Goto(Tid(1_103, "%0000044f"), Attrs([Attr("address","0x7A4"), -Attr("insn","b #0x34")]), Int(1,1), Direct(Tid(1_101, "%0000044d")))])), -Blk(Tid(1_220, "%000004c4"), Attrs([Attr("address","0x76C")]), Phis([]), -Defs([]), Jmps([Goto(Tid(1_223, "%000004c7"), Attrs([Attr("address","0x76C"), -Attr("insn","b #0x4")]), Int(1,1), Direct(Tid(1_221, "%000004c5")))])), -Blk(Tid(1_221, "%000004c5"), Attrs([Attr("address","0x770")]), Phis([]), -Defs([Def(Tid(1_229, "%000004cd"), Attrs([Attr("address","0x770"), -Attr("insn","ldr w8, [sp, #0xc]")]), Var("R8",Imm(64)), -UNSIGNED(64,Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(12,64)),LittleEndian(),32))), -Def(Tid(1_235, "%000004d3"), Attrs([Attr("address","0x774"), -Attr("insn","subs w8, w8, #0x1")]), Var("#7",Imm(32)), -PLUS(Extract(31,0,Var("R8",Imm(64))),Int(4294967294,32))), -Def(Tid(1_240, "%000004d8"), Attrs([Attr("address","0x774"), -Attr("insn","subs w8, w8, #0x1")]), Var("VF",Imm(1)), -NEQ(SIGNED(33,PLUS(Var("#7",Imm(32)),Int(1,32))),PLUS(SIGNED(33,Extract(31,0,Var("R8",Imm(64)))),Int(8589934591,33)))), -Def(Tid(1_245, "%000004dd"), Attrs([Attr("address","0x774"), -Attr("insn","subs w8, w8, #0x1")]), Var("CF",Imm(1)), -NEQ(UNSIGNED(33,PLUS(Var("#7",Imm(32)),Int(1,32))),PLUS(UNSIGNED(33,Extract(31,0,Var("R8",Imm(64)))),Int(4294967295,33)))), -Def(Tid(1_249, "%000004e1"), Attrs([Attr("address","0x774"), -Attr("insn","subs w8, w8, #0x1")]), Var("ZF",Imm(1)), -EQ(PLUS(Var("#7",Imm(32)),Int(1,32)),Int(0,32))), -Def(Tid(1_253, "%000004e5"), Attrs([Attr("address","0x774"), -Attr("insn","subs w8, w8, #0x1")]), Var("NF",Imm(1)), -Extract(31,31,PLUS(Var("#7",Imm(32)),Int(1,32)))), -Def(Tid(1_257, "%000004e9"), Attrs([Attr("address","0x774"), -Attr("insn","subs w8, w8, #0x1")]), Var("R8",Imm(64)), -UNSIGNED(64,PLUS(Var("#7",Imm(32)),Int(1,32))))]), -Jmps([Goto(Tid(1_269, "%000004f5"), Attrs([Attr("address","0x778"), -Attr("insn","cset w8, eq")]), NEQ(Var("ZF",Imm(1)),Int(1,1)), -Direct(Tid(1_262, "%000004ee"))), Goto(Tid(1_270, "%000004f6"), - Attrs([Attr("address","0x778"), Attr("insn","cset w8, eq")]), Int(1,1), -Direct(Tid(1_265, "%000004f1")))])), Blk(Tid(1_265, "%000004f1"), Attrs([]), - Phis([]), Defs([Def(Tid(1_266, "%000004f2"), Attrs([Attr("address","0x778"), -Attr("insn","cset w8, eq")]), Var("R8",Imm(64)), Int(1,64))]), -Jmps([Goto(Tid(1_272, "%000004f8"), Attrs([Attr("address","0x778"), -Attr("insn","cset w8, eq")]), Int(1,1), Direct(Tid(1_268, "%000004f4")))])), -Blk(Tid(1_262, "%000004ee"), Attrs([]), Phis([]), -Defs([Def(Tid(1_263, "%000004ef"), Attrs([Attr("address","0x778"), -Attr("insn","cset w8, eq")]), Var("R8",Imm(64)), Int(0,64))]), -Jmps([Goto(Tid(1_271, "%000004f7"), Attrs([Attr("address","0x778"), -Attr("insn","cset w8, eq")]), Int(1,1), Direct(Tid(1_268, "%000004f4")))])), -Blk(Tid(1_268, "%000004f4"), Attrs([]), Phis([]), Defs([]), -Jmps([Goto(Tid(1_277, "%000004fd"), Attrs([Attr("address","0x77C"), -Attr("insn","tbnz w8, #0x0, #0x2c")]), - EQ(Extract(0,0,Var("R8",Imm(64))),Int(1,1)), -Direct(Tid(1_151, "%0000047f"))), Goto(Tid(2_141, "%0000085d"), Attrs([]), - Int(1,1), Direct(Tid(1_281, "%00000501")))])), Blk(Tid(1_151, "%0000047f"), - Attrs([Attr("address","0x7A8")]), Phis([]), -Defs([Def(Tid(1_154, "%00000482"), Attrs([Attr("address","0x7A8"), -Attr("insn","adrp x8, #0")]), Var("R8",Imm(64)), Int(0,64)), -Def(Tid(1_160, "%00000488"), Attrs([Attr("address","0x7AC"), -Attr("insn","add x8, x8, #0x724")]), Var("R8",Imm(64)), -PLUS(Var("R8",Imm(64)),Int(1828,64))), Def(Tid(1_168, "%00000490"), - Attrs([Attr("address","0x7B0"), Attr("insn","str x8, [sp, #0x10]")]), - Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(16,64)),Var("R8",Imm(64)),LittleEndian(),64))]), -Jmps([Goto(Tid(1_172, "%00000494"), Attrs([Attr("address","0x7B4"), -Attr("insn","b #0x24")]), Int(1,1), Direct(Tid(1_101, "%0000044d")))])), -Blk(Tid(1_281, "%00000501"), Attrs([Attr("address","0x780")]), Phis([]), -Defs([]), Jmps([Goto(Tid(1_284, "%00000504"), Attrs([Attr("address","0x780"), -Attr("insn","b #0x4")]), Int(1,1), Direct(Tid(1_282, "%00000502")))])), -Blk(Tid(1_282, "%00000502"), Attrs([Attr("address","0x784")]), Phis([]), -Defs([Def(Tid(1_290, "%0000050a"), Attrs([Attr("address","0x784"), -Attr("insn","ldr w8, [sp, #0xc]")]), Var("R8",Imm(64)), -UNSIGNED(64,Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(12,64)),LittleEndian(),32))), -Def(Tid(1_296, "%00000510"), Attrs([Attr("address","0x788"), -Attr("insn","subs w8, w8, #0x2")]), Var("#8",Imm(32)), -PLUS(Extract(31,0,Var("R8",Imm(64))),Int(4294967293,32))), -Def(Tid(1_301, "%00000515"), Attrs([Attr("address","0x788"), -Attr("insn","subs w8, w8, #0x2")]), Var("VF",Imm(1)), -NEQ(SIGNED(33,PLUS(Var("#8",Imm(32)),Int(1,32))),PLUS(SIGNED(33,Extract(31,0,Var("R8",Imm(64)))),Int(8589934590,33)))), -Def(Tid(1_306, "%0000051a"), Attrs([Attr("address","0x788"), -Attr("insn","subs w8, w8, #0x2")]), Var("CF",Imm(1)), -NEQ(UNSIGNED(33,PLUS(Var("#8",Imm(32)),Int(1,32))),PLUS(UNSIGNED(33,Extract(31,0,Var("R8",Imm(64)))),Int(4294967294,33)))), -Def(Tid(1_310, "%0000051e"), Attrs([Attr("address","0x788"), -Attr("insn","subs w8, w8, #0x2")]), Var("ZF",Imm(1)), -EQ(PLUS(Var("#8",Imm(32)),Int(1,32)),Int(0,32))), -Def(Tid(1_314, "%00000522"), Attrs([Attr("address","0x788"), -Attr("insn","subs w8, w8, #0x2")]), Var("NF",Imm(1)), -Extract(31,31,PLUS(Var("#8",Imm(32)),Int(1,32)))), -Def(Tid(1_318, "%00000526"), Attrs([Attr("address","0x788"), -Attr("insn","subs w8, w8, #0x2")]), Var("R8",Imm(64)), -UNSIGNED(64,PLUS(Var("#8",Imm(32)),Int(1,32))))]), -Jmps([Goto(Tid(1_330, "%00000532"), Attrs([Attr("address","0x78C"), -Attr("insn","cset w8, eq")]), NEQ(Var("ZF",Imm(1)),Int(1,1)), -Direct(Tid(1_323, "%0000052b"))), Goto(Tid(1_331, "%00000533"), - Attrs([Attr("address","0x78C"), Attr("insn","cset w8, eq")]), Int(1,1), -Direct(Tid(1_326, "%0000052e")))])), Blk(Tid(1_326, "%0000052e"), Attrs([]), - Phis([]), Defs([Def(Tid(1_327, "%0000052f"), Attrs([Attr("address","0x78C"), -Attr("insn","cset w8, eq")]), Var("R8",Imm(64)), Int(1,64))]), -Jmps([Goto(Tid(1_333, "%00000535"), Attrs([Attr("address","0x78C"), -Attr("insn","cset w8, eq")]), Int(1,1), Direct(Tid(1_329, "%00000531")))])), -Blk(Tid(1_323, "%0000052b"), Attrs([]), Phis([]), -Defs([Def(Tid(1_324, "%0000052c"), Attrs([Attr("address","0x78C"), -Attr("insn","cset w8, eq")]), Var("R8",Imm(64)), Int(0,64))]), -Jmps([Goto(Tid(1_332, "%00000534"), Attrs([Attr("address","0x78C"), -Attr("insn","cset w8, eq")]), Int(1,1), Direct(Tid(1_329, "%00000531")))])), -Blk(Tid(1_329, "%00000531"), Attrs([]), Phis([]), Defs([]), -Jmps([Goto(Tid(1_338, "%0000053a"), Attrs([Attr("address","0x790"), -Attr("insn","tbnz w8, #0x0, #0x28")]), - EQ(Extract(0,0,Var("R8",Imm(64))),Int(1,1)), -Direct(Tid(1_174, "%00000496"))), Goto(Tid(2_142, "%0000085e"), Attrs([]), - Int(1,1), Direct(Tid(1_342, "%0000053e")))])), Blk(Tid(1_174, "%00000496"), - Attrs([Attr("address","0x7B8")]), Phis([]), -Defs([Def(Tid(1_177, "%00000499"), Attrs([Attr("address","0x7B8"), -Attr("insn","adrp x8, #0")]), Var("R8",Imm(64)), Int(0,64)), -Def(Tid(1_183, "%0000049f"), Attrs([Attr("address","0x7BC"), -Attr("insn","add x8, x8, #0x734")]), Var("R8",Imm(64)), -PLUS(Var("R8",Imm(64)),Int(1844,64))), Def(Tid(1_191, "%000004a7"), - Attrs([Attr("address","0x7C0"), Attr("insn","str x8, [sp, #0x10]")]), - Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(16,64)),Var("R8",Imm(64)),LittleEndian(),64))]), -Jmps([Goto(Tid(1_195, "%000004ab"), Attrs([Attr("address","0x7C4"), -Attr("insn","b #0x14")]), Int(1,1), Direct(Tid(1_101, "%0000044d")))])), -Blk(Tid(1_342, "%0000053e"), Attrs([Attr("address","0x794")]), Phis([]), -Defs([]), Jmps([Goto(Tid(1_344, "%00000540"), Attrs([Attr("address","0x794"), -Attr("insn","b #0x34")]), Int(1,1), Direct(Tid(1_197, "%000004ad")))])), -Blk(Tid(1_197, "%000004ad"), Attrs([Attr("address","0x7C8")]), Phis([]), -Defs([Def(Tid(1_200, "%000004b0"), Attrs([Attr("address","0x7C8"), -Attr("insn","adrp x8, #0")]), Var("R8",Imm(64)), Int(0,64)), -Def(Tid(1_206, "%000004b6"), Attrs([Attr("address","0x7CC"), -Attr("insn","add x8, x8, #0x714")]), Var("R8",Imm(64)), -PLUS(Var("R8",Imm(64)),Int(1812,64))), Def(Tid(1_214, "%000004be"), - Attrs([Attr("address","0x7D0"), Attr("insn","str x8, [sp, #0x10]")]), - Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(16,64)),Var("R8",Imm(64)),LittleEndian(),64))]), -Jmps([Goto(Tid(1_218, "%000004c2"), Attrs([Attr("address","0x7D4"), -Attr("insn","b #0x4")]), Int(1,1), Direct(Tid(1_101, "%0000044d")))])), -Blk(Tid(1_101, "%0000044d"), Attrs([Attr("address","0x7D8")]), Phis([]), -Defs([Def(Tid(1_109, "%00000455"), Attrs([Attr("address","0x7D8"), -Attr("insn","ldr x8, [sp, #0x10]")]), Var("R8",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(16,64)),LittleEndian(),64)), -Def(Tid(1_114, "%0000045a"), Attrs([Attr("address","0x7DC"), -Attr("insn","blr x8")]), Var("R30",Imm(64)), Int(2016,64))]), -Jmps([Call(Tid(1_117, "%0000045d"), Attrs([Attr("address","0x7DC"), -Attr("insn","blr x8")]), Int(1,1), -(Indirect(Var("R8",Imm(64))),Direct(Tid(1_119, "%0000045f"))))])), -Blk(Tid(1_119, "%0000045f"), Attrs([Attr("address","0x7E0")]), Phis([]), -Defs([Def(Tid(1_122, "%00000462"), Attrs([Attr("address","0x7E0"), -Attr("insn","mov w0, wzr")]), Var("R0",Imm(64)), Int(0,64)), -Def(Tid(1_128, "%00000468"), Attrs([Attr("address","0x7E4"), -Attr("insn","ldp x29, x30, [sp, #0x20]")]), Var("#6",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(32,64))), Def(Tid(1_133, "%0000046d"), - Attrs([Attr("address","0x7E4"), Attr("insn","ldp x29, x30, [sp, #0x20]")]), - Var("R29",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("#6",Imm(64)),LittleEndian(),64)), -Def(Tid(1_138, "%00000472"), Attrs([Attr("address","0x7E4"), -Attr("insn","ldp x29, x30, [sp, #0x20]")]), Var("R30",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("#6",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(1_144, "%00000478"), Attrs([Attr("address","0x7E8"), -Attr("insn","add sp, sp, #0x30")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(48,64)))]), Jmps([Call(Tid(1_149, "%0000047d"), - Attrs([Attr("address","0x7EC"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), -Sub(Tid(2_105, "@register_tm_clones"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x680")]), - "register_tm_clones", Args([Arg(Tid(2_162, "%00000872"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("register_tm_clones_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(748, "@register_tm_clones"), Attrs([Attr("address","0x680")]), - Phis([]), Defs([Def(Tid(751, "%000002ef"), Attrs([Attr("address","0x680"), -Attr("insn","adrp x0, #69632")]), Var("R0",Imm(64)), Int(69632,64)), -Def(Tid(757, "%000002f5"), Attrs([Attr("address","0x684"), -Attr("insn","add x0, x0, #0x30")]), Var("R0",Imm(64)), -PLUS(Var("R0",Imm(64)),Int(48,64))), Def(Tid(762, "%000002fa"), - Attrs([Attr("address","0x688"), Attr("insn","adrp x1, #69632")]), - Var("R1",Imm(64)), Int(69632,64)), Def(Tid(768, "%00000300"), - Attrs([Attr("address","0x68C"), Attr("insn","add x1, x1, #0x30")]), - Var("R1",Imm(64)), PLUS(Var("R1",Imm(64)),Int(48,64))), -Def(Tid(775, "%00000307"), Attrs([Attr("address","0x690"), -Attr("insn","sub x1, x1, x0")]), Var("R1",Imm(64)), -PLUS(PLUS(Var("R1",Imm(64)),NOT(Var("R0",Imm(64)))),Int(1,64))), -Def(Tid(781, "%0000030d"), Attrs([Attr("address","0x694"), -Attr("insn","lsr x2, x1, #63")]), Var("R2",Imm(64)), -Concat(Int(0,63),Extract(63,63,Var("R1",Imm(64))))), -Def(Tid(788, "%00000314"), Attrs([Attr("address","0x698"), -Attr("insn","add x1, x2, x1, asr #3")]), Var("R1",Imm(64)), -PLUS(Var("R2",Imm(64)),ARSHIFT(Var("R1",Imm(64)),Int(3,3)))), -Def(Tid(794, "%0000031a"), Attrs([Attr("address","0x69C"), -Attr("insn","asr x1, x1, #1")]), Var("R1",Imm(64)), -SIGNED(64,Extract(63,1,Var("R1",Imm(64)))))]), -Jmps([Goto(Tid(800, "%00000320"), Attrs([Attr("address","0x6A0"), -Attr("insn","cbz x1, #0x18")]), EQ(Var("R1",Imm(64)),Int(0,64)), -Direct(Tid(798, "%0000031e"))), Goto(Tid(2_143, "%0000085f"), Attrs([]), - Int(1,1), Direct(Tid(1_405, "%0000057d")))])), Blk(Tid(1_405, "%0000057d"), - Attrs([Attr("address","0x6A4")]), Phis([]), -Defs([Def(Tid(1_408, "%00000580"), Attrs([Attr("address","0x6A4"), -Attr("insn","adrp x2, #65536")]), Var("R2",Imm(64)), Int(65536,64)), -Def(Tid(1_415, "%00000587"), Attrs([Attr("address","0x6A8"), -Attr("insn","ldr x2, [x2, #0xfe0]")]), Var("R2",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R2",Imm(64)),Int(4064,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(1_420, "%0000058c"), Attrs([Attr("address","0x6AC"), -Attr("insn","cbz x2, #0xc")]), EQ(Var("R2",Imm(64)),Int(0,64)), -Direct(Tid(798, "%0000031e"))), Goto(Tid(2_144, "%00000860"), Attrs([]), - Int(1,1), Direct(Tid(1_424, "%00000590")))])), Blk(Tid(798, "%0000031e"), - Attrs([Attr("address","0x6B8")]), Phis([]), Defs([]), -Jmps([Call(Tid(806, "%00000326"), Attrs([Attr("address","0x6B8"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))])), -Blk(Tid(1_424, "%00000590"), Attrs([Attr("address","0x6B0")]), Phis([]), -Defs([Def(Tid(1_428, "%00000594"), Attrs([Attr("address","0x6B0"), -Attr("insn","mov x16, x2")]), Var("R16",Imm(64)), Var("R2",Imm(64)))]), -Jmps([Call(Tid(1_433, "%00000599"), Attrs([Attr("address","0x6B4"), -Attr("insn","br x16")]), Int(1,1), (Indirect(Var("R16",Imm(64))),))]))])), -Sub(Tid(2_108, "@set_seven"), Attrs([Attr("c.proto","signed (*)(void)"), -Attr("address","0x734")]), "set_seven", Args([Arg(Tid(2_163, "%00000873"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("set_seven_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(948, "@set_seven"), - Attrs([Attr("address","0x734")]), Phis([]), Defs([Def(Tid(951, "%000003b7"), - Attrs([Attr("address","0x734"), Attr("insn","adrp x9, #69632")]), - Var("R9",Imm(64)), Int(69632,64)), Def(Tid(956, "%000003bc"), - Attrs([Attr("address","0x738"), Attr("insn","mov w8, #0x7")]), - Var("R8",Imm(64)), Int(7,64)), Def(Tid(964, "%000003c4"), - Attrs([Attr("address","0x73C"), Attr("insn","str w8, [x9, #0x34]")]), - Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R9",Imm(64)),Int(52,64)),Extract(31,0,Var("R8",Imm(64))),LittleEndian(),32))]), -Jmps([Call(Tid(969, "%000003c9"), Attrs([Attr("address","0x740"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))]))])), -Sub(Tid(2_109, "@set_six"), Attrs([Attr("c.proto","signed (*)(void)"), -Attr("address","0x724")]), "set_six", Args([Arg(Tid(2_164, "%00000874"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("set_six_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(925, "@set_six"), - Attrs([Attr("address","0x724")]), Phis([]), Defs([Def(Tid(928, "%000003a0"), - Attrs([Attr("address","0x724"), Attr("insn","adrp x9, #69632")]), - Var("R9",Imm(64)), Int(69632,64)), Def(Tid(933, "%000003a5"), - Attrs([Attr("address","0x728"), Attr("insn","mov w8, #0x6")]), - Var("R8",Imm(64)), Int(6,64)), Def(Tid(941, "%000003ad"), - Attrs([Attr("address","0x72C"), Attr("insn","str w8, [x9, #0x34]")]), - Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R9",Imm(64)),Int(52,64)),Extract(31,0,Var("R8",Imm(64))),LittleEndian(),32))]), -Jmps([Call(Tid(946, "%000003b2"), Attrs([Attr("address","0x730"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))]))])), -Sub(Tid(2_110, "@set_two"), Attrs([Attr("c.proto","signed (*)(void)"), -Attr("address","0x714")]), "set_two", Args([Arg(Tid(2_165, "%00000875"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("set_two_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(902, "@set_two"), - Attrs([Attr("address","0x714")]), Phis([]), Defs([Def(Tid(905, "%00000389"), - Attrs([Attr("address","0x714"), Attr("insn","adrp x9, #69632")]), - Var("R9",Imm(64)), Int(69632,64)), Def(Tid(910, "%0000038e"), - Attrs([Attr("address","0x718"), Attr("insn","mov w8, #0x2")]), - Var("R8",Imm(64)), Int(2,64)), Def(Tid(918, "%00000396"), - Attrs([Attr("address","0x71C"), Attr("insn","str w8, [x9, #0x34]")]), - Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R9",Imm(64)),Int(52,64)),Extract(31,0,Var("R8",Imm(64))),LittleEndian(),32))]), -Jmps([Call(Tid(923, "%0000039b"), Attrs([Attr("address","0x720"), -Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))]))]))) \ No newline at end of file diff --git a/src/test/indirect_calls/functionpointer/clang/functionpointer.bir b/src/test/indirect_calls/functionpointer/clang/functionpointer.bir deleted file mode 100644 index 367738a30..000000000 --- a/src/test/indirect_calls/functionpointer/clang/functionpointer.bir +++ /dev/null @@ -1,370 +0,0 @@ -00000861: program -00000823: sub __cxa_finalize(__cxa_finalize_result) -00000862: __cxa_finalize_result :: out u32 = low:32[R0] - -00000579: -00000671: R16 := 0x11000 -00000678: R17 := mem[R16 + 8, el]:u64 -0000067e: R16 := R16 + 8 -00000683: call R17 with noreturn - -00000824: sub __do_global_dtors_aux(__do_global_dtors_aux_result) -00000863: __do_global_dtors_aux_result :: out u32 = low:32[R0] - -0000032a: -0000032e: #3 := R31 - 0x20 -00000334: mem := mem with [#3, el]:u64 <- R29 -0000033a: mem := mem with [#3 + 8, el]:u64 <- R30 -0000033e: R31 := #3 -00000344: R29 := R31 -0000034c: mem := mem with [R31 + 0x10, el]:u64 <- R19 -00000351: R19 := 0x11000 -00000358: R0 := pad:64[mem[R19 + 0x30]] -0000035f: when 31:0[R0] <> 0 goto %0000035d -00000854: goto %00000542 - -00000542: -00000545: R0 := 0x10000 -0000054c: R0 := mem[R0 + 0xFC8, el]:u64 -00000552: when R0 = 0 goto %00000550 -00000855: goto %00000569 - -00000569: -0000056c: R0 := 0x11000 -00000573: R0 := mem[R0 + 0x28, el]:u64 -00000578: R30 := 0x6F0 -0000057b: call @__cxa_finalize with return %00000550 - -00000550: -00000558: R30 := 0x6F4 -0000055a: call @deregister_tm_clones with return %0000055c - -0000055c: -0000055f: R0 := 1 -00000567: mem := mem with [R19 + 0x30] <- 7:0[R0] -00000856: goto %0000035d - -0000035d: -00000367: R19 := mem[R31 + 0x10, el]:u64 -0000036e: R29 := mem[R31, el]:u64 -00000373: R30 := mem[R31 + 8, el]:u64 -00000377: R31 := R31 + 0x20 -0000037c: call R30 with noreturn - -00000828: sub __libc_start_main(__libc_start_main_main, __libc_start_main_arg2, __libc_start_main_arg3, __libc_start_main_auxv, __libc_start_main_result) -00000864: __libc_start_main_main :: in u64 = R0 -00000865: __libc_start_main_arg2 :: in u32 = low:32[R1] -00000866: __libc_start_main_arg3 :: in out u64 = R2 -00000867: __libc_start_main_auxv :: in out u64 = R3 -00000868: __libc_start_main_result :: out u32 = low:32[R0] - -00000283: -0000065b: R16 := 0x11000 -00000662: R17 := mem[R16, el]:u64 -00000668: R16 := R16 -0000066d: call R17 with noreturn - -00000829: sub _fini(_fini_result) -00000869: _fini_result :: out u32 = low:32[R0] - -0000001f: -00000025: #0 := R31 - 0x10 -0000002b: mem := mem with [#0, el]:u64 <- R29 -00000031: mem := mem with [#0 + 8, el]:u64 <- R30 -00000035: R31 := #0 -0000003b: R29 := R31 -00000042: R29 := mem[R31, el]:u64 -00000047: R30 := mem[R31 + 8, el]:u64 -0000004b: R31 := R31 + 0x10 -00000050: call R30 with noreturn - -0000082a: sub _init(_init_result) -0000086a: _init_result :: out u32 = low:32[R0] - -0000074e: -00000754: #10 := R31 - 0x10 -0000075a: mem := mem with [#10, el]:u64 <- R29 -00000760: mem := mem with [#10 + 8, el]:u64 <- R30 -00000764: R31 := #10 -0000076a: R29 := R31 -0000076f: R30 := 0x590 -00000771: call @call_weak_fn with return %00000773 - -00000773: -00000778: R29 := mem[R31, el]:u64 -0000077d: R30 := mem[R31 + 8, el]:u64 -00000781: R31 := R31 + 0x10 -00000786: call R30 with noreturn - -0000082b: sub _start(_start_result) -0000086b: _start_result :: out u32 = low:32[R0] - -00000244: -00000249: R29 := 0 -0000024e: R30 := 0 -00000254: R5 := R0 -0000025b: R1 := mem[R31, el]:u64 -00000261: R2 := R31 + 8 -00000267: R6 := R31 -0000026c: R0 := 0x10000 -00000273: R0 := mem[R0 + 0xFD8, el]:u64 -00000278: R3 := 0 -0000027d: R4 := 0 -00000282: R30 := 0x630 -00000285: call @__libc_start_main with return %00000287 - -00000287: -0000028a: R30 := 0x634 -0000028d: call @abort with return %00000857 - -00000857: -00000858: call @call_weak_fn with noreturn - -0000082e: sub abort() - - -0000028b: -0000069d: R16 := 0x11000 -000006a4: R17 := mem[R16 + 0x18, el]:u64 -000006aa: R16 := R16 + 0x18 -000006af: call R17 with noreturn - -0000082f: sub call_weak_fn(call_weak_fn_result) -0000086c: call_weak_fn_result :: out u32 = low:32[R0] - -0000028f: -00000292: R0 := 0x10000 -00000299: R0 := mem[R0 + 0xFD0, el]:u64 -0000029f: when R0 = 0 goto %0000029d -00000859: goto %000005b9 - -0000029d: -000002a5: call R30 with noreturn - -000005b9: -000005bc: goto @__gmon_start__ - -000005ba: -00000687: R16 := 0x11000 -0000068e: R17 := mem[R16 + 0x10, el]:u64 -00000694: R16 := R16 + 0x10 -00000699: call R17 with noreturn - -00000831: sub deregister_tm_clones(deregister_tm_clones_result) -0000086d: deregister_tm_clones_result :: out u32 = low:32[R0] - -000002ab: -000002ae: R0 := 0x11000 -000002b4: R0 := R0 + 0x30 -000002b9: R1 := 0x11000 -000002bf: R1 := R1 + 0x30 -000002c5: #1 := ~R0 -000002ca: #2 := R1 + ~R0 -000002d0: VF := extend:65[#2 + 1] <> extend:65[R1] + extend:65[#1] + 1 -000002d6: CF := pad:65[#2 + 1] <> pad:65[R1] + pad:65[#1] + 1 -000002da: ZF := #2 + 1 = 0 -000002de: NF := 63:63[#2 + 1] -000002e4: when ZF goto %000002e2 -0000085a: goto %0000059b - -0000059b: -0000059e: R1 := 0x10000 -000005a5: R1 := mem[R1 + 0xFC0, el]:u64 -000005aa: when R1 = 0 goto %000002e2 -0000085b: goto %000005ae - -000002e2: -000002ea: call R30 with noreturn - -000005ae: -000005b2: R16 := R1 -000005b7: call R16 with noreturn - -00000834: sub frame_dummy(frame_dummy_result) -0000086e: frame_dummy_result :: out u32 = low:32[R0] - -00000382: -00000384: call @register_tm_clones with noreturn - -00000835: sub main(main_argc, main_argv, main_result) -0000086f: main_argc :: in u32 = low:32[R0] -00000870: main_argv :: in out u64 = R1 -00000871: main_result :: out u32 = low:32[R0] - -000003cb: -000003cf: R31 := R31 - 0x30 -000003d5: #4 := R31 + 0x20 -000003db: mem := mem with [#4, el]:u64 <- R29 -000003e1: mem := mem with [#4 + 8, el]:u64 <- R30 -000003e7: R29 := R31 + 0x20 -000003ee: mem := mem with [R29 - 4, el]:u32 <- 0 -000003f6: mem := mem with [R29 - 8, el]:u32 <- 31:0[R0] -000003fd: R8 := pad:64[mem[R29 - 8, el]:u32] -00000405: mem := mem with [R31 + 0xC, el]:u32 <- 31:0[R8] -0000040b: #5 := 31:0[R8] - 1 -00000410: VF := extend:33[#5 + 1] <> extend:33[31:0[R8]] + 0 -00000415: CF := pad:33[#5 + 1] <> pad:33[31:0[R8]] - 0x100000000 -00000419: ZF := #5 + 1 = 0 -0000041d: NF := 31:31[#5 + 1] -00000421: R8 := pad:64[#5 + 1] -0000042d: when ZF <> 1 goto %00000426 -0000042e: goto %00000429 - -00000429: -0000042a: R8 := 1 -00000430: goto %0000042c - -00000426: -00000427: R8 := 0 -0000042f: goto %0000042c - -0000042c: -00000436: when 0:0[R8] goto %00000434 -0000085c: goto %000004c4 - -00000434: -0000043c: R8 := 0 -00000442: R8 := R8 + 0x714 -0000044a: mem := mem with [R31 + 0x10, el]:u64 <- R8 -0000044f: goto %0000044d - -000004c4: -000004c7: goto %000004c5 - -000004c5: -000004cd: R8 := pad:64[mem[R31 + 0xC, el]:u32] -000004d3: #7 := 31:0[R8] - 2 -000004d8: VF := extend:33[#7 + 1] <> extend:33[31:0[R8]] - 1 -000004dd: CF := pad:33[#7 + 1] <> pad:33[31:0[R8]] + 0xFFFFFFFF -000004e1: ZF := #7 + 1 = 0 -000004e5: NF := 31:31[#7 + 1] -000004e9: R8 := pad:64[#7 + 1] -000004f5: when ZF <> 1 goto %000004ee -000004f6: goto %000004f1 - -000004f1: -000004f2: R8 := 1 -000004f8: goto %000004f4 - -000004ee: -000004ef: R8 := 0 -000004f7: goto %000004f4 - -000004f4: -000004fd: when 0:0[R8] goto %0000047f -0000085d: goto %00000501 - -0000047f: -00000482: R8 := 0 -00000488: R8 := R8 + 0x724 -00000490: mem := mem with [R31 + 0x10, el]:u64 <- R8 -00000494: goto %0000044d - -00000501: -00000504: goto %00000502 - -00000502: -0000050a: R8 := pad:64[mem[R31 + 0xC, el]:u32] -00000510: #8 := 31:0[R8] - 3 -00000515: VF := extend:33[#8 + 1] <> extend:33[31:0[R8]] - 2 -0000051a: CF := pad:33[#8 + 1] <> pad:33[31:0[R8]] + 0xFFFFFFFE -0000051e: ZF := #8 + 1 = 0 -00000522: NF := 31:31[#8 + 1] -00000526: R8 := pad:64[#8 + 1] -00000532: when ZF <> 1 goto %0000052b -00000533: goto %0000052e - -0000052e: -0000052f: R8 := 1 -00000535: goto %00000531 - -0000052b: -0000052c: R8 := 0 -00000534: goto %00000531 - -00000531: -0000053a: when 0:0[R8] goto %00000496 -0000085e: goto %0000053e - -00000496: -00000499: R8 := 0 -0000049f: R8 := R8 + 0x734 -000004a7: mem := mem with [R31 + 0x10, el]:u64 <- R8 -000004ab: goto %0000044d - -0000053e: -00000540: goto %000004ad - -000004ad: -000004b0: R8 := 0 -000004b6: R8 := R8 + 0x714 -000004be: mem := mem with [R31 + 0x10, el]:u64 <- R8 -000004c2: goto %0000044d - -0000044d: -00000455: R8 := mem[R31 + 0x10, el]:u64 -0000045a: R30 := 0x7E0 -0000045d: call R8 with return %0000045f - -0000045f: -00000462: R0 := 0 -00000468: #6 := R31 + 0x20 -0000046d: R29 := mem[#6, el]:u64 -00000472: R30 := mem[#6 + 8, el]:u64 -00000478: R31 := R31 + 0x30 -0000047d: call R30 with noreturn - -00000839: sub register_tm_clones(register_tm_clones_result) -00000872: register_tm_clones_result :: out u32 = low:32[R0] - -000002ec: -000002ef: R0 := 0x11000 -000002f5: R0 := R0 + 0x30 -000002fa: R1 := 0x11000 -00000300: R1 := R1 + 0x30 -00000307: R1 := R1 + ~R0 + 1 -0000030d: R2 := 0.63:63[R1] -00000314: R1 := R2 + (R1 ~>> 3) -0000031a: R1 := extend:64[63:1[R1]] -00000320: when R1 = 0 goto %0000031e -0000085f: goto %0000057d - -0000057d: -00000580: R2 := 0x10000 -00000587: R2 := mem[R2 + 0xFE0, el]:u64 -0000058c: when R2 = 0 goto %0000031e -00000860: goto %00000590 - -0000031e: -00000326: call R30 with noreturn - -00000590: -00000594: R16 := R2 -00000599: call R16 with noreturn - -0000083c: sub set_seven(set_seven_result) -00000873: set_seven_result :: out u32 = low:32[R0] - -000003b4: -000003b7: R9 := 0x11000 -000003bc: R8 := 7 -000003c4: mem := mem with [R9 + 0x34, el]:u32 <- 31:0[R8] -000003c9: call R30 with noreturn - -0000083d: sub set_six(set_six_result) -00000874: set_six_result :: out u32 = low:32[R0] - -0000039d: -000003a0: R9 := 0x11000 -000003a5: R8 := 6 -000003ad: mem := mem with [R9 + 0x34, el]:u32 <- 31:0[R8] -000003b2: call R30 with noreturn - -0000083e: sub set_two(set_two_result) -00000875: set_two_result :: out u32 = low:32[R0] - -00000386: -00000389: R9 := 0x11000 -0000038e: R8 := 2 -00000396: mem := mem with [R9 + 0x34, el]:u32 <- 31:0[R8] -0000039b: call R30 with noreturn diff --git a/src/test/indirect_calls/functionpointer/clang/functionpointer.md5sum b/src/test/indirect_calls/functionpointer/clang/functionpointer.md5sum new file mode 100644 index 000000000..ad5d1361b --- /dev/null +++ b/src/test/indirect_calls/functionpointer/clang/functionpointer.md5sum @@ -0,0 +1,4 @@ +98bcf9cdba35dc418cc5f520d1adb6c1 indirect_calls/functionpointer/clang/a.out +13f271148dae5ce19016350741e7004e indirect_calls/functionpointer/clang/functionpointer.relf +5e4558a7d3b32a65e717ab85b233c8f8 indirect_calls/functionpointer/clang/functionpointer.adt +575c1c5b632e8ee231954694bafff25d indirect_calls/functionpointer/clang/functionpointer.bir diff --git a/src/test/indirect_calls/functionpointer/clang/functionpointer.relf b/src/test/indirect_calls/functionpointer/clang/functionpointer.relf deleted file mode 100644 index 833953442..000000000 --- a/src/test/indirect_calls/functionpointer/clang/functionpointer.relf +++ /dev/null @@ -1,126 +0,0 @@ - -Relocation section '.rela.dyn' at offset 0x460 contains 8 entries: - Offset Info Type Symbol's Value Symbol's Name + Addend -0000000000010dc8 0000000000000403 R_AARCH64_RELATIVE 710 -0000000000010dd0 0000000000000403 R_AARCH64_RELATIVE 6c0 -0000000000010fd8 0000000000000403 R_AARCH64_RELATIVE 744 -0000000000011028 0000000000000403 R_AARCH64_RELATIVE 11028 -0000000000010fc0 0000000400000401 R_AARCH64_GLOB_DAT 0000000000000000 _ITM_deregisterTMCloneTable + 0 -0000000000010fc8 0000000500000401 R_AARCH64_GLOB_DAT 0000000000000000 __cxa_finalize@GLIBC_2.17 + 0 -0000000000010fd0 0000000600000401 R_AARCH64_GLOB_DAT 0000000000000000 __gmon_start__ + 0 -0000000000010fe0 0000000800000401 R_AARCH64_GLOB_DAT 0000000000000000 _ITM_registerTMCloneTable + 0 - -Relocation section '.rela.plt' at offset 0x520 contains 4 entries: - Offset Info Type Symbol's Value Symbol's Name + Addend -0000000000011000 0000000300000402 R_AARCH64_JUMP_SLOT 0000000000000000 __libc_start_main@GLIBC_2.34 + 0 -0000000000011008 0000000500000402 R_AARCH64_JUMP_SLOT 0000000000000000 __cxa_finalize@GLIBC_2.17 + 0 -0000000000011010 0000000600000402 R_AARCH64_JUMP_SLOT 0000000000000000 __gmon_start__ + 0 -0000000000011018 0000000700000402 R_AARCH64_JUMP_SLOT 0000000000000000 abort@GLIBC_2.17 + 0 - -Symbol table '.dynsym' contains 9 entries: - Num: Value Size Type Bind Vis Ndx Name - 0: 0000000000000000 0 NOTYPE LOCAL DEFAULT UND - 1: 0000000000000580 0 SECTION LOCAL DEFAULT 11 .init - 2: 0000000000011020 0 SECTION LOCAL DEFAULT 23 .data - 3: 0000000000000000 0 FUNC GLOBAL DEFAULT UND __libc_start_main@GLIBC_2.34 (2) - 4: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_deregisterTMCloneTable - 5: 0000000000000000 0 FUNC WEAK DEFAULT UND __cxa_finalize@GLIBC_2.17 (3) - 6: 0000000000000000 0 NOTYPE WEAK DEFAULT UND __gmon_start__ - 7: 0000000000000000 0 FUNC GLOBAL DEFAULT UND abort@GLIBC_2.17 (3) - 8: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_registerTMCloneTable - -Symbol table '.symtab' contains 93 entries: - Num: Value Size Type Bind Vis Ndx Name - 0: 0000000000000000 0 NOTYPE LOCAL DEFAULT UND - 1: 0000000000000238 0 SECTION LOCAL DEFAULT 1 .interp - 2: 0000000000000254 0 SECTION LOCAL DEFAULT 2 .note.gnu.build-id - 3: 0000000000000278 0 SECTION LOCAL DEFAULT 3 .note.ABI-tag - 4: 0000000000000298 0 SECTION LOCAL DEFAULT 4 .gnu.hash - 5: 00000000000002b8 0 SECTION LOCAL DEFAULT 5 .dynsym - 6: 0000000000000390 0 SECTION LOCAL DEFAULT 6 .dynstr - 7: 000000000000041e 0 SECTION LOCAL DEFAULT 7 .gnu.version - 8: 0000000000000430 0 SECTION LOCAL DEFAULT 8 .gnu.version_r - 9: 0000000000000460 0 SECTION LOCAL DEFAULT 9 .rela.dyn - 10: 0000000000000520 0 SECTION LOCAL DEFAULT 10 .rela.plt - 11: 0000000000000580 0 SECTION LOCAL DEFAULT 11 .init - 12: 00000000000005a0 0 SECTION LOCAL DEFAULT 12 .plt - 13: 0000000000000600 0 SECTION LOCAL DEFAULT 13 .text - 14: 00000000000007f0 0 SECTION LOCAL DEFAULT 14 .fini - 15: 0000000000000804 0 SECTION LOCAL DEFAULT 15 .rodata - 16: 0000000000000808 0 SECTION LOCAL DEFAULT 16 .eh_frame_hdr - 17: 0000000000000860 0 SECTION LOCAL DEFAULT 17 .eh_frame - 18: 0000000000010dc8 0 SECTION LOCAL DEFAULT 18 .init_array - 19: 0000000000010dd0 0 SECTION LOCAL DEFAULT 19 .fini_array - 20: 0000000000010dd8 0 SECTION LOCAL DEFAULT 20 .dynamic - 21: 0000000000010fb8 0 SECTION LOCAL DEFAULT 21 .got - 22: 0000000000010fe8 0 SECTION LOCAL DEFAULT 22 .got.plt - 23: 0000000000011020 0 SECTION LOCAL DEFAULT 23 .data - 24: 0000000000011030 0 SECTION LOCAL DEFAULT 24 .bss - 25: 0000000000000000 0 SECTION LOCAL DEFAULT 25 .comment - 26: 0000000000000000 0 FILE LOCAL DEFAULT ABS Scrt1.o - 27: 0000000000000278 0 NOTYPE LOCAL DEFAULT 3 $d - 28: 0000000000000278 32 OBJECT LOCAL DEFAULT 3 __abi_tag - 29: 0000000000000600 0 NOTYPE LOCAL DEFAULT 13 $x - 30: 0000000000000874 0 NOTYPE LOCAL DEFAULT 17 $d - 31: 0000000000000804 0 NOTYPE LOCAL DEFAULT 15 $d - 32: 0000000000000000 0 FILE LOCAL DEFAULT ABS crti.o - 33: 0000000000000634 0 NOTYPE LOCAL DEFAULT 13 $x - 34: 0000000000000634 20 FUNC LOCAL DEFAULT 13 call_weak_fn - 35: 0000000000000580 0 NOTYPE LOCAL DEFAULT 11 $x - 36: 00000000000007f0 0 NOTYPE LOCAL DEFAULT 14 $x - 37: 0000000000000000 0 FILE LOCAL DEFAULT ABS crtn.o - 38: 0000000000000590 0 NOTYPE LOCAL DEFAULT 11 $x - 39: 00000000000007fc 0 NOTYPE LOCAL DEFAULT 14 $x - 40: 0000000000000000 0 FILE LOCAL DEFAULT ABS crtstuff.c - 41: 0000000000000650 0 NOTYPE LOCAL DEFAULT 13 $x - 42: 0000000000000650 0 FUNC LOCAL DEFAULT 13 deregister_tm_clones - 43: 0000000000000680 0 FUNC LOCAL DEFAULT 13 register_tm_clones - 44: 0000000000011028 0 NOTYPE LOCAL DEFAULT 23 $d - 45: 00000000000006c0 0 FUNC LOCAL DEFAULT 13 __do_global_dtors_aux - 46: 0000000000011030 1 OBJECT LOCAL DEFAULT 24 completed.0 - 47: 0000000000010dd0 0 NOTYPE LOCAL DEFAULT 19 $d - 48: 0000000000010dd0 0 OBJECT LOCAL DEFAULT 19 __do_global_dtors_aux_fini_array_entry - 49: 0000000000000710 0 FUNC LOCAL DEFAULT 13 frame_dummy - 50: 0000000000010dc8 0 NOTYPE LOCAL DEFAULT 18 $d - 51: 0000000000010dc8 0 OBJECT LOCAL DEFAULT 18 __frame_dummy_init_array_entry - 52: 0000000000000888 0 NOTYPE LOCAL DEFAULT 17 $d - 53: 0000000000011030 0 NOTYPE LOCAL DEFAULT 24 $d - 54: 0000000000000000 0 FILE LOCAL DEFAULT ABS functionpointer.c - 55: 0000000000000714 0 NOTYPE LOCAL DEFAULT 13 $x.0 - 56: 0000000000011034 0 NOTYPE LOCAL DEFAULT 24 $d.1 - 57: 000000000000002a 0 NOTYPE LOCAL DEFAULT 25 $d.2 - 58: 00000000000008e8 0 NOTYPE LOCAL DEFAULT 17 $d.3 - 59: 0000000000000000 0 FILE LOCAL DEFAULT ABS crtstuff.c - 60: 0000000000000960 0 NOTYPE LOCAL DEFAULT 17 $d - 61: 0000000000000960 0 OBJECT LOCAL DEFAULT 17 __FRAME_END__ - 62: 0000000000000000 0 FILE LOCAL DEFAULT ABS - 63: 0000000000010dd8 0 OBJECT LOCAL DEFAULT ABS _DYNAMIC - 64: 0000000000000808 0 NOTYPE LOCAL DEFAULT 16 __GNU_EH_FRAME_HDR - 65: 0000000000010fb8 0 OBJECT LOCAL DEFAULT ABS _GLOBAL_OFFSET_TABLE_ - 66: 00000000000005a0 0 NOTYPE LOCAL DEFAULT 12 $x - 67: 0000000000000000 0 FUNC GLOBAL DEFAULT UND __libc_start_main@GLIBC_2.34 - 68: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_deregisterTMCloneTable - 69: 0000000000011020 0 NOTYPE WEAK DEFAULT 23 data_start - 70: 0000000000011030 0 NOTYPE GLOBAL DEFAULT 24 __bss_start__ - 71: 0000000000000000 0 FUNC WEAK DEFAULT UND __cxa_finalize@GLIBC_2.17 - 72: 0000000000011038 0 NOTYPE GLOBAL DEFAULT 24 _bss_end__ - 73: 0000000000011030 0 NOTYPE GLOBAL DEFAULT 23 _edata - 74: 0000000000011034 4 OBJECT GLOBAL DEFAULT 24 x - 75: 00000000000007f0 0 FUNC GLOBAL HIDDEN 14 _fini - 76: 0000000000011038 0 NOTYPE GLOBAL DEFAULT 24 __bss_end__ - 77: 0000000000011020 0 NOTYPE GLOBAL DEFAULT 23 __data_start - 78: 0000000000000000 0 NOTYPE WEAK DEFAULT UND __gmon_start__ - 79: 0000000000011028 0 OBJECT GLOBAL HIDDEN 23 __dso_handle - 80: 0000000000000000 0 FUNC GLOBAL DEFAULT UND abort@GLIBC_2.17 - 81: 0000000000000804 4 OBJECT GLOBAL DEFAULT 15 _IO_stdin_used - 82: 0000000000000714 16 FUNC GLOBAL DEFAULT 13 set_two - 83: 0000000000011038 0 NOTYPE GLOBAL DEFAULT 24 _end - 84: 0000000000000600 52 FUNC GLOBAL DEFAULT 13 _start - 85: 0000000000011038 0 NOTYPE GLOBAL DEFAULT 24 __end__ - 86: 0000000000000724 16 FUNC GLOBAL DEFAULT 13 set_six - 87: 0000000000011030 0 NOTYPE GLOBAL DEFAULT 24 __bss_start - 88: 0000000000000744 172 FUNC GLOBAL DEFAULT 13 main - 89: 0000000000000734 16 FUNC GLOBAL DEFAULT 13 set_seven - 90: 0000000000011030 0 OBJECT GLOBAL HIDDEN 23 __TMC_END__ - 91: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_registerTMCloneTable - 92: 0000000000000580 0 FUNC GLOBAL HIDDEN 11 _init diff --git a/src/test/indirect_calls/functionpointer/clang_O2/functionpointer.adt b/src/test/indirect_calls/functionpointer/clang_O2/functionpointer.adt deleted file mode 100644 index cf2ee835f..000000000 --- a/src/test/indirect_calls/functionpointer/clang_O2/functionpointer.adt +++ /dev/null @@ -1,642 +0,0 @@ -Project(Attrs([Attr("filename","\"clang_O2/functionpointer.out\""), -Attr("image-specification","(declare abi (name str))\n(declare arch (name str))\n(declare base-address (addr int))\n(declare bias (off int))\n(declare bits (size int))\n(declare code-region (addr int) (size int) (off int))\n(declare code-start (addr int))\n(declare entry-point (addr int))\n(declare external-reference (addr int) (name str))\n(declare format (name str))\n(declare is-executable (flag bool))\n(declare is-little-endian (flag bool))\n(declare llvm:base-address (addr int))\n(declare llvm:code-entry (name str) (off int) (size int))\n(declare llvm:coff-import-library (name str))\n(declare llvm:coff-virtual-section-header (name str) (addr int) (size int))\n(declare llvm:elf-program-header (name str) (off int) (size int))\n(declare llvm:elf-program-header-flags (name str) (ld bool) (r bool) \n (w bool) (x bool))\n(declare llvm:elf-virtual-program-header (name str) (addr int) (size int))\n(declare llvm:entry-point (addr int))\n(declare llvm:macho-symbol (name str) (value int))\n(declare llvm:name-reference (at int) (name str))\n(declare llvm:relocation (at int) (addr int))\n(declare llvm:section-entry (name str) (addr int) (size int) (off int))\n(declare llvm:section-flags (name str) (r bool) (w bool) (x bool))\n(declare llvm:segment-command (name str) (off int) (size int))\n(declare llvm:segment-command-flags (name str) (r bool) (w bool) (x bool))\n(declare llvm:symbol-entry (name str) (addr int) (size int) (off int)\n (value int))\n(declare llvm:virtual-segment-command (name str) (addr int) (size int))\n(declare mapped (addr int) (size int) (off int))\n(declare named-region (addr int) (size int) (name str))\n(declare named-symbol (addr int) (name str))\n(declare require (name str))\n(declare section (addr int) (size int))\n(declare segment (addr int) (size int) (r bool) (w bool) (x bool))\n(declare subarch (name str))\n(declare symbol-chunk (addr int) (size int) (root int))\n(declare symbol-value (addr int) (value int))\n(declare system (name str))\n(declare vendor (name str))\n\n(abi unknown)\n(arch aarch64)\n(base-address 0)\n(bias 0)\n(bits 64)\n(code-region 1924 20 1924)\n(code-region 1536 388 1536)\n(code-region 1440 96 1440)\n(code-region 1408 24 1408)\n(code-start 1588)\n(code-start 1812)\n(code-start 1536)\n(code-start 1828)\n(code-start 1860)\n(code-start 1844)\n(entry-point 1536)\n(external-reference 69568 _ITM_deregisterTMCloneTable)\n(external-reference 69576 __cxa_finalize)\n(external-reference 69584 __gmon_start__)\n(external-reference 69600 _ITM_registerTMCloneTable)\n(external-reference 69632 __libc_start_main)\n(external-reference 69640 __cxa_finalize)\n(external-reference 69648 __gmon_start__)\n(external-reference 69656 abort)\n(format elf)\n(is-executable true)\n(is-little-endian true)\n(llvm:base-address 0)\n(llvm:code-entry abort 0 0)\n(llvm:code-entry __cxa_finalize 0 0)\n(llvm:code-entry __libc_start_main 0 0)\n(llvm:code-entry _init 1408 0)\n(llvm:code-entry set_seven 1844 16)\n(llvm:code-entry main 1860 64)\n(llvm:code-entry set_six 1828 16)\n(llvm:code-entry _start 1536 52)\n(llvm:code-entry set_two 1812 16)\n(llvm:code-entry abort@GLIBC_2.17 0 0)\n(llvm:code-entry _fini 1924 0)\n(llvm:code-entry __cxa_finalize@GLIBC_2.17 0 0)\n(llvm:code-entry __libc_start_main@GLIBC_2.34 0 0)\n(llvm:code-entry frame_dummy 1808 0)\n(llvm:code-entry __do_global_dtors_aux 1728 0)\n(llvm:code-entry register_tm_clones 1664 0)\n(llvm:code-entry deregister_tm_clones 1616 0)\n(llvm:code-entry call_weak_fn 1588 20)\n(llvm:code-entry .fini 1924 20)\n(llvm:code-entry .text 1536 388)\n(llvm:code-entry .plt 1440 96)\n(llvm:code-entry .init 1408 24)\n(llvm:elf-program-header 08 3528 568)\n(llvm:elf-program-header 07 0 0)\n(llvm:elf-program-header 06 1948 84)\n(llvm:elf-program-header 05 596 68)\n(llvm:elf-program-header 04 3544 480)\n(llvm:elf-program-header 03 3528 616)\n(llvm:elf-program-header 02 0 2292)\n(llvm:elf-program-header 01 568 27)\n(llvm:elf-program-header 00 64 504)\n(llvm:elf-program-header-flags 08 false true false false)\n(llvm:elf-program-header-flags 07 false true true false)\n(llvm:elf-program-header-flags 06 false true false false)\n(llvm:elf-program-header-flags 05 false true false false)\n(llvm:elf-program-header-flags 04 false true true false)\n(llvm:elf-program-header-flags 03 true true true false)\n(llvm:elf-program-header-flags 02 true true false true)\n(llvm:elf-program-header-flags 01 false true false false)\n(llvm:elf-program-header-flags 00 false true false false)\n(llvm:elf-virtual-program-header 08 69064 568)\n(llvm:elf-virtual-program-header 07 0 0)\n(llvm:elf-virtual-program-header 06 1948 84)\n(llvm:elf-virtual-program-header 05 596 68)\n(llvm:elf-virtual-program-header 04 69080 480)\n(llvm:elf-virtual-program-header 03 69064 624)\n(llvm:elf-virtual-program-header 02 0 2292)\n(llvm:elf-virtual-program-header 01 568 27)\n(llvm:elf-virtual-program-header 00 64 504)\n(llvm:entry-point 1536)\n(llvm:name-reference 69656 abort)\n(llvm:name-reference 69648 __gmon_start__)\n(llvm:name-reference 69640 __cxa_finalize)\n(llvm:name-reference 69632 __libc_start_main)\n(llvm:name-reference 69600 _ITM_registerTMCloneTable)\n(llvm:name-reference 69584 __gmon_start__)\n(llvm:name-reference 69576 __cxa_finalize)\n(llvm:name-reference 69568 _ITM_deregisterTMCloneTable)\n(llvm:section-entry .shstrtab 0 259 7045)\n(llvm:section-entry .strtab 0 597 6448)\n(llvm:section-entry .symtab 0 2232 4216)\n(llvm:section-entry .comment 0 71 4144)\n(llvm:section-entry .bss 69680 8 4144)\n(llvm:section-entry .data 69664 16 4128)\n(llvm:section-entry .got.plt 69608 56 4072)\n(llvm:section-entry .got 69560 48 4024)\n(llvm:section-entry .dynamic 69080 480 3544)\n(llvm:section-entry .fini_array 69072 8 3536)\n(llvm:section-entry .init_array 69064 8 3528)\n(llvm:section-entry .eh_frame 2032 260 2032)\n(llvm:section-entry .eh_frame_hdr 1948 84 1948)\n(llvm:section-entry .rodata 1944 4 1944)\n(llvm:section-entry .fini 1924 20 1924)\n(llvm:section-entry .text 1536 388 1536)\n(llvm:section-entry .plt 1440 96 1440)\n(llvm:section-entry .init 1408 24 1408)\n(llvm:section-entry .rela.plt 1312 96 1312)\n(llvm:section-entry .rela.dyn 1120 192 1120)\n(llvm:section-entry .gnu.version_r 1072 48 1072)\n(llvm:section-entry .gnu.version 1054 18 1054)\n(llvm:section-entry .dynstr 912 141 912)\n(llvm:section-entry .dynsym 696 216 696)\n(llvm:section-entry .gnu.hash 664 28 664)\n(llvm:section-entry .note.ABI-tag 632 32 632)\n(llvm:section-entry .note.gnu.build-id 596 36 596)\n(llvm:section-entry .interp 568 27 568)\n(llvm:section-flags .shstrtab true false false)\n(llvm:section-flags .strtab true false false)\n(llvm:section-flags .symtab true false false)\n(llvm:section-flags .comment true false false)\n(llvm:section-flags .bss true true false)\n(llvm:section-flags .data true true false)\n(llvm:section-flags .got.plt true true false)\n(llvm:section-flags .got true true false)\n(llvm:section-flags .dynamic true true false)\n(llvm:section-flags .fini_array true true false)\n(llvm:section-flags .init_array true true false)\n(llvm:section-flags .eh_frame true false false)\n(llvm:section-flags .eh_frame_hdr true false false)\n(llvm:section-flags .rodata true false false)\n(llvm:section-flags .fini true false true)\n(llvm:section-flags .text true false true)\n(llvm:section-flags .plt true false true)\n(llvm:section-flags .init true false true)\n(llvm:section-flags .rela.plt true false false)\n(llvm:section-flags .rela.dyn true false false)\n(llvm:section-flags .gnu.version_r true false false)\n(llvm:section-flags .gnu.version true false false)\n(llvm:section-flags .dynstr true false false)\n(llvm:section-flags .dynsym true false false)\n(llvm:section-flags .gnu.hash true false false)\n(llvm:section-flags .note.ABI-tag true false false)\n(llvm:section-flags .note.gnu.build-id true false false)\n(llvm:section-flags .interp true false false)\n(llvm:symbol-entry abort 0 0 0 0)\n(llvm:symbol-entry __cxa_finalize 0 0 0 0)\n(llvm:symbol-entry __libc_start_main 0 0 0 0)\n(llvm:symbol-entry _init 1408 0 1408 1408)\n(llvm:symbol-entry set_seven 1844 16 1844 1844)\n(llvm:symbol-entry main 1860 64 1860 1860)\n(llvm:symbol-entry set_six 1828 16 1828 1828)\n(llvm:symbol-entry _start 1536 52 1536 1536)\n(llvm:symbol-entry set_two 1812 16 1812 1812)\n(llvm:symbol-entry abort@GLIBC_2.17 0 0 0 0)\n(llvm:symbol-entry _fini 1924 0 1924 1924)\n(llvm:symbol-entry __cxa_finalize@GLIBC_2.17 0 0 0 0)\n(llvm:symbol-entry __libc_start_main@GLIBC_2.34 0 0 0 0)\n(llvm:symbol-entry frame_dummy 1808 0 1808 1808)\n(llvm:symbol-entry __do_global_dtors_aux 1728 0 1728 1728)\n(llvm:symbol-entry register_tm_clones 1664 0 1664 1664)\n(llvm:symbol-entry deregister_tm_clones 1616 0 1616 1616)\n(llvm:symbol-entry call_weak_fn 1588 20 1588 1588)\n(mapped 0 2292 0)\n(mapped 69064 616 3528)\n(named-region 0 2292 02)\n(named-region 69064 624 03)\n(named-region 568 27 .interp)\n(named-region 596 36 .note.gnu.build-id)\n(named-region 632 32 .note.ABI-tag)\n(named-region 664 28 .gnu.hash)\n(named-region 696 216 .dynsym)\n(named-region 912 141 .dynstr)\n(named-region 1054 18 .gnu.version)\n(named-region 1072 48 .gnu.version_r)\n(named-region 1120 192 .rela.dyn)\n(named-region 1312 96 .rela.plt)\n(named-region 1408 24 .init)\n(named-region 1440 96 .plt)\n(named-region 1536 388 .text)\n(named-region 1924 20 .fini)\n(named-region 1944 4 .rodata)\n(named-region 1948 84 .eh_frame_hdr)\n(named-region 2032 260 .eh_frame)\n(named-region 69064 8 .init_array)\n(named-region 69072 8 .fini_array)\n(named-region 69080 480 .dynamic)\n(named-region 69560 48 .got)\n(named-region 69608 56 .got.plt)\n(named-region 69664 16 .data)\n(named-region 69680 8 .bss)\n(named-region 0 71 .comment)\n(named-region 0 2232 .symtab)\n(named-region 0 597 .strtab)\n(named-region 0 259 .shstrtab)\n(named-symbol 1588 call_weak_fn)\n(named-symbol 1616 deregister_tm_clones)\n(named-symbol 1664 register_tm_clones)\n(named-symbol 1728 __do_global_dtors_aux)\n(named-symbol 1808 frame_dummy)\n(named-symbol 0 __libc_start_main@GLIBC_2.34)\n(named-symbol 0 __cxa_finalize@GLIBC_2.17)\n(named-symbol 1924 _fini)\n(named-symbol 0 abort@GLIBC_2.17)\n(named-symbol 1812 set_two)\n(named-symbol 1536 _start)\n(named-symbol 1828 set_six)\n(named-symbol 1860 main)\n(named-symbol 1844 set_seven)\n(named-symbol 1408 _init)\n(named-symbol 0 __libc_start_main)\n(named-symbol 0 __cxa_finalize)\n(named-symbol 0 abort)\n(require libc.so.6)\n(section 568 27)\n(section 596 36)\n(section 632 32)\n(section 664 28)\n(section 696 216)\n(section 912 141)\n(section 1054 18)\n(section 1072 48)\n(section 1120 192)\n(section 1312 96)\n(section 1408 24)\n(section 1440 96)\n(section 1536 388)\n(section 1924 20)\n(section 1944 4)\n(section 1948 84)\n(section 2032 260)\n(section 69064 8)\n(section 69072 8)\n(section 69080 480)\n(section 69560 48)\n(section 69608 56)\n(section 69664 16)\n(section 69680 8)\n(section 0 71)\n(section 0 2232)\n(section 0 597)\n(section 0 259)\n(segment 0 2292 true false true)\n(segment 69064 624 true true false)\n(subarch v8)\n(symbol-chunk 1588 20 1588)\n(symbol-chunk 1812 16 1812)\n(symbol-chunk 1536 52 1536)\n(symbol-chunk 1828 16 1828)\n(symbol-chunk 1860 64 1860)\n(symbol-chunk 1844 16 1844)\n(symbol-value 1588 1588)\n(symbol-value 1616 1616)\n(symbol-value 1664 1664)\n(symbol-value 1728 1728)\n(symbol-value 1808 1808)\n(symbol-value 1924 1924)\n(symbol-value 1812 1812)\n(symbol-value 1536 1536)\n(symbol-value 1828 1828)\n(symbol-value 1860 1860)\n(symbol-value 1844 1844)\n(symbol-value 1408 1408)\n(symbol-value 0 0)\n(system \"\")\n(vendor \"\")\n"), -Attr("abi-name","\"aarch64-linux-gnu-elf\"")]), -Sections([Section(".shstrtab", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x00\x06\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x88\x1c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x38\x00\x09\x00\x40\x00\x1d\x00\x1c\x00\x06\x00\x00\x00\x04\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x04\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xf4\x08\x00\x00\x00\x00\x00\x00\xf4\x08\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x01\x00\x00\x00\x06\x00\x00\x00\xc8\x0d\x00\x00\x00\x00\x00\x00\xc8\x0d\x01\x00\x00\x00\x00\x00\xc8\x0d\x01"), -Section(".strtab", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x00\x06\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x88\x1c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x38\x00\x09\x00\x40\x00\x1d\x00\x1c\x00\x06\x00\x00\x00\x04\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x04\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xf4\x08\x00\x00\x00\x00\x00\x00\xf4\x08\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x01\x00\x00\x00\x06\x00\x00\x00\xc8\x0d\x00\x00\x00\x00\x00\x00\xc8\x0d\x01\x00\x00\x00\x00\x00\xc8\x0d\x01\x00\x00\x00\x00\x00\x68\x02\x00\x00\x00\x00\x00\x00\x70\x02\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x02\x00\x00\x00\x06\x00\x00\x00\xd8\x0d\x00\x00\x00\x00\x00\x00\xd8\x0d\x01\x00\x00\x00\x00\x00\xd8\x0d\x01\x00\x00\x00\x00\x00\xe0\x01\x00\x00\x00\x00\x00\x00\xe0\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x04\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x50\xe5\x74\x64\x04\x00\x00\x00\x9c\x07\x00\x00\x00\x00\x00\x00\x9c\x07\x00\x00\x00\x00\x00\x00\x9c\x07\x00\x00\x00\x00\x00\x00\x54\x00\x00\x00\x00\x00\x00\x00\x54\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x51\xe5\x74\x64\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x52\xe5\x74\x64\x04\x00\x00\x00\xc8\x0d\x00\x00\x00\x00\x00\x00\xc8\x0d\x01\x00\x00\x00\x00\x00\xc8\x0d\x01\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x2f\x6c\x69\x62\x2f\x6c\x64\x2d\x6c\x69\x6e\x75\x78\x2d\x61\x61\x72\x63\x68\x36\x34\x2e\x73\x6f\x2e\x31\x00\x00\x04"), -Section(".symtab", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x00\x06\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x88\x1c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x38\x00\x09\x00\x40\x00\x1d\x00\x1c\x00\x06\x00\x00\x00\x04\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x04\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xf4\x08\x00\x00\x00\x00\x00\x00\xf4\x08\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x01\x00\x00\x00\x06\x00\x00\x00\xc8\x0d\x00\x00\x00\x00\x00\x00\xc8\x0d\x01\x00\x00\x00\x00\x00\xc8\x0d\x01\x00\x00\x00\x00\x00\x68\x02\x00\x00\x00\x00\x00\x00\x70\x02\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x02\x00\x00\x00\x06\x00\x00\x00\xd8\x0d\x00\x00\x00\x00\x00\x00\xd8\x0d\x01\x00\x00\x00\x00\x00\xd8\x0d\x01\x00\x00\x00\x00\x00\xe0\x01\x00\x00\x00\x00\x00\x00\xe0\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x04\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x50\xe5\x74\x64\x04\x00\x00\x00\x9c\x07\x00\x00\x00\x00\x00\x00\x9c\x07\x00\x00\x00\x00\x00\x00\x9c\x07\x00\x00\x00\x00\x00\x00\x54\x00\x00\x00\x00\x00\x00\x00\x54\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x51\xe5\x74\x64\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x52\xe5\x74\x64\x04\x00\x00\x00\xc8\x0d\x00\x00\x00\x00\x00\x00\xc8\x0d\x01\x00\x00\x00\x00\x00\xc8\x0d\x01\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x2f\x6c\x69\x62\x2f\x6c\x64\x2d\x6c\x69\x6e\x75\x78\x2d\x61\x61\x72\x63\x68\x36\x34\x2e\x73\x6f\x2e\x31\x00\x00\x04\x00\x00\x00\x14\x00\x00\x00\x03\x00\x00\x00\x47\x4e\x55\x00\x17\xcd\x1c\xc5\xc0\x13\xf5\x86\x2e\xb5\x4d\xb1\xae\x64\xee\xaa\xbe\xf5\x64\x26\x04\x00\x00\x00\x10\x00\x00\x00\x01\x00\x00\x00\x47\x4e\x55\x00\x00\x00\x00\x00\x03\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x01\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x0b\x00\x80\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x17\x00\x20\x10\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x48\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x22\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x22\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x73\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5f\x5f\x63\x78\x61\x5f\x66\x69\x6e\x61\x6c\x69\x7a\x65\x00\x5f\x5f\x6c\x69\x62\x63\x5f\x73\x74\x61\x72\x74\x5f\x6d\x61\x69\x6e\x00\x61\x62\x6f\x72\x74\x00\x6c\x69\x62\x63\x2e\x73\x6f\x2e\x36\x00\x47\x4c\x49\x42\x43\x5f\x32\x2e\x31\x37\x00\x47\x4c\x49\x42\x43\x5f\x32\x2e\x33\x34\x00\x5f\x49\x54\x4d\x5f\x64\x65\x72\x65\x67\x69\x73\x74\x65\x72\x54\x4d\x43\x6c\x6f\x6e\x65\x54\x61\x62\x6c\x65\x00\x5f\x5f\x67\x6d\x6f\x6e\x5f\x73\x74\x61\x72\x74\x5f\x5f\x00\x5f\x49\x54\x4d\x5f\x72\x65\x67\x69\x73\x74\x65\x72\x54\x4d\x43\x6c\x6f\x6e\x65\x54\x61\x62\x6c\x65\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x01\x00\x03\x00\x01\x00\x03\x00\x01\x00\x01\x00\x02\x00\x28\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x97\x91\x96\x06\x00\x00\x03\x00\x32\x00\x00\x00\x10\x00\x00\x00\xb4\x91\x96\x06\x00\x00\x02\x00\x3d\x00\x00\x00\x00\x00\x00\x00\xc8\x0d\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x10\x07\x00\x00\x00\x00\x00\x00\xd0\x0d\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\xc0\x06\x00\x00\x00\x00\x00\x00\xd8\x0f\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x44\x07\x00\x00\x00\x00\x00\x00\x28\x10\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x28\x10\x01\x00\x00\x00\x00\x00\xc0\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xc8\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xd0\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe0\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x08\x10\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x10\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x18\x10\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1f\x20\x03\xd5\xfd\x7b\xbf\xa9\xfd\x03\x00\x91\x2a\x00\x00\x94\xfd\x7b\xc1\xa8\xc0\x03\x5f\xd6\x00\x00\x00\x00\x00\x00\x00\x00\xf0\x7b\xbf\xa9\x90\x00\x00\x90\x11\xfe\x47\xf9\x10\xe2\x3f\x91\x20\x02\x1f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x90\x00\x00\xb0\x11\x02\x40\xf9\x10\x02\x00\x91\x20\x02\x1f\xd6\x90\x00\x00\xb0\x11\x06\x40\xf9\x10\x22\x00\x91\x20\x02\x1f\xd6\x90\x00\x00\xb0\x11\x0a\x40\xf9\x10\x42\x00\x91\x20\x02\x1f\xd6\x90\x00\x00\xb0\x11\x0e\x40\xf9\x10\x62\x00\x91\x20\x02\x1f\xd6\x1f\x20\x03\xd5\x1d\x00\x80\xd2\x1e\x00\x80\xd2\xe5\x03\x00\xaa\xe1\x03\x40\xf9\xe2\x23\x00\x91\xe6\x03\x00\x91\x80\x00\x00\x90\x00\xec\x47\xf9\x03\x00\x80\xd2\x04\x00\x80\xd2\xe5\xff\xff\x97\xf0\xff\xff\x97\x80\x00\x00\x90\x00\xe8\x47\xf9\x40\x00\x00\xb4\xe8\xff\xff\x17\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x80\x00\x00\xb0\x00\xc0\x00\x91\x81\x00\x00\xb0\x21\xc0\x00\x91\x3f\x00\x00\xeb\xc0\x00\x00\x54\x81\x00\x00\x90\x21\xe0\x47\xf9\x61\x00\x00\xb4\xf0\x03\x01\xaa\x00\x02\x1f\xd6\xc0\x03\x5f\xd6\x80\x00\x00\xb0\x00\xc0\x00\x91\x81\x00\x00\xb0\x21\xc0\x00\x91\x21\x00\x00\xcb\x22\xfc\x7f\xd3\x41\x0c\x81\x8b\x21\xfc\x41\x93\xc1\x00\x00\xb4\x82\x00\x00\x90\x42\xf0\x47\xf9\x62\x00\x00\xb4\xf0\x03\x02\xaa\x00\x02\x1f\xd6\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\xfd\x7b\xbe\xa9\xfd\x03\x00\x91\xf3\x0b\x00\xf9\x93\x00\x00\xb0\x60\xc2\x40\x39\x40\x01\x00\x35\x80\x00\x00\x90\x00\xe4\x47\xf9\x80\x00\x00\xb4\x80\x00\x00\xb0\x00\x14\x40\xf9\xb9\xff\xff\x97\xd8\xff\xff\x97\x20\x00\x80\x52\x60\xc2\x00\x39\xf3\x0b\x40\xf9\xfd\x7b\xc2\xa8\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\xdc\xff\xff\x17\x88\x00\x00\xb0\x49\x00\x80\x52\x09\x35\x00\xb9\xc0\x03\x5f\xd6\x88\x00\x00\xb0\xc9\x00\x80\x52\x09\x35\x00\xb9\xc0\x03\x5f\xd6\x88\x00\x00\xb0\xe9\x00\x80\x52\x09\x35\x00\xb9\xc0\x03\x5f\xd6\xfd\x7b\xbf\xa9\xfd\x03\x00\x91\x08\x00\x00\x90\x08\x51\x1c\x91\x09\x00\x00\x90\x29\x91\x1c\x91\x1f\x04\x00\x71\x0a\x00\x00\x90\x4a\xd1\x1c\x91\x28\x01\x88\x9a\x1f\x08\x00\x71\x48\x01\x88\x9a\x00\x01\x3f\xd6\xe0\x03\x1f\x2a\xfd\x7b\xc1\xa8\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\xfd\x7b\xbf\xa9\xfd\x03\x00\x91\xfd\x7b\xc1\xa8\xc0\x03\x5f\xd6\x01\x00\x02\x00\x01\x1b\x03\x3b\x50\x00\x00\x00\x09\x00\x00\x00\x64\xfe\xff\xff\x68\x00\x00\x00\xb4\xfe\xff\xff\x7c\x00\x00\x00\xe4\xfe\xff\xff\x90\x00\x00\x00\x24\xff\xff\xff\xa4\x00\x00\x00\x74\xff\xff\xff\xc8\x00\x00\x00\x78\xff\xff\xff\xf0\x00\x00\x00\x88\xff\xff\xff\x04\x01\x00\x00\x98\xff\xff\xff\x18\x01\x00\x00\xa8\xff\xff\xff\x2c\x01\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x01\x7a\x52\x00\x04\x78\x1e\x01\x1b\x0c\x1f\x00\x10\x00\x00\x00\x18\x00\x00\x00\xf4\xfd\xff\xff\x34\x00\x00\x00\x00\x41\x07\x1e\x10\x00\x00\x00\x2c\x00\x00\x00\x30\xfe\xff\xff\x30\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x40\x00\x00\x00\x4c\xfe\xff\xff\x3c\x00\x00\x00\x00\x00\x00\x00\x20\x00\x00\x00\x54\x00\x00\x00\x78\xfe\xff\xff\x48\x00\x00\x00\x00\x41\x0e\x20\x9d\x04\x9e\x03\x42\x93\x02\x4e\xde\xdd\xd3\x0e\x00\x00\x00\x00\x10\x00\x00\x00\x78\x00\x00\x00\xa4\xfe\xff\xff\x04\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x01\x7a\x52\x00\x01\x7c\x1e\x01\x1b\x0c\x1f\x00\x10\x00\x00\x00\x18\x00\x00\x00\x80\xfe\xff\xff\x10\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x2c\x00\x00\x00\x7c\xfe\xff\xff\x10\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00"), -Section(".comment", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x00\x06\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x88\x1c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x38\x00\x09\x00\x40\x00\x1d\x00\x1c\x00\x06\x00\x00\x00\x04\x00\x00"), -Section(".interp", 0x238, "\x2f\x6c\x69\x62\x2f\x6c\x64\x2d\x6c\x69\x6e\x75\x78\x2d\x61\x61\x72\x63\x68\x36\x34\x2e\x73\x6f\x2e\x31\x00"), -Section(".note.gnu.build-id", 0x254, "\x04\x00\x00\x00\x14\x00\x00\x00\x03\x00\x00\x00\x47\x4e\x55\x00\x17\xcd\x1c\xc5\xc0\x13\xf5\x86\x2e\xb5\x4d\xb1\xae\x64\xee\xaa\xbe\xf5\x64\x26"), -Section(".note.ABI-tag", 0x278, "\x04\x00\x00\x00\x10\x00\x00\x00\x01\x00\x00\x00\x47\x4e\x55\x00\x00\x00\x00\x00\x03\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00"), -Section(".gnu.hash", 0x298, "\x01\x00\x00\x00\x01\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".dynsym", 0x2B8, "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x0b\x00\x80\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x17\x00\x20\x10\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x48\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x22\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x22\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x73\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".dynstr", 0x390, "\x00\x5f\x5f\x63\x78\x61\x5f\x66\x69\x6e\x61\x6c\x69\x7a\x65\x00\x5f\x5f\x6c\x69\x62\x63\x5f\x73\x74\x61\x72\x74\x5f\x6d\x61\x69\x6e\x00\x61\x62\x6f\x72\x74\x00\x6c\x69\x62\x63\x2e\x73\x6f\x2e\x36\x00\x47\x4c\x49\x42\x43\x5f\x32\x2e\x31\x37\x00\x47\x4c\x49\x42\x43\x5f\x32\x2e\x33\x34\x00\x5f\x49\x54\x4d\x5f\x64\x65\x72\x65\x67\x69\x73\x74\x65\x72\x54\x4d\x43\x6c\x6f\x6e\x65\x54\x61\x62\x6c\x65\x00\x5f\x5f\x67\x6d\x6f\x6e\x5f\x73\x74\x61\x72\x74\x5f\x5f\x00\x5f\x49\x54\x4d\x5f\x72\x65\x67\x69\x73\x74\x65\x72\x54\x4d\x43\x6c\x6f\x6e\x65\x54\x61\x62\x6c\x65\x00"), -Section(".gnu.version", 0x41E, "\x00\x00\x00\x00\x00\x00\x02\x00\x01\x00\x03\x00\x01\x00\x03\x00\x01\x00"), -Section(".gnu.version_r", 0x430, "\x01\x00\x02\x00\x28\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x97\x91\x96\x06\x00\x00\x03\x00\x32\x00\x00\x00\x10\x00\x00\x00\xb4\x91\x96\x06\x00\x00\x02\x00\x3d\x00\x00\x00\x00\x00\x00\x00"), -Section(".rela.dyn", 0x460, "\xc8\x0d\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x10\x07\x00\x00\x00\x00\x00\x00\xd0\x0d\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\xc0\x06\x00\x00\x00\x00\x00\x00\xd8\x0f\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x44\x07\x00\x00\x00\x00\x00\x00\x28\x10\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x28\x10\x01\x00\x00\x00\x00\x00\xc0\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xc8\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xd0\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe0\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".rela.plt", 0x520, "\x00\x10\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x08\x10\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x10\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x18\x10\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".init", 0x580, "\x1f\x20\x03\xd5\xfd\x7b\xbf\xa9\xfd\x03\x00\x91\x2a\x00\x00\x94\xfd\x7b\xc1\xa8\xc0\x03\x5f\xd6"), -Section(".plt", 0x5A0, "\xf0\x7b\xbf\xa9\x90\x00\x00\x90\x11\xfe\x47\xf9\x10\xe2\x3f\x91\x20\x02\x1f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x90\x00\x00\xb0\x11\x02\x40\xf9\x10\x02\x00\x91\x20\x02\x1f\xd6\x90\x00\x00\xb0\x11\x06\x40\xf9\x10\x22\x00\x91\x20\x02\x1f\xd6\x90\x00\x00\xb0\x11\x0a\x40\xf9\x10\x42\x00\x91\x20\x02\x1f\xd6\x90\x00\x00\xb0\x11\x0e\x40\xf9\x10\x62\x00\x91\x20\x02\x1f\xd6"), -Section(".text", 0x600, "\x1f\x20\x03\xd5\x1d\x00\x80\xd2\x1e\x00\x80\xd2\xe5\x03\x00\xaa\xe1\x03\x40\xf9\xe2\x23\x00\x91\xe6\x03\x00\x91\x80\x00\x00\x90\x00\xec\x47\xf9\x03\x00\x80\xd2\x04\x00\x80\xd2\xe5\xff\xff\x97\xf0\xff\xff\x97\x80\x00\x00\x90\x00\xe8\x47\xf9\x40\x00\x00\xb4\xe8\xff\xff\x17\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x80\x00\x00\xb0\x00\xc0\x00\x91\x81\x00\x00\xb0\x21\xc0\x00\x91\x3f\x00\x00\xeb\xc0\x00\x00\x54\x81\x00\x00\x90\x21\xe0\x47\xf9\x61\x00\x00\xb4\xf0\x03\x01\xaa\x00\x02\x1f\xd6\xc0\x03\x5f\xd6\x80\x00\x00\xb0\x00\xc0\x00\x91\x81\x00\x00\xb0\x21\xc0\x00\x91\x21\x00\x00\xcb\x22\xfc\x7f\xd3\x41\x0c\x81\x8b\x21\xfc\x41\x93\xc1\x00\x00\xb4\x82\x00\x00\x90\x42\xf0\x47\xf9\x62\x00\x00\xb4\xf0\x03\x02\xaa\x00\x02\x1f\xd6\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\xfd\x7b\xbe\xa9\xfd\x03\x00\x91\xf3\x0b\x00\xf9\x93\x00\x00\xb0\x60\xc2\x40\x39\x40\x01\x00\x35\x80\x00\x00\x90\x00\xe4\x47\xf9\x80\x00\x00\xb4\x80\x00\x00\xb0\x00\x14\x40\xf9\xb9\xff\xff\x97\xd8\xff\xff\x97\x20\x00\x80\x52\x60\xc2\x00\x39\xf3\x0b\x40\xf9\xfd\x7b\xc2\xa8\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\xdc\xff\xff\x17\x88\x00\x00\xb0\x49\x00\x80\x52\x09\x35\x00\xb9\xc0\x03\x5f\xd6\x88\x00\x00\xb0\xc9\x00\x80\x52\x09\x35\x00\xb9\xc0\x03\x5f\xd6\x88\x00\x00\xb0\xe9\x00\x80\x52\x09\x35\x00\xb9\xc0\x03\x5f\xd6\xfd\x7b\xbf\xa9\xfd\x03\x00\x91\x08\x00\x00\x90\x08\x51\x1c\x91\x09\x00\x00\x90\x29\x91\x1c\x91\x1f\x04\x00\x71\x0a\x00\x00\x90\x4a\xd1\x1c\x91\x28\x01\x88\x9a\x1f\x08\x00\x71\x48\x01\x88\x9a\x00\x01\x3f\xd6\xe0\x03\x1f\x2a\xfd\x7b\xc1\xa8\xc0\x03\x5f\xd6"), -Section(".fini", 0x784, "\x1f\x20\x03\xd5\xfd\x7b\xbf\xa9\xfd\x03\x00\x91\xfd\x7b\xc1\xa8\xc0\x03\x5f\xd6"), -Section(".rodata", 0x798, "\x01\x00\x02\x00"), -Section(".eh_frame_hdr", 0x79C, "\x01\x1b\x03\x3b\x50\x00\x00\x00\x09\x00\x00\x00\x64\xfe\xff\xff\x68\x00\x00\x00\xb4\xfe\xff\xff\x7c\x00\x00\x00\xe4\xfe\xff\xff\x90\x00\x00\x00\x24\xff\xff\xff\xa4\x00\x00\x00\x74\xff\xff\xff\xc8\x00\x00\x00\x78\xff\xff\xff\xf0\x00\x00\x00\x88\xff\xff\xff\x04\x01\x00\x00\x98\xff\xff\xff\x18\x01\x00\x00\xa8\xff\xff\xff\x2c\x01\x00\x00"), -Section(".eh_frame", 0x7F0, "\x10\x00\x00\x00\x00\x00\x00\x00\x01\x7a\x52\x00\x04\x78\x1e\x01\x1b\x0c\x1f\x00\x10\x00\x00\x00\x18\x00\x00\x00\xf4\xfd\xff\xff\x34\x00\x00\x00\x00\x41\x07\x1e\x10\x00\x00\x00\x2c\x00\x00\x00\x30\xfe\xff\xff\x30\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x40\x00\x00\x00\x4c\xfe\xff\xff\x3c\x00\x00\x00\x00\x00\x00\x00\x20\x00\x00\x00\x54\x00\x00\x00\x78\xfe\xff\xff\x48\x00\x00\x00\x00\x41\x0e\x20\x9d\x04\x9e\x03\x42\x93\x02\x4e\xde\xdd\xd3\x0e\x00\x00\x00\x00\x10\x00\x00\x00\x78\x00\x00\x00\xa4\xfe\xff\xff\x04\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x01\x7a\x52\x00\x01\x7c\x1e\x01\x1b\x0c\x1f\x00\x10\x00\x00\x00\x18\x00\x00\x00\x80\xfe\xff\xff\x10\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x2c\x00\x00\x00\x7c\xfe\xff\xff\x10\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x40\x00\x00\x00\x78\xfe\xff\xff\x10\x00\x00\x00\x00\x00\x00\x00\x24\x00\x00\x00\x54\x00\x00\x00\x74\xfe\xff\xff\x40\x00\x00\x00\x00\x44\x0e\x10\x44\x0c\x1d\x10\x9e\x02\x9d\x04\x70\x0c\x1f\x10\x44\x0e\x00\xde\xdd\x00\x00\x00\x00\x00\x00\x00"), -Section(".fini_array", 0x10DD0, "\xc0\x06\x00\x00\x00\x00\x00\x00"), -Section(".dynamic", 0x10DD8, "\x01\x00\x00\x00\x00\x00\x00\x00\x28\x00\x00\x00\x00\x00\x00\x00\x0c\x00\x00\x00\x00\x00\x00\x00\x80\x05\x00\x00\x00\x00\x00\x00\x0d\x00\x00\x00\x00\x00\x00\x00\x84\x07\x00\x00\x00\x00\x00\x00\x19\x00\x00\x00\x00\x00\x00\x00\xc8\x0d\x01\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x1a\x00\x00\x00\x00\x00\x00\x00\xd0\x0d\x01\x00\x00\x00\x00\x00\x1c\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\xf5\xfe\xff\x6f\x00\x00\x00\x00\x98\x02\x00\x00\x00\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x90\x03\x00\x00\x00\x00\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\xb8\x02\x00\x00\x00\x00\x00\x00\x0a\x00\x00\x00\x00\x00\x00\x00\x8d\x00\x00\x00\x00\x00\x00\x00\x0b\x00\x00\x00\x00\x00\x00\x00\x18\x00\x00\x00\x00\x00\x00\x00\x15\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\xe8\x0f\x01\x00\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x60\x00\x00\x00\x00\x00\x00\x00\x14\x00\x00\x00\x00\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x17\x00\x00\x00\x00\x00\x00\x00\x20\x05\x00\x00\x00\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x60\x04\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\xc0\x00\x00\x00\x00\x00\x00\x00\x09\x00\x00\x00\x00\x00\x00\x00\x18\x00\x00\x00\x00\x00\x00\x00\xfb\xff\xff\x6f\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\xfe\xff\xff\x6f\x00\x00\x00\x00\x30\x04\x00\x00\x00\x00\x00\x00\xff\xff\xff\x6f\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\xf0\xff\xff\x6f\x00\x00\x00\x00\x1e\x04\x00\x00\x00\x00\x00\x00\xf9\xff\xff\x6f\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".got", 0x10FB8, "\xd8\x0d\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x44\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".got.plt", 0x10FE8, "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xa0\x05\x00\x00\x00\x00\x00\x00\xa0\x05\x00\x00\x00\x00\x00\x00\xa0\x05\x00\x00\x00\x00\x00\x00\xa0\x05\x00\x00\x00\x00\x00\x00"), -Section(".data", 0x11020, "\x00\x00\x00\x00\x00\x00\x00\x00\x28\x10\x01\x00\x00\x00\x00\x00"), -Section(".init_array", 0x10DC8, "\x10\x07\x00\x00\x00\x00\x00\x00")]), -Memmap([Annotation(Region(0x0,0x8F3), Attr("segment","02 0 2292")), -Annotation(Region(0x600,0x633), Attr("symbol","\"_start\"")), -Annotation(Region(0x0,0x102), Attr("section","\".shstrtab\"")), -Annotation(Region(0x0,0x254), Attr("section","\".strtab\"")), -Annotation(Region(0x0,0x8B7), Attr("section","\".symtab\"")), -Annotation(Region(0x0,0x46), Attr("section","\".comment\"")), -Annotation(Region(0x238,0x252), Attr("section","\".interp\"")), -Annotation(Region(0x254,0x277), Attr("section","\".note.gnu.build-id\"")), -Annotation(Region(0x278,0x297), Attr("section","\".note.ABI-tag\"")), -Annotation(Region(0x298,0x2B3), Attr("section","\".gnu.hash\"")), -Annotation(Region(0x2B8,0x38F), Attr("section","\".dynsym\"")), -Annotation(Region(0x390,0x41C), Attr("section","\".dynstr\"")), -Annotation(Region(0x41E,0x42F), Attr("section","\".gnu.version\"")), -Annotation(Region(0x430,0x45F), Attr("section","\".gnu.version_r\"")), -Annotation(Region(0x460,0x51F), Attr("section","\".rela.dyn\"")), -Annotation(Region(0x520,0x57F), Attr("section","\".rela.plt\"")), -Annotation(Region(0x580,0x597), Attr("section","\".init\"")), -Annotation(Region(0x5A0,0x5FF), Attr("section","\".plt\"")), -Annotation(Region(0x580,0x597), Attr("code-region","()")), -Annotation(Region(0x5A0,0x5FF), Attr("code-region","()")), -Annotation(Region(0x600,0x633), Attr("symbol-info","_start 0x600 52")), -Annotation(Region(0x634,0x647), Attr("symbol","\"call_weak_fn\"")), -Annotation(Region(0x634,0x647), Attr("symbol-info","call_weak_fn 0x634 20")), -Annotation(Region(0x714,0x723), Attr("symbol","\"set_two\"")), -Annotation(Region(0x714,0x723), Attr("symbol-info","set_two 0x714 16")), -Annotation(Region(0x724,0x733), Attr("symbol","\"set_six\"")), -Annotation(Region(0x724,0x733), Attr("symbol-info","set_six 0x724 16")), -Annotation(Region(0x734,0x743), Attr("symbol","\"set_seven\"")), -Annotation(Region(0x600,0x783), Attr("section","\".text\"")), -Annotation(Region(0x600,0x783), Attr("code-region","()")), -Annotation(Region(0x734,0x743), Attr("symbol-info","set_seven 0x734 16")), -Annotation(Region(0x744,0x783), Attr("symbol","\"main\"")), -Annotation(Region(0x744,0x783), Attr("symbol-info","main 0x744 64")), -Annotation(Region(0x784,0x797), Attr("section","\".fini\"")), -Annotation(Region(0x784,0x797), Attr("code-region","()")), -Annotation(Region(0x798,0x79B), Attr("section","\".rodata\"")), -Annotation(Region(0x79C,0x7EF), Attr("section","\".eh_frame_hdr\"")), -Annotation(Region(0x7F0,0x8F3), Attr("section","\".eh_frame\"")), -Annotation(Region(0x10DC8,0x1102F), Attr("segment","03 0x10DC8 624")), -Annotation(Region(0x10DD0,0x10DD7), Attr("section","\".fini_array\"")), -Annotation(Region(0x10DD8,0x10FB7), Attr("section","\".dynamic\"")), -Annotation(Region(0x10FB8,0x10FE7), Attr("section","\".got\"")), -Annotation(Region(0x10FE8,0x1101F), Attr("section","\".got.plt\"")), -Annotation(Region(0x11020,0x1102F), Attr("section","\".data\"")), -Annotation(Region(0x10DC8,0x10DCF), Attr("section","\".init_array\""))]), -Program(Tid(1_779, "%000006f3"), Attrs([]), - Subs([Sub(Tid(1_723, "@__cxa_finalize"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x5D0"), -Attr("stub","()")]), "__cxa_finalize", Args([Arg(Tid(1_780, "%000006f4"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("__cxa_finalize_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(1_095, "@__cxa_finalize"), - Attrs([Attr("address","0x5D0")]), Phis([]), -Defs([Def(Tid(1_343, "%0000053f"), Attrs([Attr("address","0x5D0"), -Attr("insn","adrp x16, #69632")]), Var("R16",Imm(64)), Int(69632,64)), -Def(Tid(1_350, "%00000546"), Attrs([Attr("address","0x5D4"), -Attr("insn","ldr x17, [x16, #0x8]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(1_356, "%0000054c"), Attrs([Attr("address","0x5D8"), -Attr("insn","add x16, x16, #0x8")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(8,64)))]), Jmps([Call(Tid(1_361, "%00000551"), - Attrs([Attr("address","0x5DC"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), -Sub(Tid(1_724, "@__do_global_dtors_aux"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x6C0")]), - "__do_global_dtors_aux", Args([Arg(Tid(1_781, "%000006f5"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("__do_global_dtors_aux_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(702, "@__do_global_dtors_aux"), - Attrs([Attr("address","0x6C0")]), Phis([]), Defs([Def(Tid(706, "%000002c2"), - Attrs([Attr("address","0x6C0"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("#3",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(18446744073709551584,64))), -Def(Tid(712, "%000002c8"), Attrs([Attr("address","0x6C0"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("#3",Imm(64)),Var("R29",Imm(64)),LittleEndian(),64)), -Def(Tid(718, "%000002ce"), Attrs([Attr("address","0x6C0"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("#3",Imm(64)),Int(8,64)),Var("R30",Imm(64)),LittleEndian(),64)), -Def(Tid(722, "%000002d2"), Attrs([Attr("address","0x6C0"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("R31",Imm(64)), -Var("#3",Imm(64))), Def(Tid(728, "%000002d8"), - Attrs([Attr("address","0x6C4"), Attr("insn","mov x29, sp")]), - Var("R29",Imm(64)), Var("R31",Imm(64))), Def(Tid(736, "%000002e0"), - Attrs([Attr("address","0x6C8"), Attr("insn","str x19, [sp, #0x10]")]), - Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(16,64)),Var("R19",Imm(64)),LittleEndian(),64)), -Def(Tid(741, "%000002e5"), Attrs([Attr("address","0x6CC"), -Attr("insn","adrp x19, #69632")]), Var("R19",Imm(64)), Int(69632,64)), -Def(Tid(748, "%000002ec"), Attrs([Attr("address","0x6D0"), -Attr("insn","ldrb w0, [x19, #0x30]")]), Var("R0",Imm(64)), -UNSIGNED(64,Load(Var("mem",Mem(64,8)),PLUS(Var("R19",Imm(64)),Int(48,64)),LittleEndian(),8)))]), -Jmps([Goto(Tid(755, "%000002f3"), Attrs([Attr("address","0x6D4"), -Attr("insn","cbnz w0, #0x28")]), - NEQ(Extract(31,0,Var("R0",Imm(64))),Int(0,32)), -Direct(Tid(753, "%000002f1"))), Goto(Tid(1_769, "%000006e9"), Attrs([]), - Int(1,1), Direct(Tid(1_040, "%00000410")))])), Blk(Tid(1_040, "%00000410"), - Attrs([Attr("address","0x6D8")]), Phis([]), -Defs([Def(Tid(1_043, "%00000413"), Attrs([Attr("address","0x6D8"), -Attr("insn","adrp x0, #65536")]), Var("R0",Imm(64)), Int(65536,64)), -Def(Tid(1_050, "%0000041a"), Attrs([Attr("address","0x6DC"), -Attr("insn","ldr x0, [x0, #0xfc8]")]), Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(4040,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(1_056, "%00000420"), Attrs([Attr("address","0x6E0"), -Attr("insn","cbz x0, #0x10")]), EQ(Var("R0",Imm(64)),Int(0,64)), -Direct(Tid(1_054, "%0000041e"))), Goto(Tid(1_770, "%000006ea"), Attrs([]), - Int(1,1), Direct(Tid(1_079, "%00000437")))])), Blk(Tid(1_079, "%00000437"), - Attrs([Attr("address","0x6E4")]), Phis([]), -Defs([Def(Tid(1_082, "%0000043a"), Attrs([Attr("address","0x6E4"), -Attr("insn","adrp x0, #69632")]), Var("R0",Imm(64)), Int(69632,64)), -Def(Tid(1_089, "%00000441"), Attrs([Attr("address","0x6E8"), -Attr("insn","ldr x0, [x0, #0x28]")]), Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(40,64)),LittleEndian(),64)), -Def(Tid(1_094, "%00000446"), Attrs([Attr("address","0x6EC"), -Attr("insn","bl #-0x11c")]), Var("R30",Imm(64)), Int(1776,64))]), -Jmps([Call(Tid(1_097, "%00000449"), Attrs([Attr("address","0x6EC"), -Attr("insn","bl #-0x11c")]), Int(1,1), -(Direct(Tid(1_723, "@__cxa_finalize")),Direct(Tid(1_054, "%0000041e"))))])), -Blk(Tid(1_054, "%0000041e"), Attrs([Attr("address","0x6F0")]), Phis([]), -Defs([Def(Tid(1_062, "%00000426"), Attrs([Attr("address","0x6F0"), -Attr("insn","bl #-0xa0")]), Var("R30",Imm(64)), Int(1780,64))]), -Jmps([Call(Tid(1_064, "%00000428"), Attrs([Attr("address","0x6F0"), -Attr("insn","bl #-0xa0")]), Int(1,1), -(Direct(Tid(1_737, "@deregister_tm_clones")),Direct(Tid(1_066, "%0000042a"))))])), -Blk(Tid(1_066, "%0000042a"), Attrs([Attr("address","0x6F4")]), Phis([]), -Defs([Def(Tid(1_069, "%0000042d"), Attrs([Attr("address","0x6F4"), -Attr("insn","mov w0, #0x1")]), Var("R0",Imm(64)), Int(1,64)), -Def(Tid(1_077, "%00000435"), Attrs([Attr("address","0x6F8"), -Attr("insn","strb w0, [x19, #0x30]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R19",Imm(64)),Int(48,64)),Extract(7,0,Var("R0",Imm(64))),LittleEndian(),8))]), -Jmps([Goto(Tid(1_771, "%000006eb"), Attrs([]), Int(1,1), -Direct(Tid(753, "%000002f1")))])), Blk(Tid(753, "%000002f1"), - Attrs([Attr("address","0x6FC")]), Phis([]), Defs([Def(Tid(763, "%000002fb"), - Attrs([Attr("address","0x6FC"), Attr("insn","ldr x19, [sp, #0x10]")]), - Var("R19",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(16,64)),LittleEndian(),64)), -Def(Tid(770, "%00000302"), Attrs([Attr("address","0x700"), -Attr("insn","ldp x29, x30, [sp], #0x20")]), Var("R29",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(775, "%00000307"), Attrs([Attr("address","0x700"), -Attr("insn","ldp x29, x30, [sp], #0x20")]), Var("R30",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(779, "%0000030b"), Attrs([Attr("address","0x700"), -Attr("insn","ldp x29, x30, [sp], #0x20")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(32,64)))]), Jmps([Call(Tid(784, "%00000310"), - Attrs([Attr("address","0x704"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), Sub(Tid(1_728, "@__libc_start_main"), - Attrs([Attr("c.proto","signed (*)(signed (*)(signed , char** , char** );* main, signed , char** , \nvoid* auxv)"), -Attr("address","0x5C0"), Attr("stub","()")]), "__libc_start_main", - Args([Arg(Tid(1_782, "%000006f6"), - Attrs([Attr("c.layout","**[ : 64]"), -Attr("c.data","Top:u64 ptr ptr"), -Attr("c.type","signed (*)(signed , char** , char** );*")]), - Var("__libc_start_main_main",Imm(64)), Var("R0",Imm(64)), In()), -Arg(Tid(1_783, "%000006f7"), Attrs([Attr("c.layout","[signed : 32]"), -Attr("c.data","Top:u32"), Attr("c.type","signed")]), - Var("__libc_start_main_arg2",Imm(32)), LOW(32,Var("R1",Imm(64))), In()), -Arg(Tid(1_784, "%000006f8"), Attrs([Attr("c.layout","**[char : 8]"), -Attr("c.data","Top:u8 ptr ptr"), Attr("c.type","char**")]), - Var("__libc_start_main_arg3",Imm(64)), Var("R2",Imm(64)), Both()), -Arg(Tid(1_785, "%000006f9"), Attrs([Attr("c.layout","*[ : 8]"), -Attr("c.data","{} ptr"), Attr("c.type","void*")]), - Var("__libc_start_main_auxv",Imm(64)), Var("R3",Imm(64)), Both()), -Arg(Tid(1_786, "%000006fa"), Attrs([Attr("c.layout","[signed : 32]"), -Attr("c.data","Top:u32"), Attr("c.type","signed")]), - Var("__libc_start_main_result",Imm(32)), LOW(32,Var("R0",Imm(64))), -Out())]), Blks([Blk(Tid(535, "@__libc_start_main"), - Attrs([Attr("address","0x5C0")]), Phis([]), -Defs([Def(Tid(1_321, "%00000529"), Attrs([Attr("address","0x5C0"), -Attr("insn","adrp x16, #69632")]), Var("R16",Imm(64)), Int(69632,64)), -Def(Tid(1_328, "%00000530"), Attrs([Attr("address","0x5C4"), -Attr("insn","ldr x17, [x16]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R16",Imm(64)),LittleEndian(),64)), -Def(Tid(1_334, "%00000536"), Attrs([Attr("address","0x5C8"), -Attr("insn","add x16, x16, #0x0")]), Var("R16",Imm(64)), -Var("R16",Imm(64)))]), Jmps([Call(Tid(1_339, "%0000053b"), - Attrs([Attr("address","0x5CC"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), Sub(Tid(1_729, "@_fini"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x784")]), - "_fini", Args([Arg(Tid(1_787, "%000006fb"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("_fini_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(31, "@_fini"), - Attrs([Attr("address","0x784")]), Phis([]), Defs([Def(Tid(37, "%00000025"), - Attrs([Attr("address","0x788"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("#0",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(18446744073709551600,64))), -Def(Tid(43, "%0000002b"), Attrs([Attr("address","0x788"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("#0",Imm(64)),Var("R29",Imm(64)),LittleEndian(),64)), -Def(Tid(49, "%00000031"), Attrs([Attr("address","0x788"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("#0",Imm(64)),Int(8,64)),Var("R30",Imm(64)),LittleEndian(),64)), -Def(Tid(53, "%00000035"), Attrs([Attr("address","0x788"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("R31",Imm(64)), -Var("#0",Imm(64))), Def(Tid(59, "%0000003b"), Attrs([Attr("address","0x78C"), -Attr("insn","mov x29, sp")]), Var("R29",Imm(64)), Var("R31",Imm(64))), -Def(Tid(66, "%00000042"), Attrs([Attr("address","0x790"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R29",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(71, "%00000047"), Attrs([Attr("address","0x790"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R30",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(75, "%0000004b"), Attrs([Attr("address","0x790"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(16,64)))]), Jmps([Call(Tid(80, "%00000050"), - Attrs([Attr("address","0x794"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), Sub(Tid(1_730, "@_init"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x580")]), - "_init", Args([Arg(Tid(1_788, "%000006fc"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("_init_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(1_537, "@_init"), - Attrs([Attr("address","0x580")]), Phis([]), -Defs([Def(Tid(1_543, "%00000607"), Attrs([Attr("address","0x584"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("#8",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(18446744073709551600,64))), -Def(Tid(1_549, "%0000060d"), Attrs([Attr("address","0x584"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("#8",Imm(64)),Var("R29",Imm(64)),LittleEndian(),64)), -Def(Tid(1_555, "%00000613"), Attrs([Attr("address","0x584"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("#8",Imm(64)),Int(8,64)),Var("R30",Imm(64)),LittleEndian(),64)), -Def(Tid(1_559, "%00000617"), Attrs([Attr("address","0x584"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("R31",Imm(64)), -Var("#8",Imm(64))), Def(Tid(1_565, "%0000061d"), - Attrs([Attr("address","0x588"), Attr("insn","mov x29, sp")]), - Var("R29",Imm(64)), Var("R31",Imm(64))), Def(Tid(1_570, "%00000622"), - Attrs([Attr("address","0x58C"), Attr("insn","bl #0xa8")]), - Var("R30",Imm(64)), Int(1424,64))]), Jmps([Call(Tid(1_572, "%00000624"), - Attrs([Attr("address","0x58C"), Attr("insn","bl #0xa8")]), Int(1,1), -(Direct(Tid(1_735, "@call_weak_fn")),Direct(Tid(1_574, "%00000626"))))])), -Blk(Tid(1_574, "%00000626"), Attrs([Attr("address","0x590")]), Phis([]), -Defs([Def(Tid(1_579, "%0000062b"), Attrs([Attr("address","0x590"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R29",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(1_584, "%00000630"), Attrs([Attr("address","0x590"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R30",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(1_588, "%00000634"), Attrs([Attr("address","0x590"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(16,64)))]), Jmps([Call(Tid(1_593, "%00000639"), - Attrs([Attr("address","0x594"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), Sub(Tid(1_731, "@_start"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x600"), -Attr("stub","()"), Attr("entry-point","()")]), "_start", - Args([Arg(Tid(1_789, "%000006fd"), Attrs([Attr("c.layout","[signed : 32]"), -Attr("c.data","Top:u32"), Attr("c.type","signed")]), - Var("_start_result",Imm(32)), LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(472, "@_start"), Attrs([Attr("address","0x600")]), Phis([]), -Defs([Def(Tid(477, "%000001dd"), Attrs([Attr("address","0x604"), -Attr("insn","mov x29, #0x0")]), Var("R29",Imm(64)), Int(0,64)), -Def(Tid(482, "%000001e2"), Attrs([Attr("address","0x608"), -Attr("insn","mov x30, #0x0")]), Var("R30",Imm(64)), Int(0,64)), -Def(Tid(488, "%000001e8"), Attrs([Attr("address","0x60C"), -Attr("insn","mov x5, x0")]), Var("R5",Imm(64)), Var("R0",Imm(64))), -Def(Tid(495, "%000001ef"), Attrs([Attr("address","0x610"), -Attr("insn","ldr x1, [sp]")]), Var("R1",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(501, "%000001f5"), Attrs([Attr("address","0x614"), -Attr("insn","add x2, sp, #0x8")]), Var("R2",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(8,64))), Def(Tid(507, "%000001fb"), - Attrs([Attr("address","0x618"), Attr("insn","mov x6, sp")]), - Var("R6",Imm(64)), Var("R31",Imm(64))), Def(Tid(512, "%00000200"), - Attrs([Attr("address","0x61C"), Attr("insn","adrp x0, #65536")]), - Var("R0",Imm(64)), Int(65536,64)), Def(Tid(519, "%00000207"), - Attrs([Attr("address","0x620"), Attr("insn","ldr x0, [x0, #0xfd8]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(4056,64)),LittleEndian(),64)), -Def(Tid(524, "%0000020c"), Attrs([Attr("address","0x624"), -Attr("insn","mov x3, #0x0")]), Var("R3",Imm(64)), Int(0,64)), -Def(Tid(529, "%00000211"), Attrs([Attr("address","0x628"), -Attr("insn","mov x4, #0x0")]), Var("R4",Imm(64)), Int(0,64)), -Def(Tid(534, "%00000216"), Attrs([Attr("address","0x62C"), -Attr("insn","bl #-0x6c")]), Var("R30",Imm(64)), Int(1584,64))]), -Jmps([Call(Tid(537, "%00000219"), Attrs([Attr("address","0x62C"), -Attr("insn","bl #-0x6c")]), Int(1,1), -(Direct(Tid(1_728, "@__libc_start_main")),Direct(Tid(539, "%0000021b"))))])), -Blk(Tid(539, "%0000021b"), Attrs([Attr("address","0x630")]), Phis([]), -Defs([Def(Tid(542, "%0000021e"), Attrs([Attr("address","0x630"), -Attr("insn","bl #-0x40")]), Var("R30",Imm(64)), Int(1588,64))]), -Jmps([Call(Tid(545, "%00000221"), Attrs([Attr("address","0x630"), -Attr("insn","bl #-0x40")]), Int(1,1), -(Direct(Tid(1_734, "@abort")),Direct(Tid(1_772, "%000006ec"))))])), -Blk(Tid(1_772, "%000006ec"), Attrs([]), Phis([]), Defs([]), -Jmps([Call(Tid(1_773, "%000006ed"), Attrs([]), Int(1,1), -(Direct(Tid(1_735, "@call_weak_fn")),))]))])), Sub(Tid(1_734, "@abort"), - Attrs([Attr("noreturn","()"), Attr("c.proto","void (*)(void)"), -Attr("address","0x5F0"), Attr("stub","()")]), "abort", Args([]), -Blks([Blk(Tid(543, "@abort"), Attrs([Attr("address","0x5F0")]), Phis([]), -Defs([Def(Tid(1_387, "%0000056b"), Attrs([Attr("address","0x5F0"), -Attr("insn","adrp x16, #69632")]), Var("R16",Imm(64)), Int(69632,64)), -Def(Tid(1_394, "%00000572"), Attrs([Attr("address","0x5F4"), -Attr("insn","ldr x17, [x16, #0x18]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(24,64)),LittleEndian(),64)), -Def(Tid(1_400, "%00000578"), Attrs([Attr("address","0x5F8"), -Attr("insn","add x16, x16, #0x18")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(24,64)))]), Jmps([Call(Tid(1_405, "%0000057d"), - Attrs([Attr("address","0x5FC"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), Sub(Tid(1_735, "@call_weak_fn"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x634")]), - "call_weak_fn", Args([Arg(Tid(1_790, "%000006fe"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("call_weak_fn_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(547, "@call_weak_fn"), - Attrs([Attr("address","0x634")]), Phis([]), Defs([Def(Tid(550, "%00000226"), - Attrs([Attr("address","0x634"), Attr("insn","adrp x0, #65536")]), - Var("R0",Imm(64)), Int(65536,64)), Def(Tid(557, "%0000022d"), - Attrs([Attr("address","0x638"), Attr("insn","ldr x0, [x0, #0xfd0]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(4048,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(563, "%00000233"), Attrs([Attr("address","0x63C"), -Attr("insn","cbz x0, #0x8")]), EQ(Var("R0",Imm(64)),Int(0,64)), -Direct(Tid(561, "%00000231"))), Goto(Tid(1_774, "%000006ee"), Attrs([]), - Int(1,1), Direct(Tid(1_159, "%00000487")))])), Blk(Tid(561, "%00000231"), - Attrs([Attr("address","0x644")]), Phis([]), Defs([]), -Jmps([Call(Tid(569, "%00000239"), Attrs([Attr("address","0x644"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))])), -Blk(Tid(1_159, "%00000487"), Attrs([Attr("address","0x640")]), Phis([]), -Defs([]), Jmps([Goto(Tid(1_162, "%0000048a"), Attrs([Attr("address","0x640"), -Attr("insn","b #-0x60")]), Int(1,1), -Direct(Tid(1_160, "@__gmon_start__")))])), Blk(Tid(1_160, "@__gmon_start__"), - Attrs([Attr("address","0x5E0")]), Phis([]), -Defs([Def(Tid(1_365, "%00000555"), Attrs([Attr("address","0x5E0"), -Attr("insn","adrp x16, #69632")]), Var("R16",Imm(64)), Int(69632,64)), -Def(Tid(1_372, "%0000055c"), Attrs([Attr("address","0x5E4"), -Attr("insn","ldr x17, [x16, #0x10]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(16,64)),LittleEndian(),64)), -Def(Tid(1_378, "%00000562"), Attrs([Attr("address","0x5E8"), -Attr("insn","add x16, x16, #0x10")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(16,64)))]), Jmps([Call(Tid(1_383, "%00000567"), - Attrs([Attr("address","0x5EC"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), -Sub(Tid(1_737, "@deregister_tm_clones"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x650")]), - "deregister_tm_clones", Args([Arg(Tid(1_791, "%000006ff"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("deregister_tm_clones_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(575, "@deregister_tm_clones"), - Attrs([Attr("address","0x650")]), Phis([]), Defs([Def(Tid(578, "%00000242"), - Attrs([Attr("address","0x650"), Attr("insn","adrp x0, #69632")]), - Var("R0",Imm(64)), Int(69632,64)), Def(Tid(584, "%00000248"), - Attrs([Attr("address","0x654"), Attr("insn","add x0, x0, #0x30")]), - Var("R0",Imm(64)), PLUS(Var("R0",Imm(64)),Int(48,64))), -Def(Tid(589, "%0000024d"), Attrs([Attr("address","0x658"), -Attr("insn","adrp x1, #69632")]), Var("R1",Imm(64)), Int(69632,64)), -Def(Tid(595, "%00000253"), Attrs([Attr("address","0x65C"), -Attr("insn","add x1, x1, #0x30")]), Var("R1",Imm(64)), -PLUS(Var("R1",Imm(64)),Int(48,64))), Def(Tid(601, "%00000259"), - Attrs([Attr("address","0x660"), Attr("insn","cmp x1, x0")]), - Var("#1",Imm(64)), NOT(Var("R0",Imm(64)))), Def(Tid(606, "%0000025e"), - Attrs([Attr("address","0x660"), Attr("insn","cmp x1, x0")]), - Var("#2",Imm(64)), PLUS(Var("R1",Imm(64)),NOT(Var("R0",Imm(64))))), -Def(Tid(612, "%00000264"), Attrs([Attr("address","0x660"), -Attr("insn","cmp x1, x0")]), Var("VF",Imm(1)), -NEQ(SIGNED(65,PLUS(Var("#2",Imm(64)),Int(1,64))),PLUS(PLUS(SIGNED(65,Var("R1",Imm(64))),SIGNED(65,Var("#1",Imm(64)))),Int(1,65)))), -Def(Tid(618, "%0000026a"), Attrs([Attr("address","0x660"), -Attr("insn","cmp x1, x0")]), Var("CF",Imm(1)), -NEQ(UNSIGNED(65,PLUS(Var("#2",Imm(64)),Int(1,64))),PLUS(PLUS(UNSIGNED(65,Var("R1",Imm(64))),UNSIGNED(65,Var("#1",Imm(64)))),Int(1,65)))), -Def(Tid(622, "%0000026e"), Attrs([Attr("address","0x660"), -Attr("insn","cmp x1, x0")]), Var("ZF",Imm(1)), -EQ(PLUS(Var("#2",Imm(64)),Int(1,64)),Int(0,64))), Def(Tid(626, "%00000272"), - Attrs([Attr("address","0x660"), Attr("insn","cmp x1, x0")]), - Var("NF",Imm(1)), Extract(63,63,PLUS(Var("#2",Imm(64)),Int(1,64))))]), -Jmps([Goto(Tid(632, "%00000278"), Attrs([Attr("address","0x664"), -Attr("insn","b.eq #0x18")]), EQ(Var("ZF",Imm(1)),Int(1,1)), -Direct(Tid(630, "%00000276"))), Goto(Tid(1_775, "%000006ef"), Attrs([]), - Int(1,1), Direct(Tid(1_129, "%00000469")))])), Blk(Tid(1_129, "%00000469"), - Attrs([Attr("address","0x668")]), Phis([]), -Defs([Def(Tid(1_132, "%0000046c"), Attrs([Attr("address","0x668"), -Attr("insn","adrp x1, #65536")]), Var("R1",Imm(64)), Int(65536,64)), -Def(Tid(1_139, "%00000473"), Attrs([Attr("address","0x66C"), -Attr("insn","ldr x1, [x1, #0xfc0]")]), Var("R1",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R1",Imm(64)),Int(4032,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(1_144, "%00000478"), Attrs([Attr("address","0x670"), -Attr("insn","cbz x1, #0xc")]), EQ(Var("R1",Imm(64)),Int(0,64)), -Direct(Tid(630, "%00000276"))), Goto(Tid(1_776, "%000006f0"), Attrs([]), - Int(1,1), Direct(Tid(1_148, "%0000047c")))])), Blk(Tid(630, "%00000276"), - Attrs([Attr("address","0x67C")]), Phis([]), Defs([]), -Jmps([Call(Tid(638, "%0000027e"), Attrs([Attr("address","0x67C"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))])), -Blk(Tid(1_148, "%0000047c"), Attrs([Attr("address","0x674")]), Phis([]), -Defs([Def(Tid(1_152, "%00000480"), Attrs([Attr("address","0x674"), -Attr("insn","mov x16, x1")]), Var("R16",Imm(64)), Var("R1",Imm(64)))]), -Jmps([Call(Tid(1_157, "%00000485"), Attrs([Attr("address","0x678"), -Attr("insn","br x16")]), Int(1,1), (Indirect(Var("R16",Imm(64))),))]))])), -Sub(Tid(1_740, "@frame_dummy"), Attrs([Attr("c.proto","signed (*)(void)"), -Attr("address","0x710")]), "frame_dummy", Args([Arg(Tid(1_792, "%00000700"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("frame_dummy_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(790, "@frame_dummy"), - Attrs([Attr("address","0x710")]), Phis([]), Defs([]), -Jmps([Call(Tid(792, "%00000318"), Attrs([Attr("address","0x710"), -Attr("insn","b #-0x90")]), Int(1,1), -(Direct(Tid(1_742, "@register_tm_clones")),))]))])), Sub(Tid(1_741, "@main"), - Attrs([Attr("c.proto","signed (*)(signed argc, const char** argv)"), -Attr("address","0x744")]), "main", Args([Arg(Tid(1_793, "%00000701"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("main_argc",Imm(32)), -LOW(32,Var("R0",Imm(64))), In()), Arg(Tid(1_794, "%00000702"), - Attrs([Attr("c.layout","**[char : 8]"), Attr("c.data","Top:u8 ptr ptr"), -Attr("c.type"," const char**")]), Var("main_argv",Imm(64)), -Var("R1",Imm(64)), Both()), Arg(Tid(1_795, "%00000703"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("main_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(863, "@main"), - Attrs([Attr("address","0x744")]), Phis([]), Defs([Def(Tid(867, "%00000363"), - Attrs([Attr("address","0x744"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("#4",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(18446744073709551600,64))), -Def(Tid(873, "%00000369"), Attrs([Attr("address","0x744"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("#4",Imm(64)),Var("R29",Imm(64)),LittleEndian(),64)), -Def(Tid(879, "%0000036f"), Attrs([Attr("address","0x744"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("#4",Imm(64)),Int(8,64)),Var("R30",Imm(64)),LittleEndian(),64)), -Def(Tid(883, "%00000373"), Attrs([Attr("address","0x744"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("R31",Imm(64)), -Var("#4",Imm(64))), Def(Tid(889, "%00000379"), - Attrs([Attr("address","0x748"), Attr("insn","mov x29, sp")]), - Var("R29",Imm(64)), Var("R31",Imm(64))), Def(Tid(894, "%0000037e"), - Attrs([Attr("address","0x74C"), Attr("insn","adrp x8, #0")]), - Var("R8",Imm(64)), Int(0,64)), Def(Tid(900, "%00000384"), - Attrs([Attr("address","0x750"), Attr("insn","add x8, x8, #0x714")]), - Var("R8",Imm(64)), PLUS(Var("R8",Imm(64)),Int(1812,64))), -Def(Tid(905, "%00000389"), Attrs([Attr("address","0x754"), -Attr("insn","adrp x9, #0")]), Var("R9",Imm(64)), Int(0,64)), -Def(Tid(911, "%0000038f"), Attrs([Attr("address","0x758"), -Attr("insn","add x9, x9, #0x724")]), Var("R9",Imm(64)), -PLUS(Var("R9",Imm(64)),Int(1828,64))), Def(Tid(917, "%00000395"), - Attrs([Attr("address","0x75C"), Attr("insn","cmp w0, #0x1")]), - Var("#5",Imm(32)), -PLUS(Extract(31,0,Var("R0",Imm(64))),Int(4294967294,32))), -Def(Tid(922, "%0000039a"), Attrs([Attr("address","0x75C"), -Attr("insn","cmp w0, #0x1")]), Var("VF",Imm(1)), -NEQ(SIGNED(33,PLUS(Var("#5",Imm(32)),Int(1,32))),PLUS(SIGNED(33,Extract(31,0,Var("R0",Imm(64)))),Int(8589934591,33)))), -Def(Tid(927, "%0000039f"), Attrs([Attr("address","0x75C"), -Attr("insn","cmp w0, #0x1")]), Var("CF",Imm(1)), -NEQ(UNSIGNED(33,PLUS(Var("#5",Imm(32)),Int(1,32))),PLUS(UNSIGNED(33,Extract(31,0,Var("R0",Imm(64)))),Int(4294967295,33)))), -Def(Tid(931, "%000003a3"), Attrs([Attr("address","0x75C"), -Attr("insn","cmp w0, #0x1")]), Var("ZF",Imm(1)), -EQ(PLUS(Var("#5",Imm(32)),Int(1,32)),Int(0,32))), Def(Tid(935, "%000003a7"), - Attrs([Attr("address","0x75C"), Attr("insn","cmp w0, #0x1")]), - Var("NF",Imm(1)), Extract(31,31,PLUS(Var("#5",Imm(32)),Int(1,32)))), -Def(Tid(940, "%000003ac"), Attrs([Attr("address","0x760"), -Attr("insn","adrp x10, #0")]), Var("R10",Imm(64)), Int(0,64)), -Def(Tid(946, "%000003b2"), Attrs([Attr("address","0x764"), -Attr("insn","add x10, x10, #0x734")]), Var("R10",Imm(64)), -PLUS(Var("R10",Imm(64)),Int(1844,64)))]), Jmps([Goto(Tid(960, "%000003c0"), - Attrs([Attr("address","0x768"), Attr("insn","csel x8, x9, x8, eq")]), - EQ(Var("ZF",Imm(1)),Int(1,1)), Direct(Tid(952, "%000003b8"))), -Goto(Tid(961, "%000003c1"), Attrs([Attr("address","0x768"), -Attr("insn","csel x8, x9, x8, eq")]), Int(1,1), -Direct(Tid(956, "%000003bc")))])), Blk(Tid(956, "%000003bc"), Attrs([]), - Phis([]), Defs([Def(Tid(957, "%000003bd"), Attrs([Attr("address","0x768"), -Attr("insn","csel x8, x9, x8, eq")]), Var("R8",Imm(64)), -Var("R8",Imm(64)))]), Jmps([Goto(Tid(963, "%000003c3"), - Attrs([Attr("address","0x768"), Attr("insn","csel x8, x9, x8, eq")]), - Int(1,1), Direct(Tid(959, "%000003bf")))])), Blk(Tid(952, "%000003b8"), - Attrs([]), Phis([]), Defs([Def(Tid(953, "%000003b9"), - Attrs([Attr("address","0x768"), Attr("insn","csel x8, x9, x8, eq")]), - Var("R8",Imm(64)), Var("R9",Imm(64)))]), Jmps([Goto(Tid(962, "%000003c2"), - Attrs([Attr("address","0x768"), Attr("insn","csel x8, x9, x8, eq")]), - Int(1,1), Direct(Tid(959, "%000003bf")))])), Blk(Tid(959, "%000003bf"), - Attrs([]), Phis([]), Defs([Def(Tid(969, "%000003c9"), - Attrs([Attr("address","0x76C"), Attr("insn","cmp w0, #0x2")]), - Var("#6",Imm(32)), -PLUS(Extract(31,0,Var("R0",Imm(64))),Int(4294967293,32))), -Def(Tid(974, "%000003ce"), Attrs([Attr("address","0x76C"), -Attr("insn","cmp w0, #0x2")]), Var("VF",Imm(1)), -NEQ(SIGNED(33,PLUS(Var("#6",Imm(32)),Int(1,32))),PLUS(SIGNED(33,Extract(31,0,Var("R0",Imm(64)))),Int(8589934590,33)))), -Def(Tid(979, "%000003d3"), Attrs([Attr("address","0x76C"), -Attr("insn","cmp w0, #0x2")]), Var("CF",Imm(1)), -NEQ(UNSIGNED(33,PLUS(Var("#6",Imm(32)),Int(1,32))),PLUS(UNSIGNED(33,Extract(31,0,Var("R0",Imm(64)))),Int(4294967294,33)))), -Def(Tid(983, "%000003d7"), Attrs([Attr("address","0x76C"), -Attr("insn","cmp w0, #0x2")]), Var("ZF",Imm(1)), -EQ(PLUS(Var("#6",Imm(32)),Int(1,32)),Int(0,32))), Def(Tid(987, "%000003db"), - Attrs([Attr("address","0x76C"), Attr("insn","cmp w0, #0x2")]), - Var("NF",Imm(1)), Extract(31,31,PLUS(Var("#6",Imm(32)),Int(1,32))))]), -Jmps([Goto(Tid(1_001, "%000003e9"), Attrs([Attr("address","0x770"), -Attr("insn","csel x8, x10, x8, eq")]), EQ(Var("ZF",Imm(1)),Int(1,1)), -Direct(Tid(993, "%000003e1"))), Goto(Tid(1_002, "%000003ea"), - Attrs([Attr("address","0x770"), Attr("insn","csel x8, x10, x8, eq")]), - Int(1,1), Direct(Tid(997, "%000003e5")))])), Blk(Tid(997, "%000003e5"), - Attrs([]), Phis([]), Defs([Def(Tid(998, "%000003e6"), - Attrs([Attr("address","0x770"), Attr("insn","csel x8, x10, x8, eq")]), - Var("R8",Imm(64)), Var("R8",Imm(64)))]), Jmps([Goto(Tid(1_004, "%000003ec"), - Attrs([Attr("address","0x770"), Attr("insn","csel x8, x10, x8, eq")]), - Int(1,1), Direct(Tid(1_000, "%000003e8")))])), Blk(Tid(993, "%000003e1"), - Attrs([]), Phis([]), Defs([Def(Tid(994, "%000003e2"), - Attrs([Attr("address","0x770"), Attr("insn","csel x8, x10, x8, eq")]), - Var("R8",Imm(64)), Var("R10",Imm(64)))]), -Jmps([Goto(Tid(1_003, "%000003eb"), Attrs([Attr("address","0x770"), -Attr("insn","csel x8, x10, x8, eq")]), Int(1,1), -Direct(Tid(1_000, "%000003e8")))])), Blk(Tid(1_000, "%000003e8"), Attrs([]), - Phis([]), Defs([Def(Tid(1_009, "%000003f1"), Attrs([Attr("address","0x774"), -Attr("insn","blr x8")]), Var("R30",Imm(64)), Int(1912,64))]), -Jmps([Call(Tid(1_012, "%000003f4"), Attrs([Attr("address","0x774"), -Attr("insn","blr x8")]), Int(1,1), -(Indirect(Var("R8",Imm(64))),Direct(Tid(1_014, "%000003f6"))))])), -Blk(Tid(1_014, "%000003f6"), Attrs([Attr("address","0x778")]), Phis([]), -Defs([Def(Tid(1_017, "%000003f9"), Attrs([Attr("address","0x778"), -Attr("insn","mov w0, wzr")]), Var("R0",Imm(64)), Int(0,64)), -Def(Tid(1_024, "%00000400"), Attrs([Attr("address","0x77C"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R29",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(1_029, "%00000405"), Attrs([Attr("address","0x77C"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R30",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(1_033, "%00000409"), Attrs([Attr("address","0x77C"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(16,64)))]), Jmps([Call(Tid(1_038, "%0000040e"), - Attrs([Attr("address","0x780"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), -Sub(Tid(1_742, "@register_tm_clones"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x680")]), - "register_tm_clones", Args([Arg(Tid(1_796, "%00000704"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("register_tm_clones_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(640, "@register_tm_clones"), Attrs([Attr("address","0x680")]), - Phis([]), Defs([Def(Tid(643, "%00000283"), Attrs([Attr("address","0x680"), -Attr("insn","adrp x0, #69632")]), Var("R0",Imm(64)), Int(69632,64)), -Def(Tid(649, "%00000289"), Attrs([Attr("address","0x684"), -Attr("insn","add x0, x0, #0x30")]), Var("R0",Imm(64)), -PLUS(Var("R0",Imm(64)),Int(48,64))), Def(Tid(654, "%0000028e"), - Attrs([Attr("address","0x688"), Attr("insn","adrp x1, #69632")]), - Var("R1",Imm(64)), Int(69632,64)), Def(Tid(660, "%00000294"), - Attrs([Attr("address","0x68C"), Attr("insn","add x1, x1, #0x30")]), - Var("R1",Imm(64)), PLUS(Var("R1",Imm(64)),Int(48,64))), -Def(Tid(667, "%0000029b"), Attrs([Attr("address","0x690"), -Attr("insn","sub x1, x1, x0")]), Var("R1",Imm(64)), -PLUS(PLUS(Var("R1",Imm(64)),NOT(Var("R0",Imm(64)))),Int(1,64))), -Def(Tid(673, "%000002a1"), Attrs([Attr("address","0x694"), -Attr("insn","lsr x2, x1, #63")]), Var("R2",Imm(64)), -Concat(Int(0,63),Extract(63,63,Var("R1",Imm(64))))), -Def(Tid(680, "%000002a8"), Attrs([Attr("address","0x698"), -Attr("insn","add x1, x2, x1, asr #3")]), Var("R1",Imm(64)), -PLUS(Var("R2",Imm(64)),ARSHIFT(Var("R1",Imm(64)),Int(3,3)))), -Def(Tid(686, "%000002ae"), Attrs([Attr("address","0x69C"), -Attr("insn","asr x1, x1, #1")]), Var("R1",Imm(64)), -SIGNED(64,Extract(63,1,Var("R1",Imm(64)))))]), -Jmps([Goto(Tid(692, "%000002b4"), Attrs([Attr("address","0x6A0"), -Attr("insn","cbz x1, #0x18")]), EQ(Var("R1",Imm(64)),Int(0,64)), -Direct(Tid(690, "%000002b2"))), Goto(Tid(1_777, "%000006f1"), Attrs([]), - Int(1,1), Direct(Tid(1_099, "%0000044b")))])), Blk(Tid(1_099, "%0000044b"), - Attrs([Attr("address","0x6A4")]), Phis([]), -Defs([Def(Tid(1_102, "%0000044e"), Attrs([Attr("address","0x6A4"), -Attr("insn","adrp x2, #65536")]), Var("R2",Imm(64)), Int(65536,64)), -Def(Tid(1_109, "%00000455"), Attrs([Attr("address","0x6A8"), -Attr("insn","ldr x2, [x2, #0xfe0]")]), Var("R2",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R2",Imm(64)),Int(4064,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(1_114, "%0000045a"), Attrs([Attr("address","0x6AC"), -Attr("insn","cbz x2, #0xc")]), EQ(Var("R2",Imm(64)),Int(0,64)), -Direct(Tid(690, "%000002b2"))), Goto(Tid(1_778, "%000006f2"), Attrs([]), - Int(1,1), Direct(Tid(1_118, "%0000045e")))])), Blk(Tid(690, "%000002b2"), - Attrs([Attr("address","0x6B8")]), Phis([]), Defs([]), -Jmps([Call(Tid(698, "%000002ba"), Attrs([Attr("address","0x6B8"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))])), -Blk(Tid(1_118, "%0000045e"), Attrs([Attr("address","0x6B0")]), Phis([]), -Defs([Def(Tid(1_122, "%00000462"), Attrs([Attr("address","0x6B0"), -Attr("insn","mov x16, x2")]), Var("R16",Imm(64)), Var("R2",Imm(64)))]), -Jmps([Call(Tid(1_127, "%00000467"), Attrs([Attr("address","0x6B4"), -Attr("insn","br x16")]), Int(1,1), (Indirect(Var("R16",Imm(64))),))]))])), -Sub(Tid(1_745, "@set_seven"), Attrs([Attr("c.proto","signed (*)(void)"), -Attr("address","0x734")]), "set_seven", Args([Arg(Tid(1_797, "%00000705"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("set_seven_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(840, "@set_seven"), - Attrs([Attr("address","0x734")]), Phis([]), Defs([Def(Tid(843, "%0000034b"), - Attrs([Attr("address","0x734"), Attr("insn","adrp x8, #69632")]), - Var("R8",Imm(64)), Int(69632,64)), Def(Tid(848, "%00000350"), - Attrs([Attr("address","0x738"), Attr("insn","mov w9, #0x7")]), - Var("R9",Imm(64)), Int(7,64)), Def(Tid(856, "%00000358"), - Attrs([Attr("address","0x73C"), Attr("insn","str w9, [x8, #0x34]")]), - Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R8",Imm(64)),Int(52,64)),Extract(31,0,Var("R9",Imm(64))),LittleEndian(),32))]), -Jmps([Call(Tid(861, "%0000035d"), Attrs([Attr("address","0x740"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))]))])), -Sub(Tid(1_746, "@set_six"), Attrs([Attr("c.proto","signed (*)(void)"), -Attr("address","0x724")]), "set_six", Args([Arg(Tid(1_798, "%00000706"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("set_six_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(817, "@set_six"), - Attrs([Attr("address","0x724")]), Phis([]), Defs([Def(Tid(820, "%00000334"), - Attrs([Attr("address","0x724"), Attr("insn","adrp x8, #69632")]), - Var("R8",Imm(64)), Int(69632,64)), Def(Tid(825, "%00000339"), - Attrs([Attr("address","0x728"), Attr("insn","mov w9, #0x6")]), - Var("R9",Imm(64)), Int(6,64)), Def(Tid(833, "%00000341"), - Attrs([Attr("address","0x72C"), Attr("insn","str w9, [x8, #0x34]")]), - Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R8",Imm(64)),Int(52,64)),Extract(31,0,Var("R9",Imm(64))),LittleEndian(),32))]), -Jmps([Call(Tid(838, "%00000346"), Attrs([Attr("address","0x730"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))]))])), -Sub(Tid(1_747, "@set_two"), Attrs([Attr("c.proto","signed (*)(void)"), -Attr("address","0x714")]), "set_two", Args([Arg(Tid(1_799, "%00000707"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("set_two_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(794, "@set_two"), - Attrs([Attr("address","0x714")]), Phis([]), Defs([Def(Tid(797, "%0000031d"), - Attrs([Attr("address","0x714"), Attr("insn","adrp x8, #69632")]), - Var("R8",Imm(64)), Int(69632,64)), Def(Tid(802, "%00000322"), - Attrs([Attr("address","0x718"), Attr("insn","mov w9, #0x2")]), - Var("R9",Imm(64)), Int(2,64)), Def(Tid(810, "%0000032a"), - Attrs([Attr("address","0x71C"), Attr("insn","str w9, [x8, #0x34]")]), - Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R8",Imm(64)),Int(52,64)),Extract(31,0,Var("R9",Imm(64))),LittleEndian(),32))]), -Jmps([Call(Tid(815, "%0000032f"), Attrs([Attr("address","0x720"), -Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))]))]))) \ No newline at end of file diff --git a/src/test/indirect_calls/functionpointer/clang_O2/functionpointer.bir b/src/test/indirect_calls/functionpointer/clang_O2/functionpointer.bir deleted file mode 100644 index 38ea45efe..000000000 --- a/src/test/indirect_calls/functionpointer/clang_O2/functionpointer.bir +++ /dev/null @@ -1,303 +0,0 @@ -000006f3: program -000006bb: sub __cxa_finalize(__cxa_finalize_result) -000006f4: __cxa_finalize_result :: out u32 = low:32[R0] - -00000447: -0000053f: R16 := 0x11000 -00000546: R17 := mem[R16 + 8, el]:u64 -0000054c: R16 := R16 + 8 -00000551: call R17 with noreturn - -000006bc: sub __do_global_dtors_aux(__do_global_dtors_aux_result) -000006f5: __do_global_dtors_aux_result :: out u32 = low:32[R0] - -000002be: -000002c2: #3 := R31 - 0x20 -000002c8: mem := mem with [#3, el]:u64 <- R29 -000002ce: mem := mem with [#3 + 8, el]:u64 <- R30 -000002d2: R31 := #3 -000002d8: R29 := R31 -000002e0: mem := mem with [R31 + 0x10, el]:u64 <- R19 -000002e5: R19 := 0x11000 -000002ec: R0 := pad:64[mem[R19 + 0x30]] -000002f3: when 31:0[R0] <> 0 goto %000002f1 -000006e9: goto %00000410 - -00000410: -00000413: R0 := 0x10000 -0000041a: R0 := mem[R0 + 0xFC8, el]:u64 -00000420: when R0 = 0 goto %0000041e -000006ea: goto %00000437 - -00000437: -0000043a: R0 := 0x11000 -00000441: R0 := mem[R0 + 0x28, el]:u64 -00000446: R30 := 0x6F0 -00000449: call @__cxa_finalize with return %0000041e - -0000041e: -00000426: R30 := 0x6F4 -00000428: call @deregister_tm_clones with return %0000042a - -0000042a: -0000042d: R0 := 1 -00000435: mem := mem with [R19 + 0x30] <- 7:0[R0] -000006eb: goto %000002f1 - -000002f1: -000002fb: R19 := mem[R31 + 0x10, el]:u64 -00000302: R29 := mem[R31, el]:u64 -00000307: R30 := mem[R31 + 8, el]:u64 -0000030b: R31 := R31 + 0x20 -00000310: call R30 with noreturn - -000006c0: sub __libc_start_main(__libc_start_main_main, __libc_start_main_arg2, __libc_start_main_arg3, __libc_start_main_auxv, __libc_start_main_result) -000006f6: __libc_start_main_main :: in u64 = R0 -000006f7: __libc_start_main_arg2 :: in u32 = low:32[R1] -000006f8: __libc_start_main_arg3 :: in out u64 = R2 -000006f9: __libc_start_main_auxv :: in out u64 = R3 -000006fa: __libc_start_main_result :: out u32 = low:32[R0] - -00000217: -00000529: R16 := 0x11000 -00000530: R17 := mem[R16, el]:u64 -00000536: R16 := R16 -0000053b: call R17 with noreturn - -000006c1: sub _fini(_fini_result) -000006fb: _fini_result :: out u32 = low:32[R0] - -0000001f: -00000025: #0 := R31 - 0x10 -0000002b: mem := mem with [#0, el]:u64 <- R29 -00000031: mem := mem with [#0 + 8, el]:u64 <- R30 -00000035: R31 := #0 -0000003b: R29 := R31 -00000042: R29 := mem[R31, el]:u64 -00000047: R30 := mem[R31 + 8, el]:u64 -0000004b: R31 := R31 + 0x10 -00000050: call R30 with noreturn - -000006c2: sub _init(_init_result) -000006fc: _init_result :: out u32 = low:32[R0] - -00000601: -00000607: #8 := R31 - 0x10 -0000060d: mem := mem with [#8, el]:u64 <- R29 -00000613: mem := mem with [#8 + 8, el]:u64 <- R30 -00000617: R31 := #8 -0000061d: R29 := R31 -00000622: R30 := 0x590 -00000624: call @call_weak_fn with return %00000626 - -00000626: -0000062b: R29 := mem[R31, el]:u64 -00000630: R30 := mem[R31 + 8, el]:u64 -00000634: R31 := R31 + 0x10 -00000639: call R30 with noreturn - -000006c3: sub _start(_start_result) -000006fd: _start_result :: out u32 = low:32[R0] - -000001d8: -000001dd: R29 := 0 -000001e2: R30 := 0 -000001e8: R5 := R0 -000001ef: R1 := mem[R31, el]:u64 -000001f5: R2 := R31 + 8 -000001fb: R6 := R31 -00000200: R0 := 0x10000 -00000207: R0 := mem[R0 + 0xFD8, el]:u64 -0000020c: R3 := 0 -00000211: R4 := 0 -00000216: R30 := 0x630 -00000219: call @__libc_start_main with return %0000021b - -0000021b: -0000021e: R30 := 0x634 -00000221: call @abort with return %000006ec - -000006ec: -000006ed: call @call_weak_fn with noreturn - -000006c6: sub abort() - - -0000021f: -0000056b: R16 := 0x11000 -00000572: R17 := mem[R16 + 0x18, el]:u64 -00000578: R16 := R16 + 0x18 -0000057d: call R17 with noreturn - -000006c7: sub call_weak_fn(call_weak_fn_result) -000006fe: call_weak_fn_result :: out u32 = low:32[R0] - -00000223: -00000226: R0 := 0x10000 -0000022d: R0 := mem[R0 + 0xFD0, el]:u64 -00000233: when R0 = 0 goto %00000231 -000006ee: goto %00000487 - -00000231: -00000239: call R30 with noreturn - -00000487: -0000048a: goto @__gmon_start__ - -00000488: -00000555: R16 := 0x11000 -0000055c: R17 := mem[R16 + 0x10, el]:u64 -00000562: R16 := R16 + 0x10 -00000567: call R17 with noreturn - -000006c9: sub deregister_tm_clones(deregister_tm_clones_result) -000006ff: deregister_tm_clones_result :: out u32 = low:32[R0] - -0000023f: -00000242: R0 := 0x11000 -00000248: R0 := R0 + 0x30 -0000024d: R1 := 0x11000 -00000253: R1 := R1 + 0x30 -00000259: #1 := ~R0 -0000025e: #2 := R1 + ~R0 -00000264: VF := extend:65[#2 + 1] <> extend:65[R1] + extend:65[#1] + 1 -0000026a: CF := pad:65[#2 + 1] <> pad:65[R1] + pad:65[#1] + 1 -0000026e: ZF := #2 + 1 = 0 -00000272: NF := 63:63[#2 + 1] -00000278: when ZF goto %00000276 -000006ef: goto %00000469 - -00000469: -0000046c: R1 := 0x10000 -00000473: R1 := mem[R1 + 0xFC0, el]:u64 -00000478: when R1 = 0 goto %00000276 -000006f0: goto %0000047c - -00000276: -0000027e: call R30 with noreturn - -0000047c: -00000480: R16 := R1 -00000485: call R16 with noreturn - -000006cc: sub frame_dummy(frame_dummy_result) -00000700: frame_dummy_result :: out u32 = low:32[R0] - -00000316: -00000318: call @register_tm_clones with noreturn - -000006cd: sub main(main_argc, main_argv, main_result) -00000701: main_argc :: in u32 = low:32[R0] -00000702: main_argv :: in out u64 = R1 -00000703: main_result :: out u32 = low:32[R0] - -0000035f: -00000363: #4 := R31 - 0x10 -00000369: mem := mem with [#4, el]:u64 <- R29 -0000036f: mem := mem with [#4 + 8, el]:u64 <- R30 -00000373: R31 := #4 -00000379: R29 := R31 -0000037e: R8 := 0 -00000384: R8 := R8 + 0x714 -00000389: R9 := 0 -0000038f: R9 := R9 + 0x724 -00000395: #5 := 31:0[R0] - 2 -0000039a: VF := extend:33[#5 + 1] <> extend:33[31:0[R0]] - 1 -0000039f: CF := pad:33[#5 + 1] <> pad:33[31:0[R0]] + 0xFFFFFFFF -000003a3: ZF := #5 + 1 = 0 -000003a7: NF := 31:31[#5 + 1] -000003ac: R10 := 0 -000003b2: R10 := R10 + 0x734 -000003c0: when ZF goto %000003b8 -000003c1: goto %000003bc - -000003bc: -000003bd: R8 := R8 -000003c3: goto %000003bf - -000003b8: -000003b9: R8 := R9 -000003c2: goto %000003bf - -000003bf: -000003c9: #6 := 31:0[R0] - 3 -000003ce: VF := extend:33[#6 + 1] <> extend:33[31:0[R0]] - 2 -000003d3: CF := pad:33[#6 + 1] <> pad:33[31:0[R0]] + 0xFFFFFFFE -000003d7: ZF := #6 + 1 = 0 -000003db: NF := 31:31[#6 + 1] -000003e9: when ZF goto %000003e1 -000003ea: goto %000003e5 - -000003e5: -000003e6: R8 := R8 -000003ec: goto %000003e8 - -000003e1: -000003e2: R8 := R10 -000003eb: goto %000003e8 - -000003e8: -000003f1: R30 := 0x778 -000003f4: call R8 with return %000003f6 - -000003f6: -000003f9: R0 := 0 -00000400: R29 := mem[R31, el]:u64 -00000405: R30 := mem[R31 + 8, el]:u64 -00000409: R31 := R31 + 0x10 -0000040e: call R30 with noreturn - -000006ce: sub register_tm_clones(register_tm_clones_result) -00000704: register_tm_clones_result :: out u32 = low:32[R0] - -00000280: -00000283: R0 := 0x11000 -00000289: R0 := R0 + 0x30 -0000028e: R1 := 0x11000 -00000294: R1 := R1 + 0x30 -0000029b: R1 := R1 + ~R0 + 1 -000002a1: R2 := 0.63:63[R1] -000002a8: R1 := R2 + (R1 ~>> 3) -000002ae: R1 := extend:64[63:1[R1]] -000002b4: when R1 = 0 goto %000002b2 -000006f1: goto %0000044b - -0000044b: -0000044e: R2 := 0x10000 -00000455: R2 := mem[R2 + 0xFE0, el]:u64 -0000045a: when R2 = 0 goto %000002b2 -000006f2: goto %0000045e - -000002b2: -000002ba: call R30 with noreturn - -0000045e: -00000462: R16 := R2 -00000467: call R16 with noreturn - -000006d1: sub set_seven(set_seven_result) -00000705: set_seven_result :: out u32 = low:32[R0] - -00000348: -0000034b: R8 := 0x11000 -00000350: R9 := 7 -00000358: mem := mem with [R8 + 0x34, el]:u32 <- 31:0[R9] -0000035d: call R30 with noreturn - -000006d2: sub set_six(set_six_result) -00000706: set_six_result :: out u32 = low:32[R0] - -00000331: -00000334: R8 := 0x11000 -00000339: R9 := 6 -00000341: mem := mem with [R8 + 0x34, el]:u32 <- 31:0[R9] -00000346: call R30 with noreturn - -000006d3: sub set_two(set_two_result) -00000707: set_two_result :: out u32 = low:32[R0] - -0000031a: -0000031d: R8 := 0x11000 -00000322: R9 := 2 -0000032a: mem := mem with [R8 + 0x34, el]:u32 <- 31:0[R9] -0000032f: call R30 with noreturn diff --git a/src/test/indirect_calls/functionpointer/clang_O2/functionpointer.gts b/src/test/indirect_calls/functionpointer/clang_O2/functionpointer.gts deleted file mode 100644 index 8d6320bb5..000000000 Binary files a/src/test/indirect_calls/functionpointer/clang_O2/functionpointer.gts and /dev/null differ diff --git a/src/test/indirect_calls/functionpointer/clang_O2/functionpointer.md5sum b/src/test/indirect_calls/functionpointer/clang_O2/functionpointer.md5sum new file mode 100644 index 000000000..03a35963d --- /dev/null +++ b/src/test/indirect_calls/functionpointer/clang_O2/functionpointer.md5sum @@ -0,0 +1,5 @@ +c32918302a12841090f3fe8bb2e30d63 indirect_calls/functionpointer/clang_O2/a.out +86ee88d058933c0c5cc1b484803d85ed indirect_calls/functionpointer/clang_O2/functionpointer.adt +903b10bf85f7eb3be73abe406158cdea indirect_calls/functionpointer/clang_O2/functionpointer.bir +52eeb354c58e4eaed7d2974b40c17f49 indirect_calls/functionpointer/clang_O2/functionpointer.relf +3cbbed1e14c1876fa29519a1e472785d indirect_calls/functionpointer/clang_O2/functionpointer.gts diff --git a/src/test/indirect_calls/functionpointer/clang_O2/functionpointer.relf b/src/test/indirect_calls/functionpointer/clang_O2/functionpointer.relf deleted file mode 100644 index 472cd5307..000000000 --- a/src/test/indirect_calls/functionpointer/clang_O2/functionpointer.relf +++ /dev/null @@ -1,126 +0,0 @@ - -Relocation section '.rela.dyn' at offset 0x460 contains 8 entries: - Offset Info Type Symbol's Value Symbol's Name + Addend -0000000000010dc8 0000000000000403 R_AARCH64_RELATIVE 710 -0000000000010dd0 0000000000000403 R_AARCH64_RELATIVE 6c0 -0000000000010fd8 0000000000000403 R_AARCH64_RELATIVE 744 -0000000000011028 0000000000000403 R_AARCH64_RELATIVE 11028 -0000000000010fc0 0000000400000401 R_AARCH64_GLOB_DAT 0000000000000000 _ITM_deregisterTMCloneTable + 0 -0000000000010fc8 0000000500000401 R_AARCH64_GLOB_DAT 0000000000000000 __cxa_finalize@GLIBC_2.17 + 0 -0000000000010fd0 0000000600000401 R_AARCH64_GLOB_DAT 0000000000000000 __gmon_start__ + 0 -0000000000010fe0 0000000800000401 R_AARCH64_GLOB_DAT 0000000000000000 _ITM_registerTMCloneTable + 0 - -Relocation section '.rela.plt' at offset 0x520 contains 4 entries: - Offset Info Type Symbol's Value Symbol's Name + Addend -0000000000011000 0000000300000402 R_AARCH64_JUMP_SLOT 0000000000000000 __libc_start_main@GLIBC_2.34 + 0 -0000000000011008 0000000500000402 R_AARCH64_JUMP_SLOT 0000000000000000 __cxa_finalize@GLIBC_2.17 + 0 -0000000000011010 0000000600000402 R_AARCH64_JUMP_SLOT 0000000000000000 __gmon_start__ + 0 -0000000000011018 0000000700000402 R_AARCH64_JUMP_SLOT 0000000000000000 abort@GLIBC_2.17 + 0 - -Symbol table '.dynsym' contains 9 entries: - Num: Value Size Type Bind Vis Ndx Name - 0: 0000000000000000 0 NOTYPE LOCAL DEFAULT UND - 1: 0000000000000580 0 SECTION LOCAL DEFAULT 11 .init - 2: 0000000000011020 0 SECTION LOCAL DEFAULT 23 .data - 3: 0000000000000000 0 FUNC GLOBAL DEFAULT UND __libc_start_main@GLIBC_2.34 (2) - 4: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_deregisterTMCloneTable - 5: 0000000000000000 0 FUNC WEAK DEFAULT UND __cxa_finalize@GLIBC_2.17 (3) - 6: 0000000000000000 0 NOTYPE WEAK DEFAULT UND __gmon_start__ - 7: 0000000000000000 0 FUNC GLOBAL DEFAULT UND abort@GLIBC_2.17 (3) - 8: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_registerTMCloneTable - -Symbol table '.symtab' contains 93 entries: - Num: Value Size Type Bind Vis Ndx Name - 0: 0000000000000000 0 NOTYPE LOCAL DEFAULT UND - 1: 0000000000000238 0 SECTION LOCAL DEFAULT 1 .interp - 2: 0000000000000254 0 SECTION LOCAL DEFAULT 2 .note.gnu.build-id - 3: 0000000000000278 0 SECTION LOCAL DEFAULT 3 .note.ABI-tag - 4: 0000000000000298 0 SECTION LOCAL DEFAULT 4 .gnu.hash - 5: 00000000000002b8 0 SECTION LOCAL DEFAULT 5 .dynsym - 6: 0000000000000390 0 SECTION LOCAL DEFAULT 6 .dynstr - 7: 000000000000041e 0 SECTION LOCAL DEFAULT 7 .gnu.version - 8: 0000000000000430 0 SECTION LOCAL DEFAULT 8 .gnu.version_r - 9: 0000000000000460 0 SECTION LOCAL DEFAULT 9 .rela.dyn - 10: 0000000000000520 0 SECTION LOCAL DEFAULT 10 .rela.plt - 11: 0000000000000580 0 SECTION LOCAL DEFAULT 11 .init - 12: 00000000000005a0 0 SECTION LOCAL DEFAULT 12 .plt - 13: 0000000000000600 0 SECTION LOCAL DEFAULT 13 .text - 14: 0000000000000784 0 SECTION LOCAL DEFAULT 14 .fini - 15: 0000000000000798 0 SECTION LOCAL DEFAULT 15 .rodata - 16: 000000000000079c 0 SECTION LOCAL DEFAULT 16 .eh_frame_hdr - 17: 00000000000007f0 0 SECTION LOCAL DEFAULT 17 .eh_frame - 18: 0000000000010dc8 0 SECTION LOCAL DEFAULT 18 .init_array - 19: 0000000000010dd0 0 SECTION LOCAL DEFAULT 19 .fini_array - 20: 0000000000010dd8 0 SECTION LOCAL DEFAULT 20 .dynamic - 21: 0000000000010fb8 0 SECTION LOCAL DEFAULT 21 .got - 22: 0000000000010fe8 0 SECTION LOCAL DEFAULT 22 .got.plt - 23: 0000000000011020 0 SECTION LOCAL DEFAULT 23 .data - 24: 0000000000011030 0 SECTION LOCAL DEFAULT 24 .bss - 25: 0000000000000000 0 SECTION LOCAL DEFAULT 25 .comment - 26: 0000000000000000 0 FILE LOCAL DEFAULT ABS Scrt1.o - 27: 0000000000000278 0 NOTYPE LOCAL DEFAULT 3 $d - 28: 0000000000000278 32 OBJECT LOCAL DEFAULT 3 __abi_tag - 29: 0000000000000600 0 NOTYPE LOCAL DEFAULT 13 $x - 30: 0000000000000804 0 NOTYPE LOCAL DEFAULT 17 $d - 31: 0000000000000798 0 NOTYPE LOCAL DEFAULT 15 $d - 32: 0000000000000000 0 FILE LOCAL DEFAULT ABS crti.o - 33: 0000000000000634 0 NOTYPE LOCAL DEFAULT 13 $x - 34: 0000000000000634 20 FUNC LOCAL DEFAULT 13 call_weak_fn - 35: 0000000000000580 0 NOTYPE LOCAL DEFAULT 11 $x - 36: 0000000000000784 0 NOTYPE LOCAL DEFAULT 14 $x - 37: 0000000000000000 0 FILE LOCAL DEFAULT ABS crtn.o - 38: 0000000000000590 0 NOTYPE LOCAL DEFAULT 11 $x - 39: 0000000000000790 0 NOTYPE LOCAL DEFAULT 14 $x - 40: 0000000000000000 0 FILE LOCAL DEFAULT ABS crtstuff.c - 41: 0000000000000650 0 NOTYPE LOCAL DEFAULT 13 $x - 42: 0000000000000650 0 FUNC LOCAL DEFAULT 13 deregister_tm_clones - 43: 0000000000000680 0 FUNC LOCAL DEFAULT 13 register_tm_clones - 44: 0000000000011028 0 NOTYPE LOCAL DEFAULT 23 $d - 45: 00000000000006c0 0 FUNC LOCAL DEFAULT 13 __do_global_dtors_aux - 46: 0000000000011030 1 OBJECT LOCAL DEFAULT 24 completed.0 - 47: 0000000000010dd0 0 NOTYPE LOCAL DEFAULT 19 $d - 48: 0000000000010dd0 0 OBJECT LOCAL DEFAULT 19 __do_global_dtors_aux_fini_array_entry - 49: 0000000000000710 0 FUNC LOCAL DEFAULT 13 frame_dummy - 50: 0000000000010dc8 0 NOTYPE LOCAL DEFAULT 18 $d - 51: 0000000000010dc8 0 OBJECT LOCAL DEFAULT 18 __frame_dummy_init_array_entry - 52: 0000000000000818 0 NOTYPE LOCAL DEFAULT 17 $d - 53: 0000000000011030 0 NOTYPE LOCAL DEFAULT 24 $d - 54: 0000000000000000 0 FILE LOCAL DEFAULT ABS functionpointer.c - 55: 0000000000000714 0 NOTYPE LOCAL DEFAULT 13 $x.0 - 56: 0000000000011034 0 NOTYPE LOCAL DEFAULT 24 $d.1 - 57: 000000000000002a 0 NOTYPE LOCAL DEFAULT 25 $d.2 - 58: 0000000000000878 0 NOTYPE LOCAL DEFAULT 17 $d.3 - 59: 0000000000000000 0 FILE LOCAL DEFAULT ABS crtstuff.c - 60: 00000000000008f0 0 NOTYPE LOCAL DEFAULT 17 $d - 61: 00000000000008f0 0 OBJECT LOCAL DEFAULT 17 __FRAME_END__ - 62: 0000000000000000 0 FILE LOCAL DEFAULT ABS - 63: 0000000000010dd8 0 OBJECT LOCAL DEFAULT ABS _DYNAMIC - 64: 000000000000079c 0 NOTYPE LOCAL DEFAULT 16 __GNU_EH_FRAME_HDR - 65: 0000000000010fb8 0 OBJECT LOCAL DEFAULT ABS _GLOBAL_OFFSET_TABLE_ - 66: 00000000000005a0 0 NOTYPE LOCAL DEFAULT 12 $x - 67: 0000000000000000 0 FUNC GLOBAL DEFAULT UND __libc_start_main@GLIBC_2.34 - 68: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_deregisterTMCloneTable - 69: 0000000000011020 0 NOTYPE WEAK DEFAULT 23 data_start - 70: 0000000000011030 0 NOTYPE GLOBAL DEFAULT 24 __bss_start__ - 71: 0000000000000000 0 FUNC WEAK DEFAULT UND __cxa_finalize@GLIBC_2.17 - 72: 0000000000011038 0 NOTYPE GLOBAL DEFAULT 24 _bss_end__ - 73: 0000000000011030 0 NOTYPE GLOBAL DEFAULT 23 _edata - 74: 0000000000011034 4 OBJECT GLOBAL DEFAULT 24 x - 75: 0000000000000784 0 FUNC GLOBAL HIDDEN 14 _fini - 76: 0000000000011038 0 NOTYPE GLOBAL DEFAULT 24 __bss_end__ - 77: 0000000000011020 0 NOTYPE GLOBAL DEFAULT 23 __data_start - 78: 0000000000000000 0 NOTYPE WEAK DEFAULT UND __gmon_start__ - 79: 0000000000011028 0 OBJECT GLOBAL HIDDEN 23 __dso_handle - 80: 0000000000000000 0 FUNC GLOBAL DEFAULT UND abort@GLIBC_2.17 - 81: 0000000000000798 4 OBJECT GLOBAL DEFAULT 15 _IO_stdin_used - 82: 0000000000000714 16 FUNC GLOBAL DEFAULT 13 set_two - 83: 0000000000011038 0 NOTYPE GLOBAL DEFAULT 24 _end - 84: 0000000000000600 52 FUNC GLOBAL DEFAULT 13 _start - 85: 0000000000011038 0 NOTYPE GLOBAL DEFAULT 24 __end__ - 86: 0000000000000724 16 FUNC GLOBAL DEFAULT 13 set_six - 87: 0000000000011030 0 NOTYPE GLOBAL DEFAULT 24 __bss_start - 88: 0000000000000744 64 FUNC GLOBAL DEFAULT 13 main - 89: 0000000000000734 16 FUNC GLOBAL DEFAULT 13 set_seven - 90: 0000000000011030 0 OBJECT GLOBAL HIDDEN 23 __TMC_END__ - 91: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_registerTMCloneTable - 92: 0000000000000580 0 FUNC GLOBAL HIDDEN 11 _init diff --git a/src/test/indirect_calls/functionpointer/clang_pic/functionpointer.adt b/src/test/indirect_calls/functionpointer/clang_pic/functionpointer.adt deleted file mode 100644 index 1589c6344..000000000 --- a/src/test/indirect_calls/functionpointer/clang_pic/functionpointer.adt +++ /dev/null @@ -1,772 +0,0 @@ -Project(Attrs([Attr("filename","\"clang_pic/functionpointer.out\""), -Attr("image-specification","(declare abi (name str))\n(declare arch (name str))\n(declare base-address (addr int))\n(declare bias (off int))\n(declare bits (size int))\n(declare code-region (addr int) (size int) (off int))\n(declare code-start (addr int))\n(declare entry-point (addr int))\n(declare external-reference (addr int) (name str))\n(declare format (name str))\n(declare is-executable (flag bool))\n(declare is-little-endian (flag bool))\n(declare llvm:base-address (addr int))\n(declare llvm:code-entry (name str) (off int) (size int))\n(declare llvm:coff-import-library (name str))\n(declare llvm:coff-virtual-section-header (name str) (addr int) (size int))\n(declare llvm:elf-program-header (name str) (off int) (size int))\n(declare llvm:elf-program-header-flags (name str) (ld bool) (r bool) \n (w bool) (x bool))\n(declare llvm:elf-virtual-program-header (name str) (addr int) (size int))\n(declare llvm:entry-point (addr int))\n(declare llvm:macho-symbol (name str) (value int))\n(declare llvm:name-reference (at int) (name str))\n(declare llvm:relocation (at int) (addr int))\n(declare llvm:section-entry (name str) (addr int) (size int) (off int))\n(declare llvm:section-flags (name str) (r bool) (w bool) (x bool))\n(declare llvm:segment-command (name str) (off int) (size int))\n(declare llvm:segment-command-flags (name str) (r bool) (w bool) (x bool))\n(declare llvm:symbol-entry (name str) (addr int) (size int) (off int)\n (value int))\n(declare llvm:virtual-segment-command (name str) (addr int) (size int))\n(declare mapped (addr int) (size int) (off int))\n(declare named-region (addr int) (size int) (name str))\n(declare named-symbol (addr int) (name str))\n(declare require (name str))\n(declare section (addr int) (size int))\n(declare segment (addr int) (size int) (r bool) (w bool) (x bool))\n(declare subarch (name str))\n(declare symbol-chunk (addr int) (size int) (root int))\n(declare symbol-value (addr int) (value int))\n(declare system (name str))\n(declare vendor (name str))\n\n(abi unknown)\n(arch aarch64)\n(base-address 0)\n(bias 0)\n(bits 64)\n(code-region 2172 20 2172)\n(code-region 1664 508 1664)\n(code-region 1536 96 1536)\n(code-region 1504 24 1504)\n(code-start 1716)\n(code-start 1940)\n(code-start 1664)\n(code-start 1960)\n(code-start 2000)\n(code-start 1980)\n(entry-point 1664)\n(external-reference 69536 _ITM_deregisterTMCloneTable)\n(external-reference 69544 __cxa_finalize)\n(external-reference 69560 __gmon_start__)\n(external-reference 69600 _ITM_registerTMCloneTable)\n(external-reference 69632 __libc_start_main)\n(external-reference 69640 __cxa_finalize)\n(external-reference 69648 __gmon_start__)\n(external-reference 69656 abort)\n(format elf)\n(is-executable true)\n(is-little-endian true)\n(llvm:base-address 0)\n(llvm:code-entry abort 0 0)\n(llvm:code-entry __cxa_finalize 0 0)\n(llvm:code-entry __libc_start_main 0 0)\n(llvm:code-entry _init 1504 0)\n(llvm:code-entry set_seven 1980 20)\n(llvm:code-entry main 2000 172)\n(llvm:code-entry set_six 1960 20)\n(llvm:code-entry _start 1664 52)\n(llvm:code-entry set_two 1940 20)\n(llvm:code-entry abort@GLIBC_2.17 0 0)\n(llvm:code-entry _fini 2172 0)\n(llvm:code-entry __cxa_finalize@GLIBC_2.17 0 0)\n(llvm:code-entry __libc_start_main@GLIBC_2.34 0 0)\n(llvm:code-entry frame_dummy 1936 0)\n(llvm:code-entry __do_global_dtors_aux 1856 0)\n(llvm:code-entry register_tm_clones 1792 0)\n(llvm:code-entry deregister_tm_clones 1744 0)\n(llvm:code-entry call_weak_fn 1716 20)\n(llvm:code-entry .fini 2172 20)\n(llvm:code-entry .text 1664 508)\n(llvm:code-entry .plt 1536 96)\n(llvm:code-entry .init 1504 24)\n(llvm:elf-program-header 08 3496 600)\n(llvm:elf-program-header 07 0 0)\n(llvm:elf-program-header 06 2196 84)\n(llvm:elf-program-header 05 596 68)\n(llvm:elf-program-header 04 3512 480)\n(llvm:elf-program-header 03 3496 648)\n(llvm:elf-program-header 02 0 2540)\n(llvm:elf-program-header 01 568 27)\n(llvm:elf-program-header 00 64 504)\n(llvm:elf-program-header-flags 08 false true false false)\n(llvm:elf-program-header-flags 07 false true true false)\n(llvm:elf-program-header-flags 06 false true false false)\n(llvm:elf-program-header-flags 05 false true false false)\n(llvm:elf-program-header-flags 04 false true true false)\n(llvm:elf-program-header-flags 03 true true true false)\n(llvm:elf-program-header-flags 02 true true false true)\n(llvm:elf-program-header-flags 01 false true false false)\n(llvm:elf-program-header-flags 00 false true false false)\n(llvm:elf-virtual-program-header 08 69032 600)\n(llvm:elf-virtual-program-header 07 0 0)\n(llvm:elf-virtual-program-header 06 2196 84)\n(llvm:elf-virtual-program-header 05 596 68)\n(llvm:elf-virtual-program-header 04 69048 480)\n(llvm:elf-virtual-program-header 03 69032 656)\n(llvm:elf-virtual-program-header 02 0 2540)\n(llvm:elf-virtual-program-header 01 568 27)\n(llvm:elf-virtual-program-header 00 64 504)\n(llvm:entry-point 1664)\n(llvm:name-reference 69656 abort)\n(llvm:name-reference 69648 __gmon_start__)\n(llvm:name-reference 69640 __cxa_finalize)\n(llvm:name-reference 69632 __libc_start_main)\n(llvm:name-reference 69600 _ITM_registerTMCloneTable)\n(llvm:name-reference 69560 __gmon_start__)\n(llvm:name-reference 69544 __cxa_finalize)\n(llvm:name-reference 69536 _ITM_deregisterTMCloneTable)\n(llvm:section-entry .shstrtab 0 259 7045)\n(llvm:section-entry .strtab 0 597 6448)\n(llvm:section-entry .symtab 0 2232 4216)\n(llvm:section-entry .comment 0 71 4144)\n(llvm:section-entry .bss 69680 8 4144)\n(llvm:section-entry .data 69664 16 4128)\n(llvm:section-entry .got.plt 69608 56 4072)\n(llvm:section-entry .got 69528 80 3992)\n(llvm:section-entry .dynamic 69048 480 3512)\n(llvm:section-entry .fini_array 69040 8 3504)\n(llvm:section-entry .init_array 69032 8 3496)\n(llvm:section-entry .eh_frame 2280 260 2280)\n(llvm:section-entry .eh_frame_hdr 2196 84 2196)\n(llvm:section-entry .rodata 2192 4 2192)\n(llvm:section-entry .fini 2172 20 2172)\n(llvm:section-entry .text 1664 508 1664)\n(llvm:section-entry .plt 1536 96 1536)\n(llvm:section-entry .init 1504 24 1504)\n(llvm:section-entry .rela.plt 1408 96 1408)\n(llvm:section-entry .rela.dyn 1120 288 1120)\n(llvm:section-entry .gnu.version_r 1072 48 1072)\n(llvm:section-entry .gnu.version 1054 18 1054)\n(llvm:section-entry .dynstr 912 141 912)\n(llvm:section-entry .dynsym 696 216 696)\n(llvm:section-entry .gnu.hash 664 28 664)\n(llvm:section-entry .note.ABI-tag 632 32 632)\n(llvm:section-entry .note.gnu.build-id 596 36 596)\n(llvm:section-entry .interp 568 27 568)\n(llvm:section-flags .shstrtab true false false)\n(llvm:section-flags .strtab true false false)\n(llvm:section-flags .symtab true false false)\n(llvm:section-flags .comment true false false)\n(llvm:section-flags .bss true true false)\n(llvm:section-flags .data true true false)\n(llvm:section-flags .got.plt true true false)\n(llvm:section-flags .got true true false)\n(llvm:section-flags .dynamic true true false)\n(llvm:section-flags .fini_array true true false)\n(llvm:section-flags .init_array true true false)\n(llvm:section-flags .eh_frame true false false)\n(llvm:section-flags .eh_frame_hdr true false false)\n(llvm:section-flags .rodata true false false)\n(llvm:section-flags .fini true false true)\n(llvm:section-flags .text true false true)\n(llvm:section-flags .plt true false true)\n(llvm:section-flags .init true false true)\n(llvm:section-flags .rela.plt true false false)\n(llvm:section-flags .rela.dyn true false false)\n(llvm:section-flags .gnu.version_r true false false)\n(llvm:section-flags .gnu.version true false false)\n(llvm:section-flags .dynstr true false false)\n(llvm:section-flags .dynsym true false false)\n(llvm:section-flags .gnu.hash true false false)\n(llvm:section-flags .note.ABI-tag true false false)\n(llvm:section-flags .note.gnu.build-id true false false)\n(llvm:section-flags .interp true false false)\n(llvm:symbol-entry abort 0 0 0 0)\n(llvm:symbol-entry __cxa_finalize 0 0 0 0)\n(llvm:symbol-entry __libc_start_main 0 0 0 0)\n(llvm:symbol-entry _init 1504 0 1504 1504)\n(llvm:symbol-entry set_seven 1980 20 1980 1980)\n(llvm:symbol-entry main 2000 172 2000 2000)\n(llvm:symbol-entry set_six 1960 20 1960 1960)\n(llvm:symbol-entry _start 1664 52 1664 1664)\n(llvm:symbol-entry set_two 1940 20 1940 1940)\n(llvm:symbol-entry abort@GLIBC_2.17 0 0 0 0)\n(llvm:symbol-entry _fini 2172 0 2172 2172)\n(llvm:symbol-entry __cxa_finalize@GLIBC_2.17 0 0 0 0)\n(llvm:symbol-entry __libc_start_main@GLIBC_2.34 0 0 0 0)\n(llvm:symbol-entry frame_dummy 1936 0 1936 1936)\n(llvm:symbol-entry __do_global_dtors_aux 1856 0 1856 1856)\n(llvm:symbol-entry register_tm_clones 1792 0 1792 1792)\n(llvm:symbol-entry deregister_tm_clones 1744 0 1744 1744)\n(llvm:symbol-entry call_weak_fn 1716 20 1716 1716)\n(mapped 0 2540 0)\n(mapped 69032 648 3496)\n(named-region 0 2540 02)\n(named-region 69032 656 03)\n(named-region 568 27 .interp)\n(named-region 596 36 .note.gnu.build-id)\n(named-region 632 32 .note.ABI-tag)\n(named-region 664 28 .gnu.hash)\n(named-region 696 216 .dynsym)\n(named-region 912 141 .dynstr)\n(named-region 1054 18 .gnu.version)\n(named-region 1072 48 .gnu.version_r)\n(named-region 1120 288 .rela.dyn)\n(named-region 1408 96 .rela.plt)\n(named-region 1504 24 .init)\n(named-region 1536 96 .plt)\n(named-region 1664 508 .text)\n(named-region 2172 20 .fini)\n(named-region 2192 4 .rodata)\n(named-region 2196 84 .eh_frame_hdr)\n(named-region 2280 260 .eh_frame)\n(named-region 69032 8 .init_array)\n(named-region 69040 8 .fini_array)\n(named-region 69048 480 .dynamic)\n(named-region 69528 80 .got)\n(named-region 69608 56 .got.plt)\n(named-region 69664 16 .data)\n(named-region 69680 8 .bss)\n(named-region 0 71 .comment)\n(named-region 0 2232 .symtab)\n(named-region 0 597 .strtab)\n(named-region 0 259 .shstrtab)\n(named-symbol 1716 call_weak_fn)\n(named-symbol 1744 deregister_tm_clones)\n(named-symbol 1792 register_tm_clones)\n(named-symbol 1856 __do_global_dtors_aux)\n(named-symbol 1936 frame_dummy)\n(named-symbol 0 __libc_start_main@GLIBC_2.34)\n(named-symbol 0 __cxa_finalize@GLIBC_2.17)\n(named-symbol 2172 _fini)\n(named-symbol 0 abort@GLIBC_2.17)\n(named-symbol 1940 set_two)\n(named-symbol 1664 _start)\n(named-symbol 1960 set_six)\n(named-symbol 2000 main)\n(named-symbol 1980 set_seven)\n(named-symbol 1504 _init)\n(named-symbol 0 __libc_start_main)\n(named-symbol 0 __cxa_finalize)\n(named-symbol 0 abort)\n(require libc.so.6)\n(section 568 27)\n(section 596 36)\n(section 632 32)\n(section 664 28)\n(section 696 216)\n(section 912 141)\n(section 1054 18)\n(section 1072 48)\n(section 1120 288)\n(section 1408 96)\n(section 1504 24)\n(section 1536 96)\n(section 1664 508)\n(section 2172 20)\n(section 2192 4)\n(section 2196 84)\n(section 2280 260)\n(section 69032 8)\n(section 69040 8)\n(section 69048 480)\n(section 69528 80)\n(section 69608 56)\n(section 69664 16)\n(section 69680 8)\n(section 0 71)\n(section 0 2232)\n(section 0 597)\n(section 0 259)\n(segment 0 2540 true false true)\n(segment 69032 656 true true false)\n(subarch v8)\n(symbol-chunk 1716 20 1716)\n(symbol-chunk 1940 20 1940)\n(symbol-chunk 1664 52 1664)\n(symbol-chunk 1960 20 1960)\n(symbol-chunk 2000 172 2000)\n(symbol-chunk 1980 20 1980)\n(symbol-value 1716 1716)\n(symbol-value 1744 1744)\n(symbol-value 1792 1792)\n(symbol-value 1856 1856)\n(symbol-value 1936 1936)\n(symbol-value 2172 2172)\n(symbol-value 1940 1940)\n(symbol-value 1664 1664)\n(symbol-value 1960 1960)\n(symbol-value 2000 2000)\n(symbol-value 1980 1980)\n(symbol-value 1504 1504)\n(symbol-value 0 0)\n(system \"\")\n(vendor \"\")\n"), -Attr("abi-name","\"aarch64-linux-gnu-elf\"")]), -Sections([Section(".shstrtab", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x80\x06\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x88\x1c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x38\x00\x09\x00\x40\x00\x1d\x00\x1c\x00\x06\x00\x00\x00\x04\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x04\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xec\x09\x00\x00\x00\x00\x00\x00\xec\x09\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x01\x00\x00\x00\x06\x00\x00\x00\xa8\x0d\x00\x00\x00\x00\x00\x00\xa8\x0d\x01\x00\x00\x00\x00\x00\xa8\x0d\x01"), -Section(".strtab", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x80\x06\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x88\x1c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x38\x00\x09\x00\x40\x00\x1d\x00\x1c\x00\x06\x00\x00\x00\x04\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x04\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xec\x09\x00\x00\x00\x00\x00\x00\xec\x09\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x01\x00\x00\x00\x06\x00\x00\x00\xa8\x0d\x00\x00\x00\x00\x00\x00\xa8\x0d\x01\x00\x00\x00\x00\x00\xa8\x0d\x01\x00\x00\x00\x00\x00\x88\x02\x00\x00\x00\x00\x00\x00\x90\x02\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x02\x00\x00\x00\x06\x00\x00\x00\xb8\x0d\x00\x00\x00\x00\x00\x00\xb8\x0d\x01\x00\x00\x00\x00\x00\xb8\x0d\x01\x00\x00\x00\x00\x00\xe0\x01\x00\x00\x00\x00\x00\x00\xe0\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x04\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x50\xe5\x74\x64\x04\x00\x00\x00\x94\x08\x00\x00\x00\x00\x00\x00\x94\x08\x00\x00\x00\x00\x00\x00\x94\x08\x00\x00\x00\x00\x00\x00\x54\x00\x00\x00\x00\x00\x00\x00\x54\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x51\xe5\x74\x64\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x52\xe5\x74\x64\x04\x00\x00\x00\xa8\x0d\x00\x00\x00\x00\x00\x00\xa8\x0d\x01\x00\x00\x00\x00\x00\xa8\x0d\x01\x00\x00\x00\x00\x00\x58\x02\x00\x00\x00\x00\x00\x00\x58\x02\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x2f\x6c\x69\x62\x2f\x6c\x64\x2d\x6c\x69\x6e\x75\x78\x2d\x61\x61\x72\x63\x68\x36\x34\x2e\x73\x6f\x2e\x31\x00\x00\x04"), -Section(".symtab", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x80\x06\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x88\x1c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x38\x00\x09\x00\x40\x00\x1d\x00\x1c\x00\x06\x00\x00\x00\x04\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x04\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xec\x09\x00\x00\x00\x00\x00\x00\xec\x09\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x01\x00\x00\x00\x06\x00\x00\x00\xa8\x0d\x00\x00\x00\x00\x00\x00\xa8\x0d\x01\x00\x00\x00\x00\x00\xa8\x0d\x01\x00\x00\x00\x00\x00\x88\x02\x00\x00\x00\x00\x00\x00\x90\x02\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x02\x00\x00\x00\x06\x00\x00\x00\xb8\x0d\x00\x00\x00\x00\x00\x00\xb8\x0d\x01\x00\x00\x00\x00\x00\xb8\x0d\x01\x00\x00\x00\x00\x00\xe0\x01\x00\x00\x00\x00\x00\x00\xe0\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x04\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x50\xe5\x74\x64\x04\x00\x00\x00\x94\x08\x00\x00\x00\x00\x00\x00\x94\x08\x00\x00\x00\x00\x00\x00\x94\x08\x00\x00\x00\x00\x00\x00\x54\x00\x00\x00\x00\x00\x00\x00\x54\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x51\xe5\x74\x64\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x52\xe5\x74\x64\x04\x00\x00\x00\xa8\x0d\x00\x00\x00\x00\x00\x00\xa8\x0d\x01\x00\x00\x00\x00\x00\xa8\x0d\x01\x00\x00\x00\x00\x00\x58\x02\x00\x00\x00\x00\x00\x00\x58\x02\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x2f\x6c\x69\x62\x2f\x6c\x64\x2d\x6c\x69\x6e\x75\x78\x2d\x61\x61\x72\x63\x68\x36\x34\x2e\x73\x6f\x2e\x31\x00\x00\x04\x00\x00\x00\x14\x00\x00\x00\x03\x00\x00\x00\x47\x4e\x55\x00\x2c\x18\xa9\xe2\x3f\x69\xc6\xc7\x33\x5d\xcc\x6b\x5d\xcd\xb0\x2b\xef\x8e\xc0\xc2\x04\x00\x00\x00\x10\x00\x00\x00\x01\x00\x00\x00\x47\x4e\x55\x00\x00\x00\x00\x00\x03\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x01\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x0b\x00\xe0\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x17\x00\x20\x10\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x48\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x22\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x22\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x73\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5f\x5f\x63\x78\x61\x5f\x66\x69\x6e\x61\x6c\x69\x7a\x65\x00\x5f\x5f\x6c\x69\x62\x63\x5f\x73\x74\x61\x72\x74\x5f\x6d\x61\x69\x6e\x00\x61\x62\x6f\x72\x74\x00\x6c\x69\x62\x63\x2e\x73\x6f\x2e\x36\x00\x47\x4c\x49\x42\x43\x5f\x32\x2e\x31\x37\x00\x47\x4c\x49\x42\x43\x5f\x32\x2e\x33\x34\x00\x5f\x49\x54\x4d\x5f\x64\x65\x72\x65\x67\x69\x73\x74\x65\x72\x54\x4d\x43\x6c\x6f\x6e\x65\x54\x61\x62\x6c\x65\x00\x5f\x5f\x67\x6d\x6f\x6e\x5f\x73\x74\x61\x72\x74\x5f\x5f\x00\x5f\x49\x54\x4d\x5f\x72\x65\x67\x69\x73\x74\x65\x72\x54\x4d\x43\x6c\x6f\x6e\x65\x54\x61\x62\x6c\x65\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x01\x00\x03\x00\x01\x00\x03\x00\x01\x00\x01\x00\x02\x00\x28\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x97\x91\x96\x06\x00\x00\x03\x00\x32\x00\x00\x00\x10\x00\x00\x00\xb4\x91\x96\x06\x00\x00\x02\x00\x3d\x00\x00\x00\x00\x00\x00\x00\xa8\x0d\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x90\x07\x00\x00\x00\x00\x00\x00\xb0\x0d\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x40\x07\x00\x00\x00\x00\x00\x00\xb0\x0f\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x34\x10\x01\x00\x00\x00\x00\x00\xc0\x0f\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x94\x07\x00\x00\x00\x00\x00\x00\xc8\x0f\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\xa8\x07\x00\x00\x00\x00\x00\x00\xd0\x0f\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\xd0\x07\x00\x00\x00\x00\x00\x00\xd8\x0f\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\xbc\x07\x00\x00\x00\x00\x00\x00\x28\x10\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x28\x10\x01\x00\x00\x00\x00\x00\xa0\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xa8\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xb8\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe0\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x08\x10\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x10\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x18\x10\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1f\x20\x03\xd5\xfd\x7b\xbf\xa9\xfd\x03\x00\x91\x32\x00\x00\x94\xfd\x7b\xc1\xa8\xc0\x03\x5f\xd6\x00\x00\x00\x00\x00\x00\x00\x00\xf0\x7b\xbf\xa9\x90\x00\x00\x90\x11\xfe\x47\xf9\x10\xe2\x3f\x91\x20\x02\x1f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x90\x00\x00\xb0\x11\x02\x40\xf9\x10\x02\x00\x91\x20\x02\x1f\xd6\x90\x00\x00\xb0\x11\x06\x40\xf9\x10\x22\x00\x91\x20\x02\x1f\xd6\x90\x00\x00\xb0\x11\x0a\x40\xf9\x10\x42\x00\x91\x20\x02\x1f\xd6\x90\x00\x00\xb0\x11\x0e\x40\xf9\x10\x62\x00\x91\x20\x02\x1f\xd6\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1f\x20\x03\xd5\x1d\x00\x80\xd2\x1e\x00\x80\xd2\xe5\x03\x00\xaa\xe1\x03\x40\xf9\xe2\x23\x00\x91\xe6\x03\x00\x91\x80\x00\x00\x90\x00\xe8\x47\xf9\x03\x00\x80\xd2\x04\x00\x80\xd2\xdd\xff\xff\x97\xe8\xff\xff\x97\x80\x00\x00\x90\x00\xdc\x47\xf9\x40\x00\x00\xb4\xe0\xff\xff\x17\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x80\x00\x00\xb0\x00\xc0\x00\x91\x81\x00\x00\xb0\x21\xc0\x00\x91\x3f\x00\x00\xeb\xc0\x00\x00\x54\x81\x00\x00\x90\x21\xd0\x47\xf9\x61\x00\x00\xb4\xf0\x03\x01\xaa\x00\x02\x1f\xd6\xc0\x03\x5f\xd6\x80\x00\x00\xb0\x00\xc0\x00\x91\x81\x00\x00\xb0\x21\xc0\x00\x91\x21\x00\x00\xcb\x22\xfc\x7f\xd3\x41\x0c\x81\x8b\x21\xfc\x41\x93\xc1\x00\x00\xb4\x82\x00\x00\x90\x42\xf0\x47\xf9\x62\x00\x00\xb4\xf0\x03\x02\xaa\x00\x02\x1f\xd6\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\xfd\x7b\xbe\xa9\xfd\x03\x00\x91\xf3\x0b\x00\xf9\x93\x00\x00\xb0\x60\xc2\x40\x39\x40\x01\x00\x35\x80\x00\x00\x90\x00\xd4\x47\xf9\x80\x00\x00\xb4\x80\x00\x00\xb0\x00\x14\x40\xf9\xb1\xff\xff\x97\xd8\xff\xff\x97\x20\x00\x80\x52\x60\xc2\x00\x39\xf3\x0b\x40\xf9\xfd\x7b\xc2\xa8\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\xdc\xff\xff\x17\x89\x00\x00\x90\x29\xd9\x47\xf9\x48\x00\x80\x52\x28\x01\x00\xb9\xc0\x03\x5f\xd6\x89\x00\x00\x90\x29\xd9\x47\xf9\xc8\x00\x80\x52\x28\x01\x00\xb9\xc0\x03\x5f\xd6\x89\x00\x00\x90\x29\xd9\x47\xf9\xe8\x00\x80\x52\x28\x01\x00\xb9\xc0\x03\x5f\xd6\xff\xc3\x00\xd1\xfd\x7b\x02\xa9\xfd\x83\x00\x91\xbf\xc3\x1f\xb8\xa0\x83\x1f\xb8\xa8\x83\x5f\xb8\xe8\x0f\x00\xb9\x08\x01\x00\x71\xe8\x17\x9f\x1a\x88\x01\x00\x37\x01\x00\x00\x14\xe8\x0f\x40\xb9\x08\x05\x00\x71\xe8\x17\x9f\x1a\x68\x01\x00\x37\x01\x00\x00\x14\xe8\x0f\x40\xb9\x08\x09\x00\x71\xe8\x17\x9f\x1a\x48\x01\x00\x37\x0d\x00\x00\x14\x88\x00\x00\x90\x08\xe1\x47\xf9\xe8\x0b\x00\xf9\x0d\x00\x00\x14\x88\x00\x00\x90\x08\xe5\x47\xf9\xe8\x0b\x00\xf9\x09\x00\x00\x14\x88\x00\x00\x90\x08\xed\x47\xf9\xe8\x0b\x00\xf9\x05\x00\x00\x14\x88\x00\x00\x90\x08\xe1\x47\xf9\xe8\x0b\x00\xf9\x01\x00\x00\x14\xe8\x0b\x40\xf9\x00\x01\x3f\xd6\xe0\x03\x1f\x2a\xfd\x7b\x42\xa9\xff\xc3\x00\x91\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\xfd\x7b\xbf\xa9\xfd\x03\x00\x91\xfd\x7b\xc1\xa8\xc0\x03\x5f\xd6\x01\x00\x02\x00\x01\x1b\x03\x3b\x50\x00\x00\x00\x09\x00\x00\x00\xec\xfd\xff\xff\x68\x00\x00\x00\x3c\xfe\xff\xff\x7c\x00\x00\x00\x6c\xfe\xff\xff\x90\x00\x00\x00"), -Section(".comment", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x80\x06\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x88\x1c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x38\x00\x09\x00\x40\x00\x1d\x00\x1c\x00\x06\x00\x00\x00\x04\x00\x00"), -Section(".interp", 0x238, "\x2f\x6c\x69\x62\x2f\x6c\x64\x2d\x6c\x69\x6e\x75\x78\x2d\x61\x61\x72\x63\x68\x36\x34\x2e\x73\x6f\x2e\x31\x00"), -Section(".note.gnu.build-id", 0x254, "\x04\x00\x00\x00\x14\x00\x00\x00\x03\x00\x00\x00\x47\x4e\x55\x00\x2c\x18\xa9\xe2\x3f\x69\xc6\xc7\x33\x5d\xcc\x6b\x5d\xcd\xb0\x2b\xef\x8e\xc0\xc2"), -Section(".note.ABI-tag", 0x278, "\x04\x00\x00\x00\x10\x00\x00\x00\x01\x00\x00\x00\x47\x4e\x55\x00\x00\x00\x00\x00\x03\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00"), -Section(".gnu.hash", 0x298, "\x01\x00\x00\x00\x01\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".dynsym", 0x2B8, "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x0b\x00\xe0\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x17\x00\x20\x10\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x48\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x22\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x22\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x73\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".dynstr", 0x390, "\x00\x5f\x5f\x63\x78\x61\x5f\x66\x69\x6e\x61\x6c\x69\x7a\x65\x00\x5f\x5f\x6c\x69\x62\x63\x5f\x73\x74\x61\x72\x74\x5f\x6d\x61\x69\x6e\x00\x61\x62\x6f\x72\x74\x00\x6c\x69\x62\x63\x2e\x73\x6f\x2e\x36\x00\x47\x4c\x49\x42\x43\x5f\x32\x2e\x31\x37\x00\x47\x4c\x49\x42\x43\x5f\x32\x2e\x33\x34\x00\x5f\x49\x54\x4d\x5f\x64\x65\x72\x65\x67\x69\x73\x74\x65\x72\x54\x4d\x43\x6c\x6f\x6e\x65\x54\x61\x62\x6c\x65\x00\x5f\x5f\x67\x6d\x6f\x6e\x5f\x73\x74\x61\x72\x74\x5f\x5f\x00\x5f\x49\x54\x4d\x5f\x72\x65\x67\x69\x73\x74\x65\x72\x54\x4d\x43\x6c\x6f\x6e\x65\x54\x61\x62\x6c\x65\x00"), -Section(".gnu.version", 0x41E, "\x00\x00\x00\x00\x00\x00\x02\x00\x01\x00\x03\x00\x01\x00\x03\x00\x01\x00"), -Section(".gnu.version_r", 0x430, "\x01\x00\x02\x00\x28\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x97\x91\x96\x06\x00\x00\x03\x00\x32\x00\x00\x00\x10\x00\x00\x00\xb4\x91\x96\x06\x00\x00\x02\x00\x3d\x00\x00\x00\x00\x00\x00\x00"), -Section(".rela.dyn", 0x460, "\xa8\x0d\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x90\x07\x00\x00\x00\x00\x00\x00\xb0\x0d\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x40\x07\x00\x00\x00\x00\x00\x00\xb0\x0f\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x34\x10\x01\x00\x00\x00\x00\x00\xc0\x0f\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x94\x07\x00\x00\x00\x00\x00\x00\xc8\x0f\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\xa8\x07\x00\x00\x00\x00\x00\x00\xd0\x0f\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\xd0\x07\x00\x00\x00\x00\x00\x00\xd8\x0f\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\xbc\x07\x00\x00\x00\x00\x00\x00\x28\x10\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x28\x10\x01\x00\x00\x00\x00\x00\xa0\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xa8\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xb8\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe0\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".rela.plt", 0x580, "\x00\x10\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x08\x10\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x10\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x18\x10\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".init", 0x5E0, "\x1f\x20\x03\xd5\xfd\x7b\xbf\xa9\xfd\x03\x00\x91\x32\x00\x00\x94\xfd\x7b\xc1\xa8\xc0\x03\x5f\xd6"), -Section(".plt", 0x600, "\xf0\x7b\xbf\xa9\x90\x00\x00\x90\x11\xfe\x47\xf9\x10\xe2\x3f\x91\x20\x02\x1f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x90\x00\x00\xb0\x11\x02\x40\xf9\x10\x02\x00\x91\x20\x02\x1f\xd6\x90\x00\x00\xb0\x11\x06\x40\xf9\x10\x22\x00\x91\x20\x02\x1f\xd6\x90\x00\x00\xb0\x11\x0a\x40\xf9\x10\x42\x00\x91\x20\x02\x1f\xd6\x90\x00\x00\xb0\x11\x0e\x40\xf9\x10\x62\x00\x91\x20\x02\x1f\xd6"), -Section(".text", 0x680, "\x1f\x20\x03\xd5\x1d\x00\x80\xd2\x1e\x00\x80\xd2\xe5\x03\x00\xaa\xe1\x03\x40\xf9\xe2\x23\x00\x91\xe6\x03\x00\x91\x80\x00\x00\x90\x00\xe8\x47\xf9\x03\x00\x80\xd2\x04\x00\x80\xd2\xdd\xff\xff\x97\xe8\xff\xff\x97\x80\x00\x00\x90\x00\xdc\x47\xf9\x40\x00\x00\xb4\xe0\xff\xff\x17\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x80\x00\x00\xb0\x00\xc0\x00\x91\x81\x00\x00\xb0\x21\xc0\x00\x91\x3f\x00\x00\xeb\xc0\x00\x00\x54\x81\x00\x00\x90\x21\xd0\x47\xf9\x61\x00\x00\xb4\xf0\x03\x01\xaa\x00\x02\x1f\xd6\xc0\x03\x5f\xd6\x80\x00\x00\xb0\x00\xc0\x00\x91\x81\x00\x00\xb0\x21\xc0\x00\x91\x21\x00\x00\xcb\x22\xfc\x7f\xd3\x41\x0c\x81\x8b\x21\xfc\x41\x93\xc1\x00\x00\xb4\x82\x00\x00\x90\x42\xf0\x47\xf9\x62\x00\x00\xb4\xf0\x03\x02\xaa\x00\x02\x1f\xd6\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\xfd\x7b\xbe\xa9\xfd\x03\x00\x91\xf3\x0b\x00\xf9\x93\x00\x00\xb0\x60\xc2\x40\x39\x40\x01\x00\x35\x80\x00\x00\x90\x00\xd4\x47\xf9\x80\x00\x00\xb4\x80\x00\x00\xb0\x00\x14\x40\xf9\xb1\xff\xff\x97\xd8\xff\xff\x97\x20\x00\x80\x52\x60\xc2\x00\x39\xf3\x0b\x40\xf9\xfd\x7b\xc2\xa8\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\xdc\xff\xff\x17\x89\x00\x00\x90\x29\xd9\x47\xf9\x48\x00\x80\x52\x28\x01\x00\xb9\xc0\x03\x5f\xd6\x89\x00\x00\x90\x29\xd9\x47\xf9\xc8\x00\x80\x52\x28\x01\x00\xb9\xc0\x03\x5f\xd6\x89\x00\x00\x90\x29\xd9\x47\xf9\xe8\x00\x80\x52\x28\x01\x00\xb9\xc0\x03\x5f\xd6\xff\xc3\x00\xd1\xfd\x7b\x02\xa9\xfd\x83\x00\x91\xbf\xc3\x1f\xb8\xa0\x83\x1f\xb8\xa8\x83\x5f\xb8\xe8\x0f\x00\xb9\x08\x01\x00\x71\xe8\x17\x9f\x1a\x88\x01\x00\x37\x01\x00\x00\x14\xe8\x0f\x40\xb9\x08\x05\x00\x71\xe8\x17\x9f\x1a\x68\x01\x00\x37\x01\x00\x00\x14\xe8\x0f\x40\xb9\x08\x09\x00\x71\xe8\x17\x9f\x1a\x48\x01\x00\x37\x0d\x00\x00\x14\x88\x00\x00\x90\x08\xe1\x47\xf9\xe8\x0b\x00\xf9\x0d\x00\x00\x14\x88\x00\x00\x90\x08\xe5\x47\xf9\xe8\x0b\x00\xf9\x09\x00\x00\x14\x88\x00\x00\x90\x08\xed\x47\xf9\xe8\x0b\x00\xf9\x05\x00\x00\x14\x88\x00\x00\x90\x08\xe1\x47\xf9\xe8\x0b\x00\xf9\x01\x00\x00\x14\xe8\x0b\x40\xf9\x00\x01\x3f\xd6\xe0\x03\x1f\x2a\xfd\x7b\x42\xa9\xff\xc3\x00\x91\xc0\x03\x5f\xd6"), -Section(".fini", 0x87C, "\x1f\x20\x03\xd5\xfd\x7b\xbf\xa9\xfd\x03\x00\x91\xfd\x7b\xc1\xa8\xc0\x03\x5f\xd6"), -Section(".rodata", 0x890, "\x01\x00\x02\x00"), -Section(".eh_frame_hdr", 0x894, "\x01\x1b\x03\x3b\x50\x00\x00\x00\x09\x00\x00\x00\xec\xfd\xff\xff\x68\x00\x00\x00\x3c\xfe\xff\xff\x7c\x00\x00\x00\x6c\xfe\xff\xff\x90\x00\x00\x00\xac\xfe\xff\xff\xa4\x00\x00\x00\xfc\xfe\xff\xff\xc8\x00\x00\x00\x00\xff\xff\xff\xf0\x00\x00\x00\x14\xff\xff\xff\x04\x01\x00\x00\x28\xff\xff\xff\x18\x01\x00\x00\x3c\xff\xff\xff\x2c\x01\x00\x00"), -Section(".eh_frame", 0x8E8, "\x10\x00\x00\x00\x00\x00\x00\x00\x01\x7a\x52\x00\x04\x78\x1e\x01\x1b\x0c\x1f\x00\x10\x00\x00\x00\x18\x00\x00\x00\x7c\xfd\xff\xff\x34\x00\x00\x00\x00\x41\x07\x1e\x10\x00\x00\x00\x2c\x00\x00\x00\xb8\xfd\xff\xff\x30\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x40\x00\x00\x00\xd4\xfd\xff\xff\x3c\x00\x00\x00\x00\x00\x00\x00\x20\x00\x00\x00\x54\x00\x00\x00\x00\xfe\xff\xff\x48\x00\x00\x00\x00\x41\x0e\x20\x9d\x04\x9e\x03\x42\x93\x02\x4e\xde\xdd\xd3\x0e\x00\x00\x00\x00\x10\x00\x00\x00\x78\x00\x00\x00\x2c\xfe\xff\xff\x04\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x01\x7a\x52\x00\x01\x7c\x1e\x01\x1b\x0c\x1f\x00\x10\x00\x00\x00\x18\x00\x00\x00\x08\xfe\xff\xff\x14\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x2c\x00\x00\x00\x08\xfe\xff\xff\x14\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x40\x00\x00\x00\x08\xfe\xff\xff\x14\x00\x00\x00\x00\x00\x00\x00\x24\x00\x00\x00\x54\x00\x00\x00\x08\xfe\xff\xff\xac\x00\x00\x00\x00\x44\x0e\x30\x48\x0c\x1d\x10\x9e\x02\x9d\x04\x02\x94\x0c\x1f\x30\x48\x0e\x00\xde\xdd\x00\x00\x00\x00\x00\x00"), -Section(".fini_array", 0x10DB0, "\x40\x07\x00\x00\x00\x00\x00\x00"), -Section(".dynamic", 0x10DB8, "\x01\x00\x00\x00\x00\x00\x00\x00\x28\x00\x00\x00\x00\x00\x00\x00\x0c\x00\x00\x00\x00\x00\x00\x00\xe0\x05\x00\x00\x00\x00\x00\x00\x0d\x00\x00\x00\x00\x00\x00\x00\x7c\x08\x00\x00\x00\x00\x00\x00\x19\x00\x00\x00\x00\x00\x00\x00\xa8\x0d\x01\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x1a\x00\x00\x00\x00\x00\x00\x00\xb0\x0d\x01\x00\x00\x00\x00\x00\x1c\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\xf5\xfe\xff\x6f\x00\x00\x00\x00\x98\x02\x00\x00\x00\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x90\x03\x00\x00\x00\x00\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\xb8\x02\x00\x00\x00\x00\x00\x00\x0a\x00\x00\x00\x00\x00\x00\x00\x8d\x00\x00\x00\x00\x00\x00\x00\x0b\x00\x00\x00\x00\x00\x00\x00\x18\x00\x00\x00\x00\x00\x00\x00\x15\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\xe8\x0f\x01\x00\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x60\x00\x00\x00\x00\x00\x00\x00\x14\x00\x00\x00\x00\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x17\x00\x00\x00\x00\x00\x00\x00\x80\x05\x00\x00\x00\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x60\x04\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x20\x01\x00\x00\x00\x00\x00\x00\x09\x00\x00\x00\x00\x00\x00\x00\x18\x00\x00\x00\x00\x00\x00\x00\xfb\xff\xff\x6f\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\xfe\xff\xff\x6f\x00\x00\x00\x00\x30\x04\x00\x00\x00\x00\x00\x00\xff\xff\xff\x6f\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\xf0\xff\xff\x6f\x00\x00\x00\x00\x1e\x04\x00\x00\x00\x00\x00\x00\xf9\xff\xff\x6f\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".got", 0x10F98, "\xb8\x0d\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x34\x10\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x94\x07\x00\x00\x00\x00\x00\x00\xa8\x07\x00\x00\x00\x00\x00\x00\xd0\x07\x00\x00\x00\x00\x00\x00\xbc\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".got.plt", 0x10FE8, "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x06\x00\x00\x00\x00\x00\x00"), -Section(".data", 0x11020, "\x00\x00\x00\x00\x00\x00\x00\x00\x28\x10\x01\x00\x00\x00\x00\x00"), -Section(".init_array", 0x10DA8, "\x90\x07\x00\x00\x00\x00\x00\x00")]), -Memmap([Annotation(Region(0x0,0x9EB), Attr("segment","02 0 2540")), -Annotation(Region(0x680,0x6B3), Attr("symbol","\"_start\"")), -Annotation(Region(0x0,0x102), Attr("section","\".shstrtab\"")), -Annotation(Region(0x0,0x254), Attr("section","\".strtab\"")), -Annotation(Region(0x0,0x8B7), Attr("section","\".symtab\"")), -Annotation(Region(0x0,0x46), Attr("section","\".comment\"")), -Annotation(Region(0x238,0x252), Attr("section","\".interp\"")), -Annotation(Region(0x254,0x277), Attr("section","\".note.gnu.build-id\"")), -Annotation(Region(0x278,0x297), Attr("section","\".note.ABI-tag\"")), -Annotation(Region(0x298,0x2B3), Attr("section","\".gnu.hash\"")), -Annotation(Region(0x2B8,0x38F), Attr("section","\".dynsym\"")), -Annotation(Region(0x390,0x41C), Attr("section","\".dynstr\"")), -Annotation(Region(0x41E,0x42F), Attr("section","\".gnu.version\"")), -Annotation(Region(0x430,0x45F), Attr("section","\".gnu.version_r\"")), -Annotation(Region(0x460,0x57F), Attr("section","\".rela.dyn\"")), -Annotation(Region(0x580,0x5DF), Attr("section","\".rela.plt\"")), -Annotation(Region(0x5E0,0x5F7), Attr("section","\".init\"")), -Annotation(Region(0x600,0x65F), Attr("section","\".plt\"")), -Annotation(Region(0x5E0,0x5F7), Attr("code-region","()")), -Annotation(Region(0x600,0x65F), Attr("code-region","()")), -Annotation(Region(0x680,0x6B3), Attr("symbol-info","_start 0x680 52")), -Annotation(Region(0x6B4,0x6C7), Attr("symbol","\"call_weak_fn\"")), -Annotation(Region(0x6B4,0x6C7), Attr("symbol-info","call_weak_fn 0x6B4 20")), -Annotation(Region(0x794,0x7A7), Attr("symbol","\"set_two\"")), -Annotation(Region(0x794,0x7A7), Attr("symbol-info","set_two 0x794 20")), -Annotation(Region(0x7A8,0x7BB), Attr("symbol","\"set_six\"")), -Annotation(Region(0x7A8,0x7BB), Attr("symbol-info","set_six 0x7A8 20")), -Annotation(Region(0x7BC,0x7CF), Attr("symbol","\"set_seven\"")), -Annotation(Region(0x680,0x87B), Attr("section","\".text\"")), -Annotation(Region(0x680,0x87B), Attr("code-region","()")), -Annotation(Region(0x7BC,0x7CF), Attr("symbol-info","set_seven 0x7BC 20")), -Annotation(Region(0x7D0,0x87B), Attr("symbol","\"main\"")), -Annotation(Region(0x7D0,0x87B), Attr("symbol-info","main 0x7D0 172")), -Annotation(Region(0x87C,0x88F), Attr("section","\".fini\"")), -Annotation(Region(0x87C,0x88F), Attr("code-region","()")), -Annotation(Region(0x890,0x893), Attr("section","\".rodata\"")), -Annotation(Region(0x894,0x8E7), Attr("section","\".eh_frame_hdr\"")), -Annotation(Region(0x8E8,0x9EB), Attr("section","\".eh_frame\"")), -Annotation(Region(0x10DA8,0x1102F), Attr("segment","03 0x10DA8 656")), -Annotation(Region(0x10DB0,0x10DB7), Attr("section","\".fini_array\"")), -Annotation(Region(0x10DB8,0x10F97), Attr("section","\".dynamic\"")), -Annotation(Region(0x10F98,0x10FE7), Attr("section","\".got\"")), -Annotation(Region(0x10FE8,0x1101F), Attr("section","\".got.plt\"")), -Annotation(Region(0x11020,0x1102F), Attr("section","\".data\"")), -Annotation(Region(0x10DA8,0x10DAF), Attr("section","\".init_array\""))]), -Program(Tid(2_029, "%000007ed"), Attrs([]), - Subs([Sub(Tid(1_967, "@__cxa_finalize"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x630"), -Attr("stub","()")]), "__cxa_finalize", Args([Arg(Tid(2_030, "%000007ee"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("__cxa_finalize_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(1_438, "@__cxa_finalize"), - Attrs([Attr("address","0x630")]), Phis([]), -Defs([Def(Tid(1_686, "%00000696"), Attrs([Attr("address","0x630"), -Attr("insn","adrp x16, #69632")]), Var("R16",Imm(64)), Int(69632,64)), -Def(Tid(1_693, "%0000069d"), Attrs([Attr("address","0x634"), -Attr("insn","ldr x17, [x16, #0x8]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(1_699, "%000006a3"), Attrs([Attr("address","0x638"), -Attr("insn","add x16, x16, #0x8")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(8,64)))]), Jmps([Call(Tid(1_704, "%000006a8"), - Attrs([Attr("address","0x63C"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), -Sub(Tid(1_968, "@__do_global_dtors_aux"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x740")]), - "__do_global_dtors_aux", Args([Arg(Tid(2_031, "%000007ef"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("__do_global_dtors_aux_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(822, "@__do_global_dtors_aux"), - Attrs([Attr("address","0x740")]), Phis([]), Defs([Def(Tid(826, "%0000033a"), - Attrs([Attr("address","0x740"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("#3",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(18446744073709551584,64))), -Def(Tid(832, "%00000340"), Attrs([Attr("address","0x740"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("#3",Imm(64)),Var("R29",Imm(64)),LittleEndian(),64)), -Def(Tid(838, "%00000346"), Attrs([Attr("address","0x740"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("#3",Imm(64)),Int(8,64)),Var("R30",Imm(64)),LittleEndian(),64)), -Def(Tid(842, "%0000034a"), Attrs([Attr("address","0x740"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("R31",Imm(64)), -Var("#3",Imm(64))), Def(Tid(848, "%00000350"), - Attrs([Attr("address","0x744"), Attr("insn","mov x29, sp")]), - Var("R29",Imm(64)), Var("R31",Imm(64))), Def(Tid(856, "%00000358"), - Attrs([Attr("address","0x748"), Attr("insn","str x19, [sp, #0x10]")]), - Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(16,64)),Var("R19",Imm(64)),LittleEndian(),64)), -Def(Tid(861, "%0000035d"), Attrs([Attr("address","0x74C"), -Attr("insn","adrp x19, #69632")]), Var("R19",Imm(64)), Int(69632,64)), -Def(Tid(868, "%00000364"), Attrs([Attr("address","0x750"), -Attr("insn","ldrb w0, [x19, #0x30]")]), Var("R0",Imm(64)), -UNSIGNED(64,Load(Var("mem",Mem(64,8)),PLUS(Var("R19",Imm(64)),Int(48,64)),LittleEndian(),8)))]), -Jmps([Goto(Tid(875, "%0000036b"), Attrs([Attr("address","0x754"), -Attr("insn","cbnz w0, #0x28")]), - NEQ(Extract(31,0,Var("R0",Imm(64))),Int(0,32)), -Direct(Tid(873, "%00000369"))), Goto(Tid(2_016, "%000007e0"), Attrs([]), - Int(1,1), Direct(Tid(1_383, "%00000567")))])), Blk(Tid(1_383, "%00000567"), - Attrs([Attr("address","0x758")]), Phis([]), -Defs([Def(Tid(1_386, "%0000056a"), Attrs([Attr("address","0x758"), -Attr("insn","adrp x0, #65536")]), Var("R0",Imm(64)), Int(65536,64)), -Def(Tid(1_393, "%00000571"), Attrs([Attr("address","0x75C"), -Attr("insn","ldr x0, [x0, #0xfa8]")]), Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(4008,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(1_399, "%00000577"), Attrs([Attr("address","0x760"), -Attr("insn","cbz x0, #0x10")]), EQ(Var("R0",Imm(64)),Int(0,64)), -Direct(Tid(1_397, "%00000575"))), Goto(Tid(2_017, "%000007e1"), Attrs([]), - Int(1,1), Direct(Tid(1_422, "%0000058e")))])), Blk(Tid(1_422, "%0000058e"), - Attrs([Attr("address","0x764")]), Phis([]), -Defs([Def(Tid(1_425, "%00000591"), Attrs([Attr("address","0x764"), -Attr("insn","adrp x0, #69632")]), Var("R0",Imm(64)), Int(69632,64)), -Def(Tid(1_432, "%00000598"), Attrs([Attr("address","0x768"), -Attr("insn","ldr x0, [x0, #0x28]")]), Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(40,64)),LittleEndian(),64)), -Def(Tid(1_437, "%0000059d"), Attrs([Attr("address","0x76C"), -Attr("insn","bl #-0x13c")]), Var("R30",Imm(64)), Int(1904,64))]), -Jmps([Call(Tid(1_440, "%000005a0"), Attrs([Attr("address","0x76C"), -Attr("insn","bl #-0x13c")]), Int(1,1), -(Direct(Tid(1_967, "@__cxa_finalize")),Direct(Tid(1_397, "%00000575"))))])), -Blk(Tid(1_397, "%00000575"), Attrs([Attr("address","0x770")]), Phis([]), -Defs([Def(Tid(1_405, "%0000057d"), Attrs([Attr("address","0x770"), -Attr("insn","bl #-0xa0")]), Var("R30",Imm(64)), Int(1908,64))]), -Jmps([Call(Tid(1_407, "%0000057f"), Attrs([Attr("address","0x770"), -Attr("insn","bl #-0xa0")]), Int(1,1), -(Direct(Tid(1_981, "@deregister_tm_clones")),Direct(Tid(1_409, "%00000581"))))])), -Blk(Tid(1_409, "%00000581"), Attrs([Attr("address","0x774")]), Phis([]), -Defs([Def(Tid(1_412, "%00000584"), Attrs([Attr("address","0x774"), -Attr("insn","mov w0, #0x1")]), Var("R0",Imm(64)), Int(1,64)), -Def(Tid(1_420, "%0000058c"), Attrs([Attr("address","0x778"), -Attr("insn","strb w0, [x19, #0x30]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R19",Imm(64)),Int(48,64)),Extract(7,0,Var("R0",Imm(64))),LittleEndian(),8))]), -Jmps([Goto(Tid(2_018, "%000007e2"), Attrs([]), Int(1,1), -Direct(Tid(873, "%00000369")))])), Blk(Tid(873, "%00000369"), - Attrs([Attr("address","0x77C")]), Phis([]), Defs([Def(Tid(883, "%00000373"), - Attrs([Attr("address","0x77C"), Attr("insn","ldr x19, [sp, #0x10]")]), - Var("R19",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(16,64)),LittleEndian(),64)), -Def(Tid(890, "%0000037a"), Attrs([Attr("address","0x780"), -Attr("insn","ldp x29, x30, [sp], #0x20")]), Var("R29",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(895, "%0000037f"), Attrs([Attr("address","0x780"), -Attr("insn","ldp x29, x30, [sp], #0x20")]), Var("R30",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(899, "%00000383"), Attrs([Attr("address","0x780"), -Attr("insn","ldp x29, x30, [sp], #0x20")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(32,64)))]), Jmps([Call(Tid(904, "%00000388"), - Attrs([Attr("address","0x784"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), Sub(Tid(1_972, "@__libc_start_main"), - Attrs([Attr("c.proto","signed (*)(signed (*)(signed , char** , char** );* main, signed , char** , \nvoid* auxv)"), -Attr("address","0x620"), Attr("stub","()")]), "__libc_start_main", - Args([Arg(Tid(2_032, "%000007f0"), - Attrs([Attr("c.layout","**[ : 64]"), -Attr("c.data","Top:u64 ptr ptr"), -Attr("c.type","signed (*)(signed , char** , char** );*")]), - Var("__libc_start_main_main",Imm(64)), Var("R0",Imm(64)), In()), -Arg(Tid(2_033, "%000007f1"), Attrs([Attr("c.layout","[signed : 32]"), -Attr("c.data","Top:u32"), Attr("c.type","signed")]), - Var("__libc_start_main_arg2",Imm(32)), LOW(32,Var("R1",Imm(64))), In()), -Arg(Tid(2_034, "%000007f2"), Attrs([Attr("c.layout","**[char : 8]"), -Attr("c.data","Top:u8 ptr ptr"), Attr("c.type","char**")]), - Var("__libc_start_main_arg3",Imm(64)), Var("R2",Imm(64)), Both()), -Arg(Tid(2_035, "%000007f3"), Attrs([Attr("c.layout","*[ : 8]"), -Attr("c.data","{} ptr"), Attr("c.type","void*")]), - Var("__libc_start_main_auxv",Imm(64)), Var("R3",Imm(64)), Both()), -Arg(Tid(2_036, "%000007f4"), Attrs([Attr("c.layout","[signed : 32]"), -Attr("c.data","Top:u32"), Attr("c.type","signed")]), - Var("__libc_start_main_result",Imm(32)), LOW(32,Var("R0",Imm(64))), -Out())]), Blks([Blk(Tid(655, "@__libc_start_main"), - Attrs([Attr("address","0x620")]), Phis([]), -Defs([Def(Tid(1_664, "%00000680"), Attrs([Attr("address","0x620"), -Attr("insn","adrp x16, #69632")]), Var("R16",Imm(64)), Int(69632,64)), -Def(Tid(1_671, "%00000687"), Attrs([Attr("address","0x624"), -Attr("insn","ldr x17, [x16]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R16",Imm(64)),LittleEndian(),64)), -Def(Tid(1_677, "%0000068d"), Attrs([Attr("address","0x628"), -Attr("insn","add x16, x16, #0x0")]), Var("R16",Imm(64)), -Var("R16",Imm(64)))]), Jmps([Call(Tid(1_682, "%00000692"), - Attrs([Attr("address","0x62C"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), Sub(Tid(1_973, "@_fini"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x87C")]), - "_fini", Args([Arg(Tid(2_037, "%000007f5"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("_fini_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(31, "@_fini"), - Attrs([Attr("address","0x87C")]), Phis([]), Defs([Def(Tid(37, "%00000025"), - Attrs([Attr("address","0x880"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("#0",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(18446744073709551600,64))), -Def(Tid(43, "%0000002b"), Attrs([Attr("address","0x880"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("#0",Imm(64)),Var("R29",Imm(64)),LittleEndian(),64)), -Def(Tid(49, "%00000031"), Attrs([Attr("address","0x880"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("#0",Imm(64)),Int(8,64)),Var("R30",Imm(64)),LittleEndian(),64)), -Def(Tid(53, "%00000035"), Attrs([Attr("address","0x880"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("R31",Imm(64)), -Var("#0",Imm(64))), Def(Tid(59, "%0000003b"), Attrs([Attr("address","0x884"), -Attr("insn","mov x29, sp")]), Var("R29",Imm(64)), Var("R31",Imm(64))), -Def(Tid(66, "%00000042"), Attrs([Attr("address","0x888"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R29",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(71, "%00000047"), Attrs([Attr("address","0x888"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R30",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(75, "%0000004b"), Attrs([Attr("address","0x888"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(16,64)))]), Jmps([Call(Tid(80, "%00000050"), - Attrs([Attr("address","0x88C"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), Sub(Tid(1_974, "@_init"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x5E0")]), - "_init", Args([Arg(Tid(2_038, "%000007f6"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("_init_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(1_776, "@_init"), - Attrs([Attr("address","0x5E0")]), Phis([]), -Defs([Def(Tid(1_782, "%000006f6"), Attrs([Attr("address","0x5E4"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("#10",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(18446744073709551600,64))), -Def(Tid(1_788, "%000006fc"), Attrs([Attr("address","0x5E4"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("#10",Imm(64)),Var("R29",Imm(64)),LittleEndian(),64)), -Def(Tid(1_794, "%00000702"), Attrs([Attr("address","0x5E4"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("#10",Imm(64)),Int(8,64)),Var("R30",Imm(64)),LittleEndian(),64)), -Def(Tid(1_798, "%00000706"), Attrs([Attr("address","0x5E4"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("R31",Imm(64)), -Var("#10",Imm(64))), Def(Tid(1_804, "%0000070c"), - Attrs([Attr("address","0x5E8"), Attr("insn","mov x29, sp")]), - Var("R29",Imm(64)), Var("R31",Imm(64))), Def(Tid(1_809, "%00000711"), - Attrs([Attr("address","0x5EC"), Attr("insn","bl #0xc8")]), - Var("R30",Imm(64)), Int(1520,64))]), Jmps([Call(Tid(1_811, "%00000713"), - Attrs([Attr("address","0x5EC"), Attr("insn","bl #0xc8")]), Int(1,1), -(Direct(Tid(1_979, "@call_weak_fn")),Direct(Tid(1_813, "%00000715"))))])), -Blk(Tid(1_813, "%00000715"), Attrs([Attr("address","0x5F0")]), Phis([]), -Defs([Def(Tid(1_818, "%0000071a"), Attrs([Attr("address","0x5F0"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R29",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(1_823, "%0000071f"), Attrs([Attr("address","0x5F0"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R30",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(1_827, "%00000723"), Attrs([Attr("address","0x5F0"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(16,64)))]), Jmps([Call(Tid(1_832, "%00000728"), - Attrs([Attr("address","0x5F4"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), Sub(Tid(1_975, "@_start"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x680"), -Attr("entry-point","()")]), "_start", Args([Arg(Tid(2_039, "%000007f7"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("_start_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(592, "@_start"), - Attrs([Attr("address","0x680")]), Phis([]), Defs([Def(Tid(597, "%00000255"), - Attrs([Attr("address","0x684"), Attr("insn","mov x29, #0x0")]), - Var("R29",Imm(64)), Int(0,64)), Def(Tid(602, "%0000025a"), - Attrs([Attr("address","0x688"), Attr("insn","mov x30, #0x0")]), - Var("R30",Imm(64)), Int(0,64)), Def(Tid(608, "%00000260"), - Attrs([Attr("address","0x68C"), Attr("insn","mov x5, x0")]), - Var("R5",Imm(64)), Var("R0",Imm(64))), Def(Tid(615, "%00000267"), - Attrs([Attr("address","0x690"), Attr("insn","ldr x1, [sp]")]), - Var("R1",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(621, "%0000026d"), Attrs([Attr("address","0x694"), -Attr("insn","add x2, sp, #0x8")]), Var("R2",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(8,64))), Def(Tid(627, "%00000273"), - Attrs([Attr("address","0x698"), Attr("insn","mov x6, sp")]), - Var("R6",Imm(64)), Var("R31",Imm(64))), Def(Tid(632, "%00000278"), - Attrs([Attr("address","0x69C"), Attr("insn","adrp x0, #65536")]), - Var("R0",Imm(64)), Int(65536,64)), Def(Tid(639, "%0000027f"), - Attrs([Attr("address","0x6A0"), Attr("insn","ldr x0, [x0, #0xfd0]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(4048,64)),LittleEndian(),64)), -Def(Tid(644, "%00000284"), Attrs([Attr("address","0x6A4"), -Attr("insn","mov x3, #0x0")]), Var("R3",Imm(64)), Int(0,64)), -Def(Tid(649, "%00000289"), Attrs([Attr("address","0x6A8"), -Attr("insn","mov x4, #0x0")]), Var("R4",Imm(64)), Int(0,64)), -Def(Tid(654, "%0000028e"), Attrs([Attr("address","0x6AC"), -Attr("insn","bl #-0x8c")]), Var("R30",Imm(64)), Int(1712,64))]), -Jmps([Call(Tid(657, "%00000291"), Attrs([Attr("address","0x6AC"), -Attr("insn","bl #-0x8c")]), Int(1,1), -(Direct(Tid(1_972, "@__libc_start_main")),Direct(Tid(659, "%00000293"))))])), -Blk(Tid(659, "%00000293"), Attrs([Attr("address","0x6B0")]), Phis([]), -Defs([Def(Tid(662, "%00000296"), Attrs([Attr("address","0x6B0"), -Attr("insn","bl #-0x60")]), Var("R30",Imm(64)), Int(1716,64))]), -Jmps([Call(Tid(665, "%00000299"), Attrs([Attr("address","0x6B0"), -Attr("insn","bl #-0x60")]), Int(1,1), -(Direct(Tid(1_978, "@abort")),Direct(Tid(2_019, "%000007e3"))))])), -Blk(Tid(2_019, "%000007e3"), Attrs([]), Phis([]), Defs([]), -Jmps([Call(Tid(2_020, "%000007e4"), Attrs([]), Int(1,1), -(Direct(Tid(1_979, "@call_weak_fn")),))]))])), Sub(Tid(1_978, "@abort"), - Attrs([Attr("noreturn","()"), Attr("c.proto","void (*)(void)"), -Attr("address","0x650"), Attr("stub","()")]), "abort", Args([]), -Blks([Blk(Tid(663, "@abort"), Attrs([Attr("address","0x650")]), Phis([]), -Defs([Def(Tid(1_730, "%000006c2"), Attrs([Attr("address","0x650"), -Attr("insn","adrp x16, #69632")]), Var("R16",Imm(64)), Int(69632,64)), -Def(Tid(1_737, "%000006c9"), Attrs([Attr("address","0x654"), -Attr("insn","ldr x17, [x16, #0x18]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(24,64)),LittleEndian(),64)), -Def(Tid(1_743, "%000006cf"), Attrs([Attr("address","0x658"), -Attr("insn","add x16, x16, #0x18")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(24,64)))]), Jmps([Call(Tid(1_748, "%000006d4"), - Attrs([Attr("address","0x65C"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), Sub(Tid(1_979, "@call_weak_fn"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x6B4")]), - "call_weak_fn", Args([Arg(Tid(2_040, "%000007f8"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("call_weak_fn_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(667, "@call_weak_fn"), - Attrs([Attr("address","0x6B4")]), Phis([]), Defs([Def(Tid(670, "%0000029e"), - Attrs([Attr("address","0x6B4"), Attr("insn","adrp x0, #65536")]), - Var("R0",Imm(64)), Int(65536,64)), Def(Tid(677, "%000002a5"), - Attrs([Attr("address","0x6B8"), Attr("insn","ldr x0, [x0, #0xfb8]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(4024,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(683, "%000002ab"), Attrs([Attr("address","0x6BC"), -Attr("insn","cbz x0, #0x8")]), EQ(Var("R0",Imm(64)),Int(0,64)), -Direct(Tid(681, "%000002a9"))), Goto(Tid(2_021, "%000007e5"), Attrs([]), - Int(1,1), Direct(Tid(1_502, "%000005de")))])), Blk(Tid(681, "%000002a9"), - Attrs([Attr("address","0x6C4")]), Phis([]), Defs([]), -Jmps([Call(Tid(689, "%000002b1"), Attrs([Attr("address","0x6C4"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))])), -Blk(Tid(1_502, "%000005de"), Attrs([Attr("address","0x6C0")]), Phis([]), -Defs([]), Jmps([Goto(Tid(1_505, "%000005e1"), Attrs([Attr("address","0x6C0"), -Attr("insn","b #-0x80")]), Int(1,1), -Direct(Tid(1_503, "@__gmon_start__")))])), Blk(Tid(1_503, "@__gmon_start__"), - Attrs([Attr("address","0x640")]), Phis([]), -Defs([Def(Tid(1_708, "%000006ac"), Attrs([Attr("address","0x640"), -Attr("insn","adrp x16, #69632")]), Var("R16",Imm(64)), Int(69632,64)), -Def(Tid(1_715, "%000006b3"), Attrs([Attr("address","0x644"), -Attr("insn","ldr x17, [x16, #0x10]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(16,64)),LittleEndian(),64)), -Def(Tid(1_721, "%000006b9"), Attrs([Attr("address","0x648"), -Attr("insn","add x16, x16, #0x10")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(16,64)))]), Jmps([Call(Tid(1_726, "%000006be"), - Attrs([Attr("address","0x64C"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), -Sub(Tid(1_981, "@deregister_tm_clones"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x6D0")]), - "deregister_tm_clones", Args([Arg(Tid(2_041, "%000007f9"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("deregister_tm_clones_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(695, "@deregister_tm_clones"), - Attrs([Attr("address","0x6D0")]), Phis([]), Defs([Def(Tid(698, "%000002ba"), - Attrs([Attr("address","0x6D0"), Attr("insn","adrp x0, #69632")]), - Var("R0",Imm(64)), Int(69632,64)), Def(Tid(704, "%000002c0"), - Attrs([Attr("address","0x6D4"), Attr("insn","add x0, x0, #0x30")]), - Var("R0",Imm(64)), PLUS(Var("R0",Imm(64)),Int(48,64))), -Def(Tid(709, "%000002c5"), Attrs([Attr("address","0x6D8"), -Attr("insn","adrp x1, #69632")]), Var("R1",Imm(64)), Int(69632,64)), -Def(Tid(715, "%000002cb"), Attrs([Attr("address","0x6DC"), -Attr("insn","add x1, x1, #0x30")]), Var("R1",Imm(64)), -PLUS(Var("R1",Imm(64)),Int(48,64))), Def(Tid(721, "%000002d1"), - Attrs([Attr("address","0x6E0"), Attr("insn","cmp x1, x0")]), - Var("#1",Imm(64)), NOT(Var("R0",Imm(64)))), Def(Tid(726, "%000002d6"), - Attrs([Attr("address","0x6E0"), Attr("insn","cmp x1, x0")]), - Var("#2",Imm(64)), PLUS(Var("R1",Imm(64)),NOT(Var("R0",Imm(64))))), -Def(Tid(732, "%000002dc"), Attrs([Attr("address","0x6E0"), -Attr("insn","cmp x1, x0")]), Var("VF",Imm(1)), -NEQ(SIGNED(65,PLUS(Var("#2",Imm(64)),Int(1,64))),PLUS(PLUS(SIGNED(65,Var("R1",Imm(64))),SIGNED(65,Var("#1",Imm(64)))),Int(1,65)))), -Def(Tid(738, "%000002e2"), Attrs([Attr("address","0x6E0"), -Attr("insn","cmp x1, x0")]), Var("CF",Imm(1)), -NEQ(UNSIGNED(65,PLUS(Var("#2",Imm(64)),Int(1,64))),PLUS(PLUS(UNSIGNED(65,Var("R1",Imm(64))),UNSIGNED(65,Var("#1",Imm(64)))),Int(1,65)))), -Def(Tid(742, "%000002e6"), Attrs([Attr("address","0x6E0"), -Attr("insn","cmp x1, x0")]), Var("ZF",Imm(1)), -EQ(PLUS(Var("#2",Imm(64)),Int(1,64)),Int(0,64))), Def(Tid(746, "%000002ea"), - Attrs([Attr("address","0x6E0"), Attr("insn","cmp x1, x0")]), - Var("NF",Imm(1)), Extract(63,63,PLUS(Var("#2",Imm(64)),Int(1,64))))]), -Jmps([Goto(Tid(752, "%000002f0"), Attrs([Attr("address","0x6E4"), -Attr("insn","b.eq #0x18")]), EQ(Var("ZF",Imm(1)),Int(1,1)), -Direct(Tid(750, "%000002ee"))), Goto(Tid(2_022, "%000007e6"), Attrs([]), - Int(1,1), Direct(Tid(1_472, "%000005c0")))])), Blk(Tid(1_472, "%000005c0"), - Attrs([Attr("address","0x6E8")]), Phis([]), -Defs([Def(Tid(1_475, "%000005c3"), Attrs([Attr("address","0x6E8"), -Attr("insn","adrp x1, #65536")]), Var("R1",Imm(64)), Int(65536,64)), -Def(Tid(1_482, "%000005ca"), Attrs([Attr("address","0x6EC"), -Attr("insn","ldr x1, [x1, #0xfa0]")]), Var("R1",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R1",Imm(64)),Int(4000,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(1_487, "%000005cf"), Attrs([Attr("address","0x6F0"), -Attr("insn","cbz x1, #0xc")]), EQ(Var("R1",Imm(64)),Int(0,64)), -Direct(Tid(750, "%000002ee"))), Goto(Tid(2_023, "%000007e7"), Attrs([]), - Int(1,1), Direct(Tid(1_491, "%000005d3")))])), Blk(Tid(750, "%000002ee"), - Attrs([Attr("address","0x6FC")]), Phis([]), Defs([]), -Jmps([Call(Tid(758, "%000002f6"), Attrs([Attr("address","0x6FC"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))])), -Blk(Tid(1_491, "%000005d3"), Attrs([Attr("address","0x6F4")]), Phis([]), -Defs([Def(Tid(1_495, "%000005d7"), Attrs([Attr("address","0x6F4"), -Attr("insn","mov x16, x1")]), Var("R16",Imm(64)), Var("R1",Imm(64)))]), -Jmps([Call(Tid(1_500, "%000005dc"), Attrs([Attr("address","0x6F8"), -Attr("insn","br x16")]), Int(1,1), (Indirect(Var("R16",Imm(64))),))]))])), -Sub(Tid(1_984, "@frame_dummy"), Attrs([Attr("c.proto","signed (*)(void)"), -Attr("address","0x790")]), "frame_dummy", Args([Arg(Tid(2_042, "%000007fa"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("frame_dummy_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(910, "@frame_dummy"), - Attrs([Attr("address","0x790")]), Phis([]), Defs([]), -Jmps([Call(Tid(912, "%00000390"), Attrs([Attr("address","0x790"), -Attr("insn","b #-0x90")]), Int(1,1), -(Direct(Tid(1_989, "@register_tm_clones")),))]))])), Sub(Tid(1_985, "@main"), - Attrs([Attr("c.proto","signed (*)(signed argc, const char** argv)"), -Attr("address","0x7D0")]), "main", Args([Arg(Tid(2_043, "%000007fb"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("main_argc",Imm(32)), -LOW(32,Var("R0",Imm(64))), In()), Arg(Tid(2_044, "%000007fc"), - Attrs([Attr("c.layout","**[char : 8]"), Attr("c.data","Top:u8 ptr ptr"), -Attr("c.type"," const char**")]), Var("main_argv",Imm(64)), -Var("R1",Imm(64)), Both()), Arg(Tid(2_045, "%000007fd"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("main_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(1_004, "@main"), - Attrs([Attr("address","0x7D0")]), Phis([]), -Defs([Def(Tid(1_008, "%000003f0"), Attrs([Attr("address","0x7D0"), -Attr("insn","sub sp, sp, #0x30")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(18446744073709551568,64))), -Def(Tid(1_014, "%000003f6"), Attrs([Attr("address","0x7D4"), -Attr("insn","stp x29, x30, [sp, #0x20]")]), Var("#4",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(32,64))), Def(Tid(1_020, "%000003fc"), - Attrs([Attr("address","0x7D4"), Attr("insn","stp x29, x30, [sp, #0x20]")]), - Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("#4",Imm(64)),Var("R29",Imm(64)),LittleEndian(),64)), -Def(Tid(1_026, "%00000402"), Attrs([Attr("address","0x7D4"), -Attr("insn","stp x29, x30, [sp, #0x20]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("#4",Imm(64)),Int(8,64)),Var("R30",Imm(64)),LittleEndian(),64)), -Def(Tid(1_032, "%00000408"), Attrs([Attr("address","0x7D8"), -Attr("insn","add x29, sp, #0x20")]), Var("R29",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(32,64))), Def(Tid(1_039, "%0000040f"), - Attrs([Attr("address","0x7DC"), Attr("insn","stur wzr, [x29, #-0x4]")]), - Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R29",Imm(64)),Int(18446744073709551612,64)),Int(0,32),LittleEndian(),32)), -Def(Tid(1_047, "%00000417"), Attrs([Attr("address","0x7E0"), -Attr("insn","stur w0, [x29, #-0x8]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R29",Imm(64)),Int(18446744073709551608,64)),Extract(31,0,Var("R0",Imm(64))),LittleEndian(),32)), -Def(Tid(1_054, "%0000041e"), Attrs([Attr("address","0x7E4"), -Attr("insn","ldur w8, [x29, #-0x8]")]), Var("R8",Imm(64)), -UNSIGNED(64,Load(Var("mem",Mem(64,8)),PLUS(Var("R29",Imm(64)),Int(18446744073709551608,64)),LittleEndian(),32))), -Def(Tid(1_062, "%00000426"), Attrs([Attr("address","0x7E8"), -Attr("insn","str w8, [sp, #0xc]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(12,64)),Extract(31,0,Var("R8",Imm(64))),LittleEndian(),32)), -Def(Tid(1_068, "%0000042c"), Attrs([Attr("address","0x7EC"), -Attr("insn","subs w8, w8, #0x0")]), Var("#5",Imm(32)), -PLUS(Extract(31,0,Var("R8",Imm(64))),Int(4294967295,32))), -Def(Tid(1_073, "%00000431"), Attrs([Attr("address","0x7EC"), -Attr("insn","subs w8, w8, #0x0")]), Var("VF",Imm(1)), -NEQ(SIGNED(33,PLUS(Var("#5",Imm(32)),Int(1,32))),PLUS(SIGNED(33,Extract(31,0,Var("R8",Imm(64)))),Int(0,33)))), -Def(Tid(1_078, "%00000436"), Attrs([Attr("address","0x7EC"), -Attr("insn","subs w8, w8, #0x0")]), Var("CF",Imm(1)), -NEQ(UNSIGNED(33,PLUS(Var("#5",Imm(32)),Int(1,32))),PLUS(UNSIGNED(33,Extract(31,0,Var("R8",Imm(64)))),Int(4294967296,33)))), -Def(Tid(1_082, "%0000043a"), Attrs([Attr("address","0x7EC"), -Attr("insn","subs w8, w8, #0x0")]), Var("ZF",Imm(1)), -EQ(PLUS(Var("#5",Imm(32)),Int(1,32)),Int(0,32))), -Def(Tid(1_086, "%0000043e"), Attrs([Attr("address","0x7EC"), -Attr("insn","subs w8, w8, #0x0")]), Var("NF",Imm(1)), -Extract(31,31,PLUS(Var("#5",Imm(32)),Int(1,32)))), -Def(Tid(1_090, "%00000442"), Attrs([Attr("address","0x7EC"), -Attr("insn","subs w8, w8, #0x0")]), Var("R8",Imm(64)), -UNSIGNED(64,PLUS(Var("#5",Imm(32)),Int(1,32))))]), -Jmps([Goto(Tid(1_102, "%0000044e"), Attrs([Attr("address","0x7F0"), -Attr("insn","cset w8, eq")]), NEQ(Var("ZF",Imm(1)),Int(1,1)), -Direct(Tid(1_095, "%00000447"))), Goto(Tid(1_103, "%0000044f"), - Attrs([Attr("address","0x7F0"), Attr("insn","cset w8, eq")]), Int(1,1), -Direct(Tid(1_098, "%0000044a")))])), Blk(Tid(1_098, "%0000044a"), Attrs([]), - Phis([]), Defs([Def(Tid(1_099, "%0000044b"), Attrs([Attr("address","0x7F0"), -Attr("insn","cset w8, eq")]), Var("R8",Imm(64)), Int(1,64))]), -Jmps([Goto(Tid(1_105, "%00000451"), Attrs([Attr("address","0x7F0"), -Attr("insn","cset w8, eq")]), Int(1,1), Direct(Tid(1_101, "%0000044d")))])), -Blk(Tid(1_095, "%00000447"), Attrs([]), Phis([]), -Defs([Def(Tid(1_096, "%00000448"), Attrs([Attr("address","0x7F0"), -Attr("insn","cset w8, eq")]), Var("R8",Imm(64)), Int(0,64))]), -Jmps([Goto(Tid(1_104, "%00000450"), Attrs([Attr("address","0x7F0"), -Attr("insn","cset w8, eq")]), Int(1,1), Direct(Tid(1_101, "%0000044d")))])), -Blk(Tid(1_101, "%0000044d"), Attrs([]), Phis([]), Defs([]), -Jmps([Goto(Tid(1_111, "%00000457"), Attrs([Attr("address","0x7F4"), -Attr("insn","tbnz w8, #0x0, #0x30")]), - EQ(Extract(0,0,Var("R8",Imm(64))),Int(1,1)), -Direct(Tid(1_109, "%00000455"))), Goto(Tid(2_024, "%000007e8"), Attrs([]), - Int(1,1), Direct(Tid(1_257, "%000004e9")))])), Blk(Tid(1_109, "%00000455"), - Attrs([Attr("address","0x824")]), Phis([]), -Defs([Def(Tid(1_117, "%0000045d"), Attrs([Attr("address","0x824"), -Attr("insn","adrp x8, #65536")]), Var("R8",Imm(64)), Int(65536,64)), -Def(Tid(1_124, "%00000464"), Attrs([Attr("address","0x828"), -Attr("insn","ldr x8, [x8, #0xfc0]")]), Var("R8",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R8",Imm(64)),Int(4032,64)),LittleEndian(),64)), -Def(Tid(1_132, "%0000046c"), Attrs([Attr("address","0x82C"), -Attr("insn","str x8, [sp, #0x10]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(16,64)),Var("R8",Imm(64)),LittleEndian(),64))]), -Jmps([Goto(Tid(1_137, "%00000471"), Attrs([Attr("address","0x830"), -Attr("insn","b #0x34")]), Int(1,1), Direct(Tid(1_135, "%0000046f")))])), -Blk(Tid(1_257, "%000004e9"), Attrs([Attr("address","0x7F8")]), Phis([]), -Defs([]), Jmps([Goto(Tid(1_260, "%000004ec"), Attrs([Attr("address","0x7F8"), -Attr("insn","b #0x4")]), Int(1,1), Direct(Tid(1_258, "%000004ea")))])), -Blk(Tid(1_258, "%000004ea"), Attrs([Attr("address","0x7FC")]), Phis([]), -Defs([Def(Tid(1_266, "%000004f2"), Attrs([Attr("address","0x7FC"), -Attr("insn","ldr w8, [sp, #0xc]")]), Var("R8",Imm(64)), -UNSIGNED(64,Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(12,64)),LittleEndian(),32))), -Def(Tid(1_272, "%000004f8"), Attrs([Attr("address","0x800"), -Attr("insn","subs w8, w8, #0x1")]), Var("#7",Imm(32)), -PLUS(Extract(31,0,Var("R8",Imm(64))),Int(4294967294,32))), -Def(Tid(1_277, "%000004fd"), Attrs([Attr("address","0x800"), -Attr("insn","subs w8, w8, #0x1")]), Var("VF",Imm(1)), -NEQ(SIGNED(33,PLUS(Var("#7",Imm(32)),Int(1,32))),PLUS(SIGNED(33,Extract(31,0,Var("R8",Imm(64)))),Int(8589934591,33)))), -Def(Tid(1_282, "%00000502"), Attrs([Attr("address","0x800"), -Attr("insn","subs w8, w8, #0x1")]), Var("CF",Imm(1)), -NEQ(UNSIGNED(33,PLUS(Var("#7",Imm(32)),Int(1,32))),PLUS(UNSIGNED(33,Extract(31,0,Var("R8",Imm(64)))),Int(4294967295,33)))), -Def(Tid(1_286, "%00000506"), Attrs([Attr("address","0x800"), -Attr("insn","subs w8, w8, #0x1")]), Var("ZF",Imm(1)), -EQ(PLUS(Var("#7",Imm(32)),Int(1,32)),Int(0,32))), -Def(Tid(1_290, "%0000050a"), Attrs([Attr("address","0x800"), -Attr("insn","subs w8, w8, #0x1")]), Var("NF",Imm(1)), -Extract(31,31,PLUS(Var("#7",Imm(32)),Int(1,32)))), -Def(Tid(1_294, "%0000050e"), Attrs([Attr("address","0x800"), -Attr("insn","subs w8, w8, #0x1")]), Var("R8",Imm(64)), -UNSIGNED(64,PLUS(Var("#7",Imm(32)),Int(1,32))))]), -Jmps([Goto(Tid(1_306, "%0000051a"), Attrs([Attr("address","0x804"), -Attr("insn","cset w8, eq")]), NEQ(Var("ZF",Imm(1)),Int(1,1)), -Direct(Tid(1_299, "%00000513"))), Goto(Tid(1_307, "%0000051b"), - Attrs([Attr("address","0x804"), Attr("insn","cset w8, eq")]), Int(1,1), -Direct(Tid(1_302, "%00000516")))])), Blk(Tid(1_302, "%00000516"), Attrs([]), - Phis([]), Defs([Def(Tid(1_303, "%00000517"), Attrs([Attr("address","0x804"), -Attr("insn","cset w8, eq")]), Var("R8",Imm(64)), Int(1,64))]), -Jmps([Goto(Tid(1_309, "%0000051d"), Attrs([Attr("address","0x804"), -Attr("insn","cset w8, eq")]), Int(1,1), Direct(Tid(1_305, "%00000519")))])), -Blk(Tid(1_299, "%00000513"), Attrs([]), Phis([]), -Defs([Def(Tid(1_300, "%00000514"), Attrs([Attr("address","0x804"), -Attr("insn","cset w8, eq")]), Var("R8",Imm(64)), Int(0,64))]), -Jmps([Goto(Tid(1_308, "%0000051c"), Attrs([Attr("address","0x804"), -Attr("insn","cset w8, eq")]), Int(1,1), Direct(Tid(1_305, "%00000519")))])), -Blk(Tid(1_305, "%00000519"), Attrs([]), Phis([]), Defs([]), -Jmps([Goto(Tid(1_314, "%00000522"), Attrs([Attr("address","0x808"), -Attr("insn","tbnz w8, #0x0, #0x2c")]), - EQ(Extract(0,0,Var("R8",Imm(64))),Int(1,1)), -Direct(Tid(1_185, "%000004a1"))), Goto(Tid(2_025, "%000007e9"), Attrs([]), - Int(1,1), Direct(Tid(1_318, "%00000526")))])), Blk(Tid(1_185, "%000004a1"), - Attrs([Attr("address","0x834")]), Phis([]), -Defs([Def(Tid(1_188, "%000004a4"), Attrs([Attr("address","0x834"), -Attr("insn","adrp x8, #65536")]), Var("R8",Imm(64)), Int(65536,64)), -Def(Tid(1_195, "%000004ab"), Attrs([Attr("address","0x838"), -Attr("insn","ldr x8, [x8, #0xfc8]")]), Var("R8",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R8",Imm(64)),Int(4040,64)),LittleEndian(),64)), -Def(Tid(1_203, "%000004b3"), Attrs([Attr("address","0x83C"), -Attr("insn","str x8, [sp, #0x10]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(16,64)),Var("R8",Imm(64)),LittleEndian(),64))]), -Jmps([Goto(Tid(1_207, "%000004b7"), Attrs([Attr("address","0x840"), -Attr("insn","b #0x24")]), Int(1,1), Direct(Tid(1_135, "%0000046f")))])), -Blk(Tid(1_318, "%00000526"), Attrs([Attr("address","0x80C")]), Phis([]), -Defs([]), Jmps([Goto(Tid(1_321, "%00000529"), Attrs([Attr("address","0x80C"), -Attr("insn","b #0x4")]), Int(1,1), Direct(Tid(1_319, "%00000527")))])), -Blk(Tid(1_319, "%00000527"), Attrs([Attr("address","0x810")]), Phis([]), -Defs([Def(Tid(1_327, "%0000052f"), Attrs([Attr("address","0x810"), -Attr("insn","ldr w8, [sp, #0xc]")]), Var("R8",Imm(64)), -UNSIGNED(64,Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(12,64)),LittleEndian(),32))), -Def(Tid(1_333, "%00000535"), Attrs([Attr("address","0x814"), -Attr("insn","subs w8, w8, #0x2")]), Var("#8",Imm(32)), -PLUS(Extract(31,0,Var("R8",Imm(64))),Int(4294967293,32))), -Def(Tid(1_338, "%0000053a"), Attrs([Attr("address","0x814"), -Attr("insn","subs w8, w8, #0x2")]), Var("VF",Imm(1)), -NEQ(SIGNED(33,PLUS(Var("#8",Imm(32)),Int(1,32))),PLUS(SIGNED(33,Extract(31,0,Var("R8",Imm(64)))),Int(8589934590,33)))), -Def(Tid(1_343, "%0000053f"), Attrs([Attr("address","0x814"), -Attr("insn","subs w8, w8, #0x2")]), Var("CF",Imm(1)), -NEQ(UNSIGNED(33,PLUS(Var("#8",Imm(32)),Int(1,32))),PLUS(UNSIGNED(33,Extract(31,0,Var("R8",Imm(64)))),Int(4294967294,33)))), -Def(Tid(1_347, "%00000543"), Attrs([Attr("address","0x814"), -Attr("insn","subs w8, w8, #0x2")]), Var("ZF",Imm(1)), -EQ(PLUS(Var("#8",Imm(32)),Int(1,32)),Int(0,32))), -Def(Tid(1_351, "%00000547"), Attrs([Attr("address","0x814"), -Attr("insn","subs w8, w8, #0x2")]), Var("NF",Imm(1)), -Extract(31,31,PLUS(Var("#8",Imm(32)),Int(1,32)))), -Def(Tid(1_355, "%0000054b"), Attrs([Attr("address","0x814"), -Attr("insn","subs w8, w8, #0x2")]), Var("R8",Imm(64)), -UNSIGNED(64,PLUS(Var("#8",Imm(32)),Int(1,32))))]), -Jmps([Goto(Tid(1_367, "%00000557"), Attrs([Attr("address","0x818"), -Attr("insn","cset w8, eq")]), NEQ(Var("ZF",Imm(1)),Int(1,1)), -Direct(Tid(1_360, "%00000550"))), Goto(Tid(1_368, "%00000558"), - Attrs([Attr("address","0x818"), Attr("insn","cset w8, eq")]), Int(1,1), -Direct(Tid(1_363, "%00000553")))])), Blk(Tid(1_363, "%00000553"), Attrs([]), - Phis([]), Defs([Def(Tid(1_364, "%00000554"), Attrs([Attr("address","0x818"), -Attr("insn","cset w8, eq")]), Var("R8",Imm(64)), Int(1,64))]), -Jmps([Goto(Tid(1_370, "%0000055a"), Attrs([Attr("address","0x818"), -Attr("insn","cset w8, eq")]), Int(1,1), Direct(Tid(1_366, "%00000556")))])), -Blk(Tid(1_360, "%00000550"), Attrs([]), Phis([]), -Defs([Def(Tid(1_361, "%00000551"), Attrs([Attr("address","0x818"), -Attr("insn","cset w8, eq")]), Var("R8",Imm(64)), Int(0,64))]), -Jmps([Goto(Tid(1_369, "%00000559"), Attrs([Attr("address","0x818"), -Attr("insn","cset w8, eq")]), Int(1,1), Direct(Tid(1_366, "%00000556")))])), -Blk(Tid(1_366, "%00000556"), Attrs([]), Phis([]), Defs([]), -Jmps([Goto(Tid(1_375, "%0000055f"), Attrs([Attr("address","0x81C"), -Attr("insn","tbnz w8, #0x0, #0x28")]), - EQ(Extract(0,0,Var("R8",Imm(64))),Int(1,1)), -Direct(Tid(1_209, "%000004b9"))), Goto(Tid(2_026, "%000007ea"), Attrs([]), - Int(1,1), Direct(Tid(1_379, "%00000563")))])), Blk(Tid(1_209, "%000004b9"), - Attrs([Attr("address","0x844")]), Phis([]), -Defs([Def(Tid(1_212, "%000004bc"), Attrs([Attr("address","0x844"), -Attr("insn","adrp x8, #65536")]), Var("R8",Imm(64)), Int(65536,64)), -Def(Tid(1_219, "%000004c3"), Attrs([Attr("address","0x848"), -Attr("insn","ldr x8, [x8, #0xfd8]")]), Var("R8",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R8",Imm(64)),Int(4056,64)),LittleEndian(),64)), -Def(Tid(1_227, "%000004cb"), Attrs([Attr("address","0x84C"), -Attr("insn","str x8, [sp, #0x10]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(16,64)),Var("R8",Imm(64)),LittleEndian(),64))]), -Jmps([Goto(Tid(1_231, "%000004cf"), Attrs([Attr("address","0x850"), -Attr("insn","b #0x14")]), Int(1,1), Direct(Tid(1_135, "%0000046f")))])), -Blk(Tid(1_379, "%00000563"), Attrs([Attr("address","0x820")]), Phis([]), -Defs([]), Jmps([Goto(Tid(1_381, "%00000565"), Attrs([Attr("address","0x820"), -Attr("insn","b #0x34")]), Int(1,1), Direct(Tid(1_233, "%000004d1")))])), -Blk(Tid(1_233, "%000004d1"), Attrs([Attr("address","0x854")]), Phis([]), -Defs([Def(Tid(1_236, "%000004d4"), Attrs([Attr("address","0x854"), -Attr("insn","adrp x8, #65536")]), Var("R8",Imm(64)), Int(65536,64)), -Def(Tid(1_243, "%000004db"), Attrs([Attr("address","0x858"), -Attr("insn","ldr x8, [x8, #0xfc0]")]), Var("R8",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R8",Imm(64)),Int(4032,64)),LittleEndian(),64)), -Def(Tid(1_251, "%000004e3"), Attrs([Attr("address","0x85C"), -Attr("insn","str x8, [sp, #0x10]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(16,64)),Var("R8",Imm(64)),LittleEndian(),64))]), -Jmps([Goto(Tid(1_255, "%000004e7"), Attrs([Attr("address","0x860"), -Attr("insn","b #0x4")]), Int(1,1), Direct(Tid(1_135, "%0000046f")))])), -Blk(Tid(1_135, "%0000046f"), Attrs([Attr("address","0x864")]), Phis([]), -Defs([Def(Tid(1_143, "%00000477"), Attrs([Attr("address","0x864"), -Attr("insn","ldr x8, [sp, #0x10]")]), Var("R8",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(16,64)),LittleEndian(),64)), -Def(Tid(1_148, "%0000047c"), Attrs([Attr("address","0x868"), -Attr("insn","blr x8")]), Var("R30",Imm(64)), Int(2156,64))]), -Jmps([Call(Tid(1_151, "%0000047f"), Attrs([Attr("address","0x868"), -Attr("insn","blr x8")]), Int(1,1), -(Indirect(Var("R8",Imm(64))),Direct(Tid(1_153, "%00000481"))))])), -Blk(Tid(1_153, "%00000481"), Attrs([Attr("address","0x86C")]), Phis([]), -Defs([Def(Tid(1_156, "%00000484"), Attrs([Attr("address","0x86C"), -Attr("insn","mov w0, wzr")]), Var("R0",Imm(64)), Int(0,64)), -Def(Tid(1_162, "%0000048a"), Attrs([Attr("address","0x870"), -Attr("insn","ldp x29, x30, [sp, #0x20]")]), Var("#6",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(32,64))), Def(Tid(1_167, "%0000048f"), - Attrs([Attr("address","0x870"), Attr("insn","ldp x29, x30, [sp, #0x20]")]), - Var("R29",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("#6",Imm(64)),LittleEndian(),64)), -Def(Tid(1_172, "%00000494"), Attrs([Attr("address","0x870"), -Attr("insn","ldp x29, x30, [sp, #0x20]")]), Var("R30",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("#6",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(1_178, "%0000049a"), Attrs([Attr("address","0x874"), -Attr("insn","add sp, sp, #0x30")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(48,64)))]), Jmps([Call(Tid(1_183, "%0000049f"), - Attrs([Attr("address","0x878"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), -Sub(Tid(1_989, "@register_tm_clones"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x700")]), - "register_tm_clones", Args([Arg(Tid(2_046, "%000007fe"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("register_tm_clones_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(760, "@register_tm_clones"), Attrs([Attr("address","0x700")]), - Phis([]), Defs([Def(Tid(763, "%000002fb"), Attrs([Attr("address","0x700"), -Attr("insn","adrp x0, #69632")]), Var("R0",Imm(64)), Int(69632,64)), -Def(Tid(769, "%00000301"), Attrs([Attr("address","0x704"), -Attr("insn","add x0, x0, #0x30")]), Var("R0",Imm(64)), -PLUS(Var("R0",Imm(64)),Int(48,64))), Def(Tid(774, "%00000306"), - Attrs([Attr("address","0x708"), Attr("insn","adrp x1, #69632")]), - Var("R1",Imm(64)), Int(69632,64)), Def(Tid(780, "%0000030c"), - Attrs([Attr("address","0x70C"), Attr("insn","add x1, x1, #0x30")]), - Var("R1",Imm(64)), PLUS(Var("R1",Imm(64)),Int(48,64))), -Def(Tid(787, "%00000313"), Attrs([Attr("address","0x710"), -Attr("insn","sub x1, x1, x0")]), Var("R1",Imm(64)), -PLUS(PLUS(Var("R1",Imm(64)),NOT(Var("R0",Imm(64)))),Int(1,64))), -Def(Tid(793, "%00000319"), Attrs([Attr("address","0x714"), -Attr("insn","lsr x2, x1, #63")]), Var("R2",Imm(64)), -Concat(Int(0,63),Extract(63,63,Var("R1",Imm(64))))), -Def(Tid(800, "%00000320"), Attrs([Attr("address","0x718"), -Attr("insn","add x1, x2, x1, asr #3")]), Var("R1",Imm(64)), -PLUS(Var("R2",Imm(64)),ARSHIFT(Var("R1",Imm(64)),Int(3,3)))), -Def(Tid(806, "%00000326"), Attrs([Attr("address","0x71C"), -Attr("insn","asr x1, x1, #1")]), Var("R1",Imm(64)), -SIGNED(64,Extract(63,1,Var("R1",Imm(64)))))]), -Jmps([Goto(Tid(812, "%0000032c"), Attrs([Attr("address","0x720"), -Attr("insn","cbz x1, #0x18")]), EQ(Var("R1",Imm(64)),Int(0,64)), -Direct(Tid(810, "%0000032a"))), Goto(Tid(2_027, "%000007eb"), Attrs([]), - Int(1,1), Direct(Tid(1_442, "%000005a2")))])), Blk(Tid(1_442, "%000005a2"), - Attrs([Attr("address","0x724")]), Phis([]), -Defs([Def(Tid(1_445, "%000005a5"), Attrs([Attr("address","0x724"), -Attr("insn","adrp x2, #65536")]), Var("R2",Imm(64)), Int(65536,64)), -Def(Tid(1_452, "%000005ac"), Attrs([Attr("address","0x728"), -Attr("insn","ldr x2, [x2, #0xfe0]")]), Var("R2",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R2",Imm(64)),Int(4064,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(1_457, "%000005b1"), Attrs([Attr("address","0x72C"), -Attr("insn","cbz x2, #0xc")]), EQ(Var("R2",Imm(64)),Int(0,64)), -Direct(Tid(810, "%0000032a"))), Goto(Tid(2_028, "%000007ec"), Attrs([]), - Int(1,1), Direct(Tid(1_461, "%000005b5")))])), Blk(Tid(810, "%0000032a"), - Attrs([Attr("address","0x738")]), Phis([]), Defs([]), -Jmps([Call(Tid(818, "%00000332"), Attrs([Attr("address","0x738"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))])), -Blk(Tid(1_461, "%000005b5"), Attrs([Attr("address","0x730")]), Phis([]), -Defs([Def(Tid(1_465, "%000005b9"), Attrs([Attr("address","0x730"), -Attr("insn","mov x16, x2")]), Var("R16",Imm(64)), Var("R2",Imm(64)))]), -Jmps([Call(Tid(1_470, "%000005be"), Attrs([Attr("address","0x734"), -Attr("insn","br x16")]), Int(1,1), (Indirect(Var("R16",Imm(64))),))]))])), -Sub(Tid(1_992, "@set_seven"), Attrs([Attr("c.proto","signed (*)(void)"), -Attr("address","0x7BC")]), "set_seven", Args([Arg(Tid(2_047, "%000007ff"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("set_seven_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(974, "@set_seven"), - Attrs([Attr("address","0x7BC")]), Phis([]), Defs([Def(Tid(977, "%000003d1"), - Attrs([Attr("address","0x7BC"), Attr("insn","adrp x9, #65536")]), - Var("R9",Imm(64)), Int(65536,64)), Def(Tid(984, "%000003d8"), - Attrs([Attr("address","0x7C0"), Attr("insn","ldr x9, [x9, #0xfb0]")]), - Var("R9",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R9",Imm(64)),Int(4016,64)),LittleEndian(),64)), -Def(Tid(989, "%000003dd"), Attrs([Attr("address","0x7C4"), -Attr("insn","mov w8, #0x7")]), Var("R8",Imm(64)), Int(7,64)), -Def(Tid(997, "%000003e5"), Attrs([Attr("address","0x7C8"), -Attr("insn","str w8, [x9]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("R9",Imm(64)),Extract(31,0,Var("R8",Imm(64))),LittleEndian(),32))]), -Jmps([Call(Tid(1_002, "%000003ea"), Attrs([Attr("address","0x7CC"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))]))])), -Sub(Tid(1_993, "@set_six"), Attrs([Attr("c.proto","signed (*)(void)"), -Attr("address","0x7A8")]), "set_six", Args([Arg(Tid(2_048, "%00000800"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("set_six_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(944, "@set_six"), - Attrs([Attr("address","0x7A8")]), Phis([]), Defs([Def(Tid(947, "%000003b3"), - Attrs([Attr("address","0x7A8"), Attr("insn","adrp x9, #65536")]), - Var("R9",Imm(64)), Int(65536,64)), Def(Tid(954, "%000003ba"), - Attrs([Attr("address","0x7AC"), Attr("insn","ldr x9, [x9, #0xfb0]")]), - Var("R9",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R9",Imm(64)),Int(4016,64)),LittleEndian(),64)), -Def(Tid(959, "%000003bf"), Attrs([Attr("address","0x7B0"), -Attr("insn","mov w8, #0x6")]), Var("R8",Imm(64)), Int(6,64)), -Def(Tid(967, "%000003c7"), Attrs([Attr("address","0x7B4"), -Attr("insn","str w8, [x9]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("R9",Imm(64)),Extract(31,0,Var("R8",Imm(64))),LittleEndian(),32))]), -Jmps([Call(Tid(972, "%000003cc"), Attrs([Attr("address","0x7B8"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))]))])), -Sub(Tid(1_994, "@set_two"), Attrs([Attr("c.proto","signed (*)(void)"), -Attr("address","0x794")]), "set_two", Args([Arg(Tid(2_049, "%00000801"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("set_two_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(914, "@set_two"), - Attrs([Attr("address","0x794")]), Phis([]), Defs([Def(Tid(917, "%00000395"), - Attrs([Attr("address","0x794"), Attr("insn","adrp x9, #65536")]), - Var("R9",Imm(64)), Int(65536,64)), Def(Tid(924, "%0000039c"), - Attrs([Attr("address","0x798"), Attr("insn","ldr x9, [x9, #0xfb0]")]), - Var("R9",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R9",Imm(64)),Int(4016,64)),LittleEndian(),64)), -Def(Tid(929, "%000003a1"), Attrs([Attr("address","0x79C"), -Attr("insn","mov w8, #0x2")]), Var("R8",Imm(64)), Int(2,64)), -Def(Tid(937, "%000003a9"), Attrs([Attr("address","0x7A0"), -Attr("insn","str w8, [x9]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("R9",Imm(64)),Extract(31,0,Var("R8",Imm(64))),LittleEndian(),32))]), -Jmps([Call(Tid(942, "%000003ae"), Attrs([Attr("address","0x7A4"), -Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))]))]))) \ No newline at end of file diff --git a/src/test/indirect_calls/functionpointer/clang_pic/functionpointer.bir b/src/test/indirect_calls/functionpointer/clang_pic/functionpointer.bir deleted file mode 100644 index b0dc08cf3..000000000 --- a/src/test/indirect_calls/functionpointer/clang_pic/functionpointer.bir +++ /dev/null @@ -1,373 +0,0 @@ -000007ed: program -000007af: sub __cxa_finalize(__cxa_finalize_result) -000007ee: __cxa_finalize_result :: out u32 = low:32[R0] - -0000059e: -00000696: R16 := 0x11000 -0000069d: R17 := mem[R16 + 8, el]:u64 -000006a3: R16 := R16 + 8 -000006a8: call R17 with noreturn - -000007b0: sub __do_global_dtors_aux(__do_global_dtors_aux_result) -000007ef: __do_global_dtors_aux_result :: out u32 = low:32[R0] - -00000336: -0000033a: #3 := R31 - 0x20 -00000340: mem := mem with [#3, el]:u64 <- R29 -00000346: mem := mem with [#3 + 8, el]:u64 <- R30 -0000034a: R31 := #3 -00000350: R29 := R31 -00000358: mem := mem with [R31 + 0x10, el]:u64 <- R19 -0000035d: R19 := 0x11000 -00000364: R0 := pad:64[mem[R19 + 0x30]] -0000036b: when 31:0[R0] <> 0 goto %00000369 -000007e0: goto %00000567 - -00000567: -0000056a: R0 := 0x10000 -00000571: R0 := mem[R0 + 0xFA8, el]:u64 -00000577: when R0 = 0 goto %00000575 -000007e1: goto %0000058e - -0000058e: -00000591: R0 := 0x11000 -00000598: R0 := mem[R0 + 0x28, el]:u64 -0000059d: R30 := 0x770 -000005a0: call @__cxa_finalize with return %00000575 - -00000575: -0000057d: R30 := 0x774 -0000057f: call @deregister_tm_clones with return %00000581 - -00000581: -00000584: R0 := 1 -0000058c: mem := mem with [R19 + 0x30] <- 7:0[R0] -000007e2: goto %00000369 - -00000369: -00000373: R19 := mem[R31 + 0x10, el]:u64 -0000037a: R29 := mem[R31, el]:u64 -0000037f: R30 := mem[R31 + 8, el]:u64 -00000383: R31 := R31 + 0x20 -00000388: call R30 with noreturn - -000007b4: sub __libc_start_main(__libc_start_main_main, __libc_start_main_arg2, __libc_start_main_arg3, __libc_start_main_auxv, __libc_start_main_result) -000007f0: __libc_start_main_main :: in u64 = R0 -000007f1: __libc_start_main_arg2 :: in u32 = low:32[R1] -000007f2: __libc_start_main_arg3 :: in out u64 = R2 -000007f3: __libc_start_main_auxv :: in out u64 = R3 -000007f4: __libc_start_main_result :: out u32 = low:32[R0] - -0000028f: -00000680: R16 := 0x11000 -00000687: R17 := mem[R16, el]:u64 -0000068d: R16 := R16 -00000692: call R17 with noreturn - -000007b5: sub _fini(_fini_result) -000007f5: _fini_result :: out u32 = low:32[R0] - -0000001f: -00000025: #0 := R31 - 0x10 -0000002b: mem := mem with [#0, el]:u64 <- R29 -00000031: mem := mem with [#0 + 8, el]:u64 <- R30 -00000035: R31 := #0 -0000003b: R29 := R31 -00000042: R29 := mem[R31, el]:u64 -00000047: R30 := mem[R31 + 8, el]:u64 -0000004b: R31 := R31 + 0x10 -00000050: call R30 with noreturn - -000007b6: sub _init(_init_result) -000007f6: _init_result :: out u32 = low:32[R0] - -000006f0: -000006f6: #10 := R31 - 0x10 -000006fc: mem := mem with [#10, el]:u64 <- R29 -00000702: mem := mem with [#10 + 8, el]:u64 <- R30 -00000706: R31 := #10 -0000070c: R29 := R31 -00000711: R30 := 0x5F0 -00000713: call @call_weak_fn with return %00000715 - -00000715: -0000071a: R29 := mem[R31, el]:u64 -0000071f: R30 := mem[R31 + 8, el]:u64 -00000723: R31 := R31 + 0x10 -00000728: call R30 with noreturn - -000007b7: sub _start(_start_result) -000007f7: _start_result :: out u32 = low:32[R0] - -00000250: -00000255: R29 := 0 -0000025a: R30 := 0 -00000260: R5 := R0 -00000267: R1 := mem[R31, el]:u64 -0000026d: R2 := R31 + 8 -00000273: R6 := R31 -00000278: R0 := 0x10000 -0000027f: R0 := mem[R0 + 0xFD0, el]:u64 -00000284: R3 := 0 -00000289: R4 := 0 -0000028e: R30 := 0x6B0 -00000291: call @__libc_start_main with return %00000293 - -00000293: -00000296: R30 := 0x6B4 -00000299: call @abort with return %000007e3 - -000007e3: -000007e4: call @call_weak_fn with noreturn - -000007ba: sub abort() - - -00000297: -000006c2: R16 := 0x11000 -000006c9: R17 := mem[R16 + 0x18, el]:u64 -000006cf: R16 := R16 + 0x18 -000006d4: call R17 with noreturn - -000007bb: sub call_weak_fn(call_weak_fn_result) -000007f8: call_weak_fn_result :: out u32 = low:32[R0] - -0000029b: -0000029e: R0 := 0x10000 -000002a5: R0 := mem[R0 + 0xFB8, el]:u64 -000002ab: when R0 = 0 goto %000002a9 -000007e5: goto %000005de - -000002a9: -000002b1: call R30 with noreturn - -000005de: -000005e1: goto @__gmon_start__ - -000005df: -000006ac: R16 := 0x11000 -000006b3: R17 := mem[R16 + 0x10, el]:u64 -000006b9: R16 := R16 + 0x10 -000006be: call R17 with noreturn - -000007bd: sub deregister_tm_clones(deregister_tm_clones_result) -000007f9: deregister_tm_clones_result :: out u32 = low:32[R0] - -000002b7: -000002ba: R0 := 0x11000 -000002c0: R0 := R0 + 0x30 -000002c5: R1 := 0x11000 -000002cb: R1 := R1 + 0x30 -000002d1: #1 := ~R0 -000002d6: #2 := R1 + ~R0 -000002dc: VF := extend:65[#2 + 1] <> extend:65[R1] + extend:65[#1] + 1 -000002e2: CF := pad:65[#2 + 1] <> pad:65[R1] + pad:65[#1] + 1 -000002e6: ZF := #2 + 1 = 0 -000002ea: NF := 63:63[#2 + 1] -000002f0: when ZF goto %000002ee -000007e6: goto %000005c0 - -000005c0: -000005c3: R1 := 0x10000 -000005ca: R1 := mem[R1 + 0xFA0, el]:u64 -000005cf: when R1 = 0 goto %000002ee -000007e7: goto %000005d3 - -000002ee: -000002f6: call R30 with noreturn - -000005d3: -000005d7: R16 := R1 -000005dc: call R16 with noreturn - -000007c0: sub frame_dummy(frame_dummy_result) -000007fa: frame_dummy_result :: out u32 = low:32[R0] - -0000038e: -00000390: call @register_tm_clones with noreturn - -000007c1: sub main(main_argc, main_argv, main_result) -000007fb: main_argc :: in u32 = low:32[R0] -000007fc: main_argv :: in out u64 = R1 -000007fd: main_result :: out u32 = low:32[R0] - -000003ec: -000003f0: R31 := R31 - 0x30 -000003f6: #4 := R31 + 0x20 -000003fc: mem := mem with [#4, el]:u64 <- R29 -00000402: mem := mem with [#4 + 8, el]:u64 <- R30 -00000408: R29 := R31 + 0x20 -0000040f: mem := mem with [R29 - 4, el]:u32 <- 0 -00000417: mem := mem with [R29 - 8, el]:u32 <- 31:0[R0] -0000041e: R8 := pad:64[mem[R29 - 8, el]:u32] -00000426: mem := mem with [R31 + 0xC, el]:u32 <- 31:0[R8] -0000042c: #5 := 31:0[R8] - 1 -00000431: VF := extend:33[#5 + 1] <> extend:33[31:0[R8]] + 0 -00000436: CF := pad:33[#5 + 1] <> pad:33[31:0[R8]] - 0x100000000 -0000043a: ZF := #5 + 1 = 0 -0000043e: NF := 31:31[#5 + 1] -00000442: R8 := pad:64[#5 + 1] -0000044e: when ZF <> 1 goto %00000447 -0000044f: goto %0000044a - -0000044a: -0000044b: R8 := 1 -00000451: goto %0000044d - -00000447: -00000448: R8 := 0 -00000450: goto %0000044d - -0000044d: -00000457: when 0:0[R8] goto %00000455 -000007e8: goto %000004e9 - -00000455: -0000045d: R8 := 0x10000 -00000464: R8 := mem[R8 + 0xFC0, el]:u64 -0000046c: mem := mem with [R31 + 0x10, el]:u64 <- R8 -00000471: goto %0000046f - -000004e9: -000004ec: goto %000004ea - -000004ea: -000004f2: R8 := pad:64[mem[R31 + 0xC, el]:u32] -000004f8: #7 := 31:0[R8] - 2 -000004fd: VF := extend:33[#7 + 1] <> extend:33[31:0[R8]] - 1 -00000502: CF := pad:33[#7 + 1] <> pad:33[31:0[R8]] + 0xFFFFFFFF -00000506: ZF := #7 + 1 = 0 -0000050a: NF := 31:31[#7 + 1] -0000050e: R8 := pad:64[#7 + 1] -0000051a: when ZF <> 1 goto %00000513 -0000051b: goto %00000516 - -00000516: -00000517: R8 := 1 -0000051d: goto %00000519 - -00000513: -00000514: R8 := 0 -0000051c: goto %00000519 - -00000519: -00000522: when 0:0[R8] goto %000004a1 -000007e9: goto %00000526 - -000004a1: -000004a4: R8 := 0x10000 -000004ab: R8 := mem[R8 + 0xFC8, el]:u64 -000004b3: mem := mem with [R31 + 0x10, el]:u64 <- R8 -000004b7: goto %0000046f - -00000526: -00000529: goto %00000527 - -00000527: -0000052f: R8 := pad:64[mem[R31 + 0xC, el]:u32] -00000535: #8 := 31:0[R8] - 3 -0000053a: VF := extend:33[#8 + 1] <> extend:33[31:0[R8]] - 2 -0000053f: CF := pad:33[#8 + 1] <> pad:33[31:0[R8]] + 0xFFFFFFFE -00000543: ZF := #8 + 1 = 0 -00000547: NF := 31:31[#8 + 1] -0000054b: R8 := pad:64[#8 + 1] -00000557: when ZF <> 1 goto %00000550 -00000558: goto %00000553 - -00000553: -00000554: R8 := 1 -0000055a: goto %00000556 - -00000550: -00000551: R8 := 0 -00000559: goto %00000556 - -00000556: -0000055f: when 0:0[R8] goto %000004b9 -000007ea: goto %00000563 - -000004b9: -000004bc: R8 := 0x10000 -000004c3: R8 := mem[R8 + 0xFD8, el]:u64 -000004cb: mem := mem with [R31 + 0x10, el]:u64 <- R8 -000004cf: goto %0000046f - -00000563: -00000565: goto %000004d1 - -000004d1: -000004d4: R8 := 0x10000 -000004db: R8 := mem[R8 + 0xFC0, el]:u64 -000004e3: mem := mem with [R31 + 0x10, el]:u64 <- R8 -000004e7: goto %0000046f - -0000046f: -00000477: R8 := mem[R31 + 0x10, el]:u64 -0000047c: R30 := 0x86C -0000047f: call R8 with return %00000481 - -00000481: -00000484: R0 := 0 -0000048a: #6 := R31 + 0x20 -0000048f: R29 := mem[#6, el]:u64 -00000494: R30 := mem[#6 + 8, el]:u64 -0000049a: R31 := R31 + 0x30 -0000049f: call R30 with noreturn - -000007c5: sub register_tm_clones(register_tm_clones_result) -000007fe: register_tm_clones_result :: out u32 = low:32[R0] - -000002f8: -000002fb: R0 := 0x11000 -00000301: R0 := R0 + 0x30 -00000306: R1 := 0x11000 -0000030c: R1 := R1 + 0x30 -00000313: R1 := R1 + ~R0 + 1 -00000319: R2 := 0.63:63[R1] -00000320: R1 := R2 + (R1 ~>> 3) -00000326: R1 := extend:64[63:1[R1]] -0000032c: when R1 = 0 goto %0000032a -000007eb: goto %000005a2 - -000005a2: -000005a5: R2 := 0x10000 -000005ac: R2 := mem[R2 + 0xFE0, el]:u64 -000005b1: when R2 = 0 goto %0000032a -000007ec: goto %000005b5 - -0000032a: -00000332: call R30 with noreturn - -000005b5: -000005b9: R16 := R2 -000005be: call R16 with noreturn - -000007c8: sub set_seven(set_seven_result) -000007ff: set_seven_result :: out u32 = low:32[R0] - -000003ce: -000003d1: R9 := 0x10000 -000003d8: R9 := mem[R9 + 0xFB0, el]:u64 -000003dd: R8 := 7 -000003e5: mem := mem with [R9, el]:u32 <- 31:0[R8] -000003ea: call R30 with noreturn - -000007c9: sub set_six(set_six_result) -00000800: set_six_result :: out u32 = low:32[R0] - -000003b0: -000003b3: R9 := 0x10000 -000003ba: R9 := mem[R9 + 0xFB0, el]:u64 -000003bf: R8 := 6 -000003c7: mem := mem with [R9, el]:u32 <- 31:0[R8] -000003cc: call R30 with noreturn - -000007ca: sub set_two(set_two_result) -00000801: set_two_result :: out u32 = low:32[R0] - -00000392: -00000395: R9 := 0x10000 -0000039c: R9 := mem[R9 + 0xFB0, el]:u64 -000003a1: R8 := 2 -000003a9: mem := mem with [R9, el]:u32 <- 31:0[R8] -000003ae: call R30 with noreturn diff --git a/src/test/indirect_calls/functionpointer/clang_pic/functionpointer.md5sum b/src/test/indirect_calls/functionpointer/clang_pic/functionpointer.md5sum new file mode 100644 index 000000000..10f1bb1ec --- /dev/null +++ b/src/test/indirect_calls/functionpointer/clang_pic/functionpointer.md5sum @@ -0,0 +1,4 @@ +cde0dd1493e74f760c4d3b85fbc38486 indirect_calls/functionpointer/clang_pic/a.out +14df3f414fecb064a4079ce090044615 indirect_calls/functionpointer/clang_pic/functionpointer.relf +e2f53148da788ad01910f707b19df54e indirect_calls/functionpointer/clang_pic/functionpointer.adt +4509a51c90ec89581f3e9f0cea0ec3c4 indirect_calls/functionpointer/clang_pic/functionpointer.bir diff --git a/src/test/indirect_calls/functionpointer/clang_pic/functionpointer.relf b/src/test/indirect_calls/functionpointer/clang_pic/functionpointer.relf deleted file mode 100644 index b0b8fec7c..000000000 --- a/src/test/indirect_calls/functionpointer/clang_pic/functionpointer.relf +++ /dev/null @@ -1,130 +0,0 @@ - -Relocation section '.rela.dyn' at offset 0x460 contains 12 entries: - Offset Info Type Symbol's Value Symbol's Name + Addend -0000000000010da8 0000000000000403 R_AARCH64_RELATIVE 790 -0000000000010db0 0000000000000403 R_AARCH64_RELATIVE 740 -0000000000010fb0 0000000000000403 R_AARCH64_RELATIVE 11034 -0000000000010fc0 0000000000000403 R_AARCH64_RELATIVE 794 -0000000000010fc8 0000000000000403 R_AARCH64_RELATIVE 7a8 -0000000000010fd0 0000000000000403 R_AARCH64_RELATIVE 7d0 -0000000000010fd8 0000000000000403 R_AARCH64_RELATIVE 7bc -0000000000011028 0000000000000403 R_AARCH64_RELATIVE 11028 -0000000000010fa0 0000000400000401 R_AARCH64_GLOB_DAT 0000000000000000 _ITM_deregisterTMCloneTable + 0 -0000000000010fa8 0000000500000401 R_AARCH64_GLOB_DAT 0000000000000000 __cxa_finalize@GLIBC_2.17 + 0 -0000000000010fb8 0000000600000401 R_AARCH64_GLOB_DAT 0000000000000000 __gmon_start__ + 0 -0000000000010fe0 0000000800000401 R_AARCH64_GLOB_DAT 0000000000000000 _ITM_registerTMCloneTable + 0 - -Relocation section '.rela.plt' at offset 0x580 contains 4 entries: - Offset Info Type Symbol's Value Symbol's Name + Addend -0000000000011000 0000000300000402 R_AARCH64_JUMP_SLOT 0000000000000000 __libc_start_main@GLIBC_2.34 + 0 -0000000000011008 0000000500000402 R_AARCH64_JUMP_SLOT 0000000000000000 __cxa_finalize@GLIBC_2.17 + 0 -0000000000011010 0000000600000402 R_AARCH64_JUMP_SLOT 0000000000000000 __gmon_start__ + 0 -0000000000011018 0000000700000402 R_AARCH64_JUMP_SLOT 0000000000000000 abort@GLIBC_2.17 + 0 - -Symbol table '.dynsym' contains 9 entries: - Num: Value Size Type Bind Vis Ndx Name - 0: 0000000000000000 0 NOTYPE LOCAL DEFAULT UND - 1: 00000000000005e0 0 SECTION LOCAL DEFAULT 11 .init - 2: 0000000000011020 0 SECTION LOCAL DEFAULT 23 .data - 3: 0000000000000000 0 FUNC GLOBAL DEFAULT UND __libc_start_main@GLIBC_2.34 (2) - 4: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_deregisterTMCloneTable - 5: 0000000000000000 0 FUNC WEAK DEFAULT UND __cxa_finalize@GLIBC_2.17 (3) - 6: 0000000000000000 0 NOTYPE WEAK DEFAULT UND __gmon_start__ - 7: 0000000000000000 0 FUNC GLOBAL DEFAULT UND abort@GLIBC_2.17 (3) - 8: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_registerTMCloneTable - -Symbol table '.symtab' contains 93 entries: - Num: Value Size Type Bind Vis Ndx Name - 0: 0000000000000000 0 NOTYPE LOCAL DEFAULT UND - 1: 0000000000000238 0 SECTION LOCAL DEFAULT 1 .interp - 2: 0000000000000254 0 SECTION LOCAL DEFAULT 2 .note.gnu.build-id - 3: 0000000000000278 0 SECTION LOCAL DEFAULT 3 .note.ABI-tag - 4: 0000000000000298 0 SECTION LOCAL DEFAULT 4 .gnu.hash - 5: 00000000000002b8 0 SECTION LOCAL DEFAULT 5 .dynsym - 6: 0000000000000390 0 SECTION LOCAL DEFAULT 6 .dynstr - 7: 000000000000041e 0 SECTION LOCAL DEFAULT 7 .gnu.version - 8: 0000000000000430 0 SECTION LOCAL DEFAULT 8 .gnu.version_r - 9: 0000000000000460 0 SECTION LOCAL DEFAULT 9 .rela.dyn - 10: 0000000000000580 0 SECTION LOCAL DEFAULT 10 .rela.plt - 11: 00000000000005e0 0 SECTION LOCAL DEFAULT 11 .init - 12: 0000000000000600 0 SECTION LOCAL DEFAULT 12 .plt - 13: 0000000000000680 0 SECTION LOCAL DEFAULT 13 .text - 14: 000000000000087c 0 SECTION LOCAL DEFAULT 14 .fini - 15: 0000000000000890 0 SECTION LOCAL DEFAULT 15 .rodata - 16: 0000000000000894 0 SECTION LOCAL DEFAULT 16 .eh_frame_hdr - 17: 00000000000008e8 0 SECTION LOCAL DEFAULT 17 .eh_frame - 18: 0000000000010da8 0 SECTION LOCAL DEFAULT 18 .init_array - 19: 0000000000010db0 0 SECTION LOCAL DEFAULT 19 .fini_array - 20: 0000000000010db8 0 SECTION LOCAL DEFAULT 20 .dynamic - 21: 0000000000010f98 0 SECTION LOCAL DEFAULT 21 .got - 22: 0000000000010fe8 0 SECTION LOCAL DEFAULT 22 .got.plt - 23: 0000000000011020 0 SECTION LOCAL DEFAULT 23 .data - 24: 0000000000011030 0 SECTION LOCAL DEFAULT 24 .bss - 25: 0000000000000000 0 SECTION LOCAL DEFAULT 25 .comment - 26: 0000000000000000 0 FILE LOCAL DEFAULT ABS Scrt1.o - 27: 0000000000000278 0 NOTYPE LOCAL DEFAULT 3 $d - 28: 0000000000000278 32 OBJECT LOCAL DEFAULT 3 __abi_tag - 29: 0000000000000680 0 NOTYPE LOCAL DEFAULT 13 $x - 30: 00000000000008fc 0 NOTYPE LOCAL DEFAULT 17 $d - 31: 0000000000000890 0 NOTYPE LOCAL DEFAULT 15 $d - 32: 0000000000000000 0 FILE LOCAL DEFAULT ABS crti.o - 33: 00000000000006b4 0 NOTYPE LOCAL DEFAULT 13 $x - 34: 00000000000006b4 20 FUNC LOCAL DEFAULT 13 call_weak_fn - 35: 00000000000005e0 0 NOTYPE LOCAL DEFAULT 11 $x - 36: 000000000000087c 0 NOTYPE LOCAL DEFAULT 14 $x - 37: 0000000000000000 0 FILE LOCAL DEFAULT ABS crtn.o - 38: 00000000000005f0 0 NOTYPE LOCAL DEFAULT 11 $x - 39: 0000000000000888 0 NOTYPE LOCAL DEFAULT 14 $x - 40: 0000000000000000 0 FILE LOCAL DEFAULT ABS crtstuff.c - 41: 00000000000006d0 0 NOTYPE LOCAL DEFAULT 13 $x - 42: 00000000000006d0 0 FUNC LOCAL DEFAULT 13 deregister_tm_clones - 43: 0000000000000700 0 FUNC LOCAL DEFAULT 13 register_tm_clones - 44: 0000000000011028 0 NOTYPE LOCAL DEFAULT 23 $d - 45: 0000000000000740 0 FUNC LOCAL DEFAULT 13 __do_global_dtors_aux - 46: 0000000000011030 1 OBJECT LOCAL DEFAULT 24 completed.0 - 47: 0000000000010db0 0 NOTYPE LOCAL DEFAULT 19 $d - 48: 0000000000010db0 0 OBJECT LOCAL DEFAULT 19 __do_global_dtors_aux_fini_array_entry - 49: 0000000000000790 0 FUNC LOCAL DEFAULT 13 frame_dummy - 50: 0000000000010da8 0 NOTYPE LOCAL DEFAULT 18 $d - 51: 0000000000010da8 0 OBJECT LOCAL DEFAULT 18 __frame_dummy_init_array_entry - 52: 0000000000000910 0 NOTYPE LOCAL DEFAULT 17 $d - 53: 0000000000011030 0 NOTYPE LOCAL DEFAULT 24 $d - 54: 0000000000000000 0 FILE LOCAL DEFAULT ABS functionpointer.c - 55: 0000000000000794 0 NOTYPE LOCAL DEFAULT 13 $x.0 - 56: 0000000000011034 0 NOTYPE LOCAL DEFAULT 24 $d.1 - 57: 000000000000002a 0 NOTYPE LOCAL DEFAULT 25 $d.2 - 58: 0000000000000970 0 NOTYPE LOCAL DEFAULT 17 $d.3 - 59: 0000000000000000 0 FILE LOCAL DEFAULT ABS crtstuff.c - 60: 00000000000009e8 0 NOTYPE LOCAL DEFAULT 17 $d - 61: 00000000000009e8 0 OBJECT LOCAL DEFAULT 17 __FRAME_END__ - 62: 0000000000000000 0 FILE LOCAL DEFAULT ABS - 63: 0000000000010db8 0 OBJECT LOCAL DEFAULT ABS _DYNAMIC - 64: 0000000000000894 0 NOTYPE LOCAL DEFAULT 16 __GNU_EH_FRAME_HDR - 65: 0000000000010f98 0 OBJECT LOCAL DEFAULT ABS _GLOBAL_OFFSET_TABLE_ - 66: 0000000000000600 0 NOTYPE LOCAL DEFAULT 12 $x - 67: 0000000000000000 0 FUNC GLOBAL DEFAULT UND __libc_start_main@GLIBC_2.34 - 68: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_deregisterTMCloneTable - 69: 0000000000011020 0 NOTYPE WEAK DEFAULT 23 data_start - 70: 0000000000011030 0 NOTYPE GLOBAL DEFAULT 24 __bss_start__ - 71: 0000000000000000 0 FUNC WEAK DEFAULT UND __cxa_finalize@GLIBC_2.17 - 72: 0000000000011038 0 NOTYPE GLOBAL DEFAULT 24 _bss_end__ - 73: 0000000000011030 0 NOTYPE GLOBAL DEFAULT 23 _edata - 74: 0000000000011034 4 OBJECT GLOBAL DEFAULT 24 x - 75: 000000000000087c 0 FUNC GLOBAL HIDDEN 14 _fini - 76: 0000000000011038 0 NOTYPE GLOBAL DEFAULT 24 __bss_end__ - 77: 0000000000011020 0 NOTYPE GLOBAL DEFAULT 23 __data_start - 78: 0000000000000000 0 NOTYPE WEAK DEFAULT UND __gmon_start__ - 79: 0000000000011028 0 OBJECT GLOBAL HIDDEN 23 __dso_handle - 80: 0000000000000000 0 FUNC GLOBAL DEFAULT UND abort@GLIBC_2.17 - 81: 0000000000000890 4 OBJECT GLOBAL DEFAULT 15 _IO_stdin_used - 82: 0000000000000794 20 FUNC GLOBAL DEFAULT 13 set_two - 83: 0000000000011038 0 NOTYPE GLOBAL DEFAULT 24 _end - 84: 0000000000000680 52 FUNC GLOBAL DEFAULT 13 _start - 85: 0000000000011038 0 NOTYPE GLOBAL DEFAULT 24 __end__ - 86: 00000000000007a8 20 FUNC GLOBAL DEFAULT 13 set_six - 87: 0000000000011030 0 NOTYPE GLOBAL DEFAULT 24 __bss_start - 88: 00000000000007d0 172 FUNC GLOBAL DEFAULT 13 main - 89: 00000000000007bc 20 FUNC GLOBAL DEFAULT 13 set_seven - 90: 0000000000011030 0 OBJECT GLOBAL HIDDEN 23 __TMC_END__ - 91: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_registerTMCloneTable - 92: 00000000000005e0 0 FUNC GLOBAL HIDDEN 11 _init diff --git a/src/test/indirect_calls/functionpointer/config.mk b/src/test/indirect_calls/functionpointer/config.mk index 2622f3baa..2ae0bd4de 100644 --- a/src/test/indirect_calls/functionpointer/config.mk +++ b/src/test/indirect_calls/functionpointer/config.mk @@ -1 +1,6 @@ -ENABLED_COMPILERS = clang clang_O2 clang_pic gcc gcc_O2 gcc_pic \ No newline at end of file +ENABLED_COMPILERS = clang clang_O2 clang_pic gcc gcc_O2 gcc_pic +LIFT_ARTEFACTS_clang := $(COMMON_ARTEFACTS) $(BAP_ARTEFACTS) +LIFT_ARTEFACTS_clang_pic := $(COMMON_ARTEFACTS) $(BAP_ARTEFACTS) +LIFT_ARTEFACTS_gcc := $(COMMON_ARTEFACTS) $(BAP_ARTEFACTS) +LIFT_ARTEFACTS_gcc_O2 := $(COMMON_ARTEFACTS) $(BAP_ARTEFACTS) +LIFT_ARTEFACTS_gcc_pic := $(COMMON_ARTEFACTS) $(BAP_ARTEFACTS) diff --git a/src/test/indirect_calls/functionpointer/gcc/functionpointer.adt b/src/test/indirect_calls/functionpointer/gcc/functionpointer.adt deleted file mode 100644 index 28d77d018..000000000 --- a/src/test/indirect_calls/functionpointer/gcc/functionpointer.adt +++ /dev/null @@ -1,718 +0,0 @@ -Project(Attrs([Attr("filename","\"gcc/functionpointer.out\""), -Attr("image-specification","(declare abi (name str))\n(declare arch (name str))\n(declare base-address (addr int))\n(declare bias (off int))\n(declare bits (size int))\n(declare code-region (addr int) (size int) (off int))\n(declare code-start (addr int))\n(declare entry-point (addr int))\n(declare external-reference (addr int) (name str))\n(declare format (name str))\n(declare is-executable (flag bool))\n(declare is-little-endian (flag bool))\n(declare llvm:base-address (addr int))\n(declare llvm:code-entry (name str) (off int) (size int))\n(declare llvm:coff-import-library (name str))\n(declare llvm:coff-virtual-section-header (name str) (addr int) (size int))\n(declare llvm:elf-program-header (name str) (off int) (size int))\n(declare llvm:elf-program-header-flags (name str) (ld bool) (r bool) \n (w bool) (x bool))\n(declare llvm:elf-virtual-program-header (name str) (addr int) (size int))\n(declare llvm:entry-point (addr int))\n(declare llvm:macho-symbol (name str) (value int))\n(declare llvm:name-reference (at int) (name str))\n(declare llvm:relocation (at int) (addr int))\n(declare llvm:section-entry (name str) (addr int) (size int) (off int))\n(declare llvm:section-flags (name str) (r bool) (w bool) (x bool))\n(declare llvm:segment-command (name str) (off int) (size int))\n(declare llvm:segment-command-flags (name str) (r bool) (w bool) (x bool))\n(declare llvm:symbol-entry (name str) (addr int) (size int) (off int)\n (value int))\n(declare llvm:virtual-segment-command (name str) (addr int) (size int))\n(declare mapped (addr int) (size int) (off int))\n(declare named-region (addr int) (size int) (name str))\n(declare named-symbol (addr int) (name str))\n(declare require (name str))\n(declare section (addr int) (size int))\n(declare segment (addr int) (size int) (r bool) (w bool) (x bool))\n(declare subarch (name str))\n(declare symbol-chunk (addr int) (size int) (root int))\n(declare symbol-value (addr int) (value int))\n(declare system (name str))\n(declare vendor (name str))\n\n(abi unknown)\n(arch aarch64)\n(base-address 0)\n(bias 0)\n(bits 64)\n(code-region 2032 20 2032)\n(code-region 1536 496 1536)\n(code-region 1440 96 1440)\n(code-region 1408 24 1408)\n(code-start 1588)\n(code-start 1812)\n(code-start 1536)\n(code-start 1836)\n(code-start 1884)\n(code-start 1860)\n(entry-point 1536)\n(external-reference 69592 _ITM_deregisterTMCloneTable)\n(external-reference 69600 __cxa_finalize)\n(external-reference 69608 __gmon_start__)\n(external-reference 69624 _ITM_registerTMCloneTable)\n(external-reference 69552 __libc_start_main)\n(external-reference 69560 __cxa_finalize)\n(external-reference 69568 __gmon_start__)\n(external-reference 69576 abort)\n(format elf)\n(is-executable true)\n(is-little-endian true)\n(llvm:base-address 0)\n(llvm:code-entry abort 0 0)\n(llvm:code-entry __cxa_finalize 0 0)\n(llvm:code-entry __libc_start_main 0 0)\n(llvm:code-entry _init 1408 0)\n(llvm:code-entry set_seven 1860 24)\n(llvm:code-entry main 1884 148)\n(llvm:code-entry set_six 1836 24)\n(llvm:code-entry _start 1536 52)\n(llvm:code-entry set_two 1812 24)\n(llvm:code-entry abort@GLIBC_2.17 0 0)\n(llvm:code-entry _fini 2032 0)\n(llvm:code-entry __cxa_finalize@GLIBC_2.17 0 0)\n(llvm:code-entry __libc_start_main@GLIBC_2.34 0 0)\n(llvm:code-entry frame_dummy 1808 0)\n(llvm:code-entry __do_global_dtors_aux 1728 0)\n(llvm:code-entry register_tm_clones 1664 0)\n(llvm:code-entry deregister_tm_clones 1616 0)\n(llvm:code-entry call_weak_fn 1588 20)\n(llvm:code-entry .fini 2032 20)\n(llvm:code-entry .text 1536 496)\n(llvm:code-entry .plt 1440 96)\n(llvm:code-entry .init 1408 24)\n(llvm:elf-program-header 08 3480 616)\n(llvm:elf-program-header 07 0 0)\n(llvm:elf-program-header 06 2056 84)\n(llvm:elf-program-header 05 596 68)\n(llvm:elf-program-header 04 3496 496)\n(llvm:elf-program-header 03 3480 632)\n(llvm:elf-program-header 02 0 2376)\n(llvm:elf-program-header 01 568 27)\n(llvm:elf-program-header 00 64 504)\n(llvm:elf-program-header-flags 08 false true false false)\n(llvm:elf-program-header-flags 07 false true true false)\n(llvm:elf-program-header-flags 06 false true false false)\n(llvm:elf-program-header-flags 05 false true false false)\n(llvm:elf-program-header-flags 04 false true true false)\n(llvm:elf-program-header-flags 03 true true true false)\n(llvm:elf-program-header-flags 02 true true false true)\n(llvm:elf-program-header-flags 01 false true false false)\n(llvm:elf-program-header-flags 00 false true false false)\n(llvm:elf-virtual-program-header 08 69016 616)\n(llvm:elf-virtual-program-header 07 0 0)\n(llvm:elf-virtual-program-header 06 2056 84)\n(llvm:elf-virtual-program-header 05 596 68)\n(llvm:elf-virtual-program-header 04 69032 496)\n(llvm:elf-virtual-program-header 03 69016 640)\n(llvm:elf-virtual-program-header 02 0 2376)\n(llvm:elf-virtual-program-header 01 568 27)\n(llvm:elf-virtual-program-header 00 64 504)\n(llvm:entry-point 1536)\n(llvm:name-reference 69576 abort)\n(llvm:name-reference 69568 __gmon_start__)\n(llvm:name-reference 69560 __cxa_finalize)\n(llvm:name-reference 69552 __libc_start_main)\n(llvm:name-reference 69624 _ITM_registerTMCloneTable)\n(llvm:name-reference 69608 __gmon_start__)\n(llvm:name-reference 69600 __cxa_finalize)\n(llvm:name-reference 69592 _ITM_deregisterTMCloneTable)\n(llvm:section-entry .shstrtab 0 250 6921)\n(llvm:section-entry .strtab 0 577 6344)\n(llvm:section-entry .symtab 0 2184 4160)\n(llvm:section-entry .comment 0 43 4112)\n(llvm:section-entry .bss 69648 8 4112)\n(llvm:section-entry .data 69632 16 4096)\n(llvm:section-entry .got 69528 104 3992)\n(llvm:section-entry .dynamic 69032 496 3496)\n(llvm:section-entry .fini_array 69024 8 3488)\n(llvm:section-entry .init_array 69016 8 3480)\n(llvm:section-entry .eh_frame 2144 232 2144)\n(llvm:section-entry .eh_frame_hdr 2056 84 2056)\n(llvm:section-entry .rodata 2052 4 2052)\n(llvm:section-entry .fini 2032 20 2032)\n(llvm:section-entry .text 1536 496 1536)\n(llvm:section-entry .plt 1440 96 1440)\n(llvm:section-entry .init 1408 24 1408)\n(llvm:section-entry .rela.plt 1312 96 1312)\n(llvm:section-entry .rela.dyn 1120 192 1120)\n(llvm:section-entry .gnu.version_r 1072 48 1072)\n(llvm:section-entry .gnu.version 1054 18 1054)\n(llvm:section-entry .dynstr 912 141 912)\n(llvm:section-entry .dynsym 696 216 696)\n(llvm:section-entry .gnu.hash 664 28 664)\n(llvm:section-entry .note.ABI-tag 632 32 632)\n(llvm:section-entry .note.gnu.build-id 596 36 596)\n(llvm:section-entry .interp 568 27 568)\n(llvm:section-flags .shstrtab true false false)\n(llvm:section-flags .strtab true false false)\n(llvm:section-flags .symtab true false false)\n(llvm:section-flags .comment true false false)\n(llvm:section-flags .bss true true false)\n(llvm:section-flags .data true true false)\n(llvm:section-flags .got true true false)\n(llvm:section-flags .dynamic true true false)\n(llvm:section-flags .fini_array true true false)\n(llvm:section-flags .init_array true true false)\n(llvm:section-flags .eh_frame true false false)\n(llvm:section-flags .eh_frame_hdr true false false)\n(llvm:section-flags .rodata true false false)\n(llvm:section-flags .fini true false true)\n(llvm:section-flags .text true false true)\n(llvm:section-flags .plt true false true)\n(llvm:section-flags .init true false true)\n(llvm:section-flags .rela.plt true false false)\n(llvm:section-flags .rela.dyn true false false)\n(llvm:section-flags .gnu.version_r true false false)\n(llvm:section-flags .gnu.version true false false)\n(llvm:section-flags .dynstr true false false)\n(llvm:section-flags .dynsym true false false)\n(llvm:section-flags .gnu.hash true false false)\n(llvm:section-flags .note.ABI-tag true false false)\n(llvm:section-flags .note.gnu.build-id true false false)\n(llvm:section-flags .interp true false false)\n(llvm:symbol-entry abort 0 0 0 0)\n(llvm:symbol-entry __cxa_finalize 0 0 0 0)\n(llvm:symbol-entry __libc_start_main 0 0 0 0)\n(llvm:symbol-entry _init 1408 0 1408 1408)\n(llvm:symbol-entry set_seven 1860 24 1860 1860)\n(llvm:symbol-entry main 1884 148 1884 1884)\n(llvm:symbol-entry set_six 1836 24 1836 1836)\n(llvm:symbol-entry _start 1536 52 1536 1536)\n(llvm:symbol-entry set_two 1812 24 1812 1812)\n(llvm:symbol-entry abort@GLIBC_2.17 0 0 0 0)\n(llvm:symbol-entry _fini 2032 0 2032 2032)\n(llvm:symbol-entry __cxa_finalize@GLIBC_2.17 0 0 0 0)\n(llvm:symbol-entry __libc_start_main@GLIBC_2.34 0 0 0 0)\n(llvm:symbol-entry frame_dummy 1808 0 1808 1808)\n(llvm:symbol-entry __do_global_dtors_aux 1728 0 1728 1728)\n(llvm:symbol-entry register_tm_clones 1664 0 1664 1664)\n(llvm:symbol-entry deregister_tm_clones 1616 0 1616 1616)\n(llvm:symbol-entry call_weak_fn 1588 20 1588 1588)\n(mapped 0 2376 0)\n(mapped 69016 632 3480)\n(named-region 0 2376 02)\n(named-region 69016 640 03)\n(named-region 568 27 .interp)\n(named-region 596 36 .note.gnu.build-id)\n(named-region 632 32 .note.ABI-tag)\n(named-region 664 28 .gnu.hash)\n(named-region 696 216 .dynsym)\n(named-region 912 141 .dynstr)\n(named-region 1054 18 .gnu.version)\n(named-region 1072 48 .gnu.version_r)\n(named-region 1120 192 .rela.dyn)\n(named-region 1312 96 .rela.plt)\n(named-region 1408 24 .init)\n(named-region 1440 96 .plt)\n(named-region 1536 496 .text)\n(named-region 2032 20 .fini)\n(named-region 2052 4 .rodata)\n(named-region 2056 84 .eh_frame_hdr)\n(named-region 2144 232 .eh_frame)\n(named-region 69016 8 .init_array)\n(named-region 69024 8 .fini_array)\n(named-region 69032 496 .dynamic)\n(named-region 69528 104 .got)\n(named-region 69632 16 .data)\n(named-region 69648 8 .bss)\n(named-region 0 43 .comment)\n(named-region 0 2184 .symtab)\n(named-region 0 577 .strtab)\n(named-region 0 250 .shstrtab)\n(named-symbol 1588 call_weak_fn)\n(named-symbol 1616 deregister_tm_clones)\n(named-symbol 1664 register_tm_clones)\n(named-symbol 1728 __do_global_dtors_aux)\n(named-symbol 1808 frame_dummy)\n(named-symbol 0 __libc_start_main@GLIBC_2.34)\n(named-symbol 0 __cxa_finalize@GLIBC_2.17)\n(named-symbol 2032 _fini)\n(named-symbol 0 abort@GLIBC_2.17)\n(named-symbol 1812 set_two)\n(named-symbol 1536 _start)\n(named-symbol 1836 set_six)\n(named-symbol 1884 main)\n(named-symbol 1860 set_seven)\n(named-symbol 1408 _init)\n(named-symbol 0 __libc_start_main)\n(named-symbol 0 __cxa_finalize)\n(named-symbol 0 abort)\n(require libc.so.6)\n(section 568 27)\n(section 596 36)\n(section 632 32)\n(section 664 28)\n(section 696 216)\n(section 912 141)\n(section 1054 18)\n(section 1072 48)\n(section 1120 192)\n(section 1312 96)\n(section 1408 24)\n(section 1440 96)\n(section 1536 496)\n(section 2032 20)\n(section 2052 4)\n(section 2056 84)\n(section 2144 232)\n(section 69016 8)\n(section 69024 8)\n(section 69032 496)\n(section 69528 104)\n(section 69632 16)\n(section 69648 8)\n(section 0 43)\n(section 0 2184)\n(section 0 577)\n(section 0 250)\n(segment 0 2376 true false true)\n(segment 69016 640 true true false)\n(subarch v8)\n(symbol-chunk 1588 20 1588)\n(symbol-chunk 1812 24 1812)\n(symbol-chunk 1536 52 1536)\n(symbol-chunk 1836 24 1836)\n(symbol-chunk 1884 148 1884)\n(symbol-chunk 1860 24 1860)\n(symbol-value 1588 1588)\n(symbol-value 1616 1616)\n(symbol-value 1664 1664)\n(symbol-value 1728 1728)\n(symbol-value 1808 1808)\n(symbol-value 2032 2032)\n(symbol-value 1812 1812)\n(symbol-value 1536 1536)\n(symbol-value 1836 1836)\n(symbol-value 1884 1884)\n(symbol-value 1860 1860)\n(symbol-value 1408 1408)\n(symbol-value 0 0)\n(system \"\")\n(vendor \"\")\n"), -Attr("abi-name","\"aarch64-linux-gnu-elf\"")]), -Sections([Section(".shstrtab", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x00\x06\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x08\x1c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x38\x00\x09\x00\x40\x00\x1c\x00\x1b\x00\x06\x00\x00\x00\x04\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x04\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x48\x09\x00\x00\x00\x00\x00\x00\x48\x09\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x01\x00\x00\x00\x06\x00\x00\x00\x98\x0d\x00\x00\x00\x00\x00\x00\x98\x0d"), -Section(".strtab", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x00\x06\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x08\x1c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x38\x00\x09\x00\x40\x00\x1c\x00\x1b\x00\x06\x00\x00\x00\x04\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x04\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x48\x09\x00\x00\x00\x00\x00\x00\x48\x09\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x01\x00\x00\x00\x06\x00\x00\x00\x98\x0d\x00\x00\x00\x00\x00\x00\x98\x0d\x01\x00\x00\x00\x00\x00\x98\x0d\x01\x00\x00\x00\x00\x00\x78\x02\x00\x00\x00\x00\x00\x00\x80\x02\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x02\x00\x00\x00\x06\x00\x00\x00\xa8\x0d\x00\x00\x00\x00\x00\x00\xa8\x0d\x01\x00\x00\x00\x00\x00\xa8\x0d\x01\x00\x00\x00\x00\x00\xf0\x01\x00\x00\x00\x00\x00\x00\xf0\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x04\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x50\xe5\x74\x64\x04\x00\x00\x00\x08\x08\x00\x00\x00\x00\x00\x00\x08\x08\x00\x00\x00\x00\x00\x00\x08\x08\x00\x00\x00\x00\x00\x00\x54\x00\x00\x00\x00\x00\x00\x00\x54\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x51\xe5\x74\x64\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x52\xe5\x74\x64\x04\x00\x00\x00\x98\x0d\x00\x00\x00\x00\x00\x00\x98\x0d\x01\x00\x00\x00\x00\x00\x98\x0d\x01\x00\x00\x00\x00\x00\x68\x02\x00\x00\x00\x00\x00\x00\x68\x02\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x2f\x6c\x69\x62\x2f\x6c\x64\x2d\x6c"), -Section(".symtab", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x00\x06\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x08\x1c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x38\x00\x09\x00\x40\x00\x1c\x00\x1b\x00\x06\x00\x00\x00\x04\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x04\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x48\x09\x00\x00\x00\x00\x00\x00\x48\x09\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x01\x00\x00\x00\x06\x00\x00\x00\x98\x0d\x00\x00\x00\x00\x00\x00\x98\x0d\x01\x00\x00\x00\x00\x00\x98\x0d\x01\x00\x00\x00\x00\x00\x78\x02\x00\x00\x00\x00\x00\x00\x80\x02\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x02\x00\x00\x00\x06\x00\x00\x00\xa8\x0d\x00\x00\x00\x00\x00\x00\xa8\x0d\x01\x00\x00\x00\x00\x00\xa8\x0d\x01\x00\x00\x00\x00\x00\xf0\x01\x00\x00\x00\x00\x00\x00\xf0\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x04\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x50\xe5\x74\x64\x04\x00\x00\x00\x08\x08\x00\x00\x00\x00\x00\x00\x08\x08\x00\x00\x00\x00\x00\x00\x08\x08\x00\x00\x00\x00\x00\x00\x54\x00\x00\x00\x00\x00\x00\x00\x54\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x51\xe5\x74\x64\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x52\xe5\x74\x64\x04\x00\x00\x00\x98\x0d\x00\x00\x00\x00\x00\x00\x98\x0d\x01\x00\x00\x00\x00\x00\x98\x0d\x01\x00\x00\x00\x00\x00\x68\x02\x00\x00\x00\x00\x00\x00\x68\x02\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x2f\x6c\x69\x62\x2f\x6c\x64\x2d\x6c\x69\x6e\x75\x78\x2d\x61\x61\x72\x63\x68\x36\x34\x2e\x73\x6f\x2e\x31\x00\x00\x04\x00\x00\x00\x14\x00\x00\x00\x03\x00\x00\x00\x47\x4e\x55\x00\x0c\xe5\x71\xf2\xaa\x49\xd4\x45\x78\x7d\xdc\xf6\x0b\x85\xa8\x6c\x6f\xca\x14\xf0\x04\x00\x00\x00\x10\x00\x00\x00\x01\x00\x00\x00\x47\x4e\x55\x00\x00\x00\x00\x00\x03\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x01\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x0b\x00\x80\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x16\x00\x00\x10\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x48\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x22\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x22\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x73\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5f\x5f\x63\x78\x61\x5f\x66\x69\x6e\x61\x6c\x69\x7a\x65\x00\x5f\x5f\x6c\x69\x62\x63\x5f\x73\x74\x61\x72\x74\x5f\x6d\x61\x69\x6e\x00\x61\x62\x6f\x72\x74\x00\x6c\x69\x62\x63\x2e\x73\x6f\x2e\x36\x00\x47\x4c\x49\x42\x43\x5f\x32\x2e\x31\x37\x00\x47\x4c\x49\x42\x43\x5f\x32\x2e\x33\x34\x00\x5f\x49\x54\x4d\x5f\x64\x65\x72\x65\x67\x69\x73\x74\x65\x72\x54\x4d\x43\x6c\x6f\x6e\x65\x54\x61\x62\x6c\x65\x00\x5f\x5f\x67\x6d\x6f\x6e\x5f\x73\x74\x61\x72\x74\x5f\x5f\x00\x5f\x49\x54\x4d\x5f\x72\x65\x67\x69\x73\x74\x65\x72\x54\x4d\x43\x6c\x6f\x6e\x65\x54\x61\x62\x6c\x65\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x01\x00\x03\x00\x01\x00\x03\x00\x01\x00\x01\x00\x02\x00\x28\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x97\x91\x96\x06\x00\x00\x03\x00\x32\x00\x00\x00\x10\x00\x00\x00\xb4\x91\x96\x06\x00\x00\x02\x00\x3d\x00\x00\x00\x00\x00\x00\x00\x98\x0d\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x10\x07\x00\x00\x00\x00\x00\x00\xa0\x0d\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\xc0\x06\x00\x00\x00\x00\x00\x00\xf0\x0f\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x5c\x07\x00\x00\x00\x00\x00\x00\x08\x10\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x08\x10\x01\x00\x00\x00\x00\x00\xd8\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe0\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe8\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xf8\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xb0\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xb8\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xc0\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xc8\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1f\x20\x03\xd5\xfd\x7b\xbf\xa9\xfd\x03\x00\x91\x2a\x00\x00\x94\xfd\x7b\xc1\xa8\xc0\x03\x5f\xd6\x00\x00\x00\x00\x00\x00\x00\x00\xf0\x7b\xbf\xa9\x90\x00\x00\x90\x11\xd6\x47\xf9\x10\xa2\x3e\x91\x20\x02\x1f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x90\x00\x00\x90\x11\xda\x47\xf9\x10\xc2\x3e\x91\x20\x02\x1f\xd6\x90\x00\x00\x90\x11\xde\x47\xf9\x10\xe2\x3e\x91\x20\x02\x1f\xd6\x90\x00\x00\x90\x11\xe2\x47\xf9\x10\x02\x3f\x91\x20\x02\x1f\xd6\x90\x00\x00\x90\x11\xe6\x47\xf9\x10\x22\x3f\x91\x20\x02\x1f\xd6\x1f\x20\x03\xd5\x1d\x00\x80\xd2\x1e\x00\x80\xd2\xe5\x03\x00\xaa\xe1\x03\x40\xf9\xe2\x23\x00\x91\xe6\x03\x00\x91\x80\x00\x00\x90\x00\xf8\x47\xf9\x03\x00\x80\xd2\x04\x00\x80\xd2\xe5\xff\xff\x97\xf0\xff\xff\x97\x80\x00\x00\x90\x00\xf4\x47\xf9\x40\x00\x00\xb4\xe8\xff\xff\x17\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x80\x00\x00\xb0\x00\x40\x00\x91\x81\x00\x00\xb0\x21\x40\x00\x91\x3f\x00\x00\xeb\xc0\x00\x00\x54\x81\x00\x00\x90\x21\xec\x47\xf9\x61\x00\x00\xb4\xf0\x03\x01\xaa\x00\x02\x1f\xd6\xc0\x03\x5f\xd6\x80\x00\x00\xb0\x00\x40\x00\x91\x81\x00\x00\xb0\x21\x40\x00\x91\x21\x00\x00\xcb\x22\xfc\x7f\xd3\x41\x0c\x81\x8b\x21\xfc\x41\x93\xc1\x00\x00\xb4\x82\x00\x00\x90\x42\xfc\x47\xf9\x62\x00\x00\xb4\xf0\x03\x02\xaa\x00\x02\x1f\xd6\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\xfd\x7b\xbe\xa9\xfd\x03\x00\x91\xf3\x0b\x00\xf9\x93\x00\x00\xb0\x60\x42\x40\x39\x40\x01\x00\x35\x80\x00\x00\x90\x00\xf0\x47\xf9\x80\x00\x00\xb4\x80\x00\x00\xb0\x00\x04\x40\xf9\xb9\xff\xff\x97\xd8\xff\xff\x97\x20\x00\x80\x52\x60\x42\x00\x39\xf3\x0b\x40\xf9\xfd\x7b\xc2\xa8\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\xdc\xff\xff\x17\x80\x00\x00\xb0\x00\x50\x00\x91\x41\x00\x80\x52\x01\x00\x00\xb9\x1f\x20\x03\xd5\xc0\x03\x5f\xd6\x80\x00\x00\xb0\x00\x50\x00\x91\xc1\x00\x80\x52\x01\x00\x00\xb9\x1f\x20\x03\xd5\xc0\x03\x5f\xd6\x80\x00\x00\xb0\x00\x50\x00\x91\xe1\x00\x80\x52\x01\x00\x00\xb9\x1f\x20\x03\xd5\xc0\x03\x5f\xd6\xfd\x7b\xbd\xa9\xfd\x03\x00\x91\xe0\x1f\x00\xb9\xe0\x1f\x40\xb9\x1f\x08\x00\x71\x60\x02\x00\x54\xe0\x1f\x40\xb9\x1f\x08\x00\x71\x8c\x02\x00\x54\xe0\x1f\x40\xb9\x1f\x00\x00\x71\xa0\x00\x00\x54\xe0\x1f\x40\xb9\x1f\x04\x00\x71\xc0\x00\x00\x54\x0d\x00\x00\x14\x00\x00\x00\x90\x00\x50\x1c\x91\xe0\x17\x00\xf9\x0d\x00\x00\x14\x00\x00\x00\x90\x00\xb0\x1c\x91\xe0\x17\x00\xf9\x09\x00\x00\x14\x00\x00\x00\x90\x00\x10\x1d\x91\xe0\x17\x00\xf9\x05\x00\x00\x14\x00\x00\x00\x90\x00\x50\x1c\x91\xe0\x17\x00\xf9\x1f\x20\x03\xd5\xe0\x17\x40\xf9\x00\x00\x3f\xd6\x00\x00\x80\x52\xfd\x7b\xc3\xa8\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\xfd\x7b\xbf\xa9\xfd\x03\x00\x91\xfd\x7b\xc1\xa8\xc0\x03\x5f\xd6\x01\x00\x02\x00\x01\x1b\x03\x3b\x54\x00\x00\x00\x09\x00\x00\x00\xf8\xfd\xff\xff\x6c\x00\x00\x00\x48\xfe\xff\xff\x80\x00\x00\x00\x78\xfe\xff\xff\x94\x00\x00\x00\xb8\xfe\xff\xff\xa8\x00\x00\x00\x08\xff\xff\xff\xcc\x00\x00\x00\x0c\xff\xff\xff\xe0\x00\x00\x00\x24\xff\xff\xff\xf4\x00\x00\x00\x3c\xff\xff\xff\x08\x01\x00\x00\x54\xff\xff\xff\x1c\x01\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x01\x7a\x52\x00\x04\x78\x1e\x01\x1b\x0c\x1f\x00\x10\x00\x00\x00\x18\x00\x00\x00\x84\xfd\xff\xff\x34\x00\x00\x00\x00\x41\x07\x1e"), -Section(".comment", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x00\x06\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x08\x1c\x00"), -Section(".interp", 0x238, "\x2f\x6c\x69\x62\x2f\x6c\x64\x2d\x6c\x69\x6e\x75\x78\x2d\x61\x61\x72\x63\x68\x36\x34\x2e\x73\x6f\x2e\x31\x00"), -Section(".note.gnu.build-id", 0x254, "\x04\x00\x00\x00\x14\x00\x00\x00\x03\x00\x00\x00\x47\x4e\x55\x00\x0c\xe5\x71\xf2\xaa\x49\xd4\x45\x78\x7d\xdc\xf6\x0b\x85\xa8\x6c\x6f\xca\x14\xf0"), -Section(".note.ABI-tag", 0x278, "\x04\x00\x00\x00\x10\x00\x00\x00\x01\x00\x00\x00\x47\x4e\x55\x00\x00\x00\x00\x00\x03\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00"), -Section(".gnu.hash", 0x298, "\x01\x00\x00\x00\x01\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".dynsym", 0x2B8, "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x0b\x00\x80\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x16\x00\x00\x10\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x48\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x22\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x22\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x73\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".dynstr", 0x390, "\x00\x5f\x5f\x63\x78\x61\x5f\x66\x69\x6e\x61\x6c\x69\x7a\x65\x00\x5f\x5f\x6c\x69\x62\x63\x5f\x73\x74\x61\x72\x74\x5f\x6d\x61\x69\x6e\x00\x61\x62\x6f\x72\x74\x00\x6c\x69\x62\x63\x2e\x73\x6f\x2e\x36\x00\x47\x4c\x49\x42\x43\x5f\x32\x2e\x31\x37\x00\x47\x4c\x49\x42\x43\x5f\x32\x2e\x33\x34\x00\x5f\x49\x54\x4d\x5f\x64\x65\x72\x65\x67\x69\x73\x74\x65\x72\x54\x4d\x43\x6c\x6f\x6e\x65\x54\x61\x62\x6c\x65\x00\x5f\x5f\x67\x6d\x6f\x6e\x5f\x73\x74\x61\x72\x74\x5f\x5f\x00\x5f\x49\x54\x4d\x5f\x72\x65\x67\x69\x73\x74\x65\x72\x54\x4d\x43\x6c\x6f\x6e\x65\x54\x61\x62\x6c\x65\x00"), -Section(".gnu.version", 0x41E, "\x00\x00\x00\x00\x00\x00\x02\x00\x01\x00\x03\x00\x01\x00\x03\x00\x01\x00"), -Section(".gnu.version_r", 0x430, "\x01\x00\x02\x00\x28\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x97\x91\x96\x06\x00\x00\x03\x00\x32\x00\x00\x00\x10\x00\x00\x00\xb4\x91\x96\x06\x00\x00\x02\x00\x3d\x00\x00\x00\x00\x00\x00\x00"), -Section(".rela.dyn", 0x460, "\x98\x0d\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x10\x07\x00\x00\x00\x00\x00\x00\xa0\x0d\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\xc0\x06\x00\x00\x00\x00\x00\x00\xf0\x0f\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x5c\x07\x00\x00\x00\x00\x00\x00\x08\x10\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x08\x10\x01\x00\x00\x00\x00\x00\xd8\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe0\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe8\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xf8\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".rela.plt", 0x520, "\xb0\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xb8\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xc0\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xc8\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".init", 0x580, "\x1f\x20\x03\xd5\xfd\x7b\xbf\xa9\xfd\x03\x00\x91\x2a\x00\x00\x94\xfd\x7b\xc1\xa8\xc0\x03\x5f\xd6"), -Section(".plt", 0x5A0, "\xf0\x7b\xbf\xa9\x90\x00\x00\x90\x11\xd6\x47\xf9\x10\xa2\x3e\x91\x20\x02\x1f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x90\x00\x00\x90\x11\xda\x47\xf9\x10\xc2\x3e\x91\x20\x02\x1f\xd6\x90\x00\x00\x90\x11\xde\x47\xf9\x10\xe2\x3e\x91\x20\x02\x1f\xd6\x90\x00\x00\x90\x11\xe2\x47\xf9\x10\x02\x3f\x91\x20\x02\x1f\xd6\x90\x00\x00\x90\x11\xe6\x47\xf9\x10\x22\x3f\x91\x20\x02\x1f\xd6"), -Section(".text", 0x600, "\x1f\x20\x03\xd5\x1d\x00\x80\xd2\x1e\x00\x80\xd2\xe5\x03\x00\xaa\xe1\x03\x40\xf9\xe2\x23\x00\x91\xe6\x03\x00\x91\x80\x00\x00\x90\x00\xf8\x47\xf9\x03\x00\x80\xd2\x04\x00\x80\xd2\xe5\xff\xff\x97\xf0\xff\xff\x97\x80\x00\x00\x90\x00\xf4\x47\xf9\x40\x00\x00\xb4\xe8\xff\xff\x17\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x80\x00\x00\xb0\x00\x40\x00\x91\x81\x00\x00\xb0\x21\x40\x00\x91\x3f\x00\x00\xeb\xc0\x00\x00\x54\x81\x00\x00\x90\x21\xec\x47\xf9\x61\x00\x00\xb4\xf0\x03\x01\xaa\x00\x02\x1f\xd6\xc0\x03\x5f\xd6\x80\x00\x00\xb0\x00\x40\x00\x91\x81\x00\x00\xb0\x21\x40\x00\x91\x21\x00\x00\xcb\x22\xfc\x7f\xd3\x41\x0c\x81\x8b\x21\xfc\x41\x93\xc1\x00\x00\xb4\x82\x00\x00\x90\x42\xfc\x47\xf9\x62\x00\x00\xb4\xf0\x03\x02\xaa\x00\x02\x1f\xd6\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\xfd\x7b\xbe\xa9\xfd\x03\x00\x91\xf3\x0b\x00\xf9\x93\x00\x00\xb0\x60\x42\x40\x39\x40\x01\x00\x35\x80\x00\x00\x90\x00\xf0\x47\xf9\x80\x00\x00\xb4\x80\x00\x00\xb0\x00\x04\x40\xf9\xb9\xff\xff\x97\xd8\xff\xff\x97\x20\x00\x80\x52\x60\x42\x00\x39\xf3\x0b\x40\xf9\xfd\x7b\xc2\xa8\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\xdc\xff\xff\x17\x80\x00\x00\xb0\x00\x50\x00\x91\x41\x00\x80\x52\x01\x00\x00\xb9\x1f\x20\x03\xd5\xc0\x03\x5f\xd6\x80\x00\x00\xb0\x00\x50\x00\x91\xc1\x00\x80\x52\x01\x00\x00\xb9\x1f\x20\x03\xd5\xc0\x03\x5f\xd6\x80\x00\x00\xb0\x00\x50\x00\x91\xe1\x00\x80\x52\x01\x00\x00\xb9\x1f\x20\x03\xd5\xc0\x03\x5f\xd6\xfd\x7b\xbd\xa9\xfd\x03\x00\x91\xe0\x1f\x00\xb9\xe0\x1f\x40\xb9\x1f\x08\x00\x71\x60\x02\x00\x54\xe0\x1f\x40\xb9\x1f\x08\x00\x71\x8c\x02\x00\x54\xe0\x1f\x40\xb9\x1f\x00\x00\x71\xa0\x00\x00\x54\xe0\x1f\x40\xb9\x1f\x04\x00\x71\xc0\x00\x00\x54\x0d\x00\x00\x14\x00\x00\x00\x90\x00\x50\x1c\x91\xe0\x17\x00\xf9\x0d\x00\x00\x14\x00\x00\x00\x90\x00\xb0\x1c\x91\xe0\x17\x00\xf9\x09\x00\x00\x14\x00\x00\x00\x90\x00\x10\x1d\x91\xe0\x17\x00\xf9\x05\x00\x00\x14\x00\x00\x00\x90\x00\x50\x1c\x91\xe0\x17\x00\xf9\x1f\x20\x03\xd5\xe0\x17\x40\xf9\x00\x00\x3f\xd6\x00\x00\x80\x52\xfd\x7b\xc3\xa8\xc0\x03\x5f\xd6"), -Section(".fini", 0x7F0, "\x1f\x20\x03\xd5\xfd\x7b\xbf\xa9\xfd\x03\x00\x91\xfd\x7b\xc1\xa8\xc0\x03\x5f\xd6"), -Section(".rodata", 0x804, "\x01\x00\x02\x00"), -Section(".eh_frame_hdr", 0x808, "\x01\x1b\x03\x3b\x54\x00\x00\x00\x09\x00\x00\x00\xf8\xfd\xff\xff\x6c\x00\x00\x00\x48\xfe\xff\xff\x80\x00\x00\x00\x78\xfe\xff\xff\x94\x00\x00\x00\xb8\xfe\xff\xff\xa8\x00\x00\x00\x08\xff\xff\xff\xcc\x00\x00\x00\x0c\xff\xff\xff\xe0\x00\x00\x00\x24\xff\xff\xff\xf4\x00\x00\x00\x3c\xff\xff\xff\x08\x01\x00\x00\x54\xff\xff\xff\x1c\x01\x00\x00"), -Section(".eh_frame", 0x860, "\x10\x00\x00\x00\x00\x00\x00\x00\x01\x7a\x52\x00\x04\x78\x1e\x01\x1b\x0c\x1f\x00\x10\x00\x00\x00\x18\x00\x00\x00\x84\xfd\xff\xff\x34\x00\x00\x00\x00\x41\x07\x1e\x10\x00\x00\x00\x2c\x00\x00\x00\xc0\xfd\xff\xff\x30\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x40\x00\x00\x00\xdc\xfd\xff\xff\x3c\x00\x00\x00\x00\x00\x00\x00\x20\x00\x00\x00\x54\x00\x00\x00\x08\xfe\xff\xff\x48\x00\x00\x00\x00\x41\x0e\x20\x9d\x04\x9e\x03\x42\x93\x02\x4e\xde\xdd\xd3\x0e\x00\x00\x00\x00\x10\x00\x00\x00\x78\x00\x00\x00\x34\xfe\xff\xff\x04\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x8c\x00\x00\x00\x24\xfe\xff\xff\x18\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\xa0\x00\x00\x00\x28\xfe\xff\xff\x18\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\xb4\x00\x00\x00\x2c\xfe\xff\xff\x18\x00\x00\x00\x00\x00\x00\x00\x1c\x00\x00\x00\xc8\x00\x00\x00\x30\xfe\xff\xff\x94\x00\x00\x00\x00\x41\x0e\x30\x9d\x06\x9e\x05\x63\xde\xdd\x0e\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".fini_array", 0x10DA0, "\xc0\x06\x00\x00\x00\x00\x00\x00"), -Section(".dynamic", 0x10DA8, "\x01\x00\x00\x00\x00\x00\x00\x00\x28\x00\x00\x00\x00\x00\x00\x00\x0c\x00\x00\x00\x00\x00\x00\x00\x80\x05\x00\x00\x00\x00\x00\x00\x0d\x00\x00\x00\x00\x00\x00\x00\xf0\x07\x00\x00\x00\x00\x00\x00\x19\x00\x00\x00\x00\x00\x00\x00\x98\x0d\x01\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x1a\x00\x00\x00\x00\x00\x00\x00\xa0\x0d\x01\x00\x00\x00\x00\x00\x1c\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\xf5\xfe\xff\x6f\x00\x00\x00\x00\x98\x02\x00\x00\x00\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x90\x03\x00\x00\x00\x00\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\xb8\x02\x00\x00\x00\x00\x00\x00\x0a\x00\x00\x00\x00\x00\x00\x00\x8d\x00\x00\x00\x00\x00\x00\x00\x0b\x00\x00\x00\x00\x00\x00\x00\x18\x00\x00\x00\x00\x00\x00\x00\x15\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x98\x0f\x01\x00\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x60\x00\x00\x00\x00\x00\x00\x00\x14\x00\x00\x00\x00\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x17\x00\x00\x00\x00\x00\x00\x00\x20\x05\x00\x00\x00\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x60\x04\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\xc0\x00\x00\x00\x00\x00\x00\x00\x09\x00\x00\x00\x00\x00\x00\x00\x18\x00\x00\x00\x00\x00\x00\x00\x1e\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\xfb\xff\xff\x6f\x00\x00\x00\x00\x01\x00\x00\x08\x00\x00\x00\x00\xfe\xff\xff\x6f\x00\x00\x00\x00\x30\x04\x00\x00\x00\x00\x00\x00\xff\xff\xff\x6f\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\xf0\xff\xff\x6f\x00\x00\x00\x00\x1e\x04\x00\x00\x00\x00\x00\x00\xf9\xff\xff\x6f\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".got", 0x10F98, "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xa0\x05\x00\x00\x00\x00\x00\x00\xa0\x05\x00\x00\x00\x00\x00\x00\xa0\x05\x00\x00\x00\x00\x00\x00\xa0\x05\x00\x00\x00\x00\x00\x00\xa8\x0d\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5c\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".data", 0x11000, "\x00\x00\x00\x00\x00\x00\x00\x00\x08\x10\x01\x00\x00\x00\x00\x00"), -Section(".init_array", 0x10D98, "\x10\x07\x00\x00\x00\x00\x00\x00")]), -Memmap([Annotation(Region(0x0,0x947), Attr("segment","02 0 2376")), -Annotation(Region(0x600,0x633), Attr("symbol","\"_start\"")), -Annotation(Region(0x0,0xF9), Attr("section","\".shstrtab\"")), -Annotation(Region(0x0,0x240), Attr("section","\".strtab\"")), -Annotation(Region(0x0,0x887), Attr("section","\".symtab\"")), -Annotation(Region(0x0,0x2A), Attr("section","\".comment\"")), -Annotation(Region(0x238,0x252), Attr("section","\".interp\"")), -Annotation(Region(0x254,0x277), Attr("section","\".note.gnu.build-id\"")), -Annotation(Region(0x278,0x297), Attr("section","\".note.ABI-tag\"")), -Annotation(Region(0x298,0x2B3), Attr("section","\".gnu.hash\"")), -Annotation(Region(0x2B8,0x38F), Attr("section","\".dynsym\"")), -Annotation(Region(0x390,0x41C), Attr("section","\".dynstr\"")), -Annotation(Region(0x41E,0x42F), Attr("section","\".gnu.version\"")), -Annotation(Region(0x430,0x45F), Attr("section","\".gnu.version_r\"")), -Annotation(Region(0x460,0x51F), Attr("section","\".rela.dyn\"")), -Annotation(Region(0x520,0x57F), Attr("section","\".rela.plt\"")), -Annotation(Region(0x580,0x597), Attr("section","\".init\"")), -Annotation(Region(0x5A0,0x5FF), Attr("section","\".plt\"")), -Annotation(Region(0x580,0x597), Attr("code-region","()")), -Annotation(Region(0x5A0,0x5FF), Attr("code-region","()")), -Annotation(Region(0x600,0x633), Attr("symbol-info","_start 0x600 52")), -Annotation(Region(0x634,0x647), Attr("symbol","\"call_weak_fn\"")), -Annotation(Region(0x634,0x647), Attr("symbol-info","call_weak_fn 0x634 20")), -Annotation(Region(0x714,0x72B), Attr("symbol","\"set_two\"")), -Annotation(Region(0x714,0x72B), Attr("symbol-info","set_two 0x714 24")), -Annotation(Region(0x72C,0x743), Attr("symbol","\"set_six\"")), -Annotation(Region(0x72C,0x743), Attr("symbol-info","set_six 0x72C 24")), -Annotation(Region(0x744,0x75B), Attr("symbol","\"set_seven\"")), -Annotation(Region(0x600,0x7EF), Attr("section","\".text\"")), -Annotation(Region(0x600,0x7EF), Attr("code-region","()")), -Annotation(Region(0x744,0x75B), Attr("symbol-info","set_seven 0x744 24")), -Annotation(Region(0x75C,0x7EF), Attr("symbol","\"main\"")), -Annotation(Region(0x75C,0x7EF), Attr("symbol-info","main 0x75C 148")), -Annotation(Region(0x7F0,0x803), Attr("section","\".fini\"")), -Annotation(Region(0x7F0,0x803), Attr("code-region","()")), -Annotation(Region(0x804,0x807), Attr("section","\".rodata\"")), -Annotation(Region(0x808,0x85B), Attr("section","\".eh_frame_hdr\"")), -Annotation(Region(0x860,0x947), Attr("section","\".eh_frame\"")), -Annotation(Region(0x10D98,0x1100F), Attr("segment","03 0x10D98 640")), -Annotation(Region(0x10DA0,0x10DA7), Attr("section","\".fini_array\"")), -Annotation(Region(0x10DA8,0x10F97), Attr("section","\".dynamic\"")), -Annotation(Region(0x10F98,0x10FFF), Attr("section","\".got\"")), -Annotation(Region(0x11000,0x1100F), Attr("section","\".data\"")), -Annotation(Region(0x10D98,0x10D9F), Attr("section","\".init_array\""))]), -Program(Tid(2_123, "%0000084b"), Attrs([]), - Subs([Sub(Tid(2_057, "@__cxa_finalize"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x5D0"), -Attr("stub","()")]), "__cxa_finalize", Args([Arg(Tid(2_124, "%0000084c"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("__cxa_finalize_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(1_375, "@__cxa_finalize"), - Attrs([Attr("address","0x5D0")]), Phis([]), -Defs([Def(Tid(1_623, "%00000657"), Attrs([Attr("address","0x5D0"), -Attr("insn","adrp x16, #65536")]), Var("R16",Imm(64)), Int(65536,64)), -Def(Tid(1_630, "%0000065e"), Attrs([Attr("address","0x5D4"), -Attr("insn","ldr x17, [x16, #0xfb8]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(4024,64)),LittleEndian(),64)), -Def(Tid(1_636, "%00000664"), Attrs([Attr("address","0x5D8"), -Attr("insn","add x16, x16, #0xfb8")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(4024,64)))]), Jmps([Call(Tid(1_641, "%00000669"), - Attrs([Attr("address","0x5DC"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), -Sub(Tid(2_058, "@__do_global_dtors_aux"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x6C0")]), - "__do_global_dtors_aux", Args([Arg(Tid(2_125, "%0000084d"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("__do_global_dtors_aux_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(810, "@__do_global_dtors_aux"), - Attrs([Attr("address","0x6C0")]), Phis([]), Defs([Def(Tid(814, "%0000032e"), - Attrs([Attr("address","0x6C0"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("#3",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(18446744073709551584,64))), -Def(Tid(820, "%00000334"), Attrs([Attr("address","0x6C0"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("#3",Imm(64)),Var("R29",Imm(64)),LittleEndian(),64)), -Def(Tid(826, "%0000033a"), Attrs([Attr("address","0x6C0"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("#3",Imm(64)),Int(8,64)),Var("R30",Imm(64)),LittleEndian(),64)), -Def(Tid(830, "%0000033e"), Attrs([Attr("address","0x6C0"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("R31",Imm(64)), -Var("#3",Imm(64))), Def(Tid(836, "%00000344"), - Attrs([Attr("address","0x6C4"), Attr("insn","mov x29, sp")]), - Var("R29",Imm(64)), Var("R31",Imm(64))), Def(Tid(844, "%0000034c"), - Attrs([Attr("address","0x6C8"), Attr("insn","str x19, [sp, #0x10]")]), - Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(16,64)),Var("R19",Imm(64)),LittleEndian(),64)), -Def(Tid(849, "%00000351"), Attrs([Attr("address","0x6CC"), -Attr("insn","adrp x19, #69632")]), Var("R19",Imm(64)), Int(69632,64)), -Def(Tid(856, "%00000358"), Attrs([Attr("address","0x6D0"), -Attr("insn","ldrb w0, [x19, #0x10]")]), Var("R0",Imm(64)), -UNSIGNED(64,Load(Var("mem",Mem(64,8)),PLUS(Var("R19",Imm(64)),Int(16,64)),LittleEndian(),8)))]), -Jmps([Goto(Tid(863, "%0000035f"), Attrs([Attr("address","0x6D4"), -Attr("insn","cbnz w0, #0x28")]), - NEQ(Extract(31,0,Var("R0",Imm(64))),Int(0,32)), -Direct(Tid(861, "%0000035d"))), Goto(Tid(2_108, "%0000083c"), Attrs([]), - Int(1,1), Direct(Tid(1_320, "%00000528")))])), Blk(Tid(1_320, "%00000528"), - Attrs([Attr("address","0x6D8")]), Phis([]), -Defs([Def(Tid(1_323, "%0000052b"), Attrs([Attr("address","0x6D8"), -Attr("insn","adrp x0, #65536")]), Var("R0",Imm(64)), Int(65536,64)), -Def(Tid(1_330, "%00000532"), Attrs([Attr("address","0x6DC"), -Attr("insn","ldr x0, [x0, #0xfe0]")]), Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(4064,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(1_336, "%00000538"), Attrs([Attr("address","0x6E0"), -Attr("insn","cbz x0, #0x10")]), EQ(Var("R0",Imm(64)),Int(0,64)), -Direct(Tid(1_334, "%00000536"))), Goto(Tid(2_109, "%0000083d"), Attrs([]), - Int(1,1), Direct(Tid(1_359, "%0000054f")))])), Blk(Tid(1_359, "%0000054f"), - Attrs([Attr("address","0x6E4")]), Phis([]), -Defs([Def(Tid(1_362, "%00000552"), Attrs([Attr("address","0x6E4"), -Attr("insn","adrp x0, #69632")]), Var("R0",Imm(64)), Int(69632,64)), -Def(Tid(1_369, "%00000559"), Attrs([Attr("address","0x6E8"), -Attr("insn","ldr x0, [x0, #0x8]")]), Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(1_374, "%0000055e"), Attrs([Attr("address","0x6EC"), -Attr("insn","bl #-0x11c")]), Var("R30",Imm(64)), Int(1776,64))]), -Jmps([Call(Tid(1_377, "%00000561"), Attrs([Attr("address","0x6EC"), -Attr("insn","bl #-0x11c")]), Int(1,1), -(Direct(Tid(2_057, "@__cxa_finalize")),Direct(Tid(1_334, "%00000536"))))])), -Blk(Tid(1_334, "%00000536"), Attrs([Attr("address","0x6F0")]), Phis([]), -Defs([Def(Tid(1_342, "%0000053e"), Attrs([Attr("address","0x6F0"), -Attr("insn","bl #-0xa0")]), Var("R30",Imm(64)), Int(1780,64))]), -Jmps([Call(Tid(1_344, "%00000540"), Attrs([Attr("address","0x6F0"), -Attr("insn","bl #-0xa0")]), Int(1,1), -(Direct(Tid(2_071, "@deregister_tm_clones")),Direct(Tid(1_346, "%00000542"))))])), -Blk(Tid(1_346, "%00000542"), Attrs([Attr("address","0x6F4")]), Phis([]), -Defs([Def(Tid(1_349, "%00000545"), Attrs([Attr("address","0x6F4"), -Attr("insn","mov w0, #0x1")]), Var("R0",Imm(64)), Int(1,64)), -Def(Tid(1_357, "%0000054d"), Attrs([Attr("address","0x6F8"), -Attr("insn","strb w0, [x19, #0x10]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R19",Imm(64)),Int(16,64)),Extract(7,0,Var("R0",Imm(64))),LittleEndian(),8))]), -Jmps([Goto(Tid(2_110, "%0000083e"), Attrs([]), Int(1,1), -Direct(Tid(861, "%0000035d")))])), Blk(Tid(861, "%0000035d"), - Attrs([Attr("address","0x6FC")]), Phis([]), Defs([Def(Tid(871, "%00000367"), - Attrs([Attr("address","0x6FC"), Attr("insn","ldr x19, [sp, #0x10]")]), - Var("R19",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(16,64)),LittleEndian(),64)), -Def(Tid(878, "%0000036e"), Attrs([Attr("address","0x700"), -Attr("insn","ldp x29, x30, [sp], #0x20")]), Var("R29",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(883, "%00000373"), Attrs([Attr("address","0x700"), -Attr("insn","ldp x29, x30, [sp], #0x20")]), Var("R30",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(887, "%00000377"), Attrs([Attr("address","0x700"), -Attr("insn","ldp x29, x30, [sp], #0x20")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(32,64)))]), Jmps([Call(Tid(892, "%0000037c"), - Attrs([Attr("address","0x704"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), Sub(Tid(2_062, "@__libc_start_main"), - Attrs([Attr("c.proto","signed (*)(signed (*)(signed , char** , char** );* main, signed , char** , \nvoid* auxv)"), -Attr("address","0x5C0"), Attr("stub","()")]), "__libc_start_main", - Args([Arg(Tid(2_126, "%0000084e"), - Attrs([Attr("c.layout","**[ : 64]"), -Attr("c.data","Top:u64 ptr ptr"), -Attr("c.type","signed (*)(signed , char** , char** );*")]), - Var("__libc_start_main_main",Imm(64)), Var("R0",Imm(64)), In()), -Arg(Tid(2_127, "%0000084f"), Attrs([Attr("c.layout","[signed : 32]"), -Attr("c.data","Top:u32"), Attr("c.type","signed")]), - Var("__libc_start_main_arg2",Imm(32)), LOW(32,Var("R1",Imm(64))), In()), -Arg(Tid(2_128, "%00000850"), Attrs([Attr("c.layout","**[char : 8]"), -Attr("c.data","Top:u8 ptr ptr"), Attr("c.type","char**")]), - Var("__libc_start_main_arg3",Imm(64)), Var("R2",Imm(64)), Both()), -Arg(Tid(2_129, "%00000851"), Attrs([Attr("c.layout","*[ : 8]"), -Attr("c.data","{} ptr"), Attr("c.type","void*")]), - Var("__libc_start_main_auxv",Imm(64)), Var("R3",Imm(64)), Both()), -Arg(Tid(2_130, "%00000852"), Attrs([Attr("c.layout","[signed : 32]"), -Attr("c.data","Top:u32"), Attr("c.type","signed")]), - Var("__libc_start_main_result",Imm(32)), LOW(32,Var("R0",Imm(64))), -Out())]), Blks([Blk(Tid(643, "@__libc_start_main"), - Attrs([Attr("address","0x5C0")]), Phis([]), -Defs([Def(Tid(1_601, "%00000641"), Attrs([Attr("address","0x5C0"), -Attr("insn","adrp x16, #65536")]), Var("R16",Imm(64)), Int(65536,64)), -Def(Tid(1_608, "%00000648"), Attrs([Attr("address","0x5C4"), -Attr("insn","ldr x17, [x16, #0xfb0]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(4016,64)),LittleEndian(),64)), -Def(Tid(1_614, "%0000064e"), Attrs([Attr("address","0x5C8"), -Attr("insn","add x16, x16, #0xfb0")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(4016,64)))]), Jmps([Call(Tid(1_619, "%00000653"), - Attrs([Attr("address","0x5CC"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), Sub(Tid(2_063, "@_fini"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x7F0")]), - "_fini", Args([Arg(Tid(2_131, "%00000853"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("_fini_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(31, "@_fini"), - Attrs([Attr("address","0x7F0")]), Phis([]), Defs([Def(Tid(37, "%00000025"), - Attrs([Attr("address","0x7F4"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("#0",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(18446744073709551600,64))), -Def(Tid(43, "%0000002b"), Attrs([Attr("address","0x7F4"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("#0",Imm(64)),Var("R29",Imm(64)),LittleEndian(),64)), -Def(Tid(49, "%00000031"), Attrs([Attr("address","0x7F4"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("#0",Imm(64)),Int(8,64)),Var("R30",Imm(64)),LittleEndian(),64)), -Def(Tid(53, "%00000035"), Attrs([Attr("address","0x7F4"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("R31",Imm(64)), -Var("#0",Imm(64))), Def(Tid(59, "%0000003b"), Attrs([Attr("address","0x7F8"), -Attr("insn","mov x29, sp")]), Var("R29",Imm(64)), Var("R31",Imm(64))), -Def(Tid(66, "%00000042"), Attrs([Attr("address","0x7FC"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R29",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(71, "%00000047"), Attrs([Attr("address","0x7FC"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R30",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(75, "%0000004b"), Attrs([Attr("address","0x7FC"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(16,64)))]), Jmps([Call(Tid(80, "%00000050"), - Attrs([Attr("address","0x800"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), Sub(Tid(2_064, "@_init"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x580")]), - "_init", Args([Arg(Tid(2_132, "%00000854"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("_init_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(1_844, "@_init"), - Attrs([Attr("address","0x580")]), Phis([]), -Defs([Def(Tid(1_850, "%0000073a"), Attrs([Attr("address","0x584"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("#10",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(18446744073709551600,64))), -Def(Tid(1_856, "%00000740"), Attrs([Attr("address","0x584"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("#10",Imm(64)),Var("R29",Imm(64)),LittleEndian(),64)), -Def(Tid(1_862, "%00000746"), Attrs([Attr("address","0x584"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("#10",Imm(64)),Int(8,64)),Var("R30",Imm(64)),LittleEndian(),64)), -Def(Tid(1_866, "%0000074a"), Attrs([Attr("address","0x584"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("R31",Imm(64)), -Var("#10",Imm(64))), Def(Tid(1_872, "%00000750"), - Attrs([Attr("address","0x588"), Attr("insn","mov x29, sp")]), - Var("R29",Imm(64)), Var("R31",Imm(64))), Def(Tid(1_877, "%00000755"), - Attrs([Attr("address","0x58C"), Attr("insn","bl #0xa8")]), - Var("R30",Imm(64)), Int(1424,64))]), Jmps([Call(Tid(1_879, "%00000757"), - Attrs([Attr("address","0x58C"), Attr("insn","bl #0xa8")]), Int(1,1), -(Direct(Tid(2_069, "@call_weak_fn")),Direct(Tid(1_881, "%00000759"))))])), -Blk(Tid(1_881, "%00000759"), Attrs([Attr("address","0x590")]), Phis([]), -Defs([Def(Tid(1_886, "%0000075e"), Attrs([Attr("address","0x590"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R29",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(1_891, "%00000763"), Attrs([Attr("address","0x590"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R30",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(1_895, "%00000767"), Attrs([Attr("address","0x590"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(16,64)))]), Jmps([Call(Tid(1_900, "%0000076c"), - Attrs([Attr("address","0x594"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), Sub(Tid(2_065, "@_start"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x600"), -Attr("stub","()"), Attr("entry-point","()")]), "_start", - Args([Arg(Tid(2_133, "%00000855"), Attrs([Attr("c.layout","[signed : 32]"), -Attr("c.data","Top:u32"), Attr("c.type","signed")]), - Var("_start_result",Imm(32)), LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(580, "@_start"), Attrs([Attr("address","0x600")]), Phis([]), -Defs([Def(Tid(585, "%00000249"), Attrs([Attr("address","0x604"), -Attr("insn","mov x29, #0x0")]), Var("R29",Imm(64)), Int(0,64)), -Def(Tid(590, "%0000024e"), Attrs([Attr("address","0x608"), -Attr("insn","mov x30, #0x0")]), Var("R30",Imm(64)), Int(0,64)), -Def(Tid(596, "%00000254"), Attrs([Attr("address","0x60C"), -Attr("insn","mov x5, x0")]), Var("R5",Imm(64)), Var("R0",Imm(64))), -Def(Tid(603, "%0000025b"), Attrs([Attr("address","0x610"), -Attr("insn","ldr x1, [sp]")]), Var("R1",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(609, "%00000261"), Attrs([Attr("address","0x614"), -Attr("insn","add x2, sp, #0x8")]), Var("R2",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(8,64))), Def(Tid(615, "%00000267"), - Attrs([Attr("address","0x618"), Attr("insn","mov x6, sp")]), - Var("R6",Imm(64)), Var("R31",Imm(64))), Def(Tid(620, "%0000026c"), - Attrs([Attr("address","0x61C"), Attr("insn","adrp x0, #65536")]), - Var("R0",Imm(64)), Int(65536,64)), Def(Tid(627, "%00000273"), - Attrs([Attr("address","0x620"), Attr("insn","ldr x0, [x0, #0xff0]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(4080,64)),LittleEndian(),64)), -Def(Tid(632, "%00000278"), Attrs([Attr("address","0x624"), -Attr("insn","mov x3, #0x0")]), Var("R3",Imm(64)), Int(0,64)), -Def(Tid(637, "%0000027d"), Attrs([Attr("address","0x628"), -Attr("insn","mov x4, #0x0")]), Var("R4",Imm(64)), Int(0,64)), -Def(Tid(642, "%00000282"), Attrs([Attr("address","0x62C"), -Attr("insn","bl #-0x6c")]), Var("R30",Imm(64)), Int(1584,64))]), -Jmps([Call(Tid(645, "%00000285"), Attrs([Attr("address","0x62C"), -Attr("insn","bl #-0x6c")]), Int(1,1), -(Direct(Tid(2_062, "@__libc_start_main")),Direct(Tid(647, "%00000287"))))])), -Blk(Tid(647, "%00000287"), Attrs([Attr("address","0x630")]), Phis([]), -Defs([Def(Tid(650, "%0000028a"), Attrs([Attr("address","0x630"), -Attr("insn","bl #-0x40")]), Var("R30",Imm(64)), Int(1588,64))]), -Jmps([Call(Tid(653, "%0000028d"), Attrs([Attr("address","0x630"), -Attr("insn","bl #-0x40")]), Int(1,1), -(Direct(Tid(2_068, "@abort")),Direct(Tid(2_111, "%0000083f"))))])), -Blk(Tid(2_111, "%0000083f"), Attrs([]), Phis([]), Defs([]), -Jmps([Call(Tid(2_112, "%00000840"), Attrs([]), Int(1,1), -(Direct(Tid(2_069, "@call_weak_fn")),))]))])), Sub(Tid(2_068, "@abort"), - Attrs([Attr("noreturn","()"), Attr("c.proto","void (*)(void)"), -Attr("address","0x5F0"), Attr("stub","()")]), "abort", Args([]), -Blks([Blk(Tid(651, "@abort"), Attrs([Attr("address","0x5F0")]), Phis([]), -Defs([Def(Tid(1_667, "%00000683"), Attrs([Attr("address","0x5F0"), -Attr("insn","adrp x16, #65536")]), Var("R16",Imm(64)), Int(65536,64)), -Def(Tid(1_674, "%0000068a"), Attrs([Attr("address","0x5F4"), -Attr("insn","ldr x17, [x16, #0xfc8]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(4040,64)),LittleEndian(),64)), -Def(Tid(1_680, "%00000690"), Attrs([Attr("address","0x5F8"), -Attr("insn","add x16, x16, #0xfc8")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(4040,64)))]), Jmps([Call(Tid(1_685, "%00000695"), - Attrs([Attr("address","0x5FC"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), Sub(Tid(2_069, "@call_weak_fn"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x634")]), - "call_weak_fn", Args([Arg(Tid(2_134, "%00000856"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("call_weak_fn_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(655, "@call_weak_fn"), - Attrs([Attr("address","0x634")]), Phis([]), Defs([Def(Tid(658, "%00000292"), - Attrs([Attr("address","0x634"), Attr("insn","adrp x0, #65536")]), - Var("R0",Imm(64)), Int(65536,64)), Def(Tid(665, "%00000299"), - Attrs([Attr("address","0x638"), Attr("insn","ldr x0, [x0, #0xfe8]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(4072,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(671, "%0000029f"), Attrs([Attr("address","0x63C"), -Attr("insn","cbz x0, #0x8")]), EQ(Var("R0",Imm(64)),Int(0,64)), -Direct(Tid(669, "%0000029d"))), Goto(Tid(2_113, "%00000841"), Attrs([]), - Int(1,1), Direct(Tid(1_439, "%0000059f")))])), Blk(Tid(669, "%0000029d"), - Attrs([Attr("address","0x644")]), Phis([]), Defs([]), -Jmps([Call(Tid(677, "%000002a5"), Attrs([Attr("address","0x644"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))])), -Blk(Tid(1_439, "%0000059f"), Attrs([Attr("address","0x640")]), Phis([]), -Defs([]), Jmps([Goto(Tid(1_442, "%000005a2"), Attrs([Attr("address","0x640"), -Attr("insn","b #-0x60")]), Int(1,1), -Direct(Tid(1_440, "@__gmon_start__")))])), Blk(Tid(1_440, "@__gmon_start__"), - Attrs([Attr("address","0x5E0")]), Phis([]), -Defs([Def(Tid(1_645, "%0000066d"), Attrs([Attr("address","0x5E0"), -Attr("insn","adrp x16, #65536")]), Var("R16",Imm(64)), Int(65536,64)), -Def(Tid(1_652, "%00000674"), Attrs([Attr("address","0x5E4"), -Attr("insn","ldr x17, [x16, #0xfc0]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(4032,64)),LittleEndian(),64)), -Def(Tid(1_658, "%0000067a"), Attrs([Attr("address","0x5E8"), -Attr("insn","add x16, x16, #0xfc0")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(4032,64)))]), Jmps([Call(Tid(1_663, "%0000067f"), - Attrs([Attr("address","0x5EC"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), -Sub(Tid(2_071, "@deregister_tm_clones"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x650")]), - "deregister_tm_clones", Args([Arg(Tid(2_135, "%00000857"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("deregister_tm_clones_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(683, "@deregister_tm_clones"), - Attrs([Attr("address","0x650")]), Phis([]), Defs([Def(Tid(686, "%000002ae"), - Attrs([Attr("address","0x650"), Attr("insn","adrp x0, #69632")]), - Var("R0",Imm(64)), Int(69632,64)), Def(Tid(692, "%000002b4"), - Attrs([Attr("address","0x654"), Attr("insn","add x0, x0, #0x10")]), - Var("R0",Imm(64)), PLUS(Var("R0",Imm(64)),Int(16,64))), -Def(Tid(697, "%000002b9"), Attrs([Attr("address","0x658"), -Attr("insn","adrp x1, #69632")]), Var("R1",Imm(64)), Int(69632,64)), -Def(Tid(703, "%000002bf"), Attrs([Attr("address","0x65C"), -Attr("insn","add x1, x1, #0x10")]), Var("R1",Imm(64)), -PLUS(Var("R1",Imm(64)),Int(16,64))), Def(Tid(709, "%000002c5"), - Attrs([Attr("address","0x660"), Attr("insn","cmp x1, x0")]), - Var("#1",Imm(64)), NOT(Var("R0",Imm(64)))), Def(Tid(714, "%000002ca"), - Attrs([Attr("address","0x660"), Attr("insn","cmp x1, x0")]), - Var("#2",Imm(64)), PLUS(Var("R1",Imm(64)),NOT(Var("R0",Imm(64))))), -Def(Tid(720, "%000002d0"), Attrs([Attr("address","0x660"), -Attr("insn","cmp x1, x0")]), Var("VF",Imm(1)), -NEQ(SIGNED(65,PLUS(Var("#2",Imm(64)),Int(1,64))),PLUS(PLUS(SIGNED(65,Var("R1",Imm(64))),SIGNED(65,Var("#1",Imm(64)))),Int(1,65)))), -Def(Tid(726, "%000002d6"), Attrs([Attr("address","0x660"), -Attr("insn","cmp x1, x0")]), Var("CF",Imm(1)), -NEQ(UNSIGNED(65,PLUS(Var("#2",Imm(64)),Int(1,64))),PLUS(PLUS(UNSIGNED(65,Var("R1",Imm(64))),UNSIGNED(65,Var("#1",Imm(64)))),Int(1,65)))), -Def(Tid(730, "%000002da"), Attrs([Attr("address","0x660"), -Attr("insn","cmp x1, x0")]), Var("ZF",Imm(1)), -EQ(PLUS(Var("#2",Imm(64)),Int(1,64)),Int(0,64))), Def(Tid(734, "%000002de"), - Attrs([Attr("address","0x660"), Attr("insn","cmp x1, x0")]), - Var("NF",Imm(1)), Extract(63,63,PLUS(Var("#2",Imm(64)),Int(1,64))))]), -Jmps([Goto(Tid(740, "%000002e4"), Attrs([Attr("address","0x664"), -Attr("insn","b.eq #0x18")]), EQ(Var("ZF",Imm(1)),Int(1,1)), -Direct(Tid(738, "%000002e2"))), Goto(Tid(2_114, "%00000842"), Attrs([]), - Int(1,1), Direct(Tid(1_409, "%00000581")))])), Blk(Tid(1_409, "%00000581"), - Attrs([Attr("address","0x668")]), Phis([]), -Defs([Def(Tid(1_412, "%00000584"), Attrs([Attr("address","0x668"), -Attr("insn","adrp x1, #65536")]), Var("R1",Imm(64)), Int(65536,64)), -Def(Tid(1_419, "%0000058b"), Attrs([Attr("address","0x66C"), -Attr("insn","ldr x1, [x1, #0xfd8]")]), Var("R1",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R1",Imm(64)),Int(4056,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(1_424, "%00000590"), Attrs([Attr("address","0x670"), -Attr("insn","cbz x1, #0xc")]), EQ(Var("R1",Imm(64)),Int(0,64)), -Direct(Tid(738, "%000002e2"))), Goto(Tid(2_115, "%00000843"), Attrs([]), - Int(1,1), Direct(Tid(1_428, "%00000594")))])), Blk(Tid(738, "%000002e2"), - Attrs([Attr("address","0x67C")]), Phis([]), Defs([]), -Jmps([Call(Tid(746, "%000002ea"), Attrs([Attr("address","0x67C"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))])), -Blk(Tid(1_428, "%00000594"), Attrs([Attr("address","0x674")]), Phis([]), -Defs([Def(Tid(1_432, "%00000598"), Attrs([Attr("address","0x674"), -Attr("insn","mov x16, x1")]), Var("R16",Imm(64)), Var("R1",Imm(64)))]), -Jmps([Call(Tid(1_437, "%0000059d"), Attrs([Attr("address","0x678"), -Attr("insn","br x16")]), Int(1,1), (Indirect(Var("R16",Imm(64))),))]))])), -Sub(Tid(2_074, "@frame_dummy"), Attrs([Attr("c.proto","signed (*)(void)"), -Attr("address","0x710")]), "frame_dummy", Args([Arg(Tid(2_136, "%00000858"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("frame_dummy_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(898, "@frame_dummy"), - Attrs([Attr("address","0x710")]), Phis([]), Defs([]), -Jmps([Call(Tid(900, "%00000384"), Attrs([Attr("address","0x710"), -Attr("insn","b #-0x90")]), Int(1,1), -(Direct(Tid(2_081, "@register_tm_clones")),))]))])), Sub(Tid(2_075, "@main"), - Attrs([Attr("c.proto","signed (*)(signed argc, const char** argv)"), -Attr("address","0x75C")]), "main", Args([Arg(Tid(2_137, "%00000859"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("main_argc",Imm(32)), -LOW(32,Var("R0",Imm(64))), In()), Arg(Tid(2_138, "%0000085a"), - Attrs([Attr("c.layout","**[char : 8]"), Attr("c.data","Top:u8 ptr ptr"), -Attr("c.type"," const char**")]), Var("main_argv",Imm(64)), -Var("R1",Imm(64)), Both()), Arg(Tid(2_139, "%0000085b"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("main_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(995, "@main"), - Attrs([Attr("address","0x75C")]), Phis([]), Defs([Def(Tid(999, "%000003e7"), - Attrs([Attr("address","0x75C"), -Attr("insn","stp x29, x30, [sp, #-0x30]!")]), Var("#4",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(18446744073709551568,64))), -Def(Tid(1_005, "%000003ed"), Attrs([Attr("address","0x75C"), -Attr("insn","stp x29, x30, [sp, #-0x30]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("#4",Imm(64)),Var("R29",Imm(64)),LittleEndian(),64)), -Def(Tid(1_011, "%000003f3"), Attrs([Attr("address","0x75C"), -Attr("insn","stp x29, x30, [sp, #-0x30]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("#4",Imm(64)),Int(8,64)),Var("R30",Imm(64)),LittleEndian(),64)), -Def(Tid(1_015, "%000003f7"), Attrs([Attr("address","0x75C"), -Attr("insn","stp x29, x30, [sp, #-0x30]!")]), Var("R31",Imm(64)), -Var("#4",Imm(64))), Def(Tid(1_021, "%000003fd"), - Attrs([Attr("address","0x760"), Attr("insn","mov x29, sp")]), - Var("R29",Imm(64)), Var("R31",Imm(64))), Def(Tid(1_029, "%00000405"), - Attrs([Attr("address","0x764"), Attr("insn","str w0, [sp, #0x1c]")]), - Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(28,64)),Extract(31,0,Var("R0",Imm(64))),LittleEndian(),32)), -Def(Tid(1_036, "%0000040c"), Attrs([Attr("address","0x768"), -Attr("insn","ldr w0, [sp, #0x1c]")]), Var("R0",Imm(64)), -UNSIGNED(64,Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(28,64)),LittleEndian(),32))), -Def(Tid(1_042, "%00000412"), Attrs([Attr("address","0x76C"), -Attr("insn","cmp w0, #0x2")]), Var("#5",Imm(32)), -PLUS(Extract(31,0,Var("R0",Imm(64))),Int(4294967293,32))), -Def(Tid(1_047, "%00000417"), Attrs([Attr("address","0x76C"), -Attr("insn","cmp w0, #0x2")]), Var("VF",Imm(1)), -NEQ(SIGNED(33,PLUS(Var("#5",Imm(32)),Int(1,32))),PLUS(SIGNED(33,Extract(31,0,Var("R0",Imm(64)))),Int(8589934590,33)))), -Def(Tid(1_052, "%0000041c"), Attrs([Attr("address","0x76C"), -Attr("insn","cmp w0, #0x2")]), Var("CF",Imm(1)), -NEQ(UNSIGNED(33,PLUS(Var("#5",Imm(32)),Int(1,32))),PLUS(UNSIGNED(33,Extract(31,0,Var("R0",Imm(64)))),Int(4294967294,33)))), -Def(Tid(1_056, "%00000420"), Attrs([Attr("address","0x76C"), -Attr("insn","cmp w0, #0x2")]), Var("ZF",Imm(1)), -EQ(PLUS(Var("#5",Imm(32)),Int(1,32)),Int(0,32))), -Def(Tid(1_060, "%00000424"), Attrs([Attr("address","0x76C"), -Attr("insn","cmp w0, #0x2")]), Var("NF",Imm(1)), -Extract(31,31,PLUS(Var("#5",Imm(32)),Int(1,32))))]), -Jmps([Goto(Tid(1_066, "%0000042a"), Attrs([Attr("address","0x770"), -Attr("insn","b.eq #0x4c")]), EQ(Var("ZF",Imm(1)),Int(1,1)), -Direct(Tid(1_064, "%00000428"))), Goto(Tid(2_116, "%00000844"), Attrs([]), - Int(1,1), Direct(Tid(1_154, "%00000482")))])), Blk(Tid(1_064, "%00000428"), - Attrs([Attr("address","0x7BC")]), Phis([]), -Defs([Def(Tid(1_072, "%00000430"), Attrs([Attr("address","0x7BC"), -Attr("insn","adrp x0, #0")]), Var("R0",Imm(64)), Int(0,64)), -Def(Tid(1_078, "%00000436"), Attrs([Attr("address","0x7C0"), -Attr("insn","add x0, x0, #0x744")]), Var("R0",Imm(64)), -PLUS(Var("R0",Imm(64)),Int(1860,64))), Def(Tid(1_086, "%0000043e"), - Attrs([Attr("address","0x7C4"), Attr("insn","str x0, [sp, #0x28]")]), - Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(40,64)),Var("R0",Imm(64)),LittleEndian(),64))]), -Jmps([Goto(Tid(1_091, "%00000443"), Attrs([Attr("address","0x7C8"), -Attr("insn","b #0x14")]), Int(1,1), Direct(Tid(1_089, "%00000441")))])), -Blk(Tid(1_154, "%00000482"), Attrs([Attr("address","0x774")]), Phis([]), -Defs([Def(Tid(1_159, "%00000487"), Attrs([Attr("address","0x774"), -Attr("insn","ldr w0, [sp, #0x1c]")]), Var("R0",Imm(64)), -UNSIGNED(64,Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(28,64)),LittleEndian(),32))), -Def(Tid(1_165, "%0000048d"), Attrs([Attr("address","0x778"), -Attr("insn","cmp w0, #0x2")]), Var("#6",Imm(32)), -PLUS(Extract(31,0,Var("R0",Imm(64))),Int(4294967293,32))), -Def(Tid(1_170, "%00000492"), Attrs([Attr("address","0x778"), -Attr("insn","cmp w0, #0x2")]), Var("VF",Imm(1)), -NEQ(SIGNED(33,PLUS(Var("#6",Imm(32)),Int(1,32))),PLUS(SIGNED(33,Extract(31,0,Var("R0",Imm(64)))),Int(8589934590,33)))), -Def(Tid(1_175, "%00000497"), Attrs([Attr("address","0x778"), -Attr("insn","cmp w0, #0x2")]), Var("CF",Imm(1)), -NEQ(UNSIGNED(33,PLUS(Var("#6",Imm(32)),Int(1,32))),PLUS(UNSIGNED(33,Extract(31,0,Var("R0",Imm(64)))),Int(4294967294,33)))), -Def(Tid(1_179, "%0000049b"), Attrs([Attr("address","0x778"), -Attr("insn","cmp w0, #0x2")]), Var("ZF",Imm(1)), -EQ(PLUS(Var("#6",Imm(32)),Int(1,32)),Int(0,32))), -Def(Tid(1_183, "%0000049f"), Attrs([Attr("address","0x778"), -Attr("insn","cmp w0, #0x2")]), Var("NF",Imm(1)), -Extract(31,31,PLUS(Var("#6",Imm(32)),Int(1,32))))]), -Jmps([Goto(Tid(1_190, "%000004a6"), Attrs([Attr("address","0x77C"), -Attr("insn","b.gt #0x50")]), - AND(EQ(Var("NF",Imm(1)),Var("VF",Imm(1))),EQ(Var("ZF",Imm(1)),Int(0,1))), -Direct(Tid(1_133, "%0000046d"))), Goto(Tid(2_117, "%00000845"), Attrs([]), - Int(1,1), Direct(Tid(1_194, "%000004aa")))])), Blk(Tid(1_194, "%000004aa"), - Attrs([Attr("address","0x780")]), Phis([]), -Defs([Def(Tid(1_199, "%000004af"), Attrs([Attr("address","0x780"), -Attr("insn","ldr w0, [sp, #0x1c]")]), Var("R0",Imm(64)), -UNSIGNED(64,Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(28,64)),LittleEndian(),32))), -Def(Tid(1_205, "%000004b5"), Attrs([Attr("address","0x784"), -Attr("insn","cmp w0, #0x0")]), Var("#7",Imm(32)), -PLUS(Extract(31,0,Var("R0",Imm(64))),Int(4294967295,32))), -Def(Tid(1_210, "%000004ba"), Attrs([Attr("address","0x784"), -Attr("insn","cmp w0, #0x0")]), Var("VF",Imm(1)), -NEQ(SIGNED(33,PLUS(Var("#7",Imm(32)),Int(1,32))),PLUS(SIGNED(33,Extract(31,0,Var("R0",Imm(64)))),Int(0,33)))), -Def(Tid(1_215, "%000004bf"), Attrs([Attr("address","0x784"), -Attr("insn","cmp w0, #0x0")]), Var("CF",Imm(1)), -NEQ(UNSIGNED(33,PLUS(Var("#7",Imm(32)),Int(1,32))),PLUS(UNSIGNED(33,Extract(31,0,Var("R0",Imm(64)))),Int(4294967296,33)))), -Def(Tid(1_219, "%000004c3"), Attrs([Attr("address","0x784"), -Attr("insn","cmp w0, #0x0")]), Var("ZF",Imm(1)), -EQ(PLUS(Var("#7",Imm(32)),Int(1,32)),Int(0,32))), -Def(Tid(1_223, "%000004c7"), Attrs([Attr("address","0x784"), -Attr("insn","cmp w0, #0x0")]), Var("NF",Imm(1)), -Extract(31,31,PLUS(Var("#7",Imm(32)),Int(1,32))))]), -Jmps([Goto(Tid(1_229, "%000004cd"), Attrs([Attr("address","0x788"), -Attr("insn","b.eq #0x14")]), EQ(Var("ZF",Imm(1)),Int(1,1)), -Direct(Tid(1_227, "%000004cb"))), Goto(Tid(2_118, "%00000846"), Attrs([]), - Int(1,1), Direct(Tid(1_278, "%000004fe")))])), Blk(Tid(1_227, "%000004cb"), - Attrs([Attr("address","0x79C")]), Phis([]), -Defs([Def(Tid(1_235, "%000004d3"), Attrs([Attr("address","0x79C"), -Attr("insn","adrp x0, #0")]), Var("R0",Imm(64)), Int(0,64)), -Def(Tid(1_241, "%000004d9"), Attrs([Attr("address","0x7A0"), -Attr("insn","add x0, x0, #0x714")]), Var("R0",Imm(64)), -PLUS(Var("R0",Imm(64)),Int(1812,64))), Def(Tid(1_249, "%000004e1"), - Attrs([Attr("address","0x7A4"), Attr("insn","str x0, [sp, #0x28]")]), - Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(40,64)),Var("R0",Imm(64)),LittleEndian(),64))]), -Jmps([Goto(Tid(1_253, "%000004e5"), Attrs([Attr("address","0x7A8"), -Attr("insn","b #0x34")]), Int(1,1), Direct(Tid(1_089, "%00000441")))])), -Blk(Tid(1_278, "%000004fe"), Attrs([Attr("address","0x78C")]), Phis([]), -Defs([Def(Tid(1_283, "%00000503"), Attrs([Attr("address","0x78C"), -Attr("insn","ldr w0, [sp, #0x1c]")]), Var("R0",Imm(64)), -UNSIGNED(64,Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(28,64)),LittleEndian(),32))), -Def(Tid(1_289, "%00000509"), Attrs([Attr("address","0x790"), -Attr("insn","cmp w0, #0x1")]), Var("#8",Imm(32)), -PLUS(Extract(31,0,Var("R0",Imm(64))),Int(4294967294,32))), -Def(Tid(1_294, "%0000050e"), Attrs([Attr("address","0x790"), -Attr("insn","cmp w0, #0x1")]), Var("VF",Imm(1)), -NEQ(SIGNED(33,PLUS(Var("#8",Imm(32)),Int(1,32))),PLUS(SIGNED(33,Extract(31,0,Var("R0",Imm(64)))),Int(8589934591,33)))), -Def(Tid(1_299, "%00000513"), Attrs([Attr("address","0x790"), -Attr("insn","cmp w0, #0x1")]), Var("CF",Imm(1)), -NEQ(UNSIGNED(33,PLUS(Var("#8",Imm(32)),Int(1,32))),PLUS(UNSIGNED(33,Extract(31,0,Var("R0",Imm(64)))),Int(4294967295,33)))), -Def(Tid(1_303, "%00000517"), Attrs([Attr("address","0x790"), -Attr("insn","cmp w0, #0x1")]), Var("ZF",Imm(1)), -EQ(PLUS(Var("#8",Imm(32)),Int(1,32)),Int(0,32))), -Def(Tid(1_307, "%0000051b"), Attrs([Attr("address","0x790"), -Attr("insn","cmp w0, #0x1")]), Var("NF",Imm(1)), -Extract(31,31,PLUS(Var("#8",Imm(32)),Int(1,32))))]), -Jmps([Goto(Tid(1_312, "%00000520"), Attrs([Attr("address","0x794"), -Attr("insn","b.eq #0x18")]), EQ(Var("ZF",Imm(1)),Int(1,1)), -Direct(Tid(1_255, "%000004e7"))), Goto(Tid(2_119, "%00000847"), Attrs([]), - Int(1,1), Direct(Tid(1_316, "%00000524")))])), Blk(Tid(1_255, "%000004e7"), - Attrs([Attr("address","0x7AC")]), Phis([]), -Defs([Def(Tid(1_258, "%000004ea"), Attrs([Attr("address","0x7AC"), -Attr("insn","adrp x0, #0")]), Var("R0",Imm(64)), Int(0,64)), -Def(Tid(1_264, "%000004f0"), Attrs([Attr("address","0x7B0"), -Attr("insn","add x0, x0, #0x72c")]), Var("R0",Imm(64)), -PLUS(Var("R0",Imm(64)),Int(1836,64))), Def(Tid(1_272, "%000004f8"), - Attrs([Attr("address","0x7B4"), Attr("insn","str x0, [sp, #0x28]")]), - Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(40,64)),Var("R0",Imm(64)),LittleEndian(),64))]), -Jmps([Goto(Tid(1_276, "%000004fc"), Attrs([Attr("address","0x7B8"), -Attr("insn","b #0x24")]), Int(1,1), Direct(Tid(1_089, "%00000441")))])), -Blk(Tid(1_316, "%00000524"), Attrs([Attr("address","0x798")]), Phis([]), -Defs([]), Jmps([Goto(Tid(1_318, "%00000526"), Attrs([Attr("address","0x798"), -Attr("insn","b #0x34")]), Int(1,1), Direct(Tid(1_133, "%0000046d")))])), -Blk(Tid(1_133, "%0000046d"), Attrs([Attr("address","0x7CC")]), Phis([]), -Defs([Def(Tid(1_136, "%00000470"), Attrs([Attr("address","0x7CC"), -Attr("insn","adrp x0, #0")]), Var("R0",Imm(64)), Int(0,64)), -Def(Tid(1_142, "%00000476"), Attrs([Attr("address","0x7D0"), -Attr("insn","add x0, x0, #0x714")]), Var("R0",Imm(64)), -PLUS(Var("R0",Imm(64)),Int(1812,64))), Def(Tid(1_150, "%0000047e"), - Attrs([Attr("address","0x7D4"), Attr("insn","str x0, [sp, #0x28]")]), - Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(40,64)),Var("R0",Imm(64)),LittleEndian(),64))]), -Jmps([Goto(Tid(2_120, "%00000848"), Attrs([]), Int(1,1), -Direct(Tid(1_089, "%00000441")))])), Blk(Tid(1_089, "%00000441"), - Attrs([Attr("address","0x7DC")]), Phis([]), -Defs([Def(Tid(1_097, "%00000449"), Attrs([Attr("address","0x7DC"), -Attr("insn","ldr x0, [sp, #0x28]")]), Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(40,64)),LittleEndian(),64)), -Def(Tid(1_102, "%0000044e"), Attrs([Attr("address","0x7E0"), -Attr("insn","blr x0")]), Var("R30",Imm(64)), Int(2020,64))]), -Jmps([Call(Tid(1_105, "%00000451"), Attrs([Attr("address","0x7E0"), -Attr("insn","blr x0")]), Int(1,1), -(Indirect(Var("R0",Imm(64))),Direct(Tid(1_107, "%00000453"))))])), -Blk(Tid(1_107, "%00000453"), Attrs([Attr("address","0x7E4")]), Phis([]), -Defs([Def(Tid(1_110, "%00000456"), Attrs([Attr("address","0x7E4"), -Attr("insn","mov w0, #0x0")]), Var("R0",Imm(64)), Int(0,64)), -Def(Tid(1_117, "%0000045d"), Attrs([Attr("address","0x7E8"), -Attr("insn","ldp x29, x30, [sp], #0x30")]), Var("R29",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(1_122, "%00000462"), Attrs([Attr("address","0x7E8"), -Attr("insn","ldp x29, x30, [sp], #0x30")]), Var("R30",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(1_126, "%00000466"), Attrs([Attr("address","0x7E8"), -Attr("insn","ldp x29, x30, [sp], #0x30")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(48,64)))]), Jmps([Call(Tid(1_131, "%0000046b"), - Attrs([Attr("address","0x7EC"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), -Sub(Tid(2_081, "@register_tm_clones"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x680")]), - "register_tm_clones", Args([Arg(Tid(2_140, "%0000085c"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("register_tm_clones_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(748, "@register_tm_clones"), Attrs([Attr("address","0x680")]), - Phis([]), Defs([Def(Tid(751, "%000002ef"), Attrs([Attr("address","0x680"), -Attr("insn","adrp x0, #69632")]), Var("R0",Imm(64)), Int(69632,64)), -Def(Tid(757, "%000002f5"), Attrs([Attr("address","0x684"), -Attr("insn","add x0, x0, #0x10")]), Var("R0",Imm(64)), -PLUS(Var("R0",Imm(64)),Int(16,64))), Def(Tid(762, "%000002fa"), - Attrs([Attr("address","0x688"), Attr("insn","adrp x1, #69632")]), - Var("R1",Imm(64)), Int(69632,64)), Def(Tid(768, "%00000300"), - Attrs([Attr("address","0x68C"), Attr("insn","add x1, x1, #0x10")]), - Var("R1",Imm(64)), PLUS(Var("R1",Imm(64)),Int(16,64))), -Def(Tid(775, "%00000307"), Attrs([Attr("address","0x690"), -Attr("insn","sub x1, x1, x0")]), Var("R1",Imm(64)), -PLUS(PLUS(Var("R1",Imm(64)),NOT(Var("R0",Imm(64)))),Int(1,64))), -Def(Tid(781, "%0000030d"), Attrs([Attr("address","0x694"), -Attr("insn","lsr x2, x1, #63")]), Var("R2",Imm(64)), -Concat(Int(0,63),Extract(63,63,Var("R1",Imm(64))))), -Def(Tid(788, "%00000314"), Attrs([Attr("address","0x698"), -Attr("insn","add x1, x2, x1, asr #3")]), Var("R1",Imm(64)), -PLUS(Var("R2",Imm(64)),ARSHIFT(Var("R1",Imm(64)),Int(3,3)))), -Def(Tid(794, "%0000031a"), Attrs([Attr("address","0x69C"), -Attr("insn","asr x1, x1, #1")]), Var("R1",Imm(64)), -SIGNED(64,Extract(63,1,Var("R1",Imm(64)))))]), -Jmps([Goto(Tid(800, "%00000320"), Attrs([Attr("address","0x6A0"), -Attr("insn","cbz x1, #0x18")]), EQ(Var("R1",Imm(64)),Int(0,64)), -Direct(Tid(798, "%0000031e"))), Goto(Tid(2_121, "%00000849"), Attrs([]), - Int(1,1), Direct(Tid(1_379, "%00000563")))])), Blk(Tid(1_379, "%00000563"), - Attrs([Attr("address","0x6A4")]), Phis([]), -Defs([Def(Tid(1_382, "%00000566"), Attrs([Attr("address","0x6A4"), -Attr("insn","adrp x2, #65536")]), Var("R2",Imm(64)), Int(65536,64)), -Def(Tid(1_389, "%0000056d"), Attrs([Attr("address","0x6A8"), -Attr("insn","ldr x2, [x2, #0xff8]")]), Var("R2",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R2",Imm(64)),Int(4088,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(1_394, "%00000572"), Attrs([Attr("address","0x6AC"), -Attr("insn","cbz x2, #0xc")]), EQ(Var("R2",Imm(64)),Int(0,64)), -Direct(Tid(798, "%0000031e"))), Goto(Tid(2_122, "%0000084a"), Attrs([]), - Int(1,1), Direct(Tid(1_398, "%00000576")))])), Blk(Tid(798, "%0000031e"), - Attrs([Attr("address","0x6B8")]), Phis([]), Defs([]), -Jmps([Call(Tid(806, "%00000326"), Attrs([Attr("address","0x6B8"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))])), -Blk(Tid(1_398, "%00000576"), Attrs([Attr("address","0x6B0")]), Phis([]), -Defs([Def(Tid(1_402, "%0000057a"), Attrs([Attr("address","0x6B0"), -Attr("insn","mov x16, x2")]), Var("R16",Imm(64)), Var("R2",Imm(64)))]), -Jmps([Call(Tid(1_407, "%0000057f"), Attrs([Attr("address","0x6B4"), -Attr("insn","br x16")]), Int(1,1), (Indirect(Var("R16",Imm(64))),))]))])), -Sub(Tid(2_084, "@set_seven"), Attrs([Attr("c.proto","signed (*)(void)"), -Attr("address","0x744")]), "set_seven", Args([Arg(Tid(2_141, "%0000085d"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("set_seven_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(964, "@set_seven"), - Attrs([Attr("address","0x744")]), Phis([]), Defs([Def(Tid(967, "%000003c7"), - Attrs([Attr("address","0x744"), Attr("insn","adrp x0, #69632")]), - Var("R0",Imm(64)), Int(69632,64)), Def(Tid(973, "%000003cd"), - Attrs([Attr("address","0x748"), Attr("insn","add x0, x0, #0x14")]), - Var("R0",Imm(64)), PLUS(Var("R0",Imm(64)),Int(20,64))), -Def(Tid(978, "%000003d2"), Attrs([Attr("address","0x74C"), -Attr("insn","mov w1, #0x7")]), Var("R1",Imm(64)), Int(7,64)), -Def(Tid(986, "%000003da"), Attrs([Attr("address","0x750"), -Attr("insn","str w1, [x0]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("R0",Imm(64)),Extract(31,0,Var("R1",Imm(64))),LittleEndian(),32))]), -Jmps([Call(Tid(993, "%000003e1"), Attrs([Attr("address","0x758"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))]))])), -Sub(Tid(2_085, "@set_six"), Attrs([Attr("c.proto","signed (*)(void)"), -Attr("address","0x72C")]), "set_six", Args([Arg(Tid(2_142, "%0000085e"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("set_six_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(933, "@set_six"), - Attrs([Attr("address","0x72C")]), Phis([]), Defs([Def(Tid(936, "%000003a8"), - Attrs([Attr("address","0x72C"), Attr("insn","adrp x0, #69632")]), - Var("R0",Imm(64)), Int(69632,64)), Def(Tid(942, "%000003ae"), - Attrs([Attr("address","0x730"), Attr("insn","add x0, x0, #0x14")]), - Var("R0",Imm(64)), PLUS(Var("R0",Imm(64)),Int(20,64))), -Def(Tid(947, "%000003b3"), Attrs([Attr("address","0x734"), -Attr("insn","mov w1, #0x6")]), Var("R1",Imm(64)), Int(6,64)), -Def(Tid(955, "%000003bb"), Attrs([Attr("address","0x738"), -Attr("insn","str w1, [x0]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("R0",Imm(64)),Extract(31,0,Var("R1",Imm(64))),LittleEndian(),32))]), -Jmps([Call(Tid(962, "%000003c2"), Attrs([Attr("address","0x740"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))]))])), -Sub(Tid(2_086, "@set_two"), Attrs([Attr("c.proto","signed (*)(void)"), -Attr("address","0x714")]), "set_two", Args([Arg(Tid(2_143, "%0000085f"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("set_two_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(902, "@set_two"), - Attrs([Attr("address","0x714")]), Phis([]), Defs([Def(Tid(905, "%00000389"), - Attrs([Attr("address","0x714"), Attr("insn","adrp x0, #69632")]), - Var("R0",Imm(64)), Int(69632,64)), Def(Tid(911, "%0000038f"), - Attrs([Attr("address","0x718"), Attr("insn","add x0, x0, #0x14")]), - Var("R0",Imm(64)), PLUS(Var("R0",Imm(64)),Int(20,64))), -Def(Tid(916, "%00000394"), Attrs([Attr("address","0x71C"), -Attr("insn","mov w1, #0x2")]), Var("R1",Imm(64)), Int(2,64)), -Def(Tid(924, "%0000039c"), Attrs([Attr("address","0x720"), -Attr("insn","str w1, [x0]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("R0",Imm(64)),Extract(31,0,Var("R1",Imm(64))),LittleEndian(),32))]), -Jmps([Call(Tid(931, "%000003a3"), Attrs([Attr("address","0x728"), -Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))]))]))) \ No newline at end of file diff --git a/src/test/indirect_calls/functionpointer/gcc/functionpointer.bir b/src/test/indirect_calls/functionpointer/gcc/functionpointer.bir deleted file mode 100644 index 62fb32d1b..000000000 --- a/src/test/indirect_calls/functionpointer/gcc/functionpointer.bir +++ /dev/null @@ -1,335 +0,0 @@ -0000084b: program -00000809: sub __cxa_finalize(__cxa_finalize_result) -0000084c: __cxa_finalize_result :: out u32 = low:32[R0] - -0000055f: -00000657: R16 := 0x10000 -0000065e: R17 := mem[R16 + 0xFB8, el]:u64 -00000664: R16 := R16 + 0xFB8 -00000669: call R17 with noreturn - -0000080a: sub __do_global_dtors_aux(__do_global_dtors_aux_result) -0000084d: __do_global_dtors_aux_result :: out u32 = low:32[R0] - -0000032a: -0000032e: #3 := R31 - 0x20 -00000334: mem := mem with [#3, el]:u64 <- R29 -0000033a: mem := mem with [#3 + 8, el]:u64 <- R30 -0000033e: R31 := #3 -00000344: R29 := R31 -0000034c: mem := mem with [R31 + 0x10, el]:u64 <- R19 -00000351: R19 := 0x11000 -00000358: R0 := pad:64[mem[R19 + 0x10]] -0000035f: when 31:0[R0] <> 0 goto %0000035d -0000083c: goto %00000528 - -00000528: -0000052b: R0 := 0x10000 -00000532: R0 := mem[R0 + 0xFE0, el]:u64 -00000538: when R0 = 0 goto %00000536 -0000083d: goto %0000054f - -0000054f: -00000552: R0 := 0x11000 -00000559: R0 := mem[R0 + 8, el]:u64 -0000055e: R30 := 0x6F0 -00000561: call @__cxa_finalize with return %00000536 - -00000536: -0000053e: R30 := 0x6F4 -00000540: call @deregister_tm_clones with return %00000542 - -00000542: -00000545: R0 := 1 -0000054d: mem := mem with [R19 + 0x10] <- 7:0[R0] -0000083e: goto %0000035d - -0000035d: -00000367: R19 := mem[R31 + 0x10, el]:u64 -0000036e: R29 := mem[R31, el]:u64 -00000373: R30 := mem[R31 + 8, el]:u64 -00000377: R31 := R31 + 0x20 -0000037c: call R30 with noreturn - -0000080e: sub __libc_start_main(__libc_start_main_main, __libc_start_main_arg2, __libc_start_main_arg3, __libc_start_main_auxv, __libc_start_main_result) -0000084e: __libc_start_main_main :: in u64 = R0 -0000084f: __libc_start_main_arg2 :: in u32 = low:32[R1] -00000850: __libc_start_main_arg3 :: in out u64 = R2 -00000851: __libc_start_main_auxv :: in out u64 = R3 -00000852: __libc_start_main_result :: out u32 = low:32[R0] - -00000283: -00000641: R16 := 0x10000 -00000648: R17 := mem[R16 + 0xFB0, el]:u64 -0000064e: R16 := R16 + 0xFB0 -00000653: call R17 with noreturn - -0000080f: sub _fini(_fini_result) -00000853: _fini_result :: out u32 = low:32[R0] - -0000001f: -00000025: #0 := R31 - 0x10 -0000002b: mem := mem with [#0, el]:u64 <- R29 -00000031: mem := mem with [#0 + 8, el]:u64 <- R30 -00000035: R31 := #0 -0000003b: R29 := R31 -00000042: R29 := mem[R31, el]:u64 -00000047: R30 := mem[R31 + 8, el]:u64 -0000004b: R31 := R31 + 0x10 -00000050: call R30 with noreturn - -00000810: sub _init(_init_result) -00000854: _init_result :: out u32 = low:32[R0] - -00000734: -0000073a: #10 := R31 - 0x10 -00000740: mem := mem with [#10, el]:u64 <- R29 -00000746: mem := mem with [#10 + 8, el]:u64 <- R30 -0000074a: R31 := #10 -00000750: R29 := R31 -00000755: R30 := 0x590 -00000757: call @call_weak_fn with return %00000759 - -00000759: -0000075e: R29 := mem[R31, el]:u64 -00000763: R30 := mem[R31 + 8, el]:u64 -00000767: R31 := R31 + 0x10 -0000076c: call R30 with noreturn - -00000811: sub _start(_start_result) -00000855: _start_result :: out u32 = low:32[R0] - -00000244: -00000249: R29 := 0 -0000024e: R30 := 0 -00000254: R5 := R0 -0000025b: R1 := mem[R31, el]:u64 -00000261: R2 := R31 + 8 -00000267: R6 := R31 -0000026c: R0 := 0x10000 -00000273: R0 := mem[R0 + 0xFF0, el]:u64 -00000278: R3 := 0 -0000027d: R4 := 0 -00000282: R30 := 0x630 -00000285: call @__libc_start_main with return %00000287 - -00000287: -0000028a: R30 := 0x634 -0000028d: call @abort with return %0000083f - -0000083f: -00000840: call @call_weak_fn with noreturn - -00000814: sub abort() - - -0000028b: -00000683: R16 := 0x10000 -0000068a: R17 := mem[R16 + 0xFC8, el]:u64 -00000690: R16 := R16 + 0xFC8 -00000695: call R17 with noreturn - -00000815: sub call_weak_fn(call_weak_fn_result) -00000856: call_weak_fn_result :: out u32 = low:32[R0] - -0000028f: -00000292: R0 := 0x10000 -00000299: R0 := mem[R0 + 0xFE8, el]:u64 -0000029f: when R0 = 0 goto %0000029d -00000841: goto %0000059f - -0000029d: -000002a5: call R30 with noreturn - -0000059f: -000005a2: goto @__gmon_start__ - -000005a0: -0000066d: R16 := 0x10000 -00000674: R17 := mem[R16 + 0xFC0, el]:u64 -0000067a: R16 := R16 + 0xFC0 -0000067f: call R17 with noreturn - -00000817: sub deregister_tm_clones(deregister_tm_clones_result) -00000857: deregister_tm_clones_result :: out u32 = low:32[R0] - -000002ab: -000002ae: R0 := 0x11000 -000002b4: R0 := R0 + 0x10 -000002b9: R1 := 0x11000 -000002bf: R1 := R1 + 0x10 -000002c5: #1 := ~R0 -000002ca: #2 := R1 + ~R0 -000002d0: VF := extend:65[#2 + 1] <> extend:65[R1] + extend:65[#1] + 1 -000002d6: CF := pad:65[#2 + 1] <> pad:65[R1] + pad:65[#1] + 1 -000002da: ZF := #2 + 1 = 0 -000002de: NF := 63:63[#2 + 1] -000002e4: when ZF goto %000002e2 -00000842: goto %00000581 - -00000581: -00000584: R1 := 0x10000 -0000058b: R1 := mem[R1 + 0xFD8, el]:u64 -00000590: when R1 = 0 goto %000002e2 -00000843: goto %00000594 - -000002e2: -000002ea: call R30 with noreturn - -00000594: -00000598: R16 := R1 -0000059d: call R16 with noreturn - -0000081a: sub frame_dummy(frame_dummy_result) -00000858: frame_dummy_result :: out u32 = low:32[R0] - -00000382: -00000384: call @register_tm_clones with noreturn - -0000081b: sub main(main_argc, main_argv, main_result) -00000859: main_argc :: in u32 = low:32[R0] -0000085a: main_argv :: in out u64 = R1 -0000085b: main_result :: out u32 = low:32[R0] - -000003e3: -000003e7: #4 := R31 - 0x30 -000003ed: mem := mem with [#4, el]:u64 <- R29 -000003f3: mem := mem with [#4 + 8, el]:u64 <- R30 -000003f7: R31 := #4 -000003fd: R29 := R31 -00000405: mem := mem with [R31 + 0x1C, el]:u32 <- 31:0[R0] -0000040c: R0 := pad:64[mem[R31 + 0x1C, el]:u32] -00000412: #5 := 31:0[R0] - 3 -00000417: VF := extend:33[#5 + 1] <> extend:33[31:0[R0]] - 2 -0000041c: CF := pad:33[#5 + 1] <> pad:33[31:0[R0]] + 0xFFFFFFFE -00000420: ZF := #5 + 1 = 0 -00000424: NF := 31:31[#5 + 1] -0000042a: when ZF goto %00000428 -00000844: goto %00000482 - -00000428: -00000430: R0 := 0 -00000436: R0 := R0 + 0x744 -0000043e: mem := mem with [R31 + 0x28, el]:u64 <- R0 -00000443: goto %00000441 - -00000482: -00000487: R0 := pad:64[mem[R31 + 0x1C, el]:u32] -0000048d: #6 := 31:0[R0] - 3 -00000492: VF := extend:33[#6 + 1] <> extend:33[31:0[R0]] - 2 -00000497: CF := pad:33[#6 + 1] <> pad:33[31:0[R0]] + 0xFFFFFFFE -0000049b: ZF := #6 + 1 = 0 -0000049f: NF := 31:31[#6 + 1] -000004a6: when NF = VF & ~ZF goto %0000046d -00000845: goto %000004aa - -000004aa: -000004af: R0 := pad:64[mem[R31 + 0x1C, el]:u32] -000004b5: #7 := 31:0[R0] - 1 -000004ba: VF := extend:33[#7 + 1] <> extend:33[31:0[R0]] + 0 -000004bf: CF := pad:33[#7 + 1] <> pad:33[31:0[R0]] - 0x100000000 -000004c3: ZF := #7 + 1 = 0 -000004c7: NF := 31:31[#7 + 1] -000004cd: when ZF goto %000004cb -00000846: goto %000004fe - -000004cb: -000004d3: R0 := 0 -000004d9: R0 := R0 + 0x714 -000004e1: mem := mem with [R31 + 0x28, el]:u64 <- R0 -000004e5: goto %00000441 - -000004fe: -00000503: R0 := pad:64[mem[R31 + 0x1C, el]:u32] -00000509: #8 := 31:0[R0] - 2 -0000050e: VF := extend:33[#8 + 1] <> extend:33[31:0[R0]] - 1 -00000513: CF := pad:33[#8 + 1] <> pad:33[31:0[R0]] + 0xFFFFFFFF -00000517: ZF := #8 + 1 = 0 -0000051b: NF := 31:31[#8 + 1] -00000520: when ZF goto %000004e7 -00000847: goto %00000524 - -000004e7: -000004ea: R0 := 0 -000004f0: R0 := R0 + 0x72C -000004f8: mem := mem with [R31 + 0x28, el]:u64 <- R0 -000004fc: goto %00000441 - -00000524: -00000526: goto %0000046d - -0000046d: -00000470: R0 := 0 -00000476: R0 := R0 + 0x714 -0000047e: mem := mem with [R31 + 0x28, el]:u64 <- R0 -00000848: goto %00000441 - -00000441: -00000449: R0 := mem[R31 + 0x28, el]:u64 -0000044e: R30 := 0x7E4 -00000451: call R0 with return %00000453 - -00000453: -00000456: R0 := 0 -0000045d: R29 := mem[R31, el]:u64 -00000462: R30 := mem[R31 + 8, el]:u64 -00000466: R31 := R31 + 0x30 -0000046b: call R30 with noreturn - -00000821: sub register_tm_clones(register_tm_clones_result) -0000085c: register_tm_clones_result :: out u32 = low:32[R0] - -000002ec: -000002ef: R0 := 0x11000 -000002f5: R0 := R0 + 0x10 -000002fa: R1 := 0x11000 -00000300: R1 := R1 + 0x10 -00000307: R1 := R1 + ~R0 + 1 -0000030d: R2 := 0.63:63[R1] -00000314: R1 := R2 + (R1 ~>> 3) -0000031a: R1 := extend:64[63:1[R1]] -00000320: when R1 = 0 goto %0000031e -00000849: goto %00000563 - -00000563: -00000566: R2 := 0x10000 -0000056d: R2 := mem[R2 + 0xFF8, el]:u64 -00000572: when R2 = 0 goto %0000031e -0000084a: goto %00000576 - -0000031e: -00000326: call R30 with noreturn - -00000576: -0000057a: R16 := R2 -0000057f: call R16 with noreturn - -00000824: sub set_seven(set_seven_result) -0000085d: set_seven_result :: out u32 = low:32[R0] - -000003c4: -000003c7: R0 := 0x11000 -000003cd: R0 := R0 + 0x14 -000003d2: R1 := 7 -000003da: mem := mem with [R0, el]:u32 <- 31:0[R1] -000003e1: call R30 with noreturn - -00000825: sub set_six(set_six_result) -0000085e: set_six_result :: out u32 = low:32[R0] - -000003a5: -000003a8: R0 := 0x11000 -000003ae: R0 := R0 + 0x14 -000003b3: R1 := 6 -000003bb: mem := mem with [R0, el]:u32 <- 31:0[R1] -000003c2: call R30 with noreturn - -00000826: sub set_two(set_two_result) -0000085f: set_two_result :: out u32 = low:32[R0] - -00000386: -00000389: R0 := 0x11000 -0000038f: R0 := R0 + 0x14 -00000394: R1 := 2 -0000039c: mem := mem with [R0, el]:u32 <- 31:0[R1] -000003a3: call R30 with noreturn diff --git a/src/test/indirect_calls/functionpointer/gcc/functionpointer.md5sum b/src/test/indirect_calls/functionpointer/gcc/functionpointer.md5sum new file mode 100644 index 000000000..6f6887074 --- /dev/null +++ b/src/test/indirect_calls/functionpointer/gcc/functionpointer.md5sum @@ -0,0 +1,4 @@ +5db6785e37ec85bd8fff015a68f93bbc indirect_calls/functionpointer/gcc/a.out +0ab1a3412aaf5cecdcc948af1d119740 indirect_calls/functionpointer/gcc/functionpointer.relf +7ad161007df5227568dc2dec7f42dd00 indirect_calls/functionpointer/gcc/functionpointer.adt +fcc3b3c751d05a5c52b98996af29030b indirect_calls/functionpointer/gcc/functionpointer.bir diff --git a/src/test/indirect_calls/functionpointer/gcc/functionpointer.relf b/src/test/indirect_calls/functionpointer/gcc/functionpointer.relf deleted file mode 100644 index 513103ce8..000000000 --- a/src/test/indirect_calls/functionpointer/gcc/functionpointer.relf +++ /dev/null @@ -1,124 +0,0 @@ - -Relocation section '.rela.dyn' at offset 0x460 contains 8 entries: - Offset Info Type Symbol's Value Symbol's Name + Addend -0000000000010d98 0000000000000403 R_AARCH64_RELATIVE 710 -0000000000010da0 0000000000000403 R_AARCH64_RELATIVE 6c0 -0000000000010ff0 0000000000000403 R_AARCH64_RELATIVE 75c -0000000000011008 0000000000000403 R_AARCH64_RELATIVE 11008 -0000000000010fd8 0000000400000401 R_AARCH64_GLOB_DAT 0000000000000000 _ITM_deregisterTMCloneTable + 0 -0000000000010fe0 0000000500000401 R_AARCH64_GLOB_DAT 0000000000000000 __cxa_finalize@GLIBC_2.17 + 0 -0000000000010fe8 0000000600000401 R_AARCH64_GLOB_DAT 0000000000000000 __gmon_start__ + 0 -0000000000010ff8 0000000800000401 R_AARCH64_GLOB_DAT 0000000000000000 _ITM_registerTMCloneTable + 0 - -Relocation section '.rela.plt' at offset 0x520 contains 4 entries: - Offset Info Type Symbol's Value Symbol's Name + Addend -0000000000010fb0 0000000300000402 R_AARCH64_JUMP_SLOT 0000000000000000 __libc_start_main@GLIBC_2.34 + 0 -0000000000010fb8 0000000500000402 R_AARCH64_JUMP_SLOT 0000000000000000 __cxa_finalize@GLIBC_2.17 + 0 -0000000000010fc0 0000000600000402 R_AARCH64_JUMP_SLOT 0000000000000000 __gmon_start__ + 0 -0000000000010fc8 0000000700000402 R_AARCH64_JUMP_SLOT 0000000000000000 abort@GLIBC_2.17 + 0 - -Symbol table '.dynsym' contains 9 entries: - Num: Value Size Type Bind Vis Ndx Name - 0: 0000000000000000 0 NOTYPE LOCAL DEFAULT UND - 1: 0000000000000580 0 SECTION LOCAL DEFAULT 11 .init - 2: 0000000000011000 0 SECTION LOCAL DEFAULT 22 .data - 3: 0000000000000000 0 FUNC GLOBAL DEFAULT UND __libc_start_main@GLIBC_2.34 (2) - 4: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_deregisterTMCloneTable - 5: 0000000000000000 0 FUNC WEAK DEFAULT UND __cxa_finalize@GLIBC_2.17 (3) - 6: 0000000000000000 0 NOTYPE WEAK DEFAULT UND __gmon_start__ - 7: 0000000000000000 0 FUNC GLOBAL DEFAULT UND abort@GLIBC_2.17 (3) - 8: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_registerTMCloneTable - -Symbol table '.symtab' contains 91 entries: - Num: Value Size Type Bind Vis Ndx Name - 0: 0000000000000000 0 NOTYPE LOCAL DEFAULT UND - 1: 0000000000000238 0 SECTION LOCAL DEFAULT 1 .interp - 2: 0000000000000254 0 SECTION LOCAL DEFAULT 2 .note.gnu.build-id - 3: 0000000000000278 0 SECTION LOCAL DEFAULT 3 .note.ABI-tag - 4: 0000000000000298 0 SECTION LOCAL DEFAULT 4 .gnu.hash - 5: 00000000000002b8 0 SECTION LOCAL DEFAULT 5 .dynsym - 6: 0000000000000390 0 SECTION LOCAL DEFAULT 6 .dynstr - 7: 000000000000041e 0 SECTION LOCAL DEFAULT 7 .gnu.version - 8: 0000000000000430 0 SECTION LOCAL DEFAULT 8 .gnu.version_r - 9: 0000000000000460 0 SECTION LOCAL DEFAULT 9 .rela.dyn - 10: 0000000000000520 0 SECTION LOCAL DEFAULT 10 .rela.plt - 11: 0000000000000580 0 SECTION LOCAL DEFAULT 11 .init - 12: 00000000000005a0 0 SECTION LOCAL DEFAULT 12 .plt - 13: 0000000000000600 0 SECTION LOCAL DEFAULT 13 .text - 14: 00000000000007f0 0 SECTION LOCAL DEFAULT 14 .fini - 15: 0000000000000804 0 SECTION LOCAL DEFAULT 15 .rodata - 16: 0000000000000808 0 SECTION LOCAL DEFAULT 16 .eh_frame_hdr - 17: 0000000000000860 0 SECTION LOCAL DEFAULT 17 .eh_frame - 18: 0000000000010d98 0 SECTION LOCAL DEFAULT 18 .init_array - 19: 0000000000010da0 0 SECTION LOCAL DEFAULT 19 .fini_array - 20: 0000000000010da8 0 SECTION LOCAL DEFAULT 20 .dynamic - 21: 0000000000010f98 0 SECTION LOCAL DEFAULT 21 .got - 22: 0000000000011000 0 SECTION LOCAL DEFAULT 22 .data - 23: 0000000000011010 0 SECTION LOCAL DEFAULT 23 .bss - 24: 0000000000000000 0 SECTION LOCAL DEFAULT 24 .comment - 25: 0000000000000000 0 FILE LOCAL DEFAULT ABS Scrt1.o - 26: 0000000000000278 0 NOTYPE LOCAL DEFAULT 3 $d - 27: 0000000000000278 32 OBJECT LOCAL DEFAULT 3 __abi_tag - 28: 0000000000000600 0 NOTYPE LOCAL DEFAULT 13 $x - 29: 0000000000000874 0 NOTYPE LOCAL DEFAULT 17 $d - 30: 0000000000000804 0 NOTYPE LOCAL DEFAULT 15 $d - 31: 0000000000000000 0 FILE LOCAL DEFAULT ABS crti.o - 32: 0000000000000634 0 NOTYPE LOCAL DEFAULT 13 $x - 33: 0000000000000634 20 FUNC LOCAL DEFAULT 13 call_weak_fn - 34: 0000000000000580 0 NOTYPE LOCAL DEFAULT 11 $x - 35: 00000000000007f0 0 NOTYPE LOCAL DEFAULT 14 $x - 36: 0000000000000000 0 FILE LOCAL DEFAULT ABS crtn.o - 37: 0000000000000590 0 NOTYPE LOCAL DEFAULT 11 $x - 38: 00000000000007fc 0 NOTYPE LOCAL DEFAULT 14 $x - 39: 0000000000000000 0 FILE LOCAL DEFAULT ABS crtstuff.c - 40: 0000000000000650 0 NOTYPE LOCAL DEFAULT 13 $x - 41: 0000000000000650 0 FUNC LOCAL DEFAULT 13 deregister_tm_clones - 42: 0000000000000680 0 FUNC LOCAL DEFAULT 13 register_tm_clones - 43: 0000000000011008 0 NOTYPE LOCAL DEFAULT 22 $d - 44: 00000000000006c0 0 FUNC LOCAL DEFAULT 13 __do_global_dtors_aux - 45: 0000000000011010 1 OBJECT LOCAL DEFAULT 23 completed.0 - 46: 0000000000010da0 0 NOTYPE LOCAL DEFAULT 19 $d - 47: 0000000000010da0 0 OBJECT LOCAL DEFAULT 19 __do_global_dtors_aux_fini_array_entry - 48: 0000000000000710 0 FUNC LOCAL DEFAULT 13 frame_dummy - 49: 0000000000010d98 0 NOTYPE LOCAL DEFAULT 18 $d - 50: 0000000000010d98 0 OBJECT LOCAL DEFAULT 18 __frame_dummy_init_array_entry - 51: 0000000000000888 0 NOTYPE LOCAL DEFAULT 17 $d - 52: 0000000000011010 0 NOTYPE LOCAL DEFAULT 23 $d - 53: 0000000000000000 0 FILE LOCAL DEFAULT ABS functionpointer.c - 54: 0000000000011014 0 NOTYPE LOCAL DEFAULT 23 $d - 55: 0000000000000714 0 NOTYPE LOCAL DEFAULT 13 $x - 56: 00000000000008e8 0 NOTYPE LOCAL DEFAULT 17 $d - 57: 0000000000000000 0 FILE LOCAL DEFAULT ABS crtstuff.c - 58: 0000000000000944 0 NOTYPE LOCAL DEFAULT 17 $d - 59: 0000000000000944 0 OBJECT LOCAL DEFAULT 17 __FRAME_END__ - 60: 0000000000000000 0 FILE LOCAL DEFAULT ABS - 61: 0000000000010da8 0 OBJECT LOCAL DEFAULT ABS _DYNAMIC - 62: 0000000000000808 0 NOTYPE LOCAL DEFAULT 16 __GNU_EH_FRAME_HDR - 63: 0000000000010fd0 0 OBJECT LOCAL DEFAULT ABS _GLOBAL_OFFSET_TABLE_ - 64: 00000000000005a0 0 NOTYPE LOCAL DEFAULT 12 $x - 65: 0000000000000000 0 FUNC GLOBAL DEFAULT UND __libc_start_main@GLIBC_2.34 - 66: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_deregisterTMCloneTable - 67: 0000000000011000 0 NOTYPE WEAK DEFAULT 22 data_start - 68: 0000000000011010 0 NOTYPE GLOBAL DEFAULT 23 __bss_start__ - 69: 0000000000000000 0 FUNC WEAK DEFAULT UND __cxa_finalize@GLIBC_2.17 - 70: 0000000000011018 0 NOTYPE GLOBAL DEFAULT 23 _bss_end__ - 71: 0000000000011010 0 NOTYPE GLOBAL DEFAULT 22 _edata - 72: 0000000000011014 4 OBJECT GLOBAL DEFAULT 23 x - 73: 00000000000007f0 0 FUNC GLOBAL HIDDEN 14 _fini - 74: 0000000000011018 0 NOTYPE GLOBAL DEFAULT 23 __bss_end__ - 75: 0000000000011000 0 NOTYPE GLOBAL DEFAULT 22 __data_start - 76: 0000000000000000 0 NOTYPE WEAK DEFAULT UND __gmon_start__ - 77: 0000000000011008 0 OBJECT GLOBAL HIDDEN 22 __dso_handle - 78: 0000000000000000 0 FUNC GLOBAL DEFAULT UND abort@GLIBC_2.17 - 79: 0000000000000804 4 OBJECT GLOBAL DEFAULT 15 _IO_stdin_used - 80: 0000000000000714 24 FUNC GLOBAL DEFAULT 13 set_two - 81: 0000000000011018 0 NOTYPE GLOBAL DEFAULT 23 _end - 82: 0000000000000600 52 FUNC GLOBAL DEFAULT 13 _start - 83: 0000000000011018 0 NOTYPE GLOBAL DEFAULT 23 __end__ - 84: 000000000000072c 24 FUNC GLOBAL DEFAULT 13 set_six - 85: 0000000000011010 0 NOTYPE GLOBAL DEFAULT 23 __bss_start - 86: 000000000000075c 148 FUNC GLOBAL DEFAULT 13 main - 87: 0000000000000744 24 FUNC GLOBAL DEFAULT 13 set_seven - 88: 0000000000011010 0 OBJECT GLOBAL HIDDEN 22 __TMC_END__ - 89: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_registerTMCloneTable - 90: 0000000000000580 0 FUNC GLOBAL HIDDEN 11 _init diff --git a/src/test/indirect_calls/functionpointer/gcc_O2/functionpointer.adt b/src/test/indirect_calls/functionpointer/gcc_O2/functionpointer.adt deleted file mode 100644 index 13af15aab..000000000 --- a/src/test/indirect_calls/functionpointer/gcc_O2/functionpointer.adt +++ /dev/null @@ -1,634 +0,0 @@ -Project(Attrs([Attr("filename","\"gcc_O2/functionpointer.out\""), -Attr("image-specification","(declare abi (name str))\n(declare arch (name str))\n(declare base-address (addr int))\n(declare bias (off int))\n(declare bits (size int))\n(declare code-region (addr int) (size int) (off int))\n(declare code-start (addr int))\n(declare entry-point (addr int))\n(declare external-reference (addr int) (name str))\n(declare format (name str))\n(declare is-executable (flag bool))\n(declare is-little-endian (flag bool))\n(declare llvm:base-address (addr int))\n(declare llvm:code-entry (name str) (off int) (size int))\n(declare llvm:coff-import-library (name str))\n(declare llvm:coff-virtual-section-header (name str) (addr int) (size int))\n(declare llvm:elf-program-header (name str) (off int) (size int))\n(declare llvm:elf-program-header-flags (name str) (ld bool) (r bool) \n (w bool) (x bool))\n(declare llvm:elf-virtual-program-header (name str) (addr int) (size int))\n(declare llvm:entry-point (addr int))\n(declare llvm:macho-symbol (name str) (value int))\n(declare llvm:name-reference (at int) (name str))\n(declare llvm:relocation (at int) (addr int))\n(declare llvm:section-entry (name str) (addr int) (size int) (off int))\n(declare llvm:section-flags (name str) (r bool) (w bool) (x bool))\n(declare llvm:segment-command (name str) (off int) (size int))\n(declare llvm:segment-command-flags (name str) (r bool) (w bool) (x bool))\n(declare llvm:symbol-entry (name str) (addr int) (size int) (off int)\n (value int))\n(declare llvm:virtual-segment-command (name str) (addr int) (size int))\n(declare mapped (addr int) (size int) (off int))\n(declare named-region (addr int) (size int) (name str))\n(declare named-symbol (addr int) (name str))\n(declare require (name str))\n(declare section (addr int) (size int))\n(declare segment (addr int) (size int) (r bool) (w bool) (x bool))\n(declare subarch (name str))\n(declare symbol-chunk (addr int) (size int) (root int))\n(declare symbol-value (addr int) (value int))\n(declare system (name str))\n(declare vendor (name str))\n\n(abi unknown)\n(arch aarch64)\n(base-address 0)\n(bias 0)\n(bits 64)\n(code-region 2000 20 2000)\n(code-region 1536 464 1536)\n(code-region 1440 96 1440)\n(code-region 1408 24 1408)\n(code-start 1716)\n(code-start 1952)\n(code-start 1664)\n(code-start 1968)\n(code-start 1536)\n(code-start 1984)\n(entry-point 1664)\n(external-reference 69592 _ITM_deregisterTMCloneTable)\n(external-reference 69600 __cxa_finalize)\n(external-reference 69608 __gmon_start__)\n(external-reference 69624 _ITM_registerTMCloneTable)\n(external-reference 69552 __libc_start_main)\n(external-reference 69560 __cxa_finalize)\n(external-reference 69568 __gmon_start__)\n(external-reference 69576 abort)\n(format elf)\n(is-executable true)\n(is-little-endian true)\n(llvm:base-address 0)\n(llvm:code-entry abort 0 0)\n(llvm:code-entry __cxa_finalize 0 0)\n(llvm:code-entry __libc_start_main 0 0)\n(llvm:code-entry _init 1408 0)\n(llvm:code-entry set_seven 1984 16)\n(llvm:code-entry main 1536 68)\n(llvm:code-entry set_six 1968 16)\n(llvm:code-entry _start 1664 52)\n(llvm:code-entry set_two 1952 16)\n(llvm:code-entry abort@GLIBC_2.17 0 0)\n(llvm:code-entry _fini 2000 0)\n(llvm:code-entry __cxa_finalize@GLIBC_2.17 0 0)\n(llvm:code-entry __libc_start_main@GLIBC_2.34 0 0)\n(llvm:code-entry frame_dummy 1936 0)\n(llvm:code-entry __do_global_dtors_aux 1856 0)\n(llvm:code-entry register_tm_clones 1792 0)\n(llvm:code-entry deregister_tm_clones 1744 0)\n(llvm:code-entry call_weak_fn 1716 20)\n(llvm:code-entry .fini 2000 20)\n(llvm:code-entry .text 1536 464)\n(llvm:code-entry .plt 1440 96)\n(llvm:code-entry .init 1408 24)\n(llvm:elf-program-header 08 3480 616)\n(llvm:elf-program-header 07 0 0)\n(llvm:elf-program-header 06 2024 84)\n(llvm:elf-program-header 05 596 68)\n(llvm:elf-program-header 04 3496 496)\n(llvm:elf-program-header 03 3480 632)\n(llvm:elf-program-header 02 0 2344)\n(llvm:elf-program-header 01 568 27)\n(llvm:elf-program-header 00 64 504)\n(llvm:elf-program-header-flags 08 false true false false)\n(llvm:elf-program-header-flags 07 false true true false)\n(llvm:elf-program-header-flags 06 false true false false)\n(llvm:elf-program-header-flags 05 false true false false)\n(llvm:elf-program-header-flags 04 false true true false)\n(llvm:elf-program-header-flags 03 true true true false)\n(llvm:elf-program-header-flags 02 true true false true)\n(llvm:elf-program-header-flags 01 false true false false)\n(llvm:elf-program-header-flags 00 false true false false)\n(llvm:elf-virtual-program-header 08 69016 616)\n(llvm:elf-virtual-program-header 07 0 0)\n(llvm:elf-virtual-program-header 06 2024 84)\n(llvm:elf-virtual-program-header 05 596 68)\n(llvm:elf-virtual-program-header 04 69032 496)\n(llvm:elf-virtual-program-header 03 69016 640)\n(llvm:elf-virtual-program-header 02 0 2344)\n(llvm:elf-virtual-program-header 01 568 27)\n(llvm:elf-virtual-program-header 00 64 504)\n(llvm:entry-point 1664)\n(llvm:name-reference 69576 abort)\n(llvm:name-reference 69568 __gmon_start__)\n(llvm:name-reference 69560 __cxa_finalize)\n(llvm:name-reference 69552 __libc_start_main)\n(llvm:name-reference 69624 _ITM_registerTMCloneTable)\n(llvm:name-reference 69608 __gmon_start__)\n(llvm:name-reference 69600 __cxa_finalize)\n(llvm:name-reference 69592 _ITM_deregisterTMCloneTable)\n(llvm:section-entry .shstrtab 0 250 6945)\n(llvm:section-entry .strtab 0 577 6368)\n(llvm:section-entry .symtab 0 2208 4160)\n(llvm:section-entry .comment 0 43 4112)\n(llvm:section-entry .bss 69648 8 4112)\n(llvm:section-entry .data 69632 16 4096)\n(llvm:section-entry .got 69528 104 3992)\n(llvm:section-entry .dynamic 69032 496 3496)\n(llvm:section-entry .fini_array 69024 8 3488)\n(llvm:section-entry .init_array 69016 8 3480)\n(llvm:section-entry .eh_frame 2112 232 2112)\n(llvm:section-entry .eh_frame_hdr 2024 84 2024)\n(llvm:section-entry .rodata 2020 4 2020)\n(llvm:section-entry .fini 2000 20 2000)\n(llvm:section-entry .text 1536 464 1536)\n(llvm:section-entry .plt 1440 96 1440)\n(llvm:section-entry .init 1408 24 1408)\n(llvm:section-entry .rela.plt 1312 96 1312)\n(llvm:section-entry .rela.dyn 1120 192 1120)\n(llvm:section-entry .gnu.version_r 1072 48 1072)\n(llvm:section-entry .gnu.version 1054 18 1054)\n(llvm:section-entry .dynstr 912 141 912)\n(llvm:section-entry .dynsym 696 216 696)\n(llvm:section-entry .gnu.hash 664 28 664)\n(llvm:section-entry .note.ABI-tag 632 32 632)\n(llvm:section-entry .note.gnu.build-id 596 36 596)\n(llvm:section-entry .interp 568 27 568)\n(llvm:section-flags .shstrtab true false false)\n(llvm:section-flags .strtab true false false)\n(llvm:section-flags .symtab true false false)\n(llvm:section-flags .comment true false false)\n(llvm:section-flags .bss true true false)\n(llvm:section-flags .data true true false)\n(llvm:section-flags .got true true false)\n(llvm:section-flags .dynamic true true false)\n(llvm:section-flags .fini_array true true false)\n(llvm:section-flags .init_array true true false)\n(llvm:section-flags .eh_frame true false false)\n(llvm:section-flags .eh_frame_hdr true false false)\n(llvm:section-flags .rodata true false false)\n(llvm:section-flags .fini true false true)\n(llvm:section-flags .text true false true)\n(llvm:section-flags .plt true false true)\n(llvm:section-flags .init true false true)\n(llvm:section-flags .rela.plt true false false)\n(llvm:section-flags .rela.dyn true false false)\n(llvm:section-flags .gnu.version_r true false false)\n(llvm:section-flags .gnu.version true false false)\n(llvm:section-flags .dynstr true false false)\n(llvm:section-flags .dynsym true false false)\n(llvm:section-flags .gnu.hash true false false)\n(llvm:section-flags .note.ABI-tag true false false)\n(llvm:section-flags .note.gnu.build-id true false false)\n(llvm:section-flags .interp true false false)\n(llvm:symbol-entry abort 0 0 0 0)\n(llvm:symbol-entry __cxa_finalize 0 0 0 0)\n(llvm:symbol-entry __libc_start_main 0 0 0 0)\n(llvm:symbol-entry _init 1408 0 1408 1408)\n(llvm:symbol-entry set_seven 1984 16 1984 1984)\n(llvm:symbol-entry main 1536 68 1536 1536)\n(llvm:symbol-entry set_six 1968 16 1968 1968)\n(llvm:symbol-entry _start 1664 52 1664 1664)\n(llvm:symbol-entry set_two 1952 16 1952 1952)\n(llvm:symbol-entry abort@GLIBC_2.17 0 0 0 0)\n(llvm:symbol-entry _fini 2000 0 2000 2000)\n(llvm:symbol-entry __cxa_finalize@GLIBC_2.17 0 0 0 0)\n(llvm:symbol-entry __libc_start_main@GLIBC_2.34 0 0 0 0)\n(llvm:symbol-entry frame_dummy 1936 0 1936 1936)\n(llvm:symbol-entry __do_global_dtors_aux 1856 0 1856 1856)\n(llvm:symbol-entry register_tm_clones 1792 0 1792 1792)\n(llvm:symbol-entry deregister_tm_clones 1744 0 1744 1744)\n(llvm:symbol-entry call_weak_fn 1716 20 1716 1716)\n(mapped 0 2344 0)\n(mapped 69016 632 3480)\n(named-region 0 2344 02)\n(named-region 69016 640 03)\n(named-region 568 27 .interp)\n(named-region 596 36 .note.gnu.build-id)\n(named-region 632 32 .note.ABI-tag)\n(named-region 664 28 .gnu.hash)\n(named-region 696 216 .dynsym)\n(named-region 912 141 .dynstr)\n(named-region 1054 18 .gnu.version)\n(named-region 1072 48 .gnu.version_r)\n(named-region 1120 192 .rela.dyn)\n(named-region 1312 96 .rela.plt)\n(named-region 1408 24 .init)\n(named-region 1440 96 .plt)\n(named-region 1536 464 .text)\n(named-region 2000 20 .fini)\n(named-region 2020 4 .rodata)\n(named-region 2024 84 .eh_frame_hdr)\n(named-region 2112 232 .eh_frame)\n(named-region 69016 8 .init_array)\n(named-region 69024 8 .fini_array)\n(named-region 69032 496 .dynamic)\n(named-region 69528 104 .got)\n(named-region 69632 16 .data)\n(named-region 69648 8 .bss)\n(named-region 0 43 .comment)\n(named-region 0 2208 .symtab)\n(named-region 0 577 .strtab)\n(named-region 0 250 .shstrtab)\n(named-symbol 1716 call_weak_fn)\n(named-symbol 1744 deregister_tm_clones)\n(named-symbol 1792 register_tm_clones)\n(named-symbol 1856 __do_global_dtors_aux)\n(named-symbol 1936 frame_dummy)\n(named-symbol 0 __libc_start_main@GLIBC_2.34)\n(named-symbol 0 __cxa_finalize@GLIBC_2.17)\n(named-symbol 2000 _fini)\n(named-symbol 0 abort@GLIBC_2.17)\n(named-symbol 1952 set_two)\n(named-symbol 1664 _start)\n(named-symbol 1968 set_six)\n(named-symbol 1536 main)\n(named-symbol 1984 set_seven)\n(named-symbol 1408 _init)\n(named-symbol 0 __libc_start_main)\n(named-symbol 0 __cxa_finalize)\n(named-symbol 0 abort)\n(require libc.so.6)\n(section 568 27)\n(section 596 36)\n(section 632 32)\n(section 664 28)\n(section 696 216)\n(section 912 141)\n(section 1054 18)\n(section 1072 48)\n(section 1120 192)\n(section 1312 96)\n(section 1408 24)\n(section 1440 96)\n(section 1536 464)\n(section 2000 20)\n(section 2020 4)\n(section 2024 84)\n(section 2112 232)\n(section 69016 8)\n(section 69024 8)\n(section 69032 496)\n(section 69528 104)\n(section 69632 16)\n(section 69648 8)\n(section 0 43)\n(section 0 2208)\n(section 0 577)\n(section 0 250)\n(segment 0 2344 true false true)\n(segment 69016 640 true true false)\n(subarch v8)\n(symbol-chunk 1716 20 1716)\n(symbol-chunk 1952 16 1952)\n(symbol-chunk 1664 52 1664)\n(symbol-chunk 1968 16 1968)\n(symbol-chunk 1536 68 1536)\n(symbol-chunk 1984 16 1984)\n(symbol-value 1716 1716)\n(symbol-value 1744 1744)\n(symbol-value 1792 1792)\n(symbol-value 1856 1856)\n(symbol-value 1936 1936)\n(symbol-value 2000 2000)\n(symbol-value 1952 1952)\n(symbol-value 1664 1664)\n(symbol-value 1968 1968)\n(symbol-value 1536 1536)\n(symbol-value 1984 1984)\n(symbol-value 1408 1408)\n(symbol-value 0 0)\n(system \"\")\n(vendor \"\")\n"), -Attr("abi-name","\"aarch64-linux-gnu-elf\"")]), -Sections([Section(".shstrtab", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x80\x06\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x20\x1c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x38\x00\x09\x00\x40\x00\x1c\x00\x1b\x00\x06\x00\x00\x00\x04\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x04\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x28\x09\x00\x00\x00\x00\x00\x00\x28\x09\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x01\x00\x00\x00\x06\x00\x00\x00\x98\x0d\x00\x00\x00\x00\x00\x00\x98\x0d"), -Section(".strtab", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x80\x06\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x20\x1c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x38\x00\x09\x00\x40\x00\x1c\x00\x1b\x00\x06\x00\x00\x00\x04\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x04\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x28\x09\x00\x00\x00\x00\x00\x00\x28\x09\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x01\x00\x00\x00\x06\x00\x00\x00\x98\x0d\x00\x00\x00\x00\x00\x00\x98\x0d\x01\x00\x00\x00\x00\x00\x98\x0d\x01\x00\x00\x00\x00\x00\x78\x02\x00\x00\x00\x00\x00\x00\x80\x02\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x02\x00\x00\x00\x06\x00\x00\x00\xa8\x0d\x00\x00\x00\x00\x00\x00\xa8\x0d\x01\x00\x00\x00\x00\x00\xa8\x0d\x01\x00\x00\x00\x00\x00\xf0\x01\x00\x00\x00\x00\x00\x00\xf0\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x04\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x50\xe5\x74\x64\x04\x00\x00\x00\xe8\x07\x00\x00\x00\x00\x00\x00\xe8\x07\x00\x00\x00\x00\x00\x00\xe8\x07\x00\x00\x00\x00\x00\x00\x54\x00\x00\x00\x00\x00\x00\x00\x54\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x51\xe5\x74\x64\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x52\xe5\x74\x64\x04\x00\x00\x00\x98\x0d\x00\x00\x00\x00\x00\x00\x98\x0d\x01\x00\x00\x00\x00\x00\x98\x0d\x01\x00\x00\x00\x00\x00\x68\x02\x00\x00\x00\x00\x00\x00\x68\x02\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x2f\x6c\x69\x62\x2f\x6c\x64\x2d\x6c"), -Section(".symtab", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x80\x06\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x20\x1c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x38\x00\x09\x00\x40\x00\x1c\x00\x1b\x00\x06\x00\x00\x00\x04\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x04\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x28\x09\x00\x00\x00\x00\x00\x00\x28\x09\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x01\x00\x00\x00\x06\x00\x00\x00\x98\x0d\x00\x00\x00\x00\x00\x00\x98\x0d\x01\x00\x00\x00\x00\x00\x98\x0d\x01\x00\x00\x00\x00\x00\x78\x02\x00\x00\x00\x00\x00\x00\x80\x02\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x02\x00\x00\x00\x06\x00\x00\x00\xa8\x0d\x00\x00\x00\x00\x00\x00\xa8\x0d\x01\x00\x00\x00\x00\x00\xa8\x0d\x01\x00\x00\x00\x00\x00\xf0\x01\x00\x00\x00\x00\x00\x00\xf0\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x04\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x50\xe5\x74\x64\x04\x00\x00\x00\xe8\x07\x00\x00\x00\x00\x00\x00\xe8\x07\x00\x00\x00\x00\x00\x00\xe8\x07\x00\x00\x00\x00\x00\x00\x54\x00\x00\x00\x00\x00\x00\x00\x54\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x51\xe5\x74\x64\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x52\xe5\x74\x64\x04\x00\x00\x00\x98\x0d\x00\x00\x00\x00\x00\x00\x98\x0d\x01\x00\x00\x00\x00\x00\x98\x0d\x01\x00\x00\x00\x00\x00\x68\x02\x00\x00\x00\x00\x00\x00\x68\x02\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x2f\x6c\x69\x62\x2f\x6c\x64\x2d\x6c\x69\x6e\x75\x78\x2d\x61\x61\x72\x63\x68\x36\x34\x2e\x73\x6f\x2e\x31\x00\x00\x04\x00\x00\x00\x14\x00\x00\x00\x03\x00\x00\x00\x47\x4e\x55\x00\x74\xbe\x17\xdb\xb7\xe9\x88\x34\xa3\xc6\xa4\x17\x93\x3e\xb1\xfb\xca\x77\xbc\x66\x04\x00\x00\x00\x10\x00\x00\x00\x01\x00\x00\x00\x47\x4e\x55\x00\x00\x00\x00\x00\x03\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x01\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x0b\x00\x80\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x16\x00\x00\x10\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x48\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x22\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x22\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x73\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5f\x5f\x63\x78\x61\x5f\x66\x69\x6e\x61\x6c\x69\x7a\x65\x00\x5f\x5f\x6c\x69\x62\x63\x5f\x73\x74\x61\x72\x74\x5f\x6d\x61\x69\x6e\x00\x61\x62\x6f\x72\x74\x00\x6c\x69\x62\x63\x2e\x73\x6f\x2e\x36\x00\x47\x4c\x49\x42\x43\x5f\x32\x2e\x31\x37\x00\x47\x4c\x49\x42\x43\x5f\x32\x2e\x33\x34\x00\x5f\x49\x54\x4d\x5f\x64\x65\x72\x65\x67\x69\x73\x74\x65\x72\x54\x4d\x43\x6c\x6f\x6e\x65\x54\x61\x62\x6c\x65\x00\x5f\x5f\x67\x6d\x6f\x6e\x5f\x73\x74\x61\x72\x74\x5f\x5f\x00\x5f\x49\x54\x4d\x5f\x72\x65\x67\x69\x73\x74\x65\x72\x54\x4d\x43\x6c\x6f\x6e\x65\x54\x61\x62\x6c\x65\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x01\x00\x03\x00\x01\x00\x03\x00\x01\x00\x01\x00\x02\x00\x28\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x97\x91\x96\x06\x00\x00\x03\x00\x32\x00\x00\x00\x10\x00\x00\x00\xb4\x91\x96\x06\x00\x00\x02\x00\x3d\x00\x00\x00\x00\x00\x00\x00\x98\x0d\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x90\x07\x00\x00\x00\x00\x00\x00\xa0\x0d\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x40\x07\x00\x00\x00\x00\x00\x00\xf0\x0f\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x00\x06\x00\x00\x00\x00\x00\x00\x08\x10\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x08\x10\x01\x00\x00\x00\x00\x00\xd8\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe0\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe8\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xf8\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xb0\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xb8\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xc0\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xc8\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1f\x20\x03\xd5\xfd\x7b\xbf\xa9\xfd\x03\x00\x91\x4a\x00\x00\x94\xfd\x7b\xc1\xa8\xc0\x03\x5f\xd6\x00\x00\x00\x00\x00\x00\x00\x00\xf0\x7b\xbf\xa9\x90\x00\x00\x90\x11\xd6\x47\xf9\x10\xa2\x3e\x91\x20\x02\x1f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x90\x00\x00\x90\x11\xda\x47\xf9\x10\xc2\x3e\x91\x20\x02\x1f\xd6\x90\x00\x00\x90\x11\xde\x47\xf9\x10\xe2\x3e\x91\x20\x02\x1f\xd6\x90\x00\x00\x90\x11\xe2\x47\xf9\x10\x02\x3f\x91\x20\x02\x1f\xd6\x90\x00\x00\x90\x11\xe6\x47\xf9\x10\x22\x3f\x91\x20\x02\x1f\xd6\xfd\x7b\xbf\xa9\xfd\x03\x00\x91\x1f\x04\x00\x71\x60\x01\x00\x54\x1f\x08\x00\x71\x01\x00\x00\x90\x00\x00\x00\x90\x21\x00\x1f\x91\x00\x80\x1e\x91\x00\x10\x81\x9a\x00\x00\x3f\xd6\x00\x00\x80\x52\xfd\x7b\xc1\xa8\xc0\x03\x5f\xd6\x00\x00\x00\x90\x00\xc0\x1e\x91\xfa\xff\xff\x17\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1d\x00\x80\xd2\x1e\x00\x80\xd2\xe5\x03\x00\xaa\xe1\x03\x40\xf9\xe2\x23\x00\x91\xe6\x03\x00\x91\x80\x00\x00\x90\x00\xf8\x47\xf9\x03\x00\x80\xd2\x04\x00\x80\xd2\xc5\xff\xff\x97\xd0\xff\xff\x97\x80\x00\x00\x90\x00\xf4\x47\xf9\x40\x00\x00\xb4\xc8\xff\xff\x17\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x80\x00\x00\xb0\x00\x40\x00\x91\x81\x00\x00\xb0\x21\x40\x00\x91\x3f\x00\x00\xeb\xc0\x00\x00\x54\x81\x00\x00\x90\x21\xec\x47\xf9\x61\x00\x00\xb4\xf0\x03\x01\xaa\x00\x02\x1f\xd6\xc0\x03\x5f\xd6\x80\x00\x00\xb0\x00\x40\x00\x91\x81\x00\x00\xb0\x21\x40\x00\x91\x21\x00\x00\xcb\x22\xfc\x7f\xd3\x41\x0c\x81\x8b\x21\xfc\x41\x93\xc1\x00\x00\xb4\x82\x00\x00\x90\x42\xfc\x47\xf9\x62\x00\x00\xb4\xf0\x03\x02\xaa\x00\x02\x1f\xd6\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\xfd\x7b\xbe\xa9\xfd\x03\x00\x91\xf3\x0b\x00\xf9\x93\x00\x00\xb0\x60\x42\x40\x39\x40\x01\x00\x35\x80\x00\x00\x90\x00\xf0\x47\xf9\x80\x00\x00\xb4\x80\x00\x00\xb0\x00\x04\x40\xf9\x99\xff\xff\x97\xd8\xff\xff\x97\x20\x00\x80\x52\x60\x42\x00\x39\xf3\x0b\x40\xf9\xfd\x7b\xc2\xa8\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\xdc\xff\xff\x17\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x80\x00\x00\xb0\x41\x00\x80\x52\x01\x14\x00\xb9\xc0\x03\x5f\xd6\x80\x00\x00\xb0\xc1\x00\x80\x52\x01\x14\x00\xb9\xc0\x03\x5f\xd6\x80\x00\x00\xb0\xe1\x00\x80\x52\x01\x14\x00\xb9\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\xfd\x7b\xbf\xa9\xfd\x03\x00\x91\xfd\x7b\xc1\xa8\xc0\x03\x5f\xd6\x01\x00\x02\x00\x01\x1b\x03\x3b\x54\x00\x00\x00\x09\x00\x00\x00\x18\xfe\xff\xff\x1c\x01\x00\x00\x98\xfe\xff\xff\x6c\x00\x00\x00\xe8\xfe\xff\xff\x80\x00\x00\x00\x18\xff\xff\xff\x94\x00\x00\x00\x58\xff\xff\xff\xa8\x00\x00\x00\xa8\xff\xff\xff\xcc\x00\x00\x00\xb8\xff\xff\xff\xe0\x00\x00\x00\xc8\xff\xff\xff\xf4\x00\x00\x00\xd8\xff\xff\xff\x08\x01\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x01\x7a\x52\x00\x04\x78\x1e\x01\x1b\x0c\x1f\x00\x10\x00\x00\x00\x18\x00\x00\x00\x24\xfe\xff\xff\x34\x00\x00\x00\x00\x41\x07\x1e\x10\x00\x00\x00\x2c\x00\x00\x00\x60\xfe\xff\xff\x30\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x40\x00\x00\x00\x7c\xfe\xff\xff\x3c\x00\x00\x00\x00\x00\x00\x00\x20\x00\x00\x00\x54\x00\x00\x00\xa8\xfe\xff\xff\x48\x00\x00\x00"), -Section(".comment", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x80\x06\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x20\x1c\x00"), -Section(".interp", 0x238, "\x2f\x6c\x69\x62\x2f\x6c\x64\x2d\x6c\x69\x6e\x75\x78\x2d\x61\x61\x72\x63\x68\x36\x34\x2e\x73\x6f\x2e\x31\x00"), -Section(".note.gnu.build-id", 0x254, "\x04\x00\x00\x00\x14\x00\x00\x00\x03\x00\x00\x00\x47\x4e\x55\x00\x74\xbe\x17\xdb\xb7\xe9\x88\x34\xa3\xc6\xa4\x17\x93\x3e\xb1\xfb\xca\x77\xbc\x66"), -Section(".note.ABI-tag", 0x278, "\x04\x00\x00\x00\x10\x00\x00\x00\x01\x00\x00\x00\x47\x4e\x55\x00\x00\x00\x00\x00\x03\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00"), -Section(".gnu.hash", 0x298, "\x01\x00\x00\x00\x01\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".dynsym", 0x2B8, "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x0b\x00\x80\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x16\x00\x00\x10\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x48\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x22\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x22\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x73\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".dynstr", 0x390, "\x00\x5f\x5f\x63\x78\x61\x5f\x66\x69\x6e\x61\x6c\x69\x7a\x65\x00\x5f\x5f\x6c\x69\x62\x63\x5f\x73\x74\x61\x72\x74\x5f\x6d\x61\x69\x6e\x00\x61\x62\x6f\x72\x74\x00\x6c\x69\x62\x63\x2e\x73\x6f\x2e\x36\x00\x47\x4c\x49\x42\x43\x5f\x32\x2e\x31\x37\x00\x47\x4c\x49\x42\x43\x5f\x32\x2e\x33\x34\x00\x5f\x49\x54\x4d\x5f\x64\x65\x72\x65\x67\x69\x73\x74\x65\x72\x54\x4d\x43\x6c\x6f\x6e\x65\x54\x61\x62\x6c\x65\x00\x5f\x5f\x67\x6d\x6f\x6e\x5f\x73\x74\x61\x72\x74\x5f\x5f\x00\x5f\x49\x54\x4d\x5f\x72\x65\x67\x69\x73\x74\x65\x72\x54\x4d\x43\x6c\x6f\x6e\x65\x54\x61\x62\x6c\x65\x00"), -Section(".gnu.version", 0x41E, "\x00\x00\x00\x00\x00\x00\x02\x00\x01\x00\x03\x00\x01\x00\x03\x00\x01\x00"), -Section(".gnu.version_r", 0x430, "\x01\x00\x02\x00\x28\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x97\x91\x96\x06\x00\x00\x03\x00\x32\x00\x00\x00\x10\x00\x00\x00\xb4\x91\x96\x06\x00\x00\x02\x00\x3d\x00\x00\x00\x00\x00\x00\x00"), -Section(".rela.dyn", 0x460, "\x98\x0d\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x90\x07\x00\x00\x00\x00\x00\x00\xa0\x0d\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x40\x07\x00\x00\x00\x00\x00\x00\xf0\x0f\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x00\x06\x00\x00\x00\x00\x00\x00\x08\x10\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x08\x10\x01\x00\x00\x00\x00\x00\xd8\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe0\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe8\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xf8\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".rela.plt", 0x520, "\xb0\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xb8\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xc0\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xc8\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".init", 0x580, "\x1f\x20\x03\xd5\xfd\x7b\xbf\xa9\xfd\x03\x00\x91\x4a\x00\x00\x94\xfd\x7b\xc1\xa8\xc0\x03\x5f\xd6"), -Section(".plt", 0x5A0, "\xf0\x7b\xbf\xa9\x90\x00\x00\x90\x11\xd6\x47\xf9\x10\xa2\x3e\x91\x20\x02\x1f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x90\x00\x00\x90\x11\xda\x47\xf9\x10\xc2\x3e\x91\x20\x02\x1f\xd6\x90\x00\x00\x90\x11\xde\x47\xf9\x10\xe2\x3e\x91\x20\x02\x1f\xd6\x90\x00\x00\x90\x11\xe2\x47\xf9\x10\x02\x3f\x91\x20\x02\x1f\xd6\x90\x00\x00\x90\x11\xe6\x47\xf9\x10\x22\x3f\x91\x20\x02\x1f\xd6"), -Section(".text", 0x600, "\xfd\x7b\xbf\xa9\xfd\x03\x00\x91\x1f\x04\x00\x71\x60\x01\x00\x54\x1f\x08\x00\x71\x01\x00\x00\x90\x00\x00\x00\x90\x21\x00\x1f\x91\x00\x80\x1e\x91\x00\x10\x81\x9a\x00\x00\x3f\xd6\x00\x00\x80\x52\xfd\x7b\xc1\xa8\xc0\x03\x5f\xd6\x00\x00\x00\x90\x00\xc0\x1e\x91\xfa\xff\xff\x17\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1d\x00\x80\xd2\x1e\x00\x80\xd2\xe5\x03\x00\xaa\xe1\x03\x40\xf9\xe2\x23\x00\x91\xe6\x03\x00\x91\x80\x00\x00\x90\x00\xf8\x47\xf9\x03\x00\x80\xd2\x04\x00\x80\xd2\xc5\xff\xff\x97\xd0\xff\xff\x97\x80\x00\x00\x90\x00\xf4\x47\xf9\x40\x00\x00\xb4\xc8\xff\xff\x17\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x80\x00\x00\xb0\x00\x40\x00\x91\x81\x00\x00\xb0\x21\x40\x00\x91\x3f\x00\x00\xeb\xc0\x00\x00\x54\x81\x00\x00\x90\x21\xec\x47\xf9\x61\x00\x00\xb4\xf0\x03\x01\xaa\x00\x02\x1f\xd6\xc0\x03\x5f\xd6\x80\x00\x00\xb0\x00\x40\x00\x91\x81\x00\x00\xb0\x21\x40\x00\x91\x21\x00\x00\xcb\x22\xfc\x7f\xd3\x41\x0c\x81\x8b\x21\xfc\x41\x93\xc1\x00\x00\xb4\x82\x00\x00\x90\x42\xfc\x47\xf9\x62\x00\x00\xb4\xf0\x03\x02\xaa\x00\x02\x1f\xd6\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\xfd\x7b\xbe\xa9\xfd\x03\x00\x91\xf3\x0b\x00\xf9\x93\x00\x00\xb0\x60\x42\x40\x39\x40\x01\x00\x35\x80\x00\x00\x90\x00\xf0\x47\xf9\x80\x00\x00\xb4\x80\x00\x00\xb0\x00\x04\x40\xf9\x99\xff\xff\x97\xd8\xff\xff\x97\x20\x00\x80\x52\x60\x42\x00\x39\xf3\x0b\x40\xf9\xfd\x7b\xc2\xa8\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\xdc\xff\xff\x17\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x80\x00\x00\xb0\x41\x00\x80\x52\x01\x14\x00\xb9\xc0\x03\x5f\xd6\x80\x00\x00\xb0\xc1\x00\x80\x52\x01\x14\x00\xb9\xc0\x03\x5f\xd6\x80\x00\x00\xb0\xe1\x00\x80\x52\x01\x14\x00\xb9\xc0\x03\x5f\xd6"), -Section(".fini", 0x7D0, "\x1f\x20\x03\xd5\xfd\x7b\xbf\xa9\xfd\x03\x00\x91\xfd\x7b\xc1\xa8\xc0\x03\x5f\xd6"), -Section(".rodata", 0x7E4, "\x01\x00\x02\x00"), -Section(".eh_frame_hdr", 0x7E8, "\x01\x1b\x03\x3b\x54\x00\x00\x00\x09\x00\x00\x00\x18\xfe\xff\xff\x1c\x01\x00\x00\x98\xfe\xff\xff\x6c\x00\x00\x00\xe8\xfe\xff\xff\x80\x00\x00\x00\x18\xff\xff\xff\x94\x00\x00\x00\x58\xff\xff\xff\xa8\x00\x00\x00\xa8\xff\xff\xff\xcc\x00\x00\x00\xb8\xff\xff\xff\xe0\x00\x00\x00\xc8\xff\xff\xff\xf4\x00\x00\x00\xd8\xff\xff\xff\x08\x01\x00\x00"), -Section(".eh_frame", 0x840, "\x10\x00\x00\x00\x00\x00\x00\x00\x01\x7a\x52\x00\x04\x78\x1e\x01\x1b\x0c\x1f\x00\x10\x00\x00\x00\x18\x00\x00\x00\x24\xfe\xff\xff\x34\x00\x00\x00\x00\x41\x07\x1e\x10\x00\x00\x00\x2c\x00\x00\x00\x60\xfe\xff\xff\x30\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x40\x00\x00\x00\x7c\xfe\xff\xff\x3c\x00\x00\x00\x00\x00\x00\x00\x20\x00\x00\x00\x54\x00\x00\x00\xa8\xfe\xff\xff\x48\x00\x00\x00\x00\x41\x0e\x20\x9d\x04\x9e\x03\x42\x93\x02\x4e\xde\xdd\xd3\x0e\x00\x00\x00\x00\x10\x00\x00\x00\x78\x00\x00\x00\xd4\xfe\xff\xff\x04\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x8c\x00\x00\x00\xd0\xfe\xff\xff\x10\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\xa0\x00\x00\x00\xcc\xfe\xff\xff\x10\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\xb4\x00\x00\x00\xc8\xfe\xff\xff\x10\x00\x00\x00\x00\x00\x00\x00\x1c\x00\x00\x00\xc8\x00\x00\x00\xf4\xfc\xff\xff\x44\x00\x00\x00\x00\x41\x0e\x10\x9d\x02\x9e\x01\x4c\x0a\xde\xdd\x0e\x00\x41\x0b\x00\x00\x00\x00"), -Section(".fini_array", 0x10DA0, "\x40\x07\x00\x00\x00\x00\x00\x00"), -Section(".dynamic", 0x10DA8, "\x01\x00\x00\x00\x00\x00\x00\x00\x28\x00\x00\x00\x00\x00\x00\x00\x0c\x00\x00\x00\x00\x00\x00\x00\x80\x05\x00\x00\x00\x00\x00\x00\x0d\x00\x00\x00\x00\x00\x00\x00\xd0\x07\x00\x00\x00\x00\x00\x00\x19\x00\x00\x00\x00\x00\x00\x00\x98\x0d\x01\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x1a\x00\x00\x00\x00\x00\x00\x00\xa0\x0d\x01\x00\x00\x00\x00\x00\x1c\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\xf5\xfe\xff\x6f\x00\x00\x00\x00\x98\x02\x00\x00\x00\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x90\x03\x00\x00\x00\x00\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\xb8\x02\x00\x00\x00\x00\x00\x00\x0a\x00\x00\x00\x00\x00\x00\x00\x8d\x00\x00\x00\x00\x00\x00\x00\x0b\x00\x00\x00\x00\x00\x00\x00\x18\x00\x00\x00\x00\x00\x00\x00\x15\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x98\x0f\x01\x00\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x60\x00\x00\x00\x00\x00\x00\x00\x14\x00\x00\x00\x00\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x17\x00\x00\x00\x00\x00\x00\x00\x20\x05\x00\x00\x00\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x60\x04\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\xc0\x00\x00\x00\x00\x00\x00\x00\x09\x00\x00\x00\x00\x00\x00\x00\x18\x00\x00\x00\x00\x00\x00\x00\x1e\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\xfb\xff\xff\x6f\x00\x00\x00\x00\x01\x00\x00\x08\x00\x00\x00\x00\xfe\xff\xff\x6f\x00\x00\x00\x00\x30\x04\x00\x00\x00\x00\x00\x00\xff\xff\xff\x6f\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\xf0\xff\xff\x6f\x00\x00\x00\x00\x1e\x04\x00\x00\x00\x00\x00\x00\xf9\xff\xff\x6f\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".got", 0x10F98, "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xa0\x05\x00\x00\x00\x00\x00\x00\xa0\x05\x00\x00\x00\x00\x00\x00\xa0\x05\x00\x00\x00\x00\x00\x00\xa0\x05\x00\x00\x00\x00\x00\x00\xa8\x0d\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".data", 0x11000, "\x00\x00\x00\x00\x00\x00\x00\x00\x08\x10\x01\x00\x00\x00\x00\x00"), -Section(".init_array", 0x10D98, "\x90\x07\x00\x00\x00\x00\x00\x00")]), -Memmap([Annotation(Region(0x0,0x927), Attr("segment","02 0 2344")), -Annotation(Region(0x600,0x643), Attr("symbol","\"main\"")), -Annotation(Region(0x0,0xF9), Attr("section","\".shstrtab\"")), -Annotation(Region(0x0,0x240), Attr("section","\".strtab\"")), -Annotation(Region(0x0,0x89F), Attr("section","\".symtab\"")), -Annotation(Region(0x0,0x2A), Attr("section","\".comment\"")), -Annotation(Region(0x238,0x252), Attr("section","\".interp\"")), -Annotation(Region(0x254,0x277), Attr("section","\".note.gnu.build-id\"")), -Annotation(Region(0x278,0x297), Attr("section","\".note.ABI-tag\"")), -Annotation(Region(0x298,0x2B3), Attr("section","\".gnu.hash\"")), -Annotation(Region(0x2B8,0x38F), Attr("section","\".dynsym\"")), -Annotation(Region(0x390,0x41C), Attr("section","\".dynstr\"")), -Annotation(Region(0x41E,0x42F), Attr("section","\".gnu.version\"")), -Annotation(Region(0x430,0x45F), Attr("section","\".gnu.version_r\"")), -Annotation(Region(0x460,0x51F), Attr("section","\".rela.dyn\"")), -Annotation(Region(0x520,0x57F), Attr("section","\".rela.plt\"")), -Annotation(Region(0x580,0x597), Attr("section","\".init\"")), -Annotation(Region(0x5A0,0x5FF), Attr("section","\".plt\"")), -Annotation(Region(0x580,0x597), Attr("code-region","()")), -Annotation(Region(0x5A0,0x5FF), Attr("code-region","()")), -Annotation(Region(0x600,0x643), Attr("symbol-info","main 0x600 68")), -Annotation(Region(0x680,0x6B3), Attr("symbol","\"_start\"")), -Annotation(Region(0x680,0x6B3), Attr("symbol-info","_start 0x680 52")), -Annotation(Region(0x6B4,0x6C7), Attr("symbol","\"call_weak_fn\"")), -Annotation(Region(0x6B4,0x6C7), Attr("symbol-info","call_weak_fn 0x6B4 20")), -Annotation(Region(0x7A0,0x7AF), Attr("symbol","\"set_two\"")), -Annotation(Region(0x7A0,0x7AF), Attr("symbol-info","set_two 0x7A0 16")), -Annotation(Region(0x600,0x7CF), Attr("section","\".text\"")), -Annotation(Region(0x600,0x7CF), Attr("code-region","()")), -Annotation(Region(0x7B0,0x7BF), Attr("symbol","\"set_six\"")), -Annotation(Region(0x7B0,0x7BF), Attr("symbol-info","set_six 0x7B0 16")), -Annotation(Region(0x7C0,0x7CF), Attr("symbol","\"set_seven\"")), -Annotation(Region(0x7C0,0x7CF), Attr("symbol-info","set_seven 0x7C0 16")), -Annotation(Region(0x7D0,0x7E3), Attr("section","\".fini\"")), -Annotation(Region(0x7D0,0x7E3), Attr("code-region","()")), -Annotation(Region(0x7E4,0x7E7), Attr("section","\".rodata\"")), -Annotation(Region(0x7E8,0x83B), Attr("section","\".eh_frame_hdr\"")), -Annotation(Region(0x840,0x927), Attr("section","\".eh_frame\"")), -Annotation(Region(0x10D98,0x1100F), Attr("segment","03 0x10D98 640")), -Annotation(Region(0x10DA0,0x10DA7), Attr("section","\".fini_array\"")), -Annotation(Region(0x10DA8,0x10F97), Attr("section","\".dynamic\"")), -Annotation(Region(0x10F98,0x10FFF), Attr("section","\".got\"")), -Annotation(Region(0x11000,0x1100F), Attr("section","\".data\"")), -Annotation(Region(0x10D98,0x10D9F), Attr("section","\".init_array\""))]), -Program(Tid(1_927, "%00000787"), Attrs([]), - Subs([Sub(Tid(1_867, "@__cxa_finalize"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x5D0"), -Attr("stub","()")]), "__cxa_finalize", Args([Arg(Tid(1_928, "%00000788"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("__cxa_finalize_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(1_138, "@__cxa_finalize"), - Attrs([Attr("address","0x5D0")]), Phis([]), -Defs([Def(Tid(1_449, "%000005a9"), Attrs([Attr("address","0x5D0"), -Attr("insn","adrp x16, #65536")]), Var("R16",Imm(64)), Int(65536,64)), -Def(Tid(1_456, "%000005b0"), Attrs([Attr("address","0x5D4"), -Attr("insn","ldr x17, [x16, #0xfb8]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(4024,64)),LittleEndian(),64)), -Def(Tid(1_462, "%000005b6"), Attrs([Attr("address","0x5D8"), -Attr("insn","add x16, x16, #0xfb8")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(4024,64)))]), Jmps([Call(Tid(1_467, "%000005bb"), - Attrs([Attr("address","0x5DC"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), -Sub(Tid(1_868, "@__do_global_dtors_aux"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x740")]), - "__do_global_dtors_aux", Args([Arg(Tid(1_929, "%00000789"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("__do_global_dtors_aux_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(916, "@__do_global_dtors_aux"), - Attrs([Attr("address","0x740")]), Phis([]), Defs([Def(Tid(920, "%00000398"), - Attrs([Attr("address","0x740"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("#5",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(18446744073709551584,64))), -Def(Tid(926, "%0000039e"), Attrs([Attr("address","0x740"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("#5",Imm(64)),Var("R29",Imm(64)),LittleEndian(),64)), -Def(Tid(932, "%000003a4"), Attrs([Attr("address","0x740"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("#5",Imm(64)),Int(8,64)),Var("R30",Imm(64)),LittleEndian(),64)), -Def(Tid(936, "%000003a8"), Attrs([Attr("address","0x740"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("R31",Imm(64)), -Var("#5",Imm(64))), Def(Tid(942, "%000003ae"), - Attrs([Attr("address","0x744"), Attr("insn","mov x29, sp")]), - Var("R29",Imm(64)), Var("R31",Imm(64))), Def(Tid(950, "%000003b6"), - Attrs([Attr("address","0x748"), Attr("insn","str x19, [sp, #0x10]")]), - Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(16,64)),Var("R19",Imm(64)),LittleEndian(),64)), -Def(Tid(955, "%000003bb"), Attrs([Attr("address","0x74C"), -Attr("insn","adrp x19, #69632")]), Var("R19",Imm(64)), Int(69632,64)), -Def(Tid(962, "%000003c2"), Attrs([Attr("address","0x750"), -Attr("insn","ldrb w0, [x19, #0x10]")]), Var("R0",Imm(64)), -UNSIGNED(64,Load(Var("mem",Mem(64,8)),PLUS(Var("R19",Imm(64)),Int(16,64)),LittleEndian(),8)))]), -Jmps([Goto(Tid(969, "%000003c9"), Attrs([Attr("address","0x754"), -Attr("insn","cbnz w0, #0x28")]), - NEQ(Extract(31,0,Var("R0",Imm(64))),Int(0,32)), -Direct(Tid(967, "%000003c7"))), Goto(Tid(1_915, "%0000077b"), Attrs([]), - Int(1,1), Direct(Tid(1_083, "%0000043b")))])), Blk(Tid(1_083, "%0000043b"), - Attrs([Attr("address","0x758")]), Phis([]), -Defs([Def(Tid(1_086, "%0000043e"), Attrs([Attr("address","0x758"), -Attr("insn","adrp x0, #65536")]), Var("R0",Imm(64)), Int(65536,64)), -Def(Tid(1_093, "%00000445"), Attrs([Attr("address","0x75C"), -Attr("insn","ldr x0, [x0, #0xfe0]")]), Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(4064,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(1_099, "%0000044b"), Attrs([Attr("address","0x760"), -Attr("insn","cbz x0, #0x10")]), EQ(Var("R0",Imm(64)),Int(0,64)), -Direct(Tid(1_097, "%00000449"))), Goto(Tid(1_916, "%0000077c"), Attrs([]), - Int(1,1), Direct(Tid(1_122, "%00000462")))])), Blk(Tid(1_122, "%00000462"), - Attrs([Attr("address","0x764")]), Phis([]), -Defs([Def(Tid(1_125, "%00000465"), Attrs([Attr("address","0x764"), -Attr("insn","adrp x0, #69632")]), Var("R0",Imm(64)), Int(69632,64)), -Def(Tid(1_132, "%0000046c"), Attrs([Attr("address","0x768"), -Attr("insn","ldr x0, [x0, #0x8]")]), Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(1_137, "%00000471"), Attrs([Attr("address","0x76C"), -Attr("insn","bl #-0x19c")]), Var("R30",Imm(64)), Int(1904,64))]), -Jmps([Call(Tid(1_140, "%00000474"), Attrs([Attr("address","0x76C"), -Attr("insn","bl #-0x19c")]), Int(1,1), -(Direct(Tid(1_867, "@__cxa_finalize")),Direct(Tid(1_097, "%00000449"))))])), -Blk(Tid(1_097, "%00000449"), Attrs([Attr("address","0x770")]), Phis([]), -Defs([Def(Tid(1_105, "%00000451"), Attrs([Attr("address","0x770"), -Attr("insn","bl #-0xa0")]), Var("R30",Imm(64)), Int(1908,64))]), -Jmps([Call(Tid(1_107, "%00000453"), Attrs([Attr("address","0x770"), -Attr("insn","bl #-0xa0")]), Int(1,1), -(Direct(Tid(1_881, "@deregister_tm_clones")),Direct(Tid(1_109, "%00000455"))))])), -Blk(Tid(1_109, "%00000455"), Attrs([Attr("address","0x774")]), Phis([]), -Defs([Def(Tid(1_112, "%00000458"), Attrs([Attr("address","0x774"), -Attr("insn","mov w0, #0x1")]), Var("R0",Imm(64)), Int(1,64)), -Def(Tid(1_120, "%00000460"), Attrs([Attr("address","0x778"), -Attr("insn","strb w0, [x19, #0x10]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R19",Imm(64)),Int(16,64)),Extract(7,0,Var("R0",Imm(64))),LittleEndian(),8))]), -Jmps([Goto(Tid(1_917, "%0000077d"), Attrs([]), Int(1,1), -Direct(Tid(967, "%000003c7")))])), Blk(Tid(967, "%000003c7"), - Attrs([Attr("address","0x77C")]), Phis([]), Defs([Def(Tid(977, "%000003d1"), - Attrs([Attr("address","0x77C"), Attr("insn","ldr x19, [sp, #0x10]")]), - Var("R19",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(16,64)),LittleEndian(),64)), -Def(Tid(984, "%000003d8"), Attrs([Attr("address","0x780"), -Attr("insn","ldp x29, x30, [sp], #0x20")]), Var("R29",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(989, "%000003dd"), Attrs([Attr("address","0x780"), -Attr("insn","ldp x29, x30, [sp], #0x20")]), Var("R30",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(993, "%000003e1"), Attrs([Attr("address","0x780"), -Attr("insn","ldp x29, x30, [sp], #0x20")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(32,64)))]), Jmps([Call(Tid(998, "%000003e6"), - Attrs([Attr("address","0x784"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), Sub(Tid(1_872, "@__libc_start_main"), - Attrs([Attr("c.proto","signed (*)(signed (*)(signed , char** , char** );* main, signed , char** , \nvoid* auxv)"), -Attr("address","0x5C0"), Attr("stub","()")]), "__libc_start_main", - Args([Arg(Tid(1_930, "%0000078a"), - Attrs([Attr("c.layout","**[ : 64]"), -Attr("c.data","Top:u64 ptr ptr"), -Attr("c.type","signed (*)(signed , char** , char** );*")]), - Var("__libc_start_main_main",Imm(64)), Var("R0",Imm(64)), In()), -Arg(Tid(1_931, "%0000078b"), Attrs([Attr("c.layout","[signed : 32]"), -Attr("c.data","Top:u32"), Attr("c.type","signed")]), - Var("__libc_start_main_arg2",Imm(32)), LOW(32,Var("R1",Imm(64))), In()), -Arg(Tid(1_932, "%0000078c"), Attrs([Attr("c.layout","**[char : 8]"), -Attr("c.data","Top:u8 ptr ptr"), Attr("c.type","char**")]), - Var("__libc_start_main_arg3",Imm(64)), Var("R2",Imm(64)), Both()), -Arg(Tid(1_933, "%0000078d"), Attrs([Attr("c.layout","*[ : 8]"), -Attr("c.data","{} ptr"), Attr("c.type","void*")]), - Var("__libc_start_main_auxv",Imm(64)), Var("R3",Imm(64)), Both()), -Arg(Tid(1_934, "%0000078e"), Attrs([Attr("c.layout","[signed : 32]"), -Attr("c.data","Top:u32"), Attr("c.type","signed")]), - Var("__libc_start_main_result",Imm(32)), LOW(32,Var("R0",Imm(64))), -Out())]), Blks([Blk(Tid(749, "@__libc_start_main"), - Attrs([Attr("address","0x5C0")]), Phis([]), -Defs([Def(Tid(1_427, "%00000593"), Attrs([Attr("address","0x5C0"), -Attr("insn","adrp x16, #65536")]), Var("R16",Imm(64)), Int(65536,64)), -Def(Tid(1_434, "%0000059a"), Attrs([Attr("address","0x5C4"), -Attr("insn","ldr x17, [x16, #0xfb0]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(4016,64)),LittleEndian(),64)), -Def(Tid(1_440, "%000005a0"), Attrs([Attr("address","0x5C8"), -Attr("insn","add x16, x16, #0xfb0")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(4016,64)))]), Jmps([Call(Tid(1_445, "%000005a5"), - Attrs([Attr("address","0x5CC"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), Sub(Tid(1_873, "@_fini"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x7D0")]), - "_fini", Args([Arg(Tid(1_935, "%0000078f"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("_fini_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(31, "@_fini"), - Attrs([Attr("address","0x7D0")]), Phis([]), Defs([Def(Tid(37, "%00000025"), - Attrs([Attr("address","0x7D4"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("#0",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(18446744073709551600,64))), -Def(Tid(43, "%0000002b"), Attrs([Attr("address","0x7D4"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("#0",Imm(64)),Var("R29",Imm(64)),LittleEndian(),64)), -Def(Tid(49, "%00000031"), Attrs([Attr("address","0x7D4"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("#0",Imm(64)),Int(8,64)),Var("R30",Imm(64)),LittleEndian(),64)), -Def(Tid(53, "%00000035"), Attrs([Attr("address","0x7D4"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("R31",Imm(64)), -Var("#0",Imm(64))), Def(Tid(59, "%0000003b"), Attrs([Attr("address","0x7D8"), -Attr("insn","mov x29, sp")]), Var("R29",Imm(64)), Var("R31",Imm(64))), -Def(Tid(66, "%00000042"), Attrs([Attr("address","0x7DC"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R29",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(71, "%00000047"), Attrs([Attr("address","0x7DC"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R30",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(75, "%0000004b"), Attrs([Attr("address","0x7DC"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(16,64)))]), Jmps([Call(Tid(80, "%00000050"), - Attrs([Attr("address","0x7E0"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), Sub(Tid(1_874, "@_init"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x580")]), - "_init", Args([Arg(Tid(1_936, "%00000790"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("_init_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(1_662, "@_init"), - Attrs([Attr("address","0x580")]), Phis([]), -Defs([Def(Tid(1_668, "%00000684"), Attrs([Attr("address","0x584"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("#8",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(18446744073709551600,64))), -Def(Tid(1_674, "%0000068a"), Attrs([Attr("address","0x584"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("#8",Imm(64)),Var("R29",Imm(64)),LittleEndian(),64)), -Def(Tid(1_680, "%00000690"), Attrs([Attr("address","0x584"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("#8",Imm(64)),Int(8,64)),Var("R30",Imm(64)),LittleEndian(),64)), -Def(Tid(1_684, "%00000694"), Attrs([Attr("address","0x584"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("R31",Imm(64)), -Var("#8",Imm(64))), Def(Tid(1_690, "%0000069a"), - Attrs([Attr("address","0x588"), Attr("insn","mov x29, sp")]), - Var("R29",Imm(64)), Var("R31",Imm(64))), Def(Tid(1_695, "%0000069f"), - Attrs([Attr("address","0x58C"), Attr("insn","bl #0x128")]), - Var("R30",Imm(64)), Int(1424,64))]), Jmps([Call(Tid(1_697, "%000006a1"), - Attrs([Attr("address","0x58C"), Attr("insn","bl #0x128")]), Int(1,1), -(Direct(Tid(1_879, "@call_weak_fn")),Direct(Tid(1_699, "%000006a3"))))])), -Blk(Tid(1_699, "%000006a3"), Attrs([Attr("address","0x590")]), Phis([]), -Defs([Def(Tid(1_704, "%000006a8"), Attrs([Attr("address","0x590"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R29",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(1_709, "%000006ad"), Attrs([Attr("address","0x590"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R30",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(1_713, "%000006b1"), Attrs([Attr("address","0x590"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(16,64)))]), Jmps([Call(Tid(1_718, "%000006b6"), - Attrs([Attr("address","0x594"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), Sub(Tid(1_875, "@_start"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x680"), -Attr("entry-point","()")]), "_start", Args([Arg(Tid(1_937, "%00000791"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("_start_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(686, "@_start"), - Attrs([Attr("address","0x680")]), Phis([]), Defs([Def(Tid(691, "%000002b3"), - Attrs([Attr("address","0x684"), Attr("insn","mov x29, #0x0")]), - Var("R29",Imm(64)), Int(0,64)), Def(Tid(696, "%000002b8"), - Attrs([Attr("address","0x688"), Attr("insn","mov x30, #0x0")]), - Var("R30",Imm(64)), Int(0,64)), Def(Tid(702, "%000002be"), - Attrs([Attr("address","0x68C"), Attr("insn","mov x5, x0")]), - Var("R5",Imm(64)), Var("R0",Imm(64))), Def(Tid(709, "%000002c5"), - Attrs([Attr("address","0x690"), Attr("insn","ldr x1, [sp]")]), - Var("R1",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(715, "%000002cb"), Attrs([Attr("address","0x694"), -Attr("insn","add x2, sp, #0x8")]), Var("R2",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(8,64))), Def(Tid(721, "%000002d1"), - Attrs([Attr("address","0x698"), Attr("insn","mov x6, sp")]), - Var("R6",Imm(64)), Var("R31",Imm(64))), Def(Tid(726, "%000002d6"), - Attrs([Attr("address","0x69C"), Attr("insn","adrp x0, #65536")]), - Var("R0",Imm(64)), Int(65536,64)), Def(Tid(733, "%000002dd"), - Attrs([Attr("address","0x6A0"), Attr("insn","ldr x0, [x0, #0xff0]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(4080,64)),LittleEndian(),64)), -Def(Tid(738, "%000002e2"), Attrs([Attr("address","0x6A4"), -Attr("insn","mov x3, #0x0")]), Var("R3",Imm(64)), Int(0,64)), -Def(Tid(743, "%000002e7"), Attrs([Attr("address","0x6A8"), -Attr("insn","mov x4, #0x0")]), Var("R4",Imm(64)), Int(0,64)), -Def(Tid(748, "%000002ec"), Attrs([Attr("address","0x6AC"), -Attr("insn","bl #-0xec")]), Var("R30",Imm(64)), Int(1712,64))]), -Jmps([Call(Tid(751, "%000002ef"), Attrs([Attr("address","0x6AC"), -Attr("insn","bl #-0xec")]), Int(1,1), -(Direct(Tid(1_872, "@__libc_start_main")),Direct(Tid(753, "%000002f1"))))])), -Blk(Tid(753, "%000002f1"), Attrs([Attr("address","0x6B0")]), Phis([]), -Defs([Def(Tid(756, "%000002f4"), Attrs([Attr("address","0x6B0"), -Attr("insn","bl #-0xc0")]), Var("R30",Imm(64)), Int(1716,64))]), -Jmps([Call(Tid(759, "%000002f7"), Attrs([Attr("address","0x6B0"), -Attr("insn","bl #-0xc0")]), Int(1,1), -(Direct(Tid(1_878, "@abort")),Direct(Tid(1_918, "%0000077e"))))])), -Blk(Tid(1_918, "%0000077e"), Attrs([]), Phis([]), Defs([]), -Jmps([Call(Tid(1_919, "%0000077f"), Attrs([]), Int(1,1), -(Direct(Tid(1_879, "@call_weak_fn")),))]))])), Sub(Tid(1_878, "@abort"), - Attrs([Attr("noreturn","()"), Attr("c.proto","void (*)(void)"), -Attr("address","0x5F0"), Attr("stub","()")]), "abort", Args([]), -Blks([Blk(Tid(757, "@abort"), Attrs([Attr("address","0x5F0")]), Phis([]), -Defs([Def(Tid(1_493, "%000005d5"), Attrs([Attr("address","0x5F0"), -Attr("insn","adrp x16, #65536")]), Var("R16",Imm(64)), Int(65536,64)), -Def(Tid(1_500, "%000005dc"), Attrs([Attr("address","0x5F4"), -Attr("insn","ldr x17, [x16, #0xfc8]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(4040,64)),LittleEndian(),64)), -Def(Tid(1_506, "%000005e2"), Attrs([Attr("address","0x5F8"), -Attr("insn","add x16, x16, #0xfc8")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(4040,64)))]), Jmps([Call(Tid(1_511, "%000005e7"), - Attrs([Attr("address","0x5FC"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), Sub(Tid(1_879, "@call_weak_fn"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x6B4")]), - "call_weak_fn", Args([Arg(Tid(1_938, "%00000792"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("call_weak_fn_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(761, "@call_weak_fn"), - Attrs([Attr("address","0x6B4")]), Phis([]), Defs([Def(Tid(764, "%000002fc"), - Attrs([Attr("address","0x6B4"), Attr("insn","adrp x0, #65536")]), - Var("R0",Imm(64)), Int(65536,64)), Def(Tid(771, "%00000303"), - Attrs([Attr("address","0x6B8"), Attr("insn","ldr x0, [x0, #0xfe8]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(4072,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(777, "%00000309"), Attrs([Attr("address","0x6BC"), -Attr("insn","cbz x0, #0x8")]), EQ(Var("R0",Imm(64)),Int(0,64)), -Direct(Tid(775, "%00000307"))), Goto(Tid(1_920, "%00000780"), Attrs([]), - Int(1,1), Direct(Tid(1_202, "%000004b2")))])), Blk(Tid(775, "%00000307"), - Attrs([Attr("address","0x6C4")]), Phis([]), Defs([]), -Jmps([Call(Tid(783, "%0000030f"), Attrs([Attr("address","0x6C4"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))])), -Blk(Tid(1_202, "%000004b2"), Attrs([Attr("address","0x6C0")]), Phis([]), -Defs([]), Jmps([Goto(Tid(1_205, "%000004b5"), Attrs([Attr("address","0x6C0"), -Attr("insn","b #-0xe0")]), Int(1,1), -Direct(Tid(1_203, "@__gmon_start__")))])), Blk(Tid(1_203, "@__gmon_start__"), - Attrs([Attr("address","0x5E0")]), Phis([]), -Defs([Def(Tid(1_471, "%000005bf"), Attrs([Attr("address","0x5E0"), -Attr("insn","adrp x16, #65536")]), Var("R16",Imm(64)), Int(65536,64)), -Def(Tid(1_478, "%000005c6"), Attrs([Attr("address","0x5E4"), -Attr("insn","ldr x17, [x16, #0xfc0]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(4032,64)),LittleEndian(),64)), -Def(Tid(1_484, "%000005cc"), Attrs([Attr("address","0x5E8"), -Attr("insn","add x16, x16, #0xfc0")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(4032,64)))]), Jmps([Call(Tid(1_489, "%000005d1"), - Attrs([Attr("address","0x5EC"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), -Sub(Tid(1_881, "@deregister_tm_clones"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x6D0")]), - "deregister_tm_clones", Args([Arg(Tid(1_939, "%00000793"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("deregister_tm_clones_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(789, "@deregister_tm_clones"), - Attrs([Attr("address","0x6D0")]), Phis([]), Defs([Def(Tid(792, "%00000318"), - Attrs([Attr("address","0x6D0"), Attr("insn","adrp x0, #69632")]), - Var("R0",Imm(64)), Int(69632,64)), Def(Tid(798, "%0000031e"), - Attrs([Attr("address","0x6D4"), Attr("insn","add x0, x0, #0x10")]), - Var("R0",Imm(64)), PLUS(Var("R0",Imm(64)),Int(16,64))), -Def(Tid(803, "%00000323"), Attrs([Attr("address","0x6D8"), -Attr("insn","adrp x1, #69632")]), Var("R1",Imm(64)), Int(69632,64)), -Def(Tid(809, "%00000329"), Attrs([Attr("address","0x6DC"), -Attr("insn","add x1, x1, #0x10")]), Var("R1",Imm(64)), -PLUS(Var("R1",Imm(64)),Int(16,64))), Def(Tid(815, "%0000032f"), - Attrs([Attr("address","0x6E0"), Attr("insn","cmp x1, x0")]), - Var("#3",Imm(64)), NOT(Var("R0",Imm(64)))), Def(Tid(820, "%00000334"), - Attrs([Attr("address","0x6E0"), Attr("insn","cmp x1, x0")]), - Var("#4",Imm(64)), PLUS(Var("R1",Imm(64)),NOT(Var("R0",Imm(64))))), -Def(Tid(826, "%0000033a"), Attrs([Attr("address","0x6E0"), -Attr("insn","cmp x1, x0")]), Var("VF",Imm(1)), -NEQ(SIGNED(65,PLUS(Var("#4",Imm(64)),Int(1,64))),PLUS(PLUS(SIGNED(65,Var("R1",Imm(64))),SIGNED(65,Var("#3",Imm(64)))),Int(1,65)))), -Def(Tid(832, "%00000340"), Attrs([Attr("address","0x6E0"), -Attr("insn","cmp x1, x0")]), Var("CF",Imm(1)), -NEQ(UNSIGNED(65,PLUS(Var("#4",Imm(64)),Int(1,64))),PLUS(PLUS(UNSIGNED(65,Var("R1",Imm(64))),UNSIGNED(65,Var("#3",Imm(64)))),Int(1,65)))), -Def(Tid(836, "%00000344"), Attrs([Attr("address","0x6E0"), -Attr("insn","cmp x1, x0")]), Var("ZF",Imm(1)), -EQ(PLUS(Var("#4",Imm(64)),Int(1,64)),Int(0,64))), Def(Tid(840, "%00000348"), - Attrs([Attr("address","0x6E0"), Attr("insn","cmp x1, x0")]), - Var("NF",Imm(1)), Extract(63,63,PLUS(Var("#4",Imm(64)),Int(1,64))))]), -Jmps([Goto(Tid(846, "%0000034e"), Attrs([Attr("address","0x6E4"), -Attr("insn","b.eq #0x18")]), EQ(Var("ZF",Imm(1)),Int(1,1)), -Direct(Tid(844, "%0000034c"))), Goto(Tid(1_921, "%00000781"), Attrs([]), - Int(1,1), Direct(Tid(1_172, "%00000494")))])), Blk(Tid(1_172, "%00000494"), - Attrs([Attr("address","0x6E8")]), Phis([]), -Defs([Def(Tid(1_175, "%00000497"), Attrs([Attr("address","0x6E8"), -Attr("insn","adrp x1, #65536")]), Var("R1",Imm(64)), Int(65536,64)), -Def(Tid(1_182, "%0000049e"), Attrs([Attr("address","0x6EC"), -Attr("insn","ldr x1, [x1, #0xfd8]")]), Var("R1",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R1",Imm(64)),Int(4056,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(1_187, "%000004a3"), Attrs([Attr("address","0x6F0"), -Attr("insn","cbz x1, #0xc")]), EQ(Var("R1",Imm(64)),Int(0,64)), -Direct(Tid(844, "%0000034c"))), Goto(Tid(1_922, "%00000782"), Attrs([]), - Int(1,1), Direct(Tid(1_191, "%000004a7")))])), Blk(Tid(844, "%0000034c"), - Attrs([Attr("address","0x6FC")]), Phis([]), Defs([]), -Jmps([Call(Tid(852, "%00000354"), Attrs([Attr("address","0x6FC"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))])), -Blk(Tid(1_191, "%000004a7"), Attrs([Attr("address","0x6F4")]), Phis([]), -Defs([Def(Tid(1_195, "%000004ab"), Attrs([Attr("address","0x6F4"), -Attr("insn","mov x16, x1")]), Var("R16",Imm(64)), Var("R1",Imm(64)))]), -Jmps([Call(Tid(1_200, "%000004b0"), Attrs([Attr("address","0x6F8"), -Attr("insn","br x16")]), Int(1,1), (Indirect(Var("R16",Imm(64))),))]))])), -Sub(Tid(1_884, "@frame_dummy"), Attrs([Attr("c.proto","signed (*)(void)"), -Attr("address","0x790")]), "frame_dummy", Args([Arg(Tid(1_940, "%00000794"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("frame_dummy_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(1_004, "@frame_dummy"), - Attrs([Attr("address","0x790")]), Phis([]), Defs([]), -Jmps([Call(Tid(1_006, "%000003ee"), Attrs([Attr("address","0x790"), -Attr("insn","b #-0x90")]), Int(1,1), -(Direct(Tid(1_888, "@register_tm_clones")),))]))])), Sub(Tid(1_885, "@main"), - Attrs([Attr("c.proto","signed (*)(signed argc, const char** argv)"), -Attr("address","0x600"), Attr("stub","()")]), "main", - Args([Arg(Tid(1_941, "%00000795"), Attrs([Attr("c.layout","[signed : 32]"), -Attr("c.data","Top:u32"), Attr("c.type","signed")]), - Var("main_argc",Imm(32)), LOW(32,Var("R0",Imm(64))), In()), -Arg(Tid(1_942, "%00000796"), Attrs([Attr("c.layout","**[char : 8]"), -Attr("c.data","Top:u8 ptr ptr"), Attr("c.type"," const char**")]), - Var("main_argv",Imm(64)), Var("R1",Imm(64)), Both()), -Arg(Tid(1_943, "%00000797"), Attrs([Attr("c.layout","[signed : 32]"), -Attr("c.data","Top:u32"), Attr("c.type","signed")]), - Var("main_result",Imm(32)), LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(548, "@main"), Attrs([Attr("address","0x600")]), Phis([]), -Defs([Def(Tid(552, "%00000228"), Attrs([Attr("address","0x600"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("#1",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(18446744073709551600,64))), -Def(Tid(558, "%0000022e"), Attrs([Attr("address","0x600"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("#1",Imm(64)),Var("R29",Imm(64)),LittleEndian(),64)), -Def(Tid(564, "%00000234"), Attrs([Attr("address","0x600"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("#1",Imm(64)),Int(8,64)),Var("R30",Imm(64)),LittleEndian(),64)), -Def(Tid(568, "%00000238"), Attrs([Attr("address","0x600"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("R31",Imm(64)), -Var("#1",Imm(64))), Def(Tid(574, "%0000023e"), - Attrs([Attr("address","0x604"), Attr("insn","mov x29, sp")]), - Var("R29",Imm(64)), Var("R31",Imm(64))), Def(Tid(580, "%00000244"), - Attrs([Attr("address","0x608"), Attr("insn","cmp w0, #0x1")]), - Var("#2",Imm(32)), -PLUS(Extract(31,0,Var("R0",Imm(64))),Int(4294967294,32))), -Def(Tid(585, "%00000249"), Attrs([Attr("address","0x608"), -Attr("insn","cmp w0, #0x1")]), Var("VF",Imm(1)), -NEQ(SIGNED(33,PLUS(Var("#2",Imm(32)),Int(1,32))),PLUS(SIGNED(33,Extract(31,0,Var("R0",Imm(64)))),Int(8589934591,33)))), -Def(Tid(590, "%0000024e"), Attrs([Attr("address","0x608"), -Attr("insn","cmp w0, #0x1")]), Var("CF",Imm(1)), -NEQ(UNSIGNED(33,PLUS(Var("#2",Imm(32)),Int(1,32))),PLUS(UNSIGNED(33,Extract(31,0,Var("R0",Imm(64)))),Int(4294967295,33)))), -Def(Tid(594, "%00000252"), Attrs([Attr("address","0x608"), -Attr("insn","cmp w0, #0x1")]), Var("ZF",Imm(1)), -EQ(PLUS(Var("#2",Imm(32)),Int(1,32)),Int(0,32))), Def(Tid(598, "%00000256"), - Attrs([Attr("address","0x608"), Attr("insn","cmp w0, #0x1")]), - Var("NF",Imm(1)), Extract(31,31,PLUS(Var("#2",Imm(32)),Int(1,32))))]), -Jmps([Goto(Tid(604, "%0000025c"), Attrs([Attr("address","0x60C"), -Attr("insn","b.eq #0x2c")]), EQ(Var("ZF",Imm(1)),Int(1,1)), -Direct(Tid(602, "%0000025a"))), Goto(Tid(1_923, "%00000783"), Attrs([]), - Int(1,1), Direct(Tid(1_207, "%000004b7")))])), Blk(Tid(602, "%0000025a"), - Attrs([Attr("address","0x638")]), Phis([]), Defs([Def(Tid(610, "%00000262"), - Attrs([Attr("address","0x638"), Attr("insn","adrp x0, #0")]), - Var("R0",Imm(64)), Int(0,64)), Def(Tid(616, "%00000268"), - Attrs([Attr("address","0x63C"), Attr("insn","add x0, x0, #0x7b0")]), - Var("R0",Imm(64)), PLUS(Var("R0",Imm(64)),Int(1968,64)))]), -Jmps([Goto(Tid(621, "%0000026d"), Attrs([Attr("address","0x640"), -Attr("insn","b #-0x18")]), Int(1,1), Direct(Tid(619, "%0000026b")))])), -Blk(Tid(1_207, "%000004b7"), Attrs([Attr("address","0x610")]), Phis([]), -Defs([Def(Tid(1_211, "%000004bb"), Attrs([Attr("address","0x610"), -Attr("insn","cmp w0, #0x2")]), Var("#6",Imm(32)), -PLUS(Extract(31,0,Var("R0",Imm(64))),Int(4294967293,32))), -Def(Tid(1_216, "%000004c0"), Attrs([Attr("address","0x610"), -Attr("insn","cmp w0, #0x2")]), Var("VF",Imm(1)), -NEQ(SIGNED(33,PLUS(Var("#6",Imm(32)),Int(1,32))),PLUS(SIGNED(33,Extract(31,0,Var("R0",Imm(64)))),Int(8589934590,33)))), -Def(Tid(1_221, "%000004c5"), Attrs([Attr("address","0x610"), -Attr("insn","cmp w0, #0x2")]), Var("CF",Imm(1)), -NEQ(UNSIGNED(33,PLUS(Var("#6",Imm(32)),Int(1,32))),PLUS(UNSIGNED(33,Extract(31,0,Var("R0",Imm(64)))),Int(4294967294,33)))), -Def(Tid(1_225, "%000004c9"), Attrs([Attr("address","0x610"), -Attr("insn","cmp w0, #0x2")]), Var("ZF",Imm(1)), -EQ(PLUS(Var("#6",Imm(32)),Int(1,32)),Int(0,32))), -Def(Tid(1_229, "%000004cd"), Attrs([Attr("address","0x610"), -Attr("insn","cmp w0, #0x2")]), Var("NF",Imm(1)), -Extract(31,31,PLUS(Var("#6",Imm(32)),Int(1,32)))), -Def(Tid(1_234, "%000004d2"), Attrs([Attr("address","0x614"), -Attr("insn","adrp x1, #0")]), Var("R1",Imm(64)), Int(0,64)), -Def(Tid(1_239, "%000004d7"), Attrs([Attr("address","0x618"), -Attr("insn","adrp x0, #0")]), Var("R0",Imm(64)), Int(0,64)), -Def(Tid(1_245, "%000004dd"), Attrs([Attr("address","0x61C"), -Attr("insn","add x1, x1, #0x7c0")]), Var("R1",Imm(64)), -PLUS(Var("R1",Imm(64)),Int(1984,64))), Def(Tid(1_251, "%000004e3"), - Attrs([Attr("address","0x620"), Attr("insn","add x0, x0, #0x7a0")]), - Var("R0",Imm(64)), PLUS(Var("R0",Imm(64)),Int(1952,64)))]), -Jmps([Goto(Tid(1_265, "%000004f1"), Attrs([Attr("address","0x624"), -Attr("insn","csel x0, x0, x1, ne")]), NEQ(Var("ZF",Imm(1)),Int(1,1)), -Direct(Tid(1_257, "%000004e9"))), Goto(Tid(1_266, "%000004f2"), - Attrs([Attr("address","0x624"), Attr("insn","csel x0, x0, x1, ne")]), - Int(1,1), Direct(Tid(1_261, "%000004ed")))])), Blk(Tid(1_261, "%000004ed"), - Attrs([]), Phis([]), Defs([Def(Tid(1_262, "%000004ee"), - Attrs([Attr("address","0x624"), Attr("insn","csel x0, x0, x1, ne")]), - Var("R0",Imm(64)), Var("R1",Imm(64)))]), Jmps([Goto(Tid(1_268, "%000004f4"), - Attrs([Attr("address","0x624"), Attr("insn","csel x0, x0, x1, ne")]), - Int(1,1), Direct(Tid(1_264, "%000004f0")))])), Blk(Tid(1_257, "%000004e9"), - Attrs([]), Phis([]), Defs([Def(Tid(1_258, "%000004ea"), - Attrs([Attr("address","0x624"), Attr("insn","csel x0, x0, x1, ne")]), - Var("R0",Imm(64)), Var("R0",Imm(64)))]), Jmps([Goto(Tid(1_267, "%000004f3"), - Attrs([Attr("address","0x624"), Attr("insn","csel x0, x0, x1, ne")]), - Int(1,1), Direct(Tid(1_264, "%000004f0")))])), Blk(Tid(1_264, "%000004f0"), - Attrs([]), Phis([]), Defs([]), Jmps([Goto(Tid(1_924, "%00000784"), - Attrs([]), Int(1,1), Direct(Tid(619, "%0000026b")))])), -Blk(Tid(619, "%0000026b"), Attrs([Attr("address","0x628")]), Phis([]), -Defs([Def(Tid(625, "%00000271"), Attrs([Attr("address","0x628"), -Attr("insn","blr x0")]), Var("R30",Imm(64)), Int(1580,64))]), -Jmps([Call(Tid(628, "%00000274"), Attrs([Attr("address","0x628"), -Attr("insn","blr x0")]), Int(1,1), -(Indirect(Var("R0",Imm(64))),Direct(Tid(630, "%00000276"))))])), -Blk(Tid(630, "%00000276"), Attrs([Attr("address","0x62C")]), Phis([]), -Defs([Def(Tid(633, "%00000279"), Attrs([Attr("address","0x62C"), -Attr("insn","mov w0, #0x0")]), Var("R0",Imm(64)), Int(0,64)), -Def(Tid(640, "%00000280"), Attrs([Attr("address","0x630"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R29",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(645, "%00000285"), Attrs([Attr("address","0x630"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R30",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(649, "%00000289"), Attrs([Attr("address","0x630"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(16,64)))]), Jmps([Call(Tid(654, "%0000028e"), - Attrs([Attr("address","0x634"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), -Sub(Tid(1_888, "@register_tm_clones"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x700")]), - "register_tm_clones", Args([Arg(Tid(1_944, "%00000798"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("register_tm_clones_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(854, "@register_tm_clones"), Attrs([Attr("address","0x700")]), - Phis([]), Defs([Def(Tid(857, "%00000359"), Attrs([Attr("address","0x700"), -Attr("insn","adrp x0, #69632")]), Var("R0",Imm(64)), Int(69632,64)), -Def(Tid(863, "%0000035f"), Attrs([Attr("address","0x704"), -Attr("insn","add x0, x0, #0x10")]), Var("R0",Imm(64)), -PLUS(Var("R0",Imm(64)),Int(16,64))), Def(Tid(868, "%00000364"), - Attrs([Attr("address","0x708"), Attr("insn","adrp x1, #69632")]), - Var("R1",Imm(64)), Int(69632,64)), Def(Tid(874, "%0000036a"), - Attrs([Attr("address","0x70C"), Attr("insn","add x1, x1, #0x10")]), - Var("R1",Imm(64)), PLUS(Var("R1",Imm(64)),Int(16,64))), -Def(Tid(881, "%00000371"), Attrs([Attr("address","0x710"), -Attr("insn","sub x1, x1, x0")]), Var("R1",Imm(64)), -PLUS(PLUS(Var("R1",Imm(64)),NOT(Var("R0",Imm(64)))),Int(1,64))), -Def(Tid(887, "%00000377"), Attrs([Attr("address","0x714"), -Attr("insn","lsr x2, x1, #63")]), Var("R2",Imm(64)), -Concat(Int(0,63),Extract(63,63,Var("R1",Imm(64))))), -Def(Tid(894, "%0000037e"), Attrs([Attr("address","0x718"), -Attr("insn","add x1, x2, x1, asr #3")]), Var("R1",Imm(64)), -PLUS(Var("R2",Imm(64)),ARSHIFT(Var("R1",Imm(64)),Int(3,3)))), -Def(Tid(900, "%00000384"), Attrs([Attr("address","0x71C"), -Attr("insn","asr x1, x1, #1")]), Var("R1",Imm(64)), -SIGNED(64,Extract(63,1,Var("R1",Imm(64)))))]), -Jmps([Goto(Tid(906, "%0000038a"), Attrs([Attr("address","0x720"), -Attr("insn","cbz x1, #0x18")]), EQ(Var("R1",Imm(64)),Int(0,64)), -Direct(Tid(904, "%00000388"))), Goto(Tid(1_925, "%00000785"), Attrs([]), - Int(1,1), Direct(Tid(1_142, "%00000476")))])), Blk(Tid(1_142, "%00000476"), - Attrs([Attr("address","0x724")]), Phis([]), -Defs([Def(Tid(1_145, "%00000479"), Attrs([Attr("address","0x724"), -Attr("insn","adrp x2, #65536")]), Var("R2",Imm(64)), Int(65536,64)), -Def(Tid(1_152, "%00000480"), Attrs([Attr("address","0x728"), -Attr("insn","ldr x2, [x2, #0xff8]")]), Var("R2",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R2",Imm(64)),Int(4088,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(1_157, "%00000485"), Attrs([Attr("address","0x72C"), -Attr("insn","cbz x2, #0xc")]), EQ(Var("R2",Imm(64)),Int(0,64)), -Direct(Tid(904, "%00000388"))), Goto(Tid(1_926, "%00000786"), Attrs([]), - Int(1,1), Direct(Tid(1_161, "%00000489")))])), Blk(Tid(904, "%00000388"), - Attrs([Attr("address","0x738")]), Phis([]), Defs([]), -Jmps([Call(Tid(912, "%00000390"), Attrs([Attr("address","0x738"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))])), -Blk(Tid(1_161, "%00000489"), Attrs([Attr("address","0x730")]), Phis([]), -Defs([Def(Tid(1_165, "%0000048d"), Attrs([Attr("address","0x730"), -Attr("insn","mov x16, x2")]), Var("R16",Imm(64)), Var("R2",Imm(64)))]), -Jmps([Call(Tid(1_170, "%00000492"), Attrs([Attr("address","0x734"), -Attr("insn","br x16")]), Int(1,1), (Indirect(Var("R16",Imm(64))),))]))])), -Sub(Tid(1_891, "@set_seven"), Attrs([Attr("c.proto","signed (*)(void)"), -Attr("address","0x7C0")]), "set_seven", Args([Arg(Tid(1_945, "%00000799"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("set_seven_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(1_060, "@set_seven"), - Attrs([Attr("address","0x7C0")]), Phis([]), -Defs([Def(Tid(1_063, "%00000427"), Attrs([Attr("address","0x7C0"), -Attr("insn","adrp x0, #69632")]), Var("R0",Imm(64)), Int(69632,64)), -Def(Tid(1_068, "%0000042c"), Attrs([Attr("address","0x7C4"), -Attr("insn","mov w1, #0x7")]), Var("R1",Imm(64)), Int(7,64)), -Def(Tid(1_076, "%00000434"), Attrs([Attr("address","0x7C8"), -Attr("insn","str w1, [x0, #0x14]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(20,64)),Extract(31,0,Var("R1",Imm(64))),LittleEndian(),32))]), -Jmps([Call(Tid(1_081, "%00000439"), Attrs([Attr("address","0x7CC"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))]))])), -Sub(Tid(1_892, "@set_six"), Attrs([Attr("c.proto","signed (*)(void)"), -Attr("address","0x7B0")]), "set_six", Args([Arg(Tid(1_946, "%0000079a"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("set_six_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(1_037, "@set_six"), - Attrs([Attr("address","0x7B0")]), Phis([]), -Defs([Def(Tid(1_040, "%00000410"), Attrs([Attr("address","0x7B0"), -Attr("insn","adrp x0, #69632")]), Var("R0",Imm(64)), Int(69632,64)), -Def(Tid(1_045, "%00000415"), Attrs([Attr("address","0x7B4"), -Attr("insn","mov w1, #0x6")]), Var("R1",Imm(64)), Int(6,64)), -Def(Tid(1_053, "%0000041d"), Attrs([Attr("address","0x7B8"), -Attr("insn","str w1, [x0, #0x14]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(20,64)),Extract(31,0,Var("R1",Imm(64))),LittleEndian(),32))]), -Jmps([Call(Tid(1_058, "%00000422"), Attrs([Attr("address","0x7BC"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))]))])), -Sub(Tid(1_893, "@set_two"), Attrs([Attr("c.proto","signed (*)(void)"), -Attr("address","0x7A0")]), "set_two", Args([Arg(Tid(1_947, "%0000079b"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("set_two_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(1_014, "@set_two"), - Attrs([Attr("address","0x7A0")]), Phis([]), -Defs([Def(Tid(1_017, "%000003f9"), Attrs([Attr("address","0x7A0"), -Attr("insn","adrp x0, #69632")]), Var("R0",Imm(64)), Int(69632,64)), -Def(Tid(1_022, "%000003fe"), Attrs([Attr("address","0x7A4"), -Attr("insn","mov w1, #0x2")]), Var("R1",Imm(64)), Int(2,64)), -Def(Tid(1_030, "%00000406"), Attrs([Attr("address","0x7A8"), -Attr("insn","str w1, [x0, #0x14]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(20,64)),Extract(31,0,Var("R1",Imm(64))),LittleEndian(),32))]), -Jmps([Call(Tid(1_035, "%0000040b"), Attrs([Attr("address","0x7AC"), -Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))]))]))) \ No newline at end of file diff --git a/src/test/indirect_calls/functionpointer/gcc_O2/functionpointer.bir b/src/test/indirect_calls/functionpointer/gcc_O2/functionpointer.bir deleted file mode 100644 index 44ba099d2..000000000 --- a/src/test/indirect_calls/functionpointer/gcc_O2/functionpointer.bir +++ /dev/null @@ -1,301 +0,0 @@ -00000787: program -0000074b: sub __cxa_finalize(__cxa_finalize_result) -00000788: __cxa_finalize_result :: out u32 = low:32[R0] - -00000472: -000005a9: R16 := 0x10000 -000005b0: R17 := mem[R16 + 0xFB8, el]:u64 -000005b6: R16 := R16 + 0xFB8 -000005bb: call R17 with noreturn - -0000074c: sub __do_global_dtors_aux(__do_global_dtors_aux_result) -00000789: __do_global_dtors_aux_result :: out u32 = low:32[R0] - -00000394: -00000398: #5 := R31 - 0x20 -0000039e: mem := mem with [#5, el]:u64 <- R29 -000003a4: mem := mem with [#5 + 8, el]:u64 <- R30 -000003a8: R31 := #5 -000003ae: R29 := R31 -000003b6: mem := mem with [R31 + 0x10, el]:u64 <- R19 -000003bb: R19 := 0x11000 -000003c2: R0 := pad:64[mem[R19 + 0x10]] -000003c9: when 31:0[R0] <> 0 goto %000003c7 -0000077b: goto %0000043b - -0000043b: -0000043e: R0 := 0x10000 -00000445: R0 := mem[R0 + 0xFE0, el]:u64 -0000044b: when R0 = 0 goto %00000449 -0000077c: goto %00000462 - -00000462: -00000465: R0 := 0x11000 -0000046c: R0 := mem[R0 + 8, el]:u64 -00000471: R30 := 0x770 -00000474: call @__cxa_finalize with return %00000449 - -00000449: -00000451: R30 := 0x774 -00000453: call @deregister_tm_clones with return %00000455 - -00000455: -00000458: R0 := 1 -00000460: mem := mem with [R19 + 0x10] <- 7:0[R0] -0000077d: goto %000003c7 - -000003c7: -000003d1: R19 := mem[R31 + 0x10, el]:u64 -000003d8: R29 := mem[R31, el]:u64 -000003dd: R30 := mem[R31 + 8, el]:u64 -000003e1: R31 := R31 + 0x20 -000003e6: call R30 with noreturn - -00000750: sub __libc_start_main(__libc_start_main_main, __libc_start_main_arg2, __libc_start_main_arg3, __libc_start_main_auxv, __libc_start_main_result) -0000078a: __libc_start_main_main :: in u64 = R0 -0000078b: __libc_start_main_arg2 :: in u32 = low:32[R1] -0000078c: __libc_start_main_arg3 :: in out u64 = R2 -0000078d: __libc_start_main_auxv :: in out u64 = R3 -0000078e: __libc_start_main_result :: out u32 = low:32[R0] - -000002ed: -00000593: R16 := 0x10000 -0000059a: R17 := mem[R16 + 0xFB0, el]:u64 -000005a0: R16 := R16 + 0xFB0 -000005a5: call R17 with noreturn - -00000751: sub _fini(_fini_result) -0000078f: _fini_result :: out u32 = low:32[R0] - -0000001f: -00000025: #0 := R31 - 0x10 -0000002b: mem := mem with [#0, el]:u64 <- R29 -00000031: mem := mem with [#0 + 8, el]:u64 <- R30 -00000035: R31 := #0 -0000003b: R29 := R31 -00000042: R29 := mem[R31, el]:u64 -00000047: R30 := mem[R31 + 8, el]:u64 -0000004b: R31 := R31 + 0x10 -00000050: call R30 with noreturn - -00000752: sub _init(_init_result) -00000790: _init_result :: out u32 = low:32[R0] - -0000067e: -00000684: #8 := R31 - 0x10 -0000068a: mem := mem with [#8, el]:u64 <- R29 -00000690: mem := mem with [#8 + 8, el]:u64 <- R30 -00000694: R31 := #8 -0000069a: R29 := R31 -0000069f: R30 := 0x590 -000006a1: call @call_weak_fn with return %000006a3 - -000006a3: -000006a8: R29 := mem[R31, el]:u64 -000006ad: R30 := mem[R31 + 8, el]:u64 -000006b1: R31 := R31 + 0x10 -000006b6: call R30 with noreturn - -00000753: sub _start(_start_result) -00000791: _start_result :: out u32 = low:32[R0] - -000002ae: -000002b3: R29 := 0 -000002b8: R30 := 0 -000002be: R5 := R0 -000002c5: R1 := mem[R31, el]:u64 -000002cb: R2 := R31 + 8 -000002d1: R6 := R31 -000002d6: R0 := 0x10000 -000002dd: R0 := mem[R0 + 0xFF0, el]:u64 -000002e2: R3 := 0 -000002e7: R4 := 0 -000002ec: R30 := 0x6B0 -000002ef: call @__libc_start_main with return %000002f1 - -000002f1: -000002f4: R30 := 0x6B4 -000002f7: call @abort with return %0000077e - -0000077e: -0000077f: call @call_weak_fn with noreturn - -00000756: sub abort() - - -000002f5: -000005d5: R16 := 0x10000 -000005dc: R17 := mem[R16 + 0xFC8, el]:u64 -000005e2: R16 := R16 + 0xFC8 -000005e7: call R17 with noreturn - -00000757: sub call_weak_fn(call_weak_fn_result) -00000792: call_weak_fn_result :: out u32 = low:32[R0] - -000002f9: -000002fc: R0 := 0x10000 -00000303: R0 := mem[R0 + 0xFE8, el]:u64 -00000309: when R0 = 0 goto %00000307 -00000780: goto %000004b2 - -00000307: -0000030f: call R30 with noreturn - -000004b2: -000004b5: goto @__gmon_start__ - -000004b3: -000005bf: R16 := 0x10000 -000005c6: R17 := mem[R16 + 0xFC0, el]:u64 -000005cc: R16 := R16 + 0xFC0 -000005d1: call R17 with noreturn - -00000759: sub deregister_tm_clones(deregister_tm_clones_result) -00000793: deregister_tm_clones_result :: out u32 = low:32[R0] - -00000315: -00000318: R0 := 0x11000 -0000031e: R0 := R0 + 0x10 -00000323: R1 := 0x11000 -00000329: R1 := R1 + 0x10 -0000032f: #3 := ~R0 -00000334: #4 := R1 + ~R0 -0000033a: VF := extend:65[#4 + 1] <> extend:65[R1] + extend:65[#3] + 1 -00000340: CF := pad:65[#4 + 1] <> pad:65[R1] + pad:65[#3] + 1 -00000344: ZF := #4 + 1 = 0 -00000348: NF := 63:63[#4 + 1] -0000034e: when ZF goto %0000034c -00000781: goto %00000494 - -00000494: -00000497: R1 := 0x10000 -0000049e: R1 := mem[R1 + 0xFD8, el]:u64 -000004a3: when R1 = 0 goto %0000034c -00000782: goto %000004a7 - -0000034c: -00000354: call R30 with noreturn - -000004a7: -000004ab: R16 := R1 -000004b0: call R16 with noreturn - -0000075c: sub frame_dummy(frame_dummy_result) -00000794: frame_dummy_result :: out u32 = low:32[R0] - -000003ec: -000003ee: call @register_tm_clones with noreturn - -0000075d: sub main(main_argc, main_argv, main_result) -00000795: main_argc :: in u32 = low:32[R0] -00000796: main_argv :: in out u64 = R1 -00000797: main_result :: out u32 = low:32[R0] - -00000224: -00000228: #1 := R31 - 0x10 -0000022e: mem := mem with [#1, el]:u64 <- R29 -00000234: mem := mem with [#1 + 8, el]:u64 <- R30 -00000238: R31 := #1 -0000023e: R29 := R31 -00000244: #2 := 31:0[R0] - 2 -00000249: VF := extend:33[#2 + 1] <> extend:33[31:0[R0]] - 1 -0000024e: CF := pad:33[#2 + 1] <> pad:33[31:0[R0]] + 0xFFFFFFFF -00000252: ZF := #2 + 1 = 0 -00000256: NF := 31:31[#2 + 1] -0000025c: when ZF goto %0000025a -00000783: goto %000004b7 - -0000025a: -00000262: R0 := 0 -00000268: R0 := R0 + 0x7B0 -0000026d: goto %0000026b - -000004b7: -000004bb: #6 := 31:0[R0] - 3 -000004c0: VF := extend:33[#6 + 1] <> extend:33[31:0[R0]] - 2 -000004c5: CF := pad:33[#6 + 1] <> pad:33[31:0[R0]] + 0xFFFFFFFE -000004c9: ZF := #6 + 1 = 0 -000004cd: NF := 31:31[#6 + 1] -000004d2: R1 := 0 -000004d7: R0 := 0 -000004dd: R1 := R1 + 0x7C0 -000004e3: R0 := R0 + 0x7A0 -000004f1: when ZF <> 1 goto %000004e9 -000004f2: goto %000004ed - -000004ed: -000004ee: R0 := R1 -000004f4: goto %000004f0 - -000004e9: -000004ea: R0 := R0 -000004f3: goto %000004f0 - -000004f0: -00000784: goto %0000026b - -0000026b: -00000271: R30 := 0x62C -00000274: call R0 with return %00000276 - -00000276: -00000279: R0 := 0 -00000280: R29 := mem[R31, el]:u64 -00000285: R30 := mem[R31 + 8, el]:u64 -00000289: R31 := R31 + 0x10 -0000028e: call R30 with noreturn - -00000760: sub register_tm_clones(register_tm_clones_result) -00000798: register_tm_clones_result :: out u32 = low:32[R0] - -00000356: -00000359: R0 := 0x11000 -0000035f: R0 := R0 + 0x10 -00000364: R1 := 0x11000 -0000036a: R1 := R1 + 0x10 -00000371: R1 := R1 + ~R0 + 1 -00000377: R2 := 0.63:63[R1] -0000037e: R1 := R2 + (R1 ~>> 3) -00000384: R1 := extend:64[63:1[R1]] -0000038a: when R1 = 0 goto %00000388 -00000785: goto %00000476 - -00000476: -00000479: R2 := 0x10000 -00000480: R2 := mem[R2 + 0xFF8, el]:u64 -00000485: when R2 = 0 goto %00000388 -00000786: goto %00000489 - -00000388: -00000390: call R30 with noreturn - -00000489: -0000048d: R16 := R2 -00000492: call R16 with noreturn - -00000763: sub set_seven(set_seven_result) -00000799: set_seven_result :: out u32 = low:32[R0] - -00000424: -00000427: R0 := 0x11000 -0000042c: R1 := 7 -00000434: mem := mem with [R0 + 0x14, el]:u32 <- 31:0[R1] -00000439: call R30 with noreturn - -00000764: sub set_six(set_six_result) -0000079a: set_six_result :: out u32 = low:32[R0] - -0000040d: -00000410: R0 := 0x11000 -00000415: R1 := 6 -0000041d: mem := mem with [R0 + 0x14, el]:u32 <- 31:0[R1] -00000422: call R30 with noreturn - -00000765: sub set_two(set_two_result) -0000079b: set_two_result :: out u32 = low:32[R0] - -000003f6: -000003f9: R0 := 0x11000 -000003fe: R1 := 2 -00000406: mem := mem with [R0 + 0x14, el]:u32 <- 31:0[R1] -0000040b: call R30 with noreturn diff --git a/src/test/indirect_calls/functionpointer/gcc_O2/functionpointer.md5sum b/src/test/indirect_calls/functionpointer/gcc_O2/functionpointer.md5sum new file mode 100644 index 000000000..b988300e9 --- /dev/null +++ b/src/test/indirect_calls/functionpointer/gcc_O2/functionpointer.md5sum @@ -0,0 +1,4 @@ +01a7ca8e98d1b618bb1a341e0352be95 indirect_calls/functionpointer/gcc_O2/a.out +2e341ee800405ab5d8a8f3dbcb521e0b indirect_calls/functionpointer/gcc_O2/functionpointer.relf +c9068137bd5912a48dfbe8f7391ee62d indirect_calls/functionpointer/gcc_O2/functionpointer.adt +f918b5f6b681d8772240a60d2c5d25f6 indirect_calls/functionpointer/gcc_O2/functionpointer.bir diff --git a/src/test/indirect_calls/functionpointer/gcc_O2/functionpointer.relf b/src/test/indirect_calls/functionpointer/gcc_O2/functionpointer.relf deleted file mode 100644 index 4bd5e7171..000000000 --- a/src/test/indirect_calls/functionpointer/gcc_O2/functionpointer.relf +++ /dev/null @@ -1,125 +0,0 @@ - -Relocation section '.rela.dyn' at offset 0x460 contains 8 entries: - Offset Info Type Symbol's Value Symbol's Name + Addend -0000000000010d98 0000000000000403 R_AARCH64_RELATIVE 790 -0000000000010da0 0000000000000403 R_AARCH64_RELATIVE 740 -0000000000010ff0 0000000000000403 R_AARCH64_RELATIVE 600 -0000000000011008 0000000000000403 R_AARCH64_RELATIVE 11008 -0000000000010fd8 0000000400000401 R_AARCH64_GLOB_DAT 0000000000000000 _ITM_deregisterTMCloneTable + 0 -0000000000010fe0 0000000500000401 R_AARCH64_GLOB_DAT 0000000000000000 __cxa_finalize@GLIBC_2.17 + 0 -0000000000010fe8 0000000600000401 R_AARCH64_GLOB_DAT 0000000000000000 __gmon_start__ + 0 -0000000000010ff8 0000000800000401 R_AARCH64_GLOB_DAT 0000000000000000 _ITM_registerTMCloneTable + 0 - -Relocation section '.rela.plt' at offset 0x520 contains 4 entries: - Offset Info Type Symbol's Value Symbol's Name + Addend -0000000000010fb0 0000000300000402 R_AARCH64_JUMP_SLOT 0000000000000000 __libc_start_main@GLIBC_2.34 + 0 -0000000000010fb8 0000000500000402 R_AARCH64_JUMP_SLOT 0000000000000000 __cxa_finalize@GLIBC_2.17 + 0 -0000000000010fc0 0000000600000402 R_AARCH64_JUMP_SLOT 0000000000000000 __gmon_start__ + 0 -0000000000010fc8 0000000700000402 R_AARCH64_JUMP_SLOT 0000000000000000 abort@GLIBC_2.17 + 0 - -Symbol table '.dynsym' contains 9 entries: - Num: Value Size Type Bind Vis Ndx Name - 0: 0000000000000000 0 NOTYPE LOCAL DEFAULT UND - 1: 0000000000000580 0 SECTION LOCAL DEFAULT 11 .init - 2: 0000000000011000 0 SECTION LOCAL DEFAULT 22 .data - 3: 0000000000000000 0 FUNC GLOBAL DEFAULT UND __libc_start_main@GLIBC_2.34 (2) - 4: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_deregisterTMCloneTable - 5: 0000000000000000 0 FUNC WEAK DEFAULT UND __cxa_finalize@GLIBC_2.17 (3) - 6: 0000000000000000 0 NOTYPE WEAK DEFAULT UND __gmon_start__ - 7: 0000000000000000 0 FUNC GLOBAL DEFAULT UND abort@GLIBC_2.17 (3) - 8: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_registerTMCloneTable - -Symbol table '.symtab' contains 92 entries: - Num: Value Size Type Bind Vis Ndx Name - 0: 0000000000000000 0 NOTYPE LOCAL DEFAULT UND - 1: 0000000000000238 0 SECTION LOCAL DEFAULT 1 .interp - 2: 0000000000000254 0 SECTION LOCAL DEFAULT 2 .note.gnu.build-id - 3: 0000000000000278 0 SECTION LOCAL DEFAULT 3 .note.ABI-tag - 4: 0000000000000298 0 SECTION LOCAL DEFAULT 4 .gnu.hash - 5: 00000000000002b8 0 SECTION LOCAL DEFAULT 5 .dynsym - 6: 0000000000000390 0 SECTION LOCAL DEFAULT 6 .dynstr - 7: 000000000000041e 0 SECTION LOCAL DEFAULT 7 .gnu.version - 8: 0000000000000430 0 SECTION LOCAL DEFAULT 8 .gnu.version_r - 9: 0000000000000460 0 SECTION LOCAL DEFAULT 9 .rela.dyn - 10: 0000000000000520 0 SECTION LOCAL DEFAULT 10 .rela.plt - 11: 0000000000000580 0 SECTION LOCAL DEFAULT 11 .init - 12: 00000000000005a0 0 SECTION LOCAL DEFAULT 12 .plt - 13: 0000000000000600 0 SECTION LOCAL DEFAULT 13 .text - 14: 00000000000007d0 0 SECTION LOCAL DEFAULT 14 .fini - 15: 00000000000007e4 0 SECTION LOCAL DEFAULT 15 .rodata - 16: 00000000000007e8 0 SECTION LOCAL DEFAULT 16 .eh_frame_hdr - 17: 0000000000000840 0 SECTION LOCAL DEFAULT 17 .eh_frame - 18: 0000000000010d98 0 SECTION LOCAL DEFAULT 18 .init_array - 19: 0000000000010da0 0 SECTION LOCAL DEFAULT 19 .fini_array - 20: 0000000000010da8 0 SECTION LOCAL DEFAULT 20 .dynamic - 21: 0000000000010f98 0 SECTION LOCAL DEFAULT 21 .got - 22: 0000000000011000 0 SECTION LOCAL DEFAULT 22 .data - 23: 0000000000011010 0 SECTION LOCAL DEFAULT 23 .bss - 24: 0000000000000000 0 SECTION LOCAL DEFAULT 24 .comment - 25: 0000000000000000 0 FILE LOCAL DEFAULT ABS Scrt1.o - 26: 0000000000000278 0 NOTYPE LOCAL DEFAULT 3 $d - 27: 0000000000000278 32 OBJECT LOCAL DEFAULT 3 __abi_tag - 28: 0000000000000680 0 NOTYPE LOCAL DEFAULT 13 $x - 29: 0000000000000854 0 NOTYPE LOCAL DEFAULT 17 $d - 30: 00000000000007e4 0 NOTYPE LOCAL DEFAULT 15 $d - 31: 0000000000000000 0 FILE LOCAL DEFAULT ABS crti.o - 32: 00000000000006b4 0 NOTYPE LOCAL DEFAULT 13 $x - 33: 00000000000006b4 20 FUNC LOCAL DEFAULT 13 call_weak_fn - 34: 0000000000000580 0 NOTYPE LOCAL DEFAULT 11 $x - 35: 00000000000007d0 0 NOTYPE LOCAL DEFAULT 14 $x - 36: 0000000000000000 0 FILE LOCAL DEFAULT ABS crtn.o - 37: 0000000000000590 0 NOTYPE LOCAL DEFAULT 11 $x - 38: 00000000000007dc 0 NOTYPE LOCAL DEFAULT 14 $x - 39: 0000000000000000 0 FILE LOCAL DEFAULT ABS functionpointer.c - 40: 00000000000007a0 0 NOTYPE LOCAL DEFAULT 13 $x - 41: 0000000000000600 0 NOTYPE LOCAL DEFAULT 13 $x - 42: 0000000000011014 0 NOTYPE LOCAL DEFAULT 23 $d - 43: 00000000000008c8 0 NOTYPE LOCAL DEFAULT 17 $d - 44: 0000000000000000 0 FILE LOCAL DEFAULT ABS crtstuff.c - 45: 00000000000006d0 0 NOTYPE LOCAL DEFAULT 13 $x - 46: 00000000000006d0 0 FUNC LOCAL DEFAULT 13 deregister_tm_clones - 47: 0000000000000700 0 FUNC LOCAL DEFAULT 13 register_tm_clones - 48: 0000000000011008 0 NOTYPE LOCAL DEFAULT 22 $d - 49: 0000000000000740 0 FUNC LOCAL DEFAULT 13 __do_global_dtors_aux - 50: 0000000000011010 1 OBJECT LOCAL DEFAULT 23 completed.0 - 51: 0000000000010da0 0 NOTYPE LOCAL DEFAULT 19 $d - 52: 0000000000010da0 0 OBJECT LOCAL DEFAULT 19 __do_global_dtors_aux_fini_array_entry - 53: 0000000000000790 0 FUNC LOCAL DEFAULT 13 frame_dummy - 54: 0000000000010d98 0 NOTYPE LOCAL DEFAULT 18 $d - 55: 0000000000010d98 0 OBJECT LOCAL DEFAULT 18 __frame_dummy_init_array_entry - 56: 0000000000000868 0 NOTYPE LOCAL DEFAULT 17 $d - 57: 0000000000011010 0 NOTYPE LOCAL DEFAULT 23 $d - 58: 0000000000000000 0 FILE LOCAL DEFAULT ABS crtstuff.c - 59: 0000000000000924 0 NOTYPE LOCAL DEFAULT 17 $d - 60: 0000000000000924 0 OBJECT LOCAL DEFAULT 17 __FRAME_END__ - 61: 0000000000000000 0 FILE LOCAL DEFAULT ABS - 62: 0000000000010da8 0 OBJECT LOCAL DEFAULT ABS _DYNAMIC - 63: 00000000000007e8 0 NOTYPE LOCAL DEFAULT 16 __GNU_EH_FRAME_HDR - 64: 0000000000010fd0 0 OBJECT LOCAL DEFAULT ABS _GLOBAL_OFFSET_TABLE_ - 65: 00000000000005a0 0 NOTYPE LOCAL DEFAULT 12 $x - 66: 0000000000000000 0 FUNC GLOBAL DEFAULT UND __libc_start_main@GLIBC_2.34 - 67: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_deregisterTMCloneTable - 68: 0000000000011000 0 NOTYPE WEAK DEFAULT 22 data_start - 69: 0000000000011010 0 NOTYPE GLOBAL DEFAULT 23 __bss_start__ - 70: 0000000000000000 0 FUNC WEAK DEFAULT UND __cxa_finalize@GLIBC_2.17 - 71: 0000000000011018 0 NOTYPE GLOBAL DEFAULT 23 _bss_end__ - 72: 0000000000011010 0 NOTYPE GLOBAL DEFAULT 22 _edata - 73: 0000000000011014 4 OBJECT GLOBAL DEFAULT 23 x - 74: 00000000000007d0 0 FUNC GLOBAL HIDDEN 14 _fini - 75: 0000000000011018 0 NOTYPE GLOBAL DEFAULT 23 __bss_end__ - 76: 0000000000011000 0 NOTYPE GLOBAL DEFAULT 22 __data_start - 77: 0000000000000000 0 NOTYPE WEAK DEFAULT UND __gmon_start__ - 78: 0000000000011008 0 OBJECT GLOBAL HIDDEN 22 __dso_handle - 79: 0000000000000000 0 FUNC GLOBAL DEFAULT UND abort@GLIBC_2.17 - 80: 00000000000007e4 4 OBJECT GLOBAL DEFAULT 15 _IO_stdin_used - 81: 00000000000007a0 16 FUNC GLOBAL DEFAULT 13 set_two - 82: 0000000000011018 0 NOTYPE GLOBAL DEFAULT 23 _end - 83: 0000000000000680 52 FUNC GLOBAL DEFAULT 13 _start - 84: 0000000000011018 0 NOTYPE GLOBAL DEFAULT 23 __end__ - 85: 00000000000007b0 16 FUNC GLOBAL DEFAULT 13 set_six - 86: 0000000000011010 0 NOTYPE GLOBAL DEFAULT 23 __bss_start - 87: 0000000000000600 68 FUNC GLOBAL DEFAULT 13 main - 88: 00000000000007c0 16 FUNC GLOBAL DEFAULT 13 set_seven - 89: 0000000000011010 0 OBJECT GLOBAL HIDDEN 22 __TMC_END__ - 90: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_registerTMCloneTable - 91: 0000000000000580 0 FUNC GLOBAL HIDDEN 11 _init diff --git a/src/test/indirect_calls/functionpointer/gcc_pic/functionpointer.adt b/src/test/indirect_calls/functionpointer/gcc_pic/functionpointer.adt deleted file mode 100644 index 3731ef19e..000000000 --- a/src/test/indirect_calls/functionpointer/gcc_pic/functionpointer.adt +++ /dev/null @@ -1,721 +0,0 @@ -Project(Attrs([Attr("filename","\"gcc_pic/functionpointer.out\""), -Attr("image-specification","(declare abi (name str))\n(declare arch (name str))\n(declare base-address (addr int))\n(declare bias (off int))\n(declare bits (size int))\n(declare code-region (addr int) (size int) (off int))\n(declare code-start (addr int))\n(declare entry-point (addr int))\n(declare external-reference (addr int) (name str))\n(declare format (name str))\n(declare is-executable (flag bool))\n(declare is-little-endian (flag bool))\n(declare llvm:base-address (addr int))\n(declare llvm:code-entry (name str) (off int) (size int))\n(declare llvm:coff-import-library (name str))\n(declare llvm:coff-virtual-section-header (name str) (addr int) (size int))\n(declare llvm:elf-program-header (name str) (off int) (size int))\n(declare llvm:elf-program-header-flags (name str) (ld bool) (r bool) \n (w bool) (x bool))\n(declare llvm:elf-virtual-program-header (name str) (addr int) (size int))\n(declare llvm:entry-point (addr int))\n(declare llvm:macho-symbol (name str) (value int))\n(declare llvm:name-reference (at int) (name str))\n(declare llvm:relocation (at int) (addr int))\n(declare llvm:section-entry (name str) (addr int) (size int) (off int))\n(declare llvm:section-flags (name str) (r bool) (w bool) (x bool))\n(declare llvm:segment-command (name str) (off int) (size int))\n(declare llvm:segment-command-flags (name str) (r bool) (w bool) (x bool))\n(declare llvm:symbol-entry (name str) (addr int) (size int) (off int)\n (value int))\n(declare llvm:virtual-segment-command (name str) (addr int) (size int))\n(declare mapped (addr int) (size int) (off int))\n(declare named-region (addr int) (size int) (name str))\n(declare named-symbol (addr int) (name str))\n(declare require (name str))\n(declare section (addr int) (size int))\n(declare segment (addr int) (size int) (r bool) (w bool) (x bool))\n(declare subarch (name str))\n(declare symbol-chunk (addr int) (size int) (root int))\n(declare symbol-value (addr int) (value int))\n(declare system (name str))\n(declare vendor (name str))\n\n(abi unknown)\n(arch aarch64)\n(base-address 0)\n(bias 0)\n(bits 64)\n(code-region 2160 20 2160)\n(code-region 1664 496 1664)\n(code-region 1536 96 1536)\n(code-region 1504 24 1504)\n(code-start 1716)\n(code-start 1940)\n(code-start 1664)\n(code-start 1964)\n(code-start 2012)\n(code-start 1988)\n(entry-point 1664)\n(external-reference 69560 _ITM_deregisterTMCloneTable)\n(external-reference 69568 __cxa_finalize)\n(external-reference 69584 __gmon_start__)\n(external-reference 69624 _ITM_registerTMCloneTable)\n(external-reference 69520 __libc_start_main)\n(external-reference 69528 __cxa_finalize)\n(external-reference 69536 __gmon_start__)\n(external-reference 69544 abort)\n(format elf)\n(is-executable true)\n(is-little-endian true)\n(llvm:base-address 0)\n(llvm:code-entry abort 0 0)\n(llvm:code-entry __cxa_finalize 0 0)\n(llvm:code-entry __libc_start_main 0 0)\n(llvm:code-entry _init 1504 0)\n(llvm:code-entry set_seven 1988 24)\n(llvm:code-entry main 2012 148)\n(llvm:code-entry set_six 1964 24)\n(llvm:code-entry _start 1664 52)\n(llvm:code-entry set_two 1940 24)\n(llvm:code-entry abort@GLIBC_2.17 0 0)\n(llvm:code-entry _fini 2160 0)\n(llvm:code-entry __cxa_finalize@GLIBC_2.17 0 0)\n(llvm:code-entry __libc_start_main@GLIBC_2.34 0 0)\n(llvm:code-entry frame_dummy 1936 0)\n(llvm:code-entry __do_global_dtors_aux 1856 0)\n(llvm:code-entry register_tm_clones 1792 0)\n(llvm:code-entry deregister_tm_clones 1744 0)\n(llvm:code-entry call_weak_fn 1716 20)\n(llvm:code-entry .fini 2160 20)\n(llvm:code-entry .text 1664 496)\n(llvm:code-entry .plt 1536 96)\n(llvm:code-entry .init 1504 24)\n(llvm:elf-program-header 08 3448 648)\n(llvm:elf-program-header 07 0 0)\n(llvm:elf-program-header 06 2184 84)\n(llvm:elf-program-header 05 596 68)\n(llvm:elf-program-header 04 3464 496)\n(llvm:elf-program-header 03 3448 664)\n(llvm:elf-program-header 02 0 2504)\n(llvm:elf-program-header 01 568 27)\n(llvm:elf-program-header 00 64 504)\n(llvm:elf-program-header-flags 08 false true false false)\n(llvm:elf-program-header-flags 07 false true true false)\n(llvm:elf-program-header-flags 06 false true false false)\n(llvm:elf-program-header-flags 05 false true false false)\n(llvm:elf-program-header-flags 04 false true true false)\n(llvm:elf-program-header-flags 03 true true true false)\n(llvm:elf-program-header-flags 02 true true false true)\n(llvm:elf-program-header-flags 01 false true false false)\n(llvm:elf-program-header-flags 00 false true false false)\n(llvm:elf-virtual-program-header 08 68984 648)\n(llvm:elf-virtual-program-header 07 0 0)\n(llvm:elf-virtual-program-header 06 2184 84)\n(llvm:elf-virtual-program-header 05 596 68)\n(llvm:elf-virtual-program-header 04 69000 496)\n(llvm:elf-virtual-program-header 03 68984 672)\n(llvm:elf-virtual-program-header 02 0 2504)\n(llvm:elf-virtual-program-header 01 568 27)\n(llvm:elf-virtual-program-header 00 64 504)\n(llvm:entry-point 1664)\n(llvm:name-reference 69544 abort)\n(llvm:name-reference 69536 __gmon_start__)\n(llvm:name-reference 69528 __cxa_finalize)\n(llvm:name-reference 69520 __libc_start_main)\n(llvm:name-reference 69624 _ITM_registerTMCloneTable)\n(llvm:name-reference 69584 __gmon_start__)\n(llvm:name-reference 69568 __cxa_finalize)\n(llvm:name-reference 69560 _ITM_deregisterTMCloneTable)\n(llvm:section-entry .shstrtab 0 250 6921)\n(llvm:section-entry .strtab 0 577 6344)\n(llvm:section-entry .symtab 0 2184 4160)\n(llvm:section-entry .comment 0 43 4112)\n(llvm:section-entry .bss 69648 8 4112)\n(llvm:section-entry .data 69632 16 4096)\n(llvm:section-entry .got 69496 136 3960)\n(llvm:section-entry .dynamic 69000 496 3464)\n(llvm:section-entry .fini_array 68992 8 3456)\n(llvm:section-entry .init_array 68984 8 3448)\n(llvm:section-entry .eh_frame 2272 232 2272)\n(llvm:section-entry .eh_frame_hdr 2184 84 2184)\n(llvm:section-entry .rodata 2180 4 2180)\n(llvm:section-entry .fini 2160 20 2160)\n(llvm:section-entry .text 1664 496 1664)\n(llvm:section-entry .plt 1536 96 1536)\n(llvm:section-entry .init 1504 24 1504)\n(llvm:section-entry .rela.plt 1408 96 1408)\n(llvm:section-entry .rela.dyn 1120 288 1120)\n(llvm:section-entry .gnu.version_r 1072 48 1072)\n(llvm:section-entry .gnu.version 1054 18 1054)\n(llvm:section-entry .dynstr 912 141 912)\n(llvm:section-entry .dynsym 696 216 696)\n(llvm:section-entry .gnu.hash 664 28 664)\n(llvm:section-entry .note.ABI-tag 632 32 632)\n(llvm:section-entry .note.gnu.build-id 596 36 596)\n(llvm:section-entry .interp 568 27 568)\n(llvm:section-flags .shstrtab true false false)\n(llvm:section-flags .strtab true false false)\n(llvm:section-flags .symtab true false false)\n(llvm:section-flags .comment true false false)\n(llvm:section-flags .bss true true false)\n(llvm:section-flags .data true true false)\n(llvm:section-flags .got true true false)\n(llvm:section-flags .dynamic true true false)\n(llvm:section-flags .fini_array true true false)\n(llvm:section-flags .init_array true true false)\n(llvm:section-flags .eh_frame true false false)\n(llvm:section-flags .eh_frame_hdr true false false)\n(llvm:section-flags .rodata true false false)\n(llvm:section-flags .fini true false true)\n(llvm:section-flags .text true false true)\n(llvm:section-flags .plt true false true)\n(llvm:section-flags .init true false true)\n(llvm:section-flags .rela.plt true false false)\n(llvm:section-flags .rela.dyn true false false)\n(llvm:section-flags .gnu.version_r true false false)\n(llvm:section-flags .gnu.version true false false)\n(llvm:section-flags .dynstr true false false)\n(llvm:section-flags .dynsym true false false)\n(llvm:section-flags .gnu.hash true false false)\n(llvm:section-flags .note.ABI-tag true false false)\n(llvm:section-flags .note.gnu.build-id true false false)\n(llvm:section-flags .interp true false false)\n(llvm:symbol-entry abort 0 0 0 0)\n(llvm:symbol-entry __cxa_finalize 0 0 0 0)\n(llvm:symbol-entry __libc_start_main 0 0 0 0)\n(llvm:symbol-entry _init 1504 0 1504 1504)\n(llvm:symbol-entry set_seven 1988 24 1988 1988)\n(llvm:symbol-entry main 2012 148 2012 2012)\n(llvm:symbol-entry set_six 1964 24 1964 1964)\n(llvm:symbol-entry _start 1664 52 1664 1664)\n(llvm:symbol-entry set_two 1940 24 1940 1940)\n(llvm:symbol-entry abort@GLIBC_2.17 0 0 0 0)\n(llvm:symbol-entry _fini 2160 0 2160 2160)\n(llvm:symbol-entry __cxa_finalize@GLIBC_2.17 0 0 0 0)\n(llvm:symbol-entry __libc_start_main@GLIBC_2.34 0 0 0 0)\n(llvm:symbol-entry frame_dummy 1936 0 1936 1936)\n(llvm:symbol-entry __do_global_dtors_aux 1856 0 1856 1856)\n(llvm:symbol-entry register_tm_clones 1792 0 1792 1792)\n(llvm:symbol-entry deregister_tm_clones 1744 0 1744 1744)\n(llvm:symbol-entry call_weak_fn 1716 20 1716 1716)\n(mapped 0 2504 0)\n(mapped 68984 664 3448)\n(named-region 0 2504 02)\n(named-region 68984 672 03)\n(named-region 568 27 .interp)\n(named-region 596 36 .note.gnu.build-id)\n(named-region 632 32 .note.ABI-tag)\n(named-region 664 28 .gnu.hash)\n(named-region 696 216 .dynsym)\n(named-region 912 141 .dynstr)\n(named-region 1054 18 .gnu.version)\n(named-region 1072 48 .gnu.version_r)\n(named-region 1120 288 .rela.dyn)\n(named-region 1408 96 .rela.plt)\n(named-region 1504 24 .init)\n(named-region 1536 96 .plt)\n(named-region 1664 496 .text)\n(named-region 2160 20 .fini)\n(named-region 2180 4 .rodata)\n(named-region 2184 84 .eh_frame_hdr)\n(named-region 2272 232 .eh_frame)\n(named-region 68984 8 .init_array)\n(named-region 68992 8 .fini_array)\n(named-region 69000 496 .dynamic)\n(named-region 69496 136 .got)\n(named-region 69632 16 .data)\n(named-region 69648 8 .bss)\n(named-region 0 43 .comment)\n(named-region 0 2184 .symtab)\n(named-region 0 577 .strtab)\n(named-region 0 250 .shstrtab)\n(named-symbol 1716 call_weak_fn)\n(named-symbol 1744 deregister_tm_clones)\n(named-symbol 1792 register_tm_clones)\n(named-symbol 1856 __do_global_dtors_aux)\n(named-symbol 1936 frame_dummy)\n(named-symbol 0 __libc_start_main@GLIBC_2.34)\n(named-symbol 0 __cxa_finalize@GLIBC_2.17)\n(named-symbol 2160 _fini)\n(named-symbol 0 abort@GLIBC_2.17)\n(named-symbol 1940 set_two)\n(named-symbol 1664 _start)\n(named-symbol 1964 set_six)\n(named-symbol 2012 main)\n(named-symbol 1988 set_seven)\n(named-symbol 1504 _init)\n(named-symbol 0 __libc_start_main)\n(named-symbol 0 __cxa_finalize)\n(named-symbol 0 abort)\n(require libc.so.6)\n(section 568 27)\n(section 596 36)\n(section 632 32)\n(section 664 28)\n(section 696 216)\n(section 912 141)\n(section 1054 18)\n(section 1072 48)\n(section 1120 288)\n(section 1408 96)\n(section 1504 24)\n(section 1536 96)\n(section 1664 496)\n(section 2160 20)\n(section 2180 4)\n(section 2184 84)\n(section 2272 232)\n(section 68984 8)\n(section 68992 8)\n(section 69000 496)\n(section 69496 136)\n(section 69632 16)\n(section 69648 8)\n(section 0 43)\n(section 0 2184)\n(section 0 577)\n(section 0 250)\n(segment 0 2504 true false true)\n(segment 68984 672 true true false)\n(subarch v8)\n(symbol-chunk 1716 20 1716)\n(symbol-chunk 1940 24 1940)\n(symbol-chunk 1664 52 1664)\n(symbol-chunk 1964 24 1964)\n(symbol-chunk 2012 148 2012)\n(symbol-chunk 1988 24 1988)\n(symbol-value 1716 1716)\n(symbol-value 1744 1744)\n(symbol-value 1792 1792)\n(symbol-value 1856 1856)\n(symbol-value 1936 1936)\n(symbol-value 2160 2160)\n(symbol-value 1940 1940)\n(symbol-value 1664 1664)\n(symbol-value 1964 1964)\n(symbol-value 2012 2012)\n(symbol-value 1988 1988)\n(symbol-value 1504 1504)\n(symbol-value 0 0)\n(system \"\")\n(vendor \"\")\n"), -Attr("abi-name","\"aarch64-linux-gnu-elf\"")]), -Sections([Section(".shstrtab", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x80\x06\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x08\x1c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x38\x00\x09\x00\x40\x00\x1c\x00\x1b\x00\x06\x00\x00\x00\x04\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x04\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xc8\x09\x00\x00\x00\x00\x00\x00\xc8\x09\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x01\x00\x00\x00\x06\x00\x00\x00\x78\x0d\x00\x00\x00\x00\x00\x00\x78\x0d"), -Section(".strtab", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x80\x06\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x08\x1c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x38\x00\x09\x00\x40\x00\x1c\x00\x1b\x00\x06\x00\x00\x00\x04\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x04\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xc8\x09\x00\x00\x00\x00\x00\x00\xc8\x09\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x01\x00\x00\x00\x06\x00\x00\x00\x78\x0d\x00\x00\x00\x00\x00\x00\x78\x0d\x01\x00\x00\x00\x00\x00\x78\x0d\x01\x00\x00\x00\x00\x00\x98\x02\x00\x00\x00\x00\x00\x00\xa0\x02\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x02\x00\x00\x00\x06\x00\x00\x00\x88\x0d\x00\x00\x00\x00\x00\x00\x88\x0d\x01\x00\x00\x00\x00\x00\x88\x0d\x01\x00\x00\x00\x00\x00\xf0\x01\x00\x00\x00\x00\x00\x00\xf0\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x04\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x50\xe5\x74\x64\x04\x00\x00\x00\x88\x08\x00\x00\x00\x00\x00\x00\x88\x08\x00\x00\x00\x00\x00\x00\x88\x08\x00\x00\x00\x00\x00\x00\x54\x00\x00\x00\x00\x00\x00\x00\x54\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x51\xe5\x74\x64\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x52\xe5\x74\x64\x04\x00\x00\x00\x78\x0d\x00\x00\x00\x00\x00\x00\x78\x0d\x01\x00\x00\x00\x00\x00\x78\x0d\x01\x00\x00\x00\x00\x00\x88\x02\x00\x00\x00\x00\x00\x00\x88\x02\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x2f\x6c\x69\x62\x2f\x6c\x64\x2d\x6c"), -Section(".symtab", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x80\x06\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x08\x1c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x38\x00\x09\x00\x40\x00\x1c\x00\x1b\x00\x06\x00\x00\x00\x04\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x04\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xc8\x09\x00\x00\x00\x00\x00\x00\xc8\x09\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x01\x00\x00\x00\x06\x00\x00\x00\x78\x0d\x00\x00\x00\x00\x00\x00\x78\x0d\x01\x00\x00\x00\x00\x00\x78\x0d\x01\x00\x00\x00\x00\x00\x98\x02\x00\x00\x00\x00\x00\x00\xa0\x02\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x02\x00\x00\x00\x06\x00\x00\x00\x88\x0d\x00\x00\x00\x00\x00\x00\x88\x0d\x01\x00\x00\x00\x00\x00\x88\x0d\x01\x00\x00\x00\x00\x00\xf0\x01\x00\x00\x00\x00\x00\x00\xf0\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x04\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x50\xe5\x74\x64\x04\x00\x00\x00\x88\x08\x00\x00\x00\x00\x00\x00\x88\x08\x00\x00\x00\x00\x00\x00\x88\x08\x00\x00\x00\x00\x00\x00\x54\x00\x00\x00\x00\x00\x00\x00\x54\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x51\xe5\x74\x64\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x52\xe5\x74\x64\x04\x00\x00\x00\x78\x0d\x00\x00\x00\x00\x00\x00\x78\x0d\x01\x00\x00\x00\x00\x00\x78\x0d\x01\x00\x00\x00\x00\x00\x88\x02\x00\x00\x00\x00\x00\x00\x88\x02\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x2f\x6c\x69\x62\x2f\x6c\x64\x2d\x6c\x69\x6e\x75\x78\x2d\x61\x61\x72\x63\x68\x36\x34\x2e\x73\x6f\x2e\x31\x00\x00\x04\x00\x00\x00\x14\x00\x00\x00\x03\x00\x00\x00\x47\x4e\x55\x00\xc0\xeb\x4d\x7f\x10\xb2\x63\xe0\xc8\x41\x50\xf2\x05\x1e\x7d\x7e\x42\x4c\xcc\x72\x04\x00\x00\x00\x10\x00\x00\x00\x01\x00\x00\x00\x47\x4e\x55\x00\x00\x00\x00\x00\x03\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x01\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x0b\x00\xe0\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x16\x00\x00\x10\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x48\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x22\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x22\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x73\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5f\x5f\x63\x78\x61\x5f\x66\x69\x6e\x61\x6c\x69\x7a\x65\x00\x5f\x5f\x6c\x69\x62\x63\x5f\x73\x74\x61\x72\x74\x5f\x6d\x61\x69\x6e\x00\x61\x62\x6f\x72\x74\x00\x6c\x69\x62\x63\x2e\x73\x6f\x2e\x36\x00\x47\x4c\x49\x42\x43\x5f\x32\x2e\x31\x37\x00\x47\x4c\x49\x42\x43\x5f\x32\x2e\x33\x34\x00\x5f\x49\x54\x4d\x5f\x64\x65\x72\x65\x67\x69\x73\x74\x65\x72\x54\x4d\x43\x6c\x6f\x6e\x65\x54\x61\x62\x6c\x65\x00\x5f\x5f\x67\x6d\x6f\x6e\x5f\x73\x74\x61\x72\x74\x5f\x5f\x00\x5f\x49\x54\x4d\x5f\x72\x65\x67\x69\x73\x74\x65\x72\x54\x4d\x43\x6c\x6f\x6e\x65\x54\x61\x62\x6c\x65\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x01\x00\x03\x00\x01\x00\x03\x00\x01\x00\x01\x00\x02\x00\x28\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x97\x91\x96\x06\x00\x00\x03\x00\x32\x00\x00\x00\x10\x00\x00\x00\xb4\x91\x96\x06\x00\x00\x02\x00\x3d\x00\x00\x00\x00\x00\x00\x00\x78\x0d\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x90\x07\x00\x00\x00\x00\x00\x00\x80\x0d\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x40\x07\x00\x00\x00\x00\x00\x00\xc8\x0f\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x14\x10\x01\x00\x00\x00\x00\x00\xd8\x0f\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x94\x07\x00\x00\x00\x00\x00\x00\xe0\x0f\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\xac\x07\x00\x00\x00\x00\x00\x00\xe8\x0f\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\xdc\x07\x00\x00\x00\x00\x00\x00\xf0\x0f\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\xc4\x07\x00\x00\x00\x00\x00\x00\x08\x10\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x08\x10\x01\x00\x00\x00\x00\x00\xb8\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xc0\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xd0\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xf8\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x90\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x98\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xa0\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xa8\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1f\x20\x03\xd5\xfd\x7b\xbf\xa9\xfd\x03\x00\x91\x32\x00\x00\x94\xfd\x7b\xc1\xa8\xc0\x03\x5f\xd6\x00\x00\x00\x00\x00\x00\x00\x00\xf0\x7b\xbf\xa9\x90\x00\x00\x90\x11\xc6\x47\xf9\x10\x22\x3e\x91\x20\x02\x1f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x90\x00\x00\x90\x11\xca\x47\xf9\x10\x42\x3e\x91\x20\x02\x1f\xd6\x90\x00\x00\x90\x11\xce\x47\xf9\x10\x62\x3e\x91\x20\x02\x1f\xd6\x90\x00\x00\x90\x11\xd2\x47\xf9\x10\x82\x3e\x91\x20\x02\x1f\xd6\x90\x00\x00\x90\x11\xd6\x47\xf9\x10\xa2\x3e\x91\x20\x02\x1f\xd6\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1f\x20\x03\xd5\x1d\x00\x80\xd2\x1e\x00\x80\xd2\xe5\x03\x00\xaa\xe1\x03\x40\xf9\xe2\x23\x00\x91\xe6\x03\x00\x91\x80\x00\x00\x90\x00\xf4\x47\xf9\x03\x00\x80\xd2\x04\x00\x80\xd2\xdd\xff\xff\x97\xe8\xff\xff\x97\x80\x00\x00\x90\x00\xe8\x47\xf9\x40\x00\x00\xb4\xe0\xff\xff\x17\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x80\x00\x00\xb0\x00\x40\x00\x91\x81\x00\x00\xb0\x21\x40\x00\x91\x3f\x00\x00\xeb\xc0\x00\x00\x54\x81\x00\x00\x90\x21\xdc\x47\xf9\x61\x00\x00\xb4\xf0\x03\x01\xaa\x00\x02\x1f\xd6\xc0\x03\x5f\xd6\x80\x00\x00\xb0\x00\x40\x00\x91\x81\x00\x00\xb0\x21\x40\x00\x91\x21\x00\x00\xcb\x22\xfc\x7f\xd3\x41\x0c\x81\x8b\x21\xfc\x41\x93\xc1\x00\x00\xb4\x82\x00\x00\x90\x42\xfc\x47\xf9\x62\x00\x00\xb4\xf0\x03\x02\xaa\x00\x02\x1f\xd6\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\xfd\x7b\xbe\xa9\xfd\x03\x00\x91\xf3\x0b\x00\xf9\x93\x00\x00\xb0\x60\x42\x40\x39\x40\x01\x00\x35\x80\x00\x00\x90\x00\xe0\x47\xf9\x80\x00\x00\xb4\x80\x00\x00\xb0\x00\x04\x40\xf9\xb1\xff\xff\x97\xd8\xff\xff\x97\x20\x00\x80\x52\x60\x42\x00\x39\xf3\x0b\x40\xf9\xfd\x7b\xc2\xa8\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\xdc\xff\xff\x17\x80\x00\x00\x90\x00\xe4\x47\xf9\x41\x00\x80\x52\x01\x00\x00\xb9\x1f\x20\x03\xd5\xc0\x03\x5f\xd6\x80\x00\x00\x90\x00\xe4\x47\xf9\xc1\x00\x80\x52\x01\x00\x00\xb9\x1f\x20\x03\xd5\xc0\x03\x5f\xd6\x80\x00\x00\x90\x00\xe4\x47\xf9\xe1\x00\x80\x52\x01\x00\x00\xb9\x1f\x20\x03\xd5\xc0\x03\x5f\xd6\xfd\x7b\xbd\xa9\xfd\x03\x00\x91\xe0\x1f\x00\xb9\xe0\x1f\x40\xb9\x1f\x08\x00\x71\x60\x02\x00\x54\xe0\x1f\x40\xb9\x1f\x08\x00\x71\x8c\x02\x00\x54\xe0\x1f\x40\xb9\x1f\x00\x00\x71\xa0\x00\x00\x54\xe0\x1f\x40\xb9\x1f\x04\x00\x71\xc0\x00\x00\x54\x0d\x00\x00\x14\x80\x00\x00\x90\x00\xec\x47\xf9\xe0\x17\x00\xf9\x0d\x00\x00\x14\x80\x00\x00\x90\x00\xf0\x47\xf9\xe0\x17\x00\xf9\x09\x00\x00\x14\x80\x00\x00\x90\x00\xf8\x47\xf9\xe0\x17\x00\xf9\x05\x00\x00\x14\x80\x00\x00\x90\x00\xec\x47\xf9\xe0\x17\x00\xf9\x1f\x20\x03\xd5\xe0\x17\x40\xf9\x00\x00\x3f\xd6\x00\x00\x80\x52\xfd\x7b\xc3\xa8\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\xfd\x7b\xbf\xa9\xfd\x03\x00\x91\xfd\x7b\xc1\xa8\xc0\x03\x5f\xd6\x01\x00\x02\x00"), -Section(".comment", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x80\x06\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x08\x1c\x00"), -Section(".interp", 0x238, "\x2f\x6c\x69\x62\x2f\x6c\x64\x2d\x6c\x69\x6e\x75\x78\x2d\x61\x61\x72\x63\x68\x36\x34\x2e\x73\x6f\x2e\x31\x00"), -Section(".note.gnu.build-id", 0x254, "\x04\x00\x00\x00\x14\x00\x00\x00\x03\x00\x00\x00\x47\x4e\x55\x00\xc0\xeb\x4d\x7f\x10\xb2\x63\xe0\xc8\x41\x50\xf2\x05\x1e\x7d\x7e\x42\x4c\xcc\x72"), -Section(".note.ABI-tag", 0x278, "\x04\x00\x00\x00\x10\x00\x00\x00\x01\x00\x00\x00\x47\x4e\x55\x00\x00\x00\x00\x00\x03\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00"), -Section(".gnu.hash", 0x298, "\x01\x00\x00\x00\x01\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".dynsym", 0x2B8, "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x0b\x00\xe0\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x16\x00\x00\x10\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x48\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x22\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x22\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x73\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".dynstr", 0x390, "\x00\x5f\x5f\x63\x78\x61\x5f\x66\x69\x6e\x61\x6c\x69\x7a\x65\x00\x5f\x5f\x6c\x69\x62\x63\x5f\x73\x74\x61\x72\x74\x5f\x6d\x61\x69\x6e\x00\x61\x62\x6f\x72\x74\x00\x6c\x69\x62\x63\x2e\x73\x6f\x2e\x36\x00\x47\x4c\x49\x42\x43\x5f\x32\x2e\x31\x37\x00\x47\x4c\x49\x42\x43\x5f\x32\x2e\x33\x34\x00\x5f\x49\x54\x4d\x5f\x64\x65\x72\x65\x67\x69\x73\x74\x65\x72\x54\x4d\x43\x6c\x6f\x6e\x65\x54\x61\x62\x6c\x65\x00\x5f\x5f\x67\x6d\x6f\x6e\x5f\x73\x74\x61\x72\x74\x5f\x5f\x00\x5f\x49\x54\x4d\x5f\x72\x65\x67\x69\x73\x74\x65\x72\x54\x4d\x43\x6c\x6f\x6e\x65\x54\x61\x62\x6c\x65\x00"), -Section(".gnu.version", 0x41E, "\x00\x00\x00\x00\x00\x00\x02\x00\x01\x00\x03\x00\x01\x00\x03\x00\x01\x00"), -Section(".gnu.version_r", 0x430, "\x01\x00\x02\x00\x28\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x97\x91\x96\x06\x00\x00\x03\x00\x32\x00\x00\x00\x10\x00\x00\x00\xb4\x91\x96\x06\x00\x00\x02\x00\x3d\x00\x00\x00\x00\x00\x00\x00"), -Section(".rela.dyn", 0x460, "\x78\x0d\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x90\x07\x00\x00\x00\x00\x00\x00\x80\x0d\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x40\x07\x00\x00\x00\x00\x00\x00\xc8\x0f\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x14\x10\x01\x00\x00\x00\x00\x00\xd8\x0f\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x94\x07\x00\x00\x00\x00\x00\x00\xe0\x0f\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\xac\x07\x00\x00\x00\x00\x00\x00\xe8\x0f\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\xdc\x07\x00\x00\x00\x00\x00\x00\xf0\x0f\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\xc4\x07\x00\x00\x00\x00\x00\x00\x08\x10\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x08\x10\x01\x00\x00\x00\x00\x00\xb8\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xc0\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xd0\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xf8\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".rela.plt", 0x580, "\x90\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x98\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xa0\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xa8\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".init", 0x5E0, "\x1f\x20\x03\xd5\xfd\x7b\xbf\xa9\xfd\x03\x00\x91\x32\x00\x00\x94\xfd\x7b\xc1\xa8\xc0\x03\x5f\xd6"), -Section(".plt", 0x600, "\xf0\x7b\xbf\xa9\x90\x00\x00\x90\x11\xc6\x47\xf9\x10\x22\x3e\x91\x20\x02\x1f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x90\x00\x00\x90\x11\xca\x47\xf9\x10\x42\x3e\x91\x20\x02\x1f\xd6\x90\x00\x00\x90\x11\xce\x47\xf9\x10\x62\x3e\x91\x20\x02\x1f\xd6\x90\x00\x00\x90\x11\xd2\x47\xf9\x10\x82\x3e\x91\x20\x02\x1f\xd6\x90\x00\x00\x90\x11\xd6\x47\xf9\x10\xa2\x3e\x91\x20\x02\x1f\xd6"), -Section(".text", 0x680, "\x1f\x20\x03\xd5\x1d\x00\x80\xd2\x1e\x00\x80\xd2\xe5\x03\x00\xaa\xe1\x03\x40\xf9\xe2\x23\x00\x91\xe6\x03\x00\x91\x80\x00\x00\x90\x00\xf4\x47\xf9\x03\x00\x80\xd2\x04\x00\x80\xd2\xdd\xff\xff\x97\xe8\xff\xff\x97\x80\x00\x00\x90\x00\xe8\x47\xf9\x40\x00\x00\xb4\xe0\xff\xff\x17\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x80\x00\x00\xb0\x00\x40\x00\x91\x81\x00\x00\xb0\x21\x40\x00\x91\x3f\x00\x00\xeb\xc0\x00\x00\x54\x81\x00\x00\x90\x21\xdc\x47\xf9\x61\x00\x00\xb4\xf0\x03\x01\xaa\x00\x02\x1f\xd6\xc0\x03\x5f\xd6\x80\x00\x00\xb0\x00\x40\x00\x91\x81\x00\x00\xb0\x21\x40\x00\x91\x21\x00\x00\xcb\x22\xfc\x7f\xd3\x41\x0c\x81\x8b\x21\xfc\x41\x93\xc1\x00\x00\xb4\x82\x00\x00\x90\x42\xfc\x47\xf9\x62\x00\x00\xb4\xf0\x03\x02\xaa\x00\x02\x1f\xd6\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\xfd\x7b\xbe\xa9\xfd\x03\x00\x91\xf3\x0b\x00\xf9\x93\x00\x00\xb0\x60\x42\x40\x39\x40\x01\x00\x35\x80\x00\x00\x90\x00\xe0\x47\xf9\x80\x00\x00\xb4\x80\x00\x00\xb0\x00\x04\x40\xf9\xb1\xff\xff\x97\xd8\xff\xff\x97\x20\x00\x80\x52\x60\x42\x00\x39\xf3\x0b\x40\xf9\xfd\x7b\xc2\xa8\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\xdc\xff\xff\x17\x80\x00\x00\x90\x00\xe4\x47\xf9\x41\x00\x80\x52\x01\x00\x00\xb9\x1f\x20\x03\xd5\xc0\x03\x5f\xd6\x80\x00\x00\x90\x00\xe4\x47\xf9\xc1\x00\x80\x52\x01\x00\x00\xb9\x1f\x20\x03\xd5\xc0\x03\x5f\xd6\x80\x00\x00\x90\x00\xe4\x47\xf9\xe1\x00\x80\x52\x01\x00\x00\xb9\x1f\x20\x03\xd5\xc0\x03\x5f\xd6\xfd\x7b\xbd\xa9\xfd\x03\x00\x91\xe0\x1f\x00\xb9\xe0\x1f\x40\xb9\x1f\x08\x00\x71\x60\x02\x00\x54\xe0\x1f\x40\xb9\x1f\x08\x00\x71\x8c\x02\x00\x54\xe0\x1f\x40\xb9\x1f\x00\x00\x71\xa0\x00\x00\x54\xe0\x1f\x40\xb9\x1f\x04\x00\x71\xc0\x00\x00\x54\x0d\x00\x00\x14\x80\x00\x00\x90\x00\xec\x47\xf9\xe0\x17\x00\xf9\x0d\x00\x00\x14\x80\x00\x00\x90\x00\xf0\x47\xf9\xe0\x17\x00\xf9\x09\x00\x00\x14\x80\x00\x00\x90\x00\xf8\x47\xf9\xe0\x17\x00\xf9\x05\x00\x00\x14\x80\x00\x00\x90\x00\xec\x47\xf9\xe0\x17\x00\xf9\x1f\x20\x03\xd5\xe0\x17\x40\xf9\x00\x00\x3f\xd6\x00\x00\x80\x52\xfd\x7b\xc3\xa8\xc0\x03\x5f\xd6"), -Section(".fini", 0x870, "\x1f\x20\x03\xd5\xfd\x7b\xbf\xa9\xfd\x03\x00\x91\xfd\x7b\xc1\xa8\xc0\x03\x5f\xd6"), -Section(".rodata", 0x884, "\x01\x00\x02\x00"), -Section(".eh_frame_hdr", 0x888, "\x01\x1b\x03\x3b\x54\x00\x00\x00\x09\x00\x00\x00\xf8\xfd\xff\xff\x6c\x00\x00\x00\x48\xfe\xff\xff\x80\x00\x00\x00\x78\xfe\xff\xff\x94\x00\x00\x00\xb8\xfe\xff\xff\xa8\x00\x00\x00\x08\xff\xff\xff\xcc\x00\x00\x00\x0c\xff\xff\xff\xe0\x00\x00\x00\x24\xff\xff\xff\xf4\x00\x00\x00\x3c\xff\xff\xff\x08\x01\x00\x00\x54\xff\xff\xff\x1c\x01\x00\x00"), -Section(".eh_frame", 0x8E0, "\x10\x00\x00\x00\x00\x00\x00\x00\x01\x7a\x52\x00\x04\x78\x1e\x01\x1b\x0c\x1f\x00\x10\x00\x00\x00\x18\x00\x00\x00\x84\xfd\xff\xff\x34\x00\x00\x00\x00\x41\x07\x1e\x10\x00\x00\x00\x2c\x00\x00\x00\xc0\xfd\xff\xff\x30\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x40\x00\x00\x00\xdc\xfd\xff\xff\x3c\x00\x00\x00\x00\x00\x00\x00\x20\x00\x00\x00\x54\x00\x00\x00\x08\xfe\xff\xff\x48\x00\x00\x00\x00\x41\x0e\x20\x9d\x04\x9e\x03\x42\x93\x02\x4e\xde\xdd\xd3\x0e\x00\x00\x00\x00\x10\x00\x00\x00\x78\x00\x00\x00\x34\xfe\xff\xff\x04\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x8c\x00\x00\x00\x24\xfe\xff\xff\x18\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\xa0\x00\x00\x00\x28\xfe\xff\xff\x18\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\xb4\x00\x00\x00\x2c\xfe\xff\xff\x18\x00\x00\x00\x00\x00\x00\x00\x1c\x00\x00\x00\xc8\x00\x00\x00\x30\xfe\xff\xff\x94\x00\x00\x00\x00\x41\x0e\x30\x9d\x06\x9e\x05\x63\xde\xdd\x0e\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".fini_array", 0x10D80, "\x40\x07\x00\x00\x00\x00\x00\x00"), -Section(".dynamic", 0x10D88, "\x01\x00\x00\x00\x00\x00\x00\x00\x28\x00\x00\x00\x00\x00\x00\x00\x0c\x00\x00\x00\x00\x00\x00\x00\xe0\x05\x00\x00\x00\x00\x00\x00\x0d\x00\x00\x00\x00\x00\x00\x00\x70\x08\x00\x00\x00\x00\x00\x00\x19\x00\x00\x00\x00\x00\x00\x00\x78\x0d\x01\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x1a\x00\x00\x00\x00\x00\x00\x00\x80\x0d\x01\x00\x00\x00\x00\x00\x1c\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\xf5\xfe\xff\x6f\x00\x00\x00\x00\x98\x02\x00\x00\x00\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x90\x03\x00\x00\x00\x00\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\xb8\x02\x00\x00\x00\x00\x00\x00\x0a\x00\x00\x00\x00\x00\x00\x00\x8d\x00\x00\x00\x00\x00\x00\x00\x0b\x00\x00\x00\x00\x00\x00\x00\x18\x00\x00\x00\x00\x00\x00\x00\x15\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x78\x0f\x01\x00\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x60\x00\x00\x00\x00\x00\x00\x00\x14\x00\x00\x00\x00\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x17\x00\x00\x00\x00\x00\x00\x00\x80\x05\x00\x00\x00\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x60\x04\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x20\x01\x00\x00\x00\x00\x00\x00\x09\x00\x00\x00\x00\x00\x00\x00\x18\x00\x00\x00\x00\x00\x00\x00\x1e\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\xfb\xff\xff\x6f\x00\x00\x00\x00\x01\x00\x00\x08\x00\x00\x00\x00\xfe\xff\xff\x6f\x00\x00\x00\x00\x30\x04\x00\x00\x00\x00\x00\x00\xff\xff\xff\x6f\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\xf0\xff\xff\x6f\x00\x00\x00\x00\x1e\x04\x00\x00\x00\x00\x00\x00\xf9\xff\xff\x6f\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".got", 0x10F78, "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x06\x00\x00\x00\x00\x00\x00\x88\x0d\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x14\x10\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x94\x07\x00\x00\x00\x00\x00\x00\xac\x07\x00\x00\x00\x00\x00\x00\xdc\x07\x00\x00\x00\x00\x00\x00\xc4\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".data", 0x11000, "\x00\x00\x00\x00\x00\x00\x00\x00\x08\x10\x01\x00\x00\x00\x00\x00"), -Section(".init_array", 0x10D78, "\x90\x07\x00\x00\x00\x00\x00\x00")]), -Memmap([Annotation(Region(0x0,0x9C7), Attr("segment","02 0 2504")), -Annotation(Region(0x680,0x6B3), Attr("symbol","\"_start\"")), -Annotation(Region(0x0,0xF9), Attr("section","\".shstrtab\"")), -Annotation(Region(0x0,0x240), Attr("section","\".strtab\"")), -Annotation(Region(0x0,0x887), Attr("section","\".symtab\"")), -Annotation(Region(0x0,0x2A), Attr("section","\".comment\"")), -Annotation(Region(0x238,0x252), Attr("section","\".interp\"")), -Annotation(Region(0x254,0x277), Attr("section","\".note.gnu.build-id\"")), -Annotation(Region(0x278,0x297), Attr("section","\".note.ABI-tag\"")), -Annotation(Region(0x298,0x2B3), Attr("section","\".gnu.hash\"")), -Annotation(Region(0x2B8,0x38F), Attr("section","\".dynsym\"")), -Annotation(Region(0x390,0x41C), Attr("section","\".dynstr\"")), -Annotation(Region(0x41E,0x42F), Attr("section","\".gnu.version\"")), -Annotation(Region(0x430,0x45F), Attr("section","\".gnu.version_r\"")), -Annotation(Region(0x460,0x57F), Attr("section","\".rela.dyn\"")), -Annotation(Region(0x580,0x5DF), Attr("section","\".rela.plt\"")), -Annotation(Region(0x5E0,0x5F7), Attr("section","\".init\"")), -Annotation(Region(0x600,0x65F), Attr("section","\".plt\"")), -Annotation(Region(0x5E0,0x5F7), Attr("code-region","()")), -Annotation(Region(0x600,0x65F), Attr("code-region","()")), -Annotation(Region(0x680,0x6B3), Attr("symbol-info","_start 0x680 52")), -Annotation(Region(0x6B4,0x6C7), Attr("symbol","\"call_weak_fn\"")), -Annotation(Region(0x6B4,0x6C7), Attr("symbol-info","call_weak_fn 0x6B4 20")), -Annotation(Region(0x794,0x7AB), Attr("symbol","\"set_two\"")), -Annotation(Region(0x794,0x7AB), Attr("symbol-info","set_two 0x794 24")), -Annotation(Region(0x7AC,0x7C3), Attr("symbol","\"set_six\"")), -Annotation(Region(0x7AC,0x7C3), Attr("symbol-info","set_six 0x7AC 24")), -Annotation(Region(0x7C4,0x7DB), Attr("symbol","\"set_seven\"")), -Annotation(Region(0x680,0x86F), Attr("section","\".text\"")), -Annotation(Region(0x680,0x86F), Attr("code-region","()")), -Annotation(Region(0x7C4,0x7DB), Attr("symbol-info","set_seven 0x7C4 24")), -Annotation(Region(0x7DC,0x86F), Attr("symbol","\"main\"")), -Annotation(Region(0x7DC,0x86F), Attr("symbol-info","main 0x7DC 148")), -Annotation(Region(0x870,0x883), Attr("section","\".fini\"")), -Annotation(Region(0x870,0x883), Attr("code-region","()")), -Annotation(Region(0x884,0x887), Attr("section","\".rodata\"")), -Annotation(Region(0x888,0x8DB), Attr("section","\".eh_frame_hdr\"")), -Annotation(Region(0x8E0,0x9C7), Attr("section","\".eh_frame\"")), -Annotation(Region(0x10D78,0x1100F), Attr("segment","03 0x10D78 672")), -Annotation(Region(0x10D80,0x10D87), Attr("section","\".fini_array\"")), -Annotation(Region(0x10D88,0x10F77), Attr("section","\".dynamic\"")), -Annotation(Region(0x10F78,0x10FFF), Attr("section","\".got\"")), -Annotation(Region(0x11000,0x1100F), Attr("section","\".data\"")), -Annotation(Region(0x10D78,0x10D7F), Attr("section","\".init_array\""))]), -Program(Tid(1_974, "%000007b6"), Attrs([]), - Subs([Sub(Tid(1_908, "@__cxa_finalize"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x630"), -Attr("stub","()")]), "__cxa_finalize", Args([Arg(Tid(1_975, "%000007b7"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("__cxa_finalize_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(1_382, "@__cxa_finalize"), - Attrs([Attr("address","0x630")]), Phis([]), -Defs([Def(Tid(1_630, "%0000065e"), Attrs([Attr("address","0x630"), -Attr("insn","adrp x16, #65536")]), Var("R16",Imm(64)), Int(65536,64)), -Def(Tid(1_637, "%00000665"), Attrs([Attr("address","0x634"), -Attr("insn","ldr x17, [x16, #0xf98]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(3992,64)),LittleEndian(),64)), -Def(Tid(1_643, "%0000066b"), Attrs([Attr("address","0x638"), -Attr("insn","add x16, x16, #0xf98")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(3992,64)))]), Jmps([Call(Tid(1_648, "%00000670"), - Attrs([Attr("address","0x63C"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), -Sub(Tid(1_909, "@__do_global_dtors_aux"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x740")]), - "__do_global_dtors_aux", Args([Arg(Tid(1_976, "%000007b8"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("__do_global_dtors_aux_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(810, "@__do_global_dtors_aux"), - Attrs([Attr("address","0x740")]), Phis([]), Defs([Def(Tid(814, "%0000032e"), - Attrs([Attr("address","0x740"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("#3",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(18446744073709551584,64))), -Def(Tid(820, "%00000334"), Attrs([Attr("address","0x740"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("#3",Imm(64)),Var("R29",Imm(64)),LittleEndian(),64)), -Def(Tid(826, "%0000033a"), Attrs([Attr("address","0x740"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("#3",Imm(64)),Int(8,64)),Var("R30",Imm(64)),LittleEndian(),64)), -Def(Tid(830, "%0000033e"), Attrs([Attr("address","0x740"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("R31",Imm(64)), -Var("#3",Imm(64))), Def(Tid(836, "%00000344"), - Attrs([Attr("address","0x744"), Attr("insn","mov x29, sp")]), - Var("R29",Imm(64)), Var("R31",Imm(64))), Def(Tid(844, "%0000034c"), - Attrs([Attr("address","0x748"), Attr("insn","str x19, [sp, #0x10]")]), - Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(16,64)),Var("R19",Imm(64)),LittleEndian(),64)), -Def(Tid(849, "%00000351"), Attrs([Attr("address","0x74C"), -Attr("insn","adrp x19, #69632")]), Var("R19",Imm(64)), Int(69632,64)), -Def(Tid(856, "%00000358"), Attrs([Attr("address","0x750"), -Attr("insn","ldrb w0, [x19, #0x10]")]), Var("R0",Imm(64)), -UNSIGNED(64,Load(Var("mem",Mem(64,8)),PLUS(Var("R19",Imm(64)),Int(16,64)),LittleEndian(),8)))]), -Jmps([Goto(Tid(863, "%0000035f"), Attrs([Attr("address","0x754"), -Attr("insn","cbnz w0, #0x28")]), - NEQ(Extract(31,0,Var("R0",Imm(64))),Int(0,32)), -Direct(Tid(861, "%0000035d"))), Goto(Tid(1_959, "%000007a7"), Attrs([]), - Int(1,1), Direct(Tid(1_327, "%0000052f")))])), Blk(Tid(1_327, "%0000052f"), - Attrs([Attr("address","0x758")]), Phis([]), -Defs([Def(Tid(1_330, "%00000532"), Attrs([Attr("address","0x758"), -Attr("insn","adrp x0, #65536")]), Var("R0",Imm(64)), Int(65536,64)), -Def(Tid(1_337, "%00000539"), Attrs([Attr("address","0x75C"), -Attr("insn","ldr x0, [x0, #0xfc0]")]), Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(4032,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(1_343, "%0000053f"), Attrs([Attr("address","0x760"), -Attr("insn","cbz x0, #0x10")]), EQ(Var("R0",Imm(64)),Int(0,64)), -Direct(Tid(1_341, "%0000053d"))), Goto(Tid(1_960, "%000007a8"), Attrs([]), - Int(1,1), Direct(Tid(1_366, "%00000556")))])), Blk(Tid(1_366, "%00000556"), - Attrs([Attr("address","0x764")]), Phis([]), -Defs([Def(Tid(1_369, "%00000559"), Attrs([Attr("address","0x764"), -Attr("insn","adrp x0, #69632")]), Var("R0",Imm(64)), Int(69632,64)), -Def(Tid(1_376, "%00000560"), Attrs([Attr("address","0x768"), -Attr("insn","ldr x0, [x0, #0x8]")]), Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(1_381, "%00000565"), Attrs([Attr("address","0x76C"), -Attr("insn","bl #-0x13c")]), Var("R30",Imm(64)), Int(1904,64))]), -Jmps([Call(Tid(1_384, "%00000568"), Attrs([Attr("address","0x76C"), -Attr("insn","bl #-0x13c")]), Int(1,1), -(Direct(Tid(1_908, "@__cxa_finalize")),Direct(Tid(1_341, "%0000053d"))))])), -Blk(Tid(1_341, "%0000053d"), Attrs([Attr("address","0x770")]), Phis([]), -Defs([Def(Tid(1_349, "%00000545"), Attrs([Attr("address","0x770"), -Attr("insn","bl #-0xa0")]), Var("R30",Imm(64)), Int(1908,64))]), -Jmps([Call(Tid(1_351, "%00000547"), Attrs([Attr("address","0x770"), -Attr("insn","bl #-0xa0")]), Int(1,1), -(Direct(Tid(1_922, "@deregister_tm_clones")),Direct(Tid(1_353, "%00000549"))))])), -Blk(Tid(1_353, "%00000549"), Attrs([Attr("address","0x774")]), Phis([]), -Defs([Def(Tid(1_356, "%0000054c"), Attrs([Attr("address","0x774"), -Attr("insn","mov w0, #0x1")]), Var("R0",Imm(64)), Int(1,64)), -Def(Tid(1_364, "%00000554"), Attrs([Attr("address","0x778"), -Attr("insn","strb w0, [x19, #0x10]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R19",Imm(64)),Int(16,64)),Extract(7,0,Var("R0",Imm(64))),LittleEndian(),8))]), -Jmps([Goto(Tid(1_961, "%000007a9"), Attrs([]), Int(1,1), -Direct(Tid(861, "%0000035d")))])), Blk(Tid(861, "%0000035d"), - Attrs([Attr("address","0x77C")]), Phis([]), Defs([Def(Tid(871, "%00000367"), - Attrs([Attr("address","0x77C"), Attr("insn","ldr x19, [sp, #0x10]")]), - Var("R19",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(16,64)),LittleEndian(),64)), -Def(Tid(878, "%0000036e"), Attrs([Attr("address","0x780"), -Attr("insn","ldp x29, x30, [sp], #0x20")]), Var("R29",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(883, "%00000373"), Attrs([Attr("address","0x780"), -Attr("insn","ldp x29, x30, [sp], #0x20")]), Var("R30",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(887, "%00000377"), Attrs([Attr("address","0x780"), -Attr("insn","ldp x29, x30, [sp], #0x20")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(32,64)))]), Jmps([Call(Tid(892, "%0000037c"), - Attrs([Attr("address","0x784"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), Sub(Tid(1_913, "@__libc_start_main"), - Attrs([Attr("c.proto","signed (*)(signed (*)(signed , char** , char** );* main, signed , char** , \nvoid* auxv)"), -Attr("address","0x620"), Attr("stub","()")]), "__libc_start_main", - Args([Arg(Tid(1_977, "%000007b9"), - Attrs([Attr("c.layout","**[ : 64]"), -Attr("c.data","Top:u64 ptr ptr"), -Attr("c.type","signed (*)(signed , char** , char** );*")]), - Var("__libc_start_main_main",Imm(64)), Var("R0",Imm(64)), In()), -Arg(Tid(1_978, "%000007ba"), Attrs([Attr("c.layout","[signed : 32]"), -Attr("c.data","Top:u32"), Attr("c.type","signed")]), - Var("__libc_start_main_arg2",Imm(32)), LOW(32,Var("R1",Imm(64))), In()), -Arg(Tid(1_979, "%000007bb"), Attrs([Attr("c.layout","**[char : 8]"), -Attr("c.data","Top:u8 ptr ptr"), Attr("c.type","char**")]), - Var("__libc_start_main_arg3",Imm(64)), Var("R2",Imm(64)), Both()), -Arg(Tid(1_980, "%000007bc"), Attrs([Attr("c.layout","*[ : 8]"), -Attr("c.data","{} ptr"), Attr("c.type","void*")]), - Var("__libc_start_main_auxv",Imm(64)), Var("R3",Imm(64)), Both()), -Arg(Tid(1_981, "%000007bd"), Attrs([Attr("c.layout","[signed : 32]"), -Attr("c.data","Top:u32"), Attr("c.type","signed")]), - Var("__libc_start_main_result",Imm(32)), LOW(32,Var("R0",Imm(64))), -Out())]), Blks([Blk(Tid(643, "@__libc_start_main"), - Attrs([Attr("address","0x620")]), Phis([]), -Defs([Def(Tid(1_608, "%00000648"), Attrs([Attr("address","0x620"), -Attr("insn","adrp x16, #65536")]), Var("R16",Imm(64)), Int(65536,64)), -Def(Tid(1_615, "%0000064f"), Attrs([Attr("address","0x624"), -Attr("insn","ldr x17, [x16, #0xf90]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(3984,64)),LittleEndian(),64)), -Def(Tid(1_621, "%00000655"), Attrs([Attr("address","0x628"), -Attr("insn","add x16, x16, #0xf90")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(3984,64)))]), Jmps([Call(Tid(1_626, "%0000065a"), - Attrs([Attr("address","0x62C"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), Sub(Tid(1_914, "@_fini"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x870")]), - "_fini", Args([Arg(Tid(1_982, "%000007be"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("_fini_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(31, "@_fini"), - Attrs([Attr("address","0x870")]), Phis([]), Defs([Def(Tid(37, "%00000025"), - Attrs([Attr("address","0x874"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("#0",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(18446744073709551600,64))), -Def(Tid(43, "%0000002b"), Attrs([Attr("address","0x874"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("#0",Imm(64)),Var("R29",Imm(64)),LittleEndian(),64)), -Def(Tid(49, "%00000031"), Attrs([Attr("address","0x874"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("#0",Imm(64)),Int(8,64)),Var("R30",Imm(64)),LittleEndian(),64)), -Def(Tid(53, "%00000035"), Attrs([Attr("address","0x874"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("R31",Imm(64)), -Var("#0",Imm(64))), Def(Tid(59, "%0000003b"), Attrs([Attr("address","0x878"), -Attr("insn","mov x29, sp")]), Var("R29",Imm(64)), Var("R31",Imm(64))), -Def(Tid(66, "%00000042"), Attrs([Attr("address","0x87C"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R29",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(71, "%00000047"), Attrs([Attr("address","0x87C"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R30",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(75, "%0000004b"), Attrs([Attr("address","0x87C"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(16,64)))]), Jmps([Call(Tid(80, "%00000050"), - Attrs([Attr("address","0x880"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), Sub(Tid(1_915, "@_init"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x5E0")]), - "_init", Args([Arg(Tid(1_983, "%000007bf"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("_init_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(1_720, "@_init"), - Attrs([Attr("address","0x5E0")]), Phis([]), -Defs([Def(Tid(1_726, "%000006be"), Attrs([Attr("address","0x5E4"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("#10",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(18446744073709551600,64))), -Def(Tid(1_732, "%000006c4"), Attrs([Attr("address","0x5E4"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("#10",Imm(64)),Var("R29",Imm(64)),LittleEndian(),64)), -Def(Tid(1_738, "%000006ca"), Attrs([Attr("address","0x5E4"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("#10",Imm(64)),Int(8,64)),Var("R30",Imm(64)),LittleEndian(),64)), -Def(Tid(1_742, "%000006ce"), Attrs([Attr("address","0x5E4"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("R31",Imm(64)), -Var("#10",Imm(64))), Def(Tid(1_748, "%000006d4"), - Attrs([Attr("address","0x5E8"), Attr("insn","mov x29, sp")]), - Var("R29",Imm(64)), Var("R31",Imm(64))), Def(Tid(1_753, "%000006d9"), - Attrs([Attr("address","0x5EC"), Attr("insn","bl #0xc8")]), - Var("R30",Imm(64)), Int(1520,64))]), Jmps([Call(Tid(1_755, "%000006db"), - Attrs([Attr("address","0x5EC"), Attr("insn","bl #0xc8")]), Int(1,1), -(Direct(Tid(1_920, "@call_weak_fn")),Direct(Tid(1_757, "%000006dd"))))])), -Blk(Tid(1_757, "%000006dd"), Attrs([Attr("address","0x5F0")]), Phis([]), -Defs([Def(Tid(1_762, "%000006e2"), Attrs([Attr("address","0x5F0"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R29",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(1_767, "%000006e7"), Attrs([Attr("address","0x5F0"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R30",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(1_771, "%000006eb"), Attrs([Attr("address","0x5F0"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(16,64)))]), Jmps([Call(Tid(1_776, "%000006f0"), - Attrs([Attr("address","0x5F4"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), Sub(Tid(1_916, "@_start"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x680"), -Attr("entry-point","()")]), "_start", Args([Arg(Tid(1_984, "%000007c0"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("_start_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(580, "@_start"), - Attrs([Attr("address","0x680")]), Phis([]), Defs([Def(Tid(585, "%00000249"), - Attrs([Attr("address","0x684"), Attr("insn","mov x29, #0x0")]), - Var("R29",Imm(64)), Int(0,64)), Def(Tid(590, "%0000024e"), - Attrs([Attr("address","0x688"), Attr("insn","mov x30, #0x0")]), - Var("R30",Imm(64)), Int(0,64)), Def(Tid(596, "%00000254"), - Attrs([Attr("address","0x68C"), Attr("insn","mov x5, x0")]), - Var("R5",Imm(64)), Var("R0",Imm(64))), Def(Tid(603, "%0000025b"), - Attrs([Attr("address","0x690"), Attr("insn","ldr x1, [sp]")]), - Var("R1",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(609, "%00000261"), Attrs([Attr("address","0x694"), -Attr("insn","add x2, sp, #0x8")]), Var("R2",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(8,64))), Def(Tid(615, "%00000267"), - Attrs([Attr("address","0x698"), Attr("insn","mov x6, sp")]), - Var("R6",Imm(64)), Var("R31",Imm(64))), Def(Tid(620, "%0000026c"), - Attrs([Attr("address","0x69C"), Attr("insn","adrp x0, #65536")]), - Var("R0",Imm(64)), Int(65536,64)), Def(Tid(627, "%00000273"), - Attrs([Attr("address","0x6A0"), Attr("insn","ldr x0, [x0, #0xfe8]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(4072,64)),LittleEndian(),64)), -Def(Tid(632, "%00000278"), Attrs([Attr("address","0x6A4"), -Attr("insn","mov x3, #0x0")]), Var("R3",Imm(64)), Int(0,64)), -Def(Tid(637, "%0000027d"), Attrs([Attr("address","0x6A8"), -Attr("insn","mov x4, #0x0")]), Var("R4",Imm(64)), Int(0,64)), -Def(Tid(642, "%00000282"), Attrs([Attr("address","0x6AC"), -Attr("insn","bl #-0x8c")]), Var("R30",Imm(64)), Int(1712,64))]), -Jmps([Call(Tid(645, "%00000285"), Attrs([Attr("address","0x6AC"), -Attr("insn","bl #-0x8c")]), Int(1,1), -(Direct(Tid(1_913, "@__libc_start_main")),Direct(Tid(647, "%00000287"))))])), -Blk(Tid(647, "%00000287"), Attrs([Attr("address","0x6B0")]), Phis([]), -Defs([Def(Tid(650, "%0000028a"), Attrs([Attr("address","0x6B0"), -Attr("insn","bl #-0x60")]), Var("R30",Imm(64)), Int(1716,64))]), -Jmps([Call(Tid(653, "%0000028d"), Attrs([Attr("address","0x6B0"), -Attr("insn","bl #-0x60")]), Int(1,1), -(Direct(Tid(1_919, "@abort")),Direct(Tid(1_962, "%000007aa"))))])), -Blk(Tid(1_962, "%000007aa"), Attrs([]), Phis([]), Defs([]), -Jmps([Call(Tid(1_963, "%000007ab"), Attrs([]), Int(1,1), -(Direct(Tid(1_920, "@call_weak_fn")),))]))])), Sub(Tid(1_919, "@abort"), - Attrs([Attr("noreturn","()"), Attr("c.proto","void (*)(void)"), -Attr("address","0x650"), Attr("stub","()")]), "abort", Args([]), -Blks([Blk(Tid(651, "@abort"), Attrs([Attr("address","0x650")]), Phis([]), -Defs([Def(Tid(1_674, "%0000068a"), Attrs([Attr("address","0x650"), -Attr("insn","adrp x16, #65536")]), Var("R16",Imm(64)), Int(65536,64)), -Def(Tid(1_681, "%00000691"), Attrs([Attr("address","0x654"), -Attr("insn","ldr x17, [x16, #0xfa8]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(4008,64)),LittleEndian(),64)), -Def(Tid(1_687, "%00000697"), Attrs([Attr("address","0x658"), -Attr("insn","add x16, x16, #0xfa8")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(4008,64)))]), Jmps([Call(Tid(1_692, "%0000069c"), - Attrs([Attr("address","0x65C"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), Sub(Tid(1_920, "@call_weak_fn"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x6B4")]), - "call_weak_fn", Args([Arg(Tid(1_985, "%000007c1"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("call_weak_fn_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(655, "@call_weak_fn"), - Attrs([Attr("address","0x6B4")]), Phis([]), Defs([Def(Tid(658, "%00000292"), - Attrs([Attr("address","0x6B4"), Attr("insn","adrp x0, #65536")]), - Var("R0",Imm(64)), Int(65536,64)), Def(Tid(665, "%00000299"), - Attrs([Attr("address","0x6B8"), Attr("insn","ldr x0, [x0, #0xfd0]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(4048,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(671, "%0000029f"), Attrs([Attr("address","0x6BC"), -Attr("insn","cbz x0, #0x8")]), EQ(Var("R0",Imm(64)),Int(0,64)), -Direct(Tid(669, "%0000029d"))), Goto(Tid(1_964, "%000007ac"), Attrs([]), - Int(1,1), Direct(Tid(1_446, "%000005a6")))])), Blk(Tid(669, "%0000029d"), - Attrs([Attr("address","0x6C4")]), Phis([]), Defs([]), -Jmps([Call(Tid(677, "%000002a5"), Attrs([Attr("address","0x6C4"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))])), -Blk(Tid(1_446, "%000005a6"), Attrs([Attr("address","0x6C0")]), Phis([]), -Defs([]), Jmps([Goto(Tid(1_449, "%000005a9"), Attrs([Attr("address","0x6C0"), -Attr("insn","b #-0x80")]), Int(1,1), -Direct(Tid(1_447, "@__gmon_start__")))])), Blk(Tid(1_447, "@__gmon_start__"), - Attrs([Attr("address","0x640")]), Phis([]), -Defs([Def(Tid(1_652, "%00000674"), Attrs([Attr("address","0x640"), -Attr("insn","adrp x16, #65536")]), Var("R16",Imm(64)), Int(65536,64)), -Def(Tid(1_659, "%0000067b"), Attrs([Attr("address","0x644"), -Attr("insn","ldr x17, [x16, #0xfa0]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(4000,64)),LittleEndian(),64)), -Def(Tid(1_665, "%00000681"), Attrs([Attr("address","0x648"), -Attr("insn","add x16, x16, #0xfa0")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(4000,64)))]), Jmps([Call(Tid(1_670, "%00000686"), - Attrs([Attr("address","0x64C"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), -Sub(Tid(1_922, "@deregister_tm_clones"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x6D0")]), - "deregister_tm_clones", Args([Arg(Tid(1_986, "%000007c2"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("deregister_tm_clones_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(683, "@deregister_tm_clones"), - Attrs([Attr("address","0x6D0")]), Phis([]), Defs([Def(Tid(686, "%000002ae"), - Attrs([Attr("address","0x6D0"), Attr("insn","adrp x0, #69632")]), - Var("R0",Imm(64)), Int(69632,64)), Def(Tid(692, "%000002b4"), - Attrs([Attr("address","0x6D4"), Attr("insn","add x0, x0, #0x10")]), - Var("R0",Imm(64)), PLUS(Var("R0",Imm(64)),Int(16,64))), -Def(Tid(697, "%000002b9"), Attrs([Attr("address","0x6D8"), -Attr("insn","adrp x1, #69632")]), Var("R1",Imm(64)), Int(69632,64)), -Def(Tid(703, "%000002bf"), Attrs([Attr("address","0x6DC"), -Attr("insn","add x1, x1, #0x10")]), Var("R1",Imm(64)), -PLUS(Var("R1",Imm(64)),Int(16,64))), Def(Tid(709, "%000002c5"), - Attrs([Attr("address","0x6E0"), Attr("insn","cmp x1, x0")]), - Var("#1",Imm(64)), NOT(Var("R0",Imm(64)))), Def(Tid(714, "%000002ca"), - Attrs([Attr("address","0x6E0"), Attr("insn","cmp x1, x0")]), - Var("#2",Imm(64)), PLUS(Var("R1",Imm(64)),NOT(Var("R0",Imm(64))))), -Def(Tid(720, "%000002d0"), Attrs([Attr("address","0x6E0"), -Attr("insn","cmp x1, x0")]), Var("VF",Imm(1)), -NEQ(SIGNED(65,PLUS(Var("#2",Imm(64)),Int(1,64))),PLUS(PLUS(SIGNED(65,Var("R1",Imm(64))),SIGNED(65,Var("#1",Imm(64)))),Int(1,65)))), -Def(Tid(726, "%000002d6"), Attrs([Attr("address","0x6E0"), -Attr("insn","cmp x1, x0")]), Var("CF",Imm(1)), -NEQ(UNSIGNED(65,PLUS(Var("#2",Imm(64)),Int(1,64))),PLUS(PLUS(UNSIGNED(65,Var("R1",Imm(64))),UNSIGNED(65,Var("#1",Imm(64)))),Int(1,65)))), -Def(Tid(730, "%000002da"), Attrs([Attr("address","0x6E0"), -Attr("insn","cmp x1, x0")]), Var("ZF",Imm(1)), -EQ(PLUS(Var("#2",Imm(64)),Int(1,64)),Int(0,64))), Def(Tid(734, "%000002de"), - Attrs([Attr("address","0x6E0"), Attr("insn","cmp x1, x0")]), - Var("NF",Imm(1)), Extract(63,63,PLUS(Var("#2",Imm(64)),Int(1,64))))]), -Jmps([Goto(Tid(740, "%000002e4"), Attrs([Attr("address","0x6E4"), -Attr("insn","b.eq #0x18")]), EQ(Var("ZF",Imm(1)),Int(1,1)), -Direct(Tid(738, "%000002e2"))), Goto(Tid(1_965, "%000007ad"), Attrs([]), - Int(1,1), Direct(Tid(1_416, "%00000588")))])), Blk(Tid(1_416, "%00000588"), - Attrs([Attr("address","0x6E8")]), Phis([]), -Defs([Def(Tid(1_419, "%0000058b"), Attrs([Attr("address","0x6E8"), -Attr("insn","adrp x1, #65536")]), Var("R1",Imm(64)), Int(65536,64)), -Def(Tid(1_426, "%00000592"), Attrs([Attr("address","0x6EC"), -Attr("insn","ldr x1, [x1, #0xfb8]")]), Var("R1",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R1",Imm(64)),Int(4024,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(1_431, "%00000597"), Attrs([Attr("address","0x6F0"), -Attr("insn","cbz x1, #0xc")]), EQ(Var("R1",Imm(64)),Int(0,64)), -Direct(Tid(738, "%000002e2"))), Goto(Tid(1_966, "%000007ae"), Attrs([]), - Int(1,1), Direct(Tid(1_435, "%0000059b")))])), Blk(Tid(738, "%000002e2"), - Attrs([Attr("address","0x6FC")]), Phis([]), Defs([]), -Jmps([Call(Tid(746, "%000002ea"), Attrs([Attr("address","0x6FC"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))])), -Blk(Tid(1_435, "%0000059b"), Attrs([Attr("address","0x6F4")]), Phis([]), -Defs([Def(Tid(1_439, "%0000059f"), Attrs([Attr("address","0x6F4"), -Attr("insn","mov x16, x1")]), Var("R16",Imm(64)), Var("R1",Imm(64)))]), -Jmps([Call(Tid(1_444, "%000005a4"), Attrs([Attr("address","0x6F8"), -Attr("insn","br x16")]), Int(1,1), (Indirect(Var("R16",Imm(64))),))]))])), -Sub(Tid(1_925, "@frame_dummy"), Attrs([Attr("c.proto","signed (*)(void)"), -Attr("address","0x790")]), "frame_dummy", Args([Arg(Tid(1_987, "%000007c3"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("frame_dummy_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(898, "@frame_dummy"), - Attrs([Attr("address","0x790")]), Phis([]), Defs([]), -Jmps([Call(Tid(900, "%00000384"), Attrs([Attr("address","0x790"), -Attr("insn","b #-0x90")]), Int(1,1), -(Direct(Tid(1_932, "@register_tm_clones")),))]))])), Sub(Tid(1_926, "@main"), - Attrs([Attr("c.proto","signed (*)(signed argc, const char** argv)"), -Attr("address","0x7DC")]), "main", Args([Arg(Tid(1_988, "%000007c4"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("main_argc",Imm(32)), -LOW(32,Var("R0",Imm(64))), In()), Arg(Tid(1_989, "%000007c5"), - Attrs([Attr("c.layout","**[char : 8]"), Attr("c.data","Top:u8 ptr ptr"), -Attr("c.type"," const char**")]), Var("main_argv",Imm(64)), -Var("R1",Imm(64)), Both()), Arg(Tid(1_990, "%000007c6"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("main_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(998, "@main"), - Attrs([Attr("address","0x7DC")]), Phis([]), -Defs([Def(Tid(1_002, "%000003ea"), Attrs([Attr("address","0x7DC"), -Attr("insn","stp x29, x30, [sp, #-0x30]!")]), Var("#4",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(18446744073709551568,64))), -Def(Tid(1_008, "%000003f0"), Attrs([Attr("address","0x7DC"), -Attr("insn","stp x29, x30, [sp, #-0x30]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("#4",Imm(64)),Var("R29",Imm(64)),LittleEndian(),64)), -Def(Tid(1_014, "%000003f6"), Attrs([Attr("address","0x7DC"), -Attr("insn","stp x29, x30, [sp, #-0x30]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("#4",Imm(64)),Int(8,64)),Var("R30",Imm(64)),LittleEndian(),64)), -Def(Tid(1_018, "%000003fa"), Attrs([Attr("address","0x7DC"), -Attr("insn","stp x29, x30, [sp, #-0x30]!")]), Var("R31",Imm(64)), -Var("#4",Imm(64))), Def(Tid(1_024, "%00000400"), - Attrs([Attr("address","0x7E0"), Attr("insn","mov x29, sp")]), - Var("R29",Imm(64)), Var("R31",Imm(64))), Def(Tid(1_032, "%00000408"), - Attrs([Attr("address","0x7E4"), Attr("insn","str w0, [sp, #0x1c]")]), - Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(28,64)),Extract(31,0,Var("R0",Imm(64))),LittleEndian(),32)), -Def(Tid(1_039, "%0000040f"), Attrs([Attr("address","0x7E8"), -Attr("insn","ldr w0, [sp, #0x1c]")]), Var("R0",Imm(64)), -UNSIGNED(64,Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(28,64)),LittleEndian(),32))), -Def(Tid(1_045, "%00000415"), Attrs([Attr("address","0x7EC"), -Attr("insn","cmp w0, #0x2")]), Var("#5",Imm(32)), -PLUS(Extract(31,0,Var("R0",Imm(64))),Int(4294967293,32))), -Def(Tid(1_050, "%0000041a"), Attrs([Attr("address","0x7EC"), -Attr("insn","cmp w0, #0x2")]), Var("VF",Imm(1)), -NEQ(SIGNED(33,PLUS(Var("#5",Imm(32)),Int(1,32))),PLUS(SIGNED(33,Extract(31,0,Var("R0",Imm(64)))),Int(8589934590,33)))), -Def(Tid(1_055, "%0000041f"), Attrs([Attr("address","0x7EC"), -Attr("insn","cmp w0, #0x2")]), Var("CF",Imm(1)), -NEQ(UNSIGNED(33,PLUS(Var("#5",Imm(32)),Int(1,32))),PLUS(UNSIGNED(33,Extract(31,0,Var("R0",Imm(64)))),Int(4294967294,33)))), -Def(Tid(1_059, "%00000423"), Attrs([Attr("address","0x7EC"), -Attr("insn","cmp w0, #0x2")]), Var("ZF",Imm(1)), -EQ(PLUS(Var("#5",Imm(32)),Int(1,32)),Int(0,32))), -Def(Tid(1_063, "%00000427"), Attrs([Attr("address","0x7EC"), -Attr("insn","cmp w0, #0x2")]), Var("NF",Imm(1)), -Extract(31,31,PLUS(Var("#5",Imm(32)),Int(1,32))))]), -Jmps([Goto(Tid(1_069, "%0000042d"), Attrs([Attr("address","0x7F0"), -Attr("insn","b.eq #0x4c")]), EQ(Var("ZF",Imm(1)),Int(1,1)), -Direct(Tid(1_067, "%0000042b"))), Goto(Tid(1_967, "%000007af"), Attrs([]), - Int(1,1), Direct(Tid(1_159, "%00000487")))])), Blk(Tid(1_067, "%0000042b"), - Attrs([Attr("address","0x83C")]), Phis([]), -Defs([Def(Tid(1_075, "%00000433"), Attrs([Attr("address","0x83C"), -Attr("insn","adrp x0, #65536")]), Var("R0",Imm(64)), Int(65536,64)), -Def(Tid(1_082, "%0000043a"), Attrs([Attr("address","0x840"), -Attr("insn","ldr x0, [x0, #0xff0]")]), Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(4080,64)),LittleEndian(),64)), -Def(Tid(1_090, "%00000442"), Attrs([Attr("address","0x844"), -Attr("insn","str x0, [sp, #0x28]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(40,64)),Var("R0",Imm(64)),LittleEndian(),64))]), -Jmps([Goto(Tid(1_095, "%00000447"), Attrs([Attr("address","0x848"), -Attr("insn","b #0x14")]), Int(1,1), Direct(Tid(1_093, "%00000445")))])), -Blk(Tid(1_159, "%00000487"), Attrs([Attr("address","0x7F4")]), Phis([]), -Defs([Def(Tid(1_164, "%0000048c"), Attrs([Attr("address","0x7F4"), -Attr("insn","ldr w0, [sp, #0x1c]")]), Var("R0",Imm(64)), -UNSIGNED(64,Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(28,64)),LittleEndian(),32))), -Def(Tid(1_170, "%00000492"), Attrs([Attr("address","0x7F8"), -Attr("insn","cmp w0, #0x2")]), Var("#6",Imm(32)), -PLUS(Extract(31,0,Var("R0",Imm(64))),Int(4294967293,32))), -Def(Tid(1_175, "%00000497"), Attrs([Attr("address","0x7F8"), -Attr("insn","cmp w0, #0x2")]), Var("VF",Imm(1)), -NEQ(SIGNED(33,PLUS(Var("#6",Imm(32)),Int(1,32))),PLUS(SIGNED(33,Extract(31,0,Var("R0",Imm(64)))),Int(8589934590,33)))), -Def(Tid(1_180, "%0000049c"), Attrs([Attr("address","0x7F8"), -Attr("insn","cmp w0, #0x2")]), Var("CF",Imm(1)), -NEQ(UNSIGNED(33,PLUS(Var("#6",Imm(32)),Int(1,32))),PLUS(UNSIGNED(33,Extract(31,0,Var("R0",Imm(64)))),Int(4294967294,33)))), -Def(Tid(1_184, "%000004a0"), Attrs([Attr("address","0x7F8"), -Attr("insn","cmp w0, #0x2")]), Var("ZF",Imm(1)), -EQ(PLUS(Var("#6",Imm(32)),Int(1,32)),Int(0,32))), -Def(Tid(1_188, "%000004a4"), Attrs([Attr("address","0x7F8"), -Attr("insn","cmp w0, #0x2")]), Var("NF",Imm(1)), -Extract(31,31,PLUS(Var("#6",Imm(32)),Int(1,32))))]), -Jmps([Goto(Tid(1_195, "%000004ab"), Attrs([Attr("address","0x7FC"), -Attr("insn","b.gt #0x50")]), - AND(EQ(Var("NF",Imm(1)),Var("VF",Imm(1))),EQ(Var("ZF",Imm(1)),Int(0,1))), -Direct(Tid(1_137, "%00000471"))), Goto(Tid(1_968, "%000007b0"), Attrs([]), - Int(1,1), Direct(Tid(1_199, "%000004af")))])), Blk(Tid(1_199, "%000004af"), - Attrs([Attr("address","0x800")]), Phis([]), -Defs([Def(Tid(1_204, "%000004b4"), Attrs([Attr("address","0x800"), -Attr("insn","ldr w0, [sp, #0x1c]")]), Var("R0",Imm(64)), -UNSIGNED(64,Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(28,64)),LittleEndian(),32))), -Def(Tid(1_210, "%000004ba"), Attrs([Attr("address","0x804"), -Attr("insn","cmp w0, #0x0")]), Var("#7",Imm(32)), -PLUS(Extract(31,0,Var("R0",Imm(64))),Int(4294967295,32))), -Def(Tid(1_215, "%000004bf"), Attrs([Attr("address","0x804"), -Attr("insn","cmp w0, #0x0")]), Var("VF",Imm(1)), -NEQ(SIGNED(33,PLUS(Var("#7",Imm(32)),Int(1,32))),PLUS(SIGNED(33,Extract(31,0,Var("R0",Imm(64)))),Int(0,33)))), -Def(Tid(1_220, "%000004c4"), Attrs([Attr("address","0x804"), -Attr("insn","cmp w0, #0x0")]), Var("CF",Imm(1)), -NEQ(UNSIGNED(33,PLUS(Var("#7",Imm(32)),Int(1,32))),PLUS(UNSIGNED(33,Extract(31,0,Var("R0",Imm(64)))),Int(4294967296,33)))), -Def(Tid(1_224, "%000004c8"), Attrs([Attr("address","0x804"), -Attr("insn","cmp w0, #0x0")]), Var("ZF",Imm(1)), -EQ(PLUS(Var("#7",Imm(32)),Int(1,32)),Int(0,32))), -Def(Tid(1_228, "%000004cc"), Attrs([Attr("address","0x804"), -Attr("insn","cmp w0, #0x0")]), Var("NF",Imm(1)), -Extract(31,31,PLUS(Var("#7",Imm(32)),Int(1,32))))]), -Jmps([Goto(Tid(1_234, "%000004d2"), Attrs([Attr("address","0x808"), -Attr("insn","b.eq #0x14")]), EQ(Var("ZF",Imm(1)),Int(1,1)), -Direct(Tid(1_232, "%000004d0"))), Goto(Tid(1_969, "%000007b1"), Attrs([]), - Int(1,1), Direct(Tid(1_285, "%00000505")))])), Blk(Tid(1_232, "%000004d0"), - Attrs([Attr("address","0x81C")]), Phis([]), -Defs([Def(Tid(1_240, "%000004d8"), Attrs([Attr("address","0x81C"), -Attr("insn","adrp x0, #65536")]), Var("R0",Imm(64)), Int(65536,64)), -Def(Tid(1_247, "%000004df"), Attrs([Attr("address","0x820"), -Attr("insn","ldr x0, [x0, #0xfd8]")]), Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(4056,64)),LittleEndian(),64)), -Def(Tid(1_255, "%000004e7"), Attrs([Attr("address","0x824"), -Attr("insn","str x0, [sp, #0x28]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(40,64)),Var("R0",Imm(64)),LittleEndian(),64))]), -Jmps([Goto(Tid(1_259, "%000004eb"), Attrs([Attr("address","0x828"), -Attr("insn","b #0x34")]), Int(1,1), Direct(Tid(1_093, "%00000445")))])), -Blk(Tid(1_285, "%00000505"), Attrs([Attr("address","0x80C")]), Phis([]), -Defs([Def(Tid(1_290, "%0000050a"), Attrs([Attr("address","0x80C"), -Attr("insn","ldr w0, [sp, #0x1c]")]), Var("R0",Imm(64)), -UNSIGNED(64,Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(28,64)),LittleEndian(),32))), -Def(Tid(1_296, "%00000510"), Attrs([Attr("address","0x810"), -Attr("insn","cmp w0, #0x1")]), Var("#8",Imm(32)), -PLUS(Extract(31,0,Var("R0",Imm(64))),Int(4294967294,32))), -Def(Tid(1_301, "%00000515"), Attrs([Attr("address","0x810"), -Attr("insn","cmp w0, #0x1")]), Var("VF",Imm(1)), -NEQ(SIGNED(33,PLUS(Var("#8",Imm(32)),Int(1,32))),PLUS(SIGNED(33,Extract(31,0,Var("R0",Imm(64)))),Int(8589934591,33)))), -Def(Tid(1_306, "%0000051a"), Attrs([Attr("address","0x810"), -Attr("insn","cmp w0, #0x1")]), Var("CF",Imm(1)), -NEQ(UNSIGNED(33,PLUS(Var("#8",Imm(32)),Int(1,32))),PLUS(UNSIGNED(33,Extract(31,0,Var("R0",Imm(64)))),Int(4294967295,33)))), -Def(Tid(1_310, "%0000051e"), Attrs([Attr("address","0x810"), -Attr("insn","cmp w0, #0x1")]), Var("ZF",Imm(1)), -EQ(PLUS(Var("#8",Imm(32)),Int(1,32)),Int(0,32))), -Def(Tid(1_314, "%00000522"), Attrs([Attr("address","0x810"), -Attr("insn","cmp w0, #0x1")]), Var("NF",Imm(1)), -Extract(31,31,PLUS(Var("#8",Imm(32)),Int(1,32))))]), -Jmps([Goto(Tid(1_319, "%00000527"), Attrs([Attr("address","0x814"), -Attr("insn","b.eq #0x18")]), EQ(Var("ZF",Imm(1)),Int(1,1)), -Direct(Tid(1_261, "%000004ed"))), Goto(Tid(1_970, "%000007b2"), Attrs([]), - Int(1,1), Direct(Tid(1_323, "%0000052b")))])), Blk(Tid(1_261, "%000004ed"), - Attrs([Attr("address","0x82C")]), Phis([]), -Defs([Def(Tid(1_264, "%000004f0"), Attrs([Attr("address","0x82C"), -Attr("insn","adrp x0, #65536")]), Var("R0",Imm(64)), Int(65536,64)), -Def(Tid(1_271, "%000004f7"), Attrs([Attr("address","0x830"), -Attr("insn","ldr x0, [x0, #0xfe0]")]), Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(4064,64)),LittleEndian(),64)), -Def(Tid(1_279, "%000004ff"), Attrs([Attr("address","0x834"), -Attr("insn","str x0, [sp, #0x28]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(40,64)),Var("R0",Imm(64)),LittleEndian(),64))]), -Jmps([Goto(Tid(1_283, "%00000503"), Attrs([Attr("address","0x838"), -Attr("insn","b #0x24")]), Int(1,1), Direct(Tid(1_093, "%00000445")))])), -Blk(Tid(1_323, "%0000052b"), Attrs([Attr("address","0x818")]), Phis([]), -Defs([]), Jmps([Goto(Tid(1_325, "%0000052d"), Attrs([Attr("address","0x818"), -Attr("insn","b #0x34")]), Int(1,1), Direct(Tid(1_137, "%00000471")))])), -Blk(Tid(1_137, "%00000471"), Attrs([Attr("address","0x84C")]), Phis([]), -Defs([Def(Tid(1_140, "%00000474"), Attrs([Attr("address","0x84C"), -Attr("insn","adrp x0, #65536")]), Var("R0",Imm(64)), Int(65536,64)), -Def(Tid(1_147, "%0000047b"), Attrs([Attr("address","0x850"), -Attr("insn","ldr x0, [x0, #0xfd8]")]), Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(4056,64)),LittleEndian(),64)), -Def(Tid(1_155, "%00000483"), Attrs([Attr("address","0x854"), -Attr("insn","str x0, [sp, #0x28]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(40,64)),Var("R0",Imm(64)),LittleEndian(),64))]), -Jmps([Goto(Tid(1_971, "%000007b3"), Attrs([]), Int(1,1), -Direct(Tid(1_093, "%00000445")))])), Blk(Tid(1_093, "%00000445"), - Attrs([Attr("address","0x85C")]), Phis([]), -Defs([Def(Tid(1_101, "%0000044d"), Attrs([Attr("address","0x85C"), -Attr("insn","ldr x0, [sp, #0x28]")]), Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(40,64)),LittleEndian(),64)), -Def(Tid(1_106, "%00000452"), Attrs([Attr("address","0x860"), -Attr("insn","blr x0")]), Var("R30",Imm(64)), Int(2148,64))]), -Jmps([Call(Tid(1_109, "%00000455"), Attrs([Attr("address","0x860"), -Attr("insn","blr x0")]), Int(1,1), -(Indirect(Var("R0",Imm(64))),Direct(Tid(1_111, "%00000457"))))])), -Blk(Tid(1_111, "%00000457"), Attrs([Attr("address","0x864")]), Phis([]), -Defs([Def(Tid(1_114, "%0000045a"), Attrs([Attr("address","0x864"), -Attr("insn","mov w0, #0x0")]), Var("R0",Imm(64)), Int(0,64)), -Def(Tid(1_121, "%00000461"), Attrs([Attr("address","0x868"), -Attr("insn","ldp x29, x30, [sp], #0x30")]), Var("R29",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(1_126, "%00000466"), Attrs([Attr("address","0x868"), -Attr("insn","ldp x29, x30, [sp], #0x30")]), Var("R30",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(1_130, "%0000046a"), Attrs([Attr("address","0x868"), -Attr("insn","ldp x29, x30, [sp], #0x30")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(48,64)))]), Jmps([Call(Tid(1_135, "%0000046f"), - Attrs([Attr("address","0x86C"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), -Sub(Tid(1_932, "@register_tm_clones"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x700")]), - "register_tm_clones", Args([Arg(Tid(1_991, "%000007c7"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("register_tm_clones_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(748, "@register_tm_clones"), Attrs([Attr("address","0x700")]), - Phis([]), Defs([Def(Tid(751, "%000002ef"), Attrs([Attr("address","0x700"), -Attr("insn","adrp x0, #69632")]), Var("R0",Imm(64)), Int(69632,64)), -Def(Tid(757, "%000002f5"), Attrs([Attr("address","0x704"), -Attr("insn","add x0, x0, #0x10")]), Var("R0",Imm(64)), -PLUS(Var("R0",Imm(64)),Int(16,64))), Def(Tid(762, "%000002fa"), - Attrs([Attr("address","0x708"), Attr("insn","adrp x1, #69632")]), - Var("R1",Imm(64)), Int(69632,64)), Def(Tid(768, "%00000300"), - Attrs([Attr("address","0x70C"), Attr("insn","add x1, x1, #0x10")]), - Var("R1",Imm(64)), PLUS(Var("R1",Imm(64)),Int(16,64))), -Def(Tid(775, "%00000307"), Attrs([Attr("address","0x710"), -Attr("insn","sub x1, x1, x0")]), Var("R1",Imm(64)), -PLUS(PLUS(Var("R1",Imm(64)),NOT(Var("R0",Imm(64)))),Int(1,64))), -Def(Tid(781, "%0000030d"), Attrs([Attr("address","0x714"), -Attr("insn","lsr x2, x1, #63")]), Var("R2",Imm(64)), -Concat(Int(0,63),Extract(63,63,Var("R1",Imm(64))))), -Def(Tid(788, "%00000314"), Attrs([Attr("address","0x718"), -Attr("insn","add x1, x2, x1, asr #3")]), Var("R1",Imm(64)), -PLUS(Var("R2",Imm(64)),ARSHIFT(Var("R1",Imm(64)),Int(3,3)))), -Def(Tid(794, "%0000031a"), Attrs([Attr("address","0x71C"), -Attr("insn","asr x1, x1, #1")]), Var("R1",Imm(64)), -SIGNED(64,Extract(63,1,Var("R1",Imm(64)))))]), -Jmps([Goto(Tid(800, "%00000320"), Attrs([Attr("address","0x720"), -Attr("insn","cbz x1, #0x18")]), EQ(Var("R1",Imm(64)),Int(0,64)), -Direct(Tid(798, "%0000031e"))), Goto(Tid(1_972, "%000007b4"), Attrs([]), - Int(1,1), Direct(Tid(1_386, "%0000056a")))])), Blk(Tid(1_386, "%0000056a"), - Attrs([Attr("address","0x724")]), Phis([]), -Defs([Def(Tid(1_389, "%0000056d"), Attrs([Attr("address","0x724"), -Attr("insn","adrp x2, #65536")]), Var("R2",Imm(64)), Int(65536,64)), -Def(Tid(1_396, "%00000574"), Attrs([Attr("address","0x728"), -Attr("insn","ldr x2, [x2, #0xff8]")]), Var("R2",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R2",Imm(64)),Int(4088,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(1_401, "%00000579"), Attrs([Attr("address","0x72C"), -Attr("insn","cbz x2, #0xc")]), EQ(Var("R2",Imm(64)),Int(0,64)), -Direct(Tid(798, "%0000031e"))), Goto(Tid(1_973, "%000007b5"), Attrs([]), - Int(1,1), Direct(Tid(1_405, "%0000057d")))])), Blk(Tid(798, "%0000031e"), - Attrs([Attr("address","0x738")]), Phis([]), Defs([]), -Jmps([Call(Tid(806, "%00000326"), Attrs([Attr("address","0x738"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))])), -Blk(Tid(1_405, "%0000057d"), Attrs([Attr("address","0x730")]), Phis([]), -Defs([Def(Tid(1_409, "%00000581"), Attrs([Attr("address","0x730"), -Attr("insn","mov x16, x2")]), Var("R16",Imm(64)), Var("R2",Imm(64)))]), -Jmps([Call(Tid(1_414, "%00000586"), Attrs([Attr("address","0x734"), -Attr("insn","br x16")]), Int(1,1), (Indirect(Var("R16",Imm(64))),))]))])), -Sub(Tid(1_935, "@set_seven"), Attrs([Attr("c.proto","signed (*)(void)"), -Attr("address","0x7C4")]), "set_seven", Args([Arg(Tid(1_992, "%000007c8"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("set_seven_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(966, "@set_seven"), - Attrs([Attr("address","0x7C4")]), Phis([]), Defs([Def(Tid(969, "%000003c9"), - Attrs([Attr("address","0x7C4"), Attr("insn","adrp x0, #65536")]), - Var("R0",Imm(64)), Int(65536,64)), Def(Tid(976, "%000003d0"), - Attrs([Attr("address","0x7C8"), Attr("insn","ldr x0, [x0, #0xfc8]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(4040,64)),LittleEndian(),64)), -Def(Tid(981, "%000003d5"), Attrs([Attr("address","0x7CC"), -Attr("insn","mov w1, #0x7")]), Var("R1",Imm(64)), Int(7,64)), -Def(Tid(989, "%000003dd"), Attrs([Attr("address","0x7D0"), -Attr("insn","str w1, [x0]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("R0",Imm(64)),Extract(31,0,Var("R1",Imm(64))),LittleEndian(),32))]), -Jmps([Call(Tid(996, "%000003e4"), Attrs([Attr("address","0x7D8"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))]))])), -Sub(Tid(1_936, "@set_six"), Attrs([Attr("c.proto","signed (*)(void)"), -Attr("address","0x7AC")]), "set_six", Args([Arg(Tid(1_993, "%000007c9"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("set_six_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(934, "@set_six"), - Attrs([Attr("address","0x7AC")]), Phis([]), Defs([Def(Tid(937, "%000003a9"), - Attrs([Attr("address","0x7AC"), Attr("insn","adrp x0, #65536")]), - Var("R0",Imm(64)), Int(65536,64)), Def(Tid(944, "%000003b0"), - Attrs([Attr("address","0x7B0"), Attr("insn","ldr x0, [x0, #0xfc8]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(4040,64)),LittleEndian(),64)), -Def(Tid(949, "%000003b5"), Attrs([Attr("address","0x7B4"), -Attr("insn","mov w1, #0x6")]), Var("R1",Imm(64)), Int(6,64)), -Def(Tid(957, "%000003bd"), Attrs([Attr("address","0x7B8"), -Attr("insn","str w1, [x0]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("R0",Imm(64)),Extract(31,0,Var("R1",Imm(64))),LittleEndian(),32))]), -Jmps([Call(Tid(964, "%000003c4"), Attrs([Attr("address","0x7C0"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))]))])), -Sub(Tid(1_937, "@set_two"), Attrs([Attr("c.proto","signed (*)(void)"), -Attr("address","0x794")]), "set_two", Args([Arg(Tid(1_994, "%000007ca"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("set_two_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(902, "@set_two"), - Attrs([Attr("address","0x794")]), Phis([]), Defs([Def(Tid(905, "%00000389"), - Attrs([Attr("address","0x794"), Attr("insn","adrp x0, #65536")]), - Var("R0",Imm(64)), Int(65536,64)), Def(Tid(912, "%00000390"), - Attrs([Attr("address","0x798"), Attr("insn","ldr x0, [x0, #0xfc8]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(4040,64)),LittleEndian(),64)), -Def(Tid(917, "%00000395"), Attrs([Attr("address","0x79C"), -Attr("insn","mov w1, #0x2")]), Var("R1",Imm(64)), Int(2,64)), -Def(Tid(925, "%0000039d"), Attrs([Attr("address","0x7A0"), -Attr("insn","str w1, [x0]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("R0",Imm(64)),Extract(31,0,Var("R1",Imm(64))),LittleEndian(),32))]), -Jmps([Call(Tid(932, "%000003a4"), Attrs([Attr("address","0x7A8"), -Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))]))]))) \ No newline at end of file diff --git a/src/test/indirect_calls/functionpointer/gcc_pic/functionpointer.bir b/src/test/indirect_calls/functionpointer/gcc_pic/functionpointer.bir deleted file mode 100644 index fb9dfab75..000000000 --- a/src/test/indirect_calls/functionpointer/gcc_pic/functionpointer.bir +++ /dev/null @@ -1,335 +0,0 @@ -000007b6: program -00000774: sub __cxa_finalize(__cxa_finalize_result) -000007b7: __cxa_finalize_result :: out u32 = low:32[R0] - -00000566: -0000065e: R16 := 0x10000 -00000665: R17 := mem[R16 + 0xF98, el]:u64 -0000066b: R16 := R16 + 0xF98 -00000670: call R17 with noreturn - -00000775: sub __do_global_dtors_aux(__do_global_dtors_aux_result) -000007b8: __do_global_dtors_aux_result :: out u32 = low:32[R0] - -0000032a: -0000032e: #3 := R31 - 0x20 -00000334: mem := mem with [#3, el]:u64 <- R29 -0000033a: mem := mem with [#3 + 8, el]:u64 <- R30 -0000033e: R31 := #3 -00000344: R29 := R31 -0000034c: mem := mem with [R31 + 0x10, el]:u64 <- R19 -00000351: R19 := 0x11000 -00000358: R0 := pad:64[mem[R19 + 0x10]] -0000035f: when 31:0[R0] <> 0 goto %0000035d -000007a7: goto %0000052f - -0000052f: -00000532: R0 := 0x10000 -00000539: R0 := mem[R0 + 0xFC0, el]:u64 -0000053f: when R0 = 0 goto %0000053d -000007a8: goto %00000556 - -00000556: -00000559: R0 := 0x11000 -00000560: R0 := mem[R0 + 8, el]:u64 -00000565: R30 := 0x770 -00000568: call @__cxa_finalize with return %0000053d - -0000053d: -00000545: R30 := 0x774 -00000547: call @deregister_tm_clones with return %00000549 - -00000549: -0000054c: R0 := 1 -00000554: mem := mem with [R19 + 0x10] <- 7:0[R0] -000007a9: goto %0000035d - -0000035d: -00000367: R19 := mem[R31 + 0x10, el]:u64 -0000036e: R29 := mem[R31, el]:u64 -00000373: R30 := mem[R31 + 8, el]:u64 -00000377: R31 := R31 + 0x20 -0000037c: call R30 with noreturn - -00000779: sub __libc_start_main(__libc_start_main_main, __libc_start_main_arg2, __libc_start_main_arg3, __libc_start_main_auxv, __libc_start_main_result) -000007b9: __libc_start_main_main :: in u64 = R0 -000007ba: __libc_start_main_arg2 :: in u32 = low:32[R1] -000007bb: __libc_start_main_arg3 :: in out u64 = R2 -000007bc: __libc_start_main_auxv :: in out u64 = R3 -000007bd: __libc_start_main_result :: out u32 = low:32[R0] - -00000283: -00000648: R16 := 0x10000 -0000064f: R17 := mem[R16 + 0xF90, el]:u64 -00000655: R16 := R16 + 0xF90 -0000065a: call R17 with noreturn - -0000077a: sub _fini(_fini_result) -000007be: _fini_result :: out u32 = low:32[R0] - -0000001f: -00000025: #0 := R31 - 0x10 -0000002b: mem := mem with [#0, el]:u64 <- R29 -00000031: mem := mem with [#0 + 8, el]:u64 <- R30 -00000035: R31 := #0 -0000003b: R29 := R31 -00000042: R29 := mem[R31, el]:u64 -00000047: R30 := mem[R31 + 8, el]:u64 -0000004b: R31 := R31 + 0x10 -00000050: call R30 with noreturn - -0000077b: sub _init(_init_result) -000007bf: _init_result :: out u32 = low:32[R0] - -000006b8: -000006be: #10 := R31 - 0x10 -000006c4: mem := mem with [#10, el]:u64 <- R29 -000006ca: mem := mem with [#10 + 8, el]:u64 <- R30 -000006ce: R31 := #10 -000006d4: R29 := R31 -000006d9: R30 := 0x5F0 -000006db: call @call_weak_fn with return %000006dd - -000006dd: -000006e2: R29 := mem[R31, el]:u64 -000006e7: R30 := mem[R31 + 8, el]:u64 -000006eb: R31 := R31 + 0x10 -000006f0: call R30 with noreturn - -0000077c: sub _start(_start_result) -000007c0: _start_result :: out u32 = low:32[R0] - -00000244: -00000249: R29 := 0 -0000024e: R30 := 0 -00000254: R5 := R0 -0000025b: R1 := mem[R31, el]:u64 -00000261: R2 := R31 + 8 -00000267: R6 := R31 -0000026c: R0 := 0x10000 -00000273: R0 := mem[R0 + 0xFE8, el]:u64 -00000278: R3 := 0 -0000027d: R4 := 0 -00000282: R30 := 0x6B0 -00000285: call @__libc_start_main with return %00000287 - -00000287: -0000028a: R30 := 0x6B4 -0000028d: call @abort with return %000007aa - -000007aa: -000007ab: call @call_weak_fn with noreturn - -0000077f: sub abort() - - -0000028b: -0000068a: R16 := 0x10000 -00000691: R17 := mem[R16 + 0xFA8, el]:u64 -00000697: R16 := R16 + 0xFA8 -0000069c: call R17 with noreturn - -00000780: sub call_weak_fn(call_weak_fn_result) -000007c1: call_weak_fn_result :: out u32 = low:32[R0] - -0000028f: -00000292: R0 := 0x10000 -00000299: R0 := mem[R0 + 0xFD0, el]:u64 -0000029f: when R0 = 0 goto %0000029d -000007ac: goto %000005a6 - -0000029d: -000002a5: call R30 with noreturn - -000005a6: -000005a9: goto @__gmon_start__ - -000005a7: -00000674: R16 := 0x10000 -0000067b: R17 := mem[R16 + 0xFA0, el]:u64 -00000681: R16 := R16 + 0xFA0 -00000686: call R17 with noreturn - -00000782: sub deregister_tm_clones(deregister_tm_clones_result) -000007c2: deregister_tm_clones_result :: out u32 = low:32[R0] - -000002ab: -000002ae: R0 := 0x11000 -000002b4: R0 := R0 + 0x10 -000002b9: R1 := 0x11000 -000002bf: R1 := R1 + 0x10 -000002c5: #1 := ~R0 -000002ca: #2 := R1 + ~R0 -000002d0: VF := extend:65[#2 + 1] <> extend:65[R1] + extend:65[#1] + 1 -000002d6: CF := pad:65[#2 + 1] <> pad:65[R1] + pad:65[#1] + 1 -000002da: ZF := #2 + 1 = 0 -000002de: NF := 63:63[#2 + 1] -000002e4: when ZF goto %000002e2 -000007ad: goto %00000588 - -00000588: -0000058b: R1 := 0x10000 -00000592: R1 := mem[R1 + 0xFB8, el]:u64 -00000597: when R1 = 0 goto %000002e2 -000007ae: goto %0000059b - -000002e2: -000002ea: call R30 with noreturn - -0000059b: -0000059f: R16 := R1 -000005a4: call R16 with noreturn - -00000785: sub frame_dummy(frame_dummy_result) -000007c3: frame_dummy_result :: out u32 = low:32[R0] - -00000382: -00000384: call @register_tm_clones with noreturn - -00000786: sub main(main_argc, main_argv, main_result) -000007c4: main_argc :: in u32 = low:32[R0] -000007c5: main_argv :: in out u64 = R1 -000007c6: main_result :: out u32 = low:32[R0] - -000003e6: -000003ea: #4 := R31 - 0x30 -000003f0: mem := mem with [#4, el]:u64 <- R29 -000003f6: mem := mem with [#4 + 8, el]:u64 <- R30 -000003fa: R31 := #4 -00000400: R29 := R31 -00000408: mem := mem with [R31 + 0x1C, el]:u32 <- 31:0[R0] -0000040f: R0 := pad:64[mem[R31 + 0x1C, el]:u32] -00000415: #5 := 31:0[R0] - 3 -0000041a: VF := extend:33[#5 + 1] <> extend:33[31:0[R0]] - 2 -0000041f: CF := pad:33[#5 + 1] <> pad:33[31:0[R0]] + 0xFFFFFFFE -00000423: ZF := #5 + 1 = 0 -00000427: NF := 31:31[#5 + 1] -0000042d: when ZF goto %0000042b -000007af: goto %00000487 - -0000042b: -00000433: R0 := 0x10000 -0000043a: R0 := mem[R0 + 0xFF0, el]:u64 -00000442: mem := mem with [R31 + 0x28, el]:u64 <- R0 -00000447: goto %00000445 - -00000487: -0000048c: R0 := pad:64[mem[R31 + 0x1C, el]:u32] -00000492: #6 := 31:0[R0] - 3 -00000497: VF := extend:33[#6 + 1] <> extend:33[31:0[R0]] - 2 -0000049c: CF := pad:33[#6 + 1] <> pad:33[31:0[R0]] + 0xFFFFFFFE -000004a0: ZF := #6 + 1 = 0 -000004a4: NF := 31:31[#6 + 1] -000004ab: when NF = VF & ~ZF goto %00000471 -000007b0: goto %000004af - -000004af: -000004b4: R0 := pad:64[mem[R31 + 0x1C, el]:u32] -000004ba: #7 := 31:0[R0] - 1 -000004bf: VF := extend:33[#7 + 1] <> extend:33[31:0[R0]] + 0 -000004c4: CF := pad:33[#7 + 1] <> pad:33[31:0[R0]] - 0x100000000 -000004c8: ZF := #7 + 1 = 0 -000004cc: NF := 31:31[#7 + 1] -000004d2: when ZF goto %000004d0 -000007b1: goto %00000505 - -000004d0: -000004d8: R0 := 0x10000 -000004df: R0 := mem[R0 + 0xFD8, el]:u64 -000004e7: mem := mem with [R31 + 0x28, el]:u64 <- R0 -000004eb: goto %00000445 - -00000505: -0000050a: R0 := pad:64[mem[R31 + 0x1C, el]:u32] -00000510: #8 := 31:0[R0] - 2 -00000515: VF := extend:33[#8 + 1] <> extend:33[31:0[R0]] - 1 -0000051a: CF := pad:33[#8 + 1] <> pad:33[31:0[R0]] + 0xFFFFFFFF -0000051e: ZF := #8 + 1 = 0 -00000522: NF := 31:31[#8 + 1] -00000527: when ZF goto %000004ed -000007b2: goto %0000052b - -000004ed: -000004f0: R0 := 0x10000 -000004f7: R0 := mem[R0 + 0xFE0, el]:u64 -000004ff: mem := mem with [R31 + 0x28, el]:u64 <- R0 -00000503: goto %00000445 - -0000052b: -0000052d: goto %00000471 - -00000471: -00000474: R0 := 0x10000 -0000047b: R0 := mem[R0 + 0xFD8, el]:u64 -00000483: mem := mem with [R31 + 0x28, el]:u64 <- R0 -000007b3: goto %00000445 - -00000445: -0000044d: R0 := mem[R31 + 0x28, el]:u64 -00000452: R30 := 0x864 -00000455: call R0 with return %00000457 - -00000457: -0000045a: R0 := 0 -00000461: R29 := mem[R31, el]:u64 -00000466: R30 := mem[R31 + 8, el]:u64 -0000046a: R31 := R31 + 0x30 -0000046f: call R30 with noreturn - -0000078c: sub register_tm_clones(register_tm_clones_result) -000007c7: register_tm_clones_result :: out u32 = low:32[R0] - -000002ec: -000002ef: R0 := 0x11000 -000002f5: R0 := R0 + 0x10 -000002fa: R1 := 0x11000 -00000300: R1 := R1 + 0x10 -00000307: R1 := R1 + ~R0 + 1 -0000030d: R2 := 0.63:63[R1] -00000314: R1 := R2 + (R1 ~>> 3) -0000031a: R1 := extend:64[63:1[R1]] -00000320: when R1 = 0 goto %0000031e -000007b4: goto %0000056a - -0000056a: -0000056d: R2 := 0x10000 -00000574: R2 := mem[R2 + 0xFF8, el]:u64 -00000579: when R2 = 0 goto %0000031e -000007b5: goto %0000057d - -0000031e: -00000326: call R30 with noreturn - -0000057d: -00000581: R16 := R2 -00000586: call R16 with noreturn - -0000078f: sub set_seven(set_seven_result) -000007c8: set_seven_result :: out u32 = low:32[R0] - -000003c6: -000003c9: R0 := 0x10000 -000003d0: R0 := mem[R0 + 0xFC8, el]:u64 -000003d5: R1 := 7 -000003dd: mem := mem with [R0, el]:u32 <- 31:0[R1] -000003e4: call R30 with noreturn - -00000790: sub set_six(set_six_result) -000007c9: set_six_result :: out u32 = low:32[R0] - -000003a6: -000003a9: R0 := 0x10000 -000003b0: R0 := mem[R0 + 0xFC8, el]:u64 -000003b5: R1 := 6 -000003bd: mem := mem with [R0, el]:u32 <- 31:0[R1] -000003c4: call R30 with noreturn - -00000791: sub set_two(set_two_result) -000007ca: set_two_result :: out u32 = low:32[R0] - -00000386: -00000389: R0 := 0x10000 -00000390: R0 := mem[R0 + 0xFC8, el]:u64 -00000395: R1 := 2 -0000039d: mem := mem with [R0, el]:u32 <- 31:0[R1] -000003a4: call R30 with noreturn diff --git a/src/test/indirect_calls/functionpointer/gcc_pic/functionpointer.md5sum b/src/test/indirect_calls/functionpointer/gcc_pic/functionpointer.md5sum new file mode 100644 index 000000000..90773bbbf --- /dev/null +++ b/src/test/indirect_calls/functionpointer/gcc_pic/functionpointer.md5sum @@ -0,0 +1,4 @@ +fa4e1eeb3e808a9ef6dc2cd1f5e76714 indirect_calls/functionpointer/gcc_pic/a.out +b763d244a0125710048300c0332de1dd indirect_calls/functionpointer/gcc_pic/functionpointer.relf +52a2af77ac83f3a8ab9f1bee9b396679 indirect_calls/functionpointer/gcc_pic/functionpointer.adt +df83c01d368ba3aea3194cf79e3e93bf indirect_calls/functionpointer/gcc_pic/functionpointer.bir diff --git a/src/test/indirect_calls/functionpointer/gcc_pic/functionpointer.relf b/src/test/indirect_calls/functionpointer/gcc_pic/functionpointer.relf deleted file mode 100644 index b9ea2435a..000000000 --- a/src/test/indirect_calls/functionpointer/gcc_pic/functionpointer.relf +++ /dev/null @@ -1,128 +0,0 @@ - -Relocation section '.rela.dyn' at offset 0x460 contains 12 entries: - Offset Info Type Symbol's Value Symbol's Name + Addend -0000000000010d78 0000000000000403 R_AARCH64_RELATIVE 790 -0000000000010d80 0000000000000403 R_AARCH64_RELATIVE 740 -0000000000010fc8 0000000000000403 R_AARCH64_RELATIVE 11014 -0000000000010fd8 0000000000000403 R_AARCH64_RELATIVE 794 -0000000000010fe0 0000000000000403 R_AARCH64_RELATIVE 7ac -0000000000010fe8 0000000000000403 R_AARCH64_RELATIVE 7dc -0000000000010ff0 0000000000000403 R_AARCH64_RELATIVE 7c4 -0000000000011008 0000000000000403 R_AARCH64_RELATIVE 11008 -0000000000010fb8 0000000400000401 R_AARCH64_GLOB_DAT 0000000000000000 _ITM_deregisterTMCloneTable + 0 -0000000000010fc0 0000000500000401 R_AARCH64_GLOB_DAT 0000000000000000 __cxa_finalize@GLIBC_2.17 + 0 -0000000000010fd0 0000000600000401 R_AARCH64_GLOB_DAT 0000000000000000 __gmon_start__ + 0 -0000000000010ff8 0000000800000401 R_AARCH64_GLOB_DAT 0000000000000000 _ITM_registerTMCloneTable + 0 - -Relocation section '.rela.plt' at offset 0x580 contains 4 entries: - Offset Info Type Symbol's Value Symbol's Name + Addend -0000000000010f90 0000000300000402 R_AARCH64_JUMP_SLOT 0000000000000000 __libc_start_main@GLIBC_2.34 + 0 -0000000000010f98 0000000500000402 R_AARCH64_JUMP_SLOT 0000000000000000 __cxa_finalize@GLIBC_2.17 + 0 -0000000000010fa0 0000000600000402 R_AARCH64_JUMP_SLOT 0000000000000000 __gmon_start__ + 0 -0000000000010fa8 0000000700000402 R_AARCH64_JUMP_SLOT 0000000000000000 abort@GLIBC_2.17 + 0 - -Symbol table '.dynsym' contains 9 entries: - Num: Value Size Type Bind Vis Ndx Name - 0: 0000000000000000 0 NOTYPE LOCAL DEFAULT UND - 1: 00000000000005e0 0 SECTION LOCAL DEFAULT 11 .init - 2: 0000000000011000 0 SECTION LOCAL DEFAULT 22 .data - 3: 0000000000000000 0 FUNC GLOBAL DEFAULT UND __libc_start_main@GLIBC_2.34 (2) - 4: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_deregisterTMCloneTable - 5: 0000000000000000 0 FUNC WEAK DEFAULT UND __cxa_finalize@GLIBC_2.17 (3) - 6: 0000000000000000 0 NOTYPE WEAK DEFAULT UND __gmon_start__ - 7: 0000000000000000 0 FUNC GLOBAL DEFAULT UND abort@GLIBC_2.17 (3) - 8: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_registerTMCloneTable - -Symbol table '.symtab' contains 91 entries: - Num: Value Size Type Bind Vis Ndx Name - 0: 0000000000000000 0 NOTYPE LOCAL DEFAULT UND - 1: 0000000000000238 0 SECTION LOCAL DEFAULT 1 .interp - 2: 0000000000000254 0 SECTION LOCAL DEFAULT 2 .note.gnu.build-id - 3: 0000000000000278 0 SECTION LOCAL DEFAULT 3 .note.ABI-tag - 4: 0000000000000298 0 SECTION LOCAL DEFAULT 4 .gnu.hash - 5: 00000000000002b8 0 SECTION LOCAL DEFAULT 5 .dynsym - 6: 0000000000000390 0 SECTION LOCAL DEFAULT 6 .dynstr - 7: 000000000000041e 0 SECTION LOCAL DEFAULT 7 .gnu.version - 8: 0000000000000430 0 SECTION LOCAL DEFAULT 8 .gnu.version_r - 9: 0000000000000460 0 SECTION LOCAL DEFAULT 9 .rela.dyn - 10: 0000000000000580 0 SECTION LOCAL DEFAULT 10 .rela.plt - 11: 00000000000005e0 0 SECTION LOCAL DEFAULT 11 .init - 12: 0000000000000600 0 SECTION LOCAL DEFAULT 12 .plt - 13: 0000000000000680 0 SECTION LOCAL DEFAULT 13 .text - 14: 0000000000000870 0 SECTION LOCAL DEFAULT 14 .fini - 15: 0000000000000884 0 SECTION LOCAL DEFAULT 15 .rodata - 16: 0000000000000888 0 SECTION LOCAL DEFAULT 16 .eh_frame_hdr - 17: 00000000000008e0 0 SECTION LOCAL DEFAULT 17 .eh_frame - 18: 0000000000010d78 0 SECTION LOCAL DEFAULT 18 .init_array - 19: 0000000000010d80 0 SECTION LOCAL DEFAULT 19 .fini_array - 20: 0000000000010d88 0 SECTION LOCAL DEFAULT 20 .dynamic - 21: 0000000000010f78 0 SECTION LOCAL DEFAULT 21 .got - 22: 0000000000011000 0 SECTION LOCAL DEFAULT 22 .data - 23: 0000000000011010 0 SECTION LOCAL DEFAULT 23 .bss - 24: 0000000000000000 0 SECTION LOCAL DEFAULT 24 .comment - 25: 0000000000000000 0 FILE LOCAL DEFAULT ABS Scrt1.o - 26: 0000000000000278 0 NOTYPE LOCAL DEFAULT 3 $d - 27: 0000000000000278 32 OBJECT LOCAL DEFAULT 3 __abi_tag - 28: 0000000000000680 0 NOTYPE LOCAL DEFAULT 13 $x - 29: 00000000000008f4 0 NOTYPE LOCAL DEFAULT 17 $d - 30: 0000000000000884 0 NOTYPE LOCAL DEFAULT 15 $d - 31: 0000000000000000 0 FILE LOCAL DEFAULT ABS crti.o - 32: 00000000000006b4 0 NOTYPE LOCAL DEFAULT 13 $x - 33: 00000000000006b4 20 FUNC LOCAL DEFAULT 13 call_weak_fn - 34: 00000000000005e0 0 NOTYPE LOCAL DEFAULT 11 $x - 35: 0000000000000870 0 NOTYPE LOCAL DEFAULT 14 $x - 36: 0000000000000000 0 FILE LOCAL DEFAULT ABS crtn.o - 37: 00000000000005f0 0 NOTYPE LOCAL DEFAULT 11 $x - 38: 000000000000087c 0 NOTYPE LOCAL DEFAULT 14 $x - 39: 0000000000000000 0 FILE LOCAL DEFAULT ABS crtstuff.c - 40: 00000000000006d0 0 NOTYPE LOCAL DEFAULT 13 $x - 41: 00000000000006d0 0 FUNC LOCAL DEFAULT 13 deregister_tm_clones - 42: 0000000000000700 0 FUNC LOCAL DEFAULT 13 register_tm_clones - 43: 0000000000011008 0 NOTYPE LOCAL DEFAULT 22 $d - 44: 0000000000000740 0 FUNC LOCAL DEFAULT 13 __do_global_dtors_aux - 45: 0000000000011010 1 OBJECT LOCAL DEFAULT 23 completed.0 - 46: 0000000000010d80 0 NOTYPE LOCAL DEFAULT 19 $d - 47: 0000000000010d80 0 OBJECT LOCAL DEFAULT 19 __do_global_dtors_aux_fini_array_entry - 48: 0000000000000790 0 FUNC LOCAL DEFAULT 13 frame_dummy - 49: 0000000000010d78 0 NOTYPE LOCAL DEFAULT 18 $d - 50: 0000000000010d78 0 OBJECT LOCAL DEFAULT 18 __frame_dummy_init_array_entry - 51: 0000000000000908 0 NOTYPE LOCAL DEFAULT 17 $d - 52: 0000000000011010 0 NOTYPE LOCAL DEFAULT 23 $d - 53: 0000000000000000 0 FILE LOCAL DEFAULT ABS functionpointer.c - 54: 0000000000011014 0 NOTYPE LOCAL DEFAULT 23 $d - 55: 0000000000000794 0 NOTYPE LOCAL DEFAULT 13 $x - 56: 0000000000000968 0 NOTYPE LOCAL DEFAULT 17 $d - 57: 0000000000000000 0 FILE LOCAL DEFAULT ABS crtstuff.c - 58: 00000000000009c4 0 NOTYPE LOCAL DEFAULT 17 $d - 59: 00000000000009c4 0 OBJECT LOCAL DEFAULT 17 __FRAME_END__ - 60: 0000000000000000 0 FILE LOCAL DEFAULT ABS - 61: 0000000000010d88 0 OBJECT LOCAL DEFAULT ABS _DYNAMIC - 62: 0000000000000888 0 NOTYPE LOCAL DEFAULT 16 __GNU_EH_FRAME_HDR - 63: 0000000000010fb0 0 OBJECT LOCAL DEFAULT ABS _GLOBAL_OFFSET_TABLE_ - 64: 0000000000000600 0 NOTYPE LOCAL DEFAULT 12 $x - 65: 0000000000000000 0 FUNC GLOBAL DEFAULT UND __libc_start_main@GLIBC_2.34 - 66: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_deregisterTMCloneTable - 67: 0000000000011000 0 NOTYPE WEAK DEFAULT 22 data_start - 68: 0000000000011010 0 NOTYPE GLOBAL DEFAULT 23 __bss_start__ - 69: 0000000000000000 0 FUNC WEAK DEFAULT UND __cxa_finalize@GLIBC_2.17 - 70: 0000000000011018 0 NOTYPE GLOBAL DEFAULT 23 _bss_end__ - 71: 0000000000011010 0 NOTYPE GLOBAL DEFAULT 22 _edata - 72: 0000000000011014 4 OBJECT GLOBAL DEFAULT 23 x - 73: 0000000000000870 0 FUNC GLOBAL HIDDEN 14 _fini - 74: 0000000000011018 0 NOTYPE GLOBAL DEFAULT 23 __bss_end__ - 75: 0000000000011000 0 NOTYPE GLOBAL DEFAULT 22 __data_start - 76: 0000000000000000 0 NOTYPE WEAK DEFAULT UND __gmon_start__ - 77: 0000000000011008 0 OBJECT GLOBAL HIDDEN 22 __dso_handle - 78: 0000000000000000 0 FUNC GLOBAL DEFAULT UND abort@GLIBC_2.17 - 79: 0000000000000884 4 OBJECT GLOBAL DEFAULT 15 _IO_stdin_used - 80: 0000000000000794 24 FUNC GLOBAL DEFAULT 13 set_two - 81: 0000000000011018 0 NOTYPE GLOBAL DEFAULT 23 _end - 82: 0000000000000680 52 FUNC GLOBAL DEFAULT 13 _start - 83: 0000000000011018 0 NOTYPE GLOBAL DEFAULT 23 __end__ - 84: 00000000000007ac 24 FUNC GLOBAL DEFAULT 13 set_six - 85: 0000000000011010 0 NOTYPE GLOBAL DEFAULT 23 __bss_start - 86: 00000000000007dc 148 FUNC GLOBAL DEFAULT 13 main - 87: 00000000000007c4 24 FUNC GLOBAL DEFAULT 13 set_seven - 88: 0000000000011010 0 OBJECT GLOBAL HIDDEN 22 __TMC_END__ - 89: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_registerTMCloneTable - 90: 00000000000005e0 0 FUNC GLOBAL HIDDEN 11 _init diff --git a/src/test/indirect_calls/indirect_call/clang/indirect_call.adt b/src/test/indirect_calls/indirect_call/clang/indirect_call.adt deleted file mode 100644 index f5eb41733..000000000 --- a/src/test/indirect_calls/indirect_call/clang/indirect_call.adt +++ /dev/null @@ -1,613 +0,0 @@ -Project(Attrs([Attr("filename","\"clang/indirect_call.out\""), -Attr("image-specification","(declare abi (name str))\n(declare arch (name str))\n(declare base-address (addr int))\n(declare bias (off int))\n(declare bits (size int))\n(declare code-region (addr int) (size int) (off int))\n(declare code-start (addr int))\n(declare entry-point (addr int))\n(declare external-reference (addr int) (name str))\n(declare format (name str))\n(declare is-executable (flag bool))\n(declare is-little-endian (flag bool))\n(declare llvm:base-address (addr int))\n(declare llvm:code-entry (name str) (off int) (size int))\n(declare llvm:coff-import-library (name str))\n(declare llvm:coff-virtual-section-header (name str) (addr int) (size int))\n(declare llvm:elf-program-header (name str) (off int) (size int))\n(declare llvm:elf-program-header-flags (name str) (ld bool) (r bool) \n (w bool) (x bool))\n(declare llvm:elf-virtual-program-header (name str) (addr int) (size int))\n(declare llvm:entry-point (addr int))\n(declare llvm:macho-symbol (name str) (value int))\n(declare llvm:name-reference (at int) (name str))\n(declare llvm:relocation (at int) (addr int))\n(declare llvm:section-entry (name str) (addr int) (size int) (off int))\n(declare llvm:section-flags (name str) (r bool) (w bool) (x bool))\n(declare llvm:segment-command (name str) (off int) (size int))\n(declare llvm:segment-command-flags (name str) (r bool) (w bool) (x bool))\n(declare llvm:symbol-entry (name str) (addr int) (size int) (off int)\n (value int))\n(declare llvm:virtual-segment-command (name str) (addr int) (size int))\n(declare mapped (addr int) (size int) (off int))\n(declare named-region (addr int) (size int) (name str))\n(declare named-symbol (addr int) (name str))\n(declare require (name str))\n(declare section (addr int) (size int))\n(declare segment (addr int) (size int) (r bool) (w bool) (x bool))\n(declare subarch (name str))\n(declare symbol-chunk (addr int) (size int) (root int))\n(declare symbol-value (addr int) (value int))\n(declare system (name str))\n(declare vendor (name str))\n\n(abi unknown)\n(arch aarch64)\n(base-address 0)\n(bias 0)\n(bits 64)\n(code-region 1976 20 1976)\n(code-region 1600 376 1600)\n(code-region 1488 112 1488)\n(code-region 1464 24 1464)\n(code-start 1652)\n(code-start 1876)\n(code-start 1600)\n(code-start 1904)\n(entry-point 1600)\n(external-reference 69568 _ITM_deregisterTMCloneTable)\n(external-reference 69576 __cxa_finalize)\n(external-reference 69584 __gmon_start__)\n(external-reference 69600 _ITM_registerTMCloneTable)\n(external-reference 69632 __libc_start_main)\n(external-reference 69640 __cxa_finalize)\n(external-reference 69648 __gmon_start__)\n(external-reference 69656 abort)\n(external-reference 69664 printf)\n(format elf)\n(is-executable true)\n(is-little-endian true)\n(llvm:base-address 0)\n(llvm:code-entry printf 0 0)\n(llvm:code-entry abort 0 0)\n(llvm:code-entry __cxa_finalize 0 0)\n(llvm:code-entry __libc_start_main 0 0)\n(llvm:code-entry _init 1464 0)\n(llvm:code-entry printf@GLIBC_2.17 0 0)\n(llvm:code-entry main 1904 72)\n(llvm:code-entry _start 1600 52)\n(llvm:code-entry abort@GLIBC_2.17 0 0)\n(llvm:code-entry greet 1876 28)\n(llvm:code-entry _fini 1976 0)\n(llvm:code-entry __cxa_finalize@GLIBC_2.17 0 0)\n(llvm:code-entry __libc_start_main@GLIBC_2.34 0 0)\n(llvm:code-entry frame_dummy 1872 0)\n(llvm:code-entry __do_global_dtors_aux 1792 0)\n(llvm:code-entry register_tm_clones 1728 0)\n(llvm:code-entry deregister_tm_clones 1680 0)\n(llvm:code-entry call_weak_fn 1652 20)\n(llvm:code-entry .fini 1976 20)\n(llvm:code-entry .text 1600 376)\n(llvm:code-entry .plt 1488 112)\n(llvm:code-entry .init 1464 24)\n(llvm:elf-program-header 08 3528 568)\n(llvm:elf-program-header 07 0 0)\n(llvm:elf-program-header 06 2044 68)\n(llvm:elf-program-header 05 596 68)\n(llvm:elf-program-header 04 3544 480)\n(llvm:elf-program-header 03 3528 624)\n(llvm:elf-program-header 02 0 2352)\n(llvm:elf-program-header 01 568 27)\n(llvm:elf-program-header 00 64 504)\n(llvm:elf-program-header-flags 08 false true false false)\n(llvm:elf-program-header-flags 07 false true true false)\n(llvm:elf-program-header-flags 06 false true false false)\n(llvm:elf-program-header-flags 05 false true false false)\n(llvm:elf-program-header-flags 04 false true true false)\n(llvm:elf-program-header-flags 03 true true true false)\n(llvm:elf-program-header-flags 02 true true false true)\n(llvm:elf-program-header-flags 01 false true false false)\n(llvm:elf-program-header-flags 00 false true false false)\n(llvm:elf-virtual-program-header 08 69064 568)\n(llvm:elf-virtual-program-header 07 0 0)\n(llvm:elf-virtual-program-header 06 2044 68)\n(llvm:elf-virtual-program-header 05 596 68)\n(llvm:elf-virtual-program-header 04 69080 480)\n(llvm:elf-virtual-program-header 03 69064 632)\n(llvm:elf-virtual-program-header 02 0 2352)\n(llvm:elf-virtual-program-header 01 568 27)\n(llvm:elf-virtual-program-header 00 64 504)\n(llvm:entry-point 1600)\n(llvm:name-reference 69664 printf)\n(llvm:name-reference 69656 abort)\n(llvm:name-reference 69648 __gmon_start__)\n(llvm:name-reference 69640 __cxa_finalize)\n(llvm:name-reference 69632 __libc_start_main)\n(llvm:name-reference 69600 _ITM_registerTMCloneTable)\n(llvm:name-reference 69584 __gmon_start__)\n(llvm:name-reference 69576 __cxa_finalize)\n(llvm:name-reference 69568 _ITM_deregisterTMCloneTable)\n(llvm:section-entry .shstrtab 0 259 7001)\n(llvm:section-entry .strtab 0 593 6408)\n(llvm:section-entry .symtab 0 2184 4224)\n(llvm:section-entry .comment 0 71 4152)\n(llvm:section-entry .bss 69688 8 4152)\n(llvm:section-entry .data 69672 16 4136)\n(llvm:section-entry .got.plt 69608 64 4072)\n(llvm:section-entry .got 69560 48 4024)\n(llvm:section-entry .dynamic 69080 480 3544)\n(llvm:section-entry .fini_array 69072 8 3536)\n(llvm:section-entry .init_array 69064 8 3528)\n(llvm:section-entry .eh_frame 2112 240 2112)\n(llvm:section-entry .eh_frame_hdr 2044 68 2044)\n(llvm:section-entry .rodata 1996 48 1996)\n(llvm:section-entry .fini 1976 20 1976)\n(llvm:section-entry .text 1600 376 1600)\n(llvm:section-entry .plt 1488 112 1488)\n(llvm:section-entry .init 1464 24 1464)\n(llvm:section-entry .rela.plt 1344 120 1344)\n(llvm:section-entry .rela.dyn 1152 192 1152)\n(llvm:section-entry .gnu.version_r 1104 48 1104)\n(llvm:section-entry .gnu.version 1084 20 1084)\n(llvm:section-entry .dynstr 936 148 936)\n(llvm:section-entry .dynsym 696 240 696)\n(llvm:section-entry .gnu.hash 664 28 664)\n(llvm:section-entry .note.ABI-tag 632 32 632)\n(llvm:section-entry .note.gnu.build-id 596 36 596)\n(llvm:section-entry .interp 568 27 568)\n(llvm:section-flags .shstrtab true false false)\n(llvm:section-flags .strtab true false false)\n(llvm:section-flags .symtab true false false)\n(llvm:section-flags .comment true false false)\n(llvm:section-flags .bss true true false)\n(llvm:section-flags .data true true false)\n(llvm:section-flags .got.plt true true false)\n(llvm:section-flags .got true true false)\n(llvm:section-flags .dynamic true true false)\n(llvm:section-flags .fini_array true true false)\n(llvm:section-flags .init_array true true false)\n(llvm:section-flags .eh_frame true false false)\n(llvm:section-flags .eh_frame_hdr true false false)\n(llvm:section-flags .rodata true false false)\n(llvm:section-flags .fini true false true)\n(llvm:section-flags .text true false true)\n(llvm:section-flags .plt true false true)\n(llvm:section-flags .init true false true)\n(llvm:section-flags .rela.plt true false false)\n(llvm:section-flags .rela.dyn true false false)\n(llvm:section-flags .gnu.version_r true false false)\n(llvm:section-flags .gnu.version true false false)\n(llvm:section-flags .dynstr true false false)\n(llvm:section-flags .dynsym true false false)\n(llvm:section-flags .gnu.hash true false false)\n(llvm:section-flags .note.ABI-tag true false false)\n(llvm:section-flags .note.gnu.build-id true false false)\n(llvm:section-flags .interp true false false)\n(llvm:symbol-entry printf 0 0 0 0)\n(llvm:symbol-entry abort 0 0 0 0)\n(llvm:symbol-entry __cxa_finalize 0 0 0 0)\n(llvm:symbol-entry __libc_start_main 0 0 0 0)\n(llvm:symbol-entry _init 1464 0 1464 1464)\n(llvm:symbol-entry printf@GLIBC_2.17 0 0 0 0)\n(llvm:symbol-entry main 1904 72 1904 1904)\n(llvm:symbol-entry _start 1600 52 1600 1600)\n(llvm:symbol-entry abort@GLIBC_2.17 0 0 0 0)\n(llvm:symbol-entry greet 1876 28 1876 1876)\n(llvm:symbol-entry _fini 1976 0 1976 1976)\n(llvm:symbol-entry __cxa_finalize@GLIBC_2.17 0 0 0 0)\n(llvm:symbol-entry __libc_start_main@GLIBC_2.34 0 0 0 0)\n(llvm:symbol-entry frame_dummy 1872 0 1872 1872)\n(llvm:symbol-entry __do_global_dtors_aux 1792 0 1792 1792)\n(llvm:symbol-entry register_tm_clones 1728 0 1728 1728)\n(llvm:symbol-entry deregister_tm_clones 1680 0 1680 1680)\n(llvm:symbol-entry call_weak_fn 1652 20 1652 1652)\n(mapped 0 2352 0)\n(mapped 69064 624 3528)\n(named-region 0 2352 02)\n(named-region 69064 632 03)\n(named-region 568 27 .interp)\n(named-region 596 36 .note.gnu.build-id)\n(named-region 632 32 .note.ABI-tag)\n(named-region 664 28 .gnu.hash)\n(named-region 696 240 .dynsym)\n(named-region 936 148 .dynstr)\n(named-region 1084 20 .gnu.version)\n(named-region 1104 48 .gnu.version_r)\n(named-region 1152 192 .rela.dyn)\n(named-region 1344 120 .rela.plt)\n(named-region 1464 24 .init)\n(named-region 1488 112 .plt)\n(named-region 1600 376 .text)\n(named-region 1976 20 .fini)\n(named-region 1996 48 .rodata)\n(named-region 2044 68 .eh_frame_hdr)\n(named-region 2112 240 .eh_frame)\n(named-region 69064 8 .init_array)\n(named-region 69072 8 .fini_array)\n(named-region 69080 480 .dynamic)\n(named-region 69560 48 .got)\n(named-region 69608 64 .got.plt)\n(named-region 69672 16 .data)\n(named-region 69688 8 .bss)\n(named-region 0 71 .comment)\n(named-region 0 2184 .symtab)\n(named-region 0 593 .strtab)\n(named-region 0 259 .shstrtab)\n(named-symbol 1652 call_weak_fn)\n(named-symbol 1680 deregister_tm_clones)\n(named-symbol 1728 register_tm_clones)\n(named-symbol 1792 __do_global_dtors_aux)\n(named-symbol 1872 frame_dummy)\n(named-symbol 0 __libc_start_main@GLIBC_2.34)\n(named-symbol 0 __cxa_finalize@GLIBC_2.17)\n(named-symbol 1976 _fini)\n(named-symbol 1876 greet)\n(named-symbol 0 abort@GLIBC_2.17)\n(named-symbol 1600 _start)\n(named-symbol 1904 main)\n(named-symbol 0 printf@GLIBC_2.17)\n(named-symbol 1464 _init)\n(named-symbol 0 __libc_start_main)\n(named-symbol 0 __cxa_finalize)\n(named-symbol 0 abort)\n(named-symbol 0 printf)\n(require libc.so.6)\n(section 568 27)\n(section 596 36)\n(section 632 32)\n(section 664 28)\n(section 696 240)\n(section 936 148)\n(section 1084 20)\n(section 1104 48)\n(section 1152 192)\n(section 1344 120)\n(section 1464 24)\n(section 1488 112)\n(section 1600 376)\n(section 1976 20)\n(section 1996 48)\n(section 2044 68)\n(section 2112 240)\n(section 69064 8)\n(section 69072 8)\n(section 69080 480)\n(section 69560 48)\n(section 69608 64)\n(section 69672 16)\n(section 69688 8)\n(section 0 71)\n(section 0 2184)\n(section 0 593)\n(section 0 259)\n(segment 0 2352 true false true)\n(segment 69064 632 true true false)\n(subarch v8)\n(symbol-chunk 1652 20 1652)\n(symbol-chunk 1876 28 1876)\n(symbol-chunk 1600 52 1600)\n(symbol-chunk 1904 72 1904)\n(symbol-value 1652 1652)\n(symbol-value 1680 1680)\n(symbol-value 1728 1728)\n(symbol-value 1792 1792)\n(symbol-value 1872 1872)\n(symbol-value 1976 1976)\n(symbol-value 1876 1876)\n(symbol-value 1600 1600)\n(symbol-value 1904 1904)\n(symbol-value 1464 1464)\n(symbol-value 0 0)\n(system \"\")\n(vendor \"\")\n"), -Attr("abi-name","\"aarch64-linux-gnu-elf\"")]), -Sections([Section(".shstrtab", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x40\x06\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x60\x1c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x38\x00\x09\x00\x40\x00\x1d\x00\x1c\x00\x06\x00\x00\x00\x04\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x04\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x30\x09\x00\x00\x00\x00\x00\x00\x30\x09\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x01\x00\x00\x00\x06\x00\x00\x00\xc8\x0d\x00\x00\x00\x00\x00\x00\xc8\x0d\x01\x00\x00\x00\x00\x00\xc8\x0d\x01"), -Section(".strtab", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x40\x06\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x60\x1c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x38\x00\x09\x00\x40\x00\x1d\x00\x1c\x00\x06\x00\x00\x00\x04\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x04\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x30\x09\x00\x00\x00\x00\x00\x00\x30\x09\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x01\x00\x00\x00\x06\x00\x00\x00\xc8\x0d\x00\x00\x00\x00\x00\x00\xc8\x0d\x01\x00\x00\x00\x00\x00\xc8\x0d\x01\x00\x00\x00\x00\x00\x70\x02\x00\x00\x00\x00\x00\x00\x78\x02\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x02\x00\x00\x00\x06\x00\x00\x00\xd8\x0d\x00\x00\x00\x00\x00\x00\xd8\x0d\x01\x00\x00\x00\x00\x00\xd8\x0d\x01\x00\x00\x00\x00\x00\xe0\x01\x00\x00\x00\x00\x00\x00\xe0\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x04\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x50\xe5\x74\x64\x04\x00\x00\x00\xfc\x07\x00\x00\x00\x00\x00\x00\xfc\x07\x00\x00\x00\x00\x00\x00\xfc\x07\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x51\xe5\x74\x64\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x52\xe5\x74\x64\x04\x00\x00\x00\xc8\x0d\x00\x00\x00\x00\x00\x00\xc8\x0d\x01\x00\x00\x00\x00\x00\xc8\x0d\x01\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x2f\x6c\x69\x62\x2f\x6c\x64\x2d\x6c\x69\x6e\x75\x78\x2d\x61\x61\x72\x63\x68\x36\x34\x2e\x73\x6f\x2e"), -Section(".symtab", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x40\x06\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x60\x1c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x38\x00\x09\x00\x40\x00\x1d\x00\x1c\x00\x06\x00\x00\x00\x04\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x04\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x30\x09\x00\x00\x00\x00\x00\x00\x30\x09\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x01\x00\x00\x00\x06\x00\x00\x00\xc8\x0d\x00\x00\x00\x00\x00\x00\xc8\x0d\x01\x00\x00\x00\x00\x00\xc8\x0d\x01\x00\x00\x00\x00\x00\x70\x02\x00\x00\x00\x00\x00\x00\x78\x02\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x02\x00\x00\x00\x06\x00\x00\x00\xd8\x0d\x00\x00\x00\x00\x00\x00\xd8\x0d\x01\x00\x00\x00\x00\x00\xd8\x0d\x01\x00\x00\x00\x00\x00\xe0\x01\x00\x00\x00\x00\x00\x00\xe0\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x04\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x50\xe5\x74\x64\x04\x00\x00\x00\xfc\x07\x00\x00\x00\x00\x00\x00\xfc\x07\x00\x00\x00\x00\x00\x00\xfc\x07\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x51\xe5\x74\x64\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x52\xe5\x74\x64\x04\x00\x00\x00\xc8\x0d\x00\x00\x00\x00\x00\x00\xc8\x0d\x01\x00\x00\x00\x00\x00\xc8\x0d\x01\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x2f\x6c\x69\x62\x2f\x6c\x64\x2d\x6c\x69\x6e\x75\x78\x2d\x61\x61\x72\x63\x68\x36\x34\x2e\x73\x6f\x2e\x31\x00\x00\x04\x00\x00\x00\x14\x00\x00\x00\x03\x00\x00\x00\x47\x4e\x55\x00\x5b\x4d\xf1\x29\x18\xec\xc8\x35\xf7\x08\x35\x34\xaa\x17\x2d\x8c\x0a\x13\xa3\x14\x04\x00\x00\x00\x10\x00\x00\x00\x01\x00\x00\x00\x47\x4e\x55\x00\x00\x00\x00\x00\x03\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x01\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x0b\x00\xb8\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x17\x00\x28\x10\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4f\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x22\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6b\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x22\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x28\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5f\x5f\x63\x78\x61\x5f\x66\x69\x6e\x61\x6c\x69\x7a\x65\x00\x5f\x5f\x6c\x69\x62\x63\x5f\x73\x74\x61\x72\x74\x5f\x6d\x61\x69\x6e\x00\x61\x62\x6f\x72\x74\x00\x70\x72\x69\x6e\x74\x66\x00\x6c\x69\x62\x63\x2e\x73\x6f\x2e\x36\x00\x47\x4c\x49\x42\x43\x5f\x32\x2e\x31\x37\x00\x47\x4c\x49\x42\x43\x5f\x32\x2e\x33\x34\x00\x5f\x49\x54\x4d\x5f\x64\x65\x72\x65\x67\x69\x73\x74\x65\x72\x54\x4d\x43\x6c\x6f\x6e\x65\x54\x61\x62\x6c\x65\x00\x5f\x5f\x67\x6d\x6f\x6e\x5f\x73\x74\x61\x72\x74\x5f\x5f\x00\x5f\x49\x54\x4d\x5f\x72\x65\x67\x69\x73\x74\x65\x72\x54\x4d\x43\x6c\x6f\x6e\x65\x54\x61\x62\x6c\x65\x00\x00\x00\x00\x00\x00\x00\x02\x00\x01\x00\x03\x00\x01\x00\x03\x00\x01\x00\x03\x00\x01\x00\x02\x00\x2f\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x97\x91\x96\x06\x00\x00\x03\x00\x39\x00\x00\x00\x10\x00\x00\x00\xb4\x91\x96\x06\x00\x00\x02\x00\x44\x00\x00\x00\x00\x00\x00\x00\xc8\x0d\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x50\x07\x00\x00\x00\x00\x00\x00\xd0\x0d\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\xd8\x0f\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x70\x07\x00\x00\x00\x00\x00\x00\x30\x10\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x30\x10\x01\x00\x00\x00\x00\x00\xc0\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xc8\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xd0\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe0\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x08\x10\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x10\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x18\x10\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x20\x10\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x09\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1f\x20\x03\xd5\xfd\x7b\xbf\xa9\xfd\x03\x00\x91\x2c\x00\x00\x94\xfd\x7b\xc1\xa8\xc0\x03\x5f\xd6\xf0\x7b\xbf\xa9\x90\x00\x00\x90\x11\xfe\x47\xf9\x10\xe2\x3f\x91\x20\x02\x1f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x90\x00\x00\xb0\x11\x02\x40\xf9\x10\x02\x00\x91\x20\x02\x1f\xd6\x90\x00\x00\xb0\x11\x06\x40\xf9\x10\x22\x00\x91\x20\x02\x1f\xd6\x90\x00\x00\xb0\x11\x0a\x40\xf9\x10\x42\x00\x91\x20\x02\x1f\xd6\x90\x00\x00\xb0\x11\x0e\x40\xf9\x10\x62\x00\x91\x20\x02\x1f\xd6\x90\x00\x00\xb0\x11\x12\x40\xf9\x10\x82\x00\x91\x20\x02\x1f\xd6\x1f\x20\x03\xd5\x1d\x00\x80\xd2\x1e\x00\x80\xd2\xe5\x03\x00\xaa\xe1\x03\x40\xf9\xe2\x23\x00\x91\xe6\x03\x00\x91\x80\x00\x00\x90\x00\xec\x47\xf9\x03\x00\x80\xd2\x04\x00\x80\xd2\xe1\xff\xff\x97\xec\xff\xff\x97\x80\x00\x00\x90\x00\xe8\x47\xf9\x40\x00\x00\xb4\xe4\xff\xff\x17\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x80\x00\x00\xb0\x00\xe0\x00\x91\x81\x00\x00\xb0\x21\xe0\x00\x91\x3f\x00\x00\xeb\xc0\x00\x00\x54\x81\x00\x00\x90\x21\xe0\x47\xf9\x61\x00\x00\xb4\xf0\x03\x01\xaa\x00\x02\x1f\xd6\xc0\x03\x5f\xd6\x80\x00\x00\xb0\x00\xe0\x00\x91\x81\x00\x00\xb0\x21\xe0\x00\x91\x21\x00\x00\xcb\x22\xfc\x7f\xd3\x41\x0c\x81\x8b\x21\xfc\x41\x93\xc1\x00\x00\xb4\x82\x00\x00\x90\x42\xf0\x47\xf9\x62\x00\x00\xb4\xf0\x03\x02\xaa\x00\x02\x1f\xd6\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\xfd\x7b\xbe\xa9\xfd\x03\x00\x91\xf3\x0b\x00\xf9\x93\x00\x00\xb0\x60\xe2\x40\x39\x40\x01\x00\x35\x80\x00\x00\x90\x00\xe4\x47\xf9\x80\x00\x00\xb4\x80\x00\x00\xb0\x00\x18\x40\xf9\xb5\xff\xff\x97\xd8\xff\xff\x97\x20\x00\x80\x52\x60\xe2\x00\x39\xf3\x0b\x40\xf9\xfd\x7b\xc2\xa8\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\xdc\xff\xff\x17\xfd\x7b\xbf\xa9\xfd\x03\x00\x91\x00\x00\x00\x90\x00\x40\x1f\x91\xb3\xff\xff\x97\xfd\x7b\xc1\xa8\xc0\x03\x5f\xd6\xff\xc3\x00\xd1\xfd\x7b\x02\xa9\xfd\x83\x00\x91\xe8\x03\x1f\x2a\xe8\x0f\x00\xb9\xbf\xc3\x1f\xb8\x08\x00\x00\x90\x08\x51\x1d\x91\xe8\x0b\x00\xf9\x00\x00\x00\x90\x00\x7c\x1f\x91\xa5\xff\xff\x97\xe8\x0b\x40\xf9\x00\x01\x3f\xd6\xe0\x0f\x40\xb9\xfd\x7b\x42\xa9\xff\xc3\x00\x91\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\xfd\x7b\xbf\xa9\xfd\x03\x00\x91\xfd\x7b\xc1\xa8\xc0\x03\x5f\xd6\x01\x00\x02\x00\x48\x65\x6c\x6c\x6f\x2c\x20\x77\x6f\x72\x6c\x64\x21\x0a\x00\x43\x61\x6c\x6c\x69\x6e\x67\x20\x67\x72\x65\x65\x74\x28\x29\x20\x69\x6e\x64\x69\x72\x65\x63\x74\x6c\x79\x3a\x0a\x00\x01\x1b\x03\x3b\x40\x00\x00\x00\x07\x00\x00\x00\x44\xfe\xff\xff\x58\x00\x00\x00\x94\xfe\xff\xff\x6c\x00\x00\x00\xc4\xfe\xff\xff\x80\x00\x00\x00\x04\xff\xff\xff\x94\x00\x00\x00\x54\xff\xff\xff\xb8\x00\x00\x00\x58\xff\xff\xff\xe0\x00\x00\x00\x74\xff\xff\xff\x08\x01\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x01\x7a\x52\x00\x04\x78\x1e\x01\x1b\x0c\x1f\x00\x10\x00\x00\x00\x18\x00\x00\x00\xe4\xfd\xff\xff\x34\x00\x00\x00\x00\x41\x07\x1e\x10\x00\x00\x00\x2c\x00\x00\x00\x20\xfe\xff\xff\x30\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x40\x00\x00\x00\x3c\xfe\xff\xff"), -Section(".comment", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x40\x06\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x60\x1c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x38\x00\x09\x00\x40\x00\x1d\x00\x1c\x00\x06\x00\x00\x00\x04\x00\x00"), -Section(".interp", 0x238, "\x2f\x6c\x69\x62\x2f\x6c\x64\x2d\x6c\x69\x6e\x75\x78\x2d\x61\x61\x72\x63\x68\x36\x34\x2e\x73\x6f\x2e\x31\x00"), -Section(".note.gnu.build-id", 0x254, "\x04\x00\x00\x00\x14\x00\x00\x00\x03\x00\x00\x00\x47\x4e\x55\x00\x5b\x4d\xf1\x29\x18\xec\xc8\x35\xf7\x08\x35\x34\xaa\x17\x2d\x8c\x0a\x13\xa3\x14"), -Section(".note.ABI-tag", 0x278, "\x04\x00\x00\x00\x10\x00\x00\x00\x01\x00\x00\x00\x47\x4e\x55\x00\x00\x00\x00\x00\x03\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00"), -Section(".gnu.hash", 0x298, "\x01\x00\x00\x00\x01\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".dynsym", 0x2B8, "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x0b\x00\xb8\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x17\x00\x28\x10\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4f\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x22\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6b\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x22\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x28\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".dynstr", 0x3A8, "\x00\x5f\x5f\x63\x78\x61\x5f\x66\x69\x6e\x61\x6c\x69\x7a\x65\x00\x5f\x5f\x6c\x69\x62\x63\x5f\x73\x74\x61\x72\x74\x5f\x6d\x61\x69\x6e\x00\x61\x62\x6f\x72\x74\x00\x70\x72\x69\x6e\x74\x66\x00\x6c\x69\x62\x63\x2e\x73\x6f\x2e\x36\x00\x47\x4c\x49\x42\x43\x5f\x32\x2e\x31\x37\x00\x47\x4c\x49\x42\x43\x5f\x32\x2e\x33\x34\x00\x5f\x49\x54\x4d\x5f\x64\x65\x72\x65\x67\x69\x73\x74\x65\x72\x54\x4d\x43\x6c\x6f\x6e\x65\x54\x61\x62\x6c\x65\x00\x5f\x5f\x67\x6d\x6f\x6e\x5f\x73\x74\x61\x72\x74\x5f\x5f\x00\x5f\x49\x54\x4d\x5f\x72\x65\x67\x69\x73\x74\x65\x72\x54\x4d\x43\x6c\x6f\x6e\x65\x54\x61\x62\x6c\x65\x00"), -Section(".gnu.version", 0x43C, "\x00\x00\x00\x00\x00\x00\x02\x00\x01\x00\x03\x00\x01\x00\x03\x00\x01\x00\x03\x00"), -Section(".gnu.version_r", 0x450, "\x01\x00\x02\x00\x2f\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x97\x91\x96\x06\x00\x00\x03\x00\x39\x00\x00\x00\x10\x00\x00\x00\xb4\x91\x96\x06\x00\x00\x02\x00\x44\x00\x00\x00\x00\x00\x00\x00"), -Section(".rela.dyn", 0x480, "\xc8\x0d\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x50\x07\x00\x00\x00\x00\x00\x00\xd0\x0d\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\xd8\x0f\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x70\x07\x00\x00\x00\x00\x00\x00\x30\x10\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x30\x10\x01\x00\x00\x00\x00\x00\xc0\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xc8\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xd0\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe0\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".rela.plt", 0x540, "\x00\x10\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x08\x10\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x10\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x18\x10\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x20\x10\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x09\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".init", 0x5B8, "\x1f\x20\x03\xd5\xfd\x7b\xbf\xa9\xfd\x03\x00\x91\x2c\x00\x00\x94\xfd\x7b\xc1\xa8\xc0\x03\x5f\xd6"), -Section(".plt", 0x5D0, "\xf0\x7b\xbf\xa9\x90\x00\x00\x90\x11\xfe\x47\xf9\x10\xe2\x3f\x91\x20\x02\x1f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x90\x00\x00\xb0\x11\x02\x40\xf9\x10\x02\x00\x91\x20\x02\x1f\xd6\x90\x00\x00\xb0\x11\x06\x40\xf9\x10\x22\x00\x91\x20\x02\x1f\xd6\x90\x00\x00\xb0\x11\x0a\x40\xf9\x10\x42\x00\x91\x20\x02\x1f\xd6\x90\x00\x00\xb0\x11\x0e\x40\xf9\x10\x62\x00\x91\x20\x02\x1f\xd6\x90\x00\x00\xb0\x11\x12\x40\xf9\x10\x82\x00\x91\x20\x02\x1f\xd6"), -Section(".fini", 0x7B8, "\x1f\x20\x03\xd5\xfd\x7b\xbf\xa9\xfd\x03\x00\x91\xfd\x7b\xc1\xa8\xc0\x03\x5f\xd6"), -Section(".rodata", 0x7CC, "\x01\x00\x02\x00\x48\x65\x6c\x6c\x6f\x2c\x20\x77\x6f\x72\x6c\x64\x21\x0a\x00\x43\x61\x6c\x6c\x69\x6e\x67\x20\x67\x72\x65\x65\x74\x28\x29\x20\x69\x6e\x64\x69\x72\x65\x63\x74\x6c\x79\x3a\x0a\x00"), -Section(".eh_frame_hdr", 0x7FC, "\x01\x1b\x03\x3b\x40\x00\x00\x00\x07\x00\x00\x00\x44\xfe\xff\xff\x58\x00\x00\x00\x94\xfe\xff\xff\x6c\x00\x00\x00\xc4\xfe\xff\xff\x80\x00\x00\x00\x04\xff\xff\xff\x94\x00\x00\x00\x54\xff\xff\xff\xb8\x00\x00\x00\x58\xff\xff\xff\xe0\x00\x00\x00\x74\xff\xff\xff\x08\x01\x00\x00"), -Section(".eh_frame", 0x840, "\x10\x00\x00\x00\x00\x00\x00\x00\x01\x7a\x52\x00\x04\x78\x1e\x01\x1b\x0c\x1f\x00\x10\x00\x00\x00\x18\x00\x00\x00\xe4\xfd\xff\xff\x34\x00\x00\x00\x00\x41\x07\x1e\x10\x00\x00\x00\x2c\x00\x00\x00\x20\xfe\xff\xff\x30\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x40\x00\x00\x00\x3c\xfe\xff\xff\x3c\x00\x00\x00\x00\x00\x00\x00\x20\x00\x00\x00\x54\x00\x00\x00\x68\xfe\xff\xff\x48\x00\x00\x00\x00\x41\x0e\x20\x9d\x04\x9e\x03\x42\x93\x02\x4e\xde\xdd\xd3\x0e\x00\x00\x00\x00\x10\x00\x00\x00\x78\x00\x00\x00\x94\xfe\xff\xff\x04\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x01\x7a\x52\x00\x01\x7c\x1e\x01\x1b\x0c\x1f\x00\x24\x00\x00\x00\x18\x00\x00\x00\x70\xfe\xff\xff\x1c\x00\x00\x00\x00\x44\x0e\x10\x44\x0c\x1d\x10\x9e\x02\x9d\x04\x4c\x0c\x1f\x10\x44\x0e\x00\xde\xdd\x00\x00\x00\x24\x00\x00\x00\x40\x00\x00\x00\x64\xfe\xff\xff\x48\x00\x00\x00\x00\x44\x0e\x30\x48\x0c\x1d\x10\x9e\x02\x9d\x04\x70\x0c\x1f\x30\x48\x0e\x00\xde\xdd\x00\x00\x00\x00\x00\x00\x00"), -Section(".fini_array", 0x10DD0, "\x00\x07\x00\x00\x00\x00\x00\x00"), -Section(".dynamic", 0x10DD8, "\x01\x00\x00\x00\x00\x00\x00\x00\x2f\x00\x00\x00\x00\x00\x00\x00\x0c\x00\x00\x00\x00\x00\x00\x00\xb8\x05\x00\x00\x00\x00\x00\x00\x0d\x00\x00\x00\x00\x00\x00\x00\xb8\x07\x00\x00\x00\x00\x00\x00\x19\x00\x00\x00\x00\x00\x00\x00\xc8\x0d\x01\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x1a\x00\x00\x00\x00\x00\x00\x00\xd0\x0d\x01\x00\x00\x00\x00\x00\x1c\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\xf5\xfe\xff\x6f\x00\x00\x00\x00\x98\x02\x00\x00\x00\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\xa8\x03\x00\x00\x00\x00\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\xb8\x02\x00\x00\x00\x00\x00\x00\x0a\x00\x00\x00\x00\x00\x00\x00\x94\x00\x00\x00\x00\x00\x00\x00\x0b\x00\x00\x00\x00\x00\x00\x00\x18\x00\x00\x00\x00\x00\x00\x00\x15\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\xe8\x0f\x01\x00\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x78\x00\x00\x00\x00\x00\x00\x00\x14\x00\x00\x00\x00\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x17\x00\x00\x00\x00\x00\x00\x00\x40\x05\x00\x00\x00\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x80\x04\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\xc0\x00\x00\x00\x00\x00\x00\x00\x09\x00\x00\x00\x00\x00\x00\x00\x18\x00\x00\x00\x00\x00\x00\x00\xfb\xff\xff\x6f\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\xfe\xff\xff\x6f\x00\x00\x00\x00\x50\x04\x00\x00\x00\x00\x00\x00\xff\xff\xff\x6f\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\xf0\xff\xff\x6f\x00\x00\x00\x00\x3c\x04\x00\x00\x00\x00\x00\x00\xf9\xff\xff\x6f\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".init_array", 0x10DC8, "\x50\x07\x00\x00\x00\x00\x00\x00"), -Section(".got", 0x10FB8, "\xd8\x0d\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x70\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".got.plt", 0x10FE8, "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xd0\x05\x00\x00\x00\x00\x00\x00\xd0\x05\x00\x00\x00\x00\x00\x00\xd0\x05\x00\x00\x00\x00\x00\x00\xd0\x05\x00\x00\x00\x00\x00\x00\xd0\x05\x00\x00\x00\x00\x00\x00"), -Section(".data", 0x11028, "\x00\x00\x00\x00\x00\x00\x00\x00\x30\x10\x01\x00\x00\x00\x00\x00"), -Section(".text", 0x640, "\x1f\x20\x03\xd5\x1d\x00\x80\xd2\x1e\x00\x80\xd2\xe5\x03\x00\xaa\xe1\x03\x40\xf9\xe2\x23\x00\x91\xe6\x03\x00\x91\x80\x00\x00\x90\x00\xec\x47\xf9\x03\x00\x80\xd2\x04\x00\x80\xd2\xe1\xff\xff\x97\xec\xff\xff\x97\x80\x00\x00\x90\x00\xe8\x47\xf9\x40\x00\x00\xb4\xe4\xff\xff\x17\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x80\x00\x00\xb0\x00\xe0\x00\x91\x81\x00\x00\xb0\x21\xe0\x00\x91\x3f\x00\x00\xeb\xc0\x00\x00\x54\x81\x00\x00\x90\x21\xe0\x47\xf9\x61\x00\x00\xb4\xf0\x03\x01\xaa\x00\x02\x1f\xd6\xc0\x03\x5f\xd6\x80\x00\x00\xb0\x00\xe0\x00\x91\x81\x00\x00\xb0\x21\xe0\x00\x91\x21\x00\x00\xcb\x22\xfc\x7f\xd3\x41\x0c\x81\x8b\x21\xfc\x41\x93\xc1\x00\x00\xb4\x82\x00\x00\x90\x42\xf0\x47\xf9\x62\x00\x00\xb4\xf0\x03\x02\xaa\x00\x02\x1f\xd6\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\xfd\x7b\xbe\xa9\xfd\x03\x00\x91\xf3\x0b\x00\xf9\x93\x00\x00\xb0\x60\xe2\x40\x39\x40\x01\x00\x35\x80\x00\x00\x90\x00\xe4\x47\xf9\x80\x00\x00\xb4\x80\x00\x00\xb0\x00\x18\x40\xf9\xb5\xff\xff\x97\xd8\xff\xff\x97\x20\x00\x80\x52\x60\xe2\x00\x39\xf3\x0b\x40\xf9\xfd\x7b\xc2\xa8\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\xdc\xff\xff\x17\xfd\x7b\xbf\xa9\xfd\x03\x00\x91\x00\x00\x00\x90\x00\x40\x1f\x91\xb3\xff\xff\x97\xfd\x7b\xc1\xa8\xc0\x03\x5f\xd6\xff\xc3\x00\xd1\xfd\x7b\x02\xa9\xfd\x83\x00\x91\xe8\x03\x1f\x2a\xe8\x0f\x00\xb9\xbf\xc3\x1f\xb8\x08\x00\x00\x90\x08\x51\x1d\x91\xe8\x0b\x00\xf9\x00\x00\x00\x90\x00\x7c\x1f\x91\xa5\xff\xff\x97\xe8\x0b\x40\xf9\x00\x01\x3f\xd6\xe0\x0f\x40\xb9\xfd\x7b\x42\xa9\xff\xc3\x00\x91\xc0\x03\x5f\xd6")]), -Memmap([Annotation(Region(0x0,0x92F), Attr("segment","02 0 2352")), -Annotation(Region(0x640,0x673), Attr("symbol","\"_start\"")), -Annotation(Region(0x0,0x102), Attr("section","\".shstrtab\"")), -Annotation(Region(0x0,0x250), Attr("section","\".strtab\"")), -Annotation(Region(0x0,0x887), Attr("section","\".symtab\"")), -Annotation(Region(0x0,0x46), Attr("section","\".comment\"")), -Annotation(Region(0x238,0x252), Attr("section","\".interp\"")), -Annotation(Region(0x254,0x277), Attr("section","\".note.gnu.build-id\"")), -Annotation(Region(0x278,0x297), Attr("section","\".note.ABI-tag\"")), -Annotation(Region(0x298,0x2B3), Attr("section","\".gnu.hash\"")), -Annotation(Region(0x2B8,0x3A7), Attr("section","\".dynsym\"")), -Annotation(Region(0x3A8,0x43B), Attr("section","\".dynstr\"")), -Annotation(Region(0x43C,0x44F), Attr("section","\".gnu.version\"")), -Annotation(Region(0x450,0x47F), Attr("section","\".gnu.version_r\"")), -Annotation(Region(0x480,0x53F), Attr("section","\".rela.dyn\"")), -Annotation(Region(0x540,0x5B7), Attr("section","\".rela.plt\"")), -Annotation(Region(0x5B8,0x5CF), Attr("section","\".init\"")), -Annotation(Region(0x5D0,0x63F), Attr("section","\".plt\"")), -Annotation(Region(0x5B8,0x5CF), Attr("code-region","()")), -Annotation(Region(0x5D0,0x63F), Attr("code-region","()")), -Annotation(Region(0x640,0x673), Attr("symbol-info","_start 0x640 52")), -Annotation(Region(0x674,0x687), Attr("symbol","\"call_weak_fn\"")), -Annotation(Region(0x674,0x687), Attr("symbol-info","call_weak_fn 0x674 20")), -Annotation(Region(0x754,0x76F), Attr("symbol","\"greet\"")), -Annotation(Region(0x754,0x76F), Attr("symbol-info","greet 0x754 28")), -Annotation(Region(0x640,0x7B7), Attr("code-region","()")), -Annotation(Region(0x770,0x7B7), Attr("symbol","\"main\"")), -Annotation(Region(0x770,0x7B7), Attr("symbol-info","main 0x770 72")), -Annotation(Region(0x7B8,0x7CB), Attr("section","\".fini\"")), -Annotation(Region(0x7CC,0x7FB), Attr("section","\".rodata\"")), -Annotation(Region(0x7FC,0x83F), Attr("section","\".eh_frame_hdr\"")), -Annotation(Region(0x840,0x92F), Attr("section","\".eh_frame\"")), -Annotation(Region(0x10DC8,0x11037), Attr("segment","03 0x10DC8 632")), -Annotation(Region(0x10DD0,0x10DD7), Attr("section","\".fini_array\"")), -Annotation(Region(0x10DD8,0x10FB7), Attr("section","\".dynamic\"")), -Annotation(Region(0x10DC8,0x10DCF), Attr("section","\".init_array\"")), -Annotation(Region(0x10FB8,0x10FE7), Attr("section","\".got\"")), -Annotation(Region(0x10FE8,0x11027), Attr("section","\".got.plt\"")), -Annotation(Region(0x11028,0x11037), Attr("section","\".data\"")), -Annotation(Region(0x640,0x7B7), Attr("section","\".text\"")), -Annotation(Region(0x7B8,0x7CB), Attr("code-region","()"))]), -Program(Tid(1_760, "%000006e0"), Attrs([]), - Subs([Sub(Tid(1_705, "@__cxa_finalize"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x600"), -Attr("stub","()")]), "__cxa_finalize", Args([Arg(Tid(1_761, "%000006e1"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("__cxa_finalize_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(1_041, "@__cxa_finalize"), - Attrs([Attr("address","0x600")]), Phis([]), -Defs([Def(Tid(1_305, "%00000519"), Attrs([Attr("address","0x600"), -Attr("insn","adrp x16, #69632")]), Var("R16",Imm(64)), Int(69632,64)), -Def(Tid(1_312, "%00000520"), Attrs([Attr("address","0x604"), -Attr("insn","ldr x17, [x16, #0x8]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(1_318, "%00000526"), Attrs([Attr("address","0x608"), -Attr("insn","add x16, x16, #0x8")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(8,64)))]), Jmps([Call(Tid(1_323, "%0000052b"), - Attrs([Attr("address","0x60C"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), -Sub(Tid(1_706, "@__do_global_dtors_aux"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x700")]), - "__do_global_dtors_aux", Args([Arg(Tid(1_762, "%000006e2"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("__do_global_dtors_aux_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(690, "@__do_global_dtors_aux"), - Attrs([Attr("address","0x700")]), Phis([]), Defs([Def(Tid(694, "%000002b6"), - Attrs([Attr("address","0x700"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("#3",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(18446744073709551584,64))), -Def(Tid(700, "%000002bc"), Attrs([Attr("address","0x700"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("#3",Imm(64)),Var("R29",Imm(64)),LittleEndian(),64)), -Def(Tid(706, "%000002c2"), Attrs([Attr("address","0x700"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("#3",Imm(64)),Int(8,64)),Var("R30",Imm(64)),LittleEndian(),64)), -Def(Tid(710, "%000002c6"), Attrs([Attr("address","0x700"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("R31",Imm(64)), -Var("#3",Imm(64))), Def(Tid(716, "%000002cc"), - Attrs([Attr("address","0x704"), Attr("insn","mov x29, sp")]), - Var("R29",Imm(64)), Var("R31",Imm(64))), Def(Tid(724, "%000002d4"), - Attrs([Attr("address","0x708"), Attr("insn","str x19, [sp, #0x10]")]), - Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(16,64)),Var("R19",Imm(64)),LittleEndian(),64)), -Def(Tid(729, "%000002d9"), Attrs([Attr("address","0x70C"), -Attr("insn","adrp x19, #69632")]), Var("R19",Imm(64)), Int(69632,64)), -Def(Tid(736, "%000002e0"), Attrs([Attr("address","0x710"), -Attr("insn","ldrb w0, [x19, #0x38]")]), Var("R0",Imm(64)), -UNSIGNED(64,Load(Var("mem",Mem(64,8)),PLUS(Var("R19",Imm(64)),Int(56,64)),LittleEndian(),8)))]), -Jmps([Goto(Tid(743, "%000002e7"), Attrs([Attr("address","0x714"), -Attr("insn","cbnz w0, #0x28")]), - NEQ(Extract(31,0,Var("R0",Imm(64))),Int(0,32)), -Direct(Tid(741, "%000002e5"))), Goto(Tid(1_750, "%000006d6"), Attrs([]), - Int(1,1), Direct(Tid(986, "%000003da")))])), Blk(Tid(986, "%000003da"), - Attrs([Attr("address","0x718")]), Phis([]), Defs([Def(Tid(989, "%000003dd"), - Attrs([Attr("address","0x718"), Attr("insn","adrp x0, #65536")]), - Var("R0",Imm(64)), Int(65536,64)), Def(Tid(996, "%000003e4"), - Attrs([Attr("address","0x71C"), Attr("insn","ldr x0, [x0, #0xfc8]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(4040,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(1_002, "%000003ea"), Attrs([Attr("address","0x720"), -Attr("insn","cbz x0, #0x10")]), EQ(Var("R0",Imm(64)),Int(0,64)), -Direct(Tid(1_000, "%000003e8"))), Goto(Tid(1_751, "%000006d7"), Attrs([]), - Int(1,1), Direct(Tid(1_025, "%00000401")))])), Blk(Tid(1_025, "%00000401"), - Attrs([Attr("address","0x724")]), Phis([]), -Defs([Def(Tid(1_028, "%00000404"), Attrs([Attr("address","0x724"), -Attr("insn","adrp x0, #69632")]), Var("R0",Imm(64)), Int(69632,64)), -Def(Tid(1_035, "%0000040b"), Attrs([Attr("address","0x728"), -Attr("insn","ldr x0, [x0, #0x30]")]), Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(48,64)),LittleEndian(),64)), -Def(Tid(1_040, "%00000410"), Attrs([Attr("address","0x72C"), -Attr("insn","bl #-0x12c")]), Var("R30",Imm(64)), Int(1840,64))]), -Jmps([Call(Tid(1_043, "%00000413"), Attrs([Attr("address","0x72C"), -Attr("insn","bl #-0x12c")]), Int(1,1), -(Direct(Tid(1_705, "@__cxa_finalize")),Direct(Tid(1_000, "%000003e8"))))])), -Blk(Tid(1_000, "%000003e8"), Attrs([Attr("address","0x730")]), Phis([]), -Defs([Def(Tid(1_008, "%000003f0"), Attrs([Attr("address","0x730"), -Attr("insn","bl #-0xa0")]), Var("R30",Imm(64)), Int(1844,64))]), -Jmps([Call(Tid(1_010, "%000003f2"), Attrs([Attr("address","0x730"), -Attr("insn","bl #-0xa0")]), Int(1,1), -(Direct(Tid(1_719, "@deregister_tm_clones")),Direct(Tid(1_012, "%000003f4"))))])), -Blk(Tid(1_012, "%000003f4"), Attrs([Attr("address","0x734")]), Phis([]), -Defs([Def(Tid(1_015, "%000003f7"), Attrs([Attr("address","0x734"), -Attr("insn","mov w0, #0x1")]), Var("R0",Imm(64)), Int(1,64)), -Def(Tid(1_023, "%000003ff"), Attrs([Attr("address","0x738"), -Attr("insn","strb w0, [x19, #0x38]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R19",Imm(64)),Int(56,64)),Extract(7,0,Var("R0",Imm(64))),LittleEndian(),8))]), -Jmps([Goto(Tid(1_752, "%000006d8"), Attrs([]), Int(1,1), -Direct(Tid(741, "%000002e5")))])), Blk(Tid(741, "%000002e5"), - Attrs([Attr("address","0x73C")]), Phis([]), Defs([Def(Tid(751, "%000002ef"), - Attrs([Attr("address","0x73C"), Attr("insn","ldr x19, [sp, #0x10]")]), - Var("R19",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(16,64)),LittleEndian(),64)), -Def(Tid(758, "%000002f6"), Attrs([Attr("address","0x740"), -Attr("insn","ldp x29, x30, [sp], #0x20")]), Var("R29",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(763, "%000002fb"), Attrs([Attr("address","0x740"), -Attr("insn","ldp x29, x30, [sp], #0x20")]), Var("R30",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(767, "%000002ff"), Attrs([Attr("address","0x740"), -Attr("insn","ldp x29, x30, [sp], #0x20")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(32,64)))]), Jmps([Call(Tid(772, "%00000304"), - Attrs([Attr("address","0x744"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), Sub(Tid(1_710, "@__libc_start_main"), - Attrs([Attr("c.proto","signed (*)(signed (*)(signed , char** , char** );* main, signed , char** , \nvoid* auxv)"), -Attr("address","0x5F0"), Attr("stub","()")]), "__libc_start_main", - Args([Arg(Tid(1_763, "%000006e3"), - Attrs([Attr("c.layout","**[ : 64]"), -Attr("c.data","Top:u64 ptr ptr"), -Attr("c.type","signed (*)(signed , char** , char** );*")]), - Var("__libc_start_main_main",Imm(64)), Var("R0",Imm(64)), In()), -Arg(Tid(1_764, "%000006e4"), Attrs([Attr("c.layout","[signed : 32]"), -Attr("c.data","Top:u32"), Attr("c.type","signed")]), - Var("__libc_start_main_arg2",Imm(32)), LOW(32,Var("R1",Imm(64))), In()), -Arg(Tid(1_765, "%000006e5"), Attrs([Attr("c.layout","**[char : 8]"), -Attr("c.data","Top:u8 ptr ptr"), Attr("c.type","char**")]), - Var("__libc_start_main_arg3",Imm(64)), Var("R2",Imm(64)), Both()), -Arg(Tid(1_766, "%000006e6"), Attrs([Attr("c.layout","*[ : 8]"), -Attr("c.data","{} ptr"), Attr("c.type","void*")]), - Var("__libc_start_main_auxv",Imm(64)), Var("R3",Imm(64)), Both()), -Arg(Tid(1_767, "%000006e7"), Attrs([Attr("c.layout","[signed : 32]"), -Attr("c.data","Top:u32"), Attr("c.type","signed")]), - Var("__libc_start_main_result",Imm(32)), LOW(32,Var("R0",Imm(64))), -Out())]), Blks([Blk(Tid(523, "@__libc_start_main"), - Attrs([Attr("address","0x5F0")]), Phis([]), -Defs([Def(Tid(1_283, "%00000503"), Attrs([Attr("address","0x5F0"), -Attr("insn","adrp x16, #69632")]), Var("R16",Imm(64)), Int(69632,64)), -Def(Tid(1_290, "%0000050a"), Attrs([Attr("address","0x5F4"), -Attr("insn","ldr x17, [x16]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R16",Imm(64)),LittleEndian(),64)), -Def(Tid(1_296, "%00000510"), Attrs([Attr("address","0x5F8"), -Attr("insn","add x16, x16, #0x0")]), Var("R16",Imm(64)), -Var("R16",Imm(64)))]), Jmps([Call(Tid(1_301, "%00000515"), - Attrs([Attr("address","0x5FC"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), Sub(Tid(1_711, "@_fini"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x7B8")]), - "_fini", Args([Arg(Tid(1_768, "%000006e8"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("_fini_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(31, "@_fini"), - Attrs([Attr("address","0x7B8")]), Phis([]), Defs([Def(Tid(37, "%00000025"), - Attrs([Attr("address","0x7BC"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("#0",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(18446744073709551600,64))), -Def(Tid(43, "%0000002b"), Attrs([Attr("address","0x7BC"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("#0",Imm(64)),Var("R29",Imm(64)),LittleEndian(),64)), -Def(Tid(49, "%00000031"), Attrs([Attr("address","0x7BC"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("#0",Imm(64)),Int(8,64)),Var("R30",Imm(64)),LittleEndian(),64)), -Def(Tid(53, "%00000035"), Attrs([Attr("address","0x7BC"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("R31",Imm(64)), -Var("#0",Imm(64))), Def(Tid(59, "%0000003b"), Attrs([Attr("address","0x7C0"), -Attr("insn","mov x29, sp")]), Var("R29",Imm(64)), Var("R31",Imm(64))), -Def(Tid(66, "%00000042"), Attrs([Attr("address","0x7C4"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R29",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(71, "%00000047"), Attrs([Attr("address","0x7C4"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R30",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(75, "%0000004b"), Attrs([Attr("address","0x7C4"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(16,64)))]), Jmps([Call(Tid(80, "%00000050"), - Attrs([Attr("address","0x7C8"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), Sub(Tid(1_712, "@_init"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x5B8")]), - "_init", Args([Arg(Tid(1_769, "%000006e9"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("_init_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(1_518, "@_init"), - Attrs([Attr("address","0x5B8")]), Phis([]), -Defs([Def(Tid(1_524, "%000005f4"), Attrs([Attr("address","0x5BC"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("#8",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(18446744073709551600,64))), -Def(Tid(1_530, "%000005fa"), Attrs([Attr("address","0x5BC"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("#8",Imm(64)),Var("R29",Imm(64)),LittleEndian(),64)), -Def(Tid(1_536, "%00000600"), Attrs([Attr("address","0x5BC"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("#8",Imm(64)),Int(8,64)),Var("R30",Imm(64)),LittleEndian(),64)), -Def(Tid(1_540, "%00000604"), Attrs([Attr("address","0x5BC"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("R31",Imm(64)), -Var("#8",Imm(64))), Def(Tid(1_546, "%0000060a"), - Attrs([Attr("address","0x5C0"), Attr("insn","mov x29, sp")]), - Var("R29",Imm(64)), Var("R31",Imm(64))), Def(Tid(1_551, "%0000060f"), - Attrs([Attr("address","0x5C4"), Attr("insn","bl #0xb0")]), - Var("R30",Imm(64)), Int(1480,64))]), Jmps([Call(Tid(1_553, "%00000611"), - Attrs([Attr("address","0x5C4"), Attr("insn","bl #0xb0")]), Int(1,1), -(Direct(Tid(1_717, "@call_weak_fn")),Direct(Tid(1_555, "%00000613"))))])), -Blk(Tid(1_555, "%00000613"), Attrs([Attr("address","0x5C8")]), Phis([]), -Defs([Def(Tid(1_560, "%00000618"), Attrs([Attr("address","0x5C8"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R29",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(1_565, "%0000061d"), Attrs([Attr("address","0x5C8"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R30",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(1_569, "%00000621"), Attrs([Attr("address","0x5C8"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(16,64)))]), Jmps([Call(Tid(1_574, "%00000626"), - Attrs([Attr("address","0x5CC"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), Sub(Tid(1_713, "@_start"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x640"), -Attr("stub","()"), Attr("entry-point","()")]), "_start", - Args([Arg(Tid(1_770, "%000006ea"), Attrs([Attr("c.layout","[signed : 32]"), -Attr("c.data","Top:u32"), Attr("c.type","signed")]), - Var("_start_result",Imm(32)), LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(460, "@_start"), Attrs([Attr("address","0x640")]), Phis([]), -Defs([Def(Tid(465, "%000001d1"), Attrs([Attr("address","0x644"), -Attr("insn","mov x29, #0x0")]), Var("R29",Imm(64)), Int(0,64)), -Def(Tid(470, "%000001d6"), Attrs([Attr("address","0x648"), -Attr("insn","mov x30, #0x0")]), Var("R30",Imm(64)), Int(0,64)), -Def(Tid(476, "%000001dc"), Attrs([Attr("address","0x64C"), -Attr("insn","mov x5, x0")]), Var("R5",Imm(64)), Var("R0",Imm(64))), -Def(Tid(483, "%000001e3"), Attrs([Attr("address","0x650"), -Attr("insn","ldr x1, [sp]")]), Var("R1",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(489, "%000001e9"), Attrs([Attr("address","0x654"), -Attr("insn","add x2, sp, #0x8")]), Var("R2",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(8,64))), Def(Tid(495, "%000001ef"), - Attrs([Attr("address","0x658"), Attr("insn","mov x6, sp")]), - Var("R6",Imm(64)), Var("R31",Imm(64))), Def(Tid(500, "%000001f4"), - Attrs([Attr("address","0x65C"), Attr("insn","adrp x0, #65536")]), - Var("R0",Imm(64)), Int(65536,64)), Def(Tid(507, "%000001fb"), - Attrs([Attr("address","0x660"), Attr("insn","ldr x0, [x0, #0xfd8]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(4056,64)),LittleEndian(),64)), -Def(Tid(512, "%00000200"), Attrs([Attr("address","0x664"), -Attr("insn","mov x3, #0x0")]), Var("R3",Imm(64)), Int(0,64)), -Def(Tid(517, "%00000205"), Attrs([Attr("address","0x668"), -Attr("insn","mov x4, #0x0")]), Var("R4",Imm(64)), Int(0,64)), -Def(Tid(522, "%0000020a"), Attrs([Attr("address","0x66C"), -Attr("insn","bl #-0x7c")]), Var("R30",Imm(64)), Int(1648,64))]), -Jmps([Call(Tid(525, "%0000020d"), Attrs([Attr("address","0x66C"), -Attr("insn","bl #-0x7c")]), Int(1,1), -(Direct(Tid(1_710, "@__libc_start_main")),Direct(Tid(527, "%0000020f"))))])), -Blk(Tid(527, "%0000020f"), Attrs([Attr("address","0x670")]), Phis([]), -Defs([Def(Tid(530, "%00000212"), Attrs([Attr("address","0x670"), -Attr("insn","bl #-0x50")]), Var("R30",Imm(64)), Int(1652,64))]), -Jmps([Call(Tid(533, "%00000215"), Attrs([Attr("address","0x670"), -Attr("insn","bl #-0x50")]), Int(1,1), -(Direct(Tid(1_716, "@abort")),Direct(Tid(1_753, "%000006d9"))))])), -Blk(Tid(1_753, "%000006d9"), Attrs([]), Phis([]), Defs([]), -Jmps([Call(Tid(1_754, "%000006da"), Attrs([]), Int(1,1), -(Direct(Tid(1_717, "@call_weak_fn")),))]))])), Sub(Tid(1_716, "@abort"), - Attrs([Attr("noreturn","()"), Attr("c.proto","void (*)(void)"), -Attr("address","0x620"), Attr("stub","()")]), "abort", Args([]), -Blks([Blk(Tid(531, "@abort"), Attrs([Attr("address","0x620")]), Phis([]), -Defs([Def(Tid(1_349, "%00000545"), Attrs([Attr("address","0x620"), -Attr("insn","adrp x16, #69632")]), Var("R16",Imm(64)), Int(69632,64)), -Def(Tid(1_356, "%0000054c"), Attrs([Attr("address","0x624"), -Attr("insn","ldr x17, [x16, #0x18]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(24,64)),LittleEndian(),64)), -Def(Tid(1_362, "%00000552"), Attrs([Attr("address","0x628"), -Attr("insn","add x16, x16, #0x18")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(24,64)))]), Jmps([Call(Tid(1_367, "%00000557"), - Attrs([Attr("address","0x62C"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), Sub(Tid(1_717, "@call_weak_fn"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x674")]), - "call_weak_fn", Args([Arg(Tid(1_771, "%000006eb"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("call_weak_fn_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(535, "@call_weak_fn"), - Attrs([Attr("address","0x674")]), Phis([]), Defs([Def(Tid(538, "%0000021a"), - Attrs([Attr("address","0x674"), Attr("insn","adrp x0, #65536")]), - Var("R0",Imm(64)), Int(65536,64)), Def(Tid(545, "%00000221"), - Attrs([Attr("address","0x678"), Attr("insn","ldr x0, [x0, #0xfd0]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(4048,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(551, "%00000227"), Attrs([Attr("address","0x67C"), -Attr("insn","cbz x0, #0x8")]), EQ(Var("R0",Imm(64)),Int(0,64)), -Direct(Tid(549, "%00000225"))), Goto(Tid(1_755, "%000006db"), Attrs([]), - Int(1,1), Direct(Tid(1_105, "%00000451")))])), Blk(Tid(549, "%00000225"), - Attrs([Attr("address","0x684")]), Phis([]), Defs([]), -Jmps([Call(Tid(557, "%0000022d"), Attrs([Attr("address","0x684"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))])), -Blk(Tid(1_105, "%00000451"), Attrs([Attr("address","0x680")]), Phis([]), -Defs([]), Jmps([Goto(Tid(1_108, "%00000454"), Attrs([Attr("address","0x680"), -Attr("insn","b #-0x70")]), Int(1,1), -Direct(Tid(1_106, "@__gmon_start__")))])), Blk(Tid(1_106, "@__gmon_start__"), - Attrs([Attr("address","0x610")]), Phis([]), -Defs([Def(Tid(1_327, "%0000052f"), Attrs([Attr("address","0x610"), -Attr("insn","adrp x16, #69632")]), Var("R16",Imm(64)), Int(69632,64)), -Def(Tid(1_334, "%00000536"), Attrs([Attr("address","0x614"), -Attr("insn","ldr x17, [x16, #0x10]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(16,64)),LittleEndian(),64)), -Def(Tid(1_340, "%0000053c"), Attrs([Attr("address","0x618"), -Attr("insn","add x16, x16, #0x10")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(16,64)))]), Jmps([Call(Tid(1_345, "%00000541"), - Attrs([Attr("address","0x61C"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), -Sub(Tid(1_719, "@deregister_tm_clones"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x690")]), - "deregister_tm_clones", Args([Arg(Tid(1_772, "%000006ec"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("deregister_tm_clones_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(563, "@deregister_tm_clones"), - Attrs([Attr("address","0x690")]), Phis([]), Defs([Def(Tid(566, "%00000236"), - Attrs([Attr("address","0x690"), Attr("insn","adrp x0, #69632")]), - Var("R0",Imm(64)), Int(69632,64)), Def(Tid(572, "%0000023c"), - Attrs([Attr("address","0x694"), Attr("insn","add x0, x0, #0x38")]), - Var("R0",Imm(64)), PLUS(Var("R0",Imm(64)),Int(56,64))), -Def(Tid(577, "%00000241"), Attrs([Attr("address","0x698"), -Attr("insn","adrp x1, #69632")]), Var("R1",Imm(64)), Int(69632,64)), -Def(Tid(583, "%00000247"), Attrs([Attr("address","0x69C"), -Attr("insn","add x1, x1, #0x38")]), Var("R1",Imm(64)), -PLUS(Var("R1",Imm(64)),Int(56,64))), Def(Tid(589, "%0000024d"), - Attrs([Attr("address","0x6A0"), Attr("insn","cmp x1, x0")]), - Var("#1",Imm(64)), NOT(Var("R0",Imm(64)))), Def(Tid(594, "%00000252"), - Attrs([Attr("address","0x6A0"), Attr("insn","cmp x1, x0")]), - Var("#2",Imm(64)), PLUS(Var("R1",Imm(64)),NOT(Var("R0",Imm(64))))), -Def(Tid(600, "%00000258"), Attrs([Attr("address","0x6A0"), -Attr("insn","cmp x1, x0")]), Var("VF",Imm(1)), -NEQ(SIGNED(65,PLUS(Var("#2",Imm(64)),Int(1,64))),PLUS(PLUS(SIGNED(65,Var("R1",Imm(64))),SIGNED(65,Var("#1",Imm(64)))),Int(1,65)))), -Def(Tid(606, "%0000025e"), Attrs([Attr("address","0x6A0"), -Attr("insn","cmp x1, x0")]), Var("CF",Imm(1)), -NEQ(UNSIGNED(65,PLUS(Var("#2",Imm(64)),Int(1,64))),PLUS(PLUS(UNSIGNED(65,Var("R1",Imm(64))),UNSIGNED(65,Var("#1",Imm(64)))),Int(1,65)))), -Def(Tid(610, "%00000262"), Attrs([Attr("address","0x6A0"), -Attr("insn","cmp x1, x0")]), Var("ZF",Imm(1)), -EQ(PLUS(Var("#2",Imm(64)),Int(1,64)),Int(0,64))), Def(Tid(614, "%00000266"), - Attrs([Attr("address","0x6A0"), Attr("insn","cmp x1, x0")]), - Var("NF",Imm(1)), Extract(63,63,PLUS(Var("#2",Imm(64)),Int(1,64))))]), -Jmps([Goto(Tid(620, "%0000026c"), Attrs([Attr("address","0x6A4"), -Attr("insn","b.eq #0x18")]), EQ(Var("ZF",Imm(1)),Int(1,1)), -Direct(Tid(618, "%0000026a"))), Goto(Tid(1_756, "%000006dc"), Attrs([]), - Int(1,1), Direct(Tid(1_075, "%00000433")))])), Blk(Tid(1_075, "%00000433"), - Attrs([Attr("address","0x6A8")]), Phis([]), -Defs([Def(Tid(1_078, "%00000436"), Attrs([Attr("address","0x6A8"), -Attr("insn","adrp x1, #65536")]), Var("R1",Imm(64)), Int(65536,64)), -Def(Tid(1_085, "%0000043d"), Attrs([Attr("address","0x6AC"), -Attr("insn","ldr x1, [x1, #0xfc0]")]), Var("R1",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R1",Imm(64)),Int(4032,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(1_090, "%00000442"), Attrs([Attr("address","0x6B0"), -Attr("insn","cbz x1, #0xc")]), EQ(Var("R1",Imm(64)),Int(0,64)), -Direct(Tid(618, "%0000026a"))), Goto(Tid(1_757, "%000006dd"), Attrs([]), - Int(1,1), Direct(Tid(1_094, "%00000446")))])), Blk(Tid(618, "%0000026a"), - Attrs([Attr("address","0x6BC")]), Phis([]), Defs([]), -Jmps([Call(Tid(626, "%00000272"), Attrs([Attr("address","0x6BC"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))])), -Blk(Tid(1_094, "%00000446"), Attrs([Attr("address","0x6B4")]), Phis([]), -Defs([Def(Tid(1_098, "%0000044a"), Attrs([Attr("address","0x6B4"), -Attr("insn","mov x16, x1")]), Var("R16",Imm(64)), Var("R1",Imm(64)))]), -Jmps([Call(Tid(1_103, "%0000044f"), Attrs([Attr("address","0x6B8"), -Attr("insn","br x16")]), Int(1,1), (Indirect(Var("R16",Imm(64))),))]))])), -Sub(Tid(1_722, "@frame_dummy"), Attrs([Attr("c.proto","signed (*)(void)"), -Attr("address","0x750")]), "frame_dummy", Args([Arg(Tid(1_773, "%000006ed"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("frame_dummy_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(778, "@frame_dummy"), - Attrs([Attr("address","0x750")]), Phis([]), Defs([]), -Jmps([Call(Tid(780, "%0000030c"), Attrs([Attr("address","0x750"), -Attr("insn","b #-0x90")]), Int(1,1), -(Direct(Tid(1_726, "@register_tm_clones")),))]))])), -Sub(Tid(1_723, "@greet"), Attrs([Attr("c.proto","signed (*)(void)"), -Attr("address","0x754")]), "greet", Args([Arg(Tid(1_774, "%000006ee"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("greet_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(782, "@greet"), - Attrs([Attr("address","0x754")]), Phis([]), Defs([Def(Tid(786, "%00000312"), - Attrs([Attr("address","0x754"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("#4",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(18446744073709551600,64))), -Def(Tid(792, "%00000318"), Attrs([Attr("address","0x754"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("#4",Imm(64)),Var("R29",Imm(64)),LittleEndian(),64)), -Def(Tid(798, "%0000031e"), Attrs([Attr("address","0x754"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("#4",Imm(64)),Int(8,64)),Var("R30",Imm(64)),LittleEndian(),64)), -Def(Tid(802, "%00000322"), Attrs([Attr("address","0x754"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("R31",Imm(64)), -Var("#4",Imm(64))), Def(Tid(808, "%00000328"), - Attrs([Attr("address","0x758"), Attr("insn","mov x29, sp")]), - Var("R29",Imm(64)), Var("R31",Imm(64))), Def(Tid(813, "%0000032d"), - Attrs([Attr("address","0x75C"), Attr("insn","adrp x0, #0")]), - Var("R0",Imm(64)), Int(0,64)), Def(Tid(819, "%00000333"), - Attrs([Attr("address","0x760"), Attr("insn","add x0, x0, #0x7d0")]), - Var("R0",Imm(64)), PLUS(Var("R0",Imm(64)),Int(2000,64))), -Def(Tid(824, "%00000338"), Attrs([Attr("address","0x764"), -Attr("insn","bl #-0x134")]), Var("R30",Imm(64)), Int(1896,64))]), -Jmps([Call(Tid(827, "%0000033b"), Attrs([Attr("address","0x764"), -Attr("insn","bl #-0x134")]), Int(1,1), -(Direct(Tid(1_725, "@printf")),Direct(Tid(829, "%0000033d"))))])), -Blk(Tid(829, "%0000033d"), Attrs([Attr("address","0x768")]), Phis([]), -Defs([Def(Tid(834, "%00000342"), Attrs([Attr("address","0x768"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R29",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(839, "%00000347"), Attrs([Attr("address","0x768"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R30",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(843, "%0000034b"), Attrs([Attr("address","0x768"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(16,64)))]), Jmps([Call(Tid(848, "%00000350"), - Attrs([Attr("address","0x76C"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), Sub(Tid(1_724, "@main"), - Attrs([Attr("c.proto","signed (*)(signed argc, const char** argv)"), -Attr("address","0x770")]), "main", Args([Arg(Tid(1_775, "%000006ef"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("main_argc",Imm(32)), -LOW(32,Var("R0",Imm(64))), In()), Arg(Tid(1_776, "%000006f0"), - Attrs([Attr("c.layout","**[char : 8]"), Attr("c.data","Top:u8 ptr ptr"), -Attr("c.type"," const char**")]), Var("main_argv",Imm(64)), -Var("R1",Imm(64)), Both()), Arg(Tid(1_777, "%000006f1"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("main_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(850, "@main"), - Attrs([Attr("address","0x770")]), Phis([]), Defs([Def(Tid(854, "%00000356"), - Attrs([Attr("address","0x770"), Attr("insn","sub sp, sp, #0x30")]), - Var("R31",Imm(64)), PLUS(Var("R31",Imm(64)),Int(18446744073709551568,64))), -Def(Tid(860, "%0000035c"), Attrs([Attr("address","0x774"), -Attr("insn","stp x29, x30, [sp, #0x20]")]), Var("#5",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(32,64))), Def(Tid(866, "%00000362"), - Attrs([Attr("address","0x774"), Attr("insn","stp x29, x30, [sp, #0x20]")]), - Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("#5",Imm(64)),Var("R29",Imm(64)),LittleEndian(),64)), -Def(Tid(872, "%00000368"), Attrs([Attr("address","0x774"), -Attr("insn","stp x29, x30, [sp, #0x20]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("#5",Imm(64)),Int(8,64)),Var("R30",Imm(64)),LittleEndian(),64)), -Def(Tid(878, "%0000036e"), Attrs([Attr("address","0x778"), -Attr("insn","add x29, sp, #0x20")]), Var("R29",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(32,64))), Def(Tid(883, "%00000373"), - Attrs([Attr("address","0x77C"), Attr("insn","mov w8, wzr")]), - Var("R8",Imm(64)), Int(0,64)), Def(Tid(891, "%0000037b"), - Attrs([Attr("address","0x780"), Attr("insn","str w8, [sp, #0xc]")]), - Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(12,64)),Extract(31,0,Var("R8",Imm(64))),LittleEndian(),32)), -Def(Tid(898, "%00000382"), Attrs([Attr("address","0x784"), -Attr("insn","stur wzr, [x29, #-0x4]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R29",Imm(64)),Int(18446744073709551612,64)),Int(0,32),LittleEndian(),32)), -Def(Tid(903, "%00000387"), Attrs([Attr("address","0x788"), -Attr("insn","adrp x8, #0")]), Var("R8",Imm(64)), Int(0,64)), -Def(Tid(909, "%0000038d"), Attrs([Attr("address","0x78C"), -Attr("insn","add x8, x8, #0x754")]), Var("R8",Imm(64)), -PLUS(Var("R8",Imm(64)),Int(1876,64))), Def(Tid(917, "%00000395"), - Attrs([Attr("address","0x790"), Attr("insn","str x8, [sp, #0x10]")]), - Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(16,64)),Var("R8",Imm(64)),LittleEndian(),64)), -Def(Tid(922, "%0000039a"), Attrs([Attr("address","0x794"), -Attr("insn","adrp x0, #0")]), Var("R0",Imm(64)), Int(0,64)), -Def(Tid(928, "%000003a0"), Attrs([Attr("address","0x798"), -Attr("insn","add x0, x0, #0x7df")]), Var("R0",Imm(64)), -PLUS(Var("R0",Imm(64)),Int(2015,64))), Def(Tid(933, "%000003a5"), - Attrs([Attr("address","0x79C"), Attr("insn","bl #-0x16c")]), - Var("R30",Imm(64)), Int(1952,64))]), Jmps([Call(Tid(935, "%000003a7"), - Attrs([Attr("address","0x79C"), Attr("insn","bl #-0x16c")]), Int(1,1), -(Direct(Tid(1_725, "@printf")),Direct(Tid(937, "%000003a9"))))])), -Blk(Tid(937, "%000003a9"), Attrs([Attr("address","0x7A0")]), Phis([]), -Defs([Def(Tid(942, "%000003ae"), Attrs([Attr("address","0x7A0"), -Attr("insn","ldr x8, [sp, #0x10]")]), Var("R8",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(16,64)),LittleEndian(),64)), -Def(Tid(947, "%000003b3"), Attrs([Attr("address","0x7A4"), -Attr("insn","blr x8")]), Var("R30",Imm(64)), Int(1960,64))]), -Jmps([Call(Tid(950, "%000003b6"), Attrs([Attr("address","0x7A4"), -Attr("insn","blr x8")]), Int(1,1), -(Indirect(Var("R8",Imm(64))),Direct(Tid(952, "%000003b8"))))])), -Blk(Tid(952, "%000003b8"), Attrs([Attr("address","0x7A8")]), Phis([]), -Defs([Def(Tid(957, "%000003bd"), Attrs([Attr("address","0x7A8"), -Attr("insn","ldr w0, [sp, #0xc]")]), Var("R0",Imm(64)), -UNSIGNED(64,Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(12,64)),LittleEndian(),32))), -Def(Tid(963, "%000003c3"), Attrs([Attr("address","0x7AC"), -Attr("insn","ldp x29, x30, [sp, #0x20]")]), Var("#6",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(32,64))), Def(Tid(968, "%000003c8"), - Attrs([Attr("address","0x7AC"), Attr("insn","ldp x29, x30, [sp, #0x20]")]), - Var("R29",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("#6",Imm(64)),LittleEndian(),64)), -Def(Tid(973, "%000003cd"), Attrs([Attr("address","0x7AC"), -Attr("insn","ldp x29, x30, [sp, #0x20]")]), Var("R30",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("#6",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(979, "%000003d3"), Attrs([Attr("address","0x7B0"), -Attr("insn","add sp, sp, #0x30")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(48,64)))]), Jmps([Call(Tid(984, "%000003d8"), - Attrs([Attr("address","0x7B4"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), Sub(Tid(1_725, "@printf"), - Attrs([Attr("c.proto","signed (*)( const char restrict * format, ...)"), -Attr("address","0x630"), Attr("stub","()")]), "printf", - Args([Arg(Tid(1_778, "%000006f2"), Attrs([Attr("format","\"printf\""), -Attr("c.layout","*[char : 8]"), Attr("c.data","Top:u8 ptr"), -Attr("c.type"," const char restrict *")]), Var("printf_format",Imm(64)), -Var("R0",Imm(64)), In()), Arg(Tid(1_779, "%000006f3"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("printf_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(825, "@printf"), - Attrs([Attr("address","0x630")]), Phis([]), -Defs([Def(Tid(1_371, "%0000055b"), Attrs([Attr("address","0x630"), -Attr("insn","adrp x16, #69632")]), Var("R16",Imm(64)), Int(69632,64)), -Def(Tid(1_378, "%00000562"), Attrs([Attr("address","0x634"), -Attr("insn","ldr x17, [x16, #0x20]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(32,64)),LittleEndian(),64)), -Def(Tid(1_384, "%00000568"), Attrs([Attr("address","0x638"), -Attr("insn","add x16, x16, #0x20")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(32,64)))]), Jmps([Call(Tid(1_389, "%0000056d"), - Attrs([Attr("address","0x63C"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), -Sub(Tid(1_726, "@register_tm_clones"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x6C0")]), - "register_tm_clones", Args([Arg(Tid(1_780, "%000006f4"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("register_tm_clones_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(628, "@register_tm_clones"), Attrs([Attr("address","0x6C0")]), - Phis([]), Defs([Def(Tid(631, "%00000277"), Attrs([Attr("address","0x6C0"), -Attr("insn","adrp x0, #69632")]), Var("R0",Imm(64)), Int(69632,64)), -Def(Tid(637, "%0000027d"), Attrs([Attr("address","0x6C4"), -Attr("insn","add x0, x0, #0x38")]), Var("R0",Imm(64)), -PLUS(Var("R0",Imm(64)),Int(56,64))), Def(Tid(642, "%00000282"), - Attrs([Attr("address","0x6C8"), Attr("insn","adrp x1, #69632")]), - Var("R1",Imm(64)), Int(69632,64)), Def(Tid(648, "%00000288"), - Attrs([Attr("address","0x6CC"), Attr("insn","add x1, x1, #0x38")]), - Var("R1",Imm(64)), PLUS(Var("R1",Imm(64)),Int(56,64))), -Def(Tid(655, "%0000028f"), Attrs([Attr("address","0x6D0"), -Attr("insn","sub x1, x1, x0")]), Var("R1",Imm(64)), -PLUS(PLUS(Var("R1",Imm(64)),NOT(Var("R0",Imm(64)))),Int(1,64))), -Def(Tid(661, "%00000295"), Attrs([Attr("address","0x6D4"), -Attr("insn","lsr x2, x1, #63")]), Var("R2",Imm(64)), -Concat(Int(0,63),Extract(63,63,Var("R1",Imm(64))))), -Def(Tid(668, "%0000029c"), Attrs([Attr("address","0x6D8"), -Attr("insn","add x1, x2, x1, asr #3")]), Var("R1",Imm(64)), -PLUS(Var("R2",Imm(64)),ARSHIFT(Var("R1",Imm(64)),Int(3,3)))), -Def(Tid(674, "%000002a2"), Attrs([Attr("address","0x6DC"), -Attr("insn","asr x1, x1, #1")]), Var("R1",Imm(64)), -SIGNED(64,Extract(63,1,Var("R1",Imm(64)))))]), -Jmps([Goto(Tid(680, "%000002a8"), Attrs([Attr("address","0x6E0"), -Attr("insn","cbz x1, #0x18")]), EQ(Var("R1",Imm(64)),Int(0,64)), -Direct(Tid(678, "%000002a6"))), Goto(Tid(1_758, "%000006de"), Attrs([]), - Int(1,1), Direct(Tid(1_045, "%00000415")))])), Blk(Tid(1_045, "%00000415"), - Attrs([Attr("address","0x6E4")]), Phis([]), -Defs([Def(Tid(1_048, "%00000418"), Attrs([Attr("address","0x6E4"), -Attr("insn","adrp x2, #65536")]), Var("R2",Imm(64)), Int(65536,64)), -Def(Tid(1_055, "%0000041f"), Attrs([Attr("address","0x6E8"), -Attr("insn","ldr x2, [x2, #0xfe0]")]), Var("R2",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R2",Imm(64)),Int(4064,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(1_060, "%00000424"), Attrs([Attr("address","0x6EC"), -Attr("insn","cbz x2, #0xc")]), EQ(Var("R2",Imm(64)),Int(0,64)), -Direct(Tid(678, "%000002a6"))), Goto(Tid(1_759, "%000006df"), Attrs([]), - Int(1,1), Direct(Tid(1_064, "%00000428")))])), Blk(Tid(678, "%000002a6"), - Attrs([Attr("address","0x6F8")]), Phis([]), Defs([]), -Jmps([Call(Tid(686, "%000002ae"), Attrs([Attr("address","0x6F8"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))])), -Blk(Tid(1_064, "%00000428"), Attrs([Attr("address","0x6F0")]), Phis([]), -Defs([Def(Tid(1_068, "%0000042c"), Attrs([Attr("address","0x6F0"), -Attr("insn","mov x16, x2")]), Var("R16",Imm(64)), Var("R2",Imm(64)))]), -Jmps([Call(Tid(1_073, "%00000431"), Attrs([Attr("address","0x6F4"), -Attr("insn","br x16")]), Int(1,1), -(Indirect(Var("R16",Imm(64))),))]))]))]))) \ No newline at end of file diff --git a/src/test/indirect_calls/indirect_call/clang/indirect_call.bir b/src/test/indirect_calls/indirect_call/clang/indirect_call.bir deleted file mode 100644 index 629031c32..000000000 --- a/src/test/indirect_calls/indirect_call/clang/indirect_call.bir +++ /dev/null @@ -1,280 +0,0 @@ -000006e0: program -000006a9: sub __cxa_finalize(__cxa_finalize_result) -000006e1: __cxa_finalize_result :: out u32 = low:32[R0] - -00000411: -00000519: R16 := 0x11000 -00000520: R17 := mem[R16 + 8, el]:u64 -00000526: R16 := R16 + 8 -0000052b: call R17 with noreturn - -000006aa: sub __do_global_dtors_aux(__do_global_dtors_aux_result) -000006e2: __do_global_dtors_aux_result :: out u32 = low:32[R0] - -000002b2: -000002b6: #3 := R31 - 0x20 -000002bc: mem := mem with [#3, el]:u64 <- R29 -000002c2: mem := mem with [#3 + 8, el]:u64 <- R30 -000002c6: R31 := #3 -000002cc: R29 := R31 -000002d4: mem := mem with [R31 + 0x10, el]:u64 <- R19 -000002d9: R19 := 0x11000 -000002e0: R0 := pad:64[mem[R19 + 0x38]] -000002e7: when 31:0[R0] <> 0 goto %000002e5 -000006d6: goto %000003da - -000003da: -000003dd: R0 := 0x10000 -000003e4: R0 := mem[R0 + 0xFC8, el]:u64 -000003ea: when R0 = 0 goto %000003e8 -000006d7: goto %00000401 - -00000401: -00000404: R0 := 0x11000 -0000040b: R0 := mem[R0 + 0x30, el]:u64 -00000410: R30 := 0x730 -00000413: call @__cxa_finalize with return %000003e8 - -000003e8: -000003f0: R30 := 0x734 -000003f2: call @deregister_tm_clones with return %000003f4 - -000003f4: -000003f7: R0 := 1 -000003ff: mem := mem with [R19 + 0x38] <- 7:0[R0] -000006d8: goto %000002e5 - -000002e5: -000002ef: R19 := mem[R31 + 0x10, el]:u64 -000002f6: R29 := mem[R31, el]:u64 -000002fb: R30 := mem[R31 + 8, el]:u64 -000002ff: R31 := R31 + 0x20 -00000304: call R30 with noreturn - -000006ae: sub __libc_start_main(__libc_start_main_main, __libc_start_main_arg2, __libc_start_main_arg3, __libc_start_main_auxv, __libc_start_main_result) -000006e3: __libc_start_main_main :: in u64 = R0 -000006e4: __libc_start_main_arg2 :: in u32 = low:32[R1] -000006e5: __libc_start_main_arg3 :: in out u64 = R2 -000006e6: __libc_start_main_auxv :: in out u64 = R3 -000006e7: __libc_start_main_result :: out u32 = low:32[R0] - -0000020b: -00000503: R16 := 0x11000 -0000050a: R17 := mem[R16, el]:u64 -00000510: R16 := R16 -00000515: call R17 with noreturn - -000006af: sub _fini(_fini_result) -000006e8: _fini_result :: out u32 = low:32[R0] - -0000001f: -00000025: #0 := R31 - 0x10 -0000002b: mem := mem with [#0, el]:u64 <- R29 -00000031: mem := mem with [#0 + 8, el]:u64 <- R30 -00000035: R31 := #0 -0000003b: R29 := R31 -00000042: R29 := mem[R31, el]:u64 -00000047: R30 := mem[R31 + 8, el]:u64 -0000004b: R31 := R31 + 0x10 -00000050: call R30 with noreturn - -000006b0: sub _init(_init_result) -000006e9: _init_result :: out u32 = low:32[R0] - -000005ee: -000005f4: #8 := R31 - 0x10 -000005fa: mem := mem with [#8, el]:u64 <- R29 -00000600: mem := mem with [#8 + 8, el]:u64 <- R30 -00000604: R31 := #8 -0000060a: R29 := R31 -0000060f: R30 := 0x5C8 -00000611: call @call_weak_fn with return %00000613 - -00000613: -00000618: R29 := mem[R31, el]:u64 -0000061d: R30 := mem[R31 + 8, el]:u64 -00000621: R31 := R31 + 0x10 -00000626: call R30 with noreturn - -000006b1: sub _start(_start_result) -000006ea: _start_result :: out u32 = low:32[R0] - -000001cc: -000001d1: R29 := 0 -000001d6: R30 := 0 -000001dc: R5 := R0 -000001e3: R1 := mem[R31, el]:u64 -000001e9: R2 := R31 + 8 -000001ef: R6 := R31 -000001f4: R0 := 0x10000 -000001fb: R0 := mem[R0 + 0xFD8, el]:u64 -00000200: R3 := 0 -00000205: R4 := 0 -0000020a: R30 := 0x670 -0000020d: call @__libc_start_main with return %0000020f - -0000020f: -00000212: R30 := 0x674 -00000215: call @abort with return %000006d9 - -000006d9: -000006da: call @call_weak_fn with noreturn - -000006b4: sub abort() - - -00000213: -00000545: R16 := 0x11000 -0000054c: R17 := mem[R16 + 0x18, el]:u64 -00000552: R16 := R16 + 0x18 -00000557: call R17 with noreturn - -000006b5: sub call_weak_fn(call_weak_fn_result) -000006eb: call_weak_fn_result :: out u32 = low:32[R0] - -00000217: -0000021a: R0 := 0x10000 -00000221: R0 := mem[R0 + 0xFD0, el]:u64 -00000227: when R0 = 0 goto %00000225 -000006db: goto %00000451 - -00000225: -0000022d: call R30 with noreturn - -00000451: -00000454: goto @__gmon_start__ - -00000452: -0000052f: R16 := 0x11000 -00000536: R17 := mem[R16 + 0x10, el]:u64 -0000053c: R16 := R16 + 0x10 -00000541: call R17 with noreturn - -000006b7: sub deregister_tm_clones(deregister_tm_clones_result) -000006ec: deregister_tm_clones_result :: out u32 = low:32[R0] - -00000233: -00000236: R0 := 0x11000 -0000023c: R0 := R0 + 0x38 -00000241: R1 := 0x11000 -00000247: R1 := R1 + 0x38 -0000024d: #1 := ~R0 -00000252: #2 := R1 + ~R0 -00000258: VF := extend:65[#2 + 1] <> extend:65[R1] + extend:65[#1] + 1 -0000025e: CF := pad:65[#2 + 1] <> pad:65[R1] + pad:65[#1] + 1 -00000262: ZF := #2 + 1 = 0 -00000266: NF := 63:63[#2 + 1] -0000026c: when ZF goto %0000026a -000006dc: goto %00000433 - -00000433: -00000436: R1 := 0x10000 -0000043d: R1 := mem[R1 + 0xFC0, el]:u64 -00000442: when R1 = 0 goto %0000026a -000006dd: goto %00000446 - -0000026a: -00000272: call R30 with noreturn - -00000446: -0000044a: R16 := R1 -0000044f: call R16 with noreturn - -000006ba: sub frame_dummy(frame_dummy_result) -000006ed: frame_dummy_result :: out u32 = low:32[R0] - -0000030a: -0000030c: call @register_tm_clones with noreturn - -000006bb: sub greet(greet_result) -000006ee: greet_result :: out u32 = low:32[R0] - -0000030e: -00000312: #4 := R31 - 0x10 -00000318: mem := mem with [#4, el]:u64 <- R29 -0000031e: mem := mem with [#4 + 8, el]:u64 <- R30 -00000322: R31 := #4 -00000328: R29 := R31 -0000032d: R0 := 0 -00000333: R0 := R0 + 0x7D0 -00000338: R30 := 0x768 -0000033b: call @printf with return %0000033d - -0000033d: -00000342: R29 := mem[R31, el]:u64 -00000347: R30 := mem[R31 + 8, el]:u64 -0000034b: R31 := R31 + 0x10 -00000350: call R30 with noreturn - -000006bc: sub main(main_argc, main_argv, main_result) -000006ef: main_argc :: in u32 = low:32[R0] -000006f0: main_argv :: in out u64 = R1 -000006f1: main_result :: out u32 = low:32[R0] - -00000352: -00000356: R31 := R31 - 0x30 -0000035c: #5 := R31 + 0x20 -00000362: mem := mem with [#5, el]:u64 <- R29 -00000368: mem := mem with [#5 + 8, el]:u64 <- R30 -0000036e: R29 := R31 + 0x20 -00000373: R8 := 0 -0000037b: mem := mem with [R31 + 0xC, el]:u32 <- 31:0[R8] -00000382: mem := mem with [R29 - 4, el]:u32 <- 0 -00000387: R8 := 0 -0000038d: R8 := R8 + 0x754 -00000395: mem := mem with [R31 + 0x10, el]:u64 <- R8 -0000039a: R0 := 0 -000003a0: R0 := R0 + 0x7DF -000003a5: R30 := 0x7A0 -000003a7: call @printf with return %000003a9 - -000003a9: -000003ae: R8 := mem[R31 + 0x10, el]:u64 -000003b3: R30 := 0x7A8 -000003b6: call R8 with return %000003b8 - -000003b8: -000003bd: R0 := pad:64[mem[R31 + 0xC, el]:u32] -000003c3: #6 := R31 + 0x20 -000003c8: R29 := mem[#6, el]:u64 -000003cd: R30 := mem[#6 + 8, el]:u64 -000003d3: R31 := R31 + 0x30 -000003d8: call R30 with noreturn - -000006bd: sub printf(printf_format, printf_result) -000006f2: printf_format :: in u64 = R0 -000006f3: printf_result :: out u32 = low:32[R0] - -00000339: -0000055b: R16 := 0x11000 -00000562: R17 := mem[R16 + 0x20, el]:u64 -00000568: R16 := R16 + 0x20 -0000056d: call R17 with noreturn - -000006be: sub register_tm_clones(register_tm_clones_result) -000006f4: register_tm_clones_result :: out u32 = low:32[R0] - -00000274: -00000277: R0 := 0x11000 -0000027d: R0 := R0 + 0x38 -00000282: R1 := 0x11000 -00000288: R1 := R1 + 0x38 -0000028f: R1 := R1 + ~R0 + 1 -00000295: R2 := 0.63:63[R1] -0000029c: R1 := R2 + (R1 ~>> 3) -000002a2: R1 := extend:64[63:1[R1]] -000002a8: when R1 = 0 goto %000002a6 -000006de: goto %00000415 - -00000415: -00000418: R2 := 0x10000 -0000041f: R2 := mem[R2 + 0xFE0, el]:u64 -00000424: when R2 = 0 goto %000002a6 -000006df: goto %00000428 - -000002a6: -000002ae: call R30 with noreturn - -00000428: -0000042c: R16 := R2 -00000431: call R16 with noreturn diff --git a/src/test/indirect_calls/indirect_call/clang/indirect_call.md5sum b/src/test/indirect_calls/indirect_call/clang/indirect_call.md5sum new file mode 100644 index 000000000..dca18f836 --- /dev/null +++ b/src/test/indirect_calls/indirect_call/clang/indirect_call.md5sum @@ -0,0 +1,4 @@ +cf83be26369d10dba380fb84b5269c22 indirect_calls/indirect_call/clang/a.out +139d93f429d8076bafddc3cd8d5cef94 indirect_calls/indirect_call/clang/indirect_call.relf +6799733b0eb9ea40adadb026378251d6 indirect_calls/indirect_call/clang/indirect_call.adt +dd93594c541fde6d7a14151218dff1c1 indirect_calls/indirect_call/clang/indirect_call.bir diff --git a/src/test/indirect_calls/indirect_call/clang/indirect_call.relf b/src/test/indirect_calls/indirect_call/clang/indirect_call.relf deleted file mode 100644 index 5ff7097a0..000000000 --- a/src/test/indirect_calls/indirect_call/clang/indirect_call.relf +++ /dev/null @@ -1,126 +0,0 @@ - -Relocation section '.rela.dyn' at offset 0x480 contains 8 entries: - Offset Info Type Symbol's Value Symbol's Name + Addend -0000000000010dc8 0000000000000403 R_AARCH64_RELATIVE 750 -0000000000010dd0 0000000000000403 R_AARCH64_RELATIVE 700 -0000000000010fd8 0000000000000403 R_AARCH64_RELATIVE 770 -0000000000011030 0000000000000403 R_AARCH64_RELATIVE 11030 -0000000000010fc0 0000000400000401 R_AARCH64_GLOB_DAT 0000000000000000 _ITM_deregisterTMCloneTable + 0 -0000000000010fc8 0000000500000401 R_AARCH64_GLOB_DAT 0000000000000000 __cxa_finalize@GLIBC_2.17 + 0 -0000000000010fd0 0000000600000401 R_AARCH64_GLOB_DAT 0000000000000000 __gmon_start__ + 0 -0000000000010fe0 0000000800000401 R_AARCH64_GLOB_DAT 0000000000000000 _ITM_registerTMCloneTable + 0 - -Relocation section '.rela.plt' at offset 0x540 contains 5 entries: - Offset Info Type Symbol's Value Symbol's Name + Addend -0000000000011000 0000000300000402 R_AARCH64_JUMP_SLOT 0000000000000000 __libc_start_main@GLIBC_2.34 + 0 -0000000000011008 0000000500000402 R_AARCH64_JUMP_SLOT 0000000000000000 __cxa_finalize@GLIBC_2.17 + 0 -0000000000011010 0000000600000402 R_AARCH64_JUMP_SLOT 0000000000000000 __gmon_start__ + 0 -0000000000011018 0000000700000402 R_AARCH64_JUMP_SLOT 0000000000000000 abort@GLIBC_2.17 + 0 -0000000000011020 0000000900000402 R_AARCH64_JUMP_SLOT 0000000000000000 printf@GLIBC_2.17 + 0 - -Symbol table '.dynsym' contains 10 entries: - Num: Value Size Type Bind Vis Ndx Name - 0: 0000000000000000 0 NOTYPE LOCAL DEFAULT UND - 1: 00000000000005b8 0 SECTION LOCAL DEFAULT 11 .init - 2: 0000000000011028 0 SECTION LOCAL DEFAULT 23 .data - 3: 0000000000000000 0 FUNC GLOBAL DEFAULT UND __libc_start_main@GLIBC_2.34 (2) - 4: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_deregisterTMCloneTable - 5: 0000000000000000 0 FUNC WEAK DEFAULT UND __cxa_finalize@GLIBC_2.17 (3) - 6: 0000000000000000 0 NOTYPE WEAK DEFAULT UND __gmon_start__ - 7: 0000000000000000 0 FUNC GLOBAL DEFAULT UND abort@GLIBC_2.17 (3) - 8: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_registerTMCloneTable - 9: 0000000000000000 0 FUNC GLOBAL DEFAULT UND printf@GLIBC_2.17 (3) - -Symbol table '.symtab' contains 91 entries: - Num: Value Size Type Bind Vis Ndx Name - 0: 0000000000000000 0 NOTYPE LOCAL DEFAULT UND - 1: 0000000000000238 0 SECTION LOCAL DEFAULT 1 .interp - 2: 0000000000000254 0 SECTION LOCAL DEFAULT 2 .note.gnu.build-id - 3: 0000000000000278 0 SECTION LOCAL DEFAULT 3 .note.ABI-tag - 4: 0000000000000298 0 SECTION LOCAL DEFAULT 4 .gnu.hash - 5: 00000000000002b8 0 SECTION LOCAL DEFAULT 5 .dynsym - 6: 00000000000003a8 0 SECTION LOCAL DEFAULT 6 .dynstr - 7: 000000000000043c 0 SECTION LOCAL DEFAULT 7 .gnu.version - 8: 0000000000000450 0 SECTION LOCAL DEFAULT 8 .gnu.version_r - 9: 0000000000000480 0 SECTION LOCAL DEFAULT 9 .rela.dyn - 10: 0000000000000540 0 SECTION LOCAL DEFAULT 10 .rela.plt - 11: 00000000000005b8 0 SECTION LOCAL DEFAULT 11 .init - 12: 00000000000005d0 0 SECTION LOCAL DEFAULT 12 .plt - 13: 0000000000000640 0 SECTION LOCAL DEFAULT 13 .text - 14: 00000000000007b8 0 SECTION LOCAL DEFAULT 14 .fini - 15: 00000000000007cc 0 SECTION LOCAL DEFAULT 15 .rodata - 16: 00000000000007fc 0 SECTION LOCAL DEFAULT 16 .eh_frame_hdr - 17: 0000000000000840 0 SECTION LOCAL DEFAULT 17 .eh_frame - 18: 0000000000010dc8 0 SECTION LOCAL DEFAULT 18 .init_array - 19: 0000000000010dd0 0 SECTION LOCAL DEFAULT 19 .fini_array - 20: 0000000000010dd8 0 SECTION LOCAL DEFAULT 20 .dynamic - 21: 0000000000010fb8 0 SECTION LOCAL DEFAULT 21 .got - 22: 0000000000010fe8 0 SECTION LOCAL DEFAULT 22 .got.plt - 23: 0000000000011028 0 SECTION LOCAL DEFAULT 23 .data - 24: 0000000000011038 0 SECTION LOCAL DEFAULT 24 .bss - 25: 0000000000000000 0 SECTION LOCAL DEFAULT 25 .comment - 26: 0000000000000000 0 FILE LOCAL DEFAULT ABS Scrt1.o - 27: 0000000000000278 0 NOTYPE LOCAL DEFAULT 3 $d - 28: 0000000000000278 32 OBJECT LOCAL DEFAULT 3 __abi_tag - 29: 0000000000000640 0 NOTYPE LOCAL DEFAULT 13 $x - 30: 0000000000000854 0 NOTYPE LOCAL DEFAULT 17 $d - 31: 00000000000007cc 0 NOTYPE LOCAL DEFAULT 15 $d - 32: 0000000000000000 0 FILE LOCAL DEFAULT ABS crti.o - 33: 0000000000000674 0 NOTYPE LOCAL DEFAULT 13 $x - 34: 0000000000000674 20 FUNC LOCAL DEFAULT 13 call_weak_fn - 35: 00000000000005b8 0 NOTYPE LOCAL DEFAULT 11 $x - 36: 00000000000007b8 0 NOTYPE LOCAL DEFAULT 14 $x - 37: 0000000000000000 0 FILE LOCAL DEFAULT ABS crtn.o - 38: 00000000000005c8 0 NOTYPE LOCAL DEFAULT 11 $x - 39: 00000000000007c4 0 NOTYPE LOCAL DEFAULT 14 $x - 40: 0000000000000000 0 FILE LOCAL DEFAULT ABS crtstuff.c - 41: 0000000000000690 0 NOTYPE LOCAL DEFAULT 13 $x - 42: 0000000000000690 0 FUNC LOCAL DEFAULT 13 deregister_tm_clones - 43: 00000000000006c0 0 FUNC LOCAL DEFAULT 13 register_tm_clones - 44: 0000000000011030 0 NOTYPE LOCAL DEFAULT 23 $d - 45: 0000000000000700 0 FUNC LOCAL DEFAULT 13 __do_global_dtors_aux - 46: 0000000000011038 1 OBJECT LOCAL DEFAULT 24 completed.0 - 47: 0000000000010dd0 0 NOTYPE LOCAL DEFAULT 19 $d - 48: 0000000000010dd0 0 OBJECT LOCAL DEFAULT 19 __do_global_dtors_aux_fini_array_entry - 49: 0000000000000750 0 FUNC LOCAL DEFAULT 13 frame_dummy - 50: 0000000000010dc8 0 NOTYPE LOCAL DEFAULT 18 $d - 51: 0000000000010dc8 0 OBJECT LOCAL DEFAULT 18 __frame_dummy_init_array_entry - 52: 0000000000000868 0 NOTYPE LOCAL DEFAULT 17 $d - 53: 0000000000011038 0 NOTYPE LOCAL DEFAULT 24 $d - 54: 0000000000000000 0 FILE LOCAL DEFAULT ABS indirect_call.c - 55: 0000000000000754 0 NOTYPE LOCAL DEFAULT 13 $x.0 - 56: 00000000000007d0 0 NOTYPE LOCAL DEFAULT 15 $d.1 - 57: 000000000000002a 0 NOTYPE LOCAL DEFAULT 25 $d.2 - 58: 00000000000008c8 0 NOTYPE LOCAL DEFAULT 17 $d.3 - 59: 0000000000000000 0 FILE LOCAL DEFAULT ABS crtstuff.c - 60: 000000000000092c 0 NOTYPE LOCAL DEFAULT 17 $d - 61: 000000000000092c 0 OBJECT LOCAL DEFAULT 17 __FRAME_END__ - 62: 0000000000000000 0 FILE LOCAL DEFAULT ABS - 63: 0000000000010dd8 0 OBJECT LOCAL DEFAULT ABS _DYNAMIC - 64: 00000000000007fc 0 NOTYPE LOCAL DEFAULT 16 __GNU_EH_FRAME_HDR - 65: 0000000000010fb8 0 OBJECT LOCAL DEFAULT ABS _GLOBAL_OFFSET_TABLE_ - 66: 00000000000005d0 0 NOTYPE LOCAL DEFAULT 12 $x - 67: 0000000000000000 0 FUNC GLOBAL DEFAULT UND __libc_start_main@GLIBC_2.34 - 68: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_deregisterTMCloneTable - 69: 0000000000011028 0 NOTYPE WEAK DEFAULT 23 data_start - 70: 0000000000011038 0 NOTYPE GLOBAL DEFAULT 24 __bss_start__ - 71: 0000000000000000 0 FUNC WEAK DEFAULT UND __cxa_finalize@GLIBC_2.17 - 72: 0000000000011040 0 NOTYPE GLOBAL DEFAULT 24 _bss_end__ - 73: 0000000000011038 0 NOTYPE GLOBAL DEFAULT 23 _edata - 74: 00000000000007b8 0 FUNC GLOBAL HIDDEN 14 _fini - 75: 0000000000011040 0 NOTYPE GLOBAL DEFAULT 24 __bss_end__ - 76: 0000000000000754 28 FUNC GLOBAL DEFAULT 13 greet - 77: 0000000000011028 0 NOTYPE GLOBAL DEFAULT 23 __data_start - 78: 0000000000000000 0 NOTYPE WEAK DEFAULT UND __gmon_start__ - 79: 0000000000011030 0 OBJECT GLOBAL HIDDEN 23 __dso_handle - 80: 0000000000000000 0 FUNC GLOBAL DEFAULT UND abort@GLIBC_2.17 - 81: 00000000000007cc 4 OBJECT GLOBAL DEFAULT 15 _IO_stdin_used - 82: 0000000000011040 0 NOTYPE GLOBAL DEFAULT 24 _end - 83: 0000000000000640 52 FUNC GLOBAL DEFAULT 13 _start - 84: 0000000000011040 0 NOTYPE GLOBAL DEFAULT 24 __end__ - 85: 0000000000011038 0 NOTYPE GLOBAL DEFAULT 24 __bss_start - 86: 0000000000000770 72 FUNC GLOBAL DEFAULT 13 main - 87: 0000000000011038 0 OBJECT GLOBAL HIDDEN 23 __TMC_END__ - 88: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_registerTMCloneTable - 89: 0000000000000000 0 FUNC GLOBAL DEFAULT UND printf@GLIBC_2.17 - 90: 00000000000005b8 0 FUNC GLOBAL HIDDEN 11 _init diff --git a/src/test/indirect_calls/indirect_call/clang_pic/indirect_call.adt b/src/test/indirect_calls/indirect_call/clang_pic/indirect_call.adt deleted file mode 100644 index e86ff58d3..000000000 --- a/src/test/indirect_calls/indirect_call/clang_pic/indirect_call.adt +++ /dev/null @@ -1,613 +0,0 @@ -Project(Attrs([Attr("filename","\"clang_pic/indirect_call.out\""), -Attr("image-specification","(declare abi (name str))\n(declare arch (name str))\n(declare base-address (addr int))\n(declare bias (off int))\n(declare bits (size int))\n(declare code-region (addr int) (size int) (off int))\n(declare code-start (addr int))\n(declare entry-point (addr int))\n(declare external-reference (addr int) (name str))\n(declare format (name str))\n(declare is-executable (flag bool))\n(declare is-little-endian (flag bool))\n(declare llvm:base-address (addr int))\n(declare llvm:code-entry (name str) (off int) (size int))\n(declare llvm:coff-import-library (name str))\n(declare llvm:coff-virtual-section-header (name str) (addr int) (size int))\n(declare llvm:elf-program-header (name str) (off int) (size int))\n(declare llvm:elf-program-header-flags (name str) (ld bool) (r bool) \n (w bool) (x bool))\n(declare llvm:elf-virtual-program-header (name str) (addr int) (size int))\n(declare llvm:entry-point (addr int))\n(declare llvm:macho-symbol (name str) (value int))\n(declare llvm:name-reference (at int) (name str))\n(declare llvm:relocation (at int) (addr int))\n(declare llvm:section-entry (name str) (addr int) (size int) (off int))\n(declare llvm:section-flags (name str) (r bool) (w bool) (x bool))\n(declare llvm:segment-command (name str) (off int) (size int))\n(declare llvm:segment-command-flags (name str) (r bool) (w bool) (x bool))\n(declare llvm:symbol-entry (name str) (addr int) (size int) (off int)\n (value int))\n(declare llvm:virtual-segment-command (name str) (addr int) (size int))\n(declare mapped (addr int) (size int) (off int))\n(declare named-region (addr int) (size int) (name str))\n(declare named-symbol (addr int) (name str))\n(declare require (name str))\n(declare section (addr int) (size int))\n(declare segment (addr int) (size int) (r bool) (w bool) (x bool))\n(declare subarch (name str))\n(declare symbol-chunk (addr int) (size int) (root int))\n(declare symbol-value (addr int) (value int))\n(declare system (name str))\n(declare vendor (name str))\n\n(abi unknown)\n(arch aarch64)\n(base-address 0)\n(bias 0)\n(bits 64)\n(code-region 2040 20 2040)\n(code-region 1664 376 1664)\n(code-region 1520 112 1520)\n(code-region 1488 24 1488)\n(code-start 1716)\n(code-start 1940)\n(code-start 1664)\n(code-start 1968)\n(entry-point 1664)\n(external-reference 69560 _ITM_deregisterTMCloneTable)\n(external-reference 69568 __cxa_finalize)\n(external-reference 69584 __gmon_start__)\n(external-reference 69600 _ITM_registerTMCloneTable)\n(external-reference 69632 __libc_start_main)\n(external-reference 69640 __cxa_finalize)\n(external-reference 69648 __gmon_start__)\n(external-reference 69656 abort)\n(external-reference 69664 printf)\n(format elf)\n(is-executable true)\n(is-little-endian true)\n(llvm:base-address 0)\n(llvm:code-entry printf 0 0)\n(llvm:code-entry abort 0 0)\n(llvm:code-entry __cxa_finalize 0 0)\n(llvm:code-entry __libc_start_main 0 0)\n(llvm:code-entry _init 1488 0)\n(llvm:code-entry printf@GLIBC_2.17 0 0)\n(llvm:code-entry main 1968 72)\n(llvm:code-entry _start 1664 52)\n(llvm:code-entry abort@GLIBC_2.17 0 0)\n(llvm:code-entry greet 1940 28)\n(llvm:code-entry _fini 2040 0)\n(llvm:code-entry __cxa_finalize@GLIBC_2.17 0 0)\n(llvm:code-entry __libc_start_main@GLIBC_2.34 0 0)\n(llvm:code-entry frame_dummy 1936 0)\n(llvm:code-entry __do_global_dtors_aux 1856 0)\n(llvm:code-entry register_tm_clones 1792 0)\n(llvm:code-entry deregister_tm_clones 1744 0)\n(llvm:code-entry call_weak_fn 1716 20)\n(llvm:code-entry .fini 2040 20)\n(llvm:code-entry .text 1664 376)\n(llvm:code-entry .plt 1520 112)\n(llvm:code-entry .init 1488 24)\n(llvm:elf-program-header 08 3520 576)\n(llvm:elf-program-header 07 0 0)\n(llvm:elf-program-header 06 2108 68)\n(llvm:elf-program-header 05 596 68)\n(llvm:elf-program-header 04 3536 480)\n(llvm:elf-program-header 03 3520 632)\n(llvm:elf-program-header 02 0 2416)\n(llvm:elf-program-header 01 568 27)\n(llvm:elf-program-header 00 64 504)\n(llvm:elf-program-header-flags 08 false true false false)\n(llvm:elf-program-header-flags 07 false true true false)\n(llvm:elf-program-header-flags 06 false true false false)\n(llvm:elf-program-header-flags 05 false true false false)\n(llvm:elf-program-header-flags 04 false true true false)\n(llvm:elf-program-header-flags 03 true true true false)\n(llvm:elf-program-header-flags 02 true true false true)\n(llvm:elf-program-header-flags 01 false true false false)\n(llvm:elf-program-header-flags 00 false true false false)\n(llvm:elf-virtual-program-header 08 69056 576)\n(llvm:elf-virtual-program-header 07 0 0)\n(llvm:elf-virtual-program-header 06 2108 68)\n(llvm:elf-virtual-program-header 05 596 68)\n(llvm:elf-virtual-program-header 04 69072 480)\n(llvm:elf-virtual-program-header 03 69056 640)\n(llvm:elf-virtual-program-header 02 0 2416)\n(llvm:elf-virtual-program-header 01 568 27)\n(llvm:elf-virtual-program-header 00 64 504)\n(llvm:entry-point 1664)\n(llvm:name-reference 69664 printf)\n(llvm:name-reference 69656 abort)\n(llvm:name-reference 69648 __gmon_start__)\n(llvm:name-reference 69640 __cxa_finalize)\n(llvm:name-reference 69632 __libc_start_main)\n(llvm:name-reference 69600 _ITM_registerTMCloneTable)\n(llvm:name-reference 69584 __gmon_start__)\n(llvm:name-reference 69568 __cxa_finalize)\n(llvm:name-reference 69560 _ITM_deregisterTMCloneTable)\n(llvm:section-entry .shstrtab 0 259 7001)\n(llvm:section-entry .strtab 0 593 6408)\n(llvm:section-entry .symtab 0 2184 4224)\n(llvm:section-entry .comment 0 71 4152)\n(llvm:section-entry .bss 69688 8 4152)\n(llvm:section-entry .data 69672 16 4136)\n(llvm:section-entry .got.plt 69608 64 4072)\n(llvm:section-entry .got 69552 56 4016)\n(llvm:section-entry .dynamic 69072 480 3536)\n(llvm:section-entry .fini_array 69064 8 3528)\n(llvm:section-entry .init_array 69056 8 3520)\n(llvm:section-entry .eh_frame 2176 240 2176)\n(llvm:section-entry .eh_frame_hdr 2108 68 2108)\n(llvm:section-entry .rodata 2060 48 2060)\n(llvm:section-entry .fini 2040 20 2040)\n(llvm:section-entry .text 1664 376 1664)\n(llvm:section-entry .plt 1520 112 1520)\n(llvm:section-entry .init 1488 24 1488)\n(llvm:section-entry .rela.plt 1368 120 1368)\n(llvm:section-entry .rela.dyn 1152 216 1152)\n(llvm:section-entry .gnu.version_r 1104 48 1104)\n(llvm:section-entry .gnu.version 1084 20 1084)\n(llvm:section-entry .dynstr 936 148 936)\n(llvm:section-entry .dynsym 696 240 696)\n(llvm:section-entry .gnu.hash 664 28 664)\n(llvm:section-entry .note.ABI-tag 632 32 632)\n(llvm:section-entry .note.gnu.build-id 596 36 596)\n(llvm:section-entry .interp 568 27 568)\n(llvm:section-flags .shstrtab true false false)\n(llvm:section-flags .strtab true false false)\n(llvm:section-flags .symtab true false false)\n(llvm:section-flags .comment true false false)\n(llvm:section-flags .bss true true false)\n(llvm:section-flags .data true true false)\n(llvm:section-flags .got.plt true true false)\n(llvm:section-flags .got true true false)\n(llvm:section-flags .dynamic true true false)\n(llvm:section-flags .fini_array true true false)\n(llvm:section-flags .init_array true true false)\n(llvm:section-flags .eh_frame true false false)\n(llvm:section-flags .eh_frame_hdr true false false)\n(llvm:section-flags .rodata true false false)\n(llvm:section-flags .fini true false true)\n(llvm:section-flags .text true false true)\n(llvm:section-flags .plt true false true)\n(llvm:section-flags .init true false true)\n(llvm:section-flags .rela.plt true false false)\n(llvm:section-flags .rela.dyn true false false)\n(llvm:section-flags .gnu.version_r true false false)\n(llvm:section-flags .gnu.version true false false)\n(llvm:section-flags .dynstr true false false)\n(llvm:section-flags .dynsym true false false)\n(llvm:section-flags .gnu.hash true false false)\n(llvm:section-flags .note.ABI-tag true false false)\n(llvm:section-flags .note.gnu.build-id true false false)\n(llvm:section-flags .interp true false false)\n(llvm:symbol-entry printf 0 0 0 0)\n(llvm:symbol-entry abort 0 0 0 0)\n(llvm:symbol-entry __cxa_finalize 0 0 0 0)\n(llvm:symbol-entry __libc_start_main 0 0 0 0)\n(llvm:symbol-entry _init 1488 0 1488 1488)\n(llvm:symbol-entry printf@GLIBC_2.17 0 0 0 0)\n(llvm:symbol-entry main 1968 72 1968 1968)\n(llvm:symbol-entry _start 1664 52 1664 1664)\n(llvm:symbol-entry abort@GLIBC_2.17 0 0 0 0)\n(llvm:symbol-entry greet 1940 28 1940 1940)\n(llvm:symbol-entry _fini 2040 0 2040 2040)\n(llvm:symbol-entry __cxa_finalize@GLIBC_2.17 0 0 0 0)\n(llvm:symbol-entry __libc_start_main@GLIBC_2.34 0 0 0 0)\n(llvm:symbol-entry frame_dummy 1936 0 1936 1936)\n(llvm:symbol-entry __do_global_dtors_aux 1856 0 1856 1856)\n(llvm:symbol-entry register_tm_clones 1792 0 1792 1792)\n(llvm:symbol-entry deregister_tm_clones 1744 0 1744 1744)\n(llvm:symbol-entry call_weak_fn 1716 20 1716 1716)\n(mapped 0 2416 0)\n(mapped 69056 632 3520)\n(named-region 0 2416 02)\n(named-region 69056 640 03)\n(named-region 568 27 .interp)\n(named-region 596 36 .note.gnu.build-id)\n(named-region 632 32 .note.ABI-tag)\n(named-region 664 28 .gnu.hash)\n(named-region 696 240 .dynsym)\n(named-region 936 148 .dynstr)\n(named-region 1084 20 .gnu.version)\n(named-region 1104 48 .gnu.version_r)\n(named-region 1152 216 .rela.dyn)\n(named-region 1368 120 .rela.plt)\n(named-region 1488 24 .init)\n(named-region 1520 112 .plt)\n(named-region 1664 376 .text)\n(named-region 2040 20 .fini)\n(named-region 2060 48 .rodata)\n(named-region 2108 68 .eh_frame_hdr)\n(named-region 2176 240 .eh_frame)\n(named-region 69056 8 .init_array)\n(named-region 69064 8 .fini_array)\n(named-region 69072 480 .dynamic)\n(named-region 69552 56 .got)\n(named-region 69608 64 .got.plt)\n(named-region 69672 16 .data)\n(named-region 69688 8 .bss)\n(named-region 0 71 .comment)\n(named-region 0 2184 .symtab)\n(named-region 0 593 .strtab)\n(named-region 0 259 .shstrtab)\n(named-symbol 1716 call_weak_fn)\n(named-symbol 1744 deregister_tm_clones)\n(named-symbol 1792 register_tm_clones)\n(named-symbol 1856 __do_global_dtors_aux)\n(named-symbol 1936 frame_dummy)\n(named-symbol 0 __libc_start_main@GLIBC_2.34)\n(named-symbol 0 __cxa_finalize@GLIBC_2.17)\n(named-symbol 2040 _fini)\n(named-symbol 1940 greet)\n(named-symbol 0 abort@GLIBC_2.17)\n(named-symbol 1664 _start)\n(named-symbol 1968 main)\n(named-symbol 0 printf@GLIBC_2.17)\n(named-symbol 1488 _init)\n(named-symbol 0 __libc_start_main)\n(named-symbol 0 __cxa_finalize)\n(named-symbol 0 abort)\n(named-symbol 0 printf)\n(require libc.so.6)\n(section 568 27)\n(section 596 36)\n(section 632 32)\n(section 664 28)\n(section 696 240)\n(section 936 148)\n(section 1084 20)\n(section 1104 48)\n(section 1152 216)\n(section 1368 120)\n(section 1488 24)\n(section 1520 112)\n(section 1664 376)\n(section 2040 20)\n(section 2060 48)\n(section 2108 68)\n(section 2176 240)\n(section 69056 8)\n(section 69064 8)\n(section 69072 480)\n(section 69552 56)\n(section 69608 64)\n(section 69672 16)\n(section 69688 8)\n(section 0 71)\n(section 0 2184)\n(section 0 593)\n(section 0 259)\n(segment 0 2416 true false true)\n(segment 69056 640 true true false)\n(subarch v8)\n(symbol-chunk 1716 20 1716)\n(symbol-chunk 1940 28 1940)\n(symbol-chunk 1664 52 1664)\n(symbol-chunk 1968 72 1968)\n(symbol-value 1716 1716)\n(symbol-value 1744 1744)\n(symbol-value 1792 1792)\n(symbol-value 1856 1856)\n(symbol-value 1936 1936)\n(symbol-value 2040 2040)\n(symbol-value 1940 1940)\n(symbol-value 1664 1664)\n(symbol-value 1968 1968)\n(symbol-value 1488 1488)\n(symbol-value 0 0)\n(system \"\")\n(vendor \"\")\n"), -Attr("abi-name","\"aarch64-linux-gnu-elf\"")]), -Sections([Section(".shstrtab", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x80\x06\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x60\x1c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x38\x00\x09\x00\x40\x00\x1d\x00\x1c\x00\x06\x00\x00\x00\x04\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x04\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x70\x09\x00\x00\x00\x00\x00\x00\x70\x09\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x01\x00\x00\x00\x06\x00\x00\x00\xc0\x0d\x00\x00\x00\x00\x00\x00\xc0\x0d\x01\x00\x00\x00\x00\x00\xc0\x0d\x01"), -Section(".strtab", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x80\x06\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x60\x1c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x38\x00\x09\x00\x40\x00\x1d\x00\x1c\x00\x06\x00\x00\x00\x04\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x04\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x70\x09\x00\x00\x00\x00\x00\x00\x70\x09\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x01\x00\x00\x00\x06\x00\x00\x00\xc0\x0d\x00\x00\x00\x00\x00\x00\xc0\x0d\x01\x00\x00\x00\x00\x00\xc0\x0d\x01\x00\x00\x00\x00\x00\x78\x02\x00\x00\x00\x00\x00\x00\x80\x02\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x02\x00\x00\x00\x06\x00\x00\x00\xd0\x0d\x00\x00\x00\x00\x00\x00\xd0\x0d\x01\x00\x00\x00\x00\x00\xd0\x0d\x01\x00\x00\x00\x00\x00\xe0\x01\x00\x00\x00\x00\x00\x00\xe0\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x04\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x50\xe5\x74\x64\x04\x00\x00\x00\x3c\x08\x00\x00\x00\x00\x00\x00\x3c\x08\x00\x00\x00\x00\x00\x00\x3c\x08\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x51\xe5\x74\x64\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x52\xe5\x74\x64\x04\x00\x00\x00\xc0\x0d\x00\x00\x00\x00\x00\x00\xc0\x0d\x01\x00\x00\x00\x00\x00\xc0\x0d\x01\x00\x00\x00\x00\x00\x40\x02\x00\x00\x00\x00\x00\x00\x40\x02\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x2f\x6c\x69\x62\x2f\x6c\x64\x2d\x6c\x69\x6e\x75\x78\x2d\x61\x61\x72\x63\x68\x36\x34\x2e\x73\x6f\x2e"), -Section(".symtab", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x80\x06\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x60\x1c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x38\x00\x09\x00\x40\x00\x1d\x00\x1c\x00\x06\x00\x00\x00\x04\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x04\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x70\x09\x00\x00\x00\x00\x00\x00\x70\x09\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x01\x00\x00\x00\x06\x00\x00\x00\xc0\x0d\x00\x00\x00\x00\x00\x00\xc0\x0d\x01\x00\x00\x00\x00\x00\xc0\x0d\x01\x00\x00\x00\x00\x00\x78\x02\x00\x00\x00\x00\x00\x00\x80\x02\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x02\x00\x00\x00\x06\x00\x00\x00\xd0\x0d\x00\x00\x00\x00\x00\x00\xd0\x0d\x01\x00\x00\x00\x00\x00\xd0\x0d\x01\x00\x00\x00\x00\x00\xe0\x01\x00\x00\x00\x00\x00\x00\xe0\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x04\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x50\xe5\x74\x64\x04\x00\x00\x00\x3c\x08\x00\x00\x00\x00\x00\x00\x3c\x08\x00\x00\x00\x00\x00\x00\x3c\x08\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x51\xe5\x74\x64\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x52\xe5\x74\x64\x04\x00\x00\x00\xc0\x0d\x00\x00\x00\x00\x00\x00\xc0\x0d\x01\x00\x00\x00\x00\x00\xc0\x0d\x01\x00\x00\x00\x00\x00\x40\x02\x00\x00\x00\x00\x00\x00\x40\x02\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x2f\x6c\x69\x62\x2f\x6c\x64\x2d\x6c\x69\x6e\x75\x78\x2d\x61\x61\x72\x63\x68\x36\x34\x2e\x73\x6f\x2e\x31\x00\x00\x04\x00\x00\x00\x14\x00\x00\x00\x03\x00\x00\x00\x47\x4e\x55\x00\x16\x49\x0f\x2c\x64\x4e\x69\x98\x67\xc7\x4e\x61\xf8\x8c\x74\x42\x6a\xc8\xec\xc7\x04\x00\x00\x00\x10\x00\x00\x00\x01\x00\x00\x00\x47\x4e\x55\x00\x00\x00\x00\x00\x03\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x01\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x0b\x00\xd0\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x17\x00\x28\x10\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4f\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x22\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6b\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x22\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x28\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5f\x5f\x63\x78\x61\x5f\x66\x69\x6e\x61\x6c\x69\x7a\x65\x00\x5f\x5f\x6c\x69\x62\x63\x5f\x73\x74\x61\x72\x74\x5f\x6d\x61\x69\x6e\x00\x61\x62\x6f\x72\x74\x00\x70\x72\x69\x6e\x74\x66\x00\x6c\x69\x62\x63\x2e\x73\x6f\x2e\x36\x00\x47\x4c\x49\x42\x43\x5f\x32\x2e\x31\x37\x00\x47\x4c\x49\x42\x43\x5f\x32\x2e\x33\x34\x00\x5f\x49\x54\x4d\x5f\x64\x65\x72\x65\x67\x69\x73\x74\x65\x72\x54\x4d\x43\x6c\x6f\x6e\x65\x54\x61\x62\x6c\x65\x00\x5f\x5f\x67\x6d\x6f\x6e\x5f\x73\x74\x61\x72\x74\x5f\x5f\x00\x5f\x49\x54\x4d\x5f\x72\x65\x67\x69\x73\x74\x65\x72\x54\x4d\x43\x6c\x6f\x6e\x65\x54\x61\x62\x6c\x65\x00\x00\x00\x00\x00\x00\x00\x02\x00\x01\x00\x03\x00\x01\x00\x03\x00\x01\x00\x03\x00\x01\x00\x02\x00\x2f\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x97\x91\x96\x06\x00\x00\x03\x00\x39\x00\x00\x00\x10\x00\x00\x00\xb4\x91\x96\x06\x00\x00\x02\x00\x44\x00\x00\x00\x00\x00\x00\x00\xc0\x0d\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x90\x07\x00\x00\x00\x00\x00\x00\xc8\x0d\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x40\x07\x00\x00\x00\x00\x00\x00\xc8\x0f\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x94\x07\x00\x00\x00\x00\x00\x00\xd8\x0f\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\xb0\x07\x00\x00\x00\x00\x00\x00\x30\x10\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x30\x10\x01\x00\x00\x00\x00\x00\xb8\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xc0\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xd0\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe0\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x08\x10\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x10\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x18\x10\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x20\x10\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x09\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1f\x20\x03\xd5\xfd\x7b\xbf\xa9\xfd\x03\x00\x91\x36\x00\x00\x94\xfd\x7b\xc1\xa8\xc0\x03\x5f\xd6\x00\x00\x00\x00\x00\x00\x00\x00\xf0\x7b\xbf\xa9\x90\x00\x00\x90\x11\xfe\x47\xf9\x10\xe2\x3f\x91\x20\x02\x1f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x90\x00\x00\xb0\x11\x02\x40\xf9\x10\x02\x00\x91\x20\x02\x1f\xd6\x90\x00\x00\xb0\x11\x06\x40\xf9\x10\x22\x00\x91\x20\x02\x1f\xd6\x90\x00\x00\xb0\x11\x0a\x40\xf9\x10\x42\x00\x91\x20\x02\x1f\xd6\x90\x00\x00\xb0\x11\x0e\x40\xf9\x10\x62\x00\x91\x20\x02\x1f\xd6\x90\x00\x00\xb0\x11\x12\x40\xf9\x10\x82\x00\x91\x20\x02\x1f\xd6\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1f\x20\x03\xd5\x1d\x00\x80\xd2\x1e\x00\x80\xd2\xe5\x03\x00\xaa\xe1\x03\x40\xf9\xe2\x23\x00\x91\xe6\x03\x00\x91\x80\x00\x00\x90\x00\xec\x47\xf9\x03\x00\x80\xd2\x04\x00\x80\xd2\xd9\xff\xff\x97\xe4\xff\xff\x97\x80\x00\x00\x90\x00\xe8\x47\xf9\x40\x00\x00\xb4\xdc\xff\xff\x17\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x80\x00\x00\xb0\x00\xe0\x00\x91\x81\x00\x00\xb0\x21\xe0\x00\x91\x3f\x00\x00\xeb\xc0\x00\x00\x54\x81\x00\x00\x90\x21\xdc\x47\xf9\x61\x00\x00\xb4\xf0\x03\x01\xaa\x00\x02\x1f\xd6\xc0\x03\x5f\xd6\x80\x00\x00\xb0\x00\xe0\x00\x91\x81\x00\x00\xb0\x21\xe0\x00\x91\x21\x00\x00\xcb\x22\xfc\x7f\xd3\x41\x0c\x81\x8b\x21\xfc\x41\x93\xc1\x00\x00\xb4\x82\x00\x00\x90\x42\xf0\x47\xf9\x62\x00\x00\xb4\xf0\x03\x02\xaa\x00\x02\x1f\xd6\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\xfd\x7b\xbe\xa9\xfd\x03\x00\x91\xf3\x0b\x00\xf9\x93\x00\x00\xb0\x60\xe2\x40\x39\x40\x01\x00\x35\x80\x00\x00\x90\x00\xe0\x47\xf9\x80\x00\x00\xb4\x80\x00\x00\xb0\x00\x18\x40\xf9\xad\xff\xff\x97\xd8\xff\xff\x97\x20\x00\x80\x52\x60\xe2\x00\x39\xf3\x0b\x40\xf9\xfd\x7b\xc2\xa8\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\xdc\xff\xff\x17\xfd\x7b\xbf\xa9\xfd\x03\x00\x91\x00\x00\x00\x90\x00\x40\x20\x91\xab\xff\xff\x97\xfd\x7b\xc1\xa8\xc0\x03\x5f\xd6\xff\xc3\x00\xd1\xfd\x7b\x02\xa9\xfd\x83\x00\x91\xe8\x03\x1f\x2a\xe8\x0f\x00\xb9\xbf\xc3\x1f\xb8\x88\x00\x00\x90\x08\xe5\x47\xf9\xe8\x0b\x00\xf9\x00\x00\x00\x90\x00\x7c\x20\x91\x9d\xff\xff\x97\xe8\x0b\x40\xf9\x00\x01\x3f\xd6\xe0\x0f\x40\xb9\xfd\x7b\x42\xa9\xff\xc3\x00\x91\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\xfd\x7b\xbf\xa9\xfd\x03\x00\x91\xfd\x7b\xc1\xa8\xc0\x03\x5f\xd6\x01\x00\x02\x00\x48\x65\x6c\x6c\x6f\x2c\x20\x77\x6f\x72\x6c\x64\x21\x0a\x00\x43\x61\x6c\x6c\x69\x6e\x67\x20\x67\x72\x65\x65\x74\x28\x29\x20\x69\x6e\x64\x69\x72\x65\x63\x74\x6c\x79\x3a\x0a\x00\x01\x1b\x03\x3b\x40\x00\x00\x00\x07\x00\x00\x00\x44\xfe\xff\xff\x58\x00\x00\x00\x94\xfe\xff\xff\x6c\x00\x00\x00\xc4\xfe\xff\xff\x80\x00\x00\x00\x04\xff\xff\xff\x94\x00\x00\x00\x54\xff\xff\xff\xb8\x00\x00\x00\x58\xff\xff\xff\xe0\x00\x00\x00\x74\xff\xff\xff\x08\x01\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00"), -Section(".comment", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x80\x06\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x60\x1c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x38\x00\x09\x00\x40\x00\x1d\x00\x1c\x00\x06\x00\x00\x00\x04\x00\x00"), -Section(".interp", 0x238, "\x2f\x6c\x69\x62\x2f\x6c\x64\x2d\x6c\x69\x6e\x75\x78\x2d\x61\x61\x72\x63\x68\x36\x34\x2e\x73\x6f\x2e\x31\x00"), -Section(".note.gnu.build-id", 0x254, "\x04\x00\x00\x00\x14\x00\x00\x00\x03\x00\x00\x00\x47\x4e\x55\x00\x16\x49\x0f\x2c\x64\x4e\x69\x98\x67\xc7\x4e\x61\xf8\x8c\x74\x42\x6a\xc8\xec\xc7"), -Section(".note.ABI-tag", 0x278, "\x04\x00\x00\x00\x10\x00\x00\x00\x01\x00\x00\x00\x47\x4e\x55\x00\x00\x00\x00\x00\x03\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00"), -Section(".gnu.hash", 0x298, "\x01\x00\x00\x00\x01\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".dynsym", 0x2B8, "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x0b\x00\xd0\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x17\x00\x28\x10\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4f\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x22\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6b\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x22\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x28\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".dynstr", 0x3A8, "\x00\x5f\x5f\x63\x78\x61\x5f\x66\x69\x6e\x61\x6c\x69\x7a\x65\x00\x5f\x5f\x6c\x69\x62\x63\x5f\x73\x74\x61\x72\x74\x5f\x6d\x61\x69\x6e\x00\x61\x62\x6f\x72\x74\x00\x70\x72\x69\x6e\x74\x66\x00\x6c\x69\x62\x63\x2e\x73\x6f\x2e\x36\x00\x47\x4c\x49\x42\x43\x5f\x32\x2e\x31\x37\x00\x47\x4c\x49\x42\x43\x5f\x32\x2e\x33\x34\x00\x5f\x49\x54\x4d\x5f\x64\x65\x72\x65\x67\x69\x73\x74\x65\x72\x54\x4d\x43\x6c\x6f\x6e\x65\x54\x61\x62\x6c\x65\x00\x5f\x5f\x67\x6d\x6f\x6e\x5f\x73\x74\x61\x72\x74\x5f\x5f\x00\x5f\x49\x54\x4d\x5f\x72\x65\x67\x69\x73\x74\x65\x72\x54\x4d\x43\x6c\x6f\x6e\x65\x54\x61\x62\x6c\x65\x00"), -Section(".gnu.version", 0x43C, "\x00\x00\x00\x00\x00\x00\x02\x00\x01\x00\x03\x00\x01\x00\x03\x00\x01\x00\x03\x00"), -Section(".gnu.version_r", 0x450, "\x01\x00\x02\x00\x2f\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x97\x91\x96\x06\x00\x00\x03\x00\x39\x00\x00\x00\x10\x00\x00\x00\xb4\x91\x96\x06\x00\x00\x02\x00\x44\x00\x00\x00\x00\x00\x00\x00"), -Section(".rela.dyn", 0x480, "\xc0\x0d\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x90\x07\x00\x00\x00\x00\x00\x00\xc8\x0d\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x40\x07\x00\x00\x00\x00\x00\x00\xc8\x0f\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x94\x07\x00\x00\x00\x00\x00\x00\xd8\x0f\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\xb0\x07\x00\x00\x00\x00\x00\x00\x30\x10\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x30\x10\x01\x00\x00\x00\x00\x00\xb8\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xc0\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xd0\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe0\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".rela.plt", 0x558, "\x00\x10\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x08\x10\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x10\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x18\x10\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x20\x10\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x09\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".init", 0x5D0, "\x1f\x20\x03\xd5\xfd\x7b\xbf\xa9\xfd\x03\x00\x91\x36\x00\x00\x94\xfd\x7b\xc1\xa8\xc0\x03\x5f\xd6"), -Section(".plt", 0x5F0, "\xf0\x7b\xbf\xa9\x90\x00\x00\x90\x11\xfe\x47\xf9\x10\xe2\x3f\x91\x20\x02\x1f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x90\x00\x00\xb0\x11\x02\x40\xf9\x10\x02\x00\x91\x20\x02\x1f\xd6\x90\x00\x00\xb0\x11\x06\x40\xf9\x10\x22\x00\x91\x20\x02\x1f\xd6\x90\x00\x00\xb0\x11\x0a\x40\xf9\x10\x42\x00\x91\x20\x02\x1f\xd6\x90\x00\x00\xb0\x11\x0e\x40\xf9\x10\x62\x00\x91\x20\x02\x1f\xd6\x90\x00\x00\xb0\x11\x12\x40\xf9\x10\x82\x00\x91\x20\x02\x1f\xd6"), -Section(".fini", 0x7F8, "\x1f\x20\x03\xd5\xfd\x7b\xbf\xa9\xfd\x03\x00\x91\xfd\x7b\xc1\xa8\xc0\x03\x5f\xd6"), -Section(".rodata", 0x80C, "\x01\x00\x02\x00\x48\x65\x6c\x6c\x6f\x2c\x20\x77\x6f\x72\x6c\x64\x21\x0a\x00\x43\x61\x6c\x6c\x69\x6e\x67\x20\x67\x72\x65\x65\x74\x28\x29\x20\x69\x6e\x64\x69\x72\x65\x63\x74\x6c\x79\x3a\x0a\x00"), -Section(".eh_frame_hdr", 0x83C, "\x01\x1b\x03\x3b\x40\x00\x00\x00\x07\x00\x00\x00\x44\xfe\xff\xff\x58\x00\x00\x00\x94\xfe\xff\xff\x6c\x00\x00\x00\xc4\xfe\xff\xff\x80\x00\x00\x00\x04\xff\xff\xff\x94\x00\x00\x00\x54\xff\xff\xff\xb8\x00\x00\x00\x58\xff\xff\xff\xe0\x00\x00\x00\x74\xff\xff\xff\x08\x01\x00\x00"), -Section(".eh_frame", 0x880, "\x10\x00\x00\x00\x00\x00\x00\x00\x01\x7a\x52\x00\x04\x78\x1e\x01\x1b\x0c\x1f\x00\x10\x00\x00\x00\x18\x00\x00\x00\xe4\xfd\xff\xff\x34\x00\x00\x00\x00\x41\x07\x1e\x10\x00\x00\x00\x2c\x00\x00\x00\x20\xfe\xff\xff\x30\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x40\x00\x00\x00\x3c\xfe\xff\xff\x3c\x00\x00\x00\x00\x00\x00\x00\x20\x00\x00\x00\x54\x00\x00\x00\x68\xfe\xff\xff\x48\x00\x00\x00\x00\x41\x0e\x20\x9d\x04\x9e\x03\x42\x93\x02\x4e\xde\xdd\xd3\x0e\x00\x00\x00\x00\x10\x00\x00\x00\x78\x00\x00\x00\x94\xfe\xff\xff\x04\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x01\x7a\x52\x00\x01\x7c\x1e\x01\x1b\x0c\x1f\x00\x24\x00\x00\x00\x18\x00\x00\x00\x70\xfe\xff\xff\x1c\x00\x00\x00\x00\x44\x0e\x10\x44\x0c\x1d\x10\x9e\x02\x9d\x04\x4c\x0c\x1f\x10\x44\x0e\x00\xde\xdd\x00\x00\x00\x24\x00\x00\x00\x40\x00\x00\x00\x64\xfe\xff\xff\x48\x00\x00\x00\x00\x44\x0e\x30\x48\x0c\x1d\x10\x9e\x02\x9d\x04\x70\x0c\x1f\x30\x48\x0e\x00\xde\xdd\x00\x00\x00\x00\x00\x00\x00"), -Section(".fini_array", 0x10DC8, "\x40\x07\x00\x00\x00\x00\x00\x00"), -Section(".dynamic", 0x10DD0, "\x01\x00\x00\x00\x00\x00\x00\x00\x2f\x00\x00\x00\x00\x00\x00\x00\x0c\x00\x00\x00\x00\x00\x00\x00\xd0\x05\x00\x00\x00\x00\x00\x00\x0d\x00\x00\x00\x00\x00\x00\x00\xf8\x07\x00\x00\x00\x00\x00\x00\x19\x00\x00\x00\x00\x00\x00\x00\xc0\x0d\x01\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x1a\x00\x00\x00\x00\x00\x00\x00\xc8\x0d\x01\x00\x00\x00\x00\x00\x1c\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\xf5\xfe\xff\x6f\x00\x00\x00\x00\x98\x02\x00\x00\x00\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\xa8\x03\x00\x00\x00\x00\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\xb8\x02\x00\x00\x00\x00\x00\x00\x0a\x00\x00\x00\x00\x00\x00\x00\x94\x00\x00\x00\x00\x00\x00\x00\x0b\x00\x00\x00\x00\x00\x00\x00\x18\x00\x00\x00\x00\x00\x00\x00\x15\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\xe8\x0f\x01\x00\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x78\x00\x00\x00\x00\x00\x00\x00\x14\x00\x00\x00\x00\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x17\x00\x00\x00\x00\x00\x00\x00\x58\x05\x00\x00\x00\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x80\x04\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\xd8\x00\x00\x00\x00\x00\x00\x00\x09\x00\x00\x00\x00\x00\x00\x00\x18\x00\x00\x00\x00\x00\x00\x00\xfb\xff\xff\x6f\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\xfe\xff\xff\x6f\x00\x00\x00\x00\x50\x04\x00\x00\x00\x00\x00\x00\xff\xff\xff\x6f\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\xf0\xff\xff\x6f\x00\x00\x00\x00\x3c\x04\x00\x00\x00\x00\x00\x00\xf9\xff\xff\x6f\x00\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".init_array", 0x10DC0, "\x90\x07\x00\x00\x00\x00\x00\x00"), -Section(".got", 0x10FB0, "\xd0\x0d\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x94\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xb0\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".got.plt", 0x10FE8, "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xf0\x05\x00\x00\x00\x00\x00\x00\xf0\x05\x00\x00\x00\x00\x00\x00\xf0\x05\x00\x00\x00\x00\x00\x00\xf0\x05\x00\x00\x00\x00\x00\x00\xf0\x05\x00\x00\x00\x00\x00\x00"), -Section(".data", 0x11028, "\x00\x00\x00\x00\x00\x00\x00\x00\x30\x10\x01\x00\x00\x00\x00\x00"), -Section(".text", 0x680, "\x1f\x20\x03\xd5\x1d\x00\x80\xd2\x1e\x00\x80\xd2\xe5\x03\x00\xaa\xe1\x03\x40\xf9\xe2\x23\x00\x91\xe6\x03\x00\x91\x80\x00\x00\x90\x00\xec\x47\xf9\x03\x00\x80\xd2\x04\x00\x80\xd2\xd9\xff\xff\x97\xe4\xff\xff\x97\x80\x00\x00\x90\x00\xe8\x47\xf9\x40\x00\x00\xb4\xdc\xff\xff\x17\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x80\x00\x00\xb0\x00\xe0\x00\x91\x81\x00\x00\xb0\x21\xe0\x00\x91\x3f\x00\x00\xeb\xc0\x00\x00\x54\x81\x00\x00\x90\x21\xdc\x47\xf9\x61\x00\x00\xb4\xf0\x03\x01\xaa\x00\x02\x1f\xd6\xc0\x03\x5f\xd6\x80\x00\x00\xb0\x00\xe0\x00\x91\x81\x00\x00\xb0\x21\xe0\x00\x91\x21\x00\x00\xcb\x22\xfc\x7f\xd3\x41\x0c\x81\x8b\x21\xfc\x41\x93\xc1\x00\x00\xb4\x82\x00\x00\x90\x42\xf0\x47\xf9\x62\x00\x00\xb4\xf0\x03\x02\xaa\x00\x02\x1f\xd6\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\xfd\x7b\xbe\xa9\xfd\x03\x00\x91\xf3\x0b\x00\xf9\x93\x00\x00\xb0\x60\xe2\x40\x39\x40\x01\x00\x35\x80\x00\x00\x90\x00\xe0\x47\xf9\x80\x00\x00\xb4\x80\x00\x00\xb0\x00\x18\x40\xf9\xad\xff\xff\x97\xd8\xff\xff\x97\x20\x00\x80\x52\x60\xe2\x00\x39\xf3\x0b\x40\xf9\xfd\x7b\xc2\xa8\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\xdc\xff\xff\x17\xfd\x7b\xbf\xa9\xfd\x03\x00\x91\x00\x00\x00\x90\x00\x40\x20\x91\xab\xff\xff\x97\xfd\x7b\xc1\xa8\xc0\x03\x5f\xd6\xff\xc3\x00\xd1\xfd\x7b\x02\xa9\xfd\x83\x00\x91\xe8\x03\x1f\x2a\xe8\x0f\x00\xb9\xbf\xc3\x1f\xb8\x88\x00\x00\x90\x08\xe5\x47\xf9\xe8\x0b\x00\xf9\x00\x00\x00\x90\x00\x7c\x20\x91\x9d\xff\xff\x97\xe8\x0b\x40\xf9\x00\x01\x3f\xd6\xe0\x0f\x40\xb9\xfd\x7b\x42\xa9\xff\xc3\x00\x91\xc0\x03\x5f\xd6")]), -Memmap([Annotation(Region(0x0,0x96F), Attr("segment","02 0 2416")), -Annotation(Region(0x680,0x6B3), Attr("symbol","\"_start\"")), -Annotation(Region(0x0,0x102), Attr("section","\".shstrtab\"")), -Annotation(Region(0x0,0x250), Attr("section","\".strtab\"")), -Annotation(Region(0x0,0x887), Attr("section","\".symtab\"")), -Annotation(Region(0x0,0x46), Attr("section","\".comment\"")), -Annotation(Region(0x238,0x252), Attr("section","\".interp\"")), -Annotation(Region(0x254,0x277), Attr("section","\".note.gnu.build-id\"")), -Annotation(Region(0x278,0x297), Attr("section","\".note.ABI-tag\"")), -Annotation(Region(0x298,0x2B3), Attr("section","\".gnu.hash\"")), -Annotation(Region(0x2B8,0x3A7), Attr("section","\".dynsym\"")), -Annotation(Region(0x3A8,0x43B), Attr("section","\".dynstr\"")), -Annotation(Region(0x43C,0x44F), Attr("section","\".gnu.version\"")), -Annotation(Region(0x450,0x47F), Attr("section","\".gnu.version_r\"")), -Annotation(Region(0x480,0x557), Attr("section","\".rela.dyn\"")), -Annotation(Region(0x558,0x5CF), Attr("section","\".rela.plt\"")), -Annotation(Region(0x5D0,0x5E7), Attr("section","\".init\"")), -Annotation(Region(0x5F0,0x65F), Attr("section","\".plt\"")), -Annotation(Region(0x5D0,0x5E7), Attr("code-region","()")), -Annotation(Region(0x5F0,0x65F), Attr("code-region","()")), -Annotation(Region(0x680,0x6B3), Attr("symbol-info","_start 0x680 52")), -Annotation(Region(0x6B4,0x6C7), Attr("symbol","\"call_weak_fn\"")), -Annotation(Region(0x6B4,0x6C7), Attr("symbol-info","call_weak_fn 0x6B4 20")), -Annotation(Region(0x794,0x7AF), Attr("symbol","\"greet\"")), -Annotation(Region(0x794,0x7AF), Attr("symbol-info","greet 0x794 28")), -Annotation(Region(0x680,0x7F7), Attr("code-region","()")), -Annotation(Region(0x7B0,0x7F7), Attr("symbol","\"main\"")), -Annotation(Region(0x7B0,0x7F7), Attr("symbol-info","main 0x7B0 72")), -Annotation(Region(0x7F8,0x80B), Attr("section","\".fini\"")), -Annotation(Region(0x80C,0x83B), Attr("section","\".rodata\"")), -Annotation(Region(0x83C,0x87F), Attr("section","\".eh_frame_hdr\"")), -Annotation(Region(0x880,0x96F), Attr("section","\".eh_frame\"")), -Annotation(Region(0x10DC0,0x11037), Attr("segment","03 0x10DC0 640")), -Annotation(Region(0x10DC8,0x10DCF), Attr("section","\".fini_array\"")), -Annotation(Region(0x10DD0,0x10FAF), Attr("section","\".dynamic\"")), -Annotation(Region(0x10DC0,0x10DC7), Attr("section","\".init_array\"")), -Annotation(Region(0x10FB0,0x10FE7), Attr("section","\".got\"")), -Annotation(Region(0x10FE8,0x11027), Attr("section","\".got.plt\"")), -Annotation(Region(0x11028,0x11037), Attr("section","\".data\"")), -Annotation(Region(0x680,0x7F7), Attr("section","\".text\"")), -Annotation(Region(0x7F8,0x80B), Attr("code-region","()"))]), -Program(Tid(1_631, "%0000065f"), Attrs([]), - Subs([Sub(Tid(1_576, "@__cxa_finalize"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x620"), -Attr("stub","()")]), "__cxa_finalize", Args([Arg(Tid(1_632, "%00000660"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("__cxa_finalize_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(1_042, "@__cxa_finalize"), - Attrs([Attr("address","0x620")]), Phis([]), -Defs([Def(Tid(1_306, "%0000051a"), Attrs([Attr("address","0x620"), -Attr("insn","adrp x16, #69632")]), Var("R16",Imm(64)), Int(69632,64)), -Def(Tid(1_313, "%00000521"), Attrs([Attr("address","0x624"), -Attr("insn","ldr x17, [x16, #0x8]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(1_319, "%00000527"), Attrs([Attr("address","0x628"), -Attr("insn","add x16, x16, #0x8")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(8,64)))]), Jmps([Call(Tid(1_324, "%0000052c"), - Attrs([Attr("address","0x62C"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), -Sub(Tid(1_577, "@__do_global_dtors_aux"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x740")]), - "__do_global_dtors_aux", Args([Arg(Tid(1_633, "%00000661"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("__do_global_dtors_aux_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(690, "@__do_global_dtors_aux"), - Attrs([Attr("address","0x740")]), Phis([]), Defs([Def(Tid(694, "%000002b6"), - Attrs([Attr("address","0x740"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("#3",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(18446744073709551584,64))), -Def(Tid(700, "%000002bc"), Attrs([Attr("address","0x740"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("#3",Imm(64)),Var("R29",Imm(64)),LittleEndian(),64)), -Def(Tid(706, "%000002c2"), Attrs([Attr("address","0x740"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("#3",Imm(64)),Int(8,64)),Var("R30",Imm(64)),LittleEndian(),64)), -Def(Tid(710, "%000002c6"), Attrs([Attr("address","0x740"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("R31",Imm(64)), -Var("#3",Imm(64))), Def(Tid(716, "%000002cc"), - Attrs([Attr("address","0x744"), Attr("insn","mov x29, sp")]), - Var("R29",Imm(64)), Var("R31",Imm(64))), Def(Tid(724, "%000002d4"), - Attrs([Attr("address","0x748"), Attr("insn","str x19, [sp, #0x10]")]), - Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(16,64)),Var("R19",Imm(64)),LittleEndian(),64)), -Def(Tid(729, "%000002d9"), Attrs([Attr("address","0x74C"), -Attr("insn","adrp x19, #69632")]), Var("R19",Imm(64)), Int(69632,64)), -Def(Tid(736, "%000002e0"), Attrs([Attr("address","0x750"), -Attr("insn","ldrb w0, [x19, #0x38]")]), Var("R0",Imm(64)), -UNSIGNED(64,Load(Var("mem",Mem(64,8)),PLUS(Var("R19",Imm(64)),Int(56,64)),LittleEndian(),8)))]), -Jmps([Goto(Tid(743, "%000002e7"), Attrs([Attr("address","0x754"), -Attr("insn","cbnz w0, #0x28")]), - NEQ(Extract(31,0,Var("R0",Imm(64))),Int(0,32)), -Direct(Tid(741, "%000002e5"))), Goto(Tid(1_621, "%00000655"), Attrs([]), - Int(1,1), Direct(Tid(987, "%000003db")))])), Blk(Tid(987, "%000003db"), - Attrs([Attr("address","0x758")]), Phis([]), Defs([Def(Tid(990, "%000003de"), - Attrs([Attr("address","0x758"), Attr("insn","adrp x0, #65536")]), - Var("R0",Imm(64)), Int(65536,64)), Def(Tid(997, "%000003e5"), - Attrs([Attr("address","0x75C"), Attr("insn","ldr x0, [x0, #0xfc0]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(4032,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(1_003, "%000003eb"), Attrs([Attr("address","0x760"), -Attr("insn","cbz x0, #0x10")]), EQ(Var("R0",Imm(64)),Int(0,64)), -Direct(Tid(1_001, "%000003e9"))), Goto(Tid(1_622, "%00000656"), Attrs([]), - Int(1,1), Direct(Tid(1_026, "%00000402")))])), Blk(Tid(1_026, "%00000402"), - Attrs([Attr("address","0x764")]), Phis([]), -Defs([Def(Tid(1_029, "%00000405"), Attrs([Attr("address","0x764"), -Attr("insn","adrp x0, #69632")]), Var("R0",Imm(64)), Int(69632,64)), -Def(Tid(1_036, "%0000040c"), Attrs([Attr("address","0x768"), -Attr("insn","ldr x0, [x0, #0x30]")]), Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(48,64)),LittleEndian(),64)), -Def(Tid(1_041, "%00000411"), Attrs([Attr("address","0x76C"), -Attr("insn","bl #-0x14c")]), Var("R30",Imm(64)), Int(1904,64))]), -Jmps([Call(Tid(1_044, "%00000414"), Attrs([Attr("address","0x76C"), -Attr("insn","bl #-0x14c")]), Int(1,1), -(Direct(Tid(1_576, "@__cxa_finalize")),Direct(Tid(1_001, "%000003e9"))))])), -Blk(Tid(1_001, "%000003e9"), Attrs([Attr("address","0x770")]), Phis([]), -Defs([Def(Tid(1_009, "%000003f1"), Attrs([Attr("address","0x770"), -Attr("insn","bl #-0xa0")]), Var("R30",Imm(64)), Int(1908,64))]), -Jmps([Call(Tid(1_011, "%000003f3"), Attrs([Attr("address","0x770"), -Attr("insn","bl #-0xa0")]), Int(1,1), -(Direct(Tid(1_590, "@deregister_tm_clones")),Direct(Tid(1_013, "%000003f5"))))])), -Blk(Tid(1_013, "%000003f5"), Attrs([Attr("address","0x774")]), Phis([]), -Defs([Def(Tid(1_016, "%000003f8"), Attrs([Attr("address","0x774"), -Attr("insn","mov w0, #0x1")]), Var("R0",Imm(64)), Int(1,64)), -Def(Tid(1_024, "%00000400"), Attrs([Attr("address","0x778"), -Attr("insn","strb w0, [x19, #0x38]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R19",Imm(64)),Int(56,64)),Extract(7,0,Var("R0",Imm(64))),LittleEndian(),8))]), -Jmps([Goto(Tid(1_623, "%00000657"), Attrs([]), Int(1,1), -Direct(Tid(741, "%000002e5")))])), Blk(Tid(741, "%000002e5"), - Attrs([Attr("address","0x77C")]), Phis([]), Defs([Def(Tid(751, "%000002ef"), - Attrs([Attr("address","0x77C"), Attr("insn","ldr x19, [sp, #0x10]")]), - Var("R19",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(16,64)),LittleEndian(),64)), -Def(Tid(758, "%000002f6"), Attrs([Attr("address","0x780"), -Attr("insn","ldp x29, x30, [sp], #0x20")]), Var("R29",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(763, "%000002fb"), Attrs([Attr("address","0x780"), -Attr("insn","ldp x29, x30, [sp], #0x20")]), Var("R30",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(767, "%000002ff"), Attrs([Attr("address","0x780"), -Attr("insn","ldp x29, x30, [sp], #0x20")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(32,64)))]), Jmps([Call(Tid(772, "%00000304"), - Attrs([Attr("address","0x784"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), Sub(Tid(1_581, "@__libc_start_main"), - Attrs([Attr("c.proto","signed (*)(signed (*)(signed , char** , char** );* main, signed , char** , \nvoid* auxv)"), -Attr("address","0x610"), Attr("stub","()")]), "__libc_start_main", - Args([Arg(Tid(1_634, "%00000662"), - Attrs([Attr("c.layout","**[ : 64]"), -Attr("c.data","Top:u64 ptr ptr"), -Attr("c.type","signed (*)(signed , char** , char** );*")]), - Var("__libc_start_main_main",Imm(64)), Var("R0",Imm(64)), In()), -Arg(Tid(1_635, "%00000663"), Attrs([Attr("c.layout","[signed : 32]"), -Attr("c.data","Top:u32"), Attr("c.type","signed")]), - Var("__libc_start_main_arg2",Imm(32)), LOW(32,Var("R1",Imm(64))), In()), -Arg(Tid(1_636, "%00000664"), Attrs([Attr("c.layout","**[char : 8]"), -Attr("c.data","Top:u8 ptr ptr"), Attr("c.type","char**")]), - Var("__libc_start_main_arg3",Imm(64)), Var("R2",Imm(64)), Both()), -Arg(Tid(1_637, "%00000665"), Attrs([Attr("c.layout","*[ : 8]"), -Attr("c.data","{} ptr"), Attr("c.type","void*")]), - Var("__libc_start_main_auxv",Imm(64)), Var("R3",Imm(64)), Both()), -Arg(Tid(1_638, "%00000666"), Attrs([Attr("c.layout","[signed : 32]"), -Attr("c.data","Top:u32"), Attr("c.type","signed")]), - Var("__libc_start_main_result",Imm(32)), LOW(32,Var("R0",Imm(64))), -Out())]), Blks([Blk(Tid(523, "@__libc_start_main"), - Attrs([Attr("address","0x610")]), Phis([]), -Defs([Def(Tid(1_284, "%00000504"), Attrs([Attr("address","0x610"), -Attr("insn","adrp x16, #69632")]), Var("R16",Imm(64)), Int(69632,64)), -Def(Tid(1_291, "%0000050b"), Attrs([Attr("address","0x614"), -Attr("insn","ldr x17, [x16]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R16",Imm(64)),LittleEndian(),64)), -Def(Tid(1_297, "%00000511"), Attrs([Attr("address","0x618"), -Attr("insn","add x16, x16, #0x0")]), Var("R16",Imm(64)), -Var("R16",Imm(64)))]), Jmps([Call(Tid(1_302, "%00000516"), - Attrs([Attr("address","0x61C"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), Sub(Tid(1_582, "@_fini"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x7F8")]), - "_fini", Args([Arg(Tid(1_639, "%00000667"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("_fini_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(31, "@_fini"), - Attrs([Attr("address","0x7F8")]), Phis([]), Defs([Def(Tid(37, "%00000025"), - Attrs([Attr("address","0x7FC"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("#0",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(18446744073709551600,64))), -Def(Tid(43, "%0000002b"), Attrs([Attr("address","0x7FC"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("#0",Imm(64)),Var("R29",Imm(64)),LittleEndian(),64)), -Def(Tid(49, "%00000031"), Attrs([Attr("address","0x7FC"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("#0",Imm(64)),Int(8,64)),Var("R30",Imm(64)),LittleEndian(),64)), -Def(Tid(53, "%00000035"), Attrs([Attr("address","0x7FC"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("R31",Imm(64)), -Var("#0",Imm(64))), Def(Tid(59, "%0000003b"), Attrs([Attr("address","0x800"), -Attr("insn","mov x29, sp")]), Var("R29",Imm(64)), Var("R31",Imm(64))), -Def(Tid(66, "%00000042"), Attrs([Attr("address","0x804"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R29",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(71, "%00000047"), Attrs([Attr("address","0x804"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R30",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(75, "%0000004b"), Attrs([Attr("address","0x804"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(16,64)))]), Jmps([Call(Tid(80, "%00000050"), - Attrs([Attr("address","0x808"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), Sub(Tid(1_583, "@_init"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x5D0")]), - "_init", Args([Arg(Tid(1_640, "%00000668"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("_init_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(1_418, "@_init"), - Attrs([Attr("address","0x5D0")]), Phis([]), -Defs([Def(Tid(1_424, "%00000590"), Attrs([Attr("address","0x5D4"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("#8",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(18446744073709551600,64))), -Def(Tid(1_430, "%00000596"), Attrs([Attr("address","0x5D4"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("#8",Imm(64)),Var("R29",Imm(64)),LittleEndian(),64)), -Def(Tid(1_436, "%0000059c"), Attrs([Attr("address","0x5D4"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("#8",Imm(64)),Int(8,64)),Var("R30",Imm(64)),LittleEndian(),64)), -Def(Tid(1_440, "%000005a0"), Attrs([Attr("address","0x5D4"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("R31",Imm(64)), -Var("#8",Imm(64))), Def(Tid(1_446, "%000005a6"), - Attrs([Attr("address","0x5D8"), Attr("insn","mov x29, sp")]), - Var("R29",Imm(64)), Var("R31",Imm(64))), Def(Tid(1_451, "%000005ab"), - Attrs([Attr("address","0x5DC"), Attr("insn","bl #0xd8")]), - Var("R30",Imm(64)), Int(1504,64))]), Jmps([Call(Tid(1_453, "%000005ad"), - Attrs([Attr("address","0x5DC"), Attr("insn","bl #0xd8")]), Int(1,1), -(Direct(Tid(1_588, "@call_weak_fn")),Direct(Tid(1_455, "%000005af"))))])), -Blk(Tid(1_455, "%000005af"), Attrs([Attr("address","0x5E0")]), Phis([]), -Defs([Def(Tid(1_460, "%000005b4"), Attrs([Attr("address","0x5E0"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R29",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(1_465, "%000005b9"), Attrs([Attr("address","0x5E0"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R30",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(1_469, "%000005bd"), Attrs([Attr("address","0x5E0"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(16,64)))]), Jmps([Call(Tid(1_474, "%000005c2"), - Attrs([Attr("address","0x5E4"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), Sub(Tid(1_584, "@_start"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x680"), -Attr("entry-point","()")]), "_start", Args([Arg(Tid(1_641, "%00000669"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("_start_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(460, "@_start"), - Attrs([Attr("address","0x680")]), Phis([]), Defs([Def(Tid(465, "%000001d1"), - Attrs([Attr("address","0x684"), Attr("insn","mov x29, #0x0")]), - Var("R29",Imm(64)), Int(0,64)), Def(Tid(470, "%000001d6"), - Attrs([Attr("address","0x688"), Attr("insn","mov x30, #0x0")]), - Var("R30",Imm(64)), Int(0,64)), Def(Tid(476, "%000001dc"), - Attrs([Attr("address","0x68C"), Attr("insn","mov x5, x0")]), - Var("R5",Imm(64)), Var("R0",Imm(64))), Def(Tid(483, "%000001e3"), - Attrs([Attr("address","0x690"), Attr("insn","ldr x1, [sp]")]), - Var("R1",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(489, "%000001e9"), Attrs([Attr("address","0x694"), -Attr("insn","add x2, sp, #0x8")]), Var("R2",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(8,64))), Def(Tid(495, "%000001ef"), - Attrs([Attr("address","0x698"), Attr("insn","mov x6, sp")]), - Var("R6",Imm(64)), Var("R31",Imm(64))), Def(Tid(500, "%000001f4"), - Attrs([Attr("address","0x69C"), Attr("insn","adrp x0, #65536")]), - Var("R0",Imm(64)), Int(65536,64)), Def(Tid(507, "%000001fb"), - Attrs([Attr("address","0x6A0"), Attr("insn","ldr x0, [x0, #0xfd8]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(4056,64)),LittleEndian(),64)), -Def(Tid(512, "%00000200"), Attrs([Attr("address","0x6A4"), -Attr("insn","mov x3, #0x0")]), Var("R3",Imm(64)), Int(0,64)), -Def(Tid(517, "%00000205"), Attrs([Attr("address","0x6A8"), -Attr("insn","mov x4, #0x0")]), Var("R4",Imm(64)), Int(0,64)), -Def(Tid(522, "%0000020a"), Attrs([Attr("address","0x6AC"), -Attr("insn","bl #-0x9c")]), Var("R30",Imm(64)), Int(1712,64))]), -Jmps([Call(Tid(525, "%0000020d"), Attrs([Attr("address","0x6AC"), -Attr("insn","bl #-0x9c")]), Int(1,1), -(Direct(Tid(1_581, "@__libc_start_main")),Direct(Tid(527, "%0000020f"))))])), -Blk(Tid(527, "%0000020f"), Attrs([Attr("address","0x6B0")]), Phis([]), -Defs([Def(Tid(530, "%00000212"), Attrs([Attr("address","0x6B0"), -Attr("insn","bl #-0x70")]), Var("R30",Imm(64)), Int(1716,64))]), -Jmps([Call(Tid(533, "%00000215"), Attrs([Attr("address","0x6B0"), -Attr("insn","bl #-0x70")]), Int(1,1), -(Direct(Tid(1_587, "@abort")),Direct(Tid(1_624, "%00000658"))))])), -Blk(Tid(1_624, "%00000658"), Attrs([]), Phis([]), Defs([]), -Jmps([Call(Tid(1_625, "%00000659"), Attrs([]), Int(1,1), -(Direct(Tid(1_588, "@call_weak_fn")),))]))])), Sub(Tid(1_587, "@abort"), - Attrs([Attr("noreturn","()"), Attr("c.proto","void (*)(void)"), -Attr("address","0x640"), Attr("stub","()")]), "abort", Args([]), -Blks([Blk(Tid(531, "@abort"), Attrs([Attr("address","0x640")]), Phis([]), -Defs([Def(Tid(1_350, "%00000546"), Attrs([Attr("address","0x640"), -Attr("insn","adrp x16, #69632")]), Var("R16",Imm(64)), Int(69632,64)), -Def(Tid(1_357, "%0000054d"), Attrs([Attr("address","0x644"), -Attr("insn","ldr x17, [x16, #0x18]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(24,64)),LittleEndian(),64)), -Def(Tid(1_363, "%00000553"), Attrs([Attr("address","0x648"), -Attr("insn","add x16, x16, #0x18")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(24,64)))]), Jmps([Call(Tid(1_368, "%00000558"), - Attrs([Attr("address","0x64C"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), Sub(Tid(1_588, "@call_weak_fn"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x6B4")]), - "call_weak_fn", Args([Arg(Tid(1_642, "%0000066a"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("call_weak_fn_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(535, "@call_weak_fn"), - Attrs([Attr("address","0x6B4")]), Phis([]), Defs([Def(Tid(538, "%0000021a"), - Attrs([Attr("address","0x6B4"), Attr("insn","adrp x0, #65536")]), - Var("R0",Imm(64)), Int(65536,64)), Def(Tid(545, "%00000221"), - Attrs([Attr("address","0x6B8"), Attr("insn","ldr x0, [x0, #0xfd0]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(4048,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(551, "%00000227"), Attrs([Attr("address","0x6BC"), -Attr("insn","cbz x0, #0x8")]), EQ(Var("R0",Imm(64)),Int(0,64)), -Direct(Tid(549, "%00000225"))), Goto(Tid(1_626, "%0000065a"), Attrs([]), - Int(1,1), Direct(Tid(1_106, "%00000452")))])), Blk(Tid(549, "%00000225"), - Attrs([Attr("address","0x6C4")]), Phis([]), Defs([]), -Jmps([Call(Tid(557, "%0000022d"), Attrs([Attr("address","0x6C4"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))])), -Blk(Tid(1_106, "%00000452"), Attrs([Attr("address","0x6C0")]), Phis([]), -Defs([]), Jmps([Goto(Tid(1_109, "%00000455"), Attrs([Attr("address","0x6C0"), -Attr("insn","b #-0x90")]), Int(1,1), -Direct(Tid(1_107, "@__gmon_start__")))])), Blk(Tid(1_107, "@__gmon_start__"), - Attrs([Attr("address","0x630")]), Phis([]), -Defs([Def(Tid(1_328, "%00000530"), Attrs([Attr("address","0x630"), -Attr("insn","adrp x16, #69632")]), Var("R16",Imm(64)), Int(69632,64)), -Def(Tid(1_335, "%00000537"), Attrs([Attr("address","0x634"), -Attr("insn","ldr x17, [x16, #0x10]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(16,64)),LittleEndian(),64)), -Def(Tid(1_341, "%0000053d"), Attrs([Attr("address","0x638"), -Attr("insn","add x16, x16, #0x10")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(16,64)))]), Jmps([Call(Tid(1_346, "%00000542"), - Attrs([Attr("address","0x63C"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), -Sub(Tid(1_590, "@deregister_tm_clones"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x6D0")]), - "deregister_tm_clones", Args([Arg(Tid(1_643, "%0000066b"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("deregister_tm_clones_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(563, "@deregister_tm_clones"), - Attrs([Attr("address","0x6D0")]), Phis([]), Defs([Def(Tid(566, "%00000236"), - Attrs([Attr("address","0x6D0"), Attr("insn","adrp x0, #69632")]), - Var("R0",Imm(64)), Int(69632,64)), Def(Tid(572, "%0000023c"), - Attrs([Attr("address","0x6D4"), Attr("insn","add x0, x0, #0x38")]), - Var("R0",Imm(64)), PLUS(Var("R0",Imm(64)),Int(56,64))), -Def(Tid(577, "%00000241"), Attrs([Attr("address","0x6D8"), -Attr("insn","adrp x1, #69632")]), Var("R1",Imm(64)), Int(69632,64)), -Def(Tid(583, "%00000247"), Attrs([Attr("address","0x6DC"), -Attr("insn","add x1, x1, #0x38")]), Var("R1",Imm(64)), -PLUS(Var("R1",Imm(64)),Int(56,64))), Def(Tid(589, "%0000024d"), - Attrs([Attr("address","0x6E0"), Attr("insn","cmp x1, x0")]), - Var("#1",Imm(64)), NOT(Var("R0",Imm(64)))), Def(Tid(594, "%00000252"), - Attrs([Attr("address","0x6E0"), Attr("insn","cmp x1, x0")]), - Var("#2",Imm(64)), PLUS(Var("R1",Imm(64)),NOT(Var("R0",Imm(64))))), -Def(Tid(600, "%00000258"), Attrs([Attr("address","0x6E0"), -Attr("insn","cmp x1, x0")]), Var("VF",Imm(1)), -NEQ(SIGNED(65,PLUS(Var("#2",Imm(64)),Int(1,64))),PLUS(PLUS(SIGNED(65,Var("R1",Imm(64))),SIGNED(65,Var("#1",Imm(64)))),Int(1,65)))), -Def(Tid(606, "%0000025e"), Attrs([Attr("address","0x6E0"), -Attr("insn","cmp x1, x0")]), Var("CF",Imm(1)), -NEQ(UNSIGNED(65,PLUS(Var("#2",Imm(64)),Int(1,64))),PLUS(PLUS(UNSIGNED(65,Var("R1",Imm(64))),UNSIGNED(65,Var("#1",Imm(64)))),Int(1,65)))), -Def(Tid(610, "%00000262"), Attrs([Attr("address","0x6E0"), -Attr("insn","cmp x1, x0")]), Var("ZF",Imm(1)), -EQ(PLUS(Var("#2",Imm(64)),Int(1,64)),Int(0,64))), Def(Tid(614, "%00000266"), - Attrs([Attr("address","0x6E0"), Attr("insn","cmp x1, x0")]), - Var("NF",Imm(1)), Extract(63,63,PLUS(Var("#2",Imm(64)),Int(1,64))))]), -Jmps([Goto(Tid(620, "%0000026c"), Attrs([Attr("address","0x6E4"), -Attr("insn","b.eq #0x18")]), EQ(Var("ZF",Imm(1)),Int(1,1)), -Direct(Tid(618, "%0000026a"))), Goto(Tid(1_627, "%0000065b"), Attrs([]), - Int(1,1), Direct(Tid(1_076, "%00000434")))])), Blk(Tid(1_076, "%00000434"), - Attrs([Attr("address","0x6E8")]), Phis([]), -Defs([Def(Tid(1_079, "%00000437"), Attrs([Attr("address","0x6E8"), -Attr("insn","adrp x1, #65536")]), Var("R1",Imm(64)), Int(65536,64)), -Def(Tid(1_086, "%0000043e"), Attrs([Attr("address","0x6EC"), -Attr("insn","ldr x1, [x1, #0xfb8]")]), Var("R1",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R1",Imm(64)),Int(4024,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(1_091, "%00000443"), Attrs([Attr("address","0x6F0"), -Attr("insn","cbz x1, #0xc")]), EQ(Var("R1",Imm(64)),Int(0,64)), -Direct(Tid(618, "%0000026a"))), Goto(Tid(1_628, "%0000065c"), Attrs([]), - Int(1,1), Direct(Tid(1_095, "%00000447")))])), Blk(Tid(618, "%0000026a"), - Attrs([Attr("address","0x6FC")]), Phis([]), Defs([]), -Jmps([Call(Tid(626, "%00000272"), Attrs([Attr("address","0x6FC"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))])), -Blk(Tid(1_095, "%00000447"), Attrs([Attr("address","0x6F4")]), Phis([]), -Defs([Def(Tid(1_099, "%0000044b"), Attrs([Attr("address","0x6F4"), -Attr("insn","mov x16, x1")]), Var("R16",Imm(64)), Var("R1",Imm(64)))]), -Jmps([Call(Tid(1_104, "%00000450"), Attrs([Attr("address","0x6F8"), -Attr("insn","br x16")]), Int(1,1), (Indirect(Var("R16",Imm(64))),))]))])), -Sub(Tid(1_593, "@frame_dummy"), Attrs([Attr("c.proto","signed (*)(void)"), -Attr("address","0x790")]), "frame_dummy", Args([Arg(Tid(1_644, "%0000066c"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("frame_dummy_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(778, "@frame_dummy"), - Attrs([Attr("address","0x790")]), Phis([]), Defs([]), -Jmps([Call(Tid(780, "%0000030c"), Attrs([Attr("address","0x790"), -Attr("insn","b #-0x90")]), Int(1,1), -(Direct(Tid(1_597, "@register_tm_clones")),))]))])), -Sub(Tid(1_594, "@greet"), Attrs([Attr("c.proto","signed (*)(void)"), -Attr("address","0x794")]), "greet", Args([Arg(Tid(1_645, "%0000066d"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("greet_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(782, "@greet"), - Attrs([Attr("address","0x794")]), Phis([]), Defs([Def(Tid(786, "%00000312"), - Attrs([Attr("address","0x794"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("#4",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(18446744073709551600,64))), -Def(Tid(792, "%00000318"), Attrs([Attr("address","0x794"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("#4",Imm(64)),Var("R29",Imm(64)),LittleEndian(),64)), -Def(Tid(798, "%0000031e"), Attrs([Attr("address","0x794"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("#4",Imm(64)),Int(8,64)),Var("R30",Imm(64)),LittleEndian(),64)), -Def(Tid(802, "%00000322"), Attrs([Attr("address","0x794"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("R31",Imm(64)), -Var("#4",Imm(64))), Def(Tid(808, "%00000328"), - Attrs([Attr("address","0x798"), Attr("insn","mov x29, sp")]), - Var("R29",Imm(64)), Var("R31",Imm(64))), Def(Tid(813, "%0000032d"), - Attrs([Attr("address","0x79C"), Attr("insn","adrp x0, #0")]), - Var("R0",Imm(64)), Int(0,64)), Def(Tid(819, "%00000333"), - Attrs([Attr("address","0x7A0"), Attr("insn","add x0, x0, #0x810")]), - Var("R0",Imm(64)), PLUS(Var("R0",Imm(64)),Int(2064,64))), -Def(Tid(824, "%00000338"), Attrs([Attr("address","0x7A4"), -Attr("insn","bl #-0x154")]), Var("R30",Imm(64)), Int(1960,64))]), -Jmps([Call(Tid(827, "%0000033b"), Attrs([Attr("address","0x7A4"), -Attr("insn","bl #-0x154")]), Int(1,1), -(Direct(Tid(1_596, "@printf")),Direct(Tid(829, "%0000033d"))))])), -Blk(Tid(829, "%0000033d"), Attrs([Attr("address","0x7A8")]), Phis([]), -Defs([Def(Tid(834, "%00000342"), Attrs([Attr("address","0x7A8"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R29",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(839, "%00000347"), Attrs([Attr("address","0x7A8"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R30",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(843, "%0000034b"), Attrs([Attr("address","0x7A8"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(16,64)))]), Jmps([Call(Tid(848, "%00000350"), - Attrs([Attr("address","0x7AC"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), Sub(Tid(1_595, "@main"), - Attrs([Attr("c.proto","signed (*)(signed argc, const char** argv)"), -Attr("address","0x7B0")]), "main", Args([Arg(Tid(1_646, "%0000066e"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("main_argc",Imm(32)), -LOW(32,Var("R0",Imm(64))), In()), Arg(Tid(1_647, "%0000066f"), - Attrs([Attr("c.layout","**[char : 8]"), Attr("c.data","Top:u8 ptr ptr"), -Attr("c.type"," const char**")]), Var("main_argv",Imm(64)), -Var("R1",Imm(64)), Both()), Arg(Tid(1_648, "%00000670"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("main_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(850, "@main"), - Attrs([Attr("address","0x7B0")]), Phis([]), Defs([Def(Tid(854, "%00000356"), - Attrs([Attr("address","0x7B0"), Attr("insn","sub sp, sp, #0x30")]), - Var("R31",Imm(64)), PLUS(Var("R31",Imm(64)),Int(18446744073709551568,64))), -Def(Tid(860, "%0000035c"), Attrs([Attr("address","0x7B4"), -Attr("insn","stp x29, x30, [sp, #0x20]")]), Var("#5",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(32,64))), Def(Tid(866, "%00000362"), - Attrs([Attr("address","0x7B4"), Attr("insn","stp x29, x30, [sp, #0x20]")]), - Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("#5",Imm(64)),Var("R29",Imm(64)),LittleEndian(),64)), -Def(Tid(872, "%00000368"), Attrs([Attr("address","0x7B4"), -Attr("insn","stp x29, x30, [sp, #0x20]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("#5",Imm(64)),Int(8,64)),Var("R30",Imm(64)),LittleEndian(),64)), -Def(Tid(878, "%0000036e"), Attrs([Attr("address","0x7B8"), -Attr("insn","add x29, sp, #0x20")]), Var("R29",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(32,64))), Def(Tid(883, "%00000373"), - Attrs([Attr("address","0x7BC"), Attr("insn","mov w8, wzr")]), - Var("R8",Imm(64)), Int(0,64)), Def(Tid(891, "%0000037b"), - Attrs([Attr("address","0x7C0"), Attr("insn","str w8, [sp, #0xc]")]), - Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(12,64)),Extract(31,0,Var("R8",Imm(64))),LittleEndian(),32)), -Def(Tid(898, "%00000382"), Attrs([Attr("address","0x7C4"), -Attr("insn","stur wzr, [x29, #-0x4]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R29",Imm(64)),Int(18446744073709551612,64)),Int(0,32),LittleEndian(),32)), -Def(Tid(903, "%00000387"), Attrs([Attr("address","0x7C8"), -Attr("insn","adrp x8, #65536")]), Var("R8",Imm(64)), Int(65536,64)), -Def(Tid(910, "%0000038e"), Attrs([Attr("address","0x7CC"), -Attr("insn","ldr x8, [x8, #0xfc8]")]), Var("R8",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R8",Imm(64)),Int(4040,64)),LittleEndian(),64)), -Def(Tid(918, "%00000396"), Attrs([Attr("address","0x7D0"), -Attr("insn","str x8, [sp, #0x10]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(16,64)),Var("R8",Imm(64)),LittleEndian(),64)), -Def(Tid(923, "%0000039b"), Attrs([Attr("address","0x7D4"), -Attr("insn","adrp x0, #0")]), Var("R0",Imm(64)), Int(0,64)), -Def(Tid(929, "%000003a1"), Attrs([Attr("address","0x7D8"), -Attr("insn","add x0, x0, #0x81f")]), Var("R0",Imm(64)), -PLUS(Var("R0",Imm(64)),Int(2079,64))), Def(Tid(934, "%000003a6"), - Attrs([Attr("address","0x7DC"), Attr("insn","bl #-0x18c")]), - Var("R30",Imm(64)), Int(2016,64))]), Jmps([Call(Tid(936, "%000003a8"), - Attrs([Attr("address","0x7DC"), Attr("insn","bl #-0x18c")]), Int(1,1), -(Direct(Tid(1_596, "@printf")),Direct(Tid(938, "%000003aa"))))])), -Blk(Tid(938, "%000003aa"), Attrs([Attr("address","0x7E0")]), Phis([]), -Defs([Def(Tid(943, "%000003af"), Attrs([Attr("address","0x7E0"), -Attr("insn","ldr x8, [sp, #0x10]")]), Var("R8",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(16,64)),LittleEndian(),64)), -Def(Tid(948, "%000003b4"), Attrs([Attr("address","0x7E4"), -Attr("insn","blr x8")]), Var("R30",Imm(64)), Int(2024,64))]), -Jmps([Call(Tid(951, "%000003b7"), Attrs([Attr("address","0x7E4"), -Attr("insn","blr x8")]), Int(1,1), -(Indirect(Var("R8",Imm(64))),Direct(Tid(953, "%000003b9"))))])), -Blk(Tid(953, "%000003b9"), Attrs([Attr("address","0x7E8")]), Phis([]), -Defs([Def(Tid(958, "%000003be"), Attrs([Attr("address","0x7E8"), -Attr("insn","ldr w0, [sp, #0xc]")]), Var("R0",Imm(64)), -UNSIGNED(64,Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(12,64)),LittleEndian(),32))), -Def(Tid(964, "%000003c4"), Attrs([Attr("address","0x7EC"), -Attr("insn","ldp x29, x30, [sp, #0x20]")]), Var("#6",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(32,64))), Def(Tid(969, "%000003c9"), - Attrs([Attr("address","0x7EC"), Attr("insn","ldp x29, x30, [sp, #0x20]")]), - Var("R29",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("#6",Imm(64)),LittleEndian(),64)), -Def(Tid(974, "%000003ce"), Attrs([Attr("address","0x7EC"), -Attr("insn","ldp x29, x30, [sp, #0x20]")]), Var("R30",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("#6",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(980, "%000003d4"), Attrs([Attr("address","0x7F0"), -Attr("insn","add sp, sp, #0x30")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(48,64)))]), Jmps([Call(Tid(985, "%000003d9"), - Attrs([Attr("address","0x7F4"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), Sub(Tid(1_596, "@printf"), - Attrs([Attr("c.proto","signed (*)( const char restrict * format, ...)"), -Attr("address","0x650"), Attr("stub","()")]), "printf", - Args([Arg(Tid(1_649, "%00000671"), Attrs([Attr("format","\"printf\""), -Attr("c.layout","*[char : 8]"), Attr("c.data","Top:u8 ptr"), -Attr("c.type"," const char restrict *")]), Var("printf_format",Imm(64)), -Var("R0",Imm(64)), In()), Arg(Tid(1_650, "%00000672"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("printf_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(825, "@printf"), - Attrs([Attr("address","0x650")]), Phis([]), -Defs([Def(Tid(1_372, "%0000055c"), Attrs([Attr("address","0x650"), -Attr("insn","adrp x16, #69632")]), Var("R16",Imm(64)), Int(69632,64)), -Def(Tid(1_379, "%00000563"), Attrs([Attr("address","0x654"), -Attr("insn","ldr x17, [x16, #0x20]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(32,64)),LittleEndian(),64)), -Def(Tid(1_385, "%00000569"), Attrs([Attr("address","0x658"), -Attr("insn","add x16, x16, #0x20")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(32,64)))]), Jmps([Call(Tid(1_390, "%0000056e"), - Attrs([Attr("address","0x65C"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), -Sub(Tid(1_597, "@register_tm_clones"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x700")]), - "register_tm_clones", Args([Arg(Tid(1_651, "%00000673"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("register_tm_clones_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(628, "@register_tm_clones"), Attrs([Attr("address","0x700")]), - Phis([]), Defs([Def(Tid(631, "%00000277"), Attrs([Attr("address","0x700"), -Attr("insn","adrp x0, #69632")]), Var("R0",Imm(64)), Int(69632,64)), -Def(Tid(637, "%0000027d"), Attrs([Attr("address","0x704"), -Attr("insn","add x0, x0, #0x38")]), Var("R0",Imm(64)), -PLUS(Var("R0",Imm(64)),Int(56,64))), Def(Tid(642, "%00000282"), - Attrs([Attr("address","0x708"), Attr("insn","adrp x1, #69632")]), - Var("R1",Imm(64)), Int(69632,64)), Def(Tid(648, "%00000288"), - Attrs([Attr("address","0x70C"), Attr("insn","add x1, x1, #0x38")]), - Var("R1",Imm(64)), PLUS(Var("R1",Imm(64)),Int(56,64))), -Def(Tid(655, "%0000028f"), Attrs([Attr("address","0x710"), -Attr("insn","sub x1, x1, x0")]), Var("R1",Imm(64)), -PLUS(PLUS(Var("R1",Imm(64)),NOT(Var("R0",Imm(64)))),Int(1,64))), -Def(Tid(661, "%00000295"), Attrs([Attr("address","0x714"), -Attr("insn","lsr x2, x1, #63")]), Var("R2",Imm(64)), -Concat(Int(0,63),Extract(63,63,Var("R1",Imm(64))))), -Def(Tid(668, "%0000029c"), Attrs([Attr("address","0x718"), -Attr("insn","add x1, x2, x1, asr #3")]), Var("R1",Imm(64)), -PLUS(Var("R2",Imm(64)),ARSHIFT(Var("R1",Imm(64)),Int(3,3)))), -Def(Tid(674, "%000002a2"), Attrs([Attr("address","0x71C"), -Attr("insn","asr x1, x1, #1")]), Var("R1",Imm(64)), -SIGNED(64,Extract(63,1,Var("R1",Imm(64)))))]), -Jmps([Goto(Tid(680, "%000002a8"), Attrs([Attr("address","0x720"), -Attr("insn","cbz x1, #0x18")]), EQ(Var("R1",Imm(64)),Int(0,64)), -Direct(Tid(678, "%000002a6"))), Goto(Tid(1_629, "%0000065d"), Attrs([]), - Int(1,1), Direct(Tid(1_046, "%00000416")))])), Blk(Tid(1_046, "%00000416"), - Attrs([Attr("address","0x724")]), Phis([]), -Defs([Def(Tid(1_049, "%00000419"), Attrs([Attr("address","0x724"), -Attr("insn","adrp x2, #65536")]), Var("R2",Imm(64)), Int(65536,64)), -Def(Tid(1_056, "%00000420"), Attrs([Attr("address","0x728"), -Attr("insn","ldr x2, [x2, #0xfe0]")]), Var("R2",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R2",Imm(64)),Int(4064,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(1_061, "%00000425"), Attrs([Attr("address","0x72C"), -Attr("insn","cbz x2, #0xc")]), EQ(Var("R2",Imm(64)),Int(0,64)), -Direct(Tid(678, "%000002a6"))), Goto(Tid(1_630, "%0000065e"), Attrs([]), - Int(1,1), Direct(Tid(1_065, "%00000429")))])), Blk(Tid(678, "%000002a6"), - Attrs([Attr("address","0x738")]), Phis([]), Defs([]), -Jmps([Call(Tid(686, "%000002ae"), Attrs([Attr("address","0x738"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))])), -Blk(Tid(1_065, "%00000429"), Attrs([Attr("address","0x730")]), Phis([]), -Defs([Def(Tid(1_069, "%0000042d"), Attrs([Attr("address","0x730"), -Attr("insn","mov x16, x2")]), Var("R16",Imm(64)), Var("R2",Imm(64)))]), -Jmps([Call(Tid(1_074, "%00000432"), Attrs([Attr("address","0x734"), -Attr("insn","br x16")]), Int(1,1), -(Indirect(Var("R16",Imm(64))),))]))]))]))) \ No newline at end of file diff --git a/src/test/indirect_calls/indirect_call/clang_pic/indirect_call.bir b/src/test/indirect_calls/indirect_call/clang_pic/indirect_call.bir deleted file mode 100644 index b1d0a187e..000000000 --- a/src/test/indirect_calls/indirect_call/clang_pic/indirect_call.bir +++ /dev/null @@ -1,280 +0,0 @@ -0000065f: program -00000628: sub __cxa_finalize(__cxa_finalize_result) -00000660: __cxa_finalize_result :: out u32 = low:32[R0] - -00000412: -0000051a: R16 := 0x11000 -00000521: R17 := mem[R16 + 8, el]:u64 -00000527: R16 := R16 + 8 -0000052c: call R17 with noreturn - -00000629: sub __do_global_dtors_aux(__do_global_dtors_aux_result) -00000661: __do_global_dtors_aux_result :: out u32 = low:32[R0] - -000002b2: -000002b6: #3 := R31 - 0x20 -000002bc: mem := mem with [#3, el]:u64 <- R29 -000002c2: mem := mem with [#3 + 8, el]:u64 <- R30 -000002c6: R31 := #3 -000002cc: R29 := R31 -000002d4: mem := mem with [R31 + 0x10, el]:u64 <- R19 -000002d9: R19 := 0x11000 -000002e0: R0 := pad:64[mem[R19 + 0x38]] -000002e7: when 31:0[R0] <> 0 goto %000002e5 -00000655: goto %000003db - -000003db: -000003de: R0 := 0x10000 -000003e5: R0 := mem[R0 + 0xFC0, el]:u64 -000003eb: when R0 = 0 goto %000003e9 -00000656: goto %00000402 - -00000402: -00000405: R0 := 0x11000 -0000040c: R0 := mem[R0 + 0x30, el]:u64 -00000411: R30 := 0x770 -00000414: call @__cxa_finalize with return %000003e9 - -000003e9: -000003f1: R30 := 0x774 -000003f3: call @deregister_tm_clones with return %000003f5 - -000003f5: -000003f8: R0 := 1 -00000400: mem := mem with [R19 + 0x38] <- 7:0[R0] -00000657: goto %000002e5 - -000002e5: -000002ef: R19 := mem[R31 + 0x10, el]:u64 -000002f6: R29 := mem[R31, el]:u64 -000002fb: R30 := mem[R31 + 8, el]:u64 -000002ff: R31 := R31 + 0x20 -00000304: call R30 with noreturn - -0000062d: sub __libc_start_main(__libc_start_main_main, __libc_start_main_arg2, __libc_start_main_arg3, __libc_start_main_auxv, __libc_start_main_result) -00000662: __libc_start_main_main :: in u64 = R0 -00000663: __libc_start_main_arg2 :: in u32 = low:32[R1] -00000664: __libc_start_main_arg3 :: in out u64 = R2 -00000665: __libc_start_main_auxv :: in out u64 = R3 -00000666: __libc_start_main_result :: out u32 = low:32[R0] - -0000020b: -00000504: R16 := 0x11000 -0000050b: R17 := mem[R16, el]:u64 -00000511: R16 := R16 -00000516: call R17 with noreturn - -0000062e: sub _fini(_fini_result) -00000667: _fini_result :: out u32 = low:32[R0] - -0000001f: -00000025: #0 := R31 - 0x10 -0000002b: mem := mem with [#0, el]:u64 <- R29 -00000031: mem := mem with [#0 + 8, el]:u64 <- R30 -00000035: R31 := #0 -0000003b: R29 := R31 -00000042: R29 := mem[R31, el]:u64 -00000047: R30 := mem[R31 + 8, el]:u64 -0000004b: R31 := R31 + 0x10 -00000050: call R30 with noreturn - -0000062f: sub _init(_init_result) -00000668: _init_result :: out u32 = low:32[R0] - -0000058a: -00000590: #8 := R31 - 0x10 -00000596: mem := mem with [#8, el]:u64 <- R29 -0000059c: mem := mem with [#8 + 8, el]:u64 <- R30 -000005a0: R31 := #8 -000005a6: R29 := R31 -000005ab: R30 := 0x5E0 -000005ad: call @call_weak_fn with return %000005af - -000005af: -000005b4: R29 := mem[R31, el]:u64 -000005b9: R30 := mem[R31 + 8, el]:u64 -000005bd: R31 := R31 + 0x10 -000005c2: call R30 with noreturn - -00000630: sub _start(_start_result) -00000669: _start_result :: out u32 = low:32[R0] - -000001cc: -000001d1: R29 := 0 -000001d6: R30 := 0 -000001dc: R5 := R0 -000001e3: R1 := mem[R31, el]:u64 -000001e9: R2 := R31 + 8 -000001ef: R6 := R31 -000001f4: R0 := 0x10000 -000001fb: R0 := mem[R0 + 0xFD8, el]:u64 -00000200: R3 := 0 -00000205: R4 := 0 -0000020a: R30 := 0x6B0 -0000020d: call @__libc_start_main with return %0000020f - -0000020f: -00000212: R30 := 0x6B4 -00000215: call @abort with return %00000658 - -00000658: -00000659: call @call_weak_fn with noreturn - -00000633: sub abort() - - -00000213: -00000546: R16 := 0x11000 -0000054d: R17 := mem[R16 + 0x18, el]:u64 -00000553: R16 := R16 + 0x18 -00000558: call R17 with noreturn - -00000634: sub call_weak_fn(call_weak_fn_result) -0000066a: call_weak_fn_result :: out u32 = low:32[R0] - -00000217: -0000021a: R0 := 0x10000 -00000221: R0 := mem[R0 + 0xFD0, el]:u64 -00000227: when R0 = 0 goto %00000225 -0000065a: goto %00000452 - -00000225: -0000022d: call R30 with noreturn - -00000452: -00000455: goto @__gmon_start__ - -00000453: -00000530: R16 := 0x11000 -00000537: R17 := mem[R16 + 0x10, el]:u64 -0000053d: R16 := R16 + 0x10 -00000542: call R17 with noreturn - -00000636: sub deregister_tm_clones(deregister_tm_clones_result) -0000066b: deregister_tm_clones_result :: out u32 = low:32[R0] - -00000233: -00000236: R0 := 0x11000 -0000023c: R0 := R0 + 0x38 -00000241: R1 := 0x11000 -00000247: R1 := R1 + 0x38 -0000024d: #1 := ~R0 -00000252: #2 := R1 + ~R0 -00000258: VF := extend:65[#2 + 1] <> extend:65[R1] + extend:65[#1] + 1 -0000025e: CF := pad:65[#2 + 1] <> pad:65[R1] + pad:65[#1] + 1 -00000262: ZF := #2 + 1 = 0 -00000266: NF := 63:63[#2 + 1] -0000026c: when ZF goto %0000026a -0000065b: goto %00000434 - -00000434: -00000437: R1 := 0x10000 -0000043e: R1 := mem[R1 + 0xFB8, el]:u64 -00000443: when R1 = 0 goto %0000026a -0000065c: goto %00000447 - -0000026a: -00000272: call R30 with noreturn - -00000447: -0000044b: R16 := R1 -00000450: call R16 with noreturn - -00000639: sub frame_dummy(frame_dummy_result) -0000066c: frame_dummy_result :: out u32 = low:32[R0] - -0000030a: -0000030c: call @register_tm_clones with noreturn - -0000063a: sub greet(greet_result) -0000066d: greet_result :: out u32 = low:32[R0] - -0000030e: -00000312: #4 := R31 - 0x10 -00000318: mem := mem with [#4, el]:u64 <- R29 -0000031e: mem := mem with [#4 + 8, el]:u64 <- R30 -00000322: R31 := #4 -00000328: R29 := R31 -0000032d: R0 := 0 -00000333: R0 := R0 + 0x810 -00000338: R30 := 0x7A8 -0000033b: call @printf with return %0000033d - -0000033d: -00000342: R29 := mem[R31, el]:u64 -00000347: R30 := mem[R31 + 8, el]:u64 -0000034b: R31 := R31 + 0x10 -00000350: call R30 with noreturn - -0000063b: sub main(main_argc, main_argv, main_result) -0000066e: main_argc :: in u32 = low:32[R0] -0000066f: main_argv :: in out u64 = R1 -00000670: main_result :: out u32 = low:32[R0] - -00000352: -00000356: R31 := R31 - 0x30 -0000035c: #5 := R31 + 0x20 -00000362: mem := mem with [#5, el]:u64 <- R29 -00000368: mem := mem with [#5 + 8, el]:u64 <- R30 -0000036e: R29 := R31 + 0x20 -00000373: R8 := 0 -0000037b: mem := mem with [R31 + 0xC, el]:u32 <- 31:0[R8] -00000382: mem := mem with [R29 - 4, el]:u32 <- 0 -00000387: R8 := 0x10000 -0000038e: R8 := mem[R8 + 0xFC8, el]:u64 -00000396: mem := mem with [R31 + 0x10, el]:u64 <- R8 -0000039b: R0 := 0 -000003a1: R0 := R0 + 0x81F -000003a6: R30 := 0x7E0 -000003a8: call @printf with return %000003aa - -000003aa: -000003af: R8 := mem[R31 + 0x10, el]:u64 -000003b4: R30 := 0x7E8 -000003b7: call R8 with return %000003b9 - -000003b9: -000003be: R0 := pad:64[mem[R31 + 0xC, el]:u32] -000003c4: #6 := R31 + 0x20 -000003c9: R29 := mem[#6, el]:u64 -000003ce: R30 := mem[#6 + 8, el]:u64 -000003d4: R31 := R31 + 0x30 -000003d9: call R30 with noreturn - -0000063c: sub printf(printf_format, printf_result) -00000671: printf_format :: in u64 = R0 -00000672: printf_result :: out u32 = low:32[R0] - -00000339: -0000055c: R16 := 0x11000 -00000563: R17 := mem[R16 + 0x20, el]:u64 -00000569: R16 := R16 + 0x20 -0000056e: call R17 with noreturn - -0000063d: sub register_tm_clones(register_tm_clones_result) -00000673: register_tm_clones_result :: out u32 = low:32[R0] - -00000274: -00000277: R0 := 0x11000 -0000027d: R0 := R0 + 0x38 -00000282: R1 := 0x11000 -00000288: R1 := R1 + 0x38 -0000028f: R1 := R1 + ~R0 + 1 -00000295: R2 := 0.63:63[R1] -0000029c: R1 := R2 + (R1 ~>> 3) -000002a2: R1 := extend:64[63:1[R1]] -000002a8: when R1 = 0 goto %000002a6 -0000065d: goto %00000416 - -00000416: -00000419: R2 := 0x10000 -00000420: R2 := mem[R2 + 0xFE0, el]:u64 -00000425: when R2 = 0 goto %000002a6 -0000065e: goto %00000429 - -000002a6: -000002ae: call R30 with noreturn - -00000429: -0000042d: R16 := R2 -00000432: call R16 with noreturn diff --git a/src/test/indirect_calls/indirect_call/clang_pic/indirect_call.md5sum b/src/test/indirect_calls/indirect_call/clang_pic/indirect_call.md5sum new file mode 100644 index 000000000..5435a4da6 --- /dev/null +++ b/src/test/indirect_calls/indirect_call/clang_pic/indirect_call.md5sum @@ -0,0 +1,4 @@ +605cf044775dc216d2facdb28cf6db20 indirect_calls/indirect_call/clang_pic/a.out +b085e7b0c11f01c5849cee99d1f0b226 indirect_calls/indirect_call/clang_pic/indirect_call.relf +4f601bf4b2e0bd5f9ca0a8789f6ab7f8 indirect_calls/indirect_call/clang_pic/indirect_call.adt +909b10de60a0dcfbebdb507db0a89180 indirect_calls/indirect_call/clang_pic/indirect_call.bir diff --git a/src/test/indirect_calls/indirect_call/clang_pic/indirect_call.relf b/src/test/indirect_calls/indirect_call/clang_pic/indirect_call.relf deleted file mode 100644 index aab4e31ed..000000000 --- a/src/test/indirect_calls/indirect_call/clang_pic/indirect_call.relf +++ /dev/null @@ -1,127 +0,0 @@ - -Relocation section '.rela.dyn' at offset 0x480 contains 9 entries: - Offset Info Type Symbol's Value Symbol's Name + Addend -0000000000010dc0 0000000000000403 R_AARCH64_RELATIVE 790 -0000000000010dc8 0000000000000403 R_AARCH64_RELATIVE 740 -0000000000010fc8 0000000000000403 R_AARCH64_RELATIVE 794 -0000000000010fd8 0000000000000403 R_AARCH64_RELATIVE 7b0 -0000000000011030 0000000000000403 R_AARCH64_RELATIVE 11030 -0000000000010fb8 0000000400000401 R_AARCH64_GLOB_DAT 0000000000000000 _ITM_deregisterTMCloneTable + 0 -0000000000010fc0 0000000500000401 R_AARCH64_GLOB_DAT 0000000000000000 __cxa_finalize@GLIBC_2.17 + 0 -0000000000010fd0 0000000600000401 R_AARCH64_GLOB_DAT 0000000000000000 __gmon_start__ + 0 -0000000000010fe0 0000000800000401 R_AARCH64_GLOB_DAT 0000000000000000 _ITM_registerTMCloneTable + 0 - -Relocation section '.rela.plt' at offset 0x558 contains 5 entries: - Offset Info Type Symbol's Value Symbol's Name + Addend -0000000000011000 0000000300000402 R_AARCH64_JUMP_SLOT 0000000000000000 __libc_start_main@GLIBC_2.34 + 0 -0000000000011008 0000000500000402 R_AARCH64_JUMP_SLOT 0000000000000000 __cxa_finalize@GLIBC_2.17 + 0 -0000000000011010 0000000600000402 R_AARCH64_JUMP_SLOT 0000000000000000 __gmon_start__ + 0 -0000000000011018 0000000700000402 R_AARCH64_JUMP_SLOT 0000000000000000 abort@GLIBC_2.17 + 0 -0000000000011020 0000000900000402 R_AARCH64_JUMP_SLOT 0000000000000000 printf@GLIBC_2.17 + 0 - -Symbol table '.dynsym' contains 10 entries: - Num: Value Size Type Bind Vis Ndx Name - 0: 0000000000000000 0 NOTYPE LOCAL DEFAULT UND - 1: 00000000000005d0 0 SECTION LOCAL DEFAULT 11 .init - 2: 0000000000011028 0 SECTION LOCAL DEFAULT 23 .data - 3: 0000000000000000 0 FUNC GLOBAL DEFAULT UND __libc_start_main@GLIBC_2.34 (2) - 4: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_deregisterTMCloneTable - 5: 0000000000000000 0 FUNC WEAK DEFAULT UND __cxa_finalize@GLIBC_2.17 (3) - 6: 0000000000000000 0 NOTYPE WEAK DEFAULT UND __gmon_start__ - 7: 0000000000000000 0 FUNC GLOBAL DEFAULT UND abort@GLIBC_2.17 (3) - 8: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_registerTMCloneTable - 9: 0000000000000000 0 FUNC GLOBAL DEFAULT UND printf@GLIBC_2.17 (3) - -Symbol table '.symtab' contains 91 entries: - Num: Value Size Type Bind Vis Ndx Name - 0: 0000000000000000 0 NOTYPE LOCAL DEFAULT UND - 1: 0000000000000238 0 SECTION LOCAL DEFAULT 1 .interp - 2: 0000000000000254 0 SECTION LOCAL DEFAULT 2 .note.gnu.build-id - 3: 0000000000000278 0 SECTION LOCAL DEFAULT 3 .note.ABI-tag - 4: 0000000000000298 0 SECTION LOCAL DEFAULT 4 .gnu.hash - 5: 00000000000002b8 0 SECTION LOCAL DEFAULT 5 .dynsym - 6: 00000000000003a8 0 SECTION LOCAL DEFAULT 6 .dynstr - 7: 000000000000043c 0 SECTION LOCAL DEFAULT 7 .gnu.version - 8: 0000000000000450 0 SECTION LOCAL DEFAULT 8 .gnu.version_r - 9: 0000000000000480 0 SECTION LOCAL DEFAULT 9 .rela.dyn - 10: 0000000000000558 0 SECTION LOCAL DEFAULT 10 .rela.plt - 11: 00000000000005d0 0 SECTION LOCAL DEFAULT 11 .init - 12: 00000000000005f0 0 SECTION LOCAL DEFAULT 12 .plt - 13: 0000000000000680 0 SECTION LOCAL DEFAULT 13 .text - 14: 00000000000007f8 0 SECTION LOCAL DEFAULT 14 .fini - 15: 000000000000080c 0 SECTION LOCAL DEFAULT 15 .rodata - 16: 000000000000083c 0 SECTION LOCAL DEFAULT 16 .eh_frame_hdr - 17: 0000000000000880 0 SECTION LOCAL DEFAULT 17 .eh_frame - 18: 0000000000010dc0 0 SECTION LOCAL DEFAULT 18 .init_array - 19: 0000000000010dc8 0 SECTION LOCAL DEFAULT 19 .fini_array - 20: 0000000000010dd0 0 SECTION LOCAL DEFAULT 20 .dynamic - 21: 0000000000010fb0 0 SECTION LOCAL DEFAULT 21 .got - 22: 0000000000010fe8 0 SECTION LOCAL DEFAULT 22 .got.plt - 23: 0000000000011028 0 SECTION LOCAL DEFAULT 23 .data - 24: 0000000000011038 0 SECTION LOCAL DEFAULT 24 .bss - 25: 0000000000000000 0 SECTION LOCAL DEFAULT 25 .comment - 26: 0000000000000000 0 FILE LOCAL DEFAULT ABS Scrt1.o - 27: 0000000000000278 0 NOTYPE LOCAL DEFAULT 3 $d - 28: 0000000000000278 32 OBJECT LOCAL DEFAULT 3 __abi_tag - 29: 0000000000000680 0 NOTYPE LOCAL DEFAULT 13 $x - 30: 0000000000000894 0 NOTYPE LOCAL DEFAULT 17 $d - 31: 000000000000080c 0 NOTYPE LOCAL DEFAULT 15 $d - 32: 0000000000000000 0 FILE LOCAL DEFAULT ABS crti.o - 33: 00000000000006b4 0 NOTYPE LOCAL DEFAULT 13 $x - 34: 00000000000006b4 20 FUNC LOCAL DEFAULT 13 call_weak_fn - 35: 00000000000005d0 0 NOTYPE LOCAL DEFAULT 11 $x - 36: 00000000000007f8 0 NOTYPE LOCAL DEFAULT 14 $x - 37: 0000000000000000 0 FILE LOCAL DEFAULT ABS crtn.o - 38: 00000000000005e0 0 NOTYPE LOCAL DEFAULT 11 $x - 39: 0000000000000804 0 NOTYPE LOCAL DEFAULT 14 $x - 40: 0000000000000000 0 FILE LOCAL DEFAULT ABS crtstuff.c - 41: 00000000000006d0 0 NOTYPE LOCAL DEFAULT 13 $x - 42: 00000000000006d0 0 FUNC LOCAL DEFAULT 13 deregister_tm_clones - 43: 0000000000000700 0 FUNC LOCAL DEFAULT 13 register_tm_clones - 44: 0000000000011030 0 NOTYPE LOCAL DEFAULT 23 $d - 45: 0000000000000740 0 FUNC LOCAL DEFAULT 13 __do_global_dtors_aux - 46: 0000000000011038 1 OBJECT LOCAL DEFAULT 24 completed.0 - 47: 0000000000010dc8 0 NOTYPE LOCAL DEFAULT 19 $d - 48: 0000000000010dc8 0 OBJECT LOCAL DEFAULT 19 __do_global_dtors_aux_fini_array_entry - 49: 0000000000000790 0 FUNC LOCAL DEFAULT 13 frame_dummy - 50: 0000000000010dc0 0 NOTYPE LOCAL DEFAULT 18 $d - 51: 0000000000010dc0 0 OBJECT LOCAL DEFAULT 18 __frame_dummy_init_array_entry - 52: 00000000000008a8 0 NOTYPE LOCAL DEFAULT 17 $d - 53: 0000000000011038 0 NOTYPE LOCAL DEFAULT 24 $d - 54: 0000000000000000 0 FILE LOCAL DEFAULT ABS indirect_call.c - 55: 0000000000000794 0 NOTYPE LOCAL DEFAULT 13 $x.0 - 56: 0000000000000810 0 NOTYPE LOCAL DEFAULT 15 $d.1 - 57: 000000000000002a 0 NOTYPE LOCAL DEFAULT 25 $d.2 - 58: 0000000000000908 0 NOTYPE LOCAL DEFAULT 17 $d.3 - 59: 0000000000000000 0 FILE LOCAL DEFAULT ABS crtstuff.c - 60: 000000000000096c 0 NOTYPE LOCAL DEFAULT 17 $d - 61: 000000000000096c 0 OBJECT LOCAL DEFAULT 17 __FRAME_END__ - 62: 0000000000000000 0 FILE LOCAL DEFAULT ABS - 63: 0000000000010dd0 0 OBJECT LOCAL DEFAULT ABS _DYNAMIC - 64: 000000000000083c 0 NOTYPE LOCAL DEFAULT 16 __GNU_EH_FRAME_HDR - 65: 0000000000010fb0 0 OBJECT LOCAL DEFAULT ABS _GLOBAL_OFFSET_TABLE_ - 66: 00000000000005f0 0 NOTYPE LOCAL DEFAULT 12 $x - 67: 0000000000000000 0 FUNC GLOBAL DEFAULT UND __libc_start_main@GLIBC_2.34 - 68: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_deregisterTMCloneTable - 69: 0000000000011028 0 NOTYPE WEAK DEFAULT 23 data_start - 70: 0000000000011038 0 NOTYPE GLOBAL DEFAULT 24 __bss_start__ - 71: 0000000000000000 0 FUNC WEAK DEFAULT UND __cxa_finalize@GLIBC_2.17 - 72: 0000000000011040 0 NOTYPE GLOBAL DEFAULT 24 _bss_end__ - 73: 0000000000011038 0 NOTYPE GLOBAL DEFAULT 23 _edata - 74: 00000000000007f8 0 FUNC GLOBAL HIDDEN 14 _fini - 75: 0000000000011040 0 NOTYPE GLOBAL DEFAULT 24 __bss_end__ - 76: 0000000000000794 28 FUNC GLOBAL DEFAULT 13 greet - 77: 0000000000011028 0 NOTYPE GLOBAL DEFAULT 23 __data_start - 78: 0000000000000000 0 NOTYPE WEAK DEFAULT UND __gmon_start__ - 79: 0000000000011030 0 OBJECT GLOBAL HIDDEN 23 __dso_handle - 80: 0000000000000000 0 FUNC GLOBAL DEFAULT UND abort@GLIBC_2.17 - 81: 000000000000080c 4 OBJECT GLOBAL DEFAULT 15 _IO_stdin_used - 82: 0000000000011040 0 NOTYPE GLOBAL DEFAULT 24 _end - 83: 0000000000000680 52 FUNC GLOBAL DEFAULT 13 _start - 84: 0000000000011040 0 NOTYPE GLOBAL DEFAULT 24 __end__ - 85: 0000000000011038 0 NOTYPE GLOBAL DEFAULT 24 __bss_start - 86: 00000000000007b0 72 FUNC GLOBAL DEFAULT 13 main - 87: 0000000000011038 0 OBJECT GLOBAL HIDDEN 23 __TMC_END__ - 88: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_registerTMCloneTable - 89: 0000000000000000 0 FUNC GLOBAL DEFAULT UND printf@GLIBC_2.17 - 90: 00000000000005d0 0 FUNC GLOBAL HIDDEN 11 _init diff --git a/src/test/indirect_calls/indirect_call/config.mk b/src/test/indirect_calls/indirect_call/config.mk index ea9b72ce9..20a55b600 100644 --- a/src/test/indirect_calls/indirect_call/config.mk +++ b/src/test/indirect_calls/indirect_call/config.mk @@ -1 +1,2 @@ -ENABLED_COMPILERS = clang clang_pic gcc gcc_pic \ No newline at end of file +ENABLED_COMPILERS = clang clang_pic gcc gcc_pic +LIFT_ARTEFACTS := $(COMMON_ARTEFACTS) $(BAP_ARTEFACTS) diff --git a/src/test/indirect_calls/indirect_call/gcc/indirect_call.adt b/src/test/indirect_calls/indirect_call/gcc/indirect_call.adt deleted file mode 100644 index 8c6e25eb9..000000000 --- a/src/test/indirect_calls/indirect_call/gcc/indirect_call.adt +++ /dev/null @@ -1,597 +0,0 @@ -Project(Attrs([Attr("filename","\"gcc/indirect_call.out\""), -Attr("image-specification","(declare abi (name str))\n(declare arch (name str))\n(declare base-address (addr int))\n(declare bias (off int))\n(declare bits (size int))\n(declare code-region (addr int) (size int) (off int))\n(declare code-start (addr int))\n(declare entry-point (addr int))\n(declare external-reference (addr int) (name str))\n(declare format (name str))\n(declare is-executable (flag bool))\n(declare is-little-endian (flag bool))\n(declare llvm:base-address (addr int))\n(declare llvm:code-entry (name str) (off int) (size int))\n(declare llvm:coff-import-library (name str))\n(declare llvm:coff-virtual-section-header (name str) (addr int) (size int))\n(declare llvm:elf-program-header (name str) (off int) (size int))\n(declare llvm:elf-program-header-flags (name str) (ld bool) (r bool) \n (w bool) (x bool))\n(declare llvm:elf-virtual-program-header (name str) (addr int) (size int))\n(declare llvm:entry-point (addr int))\n(declare llvm:macho-symbol (name str) (value int))\n(declare llvm:name-reference (at int) (name str))\n(declare llvm:relocation (at int) (addr int))\n(declare llvm:section-entry (name str) (addr int) (size int) (off int))\n(declare llvm:section-flags (name str) (r bool) (w bool) (x bool))\n(declare llvm:segment-command (name str) (off int) (size int))\n(declare llvm:segment-command-flags (name str) (r bool) (w bool) (x bool))\n(declare llvm:symbol-entry (name str) (addr int) (size int) (off int)\n (value int))\n(declare llvm:virtual-segment-command (name str) (addr int) (size int))\n(declare mapped (addr int) (size int) (off int))\n(declare named-region (addr int) (size int) (name str))\n(declare named-symbol (addr int) (name str))\n(declare require (name str))\n(declare section (addr int) (size int))\n(declare segment (addr int) (size int) (r bool) (w bool) (x bool))\n(declare subarch (name str))\n(declare symbol-chunk (addr int) (size int) (root int))\n(declare symbol-value (addr int) (value int))\n(declare system (name str))\n(declare vendor (name str))\n\n(abi unknown)\n(arch aarch64)\n(base-address 0)\n(bias 0)\n(bits 64)\n(code-region 1960 20 1960)\n(code-region 1600 360 1600)\n(code-region 1488 112 1488)\n(code-region 1464 24 1464)\n(code-start 1652)\n(code-start 1876)\n(code-start 1600)\n(code-start 1908)\n(entry-point 1600)\n(external-reference 69592 _ITM_deregisterTMCloneTable)\n(external-reference 69600 __cxa_finalize)\n(external-reference 69608 __gmon_start__)\n(external-reference 69624 _ITM_registerTMCloneTable)\n(external-reference 69544 __libc_start_main)\n(external-reference 69552 __cxa_finalize)\n(external-reference 69560 __gmon_start__)\n(external-reference 69568 abort)\n(external-reference 69576 puts)\n(format elf)\n(is-executable true)\n(is-little-endian true)\n(llvm:base-address 0)\n(llvm:code-entry puts 0 0)\n(llvm:code-entry abort 0 0)\n(llvm:code-entry __cxa_finalize 0 0)\n(llvm:code-entry __libc_start_main 0 0)\n(llvm:code-entry _init 1464 0)\n(llvm:code-entry main 1908 52)\n(llvm:code-entry _start 1600 52)\n(llvm:code-entry puts@GLIBC_2.17 0 0)\n(llvm:code-entry abort@GLIBC_2.17 0 0)\n(llvm:code-entry greet 1876 32)\n(llvm:code-entry _fini 1960 0)\n(llvm:code-entry __cxa_finalize@GLIBC_2.17 0 0)\n(llvm:code-entry __libc_start_main@GLIBC_2.34 0 0)\n(llvm:code-entry frame_dummy 1872 0)\n(llvm:code-entry __do_global_dtors_aux 1792 0)\n(llvm:code-entry register_tm_clones 1728 0)\n(llvm:code-entry deregister_tm_clones 1680 0)\n(llvm:code-entry call_weak_fn 1652 20)\n(llvm:code-entry .fini 1960 20)\n(llvm:code-entry .text 1600 360)\n(llvm:code-entry .plt 1488 112)\n(llvm:code-entry .init 1464 24)\n(llvm:elf-program-header 08 3472 624)\n(llvm:elf-program-header 07 0 0)\n(llvm:elf-program-header 06 2036 68)\n(llvm:elf-program-header 05 596 68)\n(llvm:elf-program-header 04 3488 496)\n(llvm:elf-program-header 03 3472 640)\n(llvm:elf-program-header 02 0 2308)\n(llvm:elf-program-header 01 568 27)\n(llvm:elf-program-header 00 64 504)\n(llvm:elf-program-header-flags 08 false true false false)\n(llvm:elf-program-header-flags 07 false true true false)\n(llvm:elf-program-header-flags 06 false true false false)\n(llvm:elf-program-header-flags 05 false true false false)\n(llvm:elf-program-header-flags 04 false true true false)\n(llvm:elf-program-header-flags 03 true true true false)\n(llvm:elf-program-header-flags 02 true true false true)\n(llvm:elf-program-header-flags 01 false true false false)\n(llvm:elf-program-header-flags 00 false true false false)\n(llvm:elf-virtual-program-header 08 69008 624)\n(llvm:elf-virtual-program-header 07 0 0)\n(llvm:elf-virtual-program-header 06 2036 68)\n(llvm:elf-virtual-program-header 05 596 68)\n(llvm:elf-virtual-program-header 04 69024 496)\n(llvm:elf-virtual-program-header 03 69008 648)\n(llvm:elf-virtual-program-header 02 0 2308)\n(llvm:elf-virtual-program-header 01 568 27)\n(llvm:elf-virtual-program-header 00 64 504)\n(llvm:entry-point 1600)\n(llvm:name-reference 69576 puts)\n(llvm:name-reference 69568 abort)\n(llvm:name-reference 69560 __gmon_start__)\n(llvm:name-reference 69552 __cxa_finalize)\n(llvm:name-reference 69544 __libc_start_main)\n(llvm:name-reference 69624 _ITM_registerTMCloneTable)\n(llvm:name-reference 69608 __gmon_start__)\n(llvm:name-reference 69600 __cxa_finalize)\n(llvm:name-reference 69592 _ITM_deregisterTMCloneTable)\n(llvm:section-entry .shstrtab 0 250 6867)\n(llvm:section-entry .strtab 0 571 6296)\n(llvm:section-entry .symtab 0 2136 4160)\n(llvm:section-entry .comment 0 43 4112)\n(llvm:section-entry .bss 69648 8 4112)\n(llvm:section-entry .data 69632 16 4096)\n(llvm:section-entry .got 69520 112 3984)\n(llvm:section-entry .dynamic 69024 496 3488)\n(llvm:section-entry .fini_array 69016 8 3480)\n(llvm:section-entry .init_array 69008 8 3472)\n(llvm:section-entry .eh_frame 2104 204 2104)\n(llvm:section-entry .eh_frame_hdr 2036 68 2036)\n(llvm:section-entry .rodata 1984 52 1984)\n(llvm:section-entry .fini 1960 20 1960)\n(llvm:section-entry .text 1600 360 1600)\n(llvm:section-entry .plt 1488 112 1488)\n(llvm:section-entry .init 1464 24 1464)\n(llvm:section-entry .rela.plt 1344 120 1344)\n(llvm:section-entry .rela.dyn 1152 192 1152)\n(llvm:section-entry .gnu.version_r 1104 48 1104)\n(llvm:section-entry .gnu.version 1082 20 1082)\n(llvm:section-entry .dynstr 936 146 936)\n(llvm:section-entry .dynsym 696 240 696)\n(llvm:section-entry .gnu.hash 664 28 664)\n(llvm:section-entry .note.ABI-tag 632 32 632)\n(llvm:section-entry .note.gnu.build-id 596 36 596)\n(llvm:section-entry .interp 568 27 568)\n(llvm:section-flags .shstrtab true false false)\n(llvm:section-flags .strtab true false false)\n(llvm:section-flags .symtab true false false)\n(llvm:section-flags .comment true false false)\n(llvm:section-flags .bss true true false)\n(llvm:section-flags .data true true false)\n(llvm:section-flags .got true true false)\n(llvm:section-flags .dynamic true true false)\n(llvm:section-flags .fini_array true true false)\n(llvm:section-flags .init_array true true false)\n(llvm:section-flags .eh_frame true false false)\n(llvm:section-flags .eh_frame_hdr true false false)\n(llvm:section-flags .rodata true false false)\n(llvm:section-flags .fini true false true)\n(llvm:section-flags .text true false true)\n(llvm:section-flags .plt true false true)\n(llvm:section-flags .init true false true)\n(llvm:section-flags .rela.plt true false false)\n(llvm:section-flags .rela.dyn true false false)\n(llvm:section-flags .gnu.version_r true false false)\n(llvm:section-flags .gnu.version true false false)\n(llvm:section-flags .dynstr true false false)\n(llvm:section-flags .dynsym true false false)\n(llvm:section-flags .gnu.hash true false false)\n(llvm:section-flags .note.ABI-tag true false false)\n(llvm:section-flags .note.gnu.build-id true false false)\n(llvm:section-flags .interp true false false)\n(llvm:symbol-entry puts 0 0 0 0)\n(llvm:symbol-entry abort 0 0 0 0)\n(llvm:symbol-entry __cxa_finalize 0 0 0 0)\n(llvm:symbol-entry __libc_start_main 0 0 0 0)\n(llvm:symbol-entry _init 1464 0 1464 1464)\n(llvm:symbol-entry main 1908 52 1908 1908)\n(llvm:symbol-entry _start 1600 52 1600 1600)\n(llvm:symbol-entry puts@GLIBC_2.17 0 0 0 0)\n(llvm:symbol-entry abort@GLIBC_2.17 0 0 0 0)\n(llvm:symbol-entry greet 1876 32 1876 1876)\n(llvm:symbol-entry _fini 1960 0 1960 1960)\n(llvm:symbol-entry __cxa_finalize@GLIBC_2.17 0 0 0 0)\n(llvm:symbol-entry __libc_start_main@GLIBC_2.34 0 0 0 0)\n(llvm:symbol-entry frame_dummy 1872 0 1872 1872)\n(llvm:symbol-entry __do_global_dtors_aux 1792 0 1792 1792)\n(llvm:symbol-entry register_tm_clones 1728 0 1728 1728)\n(llvm:symbol-entry deregister_tm_clones 1680 0 1680 1680)\n(llvm:symbol-entry call_weak_fn 1652 20 1652 1652)\n(mapped 0 2308 0)\n(mapped 69008 640 3472)\n(named-region 0 2308 02)\n(named-region 69008 648 03)\n(named-region 568 27 .interp)\n(named-region 596 36 .note.gnu.build-id)\n(named-region 632 32 .note.ABI-tag)\n(named-region 664 28 .gnu.hash)\n(named-region 696 240 .dynsym)\n(named-region 936 146 .dynstr)\n(named-region 1082 20 .gnu.version)\n(named-region 1104 48 .gnu.version_r)\n(named-region 1152 192 .rela.dyn)\n(named-region 1344 120 .rela.plt)\n(named-region 1464 24 .init)\n(named-region 1488 112 .plt)\n(named-region 1600 360 .text)\n(named-region 1960 20 .fini)\n(named-region 1984 52 .rodata)\n(named-region 2036 68 .eh_frame_hdr)\n(named-region 2104 204 .eh_frame)\n(named-region 69008 8 .init_array)\n(named-region 69016 8 .fini_array)\n(named-region 69024 496 .dynamic)\n(named-region 69520 112 .got)\n(named-region 69632 16 .data)\n(named-region 69648 8 .bss)\n(named-region 0 43 .comment)\n(named-region 0 2136 .symtab)\n(named-region 0 571 .strtab)\n(named-region 0 250 .shstrtab)\n(named-symbol 1652 call_weak_fn)\n(named-symbol 1680 deregister_tm_clones)\n(named-symbol 1728 register_tm_clones)\n(named-symbol 1792 __do_global_dtors_aux)\n(named-symbol 1872 frame_dummy)\n(named-symbol 0 __libc_start_main@GLIBC_2.34)\n(named-symbol 0 __cxa_finalize@GLIBC_2.17)\n(named-symbol 1960 _fini)\n(named-symbol 1876 greet)\n(named-symbol 0 abort@GLIBC_2.17)\n(named-symbol 0 puts@GLIBC_2.17)\n(named-symbol 1600 _start)\n(named-symbol 1908 main)\n(named-symbol 1464 _init)\n(named-symbol 0 __libc_start_main)\n(named-symbol 0 __cxa_finalize)\n(named-symbol 0 abort)\n(named-symbol 0 puts)\n(require libc.so.6)\n(section 568 27)\n(section 596 36)\n(section 632 32)\n(section 664 28)\n(section 696 240)\n(section 936 146)\n(section 1082 20)\n(section 1104 48)\n(section 1152 192)\n(section 1344 120)\n(section 1464 24)\n(section 1488 112)\n(section 1600 360)\n(section 1960 20)\n(section 1984 52)\n(section 2036 68)\n(section 2104 204)\n(section 69008 8)\n(section 69016 8)\n(section 69024 496)\n(section 69520 112)\n(section 69632 16)\n(section 69648 8)\n(section 0 43)\n(section 0 2136)\n(section 0 571)\n(section 0 250)\n(segment 0 2308 true false true)\n(segment 69008 648 true true false)\n(subarch v8)\n(symbol-chunk 1652 20 1652)\n(symbol-chunk 1876 32 1876)\n(symbol-chunk 1600 52 1600)\n(symbol-chunk 1908 52 1908)\n(symbol-value 1652 1652)\n(symbol-value 1680 1680)\n(symbol-value 1728 1728)\n(symbol-value 1792 1792)\n(symbol-value 1872 1872)\n(symbol-value 1960 1960)\n(symbol-value 1876 1876)\n(symbol-value 1600 1600)\n(symbol-value 1908 1908)\n(symbol-value 1464 1464)\n(symbol-value 0 0)\n(system \"\")\n(vendor \"\")\n"), -Attr("abi-name","\"aarch64-linux-gnu-elf\"")]), -Sections([Section(".shstrtab", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x40\x06\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xd0\x1b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x38\x00\x09\x00\x40\x00\x1c\x00\x1b\x00\x06\x00\x00\x00\x04\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x04\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x04\x09\x00\x00\x00\x00\x00\x00\x04\x09\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x01\x00\x00\x00\x06\x00\x00\x00\x90\x0d\x00\x00\x00\x00\x00\x00\x90\x0d"), -Section(".strtab", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x40\x06\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xd0\x1b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x38\x00\x09\x00\x40\x00\x1c\x00\x1b\x00\x06\x00\x00\x00\x04\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x04\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x04\x09\x00\x00\x00\x00\x00\x00\x04\x09\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x01\x00\x00\x00\x06\x00\x00\x00\x90\x0d\x00\x00\x00\x00\x00\x00\x90\x0d\x01\x00\x00\x00\x00\x00\x90\x0d\x01\x00\x00\x00\x00\x00\x80\x02\x00\x00\x00\x00\x00\x00\x88\x02\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x02\x00\x00\x00\x06\x00\x00\x00\xa0\x0d\x00\x00\x00\x00\x00\x00\xa0\x0d\x01\x00\x00\x00\x00\x00\xa0\x0d\x01\x00\x00\x00\x00\x00\xf0\x01\x00\x00\x00\x00\x00\x00\xf0\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x04\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x50\xe5\x74\x64\x04\x00\x00\x00\xf4\x07\x00\x00\x00\x00\x00\x00\xf4\x07\x00\x00\x00\x00\x00\x00\xf4\x07\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x51\xe5\x74\x64\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x52\xe5\x74\x64\x04\x00\x00\x00\x90\x0d\x00\x00\x00\x00\x00\x00\x90\x0d\x01\x00\x00\x00\x00\x00\x90\x0d\x01\x00\x00\x00\x00\x00\x70\x02\x00\x00\x00\x00\x00\x00\x70\x02\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x2f\x6c\x69"), -Section(".symtab", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x40\x06\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xd0\x1b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x38\x00\x09\x00\x40\x00\x1c\x00\x1b\x00\x06\x00\x00\x00\x04\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x04\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x04\x09\x00\x00\x00\x00\x00\x00\x04\x09\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x01\x00\x00\x00\x06\x00\x00\x00\x90\x0d\x00\x00\x00\x00\x00\x00\x90\x0d\x01\x00\x00\x00\x00\x00\x90\x0d\x01\x00\x00\x00\x00\x00\x80\x02\x00\x00\x00\x00\x00\x00\x88\x02\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x02\x00\x00\x00\x06\x00\x00\x00\xa0\x0d\x00\x00\x00\x00\x00\x00\xa0\x0d\x01\x00\x00\x00\x00\x00\xa0\x0d\x01\x00\x00\x00\x00\x00\xf0\x01\x00\x00\x00\x00\x00\x00\xf0\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x04\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x50\xe5\x74\x64\x04\x00\x00\x00\xf4\x07\x00\x00\x00\x00\x00\x00\xf4\x07\x00\x00\x00\x00\x00\x00\xf4\x07\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x51\xe5\x74\x64\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x52\xe5\x74\x64\x04\x00\x00\x00\x90\x0d\x00\x00\x00\x00\x00\x00\x90\x0d\x01\x00\x00\x00\x00\x00\x90\x0d\x01\x00\x00\x00\x00\x00\x70\x02\x00\x00\x00\x00\x00\x00\x70\x02\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x2f\x6c\x69\x62\x2f\x6c\x64\x2d\x6c\x69\x6e\x75\x78\x2d\x61\x61\x72\x63\x68\x36\x34\x2e\x73\x6f\x2e\x31\x00\x00\x04\x00\x00\x00\x14\x00\x00\x00\x03\x00\x00\x00\x47\x4e\x55\x00\xc4\x50\x81\x76\xcf\xa1\x0d\x0d\x9a\x76\x29\xd2\x14\x64\xa4\x0d\xeb\x42\xaa\x58\x04\x00\x00\x00\x10\x00\x00\x00\x01\x00\x00\x00\x47\x4e\x55\x00\x00\x00\x00\x00\x03\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x01\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x0b\x00\xb8\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x16\x00\x00\x10\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4d\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x22\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x69\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x27\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x22\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x78\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5f\x5f\x63\x78\x61\x5f\x66\x69\x6e\x61\x6c\x69\x7a\x65\x00\x5f\x5f\x6c\x69\x62\x63\x5f\x73\x74\x61\x72\x74\x5f\x6d\x61\x69\x6e\x00\x70\x75\x74\x73\x00\x61\x62\x6f\x72\x74\x00\x6c\x69\x62\x63\x2e\x73\x6f\x2e\x36\x00\x47\x4c\x49\x42\x43\x5f\x32\x2e\x31\x37\x00\x47\x4c\x49\x42\x43\x5f\x32\x2e\x33\x34\x00\x5f\x49\x54\x4d\x5f\x64\x65\x72\x65\x67\x69\x73\x74\x65\x72\x54\x4d\x43\x6c\x6f\x6e\x65\x54\x61\x62\x6c\x65\x00\x5f\x5f\x67\x6d\x6f\x6e\x5f\x73\x74\x61\x72\x74\x5f\x5f\x00\x5f\x49\x54\x4d\x5f\x72\x65\x67\x69\x73\x74\x65\x72\x54\x4d\x43\x6c\x6f\x6e\x65\x54\x61\x62\x6c\x65\x00\x00\x00\x00\x00\x00\x00\x02\x00\x01\x00\x03\x00\x01\x00\x03\x00\x03\x00\x01\x00\x00\x00\x01\x00\x02\x00\x2d\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x97\x91\x96\x06\x00\x00\x03\x00\x37\x00\x00\x00\x10\x00\x00\x00\xb4\x91\x96\x06\x00\x00\x02\x00\x42\x00\x00\x00\x00\x00\x00\x00\x90\x0d\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x50\x07\x00\x00\x00\x00\x00\x00\x98\x0d\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\xf0\x0f\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x74\x07\x00\x00\x00\x00\x00\x00\x08\x10\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x08\x10\x01\x00\x00\x00\x00\x00\xd8\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe0\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe8\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xf8\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x09\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xa8\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xb0\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xb8\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xc0\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xc8\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1f\x20\x03\xd5\xfd\x7b\xbf\xa9\xfd\x03\x00\x91\x2c\x00\x00\x94\xfd\x7b\xc1\xa8\xc0\x03\x5f\xd6\xf0\x7b\xbf\xa9\x90\x00\x00\x90\x11\xd2\x47\xf9\x10\x82\x3e\x91\x20\x02\x1f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x90\x00\x00\x90\x11\xd6\x47\xf9\x10\xa2\x3e\x91\x20\x02\x1f\xd6\x90\x00\x00\x90\x11\xda\x47\xf9\x10\xc2\x3e\x91\x20\x02\x1f\xd6\x90\x00\x00\x90\x11\xde\x47\xf9\x10\xe2\x3e\x91\x20\x02\x1f\xd6\x90\x00\x00\x90\x11\xe2\x47\xf9\x10\x02\x3f\x91\x20\x02\x1f\xd6\x90\x00\x00\x90\x11\xe6\x47\xf9\x10\x22\x3f\x91\x20\x02\x1f\xd6\x1f\x20\x03\xd5\x1d\x00\x80\xd2\x1e\x00\x80\xd2\xe5\x03\x00\xaa\xe1\x03\x40\xf9\xe2\x23\x00\x91\xe6\x03\x00\x91\x80\x00\x00\x90\x00\xf8\x47\xf9\x03\x00\x80\xd2\x04\x00\x80\xd2\xe1\xff\xff\x97\xec\xff\xff\x97\x80\x00\x00\x90\x00\xf4\x47\xf9\x40\x00\x00\xb4\xe4\xff\xff\x17\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x80\x00\x00\xb0\x00\x40\x00\x91\x81\x00\x00\xb0\x21\x40\x00\x91\x3f\x00\x00\xeb\xc0\x00\x00\x54\x81\x00\x00\x90\x21\xec\x47\xf9\x61\x00\x00\xb4\xf0\x03\x01\xaa\x00\x02\x1f\xd6\xc0\x03\x5f\xd6\x80\x00\x00\xb0\x00\x40\x00\x91\x81\x00\x00\xb0\x21\x40\x00\x91\x21\x00\x00\xcb\x22\xfc\x7f\xd3\x41\x0c\x81\x8b\x21\xfc\x41\x93\xc1\x00\x00\xb4\x82\x00\x00\x90\x42\xfc\x47\xf9\x62\x00\x00\xb4\xf0\x03\x02\xaa\x00\x02\x1f\xd6\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\xfd\x7b\xbe\xa9\xfd\x03\x00\x91\xf3\x0b\x00\xf9\x93\x00\x00\xb0\x60\x42\x40\x39\x40\x01\x00\x35\x80\x00\x00\x90\x00\xf0\x47\xf9\x80\x00\x00\xb4\x80\x00\x00\xb0\x00\x04\x40\xf9\xb5\xff\xff\x97\xd8\xff\xff\x97\x20\x00\x80\x52\x60\x42\x00\x39\xf3\x0b\x40\xf9\xfd\x7b\xc2\xa8\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\xdc\xff\xff\x17\xfd\x7b\xbf\xa9\xfd\x03\x00\x91\x00\x00\x00\x90\x00\x20\x1f\x91\xb3\xff\xff\x97\x1f\x20\x03\xd5\xfd\x7b\xc1\xa8\xc0\x03\x5f\xd6\xfd\x7b\xbe\xa9\xfd\x03\x00\x91\x00\x00\x00\x90\x00\x50\x1d\x91\xe0\x0f\x00\xf9\x00\x00\x00\x90\x00\x60\x1f\x91\xa8\xff\xff\x97\xe0\x0f\x40\xf9\x00\x00\x3f\xd6\x00\x00\x80\x52\xfd\x7b\xc2\xa8\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\xfd\x7b\xbf\xa9\xfd\x03\x00\x91\xfd\x7b\xc1\xa8\xc0\x03\x5f\xd6\x00\x00\x00\x00\x01\x00\x02\x00\x00\x00\x00\x00\x48\x65\x6c\x6c\x6f\x2c\x20\x77\x6f\x72\x6c\x64\x21\x00\x00\x00\x43\x61\x6c\x6c\x69\x6e\x67\x20\x67\x72\x65\x65\x74\x28\x29\x20\x69\x6e\x64\x69\x72\x65\x63\x74\x6c\x79\x3a\x00\x01\x1b\x03\x3b\x40\x00\x00\x00\x07\x00\x00\x00\x4c\xfe\xff\xff\x58\x00\x00\x00\x9c\xfe\xff\xff\x6c\x00\x00\x00\xcc\xfe\xff\xff\x80\x00\x00\x00\x0c\xff\xff\xff\x94\x00\x00\x00\x5c\xff\xff\xff\xb8\x00\x00\x00\x60\xff\xff\xff\xcc\x00\x00\x00\x80\xff\xff\xff\xec\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x01\x7a\x52\x00\x04\x78\x1e\x01\x1b\x0c\x1f\x00\x10\x00\x00\x00\x18\x00\x00\x00\xec\xfd\xff\xff"), -Section(".comment", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x40\x06\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xd0\x1b\x00"), -Section(".interp", 0x238, "\x2f\x6c\x69\x62\x2f\x6c\x64\x2d\x6c\x69\x6e\x75\x78\x2d\x61\x61\x72\x63\x68\x36\x34\x2e\x73\x6f\x2e\x31\x00"), -Section(".note.gnu.build-id", 0x254, "\x04\x00\x00\x00\x14\x00\x00\x00\x03\x00\x00\x00\x47\x4e\x55\x00\xc4\x50\x81\x76\xcf\xa1\x0d\x0d\x9a\x76\x29\xd2\x14\x64\xa4\x0d\xeb\x42\xaa\x58"), -Section(".note.ABI-tag", 0x278, "\x04\x00\x00\x00\x10\x00\x00\x00\x01\x00\x00\x00\x47\x4e\x55\x00\x00\x00\x00\x00\x03\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00"), -Section(".gnu.hash", 0x298, "\x01\x00\x00\x00\x01\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".dynsym", 0x2B8, "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x0b\x00\xb8\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x16\x00\x00\x10\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4d\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x22\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x69\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x27\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x22\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x78\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".dynstr", 0x3A8, "\x00\x5f\x5f\x63\x78\x61\x5f\x66\x69\x6e\x61\x6c\x69\x7a\x65\x00\x5f\x5f\x6c\x69\x62\x63\x5f\x73\x74\x61\x72\x74\x5f\x6d\x61\x69\x6e\x00\x70\x75\x74\x73\x00\x61\x62\x6f\x72\x74\x00\x6c\x69\x62\x63\x2e\x73\x6f\x2e\x36\x00\x47\x4c\x49\x42\x43\x5f\x32\x2e\x31\x37\x00\x47\x4c\x49\x42\x43\x5f\x32\x2e\x33\x34\x00\x5f\x49\x54\x4d\x5f\x64\x65\x72\x65\x67\x69\x73\x74\x65\x72\x54\x4d\x43\x6c\x6f\x6e\x65\x54\x61\x62\x6c\x65\x00\x5f\x5f\x67\x6d\x6f\x6e\x5f\x73\x74\x61\x72\x74\x5f\x5f\x00\x5f\x49\x54\x4d\x5f\x72\x65\x67\x69\x73\x74\x65\x72\x54\x4d\x43\x6c\x6f\x6e\x65\x54\x61\x62\x6c\x65\x00"), -Section(".gnu.version", 0x43A, "\x00\x00\x00\x00\x00\x00\x02\x00\x01\x00\x03\x00\x01\x00\x03\x00\x03\x00\x01\x00"), -Section(".gnu.version_r", 0x450, "\x01\x00\x02\x00\x2d\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x97\x91\x96\x06\x00\x00\x03\x00\x37\x00\x00\x00\x10\x00\x00\x00\xb4\x91\x96\x06\x00\x00\x02\x00\x42\x00\x00\x00\x00\x00\x00\x00"), -Section(".rela.dyn", 0x480, "\x90\x0d\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x50\x07\x00\x00\x00\x00\x00\x00\x98\x0d\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\xf0\x0f\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x74\x07\x00\x00\x00\x00\x00\x00\x08\x10\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x08\x10\x01\x00\x00\x00\x00\x00\xd8\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe0\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe8\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xf8\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x09\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".rela.plt", 0x540, "\xa8\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xb0\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xb8\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xc0\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xc8\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".init", 0x5B8, "\x1f\x20\x03\xd5\xfd\x7b\xbf\xa9\xfd\x03\x00\x91\x2c\x00\x00\x94\xfd\x7b\xc1\xa8\xc0\x03\x5f\xd6"), -Section(".plt", 0x5D0, "\xf0\x7b\xbf\xa9\x90\x00\x00\x90\x11\xd2\x47\xf9\x10\x82\x3e\x91\x20\x02\x1f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x90\x00\x00\x90\x11\xd6\x47\xf9\x10\xa2\x3e\x91\x20\x02\x1f\xd6\x90\x00\x00\x90\x11\xda\x47\xf9\x10\xc2\x3e\x91\x20\x02\x1f\xd6\x90\x00\x00\x90\x11\xde\x47\xf9\x10\xe2\x3e\x91\x20\x02\x1f\xd6\x90\x00\x00\x90\x11\xe2\x47\xf9\x10\x02\x3f\x91\x20\x02\x1f\xd6\x90\x00\x00\x90\x11\xe6\x47\xf9\x10\x22\x3f\x91\x20\x02\x1f\xd6"), -Section(".fini", 0x7A8, "\x1f\x20\x03\xd5\xfd\x7b\xbf\xa9\xfd\x03\x00\x91\xfd\x7b\xc1\xa8\xc0\x03\x5f\xd6"), -Section(".rodata", 0x7C0, "\x01\x00\x02\x00\x00\x00\x00\x00\x48\x65\x6c\x6c\x6f\x2c\x20\x77\x6f\x72\x6c\x64\x21\x00\x00\x00\x43\x61\x6c\x6c\x69\x6e\x67\x20\x67\x72\x65\x65\x74\x28\x29\x20\x69\x6e\x64\x69\x72\x65\x63\x74\x6c\x79\x3a\x00"), -Section(".eh_frame_hdr", 0x7F4, "\x01\x1b\x03\x3b\x40\x00\x00\x00\x07\x00\x00\x00\x4c\xfe\xff\xff\x58\x00\x00\x00\x9c\xfe\xff\xff\x6c\x00\x00\x00\xcc\xfe\xff\xff\x80\x00\x00\x00\x0c\xff\xff\xff\x94\x00\x00\x00\x5c\xff\xff\xff\xb8\x00\x00\x00\x60\xff\xff\xff\xcc\x00\x00\x00\x80\xff\xff\xff\xec\x00\x00\x00"), -Section(".eh_frame", 0x838, "\x10\x00\x00\x00\x00\x00\x00\x00\x01\x7a\x52\x00\x04\x78\x1e\x01\x1b\x0c\x1f\x00\x10\x00\x00\x00\x18\x00\x00\x00\xec\xfd\xff\xff\x34\x00\x00\x00\x00\x41\x07\x1e\x10\x00\x00\x00\x2c\x00\x00\x00\x28\xfe\xff\xff\x30\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x40\x00\x00\x00\x44\xfe\xff\xff\x3c\x00\x00\x00\x00\x00\x00\x00\x20\x00\x00\x00\x54\x00\x00\x00\x70\xfe\xff\xff\x48\x00\x00\x00\x00\x41\x0e\x20\x9d\x04\x9e\x03\x42\x93\x02\x4e\xde\xdd\xd3\x0e\x00\x00\x00\x00\x10\x00\x00\x00\x78\x00\x00\x00\x9c\xfe\xff\xff\x04\x00\x00\x00\x00\x00\x00\x00\x1c\x00\x00\x00\x8c\x00\x00\x00\x8c\xfe\xff\xff\x20\x00\x00\x00\x00\x41\x0e\x10\x9d\x02\x9e\x01\x46\xde\xdd\x0e\x00\x00\x00\x00\x1c\x00\x00\x00\xac\x00\x00\x00\x8c\xfe\xff\xff\x34\x00\x00\x00\x00\x41\x0e\x20\x9d\x04\x9e\x03\x4b\xde\xdd\x0e\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".fini_array", 0x10D98, "\x00\x07\x00\x00\x00\x00\x00\x00"), -Section(".dynamic", 0x10DA0, "\x01\x00\x00\x00\x00\x00\x00\x00\x2d\x00\x00\x00\x00\x00\x00\x00\x0c\x00\x00\x00\x00\x00\x00\x00\xb8\x05\x00\x00\x00\x00\x00\x00\x0d\x00\x00\x00\x00\x00\x00\x00\xa8\x07\x00\x00\x00\x00\x00\x00\x19\x00\x00\x00\x00\x00\x00\x00\x90\x0d\x01\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x1a\x00\x00\x00\x00\x00\x00\x00\x98\x0d\x01\x00\x00\x00\x00\x00\x1c\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\xf5\xfe\xff\x6f\x00\x00\x00\x00\x98\x02\x00\x00\x00\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\xa8\x03\x00\x00\x00\x00\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\xb8\x02\x00\x00\x00\x00\x00\x00\x0a\x00\x00\x00\x00\x00\x00\x00\x92\x00\x00\x00\x00\x00\x00\x00\x0b\x00\x00\x00\x00\x00\x00\x00\x18\x00\x00\x00\x00\x00\x00\x00\x15\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x90\x0f\x01\x00\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x78\x00\x00\x00\x00\x00\x00\x00\x14\x00\x00\x00\x00\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x17\x00\x00\x00\x00\x00\x00\x00\x40\x05\x00\x00\x00\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x80\x04\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\xc0\x00\x00\x00\x00\x00\x00\x00\x09\x00\x00\x00\x00\x00\x00\x00\x18\x00\x00\x00\x00\x00\x00\x00\x1e\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\xfb\xff\xff\x6f\x00\x00\x00\x00\x01\x00\x00\x08\x00\x00\x00\x00\xfe\xff\xff\x6f\x00\x00\x00\x00\x50\x04\x00\x00\x00\x00\x00\x00\xff\xff\xff\x6f\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\xf0\xff\xff\x6f\x00\x00\x00\x00\x3a\x04\x00\x00\x00\x00\x00\x00\xf9\xff\xff\x6f\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".got", 0x10F90, "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xd0\x05\x00\x00\x00\x00\x00\x00\xd0\x05\x00\x00\x00\x00\x00\x00\xd0\x05\x00\x00\x00\x00\x00\x00\xd0\x05\x00\x00\x00\x00\x00\x00\xd0\x05\x00\x00\x00\x00\x00\x00\xa0\x0d\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x74\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".data", 0x11000, "\x00\x00\x00\x00\x00\x00\x00\x00\x08\x10\x01\x00\x00\x00\x00\x00"), -Section(".init_array", 0x10D90, "\x50\x07\x00\x00\x00\x00\x00\x00"), -Section(".text", 0x640, "\x1f\x20\x03\xd5\x1d\x00\x80\xd2\x1e\x00\x80\xd2\xe5\x03\x00\xaa\xe1\x03\x40\xf9\xe2\x23\x00\x91\xe6\x03\x00\x91\x80\x00\x00\x90\x00\xf8\x47\xf9\x03\x00\x80\xd2\x04\x00\x80\xd2\xe1\xff\xff\x97\xec\xff\xff\x97\x80\x00\x00\x90\x00\xf4\x47\xf9\x40\x00\x00\xb4\xe4\xff\xff\x17\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x80\x00\x00\xb0\x00\x40\x00\x91\x81\x00\x00\xb0\x21\x40\x00\x91\x3f\x00\x00\xeb\xc0\x00\x00\x54\x81\x00\x00\x90\x21\xec\x47\xf9\x61\x00\x00\xb4\xf0\x03\x01\xaa\x00\x02\x1f\xd6\xc0\x03\x5f\xd6\x80\x00\x00\xb0\x00\x40\x00\x91\x81\x00\x00\xb0\x21\x40\x00\x91\x21\x00\x00\xcb\x22\xfc\x7f\xd3\x41\x0c\x81\x8b\x21\xfc\x41\x93\xc1\x00\x00\xb4\x82\x00\x00\x90\x42\xfc\x47\xf9\x62\x00\x00\xb4\xf0\x03\x02\xaa\x00\x02\x1f\xd6\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\xfd\x7b\xbe\xa9\xfd\x03\x00\x91\xf3\x0b\x00\xf9\x93\x00\x00\xb0\x60\x42\x40\x39\x40\x01\x00\x35\x80\x00\x00\x90\x00\xf0\x47\xf9\x80\x00\x00\xb4\x80\x00\x00\xb0\x00\x04\x40\xf9\xb5\xff\xff\x97\xd8\xff\xff\x97\x20\x00\x80\x52\x60\x42\x00\x39\xf3\x0b\x40\xf9\xfd\x7b\xc2\xa8\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\xdc\xff\xff\x17\xfd\x7b\xbf\xa9\xfd\x03\x00\x91\x00\x00\x00\x90\x00\x20\x1f\x91\xb3\xff\xff\x97\x1f\x20\x03\xd5\xfd\x7b\xc1\xa8\xc0\x03\x5f\xd6\xfd\x7b\xbe\xa9\xfd\x03\x00\x91\x00\x00\x00\x90\x00\x50\x1d\x91\xe0\x0f\x00\xf9\x00\x00\x00\x90\x00\x60\x1f\x91\xa8\xff\xff\x97\xe0\x0f\x40\xf9\x00\x00\x3f\xd6\x00\x00\x80\x52\xfd\x7b\xc2\xa8\xc0\x03\x5f\xd6")]), -Memmap([Annotation(Region(0x0,0x903), Attr("segment","02 0 2308")), -Annotation(Region(0x640,0x673), Attr("symbol","\"_start\"")), -Annotation(Region(0x0,0xF9), Attr("section","\".shstrtab\"")), -Annotation(Region(0x0,0x23A), Attr("section","\".strtab\"")), -Annotation(Region(0x0,0x857), Attr("section","\".symtab\"")), -Annotation(Region(0x0,0x2A), Attr("section","\".comment\"")), -Annotation(Region(0x238,0x252), Attr("section","\".interp\"")), -Annotation(Region(0x254,0x277), Attr("section","\".note.gnu.build-id\"")), -Annotation(Region(0x278,0x297), Attr("section","\".note.ABI-tag\"")), -Annotation(Region(0x298,0x2B3), Attr("section","\".gnu.hash\"")), -Annotation(Region(0x2B8,0x3A7), Attr("section","\".dynsym\"")), -Annotation(Region(0x3A8,0x439), Attr("section","\".dynstr\"")), -Annotation(Region(0x43A,0x44D), Attr("section","\".gnu.version\"")), -Annotation(Region(0x450,0x47F), Attr("section","\".gnu.version_r\"")), -Annotation(Region(0x480,0x53F), Attr("section","\".rela.dyn\"")), -Annotation(Region(0x540,0x5B7), Attr("section","\".rela.plt\"")), -Annotation(Region(0x5B8,0x5CF), Attr("section","\".init\"")), -Annotation(Region(0x5D0,0x63F), Attr("section","\".plt\"")), -Annotation(Region(0x5B8,0x5CF), Attr("code-region","()")), -Annotation(Region(0x5D0,0x63F), Attr("code-region","()")), -Annotation(Region(0x640,0x673), Attr("symbol-info","_start 0x640 52")), -Annotation(Region(0x674,0x687), Attr("symbol","\"call_weak_fn\"")), -Annotation(Region(0x674,0x687), Attr("symbol-info","call_weak_fn 0x674 20")), -Annotation(Region(0x754,0x773), Attr("symbol","\"greet\"")), -Annotation(Region(0x754,0x773), Attr("symbol-info","greet 0x754 32")), -Annotation(Region(0x640,0x7A7), Attr("code-region","()")), -Annotation(Region(0x774,0x7A7), Attr("symbol","\"main\"")), -Annotation(Region(0x774,0x7A7), Attr("symbol-info","main 0x774 52")), -Annotation(Region(0x7A8,0x7BB), Attr("section","\".fini\"")), -Annotation(Region(0x7C0,0x7F3), Attr("section","\".rodata\"")), -Annotation(Region(0x7F4,0x837), Attr("section","\".eh_frame_hdr\"")), -Annotation(Region(0x838,0x903), Attr("section","\".eh_frame\"")), -Annotation(Region(0x10D90,0x1100F), Attr("segment","03 0x10D90 648")), -Annotation(Region(0x10D98,0x10D9F), Attr("section","\".fini_array\"")), -Annotation(Region(0x10DA0,0x10F8F), Attr("section","\".dynamic\"")), -Annotation(Region(0x10F90,0x10FFF), Attr("section","\".got\"")), -Annotation(Region(0x11000,0x1100F), Attr("section","\".data\"")), -Annotation(Region(0x10D90,0x10D97), Attr("section","\".init_array\"")), -Annotation(Region(0x640,0x7A7), Attr("section","\".text\"")), -Annotation(Region(0x7A8,0x7BB), Attr("code-region","()"))]), -Program(Tid(1_708, "%000006ac"), Attrs([]), - Subs([Sub(Tid(1_653, "@__cxa_finalize"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x600"), -Attr("stub","()")]), "__cxa_finalize", Args([Arg(Tid(1_709, "%000006ad"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("__cxa_finalize_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(997, "@__cxa_finalize"), - Attrs([Attr("address","0x600")]), Phis([]), -Defs([Def(Tid(1_261, "%000004ed"), Attrs([Attr("address","0x600"), -Attr("insn","adrp x16, #65536")]), Var("R16",Imm(64)), Int(65536,64)), -Def(Tid(1_268, "%000004f4"), Attrs([Attr("address","0x604"), -Attr("insn","ldr x17, [x16, #0xfb0]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(4016,64)),LittleEndian(),64)), -Def(Tid(1_274, "%000004fa"), Attrs([Attr("address","0x608"), -Attr("insn","add x16, x16, #0xfb0")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(4016,64)))]), Jmps([Call(Tid(1_279, "%000004ff"), - Attrs([Attr("address","0x60C"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), -Sub(Tid(1_654, "@__do_global_dtors_aux"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x700")]), - "__do_global_dtors_aux", Args([Arg(Tid(1_710, "%000006ae"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("__do_global_dtors_aux_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(674, "@__do_global_dtors_aux"), - Attrs([Attr("address","0x700")]), Phis([]), Defs([Def(Tid(678, "%000002a6"), - Attrs([Attr("address","0x700"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("#3",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(18446744073709551584,64))), -Def(Tid(684, "%000002ac"), Attrs([Attr("address","0x700"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("#3",Imm(64)),Var("R29",Imm(64)),LittleEndian(),64)), -Def(Tid(690, "%000002b2"), Attrs([Attr("address","0x700"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("#3",Imm(64)),Int(8,64)),Var("R30",Imm(64)),LittleEndian(),64)), -Def(Tid(694, "%000002b6"), Attrs([Attr("address","0x700"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("R31",Imm(64)), -Var("#3",Imm(64))), Def(Tid(700, "%000002bc"), - Attrs([Attr("address","0x704"), Attr("insn","mov x29, sp")]), - Var("R29",Imm(64)), Var("R31",Imm(64))), Def(Tid(708, "%000002c4"), - Attrs([Attr("address","0x708"), Attr("insn","str x19, [sp, #0x10]")]), - Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(16,64)),Var("R19",Imm(64)),LittleEndian(),64)), -Def(Tid(713, "%000002c9"), Attrs([Attr("address","0x70C"), -Attr("insn","adrp x19, #69632")]), Var("R19",Imm(64)), Int(69632,64)), -Def(Tid(720, "%000002d0"), Attrs([Attr("address","0x710"), -Attr("insn","ldrb w0, [x19, #0x10]")]), Var("R0",Imm(64)), -UNSIGNED(64,Load(Var("mem",Mem(64,8)),PLUS(Var("R19",Imm(64)),Int(16,64)),LittleEndian(),8)))]), -Jmps([Goto(Tid(727, "%000002d7"), Attrs([Attr("address","0x714"), -Attr("insn","cbnz w0, #0x28")]), - NEQ(Extract(31,0,Var("R0",Imm(64))),Int(0,32)), -Direct(Tid(725, "%000002d5"))), Goto(Tid(1_698, "%000006a2"), Attrs([]), - Int(1,1), Direct(Tid(942, "%000003ae")))])), Blk(Tid(942, "%000003ae"), - Attrs([Attr("address","0x718")]), Phis([]), Defs([Def(Tid(945, "%000003b1"), - Attrs([Attr("address","0x718"), Attr("insn","adrp x0, #65536")]), - Var("R0",Imm(64)), Int(65536,64)), Def(Tid(952, "%000003b8"), - Attrs([Attr("address","0x71C"), Attr("insn","ldr x0, [x0, #0xfe0]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(4064,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(958, "%000003be"), Attrs([Attr("address","0x720"), -Attr("insn","cbz x0, #0x10")]), EQ(Var("R0",Imm(64)),Int(0,64)), -Direct(Tid(956, "%000003bc"))), Goto(Tid(1_699, "%000006a3"), Attrs([]), - Int(1,1), Direct(Tid(981, "%000003d5")))])), Blk(Tid(981, "%000003d5"), - Attrs([Attr("address","0x724")]), Phis([]), Defs([Def(Tid(984, "%000003d8"), - Attrs([Attr("address","0x724"), Attr("insn","adrp x0, #69632")]), - Var("R0",Imm(64)), Int(69632,64)), Def(Tid(991, "%000003df"), - Attrs([Attr("address","0x728"), Attr("insn","ldr x0, [x0, #0x8]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(996, "%000003e4"), Attrs([Attr("address","0x72C"), -Attr("insn","bl #-0x12c")]), Var("R30",Imm(64)), Int(1840,64))]), -Jmps([Call(Tid(999, "%000003e7"), Attrs([Attr("address","0x72C"), -Attr("insn","bl #-0x12c")]), Int(1,1), -(Direct(Tid(1_653, "@__cxa_finalize")),Direct(Tid(956, "%000003bc"))))])), -Blk(Tid(956, "%000003bc"), Attrs([Attr("address","0x730")]), Phis([]), -Defs([Def(Tid(964, "%000003c4"), Attrs([Attr("address","0x730"), -Attr("insn","bl #-0xa0")]), Var("R30",Imm(64)), Int(1844,64))]), -Jmps([Call(Tid(966, "%000003c6"), Attrs([Attr("address","0x730"), -Attr("insn","bl #-0xa0")]), Int(1,1), -(Direct(Tid(1_667, "@deregister_tm_clones")),Direct(Tid(968, "%000003c8"))))])), -Blk(Tid(968, "%000003c8"), Attrs([Attr("address","0x734")]), Phis([]), -Defs([Def(Tid(971, "%000003cb"), Attrs([Attr("address","0x734"), -Attr("insn","mov w0, #0x1")]), Var("R0",Imm(64)), Int(1,64)), -Def(Tid(979, "%000003d3"), Attrs([Attr("address","0x738"), -Attr("insn","strb w0, [x19, #0x10]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R19",Imm(64)),Int(16,64)),Extract(7,0,Var("R0",Imm(64))),LittleEndian(),8))]), -Jmps([Goto(Tid(1_700, "%000006a4"), Attrs([]), Int(1,1), -Direct(Tid(725, "%000002d5")))])), Blk(Tid(725, "%000002d5"), - Attrs([Attr("address","0x73C")]), Phis([]), Defs([Def(Tid(735, "%000002df"), - Attrs([Attr("address","0x73C"), Attr("insn","ldr x19, [sp, #0x10]")]), - Var("R19",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(16,64)),LittleEndian(),64)), -Def(Tid(742, "%000002e6"), Attrs([Attr("address","0x740"), -Attr("insn","ldp x29, x30, [sp], #0x20")]), Var("R29",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(747, "%000002eb"), Attrs([Attr("address","0x740"), -Attr("insn","ldp x29, x30, [sp], #0x20")]), Var("R30",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(751, "%000002ef"), Attrs([Attr("address","0x740"), -Attr("insn","ldp x29, x30, [sp], #0x20")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(32,64)))]), Jmps([Call(Tid(756, "%000002f4"), - Attrs([Attr("address","0x744"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), Sub(Tid(1_658, "@__libc_start_main"), - Attrs([Attr("c.proto","signed (*)(signed (*)(signed , char** , char** );* main, signed , char** , \nvoid* auxv)"), -Attr("address","0x5F0"), Attr("stub","()")]), "__libc_start_main", - Args([Arg(Tid(1_711, "%000006af"), - Attrs([Attr("c.layout","**[ : 64]"), -Attr("c.data","Top:u64 ptr ptr"), -Attr("c.type","signed (*)(signed , char** , char** );*")]), - Var("__libc_start_main_main",Imm(64)), Var("R0",Imm(64)), In()), -Arg(Tid(1_712, "%000006b0"), Attrs([Attr("c.layout","[signed : 32]"), -Attr("c.data","Top:u32"), Attr("c.type","signed")]), - Var("__libc_start_main_arg2",Imm(32)), LOW(32,Var("R1",Imm(64))), In()), -Arg(Tid(1_713, "%000006b1"), Attrs([Attr("c.layout","**[char : 8]"), -Attr("c.data","Top:u8 ptr ptr"), Attr("c.type","char**")]), - Var("__libc_start_main_arg3",Imm(64)), Var("R2",Imm(64)), Both()), -Arg(Tid(1_714, "%000006b2"), Attrs([Attr("c.layout","*[ : 8]"), -Attr("c.data","{} ptr"), Attr("c.type","void*")]), - Var("__libc_start_main_auxv",Imm(64)), Var("R3",Imm(64)), Both()), -Arg(Tid(1_715, "%000006b3"), Attrs([Attr("c.layout","[signed : 32]"), -Attr("c.data","Top:u32"), Attr("c.type","signed")]), - Var("__libc_start_main_result",Imm(32)), LOW(32,Var("R0",Imm(64))), -Out())]), Blks([Blk(Tid(507, "@__libc_start_main"), - Attrs([Attr("address","0x5F0")]), Phis([]), -Defs([Def(Tid(1_239, "%000004d7"), Attrs([Attr("address","0x5F0"), -Attr("insn","adrp x16, #65536")]), Var("R16",Imm(64)), Int(65536,64)), -Def(Tid(1_246, "%000004de"), Attrs([Attr("address","0x5F4"), -Attr("insn","ldr x17, [x16, #0xfa8]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(4008,64)),LittleEndian(),64)), -Def(Tid(1_252, "%000004e4"), Attrs([Attr("address","0x5F8"), -Attr("insn","add x16, x16, #0xfa8")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(4008,64)))]), Jmps([Call(Tid(1_257, "%000004e9"), - Attrs([Attr("address","0x5FC"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), Sub(Tid(1_659, "@_fini"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x7A8")]), - "_fini", Args([Arg(Tid(1_716, "%000006b4"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("_fini_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(31, "@_fini"), - Attrs([Attr("address","0x7A8")]), Phis([]), Defs([Def(Tid(37, "%00000025"), - Attrs([Attr("address","0x7AC"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("#0",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(18446744073709551600,64))), -Def(Tid(43, "%0000002b"), Attrs([Attr("address","0x7AC"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("#0",Imm(64)),Var("R29",Imm(64)),LittleEndian(),64)), -Def(Tid(49, "%00000031"), Attrs([Attr("address","0x7AC"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("#0",Imm(64)),Int(8,64)),Var("R30",Imm(64)),LittleEndian(),64)), -Def(Tid(53, "%00000035"), Attrs([Attr("address","0x7AC"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("R31",Imm(64)), -Var("#0",Imm(64))), Def(Tid(59, "%0000003b"), Attrs([Attr("address","0x7B0"), -Attr("insn","mov x29, sp")]), Var("R29",Imm(64)), Var("R31",Imm(64))), -Def(Tid(66, "%00000042"), Attrs([Attr("address","0x7B4"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R29",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(71, "%00000047"), Attrs([Attr("address","0x7B4"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R30",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(75, "%0000004b"), Attrs([Attr("address","0x7B4"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(16,64)))]), Jmps([Call(Tid(80, "%00000050"), - Attrs([Attr("address","0x7B8"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), Sub(Tid(1_660, "@_init"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x5B8")]), - "_init", Args([Arg(Tid(1_717, "%000006b5"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("_init_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(1_470, "@_init"), - Attrs([Attr("address","0x5B8")]), Phis([]), -Defs([Def(Tid(1_476, "%000005c4"), Attrs([Attr("address","0x5BC"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("#7",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(18446744073709551600,64))), -Def(Tid(1_482, "%000005ca"), Attrs([Attr("address","0x5BC"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("#7",Imm(64)),Var("R29",Imm(64)),LittleEndian(),64)), -Def(Tid(1_488, "%000005d0"), Attrs([Attr("address","0x5BC"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("#7",Imm(64)),Int(8,64)),Var("R30",Imm(64)),LittleEndian(),64)), -Def(Tid(1_492, "%000005d4"), Attrs([Attr("address","0x5BC"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("R31",Imm(64)), -Var("#7",Imm(64))), Def(Tid(1_498, "%000005da"), - Attrs([Attr("address","0x5C0"), Attr("insn","mov x29, sp")]), - Var("R29",Imm(64)), Var("R31",Imm(64))), Def(Tid(1_503, "%000005df"), - Attrs([Attr("address","0x5C4"), Attr("insn","bl #0xb0")]), - Var("R30",Imm(64)), Int(1480,64))]), Jmps([Call(Tid(1_505, "%000005e1"), - Attrs([Attr("address","0x5C4"), Attr("insn","bl #0xb0")]), Int(1,1), -(Direct(Tid(1_665, "@call_weak_fn")),Direct(Tid(1_507, "%000005e3"))))])), -Blk(Tid(1_507, "%000005e3"), Attrs([Attr("address","0x5C8")]), Phis([]), -Defs([Def(Tid(1_512, "%000005e8"), Attrs([Attr("address","0x5C8"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R29",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(1_517, "%000005ed"), Attrs([Attr("address","0x5C8"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R30",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(1_521, "%000005f1"), Attrs([Attr("address","0x5C8"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(16,64)))]), Jmps([Call(Tid(1_526, "%000005f6"), - Attrs([Attr("address","0x5CC"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), Sub(Tid(1_661, "@_start"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x640"), -Attr("stub","()"), Attr("entry-point","()")]), "_start", - Args([Arg(Tid(1_718, "%000006b6"), Attrs([Attr("c.layout","[signed : 32]"), -Attr("c.data","Top:u32"), Attr("c.type","signed")]), - Var("_start_result",Imm(32)), LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(444, "@_start"), Attrs([Attr("address","0x640")]), Phis([]), -Defs([Def(Tid(449, "%000001c1"), Attrs([Attr("address","0x644"), -Attr("insn","mov x29, #0x0")]), Var("R29",Imm(64)), Int(0,64)), -Def(Tid(454, "%000001c6"), Attrs([Attr("address","0x648"), -Attr("insn","mov x30, #0x0")]), Var("R30",Imm(64)), Int(0,64)), -Def(Tid(460, "%000001cc"), Attrs([Attr("address","0x64C"), -Attr("insn","mov x5, x0")]), Var("R5",Imm(64)), Var("R0",Imm(64))), -Def(Tid(467, "%000001d3"), Attrs([Attr("address","0x650"), -Attr("insn","ldr x1, [sp]")]), Var("R1",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(473, "%000001d9"), Attrs([Attr("address","0x654"), -Attr("insn","add x2, sp, #0x8")]), Var("R2",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(8,64))), Def(Tid(479, "%000001df"), - Attrs([Attr("address","0x658"), Attr("insn","mov x6, sp")]), - Var("R6",Imm(64)), Var("R31",Imm(64))), Def(Tid(484, "%000001e4"), - Attrs([Attr("address","0x65C"), Attr("insn","adrp x0, #65536")]), - Var("R0",Imm(64)), Int(65536,64)), Def(Tid(491, "%000001eb"), - Attrs([Attr("address","0x660"), Attr("insn","ldr x0, [x0, #0xff0]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(4080,64)),LittleEndian(),64)), -Def(Tid(496, "%000001f0"), Attrs([Attr("address","0x664"), -Attr("insn","mov x3, #0x0")]), Var("R3",Imm(64)), Int(0,64)), -Def(Tid(501, "%000001f5"), Attrs([Attr("address","0x668"), -Attr("insn","mov x4, #0x0")]), Var("R4",Imm(64)), Int(0,64)), -Def(Tid(506, "%000001fa"), Attrs([Attr("address","0x66C"), -Attr("insn","bl #-0x7c")]), Var("R30",Imm(64)), Int(1648,64))]), -Jmps([Call(Tid(509, "%000001fd"), Attrs([Attr("address","0x66C"), -Attr("insn","bl #-0x7c")]), Int(1,1), -(Direct(Tid(1_658, "@__libc_start_main")),Direct(Tid(511, "%000001ff"))))])), -Blk(Tid(511, "%000001ff"), Attrs([Attr("address","0x670")]), Phis([]), -Defs([Def(Tid(514, "%00000202"), Attrs([Attr("address","0x670"), -Attr("insn","bl #-0x50")]), Var("R30",Imm(64)), Int(1652,64))]), -Jmps([Call(Tid(517, "%00000205"), Attrs([Attr("address","0x670"), -Attr("insn","bl #-0x50")]), Int(1,1), -(Direct(Tid(1_664, "@abort")),Direct(Tid(1_701, "%000006a5"))))])), -Blk(Tid(1_701, "%000006a5"), Attrs([]), Phis([]), Defs([]), -Jmps([Call(Tid(1_702, "%000006a6"), Attrs([]), Int(1,1), -(Direct(Tid(1_665, "@call_weak_fn")),))]))])), Sub(Tid(1_664, "@abort"), - Attrs([Attr("noreturn","()"), Attr("c.proto","void (*)(void)"), -Attr("address","0x620"), Attr("stub","()")]), "abort", Args([]), -Blks([Blk(Tid(515, "@abort"), Attrs([Attr("address","0x620")]), Phis([]), -Defs([Def(Tid(1_305, "%00000519"), Attrs([Attr("address","0x620"), -Attr("insn","adrp x16, #65536")]), Var("R16",Imm(64)), Int(65536,64)), -Def(Tid(1_312, "%00000520"), Attrs([Attr("address","0x624"), -Attr("insn","ldr x17, [x16, #0xfc0]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(4032,64)),LittleEndian(),64)), -Def(Tid(1_318, "%00000526"), Attrs([Attr("address","0x628"), -Attr("insn","add x16, x16, #0xfc0")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(4032,64)))]), Jmps([Call(Tid(1_323, "%0000052b"), - Attrs([Attr("address","0x62C"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), Sub(Tid(1_665, "@call_weak_fn"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x674")]), - "call_weak_fn", Args([Arg(Tid(1_719, "%000006b7"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("call_weak_fn_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(519, "@call_weak_fn"), - Attrs([Attr("address","0x674")]), Phis([]), Defs([Def(Tid(522, "%0000020a"), - Attrs([Attr("address","0x674"), Attr("insn","adrp x0, #65536")]), - Var("R0",Imm(64)), Int(65536,64)), Def(Tid(529, "%00000211"), - Attrs([Attr("address","0x678"), Attr("insn","ldr x0, [x0, #0xfe8]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(4072,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(535, "%00000217"), Attrs([Attr("address","0x67C"), -Attr("insn","cbz x0, #0x8")]), EQ(Var("R0",Imm(64)),Int(0,64)), -Direct(Tid(533, "%00000215"))), Goto(Tid(1_703, "%000006a7"), Attrs([]), - Int(1,1), Direct(Tid(1_061, "%00000425")))])), Blk(Tid(533, "%00000215"), - Attrs([Attr("address","0x684")]), Phis([]), Defs([]), -Jmps([Call(Tid(541, "%0000021d"), Attrs([Attr("address","0x684"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))])), -Blk(Tid(1_061, "%00000425"), Attrs([Attr("address","0x680")]), Phis([]), -Defs([]), Jmps([Goto(Tid(1_064, "%00000428"), Attrs([Attr("address","0x680"), -Attr("insn","b #-0x70")]), Int(1,1), -Direct(Tid(1_062, "@__gmon_start__")))])), Blk(Tid(1_062, "@__gmon_start__"), - Attrs([Attr("address","0x610")]), Phis([]), -Defs([Def(Tid(1_283, "%00000503"), Attrs([Attr("address","0x610"), -Attr("insn","adrp x16, #65536")]), Var("R16",Imm(64)), Int(65536,64)), -Def(Tid(1_290, "%0000050a"), Attrs([Attr("address","0x614"), -Attr("insn","ldr x17, [x16, #0xfb8]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(4024,64)),LittleEndian(),64)), -Def(Tid(1_296, "%00000510"), Attrs([Attr("address","0x618"), -Attr("insn","add x16, x16, #0xfb8")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(4024,64)))]), Jmps([Call(Tid(1_301, "%00000515"), - Attrs([Attr("address","0x61C"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), -Sub(Tid(1_667, "@deregister_tm_clones"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x690")]), - "deregister_tm_clones", Args([Arg(Tid(1_720, "%000006b8"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("deregister_tm_clones_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(547, "@deregister_tm_clones"), - Attrs([Attr("address","0x690")]), Phis([]), Defs([Def(Tid(550, "%00000226"), - Attrs([Attr("address","0x690"), Attr("insn","adrp x0, #69632")]), - Var("R0",Imm(64)), Int(69632,64)), Def(Tid(556, "%0000022c"), - Attrs([Attr("address","0x694"), Attr("insn","add x0, x0, #0x10")]), - Var("R0",Imm(64)), PLUS(Var("R0",Imm(64)),Int(16,64))), -Def(Tid(561, "%00000231"), Attrs([Attr("address","0x698"), -Attr("insn","adrp x1, #69632")]), Var("R1",Imm(64)), Int(69632,64)), -Def(Tid(567, "%00000237"), Attrs([Attr("address","0x69C"), -Attr("insn","add x1, x1, #0x10")]), Var("R1",Imm(64)), -PLUS(Var("R1",Imm(64)),Int(16,64))), Def(Tid(573, "%0000023d"), - Attrs([Attr("address","0x6A0"), Attr("insn","cmp x1, x0")]), - Var("#1",Imm(64)), NOT(Var("R0",Imm(64)))), Def(Tid(578, "%00000242"), - Attrs([Attr("address","0x6A0"), Attr("insn","cmp x1, x0")]), - Var("#2",Imm(64)), PLUS(Var("R1",Imm(64)),NOT(Var("R0",Imm(64))))), -Def(Tid(584, "%00000248"), Attrs([Attr("address","0x6A0"), -Attr("insn","cmp x1, x0")]), Var("VF",Imm(1)), -NEQ(SIGNED(65,PLUS(Var("#2",Imm(64)),Int(1,64))),PLUS(PLUS(SIGNED(65,Var("R1",Imm(64))),SIGNED(65,Var("#1",Imm(64)))),Int(1,65)))), -Def(Tid(590, "%0000024e"), Attrs([Attr("address","0x6A0"), -Attr("insn","cmp x1, x0")]), Var("CF",Imm(1)), -NEQ(UNSIGNED(65,PLUS(Var("#2",Imm(64)),Int(1,64))),PLUS(PLUS(UNSIGNED(65,Var("R1",Imm(64))),UNSIGNED(65,Var("#1",Imm(64)))),Int(1,65)))), -Def(Tid(594, "%00000252"), Attrs([Attr("address","0x6A0"), -Attr("insn","cmp x1, x0")]), Var("ZF",Imm(1)), -EQ(PLUS(Var("#2",Imm(64)),Int(1,64)),Int(0,64))), Def(Tid(598, "%00000256"), - Attrs([Attr("address","0x6A0"), Attr("insn","cmp x1, x0")]), - Var("NF",Imm(1)), Extract(63,63,PLUS(Var("#2",Imm(64)),Int(1,64))))]), -Jmps([Goto(Tid(604, "%0000025c"), Attrs([Attr("address","0x6A4"), -Attr("insn","b.eq #0x18")]), EQ(Var("ZF",Imm(1)),Int(1,1)), -Direct(Tid(602, "%0000025a"))), Goto(Tid(1_704, "%000006a8"), Attrs([]), - Int(1,1), Direct(Tid(1_031, "%00000407")))])), Blk(Tid(1_031, "%00000407"), - Attrs([Attr("address","0x6A8")]), Phis([]), -Defs([Def(Tid(1_034, "%0000040a"), Attrs([Attr("address","0x6A8"), -Attr("insn","adrp x1, #65536")]), Var("R1",Imm(64)), Int(65536,64)), -Def(Tid(1_041, "%00000411"), Attrs([Attr("address","0x6AC"), -Attr("insn","ldr x1, [x1, #0xfd8]")]), Var("R1",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R1",Imm(64)),Int(4056,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(1_046, "%00000416"), Attrs([Attr("address","0x6B0"), -Attr("insn","cbz x1, #0xc")]), EQ(Var("R1",Imm(64)),Int(0,64)), -Direct(Tid(602, "%0000025a"))), Goto(Tid(1_705, "%000006a9"), Attrs([]), - Int(1,1), Direct(Tid(1_050, "%0000041a")))])), Blk(Tid(602, "%0000025a"), - Attrs([Attr("address","0x6BC")]), Phis([]), Defs([]), -Jmps([Call(Tid(610, "%00000262"), Attrs([Attr("address","0x6BC"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))])), -Blk(Tid(1_050, "%0000041a"), Attrs([Attr("address","0x6B4")]), Phis([]), -Defs([Def(Tid(1_054, "%0000041e"), Attrs([Attr("address","0x6B4"), -Attr("insn","mov x16, x1")]), Var("R16",Imm(64)), Var("R1",Imm(64)))]), -Jmps([Call(Tid(1_059, "%00000423"), Attrs([Attr("address","0x6B8"), -Attr("insn","br x16")]), Int(1,1), (Indirect(Var("R16",Imm(64))),))]))])), -Sub(Tid(1_670, "@frame_dummy"), Attrs([Attr("c.proto","signed (*)(void)"), -Attr("address","0x750")]), "frame_dummy", Args([Arg(Tid(1_721, "%000006b9"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("frame_dummy_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(762, "@frame_dummy"), - Attrs([Attr("address","0x750")]), Phis([]), Defs([]), -Jmps([Call(Tid(764, "%000002fc"), Attrs([Attr("address","0x750"), -Attr("insn","b #-0x90")]), Int(1,1), -(Direct(Tid(1_674, "@register_tm_clones")),))]))])), -Sub(Tid(1_671, "@greet"), Attrs([Attr("c.proto","signed (*)(void)"), -Attr("address","0x754")]), "greet", Args([Arg(Tid(1_722, "%000006ba"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("greet_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(766, "@greet"), - Attrs([Attr("address","0x754")]), Phis([]), Defs([Def(Tid(770, "%00000302"), - Attrs([Attr("address","0x754"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("#4",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(18446744073709551600,64))), -Def(Tid(776, "%00000308"), Attrs([Attr("address","0x754"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("#4",Imm(64)),Var("R29",Imm(64)),LittleEndian(),64)), -Def(Tid(782, "%0000030e"), Attrs([Attr("address","0x754"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("#4",Imm(64)),Int(8,64)),Var("R30",Imm(64)),LittleEndian(),64)), -Def(Tid(786, "%00000312"), Attrs([Attr("address","0x754"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("R31",Imm(64)), -Var("#4",Imm(64))), Def(Tid(792, "%00000318"), - Attrs([Attr("address","0x758"), Attr("insn","mov x29, sp")]), - Var("R29",Imm(64)), Var("R31",Imm(64))), Def(Tid(797, "%0000031d"), - Attrs([Attr("address","0x75C"), Attr("insn","adrp x0, #0")]), - Var("R0",Imm(64)), Int(0,64)), Def(Tid(803, "%00000323"), - Attrs([Attr("address","0x760"), Attr("insn","add x0, x0, #0x7c8")]), - Var("R0",Imm(64)), PLUS(Var("R0",Imm(64)),Int(1992,64))), -Def(Tid(808, "%00000328"), Attrs([Attr("address","0x764"), -Attr("insn","bl #-0x134")]), Var("R30",Imm(64)), Int(1896,64))]), -Jmps([Call(Tid(811, "%0000032b"), Attrs([Attr("address","0x764"), -Attr("insn","bl #-0x134")]), Int(1,1), -(Direct(Tid(1_673, "@puts")),Direct(Tid(813, "%0000032d"))))])), -Blk(Tid(813, "%0000032d"), Attrs([Attr("address","0x768")]), Phis([]), -Defs([Def(Tid(820, "%00000334"), Attrs([Attr("address","0x76C"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R29",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(825, "%00000339"), Attrs([Attr("address","0x76C"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R30",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(829, "%0000033d"), Attrs([Attr("address","0x76C"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(16,64)))]), Jmps([Call(Tid(834, "%00000342"), - Attrs([Attr("address","0x770"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), Sub(Tid(1_672, "@main"), - Attrs([Attr("c.proto","signed (*)(signed argc, const char** argv)"), -Attr("address","0x774")]), "main", Args([Arg(Tid(1_723, "%000006bb"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("main_argc",Imm(32)), -LOW(32,Var("R0",Imm(64))), In()), Arg(Tid(1_724, "%000006bc"), - Attrs([Attr("c.layout","**[char : 8]"), Attr("c.data","Top:u8 ptr ptr"), -Attr("c.type"," const char**")]), Var("main_argv",Imm(64)), -Var("R1",Imm(64)), Both()), Arg(Tid(1_725, "%000006bd"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("main_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(836, "@main"), - Attrs([Attr("address","0x774")]), Phis([]), Defs([Def(Tid(840, "%00000348"), - Attrs([Attr("address","0x774"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("#5",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(18446744073709551584,64))), -Def(Tid(846, "%0000034e"), Attrs([Attr("address","0x774"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("#5",Imm(64)),Var("R29",Imm(64)),LittleEndian(),64)), -Def(Tid(852, "%00000354"), Attrs([Attr("address","0x774"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("#5",Imm(64)),Int(8,64)),Var("R30",Imm(64)),LittleEndian(),64)), -Def(Tid(856, "%00000358"), Attrs([Attr("address","0x774"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("R31",Imm(64)), -Var("#5",Imm(64))), Def(Tid(862, "%0000035e"), - Attrs([Attr("address","0x778"), Attr("insn","mov x29, sp")]), - Var("R29",Imm(64)), Var("R31",Imm(64))), Def(Tid(867, "%00000363"), - Attrs([Attr("address","0x77C"), Attr("insn","adrp x0, #0")]), - Var("R0",Imm(64)), Int(0,64)), Def(Tid(873, "%00000369"), - Attrs([Attr("address","0x780"), Attr("insn","add x0, x0, #0x754")]), - Var("R0",Imm(64)), PLUS(Var("R0",Imm(64)),Int(1876,64))), -Def(Tid(881, "%00000371"), Attrs([Attr("address","0x784"), -Attr("insn","str x0, [sp, #0x18]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(24,64)),Var("R0",Imm(64)),LittleEndian(),64)), -Def(Tid(886, "%00000376"), Attrs([Attr("address","0x788"), -Attr("insn","adrp x0, #0")]), Var("R0",Imm(64)), Int(0,64)), -Def(Tid(892, "%0000037c"), Attrs([Attr("address","0x78C"), -Attr("insn","add x0, x0, #0x7d8")]), Var("R0",Imm(64)), -PLUS(Var("R0",Imm(64)),Int(2008,64))), Def(Tid(897, "%00000381"), - Attrs([Attr("address","0x790"), Attr("insn","bl #-0x160")]), - Var("R30",Imm(64)), Int(1940,64))]), Jmps([Call(Tid(899, "%00000383"), - Attrs([Attr("address","0x790"), Attr("insn","bl #-0x160")]), Int(1,1), -(Direct(Tid(1_673, "@puts")),Direct(Tid(901, "%00000385"))))])), -Blk(Tid(901, "%00000385"), Attrs([Attr("address","0x794")]), Phis([]), -Defs([Def(Tid(906, "%0000038a"), Attrs([Attr("address","0x794"), -Attr("insn","ldr x0, [sp, #0x18]")]), Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(24,64)),LittleEndian(),64)), -Def(Tid(911, "%0000038f"), Attrs([Attr("address","0x798"), -Attr("insn","blr x0")]), Var("R30",Imm(64)), Int(1948,64))]), -Jmps([Call(Tid(914, "%00000392"), Attrs([Attr("address","0x798"), -Attr("insn","blr x0")]), Int(1,1), -(Indirect(Var("R0",Imm(64))),Direct(Tid(916, "%00000394"))))])), -Blk(Tid(916, "%00000394"), Attrs([Attr("address","0x79C")]), Phis([]), -Defs([Def(Tid(919, "%00000397"), Attrs([Attr("address","0x79C"), -Attr("insn","mov w0, #0x0")]), Var("R0",Imm(64)), Int(0,64)), -Def(Tid(926, "%0000039e"), Attrs([Attr("address","0x7A0"), -Attr("insn","ldp x29, x30, [sp], #0x20")]), Var("R29",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(931, "%000003a3"), Attrs([Attr("address","0x7A0"), -Attr("insn","ldp x29, x30, [sp], #0x20")]), Var("R30",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(935, "%000003a7"), Attrs([Attr("address","0x7A0"), -Attr("insn","ldp x29, x30, [sp], #0x20")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(32,64)))]), Jmps([Call(Tid(940, "%000003ac"), - Attrs([Attr("address","0x7A4"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), Sub(Tid(1_673, "@puts"), - Attrs([Attr("c.proto","signed (*)( const char* s)"), -Attr("address","0x630"), Attr("stub","()")]), "puts", - Args([Arg(Tid(1_726, "%000006be"), Attrs([Attr("c.layout","*[char : 8]"), -Attr("c.data","Top:u8 ptr"), Attr("c.type"," const char*")]), - Var("puts_s",Imm(64)), Var("R0",Imm(64)), In()), -Arg(Tid(1_727, "%000006bf"), Attrs([Attr("c.layout","[signed : 32]"), -Attr("c.data","Top:u32"), Attr("c.type","signed")]), - Var("puts_result",Imm(32)), LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(809, "@puts"), Attrs([Attr("address","0x630")]), Phis([]), -Defs([Def(Tid(1_327, "%0000052f"), Attrs([Attr("address","0x630"), -Attr("insn","adrp x16, #65536")]), Var("R16",Imm(64)), Int(65536,64)), -Def(Tid(1_334, "%00000536"), Attrs([Attr("address","0x634"), -Attr("insn","ldr x17, [x16, #0xfc8]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(4040,64)),LittleEndian(),64)), -Def(Tid(1_340, "%0000053c"), Attrs([Attr("address","0x638"), -Attr("insn","add x16, x16, #0xfc8")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(4040,64)))]), Jmps([Call(Tid(1_345, "%00000541"), - Attrs([Attr("address","0x63C"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), -Sub(Tid(1_674, "@register_tm_clones"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x6C0")]), - "register_tm_clones", Args([Arg(Tid(1_728, "%000006c0"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("register_tm_clones_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(612, "@register_tm_clones"), Attrs([Attr("address","0x6C0")]), - Phis([]), Defs([Def(Tid(615, "%00000267"), Attrs([Attr("address","0x6C0"), -Attr("insn","adrp x0, #69632")]), Var("R0",Imm(64)), Int(69632,64)), -Def(Tid(621, "%0000026d"), Attrs([Attr("address","0x6C4"), -Attr("insn","add x0, x0, #0x10")]), Var("R0",Imm(64)), -PLUS(Var("R0",Imm(64)),Int(16,64))), Def(Tid(626, "%00000272"), - Attrs([Attr("address","0x6C8"), Attr("insn","adrp x1, #69632")]), - Var("R1",Imm(64)), Int(69632,64)), Def(Tid(632, "%00000278"), - Attrs([Attr("address","0x6CC"), Attr("insn","add x1, x1, #0x10")]), - Var("R1",Imm(64)), PLUS(Var("R1",Imm(64)),Int(16,64))), -Def(Tid(639, "%0000027f"), Attrs([Attr("address","0x6D0"), -Attr("insn","sub x1, x1, x0")]), Var("R1",Imm(64)), -PLUS(PLUS(Var("R1",Imm(64)),NOT(Var("R0",Imm(64)))),Int(1,64))), -Def(Tid(645, "%00000285"), Attrs([Attr("address","0x6D4"), -Attr("insn","lsr x2, x1, #63")]), Var("R2",Imm(64)), -Concat(Int(0,63),Extract(63,63,Var("R1",Imm(64))))), -Def(Tid(652, "%0000028c"), Attrs([Attr("address","0x6D8"), -Attr("insn","add x1, x2, x1, asr #3")]), Var("R1",Imm(64)), -PLUS(Var("R2",Imm(64)),ARSHIFT(Var("R1",Imm(64)),Int(3,3)))), -Def(Tid(658, "%00000292"), Attrs([Attr("address","0x6DC"), -Attr("insn","asr x1, x1, #1")]), Var("R1",Imm(64)), -SIGNED(64,Extract(63,1,Var("R1",Imm(64)))))]), -Jmps([Goto(Tid(664, "%00000298"), Attrs([Attr("address","0x6E0"), -Attr("insn","cbz x1, #0x18")]), EQ(Var("R1",Imm(64)),Int(0,64)), -Direct(Tid(662, "%00000296"))), Goto(Tid(1_706, "%000006aa"), Attrs([]), - Int(1,1), Direct(Tid(1_001, "%000003e9")))])), Blk(Tid(1_001, "%000003e9"), - Attrs([Attr("address","0x6E4")]), Phis([]), -Defs([Def(Tid(1_004, "%000003ec"), Attrs([Attr("address","0x6E4"), -Attr("insn","adrp x2, #65536")]), Var("R2",Imm(64)), Int(65536,64)), -Def(Tid(1_011, "%000003f3"), Attrs([Attr("address","0x6E8"), -Attr("insn","ldr x2, [x2, #0xff8]")]), Var("R2",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R2",Imm(64)),Int(4088,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(1_016, "%000003f8"), Attrs([Attr("address","0x6EC"), -Attr("insn","cbz x2, #0xc")]), EQ(Var("R2",Imm(64)),Int(0,64)), -Direct(Tid(662, "%00000296"))), Goto(Tid(1_707, "%000006ab"), Attrs([]), - Int(1,1), Direct(Tid(1_020, "%000003fc")))])), Blk(Tid(662, "%00000296"), - Attrs([Attr("address","0x6F8")]), Phis([]), Defs([]), -Jmps([Call(Tid(670, "%0000029e"), Attrs([Attr("address","0x6F8"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))])), -Blk(Tid(1_020, "%000003fc"), Attrs([Attr("address","0x6F0")]), Phis([]), -Defs([Def(Tid(1_024, "%00000400"), Attrs([Attr("address","0x6F0"), -Attr("insn","mov x16, x2")]), Var("R16",Imm(64)), Var("R2",Imm(64)))]), -Jmps([Call(Tid(1_029, "%00000405"), Attrs([Attr("address","0x6F4"), -Attr("insn","br x16")]), Int(1,1), -(Indirect(Var("R16",Imm(64))),))]))]))]))) \ No newline at end of file diff --git a/src/test/indirect_calls/indirect_call/gcc/indirect_call.bir b/src/test/indirect_calls/indirect_call/gcc/indirect_call.bir deleted file mode 100644 index f2dabb558..000000000 --- a/src/test/indirect_calls/indirect_call/gcc/indirect_call.bir +++ /dev/null @@ -1,276 +0,0 @@ -000006ac: program -00000675: sub __cxa_finalize(__cxa_finalize_result) -000006ad: __cxa_finalize_result :: out u32 = low:32[R0] - -000003e5: -000004ed: R16 := 0x10000 -000004f4: R17 := mem[R16 + 0xFB0, el]:u64 -000004fa: R16 := R16 + 0xFB0 -000004ff: call R17 with noreturn - -00000676: sub __do_global_dtors_aux(__do_global_dtors_aux_result) -000006ae: __do_global_dtors_aux_result :: out u32 = low:32[R0] - -000002a2: -000002a6: #3 := R31 - 0x20 -000002ac: mem := mem with [#3, el]:u64 <- R29 -000002b2: mem := mem with [#3 + 8, el]:u64 <- R30 -000002b6: R31 := #3 -000002bc: R29 := R31 -000002c4: mem := mem with [R31 + 0x10, el]:u64 <- R19 -000002c9: R19 := 0x11000 -000002d0: R0 := pad:64[mem[R19 + 0x10]] -000002d7: when 31:0[R0] <> 0 goto %000002d5 -000006a2: goto %000003ae - -000003ae: -000003b1: R0 := 0x10000 -000003b8: R0 := mem[R0 + 0xFE0, el]:u64 -000003be: when R0 = 0 goto %000003bc -000006a3: goto %000003d5 - -000003d5: -000003d8: R0 := 0x11000 -000003df: R0 := mem[R0 + 8, el]:u64 -000003e4: R30 := 0x730 -000003e7: call @__cxa_finalize with return %000003bc - -000003bc: -000003c4: R30 := 0x734 -000003c6: call @deregister_tm_clones with return %000003c8 - -000003c8: -000003cb: R0 := 1 -000003d3: mem := mem with [R19 + 0x10] <- 7:0[R0] -000006a4: goto %000002d5 - -000002d5: -000002df: R19 := mem[R31 + 0x10, el]:u64 -000002e6: R29 := mem[R31, el]:u64 -000002eb: R30 := mem[R31 + 8, el]:u64 -000002ef: R31 := R31 + 0x20 -000002f4: call R30 with noreturn - -0000067a: sub __libc_start_main(__libc_start_main_main, __libc_start_main_arg2, __libc_start_main_arg3, __libc_start_main_auxv, __libc_start_main_result) -000006af: __libc_start_main_main :: in u64 = R0 -000006b0: __libc_start_main_arg2 :: in u32 = low:32[R1] -000006b1: __libc_start_main_arg3 :: in out u64 = R2 -000006b2: __libc_start_main_auxv :: in out u64 = R3 -000006b3: __libc_start_main_result :: out u32 = low:32[R0] - -000001fb: -000004d7: R16 := 0x10000 -000004de: R17 := mem[R16 + 0xFA8, el]:u64 -000004e4: R16 := R16 + 0xFA8 -000004e9: call R17 with noreturn - -0000067b: sub _fini(_fini_result) -000006b4: _fini_result :: out u32 = low:32[R0] - -0000001f: -00000025: #0 := R31 - 0x10 -0000002b: mem := mem with [#0, el]:u64 <- R29 -00000031: mem := mem with [#0 + 8, el]:u64 <- R30 -00000035: R31 := #0 -0000003b: R29 := R31 -00000042: R29 := mem[R31, el]:u64 -00000047: R30 := mem[R31 + 8, el]:u64 -0000004b: R31 := R31 + 0x10 -00000050: call R30 with noreturn - -0000067c: sub _init(_init_result) -000006b5: _init_result :: out u32 = low:32[R0] - -000005be: -000005c4: #7 := R31 - 0x10 -000005ca: mem := mem with [#7, el]:u64 <- R29 -000005d0: mem := mem with [#7 + 8, el]:u64 <- R30 -000005d4: R31 := #7 -000005da: R29 := R31 -000005df: R30 := 0x5C8 -000005e1: call @call_weak_fn with return %000005e3 - -000005e3: -000005e8: R29 := mem[R31, el]:u64 -000005ed: R30 := mem[R31 + 8, el]:u64 -000005f1: R31 := R31 + 0x10 -000005f6: call R30 with noreturn - -0000067d: sub _start(_start_result) -000006b6: _start_result :: out u32 = low:32[R0] - -000001bc: -000001c1: R29 := 0 -000001c6: R30 := 0 -000001cc: R5 := R0 -000001d3: R1 := mem[R31, el]:u64 -000001d9: R2 := R31 + 8 -000001df: R6 := R31 -000001e4: R0 := 0x10000 -000001eb: R0 := mem[R0 + 0xFF0, el]:u64 -000001f0: R3 := 0 -000001f5: R4 := 0 -000001fa: R30 := 0x670 -000001fd: call @__libc_start_main with return %000001ff - -000001ff: -00000202: R30 := 0x674 -00000205: call @abort with return %000006a5 - -000006a5: -000006a6: call @call_weak_fn with noreturn - -00000680: sub abort() - - -00000203: -00000519: R16 := 0x10000 -00000520: R17 := mem[R16 + 0xFC0, el]:u64 -00000526: R16 := R16 + 0xFC0 -0000052b: call R17 with noreturn - -00000681: sub call_weak_fn(call_weak_fn_result) -000006b7: call_weak_fn_result :: out u32 = low:32[R0] - -00000207: -0000020a: R0 := 0x10000 -00000211: R0 := mem[R0 + 0xFE8, el]:u64 -00000217: when R0 = 0 goto %00000215 -000006a7: goto %00000425 - -00000215: -0000021d: call R30 with noreturn - -00000425: -00000428: goto @__gmon_start__ - -00000426: -00000503: R16 := 0x10000 -0000050a: R17 := mem[R16 + 0xFB8, el]:u64 -00000510: R16 := R16 + 0xFB8 -00000515: call R17 with noreturn - -00000683: sub deregister_tm_clones(deregister_tm_clones_result) -000006b8: deregister_tm_clones_result :: out u32 = low:32[R0] - -00000223: -00000226: R0 := 0x11000 -0000022c: R0 := R0 + 0x10 -00000231: R1 := 0x11000 -00000237: R1 := R1 + 0x10 -0000023d: #1 := ~R0 -00000242: #2 := R1 + ~R0 -00000248: VF := extend:65[#2 + 1] <> extend:65[R1] + extend:65[#1] + 1 -0000024e: CF := pad:65[#2 + 1] <> pad:65[R1] + pad:65[#1] + 1 -00000252: ZF := #2 + 1 = 0 -00000256: NF := 63:63[#2 + 1] -0000025c: when ZF goto %0000025a -000006a8: goto %00000407 - -00000407: -0000040a: R1 := 0x10000 -00000411: R1 := mem[R1 + 0xFD8, el]:u64 -00000416: when R1 = 0 goto %0000025a -000006a9: goto %0000041a - -0000025a: -00000262: call R30 with noreturn - -0000041a: -0000041e: R16 := R1 -00000423: call R16 with noreturn - -00000686: sub frame_dummy(frame_dummy_result) -000006b9: frame_dummy_result :: out u32 = low:32[R0] - -000002fa: -000002fc: call @register_tm_clones with noreturn - -00000687: sub greet(greet_result) -000006ba: greet_result :: out u32 = low:32[R0] - -000002fe: -00000302: #4 := R31 - 0x10 -00000308: mem := mem with [#4, el]:u64 <- R29 -0000030e: mem := mem with [#4 + 8, el]:u64 <- R30 -00000312: R31 := #4 -00000318: R29 := R31 -0000031d: R0 := 0 -00000323: R0 := R0 + 0x7C8 -00000328: R30 := 0x768 -0000032b: call @puts with return %0000032d - -0000032d: -00000334: R29 := mem[R31, el]:u64 -00000339: R30 := mem[R31 + 8, el]:u64 -0000033d: R31 := R31 + 0x10 -00000342: call R30 with noreturn - -00000688: sub main(main_argc, main_argv, main_result) -000006bb: main_argc :: in u32 = low:32[R0] -000006bc: main_argv :: in out u64 = R1 -000006bd: main_result :: out u32 = low:32[R0] - -00000344: -00000348: #5 := R31 - 0x20 -0000034e: mem := mem with [#5, el]:u64 <- R29 -00000354: mem := mem with [#5 + 8, el]:u64 <- R30 -00000358: R31 := #5 -0000035e: R29 := R31 -00000363: R0 := 0 -00000369: R0 := R0 + 0x754 -00000371: mem := mem with [R31 + 0x18, el]:u64 <- R0 -00000376: R0 := 0 -0000037c: R0 := R0 + 0x7D8 -00000381: R30 := 0x794 -00000383: call @puts with return %00000385 - -00000385: -0000038a: R0 := mem[R31 + 0x18, el]:u64 -0000038f: R30 := 0x79C -00000392: call R0 with return %00000394 - -00000394: -00000397: R0 := 0 -0000039e: R29 := mem[R31, el]:u64 -000003a3: R30 := mem[R31 + 8, el]:u64 -000003a7: R31 := R31 + 0x20 -000003ac: call R30 with noreturn - -00000689: sub puts(puts_s, puts_result) -000006be: puts_s :: in u64 = R0 -000006bf: puts_result :: out u32 = low:32[R0] - -00000329: -0000052f: R16 := 0x10000 -00000536: R17 := mem[R16 + 0xFC8, el]:u64 -0000053c: R16 := R16 + 0xFC8 -00000541: call R17 with noreturn - -0000068a: sub register_tm_clones(register_tm_clones_result) -000006c0: register_tm_clones_result :: out u32 = low:32[R0] - -00000264: -00000267: R0 := 0x11000 -0000026d: R0 := R0 + 0x10 -00000272: R1 := 0x11000 -00000278: R1 := R1 + 0x10 -0000027f: R1 := R1 + ~R0 + 1 -00000285: R2 := 0.63:63[R1] -0000028c: R1 := R2 + (R1 ~>> 3) -00000292: R1 := extend:64[63:1[R1]] -00000298: when R1 = 0 goto %00000296 -000006aa: goto %000003e9 - -000003e9: -000003ec: R2 := 0x10000 -000003f3: R2 := mem[R2 + 0xFF8, el]:u64 -000003f8: when R2 = 0 goto %00000296 -000006ab: goto %000003fc - -00000296: -0000029e: call R30 with noreturn - -000003fc: -00000400: R16 := R2 -00000405: call R16 with noreturn diff --git a/src/test/indirect_calls/indirect_call/gcc/indirect_call.md5sum b/src/test/indirect_calls/indirect_call/gcc/indirect_call.md5sum new file mode 100644 index 000000000..9a6adbbc4 --- /dev/null +++ b/src/test/indirect_calls/indirect_call/gcc/indirect_call.md5sum @@ -0,0 +1,4 @@ +e4ac384de28f7a47c89964a310629d04 indirect_calls/indirect_call/gcc/a.out +dd6caa559d5e9f1dc667762431a7a07e indirect_calls/indirect_call/gcc/indirect_call.relf +ee93e8d550d65856dd02bb63f70af7c6 indirect_calls/indirect_call/gcc/indirect_call.adt +4fc4c38ccd9c59166bf5db2fe2ae4dde indirect_calls/indirect_call/gcc/indirect_call.bir diff --git a/src/test/indirect_calls/indirect_call/gcc/indirect_call.relf b/src/test/indirect_calls/indirect_call/gcc/indirect_call.relf deleted file mode 100644 index 38e214327..000000000 --- a/src/test/indirect_calls/indirect_call/gcc/indirect_call.relf +++ /dev/null @@ -1,124 +0,0 @@ - -Relocation section '.rela.dyn' at offset 0x480 contains 8 entries: - Offset Info Type Symbol's Value Symbol's Name + Addend -0000000000010d90 0000000000000403 R_AARCH64_RELATIVE 750 -0000000000010d98 0000000000000403 R_AARCH64_RELATIVE 700 -0000000000010ff0 0000000000000403 R_AARCH64_RELATIVE 774 -0000000000011008 0000000000000403 R_AARCH64_RELATIVE 11008 -0000000000010fd8 0000000400000401 R_AARCH64_GLOB_DAT 0000000000000000 _ITM_deregisterTMCloneTable + 0 -0000000000010fe0 0000000500000401 R_AARCH64_GLOB_DAT 0000000000000000 __cxa_finalize@GLIBC_2.17 + 0 -0000000000010fe8 0000000600000401 R_AARCH64_GLOB_DAT 0000000000000000 __gmon_start__ + 0 -0000000000010ff8 0000000900000401 R_AARCH64_GLOB_DAT 0000000000000000 _ITM_registerTMCloneTable + 0 - -Relocation section '.rela.plt' at offset 0x540 contains 5 entries: - Offset Info Type Symbol's Value Symbol's Name + Addend -0000000000010fa8 0000000300000402 R_AARCH64_JUMP_SLOT 0000000000000000 __libc_start_main@GLIBC_2.34 + 0 -0000000000010fb0 0000000500000402 R_AARCH64_JUMP_SLOT 0000000000000000 __cxa_finalize@GLIBC_2.17 + 0 -0000000000010fb8 0000000600000402 R_AARCH64_JUMP_SLOT 0000000000000000 __gmon_start__ + 0 -0000000000010fc0 0000000700000402 R_AARCH64_JUMP_SLOT 0000000000000000 abort@GLIBC_2.17 + 0 -0000000000010fc8 0000000800000402 R_AARCH64_JUMP_SLOT 0000000000000000 puts@GLIBC_2.17 + 0 - -Symbol table '.dynsym' contains 10 entries: - Num: Value Size Type Bind Vis Ndx Name - 0: 0000000000000000 0 NOTYPE LOCAL DEFAULT UND - 1: 00000000000005b8 0 SECTION LOCAL DEFAULT 11 .init - 2: 0000000000011000 0 SECTION LOCAL DEFAULT 22 .data - 3: 0000000000000000 0 FUNC GLOBAL DEFAULT UND __libc_start_main@GLIBC_2.34 (2) - 4: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_deregisterTMCloneTable - 5: 0000000000000000 0 FUNC WEAK DEFAULT UND __cxa_finalize@GLIBC_2.17 (3) - 6: 0000000000000000 0 NOTYPE WEAK DEFAULT UND __gmon_start__ - 7: 0000000000000000 0 FUNC GLOBAL DEFAULT UND abort@GLIBC_2.17 (3) - 8: 0000000000000000 0 FUNC GLOBAL DEFAULT UND puts@GLIBC_2.17 (3) - 9: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_registerTMCloneTable - -Symbol table '.symtab' contains 89 entries: - Num: Value Size Type Bind Vis Ndx Name - 0: 0000000000000000 0 NOTYPE LOCAL DEFAULT UND - 1: 0000000000000238 0 SECTION LOCAL DEFAULT 1 .interp - 2: 0000000000000254 0 SECTION LOCAL DEFAULT 2 .note.gnu.build-id - 3: 0000000000000278 0 SECTION LOCAL DEFAULT 3 .note.ABI-tag - 4: 0000000000000298 0 SECTION LOCAL DEFAULT 4 .gnu.hash - 5: 00000000000002b8 0 SECTION LOCAL DEFAULT 5 .dynsym - 6: 00000000000003a8 0 SECTION LOCAL DEFAULT 6 .dynstr - 7: 000000000000043a 0 SECTION LOCAL DEFAULT 7 .gnu.version - 8: 0000000000000450 0 SECTION LOCAL DEFAULT 8 .gnu.version_r - 9: 0000000000000480 0 SECTION LOCAL DEFAULT 9 .rela.dyn - 10: 0000000000000540 0 SECTION LOCAL DEFAULT 10 .rela.plt - 11: 00000000000005b8 0 SECTION LOCAL DEFAULT 11 .init - 12: 00000000000005d0 0 SECTION LOCAL DEFAULT 12 .plt - 13: 0000000000000640 0 SECTION LOCAL DEFAULT 13 .text - 14: 00000000000007a8 0 SECTION LOCAL DEFAULT 14 .fini - 15: 00000000000007c0 0 SECTION LOCAL DEFAULT 15 .rodata - 16: 00000000000007f4 0 SECTION LOCAL DEFAULT 16 .eh_frame_hdr - 17: 0000000000000838 0 SECTION LOCAL DEFAULT 17 .eh_frame - 18: 0000000000010d90 0 SECTION LOCAL DEFAULT 18 .init_array - 19: 0000000000010d98 0 SECTION LOCAL DEFAULT 19 .fini_array - 20: 0000000000010da0 0 SECTION LOCAL DEFAULT 20 .dynamic - 21: 0000000000010f90 0 SECTION LOCAL DEFAULT 21 .got - 22: 0000000000011000 0 SECTION LOCAL DEFAULT 22 .data - 23: 0000000000011010 0 SECTION LOCAL DEFAULT 23 .bss - 24: 0000000000000000 0 SECTION LOCAL DEFAULT 24 .comment - 25: 0000000000000000 0 FILE LOCAL DEFAULT ABS Scrt1.o - 26: 0000000000000278 0 NOTYPE LOCAL DEFAULT 3 $d - 27: 0000000000000278 32 OBJECT LOCAL DEFAULT 3 __abi_tag - 28: 0000000000000640 0 NOTYPE LOCAL DEFAULT 13 $x - 29: 000000000000084c 0 NOTYPE LOCAL DEFAULT 17 $d - 30: 00000000000007c0 0 NOTYPE LOCAL DEFAULT 15 $d - 31: 0000000000000000 0 FILE LOCAL DEFAULT ABS crti.o - 32: 0000000000000674 0 NOTYPE LOCAL DEFAULT 13 $x - 33: 0000000000000674 20 FUNC LOCAL DEFAULT 13 call_weak_fn - 34: 00000000000005b8 0 NOTYPE LOCAL DEFAULT 11 $x - 35: 00000000000007a8 0 NOTYPE LOCAL DEFAULT 14 $x - 36: 0000000000000000 0 FILE LOCAL DEFAULT ABS crtn.o - 37: 00000000000005c8 0 NOTYPE LOCAL DEFAULT 11 $x - 38: 00000000000007b4 0 NOTYPE LOCAL DEFAULT 14 $x - 39: 0000000000000000 0 FILE LOCAL DEFAULT ABS crtstuff.c - 40: 0000000000000690 0 NOTYPE LOCAL DEFAULT 13 $x - 41: 0000000000000690 0 FUNC LOCAL DEFAULT 13 deregister_tm_clones - 42: 00000000000006c0 0 FUNC LOCAL DEFAULT 13 register_tm_clones - 43: 0000000000011008 0 NOTYPE LOCAL DEFAULT 22 $d - 44: 0000000000000700 0 FUNC LOCAL DEFAULT 13 __do_global_dtors_aux - 45: 0000000000011010 1 OBJECT LOCAL DEFAULT 23 completed.0 - 46: 0000000000010d98 0 NOTYPE LOCAL DEFAULT 19 $d - 47: 0000000000010d98 0 OBJECT LOCAL DEFAULT 19 __do_global_dtors_aux_fini_array_entry - 48: 0000000000000750 0 FUNC LOCAL DEFAULT 13 frame_dummy - 49: 0000000000010d90 0 NOTYPE LOCAL DEFAULT 18 $d - 50: 0000000000010d90 0 OBJECT LOCAL DEFAULT 18 __frame_dummy_init_array_entry - 51: 0000000000000860 0 NOTYPE LOCAL DEFAULT 17 $d - 52: 0000000000011010 0 NOTYPE LOCAL DEFAULT 23 $d - 53: 0000000000000000 0 FILE LOCAL DEFAULT ABS indirect_call.c - 54: 00000000000007c8 0 NOTYPE LOCAL DEFAULT 15 $d - 55: 0000000000000754 0 NOTYPE LOCAL DEFAULT 13 $x - 56: 00000000000008c0 0 NOTYPE LOCAL DEFAULT 17 $d - 57: 0000000000000000 0 FILE LOCAL DEFAULT ABS crtstuff.c - 58: 0000000000000900 0 NOTYPE LOCAL DEFAULT 17 $d - 59: 0000000000000900 0 OBJECT LOCAL DEFAULT 17 __FRAME_END__ - 60: 0000000000000000 0 FILE LOCAL DEFAULT ABS - 61: 0000000000010da0 0 OBJECT LOCAL DEFAULT ABS _DYNAMIC - 62: 00000000000007f4 0 NOTYPE LOCAL DEFAULT 16 __GNU_EH_FRAME_HDR - 63: 0000000000010fd0 0 OBJECT LOCAL DEFAULT ABS _GLOBAL_OFFSET_TABLE_ - 64: 00000000000005d0 0 NOTYPE LOCAL DEFAULT 12 $x - 65: 0000000000000000 0 FUNC GLOBAL DEFAULT UND __libc_start_main@GLIBC_2.34 - 66: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_deregisterTMCloneTable - 67: 0000000000011000 0 NOTYPE WEAK DEFAULT 22 data_start - 68: 0000000000011010 0 NOTYPE GLOBAL DEFAULT 23 __bss_start__ - 69: 0000000000000000 0 FUNC WEAK DEFAULT UND __cxa_finalize@GLIBC_2.17 - 70: 0000000000011018 0 NOTYPE GLOBAL DEFAULT 23 _bss_end__ - 71: 0000000000011010 0 NOTYPE GLOBAL DEFAULT 22 _edata - 72: 00000000000007a8 0 FUNC GLOBAL HIDDEN 14 _fini - 73: 0000000000011018 0 NOTYPE GLOBAL DEFAULT 23 __bss_end__ - 74: 0000000000000754 32 FUNC GLOBAL DEFAULT 13 greet - 75: 0000000000011000 0 NOTYPE GLOBAL DEFAULT 22 __data_start - 76: 0000000000000000 0 NOTYPE WEAK DEFAULT UND __gmon_start__ - 77: 0000000000011008 0 OBJECT GLOBAL HIDDEN 22 __dso_handle - 78: 0000000000000000 0 FUNC GLOBAL DEFAULT UND abort@GLIBC_2.17 - 79: 00000000000007c0 4 OBJECT GLOBAL DEFAULT 15 _IO_stdin_used - 80: 0000000000000000 0 FUNC GLOBAL DEFAULT UND puts@GLIBC_2.17 - 81: 0000000000011018 0 NOTYPE GLOBAL DEFAULT 23 _end - 82: 0000000000000640 52 FUNC GLOBAL DEFAULT 13 _start - 83: 0000000000011018 0 NOTYPE GLOBAL DEFAULT 23 __end__ - 84: 0000000000011010 0 NOTYPE GLOBAL DEFAULT 23 __bss_start - 85: 0000000000000774 52 FUNC GLOBAL DEFAULT 13 main - 86: 0000000000011010 0 OBJECT GLOBAL HIDDEN 22 __TMC_END__ - 87: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_registerTMCloneTable - 88: 00000000000005b8 0 FUNC GLOBAL HIDDEN 11 _init diff --git a/src/test/indirect_calls/indirect_call/gcc_pic/indirect_call.adt b/src/test/indirect_calls/indirect_call/gcc_pic/indirect_call.adt deleted file mode 100644 index 0340bfbbe..000000000 --- a/src/test/indirect_calls/indirect_call/gcc_pic/indirect_call.adt +++ /dev/null @@ -1,598 +0,0 @@ -Project(Attrs([Attr("filename","\"gcc_pic/indirect_call.out\""), -Attr("image-specification","(declare abi (name str))\n(declare arch (name str))\n(declare base-address (addr int))\n(declare bias (off int))\n(declare bits (size int))\n(declare code-region (addr int) (size int) (off int))\n(declare code-start (addr int))\n(declare entry-point (addr int))\n(declare external-reference (addr int) (name str))\n(declare format (name str))\n(declare is-executable (flag bool))\n(declare is-little-endian (flag bool))\n(declare llvm:base-address (addr int))\n(declare llvm:code-entry (name str) (off int) (size int))\n(declare llvm:coff-import-library (name str))\n(declare llvm:coff-virtual-section-header (name str) (addr int) (size int))\n(declare llvm:elf-program-header (name str) (off int) (size int))\n(declare llvm:elf-program-header-flags (name str) (ld bool) (r bool) \n (w bool) (x bool))\n(declare llvm:elf-virtual-program-header (name str) (addr int) (size int))\n(declare llvm:entry-point (addr int))\n(declare llvm:macho-symbol (name str) (value int))\n(declare llvm:name-reference (at int) (name str))\n(declare llvm:relocation (at int) (addr int))\n(declare llvm:section-entry (name str) (addr int) (size int) (off int))\n(declare llvm:section-flags (name str) (r bool) (w bool) (x bool))\n(declare llvm:segment-command (name str) (off int) (size int))\n(declare llvm:segment-command-flags (name str) (r bool) (w bool) (x bool))\n(declare llvm:symbol-entry (name str) (addr int) (size int) (off int)\n (value int))\n(declare llvm:virtual-segment-command (name str) (addr int) (size int))\n(declare mapped (addr int) (size int) (off int))\n(declare named-region (addr int) (size int) (name str))\n(declare named-symbol (addr int) (name str))\n(declare require (name str))\n(declare section (addr int) (size int))\n(declare segment (addr int) (size int) (r bool) (w bool) (x bool))\n(declare subarch (name str))\n(declare symbol-chunk (addr int) (size int) (root int))\n(declare symbol-value (addr int) (value int))\n(declare system (name str))\n(declare vendor (name str))\n\n(abi unknown)\n(arch aarch64)\n(base-address 0)\n(bias 0)\n(bits 64)\n(code-region 2024 20 2024)\n(code-region 1664 360 1664)\n(code-region 1520 112 1520)\n(code-region 1488 24 1488)\n(code-start 1716)\n(code-start 1940)\n(code-start 1664)\n(code-start 1972)\n(entry-point 1664)\n(external-reference 69584 _ITM_deregisterTMCloneTable)\n(external-reference 69592 __cxa_finalize)\n(external-reference 69608 __gmon_start__)\n(external-reference 69624 _ITM_registerTMCloneTable)\n(external-reference 69536 __libc_start_main)\n(external-reference 69544 __cxa_finalize)\n(external-reference 69552 __gmon_start__)\n(external-reference 69560 abort)\n(external-reference 69568 puts)\n(format elf)\n(is-executable true)\n(is-little-endian true)\n(llvm:base-address 0)\n(llvm:code-entry puts 0 0)\n(llvm:code-entry abort 0 0)\n(llvm:code-entry __cxa_finalize 0 0)\n(llvm:code-entry __libc_start_main 0 0)\n(llvm:code-entry _init 1488 0)\n(llvm:code-entry main 1972 52)\n(llvm:code-entry _start 1664 52)\n(llvm:code-entry puts@GLIBC_2.17 0 0)\n(llvm:code-entry abort@GLIBC_2.17 0 0)\n(llvm:code-entry greet 1940 32)\n(llvm:code-entry _fini 2024 0)\n(llvm:code-entry __cxa_finalize@GLIBC_2.17 0 0)\n(llvm:code-entry __libc_start_main@GLIBC_2.34 0 0)\n(llvm:code-entry frame_dummy 1936 0)\n(llvm:code-entry __do_global_dtors_aux 1856 0)\n(llvm:code-entry register_tm_clones 1792 0)\n(llvm:code-entry deregister_tm_clones 1744 0)\n(llvm:code-entry call_weak_fn 1716 20)\n(llvm:code-entry .fini 2024 20)\n(llvm:code-entry .text 1664 360)\n(llvm:code-entry .plt 1520 112)\n(llvm:code-entry .init 1488 24)\n(llvm:elf-program-header 08 3464 632)\n(llvm:elf-program-header 07 0 0)\n(llvm:elf-program-header 06 2100 68)\n(llvm:elf-program-header 05 596 68)\n(llvm:elf-program-header 04 3480 496)\n(llvm:elf-program-header 03 3464 648)\n(llvm:elf-program-header 02 0 2372)\n(llvm:elf-program-header 01 568 27)\n(llvm:elf-program-header 00 64 504)\n(llvm:elf-program-header-flags 08 false true false false)\n(llvm:elf-program-header-flags 07 false true true false)\n(llvm:elf-program-header-flags 06 false true false false)\n(llvm:elf-program-header-flags 05 false true false false)\n(llvm:elf-program-header-flags 04 false true true false)\n(llvm:elf-program-header-flags 03 true true true false)\n(llvm:elf-program-header-flags 02 true true false true)\n(llvm:elf-program-header-flags 01 false true false false)\n(llvm:elf-program-header-flags 00 false true false false)\n(llvm:elf-virtual-program-header 08 69000 632)\n(llvm:elf-virtual-program-header 07 0 0)\n(llvm:elf-virtual-program-header 06 2100 68)\n(llvm:elf-virtual-program-header 05 596 68)\n(llvm:elf-virtual-program-header 04 69016 496)\n(llvm:elf-virtual-program-header 03 69000 656)\n(llvm:elf-virtual-program-header 02 0 2372)\n(llvm:elf-virtual-program-header 01 568 27)\n(llvm:elf-virtual-program-header 00 64 504)\n(llvm:entry-point 1664)\n(llvm:name-reference 69568 puts)\n(llvm:name-reference 69560 abort)\n(llvm:name-reference 69552 __gmon_start__)\n(llvm:name-reference 69544 __cxa_finalize)\n(llvm:name-reference 69536 __libc_start_main)\n(llvm:name-reference 69624 _ITM_registerTMCloneTable)\n(llvm:name-reference 69608 __gmon_start__)\n(llvm:name-reference 69592 __cxa_finalize)\n(llvm:name-reference 69584 _ITM_deregisterTMCloneTable)\n(llvm:section-entry .shstrtab 0 250 6867)\n(llvm:section-entry .strtab 0 571 6296)\n(llvm:section-entry .symtab 0 2136 4160)\n(llvm:section-entry .comment 0 43 4112)\n(llvm:section-entry .bss 69648 8 4112)\n(llvm:section-entry .data 69632 16 4096)\n(llvm:section-entry .got 69512 120 3976)\n(llvm:section-entry .dynamic 69016 496 3480)\n(llvm:section-entry .fini_array 69008 8 3472)\n(llvm:section-entry .init_array 69000 8 3464)\n(llvm:section-entry .eh_frame 2168 204 2168)\n(llvm:section-entry .eh_frame_hdr 2100 68 2100)\n(llvm:section-entry .rodata 2048 52 2048)\n(llvm:section-entry .fini 2024 20 2024)\n(llvm:section-entry .text 1664 360 1664)\n(llvm:section-entry .plt 1520 112 1520)\n(llvm:section-entry .init 1488 24 1488)\n(llvm:section-entry .rela.plt 1368 120 1368)\n(llvm:section-entry .rela.dyn 1152 216 1152)\n(llvm:section-entry .gnu.version_r 1104 48 1104)\n(llvm:section-entry .gnu.version 1082 20 1082)\n(llvm:section-entry .dynstr 936 146 936)\n(llvm:section-entry .dynsym 696 240 696)\n(llvm:section-entry .gnu.hash 664 28 664)\n(llvm:section-entry .note.ABI-tag 632 32 632)\n(llvm:section-entry .note.gnu.build-id 596 36 596)\n(llvm:section-entry .interp 568 27 568)\n(llvm:section-flags .shstrtab true false false)\n(llvm:section-flags .strtab true false false)\n(llvm:section-flags .symtab true false false)\n(llvm:section-flags .comment true false false)\n(llvm:section-flags .bss true true false)\n(llvm:section-flags .data true true false)\n(llvm:section-flags .got true true false)\n(llvm:section-flags .dynamic true true false)\n(llvm:section-flags .fini_array true true false)\n(llvm:section-flags .init_array true true false)\n(llvm:section-flags .eh_frame true false false)\n(llvm:section-flags .eh_frame_hdr true false false)\n(llvm:section-flags .rodata true false false)\n(llvm:section-flags .fini true false true)\n(llvm:section-flags .text true false true)\n(llvm:section-flags .plt true false true)\n(llvm:section-flags .init true false true)\n(llvm:section-flags .rela.plt true false false)\n(llvm:section-flags .rela.dyn true false false)\n(llvm:section-flags .gnu.version_r true false false)\n(llvm:section-flags .gnu.version true false false)\n(llvm:section-flags .dynstr true false false)\n(llvm:section-flags .dynsym true false false)\n(llvm:section-flags .gnu.hash true false false)\n(llvm:section-flags .note.ABI-tag true false false)\n(llvm:section-flags .note.gnu.build-id true false false)\n(llvm:section-flags .interp true false false)\n(llvm:symbol-entry puts 0 0 0 0)\n(llvm:symbol-entry abort 0 0 0 0)\n(llvm:symbol-entry __cxa_finalize 0 0 0 0)\n(llvm:symbol-entry __libc_start_main 0 0 0 0)\n(llvm:symbol-entry _init 1488 0 1488 1488)\n(llvm:symbol-entry main 1972 52 1972 1972)\n(llvm:symbol-entry _start 1664 52 1664 1664)\n(llvm:symbol-entry puts@GLIBC_2.17 0 0 0 0)\n(llvm:symbol-entry abort@GLIBC_2.17 0 0 0 0)\n(llvm:symbol-entry greet 1940 32 1940 1940)\n(llvm:symbol-entry _fini 2024 0 2024 2024)\n(llvm:symbol-entry __cxa_finalize@GLIBC_2.17 0 0 0 0)\n(llvm:symbol-entry __libc_start_main@GLIBC_2.34 0 0 0 0)\n(llvm:symbol-entry frame_dummy 1936 0 1936 1936)\n(llvm:symbol-entry __do_global_dtors_aux 1856 0 1856 1856)\n(llvm:symbol-entry register_tm_clones 1792 0 1792 1792)\n(llvm:symbol-entry deregister_tm_clones 1744 0 1744 1744)\n(llvm:symbol-entry call_weak_fn 1716 20 1716 1716)\n(mapped 0 2372 0)\n(mapped 69000 648 3464)\n(named-region 0 2372 02)\n(named-region 69000 656 03)\n(named-region 568 27 .interp)\n(named-region 596 36 .note.gnu.build-id)\n(named-region 632 32 .note.ABI-tag)\n(named-region 664 28 .gnu.hash)\n(named-region 696 240 .dynsym)\n(named-region 936 146 .dynstr)\n(named-region 1082 20 .gnu.version)\n(named-region 1104 48 .gnu.version_r)\n(named-region 1152 216 .rela.dyn)\n(named-region 1368 120 .rela.plt)\n(named-region 1488 24 .init)\n(named-region 1520 112 .plt)\n(named-region 1664 360 .text)\n(named-region 2024 20 .fini)\n(named-region 2048 52 .rodata)\n(named-region 2100 68 .eh_frame_hdr)\n(named-region 2168 204 .eh_frame)\n(named-region 69000 8 .init_array)\n(named-region 69008 8 .fini_array)\n(named-region 69016 496 .dynamic)\n(named-region 69512 120 .got)\n(named-region 69632 16 .data)\n(named-region 69648 8 .bss)\n(named-region 0 43 .comment)\n(named-region 0 2136 .symtab)\n(named-region 0 571 .strtab)\n(named-region 0 250 .shstrtab)\n(named-symbol 1716 call_weak_fn)\n(named-symbol 1744 deregister_tm_clones)\n(named-symbol 1792 register_tm_clones)\n(named-symbol 1856 __do_global_dtors_aux)\n(named-symbol 1936 frame_dummy)\n(named-symbol 0 __libc_start_main@GLIBC_2.34)\n(named-symbol 0 __cxa_finalize@GLIBC_2.17)\n(named-symbol 2024 _fini)\n(named-symbol 1940 greet)\n(named-symbol 0 abort@GLIBC_2.17)\n(named-symbol 0 puts@GLIBC_2.17)\n(named-symbol 1664 _start)\n(named-symbol 1972 main)\n(named-symbol 1488 _init)\n(named-symbol 0 __libc_start_main)\n(named-symbol 0 __cxa_finalize)\n(named-symbol 0 abort)\n(named-symbol 0 puts)\n(require libc.so.6)\n(section 568 27)\n(section 596 36)\n(section 632 32)\n(section 664 28)\n(section 696 240)\n(section 936 146)\n(section 1082 20)\n(section 1104 48)\n(section 1152 216)\n(section 1368 120)\n(section 1488 24)\n(section 1520 112)\n(section 1664 360)\n(section 2024 20)\n(section 2048 52)\n(section 2100 68)\n(section 2168 204)\n(section 69000 8)\n(section 69008 8)\n(section 69016 496)\n(section 69512 120)\n(section 69632 16)\n(section 69648 8)\n(section 0 43)\n(section 0 2136)\n(section 0 571)\n(section 0 250)\n(segment 0 2372 true false true)\n(segment 69000 656 true true false)\n(subarch v8)\n(symbol-chunk 1716 20 1716)\n(symbol-chunk 1940 32 1940)\n(symbol-chunk 1664 52 1664)\n(symbol-chunk 1972 52 1972)\n(symbol-value 1716 1716)\n(symbol-value 1744 1744)\n(symbol-value 1792 1792)\n(symbol-value 1856 1856)\n(symbol-value 1936 1936)\n(symbol-value 2024 2024)\n(symbol-value 1940 1940)\n(symbol-value 1664 1664)\n(symbol-value 1972 1972)\n(symbol-value 1488 1488)\n(symbol-value 0 0)\n(system \"\")\n(vendor \"\")\n"), -Attr("abi-name","\"aarch64-linux-gnu-elf\"")]), -Sections([Section(".shstrtab", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x80\x06\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xd0\x1b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x38\x00\x09\x00\x40\x00\x1c\x00\x1b\x00\x06\x00\x00\x00\x04\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x04\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x44\x09\x00\x00\x00\x00\x00\x00\x44\x09\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x01\x00\x00\x00\x06\x00\x00\x00\x88\x0d\x00\x00\x00\x00\x00\x00\x88\x0d"), -Section(".strtab", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x80\x06\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xd0\x1b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x38\x00\x09\x00\x40\x00\x1c\x00\x1b\x00\x06\x00\x00\x00\x04\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x04\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x44\x09\x00\x00\x00\x00\x00\x00\x44\x09\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x01\x00\x00\x00\x06\x00\x00\x00\x88\x0d\x00\x00\x00\x00\x00\x00\x88\x0d\x01\x00\x00\x00\x00\x00\x88\x0d\x01\x00\x00\x00\x00\x00\x88\x02\x00\x00\x00\x00\x00\x00\x90\x02\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x02\x00\x00\x00\x06\x00\x00\x00\x98\x0d\x00\x00\x00\x00\x00\x00\x98\x0d\x01\x00\x00\x00\x00\x00\x98\x0d\x01\x00\x00\x00\x00\x00\xf0\x01\x00\x00\x00\x00\x00\x00\xf0\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x04\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x50\xe5\x74\x64\x04\x00\x00\x00\x34\x08\x00\x00\x00\x00\x00\x00\x34\x08\x00\x00\x00\x00\x00\x00\x34\x08\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x51\xe5\x74\x64\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x52\xe5\x74\x64\x04\x00\x00\x00\x88\x0d\x00\x00\x00\x00\x00\x00\x88\x0d\x01\x00\x00\x00\x00\x00\x88\x0d\x01\x00\x00\x00\x00\x00\x78\x02\x00\x00\x00\x00\x00\x00\x78\x02\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x2f\x6c\x69"), -Section(".symtab", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x80\x06\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xd0\x1b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x38\x00\x09\x00\x40\x00\x1c\x00\x1b\x00\x06\x00\x00\x00\x04\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x04\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x44\x09\x00\x00\x00\x00\x00\x00\x44\x09\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x01\x00\x00\x00\x06\x00\x00\x00\x88\x0d\x00\x00\x00\x00\x00\x00\x88\x0d\x01\x00\x00\x00\x00\x00\x88\x0d\x01\x00\x00\x00\x00\x00\x88\x02\x00\x00\x00\x00\x00\x00\x90\x02\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x02\x00\x00\x00\x06\x00\x00\x00\x98\x0d\x00\x00\x00\x00\x00\x00\x98\x0d\x01\x00\x00\x00\x00\x00\x98\x0d\x01\x00\x00\x00\x00\x00\xf0\x01\x00\x00\x00\x00\x00\x00\xf0\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x04\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x50\xe5\x74\x64\x04\x00\x00\x00\x34\x08\x00\x00\x00\x00\x00\x00\x34\x08\x00\x00\x00\x00\x00\x00\x34\x08\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x51\xe5\x74\x64\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x52\xe5\x74\x64\x04\x00\x00\x00\x88\x0d\x00\x00\x00\x00\x00\x00\x88\x0d\x01\x00\x00\x00\x00\x00\x88\x0d\x01\x00\x00\x00\x00\x00\x78\x02\x00\x00\x00\x00\x00\x00\x78\x02\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x2f\x6c\x69\x62\x2f\x6c\x64\x2d\x6c\x69\x6e\x75\x78\x2d\x61\x61\x72\x63\x68\x36\x34\x2e\x73\x6f\x2e\x31\x00\x00\x04\x00\x00\x00\x14\x00\x00\x00\x03\x00\x00\x00\x47\x4e\x55\x00\x6e\x47\x8c\x63\x76\xe4\xdf\x36\x60\x76\x28\xec\x7f\x13\xfc\xab\x8e\x6b\xb3\xd0\x04\x00\x00\x00\x10\x00\x00\x00\x01\x00\x00\x00\x47\x4e\x55\x00\x00\x00\x00\x00\x03\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x01\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x0b\x00\xd0\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x16\x00\x00\x10\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4d\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x22\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x69\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x27\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x22\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x78\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5f\x5f\x63\x78\x61\x5f\x66\x69\x6e\x61\x6c\x69\x7a\x65\x00\x5f\x5f\x6c\x69\x62\x63\x5f\x73\x74\x61\x72\x74\x5f\x6d\x61\x69\x6e\x00\x70\x75\x74\x73\x00\x61\x62\x6f\x72\x74\x00\x6c\x69\x62\x63\x2e\x73\x6f\x2e\x36\x00\x47\x4c\x49\x42\x43\x5f\x32\x2e\x31\x37\x00\x47\x4c\x49\x42\x43\x5f\x32\x2e\x33\x34\x00\x5f\x49\x54\x4d\x5f\x64\x65\x72\x65\x67\x69\x73\x74\x65\x72\x54\x4d\x43\x6c\x6f\x6e\x65\x54\x61\x62\x6c\x65\x00\x5f\x5f\x67\x6d\x6f\x6e\x5f\x73\x74\x61\x72\x74\x5f\x5f\x00\x5f\x49\x54\x4d\x5f\x72\x65\x67\x69\x73\x74\x65\x72\x54\x4d\x43\x6c\x6f\x6e\x65\x54\x61\x62\x6c\x65\x00\x00\x00\x00\x00\x00\x00\x02\x00\x01\x00\x03\x00\x01\x00\x03\x00\x03\x00\x01\x00\x00\x00\x01\x00\x02\x00\x2d\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x97\x91\x96\x06\x00\x00\x03\x00\x37\x00\x00\x00\x10\x00\x00\x00\xb4\x91\x96\x06\x00\x00\x02\x00\x42\x00\x00\x00\x00\x00\x00\x00\x88\x0d\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x90\x07\x00\x00\x00\x00\x00\x00\x90\x0d\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x40\x07\x00\x00\x00\x00\x00\x00\xe0\x0f\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x94\x07\x00\x00\x00\x00\x00\x00\xf0\x0f\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\xb4\x07\x00\x00\x00\x00\x00\x00\x08\x10\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x08\x10\x01\x00\x00\x00\x00\x00\xd0\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xd8\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe8\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xf8\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x09\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xa0\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xa8\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xb0\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xb8\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xc0\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1f\x20\x03\xd5\xfd\x7b\xbf\xa9\xfd\x03\x00\x91\x36\x00\x00\x94\xfd\x7b\xc1\xa8\xc0\x03\x5f\xd6\x00\x00\x00\x00\x00\x00\x00\x00\xf0\x7b\xbf\xa9\x90\x00\x00\x90\x11\xce\x47\xf9\x10\x62\x3e\x91\x20\x02\x1f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x90\x00\x00\x90\x11\xd2\x47\xf9\x10\x82\x3e\x91\x20\x02\x1f\xd6\x90\x00\x00\x90\x11\xd6\x47\xf9\x10\xa2\x3e\x91\x20\x02\x1f\xd6\x90\x00\x00\x90\x11\xda\x47\xf9\x10\xc2\x3e\x91\x20\x02\x1f\xd6\x90\x00\x00\x90\x11\xde\x47\xf9\x10\xe2\x3e\x91\x20\x02\x1f\xd6\x90\x00\x00\x90\x11\xe2\x47\xf9\x10\x02\x3f\x91\x20\x02\x1f\xd6\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1f\x20\x03\xd5\x1d\x00\x80\xd2\x1e\x00\x80\xd2\xe5\x03\x00\xaa\xe1\x03\x40\xf9\xe2\x23\x00\x91\xe6\x03\x00\x91\x80\x00\x00\x90\x00\xf8\x47\xf9\x03\x00\x80\xd2\x04\x00\x80\xd2\xd9\xff\xff\x97\xe4\xff\xff\x97\x80\x00\x00\x90\x00\xf4\x47\xf9\x40\x00\x00\xb4\xdc\xff\xff\x17\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x80\x00\x00\xb0\x00\x40\x00\x91\x81\x00\x00\xb0\x21\x40\x00\x91\x3f\x00\x00\xeb\xc0\x00\x00\x54\x81\x00\x00\x90\x21\xe8\x47\xf9\x61\x00\x00\xb4\xf0\x03\x01\xaa\x00\x02\x1f\xd6\xc0\x03\x5f\xd6\x80\x00\x00\xb0\x00\x40\x00\x91\x81\x00\x00\xb0\x21\x40\x00\x91\x21\x00\x00\xcb\x22\xfc\x7f\xd3\x41\x0c\x81\x8b\x21\xfc\x41\x93\xc1\x00\x00\xb4\x82\x00\x00\x90\x42\xfc\x47\xf9\x62\x00\x00\xb4\xf0\x03\x02\xaa\x00\x02\x1f\xd6\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\xfd\x7b\xbe\xa9\xfd\x03\x00\x91\xf3\x0b\x00\xf9\x93\x00\x00\xb0\x60\x42\x40\x39\x40\x01\x00\x35\x80\x00\x00\x90\x00\xec\x47\xf9\x80\x00\x00\xb4\x80\x00\x00\xb0\x00\x04\x40\xf9\xad\xff\xff\x97\xd8\xff\xff\x97\x20\x00\x80\x52\x60\x42\x00\x39\xf3\x0b\x40\xf9\xfd\x7b\xc2\xa8\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\xdc\xff\xff\x17\xfd\x7b\xbf\xa9\xfd\x03\x00\x91\x00\x00\x00\x90\x00\x20\x20\x91\xab\xff\xff\x97\x1f\x20\x03\xd5\xfd\x7b\xc1\xa8\xc0\x03\x5f\xd6\xfd\x7b\xbe\xa9\xfd\x03\x00\x91\x80\x00\x00\x90\x00\xf0\x47\xf9\xe0\x0f\x00\xf9\x00\x00\x00\x90\x00\x60\x20\x91\xa0\xff\xff\x97\xe0\x0f\x40\xf9\x00\x00\x3f\xd6\x00\x00\x80\x52\xfd\x7b\xc2\xa8\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\xfd\x7b\xbf\xa9\xfd\x03\x00\x91\xfd\x7b\xc1\xa8\xc0\x03\x5f\xd6\x00\x00\x00\x00\x01\x00\x02\x00\x00\x00\x00\x00\x48\x65\x6c\x6c\x6f\x2c\x20\x77\x6f\x72\x6c\x64\x21\x00\x00\x00\x43\x61\x6c\x6c\x69\x6e\x67\x20\x67\x72\x65\x65\x74\x28\x29\x20\x69\x6e\x64\x69\x72\x65\x63\x74\x6c\x79\x3a\x00\x01\x1b\x03\x3b\x40\x00\x00\x00\x07\x00\x00\x00\x4c\xfe\xff\xff\x58\x00\x00\x00\x9c\xfe\xff\xff\x6c\x00\x00\x00\xcc\xfe\xff\xff\x80\x00\x00\x00"), -Section(".comment", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x80\x06\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xd0\x1b\x00"), -Section(".interp", 0x238, "\x2f\x6c\x69\x62\x2f\x6c\x64\x2d\x6c\x69\x6e\x75\x78\x2d\x61\x61\x72\x63\x68\x36\x34\x2e\x73\x6f\x2e\x31\x00"), -Section(".note.gnu.build-id", 0x254, "\x04\x00\x00\x00\x14\x00\x00\x00\x03\x00\x00\x00\x47\x4e\x55\x00\x6e\x47\x8c\x63\x76\xe4\xdf\x36\x60\x76\x28\xec\x7f\x13\xfc\xab\x8e\x6b\xb3\xd0"), -Section(".note.ABI-tag", 0x278, "\x04\x00\x00\x00\x10\x00\x00\x00\x01\x00\x00\x00\x47\x4e\x55\x00\x00\x00\x00\x00\x03\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00"), -Section(".gnu.hash", 0x298, "\x01\x00\x00\x00\x01\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".dynsym", 0x2B8, "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x0b\x00\xd0\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x16\x00\x00\x10\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4d\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x22\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x69\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x27\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x22\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x78\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".dynstr", 0x3A8, "\x00\x5f\x5f\x63\x78\x61\x5f\x66\x69\x6e\x61\x6c\x69\x7a\x65\x00\x5f\x5f\x6c\x69\x62\x63\x5f\x73\x74\x61\x72\x74\x5f\x6d\x61\x69\x6e\x00\x70\x75\x74\x73\x00\x61\x62\x6f\x72\x74\x00\x6c\x69\x62\x63\x2e\x73\x6f\x2e\x36\x00\x47\x4c\x49\x42\x43\x5f\x32\x2e\x31\x37\x00\x47\x4c\x49\x42\x43\x5f\x32\x2e\x33\x34\x00\x5f\x49\x54\x4d\x5f\x64\x65\x72\x65\x67\x69\x73\x74\x65\x72\x54\x4d\x43\x6c\x6f\x6e\x65\x54\x61\x62\x6c\x65\x00\x5f\x5f\x67\x6d\x6f\x6e\x5f\x73\x74\x61\x72\x74\x5f\x5f\x00\x5f\x49\x54\x4d\x5f\x72\x65\x67\x69\x73\x74\x65\x72\x54\x4d\x43\x6c\x6f\x6e\x65\x54\x61\x62\x6c\x65\x00"), -Section(".gnu.version", 0x43A, "\x00\x00\x00\x00\x00\x00\x02\x00\x01\x00\x03\x00\x01\x00\x03\x00\x03\x00\x01\x00"), -Section(".gnu.version_r", 0x450, "\x01\x00\x02\x00\x2d\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x97\x91\x96\x06\x00\x00\x03\x00\x37\x00\x00\x00\x10\x00\x00\x00\xb4\x91\x96\x06\x00\x00\x02\x00\x42\x00\x00\x00\x00\x00\x00\x00"), -Section(".rela.dyn", 0x480, "\x88\x0d\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x90\x07\x00\x00\x00\x00\x00\x00\x90\x0d\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x40\x07\x00\x00\x00\x00\x00\x00\xe0\x0f\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x94\x07\x00\x00\x00\x00\x00\x00\xf0\x0f\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\xb4\x07\x00\x00\x00\x00\x00\x00\x08\x10\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x08\x10\x01\x00\x00\x00\x00\x00\xd0\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xd8\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe8\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xf8\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x09\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".rela.plt", 0x558, "\xa0\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xa8\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xb0\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xb8\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xc0\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".init", 0x5D0, "\x1f\x20\x03\xd5\xfd\x7b\xbf\xa9\xfd\x03\x00\x91\x36\x00\x00\x94\xfd\x7b\xc1\xa8\xc0\x03\x5f\xd6"), -Section(".plt", 0x5F0, "\xf0\x7b\xbf\xa9\x90\x00\x00\x90\x11\xce\x47\xf9\x10\x62\x3e\x91\x20\x02\x1f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x90\x00\x00\x90\x11\xd2\x47\xf9\x10\x82\x3e\x91\x20\x02\x1f\xd6\x90\x00\x00\x90\x11\xd6\x47\xf9\x10\xa2\x3e\x91\x20\x02\x1f\xd6\x90\x00\x00\x90\x11\xda\x47\xf9\x10\xc2\x3e\x91\x20\x02\x1f\xd6\x90\x00\x00\x90\x11\xde\x47\xf9\x10\xe2\x3e\x91\x20\x02\x1f\xd6\x90\x00\x00\x90\x11\xe2\x47\xf9\x10\x02\x3f\x91\x20\x02\x1f\xd6"), -Section(".fini", 0x7E8, "\x1f\x20\x03\xd5\xfd\x7b\xbf\xa9\xfd\x03\x00\x91\xfd\x7b\xc1\xa8\xc0\x03\x5f\xd6"), -Section(".rodata", 0x800, "\x01\x00\x02\x00\x00\x00\x00\x00\x48\x65\x6c\x6c\x6f\x2c\x20\x77\x6f\x72\x6c\x64\x21\x00\x00\x00\x43\x61\x6c\x6c\x69\x6e\x67\x20\x67\x72\x65\x65\x74\x28\x29\x20\x69\x6e\x64\x69\x72\x65\x63\x74\x6c\x79\x3a\x00"), -Section(".eh_frame_hdr", 0x834, "\x01\x1b\x03\x3b\x40\x00\x00\x00\x07\x00\x00\x00\x4c\xfe\xff\xff\x58\x00\x00\x00\x9c\xfe\xff\xff\x6c\x00\x00\x00\xcc\xfe\xff\xff\x80\x00\x00\x00\x0c\xff\xff\xff\x94\x00\x00\x00\x5c\xff\xff\xff\xb8\x00\x00\x00\x60\xff\xff\xff\xcc\x00\x00\x00\x80\xff\xff\xff\xec\x00\x00\x00"), -Section(".eh_frame", 0x878, "\x10\x00\x00\x00\x00\x00\x00\x00\x01\x7a\x52\x00\x04\x78\x1e\x01\x1b\x0c\x1f\x00\x10\x00\x00\x00\x18\x00\x00\x00\xec\xfd\xff\xff\x34\x00\x00\x00\x00\x41\x07\x1e\x10\x00\x00\x00\x2c\x00\x00\x00\x28\xfe\xff\xff\x30\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x40\x00\x00\x00\x44\xfe\xff\xff\x3c\x00\x00\x00\x00\x00\x00\x00\x20\x00\x00\x00\x54\x00\x00\x00\x70\xfe\xff\xff\x48\x00\x00\x00\x00\x41\x0e\x20\x9d\x04\x9e\x03\x42\x93\x02\x4e\xde\xdd\xd3\x0e\x00\x00\x00\x00\x10\x00\x00\x00\x78\x00\x00\x00\x9c\xfe\xff\xff\x04\x00\x00\x00\x00\x00\x00\x00\x1c\x00\x00\x00\x8c\x00\x00\x00\x8c\xfe\xff\xff\x20\x00\x00\x00\x00\x41\x0e\x10\x9d\x02\x9e\x01\x46\xde\xdd\x0e\x00\x00\x00\x00\x1c\x00\x00\x00\xac\x00\x00\x00\x8c\xfe\xff\xff\x34\x00\x00\x00\x00\x41\x0e\x20\x9d\x04\x9e\x03\x4b\xde\xdd\x0e\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".fini_array", 0x10D90, "\x40\x07\x00\x00\x00\x00\x00\x00"), -Section(".dynamic", 0x10D98, "\x01\x00\x00\x00\x00\x00\x00\x00\x2d\x00\x00\x00\x00\x00\x00\x00\x0c\x00\x00\x00\x00\x00\x00\x00\xd0\x05\x00\x00\x00\x00\x00\x00\x0d\x00\x00\x00\x00\x00\x00\x00\xe8\x07\x00\x00\x00\x00\x00\x00\x19\x00\x00\x00\x00\x00\x00\x00\x88\x0d\x01\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x1a\x00\x00\x00\x00\x00\x00\x00\x90\x0d\x01\x00\x00\x00\x00\x00\x1c\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\xf5\xfe\xff\x6f\x00\x00\x00\x00\x98\x02\x00\x00\x00\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\xa8\x03\x00\x00\x00\x00\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\xb8\x02\x00\x00\x00\x00\x00\x00\x0a\x00\x00\x00\x00\x00\x00\x00\x92\x00\x00\x00\x00\x00\x00\x00\x0b\x00\x00\x00\x00\x00\x00\x00\x18\x00\x00\x00\x00\x00\x00\x00\x15\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x88\x0f\x01\x00\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x78\x00\x00\x00\x00\x00\x00\x00\x14\x00\x00\x00\x00\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x17\x00\x00\x00\x00\x00\x00\x00\x58\x05\x00\x00\x00\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x80\x04\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\xd8\x00\x00\x00\x00\x00\x00\x00\x09\x00\x00\x00\x00\x00\x00\x00\x18\x00\x00\x00\x00\x00\x00\x00\x1e\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\xfb\xff\xff\x6f\x00\x00\x00\x00\x01\x00\x00\x08\x00\x00\x00\x00\xfe\xff\xff\x6f\x00\x00\x00\x00\x50\x04\x00\x00\x00\x00\x00\x00\xff\xff\xff\x6f\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\xf0\xff\xff\x6f\x00\x00\x00\x00\x3a\x04\x00\x00\x00\x00\x00\x00\xf9\xff\xff\x6f\x00\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".got", 0x10F88, "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xf0\x05\x00\x00\x00\x00\x00\x00\xf0\x05\x00\x00\x00\x00\x00\x00\xf0\x05\x00\x00\x00\x00\x00\x00\xf0\x05\x00\x00\x00\x00\x00\x00\xf0\x05\x00\x00\x00\x00\x00\x00\x98\x0d\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x94\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xb4\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".data", 0x11000, "\x00\x00\x00\x00\x00\x00\x00\x00\x08\x10\x01\x00\x00\x00\x00\x00"), -Section(".init_array", 0x10D88, "\x90\x07\x00\x00\x00\x00\x00\x00"), -Section(".text", 0x680, "\x1f\x20\x03\xd5\x1d\x00\x80\xd2\x1e\x00\x80\xd2\xe5\x03\x00\xaa\xe1\x03\x40\xf9\xe2\x23\x00\x91\xe6\x03\x00\x91\x80\x00\x00\x90\x00\xf8\x47\xf9\x03\x00\x80\xd2\x04\x00\x80\xd2\xd9\xff\xff\x97\xe4\xff\xff\x97\x80\x00\x00\x90\x00\xf4\x47\xf9\x40\x00\x00\xb4\xdc\xff\xff\x17\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x80\x00\x00\xb0\x00\x40\x00\x91\x81\x00\x00\xb0\x21\x40\x00\x91\x3f\x00\x00\xeb\xc0\x00\x00\x54\x81\x00\x00\x90\x21\xe8\x47\xf9\x61\x00\x00\xb4\xf0\x03\x01\xaa\x00\x02\x1f\xd6\xc0\x03\x5f\xd6\x80\x00\x00\xb0\x00\x40\x00\x91\x81\x00\x00\xb0\x21\x40\x00\x91\x21\x00\x00\xcb\x22\xfc\x7f\xd3\x41\x0c\x81\x8b\x21\xfc\x41\x93\xc1\x00\x00\xb4\x82\x00\x00\x90\x42\xfc\x47\xf9\x62\x00\x00\xb4\xf0\x03\x02\xaa\x00\x02\x1f\xd6\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\xfd\x7b\xbe\xa9\xfd\x03\x00\x91\xf3\x0b\x00\xf9\x93\x00\x00\xb0\x60\x42\x40\x39\x40\x01\x00\x35\x80\x00\x00\x90\x00\xec\x47\xf9\x80\x00\x00\xb4\x80\x00\x00\xb0\x00\x04\x40\xf9\xad\xff\xff\x97\xd8\xff\xff\x97\x20\x00\x80\x52\x60\x42\x00\x39\xf3\x0b\x40\xf9\xfd\x7b\xc2\xa8\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\xdc\xff\xff\x17\xfd\x7b\xbf\xa9\xfd\x03\x00\x91\x00\x00\x00\x90\x00\x20\x20\x91\xab\xff\xff\x97\x1f\x20\x03\xd5\xfd\x7b\xc1\xa8\xc0\x03\x5f\xd6\xfd\x7b\xbe\xa9\xfd\x03\x00\x91\x80\x00\x00\x90\x00\xf0\x47\xf9\xe0\x0f\x00\xf9\x00\x00\x00\x90\x00\x60\x20\x91\xa0\xff\xff\x97\xe0\x0f\x40\xf9\x00\x00\x3f\xd6\x00\x00\x80\x52\xfd\x7b\xc2\xa8\xc0\x03\x5f\xd6")]), -Memmap([Annotation(Region(0x0,0x943), Attr("segment","02 0 2372")), -Annotation(Region(0x680,0x6B3), Attr("symbol","\"_start\"")), -Annotation(Region(0x0,0xF9), Attr("section","\".shstrtab\"")), -Annotation(Region(0x0,0x23A), Attr("section","\".strtab\"")), -Annotation(Region(0x0,0x857), Attr("section","\".symtab\"")), -Annotation(Region(0x0,0x2A), Attr("section","\".comment\"")), -Annotation(Region(0x238,0x252), Attr("section","\".interp\"")), -Annotation(Region(0x254,0x277), Attr("section","\".note.gnu.build-id\"")), -Annotation(Region(0x278,0x297), Attr("section","\".note.ABI-tag\"")), -Annotation(Region(0x298,0x2B3), Attr("section","\".gnu.hash\"")), -Annotation(Region(0x2B8,0x3A7), Attr("section","\".dynsym\"")), -Annotation(Region(0x3A8,0x439), Attr("section","\".dynstr\"")), -Annotation(Region(0x43A,0x44D), Attr("section","\".gnu.version\"")), -Annotation(Region(0x450,0x47F), Attr("section","\".gnu.version_r\"")), -Annotation(Region(0x480,0x557), Attr("section","\".rela.dyn\"")), -Annotation(Region(0x558,0x5CF), Attr("section","\".rela.plt\"")), -Annotation(Region(0x5D0,0x5E7), Attr("section","\".init\"")), -Annotation(Region(0x5F0,0x65F), Attr("section","\".plt\"")), -Annotation(Region(0x5D0,0x5E7), Attr("code-region","()")), -Annotation(Region(0x5F0,0x65F), Attr("code-region","()")), -Annotation(Region(0x680,0x6B3), Attr("symbol-info","_start 0x680 52")), -Annotation(Region(0x6B4,0x6C7), Attr("symbol","\"call_weak_fn\"")), -Annotation(Region(0x6B4,0x6C7), Attr("symbol-info","call_weak_fn 0x6B4 20")), -Annotation(Region(0x794,0x7B3), Attr("symbol","\"greet\"")), -Annotation(Region(0x794,0x7B3), Attr("symbol-info","greet 0x794 32")), -Annotation(Region(0x680,0x7E7), Attr("code-region","()")), -Annotation(Region(0x7B4,0x7E7), Attr("symbol","\"main\"")), -Annotation(Region(0x7B4,0x7E7), Attr("symbol-info","main 0x7B4 52")), -Annotation(Region(0x7E8,0x7FB), Attr("section","\".fini\"")), -Annotation(Region(0x800,0x833), Attr("section","\".rodata\"")), -Annotation(Region(0x834,0x877), Attr("section","\".eh_frame_hdr\"")), -Annotation(Region(0x878,0x943), Attr("section","\".eh_frame\"")), -Annotation(Region(0x10D88,0x1100F), Attr("segment","03 0x10D88 656")), -Annotation(Region(0x10D90,0x10D97), Attr("section","\".fini_array\"")), -Annotation(Region(0x10D98,0x10F87), Attr("section","\".dynamic\"")), -Annotation(Region(0x10F88,0x10FFF), Attr("section","\".got\"")), -Annotation(Region(0x11000,0x1100F), Attr("section","\".data\"")), -Annotation(Region(0x10D88,0x10D8F), Attr("section","\".init_array\"")), -Annotation(Region(0x680,0x7E7), Attr("section","\".text\"")), -Annotation(Region(0x7E8,0x7FB), Attr("code-region","()"))]), -Program(Tid(1_583, "%0000062f"), Attrs([]), - Subs([Sub(Tid(1_528, "@__cxa_finalize"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x620"), -Attr("stub","()")]), "__cxa_finalize", Args([Arg(Tid(1_584, "%00000630"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("__cxa_finalize_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(998, "@__cxa_finalize"), - Attrs([Attr("address","0x620")]), Phis([]), -Defs([Def(Tid(1_262, "%000004ee"), Attrs([Attr("address","0x620"), -Attr("insn","adrp x16, #65536")]), Var("R16",Imm(64)), Int(65536,64)), -Def(Tid(1_269, "%000004f5"), Attrs([Attr("address","0x624"), -Attr("insn","ldr x17, [x16, #0xfa8]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(4008,64)),LittleEndian(),64)), -Def(Tid(1_275, "%000004fb"), Attrs([Attr("address","0x628"), -Attr("insn","add x16, x16, #0xfa8")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(4008,64)))]), Jmps([Call(Tid(1_280, "%00000500"), - Attrs([Attr("address","0x62C"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), -Sub(Tid(1_529, "@__do_global_dtors_aux"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x740")]), - "__do_global_dtors_aux", Args([Arg(Tid(1_585, "%00000631"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("__do_global_dtors_aux_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(674, "@__do_global_dtors_aux"), - Attrs([Attr("address","0x740")]), Phis([]), Defs([Def(Tid(678, "%000002a6"), - Attrs([Attr("address","0x740"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("#3",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(18446744073709551584,64))), -Def(Tid(684, "%000002ac"), Attrs([Attr("address","0x740"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("#3",Imm(64)),Var("R29",Imm(64)),LittleEndian(),64)), -Def(Tid(690, "%000002b2"), Attrs([Attr("address","0x740"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("#3",Imm(64)),Int(8,64)),Var("R30",Imm(64)),LittleEndian(),64)), -Def(Tid(694, "%000002b6"), Attrs([Attr("address","0x740"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("R31",Imm(64)), -Var("#3",Imm(64))), Def(Tid(700, "%000002bc"), - Attrs([Attr("address","0x744"), Attr("insn","mov x29, sp")]), - Var("R29",Imm(64)), Var("R31",Imm(64))), Def(Tid(708, "%000002c4"), - Attrs([Attr("address","0x748"), Attr("insn","str x19, [sp, #0x10]")]), - Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(16,64)),Var("R19",Imm(64)),LittleEndian(),64)), -Def(Tid(713, "%000002c9"), Attrs([Attr("address","0x74C"), -Attr("insn","adrp x19, #69632")]), Var("R19",Imm(64)), Int(69632,64)), -Def(Tid(720, "%000002d0"), Attrs([Attr("address","0x750"), -Attr("insn","ldrb w0, [x19, #0x10]")]), Var("R0",Imm(64)), -UNSIGNED(64,Load(Var("mem",Mem(64,8)),PLUS(Var("R19",Imm(64)),Int(16,64)),LittleEndian(),8)))]), -Jmps([Goto(Tid(727, "%000002d7"), Attrs([Attr("address","0x754"), -Attr("insn","cbnz w0, #0x28")]), - NEQ(Extract(31,0,Var("R0",Imm(64))),Int(0,32)), -Direct(Tid(725, "%000002d5"))), Goto(Tid(1_573, "%00000625"), Attrs([]), - Int(1,1), Direct(Tid(943, "%000003af")))])), Blk(Tid(943, "%000003af"), - Attrs([Attr("address","0x758")]), Phis([]), Defs([Def(Tid(946, "%000003b2"), - Attrs([Attr("address","0x758"), Attr("insn","adrp x0, #65536")]), - Var("R0",Imm(64)), Int(65536,64)), Def(Tid(953, "%000003b9"), - Attrs([Attr("address","0x75C"), Attr("insn","ldr x0, [x0, #0xfd8]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(4056,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(959, "%000003bf"), Attrs([Attr("address","0x760"), -Attr("insn","cbz x0, #0x10")]), EQ(Var("R0",Imm(64)),Int(0,64)), -Direct(Tid(957, "%000003bd"))), Goto(Tid(1_574, "%00000626"), Attrs([]), - Int(1,1), Direct(Tid(982, "%000003d6")))])), Blk(Tid(982, "%000003d6"), - Attrs([Attr("address","0x764")]), Phis([]), Defs([Def(Tid(985, "%000003d9"), - Attrs([Attr("address","0x764"), Attr("insn","adrp x0, #69632")]), - Var("R0",Imm(64)), Int(69632,64)), Def(Tid(992, "%000003e0"), - Attrs([Attr("address","0x768"), Attr("insn","ldr x0, [x0, #0x8]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(997, "%000003e5"), Attrs([Attr("address","0x76C"), -Attr("insn","bl #-0x14c")]), Var("R30",Imm(64)), Int(1904,64))]), -Jmps([Call(Tid(1_000, "%000003e8"), Attrs([Attr("address","0x76C"), -Attr("insn","bl #-0x14c")]), Int(1,1), -(Direct(Tid(1_528, "@__cxa_finalize")),Direct(Tid(957, "%000003bd"))))])), -Blk(Tid(957, "%000003bd"), Attrs([Attr("address","0x770")]), Phis([]), -Defs([Def(Tid(965, "%000003c5"), Attrs([Attr("address","0x770"), -Attr("insn","bl #-0xa0")]), Var("R30",Imm(64)), Int(1908,64))]), -Jmps([Call(Tid(967, "%000003c7"), Attrs([Attr("address","0x770"), -Attr("insn","bl #-0xa0")]), Int(1,1), -(Direct(Tid(1_542, "@deregister_tm_clones")),Direct(Tid(969, "%000003c9"))))])), -Blk(Tid(969, "%000003c9"), Attrs([Attr("address","0x774")]), Phis([]), -Defs([Def(Tid(972, "%000003cc"), Attrs([Attr("address","0x774"), -Attr("insn","mov w0, #0x1")]), Var("R0",Imm(64)), Int(1,64)), -Def(Tid(980, "%000003d4"), Attrs([Attr("address","0x778"), -Attr("insn","strb w0, [x19, #0x10]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R19",Imm(64)),Int(16,64)),Extract(7,0,Var("R0",Imm(64))),LittleEndian(),8))]), -Jmps([Goto(Tid(1_575, "%00000627"), Attrs([]), Int(1,1), -Direct(Tid(725, "%000002d5")))])), Blk(Tid(725, "%000002d5"), - Attrs([Attr("address","0x77C")]), Phis([]), Defs([Def(Tid(735, "%000002df"), - Attrs([Attr("address","0x77C"), Attr("insn","ldr x19, [sp, #0x10]")]), - Var("R19",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(16,64)),LittleEndian(),64)), -Def(Tid(742, "%000002e6"), Attrs([Attr("address","0x780"), -Attr("insn","ldp x29, x30, [sp], #0x20")]), Var("R29",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(747, "%000002eb"), Attrs([Attr("address","0x780"), -Attr("insn","ldp x29, x30, [sp], #0x20")]), Var("R30",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(751, "%000002ef"), Attrs([Attr("address","0x780"), -Attr("insn","ldp x29, x30, [sp], #0x20")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(32,64)))]), Jmps([Call(Tid(756, "%000002f4"), - Attrs([Attr("address","0x784"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), Sub(Tid(1_533, "@__libc_start_main"), - Attrs([Attr("c.proto","signed (*)(signed (*)(signed , char** , char** );* main, signed , char** , \nvoid* auxv)"), -Attr("address","0x610"), Attr("stub","()")]), "__libc_start_main", - Args([Arg(Tid(1_586, "%00000632"), - Attrs([Attr("c.layout","**[ : 64]"), -Attr("c.data","Top:u64 ptr ptr"), -Attr("c.type","signed (*)(signed , char** , char** );*")]), - Var("__libc_start_main_main",Imm(64)), Var("R0",Imm(64)), In()), -Arg(Tid(1_587, "%00000633"), Attrs([Attr("c.layout","[signed : 32]"), -Attr("c.data","Top:u32"), Attr("c.type","signed")]), - Var("__libc_start_main_arg2",Imm(32)), LOW(32,Var("R1",Imm(64))), In()), -Arg(Tid(1_588, "%00000634"), Attrs([Attr("c.layout","**[char : 8]"), -Attr("c.data","Top:u8 ptr ptr"), Attr("c.type","char**")]), - Var("__libc_start_main_arg3",Imm(64)), Var("R2",Imm(64)), Both()), -Arg(Tid(1_589, "%00000635"), Attrs([Attr("c.layout","*[ : 8]"), -Attr("c.data","{} ptr"), Attr("c.type","void*")]), - Var("__libc_start_main_auxv",Imm(64)), Var("R3",Imm(64)), Both()), -Arg(Tid(1_590, "%00000636"), Attrs([Attr("c.layout","[signed : 32]"), -Attr("c.data","Top:u32"), Attr("c.type","signed")]), - Var("__libc_start_main_result",Imm(32)), LOW(32,Var("R0",Imm(64))), -Out())]), Blks([Blk(Tid(507, "@__libc_start_main"), - Attrs([Attr("address","0x610")]), Phis([]), -Defs([Def(Tid(1_240, "%000004d8"), Attrs([Attr("address","0x610"), -Attr("insn","adrp x16, #65536")]), Var("R16",Imm(64)), Int(65536,64)), -Def(Tid(1_247, "%000004df"), Attrs([Attr("address","0x614"), -Attr("insn","ldr x17, [x16, #0xfa0]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(4000,64)),LittleEndian(),64)), -Def(Tid(1_253, "%000004e5"), Attrs([Attr("address","0x618"), -Attr("insn","add x16, x16, #0xfa0")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(4000,64)))]), Jmps([Call(Tid(1_258, "%000004ea"), - Attrs([Attr("address","0x61C"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), Sub(Tid(1_534, "@_fini"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x7E8")]), - "_fini", Args([Arg(Tid(1_591, "%00000637"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("_fini_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(31, "@_fini"), - Attrs([Attr("address","0x7E8")]), Phis([]), Defs([Def(Tid(37, "%00000025"), - Attrs([Attr("address","0x7EC"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("#0",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(18446744073709551600,64))), -Def(Tid(43, "%0000002b"), Attrs([Attr("address","0x7EC"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("#0",Imm(64)),Var("R29",Imm(64)),LittleEndian(),64)), -Def(Tid(49, "%00000031"), Attrs([Attr("address","0x7EC"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("#0",Imm(64)),Int(8,64)),Var("R30",Imm(64)),LittleEndian(),64)), -Def(Tid(53, "%00000035"), Attrs([Attr("address","0x7EC"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("R31",Imm(64)), -Var("#0",Imm(64))), Def(Tid(59, "%0000003b"), Attrs([Attr("address","0x7F0"), -Attr("insn","mov x29, sp")]), Var("R29",Imm(64)), Var("R31",Imm(64))), -Def(Tid(66, "%00000042"), Attrs([Attr("address","0x7F4"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R29",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(71, "%00000047"), Attrs([Attr("address","0x7F4"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R30",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(75, "%0000004b"), Attrs([Attr("address","0x7F4"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(16,64)))]), Jmps([Call(Tid(80, "%00000050"), - Attrs([Attr("address","0x7F8"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), Sub(Tid(1_535, "@_init"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x5D0")]), - "_init", Args([Arg(Tid(1_592, "%00000638"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("_init_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(1_374, "@_init"), - Attrs([Attr("address","0x5D0")]), Phis([]), -Defs([Def(Tid(1_380, "%00000564"), Attrs([Attr("address","0x5D4"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("#7",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(18446744073709551600,64))), -Def(Tid(1_386, "%0000056a"), Attrs([Attr("address","0x5D4"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("#7",Imm(64)),Var("R29",Imm(64)),LittleEndian(),64)), -Def(Tid(1_392, "%00000570"), Attrs([Attr("address","0x5D4"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("#7",Imm(64)),Int(8,64)),Var("R30",Imm(64)),LittleEndian(),64)), -Def(Tid(1_396, "%00000574"), Attrs([Attr("address","0x5D4"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("R31",Imm(64)), -Var("#7",Imm(64))), Def(Tid(1_402, "%0000057a"), - Attrs([Attr("address","0x5D8"), Attr("insn","mov x29, sp")]), - Var("R29",Imm(64)), Var("R31",Imm(64))), Def(Tid(1_407, "%0000057f"), - Attrs([Attr("address","0x5DC"), Attr("insn","bl #0xd8")]), - Var("R30",Imm(64)), Int(1504,64))]), Jmps([Call(Tid(1_409, "%00000581"), - Attrs([Attr("address","0x5DC"), Attr("insn","bl #0xd8")]), Int(1,1), -(Direct(Tid(1_540, "@call_weak_fn")),Direct(Tid(1_411, "%00000583"))))])), -Blk(Tid(1_411, "%00000583"), Attrs([Attr("address","0x5E0")]), Phis([]), -Defs([Def(Tid(1_416, "%00000588"), Attrs([Attr("address","0x5E0"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R29",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(1_421, "%0000058d"), Attrs([Attr("address","0x5E0"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R30",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(1_425, "%00000591"), Attrs([Attr("address","0x5E0"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(16,64)))]), Jmps([Call(Tid(1_430, "%00000596"), - Attrs([Attr("address","0x5E4"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), Sub(Tid(1_536, "@_start"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x680"), -Attr("entry-point","()")]), "_start", Args([Arg(Tid(1_593, "%00000639"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("_start_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(444, "@_start"), - Attrs([Attr("address","0x680")]), Phis([]), Defs([Def(Tid(449, "%000001c1"), - Attrs([Attr("address","0x684"), Attr("insn","mov x29, #0x0")]), - Var("R29",Imm(64)), Int(0,64)), Def(Tid(454, "%000001c6"), - Attrs([Attr("address","0x688"), Attr("insn","mov x30, #0x0")]), - Var("R30",Imm(64)), Int(0,64)), Def(Tid(460, "%000001cc"), - Attrs([Attr("address","0x68C"), Attr("insn","mov x5, x0")]), - Var("R5",Imm(64)), Var("R0",Imm(64))), Def(Tid(467, "%000001d3"), - Attrs([Attr("address","0x690"), Attr("insn","ldr x1, [sp]")]), - Var("R1",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(473, "%000001d9"), Attrs([Attr("address","0x694"), -Attr("insn","add x2, sp, #0x8")]), Var("R2",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(8,64))), Def(Tid(479, "%000001df"), - Attrs([Attr("address","0x698"), Attr("insn","mov x6, sp")]), - Var("R6",Imm(64)), Var("R31",Imm(64))), Def(Tid(484, "%000001e4"), - Attrs([Attr("address","0x69C"), Attr("insn","adrp x0, #65536")]), - Var("R0",Imm(64)), Int(65536,64)), Def(Tid(491, "%000001eb"), - Attrs([Attr("address","0x6A0"), Attr("insn","ldr x0, [x0, #0xff0]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(4080,64)),LittleEndian(),64)), -Def(Tid(496, "%000001f0"), Attrs([Attr("address","0x6A4"), -Attr("insn","mov x3, #0x0")]), Var("R3",Imm(64)), Int(0,64)), -Def(Tid(501, "%000001f5"), Attrs([Attr("address","0x6A8"), -Attr("insn","mov x4, #0x0")]), Var("R4",Imm(64)), Int(0,64)), -Def(Tid(506, "%000001fa"), Attrs([Attr("address","0x6AC"), -Attr("insn","bl #-0x9c")]), Var("R30",Imm(64)), Int(1712,64))]), -Jmps([Call(Tid(509, "%000001fd"), Attrs([Attr("address","0x6AC"), -Attr("insn","bl #-0x9c")]), Int(1,1), -(Direct(Tid(1_533, "@__libc_start_main")),Direct(Tid(511, "%000001ff"))))])), -Blk(Tid(511, "%000001ff"), Attrs([Attr("address","0x6B0")]), Phis([]), -Defs([Def(Tid(514, "%00000202"), Attrs([Attr("address","0x6B0"), -Attr("insn","bl #-0x70")]), Var("R30",Imm(64)), Int(1716,64))]), -Jmps([Call(Tid(517, "%00000205"), Attrs([Attr("address","0x6B0"), -Attr("insn","bl #-0x70")]), Int(1,1), -(Direct(Tid(1_539, "@abort")),Direct(Tid(1_576, "%00000628"))))])), -Blk(Tid(1_576, "%00000628"), Attrs([]), Phis([]), Defs([]), -Jmps([Call(Tid(1_577, "%00000629"), Attrs([]), Int(1,1), -(Direct(Tid(1_540, "@call_weak_fn")),))]))])), Sub(Tid(1_539, "@abort"), - Attrs([Attr("noreturn","()"), Attr("c.proto","void (*)(void)"), -Attr("address","0x640"), Attr("stub","()")]), "abort", Args([]), -Blks([Blk(Tid(515, "@abort"), Attrs([Attr("address","0x640")]), Phis([]), -Defs([Def(Tid(1_306, "%0000051a"), Attrs([Attr("address","0x640"), -Attr("insn","adrp x16, #65536")]), Var("R16",Imm(64)), Int(65536,64)), -Def(Tid(1_313, "%00000521"), Attrs([Attr("address","0x644"), -Attr("insn","ldr x17, [x16, #0xfb8]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(4024,64)),LittleEndian(),64)), -Def(Tid(1_319, "%00000527"), Attrs([Attr("address","0x648"), -Attr("insn","add x16, x16, #0xfb8")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(4024,64)))]), Jmps([Call(Tid(1_324, "%0000052c"), - Attrs([Attr("address","0x64C"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), Sub(Tid(1_540, "@call_weak_fn"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x6B4")]), - "call_weak_fn", Args([Arg(Tid(1_594, "%0000063a"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("call_weak_fn_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(519, "@call_weak_fn"), - Attrs([Attr("address","0x6B4")]), Phis([]), Defs([Def(Tid(522, "%0000020a"), - Attrs([Attr("address","0x6B4"), Attr("insn","adrp x0, #65536")]), - Var("R0",Imm(64)), Int(65536,64)), Def(Tid(529, "%00000211"), - Attrs([Attr("address","0x6B8"), Attr("insn","ldr x0, [x0, #0xfe8]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(4072,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(535, "%00000217"), Attrs([Attr("address","0x6BC"), -Attr("insn","cbz x0, #0x8")]), EQ(Var("R0",Imm(64)),Int(0,64)), -Direct(Tid(533, "%00000215"))), Goto(Tid(1_578, "%0000062a"), Attrs([]), - Int(1,1), Direct(Tid(1_062, "%00000426")))])), Blk(Tid(533, "%00000215"), - Attrs([Attr("address","0x6C4")]), Phis([]), Defs([]), -Jmps([Call(Tid(541, "%0000021d"), Attrs([Attr("address","0x6C4"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))])), -Blk(Tid(1_062, "%00000426"), Attrs([Attr("address","0x6C0")]), Phis([]), -Defs([]), Jmps([Goto(Tid(1_065, "%00000429"), Attrs([Attr("address","0x6C0"), -Attr("insn","b #-0x90")]), Int(1,1), -Direct(Tid(1_063, "@__gmon_start__")))])), Blk(Tid(1_063, "@__gmon_start__"), - Attrs([Attr("address","0x630")]), Phis([]), -Defs([Def(Tid(1_284, "%00000504"), Attrs([Attr("address","0x630"), -Attr("insn","adrp x16, #65536")]), Var("R16",Imm(64)), Int(65536,64)), -Def(Tid(1_291, "%0000050b"), Attrs([Attr("address","0x634"), -Attr("insn","ldr x17, [x16, #0xfb0]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(4016,64)),LittleEndian(),64)), -Def(Tid(1_297, "%00000511"), Attrs([Attr("address","0x638"), -Attr("insn","add x16, x16, #0xfb0")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(4016,64)))]), Jmps([Call(Tid(1_302, "%00000516"), - Attrs([Attr("address","0x63C"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), -Sub(Tid(1_542, "@deregister_tm_clones"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x6D0")]), - "deregister_tm_clones", Args([Arg(Tid(1_595, "%0000063b"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("deregister_tm_clones_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(547, "@deregister_tm_clones"), - Attrs([Attr("address","0x6D0")]), Phis([]), Defs([Def(Tid(550, "%00000226"), - Attrs([Attr("address","0x6D0"), Attr("insn","adrp x0, #69632")]), - Var("R0",Imm(64)), Int(69632,64)), Def(Tid(556, "%0000022c"), - Attrs([Attr("address","0x6D4"), Attr("insn","add x0, x0, #0x10")]), - Var("R0",Imm(64)), PLUS(Var("R0",Imm(64)),Int(16,64))), -Def(Tid(561, "%00000231"), Attrs([Attr("address","0x6D8"), -Attr("insn","adrp x1, #69632")]), Var("R1",Imm(64)), Int(69632,64)), -Def(Tid(567, "%00000237"), Attrs([Attr("address","0x6DC"), -Attr("insn","add x1, x1, #0x10")]), Var("R1",Imm(64)), -PLUS(Var("R1",Imm(64)),Int(16,64))), Def(Tid(573, "%0000023d"), - Attrs([Attr("address","0x6E0"), Attr("insn","cmp x1, x0")]), - Var("#1",Imm(64)), NOT(Var("R0",Imm(64)))), Def(Tid(578, "%00000242"), - Attrs([Attr("address","0x6E0"), Attr("insn","cmp x1, x0")]), - Var("#2",Imm(64)), PLUS(Var("R1",Imm(64)),NOT(Var("R0",Imm(64))))), -Def(Tid(584, "%00000248"), Attrs([Attr("address","0x6E0"), -Attr("insn","cmp x1, x0")]), Var("VF",Imm(1)), -NEQ(SIGNED(65,PLUS(Var("#2",Imm(64)),Int(1,64))),PLUS(PLUS(SIGNED(65,Var("R1",Imm(64))),SIGNED(65,Var("#1",Imm(64)))),Int(1,65)))), -Def(Tid(590, "%0000024e"), Attrs([Attr("address","0x6E0"), -Attr("insn","cmp x1, x0")]), Var("CF",Imm(1)), -NEQ(UNSIGNED(65,PLUS(Var("#2",Imm(64)),Int(1,64))),PLUS(PLUS(UNSIGNED(65,Var("R1",Imm(64))),UNSIGNED(65,Var("#1",Imm(64)))),Int(1,65)))), -Def(Tid(594, "%00000252"), Attrs([Attr("address","0x6E0"), -Attr("insn","cmp x1, x0")]), Var("ZF",Imm(1)), -EQ(PLUS(Var("#2",Imm(64)),Int(1,64)),Int(0,64))), Def(Tid(598, "%00000256"), - Attrs([Attr("address","0x6E0"), Attr("insn","cmp x1, x0")]), - Var("NF",Imm(1)), Extract(63,63,PLUS(Var("#2",Imm(64)),Int(1,64))))]), -Jmps([Goto(Tid(604, "%0000025c"), Attrs([Attr("address","0x6E4"), -Attr("insn","b.eq #0x18")]), EQ(Var("ZF",Imm(1)),Int(1,1)), -Direct(Tid(602, "%0000025a"))), Goto(Tid(1_579, "%0000062b"), Attrs([]), - Int(1,1), Direct(Tid(1_032, "%00000408")))])), Blk(Tid(1_032, "%00000408"), - Attrs([Attr("address","0x6E8")]), Phis([]), -Defs([Def(Tid(1_035, "%0000040b"), Attrs([Attr("address","0x6E8"), -Attr("insn","adrp x1, #65536")]), Var("R1",Imm(64)), Int(65536,64)), -Def(Tid(1_042, "%00000412"), Attrs([Attr("address","0x6EC"), -Attr("insn","ldr x1, [x1, #0xfd0]")]), Var("R1",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R1",Imm(64)),Int(4048,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(1_047, "%00000417"), Attrs([Attr("address","0x6F0"), -Attr("insn","cbz x1, #0xc")]), EQ(Var("R1",Imm(64)),Int(0,64)), -Direct(Tid(602, "%0000025a"))), Goto(Tid(1_580, "%0000062c"), Attrs([]), - Int(1,1), Direct(Tid(1_051, "%0000041b")))])), Blk(Tid(602, "%0000025a"), - Attrs([Attr("address","0x6FC")]), Phis([]), Defs([]), -Jmps([Call(Tid(610, "%00000262"), Attrs([Attr("address","0x6FC"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))])), -Blk(Tid(1_051, "%0000041b"), Attrs([Attr("address","0x6F4")]), Phis([]), -Defs([Def(Tid(1_055, "%0000041f"), Attrs([Attr("address","0x6F4"), -Attr("insn","mov x16, x1")]), Var("R16",Imm(64)), Var("R1",Imm(64)))]), -Jmps([Call(Tid(1_060, "%00000424"), Attrs([Attr("address","0x6F8"), -Attr("insn","br x16")]), Int(1,1), (Indirect(Var("R16",Imm(64))),))]))])), -Sub(Tid(1_545, "@frame_dummy"), Attrs([Attr("c.proto","signed (*)(void)"), -Attr("address","0x790")]), "frame_dummy", Args([Arg(Tid(1_596, "%0000063c"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("frame_dummy_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(762, "@frame_dummy"), - Attrs([Attr("address","0x790")]), Phis([]), Defs([]), -Jmps([Call(Tid(764, "%000002fc"), Attrs([Attr("address","0x790"), -Attr("insn","b #-0x90")]), Int(1,1), -(Direct(Tid(1_549, "@register_tm_clones")),))]))])), -Sub(Tid(1_546, "@greet"), Attrs([Attr("c.proto","signed (*)(void)"), -Attr("address","0x794")]), "greet", Args([Arg(Tid(1_597, "%0000063d"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("greet_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(766, "@greet"), - Attrs([Attr("address","0x794")]), Phis([]), Defs([Def(Tid(770, "%00000302"), - Attrs([Attr("address","0x794"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("#4",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(18446744073709551600,64))), -Def(Tid(776, "%00000308"), Attrs([Attr("address","0x794"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("#4",Imm(64)),Var("R29",Imm(64)),LittleEndian(),64)), -Def(Tid(782, "%0000030e"), Attrs([Attr("address","0x794"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("#4",Imm(64)),Int(8,64)),Var("R30",Imm(64)),LittleEndian(),64)), -Def(Tid(786, "%00000312"), Attrs([Attr("address","0x794"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("R31",Imm(64)), -Var("#4",Imm(64))), Def(Tid(792, "%00000318"), - Attrs([Attr("address","0x798"), Attr("insn","mov x29, sp")]), - Var("R29",Imm(64)), Var("R31",Imm(64))), Def(Tid(797, "%0000031d"), - Attrs([Attr("address","0x79C"), Attr("insn","adrp x0, #0")]), - Var("R0",Imm(64)), Int(0,64)), Def(Tid(803, "%00000323"), - Attrs([Attr("address","0x7A0"), Attr("insn","add x0, x0, #0x808")]), - Var("R0",Imm(64)), PLUS(Var("R0",Imm(64)),Int(2056,64))), -Def(Tid(808, "%00000328"), Attrs([Attr("address","0x7A4"), -Attr("insn","bl #-0x154")]), Var("R30",Imm(64)), Int(1960,64))]), -Jmps([Call(Tid(811, "%0000032b"), Attrs([Attr("address","0x7A4"), -Attr("insn","bl #-0x154")]), Int(1,1), -(Direct(Tid(1_548, "@puts")),Direct(Tid(813, "%0000032d"))))])), -Blk(Tid(813, "%0000032d"), Attrs([Attr("address","0x7A8")]), Phis([]), -Defs([Def(Tid(820, "%00000334"), Attrs([Attr("address","0x7AC"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R29",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(825, "%00000339"), Attrs([Attr("address","0x7AC"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R30",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(829, "%0000033d"), Attrs([Attr("address","0x7AC"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(16,64)))]), Jmps([Call(Tid(834, "%00000342"), - Attrs([Attr("address","0x7B0"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), Sub(Tid(1_547, "@main"), - Attrs([Attr("c.proto","signed (*)(signed argc, const char** argv)"), -Attr("address","0x7B4")]), "main", Args([Arg(Tid(1_598, "%0000063e"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("main_argc",Imm(32)), -LOW(32,Var("R0",Imm(64))), In()), Arg(Tid(1_599, "%0000063f"), - Attrs([Attr("c.layout","**[char : 8]"), Attr("c.data","Top:u8 ptr ptr"), -Attr("c.type"," const char**")]), Var("main_argv",Imm(64)), -Var("R1",Imm(64)), Both()), Arg(Tid(1_600, "%00000640"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("main_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(836, "@main"), - Attrs([Attr("address","0x7B4")]), Phis([]), Defs([Def(Tid(840, "%00000348"), - Attrs([Attr("address","0x7B4"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("#5",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(18446744073709551584,64))), -Def(Tid(846, "%0000034e"), Attrs([Attr("address","0x7B4"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("#5",Imm(64)),Var("R29",Imm(64)),LittleEndian(),64)), -Def(Tid(852, "%00000354"), Attrs([Attr("address","0x7B4"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("#5",Imm(64)),Int(8,64)),Var("R30",Imm(64)),LittleEndian(),64)), -Def(Tid(856, "%00000358"), Attrs([Attr("address","0x7B4"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("R31",Imm(64)), -Var("#5",Imm(64))), Def(Tid(862, "%0000035e"), - Attrs([Attr("address","0x7B8"), Attr("insn","mov x29, sp")]), - Var("R29",Imm(64)), Var("R31",Imm(64))), Def(Tid(867, "%00000363"), - Attrs([Attr("address","0x7BC"), Attr("insn","adrp x0, #65536")]), - Var("R0",Imm(64)), Int(65536,64)), Def(Tid(874, "%0000036a"), - Attrs([Attr("address","0x7C0"), Attr("insn","ldr x0, [x0, #0xfe0]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(4064,64)),LittleEndian(),64)), -Def(Tid(882, "%00000372"), Attrs([Attr("address","0x7C4"), -Attr("insn","str x0, [sp, #0x18]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(24,64)),Var("R0",Imm(64)),LittleEndian(),64)), -Def(Tid(887, "%00000377"), Attrs([Attr("address","0x7C8"), -Attr("insn","adrp x0, #0")]), Var("R0",Imm(64)), Int(0,64)), -Def(Tid(893, "%0000037d"), Attrs([Attr("address","0x7CC"), -Attr("insn","add x0, x0, #0x818")]), Var("R0",Imm(64)), -PLUS(Var("R0",Imm(64)),Int(2072,64))), Def(Tid(898, "%00000382"), - Attrs([Attr("address","0x7D0"), Attr("insn","bl #-0x180")]), - Var("R30",Imm(64)), Int(2004,64))]), Jmps([Call(Tid(900, "%00000384"), - Attrs([Attr("address","0x7D0"), Attr("insn","bl #-0x180")]), Int(1,1), -(Direct(Tid(1_548, "@puts")),Direct(Tid(902, "%00000386"))))])), -Blk(Tid(902, "%00000386"), Attrs([Attr("address","0x7D4")]), Phis([]), -Defs([Def(Tid(907, "%0000038b"), Attrs([Attr("address","0x7D4"), -Attr("insn","ldr x0, [sp, #0x18]")]), Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(24,64)),LittleEndian(),64)), -Def(Tid(912, "%00000390"), Attrs([Attr("address","0x7D8"), -Attr("insn","blr x0")]), Var("R30",Imm(64)), Int(2012,64))]), -Jmps([Call(Tid(915, "%00000393"), Attrs([Attr("address","0x7D8"), -Attr("insn","blr x0")]), Int(1,1), -(Indirect(Var("R0",Imm(64))),Direct(Tid(917, "%00000395"))))])), -Blk(Tid(917, "%00000395"), Attrs([Attr("address","0x7DC")]), Phis([]), -Defs([Def(Tid(920, "%00000398"), Attrs([Attr("address","0x7DC"), -Attr("insn","mov w0, #0x0")]), Var("R0",Imm(64)), Int(0,64)), -Def(Tid(927, "%0000039f"), Attrs([Attr("address","0x7E0"), -Attr("insn","ldp x29, x30, [sp], #0x20")]), Var("R29",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(932, "%000003a4"), Attrs([Attr("address","0x7E0"), -Attr("insn","ldp x29, x30, [sp], #0x20")]), Var("R30",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(936, "%000003a8"), Attrs([Attr("address","0x7E0"), -Attr("insn","ldp x29, x30, [sp], #0x20")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(32,64)))]), Jmps([Call(Tid(941, "%000003ad"), - Attrs([Attr("address","0x7E4"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), Sub(Tid(1_548, "@puts"), - Attrs([Attr("c.proto","signed (*)( const char* s)"), -Attr("address","0x650"), Attr("stub","()")]), "puts", - Args([Arg(Tid(1_601, "%00000641"), Attrs([Attr("c.layout","*[char : 8]"), -Attr("c.data","Top:u8 ptr"), Attr("c.type"," const char*")]), - Var("puts_s",Imm(64)), Var("R0",Imm(64)), In()), -Arg(Tid(1_602, "%00000642"), Attrs([Attr("c.layout","[signed : 32]"), -Attr("c.data","Top:u32"), Attr("c.type","signed")]), - Var("puts_result",Imm(32)), LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(809, "@puts"), Attrs([Attr("address","0x650")]), Phis([]), -Defs([Def(Tid(1_328, "%00000530"), Attrs([Attr("address","0x650"), -Attr("insn","adrp x16, #65536")]), Var("R16",Imm(64)), Int(65536,64)), -Def(Tid(1_335, "%00000537"), Attrs([Attr("address","0x654"), -Attr("insn","ldr x17, [x16, #0xfc0]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(4032,64)),LittleEndian(),64)), -Def(Tid(1_341, "%0000053d"), Attrs([Attr("address","0x658"), -Attr("insn","add x16, x16, #0xfc0")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(4032,64)))]), Jmps([Call(Tid(1_346, "%00000542"), - Attrs([Attr("address","0x65C"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), -Sub(Tid(1_549, "@register_tm_clones"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x700")]), - "register_tm_clones", Args([Arg(Tid(1_603, "%00000643"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("register_tm_clones_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(612, "@register_tm_clones"), Attrs([Attr("address","0x700")]), - Phis([]), Defs([Def(Tid(615, "%00000267"), Attrs([Attr("address","0x700"), -Attr("insn","adrp x0, #69632")]), Var("R0",Imm(64)), Int(69632,64)), -Def(Tid(621, "%0000026d"), Attrs([Attr("address","0x704"), -Attr("insn","add x0, x0, #0x10")]), Var("R0",Imm(64)), -PLUS(Var("R0",Imm(64)),Int(16,64))), Def(Tid(626, "%00000272"), - Attrs([Attr("address","0x708"), Attr("insn","adrp x1, #69632")]), - Var("R1",Imm(64)), Int(69632,64)), Def(Tid(632, "%00000278"), - Attrs([Attr("address","0x70C"), Attr("insn","add x1, x1, #0x10")]), - Var("R1",Imm(64)), PLUS(Var("R1",Imm(64)),Int(16,64))), -Def(Tid(639, "%0000027f"), Attrs([Attr("address","0x710"), -Attr("insn","sub x1, x1, x0")]), Var("R1",Imm(64)), -PLUS(PLUS(Var("R1",Imm(64)),NOT(Var("R0",Imm(64)))),Int(1,64))), -Def(Tid(645, "%00000285"), Attrs([Attr("address","0x714"), -Attr("insn","lsr x2, x1, #63")]), Var("R2",Imm(64)), -Concat(Int(0,63),Extract(63,63,Var("R1",Imm(64))))), -Def(Tid(652, "%0000028c"), Attrs([Attr("address","0x718"), -Attr("insn","add x1, x2, x1, asr #3")]), Var("R1",Imm(64)), -PLUS(Var("R2",Imm(64)),ARSHIFT(Var("R1",Imm(64)),Int(3,3)))), -Def(Tid(658, "%00000292"), Attrs([Attr("address","0x71C"), -Attr("insn","asr x1, x1, #1")]), Var("R1",Imm(64)), -SIGNED(64,Extract(63,1,Var("R1",Imm(64)))))]), -Jmps([Goto(Tid(664, "%00000298"), Attrs([Attr("address","0x720"), -Attr("insn","cbz x1, #0x18")]), EQ(Var("R1",Imm(64)),Int(0,64)), -Direct(Tid(662, "%00000296"))), Goto(Tid(1_581, "%0000062d"), Attrs([]), - Int(1,1), Direct(Tid(1_002, "%000003ea")))])), Blk(Tid(1_002, "%000003ea"), - Attrs([Attr("address","0x724")]), Phis([]), -Defs([Def(Tid(1_005, "%000003ed"), Attrs([Attr("address","0x724"), -Attr("insn","adrp x2, #65536")]), Var("R2",Imm(64)), Int(65536,64)), -Def(Tid(1_012, "%000003f4"), Attrs([Attr("address","0x728"), -Attr("insn","ldr x2, [x2, #0xff8]")]), Var("R2",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R2",Imm(64)),Int(4088,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(1_017, "%000003f9"), Attrs([Attr("address","0x72C"), -Attr("insn","cbz x2, #0xc")]), EQ(Var("R2",Imm(64)),Int(0,64)), -Direct(Tid(662, "%00000296"))), Goto(Tid(1_582, "%0000062e"), Attrs([]), - Int(1,1), Direct(Tid(1_021, "%000003fd")))])), Blk(Tid(662, "%00000296"), - Attrs([Attr("address","0x738")]), Phis([]), Defs([]), -Jmps([Call(Tid(670, "%0000029e"), Attrs([Attr("address","0x738"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))])), -Blk(Tid(1_021, "%000003fd"), Attrs([Attr("address","0x730")]), Phis([]), -Defs([Def(Tid(1_025, "%00000401"), Attrs([Attr("address","0x730"), -Attr("insn","mov x16, x2")]), Var("R16",Imm(64)), Var("R2",Imm(64)))]), -Jmps([Call(Tid(1_030, "%00000406"), Attrs([Attr("address","0x734"), -Attr("insn","br x16")]), Int(1,1), -(Indirect(Var("R16",Imm(64))),))]))]))]))) \ No newline at end of file diff --git a/src/test/indirect_calls/indirect_call/gcc_pic/indirect_call.bir b/src/test/indirect_calls/indirect_call/gcc_pic/indirect_call.bir deleted file mode 100644 index 500144a4e..000000000 --- a/src/test/indirect_calls/indirect_call/gcc_pic/indirect_call.bir +++ /dev/null @@ -1,276 +0,0 @@ -0000062f: program -000005f8: sub __cxa_finalize(__cxa_finalize_result) -00000630: __cxa_finalize_result :: out u32 = low:32[R0] - -000003e6: -000004ee: R16 := 0x10000 -000004f5: R17 := mem[R16 + 0xFA8, el]:u64 -000004fb: R16 := R16 + 0xFA8 -00000500: call R17 with noreturn - -000005f9: sub __do_global_dtors_aux(__do_global_dtors_aux_result) -00000631: __do_global_dtors_aux_result :: out u32 = low:32[R0] - -000002a2: -000002a6: #3 := R31 - 0x20 -000002ac: mem := mem with [#3, el]:u64 <- R29 -000002b2: mem := mem with [#3 + 8, el]:u64 <- R30 -000002b6: R31 := #3 -000002bc: R29 := R31 -000002c4: mem := mem with [R31 + 0x10, el]:u64 <- R19 -000002c9: R19 := 0x11000 -000002d0: R0 := pad:64[mem[R19 + 0x10]] -000002d7: when 31:0[R0] <> 0 goto %000002d5 -00000625: goto %000003af - -000003af: -000003b2: R0 := 0x10000 -000003b9: R0 := mem[R0 + 0xFD8, el]:u64 -000003bf: when R0 = 0 goto %000003bd -00000626: goto %000003d6 - -000003d6: -000003d9: R0 := 0x11000 -000003e0: R0 := mem[R0 + 8, el]:u64 -000003e5: R30 := 0x770 -000003e8: call @__cxa_finalize with return %000003bd - -000003bd: -000003c5: R30 := 0x774 -000003c7: call @deregister_tm_clones with return %000003c9 - -000003c9: -000003cc: R0 := 1 -000003d4: mem := mem with [R19 + 0x10] <- 7:0[R0] -00000627: goto %000002d5 - -000002d5: -000002df: R19 := mem[R31 + 0x10, el]:u64 -000002e6: R29 := mem[R31, el]:u64 -000002eb: R30 := mem[R31 + 8, el]:u64 -000002ef: R31 := R31 + 0x20 -000002f4: call R30 with noreturn - -000005fd: sub __libc_start_main(__libc_start_main_main, __libc_start_main_arg2, __libc_start_main_arg3, __libc_start_main_auxv, __libc_start_main_result) -00000632: __libc_start_main_main :: in u64 = R0 -00000633: __libc_start_main_arg2 :: in u32 = low:32[R1] -00000634: __libc_start_main_arg3 :: in out u64 = R2 -00000635: __libc_start_main_auxv :: in out u64 = R3 -00000636: __libc_start_main_result :: out u32 = low:32[R0] - -000001fb: -000004d8: R16 := 0x10000 -000004df: R17 := mem[R16 + 0xFA0, el]:u64 -000004e5: R16 := R16 + 0xFA0 -000004ea: call R17 with noreturn - -000005fe: sub _fini(_fini_result) -00000637: _fini_result :: out u32 = low:32[R0] - -0000001f: -00000025: #0 := R31 - 0x10 -0000002b: mem := mem with [#0, el]:u64 <- R29 -00000031: mem := mem with [#0 + 8, el]:u64 <- R30 -00000035: R31 := #0 -0000003b: R29 := R31 -00000042: R29 := mem[R31, el]:u64 -00000047: R30 := mem[R31 + 8, el]:u64 -0000004b: R31 := R31 + 0x10 -00000050: call R30 with noreturn - -000005ff: sub _init(_init_result) -00000638: _init_result :: out u32 = low:32[R0] - -0000055e: -00000564: #7 := R31 - 0x10 -0000056a: mem := mem with [#7, el]:u64 <- R29 -00000570: mem := mem with [#7 + 8, el]:u64 <- R30 -00000574: R31 := #7 -0000057a: R29 := R31 -0000057f: R30 := 0x5E0 -00000581: call @call_weak_fn with return %00000583 - -00000583: -00000588: R29 := mem[R31, el]:u64 -0000058d: R30 := mem[R31 + 8, el]:u64 -00000591: R31 := R31 + 0x10 -00000596: call R30 with noreturn - -00000600: sub _start(_start_result) -00000639: _start_result :: out u32 = low:32[R0] - -000001bc: -000001c1: R29 := 0 -000001c6: R30 := 0 -000001cc: R5 := R0 -000001d3: R1 := mem[R31, el]:u64 -000001d9: R2 := R31 + 8 -000001df: R6 := R31 -000001e4: R0 := 0x10000 -000001eb: R0 := mem[R0 + 0xFF0, el]:u64 -000001f0: R3 := 0 -000001f5: R4 := 0 -000001fa: R30 := 0x6B0 -000001fd: call @__libc_start_main with return %000001ff - -000001ff: -00000202: R30 := 0x6B4 -00000205: call @abort with return %00000628 - -00000628: -00000629: call @call_weak_fn with noreturn - -00000603: sub abort() - - -00000203: -0000051a: R16 := 0x10000 -00000521: R17 := mem[R16 + 0xFB8, el]:u64 -00000527: R16 := R16 + 0xFB8 -0000052c: call R17 with noreturn - -00000604: sub call_weak_fn(call_weak_fn_result) -0000063a: call_weak_fn_result :: out u32 = low:32[R0] - -00000207: -0000020a: R0 := 0x10000 -00000211: R0 := mem[R0 + 0xFE8, el]:u64 -00000217: when R0 = 0 goto %00000215 -0000062a: goto %00000426 - -00000215: -0000021d: call R30 with noreturn - -00000426: -00000429: goto @__gmon_start__ - -00000427: -00000504: R16 := 0x10000 -0000050b: R17 := mem[R16 + 0xFB0, el]:u64 -00000511: R16 := R16 + 0xFB0 -00000516: call R17 with noreturn - -00000606: sub deregister_tm_clones(deregister_tm_clones_result) -0000063b: deregister_tm_clones_result :: out u32 = low:32[R0] - -00000223: -00000226: R0 := 0x11000 -0000022c: R0 := R0 + 0x10 -00000231: R1 := 0x11000 -00000237: R1 := R1 + 0x10 -0000023d: #1 := ~R0 -00000242: #2 := R1 + ~R0 -00000248: VF := extend:65[#2 + 1] <> extend:65[R1] + extend:65[#1] + 1 -0000024e: CF := pad:65[#2 + 1] <> pad:65[R1] + pad:65[#1] + 1 -00000252: ZF := #2 + 1 = 0 -00000256: NF := 63:63[#2 + 1] -0000025c: when ZF goto %0000025a -0000062b: goto %00000408 - -00000408: -0000040b: R1 := 0x10000 -00000412: R1 := mem[R1 + 0xFD0, el]:u64 -00000417: when R1 = 0 goto %0000025a -0000062c: goto %0000041b - -0000025a: -00000262: call R30 with noreturn - -0000041b: -0000041f: R16 := R1 -00000424: call R16 with noreturn - -00000609: sub frame_dummy(frame_dummy_result) -0000063c: frame_dummy_result :: out u32 = low:32[R0] - -000002fa: -000002fc: call @register_tm_clones with noreturn - -0000060a: sub greet(greet_result) -0000063d: greet_result :: out u32 = low:32[R0] - -000002fe: -00000302: #4 := R31 - 0x10 -00000308: mem := mem with [#4, el]:u64 <- R29 -0000030e: mem := mem with [#4 + 8, el]:u64 <- R30 -00000312: R31 := #4 -00000318: R29 := R31 -0000031d: R0 := 0 -00000323: R0 := R0 + 0x808 -00000328: R30 := 0x7A8 -0000032b: call @puts with return %0000032d - -0000032d: -00000334: R29 := mem[R31, el]:u64 -00000339: R30 := mem[R31 + 8, el]:u64 -0000033d: R31 := R31 + 0x10 -00000342: call R30 with noreturn - -0000060b: sub main(main_argc, main_argv, main_result) -0000063e: main_argc :: in u32 = low:32[R0] -0000063f: main_argv :: in out u64 = R1 -00000640: main_result :: out u32 = low:32[R0] - -00000344: -00000348: #5 := R31 - 0x20 -0000034e: mem := mem with [#5, el]:u64 <- R29 -00000354: mem := mem with [#5 + 8, el]:u64 <- R30 -00000358: R31 := #5 -0000035e: R29 := R31 -00000363: R0 := 0x10000 -0000036a: R0 := mem[R0 + 0xFE0, el]:u64 -00000372: mem := mem with [R31 + 0x18, el]:u64 <- R0 -00000377: R0 := 0 -0000037d: R0 := R0 + 0x818 -00000382: R30 := 0x7D4 -00000384: call @puts with return %00000386 - -00000386: -0000038b: R0 := mem[R31 + 0x18, el]:u64 -00000390: R30 := 0x7DC -00000393: call R0 with return %00000395 - -00000395: -00000398: R0 := 0 -0000039f: R29 := mem[R31, el]:u64 -000003a4: R30 := mem[R31 + 8, el]:u64 -000003a8: R31 := R31 + 0x20 -000003ad: call R30 with noreturn - -0000060c: sub puts(puts_s, puts_result) -00000641: puts_s :: in u64 = R0 -00000642: puts_result :: out u32 = low:32[R0] - -00000329: -00000530: R16 := 0x10000 -00000537: R17 := mem[R16 + 0xFC0, el]:u64 -0000053d: R16 := R16 + 0xFC0 -00000542: call R17 with noreturn - -0000060d: sub register_tm_clones(register_tm_clones_result) -00000643: register_tm_clones_result :: out u32 = low:32[R0] - -00000264: -00000267: R0 := 0x11000 -0000026d: R0 := R0 + 0x10 -00000272: R1 := 0x11000 -00000278: R1 := R1 + 0x10 -0000027f: R1 := R1 + ~R0 + 1 -00000285: R2 := 0.63:63[R1] -0000028c: R1 := R2 + (R1 ~>> 3) -00000292: R1 := extend:64[63:1[R1]] -00000298: when R1 = 0 goto %00000296 -0000062d: goto %000003ea - -000003ea: -000003ed: R2 := 0x10000 -000003f4: R2 := mem[R2 + 0xFF8, el]:u64 -000003f9: when R2 = 0 goto %00000296 -0000062e: goto %000003fd - -00000296: -0000029e: call R30 with noreturn - -000003fd: -00000401: R16 := R2 -00000406: call R16 with noreturn diff --git a/src/test/indirect_calls/indirect_call/gcc_pic/indirect_call.md5sum b/src/test/indirect_calls/indirect_call/gcc_pic/indirect_call.md5sum new file mode 100644 index 000000000..3a5486019 --- /dev/null +++ b/src/test/indirect_calls/indirect_call/gcc_pic/indirect_call.md5sum @@ -0,0 +1,4 @@ +52e9dafeff1c2f27a5fcde67978f561d indirect_calls/indirect_call/gcc_pic/a.out +f1b7c2382ac5cc0800c9bf3bd80d5287 indirect_calls/indirect_call/gcc_pic/indirect_call.relf +aada043378532566ea817b385174065f indirect_calls/indirect_call/gcc_pic/indirect_call.adt +4deeba4f77b863b3408c47ce72b7e751 indirect_calls/indirect_call/gcc_pic/indirect_call.bir diff --git a/src/test/indirect_calls/indirect_call/gcc_pic/indirect_call.relf b/src/test/indirect_calls/indirect_call/gcc_pic/indirect_call.relf deleted file mode 100644 index 4c5879c84..000000000 --- a/src/test/indirect_calls/indirect_call/gcc_pic/indirect_call.relf +++ /dev/null @@ -1,125 +0,0 @@ - -Relocation section '.rela.dyn' at offset 0x480 contains 9 entries: - Offset Info Type Symbol's Value Symbol's Name + Addend -0000000000010d88 0000000000000403 R_AARCH64_RELATIVE 790 -0000000000010d90 0000000000000403 R_AARCH64_RELATIVE 740 -0000000000010fe0 0000000000000403 R_AARCH64_RELATIVE 794 -0000000000010ff0 0000000000000403 R_AARCH64_RELATIVE 7b4 -0000000000011008 0000000000000403 R_AARCH64_RELATIVE 11008 -0000000000010fd0 0000000400000401 R_AARCH64_GLOB_DAT 0000000000000000 _ITM_deregisterTMCloneTable + 0 -0000000000010fd8 0000000500000401 R_AARCH64_GLOB_DAT 0000000000000000 __cxa_finalize@GLIBC_2.17 + 0 -0000000000010fe8 0000000600000401 R_AARCH64_GLOB_DAT 0000000000000000 __gmon_start__ + 0 -0000000000010ff8 0000000900000401 R_AARCH64_GLOB_DAT 0000000000000000 _ITM_registerTMCloneTable + 0 - -Relocation section '.rela.plt' at offset 0x558 contains 5 entries: - Offset Info Type Symbol's Value Symbol's Name + Addend -0000000000010fa0 0000000300000402 R_AARCH64_JUMP_SLOT 0000000000000000 __libc_start_main@GLIBC_2.34 + 0 -0000000000010fa8 0000000500000402 R_AARCH64_JUMP_SLOT 0000000000000000 __cxa_finalize@GLIBC_2.17 + 0 -0000000000010fb0 0000000600000402 R_AARCH64_JUMP_SLOT 0000000000000000 __gmon_start__ + 0 -0000000000010fb8 0000000700000402 R_AARCH64_JUMP_SLOT 0000000000000000 abort@GLIBC_2.17 + 0 -0000000000010fc0 0000000800000402 R_AARCH64_JUMP_SLOT 0000000000000000 puts@GLIBC_2.17 + 0 - -Symbol table '.dynsym' contains 10 entries: - Num: Value Size Type Bind Vis Ndx Name - 0: 0000000000000000 0 NOTYPE LOCAL DEFAULT UND - 1: 00000000000005d0 0 SECTION LOCAL DEFAULT 11 .init - 2: 0000000000011000 0 SECTION LOCAL DEFAULT 22 .data - 3: 0000000000000000 0 FUNC GLOBAL DEFAULT UND __libc_start_main@GLIBC_2.34 (2) - 4: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_deregisterTMCloneTable - 5: 0000000000000000 0 FUNC WEAK DEFAULT UND __cxa_finalize@GLIBC_2.17 (3) - 6: 0000000000000000 0 NOTYPE WEAK DEFAULT UND __gmon_start__ - 7: 0000000000000000 0 FUNC GLOBAL DEFAULT UND abort@GLIBC_2.17 (3) - 8: 0000000000000000 0 FUNC GLOBAL DEFAULT UND puts@GLIBC_2.17 (3) - 9: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_registerTMCloneTable - -Symbol table '.symtab' contains 89 entries: - Num: Value Size Type Bind Vis Ndx Name - 0: 0000000000000000 0 NOTYPE LOCAL DEFAULT UND - 1: 0000000000000238 0 SECTION LOCAL DEFAULT 1 .interp - 2: 0000000000000254 0 SECTION LOCAL DEFAULT 2 .note.gnu.build-id - 3: 0000000000000278 0 SECTION LOCAL DEFAULT 3 .note.ABI-tag - 4: 0000000000000298 0 SECTION LOCAL DEFAULT 4 .gnu.hash - 5: 00000000000002b8 0 SECTION LOCAL DEFAULT 5 .dynsym - 6: 00000000000003a8 0 SECTION LOCAL DEFAULT 6 .dynstr - 7: 000000000000043a 0 SECTION LOCAL DEFAULT 7 .gnu.version - 8: 0000000000000450 0 SECTION LOCAL DEFAULT 8 .gnu.version_r - 9: 0000000000000480 0 SECTION LOCAL DEFAULT 9 .rela.dyn - 10: 0000000000000558 0 SECTION LOCAL DEFAULT 10 .rela.plt - 11: 00000000000005d0 0 SECTION LOCAL DEFAULT 11 .init - 12: 00000000000005f0 0 SECTION LOCAL DEFAULT 12 .plt - 13: 0000000000000680 0 SECTION LOCAL DEFAULT 13 .text - 14: 00000000000007e8 0 SECTION LOCAL DEFAULT 14 .fini - 15: 0000000000000800 0 SECTION LOCAL DEFAULT 15 .rodata - 16: 0000000000000834 0 SECTION LOCAL DEFAULT 16 .eh_frame_hdr - 17: 0000000000000878 0 SECTION LOCAL DEFAULT 17 .eh_frame - 18: 0000000000010d88 0 SECTION LOCAL DEFAULT 18 .init_array - 19: 0000000000010d90 0 SECTION LOCAL DEFAULT 19 .fini_array - 20: 0000000000010d98 0 SECTION LOCAL DEFAULT 20 .dynamic - 21: 0000000000010f88 0 SECTION LOCAL DEFAULT 21 .got - 22: 0000000000011000 0 SECTION LOCAL DEFAULT 22 .data - 23: 0000000000011010 0 SECTION LOCAL DEFAULT 23 .bss - 24: 0000000000000000 0 SECTION LOCAL DEFAULT 24 .comment - 25: 0000000000000000 0 FILE LOCAL DEFAULT ABS Scrt1.o - 26: 0000000000000278 0 NOTYPE LOCAL DEFAULT 3 $d - 27: 0000000000000278 32 OBJECT LOCAL DEFAULT 3 __abi_tag - 28: 0000000000000680 0 NOTYPE LOCAL DEFAULT 13 $x - 29: 000000000000088c 0 NOTYPE LOCAL DEFAULT 17 $d - 30: 0000000000000800 0 NOTYPE LOCAL DEFAULT 15 $d - 31: 0000000000000000 0 FILE LOCAL DEFAULT ABS crti.o - 32: 00000000000006b4 0 NOTYPE LOCAL DEFAULT 13 $x - 33: 00000000000006b4 20 FUNC LOCAL DEFAULT 13 call_weak_fn - 34: 00000000000005d0 0 NOTYPE LOCAL DEFAULT 11 $x - 35: 00000000000007e8 0 NOTYPE LOCAL DEFAULT 14 $x - 36: 0000000000000000 0 FILE LOCAL DEFAULT ABS crtn.o - 37: 00000000000005e0 0 NOTYPE LOCAL DEFAULT 11 $x - 38: 00000000000007f4 0 NOTYPE LOCAL DEFAULT 14 $x - 39: 0000000000000000 0 FILE LOCAL DEFAULT ABS crtstuff.c - 40: 00000000000006d0 0 NOTYPE LOCAL DEFAULT 13 $x - 41: 00000000000006d0 0 FUNC LOCAL DEFAULT 13 deregister_tm_clones - 42: 0000000000000700 0 FUNC LOCAL DEFAULT 13 register_tm_clones - 43: 0000000000011008 0 NOTYPE LOCAL DEFAULT 22 $d - 44: 0000000000000740 0 FUNC LOCAL DEFAULT 13 __do_global_dtors_aux - 45: 0000000000011010 1 OBJECT LOCAL DEFAULT 23 completed.0 - 46: 0000000000010d90 0 NOTYPE LOCAL DEFAULT 19 $d - 47: 0000000000010d90 0 OBJECT LOCAL DEFAULT 19 __do_global_dtors_aux_fini_array_entry - 48: 0000000000000790 0 FUNC LOCAL DEFAULT 13 frame_dummy - 49: 0000000000010d88 0 NOTYPE LOCAL DEFAULT 18 $d - 50: 0000000000010d88 0 OBJECT LOCAL DEFAULT 18 __frame_dummy_init_array_entry - 51: 00000000000008a0 0 NOTYPE LOCAL DEFAULT 17 $d - 52: 0000000000011010 0 NOTYPE LOCAL DEFAULT 23 $d - 53: 0000000000000000 0 FILE LOCAL DEFAULT ABS indirect_call.c - 54: 0000000000000808 0 NOTYPE LOCAL DEFAULT 15 $d - 55: 0000000000000794 0 NOTYPE LOCAL DEFAULT 13 $x - 56: 0000000000000900 0 NOTYPE LOCAL DEFAULT 17 $d - 57: 0000000000000000 0 FILE LOCAL DEFAULT ABS crtstuff.c - 58: 0000000000000940 0 NOTYPE LOCAL DEFAULT 17 $d - 59: 0000000000000940 0 OBJECT LOCAL DEFAULT 17 __FRAME_END__ - 60: 0000000000000000 0 FILE LOCAL DEFAULT ABS - 61: 0000000000010d98 0 OBJECT LOCAL DEFAULT ABS _DYNAMIC - 62: 0000000000000834 0 NOTYPE LOCAL DEFAULT 16 __GNU_EH_FRAME_HDR - 63: 0000000000010fc8 0 OBJECT LOCAL DEFAULT ABS _GLOBAL_OFFSET_TABLE_ - 64: 00000000000005f0 0 NOTYPE LOCAL DEFAULT 12 $x - 65: 0000000000000000 0 FUNC GLOBAL DEFAULT UND __libc_start_main@GLIBC_2.34 - 66: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_deregisterTMCloneTable - 67: 0000000000011000 0 NOTYPE WEAK DEFAULT 22 data_start - 68: 0000000000011010 0 NOTYPE GLOBAL DEFAULT 23 __bss_start__ - 69: 0000000000000000 0 FUNC WEAK DEFAULT UND __cxa_finalize@GLIBC_2.17 - 70: 0000000000011018 0 NOTYPE GLOBAL DEFAULT 23 _bss_end__ - 71: 0000000000011010 0 NOTYPE GLOBAL DEFAULT 22 _edata - 72: 00000000000007e8 0 FUNC GLOBAL HIDDEN 14 _fini - 73: 0000000000011018 0 NOTYPE GLOBAL DEFAULT 23 __bss_end__ - 74: 0000000000000794 32 FUNC GLOBAL DEFAULT 13 greet - 75: 0000000000011000 0 NOTYPE GLOBAL DEFAULT 22 __data_start - 76: 0000000000000000 0 NOTYPE WEAK DEFAULT UND __gmon_start__ - 77: 0000000000011008 0 OBJECT GLOBAL HIDDEN 22 __dso_handle - 78: 0000000000000000 0 FUNC GLOBAL DEFAULT UND abort@GLIBC_2.17 - 79: 0000000000000800 4 OBJECT GLOBAL DEFAULT 15 _IO_stdin_used - 80: 0000000000000000 0 FUNC GLOBAL DEFAULT UND puts@GLIBC_2.17 - 81: 0000000000011018 0 NOTYPE GLOBAL DEFAULT 23 _end - 82: 0000000000000680 52 FUNC GLOBAL DEFAULT 13 _start - 83: 0000000000011018 0 NOTYPE GLOBAL DEFAULT 23 __end__ - 84: 0000000000011010 0 NOTYPE GLOBAL DEFAULT 23 __bss_start - 85: 00000000000007b4 52 FUNC GLOBAL DEFAULT 13 main - 86: 0000000000011010 0 OBJECT GLOBAL HIDDEN 22 __TMC_END__ - 87: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_registerTMCloneTable - 88: 00000000000005d0 0 FUNC GLOBAL HIDDEN 11 _init diff --git a/src/test/indirect_calls/indirect_call_outparam/clang/indirect_call_outparam.adt b/src/test/indirect_calls/indirect_call_outparam/clang/indirect_call_outparam.adt deleted file mode 100644 index 1e96ec414..000000000 --- a/src/test/indirect_calls/indirect_call_outparam/clang/indirect_call_outparam.adt +++ /dev/null @@ -1,572 +0,0 @@ -Project(Attrs([Attr("filename","\"a.out\""), -Attr("image-specification","(declare abi (name str))\n(declare arch (name str))\n(declare base-address (addr int))\n(declare bias (off int))\n(declare bits (size int))\n(declare code-region (addr int) (size int) (off int))\n(declare code-start (addr int))\n(declare entry-point (addr int))\n(declare external-reference (addr int) (name str))\n(declare format (name str))\n(declare is-executable (flag bool))\n(declare is-little-endian (flag bool))\n(declare llvm:base-address (addr int))\n(declare llvm:code-entry (name str) (off int) (size int))\n(declare llvm:coff-import-library (name str))\n(declare llvm:coff-virtual-section-header (name str) (addr int) (size int))\n(declare llvm:elf-program-header (name str) (off int) (size int))\n(declare llvm:elf-program-header-flags (name str) (ld bool) (r bool) \n (w bool) (x bool))\n(declare llvm:elf-virtual-program-header (name str) (addr int) (size int))\n(declare llvm:entry-point (addr int))\n(declare llvm:macho-symbol (name str) (value int))\n(declare llvm:name-reference (at int) (name str))\n(declare llvm:relocation (at int) (addr int))\n(declare llvm:section-entry (name str) (addr int) (size int) (off int))\n(declare llvm:section-flags (name str) (r bool) (w bool) (x bool))\n(declare llvm:segment-command (name str) (off int) (size int))\n(declare llvm:segment-command-flags (name str) (r bool) (w bool) (x bool))\n(declare llvm:symbol-entry (name str) (addr int) (size int) (off int)\n (value int))\n(declare llvm:virtual-segment-command (name str) (addr int) (size int))\n(declare mapped (addr int) (size int) (off int))\n(declare named-region (addr int) (size int) (name str))\n(declare named-symbol (addr int) (name str))\n(declare require (name str))\n(declare section (addr int) (size int))\n(declare segment (addr int) (size int) (r bool) (w bool) (x bool))\n(declare subarch (name str))\n(declare symbol-chunk (addr int) (size int) (root int))\n(declare symbol-value (addr int) (value int))\n(declare system (name str))\n(declare vendor (name str))\n\n(abi unknown)\n(arch aarch64)\n(base-address 0)\n(bias 0)\n(bits 64)\n(code-region 1896 20 1896)\n(code-region 1536 360 1536)\n(code-region 1440 96 1440)\n(code-region 1408 24 1408)\n(code-start 1588)\n(code-start 1820)\n(code-start 1536)\n(code-start 1852)\n(code-start 1812)\n(entry-point 1536)\n(external-reference 69568 _ITM_deregisterTMCloneTable)\n(external-reference 69576 __cxa_finalize)\n(external-reference 69584 __gmon_start__)\n(external-reference 69600 _ITM_registerTMCloneTable)\n(external-reference 69632 __libc_start_main)\n(external-reference 69640 __cxa_finalize)\n(external-reference 69648 __gmon_start__)\n(external-reference 69656 abort)\n(format elf)\n(is-executable true)\n(is-little-endian true)\n(llvm:base-address 0)\n(llvm:code-entry abort 0 0)\n(llvm:code-entry __cxa_finalize 0 0)\n(llvm:code-entry __libc_start_main 0 0)\n(llvm:code-entry _init 1408 0)\n(llvm:code-entry seven 1812 8)\n(llvm:code-entry main 1852 44)\n(llvm:code-entry _start 1536 52)\n(llvm:code-entry abort@GLIBC_2.17 0 0)\n(llvm:code-entry get_call 1820 32)\n(llvm:code-entry _fini 1896 0)\n(llvm:code-entry __cxa_finalize@GLIBC_2.17 0 0)\n(llvm:code-entry __libc_start_main@GLIBC_2.34 0 0)\n(llvm:code-entry frame_dummy 1808 0)\n(llvm:code-entry __do_global_dtors_aux 1728 0)\n(llvm:code-entry register_tm_clones 1664 0)\n(llvm:code-entry deregister_tm_clones 1616 0)\n(llvm:code-entry call_weak_fn 1588 20)\n(llvm:code-entry .fini 1896 20)\n(llvm:code-entry .text 1536 360)\n(llvm:code-entry .plt 1440 96)\n(llvm:code-entry .init 1408 24)\n(llvm:elf-program-header 08 3528 568)\n(llvm:elf-program-header 07 0 0)\n(llvm:elf-program-header 06 1920 76)\n(llvm:elf-program-header 05 596 68)\n(llvm:elf-program-header 04 3544 480)\n(llvm:elf-program-header 03 3528 616)\n(llvm:elf-program-header 02 0 2244)\n(llvm:elf-program-header 01 568 27)\n(llvm:elf-program-header 00 64 504)\n(llvm:elf-program-header-flags 08 false true false false)\n(llvm:elf-program-header-flags 07 false true true false)\n(llvm:elf-program-header-flags 06 false true false false)\n(llvm:elf-program-header-flags 05 false true false false)\n(llvm:elf-program-header-flags 04 false true true false)\n(llvm:elf-program-header-flags 03 true true true false)\n(llvm:elf-program-header-flags 02 true true false true)\n(llvm:elf-program-header-flags 01 false true false false)\n(llvm:elf-program-header-flags 00 false true false false)\n(llvm:elf-virtual-program-header 08 69064 568)\n(llvm:elf-virtual-program-header 07 0 0)\n(llvm:elf-virtual-program-header 06 1920 76)\n(llvm:elf-virtual-program-header 05 596 68)\n(llvm:elf-virtual-program-header 04 69080 480)\n(llvm:elf-virtual-program-header 03 69064 624)\n(llvm:elf-virtual-program-header 02 0 2244)\n(llvm:elf-virtual-program-header 01 568 27)\n(llvm:elf-virtual-program-header 00 64 504)\n(llvm:entry-point 1536)\n(llvm:name-reference 69656 abort)\n(llvm:name-reference 69648 __gmon_start__)\n(llvm:name-reference 69640 __cxa_finalize)\n(llvm:name-reference 69632 __libc_start_main)\n(llvm:name-reference 69600 _ITM_registerTMCloneTable)\n(llvm:name-reference 69584 __gmon_start__)\n(llvm:name-reference 69576 __cxa_finalize)\n(llvm:name-reference 69568 _ITM_deregisterTMCloneTable)\n(llvm:section-entry .shstrtab 0 259 6964)\n(llvm:section-entry .strtab 0 588 6376)\n(llvm:section-entry .symtab 0 2160 4216)\n(llvm:section-entry .comment 0 71 4144)\n(llvm:section-entry .bss 69680 8 4144)\n(llvm:section-entry .data 69664 16 4128)\n(llvm:section-entry .got.plt 69608 56 4072)\n(llvm:section-entry .got 69560 48 4024)\n(llvm:section-entry .dynamic 69080 480 3544)\n(llvm:section-entry .fini_array 69072 8 3536)\n(llvm:section-entry .init_array 69064 8 3528)\n(llvm:section-entry .eh_frame 2000 244 2000)\n(llvm:section-entry .eh_frame_hdr 1920 76 1920)\n(llvm:section-entry .rodata 1916 4 1916)\n(llvm:section-entry .fini 1896 20 1896)\n(llvm:section-entry .text 1536 360 1536)\n(llvm:section-entry .plt 1440 96 1440)\n(llvm:section-entry .init 1408 24 1408)\n(llvm:section-entry .rela.plt 1312 96 1312)\n(llvm:section-entry .rela.dyn 1120 192 1120)\n(llvm:section-entry .gnu.version_r 1072 48 1072)\n(llvm:section-entry .gnu.version 1054 18 1054)\n(llvm:section-entry .dynstr 912 141 912)\n(llvm:section-entry .dynsym 696 216 696)\n(llvm:section-entry .gnu.hash 664 28 664)\n(llvm:section-entry .note.ABI-tag 632 32 632)\n(llvm:section-entry .note.gnu.build-id 596 36 596)\n(llvm:section-entry .interp 568 27 568)\n(llvm:section-flags .shstrtab true false false)\n(llvm:section-flags .strtab true false false)\n(llvm:section-flags .symtab true false false)\n(llvm:section-flags .comment true false false)\n(llvm:section-flags .bss true true false)\n(llvm:section-flags .data true true false)\n(llvm:section-flags .got.plt true true false)\n(llvm:section-flags .got true true false)\n(llvm:section-flags .dynamic true true false)\n(llvm:section-flags .fini_array true true false)\n(llvm:section-flags .init_array true true false)\n(llvm:section-flags .eh_frame true false false)\n(llvm:section-flags .eh_frame_hdr true false false)\n(llvm:section-flags .rodata true false false)\n(llvm:section-flags .fini true false true)\n(llvm:section-flags .text true false true)\n(llvm:section-flags .plt true false true)\n(llvm:section-flags .init true false true)\n(llvm:section-flags .rela.plt true false false)\n(llvm:section-flags .rela.dyn true false false)\n(llvm:section-flags .gnu.version_r true false false)\n(llvm:section-flags .gnu.version true false false)\n(llvm:section-flags .dynstr true false false)\n(llvm:section-flags .dynsym true false false)\n(llvm:section-flags .gnu.hash true false false)\n(llvm:section-flags .note.ABI-tag true false false)\n(llvm:section-flags .note.gnu.build-id true false false)\n(llvm:section-flags .interp true false false)\n(llvm:symbol-entry abort 0 0 0 0)\n(llvm:symbol-entry __cxa_finalize 0 0 0 0)\n(llvm:symbol-entry __libc_start_main 0 0 0 0)\n(llvm:symbol-entry _init 1408 0 1408 1408)\n(llvm:symbol-entry seven 1812 8 1812 1812)\n(llvm:symbol-entry main 1852 44 1852 1852)\n(llvm:symbol-entry _start 1536 52 1536 1536)\n(llvm:symbol-entry abort@GLIBC_2.17 0 0 0 0)\n(llvm:symbol-entry get_call 1820 32 1820 1820)\n(llvm:symbol-entry _fini 1896 0 1896 1896)\n(llvm:symbol-entry __cxa_finalize@GLIBC_2.17 0 0 0 0)\n(llvm:symbol-entry __libc_start_main@GLIBC_2.34 0 0 0 0)\n(llvm:symbol-entry frame_dummy 1808 0 1808 1808)\n(llvm:symbol-entry __do_global_dtors_aux 1728 0 1728 1728)\n(llvm:symbol-entry register_tm_clones 1664 0 1664 1664)\n(llvm:symbol-entry deregister_tm_clones 1616 0 1616 1616)\n(llvm:symbol-entry call_weak_fn 1588 20 1588 1588)\n(mapped 0 2244 0)\n(mapped 69064 616 3528)\n(named-region 0 2244 02)\n(named-region 69064 624 03)\n(named-region 568 27 .interp)\n(named-region 596 36 .note.gnu.build-id)\n(named-region 632 32 .note.ABI-tag)\n(named-region 664 28 .gnu.hash)\n(named-region 696 216 .dynsym)\n(named-region 912 141 .dynstr)\n(named-region 1054 18 .gnu.version)\n(named-region 1072 48 .gnu.version_r)\n(named-region 1120 192 .rela.dyn)\n(named-region 1312 96 .rela.plt)\n(named-region 1408 24 .init)\n(named-region 1440 96 .plt)\n(named-region 1536 360 .text)\n(named-region 1896 20 .fini)\n(named-region 1916 4 .rodata)\n(named-region 1920 76 .eh_frame_hdr)\n(named-region 2000 244 .eh_frame)\n(named-region 69064 8 .init_array)\n(named-region 69072 8 .fini_array)\n(named-region 69080 480 .dynamic)\n(named-region 69560 48 .got)\n(named-region 69608 56 .got.plt)\n(named-region 69664 16 .data)\n(named-region 69680 8 .bss)\n(named-region 0 71 .comment)\n(named-region 0 2160 .symtab)\n(named-region 0 588 .strtab)\n(named-region 0 259 .shstrtab)\n(named-symbol 1588 call_weak_fn)\n(named-symbol 1616 deregister_tm_clones)\n(named-symbol 1664 register_tm_clones)\n(named-symbol 1728 __do_global_dtors_aux)\n(named-symbol 1808 frame_dummy)\n(named-symbol 0 __libc_start_main@GLIBC_2.34)\n(named-symbol 0 __cxa_finalize@GLIBC_2.17)\n(named-symbol 1896 _fini)\n(named-symbol 1820 get_call)\n(named-symbol 0 abort@GLIBC_2.17)\n(named-symbol 1536 _start)\n(named-symbol 1852 main)\n(named-symbol 1812 seven)\n(named-symbol 1408 _init)\n(named-symbol 0 __libc_start_main)\n(named-symbol 0 __cxa_finalize)\n(named-symbol 0 abort)\n(require libc.so.6)\n(section 568 27)\n(section 596 36)\n(section 632 32)\n(section 664 28)\n(section 696 216)\n(section 912 141)\n(section 1054 18)\n(section 1072 48)\n(section 1120 192)\n(section 1312 96)\n(section 1408 24)\n(section 1440 96)\n(section 1536 360)\n(section 1896 20)\n(section 1916 4)\n(section 1920 76)\n(section 2000 244)\n(section 69064 8)\n(section 69072 8)\n(section 69080 480)\n(section 69560 48)\n(section 69608 56)\n(section 69664 16)\n(section 69680 8)\n(section 0 71)\n(section 0 2160)\n(section 0 588)\n(section 0 259)\n(segment 0 2244 true false true)\n(segment 69064 624 true true false)\n(subarch v8)\n(symbol-chunk 1588 20 1588)\n(symbol-chunk 1820 32 1820)\n(symbol-chunk 1536 52 1536)\n(symbol-chunk 1852 44 1852)\n(symbol-chunk 1812 8 1812)\n(symbol-value 1588 1588)\n(symbol-value 1616 1616)\n(symbol-value 1664 1664)\n(symbol-value 1728 1728)\n(symbol-value 1808 1808)\n(symbol-value 1896 1896)\n(symbol-value 1820 1820)\n(symbol-value 1536 1536)\n(symbol-value 1852 1852)\n(symbol-value 1812 1812)\n(symbol-value 1408 1408)\n(symbol-value 0 0)\n(system \"\")\n(vendor \"\")\n"), -Attr("abi-name","\"aarch64-linux-gnu-elf\"")]), -Sections([Section(".shstrtab", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x00\x06\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x38\x1c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x38\x00\x09\x00\x40\x00\x1d\x00\x1c\x00\x06\x00\x00\x00\x04\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x04\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xc4\x08\x00\x00\x00\x00\x00\x00\xc4\x08\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x01\x00\x00\x00\x06\x00\x00\x00\xc8\x0d\x00\x00\x00\x00\x00\x00\xc8\x0d\x01\x00\x00\x00\x00\x00\xc8\x0d\x01"), -Section(".strtab", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x00\x06\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x38\x1c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x38\x00\x09\x00\x40\x00\x1d\x00\x1c\x00\x06\x00\x00\x00\x04\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x04\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xc4\x08\x00\x00\x00\x00\x00\x00\xc4\x08\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x01\x00\x00\x00\x06\x00\x00\x00\xc8\x0d\x00\x00\x00\x00\x00\x00\xc8\x0d\x01\x00\x00\x00\x00\x00\xc8\x0d\x01\x00\x00\x00\x00\x00\x68\x02\x00\x00\x00\x00\x00\x00\x70\x02\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x02\x00\x00\x00\x06\x00\x00\x00\xd8\x0d\x00\x00\x00\x00\x00\x00\xd8\x0d\x01\x00\x00\x00\x00\x00\xd8\x0d\x01\x00\x00\x00\x00\x00\xe0\x01\x00\x00\x00\x00\x00\x00\xe0\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x04\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x50\xe5\x74\x64\x04\x00\x00\x00\x80\x07\x00\x00\x00\x00\x00\x00\x80\x07\x00\x00\x00\x00\x00\x00\x80\x07\x00\x00\x00\x00\x00\x00\x4c\x00\x00\x00\x00\x00\x00\x00\x4c\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x51\xe5\x74\x64\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x52\xe5\x74\x64\x04\x00\x00\x00\xc8\x0d\x00\x00\x00\x00\x00\x00\xc8\x0d\x01\x00\x00\x00\x00\x00\xc8\x0d\x01\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x2f\x6c\x69\x62\x2f\x6c\x64\x2d\x6c\x69\x6e\x75\x78\x2d\x61\x61\x72\x63\x68\x36"), -Section(".symtab", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x00\x06\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x38\x1c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x38\x00\x09\x00\x40\x00\x1d\x00\x1c\x00\x06\x00\x00\x00\x04\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x04\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xc4\x08\x00\x00\x00\x00\x00\x00\xc4\x08\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x01\x00\x00\x00\x06\x00\x00\x00\xc8\x0d\x00\x00\x00\x00\x00\x00\xc8\x0d\x01\x00\x00\x00\x00\x00\xc8\x0d\x01\x00\x00\x00\x00\x00\x68\x02\x00\x00\x00\x00\x00\x00\x70\x02\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x02\x00\x00\x00\x06\x00\x00\x00\xd8\x0d\x00\x00\x00\x00\x00\x00\xd8\x0d\x01\x00\x00\x00\x00\x00\xd8\x0d\x01\x00\x00\x00\x00\x00\xe0\x01\x00\x00\x00\x00\x00\x00\xe0\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x04\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x50\xe5\x74\x64\x04\x00\x00\x00\x80\x07\x00\x00\x00\x00\x00\x00\x80\x07\x00\x00\x00\x00\x00\x00\x80\x07\x00\x00\x00\x00\x00\x00\x4c\x00\x00\x00\x00\x00\x00\x00\x4c\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x51\xe5\x74\x64\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x52\xe5\x74\x64\x04\x00\x00\x00\xc8\x0d\x00\x00\x00\x00\x00\x00\xc8\x0d\x01\x00\x00\x00\x00\x00\xc8\x0d\x01\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x2f\x6c\x69\x62\x2f\x6c\x64\x2d\x6c\x69\x6e\x75\x78\x2d\x61\x61\x72\x63\x68\x36\x34\x2e\x73\x6f\x2e\x31\x00\x00\x04\x00\x00\x00\x14\x00\x00\x00\x03\x00\x00\x00\x47\x4e\x55\x00\x1a\xaa\xd3\x72\xa8\x8d\x7d\x31\x03\x0c\x1c\x10\xd4\xb8\x99\xbb\x5d\xc0\x94\xaa\x04\x00\x00\x00\x10\x00\x00\x00\x01\x00\x00\x00\x47\x4e\x55\x00\x00\x00\x00\x00\x03\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x01\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x0b\x00\x80\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x17\x00\x20\x10\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x48\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x22\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x22\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x73\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5f\x5f\x63\x78\x61\x5f\x66\x69\x6e\x61\x6c\x69\x7a\x65\x00\x5f\x5f\x6c\x69\x62\x63\x5f\x73\x74\x61\x72\x74\x5f\x6d\x61\x69\x6e\x00\x61\x62\x6f\x72\x74\x00\x6c\x69\x62\x63\x2e\x73\x6f\x2e\x36\x00\x47\x4c\x49\x42\x43\x5f\x32\x2e\x31\x37\x00\x47\x4c\x49\x42\x43\x5f\x32\x2e\x33\x34\x00\x5f\x49\x54\x4d\x5f\x64\x65\x72\x65\x67\x69\x73\x74\x65\x72\x54\x4d\x43\x6c\x6f\x6e\x65\x54\x61\x62\x6c\x65\x00\x5f\x5f\x67\x6d\x6f\x6e\x5f\x73\x74\x61\x72\x74\x5f\x5f\x00\x5f\x49\x54\x4d\x5f\x72\x65\x67\x69\x73\x74\x65\x72\x54\x4d\x43\x6c\x6f\x6e\x65\x54\x61\x62\x6c\x65\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x01\x00\x03\x00\x01\x00\x03\x00\x01\x00\x01\x00\x02\x00\x28\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x97\x91\x96\x06\x00\x00\x03\x00\x32\x00\x00\x00\x10\x00\x00\x00\xb4\x91\x96\x06\x00\x00\x02\x00\x3d\x00\x00\x00\x00\x00\x00\x00\xc8\x0d\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x10\x07\x00\x00\x00\x00\x00\x00\xd0\x0d\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\xc0\x06\x00\x00\x00\x00\x00\x00\xd8\x0f\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x3c\x07\x00\x00\x00\x00\x00\x00\x28\x10\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x28\x10\x01\x00\x00\x00\x00\x00\xc0\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xc8\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xd0\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe0\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x08\x10\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x10\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x18\x10\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1f\x20\x03\xd5\xfd\x7b\xbf\xa9\xfd\x03\x00\x91\x2a\x00\x00\x94\xfd\x7b\xc1\xa8\xc0\x03\x5f\xd6\x00\x00\x00\x00\x00\x00\x00\x00\xf0\x7b\xbf\xa9\x90\x00\x00\x90\x11\xfe\x47\xf9\x10\xe2\x3f\x91\x20\x02\x1f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x90\x00\x00\xb0\x11\x02\x40\xf9\x10\x02\x00\x91\x20\x02\x1f\xd6\x90\x00\x00\xb0\x11\x06\x40\xf9\x10\x22\x00\x91\x20\x02\x1f\xd6\x90\x00\x00\xb0\x11\x0a\x40\xf9\x10\x42\x00\x91\x20\x02\x1f\xd6\x90\x00\x00\xb0\x11\x0e\x40\xf9\x10\x62\x00\x91\x20\x02\x1f\xd6\x1f\x20\x03\xd5\x1d\x00\x80\xd2\x1e\x00\x80\xd2\xe5\x03\x00\xaa\xe1\x03\x40\xf9\xe2\x23\x00\x91\xe6\x03\x00\x91\x80\x00\x00\x90\x00\xec\x47\xf9\x03\x00\x80\xd2\x04\x00\x80\xd2\xe5\xff\xff\x97\xf0\xff\xff\x97\x80\x00\x00\x90\x00\xe8\x47\xf9\x40\x00\x00\xb4\xe8\xff\xff\x17\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x80\x00\x00\xb0\x00\xc0\x00\x91\x81\x00\x00\xb0\x21\xc0\x00\x91\x3f\x00\x00\xeb\xc0\x00\x00\x54\x81\x00\x00\x90\x21\xe0\x47\xf9\x61\x00\x00\xb4\xf0\x03\x01\xaa\x00\x02\x1f\xd6\xc0\x03\x5f\xd6\x80\x00\x00\xb0\x00\xc0\x00\x91\x81\x00\x00\xb0\x21\xc0\x00\x91\x21\x00\x00\xcb\x22\xfc\x7f\xd3\x41\x0c\x81\x8b\x21\xfc\x41\x93\xc1\x00\x00\xb4\x82\x00\x00\x90\x42\xf0\x47\xf9\x62\x00\x00\xb4\xf0\x03\x02\xaa\x00\x02\x1f\xd6\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\xfd\x7b\xbe\xa9\xfd\x03\x00\x91\xf3\x0b\x00\xf9\x93\x00\x00\xb0\x60\xc2\x40\x39\x40\x01\x00\x35\x80\x00\x00\x90\x00\xe4\x47\xf9\x80\x00\x00\xb4\x80\x00\x00\xb0\x00\x14\x40\xf9\xb9\xff\xff\x97\xd8\xff\xff\x97\x20\x00\x80\x52\x60\xc2\x00\x39\xf3\x0b\x40\xf9\xfd\x7b\xc2\xa8\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\xdc\xff\xff\x17\xe0\x00\x80\x52\xc0\x03\x5f\xd6\xff\x43\x00\xd1\xe0\x07\x00\xf9\xe9\x07\x40\xf9\x08\x00\x00\x90\x08\x51\x1c\x91\x28\x01\x00\xf9\xff\x43\x00\x91\xc0\x03\x5f\xd6\xff\x83\x00\xd1\xfd\x7b\x01\xa9\xfd\x43\x00\x91\xbf\xc3\x1f\xb8\xe0\x03\x00\x91\xf3\xff\xff\x97\xe8\x03\x40\xf9\x00\x01\x3f\xd6\xfd\x7b\x41\xa9\xff\x83\x00\x91\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\xfd\x7b\xbf\xa9\xfd\x03\x00\x91\xfd\x7b\xc1\xa8\xc0\x03\x5f\xd6\x01\x00\x02\x00\x01\x1b\x03\x3b\x4c\x00\x00\x00\x08\x00\x00\x00\x80\xfe\xff\xff\x64\x00\x00\x00\xd0\xfe\xff\xff\x78\x00\x00\x00\x00\xff\xff\xff\x8c\x00\x00\x00\x40\xff\xff\xff\xa0\x00\x00\x00\x90\xff\xff\xff\xc4\x00\x00\x00\x94\xff\xff\xff\xec\x00\x00\x00\x9c\xff\xff\xff\x00\x01\x00\x00\xbc\xff\xff\xff\x18\x01\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x01\x7a\x52\x00\x04\x78\x1e\x01\x1b\x0c\x1f\x00\x10\x00\x00\x00\x18\x00\x00\x00\x14\xfe\xff\xff\x34\x00\x00\x00\x00\x41\x07\x1e\x10\x00\x00\x00\x2c\x00\x00\x00\x50\xfe\xff\xff\x30\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x40\x00\x00\x00\x6c\xfe\xff\xff\x3c\x00\x00\x00\x00\x00\x00\x00\x20\x00\x00\x00\x54\x00\x00\x00\x98\xfe\xff\xff\x48\x00\x00\x00\x00\x41\x0e\x20\x9d\x04\x9e\x03\x42\x93\x02\x4e\xde\xdd\xd3\x0e\x00\x00\x00\x00\x10\x00\x00\x00\x78\x00\x00\x00\xc4\xfe\xff\xff\x04\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x01\x7a\x52\x00\x01\x7c\x1e\x01\x1b\x0c\x1f\x00\x10\x00\x00\x00"), -Section(".comment", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x00\x06\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x38\x1c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x38\x00\x09\x00\x40\x00\x1d\x00\x1c\x00\x06\x00\x00\x00\x04\x00\x00"), -Section(".interp", 0x238, "\x2f\x6c\x69\x62\x2f\x6c\x64\x2d\x6c\x69\x6e\x75\x78\x2d\x61\x61\x72\x63\x68\x36\x34\x2e\x73\x6f\x2e\x31\x00"), -Section(".note.gnu.build-id", 0x254, "\x04\x00\x00\x00\x14\x00\x00\x00\x03\x00\x00\x00\x47\x4e\x55\x00\x1a\xaa\xd3\x72\xa8\x8d\x7d\x31\x03\x0c\x1c\x10\xd4\xb8\x99\xbb\x5d\xc0\x94\xaa"), -Section(".note.ABI-tag", 0x278, "\x04\x00\x00\x00\x10\x00\x00\x00\x01\x00\x00\x00\x47\x4e\x55\x00\x00\x00\x00\x00\x03\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00"), -Section(".gnu.hash", 0x298, "\x01\x00\x00\x00\x01\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".dynsym", 0x2B8, "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x0b\x00\x80\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x17\x00\x20\x10\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x48\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x22\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x22\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x73\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".dynstr", 0x390, "\x00\x5f\x5f\x63\x78\x61\x5f\x66\x69\x6e\x61\x6c\x69\x7a\x65\x00\x5f\x5f\x6c\x69\x62\x63\x5f\x73\x74\x61\x72\x74\x5f\x6d\x61\x69\x6e\x00\x61\x62\x6f\x72\x74\x00\x6c\x69\x62\x63\x2e\x73\x6f\x2e\x36\x00\x47\x4c\x49\x42\x43\x5f\x32\x2e\x31\x37\x00\x47\x4c\x49\x42\x43\x5f\x32\x2e\x33\x34\x00\x5f\x49\x54\x4d\x5f\x64\x65\x72\x65\x67\x69\x73\x74\x65\x72\x54\x4d\x43\x6c\x6f\x6e\x65\x54\x61\x62\x6c\x65\x00\x5f\x5f\x67\x6d\x6f\x6e\x5f\x73\x74\x61\x72\x74\x5f\x5f\x00\x5f\x49\x54\x4d\x5f\x72\x65\x67\x69\x73\x74\x65\x72\x54\x4d\x43\x6c\x6f\x6e\x65\x54\x61\x62\x6c\x65\x00"), -Section(".gnu.version", 0x41E, "\x00\x00\x00\x00\x00\x00\x02\x00\x01\x00\x03\x00\x01\x00\x03\x00\x01\x00"), -Section(".gnu.version_r", 0x430, "\x01\x00\x02\x00\x28\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x97\x91\x96\x06\x00\x00\x03\x00\x32\x00\x00\x00\x10\x00\x00\x00\xb4\x91\x96\x06\x00\x00\x02\x00\x3d\x00\x00\x00\x00\x00\x00\x00"), -Section(".rela.dyn", 0x460, "\xc8\x0d\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x10\x07\x00\x00\x00\x00\x00\x00\xd0\x0d\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\xc0\x06\x00\x00\x00\x00\x00\x00\xd8\x0f\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x3c\x07\x00\x00\x00\x00\x00\x00\x28\x10\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x28\x10\x01\x00\x00\x00\x00\x00\xc0\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xc8\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xd0\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe0\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".rela.plt", 0x520, "\x00\x10\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x08\x10\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x10\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x18\x10\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".init", 0x580, "\x1f\x20\x03\xd5\xfd\x7b\xbf\xa9\xfd\x03\x00\x91\x2a\x00\x00\x94\xfd\x7b\xc1\xa8\xc0\x03\x5f\xd6"), -Section(".plt", 0x5A0, "\xf0\x7b\xbf\xa9\x90\x00\x00\x90\x11\xfe\x47\xf9\x10\xe2\x3f\x91\x20\x02\x1f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x90\x00\x00\xb0\x11\x02\x40\xf9\x10\x02\x00\x91\x20\x02\x1f\xd6\x90\x00\x00\xb0\x11\x06\x40\xf9\x10\x22\x00\x91\x20\x02\x1f\xd6\x90\x00\x00\xb0\x11\x0a\x40\xf9\x10\x42\x00\x91\x20\x02\x1f\xd6\x90\x00\x00\xb0\x11\x0e\x40\xf9\x10\x62\x00\x91\x20\x02\x1f\xd6"), -Section(".text", 0x600, "\x1f\x20\x03\xd5\x1d\x00\x80\xd2\x1e\x00\x80\xd2\xe5\x03\x00\xaa\xe1\x03\x40\xf9\xe2\x23\x00\x91\xe6\x03\x00\x91\x80\x00\x00\x90\x00\xec\x47\xf9\x03\x00\x80\xd2\x04\x00\x80\xd2\xe5\xff\xff\x97\xf0\xff\xff\x97\x80\x00\x00\x90\x00\xe8\x47\xf9\x40\x00\x00\xb4\xe8\xff\xff\x17\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x80\x00\x00\xb0\x00\xc0\x00\x91\x81\x00\x00\xb0\x21\xc0\x00\x91\x3f\x00\x00\xeb\xc0\x00\x00\x54\x81\x00\x00\x90\x21\xe0\x47\xf9\x61\x00\x00\xb4\xf0\x03\x01\xaa\x00\x02\x1f\xd6\xc0\x03\x5f\xd6\x80\x00\x00\xb0\x00\xc0\x00\x91\x81\x00\x00\xb0\x21\xc0\x00\x91\x21\x00\x00\xcb\x22\xfc\x7f\xd3\x41\x0c\x81\x8b\x21\xfc\x41\x93\xc1\x00\x00\xb4\x82\x00\x00\x90\x42\xf0\x47\xf9\x62\x00\x00\xb4\xf0\x03\x02\xaa\x00\x02\x1f\xd6\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\xfd\x7b\xbe\xa9\xfd\x03\x00\x91\xf3\x0b\x00\xf9\x93\x00\x00\xb0\x60\xc2\x40\x39\x40\x01\x00\x35\x80\x00\x00\x90\x00\xe4\x47\xf9\x80\x00\x00\xb4\x80\x00\x00\xb0\x00\x14\x40\xf9\xb9\xff\xff\x97\xd8\xff\xff\x97\x20\x00\x80\x52\x60\xc2\x00\x39\xf3\x0b\x40\xf9\xfd\x7b\xc2\xa8\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\xdc\xff\xff\x17\xe0\x00\x80\x52\xc0\x03\x5f\xd6\xff\x43\x00\xd1\xe0\x07\x00\xf9\xe9\x07\x40\xf9\x08\x00\x00\x90\x08\x51\x1c\x91\x28\x01\x00\xf9\xff\x43\x00\x91\xc0\x03\x5f\xd6\xff\x83\x00\xd1\xfd\x7b\x01\xa9\xfd\x43\x00\x91\xbf\xc3\x1f\xb8\xe0\x03\x00\x91\xf3\xff\xff\x97\xe8\x03\x40\xf9\x00\x01\x3f\xd6\xfd\x7b\x41\xa9\xff\x83\x00\x91\xc0\x03\x5f\xd6"), -Section(".fini", 0x768, "\x1f\x20\x03\xd5\xfd\x7b\xbf\xa9\xfd\x03\x00\x91\xfd\x7b\xc1\xa8\xc0\x03\x5f\xd6"), -Section(".rodata", 0x77C, "\x01\x00\x02\x00"), -Section(".eh_frame_hdr", 0x780, "\x01\x1b\x03\x3b\x4c\x00\x00\x00\x08\x00\x00\x00\x80\xfe\xff\xff\x64\x00\x00\x00\xd0\xfe\xff\xff\x78\x00\x00\x00\x00\xff\xff\xff\x8c\x00\x00\x00\x40\xff\xff\xff\xa0\x00\x00\x00\x90\xff\xff\xff\xc4\x00\x00\x00\x94\xff\xff\xff\xec\x00\x00\x00\x9c\xff\xff\xff\x00\x01\x00\x00\xbc\xff\xff\xff\x18\x01\x00\x00"), -Section(".eh_frame", 0x7D0, "\x10\x00\x00\x00\x00\x00\x00\x00\x01\x7a\x52\x00\x04\x78\x1e\x01\x1b\x0c\x1f\x00\x10\x00\x00\x00\x18\x00\x00\x00\x14\xfe\xff\xff\x34\x00\x00\x00\x00\x41\x07\x1e\x10\x00\x00\x00\x2c\x00\x00\x00\x50\xfe\xff\xff\x30\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x40\x00\x00\x00\x6c\xfe\xff\xff\x3c\x00\x00\x00\x00\x00\x00\x00\x20\x00\x00\x00\x54\x00\x00\x00\x98\xfe\xff\xff\x48\x00\x00\x00\x00\x41\x0e\x20\x9d\x04\x9e\x03\x42\x93\x02\x4e\xde\xdd\xd3\x0e\x00\x00\x00\x00\x10\x00\x00\x00\x78\x00\x00\x00\xc4\xfe\xff\xff\x04\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x01\x7a\x52\x00\x01\x7c\x1e\x01\x1b\x0c\x1f\x00\x10\x00\x00\x00\x18\x00\x00\x00\xa0\xfe\xff\xff\x08\x00\x00\x00\x00\x00\x00\x00\x14\x00\x00\x00\x2c\x00\x00\x00\x94\xfe\xff\xff\x20\x00\x00\x00\x00\x44\x0e\x10\x58\x0e\x00\x00\x24\x00\x00\x00\x44\x00\x00\x00\x9c\xfe\xff\xff\x2c\x00\x00\x00\x00\x44\x0e\x20\x48\x0c\x1d\x10\x9e\x02\x9d\x04\x54\x0c\x1f\x20\x48\x0e\x00\xde\xdd\x00\x00\x00\x00\x00\x00\x00"), -Section(".fini_array", 0x10DD0, "\xc0\x06\x00\x00\x00\x00\x00\x00"), -Section(".init_array", 0x10DC8, "\x10\x07\x00\x00\x00\x00\x00\x00"), -Section(".dynamic", 0x10DD8, "\x01\x00\x00\x00\x00\x00\x00\x00\x28\x00\x00\x00\x00\x00\x00\x00\x0c\x00\x00\x00\x00\x00\x00\x00\x80\x05\x00\x00\x00\x00\x00\x00\x0d\x00\x00\x00\x00\x00\x00\x00\x68\x07\x00\x00\x00\x00\x00\x00\x19\x00\x00\x00\x00\x00\x00\x00\xc8\x0d\x01\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x1a\x00\x00\x00\x00\x00\x00\x00\xd0\x0d\x01\x00\x00\x00\x00\x00\x1c\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\xf5\xfe\xff\x6f\x00\x00\x00\x00\x98\x02\x00\x00\x00\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x90\x03\x00\x00\x00\x00\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\xb8\x02\x00\x00\x00\x00\x00\x00\x0a\x00\x00\x00\x00\x00\x00\x00\x8d\x00\x00\x00\x00\x00\x00\x00\x0b\x00\x00\x00\x00\x00\x00\x00\x18\x00\x00\x00\x00\x00\x00\x00\x15\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\xe8\x0f\x01\x00\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x60\x00\x00\x00\x00\x00\x00\x00\x14\x00\x00\x00\x00\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x17\x00\x00\x00\x00\x00\x00\x00\x20\x05\x00\x00\x00\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x60\x04\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\xc0\x00\x00\x00\x00\x00\x00\x00\x09\x00\x00\x00\x00\x00\x00\x00\x18\x00\x00\x00\x00\x00\x00\x00\xfb\xff\xff\x6f\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\xfe\xff\xff\x6f\x00\x00\x00\x00\x30\x04\x00\x00\x00\x00\x00\x00\xff\xff\xff\x6f\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\xf0\xff\xff\x6f\x00\x00\x00\x00\x1e\x04\x00\x00\x00\x00\x00\x00\xf9\xff\xff\x6f\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".got", 0x10FB8, "\xd8\x0d\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x3c\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".got.plt", 0x10FE8, "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xa0\x05\x00\x00\x00\x00\x00\x00\xa0\x05\x00\x00\x00\x00\x00\x00\xa0\x05\x00\x00\x00\x00\x00\x00\xa0\x05\x00\x00\x00\x00\x00\x00"), -Section(".data", 0x11020, "\x00\x00\x00\x00\x00\x00\x00\x00\x28\x10\x01\x00\x00\x00\x00\x00")]), -Memmap([Annotation(Region(0x0,0x8C3), Attr("segment","02 0 2244")), -Annotation(Region(0x600,0x633), Attr("symbol","\"_start\"")), -Annotation(Region(0x0,0x102), Attr("section","\".shstrtab\"")), -Annotation(Region(0x0,0x24B), Attr("section","\".strtab\"")), -Annotation(Region(0x0,0x86F), Attr("section","\".symtab\"")), -Annotation(Region(0x0,0x46), Attr("section","\".comment\"")), -Annotation(Region(0x238,0x252), Attr("section","\".interp\"")), -Annotation(Region(0x254,0x277), Attr("section","\".note.gnu.build-id\"")), -Annotation(Region(0x278,0x297), Attr("section","\".note.ABI-tag\"")), -Annotation(Region(0x298,0x2B3), Attr("section","\".gnu.hash\"")), -Annotation(Region(0x2B8,0x38F), Attr("section","\".dynsym\"")), -Annotation(Region(0x390,0x41C), Attr("section","\".dynstr\"")), -Annotation(Region(0x41E,0x42F), Attr("section","\".gnu.version\"")), -Annotation(Region(0x430,0x45F), Attr("section","\".gnu.version_r\"")), -Annotation(Region(0x460,0x51F), Attr("section","\".rela.dyn\"")), -Annotation(Region(0x520,0x57F), Attr("section","\".rela.plt\"")), -Annotation(Region(0x580,0x597), Attr("section","\".init\"")), -Annotation(Region(0x5A0,0x5FF), Attr("section","\".plt\"")), -Annotation(Region(0x580,0x597), Attr("code-region","()")), -Annotation(Region(0x5A0,0x5FF), Attr("code-region","()")), -Annotation(Region(0x600,0x633), Attr("symbol-info","_start 0x600 52")), -Annotation(Region(0x634,0x647), Attr("symbol","\"call_weak_fn\"")), -Annotation(Region(0x634,0x647), Attr("symbol-info","call_weak_fn 0x634 20")), -Annotation(Region(0x714,0x71B), Attr("symbol","\"seven\"")), -Annotation(Region(0x600,0x767), Attr("section","\".text\"")), -Annotation(Region(0x600,0x767), Attr("code-region","()")), -Annotation(Region(0x714,0x71B), Attr("symbol-info","seven 0x714 8")), -Annotation(Region(0x71C,0x73B), Attr("symbol","\"get_call\"")), -Annotation(Region(0x71C,0x73B), Attr("symbol-info","get_call 0x71C 32")), -Annotation(Region(0x73C,0x767), Attr("symbol","\"main\"")), -Annotation(Region(0x73C,0x767), Attr("symbol-info","main 0x73C 44")), -Annotation(Region(0x768,0x77B), Attr("section","\".fini\"")), -Annotation(Region(0x768,0x77B), Attr("code-region","()")), -Annotation(Region(0x77C,0x77F), Attr("section","\".rodata\"")), -Annotation(Region(0x780,0x7CB), Attr("section","\".eh_frame_hdr\"")), -Annotation(Region(0x7D0,0x8C3), Attr("section","\".eh_frame\"")), -Annotation(Region(0x10DC8,0x1102F), Attr("segment","03 0x10DC8 624")), -Annotation(Region(0x10DD0,0x10DD7), Attr("section","\".fini_array\"")), -Annotation(Region(0x10DC8,0x10DCF), Attr("section","\".init_array\"")), -Annotation(Region(0x10DD8,0x10FB7), Attr("section","\".dynamic\"")), -Annotation(Region(0x10FB8,0x10FE7), Attr("section","\".got\"")), -Annotation(Region(0x10FE8,0x1101F), Attr("section","\".got.plt\"")), -Annotation(Region(0x11020,0x1102F), Attr("section","\".data\""))]), -Program(Tid(1_612, "%0000064c"), Attrs([]), - Subs([Sub(Tid(1_588, "@__cxa_finalize"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x5D0"), -Attr("stub","()")]), "__cxa_finalize", Args([Arg(Tid(1_613, "%0000064d"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("__cxa_finalize_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(974, "@__cxa_finalize"), - Attrs([Attr("address","0x5D0")]), Phis([]), -Defs([Def(Tid(1_222, "%000004c6"), Attrs([Attr("address","0x5D0"), -Attr("insn","adrp x16, #69632")]), Var("R16",Imm(64)), Int(69632,64)), -Def(Tid(1_229, "%000004cd"), Attrs([Attr("address","0x5D4"), -Attr("insn","ldr x17, [x16, #0x8]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(1_235, "%000004d3"), Attrs([Attr("address","0x5D8"), -Attr("insn","add x16, x16, #0x8")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(8,64)))]), Jmps([Call(Tid(1_240, "%000004d8"), - Attrs([Attr("address","0x5DC"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), -Sub(Tid(1_589, "@__do_global_dtors_aux"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x6C0")]), - "__do_global_dtors_aux", Args([Arg(Tid(1_614, "%0000064e"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("__do_global_dtors_aux_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(674, "@__do_global_dtors_aux"), - Attrs([Attr("address","0x6C0")]), Phis([]), Defs([Def(Tid(678, "%000002a6"), - Attrs([Attr("address","0x6C0"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("#3",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(18446744073709551584,64))), -Def(Tid(684, "%000002ac"), Attrs([Attr("address","0x6C0"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("#3",Imm(64)),Var("R29",Imm(64)),LittleEndian(),64)), -Def(Tid(690, "%000002b2"), Attrs([Attr("address","0x6C0"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("#3",Imm(64)),Int(8,64)),Var("R30",Imm(64)),LittleEndian(),64)), -Def(Tid(694, "%000002b6"), Attrs([Attr("address","0x6C0"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("R31",Imm(64)), -Var("#3",Imm(64))), Def(Tid(700, "%000002bc"), - Attrs([Attr("address","0x6C4"), Attr("insn","mov x29, sp")]), - Var("R29",Imm(64)), Var("R31",Imm(64))), Def(Tid(708, "%000002c4"), - Attrs([Attr("address","0x6C8"), Attr("insn","str x19, [sp, #0x10]")]), - Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(16,64)),Var("R19",Imm(64)),LittleEndian(),64)), -Def(Tid(713, "%000002c9"), Attrs([Attr("address","0x6CC"), -Attr("insn","adrp x19, #69632")]), Var("R19",Imm(64)), Int(69632,64)), -Def(Tid(720, "%000002d0"), Attrs([Attr("address","0x6D0"), -Attr("insn","ldrb w0, [x19, #0x30]")]), Var("R0",Imm(64)), -UNSIGNED(64,Load(Var("mem",Mem(64,8)),PLUS(Var("R19",Imm(64)),Int(48,64)),LittleEndian(),8)))]), -Jmps([Goto(Tid(727, "%000002d7"), Attrs([Attr("address","0x6D4"), -Attr("insn","cbnz w0, #0x28")]), - NEQ(Extract(31,0,Var("R0",Imm(64))),Int(0,32)), -Direct(Tid(725, "%000002d5"))), Goto(Tid(1_590, "%00000636"), Attrs([]), - Int(1,1), Direct(Tid(919, "%00000397")))])), Blk(Tid(919, "%00000397"), - Attrs([Attr("address","0x6D8")]), Phis([]), Defs([Def(Tid(922, "%0000039a"), - Attrs([Attr("address","0x6D8"), Attr("insn","adrp x0, #65536")]), - Var("R0",Imm(64)), Int(65536,64)), Def(Tid(929, "%000003a1"), - Attrs([Attr("address","0x6DC"), Attr("insn","ldr x0, [x0, #0xfc8]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(4040,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(935, "%000003a7"), Attrs([Attr("address","0x6E0"), -Attr("insn","cbz x0, #0x10")]), EQ(Var("R0",Imm(64)),Int(0,64)), -Direct(Tid(933, "%000003a5"))), Goto(Tid(1_591, "%00000637"), Attrs([]), - Int(1,1), Direct(Tid(958, "%000003be")))])), Blk(Tid(958, "%000003be"), - Attrs([Attr("address","0x6E4")]), Phis([]), Defs([Def(Tid(961, "%000003c1"), - Attrs([Attr("address","0x6E4"), Attr("insn","adrp x0, #69632")]), - Var("R0",Imm(64)), Int(69632,64)), Def(Tid(968, "%000003c8"), - Attrs([Attr("address","0x6E8"), Attr("insn","ldr x0, [x0, #0x28]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(40,64)),LittleEndian(),64)), -Def(Tid(973, "%000003cd"), Attrs([Attr("address","0x6EC"), -Attr("insn","bl #-0x11c")]), Var("R30",Imm(64)), Int(1776,64))]), -Jmps([Call(Tid(976, "%000003d0"), Attrs([Attr("address","0x6EC"), -Attr("insn","bl #-0x11c")]), Int(1,1), -(Direct(Tid(1_588, "@__cxa_finalize")),Direct(Tid(933, "%000003a5"))))])), -Blk(Tid(933, "%000003a5"), Attrs([Attr("address","0x6F0")]), Phis([]), -Defs([Def(Tid(941, "%000003ad"), Attrs([Attr("address","0x6F0"), -Attr("insn","bl #-0xa0")]), Var("R30",Imm(64)), Int(1780,64))]), -Jmps([Call(Tid(943, "%000003af"), Attrs([Attr("address","0x6F0"), -Attr("insn","bl #-0xa0")]), Int(1,1), -(Direct(Tid(1_602, "@deregister_tm_clones")),Direct(Tid(945, "%000003b1"))))])), -Blk(Tid(945, "%000003b1"), Attrs([Attr("address","0x6F4")]), Phis([]), -Defs([Def(Tid(948, "%000003b4"), Attrs([Attr("address","0x6F4"), -Attr("insn","mov w0, #0x1")]), Var("R0",Imm(64)), Int(1,64)), -Def(Tid(956, "%000003bc"), Attrs([Attr("address","0x6F8"), -Attr("insn","strb w0, [x19, #0x30]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R19",Imm(64)),Int(48,64)),Extract(7,0,Var("R0",Imm(64))),LittleEndian(),8))]), -Jmps([Goto(Tid(1_592, "%00000638"), Attrs([]), Int(1,1), -Direct(Tid(725, "%000002d5")))])), Blk(Tid(725, "%000002d5"), - Attrs([Attr("address","0x6FC")]), Phis([]), Defs([Def(Tid(735, "%000002df"), - Attrs([Attr("address","0x6FC"), Attr("insn","ldr x19, [sp, #0x10]")]), - Var("R19",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(16,64)),LittleEndian(),64)), -Def(Tid(742, "%000002e6"), Attrs([Attr("address","0x700"), -Attr("insn","ldp x29, x30, [sp], #0x20")]), Var("R29",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(747, "%000002eb"), Attrs([Attr("address","0x700"), -Attr("insn","ldp x29, x30, [sp], #0x20")]), Var("R30",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(751, "%000002ef"), Attrs([Attr("address","0x700"), -Attr("insn","ldp x29, x30, [sp], #0x20")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(32,64)))]), Jmps([Call(Tid(756, "%000002f4"), - Attrs([Attr("address","0x704"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), Sub(Tid(1_593, "@__libc_start_main"), - Attrs([Attr("c.proto","signed (*)(signed (*)(signed , char** , char** );* main, signed , char** , \nvoid* auxv)"), -Attr("address","0x5C0"), Attr("stub","()")]), "__libc_start_main", - Args([Arg(Tid(1_615, "%0000064f"), - Attrs([Attr("c.layout","**[ : 64]"), -Attr("c.data","Top:u64 ptr ptr"), -Attr("c.type","signed (*)(signed , char** , char** );*")]), - Var("__libc_start_main_main",Imm(64)), Var("R0",Imm(64)), In()), -Arg(Tid(1_616, "%00000650"), Attrs([Attr("c.layout","[signed : 32]"), -Attr("c.data","Top:u32"), Attr("c.type","signed")]), - Var("__libc_start_main_arg2",Imm(32)), LOW(32,Var("R1",Imm(64))), In()), -Arg(Tid(1_617, "%00000651"), Attrs([Attr("c.layout","**[char : 8]"), -Attr("c.data","Top:u8 ptr ptr"), Attr("c.type","char**")]), - Var("__libc_start_main_arg3",Imm(64)), Var("R2",Imm(64)), Both()), -Arg(Tid(1_618, "%00000652"), Attrs([Attr("c.layout","*[ : 8]"), -Attr("c.data","{} ptr"), Attr("c.type","void*")]), - Var("__libc_start_main_auxv",Imm(64)), Var("R3",Imm(64)), Both()), -Arg(Tid(1_619, "%00000653"), Attrs([Attr("c.layout","[signed : 32]"), -Attr("c.data","Top:u32"), Attr("c.type","signed")]), - Var("__libc_start_main_result",Imm(32)), LOW(32,Var("R0",Imm(64))), -Out())]), Blks([Blk(Tid(507, "@__libc_start_main"), - Attrs([Attr("address","0x5C0")]), Phis([]), -Defs([Def(Tid(1_200, "%000004b0"), Attrs([Attr("address","0x5C0"), -Attr("insn","adrp x16, #69632")]), Var("R16",Imm(64)), Int(69632,64)), -Def(Tid(1_207, "%000004b7"), Attrs([Attr("address","0x5C4"), -Attr("insn","ldr x17, [x16]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R16",Imm(64)),LittleEndian(),64)), -Def(Tid(1_213, "%000004bd"), Attrs([Attr("address","0x5C8"), -Attr("insn","add x16, x16, #0x0")]), Var("R16",Imm(64)), -Var("R16",Imm(64)))]), Jmps([Call(Tid(1_218, "%000004c2"), - Attrs([Attr("address","0x5CC"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), Sub(Tid(1_594, "@_fini"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x768")]), - "_fini", Args([Arg(Tid(1_620, "%00000654"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("_fini_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(31, "@_fini"), - Attrs([Attr("address","0x768")]), Phis([]), Defs([Def(Tid(37, "%00000025"), - Attrs([Attr("address","0x76C"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("#0",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(18446744073709551600,64))), -Def(Tid(43, "%0000002b"), Attrs([Attr("address","0x76C"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("#0",Imm(64)),Var("R29",Imm(64)),LittleEndian(),64)), -Def(Tid(49, "%00000031"), Attrs([Attr("address","0x76C"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("#0",Imm(64)),Int(8,64)),Var("R30",Imm(64)),LittleEndian(),64)), -Def(Tid(53, "%00000035"), Attrs([Attr("address","0x76C"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("R31",Imm(64)), -Var("#0",Imm(64))), Def(Tid(59, "%0000003b"), Attrs([Attr("address","0x770"), -Attr("insn","mov x29, sp")]), Var("R29",Imm(64)), Var("R31",Imm(64))), -Def(Tid(66, "%00000042"), Attrs([Attr("address","0x774"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R29",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(71, "%00000047"), Attrs([Attr("address","0x774"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R30",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(75, "%0000004b"), Attrs([Attr("address","0x774"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(16,64)))]), Jmps([Call(Tid(80, "%00000050"), - Attrs([Attr("address","0x778"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), Sub(Tid(1_595, "@_init"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x580")]), - "_init", Args([Arg(Tid(1_621, "%00000655"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("_init_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(1_409, "@_init"), - Attrs([Attr("address","0x580")]), Phis([]), -Defs([Def(Tid(1_415, "%00000587"), Attrs([Attr("address","0x584"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("#7",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(18446744073709551600,64))), -Def(Tid(1_421, "%0000058d"), Attrs([Attr("address","0x584"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("#7",Imm(64)),Var("R29",Imm(64)),LittleEndian(),64)), -Def(Tid(1_427, "%00000593"), Attrs([Attr("address","0x584"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("#7",Imm(64)),Int(8,64)),Var("R30",Imm(64)),LittleEndian(),64)), -Def(Tid(1_431, "%00000597"), Attrs([Attr("address","0x584"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("R31",Imm(64)), -Var("#7",Imm(64))), Def(Tid(1_437, "%0000059d"), - Attrs([Attr("address","0x588"), Attr("insn","mov x29, sp")]), - Var("R29",Imm(64)), Var("R31",Imm(64))), Def(Tid(1_442, "%000005a2"), - Attrs([Attr("address","0x58C"), Attr("insn","bl #0xa8")]), - Var("R30",Imm(64)), Int(1424,64))]), Jmps([Call(Tid(1_444, "%000005a4"), - Attrs([Attr("address","0x58C"), Attr("insn","bl #0xa8")]), Int(1,1), -(Direct(Tid(1_600, "@call_weak_fn")),Direct(Tid(1_446, "%000005a6"))))])), -Blk(Tid(1_446, "%000005a6"), Attrs([Attr("address","0x590")]), Phis([]), -Defs([Def(Tid(1_451, "%000005ab"), Attrs([Attr("address","0x590"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R29",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(1_456, "%000005b0"), Attrs([Attr("address","0x590"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R30",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(1_460, "%000005b4"), Attrs([Attr("address","0x590"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(16,64)))]), Jmps([Call(Tid(1_465, "%000005b9"), - Attrs([Attr("address","0x594"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), Sub(Tid(1_596, "@_start"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x600"), -Attr("stub","()"), Attr("entry-point","()")]), "_start", - Args([Arg(Tid(1_622, "%00000656"), Attrs([Attr("c.layout","[signed : 32]"), -Attr("c.data","Top:u32"), Attr("c.type","signed")]), - Var("_start_result",Imm(32)), LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(444, "@_start"), Attrs([Attr("address","0x600")]), Phis([]), -Defs([Def(Tid(449, "%000001c1"), Attrs([Attr("address","0x604"), -Attr("insn","mov x29, #0x0")]), Var("R29",Imm(64)), Int(0,64)), -Def(Tid(454, "%000001c6"), Attrs([Attr("address","0x608"), -Attr("insn","mov x30, #0x0")]), Var("R30",Imm(64)), Int(0,64)), -Def(Tid(460, "%000001cc"), Attrs([Attr("address","0x60C"), -Attr("insn","mov x5, x0")]), Var("R5",Imm(64)), Var("R0",Imm(64))), -Def(Tid(467, "%000001d3"), Attrs([Attr("address","0x610"), -Attr("insn","ldr x1, [sp]")]), Var("R1",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(473, "%000001d9"), Attrs([Attr("address","0x614"), -Attr("insn","add x2, sp, #0x8")]), Var("R2",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(8,64))), Def(Tid(479, "%000001df"), - Attrs([Attr("address","0x618"), Attr("insn","mov x6, sp")]), - Var("R6",Imm(64)), Var("R31",Imm(64))), Def(Tid(484, "%000001e4"), - Attrs([Attr("address","0x61C"), Attr("insn","adrp x0, #65536")]), - Var("R0",Imm(64)), Int(65536,64)), Def(Tid(491, "%000001eb"), - Attrs([Attr("address","0x620"), Attr("insn","ldr x0, [x0, #0xfd8]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(4056,64)),LittleEndian(),64)), -Def(Tid(496, "%000001f0"), Attrs([Attr("address","0x624"), -Attr("insn","mov x3, #0x0")]), Var("R3",Imm(64)), Int(0,64)), -Def(Tid(501, "%000001f5"), Attrs([Attr("address","0x628"), -Attr("insn","mov x4, #0x0")]), Var("R4",Imm(64)), Int(0,64)), -Def(Tid(506, "%000001fa"), Attrs([Attr("address","0x62C"), -Attr("insn","bl #-0x6c")]), Var("R30",Imm(64)), Int(1584,64))]), -Jmps([Call(Tid(509, "%000001fd"), Attrs([Attr("address","0x62C"), -Attr("insn","bl #-0x6c")]), Int(1,1), -(Direct(Tid(1_593, "@__libc_start_main")),Direct(Tid(511, "%000001ff"))))])), -Blk(Tid(511, "%000001ff"), Attrs([Attr("address","0x630")]), Phis([]), -Defs([Def(Tid(514, "%00000202"), Attrs([Attr("address","0x630"), -Attr("insn","bl #-0x40")]), Var("R30",Imm(64)), Int(1588,64))]), -Jmps([Call(Tid(517, "%00000205"), Attrs([Attr("address","0x630"), -Attr("insn","bl #-0x40")]), Int(1,1), -(Direct(Tid(1_599, "@abort")),Direct(Tid(1_597, "%0000063d"))))])), -Blk(Tid(1_597, "%0000063d"), Attrs([]), Phis([]), Defs([]), -Jmps([Call(Tid(1_598, "%0000063e"), Attrs([]), Int(1,1), -(Direct(Tid(1_600, "@call_weak_fn")),))]))])), Sub(Tid(1_599, "@abort"), - Attrs([Attr("noreturn","()"), Attr("c.proto","void (*)(void)"), -Attr("address","0x5F0"), Attr("stub","()")]), "abort", Args([]), -Blks([Blk(Tid(515, "@abort"), Attrs([Attr("address","0x5F0")]), Phis([]), -Defs([Def(Tid(1_266, "%000004f2"), Attrs([Attr("address","0x5F0"), -Attr("insn","adrp x16, #69632")]), Var("R16",Imm(64)), Int(69632,64)), -Def(Tid(1_273, "%000004f9"), Attrs([Attr("address","0x5F4"), -Attr("insn","ldr x17, [x16, #0x18]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(24,64)),LittleEndian(),64)), -Def(Tid(1_279, "%000004ff"), Attrs([Attr("address","0x5F8"), -Attr("insn","add x16, x16, #0x18")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(24,64)))]), Jmps([Call(Tid(1_284, "%00000504"), - Attrs([Attr("address","0x5FC"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), Sub(Tid(1_600, "@call_weak_fn"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x634")]), - "call_weak_fn", Args([Arg(Tid(1_623, "%00000657"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("call_weak_fn_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(519, "@call_weak_fn"), - Attrs([Attr("address","0x634")]), Phis([]), Defs([Def(Tid(522, "%0000020a"), - Attrs([Attr("address","0x634"), Attr("insn","adrp x0, #65536")]), - Var("R0",Imm(64)), Int(65536,64)), Def(Tid(529, "%00000211"), - Attrs([Attr("address","0x638"), Attr("insn","ldr x0, [x0, #0xfd0]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(4048,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(535, "%00000217"), Attrs([Attr("address","0x63C"), -Attr("insn","cbz x0, #0x8")]), EQ(Var("R0",Imm(64)),Int(0,64)), -Direct(Tid(533, "%00000215"))), Goto(Tid(1_601, "%00000641"), Attrs([]), - Int(1,1), Direct(Tid(1_038, "%0000040e")))])), Blk(Tid(533, "%00000215"), - Attrs([Attr("address","0x644")]), Phis([]), Defs([]), -Jmps([Call(Tid(541, "%0000021d"), Attrs([Attr("address","0x644"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))])), -Blk(Tid(1_038, "%0000040e"), Attrs([Attr("address","0x640")]), Phis([]), -Defs([]), Jmps([Goto(Tid(1_041, "%00000411"), Attrs([Attr("address","0x640"), -Attr("insn","b #-0x60")]), Int(1,1), -Direct(Tid(1_039, "@__gmon_start__")))])), Blk(Tid(1_039, "@__gmon_start__"), - Attrs([Attr("address","0x5E0")]), Phis([]), -Defs([Def(Tid(1_244, "%000004dc"), Attrs([Attr("address","0x5E0"), -Attr("insn","adrp x16, #69632")]), Var("R16",Imm(64)), Int(69632,64)), -Def(Tid(1_251, "%000004e3"), Attrs([Attr("address","0x5E4"), -Attr("insn","ldr x17, [x16, #0x10]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(16,64)),LittleEndian(),64)), -Def(Tid(1_257, "%000004e9"), Attrs([Attr("address","0x5E8"), -Attr("insn","add x16, x16, #0x10")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(16,64)))]), Jmps([Call(Tid(1_262, "%000004ee"), - Attrs([Attr("address","0x5EC"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), -Sub(Tid(1_602, "@deregister_tm_clones"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x650")]), - "deregister_tm_clones", Args([Arg(Tid(1_624, "%00000658"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("deregister_tm_clones_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(547, "@deregister_tm_clones"), - Attrs([Attr("address","0x650")]), Phis([]), Defs([Def(Tid(550, "%00000226"), - Attrs([Attr("address","0x650"), Attr("insn","adrp x0, #69632")]), - Var("R0",Imm(64)), Int(69632,64)), Def(Tid(556, "%0000022c"), - Attrs([Attr("address","0x654"), Attr("insn","add x0, x0, #0x30")]), - Var("R0",Imm(64)), PLUS(Var("R0",Imm(64)),Int(48,64))), -Def(Tid(561, "%00000231"), Attrs([Attr("address","0x658"), -Attr("insn","adrp x1, #69632")]), Var("R1",Imm(64)), Int(69632,64)), -Def(Tid(567, "%00000237"), Attrs([Attr("address","0x65C"), -Attr("insn","add x1, x1, #0x30")]), Var("R1",Imm(64)), -PLUS(Var("R1",Imm(64)),Int(48,64))), Def(Tid(573, "%0000023d"), - Attrs([Attr("address","0x660"), Attr("insn","cmp x1, x0")]), - Var("#1",Imm(64)), NOT(Var("R0",Imm(64)))), Def(Tid(578, "%00000242"), - Attrs([Attr("address","0x660"), Attr("insn","cmp x1, x0")]), - Var("#2",Imm(64)), PLUS(Var("R1",Imm(64)),NOT(Var("R0",Imm(64))))), -Def(Tid(584, "%00000248"), Attrs([Attr("address","0x660"), -Attr("insn","cmp x1, x0")]), Var("VF",Imm(1)), -NEQ(SIGNED(65,PLUS(Var("#2",Imm(64)),Int(1,64))),PLUS(PLUS(SIGNED(65,Var("R1",Imm(64))),SIGNED(65,Var("#1",Imm(64)))),Int(1,65)))), -Def(Tid(590, "%0000024e"), Attrs([Attr("address","0x660"), -Attr("insn","cmp x1, x0")]), Var("CF",Imm(1)), -NEQ(UNSIGNED(65,PLUS(Var("#2",Imm(64)),Int(1,64))),PLUS(PLUS(UNSIGNED(65,Var("R1",Imm(64))),UNSIGNED(65,Var("#1",Imm(64)))),Int(1,65)))), -Def(Tid(594, "%00000252"), Attrs([Attr("address","0x660"), -Attr("insn","cmp x1, x0")]), Var("ZF",Imm(1)), -EQ(PLUS(Var("#2",Imm(64)),Int(1,64)),Int(0,64))), Def(Tid(598, "%00000256"), - Attrs([Attr("address","0x660"), Attr("insn","cmp x1, x0")]), - Var("NF",Imm(1)), Extract(63,63,PLUS(Var("#2",Imm(64)),Int(1,64))))]), -Jmps([Goto(Tid(604, "%0000025c"), Attrs([Attr("address","0x664"), -Attr("insn","b.eq #0x18")]), EQ(Var("ZF",Imm(1)),Int(1,1)), -Direct(Tid(602, "%0000025a"))), Goto(Tid(1_603, "%00000643"), Attrs([]), - Int(1,1), Direct(Tid(1_008, "%000003f0")))])), Blk(Tid(1_008, "%000003f0"), - Attrs([Attr("address","0x668")]), Phis([]), -Defs([Def(Tid(1_011, "%000003f3"), Attrs([Attr("address","0x668"), -Attr("insn","adrp x1, #65536")]), Var("R1",Imm(64)), Int(65536,64)), -Def(Tid(1_018, "%000003fa"), Attrs([Attr("address","0x66C"), -Attr("insn","ldr x1, [x1, #0xfc0]")]), Var("R1",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R1",Imm(64)),Int(4032,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(1_023, "%000003ff"), Attrs([Attr("address","0x670"), -Attr("insn","cbz x1, #0xc")]), EQ(Var("R1",Imm(64)),Int(0,64)), -Direct(Tid(602, "%0000025a"))), Goto(Tid(1_604, "%00000644"), Attrs([]), - Int(1,1), Direct(Tid(1_027, "%00000403")))])), Blk(Tid(602, "%0000025a"), - Attrs([Attr("address","0x67C")]), Phis([]), Defs([]), -Jmps([Call(Tid(610, "%00000262"), Attrs([Attr("address","0x67C"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))])), -Blk(Tid(1_027, "%00000403"), Attrs([Attr("address","0x674")]), Phis([]), -Defs([Def(Tid(1_031, "%00000407"), Attrs([Attr("address","0x674"), -Attr("insn","mov x16, x1")]), Var("R16",Imm(64)), Var("R1",Imm(64)))]), -Jmps([Call(Tid(1_036, "%0000040c"), Attrs([Attr("address","0x678"), -Attr("insn","br x16")]), Int(1,1), (Indirect(Var("R16",Imm(64))),))]))])), -Sub(Tid(1_605, "@frame_dummy"), Attrs([Attr("c.proto","signed (*)(void)"), -Attr("address","0x710")]), "frame_dummy", Args([Arg(Tid(1_625, "%00000659"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("frame_dummy_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(762, "@frame_dummy"), - Attrs([Attr("address","0x710")]), Phis([]), Defs([]), -Jmps([Call(Tid(764, "%000002fc"), Attrs([Attr("address","0x710"), -Attr("insn","b #-0x90")]), Int(1,1), -(Direct(Tid(1_608, "@register_tm_clones")),))]))])), -Sub(Tid(1_606, "@get_call"), Attrs([Attr("c.proto","signed (*)(void)"), -Attr("address","0x71C")]), "get_call", Args([Arg(Tid(1_626, "%0000065a"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("get_call_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(776, "@get_call"), - Attrs([Attr("address","0x71C")]), Phis([]), Defs([Def(Tid(780, "%0000030c"), - Attrs([Attr("address","0x71C"), Attr("insn","sub sp, sp, #0x10")]), - Var("R31",Imm(64)), PLUS(Var("R31",Imm(64)),Int(18446744073709551600,64))), -Def(Tid(788, "%00000314"), Attrs([Attr("address","0x720"), -Attr("insn","str x0, [sp, #0x8]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),Var("R0",Imm(64)),LittleEndian(),64)), -Def(Tid(795, "%0000031b"), Attrs([Attr("address","0x724"), -Attr("insn","ldr x9, [sp, #0x8]")]), Var("R9",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(800, "%00000320"), Attrs([Attr("address","0x728"), -Attr("insn","adrp x8, #0")]), Var("R8",Imm(64)), Int(0,64)), -Def(Tid(806, "%00000326"), Attrs([Attr("address","0x72C"), -Attr("insn","add x8, x8, #0x714")]), Var("R8",Imm(64)), -PLUS(Var("R8",Imm(64)),Int(1812,64))), Def(Tid(814, "%0000032e"), - Attrs([Attr("address","0x730"), Attr("insn","str x8, [x9]")]), - Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("R9",Imm(64)),Var("R8",Imm(64)),LittleEndian(),64)), -Def(Tid(820, "%00000334"), Attrs([Attr("address","0x734"), -Attr("insn","add sp, sp, #0x10")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(16,64)))]), Jmps([Call(Tid(825, "%00000339"), - Attrs([Attr("address","0x738"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), Sub(Tid(1_607, "@main"), - Attrs([Attr("c.proto","signed (*)(signed argc, const char** argv)"), -Attr("address","0x73C")]), "main", Args([Arg(Tid(1_627, "%0000065b"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("main_argc",Imm(32)), -LOW(32,Var("R0",Imm(64))), In()), Arg(Tid(1_628, "%0000065c"), - Attrs([Attr("c.layout","**[char : 8]"), Attr("c.data","Top:u8 ptr ptr"), -Attr("c.type"," const char**")]), Var("main_argv",Imm(64)), -Var("R1",Imm(64)), Both()), Arg(Tid(1_629, "%0000065d"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("main_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(827, "@main"), - Attrs([Attr("address","0x73C")]), Phis([]), Defs([Def(Tid(831, "%0000033f"), - Attrs([Attr("address","0x73C"), Attr("insn","sub sp, sp, #0x20")]), - Var("R31",Imm(64)), PLUS(Var("R31",Imm(64)),Int(18446744073709551584,64))), -Def(Tid(837, "%00000345"), Attrs([Attr("address","0x740"), -Attr("insn","stp x29, x30, [sp, #0x10]")]), Var("#4",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(16,64))), Def(Tid(843, "%0000034b"), - Attrs([Attr("address","0x740"), Attr("insn","stp x29, x30, [sp, #0x10]")]), - Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("#4",Imm(64)),Var("R29",Imm(64)),LittleEndian(),64)), -Def(Tid(849, "%00000351"), Attrs([Attr("address","0x740"), -Attr("insn","stp x29, x30, [sp, #0x10]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("#4",Imm(64)),Int(8,64)),Var("R30",Imm(64)),LittleEndian(),64)), -Def(Tid(855, "%00000357"), Attrs([Attr("address","0x744"), -Attr("insn","add x29, sp, #0x10")]), Var("R29",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(16,64))), Def(Tid(862, "%0000035e"), - Attrs([Attr("address","0x748"), Attr("insn","stur wzr, [x29, #-0x4]")]), - Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R29",Imm(64)),Int(18446744073709551612,64)),Int(0,32),LittleEndian(),32)), -Def(Tid(868, "%00000364"), Attrs([Attr("address","0x74C"), -Attr("insn","mov x0, sp")]), Var("R0",Imm(64)), Var("R31",Imm(64))), -Def(Tid(873, "%00000369"), Attrs([Attr("address","0x750"), -Attr("insn","bl #-0x34")]), Var("R30",Imm(64)), Int(1876,64))]), -Jmps([Call(Tid(875, "%0000036b"), Attrs([Attr("address","0x750"), -Attr("insn","bl #-0x34")]), Int(1,1), -(Direct(Tid(1_606, "@get_call")),Direct(Tid(877, "%0000036d"))))])), -Blk(Tid(877, "%0000036d"), Attrs([Attr("address","0x754")]), Phis([]), -Defs([Def(Tid(882, "%00000372"), Attrs([Attr("address","0x754"), -Attr("insn","ldr x8, [sp]")]), Var("R8",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(887, "%00000377"), Attrs([Attr("address","0x758"), -Attr("insn","blr x8")]), Var("R30",Imm(64)), Int(1884,64))]), -Jmps([Call(Tid(890, "%0000037a"), Attrs([Attr("address","0x758"), -Attr("insn","blr x8")]), Int(1,1), -(Indirect(Var("R8",Imm(64))),Direct(Tid(892, "%0000037c"))))])), -Blk(Tid(892, "%0000037c"), Attrs([Attr("address","0x75C")]), Phis([]), -Defs([Def(Tid(896, "%00000380"), Attrs([Attr("address","0x75C"), -Attr("insn","ldp x29, x30, [sp, #0x10]")]), Var("#5",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(16,64))), Def(Tid(901, "%00000385"), - Attrs([Attr("address","0x75C"), Attr("insn","ldp x29, x30, [sp, #0x10]")]), - Var("R29",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("#5",Imm(64)),LittleEndian(),64)), -Def(Tid(906, "%0000038a"), Attrs([Attr("address","0x75C"), -Attr("insn","ldp x29, x30, [sp, #0x10]")]), Var("R30",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("#5",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(912, "%00000390"), Attrs([Attr("address","0x760"), -Attr("insn","add sp, sp, #0x20")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(32,64)))]), Jmps([Call(Tid(917, "%00000395"), - Attrs([Attr("address","0x764"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), -Sub(Tid(1_608, "@register_tm_clones"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x680")]), - "register_tm_clones", Args([Arg(Tid(1_630, "%0000065e"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("register_tm_clones_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(612, "@register_tm_clones"), Attrs([Attr("address","0x680")]), - Phis([]), Defs([Def(Tid(615, "%00000267"), Attrs([Attr("address","0x680"), -Attr("insn","adrp x0, #69632")]), Var("R0",Imm(64)), Int(69632,64)), -Def(Tid(621, "%0000026d"), Attrs([Attr("address","0x684"), -Attr("insn","add x0, x0, #0x30")]), Var("R0",Imm(64)), -PLUS(Var("R0",Imm(64)),Int(48,64))), Def(Tid(626, "%00000272"), - Attrs([Attr("address","0x688"), Attr("insn","adrp x1, #69632")]), - Var("R1",Imm(64)), Int(69632,64)), Def(Tid(632, "%00000278"), - Attrs([Attr("address","0x68C"), Attr("insn","add x1, x1, #0x30")]), - Var("R1",Imm(64)), PLUS(Var("R1",Imm(64)),Int(48,64))), -Def(Tid(639, "%0000027f"), Attrs([Attr("address","0x690"), -Attr("insn","sub x1, x1, x0")]), Var("R1",Imm(64)), -PLUS(PLUS(Var("R1",Imm(64)),NOT(Var("R0",Imm(64)))),Int(1,64))), -Def(Tid(645, "%00000285"), Attrs([Attr("address","0x694"), -Attr("insn","lsr x2, x1, #63")]), Var("R2",Imm(64)), -Concat(Int(0,63),Extract(63,63,Var("R1",Imm(64))))), -Def(Tid(652, "%0000028c"), Attrs([Attr("address","0x698"), -Attr("insn","add x1, x2, x1, asr #3")]), Var("R1",Imm(64)), -PLUS(Var("R2",Imm(64)),ARSHIFT(Var("R1",Imm(64)),Int(3,3)))), -Def(Tid(658, "%00000292"), Attrs([Attr("address","0x69C"), -Attr("insn","asr x1, x1, #1")]), Var("R1",Imm(64)), -SIGNED(64,Extract(63,1,Var("R1",Imm(64)))))]), -Jmps([Goto(Tid(664, "%00000298"), Attrs([Attr("address","0x6A0"), -Attr("insn","cbz x1, #0x18")]), EQ(Var("R1",Imm(64)),Int(0,64)), -Direct(Tid(662, "%00000296"))), Goto(Tid(1_609, "%00000649"), Attrs([]), - Int(1,1), Direct(Tid(978, "%000003d2")))])), Blk(Tid(978, "%000003d2"), - Attrs([Attr("address","0x6A4")]), Phis([]), Defs([Def(Tid(981, "%000003d5"), - Attrs([Attr("address","0x6A4"), Attr("insn","adrp x2, #65536")]), - Var("R2",Imm(64)), Int(65536,64)), Def(Tid(988, "%000003dc"), - Attrs([Attr("address","0x6A8"), Attr("insn","ldr x2, [x2, #0xfe0]")]), - Var("R2",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R2",Imm(64)),Int(4064,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(993, "%000003e1"), Attrs([Attr("address","0x6AC"), -Attr("insn","cbz x2, #0xc")]), EQ(Var("R2",Imm(64)),Int(0,64)), -Direct(Tid(662, "%00000296"))), Goto(Tid(1_610, "%0000064a"), Attrs([]), - Int(1,1), Direct(Tid(997, "%000003e5")))])), Blk(Tid(662, "%00000296"), - Attrs([Attr("address","0x6B8")]), Phis([]), Defs([]), -Jmps([Call(Tid(670, "%0000029e"), Attrs([Attr("address","0x6B8"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))])), -Blk(Tid(997, "%000003e5"), Attrs([Attr("address","0x6B0")]), Phis([]), -Defs([Def(Tid(1_001, "%000003e9"), Attrs([Attr("address","0x6B0"), -Attr("insn","mov x16, x2")]), Var("R16",Imm(64)), Var("R2",Imm(64)))]), -Jmps([Call(Tid(1_006, "%000003ee"), Attrs([Attr("address","0x6B4"), -Attr("insn","br x16")]), Int(1,1), (Indirect(Var("R16",Imm(64))),))]))])), -Sub(Tid(1_611, "@seven"), Attrs([Attr("c.proto","signed (*)(void)"), -Attr("address","0x714")]), "seven", Args([Arg(Tid(1_631, "%0000065f"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("seven_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(766, "@seven"), - Attrs([Attr("address","0x714")]), Phis([]), Defs([Def(Tid(769, "%00000301"), - Attrs([Attr("address","0x714"), Attr("insn","mov w0, #0x7")]), - Var("R0",Imm(64)), Int(7,64))]), Jmps([Call(Tid(774, "%00000306"), - Attrs([Attr("address","0x718"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))]))]))) \ No newline at end of file diff --git a/src/test/indirect_calls/indirect_call_outparam/clang/indirect_call_outparam.bir b/src/test/indirect_calls/indirect_call_outparam/clang/indirect_call_outparam.bir deleted file mode 100644 index 0dd03c938..000000000 --- a/src/test/indirect_calls/indirect_call_outparam/clang/indirect_call_outparam.bir +++ /dev/null @@ -1,263 +0,0 @@ -0000064c: program -00000634: sub __cxa_finalize(__cxa_finalize_result) -0000064d: __cxa_finalize_result :: out u32 = low:32[R0] - -000003ce: -000004c6: R16 := 0x11000 -000004cd: R17 := mem[R16 + 8, el]:u64 -000004d3: R16 := R16 + 8 -000004d8: call R17 with noreturn - -00000635: sub __do_global_dtors_aux(__do_global_dtors_aux_result) -0000064e: __do_global_dtors_aux_result :: out u32 = low:32[R0] - -000002a2: -000002a6: #3 := R31 - 0x20 -000002ac: mem := mem with [#3, el]:u64 <- R29 -000002b2: mem := mem with [#3 + 8, el]:u64 <- R30 -000002b6: R31 := #3 -000002bc: R29 := R31 -000002c4: mem := mem with [R31 + 0x10, el]:u64 <- R19 -000002c9: R19 := 0x11000 -000002d0: R0 := pad:64[mem[R19 + 0x30]] -000002d7: when 31:0[R0] <> 0 goto %000002d5 -00000636: goto %00000397 - -00000397: -0000039a: R0 := 0x10000 -000003a1: R0 := mem[R0 + 0xFC8, el]:u64 -000003a7: when R0 = 0 goto %000003a5 -00000637: goto %000003be - -000003be: -000003c1: R0 := 0x11000 -000003c8: R0 := mem[R0 + 0x28, el]:u64 -000003cd: R30 := 0x6F0 -000003d0: call @__cxa_finalize with return %000003a5 - -000003a5: -000003ad: R30 := 0x6F4 -000003af: call @deregister_tm_clones with return %000003b1 - -000003b1: -000003b4: R0 := 1 -000003bc: mem := mem with [R19 + 0x30] <- 7:0[R0] -00000638: goto %000002d5 - -000002d5: -000002df: R19 := mem[R31 + 0x10, el]:u64 -000002e6: R29 := mem[R31, el]:u64 -000002eb: R30 := mem[R31 + 8, el]:u64 -000002ef: R31 := R31 + 0x20 -000002f4: call R30 with noreturn - -00000639: sub __libc_start_main(__libc_start_main_main, __libc_start_main_arg2, __libc_start_main_arg3, __libc_start_main_auxv, __libc_start_main_result) -0000064f: __libc_start_main_main :: in u64 = R0 -00000650: __libc_start_main_arg2 :: in u32 = low:32[R1] -00000651: __libc_start_main_arg3 :: in out u64 = R2 -00000652: __libc_start_main_auxv :: in out u64 = R3 -00000653: __libc_start_main_result :: out u32 = low:32[R0] - -000001fb: -000004b0: R16 := 0x11000 -000004b7: R17 := mem[R16, el]:u64 -000004bd: R16 := R16 -000004c2: call R17 with noreturn - -0000063a: sub _fini(_fini_result) -00000654: _fini_result :: out u32 = low:32[R0] - -0000001f: -00000025: #0 := R31 - 0x10 -0000002b: mem := mem with [#0, el]:u64 <- R29 -00000031: mem := mem with [#0 + 8, el]:u64 <- R30 -00000035: R31 := #0 -0000003b: R29 := R31 -00000042: R29 := mem[R31, el]:u64 -00000047: R30 := mem[R31 + 8, el]:u64 -0000004b: R31 := R31 + 0x10 -00000050: call R30 with noreturn - -0000063b: sub _init(_init_result) -00000655: _init_result :: out u32 = low:32[R0] - -00000581: -00000587: #7 := R31 - 0x10 -0000058d: mem := mem with [#7, el]:u64 <- R29 -00000593: mem := mem with [#7 + 8, el]:u64 <- R30 -00000597: R31 := #7 -0000059d: R29 := R31 -000005a2: R30 := 0x590 -000005a4: call @call_weak_fn with return %000005a6 - -000005a6: -000005ab: R29 := mem[R31, el]:u64 -000005b0: R30 := mem[R31 + 8, el]:u64 -000005b4: R31 := R31 + 0x10 -000005b9: call R30 with noreturn - -0000063c: sub _start(_start_result) -00000656: _start_result :: out u32 = low:32[R0] - -000001bc: -000001c1: R29 := 0 -000001c6: R30 := 0 -000001cc: R5 := R0 -000001d3: R1 := mem[R31, el]:u64 -000001d9: R2 := R31 + 8 -000001df: R6 := R31 -000001e4: R0 := 0x10000 -000001eb: R0 := mem[R0 + 0xFD8, el]:u64 -000001f0: R3 := 0 -000001f5: R4 := 0 -000001fa: R30 := 0x630 -000001fd: call @__libc_start_main with return %000001ff - -000001ff: -00000202: R30 := 0x634 -00000205: call @abort with return %0000063d - -0000063d: -0000063e: call @call_weak_fn with noreturn - -0000063f: sub abort() - - -00000203: -000004f2: R16 := 0x11000 -000004f9: R17 := mem[R16 + 0x18, el]:u64 -000004ff: R16 := R16 + 0x18 -00000504: call R17 with noreturn - -00000640: sub call_weak_fn(call_weak_fn_result) -00000657: call_weak_fn_result :: out u32 = low:32[R0] - -00000207: -0000020a: R0 := 0x10000 -00000211: R0 := mem[R0 + 0xFD0, el]:u64 -00000217: when R0 = 0 goto %00000215 -00000641: goto %0000040e - -00000215: -0000021d: call R30 with noreturn - -0000040e: -00000411: goto @__gmon_start__ - -0000040f: -000004dc: R16 := 0x11000 -000004e3: R17 := mem[R16 + 0x10, el]:u64 -000004e9: R16 := R16 + 0x10 -000004ee: call R17 with noreturn - -00000642: sub deregister_tm_clones(deregister_tm_clones_result) -00000658: deregister_tm_clones_result :: out u32 = low:32[R0] - -00000223: -00000226: R0 := 0x11000 -0000022c: R0 := R0 + 0x30 -00000231: R1 := 0x11000 -00000237: R1 := R1 + 0x30 -0000023d: #1 := ~R0 -00000242: #2 := R1 + ~R0 -00000248: VF := extend:65[#2 + 1] <> extend:65[R1] + extend:65[#1] + 1 -0000024e: CF := pad:65[#2 + 1] <> pad:65[R1] + pad:65[#1] + 1 -00000252: ZF := #2 + 1 = 0 -00000256: NF := 63:63[#2 + 1] -0000025c: when ZF goto %0000025a -00000643: goto %000003f0 - -000003f0: -000003f3: R1 := 0x10000 -000003fa: R1 := mem[R1 + 0xFC0, el]:u64 -000003ff: when R1 = 0 goto %0000025a -00000644: goto %00000403 - -0000025a: -00000262: call R30 with noreturn - -00000403: -00000407: R16 := R1 -0000040c: call R16 with noreturn - -00000645: sub frame_dummy(frame_dummy_result) -00000659: frame_dummy_result :: out u32 = low:32[R0] - -000002fa: -000002fc: call @register_tm_clones with noreturn - -00000646: sub get_call(get_call_result) -0000065a: get_call_result :: out u32 = low:32[R0] - -00000308: -0000030c: R31 := R31 - 0x10 -00000314: mem := mem with [R31 + 8, el]:u64 <- R0 -0000031b: R9 := mem[R31 + 8, el]:u64 -00000320: R8 := 0 -00000326: R8 := R8 + 0x714 -0000032e: mem := mem with [R9, el]:u64 <- R8 -00000334: R31 := R31 + 0x10 -00000339: call R30 with noreturn - -00000647: sub main(main_argc, main_argv, main_result) -0000065b: main_argc :: in u32 = low:32[R0] -0000065c: main_argv :: in out u64 = R1 -0000065d: main_result :: out u32 = low:32[R0] - -0000033b: -0000033f: R31 := R31 - 0x20 -00000345: #4 := R31 + 0x10 -0000034b: mem := mem with [#4, el]:u64 <- R29 -00000351: mem := mem with [#4 + 8, el]:u64 <- R30 -00000357: R29 := R31 + 0x10 -0000035e: mem := mem with [R29 - 4, el]:u32 <- 0 -00000364: R0 := R31 -00000369: R30 := 0x754 -0000036b: call @get_call with return %0000036d - -0000036d: -00000372: R8 := mem[R31, el]:u64 -00000377: R30 := 0x75C -0000037a: call R8 with return %0000037c - -0000037c: -00000380: #5 := R31 + 0x10 -00000385: R29 := mem[#5, el]:u64 -0000038a: R30 := mem[#5 + 8, el]:u64 -00000390: R31 := R31 + 0x20 -00000395: call R30 with noreturn - -00000648: sub register_tm_clones(register_tm_clones_result) -0000065e: register_tm_clones_result :: out u32 = low:32[R0] - -00000264: -00000267: R0 := 0x11000 -0000026d: R0 := R0 + 0x30 -00000272: R1 := 0x11000 -00000278: R1 := R1 + 0x30 -0000027f: R1 := R1 + ~R0 + 1 -00000285: R2 := 0.63:63[R1] -0000028c: R1 := R2 + (R1 ~>> 3) -00000292: R1 := extend:64[63:1[R1]] -00000298: when R1 = 0 goto %00000296 -00000649: goto %000003d2 - -000003d2: -000003d5: R2 := 0x10000 -000003dc: R2 := mem[R2 + 0xFE0, el]:u64 -000003e1: when R2 = 0 goto %00000296 -0000064a: goto %000003e5 - -00000296: -0000029e: call R30 with noreturn - -000003e5: -000003e9: R16 := R2 -000003ee: call R16 with noreturn - -0000064b: sub seven(seven_result) -0000065f: seven_result :: out u32 = low:32[R0] - -000002fe: -00000301: R0 := 7 -00000306: call R30 with noreturn diff --git a/src/test/indirect_calls/indirect_call_outparam/clang/indirect_call_outparam.gts b/src/test/indirect_calls/indirect_call_outparam/clang/indirect_call_outparam.gts deleted file mode 100644 index 799e655c3..000000000 Binary files a/src/test/indirect_calls/indirect_call_outparam/clang/indirect_call_outparam.gts and /dev/null differ diff --git a/src/test/indirect_calls/indirect_call_outparam/clang/indirect_call_outparam.md5sum b/src/test/indirect_calls/indirect_call_outparam/clang/indirect_call_outparam.md5sum new file mode 100644 index 000000000..249bcf7f3 --- /dev/null +++ b/src/test/indirect_calls/indirect_call_outparam/clang/indirect_call_outparam.md5sum @@ -0,0 +1,5 @@ +fa3ad51cc9e411e184d2279b1926eb6f indirect_calls/indirect_call_outparam/clang/a.out +6d0c20d0de14265fa769b9c1b55243fb indirect_calls/indirect_call_outparam/clang/indirect_call_outparam.adt +0412c26e4a0bb53942500beca2035584 indirect_calls/indirect_call_outparam/clang/indirect_call_outparam.bir +2db85fd61b3cf160b666a4c7d1e560e0 indirect_calls/indirect_call_outparam/clang/indirect_call_outparam.relf +f0044071d4a516f47709c17029caa492 indirect_calls/indirect_call_outparam/clang/indirect_call_outparam.gts diff --git a/src/test/indirect_calls/indirect_call_outparam/clang/indirect_call_outparam.relf b/src/test/indirect_calls/indirect_call_outparam/clang/indirect_call_outparam.relf deleted file mode 100644 index 6b28adee2..000000000 --- a/src/test/indirect_calls/indirect_call_outparam/clang/indirect_call_outparam.relf +++ /dev/null @@ -1,123 +0,0 @@ - -Relocation section '.rela.dyn' at offset 0x460 contains 8 entries: - Offset Info Type Symbol's Value Symbol's Name + Addend -0000000000010dc8 0000000000000403 R_AARCH64_RELATIVE 710 -0000000000010dd0 0000000000000403 R_AARCH64_RELATIVE 6c0 -0000000000010fd8 0000000000000403 R_AARCH64_RELATIVE 73c -0000000000011028 0000000000000403 R_AARCH64_RELATIVE 11028 -0000000000010fc0 0000000400000401 R_AARCH64_GLOB_DAT 0000000000000000 _ITM_deregisterTMCloneTable + 0 -0000000000010fc8 0000000500000401 R_AARCH64_GLOB_DAT 0000000000000000 __cxa_finalize@GLIBC_2.17 + 0 -0000000000010fd0 0000000600000401 R_AARCH64_GLOB_DAT 0000000000000000 __gmon_start__ + 0 -0000000000010fe0 0000000800000401 R_AARCH64_GLOB_DAT 0000000000000000 _ITM_registerTMCloneTable + 0 - -Relocation section '.rela.plt' at offset 0x520 contains 4 entries: - Offset Info Type Symbol's Value Symbol's Name + Addend -0000000000011000 0000000300000402 R_AARCH64_JUMP_SLOT 0000000000000000 __libc_start_main@GLIBC_2.34 + 0 -0000000000011008 0000000500000402 R_AARCH64_JUMP_SLOT 0000000000000000 __cxa_finalize@GLIBC_2.17 + 0 -0000000000011010 0000000600000402 R_AARCH64_JUMP_SLOT 0000000000000000 __gmon_start__ + 0 -0000000000011018 0000000700000402 R_AARCH64_JUMP_SLOT 0000000000000000 abort@GLIBC_2.17 + 0 - -Symbol table '.dynsym' contains 9 entries: - Num: Value Size Type Bind Vis Ndx Name - 0: 0000000000000000 0 NOTYPE LOCAL DEFAULT UND - 1: 0000000000000580 0 SECTION LOCAL DEFAULT 11 .init - 2: 0000000000011020 0 SECTION LOCAL DEFAULT 23 .data - 3: 0000000000000000 0 FUNC GLOBAL DEFAULT UND __libc_start_main@GLIBC_2.34 (2) - 4: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_deregisterTMCloneTable - 5: 0000000000000000 0 FUNC WEAK DEFAULT UND __cxa_finalize@GLIBC_2.17 (3) - 6: 0000000000000000 0 NOTYPE WEAK DEFAULT UND __gmon_start__ - 7: 0000000000000000 0 FUNC GLOBAL DEFAULT UND abort@GLIBC_2.17 (3) - 8: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_registerTMCloneTable - -Symbol table '.symtab' contains 90 entries: - Num: Value Size Type Bind Vis Ndx Name - 0: 0000000000000000 0 NOTYPE LOCAL DEFAULT UND - 1: 0000000000000238 0 SECTION LOCAL DEFAULT 1 .interp - 2: 0000000000000254 0 SECTION LOCAL DEFAULT 2 .note.gnu.build-id - 3: 0000000000000278 0 SECTION LOCAL DEFAULT 3 .note.ABI-tag - 4: 0000000000000298 0 SECTION LOCAL DEFAULT 4 .gnu.hash - 5: 00000000000002b8 0 SECTION LOCAL DEFAULT 5 .dynsym - 6: 0000000000000390 0 SECTION LOCAL DEFAULT 6 .dynstr - 7: 000000000000041e 0 SECTION LOCAL DEFAULT 7 .gnu.version - 8: 0000000000000430 0 SECTION LOCAL DEFAULT 8 .gnu.version_r - 9: 0000000000000460 0 SECTION LOCAL DEFAULT 9 .rela.dyn - 10: 0000000000000520 0 SECTION LOCAL DEFAULT 10 .rela.plt - 11: 0000000000000580 0 SECTION LOCAL DEFAULT 11 .init - 12: 00000000000005a0 0 SECTION LOCAL DEFAULT 12 .plt - 13: 0000000000000600 0 SECTION LOCAL DEFAULT 13 .text - 14: 0000000000000768 0 SECTION LOCAL DEFAULT 14 .fini - 15: 000000000000077c 0 SECTION LOCAL DEFAULT 15 .rodata - 16: 0000000000000780 0 SECTION LOCAL DEFAULT 16 .eh_frame_hdr - 17: 00000000000007d0 0 SECTION LOCAL DEFAULT 17 .eh_frame - 18: 0000000000010dc8 0 SECTION LOCAL DEFAULT 18 .init_array - 19: 0000000000010dd0 0 SECTION LOCAL DEFAULT 19 .fini_array - 20: 0000000000010dd8 0 SECTION LOCAL DEFAULT 20 .dynamic - 21: 0000000000010fb8 0 SECTION LOCAL DEFAULT 21 .got - 22: 0000000000010fe8 0 SECTION LOCAL DEFAULT 22 .got.plt - 23: 0000000000011020 0 SECTION LOCAL DEFAULT 23 .data - 24: 0000000000011030 0 SECTION LOCAL DEFAULT 24 .bss - 25: 0000000000000000 0 SECTION LOCAL DEFAULT 25 .comment - 26: 0000000000000000 0 FILE LOCAL DEFAULT ABS Scrt1.o - 27: 0000000000000278 0 NOTYPE LOCAL DEFAULT 3 $d - 28: 0000000000000278 32 OBJECT LOCAL DEFAULT 3 __abi_tag - 29: 0000000000000600 0 NOTYPE LOCAL DEFAULT 13 $x - 30: 00000000000007e4 0 NOTYPE LOCAL DEFAULT 17 $d - 31: 000000000000077c 0 NOTYPE LOCAL DEFAULT 15 $d - 32: 0000000000000000 0 FILE LOCAL DEFAULT ABS crti.o - 33: 0000000000000634 0 NOTYPE LOCAL DEFAULT 13 $x - 34: 0000000000000634 20 FUNC LOCAL DEFAULT 13 call_weak_fn - 35: 0000000000000580 0 NOTYPE LOCAL DEFAULT 11 $x - 36: 0000000000000768 0 NOTYPE LOCAL DEFAULT 14 $x - 37: 0000000000000000 0 FILE LOCAL DEFAULT ABS crtn.o - 38: 0000000000000590 0 NOTYPE LOCAL DEFAULT 11 $x - 39: 0000000000000774 0 NOTYPE LOCAL DEFAULT 14 $x - 40: 0000000000000000 0 FILE LOCAL DEFAULT ABS crtstuff.c - 41: 0000000000000650 0 NOTYPE LOCAL DEFAULT 13 $x - 42: 0000000000000650 0 FUNC LOCAL DEFAULT 13 deregister_tm_clones - 43: 0000000000000680 0 FUNC LOCAL DEFAULT 13 register_tm_clones - 44: 0000000000011028 0 NOTYPE LOCAL DEFAULT 23 $d - 45: 00000000000006c0 0 FUNC LOCAL DEFAULT 13 __do_global_dtors_aux - 46: 0000000000011030 1 OBJECT LOCAL DEFAULT 24 completed.0 - 47: 0000000000010dd0 0 NOTYPE LOCAL DEFAULT 19 $d - 48: 0000000000010dd0 0 OBJECT LOCAL DEFAULT 19 __do_global_dtors_aux_fini_array_entry - 49: 0000000000000710 0 FUNC LOCAL DEFAULT 13 frame_dummy - 50: 0000000000010dc8 0 NOTYPE LOCAL DEFAULT 18 $d - 51: 0000000000010dc8 0 OBJECT LOCAL DEFAULT 18 __frame_dummy_init_array_entry - 52: 00000000000007f8 0 NOTYPE LOCAL DEFAULT 17 $d - 53: 0000000000011030 0 NOTYPE LOCAL DEFAULT 24 $d - 54: 0000000000000000 0 FILE LOCAL DEFAULT ABS indirect_call_outparam.c - 55: 0000000000000714 0 NOTYPE LOCAL DEFAULT 13 $x.0 - 56: 000000000000002a 0 NOTYPE LOCAL DEFAULT 25 $d.1 - 57: 0000000000000858 0 NOTYPE LOCAL DEFAULT 17 $d.2 - 58: 0000000000000000 0 FILE LOCAL DEFAULT ABS crtstuff.c - 59: 00000000000008c0 0 NOTYPE LOCAL DEFAULT 17 $d - 60: 00000000000008c0 0 OBJECT LOCAL DEFAULT 17 __FRAME_END__ - 61: 0000000000000000 0 FILE LOCAL DEFAULT ABS - 62: 0000000000010dd8 0 OBJECT LOCAL DEFAULT ABS _DYNAMIC - 63: 0000000000000780 0 NOTYPE LOCAL DEFAULT 16 __GNU_EH_FRAME_HDR - 64: 0000000000010fb8 0 OBJECT LOCAL DEFAULT ABS _GLOBAL_OFFSET_TABLE_ - 65: 00000000000005a0 0 NOTYPE LOCAL DEFAULT 12 $x - 66: 0000000000000000 0 FUNC GLOBAL DEFAULT UND __libc_start_main@GLIBC_2.34 - 67: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_deregisterTMCloneTable - 68: 0000000000011020 0 NOTYPE WEAK DEFAULT 23 data_start - 69: 0000000000011030 0 NOTYPE GLOBAL DEFAULT 24 __bss_start__ - 70: 0000000000000000 0 FUNC WEAK DEFAULT UND __cxa_finalize@GLIBC_2.17 - 71: 0000000000011038 0 NOTYPE GLOBAL DEFAULT 24 _bss_end__ - 72: 0000000000011030 0 NOTYPE GLOBAL DEFAULT 23 _edata - 73: 0000000000000768 0 FUNC GLOBAL HIDDEN 14 _fini - 74: 0000000000011038 0 NOTYPE GLOBAL DEFAULT 24 __bss_end__ - 75: 000000000000071c 32 FUNC GLOBAL DEFAULT 13 get_call - 76: 0000000000011020 0 NOTYPE GLOBAL DEFAULT 23 __data_start - 77: 0000000000000000 0 NOTYPE WEAK DEFAULT UND __gmon_start__ - 78: 0000000000011028 0 OBJECT GLOBAL HIDDEN 23 __dso_handle - 79: 0000000000000000 0 FUNC GLOBAL DEFAULT UND abort@GLIBC_2.17 - 80: 000000000000077c 4 OBJECT GLOBAL DEFAULT 15 _IO_stdin_used - 81: 0000000000011038 0 NOTYPE GLOBAL DEFAULT 24 _end - 82: 0000000000000600 52 FUNC GLOBAL DEFAULT 13 _start - 83: 0000000000011038 0 NOTYPE GLOBAL DEFAULT 24 __end__ - 84: 0000000000011030 0 NOTYPE GLOBAL DEFAULT 24 __bss_start - 85: 000000000000073c 44 FUNC GLOBAL DEFAULT 13 main - 86: 0000000000000714 8 FUNC GLOBAL DEFAULT 13 seven - 87: 0000000000011030 0 OBJECT GLOBAL HIDDEN 23 __TMC_END__ - 88: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_registerTMCloneTable - 89: 0000000000000580 0 FUNC GLOBAL HIDDEN 11 _init diff --git a/src/test/indirect_calls/indirect_call_outparam/gcc/indirect_call_outparam.adt b/src/test/indirect_calls/indirect_call_outparam/gcc/indirect_call_outparam.adt deleted file mode 100644 index e7edf9ce8..000000000 --- a/src/test/indirect_calls/indirect_call_outparam/gcc/indirect_call_outparam.adt +++ /dev/null @@ -1,643 +0,0 @@ -Project(Attrs([Attr("filename","\"a.out\""), -Attr("image-specification","(declare abi (name str))\n(declare arch (name str))\n(declare base-address (addr int))\n(declare bias (off int))\n(declare bits (size int))\n(declare code-region (addr int) (size int) (off int))\n(declare code-start (addr int))\n(declare entry-point (addr int))\n(declare external-reference (addr int) (name str))\n(declare format (name str))\n(declare is-executable (flag bool))\n(declare is-little-endian (flag bool))\n(declare llvm:base-address (addr int))\n(declare llvm:code-entry (name str) (off int) (size int))\n(declare llvm:coff-import-library (name str))\n(declare llvm:coff-virtual-section-header (name str) (addr int) (size int))\n(declare llvm:elf-program-header (name str) (off int) (size int))\n(declare llvm:elf-program-header-flags (name str) (ld bool) (r bool) \n (w bool) (x bool))\n(declare llvm:elf-virtual-program-header (name str) (addr int) (size int))\n(declare llvm:entry-point (addr int))\n(declare llvm:macho-symbol (name str) (value int))\n(declare llvm:name-reference (at int) (name str))\n(declare llvm:relocation (at int) (addr int))\n(declare llvm:section-entry (name str) (addr int) (size int) (off int))\n(declare llvm:section-flags (name str) (r bool) (w bool) (x bool))\n(declare llvm:segment-command (name str) (off int) (size int))\n(declare llvm:segment-command-flags (name str) (r bool) (w bool) (x bool))\n(declare llvm:symbol-entry (name str) (addr int) (size int) (off int)\n (value int))\n(declare llvm:virtual-segment-command (name str) (addr int) (size int))\n(declare mapped (addr int) (size int) (off int))\n(declare named-region (addr int) (size int) (name str))\n(declare named-symbol (addr int) (name str))\n(declare require (name str))\n(declare section (addr int) (size int))\n(declare segment (addr int) (size int) (r bool) (w bool) (x bool))\n(declare subarch (name str))\n(declare symbol-chunk (addr int) (size int) (root int))\n(declare symbol-value (addr int) (value int))\n(declare system (name str))\n(declare vendor (name str))\n\n(abi unknown)\n(arch aarch64)\n(base-address 0)\n(bias 0)\n(bits 64)\n(code-region 2204 20 2204)\n(code-region 1792 412 1792)\n(code-region 1632 112 1632)\n(code-region 1600 24 1600)\n(code-start 1844)\n(code-start 2076)\n(code-start 1792)\n(code-start 2112)\n(code-start 2068)\n(entry-point 1792)\n(external-reference 69584 _ITM_deregisterTMCloneTable)\n(external-reference 69592 __cxa_finalize)\n(external-reference 69600 __gmon_start__)\n(external-reference 69624 _ITM_registerTMCloneTable)\n(external-reference 69536 __libc_start_main)\n(external-reference 69544 __cxa_finalize)\n(external-reference 69552 __stack_chk_fail)\n(external-reference 69560 __gmon_start__)\n(external-reference 69568 abort)\n(format elf)\n(is-executable true)\n(is-little-endian true)\n(llvm:base-address 0)\n(llvm:code-entry abort 0 0)\n(llvm:code-entry __stack_chk_fail 0 0)\n(llvm:code-entry __cxa_finalize 0 0)\n(llvm:code-entry __libc_start_main 0 0)\n(llvm:code-entry _init 1600 0)\n(llvm:code-entry seven 2068 8)\n(llvm:code-entry main 2112 92)\n(llvm:code-entry _start 1792 52)\n(llvm:code-entry abort@GLIBC_2.17 0 0)\n(llvm:code-entry __stack_chk_fail@GLIBC_2.17 0 0)\n(llvm:code-entry get_call 2076 36)\n(llvm:code-entry _fini 2204 0)\n(llvm:code-entry __cxa_finalize@GLIBC_2.17 0 0)\n(llvm:code-entry __libc_start_main@GLIBC_2.34 0 0)\n(llvm:code-entry frame_dummy 2064 0)\n(llvm:code-entry __do_global_dtors_aux 1984 0)\n(llvm:code-entry register_tm_clones 1920 0)\n(llvm:code-entry deregister_tm_clones 1872 0)\n(llvm:code-entry call_weak_fn 1844 20)\n(llvm:code-entry .fini 2204 20)\n(llvm:code-entry .text 1792 412)\n(llvm:code-entry .plt 1632 112)\n(llvm:code-entry .init 1600 24)\n(llvm:elf-program-header 08 3448 648)\n(llvm:elf-program-header 07 0 0)\n(llvm:elf-program-header 06 2228 76)\n(llvm:elf-program-header 05 596 68)\n(llvm:elf-program-header 04 3464 512)\n(llvm:elf-program-header 03 3448 664)\n(llvm:elf-program-header 02 0 2520)\n(llvm:elf-program-header 01 568 27)\n(llvm:elf-program-header 00 64 504)\n(llvm:elf-program-header-flags 08 false true false false)\n(llvm:elf-program-header-flags 07 false true true false)\n(llvm:elf-program-header-flags 06 false true false false)\n(llvm:elf-program-header-flags 05 false true false false)\n(llvm:elf-program-header-flags 04 false true true false)\n(llvm:elf-program-header-flags 03 true true true false)\n(llvm:elf-program-header-flags 02 true true false true)\n(llvm:elf-program-header-flags 01 false true false false)\n(llvm:elf-program-header-flags 00 false true false false)\n(llvm:elf-virtual-program-header 08 68984 648)\n(llvm:elf-virtual-program-header 07 0 0)\n(llvm:elf-virtual-program-header 06 2228 76)\n(llvm:elf-virtual-program-header 05 596 68)\n(llvm:elf-virtual-program-header 04 69000 512)\n(llvm:elf-virtual-program-header 03 68984 672)\n(llvm:elf-virtual-program-header 02 0 2520)\n(llvm:elf-virtual-program-header 01 568 27)\n(llvm:elf-virtual-program-header 00 64 504)\n(llvm:entry-point 1792)\n(llvm:name-reference 69568 abort)\n(llvm:name-reference 69560 __gmon_start__)\n(llvm:name-reference 69552 __stack_chk_fail)\n(llvm:name-reference 69544 __cxa_finalize)\n(llvm:name-reference 69536 __libc_start_main)\n(llvm:name-reference 69624 _ITM_registerTMCloneTable)\n(llvm:name-reference 69600 __gmon_start__)\n(llvm:name-reference 69592 __cxa_finalize)\n(llvm:name-reference 69584 _ITM_deregisterTMCloneTable)\n(llvm:section-entry .shstrtab 0 250 6950)\n(llvm:section-entry .strtab 0 630 6320)\n(llvm:section-entry .symtab 0 2160 4160)\n(llvm:section-entry .comment 0 43 4112)\n(llvm:section-entry .bss 69648 8 4112)\n(llvm:section-entry .data 69632 16 4096)\n(llvm:section-entry .got 69512 120 3976)\n(llvm:section-entry .dynamic 69000 512 3464)\n(llvm:section-entry .fini_array 68992 8 3456)\n(llvm:section-entry .init_array 68984 8 3448)\n(llvm:section-entry .eh_frame 2304 216 2304)\n(llvm:section-entry .eh_frame_hdr 2228 76 2228)\n(llvm:section-entry .rodata 2224 4 2224)\n(llvm:section-entry .fini 2204 20 2204)\n(llvm:section-entry .text 1792 412 1792)\n(llvm:section-entry .plt 1632 112 1632)\n(llvm:section-entry .init 1600 24 1600)\n(llvm:section-entry .rela.plt 1480 120 1480)\n(llvm:section-entry .rela.dyn 1264 216 1264)\n(llvm:section-entry .gnu.version_r 1184 80 1184)\n(llvm:section-entry .gnu.version 1158 22 1158)\n(llvm:section-entry .dynstr 960 198 960)\n(llvm:section-entry .dynsym 696 264 696)\n(llvm:section-entry .gnu.hash 664 28 664)\n(llvm:section-entry .note.ABI-tag 632 32 632)\n(llvm:section-entry .note.gnu.build-id 596 36 596)\n(llvm:section-entry .interp 568 27 568)\n(llvm:section-flags .shstrtab true false false)\n(llvm:section-flags .strtab true false false)\n(llvm:section-flags .symtab true false false)\n(llvm:section-flags .comment true false false)\n(llvm:section-flags .bss true true false)\n(llvm:section-flags .data true true false)\n(llvm:section-flags .got true true false)\n(llvm:section-flags .dynamic true true false)\n(llvm:section-flags .fini_array true true false)\n(llvm:section-flags .init_array true true false)\n(llvm:section-flags .eh_frame true false false)\n(llvm:section-flags .eh_frame_hdr true false false)\n(llvm:section-flags .rodata true false false)\n(llvm:section-flags .fini true false true)\n(llvm:section-flags .text true false true)\n(llvm:section-flags .plt true false true)\n(llvm:section-flags .init true false true)\n(llvm:section-flags .rela.plt true false false)\n(llvm:section-flags .rela.dyn true false false)\n(llvm:section-flags .gnu.version_r true false false)\n(llvm:section-flags .gnu.version true false false)\n(llvm:section-flags .dynstr true false false)\n(llvm:section-flags .dynsym true false false)\n(llvm:section-flags .gnu.hash true false false)\n(llvm:section-flags .note.ABI-tag true false false)\n(llvm:section-flags .note.gnu.build-id true false false)\n(llvm:section-flags .interp true false false)\n(llvm:symbol-entry abort 0 0 0 0)\n(llvm:symbol-entry __stack_chk_fail 0 0 0 0)\n(llvm:symbol-entry __cxa_finalize 0 0 0 0)\n(llvm:symbol-entry __libc_start_main 0 0 0 0)\n(llvm:symbol-entry _init 1600 0 1600 1600)\n(llvm:symbol-entry seven 2068 8 2068 2068)\n(llvm:symbol-entry main 2112 92 2112 2112)\n(llvm:symbol-entry _start 1792 52 1792 1792)\n(llvm:symbol-entry abort@GLIBC_2.17 0 0 0 0)\n(llvm:symbol-entry __stack_chk_fail@GLIBC_2.17 0 0 0 0)\n(llvm:symbol-entry get_call 2076 36 2076 2076)\n(llvm:symbol-entry _fini 2204 0 2204 2204)\n(llvm:symbol-entry __cxa_finalize@GLIBC_2.17 0 0 0 0)\n(llvm:symbol-entry __libc_start_main@GLIBC_2.34 0 0 0 0)\n(llvm:symbol-entry frame_dummy 2064 0 2064 2064)\n(llvm:symbol-entry __do_global_dtors_aux 1984 0 1984 1984)\n(llvm:symbol-entry register_tm_clones 1920 0 1920 1920)\n(llvm:symbol-entry deregister_tm_clones 1872 0 1872 1872)\n(llvm:symbol-entry call_weak_fn 1844 20 1844 1844)\n(mapped 0 2520 0)\n(mapped 68984 664 3448)\n(named-region 0 2520 02)\n(named-region 68984 672 03)\n(named-region 568 27 .interp)\n(named-region 596 36 .note.gnu.build-id)\n(named-region 632 32 .note.ABI-tag)\n(named-region 664 28 .gnu.hash)\n(named-region 696 264 .dynsym)\n(named-region 960 198 .dynstr)\n(named-region 1158 22 .gnu.version)\n(named-region 1184 80 .gnu.version_r)\n(named-region 1264 216 .rela.dyn)\n(named-region 1480 120 .rela.plt)\n(named-region 1600 24 .init)\n(named-region 1632 112 .plt)\n(named-region 1792 412 .text)\n(named-region 2204 20 .fini)\n(named-region 2224 4 .rodata)\n(named-region 2228 76 .eh_frame_hdr)\n(named-region 2304 216 .eh_frame)\n(named-region 68984 8 .init_array)\n(named-region 68992 8 .fini_array)\n(named-region 69000 512 .dynamic)\n(named-region 69512 120 .got)\n(named-region 69632 16 .data)\n(named-region 69648 8 .bss)\n(named-region 0 43 .comment)\n(named-region 0 2160 .symtab)\n(named-region 0 630 .strtab)\n(named-region 0 250 .shstrtab)\n(named-symbol 1844 call_weak_fn)\n(named-symbol 1872 deregister_tm_clones)\n(named-symbol 1920 register_tm_clones)\n(named-symbol 1984 __do_global_dtors_aux)\n(named-symbol 2064 frame_dummy)\n(named-symbol 0 __libc_start_main@GLIBC_2.34)\n(named-symbol 0 __cxa_finalize@GLIBC_2.17)\n(named-symbol 2204 _fini)\n(named-symbol 2076 get_call)\n(named-symbol 0 __stack_chk_fail@GLIBC_2.17)\n(named-symbol 0 abort@GLIBC_2.17)\n(named-symbol 1792 _start)\n(named-symbol 2112 main)\n(named-symbol 2068 seven)\n(named-symbol 1600 _init)\n(named-symbol 0 __libc_start_main)\n(named-symbol 0 __cxa_finalize)\n(named-symbol 0 __stack_chk_fail)\n(named-symbol 0 abort)\n(require ld-linux-aarch64.so.1)\n(require libc.so.6)\n(section 568 27)\n(section 596 36)\n(section 632 32)\n(section 664 28)\n(section 696 264)\n(section 960 198)\n(section 1158 22)\n(section 1184 80)\n(section 1264 216)\n(section 1480 120)\n(section 1600 24)\n(section 1632 112)\n(section 1792 412)\n(section 2204 20)\n(section 2224 4)\n(section 2228 76)\n(section 2304 216)\n(section 68984 8)\n(section 68992 8)\n(section 69000 512)\n(section 69512 120)\n(section 69632 16)\n(section 69648 8)\n(section 0 43)\n(section 0 2160)\n(section 0 630)\n(section 0 250)\n(segment 0 2520 true false true)\n(segment 68984 672 true true false)\n(subarch v8)\n(symbol-chunk 1844 20 1844)\n(symbol-chunk 2076 36 2076)\n(symbol-chunk 1792 52 1792)\n(symbol-chunk 2112 92 2112)\n(symbol-chunk 2068 8 2068)\n(symbol-value 1844 1844)\n(symbol-value 1872 1872)\n(symbol-value 1920 1920)\n(symbol-value 1984 1984)\n(symbol-value 2064 2064)\n(symbol-value 2204 2204)\n(symbol-value 2076 2076)\n(symbol-value 1792 1792)\n(symbol-value 2112 2112)\n(symbol-value 2068 2068)\n(symbol-value 1600 1600)\n(symbol-value 0 0)\n(system \"\")\n(vendor \"\")\n"), -Attr("abi-name","\"aarch64-linux-gnu-elf\"")]), -Sections([Section(".shstrtab", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x20\x1c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x38\x00\x09\x00\x40\x00\x1c\x00\x1b\x00\x06\x00\x00\x00\x04\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x04\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xd8\x09\x00\x00\x00\x00\x00\x00\xd8\x09\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x01\x00\x00\x00\x06\x00\x00\x00\x78\x0d\x00\x00\x00\x00\x00\x00\x78\x0d"), -Section(".strtab", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x20\x1c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x38\x00\x09\x00\x40\x00\x1c\x00\x1b\x00\x06\x00\x00\x00\x04\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x04\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xd8\x09\x00\x00\x00\x00\x00\x00\xd8\x09\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x01\x00\x00\x00\x06\x00\x00\x00\x78\x0d\x00\x00\x00\x00\x00\x00\x78\x0d\x01\x00\x00\x00\x00\x00\x78\x0d\x01\x00\x00\x00\x00\x00\x98\x02\x00\x00\x00\x00\x00\x00\xa0\x02\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x02\x00\x00\x00\x06\x00\x00\x00\x88\x0d\x00\x00\x00\x00\x00\x00\x88\x0d\x01\x00\x00\x00\x00\x00\x88\x0d\x01\x00\x00\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x04\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x50\xe5\x74\x64\x04\x00\x00\x00\xb4\x08\x00\x00\x00\x00\x00\x00\xb4\x08\x00\x00\x00\x00\x00\x00\xb4\x08\x00\x00\x00\x00\x00\x00\x4c\x00\x00\x00\x00\x00\x00\x00\x4c\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x51\xe5\x74\x64\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x52\xe5\x74\x64\x04\x00\x00\x00\x78\x0d\x00\x00\x00\x00\x00\x00\x78\x0d\x01\x00\x00\x00\x00\x00\x78\x0d\x01\x00\x00\x00\x00\x00\x88\x02\x00\x00\x00\x00\x00\x00\x88\x02\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x2f\x6c\x69\x62\x2f\x6c\x64\x2d\x6c\x69\x6e\x75\x78\x2d\x61\x61\x72\x63\x68\x36\x34\x2e\x73\x6f\x2e\x31\x00\x00\x04\x00\x00\x00\x14\x00\x00\x00\x03\x00\x00\x00\x47\x4e\x55\x00\x8c\x9d\xd3\xbc\x29\xf4\xed\xc5\xae\xc1\x27\x22\x46\xfa\x3b\x98\xa3\xac"), -Section(".symtab", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x20\x1c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x38\x00\x09\x00\x40\x00\x1c\x00\x1b\x00\x06\x00\x00\x00\x04\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x04\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xd8\x09\x00\x00\x00\x00\x00\x00\xd8\x09\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x01\x00\x00\x00\x06\x00\x00\x00\x78\x0d\x00\x00\x00\x00\x00\x00\x78\x0d\x01\x00\x00\x00\x00\x00\x78\x0d\x01\x00\x00\x00\x00\x00\x98\x02\x00\x00\x00\x00\x00\x00\xa0\x02\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x02\x00\x00\x00\x06\x00\x00\x00\x88\x0d\x00\x00\x00\x00\x00\x00\x88\x0d\x01\x00\x00\x00\x00\x00\x88\x0d\x01\x00\x00\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x04\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x50\xe5\x74\x64\x04\x00\x00\x00\xb4\x08\x00\x00\x00\x00\x00\x00\xb4\x08\x00\x00\x00\x00\x00\x00\xb4\x08\x00\x00\x00\x00\x00\x00\x4c\x00\x00\x00\x00\x00\x00\x00\x4c\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x51\xe5\x74\x64\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x52\xe5\x74\x64\x04\x00\x00\x00\x78\x0d\x00\x00\x00\x00\x00\x00\x78\x0d\x01\x00\x00\x00\x00\x00\x78\x0d\x01\x00\x00\x00\x00\x00\x88\x02\x00\x00\x00\x00\x00\x00\x88\x02\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x2f\x6c\x69\x62\x2f\x6c\x64\x2d\x6c\x69\x6e\x75\x78\x2d\x61\x61\x72\x63\x68\x36\x34\x2e\x73\x6f\x2e\x31\x00\x00\x04\x00\x00\x00\x14\x00\x00\x00\x03\x00\x00\x00\x47\x4e\x55\x00\x8c\x9d\xd3\xbc\x29\xf4\xed\xc5\xae\xc1\x27\x22\x46\xfa\x3b\x98\xa3\xac\x8a\xe1\x04\x00\x00\x00\x10\x00\x00\x00\x01\x00\x00\x00\x47\x4e\x55\x00\x00\x00\x00\x00\x03\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x01\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x0b\x00\x40\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x16\x00\x00\x10\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x81\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x22\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x28\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x9d\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x39\x00\x00\x00\x11\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x22\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xac\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5f\x5f\x63\x78\x61\x5f\x66\x69\x6e\x61\x6c\x69\x7a\x65\x00\x5f\x5f\x6c\x69\x62\x63\x5f\x73\x74\x61\x72\x74\x5f\x6d\x61\x69\x6e\x00\x61\x62\x6f\x72\x74\x00\x5f\x5f\x73\x74\x61\x63\x6b\x5f\x63\x68\x6b\x5f\x66\x61\x69\x6c\x00\x5f\x5f\x73\x74\x61\x63\x6b\x5f\x63\x68\x6b\x5f\x67\x75\x61\x72\x64\x00\x6c\x69\x62\x63\x2e\x73\x6f\x2e\x36\x00\x6c\x64\x2d\x6c\x69\x6e\x75\x78\x2d\x61\x61\x72\x63\x68\x36\x34\x2e\x73\x6f\x2e\x31\x00\x47\x4c\x49\x42\x43\x5f\x32\x2e\x31\x37\x00\x47\x4c\x49\x42\x43\x5f\x32\x2e\x33\x34\x00\x5f\x49\x54\x4d\x5f\x64\x65\x72\x65\x67\x69\x73\x74\x65\x72\x54\x4d\x43\x6c\x6f\x6e\x65\x54\x61\x62\x6c\x65\x00\x5f\x5f\x67\x6d\x6f\x6e\x5f\x73\x74\x61\x72\x74\x5f\x5f\x00\x5f\x49\x54\x4d\x5f\x72\x65\x67\x69\x73\x74\x65\x72\x54\x4d\x43\x6c\x6f\x6e\x65\x54\x61\x62\x6c\x65\x00\x00\x00\x00\x00\x00\x00\x02\x00\x01\x00\x03\x00\x03\x00\x01\x00\x04\x00\x03\x00\x01\x00\x00\x00\x00\x00\x01\x00\x01\x00\x55\x00\x00\x00\x10\x00\x00\x00\x20\x00\x00\x00\x97\x91\x96\x06\x00\x00\x04\x00\x6b\x00\x00\x00\x00\x00\x00\x00\x01\x00\x02\x00\x4b\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x97\x91\x96\x06\x00\x00\x03\x00\x6b\x00\x00\x00\x10\x00\x00\x00\xb4\x91\x96\x06\x00\x00\x02\x00\x76\x00\x00\x00\x00\x00\x00\x00\x78\x0d\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x10\x08\x00\x00\x00\x00\x00\x00\x80\x0d\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\xc0\x07\x00\x00\x00\x00\x00\x00\xf0\x0f\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x40\x08\x00\x00\x00\x00\x00\x00\x08\x10\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x08\x10\x01\x00\x00\x00\x00\x00\xd0\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xd8\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe0\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe8\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xf8\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x0a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xa0\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xa8\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xb0\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xb8\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xc0\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x09\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1f\x20\x03\xd5\xfd\x7b\xbf\xa9\xfd\x03\x00\x91\x3a\x00\x00\x94\xfd\x7b\xc1\xa8\xc0\x03\x5f\xd6\x00\x00\x00\x00\x00\x00\x00\x00\xf0\x7b\xbf\xa9\x90\x00\x00\x90\x11\xce\x47\xf9\x10\x62\x3e\x91\x20\x02\x1f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x90\x00\x00\x90\x11\xd2\x47\xf9\x10\x82\x3e\x91\x20\x02\x1f\xd6\x90\x00\x00\x90\x11\xd6\x47\xf9\x10\xa2\x3e\x91\x20\x02\x1f\xd6\x90\x00\x00\x90\x11\xda\x47\xf9\x10\xc2\x3e\x91\x20\x02\x1f\xd6\x90\x00\x00\x90\x11\xde\x47\xf9\x10\xe2\x3e\x91\x20\x02\x1f\xd6\x90\x00\x00\x90\x11\xe2\x47\xf9\x10\x02\x3f\x91\x20\x02\x1f\xd6\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1f\x20\x03\xd5\x1d\x00\x80\xd2\x1e\x00\x80\xd2\xe5\x03\x00\xaa\xe1\x03\x40\xf9\xe2\x23\x00\x91\xe6\x03\x00\x91\x80\x00\x00\x90\x00\xf8\x47\xf9\x03\x00\x80\xd2\x04\x00\x80\xd2\xd5\xff\xff\x97\xe4\xff\xff\x97\x80\x00\x00\x90\x00\xf0\x47\xf9\x40\x00\x00\xb4\xdc\xff\xff\x17\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x80\x00\x00\xb0\x00\x40\x00\x91\x81\x00\x00\xb0\x21\x40\x00\x91\x3f\x00\x00\xeb\xc0\x00\x00\x54\x81\x00\x00\x90\x21\xe8\x47\xf9\x61\x00\x00\xb4\xf0\x03\x01\xaa\x00\x02\x1f\xd6\xc0\x03\x5f\xd6\x80\x00\x00\xb0\x00\x40\x00\x91\x81\x00\x00\xb0\x21\x40\x00\x91\x21\x00\x00\xcb\x22\xfc\x7f\xd3\x41\x0c\x81\x8b\x21\xfc\x41\x93\xc1\x00\x00\xb4\x82\x00\x00\x90\x42\xfc\x47\xf9\x62\x00\x00\xb4\xf0\x03\x02\xaa\x00\x02\x1f\xd6\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\xfd\x7b\xbe\xa9\xfd\x03\x00\x91\xf3\x0b\x00\xf9\x93\x00\x00\xb0\x60\x42\x40\x39\x40\x01\x00\x35\x80\x00\x00\x90\x00\xec\x47\xf9\x80\x00\x00\xb4\x80\x00\x00\xb0\x00\x04\x40\xf9\xa9\xff\xff\x97\xd8\xff\xff\x97\x20\x00\x80\x52\x60\x42\x00\x39\xf3\x0b\x40\xf9\xfd\x7b\xc2\xa8\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\xdc\xff\xff\x17\xe0\x00\x80\x52\xc0\x03\x5f\xd6\xff\x43\x00\xd1\xe0\x07\x00\xf9\xe0\x07\x40\xf9\x01\x00\x00\x90\x21\x50\x20\x91\x01\x00\x00\xf9\x1f\x20\x03\xd5\xff\x43\x00\x91\xc0\x03\x5f\xd6\xfd\x7b\xbe\xa9\xfd\x03\x00\x91\x80\x00\x00\x90\x00\xf4\x47\xf9\x01\x00\x40\xf9\xe1\x0f\x00\xf9\x01\x00\x80\xd2\xe0\x43\x00\x91\xef\xff\xff\x97\xe0\x0b\x40\xf9\x00\x00\x3f\xd6\xe1\x03\x00\x2a"), -Section(".comment", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x20\x1c\x00"), -Section(".interp", 0x238, "\x2f\x6c\x69\x62\x2f\x6c\x64\x2d\x6c\x69\x6e\x75\x78\x2d\x61\x61\x72\x63\x68\x36\x34\x2e\x73\x6f\x2e\x31\x00"), -Section(".note.gnu.build-id", 0x254, "\x04\x00\x00\x00\x14\x00\x00\x00\x03\x00\x00\x00\x47\x4e\x55\x00\x8c\x9d\xd3\xbc\x29\xf4\xed\xc5\xae\xc1\x27\x22\x46\xfa\x3b\x98\xa3\xac\x8a\xe1"), -Section(".note.ABI-tag", 0x278, "\x04\x00\x00\x00\x10\x00\x00\x00\x01\x00\x00\x00\x47\x4e\x55\x00\x00\x00\x00\x00\x03\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00"), -Section(".gnu.hash", 0x298, "\x01\x00\x00\x00\x01\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".dynsym", 0x2B8, "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x0b\x00\x40\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x16\x00\x00\x10\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x81\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x22\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x28\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x9d\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x39\x00\x00\x00\x11\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x22\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xac\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".dynstr", 0x3C0, "\x00\x5f\x5f\x63\x78\x61\x5f\x66\x69\x6e\x61\x6c\x69\x7a\x65\x00\x5f\x5f\x6c\x69\x62\x63\x5f\x73\x74\x61\x72\x74\x5f\x6d\x61\x69\x6e\x00\x61\x62\x6f\x72\x74\x00\x5f\x5f\x73\x74\x61\x63\x6b\x5f\x63\x68\x6b\x5f\x66\x61\x69\x6c\x00\x5f\x5f\x73\x74\x61\x63\x6b\x5f\x63\x68\x6b\x5f\x67\x75\x61\x72\x64\x00\x6c\x69\x62\x63\x2e\x73\x6f\x2e\x36\x00\x6c\x64\x2d\x6c\x69\x6e\x75\x78\x2d\x61\x61\x72\x63\x68\x36\x34\x2e\x73\x6f\x2e\x31\x00\x47\x4c\x49\x42\x43\x5f\x32\x2e\x31\x37\x00\x47\x4c\x49\x42\x43\x5f\x32\x2e\x33\x34\x00\x5f\x49\x54\x4d\x5f\x64\x65\x72\x65\x67\x69\x73\x74\x65\x72\x54\x4d\x43\x6c\x6f\x6e\x65\x54\x61\x62\x6c\x65\x00\x5f\x5f\x67\x6d\x6f\x6e\x5f\x73\x74\x61\x72\x74\x5f\x5f\x00\x5f\x49\x54\x4d\x5f\x72\x65\x67\x69\x73\x74\x65\x72\x54\x4d\x43\x6c\x6f\x6e\x65\x54\x61\x62\x6c\x65\x00"), -Section(".gnu.version", 0x486, "\x00\x00\x00\x00\x00\x00\x02\x00\x01\x00\x03\x00\x03\x00\x01\x00\x04\x00\x03\x00\x01\x00"), -Section(".gnu.version_r", 0x4A0, "\x01\x00\x01\x00\x55\x00\x00\x00\x10\x00\x00\x00\x20\x00\x00\x00\x97\x91\x96\x06\x00\x00\x04\x00\x6b\x00\x00\x00\x00\x00\x00\x00\x01\x00\x02\x00\x4b\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x97\x91\x96\x06\x00\x00\x03\x00\x6b\x00\x00\x00\x10\x00\x00\x00\xb4\x91\x96\x06\x00\x00\x02\x00\x76\x00\x00\x00\x00\x00\x00\x00"), -Section(".rela.dyn", 0x4F0, "\x78\x0d\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x10\x08\x00\x00\x00\x00\x00\x00\x80\x0d\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\xc0\x07\x00\x00\x00\x00\x00\x00\xf0\x0f\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x40\x08\x00\x00\x00\x00\x00\x00\x08\x10\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x08\x10\x01\x00\x00\x00\x00\x00\xd0\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xd8\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe0\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe8\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xf8\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x0a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".rela.plt", 0x5C8, "\xa0\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xa8\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xb0\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xb8\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xc0\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x09\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".init", 0x640, "\x1f\x20\x03\xd5\xfd\x7b\xbf\xa9\xfd\x03\x00\x91\x3a\x00\x00\x94\xfd\x7b\xc1\xa8\xc0\x03\x5f\xd6"), -Section(".plt", 0x660, "\xf0\x7b\xbf\xa9\x90\x00\x00\x90\x11\xce\x47\xf9\x10\x62\x3e\x91\x20\x02\x1f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x90\x00\x00\x90\x11\xd2\x47\xf9\x10\x82\x3e\x91\x20\x02\x1f\xd6\x90\x00\x00\x90\x11\xd6\x47\xf9\x10\xa2\x3e\x91\x20\x02\x1f\xd6\x90\x00\x00\x90\x11\xda\x47\xf9\x10\xc2\x3e\x91\x20\x02\x1f\xd6\x90\x00\x00\x90\x11\xde\x47\xf9\x10\xe2\x3e\x91\x20\x02\x1f\xd6\x90\x00\x00\x90\x11\xe2\x47\xf9\x10\x02\x3f\x91\x20\x02\x1f\xd6"), -Section(".text", 0x700, "\x1f\x20\x03\xd5\x1d\x00\x80\xd2\x1e\x00\x80\xd2\xe5\x03\x00\xaa\xe1\x03\x40\xf9\xe2\x23\x00\x91\xe6\x03\x00\x91\x80\x00\x00\x90\x00\xf8\x47\xf9\x03\x00\x80\xd2\x04\x00\x80\xd2\xd5\xff\xff\x97\xe4\xff\xff\x97\x80\x00\x00\x90\x00\xf0\x47\xf9\x40\x00\x00\xb4\xdc\xff\xff\x17\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x80\x00\x00\xb0\x00\x40\x00\x91\x81\x00\x00\xb0\x21\x40\x00\x91\x3f\x00\x00\xeb\xc0\x00\x00\x54\x81\x00\x00\x90\x21\xe8\x47\xf9\x61\x00\x00\xb4\xf0\x03\x01\xaa\x00\x02\x1f\xd6\xc0\x03\x5f\xd6\x80\x00\x00\xb0\x00\x40\x00\x91\x81\x00\x00\xb0\x21\x40\x00\x91\x21\x00\x00\xcb\x22\xfc\x7f\xd3\x41\x0c\x81\x8b\x21\xfc\x41\x93\xc1\x00\x00\xb4\x82\x00\x00\x90\x42\xfc\x47\xf9\x62\x00\x00\xb4\xf0\x03\x02\xaa\x00\x02\x1f\xd6\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\xfd\x7b\xbe\xa9\xfd\x03\x00\x91\xf3\x0b\x00\xf9\x93\x00\x00\xb0\x60\x42\x40\x39\x40\x01\x00\x35\x80\x00\x00\x90\x00\xec\x47\xf9\x80\x00\x00\xb4\x80\x00\x00\xb0\x00\x04\x40\xf9\xa9\xff\xff\x97\xd8\xff\xff\x97\x20\x00\x80\x52\x60\x42\x00\x39\xf3\x0b\x40\xf9\xfd\x7b\xc2\xa8\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\xdc\xff\xff\x17\xe0\x00\x80\x52\xc0\x03\x5f\xd6\xff\x43\x00\xd1\xe0\x07\x00\xf9\xe0\x07\x40\xf9\x01\x00\x00\x90\x21\x50\x20\x91\x01\x00\x00\xf9\x1f\x20\x03\xd5\xff\x43\x00\x91\xc0\x03\x5f\xd6\xfd\x7b\xbe\xa9\xfd\x03\x00\x91\x80\x00\x00\x90\x00\xf4\x47\xf9\x01\x00\x40\xf9\xe1\x0f\x00\xf9\x01\x00\x80\xd2\xe0\x43\x00\x91\xef\xff\xff\x97\xe0\x0b\x40\xf9\x00\x00\x3f\xd6\xe1\x03\x00\x2a\x80\x00\x00\x90\x00\xf4\x47\xf9\xe3\x0f\x40\xf9\x02\x00\x40\xf9\x63\x00\x02\xeb\x02\x00\x80\xd2\x40\x00\x00\x54\x85\xff\xff\x97\xe0\x03\x01\x2a\xfd\x7b\xc2\xa8\xc0\x03\x5f\xd6"), -Section(".fini", 0x89C, "\x1f\x20\x03\xd5\xfd\x7b\xbf\xa9\xfd\x03\x00\x91\xfd\x7b\xc1\xa8\xc0\x03\x5f\xd6"), -Section(".rodata", 0x8B0, "\x01\x00\x02\x00"), -Section(".eh_frame_hdr", 0x8B4, "\x01\x1b\x03\x3b\x48\x00\x00\x00\x08\x00\x00\x00\x4c\xfe\xff\xff\x60\x00\x00\x00\x9c\xfe\xff\xff\x74\x00\x00\x00\xcc\xfe\xff\xff\x88\x00\x00\x00\x0c\xff\xff\xff\x9c\x00\x00\x00\x5c\xff\xff\xff\xc0\x00\x00\x00\x60\xff\xff\xff\xd4\x00\x00\x00\x68\xff\xff\xff\xe8\x00\x00\x00\x8c\xff\xff\xff\x00\x01\x00\x00"), -Section(".eh_frame", 0x900, "\x10\x00\x00\x00\x00\x00\x00\x00\x01\x7a\x52\x00\x04\x78\x1e\x01\x1b\x0c\x1f\x00\x10\x00\x00\x00\x18\x00\x00\x00\xe4\xfd\xff\xff\x34\x00\x00\x00\x00\x41\x07\x1e\x10\x00\x00\x00\x2c\x00\x00\x00\x20\xfe\xff\xff\x30\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x40\x00\x00\x00\x3c\xfe\xff\xff\x3c\x00\x00\x00\x00\x00\x00\x00\x20\x00\x00\x00\x54\x00\x00\x00\x68\xfe\xff\xff\x48\x00\x00\x00\x00\x41\x0e\x20\x9d\x04\x9e\x03\x42\x93\x02\x4e\xde\xdd\xd3\x0e\x00\x00\x00\x00\x10\x00\x00\x00\x78\x00\x00\x00\x94\xfe\xff\xff\x04\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x8c\x00\x00\x00\x84\xfe\xff\xff\x08\x00\x00\x00\x00\x00\x00\x00\x14\x00\x00\x00\xa0\x00\x00\x00\x78\xfe\xff\xff\x24\x00\x00\x00\x00\x41\x0e\x10\x47\x0e\x00\x00\x1c\x00\x00\x00\xb8\x00\x00\x00\x84\xfe\xff\xff\x5c\x00\x00\x00\x00\x41\x0e\x20\x9d\x04\x9e\x03\x55\xde\xdd\x0e\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".fini_array", 0x10D80, "\xc0\x07\x00\x00\x00\x00\x00\x00"), -Section(".dynamic", 0x10D88, "\x01\x00\x00\x00\x00\x00\x00\x00\x4b\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x55\x00\x00\x00\x00\x00\x00\x00\x0c\x00\x00\x00\x00\x00\x00\x00\x40\x06\x00\x00\x00\x00\x00\x00\x0d\x00\x00\x00\x00\x00\x00\x00\x9c\x08\x00\x00\x00\x00\x00\x00\x19\x00\x00\x00\x00\x00\x00\x00\x78\x0d\x01\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x1a\x00\x00\x00\x00\x00\x00\x00\x80\x0d\x01\x00\x00\x00\x00\x00\x1c\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\xf5\xfe\xff\x6f\x00\x00\x00\x00\x98\x02\x00\x00\x00\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\xc0\x03\x00\x00\x00\x00\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\xb8\x02\x00\x00\x00\x00\x00\x00\x0a\x00\x00\x00\x00\x00\x00\x00\xc6\x00\x00\x00\x00\x00\x00\x00\x0b\x00\x00\x00\x00\x00\x00\x00\x18\x00\x00\x00\x00\x00\x00\x00\x15\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x88\x0f\x01\x00\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x78\x00\x00\x00\x00\x00\x00\x00\x14\x00\x00\x00\x00\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x17\x00\x00\x00\x00\x00\x00\x00\xc8\x05\x00\x00\x00\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\xf0\x04\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\xd8\x00\x00\x00\x00\x00\x00\x00\x09\x00\x00\x00\x00\x00\x00\x00\x18\x00\x00\x00\x00\x00\x00\x00\x1e\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\xfb\xff\xff\x6f\x00\x00\x00\x00\x01\x00\x00\x08\x00\x00\x00\x00\xfe\xff\xff\x6f\x00\x00\x00\x00\xa0\x04\x00\x00\x00\x00\x00\x00\xff\xff\xff\x6f\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\xf0\xff\xff\x6f\x00\x00\x00\x00\x86\x04\x00\x00\x00\x00\x00\x00\xf9\xff\xff\x6f\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".init_array", 0x10D78, "\x10\x08\x00\x00\x00\x00\x00\x00"), -Section(".got", 0x10F88, "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x60\x06\x00\x00\x00\x00\x00\x00\x60\x06\x00\x00\x00\x00\x00\x00\x60\x06\x00\x00\x00\x00\x00\x00\x60\x06\x00\x00\x00\x00\x00\x00\x60\x06\x00\x00\x00\x00\x00\x00\x88\x0d\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".data", 0x11000, "\x00\x00\x00\x00\x00\x00\x00\x00\x08\x10\x01\x00\x00\x00\x00\x00")]), -Memmap([Annotation(Region(0x0,0x9D7), Attr("segment","02 0 2520")), -Annotation(Region(0x700,0x733), Attr("symbol","\"_start\"")), -Annotation(Region(0x0,0xF9), Attr("section","\".shstrtab\"")), -Annotation(Region(0x0,0x275), Attr("section","\".strtab\"")), -Annotation(Region(0x0,0x86F), Attr("section","\".symtab\"")), -Annotation(Region(0x0,0x2A), Attr("section","\".comment\"")), -Annotation(Region(0x238,0x252), Attr("section","\".interp\"")), -Annotation(Region(0x254,0x277), Attr("section","\".note.gnu.build-id\"")), -Annotation(Region(0x278,0x297), Attr("section","\".note.ABI-tag\"")), -Annotation(Region(0x298,0x2B3), Attr("section","\".gnu.hash\"")), -Annotation(Region(0x2B8,0x3BF), Attr("section","\".dynsym\"")), -Annotation(Region(0x3C0,0x485), Attr("section","\".dynstr\"")), -Annotation(Region(0x486,0x49B), Attr("section","\".gnu.version\"")), -Annotation(Region(0x4A0,0x4EF), Attr("section","\".gnu.version_r\"")), -Annotation(Region(0x4F0,0x5C7), Attr("section","\".rela.dyn\"")), -Annotation(Region(0x5C8,0x63F), Attr("section","\".rela.plt\"")), -Annotation(Region(0x640,0x657), Attr("section","\".init\"")), -Annotation(Region(0x660,0x6CF), Attr("section","\".plt\"")), -Annotation(Region(0x640,0x657), Attr("code-region","()")), -Annotation(Region(0x660,0x6CF), Attr("code-region","()")), -Annotation(Region(0x700,0x733), Attr("symbol-info","_start 0x700 52")), -Annotation(Region(0x734,0x747), Attr("symbol","\"call_weak_fn\"")), -Annotation(Region(0x734,0x747), Attr("symbol-info","call_weak_fn 0x734 20")), -Annotation(Region(0x814,0x81B), Attr("symbol","\"seven\"")), -Annotation(Region(0x700,0x89B), Attr("section","\".text\"")), -Annotation(Region(0x700,0x89B), Attr("code-region","()")), -Annotation(Region(0x814,0x81B), Attr("symbol-info","seven 0x814 8")), -Annotation(Region(0x81C,0x83F), Attr("symbol","\"get_call\"")), -Annotation(Region(0x81C,0x83F), Attr("symbol-info","get_call 0x81C 36")), -Annotation(Region(0x840,0x89B), Attr("symbol","\"main\"")), -Annotation(Region(0x840,0x89B), Attr("symbol-info","main 0x840 92")), -Annotation(Region(0x89C,0x8AF), Attr("section","\".fini\"")), -Annotation(Region(0x89C,0x8AF), Attr("code-region","()")), -Annotation(Region(0x8B0,0x8B3), Attr("section","\".rodata\"")), -Annotation(Region(0x8B4,0x8FF), Attr("section","\".eh_frame_hdr\"")), -Annotation(Region(0x900,0x9D7), Attr("section","\".eh_frame\"")), -Annotation(Region(0x10D78,0x1100F), Attr("segment","03 0x10D78 672")), -Annotation(Region(0x10D80,0x10D87), Attr("section","\".fini_array\"")), -Annotation(Region(0x10D88,0x10F87), Attr("section","\".dynamic\"")), -Annotation(Region(0x10D78,0x10D7F), Attr("section","\".init_array\"")), -Annotation(Region(0x10F88,0x10FFF), Attr("section","\".got\"")), -Annotation(Region(0x11000,0x1100F), Attr("section","\".data\""))]), -Program(Tid(1_707, "%000006ab"), Attrs([]), - Subs([Sub(Tid(1_681, "@__cxa_finalize"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x690"), -Attr("stub","()")]), "__cxa_finalize", Args([Arg(Tid(1_708, "%000006ac"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("__cxa_finalize_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(1_138, "@__cxa_finalize"), - Attrs([Attr("address","0x690")]), Phis([]), -Defs([Def(Tid(1_402, "%0000057a"), Attrs([Attr("address","0x690"), -Attr("insn","adrp x16, #65536")]), Var("R16",Imm(64)), Int(65536,64)), -Def(Tid(1_409, "%00000581"), Attrs([Attr("address","0x694"), -Attr("insn","ldr x17, [x16, #0xfa8]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(4008,64)),LittleEndian(),64)), -Def(Tid(1_415, "%00000587"), Attrs([Attr("address","0x698"), -Attr("insn","add x16, x16, #0xfa8")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(4008,64)))]), Jmps([Call(Tid(1_420, "%0000058c"), - Attrs([Attr("address","0x69C"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), -Sub(Tid(1_682, "@__do_global_dtors_aux"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x7C0")]), - "__do_global_dtors_aux", Args([Arg(Tid(1_709, "%000006ad"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("__do_global_dtors_aux_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(726, "@__do_global_dtors_aux"), - Attrs([Attr("address","0x7C0")]), Phis([]), Defs([Def(Tid(730, "%000002da"), - Attrs([Attr("address","0x7C0"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("#3",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(18446744073709551584,64))), -Def(Tid(736, "%000002e0"), Attrs([Attr("address","0x7C0"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("#3",Imm(64)),Var("R29",Imm(64)),LittleEndian(),64)), -Def(Tid(742, "%000002e6"), Attrs([Attr("address","0x7C0"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("#3",Imm(64)),Int(8,64)),Var("R30",Imm(64)),LittleEndian(),64)), -Def(Tid(746, "%000002ea"), Attrs([Attr("address","0x7C0"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("R31",Imm(64)), -Var("#3",Imm(64))), Def(Tid(752, "%000002f0"), - Attrs([Attr("address","0x7C4"), Attr("insn","mov x29, sp")]), - Var("R29",Imm(64)), Var("R31",Imm(64))), Def(Tid(760, "%000002f8"), - Attrs([Attr("address","0x7C8"), Attr("insn","str x19, [sp, #0x10]")]), - Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(16,64)),Var("R19",Imm(64)),LittleEndian(),64)), -Def(Tid(765, "%000002fd"), Attrs([Attr("address","0x7CC"), -Attr("insn","adrp x19, #69632")]), Var("R19",Imm(64)), Int(69632,64)), -Def(Tid(772, "%00000304"), Attrs([Attr("address","0x7D0"), -Attr("insn","ldrb w0, [x19, #0x10]")]), Var("R0",Imm(64)), -UNSIGNED(64,Load(Var("mem",Mem(64,8)),PLUS(Var("R19",Imm(64)),Int(16,64)),LittleEndian(),8)))]), -Jmps([Goto(Tid(779, "%0000030b"), Attrs([Attr("address","0x7D4"), -Attr("insn","cbnz w0, #0x28")]), - NEQ(Extract(31,0,Var("R0",Imm(64))),Int(0,32)), -Direct(Tid(777, "%00000309"))), Goto(Tid(1_683, "%00000693"), Attrs([]), - Int(1,1), Direct(Tid(1_083, "%0000043b")))])), Blk(Tid(1_083, "%0000043b"), - Attrs([Attr("address","0x7D8")]), Phis([]), -Defs([Def(Tid(1_086, "%0000043e"), Attrs([Attr("address","0x7D8"), -Attr("insn","adrp x0, #65536")]), Var("R0",Imm(64)), Int(65536,64)), -Def(Tid(1_093, "%00000445"), Attrs([Attr("address","0x7DC"), -Attr("insn","ldr x0, [x0, #0xfd8]")]), Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(4056,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(1_099, "%0000044b"), Attrs([Attr("address","0x7E0"), -Attr("insn","cbz x0, #0x10")]), EQ(Var("R0",Imm(64)),Int(0,64)), -Direct(Tid(1_097, "%00000449"))), Goto(Tid(1_684, "%00000694"), Attrs([]), - Int(1,1), Direct(Tid(1_122, "%00000462")))])), Blk(Tid(1_122, "%00000462"), - Attrs([Attr("address","0x7E4")]), Phis([]), -Defs([Def(Tid(1_125, "%00000465"), Attrs([Attr("address","0x7E4"), -Attr("insn","adrp x0, #69632")]), Var("R0",Imm(64)), Int(69632,64)), -Def(Tid(1_132, "%0000046c"), Attrs([Attr("address","0x7E8"), -Attr("insn","ldr x0, [x0, #0x8]")]), Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(1_137, "%00000471"), Attrs([Attr("address","0x7EC"), -Attr("insn","bl #-0x15c")]), Var("R30",Imm(64)), Int(2032,64))]), -Jmps([Call(Tid(1_140, "%00000474"), Attrs([Attr("address","0x7EC"), -Attr("insn","bl #-0x15c")]), Int(1,1), -(Direct(Tid(1_681, "@__cxa_finalize")),Direct(Tid(1_097, "%00000449"))))])), -Blk(Tid(1_097, "%00000449"), Attrs([Attr("address","0x7F0")]), Phis([]), -Defs([Def(Tid(1_105, "%00000451"), Attrs([Attr("address","0x7F0"), -Attr("insn","bl #-0xa0")]), Var("R30",Imm(64)), Int(2036,64))]), -Jmps([Call(Tid(1_107, "%00000453"), Attrs([Attr("address","0x7F0"), -Attr("insn","bl #-0xa0")]), Int(1,1), -(Direct(Tid(1_696, "@deregister_tm_clones")),Direct(Tid(1_109, "%00000455"))))])), -Blk(Tid(1_109, "%00000455"), Attrs([Attr("address","0x7F4")]), Phis([]), -Defs([Def(Tid(1_112, "%00000458"), Attrs([Attr("address","0x7F4"), -Attr("insn","mov w0, #0x1")]), Var("R0",Imm(64)), Int(1,64)), -Def(Tid(1_120, "%00000460"), Attrs([Attr("address","0x7F8"), -Attr("insn","strb w0, [x19, #0x10]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R19",Imm(64)),Int(16,64)),Extract(7,0,Var("R0",Imm(64))),LittleEndian(),8))]), -Jmps([Goto(Tid(1_685, "%00000695"), Attrs([]), Int(1,1), -Direct(Tid(777, "%00000309")))])), Blk(Tid(777, "%00000309"), - Attrs([Attr("address","0x7FC")]), Phis([]), Defs([Def(Tid(787, "%00000313"), - Attrs([Attr("address","0x7FC"), Attr("insn","ldr x19, [sp, #0x10]")]), - Var("R19",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(16,64)),LittleEndian(),64)), -Def(Tid(794, "%0000031a"), Attrs([Attr("address","0x800"), -Attr("insn","ldp x29, x30, [sp], #0x20")]), Var("R29",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(799, "%0000031f"), Attrs([Attr("address","0x800"), -Attr("insn","ldp x29, x30, [sp], #0x20")]), Var("R30",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(803, "%00000323"), Attrs([Attr("address","0x800"), -Attr("insn","ldp x29, x30, [sp], #0x20")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(32,64)))]), Jmps([Call(Tid(808, "%00000328"), - Attrs([Attr("address","0x804"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), Sub(Tid(1_686, "@__libc_start_main"), - Attrs([Attr("c.proto","signed (*)(signed (*)(signed , char** , char** );* main, signed , char** , \nvoid* auxv)"), -Attr("address","0x680"), Attr("stub","()")]), "__libc_start_main", - Args([Arg(Tid(1_710, "%000006ae"), - Attrs([Attr("c.layout","**[ : 64]"), -Attr("c.data","Top:u64 ptr ptr"), -Attr("c.type","signed (*)(signed , char** , char** );*")]), - Var("__libc_start_main_main",Imm(64)), Var("R0",Imm(64)), In()), -Arg(Tid(1_711, "%000006af"), Attrs([Attr("c.layout","[signed : 32]"), -Attr("c.data","Top:u32"), Attr("c.type","signed")]), - Var("__libc_start_main_arg2",Imm(32)), LOW(32,Var("R1",Imm(64))), In()), -Arg(Tid(1_712, "%000006b0"), Attrs([Attr("c.layout","**[char : 8]"), -Attr("c.data","Top:u8 ptr ptr"), Attr("c.type","char**")]), - Var("__libc_start_main_arg3",Imm(64)), Var("R2",Imm(64)), Both()), -Arg(Tid(1_713, "%000006b1"), Attrs([Attr("c.layout","*[ : 8]"), -Attr("c.data","{} ptr"), Attr("c.type","void*")]), - Var("__libc_start_main_auxv",Imm(64)), Var("R3",Imm(64)), Both()), -Arg(Tid(1_714, "%000006b2"), Attrs([Attr("c.layout","[signed : 32]"), -Attr("c.data","Top:u32"), Attr("c.type","signed")]), - Var("__libc_start_main_result",Imm(32)), LOW(32,Var("R0",Imm(64))), -Out())]), Blks([Blk(Tid(559, "@__libc_start_main"), - Attrs([Attr("address","0x680")]), Phis([]), -Defs([Def(Tid(1_380, "%00000564"), Attrs([Attr("address","0x680"), -Attr("insn","adrp x16, #65536")]), Var("R16",Imm(64)), Int(65536,64)), -Def(Tid(1_387, "%0000056b"), Attrs([Attr("address","0x684"), -Attr("insn","ldr x17, [x16, #0xfa0]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(4000,64)),LittleEndian(),64)), -Def(Tid(1_393, "%00000571"), Attrs([Attr("address","0x688"), -Attr("insn","add x16, x16, #0xfa0")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(4000,64)))]), Jmps([Call(Tid(1_398, "%00000576"), - Attrs([Attr("address","0x68C"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), Sub(Tid(1_687, "@__stack_chk_fail"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x6A0"), -Attr("stub","()")]), "__stack_chk_fail", Args([Arg(Tid(1_715, "%000006b3"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("__stack_chk_fail_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(1_079, "@__stack_chk_fail"), Attrs([Attr("address","0x6A0")]), - Phis([]), Defs([Def(Tid(1_424, "%00000590"), Attrs([Attr("address","0x6A0"), -Attr("insn","adrp x16, #65536")]), Var("R16",Imm(64)), Int(65536,64)), -Def(Tid(1_431, "%00000597"), Attrs([Attr("address","0x6A4"), -Attr("insn","ldr x17, [x16, #0xfb0]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(4016,64)),LittleEndian(),64)), -Def(Tid(1_437, "%0000059d"), Attrs([Attr("address","0x6A8"), -Attr("insn","add x16, x16, #0xfb0")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(4016,64)))]), Jmps([Call(Tid(1_442, "%000005a2"), - Attrs([Attr("address","0x6AC"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), Sub(Tid(1_688, "@_fini"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x89C")]), - "_fini", Args([Arg(Tid(1_716, "%000006b4"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("_fini_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(31, "@_fini"), - Attrs([Attr("address","0x89C")]), Phis([]), Defs([Def(Tid(37, "%00000025"), - Attrs([Attr("address","0x8A0"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("#0",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(18446744073709551600,64))), -Def(Tid(43, "%0000002b"), Attrs([Attr("address","0x8A0"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("#0",Imm(64)),Var("R29",Imm(64)),LittleEndian(),64)), -Def(Tid(49, "%00000031"), Attrs([Attr("address","0x8A0"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("#0",Imm(64)),Int(8,64)),Var("R30",Imm(64)),LittleEndian(),64)), -Def(Tid(53, "%00000035"), Attrs([Attr("address","0x8A0"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("R31",Imm(64)), -Var("#0",Imm(64))), Def(Tid(59, "%0000003b"), Attrs([Attr("address","0x8A4"), -Attr("insn","mov x29, sp")]), Var("R29",Imm(64)), Var("R31",Imm(64))), -Def(Tid(66, "%00000042"), Attrs([Attr("address","0x8A8"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R29",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(71, "%00000047"), Attrs([Attr("address","0x8A8"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R30",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(75, "%0000004b"), Attrs([Attr("address","0x8A8"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(16,64)))]), Jmps([Call(Tid(80, "%00000050"), - Attrs([Attr("address","0x8AC"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), Sub(Tid(1_689, "@_init"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x640")]), - "_init", Args([Arg(Tid(1_717, "%000006b5"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("_init_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(1_514, "@_init"), - Attrs([Attr("address","0x640")]), Phis([]), -Defs([Def(Tid(1_520, "%000005f0"), Attrs([Attr("address","0x644"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("#8",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(18446744073709551600,64))), -Def(Tid(1_526, "%000005f6"), Attrs([Attr("address","0x644"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("#8",Imm(64)),Var("R29",Imm(64)),LittleEndian(),64)), -Def(Tid(1_532, "%000005fc"), Attrs([Attr("address","0x644"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("#8",Imm(64)),Int(8,64)),Var("R30",Imm(64)),LittleEndian(),64)), -Def(Tid(1_536, "%00000600"), Attrs([Attr("address","0x644"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("R31",Imm(64)), -Var("#8",Imm(64))), Def(Tid(1_542, "%00000606"), - Attrs([Attr("address","0x648"), Attr("insn","mov x29, sp")]), - Var("R29",Imm(64)), Var("R31",Imm(64))), Def(Tid(1_547, "%0000060b"), - Attrs([Attr("address","0x64C"), Attr("insn","bl #0xe8")]), - Var("R30",Imm(64)), Int(1616,64))]), Jmps([Call(Tid(1_549, "%0000060d"), - Attrs([Attr("address","0x64C"), Attr("insn","bl #0xe8")]), Int(1,1), -(Direct(Tid(1_694, "@call_weak_fn")),Direct(Tid(1_551, "%0000060f"))))])), -Blk(Tid(1_551, "%0000060f"), Attrs([Attr("address","0x650")]), Phis([]), -Defs([Def(Tid(1_556, "%00000614"), Attrs([Attr("address","0x650"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R29",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(1_561, "%00000619"), Attrs([Attr("address","0x650"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R30",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(1_565, "%0000061d"), Attrs([Attr("address","0x650"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(16,64)))]), Jmps([Call(Tid(1_570, "%00000622"), - Attrs([Attr("address","0x654"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), Sub(Tid(1_690, "@_start"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x700"), -Attr("entry-point","()")]), "_start", Args([Arg(Tid(1_718, "%000006b6"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("_start_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(496, "@_start"), - Attrs([Attr("address","0x700")]), Phis([]), Defs([Def(Tid(501, "%000001f5"), - Attrs([Attr("address","0x704"), Attr("insn","mov x29, #0x0")]), - Var("R29",Imm(64)), Int(0,64)), Def(Tid(506, "%000001fa"), - Attrs([Attr("address","0x708"), Attr("insn","mov x30, #0x0")]), - Var("R30",Imm(64)), Int(0,64)), Def(Tid(512, "%00000200"), - Attrs([Attr("address","0x70C"), Attr("insn","mov x5, x0")]), - Var("R5",Imm(64)), Var("R0",Imm(64))), Def(Tid(519, "%00000207"), - Attrs([Attr("address","0x710"), Attr("insn","ldr x1, [sp]")]), - Var("R1",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(525, "%0000020d"), Attrs([Attr("address","0x714"), -Attr("insn","add x2, sp, #0x8")]), Var("R2",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(8,64))), Def(Tid(531, "%00000213"), - Attrs([Attr("address","0x718"), Attr("insn","mov x6, sp")]), - Var("R6",Imm(64)), Var("R31",Imm(64))), Def(Tid(536, "%00000218"), - Attrs([Attr("address","0x71C"), Attr("insn","adrp x0, #65536")]), - Var("R0",Imm(64)), Int(65536,64)), Def(Tid(543, "%0000021f"), - Attrs([Attr("address","0x720"), Attr("insn","ldr x0, [x0, #0xff0]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(4080,64)),LittleEndian(),64)), -Def(Tid(548, "%00000224"), Attrs([Attr("address","0x724"), -Attr("insn","mov x3, #0x0")]), Var("R3",Imm(64)), Int(0,64)), -Def(Tid(553, "%00000229"), Attrs([Attr("address","0x728"), -Attr("insn","mov x4, #0x0")]), Var("R4",Imm(64)), Int(0,64)), -Def(Tid(558, "%0000022e"), Attrs([Attr("address","0x72C"), -Attr("insn","bl #-0xac")]), Var("R30",Imm(64)), Int(1840,64))]), -Jmps([Call(Tid(561, "%00000231"), Attrs([Attr("address","0x72C"), -Attr("insn","bl #-0xac")]), Int(1,1), -(Direct(Tid(1_686, "@__libc_start_main")),Direct(Tid(563, "%00000233"))))])), -Blk(Tid(563, "%00000233"), Attrs([Attr("address","0x730")]), Phis([]), -Defs([Def(Tid(566, "%00000236"), Attrs([Attr("address","0x730"), -Attr("insn","bl #-0x70")]), Var("R30",Imm(64)), Int(1844,64))]), -Jmps([Call(Tid(569, "%00000239"), Attrs([Attr("address","0x730"), -Attr("insn","bl #-0x70")]), Int(1,1), -(Direct(Tid(1_693, "@abort")),Direct(Tid(1_691, "%0000069b"))))])), -Blk(Tid(1_691, "%0000069b"), Attrs([]), Phis([]), Defs([]), -Jmps([Call(Tid(1_692, "%0000069c"), Attrs([]), Int(1,1), -(Direct(Tid(1_694, "@call_weak_fn")),))]))])), Sub(Tid(1_693, "@abort"), - Attrs([Attr("noreturn","()"), Attr("c.proto","void (*)(void)"), -Attr("address","0x6C0"), Attr("stub","()")]), "abort", Args([]), -Blks([Blk(Tid(567, "@abort"), Attrs([Attr("address","0x6C0")]), Phis([]), -Defs([Def(Tid(1_468, "%000005bc"), Attrs([Attr("address","0x6C0"), -Attr("insn","adrp x16, #65536")]), Var("R16",Imm(64)), Int(65536,64)), -Def(Tid(1_475, "%000005c3"), Attrs([Attr("address","0x6C4"), -Attr("insn","ldr x17, [x16, #0xfc0]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(4032,64)),LittleEndian(),64)), -Def(Tid(1_481, "%000005c9"), Attrs([Attr("address","0x6C8"), -Attr("insn","add x16, x16, #0xfc0")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(4032,64)))]), Jmps([Call(Tid(1_486, "%000005ce"), - Attrs([Attr("address","0x6CC"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), Sub(Tid(1_694, "@call_weak_fn"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x734")]), - "call_weak_fn", Args([Arg(Tid(1_719, "%000006b7"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("call_weak_fn_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(571, "@call_weak_fn"), - Attrs([Attr("address","0x734")]), Phis([]), Defs([Def(Tid(574, "%0000023e"), - Attrs([Attr("address","0x734"), Attr("insn","adrp x0, #65536")]), - Var("R0",Imm(64)), Int(65536,64)), Def(Tid(581, "%00000245"), - Attrs([Attr("address","0x738"), Attr("insn","ldr x0, [x0, #0xfe0]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(4064,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(587, "%0000024b"), Attrs([Attr("address","0x73C"), -Attr("insn","cbz x0, #0x8")]), EQ(Var("R0",Imm(64)),Int(0,64)), -Direct(Tid(585, "%00000249"))), Goto(Tid(1_695, "%0000069f"), Attrs([]), - Int(1,1), Direct(Tid(1_202, "%000004b2")))])), Blk(Tid(585, "%00000249"), - Attrs([Attr("address","0x744")]), Phis([]), Defs([]), -Jmps([Call(Tid(593, "%00000251"), Attrs([Attr("address","0x744"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))])), -Blk(Tid(1_202, "%000004b2"), Attrs([Attr("address","0x740")]), Phis([]), -Defs([]), Jmps([Goto(Tid(1_205, "%000004b5"), Attrs([Attr("address","0x740"), -Attr("insn","b #-0x90")]), Int(1,1), -Direct(Tid(1_203, "@__gmon_start__")))])), Blk(Tid(1_203, "@__gmon_start__"), - Attrs([Attr("address","0x6B0")]), Phis([]), -Defs([Def(Tid(1_446, "%000005a6"), Attrs([Attr("address","0x6B0"), -Attr("insn","adrp x16, #65536")]), Var("R16",Imm(64)), Int(65536,64)), -Def(Tid(1_453, "%000005ad"), Attrs([Attr("address","0x6B4"), -Attr("insn","ldr x17, [x16, #0xfb8]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(4024,64)),LittleEndian(),64)), -Def(Tid(1_459, "%000005b3"), Attrs([Attr("address","0x6B8"), -Attr("insn","add x16, x16, #0xfb8")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(4024,64)))]), Jmps([Call(Tid(1_464, "%000005b8"), - Attrs([Attr("address","0x6BC"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), -Sub(Tid(1_696, "@deregister_tm_clones"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x750")]), - "deregister_tm_clones", Args([Arg(Tid(1_720, "%000006b8"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("deregister_tm_clones_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(599, "@deregister_tm_clones"), - Attrs([Attr("address","0x750")]), Phis([]), Defs([Def(Tid(602, "%0000025a"), - Attrs([Attr("address","0x750"), Attr("insn","adrp x0, #69632")]), - Var("R0",Imm(64)), Int(69632,64)), Def(Tid(608, "%00000260"), - Attrs([Attr("address","0x754"), Attr("insn","add x0, x0, #0x10")]), - Var("R0",Imm(64)), PLUS(Var("R0",Imm(64)),Int(16,64))), -Def(Tid(613, "%00000265"), Attrs([Attr("address","0x758"), -Attr("insn","adrp x1, #69632")]), Var("R1",Imm(64)), Int(69632,64)), -Def(Tid(619, "%0000026b"), Attrs([Attr("address","0x75C"), -Attr("insn","add x1, x1, #0x10")]), Var("R1",Imm(64)), -PLUS(Var("R1",Imm(64)),Int(16,64))), Def(Tid(625, "%00000271"), - Attrs([Attr("address","0x760"), Attr("insn","cmp x1, x0")]), - Var("#1",Imm(64)), NOT(Var("R0",Imm(64)))), Def(Tid(630, "%00000276"), - Attrs([Attr("address","0x760"), Attr("insn","cmp x1, x0")]), - Var("#2",Imm(64)), PLUS(Var("R1",Imm(64)),NOT(Var("R0",Imm(64))))), -Def(Tid(636, "%0000027c"), Attrs([Attr("address","0x760"), -Attr("insn","cmp x1, x0")]), Var("VF",Imm(1)), -NEQ(SIGNED(65,PLUS(Var("#2",Imm(64)),Int(1,64))),PLUS(PLUS(SIGNED(65,Var("R1",Imm(64))),SIGNED(65,Var("#1",Imm(64)))),Int(1,65)))), -Def(Tid(642, "%00000282"), Attrs([Attr("address","0x760"), -Attr("insn","cmp x1, x0")]), Var("CF",Imm(1)), -NEQ(UNSIGNED(65,PLUS(Var("#2",Imm(64)),Int(1,64))),PLUS(PLUS(UNSIGNED(65,Var("R1",Imm(64))),UNSIGNED(65,Var("#1",Imm(64)))),Int(1,65)))), -Def(Tid(646, "%00000286"), Attrs([Attr("address","0x760"), -Attr("insn","cmp x1, x0")]), Var("ZF",Imm(1)), -EQ(PLUS(Var("#2",Imm(64)),Int(1,64)),Int(0,64))), Def(Tid(650, "%0000028a"), - Attrs([Attr("address","0x760"), Attr("insn","cmp x1, x0")]), - Var("NF",Imm(1)), Extract(63,63,PLUS(Var("#2",Imm(64)),Int(1,64))))]), -Jmps([Goto(Tid(656, "%00000290"), Attrs([Attr("address","0x764"), -Attr("insn","b.eq #0x18")]), EQ(Var("ZF",Imm(1)),Int(1,1)), -Direct(Tid(654, "%0000028e"))), Goto(Tid(1_697, "%000006a1"), Attrs([]), - Int(1,1), Direct(Tid(1_172, "%00000494")))])), Blk(Tid(1_172, "%00000494"), - Attrs([Attr("address","0x768")]), Phis([]), -Defs([Def(Tid(1_175, "%00000497"), Attrs([Attr("address","0x768"), -Attr("insn","adrp x1, #65536")]), Var("R1",Imm(64)), Int(65536,64)), -Def(Tid(1_182, "%0000049e"), Attrs([Attr("address","0x76C"), -Attr("insn","ldr x1, [x1, #0xfd0]")]), Var("R1",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R1",Imm(64)),Int(4048,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(1_187, "%000004a3"), Attrs([Attr("address","0x770"), -Attr("insn","cbz x1, #0xc")]), EQ(Var("R1",Imm(64)),Int(0,64)), -Direct(Tid(654, "%0000028e"))), Goto(Tid(1_698, "%000006a2"), Attrs([]), - Int(1,1), Direct(Tid(1_191, "%000004a7")))])), Blk(Tid(654, "%0000028e"), - Attrs([Attr("address","0x77C")]), Phis([]), Defs([]), -Jmps([Call(Tid(662, "%00000296"), Attrs([Attr("address","0x77C"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))])), -Blk(Tid(1_191, "%000004a7"), Attrs([Attr("address","0x774")]), Phis([]), -Defs([Def(Tid(1_195, "%000004ab"), Attrs([Attr("address","0x774"), -Attr("insn","mov x16, x1")]), Var("R16",Imm(64)), Var("R1",Imm(64)))]), -Jmps([Call(Tid(1_200, "%000004b0"), Attrs([Attr("address","0x778"), -Attr("insn","br x16")]), Int(1,1), (Indirect(Var("R16",Imm(64))),))]))])), -Sub(Tid(1_699, "@frame_dummy"), Attrs([Attr("c.proto","signed (*)(void)"), -Attr("address","0x810")]), "frame_dummy", Args([Arg(Tid(1_721, "%000006b9"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("frame_dummy_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(814, "@frame_dummy"), - Attrs([Attr("address","0x810")]), Phis([]), Defs([]), -Jmps([Call(Tid(816, "%00000330"), Attrs([Attr("address","0x810"), -Attr("insn","b #-0x90")]), Int(1,1), -(Direct(Tid(1_703, "@register_tm_clones")),))]))])), -Sub(Tid(1_700, "@get_call"), Attrs([Attr("c.proto","signed (*)(void)"), -Attr("address","0x81C")]), "get_call", Args([Arg(Tid(1_722, "%000006ba"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("get_call_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(828, "@get_call"), - Attrs([Attr("address","0x81C")]), Phis([]), Defs([Def(Tid(832, "%00000340"), - Attrs([Attr("address","0x81C"), Attr("insn","sub sp, sp, #0x10")]), - Var("R31",Imm(64)), PLUS(Var("R31",Imm(64)),Int(18446744073709551600,64))), -Def(Tid(840, "%00000348"), Attrs([Attr("address","0x820"), -Attr("insn","str x0, [sp, #0x8]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),Var("R0",Imm(64)),LittleEndian(),64)), -Def(Tid(847, "%0000034f"), Attrs([Attr("address","0x824"), -Attr("insn","ldr x0, [sp, #0x8]")]), Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(852, "%00000354"), Attrs([Attr("address","0x828"), -Attr("insn","adrp x1, #0")]), Var("R1",Imm(64)), Int(0,64)), -Def(Tid(858, "%0000035a"), Attrs([Attr("address","0x82C"), -Attr("insn","add x1, x1, #0x814")]), Var("R1",Imm(64)), -PLUS(Var("R1",Imm(64)),Int(2068,64))), Def(Tid(866, "%00000362"), - Attrs([Attr("address","0x830"), Attr("insn","str x1, [x0]")]), - Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("R0",Imm(64)),Var("R1",Imm(64)),LittleEndian(),64)), -Def(Tid(874, "%0000036a"), Attrs([Attr("address","0x838"), -Attr("insn","add sp, sp, #0x10")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(16,64)))]), Jmps([Call(Tid(879, "%0000036f"), - Attrs([Attr("address","0x83C"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), Sub(Tid(1_701, "@main"), - Attrs([Attr("c.proto","signed (*)(signed argc, const char** argv)"), -Attr("address","0x840")]), "main", Args([Arg(Tid(1_723, "%000006bb"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("main_argc",Imm(32)), -LOW(32,Var("R0",Imm(64))), In()), Arg(Tid(1_724, "%000006bc"), - Attrs([Attr("c.layout","**[char : 8]"), Attr("c.data","Top:u8 ptr ptr"), -Attr("c.type"," const char**")]), Var("main_argv",Imm(64)), -Var("R1",Imm(64)), Both()), Arg(Tid(1_725, "%000006bd"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("main_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(881, "@main"), - Attrs([Attr("address","0x840")]), Phis([]), Defs([Def(Tid(885, "%00000375"), - Attrs([Attr("address","0x840"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("#4",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(18446744073709551584,64))), -Def(Tid(891, "%0000037b"), Attrs([Attr("address","0x840"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("#4",Imm(64)),Var("R29",Imm(64)),LittleEndian(),64)), -Def(Tid(897, "%00000381"), Attrs([Attr("address","0x840"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("#4",Imm(64)),Int(8,64)),Var("R30",Imm(64)),LittleEndian(),64)), -Def(Tid(901, "%00000385"), Attrs([Attr("address","0x840"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("R31",Imm(64)), -Var("#4",Imm(64))), Def(Tid(907, "%0000038b"), - Attrs([Attr("address","0x844"), Attr("insn","mov x29, sp")]), - Var("R29",Imm(64)), Var("R31",Imm(64))), Def(Tid(912, "%00000390"), - Attrs([Attr("address","0x848"), Attr("insn","adrp x0, #65536")]), - Var("R0",Imm(64)), Int(65536,64)), Def(Tid(919, "%00000397"), - Attrs([Attr("address","0x84C"), Attr("insn","ldr x0, [x0, #0xfe8]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(4072,64)),LittleEndian(),64)), -Def(Tid(926, "%0000039e"), Attrs([Attr("address","0x850"), -Attr("insn","ldr x1, [x0]")]), Var("R1",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R0",Imm(64)),LittleEndian(),64)), -Def(Tid(934, "%000003a6"), Attrs([Attr("address","0x854"), -Attr("insn","str x1, [sp, #0x18]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(24,64)),Var("R1",Imm(64)),LittleEndian(),64)), -Def(Tid(939, "%000003ab"), Attrs([Attr("address","0x858"), -Attr("insn","mov x1, #0x0")]), Var("R1",Imm(64)), Int(0,64)), -Def(Tid(945, "%000003b1"), Attrs([Attr("address","0x85C"), -Attr("insn","add x0, sp, #0x10")]), Var("R0",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(16,64))), Def(Tid(950, "%000003b6"), - Attrs([Attr("address","0x860"), Attr("insn","bl #-0x44")]), - Var("R30",Imm(64)), Int(2148,64))]), Jmps([Call(Tid(952, "%000003b8"), - Attrs([Attr("address","0x860"), Attr("insn","bl #-0x44")]), Int(1,1), -(Direct(Tid(1_700, "@get_call")),Direct(Tid(954, "%000003ba"))))])), -Blk(Tid(954, "%000003ba"), Attrs([Attr("address","0x864")]), Phis([]), -Defs([Def(Tid(959, "%000003bf"), Attrs([Attr("address","0x864"), -Attr("insn","ldr x0, [sp, #0x10]")]), Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(16,64)),LittleEndian(),64)), -Def(Tid(964, "%000003c4"), Attrs([Attr("address","0x868"), -Attr("insn","blr x0")]), Var("R30",Imm(64)), Int(2156,64))]), -Jmps([Call(Tid(967, "%000003c7"), Attrs([Attr("address","0x868"), -Attr("insn","blr x0")]), Int(1,1), -(Indirect(Var("R0",Imm(64))),Direct(Tid(969, "%000003c9"))))])), -Blk(Tid(969, "%000003c9"), Attrs([Attr("address","0x86C")]), Phis([]), -Defs([Def(Tid(973, "%000003cd"), Attrs([Attr("address","0x86C"), -Attr("insn","mov w1, w0")]), Var("R1",Imm(64)), -UNSIGNED(64,Extract(31,0,Var("R0",Imm(64))))), Def(Tid(978, "%000003d2"), - Attrs([Attr("address","0x870"), Attr("insn","adrp x0, #65536")]), - Var("R0",Imm(64)), Int(65536,64)), Def(Tid(985, "%000003d9"), - Attrs([Attr("address","0x874"), Attr("insn","ldr x0, [x0, #0xfe8]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(4072,64)),LittleEndian(),64)), -Def(Tid(992, "%000003e0"), Attrs([Attr("address","0x878"), -Attr("insn","ldr x3, [sp, #0x18]")]), Var("R3",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(24,64)),LittleEndian(),64)), -Def(Tid(999, "%000003e7"), Attrs([Attr("address","0x87C"), -Attr("insn","ldr x2, [x0]")]), Var("R2",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R0",Imm(64)),LittleEndian(),64)), -Def(Tid(1_005, "%000003ed"), Attrs([Attr("address","0x880"), -Attr("insn","subs x3, x3, x2")]), Var("#5",Imm(64)), NOT(Var("R2",Imm(64)))), -Def(Tid(1_010, "%000003f2"), Attrs([Attr("address","0x880"), -Attr("insn","subs x3, x3, x2")]), Var("#6",Imm(64)), -PLUS(Var("R3",Imm(64)),NOT(Var("R2",Imm(64))))), Def(Tid(1_016, "%000003f8"), - Attrs([Attr("address","0x880"), Attr("insn","subs x3, x3, x2")]), - Var("VF",Imm(1)), -NEQ(SIGNED(65,PLUS(Var("#6",Imm(64)),Int(1,64))),PLUS(PLUS(SIGNED(65,Var("R3",Imm(64))),SIGNED(65,Var("#5",Imm(64)))),Int(1,65)))), -Def(Tid(1_022, "%000003fe"), Attrs([Attr("address","0x880"), -Attr("insn","subs x3, x3, x2")]), Var("CF",Imm(1)), -NEQ(UNSIGNED(65,PLUS(Var("#6",Imm(64)),Int(1,64))),PLUS(PLUS(UNSIGNED(65,Var("R3",Imm(64))),UNSIGNED(65,Var("#5",Imm(64)))),Int(1,65)))), -Def(Tid(1_026, "%00000402"), Attrs([Attr("address","0x880"), -Attr("insn","subs x3, x3, x2")]), Var("ZF",Imm(1)), -EQ(PLUS(Var("#6",Imm(64)),Int(1,64)),Int(0,64))), -Def(Tid(1_030, "%00000406"), Attrs([Attr("address","0x880"), -Attr("insn","subs x3, x3, x2")]), Var("NF",Imm(1)), -Extract(63,63,PLUS(Var("#6",Imm(64)),Int(1,64)))), -Def(Tid(1_034, "%0000040a"), Attrs([Attr("address","0x880"), -Attr("insn","subs x3, x3, x2")]), Var("R3",Imm(64)), -PLUS(Var("#6",Imm(64)),Int(1,64))), Def(Tid(1_039, "%0000040f"), - Attrs([Attr("address","0x884"), Attr("insn","mov x2, #0x0")]), - Var("R2",Imm(64)), Int(0,64))]), Jmps([Goto(Tid(1_045, "%00000415"), - Attrs([Attr("address","0x888"), Attr("insn","b.eq #0x8")]), - EQ(Var("ZF",Imm(1)),Int(1,1)), Direct(Tid(1_043, "%00000413"))), -Goto(Tid(1_702, "%000006a6"), Attrs([]), Int(1,1), -Direct(Tid(1_075, "%00000433")))])), Blk(Tid(1_075, "%00000433"), - Attrs([Attr("address","0x88C")]), Phis([]), -Defs([Def(Tid(1_078, "%00000436"), Attrs([Attr("address","0x88C"), -Attr("insn","bl #-0x1ec")]), Var("R30",Imm(64)), Int(2192,64))]), -Jmps([Call(Tid(1_081, "%00000439"), Attrs([Attr("address","0x88C"), -Attr("insn","bl #-0x1ec")]), Int(1,1), -(Direct(Tid(1_687, "@__stack_chk_fail")),Direct(Tid(1_043, "%00000413"))))])), -Blk(Tid(1_043, "%00000413"), Attrs([Attr("address","0x890")]), Phis([]), -Defs([Def(Tid(1_052, "%0000041c"), Attrs([Attr("address","0x890"), -Attr("insn","mov w0, w1")]), Var("R0",Imm(64)), -UNSIGNED(64,Extract(31,0,Var("R1",Imm(64))))), Def(Tid(1_059, "%00000423"), - Attrs([Attr("address","0x894"), Attr("insn","ldp x29, x30, [sp], #0x20")]), - Var("R29",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(1_064, "%00000428"), Attrs([Attr("address","0x894"), -Attr("insn","ldp x29, x30, [sp], #0x20")]), Var("R30",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(1_068, "%0000042c"), Attrs([Attr("address","0x894"), -Attr("insn","ldp x29, x30, [sp], #0x20")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(32,64)))]), Jmps([Call(Tid(1_073, "%00000431"), - Attrs([Attr("address","0x898"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), -Sub(Tid(1_703, "@register_tm_clones"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x780")]), - "register_tm_clones", Args([Arg(Tid(1_726, "%000006be"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("register_tm_clones_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(664, "@register_tm_clones"), Attrs([Attr("address","0x780")]), - Phis([]), Defs([Def(Tid(667, "%0000029b"), Attrs([Attr("address","0x780"), -Attr("insn","adrp x0, #69632")]), Var("R0",Imm(64)), Int(69632,64)), -Def(Tid(673, "%000002a1"), Attrs([Attr("address","0x784"), -Attr("insn","add x0, x0, #0x10")]), Var("R0",Imm(64)), -PLUS(Var("R0",Imm(64)),Int(16,64))), Def(Tid(678, "%000002a6"), - Attrs([Attr("address","0x788"), Attr("insn","adrp x1, #69632")]), - Var("R1",Imm(64)), Int(69632,64)), Def(Tid(684, "%000002ac"), - Attrs([Attr("address","0x78C"), Attr("insn","add x1, x1, #0x10")]), - Var("R1",Imm(64)), PLUS(Var("R1",Imm(64)),Int(16,64))), -Def(Tid(691, "%000002b3"), Attrs([Attr("address","0x790"), -Attr("insn","sub x1, x1, x0")]), Var("R1",Imm(64)), -PLUS(PLUS(Var("R1",Imm(64)),NOT(Var("R0",Imm(64)))),Int(1,64))), -Def(Tid(697, "%000002b9"), Attrs([Attr("address","0x794"), -Attr("insn","lsr x2, x1, #63")]), Var("R2",Imm(64)), -Concat(Int(0,63),Extract(63,63,Var("R1",Imm(64))))), -Def(Tid(704, "%000002c0"), Attrs([Attr("address","0x798"), -Attr("insn","add x1, x2, x1, asr #3")]), Var("R1",Imm(64)), -PLUS(Var("R2",Imm(64)),ARSHIFT(Var("R1",Imm(64)),Int(3,3)))), -Def(Tid(710, "%000002c6"), Attrs([Attr("address","0x79C"), -Attr("insn","asr x1, x1, #1")]), Var("R1",Imm(64)), -SIGNED(64,Extract(63,1,Var("R1",Imm(64)))))]), -Jmps([Goto(Tid(716, "%000002cc"), Attrs([Attr("address","0x7A0"), -Attr("insn","cbz x1, #0x18")]), EQ(Var("R1",Imm(64)),Int(0,64)), -Direct(Tid(714, "%000002ca"))), Goto(Tid(1_704, "%000006a8"), Attrs([]), - Int(1,1), Direct(Tid(1_142, "%00000476")))])), Blk(Tid(1_142, "%00000476"), - Attrs([Attr("address","0x7A4")]), Phis([]), -Defs([Def(Tid(1_145, "%00000479"), Attrs([Attr("address","0x7A4"), -Attr("insn","adrp x2, #65536")]), Var("R2",Imm(64)), Int(65536,64)), -Def(Tid(1_152, "%00000480"), Attrs([Attr("address","0x7A8"), -Attr("insn","ldr x2, [x2, #0xff8]")]), Var("R2",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R2",Imm(64)),Int(4088,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(1_157, "%00000485"), Attrs([Attr("address","0x7AC"), -Attr("insn","cbz x2, #0xc")]), EQ(Var("R2",Imm(64)),Int(0,64)), -Direct(Tid(714, "%000002ca"))), Goto(Tid(1_705, "%000006a9"), Attrs([]), - Int(1,1), Direct(Tid(1_161, "%00000489")))])), Blk(Tid(714, "%000002ca"), - Attrs([Attr("address","0x7B8")]), Phis([]), Defs([]), -Jmps([Call(Tid(722, "%000002d2"), Attrs([Attr("address","0x7B8"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))])), -Blk(Tid(1_161, "%00000489"), Attrs([Attr("address","0x7B0")]), Phis([]), -Defs([Def(Tid(1_165, "%0000048d"), Attrs([Attr("address","0x7B0"), -Attr("insn","mov x16, x2")]), Var("R16",Imm(64)), Var("R2",Imm(64)))]), -Jmps([Call(Tid(1_170, "%00000492"), Attrs([Attr("address","0x7B4"), -Attr("insn","br x16")]), Int(1,1), (Indirect(Var("R16",Imm(64))),))]))])), -Sub(Tid(1_706, "@seven"), Attrs([Attr("c.proto","signed (*)(void)"), -Attr("address","0x814")]), "seven", Args([Arg(Tid(1_727, "%000006bf"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("seven_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(818, "@seven"), - Attrs([Attr("address","0x814")]), Phis([]), Defs([Def(Tid(821, "%00000335"), - Attrs([Attr("address","0x814"), Attr("insn","mov w0, #0x7")]), - Var("R0",Imm(64)), Int(7,64))]), Jmps([Call(Tid(826, "%0000033a"), - Attrs([Attr("address","0x818"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))]))]))) \ No newline at end of file diff --git a/src/test/indirect_calls/indirect_call_outparam/gcc/indirect_call_outparam.bir b/src/test/indirect_calls/indirect_call_outparam/gcc/indirect_call_outparam.bir deleted file mode 100644 index 65339961f..000000000 --- a/src/test/indirect_calls/indirect_call_outparam/gcc/indirect_call_outparam.bir +++ /dev/null @@ -1,297 +0,0 @@ -000006ab: program -00000691: sub __cxa_finalize(__cxa_finalize_result) -000006ac: __cxa_finalize_result :: out u32 = low:32[R0] - -00000472: -0000057a: R16 := 0x10000 -00000581: R17 := mem[R16 + 0xFA8, el]:u64 -00000587: R16 := R16 + 0xFA8 -0000058c: call R17 with noreturn - -00000692: sub __do_global_dtors_aux(__do_global_dtors_aux_result) -000006ad: __do_global_dtors_aux_result :: out u32 = low:32[R0] - -000002d6: -000002da: #3 := R31 - 0x20 -000002e0: mem := mem with [#3, el]:u64 <- R29 -000002e6: mem := mem with [#3 + 8, el]:u64 <- R30 -000002ea: R31 := #3 -000002f0: R29 := R31 -000002f8: mem := mem with [R31 + 0x10, el]:u64 <- R19 -000002fd: R19 := 0x11000 -00000304: R0 := pad:64[mem[R19 + 0x10]] -0000030b: when 31:0[R0] <> 0 goto %00000309 -00000693: goto %0000043b - -0000043b: -0000043e: R0 := 0x10000 -00000445: R0 := mem[R0 + 0xFD8, el]:u64 -0000044b: when R0 = 0 goto %00000449 -00000694: goto %00000462 - -00000462: -00000465: R0 := 0x11000 -0000046c: R0 := mem[R0 + 8, el]:u64 -00000471: R30 := 0x7F0 -00000474: call @__cxa_finalize with return %00000449 - -00000449: -00000451: R30 := 0x7F4 -00000453: call @deregister_tm_clones with return %00000455 - -00000455: -00000458: R0 := 1 -00000460: mem := mem with [R19 + 0x10] <- 7:0[R0] -00000695: goto %00000309 - -00000309: -00000313: R19 := mem[R31 + 0x10, el]:u64 -0000031a: R29 := mem[R31, el]:u64 -0000031f: R30 := mem[R31 + 8, el]:u64 -00000323: R31 := R31 + 0x20 -00000328: call R30 with noreturn - -00000696: sub __libc_start_main(__libc_start_main_main, __libc_start_main_arg2, __libc_start_main_arg3, __libc_start_main_auxv, __libc_start_main_result) -000006ae: __libc_start_main_main :: in u64 = R0 -000006af: __libc_start_main_arg2 :: in u32 = low:32[R1] -000006b0: __libc_start_main_arg3 :: in out u64 = R2 -000006b1: __libc_start_main_auxv :: in out u64 = R3 -000006b2: __libc_start_main_result :: out u32 = low:32[R0] - -0000022f: -00000564: R16 := 0x10000 -0000056b: R17 := mem[R16 + 0xFA0, el]:u64 -00000571: R16 := R16 + 0xFA0 -00000576: call R17 with noreturn - -00000697: sub __stack_chk_fail(__stack_chk_fail_result) -000006b3: __stack_chk_fail_result :: out u32 = low:32[R0] - -00000437: -00000590: R16 := 0x10000 -00000597: R17 := mem[R16 + 0xFB0, el]:u64 -0000059d: R16 := R16 + 0xFB0 -000005a2: call R17 with noreturn - -00000698: sub _fini(_fini_result) -000006b4: _fini_result :: out u32 = low:32[R0] - -0000001f: -00000025: #0 := R31 - 0x10 -0000002b: mem := mem with [#0, el]:u64 <- R29 -00000031: mem := mem with [#0 + 8, el]:u64 <- R30 -00000035: R31 := #0 -0000003b: R29 := R31 -00000042: R29 := mem[R31, el]:u64 -00000047: R30 := mem[R31 + 8, el]:u64 -0000004b: R31 := R31 + 0x10 -00000050: call R30 with noreturn - -00000699: sub _init(_init_result) -000006b5: _init_result :: out u32 = low:32[R0] - -000005ea: -000005f0: #8 := R31 - 0x10 -000005f6: mem := mem with [#8, el]:u64 <- R29 -000005fc: mem := mem with [#8 + 8, el]:u64 <- R30 -00000600: R31 := #8 -00000606: R29 := R31 -0000060b: R30 := 0x650 -0000060d: call @call_weak_fn with return %0000060f - -0000060f: -00000614: R29 := mem[R31, el]:u64 -00000619: R30 := mem[R31 + 8, el]:u64 -0000061d: R31 := R31 + 0x10 -00000622: call R30 with noreturn - -0000069a: sub _start(_start_result) -000006b6: _start_result :: out u32 = low:32[R0] - -000001f0: -000001f5: R29 := 0 -000001fa: R30 := 0 -00000200: R5 := R0 -00000207: R1 := mem[R31, el]:u64 -0000020d: R2 := R31 + 8 -00000213: R6 := R31 -00000218: R0 := 0x10000 -0000021f: R0 := mem[R0 + 0xFF0, el]:u64 -00000224: R3 := 0 -00000229: R4 := 0 -0000022e: R30 := 0x730 -00000231: call @__libc_start_main with return %00000233 - -00000233: -00000236: R30 := 0x734 -00000239: call @abort with return %0000069b - -0000069b: -0000069c: call @call_weak_fn with noreturn - -0000069d: sub abort() - - -00000237: -000005bc: R16 := 0x10000 -000005c3: R17 := mem[R16 + 0xFC0, el]:u64 -000005c9: R16 := R16 + 0xFC0 -000005ce: call R17 with noreturn - -0000069e: sub call_weak_fn(call_weak_fn_result) -000006b7: call_weak_fn_result :: out u32 = low:32[R0] - -0000023b: -0000023e: R0 := 0x10000 -00000245: R0 := mem[R0 + 0xFE0, el]:u64 -0000024b: when R0 = 0 goto %00000249 -0000069f: goto %000004b2 - -00000249: -00000251: call R30 with noreturn - -000004b2: -000004b5: goto @__gmon_start__ - -000004b3: -000005a6: R16 := 0x10000 -000005ad: R17 := mem[R16 + 0xFB8, el]:u64 -000005b3: R16 := R16 + 0xFB8 -000005b8: call R17 with noreturn - -000006a0: sub deregister_tm_clones(deregister_tm_clones_result) -000006b8: deregister_tm_clones_result :: out u32 = low:32[R0] - -00000257: -0000025a: R0 := 0x11000 -00000260: R0 := R0 + 0x10 -00000265: R1 := 0x11000 -0000026b: R1 := R1 + 0x10 -00000271: #1 := ~R0 -00000276: #2 := R1 + ~R0 -0000027c: VF := extend:65[#2 + 1] <> extend:65[R1] + extend:65[#1] + 1 -00000282: CF := pad:65[#2 + 1] <> pad:65[R1] + pad:65[#1] + 1 -00000286: ZF := #2 + 1 = 0 -0000028a: NF := 63:63[#2 + 1] -00000290: when ZF goto %0000028e -000006a1: goto %00000494 - -00000494: -00000497: R1 := 0x10000 -0000049e: R1 := mem[R1 + 0xFD0, el]:u64 -000004a3: when R1 = 0 goto %0000028e -000006a2: goto %000004a7 - -0000028e: -00000296: call R30 with noreturn - -000004a7: -000004ab: R16 := R1 -000004b0: call R16 with noreturn - -000006a3: sub frame_dummy(frame_dummy_result) -000006b9: frame_dummy_result :: out u32 = low:32[R0] - -0000032e: -00000330: call @register_tm_clones with noreturn - -000006a4: sub get_call(get_call_result) -000006ba: get_call_result :: out u32 = low:32[R0] - -0000033c: -00000340: R31 := R31 - 0x10 -00000348: mem := mem with [R31 + 8, el]:u64 <- R0 -0000034f: R0 := mem[R31 + 8, el]:u64 -00000354: R1 := 0 -0000035a: R1 := R1 + 0x814 -00000362: mem := mem with [R0, el]:u64 <- R1 -0000036a: R31 := R31 + 0x10 -0000036f: call R30 with noreturn - -000006a5: sub main(main_argc, main_argv, main_result) -000006bb: main_argc :: in u32 = low:32[R0] -000006bc: main_argv :: in out u64 = R1 -000006bd: main_result :: out u32 = low:32[R0] - -00000371: -00000375: #4 := R31 - 0x20 -0000037b: mem := mem with [#4, el]:u64 <- R29 -00000381: mem := mem with [#4 + 8, el]:u64 <- R30 -00000385: R31 := #4 -0000038b: R29 := R31 -00000390: R0 := 0x10000 -00000397: R0 := mem[R0 + 0xFE8, el]:u64 -0000039e: R1 := mem[R0, el]:u64 -000003a6: mem := mem with [R31 + 0x18, el]:u64 <- R1 -000003ab: R1 := 0 -000003b1: R0 := R31 + 0x10 -000003b6: R30 := 0x864 -000003b8: call @get_call with return %000003ba - -000003ba: -000003bf: R0 := mem[R31 + 0x10, el]:u64 -000003c4: R30 := 0x86C -000003c7: call R0 with return %000003c9 - -000003c9: -000003cd: R1 := pad:64[31:0[R0]] -000003d2: R0 := 0x10000 -000003d9: R0 := mem[R0 + 0xFE8, el]:u64 -000003e0: R3 := mem[R31 + 0x18, el]:u64 -000003e7: R2 := mem[R0, el]:u64 -000003ed: #5 := ~R2 -000003f2: #6 := R3 + ~R2 -000003f8: VF := extend:65[#6 + 1] <> extend:65[R3] + extend:65[#5] + 1 -000003fe: CF := pad:65[#6 + 1] <> pad:65[R3] + pad:65[#5] + 1 -00000402: ZF := #6 + 1 = 0 -00000406: NF := 63:63[#6 + 1] -0000040a: R3 := #6 + 1 -0000040f: R2 := 0 -00000415: when ZF goto %00000413 -000006a6: goto %00000433 - -00000433: -00000436: R30 := 0x890 -00000439: call @__stack_chk_fail with return %00000413 - -00000413: -0000041c: R0 := pad:64[31:0[R1]] -00000423: R29 := mem[R31, el]:u64 -00000428: R30 := mem[R31 + 8, el]:u64 -0000042c: R31 := R31 + 0x20 -00000431: call R30 with noreturn - -000006a7: sub register_tm_clones(register_tm_clones_result) -000006be: register_tm_clones_result :: out u32 = low:32[R0] - -00000298: -0000029b: R0 := 0x11000 -000002a1: R0 := R0 + 0x10 -000002a6: R1 := 0x11000 -000002ac: R1 := R1 + 0x10 -000002b3: R1 := R1 + ~R0 + 1 -000002b9: R2 := 0.63:63[R1] -000002c0: R1 := R2 + (R1 ~>> 3) -000002c6: R1 := extend:64[63:1[R1]] -000002cc: when R1 = 0 goto %000002ca -000006a8: goto %00000476 - -00000476: -00000479: R2 := 0x10000 -00000480: R2 := mem[R2 + 0xFF8, el]:u64 -00000485: when R2 = 0 goto %000002ca -000006a9: goto %00000489 - -000002ca: -000002d2: call R30 with noreturn - -00000489: -0000048d: R16 := R2 -00000492: call R16 with noreturn - -000006aa: sub seven(seven_result) -000006bf: seven_result :: out u32 = low:32[R0] - -00000332: -00000335: R0 := 7 -0000033a: call R30 with noreturn diff --git a/src/test/indirect_calls/indirect_call_outparam/gcc/indirect_call_outparam.gts b/src/test/indirect_calls/indirect_call_outparam/gcc/indirect_call_outparam.gts deleted file mode 100644 index 8c454163d..000000000 Binary files a/src/test/indirect_calls/indirect_call_outparam/gcc/indirect_call_outparam.gts and /dev/null differ diff --git a/src/test/indirect_calls/indirect_call_outparam/gcc/indirect_call_outparam.md5sum b/src/test/indirect_calls/indirect_call_outparam/gcc/indirect_call_outparam.md5sum new file mode 100644 index 000000000..d5e624575 --- /dev/null +++ b/src/test/indirect_calls/indirect_call_outparam/gcc/indirect_call_outparam.md5sum @@ -0,0 +1,5 @@ +88ed6dc9099ec024264b7d0472011869 indirect_calls/indirect_call_outparam/gcc/a.out +75806ba23acf9f047efc5c06d130b29a indirect_calls/indirect_call_outparam/gcc/indirect_call_outparam.adt +d2a8d1fb581d318f33a8eb669b8bb4ed indirect_calls/indirect_call_outparam/gcc/indirect_call_outparam.bir +bafb8d39b49955554cadf3f75665f158 indirect_calls/indirect_call_outparam/gcc/indirect_call_outparam.relf +a01ab900cc2925a093ff92cbad037c48 indirect_calls/indirect_call_outparam/gcc/indirect_call_outparam.gts diff --git a/src/test/indirect_calls/indirect_call_outparam/gcc/indirect_call_outparam.relf b/src/test/indirect_calls/indirect_call_outparam/gcc/indirect_call_outparam.relf deleted file mode 100644 index f04ece6d9..000000000 --- a/src/test/indirect_calls/indirect_call_outparam/gcc/indirect_call_outparam.relf +++ /dev/null @@ -1,127 +0,0 @@ - -Relocation section '.rela.dyn' at offset 0x4f0 contains 9 entries: - Offset Info Type Symbol's Value Symbol's Name + Addend -0000000000010d78 0000000000000403 R_AARCH64_RELATIVE 810 -0000000000010d80 0000000000000403 R_AARCH64_RELATIVE 7c0 -0000000000010ff0 0000000000000403 R_AARCH64_RELATIVE 840 -0000000000011008 0000000000000403 R_AARCH64_RELATIVE 11008 -0000000000010fd0 0000000400000401 R_AARCH64_GLOB_DAT 0000000000000000 _ITM_deregisterTMCloneTable + 0 -0000000000010fd8 0000000500000401 R_AARCH64_GLOB_DAT 0000000000000000 __cxa_finalize@GLIBC_2.17 + 0 -0000000000010fe0 0000000700000401 R_AARCH64_GLOB_DAT 0000000000000000 __gmon_start__ + 0 -0000000000010fe8 0000000800000401 R_AARCH64_GLOB_DAT 0000000000000000 __stack_chk_guard@GLIBC_2.17 + 0 -0000000000010ff8 0000000a00000401 R_AARCH64_GLOB_DAT 0000000000000000 _ITM_registerTMCloneTable + 0 - -Relocation section '.rela.plt' at offset 0x5c8 contains 5 entries: - Offset Info Type Symbol's Value Symbol's Name + Addend -0000000000010fa0 0000000300000402 R_AARCH64_JUMP_SLOT 0000000000000000 __libc_start_main@GLIBC_2.34 + 0 -0000000000010fa8 0000000500000402 R_AARCH64_JUMP_SLOT 0000000000000000 __cxa_finalize@GLIBC_2.17 + 0 -0000000000010fb0 0000000600000402 R_AARCH64_JUMP_SLOT 0000000000000000 __stack_chk_fail@GLIBC_2.17 + 0 -0000000000010fb8 0000000700000402 R_AARCH64_JUMP_SLOT 0000000000000000 __gmon_start__ + 0 -0000000000010fc0 0000000900000402 R_AARCH64_JUMP_SLOT 0000000000000000 abort@GLIBC_2.17 + 0 - -Symbol table '.dynsym' contains 11 entries: - Num: Value Size Type Bind Vis Ndx Name - 0: 0000000000000000 0 NOTYPE LOCAL DEFAULT UND - 1: 0000000000000640 0 SECTION LOCAL DEFAULT 11 .init - 2: 0000000000011000 0 SECTION LOCAL DEFAULT 22 .data - 3: 0000000000000000 0 FUNC GLOBAL DEFAULT UND __libc_start_main@GLIBC_2.34 (2) - 4: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_deregisterTMCloneTable - 5: 0000000000000000 0 FUNC WEAK DEFAULT UND __cxa_finalize@GLIBC_2.17 (3) - 6: 0000000000000000 0 FUNC GLOBAL DEFAULT UND __stack_chk_fail@GLIBC_2.17 (3) - 7: 0000000000000000 0 NOTYPE WEAK DEFAULT UND __gmon_start__ - 8: 0000000000000000 0 OBJECT GLOBAL DEFAULT UND __stack_chk_guard@GLIBC_2.17 (4) - 9: 0000000000000000 0 FUNC GLOBAL DEFAULT UND abort@GLIBC_2.17 (3) - 10: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_registerTMCloneTable - -Symbol table '.symtab' contains 90 entries: - Num: Value Size Type Bind Vis Ndx Name - 0: 0000000000000000 0 NOTYPE LOCAL DEFAULT UND - 1: 0000000000000238 0 SECTION LOCAL DEFAULT 1 .interp - 2: 0000000000000254 0 SECTION LOCAL DEFAULT 2 .note.gnu.build-id - 3: 0000000000000278 0 SECTION LOCAL DEFAULT 3 .note.ABI-tag - 4: 0000000000000298 0 SECTION LOCAL DEFAULT 4 .gnu.hash - 5: 00000000000002b8 0 SECTION LOCAL DEFAULT 5 .dynsym - 6: 00000000000003c0 0 SECTION LOCAL DEFAULT 6 .dynstr - 7: 0000000000000486 0 SECTION LOCAL DEFAULT 7 .gnu.version - 8: 00000000000004a0 0 SECTION LOCAL DEFAULT 8 .gnu.version_r - 9: 00000000000004f0 0 SECTION LOCAL DEFAULT 9 .rela.dyn - 10: 00000000000005c8 0 SECTION LOCAL DEFAULT 10 .rela.plt - 11: 0000000000000640 0 SECTION LOCAL DEFAULT 11 .init - 12: 0000000000000660 0 SECTION LOCAL DEFAULT 12 .plt - 13: 0000000000000700 0 SECTION LOCAL DEFAULT 13 .text - 14: 000000000000089c 0 SECTION LOCAL DEFAULT 14 .fini - 15: 00000000000008b0 0 SECTION LOCAL DEFAULT 15 .rodata - 16: 00000000000008b4 0 SECTION LOCAL DEFAULT 16 .eh_frame_hdr - 17: 0000000000000900 0 SECTION LOCAL DEFAULT 17 .eh_frame - 18: 0000000000010d78 0 SECTION LOCAL DEFAULT 18 .init_array - 19: 0000000000010d80 0 SECTION LOCAL DEFAULT 19 .fini_array - 20: 0000000000010d88 0 SECTION LOCAL DEFAULT 20 .dynamic - 21: 0000000000010f88 0 SECTION LOCAL DEFAULT 21 .got - 22: 0000000000011000 0 SECTION LOCAL DEFAULT 22 .data - 23: 0000000000011010 0 SECTION LOCAL DEFAULT 23 .bss - 24: 0000000000000000 0 SECTION LOCAL DEFAULT 24 .comment - 25: 0000000000000000 0 FILE LOCAL DEFAULT ABS Scrt1.o - 26: 0000000000000278 0 NOTYPE LOCAL DEFAULT 3 $d - 27: 0000000000000278 32 OBJECT LOCAL DEFAULT 3 __abi_tag - 28: 0000000000000700 0 NOTYPE LOCAL DEFAULT 13 $x - 29: 0000000000000914 0 NOTYPE LOCAL DEFAULT 17 $d - 30: 00000000000008b0 0 NOTYPE LOCAL DEFAULT 15 $d - 31: 0000000000000000 0 FILE LOCAL DEFAULT ABS crti.o - 32: 0000000000000734 0 NOTYPE LOCAL DEFAULT 13 $x - 33: 0000000000000734 20 FUNC LOCAL DEFAULT 13 call_weak_fn - 34: 0000000000000640 0 NOTYPE LOCAL DEFAULT 11 $x - 35: 000000000000089c 0 NOTYPE LOCAL DEFAULT 14 $x - 36: 0000000000000000 0 FILE LOCAL DEFAULT ABS crtn.o - 37: 0000000000000650 0 NOTYPE LOCAL DEFAULT 11 $x - 38: 00000000000008a8 0 NOTYPE LOCAL DEFAULT 14 $x - 39: 0000000000000000 0 FILE LOCAL DEFAULT ABS crtstuff.c - 40: 0000000000000750 0 NOTYPE LOCAL DEFAULT 13 $x - 41: 0000000000000750 0 FUNC LOCAL DEFAULT 13 deregister_tm_clones - 42: 0000000000000780 0 FUNC LOCAL DEFAULT 13 register_tm_clones - 43: 0000000000011008 0 NOTYPE LOCAL DEFAULT 22 $d - 44: 00000000000007c0 0 FUNC LOCAL DEFAULT 13 __do_global_dtors_aux - 45: 0000000000011010 1 OBJECT LOCAL DEFAULT 23 completed.0 - 46: 0000000000010d80 0 NOTYPE LOCAL DEFAULT 19 $d - 47: 0000000000010d80 0 OBJECT LOCAL DEFAULT 19 __do_global_dtors_aux_fini_array_entry - 48: 0000000000000810 0 FUNC LOCAL DEFAULT 13 frame_dummy - 49: 0000000000010d78 0 NOTYPE LOCAL DEFAULT 18 $d - 50: 0000000000010d78 0 OBJECT LOCAL DEFAULT 18 __frame_dummy_init_array_entry - 51: 0000000000000928 0 NOTYPE LOCAL DEFAULT 17 $d - 52: 0000000000011010 0 NOTYPE LOCAL DEFAULT 23 $d - 53: 0000000000000000 0 FILE LOCAL DEFAULT ABS indirect_call_outparam.c - 54: 0000000000000814 0 NOTYPE LOCAL DEFAULT 13 $x - 55: 0000000000000988 0 NOTYPE LOCAL DEFAULT 17 $d - 56: 0000000000000000 0 FILE LOCAL DEFAULT ABS crtstuff.c - 57: 00000000000009d4 0 NOTYPE LOCAL DEFAULT 17 $d - 58: 00000000000009d4 0 OBJECT LOCAL DEFAULT 17 __FRAME_END__ - 59: 0000000000000000 0 FILE LOCAL DEFAULT ABS - 60: 0000000000010d88 0 OBJECT LOCAL DEFAULT ABS _DYNAMIC - 61: 00000000000008b4 0 NOTYPE LOCAL DEFAULT 16 __GNU_EH_FRAME_HDR - 62: 0000000000010fc8 0 OBJECT LOCAL DEFAULT ABS _GLOBAL_OFFSET_TABLE_ - 63: 0000000000000660 0 NOTYPE LOCAL DEFAULT 12 $x - 64: 0000000000000000 0 FUNC GLOBAL DEFAULT UND __libc_start_main@GLIBC_2.34 - 65: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_deregisterTMCloneTable - 66: 0000000000011000 0 NOTYPE WEAK DEFAULT 22 data_start - 67: 0000000000011010 0 NOTYPE GLOBAL DEFAULT 23 __bss_start__ - 68: 0000000000000000 0 FUNC WEAK DEFAULT UND __cxa_finalize@GLIBC_2.17 - 69: 0000000000011018 0 NOTYPE GLOBAL DEFAULT 23 _bss_end__ - 70: 0000000000011010 0 NOTYPE GLOBAL DEFAULT 22 _edata - 71: 000000000000089c 0 FUNC GLOBAL HIDDEN 14 _fini - 72: 0000000000011018 0 NOTYPE GLOBAL DEFAULT 23 __bss_end__ - 73: 000000000000081c 36 FUNC GLOBAL DEFAULT 13 get_call - 74: 0000000000011000 0 NOTYPE GLOBAL DEFAULT 22 __data_start - 75: 0000000000000000 0 FUNC GLOBAL DEFAULT UND __stack_chk_fail@GLIBC_2.17 - 76: 0000000000000000 0 NOTYPE WEAK DEFAULT UND __gmon_start__ - 77: 0000000000000000 0 OBJECT GLOBAL DEFAULT UND __stack_chk_guard@GLIBC_2.17 - 78: 0000000000011008 0 OBJECT GLOBAL HIDDEN 22 __dso_handle - 79: 0000000000000000 0 FUNC GLOBAL DEFAULT UND abort@GLIBC_2.17 - 80: 00000000000008b0 4 OBJECT GLOBAL DEFAULT 15 _IO_stdin_used - 81: 0000000000011018 0 NOTYPE GLOBAL DEFAULT 23 _end - 82: 0000000000000700 52 FUNC GLOBAL DEFAULT 13 _start - 83: 0000000000011018 0 NOTYPE GLOBAL DEFAULT 23 __end__ - 84: 0000000000011010 0 NOTYPE GLOBAL DEFAULT 23 __bss_start - 85: 0000000000000840 92 FUNC GLOBAL DEFAULT 13 main - 86: 0000000000000814 8 FUNC GLOBAL DEFAULT 13 seven - 87: 0000000000011010 0 OBJECT GLOBAL HIDDEN 22 __TMC_END__ - 88: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_registerTMCloneTable - 89: 0000000000000640 0 FUNC GLOBAL HIDDEN 11 _init diff --git a/src/test/indirect_calls/jumptable/clang/jumptable.adt b/src/test/indirect_calls/jumptable/clang/jumptable.adt deleted file mode 100644 index 22b9ab70c..000000000 --- a/src/test/indirect_calls/jumptable/clang/jumptable.adt +++ /dev/null @@ -1,652 +0,0 @@ -Project(Attrs([Attr("filename","\"clang/jumptable.out\""), -Attr("image-specification","(declare abi (name str))\n(declare arch (name str))\n(declare base-address (addr int))\n(declare bias (off int))\n(declare bits (size int))\n(declare code-region (addr int) (size int) (off int))\n(declare code-start (addr int))\n(declare entry-point (addr int))\n(declare external-reference (addr int) (name str))\n(declare format (name str))\n(declare is-executable (flag bool))\n(declare is-little-endian (flag bool))\n(declare llvm:base-address (addr int))\n(declare llvm:code-entry (name str) (off int) (size int))\n(declare llvm:coff-import-library (name str))\n(declare llvm:coff-virtual-section-header (name str) (addr int) (size int))\n(declare llvm:elf-program-header (name str) (off int) (size int))\n(declare llvm:elf-program-header-flags (name str) (ld bool) (r bool) \n (w bool) (x bool))\n(declare llvm:elf-virtual-program-header (name str) (addr int) (size int))\n(declare llvm:entry-point (addr int))\n(declare llvm:macho-symbol (name str) (value int))\n(declare llvm:name-reference (at int) (name str))\n(declare llvm:relocation (at int) (addr int))\n(declare llvm:section-entry (name str) (addr int) (size int) (off int))\n(declare llvm:section-flags (name str) (r bool) (w bool) (x bool))\n(declare llvm:segment-command (name str) (off int) (size int))\n(declare llvm:segment-command-flags (name str) (r bool) (w bool) (x bool))\n(declare llvm:symbol-entry (name str) (addr int) (size int) (off int)\n (value int))\n(declare llvm:virtual-segment-command (name str) (addr int) (size int))\n(declare mapped (addr int) (size int) (off int))\n(declare named-region (addr int) (size int) (name str))\n(declare named-symbol (addr int) (name str))\n(declare require (name str))\n(declare section (addr int) (size int))\n(declare segment (addr int) (size int) (r bool) (w bool) (x bool))\n(declare subarch (name str))\n(declare symbol-chunk (addr int) (size int) (root int))\n(declare symbol-value (addr int) (value int))\n(declare system (name str))\n(declare vendor (name str))\n\n(abi unknown)\n(arch aarch64)\n(base-address 0)\n(bias 0)\n(bits 64)\n(code-region 2032 20 2032)\n(code-region 1600 432 1600)\n(code-region 1504 96 1504)\n(code-region 1480 24 1480)\n(code-start 1652)\n(code-start 1876)\n(code-start 1600)\n(code-start 1896)\n(code-start 1936)\n(code-start 1916)\n(entry-point 1600)\n(external-reference 69568 _ITM_deregisterTMCloneTable)\n(external-reference 69576 __cxa_finalize)\n(external-reference 69584 __gmon_start__)\n(external-reference 69600 _ITM_registerTMCloneTable)\n(external-reference 69632 __libc_start_main)\n(external-reference 69640 __cxa_finalize)\n(external-reference 69648 __gmon_start__)\n(external-reference 69656 abort)\n(format elf)\n(is-executable true)\n(is-little-endian true)\n(llvm:base-address 0)\n(llvm:code-entry abort 0 0)\n(llvm:code-entry __cxa_finalize 0 0)\n(llvm:code-entry __libc_start_main 0 0)\n(llvm:code-entry sub_seven 1916 20)\n(llvm:code-entry _init 1480 0)\n(llvm:code-entry main 1936 96)\n(llvm:code-entry add_six 1896 20)\n(llvm:code-entry _start 1600 52)\n(llvm:code-entry add_two 1876 20)\n(llvm:code-entry abort@GLIBC_2.17 0 0)\n(llvm:code-entry _fini 2032 0)\n(llvm:code-entry __cxa_finalize@GLIBC_2.17 0 0)\n(llvm:code-entry __libc_start_main@GLIBC_2.34 0 0)\n(llvm:code-entry frame_dummy 1872 0)\n(llvm:code-entry __do_global_dtors_aux 1792 0)\n(llvm:code-entry register_tm_clones 1728 0)\n(llvm:code-entry deregister_tm_clones 1680 0)\n(llvm:code-entry call_weak_fn 1652 20)\n(llvm:code-entry .fini 2032 20)\n(llvm:code-entry .text 1600 432)\n(llvm:code-entry .plt 1504 96)\n(llvm:code-entry .init 1480 24)\n(llvm:elf-program-header 08 3504 592)\n(llvm:elf-program-header 07 0 0)\n(llvm:elf-program-header 06 2056 84)\n(llvm:elf-program-header 05 596 68)\n(llvm:elf-program-header 04 3544 480)\n(llvm:elf-program-header 03 3504 644)\n(llvm:elf-program-header 02 0 2404)\n(llvm:elf-program-header 01 568 27)\n(llvm:elf-program-header 00 64 504)\n(llvm:elf-program-header-flags 08 false true false false)\n(llvm:elf-program-header-flags 07 false true true false)\n(llvm:elf-program-header-flags 06 false true false false)\n(llvm:elf-program-header-flags 05 false true false false)\n(llvm:elf-program-header-flags 04 false true true false)\n(llvm:elf-program-header-flags 03 true true true false)\n(llvm:elf-program-header-flags 02 true true false true)\n(llvm:elf-program-header-flags 01 false true false false)\n(llvm:elf-program-header-flags 00 false true false false)\n(llvm:elf-virtual-program-header 08 69040 592)\n(llvm:elf-virtual-program-header 07 0 0)\n(llvm:elf-virtual-program-header 06 2056 84)\n(llvm:elf-virtual-program-header 05 596 68)\n(llvm:elf-virtual-program-header 04 69080 480)\n(llvm:elf-virtual-program-header 03 69040 648)\n(llvm:elf-virtual-program-header 02 0 2404)\n(llvm:elf-virtual-program-header 01 568 27)\n(llvm:elf-virtual-program-header 00 64 504)\n(llvm:entry-point 1600)\n(llvm:name-reference 69656 abort)\n(llvm:name-reference 69648 __gmon_start__)\n(llvm:name-reference 69640 __cxa_finalize)\n(llvm:name-reference 69632 __libc_start_main)\n(llvm:name-reference 69600 _ITM_registerTMCloneTable)\n(llvm:name-reference 69584 __gmon_start__)\n(llvm:name-reference 69576 __cxa_finalize)\n(llvm:name-reference 69568 _ITM_deregisterTMCloneTable)\n(llvm:section-entry .shstrtab 0 272 7100)\n(llvm:section-entry .strtab 0 596 6504)\n(llvm:section-entry .symtab 0 2280 4224)\n(llvm:section-entry .comment 0 71 4148)\n(llvm:section-entry .bss 69684 4 4148)\n(llvm:section-entry .data 69664 20 4128)\n(llvm:section-entry .got.plt 69608 56 4072)\n(llvm:section-entry .got 69560 48 4024)\n(llvm:section-entry .dynamic 69080 480 3544)\n(llvm:section-entry .data.rel.ro 69056 24 3520)\n(llvm:section-entry .fini_array 69048 8 3512)\n(llvm:section-entry .init_array 69040 8 3504)\n(llvm:section-entry .eh_frame 2144 260 2144)\n(llvm:section-entry .eh_frame_hdr 2056 84 2056)\n(llvm:section-entry .rodata 2052 4 2052)\n(llvm:section-entry .fini 2032 20 2032)\n(llvm:section-entry .text 1600 432 1600)\n(llvm:section-entry .plt 1504 96 1504)\n(llvm:section-entry .init 1480 24 1480)\n(llvm:section-entry .rela.plt 1384 96 1384)\n(llvm:section-entry .rela.dyn 1120 264 1120)\n(llvm:section-entry .gnu.version_r 1072 48 1072)\n(llvm:section-entry .gnu.version 1054 18 1054)\n(llvm:section-entry .dynstr 912 141 912)\n(llvm:section-entry .dynsym 696 216 696)\n(llvm:section-entry .gnu.hash 664 28 664)\n(llvm:section-entry .note.ABI-tag 632 32 632)\n(llvm:section-entry .note.gnu.build-id 596 36 596)\n(llvm:section-entry .interp 568 27 568)\n(llvm:section-flags .shstrtab true false false)\n(llvm:section-flags .strtab true false false)\n(llvm:section-flags .symtab true false false)\n(llvm:section-flags .comment true false false)\n(llvm:section-flags .bss true true false)\n(llvm:section-flags .data true true false)\n(llvm:section-flags .got.plt true true false)\n(llvm:section-flags .got true true false)\n(llvm:section-flags .dynamic true true false)\n(llvm:section-flags .data.rel.ro true true false)\n(llvm:section-flags .fini_array true true false)\n(llvm:section-flags .init_array true true false)\n(llvm:section-flags .eh_frame true false false)\n(llvm:section-flags .eh_frame_hdr true false false)\n(llvm:section-flags .rodata true false false)\n(llvm:section-flags .fini true false true)\n(llvm:section-flags .text true false true)\n(llvm:section-flags .plt true false true)\n(llvm:section-flags .init true false true)\n(llvm:section-flags .rela.plt true false false)\n(llvm:section-flags .rela.dyn true false false)\n(llvm:section-flags .gnu.version_r true false false)\n(llvm:section-flags .gnu.version true false false)\n(llvm:section-flags .dynstr true false false)\n(llvm:section-flags .dynsym true false false)\n(llvm:section-flags .gnu.hash true false false)\n(llvm:section-flags .note.ABI-tag true false false)\n(llvm:section-flags .note.gnu.build-id true false false)\n(llvm:section-flags .interp true false false)\n(llvm:symbol-entry abort 0 0 0 0)\n(llvm:symbol-entry __cxa_finalize 0 0 0 0)\n(llvm:symbol-entry __libc_start_main 0 0 0 0)\n(llvm:symbol-entry sub_seven 1916 20 1916 1916)\n(llvm:symbol-entry _init 1480 0 1480 1480)\n(llvm:symbol-entry main 1936 96 1936 1936)\n(llvm:symbol-entry add_six 1896 20 1896 1896)\n(llvm:symbol-entry _start 1600 52 1600 1600)\n(llvm:symbol-entry add_two 1876 20 1876 1876)\n(llvm:symbol-entry abort@GLIBC_2.17 0 0 0 0)\n(llvm:symbol-entry _fini 2032 0 2032 2032)\n(llvm:symbol-entry __cxa_finalize@GLIBC_2.17 0 0 0 0)\n(llvm:symbol-entry __libc_start_main@GLIBC_2.34 0 0 0 0)\n(llvm:symbol-entry frame_dummy 1872 0 1872 1872)\n(llvm:symbol-entry __do_global_dtors_aux 1792 0 1792 1792)\n(llvm:symbol-entry register_tm_clones 1728 0 1728 1728)\n(llvm:symbol-entry deregister_tm_clones 1680 0 1680 1680)\n(llvm:symbol-entry call_weak_fn 1652 20 1652 1652)\n(mapped 0 2404 0)\n(mapped 69040 644 3504)\n(named-region 0 2404 02)\n(named-region 69040 648 03)\n(named-region 568 27 .interp)\n(named-region 596 36 .note.gnu.build-id)\n(named-region 632 32 .note.ABI-tag)\n(named-region 664 28 .gnu.hash)\n(named-region 696 216 .dynsym)\n(named-region 912 141 .dynstr)\n(named-region 1054 18 .gnu.version)\n(named-region 1072 48 .gnu.version_r)\n(named-region 1120 264 .rela.dyn)\n(named-region 1384 96 .rela.plt)\n(named-region 1480 24 .init)\n(named-region 1504 96 .plt)\n(named-region 1600 432 .text)\n(named-region 2032 20 .fini)\n(named-region 2052 4 .rodata)\n(named-region 2056 84 .eh_frame_hdr)\n(named-region 2144 260 .eh_frame)\n(named-region 69040 8 .init_array)\n(named-region 69048 8 .fini_array)\n(named-region 69056 24 .data.rel.ro)\n(named-region 69080 480 .dynamic)\n(named-region 69560 48 .got)\n(named-region 69608 56 .got.plt)\n(named-region 69664 20 .data)\n(named-region 69684 4 .bss)\n(named-region 0 71 .comment)\n(named-region 0 2280 .symtab)\n(named-region 0 596 .strtab)\n(named-region 0 272 .shstrtab)\n(named-symbol 1652 call_weak_fn)\n(named-symbol 1680 deregister_tm_clones)\n(named-symbol 1728 register_tm_clones)\n(named-symbol 1792 __do_global_dtors_aux)\n(named-symbol 1872 frame_dummy)\n(named-symbol 0 __libc_start_main@GLIBC_2.34)\n(named-symbol 0 __cxa_finalize@GLIBC_2.17)\n(named-symbol 2032 _fini)\n(named-symbol 0 abort@GLIBC_2.17)\n(named-symbol 1876 add_two)\n(named-symbol 1600 _start)\n(named-symbol 1896 add_six)\n(named-symbol 1936 main)\n(named-symbol 1480 _init)\n(named-symbol 1916 sub_seven)\n(named-symbol 0 __libc_start_main)\n(named-symbol 0 __cxa_finalize)\n(named-symbol 0 abort)\n(require libc.so.6)\n(section 568 27)\n(section 596 36)\n(section 632 32)\n(section 664 28)\n(section 696 216)\n(section 912 141)\n(section 1054 18)\n(section 1072 48)\n(section 1120 264)\n(section 1384 96)\n(section 1480 24)\n(section 1504 96)\n(section 1600 432)\n(section 2032 20)\n(section 2052 4)\n(section 2056 84)\n(section 2144 260)\n(section 69040 8)\n(section 69048 8)\n(section 69056 24)\n(section 69080 480)\n(section 69560 48)\n(section 69608 56)\n(section 69664 20)\n(section 69684 4)\n(section 0 71)\n(section 0 2280)\n(section 0 596)\n(section 0 272)\n(segment 0 2404 true false true)\n(segment 69040 648 true true false)\n(subarch v8)\n(symbol-chunk 1652 20 1652)\n(symbol-chunk 1876 20 1876)\n(symbol-chunk 1600 52 1600)\n(symbol-chunk 1896 20 1896)\n(symbol-chunk 1936 96 1936)\n(symbol-chunk 1916 20 1916)\n(symbol-value 1652 1652)\n(symbol-value 1680 1680)\n(symbol-value 1728 1728)\n(symbol-value 1792 1792)\n(symbol-value 1872 1872)\n(symbol-value 2032 2032)\n(symbol-value 1876 1876)\n(symbol-value 1600 1600)\n(symbol-value 1896 1896)\n(symbol-value 1936 1936)\n(symbol-value 1480 1480)\n(symbol-value 1916 1916)\n(symbol-value 0 0)\n(system \"\")\n(vendor \"\")\n"), -Attr("abi-name","\"aarch64-linux-gnu-elf\"")]), -Sections([Section(".shstrtab", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x40\x06\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xd0\x1c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x38\x00\x09\x00\x40\x00\x1e\x00\x1d\x00\x06\x00\x00\x00\x04\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x04\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\x09\x00\x00\x00\x00\x00\x00\x64\x09\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x01\x00\x00\x00\x06\x00\x00\x00\xb0\x0d\x00\x00\x00\x00\x00\x00\xb0\x0d\x01\x00\x00\x00\x00\x00\xb0\x0d\x01\x00\x00\x00\x00\x00\x84\x02\x00\x00\x00\x00\x00\x00"), -Section(".strtab", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x40\x06\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xd0\x1c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x38\x00\x09\x00\x40\x00\x1e\x00\x1d\x00\x06\x00\x00\x00\x04\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x04\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\x09\x00\x00\x00\x00\x00\x00\x64\x09\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x01\x00\x00\x00\x06\x00\x00\x00\xb0\x0d\x00\x00\x00\x00\x00\x00\xb0\x0d\x01\x00\x00\x00\x00\x00\xb0\x0d\x01\x00\x00\x00\x00\x00\x84\x02\x00\x00\x00\x00\x00\x00\x88\x02\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x02\x00\x00\x00\x06\x00\x00\x00\xd8\x0d\x00\x00\x00\x00\x00\x00\xd8\x0d\x01\x00\x00\x00\x00\x00\xd8\x0d\x01\x00\x00\x00\x00\x00\xe0\x01\x00\x00\x00\x00\x00\x00\xe0\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x04\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x50\xe5\x74\x64\x04\x00\x00\x00\x08\x08\x00\x00\x00\x00\x00\x00\x08\x08\x00\x00\x00\x00\x00\x00\x08\x08\x00\x00\x00\x00\x00\x00\x54\x00\x00\x00\x00\x00\x00\x00\x54\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x51\xe5\x74\x64\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x52\xe5\x74\x64\x04\x00\x00\x00\xb0\x0d\x00\x00\x00\x00\x00\x00\xb0\x0d\x01\x00\x00\x00\x00\x00\xb0\x0d\x01\x00\x00\x00\x00\x00\x50\x02\x00\x00\x00\x00\x00\x00\x50\x02\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x2f\x6c\x69\x62\x2f\x6c\x64\x2d\x6c\x69\x6e\x75\x78\x2d\x61\x61\x72\x63\x68\x36\x34\x2e\x73\x6f\x2e\x31\x00\x00"), -Section(".symtab", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x40\x06\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xd0\x1c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x38\x00\x09\x00\x40\x00\x1e\x00\x1d\x00\x06\x00\x00\x00\x04\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x04\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\x09\x00\x00\x00\x00\x00\x00\x64\x09\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x01\x00\x00\x00\x06\x00\x00\x00\xb0\x0d\x00\x00\x00\x00\x00\x00\xb0\x0d\x01\x00\x00\x00\x00\x00\xb0\x0d\x01\x00\x00\x00\x00\x00\x84\x02\x00\x00\x00\x00\x00\x00\x88\x02\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x02\x00\x00\x00\x06\x00\x00\x00\xd8\x0d\x00\x00\x00\x00\x00\x00\xd8\x0d\x01\x00\x00\x00\x00\x00\xd8\x0d\x01\x00\x00\x00\x00\x00\xe0\x01\x00\x00\x00\x00\x00\x00\xe0\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x04\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x50\xe5\x74\x64\x04\x00\x00\x00\x08\x08\x00\x00\x00\x00\x00\x00\x08\x08\x00\x00\x00\x00\x00\x00\x08\x08\x00\x00\x00\x00\x00\x00\x54\x00\x00\x00\x00\x00\x00\x00\x54\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x51\xe5\x74\x64\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x52\xe5\x74\x64\x04\x00\x00\x00\xb0\x0d\x00\x00\x00\x00\x00\x00\xb0\x0d\x01\x00\x00\x00\x00\x00\xb0\x0d\x01\x00\x00\x00\x00\x00\x50\x02\x00\x00\x00\x00\x00\x00\x50\x02\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x2f\x6c\x69\x62\x2f\x6c\x64\x2d\x6c\x69\x6e\x75\x78\x2d\x61\x61\x72\x63\x68\x36\x34\x2e\x73\x6f\x2e\x31\x00\x00\x04\x00\x00\x00\x14\x00\x00\x00\x03\x00\x00\x00\x47\x4e\x55\x00\xd4\xbf\xc2\x90\x30\x16\xec\x04\xfd\x78\x4e\x21\xb0\xf3\xeb\x75\x17\x7f\x1a\x2e\x04\x00\x00\x00\x10\x00\x00\x00\x01\x00\x00\x00\x47\x4e\x55\x00\x00\x00\x00\x00\x03\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x01\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x0b\x00\xc8\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x18\x00\x20\x10\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x48\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x22\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x22\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x73\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5f\x5f\x63\x78\x61\x5f\x66\x69\x6e\x61\x6c\x69\x7a\x65\x00\x5f\x5f\x6c\x69\x62\x63\x5f\x73\x74\x61\x72\x74\x5f\x6d\x61\x69\x6e\x00\x61\x62\x6f\x72\x74\x00\x6c\x69\x62\x63\x2e\x73\x6f\x2e\x36\x00\x47\x4c\x49\x42\x43\x5f\x32\x2e\x31\x37\x00\x47\x4c\x49\x42\x43\x5f\x32\x2e\x33\x34\x00\x5f\x49\x54\x4d\x5f\x64\x65\x72\x65\x67\x69\x73\x74\x65\x72\x54\x4d\x43\x6c\x6f\x6e\x65\x54\x61\x62\x6c\x65\x00\x5f\x5f\x67\x6d\x6f\x6e\x5f\x73\x74\x61\x72\x74\x5f\x5f\x00\x5f\x49\x54\x4d\x5f\x72\x65\x67\x69\x73\x74\x65\x72\x54\x4d\x43\x6c\x6f\x6e\x65\x54\x61\x62\x6c\x65\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x01\x00\x03\x00\x01\x00\x03\x00\x01\x00\x01\x00\x02\x00\x28\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x97\x91\x96\x06\x00\x00\x03\x00\x32\x00\x00\x00\x10\x00\x00\x00\xb4\x91\x96\x06\x00\x00\x02\x00\x3d\x00\x00\x00\x00\x00\x00\x00\xb0\x0d\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x50\x07\x00\x00\x00\x00\x00\x00\xb8\x0d\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\xc0\x0d\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x54\x07\x00\x00\x00\x00\x00\x00\xc8\x0d\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x68\x07\x00\x00\x00\x00\x00\x00\xd0\x0d\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x7c\x07\x00\x00\x00\x00\x00\x00\xd8\x0f\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x90\x07\x00\x00\x00\x00\x00\x00\x28\x10\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x28\x10\x01\x00\x00\x00\x00\x00\xc0\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xc8\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xd0\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe0\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x08\x10\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x10\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x18\x10\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1f\x20\x03\xd5\xfd\x7b\xbf\xa9\xfd\x03\x00\x91\x28\x00\x00\x94\xfd\x7b\xc1\xa8\xc0\x03\x5f\xd6\xf0\x7b\xbf\xa9\x90\x00\x00\x90\x11\xfe\x47\xf9\x10\xe2\x3f\x91\x20\x02\x1f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x90\x00\x00\xb0\x11\x02\x40\xf9\x10\x02\x00\x91\x20\x02\x1f\xd6\x90\x00\x00\xb0\x11\x06\x40\xf9\x10\x22\x00\x91\x20\x02\x1f\xd6\x90\x00\x00\xb0\x11\x0a\x40\xf9\x10\x42\x00\x91\x20\x02\x1f\xd6\x90\x00\x00\xb0\x11\x0e\x40\xf9\x10\x62\x00\x91\x20\x02\x1f\xd6\x1f\x20\x03\xd5\x1d\x00\x80\xd2\x1e\x00\x80\xd2\xe5\x03\x00\xaa\xe1\x03\x40\xf9\xe2\x23\x00\x91\xe6\x03\x00\x91\x80\x00\x00\x90\x00\xec\x47\xf9\x03\x00\x80\xd2\x04\x00\x80\xd2\xe5\xff\xff\x97\xf0\xff\xff\x97\x80\x00\x00\x90\x00\xe8\x47\xf9\x40\x00\x00\xb4\xe8\xff\xff\x17\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x80\x00\x00\xb0\x00\xe0\x00\x91\x81\x00\x00\xb0\x21\xe0\x00\x91\x3f\x00\x00\xeb\xc0\x00\x00\x54\x81\x00\x00\x90\x21\xe0\x47\xf9\x61\x00\x00\xb4\xf0\x03\x01\xaa\x00\x02\x1f\xd6\xc0\x03\x5f\xd6\x80\x00\x00\xb0\x00\xe0\x00\x91\x81\x00\x00\xb0\x21\xe0\x00\x91\x21\x00\x00\xcb\x22\xfc\x7f\xd3\x41\x0c\x81\x8b\x21\xfc\x41\x93\xc1\x00\x00\xb4\x82\x00\x00\x90\x42\xf0\x47\xf9\x62\x00\x00\xb4\xf0\x03\x02\xaa\x00\x02\x1f\xd6\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\xfd\x7b\xbe\xa9\xfd\x03\x00\x91\xf3\x0b\x00\xf9\x93\x00\x00\xb0\x60\xd2\x40\x39\x40\x01\x00\x35\x80\x00\x00\x90\x00\xe4\x47\xf9\x80\x00\x00\xb4\x80\x00\x00\xb0\x00\x14\x40\xf9\xb9\xff\xff\x97\xd8\xff\xff\x97\x20\x00\x80\x52\x60\xd2\x00\x39\xf3\x0b\x40\xf9\xfd\x7b\xc2\xa8\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\xdc\xff\xff\x17\x89\x00\x00\xb0\x28\x31\x40\xb9\x08\x09\x00\x11\x28\x31\x00\xb9\xc0\x03\x5f\xd6\x89\x00\x00\xb0\x28\x31\x40\xb9\x08\x19\x00\x11\x28\x31\x00\xb9\xc0\x03\x5f\xd6\x89\x00\x00\xb0\x28\x31\x40\xb9\x08\x1d\x00\x71\x28\x31\x00\xb9\xc0\x03\x5f\xd6\xff\x43\x01\xd1\xfd\x7b\x04\xa9\xfd\x03\x01\x91\xe8\x03\x1f\x2a\xe8\x0f\x00\xb9\xbf\xc3\x1f\xb8\xa0\x83\x1f\xb8\xa1\x03\x1f\xf8\x88\x00\x00\x90\x08\x01\x37\x91\x00\x01\xc0\x3d\xe0\x07\x80\x3d\x08\x09\x40\xf9\xe8\x13\x00\xf9\xe8\x0b\x40\xf9\x00\x01\x3f\xd6\xe8\x0f\x40\xf9\x00\x01\x3f\xd6\xe8\x13\x40\xf9\x00\x01\x3f\xd6\xe0\x0f\x40\xb9\xfd\x7b\x44\xa9\xff\x43\x01\x91\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\xfd\x7b\xbf\xa9\xfd\x03\x00\x91\xfd\x7b\xc1\xa8\xc0\x03\x5f\xd6\x01\x00\x02\x00\x01\x1b\x03\x3b\x54\x00\x00\x00\x09\x00\x00\x00\x38\xfe\xff\xff\x6c\x00\x00\x00\x88\xfe\xff\xff\x80\x00\x00\x00\xb8\xfe\xff\xff\x94\x00\x00\x00\xf8\xfe\xff\xff\xa8\x00\x00\x00\x48\xff\xff\xff\xcc\x00\x00\x00\x4c\xff\xff\xff\xf4\x00\x00\x00\x60\xff\xff\xff\x08\x01\x00\x00\x74\xff\xff\xff\x1c\x01\x00\x00\x88\xff\xff\xff\x30\x01\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x01\x7a\x52\x00\x04\x78\x1e\x01\x1b\x0c\x1f\x00\x10\x00\x00\x00\x18\x00\x00\x00\xc4\xfd\xff\xff\x34\x00\x00\x00\x00\x41\x07\x1e\x10\x00\x00\x00\x2c\x00\x00\x00\x00\xfe\xff\xff\x30\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x40\x00\x00\x00\x1c\xfe\xff\xff\x3c\x00\x00\x00\x00\x00\x00\x00\x20\x00\x00\x00\x54\x00\x00\x00\x48\xfe\xff\xff\x48\x00\x00\x00\x00\x41\x0e\x20\x9d\x04\x9e\x03\x42\x93\x02\x4e\xde\xdd\xd3\x0e\x00\x00\x00\x00\x10\x00\x00\x00\x78\x00\x00\x00\x74\xfe\xff\xff\x04\x00\x00\x00\x00\x00\x00\x00"), -Section(".comment", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x40\x06\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xd0\x1c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x38\x00\x09\x00\x40\x00\x1e\x00\x1d\x00\x06\x00\x00\x00\x04\x00\x00"), -Section(".interp", 0x238, "\x2f\x6c\x69\x62\x2f\x6c\x64\x2d\x6c\x69\x6e\x75\x78\x2d\x61\x61\x72\x63\x68\x36\x34\x2e\x73\x6f\x2e\x31\x00"), -Section(".note.gnu.build-id", 0x254, "\x04\x00\x00\x00\x14\x00\x00\x00\x03\x00\x00\x00\x47\x4e\x55\x00\xd4\xbf\xc2\x90\x30\x16\xec\x04\xfd\x78\x4e\x21\xb0\xf3\xeb\x75\x17\x7f\x1a\x2e"), -Section(".note.ABI-tag", 0x278, "\x04\x00\x00\x00\x10\x00\x00\x00\x01\x00\x00\x00\x47\x4e\x55\x00\x00\x00\x00\x00\x03\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00"), -Section(".gnu.hash", 0x298, "\x01\x00\x00\x00\x01\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".dynsym", 0x2B8, "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x0b\x00\xc8\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x18\x00\x20\x10\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x48\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x22\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x22\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x73\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".dynstr", 0x390, "\x00\x5f\x5f\x63\x78\x61\x5f\x66\x69\x6e\x61\x6c\x69\x7a\x65\x00\x5f\x5f\x6c\x69\x62\x63\x5f\x73\x74\x61\x72\x74\x5f\x6d\x61\x69\x6e\x00\x61\x62\x6f\x72\x74\x00\x6c\x69\x62\x63\x2e\x73\x6f\x2e\x36\x00\x47\x4c\x49\x42\x43\x5f\x32\x2e\x31\x37\x00\x47\x4c\x49\x42\x43\x5f\x32\x2e\x33\x34\x00\x5f\x49\x54\x4d\x5f\x64\x65\x72\x65\x67\x69\x73\x74\x65\x72\x54\x4d\x43\x6c\x6f\x6e\x65\x54\x61\x62\x6c\x65\x00\x5f\x5f\x67\x6d\x6f\x6e\x5f\x73\x74\x61\x72\x74\x5f\x5f\x00\x5f\x49\x54\x4d\x5f\x72\x65\x67\x69\x73\x74\x65\x72\x54\x4d\x43\x6c\x6f\x6e\x65\x54\x61\x62\x6c\x65\x00"), -Section(".gnu.version", 0x41E, "\x00\x00\x00\x00\x00\x00\x02\x00\x01\x00\x03\x00\x01\x00\x03\x00\x01\x00"), -Section(".gnu.version_r", 0x430, "\x01\x00\x02\x00\x28\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x97\x91\x96\x06\x00\x00\x03\x00\x32\x00\x00\x00\x10\x00\x00\x00\xb4\x91\x96\x06\x00\x00\x02\x00\x3d\x00\x00\x00\x00\x00\x00\x00"), -Section(".rela.dyn", 0x460, "\xb0\x0d\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x50\x07\x00\x00\x00\x00\x00\x00\xb8\x0d\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\xc0\x0d\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x54\x07\x00\x00\x00\x00\x00\x00\xc8\x0d\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x68\x07\x00\x00\x00\x00\x00\x00\xd0\x0d\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x7c\x07\x00\x00\x00\x00\x00\x00\xd8\x0f\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x90\x07\x00\x00\x00\x00\x00\x00\x28\x10\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x28\x10\x01\x00\x00\x00\x00\x00\xc0\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xc8\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xd0\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe0\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".rela.plt", 0x568, "\x00\x10\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x08\x10\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x10\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x18\x10\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".init", 0x5C8, "\x1f\x20\x03\xd5\xfd\x7b\xbf\xa9\xfd\x03\x00\x91\x28\x00\x00\x94\xfd\x7b\xc1\xa8\xc0\x03\x5f\xd6"), -Section(".plt", 0x5E0, "\xf0\x7b\xbf\xa9\x90\x00\x00\x90\x11\xfe\x47\xf9\x10\xe2\x3f\x91\x20\x02\x1f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x90\x00\x00\xb0\x11\x02\x40\xf9\x10\x02\x00\x91\x20\x02\x1f\xd6\x90\x00\x00\xb0\x11\x06\x40\xf9\x10\x22\x00\x91\x20\x02\x1f\xd6\x90\x00\x00\xb0\x11\x0a\x40\xf9\x10\x42\x00\x91\x20\x02\x1f\xd6\x90\x00\x00\xb0\x11\x0e\x40\xf9\x10\x62\x00\x91\x20\x02\x1f\xd6"), -Section(".text", 0x640, "\x1f\x20\x03\xd5\x1d\x00\x80\xd2\x1e\x00\x80\xd2\xe5\x03\x00\xaa\xe1\x03\x40\xf9\xe2\x23\x00\x91\xe6\x03\x00\x91\x80\x00\x00\x90\x00\xec\x47\xf9\x03\x00\x80\xd2\x04\x00\x80\xd2\xe5\xff\xff\x97\xf0\xff\xff\x97\x80\x00\x00\x90\x00\xe8\x47\xf9\x40\x00\x00\xb4\xe8\xff\xff\x17\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x80\x00\x00\xb0\x00\xe0\x00\x91\x81\x00\x00\xb0\x21\xe0\x00\x91\x3f\x00\x00\xeb\xc0\x00\x00\x54\x81\x00\x00\x90\x21\xe0\x47\xf9\x61\x00\x00\xb4\xf0\x03\x01\xaa\x00\x02\x1f\xd6\xc0\x03\x5f\xd6\x80\x00\x00\xb0\x00\xe0\x00\x91\x81\x00\x00\xb0\x21\xe0\x00\x91\x21\x00\x00\xcb\x22\xfc\x7f\xd3\x41\x0c\x81\x8b\x21\xfc\x41\x93\xc1\x00\x00\xb4\x82\x00\x00\x90\x42\xf0\x47\xf9\x62\x00\x00\xb4\xf0\x03\x02\xaa\x00\x02\x1f\xd6\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\xfd\x7b\xbe\xa9\xfd\x03\x00\x91\xf3\x0b\x00\xf9\x93\x00\x00\xb0\x60\xd2\x40\x39\x40\x01\x00\x35\x80\x00\x00\x90\x00\xe4\x47\xf9\x80\x00\x00\xb4\x80\x00\x00\xb0\x00\x14\x40\xf9\xb9\xff\xff\x97\xd8\xff\xff\x97\x20\x00\x80\x52\x60\xd2\x00\x39\xf3\x0b\x40\xf9\xfd\x7b\xc2\xa8\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\xdc\xff\xff\x17\x89\x00\x00\xb0\x28\x31\x40\xb9\x08\x09\x00\x11\x28\x31\x00\xb9\xc0\x03\x5f\xd6\x89\x00\x00\xb0\x28\x31\x40\xb9\x08\x19\x00\x11\x28\x31\x00\xb9\xc0\x03\x5f\xd6\x89\x00\x00\xb0\x28\x31\x40\xb9\x08\x1d\x00\x71\x28\x31\x00\xb9\xc0\x03\x5f\xd6\xff\x43\x01\xd1\xfd\x7b\x04\xa9\xfd\x03\x01\x91\xe8\x03\x1f\x2a\xe8\x0f\x00\xb9\xbf\xc3\x1f\xb8\xa0\x83\x1f\xb8\xa1\x03\x1f\xf8\x88\x00\x00\x90\x08\x01\x37\x91\x00\x01\xc0\x3d\xe0\x07\x80\x3d\x08\x09\x40\xf9\xe8\x13\x00\xf9\xe8\x0b\x40\xf9\x00\x01\x3f\xd6\xe8\x0f\x40\xf9\x00\x01\x3f\xd6\xe8\x13\x40\xf9\x00\x01\x3f\xd6\xe0\x0f\x40\xb9\xfd\x7b\x44\xa9\xff\x43\x01\x91\xc0\x03\x5f\xd6"), -Section(".fini", 0x7F0, "\x1f\x20\x03\xd5\xfd\x7b\xbf\xa9\xfd\x03\x00\x91\xfd\x7b\xc1\xa8\xc0\x03\x5f\xd6"), -Section(".rodata", 0x804, "\x01\x00\x02\x00"), -Section(".eh_frame_hdr", 0x808, "\x01\x1b\x03\x3b\x54\x00\x00\x00\x09\x00\x00\x00\x38\xfe\xff\xff\x6c\x00\x00\x00\x88\xfe\xff\xff\x80\x00\x00\x00\xb8\xfe\xff\xff\x94\x00\x00\x00\xf8\xfe\xff\xff\xa8\x00\x00\x00\x48\xff\xff\xff\xcc\x00\x00\x00\x4c\xff\xff\xff\xf4\x00\x00\x00\x60\xff\xff\xff\x08\x01\x00\x00\x74\xff\xff\xff\x1c\x01\x00\x00\x88\xff\xff\xff\x30\x01\x00\x00"), -Section(".eh_frame", 0x860, "\x10\x00\x00\x00\x00\x00\x00\x00\x01\x7a\x52\x00\x04\x78\x1e\x01\x1b\x0c\x1f\x00\x10\x00\x00\x00\x18\x00\x00\x00\xc4\xfd\xff\xff\x34\x00\x00\x00\x00\x41\x07\x1e\x10\x00\x00\x00\x2c\x00\x00\x00\x00\xfe\xff\xff\x30\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x40\x00\x00\x00\x1c\xfe\xff\xff\x3c\x00\x00\x00\x00\x00\x00\x00\x20\x00\x00\x00\x54\x00\x00\x00\x48\xfe\xff\xff\x48\x00\x00\x00\x00\x41\x0e\x20\x9d\x04\x9e\x03\x42\x93\x02\x4e\xde\xdd\xd3\x0e\x00\x00\x00\x00\x10\x00\x00\x00\x78\x00\x00\x00\x74\xfe\xff\xff\x04\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x01\x7a\x52\x00\x01\x7c\x1e\x01\x1b\x0c\x1f\x00\x10\x00\x00\x00\x18\x00\x00\x00\x50\xfe\xff\xff\x14\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x2c\x00\x00\x00\x50\xfe\xff\xff\x14\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x40\x00\x00\x00\x50\xfe\xff\xff\x14\x00\x00\x00\x00\x00\x00\x00\x24\x00\x00\x00\x54\x00\x00\x00\x50\xfe\xff\xff\x60\x00\x00\x00\x00\x44\x0e\x50\x48\x0c\x1d\x10\x9e\x02\x9d\x04\x02\x48\x0c\x1f\x50\x48\x0e\x00\xde\xdd\x00\x00\x00\x00\x00\x00"), -Section(".fini_array", 0x10DB8, "\x00\x07\x00\x00\x00\x00\x00\x00"), -Section(".data.rel.ro", 0x10DC0, "\x54\x07\x00\x00\x00\x00\x00\x00\x68\x07\x00\x00\x00\x00\x00\x00\x7c\x07\x00\x00\x00\x00\x00\x00"), -Section(".dynamic", 0x10DD8, "\x01\x00\x00\x00\x00\x00\x00\x00\x28\x00\x00\x00\x00\x00\x00\x00\x0c\x00\x00\x00\x00\x00\x00\x00\xc8\x05\x00\x00\x00\x00\x00\x00\x0d\x00\x00\x00\x00\x00\x00\x00\xf0\x07\x00\x00\x00\x00\x00\x00\x19\x00\x00\x00\x00\x00\x00\x00\xb0\x0d\x01\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x1a\x00\x00\x00\x00\x00\x00\x00\xb8\x0d\x01\x00\x00\x00\x00\x00\x1c\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\xf5\xfe\xff\x6f\x00\x00\x00\x00\x98\x02\x00\x00\x00\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x90\x03\x00\x00\x00\x00\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\xb8\x02\x00\x00\x00\x00\x00\x00\x0a\x00\x00\x00\x00\x00\x00\x00\x8d\x00\x00\x00\x00\x00\x00\x00\x0b\x00\x00\x00\x00\x00\x00\x00\x18\x00\x00\x00\x00\x00\x00\x00\x15\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\xe8\x0f\x01\x00\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x60\x00\x00\x00\x00\x00\x00\x00\x14\x00\x00\x00\x00\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x17\x00\x00\x00\x00\x00\x00\x00\x68\x05\x00\x00\x00\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x60\x04\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x08\x01\x00\x00\x00\x00\x00\x00\x09\x00\x00\x00\x00\x00\x00\x00\x18\x00\x00\x00\x00\x00\x00\x00\xfb\xff\xff\x6f\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\xfe\xff\xff\x6f\x00\x00\x00\x00\x30\x04\x00\x00\x00\x00\x00\x00\xff\xff\xff\x6f\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\xf0\xff\xff\x6f\x00\x00\x00\x00\x1e\x04\x00\x00\x00\x00\x00\x00\xf9\xff\xff\x6f\x00\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".got", 0x10FB8, "\xd8\x0d\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x90\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".got.plt", 0x10FE8, "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe0\x05\x00\x00\x00\x00\x00\x00\xe0\x05\x00\x00\x00\x00\x00\x00\xe0\x05\x00\x00\x00\x00\x00\x00\xe0\x05\x00\x00\x00\x00\x00\x00"), -Section(".data", 0x11020, "\x00\x00\x00\x00\x00\x00\x00\x00\x28\x10\x01\x00\x00\x00\x00\x00\x05\x00\x00\x00"), -Section(".init_array", 0x10DB0, "\x50\x07\x00\x00\x00\x00\x00\x00")]), -Memmap([Annotation(Region(0x0,0x963), Attr("segment","02 0 2404")), -Annotation(Region(0x640,0x673), Attr("symbol","\"_start\"")), -Annotation(Region(0x0,0x10F), Attr("section","\".shstrtab\"")), -Annotation(Region(0x0,0x253), Attr("section","\".strtab\"")), -Annotation(Region(0x0,0x8E7), Attr("section","\".symtab\"")), -Annotation(Region(0x0,0x46), Attr("section","\".comment\"")), -Annotation(Region(0x238,0x252), Attr("section","\".interp\"")), -Annotation(Region(0x254,0x277), Attr("section","\".note.gnu.build-id\"")), -Annotation(Region(0x278,0x297), Attr("section","\".note.ABI-tag\"")), -Annotation(Region(0x298,0x2B3), Attr("section","\".gnu.hash\"")), -Annotation(Region(0x2B8,0x38F), Attr("section","\".dynsym\"")), -Annotation(Region(0x390,0x41C), Attr("section","\".dynstr\"")), -Annotation(Region(0x41E,0x42F), Attr("section","\".gnu.version\"")), -Annotation(Region(0x430,0x45F), Attr("section","\".gnu.version_r\"")), -Annotation(Region(0x460,0x567), Attr("section","\".rela.dyn\"")), -Annotation(Region(0x568,0x5C7), Attr("section","\".rela.plt\"")), -Annotation(Region(0x5C8,0x5DF), Attr("section","\".init\"")), -Annotation(Region(0x5E0,0x63F), Attr("section","\".plt\"")), -Annotation(Region(0x5C8,0x5DF), Attr("code-region","()")), -Annotation(Region(0x5E0,0x63F), Attr("code-region","()")), -Annotation(Region(0x640,0x673), Attr("symbol-info","_start 0x640 52")), -Annotation(Region(0x674,0x687), Attr("symbol","\"call_weak_fn\"")), -Annotation(Region(0x674,0x687), Attr("symbol-info","call_weak_fn 0x674 20")), -Annotation(Region(0x754,0x767), Attr("symbol","\"add_two\"")), -Annotation(Region(0x754,0x767), Attr("symbol-info","add_two 0x754 20")), -Annotation(Region(0x768,0x77B), Attr("symbol","\"add_six\"")), -Annotation(Region(0x768,0x77B), Attr("symbol-info","add_six 0x768 20")), -Annotation(Region(0x77C,0x78F), Attr("symbol","\"sub_seven\"")), -Annotation(Region(0x640,0x7EF), Attr("section","\".text\"")), -Annotation(Region(0x640,0x7EF), Attr("code-region","()")), -Annotation(Region(0x77C,0x78F), Attr("symbol-info","sub_seven 0x77C 20")), -Annotation(Region(0x790,0x7EF), Attr("symbol","\"main\"")), -Annotation(Region(0x790,0x7EF), Attr("symbol-info","main 0x790 96")), -Annotation(Region(0x7F0,0x803), Attr("section","\".fini\"")), -Annotation(Region(0x7F0,0x803), Attr("code-region","()")), -Annotation(Region(0x804,0x807), Attr("section","\".rodata\"")), -Annotation(Region(0x808,0x85B), Attr("section","\".eh_frame_hdr\"")), -Annotation(Region(0x860,0x963), Attr("section","\".eh_frame\"")), -Annotation(Region(0x10DB0,0x11033), Attr("segment","03 0x10DB0 648")), -Annotation(Region(0x10DB8,0x10DBF), Attr("section","\".fini_array\"")), -Annotation(Region(0x10DC0,0x10DD7), Attr("section","\".data.rel.ro\"")), -Annotation(Region(0x10DD8,0x10FB7), Attr("section","\".dynamic\"")), -Annotation(Region(0x10FB8,0x10FE7), Attr("section","\".got\"")), -Annotation(Region(0x10FE8,0x1101F), Attr("section","\".got.plt\"")), -Annotation(Region(0x11020,0x11033), Attr("section","\".data\"")), -Annotation(Region(0x10DB0,0x10DB7), Attr("section","\".init_array\""))]), -Program(Tid(1_900, "%0000076c"), Attrs([]), - Subs([Sub(Tid(1_844, "@__cxa_finalize"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x610"), -Attr("stub","()")]), "__cxa_finalize", Args([Arg(Tid(1_901, "%0000076d"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("__cxa_finalize_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(1_194, "@__cxa_finalize"), - Attrs([Attr("address","0x610")]), Phis([]), -Defs([Def(Tid(1_442, "%000005a2"), Attrs([Attr("address","0x610"), -Attr("insn","adrp x16, #69632")]), Var("R16",Imm(64)), Int(69632,64)), -Def(Tid(1_449, "%000005a9"), Attrs([Attr("address","0x614"), -Attr("insn","ldr x17, [x16, #0x8]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(1_455, "%000005af"), Attrs([Attr("address","0x618"), -Attr("insn","add x16, x16, #0x8")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(8,64)))]), Jmps([Call(Tid(1_460, "%000005b4"), - Attrs([Attr("address","0x61C"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), -Sub(Tid(1_845, "@__do_global_dtors_aux"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x700")]), - "__do_global_dtors_aux", Args([Arg(Tid(1_902, "%0000076e"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("__do_global_dtors_aux_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(746, "@__do_global_dtors_aux"), - Attrs([Attr("address","0x700")]), Phis([]), Defs([Def(Tid(750, "%000002ee"), - Attrs([Attr("address","0x700"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("#3",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(18446744073709551584,64))), -Def(Tid(756, "%000002f4"), Attrs([Attr("address","0x700"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("#3",Imm(64)),Var("R29",Imm(64)),LittleEndian(),64)), -Def(Tid(762, "%000002fa"), Attrs([Attr("address","0x700"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("#3",Imm(64)),Int(8,64)),Var("R30",Imm(64)),LittleEndian(),64)), -Def(Tid(766, "%000002fe"), Attrs([Attr("address","0x700"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("R31",Imm(64)), -Var("#3",Imm(64))), Def(Tid(772, "%00000304"), - Attrs([Attr("address","0x704"), Attr("insn","mov x29, sp")]), - Var("R29",Imm(64)), Var("R31",Imm(64))), Def(Tid(780, "%0000030c"), - Attrs([Attr("address","0x708"), Attr("insn","str x19, [sp, #0x10]")]), - Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(16,64)),Var("R19",Imm(64)),LittleEndian(),64)), -Def(Tid(785, "%00000311"), Attrs([Attr("address","0x70C"), -Attr("insn","adrp x19, #69632")]), Var("R19",Imm(64)), Int(69632,64)), -Def(Tid(792, "%00000318"), Attrs([Attr("address","0x710"), -Attr("insn","ldrb w0, [x19, #0x34]")]), Var("R0",Imm(64)), -UNSIGNED(64,Load(Var("mem",Mem(64,8)),PLUS(Var("R19",Imm(64)),Int(52,64)),LittleEndian(),8)))]), -Jmps([Goto(Tid(799, "%0000031f"), Attrs([Attr("address","0x714"), -Attr("insn","cbnz w0, #0x28")]), - NEQ(Extract(31,0,Var("R0",Imm(64))),Int(0,32)), -Direct(Tid(797, "%0000031d"))), Goto(Tid(1_890, "%00000762"), Attrs([]), - Int(1,1), Direct(Tid(1_139, "%00000473")))])), Blk(Tid(1_139, "%00000473"), - Attrs([Attr("address","0x718")]), Phis([]), -Defs([Def(Tid(1_142, "%00000476"), Attrs([Attr("address","0x718"), -Attr("insn","adrp x0, #65536")]), Var("R0",Imm(64)), Int(65536,64)), -Def(Tid(1_149, "%0000047d"), Attrs([Attr("address","0x71C"), -Attr("insn","ldr x0, [x0, #0xfc8]")]), Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(4040,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(1_155, "%00000483"), Attrs([Attr("address","0x720"), -Attr("insn","cbz x0, #0x10")]), EQ(Var("R0",Imm(64)),Int(0,64)), -Direct(Tid(1_153, "%00000481"))), Goto(Tid(1_891, "%00000763"), Attrs([]), - Int(1,1), Direct(Tid(1_178, "%0000049a")))])), Blk(Tid(1_178, "%0000049a"), - Attrs([Attr("address","0x724")]), Phis([]), -Defs([Def(Tid(1_181, "%0000049d"), Attrs([Attr("address","0x724"), -Attr("insn","adrp x0, #69632")]), Var("R0",Imm(64)), Int(69632,64)), -Def(Tid(1_188, "%000004a4"), Attrs([Attr("address","0x728"), -Attr("insn","ldr x0, [x0, #0x28]")]), Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(40,64)),LittleEndian(),64)), -Def(Tid(1_193, "%000004a9"), Attrs([Attr("address","0x72C"), -Attr("insn","bl #-0x11c")]), Var("R30",Imm(64)), Int(1840,64))]), -Jmps([Call(Tid(1_196, "%000004ac"), Attrs([Attr("address","0x72C"), -Attr("insn","bl #-0x11c")]), Int(1,1), -(Direct(Tid(1_844, "@__cxa_finalize")),Direct(Tid(1_153, "%00000481"))))])), -Blk(Tid(1_153, "%00000481"), Attrs([Attr("address","0x730")]), Phis([]), -Defs([Def(Tid(1_161, "%00000489"), Attrs([Attr("address","0x730"), -Attr("insn","bl #-0xa0")]), Var("R30",Imm(64)), Int(1844,64))]), -Jmps([Call(Tid(1_163, "%0000048b"), Attrs([Attr("address","0x730"), -Attr("insn","bl #-0xa0")]), Int(1,1), -(Direct(Tid(1_860, "@deregister_tm_clones")),Direct(Tid(1_165, "%0000048d"))))])), -Blk(Tid(1_165, "%0000048d"), Attrs([Attr("address","0x734")]), Phis([]), -Defs([Def(Tid(1_168, "%00000490"), Attrs([Attr("address","0x734"), -Attr("insn","mov w0, #0x1")]), Var("R0",Imm(64)), Int(1,64)), -Def(Tid(1_176, "%00000498"), Attrs([Attr("address","0x738"), -Attr("insn","strb w0, [x19, #0x34]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R19",Imm(64)),Int(52,64)),Extract(7,0,Var("R0",Imm(64))),LittleEndian(),8))]), -Jmps([Goto(Tid(1_892, "%00000764"), Attrs([]), Int(1,1), -Direct(Tid(797, "%0000031d")))])), Blk(Tid(797, "%0000031d"), - Attrs([Attr("address","0x73C")]), Phis([]), Defs([Def(Tid(807, "%00000327"), - Attrs([Attr("address","0x73C"), Attr("insn","ldr x19, [sp, #0x10]")]), - Var("R19",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(16,64)),LittleEndian(),64)), -Def(Tid(814, "%0000032e"), Attrs([Attr("address","0x740"), -Attr("insn","ldp x29, x30, [sp], #0x20")]), Var("R29",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(819, "%00000333"), Attrs([Attr("address","0x740"), -Attr("insn","ldp x29, x30, [sp], #0x20")]), Var("R30",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(823, "%00000337"), Attrs([Attr("address","0x740"), -Attr("insn","ldp x29, x30, [sp], #0x20")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(32,64)))]), Jmps([Call(Tid(828, "%0000033c"), - Attrs([Attr("address","0x744"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), Sub(Tid(1_849, "@__libc_start_main"), - Attrs([Attr("c.proto","signed (*)(signed (*)(signed , char** , char** );* main, signed , char** , \nvoid* auxv)"), -Attr("address","0x600"), Attr("stub","()")]), "__libc_start_main", - Args([Arg(Tid(1_903, "%0000076f"), - Attrs([Attr("c.layout","**[ : 64]"), -Attr("c.data","Top:u64 ptr ptr"), -Attr("c.type","signed (*)(signed , char** , char** );*")]), - Var("__libc_start_main_main",Imm(64)), Var("R0",Imm(64)), In()), -Arg(Tid(1_904, "%00000770"), Attrs([Attr("c.layout","[signed : 32]"), -Attr("c.data","Top:u32"), Attr("c.type","signed")]), - Var("__libc_start_main_arg2",Imm(32)), LOW(32,Var("R1",Imm(64))), In()), -Arg(Tid(1_905, "%00000771"), Attrs([Attr("c.layout","**[char : 8]"), -Attr("c.data","Top:u8 ptr ptr"), Attr("c.type","char**")]), - Var("__libc_start_main_arg3",Imm(64)), Var("R2",Imm(64)), Both()), -Arg(Tid(1_906, "%00000772"), Attrs([Attr("c.layout","*[ : 8]"), -Attr("c.data","{} ptr"), Attr("c.type","void*")]), - Var("__libc_start_main_auxv",Imm(64)), Var("R3",Imm(64)), Both()), -Arg(Tid(1_907, "%00000773"), Attrs([Attr("c.layout","[signed : 32]"), -Attr("c.data","Top:u32"), Attr("c.type","signed")]), - Var("__libc_start_main_result",Imm(32)), LOW(32,Var("R0",Imm(64))), -Out())]), Blks([Blk(Tid(579, "@__libc_start_main"), - Attrs([Attr("address","0x600")]), Phis([]), -Defs([Def(Tid(1_420, "%0000058c"), Attrs([Attr("address","0x600"), -Attr("insn","adrp x16, #69632")]), Var("R16",Imm(64)), Int(69632,64)), -Def(Tid(1_427, "%00000593"), Attrs([Attr("address","0x604"), -Attr("insn","ldr x17, [x16]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R16",Imm(64)),LittleEndian(),64)), -Def(Tid(1_433, "%00000599"), Attrs([Attr("address","0x608"), -Attr("insn","add x16, x16, #0x0")]), Var("R16",Imm(64)), -Var("R16",Imm(64)))]), Jmps([Call(Tid(1_438, "%0000059e"), - Attrs([Attr("address","0x60C"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), Sub(Tid(1_850, "@_fini"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x7F0")]), - "_fini", Args([Arg(Tid(1_908, "%00000774"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("_fini_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(31, "@_fini"), - Attrs([Attr("address","0x7F0")]), Phis([]), Defs([Def(Tid(37, "%00000025"), - Attrs([Attr("address","0x7F4"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("#0",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(18446744073709551600,64))), -Def(Tid(43, "%0000002b"), Attrs([Attr("address","0x7F4"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("#0",Imm(64)),Var("R29",Imm(64)),LittleEndian(),64)), -Def(Tid(49, "%00000031"), Attrs([Attr("address","0x7F4"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("#0",Imm(64)),Int(8,64)),Var("R30",Imm(64)),LittleEndian(),64)), -Def(Tid(53, "%00000035"), Attrs([Attr("address","0x7F4"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("R31",Imm(64)), -Var("#0",Imm(64))), Def(Tid(59, "%0000003b"), Attrs([Attr("address","0x7F8"), -Attr("insn","mov x29, sp")]), Var("R29",Imm(64)), Var("R31",Imm(64))), -Def(Tid(66, "%00000042"), Attrs([Attr("address","0x7FC"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R29",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(71, "%00000047"), Attrs([Attr("address","0x7FC"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R30",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(75, "%0000004b"), Attrs([Attr("address","0x7FC"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(16,64)))]), Jmps([Call(Tid(80, "%00000050"), - Attrs([Attr("address","0x800"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), Sub(Tid(1_851, "@_init"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x5C8")]), - "_init", Args([Arg(Tid(1_909, "%00000775"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("_init_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(1_647, "@_init"), - Attrs([Attr("address","0x5C8")]), Phis([]), -Defs([Def(Tid(1_653, "%00000675"), Attrs([Attr("address","0x5CC"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("#8",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(18446744073709551600,64))), -Def(Tid(1_659, "%0000067b"), Attrs([Attr("address","0x5CC"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("#8",Imm(64)),Var("R29",Imm(64)),LittleEndian(),64)), -Def(Tid(1_665, "%00000681"), Attrs([Attr("address","0x5CC"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("#8",Imm(64)),Int(8,64)),Var("R30",Imm(64)),LittleEndian(),64)), -Def(Tid(1_669, "%00000685"), Attrs([Attr("address","0x5CC"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("R31",Imm(64)), -Var("#8",Imm(64))), Def(Tid(1_675, "%0000068b"), - Attrs([Attr("address","0x5D0"), Attr("insn","mov x29, sp")]), - Var("R29",Imm(64)), Var("R31",Imm(64))), Def(Tid(1_680, "%00000690"), - Attrs([Attr("address","0x5D4"), Attr("insn","bl #0xa0")]), - Var("R30",Imm(64)), Int(1496,64))]), Jmps([Call(Tid(1_682, "%00000692"), - Attrs([Attr("address","0x5D4"), Attr("insn","bl #0xa0")]), Int(1,1), -(Direct(Tid(1_858, "@call_weak_fn")),Direct(Tid(1_684, "%00000694"))))])), -Blk(Tid(1_684, "%00000694"), Attrs([Attr("address","0x5D8")]), Phis([]), -Defs([Def(Tid(1_689, "%00000699"), Attrs([Attr("address","0x5D8"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R29",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(1_694, "%0000069e"), Attrs([Attr("address","0x5D8"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R30",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(1_698, "%000006a2"), Attrs([Attr("address","0x5D8"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(16,64)))]), Jmps([Call(Tid(1_703, "%000006a7"), - Attrs([Attr("address","0x5DC"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), Sub(Tid(1_852, "@_start"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x640"), -Attr("stub","()"), Attr("entry-point","()")]), "_start", - Args([Arg(Tid(1_910, "%00000776"), Attrs([Attr("c.layout","[signed : 32]"), -Attr("c.data","Top:u32"), Attr("c.type","signed")]), - Var("_start_result",Imm(32)), LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(516, "@_start"), Attrs([Attr("address","0x640")]), Phis([]), -Defs([Def(Tid(521, "%00000209"), Attrs([Attr("address","0x644"), -Attr("insn","mov x29, #0x0")]), Var("R29",Imm(64)), Int(0,64)), -Def(Tid(526, "%0000020e"), Attrs([Attr("address","0x648"), -Attr("insn","mov x30, #0x0")]), Var("R30",Imm(64)), Int(0,64)), -Def(Tid(532, "%00000214"), Attrs([Attr("address","0x64C"), -Attr("insn","mov x5, x0")]), Var("R5",Imm(64)), Var("R0",Imm(64))), -Def(Tid(539, "%0000021b"), Attrs([Attr("address","0x650"), -Attr("insn","ldr x1, [sp]")]), Var("R1",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(545, "%00000221"), Attrs([Attr("address","0x654"), -Attr("insn","add x2, sp, #0x8")]), Var("R2",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(8,64))), Def(Tid(551, "%00000227"), - Attrs([Attr("address","0x658"), Attr("insn","mov x6, sp")]), - Var("R6",Imm(64)), Var("R31",Imm(64))), Def(Tid(556, "%0000022c"), - Attrs([Attr("address","0x65C"), Attr("insn","adrp x0, #65536")]), - Var("R0",Imm(64)), Int(65536,64)), Def(Tid(563, "%00000233"), - Attrs([Attr("address","0x660"), Attr("insn","ldr x0, [x0, #0xfd8]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(4056,64)),LittleEndian(),64)), -Def(Tid(568, "%00000238"), Attrs([Attr("address","0x664"), -Attr("insn","mov x3, #0x0")]), Var("R3",Imm(64)), Int(0,64)), -Def(Tid(573, "%0000023d"), Attrs([Attr("address","0x668"), -Attr("insn","mov x4, #0x0")]), Var("R4",Imm(64)), Int(0,64)), -Def(Tid(578, "%00000242"), Attrs([Attr("address","0x66C"), -Attr("insn","bl #-0x6c")]), Var("R30",Imm(64)), Int(1648,64))]), -Jmps([Call(Tid(581, "%00000245"), Attrs([Attr("address","0x66C"), -Attr("insn","bl #-0x6c")]), Int(1,1), -(Direct(Tid(1_849, "@__libc_start_main")),Direct(Tid(583, "%00000247"))))])), -Blk(Tid(583, "%00000247"), Attrs([Attr("address","0x670")]), Phis([]), -Defs([Def(Tid(586, "%0000024a"), Attrs([Attr("address","0x670"), -Attr("insn","bl #-0x40")]), Var("R30",Imm(64)), Int(1652,64))]), -Jmps([Call(Tid(589, "%0000024d"), Attrs([Attr("address","0x670"), -Attr("insn","bl #-0x40")]), Int(1,1), -(Direct(Tid(1_855, "@abort")),Direct(Tid(1_893, "%00000765"))))])), -Blk(Tid(1_893, "%00000765"), Attrs([]), Phis([]), Defs([]), -Jmps([Call(Tid(1_894, "%00000766"), Attrs([]), Int(1,1), -(Direct(Tid(1_858, "@call_weak_fn")),))]))])), Sub(Tid(1_855, "@abort"), - Attrs([Attr("noreturn","()"), Attr("c.proto","void (*)(void)"), -Attr("address","0x630"), Attr("stub","()")]), "abort", Args([]), -Blks([Blk(Tid(587, "@abort"), Attrs([Attr("address","0x630")]), Phis([]), -Defs([Def(Tid(1_486, "%000005ce"), Attrs([Attr("address","0x630"), -Attr("insn","adrp x16, #69632")]), Var("R16",Imm(64)), Int(69632,64)), -Def(Tid(1_493, "%000005d5"), Attrs([Attr("address","0x634"), -Attr("insn","ldr x17, [x16, #0x18]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(24,64)),LittleEndian(),64)), -Def(Tid(1_499, "%000005db"), Attrs([Attr("address","0x638"), -Attr("insn","add x16, x16, #0x18")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(24,64)))]), Jmps([Call(Tid(1_504, "%000005e0"), - Attrs([Attr("address","0x63C"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), Sub(Tid(1_856, "@add_six"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x768")]), - "add_six", Args([Arg(Tid(1_911, "%00000777"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("add_six_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(869, "@add_six"), - Attrs([Attr("address","0x768")]), Phis([]), Defs([Def(Tid(872, "%00000368"), - Attrs([Attr("address","0x768"), Attr("insn","adrp x9, #69632")]), - Var("R9",Imm(64)), Int(69632,64)), Def(Tid(879, "%0000036f"), - Attrs([Attr("address","0x76C"), Attr("insn","ldr w8, [x9, #0x30]")]), - Var("R8",Imm(64)), -UNSIGNED(64,Load(Var("mem",Mem(64,8)),PLUS(Var("R9",Imm(64)),Int(48,64)),LittleEndian(),32))), -Def(Tid(885, "%00000375"), Attrs([Attr("address","0x770"), -Attr("insn","add w8, w8, #0x6")]), Var("R8",Imm(64)), -UNSIGNED(64,PLUS(Extract(31,0,Var("R8",Imm(64))),Int(6,32)))), -Def(Tid(893, "%0000037d"), Attrs([Attr("address","0x774"), -Attr("insn","str w8, [x9, #0x30]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R9",Imm(64)),Int(48,64)),Extract(31,0,Var("R8",Imm(64))),LittleEndian(),32))]), -Jmps([Call(Tid(898, "%00000382"), Attrs([Attr("address","0x778"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))]))])), -Sub(Tid(1_857, "@add_two"), Attrs([Attr("c.proto","signed (*)(void)"), -Attr("address","0x754")]), "add_two", Args([Arg(Tid(1_912, "%00000778"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("add_two_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(838, "@add_two"), - Attrs([Attr("address","0x754")]), Phis([]), Defs([Def(Tid(841, "%00000349"), - Attrs([Attr("address","0x754"), Attr("insn","adrp x9, #69632")]), - Var("R9",Imm(64)), Int(69632,64)), Def(Tid(848, "%00000350"), - Attrs([Attr("address","0x758"), Attr("insn","ldr w8, [x9, #0x30]")]), - Var("R8",Imm(64)), -UNSIGNED(64,Load(Var("mem",Mem(64,8)),PLUS(Var("R9",Imm(64)),Int(48,64)),LittleEndian(),32))), -Def(Tid(854, "%00000356"), Attrs([Attr("address","0x75C"), -Attr("insn","add w8, w8, #0x2")]), Var("R8",Imm(64)), -UNSIGNED(64,PLUS(Extract(31,0,Var("R8",Imm(64))),Int(2,32)))), -Def(Tid(862, "%0000035e"), Attrs([Attr("address","0x760"), -Attr("insn","str w8, [x9, #0x30]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R9",Imm(64)),Int(48,64)),Extract(31,0,Var("R8",Imm(64))),LittleEndian(),32))]), -Jmps([Call(Tid(867, "%00000363"), Attrs([Attr("address","0x764"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))]))])), -Sub(Tid(1_858, "@call_weak_fn"), Attrs([Attr("c.proto","signed (*)(void)"), -Attr("address","0x674")]), "call_weak_fn", Args([Arg(Tid(1_913, "%00000779"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("call_weak_fn_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(591, "@call_weak_fn"), - Attrs([Attr("address","0x674")]), Phis([]), Defs([Def(Tid(594, "%00000252"), - Attrs([Attr("address","0x674"), Attr("insn","adrp x0, #65536")]), - Var("R0",Imm(64)), Int(65536,64)), Def(Tid(601, "%00000259"), - Attrs([Attr("address","0x678"), Attr("insn","ldr x0, [x0, #0xfd0]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(4048,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(607, "%0000025f"), Attrs([Attr("address","0x67C"), -Attr("insn","cbz x0, #0x8")]), EQ(Var("R0",Imm(64)),Int(0,64)), -Direct(Tid(605, "%0000025d"))), Goto(Tid(1_895, "%00000767"), Attrs([]), - Int(1,1), Direct(Tid(1_258, "%000004ea")))])), Blk(Tid(605, "%0000025d"), - Attrs([Attr("address","0x684")]), Phis([]), Defs([]), -Jmps([Call(Tid(613, "%00000265"), Attrs([Attr("address","0x684"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))])), -Blk(Tid(1_258, "%000004ea"), Attrs([Attr("address","0x680")]), Phis([]), -Defs([]), Jmps([Goto(Tid(1_261, "%000004ed"), Attrs([Attr("address","0x680"), -Attr("insn","b #-0x60")]), Int(1,1), -Direct(Tid(1_259, "@__gmon_start__")))])), Blk(Tid(1_259, "@__gmon_start__"), - Attrs([Attr("address","0x620")]), Phis([]), -Defs([Def(Tid(1_464, "%000005b8"), Attrs([Attr("address","0x620"), -Attr("insn","adrp x16, #69632")]), Var("R16",Imm(64)), Int(69632,64)), -Def(Tid(1_471, "%000005bf"), Attrs([Attr("address","0x624"), -Attr("insn","ldr x17, [x16, #0x10]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(16,64)),LittleEndian(),64)), -Def(Tid(1_477, "%000005c5"), Attrs([Attr("address","0x628"), -Attr("insn","add x16, x16, #0x10")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(16,64)))]), Jmps([Call(Tid(1_482, "%000005ca"), - Attrs([Attr("address","0x62C"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), -Sub(Tid(1_860, "@deregister_tm_clones"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x690")]), - "deregister_tm_clones", Args([Arg(Tid(1_914, "%0000077a"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("deregister_tm_clones_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(619, "@deregister_tm_clones"), - Attrs([Attr("address","0x690")]), Phis([]), Defs([Def(Tid(622, "%0000026e"), - Attrs([Attr("address","0x690"), Attr("insn","adrp x0, #69632")]), - Var("R0",Imm(64)), Int(69632,64)), Def(Tid(628, "%00000274"), - Attrs([Attr("address","0x694"), Attr("insn","add x0, x0, #0x38")]), - Var("R0",Imm(64)), PLUS(Var("R0",Imm(64)),Int(56,64))), -Def(Tid(633, "%00000279"), Attrs([Attr("address","0x698"), -Attr("insn","adrp x1, #69632")]), Var("R1",Imm(64)), Int(69632,64)), -Def(Tid(639, "%0000027f"), Attrs([Attr("address","0x69C"), -Attr("insn","add x1, x1, #0x38")]), Var("R1",Imm(64)), -PLUS(Var("R1",Imm(64)),Int(56,64))), Def(Tid(645, "%00000285"), - Attrs([Attr("address","0x6A0"), Attr("insn","cmp x1, x0")]), - Var("#1",Imm(64)), NOT(Var("R0",Imm(64)))), Def(Tid(650, "%0000028a"), - Attrs([Attr("address","0x6A0"), Attr("insn","cmp x1, x0")]), - Var("#2",Imm(64)), PLUS(Var("R1",Imm(64)),NOT(Var("R0",Imm(64))))), -Def(Tid(656, "%00000290"), Attrs([Attr("address","0x6A0"), -Attr("insn","cmp x1, x0")]), Var("VF",Imm(1)), -NEQ(SIGNED(65,PLUS(Var("#2",Imm(64)),Int(1,64))),PLUS(PLUS(SIGNED(65,Var("R1",Imm(64))),SIGNED(65,Var("#1",Imm(64)))),Int(1,65)))), -Def(Tid(662, "%00000296"), Attrs([Attr("address","0x6A0"), -Attr("insn","cmp x1, x0")]), Var("CF",Imm(1)), -NEQ(UNSIGNED(65,PLUS(Var("#2",Imm(64)),Int(1,64))),PLUS(PLUS(UNSIGNED(65,Var("R1",Imm(64))),UNSIGNED(65,Var("#1",Imm(64)))),Int(1,65)))), -Def(Tid(666, "%0000029a"), Attrs([Attr("address","0x6A0"), -Attr("insn","cmp x1, x0")]), Var("ZF",Imm(1)), -EQ(PLUS(Var("#2",Imm(64)),Int(1,64)),Int(0,64))), Def(Tid(670, "%0000029e"), - Attrs([Attr("address","0x6A0"), Attr("insn","cmp x1, x0")]), - Var("NF",Imm(1)), Extract(63,63,PLUS(Var("#2",Imm(64)),Int(1,64))))]), -Jmps([Goto(Tid(676, "%000002a4"), Attrs([Attr("address","0x6A4"), -Attr("insn","b.eq #0x18")]), EQ(Var("ZF",Imm(1)),Int(1,1)), -Direct(Tid(674, "%000002a2"))), Goto(Tid(1_896, "%00000768"), Attrs([]), - Int(1,1), Direct(Tid(1_228, "%000004cc")))])), Blk(Tid(1_228, "%000004cc"), - Attrs([Attr("address","0x6A8")]), Phis([]), -Defs([Def(Tid(1_231, "%000004cf"), Attrs([Attr("address","0x6A8"), -Attr("insn","adrp x1, #65536")]), Var("R1",Imm(64)), Int(65536,64)), -Def(Tid(1_238, "%000004d6"), Attrs([Attr("address","0x6AC"), -Attr("insn","ldr x1, [x1, #0xfc0]")]), Var("R1",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R1",Imm(64)),Int(4032,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(1_243, "%000004db"), Attrs([Attr("address","0x6B0"), -Attr("insn","cbz x1, #0xc")]), EQ(Var("R1",Imm(64)),Int(0,64)), -Direct(Tid(674, "%000002a2"))), Goto(Tid(1_897, "%00000769"), Attrs([]), - Int(1,1), Direct(Tid(1_247, "%000004df")))])), Blk(Tid(674, "%000002a2"), - Attrs([Attr("address","0x6BC")]), Phis([]), Defs([]), -Jmps([Call(Tid(682, "%000002aa"), Attrs([Attr("address","0x6BC"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))])), -Blk(Tid(1_247, "%000004df"), Attrs([Attr("address","0x6B4")]), Phis([]), -Defs([Def(Tid(1_251, "%000004e3"), Attrs([Attr("address","0x6B4"), -Attr("insn","mov x16, x1")]), Var("R16",Imm(64)), Var("R1",Imm(64)))]), -Jmps([Call(Tid(1_256, "%000004e8"), Attrs([Attr("address","0x6B8"), -Attr("insn","br x16")]), Int(1,1), (Indirect(Var("R16",Imm(64))),))]))])), -Sub(Tid(1_863, "@frame_dummy"), Attrs([Attr("c.proto","signed (*)(void)"), -Attr("address","0x750")]), "frame_dummy", Args([Arg(Tid(1_915, "%0000077b"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("frame_dummy_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(834, "@frame_dummy"), - Attrs([Attr("address","0x750")]), Phis([]), Defs([]), -Jmps([Call(Tid(836, "%00000344"), Attrs([Attr("address","0x750"), -Attr("insn","b #-0x90")]), Int(1,1), -(Direct(Tid(1_865, "@register_tm_clones")),))]))])), Sub(Tid(1_864, "@main"), - Attrs([Attr("c.proto","signed (*)(signed argc, const char** argv)"), -Attr("address","0x790")]), "main", Args([Arg(Tid(1_916, "%0000077c"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("main_argc",Imm(32)), -LOW(32,Var("R0",Imm(64))), In()), Arg(Tid(1_917, "%0000077d"), - Attrs([Attr("c.layout","**[char : 8]"), Attr("c.data","Top:u8 ptr ptr"), -Attr("c.type"," const char**")]), Var("main_argv",Imm(64)), -Var("R1",Imm(64)), Both()), Arg(Tid(1_918, "%0000077e"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("main_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(953, "@main"), - Attrs([Attr("address","0x790")]), Phis([]), Defs([Def(Tid(957, "%000003bd"), - Attrs([Attr("address","0x790"), Attr("insn","sub sp, sp, #0x50")]), - Var("R31",Imm(64)), PLUS(Var("R31",Imm(64)),Int(18446744073709551536,64))), -Def(Tid(963, "%000003c3"), Attrs([Attr("address","0x794"), -Attr("insn","stp x29, x30, [sp, #0x40]")]), Var("#5",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(64,64))), Def(Tid(969, "%000003c9"), - Attrs([Attr("address","0x794"), Attr("insn","stp x29, x30, [sp, #0x40]")]), - Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("#5",Imm(64)),Var("R29",Imm(64)),LittleEndian(),64)), -Def(Tid(975, "%000003cf"), Attrs([Attr("address","0x794"), -Attr("insn","stp x29, x30, [sp, #0x40]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("#5",Imm(64)),Int(8,64)),Var("R30",Imm(64)),LittleEndian(),64)), -Def(Tid(981, "%000003d5"), Attrs([Attr("address","0x798"), -Attr("insn","add x29, sp, #0x40")]), Var("R29",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(64,64))), Def(Tid(986, "%000003da"), - Attrs([Attr("address","0x79C"), Attr("insn","mov w8, wzr")]), - Var("R8",Imm(64)), Int(0,64)), Def(Tid(994, "%000003e2"), - Attrs([Attr("address","0x7A0"), Attr("insn","str w8, [sp, #0xc]")]), - Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(12,64)),Extract(31,0,Var("R8",Imm(64))),LittleEndian(),32)), -Def(Tid(1_001, "%000003e9"), Attrs([Attr("address","0x7A4"), -Attr("insn","stur wzr, [x29, #-0x4]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R29",Imm(64)),Int(18446744073709551612,64)),Int(0,32),LittleEndian(),32)), -Def(Tid(1_009, "%000003f1"), Attrs([Attr("address","0x7A8"), -Attr("insn","stur w0, [x29, #-0x8]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R29",Imm(64)),Int(18446744073709551608,64)),Extract(31,0,Var("R0",Imm(64))),LittleEndian(),32)), -Def(Tid(1_017, "%000003f9"), Attrs([Attr("address","0x7AC"), -Attr("insn","stur x1, [x29, #-0x10]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R29",Imm(64)),Int(18446744073709551600,64)),Var("R1",Imm(64)),LittleEndian(),64)), -Def(Tid(1_022, "%000003fe"), Attrs([Attr("address","0x7B0"), -Attr("insn","adrp x8, #65536")]), Var("R8",Imm(64)), Int(65536,64)), -Def(Tid(1_028, "%00000404"), Attrs([Attr("address","0x7B4"), -Attr("insn","add x8, x8, #0xdc0")]), Var("R8",Imm(64)), -PLUS(Var("R8",Imm(64)),Int(3520,64))), Def(Tid(1_035, "%0000040b"), - Attrs([Attr("address","0x7B8"), Attr("insn","ldr q0, [x8]")]), - Var("V0",Imm(128)), -Load(Var("mem",Mem(64,8)),Var("R8",Imm(64)),LittleEndian(),128)), -Def(Tid(1_043, "%00000413"), Attrs([Attr("address","0x7BC"), -Attr("insn","str q0, [sp, #0x10]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(16,64)),Var("V0",Imm(128)),LittleEndian(),128)), -Def(Tid(1_050, "%0000041a"), Attrs([Attr("address","0x7C0"), -Attr("insn","ldr x8, [x8, #0x10]")]), Var("R8",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R8",Imm(64)),Int(16,64)),LittleEndian(),64)), -Def(Tid(1_058, "%00000422"), Attrs([Attr("address","0x7C4"), -Attr("insn","str x8, [sp, #0x20]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(32,64)),Var("R8",Imm(64)),LittleEndian(),64)), -Def(Tid(1_065, "%00000429"), Attrs([Attr("address","0x7C8"), -Attr("insn","ldr x8, [sp, #0x10]")]), Var("R8",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(16,64)),LittleEndian(),64)), -Def(Tid(1_070, "%0000042e"), Attrs([Attr("address","0x7CC"), -Attr("insn","blr x8")]), Var("R30",Imm(64)), Int(2000,64))]), -Jmps([Call(Tid(1_073, "%00000431"), Attrs([Attr("address","0x7CC"), -Attr("insn","blr x8")]), Int(1,1), -(Indirect(Var("R8",Imm(64))),Direct(Tid(1_075, "%00000433"))))])), -Blk(Tid(1_075, "%00000433"), Attrs([Attr("address","0x7D0")]), Phis([]), -Defs([Def(Tid(1_080, "%00000438"), Attrs([Attr("address","0x7D0"), -Attr("insn","ldr x8, [sp, #0x18]")]), Var("R8",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(24,64)),LittleEndian(),64)), -Def(Tid(1_085, "%0000043d"), Attrs([Attr("address","0x7D4"), -Attr("insn","blr x8")]), Var("R30",Imm(64)), Int(2008,64))]), -Jmps([Call(Tid(1_088, "%00000440"), Attrs([Attr("address","0x7D4"), -Attr("insn","blr x8")]), Int(1,1), -(Indirect(Var("R8",Imm(64))),Direct(Tid(1_090, "%00000442"))))])), -Blk(Tid(1_090, "%00000442"), Attrs([Attr("address","0x7D8")]), Phis([]), -Defs([Def(Tid(1_095, "%00000447"), Attrs([Attr("address","0x7D8"), -Attr("insn","ldr x8, [sp, #0x20]")]), Var("R8",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(32,64)),LittleEndian(),64)), -Def(Tid(1_100, "%0000044c"), Attrs([Attr("address","0x7DC"), -Attr("insn","blr x8")]), Var("R30",Imm(64)), Int(2016,64))]), -Jmps([Call(Tid(1_103, "%0000044f"), Attrs([Attr("address","0x7DC"), -Attr("insn","blr x8")]), Int(1,1), -(Indirect(Var("R8",Imm(64))),Direct(Tid(1_105, "%00000451"))))])), -Blk(Tid(1_105, "%00000451"), Attrs([Attr("address","0x7E0")]), Phis([]), -Defs([Def(Tid(1_110, "%00000456"), Attrs([Attr("address","0x7E0"), -Attr("insn","ldr w0, [sp, #0xc]")]), Var("R0",Imm(64)), -UNSIGNED(64,Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(12,64)),LittleEndian(),32))), -Def(Tid(1_116, "%0000045c"), Attrs([Attr("address","0x7E4"), -Attr("insn","ldp x29, x30, [sp, #0x40]")]), Var("#6",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(64,64))), Def(Tid(1_121, "%00000461"), - Attrs([Attr("address","0x7E4"), Attr("insn","ldp x29, x30, [sp, #0x40]")]), - Var("R29",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("#6",Imm(64)),LittleEndian(),64)), -Def(Tid(1_126, "%00000466"), Attrs([Attr("address","0x7E4"), -Attr("insn","ldp x29, x30, [sp, #0x40]")]), Var("R30",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("#6",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(1_132, "%0000046c"), Attrs([Attr("address","0x7E8"), -Attr("insn","add sp, sp, #0x50")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(80,64)))]), Jmps([Call(Tid(1_137, "%00000471"), - Attrs([Attr("address","0x7EC"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), -Sub(Tid(1_865, "@register_tm_clones"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x6C0")]), - "register_tm_clones", Args([Arg(Tid(1_919, "%0000077f"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("register_tm_clones_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(684, "@register_tm_clones"), Attrs([Attr("address","0x6C0")]), - Phis([]), Defs([Def(Tid(687, "%000002af"), Attrs([Attr("address","0x6C0"), -Attr("insn","adrp x0, #69632")]), Var("R0",Imm(64)), Int(69632,64)), -Def(Tid(693, "%000002b5"), Attrs([Attr("address","0x6C4"), -Attr("insn","add x0, x0, #0x38")]), Var("R0",Imm(64)), -PLUS(Var("R0",Imm(64)),Int(56,64))), Def(Tid(698, "%000002ba"), - Attrs([Attr("address","0x6C8"), Attr("insn","adrp x1, #69632")]), - Var("R1",Imm(64)), Int(69632,64)), Def(Tid(704, "%000002c0"), - Attrs([Attr("address","0x6CC"), Attr("insn","add x1, x1, #0x38")]), - Var("R1",Imm(64)), PLUS(Var("R1",Imm(64)),Int(56,64))), -Def(Tid(711, "%000002c7"), Attrs([Attr("address","0x6D0"), -Attr("insn","sub x1, x1, x0")]), Var("R1",Imm(64)), -PLUS(PLUS(Var("R1",Imm(64)),NOT(Var("R0",Imm(64)))),Int(1,64))), -Def(Tid(717, "%000002cd"), Attrs([Attr("address","0x6D4"), -Attr("insn","lsr x2, x1, #63")]), Var("R2",Imm(64)), -Concat(Int(0,63),Extract(63,63,Var("R1",Imm(64))))), -Def(Tid(724, "%000002d4"), Attrs([Attr("address","0x6D8"), -Attr("insn","add x1, x2, x1, asr #3")]), Var("R1",Imm(64)), -PLUS(Var("R2",Imm(64)),ARSHIFT(Var("R1",Imm(64)),Int(3,3)))), -Def(Tid(730, "%000002da"), Attrs([Attr("address","0x6DC"), -Attr("insn","asr x1, x1, #1")]), Var("R1",Imm(64)), -SIGNED(64,Extract(63,1,Var("R1",Imm(64)))))]), -Jmps([Goto(Tid(736, "%000002e0"), Attrs([Attr("address","0x6E0"), -Attr("insn","cbz x1, #0x18")]), EQ(Var("R1",Imm(64)),Int(0,64)), -Direct(Tid(734, "%000002de"))), Goto(Tid(1_898, "%0000076a"), Attrs([]), - Int(1,1), Direct(Tid(1_198, "%000004ae")))])), Blk(Tid(1_198, "%000004ae"), - Attrs([Attr("address","0x6E4")]), Phis([]), -Defs([Def(Tid(1_201, "%000004b1"), Attrs([Attr("address","0x6E4"), -Attr("insn","adrp x2, #65536")]), Var("R2",Imm(64)), Int(65536,64)), -Def(Tid(1_208, "%000004b8"), Attrs([Attr("address","0x6E8"), -Attr("insn","ldr x2, [x2, #0xfe0]")]), Var("R2",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R2",Imm(64)),Int(4064,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(1_213, "%000004bd"), Attrs([Attr("address","0x6EC"), -Attr("insn","cbz x2, #0xc")]), EQ(Var("R2",Imm(64)),Int(0,64)), -Direct(Tid(734, "%000002de"))), Goto(Tid(1_899, "%0000076b"), Attrs([]), - Int(1,1), Direct(Tid(1_217, "%000004c1")))])), Blk(Tid(734, "%000002de"), - Attrs([Attr("address","0x6F8")]), Phis([]), Defs([]), -Jmps([Call(Tid(742, "%000002e6"), Attrs([Attr("address","0x6F8"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))])), -Blk(Tid(1_217, "%000004c1"), Attrs([Attr("address","0x6F0")]), Phis([]), -Defs([Def(Tid(1_221, "%000004c5"), Attrs([Attr("address","0x6F0"), -Attr("insn","mov x16, x2")]), Var("R16",Imm(64)), Var("R2",Imm(64)))]), -Jmps([Call(Tid(1_226, "%000004ca"), Attrs([Attr("address","0x6F4"), -Attr("insn","br x16")]), Int(1,1), (Indirect(Var("R16",Imm(64))),))]))])), -Sub(Tid(1_868, "@sub_seven"), Attrs([Attr("c.proto","signed (*)(void)"), -Attr("address","0x77C")]), "sub_seven", Args([Arg(Tid(1_920, "%00000780"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("sub_seven_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(900, "@sub_seven"), - Attrs([Attr("address","0x77C")]), Phis([]), Defs([Def(Tid(903, "%00000387"), - Attrs([Attr("address","0x77C"), Attr("insn","adrp x9, #69632")]), - Var("R9",Imm(64)), Int(69632,64)), Def(Tid(910, "%0000038e"), - Attrs([Attr("address","0x780"), Attr("insn","ldr w8, [x9, #0x30]")]), - Var("R8",Imm(64)), -UNSIGNED(64,Load(Var("mem",Mem(64,8)),PLUS(Var("R9",Imm(64)),Int(48,64)),LittleEndian(),32))), -Def(Tid(916, "%00000394"), Attrs([Attr("address","0x784"), -Attr("insn","subs w8, w8, #0x7")]), Var("#4",Imm(32)), -PLUS(Extract(31,0,Var("R8",Imm(64))),Int(4294967288,32))), -Def(Tid(921, "%00000399"), Attrs([Attr("address","0x784"), -Attr("insn","subs w8, w8, #0x7")]), Var("VF",Imm(1)), -NEQ(SIGNED(33,PLUS(Var("#4",Imm(32)),Int(1,32))),PLUS(SIGNED(33,Extract(31,0,Var("R8",Imm(64)))),Int(8589934585,33)))), -Def(Tid(926, "%0000039e"), Attrs([Attr("address","0x784"), -Attr("insn","subs w8, w8, #0x7")]), Var("CF",Imm(1)), -NEQ(UNSIGNED(33,PLUS(Var("#4",Imm(32)),Int(1,32))),PLUS(UNSIGNED(33,Extract(31,0,Var("R8",Imm(64)))),Int(4294967289,33)))), -Def(Tid(930, "%000003a2"), Attrs([Attr("address","0x784"), -Attr("insn","subs w8, w8, #0x7")]), Var("ZF",Imm(1)), -EQ(PLUS(Var("#4",Imm(32)),Int(1,32)),Int(0,32))), Def(Tid(934, "%000003a6"), - Attrs([Attr("address","0x784"), Attr("insn","subs w8, w8, #0x7")]), - Var("NF",Imm(1)), Extract(31,31,PLUS(Var("#4",Imm(32)),Int(1,32)))), -Def(Tid(938, "%000003aa"), Attrs([Attr("address","0x784"), -Attr("insn","subs w8, w8, #0x7")]), Var("R8",Imm(64)), -UNSIGNED(64,PLUS(Var("#4",Imm(32)),Int(1,32)))), Def(Tid(946, "%000003b2"), - Attrs([Attr("address","0x788"), Attr("insn","str w8, [x9, #0x30]")]), - Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R9",Imm(64)),Int(48,64)),Extract(31,0,Var("R8",Imm(64))),LittleEndian(),32))]), -Jmps([Call(Tid(951, "%000003b7"), Attrs([Attr("address","0x78C"), -Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))]))]))) \ No newline at end of file diff --git a/src/test/indirect_calls/jumptable/clang/jumptable.bir b/src/test/indirect_calls/jumptable/clang/jumptable.bir deleted file mode 100644 index 4f1ab407b..000000000 --- a/src/test/indirect_calls/jumptable/clang/jumptable.bir +++ /dev/null @@ -1,294 +0,0 @@ -0000076c: program -00000734: sub __cxa_finalize(__cxa_finalize_result) -0000076d: __cxa_finalize_result :: out u32 = low:32[R0] - -000004aa: -000005a2: R16 := 0x11000 -000005a9: R17 := mem[R16 + 8, el]:u64 -000005af: R16 := R16 + 8 -000005b4: call R17 with noreturn - -00000735: sub __do_global_dtors_aux(__do_global_dtors_aux_result) -0000076e: __do_global_dtors_aux_result :: out u32 = low:32[R0] - -000002ea: -000002ee: #3 := R31 - 0x20 -000002f4: mem := mem with [#3, el]:u64 <- R29 -000002fa: mem := mem with [#3 + 8, el]:u64 <- R30 -000002fe: R31 := #3 -00000304: R29 := R31 -0000030c: mem := mem with [R31 + 0x10, el]:u64 <- R19 -00000311: R19 := 0x11000 -00000318: R0 := pad:64[mem[R19 + 0x34]] -0000031f: when 31:0[R0] <> 0 goto %0000031d -00000762: goto %00000473 - -00000473: -00000476: R0 := 0x10000 -0000047d: R0 := mem[R0 + 0xFC8, el]:u64 -00000483: when R0 = 0 goto %00000481 -00000763: goto %0000049a - -0000049a: -0000049d: R0 := 0x11000 -000004a4: R0 := mem[R0 + 0x28, el]:u64 -000004a9: R30 := 0x730 -000004ac: call @__cxa_finalize with return %00000481 - -00000481: -00000489: R30 := 0x734 -0000048b: call @deregister_tm_clones with return %0000048d - -0000048d: -00000490: R0 := 1 -00000498: mem := mem with [R19 + 0x34] <- 7:0[R0] -00000764: goto %0000031d - -0000031d: -00000327: R19 := mem[R31 + 0x10, el]:u64 -0000032e: R29 := mem[R31, el]:u64 -00000333: R30 := mem[R31 + 8, el]:u64 -00000337: R31 := R31 + 0x20 -0000033c: call R30 with noreturn - -00000739: sub __libc_start_main(__libc_start_main_main, __libc_start_main_arg2, __libc_start_main_arg3, __libc_start_main_auxv, __libc_start_main_result) -0000076f: __libc_start_main_main :: in u64 = R0 -00000770: __libc_start_main_arg2 :: in u32 = low:32[R1] -00000771: __libc_start_main_arg3 :: in out u64 = R2 -00000772: __libc_start_main_auxv :: in out u64 = R3 -00000773: __libc_start_main_result :: out u32 = low:32[R0] - -00000243: -0000058c: R16 := 0x11000 -00000593: R17 := mem[R16, el]:u64 -00000599: R16 := R16 -0000059e: call R17 with noreturn - -0000073a: sub _fini(_fini_result) -00000774: _fini_result :: out u32 = low:32[R0] - -0000001f: -00000025: #0 := R31 - 0x10 -0000002b: mem := mem with [#0, el]:u64 <- R29 -00000031: mem := mem with [#0 + 8, el]:u64 <- R30 -00000035: R31 := #0 -0000003b: R29 := R31 -00000042: R29 := mem[R31, el]:u64 -00000047: R30 := mem[R31 + 8, el]:u64 -0000004b: R31 := R31 + 0x10 -00000050: call R30 with noreturn - -0000073b: sub _init(_init_result) -00000775: _init_result :: out u32 = low:32[R0] - -0000066f: -00000675: #8 := R31 - 0x10 -0000067b: mem := mem with [#8, el]:u64 <- R29 -00000681: mem := mem with [#8 + 8, el]:u64 <- R30 -00000685: R31 := #8 -0000068b: R29 := R31 -00000690: R30 := 0x5D8 -00000692: call @call_weak_fn with return %00000694 - -00000694: -00000699: R29 := mem[R31, el]:u64 -0000069e: R30 := mem[R31 + 8, el]:u64 -000006a2: R31 := R31 + 0x10 -000006a7: call R30 with noreturn - -0000073c: sub _start(_start_result) -00000776: _start_result :: out u32 = low:32[R0] - -00000204: -00000209: R29 := 0 -0000020e: R30 := 0 -00000214: R5 := R0 -0000021b: R1 := mem[R31, el]:u64 -00000221: R2 := R31 + 8 -00000227: R6 := R31 -0000022c: R0 := 0x10000 -00000233: R0 := mem[R0 + 0xFD8, el]:u64 -00000238: R3 := 0 -0000023d: R4 := 0 -00000242: R30 := 0x670 -00000245: call @__libc_start_main with return %00000247 - -00000247: -0000024a: R30 := 0x674 -0000024d: call @abort with return %00000765 - -00000765: -00000766: call @call_weak_fn with noreturn - -0000073f: sub abort() - - -0000024b: -000005ce: R16 := 0x11000 -000005d5: R17 := mem[R16 + 0x18, el]:u64 -000005db: R16 := R16 + 0x18 -000005e0: call R17 with noreturn - -00000740: sub add_six(add_six_result) -00000777: add_six_result :: out u32 = low:32[R0] - -00000365: -00000368: R9 := 0x11000 -0000036f: R8 := pad:64[mem[R9 + 0x30, el]:u32] -00000375: R8 := pad:64[31:0[R8] + 6] -0000037d: mem := mem with [R9 + 0x30, el]:u32 <- 31:0[R8] -00000382: call R30 with noreturn - -00000741: sub add_two(add_two_result) -00000778: add_two_result :: out u32 = low:32[R0] - -00000346: -00000349: R9 := 0x11000 -00000350: R8 := pad:64[mem[R9 + 0x30, el]:u32] -00000356: R8 := pad:64[31:0[R8] + 2] -0000035e: mem := mem with [R9 + 0x30, el]:u32 <- 31:0[R8] -00000363: call R30 with noreturn - -00000742: sub call_weak_fn(call_weak_fn_result) -00000779: call_weak_fn_result :: out u32 = low:32[R0] - -0000024f: -00000252: R0 := 0x10000 -00000259: R0 := mem[R0 + 0xFD0, el]:u64 -0000025f: when R0 = 0 goto %0000025d -00000767: goto %000004ea - -0000025d: -00000265: call R30 with noreturn - -000004ea: -000004ed: goto @__gmon_start__ - -000004eb: -000005b8: R16 := 0x11000 -000005bf: R17 := mem[R16 + 0x10, el]:u64 -000005c5: R16 := R16 + 0x10 -000005ca: call R17 with noreturn - -00000744: sub deregister_tm_clones(deregister_tm_clones_result) -0000077a: deregister_tm_clones_result :: out u32 = low:32[R0] - -0000026b: -0000026e: R0 := 0x11000 -00000274: R0 := R0 + 0x38 -00000279: R1 := 0x11000 -0000027f: R1 := R1 + 0x38 -00000285: #1 := ~R0 -0000028a: #2 := R1 + ~R0 -00000290: VF := extend:65[#2 + 1] <> extend:65[R1] + extend:65[#1] + 1 -00000296: CF := pad:65[#2 + 1] <> pad:65[R1] + pad:65[#1] + 1 -0000029a: ZF := #2 + 1 = 0 -0000029e: NF := 63:63[#2 + 1] -000002a4: when ZF goto %000002a2 -00000768: goto %000004cc - -000004cc: -000004cf: R1 := 0x10000 -000004d6: R1 := mem[R1 + 0xFC0, el]:u64 -000004db: when R1 = 0 goto %000002a2 -00000769: goto %000004df - -000002a2: -000002aa: call R30 with noreturn - -000004df: -000004e3: R16 := R1 -000004e8: call R16 with noreturn - -00000747: sub frame_dummy(frame_dummy_result) -0000077b: frame_dummy_result :: out u32 = low:32[R0] - -00000342: -00000344: call @register_tm_clones with noreturn - -00000748: sub main(main_argc, main_argv, main_result) -0000077c: main_argc :: in u32 = low:32[R0] -0000077d: main_argv :: in out u64 = R1 -0000077e: main_result :: out u32 = low:32[R0] - -000003b9: -000003bd: R31 := R31 - 0x50 -000003c3: #5 := R31 + 0x40 -000003c9: mem := mem with [#5, el]:u64 <- R29 -000003cf: mem := mem with [#5 + 8, el]:u64 <- R30 -000003d5: R29 := R31 + 0x40 -000003da: R8 := 0 -000003e2: mem := mem with [R31 + 0xC, el]:u32 <- 31:0[R8] -000003e9: mem := mem with [R29 - 4, el]:u32 <- 0 -000003f1: mem := mem with [R29 - 8, el]:u32 <- 31:0[R0] -000003f9: mem := mem with [R29 - 0x10, el]:u64 <- R1 -000003fe: R8 := 0x10000 -00000404: R8 := R8 + 0xDC0 -0000040b: V0 := mem[R8, el]:u128 -00000413: mem := mem with [R31 + 0x10, el]:u128 <- V0 -0000041a: R8 := mem[R8 + 0x10, el]:u64 -00000422: mem := mem with [R31 + 0x20, el]:u64 <- R8 -00000429: R8 := mem[R31 + 0x10, el]:u64 -0000042e: R30 := 0x7D0 -00000431: call R8 with return %00000433 - -00000433: -00000438: R8 := mem[R31 + 0x18, el]:u64 -0000043d: R30 := 0x7D8 -00000440: call R8 with return %00000442 - -00000442: -00000447: R8 := mem[R31 + 0x20, el]:u64 -0000044c: R30 := 0x7E0 -0000044f: call R8 with return %00000451 - -00000451: -00000456: R0 := pad:64[mem[R31 + 0xC, el]:u32] -0000045c: #6 := R31 + 0x40 -00000461: R29 := mem[#6, el]:u64 -00000466: R30 := mem[#6 + 8, el]:u64 -0000046c: R31 := R31 + 0x50 -00000471: call R30 with noreturn - -00000749: sub register_tm_clones(register_tm_clones_result) -0000077f: register_tm_clones_result :: out u32 = low:32[R0] - -000002ac: -000002af: R0 := 0x11000 -000002b5: R0 := R0 + 0x38 -000002ba: R1 := 0x11000 -000002c0: R1 := R1 + 0x38 -000002c7: R1 := R1 + ~R0 + 1 -000002cd: R2 := 0.63:63[R1] -000002d4: R1 := R2 + (R1 ~>> 3) -000002da: R1 := extend:64[63:1[R1]] -000002e0: when R1 = 0 goto %000002de -0000076a: goto %000004ae - -000004ae: -000004b1: R2 := 0x10000 -000004b8: R2 := mem[R2 + 0xFE0, el]:u64 -000004bd: when R2 = 0 goto %000002de -0000076b: goto %000004c1 - -000002de: -000002e6: call R30 with noreturn - -000004c1: -000004c5: R16 := R2 -000004ca: call R16 with noreturn - -0000074c: sub sub_seven(sub_seven_result) -00000780: sub_seven_result :: out u32 = low:32[R0] - -00000384: -00000387: R9 := 0x11000 -0000038e: R8 := pad:64[mem[R9 + 0x30, el]:u32] -00000394: #4 := 31:0[R8] - 8 -00000399: VF := extend:33[#4 + 1] <> extend:33[31:0[R8]] - 7 -0000039e: CF := pad:33[#4 + 1] <> pad:33[31:0[R8]] + 0xFFFFFFF9 -000003a2: ZF := #4 + 1 = 0 -000003a6: NF := 31:31[#4 + 1] -000003aa: R8 := pad:64[#4 + 1] -000003b2: mem := mem with [R9 + 0x30, el]:u32 <- 31:0[R8] -000003b7: call R30 with noreturn diff --git a/src/test/indirect_calls/jumptable/clang/jumptable.gts b/src/test/indirect_calls/jumptable/clang/jumptable.gts deleted file mode 100644 index 4f609bc75..000000000 Binary files a/src/test/indirect_calls/jumptable/clang/jumptable.gts and /dev/null differ diff --git a/src/test/indirect_calls/jumptable/clang/jumptable.md5sum b/src/test/indirect_calls/jumptable/clang/jumptable.md5sum new file mode 100644 index 000000000..5cdfbe44b --- /dev/null +++ b/src/test/indirect_calls/jumptable/clang/jumptable.md5sum @@ -0,0 +1,5 @@ +0f3036e107a49c5fed60a8aea1cbd682 indirect_calls/jumptable/clang/a.out +e31a2800b5d59f4316907f94418b7034 indirect_calls/jumptable/clang/jumptable.adt +8c411f1b9b3f0d6fa8b4251454705677 indirect_calls/jumptable/clang/jumptable.bir +8a717de62bbbccc16b10868289e8e9a6 indirect_calls/jumptable/clang/jumptable.relf +e90636be465930f1c0cb6c849b1431c7 indirect_calls/jumptable/clang/jumptable.gts diff --git a/src/test/indirect_calls/jumptable/clang/jumptable.relf b/src/test/indirect_calls/jumptable/clang/jumptable.relf deleted file mode 100644 index 08e2e7a4b..000000000 --- a/src/test/indirect_calls/jumptable/clang/jumptable.relf +++ /dev/null @@ -1,131 +0,0 @@ - -Relocation section '.rela.dyn' at offset 0x460 contains 11 entries: - Offset Info Type Symbol's Value Symbol's Name + Addend -0000000000010db0 0000000000000403 R_AARCH64_RELATIVE 750 -0000000000010db8 0000000000000403 R_AARCH64_RELATIVE 700 -0000000000010dc0 0000000000000403 R_AARCH64_RELATIVE 754 -0000000000010dc8 0000000000000403 R_AARCH64_RELATIVE 768 -0000000000010dd0 0000000000000403 R_AARCH64_RELATIVE 77c -0000000000010fd8 0000000000000403 R_AARCH64_RELATIVE 790 -0000000000011028 0000000000000403 R_AARCH64_RELATIVE 11028 -0000000000010fc0 0000000400000401 R_AARCH64_GLOB_DAT 0000000000000000 _ITM_deregisterTMCloneTable + 0 -0000000000010fc8 0000000500000401 R_AARCH64_GLOB_DAT 0000000000000000 __cxa_finalize@GLIBC_2.17 + 0 -0000000000010fd0 0000000600000401 R_AARCH64_GLOB_DAT 0000000000000000 __gmon_start__ + 0 -0000000000010fe0 0000000800000401 R_AARCH64_GLOB_DAT 0000000000000000 _ITM_registerTMCloneTable + 0 - -Relocation section '.rela.plt' at offset 0x568 contains 4 entries: - Offset Info Type Symbol's Value Symbol's Name + Addend -0000000000011000 0000000300000402 R_AARCH64_JUMP_SLOT 0000000000000000 __libc_start_main@GLIBC_2.34 + 0 -0000000000011008 0000000500000402 R_AARCH64_JUMP_SLOT 0000000000000000 __cxa_finalize@GLIBC_2.17 + 0 -0000000000011010 0000000600000402 R_AARCH64_JUMP_SLOT 0000000000000000 __gmon_start__ + 0 -0000000000011018 0000000700000402 R_AARCH64_JUMP_SLOT 0000000000000000 abort@GLIBC_2.17 + 0 - -Symbol table '.dynsym' contains 9 entries: - Num: Value Size Type Bind Vis Ndx Name - 0: 0000000000000000 0 NOTYPE LOCAL DEFAULT UND - 1: 00000000000005c8 0 SECTION LOCAL DEFAULT 11 .init - 2: 0000000000011020 0 SECTION LOCAL DEFAULT 24 .data - 3: 0000000000000000 0 FUNC GLOBAL DEFAULT UND __libc_start_main@GLIBC_2.34 (2) - 4: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_deregisterTMCloneTable - 5: 0000000000000000 0 FUNC WEAK DEFAULT UND __cxa_finalize@GLIBC_2.17 (3) - 6: 0000000000000000 0 NOTYPE WEAK DEFAULT UND __gmon_start__ - 7: 0000000000000000 0 FUNC GLOBAL DEFAULT UND abort@GLIBC_2.17 (3) - 8: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_registerTMCloneTable - -Symbol table '.symtab' contains 95 entries: - Num: Value Size Type Bind Vis Ndx Name - 0: 0000000000000000 0 NOTYPE LOCAL DEFAULT UND - 1: 0000000000000238 0 SECTION LOCAL DEFAULT 1 .interp - 2: 0000000000000254 0 SECTION LOCAL DEFAULT 2 .note.gnu.build-id - 3: 0000000000000278 0 SECTION LOCAL DEFAULT 3 .note.ABI-tag - 4: 0000000000000298 0 SECTION LOCAL DEFAULT 4 .gnu.hash - 5: 00000000000002b8 0 SECTION LOCAL DEFAULT 5 .dynsym - 6: 0000000000000390 0 SECTION LOCAL DEFAULT 6 .dynstr - 7: 000000000000041e 0 SECTION LOCAL DEFAULT 7 .gnu.version - 8: 0000000000000430 0 SECTION LOCAL DEFAULT 8 .gnu.version_r - 9: 0000000000000460 0 SECTION LOCAL DEFAULT 9 .rela.dyn - 10: 0000000000000568 0 SECTION LOCAL DEFAULT 10 .rela.plt - 11: 00000000000005c8 0 SECTION LOCAL DEFAULT 11 .init - 12: 00000000000005e0 0 SECTION LOCAL DEFAULT 12 .plt - 13: 0000000000000640 0 SECTION LOCAL DEFAULT 13 .text - 14: 00000000000007f0 0 SECTION LOCAL DEFAULT 14 .fini - 15: 0000000000000804 0 SECTION LOCAL DEFAULT 15 .rodata - 16: 0000000000000808 0 SECTION LOCAL DEFAULT 16 .eh_frame_hdr - 17: 0000000000000860 0 SECTION LOCAL DEFAULT 17 .eh_frame - 18: 0000000000010db0 0 SECTION LOCAL DEFAULT 18 .init_array - 19: 0000000000010db8 0 SECTION LOCAL DEFAULT 19 .fini_array - 20: 0000000000010dc0 0 SECTION LOCAL DEFAULT 20 .data.rel.ro - 21: 0000000000010dd8 0 SECTION LOCAL DEFAULT 21 .dynamic - 22: 0000000000010fb8 0 SECTION LOCAL DEFAULT 22 .got - 23: 0000000000010fe8 0 SECTION LOCAL DEFAULT 23 .got.plt - 24: 0000000000011020 0 SECTION LOCAL DEFAULT 24 .data - 25: 0000000000011034 0 SECTION LOCAL DEFAULT 25 .bss - 26: 0000000000000000 0 SECTION LOCAL DEFAULT 26 .comment - 27: 0000000000000000 0 FILE LOCAL DEFAULT ABS Scrt1.o - 28: 0000000000000278 0 NOTYPE LOCAL DEFAULT 3 $d - 29: 0000000000000278 32 OBJECT LOCAL DEFAULT 3 __abi_tag - 30: 0000000000000640 0 NOTYPE LOCAL DEFAULT 13 $x - 31: 0000000000000874 0 NOTYPE LOCAL DEFAULT 17 $d - 32: 0000000000000804 0 NOTYPE LOCAL DEFAULT 15 $d - 33: 0000000000000000 0 FILE LOCAL DEFAULT ABS crti.o - 34: 0000000000000674 0 NOTYPE LOCAL DEFAULT 13 $x - 35: 0000000000000674 20 FUNC LOCAL DEFAULT 13 call_weak_fn - 36: 00000000000005c8 0 NOTYPE LOCAL DEFAULT 11 $x - 37: 00000000000007f0 0 NOTYPE LOCAL DEFAULT 14 $x - 38: 0000000000000000 0 FILE LOCAL DEFAULT ABS crtn.o - 39: 00000000000005d8 0 NOTYPE LOCAL DEFAULT 11 $x - 40: 00000000000007fc 0 NOTYPE LOCAL DEFAULT 14 $x - 41: 0000000000000000 0 FILE LOCAL DEFAULT ABS crtstuff.c - 42: 0000000000000690 0 NOTYPE LOCAL DEFAULT 13 $x - 43: 0000000000000690 0 FUNC LOCAL DEFAULT 13 deregister_tm_clones - 44: 00000000000006c0 0 FUNC LOCAL DEFAULT 13 register_tm_clones - 45: 0000000000011028 0 NOTYPE LOCAL DEFAULT 24 $d - 46: 0000000000000700 0 FUNC LOCAL DEFAULT 13 __do_global_dtors_aux - 47: 0000000000011034 1 OBJECT LOCAL DEFAULT 25 completed.0 - 48: 0000000000010db8 0 NOTYPE LOCAL DEFAULT 19 $d - 49: 0000000000010db8 0 OBJECT LOCAL DEFAULT 19 __do_global_dtors_aux_fini_array_entry - 50: 0000000000000750 0 FUNC LOCAL DEFAULT 13 frame_dummy - 51: 0000000000010db0 0 NOTYPE LOCAL DEFAULT 18 $d - 52: 0000000000010db0 0 OBJECT LOCAL DEFAULT 18 __frame_dummy_init_array_entry - 53: 0000000000000888 0 NOTYPE LOCAL DEFAULT 17 $d - 54: 0000000000011034 0 NOTYPE LOCAL DEFAULT 25 $d - 55: 0000000000000000 0 FILE LOCAL DEFAULT ABS jumptable.c - 56: 0000000000000754 0 NOTYPE LOCAL DEFAULT 13 $x.0 - 57: 0000000000011030 0 NOTYPE LOCAL DEFAULT 24 $d.1 - 58: 0000000000010dc0 0 NOTYPE LOCAL DEFAULT 20 $d.2 - 59: 000000000000002a 0 NOTYPE LOCAL DEFAULT 26 $d.3 - 60: 00000000000008e8 0 NOTYPE LOCAL DEFAULT 17 $d.4 - 61: 0000000000000000 0 FILE LOCAL DEFAULT ABS crtstuff.c - 62: 0000000000000960 0 NOTYPE LOCAL DEFAULT 17 $d - 63: 0000000000000960 0 OBJECT LOCAL DEFAULT 17 __FRAME_END__ - 64: 0000000000000000 0 FILE LOCAL DEFAULT ABS - 65: 0000000000010dd8 0 OBJECT LOCAL DEFAULT ABS _DYNAMIC - 66: 0000000000000808 0 NOTYPE LOCAL DEFAULT 16 __GNU_EH_FRAME_HDR - 67: 0000000000010fb8 0 OBJECT LOCAL DEFAULT ABS _GLOBAL_OFFSET_TABLE_ - 68: 00000000000005e0 0 NOTYPE LOCAL DEFAULT 12 $x - 69: 0000000000000000 0 FUNC GLOBAL DEFAULT UND __libc_start_main@GLIBC_2.34 - 70: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_deregisterTMCloneTable - 71: 0000000000011020 0 NOTYPE WEAK DEFAULT 24 data_start - 72: 0000000000011034 0 NOTYPE GLOBAL DEFAULT 25 __bss_start__ - 73: 0000000000000000 0 FUNC WEAK DEFAULT UND __cxa_finalize@GLIBC_2.17 - 74: 0000000000011038 0 NOTYPE GLOBAL DEFAULT 25 _bss_end__ - 75: 0000000000011034 0 NOTYPE GLOBAL DEFAULT 24 _edata - 76: 0000000000011030 4 OBJECT GLOBAL DEFAULT 24 x - 77: 00000000000007f0 0 FUNC GLOBAL HIDDEN 14 _fini - 78: 0000000000011038 0 NOTYPE GLOBAL DEFAULT 25 __bss_end__ - 79: 0000000000011020 0 NOTYPE GLOBAL DEFAULT 24 __data_start - 80: 0000000000000000 0 NOTYPE WEAK DEFAULT UND __gmon_start__ - 81: 0000000000011028 0 OBJECT GLOBAL HIDDEN 24 __dso_handle - 82: 0000000000000000 0 FUNC GLOBAL DEFAULT UND abort@GLIBC_2.17 - 83: 0000000000000804 4 OBJECT GLOBAL DEFAULT 15 _IO_stdin_used - 84: 0000000000000754 20 FUNC GLOBAL DEFAULT 13 add_two - 85: 0000000000011038 0 NOTYPE GLOBAL DEFAULT 25 _end - 86: 0000000000000640 52 FUNC GLOBAL DEFAULT 13 _start - 87: 0000000000011038 0 NOTYPE GLOBAL DEFAULT 25 __end__ - 88: 0000000000000768 20 FUNC GLOBAL DEFAULT 13 add_six - 89: 0000000000011034 0 NOTYPE GLOBAL DEFAULT 25 __bss_start - 90: 0000000000000790 96 FUNC GLOBAL DEFAULT 13 main - 91: 0000000000011038 0 OBJECT GLOBAL HIDDEN 24 __TMC_END__ - 92: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_registerTMCloneTable - 93: 00000000000005c8 0 FUNC GLOBAL HIDDEN 11 _init - 94: 000000000000077c 20 FUNC GLOBAL DEFAULT 13 sub_seven diff --git a/src/test/indirect_calls/jumptable/gcc/jumptable.adt b/src/test/indirect_calls/jumptable/gcc/jumptable.adt deleted file mode 100644 index e06890d6b..000000000 --- a/src/test/indirect_calls/jumptable/gcc/jumptable.adt +++ /dev/null @@ -1,733 +0,0 @@ -Project(Attrs([Attr("filename","\"gcc/jumptable.out\""), -Attr("image-specification","(declare abi (name str))\n(declare arch (name str))\n(declare base-address (addr int))\n(declare bias (off int))\n(declare bits (size int))\n(declare code-region (addr int) (size int) (off int))\n(declare code-start (addr int))\n(declare entry-point (addr int))\n(declare external-reference (addr int) (name str))\n(declare format (name str))\n(declare is-executable (flag bool))\n(declare is-little-endian (flag bool))\n(declare llvm:base-address (addr int))\n(declare llvm:code-entry (name str) (off int) (size int))\n(declare llvm:coff-import-library (name str))\n(declare llvm:coff-virtual-section-header (name str) (addr int) (size int))\n(declare llvm:elf-program-header (name str) (off int) (size int))\n(declare llvm:elf-program-header-flags (name str) (ld bool) (r bool) \n (w bool) (x bool))\n(declare llvm:elf-virtual-program-header (name str) (addr int) (size int))\n(declare llvm:entry-point (addr int))\n(declare llvm:macho-symbol (name str) (value int))\n(declare llvm:name-reference (at int) (name str))\n(declare llvm:relocation (at int) (addr int))\n(declare llvm:section-entry (name str) (addr int) (size int) (off int))\n(declare llvm:section-flags (name str) (r bool) (w bool) (x bool))\n(declare llvm:segment-command (name str) (off int) (size int))\n(declare llvm:segment-command-flags (name str) (r bool) (w bool) (x bool))\n(declare llvm:symbol-entry (name str) (addr int) (size int) (off int)\n (value int))\n(declare llvm:virtual-segment-command (name str) (addr int) (size int))\n(declare mapped (addr int) (size int) (off int))\n(declare named-region (addr int) (size int) (name str))\n(declare named-symbol (addr int) (name str))\n(declare require (name str))\n(declare section (addr int) (size int))\n(declare segment (addr int) (size int) (r bool) (w bool) (x bool))\n(declare subarch (name str))\n(declare symbol-chunk (addr int) (size int) (root int))\n(declare symbol-value (addr int) (value int))\n(declare system (name str))\n(declare vendor (name str))\n\n(abi unknown)\n(arch aarch64)\n(base-address 0)\n(bias 0)\n(bits 64)\n(code-region 2384 20 2384)\n(code-region 1856 528 1856)\n(code-region 1696 112 1696)\n(code-region 1672 24 1672)\n(code-start 1908)\n(code-start 2132)\n(code-start 1856)\n(code-start 2168)\n(code-start 2240)\n(code-start 2204)\n(entry-point 1856)\n(external-reference 69584 _ITM_deregisterTMCloneTable)\n(external-reference 69592 __cxa_finalize)\n(external-reference 69600 __gmon_start__)\n(external-reference 69624 _ITM_registerTMCloneTable)\n(external-reference 69536 __libc_start_main)\n(external-reference 69544 __cxa_finalize)\n(external-reference 69552 __stack_chk_fail)\n(external-reference 69560 __gmon_start__)\n(external-reference 69568 abort)\n(format elf)\n(is-executable true)\n(is-little-endian true)\n(llvm:base-address 0)\n(llvm:code-entry abort 0 0)\n(llvm:code-entry __stack_chk_fail 0 0)\n(llvm:code-entry __cxa_finalize 0 0)\n(llvm:code-entry __libc_start_main 0 0)\n(llvm:code-entry sub_seven 2204 36)\n(llvm:code-entry _init 1672 0)\n(llvm:code-entry main 2240 144)\n(llvm:code-entry add_six 2168 36)\n(llvm:code-entry _start 1856 52)\n(llvm:code-entry add_two 2132 36)\n(llvm:code-entry abort@GLIBC_2.17 0 0)\n(llvm:code-entry __stack_chk_fail@GLIBC_2.17 0 0)\n(llvm:code-entry _fini 2384 0)\n(llvm:code-entry __cxa_finalize@GLIBC_2.17 0 0)\n(llvm:code-entry __libc_start_main@GLIBC_2.34 0 0)\n(llvm:code-entry frame_dummy 2128 0)\n(llvm:code-entry __do_global_dtors_aux 2048 0)\n(llvm:code-entry register_tm_clones 1984 0)\n(llvm:code-entry deregister_tm_clones 1936 0)\n(llvm:code-entry call_weak_fn 1908 20)\n(llvm:code-entry .fini 2384 20)\n(llvm:code-entry .text 1856 528)\n(llvm:code-entry .plt 1696 112)\n(llvm:code-entry .init 1672 24)\n(llvm:elf-program-header 08 3448 648)\n(llvm:elf-program-header 07 0 0)\n(llvm:elf-program-header 06 2408 84)\n(llvm:elf-program-header 05 596 68)\n(llvm:elf-program-header 04 3464 512)\n(llvm:elf-program-header 03 3448 696)\n(llvm:elf-program-header 02 0 2728)\n(llvm:elf-program-header 01 568 27)\n(llvm:elf-program-header 00 64 504)\n(llvm:elf-program-header-flags 08 false true false false)\n(llvm:elf-program-header-flags 07 false true true false)\n(llvm:elf-program-header-flags 06 false true false false)\n(llvm:elf-program-header-flags 05 false true false false)\n(llvm:elf-program-header-flags 04 false true true false)\n(llvm:elf-program-header-flags 03 true true true false)\n(llvm:elf-program-header-flags 02 true true false true)\n(llvm:elf-program-header-flags 01 false true false false)\n(llvm:elf-program-header-flags 00 false true false false)\n(llvm:elf-virtual-program-header 08 68984 648)\n(llvm:elf-virtual-program-header 07 0 0)\n(llvm:elf-virtual-program-header 06 2408 84)\n(llvm:elf-virtual-program-header 05 596 68)\n(llvm:elf-virtual-program-header 04 69000 512)\n(llvm:elf-virtual-program-header 03 68984 704)\n(llvm:elf-virtual-program-header 02 0 2728)\n(llvm:elf-virtual-program-header 01 568 27)\n(llvm:elf-virtual-program-header 00 64 504)\n(llvm:entry-point 1856)\n(llvm:name-reference 69568 abort)\n(llvm:name-reference 69560 __gmon_start__)\n(llvm:name-reference 69552 __stack_chk_fail)\n(llvm:name-reference 69544 __cxa_finalize)\n(llvm:name-reference 69536 __libc_start_main)\n(llvm:name-reference 69624 _ITM_registerTMCloneTable)\n(llvm:name-reference 69600 __gmon_start__)\n(llvm:name-reference 69592 __cxa_finalize)\n(llvm:name-reference 69584 _ITM_deregisterTMCloneTable)\n(llvm:section-entry .shstrtab 0 250 7052)\n(llvm:section-entry .strtab 0 628 6424)\n(llvm:section-entry .symtab 0 2232 4192)\n(llvm:section-entry .comment 0 43 4144)\n(llvm:section-entry .bss 69680 8 4144)\n(llvm:section-entry .data 69632 48 4096)\n(llvm:section-entry .got 69512 120 3976)\n(llvm:section-entry .dynamic 69000 512 3464)\n(llvm:section-entry .fini_array 68992 8 3456)\n(llvm:section-entry .init_array 68984 8 3448)\n(llvm:section-entry .eh_frame 2496 232 2496)\n(llvm:section-entry .eh_frame_hdr 2408 84 2408)\n(llvm:section-entry .rodata 2404 4 2404)\n(llvm:section-entry .fini 2384 20 2384)\n(llvm:section-entry .text 1856 528 1856)\n(llvm:section-entry .plt 1696 112 1696)\n(llvm:section-entry .init 1672 24 1672)\n(llvm:section-entry .rela.plt 1552 120 1552)\n(llvm:section-entry .rela.dyn 1264 288 1264)\n(llvm:section-entry .gnu.version_r 1184 80 1184)\n(llvm:section-entry .gnu.version 1158 22 1158)\n(llvm:section-entry .dynstr 960 198 960)\n(llvm:section-entry .dynsym 696 264 696)\n(llvm:section-entry .gnu.hash 664 28 664)\n(llvm:section-entry .note.ABI-tag 632 32 632)\n(llvm:section-entry .note.gnu.build-id 596 36 596)\n(llvm:section-entry .interp 568 27 568)\n(llvm:section-flags .shstrtab true false false)\n(llvm:section-flags .strtab true false false)\n(llvm:section-flags .symtab true false false)\n(llvm:section-flags .comment true false false)\n(llvm:section-flags .bss true true false)\n(llvm:section-flags .data true true false)\n(llvm:section-flags .got true true false)\n(llvm:section-flags .dynamic true true false)\n(llvm:section-flags .fini_array true true false)\n(llvm:section-flags .init_array true true false)\n(llvm:section-flags .eh_frame true false false)\n(llvm:section-flags .eh_frame_hdr true false false)\n(llvm:section-flags .rodata true false false)\n(llvm:section-flags .fini true false true)\n(llvm:section-flags .text true false true)\n(llvm:section-flags .plt true false true)\n(llvm:section-flags .init true false true)\n(llvm:section-flags .rela.plt true false false)\n(llvm:section-flags .rela.dyn true false false)\n(llvm:section-flags .gnu.version_r true false false)\n(llvm:section-flags .gnu.version true false false)\n(llvm:section-flags .dynstr true false false)\n(llvm:section-flags .dynsym true false false)\n(llvm:section-flags .gnu.hash true false false)\n(llvm:section-flags .note.ABI-tag true false false)\n(llvm:section-flags .note.gnu.build-id true false false)\n(llvm:section-flags .interp true false false)\n(llvm:symbol-entry abort 0 0 0 0)\n(llvm:symbol-entry __stack_chk_fail 0 0 0 0)\n(llvm:symbol-entry __cxa_finalize 0 0 0 0)\n(llvm:symbol-entry __libc_start_main 0 0 0 0)\n(llvm:symbol-entry sub_seven 2204 36 2204 2204)\n(llvm:symbol-entry _init 1672 0 1672 1672)\n(llvm:symbol-entry main 2240 144 2240 2240)\n(llvm:symbol-entry add_six 2168 36 2168 2168)\n(llvm:symbol-entry _start 1856 52 1856 1856)\n(llvm:symbol-entry add_two 2132 36 2132 2132)\n(llvm:symbol-entry abort@GLIBC_2.17 0 0 0 0)\n(llvm:symbol-entry __stack_chk_fail@GLIBC_2.17 0 0 0 0)\n(llvm:symbol-entry _fini 2384 0 2384 2384)\n(llvm:symbol-entry __cxa_finalize@GLIBC_2.17 0 0 0 0)\n(llvm:symbol-entry __libc_start_main@GLIBC_2.34 0 0 0 0)\n(llvm:symbol-entry frame_dummy 2128 0 2128 2128)\n(llvm:symbol-entry __do_global_dtors_aux 2048 0 2048 2048)\n(llvm:symbol-entry register_tm_clones 1984 0 1984 1984)\n(llvm:symbol-entry deregister_tm_clones 1936 0 1936 1936)\n(llvm:symbol-entry call_weak_fn 1908 20 1908 1908)\n(mapped 0 2728 0)\n(mapped 68984 696 3448)\n(named-region 0 2728 02)\n(named-region 68984 704 03)\n(named-region 568 27 .interp)\n(named-region 596 36 .note.gnu.build-id)\n(named-region 632 32 .note.ABI-tag)\n(named-region 664 28 .gnu.hash)\n(named-region 696 264 .dynsym)\n(named-region 960 198 .dynstr)\n(named-region 1158 22 .gnu.version)\n(named-region 1184 80 .gnu.version_r)\n(named-region 1264 288 .rela.dyn)\n(named-region 1552 120 .rela.plt)\n(named-region 1672 24 .init)\n(named-region 1696 112 .plt)\n(named-region 1856 528 .text)\n(named-region 2384 20 .fini)\n(named-region 2404 4 .rodata)\n(named-region 2408 84 .eh_frame_hdr)\n(named-region 2496 232 .eh_frame)\n(named-region 68984 8 .init_array)\n(named-region 68992 8 .fini_array)\n(named-region 69000 512 .dynamic)\n(named-region 69512 120 .got)\n(named-region 69632 48 .data)\n(named-region 69680 8 .bss)\n(named-region 0 43 .comment)\n(named-region 0 2232 .symtab)\n(named-region 0 628 .strtab)\n(named-region 0 250 .shstrtab)\n(named-symbol 1908 call_weak_fn)\n(named-symbol 1936 deregister_tm_clones)\n(named-symbol 1984 register_tm_clones)\n(named-symbol 2048 __do_global_dtors_aux)\n(named-symbol 2128 frame_dummy)\n(named-symbol 0 __libc_start_main@GLIBC_2.34)\n(named-symbol 0 __cxa_finalize@GLIBC_2.17)\n(named-symbol 2384 _fini)\n(named-symbol 0 __stack_chk_fail@GLIBC_2.17)\n(named-symbol 0 abort@GLIBC_2.17)\n(named-symbol 2132 add_two)\n(named-symbol 1856 _start)\n(named-symbol 2168 add_six)\n(named-symbol 2240 main)\n(named-symbol 1672 _init)\n(named-symbol 2204 sub_seven)\n(named-symbol 0 __libc_start_main)\n(named-symbol 0 __cxa_finalize)\n(named-symbol 0 __stack_chk_fail)\n(named-symbol 0 abort)\n(require ld-linux-aarch64.so.1)\n(require libc.so.6)\n(section 568 27)\n(section 596 36)\n(section 632 32)\n(section 664 28)\n(section 696 264)\n(section 960 198)\n(section 1158 22)\n(section 1184 80)\n(section 1264 288)\n(section 1552 120)\n(section 1672 24)\n(section 1696 112)\n(section 1856 528)\n(section 2384 20)\n(section 2404 4)\n(section 2408 84)\n(section 2496 232)\n(section 68984 8)\n(section 68992 8)\n(section 69000 512)\n(section 69512 120)\n(section 69632 48)\n(section 69680 8)\n(section 0 43)\n(section 0 2232)\n(section 0 628)\n(section 0 250)\n(segment 0 2728 true false true)\n(segment 68984 704 true true false)\n(subarch v8)\n(symbol-chunk 1908 20 1908)\n(symbol-chunk 2132 36 2132)\n(symbol-chunk 1856 52 1856)\n(symbol-chunk 2168 36 2168)\n(symbol-chunk 2240 144 2240)\n(symbol-chunk 2204 36 2204)\n(symbol-value 1908 1908)\n(symbol-value 1936 1936)\n(symbol-value 1984 1984)\n(symbol-value 2048 2048)\n(symbol-value 2128 2128)\n(symbol-value 2384 2384)\n(symbol-value 2132 2132)\n(symbol-value 1856 1856)\n(symbol-value 2168 2168)\n(symbol-value 2240 2240)\n(symbol-value 1672 1672)\n(symbol-value 2204 2204)\n(symbol-value 0 0)\n(system \"\")\n(vendor \"\")\n"), -Attr("abi-name","\"aarch64-linux-gnu-elf\"")]), -Sections([Section(".shstrtab", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x40\x07\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x88\x1c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x38\x00\x09\x00\x40\x00\x1c\x00\x1b\x00\x06\x00\x00\x00\x04\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x04\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xa8\x0a\x00\x00\x00\x00\x00\x00\xa8\x0a\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x01\x00\x00\x00\x06\x00\x00\x00\x78\x0d\x00\x00\x00\x00\x00\x00\x78\x0d"), -Section(".strtab", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x40\x07\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x88\x1c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x38\x00\x09\x00\x40\x00\x1c\x00\x1b\x00\x06\x00\x00\x00\x04\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x04\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xa8\x0a\x00\x00\x00\x00\x00\x00\xa8\x0a\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x01\x00\x00\x00\x06\x00\x00\x00\x78\x0d\x00\x00\x00\x00\x00\x00\x78\x0d\x01\x00\x00\x00\x00\x00\x78\x0d\x01\x00\x00\x00\x00\x00\xb8\x02\x00\x00\x00\x00\x00\x00\xc0\x02\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x02\x00\x00\x00\x06\x00\x00\x00\x88\x0d\x00\x00\x00\x00\x00\x00\x88\x0d\x01\x00\x00\x00\x00\x00\x88\x0d\x01\x00\x00\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x04\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x50\xe5\x74\x64\x04\x00\x00\x00\x68\x09\x00\x00\x00\x00\x00\x00\x68\x09\x00\x00\x00\x00\x00\x00\x68\x09\x00\x00\x00\x00\x00\x00\x54\x00\x00\x00\x00\x00\x00\x00\x54\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x51\xe5\x74\x64\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x52\xe5\x74\x64\x04\x00\x00\x00\x78\x0d\x00\x00\x00\x00\x00\x00\x78\x0d\x01\x00\x00\x00\x00\x00\x78\x0d\x01\x00\x00\x00\x00\x00\x88\x02\x00\x00\x00\x00\x00\x00\x88\x02\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x2f\x6c\x69\x62\x2f\x6c\x64\x2d\x6c\x69\x6e\x75\x78\x2d\x61\x61\x72\x63\x68\x36\x34\x2e\x73\x6f\x2e\x31\x00\x00\x04\x00\x00\x00\x14\x00\x00\x00\x03\x00\x00\x00\x47\x4e\x55\x00\x6e\x14\x27\xe3\x68\x44\x9b\x25\x27\x38\x7e\xfc\x2f\x5f\xd0\x4e"), -Section(".symtab", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x40\x07\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x88\x1c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x38\x00\x09\x00\x40\x00\x1c\x00\x1b\x00\x06\x00\x00\x00\x04\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x04\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xa8\x0a\x00\x00\x00\x00\x00\x00\xa8\x0a\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x01\x00\x00\x00\x06\x00\x00\x00\x78\x0d\x00\x00\x00\x00\x00\x00\x78\x0d\x01\x00\x00\x00\x00\x00\x78\x0d\x01\x00\x00\x00\x00\x00\xb8\x02\x00\x00\x00\x00\x00\x00\xc0\x02\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x02\x00\x00\x00\x06\x00\x00\x00\x88\x0d\x00\x00\x00\x00\x00\x00\x88\x0d\x01\x00\x00\x00\x00\x00\x88\x0d\x01\x00\x00\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x04\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x50\xe5\x74\x64\x04\x00\x00\x00\x68\x09\x00\x00\x00\x00\x00\x00\x68\x09\x00\x00\x00\x00\x00\x00\x68\x09\x00\x00\x00\x00\x00\x00\x54\x00\x00\x00\x00\x00\x00\x00\x54\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x51\xe5\x74\x64\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x52\xe5\x74\x64\x04\x00\x00\x00\x78\x0d\x00\x00\x00\x00\x00\x00\x78\x0d\x01\x00\x00\x00\x00\x00\x78\x0d\x01\x00\x00\x00\x00\x00\x88\x02\x00\x00\x00\x00\x00\x00\x88\x02\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x2f\x6c\x69\x62\x2f\x6c\x64\x2d\x6c\x69\x6e\x75\x78\x2d\x61\x61\x72\x63\x68\x36\x34\x2e\x73\x6f\x2e\x31\x00\x00\x04\x00\x00\x00\x14\x00\x00\x00\x03\x00\x00\x00\x47\x4e\x55\x00\x6e\x14\x27\xe3\x68\x44\x9b\x25\x27\x38\x7e\xfc\x2f\x5f\xd0\x4e\x86\xcc\x01\x5b\x04\x00\x00\x00\x10\x00\x00\x00\x01\x00\x00\x00\x47\x4e\x55\x00\x00\x00\x00\x00\x03\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x01\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x0b\x00\x88\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x16\x00\x00\x10\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x81\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x22\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x28\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x9d\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x39\x00\x00\x00\x11\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x22\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xac\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5f\x5f\x63\x78\x61\x5f\x66\x69\x6e\x61\x6c\x69\x7a\x65\x00\x5f\x5f\x6c\x69\x62\x63\x5f\x73\x74\x61\x72\x74\x5f\x6d\x61\x69\x6e\x00\x61\x62\x6f\x72\x74\x00\x5f\x5f\x73\x74\x61\x63\x6b\x5f\x63\x68\x6b\x5f\x66\x61\x69\x6c\x00\x5f\x5f\x73\x74\x61\x63\x6b\x5f\x63\x68\x6b\x5f\x67\x75\x61\x72\x64\x00\x6c\x69\x62\x63\x2e\x73\x6f\x2e\x36\x00\x6c\x64\x2d\x6c\x69\x6e\x75\x78\x2d\x61\x61\x72\x63\x68\x36\x34\x2e\x73\x6f\x2e\x31\x00\x47\x4c\x49\x42\x43\x5f\x32\x2e\x31\x37\x00\x47\x4c\x49\x42\x43\x5f\x32\x2e\x33\x34\x00\x5f\x49\x54\x4d\x5f\x64\x65\x72\x65\x67\x69\x73\x74\x65\x72\x54\x4d\x43\x6c\x6f\x6e\x65\x54\x61\x62\x6c\x65\x00\x5f\x5f\x67\x6d\x6f\x6e\x5f\x73\x74\x61\x72\x74\x5f\x5f\x00\x5f\x49\x54\x4d\x5f\x72\x65\x67\x69\x73\x74\x65\x72\x54\x4d\x43\x6c\x6f\x6e\x65\x54\x61\x62\x6c\x65\x00\x00\x00\x00\x00\x00\x00\x02\x00\x01\x00\x03\x00\x03\x00\x01\x00\x04\x00\x03\x00\x01\x00\x00\x00\x00\x00\x01\x00\x01\x00\x55\x00\x00\x00\x10\x00\x00\x00\x20\x00\x00\x00\x97\x91\x96\x06\x00\x00\x04\x00\x6b\x00\x00\x00\x00\x00\x00\x00\x01\x00\x02\x00\x4b\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x97\x91\x96\x06\x00\x00\x03\x00\x6b\x00\x00\x00\x10\x00\x00\x00\xb4\x91\x96\x06\x00\x00\x02\x00\x76\x00\x00\x00\x00\x00\x00\x00\x78\x0d\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x50\x08\x00\x00\x00\x00\x00\x00\x80\x0d\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\xf0\x0f\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\xc0\x08\x00\x00\x00\x00\x00\x00\x08\x10\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x08\x10\x01\x00\x00\x00\x00\x00\x18\x10\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x54\x08\x00\x00\x00\x00\x00\x00\x20\x10\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x78\x08\x00\x00\x00\x00\x00\x00\x28\x10\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x9c\x08\x00\x00\x00\x00\x00\x00\xd0\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xd8\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe0\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe8\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xf8\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x0a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xa0\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xa8\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xb0\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xb8\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xc0\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x09\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1f\x20\x03\xd5\xfd\x7b\xbf\xa9\xfd\x03\x00\x91\x38\x00\x00\x94\xfd\x7b\xc1\xa8\xc0\x03\x5f\xd6\xf0\x7b\xbf\xa9\x90\x00\x00\x90\x11\xce\x47\xf9\x10\x62\x3e\x91\x20\x02\x1f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x90\x00\x00\x90\x11\xd2\x47\xf9\x10\x82\x3e\x91\x20\x02\x1f\xd6\x90\x00\x00\x90\x11\xd6\x47\xf9\x10\xa2\x3e\x91\x20\x02\x1f\xd6\x90\x00\x00\x90\x11\xda\x47\xf9\x10\xc2\x3e\x91\x20\x02\x1f\xd6\x90\x00\x00\x90\x11\xde\x47\xf9\x10\xe2\x3e\x91\x20\x02\x1f\xd6\x90\x00\x00\x90\x11\xe2\x47\xf9\x10\x02\x3f\x91\x20\x02\x1f\xd6\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1f\x20\x03\xd5\x1d\x00\x80\xd2\x1e\x00\x80\xd2\xe5\x03\x00\xaa\xe1\x03\x40\xf9\xe2\x23\x00\x91\xe6\x03\x00\x91\x80\x00\x00\x90\x00\xf8\x47\xf9\x03\x00\x80\xd2\x04\x00\x80\xd2\xd5\xff\xff\x97\xe4\xff\xff\x97\x80\x00\x00\x90\x00\xf0\x47\xf9\x40\x00\x00\xb4\xdc\xff\xff\x17\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x80\x00\x00\xb0\x00\xc0\x00\x91\x81\x00\x00\xb0\x21\xc0\x00\x91\x3f\x00\x00\xeb\xc0\x00\x00\x54\x81\x00\x00\x90\x21\xe8\x47\xf9\x61\x00\x00\xb4\xf0\x03\x01\xaa\x00\x02\x1f\xd6\xc0\x03\x5f\xd6\x80\x00\x00\xb0\x00\xc0\x00\x91\x81\x00\x00\xb0\x21\xc0\x00\x91\x21\x00\x00\xcb\x22\xfc\x7f\xd3\x41\x0c\x81\x8b\x21\xfc\x41\x93\xc1\x00\x00\xb4\x82\x00\x00\x90\x42\xfc\x47\xf9\x62\x00\x00\xb4\xf0\x03\x02\xaa\x00\x02\x1f\xd6\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\xfd\x7b\xbe\xa9\xfd\x03\x00\x91\xf3\x0b\x00\xf9\x93\x00\x00\xb0\x60\xc2\x40\x39\x40\x01\x00\x35\x80\x00\x00\x90\x00\xec\x47\xf9\x80\x00\x00\xb4\x80\x00\x00\xb0\x00\x04\x40\xf9\xa9\xff\xff\x97\xd8\xff\xff\x97\x20\x00\x80\x52\x60\xc2\x00\x39\xf3\x0b\x40\xf9\xfd\x7b\xc2\xa8\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\xdc\xff\xff\x17\x80\x00\x00\xb0\x00\x40\x00\x91\x00\x00\x40\xb9\x01\x08\x00\x11\x80\x00\x00\xb0\x00\x40\x00\x91\x01\x00\x00\xb9\x1f\x20\x03\xd5\xc0\x03\x5f\xd6\x80\x00\x00\xb0\x00\x40\x00\x91\x00\x00\x40\xb9\x01\x18\x00\x11\x80\x00\x00\xb0\x00\x40\x00\x91\x01\x00\x00\xb9\x1f\x20\x03\xd5\xc0\x03\x5f\xd6\x80\x00\x00\xb0\x00\x40\x00\x91\x00\x00\x40\xb9\x01\x1c\x00\x51\x80\x00\x00\xb0\x00\x40\x00\x91\x01\x00\x00\xb9"), -Section(".comment", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x40\x07\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x88\x1c\x00"), -Section(".interp", 0x238, "\x2f\x6c\x69\x62\x2f\x6c\x64\x2d\x6c\x69\x6e\x75\x78\x2d\x61\x61\x72\x63\x68\x36\x34\x2e\x73\x6f\x2e\x31\x00"), -Section(".note.gnu.build-id", 0x254, "\x04\x00\x00\x00\x14\x00\x00\x00\x03\x00\x00\x00\x47\x4e\x55\x00\x6e\x14\x27\xe3\x68\x44\x9b\x25\x27\x38\x7e\xfc\x2f\x5f\xd0\x4e\x86\xcc\x01\x5b"), -Section(".note.ABI-tag", 0x278, "\x04\x00\x00\x00\x10\x00\x00\x00\x01\x00\x00\x00\x47\x4e\x55\x00\x00\x00\x00\x00\x03\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00"), -Section(".gnu.hash", 0x298, "\x01\x00\x00\x00\x01\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".dynsym", 0x2B8, "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x0b\x00\x88\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x16\x00\x00\x10\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x81\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x22\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x28\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x9d\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x39\x00\x00\x00\x11\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x22\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xac\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".dynstr", 0x3C0, "\x00\x5f\x5f\x63\x78\x61\x5f\x66\x69\x6e\x61\x6c\x69\x7a\x65\x00\x5f\x5f\x6c\x69\x62\x63\x5f\x73\x74\x61\x72\x74\x5f\x6d\x61\x69\x6e\x00\x61\x62\x6f\x72\x74\x00\x5f\x5f\x73\x74\x61\x63\x6b\x5f\x63\x68\x6b\x5f\x66\x61\x69\x6c\x00\x5f\x5f\x73\x74\x61\x63\x6b\x5f\x63\x68\x6b\x5f\x67\x75\x61\x72\x64\x00\x6c\x69\x62\x63\x2e\x73\x6f\x2e\x36\x00\x6c\x64\x2d\x6c\x69\x6e\x75\x78\x2d\x61\x61\x72\x63\x68\x36\x34\x2e\x73\x6f\x2e\x31\x00\x47\x4c\x49\x42\x43\x5f\x32\x2e\x31\x37\x00\x47\x4c\x49\x42\x43\x5f\x32\x2e\x33\x34\x00\x5f\x49\x54\x4d\x5f\x64\x65\x72\x65\x67\x69\x73\x74\x65\x72\x54\x4d\x43\x6c\x6f\x6e\x65\x54\x61\x62\x6c\x65\x00\x5f\x5f\x67\x6d\x6f\x6e\x5f\x73\x74\x61\x72\x74\x5f\x5f\x00\x5f\x49\x54\x4d\x5f\x72\x65\x67\x69\x73\x74\x65\x72\x54\x4d\x43\x6c\x6f\x6e\x65\x54\x61\x62\x6c\x65\x00"), -Section(".gnu.version", 0x486, "\x00\x00\x00\x00\x00\x00\x02\x00\x01\x00\x03\x00\x03\x00\x01\x00\x04\x00\x03\x00\x01\x00"), -Section(".gnu.version_r", 0x4A0, "\x01\x00\x01\x00\x55\x00\x00\x00\x10\x00\x00\x00\x20\x00\x00\x00\x97\x91\x96\x06\x00\x00\x04\x00\x6b\x00\x00\x00\x00\x00\x00\x00\x01\x00\x02\x00\x4b\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x97\x91\x96\x06\x00\x00\x03\x00\x6b\x00\x00\x00\x10\x00\x00\x00\xb4\x91\x96\x06\x00\x00\x02\x00\x76\x00\x00\x00\x00\x00\x00\x00"), -Section(".rela.dyn", 0x4F0, "\x78\x0d\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x50\x08\x00\x00\x00\x00\x00\x00\x80\x0d\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\xf0\x0f\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\xc0\x08\x00\x00\x00\x00\x00\x00\x08\x10\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x08\x10\x01\x00\x00\x00\x00\x00\x18\x10\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x54\x08\x00\x00\x00\x00\x00\x00\x20\x10\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x78\x08\x00\x00\x00\x00\x00\x00\x28\x10\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x9c\x08\x00\x00\x00\x00\x00\x00\xd0\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xd8\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe0\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe8\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xf8\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x0a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".rela.plt", 0x610, "\xa0\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xa8\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xb0\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xb8\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xc0\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x09\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".init", 0x688, "\x1f\x20\x03\xd5\xfd\x7b\xbf\xa9\xfd\x03\x00\x91\x38\x00\x00\x94\xfd\x7b\xc1\xa8\xc0\x03\x5f\xd6"), -Section(".plt", 0x6A0, "\xf0\x7b\xbf\xa9\x90\x00\x00\x90\x11\xce\x47\xf9\x10\x62\x3e\x91\x20\x02\x1f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x90\x00\x00\x90\x11\xd2\x47\xf9\x10\x82\x3e\x91\x20\x02\x1f\xd6\x90\x00\x00\x90\x11\xd6\x47\xf9\x10\xa2\x3e\x91\x20\x02\x1f\xd6\x90\x00\x00\x90\x11\xda\x47\xf9\x10\xc2\x3e\x91\x20\x02\x1f\xd6\x90\x00\x00\x90\x11\xde\x47\xf9\x10\xe2\x3e\x91\x20\x02\x1f\xd6\x90\x00\x00\x90\x11\xe2\x47\xf9\x10\x02\x3f\x91\x20\x02\x1f\xd6"), -Section(".text", 0x740, "\x1f\x20\x03\xd5\x1d\x00\x80\xd2\x1e\x00\x80\xd2\xe5\x03\x00\xaa\xe1\x03\x40\xf9\xe2\x23\x00\x91\xe6\x03\x00\x91\x80\x00\x00\x90\x00\xf8\x47\xf9\x03\x00\x80\xd2\x04\x00\x80\xd2\xd5\xff\xff\x97\xe4\xff\xff\x97\x80\x00\x00\x90\x00\xf0\x47\xf9\x40\x00\x00\xb4\xdc\xff\xff\x17\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x80\x00\x00\xb0\x00\xc0\x00\x91\x81\x00\x00\xb0\x21\xc0\x00\x91\x3f\x00\x00\xeb\xc0\x00\x00\x54\x81\x00\x00\x90\x21\xe8\x47\xf9\x61\x00\x00\xb4\xf0\x03\x01\xaa\x00\x02\x1f\xd6\xc0\x03\x5f\xd6\x80\x00\x00\xb0\x00\xc0\x00\x91\x81\x00\x00\xb0\x21\xc0\x00\x91\x21\x00\x00\xcb\x22\xfc\x7f\xd3\x41\x0c\x81\x8b\x21\xfc\x41\x93\xc1\x00\x00\xb4\x82\x00\x00\x90\x42\xfc\x47\xf9\x62\x00\x00\xb4\xf0\x03\x02\xaa\x00\x02\x1f\xd6\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\xfd\x7b\xbe\xa9\xfd\x03\x00\x91\xf3\x0b\x00\xf9\x93\x00\x00\xb0\x60\xc2\x40\x39\x40\x01\x00\x35\x80\x00\x00\x90\x00\xec\x47\xf9\x80\x00\x00\xb4\x80\x00\x00\xb0\x00\x04\x40\xf9\xa9\xff\xff\x97\xd8\xff\xff\x97\x20\x00\x80\x52\x60\xc2\x00\x39\xf3\x0b\x40\xf9\xfd\x7b\xc2\xa8\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\xdc\xff\xff\x17\x80\x00\x00\xb0\x00\x40\x00\x91\x00\x00\x40\xb9\x01\x08\x00\x11\x80\x00\x00\xb0\x00\x40\x00\x91\x01\x00\x00\xb9\x1f\x20\x03\xd5\xc0\x03\x5f\xd6\x80\x00\x00\xb0\x00\x40\x00\x91\x00\x00\x40\xb9\x01\x18\x00\x11\x80\x00\x00\xb0\x00\x40\x00\x91\x01\x00\x00\xb9\x1f\x20\x03\xd5\xc0\x03\x5f\xd6\x80\x00\x00\xb0\x00\x40\x00\x91\x00\x00\x40\xb9\x01\x1c\x00\x51\x80\x00\x00\xb0\x00\x40\x00\x91\x01\x00\x00\xb9\x1f\x20\x03\xd5\xc0\x03\x5f\xd6\xfd\x7b\xbc\xa9\xfd\x03\x00\x91\xe0\x1f\x00\xb9\xe1\x0b\x00\xf9\x80\x00\x00\x90\x00\xf4\x47\xf9\x01\x00\x40\xf9\xe1\x1f\x00\xf9\x01\x00\x80\xd2\x80\x00\x00\xb0\x00\x60\x00\x91\xe2\x83\x00\x91\xe3\x03\x00\xaa\x60\x04\x40\xa9\x40\x04\x00\xa9\x60\x08\x40\xf9\x40\x08\x00\xf9\xe0\x13\x40\xf9\x00\x00\x3f\xd6\xe0\x17\x40\xf9\x00\x00\x3f\xd6\xe0\x1b\x40\xf9\x00\x00\x3f\xd6\x00\x00\x80\x52\xe1\x03\x00\x2a\x80\x00\x00\x90\x00\xf4\x47\xf9\xe3\x1f\x40\xf9\x02\x00\x40\xf9\x63\x00\x02\xeb\x02\x00\x80\xd2\x40\x00\x00\x54\x68\xff\xff\x97\xe0\x03\x01\x2a\xfd\x7b\xc4\xa8\xc0\x03\x5f\xd6"), -Section(".fini", 0x950, "\x1f\x20\x03\xd5\xfd\x7b\xbf\xa9\xfd\x03\x00\x91\xfd\x7b\xc1\xa8\xc0\x03\x5f\xd6"), -Section(".rodata", 0x964, "\x01\x00\x02\x00"), -Section(".eh_frame_hdr", 0x968, "\x01\x1b\x03\x3b\x54\x00\x00\x00\x09\x00\x00\x00\xd8\xfd\xff\xff\x6c\x00\x00\x00\x28\xfe\xff\xff\x80\x00\x00\x00\x58\xfe\xff\xff\x94\x00\x00\x00\x98\xfe\xff\xff\xa8\x00\x00\x00\xe8\xfe\xff\xff\xcc\x00\x00\x00\xec\xfe\xff\xff\xe0\x00\x00\x00\x10\xff\xff\xff\xf4\x00\x00\x00\x34\xff\xff\xff\x08\x01\x00\x00\x58\xff\xff\xff\x1c\x01\x00\x00"), -Section(".eh_frame", 0x9C0, "\x10\x00\x00\x00\x00\x00\x00\x00\x01\x7a\x52\x00\x04\x78\x1e\x01\x1b\x0c\x1f\x00\x10\x00\x00\x00\x18\x00\x00\x00\x64\xfd\xff\xff\x34\x00\x00\x00\x00\x41\x07\x1e\x10\x00\x00\x00\x2c\x00\x00\x00\xa0\xfd\xff\xff\x30\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x40\x00\x00\x00\xbc\xfd\xff\xff\x3c\x00\x00\x00\x00\x00\x00\x00\x20\x00\x00\x00\x54\x00\x00\x00\xe8\xfd\xff\xff\x48\x00\x00\x00\x00\x41\x0e\x20\x9d\x04\x9e\x03\x42\x93\x02\x4e\xde\xdd\xd3\x0e\x00\x00\x00\x00\x10\x00\x00\x00\x78\x00\x00\x00\x14\xfe\xff\xff\x04\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x8c\x00\x00\x00\x04\xfe\xff\xff\x24\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\xa0\x00\x00\x00\x14\xfe\xff\xff\x24\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\xb4\x00\x00\x00\x24\xfe\xff\xff\x24\x00\x00\x00\x00\x00\x00\x00\x1c\x00\x00\x00\xc8\x00\x00\x00\x34\xfe\xff\xff\x90\x00\x00\x00\x00\x41\x0e\x40\x9d\x08\x9e\x07\x62\xde\xdd\x0e\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".fini_array", 0x10D80, "\x00\x08\x00\x00\x00\x00\x00\x00"), -Section(".dynamic", 0x10D88, "\x01\x00\x00\x00\x00\x00\x00\x00\x4b\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x55\x00\x00\x00\x00\x00\x00\x00\x0c\x00\x00\x00\x00\x00\x00\x00\x88\x06\x00\x00\x00\x00\x00\x00\x0d\x00\x00\x00\x00\x00\x00\x00\x50\x09\x00\x00\x00\x00\x00\x00\x19\x00\x00\x00\x00\x00\x00\x00\x78\x0d\x01\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x1a\x00\x00\x00\x00\x00\x00\x00\x80\x0d\x01\x00\x00\x00\x00\x00\x1c\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\xf5\xfe\xff\x6f\x00\x00\x00\x00\x98\x02\x00\x00\x00\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\xc0\x03\x00\x00\x00\x00\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\xb8\x02\x00\x00\x00\x00\x00\x00\x0a\x00\x00\x00\x00\x00\x00\x00\xc6\x00\x00\x00\x00\x00\x00\x00\x0b\x00\x00\x00\x00\x00\x00\x00\x18\x00\x00\x00\x00\x00\x00\x00\x15\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x88\x0f\x01\x00\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x78\x00\x00\x00\x00\x00\x00\x00\x14\x00\x00\x00\x00\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x17\x00\x00\x00\x00\x00\x00\x00\x10\x06\x00\x00\x00\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\xf0\x04\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x20\x01\x00\x00\x00\x00\x00\x00\x09\x00\x00\x00\x00\x00\x00\x00\x18\x00\x00\x00\x00\x00\x00\x00\x1e\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\xfb\xff\xff\x6f\x00\x00\x00\x00\x01\x00\x00\x08\x00\x00\x00\x00\xfe\xff\xff\x6f\x00\x00\x00\x00\xa0\x04\x00\x00\x00\x00\x00\x00\xff\xff\xff\x6f\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\xf0\xff\xff\x6f\x00\x00\x00\x00\x86\x04\x00\x00\x00\x00\x00\x00\xf9\xff\xff\x6f\x00\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".got", 0x10F88, "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xa0\x06\x00\x00\x00\x00\x00\x00\xa0\x06\x00\x00\x00\x00\x00\x00\xa0\x06\x00\x00\x00\x00\x00\x00\xa0\x06\x00\x00\x00\x00\x00\x00\xa0\x06\x00\x00\x00\x00\x00\x00\x88\x0d\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xc0\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".data", 0x11000, "\x00\x00\x00\x00\x00\x00\x00\x00\x08\x10\x01\x00\x00\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x54\x08\x00\x00\x00\x00\x00\x00\x78\x08\x00\x00\x00\x00\x00\x00\x9c\x08\x00\x00\x00\x00\x00\x00"), -Section(".init_array", 0x10D78, "\x50\x08\x00\x00\x00\x00\x00\x00")]), -Memmap([Annotation(Region(0x0,0xAA7), Attr("segment","02 0 2728")), -Annotation(Region(0x740,0x773), Attr("symbol","\"_start\"")), -Annotation(Region(0x0,0xF9), Attr("section","\".shstrtab\"")), -Annotation(Region(0x0,0x273), Attr("section","\".strtab\"")), -Annotation(Region(0x0,0x8B7), Attr("section","\".symtab\"")), -Annotation(Region(0x0,0x2A), Attr("section","\".comment\"")), -Annotation(Region(0x238,0x252), Attr("section","\".interp\"")), -Annotation(Region(0x254,0x277), Attr("section","\".note.gnu.build-id\"")), -Annotation(Region(0x278,0x297), Attr("section","\".note.ABI-tag\"")), -Annotation(Region(0x298,0x2B3), Attr("section","\".gnu.hash\"")), -Annotation(Region(0x2B8,0x3BF), Attr("section","\".dynsym\"")), -Annotation(Region(0x3C0,0x485), Attr("section","\".dynstr\"")), -Annotation(Region(0x486,0x49B), Attr("section","\".gnu.version\"")), -Annotation(Region(0x4A0,0x4EF), Attr("section","\".gnu.version_r\"")), -Annotation(Region(0x4F0,0x60F), Attr("section","\".rela.dyn\"")), -Annotation(Region(0x610,0x687), Attr("section","\".rela.plt\"")), -Annotation(Region(0x688,0x69F), Attr("section","\".init\"")), -Annotation(Region(0x6A0,0x70F), Attr("section","\".plt\"")), -Annotation(Region(0x688,0x69F), Attr("code-region","()")), -Annotation(Region(0x6A0,0x70F), Attr("code-region","()")), -Annotation(Region(0x740,0x773), Attr("symbol-info","_start 0x740 52")), -Annotation(Region(0x774,0x787), Attr("symbol","\"call_weak_fn\"")), -Annotation(Region(0x774,0x787), Attr("symbol-info","call_weak_fn 0x774 20")), -Annotation(Region(0x854,0x877), Attr("symbol","\"add_two\"")), -Annotation(Region(0x854,0x877), Attr("symbol-info","add_two 0x854 36")), -Annotation(Region(0x878,0x89B), Attr("symbol","\"add_six\"")), -Annotation(Region(0x878,0x89B), Attr("symbol-info","add_six 0x878 36")), -Annotation(Region(0x89C,0x8BF), Attr("symbol","\"sub_seven\"")), -Annotation(Region(0x740,0x94F), Attr("section","\".text\"")), -Annotation(Region(0x740,0x94F), Attr("code-region","()")), -Annotation(Region(0x89C,0x8BF), Attr("symbol-info","sub_seven 0x89C 36")), -Annotation(Region(0x8C0,0x94F), Attr("symbol","\"main\"")), -Annotation(Region(0x8C0,0x94F), Attr("symbol-info","main 0x8C0 144")), -Annotation(Region(0x950,0x963), Attr("section","\".fini\"")), -Annotation(Region(0x950,0x963), Attr("code-region","()")), -Annotation(Region(0x964,0x967), Attr("section","\".rodata\"")), -Annotation(Region(0x968,0x9BB), Attr("section","\".eh_frame_hdr\"")), -Annotation(Region(0x9C0,0xAA7), Attr("section","\".eh_frame\"")), -Annotation(Region(0x10D78,0x1102F), Attr("segment","03 0x10D78 704")), -Annotation(Region(0x10D80,0x10D87), Attr("section","\".fini_array\"")), -Annotation(Region(0x10D88,0x10F87), Attr("section","\".dynamic\"")), -Annotation(Region(0x10F88,0x10FFF), Attr("section","\".got\"")), -Annotation(Region(0x11000,0x1102F), Attr("section","\".data\"")), -Annotation(Region(0x10D78,0x10D7F), Attr("section","\".init_array\""))]), -Program(Tid(2_104, "%00000838"), Attrs([]), - Subs([Sub(Tid(2_044, "@__cxa_finalize"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x6D0"), -Attr("stub","()")]), "__cxa_finalize", Args([Arg(Tid(2_105, "%00000839"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("__cxa_finalize_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(1_443, "@__cxa_finalize"), - Attrs([Attr("address","0x6D0")]), Phis([]), -Defs([Def(Tid(1_707, "%000006ab"), Attrs([Attr("address","0x6D0"), -Attr("insn","adrp x16, #65536")]), Var("R16",Imm(64)), Int(65536,64)), -Def(Tid(1_714, "%000006b2"), Attrs([Attr("address","0x6D4"), -Attr("insn","ldr x17, [x16, #0xfa8]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(4008,64)),LittleEndian(),64)), -Def(Tid(1_720, "%000006b8"), Attrs([Attr("address","0x6D8"), -Attr("insn","add x16, x16, #0xfa8")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(4008,64)))]), Jmps([Call(Tid(1_725, "%000006bd"), - Attrs([Attr("address","0x6DC"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), -Sub(Tid(2_045, "@__do_global_dtors_aux"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x800")]), - "__do_global_dtors_aux", Args([Arg(Tid(2_106, "%0000083a"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("__do_global_dtors_aux_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(842, "@__do_global_dtors_aux"), - Attrs([Attr("address","0x800")]), Phis([]), Defs([Def(Tid(846, "%0000034e"), - Attrs([Attr("address","0x800"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("#3",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(18446744073709551584,64))), -Def(Tid(852, "%00000354"), Attrs([Attr("address","0x800"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("#3",Imm(64)),Var("R29",Imm(64)),LittleEndian(),64)), -Def(Tid(858, "%0000035a"), Attrs([Attr("address","0x800"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("#3",Imm(64)),Int(8,64)),Var("R30",Imm(64)),LittleEndian(),64)), -Def(Tid(862, "%0000035e"), Attrs([Attr("address","0x800"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("R31",Imm(64)), -Var("#3",Imm(64))), Def(Tid(868, "%00000364"), - Attrs([Attr("address","0x804"), Attr("insn","mov x29, sp")]), - Var("R29",Imm(64)), Var("R31",Imm(64))), Def(Tid(876, "%0000036c"), - Attrs([Attr("address","0x808"), Attr("insn","str x19, [sp, #0x10]")]), - Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(16,64)),Var("R19",Imm(64)),LittleEndian(),64)), -Def(Tid(881, "%00000371"), Attrs([Attr("address","0x80C"), -Attr("insn","adrp x19, #69632")]), Var("R19",Imm(64)), Int(69632,64)), -Def(Tid(888, "%00000378"), Attrs([Attr("address","0x810"), -Attr("insn","ldrb w0, [x19, #0x30]")]), Var("R0",Imm(64)), -UNSIGNED(64,Load(Var("mem",Mem(64,8)),PLUS(Var("R19",Imm(64)),Int(48,64)),LittleEndian(),8)))]), -Jmps([Goto(Tid(895, "%0000037f"), Attrs([Attr("address","0x814"), -Attr("insn","cbnz w0, #0x28")]), - NEQ(Extract(31,0,Var("R0",Imm(64))),Int(0,32)), -Direct(Tid(893, "%0000037d"))), Goto(Tid(2_093, "%0000082d"), Attrs([]), - Int(1,1), Direct(Tid(1_388, "%0000056c")))])), Blk(Tid(1_388, "%0000056c"), - Attrs([Attr("address","0x818")]), Phis([]), -Defs([Def(Tid(1_391, "%0000056f"), Attrs([Attr("address","0x818"), -Attr("insn","adrp x0, #65536")]), Var("R0",Imm(64)), Int(65536,64)), -Def(Tid(1_398, "%00000576"), Attrs([Attr("address","0x81C"), -Attr("insn","ldr x0, [x0, #0xfd8]")]), Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(4056,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(1_404, "%0000057c"), Attrs([Attr("address","0x820"), -Attr("insn","cbz x0, #0x10")]), EQ(Var("R0",Imm(64)),Int(0,64)), -Direct(Tid(1_402, "%0000057a"))), Goto(Tid(2_094, "%0000082e"), Attrs([]), - Int(1,1), Direct(Tid(1_427, "%00000593")))])), Blk(Tid(1_427, "%00000593"), - Attrs([Attr("address","0x824")]), Phis([]), -Defs([Def(Tid(1_430, "%00000596"), Attrs([Attr("address","0x824"), -Attr("insn","adrp x0, #69632")]), Var("R0",Imm(64)), Int(69632,64)), -Def(Tid(1_437, "%0000059d"), Attrs([Attr("address","0x828"), -Attr("insn","ldr x0, [x0, #0x8]")]), Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(1_442, "%000005a2"), Attrs([Attr("address","0x82C"), -Attr("insn","bl #-0x15c")]), Var("R30",Imm(64)), Int(2096,64))]), -Jmps([Call(Tid(1_445, "%000005a5"), Attrs([Attr("address","0x82C"), -Attr("insn","bl #-0x15c")]), Int(1,1), -(Direct(Tid(2_044, "@__cxa_finalize")),Direct(Tid(1_402, "%0000057a"))))])), -Blk(Tid(1_402, "%0000057a"), Attrs([Attr("address","0x830")]), Phis([]), -Defs([Def(Tid(1_410, "%00000582"), Attrs([Attr("address","0x830"), -Attr("insn","bl #-0xa0")]), Var("R30",Imm(64)), Int(2100,64))]), -Jmps([Call(Tid(1_412, "%00000584"), Attrs([Attr("address","0x830"), -Attr("insn","bl #-0xa0")]), Int(1,1), -(Direct(Tid(2_061, "@deregister_tm_clones")),Direct(Tid(1_414, "%00000586"))))])), -Blk(Tid(1_414, "%00000586"), Attrs([Attr("address","0x834")]), Phis([]), -Defs([Def(Tid(1_417, "%00000589"), Attrs([Attr("address","0x834"), -Attr("insn","mov w0, #0x1")]), Var("R0",Imm(64)), Int(1,64)), -Def(Tid(1_425, "%00000591"), Attrs([Attr("address","0x838"), -Attr("insn","strb w0, [x19, #0x30]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R19",Imm(64)),Int(48,64)),Extract(7,0,Var("R0",Imm(64))),LittleEndian(),8))]), -Jmps([Goto(Tid(2_095, "%0000082f"), Attrs([]), Int(1,1), -Direct(Tid(893, "%0000037d")))])), Blk(Tid(893, "%0000037d"), - Attrs([Attr("address","0x83C")]), Phis([]), Defs([Def(Tid(903, "%00000387"), - Attrs([Attr("address","0x83C"), Attr("insn","ldr x19, [sp, #0x10]")]), - Var("R19",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(16,64)),LittleEndian(),64)), -Def(Tid(910, "%0000038e"), Attrs([Attr("address","0x840"), -Attr("insn","ldp x29, x30, [sp], #0x20")]), Var("R29",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(915, "%00000393"), Attrs([Attr("address","0x840"), -Attr("insn","ldp x29, x30, [sp], #0x20")]), Var("R30",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(919, "%00000397"), Attrs([Attr("address","0x840"), -Attr("insn","ldp x29, x30, [sp], #0x20")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(32,64)))]), Jmps([Call(Tid(924, "%0000039c"), - Attrs([Attr("address","0x844"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), Sub(Tid(2_049, "@__libc_start_main"), - Attrs([Attr("c.proto","signed (*)(signed (*)(signed , char** , char** );* main, signed , char** , \nvoid* auxv)"), -Attr("address","0x6C0"), Attr("stub","()")]), "__libc_start_main", - Args([Arg(Tid(2_107, "%0000083b"), - Attrs([Attr("c.layout","**[ : 64]"), -Attr("c.data","Top:u64 ptr ptr"), -Attr("c.type","signed (*)(signed , char** , char** );*")]), - Var("__libc_start_main_main",Imm(64)), Var("R0",Imm(64)), In()), -Arg(Tid(2_108, "%0000083c"), Attrs([Attr("c.layout","[signed : 32]"), -Attr("c.data","Top:u32"), Attr("c.type","signed")]), - Var("__libc_start_main_arg2",Imm(32)), LOW(32,Var("R1",Imm(64))), In()), -Arg(Tid(2_109, "%0000083d"), Attrs([Attr("c.layout","**[char : 8]"), -Attr("c.data","Top:u8 ptr ptr"), Attr("c.type","char**")]), - Var("__libc_start_main_arg3",Imm(64)), Var("R2",Imm(64)), Both()), -Arg(Tid(2_110, "%0000083e"), Attrs([Attr("c.layout","*[ : 8]"), -Attr("c.data","{} ptr"), Attr("c.type","void*")]), - Var("__libc_start_main_auxv",Imm(64)), Var("R3",Imm(64)), Both()), -Arg(Tid(2_111, "%0000083f"), Attrs([Attr("c.layout","[signed : 32]"), -Attr("c.data","Top:u32"), Attr("c.type","signed")]), - Var("__libc_start_main_result",Imm(32)), LOW(32,Var("R0",Imm(64))), -Out())]), Blks([Blk(Tid(675, "@__libc_start_main"), - Attrs([Attr("address","0x6C0")]), Phis([]), -Defs([Def(Tid(1_685, "%00000695"), Attrs([Attr("address","0x6C0"), -Attr("insn","adrp x16, #65536")]), Var("R16",Imm(64)), Int(65536,64)), -Def(Tid(1_692, "%0000069c"), Attrs([Attr("address","0x6C4"), -Attr("insn","ldr x17, [x16, #0xfa0]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(4000,64)),LittleEndian(),64)), -Def(Tid(1_698, "%000006a2"), Attrs([Attr("address","0x6C8"), -Attr("insn","add x16, x16, #0xfa0")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(4000,64)))]), Jmps([Call(Tid(1_703, "%000006a7"), - Attrs([Attr("address","0x6CC"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), Sub(Tid(2_050, "@__stack_chk_fail"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x6E0"), -Attr("stub","()")]), "__stack_chk_fail", Args([Arg(Tid(2_112, "%00000840"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("__stack_chk_fail_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(1_384, "@__stack_chk_fail"), Attrs([Attr("address","0x6E0")]), - Phis([]), Defs([Def(Tid(1_729, "%000006c1"), Attrs([Attr("address","0x6E0"), -Attr("insn","adrp x16, #65536")]), Var("R16",Imm(64)), Int(65536,64)), -Def(Tid(1_736, "%000006c8"), Attrs([Attr("address","0x6E4"), -Attr("insn","ldr x17, [x16, #0xfb0]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(4016,64)),LittleEndian(),64)), -Def(Tid(1_742, "%000006ce"), Attrs([Attr("address","0x6E8"), -Attr("insn","add x16, x16, #0xfb0")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(4016,64)))]), Jmps([Call(Tid(1_747, "%000006d3"), - Attrs([Attr("address","0x6EC"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), Sub(Tid(2_051, "@_fini"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x950")]), - "_fini", Args([Arg(Tid(2_113, "%00000841"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("_fini_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(31, "@_fini"), - Attrs([Attr("address","0x950")]), Phis([]), Defs([Def(Tid(37, "%00000025"), - Attrs([Attr("address","0x954"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("#0",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(18446744073709551600,64))), -Def(Tid(43, "%0000002b"), Attrs([Attr("address","0x954"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("#0",Imm(64)),Var("R29",Imm(64)),LittleEndian(),64)), -Def(Tid(49, "%00000031"), Attrs([Attr("address","0x954"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("#0",Imm(64)),Int(8,64)),Var("R30",Imm(64)),LittleEndian(),64)), -Def(Tid(53, "%00000035"), Attrs([Attr("address","0x954"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("R31",Imm(64)), -Var("#0",Imm(64))), Def(Tid(59, "%0000003b"), Attrs([Attr("address","0x958"), -Attr("insn","mov x29, sp")]), Var("R29",Imm(64)), Var("R31",Imm(64))), -Def(Tid(66, "%00000042"), Attrs([Attr("address","0x95C"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R29",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(71, "%00000047"), Attrs([Attr("address","0x95C"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R30",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(75, "%0000004b"), Attrs([Attr("address","0x95C"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(16,64)))]), Jmps([Call(Tid(80, "%00000050"), - Attrs([Attr("address","0x960"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), Sub(Tid(2_052, "@_init"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x688")]), - "_init", Args([Arg(Tid(2_114, "%00000842"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("_init_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(1_819, "@_init"), - Attrs([Attr("address","0x688")]), Phis([]), -Defs([Def(Tid(1_825, "%00000721"), Attrs([Attr("address","0x68C"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("#8",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(18446744073709551600,64))), -Def(Tid(1_831, "%00000727"), Attrs([Attr("address","0x68C"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("#8",Imm(64)),Var("R29",Imm(64)),LittleEndian(),64)), -Def(Tid(1_837, "%0000072d"), Attrs([Attr("address","0x68C"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("#8",Imm(64)),Int(8,64)),Var("R30",Imm(64)),LittleEndian(),64)), -Def(Tid(1_841, "%00000731"), Attrs([Attr("address","0x68C"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("R31",Imm(64)), -Var("#8",Imm(64))), Def(Tid(1_847, "%00000737"), - Attrs([Attr("address","0x690"), Attr("insn","mov x29, sp")]), - Var("R29",Imm(64)), Var("R31",Imm(64))), Def(Tid(1_852, "%0000073c"), - Attrs([Attr("address","0x694"), Attr("insn","bl #0xe0")]), - Var("R30",Imm(64)), Int(1688,64))]), Jmps([Call(Tid(1_854, "%0000073e"), - Attrs([Attr("address","0x694"), Attr("insn","bl #0xe0")]), Int(1,1), -(Direct(Tid(2_059, "@call_weak_fn")),Direct(Tid(1_856, "%00000740"))))])), -Blk(Tid(1_856, "%00000740"), Attrs([Attr("address","0x698")]), Phis([]), -Defs([Def(Tid(1_861, "%00000745"), Attrs([Attr("address","0x698"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R29",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(1_866, "%0000074a"), Attrs([Attr("address","0x698"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R30",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(1_870, "%0000074e"), Attrs([Attr("address","0x698"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(16,64)))]), Jmps([Call(Tid(1_875, "%00000753"), - Attrs([Attr("address","0x69C"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), Sub(Tid(2_053, "@_start"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x740"), -Attr("entry-point","()")]), "_start", Args([Arg(Tid(2_115, "%00000843"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("_start_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(612, "@_start"), - Attrs([Attr("address","0x740")]), Phis([]), Defs([Def(Tid(617, "%00000269"), - Attrs([Attr("address","0x744"), Attr("insn","mov x29, #0x0")]), - Var("R29",Imm(64)), Int(0,64)), Def(Tid(622, "%0000026e"), - Attrs([Attr("address","0x748"), Attr("insn","mov x30, #0x0")]), - Var("R30",Imm(64)), Int(0,64)), Def(Tid(628, "%00000274"), - Attrs([Attr("address","0x74C"), Attr("insn","mov x5, x0")]), - Var("R5",Imm(64)), Var("R0",Imm(64))), Def(Tid(635, "%0000027b"), - Attrs([Attr("address","0x750"), Attr("insn","ldr x1, [sp]")]), - Var("R1",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(641, "%00000281"), Attrs([Attr("address","0x754"), -Attr("insn","add x2, sp, #0x8")]), Var("R2",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(8,64))), Def(Tid(647, "%00000287"), - Attrs([Attr("address","0x758"), Attr("insn","mov x6, sp")]), - Var("R6",Imm(64)), Var("R31",Imm(64))), Def(Tid(652, "%0000028c"), - Attrs([Attr("address","0x75C"), Attr("insn","adrp x0, #65536")]), - Var("R0",Imm(64)), Int(65536,64)), Def(Tid(659, "%00000293"), - Attrs([Attr("address","0x760"), Attr("insn","ldr x0, [x0, #0xff0]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(4080,64)),LittleEndian(),64)), -Def(Tid(664, "%00000298"), Attrs([Attr("address","0x764"), -Attr("insn","mov x3, #0x0")]), Var("R3",Imm(64)), Int(0,64)), -Def(Tid(669, "%0000029d"), Attrs([Attr("address","0x768"), -Attr("insn","mov x4, #0x0")]), Var("R4",Imm(64)), Int(0,64)), -Def(Tid(674, "%000002a2"), Attrs([Attr("address","0x76C"), -Attr("insn","bl #-0xac")]), Var("R30",Imm(64)), Int(1904,64))]), -Jmps([Call(Tid(677, "%000002a5"), Attrs([Attr("address","0x76C"), -Attr("insn","bl #-0xac")]), Int(1,1), -(Direct(Tid(2_049, "@__libc_start_main")),Direct(Tid(679, "%000002a7"))))])), -Blk(Tid(679, "%000002a7"), Attrs([Attr("address","0x770")]), Phis([]), -Defs([Def(Tid(682, "%000002aa"), Attrs([Attr("address","0x770"), -Attr("insn","bl #-0x70")]), Var("R30",Imm(64)), Int(1908,64))]), -Jmps([Call(Tid(685, "%000002ad"), Attrs([Attr("address","0x770"), -Attr("insn","bl #-0x70")]), Int(1,1), -(Direct(Tid(2_056, "@abort")),Direct(Tid(2_096, "%00000830"))))])), -Blk(Tid(2_096, "%00000830"), Attrs([]), Phis([]), Defs([]), -Jmps([Call(Tid(2_097, "%00000831"), Attrs([]), Int(1,1), -(Direct(Tid(2_059, "@call_weak_fn")),))]))])), Sub(Tid(2_056, "@abort"), - Attrs([Attr("noreturn","()"), Attr("c.proto","void (*)(void)"), -Attr("address","0x700"), Attr("stub","()")]), "abort", Args([]), -Blks([Blk(Tid(683, "@abort"), Attrs([Attr("address","0x700")]), Phis([]), -Defs([Def(Tid(1_773, "%000006ed"), Attrs([Attr("address","0x700"), -Attr("insn","adrp x16, #65536")]), Var("R16",Imm(64)), Int(65536,64)), -Def(Tid(1_780, "%000006f4"), Attrs([Attr("address","0x704"), -Attr("insn","ldr x17, [x16, #0xfc0]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(4032,64)),LittleEndian(),64)), -Def(Tid(1_786, "%000006fa"), Attrs([Attr("address","0x708"), -Attr("insn","add x16, x16, #0xfc0")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(4032,64)))]), Jmps([Call(Tid(1_791, "%000006ff"), - Attrs([Attr("address","0x70C"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), Sub(Tid(2_057, "@add_six"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x878")]), - "add_six", Args([Arg(Tid(2_116, "%00000844"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("add_six_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(984, "@add_six"), - Attrs([Attr("address","0x878")]), Phis([]), Defs([Def(Tid(987, "%000003db"), - Attrs([Attr("address","0x878"), Attr("insn","adrp x0, #69632")]), - Var("R0",Imm(64)), Int(69632,64)), Def(Tid(993, "%000003e1"), - Attrs([Attr("address","0x87C"), Attr("insn","add x0, x0, #0x10")]), - Var("R0",Imm(64)), PLUS(Var("R0",Imm(64)),Int(16,64))), -Def(Tid(1_000, "%000003e8"), Attrs([Attr("address","0x880"), -Attr("insn","ldr w0, [x0]")]), Var("R0",Imm(64)), -UNSIGNED(64,Load(Var("mem",Mem(64,8)),Var("R0",Imm(64)),LittleEndian(),32))), -Def(Tid(1_006, "%000003ee"), Attrs([Attr("address","0x884"), -Attr("insn","add w1, w0, #0x6")]), Var("R1",Imm(64)), -UNSIGNED(64,PLUS(Extract(31,0,Var("R0",Imm(64))),Int(6,32)))), -Def(Tid(1_011, "%000003f3"), Attrs([Attr("address","0x888"), -Attr("insn","adrp x0, #69632")]), Var("R0",Imm(64)), Int(69632,64)), -Def(Tid(1_017, "%000003f9"), Attrs([Attr("address","0x88C"), -Attr("insn","add x0, x0, #0x10")]), Var("R0",Imm(64)), -PLUS(Var("R0",Imm(64)),Int(16,64))), Def(Tid(1_025, "%00000401"), - Attrs([Attr("address","0x890"), Attr("insn","str w1, [x0]")]), - Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("R0",Imm(64)),Extract(31,0,Var("R1",Imm(64))),LittleEndian(),32))]), -Jmps([Call(Tid(1_032, "%00000408"), Attrs([Attr("address","0x898"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))]))])), -Sub(Tid(2_058, "@add_two"), Attrs([Attr("c.proto","signed (*)(void)"), -Attr("address","0x854")]), "add_two", Args([Arg(Tid(2_117, "%00000845"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("add_two_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(934, "@add_two"), - Attrs([Attr("address","0x854")]), Phis([]), Defs([Def(Tid(937, "%000003a9"), - Attrs([Attr("address","0x854"), Attr("insn","adrp x0, #69632")]), - Var("R0",Imm(64)), Int(69632,64)), Def(Tid(943, "%000003af"), - Attrs([Attr("address","0x858"), Attr("insn","add x0, x0, #0x10")]), - Var("R0",Imm(64)), PLUS(Var("R0",Imm(64)),Int(16,64))), -Def(Tid(950, "%000003b6"), Attrs([Attr("address","0x85C"), -Attr("insn","ldr w0, [x0]")]), Var("R0",Imm(64)), -UNSIGNED(64,Load(Var("mem",Mem(64,8)),Var("R0",Imm(64)),LittleEndian(),32))), -Def(Tid(956, "%000003bc"), Attrs([Attr("address","0x860"), -Attr("insn","add w1, w0, #0x2")]), Var("R1",Imm(64)), -UNSIGNED(64,PLUS(Extract(31,0,Var("R0",Imm(64))),Int(2,32)))), -Def(Tid(961, "%000003c1"), Attrs([Attr("address","0x864"), -Attr("insn","adrp x0, #69632")]), Var("R0",Imm(64)), Int(69632,64)), -Def(Tid(967, "%000003c7"), Attrs([Attr("address","0x868"), -Attr("insn","add x0, x0, #0x10")]), Var("R0",Imm(64)), -PLUS(Var("R0",Imm(64)),Int(16,64))), Def(Tid(975, "%000003cf"), - Attrs([Attr("address","0x86C"), Attr("insn","str w1, [x0]")]), - Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("R0",Imm(64)),Extract(31,0,Var("R1",Imm(64))),LittleEndian(),32))]), -Jmps([Call(Tid(982, "%000003d6"), Attrs([Attr("address","0x874"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))]))])), -Sub(Tid(2_059, "@call_weak_fn"), Attrs([Attr("c.proto","signed (*)(void)"), -Attr("address","0x774")]), "call_weak_fn", Args([Arg(Tid(2_118, "%00000846"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("call_weak_fn_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(687, "@call_weak_fn"), - Attrs([Attr("address","0x774")]), Phis([]), Defs([Def(Tid(690, "%000002b2"), - Attrs([Attr("address","0x774"), Attr("insn","adrp x0, #65536")]), - Var("R0",Imm(64)), Int(65536,64)), Def(Tid(697, "%000002b9"), - Attrs([Attr("address","0x778"), Attr("insn","ldr x0, [x0, #0xfe0]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(4064,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(703, "%000002bf"), Attrs([Attr("address","0x77C"), -Attr("insn","cbz x0, #0x8")]), EQ(Var("R0",Imm(64)),Int(0,64)), -Direct(Tid(701, "%000002bd"))), Goto(Tid(2_098, "%00000832"), Attrs([]), - Int(1,1), Direct(Tid(1_507, "%000005e3")))])), Blk(Tid(701, "%000002bd"), - Attrs([Attr("address","0x784")]), Phis([]), Defs([]), -Jmps([Call(Tid(709, "%000002c5"), Attrs([Attr("address","0x784"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))])), -Blk(Tid(1_507, "%000005e3"), Attrs([Attr("address","0x780")]), Phis([]), -Defs([]), Jmps([Goto(Tid(1_510, "%000005e6"), Attrs([Attr("address","0x780"), -Attr("insn","b #-0x90")]), Int(1,1), -Direct(Tid(1_508, "@__gmon_start__")))])), Blk(Tid(1_508, "@__gmon_start__"), - Attrs([Attr("address","0x6F0")]), Phis([]), -Defs([Def(Tid(1_751, "%000006d7"), Attrs([Attr("address","0x6F0"), -Attr("insn","adrp x16, #65536")]), Var("R16",Imm(64)), Int(65536,64)), -Def(Tid(1_758, "%000006de"), Attrs([Attr("address","0x6F4"), -Attr("insn","ldr x17, [x16, #0xfb8]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(4024,64)),LittleEndian(),64)), -Def(Tid(1_764, "%000006e4"), Attrs([Attr("address","0x6F8"), -Attr("insn","add x16, x16, #0xfb8")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(4024,64)))]), Jmps([Call(Tid(1_769, "%000006e9"), - Attrs([Attr("address","0x6FC"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), -Sub(Tid(2_061, "@deregister_tm_clones"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x790")]), - "deregister_tm_clones", Args([Arg(Tid(2_119, "%00000847"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("deregister_tm_clones_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(715, "@deregister_tm_clones"), - Attrs([Attr("address","0x790")]), Phis([]), Defs([Def(Tid(718, "%000002ce"), - Attrs([Attr("address","0x790"), Attr("insn","adrp x0, #69632")]), - Var("R0",Imm(64)), Int(69632,64)), Def(Tid(724, "%000002d4"), - Attrs([Attr("address","0x794"), Attr("insn","add x0, x0, #0x30")]), - Var("R0",Imm(64)), PLUS(Var("R0",Imm(64)),Int(48,64))), -Def(Tid(729, "%000002d9"), Attrs([Attr("address","0x798"), -Attr("insn","adrp x1, #69632")]), Var("R1",Imm(64)), Int(69632,64)), -Def(Tid(735, "%000002df"), Attrs([Attr("address","0x79C"), -Attr("insn","add x1, x1, #0x30")]), Var("R1",Imm(64)), -PLUS(Var("R1",Imm(64)),Int(48,64))), Def(Tid(741, "%000002e5"), - Attrs([Attr("address","0x7A0"), Attr("insn","cmp x1, x0")]), - Var("#1",Imm(64)), NOT(Var("R0",Imm(64)))), Def(Tid(746, "%000002ea"), - Attrs([Attr("address","0x7A0"), Attr("insn","cmp x1, x0")]), - Var("#2",Imm(64)), PLUS(Var("R1",Imm(64)),NOT(Var("R0",Imm(64))))), -Def(Tid(752, "%000002f0"), Attrs([Attr("address","0x7A0"), -Attr("insn","cmp x1, x0")]), Var("VF",Imm(1)), -NEQ(SIGNED(65,PLUS(Var("#2",Imm(64)),Int(1,64))),PLUS(PLUS(SIGNED(65,Var("R1",Imm(64))),SIGNED(65,Var("#1",Imm(64)))),Int(1,65)))), -Def(Tid(758, "%000002f6"), Attrs([Attr("address","0x7A0"), -Attr("insn","cmp x1, x0")]), Var("CF",Imm(1)), -NEQ(UNSIGNED(65,PLUS(Var("#2",Imm(64)),Int(1,64))),PLUS(PLUS(UNSIGNED(65,Var("R1",Imm(64))),UNSIGNED(65,Var("#1",Imm(64)))),Int(1,65)))), -Def(Tid(762, "%000002fa"), Attrs([Attr("address","0x7A0"), -Attr("insn","cmp x1, x0")]), Var("ZF",Imm(1)), -EQ(PLUS(Var("#2",Imm(64)),Int(1,64)),Int(0,64))), Def(Tid(766, "%000002fe"), - Attrs([Attr("address","0x7A0"), Attr("insn","cmp x1, x0")]), - Var("NF",Imm(1)), Extract(63,63,PLUS(Var("#2",Imm(64)),Int(1,64))))]), -Jmps([Goto(Tid(772, "%00000304"), Attrs([Attr("address","0x7A4"), -Attr("insn","b.eq #0x18")]), EQ(Var("ZF",Imm(1)),Int(1,1)), -Direct(Tid(770, "%00000302"))), Goto(Tid(2_099, "%00000833"), Attrs([]), - Int(1,1), Direct(Tid(1_477, "%000005c5")))])), Blk(Tid(1_477, "%000005c5"), - Attrs([Attr("address","0x7A8")]), Phis([]), -Defs([Def(Tid(1_480, "%000005c8"), Attrs([Attr("address","0x7A8"), -Attr("insn","adrp x1, #65536")]), Var("R1",Imm(64)), Int(65536,64)), -Def(Tid(1_487, "%000005cf"), Attrs([Attr("address","0x7AC"), -Attr("insn","ldr x1, [x1, #0xfd0]")]), Var("R1",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R1",Imm(64)),Int(4048,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(1_492, "%000005d4"), Attrs([Attr("address","0x7B0"), -Attr("insn","cbz x1, #0xc")]), EQ(Var("R1",Imm(64)),Int(0,64)), -Direct(Tid(770, "%00000302"))), Goto(Tid(2_100, "%00000834"), Attrs([]), - Int(1,1), Direct(Tid(1_496, "%000005d8")))])), Blk(Tid(770, "%00000302"), - Attrs([Attr("address","0x7BC")]), Phis([]), Defs([]), -Jmps([Call(Tid(778, "%0000030a"), Attrs([Attr("address","0x7BC"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))])), -Blk(Tid(1_496, "%000005d8"), Attrs([Attr("address","0x7B4")]), Phis([]), -Defs([Def(Tid(1_500, "%000005dc"), Attrs([Attr("address","0x7B4"), -Attr("insn","mov x16, x1")]), Var("R16",Imm(64)), Var("R1",Imm(64)))]), -Jmps([Call(Tid(1_505, "%000005e1"), Attrs([Attr("address","0x7B8"), -Attr("insn","br x16")]), Int(1,1), (Indirect(Var("R16",Imm(64))),))]))])), -Sub(Tid(2_064, "@frame_dummy"), Attrs([Attr("c.proto","signed (*)(void)"), -Attr("address","0x850")]), "frame_dummy", Args([Arg(Tid(2_120, "%00000848"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("frame_dummy_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(930, "@frame_dummy"), - Attrs([Attr("address","0x850")]), Phis([]), Defs([]), -Jmps([Call(Tid(932, "%000003a4"), Attrs([Attr("address","0x850"), -Attr("insn","b #-0x90")]), Int(1,1), -(Direct(Tid(2_067, "@register_tm_clones")),))]))])), Sub(Tid(2_065, "@main"), - Attrs([Attr("c.proto","signed (*)(signed argc, const char** argv)"), -Attr("address","0x8C0")]), "main", Args([Arg(Tid(2_121, "%00000849"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("main_argc",Imm(32)), -LOW(32,Var("R0",Imm(64))), In()), Arg(Tid(2_122, "%0000084a"), - Attrs([Attr("c.layout","**[char : 8]"), Attr("c.data","Top:u8 ptr ptr"), -Attr("c.type"," const char**")]), Var("main_argv",Imm(64)), -Var("R1",Imm(64)), Both()), Arg(Tid(2_123, "%0000084b"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("main_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(1_084, "@main"), - Attrs([Attr("address","0x8C0")]), Phis([]), -Defs([Def(Tid(1_088, "%00000440"), Attrs([Attr("address","0x8C0"), -Attr("insn","stp x29, x30, [sp, #-0x40]!")]), Var("#4",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(18446744073709551552,64))), -Def(Tid(1_094, "%00000446"), Attrs([Attr("address","0x8C0"), -Attr("insn","stp x29, x30, [sp, #-0x40]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("#4",Imm(64)),Var("R29",Imm(64)),LittleEndian(),64)), -Def(Tid(1_100, "%0000044c"), Attrs([Attr("address","0x8C0"), -Attr("insn","stp x29, x30, [sp, #-0x40]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("#4",Imm(64)),Int(8,64)),Var("R30",Imm(64)),LittleEndian(),64)), -Def(Tid(1_104, "%00000450"), Attrs([Attr("address","0x8C0"), -Attr("insn","stp x29, x30, [sp, #-0x40]!")]), Var("R31",Imm(64)), -Var("#4",Imm(64))), Def(Tid(1_110, "%00000456"), - Attrs([Attr("address","0x8C4"), Attr("insn","mov x29, sp")]), - Var("R29",Imm(64)), Var("R31",Imm(64))), Def(Tid(1_118, "%0000045e"), - Attrs([Attr("address","0x8C8"), Attr("insn","str w0, [sp, #0x1c]")]), - Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(28,64)),Extract(31,0,Var("R0",Imm(64))),LittleEndian(),32)), -Def(Tid(1_126, "%00000466"), Attrs([Attr("address","0x8CC"), -Attr("insn","str x1, [sp, #0x10]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(16,64)),Var("R1",Imm(64)),LittleEndian(),64)), -Def(Tid(1_131, "%0000046b"), Attrs([Attr("address","0x8D0"), -Attr("insn","adrp x0, #65536")]), Var("R0",Imm(64)), Int(65536,64)), -Def(Tid(1_138, "%00000472"), Attrs([Attr("address","0x8D4"), -Attr("insn","ldr x0, [x0, #0xfe8]")]), Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(4072,64)),LittleEndian(),64)), -Def(Tid(1_145, "%00000479"), Attrs([Attr("address","0x8D8"), -Attr("insn","ldr x1, [x0]")]), Var("R1",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R0",Imm(64)),LittleEndian(),64)), -Def(Tid(1_153, "%00000481"), Attrs([Attr("address","0x8DC"), -Attr("insn","str x1, [sp, #0x38]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(56,64)),Var("R1",Imm(64)),LittleEndian(),64)), -Def(Tid(1_158, "%00000486"), Attrs([Attr("address","0x8E0"), -Attr("insn","mov x1, #0x0")]), Var("R1",Imm(64)), Int(0,64)), -Def(Tid(1_163, "%0000048b"), Attrs([Attr("address","0x8E4"), -Attr("insn","adrp x0, #69632")]), Var("R0",Imm(64)), Int(69632,64)), -Def(Tid(1_169, "%00000491"), Attrs([Attr("address","0x8E8"), -Attr("insn","add x0, x0, #0x18")]), Var("R0",Imm(64)), -PLUS(Var("R0",Imm(64)),Int(24,64))), Def(Tid(1_175, "%00000497"), - Attrs([Attr("address","0x8EC"), Attr("insn","add x2, sp, #0x20")]), - Var("R2",Imm(64)), PLUS(Var("R31",Imm(64)),Int(32,64))), -Def(Tid(1_181, "%0000049d"), Attrs([Attr("address","0x8F0"), -Attr("insn","mov x3, x0")]), Var("R3",Imm(64)), Var("R0",Imm(64))), -Def(Tid(1_188, "%000004a4"), Attrs([Attr("address","0x8F4"), -Attr("insn","ldp x0, x1, [x3]")]), Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R3",Imm(64)),LittleEndian(),64)), -Def(Tid(1_193, "%000004a9"), Attrs([Attr("address","0x8F4"), -Attr("insn","ldp x0, x1, [x3]")]), Var("R1",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R3",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(1_201, "%000004b1"), Attrs([Attr("address","0x8F8"), -Attr("insn","stp x0, x1, [x2]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("R2",Imm(64)),Var("R0",Imm(64)),LittleEndian(),64)), -Def(Tid(1_207, "%000004b7"), Attrs([Attr("address","0x8F8"), -Attr("insn","stp x0, x1, [x2]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R2",Imm(64)),Int(8,64)),Var("R1",Imm(64)),LittleEndian(),64)), -Def(Tid(1_214, "%000004be"), Attrs([Attr("address","0x8FC"), -Attr("insn","ldr x0, [x3, #0x10]")]), Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R3",Imm(64)),Int(16,64)),LittleEndian(),64)), -Def(Tid(1_222, "%000004c6"), Attrs([Attr("address","0x900"), -Attr("insn","str x0, [x2, #0x10]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R2",Imm(64)),Int(16,64)),Var("R0",Imm(64)),LittleEndian(),64)), -Def(Tid(1_229, "%000004cd"), Attrs([Attr("address","0x904"), -Attr("insn","ldr x0, [sp, #0x20]")]), Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(32,64)),LittleEndian(),64)), -Def(Tid(1_234, "%000004d2"), Attrs([Attr("address","0x908"), -Attr("insn","blr x0")]), Var("R30",Imm(64)), Int(2316,64))]), -Jmps([Call(Tid(1_237, "%000004d5"), Attrs([Attr("address","0x908"), -Attr("insn","blr x0")]), Int(1,1), -(Indirect(Var("R0",Imm(64))),Direct(Tid(1_239, "%000004d7"))))])), -Blk(Tid(1_239, "%000004d7"), Attrs([Attr("address","0x90C")]), Phis([]), -Defs([Def(Tid(1_244, "%000004dc"), Attrs([Attr("address","0x90C"), -Attr("insn","ldr x0, [sp, #0x28]")]), Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(40,64)),LittleEndian(),64)), -Def(Tid(1_249, "%000004e1"), Attrs([Attr("address","0x910"), -Attr("insn","blr x0")]), Var("R30",Imm(64)), Int(2324,64))]), -Jmps([Call(Tid(1_252, "%000004e4"), Attrs([Attr("address","0x910"), -Attr("insn","blr x0")]), Int(1,1), -(Indirect(Var("R0",Imm(64))),Direct(Tid(1_254, "%000004e6"))))])), -Blk(Tid(1_254, "%000004e6"), Attrs([Attr("address","0x914")]), Phis([]), -Defs([Def(Tid(1_259, "%000004eb"), Attrs([Attr("address","0x914"), -Attr("insn","ldr x0, [sp, #0x30]")]), Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(48,64)),LittleEndian(),64)), -Def(Tid(1_264, "%000004f0"), Attrs([Attr("address","0x918"), -Attr("insn","blr x0")]), Var("R30",Imm(64)), Int(2332,64))]), -Jmps([Call(Tid(1_267, "%000004f3"), Attrs([Attr("address","0x918"), -Attr("insn","blr x0")]), Int(1,1), -(Indirect(Var("R0",Imm(64))),Direct(Tid(1_269, "%000004f5"))))])), -Blk(Tid(1_269, "%000004f5"), Attrs([Attr("address","0x91C")]), Phis([]), -Defs([Def(Tid(1_272, "%000004f8"), Attrs([Attr("address","0x91C"), -Attr("insn","mov w0, #0x0")]), Var("R0",Imm(64)), Int(0,64)), -Def(Tid(1_278, "%000004fe"), Attrs([Attr("address","0x920"), -Attr("insn","mov w1, w0")]), Var("R1",Imm(64)), -UNSIGNED(64,Extract(31,0,Var("R0",Imm(64))))), Def(Tid(1_283, "%00000503"), - Attrs([Attr("address","0x924"), Attr("insn","adrp x0, #65536")]), - Var("R0",Imm(64)), Int(65536,64)), Def(Tid(1_290, "%0000050a"), - Attrs([Attr("address","0x928"), Attr("insn","ldr x0, [x0, #0xfe8]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(4072,64)),LittleEndian(),64)), -Def(Tid(1_297, "%00000511"), Attrs([Attr("address","0x92C"), -Attr("insn","ldr x3, [sp, #0x38]")]), Var("R3",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(56,64)),LittleEndian(),64)), -Def(Tid(1_304, "%00000518"), Attrs([Attr("address","0x930"), -Attr("insn","ldr x2, [x0]")]), Var("R2",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R0",Imm(64)),LittleEndian(),64)), -Def(Tid(1_310, "%0000051e"), Attrs([Attr("address","0x934"), -Attr("insn","subs x3, x3, x2")]), Var("#5",Imm(64)), NOT(Var("R2",Imm(64)))), -Def(Tid(1_315, "%00000523"), Attrs([Attr("address","0x934"), -Attr("insn","subs x3, x3, x2")]), Var("#6",Imm(64)), -PLUS(Var("R3",Imm(64)),NOT(Var("R2",Imm(64))))), Def(Tid(1_321, "%00000529"), - Attrs([Attr("address","0x934"), Attr("insn","subs x3, x3, x2")]), - Var("VF",Imm(1)), -NEQ(SIGNED(65,PLUS(Var("#6",Imm(64)),Int(1,64))),PLUS(PLUS(SIGNED(65,Var("R3",Imm(64))),SIGNED(65,Var("#5",Imm(64)))),Int(1,65)))), -Def(Tid(1_327, "%0000052f"), Attrs([Attr("address","0x934"), -Attr("insn","subs x3, x3, x2")]), Var("CF",Imm(1)), -NEQ(UNSIGNED(65,PLUS(Var("#6",Imm(64)),Int(1,64))),PLUS(PLUS(UNSIGNED(65,Var("R3",Imm(64))),UNSIGNED(65,Var("#5",Imm(64)))),Int(1,65)))), -Def(Tid(1_331, "%00000533"), Attrs([Attr("address","0x934"), -Attr("insn","subs x3, x3, x2")]), Var("ZF",Imm(1)), -EQ(PLUS(Var("#6",Imm(64)),Int(1,64)),Int(0,64))), -Def(Tid(1_335, "%00000537"), Attrs([Attr("address","0x934"), -Attr("insn","subs x3, x3, x2")]), Var("NF",Imm(1)), -Extract(63,63,PLUS(Var("#6",Imm(64)),Int(1,64)))), -Def(Tid(1_339, "%0000053b"), Attrs([Attr("address","0x934"), -Attr("insn","subs x3, x3, x2")]), Var("R3",Imm(64)), -PLUS(Var("#6",Imm(64)),Int(1,64))), Def(Tid(1_344, "%00000540"), - Attrs([Attr("address","0x938"), Attr("insn","mov x2, #0x0")]), - Var("R2",Imm(64)), Int(0,64))]), Jmps([Goto(Tid(1_350, "%00000546"), - Attrs([Attr("address","0x93C"), Attr("insn","b.eq #0x8")]), - EQ(Var("ZF",Imm(1)),Int(1,1)), Direct(Tid(1_348, "%00000544"))), -Goto(Tid(2_101, "%00000835"), Attrs([]), Int(1,1), -Direct(Tid(1_380, "%00000564")))])), Blk(Tid(1_380, "%00000564"), - Attrs([Attr("address","0x940")]), Phis([]), -Defs([Def(Tid(1_383, "%00000567"), Attrs([Attr("address","0x940"), -Attr("insn","bl #-0x260")]), Var("R30",Imm(64)), Int(2372,64))]), -Jmps([Call(Tid(1_386, "%0000056a"), Attrs([Attr("address","0x940"), -Attr("insn","bl #-0x260")]), Int(1,1), -(Direct(Tid(2_050, "@__stack_chk_fail")),Direct(Tid(1_348, "%00000544"))))])), -Blk(Tid(1_348, "%00000544"), Attrs([Attr("address","0x944")]), Phis([]), -Defs([Def(Tid(1_357, "%0000054d"), Attrs([Attr("address","0x944"), -Attr("insn","mov w0, w1")]), Var("R0",Imm(64)), -UNSIGNED(64,Extract(31,0,Var("R1",Imm(64))))), Def(Tid(1_364, "%00000554"), - Attrs([Attr("address","0x948"), Attr("insn","ldp x29, x30, [sp], #0x40")]), - Var("R29",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(1_369, "%00000559"), Attrs([Attr("address","0x948"), -Attr("insn","ldp x29, x30, [sp], #0x40")]), Var("R30",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(1_373, "%0000055d"), Attrs([Attr("address","0x948"), -Attr("insn","ldp x29, x30, [sp], #0x40")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(64,64)))]), Jmps([Call(Tid(1_378, "%00000562"), - Attrs([Attr("address","0x94C"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), -Sub(Tid(2_067, "@register_tm_clones"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x7C0")]), - "register_tm_clones", Args([Arg(Tid(2_124, "%0000084c"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("register_tm_clones_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(780, "@register_tm_clones"), Attrs([Attr("address","0x7C0")]), - Phis([]), Defs([Def(Tid(783, "%0000030f"), Attrs([Attr("address","0x7C0"), -Attr("insn","adrp x0, #69632")]), Var("R0",Imm(64)), Int(69632,64)), -Def(Tid(789, "%00000315"), Attrs([Attr("address","0x7C4"), -Attr("insn","add x0, x0, #0x30")]), Var("R0",Imm(64)), -PLUS(Var("R0",Imm(64)),Int(48,64))), Def(Tid(794, "%0000031a"), - Attrs([Attr("address","0x7C8"), Attr("insn","adrp x1, #69632")]), - Var("R1",Imm(64)), Int(69632,64)), Def(Tid(800, "%00000320"), - Attrs([Attr("address","0x7CC"), Attr("insn","add x1, x1, #0x30")]), - Var("R1",Imm(64)), PLUS(Var("R1",Imm(64)),Int(48,64))), -Def(Tid(807, "%00000327"), Attrs([Attr("address","0x7D0"), -Attr("insn","sub x1, x1, x0")]), Var("R1",Imm(64)), -PLUS(PLUS(Var("R1",Imm(64)),NOT(Var("R0",Imm(64)))),Int(1,64))), -Def(Tid(813, "%0000032d"), Attrs([Attr("address","0x7D4"), -Attr("insn","lsr x2, x1, #63")]), Var("R2",Imm(64)), -Concat(Int(0,63),Extract(63,63,Var("R1",Imm(64))))), -Def(Tid(820, "%00000334"), Attrs([Attr("address","0x7D8"), -Attr("insn","add x1, x2, x1, asr #3")]), Var("R1",Imm(64)), -PLUS(Var("R2",Imm(64)),ARSHIFT(Var("R1",Imm(64)),Int(3,3)))), -Def(Tid(826, "%0000033a"), Attrs([Attr("address","0x7DC"), -Attr("insn","asr x1, x1, #1")]), Var("R1",Imm(64)), -SIGNED(64,Extract(63,1,Var("R1",Imm(64)))))]), -Jmps([Goto(Tid(832, "%00000340"), Attrs([Attr("address","0x7E0"), -Attr("insn","cbz x1, #0x18")]), EQ(Var("R1",Imm(64)),Int(0,64)), -Direct(Tid(830, "%0000033e"))), Goto(Tid(2_102, "%00000836"), Attrs([]), - Int(1,1), Direct(Tid(1_447, "%000005a7")))])), Blk(Tid(1_447, "%000005a7"), - Attrs([Attr("address","0x7E4")]), Phis([]), -Defs([Def(Tid(1_450, "%000005aa"), Attrs([Attr("address","0x7E4"), -Attr("insn","adrp x2, #65536")]), Var("R2",Imm(64)), Int(65536,64)), -Def(Tid(1_457, "%000005b1"), Attrs([Attr("address","0x7E8"), -Attr("insn","ldr x2, [x2, #0xff8]")]), Var("R2",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R2",Imm(64)),Int(4088,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(1_462, "%000005b6"), Attrs([Attr("address","0x7EC"), -Attr("insn","cbz x2, #0xc")]), EQ(Var("R2",Imm(64)),Int(0,64)), -Direct(Tid(830, "%0000033e"))), Goto(Tid(2_103, "%00000837"), Attrs([]), - Int(1,1), Direct(Tid(1_466, "%000005ba")))])), Blk(Tid(830, "%0000033e"), - Attrs([Attr("address","0x7F8")]), Phis([]), Defs([]), -Jmps([Call(Tid(838, "%00000346"), Attrs([Attr("address","0x7F8"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))])), -Blk(Tid(1_466, "%000005ba"), Attrs([Attr("address","0x7F0")]), Phis([]), -Defs([Def(Tid(1_470, "%000005be"), Attrs([Attr("address","0x7F0"), -Attr("insn","mov x16, x2")]), Var("R16",Imm(64)), Var("R2",Imm(64)))]), -Jmps([Call(Tid(1_475, "%000005c3"), Attrs([Attr("address","0x7F4"), -Attr("insn","br x16")]), Int(1,1), (Indirect(Var("R16",Imm(64))),))]))])), -Sub(Tid(2_070, "@sub_seven"), Attrs([Attr("c.proto","signed (*)(void)"), -Attr("address","0x89C")]), "sub_seven", Args([Arg(Tid(2_125, "%0000084d"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("sub_seven_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(1_034, "@sub_seven"), - Attrs([Attr("address","0x89C")]), Phis([]), -Defs([Def(Tid(1_037, "%0000040d"), Attrs([Attr("address","0x89C"), -Attr("insn","adrp x0, #69632")]), Var("R0",Imm(64)), Int(69632,64)), -Def(Tid(1_043, "%00000413"), Attrs([Attr("address","0x8A0"), -Attr("insn","add x0, x0, #0x10")]), Var("R0",Imm(64)), -PLUS(Var("R0",Imm(64)),Int(16,64))), Def(Tid(1_050, "%0000041a"), - Attrs([Attr("address","0x8A4"), Attr("insn","ldr w0, [x0]")]), - Var("R0",Imm(64)), -UNSIGNED(64,Load(Var("mem",Mem(64,8)),Var("R0",Imm(64)),LittleEndian(),32))), -Def(Tid(1_056, "%00000420"), Attrs([Attr("address","0x8A8"), -Attr("insn","sub w1, w0, #0x7")]), Var("R1",Imm(64)), -UNSIGNED(64,PLUS(Extract(31,0,Var("R0",Imm(64))),Int(4294967289,32)))), -Def(Tid(1_061, "%00000425"), Attrs([Attr("address","0x8AC"), -Attr("insn","adrp x0, #69632")]), Var("R0",Imm(64)), Int(69632,64)), -Def(Tid(1_067, "%0000042b"), Attrs([Attr("address","0x8B0"), -Attr("insn","add x0, x0, #0x10")]), Var("R0",Imm(64)), -PLUS(Var("R0",Imm(64)),Int(16,64))), Def(Tid(1_075, "%00000433"), - Attrs([Attr("address","0x8B4"), Attr("insn","str w1, [x0]")]), - Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("R0",Imm(64)),Extract(31,0,Var("R1",Imm(64))),LittleEndian(),32))]), -Jmps([Call(Tid(1_082, "%0000043a"), Attrs([Attr("address","0x8BC"), -Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))]))]))) \ No newline at end of file diff --git a/src/test/indirect_calls/jumptable/gcc/jumptable.bir b/src/test/indirect_calls/jumptable/gcc/jumptable.bir deleted file mode 100644 index c6c196bcc..000000000 --- a/src/test/indirect_calls/jumptable/gcc/jumptable.bir +++ /dev/null @@ -1,334 +0,0 @@ -00000838: program -000007fc: sub __cxa_finalize(__cxa_finalize_result) -00000839: __cxa_finalize_result :: out u32 = low:32[R0] - -000005a3: -000006ab: R16 := 0x10000 -000006b2: R17 := mem[R16 + 0xFA8, el]:u64 -000006b8: R16 := R16 + 0xFA8 -000006bd: call R17 with noreturn - -000007fd: sub __do_global_dtors_aux(__do_global_dtors_aux_result) -0000083a: __do_global_dtors_aux_result :: out u32 = low:32[R0] - -0000034a: -0000034e: #3 := R31 - 0x20 -00000354: mem := mem with [#3, el]:u64 <- R29 -0000035a: mem := mem with [#3 + 8, el]:u64 <- R30 -0000035e: R31 := #3 -00000364: R29 := R31 -0000036c: mem := mem with [R31 + 0x10, el]:u64 <- R19 -00000371: R19 := 0x11000 -00000378: R0 := pad:64[mem[R19 + 0x30]] -0000037f: when 31:0[R0] <> 0 goto %0000037d -0000082d: goto %0000056c - -0000056c: -0000056f: R0 := 0x10000 -00000576: R0 := mem[R0 + 0xFD8, el]:u64 -0000057c: when R0 = 0 goto %0000057a -0000082e: goto %00000593 - -00000593: -00000596: R0 := 0x11000 -0000059d: R0 := mem[R0 + 8, el]:u64 -000005a2: R30 := 0x830 -000005a5: call @__cxa_finalize with return %0000057a - -0000057a: -00000582: R30 := 0x834 -00000584: call @deregister_tm_clones with return %00000586 - -00000586: -00000589: R0 := 1 -00000591: mem := mem with [R19 + 0x30] <- 7:0[R0] -0000082f: goto %0000037d - -0000037d: -00000387: R19 := mem[R31 + 0x10, el]:u64 -0000038e: R29 := mem[R31, el]:u64 -00000393: R30 := mem[R31 + 8, el]:u64 -00000397: R31 := R31 + 0x20 -0000039c: call R30 with noreturn - -00000801: sub __libc_start_main(__libc_start_main_main, __libc_start_main_arg2, __libc_start_main_arg3, __libc_start_main_auxv, __libc_start_main_result) -0000083b: __libc_start_main_main :: in u64 = R0 -0000083c: __libc_start_main_arg2 :: in u32 = low:32[R1] -0000083d: __libc_start_main_arg3 :: in out u64 = R2 -0000083e: __libc_start_main_auxv :: in out u64 = R3 -0000083f: __libc_start_main_result :: out u32 = low:32[R0] - -000002a3: -00000695: R16 := 0x10000 -0000069c: R17 := mem[R16 + 0xFA0, el]:u64 -000006a2: R16 := R16 + 0xFA0 -000006a7: call R17 with noreturn - -00000802: sub __stack_chk_fail(__stack_chk_fail_result) -00000840: __stack_chk_fail_result :: out u32 = low:32[R0] - -00000568: -000006c1: R16 := 0x10000 -000006c8: R17 := mem[R16 + 0xFB0, el]:u64 -000006ce: R16 := R16 + 0xFB0 -000006d3: call R17 with noreturn - -00000803: sub _fini(_fini_result) -00000841: _fini_result :: out u32 = low:32[R0] - -0000001f: -00000025: #0 := R31 - 0x10 -0000002b: mem := mem with [#0, el]:u64 <- R29 -00000031: mem := mem with [#0 + 8, el]:u64 <- R30 -00000035: R31 := #0 -0000003b: R29 := R31 -00000042: R29 := mem[R31, el]:u64 -00000047: R30 := mem[R31 + 8, el]:u64 -0000004b: R31 := R31 + 0x10 -00000050: call R30 with noreturn - -00000804: sub _init(_init_result) -00000842: _init_result :: out u32 = low:32[R0] - -0000071b: -00000721: #8 := R31 - 0x10 -00000727: mem := mem with [#8, el]:u64 <- R29 -0000072d: mem := mem with [#8 + 8, el]:u64 <- R30 -00000731: R31 := #8 -00000737: R29 := R31 -0000073c: R30 := 0x698 -0000073e: call @call_weak_fn with return %00000740 - -00000740: -00000745: R29 := mem[R31, el]:u64 -0000074a: R30 := mem[R31 + 8, el]:u64 -0000074e: R31 := R31 + 0x10 -00000753: call R30 with noreturn - -00000805: sub _start(_start_result) -00000843: _start_result :: out u32 = low:32[R0] - -00000264: -00000269: R29 := 0 -0000026e: R30 := 0 -00000274: R5 := R0 -0000027b: R1 := mem[R31, el]:u64 -00000281: R2 := R31 + 8 -00000287: R6 := R31 -0000028c: R0 := 0x10000 -00000293: R0 := mem[R0 + 0xFF0, el]:u64 -00000298: R3 := 0 -0000029d: R4 := 0 -000002a2: R30 := 0x770 -000002a5: call @__libc_start_main with return %000002a7 - -000002a7: -000002aa: R30 := 0x774 -000002ad: call @abort with return %00000830 - -00000830: -00000831: call @call_weak_fn with noreturn - -00000808: sub abort() - - -000002ab: -000006ed: R16 := 0x10000 -000006f4: R17 := mem[R16 + 0xFC0, el]:u64 -000006fa: R16 := R16 + 0xFC0 -000006ff: call R17 with noreturn - -00000809: sub add_six(add_six_result) -00000844: add_six_result :: out u32 = low:32[R0] - -000003d8: -000003db: R0 := 0x11000 -000003e1: R0 := R0 + 0x10 -000003e8: R0 := pad:64[mem[R0, el]:u32] -000003ee: R1 := pad:64[31:0[R0] + 6] -000003f3: R0 := 0x11000 -000003f9: R0 := R0 + 0x10 -00000401: mem := mem with [R0, el]:u32 <- 31:0[R1] -00000408: call R30 with noreturn - -0000080a: sub add_two(add_two_result) -00000845: add_two_result :: out u32 = low:32[R0] - -000003a6: -000003a9: R0 := 0x11000 -000003af: R0 := R0 + 0x10 -000003b6: R0 := pad:64[mem[R0, el]:u32] -000003bc: R1 := pad:64[31:0[R0] + 2] -000003c1: R0 := 0x11000 -000003c7: R0 := R0 + 0x10 -000003cf: mem := mem with [R0, el]:u32 <- 31:0[R1] -000003d6: call R30 with noreturn - -0000080b: sub call_weak_fn(call_weak_fn_result) -00000846: call_weak_fn_result :: out u32 = low:32[R0] - -000002af: -000002b2: R0 := 0x10000 -000002b9: R0 := mem[R0 + 0xFE0, el]:u64 -000002bf: when R0 = 0 goto %000002bd -00000832: goto %000005e3 - -000002bd: -000002c5: call R30 with noreturn - -000005e3: -000005e6: goto @__gmon_start__ - -000005e4: -000006d7: R16 := 0x10000 -000006de: R17 := mem[R16 + 0xFB8, el]:u64 -000006e4: R16 := R16 + 0xFB8 -000006e9: call R17 with noreturn - -0000080d: sub deregister_tm_clones(deregister_tm_clones_result) -00000847: deregister_tm_clones_result :: out u32 = low:32[R0] - -000002cb: -000002ce: R0 := 0x11000 -000002d4: R0 := R0 + 0x30 -000002d9: R1 := 0x11000 -000002df: R1 := R1 + 0x30 -000002e5: #1 := ~R0 -000002ea: #2 := R1 + ~R0 -000002f0: VF := extend:65[#2 + 1] <> extend:65[R1] + extend:65[#1] + 1 -000002f6: CF := pad:65[#2 + 1] <> pad:65[R1] + pad:65[#1] + 1 -000002fa: ZF := #2 + 1 = 0 -000002fe: NF := 63:63[#2 + 1] -00000304: when ZF goto %00000302 -00000833: goto %000005c5 - -000005c5: -000005c8: R1 := 0x10000 -000005cf: R1 := mem[R1 + 0xFD0, el]:u64 -000005d4: when R1 = 0 goto %00000302 -00000834: goto %000005d8 - -00000302: -0000030a: call R30 with noreturn - -000005d8: -000005dc: R16 := R1 -000005e1: call R16 with noreturn - -00000810: sub frame_dummy(frame_dummy_result) -00000848: frame_dummy_result :: out u32 = low:32[R0] - -000003a2: -000003a4: call @register_tm_clones with noreturn - -00000811: sub main(main_argc, main_argv, main_result) -00000849: main_argc :: in u32 = low:32[R0] -0000084a: main_argv :: in out u64 = R1 -0000084b: main_result :: out u32 = low:32[R0] - -0000043c: -00000440: #4 := R31 - 0x40 -00000446: mem := mem with [#4, el]:u64 <- R29 -0000044c: mem := mem with [#4 + 8, el]:u64 <- R30 -00000450: R31 := #4 -00000456: R29 := R31 -0000045e: mem := mem with [R31 + 0x1C, el]:u32 <- 31:0[R0] -00000466: mem := mem with [R31 + 0x10, el]:u64 <- R1 -0000046b: R0 := 0x10000 -00000472: R0 := mem[R0 + 0xFE8, el]:u64 -00000479: R1 := mem[R0, el]:u64 -00000481: mem := mem with [R31 + 0x38, el]:u64 <- R1 -00000486: R1 := 0 -0000048b: R0 := 0x11000 -00000491: R0 := R0 + 0x18 -00000497: R2 := R31 + 0x20 -0000049d: R3 := R0 -000004a4: R0 := mem[R3, el]:u64 -000004a9: R1 := mem[R3 + 8, el]:u64 -000004b1: mem := mem with [R2, el]:u64 <- R0 -000004b7: mem := mem with [R2 + 8, el]:u64 <- R1 -000004be: R0 := mem[R3 + 0x10, el]:u64 -000004c6: mem := mem with [R2 + 0x10, el]:u64 <- R0 -000004cd: R0 := mem[R31 + 0x20, el]:u64 -000004d2: R30 := 0x90C -000004d5: call R0 with return %000004d7 - -000004d7: -000004dc: R0 := mem[R31 + 0x28, el]:u64 -000004e1: R30 := 0x914 -000004e4: call R0 with return %000004e6 - -000004e6: -000004eb: R0 := mem[R31 + 0x30, el]:u64 -000004f0: R30 := 0x91C -000004f3: call R0 with return %000004f5 - -000004f5: -000004f8: R0 := 0 -000004fe: R1 := pad:64[31:0[R0]] -00000503: R0 := 0x10000 -0000050a: R0 := mem[R0 + 0xFE8, el]:u64 -00000511: R3 := mem[R31 + 0x38, el]:u64 -00000518: R2 := mem[R0, el]:u64 -0000051e: #5 := ~R2 -00000523: #6 := R3 + ~R2 -00000529: VF := extend:65[#6 + 1] <> extend:65[R3] + extend:65[#5] + 1 -0000052f: CF := pad:65[#6 + 1] <> pad:65[R3] + pad:65[#5] + 1 -00000533: ZF := #6 + 1 = 0 -00000537: NF := 63:63[#6 + 1] -0000053b: R3 := #6 + 1 -00000540: R2 := 0 -00000546: when ZF goto %00000544 -00000835: goto %00000564 - -00000564: -00000567: R30 := 0x944 -0000056a: call @__stack_chk_fail with return %00000544 - -00000544: -0000054d: R0 := pad:64[31:0[R1]] -00000554: R29 := mem[R31, el]:u64 -00000559: R30 := mem[R31 + 8, el]:u64 -0000055d: R31 := R31 + 0x40 -00000562: call R30 with noreturn - -00000813: sub register_tm_clones(register_tm_clones_result) -0000084c: register_tm_clones_result :: out u32 = low:32[R0] - -0000030c: -0000030f: R0 := 0x11000 -00000315: R0 := R0 + 0x30 -0000031a: R1 := 0x11000 -00000320: R1 := R1 + 0x30 -00000327: R1 := R1 + ~R0 + 1 -0000032d: R2 := 0.63:63[R1] -00000334: R1 := R2 + (R1 ~>> 3) -0000033a: R1 := extend:64[63:1[R1]] -00000340: when R1 = 0 goto %0000033e -00000836: goto %000005a7 - -000005a7: -000005aa: R2 := 0x10000 -000005b1: R2 := mem[R2 + 0xFF8, el]:u64 -000005b6: when R2 = 0 goto %0000033e -00000837: goto %000005ba - -0000033e: -00000346: call R30 with noreturn - -000005ba: -000005be: R16 := R2 -000005c3: call R16 with noreturn - -00000816: sub sub_seven(sub_seven_result) -0000084d: sub_seven_result :: out u32 = low:32[R0] - -0000040a: -0000040d: R0 := 0x11000 -00000413: R0 := R0 + 0x10 -0000041a: R0 := pad:64[mem[R0, el]:u32] -00000420: R1 := pad:64[31:0[R0] - 7] -00000425: R0 := 0x11000 -0000042b: R0 := R0 + 0x10 -00000433: mem := mem with [R0, el]:u32 <- 31:0[R1] -0000043a: call R30 with noreturn diff --git a/src/test/indirect_calls/jumptable/gcc/jumptable.gts b/src/test/indirect_calls/jumptable/gcc/jumptable.gts deleted file mode 100644 index db29df4a0..000000000 Binary files a/src/test/indirect_calls/jumptable/gcc/jumptable.gts and /dev/null differ diff --git a/src/test/indirect_calls/jumptable/gcc/jumptable.md5sum b/src/test/indirect_calls/jumptable/gcc/jumptable.md5sum new file mode 100644 index 000000000..09e100709 --- /dev/null +++ b/src/test/indirect_calls/jumptable/gcc/jumptable.md5sum @@ -0,0 +1,5 @@ +854bcc94a41d60c930f46ba09c9f03ef indirect_calls/jumptable/gcc/a.out +b1299aee553299667f82b405c4f1d411 indirect_calls/jumptable/gcc/jumptable.adt +cd2bfbeb7cb4f51eb9417d4c9f99aee8 indirect_calls/jumptable/gcc/jumptable.bir +13c066e49315f1ef77ea7fe8bc8f2123 indirect_calls/jumptable/gcc/jumptable.relf +3ec1a9e718165a169c2c65d541dc1b16 indirect_calls/jumptable/gcc/jumptable.gts diff --git a/src/test/indirect_calls/jumptable/gcc/jumptable.relf b/src/test/indirect_calls/jumptable/gcc/jumptable.relf deleted file mode 100644 index aab4991d2..000000000 --- a/src/test/indirect_calls/jumptable/gcc/jumptable.relf +++ /dev/null @@ -1,133 +0,0 @@ - -Relocation section '.rela.dyn' at offset 0x4f0 contains 12 entries: - Offset Info Type Symbol's Value Symbol's Name + Addend -0000000000010d78 0000000000000403 R_AARCH64_RELATIVE 850 -0000000000010d80 0000000000000403 R_AARCH64_RELATIVE 800 -0000000000010ff0 0000000000000403 R_AARCH64_RELATIVE 8c0 -0000000000011008 0000000000000403 R_AARCH64_RELATIVE 11008 -0000000000011018 0000000000000403 R_AARCH64_RELATIVE 854 -0000000000011020 0000000000000403 R_AARCH64_RELATIVE 878 -0000000000011028 0000000000000403 R_AARCH64_RELATIVE 89c -0000000000010fd0 0000000400000401 R_AARCH64_GLOB_DAT 0000000000000000 _ITM_deregisterTMCloneTable + 0 -0000000000010fd8 0000000500000401 R_AARCH64_GLOB_DAT 0000000000000000 __cxa_finalize@GLIBC_2.17 + 0 -0000000000010fe0 0000000700000401 R_AARCH64_GLOB_DAT 0000000000000000 __gmon_start__ + 0 -0000000000010fe8 0000000800000401 R_AARCH64_GLOB_DAT 0000000000000000 __stack_chk_guard@GLIBC_2.17 + 0 -0000000000010ff8 0000000a00000401 R_AARCH64_GLOB_DAT 0000000000000000 _ITM_registerTMCloneTable + 0 - -Relocation section '.rela.plt' at offset 0x610 contains 5 entries: - Offset Info Type Symbol's Value Symbol's Name + Addend -0000000000010fa0 0000000300000402 R_AARCH64_JUMP_SLOT 0000000000000000 __libc_start_main@GLIBC_2.34 + 0 -0000000000010fa8 0000000500000402 R_AARCH64_JUMP_SLOT 0000000000000000 __cxa_finalize@GLIBC_2.17 + 0 -0000000000010fb0 0000000600000402 R_AARCH64_JUMP_SLOT 0000000000000000 __stack_chk_fail@GLIBC_2.17 + 0 -0000000000010fb8 0000000700000402 R_AARCH64_JUMP_SLOT 0000000000000000 __gmon_start__ + 0 -0000000000010fc0 0000000900000402 R_AARCH64_JUMP_SLOT 0000000000000000 abort@GLIBC_2.17 + 0 - -Symbol table '.dynsym' contains 11 entries: - Num: Value Size Type Bind Vis Ndx Name - 0: 0000000000000000 0 NOTYPE LOCAL DEFAULT UND - 1: 0000000000000688 0 SECTION LOCAL DEFAULT 11 .init - 2: 0000000000011000 0 SECTION LOCAL DEFAULT 22 .data - 3: 0000000000000000 0 FUNC GLOBAL DEFAULT UND __libc_start_main@GLIBC_2.34 (2) - 4: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_deregisterTMCloneTable - 5: 0000000000000000 0 FUNC WEAK DEFAULT UND __cxa_finalize@GLIBC_2.17 (3) - 6: 0000000000000000 0 FUNC GLOBAL DEFAULT UND __stack_chk_fail@GLIBC_2.17 (3) - 7: 0000000000000000 0 NOTYPE WEAK DEFAULT UND __gmon_start__ - 8: 0000000000000000 0 OBJECT GLOBAL DEFAULT UND __stack_chk_guard@GLIBC_2.17 (4) - 9: 0000000000000000 0 FUNC GLOBAL DEFAULT UND abort@GLIBC_2.17 (3) - 10: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_registerTMCloneTable - -Symbol table '.symtab' contains 93 entries: - Num: Value Size Type Bind Vis Ndx Name - 0: 0000000000000000 0 NOTYPE LOCAL DEFAULT UND - 1: 0000000000000238 0 SECTION LOCAL DEFAULT 1 .interp - 2: 0000000000000254 0 SECTION LOCAL DEFAULT 2 .note.gnu.build-id - 3: 0000000000000278 0 SECTION LOCAL DEFAULT 3 .note.ABI-tag - 4: 0000000000000298 0 SECTION LOCAL DEFAULT 4 .gnu.hash - 5: 00000000000002b8 0 SECTION LOCAL DEFAULT 5 .dynsym - 6: 00000000000003c0 0 SECTION LOCAL DEFAULT 6 .dynstr - 7: 0000000000000486 0 SECTION LOCAL DEFAULT 7 .gnu.version - 8: 00000000000004a0 0 SECTION LOCAL DEFAULT 8 .gnu.version_r - 9: 00000000000004f0 0 SECTION LOCAL DEFAULT 9 .rela.dyn - 10: 0000000000000610 0 SECTION LOCAL DEFAULT 10 .rela.plt - 11: 0000000000000688 0 SECTION LOCAL DEFAULT 11 .init - 12: 00000000000006a0 0 SECTION LOCAL DEFAULT 12 .plt - 13: 0000000000000740 0 SECTION LOCAL DEFAULT 13 .text - 14: 0000000000000950 0 SECTION LOCAL DEFAULT 14 .fini - 15: 0000000000000964 0 SECTION LOCAL DEFAULT 15 .rodata - 16: 0000000000000968 0 SECTION LOCAL DEFAULT 16 .eh_frame_hdr - 17: 00000000000009c0 0 SECTION LOCAL DEFAULT 17 .eh_frame - 18: 0000000000010d78 0 SECTION LOCAL DEFAULT 18 .init_array - 19: 0000000000010d80 0 SECTION LOCAL DEFAULT 19 .fini_array - 20: 0000000000010d88 0 SECTION LOCAL DEFAULT 20 .dynamic - 21: 0000000000010f88 0 SECTION LOCAL DEFAULT 21 .got - 22: 0000000000011000 0 SECTION LOCAL DEFAULT 22 .data - 23: 0000000000011030 0 SECTION LOCAL DEFAULT 23 .bss - 24: 0000000000000000 0 SECTION LOCAL DEFAULT 24 .comment - 25: 0000000000000000 0 FILE LOCAL DEFAULT ABS Scrt1.o - 26: 0000000000000278 0 NOTYPE LOCAL DEFAULT 3 $d - 27: 0000000000000278 32 OBJECT LOCAL DEFAULT 3 __abi_tag - 28: 0000000000000740 0 NOTYPE LOCAL DEFAULT 13 $x - 29: 00000000000009d4 0 NOTYPE LOCAL DEFAULT 17 $d - 30: 0000000000000964 0 NOTYPE LOCAL DEFAULT 15 $d - 31: 0000000000000000 0 FILE LOCAL DEFAULT ABS crti.o - 32: 0000000000000774 0 NOTYPE LOCAL DEFAULT 13 $x - 33: 0000000000000774 20 FUNC LOCAL DEFAULT 13 call_weak_fn - 34: 0000000000000688 0 NOTYPE LOCAL DEFAULT 11 $x - 35: 0000000000000950 0 NOTYPE LOCAL DEFAULT 14 $x - 36: 0000000000000000 0 FILE LOCAL DEFAULT ABS crtn.o - 37: 0000000000000698 0 NOTYPE LOCAL DEFAULT 11 $x - 38: 000000000000095c 0 NOTYPE LOCAL DEFAULT 14 $x - 39: 0000000000000000 0 FILE LOCAL DEFAULT ABS crtstuff.c - 40: 0000000000000790 0 NOTYPE LOCAL DEFAULT 13 $x - 41: 0000000000000790 0 FUNC LOCAL DEFAULT 13 deregister_tm_clones - 42: 00000000000007c0 0 FUNC LOCAL DEFAULT 13 register_tm_clones - 43: 0000000000011008 0 NOTYPE LOCAL DEFAULT 22 $d - 44: 0000000000000800 0 FUNC LOCAL DEFAULT 13 __do_global_dtors_aux - 45: 0000000000011030 1 OBJECT LOCAL DEFAULT 23 completed.0 - 46: 0000000000010d80 0 NOTYPE LOCAL DEFAULT 19 $d - 47: 0000000000010d80 0 OBJECT LOCAL DEFAULT 19 __do_global_dtors_aux_fini_array_entry - 48: 0000000000000850 0 FUNC LOCAL DEFAULT 13 frame_dummy - 49: 0000000000010d78 0 NOTYPE LOCAL DEFAULT 18 $d - 50: 0000000000010d78 0 OBJECT LOCAL DEFAULT 18 __frame_dummy_init_array_entry - 51: 00000000000009e8 0 NOTYPE LOCAL DEFAULT 17 $d - 52: 0000000000011030 0 NOTYPE LOCAL DEFAULT 23 $d - 53: 0000000000000000 0 FILE LOCAL DEFAULT ABS jumptable.c - 54: 0000000000011010 0 NOTYPE LOCAL DEFAULT 22 $d - 55: 0000000000000854 0 NOTYPE LOCAL DEFAULT 13 $x - 56: 0000000000000a48 0 NOTYPE LOCAL DEFAULT 17 $d - 57: 0000000000000000 0 FILE LOCAL DEFAULT ABS crtstuff.c - 58: 0000000000000aa4 0 NOTYPE LOCAL DEFAULT 17 $d - 59: 0000000000000aa4 0 OBJECT LOCAL DEFAULT 17 __FRAME_END__ - 60: 0000000000000000 0 FILE LOCAL DEFAULT ABS - 61: 0000000000010d88 0 OBJECT LOCAL DEFAULT ABS _DYNAMIC - 62: 0000000000000968 0 NOTYPE LOCAL DEFAULT 16 __GNU_EH_FRAME_HDR - 63: 0000000000010fc8 0 OBJECT LOCAL DEFAULT ABS _GLOBAL_OFFSET_TABLE_ - 64: 00000000000006a0 0 NOTYPE LOCAL DEFAULT 12 $x - 65: 0000000000000000 0 FUNC GLOBAL DEFAULT UND __libc_start_main@GLIBC_2.34 - 66: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_deregisterTMCloneTable - 67: 0000000000011000 0 NOTYPE WEAK DEFAULT 22 data_start - 68: 0000000000011030 0 NOTYPE GLOBAL DEFAULT 23 __bss_start__ - 69: 0000000000000000 0 FUNC WEAK DEFAULT UND __cxa_finalize@GLIBC_2.17 - 70: 0000000000011038 0 NOTYPE GLOBAL DEFAULT 23 _bss_end__ - 71: 0000000000011030 0 NOTYPE GLOBAL DEFAULT 22 _edata - 72: 0000000000011010 4 OBJECT GLOBAL DEFAULT 22 x - 73: 0000000000000950 0 FUNC GLOBAL HIDDEN 14 _fini - 74: 0000000000011038 0 NOTYPE GLOBAL DEFAULT 23 __bss_end__ - 75: 0000000000011000 0 NOTYPE GLOBAL DEFAULT 22 __data_start - 76: 0000000000000000 0 FUNC GLOBAL DEFAULT UND __stack_chk_fail@GLIBC_2.17 - 77: 0000000000000000 0 NOTYPE WEAK DEFAULT UND __gmon_start__ - 78: 0000000000000000 0 OBJECT GLOBAL DEFAULT UND __stack_chk_guard@GLIBC_2.17 - 79: 0000000000011008 0 OBJECT GLOBAL HIDDEN 22 __dso_handle - 80: 0000000000000000 0 FUNC GLOBAL DEFAULT UND abort@GLIBC_2.17 - 81: 0000000000000964 4 OBJECT GLOBAL DEFAULT 15 _IO_stdin_used - 82: 0000000000000854 36 FUNC GLOBAL DEFAULT 13 add_two - 83: 0000000000011038 0 NOTYPE GLOBAL DEFAULT 23 _end - 84: 0000000000000740 52 FUNC GLOBAL DEFAULT 13 _start - 85: 0000000000011038 0 NOTYPE GLOBAL DEFAULT 23 __end__ - 86: 0000000000000878 36 FUNC GLOBAL DEFAULT 13 add_six - 87: 0000000000011030 0 NOTYPE GLOBAL DEFAULT 23 __bss_start - 88: 00000000000008c0 144 FUNC GLOBAL DEFAULT 13 main - 89: 0000000000011030 0 OBJECT GLOBAL HIDDEN 22 __TMC_END__ - 90: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_registerTMCloneTable - 91: 0000000000000688 0 FUNC GLOBAL HIDDEN 11 _init - 92: 000000000000089c 36 FUNC GLOBAL DEFAULT 13 sub_seven diff --git a/src/test/indirect_calls/jumptable2/clang/jumptable2.adt b/src/test/indirect_calls/jumptable2/clang/jumptable2.adt deleted file mode 100644 index 88a343645..000000000 --- a/src/test/indirect_calls/jumptable2/clang/jumptable2.adt +++ /dev/null @@ -1,648 +0,0 @@ -Project(Attrs([Attr("filename","\"clang/jumptable2.out\""), -Attr("image-specification","(declare abi (name str))\n(declare arch (name str))\n(declare base-address (addr int))\n(declare bias (off int))\n(declare bits (size int))\n(declare code-region (addr int) (size int) (off int))\n(declare code-start (addr int))\n(declare entry-point (addr int))\n(declare external-reference (addr int) (name str))\n(declare format (name str))\n(declare is-executable (flag bool))\n(declare is-little-endian (flag bool))\n(declare llvm:base-address (addr int))\n(declare llvm:code-entry (name str) (off int) (size int))\n(declare llvm:coff-import-library (name str))\n(declare llvm:coff-virtual-section-header (name str) (addr int) (size int))\n(declare llvm:elf-program-header (name str) (off int) (size int))\n(declare llvm:elf-program-header-flags (name str) (ld bool) (r bool) \n (w bool) (x bool))\n(declare llvm:elf-virtual-program-header (name str) (addr int) (size int))\n(declare llvm:entry-point (addr int))\n(declare llvm:macho-symbol (name str) (value int))\n(declare llvm:name-reference (at int) (name str))\n(declare llvm:relocation (at int) (addr int))\n(declare llvm:section-entry (name str) (addr int) (size int) (off int))\n(declare llvm:section-flags (name str) (r bool) (w bool) (x bool))\n(declare llvm:segment-command (name str) (off int) (size int))\n(declare llvm:segment-command-flags (name str) (r bool) (w bool) (x bool))\n(declare llvm:symbol-entry (name str) (addr int) (size int) (off int)\n (value int))\n(declare llvm:virtual-segment-command (name str) (addr int) (size int))\n(declare mapped (addr int) (size int) (off int))\n(declare named-region (addr int) (size int) (name str))\n(declare named-symbol (addr int) (name str))\n(declare require (name str))\n(declare section (addr int) (size int))\n(declare segment (addr int) (size int) (r bool) (w bool) (x bool))\n(declare subarch (name str))\n(declare symbol-chunk (addr int) (size int) (root int))\n(declare symbol-value (addr int) (value int))\n(declare system (name str))\n(declare vendor (name str))\n\n(abi unknown)\n(arch aarch64)\n(base-address 0)\n(bias 0)\n(bits 64)\n(code-region 2032 20 2032)\n(code-region 1600 432 1600)\n(code-region 1504 96 1504)\n(code-region 1480 24 1480)\n(code-start 1652)\n(code-start 1876)\n(code-start 1600)\n(code-start 1896)\n(code-start 1936)\n(code-start 1916)\n(entry-point 1600)\n(external-reference 69568 _ITM_deregisterTMCloneTable)\n(external-reference 69576 __cxa_finalize)\n(external-reference 69584 __gmon_start__)\n(external-reference 69600 _ITM_registerTMCloneTable)\n(external-reference 69632 __libc_start_main)\n(external-reference 69640 __cxa_finalize)\n(external-reference 69648 __gmon_start__)\n(external-reference 69656 abort)\n(format elf)\n(is-executable true)\n(is-little-endian true)\n(llvm:base-address 0)\n(llvm:code-entry abort 0 0)\n(llvm:code-entry __cxa_finalize 0 0)\n(llvm:code-entry __libc_start_main 0 0)\n(llvm:code-entry sub_seven 1916 20)\n(llvm:code-entry _init 1480 0)\n(llvm:code-entry main 1936 96)\n(llvm:code-entry add_six 1896 20)\n(llvm:code-entry _start 1600 52)\n(llvm:code-entry add_two 1876 20)\n(llvm:code-entry abort@GLIBC_2.17 0 0)\n(llvm:code-entry _fini 2032 0)\n(llvm:code-entry __cxa_finalize@GLIBC_2.17 0 0)\n(llvm:code-entry __libc_start_main@GLIBC_2.34 0 0)\n(llvm:code-entry frame_dummy 1872 0)\n(llvm:code-entry __do_global_dtors_aux 1792 0)\n(llvm:code-entry register_tm_clones 1728 0)\n(llvm:code-entry deregister_tm_clones 1680 0)\n(llvm:code-entry call_weak_fn 1652 20)\n(llvm:code-entry .fini 2032 20)\n(llvm:code-entry .text 1600 432)\n(llvm:code-entry .plt 1504 96)\n(llvm:code-entry .init 1480 24)\n(llvm:elf-program-header 08 3528 568)\n(llvm:elf-program-header 07 0 0)\n(llvm:elf-program-header 06 2056 84)\n(llvm:elf-program-header 05 596 68)\n(llvm:elf-program-header 04 3544 480)\n(llvm:elf-program-header 03 3528 648)\n(llvm:elf-program-header 02 0 2404)\n(llvm:elf-program-header 01 568 27)\n(llvm:elf-program-header 00 64 504)\n(llvm:elf-program-header-flags 08 false true false false)\n(llvm:elf-program-header-flags 07 false true true false)\n(llvm:elf-program-header-flags 06 false true false false)\n(llvm:elf-program-header-flags 05 false true false false)\n(llvm:elf-program-header-flags 04 false true true false)\n(llvm:elf-program-header-flags 03 true true true false)\n(llvm:elf-program-header-flags 02 true true false true)\n(llvm:elf-program-header-flags 01 false true false false)\n(llvm:elf-program-header-flags 00 false true false false)\n(llvm:elf-virtual-program-header 08 69064 568)\n(llvm:elf-virtual-program-header 07 0 0)\n(llvm:elf-virtual-program-header 06 2056 84)\n(llvm:elf-virtual-program-header 05 596 68)\n(llvm:elf-virtual-program-header 04 69080 480)\n(llvm:elf-virtual-program-header 03 69064 656)\n(llvm:elf-virtual-program-header 02 0 2404)\n(llvm:elf-virtual-program-header 01 568 27)\n(llvm:elf-virtual-program-header 00 64 504)\n(llvm:entry-point 1600)\n(llvm:name-reference 69656 abort)\n(llvm:name-reference 69648 __gmon_start__)\n(llvm:name-reference 69640 __cxa_finalize)\n(llvm:name-reference 69632 __libc_start_main)\n(llvm:name-reference 69600 _ITM_registerTMCloneTable)\n(llvm:name-reference 69584 __gmon_start__)\n(llvm:name-reference 69576 __cxa_finalize)\n(llvm:name-reference 69568 _ITM_deregisterTMCloneTable)\n(llvm:section-entry .shstrtab 0 259 7107)\n(llvm:section-entry .strtab 0 603 6504)\n(llvm:section-entry .symtab 0 2256 4248)\n(llvm:section-entry .comment 0 71 4176)\n(llvm:section-entry .bss 69712 8 4176)\n(llvm:section-entry .data 69664 48 4128)\n(llvm:section-entry .got.plt 69608 56 4072)\n(llvm:section-entry .got 69560 48 4024)\n(llvm:section-entry .dynamic 69080 480 3544)\n(llvm:section-entry .fini_array 69072 8 3536)\n(llvm:section-entry .init_array 69064 8 3528)\n(llvm:section-entry .eh_frame 2144 260 2144)\n(llvm:section-entry .eh_frame_hdr 2056 84 2056)\n(llvm:section-entry .rodata 2052 4 2052)\n(llvm:section-entry .fini 2032 20 2032)\n(llvm:section-entry .text 1600 432 1600)\n(llvm:section-entry .plt 1504 96 1504)\n(llvm:section-entry .init 1480 24 1480)\n(llvm:section-entry .rela.plt 1384 96 1384)\n(llvm:section-entry .rela.dyn 1120 264 1120)\n(llvm:section-entry .gnu.version_r 1072 48 1072)\n(llvm:section-entry .gnu.version 1054 18 1054)\n(llvm:section-entry .dynstr 912 141 912)\n(llvm:section-entry .dynsym 696 216 696)\n(llvm:section-entry .gnu.hash 664 28 664)\n(llvm:section-entry .note.ABI-tag 632 32 632)\n(llvm:section-entry .note.gnu.build-id 596 36 596)\n(llvm:section-entry .interp 568 27 568)\n(llvm:section-flags .shstrtab true false false)\n(llvm:section-flags .strtab true false false)\n(llvm:section-flags .symtab true false false)\n(llvm:section-flags .comment true false false)\n(llvm:section-flags .bss true true false)\n(llvm:section-flags .data true true false)\n(llvm:section-flags .got.plt true true false)\n(llvm:section-flags .got true true false)\n(llvm:section-flags .dynamic true true false)\n(llvm:section-flags .fini_array true true false)\n(llvm:section-flags .init_array true true false)\n(llvm:section-flags .eh_frame true false false)\n(llvm:section-flags .eh_frame_hdr true false false)\n(llvm:section-flags .rodata true false false)\n(llvm:section-flags .fini true false true)\n(llvm:section-flags .text true false true)\n(llvm:section-flags .plt true false true)\n(llvm:section-flags .init true false true)\n(llvm:section-flags .rela.plt true false false)\n(llvm:section-flags .rela.dyn true false false)\n(llvm:section-flags .gnu.version_r true false false)\n(llvm:section-flags .gnu.version true false false)\n(llvm:section-flags .dynstr true false false)\n(llvm:section-flags .dynsym true false false)\n(llvm:section-flags .gnu.hash true false false)\n(llvm:section-flags .note.ABI-tag true false false)\n(llvm:section-flags .note.gnu.build-id true false false)\n(llvm:section-flags .interp true false false)\n(llvm:symbol-entry abort 0 0 0 0)\n(llvm:symbol-entry __cxa_finalize 0 0 0 0)\n(llvm:symbol-entry __libc_start_main 0 0 0 0)\n(llvm:symbol-entry sub_seven 1916 20 1916 1916)\n(llvm:symbol-entry _init 1480 0 1480 1480)\n(llvm:symbol-entry main 1936 96 1936 1936)\n(llvm:symbol-entry add_six 1896 20 1896 1896)\n(llvm:symbol-entry _start 1600 52 1600 1600)\n(llvm:symbol-entry add_two 1876 20 1876 1876)\n(llvm:symbol-entry abort@GLIBC_2.17 0 0 0 0)\n(llvm:symbol-entry _fini 2032 0 2032 2032)\n(llvm:symbol-entry __cxa_finalize@GLIBC_2.17 0 0 0 0)\n(llvm:symbol-entry __libc_start_main@GLIBC_2.34 0 0 0 0)\n(llvm:symbol-entry frame_dummy 1872 0 1872 1872)\n(llvm:symbol-entry __do_global_dtors_aux 1792 0 1792 1792)\n(llvm:symbol-entry register_tm_clones 1728 0 1728 1728)\n(llvm:symbol-entry deregister_tm_clones 1680 0 1680 1680)\n(llvm:symbol-entry call_weak_fn 1652 20 1652 1652)\n(mapped 0 2404 0)\n(mapped 69064 648 3528)\n(named-region 0 2404 02)\n(named-region 69064 656 03)\n(named-region 568 27 .interp)\n(named-region 596 36 .note.gnu.build-id)\n(named-region 632 32 .note.ABI-tag)\n(named-region 664 28 .gnu.hash)\n(named-region 696 216 .dynsym)\n(named-region 912 141 .dynstr)\n(named-region 1054 18 .gnu.version)\n(named-region 1072 48 .gnu.version_r)\n(named-region 1120 264 .rela.dyn)\n(named-region 1384 96 .rela.plt)\n(named-region 1480 24 .init)\n(named-region 1504 96 .plt)\n(named-region 1600 432 .text)\n(named-region 2032 20 .fini)\n(named-region 2052 4 .rodata)\n(named-region 2056 84 .eh_frame_hdr)\n(named-region 2144 260 .eh_frame)\n(named-region 69064 8 .init_array)\n(named-region 69072 8 .fini_array)\n(named-region 69080 480 .dynamic)\n(named-region 69560 48 .got)\n(named-region 69608 56 .got.plt)\n(named-region 69664 48 .data)\n(named-region 69712 8 .bss)\n(named-region 0 71 .comment)\n(named-region 0 2256 .symtab)\n(named-region 0 603 .strtab)\n(named-region 0 259 .shstrtab)\n(named-symbol 1652 call_weak_fn)\n(named-symbol 1680 deregister_tm_clones)\n(named-symbol 1728 register_tm_clones)\n(named-symbol 1792 __do_global_dtors_aux)\n(named-symbol 1872 frame_dummy)\n(named-symbol 0 __libc_start_main@GLIBC_2.34)\n(named-symbol 0 __cxa_finalize@GLIBC_2.17)\n(named-symbol 2032 _fini)\n(named-symbol 0 abort@GLIBC_2.17)\n(named-symbol 1876 add_two)\n(named-symbol 1600 _start)\n(named-symbol 1896 add_six)\n(named-symbol 1936 main)\n(named-symbol 1480 _init)\n(named-symbol 1916 sub_seven)\n(named-symbol 0 __libc_start_main)\n(named-symbol 0 __cxa_finalize)\n(named-symbol 0 abort)\n(require libc.so.6)\n(section 568 27)\n(section 596 36)\n(section 632 32)\n(section 664 28)\n(section 696 216)\n(section 912 141)\n(section 1054 18)\n(section 1072 48)\n(section 1120 264)\n(section 1384 96)\n(section 1480 24)\n(section 1504 96)\n(section 1600 432)\n(section 2032 20)\n(section 2052 4)\n(section 2056 84)\n(section 2144 260)\n(section 69064 8)\n(section 69072 8)\n(section 69080 480)\n(section 69560 48)\n(section 69608 56)\n(section 69664 48)\n(section 69712 8)\n(section 0 71)\n(section 0 2256)\n(section 0 603)\n(section 0 259)\n(segment 0 2404 true false true)\n(segment 69064 656 true true false)\n(subarch v8)\n(symbol-chunk 1652 20 1652)\n(symbol-chunk 1876 20 1876)\n(symbol-chunk 1600 52 1600)\n(symbol-chunk 1896 20 1896)\n(symbol-chunk 1936 96 1936)\n(symbol-chunk 1916 20 1916)\n(symbol-value 1652 1652)\n(symbol-value 1680 1680)\n(symbol-value 1728 1728)\n(symbol-value 1792 1792)\n(symbol-value 1872 1872)\n(symbol-value 2032 2032)\n(symbol-value 1876 1876)\n(symbol-value 1600 1600)\n(symbol-value 1896 1896)\n(symbol-value 1936 1936)\n(symbol-value 1480 1480)\n(symbol-value 1916 1916)\n(symbol-value 0 0)\n(system \"\")\n(vendor \"\")\n"), -Attr("abi-name","\"aarch64-linux-gnu-elf\"")]), -Sections([Section(".shstrtab", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x40\x06\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xc8\x1c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x38\x00\x09\x00\x40\x00\x1d\x00\x1c\x00\x06\x00\x00\x00\x04\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x04\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\x09\x00\x00\x00\x00\x00\x00\x64\x09\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x01\x00\x00\x00\x06\x00\x00\x00\xc8\x0d\x00\x00\x00\x00\x00\x00\xc8\x0d\x01\x00\x00\x00\x00\x00\xc8\x0d\x01"), -Section(".strtab", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x40\x06\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xc8\x1c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x38\x00\x09\x00\x40\x00\x1d\x00\x1c\x00\x06\x00\x00\x00\x04\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x04\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\x09\x00\x00\x00\x00\x00\x00\x64\x09\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x01\x00\x00\x00\x06\x00\x00\x00\xc8\x0d\x00\x00\x00\x00\x00\x00\xc8\x0d\x01\x00\x00\x00\x00\x00\xc8\x0d\x01\x00\x00\x00\x00\x00\x88\x02\x00\x00\x00\x00\x00\x00\x90\x02\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x02\x00\x00\x00\x06\x00\x00\x00\xd8\x0d\x00\x00\x00\x00\x00\x00\xd8\x0d\x01\x00\x00\x00\x00\x00\xd8\x0d\x01\x00\x00\x00\x00\x00\xe0\x01\x00\x00\x00\x00\x00\x00\xe0\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x04\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x50\xe5\x74\x64\x04\x00\x00\x00\x08\x08\x00\x00\x00\x00\x00\x00\x08\x08\x00\x00\x00\x00\x00\x00\x08\x08\x00\x00\x00\x00\x00\x00\x54\x00\x00\x00\x00\x00\x00\x00\x54\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x51\xe5\x74\x64\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x52\xe5\x74\x64\x04\x00\x00\x00\xc8\x0d\x00\x00\x00\x00\x00\x00\xc8\x0d\x01\x00\x00\x00\x00\x00\xc8\x0d\x01\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x2f\x6c\x69\x62\x2f\x6c\x64\x2d\x6c\x69\x6e\x75\x78\x2d\x61\x61\x72\x63\x68\x36\x34\x2e\x73\x6f\x2e\x31\x00\x00\x04\x00\x00\x00\x14\x00\x00"), -Section(".symtab", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x40\x06\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xc8\x1c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x38\x00\x09\x00\x40\x00\x1d\x00\x1c\x00\x06\x00\x00\x00\x04\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x04\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\x09\x00\x00\x00\x00\x00\x00\x64\x09\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x01\x00\x00\x00\x06\x00\x00\x00\xc8\x0d\x00\x00\x00\x00\x00\x00\xc8\x0d\x01\x00\x00\x00\x00\x00\xc8\x0d\x01\x00\x00\x00\x00\x00\x88\x02\x00\x00\x00\x00\x00\x00\x90\x02\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x02\x00\x00\x00\x06\x00\x00\x00\xd8\x0d\x00\x00\x00\x00\x00\x00\xd8\x0d\x01\x00\x00\x00\x00\x00\xd8\x0d\x01\x00\x00\x00\x00\x00\xe0\x01\x00\x00\x00\x00\x00\x00\xe0\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x04\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x50\xe5\x74\x64\x04\x00\x00\x00\x08\x08\x00\x00\x00\x00\x00\x00\x08\x08\x00\x00\x00\x00\x00\x00\x08\x08\x00\x00\x00\x00\x00\x00\x54\x00\x00\x00\x00\x00\x00\x00\x54\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x51\xe5\x74\x64\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x52\xe5\x74\x64\x04\x00\x00\x00\xc8\x0d\x00\x00\x00\x00\x00\x00\xc8\x0d\x01\x00\x00\x00\x00\x00\xc8\x0d\x01\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x2f\x6c\x69\x62\x2f\x6c\x64\x2d\x6c\x69\x6e\x75\x78\x2d\x61\x61\x72\x63\x68\x36\x34\x2e\x73\x6f\x2e\x31\x00\x00\x04\x00\x00\x00\x14\x00\x00\x00\x03\x00\x00\x00\x47\x4e\x55\x00\xe6\x53\xb5\x76\x7e\xea\x65\x21\x1d\xc2\xa5\x5e\x08\xac\x80\x61\xfb\xa5\x43\x8d\x04\x00\x00\x00\x10\x00\x00\x00\x01\x00\x00\x00\x47\x4e\x55\x00\x00\x00\x00\x00\x03\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x01\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x0b\x00\xc8\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x17\x00\x20\x10\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x48\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x22\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x22\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x73\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5f\x5f\x63\x78\x61\x5f\x66\x69\x6e\x61\x6c\x69\x7a\x65\x00\x5f\x5f\x6c\x69\x62\x63\x5f\x73\x74\x61\x72\x74\x5f\x6d\x61\x69\x6e\x00\x61\x62\x6f\x72\x74\x00\x6c\x69\x62\x63\x2e\x73\x6f\x2e\x36\x00\x47\x4c\x49\x42\x43\x5f\x32\x2e\x31\x37\x00\x47\x4c\x49\x42\x43\x5f\x32\x2e\x33\x34\x00\x5f\x49\x54\x4d\x5f\x64\x65\x72\x65\x67\x69\x73\x74\x65\x72\x54\x4d\x43\x6c\x6f\x6e\x65\x54\x61\x62\x6c\x65\x00\x5f\x5f\x67\x6d\x6f\x6e\x5f\x73\x74\x61\x72\x74\x5f\x5f\x00\x5f\x49\x54\x4d\x5f\x72\x65\x67\x69\x73\x74\x65\x72\x54\x4d\x43\x6c\x6f\x6e\x65\x54\x61\x62\x6c\x65\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x01\x00\x03\x00\x01\x00\x03\x00\x01\x00\x01\x00\x02\x00\x28\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x97\x91\x96\x06\x00\x00\x03\x00\x32\x00\x00\x00\x10\x00\x00\x00\xb4\x91\x96\x06\x00\x00\x02\x00\x3d\x00\x00\x00\x00\x00\x00\x00\xc8\x0d\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x50\x07\x00\x00\x00\x00\x00\x00\xd0\x0d\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\xd8\x0f\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x90\x07\x00\x00\x00\x00\x00\x00\x28\x10\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x28\x10\x01\x00\x00\x00\x00\x00\x38\x10\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x54\x07\x00\x00\x00\x00\x00\x00\x40\x10\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x68\x07\x00\x00\x00\x00\x00\x00\x48\x10\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x7c\x07\x00\x00\x00\x00\x00\x00\xc0\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xc8\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xd0\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe0\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x08\x10\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x10\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x18\x10\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1f\x20\x03\xd5\xfd\x7b\xbf\xa9\xfd\x03\x00\x91\x28\x00\x00\x94\xfd\x7b\xc1\xa8\xc0\x03\x5f\xd6\xf0\x7b\xbf\xa9\x90\x00\x00\x90\x11\xfe\x47\xf9\x10\xe2\x3f\x91\x20\x02\x1f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x90\x00\x00\xb0\x11\x02\x40\xf9\x10\x02\x00\x91\x20\x02\x1f\xd6\x90\x00\x00\xb0\x11\x06\x40\xf9\x10\x22\x00\x91\x20\x02\x1f\xd6\x90\x00\x00\xb0\x11\x0a\x40\xf9\x10\x42\x00\x91\x20\x02\x1f\xd6\x90\x00\x00\xb0\x11\x0e\x40\xf9\x10\x62\x00\x91\x20\x02\x1f\xd6\x1f\x20\x03\xd5\x1d\x00\x80\xd2\x1e\x00\x80\xd2\xe5\x03\x00\xaa\xe1\x03\x40\xf9\xe2\x23\x00\x91\xe6\x03\x00\x91\x80\x00\x00\x90\x00\xec\x47\xf9\x03\x00\x80\xd2\x04\x00\x80\xd2\xe5\xff\xff\x97\xf0\xff\xff\x97\x80\x00\x00\x90\x00\xe8\x47\xf9\x40\x00\x00\xb4\xe8\xff\xff\x17\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x80\x00\x00\xb0\x00\x40\x01\x91\x81\x00\x00\xb0\x21\x40\x01\x91\x3f\x00\x00\xeb\xc0\x00\x00\x54\x81\x00\x00\x90\x21\xe0\x47\xf9\x61\x00\x00\xb4\xf0\x03\x01\xaa\x00\x02\x1f\xd6\xc0\x03\x5f\xd6\x80\x00\x00\xb0\x00\x40\x01\x91\x81\x00\x00\xb0\x21\x40\x01\x91\x21\x00\x00\xcb\x22\xfc\x7f\xd3\x41\x0c\x81\x8b\x21\xfc\x41\x93\xc1\x00\x00\xb4\x82\x00\x00\x90\x42\xf0\x47\xf9\x62\x00\x00\xb4\xf0\x03\x02\xaa\x00\x02\x1f\xd6\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\xfd\x7b\xbe\xa9\xfd\x03\x00\x91\xf3\x0b\x00\xf9\x93\x00\x00\xb0\x60\x42\x41\x39\x40\x01\x00\x35\x80\x00\x00\x90\x00\xe4\x47\xf9\x80\x00\x00\xb4\x80\x00\x00\xb0\x00\x14\x40\xf9\xb9\xff\xff\x97\xd8\xff\xff\x97\x20\x00\x80\x52\x60\x42\x01\x39\xf3\x0b\x40\xf9\xfd\x7b\xc2\xa8\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\xdc\xff\xff\x17\x89\x00\x00\xb0\x28\x31\x40\xb9\x08\x09\x00\x11\x28\x31\x00\xb9\xc0\x03\x5f\xd6\x89\x00\x00\xb0\x28\x31\x40\xb9\x08\x19\x00\x11\x28\x31\x00\xb9\xc0\x03\x5f\xd6\x89\x00\x00\xb0\x28\x31\x40\xb9\x08\x1d\x00\x71\x28\x31\x00\xb9\xc0\x03\x5f\xd6\xff\xc3\x00\xd1\xfd\x7b\x02\xa9\xfd\x83\x00\x91\x88\x00\x00\xb0\x89\x00\x00\xb0\x29\xe1\x00\x91\xe9\x03\x00\xf9\xe9\x03\x1f\x2a\xe9\x0f\x00\xb9\xbf\xc3\x1f\xb8\xa0\x83\x1f\xb8\xe1\x0b\x00\xf9\x08\x1d\x40\xf9\x00\x01\x3f\xd6\xe8\x03\x40\xf9\x08\x05\x40\xf9\x00\x01\x3f\xd6\xe8\x03\x40\xf9\x08\x09\x40\xf9\x00\x01\x3f\xd6\xe0\x0f\x40\xb9\xfd\x7b\x42\xa9\xff\xc3\x00\x91\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\xfd\x7b\xbf\xa9\xfd\x03\x00\x91\xfd\x7b\xc1\xa8\xc0\x03\x5f\xd6\x01\x00\x02\x00\x01\x1b\x03\x3b\x54\x00\x00\x00\x09\x00\x00\x00\x38\xfe\xff\xff\x6c\x00\x00\x00\x88\xfe\xff\xff\x80\x00\x00\x00\xb8\xfe\xff\xff\x94\x00\x00\x00\xf8\xfe\xff\xff\xa8\x00\x00\x00\x48\xff\xff\xff\xcc\x00\x00\x00\x4c\xff\xff\xff\xf4\x00\x00\x00\x60\xff\xff\xff\x08\x01\x00\x00\x74\xff\xff\xff\x1c\x01\x00\x00\x88\xff\xff\xff\x30\x01\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x01\x7a\x52\x00\x04\x78\x1e\x01\x1b\x0c\x1f\x00\x10\x00\x00\x00\x18\x00\x00\x00\xc4\xfd\xff\xff\x34\x00\x00\x00\x00\x41\x07\x1e\x10\x00\x00\x00\x2c\x00\x00\x00\x00\xfe\xff\xff\x30\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x40\x00\x00\x00\x1c\xfe\xff\xff\x3c\x00\x00\x00\x00\x00\x00\x00\x20\x00\x00\x00\x54\x00\x00\x00\x48\xfe\xff\xff\x48\x00\x00\x00\x00\x41\x0e\x20\x9d\x04\x9e\x03\x42\x93\x02\x4e\xde\xdd\xd3\x0e"), -Section(".comment", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x40\x06\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xc8\x1c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x38\x00\x09\x00\x40\x00\x1d\x00\x1c\x00\x06\x00\x00\x00\x04\x00\x00"), -Section(".interp", 0x238, "\x2f\x6c\x69\x62\x2f\x6c\x64\x2d\x6c\x69\x6e\x75\x78\x2d\x61\x61\x72\x63\x68\x36\x34\x2e\x73\x6f\x2e\x31\x00"), -Section(".note.gnu.build-id", 0x254, "\x04\x00\x00\x00\x14\x00\x00\x00\x03\x00\x00\x00\x47\x4e\x55\x00\xe6\x53\xb5\x76\x7e\xea\x65\x21\x1d\xc2\xa5\x5e\x08\xac\x80\x61\xfb\xa5\x43\x8d"), -Section(".note.ABI-tag", 0x278, "\x04\x00\x00\x00\x10\x00\x00\x00\x01\x00\x00\x00\x47\x4e\x55\x00\x00\x00\x00\x00\x03\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00"), -Section(".gnu.hash", 0x298, "\x01\x00\x00\x00\x01\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".dynsym", 0x2B8, "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x0b\x00\xc8\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x17\x00\x20\x10\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x48\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x22\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x22\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x73\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".dynstr", 0x390, "\x00\x5f\x5f\x63\x78\x61\x5f\x66\x69\x6e\x61\x6c\x69\x7a\x65\x00\x5f\x5f\x6c\x69\x62\x63\x5f\x73\x74\x61\x72\x74\x5f\x6d\x61\x69\x6e\x00\x61\x62\x6f\x72\x74\x00\x6c\x69\x62\x63\x2e\x73\x6f\x2e\x36\x00\x47\x4c\x49\x42\x43\x5f\x32\x2e\x31\x37\x00\x47\x4c\x49\x42\x43\x5f\x32\x2e\x33\x34\x00\x5f\x49\x54\x4d\x5f\x64\x65\x72\x65\x67\x69\x73\x74\x65\x72\x54\x4d\x43\x6c\x6f\x6e\x65\x54\x61\x62\x6c\x65\x00\x5f\x5f\x67\x6d\x6f\x6e\x5f\x73\x74\x61\x72\x74\x5f\x5f\x00\x5f\x49\x54\x4d\x5f\x72\x65\x67\x69\x73\x74\x65\x72\x54\x4d\x43\x6c\x6f\x6e\x65\x54\x61\x62\x6c\x65\x00"), -Section(".gnu.version", 0x41E, "\x00\x00\x00\x00\x00\x00\x02\x00\x01\x00\x03\x00\x01\x00\x03\x00\x01\x00"), -Section(".gnu.version_r", 0x430, "\x01\x00\x02\x00\x28\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x97\x91\x96\x06\x00\x00\x03\x00\x32\x00\x00\x00\x10\x00\x00\x00\xb4\x91\x96\x06\x00\x00\x02\x00\x3d\x00\x00\x00\x00\x00\x00\x00"), -Section(".rela.dyn", 0x460, "\xc8\x0d\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x50\x07\x00\x00\x00\x00\x00\x00\xd0\x0d\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\xd8\x0f\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x90\x07\x00\x00\x00\x00\x00\x00\x28\x10\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x28\x10\x01\x00\x00\x00\x00\x00\x38\x10\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x54\x07\x00\x00\x00\x00\x00\x00\x40\x10\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x68\x07\x00\x00\x00\x00\x00\x00\x48\x10\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x7c\x07\x00\x00\x00\x00\x00\x00\xc0\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xc8\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xd0\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe0\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".rela.plt", 0x568, "\x00\x10\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x08\x10\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x10\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x18\x10\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".init", 0x5C8, "\x1f\x20\x03\xd5\xfd\x7b\xbf\xa9\xfd\x03\x00\x91\x28\x00\x00\x94\xfd\x7b\xc1\xa8\xc0\x03\x5f\xd6"), -Section(".plt", 0x5E0, "\xf0\x7b\xbf\xa9\x90\x00\x00\x90\x11\xfe\x47\xf9\x10\xe2\x3f\x91\x20\x02\x1f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x90\x00\x00\xb0\x11\x02\x40\xf9\x10\x02\x00\x91\x20\x02\x1f\xd6\x90\x00\x00\xb0\x11\x06\x40\xf9\x10\x22\x00\x91\x20\x02\x1f\xd6\x90\x00\x00\xb0\x11\x0a\x40\xf9\x10\x42\x00\x91\x20\x02\x1f\xd6\x90\x00\x00\xb0\x11\x0e\x40\xf9\x10\x62\x00\x91\x20\x02\x1f\xd6"), -Section(".text", 0x640, "\x1f\x20\x03\xd5\x1d\x00\x80\xd2\x1e\x00\x80\xd2\xe5\x03\x00\xaa\xe1\x03\x40\xf9\xe2\x23\x00\x91\xe6\x03\x00\x91\x80\x00\x00\x90\x00\xec\x47\xf9\x03\x00\x80\xd2\x04\x00\x80\xd2\xe5\xff\xff\x97\xf0\xff\xff\x97\x80\x00\x00\x90\x00\xe8\x47\xf9\x40\x00\x00\xb4\xe8\xff\xff\x17\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x80\x00\x00\xb0\x00\x40\x01\x91\x81\x00\x00\xb0\x21\x40\x01\x91\x3f\x00\x00\xeb\xc0\x00\x00\x54\x81\x00\x00\x90\x21\xe0\x47\xf9\x61\x00\x00\xb4\xf0\x03\x01\xaa\x00\x02\x1f\xd6\xc0\x03\x5f\xd6\x80\x00\x00\xb0\x00\x40\x01\x91\x81\x00\x00\xb0\x21\x40\x01\x91\x21\x00\x00\xcb\x22\xfc\x7f\xd3\x41\x0c\x81\x8b\x21\xfc\x41\x93\xc1\x00\x00\xb4\x82\x00\x00\x90\x42\xf0\x47\xf9\x62\x00\x00\xb4\xf0\x03\x02\xaa\x00\x02\x1f\xd6\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\xfd\x7b\xbe\xa9\xfd\x03\x00\x91\xf3\x0b\x00\xf9\x93\x00\x00\xb0\x60\x42\x41\x39\x40\x01\x00\x35\x80\x00\x00\x90\x00\xe4\x47\xf9\x80\x00\x00\xb4\x80\x00\x00\xb0\x00\x14\x40\xf9\xb9\xff\xff\x97\xd8\xff\xff\x97\x20\x00\x80\x52\x60\x42\x01\x39\xf3\x0b\x40\xf9\xfd\x7b\xc2\xa8\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\xdc\xff\xff\x17\x89\x00\x00\xb0\x28\x31\x40\xb9\x08\x09\x00\x11\x28\x31\x00\xb9\xc0\x03\x5f\xd6\x89\x00\x00\xb0\x28\x31\x40\xb9\x08\x19\x00\x11\x28\x31\x00\xb9\xc0\x03\x5f\xd6\x89\x00\x00\xb0\x28\x31\x40\xb9\x08\x1d\x00\x71\x28\x31\x00\xb9\xc0\x03\x5f\xd6\xff\xc3\x00\xd1\xfd\x7b\x02\xa9\xfd\x83\x00\x91\x88\x00\x00\xb0\x89\x00\x00\xb0\x29\xe1\x00\x91\xe9\x03\x00\xf9\xe9\x03\x1f\x2a\xe9\x0f\x00\xb9\xbf\xc3\x1f\xb8\xa0\x83\x1f\xb8\xe1\x0b\x00\xf9\x08\x1d\x40\xf9\x00\x01\x3f\xd6\xe8\x03\x40\xf9\x08\x05\x40\xf9\x00\x01\x3f\xd6\xe8\x03\x40\xf9\x08\x09\x40\xf9\x00\x01\x3f\xd6\xe0\x0f\x40\xb9\xfd\x7b\x42\xa9\xff\xc3\x00\x91\xc0\x03\x5f\xd6"), -Section(".fini", 0x7F0, "\x1f\x20\x03\xd5\xfd\x7b\xbf\xa9\xfd\x03\x00\x91\xfd\x7b\xc1\xa8\xc0\x03\x5f\xd6"), -Section(".rodata", 0x804, "\x01\x00\x02\x00"), -Section(".eh_frame_hdr", 0x808, "\x01\x1b\x03\x3b\x54\x00\x00\x00\x09\x00\x00\x00\x38\xfe\xff\xff\x6c\x00\x00\x00\x88\xfe\xff\xff\x80\x00\x00\x00\xb8\xfe\xff\xff\x94\x00\x00\x00\xf8\xfe\xff\xff\xa8\x00\x00\x00\x48\xff\xff\xff\xcc\x00\x00\x00\x4c\xff\xff\xff\xf4\x00\x00\x00\x60\xff\xff\xff\x08\x01\x00\x00\x74\xff\xff\xff\x1c\x01\x00\x00\x88\xff\xff\xff\x30\x01\x00\x00"), -Section(".eh_frame", 0x860, "\x10\x00\x00\x00\x00\x00\x00\x00\x01\x7a\x52\x00\x04\x78\x1e\x01\x1b\x0c\x1f\x00\x10\x00\x00\x00\x18\x00\x00\x00\xc4\xfd\xff\xff\x34\x00\x00\x00\x00\x41\x07\x1e\x10\x00\x00\x00\x2c\x00\x00\x00\x00\xfe\xff\xff\x30\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x40\x00\x00\x00\x1c\xfe\xff\xff\x3c\x00\x00\x00\x00\x00\x00\x00\x20\x00\x00\x00\x54\x00\x00\x00\x48\xfe\xff\xff\x48\x00\x00\x00\x00\x41\x0e\x20\x9d\x04\x9e\x03\x42\x93\x02\x4e\xde\xdd\xd3\x0e\x00\x00\x00\x00\x10\x00\x00\x00\x78\x00\x00\x00\x74\xfe\xff\xff\x04\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x01\x7a\x52\x00\x01\x7c\x1e\x01\x1b\x0c\x1f\x00\x10\x00\x00\x00\x18\x00\x00\x00\x50\xfe\xff\xff\x14\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x2c\x00\x00\x00\x50\xfe\xff\xff\x14\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x40\x00\x00\x00\x50\xfe\xff\xff\x14\x00\x00\x00\x00\x00\x00\x00\x24\x00\x00\x00\x54\x00\x00\x00\x50\xfe\xff\xff\x60\x00\x00\x00\x00\x44\x0e\x30\x48\x0c\x1d\x10\x9e\x02\x9d\x04\x02\x48\x0c\x1f\x30\x48\x0e\x00\xde\xdd\x00\x00\x00\x00\x00\x00"), -Section(".fini_array", 0x10DD0, "\x00\x07\x00\x00\x00\x00\x00\x00"), -Section(".dynamic", 0x10DD8, "\x01\x00\x00\x00\x00\x00\x00\x00\x28\x00\x00\x00\x00\x00\x00\x00\x0c\x00\x00\x00\x00\x00\x00\x00\xc8\x05\x00\x00\x00\x00\x00\x00\x0d\x00\x00\x00\x00\x00\x00\x00\xf0\x07\x00\x00\x00\x00\x00\x00\x19\x00\x00\x00\x00\x00\x00\x00\xc8\x0d\x01\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x1a\x00\x00\x00\x00\x00\x00\x00\xd0\x0d\x01\x00\x00\x00\x00\x00\x1c\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\xf5\xfe\xff\x6f\x00\x00\x00\x00\x98\x02\x00\x00\x00\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x90\x03\x00\x00\x00\x00\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\xb8\x02\x00\x00\x00\x00\x00\x00\x0a\x00\x00\x00\x00\x00\x00\x00\x8d\x00\x00\x00\x00\x00\x00\x00\x0b\x00\x00\x00\x00\x00\x00\x00\x18\x00\x00\x00\x00\x00\x00\x00\x15\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\xe8\x0f\x01\x00\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x60\x00\x00\x00\x00\x00\x00\x00\x14\x00\x00\x00\x00\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x17\x00\x00\x00\x00\x00\x00\x00\x68\x05\x00\x00\x00\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x60\x04\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x08\x01\x00\x00\x00\x00\x00\x00\x09\x00\x00\x00\x00\x00\x00\x00\x18\x00\x00\x00\x00\x00\x00\x00\xfb\xff\xff\x6f\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\xfe\xff\xff\x6f\x00\x00\x00\x00\x30\x04\x00\x00\x00\x00\x00\x00\xff\xff\xff\x6f\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\xf0\xff\xff\x6f\x00\x00\x00\x00\x1e\x04\x00\x00\x00\x00\x00\x00\xf9\xff\xff\x6f\x00\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".got", 0x10FB8, "\xd8\x0d\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x90\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".got.plt", 0x10FE8, "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe0\x05\x00\x00\x00\x00\x00\x00\xe0\x05\x00\x00\x00\x00\x00\x00\xe0\x05\x00\x00\x00\x00\x00\x00\xe0\x05\x00\x00\x00\x00\x00\x00"), -Section(".data", 0x11020, "\x00\x00\x00\x00\x00\x00\x00\x00\x28\x10\x01\x00\x00\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x54\x07\x00\x00\x00\x00\x00\x00\x68\x07\x00\x00\x00\x00\x00\x00\x7c\x07\x00\x00\x00\x00\x00\x00"), -Section(".init_array", 0x10DC8, "\x50\x07\x00\x00\x00\x00\x00\x00")]), -Memmap([Annotation(Region(0x0,0x963), Attr("segment","02 0 2404")), -Annotation(Region(0x640,0x673), Attr("symbol","\"_start\"")), -Annotation(Region(0x0,0x102), Attr("section","\".shstrtab\"")), -Annotation(Region(0x0,0x25A), Attr("section","\".strtab\"")), -Annotation(Region(0x0,0x8CF), Attr("section","\".symtab\"")), -Annotation(Region(0x0,0x46), Attr("section","\".comment\"")), -Annotation(Region(0x238,0x252), Attr("section","\".interp\"")), -Annotation(Region(0x254,0x277), Attr("section","\".note.gnu.build-id\"")), -Annotation(Region(0x278,0x297), Attr("section","\".note.ABI-tag\"")), -Annotation(Region(0x298,0x2B3), Attr("section","\".gnu.hash\"")), -Annotation(Region(0x2B8,0x38F), Attr("section","\".dynsym\"")), -Annotation(Region(0x390,0x41C), Attr("section","\".dynstr\"")), -Annotation(Region(0x41E,0x42F), Attr("section","\".gnu.version\"")), -Annotation(Region(0x430,0x45F), Attr("section","\".gnu.version_r\"")), -Annotation(Region(0x460,0x567), Attr("section","\".rela.dyn\"")), -Annotation(Region(0x568,0x5C7), Attr("section","\".rela.plt\"")), -Annotation(Region(0x5C8,0x5DF), Attr("section","\".init\"")), -Annotation(Region(0x5E0,0x63F), Attr("section","\".plt\"")), -Annotation(Region(0x5C8,0x5DF), Attr("code-region","()")), -Annotation(Region(0x5E0,0x63F), Attr("code-region","()")), -Annotation(Region(0x640,0x673), Attr("symbol-info","_start 0x640 52")), -Annotation(Region(0x674,0x687), Attr("symbol","\"call_weak_fn\"")), -Annotation(Region(0x674,0x687), Attr("symbol-info","call_weak_fn 0x674 20")), -Annotation(Region(0x754,0x767), Attr("symbol","\"add_two\"")), -Annotation(Region(0x754,0x767), Attr("symbol-info","add_two 0x754 20")), -Annotation(Region(0x768,0x77B), Attr("symbol","\"add_six\"")), -Annotation(Region(0x768,0x77B), Attr("symbol-info","add_six 0x768 20")), -Annotation(Region(0x77C,0x78F), Attr("symbol","\"sub_seven\"")), -Annotation(Region(0x640,0x7EF), Attr("section","\".text\"")), -Annotation(Region(0x640,0x7EF), Attr("code-region","()")), -Annotation(Region(0x77C,0x78F), Attr("symbol-info","sub_seven 0x77C 20")), -Annotation(Region(0x790,0x7EF), Attr("symbol","\"main\"")), -Annotation(Region(0x790,0x7EF), Attr("symbol-info","main 0x790 96")), -Annotation(Region(0x7F0,0x803), Attr("section","\".fini\"")), -Annotation(Region(0x7F0,0x803), Attr("code-region","()")), -Annotation(Region(0x804,0x807), Attr("section","\".rodata\"")), -Annotation(Region(0x808,0x85B), Attr("section","\".eh_frame_hdr\"")), -Annotation(Region(0x860,0x963), Attr("section","\".eh_frame\"")), -Annotation(Region(0x10DC8,0x1104F), Attr("segment","03 0x10DC8 656")), -Annotation(Region(0x10DD0,0x10DD7), Attr("section","\".fini_array\"")), -Annotation(Region(0x10DD8,0x10FB7), Attr("section","\".dynamic\"")), -Annotation(Region(0x10FB8,0x10FE7), Attr("section","\".got\"")), -Annotation(Region(0x10FE8,0x1101F), Attr("section","\".got.plt\"")), -Annotation(Region(0x11020,0x1104F), Attr("section","\".data\"")), -Annotation(Region(0x10DC8,0x10DCF), Attr("section","\".init_array\""))]), -Program(Tid(1_897, "%00000769"), Attrs([]), - Subs([Sub(Tid(1_841, "@__cxa_finalize"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x610"), -Attr("stub","()")]), "__cxa_finalize", Args([Arg(Tid(1_898, "%0000076a"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("__cxa_finalize_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(1_191, "@__cxa_finalize"), - Attrs([Attr("address","0x610")]), Phis([]), -Defs([Def(Tid(1_439, "%0000059f"), Attrs([Attr("address","0x610"), -Attr("insn","adrp x16, #69632")]), Var("R16",Imm(64)), Int(69632,64)), -Def(Tid(1_446, "%000005a6"), Attrs([Attr("address","0x614"), -Attr("insn","ldr x17, [x16, #0x8]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(1_452, "%000005ac"), Attrs([Attr("address","0x618"), -Attr("insn","add x16, x16, #0x8")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(8,64)))]), Jmps([Call(Tid(1_457, "%000005b1"), - Attrs([Attr("address","0x61C"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), -Sub(Tid(1_842, "@__do_global_dtors_aux"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x700")]), - "__do_global_dtors_aux", Args([Arg(Tid(1_899, "%0000076b"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("__do_global_dtors_aux_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(746, "@__do_global_dtors_aux"), - Attrs([Attr("address","0x700")]), Phis([]), Defs([Def(Tid(750, "%000002ee"), - Attrs([Attr("address","0x700"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("#3",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(18446744073709551584,64))), -Def(Tid(756, "%000002f4"), Attrs([Attr("address","0x700"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("#3",Imm(64)),Var("R29",Imm(64)),LittleEndian(),64)), -Def(Tid(762, "%000002fa"), Attrs([Attr("address","0x700"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("#3",Imm(64)),Int(8,64)),Var("R30",Imm(64)),LittleEndian(),64)), -Def(Tid(766, "%000002fe"), Attrs([Attr("address","0x700"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("R31",Imm(64)), -Var("#3",Imm(64))), Def(Tid(772, "%00000304"), - Attrs([Attr("address","0x704"), Attr("insn","mov x29, sp")]), - Var("R29",Imm(64)), Var("R31",Imm(64))), Def(Tid(780, "%0000030c"), - Attrs([Attr("address","0x708"), Attr("insn","str x19, [sp, #0x10]")]), - Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(16,64)),Var("R19",Imm(64)),LittleEndian(),64)), -Def(Tid(785, "%00000311"), Attrs([Attr("address","0x70C"), -Attr("insn","adrp x19, #69632")]), Var("R19",Imm(64)), Int(69632,64)), -Def(Tid(792, "%00000318"), Attrs([Attr("address","0x710"), -Attr("insn","ldrb w0, [x19, #0x50]")]), Var("R0",Imm(64)), -UNSIGNED(64,Load(Var("mem",Mem(64,8)),PLUS(Var("R19",Imm(64)),Int(80,64)),LittleEndian(),8)))]), -Jmps([Goto(Tid(799, "%0000031f"), Attrs([Attr("address","0x714"), -Attr("insn","cbnz w0, #0x28")]), - NEQ(Extract(31,0,Var("R0",Imm(64))),Int(0,32)), -Direct(Tid(797, "%0000031d"))), Goto(Tid(1_887, "%0000075f"), Attrs([]), - Int(1,1), Direct(Tid(1_136, "%00000470")))])), Blk(Tid(1_136, "%00000470"), - Attrs([Attr("address","0x718")]), Phis([]), -Defs([Def(Tid(1_139, "%00000473"), Attrs([Attr("address","0x718"), -Attr("insn","adrp x0, #65536")]), Var("R0",Imm(64)), Int(65536,64)), -Def(Tid(1_146, "%0000047a"), Attrs([Attr("address","0x71C"), -Attr("insn","ldr x0, [x0, #0xfc8]")]), Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(4040,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(1_152, "%00000480"), Attrs([Attr("address","0x720"), -Attr("insn","cbz x0, #0x10")]), EQ(Var("R0",Imm(64)),Int(0,64)), -Direct(Tid(1_150, "%0000047e"))), Goto(Tid(1_888, "%00000760"), Attrs([]), - Int(1,1), Direct(Tid(1_175, "%00000497")))])), Blk(Tid(1_175, "%00000497"), - Attrs([Attr("address","0x724")]), Phis([]), -Defs([Def(Tid(1_178, "%0000049a"), Attrs([Attr("address","0x724"), -Attr("insn","adrp x0, #69632")]), Var("R0",Imm(64)), Int(69632,64)), -Def(Tid(1_185, "%000004a1"), Attrs([Attr("address","0x728"), -Attr("insn","ldr x0, [x0, #0x28]")]), Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(40,64)),LittleEndian(),64)), -Def(Tid(1_190, "%000004a6"), Attrs([Attr("address","0x72C"), -Attr("insn","bl #-0x11c")]), Var("R30",Imm(64)), Int(1840,64))]), -Jmps([Call(Tid(1_193, "%000004a9"), Attrs([Attr("address","0x72C"), -Attr("insn","bl #-0x11c")]), Int(1,1), -(Direct(Tid(1_841, "@__cxa_finalize")),Direct(Tid(1_150, "%0000047e"))))])), -Blk(Tid(1_150, "%0000047e"), Attrs([Attr("address","0x730")]), Phis([]), -Defs([Def(Tid(1_158, "%00000486"), Attrs([Attr("address","0x730"), -Attr("insn","bl #-0xa0")]), Var("R30",Imm(64)), Int(1844,64))]), -Jmps([Call(Tid(1_160, "%00000488"), Attrs([Attr("address","0x730"), -Attr("insn","bl #-0xa0")]), Int(1,1), -(Direct(Tid(1_857, "@deregister_tm_clones")),Direct(Tid(1_162, "%0000048a"))))])), -Blk(Tid(1_162, "%0000048a"), Attrs([Attr("address","0x734")]), Phis([]), -Defs([Def(Tid(1_165, "%0000048d"), Attrs([Attr("address","0x734"), -Attr("insn","mov w0, #0x1")]), Var("R0",Imm(64)), Int(1,64)), -Def(Tid(1_173, "%00000495"), Attrs([Attr("address","0x738"), -Attr("insn","strb w0, [x19, #0x50]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R19",Imm(64)),Int(80,64)),Extract(7,0,Var("R0",Imm(64))),LittleEndian(),8))]), -Jmps([Goto(Tid(1_889, "%00000761"), Attrs([]), Int(1,1), -Direct(Tid(797, "%0000031d")))])), Blk(Tid(797, "%0000031d"), - Attrs([Attr("address","0x73C")]), Phis([]), Defs([Def(Tid(807, "%00000327"), - Attrs([Attr("address","0x73C"), Attr("insn","ldr x19, [sp, #0x10]")]), - Var("R19",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(16,64)),LittleEndian(),64)), -Def(Tid(814, "%0000032e"), Attrs([Attr("address","0x740"), -Attr("insn","ldp x29, x30, [sp], #0x20")]), Var("R29",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(819, "%00000333"), Attrs([Attr("address","0x740"), -Attr("insn","ldp x29, x30, [sp], #0x20")]), Var("R30",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(823, "%00000337"), Attrs([Attr("address","0x740"), -Attr("insn","ldp x29, x30, [sp], #0x20")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(32,64)))]), Jmps([Call(Tid(828, "%0000033c"), - Attrs([Attr("address","0x744"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), Sub(Tid(1_846, "@__libc_start_main"), - Attrs([Attr("c.proto","signed (*)(signed (*)(signed , char** , char** );* main, signed , char** , \nvoid* auxv)"), -Attr("address","0x600"), Attr("stub","()")]), "__libc_start_main", - Args([Arg(Tid(1_900, "%0000076c"), - Attrs([Attr("c.layout","**[ : 64]"), -Attr("c.data","Top:u64 ptr ptr"), -Attr("c.type","signed (*)(signed , char** , char** );*")]), - Var("__libc_start_main_main",Imm(64)), Var("R0",Imm(64)), In()), -Arg(Tid(1_901, "%0000076d"), Attrs([Attr("c.layout","[signed : 32]"), -Attr("c.data","Top:u32"), Attr("c.type","signed")]), - Var("__libc_start_main_arg2",Imm(32)), LOW(32,Var("R1",Imm(64))), In()), -Arg(Tid(1_902, "%0000076e"), Attrs([Attr("c.layout","**[char : 8]"), -Attr("c.data","Top:u8 ptr ptr"), Attr("c.type","char**")]), - Var("__libc_start_main_arg3",Imm(64)), Var("R2",Imm(64)), Both()), -Arg(Tid(1_903, "%0000076f"), Attrs([Attr("c.layout","*[ : 8]"), -Attr("c.data","{} ptr"), Attr("c.type","void*")]), - Var("__libc_start_main_auxv",Imm(64)), Var("R3",Imm(64)), Both()), -Arg(Tid(1_904, "%00000770"), Attrs([Attr("c.layout","[signed : 32]"), -Attr("c.data","Top:u32"), Attr("c.type","signed")]), - Var("__libc_start_main_result",Imm(32)), LOW(32,Var("R0",Imm(64))), -Out())]), Blks([Blk(Tid(579, "@__libc_start_main"), - Attrs([Attr("address","0x600")]), Phis([]), -Defs([Def(Tid(1_417, "%00000589"), Attrs([Attr("address","0x600"), -Attr("insn","adrp x16, #69632")]), Var("R16",Imm(64)), Int(69632,64)), -Def(Tid(1_424, "%00000590"), Attrs([Attr("address","0x604"), -Attr("insn","ldr x17, [x16]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R16",Imm(64)),LittleEndian(),64)), -Def(Tid(1_430, "%00000596"), Attrs([Attr("address","0x608"), -Attr("insn","add x16, x16, #0x0")]), Var("R16",Imm(64)), -Var("R16",Imm(64)))]), Jmps([Call(Tid(1_435, "%0000059b"), - Attrs([Attr("address","0x60C"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), Sub(Tid(1_847, "@_fini"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x7F0")]), - "_fini", Args([Arg(Tid(1_905, "%00000771"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("_fini_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(31, "@_fini"), - Attrs([Attr("address","0x7F0")]), Phis([]), Defs([Def(Tid(37, "%00000025"), - Attrs([Attr("address","0x7F4"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("#0",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(18446744073709551600,64))), -Def(Tid(43, "%0000002b"), Attrs([Attr("address","0x7F4"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("#0",Imm(64)),Var("R29",Imm(64)),LittleEndian(),64)), -Def(Tid(49, "%00000031"), Attrs([Attr("address","0x7F4"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("#0",Imm(64)),Int(8,64)),Var("R30",Imm(64)),LittleEndian(),64)), -Def(Tid(53, "%00000035"), Attrs([Attr("address","0x7F4"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("R31",Imm(64)), -Var("#0",Imm(64))), Def(Tid(59, "%0000003b"), Attrs([Attr("address","0x7F8"), -Attr("insn","mov x29, sp")]), Var("R29",Imm(64)), Var("R31",Imm(64))), -Def(Tid(66, "%00000042"), Attrs([Attr("address","0x7FC"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R29",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(71, "%00000047"), Attrs([Attr("address","0x7FC"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R30",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(75, "%0000004b"), Attrs([Attr("address","0x7FC"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(16,64)))]), Jmps([Call(Tid(80, "%00000050"), - Attrs([Attr("address","0x800"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), Sub(Tid(1_848, "@_init"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x5C8")]), - "_init", Args([Arg(Tid(1_906, "%00000772"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("_init_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(1_644, "@_init"), - Attrs([Attr("address","0x5C8")]), Phis([]), -Defs([Def(Tid(1_650, "%00000672"), Attrs([Attr("address","0x5CC"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("#8",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(18446744073709551600,64))), -Def(Tid(1_656, "%00000678"), Attrs([Attr("address","0x5CC"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("#8",Imm(64)),Var("R29",Imm(64)),LittleEndian(),64)), -Def(Tid(1_662, "%0000067e"), Attrs([Attr("address","0x5CC"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("#8",Imm(64)),Int(8,64)),Var("R30",Imm(64)),LittleEndian(),64)), -Def(Tid(1_666, "%00000682"), Attrs([Attr("address","0x5CC"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("R31",Imm(64)), -Var("#8",Imm(64))), Def(Tid(1_672, "%00000688"), - Attrs([Attr("address","0x5D0"), Attr("insn","mov x29, sp")]), - Var("R29",Imm(64)), Var("R31",Imm(64))), Def(Tid(1_677, "%0000068d"), - Attrs([Attr("address","0x5D4"), Attr("insn","bl #0xa0")]), - Var("R30",Imm(64)), Int(1496,64))]), Jmps([Call(Tid(1_679, "%0000068f"), - Attrs([Attr("address","0x5D4"), Attr("insn","bl #0xa0")]), Int(1,1), -(Direct(Tid(1_855, "@call_weak_fn")),Direct(Tid(1_681, "%00000691"))))])), -Blk(Tid(1_681, "%00000691"), Attrs([Attr("address","0x5D8")]), Phis([]), -Defs([Def(Tid(1_686, "%00000696"), Attrs([Attr("address","0x5D8"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R29",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(1_691, "%0000069b"), Attrs([Attr("address","0x5D8"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R30",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(1_695, "%0000069f"), Attrs([Attr("address","0x5D8"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(16,64)))]), Jmps([Call(Tid(1_700, "%000006a4"), - Attrs([Attr("address","0x5DC"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), Sub(Tid(1_849, "@_start"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x640"), -Attr("stub","()"), Attr("entry-point","()")]), "_start", - Args([Arg(Tid(1_907, "%00000773"), Attrs([Attr("c.layout","[signed : 32]"), -Attr("c.data","Top:u32"), Attr("c.type","signed")]), - Var("_start_result",Imm(32)), LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(516, "@_start"), Attrs([Attr("address","0x640")]), Phis([]), -Defs([Def(Tid(521, "%00000209"), Attrs([Attr("address","0x644"), -Attr("insn","mov x29, #0x0")]), Var("R29",Imm(64)), Int(0,64)), -Def(Tid(526, "%0000020e"), Attrs([Attr("address","0x648"), -Attr("insn","mov x30, #0x0")]), Var("R30",Imm(64)), Int(0,64)), -Def(Tid(532, "%00000214"), Attrs([Attr("address","0x64C"), -Attr("insn","mov x5, x0")]), Var("R5",Imm(64)), Var("R0",Imm(64))), -Def(Tid(539, "%0000021b"), Attrs([Attr("address","0x650"), -Attr("insn","ldr x1, [sp]")]), Var("R1",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(545, "%00000221"), Attrs([Attr("address","0x654"), -Attr("insn","add x2, sp, #0x8")]), Var("R2",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(8,64))), Def(Tid(551, "%00000227"), - Attrs([Attr("address","0x658"), Attr("insn","mov x6, sp")]), - Var("R6",Imm(64)), Var("R31",Imm(64))), Def(Tid(556, "%0000022c"), - Attrs([Attr("address","0x65C"), Attr("insn","adrp x0, #65536")]), - Var("R0",Imm(64)), Int(65536,64)), Def(Tid(563, "%00000233"), - Attrs([Attr("address","0x660"), Attr("insn","ldr x0, [x0, #0xfd8]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(4056,64)),LittleEndian(),64)), -Def(Tid(568, "%00000238"), Attrs([Attr("address","0x664"), -Attr("insn","mov x3, #0x0")]), Var("R3",Imm(64)), Int(0,64)), -Def(Tid(573, "%0000023d"), Attrs([Attr("address","0x668"), -Attr("insn","mov x4, #0x0")]), Var("R4",Imm(64)), Int(0,64)), -Def(Tid(578, "%00000242"), Attrs([Attr("address","0x66C"), -Attr("insn","bl #-0x6c")]), Var("R30",Imm(64)), Int(1648,64))]), -Jmps([Call(Tid(581, "%00000245"), Attrs([Attr("address","0x66C"), -Attr("insn","bl #-0x6c")]), Int(1,1), -(Direct(Tid(1_846, "@__libc_start_main")),Direct(Tid(583, "%00000247"))))])), -Blk(Tid(583, "%00000247"), Attrs([Attr("address","0x670")]), Phis([]), -Defs([Def(Tid(586, "%0000024a"), Attrs([Attr("address","0x670"), -Attr("insn","bl #-0x40")]), Var("R30",Imm(64)), Int(1652,64))]), -Jmps([Call(Tid(589, "%0000024d"), Attrs([Attr("address","0x670"), -Attr("insn","bl #-0x40")]), Int(1,1), -(Direct(Tid(1_852, "@abort")),Direct(Tid(1_890, "%00000762"))))])), -Blk(Tid(1_890, "%00000762"), Attrs([]), Phis([]), Defs([]), -Jmps([Call(Tid(1_891, "%00000763"), Attrs([]), Int(1,1), -(Direct(Tid(1_855, "@call_weak_fn")),))]))])), Sub(Tid(1_852, "@abort"), - Attrs([Attr("noreturn","()"), Attr("c.proto","void (*)(void)"), -Attr("address","0x630"), Attr("stub","()")]), "abort", Args([]), -Blks([Blk(Tid(587, "@abort"), Attrs([Attr("address","0x630")]), Phis([]), -Defs([Def(Tid(1_483, "%000005cb"), Attrs([Attr("address","0x630"), -Attr("insn","adrp x16, #69632")]), Var("R16",Imm(64)), Int(69632,64)), -Def(Tid(1_490, "%000005d2"), Attrs([Attr("address","0x634"), -Attr("insn","ldr x17, [x16, #0x18]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(24,64)),LittleEndian(),64)), -Def(Tid(1_496, "%000005d8"), Attrs([Attr("address","0x638"), -Attr("insn","add x16, x16, #0x18")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(24,64)))]), Jmps([Call(Tid(1_501, "%000005dd"), - Attrs([Attr("address","0x63C"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), Sub(Tid(1_853, "@add_six"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x768")]), - "add_six", Args([Arg(Tid(1_908, "%00000774"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("add_six_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(869, "@add_six"), - Attrs([Attr("address","0x768")]), Phis([]), Defs([Def(Tid(872, "%00000368"), - Attrs([Attr("address","0x768"), Attr("insn","adrp x9, #69632")]), - Var("R9",Imm(64)), Int(69632,64)), Def(Tid(879, "%0000036f"), - Attrs([Attr("address","0x76C"), Attr("insn","ldr w8, [x9, #0x30]")]), - Var("R8",Imm(64)), -UNSIGNED(64,Load(Var("mem",Mem(64,8)),PLUS(Var("R9",Imm(64)),Int(48,64)),LittleEndian(),32))), -Def(Tid(885, "%00000375"), Attrs([Attr("address","0x770"), -Attr("insn","add w8, w8, #0x6")]), Var("R8",Imm(64)), -UNSIGNED(64,PLUS(Extract(31,0,Var("R8",Imm(64))),Int(6,32)))), -Def(Tid(893, "%0000037d"), Attrs([Attr("address","0x774"), -Attr("insn","str w8, [x9, #0x30]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R9",Imm(64)),Int(48,64)),Extract(31,0,Var("R8",Imm(64))),LittleEndian(),32))]), -Jmps([Call(Tid(898, "%00000382"), Attrs([Attr("address","0x778"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))]))])), -Sub(Tid(1_854, "@add_two"), Attrs([Attr("c.proto","signed (*)(void)"), -Attr("address","0x754")]), "add_two", Args([Arg(Tid(1_909, "%00000775"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("add_two_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(838, "@add_two"), - Attrs([Attr("address","0x754")]), Phis([]), Defs([Def(Tid(841, "%00000349"), - Attrs([Attr("address","0x754"), Attr("insn","adrp x9, #69632")]), - Var("R9",Imm(64)), Int(69632,64)), Def(Tid(848, "%00000350"), - Attrs([Attr("address","0x758"), Attr("insn","ldr w8, [x9, #0x30]")]), - Var("R8",Imm(64)), -UNSIGNED(64,Load(Var("mem",Mem(64,8)),PLUS(Var("R9",Imm(64)),Int(48,64)),LittleEndian(),32))), -Def(Tid(854, "%00000356"), Attrs([Attr("address","0x75C"), -Attr("insn","add w8, w8, #0x2")]), Var("R8",Imm(64)), -UNSIGNED(64,PLUS(Extract(31,0,Var("R8",Imm(64))),Int(2,32)))), -Def(Tid(862, "%0000035e"), Attrs([Attr("address","0x760"), -Attr("insn","str w8, [x9, #0x30]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R9",Imm(64)),Int(48,64)),Extract(31,0,Var("R8",Imm(64))),LittleEndian(),32))]), -Jmps([Call(Tid(867, "%00000363"), Attrs([Attr("address","0x764"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))]))])), -Sub(Tid(1_855, "@call_weak_fn"), Attrs([Attr("c.proto","signed (*)(void)"), -Attr("address","0x674")]), "call_weak_fn", Args([Arg(Tid(1_910, "%00000776"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("call_weak_fn_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(591, "@call_weak_fn"), - Attrs([Attr("address","0x674")]), Phis([]), Defs([Def(Tid(594, "%00000252"), - Attrs([Attr("address","0x674"), Attr("insn","adrp x0, #65536")]), - Var("R0",Imm(64)), Int(65536,64)), Def(Tid(601, "%00000259"), - Attrs([Attr("address","0x678"), Attr("insn","ldr x0, [x0, #0xfd0]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(4048,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(607, "%0000025f"), Attrs([Attr("address","0x67C"), -Attr("insn","cbz x0, #0x8")]), EQ(Var("R0",Imm(64)),Int(0,64)), -Direct(Tid(605, "%0000025d"))), Goto(Tid(1_892, "%00000764"), Attrs([]), - Int(1,1), Direct(Tid(1_255, "%000004e7")))])), Blk(Tid(605, "%0000025d"), - Attrs([Attr("address","0x684")]), Phis([]), Defs([]), -Jmps([Call(Tid(613, "%00000265"), Attrs([Attr("address","0x684"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))])), -Blk(Tid(1_255, "%000004e7"), Attrs([Attr("address","0x680")]), Phis([]), -Defs([]), Jmps([Goto(Tid(1_258, "%000004ea"), Attrs([Attr("address","0x680"), -Attr("insn","b #-0x60")]), Int(1,1), -Direct(Tid(1_256, "@__gmon_start__")))])), Blk(Tid(1_256, "@__gmon_start__"), - Attrs([Attr("address","0x620")]), Phis([]), -Defs([Def(Tid(1_461, "%000005b5"), Attrs([Attr("address","0x620"), -Attr("insn","adrp x16, #69632")]), Var("R16",Imm(64)), Int(69632,64)), -Def(Tid(1_468, "%000005bc"), Attrs([Attr("address","0x624"), -Attr("insn","ldr x17, [x16, #0x10]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(16,64)),LittleEndian(),64)), -Def(Tid(1_474, "%000005c2"), Attrs([Attr("address","0x628"), -Attr("insn","add x16, x16, #0x10")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(16,64)))]), Jmps([Call(Tid(1_479, "%000005c7"), - Attrs([Attr("address","0x62C"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), -Sub(Tid(1_857, "@deregister_tm_clones"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x690")]), - "deregister_tm_clones", Args([Arg(Tid(1_911, "%00000777"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("deregister_tm_clones_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(619, "@deregister_tm_clones"), - Attrs([Attr("address","0x690")]), Phis([]), Defs([Def(Tid(622, "%0000026e"), - Attrs([Attr("address","0x690"), Attr("insn","adrp x0, #69632")]), - Var("R0",Imm(64)), Int(69632,64)), Def(Tid(628, "%00000274"), - Attrs([Attr("address","0x694"), Attr("insn","add x0, x0, #0x50")]), - Var("R0",Imm(64)), PLUS(Var("R0",Imm(64)),Int(80,64))), -Def(Tid(633, "%00000279"), Attrs([Attr("address","0x698"), -Attr("insn","adrp x1, #69632")]), Var("R1",Imm(64)), Int(69632,64)), -Def(Tid(639, "%0000027f"), Attrs([Attr("address","0x69C"), -Attr("insn","add x1, x1, #0x50")]), Var("R1",Imm(64)), -PLUS(Var("R1",Imm(64)),Int(80,64))), Def(Tid(645, "%00000285"), - Attrs([Attr("address","0x6A0"), Attr("insn","cmp x1, x0")]), - Var("#1",Imm(64)), NOT(Var("R0",Imm(64)))), Def(Tid(650, "%0000028a"), - Attrs([Attr("address","0x6A0"), Attr("insn","cmp x1, x0")]), - Var("#2",Imm(64)), PLUS(Var("R1",Imm(64)),NOT(Var("R0",Imm(64))))), -Def(Tid(656, "%00000290"), Attrs([Attr("address","0x6A0"), -Attr("insn","cmp x1, x0")]), Var("VF",Imm(1)), -NEQ(SIGNED(65,PLUS(Var("#2",Imm(64)),Int(1,64))),PLUS(PLUS(SIGNED(65,Var("R1",Imm(64))),SIGNED(65,Var("#1",Imm(64)))),Int(1,65)))), -Def(Tid(662, "%00000296"), Attrs([Attr("address","0x6A0"), -Attr("insn","cmp x1, x0")]), Var("CF",Imm(1)), -NEQ(UNSIGNED(65,PLUS(Var("#2",Imm(64)),Int(1,64))),PLUS(PLUS(UNSIGNED(65,Var("R1",Imm(64))),UNSIGNED(65,Var("#1",Imm(64)))),Int(1,65)))), -Def(Tid(666, "%0000029a"), Attrs([Attr("address","0x6A0"), -Attr("insn","cmp x1, x0")]), Var("ZF",Imm(1)), -EQ(PLUS(Var("#2",Imm(64)),Int(1,64)),Int(0,64))), Def(Tid(670, "%0000029e"), - Attrs([Attr("address","0x6A0"), Attr("insn","cmp x1, x0")]), - Var("NF",Imm(1)), Extract(63,63,PLUS(Var("#2",Imm(64)),Int(1,64))))]), -Jmps([Goto(Tid(676, "%000002a4"), Attrs([Attr("address","0x6A4"), -Attr("insn","b.eq #0x18")]), EQ(Var("ZF",Imm(1)),Int(1,1)), -Direct(Tid(674, "%000002a2"))), Goto(Tid(1_893, "%00000765"), Attrs([]), - Int(1,1), Direct(Tid(1_225, "%000004c9")))])), Blk(Tid(1_225, "%000004c9"), - Attrs([Attr("address","0x6A8")]), Phis([]), -Defs([Def(Tid(1_228, "%000004cc"), Attrs([Attr("address","0x6A8"), -Attr("insn","adrp x1, #65536")]), Var("R1",Imm(64)), Int(65536,64)), -Def(Tid(1_235, "%000004d3"), Attrs([Attr("address","0x6AC"), -Attr("insn","ldr x1, [x1, #0xfc0]")]), Var("R1",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R1",Imm(64)),Int(4032,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(1_240, "%000004d8"), Attrs([Attr("address","0x6B0"), -Attr("insn","cbz x1, #0xc")]), EQ(Var("R1",Imm(64)),Int(0,64)), -Direct(Tid(674, "%000002a2"))), Goto(Tid(1_894, "%00000766"), Attrs([]), - Int(1,1), Direct(Tid(1_244, "%000004dc")))])), Blk(Tid(674, "%000002a2"), - Attrs([Attr("address","0x6BC")]), Phis([]), Defs([]), -Jmps([Call(Tid(682, "%000002aa"), Attrs([Attr("address","0x6BC"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))])), -Blk(Tid(1_244, "%000004dc"), Attrs([Attr("address","0x6B4")]), Phis([]), -Defs([Def(Tid(1_248, "%000004e0"), Attrs([Attr("address","0x6B4"), -Attr("insn","mov x16, x1")]), Var("R16",Imm(64)), Var("R1",Imm(64)))]), -Jmps([Call(Tid(1_253, "%000004e5"), Attrs([Attr("address","0x6B8"), -Attr("insn","br x16")]), Int(1,1), (Indirect(Var("R16",Imm(64))),))]))])), -Sub(Tid(1_860, "@frame_dummy"), Attrs([Attr("c.proto","signed (*)(void)"), -Attr("address","0x750")]), "frame_dummy", Args([Arg(Tid(1_912, "%00000778"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("frame_dummy_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(834, "@frame_dummy"), - Attrs([Attr("address","0x750")]), Phis([]), Defs([]), -Jmps([Call(Tid(836, "%00000344"), Attrs([Attr("address","0x750"), -Attr("insn","b #-0x90")]), Int(1,1), -(Direct(Tid(1_862, "@register_tm_clones")),))]))])), Sub(Tid(1_861, "@main"), - Attrs([Attr("c.proto","signed (*)(signed argc, const char** argv)"), -Attr("address","0x790")]), "main", Args([Arg(Tid(1_913, "%00000779"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("main_argc",Imm(32)), -LOW(32,Var("R0",Imm(64))), In()), Arg(Tid(1_914, "%0000077a"), - Attrs([Attr("c.layout","**[char : 8]"), Attr("c.data","Top:u8 ptr ptr"), -Attr("c.type"," const char**")]), Var("main_argv",Imm(64)), -Var("R1",Imm(64)), Both()), Arg(Tid(1_915, "%0000077b"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("main_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(953, "@main"), - Attrs([Attr("address","0x790")]), Phis([]), Defs([Def(Tid(957, "%000003bd"), - Attrs([Attr("address","0x790"), Attr("insn","sub sp, sp, #0x30")]), - Var("R31",Imm(64)), PLUS(Var("R31",Imm(64)),Int(18446744073709551568,64))), -Def(Tid(963, "%000003c3"), Attrs([Attr("address","0x794"), -Attr("insn","stp x29, x30, [sp, #0x20]")]), Var("#5",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(32,64))), Def(Tid(969, "%000003c9"), - Attrs([Attr("address","0x794"), Attr("insn","stp x29, x30, [sp, #0x20]")]), - Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("#5",Imm(64)),Var("R29",Imm(64)),LittleEndian(),64)), -Def(Tid(975, "%000003cf"), Attrs([Attr("address","0x794"), -Attr("insn","stp x29, x30, [sp, #0x20]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("#5",Imm(64)),Int(8,64)),Var("R30",Imm(64)),LittleEndian(),64)), -Def(Tid(981, "%000003d5"), Attrs([Attr("address","0x798"), -Attr("insn","add x29, sp, #0x20")]), Var("R29",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(32,64))), Def(Tid(986, "%000003da"), - Attrs([Attr("address","0x79C"), Attr("insn","adrp x8, #69632")]), - Var("R8",Imm(64)), Int(69632,64)), Def(Tid(991, "%000003df"), - Attrs([Attr("address","0x7A0"), Attr("insn","adrp x9, #69632")]), - Var("R9",Imm(64)), Int(69632,64)), Def(Tid(997, "%000003e5"), - Attrs([Attr("address","0x7A4"), Attr("insn","add x9, x9, #0x38")]), - Var("R9",Imm(64)), PLUS(Var("R9",Imm(64)),Int(56,64))), -Def(Tid(1_005, "%000003ed"), Attrs([Attr("address","0x7A8"), -Attr("insn","str x9, [sp]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("R31",Imm(64)),Var("R9",Imm(64)),LittleEndian(),64)), -Def(Tid(1_010, "%000003f2"), Attrs([Attr("address","0x7AC"), -Attr("insn","mov w9, wzr")]), Var("R9",Imm(64)), Int(0,64)), -Def(Tid(1_018, "%000003fa"), Attrs([Attr("address","0x7B0"), -Attr("insn","str w9, [sp, #0xc]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(12,64)),Extract(31,0,Var("R9",Imm(64))),LittleEndian(),32)), -Def(Tid(1_025, "%00000401"), Attrs([Attr("address","0x7B4"), -Attr("insn","stur wzr, [x29, #-0x4]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R29",Imm(64)),Int(18446744073709551612,64)),Int(0,32),LittleEndian(),32)), -Def(Tid(1_033, "%00000409"), Attrs([Attr("address","0x7B8"), -Attr("insn","stur w0, [x29, #-0x8]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R29",Imm(64)),Int(18446744073709551608,64)),Extract(31,0,Var("R0",Imm(64))),LittleEndian(),32)), -Def(Tid(1_041, "%00000411"), Attrs([Attr("address","0x7BC"), -Attr("insn","str x1, [sp, #0x10]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(16,64)),Var("R1",Imm(64)),LittleEndian(),64)), -Def(Tid(1_048, "%00000418"), Attrs([Attr("address","0x7C0"), -Attr("insn","ldr x8, [x8, #0x38]")]), Var("R8",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R8",Imm(64)),Int(56,64)),LittleEndian(),64)), -Def(Tid(1_053, "%0000041d"), Attrs([Attr("address","0x7C4"), -Attr("insn","blr x8")]), Var("R30",Imm(64)), Int(1992,64))]), -Jmps([Call(Tid(1_056, "%00000420"), Attrs([Attr("address","0x7C4"), -Attr("insn","blr x8")]), Int(1,1), -(Indirect(Var("R8",Imm(64))),Direct(Tid(1_058, "%00000422"))))])), -Blk(Tid(1_058, "%00000422"), Attrs([Attr("address","0x7C8")]), Phis([]), -Defs([Def(Tid(1_063, "%00000427"), Attrs([Attr("address","0x7C8"), -Attr("insn","ldr x8, [sp]")]), Var("R8",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(1_070, "%0000042e"), Attrs([Attr("address","0x7CC"), -Attr("insn","ldr x8, [x8, #0x8]")]), Var("R8",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R8",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(1_075, "%00000433"), Attrs([Attr("address","0x7D0"), -Attr("insn","blr x8")]), Var("R30",Imm(64)), Int(2004,64))]), -Jmps([Call(Tid(1_078, "%00000436"), Attrs([Attr("address","0x7D0"), -Attr("insn","blr x8")]), Int(1,1), -(Indirect(Var("R8",Imm(64))),Direct(Tid(1_080, "%00000438"))))])), -Blk(Tid(1_080, "%00000438"), Attrs([Attr("address","0x7D4")]), Phis([]), -Defs([Def(Tid(1_085, "%0000043d"), Attrs([Attr("address","0x7D4"), -Attr("insn","ldr x8, [sp]")]), Var("R8",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(1_092, "%00000444"), Attrs([Attr("address","0x7D8"), -Attr("insn","ldr x8, [x8, #0x10]")]), Var("R8",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R8",Imm(64)),Int(16,64)),LittleEndian(),64)), -Def(Tid(1_097, "%00000449"), Attrs([Attr("address","0x7DC"), -Attr("insn","blr x8")]), Var("R30",Imm(64)), Int(2016,64))]), -Jmps([Call(Tid(1_100, "%0000044c"), Attrs([Attr("address","0x7DC"), -Attr("insn","blr x8")]), Int(1,1), -(Indirect(Var("R8",Imm(64))),Direct(Tid(1_102, "%0000044e"))))])), -Blk(Tid(1_102, "%0000044e"), Attrs([Attr("address","0x7E0")]), Phis([]), -Defs([Def(Tid(1_107, "%00000453"), Attrs([Attr("address","0x7E0"), -Attr("insn","ldr w0, [sp, #0xc]")]), Var("R0",Imm(64)), -UNSIGNED(64,Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(12,64)),LittleEndian(),32))), -Def(Tid(1_113, "%00000459"), Attrs([Attr("address","0x7E4"), -Attr("insn","ldp x29, x30, [sp, #0x20]")]), Var("#6",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(32,64))), Def(Tid(1_118, "%0000045e"), - Attrs([Attr("address","0x7E4"), Attr("insn","ldp x29, x30, [sp, #0x20]")]), - Var("R29",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("#6",Imm(64)),LittleEndian(),64)), -Def(Tid(1_123, "%00000463"), Attrs([Attr("address","0x7E4"), -Attr("insn","ldp x29, x30, [sp, #0x20]")]), Var("R30",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("#6",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(1_129, "%00000469"), Attrs([Attr("address","0x7E8"), -Attr("insn","add sp, sp, #0x30")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(48,64)))]), Jmps([Call(Tid(1_134, "%0000046e"), - Attrs([Attr("address","0x7EC"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), -Sub(Tid(1_862, "@register_tm_clones"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x6C0")]), - "register_tm_clones", Args([Arg(Tid(1_916, "%0000077c"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("register_tm_clones_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(684, "@register_tm_clones"), Attrs([Attr("address","0x6C0")]), - Phis([]), Defs([Def(Tid(687, "%000002af"), Attrs([Attr("address","0x6C0"), -Attr("insn","adrp x0, #69632")]), Var("R0",Imm(64)), Int(69632,64)), -Def(Tid(693, "%000002b5"), Attrs([Attr("address","0x6C4"), -Attr("insn","add x0, x0, #0x50")]), Var("R0",Imm(64)), -PLUS(Var("R0",Imm(64)),Int(80,64))), Def(Tid(698, "%000002ba"), - Attrs([Attr("address","0x6C8"), Attr("insn","adrp x1, #69632")]), - Var("R1",Imm(64)), Int(69632,64)), Def(Tid(704, "%000002c0"), - Attrs([Attr("address","0x6CC"), Attr("insn","add x1, x1, #0x50")]), - Var("R1",Imm(64)), PLUS(Var("R1",Imm(64)),Int(80,64))), -Def(Tid(711, "%000002c7"), Attrs([Attr("address","0x6D0"), -Attr("insn","sub x1, x1, x0")]), Var("R1",Imm(64)), -PLUS(PLUS(Var("R1",Imm(64)),NOT(Var("R0",Imm(64)))),Int(1,64))), -Def(Tid(717, "%000002cd"), Attrs([Attr("address","0x6D4"), -Attr("insn","lsr x2, x1, #63")]), Var("R2",Imm(64)), -Concat(Int(0,63),Extract(63,63,Var("R1",Imm(64))))), -Def(Tid(724, "%000002d4"), Attrs([Attr("address","0x6D8"), -Attr("insn","add x1, x2, x1, asr #3")]), Var("R1",Imm(64)), -PLUS(Var("R2",Imm(64)),ARSHIFT(Var("R1",Imm(64)),Int(3,3)))), -Def(Tid(730, "%000002da"), Attrs([Attr("address","0x6DC"), -Attr("insn","asr x1, x1, #1")]), Var("R1",Imm(64)), -SIGNED(64,Extract(63,1,Var("R1",Imm(64)))))]), -Jmps([Goto(Tid(736, "%000002e0"), Attrs([Attr("address","0x6E0"), -Attr("insn","cbz x1, #0x18")]), EQ(Var("R1",Imm(64)),Int(0,64)), -Direct(Tid(734, "%000002de"))), Goto(Tid(1_895, "%00000767"), Attrs([]), - Int(1,1), Direct(Tid(1_195, "%000004ab")))])), Blk(Tid(1_195, "%000004ab"), - Attrs([Attr("address","0x6E4")]), Phis([]), -Defs([Def(Tid(1_198, "%000004ae"), Attrs([Attr("address","0x6E4"), -Attr("insn","adrp x2, #65536")]), Var("R2",Imm(64)), Int(65536,64)), -Def(Tid(1_205, "%000004b5"), Attrs([Attr("address","0x6E8"), -Attr("insn","ldr x2, [x2, #0xfe0]")]), Var("R2",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R2",Imm(64)),Int(4064,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(1_210, "%000004ba"), Attrs([Attr("address","0x6EC"), -Attr("insn","cbz x2, #0xc")]), EQ(Var("R2",Imm(64)),Int(0,64)), -Direct(Tid(734, "%000002de"))), Goto(Tid(1_896, "%00000768"), Attrs([]), - Int(1,1), Direct(Tid(1_214, "%000004be")))])), Blk(Tid(734, "%000002de"), - Attrs([Attr("address","0x6F8")]), Phis([]), Defs([]), -Jmps([Call(Tid(742, "%000002e6"), Attrs([Attr("address","0x6F8"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))])), -Blk(Tid(1_214, "%000004be"), Attrs([Attr("address","0x6F0")]), Phis([]), -Defs([Def(Tid(1_218, "%000004c2"), Attrs([Attr("address","0x6F0"), -Attr("insn","mov x16, x2")]), Var("R16",Imm(64)), Var("R2",Imm(64)))]), -Jmps([Call(Tid(1_223, "%000004c7"), Attrs([Attr("address","0x6F4"), -Attr("insn","br x16")]), Int(1,1), (Indirect(Var("R16",Imm(64))),))]))])), -Sub(Tid(1_865, "@sub_seven"), Attrs([Attr("c.proto","signed (*)(void)"), -Attr("address","0x77C")]), "sub_seven", Args([Arg(Tid(1_917, "%0000077d"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("sub_seven_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(900, "@sub_seven"), - Attrs([Attr("address","0x77C")]), Phis([]), Defs([Def(Tid(903, "%00000387"), - Attrs([Attr("address","0x77C"), Attr("insn","adrp x9, #69632")]), - Var("R9",Imm(64)), Int(69632,64)), Def(Tid(910, "%0000038e"), - Attrs([Attr("address","0x780"), Attr("insn","ldr w8, [x9, #0x30]")]), - Var("R8",Imm(64)), -UNSIGNED(64,Load(Var("mem",Mem(64,8)),PLUS(Var("R9",Imm(64)),Int(48,64)),LittleEndian(),32))), -Def(Tid(916, "%00000394"), Attrs([Attr("address","0x784"), -Attr("insn","subs w8, w8, #0x7")]), Var("#4",Imm(32)), -PLUS(Extract(31,0,Var("R8",Imm(64))),Int(4294967288,32))), -Def(Tid(921, "%00000399"), Attrs([Attr("address","0x784"), -Attr("insn","subs w8, w8, #0x7")]), Var("VF",Imm(1)), -NEQ(SIGNED(33,PLUS(Var("#4",Imm(32)),Int(1,32))),PLUS(SIGNED(33,Extract(31,0,Var("R8",Imm(64)))),Int(8589934585,33)))), -Def(Tid(926, "%0000039e"), Attrs([Attr("address","0x784"), -Attr("insn","subs w8, w8, #0x7")]), Var("CF",Imm(1)), -NEQ(UNSIGNED(33,PLUS(Var("#4",Imm(32)),Int(1,32))),PLUS(UNSIGNED(33,Extract(31,0,Var("R8",Imm(64)))),Int(4294967289,33)))), -Def(Tid(930, "%000003a2"), Attrs([Attr("address","0x784"), -Attr("insn","subs w8, w8, #0x7")]), Var("ZF",Imm(1)), -EQ(PLUS(Var("#4",Imm(32)),Int(1,32)),Int(0,32))), Def(Tid(934, "%000003a6"), - Attrs([Attr("address","0x784"), Attr("insn","subs w8, w8, #0x7")]), - Var("NF",Imm(1)), Extract(31,31,PLUS(Var("#4",Imm(32)),Int(1,32)))), -Def(Tid(938, "%000003aa"), Attrs([Attr("address","0x784"), -Attr("insn","subs w8, w8, #0x7")]), Var("R8",Imm(64)), -UNSIGNED(64,PLUS(Var("#4",Imm(32)),Int(1,32)))), Def(Tid(946, "%000003b2"), - Attrs([Attr("address","0x788"), Attr("insn","str w8, [x9, #0x30]")]), - Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R9",Imm(64)),Int(48,64)),Extract(31,0,Var("R8",Imm(64))),LittleEndian(),32))]), -Jmps([Call(Tid(951, "%000003b7"), Attrs([Attr("address","0x78C"), -Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))]))]))) \ No newline at end of file diff --git a/src/test/indirect_calls/jumptable2/clang/jumptable2.bir b/src/test/indirect_calls/jumptable2/clang/jumptable2.bir deleted file mode 100644 index 9fedca180..000000000 --- a/src/test/indirect_calls/jumptable2/clang/jumptable2.bir +++ /dev/null @@ -1,294 +0,0 @@ -00000769: program -00000731: sub __cxa_finalize(__cxa_finalize_result) -0000076a: __cxa_finalize_result :: out u32 = low:32[R0] - -000004a7: -0000059f: R16 := 0x11000 -000005a6: R17 := mem[R16 + 8, el]:u64 -000005ac: R16 := R16 + 8 -000005b1: call R17 with noreturn - -00000732: sub __do_global_dtors_aux(__do_global_dtors_aux_result) -0000076b: __do_global_dtors_aux_result :: out u32 = low:32[R0] - -000002ea: -000002ee: #3 := R31 - 0x20 -000002f4: mem := mem with [#3, el]:u64 <- R29 -000002fa: mem := mem with [#3 + 8, el]:u64 <- R30 -000002fe: R31 := #3 -00000304: R29 := R31 -0000030c: mem := mem with [R31 + 0x10, el]:u64 <- R19 -00000311: R19 := 0x11000 -00000318: R0 := pad:64[mem[R19 + 0x50]] -0000031f: when 31:0[R0] <> 0 goto %0000031d -0000075f: goto %00000470 - -00000470: -00000473: R0 := 0x10000 -0000047a: R0 := mem[R0 + 0xFC8, el]:u64 -00000480: when R0 = 0 goto %0000047e -00000760: goto %00000497 - -00000497: -0000049a: R0 := 0x11000 -000004a1: R0 := mem[R0 + 0x28, el]:u64 -000004a6: R30 := 0x730 -000004a9: call @__cxa_finalize with return %0000047e - -0000047e: -00000486: R30 := 0x734 -00000488: call @deregister_tm_clones with return %0000048a - -0000048a: -0000048d: R0 := 1 -00000495: mem := mem with [R19 + 0x50] <- 7:0[R0] -00000761: goto %0000031d - -0000031d: -00000327: R19 := mem[R31 + 0x10, el]:u64 -0000032e: R29 := mem[R31, el]:u64 -00000333: R30 := mem[R31 + 8, el]:u64 -00000337: R31 := R31 + 0x20 -0000033c: call R30 with noreturn - -00000736: sub __libc_start_main(__libc_start_main_main, __libc_start_main_arg2, __libc_start_main_arg3, __libc_start_main_auxv, __libc_start_main_result) -0000076c: __libc_start_main_main :: in u64 = R0 -0000076d: __libc_start_main_arg2 :: in u32 = low:32[R1] -0000076e: __libc_start_main_arg3 :: in out u64 = R2 -0000076f: __libc_start_main_auxv :: in out u64 = R3 -00000770: __libc_start_main_result :: out u32 = low:32[R0] - -00000243: -00000589: R16 := 0x11000 -00000590: R17 := mem[R16, el]:u64 -00000596: R16 := R16 -0000059b: call R17 with noreturn - -00000737: sub _fini(_fini_result) -00000771: _fini_result :: out u32 = low:32[R0] - -0000001f: -00000025: #0 := R31 - 0x10 -0000002b: mem := mem with [#0, el]:u64 <- R29 -00000031: mem := mem with [#0 + 8, el]:u64 <- R30 -00000035: R31 := #0 -0000003b: R29 := R31 -00000042: R29 := mem[R31, el]:u64 -00000047: R30 := mem[R31 + 8, el]:u64 -0000004b: R31 := R31 + 0x10 -00000050: call R30 with noreturn - -00000738: sub _init(_init_result) -00000772: _init_result :: out u32 = low:32[R0] - -0000066c: -00000672: #8 := R31 - 0x10 -00000678: mem := mem with [#8, el]:u64 <- R29 -0000067e: mem := mem with [#8 + 8, el]:u64 <- R30 -00000682: R31 := #8 -00000688: R29 := R31 -0000068d: R30 := 0x5D8 -0000068f: call @call_weak_fn with return %00000691 - -00000691: -00000696: R29 := mem[R31, el]:u64 -0000069b: R30 := mem[R31 + 8, el]:u64 -0000069f: R31 := R31 + 0x10 -000006a4: call R30 with noreturn - -00000739: sub _start(_start_result) -00000773: _start_result :: out u32 = low:32[R0] - -00000204: -00000209: R29 := 0 -0000020e: R30 := 0 -00000214: R5 := R0 -0000021b: R1 := mem[R31, el]:u64 -00000221: R2 := R31 + 8 -00000227: R6 := R31 -0000022c: R0 := 0x10000 -00000233: R0 := mem[R0 + 0xFD8, el]:u64 -00000238: R3 := 0 -0000023d: R4 := 0 -00000242: R30 := 0x670 -00000245: call @__libc_start_main with return %00000247 - -00000247: -0000024a: R30 := 0x674 -0000024d: call @abort with return %00000762 - -00000762: -00000763: call @call_weak_fn with noreturn - -0000073c: sub abort() - - -0000024b: -000005cb: R16 := 0x11000 -000005d2: R17 := mem[R16 + 0x18, el]:u64 -000005d8: R16 := R16 + 0x18 -000005dd: call R17 with noreturn - -0000073d: sub add_six(add_six_result) -00000774: add_six_result :: out u32 = low:32[R0] - -00000365: -00000368: R9 := 0x11000 -0000036f: R8 := pad:64[mem[R9 + 0x30, el]:u32] -00000375: R8 := pad:64[31:0[R8] + 6] -0000037d: mem := mem with [R9 + 0x30, el]:u32 <- 31:0[R8] -00000382: call R30 with noreturn - -0000073e: sub add_two(add_two_result) -00000775: add_two_result :: out u32 = low:32[R0] - -00000346: -00000349: R9 := 0x11000 -00000350: R8 := pad:64[mem[R9 + 0x30, el]:u32] -00000356: R8 := pad:64[31:0[R8] + 2] -0000035e: mem := mem with [R9 + 0x30, el]:u32 <- 31:0[R8] -00000363: call R30 with noreturn - -0000073f: sub call_weak_fn(call_weak_fn_result) -00000776: call_weak_fn_result :: out u32 = low:32[R0] - -0000024f: -00000252: R0 := 0x10000 -00000259: R0 := mem[R0 + 0xFD0, el]:u64 -0000025f: when R0 = 0 goto %0000025d -00000764: goto %000004e7 - -0000025d: -00000265: call R30 with noreturn - -000004e7: -000004ea: goto @__gmon_start__ - -000004e8: -000005b5: R16 := 0x11000 -000005bc: R17 := mem[R16 + 0x10, el]:u64 -000005c2: R16 := R16 + 0x10 -000005c7: call R17 with noreturn - -00000741: sub deregister_tm_clones(deregister_tm_clones_result) -00000777: deregister_tm_clones_result :: out u32 = low:32[R0] - -0000026b: -0000026e: R0 := 0x11000 -00000274: R0 := R0 + 0x50 -00000279: R1 := 0x11000 -0000027f: R1 := R1 + 0x50 -00000285: #1 := ~R0 -0000028a: #2 := R1 + ~R0 -00000290: VF := extend:65[#2 + 1] <> extend:65[R1] + extend:65[#1] + 1 -00000296: CF := pad:65[#2 + 1] <> pad:65[R1] + pad:65[#1] + 1 -0000029a: ZF := #2 + 1 = 0 -0000029e: NF := 63:63[#2 + 1] -000002a4: when ZF goto %000002a2 -00000765: goto %000004c9 - -000004c9: -000004cc: R1 := 0x10000 -000004d3: R1 := mem[R1 + 0xFC0, el]:u64 -000004d8: when R1 = 0 goto %000002a2 -00000766: goto %000004dc - -000002a2: -000002aa: call R30 with noreturn - -000004dc: -000004e0: R16 := R1 -000004e5: call R16 with noreturn - -00000744: sub frame_dummy(frame_dummy_result) -00000778: frame_dummy_result :: out u32 = low:32[R0] - -00000342: -00000344: call @register_tm_clones with noreturn - -00000745: sub main(main_argc, main_argv, main_result) -00000779: main_argc :: in u32 = low:32[R0] -0000077a: main_argv :: in out u64 = R1 -0000077b: main_result :: out u32 = low:32[R0] - -000003b9: -000003bd: R31 := R31 - 0x30 -000003c3: #5 := R31 + 0x20 -000003c9: mem := mem with [#5, el]:u64 <- R29 -000003cf: mem := mem with [#5 + 8, el]:u64 <- R30 -000003d5: R29 := R31 + 0x20 -000003da: R8 := 0x11000 -000003df: R9 := 0x11000 -000003e5: R9 := R9 + 0x38 -000003ed: mem := mem with [R31, el]:u64 <- R9 -000003f2: R9 := 0 -000003fa: mem := mem with [R31 + 0xC, el]:u32 <- 31:0[R9] -00000401: mem := mem with [R29 - 4, el]:u32 <- 0 -00000409: mem := mem with [R29 - 8, el]:u32 <- 31:0[R0] -00000411: mem := mem with [R31 + 0x10, el]:u64 <- R1 -00000418: R8 := mem[R8 + 0x38, el]:u64 -0000041d: R30 := 0x7C8 -00000420: call R8 with return %00000422 - -00000422: -00000427: R8 := mem[R31, el]:u64 -0000042e: R8 := mem[R8 + 8, el]:u64 -00000433: R30 := 0x7D4 -00000436: call R8 with return %00000438 - -00000438: -0000043d: R8 := mem[R31, el]:u64 -00000444: R8 := mem[R8 + 0x10, el]:u64 -00000449: R30 := 0x7E0 -0000044c: call R8 with return %0000044e - -0000044e: -00000453: R0 := pad:64[mem[R31 + 0xC, el]:u32] -00000459: #6 := R31 + 0x20 -0000045e: R29 := mem[#6, el]:u64 -00000463: R30 := mem[#6 + 8, el]:u64 -00000469: R31 := R31 + 0x30 -0000046e: call R30 with noreturn - -00000746: sub register_tm_clones(register_tm_clones_result) -0000077c: register_tm_clones_result :: out u32 = low:32[R0] - -000002ac: -000002af: R0 := 0x11000 -000002b5: R0 := R0 + 0x50 -000002ba: R1 := 0x11000 -000002c0: R1 := R1 + 0x50 -000002c7: R1 := R1 + ~R0 + 1 -000002cd: R2 := 0.63:63[R1] -000002d4: R1 := R2 + (R1 ~>> 3) -000002da: R1 := extend:64[63:1[R1]] -000002e0: when R1 = 0 goto %000002de -00000767: goto %000004ab - -000004ab: -000004ae: R2 := 0x10000 -000004b5: R2 := mem[R2 + 0xFE0, el]:u64 -000004ba: when R2 = 0 goto %000002de -00000768: goto %000004be - -000002de: -000002e6: call R30 with noreturn - -000004be: -000004c2: R16 := R2 -000004c7: call R16 with noreturn - -00000749: sub sub_seven(sub_seven_result) -0000077d: sub_seven_result :: out u32 = low:32[R0] - -00000384: -00000387: R9 := 0x11000 -0000038e: R8 := pad:64[mem[R9 + 0x30, el]:u32] -00000394: #4 := 31:0[R8] - 8 -00000399: VF := extend:33[#4 + 1] <> extend:33[31:0[R8]] - 7 -0000039e: CF := pad:33[#4 + 1] <> pad:33[31:0[R8]] + 0xFFFFFFF9 -000003a2: ZF := #4 + 1 = 0 -000003a6: NF := 31:31[#4 + 1] -000003aa: R8 := pad:64[#4 + 1] -000003b2: mem := mem with [R9 + 0x30, el]:u32 <- 31:0[R8] -000003b7: call R30 with noreturn diff --git a/src/test/indirect_calls/jumptable2/clang/jumptable2.md5sum b/src/test/indirect_calls/jumptable2/clang/jumptable2.md5sum new file mode 100644 index 000000000..45c4e50c7 --- /dev/null +++ b/src/test/indirect_calls/jumptable2/clang/jumptable2.md5sum @@ -0,0 +1,4 @@ +1004ef92a545bd1bb156cc7c6d06f78c indirect_calls/jumptable2/clang/a.out +f0309d8fe096729f5904f3307b87ea57 indirect_calls/jumptable2/clang/jumptable2.relf +1c7264cafe5ce7412ffb2ee7837ef3e8 indirect_calls/jumptable2/clang/jumptable2.adt +83b4dfa3001e1b23221a19367f059b0a indirect_calls/jumptable2/clang/jumptable2.bir diff --git a/src/test/indirect_calls/jumptable2/clang/jumptable2.relf b/src/test/indirect_calls/jumptable2/clang/jumptable2.relf deleted file mode 100644 index 2c811c565..000000000 --- a/src/test/indirect_calls/jumptable2/clang/jumptable2.relf +++ /dev/null @@ -1,130 +0,0 @@ - -Relocation section '.rela.dyn' at offset 0x460 contains 11 entries: - Offset Info Type Symbol's Value Symbol's Name + Addend -0000000000010dc8 0000000000000403 R_AARCH64_RELATIVE 750 -0000000000010dd0 0000000000000403 R_AARCH64_RELATIVE 700 -0000000000010fd8 0000000000000403 R_AARCH64_RELATIVE 790 -0000000000011028 0000000000000403 R_AARCH64_RELATIVE 11028 -0000000000011038 0000000000000403 R_AARCH64_RELATIVE 754 -0000000000011040 0000000000000403 R_AARCH64_RELATIVE 768 -0000000000011048 0000000000000403 R_AARCH64_RELATIVE 77c -0000000000010fc0 0000000400000401 R_AARCH64_GLOB_DAT 0000000000000000 _ITM_deregisterTMCloneTable + 0 -0000000000010fc8 0000000500000401 R_AARCH64_GLOB_DAT 0000000000000000 __cxa_finalize@GLIBC_2.17 + 0 -0000000000010fd0 0000000600000401 R_AARCH64_GLOB_DAT 0000000000000000 __gmon_start__ + 0 -0000000000010fe0 0000000800000401 R_AARCH64_GLOB_DAT 0000000000000000 _ITM_registerTMCloneTable + 0 - -Relocation section '.rela.plt' at offset 0x568 contains 4 entries: - Offset Info Type Symbol's Value Symbol's Name + Addend -0000000000011000 0000000300000402 R_AARCH64_JUMP_SLOT 0000000000000000 __libc_start_main@GLIBC_2.34 + 0 -0000000000011008 0000000500000402 R_AARCH64_JUMP_SLOT 0000000000000000 __cxa_finalize@GLIBC_2.17 + 0 -0000000000011010 0000000600000402 R_AARCH64_JUMP_SLOT 0000000000000000 __gmon_start__ + 0 -0000000000011018 0000000700000402 R_AARCH64_JUMP_SLOT 0000000000000000 abort@GLIBC_2.17 + 0 - -Symbol table '.dynsym' contains 9 entries: - Num: Value Size Type Bind Vis Ndx Name - 0: 0000000000000000 0 NOTYPE LOCAL DEFAULT UND - 1: 00000000000005c8 0 SECTION LOCAL DEFAULT 11 .init - 2: 0000000000011020 0 SECTION LOCAL DEFAULT 23 .data - 3: 0000000000000000 0 FUNC GLOBAL DEFAULT UND __libc_start_main@GLIBC_2.34 (2) - 4: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_deregisterTMCloneTable - 5: 0000000000000000 0 FUNC WEAK DEFAULT UND __cxa_finalize@GLIBC_2.17 (3) - 6: 0000000000000000 0 NOTYPE WEAK DEFAULT UND __gmon_start__ - 7: 0000000000000000 0 FUNC GLOBAL DEFAULT UND abort@GLIBC_2.17 (3) - 8: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_registerTMCloneTable - -Symbol table '.symtab' contains 94 entries: - Num: Value Size Type Bind Vis Ndx Name - 0: 0000000000000000 0 NOTYPE LOCAL DEFAULT UND - 1: 0000000000000238 0 SECTION LOCAL DEFAULT 1 .interp - 2: 0000000000000254 0 SECTION LOCAL DEFAULT 2 .note.gnu.build-id - 3: 0000000000000278 0 SECTION LOCAL DEFAULT 3 .note.ABI-tag - 4: 0000000000000298 0 SECTION LOCAL DEFAULT 4 .gnu.hash - 5: 00000000000002b8 0 SECTION LOCAL DEFAULT 5 .dynsym - 6: 0000000000000390 0 SECTION LOCAL DEFAULT 6 .dynstr - 7: 000000000000041e 0 SECTION LOCAL DEFAULT 7 .gnu.version - 8: 0000000000000430 0 SECTION LOCAL DEFAULT 8 .gnu.version_r - 9: 0000000000000460 0 SECTION LOCAL DEFAULT 9 .rela.dyn - 10: 0000000000000568 0 SECTION LOCAL DEFAULT 10 .rela.plt - 11: 00000000000005c8 0 SECTION LOCAL DEFAULT 11 .init - 12: 00000000000005e0 0 SECTION LOCAL DEFAULT 12 .plt - 13: 0000000000000640 0 SECTION LOCAL DEFAULT 13 .text - 14: 00000000000007f0 0 SECTION LOCAL DEFAULT 14 .fini - 15: 0000000000000804 0 SECTION LOCAL DEFAULT 15 .rodata - 16: 0000000000000808 0 SECTION LOCAL DEFAULT 16 .eh_frame_hdr - 17: 0000000000000860 0 SECTION LOCAL DEFAULT 17 .eh_frame - 18: 0000000000010dc8 0 SECTION LOCAL DEFAULT 18 .init_array - 19: 0000000000010dd0 0 SECTION LOCAL DEFAULT 19 .fini_array - 20: 0000000000010dd8 0 SECTION LOCAL DEFAULT 20 .dynamic - 21: 0000000000010fb8 0 SECTION LOCAL DEFAULT 21 .got - 22: 0000000000010fe8 0 SECTION LOCAL DEFAULT 22 .got.plt - 23: 0000000000011020 0 SECTION LOCAL DEFAULT 23 .data - 24: 0000000000011050 0 SECTION LOCAL DEFAULT 24 .bss - 25: 0000000000000000 0 SECTION LOCAL DEFAULT 25 .comment - 26: 0000000000000000 0 FILE LOCAL DEFAULT ABS Scrt1.o - 27: 0000000000000278 0 NOTYPE LOCAL DEFAULT 3 $d - 28: 0000000000000278 32 OBJECT LOCAL DEFAULT 3 __abi_tag - 29: 0000000000000640 0 NOTYPE LOCAL DEFAULT 13 $x - 30: 0000000000000874 0 NOTYPE LOCAL DEFAULT 17 $d - 31: 0000000000000804 0 NOTYPE LOCAL DEFAULT 15 $d - 32: 0000000000000000 0 FILE LOCAL DEFAULT ABS crti.o - 33: 0000000000000674 0 NOTYPE LOCAL DEFAULT 13 $x - 34: 0000000000000674 20 FUNC LOCAL DEFAULT 13 call_weak_fn - 35: 00000000000005c8 0 NOTYPE LOCAL DEFAULT 11 $x - 36: 00000000000007f0 0 NOTYPE LOCAL DEFAULT 14 $x - 37: 0000000000000000 0 FILE LOCAL DEFAULT ABS crtn.o - 38: 00000000000005d8 0 NOTYPE LOCAL DEFAULT 11 $x - 39: 00000000000007fc 0 NOTYPE LOCAL DEFAULT 14 $x - 40: 0000000000000000 0 FILE LOCAL DEFAULT ABS crtstuff.c - 41: 0000000000000690 0 NOTYPE LOCAL DEFAULT 13 $x - 42: 0000000000000690 0 FUNC LOCAL DEFAULT 13 deregister_tm_clones - 43: 00000000000006c0 0 FUNC LOCAL DEFAULT 13 register_tm_clones - 44: 0000000000011028 0 NOTYPE LOCAL DEFAULT 23 $d - 45: 0000000000000700 0 FUNC LOCAL DEFAULT 13 __do_global_dtors_aux - 46: 0000000000011050 1 OBJECT LOCAL DEFAULT 24 completed.0 - 47: 0000000000010dd0 0 NOTYPE LOCAL DEFAULT 19 $d - 48: 0000000000010dd0 0 OBJECT LOCAL DEFAULT 19 __do_global_dtors_aux_fini_array_entry - 49: 0000000000000750 0 FUNC LOCAL DEFAULT 13 frame_dummy - 50: 0000000000010dc8 0 NOTYPE LOCAL DEFAULT 18 $d - 51: 0000000000010dc8 0 OBJECT LOCAL DEFAULT 18 __frame_dummy_init_array_entry - 52: 0000000000000888 0 NOTYPE LOCAL DEFAULT 17 $d - 53: 0000000000011050 0 NOTYPE LOCAL DEFAULT 24 $d - 54: 0000000000000000 0 FILE LOCAL DEFAULT ABS jumptable2.c - 55: 0000000000000754 0 NOTYPE LOCAL DEFAULT 13 $x.0 - 56: 0000000000011030 0 NOTYPE LOCAL DEFAULT 23 $d.1 - 57: 000000000000002a 0 NOTYPE LOCAL DEFAULT 25 $d.2 - 58: 00000000000008e8 0 NOTYPE LOCAL DEFAULT 17 $d.3 - 59: 0000000000000000 0 FILE LOCAL DEFAULT ABS crtstuff.c - 60: 0000000000000960 0 NOTYPE LOCAL DEFAULT 17 $d - 61: 0000000000000960 0 OBJECT LOCAL DEFAULT 17 __FRAME_END__ - 62: 0000000000000000 0 FILE LOCAL DEFAULT ABS - 63: 0000000000010dd8 0 OBJECT LOCAL DEFAULT ABS _DYNAMIC - 64: 0000000000000808 0 NOTYPE LOCAL DEFAULT 16 __GNU_EH_FRAME_HDR - 65: 0000000000010fb8 0 OBJECT LOCAL DEFAULT ABS _GLOBAL_OFFSET_TABLE_ - 66: 00000000000005e0 0 NOTYPE LOCAL DEFAULT 12 $x - 67: 0000000000000000 0 FUNC GLOBAL DEFAULT UND __libc_start_main@GLIBC_2.34 - 68: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_deregisterTMCloneTable - 69: 0000000000011020 0 NOTYPE WEAK DEFAULT 23 data_start - 70: 0000000000011050 0 NOTYPE GLOBAL DEFAULT 24 __bss_start__ - 71: 0000000000000000 0 FUNC WEAK DEFAULT UND __cxa_finalize@GLIBC_2.17 - 72: 0000000000011058 0 NOTYPE GLOBAL DEFAULT 24 _bss_end__ - 73: 0000000000011050 0 NOTYPE GLOBAL DEFAULT 23 _edata - 74: 0000000000011030 4 OBJECT GLOBAL DEFAULT 23 x - 75: 00000000000007f0 0 FUNC GLOBAL HIDDEN 14 _fini - 76: 0000000000011058 0 NOTYPE GLOBAL DEFAULT 24 __bss_end__ - 77: 0000000000011020 0 NOTYPE GLOBAL DEFAULT 23 __data_start - 78: 0000000000000000 0 NOTYPE WEAK DEFAULT UND __gmon_start__ - 79: 0000000000011028 0 OBJECT GLOBAL HIDDEN 23 __dso_handle - 80: 0000000000000000 0 FUNC GLOBAL DEFAULT UND abort@GLIBC_2.17 - 81: 0000000000000804 4 OBJECT GLOBAL DEFAULT 15 _IO_stdin_used - 82: 0000000000000754 20 FUNC GLOBAL DEFAULT 13 add_two - 83: 0000000000011058 0 NOTYPE GLOBAL DEFAULT 24 _end - 84: 0000000000000640 52 FUNC GLOBAL DEFAULT 13 _start - 85: 0000000000011058 0 NOTYPE GLOBAL DEFAULT 24 __end__ - 86: 0000000000000768 20 FUNC GLOBAL DEFAULT 13 add_six - 87: 0000000000011050 0 NOTYPE GLOBAL DEFAULT 24 __bss_start - 88: 0000000000000790 96 FUNC GLOBAL DEFAULT 13 main - 89: 0000000000011050 0 OBJECT GLOBAL HIDDEN 23 __TMC_END__ - 90: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_registerTMCloneTable - 91: 0000000000011038 24 OBJECT GLOBAL DEFAULT 23 jump_table - 92: 00000000000005c8 0 FUNC GLOBAL HIDDEN 11 _init - 93: 000000000000077c 20 FUNC GLOBAL DEFAULT 13 sub_seven diff --git a/src/test/indirect_calls/jumptable2/clang_O2/jumptable2.adt b/src/test/indirect_calls/jumptable2/clang_O2/jumptable2.adt deleted file mode 100644 index 9d6567e9d..000000000 --- a/src/test/indirect_calls/jumptable2/clang_O2/jumptable2.adt +++ /dev/null @@ -1,612 +0,0 @@ -Project(Attrs([Attr("filename","\"clang_O2/jumptable2.out\""), -Attr("image-specification","(declare abi (name str))\n(declare arch (name str))\n(declare base-address (addr int))\n(declare bias (off int))\n(declare bits (size int))\n(declare code-region (addr int) (size int) (off int))\n(declare code-start (addr int))\n(declare entry-point (addr int))\n(declare external-reference (addr int) (name str))\n(declare format (name str))\n(declare is-executable (flag bool))\n(declare is-little-endian (flag bool))\n(declare llvm:base-address (addr int))\n(declare llvm:code-entry (name str) (off int) (size int))\n(declare llvm:coff-import-library (name str))\n(declare llvm:coff-virtual-section-header (name str) (addr int) (size int))\n(declare llvm:elf-program-header (name str) (off int) (size int))\n(declare llvm:elf-program-header-flags (name str) (ld bool) (r bool) \n (w bool) (x bool))\n(declare llvm:elf-virtual-program-header (name str) (addr int) (size int))\n(declare llvm:entry-point (addr int))\n(declare llvm:macho-symbol (name str) (value int))\n(declare llvm:name-reference (at int) (name str))\n(declare llvm:relocation (at int) (addr int))\n(declare llvm:section-entry (name str) (addr int) (size int) (off int))\n(declare llvm:section-flags (name str) (r bool) (w bool) (x bool))\n(declare llvm:segment-command (name str) (off int) (size int))\n(declare llvm:segment-command-flags (name str) (r bool) (w bool) (x bool))\n(declare llvm:symbol-entry (name str) (addr int) (size int) (off int)\n (value int))\n(declare llvm:virtual-segment-command (name str) (addr int) (size int))\n(declare mapped (addr int) (size int) (off int))\n(declare named-region (addr int) (size int) (name str))\n(declare named-symbol (addr int) (name str))\n(declare require (name str))\n(declare section (addr int) (size int))\n(declare segment (addr int) (size int) (r bool) (w bool) (x bool))\n(declare subarch (name str))\n(declare symbol-chunk (addr int) (size int) (root int))\n(declare symbol-value (addr int) (value int))\n(declare system (name str))\n(declare vendor (name str))\n\n(abi unknown)\n(arch aarch64)\n(base-address 0)\n(bias 0)\n(bits 64)\n(code-region 1996 20 1996)\n(code-region 1600 396 1600)\n(code-region 1504 96 1504)\n(code-region 1480 24 1480)\n(code-start 1652)\n(code-start 1876)\n(code-start 1600)\n(code-start 1896)\n(code-start 1936)\n(code-start 1916)\n(entry-point 1600)\n(external-reference 69568 _ITM_deregisterTMCloneTable)\n(external-reference 69576 __cxa_finalize)\n(external-reference 69584 __gmon_start__)\n(external-reference 69600 _ITM_registerTMCloneTable)\n(external-reference 69632 __libc_start_main)\n(external-reference 69640 __cxa_finalize)\n(external-reference 69648 __gmon_start__)\n(external-reference 69656 abort)\n(format elf)\n(is-executable true)\n(is-little-endian true)\n(llvm:base-address 0)\n(llvm:code-entry abort 0 0)\n(llvm:code-entry __cxa_finalize 0 0)\n(llvm:code-entry __libc_start_main 0 0)\n(llvm:code-entry sub_seven 1916 20)\n(llvm:code-entry _init 1480 0)\n(llvm:code-entry main 1936 60)\n(llvm:code-entry add_six 1896 20)\n(llvm:code-entry _start 1600 52)\n(llvm:code-entry add_two 1876 20)\n(llvm:code-entry abort@GLIBC_2.17 0 0)\n(llvm:code-entry _fini 1996 0)\n(llvm:code-entry __cxa_finalize@GLIBC_2.17 0 0)\n(llvm:code-entry __libc_start_main@GLIBC_2.34 0 0)\n(llvm:code-entry frame_dummy 1872 0)\n(llvm:code-entry __do_global_dtors_aux 1792 0)\n(llvm:code-entry register_tm_clones 1728 0)\n(llvm:code-entry deregister_tm_clones 1680 0)\n(llvm:code-entry call_weak_fn 1652 20)\n(llvm:code-entry .fini 1996 20)\n(llvm:code-entry .text 1600 396)\n(llvm:code-entry .plt 1504 96)\n(llvm:code-entry .init 1480 24)\n(llvm:elf-program-header 08 3528 568)\n(llvm:elf-program-header 07 0 0)\n(llvm:elf-program-header 06 2020 84)\n(llvm:elf-program-header 05 596 68)\n(llvm:elf-program-header 04 3544 480)\n(llvm:elf-program-header 03 3528 648)\n(llvm:elf-program-header 02 0 2364)\n(llvm:elf-program-header 01 568 27)\n(llvm:elf-program-header 00 64 504)\n(llvm:elf-program-header-flags 08 false true false false)\n(llvm:elf-program-header-flags 07 false true true false)\n(llvm:elf-program-header-flags 06 false true false false)\n(llvm:elf-program-header-flags 05 false true false false)\n(llvm:elf-program-header-flags 04 false true true false)\n(llvm:elf-program-header-flags 03 true true true false)\n(llvm:elf-program-header-flags 02 true true false true)\n(llvm:elf-program-header-flags 01 false true false false)\n(llvm:elf-program-header-flags 00 false true false false)\n(llvm:elf-virtual-program-header 08 69064 568)\n(llvm:elf-virtual-program-header 07 0 0)\n(llvm:elf-virtual-program-header 06 2020 84)\n(llvm:elf-virtual-program-header 05 596 68)\n(llvm:elf-virtual-program-header 04 69080 480)\n(llvm:elf-virtual-program-header 03 69064 656)\n(llvm:elf-virtual-program-header 02 0 2364)\n(llvm:elf-virtual-program-header 01 568 27)\n(llvm:elf-virtual-program-header 00 64 504)\n(llvm:entry-point 1600)\n(llvm:name-reference 69656 abort)\n(llvm:name-reference 69648 __gmon_start__)\n(llvm:name-reference 69640 __cxa_finalize)\n(llvm:name-reference 69632 __libc_start_main)\n(llvm:name-reference 69600 _ITM_registerTMCloneTable)\n(llvm:name-reference 69584 __gmon_start__)\n(llvm:name-reference 69576 __cxa_finalize)\n(llvm:name-reference 69568 _ITM_deregisterTMCloneTable)\n(llvm:section-entry .shstrtab 0 259 7107)\n(llvm:section-entry .strtab 0 603 6504)\n(llvm:section-entry .symtab 0 2256 4248)\n(llvm:section-entry .comment 0 71 4176)\n(llvm:section-entry .bss 69712 8 4176)\n(llvm:section-entry .data 69664 48 4128)\n(llvm:section-entry .got.plt 69608 56 4072)\n(llvm:section-entry .got 69560 48 4024)\n(llvm:section-entry .dynamic 69080 480 3544)\n(llvm:section-entry .fini_array 69072 8 3536)\n(llvm:section-entry .init_array 69064 8 3528)\n(llvm:section-entry .eh_frame 2104 260 2104)\n(llvm:section-entry .eh_frame_hdr 2020 84 2020)\n(llvm:section-entry .rodata 2016 4 2016)\n(llvm:section-entry .fini 1996 20 1996)\n(llvm:section-entry .text 1600 396 1600)\n(llvm:section-entry .plt 1504 96 1504)\n(llvm:section-entry .init 1480 24 1480)\n(llvm:section-entry .rela.plt 1384 96 1384)\n(llvm:section-entry .rela.dyn 1120 264 1120)\n(llvm:section-entry .gnu.version_r 1072 48 1072)\n(llvm:section-entry .gnu.version 1054 18 1054)\n(llvm:section-entry .dynstr 912 141 912)\n(llvm:section-entry .dynsym 696 216 696)\n(llvm:section-entry .gnu.hash 664 28 664)\n(llvm:section-entry .note.ABI-tag 632 32 632)\n(llvm:section-entry .note.gnu.build-id 596 36 596)\n(llvm:section-entry .interp 568 27 568)\n(llvm:section-flags .shstrtab true false false)\n(llvm:section-flags .strtab true false false)\n(llvm:section-flags .symtab true false false)\n(llvm:section-flags .comment true false false)\n(llvm:section-flags .bss true true false)\n(llvm:section-flags .data true true false)\n(llvm:section-flags .got.plt true true false)\n(llvm:section-flags .got true true false)\n(llvm:section-flags .dynamic true true false)\n(llvm:section-flags .fini_array true true false)\n(llvm:section-flags .init_array true true false)\n(llvm:section-flags .eh_frame true false false)\n(llvm:section-flags .eh_frame_hdr true false false)\n(llvm:section-flags .rodata true false false)\n(llvm:section-flags .fini true false true)\n(llvm:section-flags .text true false true)\n(llvm:section-flags .plt true false true)\n(llvm:section-flags .init true false true)\n(llvm:section-flags .rela.plt true false false)\n(llvm:section-flags .rela.dyn true false false)\n(llvm:section-flags .gnu.version_r true false false)\n(llvm:section-flags .gnu.version true false false)\n(llvm:section-flags .dynstr true false false)\n(llvm:section-flags .dynsym true false false)\n(llvm:section-flags .gnu.hash true false false)\n(llvm:section-flags .note.ABI-tag true false false)\n(llvm:section-flags .note.gnu.build-id true false false)\n(llvm:section-flags .interp true false false)\n(llvm:symbol-entry abort 0 0 0 0)\n(llvm:symbol-entry __cxa_finalize 0 0 0 0)\n(llvm:symbol-entry __libc_start_main 0 0 0 0)\n(llvm:symbol-entry sub_seven 1916 20 1916 1916)\n(llvm:symbol-entry _init 1480 0 1480 1480)\n(llvm:symbol-entry main 1936 60 1936 1936)\n(llvm:symbol-entry add_six 1896 20 1896 1896)\n(llvm:symbol-entry _start 1600 52 1600 1600)\n(llvm:symbol-entry add_two 1876 20 1876 1876)\n(llvm:symbol-entry abort@GLIBC_2.17 0 0 0 0)\n(llvm:symbol-entry _fini 1996 0 1996 1996)\n(llvm:symbol-entry __cxa_finalize@GLIBC_2.17 0 0 0 0)\n(llvm:symbol-entry __libc_start_main@GLIBC_2.34 0 0 0 0)\n(llvm:symbol-entry frame_dummy 1872 0 1872 1872)\n(llvm:symbol-entry __do_global_dtors_aux 1792 0 1792 1792)\n(llvm:symbol-entry register_tm_clones 1728 0 1728 1728)\n(llvm:symbol-entry deregister_tm_clones 1680 0 1680 1680)\n(llvm:symbol-entry call_weak_fn 1652 20 1652 1652)\n(mapped 0 2364 0)\n(mapped 69064 648 3528)\n(named-region 0 2364 02)\n(named-region 69064 656 03)\n(named-region 568 27 .interp)\n(named-region 596 36 .note.gnu.build-id)\n(named-region 632 32 .note.ABI-tag)\n(named-region 664 28 .gnu.hash)\n(named-region 696 216 .dynsym)\n(named-region 912 141 .dynstr)\n(named-region 1054 18 .gnu.version)\n(named-region 1072 48 .gnu.version_r)\n(named-region 1120 264 .rela.dyn)\n(named-region 1384 96 .rela.plt)\n(named-region 1480 24 .init)\n(named-region 1504 96 .plt)\n(named-region 1600 396 .text)\n(named-region 1996 20 .fini)\n(named-region 2016 4 .rodata)\n(named-region 2020 84 .eh_frame_hdr)\n(named-region 2104 260 .eh_frame)\n(named-region 69064 8 .init_array)\n(named-region 69072 8 .fini_array)\n(named-region 69080 480 .dynamic)\n(named-region 69560 48 .got)\n(named-region 69608 56 .got.plt)\n(named-region 69664 48 .data)\n(named-region 69712 8 .bss)\n(named-region 0 71 .comment)\n(named-region 0 2256 .symtab)\n(named-region 0 603 .strtab)\n(named-region 0 259 .shstrtab)\n(named-symbol 1652 call_weak_fn)\n(named-symbol 1680 deregister_tm_clones)\n(named-symbol 1728 register_tm_clones)\n(named-symbol 1792 __do_global_dtors_aux)\n(named-symbol 1872 frame_dummy)\n(named-symbol 0 __libc_start_main@GLIBC_2.34)\n(named-symbol 0 __cxa_finalize@GLIBC_2.17)\n(named-symbol 1996 _fini)\n(named-symbol 0 abort@GLIBC_2.17)\n(named-symbol 1876 add_two)\n(named-symbol 1600 _start)\n(named-symbol 1896 add_six)\n(named-symbol 1936 main)\n(named-symbol 1480 _init)\n(named-symbol 1916 sub_seven)\n(named-symbol 0 __libc_start_main)\n(named-symbol 0 __cxa_finalize)\n(named-symbol 0 abort)\n(require libc.so.6)\n(section 568 27)\n(section 596 36)\n(section 632 32)\n(section 664 28)\n(section 696 216)\n(section 912 141)\n(section 1054 18)\n(section 1072 48)\n(section 1120 264)\n(section 1384 96)\n(section 1480 24)\n(section 1504 96)\n(section 1600 396)\n(section 1996 20)\n(section 2016 4)\n(section 2020 84)\n(section 2104 260)\n(section 69064 8)\n(section 69072 8)\n(section 69080 480)\n(section 69560 48)\n(section 69608 56)\n(section 69664 48)\n(section 69712 8)\n(section 0 71)\n(section 0 2256)\n(section 0 603)\n(section 0 259)\n(segment 0 2364 true false true)\n(segment 69064 656 true true false)\n(subarch v8)\n(symbol-chunk 1652 20 1652)\n(symbol-chunk 1876 20 1876)\n(symbol-chunk 1600 52 1600)\n(symbol-chunk 1896 20 1896)\n(symbol-chunk 1936 60 1936)\n(symbol-chunk 1916 20 1916)\n(symbol-value 1652 1652)\n(symbol-value 1680 1680)\n(symbol-value 1728 1728)\n(symbol-value 1792 1792)\n(symbol-value 1872 1872)\n(symbol-value 1996 1996)\n(symbol-value 1876 1876)\n(symbol-value 1600 1600)\n(symbol-value 1896 1896)\n(symbol-value 1936 1936)\n(symbol-value 1480 1480)\n(symbol-value 1916 1916)\n(symbol-value 0 0)\n(system \"\")\n(vendor \"\")\n"), -Attr("abi-name","\"aarch64-linux-gnu-elf\"")]), -Sections([Section(".shstrtab", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x40\x06\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xc8\x1c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x38\x00\x09\x00\x40\x00\x1d\x00\x1c\x00\x06\x00\x00\x00\x04\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x04\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x3c\x09\x00\x00\x00\x00\x00\x00\x3c\x09\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x01\x00\x00\x00\x06\x00\x00\x00\xc8\x0d\x00\x00\x00\x00\x00\x00\xc8\x0d\x01\x00\x00\x00\x00\x00\xc8\x0d\x01"), -Section(".strtab", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x40\x06\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xc8\x1c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x38\x00\x09\x00\x40\x00\x1d\x00\x1c\x00\x06\x00\x00\x00\x04\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x04\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x3c\x09\x00\x00\x00\x00\x00\x00\x3c\x09\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x01\x00\x00\x00\x06\x00\x00\x00\xc8\x0d\x00\x00\x00\x00\x00\x00\xc8\x0d\x01\x00\x00\x00\x00\x00\xc8\x0d\x01\x00\x00\x00\x00\x00\x88\x02\x00\x00\x00\x00\x00\x00\x90\x02\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x02\x00\x00\x00\x06\x00\x00\x00\xd8\x0d\x00\x00\x00\x00\x00\x00\xd8\x0d\x01\x00\x00\x00\x00\x00\xd8\x0d\x01\x00\x00\x00\x00\x00\xe0\x01\x00\x00\x00\x00\x00\x00\xe0\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x04\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x50\xe5\x74\x64\x04\x00\x00\x00\xe4\x07\x00\x00\x00\x00\x00\x00\xe4\x07\x00\x00\x00\x00\x00\x00\xe4\x07\x00\x00\x00\x00\x00\x00\x54\x00\x00\x00\x00\x00\x00\x00\x54\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x51\xe5\x74\x64\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x52\xe5\x74\x64\x04\x00\x00\x00\xc8\x0d\x00\x00\x00\x00\x00\x00\xc8\x0d\x01\x00\x00\x00\x00\x00\xc8\x0d\x01\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x2f\x6c\x69\x62\x2f\x6c\x64\x2d\x6c\x69\x6e\x75\x78\x2d\x61\x61\x72\x63\x68\x36\x34\x2e\x73\x6f\x2e\x31\x00\x00\x04\x00\x00\x00\x14\x00\x00"), -Section(".symtab", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x40\x06\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xc8\x1c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x38\x00\x09\x00\x40\x00\x1d\x00\x1c\x00\x06\x00\x00\x00\x04\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x04\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x3c\x09\x00\x00\x00\x00\x00\x00\x3c\x09\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x01\x00\x00\x00\x06\x00\x00\x00\xc8\x0d\x00\x00\x00\x00\x00\x00\xc8\x0d\x01\x00\x00\x00\x00\x00\xc8\x0d\x01\x00\x00\x00\x00\x00\x88\x02\x00\x00\x00\x00\x00\x00\x90\x02\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x02\x00\x00\x00\x06\x00\x00\x00\xd8\x0d\x00\x00\x00\x00\x00\x00\xd8\x0d\x01\x00\x00\x00\x00\x00\xd8\x0d\x01\x00\x00\x00\x00\x00\xe0\x01\x00\x00\x00\x00\x00\x00\xe0\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x04\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x50\xe5\x74\x64\x04\x00\x00\x00\xe4\x07\x00\x00\x00\x00\x00\x00\xe4\x07\x00\x00\x00\x00\x00\x00\xe4\x07\x00\x00\x00\x00\x00\x00\x54\x00\x00\x00\x00\x00\x00\x00\x54\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x51\xe5\x74\x64\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x52\xe5\x74\x64\x04\x00\x00\x00\xc8\x0d\x00\x00\x00\x00\x00\x00\xc8\x0d\x01\x00\x00\x00\x00\x00\xc8\x0d\x01\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x2f\x6c\x69\x62\x2f\x6c\x64\x2d\x6c\x69\x6e\x75\x78\x2d\x61\x61\x72\x63\x68\x36\x34\x2e\x73\x6f\x2e\x31\x00\x00\x04\x00\x00\x00\x14\x00\x00\x00\x03\x00\x00\x00\x47\x4e\x55\x00\xda\x84\x07\x05\x24\x86\x69\x97\xf9\x5e\xf5\x26\xd6\x01\xa2\xde\x2f\x6c\x2d\x49\x04\x00\x00\x00\x10\x00\x00\x00\x01\x00\x00\x00\x47\x4e\x55\x00\x00\x00\x00\x00\x03\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x01\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x0b\x00\xc8\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x17\x00\x20\x10\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x48\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x22\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x22\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x73\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5f\x5f\x63\x78\x61\x5f\x66\x69\x6e\x61\x6c\x69\x7a\x65\x00\x5f\x5f\x6c\x69\x62\x63\x5f\x73\x74\x61\x72\x74\x5f\x6d\x61\x69\x6e\x00\x61\x62\x6f\x72\x74\x00\x6c\x69\x62\x63\x2e\x73\x6f\x2e\x36\x00\x47\x4c\x49\x42\x43\x5f\x32\x2e\x31\x37\x00\x47\x4c\x49\x42\x43\x5f\x32\x2e\x33\x34\x00\x5f\x49\x54\x4d\x5f\x64\x65\x72\x65\x67\x69\x73\x74\x65\x72\x54\x4d\x43\x6c\x6f\x6e\x65\x54\x61\x62\x6c\x65\x00\x5f\x5f\x67\x6d\x6f\x6e\x5f\x73\x74\x61\x72\x74\x5f\x5f\x00\x5f\x49\x54\x4d\x5f\x72\x65\x67\x69\x73\x74\x65\x72\x54\x4d\x43\x6c\x6f\x6e\x65\x54\x61\x62\x6c\x65\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x01\x00\x03\x00\x01\x00\x03\x00\x01\x00\x01\x00\x02\x00\x28\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x97\x91\x96\x06\x00\x00\x03\x00\x32\x00\x00\x00\x10\x00\x00\x00\xb4\x91\x96\x06\x00\x00\x02\x00\x3d\x00\x00\x00\x00\x00\x00\x00\xc8\x0d\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x50\x07\x00\x00\x00\x00\x00\x00\xd0\x0d\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\xd8\x0f\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x90\x07\x00\x00\x00\x00\x00\x00\x28\x10\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x28\x10\x01\x00\x00\x00\x00\x00\x38\x10\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x54\x07\x00\x00\x00\x00\x00\x00\x40\x10\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x68\x07\x00\x00\x00\x00\x00\x00\x48\x10\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x7c\x07\x00\x00\x00\x00\x00\x00\xc0\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xc8\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xd0\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe0\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x08\x10\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x10\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x18\x10\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1f\x20\x03\xd5\xfd\x7b\xbf\xa9\xfd\x03\x00\x91\x28\x00\x00\x94\xfd\x7b\xc1\xa8\xc0\x03\x5f\xd6\xf0\x7b\xbf\xa9\x90\x00\x00\x90\x11\xfe\x47\xf9\x10\xe2\x3f\x91\x20\x02\x1f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x90\x00\x00\xb0\x11\x02\x40\xf9\x10\x02\x00\x91\x20\x02\x1f\xd6\x90\x00\x00\xb0\x11\x06\x40\xf9\x10\x22\x00\x91\x20\x02\x1f\xd6\x90\x00\x00\xb0\x11\x0a\x40\xf9\x10\x42\x00\x91\x20\x02\x1f\xd6\x90\x00\x00\xb0\x11\x0e\x40\xf9\x10\x62\x00\x91\x20\x02\x1f\xd6\x1f\x20\x03\xd5\x1d\x00\x80\xd2\x1e\x00\x80\xd2\xe5\x03\x00\xaa\xe1\x03\x40\xf9\xe2\x23\x00\x91\xe6\x03\x00\x91\x80\x00\x00\x90\x00\xec\x47\xf9\x03\x00\x80\xd2\x04\x00\x80\xd2\xe5\xff\xff\x97\xf0\xff\xff\x97\x80\x00\x00\x90\x00\xe8\x47\xf9\x40\x00\x00\xb4\xe8\xff\xff\x17\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x80\x00\x00\xb0\x00\x40\x01\x91\x81\x00\x00\xb0\x21\x40\x01\x91\x3f\x00\x00\xeb\xc0\x00\x00\x54\x81\x00\x00\x90\x21\xe0\x47\xf9\x61\x00\x00\xb4\xf0\x03\x01\xaa\x00\x02\x1f\xd6\xc0\x03\x5f\xd6\x80\x00\x00\xb0\x00\x40\x01\x91\x81\x00\x00\xb0\x21\x40\x01\x91\x21\x00\x00\xcb\x22\xfc\x7f\xd3\x41\x0c\x81\x8b\x21\xfc\x41\x93\xc1\x00\x00\xb4\x82\x00\x00\x90\x42\xf0\x47\xf9\x62\x00\x00\xb4\xf0\x03\x02\xaa\x00\x02\x1f\xd6\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\xfd\x7b\xbe\xa9\xfd\x03\x00\x91\xf3\x0b\x00\xf9\x93\x00\x00\xb0\x60\x42\x41\x39\x40\x01\x00\x35\x80\x00\x00\x90\x00\xe4\x47\xf9\x80\x00\x00\xb4\x80\x00\x00\xb0\x00\x14\x40\xf9\xb9\xff\xff\x97\xd8\xff\xff\x97\x20\x00\x80\x52\x60\x42\x01\x39\xf3\x0b\x40\xf9\xfd\x7b\xc2\xa8\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\xdc\xff\xff\x17\x88\x00\x00\xb0\x09\x31\x40\xb9\x29\x09\x00\x11\x09\x31\x00\xb9\xc0\x03\x5f\xd6\x88\x00\x00\xb0\x09\x31\x40\xb9\x29\x19\x00\x11\x09\x31\x00\xb9\xc0\x03\x5f\xd6\x88\x00\x00\xb0\x09\x31\x40\xb9\x29\x1d\x00\x51\x09\x31\x00\xb9\xc0\x03\x5f\xd6\xfd\x7b\xbe\xa9\xf3\x0b\x00\xf9\xfd\x03\x00\x91\x93\x00\x00\xb0\x73\xe2\x00\x91\x68\x02\x40\xf9\x00\x01\x3f\xd6\x68\x06\x40\xf9\x00\x01\x3f\xd6\x68\x0a\x40\xf9\x00\x01\x3f\xd6\xe0\x03\x1f\x2a\xf3\x0b\x40\xf9\xfd\x7b\xc2\xa8\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\xfd\x7b\xbf\xa9\xfd\x03\x00\x91\xfd\x7b\xc1\xa8\xc0\x03\x5f\xd6\x01\x00\x02\x00\x01\x1b\x03\x3b\x50\x00\x00\x00\x09\x00\x00\x00\x5c\xfe\xff\xff\x68\x00\x00\x00\xac\xfe\xff\xff\x7c\x00\x00\x00\xdc\xfe\xff\xff\x90\x00\x00\x00\x1c\xff\xff\xff\xa4\x00\x00\x00\x6c\xff\xff\xff\xc8\x00\x00\x00\x70\xff\xff\xff\xf0\x00\x00\x00\x84\xff\xff\xff\x04\x01\x00\x00\x98\xff\xff\xff\x18\x01\x00\x00\xac\xff\xff\xff\x2c\x01\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x01\x7a\x52\x00\x04\x78\x1e\x01\x1b\x0c\x1f\x00\x10\x00\x00\x00\x18\x00\x00\x00\xec\xfd\xff\xff\x34\x00\x00\x00\x00\x41\x07\x1e\x10\x00\x00\x00\x2c\x00\x00\x00\x28\xfe\xff\xff\x30\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x40\x00\x00\x00\x44\xfe\xff\xff\x3c\x00\x00\x00\x00\x00\x00\x00\x20\x00\x00\x00\x54\x00\x00\x00\x70\xfe\xff\xff\x48\x00\x00\x00\x00\x41\x0e\x20\x9d\x04\x9e\x03\x42\x93\x02\x4e\xde\xdd\xd3\x0e\x00\x00\x00\x00\x10\x00\x00\x00\x78\x00\x00\x00\x9c\xfe\xff\xff\x04\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x01\x7a\x52\x00\x01\x7c\x1e\x01"), -Section(".comment", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x40\x06\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xc8\x1c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x38\x00\x09\x00\x40\x00\x1d\x00\x1c\x00\x06\x00\x00\x00\x04\x00\x00"), -Section(".interp", 0x238, "\x2f\x6c\x69\x62\x2f\x6c\x64\x2d\x6c\x69\x6e\x75\x78\x2d\x61\x61\x72\x63\x68\x36\x34\x2e\x73\x6f\x2e\x31\x00"), -Section(".note.gnu.build-id", 0x254, "\x04\x00\x00\x00\x14\x00\x00\x00\x03\x00\x00\x00\x47\x4e\x55\x00\xda\x84\x07\x05\x24\x86\x69\x97\xf9\x5e\xf5\x26\xd6\x01\xa2\xde\x2f\x6c\x2d\x49"), -Section(".note.ABI-tag", 0x278, "\x04\x00\x00\x00\x10\x00\x00\x00\x01\x00\x00\x00\x47\x4e\x55\x00\x00\x00\x00\x00\x03\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00"), -Section(".gnu.hash", 0x298, "\x01\x00\x00\x00\x01\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".dynsym", 0x2B8, "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x0b\x00\xc8\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x17\x00\x20\x10\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x48\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x22\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x22\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x73\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".dynstr", 0x390, "\x00\x5f\x5f\x63\x78\x61\x5f\x66\x69\x6e\x61\x6c\x69\x7a\x65\x00\x5f\x5f\x6c\x69\x62\x63\x5f\x73\x74\x61\x72\x74\x5f\x6d\x61\x69\x6e\x00\x61\x62\x6f\x72\x74\x00\x6c\x69\x62\x63\x2e\x73\x6f\x2e\x36\x00\x47\x4c\x49\x42\x43\x5f\x32\x2e\x31\x37\x00\x47\x4c\x49\x42\x43\x5f\x32\x2e\x33\x34\x00\x5f\x49\x54\x4d\x5f\x64\x65\x72\x65\x67\x69\x73\x74\x65\x72\x54\x4d\x43\x6c\x6f\x6e\x65\x54\x61\x62\x6c\x65\x00\x5f\x5f\x67\x6d\x6f\x6e\x5f\x73\x74\x61\x72\x74\x5f\x5f\x00\x5f\x49\x54\x4d\x5f\x72\x65\x67\x69\x73\x74\x65\x72\x54\x4d\x43\x6c\x6f\x6e\x65\x54\x61\x62\x6c\x65\x00"), -Section(".gnu.version", 0x41E, "\x00\x00\x00\x00\x00\x00\x02\x00\x01\x00\x03\x00\x01\x00\x03\x00\x01\x00"), -Section(".gnu.version_r", 0x430, "\x01\x00\x02\x00\x28\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x97\x91\x96\x06\x00\x00\x03\x00\x32\x00\x00\x00\x10\x00\x00\x00\xb4\x91\x96\x06\x00\x00\x02\x00\x3d\x00\x00\x00\x00\x00\x00\x00"), -Section(".rela.dyn", 0x460, "\xc8\x0d\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x50\x07\x00\x00\x00\x00\x00\x00\xd0\x0d\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\xd8\x0f\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x90\x07\x00\x00\x00\x00\x00\x00\x28\x10\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x28\x10\x01\x00\x00\x00\x00\x00\x38\x10\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x54\x07\x00\x00\x00\x00\x00\x00\x40\x10\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x68\x07\x00\x00\x00\x00\x00\x00\x48\x10\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x7c\x07\x00\x00\x00\x00\x00\x00\xc0\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xc8\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xd0\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe0\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".rela.plt", 0x568, "\x00\x10\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x08\x10\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x10\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x18\x10\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".init", 0x5C8, "\x1f\x20\x03\xd5\xfd\x7b\xbf\xa9\xfd\x03\x00\x91\x28\x00\x00\x94\xfd\x7b\xc1\xa8\xc0\x03\x5f\xd6"), -Section(".plt", 0x5E0, "\xf0\x7b\xbf\xa9\x90\x00\x00\x90\x11\xfe\x47\xf9\x10\xe2\x3f\x91\x20\x02\x1f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x90\x00\x00\xb0\x11\x02\x40\xf9\x10\x02\x00\x91\x20\x02\x1f\xd6\x90\x00\x00\xb0\x11\x06\x40\xf9\x10\x22\x00\x91\x20\x02\x1f\xd6\x90\x00\x00\xb0\x11\x0a\x40\xf9\x10\x42\x00\x91\x20\x02\x1f\xd6\x90\x00\x00\xb0\x11\x0e\x40\xf9\x10\x62\x00\x91\x20\x02\x1f\xd6"), -Section(".text", 0x640, "\x1f\x20\x03\xd5\x1d\x00\x80\xd2\x1e\x00\x80\xd2\xe5\x03\x00\xaa\xe1\x03\x40\xf9\xe2\x23\x00\x91\xe6\x03\x00\x91\x80\x00\x00\x90\x00\xec\x47\xf9\x03\x00\x80\xd2\x04\x00\x80\xd2\xe5\xff\xff\x97\xf0\xff\xff\x97\x80\x00\x00\x90\x00\xe8\x47\xf9\x40\x00\x00\xb4\xe8\xff\xff\x17\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x80\x00\x00\xb0\x00\x40\x01\x91\x81\x00\x00\xb0\x21\x40\x01\x91\x3f\x00\x00\xeb\xc0\x00\x00\x54\x81\x00\x00\x90\x21\xe0\x47\xf9\x61\x00\x00\xb4\xf0\x03\x01\xaa\x00\x02\x1f\xd6\xc0\x03\x5f\xd6\x80\x00\x00\xb0\x00\x40\x01\x91\x81\x00\x00\xb0\x21\x40\x01\x91\x21\x00\x00\xcb\x22\xfc\x7f\xd3\x41\x0c\x81\x8b\x21\xfc\x41\x93\xc1\x00\x00\xb4\x82\x00\x00\x90\x42\xf0\x47\xf9\x62\x00\x00\xb4\xf0\x03\x02\xaa\x00\x02\x1f\xd6\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\xfd\x7b\xbe\xa9\xfd\x03\x00\x91\xf3\x0b\x00\xf9\x93\x00\x00\xb0\x60\x42\x41\x39\x40\x01\x00\x35\x80\x00\x00\x90\x00\xe4\x47\xf9\x80\x00\x00\xb4\x80\x00\x00\xb0\x00\x14\x40\xf9\xb9\xff\xff\x97\xd8\xff\xff\x97\x20\x00\x80\x52\x60\x42\x01\x39\xf3\x0b\x40\xf9\xfd\x7b\xc2\xa8\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\xdc\xff\xff\x17\x88\x00\x00\xb0\x09\x31\x40\xb9\x29\x09\x00\x11\x09\x31\x00\xb9\xc0\x03\x5f\xd6\x88\x00\x00\xb0\x09\x31\x40\xb9\x29\x19\x00\x11\x09\x31\x00\xb9\xc0\x03\x5f\xd6\x88\x00\x00\xb0\x09\x31\x40\xb9\x29\x1d\x00\x51\x09\x31\x00\xb9\xc0\x03\x5f\xd6\xfd\x7b\xbe\xa9\xf3\x0b\x00\xf9\xfd\x03\x00\x91\x93\x00\x00\xb0\x73\xe2\x00\x91\x68\x02\x40\xf9\x00\x01\x3f\xd6\x68\x06\x40\xf9\x00\x01\x3f\xd6\x68\x0a\x40\xf9\x00\x01\x3f\xd6\xe0\x03\x1f\x2a\xf3\x0b\x40\xf9\xfd\x7b\xc2\xa8\xc0\x03\x5f\xd6"), -Section(".fini", 0x7CC, "\x1f\x20\x03\xd5\xfd\x7b\xbf\xa9\xfd\x03\x00\x91\xfd\x7b\xc1\xa8\xc0\x03\x5f\xd6"), -Section(".rodata", 0x7E0, "\x01\x00\x02\x00"), -Section(".eh_frame_hdr", 0x7E4, "\x01\x1b\x03\x3b\x50\x00\x00\x00\x09\x00\x00\x00\x5c\xfe\xff\xff\x68\x00\x00\x00\xac\xfe\xff\xff\x7c\x00\x00\x00\xdc\xfe\xff\xff\x90\x00\x00\x00\x1c\xff\xff\xff\xa4\x00\x00\x00\x6c\xff\xff\xff\xc8\x00\x00\x00\x70\xff\xff\xff\xf0\x00\x00\x00\x84\xff\xff\xff\x04\x01\x00\x00\x98\xff\xff\xff\x18\x01\x00\x00\xac\xff\xff\xff\x2c\x01\x00\x00"), -Section(".eh_frame", 0x838, "\x10\x00\x00\x00\x00\x00\x00\x00\x01\x7a\x52\x00\x04\x78\x1e\x01\x1b\x0c\x1f\x00\x10\x00\x00\x00\x18\x00\x00\x00\xec\xfd\xff\xff\x34\x00\x00\x00\x00\x41\x07\x1e\x10\x00\x00\x00\x2c\x00\x00\x00\x28\xfe\xff\xff\x30\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x40\x00\x00\x00\x44\xfe\xff\xff\x3c\x00\x00\x00\x00\x00\x00\x00\x20\x00\x00\x00\x54\x00\x00\x00\x70\xfe\xff\xff\x48\x00\x00\x00\x00\x41\x0e\x20\x9d\x04\x9e\x03\x42\x93\x02\x4e\xde\xdd\xd3\x0e\x00\x00\x00\x00\x10\x00\x00\x00\x78\x00\x00\x00\x9c\xfe\xff\xff\x04\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x01\x7a\x52\x00\x01\x7c\x1e\x01\x1b\x0c\x1f\x00\x10\x00\x00\x00\x18\x00\x00\x00\x78\xfe\xff\xff\x14\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x2c\x00\x00\x00\x78\xfe\xff\xff\x14\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x40\x00\x00\x00\x78\xfe\xff\xff\x14\x00\x00\x00\x00\x00\x00\x00\x24\x00\x00\x00\x54\x00\x00\x00\x78\xfe\xff\xff\x3c\x00\x00\x00\x00\x44\x0e\x20\x48\x0c\x1d\x20\x93\x04\x9e\x06\x9d\x08\x64\x0c\x1f\x20\x48\x0e\x00\xd3\xde\xdd\x00\x00\x00\x00"), -Section(".fini_array", 0x10DD0, "\x00\x07\x00\x00\x00\x00\x00\x00"), -Section(".dynamic", 0x10DD8, "\x01\x00\x00\x00\x00\x00\x00\x00\x28\x00\x00\x00\x00\x00\x00\x00\x0c\x00\x00\x00\x00\x00\x00\x00\xc8\x05\x00\x00\x00\x00\x00\x00\x0d\x00\x00\x00\x00\x00\x00\x00\xcc\x07\x00\x00\x00\x00\x00\x00\x19\x00\x00\x00\x00\x00\x00\x00\xc8\x0d\x01\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x1a\x00\x00\x00\x00\x00\x00\x00\xd0\x0d\x01\x00\x00\x00\x00\x00\x1c\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\xf5\xfe\xff\x6f\x00\x00\x00\x00\x98\x02\x00\x00\x00\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x90\x03\x00\x00\x00\x00\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\xb8\x02\x00\x00\x00\x00\x00\x00\x0a\x00\x00\x00\x00\x00\x00\x00\x8d\x00\x00\x00\x00\x00\x00\x00\x0b\x00\x00\x00\x00\x00\x00\x00\x18\x00\x00\x00\x00\x00\x00\x00\x15\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\xe8\x0f\x01\x00\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x60\x00\x00\x00\x00\x00\x00\x00\x14\x00\x00\x00\x00\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x17\x00\x00\x00\x00\x00\x00\x00\x68\x05\x00\x00\x00\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x60\x04\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x08\x01\x00\x00\x00\x00\x00\x00\x09\x00\x00\x00\x00\x00\x00\x00\x18\x00\x00\x00\x00\x00\x00\x00\xfb\xff\xff\x6f\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\xfe\xff\xff\x6f\x00\x00\x00\x00\x30\x04\x00\x00\x00\x00\x00\x00\xff\xff\xff\x6f\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\xf0\xff\xff\x6f\x00\x00\x00\x00\x1e\x04\x00\x00\x00\x00\x00\x00\xf9\xff\xff\x6f\x00\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".got", 0x10FB8, "\xd8\x0d\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x90\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".got.plt", 0x10FE8, "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe0\x05\x00\x00\x00\x00\x00\x00\xe0\x05\x00\x00\x00\x00\x00\x00\xe0\x05\x00\x00\x00\x00\x00\x00\xe0\x05\x00\x00\x00\x00\x00\x00"), -Section(".data", 0x11020, "\x00\x00\x00\x00\x00\x00\x00\x00\x28\x10\x01\x00\x00\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x54\x07\x00\x00\x00\x00\x00\x00\x68\x07\x00\x00\x00\x00\x00\x00\x7c\x07\x00\x00\x00\x00\x00\x00"), -Section(".init_array", 0x10DC8, "\x50\x07\x00\x00\x00\x00\x00\x00")]), -Memmap([Annotation(Region(0x0,0x93B), Attr("segment","02 0 2364")), -Annotation(Region(0x640,0x673), Attr("symbol","\"_start\"")), -Annotation(Region(0x0,0x102), Attr("section","\".shstrtab\"")), -Annotation(Region(0x0,0x25A), Attr("section","\".strtab\"")), -Annotation(Region(0x0,0x8CF), Attr("section","\".symtab\"")), -Annotation(Region(0x0,0x46), Attr("section","\".comment\"")), -Annotation(Region(0x238,0x252), Attr("section","\".interp\"")), -Annotation(Region(0x254,0x277), Attr("section","\".note.gnu.build-id\"")), -Annotation(Region(0x278,0x297), Attr("section","\".note.ABI-tag\"")), -Annotation(Region(0x298,0x2B3), Attr("section","\".gnu.hash\"")), -Annotation(Region(0x2B8,0x38F), Attr("section","\".dynsym\"")), -Annotation(Region(0x390,0x41C), Attr("section","\".dynstr\"")), -Annotation(Region(0x41E,0x42F), Attr("section","\".gnu.version\"")), -Annotation(Region(0x430,0x45F), Attr("section","\".gnu.version_r\"")), -Annotation(Region(0x460,0x567), Attr("section","\".rela.dyn\"")), -Annotation(Region(0x568,0x5C7), Attr("section","\".rela.plt\"")), -Annotation(Region(0x5C8,0x5DF), Attr("section","\".init\"")), -Annotation(Region(0x5E0,0x63F), Attr("section","\".plt\"")), -Annotation(Region(0x5C8,0x5DF), Attr("code-region","()")), -Annotation(Region(0x5E0,0x63F), Attr("code-region","()")), -Annotation(Region(0x640,0x673), Attr("symbol-info","_start 0x640 52")), -Annotation(Region(0x674,0x687), Attr("symbol","\"call_weak_fn\"")), -Annotation(Region(0x674,0x687), Attr("symbol-info","call_weak_fn 0x674 20")), -Annotation(Region(0x754,0x767), Attr("symbol","\"add_two\"")), -Annotation(Region(0x754,0x767), Attr("symbol-info","add_two 0x754 20")), -Annotation(Region(0x768,0x77B), Attr("symbol","\"add_six\"")), -Annotation(Region(0x768,0x77B), Attr("symbol-info","add_six 0x768 20")), -Annotation(Region(0x77C,0x78F), Attr("symbol","\"sub_seven\"")), -Annotation(Region(0x640,0x7CB), Attr("section","\".text\"")), -Annotation(Region(0x640,0x7CB), Attr("code-region","()")), -Annotation(Region(0x77C,0x78F), Attr("symbol-info","sub_seven 0x77C 20")), -Annotation(Region(0x790,0x7CB), Attr("symbol","\"main\"")), -Annotation(Region(0x790,0x7CB), Attr("symbol-info","main 0x790 60")), -Annotation(Region(0x7CC,0x7DF), Attr("section","\".fini\"")), -Annotation(Region(0x7CC,0x7DF), Attr("code-region","()")), -Annotation(Region(0x7E0,0x7E3), Attr("section","\".rodata\"")), -Annotation(Region(0x7E4,0x837), Attr("section","\".eh_frame_hdr\"")), -Annotation(Region(0x838,0x93B), Attr("section","\".eh_frame\"")), -Annotation(Region(0x10DC8,0x1104F), Attr("segment","03 0x10DC8 656")), -Annotation(Region(0x10DD0,0x10DD7), Attr("section","\".fini_array\"")), -Annotation(Region(0x10DD8,0x10FB7), Attr("section","\".dynamic\"")), -Annotation(Region(0x10FB8,0x10FE7), Attr("section","\".got\"")), -Annotation(Region(0x10FE8,0x1101F), Attr("section","\".got.plt\"")), -Annotation(Region(0x11020,0x1104F), Attr("section","\".data\"")), -Annotation(Region(0x10DC8,0x10DCF), Attr("section","\".init_array\""))]), -Program(Tid(1_763, "%000006e3"), Attrs([]), - Subs([Sub(Tid(1_707, "@__cxa_finalize"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x610"), -Attr("stub","()")]), "__cxa_finalize", Args([Arg(Tid(1_764, "%000006e4"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("__cxa_finalize_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(1_075, "@__cxa_finalize"), - Attrs([Attr("address","0x610")]), Phis([]), -Defs([Def(Tid(1_323, "%0000052b"), Attrs([Attr("address","0x610"), -Attr("insn","adrp x16, #69632")]), Var("R16",Imm(64)), Int(69632,64)), -Def(Tid(1_330, "%00000532"), Attrs([Attr("address","0x614"), -Attr("insn","ldr x17, [x16, #0x8]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(1_336, "%00000538"), Attrs([Attr("address","0x618"), -Attr("insn","add x16, x16, #0x8")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(8,64)))]), Jmps([Call(Tid(1_341, "%0000053d"), - Attrs([Attr("address","0x61C"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), -Sub(Tid(1_708, "@__do_global_dtors_aux"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x700")]), - "__do_global_dtors_aux", Args([Arg(Tid(1_765, "%000006e5"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("__do_global_dtors_aux_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(710, "@__do_global_dtors_aux"), - Attrs([Attr("address","0x700")]), Phis([]), Defs([Def(Tid(714, "%000002ca"), - Attrs([Attr("address","0x700"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("#3",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(18446744073709551584,64))), -Def(Tid(720, "%000002d0"), Attrs([Attr("address","0x700"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("#3",Imm(64)),Var("R29",Imm(64)),LittleEndian(),64)), -Def(Tid(726, "%000002d6"), Attrs([Attr("address","0x700"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("#3",Imm(64)),Int(8,64)),Var("R30",Imm(64)),LittleEndian(),64)), -Def(Tid(730, "%000002da"), Attrs([Attr("address","0x700"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("R31",Imm(64)), -Var("#3",Imm(64))), Def(Tid(736, "%000002e0"), - Attrs([Attr("address","0x704"), Attr("insn","mov x29, sp")]), - Var("R29",Imm(64)), Var("R31",Imm(64))), Def(Tid(744, "%000002e8"), - Attrs([Attr("address","0x708"), Attr("insn","str x19, [sp, #0x10]")]), - Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(16,64)),Var("R19",Imm(64)),LittleEndian(),64)), -Def(Tid(749, "%000002ed"), Attrs([Attr("address","0x70C"), -Attr("insn","adrp x19, #69632")]), Var("R19",Imm(64)), Int(69632,64)), -Def(Tid(756, "%000002f4"), Attrs([Attr("address","0x710"), -Attr("insn","ldrb w0, [x19, #0x50]")]), Var("R0",Imm(64)), -UNSIGNED(64,Load(Var("mem",Mem(64,8)),PLUS(Var("R19",Imm(64)),Int(80,64)),LittleEndian(),8)))]), -Jmps([Goto(Tid(763, "%000002fb"), Attrs([Attr("address","0x714"), -Attr("insn","cbnz w0, #0x28")]), - NEQ(Extract(31,0,Var("R0",Imm(64))),Int(0,32)), -Direct(Tid(761, "%000002f9"))), Goto(Tid(1_753, "%000006d9"), Attrs([]), - Int(1,1), Direct(Tid(1_020, "%000003fc")))])), Blk(Tid(1_020, "%000003fc"), - Attrs([Attr("address","0x718")]), Phis([]), -Defs([Def(Tid(1_023, "%000003ff"), Attrs([Attr("address","0x718"), -Attr("insn","adrp x0, #65536")]), Var("R0",Imm(64)), Int(65536,64)), -Def(Tid(1_030, "%00000406"), Attrs([Attr("address","0x71C"), -Attr("insn","ldr x0, [x0, #0xfc8]")]), Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(4040,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(1_036, "%0000040c"), Attrs([Attr("address","0x720"), -Attr("insn","cbz x0, #0x10")]), EQ(Var("R0",Imm(64)),Int(0,64)), -Direct(Tid(1_034, "%0000040a"))), Goto(Tid(1_754, "%000006da"), Attrs([]), - Int(1,1), Direct(Tid(1_059, "%00000423")))])), Blk(Tid(1_059, "%00000423"), - Attrs([Attr("address","0x724")]), Phis([]), -Defs([Def(Tid(1_062, "%00000426"), Attrs([Attr("address","0x724"), -Attr("insn","adrp x0, #69632")]), Var("R0",Imm(64)), Int(69632,64)), -Def(Tid(1_069, "%0000042d"), Attrs([Attr("address","0x728"), -Attr("insn","ldr x0, [x0, #0x28]")]), Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(40,64)),LittleEndian(),64)), -Def(Tid(1_074, "%00000432"), Attrs([Attr("address","0x72C"), -Attr("insn","bl #-0x11c")]), Var("R30",Imm(64)), Int(1840,64))]), -Jmps([Call(Tid(1_077, "%00000435"), Attrs([Attr("address","0x72C"), -Attr("insn","bl #-0x11c")]), Int(1,1), -(Direct(Tid(1_707, "@__cxa_finalize")),Direct(Tid(1_034, "%0000040a"))))])), -Blk(Tid(1_034, "%0000040a"), Attrs([Attr("address","0x730")]), Phis([]), -Defs([Def(Tid(1_042, "%00000412"), Attrs([Attr("address","0x730"), -Attr("insn","bl #-0xa0")]), Var("R30",Imm(64)), Int(1844,64))]), -Jmps([Call(Tid(1_044, "%00000414"), Attrs([Attr("address","0x730"), -Attr("insn","bl #-0xa0")]), Int(1,1), -(Direct(Tid(1_723, "@deregister_tm_clones")),Direct(Tid(1_046, "%00000416"))))])), -Blk(Tid(1_046, "%00000416"), Attrs([Attr("address","0x734")]), Phis([]), -Defs([Def(Tid(1_049, "%00000419"), Attrs([Attr("address","0x734"), -Attr("insn","mov w0, #0x1")]), Var("R0",Imm(64)), Int(1,64)), -Def(Tid(1_057, "%00000421"), Attrs([Attr("address","0x738"), -Attr("insn","strb w0, [x19, #0x50]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R19",Imm(64)),Int(80,64)),Extract(7,0,Var("R0",Imm(64))),LittleEndian(),8))]), -Jmps([Goto(Tid(1_755, "%000006db"), Attrs([]), Int(1,1), -Direct(Tid(761, "%000002f9")))])), Blk(Tid(761, "%000002f9"), - Attrs([Attr("address","0x73C")]), Phis([]), Defs([Def(Tid(771, "%00000303"), - Attrs([Attr("address","0x73C"), Attr("insn","ldr x19, [sp, #0x10]")]), - Var("R19",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(16,64)),LittleEndian(),64)), -Def(Tid(778, "%0000030a"), Attrs([Attr("address","0x740"), -Attr("insn","ldp x29, x30, [sp], #0x20")]), Var("R29",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(783, "%0000030f"), Attrs([Attr("address","0x740"), -Attr("insn","ldp x29, x30, [sp], #0x20")]), Var("R30",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(787, "%00000313"), Attrs([Attr("address","0x740"), -Attr("insn","ldp x29, x30, [sp], #0x20")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(32,64)))]), Jmps([Call(Tid(792, "%00000318"), - Attrs([Attr("address","0x744"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), Sub(Tid(1_712, "@__libc_start_main"), - Attrs([Attr("c.proto","signed (*)(signed (*)(signed , char** , char** );* main, signed , char** , \nvoid* auxv)"), -Attr("address","0x600"), Attr("stub","()")]), "__libc_start_main", - Args([Arg(Tid(1_766, "%000006e6"), - Attrs([Attr("c.layout","**[ : 64]"), -Attr("c.data","Top:u64 ptr ptr"), -Attr("c.type","signed (*)(signed , char** , char** );*")]), - Var("__libc_start_main_main",Imm(64)), Var("R0",Imm(64)), In()), -Arg(Tid(1_767, "%000006e7"), Attrs([Attr("c.layout","[signed : 32]"), -Attr("c.data","Top:u32"), Attr("c.type","signed")]), - Var("__libc_start_main_arg2",Imm(32)), LOW(32,Var("R1",Imm(64))), In()), -Arg(Tid(1_768, "%000006e8"), Attrs([Attr("c.layout","**[char : 8]"), -Attr("c.data","Top:u8 ptr ptr"), Attr("c.type","char**")]), - Var("__libc_start_main_arg3",Imm(64)), Var("R2",Imm(64)), Both()), -Arg(Tid(1_769, "%000006e9"), Attrs([Attr("c.layout","*[ : 8]"), -Attr("c.data","{} ptr"), Attr("c.type","void*")]), - Var("__libc_start_main_auxv",Imm(64)), Var("R3",Imm(64)), Both()), -Arg(Tid(1_770, "%000006ea"), Attrs([Attr("c.layout","[signed : 32]"), -Attr("c.data","Top:u32"), Attr("c.type","signed")]), - Var("__libc_start_main_result",Imm(32)), LOW(32,Var("R0",Imm(64))), -Out())]), Blks([Blk(Tid(543, "@__libc_start_main"), - Attrs([Attr("address","0x600")]), Phis([]), -Defs([Def(Tid(1_301, "%00000515"), Attrs([Attr("address","0x600"), -Attr("insn","adrp x16, #69632")]), Var("R16",Imm(64)), Int(69632,64)), -Def(Tid(1_308, "%0000051c"), Attrs([Attr("address","0x604"), -Attr("insn","ldr x17, [x16]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R16",Imm(64)),LittleEndian(),64)), -Def(Tid(1_314, "%00000522"), Attrs([Attr("address","0x608"), -Attr("insn","add x16, x16, #0x0")]), Var("R16",Imm(64)), -Var("R16",Imm(64)))]), Jmps([Call(Tid(1_319, "%00000527"), - Attrs([Attr("address","0x60C"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), Sub(Tid(1_713, "@_fini"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x7CC")]), - "_fini", Args([Arg(Tid(1_771, "%000006eb"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("_fini_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(31, "@_fini"), - Attrs([Attr("address","0x7CC")]), Phis([]), Defs([Def(Tid(37, "%00000025"), - Attrs([Attr("address","0x7D0"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("#0",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(18446744073709551600,64))), -Def(Tid(43, "%0000002b"), Attrs([Attr("address","0x7D0"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("#0",Imm(64)),Var("R29",Imm(64)),LittleEndian(),64)), -Def(Tid(49, "%00000031"), Attrs([Attr("address","0x7D0"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("#0",Imm(64)),Int(8,64)),Var("R30",Imm(64)),LittleEndian(),64)), -Def(Tid(53, "%00000035"), Attrs([Attr("address","0x7D0"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("R31",Imm(64)), -Var("#0",Imm(64))), Def(Tid(59, "%0000003b"), Attrs([Attr("address","0x7D4"), -Attr("insn","mov x29, sp")]), Var("R29",Imm(64)), Var("R31",Imm(64))), -Def(Tid(66, "%00000042"), Attrs([Attr("address","0x7D8"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R29",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(71, "%00000047"), Attrs([Attr("address","0x7D8"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R30",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(75, "%0000004b"), Attrs([Attr("address","0x7D8"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(16,64)))]), Jmps([Call(Tid(80, "%00000050"), - Attrs([Attr("address","0x7DC"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), Sub(Tid(1_714, "@_init"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x5C8")]), - "_init", Args([Arg(Tid(1_772, "%000006ec"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("_init_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(1_519, "@_init"), - Attrs([Attr("address","0x5C8")]), Phis([]), -Defs([Def(Tid(1_525, "%000005f5"), Attrs([Attr("address","0x5CC"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("#6",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(18446744073709551600,64))), -Def(Tid(1_531, "%000005fb"), Attrs([Attr("address","0x5CC"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("#6",Imm(64)),Var("R29",Imm(64)),LittleEndian(),64)), -Def(Tid(1_537, "%00000601"), Attrs([Attr("address","0x5CC"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("#6",Imm(64)),Int(8,64)),Var("R30",Imm(64)),LittleEndian(),64)), -Def(Tid(1_541, "%00000605"), Attrs([Attr("address","0x5CC"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("R31",Imm(64)), -Var("#6",Imm(64))), Def(Tid(1_547, "%0000060b"), - Attrs([Attr("address","0x5D0"), Attr("insn","mov x29, sp")]), - Var("R29",Imm(64)), Var("R31",Imm(64))), Def(Tid(1_552, "%00000610"), - Attrs([Attr("address","0x5D4"), Attr("insn","bl #0xa0")]), - Var("R30",Imm(64)), Int(1496,64))]), Jmps([Call(Tid(1_554, "%00000612"), - Attrs([Attr("address","0x5D4"), Attr("insn","bl #0xa0")]), Int(1,1), -(Direct(Tid(1_721, "@call_weak_fn")),Direct(Tid(1_556, "%00000614"))))])), -Blk(Tid(1_556, "%00000614"), Attrs([Attr("address","0x5D8")]), Phis([]), -Defs([Def(Tid(1_561, "%00000619"), Attrs([Attr("address","0x5D8"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R29",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(1_566, "%0000061e"), Attrs([Attr("address","0x5D8"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R30",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(1_570, "%00000622"), Attrs([Attr("address","0x5D8"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(16,64)))]), Jmps([Call(Tid(1_575, "%00000627"), - Attrs([Attr("address","0x5DC"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), Sub(Tid(1_715, "@_start"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x640"), -Attr("stub","()"), Attr("entry-point","()")]), "_start", - Args([Arg(Tid(1_773, "%000006ed"), Attrs([Attr("c.layout","[signed : 32]"), -Attr("c.data","Top:u32"), Attr("c.type","signed")]), - Var("_start_result",Imm(32)), LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(480, "@_start"), Attrs([Attr("address","0x640")]), Phis([]), -Defs([Def(Tid(485, "%000001e5"), Attrs([Attr("address","0x644"), -Attr("insn","mov x29, #0x0")]), Var("R29",Imm(64)), Int(0,64)), -Def(Tid(490, "%000001ea"), Attrs([Attr("address","0x648"), -Attr("insn","mov x30, #0x0")]), Var("R30",Imm(64)), Int(0,64)), -Def(Tid(496, "%000001f0"), Attrs([Attr("address","0x64C"), -Attr("insn","mov x5, x0")]), Var("R5",Imm(64)), Var("R0",Imm(64))), -Def(Tid(503, "%000001f7"), Attrs([Attr("address","0x650"), -Attr("insn","ldr x1, [sp]")]), Var("R1",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(509, "%000001fd"), Attrs([Attr("address","0x654"), -Attr("insn","add x2, sp, #0x8")]), Var("R2",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(8,64))), Def(Tid(515, "%00000203"), - Attrs([Attr("address","0x658"), Attr("insn","mov x6, sp")]), - Var("R6",Imm(64)), Var("R31",Imm(64))), Def(Tid(520, "%00000208"), - Attrs([Attr("address","0x65C"), Attr("insn","adrp x0, #65536")]), - Var("R0",Imm(64)), Int(65536,64)), Def(Tid(527, "%0000020f"), - Attrs([Attr("address","0x660"), Attr("insn","ldr x0, [x0, #0xfd8]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(4056,64)),LittleEndian(),64)), -Def(Tid(532, "%00000214"), Attrs([Attr("address","0x664"), -Attr("insn","mov x3, #0x0")]), Var("R3",Imm(64)), Int(0,64)), -Def(Tid(537, "%00000219"), Attrs([Attr("address","0x668"), -Attr("insn","mov x4, #0x0")]), Var("R4",Imm(64)), Int(0,64)), -Def(Tid(542, "%0000021e"), Attrs([Attr("address","0x66C"), -Attr("insn","bl #-0x6c")]), Var("R30",Imm(64)), Int(1648,64))]), -Jmps([Call(Tid(545, "%00000221"), Attrs([Attr("address","0x66C"), -Attr("insn","bl #-0x6c")]), Int(1,1), -(Direct(Tid(1_712, "@__libc_start_main")),Direct(Tid(547, "%00000223"))))])), -Blk(Tid(547, "%00000223"), Attrs([Attr("address","0x670")]), Phis([]), -Defs([Def(Tid(550, "%00000226"), Attrs([Attr("address","0x670"), -Attr("insn","bl #-0x40")]), Var("R30",Imm(64)), Int(1652,64))]), -Jmps([Call(Tid(553, "%00000229"), Attrs([Attr("address","0x670"), -Attr("insn","bl #-0x40")]), Int(1,1), -(Direct(Tid(1_718, "@abort")),Direct(Tid(1_756, "%000006dc"))))])), -Blk(Tid(1_756, "%000006dc"), Attrs([]), Phis([]), Defs([]), -Jmps([Call(Tid(1_757, "%000006dd"), Attrs([]), Int(1,1), -(Direct(Tid(1_721, "@call_weak_fn")),))]))])), Sub(Tid(1_718, "@abort"), - Attrs([Attr("noreturn","()"), Attr("c.proto","void (*)(void)"), -Attr("address","0x630"), Attr("stub","()")]), "abort", Args([]), -Blks([Blk(Tid(551, "@abort"), Attrs([Attr("address","0x630")]), Phis([]), -Defs([Def(Tid(1_367, "%00000557"), Attrs([Attr("address","0x630"), -Attr("insn","adrp x16, #69632")]), Var("R16",Imm(64)), Int(69632,64)), -Def(Tid(1_374, "%0000055e"), Attrs([Attr("address","0x634"), -Attr("insn","ldr x17, [x16, #0x18]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(24,64)),LittleEndian(),64)), -Def(Tid(1_380, "%00000564"), Attrs([Attr("address","0x638"), -Attr("insn","add x16, x16, #0x18")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(24,64)))]), Jmps([Call(Tid(1_385, "%00000569"), - Attrs([Attr("address","0x63C"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), Sub(Tid(1_719, "@add_six"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x768")]), - "add_six", Args([Arg(Tid(1_774, "%000006ee"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("add_six_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(833, "@add_six"), - Attrs([Attr("address","0x768")]), Phis([]), Defs([Def(Tid(836, "%00000344"), - Attrs([Attr("address","0x768"), Attr("insn","adrp x8, #69632")]), - Var("R8",Imm(64)), Int(69632,64)), Def(Tid(843, "%0000034b"), - Attrs([Attr("address","0x76C"), Attr("insn","ldr w9, [x8, #0x30]")]), - Var("R9",Imm(64)), -UNSIGNED(64,Load(Var("mem",Mem(64,8)),PLUS(Var("R8",Imm(64)),Int(48,64)),LittleEndian(),32))), -Def(Tid(849, "%00000351"), Attrs([Attr("address","0x770"), -Attr("insn","add w9, w9, #0x6")]), Var("R9",Imm(64)), -UNSIGNED(64,PLUS(Extract(31,0,Var("R9",Imm(64))),Int(6,32)))), -Def(Tid(857, "%00000359"), Attrs([Attr("address","0x774"), -Attr("insn","str w9, [x8, #0x30]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R8",Imm(64)),Int(48,64)),Extract(31,0,Var("R9",Imm(64))),LittleEndian(),32))]), -Jmps([Call(Tid(862, "%0000035e"), Attrs([Attr("address","0x778"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))]))])), -Sub(Tid(1_720, "@add_two"), Attrs([Attr("c.proto","signed (*)(void)"), -Attr("address","0x754")]), "add_two", Args([Arg(Tid(1_775, "%000006ef"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("add_two_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(802, "@add_two"), - Attrs([Attr("address","0x754")]), Phis([]), Defs([Def(Tid(805, "%00000325"), - Attrs([Attr("address","0x754"), Attr("insn","adrp x8, #69632")]), - Var("R8",Imm(64)), Int(69632,64)), Def(Tid(812, "%0000032c"), - Attrs([Attr("address","0x758"), Attr("insn","ldr w9, [x8, #0x30]")]), - Var("R9",Imm(64)), -UNSIGNED(64,Load(Var("mem",Mem(64,8)),PLUS(Var("R8",Imm(64)),Int(48,64)),LittleEndian(),32))), -Def(Tid(818, "%00000332"), Attrs([Attr("address","0x75C"), -Attr("insn","add w9, w9, #0x2")]), Var("R9",Imm(64)), -UNSIGNED(64,PLUS(Extract(31,0,Var("R9",Imm(64))),Int(2,32)))), -Def(Tid(826, "%0000033a"), Attrs([Attr("address","0x760"), -Attr("insn","str w9, [x8, #0x30]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R8",Imm(64)),Int(48,64)),Extract(31,0,Var("R9",Imm(64))),LittleEndian(),32))]), -Jmps([Call(Tid(831, "%0000033f"), Attrs([Attr("address","0x764"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))]))])), -Sub(Tid(1_721, "@call_weak_fn"), Attrs([Attr("c.proto","signed (*)(void)"), -Attr("address","0x674")]), "call_weak_fn", Args([Arg(Tid(1_776, "%000006f0"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("call_weak_fn_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(555, "@call_weak_fn"), - Attrs([Attr("address","0x674")]), Phis([]), Defs([Def(Tid(558, "%0000022e"), - Attrs([Attr("address","0x674"), Attr("insn","adrp x0, #65536")]), - Var("R0",Imm(64)), Int(65536,64)), Def(Tid(565, "%00000235"), - Attrs([Attr("address","0x678"), Attr("insn","ldr x0, [x0, #0xfd0]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(4048,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(571, "%0000023b"), Attrs([Attr("address","0x67C"), -Attr("insn","cbz x0, #0x8")]), EQ(Var("R0",Imm(64)),Int(0,64)), -Direct(Tid(569, "%00000239"))), Goto(Tid(1_758, "%000006de"), Attrs([]), - Int(1,1), Direct(Tid(1_139, "%00000473")))])), Blk(Tid(569, "%00000239"), - Attrs([Attr("address","0x684")]), Phis([]), Defs([]), -Jmps([Call(Tid(577, "%00000241"), Attrs([Attr("address","0x684"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))])), -Blk(Tid(1_139, "%00000473"), Attrs([Attr("address","0x680")]), Phis([]), -Defs([]), Jmps([Goto(Tid(1_142, "%00000476"), Attrs([Attr("address","0x680"), -Attr("insn","b #-0x60")]), Int(1,1), -Direct(Tid(1_140, "@__gmon_start__")))])), Blk(Tid(1_140, "@__gmon_start__"), - Attrs([Attr("address","0x620")]), Phis([]), -Defs([Def(Tid(1_345, "%00000541"), Attrs([Attr("address","0x620"), -Attr("insn","adrp x16, #69632")]), Var("R16",Imm(64)), Int(69632,64)), -Def(Tid(1_352, "%00000548"), Attrs([Attr("address","0x624"), -Attr("insn","ldr x17, [x16, #0x10]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(16,64)),LittleEndian(),64)), -Def(Tid(1_358, "%0000054e"), Attrs([Attr("address","0x628"), -Attr("insn","add x16, x16, #0x10")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(16,64)))]), Jmps([Call(Tid(1_363, "%00000553"), - Attrs([Attr("address","0x62C"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), -Sub(Tid(1_723, "@deregister_tm_clones"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x690")]), - "deregister_tm_clones", Args([Arg(Tid(1_777, "%000006f1"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("deregister_tm_clones_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(583, "@deregister_tm_clones"), - Attrs([Attr("address","0x690")]), Phis([]), Defs([Def(Tid(586, "%0000024a"), - Attrs([Attr("address","0x690"), Attr("insn","adrp x0, #69632")]), - Var("R0",Imm(64)), Int(69632,64)), Def(Tid(592, "%00000250"), - Attrs([Attr("address","0x694"), Attr("insn","add x0, x0, #0x50")]), - Var("R0",Imm(64)), PLUS(Var("R0",Imm(64)),Int(80,64))), -Def(Tid(597, "%00000255"), Attrs([Attr("address","0x698"), -Attr("insn","adrp x1, #69632")]), Var("R1",Imm(64)), Int(69632,64)), -Def(Tid(603, "%0000025b"), Attrs([Attr("address","0x69C"), -Attr("insn","add x1, x1, #0x50")]), Var("R1",Imm(64)), -PLUS(Var("R1",Imm(64)),Int(80,64))), Def(Tid(609, "%00000261"), - Attrs([Attr("address","0x6A0"), Attr("insn","cmp x1, x0")]), - Var("#1",Imm(64)), NOT(Var("R0",Imm(64)))), Def(Tid(614, "%00000266"), - Attrs([Attr("address","0x6A0"), Attr("insn","cmp x1, x0")]), - Var("#2",Imm(64)), PLUS(Var("R1",Imm(64)),NOT(Var("R0",Imm(64))))), -Def(Tid(620, "%0000026c"), Attrs([Attr("address","0x6A0"), -Attr("insn","cmp x1, x0")]), Var("VF",Imm(1)), -NEQ(SIGNED(65,PLUS(Var("#2",Imm(64)),Int(1,64))),PLUS(PLUS(SIGNED(65,Var("R1",Imm(64))),SIGNED(65,Var("#1",Imm(64)))),Int(1,65)))), -Def(Tid(626, "%00000272"), Attrs([Attr("address","0x6A0"), -Attr("insn","cmp x1, x0")]), Var("CF",Imm(1)), -NEQ(UNSIGNED(65,PLUS(Var("#2",Imm(64)),Int(1,64))),PLUS(PLUS(UNSIGNED(65,Var("R1",Imm(64))),UNSIGNED(65,Var("#1",Imm(64)))),Int(1,65)))), -Def(Tid(630, "%00000276"), Attrs([Attr("address","0x6A0"), -Attr("insn","cmp x1, x0")]), Var("ZF",Imm(1)), -EQ(PLUS(Var("#2",Imm(64)),Int(1,64)),Int(0,64))), Def(Tid(634, "%0000027a"), - Attrs([Attr("address","0x6A0"), Attr("insn","cmp x1, x0")]), - Var("NF",Imm(1)), Extract(63,63,PLUS(Var("#2",Imm(64)),Int(1,64))))]), -Jmps([Goto(Tid(640, "%00000280"), Attrs([Attr("address","0x6A4"), -Attr("insn","b.eq #0x18")]), EQ(Var("ZF",Imm(1)),Int(1,1)), -Direct(Tid(638, "%0000027e"))), Goto(Tid(1_759, "%000006df"), Attrs([]), - Int(1,1), Direct(Tid(1_109, "%00000455")))])), Blk(Tid(1_109, "%00000455"), - Attrs([Attr("address","0x6A8")]), Phis([]), -Defs([Def(Tid(1_112, "%00000458"), Attrs([Attr("address","0x6A8"), -Attr("insn","adrp x1, #65536")]), Var("R1",Imm(64)), Int(65536,64)), -Def(Tid(1_119, "%0000045f"), Attrs([Attr("address","0x6AC"), -Attr("insn","ldr x1, [x1, #0xfc0]")]), Var("R1",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R1",Imm(64)),Int(4032,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(1_124, "%00000464"), Attrs([Attr("address","0x6B0"), -Attr("insn","cbz x1, #0xc")]), EQ(Var("R1",Imm(64)),Int(0,64)), -Direct(Tid(638, "%0000027e"))), Goto(Tid(1_760, "%000006e0"), Attrs([]), - Int(1,1), Direct(Tid(1_128, "%00000468")))])), Blk(Tid(638, "%0000027e"), - Attrs([Attr("address","0x6BC")]), Phis([]), Defs([]), -Jmps([Call(Tid(646, "%00000286"), Attrs([Attr("address","0x6BC"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))])), -Blk(Tid(1_128, "%00000468"), Attrs([Attr("address","0x6B4")]), Phis([]), -Defs([Def(Tid(1_132, "%0000046c"), Attrs([Attr("address","0x6B4"), -Attr("insn","mov x16, x1")]), Var("R16",Imm(64)), Var("R1",Imm(64)))]), -Jmps([Call(Tid(1_137, "%00000471"), Attrs([Attr("address","0x6B8"), -Attr("insn","br x16")]), Int(1,1), (Indirect(Var("R16",Imm(64))),))]))])), -Sub(Tid(1_726, "@frame_dummy"), Attrs([Attr("c.proto","signed (*)(void)"), -Attr("address","0x750")]), "frame_dummy", Args([Arg(Tid(1_778, "%000006f2"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("frame_dummy_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(798, "@frame_dummy"), - Attrs([Attr("address","0x750")]), Phis([]), Defs([]), -Jmps([Call(Tid(800, "%00000320"), Attrs([Attr("address","0x750"), -Attr("insn","b #-0x90")]), Int(1,1), -(Direct(Tid(1_728, "@register_tm_clones")),))]))])), Sub(Tid(1_727, "@main"), - Attrs([Attr("c.proto","signed (*)(signed argc, const char** argv)"), -Attr("address","0x790")]), "main", Args([Arg(Tid(1_779, "%000006f3"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("main_argc",Imm(32)), -LOW(32,Var("R0",Imm(64))), In()), Arg(Tid(1_780, "%000006f4"), - Attrs([Attr("c.layout","**[char : 8]"), Attr("c.data","Top:u8 ptr ptr"), -Attr("c.type"," const char**")]), Var("main_argv",Imm(64)), -Var("R1",Imm(64)), Both()), Arg(Tid(1_781, "%000006f5"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("main_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(895, "@main"), - Attrs([Attr("address","0x790")]), Phis([]), Defs([Def(Tid(899, "%00000383"), - Attrs([Attr("address","0x790"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("#4",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(18446744073709551584,64))), -Def(Tid(905, "%00000389"), Attrs([Attr("address","0x790"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("#4",Imm(64)),Var("R29",Imm(64)),LittleEndian(),64)), -Def(Tid(911, "%0000038f"), Attrs([Attr("address","0x790"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("#4",Imm(64)),Int(8,64)),Var("R30",Imm(64)),LittleEndian(),64)), -Def(Tid(915, "%00000393"), Attrs([Attr("address","0x790"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("R31",Imm(64)), -Var("#4",Imm(64))), Def(Tid(923, "%0000039b"), - Attrs([Attr("address","0x794"), Attr("insn","str x19, [sp, #0x10]")]), - Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(16,64)),Var("R19",Imm(64)),LittleEndian(),64)), -Def(Tid(929, "%000003a1"), Attrs([Attr("address","0x798"), -Attr("insn","mov x29, sp")]), Var("R29",Imm(64)), Var("R31",Imm(64))), -Def(Tid(934, "%000003a6"), Attrs([Attr("address","0x79C"), -Attr("insn","adrp x19, #69632")]), Var("R19",Imm(64)), Int(69632,64)), -Def(Tid(940, "%000003ac"), Attrs([Attr("address","0x7A0"), -Attr("insn","add x19, x19, #0x38")]), Var("R19",Imm(64)), -PLUS(Var("R19",Imm(64)),Int(56,64))), Def(Tid(947, "%000003b3"), - Attrs([Attr("address","0x7A4"), Attr("insn","ldr x8, [x19]")]), - Var("R8",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R19",Imm(64)),LittleEndian(),64)), -Def(Tid(952, "%000003b8"), Attrs([Attr("address","0x7A8"), -Attr("insn","blr x8")]), Var("R30",Imm(64)), Int(1964,64))]), -Jmps([Call(Tid(955, "%000003bb"), Attrs([Attr("address","0x7A8"), -Attr("insn","blr x8")]), Int(1,1), -(Indirect(Var("R8",Imm(64))),Direct(Tid(957, "%000003bd"))))])), -Blk(Tid(957, "%000003bd"), Attrs([Attr("address","0x7AC")]), Phis([]), -Defs([Def(Tid(962, "%000003c2"), Attrs([Attr("address","0x7AC"), -Attr("insn","ldr x8, [x19, #0x8]")]), Var("R8",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R19",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(967, "%000003c7"), Attrs([Attr("address","0x7B0"), -Attr("insn","blr x8")]), Var("R30",Imm(64)), Int(1972,64))]), -Jmps([Call(Tid(970, "%000003ca"), Attrs([Attr("address","0x7B0"), -Attr("insn","blr x8")]), Int(1,1), -(Indirect(Var("R8",Imm(64))),Direct(Tid(972, "%000003cc"))))])), -Blk(Tid(972, "%000003cc"), Attrs([Attr("address","0x7B4")]), Phis([]), -Defs([Def(Tid(977, "%000003d1"), Attrs([Attr("address","0x7B4"), -Attr("insn","ldr x8, [x19, #0x10]")]), Var("R8",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R19",Imm(64)),Int(16,64)),LittleEndian(),64)), -Def(Tid(982, "%000003d6"), Attrs([Attr("address","0x7B8"), -Attr("insn","blr x8")]), Var("R30",Imm(64)), Int(1980,64))]), -Jmps([Call(Tid(985, "%000003d9"), Attrs([Attr("address","0x7B8"), -Attr("insn","blr x8")]), Int(1,1), -(Indirect(Var("R8",Imm(64))),Direct(Tid(987, "%000003db"))))])), -Blk(Tid(987, "%000003db"), Attrs([Attr("address","0x7BC")]), Phis([]), -Defs([Def(Tid(990, "%000003de"), Attrs([Attr("address","0x7BC"), -Attr("insn","mov w0, wzr")]), Var("R0",Imm(64)), Int(0,64)), -Def(Tid(997, "%000003e5"), Attrs([Attr("address","0x7C0"), -Attr("insn","ldr x19, [sp, #0x10]")]), Var("R19",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(16,64)),LittleEndian(),64)), -Def(Tid(1_004, "%000003ec"), Attrs([Attr("address","0x7C4"), -Attr("insn","ldp x29, x30, [sp], #0x20")]), Var("R29",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(1_009, "%000003f1"), Attrs([Attr("address","0x7C4"), -Attr("insn","ldp x29, x30, [sp], #0x20")]), Var("R30",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(1_013, "%000003f5"), Attrs([Attr("address","0x7C4"), -Attr("insn","ldp x29, x30, [sp], #0x20")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(32,64)))]), Jmps([Call(Tid(1_018, "%000003fa"), - Attrs([Attr("address","0x7C8"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), -Sub(Tid(1_728, "@register_tm_clones"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x6C0")]), - "register_tm_clones", Args([Arg(Tid(1_782, "%000006f6"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("register_tm_clones_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(648, "@register_tm_clones"), Attrs([Attr("address","0x6C0")]), - Phis([]), Defs([Def(Tid(651, "%0000028b"), Attrs([Attr("address","0x6C0"), -Attr("insn","adrp x0, #69632")]), Var("R0",Imm(64)), Int(69632,64)), -Def(Tid(657, "%00000291"), Attrs([Attr("address","0x6C4"), -Attr("insn","add x0, x0, #0x50")]), Var("R0",Imm(64)), -PLUS(Var("R0",Imm(64)),Int(80,64))), Def(Tid(662, "%00000296"), - Attrs([Attr("address","0x6C8"), Attr("insn","adrp x1, #69632")]), - Var("R1",Imm(64)), Int(69632,64)), Def(Tid(668, "%0000029c"), - Attrs([Attr("address","0x6CC"), Attr("insn","add x1, x1, #0x50")]), - Var("R1",Imm(64)), PLUS(Var("R1",Imm(64)),Int(80,64))), -Def(Tid(675, "%000002a3"), Attrs([Attr("address","0x6D0"), -Attr("insn","sub x1, x1, x0")]), Var("R1",Imm(64)), -PLUS(PLUS(Var("R1",Imm(64)),NOT(Var("R0",Imm(64)))),Int(1,64))), -Def(Tid(681, "%000002a9"), Attrs([Attr("address","0x6D4"), -Attr("insn","lsr x2, x1, #63")]), Var("R2",Imm(64)), -Concat(Int(0,63),Extract(63,63,Var("R1",Imm(64))))), -Def(Tid(688, "%000002b0"), Attrs([Attr("address","0x6D8"), -Attr("insn","add x1, x2, x1, asr #3")]), Var("R1",Imm(64)), -PLUS(Var("R2",Imm(64)),ARSHIFT(Var("R1",Imm(64)),Int(3,3)))), -Def(Tid(694, "%000002b6"), Attrs([Attr("address","0x6DC"), -Attr("insn","asr x1, x1, #1")]), Var("R1",Imm(64)), -SIGNED(64,Extract(63,1,Var("R1",Imm(64)))))]), -Jmps([Goto(Tid(700, "%000002bc"), Attrs([Attr("address","0x6E0"), -Attr("insn","cbz x1, #0x18")]), EQ(Var("R1",Imm(64)),Int(0,64)), -Direct(Tid(698, "%000002ba"))), Goto(Tid(1_761, "%000006e1"), Attrs([]), - Int(1,1), Direct(Tid(1_079, "%00000437")))])), Blk(Tid(1_079, "%00000437"), - Attrs([Attr("address","0x6E4")]), Phis([]), -Defs([Def(Tid(1_082, "%0000043a"), Attrs([Attr("address","0x6E4"), -Attr("insn","adrp x2, #65536")]), Var("R2",Imm(64)), Int(65536,64)), -Def(Tid(1_089, "%00000441"), Attrs([Attr("address","0x6E8"), -Attr("insn","ldr x2, [x2, #0xfe0]")]), Var("R2",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R2",Imm(64)),Int(4064,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(1_094, "%00000446"), Attrs([Attr("address","0x6EC"), -Attr("insn","cbz x2, #0xc")]), EQ(Var("R2",Imm(64)),Int(0,64)), -Direct(Tid(698, "%000002ba"))), Goto(Tid(1_762, "%000006e2"), Attrs([]), - Int(1,1), Direct(Tid(1_098, "%0000044a")))])), Blk(Tid(698, "%000002ba"), - Attrs([Attr("address","0x6F8")]), Phis([]), Defs([]), -Jmps([Call(Tid(706, "%000002c2"), Attrs([Attr("address","0x6F8"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))])), -Blk(Tid(1_098, "%0000044a"), Attrs([Attr("address","0x6F0")]), Phis([]), -Defs([Def(Tid(1_102, "%0000044e"), Attrs([Attr("address","0x6F0"), -Attr("insn","mov x16, x2")]), Var("R16",Imm(64)), Var("R2",Imm(64)))]), -Jmps([Call(Tid(1_107, "%00000453"), Attrs([Attr("address","0x6F4"), -Attr("insn","br x16")]), Int(1,1), (Indirect(Var("R16",Imm(64))),))]))])), -Sub(Tid(1_731, "@sub_seven"), Attrs([Attr("c.proto","signed (*)(void)"), -Attr("address","0x77C")]), "sub_seven", Args([Arg(Tid(1_783, "%000006f7"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("sub_seven_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(864, "@sub_seven"), - Attrs([Attr("address","0x77C")]), Phis([]), Defs([Def(Tid(867, "%00000363"), - Attrs([Attr("address","0x77C"), Attr("insn","adrp x8, #69632")]), - Var("R8",Imm(64)), Int(69632,64)), Def(Tid(874, "%0000036a"), - Attrs([Attr("address","0x780"), Attr("insn","ldr w9, [x8, #0x30]")]), - Var("R9",Imm(64)), -UNSIGNED(64,Load(Var("mem",Mem(64,8)),PLUS(Var("R8",Imm(64)),Int(48,64)),LittleEndian(),32))), -Def(Tid(880, "%00000370"), Attrs([Attr("address","0x784"), -Attr("insn","sub w9, w9, #0x7")]), Var("R9",Imm(64)), -UNSIGNED(64,PLUS(Extract(31,0,Var("R9",Imm(64))),Int(4294967289,32)))), -Def(Tid(888, "%00000378"), Attrs([Attr("address","0x788"), -Attr("insn","str w9, [x8, #0x30]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R8",Imm(64)),Int(48,64)),Extract(31,0,Var("R9",Imm(64))),LittleEndian(),32))]), -Jmps([Call(Tid(893, "%0000037d"), Attrs([Attr("address","0x78C"), -Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))]))]))) \ No newline at end of file diff --git a/src/test/indirect_calls/jumptable2/clang_O2/jumptable2.bir b/src/test/indirect_calls/jumptable2/clang_O2/jumptable2.bir deleted file mode 100644 index 40b62f74b..000000000 --- a/src/test/indirect_calls/jumptable2/clang_O2/jumptable2.bir +++ /dev/null @@ -1,281 +0,0 @@ -000006e3: program -000006ab: sub __cxa_finalize(__cxa_finalize_result) -000006e4: __cxa_finalize_result :: out u32 = low:32[R0] - -00000433: -0000052b: R16 := 0x11000 -00000532: R17 := mem[R16 + 8, el]:u64 -00000538: R16 := R16 + 8 -0000053d: call R17 with noreturn - -000006ac: sub __do_global_dtors_aux(__do_global_dtors_aux_result) -000006e5: __do_global_dtors_aux_result :: out u32 = low:32[R0] - -000002c6: -000002ca: #3 := R31 - 0x20 -000002d0: mem := mem with [#3, el]:u64 <- R29 -000002d6: mem := mem with [#3 + 8, el]:u64 <- R30 -000002da: R31 := #3 -000002e0: R29 := R31 -000002e8: mem := mem with [R31 + 0x10, el]:u64 <- R19 -000002ed: R19 := 0x11000 -000002f4: R0 := pad:64[mem[R19 + 0x50]] -000002fb: when 31:0[R0] <> 0 goto %000002f9 -000006d9: goto %000003fc - -000003fc: -000003ff: R0 := 0x10000 -00000406: R0 := mem[R0 + 0xFC8, el]:u64 -0000040c: when R0 = 0 goto %0000040a -000006da: goto %00000423 - -00000423: -00000426: R0 := 0x11000 -0000042d: R0 := mem[R0 + 0x28, el]:u64 -00000432: R30 := 0x730 -00000435: call @__cxa_finalize with return %0000040a - -0000040a: -00000412: R30 := 0x734 -00000414: call @deregister_tm_clones with return %00000416 - -00000416: -00000419: R0 := 1 -00000421: mem := mem with [R19 + 0x50] <- 7:0[R0] -000006db: goto %000002f9 - -000002f9: -00000303: R19 := mem[R31 + 0x10, el]:u64 -0000030a: R29 := mem[R31, el]:u64 -0000030f: R30 := mem[R31 + 8, el]:u64 -00000313: R31 := R31 + 0x20 -00000318: call R30 with noreturn - -000006b0: sub __libc_start_main(__libc_start_main_main, __libc_start_main_arg2, __libc_start_main_arg3, __libc_start_main_auxv, __libc_start_main_result) -000006e6: __libc_start_main_main :: in u64 = R0 -000006e7: __libc_start_main_arg2 :: in u32 = low:32[R1] -000006e8: __libc_start_main_arg3 :: in out u64 = R2 -000006e9: __libc_start_main_auxv :: in out u64 = R3 -000006ea: __libc_start_main_result :: out u32 = low:32[R0] - -0000021f: -00000515: R16 := 0x11000 -0000051c: R17 := mem[R16, el]:u64 -00000522: R16 := R16 -00000527: call R17 with noreturn - -000006b1: sub _fini(_fini_result) -000006eb: _fini_result :: out u32 = low:32[R0] - -0000001f: -00000025: #0 := R31 - 0x10 -0000002b: mem := mem with [#0, el]:u64 <- R29 -00000031: mem := mem with [#0 + 8, el]:u64 <- R30 -00000035: R31 := #0 -0000003b: R29 := R31 -00000042: R29 := mem[R31, el]:u64 -00000047: R30 := mem[R31 + 8, el]:u64 -0000004b: R31 := R31 + 0x10 -00000050: call R30 with noreturn - -000006b2: sub _init(_init_result) -000006ec: _init_result :: out u32 = low:32[R0] - -000005ef: -000005f5: #6 := R31 - 0x10 -000005fb: mem := mem with [#6, el]:u64 <- R29 -00000601: mem := mem with [#6 + 8, el]:u64 <- R30 -00000605: R31 := #6 -0000060b: R29 := R31 -00000610: R30 := 0x5D8 -00000612: call @call_weak_fn with return %00000614 - -00000614: -00000619: R29 := mem[R31, el]:u64 -0000061e: R30 := mem[R31 + 8, el]:u64 -00000622: R31 := R31 + 0x10 -00000627: call R30 with noreturn - -000006b3: sub _start(_start_result) -000006ed: _start_result :: out u32 = low:32[R0] - -000001e0: -000001e5: R29 := 0 -000001ea: R30 := 0 -000001f0: R5 := R0 -000001f7: R1 := mem[R31, el]:u64 -000001fd: R2 := R31 + 8 -00000203: R6 := R31 -00000208: R0 := 0x10000 -0000020f: R0 := mem[R0 + 0xFD8, el]:u64 -00000214: R3 := 0 -00000219: R4 := 0 -0000021e: R30 := 0x670 -00000221: call @__libc_start_main with return %00000223 - -00000223: -00000226: R30 := 0x674 -00000229: call @abort with return %000006dc - -000006dc: -000006dd: call @call_weak_fn with noreturn - -000006b6: sub abort() - - -00000227: -00000557: R16 := 0x11000 -0000055e: R17 := mem[R16 + 0x18, el]:u64 -00000564: R16 := R16 + 0x18 -00000569: call R17 with noreturn - -000006b7: sub add_six(add_six_result) -000006ee: add_six_result :: out u32 = low:32[R0] - -00000341: -00000344: R8 := 0x11000 -0000034b: R9 := pad:64[mem[R8 + 0x30, el]:u32] -00000351: R9 := pad:64[31:0[R9] + 6] -00000359: mem := mem with [R8 + 0x30, el]:u32 <- 31:0[R9] -0000035e: call R30 with noreturn - -000006b8: sub add_two(add_two_result) -000006ef: add_two_result :: out u32 = low:32[R0] - -00000322: -00000325: R8 := 0x11000 -0000032c: R9 := pad:64[mem[R8 + 0x30, el]:u32] -00000332: R9 := pad:64[31:0[R9] + 2] -0000033a: mem := mem with [R8 + 0x30, el]:u32 <- 31:0[R9] -0000033f: call R30 with noreturn - -000006b9: sub call_weak_fn(call_weak_fn_result) -000006f0: call_weak_fn_result :: out u32 = low:32[R0] - -0000022b: -0000022e: R0 := 0x10000 -00000235: R0 := mem[R0 + 0xFD0, el]:u64 -0000023b: when R0 = 0 goto %00000239 -000006de: goto %00000473 - -00000239: -00000241: call R30 with noreturn - -00000473: -00000476: goto @__gmon_start__ - -00000474: -00000541: R16 := 0x11000 -00000548: R17 := mem[R16 + 0x10, el]:u64 -0000054e: R16 := R16 + 0x10 -00000553: call R17 with noreturn - -000006bb: sub deregister_tm_clones(deregister_tm_clones_result) -000006f1: deregister_tm_clones_result :: out u32 = low:32[R0] - -00000247: -0000024a: R0 := 0x11000 -00000250: R0 := R0 + 0x50 -00000255: R1 := 0x11000 -0000025b: R1 := R1 + 0x50 -00000261: #1 := ~R0 -00000266: #2 := R1 + ~R0 -0000026c: VF := extend:65[#2 + 1] <> extend:65[R1] + extend:65[#1] + 1 -00000272: CF := pad:65[#2 + 1] <> pad:65[R1] + pad:65[#1] + 1 -00000276: ZF := #2 + 1 = 0 -0000027a: NF := 63:63[#2 + 1] -00000280: when ZF goto %0000027e -000006df: goto %00000455 - -00000455: -00000458: R1 := 0x10000 -0000045f: R1 := mem[R1 + 0xFC0, el]:u64 -00000464: when R1 = 0 goto %0000027e -000006e0: goto %00000468 - -0000027e: -00000286: call R30 with noreturn - -00000468: -0000046c: R16 := R1 -00000471: call R16 with noreturn - -000006be: sub frame_dummy(frame_dummy_result) -000006f2: frame_dummy_result :: out u32 = low:32[R0] - -0000031e: -00000320: call @register_tm_clones with noreturn - -000006bf: sub main(main_argc, main_argv, main_result) -000006f3: main_argc :: in u32 = low:32[R0] -000006f4: main_argv :: in out u64 = R1 -000006f5: main_result :: out u32 = low:32[R0] - -0000037f: -00000383: #4 := R31 - 0x20 -00000389: mem := mem with [#4, el]:u64 <- R29 -0000038f: mem := mem with [#4 + 8, el]:u64 <- R30 -00000393: R31 := #4 -0000039b: mem := mem with [R31 + 0x10, el]:u64 <- R19 -000003a1: R29 := R31 -000003a6: R19 := 0x11000 -000003ac: R19 := R19 + 0x38 -000003b3: R8 := mem[R19, el]:u64 -000003b8: R30 := 0x7AC -000003bb: call R8 with return %000003bd - -000003bd: -000003c2: R8 := mem[R19 + 8, el]:u64 -000003c7: R30 := 0x7B4 -000003ca: call R8 with return %000003cc - -000003cc: -000003d1: R8 := mem[R19 + 0x10, el]:u64 -000003d6: R30 := 0x7BC -000003d9: call R8 with return %000003db - -000003db: -000003de: R0 := 0 -000003e5: R19 := mem[R31 + 0x10, el]:u64 -000003ec: R29 := mem[R31, el]:u64 -000003f1: R30 := mem[R31 + 8, el]:u64 -000003f5: R31 := R31 + 0x20 -000003fa: call R30 with noreturn - -000006c0: sub register_tm_clones(register_tm_clones_result) -000006f6: register_tm_clones_result :: out u32 = low:32[R0] - -00000288: -0000028b: R0 := 0x11000 -00000291: R0 := R0 + 0x50 -00000296: R1 := 0x11000 -0000029c: R1 := R1 + 0x50 -000002a3: R1 := R1 + ~R0 + 1 -000002a9: R2 := 0.63:63[R1] -000002b0: R1 := R2 + (R1 ~>> 3) -000002b6: R1 := extend:64[63:1[R1]] -000002bc: when R1 = 0 goto %000002ba -000006e1: goto %00000437 - -00000437: -0000043a: R2 := 0x10000 -00000441: R2 := mem[R2 + 0xFE0, el]:u64 -00000446: when R2 = 0 goto %000002ba -000006e2: goto %0000044a - -000002ba: -000002c2: call R30 with noreturn - -0000044a: -0000044e: R16 := R2 -00000453: call R16 with noreturn - -000006c3: sub sub_seven(sub_seven_result) -000006f7: sub_seven_result :: out u32 = low:32[R0] - -00000360: -00000363: R8 := 0x11000 -0000036a: R9 := pad:64[mem[R8 + 0x30, el]:u32] -00000370: R9 := pad:64[31:0[R9] - 7] -00000378: mem := mem with [R8 + 0x30, el]:u32 <- 31:0[R9] -0000037d: call R30 with noreturn diff --git a/src/test/indirect_calls/jumptable2/clang_O2/jumptable2.md5sum b/src/test/indirect_calls/jumptable2/clang_O2/jumptable2.md5sum new file mode 100644 index 000000000..c522ef240 --- /dev/null +++ b/src/test/indirect_calls/jumptable2/clang_O2/jumptable2.md5sum @@ -0,0 +1,4 @@ +8ed249d2745623a377d7d4cf48b529d8 indirect_calls/jumptable2/clang_O2/a.out +f3580dbcac41cd338f2f098fc5943cd0 indirect_calls/jumptable2/clang_O2/jumptable2.relf +b40727bbe97560b722505aaac512e9e3 indirect_calls/jumptable2/clang_O2/jumptable2.adt +44b0a44319f4082259be23aa461fd41e indirect_calls/jumptable2/clang_O2/jumptable2.bir diff --git a/src/test/indirect_calls/jumptable2/clang_O2/jumptable2.relf b/src/test/indirect_calls/jumptable2/clang_O2/jumptable2.relf deleted file mode 100644 index f8e17df47..000000000 --- a/src/test/indirect_calls/jumptable2/clang_O2/jumptable2.relf +++ /dev/null @@ -1,130 +0,0 @@ - -Relocation section '.rela.dyn' at offset 0x460 contains 11 entries: - Offset Info Type Symbol's Value Symbol's Name + Addend -0000000000010dc8 0000000000000403 R_AARCH64_RELATIVE 750 -0000000000010dd0 0000000000000403 R_AARCH64_RELATIVE 700 -0000000000010fd8 0000000000000403 R_AARCH64_RELATIVE 790 -0000000000011028 0000000000000403 R_AARCH64_RELATIVE 11028 -0000000000011038 0000000000000403 R_AARCH64_RELATIVE 754 -0000000000011040 0000000000000403 R_AARCH64_RELATIVE 768 -0000000000011048 0000000000000403 R_AARCH64_RELATIVE 77c -0000000000010fc0 0000000400000401 R_AARCH64_GLOB_DAT 0000000000000000 _ITM_deregisterTMCloneTable + 0 -0000000000010fc8 0000000500000401 R_AARCH64_GLOB_DAT 0000000000000000 __cxa_finalize@GLIBC_2.17 + 0 -0000000000010fd0 0000000600000401 R_AARCH64_GLOB_DAT 0000000000000000 __gmon_start__ + 0 -0000000000010fe0 0000000800000401 R_AARCH64_GLOB_DAT 0000000000000000 _ITM_registerTMCloneTable + 0 - -Relocation section '.rela.plt' at offset 0x568 contains 4 entries: - Offset Info Type Symbol's Value Symbol's Name + Addend -0000000000011000 0000000300000402 R_AARCH64_JUMP_SLOT 0000000000000000 __libc_start_main@GLIBC_2.34 + 0 -0000000000011008 0000000500000402 R_AARCH64_JUMP_SLOT 0000000000000000 __cxa_finalize@GLIBC_2.17 + 0 -0000000000011010 0000000600000402 R_AARCH64_JUMP_SLOT 0000000000000000 __gmon_start__ + 0 -0000000000011018 0000000700000402 R_AARCH64_JUMP_SLOT 0000000000000000 abort@GLIBC_2.17 + 0 - -Symbol table '.dynsym' contains 9 entries: - Num: Value Size Type Bind Vis Ndx Name - 0: 0000000000000000 0 NOTYPE LOCAL DEFAULT UND - 1: 00000000000005c8 0 SECTION LOCAL DEFAULT 11 .init - 2: 0000000000011020 0 SECTION LOCAL DEFAULT 23 .data - 3: 0000000000000000 0 FUNC GLOBAL DEFAULT UND __libc_start_main@GLIBC_2.34 (2) - 4: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_deregisterTMCloneTable - 5: 0000000000000000 0 FUNC WEAK DEFAULT UND __cxa_finalize@GLIBC_2.17 (3) - 6: 0000000000000000 0 NOTYPE WEAK DEFAULT UND __gmon_start__ - 7: 0000000000000000 0 FUNC GLOBAL DEFAULT UND abort@GLIBC_2.17 (3) - 8: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_registerTMCloneTable - -Symbol table '.symtab' contains 94 entries: - Num: Value Size Type Bind Vis Ndx Name - 0: 0000000000000000 0 NOTYPE LOCAL DEFAULT UND - 1: 0000000000000238 0 SECTION LOCAL DEFAULT 1 .interp - 2: 0000000000000254 0 SECTION LOCAL DEFAULT 2 .note.gnu.build-id - 3: 0000000000000278 0 SECTION LOCAL DEFAULT 3 .note.ABI-tag - 4: 0000000000000298 0 SECTION LOCAL DEFAULT 4 .gnu.hash - 5: 00000000000002b8 0 SECTION LOCAL DEFAULT 5 .dynsym - 6: 0000000000000390 0 SECTION LOCAL DEFAULT 6 .dynstr - 7: 000000000000041e 0 SECTION LOCAL DEFAULT 7 .gnu.version - 8: 0000000000000430 0 SECTION LOCAL DEFAULT 8 .gnu.version_r - 9: 0000000000000460 0 SECTION LOCAL DEFAULT 9 .rela.dyn - 10: 0000000000000568 0 SECTION LOCAL DEFAULT 10 .rela.plt - 11: 00000000000005c8 0 SECTION LOCAL DEFAULT 11 .init - 12: 00000000000005e0 0 SECTION LOCAL DEFAULT 12 .plt - 13: 0000000000000640 0 SECTION LOCAL DEFAULT 13 .text - 14: 00000000000007cc 0 SECTION LOCAL DEFAULT 14 .fini - 15: 00000000000007e0 0 SECTION LOCAL DEFAULT 15 .rodata - 16: 00000000000007e4 0 SECTION LOCAL DEFAULT 16 .eh_frame_hdr - 17: 0000000000000838 0 SECTION LOCAL DEFAULT 17 .eh_frame - 18: 0000000000010dc8 0 SECTION LOCAL DEFAULT 18 .init_array - 19: 0000000000010dd0 0 SECTION LOCAL DEFAULT 19 .fini_array - 20: 0000000000010dd8 0 SECTION LOCAL DEFAULT 20 .dynamic - 21: 0000000000010fb8 0 SECTION LOCAL DEFAULT 21 .got - 22: 0000000000010fe8 0 SECTION LOCAL DEFAULT 22 .got.plt - 23: 0000000000011020 0 SECTION LOCAL DEFAULT 23 .data - 24: 0000000000011050 0 SECTION LOCAL DEFAULT 24 .bss - 25: 0000000000000000 0 SECTION LOCAL DEFAULT 25 .comment - 26: 0000000000000000 0 FILE LOCAL DEFAULT ABS Scrt1.o - 27: 0000000000000278 0 NOTYPE LOCAL DEFAULT 3 $d - 28: 0000000000000278 32 OBJECT LOCAL DEFAULT 3 __abi_tag - 29: 0000000000000640 0 NOTYPE LOCAL DEFAULT 13 $x - 30: 000000000000084c 0 NOTYPE LOCAL DEFAULT 17 $d - 31: 00000000000007e0 0 NOTYPE LOCAL DEFAULT 15 $d - 32: 0000000000000000 0 FILE LOCAL DEFAULT ABS crti.o - 33: 0000000000000674 0 NOTYPE LOCAL DEFAULT 13 $x - 34: 0000000000000674 20 FUNC LOCAL DEFAULT 13 call_weak_fn - 35: 00000000000005c8 0 NOTYPE LOCAL DEFAULT 11 $x - 36: 00000000000007cc 0 NOTYPE LOCAL DEFAULT 14 $x - 37: 0000000000000000 0 FILE LOCAL DEFAULT ABS crtn.o - 38: 00000000000005d8 0 NOTYPE LOCAL DEFAULT 11 $x - 39: 00000000000007d8 0 NOTYPE LOCAL DEFAULT 14 $x - 40: 0000000000000000 0 FILE LOCAL DEFAULT ABS crtstuff.c - 41: 0000000000000690 0 NOTYPE LOCAL DEFAULT 13 $x - 42: 0000000000000690 0 FUNC LOCAL DEFAULT 13 deregister_tm_clones - 43: 00000000000006c0 0 FUNC LOCAL DEFAULT 13 register_tm_clones - 44: 0000000000011028 0 NOTYPE LOCAL DEFAULT 23 $d - 45: 0000000000000700 0 FUNC LOCAL DEFAULT 13 __do_global_dtors_aux - 46: 0000000000011050 1 OBJECT LOCAL DEFAULT 24 completed.0 - 47: 0000000000010dd0 0 NOTYPE LOCAL DEFAULT 19 $d - 48: 0000000000010dd0 0 OBJECT LOCAL DEFAULT 19 __do_global_dtors_aux_fini_array_entry - 49: 0000000000000750 0 FUNC LOCAL DEFAULT 13 frame_dummy - 50: 0000000000010dc8 0 NOTYPE LOCAL DEFAULT 18 $d - 51: 0000000000010dc8 0 OBJECT LOCAL DEFAULT 18 __frame_dummy_init_array_entry - 52: 0000000000000860 0 NOTYPE LOCAL DEFAULT 17 $d - 53: 0000000000011050 0 NOTYPE LOCAL DEFAULT 24 $d - 54: 0000000000000000 0 FILE LOCAL DEFAULT ABS jumptable2.c - 55: 0000000000000754 0 NOTYPE LOCAL DEFAULT 13 $x.0 - 56: 0000000000011030 0 NOTYPE LOCAL DEFAULT 23 $d.1 - 57: 000000000000002a 0 NOTYPE LOCAL DEFAULT 25 $d.2 - 58: 00000000000008c0 0 NOTYPE LOCAL DEFAULT 17 $d.3 - 59: 0000000000000000 0 FILE LOCAL DEFAULT ABS crtstuff.c - 60: 0000000000000938 0 NOTYPE LOCAL DEFAULT 17 $d - 61: 0000000000000938 0 OBJECT LOCAL DEFAULT 17 __FRAME_END__ - 62: 0000000000000000 0 FILE LOCAL DEFAULT ABS - 63: 0000000000010dd8 0 OBJECT LOCAL DEFAULT ABS _DYNAMIC - 64: 00000000000007e4 0 NOTYPE LOCAL DEFAULT 16 __GNU_EH_FRAME_HDR - 65: 0000000000010fb8 0 OBJECT LOCAL DEFAULT ABS _GLOBAL_OFFSET_TABLE_ - 66: 00000000000005e0 0 NOTYPE LOCAL DEFAULT 12 $x - 67: 0000000000000000 0 FUNC GLOBAL DEFAULT UND __libc_start_main@GLIBC_2.34 - 68: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_deregisterTMCloneTable - 69: 0000000000011020 0 NOTYPE WEAK DEFAULT 23 data_start - 70: 0000000000011050 0 NOTYPE GLOBAL DEFAULT 24 __bss_start__ - 71: 0000000000000000 0 FUNC WEAK DEFAULT UND __cxa_finalize@GLIBC_2.17 - 72: 0000000000011058 0 NOTYPE GLOBAL DEFAULT 24 _bss_end__ - 73: 0000000000011050 0 NOTYPE GLOBAL DEFAULT 23 _edata - 74: 0000000000011030 4 OBJECT GLOBAL DEFAULT 23 x - 75: 00000000000007cc 0 FUNC GLOBAL HIDDEN 14 _fini - 76: 0000000000011058 0 NOTYPE GLOBAL DEFAULT 24 __bss_end__ - 77: 0000000000011020 0 NOTYPE GLOBAL DEFAULT 23 __data_start - 78: 0000000000000000 0 NOTYPE WEAK DEFAULT UND __gmon_start__ - 79: 0000000000011028 0 OBJECT GLOBAL HIDDEN 23 __dso_handle - 80: 0000000000000000 0 FUNC GLOBAL DEFAULT UND abort@GLIBC_2.17 - 81: 00000000000007e0 4 OBJECT GLOBAL DEFAULT 15 _IO_stdin_used - 82: 0000000000000754 20 FUNC GLOBAL DEFAULT 13 add_two - 83: 0000000000011058 0 NOTYPE GLOBAL DEFAULT 24 _end - 84: 0000000000000640 52 FUNC GLOBAL DEFAULT 13 _start - 85: 0000000000011058 0 NOTYPE GLOBAL DEFAULT 24 __end__ - 86: 0000000000000768 20 FUNC GLOBAL DEFAULT 13 add_six - 87: 0000000000011050 0 NOTYPE GLOBAL DEFAULT 24 __bss_start - 88: 0000000000000790 60 FUNC GLOBAL DEFAULT 13 main - 89: 0000000000011050 0 OBJECT GLOBAL HIDDEN 23 __TMC_END__ - 90: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_registerTMCloneTable - 91: 0000000000011038 24 OBJECT GLOBAL DEFAULT 23 jump_table - 92: 00000000000005c8 0 FUNC GLOBAL HIDDEN 11 _init - 93: 000000000000077c 20 FUNC GLOBAL DEFAULT 13 sub_seven diff --git a/src/test/indirect_calls/jumptable2/clang_pic/jumptable2.adt b/src/test/indirect_calls/jumptable2/clang_pic/jumptable2.adt deleted file mode 100644 index 6ad76b9f1..000000000 --- a/src/test/indirect_calls/jumptable2/clang_pic/jumptable2.adt +++ /dev/null @@ -1,656 +0,0 @@ -Project(Attrs([Attr("filename","\"clang_pic/jumptable2.out\""), -Attr("image-specification","(declare abi (name str))\n(declare arch (name str))\n(declare base-address (addr int))\n(declare bias (off int))\n(declare bits (size int))\n(declare code-region (addr int) (size int) (off int))\n(declare code-start (addr int))\n(declare entry-point (addr int))\n(declare external-reference (addr int) (name str))\n(declare format (name str))\n(declare is-executable (flag bool))\n(declare is-little-endian (flag bool))\n(declare llvm:base-address (addr int))\n(declare llvm:code-entry (name str) (off int) (size int))\n(declare llvm:coff-import-library (name str))\n(declare llvm:coff-virtual-section-header (name str) (addr int) (size int))\n(declare llvm:elf-program-header (name str) (off int) (size int))\n(declare llvm:elf-program-header-flags (name str) (ld bool) (r bool) \n (w bool) (x bool))\n(declare llvm:elf-virtual-program-header (name str) (addr int) (size int))\n(declare llvm:entry-point (addr int))\n(declare llvm:macho-symbol (name str) (value int))\n(declare llvm:name-reference (at int) (name str))\n(declare llvm:relocation (at int) (addr int))\n(declare llvm:section-entry (name str) (addr int) (size int) (off int))\n(declare llvm:section-flags (name str) (r bool) (w bool) (x bool))\n(declare llvm:segment-command (name str) (off int) (size int))\n(declare llvm:segment-command-flags (name str) (r bool) (w bool) (x bool))\n(declare llvm:symbol-entry (name str) (addr int) (size int) (off int)\n (value int))\n(declare llvm:virtual-segment-command (name str) (addr int) (size int))\n(declare mapped (addr int) (size int) (off int))\n(declare named-region (addr int) (size int) (name str))\n(declare named-symbol (addr int) (name str))\n(declare require (name str))\n(declare section (addr int) (size int))\n(declare segment (addr int) (size int) (r bool) (w bool) (x bool))\n(declare subarch (name str))\n(declare symbol-chunk (addr int) (size int) (root int))\n(declare symbol-value (addr int) (value int))\n(declare system (name str))\n(declare vendor (name str))\n\n(abi unknown)\n(arch aarch64)\n(base-address 0)\n(bias 0)\n(bits 64)\n(code-region 2104 20 2104)\n(code-region 1664 440 1664)\n(code-region 1552 96 1552)\n(code-region 1528 24 1528)\n(code-start 1716)\n(code-start 1940)\n(code-start 1664)\n(code-start 1964)\n(code-start 2012)\n(code-start 1988)\n(entry-point 1664)\n(external-reference 69552 _ITM_deregisterTMCloneTable)\n(external-reference 69560 __cxa_finalize)\n(external-reference 69576 __gmon_start__)\n(external-reference 69592 _ITM_registerTMCloneTable)\n(external-reference 69632 __libc_start_main)\n(external-reference 69640 __cxa_finalize)\n(external-reference 69648 __gmon_start__)\n(external-reference 69656 abort)\n(format elf)\n(is-executable true)\n(is-little-endian true)\n(llvm:base-address 0)\n(llvm:code-entry abort 0 0)\n(llvm:code-entry __cxa_finalize 0 0)\n(llvm:code-entry __libc_start_main 0 0)\n(llvm:code-entry sub_seven 1988 24)\n(llvm:code-entry _init 1528 0)\n(llvm:code-entry main 2012 92)\n(llvm:code-entry add_six 1964 24)\n(llvm:code-entry _start 1664 52)\n(llvm:code-entry add_two 1940 24)\n(llvm:code-entry abort@GLIBC_2.17 0 0)\n(llvm:code-entry _fini 2104 0)\n(llvm:code-entry __cxa_finalize@GLIBC_2.17 0 0)\n(llvm:code-entry __libc_start_main@GLIBC_2.34 0 0)\n(llvm:code-entry frame_dummy 1936 0)\n(llvm:code-entry __do_global_dtors_aux 1856 0)\n(llvm:code-entry register_tm_clones 1792 0)\n(llvm:code-entry deregister_tm_clones 1744 0)\n(llvm:code-entry call_weak_fn 1716 20)\n(llvm:code-entry .fini 2104 20)\n(llvm:code-entry .text 1664 440)\n(llvm:code-entry .plt 1552 96)\n(llvm:code-entry .init 1528 24)\n(llvm:elf-program-header 08 3512 584)\n(llvm:elf-program-header 07 0 0)\n(llvm:elf-program-header 06 2128 84)\n(llvm:elf-program-header 05 596 68)\n(llvm:elf-program-header 04 3528 480)\n(llvm:elf-program-header 03 3512 664)\n(llvm:elf-program-header 02 0 2476)\n(llvm:elf-program-header 01 568 27)\n(llvm:elf-program-header 00 64 504)\n(llvm:elf-program-header-flags 08 false true false false)\n(llvm:elf-program-header-flags 07 false true true false)\n(llvm:elf-program-header-flags 06 false true false false)\n(llvm:elf-program-header-flags 05 false true false false)\n(llvm:elf-program-header-flags 04 false true true false)\n(llvm:elf-program-header-flags 03 true true true false)\n(llvm:elf-program-header-flags 02 true true false true)\n(llvm:elf-program-header-flags 01 false true false false)\n(llvm:elf-program-header-flags 00 false true false false)\n(llvm:elf-virtual-program-header 08 69048 584)\n(llvm:elf-virtual-program-header 07 0 0)\n(llvm:elf-virtual-program-header 06 2128 84)\n(llvm:elf-virtual-program-header 05 596 68)\n(llvm:elf-virtual-program-header 04 69064 480)\n(llvm:elf-virtual-program-header 03 69048 672)\n(llvm:elf-virtual-program-header 02 0 2476)\n(llvm:elf-virtual-program-header 01 568 27)\n(llvm:elf-virtual-program-header 00 64 504)\n(llvm:entry-point 1664)\n(llvm:name-reference 69656 abort)\n(llvm:name-reference 69648 __gmon_start__)\n(llvm:name-reference 69640 __cxa_finalize)\n(llvm:name-reference 69632 __libc_start_main)\n(llvm:name-reference 69592 _ITM_registerTMCloneTable)\n(llvm:name-reference 69576 __gmon_start__)\n(llvm:name-reference 69560 __cxa_finalize)\n(llvm:name-reference 69552 _ITM_deregisterTMCloneTable)\n(llvm:section-entry .shstrtab 0 259 7107)\n(llvm:section-entry .strtab 0 603 6504)\n(llvm:section-entry .symtab 0 2256 4248)\n(llvm:section-entry .comment 0 71 4176)\n(llvm:section-entry .bss 69712 8 4176)\n(llvm:section-entry .data 69664 48 4128)\n(llvm:section-entry .got.plt 69608 56 4072)\n(llvm:section-entry .got 69544 64 4008)\n(llvm:section-entry .dynamic 69064 480 3528)\n(llvm:section-entry .fini_array 69056 8 3520)\n(llvm:section-entry .init_array 69048 8 3512)\n(llvm:section-entry .eh_frame 2216 260 2216)\n(llvm:section-entry .eh_frame_hdr 2128 84 2128)\n(llvm:section-entry .rodata 2124 4 2124)\n(llvm:section-entry .fini 2104 20 2104)\n(llvm:section-entry .text 1664 440 1664)\n(llvm:section-entry .plt 1552 96 1552)\n(llvm:section-entry .init 1528 24 1528)\n(llvm:section-entry .rela.plt 1432 96 1432)\n(llvm:section-entry .rela.dyn 1120 312 1120)\n(llvm:section-entry .gnu.version_r 1072 48 1072)\n(llvm:section-entry .gnu.version 1054 18 1054)\n(llvm:section-entry .dynstr 912 141 912)\n(llvm:section-entry .dynsym 696 216 696)\n(llvm:section-entry .gnu.hash 664 28 664)\n(llvm:section-entry .note.ABI-tag 632 32 632)\n(llvm:section-entry .note.gnu.build-id 596 36 596)\n(llvm:section-entry .interp 568 27 568)\n(llvm:section-flags .shstrtab true false false)\n(llvm:section-flags .strtab true false false)\n(llvm:section-flags .symtab true false false)\n(llvm:section-flags .comment true false false)\n(llvm:section-flags .bss true true false)\n(llvm:section-flags .data true true false)\n(llvm:section-flags .got.plt true true false)\n(llvm:section-flags .got true true false)\n(llvm:section-flags .dynamic true true false)\n(llvm:section-flags .fini_array true true false)\n(llvm:section-flags .init_array true true false)\n(llvm:section-flags .eh_frame true false false)\n(llvm:section-flags .eh_frame_hdr true false false)\n(llvm:section-flags .rodata true false false)\n(llvm:section-flags .fini true false true)\n(llvm:section-flags .text true false true)\n(llvm:section-flags .plt true false true)\n(llvm:section-flags .init true false true)\n(llvm:section-flags .rela.plt true false false)\n(llvm:section-flags .rela.dyn true false false)\n(llvm:section-flags .gnu.version_r true false false)\n(llvm:section-flags .gnu.version true false false)\n(llvm:section-flags .dynstr true false false)\n(llvm:section-flags .dynsym true false false)\n(llvm:section-flags .gnu.hash true false false)\n(llvm:section-flags .note.ABI-tag true false false)\n(llvm:section-flags .note.gnu.build-id true false false)\n(llvm:section-flags .interp true false false)\n(llvm:symbol-entry abort 0 0 0 0)\n(llvm:symbol-entry __cxa_finalize 0 0 0 0)\n(llvm:symbol-entry __libc_start_main 0 0 0 0)\n(llvm:symbol-entry sub_seven 1988 24 1988 1988)\n(llvm:symbol-entry _init 1528 0 1528 1528)\n(llvm:symbol-entry main 2012 92 2012 2012)\n(llvm:symbol-entry add_six 1964 24 1964 1964)\n(llvm:symbol-entry _start 1664 52 1664 1664)\n(llvm:symbol-entry add_two 1940 24 1940 1940)\n(llvm:symbol-entry abort@GLIBC_2.17 0 0 0 0)\n(llvm:symbol-entry _fini 2104 0 2104 2104)\n(llvm:symbol-entry __cxa_finalize@GLIBC_2.17 0 0 0 0)\n(llvm:symbol-entry __libc_start_main@GLIBC_2.34 0 0 0 0)\n(llvm:symbol-entry frame_dummy 1936 0 1936 1936)\n(llvm:symbol-entry __do_global_dtors_aux 1856 0 1856 1856)\n(llvm:symbol-entry register_tm_clones 1792 0 1792 1792)\n(llvm:symbol-entry deregister_tm_clones 1744 0 1744 1744)\n(llvm:symbol-entry call_weak_fn 1716 20 1716 1716)\n(mapped 0 2476 0)\n(mapped 69048 664 3512)\n(named-region 0 2476 02)\n(named-region 69048 672 03)\n(named-region 568 27 .interp)\n(named-region 596 36 .note.gnu.build-id)\n(named-region 632 32 .note.ABI-tag)\n(named-region 664 28 .gnu.hash)\n(named-region 696 216 .dynsym)\n(named-region 912 141 .dynstr)\n(named-region 1054 18 .gnu.version)\n(named-region 1072 48 .gnu.version_r)\n(named-region 1120 312 .rela.dyn)\n(named-region 1432 96 .rela.plt)\n(named-region 1528 24 .init)\n(named-region 1552 96 .plt)\n(named-region 1664 440 .text)\n(named-region 2104 20 .fini)\n(named-region 2124 4 .rodata)\n(named-region 2128 84 .eh_frame_hdr)\n(named-region 2216 260 .eh_frame)\n(named-region 69048 8 .init_array)\n(named-region 69056 8 .fini_array)\n(named-region 69064 480 .dynamic)\n(named-region 69544 64 .got)\n(named-region 69608 56 .got.plt)\n(named-region 69664 48 .data)\n(named-region 69712 8 .bss)\n(named-region 0 71 .comment)\n(named-region 0 2256 .symtab)\n(named-region 0 603 .strtab)\n(named-region 0 259 .shstrtab)\n(named-symbol 1716 call_weak_fn)\n(named-symbol 1744 deregister_tm_clones)\n(named-symbol 1792 register_tm_clones)\n(named-symbol 1856 __do_global_dtors_aux)\n(named-symbol 1936 frame_dummy)\n(named-symbol 0 __libc_start_main@GLIBC_2.34)\n(named-symbol 0 __cxa_finalize@GLIBC_2.17)\n(named-symbol 2104 _fini)\n(named-symbol 0 abort@GLIBC_2.17)\n(named-symbol 1940 add_two)\n(named-symbol 1664 _start)\n(named-symbol 1964 add_six)\n(named-symbol 2012 main)\n(named-symbol 1528 _init)\n(named-symbol 1988 sub_seven)\n(named-symbol 0 __libc_start_main)\n(named-symbol 0 __cxa_finalize)\n(named-symbol 0 abort)\n(require libc.so.6)\n(section 568 27)\n(section 596 36)\n(section 632 32)\n(section 664 28)\n(section 696 216)\n(section 912 141)\n(section 1054 18)\n(section 1072 48)\n(section 1120 312)\n(section 1432 96)\n(section 1528 24)\n(section 1552 96)\n(section 1664 440)\n(section 2104 20)\n(section 2124 4)\n(section 2128 84)\n(section 2216 260)\n(section 69048 8)\n(section 69056 8)\n(section 69064 480)\n(section 69544 64)\n(section 69608 56)\n(section 69664 48)\n(section 69712 8)\n(section 0 71)\n(section 0 2256)\n(section 0 603)\n(section 0 259)\n(segment 0 2476 true false true)\n(segment 69048 672 true true false)\n(subarch v8)\n(symbol-chunk 1716 20 1716)\n(symbol-chunk 1940 24 1940)\n(symbol-chunk 1664 52 1664)\n(symbol-chunk 1964 24 1964)\n(symbol-chunk 2012 92 2012)\n(symbol-chunk 1988 24 1988)\n(symbol-value 1716 1716)\n(symbol-value 1744 1744)\n(symbol-value 1792 1792)\n(symbol-value 1856 1856)\n(symbol-value 1936 1936)\n(symbol-value 2104 2104)\n(symbol-value 1940 1940)\n(symbol-value 1664 1664)\n(symbol-value 1964 1964)\n(symbol-value 2012 2012)\n(symbol-value 1528 1528)\n(symbol-value 1988 1988)\n(symbol-value 0 0)\n(system \"\")\n(vendor \"\")\n"), -Attr("abi-name","\"aarch64-linux-gnu-elf\"")]), -Sections([Section(".shstrtab", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x80\x06\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xc8\x1c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x38\x00\x09\x00\x40\x00\x1d\x00\x1c\x00\x06\x00\x00\x00\x04\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x04\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xac\x09\x00\x00\x00\x00\x00\x00\xac\x09\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x01\x00\x00\x00\x06\x00\x00\x00\xb8\x0d\x00\x00\x00\x00\x00\x00\xb8\x0d\x01\x00\x00\x00\x00\x00\xb8\x0d\x01"), -Section(".strtab", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x80\x06\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xc8\x1c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x38\x00\x09\x00\x40\x00\x1d\x00\x1c\x00\x06\x00\x00\x00\x04\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x04\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xac\x09\x00\x00\x00\x00\x00\x00\xac\x09\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x01\x00\x00\x00\x06\x00\x00\x00\xb8\x0d\x00\x00\x00\x00\x00\x00\xb8\x0d\x01\x00\x00\x00\x00\x00\xb8\x0d\x01\x00\x00\x00\x00\x00\x98\x02\x00\x00\x00\x00\x00\x00\xa0\x02\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x02\x00\x00\x00\x06\x00\x00\x00\xc8\x0d\x00\x00\x00\x00\x00\x00\xc8\x0d\x01\x00\x00\x00\x00\x00\xc8\x0d\x01\x00\x00\x00\x00\x00\xe0\x01\x00\x00\x00\x00\x00\x00\xe0\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x04\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x50\xe5\x74\x64\x04\x00\x00\x00\x50\x08\x00\x00\x00\x00\x00\x00\x50\x08\x00\x00\x00\x00\x00\x00\x50\x08\x00\x00\x00\x00\x00\x00\x54\x00\x00\x00\x00\x00\x00\x00\x54\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x51\xe5\x74\x64\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x52\xe5\x74\x64\x04\x00\x00\x00\xb8\x0d\x00\x00\x00\x00\x00\x00\xb8\x0d\x01\x00\x00\x00\x00\x00\xb8\x0d\x01\x00\x00\x00\x00\x00\x48\x02\x00\x00\x00\x00\x00\x00\x48\x02\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x2f\x6c\x69\x62\x2f\x6c\x64\x2d\x6c\x69\x6e\x75\x78\x2d\x61\x61\x72\x63\x68\x36\x34\x2e\x73\x6f\x2e\x31\x00\x00\x04\x00\x00\x00\x14\x00\x00"), -Section(".symtab", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x80\x06\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xc8\x1c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x38\x00\x09\x00\x40\x00\x1d\x00\x1c\x00\x06\x00\x00\x00\x04\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x04\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xac\x09\x00\x00\x00\x00\x00\x00\xac\x09\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x01\x00\x00\x00\x06\x00\x00\x00\xb8\x0d\x00\x00\x00\x00\x00\x00\xb8\x0d\x01\x00\x00\x00\x00\x00\xb8\x0d\x01\x00\x00\x00\x00\x00\x98\x02\x00\x00\x00\x00\x00\x00\xa0\x02\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x02\x00\x00\x00\x06\x00\x00\x00\xc8\x0d\x00\x00\x00\x00\x00\x00\xc8\x0d\x01\x00\x00\x00\x00\x00\xc8\x0d\x01\x00\x00\x00\x00\x00\xe0\x01\x00\x00\x00\x00\x00\x00\xe0\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x04\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x50\xe5\x74\x64\x04\x00\x00\x00\x50\x08\x00\x00\x00\x00\x00\x00\x50\x08\x00\x00\x00\x00\x00\x00\x50\x08\x00\x00\x00\x00\x00\x00\x54\x00\x00\x00\x00\x00\x00\x00\x54\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x51\xe5\x74\x64\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x52\xe5\x74\x64\x04\x00\x00\x00\xb8\x0d\x00\x00\x00\x00\x00\x00\xb8\x0d\x01\x00\x00\x00\x00\x00\xb8\x0d\x01\x00\x00\x00\x00\x00\x48\x02\x00\x00\x00\x00\x00\x00\x48\x02\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x2f\x6c\x69\x62\x2f\x6c\x64\x2d\x6c\x69\x6e\x75\x78\x2d\x61\x61\x72\x63\x68\x36\x34\x2e\x73\x6f\x2e\x31\x00\x00\x04\x00\x00\x00\x14\x00\x00\x00\x03\x00\x00\x00\x47\x4e\x55\x00\x6e\x48\x02\x58\xec\x5d\xaa\x2e\x87\xef\x0c\xc1\x5b\x8a\x12\xb7\x52\xfe\xd6\xc5\x04\x00\x00\x00\x10\x00\x00\x00\x01\x00\x00\x00\x47\x4e\x55\x00\x00\x00\x00\x00\x03\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x01\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x0b\x00\xf8\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x17\x00\x20\x10\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x48\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x22\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x22\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x73\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5f\x5f\x63\x78\x61\x5f\x66\x69\x6e\x61\x6c\x69\x7a\x65\x00\x5f\x5f\x6c\x69\x62\x63\x5f\x73\x74\x61\x72\x74\x5f\x6d\x61\x69\x6e\x00\x61\x62\x6f\x72\x74\x00\x6c\x69\x62\x63\x2e\x73\x6f\x2e\x36\x00\x47\x4c\x49\x42\x43\x5f\x32\x2e\x31\x37\x00\x47\x4c\x49\x42\x43\x5f\x32\x2e\x33\x34\x00\x5f\x49\x54\x4d\x5f\x64\x65\x72\x65\x67\x69\x73\x74\x65\x72\x54\x4d\x43\x6c\x6f\x6e\x65\x54\x61\x62\x6c\x65\x00\x5f\x5f\x67\x6d\x6f\x6e\x5f\x73\x74\x61\x72\x74\x5f\x5f\x00\x5f\x49\x54\x4d\x5f\x72\x65\x67\x69\x73\x74\x65\x72\x54\x4d\x43\x6c\x6f\x6e\x65\x54\x61\x62\x6c\x65\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x01\x00\x03\x00\x01\x00\x03\x00\x01\x00\x01\x00\x02\x00\x28\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x97\x91\x96\x06\x00\x00\x03\x00\x32\x00\x00\x00\x10\x00\x00\x00\xb4\x91\x96\x06\x00\x00\x02\x00\x3d\x00\x00\x00\x00\x00\x00\x00\xb8\x0d\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x90\x07\x00\x00\x00\x00\x00\x00\xc0\x0d\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x40\x07\x00\x00\x00\x00\x00\x00\xc0\x0f\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x30\x10\x01\x00\x00\x00\x00\x00\xd0\x0f\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\xdc\x07\x00\x00\x00\x00\x00\x00\xe0\x0f\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x38\x10\x01\x00\x00\x00\x00\x00\x28\x10\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x28\x10\x01\x00\x00\x00\x00\x00\x38\x10\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x94\x07\x00\x00\x00\x00\x00\x00\x40\x10\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\xac\x07\x00\x00\x00\x00\x00\x00\x48\x10\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\xc4\x07\x00\x00\x00\x00\x00\x00\xb0\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xb8\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xc8\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xd8\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x08\x10\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x10\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x18\x10\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1f\x20\x03\xd5\xfd\x7b\xbf\xa9\xfd\x03\x00\x91\x2c\x00\x00\x94\xfd\x7b\xc1\xa8\xc0\x03\x5f\xd6\xf0\x7b\xbf\xa9\x90\x00\x00\x90\x11\xfe\x47\xf9\x10\xe2\x3f\x91\x20\x02\x1f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x90\x00\x00\xb0\x11\x02\x40\xf9\x10\x02\x00\x91\x20\x02\x1f\xd6\x90\x00\x00\xb0\x11\x06\x40\xf9\x10\x22\x00\x91\x20\x02\x1f\xd6\x90\x00\x00\xb0\x11\x0a\x40\xf9\x10\x42\x00\x91\x20\x02\x1f\xd6\x90\x00\x00\xb0\x11\x0e\x40\xf9\x10\x62\x00\x91\x20\x02\x1f\xd6\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1f\x20\x03\xd5\x1d\x00\x80\xd2\x1e\x00\x80\xd2\xe5\x03\x00\xaa\xe1\x03\x40\xf9\xe2\x23\x00\x91\xe6\x03\x00\x91\x80\x00\x00\x90\x00\xe8\x47\xf9\x03\x00\x80\xd2\x04\x00\x80\xd2\xe1\xff\xff\x97\xec\xff\xff\x97\x80\x00\x00\x90\x00\xe4\x47\xf9\x40\x00\x00\xb4\xe4\xff\xff\x17\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x80\x00\x00\xb0\x00\x40\x01\x91\x81\x00\x00\xb0\x21\x40\x01\x91\x3f\x00\x00\xeb\xc0\x00\x00\x54\x81\x00\x00\x90\x21\xd8\x47\xf9\x61\x00\x00\xb4\xf0\x03\x01\xaa\x00\x02\x1f\xd6\xc0\x03\x5f\xd6\x80\x00\x00\xb0\x00\x40\x01\x91\x81\x00\x00\xb0\x21\x40\x01\x91\x21\x00\x00\xcb\x22\xfc\x7f\xd3\x41\x0c\x81\x8b\x21\xfc\x41\x93\xc1\x00\x00\xb4\x82\x00\x00\x90\x42\xec\x47\xf9\x62\x00\x00\xb4\xf0\x03\x02\xaa\x00\x02\x1f\xd6\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\xfd\x7b\xbe\xa9\xfd\x03\x00\x91\xf3\x0b\x00\xf9\x93\x00\x00\xb0\x60\x42\x41\x39\x40\x01\x00\x35\x80\x00\x00\x90\x00\xdc\x47\xf9\x80\x00\x00\xb4\x80\x00\x00\xb0\x00\x14\x40\xf9\xb5\xff\xff\x97\xd8\xff\xff\x97\x20\x00\x80\x52\x60\x42\x01\x39\xf3\x0b\x40\xf9\xfd\x7b\xc2\xa8\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\xdc\xff\xff\x17\x89\x00\x00\x90\x29\xe1\x47\xf9\x28\x01\x40\xb9\x08\x09\x00\x11\x28\x01\x00\xb9\xc0\x03\x5f\xd6\x89\x00\x00\x90\x29\xe1\x47\xf9\x28\x01\x40\xb9\x08\x19\x00\x11\x28\x01\x00\xb9\xc0\x03\x5f\xd6\x89\x00\x00\x90\x29\xe1\x47\xf9\x28\x01\x40\xb9\x08\x1d\x00\x71\x28\x01\x00\xb9\xc0\x03\x5f\xd6\xff\xc3\x00\xd1\xfd\x7b\x02\xa9\xfd\x83\x00\x91\x88\x00\x00\x90\x08\xf1\x47\xf9\xe8\x03\x00\xf9\xe9\x03\x1f\x2a\xe9\x0f\x00\xb9\xbf\xc3\x1f\xb8\xa0\x83\x1f\xb8\xe1\x0b\x00\xf9\x08\x01\x40\xf9\x00\x01\x3f\xd6\xe8\x03\x40\xf9\x08\x05\x40\xf9\x00\x01\x3f\xd6\xe8\x03\x40\xf9\x08\x09\x40\xf9\x00\x01\x3f\xd6\xe0\x0f\x40\xb9\xfd\x7b\x42\xa9\xff\xc3\x00\x91\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\xfd\x7b\xbf\xa9\xfd\x03\x00\x91\xfd\x7b\xc1\xa8\xc0\x03\x5f\xd6\x01\x00\x02\x00\x01\x1b\x03\x3b\x54\x00\x00\x00\x09\x00\x00\x00\x30\xfe\xff\xff\x6c\x00\x00\x00\x80\xfe\xff\xff\x80\x00\x00\x00\xb0\xfe\xff\xff\x94\x00\x00\x00\xf0\xfe\xff\xff\xa8\x00\x00\x00\x40\xff\xff\xff\xcc\x00\x00\x00\x44\xff\xff\xff\xf4\x00\x00\x00\x5c\xff\xff\xff\x08\x01\x00\x00\x74\xff\xff\xff\x1c\x01\x00\x00\x8c\xff\xff\xff\x30\x01\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x01\x7a\x52\x00\x04\x78\x1e\x01\x1b\x0c\x1f\x00\x10\x00\x00\x00\x18\x00\x00\x00\xbc\xfd\xff\xff\x34\x00\x00\x00\x00\x41\x07\x1e"), -Section(".comment", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x80\x06\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xc8\x1c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x38\x00\x09\x00\x40\x00\x1d\x00\x1c\x00\x06\x00\x00\x00\x04\x00\x00"), -Section(".interp", 0x238, "\x2f\x6c\x69\x62\x2f\x6c\x64\x2d\x6c\x69\x6e\x75\x78\x2d\x61\x61\x72\x63\x68\x36\x34\x2e\x73\x6f\x2e\x31\x00"), -Section(".note.gnu.build-id", 0x254, "\x04\x00\x00\x00\x14\x00\x00\x00\x03\x00\x00\x00\x47\x4e\x55\x00\x6e\x48\x02\x58\xec\x5d\xaa\x2e\x87\xef\x0c\xc1\x5b\x8a\x12\xb7\x52\xfe\xd6\xc5"), -Section(".note.ABI-tag", 0x278, "\x04\x00\x00\x00\x10\x00\x00\x00\x01\x00\x00\x00\x47\x4e\x55\x00\x00\x00\x00\x00\x03\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00"), -Section(".gnu.hash", 0x298, "\x01\x00\x00\x00\x01\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".dynsym", 0x2B8, "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x0b\x00\xf8\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x17\x00\x20\x10\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x48\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x22\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x22\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x73\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".dynstr", 0x390, "\x00\x5f\x5f\x63\x78\x61\x5f\x66\x69\x6e\x61\x6c\x69\x7a\x65\x00\x5f\x5f\x6c\x69\x62\x63\x5f\x73\x74\x61\x72\x74\x5f\x6d\x61\x69\x6e\x00\x61\x62\x6f\x72\x74\x00\x6c\x69\x62\x63\x2e\x73\x6f\x2e\x36\x00\x47\x4c\x49\x42\x43\x5f\x32\x2e\x31\x37\x00\x47\x4c\x49\x42\x43\x5f\x32\x2e\x33\x34\x00\x5f\x49\x54\x4d\x5f\x64\x65\x72\x65\x67\x69\x73\x74\x65\x72\x54\x4d\x43\x6c\x6f\x6e\x65\x54\x61\x62\x6c\x65\x00\x5f\x5f\x67\x6d\x6f\x6e\x5f\x73\x74\x61\x72\x74\x5f\x5f\x00\x5f\x49\x54\x4d\x5f\x72\x65\x67\x69\x73\x74\x65\x72\x54\x4d\x43\x6c\x6f\x6e\x65\x54\x61\x62\x6c\x65\x00"), -Section(".gnu.version", 0x41E, "\x00\x00\x00\x00\x00\x00\x02\x00\x01\x00\x03\x00\x01\x00\x03\x00\x01\x00"), -Section(".gnu.version_r", 0x430, "\x01\x00\x02\x00\x28\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x97\x91\x96\x06\x00\x00\x03\x00\x32\x00\x00\x00\x10\x00\x00\x00\xb4\x91\x96\x06\x00\x00\x02\x00\x3d\x00\x00\x00\x00\x00\x00\x00"), -Section(".rela.dyn", 0x460, "\xb8\x0d\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x90\x07\x00\x00\x00\x00\x00\x00\xc0\x0d\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x40\x07\x00\x00\x00\x00\x00\x00\xc0\x0f\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x30\x10\x01\x00\x00\x00\x00\x00\xd0\x0f\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\xdc\x07\x00\x00\x00\x00\x00\x00\xe0\x0f\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x38\x10\x01\x00\x00\x00\x00\x00\x28\x10\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x28\x10\x01\x00\x00\x00\x00\x00\x38\x10\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x94\x07\x00\x00\x00\x00\x00\x00\x40\x10\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\xac\x07\x00\x00\x00\x00\x00\x00\x48\x10\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\xc4\x07\x00\x00\x00\x00\x00\x00\xb0\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xb8\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xc8\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xd8\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".rela.plt", 0x598, "\x00\x10\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x08\x10\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x10\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x18\x10\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".init", 0x5F8, "\x1f\x20\x03\xd5\xfd\x7b\xbf\xa9\xfd\x03\x00\x91\x2c\x00\x00\x94\xfd\x7b\xc1\xa8\xc0\x03\x5f\xd6"), -Section(".plt", 0x610, "\xf0\x7b\xbf\xa9\x90\x00\x00\x90\x11\xfe\x47\xf9\x10\xe2\x3f\x91\x20\x02\x1f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x90\x00\x00\xb0\x11\x02\x40\xf9\x10\x02\x00\x91\x20\x02\x1f\xd6\x90\x00\x00\xb0\x11\x06\x40\xf9\x10\x22\x00\x91\x20\x02\x1f\xd6\x90\x00\x00\xb0\x11\x0a\x40\xf9\x10\x42\x00\x91\x20\x02\x1f\xd6\x90\x00\x00\xb0\x11\x0e\x40\xf9\x10\x62\x00\x91\x20\x02\x1f\xd6"), -Section(".text", 0x680, "\x1f\x20\x03\xd5\x1d\x00\x80\xd2\x1e\x00\x80\xd2\xe5\x03\x00\xaa\xe1\x03\x40\xf9\xe2\x23\x00\x91\xe6\x03\x00\x91\x80\x00\x00\x90\x00\xe8\x47\xf9\x03\x00\x80\xd2\x04\x00\x80\xd2\xe1\xff\xff\x97\xec\xff\xff\x97\x80\x00\x00\x90\x00\xe4\x47\xf9\x40\x00\x00\xb4\xe4\xff\xff\x17\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x80\x00\x00\xb0\x00\x40\x01\x91\x81\x00\x00\xb0\x21\x40\x01\x91\x3f\x00\x00\xeb\xc0\x00\x00\x54\x81\x00\x00\x90\x21\xd8\x47\xf9\x61\x00\x00\xb4\xf0\x03\x01\xaa\x00\x02\x1f\xd6\xc0\x03\x5f\xd6\x80\x00\x00\xb0\x00\x40\x01\x91\x81\x00\x00\xb0\x21\x40\x01\x91\x21\x00\x00\xcb\x22\xfc\x7f\xd3\x41\x0c\x81\x8b\x21\xfc\x41\x93\xc1\x00\x00\xb4\x82\x00\x00\x90\x42\xec\x47\xf9\x62\x00\x00\xb4\xf0\x03\x02\xaa\x00\x02\x1f\xd6\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\xfd\x7b\xbe\xa9\xfd\x03\x00\x91\xf3\x0b\x00\xf9\x93\x00\x00\xb0\x60\x42\x41\x39\x40\x01\x00\x35\x80\x00\x00\x90\x00\xdc\x47\xf9\x80\x00\x00\xb4\x80\x00\x00\xb0\x00\x14\x40\xf9\xb5\xff\xff\x97\xd8\xff\xff\x97\x20\x00\x80\x52\x60\x42\x01\x39\xf3\x0b\x40\xf9\xfd\x7b\xc2\xa8\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\xdc\xff\xff\x17\x89\x00\x00\x90\x29\xe1\x47\xf9\x28\x01\x40\xb9\x08\x09\x00\x11\x28\x01\x00\xb9\xc0\x03\x5f\xd6\x89\x00\x00\x90\x29\xe1\x47\xf9\x28\x01\x40\xb9\x08\x19\x00\x11\x28\x01\x00\xb9\xc0\x03\x5f\xd6\x89\x00\x00\x90\x29\xe1\x47\xf9\x28\x01\x40\xb9\x08\x1d\x00\x71\x28\x01\x00\xb9\xc0\x03\x5f\xd6\xff\xc3\x00\xd1\xfd\x7b\x02\xa9\xfd\x83\x00\x91\x88\x00\x00\x90\x08\xf1\x47\xf9\xe8\x03\x00\xf9\xe9\x03\x1f\x2a\xe9\x0f\x00\xb9\xbf\xc3\x1f\xb8\xa0\x83\x1f\xb8\xe1\x0b\x00\xf9\x08\x01\x40\xf9\x00\x01\x3f\xd6\xe8\x03\x40\xf9\x08\x05\x40\xf9\x00\x01\x3f\xd6\xe8\x03\x40\xf9\x08\x09\x40\xf9\x00\x01\x3f\xd6\xe0\x0f\x40\xb9\xfd\x7b\x42\xa9\xff\xc3\x00\x91\xc0\x03\x5f\xd6"), -Section(".fini", 0x838, "\x1f\x20\x03\xd5\xfd\x7b\xbf\xa9\xfd\x03\x00\x91\xfd\x7b\xc1\xa8\xc0\x03\x5f\xd6"), -Section(".rodata", 0x84C, "\x01\x00\x02\x00"), -Section(".eh_frame_hdr", 0x850, "\x01\x1b\x03\x3b\x54\x00\x00\x00\x09\x00\x00\x00\x30\xfe\xff\xff\x6c\x00\x00\x00\x80\xfe\xff\xff\x80\x00\x00\x00\xb0\xfe\xff\xff\x94\x00\x00\x00\xf0\xfe\xff\xff\xa8\x00\x00\x00\x40\xff\xff\xff\xcc\x00\x00\x00\x44\xff\xff\xff\xf4\x00\x00\x00\x5c\xff\xff\xff\x08\x01\x00\x00\x74\xff\xff\xff\x1c\x01\x00\x00\x8c\xff\xff\xff\x30\x01\x00\x00"), -Section(".eh_frame", 0x8A8, "\x10\x00\x00\x00\x00\x00\x00\x00\x01\x7a\x52\x00\x04\x78\x1e\x01\x1b\x0c\x1f\x00\x10\x00\x00\x00\x18\x00\x00\x00\xbc\xfd\xff\xff\x34\x00\x00\x00\x00\x41\x07\x1e\x10\x00\x00\x00\x2c\x00\x00\x00\xf8\xfd\xff\xff\x30\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x40\x00\x00\x00\x14\xfe\xff\xff\x3c\x00\x00\x00\x00\x00\x00\x00\x20\x00\x00\x00\x54\x00\x00\x00\x40\xfe\xff\xff\x48\x00\x00\x00\x00\x41\x0e\x20\x9d\x04\x9e\x03\x42\x93\x02\x4e\xde\xdd\xd3\x0e\x00\x00\x00\x00\x10\x00\x00\x00\x78\x00\x00\x00\x6c\xfe\xff\xff\x04\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x01\x7a\x52\x00\x01\x7c\x1e\x01\x1b\x0c\x1f\x00\x10\x00\x00\x00\x18\x00\x00\x00\x48\xfe\xff\xff\x18\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x2c\x00\x00\x00\x4c\xfe\xff\xff\x18\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x40\x00\x00\x00\x50\xfe\xff\xff\x18\x00\x00\x00\x00\x00\x00\x00\x24\x00\x00\x00\x54\x00\x00\x00\x54\xfe\xff\xff\x5c\x00\x00\x00\x00\x44\x0e\x30\x48\x0c\x1d\x10\x9e\x02\x9d\x04\x02\x44\x0c\x1f\x30\x48\x0e\x00\xde\xdd\x00\x00\x00\x00\x00\x00"), -Section(".fini_array", 0x10DC0, "\x40\x07\x00\x00\x00\x00\x00\x00"), -Section(".dynamic", 0x10DC8, "\x01\x00\x00\x00\x00\x00\x00\x00\x28\x00\x00\x00\x00\x00\x00\x00\x0c\x00\x00\x00\x00\x00\x00\x00\xf8\x05\x00\x00\x00\x00\x00\x00\x0d\x00\x00\x00\x00\x00\x00\x00\x38\x08\x00\x00\x00\x00\x00\x00\x19\x00\x00\x00\x00\x00\x00\x00\xb8\x0d\x01\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x1a\x00\x00\x00\x00\x00\x00\x00\xc0\x0d\x01\x00\x00\x00\x00\x00\x1c\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\xf5\xfe\xff\x6f\x00\x00\x00\x00\x98\x02\x00\x00\x00\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x90\x03\x00\x00\x00\x00\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\xb8\x02\x00\x00\x00\x00\x00\x00\x0a\x00\x00\x00\x00\x00\x00\x00\x8d\x00\x00\x00\x00\x00\x00\x00\x0b\x00\x00\x00\x00\x00\x00\x00\x18\x00\x00\x00\x00\x00\x00\x00\x15\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\xe8\x0f\x01\x00\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x60\x00\x00\x00\x00\x00\x00\x00\x14\x00\x00\x00\x00\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x17\x00\x00\x00\x00\x00\x00\x00\x98\x05\x00\x00\x00\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x60\x04\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x38\x01\x00\x00\x00\x00\x00\x00\x09\x00\x00\x00\x00\x00\x00\x00\x18\x00\x00\x00\x00\x00\x00\x00\xfb\xff\xff\x6f\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\xfe\xff\xff\x6f\x00\x00\x00\x00\x30\x04\x00\x00\x00\x00\x00\x00\xff\xff\xff\x6f\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\xf0\xff\xff\x6f\x00\x00\x00\x00\x1e\x04\x00\x00\x00\x00\x00\x00\xf9\xff\xff\x6f\x00\x00\x00\x00\x09\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".got", 0x10FA8, "\xc8\x0d\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x30\x10\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xdc\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x38\x10\x01\x00\x00\x00\x00\x00"), -Section(".got.plt", 0x10FE8, "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x06\x00\x00\x00\x00\x00\x00\x10\x06\x00\x00\x00\x00\x00\x00\x10\x06\x00\x00\x00\x00\x00\x00\x10\x06\x00\x00\x00\x00\x00\x00"), -Section(".data", 0x11020, "\x00\x00\x00\x00\x00\x00\x00\x00\x28\x10\x01\x00\x00\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x94\x07\x00\x00\x00\x00\x00\x00\xac\x07\x00\x00\x00\x00\x00\x00\xc4\x07\x00\x00\x00\x00\x00\x00"), -Section(".init_array", 0x10DB8, "\x90\x07\x00\x00\x00\x00\x00\x00")]), -Memmap([Annotation(Region(0x0,0x9AB), Attr("segment","02 0 2476")), -Annotation(Region(0x680,0x6B3), Attr("symbol","\"_start\"")), -Annotation(Region(0x0,0x102), Attr("section","\".shstrtab\"")), -Annotation(Region(0x0,0x25A), Attr("section","\".strtab\"")), -Annotation(Region(0x0,0x8CF), Attr("section","\".symtab\"")), -Annotation(Region(0x0,0x46), Attr("section","\".comment\"")), -Annotation(Region(0x238,0x252), Attr("section","\".interp\"")), -Annotation(Region(0x254,0x277), Attr("section","\".note.gnu.build-id\"")), -Annotation(Region(0x278,0x297), Attr("section","\".note.ABI-tag\"")), -Annotation(Region(0x298,0x2B3), Attr("section","\".gnu.hash\"")), -Annotation(Region(0x2B8,0x38F), Attr("section","\".dynsym\"")), -Annotation(Region(0x390,0x41C), Attr("section","\".dynstr\"")), -Annotation(Region(0x41E,0x42F), Attr("section","\".gnu.version\"")), -Annotation(Region(0x430,0x45F), Attr("section","\".gnu.version_r\"")), -Annotation(Region(0x460,0x597), Attr("section","\".rela.dyn\"")), -Annotation(Region(0x598,0x5F7), Attr("section","\".rela.plt\"")), -Annotation(Region(0x5F8,0x60F), Attr("section","\".init\"")), -Annotation(Region(0x610,0x66F), Attr("section","\".plt\"")), -Annotation(Region(0x5F8,0x60F), Attr("code-region","()")), -Annotation(Region(0x610,0x66F), Attr("code-region","()")), -Annotation(Region(0x680,0x6B3), Attr("symbol-info","_start 0x680 52")), -Annotation(Region(0x6B4,0x6C7), Attr("symbol","\"call_weak_fn\"")), -Annotation(Region(0x6B4,0x6C7), Attr("symbol-info","call_weak_fn 0x6B4 20")), -Annotation(Region(0x794,0x7AB), Attr("symbol","\"add_two\"")), -Annotation(Region(0x794,0x7AB), Attr("symbol-info","add_two 0x794 24")), -Annotation(Region(0x7AC,0x7C3), Attr("symbol","\"add_six\"")), -Annotation(Region(0x7AC,0x7C3), Attr("symbol-info","add_six 0x7AC 24")), -Annotation(Region(0x7C4,0x7DB), Attr("symbol","\"sub_seven\"")), -Annotation(Region(0x680,0x837), Attr("section","\".text\"")), -Annotation(Region(0x680,0x837), Attr("code-region","()")), -Annotation(Region(0x7C4,0x7DB), Attr("symbol-info","sub_seven 0x7C4 24")), -Annotation(Region(0x7DC,0x837), Attr("symbol","\"main\"")), -Annotation(Region(0x7DC,0x837), Attr("symbol-info","main 0x7DC 92")), -Annotation(Region(0x838,0x84B), Attr("section","\".fini\"")), -Annotation(Region(0x838,0x84B), Attr("code-region","()")), -Annotation(Region(0x84C,0x84F), Attr("section","\".rodata\"")), -Annotation(Region(0x850,0x8A3), Attr("section","\".eh_frame_hdr\"")), -Annotation(Region(0x8A8,0x9AB), Attr("section","\".eh_frame\"")), -Annotation(Region(0x10DB8,0x1104F), Attr("segment","03 0x10DB8 672")), -Annotation(Region(0x10DC0,0x10DC7), Attr("section","\".fini_array\"")), -Annotation(Region(0x10DC8,0x10FA7), Attr("section","\".dynamic\"")), -Annotation(Region(0x10FA8,0x10FE7), Attr("section","\".got\"")), -Annotation(Region(0x10FE8,0x1101F), Attr("section","\".got.plt\"")), -Annotation(Region(0x11020,0x1104F), Attr("section","\".data\"")), -Annotation(Region(0x10DB8,0x10DBF), Attr("section","\".init_array\""))]), -Program(Tid(1_809, "%00000711"), Attrs([]), - Subs([Sub(Tid(1_753, "@__cxa_finalize"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x640"), -Attr("stub","()")]), "__cxa_finalize", Args([Arg(Tid(1_810, "%00000712"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("__cxa_finalize_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(1_216, "@__cxa_finalize"), - Attrs([Attr("address","0x640")]), Phis([]), -Defs([Def(Tid(1_464, "%000005b8"), Attrs([Attr("address","0x640"), -Attr("insn","adrp x16, #69632")]), Var("R16",Imm(64)), Int(69632,64)), -Def(Tid(1_471, "%000005bf"), Attrs([Attr("address","0x644"), -Attr("insn","ldr x17, [x16, #0x8]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(1_477, "%000005c5"), Attrs([Attr("address","0x648"), -Attr("insn","add x16, x16, #0x8")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(8,64)))]), Jmps([Call(Tid(1_482, "%000005ca"), - Attrs([Attr("address","0x64C"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), -Sub(Tid(1_754, "@__do_global_dtors_aux"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x740")]), - "__do_global_dtors_aux", Args([Arg(Tid(1_811, "%00000713"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("__do_global_dtors_aux_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(754, "@__do_global_dtors_aux"), - Attrs([Attr("address","0x740")]), Phis([]), Defs([Def(Tid(758, "%000002f6"), - Attrs([Attr("address","0x740"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("#3",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(18446744073709551584,64))), -Def(Tid(764, "%000002fc"), Attrs([Attr("address","0x740"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("#3",Imm(64)),Var("R29",Imm(64)),LittleEndian(),64)), -Def(Tid(770, "%00000302"), Attrs([Attr("address","0x740"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("#3",Imm(64)),Int(8,64)),Var("R30",Imm(64)),LittleEndian(),64)), -Def(Tid(774, "%00000306"), Attrs([Attr("address","0x740"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("R31",Imm(64)), -Var("#3",Imm(64))), Def(Tid(780, "%0000030c"), - Attrs([Attr("address","0x744"), Attr("insn","mov x29, sp")]), - Var("R29",Imm(64)), Var("R31",Imm(64))), Def(Tid(788, "%00000314"), - Attrs([Attr("address","0x748"), Attr("insn","str x19, [sp, #0x10]")]), - Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(16,64)),Var("R19",Imm(64)),LittleEndian(),64)), -Def(Tid(793, "%00000319"), Attrs([Attr("address","0x74C"), -Attr("insn","adrp x19, #69632")]), Var("R19",Imm(64)), Int(69632,64)), -Def(Tid(800, "%00000320"), Attrs([Attr("address","0x750"), -Attr("insn","ldrb w0, [x19, #0x50]")]), Var("R0",Imm(64)), -UNSIGNED(64,Load(Var("mem",Mem(64,8)),PLUS(Var("R19",Imm(64)),Int(80,64)),LittleEndian(),8)))]), -Jmps([Goto(Tid(807, "%00000327"), Attrs([Attr("address","0x754"), -Attr("insn","cbnz w0, #0x28")]), - NEQ(Extract(31,0,Var("R0",Imm(64))),Int(0,32)), -Direct(Tid(805, "%00000325"))), Goto(Tid(1_799, "%00000707"), Attrs([]), - Int(1,1), Direct(Tid(1_161, "%00000489")))])), Blk(Tid(1_161, "%00000489"), - Attrs([Attr("address","0x758")]), Phis([]), -Defs([Def(Tid(1_164, "%0000048c"), Attrs([Attr("address","0x758"), -Attr("insn","adrp x0, #65536")]), Var("R0",Imm(64)), Int(65536,64)), -Def(Tid(1_171, "%00000493"), Attrs([Attr("address","0x75C"), -Attr("insn","ldr x0, [x0, #0xfb8]")]), Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(4024,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(1_177, "%00000499"), Attrs([Attr("address","0x760"), -Attr("insn","cbz x0, #0x10")]), EQ(Var("R0",Imm(64)),Int(0,64)), -Direct(Tid(1_175, "%00000497"))), Goto(Tid(1_800, "%00000708"), Attrs([]), - Int(1,1), Direct(Tid(1_200, "%000004b0")))])), Blk(Tid(1_200, "%000004b0"), - Attrs([Attr("address","0x764")]), Phis([]), -Defs([Def(Tid(1_203, "%000004b3"), Attrs([Attr("address","0x764"), -Attr("insn","adrp x0, #69632")]), Var("R0",Imm(64)), Int(69632,64)), -Def(Tid(1_210, "%000004ba"), Attrs([Attr("address","0x768"), -Attr("insn","ldr x0, [x0, #0x28]")]), Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(40,64)),LittleEndian(),64)), -Def(Tid(1_215, "%000004bf"), Attrs([Attr("address","0x76C"), -Attr("insn","bl #-0x12c")]), Var("R30",Imm(64)), Int(1904,64))]), -Jmps([Call(Tid(1_218, "%000004c2"), Attrs([Attr("address","0x76C"), -Attr("insn","bl #-0x12c")]), Int(1,1), -(Direct(Tid(1_753, "@__cxa_finalize")),Direct(Tid(1_175, "%00000497"))))])), -Blk(Tid(1_175, "%00000497"), Attrs([Attr("address","0x770")]), Phis([]), -Defs([Def(Tid(1_183, "%0000049f"), Attrs([Attr("address","0x770"), -Attr("insn","bl #-0xa0")]), Var("R30",Imm(64)), Int(1908,64))]), -Jmps([Call(Tid(1_185, "%000004a1"), Attrs([Attr("address","0x770"), -Attr("insn","bl #-0xa0")]), Int(1,1), -(Direct(Tid(1_769, "@deregister_tm_clones")),Direct(Tid(1_187, "%000004a3"))))])), -Blk(Tid(1_187, "%000004a3"), Attrs([Attr("address","0x774")]), Phis([]), -Defs([Def(Tid(1_190, "%000004a6"), Attrs([Attr("address","0x774"), -Attr("insn","mov w0, #0x1")]), Var("R0",Imm(64)), Int(1,64)), -Def(Tid(1_198, "%000004ae"), Attrs([Attr("address","0x778"), -Attr("insn","strb w0, [x19, #0x50]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R19",Imm(64)),Int(80,64)),Extract(7,0,Var("R0",Imm(64))),LittleEndian(),8))]), -Jmps([Goto(Tid(1_801, "%00000709"), Attrs([]), Int(1,1), -Direct(Tid(805, "%00000325")))])), Blk(Tid(805, "%00000325"), - Attrs([Attr("address","0x77C")]), Phis([]), Defs([Def(Tid(815, "%0000032f"), - Attrs([Attr("address","0x77C"), Attr("insn","ldr x19, [sp, #0x10]")]), - Var("R19",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(16,64)),LittleEndian(),64)), -Def(Tid(822, "%00000336"), Attrs([Attr("address","0x780"), -Attr("insn","ldp x29, x30, [sp], #0x20")]), Var("R29",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(827, "%0000033b"), Attrs([Attr("address","0x780"), -Attr("insn","ldp x29, x30, [sp], #0x20")]), Var("R30",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(831, "%0000033f"), Attrs([Attr("address","0x780"), -Attr("insn","ldp x29, x30, [sp], #0x20")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(32,64)))]), Jmps([Call(Tid(836, "%00000344"), - Attrs([Attr("address","0x784"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), Sub(Tid(1_758, "@__libc_start_main"), - Attrs([Attr("c.proto","signed (*)(signed (*)(signed , char** , char** );* main, signed , char** , \nvoid* auxv)"), -Attr("address","0x630"), Attr("stub","()")]), "__libc_start_main", - Args([Arg(Tid(1_812, "%00000714"), - Attrs([Attr("c.layout","**[ : 64]"), -Attr("c.data","Top:u64 ptr ptr"), -Attr("c.type","signed (*)(signed , char** , char** );*")]), - Var("__libc_start_main_main",Imm(64)), Var("R0",Imm(64)), In()), -Arg(Tid(1_813, "%00000715"), Attrs([Attr("c.layout","[signed : 32]"), -Attr("c.data","Top:u32"), Attr("c.type","signed")]), - Var("__libc_start_main_arg2",Imm(32)), LOW(32,Var("R1",Imm(64))), In()), -Arg(Tid(1_814, "%00000716"), Attrs([Attr("c.layout","**[char : 8]"), -Attr("c.data","Top:u8 ptr ptr"), Attr("c.type","char**")]), - Var("__libc_start_main_arg3",Imm(64)), Var("R2",Imm(64)), Both()), -Arg(Tid(1_815, "%00000717"), Attrs([Attr("c.layout","*[ : 8]"), -Attr("c.data","{} ptr"), Attr("c.type","void*")]), - Var("__libc_start_main_auxv",Imm(64)), Var("R3",Imm(64)), Both()), -Arg(Tid(1_816, "%00000718"), Attrs([Attr("c.layout","[signed : 32]"), -Attr("c.data","Top:u32"), Attr("c.type","signed")]), - Var("__libc_start_main_result",Imm(32)), LOW(32,Var("R0",Imm(64))), -Out())]), Blks([Blk(Tid(587, "@__libc_start_main"), - Attrs([Attr("address","0x630")]), Phis([]), -Defs([Def(Tid(1_442, "%000005a2"), Attrs([Attr("address","0x630"), -Attr("insn","adrp x16, #69632")]), Var("R16",Imm(64)), Int(69632,64)), -Def(Tid(1_449, "%000005a9"), Attrs([Attr("address","0x634"), -Attr("insn","ldr x17, [x16]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R16",Imm(64)),LittleEndian(),64)), -Def(Tid(1_455, "%000005af"), Attrs([Attr("address","0x638"), -Attr("insn","add x16, x16, #0x0")]), Var("R16",Imm(64)), -Var("R16",Imm(64)))]), Jmps([Call(Tid(1_460, "%000005b4"), - Attrs([Attr("address","0x63C"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), Sub(Tid(1_759, "@_fini"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x838")]), - "_fini", Args([Arg(Tid(1_817, "%00000719"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("_fini_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(31, "@_fini"), - Attrs([Attr("address","0x838")]), Phis([]), Defs([Def(Tid(37, "%00000025"), - Attrs([Attr("address","0x83C"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("#0",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(18446744073709551600,64))), -Def(Tid(43, "%0000002b"), Attrs([Attr("address","0x83C"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("#0",Imm(64)),Var("R29",Imm(64)),LittleEndian(),64)), -Def(Tid(49, "%00000031"), Attrs([Attr("address","0x83C"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("#0",Imm(64)),Int(8,64)),Var("R30",Imm(64)),LittleEndian(),64)), -Def(Tid(53, "%00000035"), Attrs([Attr("address","0x83C"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("R31",Imm(64)), -Var("#0",Imm(64))), Def(Tid(59, "%0000003b"), Attrs([Attr("address","0x840"), -Attr("insn","mov x29, sp")]), Var("R29",Imm(64)), Var("R31",Imm(64))), -Def(Tid(66, "%00000042"), Attrs([Attr("address","0x844"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R29",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(71, "%00000047"), Attrs([Attr("address","0x844"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R30",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(75, "%0000004b"), Attrs([Attr("address","0x844"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(16,64)))]), Jmps([Call(Tid(80, "%00000050"), - Attrs([Attr("address","0x848"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), Sub(Tid(1_760, "@_init"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x5F8")]), - "_init", Args([Arg(Tid(1_818, "%0000071a"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("_init_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(1_554, "@_init"), - Attrs([Attr("address","0x5F8")]), Phis([]), -Defs([Def(Tid(1_560, "%00000618"), Attrs([Attr("address","0x5FC"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("#8",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(18446744073709551600,64))), -Def(Tid(1_566, "%0000061e"), Attrs([Attr("address","0x5FC"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("#8",Imm(64)),Var("R29",Imm(64)),LittleEndian(),64)), -Def(Tid(1_572, "%00000624"), Attrs([Attr("address","0x5FC"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("#8",Imm(64)),Int(8,64)),Var("R30",Imm(64)),LittleEndian(),64)), -Def(Tid(1_576, "%00000628"), Attrs([Attr("address","0x5FC"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("R31",Imm(64)), -Var("#8",Imm(64))), Def(Tid(1_582, "%0000062e"), - Attrs([Attr("address","0x600"), Attr("insn","mov x29, sp")]), - Var("R29",Imm(64)), Var("R31",Imm(64))), Def(Tid(1_587, "%00000633"), - Attrs([Attr("address","0x604"), Attr("insn","bl #0xb0")]), - Var("R30",Imm(64)), Int(1544,64))]), Jmps([Call(Tid(1_589, "%00000635"), - Attrs([Attr("address","0x604"), Attr("insn","bl #0xb0")]), Int(1,1), -(Direct(Tid(1_767, "@call_weak_fn")),Direct(Tid(1_591, "%00000637"))))])), -Blk(Tid(1_591, "%00000637"), Attrs([Attr("address","0x608")]), Phis([]), -Defs([Def(Tid(1_596, "%0000063c"), Attrs([Attr("address","0x608"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R29",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(1_601, "%00000641"), Attrs([Attr("address","0x608"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R30",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(1_605, "%00000645"), Attrs([Attr("address","0x608"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(16,64)))]), Jmps([Call(Tid(1_610, "%0000064a"), - Attrs([Attr("address","0x60C"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), Sub(Tid(1_761, "@_start"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x680"), -Attr("entry-point","()")]), "_start", Args([Arg(Tid(1_819, "%0000071b"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("_start_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(524, "@_start"), - Attrs([Attr("address","0x680")]), Phis([]), Defs([Def(Tid(529, "%00000211"), - Attrs([Attr("address","0x684"), Attr("insn","mov x29, #0x0")]), - Var("R29",Imm(64)), Int(0,64)), Def(Tid(534, "%00000216"), - Attrs([Attr("address","0x688"), Attr("insn","mov x30, #0x0")]), - Var("R30",Imm(64)), Int(0,64)), Def(Tid(540, "%0000021c"), - Attrs([Attr("address","0x68C"), Attr("insn","mov x5, x0")]), - Var("R5",Imm(64)), Var("R0",Imm(64))), Def(Tid(547, "%00000223"), - Attrs([Attr("address","0x690"), Attr("insn","ldr x1, [sp]")]), - Var("R1",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(553, "%00000229"), Attrs([Attr("address","0x694"), -Attr("insn","add x2, sp, #0x8")]), Var("R2",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(8,64))), Def(Tid(559, "%0000022f"), - Attrs([Attr("address","0x698"), Attr("insn","mov x6, sp")]), - Var("R6",Imm(64)), Var("R31",Imm(64))), Def(Tid(564, "%00000234"), - Attrs([Attr("address","0x69C"), Attr("insn","adrp x0, #65536")]), - Var("R0",Imm(64)), Int(65536,64)), Def(Tid(571, "%0000023b"), - Attrs([Attr("address","0x6A0"), Attr("insn","ldr x0, [x0, #0xfd0]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(4048,64)),LittleEndian(),64)), -Def(Tid(576, "%00000240"), Attrs([Attr("address","0x6A4"), -Attr("insn","mov x3, #0x0")]), Var("R3",Imm(64)), Int(0,64)), -Def(Tid(581, "%00000245"), Attrs([Attr("address","0x6A8"), -Attr("insn","mov x4, #0x0")]), Var("R4",Imm(64)), Int(0,64)), -Def(Tid(586, "%0000024a"), Attrs([Attr("address","0x6AC"), -Attr("insn","bl #-0x7c")]), Var("R30",Imm(64)), Int(1712,64))]), -Jmps([Call(Tid(589, "%0000024d"), Attrs([Attr("address","0x6AC"), -Attr("insn","bl #-0x7c")]), Int(1,1), -(Direct(Tid(1_758, "@__libc_start_main")),Direct(Tid(591, "%0000024f"))))])), -Blk(Tid(591, "%0000024f"), Attrs([Attr("address","0x6B0")]), Phis([]), -Defs([Def(Tid(594, "%00000252"), Attrs([Attr("address","0x6B0"), -Attr("insn","bl #-0x50")]), Var("R30",Imm(64)), Int(1716,64))]), -Jmps([Call(Tid(597, "%00000255"), Attrs([Attr("address","0x6B0"), -Attr("insn","bl #-0x50")]), Int(1,1), -(Direct(Tid(1_764, "@abort")),Direct(Tid(1_802, "%0000070a"))))])), -Blk(Tid(1_802, "%0000070a"), Attrs([]), Phis([]), Defs([]), -Jmps([Call(Tid(1_803, "%0000070b"), Attrs([]), Int(1,1), -(Direct(Tid(1_767, "@call_weak_fn")),))]))])), Sub(Tid(1_764, "@abort"), - Attrs([Attr("noreturn","()"), Attr("c.proto","void (*)(void)"), -Attr("address","0x660"), Attr("stub","()")]), "abort", Args([]), -Blks([Blk(Tid(595, "@abort"), Attrs([Attr("address","0x660")]), Phis([]), -Defs([Def(Tid(1_508, "%000005e4"), Attrs([Attr("address","0x660"), -Attr("insn","adrp x16, #69632")]), Var("R16",Imm(64)), Int(69632,64)), -Def(Tid(1_515, "%000005eb"), Attrs([Attr("address","0x664"), -Attr("insn","ldr x17, [x16, #0x18]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(24,64)),LittleEndian(),64)), -Def(Tid(1_521, "%000005f1"), Attrs([Attr("address","0x668"), -Attr("insn","add x16, x16, #0x18")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(24,64)))]), Jmps([Call(Tid(1_526, "%000005f6"), - Attrs([Attr("address","0x66C"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), Sub(Tid(1_765, "@add_six"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x7AC")]), - "add_six", Args([Arg(Tid(1_820, "%0000071c"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("add_six_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(884, "@add_six"), - Attrs([Attr("address","0x7AC")]), Phis([]), Defs([Def(Tid(887, "%00000377"), - Attrs([Attr("address","0x7AC"), Attr("insn","adrp x9, #65536")]), - Var("R9",Imm(64)), Int(65536,64)), Def(Tid(894, "%0000037e"), - Attrs([Attr("address","0x7B0"), Attr("insn","ldr x9, [x9, #0xfc0]")]), - Var("R9",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R9",Imm(64)),Int(4032,64)),LittleEndian(),64)), -Def(Tid(901, "%00000385"), Attrs([Attr("address","0x7B4"), -Attr("insn","ldr w8, [x9]")]), Var("R8",Imm(64)), -UNSIGNED(64,Load(Var("mem",Mem(64,8)),Var("R9",Imm(64)),LittleEndian(),32))), -Def(Tid(907, "%0000038b"), Attrs([Attr("address","0x7B8"), -Attr("insn","add w8, w8, #0x6")]), Var("R8",Imm(64)), -UNSIGNED(64,PLUS(Extract(31,0,Var("R8",Imm(64))),Int(6,32)))), -Def(Tid(915, "%00000393"), Attrs([Attr("address","0x7BC"), -Attr("insn","str w8, [x9]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("R9",Imm(64)),Extract(31,0,Var("R8",Imm(64))),LittleEndian(),32))]), -Jmps([Call(Tid(920, "%00000398"), Attrs([Attr("address","0x7C0"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))]))])), -Sub(Tid(1_766, "@add_two"), Attrs([Attr("c.proto","signed (*)(void)"), -Attr("address","0x794")]), "add_two", Args([Arg(Tid(1_821, "%0000071d"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("add_two_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(846, "@add_two"), - Attrs([Attr("address","0x794")]), Phis([]), Defs([Def(Tid(849, "%00000351"), - Attrs([Attr("address","0x794"), Attr("insn","adrp x9, #65536")]), - Var("R9",Imm(64)), Int(65536,64)), Def(Tid(856, "%00000358"), - Attrs([Attr("address","0x798"), Attr("insn","ldr x9, [x9, #0xfc0]")]), - Var("R9",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R9",Imm(64)),Int(4032,64)),LittleEndian(),64)), -Def(Tid(863, "%0000035f"), Attrs([Attr("address","0x79C"), -Attr("insn","ldr w8, [x9]")]), Var("R8",Imm(64)), -UNSIGNED(64,Load(Var("mem",Mem(64,8)),Var("R9",Imm(64)),LittleEndian(),32))), -Def(Tid(869, "%00000365"), Attrs([Attr("address","0x7A0"), -Attr("insn","add w8, w8, #0x2")]), Var("R8",Imm(64)), -UNSIGNED(64,PLUS(Extract(31,0,Var("R8",Imm(64))),Int(2,32)))), -Def(Tid(877, "%0000036d"), Attrs([Attr("address","0x7A4"), -Attr("insn","str w8, [x9]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("R9",Imm(64)),Extract(31,0,Var("R8",Imm(64))),LittleEndian(),32))]), -Jmps([Call(Tid(882, "%00000372"), Attrs([Attr("address","0x7A8"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))]))])), -Sub(Tid(1_767, "@call_weak_fn"), Attrs([Attr("c.proto","signed (*)(void)"), -Attr("address","0x6B4")]), "call_weak_fn", Args([Arg(Tid(1_822, "%0000071e"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("call_weak_fn_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(599, "@call_weak_fn"), - Attrs([Attr("address","0x6B4")]), Phis([]), Defs([Def(Tid(602, "%0000025a"), - Attrs([Attr("address","0x6B4"), Attr("insn","adrp x0, #65536")]), - Var("R0",Imm(64)), Int(65536,64)), Def(Tid(609, "%00000261"), - Attrs([Attr("address","0x6B8"), Attr("insn","ldr x0, [x0, #0xfc8]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(4040,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(615, "%00000267"), Attrs([Attr("address","0x6BC"), -Attr("insn","cbz x0, #0x8")]), EQ(Var("R0",Imm(64)),Int(0,64)), -Direct(Tid(613, "%00000265"))), Goto(Tid(1_804, "%0000070c"), Attrs([]), - Int(1,1), Direct(Tid(1_280, "%00000500")))])), Blk(Tid(613, "%00000265"), - Attrs([Attr("address","0x6C4")]), Phis([]), Defs([]), -Jmps([Call(Tid(621, "%0000026d"), Attrs([Attr("address","0x6C4"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))])), -Blk(Tid(1_280, "%00000500"), Attrs([Attr("address","0x6C0")]), Phis([]), -Defs([]), Jmps([Goto(Tid(1_283, "%00000503"), Attrs([Attr("address","0x6C0"), -Attr("insn","b #-0x70")]), Int(1,1), -Direct(Tid(1_281, "@__gmon_start__")))])), Blk(Tid(1_281, "@__gmon_start__"), - Attrs([Attr("address","0x650")]), Phis([]), -Defs([Def(Tid(1_486, "%000005ce"), Attrs([Attr("address","0x650"), -Attr("insn","adrp x16, #69632")]), Var("R16",Imm(64)), Int(69632,64)), -Def(Tid(1_493, "%000005d5"), Attrs([Attr("address","0x654"), -Attr("insn","ldr x17, [x16, #0x10]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(16,64)),LittleEndian(),64)), -Def(Tid(1_499, "%000005db"), Attrs([Attr("address","0x658"), -Attr("insn","add x16, x16, #0x10")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(16,64)))]), Jmps([Call(Tid(1_504, "%000005e0"), - Attrs([Attr("address","0x65C"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), -Sub(Tid(1_769, "@deregister_tm_clones"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x6D0")]), - "deregister_tm_clones", Args([Arg(Tid(1_823, "%0000071f"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("deregister_tm_clones_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(627, "@deregister_tm_clones"), - Attrs([Attr("address","0x6D0")]), Phis([]), Defs([Def(Tid(630, "%00000276"), - Attrs([Attr("address","0x6D0"), Attr("insn","adrp x0, #69632")]), - Var("R0",Imm(64)), Int(69632,64)), Def(Tid(636, "%0000027c"), - Attrs([Attr("address","0x6D4"), Attr("insn","add x0, x0, #0x50")]), - Var("R0",Imm(64)), PLUS(Var("R0",Imm(64)),Int(80,64))), -Def(Tid(641, "%00000281"), Attrs([Attr("address","0x6D8"), -Attr("insn","adrp x1, #69632")]), Var("R1",Imm(64)), Int(69632,64)), -Def(Tid(647, "%00000287"), Attrs([Attr("address","0x6DC"), -Attr("insn","add x1, x1, #0x50")]), Var("R1",Imm(64)), -PLUS(Var("R1",Imm(64)),Int(80,64))), Def(Tid(653, "%0000028d"), - Attrs([Attr("address","0x6E0"), Attr("insn","cmp x1, x0")]), - Var("#1",Imm(64)), NOT(Var("R0",Imm(64)))), Def(Tid(658, "%00000292"), - Attrs([Attr("address","0x6E0"), Attr("insn","cmp x1, x0")]), - Var("#2",Imm(64)), PLUS(Var("R1",Imm(64)),NOT(Var("R0",Imm(64))))), -Def(Tid(664, "%00000298"), Attrs([Attr("address","0x6E0"), -Attr("insn","cmp x1, x0")]), Var("VF",Imm(1)), -NEQ(SIGNED(65,PLUS(Var("#2",Imm(64)),Int(1,64))),PLUS(PLUS(SIGNED(65,Var("R1",Imm(64))),SIGNED(65,Var("#1",Imm(64)))),Int(1,65)))), -Def(Tid(670, "%0000029e"), Attrs([Attr("address","0x6E0"), -Attr("insn","cmp x1, x0")]), Var("CF",Imm(1)), -NEQ(UNSIGNED(65,PLUS(Var("#2",Imm(64)),Int(1,64))),PLUS(PLUS(UNSIGNED(65,Var("R1",Imm(64))),UNSIGNED(65,Var("#1",Imm(64)))),Int(1,65)))), -Def(Tid(674, "%000002a2"), Attrs([Attr("address","0x6E0"), -Attr("insn","cmp x1, x0")]), Var("ZF",Imm(1)), -EQ(PLUS(Var("#2",Imm(64)),Int(1,64)),Int(0,64))), Def(Tid(678, "%000002a6"), - Attrs([Attr("address","0x6E0"), Attr("insn","cmp x1, x0")]), - Var("NF",Imm(1)), Extract(63,63,PLUS(Var("#2",Imm(64)),Int(1,64))))]), -Jmps([Goto(Tid(684, "%000002ac"), Attrs([Attr("address","0x6E4"), -Attr("insn","b.eq #0x18")]), EQ(Var("ZF",Imm(1)),Int(1,1)), -Direct(Tid(682, "%000002aa"))), Goto(Tid(1_805, "%0000070d"), Attrs([]), - Int(1,1), Direct(Tid(1_250, "%000004e2")))])), Blk(Tid(1_250, "%000004e2"), - Attrs([Attr("address","0x6E8")]), Phis([]), -Defs([Def(Tid(1_253, "%000004e5"), Attrs([Attr("address","0x6E8"), -Attr("insn","adrp x1, #65536")]), Var("R1",Imm(64)), Int(65536,64)), -Def(Tid(1_260, "%000004ec"), Attrs([Attr("address","0x6EC"), -Attr("insn","ldr x1, [x1, #0xfb0]")]), Var("R1",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R1",Imm(64)),Int(4016,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(1_265, "%000004f1"), Attrs([Attr("address","0x6F0"), -Attr("insn","cbz x1, #0xc")]), EQ(Var("R1",Imm(64)),Int(0,64)), -Direct(Tid(682, "%000002aa"))), Goto(Tid(1_806, "%0000070e"), Attrs([]), - Int(1,1), Direct(Tid(1_269, "%000004f5")))])), Blk(Tid(682, "%000002aa"), - Attrs([Attr("address","0x6FC")]), Phis([]), Defs([]), -Jmps([Call(Tid(690, "%000002b2"), Attrs([Attr("address","0x6FC"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))])), -Blk(Tid(1_269, "%000004f5"), Attrs([Attr("address","0x6F4")]), Phis([]), -Defs([Def(Tid(1_273, "%000004f9"), Attrs([Attr("address","0x6F4"), -Attr("insn","mov x16, x1")]), Var("R16",Imm(64)), Var("R1",Imm(64)))]), -Jmps([Call(Tid(1_278, "%000004fe"), Attrs([Attr("address","0x6F8"), -Attr("insn","br x16")]), Int(1,1), (Indirect(Var("R16",Imm(64))),))]))])), -Sub(Tid(1_772, "@frame_dummy"), Attrs([Attr("c.proto","signed (*)(void)"), -Attr("address","0x790")]), "frame_dummy", Args([Arg(Tid(1_824, "%00000720"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("frame_dummy_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(842, "@frame_dummy"), - Attrs([Attr("address","0x790")]), Phis([]), Defs([]), -Jmps([Call(Tid(844, "%0000034c"), Attrs([Attr("address","0x790"), -Attr("insn","b #-0x90")]), Int(1,1), -(Direct(Tid(1_774, "@register_tm_clones")),))]))])), Sub(Tid(1_773, "@main"), - Attrs([Attr("c.proto","signed (*)(signed argc, const char** argv)"), -Attr("address","0x7DC")]), "main", Args([Arg(Tid(1_825, "%00000721"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("main_argc",Imm(32)), -LOW(32,Var("R0",Imm(64))), In()), Arg(Tid(1_826, "%00000722"), - Attrs([Attr("c.layout","**[char : 8]"), Attr("c.data","Top:u8 ptr ptr"), -Attr("c.type"," const char**")]), Var("main_argv",Imm(64)), -Var("R1",Imm(64)), Both()), Arg(Tid(1_827, "%00000723"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("main_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(982, "@main"), - Attrs([Attr("address","0x7DC")]), Phis([]), Defs([Def(Tid(986, "%000003da"), - Attrs([Attr("address","0x7DC"), Attr("insn","sub sp, sp, #0x30")]), - Var("R31",Imm(64)), PLUS(Var("R31",Imm(64)),Int(18446744073709551568,64))), -Def(Tid(992, "%000003e0"), Attrs([Attr("address","0x7E0"), -Attr("insn","stp x29, x30, [sp, #0x20]")]), Var("#5",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(32,64))), Def(Tid(998, "%000003e6"), - Attrs([Attr("address","0x7E0"), Attr("insn","stp x29, x30, [sp, #0x20]")]), - Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("#5",Imm(64)),Var("R29",Imm(64)),LittleEndian(),64)), -Def(Tid(1_004, "%000003ec"), Attrs([Attr("address","0x7E0"), -Attr("insn","stp x29, x30, [sp, #0x20]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("#5",Imm(64)),Int(8,64)),Var("R30",Imm(64)),LittleEndian(),64)), -Def(Tid(1_010, "%000003f2"), Attrs([Attr("address","0x7E4"), -Attr("insn","add x29, sp, #0x20")]), Var("R29",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(32,64))), Def(Tid(1_015, "%000003f7"), - Attrs([Attr("address","0x7E8"), Attr("insn","adrp x8, #65536")]), - Var("R8",Imm(64)), Int(65536,64)), Def(Tid(1_022, "%000003fe"), - Attrs([Attr("address","0x7EC"), Attr("insn","ldr x8, [x8, #0xfe0]")]), - Var("R8",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R8",Imm(64)),Int(4064,64)),LittleEndian(),64)), -Def(Tid(1_030, "%00000406"), Attrs([Attr("address","0x7F0"), -Attr("insn","str x8, [sp]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("R31",Imm(64)),Var("R8",Imm(64)),LittleEndian(),64)), -Def(Tid(1_035, "%0000040b"), Attrs([Attr("address","0x7F4"), -Attr("insn","mov w9, wzr")]), Var("R9",Imm(64)), Int(0,64)), -Def(Tid(1_043, "%00000413"), Attrs([Attr("address","0x7F8"), -Attr("insn","str w9, [sp, #0xc]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(12,64)),Extract(31,0,Var("R9",Imm(64))),LittleEndian(),32)), -Def(Tid(1_050, "%0000041a"), Attrs([Attr("address","0x7FC"), -Attr("insn","stur wzr, [x29, #-0x4]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R29",Imm(64)),Int(18446744073709551612,64)),Int(0,32),LittleEndian(),32)), -Def(Tid(1_058, "%00000422"), Attrs([Attr("address","0x800"), -Attr("insn","stur w0, [x29, #-0x8]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R29",Imm(64)),Int(18446744073709551608,64)),Extract(31,0,Var("R0",Imm(64))),LittleEndian(),32)), -Def(Tid(1_066, "%0000042a"), Attrs([Attr("address","0x804"), -Attr("insn","str x1, [sp, #0x10]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(16,64)),Var("R1",Imm(64)),LittleEndian(),64)), -Def(Tid(1_073, "%00000431"), Attrs([Attr("address","0x808"), -Attr("insn","ldr x8, [x8]")]), Var("R8",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R8",Imm(64)),LittleEndian(),64)), -Def(Tid(1_078, "%00000436"), Attrs([Attr("address","0x80C"), -Attr("insn","blr x8")]), Var("R30",Imm(64)), Int(2064,64))]), -Jmps([Call(Tid(1_081, "%00000439"), Attrs([Attr("address","0x80C"), -Attr("insn","blr x8")]), Int(1,1), -(Indirect(Var("R8",Imm(64))),Direct(Tid(1_083, "%0000043b"))))])), -Blk(Tid(1_083, "%0000043b"), Attrs([Attr("address","0x810")]), Phis([]), -Defs([Def(Tid(1_088, "%00000440"), Attrs([Attr("address","0x810"), -Attr("insn","ldr x8, [sp]")]), Var("R8",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(1_095, "%00000447"), Attrs([Attr("address","0x814"), -Attr("insn","ldr x8, [x8, #0x8]")]), Var("R8",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R8",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(1_100, "%0000044c"), Attrs([Attr("address","0x818"), -Attr("insn","blr x8")]), Var("R30",Imm(64)), Int(2076,64))]), -Jmps([Call(Tid(1_103, "%0000044f"), Attrs([Attr("address","0x818"), -Attr("insn","blr x8")]), Int(1,1), -(Indirect(Var("R8",Imm(64))),Direct(Tid(1_105, "%00000451"))))])), -Blk(Tid(1_105, "%00000451"), Attrs([Attr("address","0x81C")]), Phis([]), -Defs([Def(Tid(1_110, "%00000456"), Attrs([Attr("address","0x81C"), -Attr("insn","ldr x8, [sp]")]), Var("R8",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(1_117, "%0000045d"), Attrs([Attr("address","0x820"), -Attr("insn","ldr x8, [x8, #0x10]")]), Var("R8",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R8",Imm(64)),Int(16,64)),LittleEndian(),64)), -Def(Tid(1_122, "%00000462"), Attrs([Attr("address","0x824"), -Attr("insn","blr x8")]), Var("R30",Imm(64)), Int(2088,64))]), -Jmps([Call(Tid(1_125, "%00000465"), Attrs([Attr("address","0x824"), -Attr("insn","blr x8")]), Int(1,1), -(Indirect(Var("R8",Imm(64))),Direct(Tid(1_127, "%00000467"))))])), -Blk(Tid(1_127, "%00000467"), Attrs([Attr("address","0x828")]), Phis([]), -Defs([Def(Tid(1_132, "%0000046c"), Attrs([Attr("address","0x828"), -Attr("insn","ldr w0, [sp, #0xc]")]), Var("R0",Imm(64)), -UNSIGNED(64,Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(12,64)),LittleEndian(),32))), -Def(Tid(1_138, "%00000472"), Attrs([Attr("address","0x82C"), -Attr("insn","ldp x29, x30, [sp, #0x20]")]), Var("#6",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(32,64))), Def(Tid(1_143, "%00000477"), - Attrs([Attr("address","0x82C"), Attr("insn","ldp x29, x30, [sp, #0x20]")]), - Var("R29",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("#6",Imm(64)),LittleEndian(),64)), -Def(Tid(1_148, "%0000047c"), Attrs([Attr("address","0x82C"), -Attr("insn","ldp x29, x30, [sp, #0x20]")]), Var("R30",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("#6",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(1_154, "%00000482"), Attrs([Attr("address","0x830"), -Attr("insn","add sp, sp, #0x30")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(48,64)))]), Jmps([Call(Tid(1_159, "%00000487"), - Attrs([Attr("address","0x834"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), -Sub(Tid(1_774, "@register_tm_clones"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x700")]), - "register_tm_clones", Args([Arg(Tid(1_828, "%00000724"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("register_tm_clones_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(692, "@register_tm_clones"), Attrs([Attr("address","0x700")]), - Phis([]), Defs([Def(Tid(695, "%000002b7"), Attrs([Attr("address","0x700"), -Attr("insn","adrp x0, #69632")]), Var("R0",Imm(64)), Int(69632,64)), -Def(Tid(701, "%000002bd"), Attrs([Attr("address","0x704"), -Attr("insn","add x0, x0, #0x50")]), Var("R0",Imm(64)), -PLUS(Var("R0",Imm(64)),Int(80,64))), Def(Tid(706, "%000002c2"), - Attrs([Attr("address","0x708"), Attr("insn","adrp x1, #69632")]), - Var("R1",Imm(64)), Int(69632,64)), Def(Tid(712, "%000002c8"), - Attrs([Attr("address","0x70C"), Attr("insn","add x1, x1, #0x50")]), - Var("R1",Imm(64)), PLUS(Var("R1",Imm(64)),Int(80,64))), -Def(Tid(719, "%000002cf"), Attrs([Attr("address","0x710"), -Attr("insn","sub x1, x1, x0")]), Var("R1",Imm(64)), -PLUS(PLUS(Var("R1",Imm(64)),NOT(Var("R0",Imm(64)))),Int(1,64))), -Def(Tid(725, "%000002d5"), Attrs([Attr("address","0x714"), -Attr("insn","lsr x2, x1, #63")]), Var("R2",Imm(64)), -Concat(Int(0,63),Extract(63,63,Var("R1",Imm(64))))), -Def(Tid(732, "%000002dc"), Attrs([Attr("address","0x718"), -Attr("insn","add x1, x2, x1, asr #3")]), Var("R1",Imm(64)), -PLUS(Var("R2",Imm(64)),ARSHIFT(Var("R1",Imm(64)),Int(3,3)))), -Def(Tid(738, "%000002e2"), Attrs([Attr("address","0x71C"), -Attr("insn","asr x1, x1, #1")]), Var("R1",Imm(64)), -SIGNED(64,Extract(63,1,Var("R1",Imm(64)))))]), -Jmps([Goto(Tid(744, "%000002e8"), Attrs([Attr("address","0x720"), -Attr("insn","cbz x1, #0x18")]), EQ(Var("R1",Imm(64)),Int(0,64)), -Direct(Tid(742, "%000002e6"))), Goto(Tid(1_807, "%0000070f"), Attrs([]), - Int(1,1), Direct(Tid(1_220, "%000004c4")))])), Blk(Tid(1_220, "%000004c4"), - Attrs([Attr("address","0x724")]), Phis([]), -Defs([Def(Tid(1_223, "%000004c7"), Attrs([Attr("address","0x724"), -Attr("insn","adrp x2, #65536")]), Var("R2",Imm(64)), Int(65536,64)), -Def(Tid(1_230, "%000004ce"), Attrs([Attr("address","0x728"), -Attr("insn","ldr x2, [x2, #0xfd8]")]), Var("R2",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R2",Imm(64)),Int(4056,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(1_235, "%000004d3"), Attrs([Attr("address","0x72C"), -Attr("insn","cbz x2, #0xc")]), EQ(Var("R2",Imm(64)),Int(0,64)), -Direct(Tid(742, "%000002e6"))), Goto(Tid(1_808, "%00000710"), Attrs([]), - Int(1,1), Direct(Tid(1_239, "%000004d7")))])), Blk(Tid(742, "%000002e6"), - Attrs([Attr("address","0x738")]), Phis([]), Defs([]), -Jmps([Call(Tid(750, "%000002ee"), Attrs([Attr("address","0x738"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))])), -Blk(Tid(1_239, "%000004d7"), Attrs([Attr("address","0x730")]), Phis([]), -Defs([Def(Tid(1_243, "%000004db"), Attrs([Attr("address","0x730"), -Attr("insn","mov x16, x2")]), Var("R16",Imm(64)), Var("R2",Imm(64)))]), -Jmps([Call(Tid(1_248, "%000004e0"), Attrs([Attr("address","0x734"), -Attr("insn","br x16")]), Int(1,1), (Indirect(Var("R16",Imm(64))),))]))])), -Sub(Tid(1_777, "@sub_seven"), Attrs([Attr("c.proto","signed (*)(void)"), -Attr("address","0x7C4")]), "sub_seven", Args([Arg(Tid(1_829, "%00000725"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("sub_seven_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(922, "@sub_seven"), - Attrs([Attr("address","0x7C4")]), Phis([]), Defs([Def(Tid(925, "%0000039d"), - Attrs([Attr("address","0x7C4"), Attr("insn","adrp x9, #65536")]), - Var("R9",Imm(64)), Int(65536,64)), Def(Tid(932, "%000003a4"), - Attrs([Attr("address","0x7C8"), Attr("insn","ldr x9, [x9, #0xfc0]")]), - Var("R9",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R9",Imm(64)),Int(4032,64)),LittleEndian(),64)), -Def(Tid(939, "%000003ab"), Attrs([Attr("address","0x7CC"), -Attr("insn","ldr w8, [x9]")]), Var("R8",Imm(64)), -UNSIGNED(64,Load(Var("mem",Mem(64,8)),Var("R9",Imm(64)),LittleEndian(),32))), -Def(Tid(945, "%000003b1"), Attrs([Attr("address","0x7D0"), -Attr("insn","subs w8, w8, #0x7")]), Var("#4",Imm(32)), -PLUS(Extract(31,0,Var("R8",Imm(64))),Int(4294967288,32))), -Def(Tid(950, "%000003b6"), Attrs([Attr("address","0x7D0"), -Attr("insn","subs w8, w8, #0x7")]), Var("VF",Imm(1)), -NEQ(SIGNED(33,PLUS(Var("#4",Imm(32)),Int(1,32))),PLUS(SIGNED(33,Extract(31,0,Var("R8",Imm(64)))),Int(8589934585,33)))), -Def(Tid(955, "%000003bb"), Attrs([Attr("address","0x7D0"), -Attr("insn","subs w8, w8, #0x7")]), Var("CF",Imm(1)), -NEQ(UNSIGNED(33,PLUS(Var("#4",Imm(32)),Int(1,32))),PLUS(UNSIGNED(33,Extract(31,0,Var("R8",Imm(64)))),Int(4294967289,33)))), -Def(Tid(959, "%000003bf"), Attrs([Attr("address","0x7D0"), -Attr("insn","subs w8, w8, #0x7")]), Var("ZF",Imm(1)), -EQ(PLUS(Var("#4",Imm(32)),Int(1,32)),Int(0,32))), Def(Tid(963, "%000003c3"), - Attrs([Attr("address","0x7D0"), Attr("insn","subs w8, w8, #0x7")]), - Var("NF",Imm(1)), Extract(31,31,PLUS(Var("#4",Imm(32)),Int(1,32)))), -Def(Tid(967, "%000003c7"), Attrs([Attr("address","0x7D0"), -Attr("insn","subs w8, w8, #0x7")]), Var("R8",Imm(64)), -UNSIGNED(64,PLUS(Var("#4",Imm(32)),Int(1,32)))), Def(Tid(975, "%000003cf"), - Attrs([Attr("address","0x7D4"), Attr("insn","str w8, [x9]")]), - Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("R9",Imm(64)),Extract(31,0,Var("R8",Imm(64))),LittleEndian(),32))]), -Jmps([Call(Tid(980, "%000003d4"), Attrs([Attr("address","0x7D8"), -Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))]))]))) \ No newline at end of file diff --git a/src/test/indirect_calls/jumptable2/clang_pic/jumptable2.bir b/src/test/indirect_calls/jumptable2/clang_pic/jumptable2.bir deleted file mode 100644 index 19be75d60..000000000 --- a/src/test/indirect_calls/jumptable2/clang_pic/jumptable2.bir +++ /dev/null @@ -1,296 +0,0 @@ -00000711: program -000006d9: sub __cxa_finalize(__cxa_finalize_result) -00000712: __cxa_finalize_result :: out u32 = low:32[R0] - -000004c0: -000005b8: R16 := 0x11000 -000005bf: R17 := mem[R16 + 8, el]:u64 -000005c5: R16 := R16 + 8 -000005ca: call R17 with noreturn - -000006da: sub __do_global_dtors_aux(__do_global_dtors_aux_result) -00000713: __do_global_dtors_aux_result :: out u32 = low:32[R0] - -000002f2: -000002f6: #3 := R31 - 0x20 -000002fc: mem := mem with [#3, el]:u64 <- R29 -00000302: mem := mem with [#3 + 8, el]:u64 <- R30 -00000306: R31 := #3 -0000030c: R29 := R31 -00000314: mem := mem with [R31 + 0x10, el]:u64 <- R19 -00000319: R19 := 0x11000 -00000320: R0 := pad:64[mem[R19 + 0x50]] -00000327: when 31:0[R0] <> 0 goto %00000325 -00000707: goto %00000489 - -00000489: -0000048c: R0 := 0x10000 -00000493: R0 := mem[R0 + 0xFB8, el]:u64 -00000499: when R0 = 0 goto %00000497 -00000708: goto %000004b0 - -000004b0: -000004b3: R0 := 0x11000 -000004ba: R0 := mem[R0 + 0x28, el]:u64 -000004bf: R30 := 0x770 -000004c2: call @__cxa_finalize with return %00000497 - -00000497: -0000049f: R30 := 0x774 -000004a1: call @deregister_tm_clones with return %000004a3 - -000004a3: -000004a6: R0 := 1 -000004ae: mem := mem with [R19 + 0x50] <- 7:0[R0] -00000709: goto %00000325 - -00000325: -0000032f: R19 := mem[R31 + 0x10, el]:u64 -00000336: R29 := mem[R31, el]:u64 -0000033b: R30 := mem[R31 + 8, el]:u64 -0000033f: R31 := R31 + 0x20 -00000344: call R30 with noreturn - -000006de: sub __libc_start_main(__libc_start_main_main, __libc_start_main_arg2, __libc_start_main_arg3, __libc_start_main_auxv, __libc_start_main_result) -00000714: __libc_start_main_main :: in u64 = R0 -00000715: __libc_start_main_arg2 :: in u32 = low:32[R1] -00000716: __libc_start_main_arg3 :: in out u64 = R2 -00000717: __libc_start_main_auxv :: in out u64 = R3 -00000718: __libc_start_main_result :: out u32 = low:32[R0] - -0000024b: -000005a2: R16 := 0x11000 -000005a9: R17 := mem[R16, el]:u64 -000005af: R16 := R16 -000005b4: call R17 with noreturn - -000006df: sub _fini(_fini_result) -00000719: _fini_result :: out u32 = low:32[R0] - -0000001f: -00000025: #0 := R31 - 0x10 -0000002b: mem := mem with [#0, el]:u64 <- R29 -00000031: mem := mem with [#0 + 8, el]:u64 <- R30 -00000035: R31 := #0 -0000003b: R29 := R31 -00000042: R29 := mem[R31, el]:u64 -00000047: R30 := mem[R31 + 8, el]:u64 -0000004b: R31 := R31 + 0x10 -00000050: call R30 with noreturn - -000006e0: sub _init(_init_result) -0000071a: _init_result :: out u32 = low:32[R0] - -00000612: -00000618: #8 := R31 - 0x10 -0000061e: mem := mem with [#8, el]:u64 <- R29 -00000624: mem := mem with [#8 + 8, el]:u64 <- R30 -00000628: R31 := #8 -0000062e: R29 := R31 -00000633: R30 := 0x608 -00000635: call @call_weak_fn with return %00000637 - -00000637: -0000063c: R29 := mem[R31, el]:u64 -00000641: R30 := mem[R31 + 8, el]:u64 -00000645: R31 := R31 + 0x10 -0000064a: call R30 with noreturn - -000006e1: sub _start(_start_result) -0000071b: _start_result :: out u32 = low:32[R0] - -0000020c: -00000211: R29 := 0 -00000216: R30 := 0 -0000021c: R5 := R0 -00000223: R1 := mem[R31, el]:u64 -00000229: R2 := R31 + 8 -0000022f: R6 := R31 -00000234: R0 := 0x10000 -0000023b: R0 := mem[R0 + 0xFD0, el]:u64 -00000240: R3 := 0 -00000245: R4 := 0 -0000024a: R30 := 0x6B0 -0000024d: call @__libc_start_main with return %0000024f - -0000024f: -00000252: R30 := 0x6B4 -00000255: call @abort with return %0000070a - -0000070a: -0000070b: call @call_weak_fn with noreturn - -000006e4: sub abort() - - -00000253: -000005e4: R16 := 0x11000 -000005eb: R17 := mem[R16 + 0x18, el]:u64 -000005f1: R16 := R16 + 0x18 -000005f6: call R17 with noreturn - -000006e5: sub add_six(add_six_result) -0000071c: add_six_result :: out u32 = low:32[R0] - -00000374: -00000377: R9 := 0x10000 -0000037e: R9 := mem[R9 + 0xFC0, el]:u64 -00000385: R8 := pad:64[mem[R9, el]:u32] -0000038b: R8 := pad:64[31:0[R8] + 6] -00000393: mem := mem with [R9, el]:u32 <- 31:0[R8] -00000398: call R30 with noreturn - -000006e6: sub add_two(add_two_result) -0000071d: add_two_result :: out u32 = low:32[R0] - -0000034e: -00000351: R9 := 0x10000 -00000358: R9 := mem[R9 + 0xFC0, el]:u64 -0000035f: R8 := pad:64[mem[R9, el]:u32] -00000365: R8 := pad:64[31:0[R8] + 2] -0000036d: mem := mem with [R9, el]:u32 <- 31:0[R8] -00000372: call R30 with noreturn - -000006e7: sub call_weak_fn(call_weak_fn_result) -0000071e: call_weak_fn_result :: out u32 = low:32[R0] - -00000257: -0000025a: R0 := 0x10000 -00000261: R0 := mem[R0 + 0xFC8, el]:u64 -00000267: when R0 = 0 goto %00000265 -0000070c: goto %00000500 - -00000265: -0000026d: call R30 with noreturn - -00000500: -00000503: goto @__gmon_start__ - -00000501: -000005ce: R16 := 0x11000 -000005d5: R17 := mem[R16 + 0x10, el]:u64 -000005db: R16 := R16 + 0x10 -000005e0: call R17 with noreturn - -000006e9: sub deregister_tm_clones(deregister_tm_clones_result) -0000071f: deregister_tm_clones_result :: out u32 = low:32[R0] - -00000273: -00000276: R0 := 0x11000 -0000027c: R0 := R0 + 0x50 -00000281: R1 := 0x11000 -00000287: R1 := R1 + 0x50 -0000028d: #1 := ~R0 -00000292: #2 := R1 + ~R0 -00000298: VF := extend:65[#2 + 1] <> extend:65[R1] + extend:65[#1] + 1 -0000029e: CF := pad:65[#2 + 1] <> pad:65[R1] + pad:65[#1] + 1 -000002a2: ZF := #2 + 1 = 0 -000002a6: NF := 63:63[#2 + 1] -000002ac: when ZF goto %000002aa -0000070d: goto %000004e2 - -000004e2: -000004e5: R1 := 0x10000 -000004ec: R1 := mem[R1 + 0xFB0, el]:u64 -000004f1: when R1 = 0 goto %000002aa -0000070e: goto %000004f5 - -000002aa: -000002b2: call R30 with noreturn - -000004f5: -000004f9: R16 := R1 -000004fe: call R16 with noreturn - -000006ec: sub frame_dummy(frame_dummy_result) -00000720: frame_dummy_result :: out u32 = low:32[R0] - -0000034a: -0000034c: call @register_tm_clones with noreturn - -000006ed: sub main(main_argc, main_argv, main_result) -00000721: main_argc :: in u32 = low:32[R0] -00000722: main_argv :: in out u64 = R1 -00000723: main_result :: out u32 = low:32[R0] - -000003d6: -000003da: R31 := R31 - 0x30 -000003e0: #5 := R31 + 0x20 -000003e6: mem := mem with [#5, el]:u64 <- R29 -000003ec: mem := mem with [#5 + 8, el]:u64 <- R30 -000003f2: R29 := R31 + 0x20 -000003f7: R8 := 0x10000 -000003fe: R8 := mem[R8 + 0xFE0, el]:u64 -00000406: mem := mem with [R31, el]:u64 <- R8 -0000040b: R9 := 0 -00000413: mem := mem with [R31 + 0xC, el]:u32 <- 31:0[R9] -0000041a: mem := mem with [R29 - 4, el]:u32 <- 0 -00000422: mem := mem with [R29 - 8, el]:u32 <- 31:0[R0] -0000042a: mem := mem with [R31 + 0x10, el]:u64 <- R1 -00000431: R8 := mem[R8, el]:u64 -00000436: R30 := 0x810 -00000439: call R8 with return %0000043b - -0000043b: -00000440: R8 := mem[R31, el]:u64 -00000447: R8 := mem[R8 + 8, el]:u64 -0000044c: R30 := 0x81C -0000044f: call R8 with return %00000451 - -00000451: -00000456: R8 := mem[R31, el]:u64 -0000045d: R8 := mem[R8 + 0x10, el]:u64 -00000462: R30 := 0x828 -00000465: call R8 with return %00000467 - -00000467: -0000046c: R0 := pad:64[mem[R31 + 0xC, el]:u32] -00000472: #6 := R31 + 0x20 -00000477: R29 := mem[#6, el]:u64 -0000047c: R30 := mem[#6 + 8, el]:u64 -00000482: R31 := R31 + 0x30 -00000487: call R30 with noreturn - -000006ee: sub register_tm_clones(register_tm_clones_result) -00000724: register_tm_clones_result :: out u32 = low:32[R0] - -000002b4: -000002b7: R0 := 0x11000 -000002bd: R0 := R0 + 0x50 -000002c2: R1 := 0x11000 -000002c8: R1 := R1 + 0x50 -000002cf: R1 := R1 + ~R0 + 1 -000002d5: R2 := 0.63:63[R1] -000002dc: R1 := R2 + (R1 ~>> 3) -000002e2: R1 := extend:64[63:1[R1]] -000002e8: when R1 = 0 goto %000002e6 -0000070f: goto %000004c4 - -000004c4: -000004c7: R2 := 0x10000 -000004ce: R2 := mem[R2 + 0xFD8, el]:u64 -000004d3: when R2 = 0 goto %000002e6 -00000710: goto %000004d7 - -000002e6: -000002ee: call R30 with noreturn - -000004d7: -000004db: R16 := R2 -000004e0: call R16 with noreturn - -000006f1: sub sub_seven(sub_seven_result) -00000725: sub_seven_result :: out u32 = low:32[R0] - -0000039a: -0000039d: R9 := 0x10000 -000003a4: R9 := mem[R9 + 0xFC0, el]:u64 -000003ab: R8 := pad:64[mem[R9, el]:u32] -000003b1: #4 := 31:0[R8] - 8 -000003b6: VF := extend:33[#4 + 1] <> extend:33[31:0[R8]] - 7 -000003bb: CF := pad:33[#4 + 1] <> pad:33[31:0[R8]] + 0xFFFFFFF9 -000003bf: ZF := #4 + 1 = 0 -000003c3: NF := 31:31[#4 + 1] -000003c7: R8 := pad:64[#4 + 1] -000003cf: mem := mem with [R9, el]:u32 <- 31:0[R8] -000003d4: call R30 with noreturn diff --git a/src/test/indirect_calls/jumptable2/clang_pic/jumptable2.md5sum b/src/test/indirect_calls/jumptable2/clang_pic/jumptable2.md5sum new file mode 100644 index 000000000..98a28800f --- /dev/null +++ b/src/test/indirect_calls/jumptable2/clang_pic/jumptable2.md5sum @@ -0,0 +1,4 @@ +1b67710a1a01eb1e505a3b9317b4c805 indirect_calls/jumptable2/clang_pic/a.out +28ef1b32ac18ba5970eeec6b96c55f7e indirect_calls/jumptable2/clang_pic/jumptable2.relf +129242ce12574d72d850e27de39cadc6 indirect_calls/jumptable2/clang_pic/jumptable2.adt +29a13274d6d95607612ac8f10349526e indirect_calls/jumptable2/clang_pic/jumptable2.bir diff --git a/src/test/indirect_calls/jumptable2/clang_pic/jumptable2.relf b/src/test/indirect_calls/jumptable2/clang_pic/jumptable2.relf deleted file mode 100644 index 1a913f9dd..000000000 --- a/src/test/indirect_calls/jumptable2/clang_pic/jumptable2.relf +++ /dev/null @@ -1,132 +0,0 @@ - -Relocation section '.rela.dyn' at offset 0x460 contains 13 entries: - Offset Info Type Symbol's Value Symbol's Name + Addend -0000000000010db8 0000000000000403 R_AARCH64_RELATIVE 790 -0000000000010dc0 0000000000000403 R_AARCH64_RELATIVE 740 -0000000000010fc0 0000000000000403 R_AARCH64_RELATIVE 11030 -0000000000010fd0 0000000000000403 R_AARCH64_RELATIVE 7dc -0000000000010fe0 0000000000000403 R_AARCH64_RELATIVE 11038 -0000000000011028 0000000000000403 R_AARCH64_RELATIVE 11028 -0000000000011038 0000000000000403 R_AARCH64_RELATIVE 794 -0000000000011040 0000000000000403 R_AARCH64_RELATIVE 7ac -0000000000011048 0000000000000403 R_AARCH64_RELATIVE 7c4 -0000000000010fb0 0000000400000401 R_AARCH64_GLOB_DAT 0000000000000000 _ITM_deregisterTMCloneTable + 0 -0000000000010fb8 0000000500000401 R_AARCH64_GLOB_DAT 0000000000000000 __cxa_finalize@GLIBC_2.17 + 0 -0000000000010fc8 0000000600000401 R_AARCH64_GLOB_DAT 0000000000000000 __gmon_start__ + 0 -0000000000010fd8 0000000800000401 R_AARCH64_GLOB_DAT 0000000000000000 _ITM_registerTMCloneTable + 0 - -Relocation section '.rela.plt' at offset 0x598 contains 4 entries: - Offset Info Type Symbol's Value Symbol's Name + Addend -0000000000011000 0000000300000402 R_AARCH64_JUMP_SLOT 0000000000000000 __libc_start_main@GLIBC_2.34 + 0 -0000000000011008 0000000500000402 R_AARCH64_JUMP_SLOT 0000000000000000 __cxa_finalize@GLIBC_2.17 + 0 -0000000000011010 0000000600000402 R_AARCH64_JUMP_SLOT 0000000000000000 __gmon_start__ + 0 -0000000000011018 0000000700000402 R_AARCH64_JUMP_SLOT 0000000000000000 abort@GLIBC_2.17 + 0 - -Symbol table '.dynsym' contains 9 entries: - Num: Value Size Type Bind Vis Ndx Name - 0: 0000000000000000 0 NOTYPE LOCAL DEFAULT UND - 1: 00000000000005f8 0 SECTION LOCAL DEFAULT 11 .init - 2: 0000000000011020 0 SECTION LOCAL DEFAULT 23 .data - 3: 0000000000000000 0 FUNC GLOBAL DEFAULT UND __libc_start_main@GLIBC_2.34 (2) - 4: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_deregisterTMCloneTable - 5: 0000000000000000 0 FUNC WEAK DEFAULT UND __cxa_finalize@GLIBC_2.17 (3) - 6: 0000000000000000 0 NOTYPE WEAK DEFAULT UND __gmon_start__ - 7: 0000000000000000 0 FUNC GLOBAL DEFAULT UND abort@GLIBC_2.17 (3) - 8: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_registerTMCloneTable - -Symbol table '.symtab' contains 94 entries: - Num: Value Size Type Bind Vis Ndx Name - 0: 0000000000000000 0 NOTYPE LOCAL DEFAULT UND - 1: 0000000000000238 0 SECTION LOCAL DEFAULT 1 .interp - 2: 0000000000000254 0 SECTION LOCAL DEFAULT 2 .note.gnu.build-id - 3: 0000000000000278 0 SECTION LOCAL DEFAULT 3 .note.ABI-tag - 4: 0000000000000298 0 SECTION LOCAL DEFAULT 4 .gnu.hash - 5: 00000000000002b8 0 SECTION LOCAL DEFAULT 5 .dynsym - 6: 0000000000000390 0 SECTION LOCAL DEFAULT 6 .dynstr - 7: 000000000000041e 0 SECTION LOCAL DEFAULT 7 .gnu.version - 8: 0000000000000430 0 SECTION LOCAL DEFAULT 8 .gnu.version_r - 9: 0000000000000460 0 SECTION LOCAL DEFAULT 9 .rela.dyn - 10: 0000000000000598 0 SECTION LOCAL DEFAULT 10 .rela.plt - 11: 00000000000005f8 0 SECTION LOCAL DEFAULT 11 .init - 12: 0000000000000610 0 SECTION LOCAL DEFAULT 12 .plt - 13: 0000000000000680 0 SECTION LOCAL DEFAULT 13 .text - 14: 0000000000000838 0 SECTION LOCAL DEFAULT 14 .fini - 15: 000000000000084c 0 SECTION LOCAL DEFAULT 15 .rodata - 16: 0000000000000850 0 SECTION LOCAL DEFAULT 16 .eh_frame_hdr - 17: 00000000000008a8 0 SECTION LOCAL DEFAULT 17 .eh_frame - 18: 0000000000010db8 0 SECTION LOCAL DEFAULT 18 .init_array - 19: 0000000000010dc0 0 SECTION LOCAL DEFAULT 19 .fini_array - 20: 0000000000010dc8 0 SECTION LOCAL DEFAULT 20 .dynamic - 21: 0000000000010fa8 0 SECTION LOCAL DEFAULT 21 .got - 22: 0000000000010fe8 0 SECTION LOCAL DEFAULT 22 .got.plt - 23: 0000000000011020 0 SECTION LOCAL DEFAULT 23 .data - 24: 0000000000011050 0 SECTION LOCAL DEFAULT 24 .bss - 25: 0000000000000000 0 SECTION LOCAL DEFAULT 25 .comment - 26: 0000000000000000 0 FILE LOCAL DEFAULT ABS Scrt1.o - 27: 0000000000000278 0 NOTYPE LOCAL DEFAULT 3 $d - 28: 0000000000000278 32 OBJECT LOCAL DEFAULT 3 __abi_tag - 29: 0000000000000680 0 NOTYPE LOCAL DEFAULT 13 $x - 30: 00000000000008bc 0 NOTYPE LOCAL DEFAULT 17 $d - 31: 000000000000084c 0 NOTYPE LOCAL DEFAULT 15 $d - 32: 0000000000000000 0 FILE LOCAL DEFAULT ABS crti.o - 33: 00000000000006b4 0 NOTYPE LOCAL DEFAULT 13 $x - 34: 00000000000006b4 20 FUNC LOCAL DEFAULT 13 call_weak_fn - 35: 00000000000005f8 0 NOTYPE LOCAL DEFAULT 11 $x - 36: 0000000000000838 0 NOTYPE LOCAL DEFAULT 14 $x - 37: 0000000000000000 0 FILE LOCAL DEFAULT ABS crtn.o - 38: 0000000000000608 0 NOTYPE LOCAL DEFAULT 11 $x - 39: 0000000000000844 0 NOTYPE LOCAL DEFAULT 14 $x - 40: 0000000000000000 0 FILE LOCAL DEFAULT ABS crtstuff.c - 41: 00000000000006d0 0 NOTYPE LOCAL DEFAULT 13 $x - 42: 00000000000006d0 0 FUNC LOCAL DEFAULT 13 deregister_tm_clones - 43: 0000000000000700 0 FUNC LOCAL DEFAULT 13 register_tm_clones - 44: 0000000000011028 0 NOTYPE LOCAL DEFAULT 23 $d - 45: 0000000000000740 0 FUNC LOCAL DEFAULT 13 __do_global_dtors_aux - 46: 0000000000011050 1 OBJECT LOCAL DEFAULT 24 completed.0 - 47: 0000000000010dc0 0 NOTYPE LOCAL DEFAULT 19 $d - 48: 0000000000010dc0 0 OBJECT LOCAL DEFAULT 19 __do_global_dtors_aux_fini_array_entry - 49: 0000000000000790 0 FUNC LOCAL DEFAULT 13 frame_dummy - 50: 0000000000010db8 0 NOTYPE LOCAL DEFAULT 18 $d - 51: 0000000000010db8 0 OBJECT LOCAL DEFAULT 18 __frame_dummy_init_array_entry - 52: 00000000000008d0 0 NOTYPE LOCAL DEFAULT 17 $d - 53: 0000000000011050 0 NOTYPE LOCAL DEFAULT 24 $d - 54: 0000000000000000 0 FILE LOCAL DEFAULT ABS jumptable2.c - 55: 0000000000000794 0 NOTYPE LOCAL DEFAULT 13 $x.0 - 56: 0000000000011030 0 NOTYPE LOCAL DEFAULT 23 $d.1 - 57: 000000000000002a 0 NOTYPE LOCAL DEFAULT 25 $d.2 - 58: 0000000000000930 0 NOTYPE LOCAL DEFAULT 17 $d.3 - 59: 0000000000000000 0 FILE LOCAL DEFAULT ABS crtstuff.c - 60: 00000000000009a8 0 NOTYPE LOCAL DEFAULT 17 $d - 61: 00000000000009a8 0 OBJECT LOCAL DEFAULT 17 __FRAME_END__ - 62: 0000000000000000 0 FILE LOCAL DEFAULT ABS - 63: 0000000000010dc8 0 OBJECT LOCAL DEFAULT ABS _DYNAMIC - 64: 0000000000000850 0 NOTYPE LOCAL DEFAULT 16 __GNU_EH_FRAME_HDR - 65: 0000000000010fa8 0 OBJECT LOCAL DEFAULT ABS _GLOBAL_OFFSET_TABLE_ - 66: 0000000000000610 0 NOTYPE LOCAL DEFAULT 12 $x - 67: 0000000000000000 0 FUNC GLOBAL DEFAULT UND __libc_start_main@GLIBC_2.34 - 68: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_deregisterTMCloneTable - 69: 0000000000011020 0 NOTYPE WEAK DEFAULT 23 data_start - 70: 0000000000011050 0 NOTYPE GLOBAL DEFAULT 24 __bss_start__ - 71: 0000000000000000 0 FUNC WEAK DEFAULT UND __cxa_finalize@GLIBC_2.17 - 72: 0000000000011058 0 NOTYPE GLOBAL DEFAULT 24 _bss_end__ - 73: 0000000000011050 0 NOTYPE GLOBAL DEFAULT 23 _edata - 74: 0000000000011030 4 OBJECT GLOBAL DEFAULT 23 x - 75: 0000000000000838 0 FUNC GLOBAL HIDDEN 14 _fini - 76: 0000000000011058 0 NOTYPE GLOBAL DEFAULT 24 __bss_end__ - 77: 0000000000011020 0 NOTYPE GLOBAL DEFAULT 23 __data_start - 78: 0000000000000000 0 NOTYPE WEAK DEFAULT UND __gmon_start__ - 79: 0000000000011028 0 OBJECT GLOBAL HIDDEN 23 __dso_handle - 80: 0000000000000000 0 FUNC GLOBAL DEFAULT UND abort@GLIBC_2.17 - 81: 000000000000084c 4 OBJECT GLOBAL DEFAULT 15 _IO_stdin_used - 82: 0000000000000794 24 FUNC GLOBAL DEFAULT 13 add_two - 83: 0000000000011058 0 NOTYPE GLOBAL DEFAULT 24 _end - 84: 0000000000000680 52 FUNC GLOBAL DEFAULT 13 _start - 85: 0000000000011058 0 NOTYPE GLOBAL DEFAULT 24 __end__ - 86: 00000000000007ac 24 FUNC GLOBAL DEFAULT 13 add_six - 87: 0000000000011050 0 NOTYPE GLOBAL DEFAULT 24 __bss_start - 88: 00000000000007dc 92 FUNC GLOBAL DEFAULT 13 main - 89: 0000000000011050 0 OBJECT GLOBAL HIDDEN 23 __TMC_END__ - 90: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_registerTMCloneTable - 91: 0000000000011038 24 OBJECT GLOBAL DEFAULT 23 jump_table - 92: 00000000000005f8 0 FUNC GLOBAL HIDDEN 11 _init - 93: 00000000000007c4 24 FUNC GLOBAL DEFAULT 13 sub_seven diff --git a/src/test/indirect_calls/jumptable2/config.mk b/src/test/indirect_calls/jumptable2/config.mk index 2622f3baa..c66dc380c 100644 --- a/src/test/indirect_calls/jumptable2/config.mk +++ b/src/test/indirect_calls/jumptable2/config.mk @@ -1 +1,2 @@ -ENABLED_COMPILERS = clang clang_O2 clang_pic gcc gcc_O2 gcc_pic \ No newline at end of file +ENABLED_COMPILERS = clang clang_O2 clang_pic gcc gcc_O2 gcc_pic +LIFT_ARTEFACTS := $(COMMON_ARTEFACTS) $(BAP_ARTEFACTS) diff --git a/src/test/indirect_calls/jumptable2/gcc/jumptable2.adt b/src/test/indirect_calls/jumptable2/gcc/jumptable2.adt deleted file mode 100644 index 8d2931663..000000000 --- a/src/test/indirect_calls/jumptable2/gcc/jumptable2.adt +++ /dev/null @@ -1,641 +0,0 @@ -Project(Attrs([Attr("filename","\"gcc/jumptable2.out\""), -Attr("image-specification","(declare abi (name str))\n(declare arch (name str))\n(declare base-address (addr int))\n(declare bias (off int))\n(declare bits (size int))\n(declare code-region (addr int) (size int) (off int))\n(declare code-start (addr int))\n(declare entry-point (addr int))\n(declare external-reference (addr int) (name str))\n(declare format (name str))\n(declare is-executable (flag bool))\n(declare is-little-endian (flag bool))\n(declare llvm:base-address (addr int))\n(declare llvm:code-entry (name str) (off int) (size int))\n(declare llvm:coff-import-library (name str))\n(declare llvm:coff-virtual-section-header (name str) (addr int) (size int))\n(declare llvm:elf-program-header (name str) (off int) (size int))\n(declare llvm:elf-program-header-flags (name str) (ld bool) (r bool) \n (w bool) (x bool))\n(declare llvm:elf-virtual-program-header (name str) (addr int) (size int))\n(declare llvm:entry-point (addr int))\n(declare llvm:macho-symbol (name str) (value int))\n(declare llvm:name-reference (at int) (name str))\n(declare llvm:relocation (at int) (addr int))\n(declare llvm:section-entry (name str) (addr int) (size int) (off int))\n(declare llvm:section-flags (name str) (r bool) (w bool) (x bool))\n(declare llvm:segment-command (name str) (off int) (size int))\n(declare llvm:segment-command-flags (name str) (r bool) (w bool) (x bool))\n(declare llvm:symbol-entry (name str) (addr int) (size int) (off int)\n (value int))\n(declare llvm:virtual-segment-command (name str) (addr int) (size int))\n(declare mapped (addr int) (size int) (off int))\n(declare named-region (addr int) (size int) (name str))\n(declare named-symbol (addr int) (name str))\n(declare require (name str))\n(declare section (addr int) (size int))\n(declare segment (addr int) (size int) (r bool) (w bool) (x bool))\n(declare subarch (name str))\n(declare symbol-chunk (addr int) (size int) (root int))\n(declare symbol-value (addr int) (value int))\n(declare system (name str))\n(declare vendor (name str))\n\n(abi unknown)\n(arch aarch64)\n(base-address 0)\n(bias 0)\n(bits 64)\n(code-region 2060 20 2060)\n(code-region 1600 460 1600)\n(code-region 1504 96 1504)\n(code-region 1480 24 1480)\n(code-start 1652)\n(code-start 1876)\n(code-start 1600)\n(code-start 1912)\n(code-start 1984)\n(code-start 1948)\n(entry-point 1600)\n(external-reference 69592 _ITM_deregisterTMCloneTable)\n(external-reference 69600 __cxa_finalize)\n(external-reference 69608 __gmon_start__)\n(external-reference 69624 _ITM_registerTMCloneTable)\n(external-reference 69552 __libc_start_main)\n(external-reference 69560 __cxa_finalize)\n(external-reference 69568 __gmon_start__)\n(external-reference 69576 abort)\n(format elf)\n(is-executable true)\n(is-little-endian true)\n(llvm:base-address 0)\n(llvm:code-entry abort 0 0)\n(llvm:code-entry __cxa_finalize 0 0)\n(llvm:code-entry __libc_start_main 0 0)\n(llvm:code-entry sub_seven 1948 36)\n(llvm:code-entry _init 1480 0)\n(llvm:code-entry main 1984 76)\n(llvm:code-entry add_six 1912 36)\n(llvm:code-entry _start 1600 52)\n(llvm:code-entry add_two 1876 36)\n(llvm:code-entry abort@GLIBC_2.17 0 0)\n(llvm:code-entry _fini 2060 0)\n(llvm:code-entry __cxa_finalize@GLIBC_2.17 0 0)\n(llvm:code-entry __libc_start_main@GLIBC_2.34 0 0)\n(llvm:code-entry frame_dummy 1872 0)\n(llvm:code-entry __do_global_dtors_aux 1792 0)\n(llvm:code-entry register_tm_clones 1728 0)\n(llvm:code-entry deregister_tm_clones 1680 0)\n(llvm:code-entry call_weak_fn 1652 20)\n(llvm:code-entry .fini 2060 20)\n(llvm:code-entry .text 1600 460)\n(llvm:code-entry .plt 1504 96)\n(llvm:code-entry .init 1480 24)\n(llvm:elf-program-header 08 3480 616)\n(llvm:elf-program-header 07 0 0)\n(llvm:elf-program-header 06 2084 84)\n(llvm:elf-program-header 05 596 68)\n(llvm:elf-program-header 04 3496 496)\n(llvm:elf-program-header 03 3480 664)\n(llvm:elf-program-header 02 0 2400)\n(llvm:elf-program-header 01 568 27)\n(llvm:elf-program-header 00 64 504)\n(llvm:elf-program-header-flags 08 false true false false)\n(llvm:elf-program-header-flags 07 false true true false)\n(llvm:elf-program-header-flags 06 false true false false)\n(llvm:elf-program-header-flags 05 false true false false)\n(llvm:elf-program-header-flags 04 false true true false)\n(llvm:elf-program-header-flags 03 true true true false)\n(llvm:elf-program-header-flags 02 true true false true)\n(llvm:elf-program-header-flags 01 false true false false)\n(llvm:elf-program-header-flags 00 false true false false)\n(llvm:elf-virtual-program-header 08 69016 616)\n(llvm:elf-virtual-program-header 07 0 0)\n(llvm:elf-virtual-program-header 06 2084 84)\n(llvm:elf-virtual-program-header 05 596 68)\n(llvm:elf-virtual-program-header 04 69032 496)\n(llvm:elf-virtual-program-header 03 69016 672)\n(llvm:elf-virtual-program-header 02 0 2400)\n(llvm:elf-virtual-program-header 01 568 27)\n(llvm:elf-virtual-program-header 00 64 504)\n(llvm:entry-point 1600)\n(llvm:name-reference 69576 abort)\n(llvm:name-reference 69568 __gmon_start__)\n(llvm:name-reference 69560 __cxa_finalize)\n(llvm:name-reference 69552 __libc_start_main)\n(llvm:name-reference 69624 _ITM_registerTMCloneTable)\n(llvm:name-reference 69608 __gmon_start__)\n(llvm:name-reference 69600 __cxa_finalize)\n(llvm:name-reference 69592 _ITM_deregisterTMCloneTable)\n(llvm:section-entry .shstrtab 0 250 7007)\n(llvm:section-entry .strtab 0 583 6424)\n(llvm:section-entry .symtab 0 2232 4192)\n(llvm:section-entry .comment 0 43 4144)\n(llvm:section-entry .bss 69680 8 4144)\n(llvm:section-entry .data 69632 48 4096)\n(llvm:section-entry .got 69528 104 3992)\n(llvm:section-entry .dynamic 69032 496 3496)\n(llvm:section-entry .fini_array 69024 8 3488)\n(llvm:section-entry .init_array 69016 8 3480)\n(llvm:section-entry .eh_frame 2168 232 2168)\n(llvm:section-entry .eh_frame_hdr 2084 84 2084)\n(llvm:section-entry .rodata 2080 4 2080)\n(llvm:section-entry .fini 2060 20 2060)\n(llvm:section-entry .text 1600 460 1600)\n(llvm:section-entry .plt 1504 96 1504)\n(llvm:section-entry .init 1480 24 1480)\n(llvm:section-entry .rela.plt 1384 96 1384)\n(llvm:section-entry .rela.dyn 1120 264 1120)\n(llvm:section-entry .gnu.version_r 1072 48 1072)\n(llvm:section-entry .gnu.version 1054 18 1054)\n(llvm:section-entry .dynstr 912 141 912)\n(llvm:section-entry .dynsym 696 216 696)\n(llvm:section-entry .gnu.hash 664 28 664)\n(llvm:section-entry .note.ABI-tag 632 32 632)\n(llvm:section-entry .note.gnu.build-id 596 36 596)\n(llvm:section-entry .interp 568 27 568)\n(llvm:section-flags .shstrtab true false false)\n(llvm:section-flags .strtab true false false)\n(llvm:section-flags .symtab true false false)\n(llvm:section-flags .comment true false false)\n(llvm:section-flags .bss true true false)\n(llvm:section-flags .data true true false)\n(llvm:section-flags .got true true false)\n(llvm:section-flags .dynamic true true false)\n(llvm:section-flags .fini_array true true false)\n(llvm:section-flags .init_array true true false)\n(llvm:section-flags .eh_frame true false false)\n(llvm:section-flags .eh_frame_hdr true false false)\n(llvm:section-flags .rodata true false false)\n(llvm:section-flags .fini true false true)\n(llvm:section-flags .text true false true)\n(llvm:section-flags .plt true false true)\n(llvm:section-flags .init true false true)\n(llvm:section-flags .rela.plt true false false)\n(llvm:section-flags .rela.dyn true false false)\n(llvm:section-flags .gnu.version_r true false false)\n(llvm:section-flags .gnu.version true false false)\n(llvm:section-flags .dynstr true false false)\n(llvm:section-flags .dynsym true false false)\n(llvm:section-flags .gnu.hash true false false)\n(llvm:section-flags .note.ABI-tag true false false)\n(llvm:section-flags .note.gnu.build-id true false false)\n(llvm:section-flags .interp true false false)\n(llvm:symbol-entry abort 0 0 0 0)\n(llvm:symbol-entry __cxa_finalize 0 0 0 0)\n(llvm:symbol-entry __libc_start_main 0 0 0 0)\n(llvm:symbol-entry sub_seven 1948 36 1948 1948)\n(llvm:symbol-entry _init 1480 0 1480 1480)\n(llvm:symbol-entry main 1984 76 1984 1984)\n(llvm:symbol-entry add_six 1912 36 1912 1912)\n(llvm:symbol-entry _start 1600 52 1600 1600)\n(llvm:symbol-entry add_two 1876 36 1876 1876)\n(llvm:symbol-entry abort@GLIBC_2.17 0 0 0 0)\n(llvm:symbol-entry _fini 2060 0 2060 2060)\n(llvm:symbol-entry __cxa_finalize@GLIBC_2.17 0 0 0 0)\n(llvm:symbol-entry __libc_start_main@GLIBC_2.34 0 0 0 0)\n(llvm:symbol-entry frame_dummy 1872 0 1872 1872)\n(llvm:symbol-entry __do_global_dtors_aux 1792 0 1792 1792)\n(llvm:symbol-entry register_tm_clones 1728 0 1728 1728)\n(llvm:symbol-entry deregister_tm_clones 1680 0 1680 1680)\n(llvm:symbol-entry call_weak_fn 1652 20 1652 1652)\n(mapped 0 2400 0)\n(mapped 69016 664 3480)\n(named-region 0 2400 02)\n(named-region 69016 672 03)\n(named-region 568 27 .interp)\n(named-region 596 36 .note.gnu.build-id)\n(named-region 632 32 .note.ABI-tag)\n(named-region 664 28 .gnu.hash)\n(named-region 696 216 .dynsym)\n(named-region 912 141 .dynstr)\n(named-region 1054 18 .gnu.version)\n(named-region 1072 48 .gnu.version_r)\n(named-region 1120 264 .rela.dyn)\n(named-region 1384 96 .rela.plt)\n(named-region 1480 24 .init)\n(named-region 1504 96 .plt)\n(named-region 1600 460 .text)\n(named-region 2060 20 .fini)\n(named-region 2080 4 .rodata)\n(named-region 2084 84 .eh_frame_hdr)\n(named-region 2168 232 .eh_frame)\n(named-region 69016 8 .init_array)\n(named-region 69024 8 .fini_array)\n(named-region 69032 496 .dynamic)\n(named-region 69528 104 .got)\n(named-region 69632 48 .data)\n(named-region 69680 8 .bss)\n(named-region 0 43 .comment)\n(named-region 0 2232 .symtab)\n(named-region 0 583 .strtab)\n(named-region 0 250 .shstrtab)\n(named-symbol 1652 call_weak_fn)\n(named-symbol 1680 deregister_tm_clones)\n(named-symbol 1728 register_tm_clones)\n(named-symbol 1792 __do_global_dtors_aux)\n(named-symbol 1872 frame_dummy)\n(named-symbol 0 __libc_start_main@GLIBC_2.34)\n(named-symbol 0 __cxa_finalize@GLIBC_2.17)\n(named-symbol 2060 _fini)\n(named-symbol 0 abort@GLIBC_2.17)\n(named-symbol 1876 add_two)\n(named-symbol 1600 _start)\n(named-symbol 1912 add_six)\n(named-symbol 1984 main)\n(named-symbol 1480 _init)\n(named-symbol 1948 sub_seven)\n(named-symbol 0 __libc_start_main)\n(named-symbol 0 __cxa_finalize)\n(named-symbol 0 abort)\n(require libc.so.6)\n(section 568 27)\n(section 596 36)\n(section 632 32)\n(section 664 28)\n(section 696 216)\n(section 912 141)\n(section 1054 18)\n(section 1072 48)\n(section 1120 264)\n(section 1384 96)\n(section 1480 24)\n(section 1504 96)\n(section 1600 460)\n(section 2060 20)\n(section 2080 4)\n(section 2084 84)\n(section 2168 232)\n(section 69016 8)\n(section 69024 8)\n(section 69032 496)\n(section 69528 104)\n(section 69632 48)\n(section 69680 8)\n(section 0 43)\n(section 0 2232)\n(section 0 583)\n(section 0 250)\n(segment 0 2400 true false true)\n(segment 69016 672 true true false)\n(subarch v8)\n(symbol-chunk 1652 20 1652)\n(symbol-chunk 1876 36 1876)\n(symbol-chunk 1600 52 1600)\n(symbol-chunk 1912 36 1912)\n(symbol-chunk 1984 76 1984)\n(symbol-chunk 1948 36 1948)\n(symbol-value 1652 1652)\n(symbol-value 1680 1680)\n(symbol-value 1728 1728)\n(symbol-value 1792 1792)\n(symbol-value 1872 1872)\n(symbol-value 2060 2060)\n(symbol-value 1876 1876)\n(symbol-value 1600 1600)\n(symbol-value 1912 1912)\n(symbol-value 1984 1984)\n(symbol-value 1480 1480)\n(symbol-value 1948 1948)\n(symbol-value 0 0)\n(system \"\")\n(vendor \"\")\n"), -Attr("abi-name","\"aarch64-linux-gnu-elf\"")]), -Sections([Section(".shstrtab", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x40\x06\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x60\x1c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x38\x00\x09\x00\x40\x00\x1c\x00\x1b\x00\x06\x00\x00\x00\x04\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x04\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x60\x09\x00\x00\x00\x00\x00\x00\x60\x09\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x01\x00\x00\x00\x06\x00\x00\x00\x98\x0d\x00\x00\x00\x00\x00\x00\x98\x0d"), -Section(".strtab", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x40\x06\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x60\x1c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x38\x00\x09\x00\x40\x00\x1c\x00\x1b\x00\x06\x00\x00\x00\x04\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x04\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x60\x09\x00\x00\x00\x00\x00\x00\x60\x09\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x01\x00\x00\x00\x06\x00\x00\x00\x98\x0d\x00\x00\x00\x00\x00\x00\x98\x0d\x01\x00\x00\x00\x00\x00\x98\x0d\x01\x00\x00\x00\x00\x00\x98\x02\x00\x00\x00\x00\x00\x00\xa0\x02\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x02\x00\x00\x00\x06\x00\x00\x00\xa8\x0d\x00\x00\x00\x00\x00\x00\xa8\x0d\x01\x00\x00\x00\x00\x00\xa8\x0d\x01\x00\x00\x00\x00\x00\xf0\x01\x00\x00\x00\x00\x00\x00\xf0\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x04\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x50\xe5\x74\x64\x04\x00\x00\x00\x24\x08\x00\x00\x00\x00\x00\x00\x24\x08\x00\x00\x00\x00\x00\x00\x24\x08\x00\x00\x00\x00\x00\x00\x54\x00\x00\x00\x00\x00\x00\x00\x54\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x51\xe5\x74\x64\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x52\xe5\x74\x64\x04\x00\x00\x00\x98\x0d\x00\x00\x00\x00\x00\x00\x98\x0d\x01\x00\x00\x00\x00\x00\x98\x0d\x01\x00\x00\x00\x00\x00\x68\x02\x00\x00\x00\x00\x00\x00\x68\x02\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x2f\x6c\x69\x62\x2f\x6c\x64\x2d\x6c\x69\x6e\x75\x78\x2d\x61"), -Section(".symtab", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x40\x06\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x60\x1c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x38\x00\x09\x00\x40\x00\x1c\x00\x1b\x00\x06\x00\x00\x00\x04\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x04\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x60\x09\x00\x00\x00\x00\x00\x00\x60\x09\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x01\x00\x00\x00\x06\x00\x00\x00\x98\x0d\x00\x00\x00\x00\x00\x00\x98\x0d\x01\x00\x00\x00\x00\x00\x98\x0d\x01\x00\x00\x00\x00\x00\x98\x02\x00\x00\x00\x00\x00\x00\xa0\x02\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x02\x00\x00\x00\x06\x00\x00\x00\xa8\x0d\x00\x00\x00\x00\x00\x00\xa8\x0d\x01\x00\x00\x00\x00\x00\xa8\x0d\x01\x00\x00\x00\x00\x00\xf0\x01\x00\x00\x00\x00\x00\x00\xf0\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x04\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x50\xe5\x74\x64\x04\x00\x00\x00\x24\x08\x00\x00\x00\x00\x00\x00\x24\x08\x00\x00\x00\x00\x00\x00\x24\x08\x00\x00\x00\x00\x00\x00\x54\x00\x00\x00\x00\x00\x00\x00\x54\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x51\xe5\x74\x64\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x52\xe5\x74\x64\x04\x00\x00\x00\x98\x0d\x00\x00\x00\x00\x00\x00\x98\x0d\x01\x00\x00\x00\x00\x00\x98\x0d\x01\x00\x00\x00\x00\x00\x68\x02\x00\x00\x00\x00\x00\x00\x68\x02\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x2f\x6c\x69\x62\x2f\x6c\x64\x2d\x6c\x69\x6e\x75\x78\x2d\x61\x61\x72\x63\x68\x36\x34\x2e\x73\x6f\x2e\x31\x00\x00\x04\x00\x00\x00\x14\x00\x00\x00\x03\x00\x00\x00\x47\x4e\x55\x00\xe3\x4a\x53\xef\x47\x47\x27\xb3\x91\x22\xa7\xf2\x3b\xa0\x95\x61\xd8\x8f\xf8\x39\x04\x00\x00\x00\x10\x00\x00\x00\x01\x00\x00\x00\x47\x4e\x55\x00\x00\x00\x00\x00\x03\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x01\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x0b\x00\xc8\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x16\x00\x00\x10\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x48\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x22\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x22\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x73\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5f\x5f\x63\x78\x61\x5f\x66\x69\x6e\x61\x6c\x69\x7a\x65\x00\x5f\x5f\x6c\x69\x62\x63\x5f\x73\x74\x61\x72\x74\x5f\x6d\x61\x69\x6e\x00\x61\x62\x6f\x72\x74\x00\x6c\x69\x62\x63\x2e\x73\x6f\x2e\x36\x00\x47\x4c\x49\x42\x43\x5f\x32\x2e\x31\x37\x00\x47\x4c\x49\x42\x43\x5f\x32\x2e\x33\x34\x00\x5f\x49\x54\x4d\x5f\x64\x65\x72\x65\x67\x69\x73\x74\x65\x72\x54\x4d\x43\x6c\x6f\x6e\x65\x54\x61\x62\x6c\x65\x00\x5f\x5f\x67\x6d\x6f\x6e\x5f\x73\x74\x61\x72\x74\x5f\x5f\x00\x5f\x49\x54\x4d\x5f\x72\x65\x67\x69\x73\x74\x65\x72\x54\x4d\x43\x6c\x6f\x6e\x65\x54\x61\x62\x6c\x65\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x01\x00\x03\x00\x01\x00\x03\x00\x01\x00\x01\x00\x02\x00\x28\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x97\x91\x96\x06\x00\x00\x03\x00\x32\x00\x00\x00\x10\x00\x00\x00\xb4\x91\x96\x06\x00\x00\x02\x00\x3d\x00\x00\x00\x00\x00\x00\x00\x98\x0d\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x50\x07\x00\x00\x00\x00\x00\x00\xa0\x0d\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\xf0\x0f\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\xc0\x07\x00\x00\x00\x00\x00\x00\x08\x10\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x08\x10\x01\x00\x00\x00\x00\x00\x18\x10\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x54\x07\x00\x00\x00\x00\x00\x00\x20\x10\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x78\x07\x00\x00\x00\x00\x00\x00\x28\x10\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x9c\x07\x00\x00\x00\x00\x00\x00\xd8\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe0\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe8\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xf8\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xb0\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xb8\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xc0\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xc8\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1f\x20\x03\xd5\xfd\x7b\xbf\xa9\xfd\x03\x00\x91\x28\x00\x00\x94\xfd\x7b\xc1\xa8\xc0\x03\x5f\xd6\xf0\x7b\xbf\xa9\x90\x00\x00\x90\x11\xd6\x47\xf9\x10\xa2\x3e\x91\x20\x02\x1f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x90\x00\x00\x90\x11\xda\x47\xf9\x10\xc2\x3e\x91\x20\x02\x1f\xd6\x90\x00\x00\x90\x11\xde\x47\xf9\x10\xe2\x3e\x91\x20\x02\x1f\xd6\x90\x00\x00\x90\x11\xe2\x47\xf9\x10\x02\x3f\x91\x20\x02\x1f\xd6\x90\x00\x00\x90\x11\xe6\x47\xf9\x10\x22\x3f\x91\x20\x02\x1f\xd6\x1f\x20\x03\xd5\x1d\x00\x80\xd2\x1e\x00\x80\xd2\xe5\x03\x00\xaa\xe1\x03\x40\xf9\xe2\x23\x00\x91\xe6\x03\x00\x91\x80\x00\x00\x90\x00\xf8\x47\xf9\x03\x00\x80\xd2\x04\x00\x80\xd2\xe5\xff\xff\x97\xf0\xff\xff\x97\x80\x00\x00\x90\x00\xf4\x47\xf9\x40\x00\x00\xb4\xe8\xff\xff\x17\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x80\x00\x00\xb0\x00\xc0\x00\x91\x81\x00\x00\xb0\x21\xc0\x00\x91\x3f\x00\x00\xeb\xc0\x00\x00\x54\x81\x00\x00\x90\x21\xec\x47\xf9\x61\x00\x00\xb4\xf0\x03\x01\xaa\x00\x02\x1f\xd6\xc0\x03\x5f\xd6\x80\x00\x00\xb0\x00\xc0\x00\x91\x81\x00\x00\xb0\x21\xc0\x00\x91\x21\x00\x00\xcb\x22\xfc\x7f\xd3\x41\x0c\x81\x8b\x21\xfc\x41\x93\xc1\x00\x00\xb4\x82\x00\x00\x90\x42\xfc\x47\xf9\x62\x00\x00\xb4\xf0\x03\x02\xaa\x00\x02\x1f\xd6\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\xfd\x7b\xbe\xa9\xfd\x03\x00\x91\xf3\x0b\x00\xf9\x93\x00\x00\xb0\x60\xc2\x40\x39\x40\x01\x00\x35\x80\x00\x00\x90\x00\xf0\x47\xf9\x80\x00\x00\xb4\x80\x00\x00\xb0\x00\x04\x40\xf9\xb9\xff\xff\x97\xd8\xff\xff\x97\x20\x00\x80\x52\x60\xc2\x00\x39\xf3\x0b\x40\xf9\xfd\x7b\xc2\xa8\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\xdc\xff\xff\x17\x80\x00\x00\xb0\x00\x40\x00\x91\x00\x00\x40\xb9\x01\x08\x00\x11\x80\x00\x00\xb0\x00\x40\x00\x91\x01\x00\x00\xb9\x1f\x20\x03\xd5\xc0\x03\x5f\xd6\x80\x00\x00\xb0\x00\x40\x00\x91\x00\x00\x40\xb9\x01\x18\x00\x11\x80\x00\x00\xb0\x00\x40\x00\x91\x01\x00\x00\xb9\x1f\x20\x03\xd5\xc0\x03\x5f\xd6\x80\x00\x00\xb0\x00\x40\x00\x91\x00\x00\x40\xb9\x01\x1c\x00\x51\x80\x00\x00\xb0\x00\x40\x00\x91\x01\x00\x00\xb9\x1f\x20\x03\xd5\xc0\x03\x5f\xd6\xfd\x7b\xbe\xa9\xfd\x03\x00\x91\xe0\x1f\x00\xb9\xe1\x0b\x00\xf9\x80\x00\x00\xb0\x00\x60\x00\x91\x00\x00\x40\xf9\x00\x00\x3f\xd6\x80\x00\x00\xb0\x00\x60\x00\x91\x00\x04\x40\xf9\x00\x00\x3f\xd6\x80\x00\x00\xb0\x00\x60\x00\x91\x00\x08\x40\xf9\x00\x00\x3f\xd6\x00\x00\x80\x52\xfd\x7b\xc2\xa8\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\xfd\x7b\xbf\xa9\xfd\x03\x00\x91\xfd\x7b\xc1\xa8\xc0\x03\x5f\xd6\x01\x00\x02\x00\x01\x1b\x03\x3b\x50\x00\x00\x00\x09\x00\x00\x00\x1c\xfe\xff\xff\x68\x00\x00\x00\x6c\xfe\xff\xff\x7c\x00\x00\x00\x9c\xfe\xff\xff\x90\x00\x00\x00\xdc\xfe\xff\xff\xa4\x00\x00\x00\x2c\xff\xff\xff\xc8\x00\x00\x00\x30\xff\xff\xff\xdc\x00\x00\x00\x54\xff\xff\xff\xf0\x00\x00\x00\x78\xff\xff\xff\x04\x01\x00\x00\x9c\xff\xff\xff\x18\x01\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x01\x7a\x52\x00\x04\x78\x1e\x01\x1b\x0c\x1f\x00\x10\x00\x00\x00\x18\x00\x00\x00\xac\xfd\xff\xff\x34\x00\x00\x00\x00\x41\x07\x1e\x10\x00\x00\x00\x2c\x00\x00\x00\xe8\xfd\xff\xff\x30\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00"), -Section(".comment", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x40\x06\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x60\x1c\x00"), -Section(".interp", 0x238, "\x2f\x6c\x69\x62\x2f\x6c\x64\x2d\x6c\x69\x6e\x75\x78\x2d\x61\x61\x72\x63\x68\x36\x34\x2e\x73\x6f\x2e\x31\x00"), -Section(".note.gnu.build-id", 0x254, "\x04\x00\x00\x00\x14\x00\x00\x00\x03\x00\x00\x00\x47\x4e\x55\x00\xe3\x4a\x53\xef\x47\x47\x27\xb3\x91\x22\xa7\xf2\x3b\xa0\x95\x61\xd8\x8f\xf8\x39"), -Section(".note.ABI-tag", 0x278, "\x04\x00\x00\x00\x10\x00\x00\x00\x01\x00\x00\x00\x47\x4e\x55\x00\x00\x00\x00\x00\x03\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00"), -Section(".gnu.hash", 0x298, "\x01\x00\x00\x00\x01\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".dynsym", 0x2B8, "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x0b\x00\xc8\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x16\x00\x00\x10\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x48\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x22\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x22\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x73\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".dynstr", 0x390, "\x00\x5f\x5f\x63\x78\x61\x5f\x66\x69\x6e\x61\x6c\x69\x7a\x65\x00\x5f\x5f\x6c\x69\x62\x63\x5f\x73\x74\x61\x72\x74\x5f\x6d\x61\x69\x6e\x00\x61\x62\x6f\x72\x74\x00\x6c\x69\x62\x63\x2e\x73\x6f\x2e\x36\x00\x47\x4c\x49\x42\x43\x5f\x32\x2e\x31\x37\x00\x47\x4c\x49\x42\x43\x5f\x32\x2e\x33\x34\x00\x5f\x49\x54\x4d\x5f\x64\x65\x72\x65\x67\x69\x73\x74\x65\x72\x54\x4d\x43\x6c\x6f\x6e\x65\x54\x61\x62\x6c\x65\x00\x5f\x5f\x67\x6d\x6f\x6e\x5f\x73\x74\x61\x72\x74\x5f\x5f\x00\x5f\x49\x54\x4d\x5f\x72\x65\x67\x69\x73\x74\x65\x72\x54\x4d\x43\x6c\x6f\x6e\x65\x54\x61\x62\x6c\x65\x00"), -Section(".gnu.version", 0x41E, "\x00\x00\x00\x00\x00\x00\x02\x00\x01\x00\x03\x00\x01\x00\x03\x00\x01\x00"), -Section(".gnu.version_r", 0x430, "\x01\x00\x02\x00\x28\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x97\x91\x96\x06\x00\x00\x03\x00\x32\x00\x00\x00\x10\x00\x00\x00\xb4\x91\x96\x06\x00\x00\x02\x00\x3d\x00\x00\x00\x00\x00\x00\x00"), -Section(".rela.dyn", 0x460, "\x98\x0d\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x50\x07\x00\x00\x00\x00\x00\x00\xa0\x0d\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\xf0\x0f\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\xc0\x07\x00\x00\x00\x00\x00\x00\x08\x10\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x08\x10\x01\x00\x00\x00\x00\x00\x18\x10\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x54\x07\x00\x00\x00\x00\x00\x00\x20\x10\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x78\x07\x00\x00\x00\x00\x00\x00\x28\x10\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x9c\x07\x00\x00\x00\x00\x00\x00\xd8\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe0\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe8\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xf8\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".rela.plt", 0x568, "\xb0\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xb8\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xc0\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xc8\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".init", 0x5C8, "\x1f\x20\x03\xd5\xfd\x7b\xbf\xa9\xfd\x03\x00\x91\x28\x00\x00\x94\xfd\x7b\xc1\xa8\xc0\x03\x5f\xd6"), -Section(".plt", 0x5E0, "\xf0\x7b\xbf\xa9\x90\x00\x00\x90\x11\xd6\x47\xf9\x10\xa2\x3e\x91\x20\x02\x1f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x90\x00\x00\x90\x11\xda\x47\xf9\x10\xc2\x3e\x91\x20\x02\x1f\xd6\x90\x00\x00\x90\x11\xde\x47\xf9\x10\xe2\x3e\x91\x20\x02\x1f\xd6\x90\x00\x00\x90\x11\xe2\x47\xf9\x10\x02\x3f\x91\x20\x02\x1f\xd6\x90\x00\x00\x90\x11\xe6\x47\xf9\x10\x22\x3f\x91\x20\x02\x1f\xd6"), -Section(".text", 0x640, "\x1f\x20\x03\xd5\x1d\x00\x80\xd2\x1e\x00\x80\xd2\xe5\x03\x00\xaa\xe1\x03\x40\xf9\xe2\x23\x00\x91\xe6\x03\x00\x91\x80\x00\x00\x90\x00\xf8\x47\xf9\x03\x00\x80\xd2\x04\x00\x80\xd2\xe5\xff\xff\x97\xf0\xff\xff\x97\x80\x00\x00\x90\x00\xf4\x47\xf9\x40\x00\x00\xb4\xe8\xff\xff\x17\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x80\x00\x00\xb0\x00\xc0\x00\x91\x81\x00\x00\xb0\x21\xc0\x00\x91\x3f\x00\x00\xeb\xc0\x00\x00\x54\x81\x00\x00\x90\x21\xec\x47\xf9\x61\x00\x00\xb4\xf0\x03\x01\xaa\x00\x02\x1f\xd6\xc0\x03\x5f\xd6\x80\x00\x00\xb0\x00\xc0\x00\x91\x81\x00\x00\xb0\x21\xc0\x00\x91\x21\x00\x00\xcb\x22\xfc\x7f\xd3\x41\x0c\x81\x8b\x21\xfc\x41\x93\xc1\x00\x00\xb4\x82\x00\x00\x90\x42\xfc\x47\xf9\x62\x00\x00\xb4\xf0\x03\x02\xaa\x00\x02\x1f\xd6\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\xfd\x7b\xbe\xa9\xfd\x03\x00\x91\xf3\x0b\x00\xf9\x93\x00\x00\xb0\x60\xc2\x40\x39\x40\x01\x00\x35\x80\x00\x00\x90\x00\xf0\x47\xf9\x80\x00\x00\xb4\x80\x00\x00\xb0\x00\x04\x40\xf9\xb9\xff\xff\x97\xd8\xff\xff\x97\x20\x00\x80\x52\x60\xc2\x00\x39\xf3\x0b\x40\xf9\xfd\x7b\xc2\xa8\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\xdc\xff\xff\x17\x80\x00\x00\xb0\x00\x40\x00\x91\x00\x00\x40\xb9\x01\x08\x00\x11\x80\x00\x00\xb0\x00\x40\x00\x91\x01\x00\x00\xb9\x1f\x20\x03\xd5\xc0\x03\x5f\xd6\x80\x00\x00\xb0\x00\x40\x00\x91\x00\x00\x40\xb9\x01\x18\x00\x11\x80\x00\x00\xb0\x00\x40\x00\x91\x01\x00\x00\xb9\x1f\x20\x03\xd5\xc0\x03\x5f\xd6\x80\x00\x00\xb0\x00\x40\x00\x91\x00\x00\x40\xb9\x01\x1c\x00\x51\x80\x00\x00\xb0\x00\x40\x00\x91\x01\x00\x00\xb9\x1f\x20\x03\xd5\xc0\x03\x5f\xd6\xfd\x7b\xbe\xa9\xfd\x03\x00\x91\xe0\x1f\x00\xb9\xe1\x0b\x00\xf9\x80\x00\x00\xb0\x00\x60\x00\x91\x00\x00\x40\xf9\x00\x00\x3f\xd6\x80\x00\x00\xb0\x00\x60\x00\x91\x00\x04\x40\xf9\x00\x00\x3f\xd6\x80\x00\x00\xb0\x00\x60\x00\x91\x00\x08\x40\xf9\x00\x00\x3f\xd6\x00\x00\x80\x52\xfd\x7b\xc2\xa8\xc0\x03\x5f\xd6"), -Section(".fini", 0x80C, "\x1f\x20\x03\xd5\xfd\x7b\xbf\xa9\xfd\x03\x00\x91\xfd\x7b\xc1\xa8\xc0\x03\x5f\xd6"), -Section(".rodata", 0x820, "\x01\x00\x02\x00"), -Section(".eh_frame_hdr", 0x824, "\x01\x1b\x03\x3b\x50\x00\x00\x00\x09\x00\x00\x00\x1c\xfe\xff\xff\x68\x00\x00\x00\x6c\xfe\xff\xff\x7c\x00\x00\x00\x9c\xfe\xff\xff\x90\x00\x00\x00\xdc\xfe\xff\xff\xa4\x00\x00\x00\x2c\xff\xff\xff\xc8\x00\x00\x00\x30\xff\xff\xff\xdc\x00\x00\x00\x54\xff\xff\xff\xf0\x00\x00\x00\x78\xff\xff\xff\x04\x01\x00\x00\x9c\xff\xff\xff\x18\x01\x00\x00"), -Section(".eh_frame", 0x878, "\x10\x00\x00\x00\x00\x00\x00\x00\x01\x7a\x52\x00\x04\x78\x1e\x01\x1b\x0c\x1f\x00\x10\x00\x00\x00\x18\x00\x00\x00\xac\xfd\xff\xff\x34\x00\x00\x00\x00\x41\x07\x1e\x10\x00\x00\x00\x2c\x00\x00\x00\xe8\xfd\xff\xff\x30\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x40\x00\x00\x00\x04\xfe\xff\xff\x3c\x00\x00\x00\x00\x00\x00\x00\x20\x00\x00\x00\x54\x00\x00\x00\x30\xfe\xff\xff\x48\x00\x00\x00\x00\x41\x0e\x20\x9d\x04\x9e\x03\x42\x93\x02\x4e\xde\xdd\xd3\x0e\x00\x00\x00\x00\x10\x00\x00\x00\x78\x00\x00\x00\x5c\xfe\xff\xff\x04\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x8c\x00\x00\x00\x4c\xfe\xff\xff\x24\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\xa0\x00\x00\x00\x5c\xfe\xff\xff\x24\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\xb4\x00\x00\x00\x6c\xfe\xff\xff\x24\x00\x00\x00\x00\x00\x00\x00\x1c\x00\x00\x00\xc8\x00\x00\x00\x7c\xfe\xff\xff\x4c\x00\x00\x00\x00\x41\x0e\x20\x9d\x04\x9e\x03\x51\xde\xdd\x0e\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".fini_array", 0x10DA0, "\x00\x07\x00\x00\x00\x00\x00\x00"), -Section(".dynamic", 0x10DA8, "\x01\x00\x00\x00\x00\x00\x00\x00\x28\x00\x00\x00\x00\x00\x00\x00\x0c\x00\x00\x00\x00\x00\x00\x00\xc8\x05\x00\x00\x00\x00\x00\x00\x0d\x00\x00\x00\x00\x00\x00\x00\x0c\x08\x00\x00\x00\x00\x00\x00\x19\x00\x00\x00\x00\x00\x00\x00\x98\x0d\x01\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x1a\x00\x00\x00\x00\x00\x00\x00\xa0\x0d\x01\x00\x00\x00\x00\x00\x1c\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\xf5\xfe\xff\x6f\x00\x00\x00\x00\x98\x02\x00\x00\x00\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x90\x03\x00\x00\x00\x00\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\xb8\x02\x00\x00\x00\x00\x00\x00\x0a\x00\x00\x00\x00\x00\x00\x00\x8d\x00\x00\x00\x00\x00\x00\x00\x0b\x00\x00\x00\x00\x00\x00\x00\x18\x00\x00\x00\x00\x00\x00\x00\x15\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x98\x0f\x01\x00\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x60\x00\x00\x00\x00\x00\x00\x00\x14\x00\x00\x00\x00\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x17\x00\x00\x00\x00\x00\x00\x00\x68\x05\x00\x00\x00\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x60\x04\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x08\x01\x00\x00\x00\x00\x00\x00\x09\x00\x00\x00\x00\x00\x00\x00\x18\x00\x00\x00\x00\x00\x00\x00\x1e\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\xfb\xff\xff\x6f\x00\x00\x00\x00\x01\x00\x00\x08\x00\x00\x00\x00\xfe\xff\xff\x6f\x00\x00\x00\x00\x30\x04\x00\x00\x00\x00\x00\x00\xff\xff\xff\x6f\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\xf0\xff\xff\x6f\x00\x00\x00\x00\x1e\x04\x00\x00\x00\x00\x00\x00\xf9\xff\xff\x6f\x00\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".got", 0x10F98, "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe0\x05\x00\x00\x00\x00\x00\x00\xe0\x05\x00\x00\x00\x00\x00\x00\xe0\x05\x00\x00\x00\x00\x00\x00\xe0\x05\x00\x00\x00\x00\x00\x00\xa8\x0d\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xc0\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".data", 0x11000, "\x00\x00\x00\x00\x00\x00\x00\x00\x08\x10\x01\x00\x00\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x54\x07\x00\x00\x00\x00\x00\x00\x78\x07\x00\x00\x00\x00\x00\x00\x9c\x07\x00\x00\x00\x00\x00\x00"), -Section(".init_array", 0x10D98, "\x50\x07\x00\x00\x00\x00\x00\x00")]), -Memmap([Annotation(Region(0x0,0x95F), Attr("segment","02 0 2400")), -Annotation(Region(0x640,0x673), Attr("symbol","\"_start\"")), -Annotation(Region(0x0,0xF9), Attr("section","\".shstrtab\"")), -Annotation(Region(0x0,0x246), Attr("section","\".strtab\"")), -Annotation(Region(0x0,0x8B7), Attr("section","\".symtab\"")), -Annotation(Region(0x0,0x2A), Attr("section","\".comment\"")), -Annotation(Region(0x238,0x252), Attr("section","\".interp\"")), -Annotation(Region(0x254,0x277), Attr("section","\".note.gnu.build-id\"")), -Annotation(Region(0x278,0x297), Attr("section","\".note.ABI-tag\"")), -Annotation(Region(0x298,0x2B3), Attr("section","\".gnu.hash\"")), -Annotation(Region(0x2B8,0x38F), Attr("section","\".dynsym\"")), -Annotation(Region(0x390,0x41C), Attr("section","\".dynstr\"")), -Annotation(Region(0x41E,0x42F), Attr("section","\".gnu.version\"")), -Annotation(Region(0x430,0x45F), Attr("section","\".gnu.version_r\"")), -Annotation(Region(0x460,0x567), Attr("section","\".rela.dyn\"")), -Annotation(Region(0x568,0x5C7), Attr("section","\".rela.plt\"")), -Annotation(Region(0x5C8,0x5DF), Attr("section","\".init\"")), -Annotation(Region(0x5E0,0x63F), Attr("section","\".plt\"")), -Annotation(Region(0x5C8,0x5DF), Attr("code-region","()")), -Annotation(Region(0x5E0,0x63F), Attr("code-region","()")), -Annotation(Region(0x640,0x673), Attr("symbol-info","_start 0x640 52")), -Annotation(Region(0x674,0x687), Attr("symbol","\"call_weak_fn\"")), -Annotation(Region(0x674,0x687), Attr("symbol-info","call_weak_fn 0x674 20")), -Annotation(Region(0x754,0x777), Attr("symbol","\"add_two\"")), -Annotation(Region(0x754,0x777), Attr("symbol-info","add_two 0x754 36")), -Annotation(Region(0x778,0x79B), Attr("symbol","\"add_six\"")), -Annotation(Region(0x778,0x79B), Attr("symbol-info","add_six 0x778 36")), -Annotation(Region(0x79C,0x7BF), Attr("symbol","\"sub_seven\"")), -Annotation(Region(0x640,0x80B), Attr("section","\".text\"")), -Annotation(Region(0x640,0x80B), Attr("code-region","()")), -Annotation(Region(0x79C,0x7BF), Attr("symbol-info","sub_seven 0x79C 36")), -Annotation(Region(0x7C0,0x80B), Attr("symbol","\"main\"")), -Annotation(Region(0x7C0,0x80B), Attr("symbol-info","main 0x7C0 76")), -Annotation(Region(0x80C,0x81F), Attr("section","\".fini\"")), -Annotation(Region(0x80C,0x81F), Attr("code-region","()")), -Annotation(Region(0x820,0x823), Attr("section","\".rodata\"")), -Annotation(Region(0x824,0x877), Attr("section","\".eh_frame_hdr\"")), -Annotation(Region(0x878,0x95F), Attr("section","\".eh_frame\"")), -Annotation(Region(0x10D98,0x1102F), Attr("segment","03 0x10D98 672")), -Annotation(Region(0x10DA0,0x10DA7), Attr("section","\".fini_array\"")), -Annotation(Region(0x10DA8,0x10F97), Attr("section","\".dynamic\"")), -Annotation(Region(0x10F98,0x10FFF), Attr("section","\".got\"")), -Annotation(Region(0x11000,0x1102F), Attr("section","\".data\"")), -Annotation(Region(0x10D98,0x10D9F), Attr("section","\".init_array\""))]), -Program(Tid(1_939, "%00000793"), Attrs([]), - Subs([Sub(Tid(1_883, "@__cxa_finalize"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x610"), -Attr("stub","()")]), "__cxa_finalize", Args([Arg(Tid(1_940, "%00000794"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("__cxa_finalize_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(1_219, "@__cxa_finalize"), - Attrs([Attr("address","0x610")]), Phis([]), -Defs([Def(Tid(1_467, "%000005bb"), Attrs([Attr("address","0x610"), -Attr("insn","adrp x16, #65536")]), Var("R16",Imm(64)), Int(65536,64)), -Def(Tid(1_474, "%000005c2"), Attrs([Attr("address","0x614"), -Attr("insn","ldr x17, [x16, #0xfb8]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(4024,64)),LittleEndian(),64)), -Def(Tid(1_480, "%000005c8"), Attrs([Attr("address","0x618"), -Attr("insn","add x16, x16, #0xfb8")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(4024,64)))]), Jmps([Call(Tid(1_485, "%000005cd"), - Attrs([Attr("address","0x61C"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), -Sub(Tid(1_884, "@__do_global_dtors_aux"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x700")]), - "__do_global_dtors_aux", Args([Arg(Tid(1_941, "%00000795"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("__do_global_dtors_aux_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(774, "@__do_global_dtors_aux"), - Attrs([Attr("address","0x700")]), Phis([]), Defs([Def(Tid(778, "%0000030a"), - Attrs([Attr("address","0x700"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("#3",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(18446744073709551584,64))), -Def(Tid(784, "%00000310"), Attrs([Attr("address","0x700"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("#3",Imm(64)),Var("R29",Imm(64)),LittleEndian(),64)), -Def(Tid(790, "%00000316"), Attrs([Attr("address","0x700"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("#3",Imm(64)),Int(8,64)),Var("R30",Imm(64)),LittleEndian(),64)), -Def(Tid(794, "%0000031a"), Attrs([Attr("address","0x700"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("R31",Imm(64)), -Var("#3",Imm(64))), Def(Tid(800, "%00000320"), - Attrs([Attr("address","0x704"), Attr("insn","mov x29, sp")]), - Var("R29",Imm(64)), Var("R31",Imm(64))), Def(Tid(808, "%00000328"), - Attrs([Attr("address","0x708"), Attr("insn","str x19, [sp, #0x10]")]), - Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(16,64)),Var("R19",Imm(64)),LittleEndian(),64)), -Def(Tid(813, "%0000032d"), Attrs([Attr("address","0x70C"), -Attr("insn","adrp x19, #69632")]), Var("R19",Imm(64)), Int(69632,64)), -Def(Tid(820, "%00000334"), Attrs([Attr("address","0x710"), -Attr("insn","ldrb w0, [x19, #0x30]")]), Var("R0",Imm(64)), -UNSIGNED(64,Load(Var("mem",Mem(64,8)),PLUS(Var("R19",Imm(64)),Int(48,64)),LittleEndian(),8)))]), -Jmps([Goto(Tid(827, "%0000033b"), Attrs([Attr("address","0x714"), -Attr("insn","cbnz w0, #0x28")]), - NEQ(Extract(31,0,Var("R0",Imm(64))),Int(0,32)), -Direct(Tid(825, "%00000339"))), Goto(Tid(1_929, "%00000789"), Attrs([]), - Int(1,1), Direct(Tid(1_164, "%0000048c")))])), Blk(Tid(1_164, "%0000048c"), - Attrs([Attr("address","0x718")]), Phis([]), -Defs([Def(Tid(1_167, "%0000048f"), Attrs([Attr("address","0x718"), -Attr("insn","adrp x0, #65536")]), Var("R0",Imm(64)), Int(65536,64)), -Def(Tid(1_174, "%00000496"), Attrs([Attr("address","0x71C"), -Attr("insn","ldr x0, [x0, #0xfe0]")]), Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(4064,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(1_180, "%0000049c"), Attrs([Attr("address","0x720"), -Attr("insn","cbz x0, #0x10")]), EQ(Var("R0",Imm(64)),Int(0,64)), -Direct(Tid(1_178, "%0000049a"))), Goto(Tid(1_930, "%0000078a"), Attrs([]), - Int(1,1), Direct(Tid(1_203, "%000004b3")))])), Blk(Tid(1_203, "%000004b3"), - Attrs([Attr("address","0x724")]), Phis([]), -Defs([Def(Tid(1_206, "%000004b6"), Attrs([Attr("address","0x724"), -Attr("insn","adrp x0, #69632")]), Var("R0",Imm(64)), Int(69632,64)), -Def(Tid(1_213, "%000004bd"), Attrs([Attr("address","0x728"), -Attr("insn","ldr x0, [x0, #0x8]")]), Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(1_218, "%000004c2"), Attrs([Attr("address","0x72C"), -Attr("insn","bl #-0x11c")]), Var("R30",Imm(64)), Int(1840,64))]), -Jmps([Call(Tid(1_221, "%000004c5"), Attrs([Attr("address","0x72C"), -Attr("insn","bl #-0x11c")]), Int(1,1), -(Direct(Tid(1_883, "@__cxa_finalize")),Direct(Tid(1_178, "%0000049a"))))])), -Blk(Tid(1_178, "%0000049a"), Attrs([Attr("address","0x730")]), Phis([]), -Defs([Def(Tid(1_186, "%000004a2"), Attrs([Attr("address","0x730"), -Attr("insn","bl #-0xa0")]), Var("R30",Imm(64)), Int(1844,64))]), -Jmps([Call(Tid(1_188, "%000004a4"), Attrs([Attr("address","0x730"), -Attr("insn","bl #-0xa0")]), Int(1,1), -(Direct(Tid(1_899, "@deregister_tm_clones")),Direct(Tid(1_190, "%000004a6"))))])), -Blk(Tid(1_190, "%000004a6"), Attrs([Attr("address","0x734")]), Phis([]), -Defs([Def(Tid(1_193, "%000004a9"), Attrs([Attr("address","0x734"), -Attr("insn","mov w0, #0x1")]), Var("R0",Imm(64)), Int(1,64)), -Def(Tid(1_201, "%000004b1"), Attrs([Attr("address","0x738"), -Attr("insn","strb w0, [x19, #0x30]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R19",Imm(64)),Int(48,64)),Extract(7,0,Var("R0",Imm(64))),LittleEndian(),8))]), -Jmps([Goto(Tid(1_931, "%0000078b"), Attrs([]), Int(1,1), -Direct(Tid(825, "%00000339")))])), Blk(Tid(825, "%00000339"), - Attrs([Attr("address","0x73C")]), Phis([]), Defs([Def(Tid(835, "%00000343"), - Attrs([Attr("address","0x73C"), Attr("insn","ldr x19, [sp, #0x10]")]), - Var("R19",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(16,64)),LittleEndian(),64)), -Def(Tid(842, "%0000034a"), Attrs([Attr("address","0x740"), -Attr("insn","ldp x29, x30, [sp], #0x20")]), Var("R29",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(847, "%0000034f"), Attrs([Attr("address","0x740"), -Attr("insn","ldp x29, x30, [sp], #0x20")]), Var("R30",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(851, "%00000353"), Attrs([Attr("address","0x740"), -Attr("insn","ldp x29, x30, [sp], #0x20")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(32,64)))]), Jmps([Call(Tid(856, "%00000358"), - Attrs([Attr("address","0x744"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), Sub(Tid(1_888, "@__libc_start_main"), - Attrs([Attr("c.proto","signed (*)(signed (*)(signed , char** , char** );* main, signed , char** , \nvoid* auxv)"), -Attr("address","0x600"), Attr("stub","()")]), "__libc_start_main", - Args([Arg(Tid(1_942, "%00000796"), - Attrs([Attr("c.layout","**[ : 64]"), -Attr("c.data","Top:u64 ptr ptr"), -Attr("c.type","signed (*)(signed , char** , char** );*")]), - Var("__libc_start_main_main",Imm(64)), Var("R0",Imm(64)), In()), -Arg(Tid(1_943, "%00000797"), Attrs([Attr("c.layout","[signed : 32]"), -Attr("c.data","Top:u32"), Attr("c.type","signed")]), - Var("__libc_start_main_arg2",Imm(32)), LOW(32,Var("R1",Imm(64))), In()), -Arg(Tid(1_944, "%00000798"), Attrs([Attr("c.layout","**[char : 8]"), -Attr("c.data","Top:u8 ptr ptr"), Attr("c.type","char**")]), - Var("__libc_start_main_arg3",Imm(64)), Var("R2",Imm(64)), Both()), -Arg(Tid(1_945, "%00000799"), Attrs([Attr("c.layout","*[ : 8]"), -Attr("c.data","{} ptr"), Attr("c.type","void*")]), - Var("__libc_start_main_auxv",Imm(64)), Var("R3",Imm(64)), Both()), -Arg(Tid(1_946, "%0000079a"), Attrs([Attr("c.layout","[signed : 32]"), -Attr("c.data","Top:u32"), Attr("c.type","signed")]), - Var("__libc_start_main_result",Imm(32)), LOW(32,Var("R0",Imm(64))), -Out())]), Blks([Blk(Tid(607, "@__libc_start_main"), - Attrs([Attr("address","0x600")]), Phis([]), -Defs([Def(Tid(1_445, "%000005a5"), Attrs([Attr("address","0x600"), -Attr("insn","adrp x16, #65536")]), Var("R16",Imm(64)), Int(65536,64)), -Def(Tid(1_452, "%000005ac"), Attrs([Attr("address","0x604"), -Attr("insn","ldr x17, [x16, #0xfb0]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(4016,64)),LittleEndian(),64)), -Def(Tid(1_458, "%000005b2"), Attrs([Attr("address","0x608"), -Attr("insn","add x16, x16, #0xfb0")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(4016,64)))]), Jmps([Call(Tid(1_463, "%000005b7"), - Attrs([Attr("address","0x60C"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), Sub(Tid(1_889, "@_fini"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x80C")]), - "_fini", Args([Arg(Tid(1_947, "%0000079b"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("_fini_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(31, "@_fini"), - Attrs([Attr("address","0x80C")]), Phis([]), Defs([Def(Tid(37, "%00000025"), - Attrs([Attr("address","0x810"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("#0",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(18446744073709551600,64))), -Def(Tid(43, "%0000002b"), Attrs([Attr("address","0x810"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("#0",Imm(64)),Var("R29",Imm(64)),LittleEndian(),64)), -Def(Tid(49, "%00000031"), Attrs([Attr("address","0x810"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("#0",Imm(64)),Int(8,64)),Var("R30",Imm(64)),LittleEndian(),64)), -Def(Tid(53, "%00000035"), Attrs([Attr("address","0x810"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("R31",Imm(64)), -Var("#0",Imm(64))), Def(Tid(59, "%0000003b"), Attrs([Attr("address","0x814"), -Attr("insn","mov x29, sp")]), Var("R29",Imm(64)), Var("R31",Imm(64))), -Def(Tid(66, "%00000042"), Attrs([Attr("address","0x818"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R29",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(71, "%00000047"), Attrs([Attr("address","0x818"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R30",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(75, "%0000004b"), Attrs([Attr("address","0x818"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(16,64)))]), Jmps([Call(Tid(80, "%00000050"), - Attrs([Attr("address","0x81C"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), Sub(Tid(1_890, "@_init"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x5C8")]), - "_init", Args([Arg(Tid(1_948, "%0000079c"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("_init_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(1_679, "@_init"), - Attrs([Attr("address","0x5C8")]), Phis([]), -Defs([Def(Tid(1_685, "%00000695"), Attrs([Attr("address","0x5CC"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("#6",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(18446744073709551600,64))), -Def(Tid(1_691, "%0000069b"), Attrs([Attr("address","0x5CC"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("#6",Imm(64)),Var("R29",Imm(64)),LittleEndian(),64)), -Def(Tid(1_697, "%000006a1"), Attrs([Attr("address","0x5CC"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("#6",Imm(64)),Int(8,64)),Var("R30",Imm(64)),LittleEndian(),64)), -Def(Tid(1_701, "%000006a5"), Attrs([Attr("address","0x5CC"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("R31",Imm(64)), -Var("#6",Imm(64))), Def(Tid(1_707, "%000006ab"), - Attrs([Attr("address","0x5D0"), Attr("insn","mov x29, sp")]), - Var("R29",Imm(64)), Var("R31",Imm(64))), Def(Tid(1_712, "%000006b0"), - Attrs([Attr("address","0x5D4"), Attr("insn","bl #0xa0")]), - Var("R30",Imm(64)), Int(1496,64))]), Jmps([Call(Tid(1_714, "%000006b2"), - Attrs([Attr("address","0x5D4"), Attr("insn","bl #0xa0")]), Int(1,1), -(Direct(Tid(1_897, "@call_weak_fn")),Direct(Tid(1_716, "%000006b4"))))])), -Blk(Tid(1_716, "%000006b4"), Attrs([Attr("address","0x5D8")]), Phis([]), -Defs([Def(Tid(1_721, "%000006b9"), Attrs([Attr("address","0x5D8"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R29",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(1_726, "%000006be"), Attrs([Attr("address","0x5D8"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R30",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(1_730, "%000006c2"), Attrs([Attr("address","0x5D8"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(16,64)))]), Jmps([Call(Tid(1_735, "%000006c7"), - Attrs([Attr("address","0x5DC"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), Sub(Tid(1_891, "@_start"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x640"), -Attr("stub","()"), Attr("entry-point","()")]), "_start", - Args([Arg(Tid(1_949, "%0000079d"), Attrs([Attr("c.layout","[signed : 32]"), -Attr("c.data","Top:u32"), Attr("c.type","signed")]), - Var("_start_result",Imm(32)), LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(544, "@_start"), Attrs([Attr("address","0x640")]), Phis([]), -Defs([Def(Tid(549, "%00000225"), Attrs([Attr("address","0x644"), -Attr("insn","mov x29, #0x0")]), Var("R29",Imm(64)), Int(0,64)), -Def(Tid(554, "%0000022a"), Attrs([Attr("address","0x648"), -Attr("insn","mov x30, #0x0")]), Var("R30",Imm(64)), Int(0,64)), -Def(Tid(560, "%00000230"), Attrs([Attr("address","0x64C"), -Attr("insn","mov x5, x0")]), Var("R5",Imm(64)), Var("R0",Imm(64))), -Def(Tid(567, "%00000237"), Attrs([Attr("address","0x650"), -Attr("insn","ldr x1, [sp]")]), Var("R1",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(573, "%0000023d"), Attrs([Attr("address","0x654"), -Attr("insn","add x2, sp, #0x8")]), Var("R2",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(8,64))), Def(Tid(579, "%00000243"), - Attrs([Attr("address","0x658"), Attr("insn","mov x6, sp")]), - Var("R6",Imm(64)), Var("R31",Imm(64))), Def(Tid(584, "%00000248"), - Attrs([Attr("address","0x65C"), Attr("insn","adrp x0, #65536")]), - Var("R0",Imm(64)), Int(65536,64)), Def(Tid(591, "%0000024f"), - Attrs([Attr("address","0x660"), Attr("insn","ldr x0, [x0, #0xff0]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(4080,64)),LittleEndian(),64)), -Def(Tid(596, "%00000254"), Attrs([Attr("address","0x664"), -Attr("insn","mov x3, #0x0")]), Var("R3",Imm(64)), Int(0,64)), -Def(Tid(601, "%00000259"), Attrs([Attr("address","0x668"), -Attr("insn","mov x4, #0x0")]), Var("R4",Imm(64)), Int(0,64)), -Def(Tid(606, "%0000025e"), Attrs([Attr("address","0x66C"), -Attr("insn","bl #-0x6c")]), Var("R30",Imm(64)), Int(1648,64))]), -Jmps([Call(Tid(609, "%00000261"), Attrs([Attr("address","0x66C"), -Attr("insn","bl #-0x6c")]), Int(1,1), -(Direct(Tid(1_888, "@__libc_start_main")),Direct(Tid(611, "%00000263"))))])), -Blk(Tid(611, "%00000263"), Attrs([Attr("address","0x670")]), Phis([]), -Defs([Def(Tid(614, "%00000266"), Attrs([Attr("address","0x670"), -Attr("insn","bl #-0x40")]), Var("R30",Imm(64)), Int(1652,64))]), -Jmps([Call(Tid(617, "%00000269"), Attrs([Attr("address","0x670"), -Attr("insn","bl #-0x40")]), Int(1,1), -(Direct(Tid(1_894, "@abort")),Direct(Tid(1_932, "%0000078c"))))])), -Blk(Tid(1_932, "%0000078c"), Attrs([]), Phis([]), Defs([]), -Jmps([Call(Tid(1_933, "%0000078d"), Attrs([]), Int(1,1), -(Direct(Tid(1_897, "@call_weak_fn")),))]))])), Sub(Tid(1_894, "@abort"), - Attrs([Attr("noreturn","()"), Attr("c.proto","void (*)(void)"), -Attr("address","0x630"), Attr("stub","()")]), "abort", Args([]), -Blks([Blk(Tid(615, "@abort"), Attrs([Attr("address","0x630")]), Phis([]), -Defs([Def(Tid(1_511, "%000005e7"), Attrs([Attr("address","0x630"), -Attr("insn","adrp x16, #65536")]), Var("R16",Imm(64)), Int(65536,64)), -Def(Tid(1_518, "%000005ee"), Attrs([Attr("address","0x634"), -Attr("insn","ldr x17, [x16, #0xfc8]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(4040,64)),LittleEndian(),64)), -Def(Tid(1_524, "%000005f4"), Attrs([Attr("address","0x638"), -Attr("insn","add x16, x16, #0xfc8")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(4040,64)))]), Jmps([Call(Tid(1_529, "%000005f9"), - Attrs([Attr("address","0x63C"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), Sub(Tid(1_895, "@add_six"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x778")]), - "add_six", Args([Arg(Tid(1_950, "%0000079e"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("add_six_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(916, "@add_six"), - Attrs([Attr("address","0x778")]), Phis([]), Defs([Def(Tid(919, "%00000397"), - Attrs([Attr("address","0x778"), Attr("insn","adrp x0, #69632")]), - Var("R0",Imm(64)), Int(69632,64)), Def(Tid(925, "%0000039d"), - Attrs([Attr("address","0x77C"), Attr("insn","add x0, x0, #0x10")]), - Var("R0",Imm(64)), PLUS(Var("R0",Imm(64)),Int(16,64))), -Def(Tid(932, "%000003a4"), Attrs([Attr("address","0x780"), -Attr("insn","ldr w0, [x0]")]), Var("R0",Imm(64)), -UNSIGNED(64,Load(Var("mem",Mem(64,8)),Var("R0",Imm(64)),LittleEndian(),32))), -Def(Tid(938, "%000003aa"), Attrs([Attr("address","0x784"), -Attr("insn","add w1, w0, #0x6")]), Var("R1",Imm(64)), -UNSIGNED(64,PLUS(Extract(31,0,Var("R0",Imm(64))),Int(6,32)))), -Def(Tid(943, "%000003af"), Attrs([Attr("address","0x788"), -Attr("insn","adrp x0, #69632")]), Var("R0",Imm(64)), Int(69632,64)), -Def(Tid(949, "%000003b5"), Attrs([Attr("address","0x78C"), -Attr("insn","add x0, x0, #0x10")]), Var("R0",Imm(64)), -PLUS(Var("R0",Imm(64)),Int(16,64))), Def(Tid(957, "%000003bd"), - Attrs([Attr("address","0x790"), Attr("insn","str w1, [x0]")]), - Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("R0",Imm(64)),Extract(31,0,Var("R1",Imm(64))),LittleEndian(),32))]), -Jmps([Call(Tid(964, "%000003c4"), Attrs([Attr("address","0x798"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))]))])), -Sub(Tid(1_896, "@add_two"), Attrs([Attr("c.proto","signed (*)(void)"), -Attr("address","0x754")]), "add_two", Args([Arg(Tid(1_951, "%0000079f"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("add_two_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(866, "@add_two"), - Attrs([Attr("address","0x754")]), Phis([]), Defs([Def(Tid(869, "%00000365"), - Attrs([Attr("address","0x754"), Attr("insn","adrp x0, #69632")]), - Var("R0",Imm(64)), Int(69632,64)), Def(Tid(875, "%0000036b"), - Attrs([Attr("address","0x758"), Attr("insn","add x0, x0, #0x10")]), - Var("R0",Imm(64)), PLUS(Var("R0",Imm(64)),Int(16,64))), -Def(Tid(882, "%00000372"), Attrs([Attr("address","0x75C"), -Attr("insn","ldr w0, [x0]")]), Var("R0",Imm(64)), -UNSIGNED(64,Load(Var("mem",Mem(64,8)),Var("R0",Imm(64)),LittleEndian(),32))), -Def(Tid(888, "%00000378"), Attrs([Attr("address","0x760"), -Attr("insn","add w1, w0, #0x2")]), Var("R1",Imm(64)), -UNSIGNED(64,PLUS(Extract(31,0,Var("R0",Imm(64))),Int(2,32)))), -Def(Tid(893, "%0000037d"), Attrs([Attr("address","0x764"), -Attr("insn","adrp x0, #69632")]), Var("R0",Imm(64)), Int(69632,64)), -Def(Tid(899, "%00000383"), Attrs([Attr("address","0x768"), -Attr("insn","add x0, x0, #0x10")]), Var("R0",Imm(64)), -PLUS(Var("R0",Imm(64)),Int(16,64))), Def(Tid(907, "%0000038b"), - Attrs([Attr("address","0x76C"), Attr("insn","str w1, [x0]")]), - Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("R0",Imm(64)),Extract(31,0,Var("R1",Imm(64))),LittleEndian(),32))]), -Jmps([Call(Tid(914, "%00000392"), Attrs([Attr("address","0x774"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))]))])), -Sub(Tid(1_897, "@call_weak_fn"), Attrs([Attr("c.proto","signed (*)(void)"), -Attr("address","0x674")]), "call_weak_fn", Args([Arg(Tid(1_952, "%000007a0"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("call_weak_fn_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(619, "@call_weak_fn"), - Attrs([Attr("address","0x674")]), Phis([]), Defs([Def(Tid(622, "%0000026e"), - Attrs([Attr("address","0x674"), Attr("insn","adrp x0, #65536")]), - Var("R0",Imm(64)), Int(65536,64)), Def(Tid(629, "%00000275"), - Attrs([Attr("address","0x678"), Attr("insn","ldr x0, [x0, #0xfe8]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(4072,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(635, "%0000027b"), Attrs([Attr("address","0x67C"), -Attr("insn","cbz x0, #0x8")]), EQ(Var("R0",Imm(64)),Int(0,64)), -Direct(Tid(633, "%00000279"))), Goto(Tid(1_934, "%0000078e"), Attrs([]), - Int(1,1), Direct(Tid(1_283, "%00000503")))])), Blk(Tid(633, "%00000279"), - Attrs([Attr("address","0x684")]), Phis([]), Defs([]), -Jmps([Call(Tid(641, "%00000281"), Attrs([Attr("address","0x684"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))])), -Blk(Tid(1_283, "%00000503"), Attrs([Attr("address","0x680")]), Phis([]), -Defs([]), Jmps([Goto(Tid(1_286, "%00000506"), Attrs([Attr("address","0x680"), -Attr("insn","b #-0x60")]), Int(1,1), -Direct(Tid(1_284, "@__gmon_start__")))])), Blk(Tid(1_284, "@__gmon_start__"), - Attrs([Attr("address","0x620")]), Phis([]), -Defs([Def(Tid(1_489, "%000005d1"), Attrs([Attr("address","0x620"), -Attr("insn","adrp x16, #65536")]), Var("R16",Imm(64)), Int(65536,64)), -Def(Tid(1_496, "%000005d8"), Attrs([Attr("address","0x624"), -Attr("insn","ldr x17, [x16, #0xfc0]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(4032,64)),LittleEndian(),64)), -Def(Tid(1_502, "%000005de"), Attrs([Attr("address","0x628"), -Attr("insn","add x16, x16, #0xfc0")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(4032,64)))]), Jmps([Call(Tid(1_507, "%000005e3"), - Attrs([Attr("address","0x62C"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), -Sub(Tid(1_899, "@deregister_tm_clones"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x690")]), - "deregister_tm_clones", Args([Arg(Tid(1_953, "%000007a1"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("deregister_tm_clones_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(647, "@deregister_tm_clones"), - Attrs([Attr("address","0x690")]), Phis([]), Defs([Def(Tid(650, "%0000028a"), - Attrs([Attr("address","0x690"), Attr("insn","adrp x0, #69632")]), - Var("R0",Imm(64)), Int(69632,64)), Def(Tid(656, "%00000290"), - Attrs([Attr("address","0x694"), Attr("insn","add x0, x0, #0x30")]), - Var("R0",Imm(64)), PLUS(Var("R0",Imm(64)),Int(48,64))), -Def(Tid(661, "%00000295"), Attrs([Attr("address","0x698"), -Attr("insn","adrp x1, #69632")]), Var("R1",Imm(64)), Int(69632,64)), -Def(Tid(667, "%0000029b"), Attrs([Attr("address","0x69C"), -Attr("insn","add x1, x1, #0x30")]), Var("R1",Imm(64)), -PLUS(Var("R1",Imm(64)),Int(48,64))), Def(Tid(673, "%000002a1"), - Attrs([Attr("address","0x6A0"), Attr("insn","cmp x1, x0")]), - Var("#1",Imm(64)), NOT(Var("R0",Imm(64)))), Def(Tid(678, "%000002a6"), - Attrs([Attr("address","0x6A0"), Attr("insn","cmp x1, x0")]), - Var("#2",Imm(64)), PLUS(Var("R1",Imm(64)),NOT(Var("R0",Imm(64))))), -Def(Tid(684, "%000002ac"), Attrs([Attr("address","0x6A0"), -Attr("insn","cmp x1, x0")]), Var("VF",Imm(1)), -NEQ(SIGNED(65,PLUS(Var("#2",Imm(64)),Int(1,64))),PLUS(PLUS(SIGNED(65,Var("R1",Imm(64))),SIGNED(65,Var("#1",Imm(64)))),Int(1,65)))), -Def(Tid(690, "%000002b2"), Attrs([Attr("address","0x6A0"), -Attr("insn","cmp x1, x0")]), Var("CF",Imm(1)), -NEQ(UNSIGNED(65,PLUS(Var("#2",Imm(64)),Int(1,64))),PLUS(PLUS(UNSIGNED(65,Var("R1",Imm(64))),UNSIGNED(65,Var("#1",Imm(64)))),Int(1,65)))), -Def(Tid(694, "%000002b6"), Attrs([Attr("address","0x6A0"), -Attr("insn","cmp x1, x0")]), Var("ZF",Imm(1)), -EQ(PLUS(Var("#2",Imm(64)),Int(1,64)),Int(0,64))), Def(Tid(698, "%000002ba"), - Attrs([Attr("address","0x6A0"), Attr("insn","cmp x1, x0")]), - Var("NF",Imm(1)), Extract(63,63,PLUS(Var("#2",Imm(64)),Int(1,64))))]), -Jmps([Goto(Tid(704, "%000002c0"), Attrs([Attr("address","0x6A4"), -Attr("insn","b.eq #0x18")]), EQ(Var("ZF",Imm(1)),Int(1,1)), -Direct(Tid(702, "%000002be"))), Goto(Tid(1_935, "%0000078f"), Attrs([]), - Int(1,1), Direct(Tid(1_253, "%000004e5")))])), Blk(Tid(1_253, "%000004e5"), - Attrs([Attr("address","0x6A8")]), Phis([]), -Defs([Def(Tid(1_256, "%000004e8"), Attrs([Attr("address","0x6A8"), -Attr("insn","adrp x1, #65536")]), Var("R1",Imm(64)), Int(65536,64)), -Def(Tid(1_263, "%000004ef"), Attrs([Attr("address","0x6AC"), -Attr("insn","ldr x1, [x1, #0xfd8]")]), Var("R1",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R1",Imm(64)),Int(4056,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(1_268, "%000004f4"), Attrs([Attr("address","0x6B0"), -Attr("insn","cbz x1, #0xc")]), EQ(Var("R1",Imm(64)),Int(0,64)), -Direct(Tid(702, "%000002be"))), Goto(Tid(1_936, "%00000790"), Attrs([]), - Int(1,1), Direct(Tid(1_272, "%000004f8")))])), Blk(Tid(702, "%000002be"), - Attrs([Attr("address","0x6BC")]), Phis([]), Defs([]), -Jmps([Call(Tid(710, "%000002c6"), Attrs([Attr("address","0x6BC"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))])), -Blk(Tid(1_272, "%000004f8"), Attrs([Attr("address","0x6B4")]), Phis([]), -Defs([Def(Tid(1_276, "%000004fc"), Attrs([Attr("address","0x6B4"), -Attr("insn","mov x16, x1")]), Var("R16",Imm(64)), Var("R1",Imm(64)))]), -Jmps([Call(Tid(1_281, "%00000501"), Attrs([Attr("address","0x6B8"), -Attr("insn","br x16")]), Int(1,1), (Indirect(Var("R16",Imm(64))),))]))])), -Sub(Tid(1_902, "@frame_dummy"), Attrs([Attr("c.proto","signed (*)(void)"), -Attr("address","0x750")]), "frame_dummy", Args([Arg(Tid(1_954, "%000007a2"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("frame_dummy_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(862, "@frame_dummy"), - Attrs([Attr("address","0x750")]), Phis([]), Defs([]), -Jmps([Call(Tid(864, "%00000360"), Attrs([Attr("address","0x750"), -Attr("insn","b #-0x90")]), Int(1,1), -(Direct(Tid(1_904, "@register_tm_clones")),))]))])), Sub(Tid(1_903, "@main"), - Attrs([Attr("c.proto","signed (*)(signed argc, const char** argv)"), -Attr("address","0x7C0")]), "main", Args([Arg(Tid(1_955, "%000007a3"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("main_argc",Imm(32)), -LOW(32,Var("R0",Imm(64))), In()), Arg(Tid(1_956, "%000007a4"), - Attrs([Attr("c.layout","**[char : 8]"), Attr("c.data","Top:u8 ptr ptr"), -Attr("c.type"," const char**")]), Var("main_argv",Imm(64)), -Var("R1",Imm(64)), Both()), Arg(Tid(1_957, "%000007a5"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("main_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(1_016, "@main"), - Attrs([Attr("address","0x7C0")]), Phis([]), -Defs([Def(Tid(1_020, "%000003fc"), Attrs([Attr("address","0x7C0"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("#4",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(18446744073709551584,64))), -Def(Tid(1_026, "%00000402"), Attrs([Attr("address","0x7C0"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("#4",Imm(64)),Var("R29",Imm(64)),LittleEndian(),64)), -Def(Tid(1_032, "%00000408"), Attrs([Attr("address","0x7C0"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("#4",Imm(64)),Int(8,64)),Var("R30",Imm(64)),LittleEndian(),64)), -Def(Tid(1_036, "%0000040c"), Attrs([Attr("address","0x7C0"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("R31",Imm(64)), -Var("#4",Imm(64))), Def(Tid(1_042, "%00000412"), - Attrs([Attr("address","0x7C4"), Attr("insn","mov x29, sp")]), - Var("R29",Imm(64)), Var("R31",Imm(64))), Def(Tid(1_050, "%0000041a"), - Attrs([Attr("address","0x7C8"), Attr("insn","str w0, [sp, #0x1c]")]), - Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(28,64)),Extract(31,0,Var("R0",Imm(64))),LittleEndian(),32)), -Def(Tid(1_058, "%00000422"), Attrs([Attr("address","0x7CC"), -Attr("insn","str x1, [sp, #0x10]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(16,64)),Var("R1",Imm(64)),LittleEndian(),64)), -Def(Tid(1_063, "%00000427"), Attrs([Attr("address","0x7D0"), -Attr("insn","adrp x0, #69632")]), Var("R0",Imm(64)), Int(69632,64)), -Def(Tid(1_069, "%0000042d"), Attrs([Attr("address","0x7D4"), -Attr("insn","add x0, x0, #0x18")]), Var("R0",Imm(64)), -PLUS(Var("R0",Imm(64)),Int(24,64))), Def(Tid(1_076, "%00000434"), - Attrs([Attr("address","0x7D8"), Attr("insn","ldr x0, [x0]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R0",Imm(64)),LittleEndian(),64)), -Def(Tid(1_081, "%00000439"), Attrs([Attr("address","0x7DC"), -Attr("insn","blr x0")]), Var("R30",Imm(64)), Int(2016,64))]), -Jmps([Call(Tid(1_084, "%0000043c"), Attrs([Attr("address","0x7DC"), -Attr("insn","blr x0")]), Int(1,1), -(Indirect(Var("R0",Imm(64))),Direct(Tid(1_086, "%0000043e"))))])), -Blk(Tid(1_086, "%0000043e"), Attrs([Attr("address","0x7E0")]), Phis([]), -Defs([Def(Tid(1_089, "%00000441"), Attrs([Attr("address","0x7E0"), -Attr("insn","adrp x0, #69632")]), Var("R0",Imm(64)), Int(69632,64)), -Def(Tid(1_095, "%00000447"), Attrs([Attr("address","0x7E4"), -Attr("insn","add x0, x0, #0x18")]), Var("R0",Imm(64)), -PLUS(Var("R0",Imm(64)),Int(24,64))), Def(Tid(1_102, "%0000044e"), - Attrs([Attr("address","0x7E8"), Attr("insn","ldr x0, [x0, #0x8]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(1_107, "%00000453"), Attrs([Attr("address","0x7EC"), -Attr("insn","blr x0")]), Var("R30",Imm(64)), Int(2032,64))]), -Jmps([Call(Tid(1_110, "%00000456"), Attrs([Attr("address","0x7EC"), -Attr("insn","blr x0")]), Int(1,1), -(Indirect(Var("R0",Imm(64))),Direct(Tid(1_112, "%00000458"))))])), -Blk(Tid(1_112, "%00000458"), Attrs([Attr("address","0x7F0")]), Phis([]), -Defs([Def(Tid(1_115, "%0000045b"), Attrs([Attr("address","0x7F0"), -Attr("insn","adrp x0, #69632")]), Var("R0",Imm(64)), Int(69632,64)), -Def(Tid(1_121, "%00000461"), Attrs([Attr("address","0x7F4"), -Attr("insn","add x0, x0, #0x18")]), Var("R0",Imm(64)), -PLUS(Var("R0",Imm(64)),Int(24,64))), Def(Tid(1_128, "%00000468"), - Attrs([Attr("address","0x7F8"), Attr("insn","ldr x0, [x0, #0x10]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(16,64)),LittleEndian(),64)), -Def(Tid(1_133, "%0000046d"), Attrs([Attr("address","0x7FC"), -Attr("insn","blr x0")]), Var("R30",Imm(64)), Int(2048,64))]), -Jmps([Call(Tid(1_136, "%00000470"), Attrs([Attr("address","0x7FC"), -Attr("insn","blr x0")]), Int(1,1), -(Indirect(Var("R0",Imm(64))),Direct(Tid(1_138, "%00000472"))))])), -Blk(Tid(1_138, "%00000472"), Attrs([Attr("address","0x800")]), Phis([]), -Defs([Def(Tid(1_141, "%00000475"), Attrs([Attr("address","0x800"), -Attr("insn","mov w0, #0x0")]), Var("R0",Imm(64)), Int(0,64)), -Def(Tid(1_148, "%0000047c"), Attrs([Attr("address","0x804"), -Attr("insn","ldp x29, x30, [sp], #0x20")]), Var("R29",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(1_153, "%00000481"), Attrs([Attr("address","0x804"), -Attr("insn","ldp x29, x30, [sp], #0x20")]), Var("R30",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(1_157, "%00000485"), Attrs([Attr("address","0x804"), -Attr("insn","ldp x29, x30, [sp], #0x20")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(32,64)))]), Jmps([Call(Tid(1_162, "%0000048a"), - Attrs([Attr("address","0x808"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), -Sub(Tid(1_904, "@register_tm_clones"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x6C0")]), - "register_tm_clones", Args([Arg(Tid(1_958, "%000007a6"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("register_tm_clones_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(712, "@register_tm_clones"), Attrs([Attr("address","0x6C0")]), - Phis([]), Defs([Def(Tid(715, "%000002cb"), Attrs([Attr("address","0x6C0"), -Attr("insn","adrp x0, #69632")]), Var("R0",Imm(64)), Int(69632,64)), -Def(Tid(721, "%000002d1"), Attrs([Attr("address","0x6C4"), -Attr("insn","add x0, x0, #0x30")]), Var("R0",Imm(64)), -PLUS(Var("R0",Imm(64)),Int(48,64))), Def(Tid(726, "%000002d6"), - Attrs([Attr("address","0x6C8"), Attr("insn","adrp x1, #69632")]), - Var("R1",Imm(64)), Int(69632,64)), Def(Tid(732, "%000002dc"), - Attrs([Attr("address","0x6CC"), Attr("insn","add x1, x1, #0x30")]), - Var("R1",Imm(64)), PLUS(Var("R1",Imm(64)),Int(48,64))), -Def(Tid(739, "%000002e3"), Attrs([Attr("address","0x6D0"), -Attr("insn","sub x1, x1, x0")]), Var("R1",Imm(64)), -PLUS(PLUS(Var("R1",Imm(64)),NOT(Var("R0",Imm(64)))),Int(1,64))), -Def(Tid(745, "%000002e9"), Attrs([Attr("address","0x6D4"), -Attr("insn","lsr x2, x1, #63")]), Var("R2",Imm(64)), -Concat(Int(0,63),Extract(63,63,Var("R1",Imm(64))))), -Def(Tid(752, "%000002f0"), Attrs([Attr("address","0x6D8"), -Attr("insn","add x1, x2, x1, asr #3")]), Var("R1",Imm(64)), -PLUS(Var("R2",Imm(64)),ARSHIFT(Var("R1",Imm(64)),Int(3,3)))), -Def(Tid(758, "%000002f6"), Attrs([Attr("address","0x6DC"), -Attr("insn","asr x1, x1, #1")]), Var("R1",Imm(64)), -SIGNED(64,Extract(63,1,Var("R1",Imm(64)))))]), -Jmps([Goto(Tid(764, "%000002fc"), Attrs([Attr("address","0x6E0"), -Attr("insn","cbz x1, #0x18")]), EQ(Var("R1",Imm(64)),Int(0,64)), -Direct(Tid(762, "%000002fa"))), Goto(Tid(1_937, "%00000791"), Attrs([]), - Int(1,1), Direct(Tid(1_223, "%000004c7")))])), Blk(Tid(1_223, "%000004c7"), - Attrs([Attr("address","0x6E4")]), Phis([]), -Defs([Def(Tid(1_226, "%000004ca"), Attrs([Attr("address","0x6E4"), -Attr("insn","adrp x2, #65536")]), Var("R2",Imm(64)), Int(65536,64)), -Def(Tid(1_233, "%000004d1"), Attrs([Attr("address","0x6E8"), -Attr("insn","ldr x2, [x2, #0xff8]")]), Var("R2",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R2",Imm(64)),Int(4088,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(1_238, "%000004d6"), Attrs([Attr("address","0x6EC"), -Attr("insn","cbz x2, #0xc")]), EQ(Var("R2",Imm(64)),Int(0,64)), -Direct(Tid(762, "%000002fa"))), Goto(Tid(1_938, "%00000792"), Attrs([]), - Int(1,1), Direct(Tid(1_242, "%000004da")))])), Blk(Tid(762, "%000002fa"), - Attrs([Attr("address","0x6F8")]), Phis([]), Defs([]), -Jmps([Call(Tid(770, "%00000302"), Attrs([Attr("address","0x6F8"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))])), -Blk(Tid(1_242, "%000004da"), Attrs([Attr("address","0x6F0")]), Phis([]), -Defs([Def(Tid(1_246, "%000004de"), Attrs([Attr("address","0x6F0"), -Attr("insn","mov x16, x2")]), Var("R16",Imm(64)), Var("R2",Imm(64)))]), -Jmps([Call(Tid(1_251, "%000004e3"), Attrs([Attr("address","0x6F4"), -Attr("insn","br x16")]), Int(1,1), (Indirect(Var("R16",Imm(64))),))]))])), -Sub(Tid(1_907, "@sub_seven"), Attrs([Attr("c.proto","signed (*)(void)"), -Attr("address","0x79C")]), "sub_seven", Args([Arg(Tid(1_959, "%000007a7"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("sub_seven_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(966, "@sub_seven"), - Attrs([Attr("address","0x79C")]), Phis([]), Defs([Def(Tid(969, "%000003c9"), - Attrs([Attr("address","0x79C"), Attr("insn","adrp x0, #69632")]), - Var("R0",Imm(64)), Int(69632,64)), Def(Tid(975, "%000003cf"), - Attrs([Attr("address","0x7A0"), Attr("insn","add x0, x0, #0x10")]), - Var("R0",Imm(64)), PLUS(Var("R0",Imm(64)),Int(16,64))), -Def(Tid(982, "%000003d6"), Attrs([Attr("address","0x7A4"), -Attr("insn","ldr w0, [x0]")]), Var("R0",Imm(64)), -UNSIGNED(64,Load(Var("mem",Mem(64,8)),Var("R0",Imm(64)),LittleEndian(),32))), -Def(Tid(988, "%000003dc"), Attrs([Attr("address","0x7A8"), -Attr("insn","sub w1, w0, #0x7")]), Var("R1",Imm(64)), -UNSIGNED(64,PLUS(Extract(31,0,Var("R0",Imm(64))),Int(4294967289,32)))), -Def(Tid(993, "%000003e1"), Attrs([Attr("address","0x7AC"), -Attr("insn","adrp x0, #69632")]), Var("R0",Imm(64)), Int(69632,64)), -Def(Tid(999, "%000003e7"), Attrs([Attr("address","0x7B0"), -Attr("insn","add x0, x0, #0x10")]), Var("R0",Imm(64)), -PLUS(Var("R0",Imm(64)),Int(16,64))), Def(Tid(1_007, "%000003ef"), - Attrs([Attr("address","0x7B4"), Attr("insn","str w1, [x0]")]), - Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("R0",Imm(64)),Extract(31,0,Var("R1",Imm(64))),LittleEndian(),32))]), -Jmps([Call(Tid(1_014, "%000003f6"), Attrs([Attr("address","0x7BC"), -Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))]))]))) \ No newline at end of file diff --git a/src/test/indirect_calls/jumptable2/gcc/jumptable2.bir b/src/test/indirect_calls/jumptable2/gcc/jumptable2.bir deleted file mode 100644 index e447c387e..000000000 --- a/src/test/indirect_calls/jumptable2/gcc/jumptable2.bir +++ /dev/null @@ -1,294 +0,0 @@ -00000793: program -0000075b: sub __cxa_finalize(__cxa_finalize_result) -00000794: __cxa_finalize_result :: out u32 = low:32[R0] - -000004c3: -000005bb: R16 := 0x10000 -000005c2: R17 := mem[R16 + 0xFB8, el]:u64 -000005c8: R16 := R16 + 0xFB8 -000005cd: call R17 with noreturn - -0000075c: sub __do_global_dtors_aux(__do_global_dtors_aux_result) -00000795: __do_global_dtors_aux_result :: out u32 = low:32[R0] - -00000306: -0000030a: #3 := R31 - 0x20 -00000310: mem := mem with [#3, el]:u64 <- R29 -00000316: mem := mem with [#3 + 8, el]:u64 <- R30 -0000031a: R31 := #3 -00000320: R29 := R31 -00000328: mem := mem with [R31 + 0x10, el]:u64 <- R19 -0000032d: R19 := 0x11000 -00000334: R0 := pad:64[mem[R19 + 0x30]] -0000033b: when 31:0[R0] <> 0 goto %00000339 -00000789: goto %0000048c - -0000048c: -0000048f: R0 := 0x10000 -00000496: R0 := mem[R0 + 0xFE0, el]:u64 -0000049c: when R0 = 0 goto %0000049a -0000078a: goto %000004b3 - -000004b3: -000004b6: R0 := 0x11000 -000004bd: R0 := mem[R0 + 8, el]:u64 -000004c2: R30 := 0x730 -000004c5: call @__cxa_finalize with return %0000049a - -0000049a: -000004a2: R30 := 0x734 -000004a4: call @deregister_tm_clones with return %000004a6 - -000004a6: -000004a9: R0 := 1 -000004b1: mem := mem with [R19 + 0x30] <- 7:0[R0] -0000078b: goto %00000339 - -00000339: -00000343: R19 := mem[R31 + 0x10, el]:u64 -0000034a: R29 := mem[R31, el]:u64 -0000034f: R30 := mem[R31 + 8, el]:u64 -00000353: R31 := R31 + 0x20 -00000358: call R30 with noreturn - -00000760: sub __libc_start_main(__libc_start_main_main, __libc_start_main_arg2, __libc_start_main_arg3, __libc_start_main_auxv, __libc_start_main_result) -00000796: __libc_start_main_main :: in u64 = R0 -00000797: __libc_start_main_arg2 :: in u32 = low:32[R1] -00000798: __libc_start_main_arg3 :: in out u64 = R2 -00000799: __libc_start_main_auxv :: in out u64 = R3 -0000079a: __libc_start_main_result :: out u32 = low:32[R0] - -0000025f: -000005a5: R16 := 0x10000 -000005ac: R17 := mem[R16 + 0xFB0, el]:u64 -000005b2: R16 := R16 + 0xFB0 -000005b7: call R17 with noreturn - -00000761: sub _fini(_fini_result) -0000079b: _fini_result :: out u32 = low:32[R0] - -0000001f: -00000025: #0 := R31 - 0x10 -0000002b: mem := mem with [#0, el]:u64 <- R29 -00000031: mem := mem with [#0 + 8, el]:u64 <- R30 -00000035: R31 := #0 -0000003b: R29 := R31 -00000042: R29 := mem[R31, el]:u64 -00000047: R30 := mem[R31 + 8, el]:u64 -0000004b: R31 := R31 + 0x10 -00000050: call R30 with noreturn - -00000762: sub _init(_init_result) -0000079c: _init_result :: out u32 = low:32[R0] - -0000068f: -00000695: #6 := R31 - 0x10 -0000069b: mem := mem with [#6, el]:u64 <- R29 -000006a1: mem := mem with [#6 + 8, el]:u64 <- R30 -000006a5: R31 := #6 -000006ab: R29 := R31 -000006b0: R30 := 0x5D8 -000006b2: call @call_weak_fn with return %000006b4 - -000006b4: -000006b9: R29 := mem[R31, el]:u64 -000006be: R30 := mem[R31 + 8, el]:u64 -000006c2: R31 := R31 + 0x10 -000006c7: call R30 with noreturn - -00000763: sub _start(_start_result) -0000079d: _start_result :: out u32 = low:32[R0] - -00000220: -00000225: R29 := 0 -0000022a: R30 := 0 -00000230: R5 := R0 -00000237: R1 := mem[R31, el]:u64 -0000023d: R2 := R31 + 8 -00000243: R6 := R31 -00000248: R0 := 0x10000 -0000024f: R0 := mem[R0 + 0xFF0, el]:u64 -00000254: R3 := 0 -00000259: R4 := 0 -0000025e: R30 := 0x670 -00000261: call @__libc_start_main with return %00000263 - -00000263: -00000266: R30 := 0x674 -00000269: call @abort with return %0000078c - -0000078c: -0000078d: call @call_weak_fn with noreturn - -00000766: sub abort() - - -00000267: -000005e7: R16 := 0x10000 -000005ee: R17 := mem[R16 + 0xFC8, el]:u64 -000005f4: R16 := R16 + 0xFC8 -000005f9: call R17 with noreturn - -00000767: sub add_six(add_six_result) -0000079e: add_six_result :: out u32 = low:32[R0] - -00000394: -00000397: R0 := 0x11000 -0000039d: R0 := R0 + 0x10 -000003a4: R0 := pad:64[mem[R0, el]:u32] -000003aa: R1 := pad:64[31:0[R0] + 6] -000003af: R0 := 0x11000 -000003b5: R0 := R0 + 0x10 -000003bd: mem := mem with [R0, el]:u32 <- 31:0[R1] -000003c4: call R30 with noreturn - -00000768: sub add_two(add_two_result) -0000079f: add_two_result :: out u32 = low:32[R0] - -00000362: -00000365: R0 := 0x11000 -0000036b: R0 := R0 + 0x10 -00000372: R0 := pad:64[mem[R0, el]:u32] -00000378: R1 := pad:64[31:0[R0] + 2] -0000037d: R0 := 0x11000 -00000383: R0 := R0 + 0x10 -0000038b: mem := mem with [R0, el]:u32 <- 31:0[R1] -00000392: call R30 with noreturn - -00000769: sub call_weak_fn(call_weak_fn_result) -000007a0: call_weak_fn_result :: out u32 = low:32[R0] - -0000026b: -0000026e: R0 := 0x10000 -00000275: R0 := mem[R0 + 0xFE8, el]:u64 -0000027b: when R0 = 0 goto %00000279 -0000078e: goto %00000503 - -00000279: -00000281: call R30 with noreturn - -00000503: -00000506: goto @__gmon_start__ - -00000504: -000005d1: R16 := 0x10000 -000005d8: R17 := mem[R16 + 0xFC0, el]:u64 -000005de: R16 := R16 + 0xFC0 -000005e3: call R17 with noreturn - -0000076b: sub deregister_tm_clones(deregister_tm_clones_result) -000007a1: deregister_tm_clones_result :: out u32 = low:32[R0] - -00000287: -0000028a: R0 := 0x11000 -00000290: R0 := R0 + 0x30 -00000295: R1 := 0x11000 -0000029b: R1 := R1 + 0x30 -000002a1: #1 := ~R0 -000002a6: #2 := R1 + ~R0 -000002ac: VF := extend:65[#2 + 1] <> extend:65[R1] + extend:65[#1] + 1 -000002b2: CF := pad:65[#2 + 1] <> pad:65[R1] + pad:65[#1] + 1 -000002b6: ZF := #2 + 1 = 0 -000002ba: NF := 63:63[#2 + 1] -000002c0: when ZF goto %000002be -0000078f: goto %000004e5 - -000004e5: -000004e8: R1 := 0x10000 -000004ef: R1 := mem[R1 + 0xFD8, el]:u64 -000004f4: when R1 = 0 goto %000002be -00000790: goto %000004f8 - -000002be: -000002c6: call R30 with noreturn - -000004f8: -000004fc: R16 := R1 -00000501: call R16 with noreturn - -0000076e: sub frame_dummy(frame_dummy_result) -000007a2: frame_dummy_result :: out u32 = low:32[R0] - -0000035e: -00000360: call @register_tm_clones with noreturn - -0000076f: sub main(main_argc, main_argv, main_result) -000007a3: main_argc :: in u32 = low:32[R0] -000007a4: main_argv :: in out u64 = R1 -000007a5: main_result :: out u32 = low:32[R0] - -000003f8: -000003fc: #4 := R31 - 0x20 -00000402: mem := mem with [#4, el]:u64 <- R29 -00000408: mem := mem with [#4 + 8, el]:u64 <- R30 -0000040c: R31 := #4 -00000412: R29 := R31 -0000041a: mem := mem with [R31 + 0x1C, el]:u32 <- 31:0[R0] -00000422: mem := mem with [R31 + 0x10, el]:u64 <- R1 -00000427: R0 := 0x11000 -0000042d: R0 := R0 + 0x18 -00000434: R0 := mem[R0, el]:u64 -00000439: R30 := 0x7E0 -0000043c: call R0 with return %0000043e - -0000043e: -00000441: R0 := 0x11000 -00000447: R0 := R0 + 0x18 -0000044e: R0 := mem[R0 + 8, el]:u64 -00000453: R30 := 0x7F0 -00000456: call R0 with return %00000458 - -00000458: -0000045b: R0 := 0x11000 -00000461: R0 := R0 + 0x18 -00000468: R0 := mem[R0 + 0x10, el]:u64 -0000046d: R30 := 0x800 -00000470: call R0 with return %00000472 - -00000472: -00000475: R0 := 0 -0000047c: R29 := mem[R31, el]:u64 -00000481: R30 := mem[R31 + 8, el]:u64 -00000485: R31 := R31 + 0x20 -0000048a: call R30 with noreturn - -00000770: sub register_tm_clones(register_tm_clones_result) -000007a6: register_tm_clones_result :: out u32 = low:32[R0] - -000002c8: -000002cb: R0 := 0x11000 -000002d1: R0 := R0 + 0x30 -000002d6: R1 := 0x11000 -000002dc: R1 := R1 + 0x30 -000002e3: R1 := R1 + ~R0 + 1 -000002e9: R2 := 0.63:63[R1] -000002f0: R1 := R2 + (R1 ~>> 3) -000002f6: R1 := extend:64[63:1[R1]] -000002fc: when R1 = 0 goto %000002fa -00000791: goto %000004c7 - -000004c7: -000004ca: R2 := 0x10000 -000004d1: R2 := mem[R2 + 0xFF8, el]:u64 -000004d6: when R2 = 0 goto %000002fa -00000792: goto %000004da - -000002fa: -00000302: call R30 with noreturn - -000004da: -000004de: R16 := R2 -000004e3: call R16 with noreturn - -00000773: sub sub_seven(sub_seven_result) -000007a7: sub_seven_result :: out u32 = low:32[R0] - -000003c6: -000003c9: R0 := 0x11000 -000003cf: R0 := R0 + 0x10 -000003d6: R0 := pad:64[mem[R0, el]:u32] -000003dc: R1 := pad:64[31:0[R0] - 7] -000003e1: R0 := 0x11000 -000003e7: R0 := R0 + 0x10 -000003ef: mem := mem with [R0, el]:u32 <- 31:0[R1] -000003f6: call R30 with noreturn diff --git a/src/test/indirect_calls/jumptable2/gcc/jumptable2.md5sum b/src/test/indirect_calls/jumptable2/gcc/jumptable2.md5sum new file mode 100644 index 000000000..16dbd9c65 --- /dev/null +++ b/src/test/indirect_calls/jumptable2/gcc/jumptable2.md5sum @@ -0,0 +1,4 @@ +2e004774d7aea692b2a018664ba4b564 indirect_calls/jumptable2/gcc/a.out +7e256a130afffbec24ccbaf45dd62c0a indirect_calls/jumptable2/gcc/jumptable2.relf +6fa5c1eaa755eec9ca4d53afd110e195 indirect_calls/jumptable2/gcc/jumptable2.adt +7f3e77791ca62845dd4ca021b9089bdd indirect_calls/jumptable2/gcc/jumptable2.bir diff --git a/src/test/indirect_calls/jumptable2/gcc/jumptable2.relf b/src/test/indirect_calls/jumptable2/gcc/jumptable2.relf deleted file mode 100644 index 20a159708..000000000 --- a/src/test/indirect_calls/jumptable2/gcc/jumptable2.relf +++ /dev/null @@ -1,129 +0,0 @@ - -Relocation section '.rela.dyn' at offset 0x460 contains 11 entries: - Offset Info Type Symbol's Value Symbol's Name + Addend -0000000000010d98 0000000000000403 R_AARCH64_RELATIVE 750 -0000000000010da0 0000000000000403 R_AARCH64_RELATIVE 700 -0000000000010ff0 0000000000000403 R_AARCH64_RELATIVE 7c0 -0000000000011008 0000000000000403 R_AARCH64_RELATIVE 11008 -0000000000011018 0000000000000403 R_AARCH64_RELATIVE 754 -0000000000011020 0000000000000403 R_AARCH64_RELATIVE 778 -0000000000011028 0000000000000403 R_AARCH64_RELATIVE 79c -0000000000010fd8 0000000400000401 R_AARCH64_GLOB_DAT 0000000000000000 _ITM_deregisterTMCloneTable + 0 -0000000000010fe0 0000000500000401 R_AARCH64_GLOB_DAT 0000000000000000 __cxa_finalize@GLIBC_2.17 + 0 -0000000000010fe8 0000000600000401 R_AARCH64_GLOB_DAT 0000000000000000 __gmon_start__ + 0 -0000000000010ff8 0000000800000401 R_AARCH64_GLOB_DAT 0000000000000000 _ITM_registerTMCloneTable + 0 - -Relocation section '.rela.plt' at offset 0x568 contains 4 entries: - Offset Info Type Symbol's Value Symbol's Name + Addend -0000000000010fb0 0000000300000402 R_AARCH64_JUMP_SLOT 0000000000000000 __libc_start_main@GLIBC_2.34 + 0 -0000000000010fb8 0000000500000402 R_AARCH64_JUMP_SLOT 0000000000000000 __cxa_finalize@GLIBC_2.17 + 0 -0000000000010fc0 0000000600000402 R_AARCH64_JUMP_SLOT 0000000000000000 __gmon_start__ + 0 -0000000000010fc8 0000000700000402 R_AARCH64_JUMP_SLOT 0000000000000000 abort@GLIBC_2.17 + 0 - -Symbol table '.dynsym' contains 9 entries: - Num: Value Size Type Bind Vis Ndx Name - 0: 0000000000000000 0 NOTYPE LOCAL DEFAULT UND - 1: 00000000000005c8 0 SECTION LOCAL DEFAULT 11 .init - 2: 0000000000011000 0 SECTION LOCAL DEFAULT 22 .data - 3: 0000000000000000 0 FUNC GLOBAL DEFAULT UND __libc_start_main@GLIBC_2.34 (2) - 4: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_deregisterTMCloneTable - 5: 0000000000000000 0 FUNC WEAK DEFAULT UND __cxa_finalize@GLIBC_2.17 (3) - 6: 0000000000000000 0 NOTYPE WEAK DEFAULT UND __gmon_start__ - 7: 0000000000000000 0 FUNC GLOBAL DEFAULT UND abort@GLIBC_2.17 (3) - 8: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_registerTMCloneTable - -Symbol table '.symtab' contains 93 entries: - Num: Value Size Type Bind Vis Ndx Name - 0: 0000000000000000 0 NOTYPE LOCAL DEFAULT UND - 1: 0000000000000238 0 SECTION LOCAL DEFAULT 1 .interp - 2: 0000000000000254 0 SECTION LOCAL DEFAULT 2 .note.gnu.build-id - 3: 0000000000000278 0 SECTION LOCAL DEFAULT 3 .note.ABI-tag - 4: 0000000000000298 0 SECTION LOCAL DEFAULT 4 .gnu.hash - 5: 00000000000002b8 0 SECTION LOCAL DEFAULT 5 .dynsym - 6: 0000000000000390 0 SECTION LOCAL DEFAULT 6 .dynstr - 7: 000000000000041e 0 SECTION LOCAL DEFAULT 7 .gnu.version - 8: 0000000000000430 0 SECTION LOCAL DEFAULT 8 .gnu.version_r - 9: 0000000000000460 0 SECTION LOCAL DEFAULT 9 .rela.dyn - 10: 0000000000000568 0 SECTION LOCAL DEFAULT 10 .rela.plt - 11: 00000000000005c8 0 SECTION LOCAL DEFAULT 11 .init - 12: 00000000000005e0 0 SECTION LOCAL DEFAULT 12 .plt - 13: 0000000000000640 0 SECTION LOCAL DEFAULT 13 .text - 14: 000000000000080c 0 SECTION LOCAL DEFAULT 14 .fini - 15: 0000000000000820 0 SECTION LOCAL DEFAULT 15 .rodata - 16: 0000000000000824 0 SECTION LOCAL DEFAULT 16 .eh_frame_hdr - 17: 0000000000000878 0 SECTION LOCAL DEFAULT 17 .eh_frame - 18: 0000000000010d98 0 SECTION LOCAL DEFAULT 18 .init_array - 19: 0000000000010da0 0 SECTION LOCAL DEFAULT 19 .fini_array - 20: 0000000000010da8 0 SECTION LOCAL DEFAULT 20 .dynamic - 21: 0000000000010f98 0 SECTION LOCAL DEFAULT 21 .got - 22: 0000000000011000 0 SECTION LOCAL DEFAULT 22 .data - 23: 0000000000011030 0 SECTION LOCAL DEFAULT 23 .bss - 24: 0000000000000000 0 SECTION LOCAL DEFAULT 24 .comment - 25: 0000000000000000 0 FILE LOCAL DEFAULT ABS Scrt1.o - 26: 0000000000000278 0 NOTYPE LOCAL DEFAULT 3 $d - 27: 0000000000000278 32 OBJECT LOCAL DEFAULT 3 __abi_tag - 28: 0000000000000640 0 NOTYPE LOCAL DEFAULT 13 $x - 29: 000000000000088c 0 NOTYPE LOCAL DEFAULT 17 $d - 30: 0000000000000820 0 NOTYPE LOCAL DEFAULT 15 $d - 31: 0000000000000000 0 FILE LOCAL DEFAULT ABS crti.o - 32: 0000000000000674 0 NOTYPE LOCAL DEFAULT 13 $x - 33: 0000000000000674 20 FUNC LOCAL DEFAULT 13 call_weak_fn - 34: 00000000000005c8 0 NOTYPE LOCAL DEFAULT 11 $x - 35: 000000000000080c 0 NOTYPE LOCAL DEFAULT 14 $x - 36: 0000000000000000 0 FILE LOCAL DEFAULT ABS crtn.o - 37: 00000000000005d8 0 NOTYPE LOCAL DEFAULT 11 $x - 38: 0000000000000818 0 NOTYPE LOCAL DEFAULT 14 $x - 39: 0000000000000000 0 FILE LOCAL DEFAULT ABS crtstuff.c - 40: 0000000000000690 0 NOTYPE LOCAL DEFAULT 13 $x - 41: 0000000000000690 0 FUNC LOCAL DEFAULT 13 deregister_tm_clones - 42: 00000000000006c0 0 FUNC LOCAL DEFAULT 13 register_tm_clones - 43: 0000000000011008 0 NOTYPE LOCAL DEFAULT 22 $d - 44: 0000000000000700 0 FUNC LOCAL DEFAULT 13 __do_global_dtors_aux - 45: 0000000000011030 1 OBJECT LOCAL DEFAULT 23 completed.0 - 46: 0000000000010da0 0 NOTYPE LOCAL DEFAULT 19 $d - 47: 0000000000010da0 0 OBJECT LOCAL DEFAULT 19 __do_global_dtors_aux_fini_array_entry - 48: 0000000000000750 0 FUNC LOCAL DEFAULT 13 frame_dummy - 49: 0000000000010d98 0 NOTYPE LOCAL DEFAULT 18 $d - 50: 0000000000010d98 0 OBJECT LOCAL DEFAULT 18 __frame_dummy_init_array_entry - 51: 00000000000008a0 0 NOTYPE LOCAL DEFAULT 17 $d - 52: 0000000000011030 0 NOTYPE LOCAL DEFAULT 23 $d - 53: 0000000000000000 0 FILE LOCAL DEFAULT ABS jumptable2.c - 54: 0000000000011010 0 NOTYPE LOCAL DEFAULT 22 $d - 55: 0000000000000754 0 NOTYPE LOCAL DEFAULT 13 $x - 56: 0000000000011018 0 NOTYPE LOCAL DEFAULT 22 $d - 57: 0000000000000900 0 NOTYPE LOCAL DEFAULT 17 $d - 58: 0000000000000000 0 FILE LOCAL DEFAULT ABS crtstuff.c - 59: 000000000000095c 0 NOTYPE LOCAL DEFAULT 17 $d - 60: 000000000000095c 0 OBJECT LOCAL DEFAULT 17 __FRAME_END__ - 61: 0000000000000000 0 FILE LOCAL DEFAULT ABS - 62: 0000000000010da8 0 OBJECT LOCAL DEFAULT ABS _DYNAMIC - 63: 0000000000000824 0 NOTYPE LOCAL DEFAULT 16 __GNU_EH_FRAME_HDR - 64: 0000000000010fd0 0 OBJECT LOCAL DEFAULT ABS _GLOBAL_OFFSET_TABLE_ - 65: 00000000000005e0 0 NOTYPE LOCAL DEFAULT 12 $x - 66: 0000000000000000 0 FUNC GLOBAL DEFAULT UND __libc_start_main@GLIBC_2.34 - 67: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_deregisterTMCloneTable - 68: 0000000000011000 0 NOTYPE WEAK DEFAULT 22 data_start - 69: 0000000000011030 0 NOTYPE GLOBAL DEFAULT 23 __bss_start__ - 70: 0000000000000000 0 FUNC WEAK DEFAULT UND __cxa_finalize@GLIBC_2.17 - 71: 0000000000011038 0 NOTYPE GLOBAL DEFAULT 23 _bss_end__ - 72: 0000000000011030 0 NOTYPE GLOBAL DEFAULT 22 _edata - 73: 0000000000011010 4 OBJECT GLOBAL DEFAULT 22 x - 74: 000000000000080c 0 FUNC GLOBAL HIDDEN 14 _fini - 75: 0000000000011038 0 NOTYPE GLOBAL DEFAULT 23 __bss_end__ - 76: 0000000000011000 0 NOTYPE GLOBAL DEFAULT 22 __data_start - 77: 0000000000000000 0 NOTYPE WEAK DEFAULT UND __gmon_start__ - 78: 0000000000011008 0 OBJECT GLOBAL HIDDEN 22 __dso_handle - 79: 0000000000000000 0 FUNC GLOBAL DEFAULT UND abort@GLIBC_2.17 - 80: 0000000000000820 4 OBJECT GLOBAL DEFAULT 15 _IO_stdin_used - 81: 0000000000000754 36 FUNC GLOBAL DEFAULT 13 add_two - 82: 0000000000011038 0 NOTYPE GLOBAL DEFAULT 23 _end - 83: 0000000000000640 52 FUNC GLOBAL DEFAULT 13 _start - 84: 0000000000011038 0 NOTYPE GLOBAL DEFAULT 23 __end__ - 85: 0000000000000778 36 FUNC GLOBAL DEFAULT 13 add_six - 86: 0000000000011030 0 NOTYPE GLOBAL DEFAULT 23 __bss_start - 87: 00000000000007c0 76 FUNC GLOBAL DEFAULT 13 main - 88: 0000000000011030 0 OBJECT GLOBAL HIDDEN 22 __TMC_END__ - 89: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_registerTMCloneTable - 90: 0000000000011018 24 OBJECT GLOBAL DEFAULT 22 jump_table - 91: 00000000000005c8 0 FUNC GLOBAL HIDDEN 11 _init - 92: 000000000000079c 36 FUNC GLOBAL DEFAULT 13 sub_seven diff --git a/src/test/indirect_calls/jumptable2/gcc_O2/jumptable2.adt b/src/test/indirect_calls/jumptable2/gcc_O2/jumptable2.adt deleted file mode 100644 index a98aa5160..000000000 --- a/src/test/indirect_calls/jumptable2/gcc_O2/jumptable2.adt +++ /dev/null @@ -1,610 +0,0 @@ -Project(Attrs([Attr("filename","\"gcc_O2/jumptable2.out\""), -Attr("image-specification","(declare abi (name str))\n(declare arch (name str))\n(declare base-address (addr int))\n(declare bias (off int))\n(declare bits (size int))\n(declare code-region (addr int) (size int) (off int))\n(declare code-start (addr int))\n(declare entry-point (addr int))\n(declare external-reference (addr int) (name str))\n(declare format (name str))\n(declare is-executable (flag bool))\n(declare is-little-endian (flag bool))\n(declare llvm:base-address (addr int))\n(declare llvm:code-entry (name str) (off int) (size int))\n(declare llvm:coff-import-library (name str))\n(declare llvm:coff-virtual-section-header (name str) (addr int) (size int))\n(declare llvm:elf-program-header (name str) (off int) (size int))\n(declare llvm:elf-program-header-flags (name str) (ld bool) (r bool) \n (w bool) (x bool))\n(declare llvm:elf-virtual-program-header (name str) (addr int) (size int))\n(declare llvm:entry-point (addr int))\n(declare llvm:macho-symbol (name str) (value int))\n(declare llvm:name-reference (at int) (name str))\n(declare llvm:relocation (at int) (addr int))\n(declare llvm:section-entry (name str) (addr int) (size int) (off int))\n(declare llvm:section-flags (name str) (r bool) (w bool) (x bool))\n(declare llvm:segment-command (name str) (off int) (size int))\n(declare llvm:segment-command-flags (name str) (r bool) (w bool) (x bool))\n(declare llvm:symbol-entry (name str) (addr int) (size int) (off int)\n (value int))\n(declare llvm:virtual-segment-command (name str) (addr int) (size int))\n(declare mapped (addr int) (size int) (off int))\n(declare named-region (addr int) (size int) (name str))\n(declare named-symbol (addr int) (name str))\n(declare require (name str))\n(declare section (addr int) (size int))\n(declare segment (addr int) (size int) (r bool) (w bool) (x bool))\n(declare subarch (name str))\n(declare symbol-chunk (addr int) (size int) (root int))\n(declare symbol-value (addr int) (value int))\n(declare system (name str))\n(declare vendor (name str))\n\n(abi unknown)\n(arch aarch64)\n(base-address 0)\n(bias 0)\n(bits 64)\n(code-region 2020 20 2020)\n(code-region 1600 420 1600)\n(code-region 1504 96 1504)\n(code-region 1480 24 1480)\n(code-start 1716)\n(code-start 1952)\n(code-start 1664)\n(code-start 1972)\n(code-start 1600)\n(code-start 2000)\n(entry-point 1664)\n(external-reference 69592 _ITM_deregisterTMCloneTable)\n(external-reference 69600 __cxa_finalize)\n(external-reference 69608 __gmon_start__)\n(external-reference 69624 _ITM_registerTMCloneTable)\n(external-reference 69552 __libc_start_main)\n(external-reference 69560 __cxa_finalize)\n(external-reference 69568 __gmon_start__)\n(external-reference 69576 abort)\n(format elf)\n(is-executable true)\n(is-little-endian true)\n(llvm:base-address 0)\n(llvm:code-entry abort 0 0)\n(llvm:code-entry __cxa_finalize 0 0)\n(llvm:code-entry __libc_start_main 0 0)\n(llvm:code-entry sub_seven 2000 20)\n(llvm:code-entry _init 1480 0)\n(llvm:code-entry main 1600 60)\n(llvm:code-entry add_six 1972 20)\n(llvm:code-entry _start 1664 52)\n(llvm:code-entry add_two 1952 20)\n(llvm:code-entry abort@GLIBC_2.17 0 0)\n(llvm:code-entry _fini 2020 0)\n(llvm:code-entry __cxa_finalize@GLIBC_2.17 0 0)\n(llvm:code-entry __libc_start_main@GLIBC_2.34 0 0)\n(llvm:code-entry frame_dummy 1936 0)\n(llvm:code-entry __do_global_dtors_aux 1856 0)\n(llvm:code-entry register_tm_clones 1792 0)\n(llvm:code-entry deregister_tm_clones 1744 0)\n(llvm:code-entry call_weak_fn 1716 20)\n(llvm:code-entry .fini 2020 20)\n(llvm:code-entry .text 1600 420)\n(llvm:code-entry .plt 1504 96)\n(llvm:code-entry .init 1480 24)\n(llvm:elf-program-header 08 3480 616)\n(llvm:elf-program-header 07 0 0)\n(llvm:elf-program-header 06 2044 84)\n(llvm:elf-program-header 05 596 68)\n(llvm:elf-program-header 04 3496 496)\n(llvm:elf-program-header 03 3480 664)\n(llvm:elf-program-header 02 0 2364)\n(llvm:elf-program-header 01 568 27)\n(llvm:elf-program-header 00 64 504)\n(llvm:elf-program-header-flags 08 false true false false)\n(llvm:elf-program-header-flags 07 false true true false)\n(llvm:elf-program-header-flags 06 false true false false)\n(llvm:elf-program-header-flags 05 false true false false)\n(llvm:elf-program-header-flags 04 false true true false)\n(llvm:elf-program-header-flags 03 true true true false)\n(llvm:elf-program-header-flags 02 true true false true)\n(llvm:elf-program-header-flags 01 false true false false)\n(llvm:elf-program-header-flags 00 false true false false)\n(llvm:elf-virtual-program-header 08 69016 616)\n(llvm:elf-virtual-program-header 07 0 0)\n(llvm:elf-virtual-program-header 06 2044 84)\n(llvm:elf-virtual-program-header 05 596 68)\n(llvm:elf-virtual-program-header 04 69032 496)\n(llvm:elf-virtual-program-header 03 69016 672)\n(llvm:elf-virtual-program-header 02 0 2364)\n(llvm:elf-virtual-program-header 01 568 27)\n(llvm:elf-virtual-program-header 00 64 504)\n(llvm:entry-point 1664)\n(llvm:name-reference 69576 abort)\n(llvm:name-reference 69568 __gmon_start__)\n(llvm:name-reference 69560 __cxa_finalize)\n(llvm:name-reference 69552 __libc_start_main)\n(llvm:name-reference 69624 _ITM_registerTMCloneTable)\n(llvm:name-reference 69608 __gmon_start__)\n(llvm:name-reference 69600 __cxa_finalize)\n(llvm:name-reference 69592 _ITM_deregisterTMCloneTable)\n(llvm:section-entry .shstrtab 0 250 7031)\n(llvm:section-entry .strtab 0 583 6448)\n(llvm:section-entry .symtab 0 2256 4192)\n(llvm:section-entry .comment 0 43 4144)\n(llvm:section-entry .bss 69680 8 4144)\n(llvm:section-entry .data 69632 48 4096)\n(llvm:section-entry .got 69528 104 3992)\n(llvm:section-entry .dynamic 69032 496 3496)\n(llvm:section-entry .fini_array 69024 8 3488)\n(llvm:section-entry .init_array 69016 8 3480)\n(llvm:section-entry .eh_frame 2128 236 2128)\n(llvm:section-entry .eh_frame_hdr 2044 84 2044)\n(llvm:section-entry .rodata 2040 4 2040)\n(llvm:section-entry .fini 2020 20 2020)\n(llvm:section-entry .text 1600 420 1600)\n(llvm:section-entry .plt 1504 96 1504)\n(llvm:section-entry .init 1480 24 1480)\n(llvm:section-entry .rela.plt 1384 96 1384)\n(llvm:section-entry .rela.dyn 1120 264 1120)\n(llvm:section-entry .gnu.version_r 1072 48 1072)\n(llvm:section-entry .gnu.version 1054 18 1054)\n(llvm:section-entry .dynstr 912 141 912)\n(llvm:section-entry .dynsym 696 216 696)\n(llvm:section-entry .gnu.hash 664 28 664)\n(llvm:section-entry .note.ABI-tag 632 32 632)\n(llvm:section-entry .note.gnu.build-id 596 36 596)\n(llvm:section-entry .interp 568 27 568)\n(llvm:section-flags .shstrtab true false false)\n(llvm:section-flags .strtab true false false)\n(llvm:section-flags .symtab true false false)\n(llvm:section-flags .comment true false false)\n(llvm:section-flags .bss true true false)\n(llvm:section-flags .data true true false)\n(llvm:section-flags .got true true false)\n(llvm:section-flags .dynamic true true false)\n(llvm:section-flags .fini_array true true false)\n(llvm:section-flags .init_array true true false)\n(llvm:section-flags .eh_frame true false false)\n(llvm:section-flags .eh_frame_hdr true false false)\n(llvm:section-flags .rodata true false false)\n(llvm:section-flags .fini true false true)\n(llvm:section-flags .text true false true)\n(llvm:section-flags .plt true false true)\n(llvm:section-flags .init true false true)\n(llvm:section-flags .rela.plt true false false)\n(llvm:section-flags .rela.dyn true false false)\n(llvm:section-flags .gnu.version_r true false false)\n(llvm:section-flags .gnu.version true false false)\n(llvm:section-flags .dynstr true false false)\n(llvm:section-flags .dynsym true false false)\n(llvm:section-flags .gnu.hash true false false)\n(llvm:section-flags .note.ABI-tag true false false)\n(llvm:section-flags .note.gnu.build-id true false false)\n(llvm:section-flags .interp true false false)\n(llvm:symbol-entry abort 0 0 0 0)\n(llvm:symbol-entry __cxa_finalize 0 0 0 0)\n(llvm:symbol-entry __libc_start_main 0 0 0 0)\n(llvm:symbol-entry sub_seven 2000 20 2000 2000)\n(llvm:symbol-entry _init 1480 0 1480 1480)\n(llvm:symbol-entry main 1600 60 1600 1600)\n(llvm:symbol-entry add_six 1972 20 1972 1972)\n(llvm:symbol-entry _start 1664 52 1664 1664)\n(llvm:symbol-entry add_two 1952 20 1952 1952)\n(llvm:symbol-entry abort@GLIBC_2.17 0 0 0 0)\n(llvm:symbol-entry _fini 2020 0 2020 2020)\n(llvm:symbol-entry __cxa_finalize@GLIBC_2.17 0 0 0 0)\n(llvm:symbol-entry __libc_start_main@GLIBC_2.34 0 0 0 0)\n(llvm:symbol-entry frame_dummy 1936 0 1936 1936)\n(llvm:symbol-entry __do_global_dtors_aux 1856 0 1856 1856)\n(llvm:symbol-entry register_tm_clones 1792 0 1792 1792)\n(llvm:symbol-entry deregister_tm_clones 1744 0 1744 1744)\n(llvm:symbol-entry call_weak_fn 1716 20 1716 1716)\n(mapped 0 2364 0)\n(mapped 69016 664 3480)\n(named-region 0 2364 02)\n(named-region 69016 672 03)\n(named-region 568 27 .interp)\n(named-region 596 36 .note.gnu.build-id)\n(named-region 632 32 .note.ABI-tag)\n(named-region 664 28 .gnu.hash)\n(named-region 696 216 .dynsym)\n(named-region 912 141 .dynstr)\n(named-region 1054 18 .gnu.version)\n(named-region 1072 48 .gnu.version_r)\n(named-region 1120 264 .rela.dyn)\n(named-region 1384 96 .rela.plt)\n(named-region 1480 24 .init)\n(named-region 1504 96 .plt)\n(named-region 1600 420 .text)\n(named-region 2020 20 .fini)\n(named-region 2040 4 .rodata)\n(named-region 2044 84 .eh_frame_hdr)\n(named-region 2128 236 .eh_frame)\n(named-region 69016 8 .init_array)\n(named-region 69024 8 .fini_array)\n(named-region 69032 496 .dynamic)\n(named-region 69528 104 .got)\n(named-region 69632 48 .data)\n(named-region 69680 8 .bss)\n(named-region 0 43 .comment)\n(named-region 0 2256 .symtab)\n(named-region 0 583 .strtab)\n(named-region 0 250 .shstrtab)\n(named-symbol 1716 call_weak_fn)\n(named-symbol 1744 deregister_tm_clones)\n(named-symbol 1792 register_tm_clones)\n(named-symbol 1856 __do_global_dtors_aux)\n(named-symbol 1936 frame_dummy)\n(named-symbol 0 __libc_start_main@GLIBC_2.34)\n(named-symbol 0 __cxa_finalize@GLIBC_2.17)\n(named-symbol 2020 _fini)\n(named-symbol 0 abort@GLIBC_2.17)\n(named-symbol 1952 add_two)\n(named-symbol 1664 _start)\n(named-symbol 1972 add_six)\n(named-symbol 1600 main)\n(named-symbol 1480 _init)\n(named-symbol 2000 sub_seven)\n(named-symbol 0 __libc_start_main)\n(named-symbol 0 __cxa_finalize)\n(named-symbol 0 abort)\n(require libc.so.6)\n(section 568 27)\n(section 596 36)\n(section 632 32)\n(section 664 28)\n(section 696 216)\n(section 912 141)\n(section 1054 18)\n(section 1072 48)\n(section 1120 264)\n(section 1384 96)\n(section 1480 24)\n(section 1504 96)\n(section 1600 420)\n(section 2020 20)\n(section 2040 4)\n(section 2044 84)\n(section 2128 236)\n(section 69016 8)\n(section 69024 8)\n(section 69032 496)\n(section 69528 104)\n(section 69632 48)\n(section 69680 8)\n(section 0 43)\n(section 0 2256)\n(section 0 583)\n(section 0 250)\n(segment 0 2364 true false true)\n(segment 69016 672 true true false)\n(subarch v8)\n(symbol-chunk 1716 20 1716)\n(symbol-chunk 1952 20 1952)\n(symbol-chunk 1664 52 1664)\n(symbol-chunk 1972 20 1972)\n(symbol-chunk 1600 60 1600)\n(symbol-chunk 2000 20 2000)\n(symbol-value 1716 1716)\n(symbol-value 1744 1744)\n(symbol-value 1792 1792)\n(symbol-value 1856 1856)\n(symbol-value 1936 1936)\n(symbol-value 2020 2020)\n(symbol-value 1952 1952)\n(symbol-value 1664 1664)\n(symbol-value 1972 1972)\n(symbol-value 1600 1600)\n(symbol-value 1480 1480)\n(symbol-value 2000 2000)\n(symbol-value 0 0)\n(system \"\")\n(vendor \"\")\n"), -Attr("abi-name","\"aarch64-linux-gnu-elf\"")]), -Sections([Section(".shstrtab", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x80\x06\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x78\x1c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x38\x00\x09\x00\x40\x00\x1c\x00\x1b\x00\x06\x00\x00\x00\x04\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x04\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x3c\x09\x00\x00\x00\x00\x00\x00\x3c\x09\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x01\x00\x00\x00\x06\x00\x00\x00\x98\x0d\x00\x00\x00\x00\x00\x00\x98\x0d"), -Section(".strtab", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x80\x06\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x78\x1c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x38\x00\x09\x00\x40\x00\x1c\x00\x1b\x00\x06\x00\x00\x00\x04\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x04\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x3c\x09\x00\x00\x00\x00\x00\x00\x3c\x09\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x01\x00\x00\x00\x06\x00\x00\x00\x98\x0d\x00\x00\x00\x00\x00\x00\x98\x0d\x01\x00\x00\x00\x00\x00\x98\x0d\x01\x00\x00\x00\x00\x00\x98\x02\x00\x00\x00\x00\x00\x00\xa0\x02\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x02\x00\x00\x00\x06\x00\x00\x00\xa8\x0d\x00\x00\x00\x00\x00\x00\xa8\x0d\x01\x00\x00\x00\x00\x00\xa8\x0d\x01\x00\x00\x00\x00\x00\xf0\x01\x00\x00\x00\x00\x00\x00\xf0\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x04\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x50\xe5\x74\x64\x04\x00\x00\x00\xfc\x07\x00\x00\x00\x00\x00\x00\xfc\x07\x00\x00\x00\x00\x00\x00\xfc\x07\x00\x00\x00\x00\x00\x00\x54\x00\x00\x00\x00\x00\x00\x00\x54\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x51\xe5\x74\x64\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x52\xe5\x74\x64\x04\x00\x00\x00\x98\x0d\x00\x00\x00\x00\x00\x00\x98\x0d\x01\x00\x00\x00\x00\x00\x98\x0d\x01\x00\x00\x00\x00\x00\x68\x02\x00\x00\x00\x00\x00\x00\x68\x02\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x2f\x6c\x69\x62\x2f\x6c\x64\x2d\x6c\x69\x6e\x75\x78\x2d\x61"), -Section(".symtab", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x80\x06\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x78\x1c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x38\x00\x09\x00\x40\x00\x1c\x00\x1b\x00\x06\x00\x00\x00\x04\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x04\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x3c\x09\x00\x00\x00\x00\x00\x00\x3c\x09\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x01\x00\x00\x00\x06\x00\x00\x00\x98\x0d\x00\x00\x00\x00\x00\x00\x98\x0d\x01\x00\x00\x00\x00\x00\x98\x0d\x01\x00\x00\x00\x00\x00\x98\x02\x00\x00\x00\x00\x00\x00\xa0\x02\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x02\x00\x00\x00\x06\x00\x00\x00\xa8\x0d\x00\x00\x00\x00\x00\x00\xa8\x0d\x01\x00\x00\x00\x00\x00\xa8\x0d\x01\x00\x00\x00\x00\x00\xf0\x01\x00\x00\x00\x00\x00\x00\xf0\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x04\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x50\xe5\x74\x64\x04\x00\x00\x00\xfc\x07\x00\x00\x00\x00\x00\x00\xfc\x07\x00\x00\x00\x00\x00\x00\xfc\x07\x00\x00\x00\x00\x00\x00\x54\x00\x00\x00\x00\x00\x00\x00\x54\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x51\xe5\x74\x64\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x52\xe5\x74\x64\x04\x00\x00\x00\x98\x0d\x00\x00\x00\x00\x00\x00\x98\x0d\x01\x00\x00\x00\x00\x00\x98\x0d\x01\x00\x00\x00\x00\x00\x68\x02\x00\x00\x00\x00\x00\x00\x68\x02\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x2f\x6c\x69\x62\x2f\x6c\x64\x2d\x6c\x69\x6e\x75\x78\x2d\x61\x61\x72\x63\x68\x36\x34\x2e\x73\x6f\x2e\x31\x00\x00\x04\x00\x00\x00\x14\x00\x00\x00\x03\x00\x00\x00\x47\x4e\x55\x00\xe9\x38\xbd\xdc\xaa\xf9\x79\x60\x60\xfe\x03\x53\x6f\x29\x5e\xde\x2e\x4f\x34\xdb\x04\x00\x00\x00\x10\x00\x00\x00\x01\x00\x00\x00\x47\x4e\x55\x00\x00\x00\x00\x00\x03\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x01\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x0b\x00\xc8\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x16\x00\x00\x10\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x48\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x22\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x22\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x73\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5f\x5f\x63\x78\x61\x5f\x66\x69\x6e\x61\x6c\x69\x7a\x65\x00\x5f\x5f\x6c\x69\x62\x63\x5f\x73\x74\x61\x72\x74\x5f\x6d\x61\x69\x6e\x00\x61\x62\x6f\x72\x74\x00\x6c\x69\x62\x63\x2e\x73\x6f\x2e\x36\x00\x47\x4c\x49\x42\x43\x5f\x32\x2e\x31\x37\x00\x47\x4c\x49\x42\x43\x5f\x32\x2e\x33\x34\x00\x5f\x49\x54\x4d\x5f\x64\x65\x72\x65\x67\x69\x73\x74\x65\x72\x54\x4d\x43\x6c\x6f\x6e\x65\x54\x61\x62\x6c\x65\x00\x5f\x5f\x67\x6d\x6f\x6e\x5f\x73\x74\x61\x72\x74\x5f\x5f\x00\x5f\x49\x54\x4d\x5f\x72\x65\x67\x69\x73\x74\x65\x72\x54\x4d\x43\x6c\x6f\x6e\x65\x54\x61\x62\x6c\x65\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x01\x00\x03\x00\x01\x00\x03\x00\x01\x00\x01\x00\x02\x00\x28\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x97\x91\x96\x06\x00\x00\x03\x00\x32\x00\x00\x00\x10\x00\x00\x00\xb4\x91\x96\x06\x00\x00\x02\x00\x3d\x00\x00\x00\x00\x00\x00\x00\x98\x0d\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x90\x07\x00\x00\x00\x00\x00\x00\xa0\x0d\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x40\x07\x00\x00\x00\x00\x00\x00\xf0\x0f\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x40\x06\x00\x00\x00\x00\x00\x00\x08\x10\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x08\x10\x01\x00\x00\x00\x00\x00\x18\x10\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\xa0\x07\x00\x00\x00\x00\x00\x00\x20\x10\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\xb4\x07\x00\x00\x00\x00\x00\x00\x28\x10\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\xd0\x07\x00\x00\x00\x00\x00\x00\xd8\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe0\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe8\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xf8\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xb0\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xb8\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xc0\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xc8\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1f\x20\x03\xd5\xfd\x7b\xbf\xa9\xfd\x03\x00\x91\x38\x00\x00\x94\xfd\x7b\xc1\xa8\xc0\x03\x5f\xd6\xf0\x7b\xbf\xa9\x90\x00\x00\x90\x11\xd6\x47\xf9\x10\xa2\x3e\x91\x20\x02\x1f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x90\x00\x00\x90\x11\xda\x47\xf9\x10\xc2\x3e\x91\x20\x02\x1f\xd6\x90\x00\x00\x90\x11\xde\x47\xf9\x10\xe2\x3e\x91\x20\x02\x1f\xd6\x90\x00\x00\x90\x11\xe2\x47\xf9\x10\x02\x3f\x91\x20\x02\x1f\xd6\x90\x00\x00\x90\x11\xe6\x47\xf9\x10\x22\x3f\x91\x20\x02\x1f\xd6\xfd\x7b\xbe\xa9\x80\x00\x00\xb0\xfd\x03\x00\x91\xf3\x0b\x00\xf9\x13\x60\x00\x91\x00\x0c\x40\xf9\x00\x00\x3f\xd6\x60\x06\x40\xf9\x00\x00\x3f\xd6\x60\x0a\x40\xf9\x00\x00\x3f\xd6\x00\x00\x80\x52\xf3\x0b\x40\xf9\xfd\x7b\xc2\xa8\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1d\x00\x80\xd2\x1e\x00\x80\xd2\xe5\x03\x00\xaa\xe1\x03\x40\xf9\xe2\x23\x00\x91\xe6\x03\x00\x91\x80\x00\x00\x90\x00\xf8\x47\xf9\x03\x00\x80\xd2\x04\x00\x80\xd2\xd5\xff\xff\x97\xe0\xff\xff\x97\x80\x00\x00\x90\x00\xf4\x47\xf9\x40\x00\x00\xb4\xd8\xff\xff\x17\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x80\x00\x00\xb0\x00\xc0\x00\x91\x81\x00\x00\xb0\x21\xc0\x00\x91\x3f\x00\x00\xeb\xc0\x00\x00\x54\x81\x00\x00\x90\x21\xec\x47\xf9\x61\x00\x00\xb4\xf0\x03\x01\xaa\x00\x02\x1f\xd6\xc0\x03\x5f\xd6\x80\x00\x00\xb0\x00\xc0\x00\x91\x81\x00\x00\xb0\x21\xc0\x00\x91\x21\x00\x00\xcb\x22\xfc\x7f\xd3\x41\x0c\x81\x8b\x21\xfc\x41\x93\xc1\x00\x00\xb4\x82\x00\x00\x90\x42\xfc\x47\xf9\x62\x00\x00\xb4\xf0\x03\x02\xaa\x00\x02\x1f\xd6\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\xfd\x7b\xbe\xa9\xfd\x03\x00\x91\xf3\x0b\x00\xf9\x93\x00\x00\xb0\x60\xc2\x40\x39\x40\x01\x00\x35\x80\x00\x00\x90\x00\xf0\x47\xf9\x80\x00\x00\xb4\x80\x00\x00\xb0\x00\x04\x40\xf9\xa9\xff\xff\x97\xd8\xff\xff\x97\x20\x00\x80\x52\x60\xc2\x00\x39\xf3\x0b\x40\xf9\xfd\x7b\xc2\xa8\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\xdc\xff\xff\x17\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x81\x00\x00\xb0\x20\x10\x40\xb9\x00\x08\x00\x11\x20\x10\x00\xb9\xc0\x03\x5f\xd6\x81\x00\x00\xb0\x20\x10\x40\xb9\x00\x18\x00\x11\x20\x10\x00\xb9\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x81\x00\x00\xb0\x20\x10\x40\xb9\x00\x1c\x00\x51\x20\x10\x00\xb9\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\xfd\x7b\xbf\xa9\xfd\x03\x00\x91\xfd\x7b\xc1\xa8\xc0\x03\x5f\xd6\x01\x00\x02\x00\x01\x1b\x03\x3b\x50\x00\x00\x00\x09\x00\x00\x00\x44\xfe\xff\xff\x18\x01\x00\x00\x84\xfe\xff\xff\x68\x00\x00\x00\xd4\xfe\xff\xff\x7c\x00\x00\x00\x04\xff\xff\xff\x90\x00\x00\x00\x44\xff\xff\xff\xa4\x00\x00\x00\x94\xff\xff\xff\xc8\x00\x00\x00\xa4\xff\xff\xff\xdc\x00\x00\x00\xb8\xff\xff\xff\xf0\x00\x00\x00\xd4\xff\xff\xff\x04\x01\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x01\x7a\x52\x00\x04\x78\x1e\x01\x1b\x0c\x1f\x00\x10\x00\x00\x00\x18\x00\x00\x00\x14\xfe\xff\xff\x34\x00\x00\x00\x00\x41\x07\x1e\x10\x00\x00\x00\x2c\x00\x00\x00\x50\xfe\xff\xff\x30\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x40\x00\x00\x00\x6c\xfe\xff\xff\x3c\x00\x00\x00\x00\x00\x00\x00\x20\x00\x00\x00\x54\x00\x00\x00\x98\xfe\xff\xff\x48\x00\x00\x00\x00\x41\x0e\x20\x9d\x04\x9e\x03\x42\x93\x02\x4e\xde\xdd\xd3\x0e\x00\x00\x00\x00\x10\x00\x00\x00\x78\x00\x00\x00\xc4\xfe\xff\xff"), -Section(".comment", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x80\x06\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x78\x1c\x00"), -Section(".interp", 0x238, "\x2f\x6c\x69\x62\x2f\x6c\x64\x2d\x6c\x69\x6e\x75\x78\x2d\x61\x61\x72\x63\x68\x36\x34\x2e\x73\x6f\x2e\x31\x00"), -Section(".note.gnu.build-id", 0x254, "\x04\x00\x00\x00\x14\x00\x00\x00\x03\x00\x00\x00\x47\x4e\x55\x00\xe9\x38\xbd\xdc\xaa\xf9\x79\x60\x60\xfe\x03\x53\x6f\x29\x5e\xde\x2e\x4f\x34\xdb"), -Section(".note.ABI-tag", 0x278, "\x04\x00\x00\x00\x10\x00\x00\x00\x01\x00\x00\x00\x47\x4e\x55\x00\x00\x00\x00\x00\x03\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00"), -Section(".gnu.hash", 0x298, "\x01\x00\x00\x00\x01\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".dynsym", 0x2B8, "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x0b\x00\xc8\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x16\x00\x00\x10\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x48\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x22\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x22\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x73\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".dynstr", 0x390, "\x00\x5f\x5f\x63\x78\x61\x5f\x66\x69\x6e\x61\x6c\x69\x7a\x65\x00\x5f\x5f\x6c\x69\x62\x63\x5f\x73\x74\x61\x72\x74\x5f\x6d\x61\x69\x6e\x00\x61\x62\x6f\x72\x74\x00\x6c\x69\x62\x63\x2e\x73\x6f\x2e\x36\x00\x47\x4c\x49\x42\x43\x5f\x32\x2e\x31\x37\x00\x47\x4c\x49\x42\x43\x5f\x32\x2e\x33\x34\x00\x5f\x49\x54\x4d\x5f\x64\x65\x72\x65\x67\x69\x73\x74\x65\x72\x54\x4d\x43\x6c\x6f\x6e\x65\x54\x61\x62\x6c\x65\x00\x5f\x5f\x67\x6d\x6f\x6e\x5f\x73\x74\x61\x72\x74\x5f\x5f\x00\x5f\x49\x54\x4d\x5f\x72\x65\x67\x69\x73\x74\x65\x72\x54\x4d\x43\x6c\x6f\x6e\x65\x54\x61\x62\x6c\x65\x00"), -Section(".gnu.version", 0x41E, "\x00\x00\x00\x00\x00\x00\x02\x00\x01\x00\x03\x00\x01\x00\x03\x00\x01\x00"), -Section(".gnu.version_r", 0x430, "\x01\x00\x02\x00\x28\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x97\x91\x96\x06\x00\x00\x03\x00\x32\x00\x00\x00\x10\x00\x00\x00\xb4\x91\x96\x06\x00\x00\x02\x00\x3d\x00\x00\x00\x00\x00\x00\x00"), -Section(".rela.dyn", 0x460, "\x98\x0d\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x90\x07\x00\x00\x00\x00\x00\x00\xa0\x0d\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x40\x07\x00\x00\x00\x00\x00\x00\xf0\x0f\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x40\x06\x00\x00\x00\x00\x00\x00\x08\x10\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x08\x10\x01\x00\x00\x00\x00\x00\x18\x10\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\xa0\x07\x00\x00\x00\x00\x00\x00\x20\x10\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\xb4\x07\x00\x00\x00\x00\x00\x00\x28\x10\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\xd0\x07\x00\x00\x00\x00\x00\x00\xd8\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe0\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe8\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xf8\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".rela.plt", 0x568, "\xb0\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xb8\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xc0\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xc8\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".init", 0x5C8, "\x1f\x20\x03\xd5\xfd\x7b\xbf\xa9\xfd\x03\x00\x91\x38\x00\x00\x94\xfd\x7b\xc1\xa8\xc0\x03\x5f\xd6"), -Section(".plt", 0x5E0, "\xf0\x7b\xbf\xa9\x90\x00\x00\x90\x11\xd6\x47\xf9\x10\xa2\x3e\x91\x20\x02\x1f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x90\x00\x00\x90\x11\xda\x47\xf9\x10\xc2\x3e\x91\x20\x02\x1f\xd6\x90\x00\x00\x90\x11\xde\x47\xf9\x10\xe2\x3e\x91\x20\x02\x1f\xd6\x90\x00\x00\x90\x11\xe2\x47\xf9\x10\x02\x3f\x91\x20\x02\x1f\xd6\x90\x00\x00\x90\x11\xe6\x47\xf9\x10\x22\x3f\x91\x20\x02\x1f\xd6"), -Section(".text", 0x640, "\xfd\x7b\xbe\xa9\x80\x00\x00\xb0\xfd\x03\x00\x91\xf3\x0b\x00\xf9\x13\x60\x00\x91\x00\x0c\x40\xf9\x00\x00\x3f\xd6\x60\x06\x40\xf9\x00\x00\x3f\xd6\x60\x0a\x40\xf9\x00\x00\x3f\xd6\x00\x00\x80\x52\xf3\x0b\x40\xf9\xfd\x7b\xc2\xa8\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1d\x00\x80\xd2\x1e\x00\x80\xd2\xe5\x03\x00\xaa\xe1\x03\x40\xf9\xe2\x23\x00\x91\xe6\x03\x00\x91\x80\x00\x00\x90\x00\xf8\x47\xf9\x03\x00\x80\xd2\x04\x00\x80\xd2\xd5\xff\xff\x97\xe0\xff\xff\x97\x80\x00\x00\x90\x00\xf4\x47\xf9\x40\x00\x00\xb4\xd8\xff\xff\x17\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x80\x00\x00\xb0\x00\xc0\x00\x91\x81\x00\x00\xb0\x21\xc0\x00\x91\x3f\x00\x00\xeb\xc0\x00\x00\x54\x81\x00\x00\x90\x21\xec\x47\xf9\x61\x00\x00\xb4\xf0\x03\x01\xaa\x00\x02\x1f\xd6\xc0\x03\x5f\xd6\x80\x00\x00\xb0\x00\xc0\x00\x91\x81\x00\x00\xb0\x21\xc0\x00\x91\x21\x00\x00\xcb\x22\xfc\x7f\xd3\x41\x0c\x81\x8b\x21\xfc\x41\x93\xc1\x00\x00\xb4\x82\x00\x00\x90\x42\xfc\x47\xf9\x62\x00\x00\xb4\xf0\x03\x02\xaa\x00\x02\x1f\xd6\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\xfd\x7b\xbe\xa9\xfd\x03\x00\x91\xf3\x0b\x00\xf9\x93\x00\x00\xb0\x60\xc2\x40\x39\x40\x01\x00\x35\x80\x00\x00\x90\x00\xf0\x47\xf9\x80\x00\x00\xb4\x80\x00\x00\xb0\x00\x04\x40\xf9\xa9\xff\xff\x97\xd8\xff\xff\x97\x20\x00\x80\x52\x60\xc2\x00\x39\xf3\x0b\x40\xf9\xfd\x7b\xc2\xa8\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\xdc\xff\xff\x17\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x81\x00\x00\xb0\x20\x10\x40\xb9\x00\x08\x00\x11\x20\x10\x00\xb9\xc0\x03\x5f\xd6\x81\x00\x00\xb0\x20\x10\x40\xb9\x00\x18\x00\x11\x20\x10\x00\xb9\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x81\x00\x00\xb0\x20\x10\x40\xb9\x00\x1c\x00\x51\x20\x10\x00\xb9\xc0\x03\x5f\xd6"), -Section(".fini", 0x7E4, "\x1f\x20\x03\xd5\xfd\x7b\xbf\xa9\xfd\x03\x00\x91\xfd\x7b\xc1\xa8\xc0\x03\x5f\xd6"), -Section(".rodata", 0x7F8, "\x01\x00\x02\x00"), -Section(".eh_frame_hdr", 0x7FC, "\x01\x1b\x03\x3b\x50\x00\x00\x00\x09\x00\x00\x00\x44\xfe\xff\xff\x18\x01\x00\x00\x84\xfe\xff\xff\x68\x00\x00\x00\xd4\xfe\xff\xff\x7c\x00\x00\x00\x04\xff\xff\xff\x90\x00\x00\x00\x44\xff\xff\xff\xa4\x00\x00\x00\x94\xff\xff\xff\xc8\x00\x00\x00\xa4\xff\xff\xff\xdc\x00\x00\x00\xb8\xff\xff\xff\xf0\x00\x00\x00\xd4\xff\xff\xff\x04\x01\x00\x00"), -Section(".eh_frame", 0x850, "\x10\x00\x00\x00\x00\x00\x00\x00\x01\x7a\x52\x00\x04\x78\x1e\x01\x1b\x0c\x1f\x00\x10\x00\x00\x00\x18\x00\x00\x00\x14\xfe\xff\xff\x34\x00\x00\x00\x00\x41\x07\x1e\x10\x00\x00\x00\x2c\x00\x00\x00\x50\xfe\xff\xff\x30\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x40\x00\x00\x00\x6c\xfe\xff\xff\x3c\x00\x00\x00\x00\x00\x00\x00\x20\x00\x00\x00\x54\x00\x00\x00\x98\xfe\xff\xff\x48\x00\x00\x00\x00\x41\x0e\x20\x9d\x04\x9e\x03\x42\x93\x02\x4e\xde\xdd\xd3\x0e\x00\x00\x00\x00\x10\x00\x00\x00\x78\x00\x00\x00\xc4\xfe\xff\xff\x04\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x8c\x00\x00\x00\xc0\xfe\xff\xff\x14\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\xa0\x00\x00\x00\xc0\xfe\xff\xff\x14\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\xb4\x00\x00\x00\xc8\xfe\xff\xff\x14\x00\x00\x00\x00\x00\x00\x00\x20\x00\x00\x00\xc8\x00\x00\x00\x24\xfd\xff\xff\x3c\x00\x00\x00\x00\x41\x0e\x20\x9d\x04\x9e\x03\x43\x93\x02\x4a\xde\xdd\xd3\x0e\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".fini_array", 0x10DA0, "\x40\x07\x00\x00\x00\x00\x00\x00"), -Section(".dynamic", 0x10DA8, "\x01\x00\x00\x00\x00\x00\x00\x00\x28\x00\x00\x00\x00\x00\x00\x00\x0c\x00\x00\x00\x00\x00\x00\x00\xc8\x05\x00\x00\x00\x00\x00\x00\x0d\x00\x00\x00\x00\x00\x00\x00\xe4\x07\x00\x00\x00\x00\x00\x00\x19\x00\x00\x00\x00\x00\x00\x00\x98\x0d\x01\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x1a\x00\x00\x00\x00\x00\x00\x00\xa0\x0d\x01\x00\x00\x00\x00\x00\x1c\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\xf5\xfe\xff\x6f\x00\x00\x00\x00\x98\x02\x00\x00\x00\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x90\x03\x00\x00\x00\x00\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\xb8\x02\x00\x00\x00\x00\x00\x00\x0a\x00\x00\x00\x00\x00\x00\x00\x8d\x00\x00\x00\x00\x00\x00\x00\x0b\x00\x00\x00\x00\x00\x00\x00\x18\x00\x00\x00\x00\x00\x00\x00\x15\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x98\x0f\x01\x00\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x60\x00\x00\x00\x00\x00\x00\x00\x14\x00\x00\x00\x00\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x17\x00\x00\x00\x00\x00\x00\x00\x68\x05\x00\x00\x00\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x60\x04\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x08\x01\x00\x00\x00\x00\x00\x00\x09\x00\x00\x00\x00\x00\x00\x00\x18\x00\x00\x00\x00\x00\x00\x00\x1e\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\xfb\xff\xff\x6f\x00\x00\x00\x00\x01\x00\x00\x08\x00\x00\x00\x00\xfe\xff\xff\x6f\x00\x00\x00\x00\x30\x04\x00\x00\x00\x00\x00\x00\xff\xff\xff\x6f\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\xf0\xff\xff\x6f\x00\x00\x00\x00\x1e\x04\x00\x00\x00\x00\x00\x00\xf9\xff\xff\x6f\x00\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".got", 0x10F98, "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe0\x05\x00\x00\x00\x00\x00\x00\xe0\x05\x00\x00\x00\x00\x00\x00\xe0\x05\x00\x00\x00\x00\x00\x00\xe0\x05\x00\x00\x00\x00\x00\x00\xa8\x0d\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".data", 0x11000, "\x00\x00\x00\x00\x00\x00\x00\x00\x08\x10\x01\x00\x00\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\xa0\x07\x00\x00\x00\x00\x00\x00\xb4\x07\x00\x00\x00\x00\x00\x00\xd0\x07\x00\x00\x00\x00\x00\x00"), -Section(".init_array", 0x10D98, "\x90\x07\x00\x00\x00\x00\x00\x00")]), -Memmap([Annotation(Region(0x0,0x93B), Attr("segment","02 0 2364")), -Annotation(Region(0x640,0x67B), Attr("symbol","\"main\"")), -Annotation(Region(0x0,0xF9), Attr("section","\".shstrtab\"")), -Annotation(Region(0x0,0x246), Attr("section","\".strtab\"")), -Annotation(Region(0x0,0x8CF), Attr("section","\".symtab\"")), -Annotation(Region(0x0,0x2A), Attr("section","\".comment\"")), -Annotation(Region(0x238,0x252), Attr("section","\".interp\"")), -Annotation(Region(0x254,0x277), Attr("section","\".note.gnu.build-id\"")), -Annotation(Region(0x278,0x297), Attr("section","\".note.ABI-tag\"")), -Annotation(Region(0x298,0x2B3), Attr("section","\".gnu.hash\"")), -Annotation(Region(0x2B8,0x38F), Attr("section","\".dynsym\"")), -Annotation(Region(0x390,0x41C), Attr("section","\".dynstr\"")), -Annotation(Region(0x41E,0x42F), Attr("section","\".gnu.version\"")), -Annotation(Region(0x430,0x45F), Attr("section","\".gnu.version_r\"")), -Annotation(Region(0x460,0x567), Attr("section","\".rela.dyn\"")), -Annotation(Region(0x568,0x5C7), Attr("section","\".rela.plt\"")), -Annotation(Region(0x5C8,0x5DF), Attr("section","\".init\"")), -Annotation(Region(0x5E0,0x63F), Attr("section","\".plt\"")), -Annotation(Region(0x5C8,0x5DF), Attr("code-region","()")), -Annotation(Region(0x5E0,0x63F), Attr("code-region","()")), -Annotation(Region(0x640,0x67B), Attr("symbol-info","main 0x640 60")), -Annotation(Region(0x680,0x6B3), Attr("symbol","\"_start\"")), -Annotation(Region(0x680,0x6B3), Attr("symbol-info","_start 0x680 52")), -Annotation(Region(0x6B4,0x6C7), Attr("symbol","\"call_weak_fn\"")), -Annotation(Region(0x6B4,0x6C7), Attr("symbol-info","call_weak_fn 0x6B4 20")), -Annotation(Region(0x7A0,0x7B3), Attr("symbol","\"add_two\"")), -Annotation(Region(0x7A0,0x7B3), Attr("symbol-info","add_two 0x7A0 20")), -Annotation(Region(0x640,0x7E3), Attr("section","\".text\"")), -Annotation(Region(0x640,0x7E3), Attr("code-region","()")), -Annotation(Region(0x7B4,0x7C7), Attr("symbol","\"add_six\"")), -Annotation(Region(0x7B4,0x7C7), Attr("symbol-info","add_six 0x7B4 20")), -Annotation(Region(0x7D0,0x7E3), Attr("symbol","\"sub_seven\"")), -Annotation(Region(0x7D0,0x7E3), Attr("symbol-info","sub_seven 0x7D0 20")), -Annotation(Region(0x7E4,0x7F7), Attr("section","\".fini\"")), -Annotation(Region(0x7E4,0x7F7), Attr("code-region","()")), -Annotation(Region(0x7F8,0x7FB), Attr("section","\".rodata\"")), -Annotation(Region(0x7FC,0x84F), Attr("section","\".eh_frame_hdr\"")), -Annotation(Region(0x850,0x93B), Attr("section","\".eh_frame\"")), -Annotation(Region(0x10D98,0x1102F), Attr("segment","03 0x10D98 672")), -Annotation(Region(0x10DA0,0x10DA7), Attr("section","\".fini_array\"")), -Annotation(Region(0x10DA8,0x10F97), Attr("section","\".dynamic\"")), -Annotation(Region(0x10F98,0x10FFF), Attr("section","\".got\"")), -Annotation(Region(0x11000,0x1102F), Attr("section","\".data\"")), -Annotation(Region(0x10D98,0x10D9F), Attr("section","\".init_array\""))]), -Program(Tid(1_811, "%00000713"), Attrs([]), - Subs([Sub(Tid(1_755, "@__cxa_finalize"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x610"), -Attr("stub","()")]), "__cxa_finalize", Args([Arg(Tid(1_812, "%00000714"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("__cxa_finalize_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(1_111, "@__cxa_finalize"), - Attrs([Attr("address","0x610")]), Phis([]), -Defs([Def(Tid(1_359, "%0000054f"), Attrs([Attr("address","0x610"), -Attr("insn","adrp x16, #65536")]), Var("R16",Imm(64)), Int(65536,64)), -Def(Tid(1_366, "%00000556"), Attrs([Attr("address","0x614"), -Attr("insn","ldr x17, [x16, #0xfb8]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(4024,64)),LittleEndian(),64)), -Def(Tid(1_372, "%0000055c"), Attrs([Attr("address","0x618"), -Attr("insn","add x16, x16, #0xfb8")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(4024,64)))]), Jmps([Call(Tid(1_377, "%00000561"), - Attrs([Attr("address","0x61C"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), -Sub(Tid(1_756, "@__do_global_dtors_aux"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x740")]), - "__do_global_dtors_aux", Args([Arg(Tid(1_813, "%00000715"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("__do_global_dtors_aux_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(861, "@__do_global_dtors_aux"), - Attrs([Attr("address","0x740")]), Phis([]), Defs([Def(Tid(865, "%00000361"), - Attrs([Attr("address","0x740"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("#4",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(18446744073709551584,64))), -Def(Tid(871, "%00000367"), Attrs([Attr("address","0x740"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("#4",Imm(64)),Var("R29",Imm(64)),LittleEndian(),64)), -Def(Tid(877, "%0000036d"), Attrs([Attr("address","0x740"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("#4",Imm(64)),Int(8,64)),Var("R30",Imm(64)),LittleEndian(),64)), -Def(Tid(881, "%00000371"), Attrs([Attr("address","0x740"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("R31",Imm(64)), -Var("#4",Imm(64))), Def(Tid(887, "%00000377"), - Attrs([Attr("address","0x744"), Attr("insn","mov x29, sp")]), - Var("R29",Imm(64)), Var("R31",Imm(64))), Def(Tid(895, "%0000037f"), - Attrs([Attr("address","0x748"), Attr("insn","str x19, [sp, #0x10]")]), - Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(16,64)),Var("R19",Imm(64)),LittleEndian(),64)), -Def(Tid(900, "%00000384"), Attrs([Attr("address","0x74C"), -Attr("insn","adrp x19, #69632")]), Var("R19",Imm(64)), Int(69632,64)), -Def(Tid(907, "%0000038b"), Attrs([Attr("address","0x750"), -Attr("insn","ldrb w0, [x19, #0x30]")]), Var("R0",Imm(64)), -UNSIGNED(64,Load(Var("mem",Mem(64,8)),PLUS(Var("R19",Imm(64)),Int(48,64)),LittleEndian(),8)))]), -Jmps([Goto(Tid(914, "%00000392"), Attrs([Attr("address","0x754"), -Attr("insn","cbnz w0, #0x28")]), - NEQ(Extract(31,0,Var("R0",Imm(64))),Int(0,32)), -Direct(Tid(912, "%00000390"))), Goto(Tid(1_801, "%00000709"), Attrs([]), - Int(1,1), Direct(Tid(1_056, "%00000420")))])), Blk(Tid(1_056, "%00000420"), - Attrs([Attr("address","0x758")]), Phis([]), -Defs([Def(Tid(1_059, "%00000423"), Attrs([Attr("address","0x758"), -Attr("insn","adrp x0, #65536")]), Var("R0",Imm(64)), Int(65536,64)), -Def(Tid(1_066, "%0000042a"), Attrs([Attr("address","0x75C"), -Attr("insn","ldr x0, [x0, #0xfe0]")]), Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(4064,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(1_072, "%00000430"), Attrs([Attr("address","0x760"), -Attr("insn","cbz x0, #0x10")]), EQ(Var("R0",Imm(64)),Int(0,64)), -Direct(Tid(1_070, "%0000042e"))), Goto(Tid(1_802, "%0000070a"), Attrs([]), - Int(1,1), Direct(Tid(1_095, "%00000447")))])), Blk(Tid(1_095, "%00000447"), - Attrs([Attr("address","0x764")]), Phis([]), -Defs([Def(Tid(1_098, "%0000044a"), Attrs([Attr("address","0x764"), -Attr("insn","adrp x0, #69632")]), Var("R0",Imm(64)), Int(69632,64)), -Def(Tid(1_105, "%00000451"), Attrs([Attr("address","0x768"), -Attr("insn","ldr x0, [x0, #0x8]")]), Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(1_110, "%00000456"), Attrs([Attr("address","0x76C"), -Attr("insn","bl #-0x15c")]), Var("R30",Imm(64)), Int(1904,64))]), -Jmps([Call(Tid(1_113, "%00000459"), Attrs([Attr("address","0x76C"), -Attr("insn","bl #-0x15c")]), Int(1,1), -(Direct(Tid(1_755, "@__cxa_finalize")),Direct(Tid(1_070, "%0000042e"))))])), -Blk(Tid(1_070, "%0000042e"), Attrs([Attr("address","0x770")]), Phis([]), -Defs([Def(Tid(1_078, "%00000436"), Attrs([Attr("address","0x770"), -Attr("insn","bl #-0xa0")]), Var("R30",Imm(64)), Int(1908,64))]), -Jmps([Call(Tid(1_080, "%00000438"), Attrs([Attr("address","0x770"), -Attr("insn","bl #-0xa0")]), Int(1,1), -(Direct(Tid(1_771, "@deregister_tm_clones")),Direct(Tid(1_082, "%0000043a"))))])), -Blk(Tid(1_082, "%0000043a"), Attrs([Attr("address","0x774")]), Phis([]), -Defs([Def(Tid(1_085, "%0000043d"), Attrs([Attr("address","0x774"), -Attr("insn","mov w0, #0x1")]), Var("R0",Imm(64)), Int(1,64)), -Def(Tid(1_093, "%00000445"), Attrs([Attr("address","0x778"), -Attr("insn","strb w0, [x19, #0x30]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R19",Imm(64)),Int(48,64)),Extract(7,0,Var("R0",Imm(64))),LittleEndian(),8))]), -Jmps([Goto(Tid(1_803, "%0000070b"), Attrs([]), Int(1,1), -Direct(Tid(912, "%00000390")))])), Blk(Tid(912, "%00000390"), - Attrs([Attr("address","0x77C")]), Phis([]), Defs([Def(Tid(922, "%0000039a"), - Attrs([Attr("address","0x77C"), Attr("insn","ldr x19, [sp, #0x10]")]), - Var("R19",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(16,64)),LittleEndian(),64)), -Def(Tid(929, "%000003a1"), Attrs([Attr("address","0x780"), -Attr("insn","ldp x29, x30, [sp], #0x20")]), Var("R29",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(934, "%000003a6"), Attrs([Attr("address","0x780"), -Attr("insn","ldp x29, x30, [sp], #0x20")]), Var("R30",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(938, "%000003aa"), Attrs([Attr("address","0x780"), -Attr("insn","ldp x29, x30, [sp], #0x20")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(32,64)))]), Jmps([Call(Tid(943, "%000003af"), - Attrs([Attr("address","0x784"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), Sub(Tid(1_760, "@__libc_start_main"), - Attrs([Attr("c.proto","signed (*)(signed (*)(signed , char** , char** );* main, signed , char** , \nvoid* auxv)"), -Attr("address","0x600"), Attr("stub","()")]), "__libc_start_main", - Args([Arg(Tid(1_814, "%00000716"), - Attrs([Attr("c.layout","**[ : 64]"), -Attr("c.data","Top:u64 ptr ptr"), -Attr("c.type","signed (*)(signed , char** , char** );*")]), - Var("__libc_start_main_main",Imm(64)), Var("R0",Imm(64)), In()), -Arg(Tid(1_815, "%00000717"), Attrs([Attr("c.layout","[signed : 32]"), -Attr("c.data","Top:u32"), Attr("c.type","signed")]), - Var("__libc_start_main_arg2",Imm(32)), LOW(32,Var("R1",Imm(64))), In()), -Arg(Tid(1_816, "%00000718"), Attrs([Attr("c.layout","**[char : 8]"), -Attr("c.data","Top:u8 ptr ptr"), Attr("c.type","char**")]), - Var("__libc_start_main_arg3",Imm(64)), Var("R2",Imm(64)), Both()), -Arg(Tid(1_817, "%00000719"), Attrs([Attr("c.layout","*[ : 8]"), -Attr("c.data","{} ptr"), Attr("c.type","void*")]), - Var("__libc_start_main_auxv",Imm(64)), Var("R3",Imm(64)), Both()), -Arg(Tid(1_818, "%0000071a"), Attrs([Attr("c.layout","[signed : 32]"), -Attr("c.data","Top:u32"), Attr("c.type","signed")]), - Var("__libc_start_main_result",Imm(32)), LOW(32,Var("R0",Imm(64))), -Out())]), Blks([Blk(Tid(694, "@__libc_start_main"), - Attrs([Attr("address","0x600")]), Phis([]), -Defs([Def(Tid(1_337, "%00000539"), Attrs([Attr("address","0x600"), -Attr("insn","adrp x16, #65536")]), Var("R16",Imm(64)), Int(65536,64)), -Def(Tid(1_344, "%00000540"), Attrs([Attr("address","0x604"), -Attr("insn","ldr x17, [x16, #0xfb0]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(4016,64)),LittleEndian(),64)), -Def(Tid(1_350, "%00000546"), Attrs([Attr("address","0x608"), -Attr("insn","add x16, x16, #0xfb0")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(4016,64)))]), Jmps([Call(Tid(1_355, "%0000054b"), - Attrs([Attr("address","0x60C"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), Sub(Tid(1_761, "@_fini"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x7E4")]), - "_fini", Args([Arg(Tid(1_819, "%0000071b"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("_fini_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(31, "@_fini"), - Attrs([Attr("address","0x7E4")]), Phis([]), Defs([Def(Tid(37, "%00000025"), - Attrs([Attr("address","0x7E8"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("#0",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(18446744073709551600,64))), -Def(Tid(43, "%0000002b"), Attrs([Attr("address","0x7E8"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("#0",Imm(64)),Var("R29",Imm(64)),LittleEndian(),64)), -Def(Tid(49, "%00000031"), Attrs([Attr("address","0x7E8"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("#0",Imm(64)),Int(8,64)),Var("R30",Imm(64)),LittleEndian(),64)), -Def(Tid(53, "%00000035"), Attrs([Attr("address","0x7E8"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("R31",Imm(64)), -Var("#0",Imm(64))), Def(Tid(59, "%0000003b"), Attrs([Attr("address","0x7EC"), -Attr("insn","mov x29, sp")]), Var("R29",Imm(64)), Var("R31",Imm(64))), -Def(Tid(66, "%00000042"), Attrs([Attr("address","0x7F0"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R29",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(71, "%00000047"), Attrs([Attr("address","0x7F0"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R30",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(75, "%0000004b"), Attrs([Attr("address","0x7F0"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(16,64)))]), Jmps([Call(Tid(80, "%00000050"), - Attrs([Attr("address","0x7F4"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), Sub(Tid(1_762, "@_init"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x5C8")]), - "_init", Args([Arg(Tid(1_820, "%0000071c"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("_init_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(1_561, "@_init"), - Attrs([Attr("address","0x5C8")]), Phis([]), -Defs([Def(Tid(1_567, "%0000061f"), Attrs([Attr("address","0x5CC"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("#6",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(18446744073709551600,64))), -Def(Tid(1_573, "%00000625"), Attrs([Attr("address","0x5CC"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("#6",Imm(64)),Var("R29",Imm(64)),LittleEndian(),64)), -Def(Tid(1_579, "%0000062b"), Attrs([Attr("address","0x5CC"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("#6",Imm(64)),Int(8,64)),Var("R30",Imm(64)),LittleEndian(),64)), -Def(Tid(1_583, "%0000062f"), Attrs([Attr("address","0x5CC"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("R31",Imm(64)), -Var("#6",Imm(64))), Def(Tid(1_589, "%00000635"), - Attrs([Attr("address","0x5D0"), Attr("insn","mov x29, sp")]), - Var("R29",Imm(64)), Var("R31",Imm(64))), Def(Tid(1_594, "%0000063a"), - Attrs([Attr("address","0x5D4"), Attr("insn","bl #0xe0")]), - Var("R30",Imm(64)), Int(1496,64))]), Jmps([Call(Tid(1_596, "%0000063c"), - Attrs([Attr("address","0x5D4"), Attr("insn","bl #0xe0")]), Int(1,1), -(Direct(Tid(1_769, "@call_weak_fn")),Direct(Tid(1_598, "%0000063e"))))])), -Blk(Tid(1_598, "%0000063e"), Attrs([Attr("address","0x5D8")]), Phis([]), -Defs([Def(Tid(1_603, "%00000643"), Attrs([Attr("address","0x5D8"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R29",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(1_608, "%00000648"), Attrs([Attr("address","0x5D8"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R30",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(1_612, "%0000064c"), Attrs([Attr("address","0x5D8"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(16,64)))]), Jmps([Call(Tid(1_617, "%00000651"), - Attrs([Attr("address","0x5DC"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), Sub(Tid(1_763, "@_start"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x680"), -Attr("entry-point","()")]), "_start", Args([Arg(Tid(1_821, "%0000071d"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("_start_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(631, "@_start"), - Attrs([Attr("address","0x680")]), Phis([]), Defs([Def(Tid(636, "%0000027c"), - Attrs([Attr("address","0x684"), Attr("insn","mov x29, #0x0")]), - Var("R29",Imm(64)), Int(0,64)), Def(Tid(641, "%00000281"), - Attrs([Attr("address","0x688"), Attr("insn","mov x30, #0x0")]), - Var("R30",Imm(64)), Int(0,64)), Def(Tid(647, "%00000287"), - Attrs([Attr("address","0x68C"), Attr("insn","mov x5, x0")]), - Var("R5",Imm(64)), Var("R0",Imm(64))), Def(Tid(654, "%0000028e"), - Attrs([Attr("address","0x690"), Attr("insn","ldr x1, [sp]")]), - Var("R1",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(660, "%00000294"), Attrs([Attr("address","0x694"), -Attr("insn","add x2, sp, #0x8")]), Var("R2",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(8,64))), Def(Tid(666, "%0000029a"), - Attrs([Attr("address","0x698"), Attr("insn","mov x6, sp")]), - Var("R6",Imm(64)), Var("R31",Imm(64))), Def(Tid(671, "%0000029f"), - Attrs([Attr("address","0x69C"), Attr("insn","adrp x0, #65536")]), - Var("R0",Imm(64)), Int(65536,64)), Def(Tid(678, "%000002a6"), - Attrs([Attr("address","0x6A0"), Attr("insn","ldr x0, [x0, #0xff0]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(4080,64)),LittleEndian(),64)), -Def(Tid(683, "%000002ab"), Attrs([Attr("address","0x6A4"), -Attr("insn","mov x3, #0x0")]), Var("R3",Imm(64)), Int(0,64)), -Def(Tid(688, "%000002b0"), Attrs([Attr("address","0x6A8"), -Attr("insn","mov x4, #0x0")]), Var("R4",Imm(64)), Int(0,64)), -Def(Tid(693, "%000002b5"), Attrs([Attr("address","0x6AC"), -Attr("insn","bl #-0xac")]), Var("R30",Imm(64)), Int(1712,64))]), -Jmps([Call(Tid(696, "%000002b8"), Attrs([Attr("address","0x6AC"), -Attr("insn","bl #-0xac")]), Int(1,1), -(Direct(Tid(1_760, "@__libc_start_main")),Direct(Tid(698, "%000002ba"))))])), -Blk(Tid(698, "%000002ba"), Attrs([Attr("address","0x6B0")]), Phis([]), -Defs([Def(Tid(701, "%000002bd"), Attrs([Attr("address","0x6B0"), -Attr("insn","bl #-0x80")]), Var("R30",Imm(64)), Int(1716,64))]), -Jmps([Call(Tid(704, "%000002c0"), Attrs([Attr("address","0x6B0"), -Attr("insn","bl #-0x80")]), Int(1,1), -(Direct(Tid(1_766, "@abort")),Direct(Tid(1_804, "%0000070c"))))])), -Blk(Tid(1_804, "%0000070c"), Attrs([]), Phis([]), Defs([]), -Jmps([Call(Tid(1_805, "%0000070d"), Attrs([]), Int(1,1), -(Direct(Tid(1_769, "@call_weak_fn")),))]))])), Sub(Tid(1_766, "@abort"), - Attrs([Attr("noreturn","()"), Attr("c.proto","void (*)(void)"), -Attr("address","0x630"), Attr("stub","()")]), "abort", Args([]), -Blks([Blk(Tid(702, "@abort"), Attrs([Attr("address","0x630")]), Phis([]), -Defs([Def(Tid(1_403, "%0000057b"), Attrs([Attr("address","0x630"), -Attr("insn","adrp x16, #65536")]), Var("R16",Imm(64)), Int(65536,64)), -Def(Tid(1_410, "%00000582"), Attrs([Attr("address","0x634"), -Attr("insn","ldr x17, [x16, #0xfc8]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(4040,64)),LittleEndian(),64)), -Def(Tid(1_416, "%00000588"), Attrs([Attr("address","0x638"), -Attr("insn","add x16, x16, #0xfc8")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(4040,64)))]), Jmps([Call(Tid(1_421, "%0000058d"), - Attrs([Attr("address","0x63C"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), Sub(Tid(1_767, "@add_six"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x7B4")]), - "add_six", Args([Arg(Tid(1_822, "%0000071e"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("add_six_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(990, "@add_six"), - Attrs([Attr("address","0x7B4")]), Phis([]), Defs([Def(Tid(993, "%000003e1"), - Attrs([Attr("address","0x7B4"), Attr("insn","adrp x1, #69632")]), - Var("R1",Imm(64)), Int(69632,64)), Def(Tid(1_000, "%000003e8"), - Attrs([Attr("address","0x7B8"), Attr("insn","ldr w0, [x1, #0x10]")]), - Var("R0",Imm(64)), -UNSIGNED(64,Load(Var("mem",Mem(64,8)),PLUS(Var("R1",Imm(64)),Int(16,64)),LittleEndian(),32))), -Def(Tid(1_006, "%000003ee"), Attrs([Attr("address","0x7BC"), -Attr("insn","add w0, w0, #0x6")]), Var("R0",Imm(64)), -UNSIGNED(64,PLUS(Extract(31,0,Var("R0",Imm(64))),Int(6,32)))), -Def(Tid(1_014, "%000003f6"), Attrs([Attr("address","0x7C0"), -Attr("insn","str w0, [x1, #0x10]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R1",Imm(64)),Int(16,64)),Extract(31,0,Var("R0",Imm(64))),LittleEndian(),32))]), -Jmps([Call(Tid(1_019, "%000003fb"), Attrs([Attr("address","0x7C4"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))]))])), -Sub(Tid(1_768, "@add_two"), Attrs([Attr("c.proto","signed (*)(void)"), -Attr("address","0x7A0")]), "add_two", Args([Arg(Tid(1_823, "%0000071f"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("add_two_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(959, "@add_two"), - Attrs([Attr("address","0x7A0")]), Phis([]), Defs([Def(Tid(962, "%000003c2"), - Attrs([Attr("address","0x7A0"), Attr("insn","adrp x1, #69632")]), - Var("R1",Imm(64)), Int(69632,64)), Def(Tid(969, "%000003c9"), - Attrs([Attr("address","0x7A4"), Attr("insn","ldr w0, [x1, #0x10]")]), - Var("R0",Imm(64)), -UNSIGNED(64,Load(Var("mem",Mem(64,8)),PLUS(Var("R1",Imm(64)),Int(16,64)),LittleEndian(),32))), -Def(Tid(975, "%000003cf"), Attrs([Attr("address","0x7A8"), -Attr("insn","add w0, w0, #0x2")]), Var("R0",Imm(64)), -UNSIGNED(64,PLUS(Extract(31,0,Var("R0",Imm(64))),Int(2,32)))), -Def(Tid(983, "%000003d7"), Attrs([Attr("address","0x7AC"), -Attr("insn","str w0, [x1, #0x10]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R1",Imm(64)),Int(16,64)),Extract(31,0,Var("R0",Imm(64))),LittleEndian(),32))]), -Jmps([Call(Tid(988, "%000003dc"), Attrs([Attr("address","0x7B0"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))]))])), -Sub(Tid(1_769, "@call_weak_fn"), Attrs([Attr("c.proto","signed (*)(void)"), -Attr("address","0x6B4")]), "call_weak_fn", Args([Arg(Tid(1_824, "%00000720"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("call_weak_fn_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(706, "@call_weak_fn"), - Attrs([Attr("address","0x6B4")]), Phis([]), Defs([Def(Tid(709, "%000002c5"), - Attrs([Attr("address","0x6B4"), Attr("insn","adrp x0, #65536")]), - Var("R0",Imm(64)), Int(65536,64)), Def(Tid(716, "%000002cc"), - Attrs([Attr("address","0x6B8"), Attr("insn","ldr x0, [x0, #0xfe8]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(4072,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(722, "%000002d2"), Attrs([Attr("address","0x6BC"), -Attr("insn","cbz x0, #0x8")]), EQ(Var("R0",Imm(64)),Int(0,64)), -Direct(Tid(720, "%000002d0"))), Goto(Tid(1_806, "%0000070e"), Attrs([]), - Int(1,1), Direct(Tid(1_175, "%00000497")))])), Blk(Tid(720, "%000002d0"), - Attrs([Attr("address","0x6C4")]), Phis([]), Defs([]), -Jmps([Call(Tid(728, "%000002d8"), Attrs([Attr("address","0x6C4"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))])), -Blk(Tid(1_175, "%00000497"), Attrs([Attr("address","0x6C0")]), Phis([]), -Defs([]), Jmps([Goto(Tid(1_178, "%0000049a"), Attrs([Attr("address","0x6C0"), -Attr("insn","b #-0xa0")]), Int(1,1), -Direct(Tid(1_176, "@__gmon_start__")))])), Blk(Tid(1_176, "@__gmon_start__"), - Attrs([Attr("address","0x620")]), Phis([]), -Defs([Def(Tid(1_381, "%00000565"), Attrs([Attr("address","0x620"), -Attr("insn","adrp x16, #65536")]), Var("R16",Imm(64)), Int(65536,64)), -Def(Tid(1_388, "%0000056c"), Attrs([Attr("address","0x624"), -Attr("insn","ldr x17, [x16, #0xfc0]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(4032,64)),LittleEndian(),64)), -Def(Tid(1_394, "%00000572"), Attrs([Attr("address","0x628"), -Attr("insn","add x16, x16, #0xfc0")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(4032,64)))]), Jmps([Call(Tid(1_399, "%00000577"), - Attrs([Attr("address","0x62C"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), -Sub(Tid(1_771, "@deregister_tm_clones"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x6D0")]), - "deregister_tm_clones", Args([Arg(Tid(1_825, "%00000721"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("deregister_tm_clones_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(734, "@deregister_tm_clones"), - Attrs([Attr("address","0x6D0")]), Phis([]), Defs([Def(Tid(737, "%000002e1"), - Attrs([Attr("address","0x6D0"), Attr("insn","adrp x0, #69632")]), - Var("R0",Imm(64)), Int(69632,64)), Def(Tid(743, "%000002e7"), - Attrs([Attr("address","0x6D4"), Attr("insn","add x0, x0, #0x30")]), - Var("R0",Imm(64)), PLUS(Var("R0",Imm(64)),Int(48,64))), -Def(Tid(748, "%000002ec"), Attrs([Attr("address","0x6D8"), -Attr("insn","adrp x1, #69632")]), Var("R1",Imm(64)), Int(69632,64)), -Def(Tid(754, "%000002f2"), Attrs([Attr("address","0x6DC"), -Attr("insn","add x1, x1, #0x30")]), Var("R1",Imm(64)), -PLUS(Var("R1",Imm(64)),Int(48,64))), Def(Tid(760, "%000002f8"), - Attrs([Attr("address","0x6E0"), Attr("insn","cmp x1, x0")]), - Var("#2",Imm(64)), NOT(Var("R0",Imm(64)))), Def(Tid(765, "%000002fd"), - Attrs([Attr("address","0x6E0"), Attr("insn","cmp x1, x0")]), - Var("#3",Imm(64)), PLUS(Var("R1",Imm(64)),NOT(Var("R0",Imm(64))))), -Def(Tid(771, "%00000303"), Attrs([Attr("address","0x6E0"), -Attr("insn","cmp x1, x0")]), Var("VF",Imm(1)), -NEQ(SIGNED(65,PLUS(Var("#3",Imm(64)),Int(1,64))),PLUS(PLUS(SIGNED(65,Var("R1",Imm(64))),SIGNED(65,Var("#2",Imm(64)))),Int(1,65)))), -Def(Tid(777, "%00000309"), Attrs([Attr("address","0x6E0"), -Attr("insn","cmp x1, x0")]), Var("CF",Imm(1)), -NEQ(UNSIGNED(65,PLUS(Var("#3",Imm(64)),Int(1,64))),PLUS(PLUS(UNSIGNED(65,Var("R1",Imm(64))),UNSIGNED(65,Var("#2",Imm(64)))),Int(1,65)))), -Def(Tid(781, "%0000030d"), Attrs([Attr("address","0x6E0"), -Attr("insn","cmp x1, x0")]), Var("ZF",Imm(1)), -EQ(PLUS(Var("#3",Imm(64)),Int(1,64)),Int(0,64))), Def(Tid(785, "%00000311"), - Attrs([Attr("address","0x6E0"), Attr("insn","cmp x1, x0")]), - Var("NF",Imm(1)), Extract(63,63,PLUS(Var("#3",Imm(64)),Int(1,64))))]), -Jmps([Goto(Tid(791, "%00000317"), Attrs([Attr("address","0x6E4"), -Attr("insn","b.eq #0x18")]), EQ(Var("ZF",Imm(1)),Int(1,1)), -Direct(Tid(789, "%00000315"))), Goto(Tid(1_807, "%0000070f"), Attrs([]), - Int(1,1), Direct(Tid(1_145, "%00000479")))])), Blk(Tid(1_145, "%00000479"), - Attrs([Attr("address","0x6E8")]), Phis([]), -Defs([Def(Tid(1_148, "%0000047c"), Attrs([Attr("address","0x6E8"), -Attr("insn","adrp x1, #65536")]), Var("R1",Imm(64)), Int(65536,64)), -Def(Tid(1_155, "%00000483"), Attrs([Attr("address","0x6EC"), -Attr("insn","ldr x1, [x1, #0xfd8]")]), Var("R1",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R1",Imm(64)),Int(4056,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(1_160, "%00000488"), Attrs([Attr("address","0x6F0"), -Attr("insn","cbz x1, #0xc")]), EQ(Var("R1",Imm(64)),Int(0,64)), -Direct(Tid(789, "%00000315"))), Goto(Tid(1_808, "%00000710"), Attrs([]), - Int(1,1), Direct(Tid(1_164, "%0000048c")))])), Blk(Tid(789, "%00000315"), - Attrs([Attr("address","0x6FC")]), Phis([]), Defs([]), -Jmps([Call(Tid(797, "%0000031d"), Attrs([Attr("address","0x6FC"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))])), -Blk(Tid(1_164, "%0000048c"), Attrs([Attr("address","0x6F4")]), Phis([]), -Defs([Def(Tid(1_168, "%00000490"), Attrs([Attr("address","0x6F4"), -Attr("insn","mov x16, x1")]), Var("R16",Imm(64)), Var("R1",Imm(64)))]), -Jmps([Call(Tid(1_173, "%00000495"), Attrs([Attr("address","0x6F8"), -Attr("insn","br x16")]), Int(1,1), (Indirect(Var("R16",Imm(64))),))]))])), -Sub(Tid(1_774, "@frame_dummy"), Attrs([Attr("c.proto","signed (*)(void)"), -Attr("address","0x790")]), "frame_dummy", Args([Arg(Tid(1_826, "%00000722"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("frame_dummy_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(949, "@frame_dummy"), - Attrs([Attr("address","0x790")]), Phis([]), Defs([]), -Jmps([Call(Tid(951, "%000003b7"), Attrs([Attr("address","0x790"), -Attr("insn","b #-0x90")]), Int(1,1), -(Direct(Tid(1_776, "@register_tm_clones")),))]))])), Sub(Tid(1_775, "@main"), - Attrs([Attr("c.proto","signed (*)(signed argc, const char** argv)"), -Attr("address","0x640"), Attr("stub","()")]), "main", - Args([Arg(Tid(1_827, "%00000723"), Attrs([Attr("c.layout","[signed : 32]"), -Attr("c.data","Top:u32"), Attr("c.type","signed")]), - Var("main_argc",Imm(32)), LOW(32,Var("R0",Imm(64))), In()), -Arg(Tid(1_828, "%00000724"), Attrs([Attr("c.layout","**[char : 8]"), -Attr("c.data","Top:u8 ptr ptr"), Attr("c.type"," const char**")]), - Var("main_argv",Imm(64)), Var("R1",Imm(64)), Both()), -Arg(Tid(1_829, "%00000725"), Attrs([Attr("c.layout","[signed : 32]"), -Attr("c.data","Top:u32"), Attr("c.type","signed")]), - Var("main_result",Imm(32)), LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(504, "@main"), Attrs([Attr("address","0x640")]), Phis([]), -Defs([Def(Tid(508, "%000001fc"), Attrs([Attr("address","0x640"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("#1",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(18446744073709551584,64))), -Def(Tid(514, "%00000202"), Attrs([Attr("address","0x640"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("#1",Imm(64)),Var("R29",Imm(64)),LittleEndian(),64)), -Def(Tid(520, "%00000208"), Attrs([Attr("address","0x640"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("#1",Imm(64)),Int(8,64)),Var("R30",Imm(64)),LittleEndian(),64)), -Def(Tid(524, "%0000020c"), Attrs([Attr("address","0x640"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("R31",Imm(64)), -Var("#1",Imm(64))), Def(Tid(529, "%00000211"), - Attrs([Attr("address","0x644"), Attr("insn","adrp x0, #69632")]), - Var("R0",Imm(64)), Int(69632,64)), Def(Tid(535, "%00000217"), - Attrs([Attr("address","0x648"), Attr("insn","mov x29, sp")]), - Var("R29",Imm(64)), Var("R31",Imm(64))), Def(Tid(543, "%0000021f"), - Attrs([Attr("address","0x64C"), Attr("insn","str x19, [sp, #0x10]")]), - Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(16,64)),Var("R19",Imm(64)),LittleEndian(),64)), -Def(Tid(549, "%00000225"), Attrs([Attr("address","0x650"), -Attr("insn","add x19, x0, #0x18")]), Var("R19",Imm(64)), -PLUS(Var("R0",Imm(64)),Int(24,64))), Def(Tid(556, "%0000022c"), - Attrs([Attr("address","0x654"), Attr("insn","ldr x0, [x0, #0x18]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(24,64)),LittleEndian(),64)), -Def(Tid(561, "%00000231"), Attrs([Attr("address","0x658"), -Attr("insn","blr x0")]), Var("R30",Imm(64)), Int(1628,64))]), -Jmps([Call(Tid(564, "%00000234"), Attrs([Attr("address","0x658"), -Attr("insn","blr x0")]), Int(1,1), -(Indirect(Var("R0",Imm(64))),Direct(Tid(566, "%00000236"))))])), -Blk(Tid(566, "%00000236"), Attrs([Attr("address","0x65C")]), Phis([]), -Defs([Def(Tid(571, "%0000023b"), Attrs([Attr("address","0x65C"), -Attr("insn","ldr x0, [x19, #0x8]")]), Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R19",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(576, "%00000240"), Attrs([Attr("address","0x660"), -Attr("insn","blr x0")]), Var("R30",Imm(64)), Int(1636,64))]), -Jmps([Call(Tid(579, "%00000243"), Attrs([Attr("address","0x660"), -Attr("insn","blr x0")]), Int(1,1), -(Indirect(Var("R0",Imm(64))),Direct(Tid(581, "%00000245"))))])), -Blk(Tid(581, "%00000245"), Attrs([Attr("address","0x664")]), Phis([]), -Defs([Def(Tid(586, "%0000024a"), Attrs([Attr("address","0x664"), -Attr("insn","ldr x0, [x19, #0x10]")]), Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R19",Imm(64)),Int(16,64)),LittleEndian(),64)), -Def(Tid(591, "%0000024f"), Attrs([Attr("address","0x668"), -Attr("insn","blr x0")]), Var("R30",Imm(64)), Int(1644,64))]), -Jmps([Call(Tid(594, "%00000252"), Attrs([Attr("address","0x668"), -Attr("insn","blr x0")]), Int(1,1), -(Indirect(Var("R0",Imm(64))),Direct(Tid(596, "%00000254"))))])), -Blk(Tid(596, "%00000254"), Attrs([Attr("address","0x66C")]), Phis([]), -Defs([Def(Tid(599, "%00000257"), Attrs([Attr("address","0x66C"), -Attr("insn","mov w0, #0x0")]), Var("R0",Imm(64)), Int(0,64)), -Def(Tid(606, "%0000025e"), Attrs([Attr("address","0x670"), -Attr("insn","ldr x19, [sp, #0x10]")]), Var("R19",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(16,64)),LittleEndian(),64)), -Def(Tid(613, "%00000265"), Attrs([Attr("address","0x674"), -Attr("insn","ldp x29, x30, [sp], #0x20")]), Var("R29",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(618, "%0000026a"), Attrs([Attr("address","0x674"), -Attr("insn","ldp x29, x30, [sp], #0x20")]), Var("R30",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(622, "%0000026e"), Attrs([Attr("address","0x674"), -Attr("insn","ldp x29, x30, [sp], #0x20")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(32,64)))]), Jmps([Call(Tid(627, "%00000273"), - Attrs([Attr("address","0x678"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), -Sub(Tid(1_776, "@register_tm_clones"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x700")]), - "register_tm_clones", Args([Arg(Tid(1_830, "%00000726"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("register_tm_clones_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(799, "@register_tm_clones"), Attrs([Attr("address","0x700")]), - Phis([]), Defs([Def(Tid(802, "%00000322"), Attrs([Attr("address","0x700"), -Attr("insn","adrp x0, #69632")]), Var("R0",Imm(64)), Int(69632,64)), -Def(Tid(808, "%00000328"), Attrs([Attr("address","0x704"), -Attr("insn","add x0, x0, #0x30")]), Var("R0",Imm(64)), -PLUS(Var("R0",Imm(64)),Int(48,64))), Def(Tid(813, "%0000032d"), - Attrs([Attr("address","0x708"), Attr("insn","adrp x1, #69632")]), - Var("R1",Imm(64)), Int(69632,64)), Def(Tid(819, "%00000333"), - Attrs([Attr("address","0x70C"), Attr("insn","add x1, x1, #0x30")]), - Var("R1",Imm(64)), PLUS(Var("R1",Imm(64)),Int(48,64))), -Def(Tid(826, "%0000033a"), Attrs([Attr("address","0x710"), -Attr("insn","sub x1, x1, x0")]), Var("R1",Imm(64)), -PLUS(PLUS(Var("R1",Imm(64)),NOT(Var("R0",Imm(64)))),Int(1,64))), -Def(Tid(832, "%00000340"), Attrs([Attr("address","0x714"), -Attr("insn","lsr x2, x1, #63")]), Var("R2",Imm(64)), -Concat(Int(0,63),Extract(63,63,Var("R1",Imm(64))))), -Def(Tid(839, "%00000347"), Attrs([Attr("address","0x718"), -Attr("insn","add x1, x2, x1, asr #3")]), Var("R1",Imm(64)), -PLUS(Var("R2",Imm(64)),ARSHIFT(Var("R1",Imm(64)),Int(3,3)))), -Def(Tid(845, "%0000034d"), Attrs([Attr("address","0x71C"), -Attr("insn","asr x1, x1, #1")]), Var("R1",Imm(64)), -SIGNED(64,Extract(63,1,Var("R1",Imm(64)))))]), -Jmps([Goto(Tid(851, "%00000353"), Attrs([Attr("address","0x720"), -Attr("insn","cbz x1, #0x18")]), EQ(Var("R1",Imm(64)),Int(0,64)), -Direct(Tid(849, "%00000351"))), Goto(Tid(1_809, "%00000711"), Attrs([]), - Int(1,1), Direct(Tid(1_115, "%0000045b")))])), Blk(Tid(1_115, "%0000045b"), - Attrs([Attr("address","0x724")]), Phis([]), -Defs([Def(Tid(1_118, "%0000045e"), Attrs([Attr("address","0x724"), -Attr("insn","adrp x2, #65536")]), Var("R2",Imm(64)), Int(65536,64)), -Def(Tid(1_125, "%00000465"), Attrs([Attr("address","0x728"), -Attr("insn","ldr x2, [x2, #0xff8]")]), Var("R2",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R2",Imm(64)),Int(4088,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(1_130, "%0000046a"), Attrs([Attr("address","0x72C"), -Attr("insn","cbz x2, #0xc")]), EQ(Var("R2",Imm(64)),Int(0,64)), -Direct(Tid(849, "%00000351"))), Goto(Tid(1_810, "%00000712"), Attrs([]), - Int(1,1), Direct(Tid(1_134, "%0000046e")))])), Blk(Tid(849, "%00000351"), - Attrs([Attr("address","0x738")]), Phis([]), Defs([]), -Jmps([Call(Tid(857, "%00000359"), Attrs([Attr("address","0x738"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))])), -Blk(Tid(1_134, "%0000046e"), Attrs([Attr("address","0x730")]), Phis([]), -Defs([Def(Tid(1_138, "%00000472"), Attrs([Attr("address","0x730"), -Attr("insn","mov x16, x2")]), Var("R16",Imm(64)), Var("R2",Imm(64)))]), -Jmps([Call(Tid(1_143, "%00000477"), Attrs([Attr("address","0x734"), -Attr("insn","br x16")]), Int(1,1), (Indirect(Var("R16",Imm(64))),))]))])), -Sub(Tid(1_779, "@sub_seven"), Attrs([Attr("c.proto","signed (*)(void)"), -Attr("address","0x7D0")]), "sub_seven", Args([Arg(Tid(1_831, "%00000727"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("sub_seven_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(1_025, "@sub_seven"), - Attrs([Attr("address","0x7D0")]), Phis([]), -Defs([Def(Tid(1_028, "%00000404"), Attrs([Attr("address","0x7D0"), -Attr("insn","adrp x1, #69632")]), Var("R1",Imm(64)), Int(69632,64)), -Def(Tid(1_035, "%0000040b"), Attrs([Attr("address","0x7D4"), -Attr("insn","ldr w0, [x1, #0x10]")]), Var("R0",Imm(64)), -UNSIGNED(64,Load(Var("mem",Mem(64,8)),PLUS(Var("R1",Imm(64)),Int(16,64)),LittleEndian(),32))), -Def(Tid(1_041, "%00000411"), Attrs([Attr("address","0x7D8"), -Attr("insn","sub w0, w0, #0x7")]), Var("R0",Imm(64)), -UNSIGNED(64,PLUS(Extract(31,0,Var("R0",Imm(64))),Int(4294967289,32)))), -Def(Tid(1_049, "%00000419"), Attrs([Attr("address","0x7DC"), -Attr("insn","str w0, [x1, #0x10]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R1",Imm(64)),Int(16,64)),Extract(31,0,Var("R0",Imm(64))),LittleEndian(),32))]), -Jmps([Call(Tid(1_054, "%0000041e"), Attrs([Attr("address","0x7E0"), -Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))]))]))) \ No newline at end of file diff --git a/src/test/indirect_calls/jumptable2/gcc_O2/jumptable2.bir b/src/test/indirect_calls/jumptable2/gcc_O2/jumptable2.bir deleted file mode 100644 index a128074ef..000000000 --- a/src/test/indirect_calls/jumptable2/gcc_O2/jumptable2.bir +++ /dev/null @@ -1,281 +0,0 @@ -00000713: program -000006db: sub __cxa_finalize(__cxa_finalize_result) -00000714: __cxa_finalize_result :: out u32 = low:32[R0] - -00000457: -0000054f: R16 := 0x10000 -00000556: R17 := mem[R16 + 0xFB8, el]:u64 -0000055c: R16 := R16 + 0xFB8 -00000561: call R17 with noreturn - -000006dc: sub __do_global_dtors_aux(__do_global_dtors_aux_result) -00000715: __do_global_dtors_aux_result :: out u32 = low:32[R0] - -0000035d: -00000361: #4 := R31 - 0x20 -00000367: mem := mem with [#4, el]:u64 <- R29 -0000036d: mem := mem with [#4 + 8, el]:u64 <- R30 -00000371: R31 := #4 -00000377: R29 := R31 -0000037f: mem := mem with [R31 + 0x10, el]:u64 <- R19 -00000384: R19 := 0x11000 -0000038b: R0 := pad:64[mem[R19 + 0x30]] -00000392: when 31:0[R0] <> 0 goto %00000390 -00000709: goto %00000420 - -00000420: -00000423: R0 := 0x10000 -0000042a: R0 := mem[R0 + 0xFE0, el]:u64 -00000430: when R0 = 0 goto %0000042e -0000070a: goto %00000447 - -00000447: -0000044a: R0 := 0x11000 -00000451: R0 := mem[R0 + 8, el]:u64 -00000456: R30 := 0x770 -00000459: call @__cxa_finalize with return %0000042e - -0000042e: -00000436: R30 := 0x774 -00000438: call @deregister_tm_clones with return %0000043a - -0000043a: -0000043d: R0 := 1 -00000445: mem := mem with [R19 + 0x30] <- 7:0[R0] -0000070b: goto %00000390 - -00000390: -0000039a: R19 := mem[R31 + 0x10, el]:u64 -000003a1: R29 := mem[R31, el]:u64 -000003a6: R30 := mem[R31 + 8, el]:u64 -000003aa: R31 := R31 + 0x20 -000003af: call R30 with noreturn - -000006e0: sub __libc_start_main(__libc_start_main_main, __libc_start_main_arg2, __libc_start_main_arg3, __libc_start_main_auxv, __libc_start_main_result) -00000716: __libc_start_main_main :: in u64 = R0 -00000717: __libc_start_main_arg2 :: in u32 = low:32[R1] -00000718: __libc_start_main_arg3 :: in out u64 = R2 -00000719: __libc_start_main_auxv :: in out u64 = R3 -0000071a: __libc_start_main_result :: out u32 = low:32[R0] - -000002b6: -00000539: R16 := 0x10000 -00000540: R17 := mem[R16 + 0xFB0, el]:u64 -00000546: R16 := R16 + 0xFB0 -0000054b: call R17 with noreturn - -000006e1: sub _fini(_fini_result) -0000071b: _fini_result :: out u32 = low:32[R0] - -0000001f: -00000025: #0 := R31 - 0x10 -0000002b: mem := mem with [#0, el]:u64 <- R29 -00000031: mem := mem with [#0 + 8, el]:u64 <- R30 -00000035: R31 := #0 -0000003b: R29 := R31 -00000042: R29 := mem[R31, el]:u64 -00000047: R30 := mem[R31 + 8, el]:u64 -0000004b: R31 := R31 + 0x10 -00000050: call R30 with noreturn - -000006e2: sub _init(_init_result) -0000071c: _init_result :: out u32 = low:32[R0] - -00000619: -0000061f: #6 := R31 - 0x10 -00000625: mem := mem with [#6, el]:u64 <- R29 -0000062b: mem := mem with [#6 + 8, el]:u64 <- R30 -0000062f: R31 := #6 -00000635: R29 := R31 -0000063a: R30 := 0x5D8 -0000063c: call @call_weak_fn with return %0000063e - -0000063e: -00000643: R29 := mem[R31, el]:u64 -00000648: R30 := mem[R31 + 8, el]:u64 -0000064c: R31 := R31 + 0x10 -00000651: call R30 with noreturn - -000006e3: sub _start(_start_result) -0000071d: _start_result :: out u32 = low:32[R0] - -00000277: -0000027c: R29 := 0 -00000281: R30 := 0 -00000287: R5 := R0 -0000028e: R1 := mem[R31, el]:u64 -00000294: R2 := R31 + 8 -0000029a: R6 := R31 -0000029f: R0 := 0x10000 -000002a6: R0 := mem[R0 + 0xFF0, el]:u64 -000002ab: R3 := 0 -000002b0: R4 := 0 -000002b5: R30 := 0x6B0 -000002b8: call @__libc_start_main with return %000002ba - -000002ba: -000002bd: R30 := 0x6B4 -000002c0: call @abort with return %0000070c - -0000070c: -0000070d: call @call_weak_fn with noreturn - -000006e6: sub abort() - - -000002be: -0000057b: R16 := 0x10000 -00000582: R17 := mem[R16 + 0xFC8, el]:u64 -00000588: R16 := R16 + 0xFC8 -0000058d: call R17 with noreturn - -000006e7: sub add_six(add_six_result) -0000071e: add_six_result :: out u32 = low:32[R0] - -000003de: -000003e1: R1 := 0x11000 -000003e8: R0 := pad:64[mem[R1 + 0x10, el]:u32] -000003ee: R0 := pad:64[31:0[R0] + 6] -000003f6: mem := mem with [R1 + 0x10, el]:u32 <- 31:0[R0] -000003fb: call R30 with noreturn - -000006e8: sub add_two(add_two_result) -0000071f: add_two_result :: out u32 = low:32[R0] - -000003bf: -000003c2: R1 := 0x11000 -000003c9: R0 := pad:64[mem[R1 + 0x10, el]:u32] -000003cf: R0 := pad:64[31:0[R0] + 2] -000003d7: mem := mem with [R1 + 0x10, el]:u32 <- 31:0[R0] -000003dc: call R30 with noreturn - -000006e9: sub call_weak_fn(call_weak_fn_result) -00000720: call_weak_fn_result :: out u32 = low:32[R0] - -000002c2: -000002c5: R0 := 0x10000 -000002cc: R0 := mem[R0 + 0xFE8, el]:u64 -000002d2: when R0 = 0 goto %000002d0 -0000070e: goto %00000497 - -000002d0: -000002d8: call R30 with noreturn - -00000497: -0000049a: goto @__gmon_start__ - -00000498: -00000565: R16 := 0x10000 -0000056c: R17 := mem[R16 + 0xFC0, el]:u64 -00000572: R16 := R16 + 0xFC0 -00000577: call R17 with noreturn - -000006eb: sub deregister_tm_clones(deregister_tm_clones_result) -00000721: deregister_tm_clones_result :: out u32 = low:32[R0] - -000002de: -000002e1: R0 := 0x11000 -000002e7: R0 := R0 + 0x30 -000002ec: R1 := 0x11000 -000002f2: R1 := R1 + 0x30 -000002f8: #2 := ~R0 -000002fd: #3 := R1 + ~R0 -00000303: VF := extend:65[#3 + 1] <> extend:65[R1] + extend:65[#2] + 1 -00000309: CF := pad:65[#3 + 1] <> pad:65[R1] + pad:65[#2] + 1 -0000030d: ZF := #3 + 1 = 0 -00000311: NF := 63:63[#3 + 1] -00000317: when ZF goto %00000315 -0000070f: goto %00000479 - -00000479: -0000047c: R1 := 0x10000 -00000483: R1 := mem[R1 + 0xFD8, el]:u64 -00000488: when R1 = 0 goto %00000315 -00000710: goto %0000048c - -00000315: -0000031d: call R30 with noreturn - -0000048c: -00000490: R16 := R1 -00000495: call R16 with noreturn - -000006ee: sub frame_dummy(frame_dummy_result) -00000722: frame_dummy_result :: out u32 = low:32[R0] - -000003b5: -000003b7: call @register_tm_clones with noreturn - -000006ef: sub main(main_argc, main_argv, main_result) -00000723: main_argc :: in u32 = low:32[R0] -00000724: main_argv :: in out u64 = R1 -00000725: main_result :: out u32 = low:32[R0] - -000001f8: -000001fc: #1 := R31 - 0x20 -00000202: mem := mem with [#1, el]:u64 <- R29 -00000208: mem := mem with [#1 + 8, el]:u64 <- R30 -0000020c: R31 := #1 -00000211: R0 := 0x11000 -00000217: R29 := R31 -0000021f: mem := mem with [R31 + 0x10, el]:u64 <- R19 -00000225: R19 := R0 + 0x18 -0000022c: R0 := mem[R0 + 0x18, el]:u64 -00000231: R30 := 0x65C -00000234: call R0 with return %00000236 - -00000236: -0000023b: R0 := mem[R19 + 8, el]:u64 -00000240: R30 := 0x664 -00000243: call R0 with return %00000245 - -00000245: -0000024a: R0 := mem[R19 + 0x10, el]:u64 -0000024f: R30 := 0x66C -00000252: call R0 with return %00000254 - -00000254: -00000257: R0 := 0 -0000025e: R19 := mem[R31 + 0x10, el]:u64 -00000265: R29 := mem[R31, el]:u64 -0000026a: R30 := mem[R31 + 8, el]:u64 -0000026e: R31 := R31 + 0x20 -00000273: call R30 with noreturn - -000006f0: sub register_tm_clones(register_tm_clones_result) -00000726: register_tm_clones_result :: out u32 = low:32[R0] - -0000031f: -00000322: R0 := 0x11000 -00000328: R0 := R0 + 0x30 -0000032d: R1 := 0x11000 -00000333: R1 := R1 + 0x30 -0000033a: R1 := R1 + ~R0 + 1 -00000340: R2 := 0.63:63[R1] -00000347: R1 := R2 + (R1 ~>> 3) -0000034d: R1 := extend:64[63:1[R1]] -00000353: when R1 = 0 goto %00000351 -00000711: goto %0000045b - -0000045b: -0000045e: R2 := 0x10000 -00000465: R2 := mem[R2 + 0xFF8, el]:u64 -0000046a: when R2 = 0 goto %00000351 -00000712: goto %0000046e - -00000351: -00000359: call R30 with noreturn - -0000046e: -00000472: R16 := R2 -00000477: call R16 with noreturn - -000006f3: sub sub_seven(sub_seven_result) -00000727: sub_seven_result :: out u32 = low:32[R0] - -00000401: -00000404: R1 := 0x11000 -0000040b: R0 := pad:64[mem[R1 + 0x10, el]:u32] -00000411: R0 := pad:64[31:0[R0] - 7] -00000419: mem := mem with [R1 + 0x10, el]:u32 <- 31:0[R0] -0000041e: call R30 with noreturn diff --git a/src/test/indirect_calls/jumptable2/gcc_O2/jumptable2.md5sum b/src/test/indirect_calls/jumptable2/gcc_O2/jumptable2.md5sum new file mode 100644 index 000000000..e0e7cf803 --- /dev/null +++ b/src/test/indirect_calls/jumptable2/gcc_O2/jumptable2.md5sum @@ -0,0 +1,4 @@ +dc2e7bb72da986594bb9df137a355c0f indirect_calls/jumptable2/gcc_O2/a.out +af5ce16ef0d57f4a3d7393fba2d77260 indirect_calls/jumptable2/gcc_O2/jumptable2.relf +7129474ccc796279c0f9acc0527cf359 indirect_calls/jumptable2/gcc_O2/jumptable2.adt +7387b089ed7a517a98c42bc6a199c3d6 indirect_calls/jumptable2/gcc_O2/jumptable2.bir diff --git a/src/test/indirect_calls/jumptable2/gcc_O2/jumptable2.relf b/src/test/indirect_calls/jumptable2/gcc_O2/jumptable2.relf deleted file mode 100644 index 1c071f0b6..000000000 --- a/src/test/indirect_calls/jumptable2/gcc_O2/jumptable2.relf +++ /dev/null @@ -1,130 +0,0 @@ - -Relocation section '.rela.dyn' at offset 0x460 contains 11 entries: - Offset Info Type Symbol's Value Symbol's Name + Addend -0000000000010d98 0000000000000403 R_AARCH64_RELATIVE 790 -0000000000010da0 0000000000000403 R_AARCH64_RELATIVE 740 -0000000000010ff0 0000000000000403 R_AARCH64_RELATIVE 640 -0000000000011008 0000000000000403 R_AARCH64_RELATIVE 11008 -0000000000011018 0000000000000403 R_AARCH64_RELATIVE 7a0 -0000000000011020 0000000000000403 R_AARCH64_RELATIVE 7b4 -0000000000011028 0000000000000403 R_AARCH64_RELATIVE 7d0 -0000000000010fd8 0000000400000401 R_AARCH64_GLOB_DAT 0000000000000000 _ITM_deregisterTMCloneTable + 0 -0000000000010fe0 0000000500000401 R_AARCH64_GLOB_DAT 0000000000000000 __cxa_finalize@GLIBC_2.17 + 0 -0000000000010fe8 0000000600000401 R_AARCH64_GLOB_DAT 0000000000000000 __gmon_start__ + 0 -0000000000010ff8 0000000800000401 R_AARCH64_GLOB_DAT 0000000000000000 _ITM_registerTMCloneTable + 0 - -Relocation section '.rela.plt' at offset 0x568 contains 4 entries: - Offset Info Type Symbol's Value Symbol's Name + Addend -0000000000010fb0 0000000300000402 R_AARCH64_JUMP_SLOT 0000000000000000 __libc_start_main@GLIBC_2.34 + 0 -0000000000010fb8 0000000500000402 R_AARCH64_JUMP_SLOT 0000000000000000 __cxa_finalize@GLIBC_2.17 + 0 -0000000000010fc0 0000000600000402 R_AARCH64_JUMP_SLOT 0000000000000000 __gmon_start__ + 0 -0000000000010fc8 0000000700000402 R_AARCH64_JUMP_SLOT 0000000000000000 abort@GLIBC_2.17 + 0 - -Symbol table '.dynsym' contains 9 entries: - Num: Value Size Type Bind Vis Ndx Name - 0: 0000000000000000 0 NOTYPE LOCAL DEFAULT UND - 1: 00000000000005c8 0 SECTION LOCAL DEFAULT 11 .init - 2: 0000000000011000 0 SECTION LOCAL DEFAULT 22 .data - 3: 0000000000000000 0 FUNC GLOBAL DEFAULT UND __libc_start_main@GLIBC_2.34 (2) - 4: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_deregisterTMCloneTable - 5: 0000000000000000 0 FUNC WEAK DEFAULT UND __cxa_finalize@GLIBC_2.17 (3) - 6: 0000000000000000 0 NOTYPE WEAK DEFAULT UND __gmon_start__ - 7: 0000000000000000 0 FUNC GLOBAL DEFAULT UND abort@GLIBC_2.17 (3) - 8: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_registerTMCloneTable - -Symbol table '.symtab' contains 94 entries: - Num: Value Size Type Bind Vis Ndx Name - 0: 0000000000000000 0 NOTYPE LOCAL DEFAULT UND - 1: 0000000000000238 0 SECTION LOCAL DEFAULT 1 .interp - 2: 0000000000000254 0 SECTION LOCAL DEFAULT 2 .note.gnu.build-id - 3: 0000000000000278 0 SECTION LOCAL DEFAULT 3 .note.ABI-tag - 4: 0000000000000298 0 SECTION LOCAL DEFAULT 4 .gnu.hash - 5: 00000000000002b8 0 SECTION LOCAL DEFAULT 5 .dynsym - 6: 0000000000000390 0 SECTION LOCAL DEFAULT 6 .dynstr - 7: 000000000000041e 0 SECTION LOCAL DEFAULT 7 .gnu.version - 8: 0000000000000430 0 SECTION LOCAL DEFAULT 8 .gnu.version_r - 9: 0000000000000460 0 SECTION LOCAL DEFAULT 9 .rela.dyn - 10: 0000000000000568 0 SECTION LOCAL DEFAULT 10 .rela.plt - 11: 00000000000005c8 0 SECTION LOCAL DEFAULT 11 .init - 12: 00000000000005e0 0 SECTION LOCAL DEFAULT 12 .plt - 13: 0000000000000640 0 SECTION LOCAL DEFAULT 13 .text - 14: 00000000000007e4 0 SECTION LOCAL DEFAULT 14 .fini - 15: 00000000000007f8 0 SECTION LOCAL DEFAULT 15 .rodata - 16: 00000000000007fc 0 SECTION LOCAL DEFAULT 16 .eh_frame_hdr - 17: 0000000000000850 0 SECTION LOCAL DEFAULT 17 .eh_frame - 18: 0000000000010d98 0 SECTION LOCAL DEFAULT 18 .init_array - 19: 0000000000010da0 0 SECTION LOCAL DEFAULT 19 .fini_array - 20: 0000000000010da8 0 SECTION LOCAL DEFAULT 20 .dynamic - 21: 0000000000010f98 0 SECTION LOCAL DEFAULT 21 .got - 22: 0000000000011000 0 SECTION LOCAL DEFAULT 22 .data - 23: 0000000000011030 0 SECTION LOCAL DEFAULT 23 .bss - 24: 0000000000000000 0 SECTION LOCAL DEFAULT 24 .comment - 25: 0000000000000000 0 FILE LOCAL DEFAULT ABS Scrt1.o - 26: 0000000000000278 0 NOTYPE LOCAL DEFAULT 3 $d - 27: 0000000000000278 32 OBJECT LOCAL DEFAULT 3 __abi_tag - 28: 0000000000000680 0 NOTYPE LOCAL DEFAULT 13 $x - 29: 0000000000000864 0 NOTYPE LOCAL DEFAULT 17 $d - 30: 00000000000007f8 0 NOTYPE LOCAL DEFAULT 15 $d - 31: 0000000000000000 0 FILE LOCAL DEFAULT ABS crti.o - 32: 00000000000006b4 0 NOTYPE LOCAL DEFAULT 13 $x - 33: 00000000000006b4 20 FUNC LOCAL DEFAULT 13 call_weak_fn - 34: 00000000000005c8 0 NOTYPE LOCAL DEFAULT 11 $x - 35: 00000000000007e4 0 NOTYPE LOCAL DEFAULT 14 $x - 36: 0000000000000000 0 FILE LOCAL DEFAULT ABS crtn.o - 37: 00000000000005d8 0 NOTYPE LOCAL DEFAULT 11 $x - 38: 00000000000007f0 0 NOTYPE LOCAL DEFAULT 14 $x - 39: 0000000000000000 0 FILE LOCAL DEFAULT ABS jumptable2.c - 40: 00000000000007a0 0 NOTYPE LOCAL DEFAULT 13 $x - 41: 0000000000000640 0 NOTYPE LOCAL DEFAULT 13 $x - 42: 0000000000011010 0 NOTYPE LOCAL DEFAULT 22 $d - 43: 0000000000011018 0 NOTYPE LOCAL DEFAULT 22 $d - 44: 00000000000008d8 0 NOTYPE LOCAL DEFAULT 17 $d - 45: 0000000000000000 0 FILE LOCAL DEFAULT ABS crtstuff.c - 46: 00000000000006d0 0 NOTYPE LOCAL DEFAULT 13 $x - 47: 00000000000006d0 0 FUNC LOCAL DEFAULT 13 deregister_tm_clones - 48: 0000000000000700 0 FUNC LOCAL DEFAULT 13 register_tm_clones - 49: 0000000000011008 0 NOTYPE LOCAL DEFAULT 22 $d - 50: 0000000000000740 0 FUNC LOCAL DEFAULT 13 __do_global_dtors_aux - 51: 0000000000011030 1 OBJECT LOCAL DEFAULT 23 completed.0 - 52: 0000000000010da0 0 NOTYPE LOCAL DEFAULT 19 $d - 53: 0000000000010da0 0 OBJECT LOCAL DEFAULT 19 __do_global_dtors_aux_fini_array_entry - 54: 0000000000000790 0 FUNC LOCAL DEFAULT 13 frame_dummy - 55: 0000000000010d98 0 NOTYPE LOCAL DEFAULT 18 $d - 56: 0000000000010d98 0 OBJECT LOCAL DEFAULT 18 __frame_dummy_init_array_entry - 57: 0000000000000878 0 NOTYPE LOCAL DEFAULT 17 $d - 58: 0000000000011030 0 NOTYPE LOCAL DEFAULT 23 $d - 59: 0000000000000000 0 FILE LOCAL DEFAULT ABS crtstuff.c - 60: 0000000000000938 0 NOTYPE LOCAL DEFAULT 17 $d - 61: 0000000000000938 0 OBJECT LOCAL DEFAULT 17 __FRAME_END__ - 62: 0000000000000000 0 FILE LOCAL DEFAULT ABS - 63: 0000000000010da8 0 OBJECT LOCAL DEFAULT ABS _DYNAMIC - 64: 00000000000007fc 0 NOTYPE LOCAL DEFAULT 16 __GNU_EH_FRAME_HDR - 65: 0000000000010fd0 0 OBJECT LOCAL DEFAULT ABS _GLOBAL_OFFSET_TABLE_ - 66: 00000000000005e0 0 NOTYPE LOCAL DEFAULT 12 $x - 67: 0000000000000000 0 FUNC GLOBAL DEFAULT UND __libc_start_main@GLIBC_2.34 - 68: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_deregisterTMCloneTable - 69: 0000000000011000 0 NOTYPE WEAK DEFAULT 22 data_start - 70: 0000000000011030 0 NOTYPE GLOBAL DEFAULT 23 __bss_start__ - 71: 0000000000000000 0 FUNC WEAK DEFAULT UND __cxa_finalize@GLIBC_2.17 - 72: 0000000000011038 0 NOTYPE GLOBAL DEFAULT 23 _bss_end__ - 73: 0000000000011030 0 NOTYPE GLOBAL DEFAULT 22 _edata - 74: 0000000000011010 4 OBJECT GLOBAL DEFAULT 22 x - 75: 00000000000007e4 0 FUNC GLOBAL HIDDEN 14 _fini - 76: 0000000000011038 0 NOTYPE GLOBAL DEFAULT 23 __bss_end__ - 77: 0000000000011000 0 NOTYPE GLOBAL DEFAULT 22 __data_start - 78: 0000000000000000 0 NOTYPE WEAK DEFAULT UND __gmon_start__ - 79: 0000000000011008 0 OBJECT GLOBAL HIDDEN 22 __dso_handle - 80: 0000000000000000 0 FUNC GLOBAL DEFAULT UND abort@GLIBC_2.17 - 81: 00000000000007f8 4 OBJECT GLOBAL DEFAULT 15 _IO_stdin_used - 82: 00000000000007a0 20 FUNC GLOBAL DEFAULT 13 add_two - 83: 0000000000011038 0 NOTYPE GLOBAL DEFAULT 23 _end - 84: 0000000000000680 52 FUNC GLOBAL DEFAULT 13 _start - 85: 0000000000011038 0 NOTYPE GLOBAL DEFAULT 23 __end__ - 86: 00000000000007b4 20 FUNC GLOBAL DEFAULT 13 add_six - 87: 0000000000011030 0 NOTYPE GLOBAL DEFAULT 23 __bss_start - 88: 0000000000000640 60 FUNC GLOBAL DEFAULT 13 main - 89: 0000000000011030 0 OBJECT GLOBAL HIDDEN 22 __TMC_END__ - 90: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_registerTMCloneTable - 91: 0000000000011018 24 OBJECT GLOBAL DEFAULT 22 jump_table - 92: 00000000000005c8 0 FUNC GLOBAL HIDDEN 11 _init - 93: 00000000000007d0 20 FUNC GLOBAL DEFAULT 13 sub_seven diff --git a/src/test/indirect_calls/jumptable2/gcc_pic/jumptable2.adt b/src/test/indirect_calls/jumptable2/gcc_pic/jumptable2.adt deleted file mode 100644 index 04c318731..000000000 --- a/src/test/indirect_calls/jumptable2/gcc_pic/jumptable2.adt +++ /dev/null @@ -1,644 +0,0 @@ -Project(Attrs([Attr("filename","\"gcc_pic/jumptable2.out\""), -Attr("image-specification","(declare abi (name str))\n(declare arch (name str))\n(declare base-address (addr int))\n(declare bias (off int))\n(declare bits (size int))\n(declare code-region (addr int) (size int) (off int))\n(declare code-start (addr int))\n(declare entry-point (addr int))\n(declare external-reference (addr int) (name str))\n(declare format (name str))\n(declare is-executable (flag bool))\n(declare is-little-endian (flag bool))\n(declare llvm:base-address (addr int))\n(declare llvm:code-entry (name str) (off int) (size int))\n(declare llvm:coff-import-library (name str))\n(declare llvm:coff-virtual-section-header (name str) (addr int) (size int))\n(declare llvm:elf-program-header (name str) (off int) (size int))\n(declare llvm:elf-program-header-flags (name str) (ld bool) (r bool) \n (w bool) (x bool))\n(declare llvm:elf-virtual-program-header (name str) (addr int) (size int))\n(declare llvm:entry-point (addr int))\n(declare llvm:macho-symbol (name str) (value int))\n(declare llvm:name-reference (at int) (name str))\n(declare llvm:relocation (at int) (addr int))\n(declare llvm:section-entry (name str) (addr int) (size int) (off int))\n(declare llvm:section-flags (name str) (r bool) (w bool) (x bool))\n(declare llvm:segment-command (name str) (off int) (size int))\n(declare llvm:segment-command-flags (name str) (r bool) (w bool) (x bool))\n(declare llvm:symbol-entry (name str) (addr int) (size int) (off int)\n (value int))\n(declare llvm:virtual-segment-command (name str) (addr int) (size int))\n(declare mapped (addr int) (size int) (off int))\n(declare named-region (addr int) (size int) (name str))\n(declare named-symbol (addr int) (name str))\n(declare require (name str))\n(declare section (addr int) (size int))\n(declare segment (addr int) (size int) (r bool) (w bool) (x bool))\n(declare subarch (name str))\n(declare symbol-chunk (addr int) (size int) (root int))\n(declare symbol-value (addr int) (value int))\n(declare system (name str))\n(declare vendor (name str))\n\n(abi unknown)\n(arch aarch64)\n(base-address 0)\n(bias 0)\n(bits 64)\n(code-region 2124 20 2124)\n(code-region 1664 460 1664)\n(code-region 1552 96 1552)\n(code-region 1528 24 1528)\n(code-start 1716)\n(code-start 1940)\n(code-start 1664)\n(code-start 1976)\n(code-start 2048)\n(code-start 2012)\n(entry-point 1664)\n(external-reference 69576 _ITM_deregisterTMCloneTable)\n(external-reference 69584 __cxa_finalize)\n(external-reference 69600 __gmon_start__)\n(external-reference 69616 _ITM_registerTMCloneTable)\n(external-reference 69536 __libc_start_main)\n(external-reference 69544 __cxa_finalize)\n(external-reference 69552 __gmon_start__)\n(external-reference 69560 abort)\n(format elf)\n(is-executable true)\n(is-little-endian true)\n(llvm:base-address 0)\n(llvm:code-entry abort 0 0)\n(llvm:code-entry __cxa_finalize 0 0)\n(llvm:code-entry __libc_start_main 0 0)\n(llvm:code-entry sub_seven 2012 36)\n(llvm:code-entry _init 1528 0)\n(llvm:code-entry main 2048 76)\n(llvm:code-entry add_six 1976 36)\n(llvm:code-entry _start 1664 52)\n(llvm:code-entry add_two 1940 36)\n(llvm:code-entry abort@GLIBC_2.17 0 0)\n(llvm:code-entry _fini 2124 0)\n(llvm:code-entry __cxa_finalize@GLIBC_2.17 0 0)\n(llvm:code-entry __libc_start_main@GLIBC_2.34 0 0)\n(llvm:code-entry frame_dummy 1936 0)\n(llvm:code-entry __do_global_dtors_aux 1856 0)\n(llvm:code-entry register_tm_clones 1792 0)\n(llvm:code-entry deregister_tm_clones 1744 0)\n(llvm:code-entry call_weak_fn 1716 20)\n(llvm:code-entry .fini 2124 20)\n(llvm:code-entry .text 1664 460)\n(llvm:code-entry .plt 1552 96)\n(llvm:code-entry .init 1528 24)\n(llvm:elf-program-header 08 3464 632)\n(llvm:elf-program-header 07 0 0)\n(llvm:elf-program-header 06 2148 84)\n(llvm:elf-program-header 05 596 68)\n(llvm:elf-program-header 04 3480 496)\n(llvm:elf-program-header 03 3464 680)\n(llvm:elf-program-header 02 0 2464)\n(llvm:elf-program-header 01 568 27)\n(llvm:elf-program-header 00 64 504)\n(llvm:elf-program-header-flags 08 false true false false)\n(llvm:elf-program-header-flags 07 false true true false)\n(llvm:elf-program-header-flags 06 false true false false)\n(llvm:elf-program-header-flags 05 false true false false)\n(llvm:elf-program-header-flags 04 false true true false)\n(llvm:elf-program-header-flags 03 true true true false)\n(llvm:elf-program-header-flags 02 true true false true)\n(llvm:elf-program-header-flags 01 false true false false)\n(llvm:elf-program-header-flags 00 false true false false)\n(llvm:elf-virtual-program-header 08 69000 632)\n(llvm:elf-virtual-program-header 07 0 0)\n(llvm:elf-virtual-program-header 06 2148 84)\n(llvm:elf-virtual-program-header 05 596 68)\n(llvm:elf-virtual-program-header 04 69016 496)\n(llvm:elf-virtual-program-header 03 69000 688)\n(llvm:elf-virtual-program-header 02 0 2464)\n(llvm:elf-virtual-program-header 01 568 27)\n(llvm:elf-virtual-program-header 00 64 504)\n(llvm:entry-point 1664)\n(llvm:name-reference 69560 abort)\n(llvm:name-reference 69552 __gmon_start__)\n(llvm:name-reference 69544 __cxa_finalize)\n(llvm:name-reference 69536 __libc_start_main)\n(llvm:name-reference 69616 _ITM_registerTMCloneTable)\n(llvm:name-reference 69600 __gmon_start__)\n(llvm:name-reference 69584 __cxa_finalize)\n(llvm:name-reference 69576 _ITM_deregisterTMCloneTable)\n(llvm:section-entry .shstrtab 0 250 7007)\n(llvm:section-entry .strtab 0 583 6424)\n(llvm:section-entry .symtab 0 2232 4192)\n(llvm:section-entry .comment 0 43 4144)\n(llvm:section-entry .bss 69680 8 4144)\n(llvm:section-entry .data 69632 48 4096)\n(llvm:section-entry .got 69512 120 3976)\n(llvm:section-entry .dynamic 69016 496 3480)\n(llvm:section-entry .fini_array 69008 8 3472)\n(llvm:section-entry .init_array 69000 8 3464)\n(llvm:section-entry .eh_frame 2232 232 2232)\n(llvm:section-entry .eh_frame_hdr 2148 84 2148)\n(llvm:section-entry .rodata 2144 4 2144)\n(llvm:section-entry .fini 2124 20 2124)\n(llvm:section-entry .text 1664 460 1664)\n(llvm:section-entry .plt 1552 96 1552)\n(llvm:section-entry .init 1528 24 1528)\n(llvm:section-entry .rela.plt 1432 96 1432)\n(llvm:section-entry .rela.dyn 1120 312 1120)\n(llvm:section-entry .gnu.version_r 1072 48 1072)\n(llvm:section-entry .gnu.version 1054 18 1054)\n(llvm:section-entry .dynstr 912 141 912)\n(llvm:section-entry .dynsym 696 216 696)\n(llvm:section-entry .gnu.hash 664 28 664)\n(llvm:section-entry .note.ABI-tag 632 32 632)\n(llvm:section-entry .note.gnu.build-id 596 36 596)\n(llvm:section-entry .interp 568 27 568)\n(llvm:section-flags .shstrtab true false false)\n(llvm:section-flags .strtab true false false)\n(llvm:section-flags .symtab true false false)\n(llvm:section-flags .comment true false false)\n(llvm:section-flags .bss true true false)\n(llvm:section-flags .data true true false)\n(llvm:section-flags .got true true false)\n(llvm:section-flags .dynamic true true false)\n(llvm:section-flags .fini_array true true false)\n(llvm:section-flags .init_array true true false)\n(llvm:section-flags .eh_frame true false false)\n(llvm:section-flags .eh_frame_hdr true false false)\n(llvm:section-flags .rodata true false false)\n(llvm:section-flags .fini true false true)\n(llvm:section-flags .text true false true)\n(llvm:section-flags .plt true false true)\n(llvm:section-flags .init true false true)\n(llvm:section-flags .rela.plt true false false)\n(llvm:section-flags .rela.dyn true false false)\n(llvm:section-flags .gnu.version_r true false false)\n(llvm:section-flags .gnu.version true false false)\n(llvm:section-flags .dynstr true false false)\n(llvm:section-flags .dynsym true false false)\n(llvm:section-flags .gnu.hash true false false)\n(llvm:section-flags .note.ABI-tag true false false)\n(llvm:section-flags .note.gnu.build-id true false false)\n(llvm:section-flags .interp true false false)\n(llvm:symbol-entry abort 0 0 0 0)\n(llvm:symbol-entry __cxa_finalize 0 0 0 0)\n(llvm:symbol-entry __libc_start_main 0 0 0 0)\n(llvm:symbol-entry sub_seven 2012 36 2012 2012)\n(llvm:symbol-entry _init 1528 0 1528 1528)\n(llvm:symbol-entry main 2048 76 2048 2048)\n(llvm:symbol-entry add_six 1976 36 1976 1976)\n(llvm:symbol-entry _start 1664 52 1664 1664)\n(llvm:symbol-entry add_two 1940 36 1940 1940)\n(llvm:symbol-entry abort@GLIBC_2.17 0 0 0 0)\n(llvm:symbol-entry _fini 2124 0 2124 2124)\n(llvm:symbol-entry __cxa_finalize@GLIBC_2.17 0 0 0 0)\n(llvm:symbol-entry __libc_start_main@GLIBC_2.34 0 0 0 0)\n(llvm:symbol-entry frame_dummy 1936 0 1936 1936)\n(llvm:symbol-entry __do_global_dtors_aux 1856 0 1856 1856)\n(llvm:symbol-entry register_tm_clones 1792 0 1792 1792)\n(llvm:symbol-entry deregister_tm_clones 1744 0 1744 1744)\n(llvm:symbol-entry call_weak_fn 1716 20 1716 1716)\n(mapped 0 2464 0)\n(mapped 69000 680 3464)\n(named-region 0 2464 02)\n(named-region 69000 688 03)\n(named-region 568 27 .interp)\n(named-region 596 36 .note.gnu.build-id)\n(named-region 632 32 .note.ABI-tag)\n(named-region 664 28 .gnu.hash)\n(named-region 696 216 .dynsym)\n(named-region 912 141 .dynstr)\n(named-region 1054 18 .gnu.version)\n(named-region 1072 48 .gnu.version_r)\n(named-region 1120 312 .rela.dyn)\n(named-region 1432 96 .rela.plt)\n(named-region 1528 24 .init)\n(named-region 1552 96 .plt)\n(named-region 1664 460 .text)\n(named-region 2124 20 .fini)\n(named-region 2144 4 .rodata)\n(named-region 2148 84 .eh_frame_hdr)\n(named-region 2232 232 .eh_frame)\n(named-region 69000 8 .init_array)\n(named-region 69008 8 .fini_array)\n(named-region 69016 496 .dynamic)\n(named-region 69512 120 .got)\n(named-region 69632 48 .data)\n(named-region 69680 8 .bss)\n(named-region 0 43 .comment)\n(named-region 0 2232 .symtab)\n(named-region 0 583 .strtab)\n(named-region 0 250 .shstrtab)\n(named-symbol 1716 call_weak_fn)\n(named-symbol 1744 deregister_tm_clones)\n(named-symbol 1792 register_tm_clones)\n(named-symbol 1856 __do_global_dtors_aux)\n(named-symbol 1936 frame_dummy)\n(named-symbol 0 __libc_start_main@GLIBC_2.34)\n(named-symbol 0 __cxa_finalize@GLIBC_2.17)\n(named-symbol 2124 _fini)\n(named-symbol 0 abort@GLIBC_2.17)\n(named-symbol 1940 add_two)\n(named-symbol 1664 _start)\n(named-symbol 1976 add_six)\n(named-symbol 2048 main)\n(named-symbol 1528 _init)\n(named-symbol 2012 sub_seven)\n(named-symbol 0 __libc_start_main)\n(named-symbol 0 __cxa_finalize)\n(named-symbol 0 abort)\n(require libc.so.6)\n(section 568 27)\n(section 596 36)\n(section 632 32)\n(section 664 28)\n(section 696 216)\n(section 912 141)\n(section 1054 18)\n(section 1072 48)\n(section 1120 312)\n(section 1432 96)\n(section 1528 24)\n(section 1552 96)\n(section 1664 460)\n(section 2124 20)\n(section 2144 4)\n(section 2148 84)\n(section 2232 232)\n(section 69000 8)\n(section 69008 8)\n(section 69016 496)\n(section 69512 120)\n(section 69632 48)\n(section 69680 8)\n(section 0 43)\n(section 0 2232)\n(section 0 583)\n(section 0 250)\n(segment 0 2464 true false true)\n(segment 69000 688 true true false)\n(subarch v8)\n(symbol-chunk 1716 20 1716)\n(symbol-chunk 1940 36 1940)\n(symbol-chunk 1664 52 1664)\n(symbol-chunk 1976 36 1976)\n(symbol-chunk 2048 76 2048)\n(symbol-chunk 2012 36 2012)\n(symbol-value 1716 1716)\n(symbol-value 1744 1744)\n(symbol-value 1792 1792)\n(symbol-value 1856 1856)\n(symbol-value 1936 1936)\n(symbol-value 2124 2124)\n(symbol-value 1940 1940)\n(symbol-value 1664 1664)\n(symbol-value 1976 1976)\n(symbol-value 2048 2048)\n(symbol-value 1528 1528)\n(symbol-value 2012 2012)\n(symbol-value 0 0)\n(system \"\")\n(vendor \"\")\n"), -Attr("abi-name","\"aarch64-linux-gnu-elf\"")]), -Sections([Section(".shstrtab", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x80\x06\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x60\x1c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x38\x00\x09\x00\x40\x00\x1c\x00\x1b\x00\x06\x00\x00\x00\x04\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x04\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xa0\x09\x00\x00\x00\x00\x00\x00\xa0\x09\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x01\x00\x00\x00\x06\x00\x00\x00\x88\x0d\x00\x00\x00\x00\x00\x00\x88\x0d"), -Section(".strtab", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x80\x06\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x60\x1c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x38\x00\x09\x00\x40\x00\x1c\x00\x1b\x00\x06\x00\x00\x00\x04\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x04\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xa0\x09\x00\x00\x00\x00\x00\x00\xa0\x09\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x01\x00\x00\x00\x06\x00\x00\x00\x88\x0d\x00\x00\x00\x00\x00\x00\x88\x0d\x01\x00\x00\x00\x00\x00\x88\x0d\x01\x00\x00\x00\x00\x00\xa8\x02\x00\x00\x00\x00\x00\x00\xb0\x02\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x02\x00\x00\x00\x06\x00\x00\x00\x98\x0d\x00\x00\x00\x00\x00\x00\x98\x0d\x01\x00\x00\x00\x00\x00\x98\x0d\x01\x00\x00\x00\x00\x00\xf0\x01\x00\x00\x00\x00\x00\x00\xf0\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x04\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x50\xe5\x74\x64\x04\x00\x00\x00\x64\x08\x00\x00\x00\x00\x00\x00\x64\x08\x00\x00\x00\x00\x00\x00\x64\x08\x00\x00\x00\x00\x00\x00\x54\x00\x00\x00\x00\x00\x00\x00\x54\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x51\xe5\x74\x64\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x52\xe5\x74\x64\x04\x00\x00\x00\x88\x0d\x00\x00\x00\x00\x00\x00\x88\x0d\x01\x00\x00\x00\x00\x00\x88\x0d\x01\x00\x00\x00\x00\x00\x78\x02\x00\x00\x00\x00\x00\x00\x78\x02\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x2f\x6c\x69\x62\x2f\x6c\x64\x2d\x6c\x69\x6e\x75\x78\x2d\x61"), -Section(".symtab", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x80\x06\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x60\x1c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x38\x00\x09\x00\x40\x00\x1c\x00\x1b\x00\x06\x00\x00\x00\x04\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x04\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xa0\x09\x00\x00\x00\x00\x00\x00\xa0\x09\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x01\x00\x00\x00\x06\x00\x00\x00\x88\x0d\x00\x00\x00\x00\x00\x00\x88\x0d\x01\x00\x00\x00\x00\x00\x88\x0d\x01\x00\x00\x00\x00\x00\xa8\x02\x00\x00\x00\x00\x00\x00\xb0\x02\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x02\x00\x00\x00\x06\x00\x00\x00\x98\x0d\x00\x00\x00\x00\x00\x00\x98\x0d\x01\x00\x00\x00\x00\x00\x98\x0d\x01\x00\x00\x00\x00\x00\xf0\x01\x00\x00\x00\x00\x00\x00\xf0\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x04\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x50\xe5\x74\x64\x04\x00\x00\x00\x64\x08\x00\x00\x00\x00\x00\x00\x64\x08\x00\x00\x00\x00\x00\x00\x64\x08\x00\x00\x00\x00\x00\x00\x54\x00\x00\x00\x00\x00\x00\x00\x54\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x51\xe5\x74\x64\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x52\xe5\x74\x64\x04\x00\x00\x00\x88\x0d\x00\x00\x00\x00\x00\x00\x88\x0d\x01\x00\x00\x00\x00\x00\x88\x0d\x01\x00\x00\x00\x00\x00\x78\x02\x00\x00\x00\x00\x00\x00\x78\x02\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x2f\x6c\x69\x62\x2f\x6c\x64\x2d\x6c\x69\x6e\x75\x78\x2d\x61\x61\x72\x63\x68\x36\x34\x2e\x73\x6f\x2e\x31\x00\x00\x04\x00\x00\x00\x14\x00\x00\x00\x03\x00\x00\x00\x47\x4e\x55\x00\xe2\xe4\x8f\x96\x92\xa6\x78\xf5\xaf\x81\x0b\xe7\x2b\x77\x4c\xdd\x65\x79\x8a\xc7\x04\x00\x00\x00\x10\x00\x00\x00\x01\x00\x00\x00\x47\x4e\x55\x00\x00\x00\x00\x00\x03\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x01\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x0b\x00\xf8\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x16\x00\x00\x10\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x48\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x22\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x22\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x73\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5f\x5f\x63\x78\x61\x5f\x66\x69\x6e\x61\x6c\x69\x7a\x65\x00\x5f\x5f\x6c\x69\x62\x63\x5f\x73\x74\x61\x72\x74\x5f\x6d\x61\x69\x6e\x00\x61\x62\x6f\x72\x74\x00\x6c\x69\x62\x63\x2e\x73\x6f\x2e\x36\x00\x47\x4c\x49\x42\x43\x5f\x32\x2e\x31\x37\x00\x47\x4c\x49\x42\x43\x5f\x32\x2e\x33\x34\x00\x5f\x49\x54\x4d\x5f\x64\x65\x72\x65\x67\x69\x73\x74\x65\x72\x54\x4d\x43\x6c\x6f\x6e\x65\x54\x61\x62\x6c\x65\x00\x5f\x5f\x67\x6d\x6f\x6e\x5f\x73\x74\x61\x72\x74\x5f\x5f\x00\x5f\x49\x54\x4d\x5f\x72\x65\x67\x69\x73\x74\x65\x72\x54\x4d\x43\x6c\x6f\x6e\x65\x54\x61\x62\x6c\x65\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x01\x00\x03\x00\x01\x00\x03\x00\x01\x00\x01\x00\x02\x00\x28\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x97\x91\x96\x06\x00\x00\x03\x00\x32\x00\x00\x00\x10\x00\x00\x00\xb4\x91\x96\x06\x00\x00\x02\x00\x3d\x00\x00\x00\x00\x00\x00\x00\x88\x0d\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x90\x07\x00\x00\x00\x00\x00\x00\x90\x0d\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x40\x07\x00\x00\x00\x00\x00\x00\xd8\x0f\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x10\x10\x01\x00\x00\x00\x00\x00\xe8\x0f\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\xf8\x0f\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x18\x10\x01\x00\x00\x00\x00\x00\x08\x10\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x08\x10\x01\x00\x00\x00\x00\x00\x18\x10\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x94\x07\x00\x00\x00\x00\x00\x00\x20\x10\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\xb8\x07\x00\x00\x00\x00\x00\x00\x28\x10\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\xdc\x07\x00\x00\x00\x00\x00\x00\xc8\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xd0\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe0\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xf0\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xa0\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xa8\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xb0\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xb8\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1f\x20\x03\xd5\xfd\x7b\xbf\xa9\xfd\x03\x00\x91\x2c\x00\x00\x94\xfd\x7b\xc1\xa8\xc0\x03\x5f\xd6\xf0\x7b\xbf\xa9\x90\x00\x00\x90\x11\xce\x47\xf9\x10\x62\x3e\x91\x20\x02\x1f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x90\x00\x00\x90\x11\xd2\x47\xf9\x10\x82\x3e\x91\x20\x02\x1f\xd6\x90\x00\x00\x90\x11\xd6\x47\xf9\x10\xa2\x3e\x91\x20\x02\x1f\xd6\x90\x00\x00\x90\x11\xda\x47\xf9\x10\xc2\x3e\x91\x20\x02\x1f\xd6\x90\x00\x00\x90\x11\xde\x47\xf9\x10\xe2\x3e\x91\x20\x02\x1f\xd6\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1f\x20\x03\xd5\x1d\x00\x80\xd2\x1e\x00\x80\xd2\xe5\x03\x00\xaa\xe1\x03\x40\xf9\xe2\x23\x00\x91\xe6\x03\x00\x91\x80\x00\x00\x90\x00\xf4\x47\xf9\x03\x00\x80\xd2\x04\x00\x80\xd2\xe1\xff\xff\x97\xec\xff\xff\x97\x80\x00\x00\x90\x00\xf0\x47\xf9\x40\x00\x00\xb4\xe4\xff\xff\x17\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x80\x00\x00\xb0\x00\xc0\x00\x91\x81\x00\x00\xb0\x21\xc0\x00\x91\x3f\x00\x00\xeb\xc0\x00\x00\x54\x81\x00\x00\x90\x21\xe4\x47\xf9\x61\x00\x00\xb4\xf0\x03\x01\xaa\x00\x02\x1f\xd6\xc0\x03\x5f\xd6\x80\x00\x00\xb0\x00\xc0\x00\x91\x81\x00\x00\xb0\x21\xc0\x00\x91\x21\x00\x00\xcb\x22\xfc\x7f\xd3\x41\x0c\x81\x8b\x21\xfc\x41\x93\xc1\x00\x00\xb4\x82\x00\x00\x90\x42\xf8\x47\xf9\x62\x00\x00\xb4\xf0\x03\x02\xaa\x00\x02\x1f\xd6\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\xfd\x7b\xbe\xa9\xfd\x03\x00\x91\xf3\x0b\x00\xf9\x93\x00\x00\xb0\x60\xc2\x40\x39\x40\x01\x00\x35\x80\x00\x00\x90\x00\xe8\x47\xf9\x80\x00\x00\xb4\x80\x00\x00\xb0\x00\x04\x40\xf9\xb5\xff\xff\x97\xd8\xff\xff\x97\x20\x00\x80\x52\x60\xc2\x00\x39\xf3\x0b\x40\xf9\xfd\x7b\xc2\xa8\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\xdc\xff\xff\x17\x80\x00\x00\x90\x00\xec\x47\xf9\x00\x00\x40\xb9\x01\x08\x00\x11\x80\x00\x00\x90\x00\xec\x47\xf9\x01\x00\x00\xb9\x1f\x20\x03\xd5\xc0\x03\x5f\xd6\x80\x00\x00\x90\x00\xec\x47\xf9\x00\x00\x40\xb9\x01\x18\x00\x11\x80\x00\x00\x90\x00\xec\x47\xf9\x01\x00\x00\xb9\x1f\x20\x03\xd5\xc0\x03\x5f\xd6\x80\x00\x00\x90\x00\xec\x47\xf9\x00\x00\x40\xb9\x01\x1c\x00\x51\x80\x00\x00\x90\x00\xec\x47\xf9\x01\x00\x00\xb9\x1f\x20\x03\xd5\xc0\x03\x5f\xd6\xfd\x7b\xbe\xa9\xfd\x03\x00\x91\xe0\x1f\x00\xb9\xe1\x0b\x00\xf9\x80\x00\x00\x90\x00\xfc\x47\xf9\x00\x00\x40\xf9\x00\x00\x3f\xd6\x80\x00\x00\x90\x00\xfc\x47\xf9\x00\x04\x40\xf9\x00\x00\x3f\xd6\x80\x00\x00\x90\x00\xfc\x47\xf9\x00\x08\x40\xf9\x00\x00\x3f\xd6\x00\x00\x80\x52\xfd\x7b\xc2\xa8\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\xfd\x7b\xbf\xa9\xfd\x03\x00\x91\xfd\x7b\xc1\xa8\xc0\x03\x5f\xd6\x01\x00\x02\x00\x01\x1b\x03\x3b\x50\x00\x00\x00\x09\x00\x00\x00\x1c\xfe\xff\xff\x68\x00\x00\x00\x6c\xfe\xff\xff\x7c\x00\x00\x00\x9c\xfe\xff\xff\x90\x00\x00\x00\xdc\xfe\xff\xff\xa4\x00\x00\x00\x2c\xff\xff\xff\xc8\x00\x00\x00\x30\xff\xff\xff\xdc\x00\x00\x00\x54\xff\xff\xff\xf0\x00\x00\x00\x78\xff\xff\xff\x04\x01\x00\x00\x9c\xff\xff\xff\x18\x01\x00\x00"), -Section(".comment", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x80\x06\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x60\x1c\x00"), -Section(".interp", 0x238, "\x2f\x6c\x69\x62\x2f\x6c\x64\x2d\x6c\x69\x6e\x75\x78\x2d\x61\x61\x72\x63\x68\x36\x34\x2e\x73\x6f\x2e\x31\x00"), -Section(".note.gnu.build-id", 0x254, "\x04\x00\x00\x00\x14\x00\x00\x00\x03\x00\x00\x00\x47\x4e\x55\x00\xe2\xe4\x8f\x96\x92\xa6\x78\xf5\xaf\x81\x0b\xe7\x2b\x77\x4c\xdd\x65\x79\x8a\xc7"), -Section(".note.ABI-tag", 0x278, "\x04\x00\x00\x00\x10\x00\x00\x00\x01\x00\x00\x00\x47\x4e\x55\x00\x00\x00\x00\x00\x03\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00"), -Section(".gnu.hash", 0x298, "\x01\x00\x00\x00\x01\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".dynsym", 0x2B8, "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x0b\x00\xf8\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x16\x00\x00\x10\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x48\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x22\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x22\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x73\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".dynstr", 0x390, "\x00\x5f\x5f\x63\x78\x61\x5f\x66\x69\x6e\x61\x6c\x69\x7a\x65\x00\x5f\x5f\x6c\x69\x62\x63\x5f\x73\x74\x61\x72\x74\x5f\x6d\x61\x69\x6e\x00\x61\x62\x6f\x72\x74\x00\x6c\x69\x62\x63\x2e\x73\x6f\x2e\x36\x00\x47\x4c\x49\x42\x43\x5f\x32\x2e\x31\x37\x00\x47\x4c\x49\x42\x43\x5f\x32\x2e\x33\x34\x00\x5f\x49\x54\x4d\x5f\x64\x65\x72\x65\x67\x69\x73\x74\x65\x72\x54\x4d\x43\x6c\x6f\x6e\x65\x54\x61\x62\x6c\x65\x00\x5f\x5f\x67\x6d\x6f\x6e\x5f\x73\x74\x61\x72\x74\x5f\x5f\x00\x5f\x49\x54\x4d\x5f\x72\x65\x67\x69\x73\x74\x65\x72\x54\x4d\x43\x6c\x6f\x6e\x65\x54\x61\x62\x6c\x65\x00"), -Section(".gnu.version", 0x41E, "\x00\x00\x00\x00\x00\x00\x02\x00\x01\x00\x03\x00\x01\x00\x03\x00\x01\x00"), -Section(".gnu.version_r", 0x430, "\x01\x00\x02\x00\x28\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x97\x91\x96\x06\x00\x00\x03\x00\x32\x00\x00\x00\x10\x00\x00\x00\xb4\x91\x96\x06\x00\x00\x02\x00\x3d\x00\x00\x00\x00\x00\x00\x00"), -Section(".rela.dyn", 0x460, "\x88\x0d\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x90\x07\x00\x00\x00\x00\x00\x00\x90\x0d\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x40\x07\x00\x00\x00\x00\x00\x00\xd8\x0f\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x10\x10\x01\x00\x00\x00\x00\x00\xe8\x0f\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\xf8\x0f\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x18\x10\x01\x00\x00\x00\x00\x00\x08\x10\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x08\x10\x01\x00\x00\x00\x00\x00\x18\x10\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x94\x07\x00\x00\x00\x00\x00\x00\x20\x10\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\xb8\x07\x00\x00\x00\x00\x00\x00\x28\x10\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\xdc\x07\x00\x00\x00\x00\x00\x00\xc8\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xd0\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe0\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xf0\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".rela.plt", 0x598, "\xa0\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xa8\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xb0\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xb8\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".init", 0x5F8, "\x1f\x20\x03\xd5\xfd\x7b\xbf\xa9\xfd\x03\x00\x91\x2c\x00\x00\x94\xfd\x7b\xc1\xa8\xc0\x03\x5f\xd6"), -Section(".plt", 0x610, "\xf0\x7b\xbf\xa9\x90\x00\x00\x90\x11\xce\x47\xf9\x10\x62\x3e\x91\x20\x02\x1f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x90\x00\x00\x90\x11\xd2\x47\xf9\x10\x82\x3e\x91\x20\x02\x1f\xd6\x90\x00\x00\x90\x11\xd6\x47\xf9\x10\xa2\x3e\x91\x20\x02\x1f\xd6\x90\x00\x00\x90\x11\xda\x47\xf9\x10\xc2\x3e\x91\x20\x02\x1f\xd6\x90\x00\x00\x90\x11\xde\x47\xf9\x10\xe2\x3e\x91\x20\x02\x1f\xd6"), -Section(".text", 0x680, "\x1f\x20\x03\xd5\x1d\x00\x80\xd2\x1e\x00\x80\xd2\xe5\x03\x00\xaa\xe1\x03\x40\xf9\xe2\x23\x00\x91\xe6\x03\x00\x91\x80\x00\x00\x90\x00\xf4\x47\xf9\x03\x00\x80\xd2\x04\x00\x80\xd2\xe1\xff\xff\x97\xec\xff\xff\x97\x80\x00\x00\x90\x00\xf0\x47\xf9\x40\x00\x00\xb4\xe4\xff\xff\x17\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x80\x00\x00\xb0\x00\xc0\x00\x91\x81\x00\x00\xb0\x21\xc0\x00\x91\x3f\x00\x00\xeb\xc0\x00\x00\x54\x81\x00\x00\x90\x21\xe4\x47\xf9\x61\x00\x00\xb4\xf0\x03\x01\xaa\x00\x02\x1f\xd6\xc0\x03\x5f\xd6\x80\x00\x00\xb0\x00\xc0\x00\x91\x81\x00\x00\xb0\x21\xc0\x00\x91\x21\x00\x00\xcb\x22\xfc\x7f\xd3\x41\x0c\x81\x8b\x21\xfc\x41\x93\xc1\x00\x00\xb4\x82\x00\x00\x90\x42\xf8\x47\xf9\x62\x00\x00\xb4\xf0\x03\x02\xaa\x00\x02\x1f\xd6\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\xfd\x7b\xbe\xa9\xfd\x03\x00\x91\xf3\x0b\x00\xf9\x93\x00\x00\xb0\x60\xc2\x40\x39\x40\x01\x00\x35\x80\x00\x00\x90\x00\xe8\x47\xf9\x80\x00\x00\xb4\x80\x00\x00\xb0\x00\x04\x40\xf9\xb5\xff\xff\x97\xd8\xff\xff\x97\x20\x00\x80\x52\x60\xc2\x00\x39\xf3\x0b\x40\xf9\xfd\x7b\xc2\xa8\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\xdc\xff\xff\x17\x80\x00\x00\x90\x00\xec\x47\xf9\x00\x00\x40\xb9\x01\x08\x00\x11\x80\x00\x00\x90\x00\xec\x47\xf9\x01\x00\x00\xb9\x1f\x20\x03\xd5\xc0\x03\x5f\xd6\x80\x00\x00\x90\x00\xec\x47\xf9\x00\x00\x40\xb9\x01\x18\x00\x11\x80\x00\x00\x90\x00\xec\x47\xf9\x01\x00\x00\xb9\x1f\x20\x03\xd5\xc0\x03\x5f\xd6\x80\x00\x00\x90\x00\xec\x47\xf9\x00\x00\x40\xb9\x01\x1c\x00\x51\x80\x00\x00\x90\x00\xec\x47\xf9\x01\x00\x00\xb9\x1f\x20\x03\xd5\xc0\x03\x5f\xd6\xfd\x7b\xbe\xa9\xfd\x03\x00\x91\xe0\x1f\x00\xb9\xe1\x0b\x00\xf9\x80\x00\x00\x90\x00\xfc\x47\xf9\x00\x00\x40\xf9\x00\x00\x3f\xd6\x80\x00\x00\x90\x00\xfc\x47\xf9\x00\x04\x40\xf9\x00\x00\x3f\xd6\x80\x00\x00\x90\x00\xfc\x47\xf9\x00\x08\x40\xf9\x00\x00\x3f\xd6\x00\x00\x80\x52\xfd\x7b\xc2\xa8\xc0\x03\x5f\xd6"), -Section(".fini", 0x84C, "\x1f\x20\x03\xd5\xfd\x7b\xbf\xa9\xfd\x03\x00\x91\xfd\x7b\xc1\xa8\xc0\x03\x5f\xd6"), -Section(".rodata", 0x860, "\x01\x00\x02\x00"), -Section(".eh_frame_hdr", 0x864, "\x01\x1b\x03\x3b\x50\x00\x00\x00\x09\x00\x00\x00\x1c\xfe\xff\xff\x68\x00\x00\x00\x6c\xfe\xff\xff\x7c\x00\x00\x00\x9c\xfe\xff\xff\x90\x00\x00\x00\xdc\xfe\xff\xff\xa4\x00\x00\x00\x2c\xff\xff\xff\xc8\x00\x00\x00\x30\xff\xff\xff\xdc\x00\x00\x00\x54\xff\xff\xff\xf0\x00\x00\x00\x78\xff\xff\xff\x04\x01\x00\x00\x9c\xff\xff\xff\x18\x01\x00\x00"), -Section(".eh_frame", 0x8B8, "\x10\x00\x00\x00\x00\x00\x00\x00\x01\x7a\x52\x00\x04\x78\x1e\x01\x1b\x0c\x1f\x00\x10\x00\x00\x00\x18\x00\x00\x00\xac\xfd\xff\xff\x34\x00\x00\x00\x00\x41\x07\x1e\x10\x00\x00\x00\x2c\x00\x00\x00\xe8\xfd\xff\xff\x30\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x40\x00\x00\x00\x04\xfe\xff\xff\x3c\x00\x00\x00\x00\x00\x00\x00\x20\x00\x00\x00\x54\x00\x00\x00\x30\xfe\xff\xff\x48\x00\x00\x00\x00\x41\x0e\x20\x9d\x04\x9e\x03\x42\x93\x02\x4e\xde\xdd\xd3\x0e\x00\x00\x00\x00\x10\x00\x00\x00\x78\x00\x00\x00\x5c\xfe\xff\xff\x04\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x8c\x00\x00\x00\x4c\xfe\xff\xff\x24\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\xa0\x00\x00\x00\x5c\xfe\xff\xff\x24\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\xb4\x00\x00\x00\x6c\xfe\xff\xff\x24\x00\x00\x00\x00\x00\x00\x00\x1c\x00\x00\x00\xc8\x00\x00\x00\x7c\xfe\xff\xff\x4c\x00\x00\x00\x00\x41\x0e\x20\x9d\x04\x9e\x03\x51\xde\xdd\x0e\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".fini_array", 0x10D90, "\x40\x07\x00\x00\x00\x00\x00\x00"), -Section(".dynamic", 0x10D98, "\x01\x00\x00\x00\x00\x00\x00\x00\x28\x00\x00\x00\x00\x00\x00\x00\x0c\x00\x00\x00\x00\x00\x00\x00\xf8\x05\x00\x00\x00\x00\x00\x00\x0d\x00\x00\x00\x00\x00\x00\x00\x4c\x08\x00\x00\x00\x00\x00\x00\x19\x00\x00\x00\x00\x00\x00\x00\x88\x0d\x01\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x1a\x00\x00\x00\x00\x00\x00\x00\x90\x0d\x01\x00\x00\x00\x00\x00\x1c\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\xf5\xfe\xff\x6f\x00\x00\x00\x00\x98\x02\x00\x00\x00\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x90\x03\x00\x00\x00\x00\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\xb8\x02\x00\x00\x00\x00\x00\x00\x0a\x00\x00\x00\x00\x00\x00\x00\x8d\x00\x00\x00\x00\x00\x00\x00\x0b\x00\x00\x00\x00\x00\x00\x00\x18\x00\x00\x00\x00\x00\x00\x00\x15\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x88\x0f\x01\x00\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x60\x00\x00\x00\x00\x00\x00\x00\x14\x00\x00\x00\x00\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x17\x00\x00\x00\x00\x00\x00\x00\x98\x05\x00\x00\x00\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x60\x04\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x38\x01\x00\x00\x00\x00\x00\x00\x09\x00\x00\x00\x00\x00\x00\x00\x18\x00\x00\x00\x00\x00\x00\x00\x1e\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\xfb\xff\xff\x6f\x00\x00\x00\x00\x01\x00\x00\x08\x00\x00\x00\x00\xfe\xff\xff\x6f\x00\x00\x00\x00\x30\x04\x00\x00\x00\x00\x00\x00\xff\xff\xff\x6f\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\xf0\xff\xff\x6f\x00\x00\x00\x00\x1e\x04\x00\x00\x00\x00\x00\x00\xf9\xff\xff\x6f\x00\x00\x00\x00\x09\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".got", 0x10F88, "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x06\x00\x00\x00\x00\x00\x00\x10\x06\x00\x00\x00\x00\x00\x00\x10\x06\x00\x00\x00\x00\x00\x00\x10\x06\x00\x00\x00\x00\x00\x00\x98\x0d\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x10\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x18\x10\x01\x00\x00\x00\x00\x00"), -Section(".data", 0x11000, "\x00\x00\x00\x00\x00\x00\x00\x00\x08\x10\x01\x00\x00\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x94\x07\x00\x00\x00\x00\x00\x00\xb8\x07\x00\x00\x00\x00\x00\x00\xdc\x07\x00\x00\x00\x00\x00\x00"), -Section(".init_array", 0x10D88, "\x90\x07\x00\x00\x00\x00\x00\x00")]), -Memmap([Annotation(Region(0x0,0x99F), Attr("segment","02 0 2464")), -Annotation(Region(0x680,0x6B3), Attr("symbol","\"_start\"")), -Annotation(Region(0x0,0xF9), Attr("section","\".shstrtab\"")), -Annotation(Region(0x0,0x246), Attr("section","\".strtab\"")), -Annotation(Region(0x0,0x8B7), Attr("section","\".symtab\"")), -Annotation(Region(0x0,0x2A), Attr("section","\".comment\"")), -Annotation(Region(0x238,0x252), Attr("section","\".interp\"")), -Annotation(Region(0x254,0x277), Attr("section","\".note.gnu.build-id\"")), -Annotation(Region(0x278,0x297), Attr("section","\".note.ABI-tag\"")), -Annotation(Region(0x298,0x2B3), Attr("section","\".gnu.hash\"")), -Annotation(Region(0x2B8,0x38F), Attr("section","\".dynsym\"")), -Annotation(Region(0x390,0x41C), Attr("section","\".dynstr\"")), -Annotation(Region(0x41E,0x42F), Attr("section","\".gnu.version\"")), -Annotation(Region(0x430,0x45F), Attr("section","\".gnu.version_r\"")), -Annotation(Region(0x460,0x597), Attr("section","\".rela.dyn\"")), -Annotation(Region(0x598,0x5F7), Attr("section","\".rela.plt\"")), -Annotation(Region(0x5F8,0x60F), Attr("section","\".init\"")), -Annotation(Region(0x610,0x66F), Attr("section","\".plt\"")), -Annotation(Region(0x5F8,0x60F), Attr("code-region","()")), -Annotation(Region(0x610,0x66F), Attr("code-region","()")), -Annotation(Region(0x680,0x6B3), Attr("symbol-info","_start 0x680 52")), -Annotation(Region(0x6B4,0x6C7), Attr("symbol","\"call_weak_fn\"")), -Annotation(Region(0x6B4,0x6C7), Attr("symbol-info","call_weak_fn 0x6B4 20")), -Annotation(Region(0x794,0x7B7), Attr("symbol","\"add_two\"")), -Annotation(Region(0x794,0x7B7), Attr("symbol-info","add_two 0x794 36")), -Annotation(Region(0x7B8,0x7DB), Attr("symbol","\"add_six\"")), -Annotation(Region(0x7B8,0x7DB), Attr("symbol-info","add_six 0x7B8 36")), -Annotation(Region(0x7DC,0x7FF), Attr("symbol","\"sub_seven\"")), -Annotation(Region(0x680,0x84B), Attr("section","\".text\"")), -Annotation(Region(0x680,0x84B), Attr("code-region","()")), -Annotation(Region(0x7DC,0x7FF), Attr("symbol-info","sub_seven 0x7DC 36")), -Annotation(Region(0x800,0x84B), Attr("symbol","\"main\"")), -Annotation(Region(0x800,0x84B), Attr("symbol-info","main 0x800 76")), -Annotation(Region(0x84C,0x85F), Attr("section","\".fini\"")), -Annotation(Region(0x84C,0x85F), Attr("code-region","()")), -Annotation(Region(0x860,0x863), Attr("section","\".rodata\"")), -Annotation(Region(0x864,0x8B7), Attr("section","\".eh_frame_hdr\"")), -Annotation(Region(0x8B8,0x99F), Attr("section","\".eh_frame\"")), -Annotation(Region(0x10D88,0x1102F), Attr("segment","03 0x10D88 688")), -Annotation(Region(0x10D90,0x10D97), Attr("section","\".fini_array\"")), -Annotation(Region(0x10D98,0x10F87), Attr("section","\".dynamic\"")), -Annotation(Region(0x10F88,0x10FFF), Attr("section","\".got\"")), -Annotation(Region(0x11000,0x1102F), Attr("section","\".data\"")), -Annotation(Region(0x10D88,0x10D8F), Attr("section","\".init_array\""))]), -Program(Tid(1_826, "%00000722"), Attrs([]), - Subs([Sub(Tid(1_770, "@__cxa_finalize"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x640"), -Attr("stub","()")]), "__cxa_finalize", Args([Arg(Tid(1_827, "%00000723"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("__cxa_finalize_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(1_228, "@__cxa_finalize"), - Attrs([Attr("address","0x640")]), Phis([]), -Defs([Def(Tid(1_476, "%000005c4"), Attrs([Attr("address","0x640"), -Attr("insn","adrp x16, #65536")]), Var("R16",Imm(64)), Int(65536,64)), -Def(Tid(1_483, "%000005cb"), Attrs([Attr("address","0x644"), -Attr("insn","ldr x17, [x16, #0xfa8]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(4008,64)),LittleEndian(),64)), -Def(Tid(1_489, "%000005d1"), Attrs([Attr("address","0x648"), -Attr("insn","add x16, x16, #0xfa8")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(4008,64)))]), Jmps([Call(Tid(1_494, "%000005d6"), - Attrs([Attr("address","0x64C"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), -Sub(Tid(1_771, "@__do_global_dtors_aux"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x740")]), - "__do_global_dtors_aux", Args([Arg(Tid(1_828, "%00000724"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("__do_global_dtors_aux_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(774, "@__do_global_dtors_aux"), - Attrs([Attr("address","0x740")]), Phis([]), Defs([Def(Tid(778, "%0000030a"), - Attrs([Attr("address","0x740"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("#3",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(18446744073709551584,64))), -Def(Tid(784, "%00000310"), Attrs([Attr("address","0x740"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("#3",Imm(64)),Var("R29",Imm(64)),LittleEndian(),64)), -Def(Tid(790, "%00000316"), Attrs([Attr("address","0x740"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("#3",Imm(64)),Int(8,64)),Var("R30",Imm(64)),LittleEndian(),64)), -Def(Tid(794, "%0000031a"), Attrs([Attr("address","0x740"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("R31",Imm(64)), -Var("#3",Imm(64))), Def(Tid(800, "%00000320"), - Attrs([Attr("address","0x744"), Attr("insn","mov x29, sp")]), - Var("R29",Imm(64)), Var("R31",Imm(64))), Def(Tid(808, "%00000328"), - Attrs([Attr("address","0x748"), Attr("insn","str x19, [sp, #0x10]")]), - Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(16,64)),Var("R19",Imm(64)),LittleEndian(),64)), -Def(Tid(813, "%0000032d"), Attrs([Attr("address","0x74C"), -Attr("insn","adrp x19, #69632")]), Var("R19",Imm(64)), Int(69632,64)), -Def(Tid(820, "%00000334"), Attrs([Attr("address","0x750"), -Attr("insn","ldrb w0, [x19, #0x30]")]), Var("R0",Imm(64)), -UNSIGNED(64,Load(Var("mem",Mem(64,8)),PLUS(Var("R19",Imm(64)),Int(48,64)),LittleEndian(),8)))]), -Jmps([Goto(Tid(827, "%0000033b"), Attrs([Attr("address","0x754"), -Attr("insn","cbnz w0, #0x28")]), - NEQ(Extract(31,0,Var("R0",Imm(64))),Int(0,32)), -Direct(Tid(825, "%00000339"))), Goto(Tid(1_816, "%00000718"), Attrs([]), - Int(1,1), Direct(Tid(1_173, "%00000495")))])), Blk(Tid(1_173, "%00000495"), - Attrs([Attr("address","0x758")]), Phis([]), -Defs([Def(Tid(1_176, "%00000498"), Attrs([Attr("address","0x758"), -Attr("insn","adrp x0, #65536")]), Var("R0",Imm(64)), Int(65536,64)), -Def(Tid(1_183, "%0000049f"), Attrs([Attr("address","0x75C"), -Attr("insn","ldr x0, [x0, #0xfd0]")]), Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(4048,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(1_189, "%000004a5"), Attrs([Attr("address","0x760"), -Attr("insn","cbz x0, #0x10")]), EQ(Var("R0",Imm(64)),Int(0,64)), -Direct(Tid(1_187, "%000004a3"))), Goto(Tid(1_817, "%00000719"), Attrs([]), - Int(1,1), Direct(Tid(1_212, "%000004bc")))])), Blk(Tid(1_212, "%000004bc"), - Attrs([Attr("address","0x764")]), Phis([]), -Defs([Def(Tid(1_215, "%000004bf"), Attrs([Attr("address","0x764"), -Attr("insn","adrp x0, #69632")]), Var("R0",Imm(64)), Int(69632,64)), -Def(Tid(1_222, "%000004c6"), Attrs([Attr("address","0x768"), -Attr("insn","ldr x0, [x0, #0x8]")]), Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(1_227, "%000004cb"), Attrs([Attr("address","0x76C"), -Attr("insn","bl #-0x12c")]), Var("R30",Imm(64)), Int(1904,64))]), -Jmps([Call(Tid(1_230, "%000004ce"), Attrs([Attr("address","0x76C"), -Attr("insn","bl #-0x12c")]), Int(1,1), -(Direct(Tid(1_770, "@__cxa_finalize")),Direct(Tid(1_187, "%000004a3"))))])), -Blk(Tid(1_187, "%000004a3"), Attrs([Attr("address","0x770")]), Phis([]), -Defs([Def(Tid(1_195, "%000004ab"), Attrs([Attr("address","0x770"), -Attr("insn","bl #-0xa0")]), Var("R30",Imm(64)), Int(1908,64))]), -Jmps([Call(Tid(1_197, "%000004ad"), Attrs([Attr("address","0x770"), -Attr("insn","bl #-0xa0")]), Int(1,1), -(Direct(Tid(1_786, "@deregister_tm_clones")),Direct(Tid(1_199, "%000004af"))))])), -Blk(Tid(1_199, "%000004af"), Attrs([Attr("address","0x774")]), Phis([]), -Defs([Def(Tid(1_202, "%000004b2"), Attrs([Attr("address","0x774"), -Attr("insn","mov w0, #0x1")]), Var("R0",Imm(64)), Int(1,64)), -Def(Tid(1_210, "%000004ba"), Attrs([Attr("address","0x778"), -Attr("insn","strb w0, [x19, #0x30]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R19",Imm(64)),Int(48,64)),Extract(7,0,Var("R0",Imm(64))),LittleEndian(),8))]), -Jmps([Goto(Tid(1_818, "%0000071a"), Attrs([]), Int(1,1), -Direct(Tid(825, "%00000339")))])), Blk(Tid(825, "%00000339"), - Attrs([Attr("address","0x77C")]), Phis([]), Defs([Def(Tid(835, "%00000343"), - Attrs([Attr("address","0x77C"), Attr("insn","ldr x19, [sp, #0x10]")]), - Var("R19",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(16,64)),LittleEndian(),64)), -Def(Tid(842, "%0000034a"), Attrs([Attr("address","0x780"), -Attr("insn","ldp x29, x30, [sp], #0x20")]), Var("R29",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(847, "%0000034f"), Attrs([Attr("address","0x780"), -Attr("insn","ldp x29, x30, [sp], #0x20")]), Var("R30",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(851, "%00000353"), Attrs([Attr("address","0x780"), -Attr("insn","ldp x29, x30, [sp], #0x20")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(32,64)))]), Jmps([Call(Tid(856, "%00000358"), - Attrs([Attr("address","0x784"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), Sub(Tid(1_775, "@__libc_start_main"), - Attrs([Attr("c.proto","signed (*)(signed (*)(signed , char** , char** );* main, signed , char** , \nvoid* auxv)"), -Attr("address","0x630"), Attr("stub","()")]), "__libc_start_main", - Args([Arg(Tid(1_829, "%00000725"), - Attrs([Attr("c.layout","**[ : 64]"), -Attr("c.data","Top:u64 ptr ptr"), -Attr("c.type","signed (*)(signed , char** , char** );*")]), - Var("__libc_start_main_main",Imm(64)), Var("R0",Imm(64)), In()), -Arg(Tid(1_830, "%00000726"), Attrs([Attr("c.layout","[signed : 32]"), -Attr("c.data","Top:u32"), Attr("c.type","signed")]), - Var("__libc_start_main_arg2",Imm(32)), LOW(32,Var("R1",Imm(64))), In()), -Arg(Tid(1_831, "%00000727"), Attrs([Attr("c.layout","**[char : 8]"), -Attr("c.data","Top:u8 ptr ptr"), Attr("c.type","char**")]), - Var("__libc_start_main_arg3",Imm(64)), Var("R2",Imm(64)), Both()), -Arg(Tid(1_832, "%00000728"), Attrs([Attr("c.layout","*[ : 8]"), -Attr("c.data","{} ptr"), Attr("c.type","void*")]), - Var("__libc_start_main_auxv",Imm(64)), Var("R3",Imm(64)), Both()), -Arg(Tid(1_833, "%00000729"), Attrs([Attr("c.layout","[signed : 32]"), -Attr("c.data","Top:u32"), Attr("c.type","signed")]), - Var("__libc_start_main_result",Imm(32)), LOW(32,Var("R0",Imm(64))), -Out())]), Blks([Blk(Tid(607, "@__libc_start_main"), - Attrs([Attr("address","0x630")]), Phis([]), -Defs([Def(Tid(1_454, "%000005ae"), Attrs([Attr("address","0x630"), -Attr("insn","adrp x16, #65536")]), Var("R16",Imm(64)), Int(65536,64)), -Def(Tid(1_461, "%000005b5"), Attrs([Attr("address","0x634"), -Attr("insn","ldr x17, [x16, #0xfa0]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(4000,64)),LittleEndian(),64)), -Def(Tid(1_467, "%000005bb"), Attrs([Attr("address","0x638"), -Attr("insn","add x16, x16, #0xfa0")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(4000,64)))]), Jmps([Call(Tid(1_472, "%000005c0"), - Attrs([Attr("address","0x63C"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), Sub(Tid(1_776, "@_fini"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x84C")]), - "_fini", Args([Arg(Tid(1_834, "%0000072a"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("_fini_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(31, "@_fini"), - Attrs([Attr("address","0x84C")]), Phis([]), Defs([Def(Tid(37, "%00000025"), - Attrs([Attr("address","0x850"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("#0",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(18446744073709551600,64))), -Def(Tid(43, "%0000002b"), Attrs([Attr("address","0x850"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("#0",Imm(64)),Var("R29",Imm(64)),LittleEndian(),64)), -Def(Tid(49, "%00000031"), Attrs([Attr("address","0x850"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("#0",Imm(64)),Int(8,64)),Var("R30",Imm(64)),LittleEndian(),64)), -Def(Tid(53, "%00000035"), Attrs([Attr("address","0x850"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("R31",Imm(64)), -Var("#0",Imm(64))), Def(Tid(59, "%0000003b"), Attrs([Attr("address","0x854"), -Attr("insn","mov x29, sp")]), Var("R29",Imm(64)), Var("R31",Imm(64))), -Def(Tid(66, "%00000042"), Attrs([Attr("address","0x858"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R29",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(71, "%00000047"), Attrs([Attr("address","0x858"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R30",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(75, "%0000004b"), Attrs([Attr("address","0x858"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(16,64)))]), Jmps([Call(Tid(80, "%00000050"), - Attrs([Attr("address","0x85C"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), Sub(Tid(1_777, "@_init"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x5F8")]), - "_init", Args([Arg(Tid(1_835, "%0000072b"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("_init_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(1_566, "@_init"), - Attrs([Attr("address","0x5F8")]), Phis([]), -Defs([Def(Tid(1_572, "%00000624"), Attrs([Attr("address","0x5FC"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("#6",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(18446744073709551600,64))), -Def(Tid(1_578, "%0000062a"), Attrs([Attr("address","0x5FC"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("#6",Imm(64)),Var("R29",Imm(64)),LittleEndian(),64)), -Def(Tid(1_584, "%00000630"), Attrs([Attr("address","0x5FC"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("#6",Imm(64)),Int(8,64)),Var("R30",Imm(64)),LittleEndian(),64)), -Def(Tid(1_588, "%00000634"), Attrs([Attr("address","0x5FC"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("R31",Imm(64)), -Var("#6",Imm(64))), Def(Tid(1_594, "%0000063a"), - Attrs([Attr("address","0x600"), Attr("insn","mov x29, sp")]), - Var("R29",Imm(64)), Var("R31",Imm(64))), Def(Tid(1_599, "%0000063f"), - Attrs([Attr("address","0x604"), Attr("insn","bl #0xb0")]), - Var("R30",Imm(64)), Int(1544,64))]), Jmps([Call(Tid(1_601, "%00000641"), - Attrs([Attr("address","0x604"), Attr("insn","bl #0xb0")]), Int(1,1), -(Direct(Tid(1_784, "@call_weak_fn")),Direct(Tid(1_603, "%00000643"))))])), -Blk(Tid(1_603, "%00000643"), Attrs([Attr("address","0x608")]), Phis([]), -Defs([Def(Tid(1_608, "%00000648"), Attrs([Attr("address","0x608"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R29",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(1_613, "%0000064d"), Attrs([Attr("address","0x608"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R30",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(1_617, "%00000651"), Attrs([Attr("address","0x608"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(16,64)))]), Jmps([Call(Tid(1_622, "%00000656"), - Attrs([Attr("address","0x60C"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), Sub(Tid(1_778, "@_start"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x680"), -Attr("entry-point","()")]), "_start", Args([Arg(Tid(1_836, "%0000072c"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("_start_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(544, "@_start"), - Attrs([Attr("address","0x680")]), Phis([]), Defs([Def(Tid(549, "%00000225"), - Attrs([Attr("address","0x684"), Attr("insn","mov x29, #0x0")]), - Var("R29",Imm(64)), Int(0,64)), Def(Tid(554, "%0000022a"), - Attrs([Attr("address","0x688"), Attr("insn","mov x30, #0x0")]), - Var("R30",Imm(64)), Int(0,64)), Def(Tid(560, "%00000230"), - Attrs([Attr("address","0x68C"), Attr("insn","mov x5, x0")]), - Var("R5",Imm(64)), Var("R0",Imm(64))), Def(Tid(567, "%00000237"), - Attrs([Attr("address","0x690"), Attr("insn","ldr x1, [sp]")]), - Var("R1",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(573, "%0000023d"), Attrs([Attr("address","0x694"), -Attr("insn","add x2, sp, #0x8")]), Var("R2",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(8,64))), Def(Tid(579, "%00000243"), - Attrs([Attr("address","0x698"), Attr("insn","mov x6, sp")]), - Var("R6",Imm(64)), Var("R31",Imm(64))), Def(Tid(584, "%00000248"), - Attrs([Attr("address","0x69C"), Attr("insn","adrp x0, #65536")]), - Var("R0",Imm(64)), Int(65536,64)), Def(Tid(591, "%0000024f"), - Attrs([Attr("address","0x6A0"), Attr("insn","ldr x0, [x0, #0xfe8]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(4072,64)),LittleEndian(),64)), -Def(Tid(596, "%00000254"), Attrs([Attr("address","0x6A4"), -Attr("insn","mov x3, #0x0")]), Var("R3",Imm(64)), Int(0,64)), -Def(Tid(601, "%00000259"), Attrs([Attr("address","0x6A8"), -Attr("insn","mov x4, #0x0")]), Var("R4",Imm(64)), Int(0,64)), -Def(Tid(606, "%0000025e"), Attrs([Attr("address","0x6AC"), -Attr("insn","bl #-0x7c")]), Var("R30",Imm(64)), Int(1712,64))]), -Jmps([Call(Tid(609, "%00000261"), Attrs([Attr("address","0x6AC"), -Attr("insn","bl #-0x7c")]), Int(1,1), -(Direct(Tid(1_775, "@__libc_start_main")),Direct(Tid(611, "%00000263"))))])), -Blk(Tid(611, "%00000263"), Attrs([Attr("address","0x6B0")]), Phis([]), -Defs([Def(Tid(614, "%00000266"), Attrs([Attr("address","0x6B0"), -Attr("insn","bl #-0x50")]), Var("R30",Imm(64)), Int(1716,64))]), -Jmps([Call(Tid(617, "%00000269"), Attrs([Attr("address","0x6B0"), -Attr("insn","bl #-0x50")]), Int(1,1), -(Direct(Tid(1_781, "@abort")),Direct(Tid(1_819, "%0000071b"))))])), -Blk(Tid(1_819, "%0000071b"), Attrs([]), Phis([]), Defs([]), -Jmps([Call(Tid(1_820, "%0000071c"), Attrs([]), Int(1,1), -(Direct(Tid(1_784, "@call_weak_fn")),))]))])), Sub(Tid(1_781, "@abort"), - Attrs([Attr("noreturn","()"), Attr("c.proto","void (*)(void)"), -Attr("address","0x660"), Attr("stub","()")]), "abort", Args([]), -Blks([Blk(Tid(615, "@abort"), Attrs([Attr("address","0x660")]), Phis([]), -Defs([Def(Tid(1_520, "%000005f0"), Attrs([Attr("address","0x660"), -Attr("insn","adrp x16, #65536")]), Var("R16",Imm(64)), Int(65536,64)), -Def(Tid(1_527, "%000005f7"), Attrs([Attr("address","0x664"), -Attr("insn","ldr x17, [x16, #0xfb8]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(4024,64)),LittleEndian(),64)), -Def(Tid(1_533, "%000005fd"), Attrs([Attr("address","0x668"), -Attr("insn","add x16, x16, #0xfb8")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(4024,64)))]), Jmps([Call(Tid(1_538, "%00000602"), - Attrs([Attr("address","0x66C"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), Sub(Tid(1_782, "@add_six"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x7B8")]), - "add_six", Args([Arg(Tid(1_837, "%0000072d"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("add_six_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(918, "@add_six"), - Attrs([Attr("address","0x7B8")]), Phis([]), Defs([Def(Tid(921, "%00000399"), - Attrs([Attr("address","0x7B8"), Attr("insn","adrp x0, #65536")]), - Var("R0",Imm(64)), Int(65536,64)), Def(Tid(928, "%000003a0"), - Attrs([Attr("address","0x7BC"), Attr("insn","ldr x0, [x0, #0xfd8]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(4056,64)),LittleEndian(),64)), -Def(Tid(935, "%000003a7"), Attrs([Attr("address","0x7C0"), -Attr("insn","ldr w0, [x0]")]), Var("R0",Imm(64)), -UNSIGNED(64,Load(Var("mem",Mem(64,8)),Var("R0",Imm(64)),LittleEndian(),32))), -Def(Tid(941, "%000003ad"), Attrs([Attr("address","0x7C4"), -Attr("insn","add w1, w0, #0x6")]), Var("R1",Imm(64)), -UNSIGNED(64,PLUS(Extract(31,0,Var("R0",Imm(64))),Int(6,32)))), -Def(Tid(946, "%000003b2"), Attrs([Attr("address","0x7C8"), -Attr("insn","adrp x0, #65536")]), Var("R0",Imm(64)), Int(65536,64)), -Def(Tid(953, "%000003b9"), Attrs([Attr("address","0x7CC"), -Attr("insn","ldr x0, [x0, #0xfd8]")]), Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(4056,64)),LittleEndian(),64)), -Def(Tid(961, "%000003c1"), Attrs([Attr("address","0x7D0"), -Attr("insn","str w1, [x0]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("R0",Imm(64)),Extract(31,0,Var("R1",Imm(64))),LittleEndian(),32))]), -Jmps([Call(Tid(968, "%000003c8"), Attrs([Attr("address","0x7D8"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))]))])), -Sub(Tid(1_783, "@add_two"), Attrs([Attr("c.proto","signed (*)(void)"), -Attr("address","0x794")]), "add_two", Args([Arg(Tid(1_838, "%0000072e"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("add_two_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(866, "@add_two"), - Attrs([Attr("address","0x794")]), Phis([]), Defs([Def(Tid(869, "%00000365"), - Attrs([Attr("address","0x794"), Attr("insn","adrp x0, #65536")]), - Var("R0",Imm(64)), Int(65536,64)), Def(Tid(876, "%0000036c"), - Attrs([Attr("address","0x798"), Attr("insn","ldr x0, [x0, #0xfd8]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(4056,64)),LittleEndian(),64)), -Def(Tid(883, "%00000373"), Attrs([Attr("address","0x79C"), -Attr("insn","ldr w0, [x0]")]), Var("R0",Imm(64)), -UNSIGNED(64,Load(Var("mem",Mem(64,8)),Var("R0",Imm(64)),LittleEndian(),32))), -Def(Tid(889, "%00000379"), Attrs([Attr("address","0x7A0"), -Attr("insn","add w1, w0, #0x2")]), Var("R1",Imm(64)), -UNSIGNED(64,PLUS(Extract(31,0,Var("R0",Imm(64))),Int(2,32)))), -Def(Tid(894, "%0000037e"), Attrs([Attr("address","0x7A4"), -Attr("insn","adrp x0, #65536")]), Var("R0",Imm(64)), Int(65536,64)), -Def(Tid(901, "%00000385"), Attrs([Attr("address","0x7A8"), -Attr("insn","ldr x0, [x0, #0xfd8]")]), Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(4056,64)),LittleEndian(),64)), -Def(Tid(909, "%0000038d"), Attrs([Attr("address","0x7AC"), -Attr("insn","str w1, [x0]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("R0",Imm(64)),Extract(31,0,Var("R1",Imm(64))),LittleEndian(),32))]), -Jmps([Call(Tid(916, "%00000394"), Attrs([Attr("address","0x7B4"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))]))])), -Sub(Tid(1_784, "@call_weak_fn"), Attrs([Attr("c.proto","signed (*)(void)"), -Attr("address","0x6B4")]), "call_weak_fn", Args([Arg(Tid(1_839, "%0000072f"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("call_weak_fn_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(619, "@call_weak_fn"), - Attrs([Attr("address","0x6B4")]), Phis([]), Defs([Def(Tid(622, "%0000026e"), - Attrs([Attr("address","0x6B4"), Attr("insn","adrp x0, #65536")]), - Var("R0",Imm(64)), Int(65536,64)), Def(Tid(629, "%00000275"), - Attrs([Attr("address","0x6B8"), Attr("insn","ldr x0, [x0, #0xfe0]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(4064,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(635, "%0000027b"), Attrs([Attr("address","0x6BC"), -Attr("insn","cbz x0, #0x8")]), EQ(Var("R0",Imm(64)),Int(0,64)), -Direct(Tid(633, "%00000279"))), Goto(Tid(1_821, "%0000071d"), Attrs([]), - Int(1,1), Direct(Tid(1_292, "%0000050c")))])), Blk(Tid(633, "%00000279"), - Attrs([Attr("address","0x6C4")]), Phis([]), Defs([]), -Jmps([Call(Tid(641, "%00000281"), Attrs([Attr("address","0x6C4"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))])), -Blk(Tid(1_292, "%0000050c"), Attrs([Attr("address","0x6C0")]), Phis([]), -Defs([]), Jmps([Goto(Tid(1_295, "%0000050f"), Attrs([Attr("address","0x6C0"), -Attr("insn","b #-0x70")]), Int(1,1), -Direct(Tid(1_293, "@__gmon_start__")))])), Blk(Tid(1_293, "@__gmon_start__"), - Attrs([Attr("address","0x650")]), Phis([]), -Defs([Def(Tid(1_498, "%000005da"), Attrs([Attr("address","0x650"), -Attr("insn","adrp x16, #65536")]), Var("R16",Imm(64)), Int(65536,64)), -Def(Tid(1_505, "%000005e1"), Attrs([Attr("address","0x654"), -Attr("insn","ldr x17, [x16, #0xfb0]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(4016,64)),LittleEndian(),64)), -Def(Tid(1_511, "%000005e7"), Attrs([Attr("address","0x658"), -Attr("insn","add x16, x16, #0xfb0")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(4016,64)))]), Jmps([Call(Tid(1_516, "%000005ec"), - Attrs([Attr("address","0x65C"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), -Sub(Tid(1_786, "@deregister_tm_clones"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x6D0")]), - "deregister_tm_clones", Args([Arg(Tid(1_840, "%00000730"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("deregister_tm_clones_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(647, "@deregister_tm_clones"), - Attrs([Attr("address","0x6D0")]), Phis([]), Defs([Def(Tid(650, "%0000028a"), - Attrs([Attr("address","0x6D0"), Attr("insn","adrp x0, #69632")]), - Var("R0",Imm(64)), Int(69632,64)), Def(Tid(656, "%00000290"), - Attrs([Attr("address","0x6D4"), Attr("insn","add x0, x0, #0x30")]), - Var("R0",Imm(64)), PLUS(Var("R0",Imm(64)),Int(48,64))), -Def(Tid(661, "%00000295"), Attrs([Attr("address","0x6D8"), -Attr("insn","adrp x1, #69632")]), Var("R1",Imm(64)), Int(69632,64)), -Def(Tid(667, "%0000029b"), Attrs([Attr("address","0x6DC"), -Attr("insn","add x1, x1, #0x30")]), Var("R1",Imm(64)), -PLUS(Var("R1",Imm(64)),Int(48,64))), Def(Tid(673, "%000002a1"), - Attrs([Attr("address","0x6E0"), Attr("insn","cmp x1, x0")]), - Var("#1",Imm(64)), NOT(Var("R0",Imm(64)))), Def(Tid(678, "%000002a6"), - Attrs([Attr("address","0x6E0"), Attr("insn","cmp x1, x0")]), - Var("#2",Imm(64)), PLUS(Var("R1",Imm(64)),NOT(Var("R0",Imm(64))))), -Def(Tid(684, "%000002ac"), Attrs([Attr("address","0x6E0"), -Attr("insn","cmp x1, x0")]), Var("VF",Imm(1)), -NEQ(SIGNED(65,PLUS(Var("#2",Imm(64)),Int(1,64))),PLUS(PLUS(SIGNED(65,Var("R1",Imm(64))),SIGNED(65,Var("#1",Imm(64)))),Int(1,65)))), -Def(Tid(690, "%000002b2"), Attrs([Attr("address","0x6E0"), -Attr("insn","cmp x1, x0")]), Var("CF",Imm(1)), -NEQ(UNSIGNED(65,PLUS(Var("#2",Imm(64)),Int(1,64))),PLUS(PLUS(UNSIGNED(65,Var("R1",Imm(64))),UNSIGNED(65,Var("#1",Imm(64)))),Int(1,65)))), -Def(Tid(694, "%000002b6"), Attrs([Attr("address","0x6E0"), -Attr("insn","cmp x1, x0")]), Var("ZF",Imm(1)), -EQ(PLUS(Var("#2",Imm(64)),Int(1,64)),Int(0,64))), Def(Tid(698, "%000002ba"), - Attrs([Attr("address","0x6E0"), Attr("insn","cmp x1, x0")]), - Var("NF",Imm(1)), Extract(63,63,PLUS(Var("#2",Imm(64)),Int(1,64))))]), -Jmps([Goto(Tid(704, "%000002c0"), Attrs([Attr("address","0x6E4"), -Attr("insn","b.eq #0x18")]), EQ(Var("ZF",Imm(1)),Int(1,1)), -Direct(Tid(702, "%000002be"))), Goto(Tid(1_822, "%0000071e"), Attrs([]), - Int(1,1), Direct(Tid(1_262, "%000004ee")))])), Blk(Tid(1_262, "%000004ee"), - Attrs([Attr("address","0x6E8")]), Phis([]), -Defs([Def(Tid(1_265, "%000004f1"), Attrs([Attr("address","0x6E8"), -Attr("insn","adrp x1, #65536")]), Var("R1",Imm(64)), Int(65536,64)), -Def(Tid(1_272, "%000004f8"), Attrs([Attr("address","0x6EC"), -Attr("insn","ldr x1, [x1, #0xfc8]")]), Var("R1",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R1",Imm(64)),Int(4040,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(1_277, "%000004fd"), Attrs([Attr("address","0x6F0"), -Attr("insn","cbz x1, #0xc")]), EQ(Var("R1",Imm(64)),Int(0,64)), -Direct(Tid(702, "%000002be"))), Goto(Tid(1_823, "%0000071f"), Attrs([]), - Int(1,1), Direct(Tid(1_281, "%00000501")))])), Blk(Tid(702, "%000002be"), - Attrs([Attr("address","0x6FC")]), Phis([]), Defs([]), -Jmps([Call(Tid(710, "%000002c6"), Attrs([Attr("address","0x6FC"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))])), -Blk(Tid(1_281, "%00000501"), Attrs([Attr("address","0x6F4")]), Phis([]), -Defs([Def(Tid(1_285, "%00000505"), Attrs([Attr("address","0x6F4"), -Attr("insn","mov x16, x1")]), Var("R16",Imm(64)), Var("R1",Imm(64)))]), -Jmps([Call(Tid(1_290, "%0000050a"), Attrs([Attr("address","0x6F8"), -Attr("insn","br x16")]), Int(1,1), (Indirect(Var("R16",Imm(64))),))]))])), -Sub(Tid(1_789, "@frame_dummy"), Attrs([Attr("c.proto","signed (*)(void)"), -Attr("address","0x790")]), "frame_dummy", Args([Arg(Tid(1_841, "%00000731"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("frame_dummy_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(862, "@frame_dummy"), - Attrs([Attr("address","0x790")]), Phis([]), Defs([]), -Jmps([Call(Tid(864, "%00000360"), Attrs([Attr("address","0x790"), -Attr("insn","b #-0x90")]), Int(1,1), -(Direct(Tid(1_791, "@register_tm_clones")),))]))])), Sub(Tid(1_790, "@main"), - Attrs([Attr("c.proto","signed (*)(signed argc, const char** argv)"), -Attr("address","0x800")]), "main", Args([Arg(Tid(1_842, "%00000732"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("main_argc",Imm(32)), -LOW(32,Var("R0",Imm(64))), In()), Arg(Tid(1_843, "%00000733"), - Attrs([Attr("c.layout","**[char : 8]"), Attr("c.data","Top:u8 ptr ptr"), -Attr("c.type"," const char**")]), Var("main_argv",Imm(64)), -Var("R1",Imm(64)), Both()), Arg(Tid(1_844, "%00000734"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("main_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(1_022, "@main"), - Attrs([Attr("address","0x800")]), Phis([]), -Defs([Def(Tid(1_026, "%00000402"), Attrs([Attr("address","0x800"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("#4",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(18446744073709551584,64))), -Def(Tid(1_032, "%00000408"), Attrs([Attr("address","0x800"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("#4",Imm(64)),Var("R29",Imm(64)),LittleEndian(),64)), -Def(Tid(1_038, "%0000040e"), Attrs([Attr("address","0x800"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("#4",Imm(64)),Int(8,64)),Var("R30",Imm(64)),LittleEndian(),64)), -Def(Tid(1_042, "%00000412"), Attrs([Attr("address","0x800"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("R31",Imm(64)), -Var("#4",Imm(64))), Def(Tid(1_048, "%00000418"), - Attrs([Attr("address","0x804"), Attr("insn","mov x29, sp")]), - Var("R29",Imm(64)), Var("R31",Imm(64))), Def(Tid(1_056, "%00000420"), - Attrs([Attr("address","0x808"), Attr("insn","str w0, [sp, #0x1c]")]), - Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(28,64)),Extract(31,0,Var("R0",Imm(64))),LittleEndian(),32)), -Def(Tid(1_064, "%00000428"), Attrs([Attr("address","0x80C"), -Attr("insn","str x1, [sp, #0x10]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(16,64)),Var("R1",Imm(64)),LittleEndian(),64)), -Def(Tid(1_069, "%0000042d"), Attrs([Attr("address","0x810"), -Attr("insn","adrp x0, #65536")]), Var("R0",Imm(64)), Int(65536,64)), -Def(Tid(1_076, "%00000434"), Attrs([Attr("address","0x814"), -Attr("insn","ldr x0, [x0, #0xff8]")]), Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(4088,64)),LittleEndian(),64)), -Def(Tid(1_083, "%0000043b"), Attrs([Attr("address","0x818"), -Attr("insn","ldr x0, [x0]")]), Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R0",Imm(64)),LittleEndian(),64)), -Def(Tid(1_088, "%00000440"), Attrs([Attr("address","0x81C"), -Attr("insn","blr x0")]), Var("R30",Imm(64)), Int(2080,64))]), -Jmps([Call(Tid(1_091, "%00000443"), Attrs([Attr("address","0x81C"), -Attr("insn","blr x0")]), Int(1,1), -(Indirect(Var("R0",Imm(64))),Direct(Tid(1_093, "%00000445"))))])), -Blk(Tid(1_093, "%00000445"), Attrs([Attr("address","0x820")]), Phis([]), -Defs([Def(Tid(1_096, "%00000448"), Attrs([Attr("address","0x820"), -Attr("insn","adrp x0, #65536")]), Var("R0",Imm(64)), Int(65536,64)), -Def(Tid(1_103, "%0000044f"), Attrs([Attr("address","0x824"), -Attr("insn","ldr x0, [x0, #0xff8]")]), Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(4088,64)),LittleEndian(),64)), -Def(Tid(1_110, "%00000456"), Attrs([Attr("address","0x828"), -Attr("insn","ldr x0, [x0, #0x8]")]), Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(1_115, "%0000045b"), Attrs([Attr("address","0x82C"), -Attr("insn","blr x0")]), Var("R30",Imm(64)), Int(2096,64))]), -Jmps([Call(Tid(1_118, "%0000045e"), Attrs([Attr("address","0x82C"), -Attr("insn","blr x0")]), Int(1,1), -(Indirect(Var("R0",Imm(64))),Direct(Tid(1_120, "%00000460"))))])), -Blk(Tid(1_120, "%00000460"), Attrs([Attr("address","0x830")]), Phis([]), -Defs([Def(Tid(1_123, "%00000463"), Attrs([Attr("address","0x830"), -Attr("insn","adrp x0, #65536")]), Var("R0",Imm(64)), Int(65536,64)), -Def(Tid(1_130, "%0000046a"), Attrs([Attr("address","0x834"), -Attr("insn","ldr x0, [x0, #0xff8]")]), Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(4088,64)),LittleEndian(),64)), -Def(Tid(1_137, "%00000471"), Attrs([Attr("address","0x838"), -Attr("insn","ldr x0, [x0, #0x10]")]), Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(16,64)),LittleEndian(),64)), -Def(Tid(1_142, "%00000476"), Attrs([Attr("address","0x83C"), -Attr("insn","blr x0")]), Var("R30",Imm(64)), Int(2112,64))]), -Jmps([Call(Tid(1_145, "%00000479"), Attrs([Attr("address","0x83C"), -Attr("insn","blr x0")]), Int(1,1), -(Indirect(Var("R0",Imm(64))),Direct(Tid(1_147, "%0000047b"))))])), -Blk(Tid(1_147, "%0000047b"), Attrs([Attr("address","0x840")]), Phis([]), -Defs([Def(Tid(1_150, "%0000047e"), Attrs([Attr("address","0x840"), -Attr("insn","mov w0, #0x0")]), Var("R0",Imm(64)), Int(0,64)), -Def(Tid(1_157, "%00000485"), Attrs([Attr("address","0x844"), -Attr("insn","ldp x29, x30, [sp], #0x20")]), Var("R29",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(1_162, "%0000048a"), Attrs([Attr("address","0x844"), -Attr("insn","ldp x29, x30, [sp], #0x20")]), Var("R30",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(1_166, "%0000048e"), Attrs([Attr("address","0x844"), -Attr("insn","ldp x29, x30, [sp], #0x20")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(32,64)))]), Jmps([Call(Tid(1_171, "%00000493"), - Attrs([Attr("address","0x848"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), -Sub(Tid(1_791, "@register_tm_clones"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x700")]), - "register_tm_clones", Args([Arg(Tid(1_845, "%00000735"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("register_tm_clones_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(712, "@register_tm_clones"), Attrs([Attr("address","0x700")]), - Phis([]), Defs([Def(Tid(715, "%000002cb"), Attrs([Attr("address","0x700"), -Attr("insn","adrp x0, #69632")]), Var("R0",Imm(64)), Int(69632,64)), -Def(Tid(721, "%000002d1"), Attrs([Attr("address","0x704"), -Attr("insn","add x0, x0, #0x30")]), Var("R0",Imm(64)), -PLUS(Var("R0",Imm(64)),Int(48,64))), Def(Tid(726, "%000002d6"), - Attrs([Attr("address","0x708"), Attr("insn","adrp x1, #69632")]), - Var("R1",Imm(64)), Int(69632,64)), Def(Tid(732, "%000002dc"), - Attrs([Attr("address","0x70C"), Attr("insn","add x1, x1, #0x30")]), - Var("R1",Imm(64)), PLUS(Var("R1",Imm(64)),Int(48,64))), -Def(Tid(739, "%000002e3"), Attrs([Attr("address","0x710"), -Attr("insn","sub x1, x1, x0")]), Var("R1",Imm(64)), -PLUS(PLUS(Var("R1",Imm(64)),NOT(Var("R0",Imm(64)))),Int(1,64))), -Def(Tid(745, "%000002e9"), Attrs([Attr("address","0x714"), -Attr("insn","lsr x2, x1, #63")]), Var("R2",Imm(64)), -Concat(Int(0,63),Extract(63,63,Var("R1",Imm(64))))), -Def(Tid(752, "%000002f0"), Attrs([Attr("address","0x718"), -Attr("insn","add x1, x2, x1, asr #3")]), Var("R1",Imm(64)), -PLUS(Var("R2",Imm(64)),ARSHIFT(Var("R1",Imm(64)),Int(3,3)))), -Def(Tid(758, "%000002f6"), Attrs([Attr("address","0x71C"), -Attr("insn","asr x1, x1, #1")]), Var("R1",Imm(64)), -SIGNED(64,Extract(63,1,Var("R1",Imm(64)))))]), -Jmps([Goto(Tid(764, "%000002fc"), Attrs([Attr("address","0x720"), -Attr("insn","cbz x1, #0x18")]), EQ(Var("R1",Imm(64)),Int(0,64)), -Direct(Tid(762, "%000002fa"))), Goto(Tid(1_824, "%00000720"), Attrs([]), - Int(1,1), Direct(Tid(1_232, "%000004d0")))])), Blk(Tid(1_232, "%000004d0"), - Attrs([Attr("address","0x724")]), Phis([]), -Defs([Def(Tid(1_235, "%000004d3"), Attrs([Attr("address","0x724"), -Attr("insn","adrp x2, #65536")]), Var("R2",Imm(64)), Int(65536,64)), -Def(Tid(1_242, "%000004da"), Attrs([Attr("address","0x728"), -Attr("insn","ldr x2, [x2, #0xff0]")]), Var("R2",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R2",Imm(64)),Int(4080,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(1_247, "%000004df"), Attrs([Attr("address","0x72C"), -Attr("insn","cbz x2, #0xc")]), EQ(Var("R2",Imm(64)),Int(0,64)), -Direct(Tid(762, "%000002fa"))), Goto(Tid(1_825, "%00000721"), Attrs([]), - Int(1,1), Direct(Tid(1_251, "%000004e3")))])), Blk(Tid(762, "%000002fa"), - Attrs([Attr("address","0x738")]), Phis([]), Defs([]), -Jmps([Call(Tid(770, "%00000302"), Attrs([Attr("address","0x738"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))])), -Blk(Tid(1_251, "%000004e3"), Attrs([Attr("address","0x730")]), Phis([]), -Defs([Def(Tid(1_255, "%000004e7"), Attrs([Attr("address","0x730"), -Attr("insn","mov x16, x2")]), Var("R16",Imm(64)), Var("R2",Imm(64)))]), -Jmps([Call(Tid(1_260, "%000004ec"), Attrs([Attr("address","0x734"), -Attr("insn","br x16")]), Int(1,1), (Indirect(Var("R16",Imm(64))),))]))])), -Sub(Tid(1_794, "@sub_seven"), Attrs([Attr("c.proto","signed (*)(void)"), -Attr("address","0x7DC")]), "sub_seven", Args([Arg(Tid(1_846, "%00000736"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("sub_seven_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(970, "@sub_seven"), - Attrs([Attr("address","0x7DC")]), Phis([]), Defs([Def(Tid(973, "%000003cd"), - Attrs([Attr("address","0x7DC"), Attr("insn","adrp x0, #65536")]), - Var("R0",Imm(64)), Int(65536,64)), Def(Tid(980, "%000003d4"), - Attrs([Attr("address","0x7E0"), Attr("insn","ldr x0, [x0, #0xfd8]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(4056,64)),LittleEndian(),64)), -Def(Tid(987, "%000003db"), Attrs([Attr("address","0x7E4"), -Attr("insn","ldr w0, [x0]")]), Var("R0",Imm(64)), -UNSIGNED(64,Load(Var("mem",Mem(64,8)),Var("R0",Imm(64)),LittleEndian(),32))), -Def(Tid(993, "%000003e1"), Attrs([Attr("address","0x7E8"), -Attr("insn","sub w1, w0, #0x7")]), Var("R1",Imm(64)), -UNSIGNED(64,PLUS(Extract(31,0,Var("R0",Imm(64))),Int(4294967289,32)))), -Def(Tid(998, "%000003e6"), Attrs([Attr("address","0x7EC"), -Attr("insn","adrp x0, #65536")]), Var("R0",Imm(64)), Int(65536,64)), -Def(Tid(1_005, "%000003ed"), Attrs([Attr("address","0x7F0"), -Attr("insn","ldr x0, [x0, #0xfd8]")]), Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(4056,64)),LittleEndian(),64)), -Def(Tid(1_013, "%000003f5"), Attrs([Attr("address","0x7F4"), -Attr("insn","str w1, [x0]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("R0",Imm(64)),Extract(31,0,Var("R1",Imm(64))),LittleEndian(),32))]), -Jmps([Call(Tid(1_020, "%000003fc"), Attrs([Attr("address","0x7FC"), -Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))]))]))) \ No newline at end of file diff --git a/src/test/indirect_calls/jumptable2/gcc_pic/jumptable2.bir b/src/test/indirect_calls/jumptable2/gcc_pic/jumptable2.bir deleted file mode 100644 index 177236699..000000000 --- a/src/test/indirect_calls/jumptable2/gcc_pic/jumptable2.bir +++ /dev/null @@ -1,294 +0,0 @@ -00000722: program -000006ea: sub __cxa_finalize(__cxa_finalize_result) -00000723: __cxa_finalize_result :: out u32 = low:32[R0] - -000004cc: -000005c4: R16 := 0x10000 -000005cb: R17 := mem[R16 + 0xFA8, el]:u64 -000005d1: R16 := R16 + 0xFA8 -000005d6: call R17 with noreturn - -000006eb: sub __do_global_dtors_aux(__do_global_dtors_aux_result) -00000724: __do_global_dtors_aux_result :: out u32 = low:32[R0] - -00000306: -0000030a: #3 := R31 - 0x20 -00000310: mem := mem with [#3, el]:u64 <- R29 -00000316: mem := mem with [#3 + 8, el]:u64 <- R30 -0000031a: R31 := #3 -00000320: R29 := R31 -00000328: mem := mem with [R31 + 0x10, el]:u64 <- R19 -0000032d: R19 := 0x11000 -00000334: R0 := pad:64[mem[R19 + 0x30]] -0000033b: when 31:0[R0] <> 0 goto %00000339 -00000718: goto %00000495 - -00000495: -00000498: R0 := 0x10000 -0000049f: R0 := mem[R0 + 0xFD0, el]:u64 -000004a5: when R0 = 0 goto %000004a3 -00000719: goto %000004bc - -000004bc: -000004bf: R0 := 0x11000 -000004c6: R0 := mem[R0 + 8, el]:u64 -000004cb: R30 := 0x770 -000004ce: call @__cxa_finalize with return %000004a3 - -000004a3: -000004ab: R30 := 0x774 -000004ad: call @deregister_tm_clones with return %000004af - -000004af: -000004b2: R0 := 1 -000004ba: mem := mem with [R19 + 0x30] <- 7:0[R0] -0000071a: goto %00000339 - -00000339: -00000343: R19 := mem[R31 + 0x10, el]:u64 -0000034a: R29 := mem[R31, el]:u64 -0000034f: R30 := mem[R31 + 8, el]:u64 -00000353: R31 := R31 + 0x20 -00000358: call R30 with noreturn - -000006ef: sub __libc_start_main(__libc_start_main_main, __libc_start_main_arg2, __libc_start_main_arg3, __libc_start_main_auxv, __libc_start_main_result) -00000725: __libc_start_main_main :: in u64 = R0 -00000726: __libc_start_main_arg2 :: in u32 = low:32[R1] -00000727: __libc_start_main_arg3 :: in out u64 = R2 -00000728: __libc_start_main_auxv :: in out u64 = R3 -00000729: __libc_start_main_result :: out u32 = low:32[R0] - -0000025f: -000005ae: R16 := 0x10000 -000005b5: R17 := mem[R16 + 0xFA0, el]:u64 -000005bb: R16 := R16 + 0xFA0 -000005c0: call R17 with noreturn - -000006f0: sub _fini(_fini_result) -0000072a: _fini_result :: out u32 = low:32[R0] - -0000001f: -00000025: #0 := R31 - 0x10 -0000002b: mem := mem with [#0, el]:u64 <- R29 -00000031: mem := mem with [#0 + 8, el]:u64 <- R30 -00000035: R31 := #0 -0000003b: R29 := R31 -00000042: R29 := mem[R31, el]:u64 -00000047: R30 := mem[R31 + 8, el]:u64 -0000004b: R31 := R31 + 0x10 -00000050: call R30 with noreturn - -000006f1: sub _init(_init_result) -0000072b: _init_result :: out u32 = low:32[R0] - -0000061e: -00000624: #6 := R31 - 0x10 -0000062a: mem := mem with [#6, el]:u64 <- R29 -00000630: mem := mem with [#6 + 8, el]:u64 <- R30 -00000634: R31 := #6 -0000063a: R29 := R31 -0000063f: R30 := 0x608 -00000641: call @call_weak_fn with return %00000643 - -00000643: -00000648: R29 := mem[R31, el]:u64 -0000064d: R30 := mem[R31 + 8, el]:u64 -00000651: R31 := R31 + 0x10 -00000656: call R30 with noreturn - -000006f2: sub _start(_start_result) -0000072c: _start_result :: out u32 = low:32[R0] - -00000220: -00000225: R29 := 0 -0000022a: R30 := 0 -00000230: R5 := R0 -00000237: R1 := mem[R31, el]:u64 -0000023d: R2 := R31 + 8 -00000243: R6 := R31 -00000248: R0 := 0x10000 -0000024f: R0 := mem[R0 + 0xFE8, el]:u64 -00000254: R3 := 0 -00000259: R4 := 0 -0000025e: R30 := 0x6B0 -00000261: call @__libc_start_main with return %00000263 - -00000263: -00000266: R30 := 0x6B4 -00000269: call @abort with return %0000071b - -0000071b: -0000071c: call @call_weak_fn with noreturn - -000006f5: sub abort() - - -00000267: -000005f0: R16 := 0x10000 -000005f7: R17 := mem[R16 + 0xFB8, el]:u64 -000005fd: R16 := R16 + 0xFB8 -00000602: call R17 with noreturn - -000006f6: sub add_six(add_six_result) -0000072d: add_six_result :: out u32 = low:32[R0] - -00000396: -00000399: R0 := 0x10000 -000003a0: R0 := mem[R0 + 0xFD8, el]:u64 -000003a7: R0 := pad:64[mem[R0, el]:u32] -000003ad: R1 := pad:64[31:0[R0] + 6] -000003b2: R0 := 0x10000 -000003b9: R0 := mem[R0 + 0xFD8, el]:u64 -000003c1: mem := mem with [R0, el]:u32 <- 31:0[R1] -000003c8: call R30 with noreturn - -000006f7: sub add_two(add_two_result) -0000072e: add_two_result :: out u32 = low:32[R0] - -00000362: -00000365: R0 := 0x10000 -0000036c: R0 := mem[R0 + 0xFD8, el]:u64 -00000373: R0 := pad:64[mem[R0, el]:u32] -00000379: R1 := pad:64[31:0[R0] + 2] -0000037e: R0 := 0x10000 -00000385: R0 := mem[R0 + 0xFD8, el]:u64 -0000038d: mem := mem with [R0, el]:u32 <- 31:0[R1] -00000394: call R30 with noreturn - -000006f8: sub call_weak_fn(call_weak_fn_result) -0000072f: call_weak_fn_result :: out u32 = low:32[R0] - -0000026b: -0000026e: R0 := 0x10000 -00000275: R0 := mem[R0 + 0xFE0, el]:u64 -0000027b: when R0 = 0 goto %00000279 -0000071d: goto %0000050c - -00000279: -00000281: call R30 with noreturn - -0000050c: -0000050f: goto @__gmon_start__ - -0000050d: -000005da: R16 := 0x10000 -000005e1: R17 := mem[R16 + 0xFB0, el]:u64 -000005e7: R16 := R16 + 0xFB0 -000005ec: call R17 with noreturn - -000006fa: sub deregister_tm_clones(deregister_tm_clones_result) -00000730: deregister_tm_clones_result :: out u32 = low:32[R0] - -00000287: -0000028a: R0 := 0x11000 -00000290: R0 := R0 + 0x30 -00000295: R1 := 0x11000 -0000029b: R1 := R1 + 0x30 -000002a1: #1 := ~R0 -000002a6: #2 := R1 + ~R0 -000002ac: VF := extend:65[#2 + 1] <> extend:65[R1] + extend:65[#1] + 1 -000002b2: CF := pad:65[#2 + 1] <> pad:65[R1] + pad:65[#1] + 1 -000002b6: ZF := #2 + 1 = 0 -000002ba: NF := 63:63[#2 + 1] -000002c0: when ZF goto %000002be -0000071e: goto %000004ee - -000004ee: -000004f1: R1 := 0x10000 -000004f8: R1 := mem[R1 + 0xFC8, el]:u64 -000004fd: when R1 = 0 goto %000002be -0000071f: goto %00000501 - -000002be: -000002c6: call R30 with noreturn - -00000501: -00000505: R16 := R1 -0000050a: call R16 with noreturn - -000006fd: sub frame_dummy(frame_dummy_result) -00000731: frame_dummy_result :: out u32 = low:32[R0] - -0000035e: -00000360: call @register_tm_clones with noreturn - -000006fe: sub main(main_argc, main_argv, main_result) -00000732: main_argc :: in u32 = low:32[R0] -00000733: main_argv :: in out u64 = R1 -00000734: main_result :: out u32 = low:32[R0] - -000003fe: -00000402: #4 := R31 - 0x20 -00000408: mem := mem with [#4, el]:u64 <- R29 -0000040e: mem := mem with [#4 + 8, el]:u64 <- R30 -00000412: R31 := #4 -00000418: R29 := R31 -00000420: mem := mem with [R31 + 0x1C, el]:u32 <- 31:0[R0] -00000428: mem := mem with [R31 + 0x10, el]:u64 <- R1 -0000042d: R0 := 0x10000 -00000434: R0 := mem[R0 + 0xFF8, el]:u64 -0000043b: R0 := mem[R0, el]:u64 -00000440: R30 := 0x820 -00000443: call R0 with return %00000445 - -00000445: -00000448: R0 := 0x10000 -0000044f: R0 := mem[R0 + 0xFF8, el]:u64 -00000456: R0 := mem[R0 + 8, el]:u64 -0000045b: R30 := 0x830 -0000045e: call R0 with return %00000460 - -00000460: -00000463: R0 := 0x10000 -0000046a: R0 := mem[R0 + 0xFF8, el]:u64 -00000471: R0 := mem[R0 + 0x10, el]:u64 -00000476: R30 := 0x840 -00000479: call R0 with return %0000047b - -0000047b: -0000047e: R0 := 0 -00000485: R29 := mem[R31, el]:u64 -0000048a: R30 := mem[R31 + 8, el]:u64 -0000048e: R31 := R31 + 0x20 -00000493: call R30 with noreturn - -000006ff: sub register_tm_clones(register_tm_clones_result) -00000735: register_tm_clones_result :: out u32 = low:32[R0] - -000002c8: -000002cb: R0 := 0x11000 -000002d1: R0 := R0 + 0x30 -000002d6: R1 := 0x11000 -000002dc: R1 := R1 + 0x30 -000002e3: R1 := R1 + ~R0 + 1 -000002e9: R2 := 0.63:63[R1] -000002f0: R1 := R2 + (R1 ~>> 3) -000002f6: R1 := extend:64[63:1[R1]] -000002fc: when R1 = 0 goto %000002fa -00000720: goto %000004d0 - -000004d0: -000004d3: R2 := 0x10000 -000004da: R2 := mem[R2 + 0xFF0, el]:u64 -000004df: when R2 = 0 goto %000002fa -00000721: goto %000004e3 - -000002fa: -00000302: call R30 with noreturn - -000004e3: -000004e7: R16 := R2 -000004ec: call R16 with noreturn - -00000702: sub sub_seven(sub_seven_result) -00000736: sub_seven_result :: out u32 = low:32[R0] - -000003ca: -000003cd: R0 := 0x10000 -000003d4: R0 := mem[R0 + 0xFD8, el]:u64 -000003db: R0 := pad:64[mem[R0, el]:u32] -000003e1: R1 := pad:64[31:0[R0] - 7] -000003e6: R0 := 0x10000 -000003ed: R0 := mem[R0 + 0xFD8, el]:u64 -000003f5: mem := mem with [R0, el]:u32 <- 31:0[R1] -000003fc: call R30 with noreturn diff --git a/src/test/indirect_calls/jumptable2/gcc_pic/jumptable2.md5sum b/src/test/indirect_calls/jumptable2/gcc_pic/jumptable2.md5sum new file mode 100644 index 000000000..17085dce0 --- /dev/null +++ b/src/test/indirect_calls/jumptable2/gcc_pic/jumptable2.md5sum @@ -0,0 +1,4 @@ +a571978d1481691c232e6adcbdd05c29 indirect_calls/jumptable2/gcc_pic/a.out +d213632d0eb38765741aca7a8c3637dc indirect_calls/jumptable2/gcc_pic/jumptable2.relf +2be04de0417c580d4501da592ee7fe66 indirect_calls/jumptable2/gcc_pic/jumptable2.adt +9a018f900cca5c0be3582450cc714e84 indirect_calls/jumptable2/gcc_pic/jumptable2.bir diff --git a/src/test/indirect_calls/jumptable2/gcc_pic/jumptable2.relf b/src/test/indirect_calls/jumptable2/gcc_pic/jumptable2.relf deleted file mode 100644 index 564a7b01d..000000000 --- a/src/test/indirect_calls/jumptable2/gcc_pic/jumptable2.relf +++ /dev/null @@ -1,131 +0,0 @@ - -Relocation section '.rela.dyn' at offset 0x460 contains 13 entries: - Offset Info Type Symbol's Value Symbol's Name + Addend -0000000000010d88 0000000000000403 R_AARCH64_RELATIVE 790 -0000000000010d90 0000000000000403 R_AARCH64_RELATIVE 740 -0000000000010fd8 0000000000000403 R_AARCH64_RELATIVE 11010 -0000000000010fe8 0000000000000403 R_AARCH64_RELATIVE 800 -0000000000010ff8 0000000000000403 R_AARCH64_RELATIVE 11018 -0000000000011008 0000000000000403 R_AARCH64_RELATIVE 11008 -0000000000011018 0000000000000403 R_AARCH64_RELATIVE 794 -0000000000011020 0000000000000403 R_AARCH64_RELATIVE 7b8 -0000000000011028 0000000000000403 R_AARCH64_RELATIVE 7dc -0000000000010fc8 0000000400000401 R_AARCH64_GLOB_DAT 0000000000000000 _ITM_deregisterTMCloneTable + 0 -0000000000010fd0 0000000500000401 R_AARCH64_GLOB_DAT 0000000000000000 __cxa_finalize@GLIBC_2.17 + 0 -0000000000010fe0 0000000600000401 R_AARCH64_GLOB_DAT 0000000000000000 __gmon_start__ + 0 -0000000000010ff0 0000000800000401 R_AARCH64_GLOB_DAT 0000000000000000 _ITM_registerTMCloneTable + 0 - -Relocation section '.rela.plt' at offset 0x598 contains 4 entries: - Offset Info Type Symbol's Value Symbol's Name + Addend -0000000000010fa0 0000000300000402 R_AARCH64_JUMP_SLOT 0000000000000000 __libc_start_main@GLIBC_2.34 + 0 -0000000000010fa8 0000000500000402 R_AARCH64_JUMP_SLOT 0000000000000000 __cxa_finalize@GLIBC_2.17 + 0 -0000000000010fb0 0000000600000402 R_AARCH64_JUMP_SLOT 0000000000000000 __gmon_start__ + 0 -0000000000010fb8 0000000700000402 R_AARCH64_JUMP_SLOT 0000000000000000 abort@GLIBC_2.17 + 0 - -Symbol table '.dynsym' contains 9 entries: - Num: Value Size Type Bind Vis Ndx Name - 0: 0000000000000000 0 NOTYPE LOCAL DEFAULT UND - 1: 00000000000005f8 0 SECTION LOCAL DEFAULT 11 .init - 2: 0000000000011000 0 SECTION LOCAL DEFAULT 22 .data - 3: 0000000000000000 0 FUNC GLOBAL DEFAULT UND __libc_start_main@GLIBC_2.34 (2) - 4: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_deregisterTMCloneTable - 5: 0000000000000000 0 FUNC WEAK DEFAULT UND __cxa_finalize@GLIBC_2.17 (3) - 6: 0000000000000000 0 NOTYPE WEAK DEFAULT UND __gmon_start__ - 7: 0000000000000000 0 FUNC GLOBAL DEFAULT UND abort@GLIBC_2.17 (3) - 8: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_registerTMCloneTable - -Symbol table '.symtab' contains 93 entries: - Num: Value Size Type Bind Vis Ndx Name - 0: 0000000000000000 0 NOTYPE LOCAL DEFAULT UND - 1: 0000000000000238 0 SECTION LOCAL DEFAULT 1 .interp - 2: 0000000000000254 0 SECTION LOCAL DEFAULT 2 .note.gnu.build-id - 3: 0000000000000278 0 SECTION LOCAL DEFAULT 3 .note.ABI-tag - 4: 0000000000000298 0 SECTION LOCAL DEFAULT 4 .gnu.hash - 5: 00000000000002b8 0 SECTION LOCAL DEFAULT 5 .dynsym - 6: 0000000000000390 0 SECTION LOCAL DEFAULT 6 .dynstr - 7: 000000000000041e 0 SECTION LOCAL DEFAULT 7 .gnu.version - 8: 0000000000000430 0 SECTION LOCAL DEFAULT 8 .gnu.version_r - 9: 0000000000000460 0 SECTION LOCAL DEFAULT 9 .rela.dyn - 10: 0000000000000598 0 SECTION LOCAL DEFAULT 10 .rela.plt - 11: 00000000000005f8 0 SECTION LOCAL DEFAULT 11 .init - 12: 0000000000000610 0 SECTION LOCAL DEFAULT 12 .plt - 13: 0000000000000680 0 SECTION LOCAL DEFAULT 13 .text - 14: 000000000000084c 0 SECTION LOCAL DEFAULT 14 .fini - 15: 0000000000000860 0 SECTION LOCAL DEFAULT 15 .rodata - 16: 0000000000000864 0 SECTION LOCAL DEFAULT 16 .eh_frame_hdr - 17: 00000000000008b8 0 SECTION LOCAL DEFAULT 17 .eh_frame - 18: 0000000000010d88 0 SECTION LOCAL DEFAULT 18 .init_array - 19: 0000000000010d90 0 SECTION LOCAL DEFAULT 19 .fini_array - 20: 0000000000010d98 0 SECTION LOCAL DEFAULT 20 .dynamic - 21: 0000000000010f88 0 SECTION LOCAL DEFAULT 21 .got - 22: 0000000000011000 0 SECTION LOCAL DEFAULT 22 .data - 23: 0000000000011030 0 SECTION LOCAL DEFAULT 23 .bss - 24: 0000000000000000 0 SECTION LOCAL DEFAULT 24 .comment - 25: 0000000000000000 0 FILE LOCAL DEFAULT ABS Scrt1.o - 26: 0000000000000278 0 NOTYPE LOCAL DEFAULT 3 $d - 27: 0000000000000278 32 OBJECT LOCAL DEFAULT 3 __abi_tag - 28: 0000000000000680 0 NOTYPE LOCAL DEFAULT 13 $x - 29: 00000000000008cc 0 NOTYPE LOCAL DEFAULT 17 $d - 30: 0000000000000860 0 NOTYPE LOCAL DEFAULT 15 $d - 31: 0000000000000000 0 FILE LOCAL DEFAULT ABS crti.o - 32: 00000000000006b4 0 NOTYPE LOCAL DEFAULT 13 $x - 33: 00000000000006b4 20 FUNC LOCAL DEFAULT 13 call_weak_fn - 34: 00000000000005f8 0 NOTYPE LOCAL DEFAULT 11 $x - 35: 000000000000084c 0 NOTYPE LOCAL DEFAULT 14 $x - 36: 0000000000000000 0 FILE LOCAL DEFAULT ABS crtn.o - 37: 0000000000000608 0 NOTYPE LOCAL DEFAULT 11 $x - 38: 0000000000000858 0 NOTYPE LOCAL DEFAULT 14 $x - 39: 0000000000000000 0 FILE LOCAL DEFAULT ABS crtstuff.c - 40: 00000000000006d0 0 NOTYPE LOCAL DEFAULT 13 $x - 41: 00000000000006d0 0 FUNC LOCAL DEFAULT 13 deregister_tm_clones - 42: 0000000000000700 0 FUNC LOCAL DEFAULT 13 register_tm_clones - 43: 0000000000011008 0 NOTYPE LOCAL DEFAULT 22 $d - 44: 0000000000000740 0 FUNC LOCAL DEFAULT 13 __do_global_dtors_aux - 45: 0000000000011030 1 OBJECT LOCAL DEFAULT 23 completed.0 - 46: 0000000000010d90 0 NOTYPE LOCAL DEFAULT 19 $d - 47: 0000000000010d90 0 OBJECT LOCAL DEFAULT 19 __do_global_dtors_aux_fini_array_entry - 48: 0000000000000790 0 FUNC LOCAL DEFAULT 13 frame_dummy - 49: 0000000000010d88 0 NOTYPE LOCAL DEFAULT 18 $d - 50: 0000000000010d88 0 OBJECT LOCAL DEFAULT 18 __frame_dummy_init_array_entry - 51: 00000000000008e0 0 NOTYPE LOCAL DEFAULT 17 $d - 52: 0000000000011030 0 NOTYPE LOCAL DEFAULT 23 $d - 53: 0000000000000000 0 FILE LOCAL DEFAULT ABS jumptable2.c - 54: 0000000000011010 0 NOTYPE LOCAL DEFAULT 22 $d - 55: 0000000000000794 0 NOTYPE LOCAL DEFAULT 13 $x - 56: 0000000000011018 0 NOTYPE LOCAL DEFAULT 22 $d - 57: 0000000000000940 0 NOTYPE LOCAL DEFAULT 17 $d - 58: 0000000000000000 0 FILE LOCAL DEFAULT ABS crtstuff.c - 59: 000000000000099c 0 NOTYPE LOCAL DEFAULT 17 $d - 60: 000000000000099c 0 OBJECT LOCAL DEFAULT 17 __FRAME_END__ - 61: 0000000000000000 0 FILE LOCAL DEFAULT ABS - 62: 0000000000010d98 0 OBJECT LOCAL DEFAULT ABS _DYNAMIC - 63: 0000000000000864 0 NOTYPE LOCAL DEFAULT 16 __GNU_EH_FRAME_HDR - 64: 0000000000010fc0 0 OBJECT LOCAL DEFAULT ABS _GLOBAL_OFFSET_TABLE_ - 65: 0000000000000610 0 NOTYPE LOCAL DEFAULT 12 $x - 66: 0000000000000000 0 FUNC GLOBAL DEFAULT UND __libc_start_main@GLIBC_2.34 - 67: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_deregisterTMCloneTable - 68: 0000000000011000 0 NOTYPE WEAK DEFAULT 22 data_start - 69: 0000000000011030 0 NOTYPE GLOBAL DEFAULT 23 __bss_start__ - 70: 0000000000000000 0 FUNC WEAK DEFAULT UND __cxa_finalize@GLIBC_2.17 - 71: 0000000000011038 0 NOTYPE GLOBAL DEFAULT 23 _bss_end__ - 72: 0000000000011030 0 NOTYPE GLOBAL DEFAULT 22 _edata - 73: 0000000000011010 4 OBJECT GLOBAL DEFAULT 22 x - 74: 000000000000084c 0 FUNC GLOBAL HIDDEN 14 _fini - 75: 0000000000011038 0 NOTYPE GLOBAL DEFAULT 23 __bss_end__ - 76: 0000000000011000 0 NOTYPE GLOBAL DEFAULT 22 __data_start - 77: 0000000000000000 0 NOTYPE WEAK DEFAULT UND __gmon_start__ - 78: 0000000000011008 0 OBJECT GLOBAL HIDDEN 22 __dso_handle - 79: 0000000000000000 0 FUNC GLOBAL DEFAULT UND abort@GLIBC_2.17 - 80: 0000000000000860 4 OBJECT GLOBAL DEFAULT 15 _IO_stdin_used - 81: 0000000000000794 36 FUNC GLOBAL DEFAULT 13 add_two - 82: 0000000000011038 0 NOTYPE GLOBAL DEFAULT 23 _end - 83: 0000000000000680 52 FUNC GLOBAL DEFAULT 13 _start - 84: 0000000000011038 0 NOTYPE GLOBAL DEFAULT 23 __end__ - 85: 00000000000007b8 36 FUNC GLOBAL DEFAULT 13 add_six - 86: 0000000000011030 0 NOTYPE GLOBAL DEFAULT 23 __bss_start - 87: 0000000000000800 76 FUNC GLOBAL DEFAULT 13 main - 88: 0000000000011030 0 OBJECT GLOBAL HIDDEN 22 __TMC_END__ - 89: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_registerTMCloneTable - 90: 0000000000011018 24 OBJECT GLOBAL DEFAULT 22 jump_table - 91: 00000000000005f8 0 FUNC GLOBAL HIDDEN 11 _init - 92: 00000000000007dc 36 FUNC GLOBAL DEFAULT 13 sub_seven diff --git a/src/test/indirect_calls/jumptable3/clang/jumptable3.adt b/src/test/indirect_calls/jumptable3/clang/jumptable3.adt deleted file mode 100644 index 45201b6cd..000000000 --- a/src/test/indirect_calls/jumptable3/clang/jumptable3.adt +++ /dev/null @@ -1,693 +0,0 @@ -Project(Attrs([Attr("filename","\"clang/jumptable3.out\""), -Attr("image-specification","(declare abi (name str))\n(declare arch (name str))\n(declare base-address (addr int))\n(declare bias (off int))\n(declare bits (size int))\n(declare code-region (addr int) (size int) (off int))\n(declare code-start (addr int))\n(declare entry-point (addr int))\n(declare external-reference (addr int) (name str))\n(declare format (name str))\n(declare is-executable (flag bool))\n(declare is-little-endian (flag bool))\n(declare llvm:base-address (addr int))\n(declare llvm:code-entry (name str) (off int) (size int))\n(declare llvm:coff-import-library (name str))\n(declare llvm:coff-virtual-section-header (name str) (addr int) (size int))\n(declare llvm:elf-program-header (name str) (off int) (size int))\n(declare llvm:elf-program-header-flags (name str) (ld bool) (r bool) \n (w bool) (x bool))\n(declare llvm:elf-virtual-program-header (name str) (addr int) (size int))\n(declare llvm:entry-point (addr int))\n(declare llvm:macho-symbol (name str) (value int))\n(declare llvm:name-reference (at int) (name str))\n(declare llvm:relocation (at int) (addr int))\n(declare llvm:section-entry (name str) (addr int) (size int) (off int))\n(declare llvm:section-flags (name str) (r bool) (w bool) (x bool))\n(declare llvm:segment-command (name str) (off int) (size int))\n(declare llvm:segment-command-flags (name str) (r bool) (w bool) (x bool))\n(declare llvm:symbol-entry (name str) (addr int) (size int) (off int)\n (value int))\n(declare llvm:virtual-segment-command (name str) (addr int) (size int))\n(declare mapped (addr int) (size int) (off int))\n(declare named-region (addr int) (size int) (name str))\n(declare named-symbol (addr int) (name str))\n(declare require (name str))\n(declare section (addr int) (size int))\n(declare segment (addr int) (size int) (r bool) (w bool) (x bool))\n(declare subarch (name str))\n(declare symbol-chunk (addr int) (size int) (root int))\n(declare symbol-value (addr int) (value int))\n(declare system (name str))\n(declare vendor (name str))\n\n(abi unknown)\n(arch aarch64)\n(base-address 0)\n(bias 0)\n(bits 64)\n(code-region 2116 20 2116)\n(code-region 1536 580 1536)\n(code-region 1440 96 1440)\n(code-region 1408 24 1408)\n(code-start 1588)\n(code-start 1812)\n(code-start 1536)\n(code-start 1832)\n(code-start 1872)\n(code-start 1852)\n(entry-point 1536)\n(external-reference 69568 _ITM_deregisterTMCloneTable)\n(external-reference 69576 __cxa_finalize)\n(external-reference 69584 __gmon_start__)\n(external-reference 69600 _ITM_registerTMCloneTable)\n(external-reference 69632 __libc_start_main)\n(external-reference 69640 __cxa_finalize)\n(external-reference 69648 __gmon_start__)\n(external-reference 69656 abort)\n(format elf)\n(is-executable true)\n(is-little-endian true)\n(llvm:base-address 0)\n(llvm:code-entry abort 0 0)\n(llvm:code-entry __cxa_finalize 0 0)\n(llvm:code-entry __libc_start_main 0 0)\n(llvm:code-entry sub_seven 1852 20)\n(llvm:code-entry _init 1408 0)\n(llvm:code-entry main 1872 244)\n(llvm:code-entry add_six 1832 20)\n(llvm:code-entry _start 1536 52)\n(llvm:code-entry add_two 1812 20)\n(llvm:code-entry abort@GLIBC_2.17 0 0)\n(llvm:code-entry _fini 2116 0)\n(llvm:code-entry __cxa_finalize@GLIBC_2.17 0 0)\n(llvm:code-entry __libc_start_main@GLIBC_2.34 0 0)\n(llvm:code-entry frame_dummy 1808 0)\n(llvm:code-entry __do_global_dtors_aux 1728 0)\n(llvm:code-entry register_tm_clones 1664 0)\n(llvm:code-entry deregister_tm_clones 1616 0)\n(llvm:code-entry call_weak_fn 1588 20)\n(llvm:code-entry .fini 2116 20)\n(llvm:code-entry .text 1536 580)\n(llvm:code-entry .plt 1440 96)\n(llvm:code-entry .init 1408 24)\n(llvm:elf-program-header 08 3528 568)\n(llvm:elf-program-header 07 0 0)\n(llvm:elf-program-header 06 2188 84)\n(llvm:elf-program-header 05 596 68)\n(llvm:elf-program-header 04 3544 480)\n(llvm:elf-program-header 03 3528 620)\n(llvm:elf-program-header 02 0 2532)\n(llvm:elf-program-header 01 568 27)\n(llvm:elf-program-header 00 64 504)\n(llvm:elf-program-header-flags 08 false true false false)\n(llvm:elf-program-header-flags 07 false true true false)\n(llvm:elf-program-header-flags 06 false true false false)\n(llvm:elf-program-header-flags 05 false true false false)\n(llvm:elf-program-header-flags 04 false true true false)\n(llvm:elf-program-header-flags 03 true true true false)\n(llvm:elf-program-header-flags 02 true true false true)\n(llvm:elf-program-header-flags 01 false true false false)\n(llvm:elf-program-header-flags 00 false true false false)\n(llvm:elf-virtual-program-header 08 69064 568)\n(llvm:elf-virtual-program-header 07 0 0)\n(llvm:elf-virtual-program-header 06 2188 84)\n(llvm:elf-virtual-program-header 05 596 68)\n(llvm:elf-virtual-program-header 04 69080 480)\n(llvm:elf-virtual-program-header 03 69064 624)\n(llvm:elf-virtual-program-header 02 0 2532)\n(llvm:elf-virtual-program-header 01 568 27)\n(llvm:elf-virtual-program-header 00 64 504)\n(llvm:entry-point 1536)\n(llvm:name-reference 69656 abort)\n(llvm:name-reference 69648 __gmon_start__)\n(llvm:name-reference 69640 __cxa_finalize)\n(llvm:name-reference 69632 __libc_start_main)\n(llvm:name-reference 69600 _ITM_registerTMCloneTable)\n(llvm:name-reference 69584 __gmon_start__)\n(llvm:name-reference 69576 __cxa_finalize)\n(llvm:name-reference 69568 _ITM_deregisterTMCloneTable)\n(llvm:section-entry .shstrtab 0 259 7077)\n(llvm:section-entry .strtab 0 597 6480)\n(llvm:section-entry .symtab 0 2256 4224)\n(llvm:section-entry .comment 0 71 4148)\n(llvm:section-entry .bss 69684 4 4148)\n(llvm:section-entry .data 69664 20 4128)\n(llvm:section-entry .got.plt 69608 56 4072)\n(llvm:section-entry .got 69560 48 4024)\n(llvm:section-entry .dynamic 69080 480 3544)\n(llvm:section-entry .fini_array 69072 8 3536)\n(llvm:section-entry .init_array 69064 8 3528)\n(llvm:section-entry .eh_frame 2272 260 2272)\n(llvm:section-entry .eh_frame_hdr 2188 84 2188)\n(llvm:section-entry .rodata 2136 52 2136)\n(llvm:section-entry .fini 2116 20 2116)\n(llvm:section-entry .text 1536 580 1536)\n(llvm:section-entry .plt 1440 96 1440)\n(llvm:section-entry .init 1408 24 1408)\n(llvm:section-entry .rela.plt 1312 96 1312)\n(llvm:section-entry .rela.dyn 1120 192 1120)\n(llvm:section-entry .gnu.version_r 1072 48 1072)\n(llvm:section-entry .gnu.version 1054 18 1054)\n(llvm:section-entry .dynstr 912 141 912)\n(llvm:section-entry .dynsym 696 216 696)\n(llvm:section-entry .gnu.hash 664 28 664)\n(llvm:section-entry .note.ABI-tag 632 32 632)\n(llvm:section-entry .note.gnu.build-id 596 36 596)\n(llvm:section-entry .interp 568 27 568)\n(llvm:section-flags .shstrtab true false false)\n(llvm:section-flags .strtab true false false)\n(llvm:section-flags .symtab true false false)\n(llvm:section-flags .comment true false false)\n(llvm:section-flags .bss true true false)\n(llvm:section-flags .data true true false)\n(llvm:section-flags .got.plt true true false)\n(llvm:section-flags .got true true false)\n(llvm:section-flags .dynamic true true false)\n(llvm:section-flags .fini_array true true false)\n(llvm:section-flags .init_array true true false)\n(llvm:section-flags .eh_frame true false false)\n(llvm:section-flags .eh_frame_hdr true false false)\n(llvm:section-flags .rodata true false false)\n(llvm:section-flags .fini true false true)\n(llvm:section-flags .text true false true)\n(llvm:section-flags .plt true false true)\n(llvm:section-flags .init true false true)\n(llvm:section-flags .rela.plt true false false)\n(llvm:section-flags .rela.dyn true false false)\n(llvm:section-flags .gnu.version_r true false false)\n(llvm:section-flags .gnu.version true false false)\n(llvm:section-flags .dynstr true false false)\n(llvm:section-flags .dynsym true false false)\n(llvm:section-flags .gnu.hash true false false)\n(llvm:section-flags .note.ABI-tag true false false)\n(llvm:section-flags .note.gnu.build-id true false false)\n(llvm:section-flags .interp true false false)\n(llvm:symbol-entry abort 0 0 0 0)\n(llvm:symbol-entry __cxa_finalize 0 0 0 0)\n(llvm:symbol-entry __libc_start_main 0 0 0 0)\n(llvm:symbol-entry sub_seven 1852 20 1852 1852)\n(llvm:symbol-entry _init 1408 0 1408 1408)\n(llvm:symbol-entry main 1872 244 1872 1872)\n(llvm:symbol-entry add_six 1832 20 1832 1832)\n(llvm:symbol-entry _start 1536 52 1536 1536)\n(llvm:symbol-entry add_two 1812 20 1812 1812)\n(llvm:symbol-entry abort@GLIBC_2.17 0 0 0 0)\n(llvm:symbol-entry _fini 2116 0 2116 2116)\n(llvm:symbol-entry __cxa_finalize@GLIBC_2.17 0 0 0 0)\n(llvm:symbol-entry __libc_start_main@GLIBC_2.34 0 0 0 0)\n(llvm:symbol-entry frame_dummy 1808 0 1808 1808)\n(llvm:symbol-entry __do_global_dtors_aux 1728 0 1728 1728)\n(llvm:symbol-entry register_tm_clones 1664 0 1664 1664)\n(llvm:symbol-entry deregister_tm_clones 1616 0 1616 1616)\n(llvm:symbol-entry call_weak_fn 1588 20 1588 1588)\n(mapped 0 2532 0)\n(mapped 69064 620 3528)\n(named-region 0 2532 02)\n(named-region 69064 624 03)\n(named-region 568 27 .interp)\n(named-region 596 36 .note.gnu.build-id)\n(named-region 632 32 .note.ABI-tag)\n(named-region 664 28 .gnu.hash)\n(named-region 696 216 .dynsym)\n(named-region 912 141 .dynstr)\n(named-region 1054 18 .gnu.version)\n(named-region 1072 48 .gnu.version_r)\n(named-region 1120 192 .rela.dyn)\n(named-region 1312 96 .rela.plt)\n(named-region 1408 24 .init)\n(named-region 1440 96 .plt)\n(named-region 1536 580 .text)\n(named-region 2116 20 .fini)\n(named-region 2136 52 .rodata)\n(named-region 2188 84 .eh_frame_hdr)\n(named-region 2272 260 .eh_frame)\n(named-region 69064 8 .init_array)\n(named-region 69072 8 .fini_array)\n(named-region 69080 480 .dynamic)\n(named-region 69560 48 .got)\n(named-region 69608 56 .got.plt)\n(named-region 69664 20 .data)\n(named-region 69684 4 .bss)\n(named-region 0 71 .comment)\n(named-region 0 2256 .symtab)\n(named-region 0 597 .strtab)\n(named-region 0 259 .shstrtab)\n(named-symbol 1588 call_weak_fn)\n(named-symbol 1616 deregister_tm_clones)\n(named-symbol 1664 register_tm_clones)\n(named-symbol 1728 __do_global_dtors_aux)\n(named-symbol 1808 frame_dummy)\n(named-symbol 0 __libc_start_main@GLIBC_2.34)\n(named-symbol 0 __cxa_finalize@GLIBC_2.17)\n(named-symbol 2116 _fini)\n(named-symbol 0 abort@GLIBC_2.17)\n(named-symbol 1812 add_two)\n(named-symbol 1536 _start)\n(named-symbol 1832 add_six)\n(named-symbol 1872 main)\n(named-symbol 1408 _init)\n(named-symbol 1852 sub_seven)\n(named-symbol 0 __libc_start_main)\n(named-symbol 0 __cxa_finalize)\n(named-symbol 0 abort)\n(require libc.so.6)\n(section 568 27)\n(section 596 36)\n(section 632 32)\n(section 664 28)\n(section 696 216)\n(section 912 141)\n(section 1054 18)\n(section 1072 48)\n(section 1120 192)\n(section 1312 96)\n(section 1408 24)\n(section 1440 96)\n(section 1536 580)\n(section 2116 20)\n(section 2136 52)\n(section 2188 84)\n(section 2272 260)\n(section 69064 8)\n(section 69072 8)\n(section 69080 480)\n(section 69560 48)\n(section 69608 56)\n(section 69664 20)\n(section 69684 4)\n(section 0 71)\n(section 0 2256)\n(section 0 597)\n(section 0 259)\n(segment 0 2532 true false true)\n(segment 69064 624 true true false)\n(subarch v8)\n(symbol-chunk 1588 20 1588)\n(symbol-chunk 1812 20 1812)\n(symbol-chunk 1536 52 1536)\n(symbol-chunk 1832 20 1832)\n(symbol-chunk 1872 244 1872)\n(symbol-chunk 1852 20 1852)\n(symbol-value 1588 1588)\n(symbol-value 1616 1616)\n(symbol-value 1664 1664)\n(symbol-value 1728 1728)\n(symbol-value 1808 1808)\n(symbol-value 2116 2116)\n(symbol-value 1812 1812)\n(symbol-value 1536 1536)\n(symbol-value 1832 1832)\n(symbol-value 1872 1872)\n(symbol-value 1408 1408)\n(symbol-value 1852 1852)\n(symbol-value 0 0)\n(system \"\")\n(vendor \"\")\n"), -Attr("abi-name","\"aarch64-linux-gnu-elf\"")]), -Sections([Section(".shstrtab", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x00\x06\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xa8\x1c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x38\x00\x09\x00\x40\x00\x1d\x00\x1c\x00\x06\x00\x00\x00\x04\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x04\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe4\x09\x00\x00\x00\x00\x00\x00\xe4\x09\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x01\x00\x00\x00\x06\x00\x00\x00\xc8\x0d\x00\x00\x00\x00\x00\x00\xc8\x0d\x01\x00\x00\x00\x00\x00\xc8\x0d\x01"), -Section(".strtab", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x00\x06\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xa8\x1c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x38\x00\x09\x00\x40\x00\x1d\x00\x1c\x00\x06\x00\x00\x00\x04\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x04\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe4\x09\x00\x00\x00\x00\x00\x00\xe4\x09\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x01\x00\x00\x00\x06\x00\x00\x00\xc8\x0d\x00\x00\x00\x00\x00\x00\xc8\x0d\x01\x00\x00\x00\x00\x00\xc8\x0d\x01\x00\x00\x00\x00\x00\x6c\x02\x00\x00\x00\x00\x00\x00\x70\x02\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x02\x00\x00\x00\x06\x00\x00\x00\xd8\x0d\x00\x00\x00\x00\x00\x00\xd8\x0d\x01\x00\x00\x00\x00\x00\xd8\x0d\x01\x00\x00\x00\x00\x00\xe0\x01\x00\x00\x00\x00\x00\x00\xe0\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x04\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x50\xe5\x74\x64\x04\x00\x00\x00\x8c\x08\x00\x00\x00\x00\x00\x00\x8c\x08\x00\x00\x00\x00\x00\x00\x8c\x08\x00\x00\x00\x00\x00\x00\x54\x00\x00\x00\x00\x00\x00\x00\x54\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x51\xe5\x74\x64\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x52\xe5\x74\x64\x04\x00\x00\x00\xc8\x0d\x00\x00\x00\x00\x00\x00\xc8\x0d\x01\x00\x00\x00\x00\x00\xc8\x0d\x01\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x2f\x6c\x69\x62\x2f\x6c\x64\x2d\x6c\x69\x6e\x75\x78\x2d\x61\x61\x72\x63\x68\x36\x34\x2e\x73\x6f\x2e\x31\x00\x00\x04"), -Section(".symtab", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x00\x06\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xa8\x1c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x38\x00\x09\x00\x40\x00\x1d\x00\x1c\x00\x06\x00\x00\x00\x04\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x04\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe4\x09\x00\x00\x00\x00\x00\x00\xe4\x09\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x01\x00\x00\x00\x06\x00\x00\x00\xc8\x0d\x00\x00\x00\x00\x00\x00\xc8\x0d\x01\x00\x00\x00\x00\x00\xc8\x0d\x01\x00\x00\x00\x00\x00\x6c\x02\x00\x00\x00\x00\x00\x00\x70\x02\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x02\x00\x00\x00\x06\x00\x00\x00\xd8\x0d\x00\x00\x00\x00\x00\x00\xd8\x0d\x01\x00\x00\x00\x00\x00\xd8\x0d\x01\x00\x00\x00\x00\x00\xe0\x01\x00\x00\x00\x00\x00\x00\xe0\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x04\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x50\xe5\x74\x64\x04\x00\x00\x00\x8c\x08\x00\x00\x00\x00\x00\x00\x8c\x08\x00\x00\x00\x00\x00\x00\x8c\x08\x00\x00\x00\x00\x00\x00\x54\x00\x00\x00\x00\x00\x00\x00\x54\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x51\xe5\x74\x64\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x52\xe5\x74\x64\x04\x00\x00\x00\xc8\x0d\x00\x00\x00\x00\x00\x00\xc8\x0d\x01\x00\x00\x00\x00\x00\xc8\x0d\x01\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x2f\x6c\x69\x62\x2f\x6c\x64\x2d\x6c\x69\x6e\x75\x78\x2d\x61\x61\x72\x63\x68\x36\x34\x2e\x73\x6f\x2e\x31\x00\x00\x04\x00\x00\x00\x14\x00\x00\x00\x03\x00\x00\x00\x47\x4e\x55\x00\xaf\x76\xed\xad\xed\x20\xd5\x99\x06\x54\x6a\x47\x0f\x07\x5d\xe6\xd2\xd6\xcd\x29\x04\x00\x00\x00\x10\x00\x00\x00\x01\x00\x00\x00\x47\x4e\x55\x00\x00\x00\x00\x00\x03\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x01\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x0b\x00\x80\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x17\x00\x20\x10\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x48\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x22\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x22\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x73\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5f\x5f\x63\x78\x61\x5f\x66\x69\x6e\x61\x6c\x69\x7a\x65\x00\x5f\x5f\x6c\x69\x62\x63\x5f\x73\x74\x61\x72\x74\x5f\x6d\x61\x69\x6e\x00\x61\x62\x6f\x72\x74\x00\x6c\x69\x62\x63\x2e\x73\x6f\x2e\x36\x00\x47\x4c\x49\x42\x43\x5f\x32\x2e\x31\x37\x00\x47\x4c\x49\x42\x43\x5f\x32\x2e\x33\x34\x00\x5f\x49\x54\x4d\x5f\x64\x65\x72\x65\x67\x69\x73\x74\x65\x72\x54\x4d\x43\x6c\x6f\x6e\x65\x54\x61\x62\x6c\x65\x00\x5f\x5f\x67\x6d\x6f\x6e\x5f\x73\x74\x61\x72\x74\x5f\x5f\x00\x5f\x49\x54\x4d\x5f\x72\x65\x67\x69\x73\x74\x65\x72\x54\x4d\x43\x6c\x6f\x6e\x65\x54\x61\x62\x6c\x65\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x01\x00\x03\x00\x01\x00\x03\x00\x01\x00\x01\x00\x02\x00\x28\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x97\x91\x96\x06\x00\x00\x03\x00\x32\x00\x00\x00\x10\x00\x00\x00\xb4\x91\x96\x06\x00\x00\x02\x00\x3d\x00\x00\x00\x00\x00\x00\x00\xc8\x0d\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x10\x07\x00\x00\x00\x00\x00\x00\xd0\x0d\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\xc0\x06\x00\x00\x00\x00\x00\x00\xd8\x0f\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x50\x07\x00\x00\x00\x00\x00\x00\x28\x10\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x28\x10\x01\x00\x00\x00\x00\x00\xc0\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xc8\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xd0\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe0\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x08\x10\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x10\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x18\x10\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1f\x20\x03\xd5\xfd\x7b\xbf\xa9\xfd\x03\x00\x91\x2a\x00\x00\x94\xfd\x7b\xc1\xa8\xc0\x03\x5f\xd6\x00\x00\x00\x00\x00\x00\x00\x00\xf0\x7b\xbf\xa9\x90\x00\x00\x90\x11\xfe\x47\xf9\x10\xe2\x3f\x91\x20\x02\x1f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x90\x00\x00\xb0\x11\x02\x40\xf9\x10\x02\x00\x91\x20\x02\x1f\xd6\x90\x00\x00\xb0\x11\x06\x40\xf9\x10\x22\x00\x91\x20\x02\x1f\xd6\x90\x00\x00\xb0\x11\x0a\x40\xf9\x10\x42\x00\x91\x20\x02\x1f\xd6\x90\x00\x00\xb0\x11\x0e\x40\xf9\x10\x62\x00\x91\x20\x02\x1f\xd6\x1f\x20\x03\xd5\x1d\x00\x80\xd2\x1e\x00\x80\xd2\xe5\x03\x00\xaa\xe1\x03\x40\xf9\xe2\x23\x00\x91\xe6\x03\x00\x91\x80\x00\x00\x90\x00\xec\x47\xf9\x03\x00\x80\xd2\x04\x00\x80\xd2\xe5\xff\xff\x97\xf0\xff\xff\x97\x80\x00\x00\x90\x00\xe8\x47\xf9\x40\x00\x00\xb4\xe8\xff\xff\x17\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x80\x00\x00\xb0\x00\xe0\x00\x91\x81\x00\x00\xb0\x21\xe0\x00\x91\x3f\x00\x00\xeb\xc0\x00\x00\x54\x81\x00\x00\x90\x21\xe0\x47\xf9\x61\x00\x00\xb4\xf0\x03\x01\xaa\x00\x02\x1f\xd6\xc0\x03\x5f\xd6\x80\x00\x00\xb0\x00\xe0\x00\x91\x81\x00\x00\xb0\x21\xe0\x00\x91\x21\x00\x00\xcb\x22\xfc\x7f\xd3\x41\x0c\x81\x8b\x21\xfc\x41\x93\xc1\x00\x00\xb4\x82\x00\x00\x90\x42\xf0\x47\xf9\x62\x00\x00\xb4\xf0\x03\x02\xaa\x00\x02\x1f\xd6\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\xfd\x7b\xbe\xa9\xfd\x03\x00\x91\xf3\x0b\x00\xf9\x93\x00\x00\xb0\x60\xd2\x40\x39\x40\x01\x00\x35\x80\x00\x00\x90\x00\xe4\x47\xf9\x80\x00\x00\xb4\x80\x00\x00\xb0\x00\x14\x40\xf9\xb9\xff\xff\x97\xd8\xff\xff\x97\x20\x00\x80\x52\x60\xd2\x00\x39\xf3\x0b\x40\xf9\xfd\x7b\xc2\xa8\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\xdc\xff\xff\x17\x89\x00\x00\xb0\x28\x31\x40\xb9\x08\x09\x00\x11\x28\x31\x00\xb9\xc0\x03\x5f\xd6\x89\x00\x00\xb0\x28\x31\x40\xb9\x08\x19\x00\x11\x28\x31\x00\xb9\xc0\x03\x5f\xd6\x89\x00\x00\xb0\x28\x31\x40\xb9\x08\x1d\x00\x71\x28\x31\x00\xb9\xc0\x03\x5f\xd6\xff\xc3\x00\xd1\xfd\x7b\x02\xa9\xfd\x83\x00\x91\xbf\xc3\x1f\xb8\xa0\x83\x1f\xb8\xe1\x0b\x00\xf9\xa8\x83\x5f\xb8\x08\x01\x00\x71\xe8\x07\x00\xf9\x08\x2d\x00\xf1\xe8\x97\x9f\x1a\xe8\x04\x00\x37\xeb\x07\x40\xf9\x0a\x00\x00\x90\x4a\x71\x21\x91\x08\x00\x00\x10\x49\x79\xab\xb8\x08\x01\x09\x8b\x00\x01\x1f\xd6\xde\xff\xff\x97\x21\x00\x00\x14\xe1\xff\xff\x97\x01\x00\x00\x14\xe4\xff\xff\x97\x1d\x00\x00\x14\xd8\xff\xff\x97\xe1\xff\xff\x97\x1a\x00\x00\x14\xda\xff\xff\x97\x18\x00\x00\x14\xd8\xff\xff\x97\xd2\xff\xff\x97\x01\x00\x00\x14\xd5\xff\xff\x97\x01\x00\x00\x14\xd8\xff\xff\x97\x01\x00\x00\x14\xd6\xff\xff\x97\xd0\xff\xff\x97\x0e\x00\x00\x14\xc9\xff\xff\x97\xcd\xff\xff\x97\x0b\x00\x00\x14\xd0\xff\xff\x97\xc5\xff\xff\x97\xc9\xff\xff\x97\x01\x00\x00\x14\xcc\xff\xff\x97\xc1\xff\xff\x97\x04\x00\x00\x14\x28\x00\x80\x52\xa8\xc3\x1f\xb8\x05\x00\x00\x14\x88\x00\x00\xb0\x08\x31\x40\xb9\xa8\xc3\x1f\xb8\x01\x00\x00\x14\xa0\xc3\x5f\xb8\xfd\x7b\x42\xa9\xff\xc3\x00\x91\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\xfd\x7b\xbf\xa9\xfd\x03\x00\x91\xfd\x7b\xc1\xa8\xc0\x03\x5f\xd6\x01\x00\x02\x00\x10\x00\x00\x00\x18\x00\x00\x00\x20\x00\x00\x00\x28\x00\x00\x00\x34\x00\x00\x00\x3c\x00\x00\x00\x48\x00\x00\x00\x50\x00\x00\x00\x58\x00\x00\x00\x64\x00\x00\x00\x70\x00\x00\x00\x80\x00\x00\x00\x01\x1b\x03\x3b\x50\x00\x00\x00\x09\x00\x00\x00\x74\xfd\xff\xff\x68\x00\x00\x00\xc4\xfd\xff\xff\x7c\x00\x00\x00\xf4\xfd\xff\xff\x90\x00\x00\x00\x34\xfe\xff\xff\xa4\x00\x00\x00\x84\xfe\xff\xff\xc8\x00\x00\x00\x88\xfe\xff\xff\xf0\x00\x00\x00\x9c\xfe\xff\xff\x04\x01\x00\x00"), -Section(".comment", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x00\x06\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xa8\x1c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x38\x00\x09\x00\x40\x00\x1d\x00\x1c\x00\x06\x00\x00\x00\x04\x00\x00"), -Section(".interp", 0x238, "\x2f\x6c\x69\x62\x2f\x6c\x64\x2d\x6c\x69\x6e\x75\x78\x2d\x61\x61\x72\x63\x68\x36\x34\x2e\x73\x6f\x2e\x31\x00"), -Section(".note.gnu.build-id", 0x254, "\x04\x00\x00\x00\x14\x00\x00\x00\x03\x00\x00\x00\x47\x4e\x55\x00\xaf\x76\xed\xad\xed\x20\xd5\x99\x06\x54\x6a\x47\x0f\x07\x5d\xe6\xd2\xd6\xcd\x29"), -Section(".note.ABI-tag", 0x278, "\x04\x00\x00\x00\x10\x00\x00\x00\x01\x00\x00\x00\x47\x4e\x55\x00\x00\x00\x00\x00\x03\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00"), -Section(".gnu.hash", 0x298, "\x01\x00\x00\x00\x01\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".dynsym", 0x2B8, "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x0b\x00\x80\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x17\x00\x20\x10\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x48\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x22\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x22\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x73\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".dynstr", 0x390, "\x00\x5f\x5f\x63\x78\x61\x5f\x66\x69\x6e\x61\x6c\x69\x7a\x65\x00\x5f\x5f\x6c\x69\x62\x63\x5f\x73\x74\x61\x72\x74\x5f\x6d\x61\x69\x6e\x00\x61\x62\x6f\x72\x74\x00\x6c\x69\x62\x63\x2e\x73\x6f\x2e\x36\x00\x47\x4c\x49\x42\x43\x5f\x32\x2e\x31\x37\x00\x47\x4c\x49\x42\x43\x5f\x32\x2e\x33\x34\x00\x5f\x49\x54\x4d\x5f\x64\x65\x72\x65\x67\x69\x73\x74\x65\x72\x54\x4d\x43\x6c\x6f\x6e\x65\x54\x61\x62\x6c\x65\x00\x5f\x5f\x67\x6d\x6f\x6e\x5f\x73\x74\x61\x72\x74\x5f\x5f\x00\x5f\x49\x54\x4d\x5f\x72\x65\x67\x69\x73\x74\x65\x72\x54\x4d\x43\x6c\x6f\x6e\x65\x54\x61\x62\x6c\x65\x00"), -Section(".gnu.version", 0x41E, "\x00\x00\x00\x00\x00\x00\x02\x00\x01\x00\x03\x00\x01\x00\x03\x00\x01\x00"), -Section(".gnu.version_r", 0x430, "\x01\x00\x02\x00\x28\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x97\x91\x96\x06\x00\x00\x03\x00\x32\x00\x00\x00\x10\x00\x00\x00\xb4\x91\x96\x06\x00\x00\x02\x00\x3d\x00\x00\x00\x00\x00\x00\x00"), -Section(".rela.dyn", 0x460, "\xc8\x0d\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x10\x07\x00\x00\x00\x00\x00\x00\xd0\x0d\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\xc0\x06\x00\x00\x00\x00\x00\x00\xd8\x0f\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x50\x07\x00\x00\x00\x00\x00\x00\x28\x10\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x28\x10\x01\x00\x00\x00\x00\x00\xc0\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xc8\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xd0\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe0\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".rela.plt", 0x520, "\x00\x10\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x08\x10\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x10\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x18\x10\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".init", 0x580, "\x1f\x20\x03\xd5\xfd\x7b\xbf\xa9\xfd\x03\x00\x91\x2a\x00\x00\x94\xfd\x7b\xc1\xa8\xc0\x03\x5f\xd6"), -Section(".plt", 0x5A0, "\xf0\x7b\xbf\xa9\x90\x00\x00\x90\x11\xfe\x47\xf9\x10\xe2\x3f\x91\x20\x02\x1f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x90\x00\x00\xb0\x11\x02\x40\xf9\x10\x02\x00\x91\x20\x02\x1f\xd6\x90\x00\x00\xb0\x11\x06\x40\xf9\x10\x22\x00\x91\x20\x02\x1f\xd6\x90\x00\x00\xb0\x11\x0a\x40\xf9\x10\x42\x00\x91\x20\x02\x1f\xd6\x90\x00\x00\xb0\x11\x0e\x40\xf9\x10\x62\x00\x91\x20\x02\x1f\xd6"), -Section(".text", 0x600, "\x1f\x20\x03\xd5\x1d\x00\x80\xd2\x1e\x00\x80\xd2\xe5\x03\x00\xaa\xe1\x03\x40\xf9\xe2\x23\x00\x91\xe6\x03\x00\x91\x80\x00\x00\x90\x00\xec\x47\xf9\x03\x00\x80\xd2\x04\x00\x80\xd2\xe5\xff\xff\x97\xf0\xff\xff\x97\x80\x00\x00\x90\x00\xe8\x47\xf9\x40\x00\x00\xb4\xe8\xff\xff\x17\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x80\x00\x00\xb0\x00\xe0\x00\x91\x81\x00\x00\xb0\x21\xe0\x00\x91\x3f\x00\x00\xeb\xc0\x00\x00\x54\x81\x00\x00\x90\x21\xe0\x47\xf9\x61\x00\x00\xb4\xf0\x03\x01\xaa\x00\x02\x1f\xd6\xc0\x03\x5f\xd6\x80\x00\x00\xb0\x00\xe0\x00\x91\x81\x00\x00\xb0\x21\xe0\x00\x91\x21\x00\x00\xcb\x22\xfc\x7f\xd3\x41\x0c\x81\x8b\x21\xfc\x41\x93\xc1\x00\x00\xb4\x82\x00\x00\x90\x42\xf0\x47\xf9\x62\x00\x00\xb4\xf0\x03\x02\xaa\x00\x02\x1f\xd6\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\xfd\x7b\xbe\xa9\xfd\x03\x00\x91\xf3\x0b\x00\xf9\x93\x00\x00\xb0\x60\xd2\x40\x39\x40\x01\x00\x35\x80\x00\x00\x90\x00\xe4\x47\xf9\x80\x00\x00\xb4\x80\x00\x00\xb0\x00\x14\x40\xf9\xb9\xff\xff\x97\xd8\xff\xff\x97\x20\x00\x80\x52\x60\xd2\x00\x39\xf3\x0b\x40\xf9\xfd\x7b\xc2\xa8\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\xdc\xff\xff\x17\x89\x00\x00\xb0\x28\x31\x40\xb9\x08\x09\x00\x11\x28\x31\x00\xb9\xc0\x03\x5f\xd6\x89\x00\x00\xb0\x28\x31\x40\xb9\x08\x19\x00\x11\x28\x31\x00\xb9\xc0\x03\x5f\xd6\x89\x00\x00\xb0\x28\x31\x40\xb9\x08\x1d\x00\x71\x28\x31\x00\xb9\xc0\x03\x5f\xd6\xff\xc3\x00\xd1\xfd\x7b\x02\xa9\xfd\x83\x00\x91\xbf\xc3\x1f\xb8\xa0\x83\x1f\xb8\xe1\x0b\x00\xf9\xa8\x83\x5f\xb8\x08\x01\x00\x71\xe8\x07\x00\xf9\x08\x2d\x00\xf1\xe8\x97\x9f\x1a\xe8\x04\x00\x37\xeb\x07\x40\xf9\x0a\x00\x00\x90\x4a\x71\x21\x91\x08\x00\x00\x10\x49\x79\xab\xb8\x08\x01\x09\x8b\x00\x01\x1f\xd6\xde\xff\xff\x97\x21\x00\x00\x14\xe1\xff\xff\x97\x01\x00\x00\x14\xe4\xff\xff\x97\x1d\x00\x00\x14\xd8\xff\xff\x97\xe1\xff\xff\x97\x1a\x00\x00\x14\xda\xff\xff\x97\x18\x00\x00\x14\xd8\xff\xff\x97\xd2\xff\xff\x97\x01\x00\x00\x14\xd5\xff\xff\x97\x01\x00\x00\x14\xd8\xff\xff\x97\x01\x00\x00\x14\xd6\xff\xff\x97\xd0\xff\xff\x97\x0e\x00\x00\x14\xc9\xff\xff\x97\xcd\xff\xff\x97\x0b\x00\x00\x14\xd0\xff\xff\x97\xc5\xff\xff\x97\xc9\xff\xff\x97\x01\x00\x00\x14\xcc\xff\xff\x97\xc1\xff\xff\x97\x04\x00\x00\x14\x28\x00\x80\x52\xa8\xc3\x1f\xb8\x05\x00\x00\x14\x88\x00\x00\xb0\x08\x31\x40\xb9\xa8\xc3\x1f\xb8\x01\x00\x00\x14\xa0\xc3\x5f\xb8\xfd\x7b\x42\xa9\xff\xc3\x00\x91\xc0\x03\x5f\xd6"), -Section(".fini", 0x844, "\x1f\x20\x03\xd5\xfd\x7b\xbf\xa9\xfd\x03\x00\x91\xfd\x7b\xc1\xa8\xc0\x03\x5f\xd6"), -Section(".rodata", 0x858, "\x01\x00\x02\x00\x10\x00\x00\x00\x18\x00\x00\x00\x20\x00\x00\x00\x28\x00\x00\x00\x34\x00\x00\x00\x3c\x00\x00\x00\x48\x00\x00\x00\x50\x00\x00\x00\x58\x00\x00\x00\x64\x00\x00\x00\x70\x00\x00\x00\x80\x00\x00\x00"), -Section(".eh_frame_hdr", 0x88C, "\x01\x1b\x03\x3b\x50\x00\x00\x00\x09\x00\x00\x00\x74\xfd\xff\xff\x68\x00\x00\x00\xc4\xfd\xff\xff\x7c\x00\x00\x00\xf4\xfd\xff\xff\x90\x00\x00\x00\x34\xfe\xff\xff\xa4\x00\x00\x00\x84\xfe\xff\xff\xc8\x00\x00\x00\x88\xfe\xff\xff\xf0\x00\x00\x00\x9c\xfe\xff\xff\x04\x01\x00\x00\xb0\xfe\xff\xff\x18\x01\x00\x00\xc4\xfe\xff\xff\x2c\x01\x00\x00"), -Section(".eh_frame", 0x8E0, "\x10\x00\x00\x00\x00\x00\x00\x00\x01\x7a\x52\x00\x04\x78\x1e\x01\x1b\x0c\x1f\x00\x10\x00\x00\x00\x18\x00\x00\x00\x04\xfd\xff\xff\x34\x00\x00\x00\x00\x41\x07\x1e\x10\x00\x00\x00\x2c\x00\x00\x00\x40\xfd\xff\xff\x30\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x40\x00\x00\x00\x5c\xfd\xff\xff\x3c\x00\x00\x00\x00\x00\x00\x00\x20\x00\x00\x00\x54\x00\x00\x00\x88\xfd\xff\xff\x48\x00\x00\x00\x00\x41\x0e\x20\x9d\x04\x9e\x03\x42\x93\x02\x4e\xde\xdd\xd3\x0e\x00\x00\x00\x00\x10\x00\x00\x00\x78\x00\x00\x00\xb4\xfd\xff\xff\x04\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x01\x7a\x52\x00\x01\x7c\x1e\x01\x1b\x0c\x1f\x00\x10\x00\x00\x00\x18\x00\x00\x00\x90\xfd\xff\xff\x14\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x2c\x00\x00\x00\x90\xfd\xff\xff\x14\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x40\x00\x00\x00\x90\xfd\xff\xff\x14\x00\x00\x00\x00\x00\x00\x00\x24\x00\x00\x00\x54\x00\x00\x00\x90\xfd\xff\xff\xf4\x00\x00\x00\x00\x44\x0e\x30\x48\x0c\x1d\x10\x9e\x02\x9d\x04\x02\xdc\x0c\x1f\x30\x48\x0e\x00\xde\xdd\x00\x00\x00\x00\x00\x00"), -Section(".fini_array", 0x10DD0, "\xc0\x06\x00\x00\x00\x00\x00\x00"), -Section(".dynamic", 0x10DD8, "\x01\x00\x00\x00\x00\x00\x00\x00\x28\x00\x00\x00\x00\x00\x00\x00\x0c\x00\x00\x00\x00\x00\x00\x00\x80\x05\x00\x00\x00\x00\x00\x00\x0d\x00\x00\x00\x00\x00\x00\x00\x44\x08\x00\x00\x00\x00\x00\x00\x19\x00\x00\x00\x00\x00\x00\x00\xc8\x0d\x01\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x1a\x00\x00\x00\x00\x00\x00\x00\xd0\x0d\x01\x00\x00\x00\x00\x00\x1c\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\xf5\xfe\xff\x6f\x00\x00\x00\x00\x98\x02\x00\x00\x00\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x90\x03\x00\x00\x00\x00\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\xb8\x02\x00\x00\x00\x00\x00\x00\x0a\x00\x00\x00\x00\x00\x00\x00\x8d\x00\x00\x00\x00\x00\x00\x00\x0b\x00\x00\x00\x00\x00\x00\x00\x18\x00\x00\x00\x00\x00\x00\x00\x15\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\xe8\x0f\x01\x00\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x60\x00\x00\x00\x00\x00\x00\x00\x14\x00\x00\x00\x00\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x17\x00\x00\x00\x00\x00\x00\x00\x20\x05\x00\x00\x00\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x60\x04\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\xc0\x00\x00\x00\x00\x00\x00\x00\x09\x00\x00\x00\x00\x00\x00\x00\x18\x00\x00\x00\x00\x00\x00\x00\xfb\xff\xff\x6f\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\xfe\xff\xff\x6f\x00\x00\x00\x00\x30\x04\x00\x00\x00\x00\x00\x00\xff\xff\xff\x6f\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\xf0\xff\xff\x6f\x00\x00\x00\x00\x1e\x04\x00\x00\x00\x00\x00\x00\xf9\xff\xff\x6f\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".got", 0x10FB8, "\xd8\x0d\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x50\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".got.plt", 0x10FE8, "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xa0\x05\x00\x00\x00\x00\x00\x00\xa0\x05\x00\x00\x00\x00\x00\x00\xa0\x05\x00\x00\x00\x00\x00\x00\xa0\x05\x00\x00\x00\x00\x00\x00"), -Section(".data", 0x11020, "\x00\x00\x00\x00\x00\x00\x00\x00\x28\x10\x01\x00\x00\x00\x00\x00\x05\x00\x00\x00"), -Section(".init_array", 0x10DC8, "\x10\x07\x00\x00\x00\x00\x00\x00")]), -Memmap([Annotation(Region(0x0,0x9E3), Attr("segment","02 0 2532")), -Annotation(Region(0x600,0x633), Attr("symbol","\"_start\"")), -Annotation(Region(0x0,0x102), Attr("section","\".shstrtab\"")), -Annotation(Region(0x0,0x254), Attr("section","\".strtab\"")), -Annotation(Region(0x0,0x8CF), Attr("section","\".symtab\"")), -Annotation(Region(0x0,0x46), Attr("section","\".comment\"")), -Annotation(Region(0x238,0x252), Attr("section","\".interp\"")), -Annotation(Region(0x254,0x277), Attr("section","\".note.gnu.build-id\"")), -Annotation(Region(0x278,0x297), Attr("section","\".note.ABI-tag\"")), -Annotation(Region(0x298,0x2B3), Attr("section","\".gnu.hash\"")), -Annotation(Region(0x2B8,0x38F), Attr("section","\".dynsym\"")), -Annotation(Region(0x390,0x41C), Attr("section","\".dynstr\"")), -Annotation(Region(0x41E,0x42F), Attr("section","\".gnu.version\"")), -Annotation(Region(0x430,0x45F), Attr("section","\".gnu.version_r\"")), -Annotation(Region(0x460,0x51F), Attr("section","\".rela.dyn\"")), -Annotation(Region(0x520,0x57F), Attr("section","\".rela.plt\"")), -Annotation(Region(0x580,0x597), Attr("section","\".init\"")), -Annotation(Region(0x5A0,0x5FF), Attr("section","\".plt\"")), -Annotation(Region(0x580,0x597), Attr("code-region","()")), -Annotation(Region(0x5A0,0x5FF), Attr("code-region","()")), -Annotation(Region(0x600,0x633), Attr("symbol-info","_start 0x600 52")), -Annotation(Region(0x634,0x647), Attr("symbol","\"call_weak_fn\"")), -Annotation(Region(0x634,0x647), Attr("symbol-info","call_weak_fn 0x634 20")), -Annotation(Region(0x714,0x727), Attr("symbol","\"add_two\"")), -Annotation(Region(0x714,0x727), Attr("symbol-info","add_two 0x714 20")), -Annotation(Region(0x728,0x73B), Attr("symbol","\"add_six\"")), -Annotation(Region(0x728,0x73B), Attr("symbol-info","add_six 0x728 20")), -Annotation(Region(0x73C,0x74F), Attr("symbol","\"sub_seven\"")), -Annotation(Region(0x600,0x843), Attr("section","\".text\"")), -Annotation(Region(0x600,0x843), Attr("code-region","()")), -Annotation(Region(0x73C,0x74F), Attr("symbol-info","sub_seven 0x73C 20")), -Annotation(Region(0x750,0x843), Attr("symbol","\"main\"")), -Annotation(Region(0x750,0x843), Attr("symbol-info","main 0x750 244")), -Annotation(Region(0x844,0x857), Attr("section","\".fini\"")), -Annotation(Region(0x844,0x857), Attr("code-region","()")), -Annotation(Region(0x858,0x88B), Attr("section","\".rodata\"")), -Annotation(Region(0x88C,0x8DF), Attr("section","\".eh_frame_hdr\"")), -Annotation(Region(0x8E0,0x9E3), Attr("section","\".eh_frame\"")), -Annotation(Region(0x10DC8,0x11033), Attr("segment","03 0x10DC8 624")), -Annotation(Region(0x10DD0,0x10DD7), Attr("section","\".fini_array\"")), -Annotation(Region(0x10DD8,0x10FB7), Attr("section","\".dynamic\"")), -Annotation(Region(0x10FB8,0x10FE7), Attr("section","\".got\"")), -Annotation(Region(0x10FE8,0x1101F), Attr("section","\".got.plt\"")), -Annotation(Region(0x11020,0x11033), Attr("section","\".data\"")), -Annotation(Region(0x10DC8,0x10DCF), Attr("section","\".init_array\""))]), -Program(Tid(2_384, "%00000950"), Attrs([]), - Subs([Sub(Tid(2_326, "@__cxa_finalize"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x5D0"), -Attr("stub","()")]), "__cxa_finalize", Args([Arg(Tid(2_385, "%00000951"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("__cxa_finalize_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(1_602, "@__cxa_finalize"), - Attrs([Attr("address","0x5D0")]), Phis([]), -Defs([Def(Tid(1_850, "%0000073a"), Attrs([Attr("address","0x5D0"), -Attr("insn","adrp x16, #69632")]), Var("R16",Imm(64)), Int(69632,64)), -Def(Tid(1_857, "%00000741"), Attrs([Attr("address","0x5D4"), -Attr("insn","ldr x17, [x16, #0x8]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(1_863, "%00000747"), Attrs([Attr("address","0x5D8"), -Attr("insn","add x16, x16, #0x8")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(8,64)))]), Jmps([Call(Tid(1_868, "%0000074c"), - Attrs([Attr("address","0x5DC"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), -Sub(Tid(2_327, "@__do_global_dtors_aux"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x6C0")]), - "__do_global_dtors_aux", Args([Arg(Tid(2_386, "%00000952"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("__do_global_dtors_aux_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(894, "@__do_global_dtors_aux"), - Attrs([Attr("address","0x6C0")]), Phis([]), Defs([Def(Tid(898, "%00000382"), - Attrs([Attr("address","0x6C0"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("#3",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(18446744073709551584,64))), -Def(Tid(904, "%00000388"), Attrs([Attr("address","0x6C0"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("#3",Imm(64)),Var("R29",Imm(64)),LittleEndian(),64)), -Def(Tid(910, "%0000038e"), Attrs([Attr("address","0x6C0"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("#3",Imm(64)),Int(8,64)),Var("R30",Imm(64)),LittleEndian(),64)), -Def(Tid(914, "%00000392"), Attrs([Attr("address","0x6C0"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("R31",Imm(64)), -Var("#3",Imm(64))), Def(Tid(920, "%00000398"), - Attrs([Attr("address","0x6C4"), Attr("insn","mov x29, sp")]), - Var("R29",Imm(64)), Var("R31",Imm(64))), Def(Tid(928, "%000003a0"), - Attrs([Attr("address","0x6C8"), Attr("insn","str x19, [sp, #0x10]")]), - Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(16,64)),Var("R19",Imm(64)),LittleEndian(),64)), -Def(Tid(933, "%000003a5"), Attrs([Attr("address","0x6CC"), -Attr("insn","adrp x19, #69632")]), Var("R19",Imm(64)), Int(69632,64)), -Def(Tid(940, "%000003ac"), Attrs([Attr("address","0x6D0"), -Attr("insn","ldrb w0, [x19, #0x34]")]), Var("R0",Imm(64)), -UNSIGNED(64,Load(Var("mem",Mem(64,8)),PLUS(Var("R19",Imm(64)),Int(52,64)),LittleEndian(),8)))]), -Jmps([Goto(Tid(947, "%000003b3"), Attrs([Attr("address","0x6D4"), -Attr("insn","cbnz w0, #0x28")]), - NEQ(Extract(31,0,Var("R0",Imm(64))),Int(0,32)), -Direct(Tid(945, "%000003b1"))), Goto(Tid(2_373, "%00000945"), Attrs([]), - Int(1,1), Direct(Tid(1_547, "%0000060b")))])), Blk(Tid(1_547, "%0000060b"), - Attrs([Attr("address","0x6D8")]), Phis([]), -Defs([Def(Tid(1_550, "%0000060e"), Attrs([Attr("address","0x6D8"), -Attr("insn","adrp x0, #65536")]), Var("R0",Imm(64)), Int(65536,64)), -Def(Tid(1_557, "%00000615"), Attrs([Attr("address","0x6DC"), -Attr("insn","ldr x0, [x0, #0xfc8]")]), Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(4040,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(1_563, "%0000061b"), Attrs([Attr("address","0x6E0"), -Attr("insn","cbz x0, #0x10")]), EQ(Var("R0",Imm(64)),Int(0,64)), -Direct(Tid(1_561, "%00000619"))), Goto(Tid(2_374, "%00000946"), Attrs([]), - Int(1,1), Direct(Tid(1_586, "%00000632")))])), Blk(Tid(1_586, "%00000632"), - Attrs([Attr("address","0x6E4")]), Phis([]), -Defs([Def(Tid(1_589, "%00000635"), Attrs([Attr("address","0x6E4"), -Attr("insn","adrp x0, #69632")]), Var("R0",Imm(64)), Int(69632,64)), -Def(Tid(1_596, "%0000063c"), Attrs([Attr("address","0x6E8"), -Attr("insn","ldr x0, [x0, #0x28]")]), Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(40,64)),LittleEndian(),64)), -Def(Tid(1_601, "%00000641"), Attrs([Attr("address","0x6EC"), -Attr("insn","bl #-0x11c")]), Var("R30",Imm(64)), Int(1776,64))]), -Jmps([Call(Tid(1_604, "%00000644"), Attrs([Attr("address","0x6EC"), -Attr("insn","bl #-0x11c")]), Int(1,1), -(Direct(Tid(2_326, "@__cxa_finalize")),Direct(Tid(1_561, "%00000619"))))])), -Blk(Tid(1_561, "%00000619"), Attrs([Attr("address","0x6F0")]), Phis([]), -Defs([Def(Tid(1_569, "%00000621"), Attrs([Attr("address","0x6F0"), -Attr("insn","bl #-0xa0")]), Var("R30",Imm(64)), Int(1780,64))]), -Jmps([Call(Tid(1_571, "%00000623"), Attrs([Attr("address","0x6F0"), -Attr("insn","bl #-0xa0")]), Int(1,1), -(Direct(Tid(2_342, "@deregister_tm_clones")),Direct(Tid(1_573, "%00000625"))))])), -Blk(Tid(1_573, "%00000625"), Attrs([Attr("address","0x6F4")]), Phis([]), -Defs([Def(Tid(1_576, "%00000628"), Attrs([Attr("address","0x6F4"), -Attr("insn","mov w0, #0x1")]), Var("R0",Imm(64)), Int(1,64)), -Def(Tid(1_584, "%00000630"), Attrs([Attr("address","0x6F8"), -Attr("insn","strb w0, [x19, #0x34]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R19",Imm(64)),Int(52,64)),Extract(7,0,Var("R0",Imm(64))),LittleEndian(),8))]), -Jmps([Goto(Tid(2_375, "%00000947"), Attrs([]), Int(1,1), -Direct(Tid(945, "%000003b1")))])), Blk(Tid(945, "%000003b1"), - Attrs([Attr("address","0x6FC")]), Phis([]), Defs([Def(Tid(955, "%000003bb"), - Attrs([Attr("address","0x6FC"), Attr("insn","ldr x19, [sp, #0x10]")]), - Var("R19",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(16,64)),LittleEndian(),64)), -Def(Tid(962, "%000003c2"), Attrs([Attr("address","0x700"), -Attr("insn","ldp x29, x30, [sp], #0x20")]), Var("R29",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(967, "%000003c7"), Attrs([Attr("address","0x700"), -Attr("insn","ldp x29, x30, [sp], #0x20")]), Var("R30",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(971, "%000003cb"), Attrs([Attr("address","0x700"), -Attr("insn","ldp x29, x30, [sp], #0x20")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(32,64)))]), Jmps([Call(Tid(976, "%000003d0"), - Attrs([Attr("address","0x704"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), Sub(Tid(2_331, "@__libc_start_main"), - Attrs([Attr("c.proto","signed (*)(signed (*)(signed , char** , char** );* main, signed , char** , \nvoid* auxv)"), -Attr("address","0x5C0"), Attr("stub","()")]), "__libc_start_main", - Args([Arg(Tid(2_387, "%00000953"), - Attrs([Attr("c.layout","**[ : 64]"), -Attr("c.data","Top:u64 ptr ptr"), -Attr("c.type","signed (*)(signed , char** , char** );*")]), - Var("__libc_start_main_main",Imm(64)), Var("R0",Imm(64)), In()), -Arg(Tid(2_388, "%00000954"), Attrs([Attr("c.layout","[signed : 32]"), -Attr("c.data","Top:u32"), Attr("c.type","signed")]), - Var("__libc_start_main_arg2",Imm(32)), LOW(32,Var("R1",Imm(64))), In()), -Arg(Tid(2_389, "%00000955"), Attrs([Attr("c.layout","**[char : 8]"), -Attr("c.data","Top:u8 ptr ptr"), Attr("c.type","char**")]), - Var("__libc_start_main_arg3",Imm(64)), Var("R2",Imm(64)), Both()), -Arg(Tid(2_390, "%00000956"), Attrs([Attr("c.layout","*[ : 8]"), -Attr("c.data","{} ptr"), Attr("c.type","void*")]), - Var("__libc_start_main_auxv",Imm(64)), Var("R3",Imm(64)), Both()), -Arg(Tid(2_391, "%00000957"), Attrs([Attr("c.layout","[signed : 32]"), -Attr("c.data","Top:u32"), Attr("c.type","signed")]), - Var("__libc_start_main_result",Imm(32)), LOW(32,Var("R0",Imm(64))), -Out())]), Blks([Blk(Tid(727, "@__libc_start_main"), - Attrs([Attr("address","0x5C0")]), Phis([]), -Defs([Def(Tid(1_828, "%00000724"), Attrs([Attr("address","0x5C0"), -Attr("insn","adrp x16, #69632")]), Var("R16",Imm(64)), Int(69632,64)), -Def(Tid(1_835, "%0000072b"), Attrs([Attr("address","0x5C4"), -Attr("insn","ldr x17, [x16]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R16",Imm(64)),LittleEndian(),64)), -Def(Tid(1_841, "%00000731"), Attrs([Attr("address","0x5C8"), -Attr("insn","add x16, x16, #0x0")]), Var("R16",Imm(64)), -Var("R16",Imm(64)))]), Jmps([Call(Tid(1_846, "%00000736"), - Attrs([Attr("address","0x5CC"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), Sub(Tid(2_332, "@_fini"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x844")]), - "_fini", Args([Arg(Tid(2_392, "%00000958"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("_fini_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(31, "@_fini"), - Attrs([Attr("address","0x844")]), Phis([]), Defs([Def(Tid(37, "%00000025"), - Attrs([Attr("address","0x848"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("#0",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(18446744073709551600,64))), -Def(Tid(43, "%0000002b"), Attrs([Attr("address","0x848"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("#0",Imm(64)),Var("R29",Imm(64)),LittleEndian(),64)), -Def(Tid(49, "%00000031"), Attrs([Attr("address","0x848"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("#0",Imm(64)),Int(8,64)),Var("R30",Imm(64)),LittleEndian(),64)), -Def(Tid(53, "%00000035"), Attrs([Attr("address","0x848"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("R31",Imm(64)), -Var("#0",Imm(64))), Def(Tid(59, "%0000003b"), Attrs([Attr("address","0x84C"), -Attr("insn","mov x29, sp")]), Var("R29",Imm(64)), Var("R31",Imm(64))), -Def(Tid(66, "%00000042"), Attrs([Attr("address","0x850"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R29",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(71, "%00000047"), Attrs([Attr("address","0x850"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R30",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(75, "%0000004b"), Attrs([Attr("address","0x850"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(16,64)))]), Jmps([Call(Tid(80, "%00000050"), - Attrs([Attr("address","0x854"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), Sub(Tid(2_333, "@_init"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x580")]), - "_init", Args([Arg(Tid(2_393, "%00000959"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("_init_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(2_092, "@_init"), - Attrs([Attr("address","0x580")]), Phis([]), -Defs([Def(Tid(2_098, "%00000832"), Attrs([Attr("address","0x584"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("#10",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(18446744073709551600,64))), -Def(Tid(2_104, "%00000838"), Attrs([Attr("address","0x584"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("#10",Imm(64)),Var("R29",Imm(64)),LittleEndian(),64)), -Def(Tid(2_110, "%0000083e"), Attrs([Attr("address","0x584"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("#10",Imm(64)),Int(8,64)),Var("R30",Imm(64)),LittleEndian(),64)), -Def(Tid(2_114, "%00000842"), Attrs([Attr("address","0x584"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("R31",Imm(64)), -Var("#10",Imm(64))), Def(Tid(2_120, "%00000848"), - Attrs([Attr("address","0x588"), Attr("insn","mov x29, sp")]), - Var("R29",Imm(64)), Var("R31",Imm(64))), Def(Tid(2_125, "%0000084d"), - Attrs([Attr("address","0x58C"), Attr("insn","bl #0xa8")]), - Var("R30",Imm(64)), Int(1424,64))]), Jmps([Call(Tid(2_127, "%0000084f"), - Attrs([Attr("address","0x58C"), Attr("insn","bl #0xa8")]), Int(1,1), -(Direct(Tid(2_340, "@call_weak_fn")),Direct(Tid(2_129, "%00000851"))))])), -Blk(Tid(2_129, "%00000851"), Attrs([Attr("address","0x590")]), Phis([]), -Defs([Def(Tid(2_134, "%00000856"), Attrs([Attr("address","0x590"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R29",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(2_139, "%0000085b"), Attrs([Attr("address","0x590"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R30",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(2_143, "%0000085f"), Attrs([Attr("address","0x590"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(16,64)))]), Jmps([Call(Tid(2_148, "%00000864"), - Attrs([Attr("address","0x594"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), Sub(Tid(2_334, "@_start"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x600"), -Attr("stub","()"), Attr("entry-point","()")]), "_start", - Args([Arg(Tid(2_394, "%0000095a"), Attrs([Attr("c.layout","[signed : 32]"), -Attr("c.data","Top:u32"), Attr("c.type","signed")]), - Var("_start_result",Imm(32)), LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(664, "@_start"), Attrs([Attr("address","0x600")]), Phis([]), -Defs([Def(Tid(669, "%0000029d"), Attrs([Attr("address","0x604"), -Attr("insn","mov x29, #0x0")]), Var("R29",Imm(64)), Int(0,64)), -Def(Tid(674, "%000002a2"), Attrs([Attr("address","0x608"), -Attr("insn","mov x30, #0x0")]), Var("R30",Imm(64)), Int(0,64)), -Def(Tid(680, "%000002a8"), Attrs([Attr("address","0x60C"), -Attr("insn","mov x5, x0")]), Var("R5",Imm(64)), Var("R0",Imm(64))), -Def(Tid(687, "%000002af"), Attrs([Attr("address","0x610"), -Attr("insn","ldr x1, [sp]")]), Var("R1",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(693, "%000002b5"), Attrs([Attr("address","0x614"), -Attr("insn","add x2, sp, #0x8")]), Var("R2",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(8,64))), Def(Tid(699, "%000002bb"), - Attrs([Attr("address","0x618"), Attr("insn","mov x6, sp")]), - Var("R6",Imm(64)), Var("R31",Imm(64))), Def(Tid(704, "%000002c0"), - Attrs([Attr("address","0x61C"), Attr("insn","adrp x0, #65536")]), - Var("R0",Imm(64)), Int(65536,64)), Def(Tid(711, "%000002c7"), - Attrs([Attr("address","0x620"), Attr("insn","ldr x0, [x0, #0xfd8]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(4056,64)),LittleEndian(),64)), -Def(Tid(716, "%000002cc"), Attrs([Attr("address","0x624"), -Attr("insn","mov x3, #0x0")]), Var("R3",Imm(64)), Int(0,64)), -Def(Tid(721, "%000002d1"), Attrs([Attr("address","0x628"), -Attr("insn","mov x4, #0x0")]), Var("R4",Imm(64)), Int(0,64)), -Def(Tid(726, "%000002d6"), Attrs([Attr("address","0x62C"), -Attr("insn","bl #-0x6c")]), Var("R30",Imm(64)), Int(1584,64))]), -Jmps([Call(Tid(729, "%000002d9"), Attrs([Attr("address","0x62C"), -Attr("insn","bl #-0x6c")]), Int(1,1), -(Direct(Tid(2_331, "@__libc_start_main")),Direct(Tid(731, "%000002db"))))])), -Blk(Tid(731, "%000002db"), Attrs([Attr("address","0x630")]), Phis([]), -Defs([Def(Tid(734, "%000002de"), Attrs([Attr("address","0x630"), -Attr("insn","bl #-0x40")]), Var("R30",Imm(64)), Int(1588,64))]), -Jmps([Call(Tid(737, "%000002e1"), Attrs([Attr("address","0x630"), -Attr("insn","bl #-0x40")]), Int(1,1), -(Direct(Tid(2_337, "@abort")),Direct(Tid(2_376, "%00000948"))))])), -Blk(Tid(2_376, "%00000948"), Attrs([]), Phis([]), Defs([]), -Jmps([Call(Tid(2_377, "%00000949"), Attrs([]), Int(1,1), -(Direct(Tid(2_340, "@call_weak_fn")),))]))])), Sub(Tid(2_337, "@abort"), - Attrs([Attr("noreturn","()"), Attr("c.proto","void (*)(void)"), -Attr("address","0x5F0"), Attr("stub","()")]), "abort", Args([]), -Blks([Blk(Tid(735, "@abort"), Attrs([Attr("address","0x5F0")]), Phis([]), -Defs([Def(Tid(1_894, "%00000766"), Attrs([Attr("address","0x5F0"), -Attr("insn","adrp x16, #69632")]), Var("R16",Imm(64)), Int(69632,64)), -Def(Tid(1_901, "%0000076d"), Attrs([Attr("address","0x5F4"), -Attr("insn","ldr x17, [x16, #0x18]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(24,64)),LittleEndian(),64)), -Def(Tid(1_907, "%00000773"), Attrs([Attr("address","0x5F8"), -Attr("insn","add x16, x16, #0x18")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(24,64)))]), Jmps([Call(Tid(1_912, "%00000778"), - Attrs([Attr("address","0x5FC"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), Sub(Tid(2_338, "@add_six"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x728")]), - "add_six", Args([Arg(Tid(2_395, "%0000095b"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("add_six_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(1_017, "@add_six"), - Attrs([Attr("address","0x728")]), Phis([]), -Defs([Def(Tid(1_020, "%000003fc"), Attrs([Attr("address","0x728"), -Attr("insn","adrp x9, #69632")]), Var("R9",Imm(64)), Int(69632,64)), -Def(Tid(1_027, "%00000403"), Attrs([Attr("address","0x72C"), -Attr("insn","ldr w8, [x9, #0x30]")]), Var("R8",Imm(64)), -UNSIGNED(64,Load(Var("mem",Mem(64,8)),PLUS(Var("R9",Imm(64)),Int(48,64)),LittleEndian(),32))), -Def(Tid(1_033, "%00000409"), Attrs([Attr("address","0x730"), -Attr("insn","add w8, w8, #0x6")]), Var("R8",Imm(64)), -UNSIGNED(64,PLUS(Extract(31,0,Var("R8",Imm(64))),Int(6,32)))), -Def(Tid(1_041, "%00000411"), Attrs([Attr("address","0x734"), -Attr("insn","str w8, [x9, #0x30]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R9",Imm(64)),Int(48,64)),Extract(31,0,Var("R8",Imm(64))),LittleEndian(),32))]), -Jmps([Call(Tid(1_046, "%00000416"), Attrs([Attr("address","0x738"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))]))])), -Sub(Tid(2_339, "@add_two"), Attrs([Attr("c.proto","signed (*)(void)"), -Attr("address","0x714")]), "add_two", Args([Arg(Tid(2_396, "%0000095c"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("add_two_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(986, "@add_two"), - Attrs([Attr("address","0x714")]), Phis([]), Defs([Def(Tid(989, "%000003dd"), - Attrs([Attr("address","0x714"), Attr("insn","adrp x9, #69632")]), - Var("R9",Imm(64)), Int(69632,64)), Def(Tid(996, "%000003e4"), - Attrs([Attr("address","0x718"), Attr("insn","ldr w8, [x9, #0x30]")]), - Var("R8",Imm(64)), -UNSIGNED(64,Load(Var("mem",Mem(64,8)),PLUS(Var("R9",Imm(64)),Int(48,64)),LittleEndian(),32))), -Def(Tid(1_002, "%000003ea"), Attrs([Attr("address","0x71C"), -Attr("insn","add w8, w8, #0x2")]), Var("R8",Imm(64)), -UNSIGNED(64,PLUS(Extract(31,0,Var("R8",Imm(64))),Int(2,32)))), -Def(Tid(1_010, "%000003f2"), Attrs([Attr("address","0x720"), -Attr("insn","str w8, [x9, #0x30]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R9",Imm(64)),Int(48,64)),Extract(31,0,Var("R8",Imm(64))),LittleEndian(),32))]), -Jmps([Call(Tid(1_015, "%000003f7"), Attrs([Attr("address","0x724"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))]))])), -Sub(Tid(2_340, "@call_weak_fn"), Attrs([Attr("c.proto","signed (*)(void)"), -Attr("address","0x634")]), "call_weak_fn", Args([Arg(Tid(2_397, "%0000095d"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("call_weak_fn_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(739, "@call_weak_fn"), - Attrs([Attr("address","0x634")]), Phis([]), Defs([Def(Tid(742, "%000002e6"), - Attrs([Attr("address","0x634"), Attr("insn","adrp x0, #65536")]), - Var("R0",Imm(64)), Int(65536,64)), Def(Tid(749, "%000002ed"), - Attrs([Attr("address","0x638"), Attr("insn","ldr x0, [x0, #0xfd0]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(4048,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(755, "%000002f3"), Attrs([Attr("address","0x63C"), -Attr("insn","cbz x0, #0x8")]), EQ(Var("R0",Imm(64)),Int(0,64)), -Direct(Tid(753, "%000002f1"))), Goto(Tid(2_378, "%0000094a"), Attrs([]), - Int(1,1), Direct(Tid(1_666, "%00000682")))])), Blk(Tid(753, "%000002f1"), - Attrs([Attr("address","0x644")]), Phis([]), Defs([]), -Jmps([Call(Tid(761, "%000002f9"), Attrs([Attr("address","0x644"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))])), -Blk(Tid(1_666, "%00000682"), Attrs([Attr("address","0x640")]), Phis([]), -Defs([]), Jmps([Goto(Tid(1_669, "%00000685"), Attrs([Attr("address","0x640"), -Attr("insn","b #-0x60")]), Int(1,1), -Direct(Tid(1_667, "@__gmon_start__")))])), Blk(Tid(1_667, "@__gmon_start__"), - Attrs([Attr("address","0x5E0")]), Phis([]), -Defs([Def(Tid(1_872, "%00000750"), Attrs([Attr("address","0x5E0"), -Attr("insn","adrp x16, #69632")]), Var("R16",Imm(64)), Int(69632,64)), -Def(Tid(1_879, "%00000757"), Attrs([Attr("address","0x5E4"), -Attr("insn","ldr x17, [x16, #0x10]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(16,64)),LittleEndian(),64)), -Def(Tid(1_885, "%0000075d"), Attrs([Attr("address","0x5E8"), -Attr("insn","add x16, x16, #0x10")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(16,64)))]), Jmps([Call(Tid(1_890, "%00000762"), - Attrs([Attr("address","0x5EC"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), -Sub(Tid(2_342, "@deregister_tm_clones"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x650")]), - "deregister_tm_clones", Args([Arg(Tid(2_398, "%0000095e"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("deregister_tm_clones_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(767, "@deregister_tm_clones"), - Attrs([Attr("address","0x650")]), Phis([]), Defs([Def(Tid(770, "%00000302"), - Attrs([Attr("address","0x650"), Attr("insn","adrp x0, #69632")]), - Var("R0",Imm(64)), Int(69632,64)), Def(Tid(776, "%00000308"), - Attrs([Attr("address","0x654"), Attr("insn","add x0, x0, #0x38")]), - Var("R0",Imm(64)), PLUS(Var("R0",Imm(64)),Int(56,64))), -Def(Tid(781, "%0000030d"), Attrs([Attr("address","0x658"), -Attr("insn","adrp x1, #69632")]), Var("R1",Imm(64)), Int(69632,64)), -Def(Tid(787, "%00000313"), Attrs([Attr("address","0x65C"), -Attr("insn","add x1, x1, #0x38")]), Var("R1",Imm(64)), -PLUS(Var("R1",Imm(64)),Int(56,64))), Def(Tid(793, "%00000319"), - Attrs([Attr("address","0x660"), Attr("insn","cmp x1, x0")]), - Var("#1",Imm(64)), NOT(Var("R0",Imm(64)))), Def(Tid(798, "%0000031e"), - Attrs([Attr("address","0x660"), Attr("insn","cmp x1, x0")]), - Var("#2",Imm(64)), PLUS(Var("R1",Imm(64)),NOT(Var("R0",Imm(64))))), -Def(Tid(804, "%00000324"), Attrs([Attr("address","0x660"), -Attr("insn","cmp x1, x0")]), Var("VF",Imm(1)), -NEQ(SIGNED(65,PLUS(Var("#2",Imm(64)),Int(1,64))),PLUS(PLUS(SIGNED(65,Var("R1",Imm(64))),SIGNED(65,Var("#1",Imm(64)))),Int(1,65)))), -Def(Tid(810, "%0000032a"), Attrs([Attr("address","0x660"), -Attr("insn","cmp x1, x0")]), Var("CF",Imm(1)), -NEQ(UNSIGNED(65,PLUS(Var("#2",Imm(64)),Int(1,64))),PLUS(PLUS(UNSIGNED(65,Var("R1",Imm(64))),UNSIGNED(65,Var("#1",Imm(64)))),Int(1,65)))), -Def(Tid(814, "%0000032e"), Attrs([Attr("address","0x660"), -Attr("insn","cmp x1, x0")]), Var("ZF",Imm(1)), -EQ(PLUS(Var("#2",Imm(64)),Int(1,64)),Int(0,64))), Def(Tid(818, "%00000332"), - Attrs([Attr("address","0x660"), Attr("insn","cmp x1, x0")]), - Var("NF",Imm(1)), Extract(63,63,PLUS(Var("#2",Imm(64)),Int(1,64))))]), -Jmps([Goto(Tid(824, "%00000338"), Attrs([Attr("address","0x664"), -Attr("insn","b.eq #0x18")]), EQ(Var("ZF",Imm(1)),Int(1,1)), -Direct(Tid(822, "%00000336"))), Goto(Tid(2_379, "%0000094b"), Attrs([]), - Int(1,1), Direct(Tid(1_636, "%00000664")))])), Blk(Tid(1_636, "%00000664"), - Attrs([Attr("address","0x668")]), Phis([]), -Defs([Def(Tid(1_639, "%00000667"), Attrs([Attr("address","0x668"), -Attr("insn","adrp x1, #65536")]), Var("R1",Imm(64)), Int(65536,64)), -Def(Tid(1_646, "%0000066e"), Attrs([Attr("address","0x66C"), -Attr("insn","ldr x1, [x1, #0xfc0]")]), Var("R1",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R1",Imm(64)),Int(4032,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(1_651, "%00000673"), Attrs([Attr("address","0x670"), -Attr("insn","cbz x1, #0xc")]), EQ(Var("R1",Imm(64)),Int(0,64)), -Direct(Tid(822, "%00000336"))), Goto(Tid(2_380, "%0000094c"), Attrs([]), - Int(1,1), Direct(Tid(1_655, "%00000677")))])), Blk(Tid(822, "%00000336"), - Attrs([Attr("address","0x67C")]), Phis([]), Defs([]), -Jmps([Call(Tid(830, "%0000033e"), Attrs([Attr("address","0x67C"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))])), -Blk(Tid(1_655, "%00000677"), Attrs([Attr("address","0x674")]), Phis([]), -Defs([Def(Tid(1_659, "%0000067b"), Attrs([Attr("address","0x674"), -Attr("insn","mov x16, x1")]), Var("R16",Imm(64)), Var("R1",Imm(64)))]), -Jmps([Call(Tid(1_664, "%00000680"), Attrs([Attr("address","0x678"), -Attr("insn","br x16")]), Int(1,1), (Indirect(Var("R16",Imm(64))),))]))])), -Sub(Tid(2_345, "@frame_dummy"), Attrs([Attr("c.proto","signed (*)(void)"), -Attr("address","0x710")]), "frame_dummy", Args([Arg(Tid(2_399, "%0000095f"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("frame_dummy_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(982, "@frame_dummy"), - Attrs([Attr("address","0x710")]), Phis([]), Defs([]), -Jmps([Call(Tid(984, "%000003d8"), Attrs([Attr("address","0x710"), -Attr("insn","b #-0x90")]), Int(1,1), -(Direct(Tid(2_348, "@register_tm_clones")),))]))])), Sub(Tid(2_346, "@main"), - Attrs([Attr("c.proto","signed (*)(signed argc, const char** argv)"), -Attr("address","0x750")]), "main", Args([Arg(Tid(2_400, "%00000960"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("main_argc",Imm(32)), -LOW(32,Var("R0",Imm(64))), In()), Arg(Tid(2_401, "%00000961"), - Attrs([Attr("c.layout","**[char : 8]"), Attr("c.data","Top:u8 ptr ptr"), -Attr("c.type"," const char**")]), Var("main_argv",Imm(64)), -Var("R1",Imm(64)), Both()), Arg(Tid(2_402, "%00000962"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("main_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(1_101, "@main"), - Attrs([Attr("address","0x750")]), Phis([]), -Defs([Def(Tid(1_105, "%00000451"), Attrs([Attr("address","0x750"), -Attr("insn","sub sp, sp, #0x30")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(18446744073709551568,64))), -Def(Tid(1_111, "%00000457"), Attrs([Attr("address","0x754"), -Attr("insn","stp x29, x30, [sp, #0x20]")]), Var("#5",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(32,64))), Def(Tid(1_117, "%0000045d"), - Attrs([Attr("address","0x754"), Attr("insn","stp x29, x30, [sp, #0x20]")]), - Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("#5",Imm(64)),Var("R29",Imm(64)),LittleEndian(),64)), -Def(Tid(1_123, "%00000463"), Attrs([Attr("address","0x754"), -Attr("insn","stp x29, x30, [sp, #0x20]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("#5",Imm(64)),Int(8,64)),Var("R30",Imm(64)),LittleEndian(),64)), -Def(Tid(1_129, "%00000469"), Attrs([Attr("address","0x758"), -Attr("insn","add x29, sp, #0x20")]), Var("R29",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(32,64))), Def(Tid(1_136, "%00000470"), - Attrs([Attr("address","0x75C"), Attr("insn","stur wzr, [x29, #-0x4]")]), - Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R29",Imm(64)),Int(18446744073709551612,64)),Int(0,32),LittleEndian(),32)), -Def(Tid(1_144, "%00000478"), Attrs([Attr("address","0x760"), -Attr("insn","stur w0, [x29, #-0x8]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R29",Imm(64)),Int(18446744073709551608,64)),Extract(31,0,Var("R0",Imm(64))),LittleEndian(),32)), -Def(Tid(1_152, "%00000480"), Attrs([Attr("address","0x764"), -Attr("insn","str x1, [sp, #0x10]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(16,64)),Var("R1",Imm(64)),LittleEndian(),64)), -Def(Tid(1_159, "%00000487"), Attrs([Attr("address","0x768"), -Attr("insn","ldur w8, [x29, #-0x8]")]), Var("R8",Imm(64)), -UNSIGNED(64,Load(Var("mem",Mem(64,8)),PLUS(Var("R29",Imm(64)),Int(18446744073709551608,64)),LittleEndian(),32))), -Def(Tid(1_165, "%0000048d"), Attrs([Attr("address","0x76C"), -Attr("insn","subs w8, w8, #0x0")]), Var("#6",Imm(32)), -PLUS(Extract(31,0,Var("R8",Imm(64))),Int(4294967295,32))), -Def(Tid(1_170, "%00000492"), Attrs([Attr("address","0x76C"), -Attr("insn","subs w8, w8, #0x0")]), Var("VF",Imm(1)), -NEQ(SIGNED(33,PLUS(Var("#6",Imm(32)),Int(1,32))),PLUS(SIGNED(33,Extract(31,0,Var("R8",Imm(64)))),Int(0,33)))), -Def(Tid(1_175, "%00000497"), Attrs([Attr("address","0x76C"), -Attr("insn","subs w8, w8, #0x0")]), Var("CF",Imm(1)), -NEQ(UNSIGNED(33,PLUS(Var("#6",Imm(32)),Int(1,32))),PLUS(UNSIGNED(33,Extract(31,0,Var("R8",Imm(64)))),Int(4294967296,33)))), -Def(Tid(1_179, "%0000049b"), Attrs([Attr("address","0x76C"), -Attr("insn","subs w8, w8, #0x0")]), Var("ZF",Imm(1)), -EQ(PLUS(Var("#6",Imm(32)),Int(1,32)),Int(0,32))), -Def(Tid(1_183, "%0000049f"), Attrs([Attr("address","0x76C"), -Attr("insn","subs w8, w8, #0x0")]), Var("NF",Imm(1)), -Extract(31,31,PLUS(Var("#6",Imm(32)),Int(1,32)))), -Def(Tid(1_187, "%000004a3"), Attrs([Attr("address","0x76C"), -Attr("insn","subs w8, w8, #0x0")]), Var("R8",Imm(64)), -UNSIGNED(64,PLUS(Var("#6",Imm(32)),Int(1,32)))), Def(Tid(1_195, "%000004ab"), - Attrs([Attr("address","0x770"), Attr("insn","str x8, [sp, #0x8]")]), - Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),Var("R8",Imm(64)),LittleEndian(),64)), -Def(Tid(1_201, "%000004b1"), Attrs([Attr("address","0x774"), -Attr("insn","subs x8, x8, #0xb")]), Var("#7",Imm(64)), -PLUS(Var("R8",Imm(64)),Int(18446744073709551604,64))), -Def(Tid(1_206, "%000004b6"), Attrs([Attr("address","0x774"), -Attr("insn","subs x8, x8, #0xb")]), Var("VF",Imm(1)), -NEQ(SIGNED(65,PLUS(Var("#7",Imm(64)),Int(1,64))),PLUS(SIGNED(65,Var("R8",Imm(64))),Int(36893488147419103221,65)))), -Def(Tid(1_211, "%000004bb"), Attrs([Attr("address","0x774"), -Attr("insn","subs x8, x8, #0xb")]), Var("CF",Imm(1)), -NEQ(UNSIGNED(65,PLUS(Var("#7",Imm(64)),Int(1,64))),PLUS(UNSIGNED(65,Var("R8",Imm(64))),Int(18446744073709551605,65)))), -Def(Tid(1_215, "%000004bf"), Attrs([Attr("address","0x774"), -Attr("insn","subs x8, x8, #0xb")]), Var("ZF",Imm(1)), -EQ(PLUS(Var("#7",Imm(64)),Int(1,64)),Int(0,64))), -Def(Tid(1_219, "%000004c3"), Attrs([Attr("address","0x774"), -Attr("insn","subs x8, x8, #0xb")]), Var("NF",Imm(1)), -Extract(63,63,PLUS(Var("#7",Imm(64)),Int(1,64)))), -Def(Tid(1_223, "%000004c7"), Attrs([Attr("address","0x774"), -Attr("insn","subs x8, x8, #0xb")]), Var("R8",Imm(64)), -PLUS(Var("#7",Imm(64)),Int(1,64)))]), Jmps([Goto(Tid(1_236, "%000004d4"), - Attrs([Attr("address","0x778"), Attr("insn","cset w8, hi")]), - NOT(AND(EQ(Var("CF",Imm(1)),Int(1,1)),EQ(Var("ZF",Imm(1)),Int(0,1)))), -Direct(Tid(1_229, "%000004cd"))), Goto(Tid(1_237, "%000004d5"), - Attrs([Attr("address","0x778"), Attr("insn","cset w8, hi")]), Int(1,1), -Direct(Tid(1_232, "%000004d0")))])), Blk(Tid(1_232, "%000004d0"), Attrs([]), - Phis([]), Defs([Def(Tid(1_233, "%000004d1"), Attrs([Attr("address","0x778"), -Attr("insn","cset w8, hi")]), Var("R8",Imm(64)), Int(1,64))]), -Jmps([Goto(Tid(1_239, "%000004d7"), Attrs([Attr("address","0x778"), -Attr("insn","cset w8, hi")]), Int(1,1), Direct(Tid(1_235, "%000004d3")))])), -Blk(Tid(1_229, "%000004cd"), Attrs([]), Phis([]), -Defs([Def(Tid(1_230, "%000004ce"), Attrs([Attr("address","0x778"), -Attr("insn","cset w8, hi")]), Var("R8",Imm(64)), Int(0,64))]), -Jmps([Goto(Tid(1_238, "%000004d6"), Attrs([Attr("address","0x778"), -Attr("insn","cset w8, hi")]), Int(1,1), Direct(Tid(1_235, "%000004d3")))])), -Blk(Tid(1_235, "%000004d3"), Attrs([]), Phis([]), Defs([]), -Jmps([Goto(Tid(1_245, "%000004dd"), Attrs([Attr("address","0x77C"), -Attr("insn","tbnz w8, #0x0, #0x9c")]), - EQ(Extract(0,0,Var("R8",Imm(64))),Int(1,1)), -Direct(Tid(1_243, "%000004db"))), Goto(Tid(2_381, "%0000094d"), Attrs([]), - Int(1,1), Direct(Tid(1_323, "%0000052b")))])), Blk(Tid(1_243, "%000004db"), - Attrs([Attr("address","0x818")]), Phis([]), -Defs([Def(Tid(1_251, "%000004e3"), Attrs([Attr("address","0x818"), -Attr("insn","mov w8, #0x1")]), Var("R8",Imm(64)), Int(1,64)), -Def(Tid(1_259, "%000004eb"), Attrs([Attr("address","0x81C"), -Attr("insn","stur w8, [x29, #-0x4]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R29",Imm(64)),Int(18446744073709551612,64)),Extract(31,0,Var("R8",Imm(64))),LittleEndian(),32))]), -Jmps([Goto(Tid(1_264, "%000004f0"), Attrs([Attr("address","0x820"), -Attr("insn","b #0x14")]), Int(1,1), Direct(Tid(1_262, "%000004ee")))])), -Blk(Tid(1_262, "%000004ee"), Attrs([Attr("address","0x834")]), Phis([]), -Defs([Def(Tid(1_270, "%000004f6"), Attrs([Attr("address","0x834"), -Attr("insn","ldur w0, [x29, #-0x4]")]), Var("R0",Imm(64)), -UNSIGNED(64,Load(Var("mem",Mem(64,8)),PLUS(Var("R29",Imm(64)),Int(18446744073709551612,64)),LittleEndian(),32))), -Def(Tid(1_276, "%000004fc"), Attrs([Attr("address","0x838"), -Attr("insn","ldp x29, x30, [sp, #0x20]")]), Var("#8",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(32,64))), Def(Tid(1_281, "%00000501"), - Attrs([Attr("address","0x838"), Attr("insn","ldp x29, x30, [sp, #0x20]")]), - Var("R29",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("#8",Imm(64)),LittleEndian(),64)), -Def(Tid(1_286, "%00000506"), Attrs([Attr("address","0x838"), -Attr("insn","ldp x29, x30, [sp, #0x20]")]), Var("R30",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("#8",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(1_292, "%0000050c"), Attrs([Attr("address","0x83C"), -Attr("insn","add sp, sp, #0x30")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(48,64)))]), Jmps([Call(Tid(1_297, "%00000511"), - Attrs([Attr("address","0x840"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))])), Blk(Tid(1_323, "%0000052b"), - Attrs([Attr("address","0x780")]), Phis([]), -Defs([Def(Tid(1_328, "%00000530"), Attrs([Attr("address","0x780"), -Attr("insn","ldr x11, [sp, #0x8]")]), Var("R11",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(1_333, "%00000535"), Attrs([Attr("address","0x784"), -Attr("insn","adrp x10, #0")]), Var("R10",Imm(64)), Int(0,64)), -Def(Tid(1_339, "%0000053b"), Attrs([Attr("address","0x788"), -Attr("insn","add x10, x10, #0x85c")]), Var("R10",Imm(64)), -PLUS(Var("R10",Imm(64)),Int(2140,64))), Def(Tid(1_344, "%00000540"), - Attrs([Attr("address","0x78C"), Attr("insn","adr x8, #0x0")]), - Var("R8",Imm(64)), Int(1932,64)), Def(Tid(1_352, "%00000548"), - Attrs([Attr("address","0x790"), -Attr("insn","ldrsw x9, [x10, x11, lsl #2]")]), Var("R9",Imm(64)), -SIGNED(64,Load(Var("mem",Mem(64,8)),PLUS(Var("R10",Imm(64)),Concat(Extract(61,0,Var("R11",Imm(64))),Int(0,2))),LittleEndian(),32))), -Def(Tid(1_359, "%0000054f"), Attrs([Attr("address","0x794"), -Attr("insn","add x8, x8, x9")]), Var("R8",Imm(64)), -PLUS(Var("R8",Imm(64)),Var("R9",Imm(64))))]), -Jmps([Call(Tid(1_364, "%00000554"), Attrs([Attr("address","0x798"), -Attr("insn","br x8")]), Int(1,1), (Indirect(Var("R8",Imm(64))),))]))])), -Sub(Tid(2_348, "@register_tm_clones"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x680")]), - "register_tm_clones", Args([Arg(Tid(2_403, "%00000963"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("register_tm_clones_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(832, "@register_tm_clones"), Attrs([Attr("address","0x680")]), - Phis([]), Defs([Def(Tid(835, "%00000343"), Attrs([Attr("address","0x680"), -Attr("insn","adrp x0, #69632")]), Var("R0",Imm(64)), Int(69632,64)), -Def(Tid(841, "%00000349"), Attrs([Attr("address","0x684"), -Attr("insn","add x0, x0, #0x38")]), Var("R0",Imm(64)), -PLUS(Var("R0",Imm(64)),Int(56,64))), Def(Tid(846, "%0000034e"), - Attrs([Attr("address","0x688"), Attr("insn","adrp x1, #69632")]), - Var("R1",Imm(64)), Int(69632,64)), Def(Tid(852, "%00000354"), - Attrs([Attr("address","0x68C"), Attr("insn","add x1, x1, #0x38")]), - Var("R1",Imm(64)), PLUS(Var("R1",Imm(64)),Int(56,64))), -Def(Tid(859, "%0000035b"), Attrs([Attr("address","0x690"), -Attr("insn","sub x1, x1, x0")]), Var("R1",Imm(64)), -PLUS(PLUS(Var("R1",Imm(64)),NOT(Var("R0",Imm(64)))),Int(1,64))), -Def(Tid(865, "%00000361"), Attrs([Attr("address","0x694"), -Attr("insn","lsr x2, x1, #63")]), Var("R2",Imm(64)), -Concat(Int(0,63),Extract(63,63,Var("R1",Imm(64))))), -Def(Tid(872, "%00000368"), Attrs([Attr("address","0x698"), -Attr("insn","add x1, x2, x1, asr #3")]), Var("R1",Imm(64)), -PLUS(Var("R2",Imm(64)),ARSHIFT(Var("R1",Imm(64)),Int(3,3)))), -Def(Tid(878, "%0000036e"), Attrs([Attr("address","0x69C"), -Attr("insn","asr x1, x1, #1")]), Var("R1",Imm(64)), -SIGNED(64,Extract(63,1,Var("R1",Imm(64)))))]), -Jmps([Goto(Tid(884, "%00000374"), Attrs([Attr("address","0x6A0"), -Attr("insn","cbz x1, #0x18")]), EQ(Var("R1",Imm(64)),Int(0,64)), -Direct(Tid(882, "%00000372"))), Goto(Tid(2_382, "%0000094e"), Attrs([]), - Int(1,1), Direct(Tid(1_606, "%00000646")))])), Blk(Tid(1_606, "%00000646"), - Attrs([Attr("address","0x6A4")]), Phis([]), -Defs([Def(Tid(1_609, "%00000649"), Attrs([Attr("address","0x6A4"), -Attr("insn","adrp x2, #65536")]), Var("R2",Imm(64)), Int(65536,64)), -Def(Tid(1_616, "%00000650"), Attrs([Attr("address","0x6A8"), -Attr("insn","ldr x2, [x2, #0xfe0]")]), Var("R2",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R2",Imm(64)),Int(4064,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(1_621, "%00000655"), Attrs([Attr("address","0x6AC"), -Attr("insn","cbz x2, #0xc")]), EQ(Var("R2",Imm(64)),Int(0,64)), -Direct(Tid(882, "%00000372"))), Goto(Tid(2_383, "%0000094f"), Attrs([]), - Int(1,1), Direct(Tid(1_625, "%00000659")))])), Blk(Tid(882, "%00000372"), - Attrs([Attr("address","0x6B8")]), Phis([]), Defs([]), -Jmps([Call(Tid(890, "%0000037a"), Attrs([Attr("address","0x6B8"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))])), -Blk(Tid(1_625, "%00000659"), Attrs([Attr("address","0x6B0")]), Phis([]), -Defs([Def(Tid(1_629, "%0000065d"), Attrs([Attr("address","0x6B0"), -Attr("insn","mov x16, x2")]), Var("R16",Imm(64)), Var("R2",Imm(64)))]), -Jmps([Call(Tid(1_634, "%00000662"), Attrs([Attr("address","0x6B4"), -Attr("insn","br x16")]), Int(1,1), (Indirect(Var("R16",Imm(64))),))]))])), -Sub(Tid(2_351, "@sub_seven"), Attrs([Attr("c.proto","signed (*)(void)"), -Attr("address","0x73C")]), "sub_seven", Args([Arg(Tid(2_404, "%00000964"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("sub_seven_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(1_048, "@sub_seven"), - Attrs([Attr("address","0x73C")]), Phis([]), -Defs([Def(Tid(1_051, "%0000041b"), Attrs([Attr("address","0x73C"), -Attr("insn","adrp x9, #69632")]), Var("R9",Imm(64)), Int(69632,64)), -Def(Tid(1_058, "%00000422"), Attrs([Attr("address","0x740"), -Attr("insn","ldr w8, [x9, #0x30]")]), Var("R8",Imm(64)), -UNSIGNED(64,Load(Var("mem",Mem(64,8)),PLUS(Var("R9",Imm(64)),Int(48,64)),LittleEndian(),32))), -Def(Tid(1_064, "%00000428"), Attrs([Attr("address","0x744"), -Attr("insn","subs w8, w8, #0x7")]), Var("#4",Imm(32)), -PLUS(Extract(31,0,Var("R8",Imm(64))),Int(4294967288,32))), -Def(Tid(1_069, "%0000042d"), Attrs([Attr("address","0x744"), -Attr("insn","subs w8, w8, #0x7")]), Var("VF",Imm(1)), -NEQ(SIGNED(33,PLUS(Var("#4",Imm(32)),Int(1,32))),PLUS(SIGNED(33,Extract(31,0,Var("R8",Imm(64)))),Int(8589934585,33)))), -Def(Tid(1_074, "%00000432"), Attrs([Attr("address","0x744"), -Attr("insn","subs w8, w8, #0x7")]), Var("CF",Imm(1)), -NEQ(UNSIGNED(33,PLUS(Var("#4",Imm(32)),Int(1,32))),PLUS(UNSIGNED(33,Extract(31,0,Var("R8",Imm(64)))),Int(4294967289,33)))), -Def(Tid(1_078, "%00000436"), Attrs([Attr("address","0x744"), -Attr("insn","subs w8, w8, #0x7")]), Var("ZF",Imm(1)), -EQ(PLUS(Var("#4",Imm(32)),Int(1,32)),Int(0,32))), -Def(Tid(1_082, "%0000043a"), Attrs([Attr("address","0x744"), -Attr("insn","subs w8, w8, #0x7")]), Var("NF",Imm(1)), -Extract(31,31,PLUS(Var("#4",Imm(32)),Int(1,32)))), -Def(Tid(1_086, "%0000043e"), Attrs([Attr("address","0x744"), -Attr("insn","subs w8, w8, #0x7")]), Var("R8",Imm(64)), -UNSIGNED(64,PLUS(Var("#4",Imm(32)),Int(1,32)))), Def(Tid(1_094, "%00000446"), - Attrs([Attr("address","0x748"), Attr("insn","str w8, [x9, #0x30]")]), - Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R9",Imm(64)),Int(48,64)),Extract(31,0,Var("R8",Imm(64))),LittleEndian(),32))]), -Jmps([Call(Tid(1_099, "%0000044b"), Attrs([Attr("address","0x74C"), -Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))]))]))) \ No newline at end of file diff --git a/src/test/indirect_calls/jumptable3/clang/jumptable3.bir b/src/test/indirect_calls/jumptable3/clang/jumptable3.bir deleted file mode 100644 index a49ef1463..000000000 --- a/src/test/indirect_calls/jumptable3/clang/jumptable3.bir +++ /dev/null @@ -1,315 +0,0 @@ -00000950: program -00000916: sub __cxa_finalize(__cxa_finalize_result) -00000951: __cxa_finalize_result :: out u32 = low:32[R0] - -00000642: -0000073a: R16 := 0x11000 -00000741: R17 := mem[R16 + 8, el]:u64 -00000747: R16 := R16 + 8 -0000074c: call R17 with noreturn - -00000917: sub __do_global_dtors_aux(__do_global_dtors_aux_result) -00000952: __do_global_dtors_aux_result :: out u32 = low:32[R0] - -0000037e: -00000382: #3 := R31 - 0x20 -00000388: mem := mem with [#3, el]:u64 <- R29 -0000038e: mem := mem with [#3 + 8, el]:u64 <- R30 -00000392: R31 := #3 -00000398: R29 := R31 -000003a0: mem := mem with [R31 + 0x10, el]:u64 <- R19 -000003a5: R19 := 0x11000 -000003ac: R0 := pad:64[mem[R19 + 0x34]] -000003b3: when 31:0[R0] <> 0 goto %000003b1 -00000945: goto %0000060b - -0000060b: -0000060e: R0 := 0x10000 -00000615: R0 := mem[R0 + 0xFC8, el]:u64 -0000061b: when R0 = 0 goto %00000619 -00000946: goto %00000632 - -00000632: -00000635: R0 := 0x11000 -0000063c: R0 := mem[R0 + 0x28, el]:u64 -00000641: R30 := 0x6F0 -00000644: call @__cxa_finalize with return %00000619 - -00000619: -00000621: R30 := 0x6F4 -00000623: call @deregister_tm_clones with return %00000625 - -00000625: -00000628: R0 := 1 -00000630: mem := mem with [R19 + 0x34] <- 7:0[R0] -00000947: goto %000003b1 - -000003b1: -000003bb: R19 := mem[R31 + 0x10, el]:u64 -000003c2: R29 := mem[R31, el]:u64 -000003c7: R30 := mem[R31 + 8, el]:u64 -000003cb: R31 := R31 + 0x20 -000003d0: call R30 with noreturn - -0000091b: sub __libc_start_main(__libc_start_main_main, __libc_start_main_arg2, __libc_start_main_arg3, __libc_start_main_auxv, __libc_start_main_result) -00000953: __libc_start_main_main :: in u64 = R0 -00000954: __libc_start_main_arg2 :: in u32 = low:32[R1] -00000955: __libc_start_main_arg3 :: in out u64 = R2 -00000956: __libc_start_main_auxv :: in out u64 = R3 -00000957: __libc_start_main_result :: out u32 = low:32[R0] - -000002d7: -00000724: R16 := 0x11000 -0000072b: R17 := mem[R16, el]:u64 -00000731: R16 := R16 -00000736: call R17 with noreturn - -0000091c: sub _fini(_fini_result) -00000958: _fini_result :: out u32 = low:32[R0] - -0000001f: -00000025: #0 := R31 - 0x10 -0000002b: mem := mem with [#0, el]:u64 <- R29 -00000031: mem := mem with [#0 + 8, el]:u64 <- R30 -00000035: R31 := #0 -0000003b: R29 := R31 -00000042: R29 := mem[R31, el]:u64 -00000047: R30 := mem[R31 + 8, el]:u64 -0000004b: R31 := R31 + 0x10 -00000050: call R30 with noreturn - -0000091d: sub _init(_init_result) -00000959: _init_result :: out u32 = low:32[R0] - -0000082c: -00000832: #10 := R31 - 0x10 -00000838: mem := mem with [#10, el]:u64 <- R29 -0000083e: mem := mem with [#10 + 8, el]:u64 <- R30 -00000842: R31 := #10 -00000848: R29 := R31 -0000084d: R30 := 0x590 -0000084f: call @call_weak_fn with return %00000851 - -00000851: -00000856: R29 := mem[R31, el]:u64 -0000085b: R30 := mem[R31 + 8, el]:u64 -0000085f: R31 := R31 + 0x10 -00000864: call R30 with noreturn - -0000091e: sub _start(_start_result) -0000095a: _start_result :: out u32 = low:32[R0] - -00000298: -0000029d: R29 := 0 -000002a2: R30 := 0 -000002a8: R5 := R0 -000002af: R1 := mem[R31, el]:u64 -000002b5: R2 := R31 + 8 -000002bb: R6 := R31 -000002c0: R0 := 0x10000 -000002c7: R0 := mem[R0 + 0xFD8, el]:u64 -000002cc: R3 := 0 -000002d1: R4 := 0 -000002d6: R30 := 0x630 -000002d9: call @__libc_start_main with return %000002db - -000002db: -000002de: R30 := 0x634 -000002e1: call @abort with return %00000948 - -00000948: -00000949: call @call_weak_fn with noreturn - -00000921: sub abort() - - -000002df: -00000766: R16 := 0x11000 -0000076d: R17 := mem[R16 + 0x18, el]:u64 -00000773: R16 := R16 + 0x18 -00000778: call R17 with noreturn - -00000922: sub add_six(add_six_result) -0000095b: add_six_result :: out u32 = low:32[R0] - -000003f9: -000003fc: R9 := 0x11000 -00000403: R8 := pad:64[mem[R9 + 0x30, el]:u32] -00000409: R8 := pad:64[31:0[R8] + 6] -00000411: mem := mem with [R9 + 0x30, el]:u32 <- 31:0[R8] -00000416: call R30 with noreturn - -00000923: sub add_two(add_two_result) -0000095c: add_two_result :: out u32 = low:32[R0] - -000003da: -000003dd: R9 := 0x11000 -000003e4: R8 := pad:64[mem[R9 + 0x30, el]:u32] -000003ea: R8 := pad:64[31:0[R8] + 2] -000003f2: mem := mem with [R9 + 0x30, el]:u32 <- 31:0[R8] -000003f7: call R30 with noreturn - -00000924: sub call_weak_fn(call_weak_fn_result) -0000095d: call_weak_fn_result :: out u32 = low:32[R0] - -000002e3: -000002e6: R0 := 0x10000 -000002ed: R0 := mem[R0 + 0xFD0, el]:u64 -000002f3: when R0 = 0 goto %000002f1 -0000094a: goto %00000682 - -000002f1: -000002f9: call R30 with noreturn - -00000682: -00000685: goto @__gmon_start__ - -00000683: -00000750: R16 := 0x11000 -00000757: R17 := mem[R16 + 0x10, el]:u64 -0000075d: R16 := R16 + 0x10 -00000762: call R17 with noreturn - -00000926: sub deregister_tm_clones(deregister_tm_clones_result) -0000095e: deregister_tm_clones_result :: out u32 = low:32[R0] - -000002ff: -00000302: R0 := 0x11000 -00000308: R0 := R0 + 0x38 -0000030d: R1 := 0x11000 -00000313: R1 := R1 + 0x38 -00000319: #1 := ~R0 -0000031e: #2 := R1 + ~R0 -00000324: VF := extend:65[#2 + 1] <> extend:65[R1] + extend:65[#1] + 1 -0000032a: CF := pad:65[#2 + 1] <> pad:65[R1] + pad:65[#1] + 1 -0000032e: ZF := #2 + 1 = 0 -00000332: NF := 63:63[#2 + 1] -00000338: when ZF goto %00000336 -0000094b: goto %00000664 - -00000664: -00000667: R1 := 0x10000 -0000066e: R1 := mem[R1 + 0xFC0, el]:u64 -00000673: when R1 = 0 goto %00000336 -0000094c: goto %00000677 - -00000336: -0000033e: call R30 with noreturn - -00000677: -0000067b: R16 := R1 -00000680: call R16 with noreturn - -00000929: sub frame_dummy(frame_dummy_result) -0000095f: frame_dummy_result :: out u32 = low:32[R0] - -000003d6: -000003d8: call @register_tm_clones with noreturn - -0000092a: sub main(main_argc, main_argv, main_result) -00000960: main_argc :: in u32 = low:32[R0] -00000961: main_argv :: in out u64 = R1 -00000962: main_result :: out u32 = low:32[R0] - -0000044d: -00000451: R31 := R31 - 0x30 -00000457: #5 := R31 + 0x20 -0000045d: mem := mem with [#5, el]:u64 <- R29 -00000463: mem := mem with [#5 + 8, el]:u64 <- R30 -00000469: R29 := R31 + 0x20 -00000470: mem := mem with [R29 - 4, el]:u32 <- 0 -00000478: mem := mem with [R29 - 8, el]:u32 <- 31:0[R0] -00000480: mem := mem with [R31 + 0x10, el]:u64 <- R1 -00000487: R8 := pad:64[mem[R29 - 8, el]:u32] -0000048d: #6 := 31:0[R8] - 1 -00000492: VF := extend:33[#6 + 1] <> extend:33[31:0[R8]] + 0 -00000497: CF := pad:33[#6 + 1] <> pad:33[31:0[R8]] - 0x100000000 -0000049b: ZF := #6 + 1 = 0 -0000049f: NF := 31:31[#6 + 1] -000004a3: R8 := pad:64[#6 + 1] -000004ab: mem := mem with [R31 + 8, el]:u64 <- R8 -000004b1: #7 := R8 - 0xC -000004b6: VF := extend:65[#7 + 1] <> extend:65[R8] - 0xB -000004bb: CF := pad:65[#7 + 1] <> pad:65[R8] + 0xFFFFFFFFFFFFFFF5 -000004bf: ZF := #7 + 1 = 0 -000004c3: NF := 63:63[#7 + 1] -000004c7: R8 := #7 + 1 -000004d4: when ~(CF & ~ZF) goto %000004cd -000004d5: goto %000004d0 - -000004d0: -000004d1: R8 := 1 -000004d7: goto %000004d3 - -000004cd: -000004ce: R8 := 0 -000004d6: goto %000004d3 - -000004d3: -000004dd: when 0:0[R8] goto %000004db -0000094d: goto %0000052b - -000004db: -000004e3: R8 := 1 -000004eb: mem := mem with [R29 - 4, el]:u32 <- 31:0[R8] -000004f0: goto %000004ee - -000004ee: -000004f6: R0 := pad:64[mem[R29 - 4, el]:u32] -000004fc: #8 := R31 + 0x20 -00000501: R29 := mem[#8, el]:u64 -00000506: R30 := mem[#8 + 8, el]:u64 -0000050c: R31 := R31 + 0x30 -00000511: call R30 with noreturn - -0000052b: -00000530: R11 := mem[R31 + 8, el]:u64 -00000535: R10 := 0 -0000053b: R10 := R10 + 0x85C -00000540: R8 := 0x78C -00000548: R9 := extend:64[mem[R10 + (61:0[R11].0), el]:u32] -0000054f: R8 := R8 + R9 -00000554: call R8 with noreturn - -0000092c: sub register_tm_clones(register_tm_clones_result) -00000963: register_tm_clones_result :: out u32 = low:32[R0] - -00000340: -00000343: R0 := 0x11000 -00000349: R0 := R0 + 0x38 -0000034e: R1 := 0x11000 -00000354: R1 := R1 + 0x38 -0000035b: R1 := R1 + ~R0 + 1 -00000361: R2 := 0.63:63[R1] -00000368: R1 := R2 + (R1 ~>> 3) -0000036e: R1 := extend:64[63:1[R1]] -00000374: when R1 = 0 goto %00000372 -0000094e: goto %00000646 - -00000646: -00000649: R2 := 0x10000 -00000650: R2 := mem[R2 + 0xFE0, el]:u64 -00000655: when R2 = 0 goto %00000372 -0000094f: goto %00000659 - -00000372: -0000037a: call R30 with noreturn - -00000659: -0000065d: R16 := R2 -00000662: call R16 with noreturn - -0000092f: sub sub_seven(sub_seven_result) -00000964: sub_seven_result :: out u32 = low:32[R0] - -00000418: -0000041b: R9 := 0x11000 -00000422: R8 := pad:64[mem[R9 + 0x30, el]:u32] -00000428: #4 := 31:0[R8] - 8 -0000042d: VF := extend:33[#4 + 1] <> extend:33[31:0[R8]] - 7 -00000432: CF := pad:33[#4 + 1] <> pad:33[31:0[R8]] + 0xFFFFFFF9 -00000436: ZF := #4 + 1 = 0 -0000043a: NF := 31:31[#4 + 1] -0000043e: R8 := pad:64[#4 + 1] -00000446: mem := mem with [R9 + 0x30, el]:u32 <- 31:0[R8] -0000044b: call R30 with noreturn diff --git a/src/test/indirect_calls/jumptable3/clang/jumptable3.gts b/src/test/indirect_calls/jumptable3/clang/jumptable3.gts deleted file mode 100644 index 0c6e27603..000000000 Binary files a/src/test/indirect_calls/jumptable3/clang/jumptable3.gts and /dev/null differ diff --git a/src/test/indirect_calls/jumptable3/clang/jumptable3.md5sum b/src/test/indirect_calls/jumptable3/clang/jumptable3.md5sum new file mode 100644 index 000000000..8a082db99 --- /dev/null +++ b/src/test/indirect_calls/jumptable3/clang/jumptable3.md5sum @@ -0,0 +1,5 @@ +21e969ff34cbf7961d0acb332e527221 indirect_calls/jumptable3/clang/a.out +890fd1edaaa41c95024c660fca4808d2 indirect_calls/jumptable3/clang/jumptable3.adt +46272ea5f66ab5af1dfece905298a83d indirect_calls/jumptable3/clang/jumptable3.bir +6d0bbcadc7200713f531c69ccce5d8a1 indirect_calls/jumptable3/clang/jumptable3.relf +55894e67ec113358ece735898e42da32 indirect_calls/jumptable3/clang/jumptable3.gts diff --git a/src/test/indirect_calls/jumptable3/clang/jumptable3.relf b/src/test/indirect_calls/jumptable3/clang/jumptable3.relf deleted file mode 100644 index a14ee809a..000000000 --- a/src/test/indirect_calls/jumptable3/clang/jumptable3.relf +++ /dev/null @@ -1,127 +0,0 @@ - -Relocation section '.rela.dyn' at offset 0x460 contains 8 entries: - Offset Info Type Symbol's Value Symbol's Name + Addend -0000000000010dc8 0000000000000403 R_AARCH64_RELATIVE 710 -0000000000010dd0 0000000000000403 R_AARCH64_RELATIVE 6c0 -0000000000010fd8 0000000000000403 R_AARCH64_RELATIVE 750 -0000000000011028 0000000000000403 R_AARCH64_RELATIVE 11028 -0000000000010fc0 0000000400000401 R_AARCH64_GLOB_DAT 0000000000000000 _ITM_deregisterTMCloneTable + 0 -0000000000010fc8 0000000500000401 R_AARCH64_GLOB_DAT 0000000000000000 __cxa_finalize@GLIBC_2.17 + 0 -0000000000010fd0 0000000600000401 R_AARCH64_GLOB_DAT 0000000000000000 __gmon_start__ + 0 -0000000000010fe0 0000000800000401 R_AARCH64_GLOB_DAT 0000000000000000 _ITM_registerTMCloneTable + 0 - -Relocation section '.rela.plt' at offset 0x520 contains 4 entries: - Offset Info Type Symbol's Value Symbol's Name + Addend -0000000000011000 0000000300000402 R_AARCH64_JUMP_SLOT 0000000000000000 __libc_start_main@GLIBC_2.34 + 0 -0000000000011008 0000000500000402 R_AARCH64_JUMP_SLOT 0000000000000000 __cxa_finalize@GLIBC_2.17 + 0 -0000000000011010 0000000600000402 R_AARCH64_JUMP_SLOT 0000000000000000 __gmon_start__ + 0 -0000000000011018 0000000700000402 R_AARCH64_JUMP_SLOT 0000000000000000 abort@GLIBC_2.17 + 0 - -Symbol table '.dynsym' contains 9 entries: - Num: Value Size Type Bind Vis Ndx Name - 0: 0000000000000000 0 NOTYPE LOCAL DEFAULT UND - 1: 0000000000000580 0 SECTION LOCAL DEFAULT 11 .init - 2: 0000000000011020 0 SECTION LOCAL DEFAULT 23 .data - 3: 0000000000000000 0 FUNC GLOBAL DEFAULT UND __libc_start_main@GLIBC_2.34 (2) - 4: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_deregisterTMCloneTable - 5: 0000000000000000 0 FUNC WEAK DEFAULT UND __cxa_finalize@GLIBC_2.17 (3) - 6: 0000000000000000 0 NOTYPE WEAK DEFAULT UND __gmon_start__ - 7: 0000000000000000 0 FUNC GLOBAL DEFAULT UND abort@GLIBC_2.17 (3) - 8: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_registerTMCloneTable - -Symbol table '.symtab' contains 94 entries: - Num: Value Size Type Bind Vis Ndx Name - 0: 0000000000000000 0 NOTYPE LOCAL DEFAULT UND - 1: 0000000000000238 0 SECTION LOCAL DEFAULT 1 .interp - 2: 0000000000000254 0 SECTION LOCAL DEFAULT 2 .note.gnu.build-id - 3: 0000000000000278 0 SECTION LOCAL DEFAULT 3 .note.ABI-tag - 4: 0000000000000298 0 SECTION LOCAL DEFAULT 4 .gnu.hash - 5: 00000000000002b8 0 SECTION LOCAL DEFAULT 5 .dynsym - 6: 0000000000000390 0 SECTION LOCAL DEFAULT 6 .dynstr - 7: 000000000000041e 0 SECTION LOCAL DEFAULT 7 .gnu.version - 8: 0000000000000430 0 SECTION LOCAL DEFAULT 8 .gnu.version_r - 9: 0000000000000460 0 SECTION LOCAL DEFAULT 9 .rela.dyn - 10: 0000000000000520 0 SECTION LOCAL DEFAULT 10 .rela.plt - 11: 0000000000000580 0 SECTION LOCAL DEFAULT 11 .init - 12: 00000000000005a0 0 SECTION LOCAL DEFAULT 12 .plt - 13: 0000000000000600 0 SECTION LOCAL DEFAULT 13 .text - 14: 0000000000000844 0 SECTION LOCAL DEFAULT 14 .fini - 15: 0000000000000858 0 SECTION LOCAL DEFAULT 15 .rodata - 16: 000000000000088c 0 SECTION LOCAL DEFAULT 16 .eh_frame_hdr - 17: 00000000000008e0 0 SECTION LOCAL DEFAULT 17 .eh_frame - 18: 0000000000010dc8 0 SECTION LOCAL DEFAULT 18 .init_array - 19: 0000000000010dd0 0 SECTION LOCAL DEFAULT 19 .fini_array - 20: 0000000000010dd8 0 SECTION LOCAL DEFAULT 20 .dynamic - 21: 0000000000010fb8 0 SECTION LOCAL DEFAULT 21 .got - 22: 0000000000010fe8 0 SECTION LOCAL DEFAULT 22 .got.plt - 23: 0000000000011020 0 SECTION LOCAL DEFAULT 23 .data - 24: 0000000000011034 0 SECTION LOCAL DEFAULT 24 .bss - 25: 0000000000000000 0 SECTION LOCAL DEFAULT 25 .comment - 26: 0000000000000000 0 FILE LOCAL DEFAULT ABS Scrt1.o - 27: 0000000000000278 0 NOTYPE LOCAL DEFAULT 3 $d - 28: 0000000000000278 32 OBJECT LOCAL DEFAULT 3 __abi_tag - 29: 0000000000000600 0 NOTYPE LOCAL DEFAULT 13 $x - 30: 00000000000008f4 0 NOTYPE LOCAL DEFAULT 17 $d - 31: 0000000000000858 0 NOTYPE LOCAL DEFAULT 15 $d - 32: 0000000000000000 0 FILE LOCAL DEFAULT ABS crti.o - 33: 0000000000000634 0 NOTYPE LOCAL DEFAULT 13 $x - 34: 0000000000000634 20 FUNC LOCAL DEFAULT 13 call_weak_fn - 35: 0000000000000580 0 NOTYPE LOCAL DEFAULT 11 $x - 36: 0000000000000844 0 NOTYPE LOCAL DEFAULT 14 $x - 37: 0000000000000000 0 FILE LOCAL DEFAULT ABS crtn.o - 38: 0000000000000590 0 NOTYPE LOCAL DEFAULT 11 $x - 39: 0000000000000850 0 NOTYPE LOCAL DEFAULT 14 $x - 40: 0000000000000000 0 FILE LOCAL DEFAULT ABS crtstuff.c - 41: 0000000000000650 0 NOTYPE LOCAL DEFAULT 13 $x - 42: 0000000000000650 0 FUNC LOCAL DEFAULT 13 deregister_tm_clones - 43: 0000000000000680 0 FUNC LOCAL DEFAULT 13 register_tm_clones - 44: 0000000000011028 0 NOTYPE LOCAL DEFAULT 23 $d - 45: 00000000000006c0 0 FUNC LOCAL DEFAULT 13 __do_global_dtors_aux - 46: 0000000000011034 1 OBJECT LOCAL DEFAULT 24 completed.0 - 47: 0000000000010dd0 0 NOTYPE LOCAL DEFAULT 19 $d - 48: 0000000000010dd0 0 OBJECT LOCAL DEFAULT 19 __do_global_dtors_aux_fini_array_entry - 49: 0000000000000710 0 FUNC LOCAL DEFAULT 13 frame_dummy - 50: 0000000000010dc8 0 NOTYPE LOCAL DEFAULT 18 $d - 51: 0000000000010dc8 0 OBJECT LOCAL DEFAULT 18 __frame_dummy_init_array_entry - 52: 0000000000000908 0 NOTYPE LOCAL DEFAULT 17 $d - 53: 0000000000011034 0 NOTYPE LOCAL DEFAULT 24 $d - 54: 0000000000000000 0 FILE LOCAL DEFAULT ABS jumptable3.c - 55: 0000000000000714 0 NOTYPE LOCAL DEFAULT 13 $x.0 - 56: 000000000000085c 0 NOTYPE LOCAL DEFAULT 15 $d.1 - 57: 0000000000011030 0 NOTYPE LOCAL DEFAULT 23 $d.2 - 58: 000000000000002a 0 NOTYPE LOCAL DEFAULT 25 $d.3 - 59: 0000000000000968 0 NOTYPE LOCAL DEFAULT 17 $d.4 - 60: 0000000000000000 0 FILE LOCAL DEFAULT ABS crtstuff.c - 61: 00000000000009e0 0 NOTYPE LOCAL DEFAULT 17 $d - 62: 00000000000009e0 0 OBJECT LOCAL DEFAULT 17 __FRAME_END__ - 63: 0000000000000000 0 FILE LOCAL DEFAULT ABS - 64: 0000000000010dd8 0 OBJECT LOCAL DEFAULT ABS _DYNAMIC - 65: 000000000000088c 0 NOTYPE LOCAL DEFAULT 16 __GNU_EH_FRAME_HDR - 66: 0000000000010fb8 0 OBJECT LOCAL DEFAULT ABS _GLOBAL_OFFSET_TABLE_ - 67: 00000000000005a0 0 NOTYPE LOCAL DEFAULT 12 $x - 68: 0000000000000000 0 FUNC GLOBAL DEFAULT UND __libc_start_main@GLIBC_2.34 - 69: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_deregisterTMCloneTable - 70: 0000000000011020 0 NOTYPE WEAK DEFAULT 23 data_start - 71: 0000000000011034 0 NOTYPE GLOBAL DEFAULT 24 __bss_start__ - 72: 0000000000000000 0 FUNC WEAK DEFAULT UND __cxa_finalize@GLIBC_2.17 - 73: 0000000000011038 0 NOTYPE GLOBAL DEFAULT 24 _bss_end__ - 74: 0000000000011034 0 NOTYPE GLOBAL DEFAULT 23 _edata - 75: 0000000000011030 4 OBJECT GLOBAL DEFAULT 23 x - 76: 0000000000000844 0 FUNC GLOBAL HIDDEN 14 _fini - 77: 0000000000011038 0 NOTYPE GLOBAL DEFAULT 24 __bss_end__ - 78: 0000000000011020 0 NOTYPE GLOBAL DEFAULT 23 __data_start - 79: 0000000000000000 0 NOTYPE WEAK DEFAULT UND __gmon_start__ - 80: 0000000000011028 0 OBJECT GLOBAL HIDDEN 23 __dso_handle - 81: 0000000000000000 0 FUNC GLOBAL DEFAULT UND abort@GLIBC_2.17 - 82: 0000000000000858 4 OBJECT GLOBAL DEFAULT 15 _IO_stdin_used - 83: 0000000000000714 20 FUNC GLOBAL DEFAULT 13 add_two - 84: 0000000000011038 0 NOTYPE GLOBAL DEFAULT 24 _end - 85: 0000000000000600 52 FUNC GLOBAL DEFAULT 13 _start - 86: 0000000000011038 0 NOTYPE GLOBAL DEFAULT 24 __end__ - 87: 0000000000000728 20 FUNC GLOBAL DEFAULT 13 add_six - 88: 0000000000011034 0 NOTYPE GLOBAL DEFAULT 24 __bss_start - 89: 0000000000000750 244 FUNC GLOBAL DEFAULT 13 main - 90: 0000000000011038 0 OBJECT GLOBAL HIDDEN 23 __TMC_END__ - 91: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_registerTMCloneTable - 92: 0000000000000580 0 FUNC GLOBAL HIDDEN 11 _init - 93: 000000000000073c 20 FUNC GLOBAL DEFAULT 13 sub_seven diff --git a/src/test/indirect_calls/jumptable3/clang_O2/jumptable3.adt b/src/test/indirect_calls/jumptable3/clang_O2/jumptable3.adt deleted file mode 100644 index d40eeef61..000000000 --- a/src/test/indirect_calls/jumptable3/clang_O2/jumptable3.adt +++ /dev/null @@ -1,592 +0,0 @@ -Project(Attrs([Attr("filename","\"clang_O2/jumptable3.out\""), -Attr("image-specification","(declare abi (name str))\n(declare arch (name str))\n(declare base-address (addr int))\n(declare bias (off int))\n(declare bits (size int))\n(declare code-region (addr int) (size int) (off int))\n(declare code-start (addr int))\n(declare entry-point (addr int))\n(declare external-reference (addr int) (name str))\n(declare format (name str))\n(declare is-executable (flag bool))\n(declare is-little-endian (flag bool))\n(declare llvm:base-address (addr int))\n(declare llvm:code-entry (name str) (off int) (size int))\n(declare llvm:coff-import-library (name str))\n(declare llvm:coff-virtual-section-header (name str) (addr int) (size int))\n(declare llvm:elf-program-header (name str) (off int) (size int))\n(declare llvm:elf-program-header-flags (name str) (ld bool) (r bool) \n (w bool) (x bool))\n(declare llvm:elf-virtual-program-header (name str) (addr int) (size int))\n(declare llvm:entry-point (addr int))\n(declare llvm:macho-symbol (name str) (value int))\n(declare llvm:name-reference (at int) (name str))\n(declare llvm:relocation (at int) (addr int))\n(declare llvm:section-entry (name str) (addr int) (size int) (off int))\n(declare llvm:section-flags (name str) (r bool) (w bool) (x bool))\n(declare llvm:segment-command (name str) (off int) (size int))\n(declare llvm:segment-command-flags (name str) (r bool) (w bool) (x bool))\n(declare llvm:symbol-entry (name str) (addr int) (size int) (off int)\n (value int))\n(declare llvm:virtual-segment-command (name str) (addr int) (size int))\n(declare mapped (addr int) (size int) (off int))\n(declare named-region (addr int) (size int) (name str))\n(declare named-symbol (addr int) (name str))\n(declare require (name str))\n(declare section (addr int) (size int))\n(declare segment (addr int) (size int) (r bool) (w bool) (x bool))\n(declare subarch (name str))\n(declare symbol-chunk (addr int) (size int) (root int))\n(declare symbol-value (addr int) (value int))\n(declare system (name str))\n(declare vendor (name str))\n\n(abi unknown)\n(arch aarch64)\n(base-address 0)\n(bias 0)\n(bits 64)\n(code-region 2076 20 2076)\n(code-region 1536 540 1536)\n(code-region 1440 96 1440)\n(code-region 1408 24 1408)\n(code-start 1588)\n(code-start 1812)\n(code-start 1536)\n(code-start 1832)\n(code-start 1872)\n(code-start 1852)\n(entry-point 1536)\n(external-reference 69568 _ITM_deregisterTMCloneTable)\n(external-reference 69576 __cxa_finalize)\n(external-reference 69584 __gmon_start__)\n(external-reference 69600 _ITM_registerTMCloneTable)\n(external-reference 69632 __libc_start_main)\n(external-reference 69640 __cxa_finalize)\n(external-reference 69648 __gmon_start__)\n(external-reference 69656 abort)\n(format elf)\n(is-executable true)\n(is-little-endian true)\n(llvm:base-address 0)\n(llvm:code-entry abort 0 0)\n(llvm:code-entry __cxa_finalize 0 0)\n(llvm:code-entry __libc_start_main 0 0)\n(llvm:code-entry sub_seven 1852 20)\n(llvm:code-entry _init 1408 0)\n(llvm:code-entry main 1872 204)\n(llvm:code-entry add_six 1832 20)\n(llvm:code-entry _start 1536 52)\n(llvm:code-entry add_two 1812 20)\n(llvm:code-entry abort@GLIBC_2.17 0 0)\n(llvm:code-entry _fini 2076 0)\n(llvm:code-entry __cxa_finalize@GLIBC_2.17 0 0)\n(llvm:code-entry __libc_start_main@GLIBC_2.34 0 0)\n(llvm:code-entry frame_dummy 1808 0)\n(llvm:code-entry __do_global_dtors_aux 1728 0)\n(llvm:code-entry register_tm_clones 1664 0)\n(llvm:code-entry deregister_tm_clones 1616 0)\n(llvm:code-entry call_weak_fn 1588 20)\n(llvm:code-entry .fini 2076 20)\n(llvm:code-entry .text 1536 540)\n(llvm:code-entry .plt 1440 96)\n(llvm:code-entry .init 1408 24)\n(llvm:elf-program-header 08 3528 568)\n(llvm:elf-program-header 07 0 0)\n(llvm:elf-program-header 06 2112 84)\n(llvm:elf-program-header 05 596 68)\n(llvm:elf-program-header 04 3544 480)\n(llvm:elf-program-header 03 3528 620)\n(llvm:elf-program-header 02 0 2440)\n(llvm:elf-program-header 01 568 27)\n(llvm:elf-program-header 00 64 504)\n(llvm:elf-program-header-flags 08 false true false false)\n(llvm:elf-program-header-flags 07 false true true false)\n(llvm:elf-program-header-flags 06 false true false false)\n(llvm:elf-program-header-flags 05 false true false false)\n(llvm:elf-program-header-flags 04 false true true false)\n(llvm:elf-program-header-flags 03 true true true false)\n(llvm:elf-program-header-flags 02 true true false true)\n(llvm:elf-program-header-flags 01 false true false false)\n(llvm:elf-program-header-flags 00 false true false false)\n(llvm:elf-virtual-program-header 08 69064 568)\n(llvm:elf-virtual-program-header 07 0 0)\n(llvm:elf-virtual-program-header 06 2112 84)\n(llvm:elf-virtual-program-header 05 596 68)\n(llvm:elf-virtual-program-header 04 69080 480)\n(llvm:elf-virtual-program-header 03 69064 624)\n(llvm:elf-virtual-program-header 02 0 2440)\n(llvm:elf-virtual-program-header 01 568 27)\n(llvm:elf-virtual-program-header 00 64 504)\n(llvm:entry-point 1536)\n(llvm:name-reference 69656 abort)\n(llvm:name-reference 69648 __gmon_start__)\n(llvm:name-reference 69640 __cxa_finalize)\n(llvm:name-reference 69632 __libc_start_main)\n(llvm:name-reference 69600 _ITM_registerTMCloneTable)\n(llvm:name-reference 69584 __gmon_start__)\n(llvm:name-reference 69576 __cxa_finalize)\n(llvm:name-reference 69568 _ITM_deregisterTMCloneTable)\n(llvm:section-entry .shstrtab 0 259 7077)\n(llvm:section-entry .strtab 0 597 6480)\n(llvm:section-entry .symtab 0 2256 4224)\n(llvm:section-entry .comment 0 71 4148)\n(llvm:section-entry .bss 69684 4 4148)\n(llvm:section-entry .data 69664 20 4128)\n(llvm:section-entry .got.plt 69608 56 4072)\n(llvm:section-entry .got 69560 48 4024)\n(llvm:section-entry .dynamic 69080 480 3544)\n(llvm:section-entry .fini_array 69072 8 3536)\n(llvm:section-entry .init_array 69064 8 3528)\n(llvm:section-entry .eh_frame 2200 240 2200)\n(llvm:section-entry .eh_frame_hdr 2112 84 2112)\n(llvm:section-entry .rodata 2096 16 2096)\n(llvm:section-entry .fini 2076 20 2076)\n(llvm:section-entry .text 1536 540 1536)\n(llvm:section-entry .plt 1440 96 1440)\n(llvm:section-entry .init 1408 24 1408)\n(llvm:section-entry .rela.plt 1312 96 1312)\n(llvm:section-entry .rela.dyn 1120 192 1120)\n(llvm:section-entry .gnu.version_r 1072 48 1072)\n(llvm:section-entry .gnu.version 1054 18 1054)\n(llvm:section-entry .dynstr 912 141 912)\n(llvm:section-entry .dynsym 696 216 696)\n(llvm:section-entry .gnu.hash 664 28 664)\n(llvm:section-entry .note.ABI-tag 632 32 632)\n(llvm:section-entry .note.gnu.build-id 596 36 596)\n(llvm:section-entry .interp 568 27 568)\n(llvm:section-flags .shstrtab true false false)\n(llvm:section-flags .strtab true false false)\n(llvm:section-flags .symtab true false false)\n(llvm:section-flags .comment true false false)\n(llvm:section-flags .bss true true false)\n(llvm:section-flags .data true true false)\n(llvm:section-flags .got.plt true true false)\n(llvm:section-flags .got true true false)\n(llvm:section-flags .dynamic true true false)\n(llvm:section-flags .fini_array true true false)\n(llvm:section-flags .init_array true true false)\n(llvm:section-flags .eh_frame true false false)\n(llvm:section-flags .eh_frame_hdr true false false)\n(llvm:section-flags .rodata true false false)\n(llvm:section-flags .fini true false true)\n(llvm:section-flags .text true false true)\n(llvm:section-flags .plt true false true)\n(llvm:section-flags .init true false true)\n(llvm:section-flags .rela.plt true false false)\n(llvm:section-flags .rela.dyn true false false)\n(llvm:section-flags .gnu.version_r true false false)\n(llvm:section-flags .gnu.version true false false)\n(llvm:section-flags .dynstr true false false)\n(llvm:section-flags .dynsym true false false)\n(llvm:section-flags .gnu.hash true false false)\n(llvm:section-flags .note.ABI-tag true false false)\n(llvm:section-flags .note.gnu.build-id true false false)\n(llvm:section-flags .interp true false false)\n(llvm:symbol-entry abort 0 0 0 0)\n(llvm:symbol-entry __cxa_finalize 0 0 0 0)\n(llvm:symbol-entry __libc_start_main 0 0 0 0)\n(llvm:symbol-entry sub_seven 1852 20 1852 1852)\n(llvm:symbol-entry _init 1408 0 1408 1408)\n(llvm:symbol-entry main 1872 204 1872 1872)\n(llvm:symbol-entry add_six 1832 20 1832 1832)\n(llvm:symbol-entry _start 1536 52 1536 1536)\n(llvm:symbol-entry add_two 1812 20 1812 1812)\n(llvm:symbol-entry abort@GLIBC_2.17 0 0 0 0)\n(llvm:symbol-entry _fini 2076 0 2076 2076)\n(llvm:symbol-entry __cxa_finalize@GLIBC_2.17 0 0 0 0)\n(llvm:symbol-entry __libc_start_main@GLIBC_2.34 0 0 0 0)\n(llvm:symbol-entry frame_dummy 1808 0 1808 1808)\n(llvm:symbol-entry __do_global_dtors_aux 1728 0 1728 1728)\n(llvm:symbol-entry register_tm_clones 1664 0 1664 1664)\n(llvm:symbol-entry deregister_tm_clones 1616 0 1616 1616)\n(llvm:symbol-entry call_weak_fn 1588 20 1588 1588)\n(mapped 0 2440 0)\n(mapped 69064 620 3528)\n(named-region 0 2440 02)\n(named-region 69064 624 03)\n(named-region 568 27 .interp)\n(named-region 596 36 .note.gnu.build-id)\n(named-region 632 32 .note.ABI-tag)\n(named-region 664 28 .gnu.hash)\n(named-region 696 216 .dynsym)\n(named-region 912 141 .dynstr)\n(named-region 1054 18 .gnu.version)\n(named-region 1072 48 .gnu.version_r)\n(named-region 1120 192 .rela.dyn)\n(named-region 1312 96 .rela.plt)\n(named-region 1408 24 .init)\n(named-region 1440 96 .plt)\n(named-region 1536 540 .text)\n(named-region 2076 20 .fini)\n(named-region 2096 16 .rodata)\n(named-region 2112 84 .eh_frame_hdr)\n(named-region 2200 240 .eh_frame)\n(named-region 69064 8 .init_array)\n(named-region 69072 8 .fini_array)\n(named-region 69080 480 .dynamic)\n(named-region 69560 48 .got)\n(named-region 69608 56 .got.plt)\n(named-region 69664 20 .data)\n(named-region 69684 4 .bss)\n(named-region 0 71 .comment)\n(named-region 0 2256 .symtab)\n(named-region 0 597 .strtab)\n(named-region 0 259 .shstrtab)\n(named-symbol 1588 call_weak_fn)\n(named-symbol 1616 deregister_tm_clones)\n(named-symbol 1664 register_tm_clones)\n(named-symbol 1728 __do_global_dtors_aux)\n(named-symbol 1808 frame_dummy)\n(named-symbol 0 __libc_start_main@GLIBC_2.34)\n(named-symbol 0 __cxa_finalize@GLIBC_2.17)\n(named-symbol 2076 _fini)\n(named-symbol 0 abort@GLIBC_2.17)\n(named-symbol 1812 add_two)\n(named-symbol 1536 _start)\n(named-symbol 1832 add_six)\n(named-symbol 1872 main)\n(named-symbol 1408 _init)\n(named-symbol 1852 sub_seven)\n(named-symbol 0 __libc_start_main)\n(named-symbol 0 __cxa_finalize)\n(named-symbol 0 abort)\n(require libc.so.6)\n(section 568 27)\n(section 596 36)\n(section 632 32)\n(section 664 28)\n(section 696 216)\n(section 912 141)\n(section 1054 18)\n(section 1072 48)\n(section 1120 192)\n(section 1312 96)\n(section 1408 24)\n(section 1440 96)\n(section 1536 540)\n(section 2076 20)\n(section 2096 16)\n(section 2112 84)\n(section 2200 240)\n(section 69064 8)\n(section 69072 8)\n(section 69080 480)\n(section 69560 48)\n(section 69608 56)\n(section 69664 20)\n(section 69684 4)\n(section 0 71)\n(section 0 2256)\n(section 0 597)\n(section 0 259)\n(segment 0 2440 true false true)\n(segment 69064 624 true true false)\n(subarch v8)\n(symbol-chunk 1588 20 1588)\n(symbol-chunk 1812 20 1812)\n(symbol-chunk 1536 52 1536)\n(symbol-chunk 1832 20 1832)\n(symbol-chunk 1872 204 1872)\n(symbol-chunk 1852 20 1852)\n(symbol-value 1588 1588)\n(symbol-value 1616 1616)\n(symbol-value 1664 1664)\n(symbol-value 1728 1728)\n(symbol-value 1808 1808)\n(symbol-value 2076 2076)\n(symbol-value 1812 1812)\n(symbol-value 1536 1536)\n(symbol-value 1832 1832)\n(symbol-value 1872 1872)\n(symbol-value 1408 1408)\n(symbol-value 1852 1852)\n(symbol-value 0 0)\n(system \"\")\n(vendor \"\")\n"), -Attr("abi-name","\"aarch64-linux-gnu-elf\"")]), -Sections([Section(".shstrtab", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x00\x06\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xa8\x1c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x38\x00\x09\x00\x40\x00\x1d\x00\x1c\x00\x06\x00\x00\x00\x04\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x04\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x88\x09\x00\x00\x00\x00\x00\x00\x88\x09\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x01\x00\x00\x00\x06\x00\x00\x00\xc8\x0d\x00\x00\x00\x00\x00\x00\xc8\x0d\x01\x00\x00\x00\x00\x00\xc8\x0d\x01"), -Section(".strtab", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x00\x06\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xa8\x1c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x38\x00\x09\x00\x40\x00\x1d\x00\x1c\x00\x06\x00\x00\x00\x04\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x04\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x88\x09\x00\x00\x00\x00\x00\x00\x88\x09\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x01\x00\x00\x00\x06\x00\x00\x00\xc8\x0d\x00\x00\x00\x00\x00\x00\xc8\x0d\x01\x00\x00\x00\x00\x00\xc8\x0d\x01\x00\x00\x00\x00\x00\x6c\x02\x00\x00\x00\x00\x00\x00\x70\x02\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x02\x00\x00\x00\x06\x00\x00\x00\xd8\x0d\x00\x00\x00\x00\x00\x00\xd8\x0d\x01\x00\x00\x00\x00\x00\xd8\x0d\x01\x00\x00\x00\x00\x00\xe0\x01\x00\x00\x00\x00\x00\x00\xe0\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x04\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x50\xe5\x74\x64\x04\x00\x00\x00\x40\x08\x00\x00\x00\x00\x00\x00\x40\x08\x00\x00\x00\x00\x00\x00\x40\x08\x00\x00\x00\x00\x00\x00\x54\x00\x00\x00\x00\x00\x00\x00\x54\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x51\xe5\x74\x64\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x52\xe5\x74\x64\x04\x00\x00\x00\xc8\x0d\x00\x00\x00\x00\x00\x00\xc8\x0d\x01\x00\x00\x00\x00\x00\xc8\x0d\x01\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x2f\x6c\x69\x62\x2f\x6c\x64\x2d\x6c\x69\x6e\x75\x78\x2d\x61\x61\x72\x63\x68\x36\x34\x2e\x73\x6f\x2e\x31\x00\x00\x04"), -Section(".symtab", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x00\x06\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xa8\x1c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x38\x00\x09\x00\x40\x00\x1d\x00\x1c\x00\x06\x00\x00\x00\x04\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x04\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x88\x09\x00\x00\x00\x00\x00\x00\x88\x09\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x01\x00\x00\x00\x06\x00\x00\x00\xc8\x0d\x00\x00\x00\x00\x00\x00\xc8\x0d\x01\x00\x00\x00\x00\x00\xc8\x0d\x01\x00\x00\x00\x00\x00\x6c\x02\x00\x00\x00\x00\x00\x00\x70\x02\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x02\x00\x00\x00\x06\x00\x00\x00\xd8\x0d\x00\x00\x00\x00\x00\x00\xd8\x0d\x01\x00\x00\x00\x00\x00\xd8\x0d\x01\x00\x00\x00\x00\x00\xe0\x01\x00\x00\x00\x00\x00\x00\xe0\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x04\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x50\xe5\x74\x64\x04\x00\x00\x00\x40\x08\x00\x00\x00\x00\x00\x00\x40\x08\x00\x00\x00\x00\x00\x00\x40\x08\x00\x00\x00\x00\x00\x00\x54\x00\x00\x00\x00\x00\x00\x00\x54\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x51\xe5\x74\x64\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x52\xe5\x74\x64\x04\x00\x00\x00\xc8\x0d\x00\x00\x00\x00\x00\x00\xc8\x0d\x01\x00\x00\x00\x00\x00\xc8\x0d\x01\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x2f\x6c\x69\x62\x2f\x6c\x64\x2d\x6c\x69\x6e\x75\x78\x2d\x61\x61\x72\x63\x68\x36\x34\x2e\x73\x6f\x2e\x31\x00\x00\x04\x00\x00\x00\x14\x00\x00\x00\x03\x00\x00\x00\x47\x4e\x55\x00\x03\x81\xf5\x02\xc8\x1c\x97\x6c\xd0\xf9\xd1\x39\xba\x04\xcc\xc3\xd7\x94\xce\x6b\x04\x00\x00\x00\x10\x00\x00\x00\x01\x00\x00\x00\x47\x4e\x55\x00\x00\x00\x00\x00\x03\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x01\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x0b\x00\x80\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x17\x00\x20\x10\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x48\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x22\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x22\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x73\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5f\x5f\x63\x78\x61\x5f\x66\x69\x6e\x61\x6c\x69\x7a\x65\x00\x5f\x5f\x6c\x69\x62\x63\x5f\x73\x74\x61\x72\x74\x5f\x6d\x61\x69\x6e\x00\x61\x62\x6f\x72\x74\x00\x6c\x69\x62\x63\x2e\x73\x6f\x2e\x36\x00\x47\x4c\x49\x42\x43\x5f\x32\x2e\x31\x37\x00\x47\x4c\x49\x42\x43\x5f\x32\x2e\x33\x34\x00\x5f\x49\x54\x4d\x5f\x64\x65\x72\x65\x67\x69\x73\x74\x65\x72\x54\x4d\x43\x6c\x6f\x6e\x65\x54\x61\x62\x6c\x65\x00\x5f\x5f\x67\x6d\x6f\x6e\x5f\x73\x74\x61\x72\x74\x5f\x5f\x00\x5f\x49\x54\x4d\x5f\x72\x65\x67\x69\x73\x74\x65\x72\x54\x4d\x43\x6c\x6f\x6e\x65\x54\x61\x62\x6c\x65\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x01\x00\x03\x00\x01\x00\x03\x00\x01\x00\x01\x00\x02\x00\x28\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x97\x91\x96\x06\x00\x00\x03\x00\x32\x00\x00\x00\x10\x00\x00\x00\xb4\x91\x96\x06\x00\x00\x02\x00\x3d\x00\x00\x00\x00\x00\x00\x00\xc8\x0d\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x10\x07\x00\x00\x00\x00\x00\x00\xd0\x0d\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\xc0\x06\x00\x00\x00\x00\x00\x00\xd8\x0f\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x50\x07\x00\x00\x00\x00\x00\x00\x28\x10\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x28\x10\x01\x00\x00\x00\x00\x00\xc0\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xc8\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xd0\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe0\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x08\x10\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x10\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x18\x10\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1f\x20\x03\xd5\xfd\x7b\xbf\xa9\xfd\x03\x00\x91\x2a\x00\x00\x94\xfd\x7b\xc1\xa8\xc0\x03\x5f\xd6\x00\x00\x00\x00\x00\x00\x00\x00\xf0\x7b\xbf\xa9\x90\x00\x00\x90\x11\xfe\x47\xf9\x10\xe2\x3f\x91\x20\x02\x1f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x90\x00\x00\xb0\x11\x02\x40\xf9\x10\x02\x00\x91\x20\x02\x1f\xd6\x90\x00\x00\xb0\x11\x06\x40\xf9\x10\x22\x00\x91\x20\x02\x1f\xd6\x90\x00\x00\xb0\x11\x0a\x40\xf9\x10\x42\x00\x91\x20\x02\x1f\xd6\x90\x00\x00\xb0\x11\x0e\x40\xf9\x10\x62\x00\x91\x20\x02\x1f\xd6\x1f\x20\x03\xd5\x1d\x00\x80\xd2\x1e\x00\x80\xd2\xe5\x03\x00\xaa\xe1\x03\x40\xf9\xe2\x23\x00\x91\xe6\x03\x00\x91\x80\x00\x00\x90\x00\xec\x47\xf9\x03\x00\x80\xd2\x04\x00\x80\xd2\xe5\xff\xff\x97\xf0\xff\xff\x97\x80\x00\x00\x90\x00\xe8\x47\xf9\x40\x00\x00\xb4\xe8\xff\xff\x17\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x80\x00\x00\xb0\x00\xe0\x00\x91\x81\x00\x00\xb0\x21\xe0\x00\x91\x3f\x00\x00\xeb\xc0\x00\x00\x54\x81\x00\x00\x90\x21\xe0\x47\xf9\x61\x00\x00\xb4\xf0\x03\x01\xaa\x00\x02\x1f\xd6\xc0\x03\x5f\xd6\x80\x00\x00\xb0\x00\xe0\x00\x91\x81\x00\x00\xb0\x21\xe0\x00\x91\x21\x00\x00\xcb\x22\xfc\x7f\xd3\x41\x0c\x81\x8b\x21\xfc\x41\x93\xc1\x00\x00\xb4\x82\x00\x00\x90\x42\xf0\x47\xf9\x62\x00\x00\xb4\xf0\x03\x02\xaa\x00\x02\x1f\xd6\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\xfd\x7b\xbe\xa9\xfd\x03\x00\x91\xf3\x0b\x00\xf9\x93\x00\x00\xb0\x60\xd2\x40\x39\x40\x01\x00\x35\x80\x00\x00\x90\x00\xe4\x47\xf9\x80\x00\x00\xb4\x80\x00\x00\xb0\x00\x14\x40\xf9\xb9\xff\xff\x97\xd8\xff\xff\x97\x20\x00\x80\x52\x60\xd2\x00\x39\xf3\x0b\x40\xf9\xfd\x7b\xc2\xa8\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\xdc\xff\xff\x17\x88\x00\x00\xb0\x09\x31\x40\xb9\x29\x09\x00\x11\x09\x31\x00\xb9\xc0\x03\x5f\xd6\x88\x00\x00\xb0\x09\x31\x40\xb9\x29\x19\x00\x11\x09\x31\x00\xb9\xc0\x03\x5f\xd6\x88\x00\x00\xb0\x09\x31\x40\xb9\x29\x1d\x00\x51\x09\x31\x00\xb9\xc0\x03\x5f\xd6\x1f\x2c\x00\x71\x08\x06\x00\x54\xe9\x03\x00\x2a\x0a\x00\x00\x90\x4a\xd1\x20\x91\x88\x00\x00\xb0\x8b\x00\x00\x10\x4c\x69\x69\x38\x6b\x09\x0c\x8b\x60\x01\x1f\xd6\x09\x31\x40\xb9\x23\x00\x00\x14\x09\x31\x40\xb9\x20\x09\x00\x11\x00\x31\x00\xb9\xc0\x03\x5f\xd6\x09\x31\x40\xb9\x29\x19\x00\x11\x02\x00\x00\x14\x09\x31\x40\xb9\x20\x1d\x00\x51\x00\x31\x00\xb9\xc0\x03\x5f\xd6\x09\x31\x40\xb9\x20\x19\x00\x11\x00\x31\x00\xb9\xc0\x03\x5f\xd6\x09\x31\x40\xb9\x29\x21\x00\x11\x02\x00\x00\x14\x09\x31\x40\xb9\x29\x19\x00\x11\x02\x00\x00\x14\x09\x31\x40\xb9\x29\x1d\x00\x51\x02\x00\x00\x14\x09\x31\x40\xb9\x20\x05\x00\x51\x00\x31\x00\xb9\xc0\x03\x5f\xd6\x09\x31\x40\xb9\x20\x21\x00\x11\x00\x31\x00\xb9\xc0\x03\x5f\xd6\x09\x31\x40\xb9\x29\x05\x00\x11\x20\x15\x00\x51\x00\x31\x00\xb9\xc0\x03\x5f\xd6\x20\x00\x80\x52\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\xfd\x7b\xbf\xa9\xfd\x03\x00\x91\xfd\x7b\xc1\xa8\xc0\x03\x5f\xd6\x01\x00\x02\x00\x02\x06\x09\x00\x0d\x11\x14\x17\x1a\x1e\x22\x00\x01\x1b\x03\x3b\x54\x00\x00\x00\x09\x00\x00\x00\xc0\xfd\xff\xff\x6c\x00\x00\x00\x10\xfe\xff\xff\x80\x00\x00\x00\x40\xfe\xff\xff\x94\x00\x00\x00\x80\xfe\xff\xff\xa8\x00\x00\x00\xd0\xfe\xff\xff\xcc\x00\x00\x00\xd4\xfe\xff\xff\xf4\x00\x00\x00\xe8\xfe\xff\xff\x08\x01\x00\x00\xfc\xfe\xff\xff\x1c\x01\x00\x00\x10\xff\xff\xff\x30\x01\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x01\x7a\x52\x00\x04\x78\x1e\x01\x1b\x0c\x1f\x00\x10\x00\x00\x00\x18\x00\x00\x00\x4c\xfd\xff\xff\x34\x00\x00\x00\x00\x41\x07\x1e\x10\x00\x00\x00\x2c\x00\x00\x00\x88\xfd\xff\xff\x30\x00\x00\x00"), -Section(".comment", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x00\x06\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xa8\x1c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x38\x00\x09\x00\x40\x00\x1d\x00\x1c\x00\x06\x00\x00\x00\x04\x00\x00"), -Section(".interp", 0x238, "\x2f\x6c\x69\x62\x2f\x6c\x64\x2d\x6c\x69\x6e\x75\x78\x2d\x61\x61\x72\x63\x68\x36\x34\x2e\x73\x6f\x2e\x31\x00"), -Section(".note.gnu.build-id", 0x254, "\x04\x00\x00\x00\x14\x00\x00\x00\x03\x00\x00\x00\x47\x4e\x55\x00\x03\x81\xf5\x02\xc8\x1c\x97\x6c\xd0\xf9\xd1\x39\xba\x04\xcc\xc3\xd7\x94\xce\x6b"), -Section(".note.ABI-tag", 0x278, "\x04\x00\x00\x00\x10\x00\x00\x00\x01\x00\x00\x00\x47\x4e\x55\x00\x00\x00\x00\x00\x03\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00"), -Section(".gnu.hash", 0x298, "\x01\x00\x00\x00\x01\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".dynsym", 0x2B8, "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x0b\x00\x80\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x17\x00\x20\x10\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x48\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x22\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x22\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x73\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".dynstr", 0x390, "\x00\x5f\x5f\x63\x78\x61\x5f\x66\x69\x6e\x61\x6c\x69\x7a\x65\x00\x5f\x5f\x6c\x69\x62\x63\x5f\x73\x74\x61\x72\x74\x5f\x6d\x61\x69\x6e\x00\x61\x62\x6f\x72\x74\x00\x6c\x69\x62\x63\x2e\x73\x6f\x2e\x36\x00\x47\x4c\x49\x42\x43\x5f\x32\x2e\x31\x37\x00\x47\x4c\x49\x42\x43\x5f\x32\x2e\x33\x34\x00\x5f\x49\x54\x4d\x5f\x64\x65\x72\x65\x67\x69\x73\x74\x65\x72\x54\x4d\x43\x6c\x6f\x6e\x65\x54\x61\x62\x6c\x65\x00\x5f\x5f\x67\x6d\x6f\x6e\x5f\x73\x74\x61\x72\x74\x5f\x5f\x00\x5f\x49\x54\x4d\x5f\x72\x65\x67\x69\x73\x74\x65\x72\x54\x4d\x43\x6c\x6f\x6e\x65\x54\x61\x62\x6c\x65\x00"), -Section(".gnu.version", 0x41E, "\x00\x00\x00\x00\x00\x00\x02\x00\x01\x00\x03\x00\x01\x00\x03\x00\x01\x00"), -Section(".gnu.version_r", 0x430, "\x01\x00\x02\x00\x28\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x97\x91\x96\x06\x00\x00\x03\x00\x32\x00\x00\x00\x10\x00\x00\x00\xb4\x91\x96\x06\x00\x00\x02\x00\x3d\x00\x00\x00\x00\x00\x00\x00"), -Section(".rela.dyn", 0x460, "\xc8\x0d\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x10\x07\x00\x00\x00\x00\x00\x00\xd0\x0d\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\xc0\x06\x00\x00\x00\x00\x00\x00\xd8\x0f\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x50\x07\x00\x00\x00\x00\x00\x00\x28\x10\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x28\x10\x01\x00\x00\x00\x00\x00\xc0\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xc8\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xd0\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe0\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".rela.plt", 0x520, "\x00\x10\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x08\x10\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x10\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x18\x10\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".init", 0x580, "\x1f\x20\x03\xd5\xfd\x7b\xbf\xa9\xfd\x03\x00\x91\x2a\x00\x00\x94\xfd\x7b\xc1\xa8\xc0\x03\x5f\xd6"), -Section(".plt", 0x5A0, "\xf0\x7b\xbf\xa9\x90\x00\x00\x90\x11\xfe\x47\xf9\x10\xe2\x3f\x91\x20\x02\x1f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x90\x00\x00\xb0\x11\x02\x40\xf9\x10\x02\x00\x91\x20\x02\x1f\xd6\x90\x00\x00\xb0\x11\x06\x40\xf9\x10\x22\x00\x91\x20\x02\x1f\xd6\x90\x00\x00\xb0\x11\x0a\x40\xf9\x10\x42\x00\x91\x20\x02\x1f\xd6\x90\x00\x00\xb0\x11\x0e\x40\xf9\x10\x62\x00\x91\x20\x02\x1f\xd6"), -Section(".text", 0x600, "\x1f\x20\x03\xd5\x1d\x00\x80\xd2\x1e\x00\x80\xd2\xe5\x03\x00\xaa\xe1\x03\x40\xf9\xe2\x23\x00\x91\xe6\x03\x00\x91\x80\x00\x00\x90\x00\xec\x47\xf9\x03\x00\x80\xd2\x04\x00\x80\xd2\xe5\xff\xff\x97\xf0\xff\xff\x97\x80\x00\x00\x90\x00\xe8\x47\xf9\x40\x00\x00\xb4\xe8\xff\xff\x17\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x80\x00\x00\xb0\x00\xe0\x00\x91\x81\x00\x00\xb0\x21\xe0\x00\x91\x3f\x00\x00\xeb\xc0\x00\x00\x54\x81\x00\x00\x90\x21\xe0\x47\xf9\x61\x00\x00\xb4\xf0\x03\x01\xaa\x00\x02\x1f\xd6\xc0\x03\x5f\xd6\x80\x00\x00\xb0\x00\xe0\x00\x91\x81\x00\x00\xb0\x21\xe0\x00\x91\x21\x00\x00\xcb\x22\xfc\x7f\xd3\x41\x0c\x81\x8b\x21\xfc\x41\x93\xc1\x00\x00\xb4\x82\x00\x00\x90\x42\xf0\x47\xf9\x62\x00\x00\xb4\xf0\x03\x02\xaa\x00\x02\x1f\xd6\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\xfd\x7b\xbe\xa9\xfd\x03\x00\x91\xf3\x0b\x00\xf9\x93\x00\x00\xb0\x60\xd2\x40\x39\x40\x01\x00\x35\x80\x00\x00\x90\x00\xe4\x47\xf9\x80\x00\x00\xb4\x80\x00\x00\xb0\x00\x14\x40\xf9\xb9\xff\xff\x97\xd8\xff\xff\x97\x20\x00\x80\x52\x60\xd2\x00\x39\xf3\x0b\x40\xf9\xfd\x7b\xc2\xa8\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\xdc\xff\xff\x17\x88\x00\x00\xb0\x09\x31\x40\xb9\x29\x09\x00\x11\x09\x31\x00\xb9\xc0\x03\x5f\xd6\x88\x00\x00\xb0\x09\x31\x40\xb9\x29\x19\x00\x11\x09\x31\x00\xb9\xc0\x03\x5f\xd6\x88\x00\x00\xb0\x09\x31\x40\xb9\x29\x1d\x00\x51\x09\x31\x00\xb9\xc0\x03\x5f\xd6\x1f\x2c\x00\x71\x08\x06\x00\x54\xe9\x03\x00\x2a\x0a\x00\x00\x90\x4a\xd1\x20\x91\x88\x00\x00\xb0\x8b\x00\x00\x10\x4c\x69\x69\x38\x6b\x09\x0c\x8b\x60\x01\x1f\xd6\x09\x31\x40\xb9\x23\x00\x00\x14\x09\x31\x40\xb9\x20\x09\x00\x11\x00\x31\x00\xb9\xc0\x03\x5f\xd6\x09\x31\x40\xb9\x29\x19\x00\x11\x02\x00\x00\x14\x09\x31\x40\xb9\x20\x1d\x00\x51\x00\x31\x00\xb9\xc0\x03\x5f\xd6\x09\x31\x40\xb9\x20\x19\x00\x11\x00\x31\x00\xb9\xc0\x03\x5f\xd6\x09\x31\x40\xb9\x29\x21\x00\x11\x02\x00\x00\x14\x09\x31\x40\xb9\x29\x19\x00\x11\x02\x00\x00\x14\x09\x31\x40\xb9\x29\x1d\x00\x51\x02\x00\x00\x14\x09\x31\x40\xb9\x20\x05\x00\x51\x00\x31\x00\xb9\xc0\x03\x5f\xd6\x09\x31\x40\xb9\x20\x21\x00\x11\x00\x31\x00\xb9\xc0\x03\x5f\xd6\x09\x31\x40\xb9\x29\x05\x00\x11\x20\x15\x00\x51\x00\x31\x00\xb9\xc0\x03\x5f\xd6\x20\x00\x80\x52\xc0\x03\x5f\xd6"), -Section(".fini", 0x81C, "\x1f\x20\x03\xd5\xfd\x7b\xbf\xa9\xfd\x03\x00\x91\xfd\x7b\xc1\xa8\xc0\x03\x5f\xd6"), -Section(".rodata", 0x830, "\x01\x00\x02\x00\x02\x06\x09\x00\x0d\x11\x14\x17\x1a\x1e\x22\x00"), -Section(".eh_frame_hdr", 0x840, "\x01\x1b\x03\x3b\x54\x00\x00\x00\x09\x00\x00\x00\xc0\xfd\xff\xff\x6c\x00\x00\x00\x10\xfe\xff\xff\x80\x00\x00\x00\x40\xfe\xff\xff\x94\x00\x00\x00\x80\xfe\xff\xff\xa8\x00\x00\x00\xd0\xfe\xff\xff\xcc\x00\x00\x00\xd4\xfe\xff\xff\xf4\x00\x00\x00\xe8\xfe\xff\xff\x08\x01\x00\x00\xfc\xfe\xff\xff\x1c\x01\x00\x00\x10\xff\xff\xff\x30\x01\x00\x00"), -Section(".eh_frame", 0x898, "\x10\x00\x00\x00\x00\x00\x00\x00\x01\x7a\x52\x00\x04\x78\x1e\x01\x1b\x0c\x1f\x00\x10\x00\x00\x00\x18\x00\x00\x00\x4c\xfd\xff\xff\x34\x00\x00\x00\x00\x41\x07\x1e\x10\x00\x00\x00\x2c\x00\x00\x00\x88\xfd\xff\xff\x30\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x40\x00\x00\x00\xa4\xfd\xff\xff\x3c\x00\x00\x00\x00\x00\x00\x00\x20\x00\x00\x00\x54\x00\x00\x00\xd0\xfd\xff\xff\x48\x00\x00\x00\x00\x41\x0e\x20\x9d\x04\x9e\x03\x42\x93\x02\x4e\xde\xdd\xd3\x0e\x00\x00\x00\x00\x10\x00\x00\x00\x78\x00\x00\x00\xfc\xfd\xff\xff\x04\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x01\x7a\x52\x00\x01\x7c\x1e\x01\x1b\x0c\x1f\x00\x10\x00\x00\x00\x18\x00\x00\x00\xd8\xfd\xff\xff\x14\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x2c\x00\x00\x00\xd8\xfd\xff\xff\x14\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x40\x00\x00\x00\xd8\xfd\xff\xff\x14\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x54\x00\x00\x00\xd8\xfd\xff\xff\xcc\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".fini_array", 0x10DD0, "\xc0\x06\x00\x00\x00\x00\x00\x00"), -Section(".dynamic", 0x10DD8, "\x01\x00\x00\x00\x00\x00\x00\x00\x28\x00\x00\x00\x00\x00\x00\x00\x0c\x00\x00\x00\x00\x00\x00\x00\x80\x05\x00\x00\x00\x00\x00\x00\x0d\x00\x00\x00\x00\x00\x00\x00\x1c\x08\x00\x00\x00\x00\x00\x00\x19\x00\x00\x00\x00\x00\x00\x00\xc8\x0d\x01\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x1a\x00\x00\x00\x00\x00\x00\x00\xd0\x0d\x01\x00\x00\x00\x00\x00\x1c\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\xf5\xfe\xff\x6f\x00\x00\x00\x00\x98\x02\x00\x00\x00\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x90\x03\x00\x00\x00\x00\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\xb8\x02\x00\x00\x00\x00\x00\x00\x0a\x00\x00\x00\x00\x00\x00\x00\x8d\x00\x00\x00\x00\x00\x00\x00\x0b\x00\x00\x00\x00\x00\x00\x00\x18\x00\x00\x00\x00\x00\x00\x00\x15\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\xe8\x0f\x01\x00\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x60\x00\x00\x00\x00\x00\x00\x00\x14\x00\x00\x00\x00\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x17\x00\x00\x00\x00\x00\x00\x00\x20\x05\x00\x00\x00\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x60\x04\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\xc0\x00\x00\x00\x00\x00\x00\x00\x09\x00\x00\x00\x00\x00\x00\x00\x18\x00\x00\x00\x00\x00\x00\x00\xfb\xff\xff\x6f\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\xfe\xff\xff\x6f\x00\x00\x00\x00\x30\x04\x00\x00\x00\x00\x00\x00\xff\xff\xff\x6f\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\xf0\xff\xff\x6f\x00\x00\x00\x00\x1e\x04\x00\x00\x00\x00\x00\x00\xf9\xff\xff\x6f\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".got", 0x10FB8, "\xd8\x0d\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x50\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".got.plt", 0x10FE8, "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xa0\x05\x00\x00\x00\x00\x00\x00\xa0\x05\x00\x00\x00\x00\x00\x00\xa0\x05\x00\x00\x00\x00\x00\x00\xa0\x05\x00\x00\x00\x00\x00\x00"), -Section(".data", 0x11020, "\x00\x00\x00\x00\x00\x00\x00\x00\x28\x10\x01\x00\x00\x00\x00\x00\x05\x00\x00\x00"), -Section(".init_array", 0x10DC8, "\x10\x07\x00\x00\x00\x00\x00\x00")]), -Memmap([Annotation(Region(0x0,0x987), Attr("segment","02 0 2440")), -Annotation(Region(0x600,0x633), Attr("symbol","\"_start\"")), -Annotation(Region(0x0,0x102), Attr("section","\".shstrtab\"")), -Annotation(Region(0x0,0x254), Attr("section","\".strtab\"")), -Annotation(Region(0x0,0x8CF), Attr("section","\".symtab\"")), -Annotation(Region(0x0,0x46), Attr("section","\".comment\"")), -Annotation(Region(0x238,0x252), Attr("section","\".interp\"")), -Annotation(Region(0x254,0x277), Attr("section","\".note.gnu.build-id\"")), -Annotation(Region(0x278,0x297), Attr("section","\".note.ABI-tag\"")), -Annotation(Region(0x298,0x2B3), Attr("section","\".gnu.hash\"")), -Annotation(Region(0x2B8,0x38F), Attr("section","\".dynsym\"")), -Annotation(Region(0x390,0x41C), Attr("section","\".dynstr\"")), -Annotation(Region(0x41E,0x42F), Attr("section","\".gnu.version\"")), -Annotation(Region(0x430,0x45F), Attr("section","\".gnu.version_r\"")), -Annotation(Region(0x460,0x51F), Attr("section","\".rela.dyn\"")), -Annotation(Region(0x520,0x57F), Attr("section","\".rela.plt\"")), -Annotation(Region(0x580,0x597), Attr("section","\".init\"")), -Annotation(Region(0x5A0,0x5FF), Attr("section","\".plt\"")), -Annotation(Region(0x580,0x597), Attr("code-region","()")), -Annotation(Region(0x5A0,0x5FF), Attr("code-region","()")), -Annotation(Region(0x600,0x633), Attr("symbol-info","_start 0x600 52")), -Annotation(Region(0x634,0x647), Attr("symbol","\"call_weak_fn\"")), -Annotation(Region(0x634,0x647), Attr("symbol-info","call_weak_fn 0x634 20")), -Annotation(Region(0x714,0x727), Attr("symbol","\"add_two\"")), -Annotation(Region(0x714,0x727), Attr("symbol-info","add_two 0x714 20")), -Annotation(Region(0x728,0x73B), Attr("symbol","\"add_six\"")), -Annotation(Region(0x728,0x73B), Attr("symbol-info","add_six 0x728 20")), -Annotation(Region(0x73C,0x74F), Attr("symbol","\"sub_seven\"")), -Annotation(Region(0x600,0x81B), Attr("section","\".text\"")), -Annotation(Region(0x600,0x81B), Attr("code-region","()")), -Annotation(Region(0x73C,0x74F), Attr("symbol-info","sub_seven 0x73C 20")), -Annotation(Region(0x750,0x81B), Attr("symbol","\"main\"")), -Annotation(Region(0x750,0x81B), Attr("symbol-info","main 0x750 204")), -Annotation(Region(0x81C,0x82F), Attr("section","\".fini\"")), -Annotation(Region(0x81C,0x82F), Attr("code-region","()")), -Annotation(Region(0x830,0x83F), Attr("section","\".rodata\"")), -Annotation(Region(0x840,0x893), Attr("section","\".eh_frame_hdr\"")), -Annotation(Region(0x898,0x987), Attr("section","\".eh_frame\"")), -Annotation(Region(0x10DC8,0x11033), Attr("segment","03 0x10DC8 624")), -Annotation(Region(0x10DD0,0x10DD7), Attr("section","\".fini_array\"")), -Annotation(Region(0x10DD8,0x10FB7), Attr("section","\".dynamic\"")), -Annotation(Region(0x10FB8,0x10FE7), Attr("section","\".got\"")), -Annotation(Region(0x10FE8,0x1101F), Attr("section","\".got.plt\"")), -Annotation(Region(0x11020,0x11033), Attr("section","\".data\"")), -Annotation(Region(0x10DC8,0x10DCF), Attr("section","\".init_array\""))]), -Program(Tid(2_186, "%0000088a"), Attrs([]), - Subs([Sub(Tid(2_128, "@__cxa_finalize"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x5D0"), -Attr("stub","()")]), "__cxa_finalize", Args([Arg(Tid(2_187, "%0000088b"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("__cxa_finalize_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(1_424, "@__cxa_finalize"), - Attrs([Attr("address","0x5D0")]), Phis([]), -Defs([Def(Tid(1_672, "%00000688"), Attrs([Attr("address","0x5D0"), -Attr("insn","adrp x16, #69632")]), Var("R16",Imm(64)), Int(69632,64)), -Def(Tid(1_679, "%0000068f"), Attrs([Attr("address","0x5D4"), -Attr("insn","ldr x17, [x16, #0x8]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(1_685, "%00000695"), Attrs([Attr("address","0x5D8"), -Attr("insn","add x16, x16, #0x8")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(8,64)))]), Jmps([Call(Tid(1_690, "%0000069a"), - Attrs([Attr("address","0x5DC"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), -Sub(Tid(2_129, "@__do_global_dtors_aux"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x6C0")]), - "__do_global_dtors_aux", Args([Arg(Tid(2_188, "%0000088c"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("__do_global_dtors_aux_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(854, "@__do_global_dtors_aux"), - Attrs([Attr("address","0x6C0")]), Phis([]), Defs([Def(Tid(858, "%0000035a"), - Attrs([Attr("address","0x6C0"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("#3",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(18446744073709551584,64))), -Def(Tid(864, "%00000360"), Attrs([Attr("address","0x6C0"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("#3",Imm(64)),Var("R29",Imm(64)),LittleEndian(),64)), -Def(Tid(870, "%00000366"), Attrs([Attr("address","0x6C0"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("#3",Imm(64)),Int(8,64)),Var("R30",Imm(64)),LittleEndian(),64)), -Def(Tid(874, "%0000036a"), Attrs([Attr("address","0x6C0"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("R31",Imm(64)), -Var("#3",Imm(64))), Def(Tid(880, "%00000370"), - Attrs([Attr("address","0x6C4"), Attr("insn","mov x29, sp")]), - Var("R29",Imm(64)), Var("R31",Imm(64))), Def(Tid(888, "%00000378"), - Attrs([Attr("address","0x6C8"), Attr("insn","str x19, [sp, #0x10]")]), - Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(16,64)),Var("R19",Imm(64)),LittleEndian(),64)), -Def(Tid(893, "%0000037d"), Attrs([Attr("address","0x6CC"), -Attr("insn","adrp x19, #69632")]), Var("R19",Imm(64)), Int(69632,64)), -Def(Tid(900, "%00000384"), Attrs([Attr("address","0x6D0"), -Attr("insn","ldrb w0, [x19, #0x34]")]), Var("R0",Imm(64)), -UNSIGNED(64,Load(Var("mem",Mem(64,8)),PLUS(Var("R19",Imm(64)),Int(52,64)),LittleEndian(),8)))]), -Jmps([Goto(Tid(907, "%0000038b"), Attrs([Attr("address","0x6D4"), -Attr("insn","cbnz w0, #0x28")]), - NEQ(Extract(31,0,Var("R0",Imm(64))),Int(0,32)), -Direct(Tid(905, "%00000389"))), Goto(Tid(2_175, "%0000087f"), Attrs([]), - Int(1,1), Direct(Tid(1_369, "%00000559")))])), Blk(Tid(1_369, "%00000559"), - Attrs([Attr("address","0x6D8")]), Phis([]), -Defs([Def(Tid(1_372, "%0000055c"), Attrs([Attr("address","0x6D8"), -Attr("insn","adrp x0, #65536")]), Var("R0",Imm(64)), Int(65536,64)), -Def(Tid(1_379, "%00000563"), Attrs([Attr("address","0x6DC"), -Attr("insn","ldr x0, [x0, #0xfc8]")]), Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(4040,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(1_385, "%00000569"), Attrs([Attr("address","0x6E0"), -Attr("insn","cbz x0, #0x10")]), EQ(Var("R0",Imm(64)),Int(0,64)), -Direct(Tid(1_383, "%00000567"))), Goto(Tid(2_176, "%00000880"), Attrs([]), - Int(1,1), Direct(Tid(1_408, "%00000580")))])), Blk(Tid(1_408, "%00000580"), - Attrs([Attr("address","0x6E4")]), Phis([]), -Defs([Def(Tid(1_411, "%00000583"), Attrs([Attr("address","0x6E4"), -Attr("insn","adrp x0, #69632")]), Var("R0",Imm(64)), Int(69632,64)), -Def(Tid(1_418, "%0000058a"), Attrs([Attr("address","0x6E8"), -Attr("insn","ldr x0, [x0, #0x28]")]), Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(40,64)),LittleEndian(),64)), -Def(Tid(1_423, "%0000058f"), Attrs([Attr("address","0x6EC"), -Attr("insn","bl #-0x11c")]), Var("R30",Imm(64)), Int(1776,64))]), -Jmps([Call(Tid(1_426, "%00000592"), Attrs([Attr("address","0x6EC"), -Attr("insn","bl #-0x11c")]), Int(1,1), -(Direct(Tid(2_128, "@__cxa_finalize")),Direct(Tid(1_383, "%00000567"))))])), -Blk(Tid(1_383, "%00000567"), Attrs([Attr("address","0x6F0")]), Phis([]), -Defs([Def(Tid(1_391, "%0000056f"), Attrs([Attr("address","0x6F0"), -Attr("insn","bl #-0xa0")]), Var("R30",Imm(64)), Int(1780,64))]), -Jmps([Call(Tid(1_393, "%00000571"), Attrs([Attr("address","0x6F0"), -Attr("insn","bl #-0xa0")]), Int(1,1), -(Direct(Tid(2_144, "@deregister_tm_clones")),Direct(Tid(1_395, "%00000573"))))])), -Blk(Tid(1_395, "%00000573"), Attrs([Attr("address","0x6F4")]), Phis([]), -Defs([Def(Tid(1_398, "%00000576"), Attrs([Attr("address","0x6F4"), -Attr("insn","mov w0, #0x1")]), Var("R0",Imm(64)), Int(1,64)), -Def(Tid(1_406, "%0000057e"), Attrs([Attr("address","0x6F8"), -Attr("insn","strb w0, [x19, #0x34]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R19",Imm(64)),Int(52,64)),Extract(7,0,Var("R0",Imm(64))),LittleEndian(),8))]), -Jmps([Goto(Tid(2_177, "%00000881"), Attrs([]), Int(1,1), -Direct(Tid(905, "%00000389")))])), Blk(Tid(905, "%00000389"), - Attrs([Attr("address","0x6FC")]), Phis([]), Defs([Def(Tid(915, "%00000393"), - Attrs([Attr("address","0x6FC"), Attr("insn","ldr x19, [sp, #0x10]")]), - Var("R19",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(16,64)),LittleEndian(),64)), -Def(Tid(922, "%0000039a"), Attrs([Attr("address","0x700"), -Attr("insn","ldp x29, x30, [sp], #0x20")]), Var("R29",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(927, "%0000039f"), Attrs([Attr("address","0x700"), -Attr("insn","ldp x29, x30, [sp], #0x20")]), Var("R30",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(931, "%000003a3"), Attrs([Attr("address","0x700"), -Attr("insn","ldp x29, x30, [sp], #0x20")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(32,64)))]), Jmps([Call(Tid(936, "%000003a8"), - Attrs([Attr("address","0x704"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), Sub(Tid(2_133, "@__libc_start_main"), - Attrs([Attr("c.proto","signed (*)(signed (*)(signed , char** , char** );* main, signed , char** , \nvoid* auxv)"), -Attr("address","0x5C0"), Attr("stub","()")]), "__libc_start_main", - Args([Arg(Tid(2_189, "%0000088d"), - Attrs([Attr("c.layout","**[ : 64]"), -Attr("c.data","Top:u64 ptr ptr"), -Attr("c.type","signed (*)(signed , char** , char** );*")]), - Var("__libc_start_main_main",Imm(64)), Var("R0",Imm(64)), In()), -Arg(Tid(2_190, "%0000088e"), Attrs([Attr("c.layout","[signed : 32]"), -Attr("c.data","Top:u32"), Attr("c.type","signed")]), - Var("__libc_start_main_arg2",Imm(32)), LOW(32,Var("R1",Imm(64))), In()), -Arg(Tid(2_191, "%0000088f"), Attrs([Attr("c.layout","**[char : 8]"), -Attr("c.data","Top:u8 ptr ptr"), Attr("c.type","char**")]), - Var("__libc_start_main_arg3",Imm(64)), Var("R2",Imm(64)), Both()), -Arg(Tid(2_192, "%00000890"), Attrs([Attr("c.layout","*[ : 8]"), -Attr("c.data","{} ptr"), Attr("c.type","void*")]), - Var("__libc_start_main_auxv",Imm(64)), Var("R3",Imm(64)), Both()), -Arg(Tid(2_193, "%00000891"), Attrs([Attr("c.layout","[signed : 32]"), -Attr("c.data","Top:u32"), Attr("c.type","signed")]), - Var("__libc_start_main_result",Imm(32)), LOW(32,Var("R0",Imm(64))), -Out())]), Blks([Blk(Tid(687, "@__libc_start_main"), - Attrs([Attr("address","0x5C0")]), Phis([]), -Defs([Def(Tid(1_650, "%00000672"), Attrs([Attr("address","0x5C0"), -Attr("insn","adrp x16, #69632")]), Var("R16",Imm(64)), Int(69632,64)), -Def(Tid(1_657, "%00000679"), Attrs([Attr("address","0x5C4"), -Attr("insn","ldr x17, [x16]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R16",Imm(64)),LittleEndian(),64)), -Def(Tid(1_663, "%0000067f"), Attrs([Attr("address","0x5C8"), -Attr("insn","add x16, x16, #0x0")]), Var("R16",Imm(64)), -Var("R16",Imm(64)))]), Jmps([Call(Tid(1_668, "%00000684"), - Attrs([Attr("address","0x5CC"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), Sub(Tid(2_134, "@_fini"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x81C")]), - "_fini", Args([Arg(Tid(2_194, "%00000892"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("_fini_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(31, "@_fini"), - Attrs([Attr("address","0x81C")]), Phis([]), Defs([Def(Tid(37, "%00000025"), - Attrs([Attr("address","0x820"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("#0",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(18446744073709551600,64))), -Def(Tid(43, "%0000002b"), Attrs([Attr("address","0x820"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("#0",Imm(64)),Var("R29",Imm(64)),LittleEndian(),64)), -Def(Tid(49, "%00000031"), Attrs([Attr("address","0x820"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("#0",Imm(64)),Int(8,64)),Var("R30",Imm(64)),LittleEndian(),64)), -Def(Tid(53, "%00000035"), Attrs([Attr("address","0x820"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("R31",Imm(64)), -Var("#0",Imm(64))), Def(Tid(59, "%0000003b"), Attrs([Attr("address","0x824"), -Attr("insn","mov x29, sp")]), Var("R29",Imm(64)), Var("R31",Imm(64))), -Def(Tid(66, "%00000042"), Attrs([Attr("address","0x828"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R29",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(71, "%00000047"), Attrs([Attr("address","0x828"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R30",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(75, "%0000004b"), Attrs([Attr("address","0x828"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(16,64)))]), Jmps([Call(Tid(80, "%00000050"), - Attrs([Attr("address","0x82C"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), Sub(Tid(2_135, "@_init"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x580")]), - "_init", Args([Arg(Tid(2_195, "%00000893"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("_init_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(1_904, "@_init"), - Attrs([Attr("address","0x580")]), Phis([]), -Defs([Def(Tid(1_910, "%00000776"), Attrs([Attr("address","0x584"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("#6",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(18446744073709551600,64))), -Def(Tid(1_916, "%0000077c"), Attrs([Attr("address","0x584"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("#6",Imm(64)),Var("R29",Imm(64)),LittleEndian(),64)), -Def(Tid(1_922, "%00000782"), Attrs([Attr("address","0x584"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("#6",Imm(64)),Int(8,64)),Var("R30",Imm(64)),LittleEndian(),64)), -Def(Tid(1_926, "%00000786"), Attrs([Attr("address","0x584"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("R31",Imm(64)), -Var("#6",Imm(64))), Def(Tid(1_932, "%0000078c"), - Attrs([Attr("address","0x588"), Attr("insn","mov x29, sp")]), - Var("R29",Imm(64)), Var("R31",Imm(64))), Def(Tid(1_937, "%00000791"), - Attrs([Attr("address","0x58C"), Attr("insn","bl #0xa8")]), - Var("R30",Imm(64)), Int(1424,64))]), Jmps([Call(Tid(1_939, "%00000793"), - Attrs([Attr("address","0x58C"), Attr("insn","bl #0xa8")]), Int(1,1), -(Direct(Tid(2_142, "@call_weak_fn")),Direct(Tid(1_941, "%00000795"))))])), -Blk(Tid(1_941, "%00000795"), Attrs([Attr("address","0x590")]), Phis([]), -Defs([Def(Tid(1_946, "%0000079a"), Attrs([Attr("address","0x590"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R29",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(1_951, "%0000079f"), Attrs([Attr("address","0x590"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R30",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(1_955, "%000007a3"), Attrs([Attr("address","0x590"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(16,64)))]), Jmps([Call(Tid(1_960, "%000007a8"), - Attrs([Attr("address","0x594"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), Sub(Tid(2_136, "@_start"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x600"), -Attr("stub","()"), Attr("entry-point","()")]), "_start", - Args([Arg(Tid(2_196, "%00000894"), Attrs([Attr("c.layout","[signed : 32]"), -Attr("c.data","Top:u32"), Attr("c.type","signed")]), - Var("_start_result",Imm(32)), LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(624, "@_start"), Attrs([Attr("address","0x600")]), Phis([]), -Defs([Def(Tid(629, "%00000275"), Attrs([Attr("address","0x604"), -Attr("insn","mov x29, #0x0")]), Var("R29",Imm(64)), Int(0,64)), -Def(Tid(634, "%0000027a"), Attrs([Attr("address","0x608"), -Attr("insn","mov x30, #0x0")]), Var("R30",Imm(64)), Int(0,64)), -Def(Tid(640, "%00000280"), Attrs([Attr("address","0x60C"), -Attr("insn","mov x5, x0")]), Var("R5",Imm(64)), Var("R0",Imm(64))), -Def(Tid(647, "%00000287"), Attrs([Attr("address","0x610"), -Attr("insn","ldr x1, [sp]")]), Var("R1",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(653, "%0000028d"), Attrs([Attr("address","0x614"), -Attr("insn","add x2, sp, #0x8")]), Var("R2",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(8,64))), Def(Tid(659, "%00000293"), - Attrs([Attr("address","0x618"), Attr("insn","mov x6, sp")]), - Var("R6",Imm(64)), Var("R31",Imm(64))), Def(Tid(664, "%00000298"), - Attrs([Attr("address","0x61C"), Attr("insn","adrp x0, #65536")]), - Var("R0",Imm(64)), Int(65536,64)), Def(Tid(671, "%0000029f"), - Attrs([Attr("address","0x620"), Attr("insn","ldr x0, [x0, #0xfd8]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(4056,64)),LittleEndian(),64)), -Def(Tid(676, "%000002a4"), Attrs([Attr("address","0x624"), -Attr("insn","mov x3, #0x0")]), Var("R3",Imm(64)), Int(0,64)), -Def(Tid(681, "%000002a9"), Attrs([Attr("address","0x628"), -Attr("insn","mov x4, #0x0")]), Var("R4",Imm(64)), Int(0,64)), -Def(Tid(686, "%000002ae"), Attrs([Attr("address","0x62C"), -Attr("insn","bl #-0x6c")]), Var("R30",Imm(64)), Int(1584,64))]), -Jmps([Call(Tid(689, "%000002b1"), Attrs([Attr("address","0x62C"), -Attr("insn","bl #-0x6c")]), Int(1,1), -(Direct(Tid(2_133, "@__libc_start_main")),Direct(Tid(691, "%000002b3"))))])), -Blk(Tid(691, "%000002b3"), Attrs([Attr("address","0x630")]), Phis([]), -Defs([Def(Tid(694, "%000002b6"), Attrs([Attr("address","0x630"), -Attr("insn","bl #-0x40")]), Var("R30",Imm(64)), Int(1588,64))]), -Jmps([Call(Tid(697, "%000002b9"), Attrs([Attr("address","0x630"), -Attr("insn","bl #-0x40")]), Int(1,1), -(Direct(Tid(2_139, "@abort")),Direct(Tid(2_178, "%00000882"))))])), -Blk(Tid(2_178, "%00000882"), Attrs([]), Phis([]), Defs([]), -Jmps([Call(Tid(2_179, "%00000883"), Attrs([]), Int(1,1), -(Direct(Tid(2_142, "@call_weak_fn")),))]))])), Sub(Tid(2_139, "@abort"), - Attrs([Attr("noreturn","()"), Attr("c.proto","void (*)(void)"), -Attr("address","0x5F0"), Attr("stub","()")]), "abort", Args([]), -Blks([Blk(Tid(695, "@abort"), Attrs([Attr("address","0x5F0")]), Phis([]), -Defs([Def(Tid(1_716, "%000006b4"), Attrs([Attr("address","0x5F0"), -Attr("insn","adrp x16, #69632")]), Var("R16",Imm(64)), Int(69632,64)), -Def(Tid(1_723, "%000006bb"), Attrs([Attr("address","0x5F4"), -Attr("insn","ldr x17, [x16, #0x18]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(24,64)),LittleEndian(),64)), -Def(Tid(1_729, "%000006c1"), Attrs([Attr("address","0x5F8"), -Attr("insn","add x16, x16, #0x18")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(24,64)))]), Jmps([Call(Tid(1_734, "%000006c6"), - Attrs([Attr("address","0x5FC"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), Sub(Tid(2_140, "@add_six"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x728")]), - "add_six", Args([Arg(Tid(2_197, "%00000895"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("add_six_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(977, "@add_six"), - Attrs([Attr("address","0x728")]), Phis([]), Defs([Def(Tid(980, "%000003d4"), - Attrs([Attr("address","0x728"), Attr("insn","adrp x8, #69632")]), - Var("R8",Imm(64)), Int(69632,64)), Def(Tid(987, "%000003db"), - Attrs([Attr("address","0x72C"), Attr("insn","ldr w9, [x8, #0x30]")]), - Var("R9",Imm(64)), -UNSIGNED(64,Load(Var("mem",Mem(64,8)),PLUS(Var("R8",Imm(64)),Int(48,64)),LittleEndian(),32))), -Def(Tid(993, "%000003e1"), Attrs([Attr("address","0x730"), -Attr("insn","add w9, w9, #0x6")]), Var("R9",Imm(64)), -UNSIGNED(64,PLUS(Extract(31,0,Var("R9",Imm(64))),Int(6,32)))), -Def(Tid(1_001, "%000003e9"), Attrs([Attr("address","0x734"), -Attr("insn","str w9, [x8, #0x30]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R8",Imm(64)),Int(48,64)),Extract(31,0,Var("R9",Imm(64))),LittleEndian(),32))]), -Jmps([Call(Tid(1_006, "%000003ee"), Attrs([Attr("address","0x738"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))]))])), -Sub(Tid(2_141, "@add_two"), Attrs([Attr("c.proto","signed (*)(void)"), -Attr("address","0x714")]), "add_two", Args([Arg(Tid(2_198, "%00000896"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("add_two_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(946, "@add_two"), - Attrs([Attr("address","0x714")]), Phis([]), Defs([Def(Tid(949, "%000003b5"), - Attrs([Attr("address","0x714"), Attr("insn","adrp x8, #69632")]), - Var("R8",Imm(64)), Int(69632,64)), Def(Tid(956, "%000003bc"), - Attrs([Attr("address","0x718"), Attr("insn","ldr w9, [x8, #0x30]")]), - Var("R9",Imm(64)), -UNSIGNED(64,Load(Var("mem",Mem(64,8)),PLUS(Var("R8",Imm(64)),Int(48,64)),LittleEndian(),32))), -Def(Tid(962, "%000003c2"), Attrs([Attr("address","0x71C"), -Attr("insn","add w9, w9, #0x2")]), Var("R9",Imm(64)), -UNSIGNED(64,PLUS(Extract(31,0,Var("R9",Imm(64))),Int(2,32)))), -Def(Tid(970, "%000003ca"), Attrs([Attr("address","0x720"), -Attr("insn","str w9, [x8, #0x30]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R8",Imm(64)),Int(48,64)),Extract(31,0,Var("R9",Imm(64))),LittleEndian(),32))]), -Jmps([Call(Tid(975, "%000003cf"), Attrs([Attr("address","0x724"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))]))])), -Sub(Tid(2_142, "@call_weak_fn"), Attrs([Attr("c.proto","signed (*)(void)"), -Attr("address","0x634")]), "call_weak_fn", Args([Arg(Tid(2_199, "%00000897"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("call_weak_fn_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(699, "@call_weak_fn"), - Attrs([Attr("address","0x634")]), Phis([]), Defs([Def(Tid(702, "%000002be"), - Attrs([Attr("address","0x634"), Attr("insn","adrp x0, #65536")]), - Var("R0",Imm(64)), Int(65536,64)), Def(Tid(709, "%000002c5"), - Attrs([Attr("address","0x638"), Attr("insn","ldr x0, [x0, #0xfd0]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(4048,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(715, "%000002cb"), Attrs([Attr("address","0x63C"), -Attr("insn","cbz x0, #0x8")]), EQ(Var("R0",Imm(64)),Int(0,64)), -Direct(Tid(713, "%000002c9"))), Goto(Tid(2_180, "%00000884"), Attrs([]), - Int(1,1), Direct(Tid(1_488, "%000005d0")))])), Blk(Tid(713, "%000002c9"), - Attrs([Attr("address","0x644")]), Phis([]), Defs([]), -Jmps([Call(Tid(721, "%000002d1"), Attrs([Attr("address","0x644"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))])), -Blk(Tid(1_488, "%000005d0"), Attrs([Attr("address","0x640")]), Phis([]), -Defs([]), Jmps([Goto(Tid(1_491, "%000005d3"), Attrs([Attr("address","0x640"), -Attr("insn","b #-0x60")]), Int(1,1), -Direct(Tid(1_489, "@__gmon_start__")))])), Blk(Tid(1_489, "@__gmon_start__"), - Attrs([Attr("address","0x5E0")]), Phis([]), -Defs([Def(Tid(1_694, "%0000069e"), Attrs([Attr("address","0x5E0"), -Attr("insn","adrp x16, #69632")]), Var("R16",Imm(64)), Int(69632,64)), -Def(Tid(1_701, "%000006a5"), Attrs([Attr("address","0x5E4"), -Attr("insn","ldr x17, [x16, #0x10]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(16,64)),LittleEndian(),64)), -Def(Tid(1_707, "%000006ab"), Attrs([Attr("address","0x5E8"), -Attr("insn","add x16, x16, #0x10")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(16,64)))]), Jmps([Call(Tid(1_712, "%000006b0"), - Attrs([Attr("address","0x5EC"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), -Sub(Tid(2_144, "@deregister_tm_clones"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x650")]), - "deregister_tm_clones", Args([Arg(Tid(2_200, "%00000898"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("deregister_tm_clones_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(727, "@deregister_tm_clones"), - Attrs([Attr("address","0x650")]), Phis([]), Defs([Def(Tid(730, "%000002da"), - Attrs([Attr("address","0x650"), Attr("insn","adrp x0, #69632")]), - Var("R0",Imm(64)), Int(69632,64)), Def(Tid(736, "%000002e0"), - Attrs([Attr("address","0x654"), Attr("insn","add x0, x0, #0x38")]), - Var("R0",Imm(64)), PLUS(Var("R0",Imm(64)),Int(56,64))), -Def(Tid(741, "%000002e5"), Attrs([Attr("address","0x658"), -Attr("insn","adrp x1, #69632")]), Var("R1",Imm(64)), Int(69632,64)), -Def(Tid(747, "%000002eb"), Attrs([Attr("address","0x65C"), -Attr("insn","add x1, x1, #0x38")]), Var("R1",Imm(64)), -PLUS(Var("R1",Imm(64)),Int(56,64))), Def(Tid(753, "%000002f1"), - Attrs([Attr("address","0x660"), Attr("insn","cmp x1, x0")]), - Var("#1",Imm(64)), NOT(Var("R0",Imm(64)))), Def(Tid(758, "%000002f6"), - Attrs([Attr("address","0x660"), Attr("insn","cmp x1, x0")]), - Var("#2",Imm(64)), PLUS(Var("R1",Imm(64)),NOT(Var("R0",Imm(64))))), -Def(Tid(764, "%000002fc"), Attrs([Attr("address","0x660"), -Attr("insn","cmp x1, x0")]), Var("VF",Imm(1)), -NEQ(SIGNED(65,PLUS(Var("#2",Imm(64)),Int(1,64))),PLUS(PLUS(SIGNED(65,Var("R1",Imm(64))),SIGNED(65,Var("#1",Imm(64)))),Int(1,65)))), -Def(Tid(770, "%00000302"), Attrs([Attr("address","0x660"), -Attr("insn","cmp x1, x0")]), Var("CF",Imm(1)), -NEQ(UNSIGNED(65,PLUS(Var("#2",Imm(64)),Int(1,64))),PLUS(PLUS(UNSIGNED(65,Var("R1",Imm(64))),UNSIGNED(65,Var("#1",Imm(64)))),Int(1,65)))), -Def(Tid(774, "%00000306"), Attrs([Attr("address","0x660"), -Attr("insn","cmp x1, x0")]), Var("ZF",Imm(1)), -EQ(PLUS(Var("#2",Imm(64)),Int(1,64)),Int(0,64))), Def(Tid(778, "%0000030a"), - Attrs([Attr("address","0x660"), Attr("insn","cmp x1, x0")]), - Var("NF",Imm(1)), Extract(63,63,PLUS(Var("#2",Imm(64)),Int(1,64))))]), -Jmps([Goto(Tid(784, "%00000310"), Attrs([Attr("address","0x664"), -Attr("insn","b.eq #0x18")]), EQ(Var("ZF",Imm(1)),Int(1,1)), -Direct(Tid(782, "%0000030e"))), Goto(Tid(2_181, "%00000885"), Attrs([]), - Int(1,1), Direct(Tid(1_458, "%000005b2")))])), Blk(Tid(1_458, "%000005b2"), - Attrs([Attr("address","0x668")]), Phis([]), -Defs([Def(Tid(1_461, "%000005b5"), Attrs([Attr("address","0x668"), -Attr("insn","adrp x1, #65536")]), Var("R1",Imm(64)), Int(65536,64)), -Def(Tid(1_468, "%000005bc"), Attrs([Attr("address","0x66C"), -Attr("insn","ldr x1, [x1, #0xfc0]")]), Var("R1",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R1",Imm(64)),Int(4032,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(1_473, "%000005c1"), Attrs([Attr("address","0x670"), -Attr("insn","cbz x1, #0xc")]), EQ(Var("R1",Imm(64)),Int(0,64)), -Direct(Tid(782, "%0000030e"))), Goto(Tid(2_182, "%00000886"), Attrs([]), - Int(1,1), Direct(Tid(1_477, "%000005c5")))])), Blk(Tid(782, "%0000030e"), - Attrs([Attr("address","0x67C")]), Phis([]), Defs([]), -Jmps([Call(Tid(790, "%00000316"), Attrs([Attr("address","0x67C"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))])), -Blk(Tid(1_477, "%000005c5"), Attrs([Attr("address","0x674")]), Phis([]), -Defs([Def(Tid(1_481, "%000005c9"), Attrs([Attr("address","0x674"), -Attr("insn","mov x16, x1")]), Var("R16",Imm(64)), Var("R1",Imm(64)))]), -Jmps([Call(Tid(1_486, "%000005ce"), Attrs([Attr("address","0x678"), -Attr("insn","br x16")]), Int(1,1), (Indirect(Var("R16",Imm(64))),))]))])), -Sub(Tid(2_147, "@frame_dummy"), Attrs([Attr("c.proto","signed (*)(void)"), -Attr("address","0x710")]), "frame_dummy", Args([Arg(Tid(2_201, "%00000899"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("frame_dummy_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(942, "@frame_dummy"), - Attrs([Attr("address","0x710")]), Phis([]), Defs([]), -Jmps([Call(Tid(944, "%000003b0"), Attrs([Attr("address","0x710"), -Attr("insn","b #-0x90")]), Int(1,1), -(Direct(Tid(2_150, "@register_tm_clones")),))]))])), Sub(Tid(2_148, "@main"), - Attrs([Attr("c.proto","signed (*)(signed argc, const char** argv)"), -Attr("address","0x750")]), "main", Args([Arg(Tid(2_202, "%0000089a"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("main_argc",Imm(32)), -LOW(32,Var("R0",Imm(64))), In()), Arg(Tid(2_203, "%0000089b"), - Attrs([Attr("c.layout","**[char : 8]"), Attr("c.data","Top:u8 ptr ptr"), -Attr("c.type"," const char**")]), Var("main_argv",Imm(64)), -Var("R1",Imm(64)), Both()), Arg(Tid(2_204, "%0000089c"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("main_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(1_039, "@main"), - Attrs([Attr("address","0x750")]), Phis([]), -Defs([Def(Tid(1_043, "%00000413"), Attrs([Attr("address","0x750"), -Attr("insn","cmp w0, #0xb")]), Var("#4",Imm(32)), -PLUS(Extract(31,0,Var("R0",Imm(64))),Int(4294967284,32))), -Def(Tid(1_048, "%00000418"), Attrs([Attr("address","0x750"), -Attr("insn","cmp w0, #0xb")]), Var("VF",Imm(1)), -NEQ(SIGNED(33,PLUS(Var("#4",Imm(32)),Int(1,32))),PLUS(SIGNED(33,Extract(31,0,Var("R0",Imm(64)))),Int(8589934581,33)))), -Def(Tid(1_053, "%0000041d"), Attrs([Attr("address","0x750"), -Attr("insn","cmp w0, #0xb")]), Var("CF",Imm(1)), -NEQ(UNSIGNED(33,PLUS(Var("#4",Imm(32)),Int(1,32))),PLUS(UNSIGNED(33,Extract(31,0,Var("R0",Imm(64)))),Int(4294967285,33)))), -Def(Tid(1_057, "%00000421"), Attrs([Attr("address","0x750"), -Attr("insn","cmp w0, #0xb")]), Var("ZF",Imm(1)), -EQ(PLUS(Var("#4",Imm(32)),Int(1,32)),Int(0,32))), -Def(Tid(1_061, "%00000425"), Attrs([Attr("address","0x750"), -Attr("insn","cmp w0, #0xb")]), Var("NF",Imm(1)), -Extract(31,31,PLUS(Var("#4",Imm(32)),Int(1,32))))]), -Jmps([Goto(Tid(1_068, "%0000042c"), Attrs([Attr("address","0x754"), -Attr("insn","b.hi #0xc0")]), - AND(EQ(Var("CF",Imm(1)),Int(1,1)),EQ(Var("ZF",Imm(1)),Int(0,1))), -Direct(Tid(1_066, "%0000042a"))), Goto(Tid(2_183, "%00000887"), Attrs([]), - Int(1,1), Direct(Tid(1_081, "%00000439")))])), Blk(Tid(1_066, "%0000042a"), - Attrs([Attr("address","0x814")]), Phis([]), -Defs([Def(Tid(1_074, "%00000432"), Attrs([Attr("address","0x814"), -Attr("insn","mov w0, #0x1")]), Var("R0",Imm(64)), Int(1,64))]), -Jmps([Call(Tid(1_079, "%00000437"), Attrs([Attr("address","0x818"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))])), -Blk(Tid(1_081, "%00000439"), Attrs([Attr("address","0x758")]), Phis([]), -Defs([Def(Tid(1_085, "%0000043d"), Attrs([Attr("address","0x758"), -Attr("insn","mov w9, w0")]), Var("R9",Imm(64)), -UNSIGNED(64,Extract(31,0,Var("R0",Imm(64))))), Def(Tid(1_090, "%00000442"), - Attrs([Attr("address","0x75C"), Attr("insn","adrp x10, #0")]), - Var("R10",Imm(64)), Int(0,64)), Def(Tid(1_096, "%00000448"), - Attrs([Attr("address","0x760"), Attr("insn","add x10, x10, #0x834")]), - Var("R10",Imm(64)), PLUS(Var("R10",Imm(64)),Int(2100,64))), -Def(Tid(1_101, "%0000044d"), Attrs([Attr("address","0x764"), -Attr("insn","adrp x8, #69632")]), Var("R8",Imm(64)), Int(69632,64)), -Def(Tid(1_106, "%00000452"), Attrs([Attr("address","0x768"), -Attr("insn","adr x11, #0x10")]), Var("R11",Imm(64)), Int(1912,64)), -Def(Tid(1_114, "%0000045a"), Attrs([Attr("address","0x76C"), -Attr("insn","ldrb w12, [x10, x9]")]), Var("R12",Imm(64)), -UNSIGNED(64,Load(Var("mem",Mem(64,8)),PLUS(Var("R10",Imm(64)),Var("R9",Imm(64))),LittleEndian(),8))), -Def(Tid(1_121, "%00000461"), Attrs([Attr("address","0x770"), -Attr("insn","add x11, x11, x12, lsl #2")]), Var("R11",Imm(64)), -PLUS(Var("R11",Imm(64)),Concat(Extract(61,0,Var("R12",Imm(64))),Int(0,2))))]), -Jmps([Call(Tid(1_126, "%00000466"), Attrs([Attr("address","0x774"), -Attr("insn","br x11")]), Int(1,1), (Indirect(Var("R11",Imm(64))),))]))])), -Sub(Tid(2_150, "@register_tm_clones"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x680")]), - "register_tm_clones", Args([Arg(Tid(2_205, "%0000089d"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("register_tm_clones_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(792, "@register_tm_clones"), Attrs([Attr("address","0x680")]), - Phis([]), Defs([Def(Tid(795, "%0000031b"), Attrs([Attr("address","0x680"), -Attr("insn","adrp x0, #69632")]), Var("R0",Imm(64)), Int(69632,64)), -Def(Tid(801, "%00000321"), Attrs([Attr("address","0x684"), -Attr("insn","add x0, x0, #0x38")]), Var("R0",Imm(64)), -PLUS(Var("R0",Imm(64)),Int(56,64))), Def(Tid(806, "%00000326"), - Attrs([Attr("address","0x688"), Attr("insn","adrp x1, #69632")]), - Var("R1",Imm(64)), Int(69632,64)), Def(Tid(812, "%0000032c"), - Attrs([Attr("address","0x68C"), Attr("insn","add x1, x1, #0x38")]), - Var("R1",Imm(64)), PLUS(Var("R1",Imm(64)),Int(56,64))), -Def(Tid(819, "%00000333"), Attrs([Attr("address","0x690"), -Attr("insn","sub x1, x1, x0")]), Var("R1",Imm(64)), -PLUS(PLUS(Var("R1",Imm(64)),NOT(Var("R0",Imm(64)))),Int(1,64))), -Def(Tid(825, "%00000339"), Attrs([Attr("address","0x694"), -Attr("insn","lsr x2, x1, #63")]), Var("R2",Imm(64)), -Concat(Int(0,63),Extract(63,63,Var("R1",Imm(64))))), -Def(Tid(832, "%00000340"), Attrs([Attr("address","0x698"), -Attr("insn","add x1, x2, x1, asr #3")]), Var("R1",Imm(64)), -PLUS(Var("R2",Imm(64)),ARSHIFT(Var("R1",Imm(64)),Int(3,3)))), -Def(Tid(838, "%00000346"), Attrs([Attr("address","0x69C"), -Attr("insn","asr x1, x1, #1")]), Var("R1",Imm(64)), -SIGNED(64,Extract(63,1,Var("R1",Imm(64)))))]), -Jmps([Goto(Tid(844, "%0000034c"), Attrs([Attr("address","0x6A0"), -Attr("insn","cbz x1, #0x18")]), EQ(Var("R1",Imm(64)),Int(0,64)), -Direct(Tid(842, "%0000034a"))), Goto(Tid(2_184, "%00000888"), Attrs([]), - Int(1,1), Direct(Tid(1_428, "%00000594")))])), Blk(Tid(1_428, "%00000594"), - Attrs([Attr("address","0x6A4")]), Phis([]), -Defs([Def(Tid(1_431, "%00000597"), Attrs([Attr("address","0x6A4"), -Attr("insn","adrp x2, #65536")]), Var("R2",Imm(64)), Int(65536,64)), -Def(Tid(1_438, "%0000059e"), Attrs([Attr("address","0x6A8"), -Attr("insn","ldr x2, [x2, #0xfe0]")]), Var("R2",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R2",Imm(64)),Int(4064,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(1_443, "%000005a3"), Attrs([Attr("address","0x6AC"), -Attr("insn","cbz x2, #0xc")]), EQ(Var("R2",Imm(64)),Int(0,64)), -Direct(Tid(842, "%0000034a"))), Goto(Tid(2_185, "%00000889"), Attrs([]), - Int(1,1), Direct(Tid(1_447, "%000005a7")))])), Blk(Tid(842, "%0000034a"), - Attrs([Attr("address","0x6B8")]), Phis([]), Defs([]), -Jmps([Call(Tid(850, "%00000352"), Attrs([Attr("address","0x6B8"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))])), -Blk(Tid(1_447, "%000005a7"), Attrs([Attr("address","0x6B0")]), Phis([]), -Defs([Def(Tid(1_451, "%000005ab"), Attrs([Attr("address","0x6B0"), -Attr("insn","mov x16, x2")]), Var("R16",Imm(64)), Var("R2",Imm(64)))]), -Jmps([Call(Tid(1_456, "%000005b0"), Attrs([Attr("address","0x6B4"), -Attr("insn","br x16")]), Int(1,1), (Indirect(Var("R16",Imm(64))),))]))])), -Sub(Tid(2_153, "@sub_seven"), Attrs([Attr("c.proto","signed (*)(void)"), -Attr("address","0x73C")]), "sub_seven", Args([Arg(Tid(2_206, "%0000089e"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("sub_seven_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(1_008, "@sub_seven"), - Attrs([Attr("address","0x73C")]), Phis([]), -Defs([Def(Tid(1_011, "%000003f3"), Attrs([Attr("address","0x73C"), -Attr("insn","adrp x8, #69632")]), Var("R8",Imm(64)), Int(69632,64)), -Def(Tid(1_018, "%000003fa"), Attrs([Attr("address","0x740"), -Attr("insn","ldr w9, [x8, #0x30]")]), Var("R9",Imm(64)), -UNSIGNED(64,Load(Var("mem",Mem(64,8)),PLUS(Var("R8",Imm(64)),Int(48,64)),LittleEndian(),32))), -Def(Tid(1_024, "%00000400"), Attrs([Attr("address","0x744"), -Attr("insn","sub w9, w9, #0x7")]), Var("R9",Imm(64)), -UNSIGNED(64,PLUS(Extract(31,0,Var("R9",Imm(64))),Int(4294967289,32)))), -Def(Tid(1_032, "%00000408"), Attrs([Attr("address","0x748"), -Attr("insn","str w9, [x8, #0x30]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R8",Imm(64)),Int(48,64)),Extract(31,0,Var("R9",Imm(64))),LittleEndian(),32))]), -Jmps([Call(Tid(1_037, "%0000040d"), Attrs([Attr("address","0x74C"), -Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))]))]))) \ No newline at end of file diff --git a/src/test/indirect_calls/jumptable3/clang_O2/jumptable3.bir b/src/test/indirect_calls/jumptable3/clang_O2/jumptable3.bir deleted file mode 100644 index 5665a1012..000000000 --- a/src/test/indirect_calls/jumptable3/clang_O2/jumptable3.bir +++ /dev/null @@ -1,273 +0,0 @@ -0000088a: program -00000850: sub __cxa_finalize(__cxa_finalize_result) -0000088b: __cxa_finalize_result :: out u32 = low:32[R0] - -00000590: -00000688: R16 := 0x11000 -0000068f: R17 := mem[R16 + 8, el]:u64 -00000695: R16 := R16 + 8 -0000069a: call R17 with noreturn - -00000851: sub __do_global_dtors_aux(__do_global_dtors_aux_result) -0000088c: __do_global_dtors_aux_result :: out u32 = low:32[R0] - -00000356: -0000035a: #3 := R31 - 0x20 -00000360: mem := mem with [#3, el]:u64 <- R29 -00000366: mem := mem with [#3 + 8, el]:u64 <- R30 -0000036a: R31 := #3 -00000370: R29 := R31 -00000378: mem := mem with [R31 + 0x10, el]:u64 <- R19 -0000037d: R19 := 0x11000 -00000384: R0 := pad:64[mem[R19 + 0x34]] -0000038b: when 31:0[R0] <> 0 goto %00000389 -0000087f: goto %00000559 - -00000559: -0000055c: R0 := 0x10000 -00000563: R0 := mem[R0 + 0xFC8, el]:u64 -00000569: when R0 = 0 goto %00000567 -00000880: goto %00000580 - -00000580: -00000583: R0 := 0x11000 -0000058a: R0 := mem[R0 + 0x28, el]:u64 -0000058f: R30 := 0x6F0 -00000592: call @__cxa_finalize with return %00000567 - -00000567: -0000056f: R30 := 0x6F4 -00000571: call @deregister_tm_clones with return %00000573 - -00000573: -00000576: R0 := 1 -0000057e: mem := mem with [R19 + 0x34] <- 7:0[R0] -00000881: goto %00000389 - -00000389: -00000393: R19 := mem[R31 + 0x10, el]:u64 -0000039a: R29 := mem[R31, el]:u64 -0000039f: R30 := mem[R31 + 8, el]:u64 -000003a3: R31 := R31 + 0x20 -000003a8: call R30 with noreturn - -00000855: sub __libc_start_main(__libc_start_main_main, __libc_start_main_arg2, __libc_start_main_arg3, __libc_start_main_auxv, __libc_start_main_result) -0000088d: __libc_start_main_main :: in u64 = R0 -0000088e: __libc_start_main_arg2 :: in u32 = low:32[R1] -0000088f: __libc_start_main_arg3 :: in out u64 = R2 -00000890: __libc_start_main_auxv :: in out u64 = R3 -00000891: __libc_start_main_result :: out u32 = low:32[R0] - -000002af: -00000672: R16 := 0x11000 -00000679: R17 := mem[R16, el]:u64 -0000067f: R16 := R16 -00000684: call R17 with noreturn - -00000856: sub _fini(_fini_result) -00000892: _fini_result :: out u32 = low:32[R0] - -0000001f: -00000025: #0 := R31 - 0x10 -0000002b: mem := mem with [#0, el]:u64 <- R29 -00000031: mem := mem with [#0 + 8, el]:u64 <- R30 -00000035: R31 := #0 -0000003b: R29 := R31 -00000042: R29 := mem[R31, el]:u64 -00000047: R30 := mem[R31 + 8, el]:u64 -0000004b: R31 := R31 + 0x10 -00000050: call R30 with noreturn - -00000857: sub _init(_init_result) -00000893: _init_result :: out u32 = low:32[R0] - -00000770: -00000776: #6 := R31 - 0x10 -0000077c: mem := mem with [#6, el]:u64 <- R29 -00000782: mem := mem with [#6 + 8, el]:u64 <- R30 -00000786: R31 := #6 -0000078c: R29 := R31 -00000791: R30 := 0x590 -00000793: call @call_weak_fn with return %00000795 - -00000795: -0000079a: R29 := mem[R31, el]:u64 -0000079f: R30 := mem[R31 + 8, el]:u64 -000007a3: R31 := R31 + 0x10 -000007a8: call R30 with noreturn - -00000858: sub _start(_start_result) -00000894: _start_result :: out u32 = low:32[R0] - -00000270: -00000275: R29 := 0 -0000027a: R30 := 0 -00000280: R5 := R0 -00000287: R1 := mem[R31, el]:u64 -0000028d: R2 := R31 + 8 -00000293: R6 := R31 -00000298: R0 := 0x10000 -0000029f: R0 := mem[R0 + 0xFD8, el]:u64 -000002a4: R3 := 0 -000002a9: R4 := 0 -000002ae: R30 := 0x630 -000002b1: call @__libc_start_main with return %000002b3 - -000002b3: -000002b6: R30 := 0x634 -000002b9: call @abort with return %00000882 - -00000882: -00000883: call @call_weak_fn with noreturn - -0000085b: sub abort() - - -000002b7: -000006b4: R16 := 0x11000 -000006bb: R17 := mem[R16 + 0x18, el]:u64 -000006c1: R16 := R16 + 0x18 -000006c6: call R17 with noreturn - -0000085c: sub add_six(add_six_result) -00000895: add_six_result :: out u32 = low:32[R0] - -000003d1: -000003d4: R8 := 0x11000 -000003db: R9 := pad:64[mem[R8 + 0x30, el]:u32] -000003e1: R9 := pad:64[31:0[R9] + 6] -000003e9: mem := mem with [R8 + 0x30, el]:u32 <- 31:0[R9] -000003ee: call R30 with noreturn - -0000085d: sub add_two(add_two_result) -00000896: add_two_result :: out u32 = low:32[R0] - -000003b2: -000003b5: R8 := 0x11000 -000003bc: R9 := pad:64[mem[R8 + 0x30, el]:u32] -000003c2: R9 := pad:64[31:0[R9] + 2] -000003ca: mem := mem with [R8 + 0x30, el]:u32 <- 31:0[R9] -000003cf: call R30 with noreturn - -0000085e: sub call_weak_fn(call_weak_fn_result) -00000897: call_weak_fn_result :: out u32 = low:32[R0] - -000002bb: -000002be: R0 := 0x10000 -000002c5: R0 := mem[R0 + 0xFD0, el]:u64 -000002cb: when R0 = 0 goto %000002c9 -00000884: goto %000005d0 - -000002c9: -000002d1: call R30 with noreturn - -000005d0: -000005d3: goto @__gmon_start__ - -000005d1: -0000069e: R16 := 0x11000 -000006a5: R17 := mem[R16 + 0x10, el]:u64 -000006ab: R16 := R16 + 0x10 -000006b0: call R17 with noreturn - -00000860: sub deregister_tm_clones(deregister_tm_clones_result) -00000898: deregister_tm_clones_result :: out u32 = low:32[R0] - -000002d7: -000002da: R0 := 0x11000 -000002e0: R0 := R0 + 0x38 -000002e5: R1 := 0x11000 -000002eb: R1 := R1 + 0x38 -000002f1: #1 := ~R0 -000002f6: #2 := R1 + ~R0 -000002fc: VF := extend:65[#2 + 1] <> extend:65[R1] + extend:65[#1] + 1 -00000302: CF := pad:65[#2 + 1] <> pad:65[R1] + pad:65[#1] + 1 -00000306: ZF := #2 + 1 = 0 -0000030a: NF := 63:63[#2 + 1] -00000310: when ZF goto %0000030e -00000885: goto %000005b2 - -000005b2: -000005b5: R1 := 0x10000 -000005bc: R1 := mem[R1 + 0xFC0, el]:u64 -000005c1: when R1 = 0 goto %0000030e -00000886: goto %000005c5 - -0000030e: -00000316: call R30 with noreturn - -000005c5: -000005c9: R16 := R1 -000005ce: call R16 with noreturn - -00000863: sub frame_dummy(frame_dummy_result) -00000899: frame_dummy_result :: out u32 = low:32[R0] - -000003ae: -000003b0: call @register_tm_clones with noreturn - -00000864: sub main(main_argc, main_argv, main_result) -0000089a: main_argc :: in u32 = low:32[R0] -0000089b: main_argv :: in out u64 = R1 -0000089c: main_result :: out u32 = low:32[R0] - -0000040f: -00000413: #4 := 31:0[R0] - 0xC -00000418: VF := extend:33[#4 + 1] <> extend:33[31:0[R0]] - 0xB -0000041d: CF := pad:33[#4 + 1] <> pad:33[31:0[R0]] + 0xFFFFFFF5 -00000421: ZF := #4 + 1 = 0 -00000425: NF := 31:31[#4 + 1] -0000042c: when CF & ~ZF goto %0000042a -00000887: goto %00000439 - -0000042a: -00000432: R0 := 1 -00000437: call R30 with noreturn - -00000439: -0000043d: R9 := pad:64[31:0[R0]] -00000442: R10 := 0 -00000448: R10 := R10 + 0x834 -0000044d: R8 := 0x11000 -00000452: R11 := 0x778 -0000045a: R12 := pad:64[mem[R10 + R9]] -00000461: R11 := R11 + (61:0[R12].0) -00000466: call R11 with noreturn - -00000866: sub register_tm_clones(register_tm_clones_result) -0000089d: register_tm_clones_result :: out u32 = low:32[R0] - -00000318: -0000031b: R0 := 0x11000 -00000321: R0 := R0 + 0x38 -00000326: R1 := 0x11000 -0000032c: R1 := R1 + 0x38 -00000333: R1 := R1 + ~R0 + 1 -00000339: R2 := 0.63:63[R1] -00000340: R1 := R2 + (R1 ~>> 3) -00000346: R1 := extend:64[63:1[R1]] -0000034c: when R1 = 0 goto %0000034a -00000888: goto %00000594 - -00000594: -00000597: R2 := 0x10000 -0000059e: R2 := mem[R2 + 0xFE0, el]:u64 -000005a3: when R2 = 0 goto %0000034a -00000889: goto %000005a7 - -0000034a: -00000352: call R30 with noreturn - -000005a7: -000005ab: R16 := R2 -000005b0: call R16 with noreturn - -00000869: sub sub_seven(sub_seven_result) -0000089e: sub_seven_result :: out u32 = low:32[R0] - -000003f0: -000003f3: R8 := 0x11000 -000003fa: R9 := pad:64[mem[R8 + 0x30, el]:u32] -00000400: R9 := pad:64[31:0[R9] - 7] -00000408: mem := mem with [R8 + 0x30, el]:u32 <- 31:0[R9] -0000040d: call R30 with noreturn diff --git a/src/test/indirect_calls/jumptable3/clang_O2/jumptable3.gts b/src/test/indirect_calls/jumptable3/clang_O2/jumptable3.gts deleted file mode 100644 index 205fb50ee..000000000 Binary files a/src/test/indirect_calls/jumptable3/clang_O2/jumptable3.gts and /dev/null differ diff --git a/src/test/indirect_calls/jumptable3/clang_O2/jumptable3.md5sum b/src/test/indirect_calls/jumptable3/clang_O2/jumptable3.md5sum new file mode 100644 index 000000000..c48083bbe --- /dev/null +++ b/src/test/indirect_calls/jumptable3/clang_O2/jumptable3.md5sum @@ -0,0 +1,5 @@ +2139db7dfeec143aff5002a254b3908e indirect_calls/jumptable3/clang_O2/a.out +ae340649227c8f898f6f903dd11b7cf1 indirect_calls/jumptable3/clang_O2/jumptable3.adt +c4673b2c7d82cf3da4fec0ef4f970ee3 indirect_calls/jumptable3/clang_O2/jumptable3.bir +411196bcdb8d9154e3bcc0d6c8ac9692 indirect_calls/jumptable3/clang_O2/jumptable3.relf +c2799ce47612a676e0ff57e02ee1040c indirect_calls/jumptable3/clang_O2/jumptable3.gts diff --git a/src/test/indirect_calls/jumptable3/clang_O2/jumptable3.relf b/src/test/indirect_calls/jumptable3/clang_O2/jumptable3.relf deleted file mode 100644 index 50ddd57bb..000000000 --- a/src/test/indirect_calls/jumptable3/clang_O2/jumptable3.relf +++ /dev/null @@ -1,127 +0,0 @@ - -Relocation section '.rela.dyn' at offset 0x460 contains 8 entries: - Offset Info Type Symbol's Value Symbol's Name + Addend -0000000000010dc8 0000000000000403 R_AARCH64_RELATIVE 710 -0000000000010dd0 0000000000000403 R_AARCH64_RELATIVE 6c0 -0000000000010fd8 0000000000000403 R_AARCH64_RELATIVE 750 -0000000000011028 0000000000000403 R_AARCH64_RELATIVE 11028 -0000000000010fc0 0000000400000401 R_AARCH64_GLOB_DAT 0000000000000000 _ITM_deregisterTMCloneTable + 0 -0000000000010fc8 0000000500000401 R_AARCH64_GLOB_DAT 0000000000000000 __cxa_finalize@GLIBC_2.17 + 0 -0000000000010fd0 0000000600000401 R_AARCH64_GLOB_DAT 0000000000000000 __gmon_start__ + 0 -0000000000010fe0 0000000800000401 R_AARCH64_GLOB_DAT 0000000000000000 _ITM_registerTMCloneTable + 0 - -Relocation section '.rela.plt' at offset 0x520 contains 4 entries: - Offset Info Type Symbol's Value Symbol's Name + Addend -0000000000011000 0000000300000402 R_AARCH64_JUMP_SLOT 0000000000000000 __libc_start_main@GLIBC_2.34 + 0 -0000000000011008 0000000500000402 R_AARCH64_JUMP_SLOT 0000000000000000 __cxa_finalize@GLIBC_2.17 + 0 -0000000000011010 0000000600000402 R_AARCH64_JUMP_SLOT 0000000000000000 __gmon_start__ + 0 -0000000000011018 0000000700000402 R_AARCH64_JUMP_SLOT 0000000000000000 abort@GLIBC_2.17 + 0 - -Symbol table '.dynsym' contains 9 entries: - Num: Value Size Type Bind Vis Ndx Name - 0: 0000000000000000 0 NOTYPE LOCAL DEFAULT UND - 1: 0000000000000580 0 SECTION LOCAL DEFAULT 11 .init - 2: 0000000000011020 0 SECTION LOCAL DEFAULT 23 .data - 3: 0000000000000000 0 FUNC GLOBAL DEFAULT UND __libc_start_main@GLIBC_2.34 (2) - 4: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_deregisterTMCloneTable - 5: 0000000000000000 0 FUNC WEAK DEFAULT UND __cxa_finalize@GLIBC_2.17 (3) - 6: 0000000000000000 0 NOTYPE WEAK DEFAULT UND __gmon_start__ - 7: 0000000000000000 0 FUNC GLOBAL DEFAULT UND abort@GLIBC_2.17 (3) - 8: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_registerTMCloneTable - -Symbol table '.symtab' contains 94 entries: - Num: Value Size Type Bind Vis Ndx Name - 0: 0000000000000000 0 NOTYPE LOCAL DEFAULT UND - 1: 0000000000000238 0 SECTION LOCAL DEFAULT 1 .interp - 2: 0000000000000254 0 SECTION LOCAL DEFAULT 2 .note.gnu.build-id - 3: 0000000000000278 0 SECTION LOCAL DEFAULT 3 .note.ABI-tag - 4: 0000000000000298 0 SECTION LOCAL DEFAULT 4 .gnu.hash - 5: 00000000000002b8 0 SECTION LOCAL DEFAULT 5 .dynsym - 6: 0000000000000390 0 SECTION LOCAL DEFAULT 6 .dynstr - 7: 000000000000041e 0 SECTION LOCAL DEFAULT 7 .gnu.version - 8: 0000000000000430 0 SECTION LOCAL DEFAULT 8 .gnu.version_r - 9: 0000000000000460 0 SECTION LOCAL DEFAULT 9 .rela.dyn - 10: 0000000000000520 0 SECTION LOCAL DEFAULT 10 .rela.plt - 11: 0000000000000580 0 SECTION LOCAL DEFAULT 11 .init - 12: 00000000000005a0 0 SECTION LOCAL DEFAULT 12 .plt - 13: 0000000000000600 0 SECTION LOCAL DEFAULT 13 .text - 14: 000000000000081c 0 SECTION LOCAL DEFAULT 14 .fini - 15: 0000000000000830 0 SECTION LOCAL DEFAULT 15 .rodata - 16: 0000000000000840 0 SECTION LOCAL DEFAULT 16 .eh_frame_hdr - 17: 0000000000000898 0 SECTION LOCAL DEFAULT 17 .eh_frame - 18: 0000000000010dc8 0 SECTION LOCAL DEFAULT 18 .init_array - 19: 0000000000010dd0 0 SECTION LOCAL DEFAULT 19 .fini_array - 20: 0000000000010dd8 0 SECTION LOCAL DEFAULT 20 .dynamic - 21: 0000000000010fb8 0 SECTION LOCAL DEFAULT 21 .got - 22: 0000000000010fe8 0 SECTION LOCAL DEFAULT 22 .got.plt - 23: 0000000000011020 0 SECTION LOCAL DEFAULT 23 .data - 24: 0000000000011034 0 SECTION LOCAL DEFAULT 24 .bss - 25: 0000000000000000 0 SECTION LOCAL DEFAULT 25 .comment - 26: 0000000000000000 0 FILE LOCAL DEFAULT ABS Scrt1.o - 27: 0000000000000278 0 NOTYPE LOCAL DEFAULT 3 $d - 28: 0000000000000278 32 OBJECT LOCAL DEFAULT 3 __abi_tag - 29: 0000000000000600 0 NOTYPE LOCAL DEFAULT 13 $x - 30: 00000000000008ac 0 NOTYPE LOCAL DEFAULT 17 $d - 31: 0000000000000830 0 NOTYPE LOCAL DEFAULT 15 $d - 32: 0000000000000000 0 FILE LOCAL DEFAULT ABS crti.o - 33: 0000000000000634 0 NOTYPE LOCAL DEFAULT 13 $x - 34: 0000000000000634 20 FUNC LOCAL DEFAULT 13 call_weak_fn - 35: 0000000000000580 0 NOTYPE LOCAL DEFAULT 11 $x - 36: 000000000000081c 0 NOTYPE LOCAL DEFAULT 14 $x - 37: 0000000000000000 0 FILE LOCAL DEFAULT ABS crtn.o - 38: 0000000000000590 0 NOTYPE LOCAL DEFAULT 11 $x - 39: 0000000000000828 0 NOTYPE LOCAL DEFAULT 14 $x - 40: 0000000000000000 0 FILE LOCAL DEFAULT ABS crtstuff.c - 41: 0000000000000650 0 NOTYPE LOCAL DEFAULT 13 $x - 42: 0000000000000650 0 FUNC LOCAL DEFAULT 13 deregister_tm_clones - 43: 0000000000000680 0 FUNC LOCAL DEFAULT 13 register_tm_clones - 44: 0000000000011028 0 NOTYPE LOCAL DEFAULT 23 $d - 45: 00000000000006c0 0 FUNC LOCAL DEFAULT 13 __do_global_dtors_aux - 46: 0000000000011034 1 OBJECT LOCAL DEFAULT 24 completed.0 - 47: 0000000000010dd0 0 NOTYPE LOCAL DEFAULT 19 $d - 48: 0000000000010dd0 0 OBJECT LOCAL DEFAULT 19 __do_global_dtors_aux_fini_array_entry - 49: 0000000000000710 0 FUNC LOCAL DEFAULT 13 frame_dummy - 50: 0000000000010dc8 0 NOTYPE LOCAL DEFAULT 18 $d - 51: 0000000000010dc8 0 OBJECT LOCAL DEFAULT 18 __frame_dummy_init_array_entry - 52: 00000000000008c0 0 NOTYPE LOCAL DEFAULT 17 $d - 53: 0000000000011034 0 NOTYPE LOCAL DEFAULT 24 $d - 54: 0000000000000000 0 FILE LOCAL DEFAULT ABS jumptable3.c - 55: 0000000000000714 0 NOTYPE LOCAL DEFAULT 13 $x.0 - 56: 0000000000000834 0 NOTYPE LOCAL DEFAULT 15 $d.1 - 57: 0000000000011030 0 NOTYPE LOCAL DEFAULT 23 $d.2 - 58: 000000000000002a 0 NOTYPE LOCAL DEFAULT 25 $d.3 - 59: 0000000000000920 0 NOTYPE LOCAL DEFAULT 17 $d.4 - 60: 0000000000000000 0 FILE LOCAL DEFAULT ABS crtstuff.c - 61: 0000000000000984 0 NOTYPE LOCAL DEFAULT 17 $d - 62: 0000000000000984 0 OBJECT LOCAL DEFAULT 17 __FRAME_END__ - 63: 0000000000000000 0 FILE LOCAL DEFAULT ABS - 64: 0000000000010dd8 0 OBJECT LOCAL DEFAULT ABS _DYNAMIC - 65: 0000000000000840 0 NOTYPE LOCAL DEFAULT 16 __GNU_EH_FRAME_HDR - 66: 0000000000010fb8 0 OBJECT LOCAL DEFAULT ABS _GLOBAL_OFFSET_TABLE_ - 67: 00000000000005a0 0 NOTYPE LOCAL DEFAULT 12 $x - 68: 0000000000000000 0 FUNC GLOBAL DEFAULT UND __libc_start_main@GLIBC_2.34 - 69: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_deregisterTMCloneTable - 70: 0000000000011020 0 NOTYPE WEAK DEFAULT 23 data_start - 71: 0000000000011034 0 NOTYPE GLOBAL DEFAULT 24 __bss_start__ - 72: 0000000000000000 0 FUNC WEAK DEFAULT UND __cxa_finalize@GLIBC_2.17 - 73: 0000000000011038 0 NOTYPE GLOBAL DEFAULT 24 _bss_end__ - 74: 0000000000011034 0 NOTYPE GLOBAL DEFAULT 23 _edata - 75: 0000000000011030 4 OBJECT GLOBAL DEFAULT 23 x - 76: 000000000000081c 0 FUNC GLOBAL HIDDEN 14 _fini - 77: 0000000000011038 0 NOTYPE GLOBAL DEFAULT 24 __bss_end__ - 78: 0000000000011020 0 NOTYPE GLOBAL DEFAULT 23 __data_start - 79: 0000000000000000 0 NOTYPE WEAK DEFAULT UND __gmon_start__ - 80: 0000000000011028 0 OBJECT GLOBAL HIDDEN 23 __dso_handle - 81: 0000000000000000 0 FUNC GLOBAL DEFAULT UND abort@GLIBC_2.17 - 82: 0000000000000830 4 OBJECT GLOBAL DEFAULT 15 _IO_stdin_used - 83: 0000000000000714 20 FUNC GLOBAL DEFAULT 13 add_two - 84: 0000000000011038 0 NOTYPE GLOBAL DEFAULT 24 _end - 85: 0000000000000600 52 FUNC GLOBAL DEFAULT 13 _start - 86: 0000000000011038 0 NOTYPE GLOBAL DEFAULT 24 __end__ - 87: 0000000000000728 20 FUNC GLOBAL DEFAULT 13 add_six - 88: 0000000000011034 0 NOTYPE GLOBAL DEFAULT 24 __bss_start - 89: 0000000000000750 204 FUNC GLOBAL DEFAULT 13 main - 90: 0000000000011038 0 OBJECT GLOBAL HIDDEN 23 __TMC_END__ - 91: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_registerTMCloneTable - 92: 0000000000000580 0 FUNC GLOBAL HIDDEN 11 _init - 93: 000000000000073c 20 FUNC GLOBAL DEFAULT 13 sub_seven diff --git a/src/test/indirect_calls/switch2/clang/switch2.adt b/src/test/indirect_calls/switch2/clang/switch2.adt deleted file mode 100644 index 4f5c5ee97..000000000 --- a/src/test/indirect_calls/switch2/clang/switch2.adt +++ /dev/null @@ -1,621 +0,0 @@ -Project(Attrs([Attr("filename","\"clang/switch2.out\""), -Attr("image-specification","(declare abi (name str))\n(declare arch (name str))\n(declare base-address (addr int))\n(declare bias (off int))\n(declare bits (size int))\n(declare code-region (addr int) (size int) (off int))\n(declare code-start (addr int))\n(declare entry-point (addr int))\n(declare external-reference (addr int) (name str))\n(declare format (name str))\n(declare is-executable (flag bool))\n(declare is-little-endian (flag bool))\n(declare llvm:base-address (addr int))\n(declare llvm:code-entry (name str) (off int) (size int))\n(declare llvm:coff-import-library (name str))\n(declare llvm:coff-virtual-section-header (name str) (addr int) (size int))\n(declare llvm:elf-program-header (name str) (off int) (size int))\n(declare llvm:elf-program-header-flags (name str) (ld bool) (r bool) \n (w bool) (x bool))\n(declare llvm:elf-virtual-program-header (name str) (addr int) (size int))\n(declare llvm:entry-point (addr int))\n(declare llvm:macho-symbol (name str) (value int))\n(declare llvm:name-reference (at int) (name str))\n(declare llvm:relocation (at int) (addr int))\n(declare llvm:section-entry (name str) (addr int) (size int) (off int))\n(declare llvm:section-flags (name str) (r bool) (w bool) (x bool))\n(declare llvm:segment-command (name str) (off int) (size int))\n(declare llvm:segment-command-flags (name str) (r bool) (w bool) (x bool))\n(declare llvm:symbol-entry (name str) (addr int) (size int) (off int)\n (value int))\n(declare llvm:virtual-segment-command (name str) (addr int) (size int))\n(declare mapped (addr int) (size int) (off int))\n(declare named-region (addr int) (size int) (name str))\n(declare named-symbol (addr int) (name str))\n(declare require (name str))\n(declare section (addr int) (size int))\n(declare segment (addr int) (size int) (r bool) (w bool) (x bool))\n(declare subarch (name str))\n(declare symbol-chunk (addr int) (size int) (root int))\n(declare symbol-value (addr int) (value int))\n(declare system (name str))\n(declare vendor (name str))\n\n(abi unknown)\n(arch aarch64)\n(base-address 0)\n(bias 0)\n(bits 64)\n(code-region 1980 20 1980)\n(code-region 1536 444 1536)\n(code-region 1440 96 1440)\n(code-region 1408 24 1408)\n(code-start 1588)\n(code-start 1812)\n(code-start 1536)\n(code-start 1820)\n(entry-point 1536)\n(external-reference 69568 _ITM_deregisterTMCloneTable)\n(external-reference 69576 __cxa_finalize)\n(external-reference 69584 __gmon_start__)\n(external-reference 69600 _ITM_registerTMCloneTable)\n(external-reference 69632 __libc_start_main)\n(external-reference 69640 __cxa_finalize)\n(external-reference 69648 __gmon_start__)\n(external-reference 69656 abort)\n(format elf)\n(is-executable true)\n(is-little-endian true)\n(llvm:base-address 0)\n(llvm:code-entry abort 0 0)\n(llvm:code-entry __cxa_finalize 0 0)\n(llvm:code-entry __libc_start_main 0 0)\n(llvm:code-entry _init 1408 0)\n(llvm:code-entry main 1820 160)\n(llvm:code-entry _start 1536 52)\n(llvm:code-entry abort@GLIBC_2.17 0 0)\n(llvm:code-entry _fini 1980 0)\n(llvm:code-entry r 1812 8)\n(llvm:code-entry __cxa_finalize@GLIBC_2.17 0 0)\n(llvm:code-entry __libc_start_main@GLIBC_2.34 0 0)\n(llvm:code-entry frame_dummy 1808 0)\n(llvm:code-entry __do_global_dtors_aux 1728 0)\n(llvm:code-entry register_tm_clones 1664 0)\n(llvm:code-entry deregister_tm_clones 1616 0)\n(llvm:code-entry call_weak_fn 1588 20)\n(llvm:code-entry .fini 1980 20)\n(llvm:code-entry .text 1536 444)\n(llvm:code-entry .plt 1440 96)\n(llvm:code-entry .init 1408 24)\n(llvm:elf-program-header 08 3528 568)\n(llvm:elf-program-header 07 0 0)\n(llvm:elf-program-header 06 2024 68)\n(llvm:elf-program-header 05 596 68)\n(llvm:elf-program-header 04 3544 480)\n(llvm:elf-program-header 03 3528 616)\n(llvm:elf-program-header 02 0 2316)\n(llvm:elf-program-header 01 568 27)\n(llvm:elf-program-header 00 64 504)\n(llvm:elf-program-header-flags 08 false true false false)\n(llvm:elf-program-header-flags 07 false true true false)\n(llvm:elf-program-header-flags 06 false true false false)\n(llvm:elf-program-header-flags 05 false true false false)\n(llvm:elf-program-header-flags 04 false true true false)\n(llvm:elf-program-header-flags 03 true true true false)\n(llvm:elf-program-header-flags 02 true true false true)\n(llvm:elf-program-header-flags 01 false true false false)\n(llvm:elf-program-header-flags 00 false true false false)\n(llvm:elf-virtual-program-header 08 69064 568)\n(llvm:elf-virtual-program-header 07 0 0)\n(llvm:elf-virtual-program-header 06 2024 68)\n(llvm:elf-virtual-program-header 05 596 68)\n(llvm:elf-virtual-program-header 04 69080 480)\n(llvm:elf-virtual-program-header 03 69064 624)\n(llvm:elf-virtual-program-header 02 0 2316)\n(llvm:elf-virtual-program-header 01 568 27)\n(llvm:elf-virtual-program-header 00 64 504)\n(llvm:entry-point 1536)\n(llvm:name-reference 69656 abort)\n(llvm:name-reference 69648 __gmon_start__)\n(llvm:name-reference 69640 __cxa_finalize)\n(llvm:name-reference 69632 __libc_start_main)\n(llvm:name-reference 69600 _ITM_registerTMCloneTable)\n(llvm:name-reference 69584 __gmon_start__)\n(llvm:name-reference 69576 __cxa_finalize)\n(llvm:name-reference 69568 _ITM_deregisterTMCloneTable)\n(llvm:section-entry .shstrtab 0 259 6941)\n(llvm:section-entry .strtab 0 565 6376)\n(llvm:section-entry .symtab 0 2160 4216)\n(llvm:section-entry .comment 0 71 4144)\n(llvm:section-entry .bss 69680 8 4144)\n(llvm:section-entry .data 69664 16 4128)\n(llvm:section-entry .got.plt 69608 56 4072)\n(llvm:section-entry .got 69560 48 4024)\n(llvm:section-entry .dynamic 69080 480 3544)\n(llvm:section-entry .fini_array 69072 8 3536)\n(llvm:section-entry .init_array 69064 8 3528)\n(llvm:section-entry .eh_frame 2096 220 2096)\n(llvm:section-entry .eh_frame_hdr 2024 68 2024)\n(llvm:section-entry .rodata 2000 24 2000)\n(llvm:section-entry .fini 1980 20 1980)\n(llvm:section-entry .text 1536 444 1536)\n(llvm:section-entry .plt 1440 96 1440)\n(llvm:section-entry .init 1408 24 1408)\n(llvm:section-entry .rela.plt 1312 96 1312)\n(llvm:section-entry .rela.dyn 1120 192 1120)\n(llvm:section-entry .gnu.version_r 1072 48 1072)\n(llvm:section-entry .gnu.version 1054 18 1054)\n(llvm:section-entry .dynstr 912 141 912)\n(llvm:section-entry .dynsym 696 216 696)\n(llvm:section-entry .gnu.hash 664 28 664)\n(llvm:section-entry .note.ABI-tag 632 32 632)\n(llvm:section-entry .note.gnu.build-id 596 36 596)\n(llvm:section-entry .interp 568 27 568)\n(llvm:section-flags .shstrtab true false false)\n(llvm:section-flags .strtab true false false)\n(llvm:section-flags .symtab true false false)\n(llvm:section-flags .comment true false false)\n(llvm:section-flags .bss true true false)\n(llvm:section-flags .data true true false)\n(llvm:section-flags .got.plt true true false)\n(llvm:section-flags .got true true false)\n(llvm:section-flags .dynamic true true false)\n(llvm:section-flags .fini_array true true false)\n(llvm:section-flags .init_array true true false)\n(llvm:section-flags .eh_frame true false false)\n(llvm:section-flags .eh_frame_hdr true false false)\n(llvm:section-flags .rodata true false false)\n(llvm:section-flags .fini true false true)\n(llvm:section-flags .text true false true)\n(llvm:section-flags .plt true false true)\n(llvm:section-flags .init true false true)\n(llvm:section-flags .rela.plt true false false)\n(llvm:section-flags .rela.dyn true false false)\n(llvm:section-flags .gnu.version_r true false false)\n(llvm:section-flags .gnu.version true false false)\n(llvm:section-flags .dynstr true false false)\n(llvm:section-flags .dynsym true false false)\n(llvm:section-flags .gnu.hash true false false)\n(llvm:section-flags .note.ABI-tag true false false)\n(llvm:section-flags .note.gnu.build-id true false false)\n(llvm:section-flags .interp true false false)\n(llvm:symbol-entry abort 0 0 0 0)\n(llvm:symbol-entry __cxa_finalize 0 0 0 0)\n(llvm:symbol-entry __libc_start_main 0 0 0 0)\n(llvm:symbol-entry _init 1408 0 1408 1408)\n(llvm:symbol-entry main 1820 160 1820 1820)\n(llvm:symbol-entry _start 1536 52 1536 1536)\n(llvm:symbol-entry abort@GLIBC_2.17 0 0 0 0)\n(llvm:symbol-entry _fini 1980 0 1980 1980)\n(llvm:symbol-entry r 1812 8 1812 1812)\n(llvm:symbol-entry __cxa_finalize@GLIBC_2.17 0 0 0 0)\n(llvm:symbol-entry __libc_start_main@GLIBC_2.34 0 0 0 0)\n(llvm:symbol-entry frame_dummy 1808 0 1808 1808)\n(llvm:symbol-entry __do_global_dtors_aux 1728 0 1728 1728)\n(llvm:symbol-entry register_tm_clones 1664 0 1664 1664)\n(llvm:symbol-entry deregister_tm_clones 1616 0 1616 1616)\n(llvm:symbol-entry call_weak_fn 1588 20 1588 1588)\n(mapped 0 2316 0)\n(mapped 69064 616 3528)\n(named-region 0 2316 02)\n(named-region 69064 624 03)\n(named-region 568 27 .interp)\n(named-region 596 36 .note.gnu.build-id)\n(named-region 632 32 .note.ABI-tag)\n(named-region 664 28 .gnu.hash)\n(named-region 696 216 .dynsym)\n(named-region 912 141 .dynstr)\n(named-region 1054 18 .gnu.version)\n(named-region 1072 48 .gnu.version_r)\n(named-region 1120 192 .rela.dyn)\n(named-region 1312 96 .rela.plt)\n(named-region 1408 24 .init)\n(named-region 1440 96 .plt)\n(named-region 1536 444 .text)\n(named-region 1980 20 .fini)\n(named-region 2000 24 .rodata)\n(named-region 2024 68 .eh_frame_hdr)\n(named-region 2096 220 .eh_frame)\n(named-region 69064 8 .init_array)\n(named-region 69072 8 .fini_array)\n(named-region 69080 480 .dynamic)\n(named-region 69560 48 .got)\n(named-region 69608 56 .got.plt)\n(named-region 69664 16 .data)\n(named-region 69680 8 .bss)\n(named-region 0 71 .comment)\n(named-region 0 2160 .symtab)\n(named-region 0 565 .strtab)\n(named-region 0 259 .shstrtab)\n(named-symbol 1588 call_weak_fn)\n(named-symbol 1616 deregister_tm_clones)\n(named-symbol 1664 register_tm_clones)\n(named-symbol 1728 __do_global_dtors_aux)\n(named-symbol 1808 frame_dummy)\n(named-symbol 0 __libc_start_main@GLIBC_2.34)\n(named-symbol 0 __cxa_finalize@GLIBC_2.17)\n(named-symbol 1812 r)\n(named-symbol 1980 _fini)\n(named-symbol 0 abort@GLIBC_2.17)\n(named-symbol 1536 _start)\n(named-symbol 1820 main)\n(named-symbol 1408 _init)\n(named-symbol 0 __libc_start_main)\n(named-symbol 0 __cxa_finalize)\n(named-symbol 0 abort)\n(require libc.so.6)\n(section 568 27)\n(section 596 36)\n(section 632 32)\n(section 664 28)\n(section 696 216)\n(section 912 141)\n(section 1054 18)\n(section 1072 48)\n(section 1120 192)\n(section 1312 96)\n(section 1408 24)\n(section 1440 96)\n(section 1536 444)\n(section 1980 20)\n(section 2000 24)\n(section 2024 68)\n(section 2096 220)\n(section 69064 8)\n(section 69072 8)\n(section 69080 480)\n(section 69560 48)\n(section 69608 56)\n(section 69664 16)\n(section 69680 8)\n(section 0 71)\n(section 0 2160)\n(section 0 565)\n(section 0 259)\n(segment 0 2316 true false true)\n(segment 69064 624 true true false)\n(subarch v8)\n(symbol-chunk 1588 20 1588)\n(symbol-chunk 1812 8 1812)\n(symbol-chunk 1536 52 1536)\n(symbol-chunk 1820 160 1820)\n(symbol-value 1588 1588)\n(symbol-value 1616 1616)\n(symbol-value 1664 1664)\n(symbol-value 1728 1728)\n(symbol-value 1808 1808)\n(symbol-value 1812 1812)\n(symbol-value 1980 1980)\n(symbol-value 1536 1536)\n(symbol-value 1820 1820)\n(symbol-value 1408 1408)\n(symbol-value 0 0)\n(system \"\")\n(vendor \"\")\n"), -Attr("abi-name","\"aarch64-linux-gnu-elf\"")]), -Sections([Section(".shstrtab", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x00\x06\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x20\x1c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x38\x00\x09\x00\x40\x00\x1d\x00\x1c\x00\x06\x00\x00\x00\x04\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x04\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x0c\x09\x00\x00\x00\x00\x00\x00\x0c\x09\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x01\x00\x00\x00\x06\x00\x00\x00\xc8\x0d\x00\x00\x00\x00\x00\x00\xc8\x0d\x01\x00\x00\x00\x00\x00\xc8\x0d\x01"), -Section(".strtab", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x00\x06\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x20\x1c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x38\x00\x09\x00\x40\x00\x1d\x00\x1c\x00\x06\x00\x00\x00\x04\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x04\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x0c\x09\x00\x00\x00\x00\x00\x00\x0c\x09\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x01\x00\x00\x00\x06\x00\x00\x00\xc8\x0d\x00\x00\x00\x00\x00\x00\xc8\x0d\x01\x00\x00\x00\x00\x00\xc8\x0d\x01\x00\x00\x00\x00\x00\x68\x02\x00\x00\x00\x00\x00\x00\x70\x02\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x02\x00\x00\x00\x06\x00\x00\x00\xd8\x0d\x00\x00\x00\x00\x00\x00\xd8\x0d\x01\x00\x00\x00\x00\x00\xd8\x0d\x01\x00\x00\x00\x00\x00\xe0\x01\x00\x00\x00\x00\x00\x00\xe0\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x04\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x50\xe5\x74\x64\x04\x00\x00\x00\xe8\x07\x00\x00\x00\x00\x00\x00\xe8\x07\x00\x00\x00\x00\x00\x00\xe8\x07\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x51\xe5\x74\x64\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x52\xe5\x74\x64\x04\x00\x00\x00\xc8\x0d\x00\x00\x00\x00\x00\x00\xc8\x0d\x01\x00\x00\x00\x00\x00\xc8\x0d\x01\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00"), -Section(".symtab", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x00\x06\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x20\x1c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x38\x00\x09\x00\x40\x00\x1d\x00\x1c\x00\x06\x00\x00\x00\x04\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x04\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x0c\x09\x00\x00\x00\x00\x00\x00\x0c\x09\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x01\x00\x00\x00\x06\x00\x00\x00\xc8\x0d\x00\x00\x00\x00\x00\x00\xc8\x0d\x01\x00\x00\x00\x00\x00\xc8\x0d\x01\x00\x00\x00\x00\x00\x68\x02\x00\x00\x00\x00\x00\x00\x70\x02\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x02\x00\x00\x00\x06\x00\x00\x00\xd8\x0d\x00\x00\x00\x00\x00\x00\xd8\x0d\x01\x00\x00\x00\x00\x00\xd8\x0d\x01\x00\x00\x00\x00\x00\xe0\x01\x00\x00\x00\x00\x00\x00\xe0\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x04\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x50\xe5\x74\x64\x04\x00\x00\x00\xe8\x07\x00\x00\x00\x00\x00\x00\xe8\x07\x00\x00\x00\x00\x00\x00\xe8\x07\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x51\xe5\x74\x64\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x52\xe5\x74\x64\x04\x00\x00\x00\xc8\x0d\x00\x00\x00\x00\x00\x00\xc8\x0d\x01\x00\x00\x00\x00\x00\xc8\x0d\x01\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x2f\x6c\x69\x62\x2f\x6c\x64\x2d\x6c\x69\x6e\x75\x78\x2d\x61\x61\x72\x63\x68\x36\x34\x2e\x73\x6f\x2e\x31\x00\x00\x04\x00\x00\x00\x14\x00\x00\x00\x03\x00\x00\x00\x47\x4e\x55\x00\x93\xe9\x69\x4e\xcf\x22\x52\x66\xf8\xd2\x33\xab\xc0\xc5\x60\x1b\x26\x1f\xa6\x44\x04\x00\x00\x00\x10\x00\x00\x00\x01\x00\x00\x00\x47\x4e\x55\x00\x00\x00\x00\x00\x03\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x01\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x0b\x00\x80\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x17\x00\x20\x10\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x48\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x22\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x22\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x73\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5f\x5f\x63\x78\x61\x5f\x66\x69\x6e\x61\x6c\x69\x7a\x65\x00\x5f\x5f\x6c\x69\x62\x63\x5f\x73\x74\x61\x72\x74\x5f\x6d\x61\x69\x6e\x00\x61\x62\x6f\x72\x74\x00\x6c\x69\x62\x63\x2e\x73\x6f\x2e\x36\x00\x47\x4c\x49\x42\x43\x5f\x32\x2e\x31\x37\x00\x47\x4c\x49\x42\x43\x5f\x32\x2e\x33\x34\x00\x5f\x49\x54\x4d\x5f\x64\x65\x72\x65\x67\x69\x73\x74\x65\x72\x54\x4d\x43\x6c\x6f\x6e\x65\x54\x61\x62\x6c\x65\x00\x5f\x5f\x67\x6d\x6f\x6e\x5f\x73\x74\x61\x72\x74\x5f\x5f\x00\x5f\x49\x54\x4d\x5f\x72\x65\x67\x69\x73\x74\x65\x72\x54\x4d\x43\x6c\x6f\x6e\x65\x54\x61\x62\x6c\x65\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x01\x00\x03\x00\x01\x00\x03\x00\x01\x00\x01\x00\x02\x00\x28\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x97\x91\x96\x06\x00\x00\x03\x00\x32\x00\x00\x00\x10\x00\x00\x00\xb4\x91\x96\x06\x00\x00\x02\x00\x3d\x00\x00\x00\x00\x00\x00\x00\xc8\x0d\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x10\x07\x00\x00\x00\x00\x00\x00\xd0\x0d\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\xc0\x06\x00\x00\x00\x00\x00\x00\xd8\x0f\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x1c\x07\x00\x00\x00\x00\x00\x00\x28\x10\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x28\x10\x01\x00\x00\x00\x00\x00\xc0\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xc8\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xd0\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe0\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x08\x10\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x10\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x18\x10\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1f\x20\x03\xd5\xfd\x7b\xbf\xa9\xfd\x03\x00\x91\x2a\x00\x00\x94\xfd\x7b\xc1\xa8\xc0\x03\x5f\xd6\x00\x00\x00\x00\x00\x00\x00\x00\xf0\x7b\xbf\xa9\x90\x00\x00\x90\x11\xfe\x47\xf9\x10\xe2\x3f\x91\x20\x02\x1f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x90\x00\x00\xb0\x11\x02\x40\xf9\x10\x02\x00\x91\x20\x02\x1f\xd6\x90\x00\x00\xb0\x11\x06\x40\xf9\x10\x22\x00\x91\x20\x02\x1f\xd6\x90\x00\x00\xb0\x11\x0a\x40\xf9\x10\x42\x00\x91\x20\x02\x1f\xd6\x90\x00\x00\xb0\x11\x0e\x40\xf9\x10\x62\x00\x91\x20\x02\x1f\xd6\x1f\x20\x03\xd5\x1d\x00\x80\xd2\x1e\x00\x80\xd2\xe5\x03\x00\xaa\xe1\x03\x40\xf9\xe2\x23\x00\x91\xe6\x03\x00\x91\x80\x00\x00\x90\x00\xec\x47\xf9\x03\x00\x80\xd2\x04\x00\x80\xd2\xe5\xff\xff\x97\xf0\xff\xff\x97\x80\x00\x00\x90\x00\xe8\x47\xf9\x40\x00\x00\xb4\xe8\xff\xff\x17\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x80\x00\x00\xb0\x00\xc0\x00\x91\x81\x00\x00\xb0\x21\xc0\x00\x91\x3f\x00\x00\xeb\xc0\x00\x00\x54\x81\x00\x00\x90\x21\xe0\x47\xf9\x61\x00\x00\xb4\xf0\x03\x01\xaa\x00\x02\x1f\xd6\xc0\x03\x5f\xd6\x80\x00\x00\xb0\x00\xc0\x00\x91\x81\x00\x00\xb0\x21\xc0\x00\x91\x21\x00\x00\xcb\x22\xfc\x7f\xd3\x41\x0c\x81\x8b\x21\xfc\x41\x93\xc1\x00\x00\xb4\x82\x00\x00\x90\x42\xf0\x47\xf9\x62\x00\x00\xb4\xf0\x03\x02\xaa\x00\x02\x1f\xd6\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\xfd\x7b\xbe\xa9\xfd\x03\x00\x91\xf3\x0b\x00\xf9\x93\x00\x00\xb0\x60\xc2\x40\x39\x40\x01\x00\x35\x80\x00\x00\x90\x00\xe4\x47\xf9\x80\x00\x00\xb4\x80\x00\x00\xb0\x00\x14\x40\xf9\xb9\xff\xff\x97\xd8\xff\xff\x97\x20\x00\x80\x52\x60\xc2\x00\x39\xf3\x0b\x40\xf9\xfd\x7b\xc2\xa8\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\xdc\xff\xff\x17\x20\x00\x80\x52\xc0\x03\x5f\xd6\xff\xc3\x00\xd1\xfd\x7b\x02\xa9\xfd\x83\x00\x91\xa0\xc3\x1f\xb8\xe1\x0b\x00\xf9\xff\x0f\x00\xb9\xa8\xc3\x5f\xb8\x08\x05\x00\x71\xe8\x03\x00\xf9\x08\x11\x00\xf1\xe8\x97\x9f\x1a\xe8\x02\x00\x37\xeb\x03\x40\xf9\x0a\x00\x00\x90\x4a\x51\x1f\x91\x08\x00\x00\x10\x49\x79\xab\xb8\x08\x01\x09\x8b\x00\x01\x1f\xd6\xeb\xff\xff\x97\xe0\x0f\x00\xb9\x01\x00\x00\x14\x28\x00\x80\x52\xe8\x0f\x00\xb9\x0d\x00\x00\x14\x48\x00\x80\x52\xe8\x0f\x00\xb9\x01\x00\x00\x14\x68\x00\x80\x52\xe8\x0f\x00\xb9\x07\x00\x00\x14\x88\x00\x80\x52\xe8\x0f\x00\xb9\x01\x00\x00\x14\xa8\x00\x80\x52\xe8\x0f\x00\xb9\x01\x00\x00\x14\xfd\x7b\x42\xa9\xff\xc3\x00\x91\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\xfd\x7b\xbf\xa9\xfd\x03\x00\x91\xfd\x7b\xc1\xa8\xc0\x03\x5f\xd6\x01\x00\x02\x00\x1c\x00\x00\x00\x28\x00\x00\x00\x10\x00\x00\x00\x34\x00\x00\x00\x40\x00\x00\x00\x01\x1b\x03\x3b\x44\x00\x00\x00\x07\x00\x00\x00\x18\xfe\xff\xff\x5c\x00\x00\x00\x68\xfe\xff\xff\x70\x00\x00\x00\x98\xfe\xff\xff\x84\x00\x00\x00\xd8\xfe\xff\xff\x98\x00\x00\x00\x28\xff\xff\xff\xbc\x00\x00\x00\x2c\xff\xff\xff\xe4\x00\x00\x00\x34\xff\xff\xff\xf8\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x01\x7a\x52\x00\x04\x78\x1e\x01\x1b\x0c\x1f\x00\x10\x00\x00\x00\x18\x00\x00\x00\xb4\xfd\xff\xff\x34\x00\x00\x00\x00\x41\x07\x1e\x10\x00\x00\x00\x2c\x00\x00\x00\xf0\xfd\xff\xff\x30\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00"), -Section(".comment", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x00\x06\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x20\x1c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x38\x00\x09\x00\x40\x00\x1d\x00\x1c\x00\x06\x00\x00\x00\x04\x00\x00"), -Section(".interp", 0x238, "\x2f\x6c\x69\x62\x2f\x6c\x64\x2d\x6c\x69\x6e\x75\x78\x2d\x61\x61\x72\x63\x68\x36\x34\x2e\x73\x6f\x2e\x31\x00"), -Section(".note.gnu.build-id", 0x254, "\x04\x00\x00\x00\x14\x00\x00\x00\x03\x00\x00\x00\x47\x4e\x55\x00\x93\xe9\x69\x4e\xcf\x22\x52\x66\xf8\xd2\x33\xab\xc0\xc5\x60\x1b\x26\x1f\xa6\x44"), -Section(".note.ABI-tag", 0x278, "\x04\x00\x00\x00\x10\x00\x00\x00\x01\x00\x00\x00\x47\x4e\x55\x00\x00\x00\x00\x00\x03\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00"), -Section(".gnu.hash", 0x298, "\x01\x00\x00\x00\x01\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".dynsym", 0x2B8, "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x0b\x00\x80\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x17\x00\x20\x10\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x48\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x22\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x22\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x73\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".dynstr", 0x390, "\x00\x5f\x5f\x63\x78\x61\x5f\x66\x69\x6e\x61\x6c\x69\x7a\x65\x00\x5f\x5f\x6c\x69\x62\x63\x5f\x73\x74\x61\x72\x74\x5f\x6d\x61\x69\x6e\x00\x61\x62\x6f\x72\x74\x00\x6c\x69\x62\x63\x2e\x73\x6f\x2e\x36\x00\x47\x4c\x49\x42\x43\x5f\x32\x2e\x31\x37\x00\x47\x4c\x49\x42\x43\x5f\x32\x2e\x33\x34\x00\x5f\x49\x54\x4d\x5f\x64\x65\x72\x65\x67\x69\x73\x74\x65\x72\x54\x4d\x43\x6c\x6f\x6e\x65\x54\x61\x62\x6c\x65\x00\x5f\x5f\x67\x6d\x6f\x6e\x5f\x73\x74\x61\x72\x74\x5f\x5f\x00\x5f\x49\x54\x4d\x5f\x72\x65\x67\x69\x73\x74\x65\x72\x54\x4d\x43\x6c\x6f\x6e\x65\x54\x61\x62\x6c\x65\x00"), -Section(".gnu.version", 0x41E, "\x00\x00\x00\x00\x00\x00\x02\x00\x01\x00\x03\x00\x01\x00\x03\x00\x01\x00"), -Section(".gnu.version_r", 0x430, "\x01\x00\x02\x00\x28\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x97\x91\x96\x06\x00\x00\x03\x00\x32\x00\x00\x00\x10\x00\x00\x00\xb4\x91\x96\x06\x00\x00\x02\x00\x3d\x00\x00\x00\x00\x00\x00\x00"), -Section(".rela.dyn", 0x460, "\xc8\x0d\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x10\x07\x00\x00\x00\x00\x00\x00\xd0\x0d\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\xc0\x06\x00\x00\x00\x00\x00\x00\xd8\x0f\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x1c\x07\x00\x00\x00\x00\x00\x00\x28\x10\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x28\x10\x01\x00\x00\x00\x00\x00\xc0\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xc8\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xd0\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe0\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".rela.plt", 0x520, "\x00\x10\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x08\x10\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x10\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x18\x10\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".init", 0x580, "\x1f\x20\x03\xd5\xfd\x7b\xbf\xa9\xfd\x03\x00\x91\x2a\x00\x00\x94\xfd\x7b\xc1\xa8\xc0\x03\x5f\xd6"), -Section(".plt", 0x5A0, "\xf0\x7b\xbf\xa9\x90\x00\x00\x90\x11\xfe\x47\xf9\x10\xe2\x3f\x91\x20\x02\x1f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x90\x00\x00\xb0\x11\x02\x40\xf9\x10\x02\x00\x91\x20\x02\x1f\xd6\x90\x00\x00\xb0\x11\x06\x40\xf9\x10\x22\x00\x91\x20\x02\x1f\xd6\x90\x00\x00\xb0\x11\x0a\x40\xf9\x10\x42\x00\x91\x20\x02\x1f\xd6\x90\x00\x00\xb0\x11\x0e\x40\xf9\x10\x62\x00\x91\x20\x02\x1f\xd6"), -Section(".fini", 0x7BC, "\x1f\x20\x03\xd5\xfd\x7b\xbf\xa9\xfd\x03\x00\x91\xfd\x7b\xc1\xa8\xc0\x03\x5f\xd6"), -Section(".rodata", 0x7D0, "\x01\x00\x02\x00\x1c\x00\x00\x00\x28\x00\x00\x00\x10\x00\x00\x00\x34\x00\x00\x00\x40\x00\x00\x00"), -Section(".eh_frame_hdr", 0x7E8, "\x01\x1b\x03\x3b\x44\x00\x00\x00\x07\x00\x00\x00\x18\xfe\xff\xff\x5c\x00\x00\x00\x68\xfe\xff\xff\x70\x00\x00\x00\x98\xfe\xff\xff\x84\x00\x00\x00\xd8\xfe\xff\xff\x98\x00\x00\x00\x28\xff\xff\xff\xbc\x00\x00\x00\x2c\xff\xff\xff\xe4\x00\x00\x00\x34\xff\xff\xff\xf8\x00\x00\x00"), -Section(".eh_frame", 0x830, "\x10\x00\x00\x00\x00\x00\x00\x00\x01\x7a\x52\x00\x04\x78\x1e\x01\x1b\x0c\x1f\x00\x10\x00\x00\x00\x18\x00\x00\x00\xb4\xfd\xff\xff\x34\x00\x00\x00\x00\x41\x07\x1e\x10\x00\x00\x00\x2c\x00\x00\x00\xf0\xfd\xff\xff\x30\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x40\x00\x00\x00\x0c\xfe\xff\xff\x3c\x00\x00\x00\x00\x00\x00\x00\x20\x00\x00\x00\x54\x00\x00\x00\x38\xfe\xff\xff\x48\x00\x00\x00\x00\x41\x0e\x20\x9d\x04\x9e\x03\x42\x93\x02\x4e\xde\xdd\xd3\x0e\x00\x00\x00\x00\x10\x00\x00\x00\x78\x00\x00\x00\x64\xfe\xff\xff\x04\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x01\x7a\x52\x00\x01\x7c\x1e\x01\x1b\x0c\x1f\x00\x10\x00\x00\x00\x18\x00\x00\x00\x40\xfe\xff\xff\x08\x00\x00\x00\x00\x00\x00\x00\x24\x00\x00\x00\x2c\x00\x00\x00\x34\xfe\xff\xff\xa0\x00\x00\x00\x00\x44\x0e\x30\x48\x0c\x1d\x10\x9e\x02\x9d\x04\x02\x88\x0c\x1f\x30\x48\x0e\x00\xde\xdd\x00\x00\x00\x00\x00\x00"), -Section(".fini_array", 0x10DD0, "\xc0\x06\x00\x00\x00\x00\x00\x00"), -Section(".dynamic", 0x10DD8, "\x01\x00\x00\x00\x00\x00\x00\x00\x28\x00\x00\x00\x00\x00\x00\x00\x0c\x00\x00\x00\x00\x00\x00\x00\x80\x05\x00\x00\x00\x00\x00\x00\x0d\x00\x00\x00\x00\x00\x00\x00\xbc\x07\x00\x00\x00\x00\x00\x00\x19\x00\x00\x00\x00\x00\x00\x00\xc8\x0d\x01\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x1a\x00\x00\x00\x00\x00\x00\x00\xd0\x0d\x01\x00\x00\x00\x00\x00\x1c\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\xf5\xfe\xff\x6f\x00\x00\x00\x00\x98\x02\x00\x00\x00\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x90\x03\x00\x00\x00\x00\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\xb8\x02\x00\x00\x00\x00\x00\x00\x0a\x00\x00\x00\x00\x00\x00\x00\x8d\x00\x00\x00\x00\x00\x00\x00\x0b\x00\x00\x00\x00\x00\x00\x00\x18\x00\x00\x00\x00\x00\x00\x00\x15\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\xe8\x0f\x01\x00\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x60\x00\x00\x00\x00\x00\x00\x00\x14\x00\x00\x00\x00\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x17\x00\x00\x00\x00\x00\x00\x00\x20\x05\x00\x00\x00\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x60\x04\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\xc0\x00\x00\x00\x00\x00\x00\x00\x09\x00\x00\x00\x00\x00\x00\x00\x18\x00\x00\x00\x00\x00\x00\x00\xfb\xff\xff\x6f\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\xfe\xff\xff\x6f\x00\x00\x00\x00\x30\x04\x00\x00\x00\x00\x00\x00\xff\xff\xff\x6f\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\xf0\xff\xff\x6f\x00\x00\x00\x00\x1e\x04\x00\x00\x00\x00\x00\x00\xf9\xff\xff\x6f\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".init_array", 0x10DC8, "\x10\x07\x00\x00\x00\x00\x00\x00"), -Section(".got", 0x10FB8, "\xd8\x0d\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1c\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".got.plt", 0x10FE8, "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xa0\x05\x00\x00\x00\x00\x00\x00\xa0\x05\x00\x00\x00\x00\x00\x00\xa0\x05\x00\x00\x00\x00\x00\x00\xa0\x05\x00\x00\x00\x00\x00\x00"), -Section(".data", 0x11020, "\x00\x00\x00\x00\x00\x00\x00\x00\x28\x10\x01\x00\x00\x00\x00\x00"), -Section(".text", 0x600, "\x1f\x20\x03\xd5\x1d\x00\x80\xd2\x1e\x00\x80\xd2\xe5\x03\x00\xaa\xe1\x03\x40\xf9\xe2\x23\x00\x91\xe6\x03\x00\x91\x80\x00\x00\x90\x00\xec\x47\xf9\x03\x00\x80\xd2\x04\x00\x80\xd2\xe5\xff\xff\x97\xf0\xff\xff\x97\x80\x00\x00\x90\x00\xe8\x47\xf9\x40\x00\x00\xb4\xe8\xff\xff\x17\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x80\x00\x00\xb0\x00\xc0\x00\x91\x81\x00\x00\xb0\x21\xc0\x00\x91\x3f\x00\x00\xeb\xc0\x00\x00\x54\x81\x00\x00\x90\x21\xe0\x47\xf9\x61\x00\x00\xb4\xf0\x03\x01\xaa\x00\x02\x1f\xd6\xc0\x03\x5f\xd6\x80\x00\x00\xb0\x00\xc0\x00\x91\x81\x00\x00\xb0\x21\xc0\x00\x91\x21\x00\x00\xcb\x22\xfc\x7f\xd3\x41\x0c\x81\x8b\x21\xfc\x41\x93\xc1\x00\x00\xb4\x82\x00\x00\x90\x42\xf0\x47\xf9\x62\x00\x00\xb4\xf0\x03\x02\xaa\x00\x02\x1f\xd6\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\xfd\x7b\xbe\xa9\xfd\x03\x00\x91\xf3\x0b\x00\xf9\x93\x00\x00\xb0\x60\xc2\x40\x39\x40\x01\x00\x35\x80\x00\x00\x90\x00\xe4\x47\xf9\x80\x00\x00\xb4\x80\x00\x00\xb0\x00\x14\x40\xf9\xb9\xff\xff\x97\xd8\xff\xff\x97\x20\x00\x80\x52\x60\xc2\x00\x39\xf3\x0b\x40\xf9\xfd\x7b\xc2\xa8\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\xdc\xff\xff\x17\x20\x00\x80\x52\xc0\x03\x5f\xd6\xff\xc3\x00\xd1\xfd\x7b\x02\xa9\xfd\x83\x00\x91\xa0\xc3\x1f\xb8\xe1\x0b\x00\xf9\xff\x0f\x00\xb9\xa8\xc3\x5f\xb8\x08\x05\x00\x71\xe8\x03\x00\xf9\x08\x11\x00\xf1\xe8\x97\x9f\x1a\xe8\x02\x00\x37\xeb\x03\x40\xf9\x0a\x00\x00\x90\x4a\x51\x1f\x91\x08\x00\x00\x10\x49\x79\xab\xb8\x08\x01\x09\x8b\x00\x01\x1f\xd6\xeb\xff\xff\x97\xe0\x0f\x00\xb9\x01\x00\x00\x14\x28\x00\x80\x52\xe8\x0f\x00\xb9\x0d\x00\x00\x14\x48\x00\x80\x52\xe8\x0f\x00\xb9\x01\x00\x00\x14\x68\x00\x80\x52\xe8\x0f\x00\xb9\x07\x00\x00\x14\x88\x00\x80\x52\xe8\x0f\x00\xb9\x01\x00\x00\x14\xa8\x00\x80\x52\xe8\x0f\x00\xb9\x01\x00\x00\x14\xfd\x7b\x42\xa9\xff\xc3\x00\x91\xc0\x03\x5f\xd6")]), -Memmap([Annotation(Region(0x0,0x90B), Attr("segment","02 0 2316")), -Annotation(Region(0x600,0x633), Attr("symbol","\"_start\"")), -Annotation(Region(0x0,0x102), Attr("section","\".shstrtab\"")), -Annotation(Region(0x0,0x234), Attr("section","\".strtab\"")), -Annotation(Region(0x0,0x86F), Attr("section","\".symtab\"")), -Annotation(Region(0x0,0x46), Attr("section","\".comment\"")), -Annotation(Region(0x238,0x252), Attr("section","\".interp\"")), -Annotation(Region(0x254,0x277), Attr("section","\".note.gnu.build-id\"")), -Annotation(Region(0x278,0x297), Attr("section","\".note.ABI-tag\"")), -Annotation(Region(0x298,0x2B3), Attr("section","\".gnu.hash\"")), -Annotation(Region(0x2B8,0x38F), Attr("section","\".dynsym\"")), -Annotation(Region(0x390,0x41C), Attr("section","\".dynstr\"")), -Annotation(Region(0x41E,0x42F), Attr("section","\".gnu.version\"")), -Annotation(Region(0x430,0x45F), Attr("section","\".gnu.version_r\"")), -Annotation(Region(0x460,0x51F), Attr("section","\".rela.dyn\"")), -Annotation(Region(0x520,0x57F), Attr("section","\".rela.plt\"")), -Annotation(Region(0x580,0x597), Attr("section","\".init\"")), -Annotation(Region(0x5A0,0x5FF), Attr("section","\".plt\"")), -Annotation(Region(0x580,0x597), Attr("code-region","()")), -Annotation(Region(0x5A0,0x5FF), Attr("code-region","()")), -Annotation(Region(0x600,0x633), Attr("symbol-info","_start 0x600 52")), -Annotation(Region(0x634,0x647), Attr("symbol","\"call_weak_fn\"")), -Annotation(Region(0x634,0x647), Attr("symbol-info","call_weak_fn 0x634 20")), -Annotation(Region(0x714,0x71B), Attr("symbol","\"r\"")), -Annotation(Region(0x714,0x71B), Attr("symbol-info","r 0x714 8")), -Annotation(Region(0x600,0x7BB), Attr("code-region","()")), -Annotation(Region(0x71C,0x7BB), Attr("symbol","\"main\"")), -Annotation(Region(0x71C,0x7BB), Attr("symbol-info","main 0x71C 160")), -Annotation(Region(0x7BC,0x7CF), Attr("section","\".fini\"")), -Annotation(Region(0x7D0,0x7E7), Attr("section","\".rodata\"")), -Annotation(Region(0x7E8,0x82B), Attr("section","\".eh_frame_hdr\"")), -Annotation(Region(0x830,0x90B), Attr("section","\".eh_frame\"")), -Annotation(Region(0x10DC8,0x1102F), Attr("segment","03 0x10DC8 624")), -Annotation(Region(0x10DD0,0x10DD7), Attr("section","\".fini_array\"")), -Annotation(Region(0x10DD8,0x10FB7), Attr("section","\".dynamic\"")), -Annotation(Region(0x10DC8,0x10DCF), Attr("section","\".init_array\"")), -Annotation(Region(0x10FB8,0x10FE7), Attr("section","\".got\"")), -Annotation(Region(0x10FE8,0x1101F), Attr("section","\".got.plt\"")), -Annotation(Region(0x11020,0x1102F), Attr("section","\".data\"")), -Annotation(Region(0x600,0x7BB), Attr("section","\".text\"")), -Annotation(Region(0x7BC,0x7CF), Attr("code-region","()"))]), -Program(Tid(1_946, "%0000079a"), Attrs([]), - Subs([Sub(Tid(1_892, "@__cxa_finalize"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x5D0"), -Attr("stub","()")]), "__cxa_finalize", Args([Arg(Tid(1_947, "%0000079b"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("__cxa_finalize_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(1_236, "@__cxa_finalize"), - Attrs([Attr("address","0x5D0")]), Phis([]), -Defs([Def(Tid(1_484, "%000005cc"), Attrs([Attr("address","0x5D0"), -Attr("insn","adrp x16, #69632")]), Var("R16",Imm(64)), Int(69632,64)), -Def(Tid(1_491, "%000005d3"), Attrs([Attr("address","0x5D4"), -Attr("insn","ldr x17, [x16, #0x8]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(1_497, "%000005d9"), Attrs([Attr("address","0x5D8"), -Attr("insn","add x16, x16, #0x8")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(8,64)))]), Jmps([Call(Tid(1_502, "%000005de"), - Attrs([Attr("address","0x5DC"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), -Sub(Tid(1_893, "@__do_global_dtors_aux"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x6C0")]), - "__do_global_dtors_aux", Args([Arg(Tid(1_948, "%0000079c"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("__do_global_dtors_aux_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(758, "@__do_global_dtors_aux"), - Attrs([Attr("address","0x6C0")]), Phis([]), Defs([Def(Tid(762, "%000002fa"), - Attrs([Attr("address","0x6C0"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("#3",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(18446744073709551584,64))), -Def(Tid(768, "%00000300"), Attrs([Attr("address","0x6C0"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("#3",Imm(64)),Var("R29",Imm(64)),LittleEndian(),64)), -Def(Tid(774, "%00000306"), Attrs([Attr("address","0x6C0"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("#3",Imm(64)),Int(8,64)),Var("R30",Imm(64)),LittleEndian(),64)), -Def(Tid(778, "%0000030a"), Attrs([Attr("address","0x6C0"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("R31",Imm(64)), -Var("#3",Imm(64))), Def(Tid(784, "%00000310"), - Attrs([Attr("address","0x6C4"), Attr("insn","mov x29, sp")]), - Var("R29",Imm(64)), Var("R31",Imm(64))), Def(Tid(792, "%00000318"), - Attrs([Attr("address","0x6C8"), Attr("insn","str x19, [sp, #0x10]")]), - Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(16,64)),Var("R19",Imm(64)),LittleEndian(),64)), -Def(Tid(797, "%0000031d"), Attrs([Attr("address","0x6CC"), -Attr("insn","adrp x19, #69632")]), Var("R19",Imm(64)), Int(69632,64)), -Def(Tid(804, "%00000324"), Attrs([Attr("address","0x6D0"), -Attr("insn","ldrb w0, [x19, #0x30]")]), Var("R0",Imm(64)), -UNSIGNED(64,Load(Var("mem",Mem(64,8)),PLUS(Var("R19",Imm(64)),Int(48,64)),LittleEndian(),8)))]), -Jmps([Goto(Tid(811, "%0000032b"), Attrs([Attr("address","0x6D4"), -Attr("insn","cbnz w0, #0x28")]), - NEQ(Extract(31,0,Var("R0",Imm(64))),Int(0,32)), -Direct(Tid(809, "%00000329"))), Goto(Tid(1_935, "%0000078f"), Attrs([]), - Int(1,1), Direct(Tid(1_181, "%0000049d")))])), Blk(Tid(1_181, "%0000049d"), - Attrs([Attr("address","0x6D8")]), Phis([]), -Defs([Def(Tid(1_184, "%000004a0"), Attrs([Attr("address","0x6D8"), -Attr("insn","adrp x0, #65536")]), Var("R0",Imm(64)), Int(65536,64)), -Def(Tid(1_191, "%000004a7"), Attrs([Attr("address","0x6DC"), -Attr("insn","ldr x0, [x0, #0xfc8]")]), Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(4040,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(1_197, "%000004ad"), Attrs([Attr("address","0x6E0"), -Attr("insn","cbz x0, #0x10")]), EQ(Var("R0",Imm(64)),Int(0,64)), -Direct(Tid(1_195, "%000004ab"))), Goto(Tid(1_936, "%00000790"), Attrs([]), - Int(1,1), Direct(Tid(1_220, "%000004c4")))])), Blk(Tid(1_220, "%000004c4"), - Attrs([Attr("address","0x6E4")]), Phis([]), -Defs([Def(Tid(1_223, "%000004c7"), Attrs([Attr("address","0x6E4"), -Attr("insn","adrp x0, #69632")]), Var("R0",Imm(64)), Int(69632,64)), -Def(Tid(1_230, "%000004ce"), Attrs([Attr("address","0x6E8"), -Attr("insn","ldr x0, [x0, #0x28]")]), Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(40,64)),LittleEndian(),64)), -Def(Tid(1_235, "%000004d3"), Attrs([Attr("address","0x6EC"), -Attr("insn","bl #-0x11c")]), Var("R30",Imm(64)), Int(1776,64))]), -Jmps([Call(Tid(1_238, "%000004d6"), Attrs([Attr("address","0x6EC"), -Attr("insn","bl #-0x11c")]), Int(1,1), -(Direct(Tid(1_892, "@__cxa_finalize")),Direct(Tid(1_195, "%000004ab"))))])), -Blk(Tid(1_195, "%000004ab"), Attrs([Attr("address","0x6F0")]), Phis([]), -Defs([Def(Tid(1_203, "%000004b3"), Attrs([Attr("address","0x6F0"), -Attr("insn","bl #-0xa0")]), Var("R30",Imm(64)), Int(1780,64))]), -Jmps([Call(Tid(1_205, "%000004b5"), Attrs([Attr("address","0x6F0"), -Attr("insn","bl #-0xa0")]), Int(1,1), -(Direct(Tid(1_906, "@deregister_tm_clones")),Direct(Tid(1_207, "%000004b7"))))])), -Blk(Tid(1_207, "%000004b7"), Attrs([Attr("address","0x6F4")]), Phis([]), -Defs([Def(Tid(1_210, "%000004ba"), Attrs([Attr("address","0x6F4"), -Attr("insn","mov w0, #0x1")]), Var("R0",Imm(64)), Int(1,64)), -Def(Tid(1_218, "%000004c2"), Attrs([Attr("address","0x6F8"), -Attr("insn","strb w0, [x19, #0x30]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R19",Imm(64)),Int(48,64)),Extract(7,0,Var("R0",Imm(64))),LittleEndian(),8))]), -Jmps([Goto(Tid(1_937, "%00000791"), Attrs([]), Int(1,1), -Direct(Tid(809, "%00000329")))])), Blk(Tid(809, "%00000329"), - Attrs([Attr("address","0x6FC")]), Phis([]), Defs([Def(Tid(819, "%00000333"), - Attrs([Attr("address","0x6FC"), Attr("insn","ldr x19, [sp, #0x10]")]), - Var("R19",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(16,64)),LittleEndian(),64)), -Def(Tid(826, "%0000033a"), Attrs([Attr("address","0x700"), -Attr("insn","ldp x29, x30, [sp], #0x20")]), Var("R29",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(831, "%0000033f"), Attrs([Attr("address","0x700"), -Attr("insn","ldp x29, x30, [sp], #0x20")]), Var("R30",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(835, "%00000343"), Attrs([Attr("address","0x700"), -Attr("insn","ldp x29, x30, [sp], #0x20")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(32,64)))]), Jmps([Call(Tid(840, "%00000348"), - Attrs([Attr("address","0x704"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), Sub(Tid(1_897, "@__libc_start_main"), - Attrs([Attr("c.proto","signed (*)(signed (*)(signed , char** , char** );* main, signed , char** , \nvoid* auxv)"), -Attr("address","0x5C0"), Attr("stub","()")]), "__libc_start_main", - Args([Arg(Tid(1_949, "%0000079d"), - Attrs([Attr("c.layout","**[ : 64]"), -Attr("c.data","Top:u64 ptr ptr"), -Attr("c.type","signed (*)(signed , char** , char** );*")]), - Var("__libc_start_main_main",Imm(64)), Var("R0",Imm(64)), In()), -Arg(Tid(1_950, "%0000079e"), Attrs([Attr("c.layout","[signed : 32]"), -Attr("c.data","Top:u32"), Attr("c.type","signed")]), - Var("__libc_start_main_arg2",Imm(32)), LOW(32,Var("R1",Imm(64))), In()), -Arg(Tid(1_951, "%0000079f"), Attrs([Attr("c.layout","**[char : 8]"), -Attr("c.data","Top:u8 ptr ptr"), Attr("c.type","char**")]), - Var("__libc_start_main_arg3",Imm(64)), Var("R2",Imm(64)), Both()), -Arg(Tid(1_952, "%000007a0"), Attrs([Attr("c.layout","*[ : 8]"), -Attr("c.data","{} ptr"), Attr("c.type","void*")]), - Var("__libc_start_main_auxv",Imm(64)), Var("R3",Imm(64)), Both()), -Arg(Tid(1_953, "%000007a1"), Attrs([Attr("c.layout","[signed : 32]"), -Attr("c.data","Top:u32"), Attr("c.type","signed")]), - Var("__libc_start_main_result",Imm(32)), LOW(32,Var("R0",Imm(64))), -Out())]), Blks([Blk(Tid(591, "@__libc_start_main"), - Attrs([Attr("address","0x5C0")]), Phis([]), -Defs([Def(Tid(1_462, "%000005b6"), Attrs([Attr("address","0x5C0"), -Attr("insn","adrp x16, #69632")]), Var("R16",Imm(64)), Int(69632,64)), -Def(Tid(1_469, "%000005bd"), Attrs([Attr("address","0x5C4"), -Attr("insn","ldr x17, [x16]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R16",Imm(64)),LittleEndian(),64)), -Def(Tid(1_475, "%000005c3"), Attrs([Attr("address","0x5C8"), -Attr("insn","add x16, x16, #0x0")]), Var("R16",Imm(64)), -Var("R16",Imm(64)))]), Jmps([Call(Tid(1_480, "%000005c8"), - Attrs([Attr("address","0x5CC"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), Sub(Tid(1_898, "@_fini"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x7BC")]), - "_fini", Args([Arg(Tid(1_954, "%000007a2"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("_fini_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(31, "@_fini"), - Attrs([Attr("address","0x7BC")]), Phis([]), Defs([Def(Tid(37, "%00000025"), - Attrs([Attr("address","0x7C0"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("#0",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(18446744073709551600,64))), -Def(Tid(43, "%0000002b"), Attrs([Attr("address","0x7C0"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("#0",Imm(64)),Var("R29",Imm(64)),LittleEndian(),64)), -Def(Tid(49, "%00000031"), Attrs([Attr("address","0x7C0"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("#0",Imm(64)),Int(8,64)),Var("R30",Imm(64)),LittleEndian(),64)), -Def(Tid(53, "%00000035"), Attrs([Attr("address","0x7C0"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("R31",Imm(64)), -Var("#0",Imm(64))), Def(Tid(59, "%0000003b"), Attrs([Attr("address","0x7C4"), -Attr("insn","mov x29, sp")]), Var("R29",Imm(64)), Var("R31",Imm(64))), -Def(Tid(66, "%00000042"), Attrs([Attr("address","0x7C8"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R29",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(71, "%00000047"), Attrs([Attr("address","0x7C8"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R30",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(75, "%0000004b"), Attrs([Attr("address","0x7C8"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(16,64)))]), Jmps([Call(Tid(80, "%00000050"), - Attrs([Attr("address","0x7CC"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), Sub(Tid(1_899, "@_init"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x580")]), - "_init", Args([Arg(Tid(1_955, "%000007a3"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("_init_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(1_692, "@_init"), - Attrs([Attr("address","0x580")]), Phis([]), -Defs([Def(Tid(1_698, "%000006a2"), Attrs([Attr("address","0x584"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("#9",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(18446744073709551600,64))), -Def(Tid(1_704, "%000006a8"), Attrs([Attr("address","0x584"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("#9",Imm(64)),Var("R29",Imm(64)),LittleEndian(),64)), -Def(Tid(1_710, "%000006ae"), Attrs([Attr("address","0x584"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("#9",Imm(64)),Int(8,64)),Var("R30",Imm(64)),LittleEndian(),64)), -Def(Tid(1_714, "%000006b2"), Attrs([Attr("address","0x584"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("R31",Imm(64)), -Var("#9",Imm(64))), Def(Tid(1_720, "%000006b8"), - Attrs([Attr("address","0x588"), Attr("insn","mov x29, sp")]), - Var("R29",Imm(64)), Var("R31",Imm(64))), Def(Tid(1_725, "%000006bd"), - Attrs([Attr("address","0x58C"), Attr("insn","bl #0xa8")]), - Var("R30",Imm(64)), Int(1424,64))]), Jmps([Call(Tid(1_727, "%000006bf"), - Attrs([Attr("address","0x58C"), Attr("insn","bl #0xa8")]), Int(1,1), -(Direct(Tid(1_904, "@call_weak_fn")),Direct(Tid(1_729, "%000006c1"))))])), -Blk(Tid(1_729, "%000006c1"), Attrs([Attr("address","0x590")]), Phis([]), -Defs([Def(Tid(1_734, "%000006c6"), Attrs([Attr("address","0x590"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R29",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(1_739, "%000006cb"), Attrs([Attr("address","0x590"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R30",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(1_743, "%000006cf"), Attrs([Attr("address","0x590"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(16,64)))]), Jmps([Call(Tid(1_748, "%000006d4"), - Attrs([Attr("address","0x594"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), Sub(Tid(1_900, "@_start"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x600"), -Attr("stub","()"), Attr("entry-point","()")]), "_start", - Args([Arg(Tid(1_956, "%000007a4"), Attrs([Attr("c.layout","[signed : 32]"), -Attr("c.data","Top:u32"), Attr("c.type","signed")]), - Var("_start_result",Imm(32)), LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(528, "@_start"), Attrs([Attr("address","0x600")]), Phis([]), -Defs([Def(Tid(533, "%00000215"), Attrs([Attr("address","0x604"), -Attr("insn","mov x29, #0x0")]), Var("R29",Imm(64)), Int(0,64)), -Def(Tid(538, "%0000021a"), Attrs([Attr("address","0x608"), -Attr("insn","mov x30, #0x0")]), Var("R30",Imm(64)), Int(0,64)), -Def(Tid(544, "%00000220"), Attrs([Attr("address","0x60C"), -Attr("insn","mov x5, x0")]), Var("R5",Imm(64)), Var("R0",Imm(64))), -Def(Tid(551, "%00000227"), Attrs([Attr("address","0x610"), -Attr("insn","ldr x1, [sp]")]), Var("R1",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(557, "%0000022d"), Attrs([Attr("address","0x614"), -Attr("insn","add x2, sp, #0x8")]), Var("R2",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(8,64))), Def(Tid(563, "%00000233"), - Attrs([Attr("address","0x618"), Attr("insn","mov x6, sp")]), - Var("R6",Imm(64)), Var("R31",Imm(64))), Def(Tid(568, "%00000238"), - Attrs([Attr("address","0x61C"), Attr("insn","adrp x0, #65536")]), - Var("R0",Imm(64)), Int(65536,64)), Def(Tid(575, "%0000023f"), - Attrs([Attr("address","0x620"), Attr("insn","ldr x0, [x0, #0xfd8]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(4056,64)),LittleEndian(),64)), -Def(Tid(580, "%00000244"), Attrs([Attr("address","0x624"), -Attr("insn","mov x3, #0x0")]), Var("R3",Imm(64)), Int(0,64)), -Def(Tid(585, "%00000249"), Attrs([Attr("address","0x628"), -Attr("insn","mov x4, #0x0")]), Var("R4",Imm(64)), Int(0,64)), -Def(Tid(590, "%0000024e"), Attrs([Attr("address","0x62C"), -Attr("insn","bl #-0x6c")]), Var("R30",Imm(64)), Int(1584,64))]), -Jmps([Call(Tid(593, "%00000251"), Attrs([Attr("address","0x62C"), -Attr("insn","bl #-0x6c")]), Int(1,1), -(Direct(Tid(1_897, "@__libc_start_main")),Direct(Tid(595, "%00000253"))))])), -Blk(Tid(595, "%00000253"), Attrs([Attr("address","0x630")]), Phis([]), -Defs([Def(Tid(598, "%00000256"), Attrs([Attr("address","0x630"), -Attr("insn","bl #-0x40")]), Var("R30",Imm(64)), Int(1588,64))]), -Jmps([Call(Tid(601, "%00000259"), Attrs([Attr("address","0x630"), -Attr("insn","bl #-0x40")]), Int(1,1), -(Direct(Tid(1_903, "@abort")),Direct(Tid(1_938, "%00000792"))))])), -Blk(Tid(1_938, "%00000792"), Attrs([]), Phis([]), Defs([]), -Jmps([Call(Tid(1_939, "%00000793"), Attrs([]), Int(1,1), -(Direct(Tid(1_904, "@call_weak_fn")),))]))])), Sub(Tid(1_903, "@abort"), - Attrs([Attr("noreturn","()"), Attr("c.proto","void (*)(void)"), -Attr("address","0x5F0"), Attr("stub","()")]), "abort", Args([]), -Blks([Blk(Tid(599, "@abort"), Attrs([Attr("address","0x5F0")]), Phis([]), -Defs([Def(Tid(1_528, "%000005f8"), Attrs([Attr("address","0x5F0"), -Attr("insn","adrp x16, #69632")]), Var("R16",Imm(64)), Int(69632,64)), -Def(Tid(1_535, "%000005ff"), Attrs([Attr("address","0x5F4"), -Attr("insn","ldr x17, [x16, #0x18]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(24,64)),LittleEndian(),64)), -Def(Tid(1_541, "%00000605"), Attrs([Attr("address","0x5F8"), -Attr("insn","add x16, x16, #0x18")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(24,64)))]), Jmps([Call(Tid(1_546, "%0000060a"), - Attrs([Attr("address","0x5FC"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), Sub(Tid(1_904, "@call_weak_fn"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x634")]), - "call_weak_fn", Args([Arg(Tid(1_957, "%000007a5"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("call_weak_fn_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(603, "@call_weak_fn"), - Attrs([Attr("address","0x634")]), Phis([]), Defs([Def(Tid(606, "%0000025e"), - Attrs([Attr("address","0x634"), Attr("insn","adrp x0, #65536")]), - Var("R0",Imm(64)), Int(65536,64)), Def(Tid(613, "%00000265"), - Attrs([Attr("address","0x638"), Attr("insn","ldr x0, [x0, #0xfd0]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(4048,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(619, "%0000026b"), Attrs([Attr("address","0x63C"), -Attr("insn","cbz x0, #0x8")]), EQ(Var("R0",Imm(64)),Int(0,64)), -Direct(Tid(617, "%00000269"))), Goto(Tid(1_940, "%00000794"), Attrs([]), - Int(1,1), Direct(Tid(1_300, "%00000514")))])), Blk(Tid(617, "%00000269"), - Attrs([Attr("address","0x644")]), Phis([]), Defs([]), -Jmps([Call(Tid(625, "%00000271"), Attrs([Attr("address","0x644"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))])), -Blk(Tid(1_300, "%00000514"), Attrs([Attr("address","0x640")]), Phis([]), -Defs([]), Jmps([Goto(Tid(1_303, "%00000517"), Attrs([Attr("address","0x640"), -Attr("insn","b #-0x60")]), Int(1,1), -Direct(Tid(1_301, "@__gmon_start__")))])), Blk(Tid(1_301, "@__gmon_start__"), - Attrs([Attr("address","0x5E0")]), Phis([]), -Defs([Def(Tid(1_506, "%000005e2"), Attrs([Attr("address","0x5E0"), -Attr("insn","adrp x16, #69632")]), Var("R16",Imm(64)), Int(69632,64)), -Def(Tid(1_513, "%000005e9"), Attrs([Attr("address","0x5E4"), -Attr("insn","ldr x17, [x16, #0x10]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(16,64)),LittleEndian(),64)), -Def(Tid(1_519, "%000005ef"), Attrs([Attr("address","0x5E8"), -Attr("insn","add x16, x16, #0x10")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(16,64)))]), Jmps([Call(Tid(1_524, "%000005f4"), - Attrs([Attr("address","0x5EC"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), -Sub(Tid(1_906, "@deregister_tm_clones"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x650")]), - "deregister_tm_clones", Args([Arg(Tid(1_958, "%000007a6"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("deregister_tm_clones_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(631, "@deregister_tm_clones"), - Attrs([Attr("address","0x650")]), Phis([]), Defs([Def(Tid(634, "%0000027a"), - Attrs([Attr("address","0x650"), Attr("insn","adrp x0, #69632")]), - Var("R0",Imm(64)), Int(69632,64)), Def(Tid(640, "%00000280"), - Attrs([Attr("address","0x654"), Attr("insn","add x0, x0, #0x30")]), - Var("R0",Imm(64)), PLUS(Var("R0",Imm(64)),Int(48,64))), -Def(Tid(645, "%00000285"), Attrs([Attr("address","0x658"), -Attr("insn","adrp x1, #69632")]), Var("R1",Imm(64)), Int(69632,64)), -Def(Tid(651, "%0000028b"), Attrs([Attr("address","0x65C"), -Attr("insn","add x1, x1, #0x30")]), Var("R1",Imm(64)), -PLUS(Var("R1",Imm(64)),Int(48,64))), Def(Tid(657, "%00000291"), - Attrs([Attr("address","0x660"), Attr("insn","cmp x1, x0")]), - Var("#1",Imm(64)), NOT(Var("R0",Imm(64)))), Def(Tid(662, "%00000296"), - Attrs([Attr("address","0x660"), Attr("insn","cmp x1, x0")]), - Var("#2",Imm(64)), PLUS(Var("R1",Imm(64)),NOT(Var("R0",Imm(64))))), -Def(Tid(668, "%0000029c"), Attrs([Attr("address","0x660"), -Attr("insn","cmp x1, x0")]), Var("VF",Imm(1)), -NEQ(SIGNED(65,PLUS(Var("#2",Imm(64)),Int(1,64))),PLUS(PLUS(SIGNED(65,Var("R1",Imm(64))),SIGNED(65,Var("#1",Imm(64)))),Int(1,65)))), -Def(Tid(674, "%000002a2"), Attrs([Attr("address","0x660"), -Attr("insn","cmp x1, x0")]), Var("CF",Imm(1)), -NEQ(UNSIGNED(65,PLUS(Var("#2",Imm(64)),Int(1,64))),PLUS(PLUS(UNSIGNED(65,Var("R1",Imm(64))),UNSIGNED(65,Var("#1",Imm(64)))),Int(1,65)))), -Def(Tid(678, "%000002a6"), Attrs([Attr("address","0x660"), -Attr("insn","cmp x1, x0")]), Var("ZF",Imm(1)), -EQ(PLUS(Var("#2",Imm(64)),Int(1,64)),Int(0,64))), Def(Tid(682, "%000002aa"), - Attrs([Attr("address","0x660"), Attr("insn","cmp x1, x0")]), - Var("NF",Imm(1)), Extract(63,63,PLUS(Var("#2",Imm(64)),Int(1,64))))]), -Jmps([Goto(Tid(688, "%000002b0"), Attrs([Attr("address","0x664"), -Attr("insn","b.eq #0x18")]), EQ(Var("ZF",Imm(1)),Int(1,1)), -Direct(Tid(686, "%000002ae"))), Goto(Tid(1_941, "%00000795"), Attrs([]), - Int(1,1), Direct(Tid(1_270, "%000004f6")))])), Blk(Tid(1_270, "%000004f6"), - Attrs([Attr("address","0x668")]), Phis([]), -Defs([Def(Tid(1_273, "%000004f9"), Attrs([Attr("address","0x668"), -Attr("insn","adrp x1, #65536")]), Var("R1",Imm(64)), Int(65536,64)), -Def(Tid(1_280, "%00000500"), Attrs([Attr("address","0x66C"), -Attr("insn","ldr x1, [x1, #0xfc0]")]), Var("R1",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R1",Imm(64)),Int(4032,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(1_285, "%00000505"), Attrs([Attr("address","0x670"), -Attr("insn","cbz x1, #0xc")]), EQ(Var("R1",Imm(64)),Int(0,64)), -Direct(Tid(686, "%000002ae"))), Goto(Tid(1_942, "%00000796"), Attrs([]), - Int(1,1), Direct(Tid(1_289, "%00000509")))])), Blk(Tid(686, "%000002ae"), - Attrs([Attr("address","0x67C")]), Phis([]), Defs([]), -Jmps([Call(Tid(694, "%000002b6"), Attrs([Attr("address","0x67C"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))])), -Blk(Tid(1_289, "%00000509"), Attrs([Attr("address","0x674")]), Phis([]), -Defs([Def(Tid(1_293, "%0000050d"), Attrs([Attr("address","0x674"), -Attr("insn","mov x16, x1")]), Var("R16",Imm(64)), Var("R1",Imm(64)))]), -Jmps([Call(Tid(1_298, "%00000512"), Attrs([Attr("address","0x678"), -Attr("insn","br x16")]), Int(1,1), (Indirect(Var("R16",Imm(64))),))]))])), -Sub(Tid(1_909, "@frame_dummy"), Attrs([Attr("c.proto","signed (*)(void)"), -Attr("address","0x710")]), "frame_dummy", Args([Arg(Tid(1_959, "%000007a7"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("frame_dummy_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(846, "@frame_dummy"), - Attrs([Attr("address","0x710")]), Phis([]), Defs([]), -Jmps([Call(Tid(848, "%00000350"), Attrs([Attr("address","0x710"), -Attr("insn","b #-0x90")]), Int(1,1), -(Direct(Tid(1_913, "@register_tm_clones")),))]))])), Sub(Tid(1_910, "@main"), - Attrs([Attr("c.proto","signed (*)(signed argc, const char** argv)"), -Attr("address","0x71C")]), "main", Args([Arg(Tid(1_960, "%000007a8"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("main_argc",Imm(32)), -LOW(32,Var("R0",Imm(64))), In()), Arg(Tid(1_961, "%000007a9"), - Attrs([Attr("c.layout","**[char : 8]"), Attr("c.data","Top:u8 ptr ptr"), -Attr("c.type"," const char**")]), Var("main_argv",Imm(64)), -Var("R1",Imm(64)), Both()), Arg(Tid(1_962, "%000007aa"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("main_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(860, "@main"), - Attrs([Attr("address","0x71C")]), Phis([]), Defs([Def(Tid(864, "%00000360"), - Attrs([Attr("address","0x71C"), Attr("insn","sub sp, sp, #0x30")]), - Var("R31",Imm(64)), PLUS(Var("R31",Imm(64)),Int(18446744073709551568,64))), -Def(Tid(870, "%00000366"), Attrs([Attr("address","0x720"), -Attr("insn","stp x29, x30, [sp, #0x20]")]), Var("#4",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(32,64))), Def(Tid(876, "%0000036c"), - Attrs([Attr("address","0x720"), Attr("insn","stp x29, x30, [sp, #0x20]")]), - Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("#4",Imm(64)),Var("R29",Imm(64)),LittleEndian(),64)), -Def(Tid(882, "%00000372"), Attrs([Attr("address","0x720"), -Attr("insn","stp x29, x30, [sp, #0x20]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("#4",Imm(64)),Int(8,64)),Var("R30",Imm(64)),LittleEndian(),64)), -Def(Tid(888, "%00000378"), Attrs([Attr("address","0x724"), -Attr("insn","add x29, sp, #0x20")]), Var("R29",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(32,64))), Def(Tid(896, "%00000380"), - Attrs([Attr("address","0x728"), Attr("insn","stur w0, [x29, #-0x4]")]), - Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R29",Imm(64)),Int(18446744073709551612,64)),Extract(31,0,Var("R0",Imm(64))),LittleEndian(),32)), -Def(Tid(904, "%00000388"), Attrs([Attr("address","0x72C"), -Attr("insn","str x1, [sp, #0x10]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(16,64)),Var("R1",Imm(64)),LittleEndian(),64)), -Def(Tid(911, "%0000038f"), Attrs([Attr("address","0x730"), -Attr("insn","str wzr, [sp, #0xc]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(12,64)),Int(0,32),LittleEndian(),32)), -Def(Tid(918, "%00000396"), Attrs([Attr("address","0x734"), -Attr("insn","ldur w8, [x29, #-0x4]")]), Var("R8",Imm(64)), -UNSIGNED(64,Load(Var("mem",Mem(64,8)),PLUS(Var("R29",Imm(64)),Int(18446744073709551612,64)),LittleEndian(),32))), -Def(Tid(924, "%0000039c"), Attrs([Attr("address","0x738"), -Attr("insn","subs w8, w8, #0x1")]), Var("#5",Imm(32)), -PLUS(Extract(31,0,Var("R8",Imm(64))),Int(4294967294,32))), -Def(Tid(929, "%000003a1"), Attrs([Attr("address","0x738"), -Attr("insn","subs w8, w8, #0x1")]), Var("VF",Imm(1)), -NEQ(SIGNED(33,PLUS(Var("#5",Imm(32)),Int(1,32))),PLUS(SIGNED(33,Extract(31,0,Var("R8",Imm(64)))),Int(8589934591,33)))), -Def(Tid(934, "%000003a6"), Attrs([Attr("address","0x738"), -Attr("insn","subs w8, w8, #0x1")]), Var("CF",Imm(1)), -NEQ(UNSIGNED(33,PLUS(Var("#5",Imm(32)),Int(1,32))),PLUS(UNSIGNED(33,Extract(31,0,Var("R8",Imm(64)))),Int(4294967295,33)))), -Def(Tid(938, "%000003aa"), Attrs([Attr("address","0x738"), -Attr("insn","subs w8, w8, #0x1")]), Var("ZF",Imm(1)), -EQ(PLUS(Var("#5",Imm(32)),Int(1,32)),Int(0,32))), Def(Tid(942, "%000003ae"), - Attrs([Attr("address","0x738"), Attr("insn","subs w8, w8, #0x1")]), - Var("NF",Imm(1)), Extract(31,31,PLUS(Var("#5",Imm(32)),Int(1,32)))), -Def(Tid(946, "%000003b2"), Attrs([Attr("address","0x738"), -Attr("insn","subs w8, w8, #0x1")]), Var("R8",Imm(64)), -UNSIGNED(64,PLUS(Var("#5",Imm(32)),Int(1,32)))), Def(Tid(954, "%000003ba"), - Attrs([Attr("address","0x73C"), Attr("insn","str x8, [sp]")]), - Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("R31",Imm(64)),Var("R8",Imm(64)),LittleEndian(),64)), -Def(Tid(960, "%000003c0"), Attrs([Attr("address","0x740"), -Attr("insn","subs x8, x8, #0x4")]), Var("#6",Imm(64)), -PLUS(Var("R8",Imm(64)),Int(18446744073709551611,64))), -Def(Tid(965, "%000003c5"), Attrs([Attr("address","0x740"), -Attr("insn","subs x8, x8, #0x4")]), Var("VF",Imm(1)), -NEQ(SIGNED(65,PLUS(Var("#6",Imm(64)),Int(1,64))),PLUS(SIGNED(65,Var("R8",Imm(64))),Int(36893488147419103228,65)))), -Def(Tid(970, "%000003ca"), Attrs([Attr("address","0x740"), -Attr("insn","subs x8, x8, #0x4")]), Var("CF",Imm(1)), -NEQ(UNSIGNED(65,PLUS(Var("#6",Imm(64)),Int(1,64))),PLUS(UNSIGNED(65,Var("R8",Imm(64))),Int(18446744073709551612,65)))), -Def(Tid(974, "%000003ce"), Attrs([Attr("address","0x740"), -Attr("insn","subs x8, x8, #0x4")]), Var("ZF",Imm(1)), -EQ(PLUS(Var("#6",Imm(64)),Int(1,64)),Int(0,64))), Def(Tid(978, "%000003d2"), - Attrs([Attr("address","0x740"), Attr("insn","subs x8, x8, #0x4")]), - Var("NF",Imm(1)), Extract(63,63,PLUS(Var("#6",Imm(64)),Int(1,64)))), -Def(Tid(982, "%000003d6"), Attrs([Attr("address","0x740"), -Attr("insn","subs x8, x8, #0x4")]), Var("R8",Imm(64)), -PLUS(Var("#6",Imm(64)),Int(1,64)))]), Jmps([Goto(Tid(995, "%000003e3"), - Attrs([Attr("address","0x744"), Attr("insn","cset w8, hi")]), - NOT(AND(EQ(Var("CF",Imm(1)),Int(1,1)),EQ(Var("ZF",Imm(1)),Int(0,1)))), -Direct(Tid(988, "%000003dc"))), Goto(Tid(996, "%000003e4"), - Attrs([Attr("address","0x744"), Attr("insn","cset w8, hi")]), Int(1,1), -Direct(Tid(991, "%000003df")))])), Blk(Tid(991, "%000003df"), Attrs([]), - Phis([]), Defs([Def(Tid(992, "%000003e0"), Attrs([Attr("address","0x744"), -Attr("insn","cset w8, hi")]), Var("R8",Imm(64)), Int(1,64))]), -Jmps([Goto(Tid(998, "%000003e6"), Attrs([Attr("address","0x744"), -Attr("insn","cset w8, hi")]), Int(1,1), Direct(Tid(994, "%000003e2")))])), -Blk(Tid(988, "%000003dc"), Attrs([]), Phis([]), -Defs([Def(Tid(989, "%000003dd"), Attrs([Attr("address","0x744"), -Attr("insn","cset w8, hi")]), Var("R8",Imm(64)), Int(0,64))]), -Jmps([Goto(Tid(997, "%000003e5"), Attrs([Attr("address","0x744"), -Attr("insn","cset w8, hi")]), Int(1,1), Direct(Tid(994, "%000003e2")))])), -Blk(Tid(994, "%000003e2"), Attrs([]), Phis([]), Defs([]), -Jmps([Goto(Tid(1_004, "%000003ec"), Attrs([Attr("address","0x748"), -Attr("insn","tbnz w8, #0x0, #0x5c")]), - EQ(Extract(0,0,Var("R8",Imm(64))),Int(1,1)), -Direct(Tid(1_002, "%000003ea"))), Goto(Tid(1_943, "%00000797"), Attrs([]), - Int(1,1), Direct(Tid(1_051, "%0000041b")))])), Blk(Tid(1_002, "%000003ea"), - Attrs([Attr("address","0x7A4")]), Phis([]), -Defs([Def(Tid(1_010, "%000003f2"), Attrs([Attr("address","0x7A4"), -Attr("insn","mov w8, #0x5")]), Var("R8",Imm(64)), Int(5,64)), -Def(Tid(1_018, "%000003fa"), Attrs([Attr("address","0x7A8"), -Attr("insn","str w8, [sp, #0xc]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(12,64)),Extract(31,0,Var("R8",Imm(64))),LittleEndian(),32))]), -Jmps([Goto(Tid(1_023, "%000003ff"), Attrs([Attr("address","0x7AC"), -Attr("insn","b #0x4")]), Int(1,1), Direct(Tid(1_021, "%000003fd")))])), -Blk(Tid(1_021, "%000003fd"), Attrs([Attr("address","0x7B0")]), Phis([]), -Defs([Def(Tid(1_028, "%00000404"), Attrs([Attr("address","0x7B0"), -Attr("insn","ldp x29, x30, [sp, #0x20]")]), Var("#7",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(32,64))), Def(Tid(1_033, "%00000409"), - Attrs([Attr("address","0x7B0"), Attr("insn","ldp x29, x30, [sp, #0x20]")]), - Var("R29",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("#7",Imm(64)),LittleEndian(),64)), -Def(Tid(1_038, "%0000040e"), Attrs([Attr("address","0x7B0"), -Attr("insn","ldp x29, x30, [sp, #0x20]")]), Var("R30",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("#7",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(1_044, "%00000414"), Attrs([Attr("address","0x7B4"), -Attr("insn","add sp, sp, #0x30")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(48,64)))]), Jmps([Call(Tid(1_049, "%00000419"), - Attrs([Attr("address","0x7B8"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))])), Blk(Tid(1_051, "%0000041b"), - Attrs([Attr("address","0x74C")]), Phis([]), -Defs([Def(Tid(1_056, "%00000420"), Attrs([Attr("address","0x74C"), -Attr("insn","ldr x11, [sp]")]), Var("R11",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(1_061, "%00000425"), Attrs([Attr("address","0x750"), -Attr("insn","adrp x10, #0")]), Var("R10",Imm(64)), Int(0,64)), -Def(Tid(1_067, "%0000042b"), Attrs([Attr("address","0x754"), -Attr("insn","add x10, x10, #0x7d4")]), Var("R10",Imm(64)), -PLUS(Var("R10",Imm(64)),Int(2004,64))), Def(Tid(1_072, "%00000430"), - Attrs([Attr("address","0x758"), Attr("insn","adr x8, #0x0")]), - Var("R8",Imm(64)), Int(1880,64)), Def(Tid(1_080, "%00000438"), - Attrs([Attr("address","0x75C"), -Attr("insn","ldrsw x9, [x10, x11, lsl #2]")]), Var("R9",Imm(64)), -SIGNED(64,Load(Var("mem",Mem(64,8)),PLUS(Var("R10",Imm(64)),Concat(Extract(61,0,Var("R11",Imm(64))),Int(0,2))),LittleEndian(),32))), -Def(Tid(1_087, "%0000043f"), Attrs([Attr("address","0x760"), -Attr("insn","add x8, x8, x9")]), Var("R8",Imm(64)), -PLUS(Var("R8",Imm(64)),Var("R9",Imm(64))))]), -Jmps([Call(Tid(1_092, "%00000444"), Attrs([Attr("address","0x764"), -Attr("insn","br x8")]), Int(1,1), (Indirect(Var("R8",Imm(64))),))]))])), -Sub(Tid(1_912, "@r"), Attrs([Attr("c.proto","signed (*)(void)"), -Attr("address","0x714")]), "r", Args([Arg(Tid(1_963, "%000007ab"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("r_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(850, "@r"), - Attrs([Attr("address","0x714")]), Phis([]), Defs([Def(Tid(853, "%00000355"), - Attrs([Attr("address","0x714"), Attr("insn","mov w0, #0x1")]), - Var("R0",Imm(64)), Int(1,64))]), Jmps([Call(Tid(858, "%0000035a"), - Attrs([Attr("address","0x718"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), -Sub(Tid(1_913, "@register_tm_clones"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x680")]), - "register_tm_clones", Args([Arg(Tid(1_964, "%000007ac"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("register_tm_clones_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(696, "@register_tm_clones"), Attrs([Attr("address","0x680")]), - Phis([]), Defs([Def(Tid(699, "%000002bb"), Attrs([Attr("address","0x680"), -Attr("insn","adrp x0, #69632")]), Var("R0",Imm(64)), Int(69632,64)), -Def(Tid(705, "%000002c1"), Attrs([Attr("address","0x684"), -Attr("insn","add x0, x0, #0x30")]), Var("R0",Imm(64)), -PLUS(Var("R0",Imm(64)),Int(48,64))), Def(Tid(710, "%000002c6"), - Attrs([Attr("address","0x688"), Attr("insn","adrp x1, #69632")]), - Var("R1",Imm(64)), Int(69632,64)), Def(Tid(716, "%000002cc"), - Attrs([Attr("address","0x68C"), Attr("insn","add x1, x1, #0x30")]), - Var("R1",Imm(64)), PLUS(Var("R1",Imm(64)),Int(48,64))), -Def(Tid(723, "%000002d3"), Attrs([Attr("address","0x690"), -Attr("insn","sub x1, x1, x0")]), Var("R1",Imm(64)), -PLUS(PLUS(Var("R1",Imm(64)),NOT(Var("R0",Imm(64)))),Int(1,64))), -Def(Tid(729, "%000002d9"), Attrs([Attr("address","0x694"), -Attr("insn","lsr x2, x1, #63")]), Var("R2",Imm(64)), -Concat(Int(0,63),Extract(63,63,Var("R1",Imm(64))))), -Def(Tid(736, "%000002e0"), Attrs([Attr("address","0x698"), -Attr("insn","add x1, x2, x1, asr #3")]), Var("R1",Imm(64)), -PLUS(Var("R2",Imm(64)),ARSHIFT(Var("R1",Imm(64)),Int(3,3)))), -Def(Tid(742, "%000002e6"), Attrs([Attr("address","0x69C"), -Attr("insn","asr x1, x1, #1")]), Var("R1",Imm(64)), -SIGNED(64,Extract(63,1,Var("R1",Imm(64)))))]), -Jmps([Goto(Tid(748, "%000002ec"), Attrs([Attr("address","0x6A0"), -Attr("insn","cbz x1, #0x18")]), EQ(Var("R1",Imm(64)),Int(0,64)), -Direct(Tid(746, "%000002ea"))), Goto(Tid(1_944, "%00000798"), Attrs([]), - Int(1,1), Direct(Tid(1_240, "%000004d8")))])), Blk(Tid(1_240, "%000004d8"), - Attrs([Attr("address","0x6A4")]), Phis([]), -Defs([Def(Tid(1_243, "%000004db"), Attrs([Attr("address","0x6A4"), -Attr("insn","adrp x2, #65536")]), Var("R2",Imm(64)), Int(65536,64)), -Def(Tid(1_250, "%000004e2"), Attrs([Attr("address","0x6A8"), -Attr("insn","ldr x2, [x2, #0xfe0]")]), Var("R2",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R2",Imm(64)),Int(4064,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(1_255, "%000004e7"), Attrs([Attr("address","0x6AC"), -Attr("insn","cbz x2, #0xc")]), EQ(Var("R2",Imm(64)),Int(0,64)), -Direct(Tid(746, "%000002ea"))), Goto(Tid(1_945, "%00000799"), Attrs([]), - Int(1,1), Direct(Tid(1_259, "%000004eb")))])), Blk(Tid(746, "%000002ea"), - Attrs([Attr("address","0x6B8")]), Phis([]), Defs([]), -Jmps([Call(Tid(754, "%000002f2"), Attrs([Attr("address","0x6B8"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))])), -Blk(Tid(1_259, "%000004eb"), Attrs([Attr("address","0x6B0")]), Phis([]), -Defs([Def(Tid(1_263, "%000004ef"), Attrs([Attr("address","0x6B0"), -Attr("insn","mov x16, x2")]), Var("R16",Imm(64)), Var("R2",Imm(64)))]), -Jmps([Call(Tid(1_268, "%000004f4"), Attrs([Attr("address","0x6B4"), -Attr("insn","br x16")]), Int(1,1), -(Indirect(Var("R16",Imm(64))),))]))]))]))) \ No newline at end of file diff --git a/src/test/indirect_calls/switch2/clang/switch2.bir b/src/test/indirect_calls/switch2/clang/switch2.bir deleted file mode 100644 index f452adfa2..000000000 --- a/src/test/indirect_calls/switch2/clang/switch2.bir +++ /dev/null @@ -1,286 +0,0 @@ -0000079a: program -00000764: sub __cxa_finalize(__cxa_finalize_result) -0000079b: __cxa_finalize_result :: out u32 = low:32[R0] - -000004d4: -000005cc: R16 := 0x11000 -000005d3: R17 := mem[R16 + 8, el]:u64 -000005d9: R16 := R16 + 8 -000005de: call R17 with noreturn - -00000765: sub __do_global_dtors_aux(__do_global_dtors_aux_result) -0000079c: __do_global_dtors_aux_result :: out u32 = low:32[R0] - -000002f6: -000002fa: #3 := R31 - 0x20 -00000300: mem := mem with [#3, el]:u64 <- R29 -00000306: mem := mem with [#3 + 8, el]:u64 <- R30 -0000030a: R31 := #3 -00000310: R29 := R31 -00000318: mem := mem with [R31 + 0x10, el]:u64 <- R19 -0000031d: R19 := 0x11000 -00000324: R0 := pad:64[mem[R19 + 0x30]] -0000032b: when 31:0[R0] <> 0 goto %00000329 -0000078f: goto %0000049d - -0000049d: -000004a0: R0 := 0x10000 -000004a7: R0 := mem[R0 + 0xFC8, el]:u64 -000004ad: when R0 = 0 goto %000004ab -00000790: goto %000004c4 - -000004c4: -000004c7: R0 := 0x11000 -000004ce: R0 := mem[R0 + 0x28, el]:u64 -000004d3: R30 := 0x6F0 -000004d6: call @__cxa_finalize with return %000004ab - -000004ab: -000004b3: R30 := 0x6F4 -000004b5: call @deregister_tm_clones with return %000004b7 - -000004b7: -000004ba: R0 := 1 -000004c2: mem := mem with [R19 + 0x30] <- 7:0[R0] -00000791: goto %00000329 - -00000329: -00000333: R19 := mem[R31 + 0x10, el]:u64 -0000033a: R29 := mem[R31, el]:u64 -0000033f: R30 := mem[R31 + 8, el]:u64 -00000343: R31 := R31 + 0x20 -00000348: call R30 with noreturn - -00000769: sub __libc_start_main(__libc_start_main_main, __libc_start_main_arg2, __libc_start_main_arg3, __libc_start_main_auxv, __libc_start_main_result) -0000079d: __libc_start_main_main :: in u64 = R0 -0000079e: __libc_start_main_arg2 :: in u32 = low:32[R1] -0000079f: __libc_start_main_arg3 :: in out u64 = R2 -000007a0: __libc_start_main_auxv :: in out u64 = R3 -000007a1: __libc_start_main_result :: out u32 = low:32[R0] - -0000024f: -000005b6: R16 := 0x11000 -000005bd: R17 := mem[R16, el]:u64 -000005c3: R16 := R16 -000005c8: call R17 with noreturn - -0000076a: sub _fini(_fini_result) -000007a2: _fini_result :: out u32 = low:32[R0] - -0000001f: -00000025: #0 := R31 - 0x10 -0000002b: mem := mem with [#0, el]:u64 <- R29 -00000031: mem := mem with [#0 + 8, el]:u64 <- R30 -00000035: R31 := #0 -0000003b: R29 := R31 -00000042: R29 := mem[R31, el]:u64 -00000047: R30 := mem[R31 + 8, el]:u64 -0000004b: R31 := R31 + 0x10 -00000050: call R30 with noreturn - -0000076b: sub _init(_init_result) -000007a3: _init_result :: out u32 = low:32[R0] - -0000069c: -000006a2: #9 := R31 - 0x10 -000006a8: mem := mem with [#9, el]:u64 <- R29 -000006ae: mem := mem with [#9 + 8, el]:u64 <- R30 -000006b2: R31 := #9 -000006b8: R29 := R31 -000006bd: R30 := 0x590 -000006bf: call @call_weak_fn with return %000006c1 - -000006c1: -000006c6: R29 := mem[R31, el]:u64 -000006cb: R30 := mem[R31 + 8, el]:u64 -000006cf: R31 := R31 + 0x10 -000006d4: call R30 with noreturn - -0000076c: sub _start(_start_result) -000007a4: _start_result :: out u32 = low:32[R0] - -00000210: -00000215: R29 := 0 -0000021a: R30 := 0 -00000220: R5 := R0 -00000227: R1 := mem[R31, el]:u64 -0000022d: R2 := R31 + 8 -00000233: R6 := R31 -00000238: R0 := 0x10000 -0000023f: R0 := mem[R0 + 0xFD8, el]:u64 -00000244: R3 := 0 -00000249: R4 := 0 -0000024e: R30 := 0x630 -00000251: call @__libc_start_main with return %00000253 - -00000253: -00000256: R30 := 0x634 -00000259: call @abort with return %00000792 - -00000792: -00000793: call @call_weak_fn with noreturn - -0000076f: sub abort() - - -00000257: -000005f8: R16 := 0x11000 -000005ff: R17 := mem[R16 + 0x18, el]:u64 -00000605: R16 := R16 + 0x18 -0000060a: call R17 with noreturn - -00000770: sub call_weak_fn(call_weak_fn_result) -000007a5: call_weak_fn_result :: out u32 = low:32[R0] - -0000025b: -0000025e: R0 := 0x10000 -00000265: R0 := mem[R0 + 0xFD0, el]:u64 -0000026b: when R0 = 0 goto %00000269 -00000794: goto %00000514 - -00000269: -00000271: call R30 with noreturn - -00000514: -00000517: goto @__gmon_start__ - -00000515: -000005e2: R16 := 0x11000 -000005e9: R17 := mem[R16 + 0x10, el]:u64 -000005ef: R16 := R16 + 0x10 -000005f4: call R17 with noreturn - -00000772: sub deregister_tm_clones(deregister_tm_clones_result) -000007a6: deregister_tm_clones_result :: out u32 = low:32[R0] - -00000277: -0000027a: R0 := 0x11000 -00000280: R0 := R0 + 0x30 -00000285: R1 := 0x11000 -0000028b: R1 := R1 + 0x30 -00000291: #1 := ~R0 -00000296: #2 := R1 + ~R0 -0000029c: VF := extend:65[#2 + 1] <> extend:65[R1] + extend:65[#1] + 1 -000002a2: CF := pad:65[#2 + 1] <> pad:65[R1] + pad:65[#1] + 1 -000002a6: ZF := #2 + 1 = 0 -000002aa: NF := 63:63[#2 + 1] -000002b0: when ZF goto %000002ae -00000795: goto %000004f6 - -000004f6: -000004f9: R1 := 0x10000 -00000500: R1 := mem[R1 + 0xFC0, el]:u64 -00000505: when R1 = 0 goto %000002ae -00000796: goto %00000509 - -000002ae: -000002b6: call R30 with noreturn - -00000509: -0000050d: R16 := R1 -00000512: call R16 with noreturn - -00000775: sub frame_dummy(frame_dummy_result) -000007a7: frame_dummy_result :: out u32 = low:32[R0] - -0000034e: -00000350: call @register_tm_clones with noreturn - -00000776: sub main(main_argc, main_argv, main_result) -000007a8: main_argc :: in u32 = low:32[R0] -000007a9: main_argv :: in out u64 = R1 -000007aa: main_result :: out u32 = low:32[R0] - -0000035c: -00000360: R31 := R31 - 0x30 -00000366: #4 := R31 + 0x20 -0000036c: mem := mem with [#4, el]:u64 <- R29 -00000372: mem := mem with [#4 + 8, el]:u64 <- R30 -00000378: R29 := R31 + 0x20 -00000380: mem := mem with [R29 - 4, el]:u32 <- 31:0[R0] -00000388: mem := mem with [R31 + 0x10, el]:u64 <- R1 -0000038f: mem := mem with [R31 + 0xC, el]:u32 <- 0 -00000396: R8 := pad:64[mem[R29 - 4, el]:u32] -0000039c: #5 := 31:0[R8] - 2 -000003a1: VF := extend:33[#5 + 1] <> extend:33[31:0[R8]] - 1 -000003a6: CF := pad:33[#5 + 1] <> pad:33[31:0[R8]] + 0xFFFFFFFF -000003aa: ZF := #5 + 1 = 0 -000003ae: NF := 31:31[#5 + 1] -000003b2: R8 := pad:64[#5 + 1] -000003ba: mem := mem with [R31, el]:u64 <- R8 -000003c0: #6 := R8 - 5 -000003c5: VF := extend:65[#6 + 1] <> extend:65[R8] - 4 -000003ca: CF := pad:65[#6 + 1] <> pad:65[R8] + 0xFFFFFFFFFFFFFFFC -000003ce: ZF := #6 + 1 = 0 -000003d2: NF := 63:63[#6 + 1] -000003d6: R8 := #6 + 1 -000003e3: when ~(CF & ~ZF) goto %000003dc -000003e4: goto %000003df - -000003df: -000003e0: R8 := 1 -000003e6: goto %000003e2 - -000003dc: -000003dd: R8 := 0 -000003e5: goto %000003e2 - -000003e2: -000003ec: when 0:0[R8] goto %000003ea -00000797: goto %0000041b - -000003ea: -000003f2: R8 := 5 -000003fa: mem := mem with [R31 + 0xC, el]:u32 <- 31:0[R8] -000003ff: goto %000003fd - -000003fd: -00000404: #7 := R31 + 0x20 -00000409: R29 := mem[#7, el]:u64 -0000040e: R30 := mem[#7 + 8, el]:u64 -00000414: R31 := R31 + 0x30 -00000419: call R30 with noreturn - -0000041b: -00000420: R11 := mem[R31, el]:u64 -00000425: R10 := 0 -0000042b: R10 := R10 + 0x7D4 -00000430: R8 := 0x758 -00000438: R9 := extend:64[mem[R10 + (61:0[R11].0), el]:u32] -0000043f: R8 := R8 + R9 -00000444: call R8 with noreturn - -00000778: sub r(r_result) -000007ab: r_result :: out u32 = low:32[R0] - -00000352: -00000355: R0 := 1 -0000035a: call R30 with noreturn - -00000779: sub register_tm_clones(register_tm_clones_result) -000007ac: register_tm_clones_result :: out u32 = low:32[R0] - -000002b8: -000002bb: R0 := 0x11000 -000002c1: R0 := R0 + 0x30 -000002c6: R1 := 0x11000 -000002cc: R1 := R1 + 0x30 -000002d3: R1 := R1 + ~R0 + 1 -000002d9: R2 := 0.63:63[R1] -000002e0: R1 := R2 + (R1 ~>> 3) -000002e6: R1 := extend:64[63:1[R1]] -000002ec: when R1 = 0 goto %000002ea -00000798: goto %000004d8 - -000004d8: -000004db: R2 := 0x10000 -000004e2: R2 := mem[R2 + 0xFE0, el]:u64 -000004e7: when R2 = 0 goto %000002ea -00000799: goto %000004eb - -000002ea: -000002f2: call R30 with noreturn - -000004eb: -000004ef: R16 := R2 -000004f4: call R16 with noreturn diff --git a/src/test/indirect_calls/switch2/clang/switch2.gts b/src/test/indirect_calls/switch2/clang/switch2.gts deleted file mode 100644 index 7a27843c4..000000000 Binary files a/src/test/indirect_calls/switch2/clang/switch2.gts and /dev/null differ diff --git a/src/test/indirect_calls/switch2/clang/switch2.md5sum b/src/test/indirect_calls/switch2/clang/switch2.md5sum new file mode 100644 index 000000000..3dffd199d --- /dev/null +++ b/src/test/indirect_calls/switch2/clang/switch2.md5sum @@ -0,0 +1,5 @@ +2ad9c46ee9c38b030eac0f9bef5569ac indirect_calls/switch2/clang/a.out +2fc3656899fc930f5c1259150b210f67 indirect_calls/switch2/clang/switch2.adt +c010533e7fd063ea533e55e19c840ac3 indirect_calls/switch2/clang/switch2.bir +e67aafab534e34eae6a62026e46e2f3f indirect_calls/switch2/clang/switch2.relf +3a2b413fa8e37eaa9b75bf2426cae7d9 indirect_calls/switch2/clang/switch2.gts diff --git a/src/test/indirect_calls/switch2/clang/switch2.relf b/src/test/indirect_calls/switch2/clang/switch2.relf deleted file mode 100644 index 91dd06ce8..000000000 --- a/src/test/indirect_calls/switch2/clang/switch2.relf +++ /dev/null @@ -1,123 +0,0 @@ - -Relocation section '.rela.dyn' at offset 0x460 contains 8 entries: - Offset Info Type Symbol's Value Symbol's Name + Addend -0000000000010dc8 0000000000000403 R_AARCH64_RELATIVE 710 -0000000000010dd0 0000000000000403 R_AARCH64_RELATIVE 6c0 -0000000000010fd8 0000000000000403 R_AARCH64_RELATIVE 71c -0000000000011028 0000000000000403 R_AARCH64_RELATIVE 11028 -0000000000010fc0 0000000400000401 R_AARCH64_GLOB_DAT 0000000000000000 _ITM_deregisterTMCloneTable + 0 -0000000000010fc8 0000000500000401 R_AARCH64_GLOB_DAT 0000000000000000 __cxa_finalize@GLIBC_2.17 + 0 -0000000000010fd0 0000000600000401 R_AARCH64_GLOB_DAT 0000000000000000 __gmon_start__ + 0 -0000000000010fe0 0000000800000401 R_AARCH64_GLOB_DAT 0000000000000000 _ITM_registerTMCloneTable + 0 - -Relocation section '.rela.plt' at offset 0x520 contains 4 entries: - Offset Info Type Symbol's Value Symbol's Name + Addend -0000000000011000 0000000300000402 R_AARCH64_JUMP_SLOT 0000000000000000 __libc_start_main@GLIBC_2.34 + 0 -0000000000011008 0000000500000402 R_AARCH64_JUMP_SLOT 0000000000000000 __cxa_finalize@GLIBC_2.17 + 0 -0000000000011010 0000000600000402 R_AARCH64_JUMP_SLOT 0000000000000000 __gmon_start__ + 0 -0000000000011018 0000000700000402 R_AARCH64_JUMP_SLOT 0000000000000000 abort@GLIBC_2.17 + 0 - -Symbol table '.dynsym' contains 9 entries: - Num: Value Size Type Bind Vis Ndx Name - 0: 0000000000000000 0 NOTYPE LOCAL DEFAULT UND - 1: 0000000000000580 0 SECTION LOCAL DEFAULT 11 .init - 2: 0000000000011020 0 SECTION LOCAL DEFAULT 23 .data - 3: 0000000000000000 0 FUNC GLOBAL DEFAULT UND __libc_start_main@GLIBC_2.34 (2) - 4: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_deregisterTMCloneTable - 5: 0000000000000000 0 FUNC WEAK DEFAULT UND __cxa_finalize@GLIBC_2.17 (3) - 6: 0000000000000000 0 NOTYPE WEAK DEFAULT UND __gmon_start__ - 7: 0000000000000000 0 FUNC GLOBAL DEFAULT UND abort@GLIBC_2.17 (3) - 8: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_registerTMCloneTable - -Symbol table '.symtab' contains 90 entries: - Num: Value Size Type Bind Vis Ndx Name - 0: 0000000000000000 0 NOTYPE LOCAL DEFAULT UND - 1: 0000000000000238 0 SECTION LOCAL DEFAULT 1 .interp - 2: 0000000000000254 0 SECTION LOCAL DEFAULT 2 .note.gnu.build-id - 3: 0000000000000278 0 SECTION LOCAL DEFAULT 3 .note.ABI-tag - 4: 0000000000000298 0 SECTION LOCAL DEFAULT 4 .gnu.hash - 5: 00000000000002b8 0 SECTION LOCAL DEFAULT 5 .dynsym - 6: 0000000000000390 0 SECTION LOCAL DEFAULT 6 .dynstr - 7: 000000000000041e 0 SECTION LOCAL DEFAULT 7 .gnu.version - 8: 0000000000000430 0 SECTION LOCAL DEFAULT 8 .gnu.version_r - 9: 0000000000000460 0 SECTION LOCAL DEFAULT 9 .rela.dyn - 10: 0000000000000520 0 SECTION LOCAL DEFAULT 10 .rela.plt - 11: 0000000000000580 0 SECTION LOCAL DEFAULT 11 .init - 12: 00000000000005a0 0 SECTION LOCAL DEFAULT 12 .plt - 13: 0000000000000600 0 SECTION LOCAL DEFAULT 13 .text - 14: 00000000000007bc 0 SECTION LOCAL DEFAULT 14 .fini - 15: 00000000000007d0 0 SECTION LOCAL DEFAULT 15 .rodata - 16: 00000000000007e8 0 SECTION LOCAL DEFAULT 16 .eh_frame_hdr - 17: 0000000000000830 0 SECTION LOCAL DEFAULT 17 .eh_frame - 18: 0000000000010dc8 0 SECTION LOCAL DEFAULT 18 .init_array - 19: 0000000000010dd0 0 SECTION LOCAL DEFAULT 19 .fini_array - 20: 0000000000010dd8 0 SECTION LOCAL DEFAULT 20 .dynamic - 21: 0000000000010fb8 0 SECTION LOCAL DEFAULT 21 .got - 22: 0000000000010fe8 0 SECTION LOCAL DEFAULT 22 .got.plt - 23: 0000000000011020 0 SECTION LOCAL DEFAULT 23 .data - 24: 0000000000011030 0 SECTION LOCAL DEFAULT 24 .bss - 25: 0000000000000000 0 SECTION LOCAL DEFAULT 25 .comment - 26: 0000000000000000 0 FILE LOCAL DEFAULT ABS Scrt1.o - 27: 0000000000000278 0 NOTYPE LOCAL DEFAULT 3 $d - 28: 0000000000000278 32 OBJECT LOCAL DEFAULT 3 __abi_tag - 29: 0000000000000600 0 NOTYPE LOCAL DEFAULT 13 $x - 30: 0000000000000844 0 NOTYPE LOCAL DEFAULT 17 $d - 31: 00000000000007d0 0 NOTYPE LOCAL DEFAULT 15 $d - 32: 0000000000000000 0 FILE LOCAL DEFAULT ABS crti.o - 33: 0000000000000634 0 NOTYPE LOCAL DEFAULT 13 $x - 34: 0000000000000634 20 FUNC LOCAL DEFAULT 13 call_weak_fn - 35: 0000000000000580 0 NOTYPE LOCAL DEFAULT 11 $x - 36: 00000000000007bc 0 NOTYPE LOCAL DEFAULT 14 $x - 37: 0000000000000000 0 FILE LOCAL DEFAULT ABS crtn.o - 38: 0000000000000590 0 NOTYPE LOCAL DEFAULT 11 $x - 39: 00000000000007c8 0 NOTYPE LOCAL DEFAULT 14 $x - 40: 0000000000000000 0 FILE LOCAL DEFAULT ABS crtstuff.c - 41: 0000000000000650 0 NOTYPE LOCAL DEFAULT 13 $x - 42: 0000000000000650 0 FUNC LOCAL DEFAULT 13 deregister_tm_clones - 43: 0000000000000680 0 FUNC LOCAL DEFAULT 13 register_tm_clones - 44: 0000000000011028 0 NOTYPE LOCAL DEFAULT 23 $d - 45: 00000000000006c0 0 FUNC LOCAL DEFAULT 13 __do_global_dtors_aux - 46: 0000000000011030 1 OBJECT LOCAL DEFAULT 24 completed.0 - 47: 0000000000010dd0 0 NOTYPE LOCAL DEFAULT 19 $d - 48: 0000000000010dd0 0 OBJECT LOCAL DEFAULT 19 __do_global_dtors_aux_fini_array_entry - 49: 0000000000000710 0 FUNC LOCAL DEFAULT 13 frame_dummy - 50: 0000000000010dc8 0 NOTYPE LOCAL DEFAULT 18 $d - 51: 0000000000010dc8 0 OBJECT LOCAL DEFAULT 18 __frame_dummy_init_array_entry - 52: 0000000000000858 0 NOTYPE LOCAL DEFAULT 17 $d - 53: 0000000000011030 0 NOTYPE LOCAL DEFAULT 24 $d - 54: 0000000000000000 0 FILE LOCAL DEFAULT ABS switch2.c - 55: 0000000000000714 0 NOTYPE LOCAL DEFAULT 13 $x.0 - 56: 00000000000007d4 0 NOTYPE LOCAL DEFAULT 15 $d.1 - 57: 000000000000002a 0 NOTYPE LOCAL DEFAULT 25 $d.2 - 58: 00000000000008b8 0 NOTYPE LOCAL DEFAULT 17 $d.3 - 59: 0000000000000000 0 FILE LOCAL DEFAULT ABS crtstuff.c - 60: 0000000000000908 0 NOTYPE LOCAL DEFAULT 17 $d - 61: 0000000000000908 0 OBJECT LOCAL DEFAULT 17 __FRAME_END__ - 62: 0000000000000000 0 FILE LOCAL DEFAULT ABS - 63: 0000000000010dd8 0 OBJECT LOCAL DEFAULT ABS _DYNAMIC - 64: 00000000000007e8 0 NOTYPE LOCAL DEFAULT 16 __GNU_EH_FRAME_HDR - 65: 0000000000010fb8 0 OBJECT LOCAL DEFAULT ABS _GLOBAL_OFFSET_TABLE_ - 66: 00000000000005a0 0 NOTYPE LOCAL DEFAULT 12 $x - 67: 0000000000000000 0 FUNC GLOBAL DEFAULT UND __libc_start_main@GLIBC_2.34 - 68: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_deregisterTMCloneTable - 69: 0000000000011020 0 NOTYPE WEAK DEFAULT 23 data_start - 70: 0000000000011030 0 NOTYPE GLOBAL DEFAULT 24 __bss_start__ - 71: 0000000000000000 0 FUNC WEAK DEFAULT UND __cxa_finalize@GLIBC_2.17 - 72: 0000000000011038 0 NOTYPE GLOBAL DEFAULT 24 _bss_end__ - 73: 0000000000000714 8 FUNC GLOBAL DEFAULT 13 r - 74: 0000000000011030 0 NOTYPE GLOBAL DEFAULT 23 _edata - 75: 00000000000007bc 0 FUNC GLOBAL HIDDEN 14 _fini - 76: 0000000000011038 0 NOTYPE GLOBAL DEFAULT 24 __bss_end__ - 77: 0000000000011020 0 NOTYPE GLOBAL DEFAULT 23 __data_start - 78: 0000000000000000 0 NOTYPE WEAK DEFAULT UND __gmon_start__ - 79: 0000000000011028 0 OBJECT GLOBAL HIDDEN 23 __dso_handle - 80: 0000000000000000 0 FUNC GLOBAL DEFAULT UND abort@GLIBC_2.17 - 81: 00000000000007d0 4 OBJECT GLOBAL DEFAULT 15 _IO_stdin_used - 82: 0000000000011038 0 NOTYPE GLOBAL DEFAULT 24 _end - 83: 0000000000000600 52 FUNC GLOBAL DEFAULT 13 _start - 84: 0000000000011038 0 NOTYPE GLOBAL DEFAULT 24 __end__ - 85: 0000000000011030 0 NOTYPE GLOBAL DEFAULT 24 __bss_start - 86: 000000000000071c 160 FUNC GLOBAL DEFAULT 13 main - 87: 0000000000011030 0 OBJECT GLOBAL HIDDEN 23 __TMC_END__ - 88: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_registerTMCloneTable - 89: 0000000000000580 0 FUNC GLOBAL HIDDEN 11 _init diff --git a/src/test/indirect_calls/syscall/clang_O2/syscall.adt b/src/test/indirect_calls/syscall/clang_O2/syscall.adt deleted file mode 100644 index 572eaed91..000000000 --- a/src/test/indirect_calls/syscall/clang_O2/syscall.adt +++ /dev/null @@ -1,496 +0,0 @@ -Project(Attrs([Attr("filename","\"clang_O2/syscall.out\""), -Attr("image-specification","(declare abi (name str))\n(declare arch (name str))\n(declare base-address (addr int))\n(declare bias (off int))\n(declare bits (size int))\n(declare code-region (addr int) (size int) (off int))\n(declare code-start (addr int))\n(declare entry-point (addr int))\n(declare external-reference (addr int) (name str))\n(declare format (name str))\n(declare is-executable (flag bool))\n(declare is-little-endian (flag bool))\n(declare llvm:base-address (addr int))\n(declare llvm:code-entry (name str) (off int) (size int))\n(declare llvm:coff-import-library (name str))\n(declare llvm:coff-virtual-section-header (name str) (addr int) (size int))\n(declare llvm:elf-program-header (name str) (off int) (size int))\n(declare llvm:elf-program-header-flags (name str) (ld bool) (r bool) \n (w bool) (x bool))\n(declare llvm:elf-virtual-program-header (name str) (addr int) (size int))\n(declare llvm:entry-point (addr int))\n(declare llvm:macho-symbol (name str) (value int))\n(declare llvm:name-reference (at int) (name str))\n(declare llvm:relocation (at int) (addr int))\n(declare llvm:section-entry (name str) (addr int) (size int) (off int))\n(declare llvm:section-flags (name str) (r bool) (w bool) (x bool))\n(declare llvm:segment-command (name str) (off int) (size int))\n(declare llvm:segment-command-flags (name str) (r bool) (w bool) (x bool))\n(declare llvm:symbol-entry (name str) (addr int) (size int) (off int)\n (value int))\n(declare llvm:virtual-segment-command (name str) (addr int) (size int))\n(declare mapped (addr int) (size int) (off int))\n(declare named-region (addr int) (size int) (name str))\n(declare named-symbol (addr int) (name str))\n(declare require (name str))\n(declare section (addr int) (size int))\n(declare segment (addr int) (size int) (r bool) (w bool) (x bool))\n(declare subarch (name str))\n(declare symbol-chunk (addr int) (size int) (root int))\n(declare symbol-value (addr int) (value int))\n(declare system (name str))\n(declare vendor (name str))\n\n(abi unknown)\n(arch aarch64)\n(base-address 0)\n(bias 0)\n(bits 64)\n(code-region 1880 20 1880)\n(code-region 1600 280 1600)\n(code-region 1488 112 1488)\n(code-region 1464 24 1464)\n(code-start 1652)\n(code-start 1600)\n(code-start 1876)\n(entry-point 1600)\n(external-reference 69568 _ITM_deregisterTMCloneTable)\n(external-reference 69576 __cxa_finalize)\n(external-reference 69584 __gmon_start__)\n(external-reference 69600 _ITM_registerTMCloneTable)\n(external-reference 69632 __libc_start_main)\n(external-reference 69640 __cxa_finalize)\n(external-reference 69648 fork)\n(external-reference 69656 __gmon_start__)\n(external-reference 69664 abort)\n(format elf)\n(is-executable true)\n(is-little-endian true)\n(llvm:base-address 0)\n(llvm:code-entry abort 0 0)\n(llvm:code-entry fork 0 0)\n(llvm:code-entry __cxa_finalize 0 0)\n(llvm:code-entry __libc_start_main 0 0)\n(llvm:code-entry _init 1464 0)\n(llvm:code-entry main 1876 4)\n(llvm:code-entry _start 1600 52)\n(llvm:code-entry abort@GLIBC_2.17 0 0)\n(llvm:code-entry _fini 1880 0)\n(llvm:code-entry fork@GLIBC_2.17 0 0)\n(llvm:code-entry __cxa_finalize@GLIBC_2.17 0 0)\n(llvm:code-entry __libc_start_main@GLIBC_2.34 0 0)\n(llvm:code-entry frame_dummy 1872 0)\n(llvm:code-entry __do_global_dtors_aux 1792 0)\n(llvm:code-entry register_tm_clones 1728 0)\n(llvm:code-entry deregister_tm_clones 1680 0)\n(llvm:code-entry call_weak_fn 1652 20)\n(llvm:code-entry .fini 1880 20)\n(llvm:code-entry .text 1600 280)\n(llvm:code-entry .plt 1488 112)\n(llvm:code-entry .init 1464 24)\n(llvm:elf-program-header 08 3528 568)\n(llvm:elf-program-header 07 0 0)\n(llvm:elf-program-header 06 1904 60)\n(llvm:elf-program-header 05 596 68)\n(llvm:elf-program-header 04 3544 480)\n(llvm:elf-program-header 03 3528 624)\n(llvm:elf-program-header 02 0 2148)\n(llvm:elf-program-header 01 568 27)\n(llvm:elf-program-header 00 64 504)\n(llvm:elf-program-header-flags 08 false true false false)\n(llvm:elf-program-header-flags 07 false true true false)\n(llvm:elf-program-header-flags 06 false true false false)\n(llvm:elf-program-header-flags 05 false true false false)\n(llvm:elf-program-header-flags 04 false true true false)\n(llvm:elf-program-header-flags 03 true true true false)\n(llvm:elf-program-header-flags 02 true true false true)\n(llvm:elf-program-header-flags 01 false true false false)\n(llvm:elf-program-header-flags 00 false true false false)\n(llvm:elf-virtual-program-header 08 69064 568)\n(llvm:elf-virtual-program-header 07 0 0)\n(llvm:elf-virtual-program-header 06 1904 60)\n(llvm:elf-virtual-program-header 05 596 68)\n(llvm:elf-virtual-program-header 04 69080 480)\n(llvm:elf-virtual-program-header 03 69064 632)\n(llvm:elf-virtual-program-header 02 0 2148)\n(llvm:elf-virtual-program-header 01 568 27)\n(llvm:elf-virtual-program-header 00 64 504)\n(llvm:entry-point 1600)\n(llvm:name-reference 69664 abort)\n(llvm:name-reference 69656 __gmon_start__)\n(llvm:name-reference 69648 fork)\n(llvm:name-reference 69640 __cxa_finalize)\n(llvm:name-reference 69632 __libc_start_main)\n(llvm:name-reference 69600 _ITM_registerTMCloneTable)\n(llvm:name-reference 69584 __gmon_start__)\n(llvm:name-reference 69576 __cxa_finalize)\n(llvm:name-reference 69568 _ITM_deregisterTMCloneTable)\n(llvm:section-entry .shstrtab 0 259 6934)\n(llvm:section-entry .strtab 0 574 6360)\n(llvm:section-entry .symtab 0 2136 4224)\n(llvm:section-entry .comment 0 71 4152)\n(llvm:section-entry .bss 69688 8 4152)\n(llvm:section-entry .data 69672 16 4136)\n(llvm:section-entry .got.plt 69608 64 4072)\n(llvm:section-entry .got 69560 48 4024)\n(llvm:section-entry .dynamic 69080 480 3544)\n(llvm:section-entry .fini_array 69072 8 3536)\n(llvm:section-entry .init_array 69064 8 3528)\n(llvm:section-entry .eh_frame 1968 180 1968)\n(llvm:section-entry .eh_frame_hdr 1904 60 1904)\n(llvm:section-entry .rodata 1900 4 1900)\n(llvm:section-entry .fini 1880 20 1880)\n(llvm:section-entry .text 1600 280 1600)\n(llvm:section-entry .plt 1488 112 1488)\n(llvm:section-entry .init 1464 24 1464)\n(llvm:section-entry .rela.plt 1344 120 1344)\n(llvm:section-entry .rela.dyn 1152 192 1152)\n(llvm:section-entry .gnu.version_r 1104 48 1104)\n(llvm:section-entry .gnu.version 1082 20 1082)\n(llvm:section-entry .dynstr 936 146 936)\n(llvm:section-entry .dynsym 696 240 696)\n(llvm:section-entry .gnu.hash 664 28 664)\n(llvm:section-entry .note.ABI-tag 632 32 632)\n(llvm:section-entry .note.gnu.build-id 596 36 596)\n(llvm:section-entry .interp 568 27 568)\n(llvm:section-flags .shstrtab true false false)\n(llvm:section-flags .strtab true false false)\n(llvm:section-flags .symtab true false false)\n(llvm:section-flags .comment true false false)\n(llvm:section-flags .bss true true false)\n(llvm:section-flags .data true true false)\n(llvm:section-flags .got.plt true true false)\n(llvm:section-flags .got true true false)\n(llvm:section-flags .dynamic true true false)\n(llvm:section-flags .fini_array true true false)\n(llvm:section-flags .init_array true true false)\n(llvm:section-flags .eh_frame true false false)\n(llvm:section-flags .eh_frame_hdr true false false)\n(llvm:section-flags .rodata true false false)\n(llvm:section-flags .fini true false true)\n(llvm:section-flags .text true false true)\n(llvm:section-flags .plt true false true)\n(llvm:section-flags .init true false true)\n(llvm:section-flags .rela.plt true false false)\n(llvm:section-flags .rela.dyn true false false)\n(llvm:section-flags .gnu.version_r true false false)\n(llvm:section-flags .gnu.version true false false)\n(llvm:section-flags .dynstr true false false)\n(llvm:section-flags .dynsym true false false)\n(llvm:section-flags .gnu.hash true false false)\n(llvm:section-flags .note.ABI-tag true false false)\n(llvm:section-flags .note.gnu.build-id true false false)\n(llvm:section-flags .interp true false false)\n(llvm:symbol-entry abort 0 0 0 0)\n(llvm:symbol-entry fork 0 0 0 0)\n(llvm:symbol-entry __cxa_finalize 0 0 0 0)\n(llvm:symbol-entry __libc_start_main 0 0 0 0)\n(llvm:symbol-entry _init 1464 0 1464 1464)\n(llvm:symbol-entry main 1876 4 1876 1876)\n(llvm:symbol-entry _start 1600 52 1600 1600)\n(llvm:symbol-entry abort@GLIBC_2.17 0 0 0 0)\n(llvm:symbol-entry _fini 1880 0 1880 1880)\n(llvm:symbol-entry fork@GLIBC_2.17 0 0 0 0)\n(llvm:symbol-entry __cxa_finalize@GLIBC_2.17 0 0 0 0)\n(llvm:symbol-entry __libc_start_main@GLIBC_2.34 0 0 0 0)\n(llvm:symbol-entry frame_dummy 1872 0 1872 1872)\n(llvm:symbol-entry __do_global_dtors_aux 1792 0 1792 1792)\n(llvm:symbol-entry register_tm_clones 1728 0 1728 1728)\n(llvm:symbol-entry deregister_tm_clones 1680 0 1680 1680)\n(llvm:symbol-entry call_weak_fn 1652 20 1652 1652)\n(mapped 0 2148 0)\n(mapped 69064 624 3528)\n(named-region 0 2148 02)\n(named-region 69064 632 03)\n(named-region 568 27 .interp)\n(named-region 596 36 .note.gnu.build-id)\n(named-region 632 32 .note.ABI-tag)\n(named-region 664 28 .gnu.hash)\n(named-region 696 240 .dynsym)\n(named-region 936 146 .dynstr)\n(named-region 1082 20 .gnu.version)\n(named-region 1104 48 .gnu.version_r)\n(named-region 1152 192 .rela.dyn)\n(named-region 1344 120 .rela.plt)\n(named-region 1464 24 .init)\n(named-region 1488 112 .plt)\n(named-region 1600 280 .text)\n(named-region 1880 20 .fini)\n(named-region 1900 4 .rodata)\n(named-region 1904 60 .eh_frame_hdr)\n(named-region 1968 180 .eh_frame)\n(named-region 69064 8 .init_array)\n(named-region 69072 8 .fini_array)\n(named-region 69080 480 .dynamic)\n(named-region 69560 48 .got)\n(named-region 69608 64 .got.plt)\n(named-region 69672 16 .data)\n(named-region 69688 8 .bss)\n(named-region 0 71 .comment)\n(named-region 0 2136 .symtab)\n(named-region 0 574 .strtab)\n(named-region 0 259 .shstrtab)\n(named-symbol 1652 call_weak_fn)\n(named-symbol 1680 deregister_tm_clones)\n(named-symbol 1728 register_tm_clones)\n(named-symbol 1792 __do_global_dtors_aux)\n(named-symbol 1872 frame_dummy)\n(named-symbol 0 __libc_start_main@GLIBC_2.34)\n(named-symbol 0 __cxa_finalize@GLIBC_2.17)\n(named-symbol 0 fork@GLIBC_2.17)\n(named-symbol 1880 _fini)\n(named-symbol 0 abort@GLIBC_2.17)\n(named-symbol 1600 _start)\n(named-symbol 1876 main)\n(named-symbol 1464 _init)\n(named-symbol 0 __libc_start_main)\n(named-symbol 0 __cxa_finalize)\n(named-symbol 0 fork)\n(named-symbol 0 abort)\n(require libc.so.6)\n(section 568 27)\n(section 596 36)\n(section 632 32)\n(section 664 28)\n(section 696 240)\n(section 936 146)\n(section 1082 20)\n(section 1104 48)\n(section 1152 192)\n(section 1344 120)\n(section 1464 24)\n(section 1488 112)\n(section 1600 280)\n(section 1880 20)\n(section 1900 4)\n(section 1904 60)\n(section 1968 180)\n(section 69064 8)\n(section 69072 8)\n(section 69080 480)\n(section 69560 48)\n(section 69608 64)\n(section 69672 16)\n(section 69688 8)\n(section 0 71)\n(section 0 2136)\n(section 0 574)\n(section 0 259)\n(segment 0 2148 true false true)\n(segment 69064 632 true true false)\n(subarch v8)\n(symbol-chunk 1652 20 1652)\n(symbol-chunk 1600 52 1600)\n(symbol-chunk 1876 4 1876)\n(symbol-value 1652 1652)\n(symbol-value 1680 1680)\n(symbol-value 1728 1728)\n(symbol-value 1792 1792)\n(symbol-value 1872 1872)\n(symbol-value 1880 1880)\n(symbol-value 1600 1600)\n(symbol-value 1876 1876)\n(symbol-value 1464 1464)\n(symbol-value 0 0)\n(system \"\")\n(vendor \"\")\n"), -Attr("abi-name","\"aarch64-linux-gnu-elf\"")]), -Sections([Section(".shstrtab", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x40\x06\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x20\x1c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x38\x00\x09\x00\x40\x00\x1d\x00\x1c\x00\x06\x00\x00\x00\x04\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x04\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\x08\x00\x00\x00\x00\x00\x00\x64\x08\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x01\x00\x00\x00\x06\x00\x00\x00\xc8\x0d\x00\x00\x00\x00\x00\x00\xc8\x0d\x01\x00\x00\x00\x00\x00\xc8\x0d\x01"), -Section(".strtab", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x40\x06\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x20\x1c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x38\x00\x09\x00\x40\x00\x1d\x00\x1c\x00\x06\x00\x00\x00\x04\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x04\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\x08\x00\x00\x00\x00\x00\x00\x64\x08\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x01\x00\x00\x00\x06\x00\x00\x00\xc8\x0d\x00\x00\x00\x00\x00\x00\xc8\x0d\x01\x00\x00\x00\x00\x00\xc8\x0d\x01\x00\x00\x00\x00\x00\x70\x02\x00\x00\x00\x00\x00\x00\x78\x02\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x02\x00\x00\x00\x06\x00\x00\x00\xd8\x0d\x00\x00\x00\x00\x00\x00\xd8\x0d\x01\x00\x00\x00\x00\x00\xd8\x0d\x01\x00\x00\x00\x00\x00\xe0\x01\x00\x00\x00\x00\x00\x00\xe0\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x04\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x50\xe5\x74\x64\x04\x00\x00\x00\x70\x07\x00\x00\x00\x00\x00\x00\x70\x07\x00\x00\x00\x00\x00\x00\x70\x07\x00\x00\x00\x00\x00\x00\x3c\x00\x00\x00\x00\x00\x00\x00\x3c\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x51\xe5\x74\x64\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x52\xe5\x74\x64\x04\x00\x00\x00\xc8\x0d\x00\x00\x00\x00\x00\x00\xc8\x0d\x01\x00\x00\x00\x00\x00\xc8\x0d\x01\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x2f\x6c\x69\x62\x2f\x6c"), -Section(".symtab", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x40\x06\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x20\x1c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x38\x00\x09\x00\x40\x00\x1d\x00\x1c\x00\x06\x00\x00\x00\x04\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x04\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\x08\x00\x00\x00\x00\x00\x00\x64\x08\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x01\x00\x00\x00\x06\x00\x00\x00\xc8\x0d\x00\x00\x00\x00\x00\x00\xc8\x0d\x01\x00\x00\x00\x00\x00\xc8\x0d\x01\x00\x00\x00\x00\x00\x70\x02\x00\x00\x00\x00\x00\x00\x78\x02\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x02\x00\x00\x00\x06\x00\x00\x00\xd8\x0d\x00\x00\x00\x00\x00\x00\xd8\x0d\x01\x00\x00\x00\x00\x00\xd8\x0d\x01\x00\x00\x00\x00\x00\xe0\x01\x00\x00\x00\x00\x00\x00\xe0\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x04\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x50\xe5\x74\x64\x04\x00\x00\x00\x70\x07\x00\x00\x00\x00\x00\x00\x70\x07\x00\x00\x00\x00\x00\x00\x70\x07\x00\x00\x00\x00\x00\x00\x3c\x00\x00\x00\x00\x00\x00\x00\x3c\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x51\xe5\x74\x64\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x52\xe5\x74\x64\x04\x00\x00\x00\xc8\x0d\x00\x00\x00\x00\x00\x00\xc8\x0d\x01\x00\x00\x00\x00\x00\xc8\x0d\x01\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x2f\x6c\x69\x62\x2f\x6c\x64\x2d\x6c\x69\x6e\x75\x78\x2d\x61\x61\x72\x63\x68\x36\x34\x2e\x73\x6f\x2e\x31\x00\x00\x04\x00\x00\x00\x14\x00\x00\x00\x03\x00\x00\x00\x47\x4e\x55\x00\xd1\xc1\x23\x26\x7d\x9b\x31\xd0\x21\x51\x16\xb1\xe4\x76\xe5\xa5\xe4\xd1\xca\x0e\x04\x00\x00\x00\x10\x00\x00\x00\x01\x00\x00\x00\x47\x4e\x55\x00\x00\x00\x00\x00\x03\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x01\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x0b\x00\xb8\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x17\x00\x28\x10\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4d\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x22\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x28\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x69\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x22\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x78\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5f\x5f\x63\x78\x61\x5f\x66\x69\x6e\x61\x6c\x69\x7a\x65\x00\x5f\x5f\x6c\x69\x62\x63\x5f\x73\x74\x61\x72\x74\x5f\x6d\x61\x69\x6e\x00\x61\x62\x6f\x72\x74\x00\x66\x6f\x72\x6b\x00\x6c\x69\x62\x63\x2e\x73\x6f\x2e\x36\x00\x47\x4c\x49\x42\x43\x5f\x32\x2e\x31\x37\x00\x47\x4c\x49\x42\x43\x5f\x32\x2e\x33\x34\x00\x5f\x49\x54\x4d\x5f\x64\x65\x72\x65\x67\x69\x73\x74\x65\x72\x54\x4d\x43\x6c\x6f\x6e\x65\x54\x61\x62\x6c\x65\x00\x5f\x5f\x67\x6d\x6f\x6e\x5f\x73\x74\x61\x72\x74\x5f\x5f\x00\x5f\x49\x54\x4d\x5f\x72\x65\x67\x69\x73\x74\x65\x72\x54\x4d\x43\x6c\x6f\x6e\x65\x54\x61\x62\x6c\x65\x00\x00\x00\x00\x00\x00\x00\x02\x00\x01\x00\x03\x00\x03\x00\x01\x00\x03\x00\x01\x00\x00\x00\x01\x00\x02\x00\x2d\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x97\x91\x96\x06\x00\x00\x03\x00\x37\x00\x00\x00\x10\x00\x00\x00\xb4\x91\x96\x06\x00\x00\x02\x00\x42\x00\x00\x00\x00\x00\x00\x00\xc8\x0d\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x50\x07\x00\x00\x00\x00\x00\x00\xd0\x0d\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\xd8\x0f\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x54\x07\x00\x00\x00\x00\x00\x00\x30\x10\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x30\x10\x01\x00\x00\x00\x00\x00\xc0\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xc8\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xd0\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe0\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x09\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x08\x10\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x10\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x18\x10\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x20\x10\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1f\x20\x03\xd5\xfd\x7b\xbf\xa9\xfd\x03\x00\x91\x2c\x00\x00\x94\xfd\x7b\xc1\xa8\xc0\x03\x5f\xd6\xf0\x7b\xbf\xa9\x90\x00\x00\x90\x11\xfe\x47\xf9\x10\xe2\x3f\x91\x20\x02\x1f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x90\x00\x00\xb0\x11\x02\x40\xf9\x10\x02\x00\x91\x20\x02\x1f\xd6\x90\x00\x00\xb0\x11\x06\x40\xf9\x10\x22\x00\x91\x20\x02\x1f\xd6\x90\x00\x00\xb0\x11\x0a\x40\xf9\x10\x42\x00\x91\x20\x02\x1f\xd6\x90\x00\x00\xb0\x11\x0e\x40\xf9\x10\x62\x00\x91\x20\x02\x1f\xd6\x90\x00\x00\xb0\x11\x12\x40\xf9\x10\x82\x00\x91\x20\x02\x1f\xd6\x1f\x20\x03\xd5\x1d\x00\x80\xd2\x1e\x00\x80\xd2\xe5\x03\x00\xaa\xe1\x03\x40\xf9\xe2\x23\x00\x91\xe6\x03\x00\x91\x80\x00\x00\x90\x00\xec\x47\xf9\x03\x00\x80\xd2\x04\x00\x80\xd2\xe1\xff\xff\x97\xf0\xff\xff\x97\x80\x00\x00\x90\x00\xe8\x47\xf9\x40\x00\x00\xb4\xe8\xff\xff\x17\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x80\x00\x00\xb0\x00\xe0\x00\x91\x81\x00\x00\xb0\x21\xe0\x00\x91\x3f\x00\x00\xeb\xc0\x00\x00\x54\x81\x00\x00\x90\x21\xe0\x47\xf9\x61\x00\x00\xb4\xf0\x03\x01\xaa\x00\x02\x1f\xd6\xc0\x03\x5f\xd6\x80\x00\x00\xb0\x00\xe0\x00\x91\x81\x00\x00\xb0\x21\xe0\x00\x91\x21\x00\x00\xcb\x22\xfc\x7f\xd3\x41\x0c\x81\x8b\x21\xfc\x41\x93\xc1\x00\x00\xb4\x82\x00\x00\x90\x42\xf0\x47\xf9\x62\x00\x00\xb4\xf0\x03\x02\xaa\x00\x02\x1f\xd6\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\xfd\x7b\xbe\xa9\xfd\x03\x00\x91\xf3\x0b\x00\xf9\x93\x00\x00\xb0\x60\xe2\x40\x39\x40\x01\x00\x35\x80\x00\x00\x90\x00\xe4\x47\xf9\x80\x00\x00\xb4\x80\x00\x00\xb0\x00\x18\x40\xf9\xb5\xff\xff\x97\xd8\xff\xff\x97\x20\x00\x80\x52\x60\xe2\x00\x39\xf3\x0b\x40\xf9\xfd\x7b\xc2\xa8\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\xdc\xff\xff\x17\xaf\xff\xff\x17\x1f\x20\x03\xd5\xfd\x7b\xbf\xa9\xfd\x03\x00\x91\xfd\x7b\xc1\xa8\xc0\x03\x5f\xd6\x01\x00\x02\x00\x01\x1b\x03\x3b\x3c\x00\x00\x00\x06\x00\x00\x00\xd0\xfe\xff\xff\x54\x00\x00\x00\x20\xff\xff\xff\x68\x00\x00\x00\x50\xff\xff\xff\x7c\x00\x00\x00\x90\xff\xff\xff\x90\x00\x00\x00\xe0\xff\xff\xff\xb4\x00\x00\x00\xe4\xff\xff\xff\xdc\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x01\x7a\x52\x00\x04\x78\x1e\x01\x1b\x0c\x1f\x00\x10\x00\x00\x00\x18\x00\x00\x00\x74\xfe\xff\xff\x34\x00\x00\x00\x00\x41\x07\x1e\x10\x00\x00\x00\x2c\x00\x00\x00\xb0\xfe\xff\xff\x30\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x40\x00\x00\x00\xcc\xfe\xff\xff\x3c\x00\x00\x00\x00\x00\x00\x00\x20\x00\x00\x00\x54\x00\x00\x00\xf8\xfe\xff\xff\x48\x00\x00\x00\x00\x41\x0e\x20\x9d\x04\x9e\x03\x42\x93\x02\x4e\xde\xdd\xd3\x0e\x00\x00\x00\x00\x10\x00\x00\x00\x78\x00\x00\x00\x24\xff\xff\xff\x04\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x01\x7a\x52\x00\x01\x7c\x1e\x01\x1b\x0c\x1f\x00\x10\x00\x00\x00\x18\x00\x00\x00\x00\xff\xff\xff"), -Section(".comment", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x40\x06\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x20\x1c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x38\x00\x09\x00\x40\x00\x1d\x00\x1c\x00\x06\x00\x00\x00\x04\x00\x00"), -Section(".interp", 0x238, "\x2f\x6c\x69\x62\x2f\x6c\x64\x2d\x6c\x69\x6e\x75\x78\x2d\x61\x61\x72\x63\x68\x36\x34\x2e\x73\x6f\x2e\x31\x00"), -Section(".note.gnu.build-id", 0x254, "\x04\x00\x00\x00\x14\x00\x00\x00\x03\x00\x00\x00\x47\x4e\x55\x00\xd1\xc1\x23\x26\x7d\x9b\x31\xd0\x21\x51\x16\xb1\xe4\x76\xe5\xa5\xe4\xd1\xca\x0e"), -Section(".note.ABI-tag", 0x278, "\x04\x00\x00\x00\x10\x00\x00\x00\x01\x00\x00\x00\x47\x4e\x55\x00\x00\x00\x00\x00\x03\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00"), -Section(".gnu.hash", 0x298, "\x01\x00\x00\x00\x01\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".dynsym", 0x2B8, "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x0b\x00\xb8\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x17\x00\x28\x10\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4d\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x22\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x28\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x69\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x22\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x78\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".dynstr", 0x3A8, "\x00\x5f\x5f\x63\x78\x61\x5f\x66\x69\x6e\x61\x6c\x69\x7a\x65\x00\x5f\x5f\x6c\x69\x62\x63\x5f\x73\x74\x61\x72\x74\x5f\x6d\x61\x69\x6e\x00\x61\x62\x6f\x72\x74\x00\x66\x6f\x72\x6b\x00\x6c\x69\x62\x63\x2e\x73\x6f\x2e\x36\x00\x47\x4c\x49\x42\x43\x5f\x32\x2e\x31\x37\x00\x47\x4c\x49\x42\x43\x5f\x32\x2e\x33\x34\x00\x5f\x49\x54\x4d\x5f\x64\x65\x72\x65\x67\x69\x73\x74\x65\x72\x54\x4d\x43\x6c\x6f\x6e\x65\x54\x61\x62\x6c\x65\x00\x5f\x5f\x67\x6d\x6f\x6e\x5f\x73\x74\x61\x72\x74\x5f\x5f\x00\x5f\x49\x54\x4d\x5f\x72\x65\x67\x69\x73\x74\x65\x72\x54\x4d\x43\x6c\x6f\x6e\x65\x54\x61\x62\x6c\x65\x00"), -Section(".gnu.version", 0x43A, "\x00\x00\x00\x00\x00\x00\x02\x00\x01\x00\x03\x00\x03\x00\x01\x00\x03\x00\x01\x00"), -Section(".gnu.version_r", 0x450, "\x01\x00\x02\x00\x2d\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x97\x91\x96\x06\x00\x00\x03\x00\x37\x00\x00\x00\x10\x00\x00\x00\xb4\x91\x96\x06\x00\x00\x02\x00\x42\x00\x00\x00\x00\x00\x00\x00"), -Section(".rela.dyn", 0x480, "\xc8\x0d\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x50\x07\x00\x00\x00\x00\x00\x00\xd0\x0d\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\xd8\x0f\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x54\x07\x00\x00\x00\x00\x00\x00\x30\x10\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x30\x10\x01\x00\x00\x00\x00\x00\xc0\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xc8\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xd0\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe0\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x09\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".rela.plt", 0x540, "\x00\x10\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x08\x10\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x10\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x18\x10\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x20\x10\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".init", 0x5B8, "\x1f\x20\x03\xd5\xfd\x7b\xbf\xa9\xfd\x03\x00\x91\x2c\x00\x00\x94\xfd\x7b\xc1\xa8\xc0\x03\x5f\xd6"), -Section(".plt", 0x5D0, "\xf0\x7b\xbf\xa9\x90\x00\x00\x90\x11\xfe\x47\xf9\x10\xe2\x3f\x91\x20\x02\x1f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x90\x00\x00\xb0\x11\x02\x40\xf9\x10\x02\x00\x91\x20\x02\x1f\xd6\x90\x00\x00\xb0\x11\x06\x40\xf9\x10\x22\x00\x91\x20\x02\x1f\xd6\x90\x00\x00\xb0\x11\x0a\x40\xf9\x10\x42\x00\x91\x20\x02\x1f\xd6\x90\x00\x00\xb0\x11\x0e\x40\xf9\x10\x62\x00\x91\x20\x02\x1f\xd6\x90\x00\x00\xb0\x11\x12\x40\xf9\x10\x82\x00\x91\x20\x02\x1f\xd6"), -Section(".fini", 0x758, "\x1f\x20\x03\xd5\xfd\x7b\xbf\xa9\xfd\x03\x00\x91\xfd\x7b\xc1\xa8\xc0\x03\x5f\xd6"), -Section(".rodata", 0x76C, "\x01\x00\x02\x00"), -Section(".eh_frame_hdr", 0x770, "\x01\x1b\x03\x3b\x3c\x00\x00\x00\x06\x00\x00\x00\xd0\xfe\xff\xff\x54\x00\x00\x00\x20\xff\xff\xff\x68\x00\x00\x00\x50\xff\xff\xff\x7c\x00\x00\x00\x90\xff\xff\xff\x90\x00\x00\x00\xe0\xff\xff\xff\xb4\x00\x00\x00\xe4\xff\xff\xff\xdc\x00\x00\x00"), -Section(".eh_frame", 0x7B0, "\x10\x00\x00\x00\x00\x00\x00\x00\x01\x7a\x52\x00\x04\x78\x1e\x01\x1b\x0c\x1f\x00\x10\x00\x00\x00\x18\x00\x00\x00\x74\xfe\xff\xff\x34\x00\x00\x00\x00\x41\x07\x1e\x10\x00\x00\x00\x2c\x00\x00\x00\xb0\xfe\xff\xff\x30\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x40\x00\x00\x00\xcc\xfe\xff\xff\x3c\x00\x00\x00\x00\x00\x00\x00\x20\x00\x00\x00\x54\x00\x00\x00\xf8\xfe\xff\xff\x48\x00\x00\x00\x00\x41\x0e\x20\x9d\x04\x9e\x03\x42\x93\x02\x4e\xde\xdd\xd3\x0e\x00\x00\x00\x00\x10\x00\x00\x00\x78\x00\x00\x00\x24\xff\xff\xff\x04\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x01\x7a\x52\x00\x01\x7c\x1e\x01\x1b\x0c\x1f\x00\x10\x00\x00\x00\x18\x00\x00\x00\x00\xff\xff\xff\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".fini_array", 0x10DD0, "\x00\x07\x00\x00\x00\x00\x00\x00"), -Section(".dynamic", 0x10DD8, "\x01\x00\x00\x00\x00\x00\x00\x00\x2d\x00\x00\x00\x00\x00\x00\x00\x0c\x00\x00\x00\x00\x00\x00\x00\xb8\x05\x00\x00\x00\x00\x00\x00\x0d\x00\x00\x00\x00\x00\x00\x00\x58\x07\x00\x00\x00\x00\x00\x00\x19\x00\x00\x00\x00\x00\x00\x00\xc8\x0d\x01\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x1a\x00\x00\x00\x00\x00\x00\x00\xd0\x0d\x01\x00\x00\x00\x00\x00\x1c\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\xf5\xfe\xff\x6f\x00\x00\x00\x00\x98\x02\x00\x00\x00\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\xa8\x03\x00\x00\x00\x00\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\xb8\x02\x00\x00\x00\x00\x00\x00\x0a\x00\x00\x00\x00\x00\x00\x00\x92\x00\x00\x00\x00\x00\x00\x00\x0b\x00\x00\x00\x00\x00\x00\x00\x18\x00\x00\x00\x00\x00\x00\x00\x15\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\xe8\x0f\x01\x00\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x78\x00\x00\x00\x00\x00\x00\x00\x14\x00\x00\x00\x00\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x17\x00\x00\x00\x00\x00\x00\x00\x40\x05\x00\x00\x00\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x80\x04\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\xc0\x00\x00\x00\x00\x00\x00\x00\x09\x00\x00\x00\x00\x00\x00\x00\x18\x00\x00\x00\x00\x00\x00\x00\xfb\xff\xff\x6f\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\xfe\xff\xff\x6f\x00\x00\x00\x00\x50\x04\x00\x00\x00\x00\x00\x00\xff\xff\xff\x6f\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\xf0\xff\xff\x6f\x00\x00\x00\x00\x3a\x04\x00\x00\x00\x00\x00\x00\xf9\xff\xff\x6f\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".init_array", 0x10DC8, "\x50\x07\x00\x00\x00\x00\x00\x00"), -Section(".got", 0x10FB8, "\xd8\x0d\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x54\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".got.plt", 0x10FE8, "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xd0\x05\x00\x00\x00\x00\x00\x00\xd0\x05\x00\x00\x00\x00\x00\x00\xd0\x05\x00\x00\x00\x00\x00\x00\xd0\x05\x00\x00\x00\x00\x00\x00\xd0\x05\x00\x00\x00\x00\x00\x00"), -Section(".data", 0x11028, "\x00\x00\x00\x00\x00\x00\x00\x00\x30\x10\x01\x00\x00\x00\x00\x00"), -Section(".text", 0x640, "\x1f\x20\x03\xd5\x1d\x00\x80\xd2\x1e\x00\x80\xd2\xe5\x03\x00\xaa\xe1\x03\x40\xf9\xe2\x23\x00\x91\xe6\x03\x00\x91\x80\x00\x00\x90\x00\xec\x47\xf9\x03\x00\x80\xd2\x04\x00\x80\xd2\xe1\xff\xff\x97\xf0\xff\xff\x97\x80\x00\x00\x90\x00\xe8\x47\xf9\x40\x00\x00\xb4\xe8\xff\xff\x17\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x80\x00\x00\xb0\x00\xe0\x00\x91\x81\x00\x00\xb0\x21\xe0\x00\x91\x3f\x00\x00\xeb\xc0\x00\x00\x54\x81\x00\x00\x90\x21\xe0\x47\xf9\x61\x00\x00\xb4\xf0\x03\x01\xaa\x00\x02\x1f\xd6\xc0\x03\x5f\xd6\x80\x00\x00\xb0\x00\xe0\x00\x91\x81\x00\x00\xb0\x21\xe0\x00\x91\x21\x00\x00\xcb\x22\xfc\x7f\xd3\x41\x0c\x81\x8b\x21\xfc\x41\x93\xc1\x00\x00\xb4\x82\x00\x00\x90\x42\xf0\x47\xf9\x62\x00\x00\xb4\xf0\x03\x02\xaa\x00\x02\x1f\xd6\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\xfd\x7b\xbe\xa9\xfd\x03\x00\x91\xf3\x0b\x00\xf9\x93\x00\x00\xb0\x60\xe2\x40\x39\x40\x01\x00\x35\x80\x00\x00\x90\x00\xe4\x47\xf9\x80\x00\x00\xb4\x80\x00\x00\xb0\x00\x18\x40\xf9\xb5\xff\xff\x97\xd8\xff\xff\x97\x20\x00\x80\x52\x60\xe2\x00\x39\xf3\x0b\x40\xf9\xfd\x7b\xc2\xa8\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\xdc\xff\xff\x17\xaf\xff\xff\x17")]), -Memmap([Annotation(Region(0x0,0x863), Attr("segment","02 0 2148")), -Annotation(Region(0x640,0x673), Attr("symbol","\"_start\"")), -Annotation(Region(0x0,0x102), Attr("section","\".shstrtab\"")), -Annotation(Region(0x0,0x23D), Attr("section","\".strtab\"")), -Annotation(Region(0x0,0x857), Attr("section","\".symtab\"")), -Annotation(Region(0x0,0x46), Attr("section","\".comment\"")), -Annotation(Region(0x238,0x252), Attr("section","\".interp\"")), -Annotation(Region(0x254,0x277), Attr("section","\".note.gnu.build-id\"")), -Annotation(Region(0x278,0x297), Attr("section","\".note.ABI-tag\"")), -Annotation(Region(0x298,0x2B3), Attr("section","\".gnu.hash\"")), -Annotation(Region(0x2B8,0x3A7), Attr("section","\".dynsym\"")), -Annotation(Region(0x3A8,0x439), Attr("section","\".dynstr\"")), -Annotation(Region(0x43A,0x44D), Attr("section","\".gnu.version\"")), -Annotation(Region(0x450,0x47F), Attr("section","\".gnu.version_r\"")), -Annotation(Region(0x480,0x53F), Attr("section","\".rela.dyn\"")), -Annotation(Region(0x540,0x5B7), Attr("section","\".rela.plt\"")), -Annotation(Region(0x5B8,0x5CF), Attr("section","\".init\"")), -Annotation(Region(0x5D0,0x63F), Attr("section","\".plt\"")), -Annotation(Region(0x5B8,0x5CF), Attr("code-region","()")), -Annotation(Region(0x5D0,0x63F), Attr("code-region","()")), -Annotation(Region(0x640,0x673), Attr("symbol-info","_start 0x640 52")), -Annotation(Region(0x674,0x687), Attr("symbol","\"call_weak_fn\"")), -Annotation(Region(0x674,0x687), Attr("symbol-info","call_weak_fn 0x674 20")), -Annotation(Region(0x754,0x757), Attr("symbol","\"main\"")), -Annotation(Region(0x754,0x757), Attr("symbol-info","main 0x754 4")), -Annotation(Region(0x758,0x76B), Attr("section","\".fini\"")), -Annotation(Region(0x76C,0x76F), Attr("section","\".rodata\"")), -Annotation(Region(0x770,0x7AB), Attr("section","\".eh_frame_hdr\"")), -Annotation(Region(0x7B0,0x863), Attr("section","\".eh_frame\"")), -Annotation(Region(0x10DC8,0x11037), Attr("segment","03 0x10DC8 632")), -Annotation(Region(0x10DD0,0x10DD7), Attr("section","\".fini_array\"")), -Annotation(Region(0x10DD8,0x10FB7), Attr("section","\".dynamic\"")), -Annotation(Region(0x10DC8,0x10DCF), Attr("section","\".init_array\"")), -Annotation(Region(0x10FB8,0x10FE7), Attr("section","\".got\"")), -Annotation(Region(0x10FE8,0x11027), Attr("section","\".got.plt\"")), -Annotation(Region(0x11028,0x11037), Attr("section","\".data\"")), -Annotation(Region(0x640,0x757), Attr("section","\".text\"")), -Annotation(Region(0x640,0x757), Attr("code-region","()")), -Annotation(Region(0x758,0x76B), Attr("code-region","()"))]), -Program(Tid(1_412, "%00000584"), Attrs([]), - Subs([Sub(Tid(1_362, "@__cxa_finalize"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x600"), -Attr("stub","()")]), "__cxa_finalize", Args([Arg(Tid(1_413, "%00000585"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("__cxa_finalize_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(746, "@__cxa_finalize"), - Attrs([Attr("address","0x600")]), Phis([]), -Defs([Def(Tid(1_010, "%000003f2"), Attrs([Attr("address","0x600"), -Attr("insn","adrp x16, #69632")]), Var("R16",Imm(64)), Int(69632,64)), -Def(Tid(1_017, "%000003f9"), Attrs([Attr("address","0x604"), -Attr("insn","ldr x17, [x16, #0x8]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(1_023, "%000003ff"), Attrs([Attr("address","0x608"), -Attr("insn","add x16, x16, #0x8")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(8,64)))]), Jmps([Call(Tid(1_028, "%00000404"), - Attrs([Attr("address","0x60C"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), -Sub(Tid(1_363, "@__do_global_dtors_aux"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x700")]), - "__do_global_dtors_aux", Args([Arg(Tid(1_414, "%00000586"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("__do_global_dtors_aux_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(594, "@__do_global_dtors_aux"), - Attrs([Attr("address","0x700")]), Phis([]), Defs([Def(Tid(598, "%00000256"), - Attrs([Attr("address","0x700"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("#3",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(18446744073709551584,64))), -Def(Tid(604, "%0000025c"), Attrs([Attr("address","0x700"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("#3",Imm(64)),Var("R29",Imm(64)),LittleEndian(),64)), -Def(Tid(610, "%00000262"), Attrs([Attr("address","0x700"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("#3",Imm(64)),Int(8,64)),Var("R30",Imm(64)),LittleEndian(),64)), -Def(Tid(614, "%00000266"), Attrs([Attr("address","0x700"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("R31",Imm(64)), -Var("#3",Imm(64))), Def(Tid(620, "%0000026c"), - Attrs([Attr("address","0x704"), Attr("insn","mov x29, sp")]), - Var("R29",Imm(64)), Var("R31",Imm(64))), Def(Tid(628, "%00000274"), - Attrs([Attr("address","0x708"), Attr("insn","str x19, [sp, #0x10]")]), - Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(16,64)),Var("R19",Imm(64)),LittleEndian(),64)), -Def(Tid(633, "%00000279"), Attrs([Attr("address","0x70C"), -Attr("insn","adrp x19, #69632")]), Var("R19",Imm(64)), Int(69632,64)), -Def(Tid(640, "%00000280"), Attrs([Attr("address","0x710"), -Attr("insn","ldrb w0, [x19, #0x38]")]), Var("R0",Imm(64)), -UNSIGNED(64,Load(Var("mem",Mem(64,8)),PLUS(Var("R19",Imm(64)),Int(56,64)),LittleEndian(),8)))]), -Jmps([Goto(Tid(647, "%00000287"), Attrs([Attr("address","0x714"), -Attr("insn","cbnz w0, #0x28")]), - NEQ(Extract(31,0,Var("R0",Imm(64))),Int(0,32)), -Direct(Tid(645, "%00000285"))), Goto(Tid(1_402, "%0000057a"), Attrs([]), - Int(1,1), Direct(Tid(691, "%000002b3")))])), Blk(Tid(691, "%000002b3"), - Attrs([Attr("address","0x718")]), Phis([]), Defs([Def(Tid(694, "%000002b6"), - Attrs([Attr("address","0x718"), Attr("insn","adrp x0, #65536")]), - Var("R0",Imm(64)), Int(65536,64)), Def(Tid(701, "%000002bd"), - Attrs([Attr("address","0x71C"), Attr("insn","ldr x0, [x0, #0xfc8]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(4040,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(707, "%000002c3"), Attrs([Attr("address","0x720"), -Attr("insn","cbz x0, #0x10")]), EQ(Var("R0",Imm(64)),Int(0,64)), -Direct(Tid(705, "%000002c1"))), Goto(Tid(1_403, "%0000057b"), Attrs([]), - Int(1,1), Direct(Tid(730, "%000002da")))])), Blk(Tid(730, "%000002da"), - Attrs([Attr("address","0x724")]), Phis([]), Defs([Def(Tid(733, "%000002dd"), - Attrs([Attr("address","0x724"), Attr("insn","adrp x0, #69632")]), - Var("R0",Imm(64)), Int(69632,64)), Def(Tid(740, "%000002e4"), - Attrs([Attr("address","0x728"), Attr("insn","ldr x0, [x0, #0x30]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(48,64)),LittleEndian(),64)), -Def(Tid(745, "%000002e9"), Attrs([Attr("address","0x72C"), -Attr("insn","bl #-0x12c")]), Var("R30",Imm(64)), Int(1840,64))]), -Jmps([Call(Tid(748, "%000002ec"), Attrs([Attr("address","0x72C"), -Attr("insn","bl #-0x12c")]), Int(1,1), -(Direct(Tid(1_362, "@__cxa_finalize")),Direct(Tid(705, "%000002c1"))))])), -Blk(Tid(705, "%000002c1"), Attrs([Attr("address","0x730")]), Phis([]), -Defs([Def(Tid(713, "%000002c9"), Attrs([Attr("address","0x730"), -Attr("insn","bl #-0xa0")]), Var("R30",Imm(64)), Int(1844,64))]), -Jmps([Call(Tid(715, "%000002cb"), Attrs([Attr("address","0x730"), -Attr("insn","bl #-0xa0")]), Int(1,1), -(Direct(Tid(1_376, "@deregister_tm_clones")),Direct(Tid(717, "%000002cd"))))])), -Blk(Tid(717, "%000002cd"), Attrs([Attr("address","0x734")]), Phis([]), -Defs([Def(Tid(720, "%000002d0"), Attrs([Attr("address","0x734"), -Attr("insn","mov w0, #0x1")]), Var("R0",Imm(64)), Int(1,64)), -Def(Tid(728, "%000002d8"), Attrs([Attr("address","0x738"), -Attr("insn","strb w0, [x19, #0x38]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R19",Imm(64)),Int(56,64)),Extract(7,0,Var("R0",Imm(64))),LittleEndian(),8))]), -Jmps([Goto(Tid(1_404, "%0000057c"), Attrs([]), Int(1,1), -Direct(Tid(645, "%00000285")))])), Blk(Tid(645, "%00000285"), - Attrs([Attr("address","0x73C")]), Phis([]), Defs([Def(Tid(655, "%0000028f"), - Attrs([Attr("address","0x73C"), Attr("insn","ldr x19, [sp, #0x10]")]), - Var("R19",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(16,64)),LittleEndian(),64)), -Def(Tid(662, "%00000296"), Attrs([Attr("address","0x740"), -Attr("insn","ldp x29, x30, [sp], #0x20")]), Var("R29",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(667, "%0000029b"), Attrs([Attr("address","0x740"), -Attr("insn","ldp x29, x30, [sp], #0x20")]), Var("R30",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(671, "%0000029f"), Attrs([Attr("address","0x740"), -Attr("insn","ldp x29, x30, [sp], #0x20")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(32,64)))]), Jmps([Call(Tid(676, "%000002a4"), - Attrs([Attr("address","0x744"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), Sub(Tid(1_367, "@__libc_start_main"), - Attrs([Attr("c.proto","signed (*)(signed (*)(signed , char** , char** );* main, signed , char** , \nvoid* auxv)"), -Attr("address","0x5F0"), Attr("stub","()")]), "__libc_start_main", - Args([Arg(Tid(1_415, "%00000587"), - Attrs([Attr("c.layout","**[ : 64]"), -Attr("c.data","Top:u64 ptr ptr"), -Attr("c.type","signed (*)(signed , char** , char** );*")]), - Var("__libc_start_main_main",Imm(64)), Var("R0",Imm(64)), In()), -Arg(Tid(1_416, "%00000588"), Attrs([Attr("c.layout","[signed : 32]"), -Attr("c.data","Top:u32"), Attr("c.type","signed")]), - Var("__libc_start_main_arg2",Imm(32)), LOW(32,Var("R1",Imm(64))), In()), -Arg(Tid(1_417, "%00000589"), Attrs([Attr("c.layout","**[char : 8]"), -Attr("c.data","Top:u8 ptr ptr"), Attr("c.type","char**")]), - Var("__libc_start_main_arg3",Imm(64)), Var("R2",Imm(64)), Both()), -Arg(Tid(1_418, "%0000058a"), Attrs([Attr("c.layout","*[ : 8]"), -Attr("c.data","{} ptr"), Attr("c.type","void*")]), - Var("__libc_start_main_auxv",Imm(64)), Var("R3",Imm(64)), Both()), -Arg(Tid(1_419, "%0000058b"), Attrs([Attr("c.layout","[signed : 32]"), -Attr("c.data","Top:u32"), Attr("c.type","signed")]), - Var("__libc_start_main_result",Imm(32)), LOW(32,Var("R0",Imm(64))), -Out())]), Blks([Blk(Tid(427, "@__libc_start_main"), - Attrs([Attr("address","0x5F0")]), Phis([]), Defs([Def(Tid(988, "%000003dc"), - Attrs([Attr("address","0x5F0"), Attr("insn","adrp x16, #69632")]), - Var("R16",Imm(64)), Int(69632,64)), Def(Tid(995, "%000003e3"), - Attrs([Attr("address","0x5F4"), Attr("insn","ldr x17, [x16]")]), - Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R16",Imm(64)),LittleEndian(),64)), -Def(Tid(1_001, "%000003e9"), Attrs([Attr("address","0x5F8"), -Attr("insn","add x16, x16, #0x0")]), Var("R16",Imm(64)), -Var("R16",Imm(64)))]), Jmps([Call(Tid(1_006, "%000003ee"), - Attrs([Attr("address","0x5FC"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), Sub(Tid(1_368, "@_fini"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x758")]), - "_fini", Args([Arg(Tid(1_420, "%0000058c"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("_fini_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(31, "@_fini"), - Attrs([Attr("address","0x758")]), Phis([]), Defs([Def(Tid(37, "%00000025"), - Attrs([Attr("address","0x75C"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("#0",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(18446744073709551600,64))), -Def(Tid(43, "%0000002b"), Attrs([Attr("address","0x75C"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("#0",Imm(64)),Var("R29",Imm(64)),LittleEndian(),64)), -Def(Tid(49, "%00000031"), Attrs([Attr("address","0x75C"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("#0",Imm(64)),Int(8,64)),Var("R30",Imm(64)),LittleEndian(),64)), -Def(Tid(53, "%00000035"), Attrs([Attr("address","0x75C"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("R31",Imm(64)), -Var("#0",Imm(64))), Def(Tid(59, "%0000003b"), Attrs([Attr("address","0x760"), -Attr("insn","mov x29, sp")]), Var("R29",Imm(64)), Var("R31",Imm(64))), -Def(Tid(66, "%00000042"), Attrs([Attr("address","0x764"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R29",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(71, "%00000047"), Attrs([Attr("address","0x764"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R30",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(75, "%0000004b"), Attrs([Attr("address","0x764"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(16,64)))]), Jmps([Call(Tid(80, "%00000050"), - Attrs([Attr("address","0x768"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), Sub(Tid(1_369, "@_init"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x5B8")]), - "_init", Args([Arg(Tid(1_421, "%0000058d"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("_init_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(1_199, "@_init"), - Attrs([Attr("address","0x5B8")]), Phis([]), -Defs([Def(Tid(1_205, "%000004b5"), Attrs([Attr("address","0x5BC"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("#5",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(18446744073709551600,64))), -Def(Tid(1_211, "%000004bb"), Attrs([Attr("address","0x5BC"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("#5",Imm(64)),Var("R29",Imm(64)),LittleEndian(),64)), -Def(Tid(1_217, "%000004c1"), Attrs([Attr("address","0x5BC"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("#5",Imm(64)),Int(8,64)),Var("R30",Imm(64)),LittleEndian(),64)), -Def(Tid(1_221, "%000004c5"), Attrs([Attr("address","0x5BC"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("R31",Imm(64)), -Var("#5",Imm(64))), Def(Tid(1_227, "%000004cb"), - Attrs([Attr("address","0x5C0"), Attr("insn","mov x29, sp")]), - Var("R29",Imm(64)), Var("R31",Imm(64))), Def(Tid(1_232, "%000004d0"), - Attrs([Attr("address","0x5C4"), Attr("insn","bl #0xb0")]), - Var("R30",Imm(64)), Int(1480,64))]), Jmps([Call(Tid(1_234, "%000004d2"), - Attrs([Attr("address","0x5C4"), Attr("insn","bl #0xb0")]), Int(1,1), -(Direct(Tid(1_374, "@call_weak_fn")),Direct(Tid(1_236, "%000004d4"))))])), -Blk(Tid(1_236, "%000004d4"), Attrs([Attr("address","0x5C8")]), Phis([]), -Defs([Def(Tid(1_241, "%000004d9"), Attrs([Attr("address","0x5C8"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R29",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(1_246, "%000004de"), Attrs([Attr("address","0x5C8"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R30",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(1_250, "%000004e2"), Attrs([Attr("address","0x5C8"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(16,64)))]), Jmps([Call(Tid(1_255, "%000004e7"), - Attrs([Attr("address","0x5CC"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), Sub(Tid(1_370, "@_start"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x640"), -Attr("stub","()"), Attr("entry-point","()")]), "_start", - Args([Arg(Tid(1_422, "%0000058e"), Attrs([Attr("c.layout","[signed : 32]"), -Attr("c.data","Top:u32"), Attr("c.type","signed")]), - Var("_start_result",Imm(32)), LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(364, "@_start"), Attrs([Attr("address","0x640")]), Phis([]), -Defs([Def(Tid(369, "%00000171"), Attrs([Attr("address","0x644"), -Attr("insn","mov x29, #0x0")]), Var("R29",Imm(64)), Int(0,64)), -Def(Tid(374, "%00000176"), Attrs([Attr("address","0x648"), -Attr("insn","mov x30, #0x0")]), Var("R30",Imm(64)), Int(0,64)), -Def(Tid(380, "%0000017c"), Attrs([Attr("address","0x64C"), -Attr("insn","mov x5, x0")]), Var("R5",Imm(64)), Var("R0",Imm(64))), -Def(Tid(387, "%00000183"), Attrs([Attr("address","0x650"), -Attr("insn","ldr x1, [sp]")]), Var("R1",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(393, "%00000189"), Attrs([Attr("address","0x654"), -Attr("insn","add x2, sp, #0x8")]), Var("R2",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(8,64))), Def(Tid(399, "%0000018f"), - Attrs([Attr("address","0x658"), Attr("insn","mov x6, sp")]), - Var("R6",Imm(64)), Var("R31",Imm(64))), Def(Tid(404, "%00000194"), - Attrs([Attr("address","0x65C"), Attr("insn","adrp x0, #65536")]), - Var("R0",Imm(64)), Int(65536,64)), Def(Tid(411, "%0000019b"), - Attrs([Attr("address","0x660"), Attr("insn","ldr x0, [x0, #0xfd8]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(4056,64)),LittleEndian(),64)), -Def(Tid(416, "%000001a0"), Attrs([Attr("address","0x664"), -Attr("insn","mov x3, #0x0")]), Var("R3",Imm(64)), Int(0,64)), -Def(Tid(421, "%000001a5"), Attrs([Attr("address","0x668"), -Attr("insn","mov x4, #0x0")]), Var("R4",Imm(64)), Int(0,64)), -Def(Tid(426, "%000001aa"), Attrs([Attr("address","0x66C"), -Attr("insn","bl #-0x7c")]), Var("R30",Imm(64)), Int(1648,64))]), -Jmps([Call(Tid(429, "%000001ad"), Attrs([Attr("address","0x66C"), -Attr("insn","bl #-0x7c")]), Int(1,1), -(Direct(Tid(1_367, "@__libc_start_main")),Direct(Tid(431, "%000001af"))))])), -Blk(Tid(431, "%000001af"), Attrs([Attr("address","0x670")]), Phis([]), -Defs([Def(Tid(434, "%000001b2"), Attrs([Attr("address","0x670"), -Attr("insn","bl #-0x40")]), Var("R30",Imm(64)), Int(1652,64))]), -Jmps([Call(Tid(437, "%000001b5"), Attrs([Attr("address","0x670"), -Attr("insn","bl #-0x40")]), Int(1,1), -(Direct(Tid(1_373, "@abort")),Direct(Tid(1_405, "%0000057d"))))])), -Blk(Tid(1_405, "%0000057d"), Attrs([]), Phis([]), Defs([]), -Jmps([Call(Tid(1_406, "%0000057e"), Attrs([]), Int(1,1), -(Direct(Tid(1_374, "@call_weak_fn")),))]))])), Sub(Tid(1_373, "@abort"), - Attrs([Attr("noreturn","()"), Attr("c.proto","void (*)(void)"), -Attr("address","0x630"), Attr("stub","()")]), "abort", Args([]), -Blks([Blk(Tid(435, "@abort"), Attrs([Attr("address","0x630")]), Phis([]), -Defs([Def(Tid(1_076, "%00000434"), Attrs([Attr("address","0x630"), -Attr("insn","adrp x16, #69632")]), Var("R16",Imm(64)), Int(69632,64)), -Def(Tid(1_083, "%0000043b"), Attrs([Attr("address","0x634"), -Attr("insn","ldr x17, [x16, #0x20]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(32,64)),LittleEndian(),64)), -Def(Tid(1_089, "%00000441"), Attrs([Attr("address","0x638"), -Attr("insn","add x16, x16, #0x20")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(32,64)))]), Jmps([Call(Tid(1_094, "%00000446"), - Attrs([Attr("address","0x63C"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), Sub(Tid(1_374, "@call_weak_fn"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x674")]), - "call_weak_fn", Args([Arg(Tid(1_423, "%0000058f"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("call_weak_fn_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(439, "@call_weak_fn"), - Attrs([Attr("address","0x674")]), Phis([]), Defs([Def(Tid(442, "%000001ba"), - Attrs([Attr("address","0x674"), Attr("insn","adrp x0, #65536")]), - Var("R0",Imm(64)), Int(65536,64)), Def(Tid(449, "%000001c1"), - Attrs([Attr("address","0x678"), Attr("insn","ldr x0, [x0, #0xfd0]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(4048,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(455, "%000001c7"), Attrs([Attr("address","0x67C"), -Attr("insn","cbz x0, #0x8")]), EQ(Var("R0",Imm(64)),Int(0,64)), -Direct(Tid(453, "%000001c5"))), Goto(Tid(1_407, "%0000057f"), Attrs([]), - Int(1,1), Direct(Tid(810, "%0000032a")))])), Blk(Tid(453, "%000001c5"), - Attrs([Attr("address","0x684")]), Phis([]), Defs([]), -Jmps([Call(Tid(461, "%000001cd"), Attrs([Attr("address","0x684"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))])), -Blk(Tid(810, "%0000032a"), Attrs([Attr("address","0x680")]), Phis([]), -Defs([]), Jmps([Goto(Tid(813, "%0000032d"), Attrs([Attr("address","0x680"), -Attr("insn","b #-0x60")]), Int(1,1), Direct(Tid(811, "@__gmon_start__")))])), -Blk(Tid(811, "@__gmon_start__"), Attrs([Attr("address","0x620")]), Phis([]), -Defs([Def(Tid(1_054, "%0000041e"), Attrs([Attr("address","0x620"), -Attr("insn","adrp x16, #69632")]), Var("R16",Imm(64)), Int(69632,64)), -Def(Tid(1_061, "%00000425"), Attrs([Attr("address","0x624"), -Attr("insn","ldr x17, [x16, #0x18]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(24,64)),LittleEndian(),64)), -Def(Tid(1_067, "%0000042b"), Attrs([Attr("address","0x628"), -Attr("insn","add x16, x16, #0x18")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(24,64)))]), Jmps([Call(Tid(1_072, "%00000430"), - Attrs([Attr("address","0x62C"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), -Sub(Tid(1_376, "@deregister_tm_clones"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x690")]), - "deregister_tm_clones", Args([Arg(Tid(1_424, "%00000590"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("deregister_tm_clones_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(467, "@deregister_tm_clones"), - Attrs([Attr("address","0x690")]), Phis([]), Defs([Def(Tid(470, "%000001d6"), - Attrs([Attr("address","0x690"), Attr("insn","adrp x0, #69632")]), - Var("R0",Imm(64)), Int(69632,64)), Def(Tid(476, "%000001dc"), - Attrs([Attr("address","0x694"), Attr("insn","add x0, x0, #0x38")]), - Var("R0",Imm(64)), PLUS(Var("R0",Imm(64)),Int(56,64))), -Def(Tid(481, "%000001e1"), Attrs([Attr("address","0x698"), -Attr("insn","adrp x1, #69632")]), Var("R1",Imm(64)), Int(69632,64)), -Def(Tid(487, "%000001e7"), Attrs([Attr("address","0x69C"), -Attr("insn","add x1, x1, #0x38")]), Var("R1",Imm(64)), -PLUS(Var("R1",Imm(64)),Int(56,64))), Def(Tid(493, "%000001ed"), - Attrs([Attr("address","0x6A0"), Attr("insn","cmp x1, x0")]), - Var("#1",Imm(64)), NOT(Var("R0",Imm(64)))), Def(Tid(498, "%000001f2"), - Attrs([Attr("address","0x6A0"), Attr("insn","cmp x1, x0")]), - Var("#2",Imm(64)), PLUS(Var("R1",Imm(64)),NOT(Var("R0",Imm(64))))), -Def(Tid(504, "%000001f8"), Attrs([Attr("address","0x6A0"), -Attr("insn","cmp x1, x0")]), Var("VF",Imm(1)), -NEQ(SIGNED(65,PLUS(Var("#2",Imm(64)),Int(1,64))),PLUS(PLUS(SIGNED(65,Var("R1",Imm(64))),SIGNED(65,Var("#1",Imm(64)))),Int(1,65)))), -Def(Tid(510, "%000001fe"), Attrs([Attr("address","0x6A0"), -Attr("insn","cmp x1, x0")]), Var("CF",Imm(1)), -NEQ(UNSIGNED(65,PLUS(Var("#2",Imm(64)),Int(1,64))),PLUS(PLUS(UNSIGNED(65,Var("R1",Imm(64))),UNSIGNED(65,Var("#1",Imm(64)))),Int(1,65)))), -Def(Tid(514, "%00000202"), Attrs([Attr("address","0x6A0"), -Attr("insn","cmp x1, x0")]), Var("ZF",Imm(1)), -EQ(PLUS(Var("#2",Imm(64)),Int(1,64)),Int(0,64))), Def(Tid(518, "%00000206"), - Attrs([Attr("address","0x6A0"), Attr("insn","cmp x1, x0")]), - Var("NF",Imm(1)), Extract(63,63,PLUS(Var("#2",Imm(64)),Int(1,64))))]), -Jmps([Goto(Tid(524, "%0000020c"), Attrs([Attr("address","0x6A4"), -Attr("insn","b.eq #0x18")]), EQ(Var("ZF",Imm(1)),Int(1,1)), -Direct(Tid(522, "%0000020a"))), Goto(Tid(1_408, "%00000580"), Attrs([]), - Int(1,1), Direct(Tid(780, "%0000030c")))])), Blk(Tid(780, "%0000030c"), - Attrs([Attr("address","0x6A8")]), Phis([]), Defs([Def(Tid(783, "%0000030f"), - Attrs([Attr("address","0x6A8"), Attr("insn","adrp x1, #65536")]), - Var("R1",Imm(64)), Int(65536,64)), Def(Tid(790, "%00000316"), - Attrs([Attr("address","0x6AC"), Attr("insn","ldr x1, [x1, #0xfc0]")]), - Var("R1",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R1",Imm(64)),Int(4032,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(795, "%0000031b"), Attrs([Attr("address","0x6B0"), -Attr("insn","cbz x1, #0xc")]), EQ(Var("R1",Imm(64)),Int(0,64)), -Direct(Tid(522, "%0000020a"))), Goto(Tid(1_409, "%00000581"), Attrs([]), - Int(1,1), Direct(Tid(799, "%0000031f")))])), Blk(Tid(522, "%0000020a"), - Attrs([Attr("address","0x6BC")]), Phis([]), Defs([]), -Jmps([Call(Tid(530, "%00000212"), Attrs([Attr("address","0x6BC"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))])), -Blk(Tid(799, "%0000031f"), Attrs([Attr("address","0x6B4")]), Phis([]), -Defs([Def(Tid(803, "%00000323"), Attrs([Attr("address","0x6B4"), -Attr("insn","mov x16, x1")]), Var("R16",Imm(64)), Var("R1",Imm(64)))]), -Jmps([Call(Tid(808, "%00000328"), Attrs([Attr("address","0x6B8"), -Attr("insn","br x16")]), Int(1,1), (Indirect(Var("R16",Imm(64))),))]))])), -Sub(Tid(1_379, "@frame_dummy"), Attrs([Attr("c.proto","signed (*)(void)"), -Attr("address","0x750")]), "frame_dummy", Args([Arg(Tid(1_425, "%00000591"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("frame_dummy_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(682, "@frame_dummy"), - Attrs([Attr("address","0x750")]), Phis([]), Defs([]), -Jmps([Call(Tid(684, "%000002ac"), Attrs([Attr("address","0x750"), -Attr("insn","b #-0x90")]), Int(1,1), -(Direct(Tid(1_381, "@register_tm_clones")),))]))])), Sub(Tid(1_380, "@main"), - Attrs([Attr("c.proto","signed (*)(signed argc, const char** argv)"), -Attr("address","0x754")]), "main", Args([Arg(Tid(1_426, "%00000592"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("main_argc",Imm(32)), -LOW(32,Var("R0",Imm(64))), In()), Arg(Tid(1_427, "%00000593"), - Attrs([Attr("c.layout","**[char : 8]"), Attr("c.data","Top:u8 ptr ptr"), -Attr("c.type"," const char**")]), Var("main_argv",Imm(64)), -Var("R1",Imm(64)), Both()), Arg(Tid(1_428, "%00000594"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("main_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(686, "@main"), - Attrs([Attr("address","0x754")]), Phis([]), Defs([]), -Jmps([Goto(Tid(689, "%000002b1"), Attrs([Attr("address","0x754"), -Attr("insn","b #-0x144")]), Int(1,1), Direct(Tid(687, "@fork")))])), -Blk(Tid(687, "@fork"), Attrs([Attr("address","0x610")]), Phis([]), -Defs([Def(Tid(1_032, "%00000408"), Attrs([Attr("address","0x610"), -Attr("insn","adrp x16, #69632")]), Var("R16",Imm(64)), Int(69632,64)), -Def(Tid(1_039, "%0000040f"), Attrs([Attr("address","0x614"), -Attr("insn","ldr x17, [x16, #0x10]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(16,64)),LittleEndian(),64)), -Def(Tid(1_045, "%00000415"), Attrs([Attr("address","0x618"), -Attr("insn","add x16, x16, #0x10")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(16,64)))]), Jmps([Call(Tid(1_050, "%0000041a"), - Attrs([Attr("address","0x61C"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), -Sub(Tid(1_381, "@register_tm_clones"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x6C0")]), - "register_tm_clones", Args([Arg(Tid(1_429, "%00000595"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("register_tm_clones_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(532, "@register_tm_clones"), Attrs([Attr("address","0x6C0")]), - Phis([]), Defs([Def(Tid(535, "%00000217"), Attrs([Attr("address","0x6C0"), -Attr("insn","adrp x0, #69632")]), Var("R0",Imm(64)), Int(69632,64)), -Def(Tid(541, "%0000021d"), Attrs([Attr("address","0x6C4"), -Attr("insn","add x0, x0, #0x38")]), Var("R0",Imm(64)), -PLUS(Var("R0",Imm(64)),Int(56,64))), Def(Tid(546, "%00000222"), - Attrs([Attr("address","0x6C8"), Attr("insn","adrp x1, #69632")]), - Var("R1",Imm(64)), Int(69632,64)), Def(Tid(552, "%00000228"), - Attrs([Attr("address","0x6CC"), Attr("insn","add x1, x1, #0x38")]), - Var("R1",Imm(64)), PLUS(Var("R1",Imm(64)),Int(56,64))), -Def(Tid(559, "%0000022f"), Attrs([Attr("address","0x6D0"), -Attr("insn","sub x1, x1, x0")]), Var("R1",Imm(64)), -PLUS(PLUS(Var("R1",Imm(64)),NOT(Var("R0",Imm(64)))),Int(1,64))), -Def(Tid(565, "%00000235"), Attrs([Attr("address","0x6D4"), -Attr("insn","lsr x2, x1, #63")]), Var("R2",Imm(64)), -Concat(Int(0,63),Extract(63,63,Var("R1",Imm(64))))), -Def(Tid(572, "%0000023c"), Attrs([Attr("address","0x6D8"), -Attr("insn","add x1, x2, x1, asr #3")]), Var("R1",Imm(64)), -PLUS(Var("R2",Imm(64)),ARSHIFT(Var("R1",Imm(64)),Int(3,3)))), -Def(Tid(578, "%00000242"), Attrs([Attr("address","0x6DC"), -Attr("insn","asr x1, x1, #1")]), Var("R1",Imm(64)), -SIGNED(64,Extract(63,1,Var("R1",Imm(64)))))]), -Jmps([Goto(Tid(584, "%00000248"), Attrs([Attr("address","0x6E0"), -Attr("insn","cbz x1, #0x18")]), EQ(Var("R1",Imm(64)),Int(0,64)), -Direct(Tid(582, "%00000246"))), Goto(Tid(1_410, "%00000582"), Attrs([]), - Int(1,1), Direct(Tid(750, "%000002ee")))])), Blk(Tid(750, "%000002ee"), - Attrs([Attr("address","0x6E4")]), Phis([]), Defs([Def(Tid(753, "%000002f1"), - Attrs([Attr("address","0x6E4"), Attr("insn","adrp x2, #65536")]), - Var("R2",Imm(64)), Int(65536,64)), Def(Tid(760, "%000002f8"), - Attrs([Attr("address","0x6E8"), Attr("insn","ldr x2, [x2, #0xfe0]")]), - Var("R2",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R2",Imm(64)),Int(4064,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(765, "%000002fd"), Attrs([Attr("address","0x6EC"), -Attr("insn","cbz x2, #0xc")]), EQ(Var("R2",Imm(64)),Int(0,64)), -Direct(Tid(582, "%00000246"))), Goto(Tid(1_411, "%00000583"), Attrs([]), - Int(1,1), Direct(Tid(769, "%00000301")))])), Blk(Tid(582, "%00000246"), - Attrs([Attr("address","0x6F8")]), Phis([]), Defs([]), -Jmps([Call(Tid(590, "%0000024e"), Attrs([Attr("address","0x6F8"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))])), -Blk(Tid(769, "%00000301"), Attrs([Attr("address","0x6F0")]), Phis([]), -Defs([Def(Tid(773, "%00000305"), Attrs([Attr("address","0x6F0"), -Attr("insn","mov x16, x2")]), Var("R16",Imm(64)), Var("R2",Imm(64)))]), -Jmps([Call(Tid(778, "%0000030a"), Attrs([Attr("address","0x6F4"), -Attr("insn","br x16")]), Int(1,1), -(Indirect(Var("R16",Imm(64))),))]))]))]))) \ No newline at end of file diff --git a/src/test/indirect_calls/syscall/clang_O2/syscall.bir b/src/test/indirect_calls/syscall/clang_O2/syscall.bir deleted file mode 100644 index 32d54807b..000000000 --- a/src/test/indirect_calls/syscall/clang_O2/syscall.bir +++ /dev/null @@ -1,229 +0,0 @@ -00000584: program -00000552: sub __cxa_finalize(__cxa_finalize_result) -00000585: __cxa_finalize_result :: out u32 = low:32[R0] - -000002ea: -000003f2: R16 := 0x11000 -000003f9: R17 := mem[R16 + 8, el]:u64 -000003ff: R16 := R16 + 8 -00000404: call R17 with noreturn - -00000553: sub __do_global_dtors_aux(__do_global_dtors_aux_result) -00000586: __do_global_dtors_aux_result :: out u32 = low:32[R0] - -00000252: -00000256: #3 := R31 - 0x20 -0000025c: mem := mem with [#3, el]:u64 <- R29 -00000262: mem := mem with [#3 + 8, el]:u64 <- R30 -00000266: R31 := #3 -0000026c: R29 := R31 -00000274: mem := mem with [R31 + 0x10, el]:u64 <- R19 -00000279: R19 := 0x11000 -00000280: R0 := pad:64[mem[R19 + 0x38]] -00000287: when 31:0[R0] <> 0 goto %00000285 -0000057a: goto %000002b3 - -000002b3: -000002b6: R0 := 0x10000 -000002bd: R0 := mem[R0 + 0xFC8, el]:u64 -000002c3: when R0 = 0 goto %000002c1 -0000057b: goto %000002da - -000002da: -000002dd: R0 := 0x11000 -000002e4: R0 := mem[R0 + 0x30, el]:u64 -000002e9: R30 := 0x730 -000002ec: call @__cxa_finalize with return %000002c1 - -000002c1: -000002c9: R30 := 0x734 -000002cb: call @deregister_tm_clones with return %000002cd - -000002cd: -000002d0: R0 := 1 -000002d8: mem := mem with [R19 + 0x38] <- 7:0[R0] -0000057c: goto %00000285 - -00000285: -0000028f: R19 := mem[R31 + 0x10, el]:u64 -00000296: R29 := mem[R31, el]:u64 -0000029b: R30 := mem[R31 + 8, el]:u64 -0000029f: R31 := R31 + 0x20 -000002a4: call R30 with noreturn - -00000557: sub __libc_start_main(__libc_start_main_main, __libc_start_main_arg2, __libc_start_main_arg3, __libc_start_main_auxv, __libc_start_main_result) -00000587: __libc_start_main_main :: in u64 = R0 -00000588: __libc_start_main_arg2 :: in u32 = low:32[R1] -00000589: __libc_start_main_arg3 :: in out u64 = R2 -0000058a: __libc_start_main_auxv :: in out u64 = R3 -0000058b: __libc_start_main_result :: out u32 = low:32[R0] - -000001ab: -000003dc: R16 := 0x11000 -000003e3: R17 := mem[R16, el]:u64 -000003e9: R16 := R16 -000003ee: call R17 with noreturn - -00000558: sub _fini(_fini_result) -0000058c: _fini_result :: out u32 = low:32[R0] - -0000001f: -00000025: #0 := R31 - 0x10 -0000002b: mem := mem with [#0, el]:u64 <- R29 -00000031: mem := mem with [#0 + 8, el]:u64 <- R30 -00000035: R31 := #0 -0000003b: R29 := R31 -00000042: R29 := mem[R31, el]:u64 -00000047: R30 := mem[R31 + 8, el]:u64 -0000004b: R31 := R31 + 0x10 -00000050: call R30 with noreturn - -00000559: sub _init(_init_result) -0000058d: _init_result :: out u32 = low:32[R0] - -000004af: -000004b5: #5 := R31 - 0x10 -000004bb: mem := mem with [#5, el]:u64 <- R29 -000004c1: mem := mem with [#5 + 8, el]:u64 <- R30 -000004c5: R31 := #5 -000004cb: R29 := R31 -000004d0: R30 := 0x5C8 -000004d2: call @call_weak_fn with return %000004d4 - -000004d4: -000004d9: R29 := mem[R31, el]:u64 -000004de: R30 := mem[R31 + 8, el]:u64 -000004e2: R31 := R31 + 0x10 -000004e7: call R30 with noreturn - -0000055a: sub _start(_start_result) -0000058e: _start_result :: out u32 = low:32[R0] - -0000016c: -00000171: R29 := 0 -00000176: R30 := 0 -0000017c: R5 := R0 -00000183: R1 := mem[R31, el]:u64 -00000189: R2 := R31 + 8 -0000018f: R6 := R31 -00000194: R0 := 0x10000 -0000019b: R0 := mem[R0 + 0xFD8, el]:u64 -000001a0: R3 := 0 -000001a5: R4 := 0 -000001aa: R30 := 0x670 -000001ad: call @__libc_start_main with return %000001af - -000001af: -000001b2: R30 := 0x674 -000001b5: call @abort with return %0000057d - -0000057d: -0000057e: call @call_weak_fn with noreturn - -0000055d: sub abort() - - -000001b3: -00000434: R16 := 0x11000 -0000043b: R17 := mem[R16 + 0x20, el]:u64 -00000441: R16 := R16 + 0x20 -00000446: call R17 with noreturn - -0000055e: sub call_weak_fn(call_weak_fn_result) -0000058f: call_weak_fn_result :: out u32 = low:32[R0] - -000001b7: -000001ba: R0 := 0x10000 -000001c1: R0 := mem[R0 + 0xFD0, el]:u64 -000001c7: when R0 = 0 goto %000001c5 -0000057f: goto %0000032a - -000001c5: -000001cd: call R30 with noreturn - -0000032a: -0000032d: goto @__gmon_start__ - -0000032b: -0000041e: R16 := 0x11000 -00000425: R17 := mem[R16 + 0x18, el]:u64 -0000042b: R16 := R16 + 0x18 -00000430: call R17 with noreturn - -00000560: sub deregister_tm_clones(deregister_tm_clones_result) -00000590: deregister_tm_clones_result :: out u32 = low:32[R0] - -000001d3: -000001d6: R0 := 0x11000 -000001dc: R0 := R0 + 0x38 -000001e1: R1 := 0x11000 -000001e7: R1 := R1 + 0x38 -000001ed: #1 := ~R0 -000001f2: #2 := R1 + ~R0 -000001f8: VF := extend:65[#2 + 1] <> extend:65[R1] + extend:65[#1] + 1 -000001fe: CF := pad:65[#2 + 1] <> pad:65[R1] + pad:65[#1] + 1 -00000202: ZF := #2 + 1 = 0 -00000206: NF := 63:63[#2 + 1] -0000020c: when ZF goto %0000020a -00000580: goto %0000030c - -0000030c: -0000030f: R1 := 0x10000 -00000316: R1 := mem[R1 + 0xFC0, el]:u64 -0000031b: when R1 = 0 goto %0000020a -00000581: goto %0000031f - -0000020a: -00000212: call R30 with noreturn - -0000031f: -00000323: R16 := R1 -00000328: call R16 with noreturn - -00000563: sub frame_dummy(frame_dummy_result) -00000591: frame_dummy_result :: out u32 = low:32[R0] - -000002aa: -000002ac: call @register_tm_clones with noreturn - -00000564: sub main(main_argc, main_argv, main_result) -00000592: main_argc :: in u32 = low:32[R0] -00000593: main_argv :: in out u64 = R1 -00000594: main_result :: out u32 = low:32[R0] - -000002ae: -000002b1: goto @fork - -000002af: -00000408: R16 := 0x11000 -0000040f: R17 := mem[R16 + 0x10, el]:u64 -00000415: R16 := R16 + 0x10 -0000041a: call R17 with noreturn - -00000565: sub register_tm_clones(register_tm_clones_result) -00000595: register_tm_clones_result :: out u32 = low:32[R0] - -00000214: -00000217: R0 := 0x11000 -0000021d: R0 := R0 + 0x38 -00000222: R1 := 0x11000 -00000228: R1 := R1 + 0x38 -0000022f: R1 := R1 + ~R0 + 1 -00000235: R2 := 0.63:63[R1] -0000023c: R1 := R2 + (R1 ~>> 3) -00000242: R1 := extend:64[63:1[R1]] -00000248: when R1 = 0 goto %00000246 -00000582: goto %000002ee - -000002ee: -000002f1: R2 := 0x10000 -000002f8: R2 := mem[R2 + 0xFE0, el]:u64 -000002fd: when R2 = 0 goto %00000246 -00000583: goto %00000301 - -00000246: -0000024e: call R30 with noreturn - -00000301: -00000305: R16 := R2 -0000030a: call R16 with noreturn diff --git a/src/test/indirect_calls/syscall/clang_O2/syscall.md5sum b/src/test/indirect_calls/syscall/clang_O2/syscall.md5sum new file mode 100644 index 000000000..45899df16 --- /dev/null +++ b/src/test/indirect_calls/syscall/clang_O2/syscall.md5sum @@ -0,0 +1,4 @@ +bb04b16d71ceb1f52c42953497156b91 indirect_calls/syscall/clang_O2/a.out +23f35b0d9ec636b7f283d24d86e43756 indirect_calls/syscall/clang_O2/syscall.relf +02371ffaa0e159863719114221c3198f indirect_calls/syscall/clang_O2/syscall.adt +74a5d13b840ca24ae82c45aebc23ee36 indirect_calls/syscall/clang_O2/syscall.bir diff --git a/src/test/indirect_calls/syscall/clang_O2/syscall.relf b/src/test/indirect_calls/syscall/clang_O2/syscall.relf deleted file mode 100644 index 01ea330a7..000000000 --- a/src/test/indirect_calls/syscall/clang_O2/syscall.relf +++ /dev/null @@ -1,124 +0,0 @@ - -Relocation section '.rela.dyn' at offset 0x480 contains 8 entries: - Offset Info Type Symbol's Value Symbol's Name + Addend -0000000000010dc8 0000000000000403 R_AARCH64_RELATIVE 750 -0000000000010dd0 0000000000000403 R_AARCH64_RELATIVE 700 -0000000000010fd8 0000000000000403 R_AARCH64_RELATIVE 754 -0000000000011030 0000000000000403 R_AARCH64_RELATIVE 11030 -0000000000010fc0 0000000400000401 R_AARCH64_GLOB_DAT 0000000000000000 _ITM_deregisterTMCloneTable + 0 -0000000000010fc8 0000000500000401 R_AARCH64_GLOB_DAT 0000000000000000 __cxa_finalize@GLIBC_2.17 + 0 -0000000000010fd0 0000000700000401 R_AARCH64_GLOB_DAT 0000000000000000 __gmon_start__ + 0 -0000000000010fe0 0000000900000401 R_AARCH64_GLOB_DAT 0000000000000000 _ITM_registerTMCloneTable + 0 - -Relocation section '.rela.plt' at offset 0x540 contains 5 entries: - Offset Info Type Symbol's Value Symbol's Name + Addend -0000000000011000 0000000300000402 R_AARCH64_JUMP_SLOT 0000000000000000 __libc_start_main@GLIBC_2.34 + 0 -0000000000011008 0000000500000402 R_AARCH64_JUMP_SLOT 0000000000000000 __cxa_finalize@GLIBC_2.17 + 0 -0000000000011010 0000000600000402 R_AARCH64_JUMP_SLOT 0000000000000000 fork@GLIBC_2.17 + 0 -0000000000011018 0000000700000402 R_AARCH64_JUMP_SLOT 0000000000000000 __gmon_start__ + 0 -0000000000011020 0000000800000402 R_AARCH64_JUMP_SLOT 0000000000000000 abort@GLIBC_2.17 + 0 - -Symbol table '.dynsym' contains 10 entries: - Num: Value Size Type Bind Vis Ndx Name - 0: 0000000000000000 0 NOTYPE LOCAL DEFAULT UND - 1: 00000000000005b8 0 SECTION LOCAL DEFAULT 11 .init - 2: 0000000000011028 0 SECTION LOCAL DEFAULT 23 .data - 3: 0000000000000000 0 FUNC GLOBAL DEFAULT UND __libc_start_main@GLIBC_2.34 (2) - 4: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_deregisterTMCloneTable - 5: 0000000000000000 0 FUNC WEAK DEFAULT UND __cxa_finalize@GLIBC_2.17 (3) - 6: 0000000000000000 0 FUNC GLOBAL DEFAULT UND fork@GLIBC_2.17 (3) - 7: 0000000000000000 0 NOTYPE WEAK DEFAULT UND __gmon_start__ - 8: 0000000000000000 0 FUNC GLOBAL DEFAULT UND abort@GLIBC_2.17 (3) - 9: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_registerTMCloneTable - -Symbol table '.symtab' contains 89 entries: - Num: Value Size Type Bind Vis Ndx Name - 0: 0000000000000000 0 NOTYPE LOCAL DEFAULT UND - 1: 0000000000000238 0 SECTION LOCAL DEFAULT 1 .interp - 2: 0000000000000254 0 SECTION LOCAL DEFAULT 2 .note.gnu.build-id - 3: 0000000000000278 0 SECTION LOCAL DEFAULT 3 .note.ABI-tag - 4: 0000000000000298 0 SECTION LOCAL DEFAULT 4 .gnu.hash - 5: 00000000000002b8 0 SECTION LOCAL DEFAULT 5 .dynsym - 6: 00000000000003a8 0 SECTION LOCAL DEFAULT 6 .dynstr - 7: 000000000000043a 0 SECTION LOCAL DEFAULT 7 .gnu.version - 8: 0000000000000450 0 SECTION LOCAL DEFAULT 8 .gnu.version_r - 9: 0000000000000480 0 SECTION LOCAL DEFAULT 9 .rela.dyn - 10: 0000000000000540 0 SECTION LOCAL DEFAULT 10 .rela.plt - 11: 00000000000005b8 0 SECTION LOCAL DEFAULT 11 .init - 12: 00000000000005d0 0 SECTION LOCAL DEFAULT 12 .plt - 13: 0000000000000640 0 SECTION LOCAL DEFAULT 13 .text - 14: 0000000000000758 0 SECTION LOCAL DEFAULT 14 .fini - 15: 000000000000076c 0 SECTION LOCAL DEFAULT 15 .rodata - 16: 0000000000000770 0 SECTION LOCAL DEFAULT 16 .eh_frame_hdr - 17: 00000000000007b0 0 SECTION LOCAL DEFAULT 17 .eh_frame - 18: 0000000000010dc8 0 SECTION LOCAL DEFAULT 18 .init_array - 19: 0000000000010dd0 0 SECTION LOCAL DEFAULT 19 .fini_array - 20: 0000000000010dd8 0 SECTION LOCAL DEFAULT 20 .dynamic - 21: 0000000000010fb8 0 SECTION LOCAL DEFAULT 21 .got - 22: 0000000000010fe8 0 SECTION LOCAL DEFAULT 22 .got.plt - 23: 0000000000011028 0 SECTION LOCAL DEFAULT 23 .data - 24: 0000000000011038 0 SECTION LOCAL DEFAULT 24 .bss - 25: 0000000000000000 0 SECTION LOCAL DEFAULT 25 .comment - 26: 0000000000000000 0 FILE LOCAL DEFAULT ABS Scrt1.o - 27: 0000000000000278 0 NOTYPE LOCAL DEFAULT 3 $d - 28: 0000000000000278 32 OBJECT LOCAL DEFAULT 3 __abi_tag - 29: 0000000000000640 0 NOTYPE LOCAL DEFAULT 13 $x - 30: 00000000000007c4 0 NOTYPE LOCAL DEFAULT 17 $d - 31: 000000000000076c 0 NOTYPE LOCAL DEFAULT 15 $d - 32: 0000000000000000 0 FILE LOCAL DEFAULT ABS crti.o - 33: 0000000000000674 0 NOTYPE LOCAL DEFAULT 13 $x - 34: 0000000000000674 20 FUNC LOCAL DEFAULT 13 call_weak_fn - 35: 00000000000005b8 0 NOTYPE LOCAL DEFAULT 11 $x - 36: 0000000000000758 0 NOTYPE LOCAL DEFAULT 14 $x - 37: 0000000000000000 0 FILE LOCAL DEFAULT ABS crtn.o - 38: 00000000000005c8 0 NOTYPE LOCAL DEFAULT 11 $x - 39: 0000000000000764 0 NOTYPE LOCAL DEFAULT 14 $x - 40: 0000000000000000 0 FILE LOCAL DEFAULT ABS crtstuff.c - 41: 0000000000000690 0 NOTYPE LOCAL DEFAULT 13 $x - 42: 0000000000000690 0 FUNC LOCAL DEFAULT 13 deregister_tm_clones - 43: 00000000000006c0 0 FUNC LOCAL DEFAULT 13 register_tm_clones - 44: 0000000000011030 0 NOTYPE LOCAL DEFAULT 23 $d - 45: 0000000000000700 0 FUNC LOCAL DEFAULT 13 __do_global_dtors_aux - 46: 0000000000011038 1 OBJECT LOCAL DEFAULT 24 completed.0 - 47: 0000000000010dd0 0 NOTYPE LOCAL DEFAULT 19 $d - 48: 0000000000010dd0 0 OBJECT LOCAL DEFAULT 19 __do_global_dtors_aux_fini_array_entry - 49: 0000000000000750 0 FUNC LOCAL DEFAULT 13 frame_dummy - 50: 0000000000010dc8 0 NOTYPE LOCAL DEFAULT 18 $d - 51: 0000000000010dc8 0 OBJECT LOCAL DEFAULT 18 __frame_dummy_init_array_entry - 52: 00000000000007d8 0 NOTYPE LOCAL DEFAULT 17 $d - 53: 0000000000011038 0 NOTYPE LOCAL DEFAULT 24 $d - 54: 0000000000000000 0 FILE LOCAL DEFAULT ABS syscall.c - 55: 0000000000000754 0 NOTYPE LOCAL DEFAULT 13 $x.0 - 56: 000000000000002a 0 NOTYPE LOCAL DEFAULT 25 $d.1 - 57: 0000000000000838 0 NOTYPE LOCAL DEFAULT 17 $d.2 - 58: 0000000000000000 0 FILE LOCAL DEFAULT ABS crtstuff.c - 59: 0000000000000860 0 NOTYPE LOCAL DEFAULT 17 $d - 60: 0000000000000860 0 OBJECT LOCAL DEFAULT 17 __FRAME_END__ - 61: 0000000000000000 0 FILE LOCAL DEFAULT ABS - 62: 0000000000010dd8 0 OBJECT LOCAL DEFAULT ABS _DYNAMIC - 63: 0000000000000770 0 NOTYPE LOCAL DEFAULT 16 __GNU_EH_FRAME_HDR - 64: 0000000000010fb8 0 OBJECT LOCAL DEFAULT ABS _GLOBAL_OFFSET_TABLE_ - 65: 00000000000005d0 0 NOTYPE LOCAL DEFAULT 12 $x - 66: 0000000000000000 0 FUNC GLOBAL DEFAULT UND __libc_start_main@GLIBC_2.34 - 67: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_deregisterTMCloneTable - 68: 0000000000011028 0 NOTYPE WEAK DEFAULT 23 data_start - 69: 0000000000011038 0 NOTYPE GLOBAL DEFAULT 24 __bss_start__ - 70: 0000000000000000 0 FUNC WEAK DEFAULT UND __cxa_finalize@GLIBC_2.17 - 71: 0000000000011040 0 NOTYPE GLOBAL DEFAULT 24 _bss_end__ - 72: 0000000000000000 0 FUNC GLOBAL DEFAULT UND fork@GLIBC_2.17 - 73: 0000000000011038 0 NOTYPE GLOBAL DEFAULT 23 _edata - 74: 0000000000000758 0 FUNC GLOBAL HIDDEN 14 _fini - 75: 0000000000011040 0 NOTYPE GLOBAL DEFAULT 24 __bss_end__ - 76: 0000000000011028 0 NOTYPE GLOBAL DEFAULT 23 __data_start - 77: 0000000000000000 0 NOTYPE WEAK DEFAULT UND __gmon_start__ - 78: 0000000000011030 0 OBJECT GLOBAL HIDDEN 23 __dso_handle - 79: 0000000000000000 0 FUNC GLOBAL DEFAULT UND abort@GLIBC_2.17 - 80: 000000000000076c 4 OBJECT GLOBAL DEFAULT 15 _IO_stdin_used - 81: 0000000000011040 0 NOTYPE GLOBAL DEFAULT 24 _end - 82: 0000000000000640 52 FUNC GLOBAL DEFAULT 13 _start - 83: 0000000000011040 0 NOTYPE GLOBAL DEFAULT 24 __end__ - 84: 0000000000011038 0 NOTYPE GLOBAL DEFAULT 24 __bss_start - 85: 0000000000000754 4 FUNC GLOBAL DEFAULT 13 main - 86: 0000000000011038 0 OBJECT GLOBAL HIDDEN 23 __TMC_END__ - 87: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_registerTMCloneTable - 88: 00000000000005b8 0 FUNC GLOBAL HIDDEN 11 _init diff --git a/src/test/indirect_calls/syscall/config.mk b/src/test/indirect_calls/syscall/config.mk index 06cc19d54..8b5b79c21 100644 --- a/src/test/indirect_calls/syscall/config.mk +++ b/src/test/indirect_calls/syscall/config.mk @@ -1 +1,2 @@ -ENABLED_COMPILERS = clang_O2 \ No newline at end of file +ENABLED_COMPILERS = clang_O2 +LIFT_ARTEFACTS := $(COMMON_ARTEFACTS) $(BAP_ARTEFACTS) diff --git a/src/test/make/bap-normalise.py b/src/test/make/bap-normalise.py new file mode 100755 index 000000000..a7459de7a --- /dev/null +++ b/src/test/make/bap-normalise.py @@ -0,0 +1,113 @@ +#!/usr/bin/env python3 +# vim: ts=2 sts=2 et sw=2 + +""" +BAP .adt / .bir file normaliser: + +usage: +bap-normalise.py ADT-FILE BIR-FILE + +both arguments are required in that order! +files will be modified in-place. + ++00000540: main_argv :: in out u64 = R1 ++00000541: main_result :: out u32 = low:32[R0] + + 00000199: + 0000019c: R1 := 0x41F000 +@@ -187,7 +187,7 @@ + 000001c8: call R30 with noreturn + + 00000515: sub register_tm_clones(register_tm_clones_result) +-00000529: register_tm_clones_result :: out u32 = low:32[R0] ++00000542: register_tm_clones_result :: out u32 = low:32[R0] + + 0000028e: + 00000291: R0 := 0x420000 +@@ -199,13 +199,13 @@ + 000002b6: R1 := R2 + (R1 ~>> 3) + 000002bc: R1 := extend:64[63:1[R1]] + 000002c2: when R1 = 0 goto %000002c0 +-00000516: goto %00000337 ++0000052f: goto %00000337 + + 00000337: + 0000033a: R2 := 0x41F000 + 00000341: R2 := mem[R2 + 0xFF8, el]:u64 + 00000346: when R2 = 0 goto %000002c0 +-00000517: goto %0000034a ++00000530: goto %0000034a + +""" + +import sys +import re + +adt_file = sys.argv[1] +bir_file = sys.argv[2] +assert len(sys.argv) == 3 + +string_re = re.compile(rb'''"((?:[^"\\]|\\.)*)"''') +hexstring_re = re.compile(rb'''"%([\da-fA-F]{8})"''') +tid_re = re.compile(rb'''Tid\(([_\d]+),''') +bir_re = re.compile(rb'''(?:^([\da-fA-F]{8}):)|(?: %([\da-fA-F]{8}))''', re.MULTILINE) + +with open(adt_file, 'rb') as f: + adt = f.read() + +tids: dict[int, int] = {} # map of old tid to their first position in adt +for match in re.finditer(tid_re, adt): + tid = int(match[1].replace(b'_', b'')) + if tid not in tids: + tids[tid] = match.start() + +assert tids, f'adt file {adt_file} has no Tid() values??' + +keys = list(tids.keys()) +keys.sort(key=tids.__getitem__) + +new_tids = {tid: 4*i for i, tid in enumerate(keys)} + +# .adt file + +def sub_adt(m: re.Match[bytes]) -> bytes: + tid = int(m[1].replace(b'_', b'')) + new = new_tids[tid] + return f'Tid({new:_},'.encode('ascii') +def sub_adt_strings(m: re.Match[bytes]) -> bytes: + tid = int(m[1], 16) + new = new_tids[tid] + return f'"%{new:08x}"'.encode('ascii') + +new_adt = re.sub(tid_re, sub_adt, adt) +new_adt = re.sub(hexstring_re, sub_adt_strings, new_adt) + +# .bir file + +# print(new_tids) +bir_seen = set() +def sub_bir(m: re.Match[bytes]) -> bytes: + old = m[1] or m[2] + tid = int(old, 16) + bir_seen.add(tid) + assert tid in new_tids, f"{m}" + new = new_tids[tid] + return m[0].replace(old, f'{new:08x}'.encode('ascii')) + +with open(bir_file, 'rb') as f: + bir = f.read() + +new_bir = re.sub(bir_re, sub_bir, bir) +adt_seen = set(new_tids) +assert bir_seen == adt_seen, f'not equal!\nbir - adt =\n{bir_seen - adt_seen}\nadt - bir =\n{adt_seen - bir_seen}' + +assert new_adt != adt +assert new_bir != bir + +# writeback only if both are successful + +with open(bir_file, 'wb') as f: + f.write(new_bir) + +with open(adt_file, 'wb') as f: + f.write(new_adt) diff --git a/src/test/make/docker-flake.txt b/src/test/make/docker-flake.txt new file mode 100644 index 000000000..d7cfe8b6f --- /dev/null +++ b/src/test/make/docker-flake.txt @@ -0,0 +1 @@ +github:katrinafyi/pac-nix/569afdf78558de82c24d25e12680157c3b0aa3df#basil-tools-docker diff --git a/src/test/make/docker-helper.sh b/src/test/make/docker-helper.sh new file mode 100755 index 000000000..7d9ebcd8a --- /dev/null +++ b/src/test/make/docker-helper.sh @@ -0,0 +1,172 @@ +#!/usr/bin/env bash +set -ue + +if [[ -z "${GIT_ROOT:-}" ]] && command -v git &>/dev/null; then + GIT_ROOT=$(git rev-parse --show-toplevel) +fi +: ${GIT_ROOT} +DIR=$(realpath --relative-to "$GIT_ROOT" .) + +: ${DOCKER:=podman} +: ${DOCKER_PLATFORM:=--platform linux\/amd64} +: ${DOCKER_USER:=root} +: ${DOCKER_IMAGE:=ghcr.io/uq-pac/basil-tools-docker} + +if [[ $# -lt 1 ]] || [[ "$1" == --help ]]; then + echo "usage: $(basename $0) (pull | push | build | start | stop | shell | hash | env [--unset] | COMMAND...)" + ! [[ $# -lt 1 ]] + exit +fi + +DOCKER_CMD="$(realpath $0)" + +if [[ -z "${DOCKER_FLAKE:-}" ]] && [[ -r "$(dirname $DOCKER_CMD)/docker-flake.txt" ]]; then + DOCKER_FLAKE="$(cat $(dirname $DOCKER_CMD)/docker-flake.txt)" +fi + +: $DOCKER_FLAKE + +# create unique names depending on the flake reference, to ensure the correct container +# is used. +# unique names depend only on DOCKER_FLAKE, allowing them to be computed without nix. +commit=$(printf '%s' "$DOCKER_FLAKE" | grep --only-matching -E '[0-9a-fA-F]{40}' | head -c8) +flake_hash=flake-$(printf '%s' "$DOCKER_FLAKE" | md5sum | cut -d' ' -f1 | head -c4) + +if [[ -z "${DOCKER_TAG:-}" ]]; then + DOCKER_TAG="$flake_hash-$commit" +fi + +unique_image="$DOCKER_IMAGE:$DOCKER_TAG" +unique_container="container-$DOCKER_TAG" + +# this allows the env subcommand to output syntax compatible with multiple shells +shell=$(basename $SHELL) +if [[ $shell == fish ]]; then + unset='set --erase' + unalias='functions --erase' + eval='(' +else + unset=unset + unalias=unalias + eval='$(' +fi + + +if [[ "$1" == pull ]]; then + # pulls the unique image from the registry + set -x + exec $DOCKER pull $DOCKER_PLATFORM "$unique_image" + +elif [[ "$1" == push ]]; then + # pushes the unique image to the registry. image must already exist locally. + set -x + exec $DOCKER push "$unique_image" + +elif [[ "$1" == build ]]; then + # builds the docker image for running tools. + # safe to re-run. if docker image is already up-to-date, should be reasonably fast. + nix build "$DOCKER_FLAKE" --no-link + nix build "$DOCKER_FLAKE.conf" --no-link + conf=$(nix build "$DOCKER_FLAKE.conf" --no-link --print-out-paths) + tag=$(nix eval --expr "with builtins; (fromJSON (unsafeDiscardStringContext (readFile $conf))).repo_tag" --impure --raw) + if ! [[ "$tag" == "$DOCKER_IMAGE":* ]]; then + printf '%s %s %s.\n' \ + "ERROR: docker image names do not match!" \ + "nix flake will build '$tag', but" \ + "DOCKER_IMAGE is '$DOCKER_IMAGE'" >&2 + exit 1 + fi + set -x + $(nix build "$DOCKER_FLAKE" --no-link --print-out-paths) | "$DOCKER" image load + $DOCKER image tag "$tag" $unique_image + exit + +elif [[ "$1" == start ]]; then + # starts an instance of the docker image. + set -x + exec $DOCKER run $DOCKER_PLATFORM -v"$GIT_ROOT:$GIT_ROOT" --rm -td --user $DOCKER_USER --name $unique_container $unique_image + +elif [[ "$1" == stop ]]; then + # stops the instance of the docker image. + set -x + exec $DOCKER stop -t 1 $unique_container + # since --rm is given to `docker run`, this will also remove the container. + +elif [[ "$1" == shell ]]; then + # enters an interactive shell within the container. + set -x + exec $DOCKER exec -it --user $DOCKER_USER -w "$GIT_ROOT/$DIR" -eshell=1 $unique_container /usr/bin/_exec bash + +elif [[ "$1" == hash ]]; then + # outputs information about the docker image's version to stdout. + echo "$DOCKER_FLAKE" + echo + exec "$DOCKER_CMD" bash -c 'ls -1 /nix/store | sort -k1.33' # sort /nix/store contents by name, not hash + +elif [[ "$1" == env ]]; then + # outputs commands to set the environment to stdout. + # when passed to `eval`, these commands should prepare the shell for running + # basil tests through docker. + + # if --unset is used, removes all definitions + isunset=$([[ $# -ge 2 ]] && [[ "$2" == --unset ]] && echo true || echo false) + # if --reset is used, removes all definitions, then re-adds them based on defaults + isreset=$([[ $# -ge 2 ]] && [[ "$2" == --reset ]] && echo true || echo false) + + if $isreset; then + isunset=true + fi + + function echoexport() { + if $isunset; then + echo echo "$unset" "$1" ';' + echo "$unset" "$1" ';' + return + fi + printf 'echo "%s = %s";\n' "$1" "$2" + printf 'export %s="%s";\n' "$1" "$2" + } + + echoexport USE_DOCKER "1" + echoexport DOCKER_FLAKE "$DOCKER_FLAKE" + echoexport DOCKER_IMAGE "$DOCKER_IMAGE" + echoexport DOCKER_TAG "$DOCKER_TAG" + echoexport DOCKER_PLATFORM "$DOCKER_PLATFORM" + echoexport DOCKER "$DOCKER" + echoexport DOCKER_USER "$DOCKER_USER" + echoexport DOCKER_CMD "$DOCKER_CMD" + echoexport GIT_ROOT "$GIT_ROOT" + echo 'echo;' + echoexport GCC "$DOCKER_CMD aarch64-unknown-linux-gnu-gcc" + echoexport CLANG "$DOCKER_CMD aarch64-unknown-linux-gnu-clang" + echoexport READELF "$DOCKER_CMD aarch64-unknown-linux-gnu-readelf" + echoexport BAP "$DOCKER_CMD bap" + echoexport DDISASM "$DOCKER_CMD ddisasm" + echoexport PROTO_JSON "$DOCKER_CMD proto-json.py" + # echoexport PROTO_JSON "/home/rina/progs/gtirb-semantics/scripts/proto-json.py" + echoexport DEBUG_GTS "$DOCKER_CMD debug-gts.py" + echoexport GTIRB_SEMANTICS "$DOCKER_CMD gtirb-semantics" + echo 'echo;' + if $isunset; then + echo "echo $unalias docker-helper.sh;" + echo "$unalias docker-helper.sh;" + else + echo "echo alias docker-helper.sh = '$DOCKER_CMD';" + echo "alias 'docker-helper.sh=$DOCKER_CMD';" + fi + + if $isreset; then + echo "eval $eval$DOCKER_CMD env);" + fi + exit +fi + +if [[ -n "${NIX_BUILD_TOP:-}" ]]; then + set -x + # if already inside a Nix shell, simply execute + exec /usr/bin/_exec "$@" +else + set -x + # for other commands, execute within the container. + exec $DOCKER exec --user $DOCKER_USER -w "$GIT_ROOT/$DIR" $unique_container /usr/bin/_exec "$@" +fi diff --git a/src/test/make/gcc.mk b/src/test/make/gcc.mk index 4f9fdeaae..74e2190e5 100644 --- a/src/test/make/gcc.mk +++ b/src/test/make/gcc.mk @@ -1,2 +1,3 @@ CC=$(GCC) +CFLAGS += -pie include $(GIT_ROOT)/src/test/make/lift.mk diff --git a/src/test/make/gcc_O2.mk b/src/test/make/gcc_O2.mk index 72f49363f..bfe3dfd19 100644 --- a/src/test/make/gcc_O2.mk +++ b/src/test/make/gcc_O2.mk @@ -1,3 +1,3 @@ CC=$(GCC) -CFLAGS += -O2 +CFLAGS += -pie -O2 include $(GIT_ROOT)/src/test/make/lift.mk diff --git a/src/test/make/gcc_pic.mk b/src/test/make/gcc_pic.mk index b107b722d..6d2b6e01d 100644 --- a/src/test/make/gcc_pic.mk +++ b/src/test/make/gcc_pic.mk @@ -1,3 +1,3 @@ CC=$(GCC) -CFLAGS += -fpic +CFLAGS += -pie -fpic include $(GIT_ROOT)/src/test/make/lift.mk diff --git a/src/test/make/lift-directories.mk b/src/test/make/lift-directories.mk index cbb55a300..423460890 100644 --- a/src/test/make/lift-directories.mk +++ b/src/test/make/lift-directories.mk @@ -2,11 +2,32 @@ # Run from the directory basil/src/test/*/test_case/ +# - lift-directories.mk: sets NAME +# - config.mk: sets ENABLED_COMPILERS +# - exec: gcc_pic.mk: sets CC / CFLAGS +# - lift.mk: sets CONFIG to compiler variant + +NAME := $(notdir $(shell pwd)) + +COMMON_ARTEFACTS := $(NAME).relf +BAP_ARTEFACTS := $(NAME).adt $(NAME).bir +GTIRB_ARTEFACTS := $(NAME).gts + +ALL_ARTEFACTS := $(BAP_ARTEFACTS) $(COMMON_ARTEFACTS) $(GTIRB_ARTEFACTS) # - means continue if it doesnt exist -include ./config.mk -NAME=$(notdir $(shell pwd)) +LIFT_ARTEFACTS ?= $(BAP_ARTEFACTS) $(COMMON_ARTEFACTS) $(GTIRB_ARTEFACTS) + GIT_ROOT?=$(realpath ../../../../) +BUILD_DIR ?= $(shell realpath --relative-to $(GIT_ROOT) .) +MAKE_DIR ?= $(GIT_ROOT)/src/test/make + +ifeq ($(USE_DOCKER),1) + ENSURE_DOCKER := true "using docker" && +else + ENSURE_DOCKER := echo "this command should be run within docker" >&2 && false && +endif #CFLAGS=-fno-pic -fno-plt TARGET=aarch64-linux-gnu @@ -14,28 +35,50 @@ GCC ?= aarch64-linux-gnu-gcc CLANG ?= clang-15 -target $(TARGET) CC ?= $(GCC) -BAP?=bap +BAP ?= bap READELF ?= aarch64-linux-gnu-readelf + +DDISASM ?= ddisasm +PROTO_JSON ?= proto-json.py +DEBUG_GTS ?= debug-gts.py +GTIRB_SEMANTICS ?= gtirb-semantics + BASIL=$(GIT_ROOT)/target/scala-3.3.1/wptool-boogie-assembly-0.0.1.jar -C_SOURCE ?=$(realpath $(wildcard *.c)) -SPEC ?=$(realpath $(wildcard *.spec)) -EXTRA_SPEC ?=$(realpath $(wildcard *.bpl)) -BASIL_FLAGS ?= +# paths below are relative to lift.mk's compilation_variant directory. +# note, wildcard is relative to test_case directory. +C_SOURCE ?=$(addprefix ../,$(wildcard *.c)) +SPEC ?=$(addprefix ../,$(wildcard *.spec)) +EXTRA_SPEC ?=$(addprefix ../,$(wildcard *.bpl)) +BASIL_FLAGS ?= #BOOGIE_FLAGS=/proverOpt:O:smt.array.extensional=false BOOGIE_FLAGS ?= /useArrayAxioms -LIFT_ARTEFACTS=$(NAME).adt $(NAME).bir $(NAME).relf $(NAME).gts - ENABLED_COMPILERS ?= clang clang_O2 clang_pic gcc gcc_O2 gcc_pic -TARGETS := all verify clean cleanall cleanlift cleanjson cleangts cleantest recompile json gts -.PHONY : $(TARGETS) $(ENABLED_COMPILERS) +TARGETS := all verify repro-stash repro-check md5sum-check md5sum-update clean cleanall cleanlift cleanjson cleangts cleantest recompile json gts +.PHONY : $(TARGETS) $(ENABLED_COMPILERS) docker-start docker-stop $(TARGETS): $(ENABLED_COMPILERS) +# an empty test case directory may be present for a number of reasons (e.g. git branch switching). +# ignore such directories to avoid more cryptic errors later. +ifeq ($(C_SOURCE),) + +# more validity checks +ifneq ($(SPEC)$(EXTRA_SPEC),) + $(error invalid test case: "$(realpath .)" has .bpl or .spec files but no C file) +endif + +$(ENABLED_COMPILERS): + @echo 'note: skipping directory "$(realpath .)" with no C files...' + +else + $(ENABLED_COMPILERS): mkdir -p $@/ - # - continue if fails - -$(MAKE) -C $(realpath $@) -f $(GIT_ROOT)/src/test/make/$@.mk $(MAKECMDGOALS) + $(MAKE) -C $(realpath .)/$@ -f $(MAKE_DIR)/$@.mk $(MAKECMDGOALS) + +endif + diff --git a/src/test/make/lift.mk b/src/test/make/lift.mk index 755768f71..e4761a6e9 100644 --- a/src/test/make/lift.mk +++ b/src/test/make/lift.mk @@ -1,13 +1,66 @@ # Run from the directory basil/src/test/*/test_case/compilation_variant/ -$(LIFT_ARTEFACTS): a.out +MD5SUM_FILE := $(NAME).md5sum + +# compilation variant name. be careful of trailing whitespace! +CONFIG := $(notdir $(realpath .)) + +# override with config-specific lifter selection +ifdef LIFT_ARTEFACTS_$(CONFIG) + LIFT_ARTEFACTS := $(LIFT_ARTEFACTS_$(CONFIG)) +endif + +# $(info $(realpath .) config=$(CONFIG) artefacts=$(LIFT_ARTEFACTS)) + +all: $(LIFT_ARTEFACTS) + +$(NAME).relf: a.out $(READELF) -s -r -W a.out > $(NAME).relf - $(BAP) a.out -d adt:$(NAME).adt -d bir:$(NAME).bir - ddisasm a.out --ir $(NAME).gtirb - gtirb-semantics $(NAME).gtirb $(NAME).gts +$(NAME).adt $(NAME).bir &: a.out + $(BAP) a.out -d adt:temp.adt -d bir:temp.bir + $(MAKE_DIR)/bap-normalise.py temp.adt temp.bir + mv temp.adt $(NAME).adt && mv temp.bir $(NAME).bir + +# if gtirb is missing but required by .gts, do not attempt to build it. +# essentially, missing intermediate files (here, gtirb) will not trigger +# a re-build so long as its products (here, gts) are up-to-date with respect +# to inputs (here, a.out) +.SECONDARY: $(NAME).gtirb +$(NAME).gtirb: a.out + $(DDISASM) a.out --ir $(NAME).temp.gtirb + $(PROTO_JSON) --idem=proto -s8 $(NAME).temp.gtirb $(NAME).gtirb # normalises protobuffer encoding + rm $(NAME).temp.gtirb +$(NAME).gts: $(NAME).gtirb + $(GTIRB_SEMANTICS) $(NAME).gtirb $(NAME).gts + +repro-stash: $(LIFT_ARTEFACTS) + rm -rfv repro-stash && mkdir -p repro-stash && mv -v $(LIFT_ARTEFACTS) $(realpath .)/repro-stash + +repro-check: $(LIFT_ARTEFACTS) + [ -d repro-stash ] # repro-stash must be executed before repro-check + bash -xeu -c 'cd $(realpath .); for f in $(LIFT_ARTEFACTS); do diff --color -u repro-stash/$$f $$f; done' + +BASE_DIR := $(GIT_ROOT)/src/test +RELATIVE_DIR := $(shell realpath --relative-to $(BASE_DIR) .) + +md5sum-check: a.out $(LIFT_ARTEFACTS) +ifeq ($(USE_DOCKER), 1) + # $(DOCKER_CMD) hash > docker-hash-new + # diff --color -u docker-hash docker-hash-new # if this fails, make sure your docker image is up-to-date. + # rm docker-hash-new + cd $(BASE_DIR) && md5sum -c $(realpath .)/$(MD5SUM_FILE) # using docker; checking compiler output hashes. +else + echo "not running within docker; skipping docker image validation." + cd $(BASE_DIR) && md5sum -c $(realpath .)/$(MD5SUM_FILE) +endif + +# paths in md5sum are relative to src/test, to allow for collation into a big md5sums file +md5sum-update: a.out $(LIFT_ARTEFACTS) + cd $(BASE_DIR) && md5sum $(addprefix $(RELATIVE_DIR)/,$^) > $(RELATIVE_DIR)/$(MD5SUM_FILE) # $^ is all specified dependencies + # $(ENSURE_DOCKER) $(DOCKER_CMD) hash > docker-hash -ifdef $(SPEC) +ifdef $(SPEC) BASIL_SPECARG = --spec $(SPEC) endif @@ -25,20 +78,17 @@ $(BASIL): # don't re-lift only if binary is missing .SECONDARY: a.out a.out: $(C_SOURCE) - $(CC) $(CFLAGS) $(C_SOURCE) + $(CC) $(CFLAGS) '$(C_SOURCE)' -.PHONY=recompile verify clean cleanlift cleanall cleanbin cleantest cleangts json gts +.PHONY=all recompile verify repro-stash repro-check md5sum-check md5sum-update clean cleanlift cleanall cleanbin cleantest cleangts cleanrepro json gts verify: $(NAME)_bap.bpl $(NAME)_gtirb.bpl recompile: a.out -gts: a.out - ddisasm a.out --ir $(NAME).gtirb - gtirb-semantics $(NAME).gtirb $(NAME).gts - rm -rf $(NAME).gtirb +gts: $(NAME).gts -json: - debug-gts.py $(NAME).gts > $(NAME).json +json: $(NAME).gts + $(DEBUG_GTS) $(NAME).gts > $(NAME).json $(NAME)_bap_result.txt: $(NAME)_bap.bpl $(EXTRA_SPEC) bash -c "time boogie $(NAME)_bap.bpl $(EXTRA_SPEC) $(BOOGIE_FLAGS) | tee $(NAME)_bap_result.txt" @@ -46,7 +96,7 @@ $(NAME)_bap_result.txt: $(NAME)_bap.bpl $(EXTRA_SPEC) $(NAME)_gtirb_result.txt: $(NAME)_gtirb.bpl $(EXTRA_SPEC) bash -c "time boogie $(NAME)_gtirb.bpl $(EXTRA_SPEC) $(BOOGIE_FLAGS) | tee $(NAME)_gtirb_result.txt" -cleanall: clean cleanlift cleanbin cleantest cleanjson +cleanall: clean cleanrepro cleantest cleantest: rm -rf $(NAME).bpl @@ -60,6 +110,9 @@ cleanbin: rm -rf a.out rm -rf $(NAME).gtirb +cleanrepro: + rm -rf repro-stash + clean: cleanlift cleanbin cleanjson cleanjson: @@ -72,4 +125,4 @@ cleanlift: rm -rf $(NAME).gts cleangts: - rm -rf $(NAME).gts \ No newline at end of file + rm -rf $(NAME).gts diff --git a/src/test/memory_regions/heap_pointer/clang/heap_pointer.adt b/src/test/memory_regions/heap_pointer/clang/heap_pointer.adt deleted file mode 100644 index 5ec241ec6..000000000 --- a/src/test/memory_regions/heap_pointer/clang/heap_pointer.adt +++ /dev/null @@ -1,614 +0,0 @@ -Project(Attrs([Attr("filename","\"a.out\""), -Attr("image-specification","(declare abi (name str))\n(declare arch (name str))\n(declare base-address (addr int))\n(declare bias (off int))\n(declare bits (size int))\n(declare code-region (addr int) (size int) (off int))\n(declare code-start (addr int))\n(declare entry-point (addr int))\n(declare external-reference (addr int) (name str))\n(declare format (name str))\n(declare is-executable (flag bool))\n(declare is-little-endian (flag bool))\n(declare llvm:base-address (addr int))\n(declare llvm:code-entry (name str) (off int) (size int))\n(declare llvm:coff-import-library (name str))\n(declare llvm:coff-virtual-section-header (name str) (addr int) (size int))\n(declare llvm:elf-program-header (name str) (off int) (size int))\n(declare llvm:elf-program-header-flags (name str) (ld bool) (r bool) \n (w bool) (x bool))\n(declare llvm:elf-virtual-program-header (name str) (addr int) (size int))\n(declare llvm:entry-point (addr int))\n(declare llvm:macho-symbol (name str) (value int))\n(declare llvm:name-reference (at int) (name str))\n(declare llvm:relocation (at int) (addr int))\n(declare llvm:section-entry (name str) (addr int) (size int) (off int))\n(declare llvm:section-flags (name str) (r bool) (w bool) (x bool))\n(declare llvm:segment-command (name str) (off int) (size int))\n(declare llvm:segment-command-flags (name str) (r bool) (w bool) (x bool))\n(declare llvm:symbol-entry (name str) (addr int) (size int) (off int)\n (value int))\n(declare llvm:virtual-segment-command (name str) (addr int) (size int))\n(declare mapped (addr int) (size int) (off int))\n(declare named-region (addr int) (size int) (name str))\n(declare named-symbol (addr int) (name str))\n(declare require (name str))\n(declare section (addr int) (size int))\n(declare segment (addr int) (size int) (r bool) (w bool) (x bool))\n(declare subarch (name str))\n(declare symbol-chunk (addr int) (size int) (root int))\n(declare symbol-value (addr int) (value int))\n(declare system (name str))\n(declare vendor (name str))\n\n(abi unknown)\n(arch aarch64)\n(base-address 0)\n(bias 0)\n(bits 64)\n(code-region 2008 20 2008)\n(code-region 1600 408 1600)\n(code-region 1488 112 1488)\n(code-region 1464 24 1464)\n(code-start 1652)\n(code-start 1600)\n(code-start 1876)\n(entry-point 1600)\n(external-reference 69568 _ITM_deregisterTMCloneTable)\n(external-reference 69576 __cxa_finalize)\n(external-reference 69584 __gmon_start__)\n(external-reference 69600 _ITM_registerTMCloneTable)\n(external-reference 69632 __libc_start_main)\n(external-reference 69640 __cxa_finalize)\n(external-reference 69648 malloc)\n(external-reference 69656 __gmon_start__)\n(external-reference 69664 abort)\n(format elf)\n(is-executable true)\n(is-little-endian true)\n(llvm:base-address 0)\n(llvm:code-entry abort 0 0)\n(llvm:code-entry malloc 0 0)\n(llvm:code-entry __cxa_finalize 0 0)\n(llvm:code-entry __libc_start_main 0 0)\n(llvm:code-entry _init 1464 0)\n(llvm:code-entry main 1876 132)\n(llvm:code-entry _start 1600 52)\n(llvm:code-entry abort@GLIBC_2.17 0 0)\n(llvm:code-entry malloc@GLIBC_2.17 0 0)\n(llvm:code-entry _fini 2008 0)\n(llvm:code-entry __cxa_finalize@GLIBC_2.17 0 0)\n(llvm:code-entry __libc_start_main@GLIBC_2.34 0 0)\n(llvm:code-entry frame_dummy 1872 0)\n(llvm:code-entry __do_global_dtors_aux 1792 0)\n(llvm:code-entry register_tm_clones 1728 0)\n(llvm:code-entry deregister_tm_clones 1680 0)\n(llvm:code-entry call_weak_fn 1652 20)\n(llvm:code-entry .fini 2008 20)\n(llvm:code-entry .text 1600 408)\n(llvm:code-entry .plt 1488 112)\n(llvm:code-entry .init 1464 24)\n(llvm:elf-program-header 08 3528 568)\n(llvm:elf-program-header 07 0 0)\n(llvm:elf-program-header 06 2032 60)\n(llvm:elf-program-header 05 596 68)\n(llvm:elf-program-header 04 3544 480)\n(llvm:elf-program-header 03 3528 632)\n(llvm:elf-program-header 02 0 2296)\n(llvm:elf-program-header 01 568 27)\n(llvm:elf-program-header 00 64 504)\n(llvm:elf-program-header-flags 08 false true false false)\n(llvm:elf-program-header-flags 07 false true true false)\n(llvm:elf-program-header-flags 06 false true false false)\n(llvm:elf-program-header-flags 05 false true false false)\n(llvm:elf-program-header-flags 04 false true true false)\n(llvm:elf-program-header-flags 03 true true true false)\n(llvm:elf-program-header-flags 02 true true false true)\n(llvm:elf-program-header-flags 01 false true false false)\n(llvm:elf-program-header-flags 00 false true false false)\n(llvm:elf-virtual-program-header 08 69064 568)\n(llvm:elf-virtual-program-header 07 0 0)\n(llvm:elf-virtual-program-header 06 2032 60)\n(llvm:elf-virtual-program-header 05 596 68)\n(llvm:elf-virtual-program-header 04 69080 480)\n(llvm:elf-virtual-program-header 03 69064 640)\n(llvm:elf-virtual-program-header 02 0 2296)\n(llvm:elf-virtual-program-header 01 568 27)\n(llvm:elf-virtual-program-header 00 64 504)\n(llvm:entry-point 1600)\n(llvm:name-reference 69664 abort)\n(llvm:name-reference 69656 __gmon_start__)\n(llvm:name-reference 69648 malloc)\n(llvm:name-reference 69640 __cxa_finalize)\n(llvm:name-reference 69632 __libc_start_main)\n(llvm:name-reference 69600 _ITM_registerTMCloneTable)\n(llvm:name-reference 69584 __gmon_start__)\n(llvm:name-reference 69576 __cxa_finalize)\n(llvm:name-reference 69568 _ITM_deregisterTMCloneTable)\n(llvm:section-entry .shstrtab 0 259 7026)\n(llvm:section-entry .strtab 0 586 6440)\n(llvm:section-entry .symtab 0 2208 4232)\n(llvm:section-entry .comment 0 71 4160)\n(llvm:section-entry .bss 69696 8 4160)\n(llvm:section-entry .data 69672 24 4136)\n(llvm:section-entry .got.plt 69608 64 4072)\n(llvm:section-entry .got 69560 48 4024)\n(llvm:section-entry .dynamic 69080 480 3544)\n(llvm:section-entry .fini_array 69072 8 3536)\n(llvm:section-entry .init_array 69064 8 3528)\n(llvm:section-entry .eh_frame 2096 200 2096)\n(llvm:section-entry .eh_frame_hdr 2032 60 2032)\n(llvm:section-entry .rodata 2028 4 2028)\n(llvm:section-entry .fini 2008 20 2008)\n(llvm:section-entry .text 1600 408 1600)\n(llvm:section-entry .plt 1488 112 1488)\n(llvm:section-entry .init 1464 24 1464)\n(llvm:section-entry .rela.plt 1344 120 1344)\n(llvm:section-entry .rela.dyn 1152 192 1152)\n(llvm:section-entry .gnu.version_r 1104 48 1104)\n(llvm:section-entry .gnu.version 1084 20 1084)\n(llvm:section-entry .dynstr 936 148 936)\n(llvm:section-entry .dynsym 696 240 696)\n(llvm:section-entry .gnu.hash 664 28 664)\n(llvm:section-entry .note.ABI-tag 632 32 632)\n(llvm:section-entry .note.gnu.build-id 596 36 596)\n(llvm:section-entry .interp 568 27 568)\n(llvm:section-flags .shstrtab true false false)\n(llvm:section-flags .strtab true false false)\n(llvm:section-flags .symtab true false false)\n(llvm:section-flags .comment true false false)\n(llvm:section-flags .bss true true false)\n(llvm:section-flags .data true true false)\n(llvm:section-flags .got.plt true true false)\n(llvm:section-flags .got true true false)\n(llvm:section-flags .dynamic true true false)\n(llvm:section-flags .fini_array true true false)\n(llvm:section-flags .init_array true true false)\n(llvm:section-flags .eh_frame true false false)\n(llvm:section-flags .eh_frame_hdr true false false)\n(llvm:section-flags .rodata true false false)\n(llvm:section-flags .fini true false true)\n(llvm:section-flags .text true false true)\n(llvm:section-flags .plt true false true)\n(llvm:section-flags .init true false true)\n(llvm:section-flags .rela.plt true false false)\n(llvm:section-flags .rela.dyn true false false)\n(llvm:section-flags .gnu.version_r true false false)\n(llvm:section-flags .gnu.version true false false)\n(llvm:section-flags .dynstr true false false)\n(llvm:section-flags .dynsym true false false)\n(llvm:section-flags .gnu.hash true false false)\n(llvm:section-flags .note.ABI-tag true false false)\n(llvm:section-flags .note.gnu.build-id true false false)\n(llvm:section-flags .interp true false false)\n(llvm:symbol-entry abort 0 0 0 0)\n(llvm:symbol-entry malloc 0 0 0 0)\n(llvm:symbol-entry __cxa_finalize 0 0 0 0)\n(llvm:symbol-entry __libc_start_main 0 0 0 0)\n(llvm:symbol-entry _init 1464 0 1464 1464)\n(llvm:symbol-entry main 1876 132 1876 1876)\n(llvm:symbol-entry _start 1600 52 1600 1600)\n(llvm:symbol-entry abort@GLIBC_2.17 0 0 0 0)\n(llvm:symbol-entry malloc@GLIBC_2.17 0 0 0 0)\n(llvm:symbol-entry _fini 2008 0 2008 2008)\n(llvm:symbol-entry __cxa_finalize@GLIBC_2.17 0 0 0 0)\n(llvm:symbol-entry __libc_start_main@GLIBC_2.34 0 0 0 0)\n(llvm:symbol-entry frame_dummy 1872 0 1872 1872)\n(llvm:symbol-entry __do_global_dtors_aux 1792 0 1792 1792)\n(llvm:symbol-entry register_tm_clones 1728 0 1728 1728)\n(llvm:symbol-entry deregister_tm_clones 1680 0 1680 1680)\n(llvm:symbol-entry call_weak_fn 1652 20 1652 1652)\n(mapped 0 2296 0)\n(mapped 69064 632 3528)\n(named-region 0 2296 02)\n(named-region 69064 640 03)\n(named-region 568 27 .interp)\n(named-region 596 36 .note.gnu.build-id)\n(named-region 632 32 .note.ABI-tag)\n(named-region 664 28 .gnu.hash)\n(named-region 696 240 .dynsym)\n(named-region 936 148 .dynstr)\n(named-region 1084 20 .gnu.version)\n(named-region 1104 48 .gnu.version_r)\n(named-region 1152 192 .rela.dyn)\n(named-region 1344 120 .rela.plt)\n(named-region 1464 24 .init)\n(named-region 1488 112 .plt)\n(named-region 1600 408 .text)\n(named-region 2008 20 .fini)\n(named-region 2028 4 .rodata)\n(named-region 2032 60 .eh_frame_hdr)\n(named-region 2096 200 .eh_frame)\n(named-region 69064 8 .init_array)\n(named-region 69072 8 .fini_array)\n(named-region 69080 480 .dynamic)\n(named-region 69560 48 .got)\n(named-region 69608 64 .got.plt)\n(named-region 69672 24 .data)\n(named-region 69696 8 .bss)\n(named-region 0 71 .comment)\n(named-region 0 2208 .symtab)\n(named-region 0 586 .strtab)\n(named-region 0 259 .shstrtab)\n(named-symbol 1652 call_weak_fn)\n(named-symbol 1680 deregister_tm_clones)\n(named-symbol 1728 register_tm_clones)\n(named-symbol 1792 __do_global_dtors_aux)\n(named-symbol 1872 frame_dummy)\n(named-symbol 0 __libc_start_main@GLIBC_2.34)\n(named-symbol 0 __cxa_finalize@GLIBC_2.17)\n(named-symbol 2008 _fini)\n(named-symbol 0 malloc@GLIBC_2.17)\n(named-symbol 0 abort@GLIBC_2.17)\n(named-symbol 1600 _start)\n(named-symbol 1876 main)\n(named-symbol 1464 _init)\n(named-symbol 0 __libc_start_main)\n(named-symbol 0 __cxa_finalize)\n(named-symbol 0 malloc)\n(named-symbol 0 abort)\n(require libc.so.6)\n(section 568 27)\n(section 596 36)\n(section 632 32)\n(section 664 28)\n(section 696 240)\n(section 936 148)\n(section 1084 20)\n(section 1104 48)\n(section 1152 192)\n(section 1344 120)\n(section 1464 24)\n(section 1488 112)\n(section 1600 408)\n(section 2008 20)\n(section 2028 4)\n(section 2032 60)\n(section 2096 200)\n(section 69064 8)\n(section 69072 8)\n(section 69080 480)\n(section 69560 48)\n(section 69608 64)\n(section 69672 24)\n(section 69696 8)\n(section 0 71)\n(section 0 2208)\n(section 0 586)\n(section 0 259)\n(segment 0 2296 true false true)\n(segment 69064 640 true true false)\n(subarch v8)\n(symbol-chunk 1652 20 1652)\n(symbol-chunk 1600 52 1600)\n(symbol-chunk 1876 132 1876)\n(symbol-value 1652 1652)\n(symbol-value 1680 1680)\n(symbol-value 1728 1728)\n(symbol-value 1792 1792)\n(symbol-value 1872 1872)\n(symbol-value 2008 2008)\n(symbol-value 1600 1600)\n(symbol-value 1876 1876)\n(symbol-value 1464 1464)\n(symbol-value 0 0)\n(system \"\")\n(vendor \"\")\n"), -Attr("abi-name","\"aarch64-linux-gnu-elf\"")]), -Sections([Section(".shstrtab", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x40\x06\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x78\x1c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x38\x00\x09\x00\x40\x00\x1d\x00\x1c\x00\x06\x00\x00\x00\x04\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x04\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xf8\x08\x00\x00\x00\x00\x00\x00\xf8\x08\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x01\x00\x00\x00\x06\x00\x00\x00\xc8\x0d\x00\x00\x00\x00\x00\x00\xc8\x0d\x01\x00\x00\x00\x00\x00\xc8\x0d\x01"), -Section(".strtab", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x40\x06\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x78\x1c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x38\x00\x09\x00\x40\x00\x1d\x00\x1c\x00\x06\x00\x00\x00\x04\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x04\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xf8\x08\x00\x00\x00\x00\x00\x00\xf8\x08\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x01\x00\x00\x00\x06\x00\x00\x00\xc8\x0d\x00\x00\x00\x00\x00\x00\xc8\x0d\x01\x00\x00\x00\x00\x00\xc8\x0d\x01\x00\x00\x00\x00\x00\x78\x02\x00\x00\x00\x00\x00\x00\x80\x02\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x02\x00\x00\x00\x06\x00\x00\x00\xd8\x0d\x00\x00\x00\x00\x00\x00\xd8\x0d\x01\x00\x00\x00\x00\x00\xd8\x0d\x01\x00\x00\x00\x00\x00\xe0\x01\x00\x00\x00\x00\x00\x00\xe0\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x04\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x50\xe5\x74\x64\x04\x00\x00\x00\xf0\x07\x00\x00\x00\x00\x00\x00\xf0\x07\x00\x00\x00\x00\x00\x00\xf0\x07\x00\x00\x00\x00\x00\x00\x3c\x00\x00\x00\x00\x00\x00\x00\x3c\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x51\xe5\x74\x64\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x52\xe5\x74\x64\x04\x00\x00\x00\xc8\x0d\x00\x00\x00\x00\x00\x00\xc8\x0d\x01\x00\x00\x00\x00\x00\xc8\x0d\x01\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x2f\x6c\x69\x62\x2f\x6c\x64\x2d\x6c\x69\x6e\x75\x78\x2d\x61\x61\x72\x63"), -Section(".symtab", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x40\x06\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x78\x1c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x38\x00\x09\x00\x40\x00\x1d\x00\x1c\x00\x06\x00\x00\x00\x04\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x04\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xf8\x08\x00\x00\x00\x00\x00\x00\xf8\x08\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x01\x00\x00\x00\x06\x00\x00\x00\xc8\x0d\x00\x00\x00\x00\x00\x00\xc8\x0d\x01\x00\x00\x00\x00\x00\xc8\x0d\x01\x00\x00\x00\x00\x00\x78\x02\x00\x00\x00\x00\x00\x00\x80\x02\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x02\x00\x00\x00\x06\x00\x00\x00\xd8\x0d\x00\x00\x00\x00\x00\x00\xd8\x0d\x01\x00\x00\x00\x00\x00\xd8\x0d\x01\x00\x00\x00\x00\x00\xe0\x01\x00\x00\x00\x00\x00\x00\xe0\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x04\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x50\xe5\x74\x64\x04\x00\x00\x00\xf0\x07\x00\x00\x00\x00\x00\x00\xf0\x07\x00\x00\x00\x00\x00\x00\xf0\x07\x00\x00\x00\x00\x00\x00\x3c\x00\x00\x00\x00\x00\x00\x00\x3c\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x51\xe5\x74\x64\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x52\xe5\x74\x64\x04\x00\x00\x00\xc8\x0d\x00\x00\x00\x00\x00\x00\xc8\x0d\x01\x00\x00\x00\x00\x00\xc8\x0d\x01\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x2f\x6c\x69\x62\x2f\x6c\x64\x2d\x6c\x69\x6e\x75\x78\x2d\x61\x61\x72\x63\x68\x36\x34\x2e\x73\x6f\x2e\x31\x00\x00\x04\x00\x00\x00\x14\x00\x00\x00\x03\x00\x00\x00\x47\x4e\x55\x00\x4c\x5f\x5a\x75\x87\x74\x35\xea\x92\x88\xba\xf4\xa6\xaa\x06\xe3\x94\xa3\x1e\x99\x04\x00\x00\x00\x10\x00\x00\x00\x01\x00\x00\x00\x47\x4e\x55\x00\x00\x00\x00\x00\x03\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x01\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x0b\x00\xb8\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x17\x00\x28\x10\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x17\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4f\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x22\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6b\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x29\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5f\x5f\x63\x78\x61\x5f\x66\x69\x6e\x61\x6c\x69\x7a\x65\x00\x6d\x61\x6c\x6c\x6f\x63\x00\x5f\x5f\x6c\x69\x62\x63\x5f\x73\x74\x61\x72\x74\x5f\x6d\x61\x69\x6e\x00\x61\x62\x6f\x72\x74\x00\x6c\x69\x62\x63\x2e\x73\x6f\x2e\x36\x00\x47\x4c\x49\x42\x43\x5f\x32\x2e\x31\x37\x00\x47\x4c\x49\x42\x43\x5f\x32\x2e\x33\x34\x00\x5f\x49\x54\x4d\x5f\x64\x65\x72\x65\x67\x69\x73\x74\x65\x72\x54\x4d\x43\x6c\x6f\x6e\x65\x54\x61\x62\x6c\x65\x00\x5f\x5f\x67\x6d\x6f\x6e\x5f\x73\x74\x61\x72\x74\x5f\x5f\x00\x5f\x49\x54\x4d\x5f\x72\x65\x67\x69\x73\x74\x65\x72\x54\x4d\x43\x6c\x6f\x6e\x65\x54\x61\x62\x6c\x65\x00\x00\x00\x00\x00\x00\x00\x02\x00\x01\x00\x03\x00\x03\x00\x01\x00\x03\x00\x01\x00\x01\x00\x02\x00\x2f\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x97\x91\x96\x06\x00\x00\x03\x00\x39\x00\x00\x00\x10\x00\x00\x00\xb4\x91\x96\x06\x00\x00\x02\x00\x44\x00\x00\x00\x00\x00\x00\x00\xc8\x0d\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x50\x07\x00\x00\x00\x00\x00\x00\xd0\x0d\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\xd8\x0f\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x54\x07\x00\x00\x00\x00\x00\x00\x30\x10\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x30\x10\x01\x00\x00\x00\x00\x00\xc0\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xc8\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xd0\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe0\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x09\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x08\x10\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x10\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x18\x10\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x20\x10\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1f\x20\x03\xd5\xfd\x7b\xbf\xa9\xfd\x03\x00\x91\x2c\x00\x00\x94\xfd\x7b\xc1\xa8\xc0\x03\x5f\xd6\xf0\x7b\xbf\xa9\x90\x00\x00\x90\x11\xfe\x47\xf9\x10\xe2\x3f\x91\x20\x02\x1f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x90\x00\x00\xb0\x11\x02\x40\xf9\x10\x02\x00\x91\x20\x02\x1f\xd6\x90\x00\x00\xb0\x11\x06\x40\xf9\x10\x22\x00\x91\x20\x02\x1f\xd6\x90\x00\x00\xb0\x11\x0a\x40\xf9\x10\x42\x00\x91\x20\x02\x1f\xd6\x90\x00\x00\xb0\x11\x0e\x40\xf9\x10\x62\x00\x91\x20\x02\x1f\xd6\x90\x00\x00\xb0\x11\x12\x40\xf9\x10\x82\x00\x91\x20\x02\x1f\xd6\x1f\x20\x03\xd5\x1d\x00\x80\xd2\x1e\x00\x80\xd2\xe5\x03\x00\xaa\xe1\x03\x40\xf9\xe2\x23\x00\x91\xe6\x03\x00\x91\x80\x00\x00\x90\x00\xec\x47\xf9\x03\x00\x80\xd2\x04\x00\x80\xd2\xe1\xff\xff\x97\xf0\xff\xff\x97\x80\x00\x00\x90\x00\xe8\x47\xf9\x40\x00\x00\xb4\xe8\xff\xff\x17\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x80\x00\x00\xb0\x00\x00\x01\x91\x81\x00\x00\xb0\x21\x00\x01\x91\x3f\x00\x00\xeb\xc0\x00\x00\x54\x81\x00\x00\x90\x21\xe0\x47\xf9\x61\x00\x00\xb4\xf0\x03\x01\xaa\x00\x02\x1f\xd6\xc0\x03\x5f\xd6\x80\x00\x00\xb0\x00\x00\x01\x91\x81\x00\x00\xb0\x21\x00\x01\x91\x21\x00\x00\xcb\x22\xfc\x7f\xd3\x41\x0c\x81\x8b\x21\xfc\x41\x93\xc1\x00\x00\xb4\x82\x00\x00\x90\x42\xf0\x47\xf9\x62\x00\x00\xb4\xf0\x03\x02\xaa\x00\x02\x1f\xd6\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\xfd\x7b\xbe\xa9\xfd\x03\x00\x91\xf3\x0b\x00\xf9\x93\x00\x00\xb0\x60\x02\x41\x39\x40\x01\x00\x35\x80\x00\x00\x90\x00\xe4\x47\xf9\x80\x00\x00\xb4\x80\x00\x00\xb0\x00\x18\x40\xf9\xb5\xff\xff\x97\xd8\xff\xff\x97\x20\x00\x80\x52\x60\x02\x01\x39\xf3\x0b\x40\xf9\xfd\x7b\xc2\xa8\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\xdc\xff\xff\x17\xff\x03\x01\xd1\xfd\x7b\x03\xa9\xfd\xc3\x00\x91\xa0\xc3\x1f\xb8\xa1\x03\x1f\xf8\x80\x00\x80\xd2\xe0\x07\x00\xf9\xa8\xff\xff\x97\xe8\x03\x00\xaa\xe0\x07\x40\xf9\xe8\x0f\x00\xf9\xa4\xff\xff\x97\xe0\x0b\x00\xf9\x8a\x00\x00\xb0\x48\x39\x40\xb9\x08\x05\x00\x11\xe9\x0f\x40\xf9\x28\x01\x00\xb9\x89\x00\x00\xb0\x28\x3d\x40\xb9\x08\x09\x00\x11\xeb\x0b\x40\xf9\x68\x01\x00\xb9\xe8\x0f\x40\xf9\x08\x01\x40\xb9\x48\x39\x00\xb9\xe8\x0b\x40\xf9\x08\x01\x40\xb9\x28\x3d\x00\xb9\xe0\x03\x1f\x2a\xfd\x7b\x43\xa9\xff\x03\x01\x91\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\xfd\x7b\xbf\xa9\xfd\x03\x00\x91\xfd\x7b\xc1\xa8\xc0\x03\x5f\xd6\x01\x00\x02\x00\x01\x1b\x03\x3b\x3c\x00\x00\x00\x06\x00\x00\x00\x50\xfe\xff\xff\x54\x00\x00\x00\xa0\xfe\xff\xff\x68\x00\x00\x00\xd0\xfe\xff\xff\x7c\x00\x00\x00\x10\xff\xff\xff\x90\x00\x00\x00\x60\xff\xff\xff\xb4\x00\x00\x00\x64\xff\xff\xff\xdc\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x01\x7a\x52\x00\x04\x78\x1e\x01\x1b\x0c\x1f\x00\x10\x00\x00\x00\x18\x00\x00\x00\xf4\xfd\xff\xff\x34\x00\x00\x00\x00\x41\x07\x1e\x10\x00\x00\x00\x2c\x00\x00\x00\x30\xfe\xff\xff\x30\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x40\x00\x00\x00\x4c\xfe\xff\xff\x3c\x00\x00\x00\x00\x00\x00\x00\x20\x00\x00\x00\x54\x00\x00\x00\x78\xfe\xff\xff\x48\x00\x00\x00\x00\x41\x0e\x20\x9d\x04\x9e\x03\x42\x93\x02\x4e\xde\xdd\xd3\x0e"), -Section(".comment", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x40\x06\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x78\x1c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x38\x00\x09\x00\x40\x00\x1d\x00\x1c\x00\x06\x00\x00\x00\x04\x00\x00"), -Section(".interp", 0x238, "\x2f\x6c\x69\x62\x2f\x6c\x64\x2d\x6c\x69\x6e\x75\x78\x2d\x61\x61\x72\x63\x68\x36\x34\x2e\x73\x6f\x2e\x31\x00"), -Section(".note.gnu.build-id", 0x254, "\x04\x00\x00\x00\x14\x00\x00\x00\x03\x00\x00\x00\x47\x4e\x55\x00\x4c\x5f\x5a\x75\x87\x74\x35\xea\x92\x88\xba\xf4\xa6\xaa\x06\xe3\x94\xa3\x1e\x99"), -Section(".note.ABI-tag", 0x278, "\x04\x00\x00\x00\x10\x00\x00\x00\x01\x00\x00\x00\x47\x4e\x55\x00\x00\x00\x00\x00\x03\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00"), -Section(".gnu.hash", 0x298, "\x01\x00\x00\x00\x01\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".dynsym", 0x2B8, "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x0b\x00\xb8\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x17\x00\x28\x10\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x17\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4f\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x22\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6b\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x29\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".dynstr", 0x3A8, "\x00\x5f\x5f\x63\x78\x61\x5f\x66\x69\x6e\x61\x6c\x69\x7a\x65\x00\x6d\x61\x6c\x6c\x6f\x63\x00\x5f\x5f\x6c\x69\x62\x63\x5f\x73\x74\x61\x72\x74\x5f\x6d\x61\x69\x6e\x00\x61\x62\x6f\x72\x74\x00\x6c\x69\x62\x63\x2e\x73\x6f\x2e\x36\x00\x47\x4c\x49\x42\x43\x5f\x32\x2e\x31\x37\x00\x47\x4c\x49\x42\x43\x5f\x32\x2e\x33\x34\x00\x5f\x49\x54\x4d\x5f\x64\x65\x72\x65\x67\x69\x73\x74\x65\x72\x54\x4d\x43\x6c\x6f\x6e\x65\x54\x61\x62\x6c\x65\x00\x5f\x5f\x67\x6d\x6f\x6e\x5f\x73\x74\x61\x72\x74\x5f\x5f\x00\x5f\x49\x54\x4d\x5f\x72\x65\x67\x69\x73\x74\x65\x72\x54\x4d\x43\x6c\x6f\x6e\x65\x54\x61\x62\x6c\x65\x00"), -Section(".gnu.version", 0x43C, "\x00\x00\x00\x00\x00\x00\x02\x00\x01\x00\x03\x00\x03\x00\x01\x00\x03\x00\x01\x00"), -Section(".gnu.version_r", 0x450, "\x01\x00\x02\x00\x2f\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x97\x91\x96\x06\x00\x00\x03\x00\x39\x00\x00\x00\x10\x00\x00\x00\xb4\x91\x96\x06\x00\x00\x02\x00\x44\x00\x00\x00\x00\x00\x00\x00"), -Section(".rela.dyn", 0x480, "\xc8\x0d\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x50\x07\x00\x00\x00\x00\x00\x00\xd0\x0d\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\xd8\x0f\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x54\x07\x00\x00\x00\x00\x00\x00\x30\x10\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x30\x10\x01\x00\x00\x00\x00\x00\xc0\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xc8\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xd0\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe0\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x09\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".rela.plt", 0x540, "\x00\x10\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x08\x10\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x10\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x18\x10\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x20\x10\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".init", 0x5B8, "\x1f\x20\x03\xd5\xfd\x7b\xbf\xa9\xfd\x03\x00\x91\x2c\x00\x00\x94\xfd\x7b\xc1\xa8\xc0\x03\x5f\xd6"), -Section(".plt", 0x5D0, "\xf0\x7b\xbf\xa9\x90\x00\x00\x90\x11\xfe\x47\xf9\x10\xe2\x3f\x91\x20\x02\x1f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x90\x00\x00\xb0\x11\x02\x40\xf9\x10\x02\x00\x91\x20\x02\x1f\xd6\x90\x00\x00\xb0\x11\x06\x40\xf9\x10\x22\x00\x91\x20\x02\x1f\xd6\x90\x00\x00\xb0\x11\x0a\x40\xf9\x10\x42\x00\x91\x20\x02\x1f\xd6\x90\x00\x00\xb0\x11\x0e\x40\xf9\x10\x62\x00\x91\x20\x02\x1f\xd6\x90\x00\x00\xb0\x11\x12\x40\xf9\x10\x82\x00\x91\x20\x02\x1f\xd6"), -Section(".fini", 0x7D8, "\x1f\x20\x03\xd5\xfd\x7b\xbf\xa9\xfd\x03\x00\x91\xfd\x7b\xc1\xa8\xc0\x03\x5f\xd6"), -Section(".rodata", 0x7EC, "\x01\x00\x02\x00"), -Section(".eh_frame_hdr", 0x7F0, "\x01\x1b\x03\x3b\x3c\x00\x00\x00\x06\x00\x00\x00\x50\xfe\xff\xff\x54\x00\x00\x00\xa0\xfe\xff\xff\x68\x00\x00\x00\xd0\xfe\xff\xff\x7c\x00\x00\x00\x10\xff\xff\xff\x90\x00\x00\x00\x60\xff\xff\xff\xb4\x00\x00\x00\x64\xff\xff\xff\xdc\x00\x00\x00"), -Section(".eh_frame", 0x830, "\x10\x00\x00\x00\x00\x00\x00\x00\x01\x7a\x52\x00\x04\x78\x1e\x01\x1b\x0c\x1f\x00\x10\x00\x00\x00\x18\x00\x00\x00\xf4\xfd\xff\xff\x34\x00\x00\x00\x00\x41\x07\x1e\x10\x00\x00\x00\x2c\x00\x00\x00\x30\xfe\xff\xff\x30\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x40\x00\x00\x00\x4c\xfe\xff\xff\x3c\x00\x00\x00\x00\x00\x00\x00\x20\x00\x00\x00\x54\x00\x00\x00\x78\xfe\xff\xff\x48\x00\x00\x00\x00\x41\x0e\x20\x9d\x04\x9e\x03\x42\x93\x02\x4e\xde\xdd\xd3\x0e\x00\x00\x00\x00\x10\x00\x00\x00\x78\x00\x00\x00\xa4\xfe\xff\xff\x04\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x01\x7a\x52\x00\x01\x7c\x1e\x01\x1b\x0c\x1f\x00\x24\x00\x00\x00\x18\x00\x00\x00\x80\xfe\xff\xff\x84\x00\x00\x00\x00\x44\x0e\x40\x48\x0c\x1d\x10\x9e\x02\x9d\x04\x02\x6c\x0c\x1f\x40\x48\x0e\x00\xde\xdd\x00\x00\x00\x00\x00\x00"), -Section(".fini_array", 0x10DD0, "\x00\x07\x00\x00\x00\x00\x00\x00"), -Section(".dynamic", 0x10DD8, "\x01\x00\x00\x00\x00\x00\x00\x00\x2f\x00\x00\x00\x00\x00\x00\x00\x0c\x00\x00\x00\x00\x00\x00\x00\xb8\x05\x00\x00\x00\x00\x00\x00\x0d\x00\x00\x00\x00\x00\x00\x00\xd8\x07\x00\x00\x00\x00\x00\x00\x19\x00\x00\x00\x00\x00\x00\x00\xc8\x0d\x01\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x1a\x00\x00\x00\x00\x00\x00\x00\xd0\x0d\x01\x00\x00\x00\x00\x00\x1c\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\xf5\xfe\xff\x6f\x00\x00\x00\x00\x98\x02\x00\x00\x00\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\xa8\x03\x00\x00\x00\x00\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\xb8\x02\x00\x00\x00\x00\x00\x00\x0a\x00\x00\x00\x00\x00\x00\x00\x94\x00\x00\x00\x00\x00\x00\x00\x0b\x00\x00\x00\x00\x00\x00\x00\x18\x00\x00\x00\x00\x00\x00\x00\x15\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\xe8\x0f\x01\x00\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x78\x00\x00\x00\x00\x00\x00\x00\x14\x00\x00\x00\x00\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x17\x00\x00\x00\x00\x00\x00\x00\x40\x05\x00\x00\x00\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x80\x04\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\xc0\x00\x00\x00\x00\x00\x00\x00\x09\x00\x00\x00\x00\x00\x00\x00\x18\x00\x00\x00\x00\x00\x00\x00\xfb\xff\xff\x6f\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\xfe\xff\xff\x6f\x00\x00\x00\x00\x50\x04\x00\x00\x00\x00\x00\x00\xff\xff\xff\x6f\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\xf0\xff\xff\x6f\x00\x00\x00\x00\x3c\x04\x00\x00\x00\x00\x00\x00\xf9\xff\xff\x6f\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".init_array", 0x10DC8, "\x50\x07\x00\x00\x00\x00\x00\x00"), -Section(".got", 0x10FB8, "\xd8\x0d\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x54\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".got.plt", 0x10FE8, "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xd0\x05\x00\x00\x00\x00\x00\x00\xd0\x05\x00\x00\x00\x00\x00\x00\xd0\x05\x00\x00\x00\x00\x00\x00\xd0\x05\x00\x00\x00\x00\x00\x00\xd0\x05\x00\x00\x00\x00\x00\x00"), -Section(".data", 0x11028, "\x00\x00\x00\x00\x00\x00\x00\x00\x30\x10\x01\x00\x00\x00\x00\x00\x05\x00\x00\x00\x08\x00\x00\x00"), -Section(".text", 0x640, "\x1f\x20\x03\xd5\x1d\x00\x80\xd2\x1e\x00\x80\xd2\xe5\x03\x00\xaa\xe1\x03\x40\xf9\xe2\x23\x00\x91\xe6\x03\x00\x91\x80\x00\x00\x90\x00\xec\x47\xf9\x03\x00\x80\xd2\x04\x00\x80\xd2\xe1\xff\xff\x97\xf0\xff\xff\x97\x80\x00\x00\x90\x00\xe8\x47\xf9\x40\x00\x00\xb4\xe8\xff\xff\x17\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x80\x00\x00\xb0\x00\x00\x01\x91\x81\x00\x00\xb0\x21\x00\x01\x91\x3f\x00\x00\xeb\xc0\x00\x00\x54\x81\x00\x00\x90\x21\xe0\x47\xf9\x61\x00\x00\xb4\xf0\x03\x01\xaa\x00\x02\x1f\xd6\xc0\x03\x5f\xd6\x80\x00\x00\xb0\x00\x00\x01\x91\x81\x00\x00\xb0\x21\x00\x01\x91\x21\x00\x00\xcb\x22\xfc\x7f\xd3\x41\x0c\x81\x8b\x21\xfc\x41\x93\xc1\x00\x00\xb4\x82\x00\x00\x90\x42\xf0\x47\xf9\x62\x00\x00\xb4\xf0\x03\x02\xaa\x00\x02\x1f\xd6\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\xfd\x7b\xbe\xa9\xfd\x03\x00\x91\xf3\x0b\x00\xf9\x93\x00\x00\xb0\x60\x02\x41\x39\x40\x01\x00\x35\x80\x00\x00\x90\x00\xe4\x47\xf9\x80\x00\x00\xb4\x80\x00\x00\xb0\x00\x18\x40\xf9\xb5\xff\xff\x97\xd8\xff\xff\x97\x20\x00\x80\x52\x60\x02\x01\x39\xf3\x0b\x40\xf9\xfd\x7b\xc2\xa8\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\xdc\xff\xff\x17\xff\x03\x01\xd1\xfd\x7b\x03\xa9\xfd\xc3\x00\x91\xa0\xc3\x1f\xb8\xa1\x03\x1f\xf8\x80\x00\x80\xd2\xe0\x07\x00\xf9\xa8\xff\xff\x97\xe8\x03\x00\xaa\xe0\x07\x40\xf9\xe8\x0f\x00\xf9\xa4\xff\xff\x97\xe0\x0b\x00\xf9\x8a\x00\x00\xb0\x48\x39\x40\xb9\x08\x05\x00\x11\xe9\x0f\x40\xf9\x28\x01\x00\xb9\x89\x00\x00\xb0\x28\x3d\x40\xb9\x08\x09\x00\x11\xeb\x0b\x40\xf9\x68\x01\x00\xb9\xe8\x0f\x40\xf9\x08\x01\x40\xb9\x48\x39\x00\xb9\xe8\x0b\x40\xf9\x08\x01\x40\xb9\x28\x3d\x00\xb9\xe0\x03\x1f\x2a\xfd\x7b\x43\xa9\xff\x03\x01\x91\xc0\x03\x5f\xd6")]), -Memmap([Annotation(Region(0x0,0x8F7), Attr("segment","02 0 2296")), -Annotation(Region(0x640,0x673), Attr("symbol","\"_start\"")), -Annotation(Region(0x0,0x102), Attr("section","\".shstrtab\"")), -Annotation(Region(0x0,0x249), Attr("section","\".strtab\"")), -Annotation(Region(0x0,0x89F), Attr("section","\".symtab\"")), -Annotation(Region(0x0,0x46), Attr("section","\".comment\"")), -Annotation(Region(0x238,0x252), Attr("section","\".interp\"")), -Annotation(Region(0x254,0x277), Attr("section","\".note.gnu.build-id\"")), -Annotation(Region(0x278,0x297), Attr("section","\".note.ABI-tag\"")), -Annotation(Region(0x298,0x2B3), Attr("section","\".gnu.hash\"")), -Annotation(Region(0x2B8,0x3A7), Attr("section","\".dynsym\"")), -Annotation(Region(0x3A8,0x43B), Attr("section","\".dynstr\"")), -Annotation(Region(0x43C,0x44F), Attr("section","\".gnu.version\"")), -Annotation(Region(0x450,0x47F), Attr("section","\".gnu.version_r\"")), -Annotation(Region(0x480,0x53F), Attr("section","\".rela.dyn\"")), -Annotation(Region(0x540,0x5B7), Attr("section","\".rela.plt\"")), -Annotation(Region(0x5B8,0x5CF), Attr("section","\".init\"")), -Annotation(Region(0x5D0,0x63F), Attr("section","\".plt\"")), -Annotation(Region(0x5B8,0x5CF), Attr("code-region","()")), -Annotation(Region(0x5D0,0x63F), Attr("code-region","()")), -Annotation(Region(0x640,0x673), Attr("symbol-info","_start 0x640 52")), -Annotation(Region(0x674,0x687), Attr("symbol","\"call_weak_fn\"")), -Annotation(Region(0x674,0x687), Attr("symbol-info","call_weak_fn 0x674 20")), -Annotation(Region(0x754,0x7D7), Attr("symbol","\"main\"")), -Annotation(Region(0x754,0x7D7), Attr("symbol-info","main 0x754 132")), -Annotation(Region(0x7D8,0x7EB), Attr("section","\".fini\"")), -Annotation(Region(0x7EC,0x7EF), Attr("section","\".rodata\"")), -Annotation(Region(0x7F0,0x82B), Attr("section","\".eh_frame_hdr\"")), -Annotation(Region(0x830,0x8F7), Attr("section","\".eh_frame\"")), -Annotation(Region(0x10DC8,0x1103F), Attr("segment","03 0x10DC8 640")), -Annotation(Region(0x10DD0,0x10DD7), Attr("section","\".fini_array\"")), -Annotation(Region(0x10DD8,0x10FB7), Attr("section","\".dynamic\"")), -Annotation(Region(0x10DC8,0x10DCF), Attr("section","\".init_array\"")), -Annotation(Region(0x10FB8,0x10FE7), Attr("section","\".got\"")), -Annotation(Region(0x10FE8,0x11027), Attr("section","\".got.plt\"")), -Annotation(Region(0x11028,0x1103F), Attr("section","\".data\"")), -Annotation(Region(0x640,0x7D7), Attr("section","\".text\"")), -Annotation(Region(0x640,0x7D7), Attr("code-region","()")), -Annotation(Region(0x7D8,0x7EB), Attr("code-region","()"))]), -Program(Tid(1_817, "%00000719"), Attrs([]), - Subs([Sub(Tid(1_794, "@__cxa_finalize"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x600"), -Attr("stub","()")]), "__cxa_finalize", Args([Arg(Tid(1_818, "%0000071a"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("__cxa_finalize_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(1_114, "@__cxa_finalize"), - Attrs([Attr("address","0x600")]), Phis([]), -Defs([Def(Tid(1_378, "%00000562"), Attrs([Attr("address","0x600"), -Attr("insn","adrp x16, #69632")]), Var("R16",Imm(64)), Int(69632,64)), -Def(Tid(1_385, "%00000569"), Attrs([Attr("address","0x604"), -Attr("insn","ldr x17, [x16, #0x8]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(1_391, "%0000056f"), Attrs([Attr("address","0x608"), -Attr("insn","add x16, x16, #0x8")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(8,64)))]), Jmps([Call(Tid(1_396, "%00000574"), - Attrs([Attr("address","0x60C"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), -Sub(Tid(1_795, "@__do_global_dtors_aux"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x700")]), - "__do_global_dtors_aux", Args([Arg(Tid(1_819, "%0000071b"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("__do_global_dtors_aux_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(722, "@__do_global_dtors_aux"), - Attrs([Attr("address","0x700")]), Phis([]), Defs([Def(Tid(726, "%000002d6"), - Attrs([Attr("address","0x700"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("#3",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(18446744073709551584,64))), -Def(Tid(732, "%000002dc"), Attrs([Attr("address","0x700"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("#3",Imm(64)),Var("R29",Imm(64)),LittleEndian(),64)), -Def(Tid(738, "%000002e2"), Attrs([Attr("address","0x700"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("#3",Imm(64)),Int(8,64)),Var("R30",Imm(64)),LittleEndian(),64)), -Def(Tid(742, "%000002e6"), Attrs([Attr("address","0x700"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("R31",Imm(64)), -Var("#3",Imm(64))), Def(Tid(748, "%000002ec"), - Attrs([Attr("address","0x704"), Attr("insn","mov x29, sp")]), - Var("R29",Imm(64)), Var("R31",Imm(64))), Def(Tid(756, "%000002f4"), - Attrs([Attr("address","0x708"), Attr("insn","str x19, [sp, #0x10]")]), - Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(16,64)),Var("R19",Imm(64)),LittleEndian(),64)), -Def(Tid(761, "%000002f9"), Attrs([Attr("address","0x70C"), -Attr("insn","adrp x19, #69632")]), Var("R19",Imm(64)), Int(69632,64)), -Def(Tid(768, "%00000300"), Attrs([Attr("address","0x710"), -Attr("insn","ldrb w0, [x19, #0x40]")]), Var("R0",Imm(64)), -UNSIGNED(64,Load(Var("mem",Mem(64,8)),PLUS(Var("R19",Imm(64)),Int(64,64)),LittleEndian(),8)))]), -Jmps([Goto(Tid(775, "%00000307"), Attrs([Attr("address","0x714"), -Attr("insn","cbnz w0, #0x28")]), - NEQ(Extract(31,0,Var("R0",Imm(64))),Int(0,32)), -Direct(Tid(773, "%00000305"))), Goto(Tid(1_796, "%00000704"), Attrs([]), - Int(1,1), Direct(Tid(1_059, "%00000423")))])), Blk(Tid(1_059, "%00000423"), - Attrs([Attr("address","0x718")]), Phis([]), -Defs([Def(Tid(1_062, "%00000426"), Attrs([Attr("address","0x718"), -Attr("insn","adrp x0, #65536")]), Var("R0",Imm(64)), Int(65536,64)), -Def(Tid(1_069, "%0000042d"), Attrs([Attr("address","0x71C"), -Attr("insn","ldr x0, [x0, #0xfc8]")]), Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(4040,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(1_075, "%00000433"), Attrs([Attr("address","0x720"), -Attr("insn","cbz x0, #0x10")]), EQ(Var("R0",Imm(64)),Int(0,64)), -Direct(Tid(1_073, "%00000431"))), Goto(Tid(1_797, "%00000705"), Attrs([]), - Int(1,1), Direct(Tid(1_098, "%0000044a")))])), Blk(Tid(1_098, "%0000044a"), - Attrs([Attr("address","0x724")]), Phis([]), -Defs([Def(Tid(1_101, "%0000044d"), Attrs([Attr("address","0x724"), -Attr("insn","adrp x0, #69632")]), Var("R0",Imm(64)), Int(69632,64)), -Def(Tid(1_108, "%00000454"), Attrs([Attr("address","0x728"), -Attr("insn","ldr x0, [x0, #0x30]")]), Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(48,64)),LittleEndian(),64)), -Def(Tid(1_113, "%00000459"), Attrs([Attr("address","0x72C"), -Attr("insn","bl #-0x12c")]), Var("R30",Imm(64)), Int(1840,64))]), -Jmps([Call(Tid(1_116, "%0000045c"), Attrs([Attr("address","0x72C"), -Attr("insn","bl #-0x12c")]), Int(1,1), -(Direct(Tid(1_794, "@__cxa_finalize")),Direct(Tid(1_073, "%00000431"))))])), -Blk(Tid(1_073, "%00000431"), Attrs([Attr("address","0x730")]), Phis([]), -Defs([Def(Tid(1_081, "%00000439"), Attrs([Attr("address","0x730"), -Attr("insn","bl #-0xa0")]), Var("R30",Imm(64)), Int(1844,64))]), -Jmps([Call(Tid(1_083, "%0000043b"), Attrs([Attr("address","0x730"), -Attr("insn","bl #-0xa0")]), Int(1,1), -(Direct(Tid(1_808, "@deregister_tm_clones")),Direct(Tid(1_085, "%0000043d"))))])), -Blk(Tid(1_085, "%0000043d"), Attrs([Attr("address","0x734")]), Phis([]), -Defs([Def(Tid(1_088, "%00000440"), Attrs([Attr("address","0x734"), -Attr("insn","mov w0, #0x1")]), Var("R0",Imm(64)), Int(1,64)), -Def(Tid(1_096, "%00000448"), Attrs([Attr("address","0x738"), -Attr("insn","strb w0, [x19, #0x40]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R19",Imm(64)),Int(64,64)),Extract(7,0,Var("R0",Imm(64))),LittleEndian(),8))]), -Jmps([Goto(Tid(1_798, "%00000706"), Attrs([]), Int(1,1), -Direct(Tid(773, "%00000305")))])), Blk(Tid(773, "%00000305"), - Attrs([Attr("address","0x73C")]), Phis([]), Defs([Def(Tid(783, "%0000030f"), - Attrs([Attr("address","0x73C"), Attr("insn","ldr x19, [sp, #0x10]")]), - Var("R19",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(16,64)),LittleEndian(),64)), -Def(Tid(790, "%00000316"), Attrs([Attr("address","0x740"), -Attr("insn","ldp x29, x30, [sp], #0x20")]), Var("R29",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(795, "%0000031b"), Attrs([Attr("address","0x740"), -Attr("insn","ldp x29, x30, [sp], #0x20")]), Var("R30",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(799, "%0000031f"), Attrs([Attr("address","0x740"), -Attr("insn","ldp x29, x30, [sp], #0x20")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(32,64)))]), Jmps([Call(Tid(804, "%00000324"), - Attrs([Attr("address","0x744"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), Sub(Tid(1_799, "@__libc_start_main"), - Attrs([Attr("c.proto","signed (*)(signed (*)(signed , char** , char** );* main, signed , char** , \nvoid* auxv)"), -Attr("address","0x5F0"), Attr("stub","()")]), "__libc_start_main", - Args([Arg(Tid(1_820, "%0000071c"), - Attrs([Attr("c.layout","**[ : 64]"), -Attr("c.data","Top:u64 ptr ptr"), -Attr("c.type","signed (*)(signed , char** , char** );*")]), - Var("__libc_start_main_main",Imm(64)), Var("R0",Imm(64)), In()), -Arg(Tid(1_821, "%0000071d"), Attrs([Attr("c.layout","[signed : 32]"), -Attr("c.data","Top:u32"), Attr("c.type","signed")]), - Var("__libc_start_main_arg2",Imm(32)), LOW(32,Var("R1",Imm(64))), In()), -Arg(Tid(1_822, "%0000071e"), Attrs([Attr("c.layout","**[char : 8]"), -Attr("c.data","Top:u8 ptr ptr"), Attr("c.type","char**")]), - Var("__libc_start_main_arg3",Imm(64)), Var("R2",Imm(64)), Both()), -Arg(Tid(1_823, "%0000071f"), Attrs([Attr("c.layout","*[ : 8]"), -Attr("c.data","{} ptr"), Attr("c.type","void*")]), - Var("__libc_start_main_auxv",Imm(64)), Var("R3",Imm(64)), Both()), -Arg(Tid(1_824, "%00000720"), Attrs([Attr("c.layout","[signed : 32]"), -Attr("c.data","Top:u32"), Attr("c.type","signed")]), - Var("__libc_start_main_result",Imm(32)), LOW(32,Var("R0",Imm(64))), -Out())]), Blks([Blk(Tid(555, "@__libc_start_main"), - Attrs([Attr("address","0x5F0")]), Phis([]), -Defs([Def(Tid(1_356, "%0000054c"), Attrs([Attr("address","0x5F0"), -Attr("insn","adrp x16, #69632")]), Var("R16",Imm(64)), Int(69632,64)), -Def(Tid(1_363, "%00000553"), Attrs([Attr("address","0x5F4"), -Attr("insn","ldr x17, [x16]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R16",Imm(64)),LittleEndian(),64)), -Def(Tid(1_369, "%00000559"), Attrs([Attr("address","0x5F8"), -Attr("insn","add x16, x16, #0x0")]), Var("R16",Imm(64)), -Var("R16",Imm(64)))]), Jmps([Call(Tid(1_374, "%0000055e"), - Attrs([Attr("address","0x5FC"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), Sub(Tid(1_800, "@_fini"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x7D8")]), - "_fini", Args([Arg(Tid(1_825, "%00000721"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("_fini_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(31, "@_fini"), - Attrs([Attr("address","0x7D8")]), Phis([]), Defs([Def(Tid(37, "%00000025"), - Attrs([Attr("address","0x7DC"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("#0",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(18446744073709551600,64))), -Def(Tid(43, "%0000002b"), Attrs([Attr("address","0x7DC"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("#0",Imm(64)),Var("R29",Imm(64)),LittleEndian(),64)), -Def(Tid(49, "%00000031"), Attrs([Attr("address","0x7DC"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("#0",Imm(64)),Int(8,64)),Var("R30",Imm(64)),LittleEndian(),64)), -Def(Tid(53, "%00000035"), Attrs([Attr("address","0x7DC"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("R31",Imm(64)), -Var("#0",Imm(64))), Def(Tid(59, "%0000003b"), Attrs([Attr("address","0x7E0"), -Attr("insn","mov x29, sp")]), Var("R29",Imm(64)), Var("R31",Imm(64))), -Def(Tid(66, "%00000042"), Attrs([Attr("address","0x7E4"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R29",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(71, "%00000047"), Attrs([Attr("address","0x7E4"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R30",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(75, "%0000004b"), Attrs([Attr("address","0x7E4"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(16,64)))]), Jmps([Call(Tid(80, "%00000050"), - Attrs([Attr("address","0x7E8"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), Sub(Tid(1_801, "@_init"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x5B8")]), - "_init", Args([Arg(Tid(1_826, "%00000722"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("_init_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(1_599, "@_init"), - Attrs([Attr("address","0x5B8")]), Phis([]), -Defs([Def(Tid(1_605, "%00000645"), Attrs([Attr("address","0x5BC"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("#7",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(18446744073709551600,64))), -Def(Tid(1_611, "%0000064b"), Attrs([Attr("address","0x5BC"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("#7",Imm(64)),Var("R29",Imm(64)),LittleEndian(),64)), -Def(Tid(1_617, "%00000651"), Attrs([Attr("address","0x5BC"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("#7",Imm(64)),Int(8,64)),Var("R30",Imm(64)),LittleEndian(),64)), -Def(Tid(1_621, "%00000655"), Attrs([Attr("address","0x5BC"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("R31",Imm(64)), -Var("#7",Imm(64))), Def(Tid(1_627, "%0000065b"), - Attrs([Attr("address","0x5C0"), Attr("insn","mov x29, sp")]), - Var("R29",Imm(64)), Var("R31",Imm(64))), Def(Tid(1_632, "%00000660"), - Attrs([Attr("address","0x5C4"), Attr("insn","bl #0xb0")]), - Var("R30",Imm(64)), Int(1480,64))]), Jmps([Call(Tid(1_634, "%00000662"), - Attrs([Attr("address","0x5C4"), Attr("insn","bl #0xb0")]), Int(1,1), -(Direct(Tid(1_806, "@call_weak_fn")),Direct(Tid(1_636, "%00000664"))))])), -Blk(Tid(1_636, "%00000664"), Attrs([Attr("address","0x5C8")]), Phis([]), -Defs([Def(Tid(1_641, "%00000669"), Attrs([Attr("address","0x5C8"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R29",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(1_646, "%0000066e"), Attrs([Attr("address","0x5C8"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R30",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(1_650, "%00000672"), Attrs([Attr("address","0x5C8"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(16,64)))]), Jmps([Call(Tid(1_655, "%00000677"), - Attrs([Attr("address","0x5CC"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), Sub(Tid(1_802, "@_start"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x640"), -Attr("stub","()"), Attr("entry-point","()")]), "_start", - Args([Arg(Tid(1_827, "%00000723"), Attrs([Attr("c.layout","[signed : 32]"), -Attr("c.data","Top:u32"), Attr("c.type","signed")]), - Var("_start_result",Imm(32)), LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(492, "@_start"), Attrs([Attr("address","0x640")]), Phis([]), -Defs([Def(Tid(497, "%000001f1"), Attrs([Attr("address","0x644"), -Attr("insn","mov x29, #0x0")]), Var("R29",Imm(64)), Int(0,64)), -Def(Tid(502, "%000001f6"), Attrs([Attr("address","0x648"), -Attr("insn","mov x30, #0x0")]), Var("R30",Imm(64)), Int(0,64)), -Def(Tid(508, "%000001fc"), Attrs([Attr("address","0x64C"), -Attr("insn","mov x5, x0")]), Var("R5",Imm(64)), Var("R0",Imm(64))), -Def(Tid(515, "%00000203"), Attrs([Attr("address","0x650"), -Attr("insn","ldr x1, [sp]")]), Var("R1",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(521, "%00000209"), Attrs([Attr("address","0x654"), -Attr("insn","add x2, sp, #0x8")]), Var("R2",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(8,64))), Def(Tid(527, "%0000020f"), - Attrs([Attr("address","0x658"), Attr("insn","mov x6, sp")]), - Var("R6",Imm(64)), Var("R31",Imm(64))), Def(Tid(532, "%00000214"), - Attrs([Attr("address","0x65C"), Attr("insn","adrp x0, #65536")]), - Var("R0",Imm(64)), Int(65536,64)), Def(Tid(539, "%0000021b"), - Attrs([Attr("address","0x660"), Attr("insn","ldr x0, [x0, #0xfd8]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(4056,64)),LittleEndian(),64)), -Def(Tid(544, "%00000220"), Attrs([Attr("address","0x664"), -Attr("insn","mov x3, #0x0")]), Var("R3",Imm(64)), Int(0,64)), -Def(Tid(549, "%00000225"), Attrs([Attr("address","0x668"), -Attr("insn","mov x4, #0x0")]), Var("R4",Imm(64)), Int(0,64)), -Def(Tid(554, "%0000022a"), Attrs([Attr("address","0x66C"), -Attr("insn","bl #-0x7c")]), Var("R30",Imm(64)), Int(1648,64))]), -Jmps([Call(Tid(557, "%0000022d"), Attrs([Attr("address","0x66C"), -Attr("insn","bl #-0x7c")]), Int(1,1), -(Direct(Tid(1_799, "@__libc_start_main")),Direct(Tid(559, "%0000022f"))))])), -Blk(Tid(559, "%0000022f"), Attrs([Attr("address","0x670")]), Phis([]), -Defs([Def(Tid(562, "%00000232"), Attrs([Attr("address","0x670"), -Attr("insn","bl #-0x40")]), Var("R30",Imm(64)), Int(1652,64))]), -Jmps([Call(Tid(565, "%00000235"), Attrs([Attr("address","0x670"), -Attr("insn","bl #-0x40")]), Int(1,1), -(Direct(Tid(1_805, "@abort")),Direct(Tid(1_803, "%0000070b"))))])), -Blk(Tid(1_803, "%0000070b"), Attrs([]), Phis([]), Defs([]), -Jmps([Call(Tid(1_804, "%0000070c"), Attrs([]), Int(1,1), -(Direct(Tid(1_806, "@call_weak_fn")),))]))])), Sub(Tid(1_805, "@abort"), - Attrs([Attr("noreturn","()"), Attr("c.proto","void (*)(void)"), -Attr("address","0x630"), Attr("stub","()")]), "abort", Args([]), -Blks([Blk(Tid(563, "@abort"), Attrs([Attr("address","0x630")]), Phis([]), -Defs([Def(Tid(1_444, "%000005a4"), Attrs([Attr("address","0x630"), -Attr("insn","adrp x16, #69632")]), Var("R16",Imm(64)), Int(69632,64)), -Def(Tid(1_451, "%000005ab"), Attrs([Attr("address","0x634"), -Attr("insn","ldr x17, [x16, #0x20]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(32,64)),LittleEndian(),64)), -Def(Tid(1_457, "%000005b1"), Attrs([Attr("address","0x638"), -Attr("insn","add x16, x16, #0x20")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(32,64)))]), Jmps([Call(Tid(1_462, "%000005b6"), - Attrs([Attr("address","0x63C"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), Sub(Tid(1_806, "@call_weak_fn"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x674")]), - "call_weak_fn", Args([Arg(Tid(1_828, "%00000724"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("call_weak_fn_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(567, "@call_weak_fn"), - Attrs([Attr("address","0x674")]), Phis([]), Defs([Def(Tid(570, "%0000023a"), - Attrs([Attr("address","0x674"), Attr("insn","adrp x0, #65536")]), - Var("R0",Imm(64)), Int(65536,64)), Def(Tid(577, "%00000241"), - Attrs([Attr("address","0x678"), Attr("insn","ldr x0, [x0, #0xfd0]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(4048,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(583, "%00000247"), Attrs([Attr("address","0x67C"), -Attr("insn","cbz x0, #0x8")]), EQ(Var("R0",Imm(64)),Int(0,64)), -Direct(Tid(581, "%00000245"))), Goto(Tid(1_807, "%0000070f"), Attrs([]), - Int(1,1), Direct(Tid(1_178, "%0000049a")))])), Blk(Tid(581, "%00000245"), - Attrs([Attr("address","0x684")]), Phis([]), Defs([]), -Jmps([Call(Tid(589, "%0000024d"), Attrs([Attr("address","0x684"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))])), -Blk(Tid(1_178, "%0000049a"), Attrs([Attr("address","0x680")]), Phis([]), -Defs([]), Jmps([Goto(Tid(1_181, "%0000049d"), Attrs([Attr("address","0x680"), -Attr("insn","b #-0x60")]), Int(1,1), -Direct(Tid(1_179, "@__gmon_start__")))])), Blk(Tid(1_179, "@__gmon_start__"), - Attrs([Attr("address","0x620")]), Phis([]), -Defs([Def(Tid(1_422, "%0000058e"), Attrs([Attr("address","0x620"), -Attr("insn","adrp x16, #69632")]), Var("R16",Imm(64)), Int(69632,64)), -Def(Tid(1_429, "%00000595"), Attrs([Attr("address","0x624"), -Attr("insn","ldr x17, [x16, #0x18]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(24,64)),LittleEndian(),64)), -Def(Tid(1_435, "%0000059b"), Attrs([Attr("address","0x628"), -Attr("insn","add x16, x16, #0x18")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(24,64)))]), Jmps([Call(Tid(1_440, "%000005a0"), - Attrs([Attr("address","0x62C"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), -Sub(Tid(1_808, "@deregister_tm_clones"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x690")]), - "deregister_tm_clones", Args([Arg(Tid(1_829, "%00000725"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("deregister_tm_clones_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(595, "@deregister_tm_clones"), - Attrs([Attr("address","0x690")]), Phis([]), Defs([Def(Tid(598, "%00000256"), - Attrs([Attr("address","0x690"), Attr("insn","adrp x0, #69632")]), - Var("R0",Imm(64)), Int(69632,64)), Def(Tid(604, "%0000025c"), - Attrs([Attr("address","0x694"), Attr("insn","add x0, x0, #0x40")]), - Var("R0",Imm(64)), PLUS(Var("R0",Imm(64)),Int(64,64))), -Def(Tid(609, "%00000261"), Attrs([Attr("address","0x698"), -Attr("insn","adrp x1, #69632")]), Var("R1",Imm(64)), Int(69632,64)), -Def(Tid(615, "%00000267"), Attrs([Attr("address","0x69C"), -Attr("insn","add x1, x1, #0x40")]), Var("R1",Imm(64)), -PLUS(Var("R1",Imm(64)),Int(64,64))), Def(Tid(621, "%0000026d"), - Attrs([Attr("address","0x6A0"), Attr("insn","cmp x1, x0")]), - Var("#1",Imm(64)), NOT(Var("R0",Imm(64)))), Def(Tid(626, "%00000272"), - Attrs([Attr("address","0x6A0"), Attr("insn","cmp x1, x0")]), - Var("#2",Imm(64)), PLUS(Var("R1",Imm(64)),NOT(Var("R0",Imm(64))))), -Def(Tid(632, "%00000278"), Attrs([Attr("address","0x6A0"), -Attr("insn","cmp x1, x0")]), Var("VF",Imm(1)), -NEQ(SIGNED(65,PLUS(Var("#2",Imm(64)),Int(1,64))),PLUS(PLUS(SIGNED(65,Var("R1",Imm(64))),SIGNED(65,Var("#1",Imm(64)))),Int(1,65)))), -Def(Tid(638, "%0000027e"), Attrs([Attr("address","0x6A0"), -Attr("insn","cmp x1, x0")]), Var("CF",Imm(1)), -NEQ(UNSIGNED(65,PLUS(Var("#2",Imm(64)),Int(1,64))),PLUS(PLUS(UNSIGNED(65,Var("R1",Imm(64))),UNSIGNED(65,Var("#1",Imm(64)))),Int(1,65)))), -Def(Tid(642, "%00000282"), Attrs([Attr("address","0x6A0"), -Attr("insn","cmp x1, x0")]), Var("ZF",Imm(1)), -EQ(PLUS(Var("#2",Imm(64)),Int(1,64)),Int(0,64))), Def(Tid(646, "%00000286"), - Attrs([Attr("address","0x6A0"), Attr("insn","cmp x1, x0")]), - Var("NF",Imm(1)), Extract(63,63,PLUS(Var("#2",Imm(64)),Int(1,64))))]), -Jmps([Goto(Tid(652, "%0000028c"), Attrs([Attr("address","0x6A4"), -Attr("insn","b.eq #0x18")]), EQ(Var("ZF",Imm(1)),Int(1,1)), -Direct(Tid(650, "%0000028a"))), Goto(Tid(1_809, "%00000711"), Attrs([]), - Int(1,1), Direct(Tid(1_148, "%0000047c")))])), Blk(Tid(1_148, "%0000047c"), - Attrs([Attr("address","0x6A8")]), Phis([]), -Defs([Def(Tid(1_151, "%0000047f"), Attrs([Attr("address","0x6A8"), -Attr("insn","adrp x1, #65536")]), Var("R1",Imm(64)), Int(65536,64)), -Def(Tid(1_158, "%00000486"), Attrs([Attr("address","0x6AC"), -Attr("insn","ldr x1, [x1, #0xfc0]")]), Var("R1",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R1",Imm(64)),Int(4032,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(1_163, "%0000048b"), Attrs([Attr("address","0x6B0"), -Attr("insn","cbz x1, #0xc")]), EQ(Var("R1",Imm(64)),Int(0,64)), -Direct(Tid(650, "%0000028a"))), Goto(Tid(1_810, "%00000712"), Attrs([]), - Int(1,1), Direct(Tid(1_167, "%0000048f")))])), Blk(Tid(650, "%0000028a"), - Attrs([Attr("address","0x6BC")]), Phis([]), Defs([]), -Jmps([Call(Tid(658, "%00000292"), Attrs([Attr("address","0x6BC"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))])), -Blk(Tid(1_167, "%0000048f"), Attrs([Attr("address","0x6B4")]), Phis([]), -Defs([Def(Tid(1_171, "%00000493"), Attrs([Attr("address","0x6B4"), -Attr("insn","mov x16, x1")]), Var("R16",Imm(64)), Var("R1",Imm(64)))]), -Jmps([Call(Tid(1_176, "%00000498"), Attrs([Attr("address","0x6B8"), -Attr("insn","br x16")]), Int(1,1), (Indirect(Var("R16",Imm(64))),))]))])), -Sub(Tid(1_811, "@frame_dummy"), Attrs([Attr("c.proto","signed (*)(void)"), -Attr("address","0x750")]), "frame_dummy", Args([Arg(Tid(1_830, "%00000726"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("frame_dummy_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(810, "@frame_dummy"), - Attrs([Attr("address","0x750")]), Phis([]), Defs([]), -Jmps([Call(Tid(812, "%0000032c"), Attrs([Attr("address","0x750"), -Attr("insn","b #-0x90")]), Int(1,1), -(Direct(Tid(1_814, "@register_tm_clones")),))]))])), Sub(Tid(1_812, "@main"), - Attrs([Attr("c.proto","signed (*)(signed argc, const char** argv)"), -Attr("address","0x754")]), "main", Args([Arg(Tid(1_831, "%00000727"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("main_argc",Imm(32)), -LOW(32,Var("R0",Imm(64))), In()), Arg(Tid(1_832, "%00000728"), - Attrs([Attr("c.layout","**[char : 8]"), Attr("c.data","Top:u8 ptr ptr"), -Attr("c.type"," const char**")]), Var("main_argv",Imm(64)), -Var("R1",Imm(64)), Both()), Arg(Tid(1_833, "%00000729"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("main_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(814, "@main"), - Attrs([Attr("address","0x754")]), Phis([]), Defs([Def(Tid(818, "%00000332"), - Attrs([Attr("address","0x754"), Attr("insn","sub sp, sp, #0x40")]), - Var("R31",Imm(64)), PLUS(Var("R31",Imm(64)),Int(18446744073709551552,64))), -Def(Tid(824, "%00000338"), Attrs([Attr("address","0x758"), -Attr("insn","stp x29, x30, [sp, #0x30]")]), Var("#4",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(48,64))), Def(Tid(830, "%0000033e"), - Attrs([Attr("address","0x758"), Attr("insn","stp x29, x30, [sp, #0x30]")]), - Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("#4",Imm(64)),Var("R29",Imm(64)),LittleEndian(),64)), -Def(Tid(836, "%00000344"), Attrs([Attr("address","0x758"), -Attr("insn","stp x29, x30, [sp, #0x30]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("#4",Imm(64)),Int(8,64)),Var("R30",Imm(64)),LittleEndian(),64)), -Def(Tid(842, "%0000034a"), Attrs([Attr("address","0x75C"), -Attr("insn","add x29, sp, #0x30")]), Var("R29",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(48,64))), Def(Tid(850, "%00000352"), - Attrs([Attr("address","0x760"), Attr("insn","stur w0, [x29, #-0x4]")]), - Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R29",Imm(64)),Int(18446744073709551612,64)),Extract(31,0,Var("R0",Imm(64))),LittleEndian(),32)), -Def(Tid(858, "%0000035a"), Attrs([Attr("address","0x764"), -Attr("insn","stur x1, [x29, #-0x10]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R29",Imm(64)),Int(18446744073709551600,64)),Var("R1",Imm(64)),LittleEndian(),64)), -Def(Tid(863, "%0000035f"), Attrs([Attr("address","0x768"), -Attr("insn","mov x0, #0x4")]), Var("R0",Imm(64)), Int(4,64)), -Def(Tid(871, "%00000367"), Attrs([Attr("address","0x76C"), -Attr("insn","str x0, [sp, #0x8]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),Var("R0",Imm(64)),LittleEndian(),64)), -Def(Tid(876, "%0000036c"), Attrs([Attr("address","0x770"), -Attr("insn","bl #-0x160")]), Var("R30",Imm(64)), Int(1908,64))]), -Jmps([Call(Tid(879, "%0000036f"), Attrs([Attr("address","0x770"), -Attr("insn","bl #-0x160")]), Int(1,1), -(Direct(Tid(1_813, "@malloc")),Direct(Tid(881, "%00000371"))))])), -Blk(Tid(881, "%00000371"), Attrs([Attr("address","0x774")]), Phis([]), -Defs([Def(Tid(885, "%00000375"), Attrs([Attr("address","0x774"), -Attr("insn","mov x8, x0")]), Var("R8",Imm(64)), Var("R0",Imm(64))), -Def(Tid(892, "%0000037c"), Attrs([Attr("address","0x778"), -Attr("insn","ldr x0, [sp, #0x8]")]), Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(900, "%00000384"), Attrs([Attr("address","0x77C"), -Attr("insn","str x8, [sp, #0x18]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(24,64)),Var("R8",Imm(64)),LittleEndian(),64)), -Def(Tid(905, "%00000389"), Attrs([Attr("address","0x780"), -Attr("insn","bl #-0x170")]), Var("R30",Imm(64)), Int(1924,64))]), -Jmps([Call(Tid(907, "%0000038b"), Attrs([Attr("address","0x780"), -Attr("insn","bl #-0x170")]), Int(1,1), -(Direct(Tid(1_813, "@malloc")),Direct(Tid(909, "%0000038d"))))])), -Blk(Tid(909, "%0000038d"), Attrs([Attr("address","0x784")]), Phis([]), -Defs([Def(Tid(915, "%00000393"), Attrs([Attr("address","0x784"), -Attr("insn","str x0, [sp, #0x10]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(16,64)),Var("R0",Imm(64)),LittleEndian(),64)), -Def(Tid(920, "%00000398"), Attrs([Attr("address","0x788"), -Attr("insn","adrp x10, #69632")]), Var("R10",Imm(64)), Int(69632,64)), -Def(Tid(927, "%0000039f"), Attrs([Attr("address","0x78C"), -Attr("insn","ldr w8, [x10, #0x38]")]), Var("R8",Imm(64)), -UNSIGNED(64,Load(Var("mem",Mem(64,8)),PLUS(Var("R10",Imm(64)),Int(56,64)),LittleEndian(),32))), -Def(Tid(933, "%000003a5"), Attrs([Attr("address","0x790"), -Attr("insn","add w8, w8, #0x1")]), Var("R8",Imm(64)), -UNSIGNED(64,PLUS(Extract(31,0,Var("R8",Imm(64))),Int(1,32)))), -Def(Tid(940, "%000003ac"), Attrs([Attr("address","0x794"), -Attr("insn","ldr x9, [sp, #0x18]")]), Var("R9",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(24,64)),LittleEndian(),64)), -Def(Tid(948, "%000003b4"), Attrs([Attr("address","0x798"), -Attr("insn","str w8, [x9]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("R9",Imm(64)),Extract(31,0,Var("R8",Imm(64))),LittleEndian(),32)), -Def(Tid(953, "%000003b9"), Attrs([Attr("address","0x79C"), -Attr("insn","adrp x9, #69632")]), Var("R9",Imm(64)), Int(69632,64)), -Def(Tid(960, "%000003c0"), Attrs([Attr("address","0x7A0"), -Attr("insn","ldr w8, [x9, #0x3c]")]), Var("R8",Imm(64)), -UNSIGNED(64,Load(Var("mem",Mem(64,8)),PLUS(Var("R9",Imm(64)),Int(60,64)),LittleEndian(),32))), -Def(Tid(966, "%000003c6"), Attrs([Attr("address","0x7A4"), -Attr("insn","add w8, w8, #0x2")]), Var("R8",Imm(64)), -UNSIGNED(64,PLUS(Extract(31,0,Var("R8",Imm(64))),Int(2,32)))), -Def(Tid(973, "%000003cd"), Attrs([Attr("address","0x7A8"), -Attr("insn","ldr x11, [sp, #0x10]")]), Var("R11",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(16,64)),LittleEndian(),64)), -Def(Tid(981, "%000003d5"), Attrs([Attr("address","0x7AC"), -Attr("insn","str w8, [x11]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("R11",Imm(64)),Extract(31,0,Var("R8",Imm(64))),LittleEndian(),32)), -Def(Tid(988, "%000003dc"), Attrs([Attr("address","0x7B0"), -Attr("insn","ldr x8, [sp, #0x18]")]), Var("R8",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(24,64)),LittleEndian(),64)), -Def(Tid(995, "%000003e3"), Attrs([Attr("address","0x7B4"), -Attr("insn","ldr w8, [x8]")]), Var("R8",Imm(64)), -UNSIGNED(64,Load(Var("mem",Mem(64,8)),Var("R8",Imm(64)),LittleEndian(),32))), -Def(Tid(1_003, "%000003eb"), Attrs([Attr("address","0x7B8"), -Attr("insn","str w8, [x10, #0x38]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R10",Imm(64)),Int(56,64)),Extract(31,0,Var("R8",Imm(64))),LittleEndian(),32)), -Def(Tid(1_010, "%000003f2"), Attrs([Attr("address","0x7BC"), -Attr("insn","ldr x8, [sp, #0x10]")]), Var("R8",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(16,64)),LittleEndian(),64)), -Def(Tid(1_017, "%000003f9"), Attrs([Attr("address","0x7C0"), -Attr("insn","ldr w8, [x8]")]), Var("R8",Imm(64)), -UNSIGNED(64,Load(Var("mem",Mem(64,8)),Var("R8",Imm(64)),LittleEndian(),32))), -Def(Tid(1_025, "%00000401"), Attrs([Attr("address","0x7C4"), -Attr("insn","str w8, [x9, #0x3c]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R9",Imm(64)),Int(60,64)),Extract(31,0,Var("R8",Imm(64))),LittleEndian(),32)), -Def(Tid(1_030, "%00000406"), Attrs([Attr("address","0x7C8"), -Attr("insn","mov w0, wzr")]), Var("R0",Imm(64)), Int(0,64)), -Def(Tid(1_036, "%0000040c"), Attrs([Attr("address","0x7CC"), -Attr("insn","ldp x29, x30, [sp, #0x30]")]), Var("#5",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(48,64))), Def(Tid(1_041, "%00000411"), - Attrs([Attr("address","0x7CC"), Attr("insn","ldp x29, x30, [sp, #0x30]")]), - Var("R29",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("#5",Imm(64)),LittleEndian(),64)), -Def(Tid(1_046, "%00000416"), Attrs([Attr("address","0x7CC"), -Attr("insn","ldp x29, x30, [sp, #0x30]")]), Var("R30",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("#5",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(1_052, "%0000041c"), Attrs([Attr("address","0x7D0"), -Attr("insn","add sp, sp, #0x40")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(64,64)))]), Jmps([Call(Tid(1_057, "%00000421"), - Attrs([Attr("address","0x7D4"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), Sub(Tid(1_813, "@malloc"), - Attrs([Attr("c.proto","void* (*)(unsigned long size)"), -Attr("address","0x610"), Attr("malloc","()"), Attr("stub","()")]), "malloc", - Args([Arg(Tid(1_834, "%0000072a"), Attrs([Attr("alloc-size","()"), -Attr("c.layout","[unsigned long : 64]"), Attr("c.data","Top:u64"), -Attr("c.type","unsigned long")]), Var("malloc_size",Imm(64)), -Var("R0",Imm(64)), In()), Arg(Tid(1_835, "%0000072b"), - Attrs([Attr("warn-unused","()"), Attr("c.layout","*[ : 8]"), -Attr("c.data","{} ptr"), Attr("c.type","void*")]), - Var("malloc_result",Imm(64)), Var("R0",Imm(64)), Out())]), -Blks([Blk(Tid(877, "@malloc"), Attrs([Attr("address","0x610")]), Phis([]), -Defs([Def(Tid(1_400, "%00000578"), Attrs([Attr("address","0x610"), -Attr("insn","adrp x16, #69632")]), Var("R16",Imm(64)), Int(69632,64)), -Def(Tid(1_407, "%0000057f"), Attrs([Attr("address","0x614"), -Attr("insn","ldr x17, [x16, #0x10]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(16,64)),LittleEndian(),64)), -Def(Tid(1_413, "%00000585"), Attrs([Attr("address","0x618"), -Attr("insn","add x16, x16, #0x10")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(16,64)))]), Jmps([Call(Tid(1_418, "%0000058a"), - Attrs([Attr("address","0x61C"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), -Sub(Tid(1_814, "@register_tm_clones"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x6C0")]), - "register_tm_clones", Args([Arg(Tid(1_836, "%0000072c"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("register_tm_clones_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(660, "@register_tm_clones"), Attrs([Attr("address","0x6C0")]), - Phis([]), Defs([Def(Tid(663, "%00000297"), Attrs([Attr("address","0x6C0"), -Attr("insn","adrp x0, #69632")]), Var("R0",Imm(64)), Int(69632,64)), -Def(Tid(669, "%0000029d"), Attrs([Attr("address","0x6C4"), -Attr("insn","add x0, x0, #0x40")]), Var("R0",Imm(64)), -PLUS(Var("R0",Imm(64)),Int(64,64))), Def(Tid(674, "%000002a2"), - Attrs([Attr("address","0x6C8"), Attr("insn","adrp x1, #69632")]), - Var("R1",Imm(64)), Int(69632,64)), Def(Tid(680, "%000002a8"), - Attrs([Attr("address","0x6CC"), Attr("insn","add x1, x1, #0x40")]), - Var("R1",Imm(64)), PLUS(Var("R1",Imm(64)),Int(64,64))), -Def(Tid(687, "%000002af"), Attrs([Attr("address","0x6D0"), -Attr("insn","sub x1, x1, x0")]), Var("R1",Imm(64)), -PLUS(PLUS(Var("R1",Imm(64)),NOT(Var("R0",Imm(64)))),Int(1,64))), -Def(Tid(693, "%000002b5"), Attrs([Attr("address","0x6D4"), -Attr("insn","lsr x2, x1, #63")]), Var("R2",Imm(64)), -Concat(Int(0,63),Extract(63,63,Var("R1",Imm(64))))), -Def(Tid(700, "%000002bc"), Attrs([Attr("address","0x6D8"), -Attr("insn","add x1, x2, x1, asr #3")]), Var("R1",Imm(64)), -PLUS(Var("R2",Imm(64)),ARSHIFT(Var("R1",Imm(64)),Int(3,3)))), -Def(Tid(706, "%000002c2"), Attrs([Attr("address","0x6DC"), -Attr("insn","asr x1, x1, #1")]), Var("R1",Imm(64)), -SIGNED(64,Extract(63,1,Var("R1",Imm(64)))))]), -Jmps([Goto(Tid(712, "%000002c8"), Attrs([Attr("address","0x6E0"), -Attr("insn","cbz x1, #0x18")]), EQ(Var("R1",Imm(64)),Int(0,64)), -Direct(Tid(710, "%000002c6"))), Goto(Tid(1_815, "%00000717"), Attrs([]), - Int(1,1), Direct(Tid(1_118, "%0000045e")))])), Blk(Tid(1_118, "%0000045e"), - Attrs([Attr("address","0x6E4")]), Phis([]), -Defs([Def(Tid(1_121, "%00000461"), Attrs([Attr("address","0x6E4"), -Attr("insn","adrp x2, #65536")]), Var("R2",Imm(64)), Int(65536,64)), -Def(Tid(1_128, "%00000468"), Attrs([Attr("address","0x6E8"), -Attr("insn","ldr x2, [x2, #0xfe0]")]), Var("R2",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R2",Imm(64)),Int(4064,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(1_133, "%0000046d"), Attrs([Attr("address","0x6EC"), -Attr("insn","cbz x2, #0xc")]), EQ(Var("R2",Imm(64)),Int(0,64)), -Direct(Tid(710, "%000002c6"))), Goto(Tid(1_816, "%00000718"), Attrs([]), - Int(1,1), Direct(Tid(1_137, "%00000471")))])), Blk(Tid(710, "%000002c6"), - Attrs([Attr("address","0x6F8")]), Phis([]), Defs([]), -Jmps([Call(Tid(718, "%000002ce"), Attrs([Attr("address","0x6F8"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))])), -Blk(Tid(1_137, "%00000471"), Attrs([Attr("address","0x6F0")]), Phis([]), -Defs([Def(Tid(1_141, "%00000475"), Attrs([Attr("address","0x6F0"), -Attr("insn","mov x16, x2")]), Var("R16",Imm(64)), Var("R2",Imm(64)))]), -Jmps([Call(Tid(1_146, "%0000047a"), Attrs([Attr("address","0x6F4"), -Attr("insn","br x16")]), Int(1,1), -(Indirect(Var("R16",Imm(64))),))]))]))]))) \ No newline at end of file diff --git a/src/test/memory_regions/heap_pointer/clang/heap_pointer.bir b/src/test/memory_regions/heap_pointer/clang/heap_pointer.bir deleted file mode 100644 index ae3c4c311..000000000 --- a/src/test/memory_regions/heap_pointer/clang/heap_pointer.bir +++ /dev/null @@ -1,275 +0,0 @@ -00000719: program -00000702: sub __cxa_finalize(__cxa_finalize_result) -0000071a: __cxa_finalize_result :: out u32 = low:32[R0] - -0000045a: -00000562: R16 := 0x11000 -00000569: R17 := mem[R16 + 8, el]:u64 -0000056f: R16 := R16 + 8 -00000574: call R17 with noreturn - -00000703: sub __do_global_dtors_aux(__do_global_dtors_aux_result) -0000071b: __do_global_dtors_aux_result :: out u32 = low:32[R0] - -000002d2: -000002d6: #3 := R31 - 0x20 -000002dc: mem := mem with [#3, el]:u64 <- R29 -000002e2: mem := mem with [#3 + 8, el]:u64 <- R30 -000002e6: R31 := #3 -000002ec: R29 := R31 -000002f4: mem := mem with [R31 + 0x10, el]:u64 <- R19 -000002f9: R19 := 0x11000 -00000300: R0 := pad:64[mem[R19 + 0x40]] -00000307: when 31:0[R0] <> 0 goto %00000305 -00000704: goto %00000423 - -00000423: -00000426: R0 := 0x10000 -0000042d: R0 := mem[R0 + 0xFC8, el]:u64 -00000433: when R0 = 0 goto %00000431 -00000705: goto %0000044a - -0000044a: -0000044d: R0 := 0x11000 -00000454: R0 := mem[R0 + 0x30, el]:u64 -00000459: R30 := 0x730 -0000045c: call @__cxa_finalize with return %00000431 - -00000431: -00000439: R30 := 0x734 -0000043b: call @deregister_tm_clones with return %0000043d - -0000043d: -00000440: R0 := 1 -00000448: mem := mem with [R19 + 0x40] <- 7:0[R0] -00000706: goto %00000305 - -00000305: -0000030f: R19 := mem[R31 + 0x10, el]:u64 -00000316: R29 := mem[R31, el]:u64 -0000031b: R30 := mem[R31 + 8, el]:u64 -0000031f: R31 := R31 + 0x20 -00000324: call R30 with noreturn - -00000707: sub __libc_start_main(__libc_start_main_main, __libc_start_main_arg2, __libc_start_main_arg3, __libc_start_main_auxv, __libc_start_main_result) -0000071c: __libc_start_main_main :: in u64 = R0 -0000071d: __libc_start_main_arg2 :: in u32 = low:32[R1] -0000071e: __libc_start_main_arg3 :: in out u64 = R2 -0000071f: __libc_start_main_auxv :: in out u64 = R3 -00000720: __libc_start_main_result :: out u32 = low:32[R0] - -0000022b: -0000054c: R16 := 0x11000 -00000553: R17 := mem[R16, el]:u64 -00000559: R16 := R16 -0000055e: call R17 with noreturn - -00000708: sub _fini(_fini_result) -00000721: _fini_result :: out u32 = low:32[R0] - -0000001f: -00000025: #0 := R31 - 0x10 -0000002b: mem := mem with [#0, el]:u64 <- R29 -00000031: mem := mem with [#0 + 8, el]:u64 <- R30 -00000035: R31 := #0 -0000003b: R29 := R31 -00000042: R29 := mem[R31, el]:u64 -00000047: R30 := mem[R31 + 8, el]:u64 -0000004b: R31 := R31 + 0x10 -00000050: call R30 with noreturn - -00000709: sub _init(_init_result) -00000722: _init_result :: out u32 = low:32[R0] - -0000063f: -00000645: #7 := R31 - 0x10 -0000064b: mem := mem with [#7, el]:u64 <- R29 -00000651: mem := mem with [#7 + 8, el]:u64 <- R30 -00000655: R31 := #7 -0000065b: R29 := R31 -00000660: R30 := 0x5C8 -00000662: call @call_weak_fn with return %00000664 - -00000664: -00000669: R29 := mem[R31, el]:u64 -0000066e: R30 := mem[R31 + 8, el]:u64 -00000672: R31 := R31 + 0x10 -00000677: call R30 with noreturn - -0000070a: sub _start(_start_result) -00000723: _start_result :: out u32 = low:32[R0] - -000001ec: -000001f1: R29 := 0 -000001f6: R30 := 0 -000001fc: R5 := R0 -00000203: R1 := mem[R31, el]:u64 -00000209: R2 := R31 + 8 -0000020f: R6 := R31 -00000214: R0 := 0x10000 -0000021b: R0 := mem[R0 + 0xFD8, el]:u64 -00000220: R3 := 0 -00000225: R4 := 0 -0000022a: R30 := 0x670 -0000022d: call @__libc_start_main with return %0000022f - -0000022f: -00000232: R30 := 0x674 -00000235: call @abort with return %0000070b - -0000070b: -0000070c: call @call_weak_fn with noreturn - -0000070d: sub abort() - - -00000233: -000005a4: R16 := 0x11000 -000005ab: R17 := mem[R16 + 0x20, el]:u64 -000005b1: R16 := R16 + 0x20 -000005b6: call R17 with noreturn - -0000070e: sub call_weak_fn(call_weak_fn_result) -00000724: call_weak_fn_result :: out u32 = low:32[R0] - -00000237: -0000023a: R0 := 0x10000 -00000241: R0 := mem[R0 + 0xFD0, el]:u64 -00000247: when R0 = 0 goto %00000245 -0000070f: goto %0000049a - -00000245: -0000024d: call R30 with noreturn - -0000049a: -0000049d: goto @__gmon_start__ - -0000049b: -0000058e: R16 := 0x11000 -00000595: R17 := mem[R16 + 0x18, el]:u64 -0000059b: R16 := R16 + 0x18 -000005a0: call R17 with noreturn - -00000710: sub deregister_tm_clones(deregister_tm_clones_result) -00000725: deregister_tm_clones_result :: out u32 = low:32[R0] - -00000253: -00000256: R0 := 0x11000 -0000025c: R0 := R0 + 0x40 -00000261: R1 := 0x11000 -00000267: R1 := R1 + 0x40 -0000026d: #1 := ~R0 -00000272: #2 := R1 + ~R0 -00000278: VF := extend:65[#2 + 1] <> extend:65[R1] + extend:65[#1] + 1 -0000027e: CF := pad:65[#2 + 1] <> pad:65[R1] + pad:65[#1] + 1 -00000282: ZF := #2 + 1 = 0 -00000286: NF := 63:63[#2 + 1] -0000028c: when ZF goto %0000028a -00000711: goto %0000047c - -0000047c: -0000047f: R1 := 0x10000 -00000486: R1 := mem[R1 + 0xFC0, el]:u64 -0000048b: when R1 = 0 goto %0000028a -00000712: goto %0000048f - -0000028a: -00000292: call R30 with noreturn - -0000048f: -00000493: R16 := R1 -00000498: call R16 with noreturn - -00000713: sub frame_dummy(frame_dummy_result) -00000726: frame_dummy_result :: out u32 = low:32[R0] - -0000032a: -0000032c: call @register_tm_clones with noreturn - -00000714: sub main(main_argc, main_argv, main_result) -00000727: main_argc :: in u32 = low:32[R0] -00000728: main_argv :: in out u64 = R1 -00000729: main_result :: out u32 = low:32[R0] - -0000032e: -00000332: R31 := R31 - 0x40 -00000338: #4 := R31 + 0x30 -0000033e: mem := mem with [#4, el]:u64 <- R29 -00000344: mem := mem with [#4 + 8, el]:u64 <- R30 -0000034a: R29 := R31 + 0x30 -00000352: mem := mem with [R29 - 4, el]:u32 <- 31:0[R0] -0000035a: mem := mem with [R29 - 0x10, el]:u64 <- R1 -0000035f: R0 := 4 -00000367: mem := mem with [R31 + 8, el]:u64 <- R0 -0000036c: R30 := 0x774 -0000036f: call @malloc with return %00000371 - -00000371: -00000375: R8 := R0 -0000037c: R0 := mem[R31 + 8, el]:u64 -00000384: mem := mem with [R31 + 0x18, el]:u64 <- R8 -00000389: R30 := 0x784 -0000038b: call @malloc with return %0000038d - -0000038d: -00000393: mem := mem with [R31 + 0x10, el]:u64 <- R0 -00000398: R10 := 0x11000 -0000039f: R8 := pad:64[mem[R10 + 0x38, el]:u32] -000003a5: R8 := pad:64[31:0[R8] + 1] -000003ac: R9 := mem[R31 + 0x18, el]:u64 -000003b4: mem := mem with [R9, el]:u32 <- 31:0[R8] -000003b9: R9 := 0x11000 -000003c0: R8 := pad:64[mem[R9 + 0x3C, el]:u32] -000003c6: R8 := pad:64[31:0[R8] + 2] -000003cd: R11 := mem[R31 + 0x10, el]:u64 -000003d5: mem := mem with [R11, el]:u32 <- 31:0[R8] -000003dc: R8 := mem[R31 + 0x18, el]:u64 -000003e3: R8 := pad:64[mem[R8, el]:u32] -000003eb: mem := mem with [R10 + 0x38, el]:u32 <- 31:0[R8] -000003f2: R8 := mem[R31 + 0x10, el]:u64 -000003f9: R8 := pad:64[mem[R8, el]:u32] -00000401: mem := mem with [R9 + 0x3C, el]:u32 <- 31:0[R8] -00000406: R0 := 0 -0000040c: #5 := R31 + 0x30 -00000411: R29 := mem[#5, el]:u64 -00000416: R30 := mem[#5 + 8, el]:u64 -0000041c: R31 := R31 + 0x40 -00000421: call R30 with noreturn - -00000715: sub malloc(malloc_size, malloc_result) -0000072a: malloc_size :: in u64 = R0 -0000072b: malloc_result :: out u64 = R0 - -0000036d: -00000578: R16 := 0x11000 -0000057f: R17 := mem[R16 + 0x10, el]:u64 -00000585: R16 := R16 + 0x10 -0000058a: call R17 with noreturn - -00000716: sub register_tm_clones(register_tm_clones_result) -0000072c: register_tm_clones_result :: out u32 = low:32[R0] - -00000294: -00000297: R0 := 0x11000 -0000029d: R0 := R0 + 0x40 -000002a2: R1 := 0x11000 -000002a8: R1 := R1 + 0x40 -000002af: R1 := R1 + ~R0 + 1 -000002b5: R2 := 0.63:63[R1] -000002bc: R1 := R2 + (R1 ~>> 3) -000002c2: R1 := extend:64[63:1[R1]] -000002c8: when R1 = 0 goto %000002c6 -00000717: goto %0000045e - -0000045e: -00000461: R2 := 0x10000 -00000468: R2 := mem[R2 + 0xFE0, el]:u64 -0000046d: when R2 = 0 goto %000002c6 -00000718: goto %00000471 - -000002c6: -000002ce: call R30 with noreturn - -00000471: -00000475: R16 := R2 -0000047a: call R16 with noreturn diff --git a/src/test/memory_regions/heap_pointer/clang/heap_pointer.md5sum b/src/test/memory_regions/heap_pointer/clang/heap_pointer.md5sum new file mode 100644 index 000000000..ab4126b38 --- /dev/null +++ b/src/test/memory_regions/heap_pointer/clang/heap_pointer.md5sum @@ -0,0 +1,4 @@ +449c3bad4e7536a3cc228ed704f54ec9 memory_regions/heap_pointer/clang/a.out +e4ded8854056de7a41cd52aba2b8ebcc memory_regions/heap_pointer/clang/heap_pointer.relf +b166d6ad2fddcf621276427b5991915a memory_regions/heap_pointer/clang/heap_pointer.adt +519643256d72675d16db5979ba4460d5 memory_regions/heap_pointer/clang/heap_pointer.bir diff --git a/src/test/memory_regions/heap_pointer/clang/heap_pointer.relf b/src/test/memory_regions/heap_pointer/clang/heap_pointer.relf deleted file mode 100644 index e82fbc41a..000000000 --- a/src/test/memory_regions/heap_pointer/clang/heap_pointer.relf +++ /dev/null @@ -1,127 +0,0 @@ - -Relocation section '.rela.dyn' at offset 0x480 contains 8 entries: - Offset Info Type Symbol's Value Symbol's Name + Addend -0000000000010dc8 0000000000000403 R_AARCH64_RELATIVE 750 -0000000000010dd0 0000000000000403 R_AARCH64_RELATIVE 700 -0000000000010fd8 0000000000000403 R_AARCH64_RELATIVE 754 -0000000000011030 0000000000000403 R_AARCH64_RELATIVE 11030 -0000000000010fc0 0000000400000401 R_AARCH64_GLOB_DAT 0000000000000000 _ITM_deregisterTMCloneTable + 0 -0000000000010fc8 0000000500000401 R_AARCH64_GLOB_DAT 0000000000000000 __cxa_finalize@GLIBC_2.17 + 0 -0000000000010fd0 0000000700000401 R_AARCH64_GLOB_DAT 0000000000000000 __gmon_start__ + 0 -0000000000010fe0 0000000900000401 R_AARCH64_GLOB_DAT 0000000000000000 _ITM_registerTMCloneTable + 0 - -Relocation section '.rela.plt' at offset 0x540 contains 5 entries: - Offset Info Type Symbol's Value Symbol's Name + Addend -0000000000011000 0000000300000402 R_AARCH64_JUMP_SLOT 0000000000000000 __libc_start_main@GLIBC_2.34 + 0 -0000000000011008 0000000500000402 R_AARCH64_JUMP_SLOT 0000000000000000 __cxa_finalize@GLIBC_2.17 + 0 -0000000000011010 0000000600000402 R_AARCH64_JUMP_SLOT 0000000000000000 malloc@GLIBC_2.17 + 0 -0000000000011018 0000000700000402 R_AARCH64_JUMP_SLOT 0000000000000000 __gmon_start__ + 0 -0000000000011020 0000000800000402 R_AARCH64_JUMP_SLOT 0000000000000000 abort@GLIBC_2.17 + 0 - -Symbol table '.dynsym' contains 10 entries: - Num: Value Size Type Bind Vis Ndx Name - 0: 0000000000000000 0 NOTYPE LOCAL DEFAULT UND - 1: 00000000000005b8 0 SECTION LOCAL DEFAULT 11 .init - 2: 0000000000011028 0 SECTION LOCAL DEFAULT 23 .data - 3: 0000000000000000 0 FUNC GLOBAL DEFAULT UND __libc_start_main@GLIBC_2.34 (2) - 4: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_deregisterTMCloneTable - 5: 0000000000000000 0 FUNC WEAK DEFAULT UND __cxa_finalize@GLIBC_2.17 (3) - 6: 0000000000000000 0 FUNC GLOBAL DEFAULT UND malloc@GLIBC_2.17 (3) - 7: 0000000000000000 0 NOTYPE WEAK DEFAULT UND __gmon_start__ - 8: 0000000000000000 0 FUNC GLOBAL DEFAULT UND abort@GLIBC_2.17 (3) - 9: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_registerTMCloneTable - -Symbol table '.symtab' contains 92 entries: - Num: Value Size Type Bind Vis Ndx Name - 0: 0000000000000000 0 NOTYPE LOCAL DEFAULT UND - 1: 0000000000000238 0 SECTION LOCAL DEFAULT 1 .interp - 2: 0000000000000254 0 SECTION LOCAL DEFAULT 2 .note.gnu.build-id - 3: 0000000000000278 0 SECTION LOCAL DEFAULT 3 .note.ABI-tag - 4: 0000000000000298 0 SECTION LOCAL DEFAULT 4 .gnu.hash - 5: 00000000000002b8 0 SECTION LOCAL DEFAULT 5 .dynsym - 6: 00000000000003a8 0 SECTION LOCAL DEFAULT 6 .dynstr - 7: 000000000000043c 0 SECTION LOCAL DEFAULT 7 .gnu.version - 8: 0000000000000450 0 SECTION LOCAL DEFAULT 8 .gnu.version_r - 9: 0000000000000480 0 SECTION LOCAL DEFAULT 9 .rela.dyn - 10: 0000000000000540 0 SECTION LOCAL DEFAULT 10 .rela.plt - 11: 00000000000005b8 0 SECTION LOCAL DEFAULT 11 .init - 12: 00000000000005d0 0 SECTION LOCAL DEFAULT 12 .plt - 13: 0000000000000640 0 SECTION LOCAL DEFAULT 13 .text - 14: 00000000000007d8 0 SECTION LOCAL DEFAULT 14 .fini - 15: 00000000000007ec 0 SECTION LOCAL DEFAULT 15 .rodata - 16: 00000000000007f0 0 SECTION LOCAL DEFAULT 16 .eh_frame_hdr - 17: 0000000000000830 0 SECTION LOCAL DEFAULT 17 .eh_frame - 18: 0000000000010dc8 0 SECTION LOCAL DEFAULT 18 .init_array - 19: 0000000000010dd0 0 SECTION LOCAL DEFAULT 19 .fini_array - 20: 0000000000010dd8 0 SECTION LOCAL DEFAULT 20 .dynamic - 21: 0000000000010fb8 0 SECTION LOCAL DEFAULT 21 .got - 22: 0000000000010fe8 0 SECTION LOCAL DEFAULT 22 .got.plt - 23: 0000000000011028 0 SECTION LOCAL DEFAULT 23 .data - 24: 0000000000011040 0 SECTION LOCAL DEFAULT 24 .bss - 25: 0000000000000000 0 SECTION LOCAL DEFAULT 25 .comment - 26: 0000000000000000 0 FILE LOCAL DEFAULT ABS Scrt1.o - 27: 0000000000000278 0 NOTYPE LOCAL DEFAULT 3 $d - 28: 0000000000000278 32 OBJECT LOCAL DEFAULT 3 __abi_tag - 29: 0000000000000640 0 NOTYPE LOCAL DEFAULT 13 $x - 30: 0000000000000844 0 NOTYPE LOCAL DEFAULT 17 $d - 31: 00000000000007ec 0 NOTYPE LOCAL DEFAULT 15 $d - 32: 0000000000000000 0 FILE LOCAL DEFAULT ABS crti.o - 33: 0000000000000674 0 NOTYPE LOCAL DEFAULT 13 $x - 34: 0000000000000674 20 FUNC LOCAL DEFAULT 13 call_weak_fn - 35: 00000000000005b8 0 NOTYPE LOCAL DEFAULT 11 $x - 36: 00000000000007d8 0 NOTYPE LOCAL DEFAULT 14 $x - 37: 0000000000000000 0 FILE LOCAL DEFAULT ABS crtn.o - 38: 00000000000005c8 0 NOTYPE LOCAL DEFAULT 11 $x - 39: 00000000000007e4 0 NOTYPE LOCAL DEFAULT 14 $x - 40: 0000000000000000 0 FILE LOCAL DEFAULT ABS crtstuff.c - 41: 0000000000000690 0 NOTYPE LOCAL DEFAULT 13 $x - 42: 0000000000000690 0 FUNC LOCAL DEFAULT 13 deregister_tm_clones - 43: 00000000000006c0 0 FUNC LOCAL DEFAULT 13 register_tm_clones - 44: 0000000000011030 0 NOTYPE LOCAL DEFAULT 23 $d - 45: 0000000000000700 0 FUNC LOCAL DEFAULT 13 __do_global_dtors_aux - 46: 0000000000011040 1 OBJECT LOCAL DEFAULT 24 completed.0 - 47: 0000000000010dd0 0 NOTYPE LOCAL DEFAULT 19 $d - 48: 0000000000010dd0 0 OBJECT LOCAL DEFAULT 19 __do_global_dtors_aux_fini_array_entry - 49: 0000000000000750 0 FUNC LOCAL DEFAULT 13 frame_dummy - 50: 0000000000010dc8 0 NOTYPE LOCAL DEFAULT 18 $d - 51: 0000000000010dc8 0 OBJECT LOCAL DEFAULT 18 __frame_dummy_init_array_entry - 52: 0000000000000858 0 NOTYPE LOCAL DEFAULT 17 $d - 53: 0000000000011040 0 NOTYPE LOCAL DEFAULT 24 $d - 54: 0000000000000000 0 FILE LOCAL DEFAULT ABS heap_pointer.c - 55: 0000000000000754 0 NOTYPE LOCAL DEFAULT 13 $x.0 - 56: 0000000000011038 0 NOTYPE LOCAL DEFAULT 23 $d.1 - 57: 000000000000002a 0 NOTYPE LOCAL DEFAULT 25 $d.2 - 58: 00000000000008b8 0 NOTYPE LOCAL DEFAULT 17 $d.3 - 59: 0000000000000000 0 FILE LOCAL DEFAULT ABS crtstuff.c - 60: 00000000000008f4 0 NOTYPE LOCAL DEFAULT 17 $d - 61: 00000000000008f4 0 OBJECT LOCAL DEFAULT 17 __FRAME_END__ - 62: 0000000000000000 0 FILE LOCAL DEFAULT ABS - 63: 0000000000010dd8 0 OBJECT LOCAL DEFAULT ABS _DYNAMIC - 64: 00000000000007f0 0 NOTYPE LOCAL DEFAULT 16 __GNU_EH_FRAME_HDR - 65: 0000000000010fb8 0 OBJECT LOCAL DEFAULT ABS _GLOBAL_OFFSET_TABLE_ - 66: 00000000000005d0 0 NOTYPE LOCAL DEFAULT 12 $x - 67: 0000000000000000 0 FUNC GLOBAL DEFAULT UND __libc_start_main@GLIBC_2.34 - 68: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_deregisterTMCloneTable - 69: 0000000000011028 0 NOTYPE WEAK DEFAULT 23 data_start - 70: 0000000000011040 0 NOTYPE GLOBAL DEFAULT 24 __bss_start__ - 71: 0000000000000000 0 FUNC WEAK DEFAULT UND __cxa_finalize@GLIBC_2.17 - 72: 0000000000011048 0 NOTYPE GLOBAL DEFAULT 24 _bss_end__ - 73: 0000000000011040 0 NOTYPE GLOBAL DEFAULT 23 _edata - 74: 0000000000011038 4 OBJECT GLOBAL DEFAULT 23 x - 75: 00000000000007d8 0 FUNC GLOBAL HIDDEN 14 _fini - 76: 0000000000011048 0 NOTYPE GLOBAL DEFAULT 24 __bss_end__ - 77: 0000000000000000 0 FUNC GLOBAL DEFAULT UND malloc@GLIBC_2.17 - 78: 0000000000011028 0 NOTYPE GLOBAL DEFAULT 23 __data_start - 79: 0000000000000000 0 NOTYPE WEAK DEFAULT UND __gmon_start__ - 80: 0000000000011030 0 OBJECT GLOBAL HIDDEN 23 __dso_handle - 81: 0000000000000000 0 FUNC GLOBAL DEFAULT UND abort@GLIBC_2.17 - 82: 00000000000007ec 4 OBJECT GLOBAL DEFAULT 15 _IO_stdin_used - 83: 0000000000011048 0 NOTYPE GLOBAL DEFAULT 24 _end - 84: 0000000000000640 52 FUNC GLOBAL DEFAULT 13 _start - 85: 0000000000011048 0 NOTYPE GLOBAL DEFAULT 24 __end__ - 86: 000000000001103c 4 OBJECT GLOBAL DEFAULT 23 y - 87: 0000000000011040 0 NOTYPE GLOBAL DEFAULT 24 __bss_start - 88: 0000000000000754 132 FUNC GLOBAL DEFAULT 13 main - 89: 0000000000011040 0 OBJECT GLOBAL HIDDEN 23 __TMC_END__ - 90: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_registerTMCloneTable - 91: 00000000000005b8 0 FUNC GLOBAL HIDDEN 11 _init diff --git a/src/test/memory_regions/heap_pointer/clang_pic/heap_pointer.adt b/src/test/memory_regions/heap_pointer/clang_pic/heap_pointer.adt deleted file mode 100644 index ffe20bb3b..000000000 --- a/src/test/memory_regions/heap_pointer/clang_pic/heap_pointer.adt +++ /dev/null @@ -1,620 +0,0 @@ -Project(Attrs([Attr("filename","\"a.out\""), -Attr("image-specification","(declare abi (name str))\n(declare arch (name str))\n(declare base-address (addr int))\n(declare bias (off int))\n(declare bits (size int))\n(declare code-region (addr int) (size int) (off int))\n(declare code-start (addr int))\n(declare entry-point (addr int))\n(declare external-reference (addr int) (name str))\n(declare format (name str))\n(declare is-executable (flag bool))\n(declare is-little-endian (flag bool))\n(declare llvm:base-address (addr int))\n(declare llvm:code-entry (name str) (off int) (size int))\n(declare llvm:coff-import-library (name str))\n(declare llvm:coff-virtual-section-header (name str) (addr int) (size int))\n(declare llvm:elf-program-header (name str) (off int) (size int))\n(declare llvm:elf-program-header-flags (name str) (ld bool) (r bool) \n (w bool) (x bool))\n(declare llvm:elf-virtual-program-header (name str) (addr int) (size int))\n(declare llvm:entry-point (addr int))\n(declare llvm:macho-symbol (name str) (value int))\n(declare llvm:name-reference (at int) (name str))\n(declare llvm:relocation (at int) (addr int))\n(declare llvm:section-entry (name str) (addr int) (size int) (off int))\n(declare llvm:section-flags (name str) (r bool) (w bool) (x bool))\n(declare llvm:segment-command (name str) (off int) (size int))\n(declare llvm:segment-command-flags (name str) (r bool) (w bool) (x bool))\n(declare llvm:symbol-entry (name str) (addr int) (size int) (off int)\n (value int))\n(declare llvm:virtual-segment-command (name str) (addr int) (size int))\n(declare mapped (addr int) (size int) (off int))\n(declare named-region (addr int) (size int) (name str))\n(declare named-symbol (addr int) (name str))\n(declare require (name str))\n(declare section (addr int) (size int))\n(declare segment (addr int) (size int) (r bool) (w bool) (x bool))\n(declare subarch (name str))\n(declare symbol-chunk (addr int) (size int) (root int))\n(declare symbol-value (addr int) (value int))\n(declare system (name str))\n(declare vendor (name str))\n\n(abi unknown)\n(arch aarch64)\n(base-address 0)\n(bias 0)\n(bits 64)\n(code-region 2080 20 2080)\n(code-region 1664 416 1664)\n(code-region 1536 112 1536)\n(code-region 1512 24 1512)\n(code-start 1716)\n(code-start 1664)\n(code-start 1940)\n(entry-point 1664)\n(external-reference 69552 _ITM_deregisterTMCloneTable)\n(external-reference 69560 __cxa_finalize)\n(external-reference 69576 __gmon_start__)\n(external-reference 69600 _ITM_registerTMCloneTable)\n(external-reference 69632 __libc_start_main)\n(external-reference 69640 __cxa_finalize)\n(external-reference 69648 malloc)\n(external-reference 69656 __gmon_start__)\n(external-reference 69664 abort)\n(format elf)\n(is-executable true)\n(is-little-endian true)\n(llvm:base-address 0)\n(llvm:code-entry abort 0 0)\n(llvm:code-entry malloc 0 0)\n(llvm:code-entry __cxa_finalize 0 0)\n(llvm:code-entry __libc_start_main 0 0)\n(llvm:code-entry _init 1512 0)\n(llvm:code-entry main 1940 140)\n(llvm:code-entry _start 1664 52)\n(llvm:code-entry abort@GLIBC_2.17 0 0)\n(llvm:code-entry malloc@GLIBC_2.17 0 0)\n(llvm:code-entry _fini 2080 0)\n(llvm:code-entry __cxa_finalize@GLIBC_2.17 0 0)\n(llvm:code-entry __libc_start_main@GLIBC_2.34 0 0)\n(llvm:code-entry frame_dummy 1936 0)\n(llvm:code-entry __do_global_dtors_aux 1856 0)\n(llvm:code-entry register_tm_clones 1792 0)\n(llvm:code-entry deregister_tm_clones 1744 0)\n(llvm:code-entry call_weak_fn 1716 20)\n(llvm:code-entry .fini 2080 20)\n(llvm:code-entry .text 1664 416)\n(llvm:code-entry .plt 1536 112)\n(llvm:code-entry .init 1512 24)\n(llvm:elf-program-header 08 3512 584)\n(llvm:elf-program-header 07 0 0)\n(llvm:elf-program-header 06 2104 60)\n(llvm:elf-program-header 05 596 68)\n(llvm:elf-program-header 04 3528 480)\n(llvm:elf-program-header 03 3512 648)\n(llvm:elf-program-header 02 0 2368)\n(llvm:elf-program-header 01 568 27)\n(llvm:elf-program-header 00 64 504)\n(llvm:elf-program-header-flags 08 false true false false)\n(llvm:elf-program-header-flags 07 false true true false)\n(llvm:elf-program-header-flags 06 false true false false)\n(llvm:elf-program-header-flags 05 false true false false)\n(llvm:elf-program-header-flags 04 false true true false)\n(llvm:elf-program-header-flags 03 true true true false)\n(llvm:elf-program-header-flags 02 true true false true)\n(llvm:elf-program-header-flags 01 false true false false)\n(llvm:elf-program-header-flags 00 false true false false)\n(llvm:elf-virtual-program-header 08 69048 584)\n(llvm:elf-virtual-program-header 07 0 0)\n(llvm:elf-virtual-program-header 06 2104 60)\n(llvm:elf-virtual-program-header 05 596 68)\n(llvm:elf-virtual-program-header 04 69064 480)\n(llvm:elf-virtual-program-header 03 69048 656)\n(llvm:elf-virtual-program-header 02 0 2368)\n(llvm:elf-virtual-program-header 01 568 27)\n(llvm:elf-virtual-program-header 00 64 504)\n(llvm:entry-point 1664)\n(llvm:name-reference 69664 abort)\n(llvm:name-reference 69656 __gmon_start__)\n(llvm:name-reference 69648 malloc)\n(llvm:name-reference 69640 __cxa_finalize)\n(llvm:name-reference 69632 __libc_start_main)\n(llvm:name-reference 69600 _ITM_registerTMCloneTable)\n(llvm:name-reference 69576 __gmon_start__)\n(llvm:name-reference 69560 __cxa_finalize)\n(llvm:name-reference 69552 _ITM_deregisterTMCloneTable)\n(llvm:section-entry .shstrtab 0 259 7026)\n(llvm:section-entry .strtab 0 586 6440)\n(llvm:section-entry .symtab 0 2208 4232)\n(llvm:section-entry .comment 0 71 4160)\n(llvm:section-entry .bss 69696 8 4160)\n(llvm:section-entry .data 69672 24 4136)\n(llvm:section-entry .got.plt 69608 64 4072)\n(llvm:section-entry .got 69544 64 4008)\n(llvm:section-entry .dynamic 69064 480 3528)\n(llvm:section-entry .fini_array 69056 8 3520)\n(llvm:section-entry .init_array 69048 8 3512)\n(llvm:section-entry .eh_frame 2168 200 2168)\n(llvm:section-entry .eh_frame_hdr 2104 60 2104)\n(llvm:section-entry .rodata 2100 4 2100)\n(llvm:section-entry .fini 2080 20 2080)\n(llvm:section-entry .text 1664 416 1664)\n(llvm:section-entry .plt 1536 112 1536)\n(llvm:section-entry .init 1512 24 1512)\n(llvm:section-entry .rela.plt 1392 120 1392)\n(llvm:section-entry .rela.dyn 1152 240 1152)\n(llvm:section-entry .gnu.version_r 1104 48 1104)\n(llvm:section-entry .gnu.version 1084 20 1084)\n(llvm:section-entry .dynstr 936 148 936)\n(llvm:section-entry .dynsym 696 240 696)\n(llvm:section-entry .gnu.hash 664 28 664)\n(llvm:section-entry .note.ABI-tag 632 32 632)\n(llvm:section-entry .note.gnu.build-id 596 36 596)\n(llvm:section-entry .interp 568 27 568)\n(llvm:section-flags .shstrtab true false false)\n(llvm:section-flags .strtab true false false)\n(llvm:section-flags .symtab true false false)\n(llvm:section-flags .comment true false false)\n(llvm:section-flags .bss true true false)\n(llvm:section-flags .data true true false)\n(llvm:section-flags .got.plt true true false)\n(llvm:section-flags .got true true false)\n(llvm:section-flags .dynamic true true false)\n(llvm:section-flags .fini_array true true false)\n(llvm:section-flags .init_array true true false)\n(llvm:section-flags .eh_frame true false false)\n(llvm:section-flags .eh_frame_hdr true false false)\n(llvm:section-flags .rodata true false false)\n(llvm:section-flags .fini true false true)\n(llvm:section-flags .text true false true)\n(llvm:section-flags .plt true false true)\n(llvm:section-flags .init true false true)\n(llvm:section-flags .rela.plt true false false)\n(llvm:section-flags .rela.dyn true false false)\n(llvm:section-flags .gnu.version_r true false false)\n(llvm:section-flags .gnu.version true false false)\n(llvm:section-flags .dynstr true false false)\n(llvm:section-flags .dynsym true false false)\n(llvm:section-flags .gnu.hash true false false)\n(llvm:section-flags .note.ABI-tag true false false)\n(llvm:section-flags .note.gnu.build-id true false false)\n(llvm:section-flags .interp true false false)\n(llvm:symbol-entry abort 0 0 0 0)\n(llvm:symbol-entry malloc 0 0 0 0)\n(llvm:symbol-entry __cxa_finalize 0 0 0 0)\n(llvm:symbol-entry __libc_start_main 0 0 0 0)\n(llvm:symbol-entry _init 1512 0 1512 1512)\n(llvm:symbol-entry main 1940 140 1940 1940)\n(llvm:symbol-entry _start 1664 52 1664 1664)\n(llvm:symbol-entry abort@GLIBC_2.17 0 0 0 0)\n(llvm:symbol-entry malloc@GLIBC_2.17 0 0 0 0)\n(llvm:symbol-entry _fini 2080 0 2080 2080)\n(llvm:symbol-entry __cxa_finalize@GLIBC_2.17 0 0 0 0)\n(llvm:symbol-entry __libc_start_main@GLIBC_2.34 0 0 0 0)\n(llvm:symbol-entry frame_dummy 1936 0 1936 1936)\n(llvm:symbol-entry __do_global_dtors_aux 1856 0 1856 1856)\n(llvm:symbol-entry register_tm_clones 1792 0 1792 1792)\n(llvm:symbol-entry deregister_tm_clones 1744 0 1744 1744)\n(llvm:symbol-entry call_weak_fn 1716 20 1716 1716)\n(mapped 0 2368 0)\n(mapped 69048 648 3512)\n(named-region 0 2368 02)\n(named-region 69048 656 03)\n(named-region 568 27 .interp)\n(named-region 596 36 .note.gnu.build-id)\n(named-region 632 32 .note.ABI-tag)\n(named-region 664 28 .gnu.hash)\n(named-region 696 240 .dynsym)\n(named-region 936 148 .dynstr)\n(named-region 1084 20 .gnu.version)\n(named-region 1104 48 .gnu.version_r)\n(named-region 1152 240 .rela.dyn)\n(named-region 1392 120 .rela.plt)\n(named-region 1512 24 .init)\n(named-region 1536 112 .plt)\n(named-region 1664 416 .text)\n(named-region 2080 20 .fini)\n(named-region 2100 4 .rodata)\n(named-region 2104 60 .eh_frame_hdr)\n(named-region 2168 200 .eh_frame)\n(named-region 69048 8 .init_array)\n(named-region 69056 8 .fini_array)\n(named-region 69064 480 .dynamic)\n(named-region 69544 64 .got)\n(named-region 69608 64 .got.plt)\n(named-region 69672 24 .data)\n(named-region 69696 8 .bss)\n(named-region 0 71 .comment)\n(named-region 0 2208 .symtab)\n(named-region 0 586 .strtab)\n(named-region 0 259 .shstrtab)\n(named-symbol 1716 call_weak_fn)\n(named-symbol 1744 deregister_tm_clones)\n(named-symbol 1792 register_tm_clones)\n(named-symbol 1856 __do_global_dtors_aux)\n(named-symbol 1936 frame_dummy)\n(named-symbol 0 __libc_start_main@GLIBC_2.34)\n(named-symbol 0 __cxa_finalize@GLIBC_2.17)\n(named-symbol 2080 _fini)\n(named-symbol 0 malloc@GLIBC_2.17)\n(named-symbol 0 abort@GLIBC_2.17)\n(named-symbol 1664 _start)\n(named-symbol 1940 main)\n(named-symbol 1512 _init)\n(named-symbol 0 __libc_start_main)\n(named-symbol 0 __cxa_finalize)\n(named-symbol 0 malloc)\n(named-symbol 0 abort)\n(require libc.so.6)\n(section 568 27)\n(section 596 36)\n(section 632 32)\n(section 664 28)\n(section 696 240)\n(section 936 148)\n(section 1084 20)\n(section 1104 48)\n(section 1152 240)\n(section 1392 120)\n(section 1512 24)\n(section 1536 112)\n(section 1664 416)\n(section 2080 20)\n(section 2100 4)\n(section 2104 60)\n(section 2168 200)\n(section 69048 8)\n(section 69056 8)\n(section 69064 480)\n(section 69544 64)\n(section 69608 64)\n(section 69672 24)\n(section 69696 8)\n(section 0 71)\n(section 0 2208)\n(section 0 586)\n(section 0 259)\n(segment 0 2368 true false true)\n(segment 69048 656 true true false)\n(subarch v8)\n(symbol-chunk 1716 20 1716)\n(symbol-chunk 1664 52 1664)\n(symbol-chunk 1940 140 1940)\n(symbol-value 1716 1716)\n(symbol-value 1744 1744)\n(symbol-value 1792 1792)\n(symbol-value 1856 1856)\n(symbol-value 1936 1936)\n(symbol-value 2080 2080)\n(symbol-value 1664 1664)\n(symbol-value 1940 1940)\n(symbol-value 1512 1512)\n(symbol-value 0 0)\n(system \"\")\n(vendor \"\")\n"), -Attr("abi-name","\"aarch64-linux-gnu-elf\"")]), -Sections([Section(".shstrtab", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x80\x06\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x78\x1c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x38\x00\x09\x00\x40\x00\x1d\x00\x1c\x00\x06\x00\x00\x00\x04\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x04\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x09\x00\x00\x00\x00\x00\x00\x40\x09\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x01\x00\x00\x00\x06\x00\x00\x00\xb8\x0d\x00\x00\x00\x00\x00\x00\xb8\x0d\x01\x00\x00\x00\x00\x00\xb8\x0d\x01"), -Section(".strtab", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x80\x06\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x78\x1c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x38\x00\x09\x00\x40\x00\x1d\x00\x1c\x00\x06\x00\x00\x00\x04\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x04\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x09\x00\x00\x00\x00\x00\x00\x40\x09\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x01\x00\x00\x00\x06\x00\x00\x00\xb8\x0d\x00\x00\x00\x00\x00\x00\xb8\x0d\x01\x00\x00\x00\x00\x00\xb8\x0d\x01\x00\x00\x00\x00\x00\x88\x02\x00\x00\x00\x00\x00\x00\x90\x02\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x02\x00\x00\x00\x06\x00\x00\x00\xc8\x0d\x00\x00\x00\x00\x00\x00\xc8\x0d\x01\x00\x00\x00\x00\x00\xc8\x0d\x01\x00\x00\x00\x00\x00\xe0\x01\x00\x00\x00\x00\x00\x00\xe0\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x04\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x50\xe5\x74\x64\x04\x00\x00\x00\x38\x08\x00\x00\x00\x00\x00\x00\x38\x08\x00\x00\x00\x00\x00\x00\x38\x08\x00\x00\x00\x00\x00\x00\x3c\x00\x00\x00\x00\x00\x00\x00\x3c\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x51\xe5\x74\x64\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x52\xe5\x74\x64\x04\x00\x00\x00\xb8\x0d\x00\x00\x00\x00\x00\x00\xb8\x0d\x01\x00\x00\x00\x00\x00\xb8\x0d\x01\x00\x00\x00\x00\x00\x48\x02\x00\x00\x00\x00\x00\x00\x48\x02\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x2f\x6c\x69\x62\x2f\x6c\x64\x2d\x6c\x69\x6e\x75\x78\x2d\x61\x61\x72\x63"), -Section(".symtab", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x80\x06\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x78\x1c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x38\x00\x09\x00\x40\x00\x1d\x00\x1c\x00\x06\x00\x00\x00\x04\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x04\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x09\x00\x00\x00\x00\x00\x00\x40\x09\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x01\x00\x00\x00\x06\x00\x00\x00\xb8\x0d\x00\x00\x00\x00\x00\x00\xb8\x0d\x01\x00\x00\x00\x00\x00\xb8\x0d\x01\x00\x00\x00\x00\x00\x88\x02\x00\x00\x00\x00\x00\x00\x90\x02\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x02\x00\x00\x00\x06\x00\x00\x00\xc8\x0d\x00\x00\x00\x00\x00\x00\xc8\x0d\x01\x00\x00\x00\x00\x00\xc8\x0d\x01\x00\x00\x00\x00\x00\xe0\x01\x00\x00\x00\x00\x00\x00\xe0\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x04\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x50\xe5\x74\x64\x04\x00\x00\x00\x38\x08\x00\x00\x00\x00\x00\x00\x38\x08\x00\x00\x00\x00\x00\x00\x38\x08\x00\x00\x00\x00\x00\x00\x3c\x00\x00\x00\x00\x00\x00\x00\x3c\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x51\xe5\x74\x64\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x52\xe5\x74\x64\x04\x00\x00\x00\xb8\x0d\x00\x00\x00\x00\x00\x00\xb8\x0d\x01\x00\x00\x00\x00\x00\xb8\x0d\x01\x00\x00\x00\x00\x00\x48\x02\x00\x00\x00\x00\x00\x00\x48\x02\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x2f\x6c\x69\x62\x2f\x6c\x64\x2d\x6c\x69\x6e\x75\x78\x2d\x61\x61\x72\x63\x68\x36\x34\x2e\x73\x6f\x2e\x31\x00\x00\x04\x00\x00\x00\x14\x00\x00\x00\x03\x00\x00\x00\x47\x4e\x55\x00\x18\x3a\x27\x95\xf6\x89\x8c\x26\x44\x56\xf7\x95\x12\x29\x29\xc3\xe8\x7b\x59\xfb\x04\x00\x00\x00\x10\x00\x00\x00\x01\x00\x00\x00\x47\x4e\x55\x00\x00\x00\x00\x00\x03\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x01\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x0b\x00\xe8\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x17\x00\x28\x10\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x17\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4f\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x22\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6b\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x29\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5f\x5f\x63\x78\x61\x5f\x66\x69\x6e\x61\x6c\x69\x7a\x65\x00\x6d\x61\x6c\x6c\x6f\x63\x00\x5f\x5f\x6c\x69\x62\x63\x5f\x73\x74\x61\x72\x74\x5f\x6d\x61\x69\x6e\x00\x61\x62\x6f\x72\x74\x00\x6c\x69\x62\x63\x2e\x73\x6f\x2e\x36\x00\x47\x4c\x49\x42\x43\x5f\x32\x2e\x31\x37\x00\x47\x4c\x49\x42\x43\x5f\x32\x2e\x33\x34\x00\x5f\x49\x54\x4d\x5f\x64\x65\x72\x65\x67\x69\x73\x74\x65\x72\x54\x4d\x43\x6c\x6f\x6e\x65\x54\x61\x62\x6c\x65\x00\x5f\x5f\x67\x6d\x6f\x6e\x5f\x73\x74\x61\x72\x74\x5f\x5f\x00\x5f\x49\x54\x4d\x5f\x72\x65\x67\x69\x73\x74\x65\x72\x54\x4d\x43\x6c\x6f\x6e\x65\x54\x61\x62\x6c\x65\x00\x00\x00\x00\x00\x00\x00\x02\x00\x01\x00\x03\x00\x03\x00\x01\x00\x03\x00\x01\x00\x01\x00\x02\x00\x2f\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x97\x91\x96\x06\x00\x00\x03\x00\x39\x00\x00\x00\x10\x00\x00\x00\xb4\x91\x96\x06\x00\x00\x02\x00\x44\x00\x00\x00\x00\x00\x00\x00\xb8\x0d\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x90\x07\x00\x00\x00\x00\x00\x00\xc0\x0d\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x40\x07\x00\x00\x00\x00\x00\x00\xc0\x0f\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x38\x10\x01\x00\x00\x00\x00\x00\xd0\x0f\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x3c\x10\x01\x00\x00\x00\x00\x00\xd8\x0f\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x94\x07\x00\x00\x00\x00\x00\x00\x30\x10\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x30\x10\x01\x00\x00\x00\x00\x00\xb0\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xb8\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xc8\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe0\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x09\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x08\x10\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x10\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x18\x10\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x20\x10\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1f\x20\x03\xd5\xfd\x7b\xbf\xa9\xfd\x03\x00\x91\x30\x00\x00\x94\xfd\x7b\xc1\xa8\xc0\x03\x5f\xd6\xf0\x7b\xbf\xa9\x90\x00\x00\x90\x11\xfe\x47\xf9\x10\xe2\x3f\x91\x20\x02\x1f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x90\x00\x00\xb0\x11\x02\x40\xf9\x10\x02\x00\x91\x20\x02\x1f\xd6\x90\x00\x00\xb0\x11\x06\x40\xf9\x10\x22\x00\x91\x20\x02\x1f\xd6\x90\x00\x00\xb0\x11\x0a\x40\xf9\x10\x42\x00\x91\x20\x02\x1f\xd6\x90\x00\x00\xb0\x11\x0e\x40\xf9\x10\x62\x00\x91\x20\x02\x1f\xd6\x90\x00\x00\xb0\x11\x12\x40\xf9\x10\x82\x00\x91\x20\x02\x1f\xd6\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1f\x20\x03\xd5\x1d\x00\x80\xd2\x1e\x00\x80\xd2\xe5\x03\x00\xaa\xe1\x03\x40\xf9\xe2\x23\x00\x91\xe6\x03\x00\x91\x80\x00\x00\x90\x00\xec\x47\xf9\x03\x00\x80\xd2\x04\x00\x80\xd2\xdd\xff\xff\x97\xec\xff\xff\x97\x80\x00\x00\x90\x00\xe4\x47\xf9\x40\x00\x00\xb4\xe4\xff\xff\x17\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x80\x00\x00\xb0\x00\x00\x01\x91\x81\x00\x00\xb0\x21\x00\x01\x91\x3f\x00\x00\xeb\xc0\x00\x00\x54\x81\x00\x00\x90\x21\xd8\x47\xf9\x61\x00\x00\xb4\xf0\x03\x01\xaa\x00\x02\x1f\xd6\xc0\x03\x5f\xd6\x80\x00\x00\xb0\x00\x00\x01\x91\x81\x00\x00\xb0\x21\x00\x01\x91\x21\x00\x00\xcb\x22\xfc\x7f\xd3\x41\x0c\x81\x8b\x21\xfc\x41\x93\xc1\x00\x00\xb4\x82\x00\x00\x90\x42\xf0\x47\xf9\x62\x00\x00\xb4\xf0\x03\x02\xaa\x00\x02\x1f\xd6\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\xfd\x7b\xbe\xa9\xfd\x03\x00\x91\xf3\x0b\x00\xf9\x93\x00\x00\xb0\x60\x02\x41\x39\x40\x01\x00\x35\x80\x00\x00\x90\x00\xdc\x47\xf9\x80\x00\x00\xb4\x80\x00\x00\xb0\x00\x18\x40\xf9\xb1\xff\xff\x97\xd8\xff\xff\x97\x20\x00\x80\x52\x60\x02\x01\x39\xf3\x0b\x40\xf9\xfd\x7b\xc2\xa8\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\xdc\xff\xff\x17\xff\x03\x01\xd1\xfd\x7b\x03\xa9\xfd\xc3\x00\x91\xa0\xc3\x1f\xb8\xa1\x03\x1f\xf8\x80\x00\x80\xd2\xe0\x07\x00\xf9\xa4\xff\xff\x97\xe8\x03\x00\xaa\xe0\x07\x40\xf9\xe8\x0f\x00\xf9\xa0\xff\xff\x97\xe0\x0b\x00\xf9\x8a\x00\x00\x90\x4a\xe1\x47\xf9\x48\x01\x40\xb9\x08\x05\x00\x11\xe9\x0f\x40\xf9\x28\x01\x00\xb9\x89\x00\x00\x90\x29\xe9\x47\xf9\x28\x01\x40\xb9\x08\x09\x00\x11\xeb\x0b\x40\xf9\x68\x01\x00\xb9\xe8\x0f\x40\xf9\x08\x01\x40\xb9\x48\x01\x00\xb9\xe8\x0b\x40\xf9\x08\x01\x40\xb9\x28\x01\x00\xb9\xe0\x03\x1f\x2a\xfd\x7b\x43\xa9\xff\x03\x01\x91\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\xfd\x7b\xbf\xa9\xfd\x03\x00\x91\xfd\x7b\xc1\xa8\xc0\x03\x5f\xd6\x01\x00\x02\x00\x01\x1b\x03\x3b\x3c\x00\x00\x00\x06\x00\x00\x00\x48\xfe\xff\xff\x54\x00\x00\x00\x98\xfe\xff\xff\x68\x00\x00\x00\xc8\xfe\xff\xff\x7c\x00\x00\x00\x08\xff\xff\xff\x90\x00\x00\x00\x58\xff\xff\xff\xb4\x00\x00\x00\x5c\xff\xff\xff\xdc\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x01\x7a\x52\x00\x04\x78\x1e\x01\x1b\x0c\x1f\x00\x10\x00\x00\x00\x18\x00\x00\x00\xec\xfd\xff\xff\x34\x00\x00\x00\x00\x41\x07\x1e"), -Section(".comment", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x80\x06\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x78\x1c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x38\x00\x09\x00\x40\x00\x1d\x00\x1c\x00\x06\x00\x00\x00\x04\x00\x00"), -Section(".interp", 0x238, "\x2f\x6c\x69\x62\x2f\x6c\x64\x2d\x6c\x69\x6e\x75\x78\x2d\x61\x61\x72\x63\x68\x36\x34\x2e\x73\x6f\x2e\x31\x00"), -Section(".note.gnu.build-id", 0x254, "\x04\x00\x00\x00\x14\x00\x00\x00\x03\x00\x00\x00\x47\x4e\x55\x00\x18\x3a\x27\x95\xf6\x89\x8c\x26\x44\x56\xf7\x95\x12\x29\x29\xc3\xe8\x7b\x59\xfb"), -Section(".note.ABI-tag", 0x278, "\x04\x00\x00\x00\x10\x00\x00\x00\x01\x00\x00\x00\x47\x4e\x55\x00\x00\x00\x00\x00\x03\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00"), -Section(".gnu.hash", 0x298, "\x01\x00\x00\x00\x01\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".dynsym", 0x2B8, "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x0b\x00\xe8\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x17\x00\x28\x10\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x17\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4f\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x22\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6b\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x29\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".dynstr", 0x3A8, "\x00\x5f\x5f\x63\x78\x61\x5f\x66\x69\x6e\x61\x6c\x69\x7a\x65\x00\x6d\x61\x6c\x6c\x6f\x63\x00\x5f\x5f\x6c\x69\x62\x63\x5f\x73\x74\x61\x72\x74\x5f\x6d\x61\x69\x6e\x00\x61\x62\x6f\x72\x74\x00\x6c\x69\x62\x63\x2e\x73\x6f\x2e\x36\x00\x47\x4c\x49\x42\x43\x5f\x32\x2e\x31\x37\x00\x47\x4c\x49\x42\x43\x5f\x32\x2e\x33\x34\x00\x5f\x49\x54\x4d\x5f\x64\x65\x72\x65\x67\x69\x73\x74\x65\x72\x54\x4d\x43\x6c\x6f\x6e\x65\x54\x61\x62\x6c\x65\x00\x5f\x5f\x67\x6d\x6f\x6e\x5f\x73\x74\x61\x72\x74\x5f\x5f\x00\x5f\x49\x54\x4d\x5f\x72\x65\x67\x69\x73\x74\x65\x72\x54\x4d\x43\x6c\x6f\x6e\x65\x54\x61\x62\x6c\x65\x00"), -Section(".gnu.version", 0x43C, "\x00\x00\x00\x00\x00\x00\x02\x00\x01\x00\x03\x00\x03\x00\x01\x00\x03\x00\x01\x00"), -Section(".gnu.version_r", 0x450, "\x01\x00\x02\x00\x2f\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x97\x91\x96\x06\x00\x00\x03\x00\x39\x00\x00\x00\x10\x00\x00\x00\xb4\x91\x96\x06\x00\x00\x02\x00\x44\x00\x00\x00\x00\x00\x00\x00"), -Section(".rela.dyn", 0x480, "\xb8\x0d\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x90\x07\x00\x00\x00\x00\x00\x00\xc0\x0d\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x40\x07\x00\x00\x00\x00\x00\x00\xc0\x0f\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x38\x10\x01\x00\x00\x00\x00\x00\xd0\x0f\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x3c\x10\x01\x00\x00\x00\x00\x00\xd8\x0f\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x94\x07\x00\x00\x00\x00\x00\x00\x30\x10\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x30\x10\x01\x00\x00\x00\x00\x00\xb0\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xb8\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xc8\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe0\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x09\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".rela.plt", 0x570, "\x00\x10\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x08\x10\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x10\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x18\x10\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x20\x10\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".init", 0x5E8, "\x1f\x20\x03\xd5\xfd\x7b\xbf\xa9\xfd\x03\x00\x91\x30\x00\x00\x94\xfd\x7b\xc1\xa8\xc0\x03\x5f\xd6"), -Section(".plt", 0x600, "\xf0\x7b\xbf\xa9\x90\x00\x00\x90\x11\xfe\x47\xf9\x10\xe2\x3f\x91\x20\x02\x1f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x90\x00\x00\xb0\x11\x02\x40\xf9\x10\x02\x00\x91\x20\x02\x1f\xd6\x90\x00\x00\xb0\x11\x06\x40\xf9\x10\x22\x00\x91\x20\x02\x1f\xd6\x90\x00\x00\xb0\x11\x0a\x40\xf9\x10\x42\x00\x91\x20\x02\x1f\xd6\x90\x00\x00\xb0\x11\x0e\x40\xf9\x10\x62\x00\x91\x20\x02\x1f\xd6\x90\x00\x00\xb0\x11\x12\x40\xf9\x10\x82\x00\x91\x20\x02\x1f\xd6"), -Section(".fini", 0x820, "\x1f\x20\x03\xd5\xfd\x7b\xbf\xa9\xfd\x03\x00\x91\xfd\x7b\xc1\xa8\xc0\x03\x5f\xd6"), -Section(".rodata", 0x834, "\x01\x00\x02\x00"), -Section(".eh_frame_hdr", 0x838, "\x01\x1b\x03\x3b\x3c\x00\x00\x00\x06\x00\x00\x00\x48\xfe\xff\xff\x54\x00\x00\x00\x98\xfe\xff\xff\x68\x00\x00\x00\xc8\xfe\xff\xff\x7c\x00\x00\x00\x08\xff\xff\xff\x90\x00\x00\x00\x58\xff\xff\xff\xb4\x00\x00\x00\x5c\xff\xff\xff\xdc\x00\x00\x00"), -Section(".eh_frame", 0x878, "\x10\x00\x00\x00\x00\x00\x00\x00\x01\x7a\x52\x00\x04\x78\x1e\x01\x1b\x0c\x1f\x00\x10\x00\x00\x00\x18\x00\x00\x00\xec\xfd\xff\xff\x34\x00\x00\x00\x00\x41\x07\x1e\x10\x00\x00\x00\x2c\x00\x00\x00\x28\xfe\xff\xff\x30\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x40\x00\x00\x00\x44\xfe\xff\xff\x3c\x00\x00\x00\x00\x00\x00\x00\x20\x00\x00\x00\x54\x00\x00\x00\x70\xfe\xff\xff\x48\x00\x00\x00\x00\x41\x0e\x20\x9d\x04\x9e\x03\x42\x93\x02\x4e\xde\xdd\xd3\x0e\x00\x00\x00\x00\x10\x00\x00\x00\x78\x00\x00\x00\x9c\xfe\xff\xff\x04\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x01\x7a\x52\x00\x01\x7c\x1e\x01\x1b\x0c\x1f\x00\x24\x00\x00\x00\x18\x00\x00\x00\x78\xfe\xff\xff\x8c\x00\x00\x00\x00\x44\x0e\x40\x48\x0c\x1d\x10\x9e\x02\x9d\x04\x02\x74\x0c\x1f\x40\x48\x0e\x00\xde\xdd\x00\x00\x00\x00\x00\x00"), -Section(".fini_array", 0x10DC0, "\x40\x07\x00\x00\x00\x00\x00\x00"), -Section(".dynamic", 0x10DC8, "\x01\x00\x00\x00\x00\x00\x00\x00\x2f\x00\x00\x00\x00\x00\x00\x00\x0c\x00\x00\x00\x00\x00\x00\x00\xe8\x05\x00\x00\x00\x00\x00\x00\x0d\x00\x00\x00\x00\x00\x00\x00\x20\x08\x00\x00\x00\x00\x00\x00\x19\x00\x00\x00\x00\x00\x00\x00\xb8\x0d\x01\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x1a\x00\x00\x00\x00\x00\x00\x00\xc0\x0d\x01\x00\x00\x00\x00\x00\x1c\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\xf5\xfe\xff\x6f\x00\x00\x00\x00\x98\x02\x00\x00\x00\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\xa8\x03\x00\x00\x00\x00\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\xb8\x02\x00\x00\x00\x00\x00\x00\x0a\x00\x00\x00\x00\x00\x00\x00\x94\x00\x00\x00\x00\x00\x00\x00\x0b\x00\x00\x00\x00\x00\x00\x00\x18\x00\x00\x00\x00\x00\x00\x00\x15\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\xe8\x0f\x01\x00\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x78\x00\x00\x00\x00\x00\x00\x00\x14\x00\x00\x00\x00\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x17\x00\x00\x00\x00\x00\x00\x00\x70\x05\x00\x00\x00\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x80\x04\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\xf0\x00\x00\x00\x00\x00\x00\x00\x09\x00\x00\x00\x00\x00\x00\x00\x18\x00\x00\x00\x00\x00\x00\x00\xfb\xff\xff\x6f\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\xfe\xff\xff\x6f\x00\x00\x00\x00\x50\x04\x00\x00\x00\x00\x00\x00\xff\xff\xff\x6f\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\xf0\xff\xff\x6f\x00\x00\x00\x00\x3c\x04\x00\x00\x00\x00\x00\x00\xf9\xff\xff\x6f\x00\x00\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".init_array", 0x10DB8, "\x90\x07\x00\x00\x00\x00\x00\x00"), -Section(".got", 0x10FA8, "\xc8\x0d\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x38\x10\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x3c\x10\x01\x00\x00\x00\x00\x00\x94\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".got.plt", 0x10FE8, "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x06\x00\x00\x00\x00\x00\x00"), -Section(".data", 0x11028, "\x00\x00\x00\x00\x00\x00\x00\x00\x30\x10\x01\x00\x00\x00\x00\x00\x05\x00\x00\x00\x08\x00\x00\x00"), -Section(".text", 0x680, "\x1f\x20\x03\xd5\x1d\x00\x80\xd2\x1e\x00\x80\xd2\xe5\x03\x00\xaa\xe1\x03\x40\xf9\xe2\x23\x00\x91\xe6\x03\x00\x91\x80\x00\x00\x90\x00\xec\x47\xf9\x03\x00\x80\xd2\x04\x00\x80\xd2\xdd\xff\xff\x97\xec\xff\xff\x97\x80\x00\x00\x90\x00\xe4\x47\xf9\x40\x00\x00\xb4\xe4\xff\xff\x17\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x80\x00\x00\xb0\x00\x00\x01\x91\x81\x00\x00\xb0\x21\x00\x01\x91\x3f\x00\x00\xeb\xc0\x00\x00\x54\x81\x00\x00\x90\x21\xd8\x47\xf9\x61\x00\x00\xb4\xf0\x03\x01\xaa\x00\x02\x1f\xd6\xc0\x03\x5f\xd6\x80\x00\x00\xb0\x00\x00\x01\x91\x81\x00\x00\xb0\x21\x00\x01\x91\x21\x00\x00\xcb\x22\xfc\x7f\xd3\x41\x0c\x81\x8b\x21\xfc\x41\x93\xc1\x00\x00\xb4\x82\x00\x00\x90\x42\xf0\x47\xf9\x62\x00\x00\xb4\xf0\x03\x02\xaa\x00\x02\x1f\xd6\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\xfd\x7b\xbe\xa9\xfd\x03\x00\x91\xf3\x0b\x00\xf9\x93\x00\x00\xb0\x60\x02\x41\x39\x40\x01\x00\x35\x80\x00\x00\x90\x00\xdc\x47\xf9\x80\x00\x00\xb4\x80\x00\x00\xb0\x00\x18\x40\xf9\xb1\xff\xff\x97\xd8\xff\xff\x97\x20\x00\x80\x52\x60\x02\x01\x39\xf3\x0b\x40\xf9\xfd\x7b\xc2\xa8\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\xdc\xff\xff\x17\xff\x03\x01\xd1\xfd\x7b\x03\xa9\xfd\xc3\x00\x91\xa0\xc3\x1f\xb8\xa1\x03\x1f\xf8\x80\x00\x80\xd2\xe0\x07\x00\xf9\xa4\xff\xff\x97\xe8\x03\x00\xaa\xe0\x07\x40\xf9\xe8\x0f\x00\xf9\xa0\xff\xff\x97\xe0\x0b\x00\xf9\x8a\x00\x00\x90\x4a\xe1\x47\xf9\x48\x01\x40\xb9\x08\x05\x00\x11\xe9\x0f\x40\xf9\x28\x01\x00\xb9\x89\x00\x00\x90\x29\xe9\x47\xf9\x28\x01\x40\xb9\x08\x09\x00\x11\xeb\x0b\x40\xf9\x68\x01\x00\xb9\xe8\x0f\x40\xf9\x08\x01\x40\xb9\x48\x01\x00\xb9\xe8\x0b\x40\xf9\x08\x01\x40\xb9\x28\x01\x00\xb9\xe0\x03\x1f\x2a\xfd\x7b\x43\xa9\xff\x03\x01\x91\xc0\x03\x5f\xd6")]), -Memmap([Annotation(Region(0x0,0x93F), Attr("segment","02 0 2368")), -Annotation(Region(0x680,0x6B3), Attr("symbol","\"_start\"")), -Annotation(Region(0x0,0x102), Attr("section","\".shstrtab\"")), -Annotation(Region(0x0,0x249), Attr("section","\".strtab\"")), -Annotation(Region(0x0,0x89F), Attr("section","\".symtab\"")), -Annotation(Region(0x0,0x46), Attr("section","\".comment\"")), -Annotation(Region(0x238,0x252), Attr("section","\".interp\"")), -Annotation(Region(0x254,0x277), Attr("section","\".note.gnu.build-id\"")), -Annotation(Region(0x278,0x297), Attr("section","\".note.ABI-tag\"")), -Annotation(Region(0x298,0x2B3), Attr("section","\".gnu.hash\"")), -Annotation(Region(0x2B8,0x3A7), Attr("section","\".dynsym\"")), -Annotation(Region(0x3A8,0x43B), Attr("section","\".dynstr\"")), -Annotation(Region(0x43C,0x44F), Attr("section","\".gnu.version\"")), -Annotation(Region(0x450,0x47F), Attr("section","\".gnu.version_r\"")), -Annotation(Region(0x480,0x56F), Attr("section","\".rela.dyn\"")), -Annotation(Region(0x570,0x5E7), Attr("section","\".rela.plt\"")), -Annotation(Region(0x5E8,0x5FF), Attr("section","\".init\"")), -Annotation(Region(0x600,0x66F), Attr("section","\".plt\"")), -Annotation(Region(0x5E8,0x5FF), Attr("code-region","()")), -Annotation(Region(0x600,0x66F), Attr("code-region","()")), -Annotation(Region(0x680,0x6B3), Attr("symbol-info","_start 0x680 52")), -Annotation(Region(0x6B4,0x6C7), Attr("symbol","\"call_weak_fn\"")), -Annotation(Region(0x6B4,0x6C7), Attr("symbol-info","call_weak_fn 0x6B4 20")), -Annotation(Region(0x794,0x81F), Attr("symbol","\"main\"")), -Annotation(Region(0x794,0x81F), Attr("symbol-info","main 0x794 140")), -Annotation(Region(0x820,0x833), Attr("section","\".fini\"")), -Annotation(Region(0x834,0x837), Attr("section","\".rodata\"")), -Annotation(Region(0x838,0x873), Attr("section","\".eh_frame_hdr\"")), -Annotation(Region(0x878,0x93F), Attr("section","\".eh_frame\"")), -Annotation(Region(0x10DB8,0x1103F), Attr("segment","03 0x10DB8 656")), -Annotation(Region(0x10DC0,0x10DC7), Attr("section","\".fini_array\"")), -Annotation(Region(0x10DC8,0x10FA7), Attr("section","\".dynamic\"")), -Annotation(Region(0x10DB8,0x10DBF), Attr("section","\".init_array\"")), -Annotation(Region(0x10FA8,0x10FE7), Attr("section","\".got\"")), -Annotation(Region(0x10FE8,0x11027), Attr("section","\".got.plt\"")), -Annotation(Region(0x11028,0x1103F), Attr("section","\".data\"")), -Annotation(Region(0x680,0x81F), Attr("section","\".text\"")), -Annotation(Region(0x680,0x81F), Attr("code-region","()")), -Annotation(Region(0x820,0x833), Attr("code-region","()"))]), -Program(Tid(1_732, "%000006c4"), Attrs([]), - Subs([Sub(Tid(1_709, "@__cxa_finalize"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x630"), -Attr("stub","()")]), "__cxa_finalize", Args([Arg(Tid(1_733, "%000006c5"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("__cxa_finalize_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(1_136, "@__cxa_finalize"), - Attrs([Attr("address","0x630")]), Phis([]), -Defs([Def(Tid(1_400, "%00000578"), Attrs([Attr("address","0x630"), -Attr("insn","adrp x16, #69632")]), Var("R16",Imm(64)), Int(69632,64)), -Def(Tid(1_407, "%0000057f"), Attrs([Attr("address","0x634"), -Attr("insn","ldr x17, [x16, #0x8]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(1_413, "%00000585"), Attrs([Attr("address","0x638"), -Attr("insn","add x16, x16, #0x8")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(8,64)))]), Jmps([Call(Tid(1_418, "%0000058a"), - Attrs([Attr("address","0x63C"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), -Sub(Tid(1_710, "@__do_global_dtors_aux"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x740")]), - "__do_global_dtors_aux", Args([Arg(Tid(1_734, "%000006c6"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("__do_global_dtors_aux_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(730, "@__do_global_dtors_aux"), - Attrs([Attr("address","0x740")]), Phis([]), Defs([Def(Tid(734, "%000002de"), - Attrs([Attr("address","0x740"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("#3",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(18446744073709551584,64))), -Def(Tid(740, "%000002e4"), Attrs([Attr("address","0x740"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("#3",Imm(64)),Var("R29",Imm(64)),LittleEndian(),64)), -Def(Tid(746, "%000002ea"), Attrs([Attr("address","0x740"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("#3",Imm(64)),Int(8,64)),Var("R30",Imm(64)),LittleEndian(),64)), -Def(Tid(750, "%000002ee"), Attrs([Attr("address","0x740"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("R31",Imm(64)), -Var("#3",Imm(64))), Def(Tid(756, "%000002f4"), - Attrs([Attr("address","0x744"), Attr("insn","mov x29, sp")]), - Var("R29",Imm(64)), Var("R31",Imm(64))), Def(Tid(764, "%000002fc"), - Attrs([Attr("address","0x748"), Attr("insn","str x19, [sp, #0x10]")]), - Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(16,64)),Var("R19",Imm(64)),LittleEndian(),64)), -Def(Tid(769, "%00000301"), Attrs([Attr("address","0x74C"), -Attr("insn","adrp x19, #69632")]), Var("R19",Imm(64)), Int(69632,64)), -Def(Tid(776, "%00000308"), Attrs([Attr("address","0x750"), -Attr("insn","ldrb w0, [x19, #0x40]")]), Var("R0",Imm(64)), -UNSIGNED(64,Load(Var("mem",Mem(64,8)),PLUS(Var("R19",Imm(64)),Int(64,64)),LittleEndian(),8)))]), -Jmps([Goto(Tid(783, "%0000030f"), Attrs([Attr("address","0x754"), -Attr("insn","cbnz w0, #0x28")]), - NEQ(Extract(31,0,Var("R0",Imm(64))),Int(0,32)), -Direct(Tid(781, "%0000030d"))), Goto(Tid(1_711, "%000006af"), Attrs([]), - Int(1,1), Direct(Tid(1_081, "%00000439")))])), Blk(Tid(1_081, "%00000439"), - Attrs([Attr("address","0x758")]), Phis([]), -Defs([Def(Tid(1_084, "%0000043c"), Attrs([Attr("address","0x758"), -Attr("insn","adrp x0, #65536")]), Var("R0",Imm(64)), Int(65536,64)), -Def(Tid(1_091, "%00000443"), Attrs([Attr("address","0x75C"), -Attr("insn","ldr x0, [x0, #0xfb8]")]), Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(4024,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(1_097, "%00000449"), Attrs([Attr("address","0x760"), -Attr("insn","cbz x0, #0x10")]), EQ(Var("R0",Imm(64)),Int(0,64)), -Direct(Tid(1_095, "%00000447"))), Goto(Tid(1_712, "%000006b0"), Attrs([]), - Int(1,1), Direct(Tid(1_120, "%00000460")))])), Blk(Tid(1_120, "%00000460"), - Attrs([Attr("address","0x764")]), Phis([]), -Defs([Def(Tid(1_123, "%00000463"), Attrs([Attr("address","0x764"), -Attr("insn","adrp x0, #69632")]), Var("R0",Imm(64)), Int(69632,64)), -Def(Tid(1_130, "%0000046a"), Attrs([Attr("address","0x768"), -Attr("insn","ldr x0, [x0, #0x30]")]), Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(48,64)),LittleEndian(),64)), -Def(Tid(1_135, "%0000046f"), Attrs([Attr("address","0x76C"), -Attr("insn","bl #-0x13c")]), Var("R30",Imm(64)), Int(1904,64))]), -Jmps([Call(Tid(1_138, "%00000472"), Attrs([Attr("address","0x76C"), -Attr("insn","bl #-0x13c")]), Int(1,1), -(Direct(Tid(1_709, "@__cxa_finalize")),Direct(Tid(1_095, "%00000447"))))])), -Blk(Tid(1_095, "%00000447"), Attrs([Attr("address","0x770")]), Phis([]), -Defs([Def(Tid(1_103, "%0000044f"), Attrs([Attr("address","0x770"), -Attr("insn","bl #-0xa0")]), Var("R30",Imm(64)), Int(1908,64))]), -Jmps([Call(Tid(1_105, "%00000451"), Attrs([Attr("address","0x770"), -Attr("insn","bl #-0xa0")]), Int(1,1), -(Direct(Tid(1_723, "@deregister_tm_clones")),Direct(Tid(1_107, "%00000453"))))])), -Blk(Tid(1_107, "%00000453"), Attrs([Attr("address","0x774")]), Phis([]), -Defs([Def(Tid(1_110, "%00000456"), Attrs([Attr("address","0x774"), -Attr("insn","mov w0, #0x1")]), Var("R0",Imm(64)), Int(1,64)), -Def(Tid(1_118, "%0000045e"), Attrs([Attr("address","0x778"), -Attr("insn","strb w0, [x19, #0x40]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R19",Imm(64)),Int(64,64)),Extract(7,0,Var("R0",Imm(64))),LittleEndian(),8))]), -Jmps([Goto(Tid(1_713, "%000006b1"), Attrs([]), Int(1,1), -Direct(Tid(781, "%0000030d")))])), Blk(Tid(781, "%0000030d"), - Attrs([Attr("address","0x77C")]), Phis([]), Defs([Def(Tid(791, "%00000317"), - Attrs([Attr("address","0x77C"), Attr("insn","ldr x19, [sp, #0x10]")]), - Var("R19",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(16,64)),LittleEndian(),64)), -Def(Tid(798, "%0000031e"), Attrs([Attr("address","0x780"), -Attr("insn","ldp x29, x30, [sp], #0x20")]), Var("R29",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(803, "%00000323"), Attrs([Attr("address","0x780"), -Attr("insn","ldp x29, x30, [sp], #0x20")]), Var("R30",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(807, "%00000327"), Attrs([Attr("address","0x780"), -Attr("insn","ldp x29, x30, [sp], #0x20")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(32,64)))]), Jmps([Call(Tid(812, "%0000032c"), - Attrs([Attr("address","0x784"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), Sub(Tid(1_714, "@__libc_start_main"), - Attrs([Attr("c.proto","signed (*)(signed (*)(signed , char** , char** );* main, signed , char** , \nvoid* auxv)"), -Attr("address","0x620"), Attr("stub","()")]), "__libc_start_main", - Args([Arg(Tid(1_735, "%000006c7"), - Attrs([Attr("c.layout","**[ : 64]"), -Attr("c.data","Top:u64 ptr ptr"), -Attr("c.type","signed (*)(signed , char** , char** );*")]), - Var("__libc_start_main_main",Imm(64)), Var("R0",Imm(64)), In()), -Arg(Tid(1_736, "%000006c8"), Attrs([Attr("c.layout","[signed : 32]"), -Attr("c.data","Top:u32"), Attr("c.type","signed")]), - Var("__libc_start_main_arg2",Imm(32)), LOW(32,Var("R1",Imm(64))), In()), -Arg(Tid(1_737, "%000006c9"), Attrs([Attr("c.layout","**[char : 8]"), -Attr("c.data","Top:u8 ptr ptr"), Attr("c.type","char**")]), - Var("__libc_start_main_arg3",Imm(64)), Var("R2",Imm(64)), Both()), -Arg(Tid(1_738, "%000006ca"), Attrs([Attr("c.layout","*[ : 8]"), -Attr("c.data","{} ptr"), Attr("c.type","void*")]), - Var("__libc_start_main_auxv",Imm(64)), Var("R3",Imm(64)), Both()), -Arg(Tid(1_739, "%000006cb"), Attrs([Attr("c.layout","[signed : 32]"), -Attr("c.data","Top:u32"), Attr("c.type","signed")]), - Var("__libc_start_main_result",Imm(32)), LOW(32,Var("R0",Imm(64))), -Out())]), Blks([Blk(Tid(563, "@__libc_start_main"), - Attrs([Attr("address","0x620")]), Phis([]), -Defs([Def(Tid(1_378, "%00000562"), Attrs([Attr("address","0x620"), -Attr("insn","adrp x16, #69632")]), Var("R16",Imm(64)), Int(69632,64)), -Def(Tid(1_385, "%00000569"), Attrs([Attr("address","0x624"), -Attr("insn","ldr x17, [x16]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R16",Imm(64)),LittleEndian(),64)), -Def(Tid(1_391, "%0000056f"), Attrs([Attr("address","0x628"), -Attr("insn","add x16, x16, #0x0")]), Var("R16",Imm(64)), -Var("R16",Imm(64)))]), Jmps([Call(Tid(1_396, "%00000574"), - Attrs([Attr("address","0x62C"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), Sub(Tid(1_715, "@_fini"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x820")]), - "_fini", Args([Arg(Tid(1_740, "%000006cc"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("_fini_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(31, "@_fini"), - Attrs([Attr("address","0x820")]), Phis([]), Defs([Def(Tid(37, "%00000025"), - Attrs([Attr("address","0x824"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("#0",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(18446744073709551600,64))), -Def(Tid(43, "%0000002b"), Attrs([Attr("address","0x824"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("#0",Imm(64)),Var("R29",Imm(64)),LittleEndian(),64)), -Def(Tid(49, "%00000031"), Attrs([Attr("address","0x824"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("#0",Imm(64)),Int(8,64)),Var("R30",Imm(64)),LittleEndian(),64)), -Def(Tid(53, "%00000035"), Attrs([Attr("address","0x824"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("R31",Imm(64)), -Var("#0",Imm(64))), Def(Tid(59, "%0000003b"), Attrs([Attr("address","0x828"), -Attr("insn","mov x29, sp")]), Var("R29",Imm(64)), Var("R31",Imm(64))), -Def(Tid(66, "%00000042"), Attrs([Attr("address","0x82C"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R29",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(71, "%00000047"), Attrs([Attr("address","0x82C"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R30",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(75, "%0000004b"), Attrs([Attr("address","0x82C"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(16,64)))]), Jmps([Call(Tid(80, "%00000050"), - Attrs([Attr("address","0x830"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), Sub(Tid(1_716, "@_init"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x5E8")]), - "_init", Args([Arg(Tid(1_741, "%000006cd"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("_init_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(1_512, "@_init"), - Attrs([Attr("address","0x5E8")]), Phis([]), -Defs([Def(Tid(1_518, "%000005ee"), Attrs([Attr("address","0x5EC"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("#7",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(18446744073709551600,64))), -Def(Tid(1_524, "%000005f4"), Attrs([Attr("address","0x5EC"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("#7",Imm(64)),Var("R29",Imm(64)),LittleEndian(),64)), -Def(Tid(1_530, "%000005fa"), Attrs([Attr("address","0x5EC"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("#7",Imm(64)),Int(8,64)),Var("R30",Imm(64)),LittleEndian(),64)), -Def(Tid(1_534, "%000005fe"), Attrs([Attr("address","0x5EC"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("R31",Imm(64)), -Var("#7",Imm(64))), Def(Tid(1_540, "%00000604"), - Attrs([Attr("address","0x5F0"), Attr("insn","mov x29, sp")]), - Var("R29",Imm(64)), Var("R31",Imm(64))), Def(Tid(1_545, "%00000609"), - Attrs([Attr("address","0x5F4"), Attr("insn","bl #0xc0")]), - Var("R30",Imm(64)), Int(1528,64))]), Jmps([Call(Tid(1_547, "%0000060b"), - Attrs([Attr("address","0x5F4"), Attr("insn","bl #0xc0")]), Int(1,1), -(Direct(Tid(1_721, "@call_weak_fn")),Direct(Tid(1_549, "%0000060d"))))])), -Blk(Tid(1_549, "%0000060d"), Attrs([Attr("address","0x5F8")]), Phis([]), -Defs([Def(Tid(1_554, "%00000612"), Attrs([Attr("address","0x5F8"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R29",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(1_559, "%00000617"), Attrs([Attr("address","0x5F8"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R30",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(1_563, "%0000061b"), Attrs([Attr("address","0x5F8"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(16,64)))]), Jmps([Call(Tid(1_568, "%00000620"), - Attrs([Attr("address","0x5FC"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), Sub(Tid(1_717, "@_start"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x680"), -Attr("entry-point","()")]), "_start", Args([Arg(Tid(1_742, "%000006ce"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("_start_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(500, "@_start"), - Attrs([Attr("address","0x680")]), Phis([]), Defs([Def(Tid(505, "%000001f9"), - Attrs([Attr("address","0x684"), Attr("insn","mov x29, #0x0")]), - Var("R29",Imm(64)), Int(0,64)), Def(Tid(510, "%000001fe"), - Attrs([Attr("address","0x688"), Attr("insn","mov x30, #0x0")]), - Var("R30",Imm(64)), Int(0,64)), Def(Tid(516, "%00000204"), - Attrs([Attr("address","0x68C"), Attr("insn","mov x5, x0")]), - Var("R5",Imm(64)), Var("R0",Imm(64))), Def(Tid(523, "%0000020b"), - Attrs([Attr("address","0x690"), Attr("insn","ldr x1, [sp]")]), - Var("R1",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(529, "%00000211"), Attrs([Attr("address","0x694"), -Attr("insn","add x2, sp, #0x8")]), Var("R2",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(8,64))), Def(Tid(535, "%00000217"), - Attrs([Attr("address","0x698"), Attr("insn","mov x6, sp")]), - Var("R6",Imm(64)), Var("R31",Imm(64))), Def(Tid(540, "%0000021c"), - Attrs([Attr("address","0x69C"), Attr("insn","adrp x0, #65536")]), - Var("R0",Imm(64)), Int(65536,64)), Def(Tid(547, "%00000223"), - Attrs([Attr("address","0x6A0"), Attr("insn","ldr x0, [x0, #0xfd8]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(4056,64)),LittleEndian(),64)), -Def(Tid(552, "%00000228"), Attrs([Attr("address","0x6A4"), -Attr("insn","mov x3, #0x0")]), Var("R3",Imm(64)), Int(0,64)), -Def(Tid(557, "%0000022d"), Attrs([Attr("address","0x6A8"), -Attr("insn","mov x4, #0x0")]), Var("R4",Imm(64)), Int(0,64)), -Def(Tid(562, "%00000232"), Attrs([Attr("address","0x6AC"), -Attr("insn","bl #-0x8c")]), Var("R30",Imm(64)), Int(1712,64))]), -Jmps([Call(Tid(565, "%00000235"), Attrs([Attr("address","0x6AC"), -Attr("insn","bl #-0x8c")]), Int(1,1), -(Direct(Tid(1_714, "@__libc_start_main")),Direct(Tid(567, "%00000237"))))])), -Blk(Tid(567, "%00000237"), Attrs([Attr("address","0x6B0")]), Phis([]), -Defs([Def(Tid(570, "%0000023a"), Attrs([Attr("address","0x6B0"), -Attr("insn","bl #-0x50")]), Var("R30",Imm(64)), Int(1716,64))]), -Jmps([Call(Tid(573, "%0000023d"), Attrs([Attr("address","0x6B0"), -Attr("insn","bl #-0x50")]), Int(1,1), -(Direct(Tid(1_720, "@abort")),Direct(Tid(1_718, "%000006b6"))))])), -Blk(Tid(1_718, "%000006b6"), Attrs([]), Phis([]), Defs([]), -Jmps([Call(Tid(1_719, "%000006b7"), Attrs([]), Int(1,1), -(Direct(Tid(1_721, "@call_weak_fn")),))]))])), Sub(Tid(1_720, "@abort"), - Attrs([Attr("noreturn","()"), Attr("c.proto","void (*)(void)"), -Attr("address","0x660"), Attr("stub","()")]), "abort", Args([]), -Blks([Blk(Tid(571, "@abort"), Attrs([Attr("address","0x660")]), Phis([]), -Defs([Def(Tid(1_466, "%000005ba"), Attrs([Attr("address","0x660"), -Attr("insn","adrp x16, #69632")]), Var("R16",Imm(64)), Int(69632,64)), -Def(Tid(1_473, "%000005c1"), Attrs([Attr("address","0x664"), -Attr("insn","ldr x17, [x16, #0x20]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(32,64)),LittleEndian(),64)), -Def(Tid(1_479, "%000005c7"), Attrs([Attr("address","0x668"), -Attr("insn","add x16, x16, #0x20")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(32,64)))]), Jmps([Call(Tid(1_484, "%000005cc"), - Attrs([Attr("address","0x66C"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), Sub(Tid(1_721, "@call_weak_fn"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x6B4")]), - "call_weak_fn", Args([Arg(Tid(1_743, "%000006cf"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("call_weak_fn_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(575, "@call_weak_fn"), - Attrs([Attr("address","0x6B4")]), Phis([]), Defs([Def(Tid(578, "%00000242"), - Attrs([Attr("address","0x6B4"), Attr("insn","adrp x0, #65536")]), - Var("R0",Imm(64)), Int(65536,64)), Def(Tid(585, "%00000249"), - Attrs([Attr("address","0x6B8"), Attr("insn","ldr x0, [x0, #0xfc8]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(4040,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(591, "%0000024f"), Attrs([Attr("address","0x6BC"), -Attr("insn","cbz x0, #0x8")]), EQ(Var("R0",Imm(64)),Int(0,64)), -Direct(Tid(589, "%0000024d"))), Goto(Tid(1_722, "%000006ba"), Attrs([]), - Int(1,1), Direct(Tid(1_200, "%000004b0")))])), Blk(Tid(589, "%0000024d"), - Attrs([Attr("address","0x6C4")]), Phis([]), Defs([]), -Jmps([Call(Tid(597, "%00000255"), Attrs([Attr("address","0x6C4"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))])), -Blk(Tid(1_200, "%000004b0"), Attrs([Attr("address","0x6C0")]), Phis([]), -Defs([]), Jmps([Goto(Tid(1_203, "%000004b3"), Attrs([Attr("address","0x6C0"), -Attr("insn","b #-0x70")]), Int(1,1), -Direct(Tid(1_201, "@__gmon_start__")))])), Blk(Tid(1_201, "@__gmon_start__"), - Attrs([Attr("address","0x650")]), Phis([]), -Defs([Def(Tid(1_444, "%000005a4"), Attrs([Attr("address","0x650"), -Attr("insn","adrp x16, #69632")]), Var("R16",Imm(64)), Int(69632,64)), -Def(Tid(1_451, "%000005ab"), Attrs([Attr("address","0x654"), -Attr("insn","ldr x17, [x16, #0x18]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(24,64)),LittleEndian(),64)), -Def(Tid(1_457, "%000005b1"), Attrs([Attr("address","0x658"), -Attr("insn","add x16, x16, #0x18")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(24,64)))]), Jmps([Call(Tid(1_462, "%000005b6"), - Attrs([Attr("address","0x65C"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), -Sub(Tid(1_723, "@deregister_tm_clones"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x6D0")]), - "deregister_tm_clones", Args([Arg(Tid(1_744, "%000006d0"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("deregister_tm_clones_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(603, "@deregister_tm_clones"), - Attrs([Attr("address","0x6D0")]), Phis([]), Defs([Def(Tid(606, "%0000025e"), - Attrs([Attr("address","0x6D0"), Attr("insn","adrp x0, #69632")]), - Var("R0",Imm(64)), Int(69632,64)), Def(Tid(612, "%00000264"), - Attrs([Attr("address","0x6D4"), Attr("insn","add x0, x0, #0x40")]), - Var("R0",Imm(64)), PLUS(Var("R0",Imm(64)),Int(64,64))), -Def(Tid(617, "%00000269"), Attrs([Attr("address","0x6D8"), -Attr("insn","adrp x1, #69632")]), Var("R1",Imm(64)), Int(69632,64)), -Def(Tid(623, "%0000026f"), Attrs([Attr("address","0x6DC"), -Attr("insn","add x1, x1, #0x40")]), Var("R1",Imm(64)), -PLUS(Var("R1",Imm(64)),Int(64,64))), Def(Tid(629, "%00000275"), - Attrs([Attr("address","0x6E0"), Attr("insn","cmp x1, x0")]), - Var("#1",Imm(64)), NOT(Var("R0",Imm(64)))), Def(Tid(634, "%0000027a"), - Attrs([Attr("address","0x6E0"), Attr("insn","cmp x1, x0")]), - Var("#2",Imm(64)), PLUS(Var("R1",Imm(64)),NOT(Var("R0",Imm(64))))), -Def(Tid(640, "%00000280"), Attrs([Attr("address","0x6E0"), -Attr("insn","cmp x1, x0")]), Var("VF",Imm(1)), -NEQ(SIGNED(65,PLUS(Var("#2",Imm(64)),Int(1,64))),PLUS(PLUS(SIGNED(65,Var("R1",Imm(64))),SIGNED(65,Var("#1",Imm(64)))),Int(1,65)))), -Def(Tid(646, "%00000286"), Attrs([Attr("address","0x6E0"), -Attr("insn","cmp x1, x0")]), Var("CF",Imm(1)), -NEQ(UNSIGNED(65,PLUS(Var("#2",Imm(64)),Int(1,64))),PLUS(PLUS(UNSIGNED(65,Var("R1",Imm(64))),UNSIGNED(65,Var("#1",Imm(64)))),Int(1,65)))), -Def(Tid(650, "%0000028a"), Attrs([Attr("address","0x6E0"), -Attr("insn","cmp x1, x0")]), Var("ZF",Imm(1)), -EQ(PLUS(Var("#2",Imm(64)),Int(1,64)),Int(0,64))), Def(Tid(654, "%0000028e"), - Attrs([Attr("address","0x6E0"), Attr("insn","cmp x1, x0")]), - Var("NF",Imm(1)), Extract(63,63,PLUS(Var("#2",Imm(64)),Int(1,64))))]), -Jmps([Goto(Tid(660, "%00000294"), Attrs([Attr("address","0x6E4"), -Attr("insn","b.eq #0x18")]), EQ(Var("ZF",Imm(1)),Int(1,1)), -Direct(Tid(658, "%00000292"))), Goto(Tid(1_724, "%000006bc"), Attrs([]), - Int(1,1), Direct(Tid(1_170, "%00000492")))])), Blk(Tid(1_170, "%00000492"), - Attrs([Attr("address","0x6E8")]), Phis([]), -Defs([Def(Tid(1_173, "%00000495"), Attrs([Attr("address","0x6E8"), -Attr("insn","adrp x1, #65536")]), Var("R1",Imm(64)), Int(65536,64)), -Def(Tid(1_180, "%0000049c"), Attrs([Attr("address","0x6EC"), -Attr("insn","ldr x1, [x1, #0xfb0]")]), Var("R1",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R1",Imm(64)),Int(4016,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(1_185, "%000004a1"), Attrs([Attr("address","0x6F0"), -Attr("insn","cbz x1, #0xc")]), EQ(Var("R1",Imm(64)),Int(0,64)), -Direct(Tid(658, "%00000292"))), Goto(Tid(1_725, "%000006bd"), Attrs([]), - Int(1,1), Direct(Tid(1_189, "%000004a5")))])), Blk(Tid(658, "%00000292"), - Attrs([Attr("address","0x6FC")]), Phis([]), Defs([]), -Jmps([Call(Tid(666, "%0000029a"), Attrs([Attr("address","0x6FC"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))])), -Blk(Tid(1_189, "%000004a5"), Attrs([Attr("address","0x6F4")]), Phis([]), -Defs([Def(Tid(1_193, "%000004a9"), Attrs([Attr("address","0x6F4"), -Attr("insn","mov x16, x1")]), Var("R16",Imm(64)), Var("R1",Imm(64)))]), -Jmps([Call(Tid(1_198, "%000004ae"), Attrs([Attr("address","0x6F8"), -Attr("insn","br x16")]), Int(1,1), (Indirect(Var("R16",Imm(64))),))]))])), -Sub(Tid(1_726, "@frame_dummy"), Attrs([Attr("c.proto","signed (*)(void)"), -Attr("address","0x790")]), "frame_dummy", Args([Arg(Tid(1_745, "%000006d1"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("frame_dummy_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(818, "@frame_dummy"), - Attrs([Attr("address","0x790")]), Phis([]), Defs([]), -Jmps([Call(Tid(820, "%00000334"), Attrs([Attr("address","0x790"), -Attr("insn","b #-0x90")]), Int(1,1), -(Direct(Tid(1_729, "@register_tm_clones")),))]))])), Sub(Tid(1_727, "@main"), - Attrs([Attr("c.proto","signed (*)(signed argc, const char** argv)"), -Attr("address","0x794")]), "main", Args([Arg(Tid(1_746, "%000006d2"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("main_argc",Imm(32)), -LOW(32,Var("R0",Imm(64))), In()), Arg(Tid(1_747, "%000006d3"), - Attrs([Attr("c.layout","**[char : 8]"), Attr("c.data","Top:u8 ptr ptr"), -Attr("c.type"," const char**")]), Var("main_argv",Imm(64)), -Var("R1",Imm(64)), Both()), Arg(Tid(1_748, "%000006d4"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("main_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(822, "@main"), - Attrs([Attr("address","0x794")]), Phis([]), Defs([Def(Tid(826, "%0000033a"), - Attrs([Attr("address","0x794"), Attr("insn","sub sp, sp, #0x40")]), - Var("R31",Imm(64)), PLUS(Var("R31",Imm(64)),Int(18446744073709551552,64))), -Def(Tid(832, "%00000340"), Attrs([Attr("address","0x798"), -Attr("insn","stp x29, x30, [sp, #0x30]")]), Var("#4",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(48,64))), Def(Tid(838, "%00000346"), - Attrs([Attr("address","0x798"), Attr("insn","stp x29, x30, [sp, #0x30]")]), - Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("#4",Imm(64)),Var("R29",Imm(64)),LittleEndian(),64)), -Def(Tid(844, "%0000034c"), Attrs([Attr("address","0x798"), -Attr("insn","stp x29, x30, [sp, #0x30]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("#4",Imm(64)),Int(8,64)),Var("R30",Imm(64)),LittleEndian(),64)), -Def(Tid(850, "%00000352"), Attrs([Attr("address","0x79C"), -Attr("insn","add x29, sp, #0x30")]), Var("R29",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(48,64))), Def(Tid(858, "%0000035a"), - Attrs([Attr("address","0x7A0"), Attr("insn","stur w0, [x29, #-0x4]")]), - Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R29",Imm(64)),Int(18446744073709551612,64)),Extract(31,0,Var("R0",Imm(64))),LittleEndian(),32)), -Def(Tid(866, "%00000362"), Attrs([Attr("address","0x7A4"), -Attr("insn","stur x1, [x29, #-0x10]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R29",Imm(64)),Int(18446744073709551600,64)),Var("R1",Imm(64)),LittleEndian(),64)), -Def(Tid(871, "%00000367"), Attrs([Attr("address","0x7A8"), -Attr("insn","mov x0, #0x4")]), Var("R0",Imm(64)), Int(4,64)), -Def(Tid(879, "%0000036f"), Attrs([Attr("address","0x7AC"), -Attr("insn","str x0, [sp, #0x8]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),Var("R0",Imm(64)),LittleEndian(),64)), -Def(Tid(884, "%00000374"), Attrs([Attr("address","0x7B0"), -Attr("insn","bl #-0x170")]), Var("R30",Imm(64)), Int(1972,64))]), -Jmps([Call(Tid(887, "%00000377"), Attrs([Attr("address","0x7B0"), -Attr("insn","bl #-0x170")]), Int(1,1), -(Direct(Tid(1_728, "@malloc")),Direct(Tid(889, "%00000379"))))])), -Blk(Tid(889, "%00000379"), Attrs([Attr("address","0x7B4")]), Phis([]), -Defs([Def(Tid(893, "%0000037d"), Attrs([Attr("address","0x7B4"), -Attr("insn","mov x8, x0")]), Var("R8",Imm(64)), Var("R0",Imm(64))), -Def(Tid(900, "%00000384"), Attrs([Attr("address","0x7B8"), -Attr("insn","ldr x0, [sp, #0x8]")]), Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(908, "%0000038c"), Attrs([Attr("address","0x7BC"), -Attr("insn","str x8, [sp, #0x18]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(24,64)),Var("R8",Imm(64)),LittleEndian(),64)), -Def(Tid(913, "%00000391"), Attrs([Attr("address","0x7C0"), -Attr("insn","bl #-0x180")]), Var("R30",Imm(64)), Int(1988,64))]), -Jmps([Call(Tid(915, "%00000393"), Attrs([Attr("address","0x7C0"), -Attr("insn","bl #-0x180")]), Int(1,1), -(Direct(Tid(1_728, "@malloc")),Direct(Tid(917, "%00000395"))))])), -Blk(Tid(917, "%00000395"), Attrs([Attr("address","0x7C4")]), Phis([]), -Defs([Def(Tid(923, "%0000039b"), Attrs([Attr("address","0x7C4"), -Attr("insn","str x0, [sp, #0x10]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(16,64)),Var("R0",Imm(64)),LittleEndian(),64)), -Def(Tid(928, "%000003a0"), Attrs([Attr("address","0x7C8"), -Attr("insn","adrp x10, #65536")]), Var("R10",Imm(64)), Int(65536,64)), -Def(Tid(935, "%000003a7"), Attrs([Attr("address","0x7CC"), -Attr("insn","ldr x10, [x10, #0xfc0]")]), Var("R10",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R10",Imm(64)),Int(4032,64)),LittleEndian(),64)), -Def(Tid(942, "%000003ae"), Attrs([Attr("address","0x7D0"), -Attr("insn","ldr w8, [x10]")]), Var("R8",Imm(64)), -UNSIGNED(64,Load(Var("mem",Mem(64,8)),Var("R10",Imm(64)),LittleEndian(),32))), -Def(Tid(948, "%000003b4"), Attrs([Attr("address","0x7D4"), -Attr("insn","add w8, w8, #0x1")]), Var("R8",Imm(64)), -UNSIGNED(64,PLUS(Extract(31,0,Var("R8",Imm(64))),Int(1,32)))), -Def(Tid(955, "%000003bb"), Attrs([Attr("address","0x7D8"), -Attr("insn","ldr x9, [sp, #0x18]")]), Var("R9",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(24,64)),LittleEndian(),64)), -Def(Tid(963, "%000003c3"), Attrs([Attr("address","0x7DC"), -Attr("insn","str w8, [x9]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("R9",Imm(64)),Extract(31,0,Var("R8",Imm(64))),LittleEndian(),32)), -Def(Tid(968, "%000003c8"), Attrs([Attr("address","0x7E0"), -Attr("insn","adrp x9, #65536")]), Var("R9",Imm(64)), Int(65536,64)), -Def(Tid(975, "%000003cf"), Attrs([Attr("address","0x7E4"), -Attr("insn","ldr x9, [x9, #0xfd0]")]), Var("R9",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R9",Imm(64)),Int(4048,64)),LittleEndian(),64)), -Def(Tid(982, "%000003d6"), Attrs([Attr("address","0x7E8"), -Attr("insn","ldr w8, [x9]")]), Var("R8",Imm(64)), -UNSIGNED(64,Load(Var("mem",Mem(64,8)),Var("R9",Imm(64)),LittleEndian(),32))), -Def(Tid(988, "%000003dc"), Attrs([Attr("address","0x7EC"), -Attr("insn","add w8, w8, #0x2")]), Var("R8",Imm(64)), -UNSIGNED(64,PLUS(Extract(31,0,Var("R8",Imm(64))),Int(2,32)))), -Def(Tid(995, "%000003e3"), Attrs([Attr("address","0x7F0"), -Attr("insn","ldr x11, [sp, #0x10]")]), Var("R11",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(16,64)),LittleEndian(),64)), -Def(Tid(1_003, "%000003eb"), Attrs([Attr("address","0x7F4"), -Attr("insn","str w8, [x11]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("R11",Imm(64)),Extract(31,0,Var("R8",Imm(64))),LittleEndian(),32)), -Def(Tid(1_010, "%000003f2"), Attrs([Attr("address","0x7F8"), -Attr("insn","ldr x8, [sp, #0x18]")]), Var("R8",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(24,64)),LittleEndian(),64)), -Def(Tid(1_017, "%000003f9"), Attrs([Attr("address","0x7FC"), -Attr("insn","ldr w8, [x8]")]), Var("R8",Imm(64)), -UNSIGNED(64,Load(Var("mem",Mem(64,8)),Var("R8",Imm(64)),LittleEndian(),32))), -Def(Tid(1_025, "%00000401"), Attrs([Attr("address","0x800"), -Attr("insn","str w8, [x10]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("R10",Imm(64)),Extract(31,0,Var("R8",Imm(64))),LittleEndian(),32)), -Def(Tid(1_032, "%00000408"), Attrs([Attr("address","0x804"), -Attr("insn","ldr x8, [sp, #0x10]")]), Var("R8",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(16,64)),LittleEndian(),64)), -Def(Tid(1_039, "%0000040f"), Attrs([Attr("address","0x808"), -Attr("insn","ldr w8, [x8]")]), Var("R8",Imm(64)), -UNSIGNED(64,Load(Var("mem",Mem(64,8)),Var("R8",Imm(64)),LittleEndian(),32))), -Def(Tid(1_047, "%00000417"), Attrs([Attr("address","0x80C"), -Attr("insn","str w8, [x9]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("R9",Imm(64)),Extract(31,0,Var("R8",Imm(64))),LittleEndian(),32)), -Def(Tid(1_052, "%0000041c"), Attrs([Attr("address","0x810"), -Attr("insn","mov w0, wzr")]), Var("R0",Imm(64)), Int(0,64)), -Def(Tid(1_058, "%00000422"), Attrs([Attr("address","0x814"), -Attr("insn","ldp x29, x30, [sp, #0x30]")]), Var("#5",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(48,64))), Def(Tid(1_063, "%00000427"), - Attrs([Attr("address","0x814"), Attr("insn","ldp x29, x30, [sp, #0x30]")]), - Var("R29",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("#5",Imm(64)),LittleEndian(),64)), -Def(Tid(1_068, "%0000042c"), Attrs([Attr("address","0x814"), -Attr("insn","ldp x29, x30, [sp, #0x30]")]), Var("R30",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("#5",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(1_074, "%00000432"), Attrs([Attr("address","0x818"), -Attr("insn","add sp, sp, #0x40")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(64,64)))]), Jmps([Call(Tid(1_079, "%00000437"), - Attrs([Attr("address","0x81C"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), Sub(Tid(1_728, "@malloc"), - Attrs([Attr("c.proto","void* (*)(unsigned long size)"), -Attr("address","0x640"), Attr("malloc","()"), Attr("stub","()")]), "malloc", - Args([Arg(Tid(1_749, "%000006d5"), Attrs([Attr("alloc-size","()"), -Attr("c.layout","[unsigned long : 64]"), Attr("c.data","Top:u64"), -Attr("c.type","unsigned long")]), Var("malloc_size",Imm(64)), -Var("R0",Imm(64)), In()), Arg(Tid(1_750, "%000006d6"), - Attrs([Attr("warn-unused","()"), Attr("c.layout","*[ : 8]"), -Attr("c.data","{} ptr"), Attr("c.type","void*")]), - Var("malloc_result",Imm(64)), Var("R0",Imm(64)), Out())]), -Blks([Blk(Tid(885, "@malloc"), Attrs([Attr("address","0x640")]), Phis([]), -Defs([Def(Tid(1_422, "%0000058e"), Attrs([Attr("address","0x640"), -Attr("insn","adrp x16, #69632")]), Var("R16",Imm(64)), Int(69632,64)), -Def(Tid(1_429, "%00000595"), Attrs([Attr("address","0x644"), -Attr("insn","ldr x17, [x16, #0x10]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(16,64)),LittleEndian(),64)), -Def(Tid(1_435, "%0000059b"), Attrs([Attr("address","0x648"), -Attr("insn","add x16, x16, #0x10")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(16,64)))]), Jmps([Call(Tid(1_440, "%000005a0"), - Attrs([Attr("address","0x64C"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), -Sub(Tid(1_729, "@register_tm_clones"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x700")]), - "register_tm_clones", Args([Arg(Tid(1_751, "%000006d7"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("register_tm_clones_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(668, "@register_tm_clones"), Attrs([Attr("address","0x700")]), - Phis([]), Defs([Def(Tid(671, "%0000029f"), Attrs([Attr("address","0x700"), -Attr("insn","adrp x0, #69632")]), Var("R0",Imm(64)), Int(69632,64)), -Def(Tid(677, "%000002a5"), Attrs([Attr("address","0x704"), -Attr("insn","add x0, x0, #0x40")]), Var("R0",Imm(64)), -PLUS(Var("R0",Imm(64)),Int(64,64))), Def(Tid(682, "%000002aa"), - Attrs([Attr("address","0x708"), Attr("insn","adrp x1, #69632")]), - Var("R1",Imm(64)), Int(69632,64)), Def(Tid(688, "%000002b0"), - Attrs([Attr("address","0x70C"), Attr("insn","add x1, x1, #0x40")]), - Var("R1",Imm(64)), PLUS(Var("R1",Imm(64)),Int(64,64))), -Def(Tid(695, "%000002b7"), Attrs([Attr("address","0x710"), -Attr("insn","sub x1, x1, x0")]), Var("R1",Imm(64)), -PLUS(PLUS(Var("R1",Imm(64)),NOT(Var("R0",Imm(64)))),Int(1,64))), -Def(Tid(701, "%000002bd"), Attrs([Attr("address","0x714"), -Attr("insn","lsr x2, x1, #63")]), Var("R2",Imm(64)), -Concat(Int(0,63),Extract(63,63,Var("R1",Imm(64))))), -Def(Tid(708, "%000002c4"), Attrs([Attr("address","0x718"), -Attr("insn","add x1, x2, x1, asr #3")]), Var("R1",Imm(64)), -PLUS(Var("R2",Imm(64)),ARSHIFT(Var("R1",Imm(64)),Int(3,3)))), -Def(Tid(714, "%000002ca"), Attrs([Attr("address","0x71C"), -Attr("insn","asr x1, x1, #1")]), Var("R1",Imm(64)), -SIGNED(64,Extract(63,1,Var("R1",Imm(64)))))]), -Jmps([Goto(Tid(720, "%000002d0"), Attrs([Attr("address","0x720"), -Attr("insn","cbz x1, #0x18")]), EQ(Var("R1",Imm(64)),Int(0,64)), -Direct(Tid(718, "%000002ce"))), Goto(Tid(1_730, "%000006c2"), Attrs([]), - Int(1,1), Direct(Tid(1_140, "%00000474")))])), Blk(Tid(1_140, "%00000474"), - Attrs([Attr("address","0x724")]), Phis([]), -Defs([Def(Tid(1_143, "%00000477"), Attrs([Attr("address","0x724"), -Attr("insn","adrp x2, #65536")]), Var("R2",Imm(64)), Int(65536,64)), -Def(Tid(1_150, "%0000047e"), Attrs([Attr("address","0x728"), -Attr("insn","ldr x2, [x2, #0xfe0]")]), Var("R2",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R2",Imm(64)),Int(4064,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(1_155, "%00000483"), Attrs([Attr("address","0x72C"), -Attr("insn","cbz x2, #0xc")]), EQ(Var("R2",Imm(64)),Int(0,64)), -Direct(Tid(718, "%000002ce"))), Goto(Tid(1_731, "%000006c3"), Attrs([]), - Int(1,1), Direct(Tid(1_159, "%00000487")))])), Blk(Tid(718, "%000002ce"), - Attrs([Attr("address","0x738")]), Phis([]), Defs([]), -Jmps([Call(Tid(726, "%000002d6"), Attrs([Attr("address","0x738"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))])), -Blk(Tid(1_159, "%00000487"), Attrs([Attr("address","0x730")]), Phis([]), -Defs([Def(Tid(1_163, "%0000048b"), Attrs([Attr("address","0x730"), -Attr("insn","mov x16, x2")]), Var("R16",Imm(64)), Var("R2",Imm(64)))]), -Jmps([Call(Tid(1_168, "%00000490"), Attrs([Attr("address","0x734"), -Attr("insn","br x16")]), Int(1,1), -(Indirect(Var("R16",Imm(64))),))]))]))]))) \ No newline at end of file diff --git a/src/test/memory_regions/heap_pointer/clang_pic/heap_pointer.bir b/src/test/memory_regions/heap_pointer/clang_pic/heap_pointer.bir deleted file mode 100644 index 46737b562..000000000 --- a/src/test/memory_regions/heap_pointer/clang_pic/heap_pointer.bir +++ /dev/null @@ -1,277 +0,0 @@ -000006c4: program -000006ad: sub __cxa_finalize(__cxa_finalize_result) -000006c5: __cxa_finalize_result :: out u32 = low:32[R0] - -00000470: -00000578: R16 := 0x11000 -0000057f: R17 := mem[R16 + 8, el]:u64 -00000585: R16 := R16 + 8 -0000058a: call R17 with noreturn - -000006ae: sub __do_global_dtors_aux(__do_global_dtors_aux_result) -000006c6: __do_global_dtors_aux_result :: out u32 = low:32[R0] - -000002da: -000002de: #3 := R31 - 0x20 -000002e4: mem := mem with [#3, el]:u64 <- R29 -000002ea: mem := mem with [#3 + 8, el]:u64 <- R30 -000002ee: R31 := #3 -000002f4: R29 := R31 -000002fc: mem := mem with [R31 + 0x10, el]:u64 <- R19 -00000301: R19 := 0x11000 -00000308: R0 := pad:64[mem[R19 + 0x40]] -0000030f: when 31:0[R0] <> 0 goto %0000030d -000006af: goto %00000439 - -00000439: -0000043c: R0 := 0x10000 -00000443: R0 := mem[R0 + 0xFB8, el]:u64 -00000449: when R0 = 0 goto %00000447 -000006b0: goto %00000460 - -00000460: -00000463: R0 := 0x11000 -0000046a: R0 := mem[R0 + 0x30, el]:u64 -0000046f: R30 := 0x770 -00000472: call @__cxa_finalize with return %00000447 - -00000447: -0000044f: R30 := 0x774 -00000451: call @deregister_tm_clones with return %00000453 - -00000453: -00000456: R0 := 1 -0000045e: mem := mem with [R19 + 0x40] <- 7:0[R0] -000006b1: goto %0000030d - -0000030d: -00000317: R19 := mem[R31 + 0x10, el]:u64 -0000031e: R29 := mem[R31, el]:u64 -00000323: R30 := mem[R31 + 8, el]:u64 -00000327: R31 := R31 + 0x20 -0000032c: call R30 with noreturn - -000006b2: sub __libc_start_main(__libc_start_main_main, __libc_start_main_arg2, __libc_start_main_arg3, __libc_start_main_auxv, __libc_start_main_result) -000006c7: __libc_start_main_main :: in u64 = R0 -000006c8: __libc_start_main_arg2 :: in u32 = low:32[R1] -000006c9: __libc_start_main_arg3 :: in out u64 = R2 -000006ca: __libc_start_main_auxv :: in out u64 = R3 -000006cb: __libc_start_main_result :: out u32 = low:32[R0] - -00000233: -00000562: R16 := 0x11000 -00000569: R17 := mem[R16, el]:u64 -0000056f: R16 := R16 -00000574: call R17 with noreturn - -000006b3: sub _fini(_fini_result) -000006cc: _fini_result :: out u32 = low:32[R0] - -0000001f: -00000025: #0 := R31 - 0x10 -0000002b: mem := mem with [#0, el]:u64 <- R29 -00000031: mem := mem with [#0 + 8, el]:u64 <- R30 -00000035: R31 := #0 -0000003b: R29 := R31 -00000042: R29 := mem[R31, el]:u64 -00000047: R30 := mem[R31 + 8, el]:u64 -0000004b: R31 := R31 + 0x10 -00000050: call R30 with noreturn - -000006b4: sub _init(_init_result) -000006cd: _init_result :: out u32 = low:32[R0] - -000005e8: -000005ee: #7 := R31 - 0x10 -000005f4: mem := mem with [#7, el]:u64 <- R29 -000005fa: mem := mem with [#7 + 8, el]:u64 <- R30 -000005fe: R31 := #7 -00000604: R29 := R31 -00000609: R30 := 0x5F8 -0000060b: call @call_weak_fn with return %0000060d - -0000060d: -00000612: R29 := mem[R31, el]:u64 -00000617: R30 := mem[R31 + 8, el]:u64 -0000061b: R31 := R31 + 0x10 -00000620: call R30 with noreturn - -000006b5: sub _start(_start_result) -000006ce: _start_result :: out u32 = low:32[R0] - -000001f4: -000001f9: R29 := 0 -000001fe: R30 := 0 -00000204: R5 := R0 -0000020b: R1 := mem[R31, el]:u64 -00000211: R2 := R31 + 8 -00000217: R6 := R31 -0000021c: R0 := 0x10000 -00000223: R0 := mem[R0 + 0xFD8, el]:u64 -00000228: R3 := 0 -0000022d: R4 := 0 -00000232: R30 := 0x6B0 -00000235: call @__libc_start_main with return %00000237 - -00000237: -0000023a: R30 := 0x6B4 -0000023d: call @abort with return %000006b6 - -000006b6: -000006b7: call @call_weak_fn with noreturn - -000006b8: sub abort() - - -0000023b: -000005ba: R16 := 0x11000 -000005c1: R17 := mem[R16 + 0x20, el]:u64 -000005c7: R16 := R16 + 0x20 -000005cc: call R17 with noreturn - -000006b9: sub call_weak_fn(call_weak_fn_result) -000006cf: call_weak_fn_result :: out u32 = low:32[R0] - -0000023f: -00000242: R0 := 0x10000 -00000249: R0 := mem[R0 + 0xFC8, el]:u64 -0000024f: when R0 = 0 goto %0000024d -000006ba: goto %000004b0 - -0000024d: -00000255: call R30 with noreturn - -000004b0: -000004b3: goto @__gmon_start__ - -000004b1: -000005a4: R16 := 0x11000 -000005ab: R17 := mem[R16 + 0x18, el]:u64 -000005b1: R16 := R16 + 0x18 -000005b6: call R17 with noreturn - -000006bb: sub deregister_tm_clones(deregister_tm_clones_result) -000006d0: deregister_tm_clones_result :: out u32 = low:32[R0] - -0000025b: -0000025e: R0 := 0x11000 -00000264: R0 := R0 + 0x40 -00000269: R1 := 0x11000 -0000026f: R1 := R1 + 0x40 -00000275: #1 := ~R0 -0000027a: #2 := R1 + ~R0 -00000280: VF := extend:65[#2 + 1] <> extend:65[R1] + extend:65[#1] + 1 -00000286: CF := pad:65[#2 + 1] <> pad:65[R1] + pad:65[#1] + 1 -0000028a: ZF := #2 + 1 = 0 -0000028e: NF := 63:63[#2 + 1] -00000294: when ZF goto %00000292 -000006bc: goto %00000492 - -00000492: -00000495: R1 := 0x10000 -0000049c: R1 := mem[R1 + 0xFB0, el]:u64 -000004a1: when R1 = 0 goto %00000292 -000006bd: goto %000004a5 - -00000292: -0000029a: call R30 with noreturn - -000004a5: -000004a9: R16 := R1 -000004ae: call R16 with noreturn - -000006be: sub frame_dummy(frame_dummy_result) -000006d1: frame_dummy_result :: out u32 = low:32[R0] - -00000332: -00000334: call @register_tm_clones with noreturn - -000006bf: sub main(main_argc, main_argv, main_result) -000006d2: main_argc :: in u32 = low:32[R0] -000006d3: main_argv :: in out u64 = R1 -000006d4: main_result :: out u32 = low:32[R0] - -00000336: -0000033a: R31 := R31 - 0x40 -00000340: #4 := R31 + 0x30 -00000346: mem := mem with [#4, el]:u64 <- R29 -0000034c: mem := mem with [#4 + 8, el]:u64 <- R30 -00000352: R29 := R31 + 0x30 -0000035a: mem := mem with [R29 - 4, el]:u32 <- 31:0[R0] -00000362: mem := mem with [R29 - 0x10, el]:u64 <- R1 -00000367: R0 := 4 -0000036f: mem := mem with [R31 + 8, el]:u64 <- R0 -00000374: R30 := 0x7B4 -00000377: call @malloc with return %00000379 - -00000379: -0000037d: R8 := R0 -00000384: R0 := mem[R31 + 8, el]:u64 -0000038c: mem := mem with [R31 + 0x18, el]:u64 <- R8 -00000391: R30 := 0x7C4 -00000393: call @malloc with return %00000395 - -00000395: -0000039b: mem := mem with [R31 + 0x10, el]:u64 <- R0 -000003a0: R10 := 0x10000 -000003a7: R10 := mem[R10 + 0xFC0, el]:u64 -000003ae: R8 := pad:64[mem[R10, el]:u32] -000003b4: R8 := pad:64[31:0[R8] + 1] -000003bb: R9 := mem[R31 + 0x18, el]:u64 -000003c3: mem := mem with [R9, el]:u32 <- 31:0[R8] -000003c8: R9 := 0x10000 -000003cf: R9 := mem[R9 + 0xFD0, el]:u64 -000003d6: R8 := pad:64[mem[R9, el]:u32] -000003dc: R8 := pad:64[31:0[R8] + 2] -000003e3: R11 := mem[R31 + 0x10, el]:u64 -000003eb: mem := mem with [R11, el]:u32 <- 31:0[R8] -000003f2: R8 := mem[R31 + 0x18, el]:u64 -000003f9: R8 := pad:64[mem[R8, el]:u32] -00000401: mem := mem with [R10, el]:u32 <- 31:0[R8] -00000408: R8 := mem[R31 + 0x10, el]:u64 -0000040f: R8 := pad:64[mem[R8, el]:u32] -00000417: mem := mem with [R9, el]:u32 <- 31:0[R8] -0000041c: R0 := 0 -00000422: #5 := R31 + 0x30 -00000427: R29 := mem[#5, el]:u64 -0000042c: R30 := mem[#5 + 8, el]:u64 -00000432: R31 := R31 + 0x40 -00000437: call R30 with noreturn - -000006c0: sub malloc(malloc_size, malloc_result) -000006d5: malloc_size :: in u64 = R0 -000006d6: malloc_result :: out u64 = R0 - -00000375: -0000058e: R16 := 0x11000 -00000595: R17 := mem[R16 + 0x10, el]:u64 -0000059b: R16 := R16 + 0x10 -000005a0: call R17 with noreturn - -000006c1: sub register_tm_clones(register_tm_clones_result) -000006d7: register_tm_clones_result :: out u32 = low:32[R0] - -0000029c: -0000029f: R0 := 0x11000 -000002a5: R0 := R0 + 0x40 -000002aa: R1 := 0x11000 -000002b0: R1 := R1 + 0x40 -000002b7: R1 := R1 + ~R0 + 1 -000002bd: R2 := 0.63:63[R1] -000002c4: R1 := R2 + (R1 ~>> 3) -000002ca: R1 := extend:64[63:1[R1]] -000002d0: when R1 = 0 goto %000002ce -000006c2: goto %00000474 - -00000474: -00000477: R2 := 0x10000 -0000047e: R2 := mem[R2 + 0xFE0, el]:u64 -00000483: when R2 = 0 goto %000002ce -000006c3: goto %00000487 - -000002ce: -000002d6: call R30 with noreturn - -00000487: -0000048b: R16 := R2 -00000490: call R16 with noreturn diff --git a/src/test/memory_regions/heap_pointer/clang_pic/heap_pointer.md5sum b/src/test/memory_regions/heap_pointer/clang_pic/heap_pointer.md5sum new file mode 100644 index 000000000..108eb1644 --- /dev/null +++ b/src/test/memory_regions/heap_pointer/clang_pic/heap_pointer.md5sum @@ -0,0 +1,4 @@ +9ac8e4802ecf93b2b9fb000c45a4a64a memory_regions/heap_pointer/clang_pic/a.out +fa4001fb1b1846e1c42b003ba5eac47c memory_regions/heap_pointer/clang_pic/heap_pointer.relf +9edee15a61463d668668dce709ffd9b8 memory_regions/heap_pointer/clang_pic/heap_pointer.adt +2c70baf4466005181b5b6722014685db memory_regions/heap_pointer/clang_pic/heap_pointer.bir diff --git a/src/test/memory_regions/heap_pointer/clang_pic/heap_pointer.relf b/src/test/memory_regions/heap_pointer/clang_pic/heap_pointer.relf deleted file mode 100644 index 4118cffb1..000000000 --- a/src/test/memory_regions/heap_pointer/clang_pic/heap_pointer.relf +++ /dev/null @@ -1,129 +0,0 @@ - -Relocation section '.rela.dyn' at offset 0x480 contains 10 entries: - Offset Info Type Symbol's Value Symbol's Name + Addend -0000000000010db8 0000000000000403 R_AARCH64_RELATIVE 790 -0000000000010dc0 0000000000000403 R_AARCH64_RELATIVE 740 -0000000000010fc0 0000000000000403 R_AARCH64_RELATIVE 11038 -0000000000010fd0 0000000000000403 R_AARCH64_RELATIVE 1103c -0000000000010fd8 0000000000000403 R_AARCH64_RELATIVE 794 -0000000000011030 0000000000000403 R_AARCH64_RELATIVE 11030 -0000000000010fb0 0000000400000401 R_AARCH64_GLOB_DAT 0000000000000000 _ITM_deregisterTMCloneTable + 0 -0000000000010fb8 0000000500000401 R_AARCH64_GLOB_DAT 0000000000000000 __cxa_finalize@GLIBC_2.17 + 0 -0000000000010fc8 0000000700000401 R_AARCH64_GLOB_DAT 0000000000000000 __gmon_start__ + 0 -0000000000010fe0 0000000900000401 R_AARCH64_GLOB_DAT 0000000000000000 _ITM_registerTMCloneTable + 0 - -Relocation section '.rela.plt' at offset 0x570 contains 5 entries: - Offset Info Type Symbol's Value Symbol's Name + Addend -0000000000011000 0000000300000402 R_AARCH64_JUMP_SLOT 0000000000000000 __libc_start_main@GLIBC_2.34 + 0 -0000000000011008 0000000500000402 R_AARCH64_JUMP_SLOT 0000000000000000 __cxa_finalize@GLIBC_2.17 + 0 -0000000000011010 0000000600000402 R_AARCH64_JUMP_SLOT 0000000000000000 malloc@GLIBC_2.17 + 0 -0000000000011018 0000000700000402 R_AARCH64_JUMP_SLOT 0000000000000000 __gmon_start__ + 0 -0000000000011020 0000000800000402 R_AARCH64_JUMP_SLOT 0000000000000000 abort@GLIBC_2.17 + 0 - -Symbol table '.dynsym' contains 10 entries: - Num: Value Size Type Bind Vis Ndx Name - 0: 0000000000000000 0 NOTYPE LOCAL DEFAULT UND - 1: 00000000000005e8 0 SECTION LOCAL DEFAULT 11 .init - 2: 0000000000011028 0 SECTION LOCAL DEFAULT 23 .data - 3: 0000000000000000 0 FUNC GLOBAL DEFAULT UND __libc_start_main@GLIBC_2.34 (2) - 4: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_deregisterTMCloneTable - 5: 0000000000000000 0 FUNC WEAK DEFAULT UND __cxa_finalize@GLIBC_2.17 (3) - 6: 0000000000000000 0 FUNC GLOBAL DEFAULT UND malloc@GLIBC_2.17 (3) - 7: 0000000000000000 0 NOTYPE WEAK DEFAULT UND __gmon_start__ - 8: 0000000000000000 0 FUNC GLOBAL DEFAULT UND abort@GLIBC_2.17 (3) - 9: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_registerTMCloneTable - -Symbol table '.symtab' contains 92 entries: - Num: Value Size Type Bind Vis Ndx Name - 0: 0000000000000000 0 NOTYPE LOCAL DEFAULT UND - 1: 0000000000000238 0 SECTION LOCAL DEFAULT 1 .interp - 2: 0000000000000254 0 SECTION LOCAL DEFAULT 2 .note.gnu.build-id - 3: 0000000000000278 0 SECTION LOCAL DEFAULT 3 .note.ABI-tag - 4: 0000000000000298 0 SECTION LOCAL DEFAULT 4 .gnu.hash - 5: 00000000000002b8 0 SECTION LOCAL DEFAULT 5 .dynsym - 6: 00000000000003a8 0 SECTION LOCAL DEFAULT 6 .dynstr - 7: 000000000000043c 0 SECTION LOCAL DEFAULT 7 .gnu.version - 8: 0000000000000450 0 SECTION LOCAL DEFAULT 8 .gnu.version_r - 9: 0000000000000480 0 SECTION LOCAL DEFAULT 9 .rela.dyn - 10: 0000000000000570 0 SECTION LOCAL DEFAULT 10 .rela.plt - 11: 00000000000005e8 0 SECTION LOCAL DEFAULT 11 .init - 12: 0000000000000600 0 SECTION LOCAL DEFAULT 12 .plt - 13: 0000000000000680 0 SECTION LOCAL DEFAULT 13 .text - 14: 0000000000000820 0 SECTION LOCAL DEFAULT 14 .fini - 15: 0000000000000834 0 SECTION LOCAL DEFAULT 15 .rodata - 16: 0000000000000838 0 SECTION LOCAL DEFAULT 16 .eh_frame_hdr - 17: 0000000000000878 0 SECTION LOCAL DEFAULT 17 .eh_frame - 18: 0000000000010db8 0 SECTION LOCAL DEFAULT 18 .init_array - 19: 0000000000010dc0 0 SECTION LOCAL DEFAULT 19 .fini_array - 20: 0000000000010dc8 0 SECTION LOCAL DEFAULT 20 .dynamic - 21: 0000000000010fa8 0 SECTION LOCAL DEFAULT 21 .got - 22: 0000000000010fe8 0 SECTION LOCAL DEFAULT 22 .got.plt - 23: 0000000000011028 0 SECTION LOCAL DEFAULT 23 .data - 24: 0000000000011040 0 SECTION LOCAL DEFAULT 24 .bss - 25: 0000000000000000 0 SECTION LOCAL DEFAULT 25 .comment - 26: 0000000000000000 0 FILE LOCAL DEFAULT ABS Scrt1.o - 27: 0000000000000278 0 NOTYPE LOCAL DEFAULT 3 $d - 28: 0000000000000278 32 OBJECT LOCAL DEFAULT 3 __abi_tag - 29: 0000000000000680 0 NOTYPE LOCAL DEFAULT 13 $x - 30: 000000000000088c 0 NOTYPE LOCAL DEFAULT 17 $d - 31: 0000000000000834 0 NOTYPE LOCAL DEFAULT 15 $d - 32: 0000000000000000 0 FILE LOCAL DEFAULT ABS crti.o - 33: 00000000000006b4 0 NOTYPE LOCAL DEFAULT 13 $x - 34: 00000000000006b4 20 FUNC LOCAL DEFAULT 13 call_weak_fn - 35: 00000000000005e8 0 NOTYPE LOCAL DEFAULT 11 $x - 36: 0000000000000820 0 NOTYPE LOCAL DEFAULT 14 $x - 37: 0000000000000000 0 FILE LOCAL DEFAULT ABS crtn.o - 38: 00000000000005f8 0 NOTYPE LOCAL DEFAULT 11 $x - 39: 000000000000082c 0 NOTYPE LOCAL DEFAULT 14 $x - 40: 0000000000000000 0 FILE LOCAL DEFAULT ABS crtstuff.c - 41: 00000000000006d0 0 NOTYPE LOCAL DEFAULT 13 $x - 42: 00000000000006d0 0 FUNC LOCAL DEFAULT 13 deregister_tm_clones - 43: 0000000000000700 0 FUNC LOCAL DEFAULT 13 register_tm_clones - 44: 0000000000011030 0 NOTYPE LOCAL DEFAULT 23 $d - 45: 0000000000000740 0 FUNC LOCAL DEFAULT 13 __do_global_dtors_aux - 46: 0000000000011040 1 OBJECT LOCAL DEFAULT 24 completed.0 - 47: 0000000000010dc0 0 NOTYPE LOCAL DEFAULT 19 $d - 48: 0000000000010dc0 0 OBJECT LOCAL DEFAULT 19 __do_global_dtors_aux_fini_array_entry - 49: 0000000000000790 0 FUNC LOCAL DEFAULT 13 frame_dummy - 50: 0000000000010db8 0 NOTYPE LOCAL DEFAULT 18 $d - 51: 0000000000010db8 0 OBJECT LOCAL DEFAULT 18 __frame_dummy_init_array_entry - 52: 00000000000008a0 0 NOTYPE LOCAL DEFAULT 17 $d - 53: 0000000000011040 0 NOTYPE LOCAL DEFAULT 24 $d - 54: 0000000000000000 0 FILE LOCAL DEFAULT ABS heap_pointer.c - 55: 0000000000000794 0 NOTYPE LOCAL DEFAULT 13 $x.0 - 56: 0000000000011038 0 NOTYPE LOCAL DEFAULT 23 $d.1 - 57: 000000000000002a 0 NOTYPE LOCAL DEFAULT 25 $d.2 - 58: 0000000000000900 0 NOTYPE LOCAL DEFAULT 17 $d.3 - 59: 0000000000000000 0 FILE LOCAL DEFAULT ABS crtstuff.c - 60: 000000000000093c 0 NOTYPE LOCAL DEFAULT 17 $d - 61: 000000000000093c 0 OBJECT LOCAL DEFAULT 17 __FRAME_END__ - 62: 0000000000000000 0 FILE LOCAL DEFAULT ABS - 63: 0000000000010dc8 0 OBJECT LOCAL DEFAULT ABS _DYNAMIC - 64: 0000000000000838 0 NOTYPE LOCAL DEFAULT 16 __GNU_EH_FRAME_HDR - 65: 0000000000010fa8 0 OBJECT LOCAL DEFAULT ABS _GLOBAL_OFFSET_TABLE_ - 66: 0000000000000600 0 NOTYPE LOCAL DEFAULT 12 $x - 67: 0000000000000000 0 FUNC GLOBAL DEFAULT UND __libc_start_main@GLIBC_2.34 - 68: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_deregisterTMCloneTable - 69: 0000000000011028 0 NOTYPE WEAK DEFAULT 23 data_start - 70: 0000000000011040 0 NOTYPE GLOBAL DEFAULT 24 __bss_start__ - 71: 0000000000000000 0 FUNC WEAK DEFAULT UND __cxa_finalize@GLIBC_2.17 - 72: 0000000000011048 0 NOTYPE GLOBAL DEFAULT 24 _bss_end__ - 73: 0000000000011040 0 NOTYPE GLOBAL DEFAULT 23 _edata - 74: 0000000000011038 4 OBJECT GLOBAL DEFAULT 23 x - 75: 0000000000000820 0 FUNC GLOBAL HIDDEN 14 _fini - 76: 0000000000011048 0 NOTYPE GLOBAL DEFAULT 24 __bss_end__ - 77: 0000000000000000 0 FUNC GLOBAL DEFAULT UND malloc@GLIBC_2.17 - 78: 0000000000011028 0 NOTYPE GLOBAL DEFAULT 23 __data_start - 79: 0000000000000000 0 NOTYPE WEAK DEFAULT UND __gmon_start__ - 80: 0000000000011030 0 OBJECT GLOBAL HIDDEN 23 __dso_handle - 81: 0000000000000000 0 FUNC GLOBAL DEFAULT UND abort@GLIBC_2.17 - 82: 0000000000000834 4 OBJECT GLOBAL DEFAULT 15 _IO_stdin_used - 83: 0000000000011048 0 NOTYPE GLOBAL DEFAULT 24 _end - 84: 0000000000000680 52 FUNC GLOBAL DEFAULT 13 _start - 85: 0000000000011048 0 NOTYPE GLOBAL DEFAULT 24 __end__ - 86: 000000000001103c 4 OBJECT GLOBAL DEFAULT 23 y - 87: 0000000000011040 0 NOTYPE GLOBAL DEFAULT 24 __bss_start - 88: 0000000000000794 140 FUNC GLOBAL DEFAULT 13 main - 89: 0000000000011040 0 OBJECT GLOBAL HIDDEN 23 __TMC_END__ - 90: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_registerTMCloneTable - 91: 00000000000005e8 0 FUNC GLOBAL HIDDEN 11 _init diff --git a/src/test/memory_regions/heap_pointer/config.mk b/src/test/memory_regions/heap_pointer/config.mk index ea9b72ce9..20a55b600 100644 --- a/src/test/memory_regions/heap_pointer/config.mk +++ b/src/test/memory_regions/heap_pointer/config.mk @@ -1 +1,2 @@ -ENABLED_COMPILERS = clang clang_pic gcc gcc_pic \ No newline at end of file +ENABLED_COMPILERS = clang clang_pic gcc gcc_pic +LIFT_ARTEFACTS := $(COMMON_ARTEFACTS) $(BAP_ARTEFACTS) diff --git a/src/test/memory_regions/heap_pointer/gcc/heap_pointer.adt b/src/test/memory_regions/heap_pointer/gcc/heap_pointer.adt deleted file mode 100644 index 5fb6b5b88..000000000 --- a/src/test/memory_regions/heap_pointer/gcc/heap_pointer.adt +++ /dev/null @@ -1,619 +0,0 @@ -Project(Attrs([Attr("filename","\"a.out\""), -Attr("image-specification","(declare abi (name str))\n(declare arch (name str))\n(declare base-address (addr int))\n(declare bias (off int))\n(declare bits (size int))\n(declare code-region (addr int) (size int) (off int))\n(declare code-start (addr int))\n(declare entry-point (addr int))\n(declare external-reference (addr int) (name str))\n(declare format (name str))\n(declare is-executable (flag bool))\n(declare is-little-endian (flag bool))\n(declare llvm:base-address (addr int))\n(declare llvm:code-entry (name str) (off int) (size int))\n(declare llvm:coff-import-library (name str))\n(declare llvm:coff-virtual-section-header (name str) (addr int) (size int))\n(declare llvm:elf-program-header (name str) (off int) (size int))\n(declare llvm:elf-program-header-flags (name str) (ld bool) (r bool) \n (w bool) (x bool))\n(declare llvm:elf-virtual-program-header (name str) (addr int) (size int))\n(declare llvm:entry-point (addr int))\n(declare llvm:macho-symbol (name str) (value int))\n(declare llvm:name-reference (at int) (name str))\n(declare llvm:relocation (at int) (addr int))\n(declare llvm:section-entry (name str) (addr int) (size int) (off int))\n(declare llvm:section-flags (name str) (r bool) (w bool) (x bool))\n(declare llvm:segment-command (name str) (off int) (size int))\n(declare llvm:segment-command-flags (name str) (r bool) (w bool) (x bool))\n(declare llvm:symbol-entry (name str) (addr int) (size int) (off int)\n (value int))\n(declare llvm:virtual-segment-command (name str) (addr int) (size int))\n(declare mapped (addr int) (size int) (off int))\n(declare named-region (addr int) (size int) (name str))\n(declare named-symbol (addr int) (name str))\n(declare require (name str))\n(declare section (addr int) (size int))\n(declare segment (addr int) (size int) (r bool) (w bool) (x bool))\n(declare subarch (name str))\n(declare symbol-chunk (addr int) (size int) (root int))\n(declare symbol-value (addr int) (value int))\n(declare system (name str))\n(declare vendor (name str))\n\n(abi unknown)\n(arch aarch64)\n(base-address 0)\n(bias 0)\n(bits 64)\n(code-region 2016 20 2016)\n(code-region 1600 416 1600)\n(code-region 1488 112 1488)\n(code-region 1464 24 1464)\n(code-start 1652)\n(code-start 1600)\n(code-start 1876)\n(entry-point 1600)\n(external-reference 69592 _ITM_deregisterTMCloneTable)\n(external-reference 69600 __cxa_finalize)\n(external-reference 69608 __gmon_start__)\n(external-reference 69624 _ITM_registerTMCloneTable)\n(external-reference 69544 __libc_start_main)\n(external-reference 69552 __cxa_finalize)\n(external-reference 69560 malloc)\n(external-reference 69568 __gmon_start__)\n(external-reference 69576 abort)\n(format elf)\n(is-executable true)\n(is-little-endian true)\n(llvm:base-address 0)\n(llvm:code-entry abort 0 0)\n(llvm:code-entry malloc 0 0)\n(llvm:code-entry __cxa_finalize 0 0)\n(llvm:code-entry __libc_start_main 0 0)\n(llvm:code-entry _init 1464 0)\n(llvm:code-entry main 1876 140)\n(llvm:code-entry _start 1600 52)\n(llvm:code-entry abort@GLIBC_2.17 0 0)\n(llvm:code-entry malloc@GLIBC_2.17 0 0)\n(llvm:code-entry _fini 2016 0)\n(llvm:code-entry __cxa_finalize@GLIBC_2.17 0 0)\n(llvm:code-entry __libc_start_main@GLIBC_2.34 0 0)\n(llvm:code-entry frame_dummy 1872 0)\n(llvm:code-entry __do_global_dtors_aux 1792 0)\n(llvm:code-entry register_tm_clones 1728 0)\n(llvm:code-entry deregister_tm_clones 1680 0)\n(llvm:code-entry call_weak_fn 1652 20)\n(llvm:code-entry .fini 2016 20)\n(llvm:code-entry .text 1600 416)\n(llvm:code-entry .plt 1488 112)\n(llvm:code-entry .init 1464 24)\n(llvm:elf-program-header 08 3472 624)\n(llvm:elf-program-header 07 0 0)\n(llvm:elf-program-header 06 2040 60)\n(llvm:elf-program-header 05 596 68)\n(llvm:elf-program-header 04 3488 496)\n(llvm:elf-program-header 03 3472 648)\n(llvm:elf-program-header 02 0 2276)\n(llvm:elf-program-header 01 568 27)\n(llvm:elf-program-header 00 64 504)\n(llvm:elf-program-header-flags 08 false true false false)\n(llvm:elf-program-header-flags 07 false true true false)\n(llvm:elf-program-header-flags 06 false true false false)\n(llvm:elf-program-header-flags 05 false true false false)\n(llvm:elf-program-header-flags 04 false true true false)\n(llvm:elf-program-header-flags 03 true true true false)\n(llvm:elf-program-header-flags 02 true true false true)\n(llvm:elf-program-header-flags 01 false true false false)\n(llvm:elf-program-header-flags 00 false true false false)\n(llvm:elf-virtual-program-header 08 69008 624)\n(llvm:elf-virtual-program-header 07 0 0)\n(llvm:elf-virtual-program-header 06 2040 60)\n(llvm:elf-virtual-program-header 05 596 68)\n(llvm:elf-virtual-program-header 04 69024 496)\n(llvm:elf-virtual-program-header 03 69008 656)\n(llvm:elf-virtual-program-header 02 0 2276)\n(llvm:elf-virtual-program-header 01 568 27)\n(llvm:elf-virtual-program-header 00 64 504)\n(llvm:entry-point 1600)\n(llvm:name-reference 69576 abort)\n(llvm:name-reference 69568 __gmon_start__)\n(llvm:name-reference 69560 malloc)\n(llvm:name-reference 69552 __cxa_finalize)\n(llvm:name-reference 69544 __libc_start_main)\n(llvm:name-reference 69624 _ITM_registerTMCloneTable)\n(llvm:name-reference 69608 __gmon_start__)\n(llvm:name-reference 69600 __cxa_finalize)\n(llvm:name-reference 69592 _ITM_deregisterTMCloneTable)\n(llvm:section-entry .shstrtab 0 250 6894)\n(llvm:section-entry .strtab 0 566 6328)\n(llvm:section-entry .symtab 0 2160 4168)\n(llvm:section-entry .comment 0 43 4120)\n(llvm:section-entry .bss 69656 8 4120)\n(llvm:section-entry .data 69632 24 4096)\n(llvm:section-entry .got 69520 112 3984)\n(llvm:section-entry .dynamic 69024 496 3488)\n(llvm:section-entry .fini_array 69016 8 3480)\n(llvm:section-entry .init_array 69008 8 3472)\n(llvm:section-entry .eh_frame 2104 172 2104)\n(llvm:section-entry .eh_frame_hdr 2040 60 2040)\n(llvm:section-entry .rodata 2036 4 2036)\n(llvm:section-entry .fini 2016 20 2016)\n(llvm:section-entry .text 1600 416 1600)\n(llvm:section-entry .plt 1488 112 1488)\n(llvm:section-entry .init 1464 24 1464)\n(llvm:section-entry .rela.plt 1344 120 1344)\n(llvm:section-entry .rela.dyn 1152 192 1152)\n(llvm:section-entry .gnu.version_r 1104 48 1104)\n(llvm:section-entry .gnu.version 1084 20 1084)\n(llvm:section-entry .dynstr 936 148 936)\n(llvm:section-entry .dynsym 696 240 696)\n(llvm:section-entry .gnu.hash 664 28 664)\n(llvm:section-entry .note.ABI-tag 632 32 632)\n(llvm:section-entry .note.gnu.build-id 596 36 596)\n(llvm:section-entry .interp 568 27 568)\n(llvm:section-flags .shstrtab true false false)\n(llvm:section-flags .strtab true false false)\n(llvm:section-flags .symtab true false false)\n(llvm:section-flags .comment true false false)\n(llvm:section-flags .bss true true false)\n(llvm:section-flags .data true true false)\n(llvm:section-flags .got true true false)\n(llvm:section-flags .dynamic true true false)\n(llvm:section-flags .fini_array true true false)\n(llvm:section-flags .init_array true true false)\n(llvm:section-flags .eh_frame true false false)\n(llvm:section-flags .eh_frame_hdr true false false)\n(llvm:section-flags .rodata true false false)\n(llvm:section-flags .fini true false true)\n(llvm:section-flags .text true false true)\n(llvm:section-flags .plt true false true)\n(llvm:section-flags .init true false true)\n(llvm:section-flags .rela.plt true false false)\n(llvm:section-flags .rela.dyn true false false)\n(llvm:section-flags .gnu.version_r true false false)\n(llvm:section-flags .gnu.version true false false)\n(llvm:section-flags .dynstr true false false)\n(llvm:section-flags .dynsym true false false)\n(llvm:section-flags .gnu.hash true false false)\n(llvm:section-flags .note.ABI-tag true false false)\n(llvm:section-flags .note.gnu.build-id true false false)\n(llvm:section-flags .interp true false false)\n(llvm:symbol-entry abort 0 0 0 0)\n(llvm:symbol-entry malloc 0 0 0 0)\n(llvm:symbol-entry __cxa_finalize 0 0 0 0)\n(llvm:symbol-entry __libc_start_main 0 0 0 0)\n(llvm:symbol-entry _init 1464 0 1464 1464)\n(llvm:symbol-entry main 1876 140 1876 1876)\n(llvm:symbol-entry _start 1600 52 1600 1600)\n(llvm:symbol-entry abort@GLIBC_2.17 0 0 0 0)\n(llvm:symbol-entry malloc@GLIBC_2.17 0 0 0 0)\n(llvm:symbol-entry _fini 2016 0 2016 2016)\n(llvm:symbol-entry __cxa_finalize@GLIBC_2.17 0 0 0 0)\n(llvm:symbol-entry __libc_start_main@GLIBC_2.34 0 0 0 0)\n(llvm:symbol-entry frame_dummy 1872 0 1872 1872)\n(llvm:symbol-entry __do_global_dtors_aux 1792 0 1792 1792)\n(llvm:symbol-entry register_tm_clones 1728 0 1728 1728)\n(llvm:symbol-entry deregister_tm_clones 1680 0 1680 1680)\n(llvm:symbol-entry call_weak_fn 1652 20 1652 1652)\n(mapped 0 2276 0)\n(mapped 69008 648 3472)\n(named-region 0 2276 02)\n(named-region 69008 656 03)\n(named-region 568 27 .interp)\n(named-region 596 36 .note.gnu.build-id)\n(named-region 632 32 .note.ABI-tag)\n(named-region 664 28 .gnu.hash)\n(named-region 696 240 .dynsym)\n(named-region 936 148 .dynstr)\n(named-region 1084 20 .gnu.version)\n(named-region 1104 48 .gnu.version_r)\n(named-region 1152 192 .rela.dyn)\n(named-region 1344 120 .rela.plt)\n(named-region 1464 24 .init)\n(named-region 1488 112 .plt)\n(named-region 1600 416 .text)\n(named-region 2016 20 .fini)\n(named-region 2036 4 .rodata)\n(named-region 2040 60 .eh_frame_hdr)\n(named-region 2104 172 .eh_frame)\n(named-region 69008 8 .init_array)\n(named-region 69016 8 .fini_array)\n(named-region 69024 496 .dynamic)\n(named-region 69520 112 .got)\n(named-region 69632 24 .data)\n(named-region 69656 8 .bss)\n(named-region 0 43 .comment)\n(named-region 0 2160 .symtab)\n(named-region 0 566 .strtab)\n(named-region 0 250 .shstrtab)\n(named-symbol 1652 call_weak_fn)\n(named-symbol 1680 deregister_tm_clones)\n(named-symbol 1728 register_tm_clones)\n(named-symbol 1792 __do_global_dtors_aux)\n(named-symbol 1872 frame_dummy)\n(named-symbol 0 __libc_start_main@GLIBC_2.34)\n(named-symbol 0 __cxa_finalize@GLIBC_2.17)\n(named-symbol 2016 _fini)\n(named-symbol 0 malloc@GLIBC_2.17)\n(named-symbol 0 abort@GLIBC_2.17)\n(named-symbol 1600 _start)\n(named-symbol 1876 main)\n(named-symbol 1464 _init)\n(named-symbol 0 __libc_start_main)\n(named-symbol 0 __cxa_finalize)\n(named-symbol 0 malloc)\n(named-symbol 0 abort)\n(require libc.so.6)\n(section 568 27)\n(section 596 36)\n(section 632 32)\n(section 664 28)\n(section 696 240)\n(section 936 148)\n(section 1084 20)\n(section 1104 48)\n(section 1152 192)\n(section 1344 120)\n(section 1464 24)\n(section 1488 112)\n(section 1600 416)\n(section 2016 20)\n(section 2036 4)\n(section 2040 60)\n(section 2104 172)\n(section 69008 8)\n(section 69016 8)\n(section 69024 496)\n(section 69520 112)\n(section 69632 24)\n(section 69656 8)\n(section 0 43)\n(section 0 2160)\n(section 0 566)\n(section 0 250)\n(segment 0 2276 true false true)\n(segment 69008 656 true true false)\n(subarch v8)\n(symbol-chunk 1652 20 1652)\n(symbol-chunk 1600 52 1600)\n(symbol-chunk 1876 140 1876)\n(symbol-value 1652 1652)\n(symbol-value 1680 1680)\n(symbol-value 1728 1728)\n(symbol-value 1792 1792)\n(symbol-value 1872 1872)\n(symbol-value 2016 2016)\n(symbol-value 1600 1600)\n(symbol-value 1876 1876)\n(symbol-value 1464 1464)\n(symbol-value 0 0)\n(system \"\")\n(vendor \"\")\n"), -Attr("abi-name","\"aarch64-linux-gnu-elf\"")]), -Sections([Section(".shstrtab", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x40\x06\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xe8\x1b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x38\x00\x09\x00\x40\x00\x1c\x00\x1b\x00\x06\x00\x00\x00\x04\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x04\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe4\x08\x00\x00\x00\x00\x00\x00\xe4\x08\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x01\x00\x00\x00\x06\x00\x00\x00\x90\x0d\x00\x00\x00\x00\x00\x00\x90\x0d"), -Section(".strtab", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x40\x06\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xe8\x1b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x38\x00\x09\x00\x40\x00\x1c\x00\x1b\x00\x06\x00\x00\x00\x04\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x04\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe4\x08\x00\x00\x00\x00\x00\x00\xe4\x08\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x01\x00\x00\x00\x06\x00\x00\x00\x90\x0d\x00\x00\x00\x00\x00\x00\x90\x0d\x01\x00\x00\x00\x00\x00\x90\x0d\x01\x00\x00\x00\x00\x00\x88\x02\x00\x00\x00\x00\x00\x00\x90\x02\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x02\x00\x00\x00\x06\x00\x00\x00\xa0\x0d\x00\x00\x00\x00\x00\x00\xa0\x0d\x01\x00\x00\x00\x00\x00\xa0\x0d\x01\x00\x00\x00\x00\x00\xf0\x01\x00\x00\x00\x00\x00\x00\xf0\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x04\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x50\xe5\x74\x64\x04\x00\x00\x00\xf8\x07\x00\x00\x00\x00\x00\x00\xf8\x07\x00\x00\x00\x00\x00\x00\xf8\x07\x00\x00\x00\x00\x00\x00\x3c\x00\x00\x00\x00\x00\x00\x00\x3c\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x51\xe5\x74\x64\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x52\xe5\x74\x64\x04\x00\x00\x00\x90\x0d\x00\x00\x00\x00\x00\x00\x90\x0d\x01\x00\x00\x00\x00\x00\x90\x0d\x01\x00\x00\x00\x00\x00\x70\x02\x00\x00\x00\x00\x00\x00\x70\x02\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00"), -Section(".symtab", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x40\x06\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xe8\x1b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x38\x00\x09\x00\x40\x00\x1c\x00\x1b\x00\x06\x00\x00\x00\x04\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x04\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe4\x08\x00\x00\x00\x00\x00\x00\xe4\x08\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x01\x00\x00\x00\x06\x00\x00\x00\x90\x0d\x00\x00\x00\x00\x00\x00\x90\x0d\x01\x00\x00\x00\x00\x00\x90\x0d\x01\x00\x00\x00\x00\x00\x88\x02\x00\x00\x00\x00\x00\x00\x90\x02\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x02\x00\x00\x00\x06\x00\x00\x00\xa0\x0d\x00\x00\x00\x00\x00\x00\xa0\x0d\x01\x00\x00\x00\x00\x00\xa0\x0d\x01\x00\x00\x00\x00\x00\xf0\x01\x00\x00\x00\x00\x00\x00\xf0\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x04\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x50\xe5\x74\x64\x04\x00\x00\x00\xf8\x07\x00\x00\x00\x00\x00\x00\xf8\x07\x00\x00\x00\x00\x00\x00\xf8\x07\x00\x00\x00\x00\x00\x00\x3c\x00\x00\x00\x00\x00\x00\x00\x3c\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x51\xe5\x74\x64\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x52\xe5\x74\x64\x04\x00\x00\x00\x90\x0d\x00\x00\x00\x00\x00\x00\x90\x0d\x01\x00\x00\x00\x00\x00\x90\x0d\x01\x00\x00\x00\x00\x00\x70\x02\x00\x00\x00\x00\x00\x00\x70\x02\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x2f\x6c\x69\x62\x2f\x6c\x64\x2d\x6c\x69\x6e\x75\x78\x2d\x61\x61\x72\x63\x68\x36\x34\x2e\x73\x6f\x2e\x31\x00\x00\x04\x00\x00\x00\x14\x00\x00\x00\x03\x00\x00\x00\x47\x4e\x55\x00\x39\x28\x86\xb5\x74\x8e\xab\x61\xe6\x2f\x8e\xf5\x1d\x38\xa3\x76\x63\x73\xac\x4c\x04\x00\x00\x00\x10\x00\x00\x00\x01\x00\x00\x00\x47\x4e\x55\x00\x00\x00\x00\x00\x03\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x01\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x0b\x00\xb8\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x16\x00\x00\x10\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x17\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4f\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x22\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6b\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x29\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5f\x5f\x63\x78\x61\x5f\x66\x69\x6e\x61\x6c\x69\x7a\x65\x00\x6d\x61\x6c\x6c\x6f\x63\x00\x5f\x5f\x6c\x69\x62\x63\x5f\x73\x74\x61\x72\x74\x5f\x6d\x61\x69\x6e\x00\x61\x62\x6f\x72\x74\x00\x6c\x69\x62\x63\x2e\x73\x6f\x2e\x36\x00\x47\x4c\x49\x42\x43\x5f\x32\x2e\x31\x37\x00\x47\x4c\x49\x42\x43\x5f\x32\x2e\x33\x34\x00\x5f\x49\x54\x4d\x5f\x64\x65\x72\x65\x67\x69\x73\x74\x65\x72\x54\x4d\x43\x6c\x6f\x6e\x65\x54\x61\x62\x6c\x65\x00\x5f\x5f\x67\x6d\x6f\x6e\x5f\x73\x74\x61\x72\x74\x5f\x5f\x00\x5f\x49\x54\x4d\x5f\x72\x65\x67\x69\x73\x74\x65\x72\x54\x4d\x43\x6c\x6f\x6e\x65\x54\x61\x62\x6c\x65\x00\x00\x00\x00\x00\x00\x00\x02\x00\x01\x00\x03\x00\x03\x00\x01\x00\x03\x00\x01\x00\x01\x00\x02\x00\x2f\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x97\x91\x96\x06\x00\x00\x03\x00\x39\x00\x00\x00\x10\x00\x00\x00\xb4\x91\x96\x06\x00\x00\x02\x00\x44\x00\x00\x00\x00\x00\x00\x00\x90\x0d\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x50\x07\x00\x00\x00\x00\x00\x00\x98\x0d\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\xf0\x0f\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x54\x07\x00\x00\x00\x00\x00\x00\x08\x10\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x08\x10\x01\x00\x00\x00\x00\x00\xd8\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe0\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe8\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xf8\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x09\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xa8\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xb0\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xb8\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xc0\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xc8\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1f\x20\x03\xd5\xfd\x7b\xbf\xa9\xfd\x03\x00\x91\x2c\x00\x00\x94\xfd\x7b\xc1\xa8\xc0\x03\x5f\xd6\xf0\x7b\xbf\xa9\x90\x00\x00\x90\x11\xd2\x47\xf9\x10\x82\x3e\x91\x20\x02\x1f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x90\x00\x00\x90\x11\xd6\x47\xf9\x10\xa2\x3e\x91\x20\x02\x1f\xd6\x90\x00\x00\x90\x11\xda\x47\xf9\x10\xc2\x3e\x91\x20\x02\x1f\xd6\x90\x00\x00\x90\x11\xde\x47\xf9\x10\xe2\x3e\x91\x20\x02\x1f\xd6\x90\x00\x00\x90\x11\xe2\x47\xf9\x10\x02\x3f\x91\x20\x02\x1f\xd6\x90\x00\x00\x90\x11\xe6\x47\xf9\x10\x22\x3f\x91\x20\x02\x1f\xd6\x1f\x20\x03\xd5\x1d\x00\x80\xd2\x1e\x00\x80\xd2\xe5\x03\x00\xaa\xe1\x03\x40\xf9\xe2\x23\x00\x91\xe6\x03\x00\x91\x80\x00\x00\x90\x00\xf8\x47\xf9\x03\x00\x80\xd2\x04\x00\x80\xd2\xe1\xff\xff\x97\xf0\xff\xff\x97\x80\x00\x00\x90\x00\xf4\x47\xf9\x40\x00\x00\xb4\xe8\xff\xff\x17\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x80\x00\x00\xb0\x00\x60\x00\x91\x81\x00\x00\xb0\x21\x60\x00\x91\x3f\x00\x00\xeb\xc0\x00\x00\x54\x81\x00\x00\x90\x21\xec\x47\xf9\x61\x00\x00\xb4\xf0\x03\x01\xaa\x00\x02\x1f\xd6\xc0\x03\x5f\xd6\x80\x00\x00\xb0\x00\x60\x00\x91\x81\x00\x00\xb0\x21\x60\x00\x91\x21\x00\x00\xcb\x22\xfc\x7f\xd3\x41\x0c\x81\x8b\x21\xfc\x41\x93\xc1\x00\x00\xb4\x82\x00\x00\x90\x42\xfc\x47\xf9\x62\x00\x00\xb4\xf0\x03\x02\xaa\x00\x02\x1f\xd6\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\xfd\x7b\xbe\xa9\xfd\x03\x00\x91\xf3\x0b\x00\xf9\x93\x00\x00\xb0\x60\x62\x40\x39\x40\x01\x00\x35\x80\x00\x00\x90\x00\xf0\x47\xf9\x80\x00\x00\xb4\x80\x00\x00\xb0\x00\x04\x40\xf9\xb5\xff\xff\x97\xd8\xff\xff\x97\x20\x00\x80\x52\x60\x62\x00\x39\xf3\x0b\x40\xf9\xfd\x7b\xc2\xa8\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\xdc\xff\xff\x17\xfd\x7b\xbd\xa9\xfd\x03\x00\x91\xe0\x1f\x00\xb9\xe1\x0b\x00\xf9\x80\x00\x80\xd2\xaa\xff\xff\x97\xe0\x13\x00\xf9\x80\x00\x80\xd2\xa7\xff\xff\x97\xe0\x17\x00\xf9\x80\x00\x00\xb0\x00\x40\x00\x91\x00\x00\x40\xb9\x01\x04\x00\x11\xe0\x13\x40\xf9\x01\x00\x00\xb9\x80\x00\x00\xb0\x00\x50\x00\x91\x00\x00\x40\xb9\x01\x08\x00\x11\xe0\x17\x40\xf9\x01\x00\x00\xb9\xe0\x13\x40\xf9\x01\x00\x40\xb9\x80\x00\x00\xb0\x00\x40\x00\x91\x01\x00\x00\xb9\xe0\x17\x40\xf9\x01\x00\x40\xb9\x80\x00\x00\xb0\x00\x50\x00\x91\x01\x00\x00\xb9\x00\x00\x80\x52\xfd\x7b\xc3\xa8\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\xfd\x7b\xbf\xa9\xfd\x03\x00\x91\xfd\x7b\xc1\xa8\xc0\x03\x5f\xd6\x01\x00\x02\x00\x01\x1b\x03\x3b\x3c\x00\x00\x00\x06\x00\x00\x00\x48\xfe\xff\xff\x54\x00\x00\x00\x98\xfe\xff\xff\x68\x00\x00\x00\xc8\xfe\xff\xff\x7c\x00\x00\x00\x08\xff\xff\xff\x90\x00\x00\x00\x58\xff\xff\xff\xb4\x00\x00\x00\x5c\xff\xff\xff\xc8\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x01\x7a\x52\x00\x04\x78\x1e\x01\x1b\x0c\x1f\x00\x10\x00\x00\x00\x18\x00\x00\x00\xec\xfd\xff\xff\x34\x00\x00\x00\x00\x41\x07\x1e\x10\x00\x00\x00\x2c\x00\x00\x00\x28\xfe\xff\xff\x30\x00\x00\x00"), -Section(".comment", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x40\x06\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xe8\x1b\x00"), -Section(".interp", 0x238, "\x2f\x6c\x69\x62\x2f\x6c\x64\x2d\x6c\x69\x6e\x75\x78\x2d\x61\x61\x72\x63\x68\x36\x34\x2e\x73\x6f\x2e\x31\x00"), -Section(".note.gnu.build-id", 0x254, "\x04\x00\x00\x00\x14\x00\x00\x00\x03\x00\x00\x00\x47\x4e\x55\x00\x39\x28\x86\xb5\x74\x8e\xab\x61\xe6\x2f\x8e\xf5\x1d\x38\xa3\x76\x63\x73\xac\x4c"), -Section(".note.ABI-tag", 0x278, "\x04\x00\x00\x00\x10\x00\x00\x00\x01\x00\x00\x00\x47\x4e\x55\x00\x00\x00\x00\x00\x03\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00"), -Section(".gnu.hash", 0x298, "\x01\x00\x00\x00\x01\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".dynsym", 0x2B8, "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x0b\x00\xb8\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x16\x00\x00\x10\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x17\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4f\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x22\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6b\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x29\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".dynstr", 0x3A8, "\x00\x5f\x5f\x63\x78\x61\x5f\x66\x69\x6e\x61\x6c\x69\x7a\x65\x00\x6d\x61\x6c\x6c\x6f\x63\x00\x5f\x5f\x6c\x69\x62\x63\x5f\x73\x74\x61\x72\x74\x5f\x6d\x61\x69\x6e\x00\x61\x62\x6f\x72\x74\x00\x6c\x69\x62\x63\x2e\x73\x6f\x2e\x36\x00\x47\x4c\x49\x42\x43\x5f\x32\x2e\x31\x37\x00\x47\x4c\x49\x42\x43\x5f\x32\x2e\x33\x34\x00\x5f\x49\x54\x4d\x5f\x64\x65\x72\x65\x67\x69\x73\x74\x65\x72\x54\x4d\x43\x6c\x6f\x6e\x65\x54\x61\x62\x6c\x65\x00\x5f\x5f\x67\x6d\x6f\x6e\x5f\x73\x74\x61\x72\x74\x5f\x5f\x00\x5f\x49\x54\x4d\x5f\x72\x65\x67\x69\x73\x74\x65\x72\x54\x4d\x43\x6c\x6f\x6e\x65\x54\x61\x62\x6c\x65\x00"), -Section(".gnu.version", 0x43C, "\x00\x00\x00\x00\x00\x00\x02\x00\x01\x00\x03\x00\x03\x00\x01\x00\x03\x00\x01\x00"), -Section(".gnu.version_r", 0x450, "\x01\x00\x02\x00\x2f\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x97\x91\x96\x06\x00\x00\x03\x00\x39\x00\x00\x00\x10\x00\x00\x00\xb4\x91\x96\x06\x00\x00\x02\x00\x44\x00\x00\x00\x00\x00\x00\x00"), -Section(".rela.dyn", 0x480, "\x90\x0d\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x50\x07\x00\x00\x00\x00\x00\x00\x98\x0d\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\xf0\x0f\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x54\x07\x00\x00\x00\x00\x00\x00\x08\x10\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x08\x10\x01\x00\x00\x00\x00\x00\xd8\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe0\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe8\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xf8\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x09\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".rela.plt", 0x540, "\xa8\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xb0\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xb8\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xc0\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xc8\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".init", 0x5B8, "\x1f\x20\x03\xd5\xfd\x7b\xbf\xa9\xfd\x03\x00\x91\x2c\x00\x00\x94\xfd\x7b\xc1\xa8\xc0\x03\x5f\xd6"), -Section(".plt", 0x5D0, "\xf0\x7b\xbf\xa9\x90\x00\x00\x90\x11\xd2\x47\xf9\x10\x82\x3e\x91\x20\x02\x1f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x90\x00\x00\x90\x11\xd6\x47\xf9\x10\xa2\x3e\x91\x20\x02\x1f\xd6\x90\x00\x00\x90\x11\xda\x47\xf9\x10\xc2\x3e\x91\x20\x02\x1f\xd6\x90\x00\x00\x90\x11\xde\x47\xf9\x10\xe2\x3e\x91\x20\x02\x1f\xd6\x90\x00\x00\x90\x11\xe2\x47\xf9\x10\x02\x3f\x91\x20\x02\x1f\xd6\x90\x00\x00\x90\x11\xe6\x47\xf9\x10\x22\x3f\x91\x20\x02\x1f\xd6"), -Section(".fini", 0x7E0, "\x1f\x20\x03\xd5\xfd\x7b\xbf\xa9\xfd\x03\x00\x91\xfd\x7b\xc1\xa8\xc0\x03\x5f\xd6"), -Section(".rodata", 0x7F4, "\x01\x00\x02\x00"), -Section(".eh_frame_hdr", 0x7F8, "\x01\x1b\x03\x3b\x3c\x00\x00\x00\x06\x00\x00\x00\x48\xfe\xff\xff\x54\x00\x00\x00\x98\xfe\xff\xff\x68\x00\x00\x00\xc8\xfe\xff\xff\x7c\x00\x00\x00\x08\xff\xff\xff\x90\x00\x00\x00\x58\xff\xff\xff\xb4\x00\x00\x00\x5c\xff\xff\xff\xc8\x00\x00\x00"), -Section(".eh_frame", 0x838, "\x10\x00\x00\x00\x00\x00\x00\x00\x01\x7a\x52\x00\x04\x78\x1e\x01\x1b\x0c\x1f\x00\x10\x00\x00\x00\x18\x00\x00\x00\xec\xfd\xff\xff\x34\x00\x00\x00\x00\x41\x07\x1e\x10\x00\x00\x00\x2c\x00\x00\x00\x28\xfe\xff\xff\x30\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x40\x00\x00\x00\x44\xfe\xff\xff\x3c\x00\x00\x00\x00\x00\x00\x00\x20\x00\x00\x00\x54\x00\x00\x00\x70\xfe\xff\xff\x48\x00\x00\x00\x00\x41\x0e\x20\x9d\x04\x9e\x03\x42\x93\x02\x4e\xde\xdd\xd3\x0e\x00\x00\x00\x00\x10\x00\x00\x00\x78\x00\x00\x00\x9c\xfe\xff\xff\x04\x00\x00\x00\x00\x00\x00\x00\x1c\x00\x00\x00\x8c\x00\x00\x00\x8c\xfe\xff\xff\x8c\x00\x00\x00\x00\x41\x0e\x30\x9d\x06\x9e\x05\x61\xde\xdd\x0e\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".fini_array", 0x10D98, "\x00\x07\x00\x00\x00\x00\x00\x00"), -Section(".dynamic", 0x10DA0, "\x01\x00\x00\x00\x00\x00\x00\x00\x2f\x00\x00\x00\x00\x00\x00\x00\x0c\x00\x00\x00\x00\x00\x00\x00\xb8\x05\x00\x00\x00\x00\x00\x00\x0d\x00\x00\x00\x00\x00\x00\x00\xe0\x07\x00\x00\x00\x00\x00\x00\x19\x00\x00\x00\x00\x00\x00\x00\x90\x0d\x01\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x1a\x00\x00\x00\x00\x00\x00\x00\x98\x0d\x01\x00\x00\x00\x00\x00\x1c\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\xf5\xfe\xff\x6f\x00\x00\x00\x00\x98\x02\x00\x00\x00\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\xa8\x03\x00\x00\x00\x00\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\xb8\x02\x00\x00\x00\x00\x00\x00\x0a\x00\x00\x00\x00\x00\x00\x00\x94\x00\x00\x00\x00\x00\x00\x00\x0b\x00\x00\x00\x00\x00\x00\x00\x18\x00\x00\x00\x00\x00\x00\x00\x15\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x90\x0f\x01\x00\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x78\x00\x00\x00\x00\x00\x00\x00\x14\x00\x00\x00\x00\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x17\x00\x00\x00\x00\x00\x00\x00\x40\x05\x00\x00\x00\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x80\x04\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\xc0\x00\x00\x00\x00\x00\x00\x00\x09\x00\x00\x00\x00\x00\x00\x00\x18\x00\x00\x00\x00\x00\x00\x00\x1e\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\xfb\xff\xff\x6f\x00\x00\x00\x00\x01\x00\x00\x08\x00\x00\x00\x00\xfe\xff\xff\x6f\x00\x00\x00\x00\x50\x04\x00\x00\x00\x00\x00\x00\xff\xff\xff\x6f\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\xf0\xff\xff\x6f\x00\x00\x00\x00\x3c\x04\x00\x00\x00\x00\x00\x00\xf9\xff\xff\x6f\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".got", 0x10F90, "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xd0\x05\x00\x00\x00\x00\x00\x00\xd0\x05\x00\x00\x00\x00\x00\x00\xd0\x05\x00\x00\x00\x00\x00\x00\xd0\x05\x00\x00\x00\x00\x00\x00\xd0\x05\x00\x00\x00\x00\x00\x00\xa0\x0d\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x54\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".data", 0x11000, "\x00\x00\x00\x00\x00\x00\x00\x00\x08\x10\x01\x00\x00\x00\x00\x00\x05\x00\x00\x00\x08\x00\x00\x00"), -Section(".init_array", 0x10D90, "\x50\x07\x00\x00\x00\x00\x00\x00"), -Section(".text", 0x640, "\x1f\x20\x03\xd5\x1d\x00\x80\xd2\x1e\x00\x80\xd2\xe5\x03\x00\xaa\xe1\x03\x40\xf9\xe2\x23\x00\x91\xe6\x03\x00\x91\x80\x00\x00\x90\x00\xf8\x47\xf9\x03\x00\x80\xd2\x04\x00\x80\xd2\xe1\xff\xff\x97\xf0\xff\xff\x97\x80\x00\x00\x90\x00\xf4\x47\xf9\x40\x00\x00\xb4\xe8\xff\xff\x17\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x80\x00\x00\xb0\x00\x60\x00\x91\x81\x00\x00\xb0\x21\x60\x00\x91\x3f\x00\x00\xeb\xc0\x00\x00\x54\x81\x00\x00\x90\x21\xec\x47\xf9\x61\x00\x00\xb4\xf0\x03\x01\xaa\x00\x02\x1f\xd6\xc0\x03\x5f\xd6\x80\x00\x00\xb0\x00\x60\x00\x91\x81\x00\x00\xb0\x21\x60\x00\x91\x21\x00\x00\xcb\x22\xfc\x7f\xd3\x41\x0c\x81\x8b\x21\xfc\x41\x93\xc1\x00\x00\xb4\x82\x00\x00\x90\x42\xfc\x47\xf9\x62\x00\x00\xb4\xf0\x03\x02\xaa\x00\x02\x1f\xd6\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\xfd\x7b\xbe\xa9\xfd\x03\x00\x91\xf3\x0b\x00\xf9\x93\x00\x00\xb0\x60\x62\x40\x39\x40\x01\x00\x35\x80\x00\x00\x90\x00\xf0\x47\xf9\x80\x00\x00\xb4\x80\x00\x00\xb0\x00\x04\x40\xf9\xb5\xff\xff\x97\xd8\xff\xff\x97\x20\x00\x80\x52\x60\x62\x00\x39\xf3\x0b\x40\xf9\xfd\x7b\xc2\xa8\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\xdc\xff\xff\x17\xfd\x7b\xbd\xa9\xfd\x03\x00\x91\xe0\x1f\x00\xb9\xe1\x0b\x00\xf9\x80\x00\x80\xd2\xaa\xff\xff\x97\xe0\x13\x00\xf9\x80\x00\x80\xd2\xa7\xff\xff\x97\xe0\x17\x00\xf9\x80\x00\x00\xb0\x00\x40\x00\x91\x00\x00\x40\xb9\x01\x04\x00\x11\xe0\x13\x40\xf9\x01\x00\x00\xb9\x80\x00\x00\xb0\x00\x50\x00\x91\x00\x00\x40\xb9\x01\x08\x00\x11\xe0\x17\x40\xf9\x01\x00\x00\xb9\xe0\x13\x40\xf9\x01\x00\x40\xb9\x80\x00\x00\xb0\x00\x40\x00\x91\x01\x00\x00\xb9\xe0\x17\x40\xf9\x01\x00\x40\xb9\x80\x00\x00\xb0\x00\x50\x00\x91\x01\x00\x00\xb9\x00\x00\x80\x52\xfd\x7b\xc3\xa8\xc0\x03\x5f\xd6")]), -Memmap([Annotation(Region(0x0,0x8E3), Attr("segment","02 0 2276")), -Annotation(Region(0x640,0x673), Attr("symbol","\"_start\"")), -Annotation(Region(0x0,0xF9), Attr("section","\".shstrtab\"")), -Annotation(Region(0x0,0x235), Attr("section","\".strtab\"")), -Annotation(Region(0x0,0x86F), Attr("section","\".symtab\"")), -Annotation(Region(0x0,0x2A), Attr("section","\".comment\"")), -Annotation(Region(0x238,0x252), Attr("section","\".interp\"")), -Annotation(Region(0x254,0x277), Attr("section","\".note.gnu.build-id\"")), -Annotation(Region(0x278,0x297), Attr("section","\".note.ABI-tag\"")), -Annotation(Region(0x298,0x2B3), Attr("section","\".gnu.hash\"")), -Annotation(Region(0x2B8,0x3A7), Attr("section","\".dynsym\"")), -Annotation(Region(0x3A8,0x43B), Attr("section","\".dynstr\"")), -Annotation(Region(0x43C,0x44F), Attr("section","\".gnu.version\"")), -Annotation(Region(0x450,0x47F), Attr("section","\".gnu.version_r\"")), -Annotation(Region(0x480,0x53F), Attr("section","\".rela.dyn\"")), -Annotation(Region(0x540,0x5B7), Attr("section","\".rela.plt\"")), -Annotation(Region(0x5B8,0x5CF), Attr("section","\".init\"")), -Annotation(Region(0x5D0,0x63F), Attr("section","\".plt\"")), -Annotation(Region(0x5B8,0x5CF), Attr("code-region","()")), -Annotation(Region(0x5D0,0x63F), Attr("code-region","()")), -Annotation(Region(0x640,0x673), Attr("symbol-info","_start 0x640 52")), -Annotation(Region(0x674,0x687), Attr("symbol","\"call_weak_fn\"")), -Annotation(Region(0x674,0x687), Attr("symbol-info","call_weak_fn 0x674 20")), -Annotation(Region(0x754,0x7DF), Attr("symbol","\"main\"")), -Annotation(Region(0x754,0x7DF), Attr("symbol-info","main 0x754 140")), -Annotation(Region(0x7E0,0x7F3), Attr("section","\".fini\"")), -Annotation(Region(0x7F4,0x7F7), Attr("section","\".rodata\"")), -Annotation(Region(0x7F8,0x833), Attr("section","\".eh_frame_hdr\"")), -Annotation(Region(0x838,0x8E3), Attr("section","\".eh_frame\"")), -Annotation(Region(0x10D90,0x11017), Attr("segment","03 0x10D90 656")), -Annotation(Region(0x10D98,0x10D9F), Attr("section","\".fini_array\"")), -Annotation(Region(0x10DA0,0x10F8F), Attr("section","\".dynamic\"")), -Annotation(Region(0x10F90,0x10FFF), Attr("section","\".got\"")), -Annotation(Region(0x11000,0x11017), Attr("section","\".data\"")), -Annotation(Region(0x10D90,0x10D97), Attr("section","\".init_array\"")), -Annotation(Region(0x640,0x7DF), Attr("section","\".text\"")), -Annotation(Region(0x640,0x7DF), Attr("code-region","()")), -Annotation(Region(0x7E0,0x7F3), Attr("code-region","()"))]), -Program(Tid(1_839, "%0000072f"), Attrs([]), - Subs([Sub(Tid(1_816, "@__cxa_finalize"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x600"), -Attr("stub","()")]), "__cxa_finalize", Args([Arg(Tid(1_840, "%00000730"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("__cxa_finalize_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(1_132, "@__cxa_finalize"), - Attrs([Attr("address","0x600")]), Phis([]), -Defs([Def(Tid(1_396, "%00000574"), Attrs([Attr("address","0x600"), -Attr("insn","adrp x16, #65536")]), Var("R16",Imm(64)), Int(65536,64)), -Def(Tid(1_403, "%0000057b"), Attrs([Attr("address","0x604"), -Attr("insn","ldr x17, [x16, #0xfb0]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(4016,64)),LittleEndian(),64)), -Def(Tid(1_409, "%00000581"), Attrs([Attr("address","0x608"), -Attr("insn","add x16, x16, #0xfb0")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(4016,64)))]), Jmps([Call(Tid(1_414, "%00000586"), - Attrs([Attr("address","0x60C"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), -Sub(Tid(1_817, "@__do_global_dtors_aux"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x700")]), - "__do_global_dtors_aux", Args([Arg(Tid(1_841, "%00000731"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("__do_global_dtors_aux_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(730, "@__do_global_dtors_aux"), - Attrs([Attr("address","0x700")]), Phis([]), Defs([Def(Tid(734, "%000002de"), - Attrs([Attr("address","0x700"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("#3",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(18446744073709551584,64))), -Def(Tid(740, "%000002e4"), Attrs([Attr("address","0x700"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("#3",Imm(64)),Var("R29",Imm(64)),LittleEndian(),64)), -Def(Tid(746, "%000002ea"), Attrs([Attr("address","0x700"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("#3",Imm(64)),Int(8,64)),Var("R30",Imm(64)),LittleEndian(),64)), -Def(Tid(750, "%000002ee"), Attrs([Attr("address","0x700"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("R31",Imm(64)), -Var("#3",Imm(64))), Def(Tid(756, "%000002f4"), - Attrs([Attr("address","0x704"), Attr("insn","mov x29, sp")]), - Var("R29",Imm(64)), Var("R31",Imm(64))), Def(Tid(764, "%000002fc"), - Attrs([Attr("address","0x708"), Attr("insn","str x19, [sp, #0x10]")]), - Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(16,64)),Var("R19",Imm(64)),LittleEndian(),64)), -Def(Tid(769, "%00000301"), Attrs([Attr("address","0x70C"), -Attr("insn","adrp x19, #69632")]), Var("R19",Imm(64)), Int(69632,64)), -Def(Tid(776, "%00000308"), Attrs([Attr("address","0x710"), -Attr("insn","ldrb w0, [x19, #0x18]")]), Var("R0",Imm(64)), -UNSIGNED(64,Load(Var("mem",Mem(64,8)),PLUS(Var("R19",Imm(64)),Int(24,64)),LittleEndian(),8)))]), -Jmps([Goto(Tid(783, "%0000030f"), Attrs([Attr("address","0x714"), -Attr("insn","cbnz w0, #0x28")]), - NEQ(Extract(31,0,Var("R0",Imm(64))),Int(0,32)), -Direct(Tid(781, "%0000030d"))), Goto(Tid(1_818, "%0000071a"), Attrs([]), - Int(1,1), Direct(Tid(1_077, "%00000435")))])), Blk(Tid(1_077, "%00000435"), - Attrs([Attr("address","0x718")]), Phis([]), -Defs([Def(Tid(1_080, "%00000438"), Attrs([Attr("address","0x718"), -Attr("insn","adrp x0, #65536")]), Var("R0",Imm(64)), Int(65536,64)), -Def(Tid(1_087, "%0000043f"), Attrs([Attr("address","0x71C"), -Attr("insn","ldr x0, [x0, #0xfe0]")]), Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(4064,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(1_093, "%00000445"), Attrs([Attr("address","0x720"), -Attr("insn","cbz x0, #0x10")]), EQ(Var("R0",Imm(64)),Int(0,64)), -Direct(Tid(1_091, "%00000443"))), Goto(Tid(1_819, "%0000071b"), Attrs([]), - Int(1,1), Direct(Tid(1_116, "%0000045c")))])), Blk(Tid(1_116, "%0000045c"), - Attrs([Attr("address","0x724")]), Phis([]), -Defs([Def(Tid(1_119, "%0000045f"), Attrs([Attr("address","0x724"), -Attr("insn","adrp x0, #69632")]), Var("R0",Imm(64)), Int(69632,64)), -Def(Tid(1_126, "%00000466"), Attrs([Attr("address","0x728"), -Attr("insn","ldr x0, [x0, #0x8]")]), Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(1_131, "%0000046b"), Attrs([Attr("address","0x72C"), -Attr("insn","bl #-0x12c")]), Var("R30",Imm(64)), Int(1840,64))]), -Jmps([Call(Tid(1_134, "%0000046e"), Attrs([Attr("address","0x72C"), -Attr("insn","bl #-0x12c")]), Int(1,1), -(Direct(Tid(1_816, "@__cxa_finalize")),Direct(Tid(1_091, "%00000443"))))])), -Blk(Tid(1_091, "%00000443"), Attrs([Attr("address","0x730")]), Phis([]), -Defs([Def(Tid(1_099, "%0000044b"), Attrs([Attr("address","0x730"), -Attr("insn","bl #-0xa0")]), Var("R30",Imm(64)), Int(1844,64))]), -Jmps([Call(Tid(1_101, "%0000044d"), Attrs([Attr("address","0x730"), -Attr("insn","bl #-0xa0")]), Int(1,1), -(Direct(Tid(1_830, "@deregister_tm_clones")),Direct(Tid(1_103, "%0000044f"))))])), -Blk(Tid(1_103, "%0000044f"), Attrs([Attr("address","0x734")]), Phis([]), -Defs([Def(Tid(1_106, "%00000452"), Attrs([Attr("address","0x734"), -Attr("insn","mov w0, #0x1")]), Var("R0",Imm(64)), Int(1,64)), -Def(Tid(1_114, "%0000045a"), Attrs([Attr("address","0x738"), -Attr("insn","strb w0, [x19, #0x18]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R19",Imm(64)),Int(24,64)),Extract(7,0,Var("R0",Imm(64))),LittleEndian(),8))]), -Jmps([Goto(Tid(1_820, "%0000071c"), Attrs([]), Int(1,1), -Direct(Tid(781, "%0000030d")))])), Blk(Tid(781, "%0000030d"), - Attrs([Attr("address","0x73C")]), Phis([]), Defs([Def(Tid(791, "%00000317"), - Attrs([Attr("address","0x73C"), Attr("insn","ldr x19, [sp, #0x10]")]), - Var("R19",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(16,64)),LittleEndian(),64)), -Def(Tid(798, "%0000031e"), Attrs([Attr("address","0x740"), -Attr("insn","ldp x29, x30, [sp], #0x20")]), Var("R29",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(803, "%00000323"), Attrs([Attr("address","0x740"), -Attr("insn","ldp x29, x30, [sp], #0x20")]), Var("R30",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(807, "%00000327"), Attrs([Attr("address","0x740"), -Attr("insn","ldp x29, x30, [sp], #0x20")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(32,64)))]), Jmps([Call(Tid(812, "%0000032c"), - Attrs([Attr("address","0x744"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), Sub(Tid(1_821, "@__libc_start_main"), - Attrs([Attr("c.proto","signed (*)(signed (*)(signed , char** , char** );* main, signed , char** , \nvoid* auxv)"), -Attr("address","0x5F0"), Attr("stub","()")]), "__libc_start_main", - Args([Arg(Tid(1_842, "%00000732"), - Attrs([Attr("c.layout","**[ : 64]"), -Attr("c.data","Top:u64 ptr ptr"), -Attr("c.type","signed (*)(signed , char** , char** );*")]), - Var("__libc_start_main_main",Imm(64)), Var("R0",Imm(64)), In()), -Arg(Tid(1_843, "%00000733"), Attrs([Attr("c.layout","[signed : 32]"), -Attr("c.data","Top:u32"), Attr("c.type","signed")]), - Var("__libc_start_main_arg2",Imm(32)), LOW(32,Var("R1",Imm(64))), In()), -Arg(Tid(1_844, "%00000734"), Attrs([Attr("c.layout","**[char : 8]"), -Attr("c.data","Top:u8 ptr ptr"), Attr("c.type","char**")]), - Var("__libc_start_main_arg3",Imm(64)), Var("R2",Imm(64)), Both()), -Arg(Tid(1_845, "%00000735"), Attrs([Attr("c.layout","*[ : 8]"), -Attr("c.data","{} ptr"), Attr("c.type","void*")]), - Var("__libc_start_main_auxv",Imm(64)), Var("R3",Imm(64)), Both()), -Arg(Tid(1_846, "%00000736"), Attrs([Attr("c.layout","[signed : 32]"), -Attr("c.data","Top:u32"), Attr("c.type","signed")]), - Var("__libc_start_main_result",Imm(32)), LOW(32,Var("R0",Imm(64))), -Out())]), Blks([Blk(Tid(563, "@__libc_start_main"), - Attrs([Attr("address","0x5F0")]), Phis([]), -Defs([Def(Tid(1_374, "%0000055e"), Attrs([Attr("address","0x5F0"), -Attr("insn","adrp x16, #65536")]), Var("R16",Imm(64)), Int(65536,64)), -Def(Tid(1_381, "%00000565"), Attrs([Attr("address","0x5F4"), -Attr("insn","ldr x17, [x16, #0xfa8]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(4008,64)),LittleEndian(),64)), -Def(Tid(1_387, "%0000056b"), Attrs([Attr("address","0x5F8"), -Attr("insn","add x16, x16, #0xfa8")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(4008,64)))]), Jmps([Call(Tid(1_392, "%00000570"), - Attrs([Attr("address","0x5FC"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), Sub(Tid(1_822, "@_fini"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x7E0")]), - "_fini", Args([Arg(Tid(1_847, "%00000737"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("_fini_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(31, "@_fini"), - Attrs([Attr("address","0x7E0")]), Phis([]), Defs([Def(Tid(37, "%00000025"), - Attrs([Attr("address","0x7E4"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("#0",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(18446744073709551600,64))), -Def(Tid(43, "%0000002b"), Attrs([Attr("address","0x7E4"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("#0",Imm(64)),Var("R29",Imm(64)),LittleEndian(),64)), -Def(Tid(49, "%00000031"), Attrs([Attr("address","0x7E4"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("#0",Imm(64)),Int(8,64)),Var("R30",Imm(64)),LittleEndian(),64)), -Def(Tid(53, "%00000035"), Attrs([Attr("address","0x7E4"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("R31",Imm(64)), -Var("#0",Imm(64))), Def(Tid(59, "%0000003b"), Attrs([Attr("address","0x7E8"), -Attr("insn","mov x29, sp")]), Var("R29",Imm(64)), Var("R31",Imm(64))), -Def(Tid(66, "%00000042"), Attrs([Attr("address","0x7EC"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R29",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(71, "%00000047"), Attrs([Attr("address","0x7EC"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R30",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(75, "%0000004b"), Attrs([Attr("address","0x7EC"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(16,64)))]), Jmps([Call(Tid(80, "%00000050"), - Attrs([Attr("address","0x7F0"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), Sub(Tid(1_823, "@_init"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x5B8")]), - "_init", Args([Arg(Tid(1_848, "%00000738"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("_init_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(1_619, "@_init"), - Attrs([Attr("address","0x5B8")]), Phis([]), -Defs([Def(Tid(1_625, "%00000659"), Attrs([Attr("address","0x5BC"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("#6",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(18446744073709551600,64))), -Def(Tid(1_631, "%0000065f"), Attrs([Attr("address","0x5BC"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("#6",Imm(64)),Var("R29",Imm(64)),LittleEndian(),64)), -Def(Tid(1_637, "%00000665"), Attrs([Attr("address","0x5BC"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("#6",Imm(64)),Int(8,64)),Var("R30",Imm(64)),LittleEndian(),64)), -Def(Tid(1_641, "%00000669"), Attrs([Attr("address","0x5BC"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("R31",Imm(64)), -Var("#6",Imm(64))), Def(Tid(1_647, "%0000066f"), - Attrs([Attr("address","0x5C0"), Attr("insn","mov x29, sp")]), - Var("R29",Imm(64)), Var("R31",Imm(64))), Def(Tid(1_652, "%00000674"), - Attrs([Attr("address","0x5C4"), Attr("insn","bl #0xb0")]), - Var("R30",Imm(64)), Int(1480,64))]), Jmps([Call(Tid(1_654, "%00000676"), - Attrs([Attr("address","0x5C4"), Attr("insn","bl #0xb0")]), Int(1,1), -(Direct(Tid(1_828, "@call_weak_fn")),Direct(Tid(1_656, "%00000678"))))])), -Blk(Tid(1_656, "%00000678"), Attrs([Attr("address","0x5C8")]), Phis([]), -Defs([Def(Tid(1_661, "%0000067d"), Attrs([Attr("address","0x5C8"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R29",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(1_666, "%00000682"), Attrs([Attr("address","0x5C8"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R30",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(1_670, "%00000686"), Attrs([Attr("address","0x5C8"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(16,64)))]), Jmps([Call(Tid(1_675, "%0000068b"), - Attrs([Attr("address","0x5CC"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), Sub(Tid(1_824, "@_start"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x640"), -Attr("stub","()"), Attr("entry-point","()")]), "_start", - Args([Arg(Tid(1_849, "%00000739"), Attrs([Attr("c.layout","[signed : 32]"), -Attr("c.data","Top:u32"), Attr("c.type","signed")]), - Var("_start_result",Imm(32)), LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(500, "@_start"), Attrs([Attr("address","0x640")]), Phis([]), -Defs([Def(Tid(505, "%000001f9"), Attrs([Attr("address","0x644"), -Attr("insn","mov x29, #0x0")]), Var("R29",Imm(64)), Int(0,64)), -Def(Tid(510, "%000001fe"), Attrs([Attr("address","0x648"), -Attr("insn","mov x30, #0x0")]), Var("R30",Imm(64)), Int(0,64)), -Def(Tid(516, "%00000204"), Attrs([Attr("address","0x64C"), -Attr("insn","mov x5, x0")]), Var("R5",Imm(64)), Var("R0",Imm(64))), -Def(Tid(523, "%0000020b"), Attrs([Attr("address","0x650"), -Attr("insn","ldr x1, [sp]")]), Var("R1",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(529, "%00000211"), Attrs([Attr("address","0x654"), -Attr("insn","add x2, sp, #0x8")]), Var("R2",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(8,64))), Def(Tid(535, "%00000217"), - Attrs([Attr("address","0x658"), Attr("insn","mov x6, sp")]), - Var("R6",Imm(64)), Var("R31",Imm(64))), Def(Tid(540, "%0000021c"), - Attrs([Attr("address","0x65C"), Attr("insn","adrp x0, #65536")]), - Var("R0",Imm(64)), Int(65536,64)), Def(Tid(547, "%00000223"), - Attrs([Attr("address","0x660"), Attr("insn","ldr x0, [x0, #0xff0]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(4080,64)),LittleEndian(),64)), -Def(Tid(552, "%00000228"), Attrs([Attr("address","0x664"), -Attr("insn","mov x3, #0x0")]), Var("R3",Imm(64)), Int(0,64)), -Def(Tid(557, "%0000022d"), Attrs([Attr("address","0x668"), -Attr("insn","mov x4, #0x0")]), Var("R4",Imm(64)), Int(0,64)), -Def(Tid(562, "%00000232"), Attrs([Attr("address","0x66C"), -Attr("insn","bl #-0x7c")]), Var("R30",Imm(64)), Int(1648,64))]), -Jmps([Call(Tid(565, "%00000235"), Attrs([Attr("address","0x66C"), -Attr("insn","bl #-0x7c")]), Int(1,1), -(Direct(Tid(1_821, "@__libc_start_main")),Direct(Tid(567, "%00000237"))))])), -Blk(Tid(567, "%00000237"), Attrs([Attr("address","0x670")]), Phis([]), -Defs([Def(Tid(570, "%0000023a"), Attrs([Attr("address","0x670"), -Attr("insn","bl #-0x40")]), Var("R30",Imm(64)), Int(1652,64))]), -Jmps([Call(Tid(573, "%0000023d"), Attrs([Attr("address","0x670"), -Attr("insn","bl #-0x40")]), Int(1,1), -(Direct(Tid(1_827, "@abort")),Direct(Tid(1_825, "%00000721"))))])), -Blk(Tid(1_825, "%00000721"), Attrs([]), Phis([]), Defs([]), -Jmps([Call(Tid(1_826, "%00000722"), Attrs([]), Int(1,1), -(Direct(Tid(1_828, "@call_weak_fn")),))]))])), Sub(Tid(1_827, "@abort"), - Attrs([Attr("noreturn","()"), Attr("c.proto","void (*)(void)"), -Attr("address","0x630"), Attr("stub","()")]), "abort", Args([]), -Blks([Blk(Tid(571, "@abort"), Attrs([Attr("address","0x630")]), Phis([]), -Defs([Def(Tid(1_462, "%000005b6"), Attrs([Attr("address","0x630"), -Attr("insn","adrp x16, #65536")]), Var("R16",Imm(64)), Int(65536,64)), -Def(Tid(1_469, "%000005bd"), Attrs([Attr("address","0x634"), -Attr("insn","ldr x17, [x16, #0xfc8]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(4040,64)),LittleEndian(),64)), -Def(Tid(1_475, "%000005c3"), Attrs([Attr("address","0x638"), -Attr("insn","add x16, x16, #0xfc8")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(4040,64)))]), Jmps([Call(Tid(1_480, "%000005c8"), - Attrs([Attr("address","0x63C"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), Sub(Tid(1_828, "@call_weak_fn"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x674")]), - "call_weak_fn", Args([Arg(Tid(1_850, "%0000073a"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("call_weak_fn_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(575, "@call_weak_fn"), - Attrs([Attr("address","0x674")]), Phis([]), Defs([Def(Tid(578, "%00000242"), - Attrs([Attr("address","0x674"), Attr("insn","adrp x0, #65536")]), - Var("R0",Imm(64)), Int(65536,64)), Def(Tid(585, "%00000249"), - Attrs([Attr("address","0x678"), Attr("insn","ldr x0, [x0, #0xfe8]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(4072,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(591, "%0000024f"), Attrs([Attr("address","0x67C"), -Attr("insn","cbz x0, #0x8")]), EQ(Var("R0",Imm(64)),Int(0,64)), -Direct(Tid(589, "%0000024d"))), Goto(Tid(1_829, "%00000725"), Attrs([]), - Int(1,1), Direct(Tid(1_196, "%000004ac")))])), Blk(Tid(589, "%0000024d"), - Attrs([Attr("address","0x684")]), Phis([]), Defs([]), -Jmps([Call(Tid(597, "%00000255"), Attrs([Attr("address","0x684"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))])), -Blk(Tid(1_196, "%000004ac"), Attrs([Attr("address","0x680")]), Phis([]), -Defs([]), Jmps([Goto(Tid(1_199, "%000004af"), Attrs([Attr("address","0x680"), -Attr("insn","b #-0x60")]), Int(1,1), -Direct(Tid(1_197, "@__gmon_start__")))])), Blk(Tid(1_197, "@__gmon_start__"), - Attrs([Attr("address","0x620")]), Phis([]), -Defs([Def(Tid(1_440, "%000005a0"), Attrs([Attr("address","0x620"), -Attr("insn","adrp x16, #65536")]), Var("R16",Imm(64)), Int(65536,64)), -Def(Tid(1_447, "%000005a7"), Attrs([Attr("address","0x624"), -Attr("insn","ldr x17, [x16, #0xfc0]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(4032,64)),LittleEndian(),64)), -Def(Tid(1_453, "%000005ad"), Attrs([Attr("address","0x628"), -Attr("insn","add x16, x16, #0xfc0")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(4032,64)))]), Jmps([Call(Tid(1_458, "%000005b2"), - Attrs([Attr("address","0x62C"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), -Sub(Tid(1_830, "@deregister_tm_clones"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x690")]), - "deregister_tm_clones", Args([Arg(Tid(1_851, "%0000073b"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("deregister_tm_clones_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(603, "@deregister_tm_clones"), - Attrs([Attr("address","0x690")]), Phis([]), Defs([Def(Tid(606, "%0000025e"), - Attrs([Attr("address","0x690"), Attr("insn","adrp x0, #69632")]), - Var("R0",Imm(64)), Int(69632,64)), Def(Tid(612, "%00000264"), - Attrs([Attr("address","0x694"), Attr("insn","add x0, x0, #0x18")]), - Var("R0",Imm(64)), PLUS(Var("R0",Imm(64)),Int(24,64))), -Def(Tid(617, "%00000269"), Attrs([Attr("address","0x698"), -Attr("insn","adrp x1, #69632")]), Var("R1",Imm(64)), Int(69632,64)), -Def(Tid(623, "%0000026f"), Attrs([Attr("address","0x69C"), -Attr("insn","add x1, x1, #0x18")]), Var("R1",Imm(64)), -PLUS(Var("R1",Imm(64)),Int(24,64))), Def(Tid(629, "%00000275"), - Attrs([Attr("address","0x6A0"), Attr("insn","cmp x1, x0")]), - Var("#1",Imm(64)), NOT(Var("R0",Imm(64)))), Def(Tid(634, "%0000027a"), - Attrs([Attr("address","0x6A0"), Attr("insn","cmp x1, x0")]), - Var("#2",Imm(64)), PLUS(Var("R1",Imm(64)),NOT(Var("R0",Imm(64))))), -Def(Tid(640, "%00000280"), Attrs([Attr("address","0x6A0"), -Attr("insn","cmp x1, x0")]), Var("VF",Imm(1)), -NEQ(SIGNED(65,PLUS(Var("#2",Imm(64)),Int(1,64))),PLUS(PLUS(SIGNED(65,Var("R1",Imm(64))),SIGNED(65,Var("#1",Imm(64)))),Int(1,65)))), -Def(Tid(646, "%00000286"), Attrs([Attr("address","0x6A0"), -Attr("insn","cmp x1, x0")]), Var("CF",Imm(1)), -NEQ(UNSIGNED(65,PLUS(Var("#2",Imm(64)),Int(1,64))),PLUS(PLUS(UNSIGNED(65,Var("R1",Imm(64))),UNSIGNED(65,Var("#1",Imm(64)))),Int(1,65)))), -Def(Tid(650, "%0000028a"), Attrs([Attr("address","0x6A0"), -Attr("insn","cmp x1, x0")]), Var("ZF",Imm(1)), -EQ(PLUS(Var("#2",Imm(64)),Int(1,64)),Int(0,64))), Def(Tid(654, "%0000028e"), - Attrs([Attr("address","0x6A0"), Attr("insn","cmp x1, x0")]), - Var("NF",Imm(1)), Extract(63,63,PLUS(Var("#2",Imm(64)),Int(1,64))))]), -Jmps([Goto(Tid(660, "%00000294"), Attrs([Attr("address","0x6A4"), -Attr("insn","b.eq #0x18")]), EQ(Var("ZF",Imm(1)),Int(1,1)), -Direct(Tid(658, "%00000292"))), Goto(Tid(1_831, "%00000727"), Attrs([]), - Int(1,1), Direct(Tid(1_166, "%0000048e")))])), Blk(Tid(1_166, "%0000048e"), - Attrs([Attr("address","0x6A8")]), Phis([]), -Defs([Def(Tid(1_169, "%00000491"), Attrs([Attr("address","0x6A8"), -Attr("insn","adrp x1, #65536")]), Var("R1",Imm(64)), Int(65536,64)), -Def(Tid(1_176, "%00000498"), Attrs([Attr("address","0x6AC"), -Attr("insn","ldr x1, [x1, #0xfd8]")]), Var("R1",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R1",Imm(64)),Int(4056,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(1_181, "%0000049d"), Attrs([Attr("address","0x6B0"), -Attr("insn","cbz x1, #0xc")]), EQ(Var("R1",Imm(64)),Int(0,64)), -Direct(Tid(658, "%00000292"))), Goto(Tid(1_832, "%00000728"), Attrs([]), - Int(1,1), Direct(Tid(1_185, "%000004a1")))])), Blk(Tid(658, "%00000292"), - Attrs([Attr("address","0x6BC")]), Phis([]), Defs([]), -Jmps([Call(Tid(666, "%0000029a"), Attrs([Attr("address","0x6BC"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))])), -Blk(Tid(1_185, "%000004a1"), Attrs([Attr("address","0x6B4")]), Phis([]), -Defs([Def(Tid(1_189, "%000004a5"), Attrs([Attr("address","0x6B4"), -Attr("insn","mov x16, x1")]), Var("R16",Imm(64)), Var("R1",Imm(64)))]), -Jmps([Call(Tid(1_194, "%000004aa"), Attrs([Attr("address","0x6B8"), -Attr("insn","br x16")]), Int(1,1), (Indirect(Var("R16",Imm(64))),))]))])), -Sub(Tid(1_833, "@frame_dummy"), Attrs([Attr("c.proto","signed (*)(void)"), -Attr("address","0x750")]), "frame_dummy", Args([Arg(Tid(1_852, "%0000073c"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("frame_dummy_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(818, "@frame_dummy"), - Attrs([Attr("address","0x750")]), Phis([]), Defs([]), -Jmps([Call(Tid(820, "%00000334"), Attrs([Attr("address","0x750"), -Attr("insn","b #-0x90")]), Int(1,1), -(Direct(Tid(1_836, "@register_tm_clones")),))]))])), Sub(Tid(1_834, "@main"), - Attrs([Attr("c.proto","signed (*)(signed argc, const char** argv)"), -Attr("address","0x754")]), "main", Args([Arg(Tid(1_853, "%0000073d"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("main_argc",Imm(32)), -LOW(32,Var("R0",Imm(64))), In()), Arg(Tid(1_854, "%0000073e"), - Attrs([Attr("c.layout","**[char : 8]"), Attr("c.data","Top:u8 ptr ptr"), -Attr("c.type"," const char**")]), Var("main_argv",Imm(64)), -Var("R1",Imm(64)), Both()), Arg(Tid(1_855, "%0000073f"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("main_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(822, "@main"), - Attrs([Attr("address","0x754")]), Phis([]), Defs([Def(Tid(826, "%0000033a"), - Attrs([Attr("address","0x754"), -Attr("insn","stp x29, x30, [sp, #-0x30]!")]), Var("#4",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(18446744073709551568,64))), -Def(Tid(832, "%00000340"), Attrs([Attr("address","0x754"), -Attr("insn","stp x29, x30, [sp, #-0x30]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("#4",Imm(64)),Var("R29",Imm(64)),LittleEndian(),64)), -Def(Tid(838, "%00000346"), Attrs([Attr("address","0x754"), -Attr("insn","stp x29, x30, [sp, #-0x30]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("#4",Imm(64)),Int(8,64)),Var("R30",Imm(64)),LittleEndian(),64)), -Def(Tid(842, "%0000034a"), Attrs([Attr("address","0x754"), -Attr("insn","stp x29, x30, [sp, #-0x30]!")]), Var("R31",Imm(64)), -Var("#4",Imm(64))), Def(Tid(848, "%00000350"), - Attrs([Attr("address","0x758"), Attr("insn","mov x29, sp")]), - Var("R29",Imm(64)), Var("R31",Imm(64))), Def(Tid(856, "%00000358"), - Attrs([Attr("address","0x75C"), Attr("insn","str w0, [sp, #0x1c]")]), - Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(28,64)),Extract(31,0,Var("R0",Imm(64))),LittleEndian(),32)), -Def(Tid(864, "%00000360"), Attrs([Attr("address","0x760"), -Attr("insn","str x1, [sp, #0x10]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(16,64)),Var("R1",Imm(64)),LittleEndian(),64)), -Def(Tid(869, "%00000365"), Attrs([Attr("address","0x764"), -Attr("insn","mov x0, #0x4")]), Var("R0",Imm(64)), Int(4,64)), -Def(Tid(874, "%0000036a"), Attrs([Attr("address","0x768"), -Attr("insn","bl #-0x158")]), Var("R30",Imm(64)), Int(1900,64))]), -Jmps([Call(Tid(877, "%0000036d"), Attrs([Attr("address","0x768"), -Attr("insn","bl #-0x158")]), Int(1,1), -(Direct(Tid(1_835, "@malloc")),Direct(Tid(879, "%0000036f"))))])), -Blk(Tid(879, "%0000036f"), Attrs([Attr("address","0x76C")]), Phis([]), -Defs([Def(Tid(885, "%00000375"), Attrs([Attr("address","0x76C"), -Attr("insn","str x0, [sp, #0x20]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(32,64)),Var("R0",Imm(64)),LittleEndian(),64)), -Def(Tid(890, "%0000037a"), Attrs([Attr("address","0x770"), -Attr("insn","mov x0, #0x4")]), Var("R0",Imm(64)), Int(4,64)), -Def(Tid(895, "%0000037f"), Attrs([Attr("address","0x774"), -Attr("insn","bl #-0x164")]), Var("R30",Imm(64)), Int(1912,64))]), -Jmps([Call(Tid(897, "%00000381"), Attrs([Attr("address","0x774"), -Attr("insn","bl #-0x164")]), Int(1,1), -(Direct(Tid(1_835, "@malloc")),Direct(Tid(899, "%00000383"))))])), -Blk(Tid(899, "%00000383"), Attrs([Attr("address","0x778")]), Phis([]), -Defs([Def(Tid(905, "%00000389"), Attrs([Attr("address","0x778"), -Attr("insn","str x0, [sp, #0x28]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(40,64)),Var("R0",Imm(64)),LittleEndian(),64)), -Def(Tid(910, "%0000038e"), Attrs([Attr("address","0x77C"), -Attr("insn","adrp x0, #69632")]), Var("R0",Imm(64)), Int(69632,64)), -Def(Tid(916, "%00000394"), Attrs([Attr("address","0x780"), -Attr("insn","add x0, x0, #0x10")]), Var("R0",Imm(64)), -PLUS(Var("R0",Imm(64)),Int(16,64))), Def(Tid(923, "%0000039b"), - Attrs([Attr("address","0x784"), Attr("insn","ldr w0, [x0]")]), - Var("R0",Imm(64)), -UNSIGNED(64,Load(Var("mem",Mem(64,8)),Var("R0",Imm(64)),LittleEndian(),32))), -Def(Tid(929, "%000003a1"), Attrs([Attr("address","0x788"), -Attr("insn","add w1, w0, #0x1")]), Var("R1",Imm(64)), -UNSIGNED(64,PLUS(Extract(31,0,Var("R0",Imm(64))),Int(1,32)))), -Def(Tid(936, "%000003a8"), Attrs([Attr("address","0x78C"), -Attr("insn","ldr x0, [sp, #0x20]")]), Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(32,64)),LittleEndian(),64)), -Def(Tid(944, "%000003b0"), Attrs([Attr("address","0x790"), -Attr("insn","str w1, [x0]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("R0",Imm(64)),Extract(31,0,Var("R1",Imm(64))),LittleEndian(),32)), -Def(Tid(949, "%000003b5"), Attrs([Attr("address","0x794"), -Attr("insn","adrp x0, #69632")]), Var("R0",Imm(64)), Int(69632,64)), -Def(Tid(955, "%000003bb"), Attrs([Attr("address","0x798"), -Attr("insn","add x0, x0, #0x14")]), Var("R0",Imm(64)), -PLUS(Var("R0",Imm(64)),Int(20,64))), Def(Tid(962, "%000003c2"), - Attrs([Attr("address","0x79C"), Attr("insn","ldr w0, [x0]")]), - Var("R0",Imm(64)), -UNSIGNED(64,Load(Var("mem",Mem(64,8)),Var("R0",Imm(64)),LittleEndian(),32))), -Def(Tid(968, "%000003c8"), Attrs([Attr("address","0x7A0"), -Attr("insn","add w1, w0, #0x2")]), Var("R1",Imm(64)), -UNSIGNED(64,PLUS(Extract(31,0,Var("R0",Imm(64))),Int(2,32)))), -Def(Tid(975, "%000003cf"), Attrs([Attr("address","0x7A4"), -Attr("insn","ldr x0, [sp, #0x28]")]), Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(40,64)),LittleEndian(),64)), -Def(Tid(983, "%000003d7"), Attrs([Attr("address","0x7A8"), -Attr("insn","str w1, [x0]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("R0",Imm(64)),Extract(31,0,Var("R1",Imm(64))),LittleEndian(),32)), -Def(Tid(990, "%000003de"), Attrs([Attr("address","0x7AC"), -Attr("insn","ldr x0, [sp, #0x20]")]), Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(32,64)),LittleEndian(),64)), -Def(Tid(997, "%000003e5"), Attrs([Attr("address","0x7B0"), -Attr("insn","ldr w1, [x0]")]), Var("R1",Imm(64)), -UNSIGNED(64,Load(Var("mem",Mem(64,8)),Var("R0",Imm(64)),LittleEndian(),32))), -Def(Tid(1_002, "%000003ea"), Attrs([Attr("address","0x7B4"), -Attr("insn","adrp x0, #69632")]), Var("R0",Imm(64)), Int(69632,64)), -Def(Tid(1_008, "%000003f0"), Attrs([Attr("address","0x7B8"), -Attr("insn","add x0, x0, #0x10")]), Var("R0",Imm(64)), -PLUS(Var("R0",Imm(64)),Int(16,64))), Def(Tid(1_016, "%000003f8"), - Attrs([Attr("address","0x7BC"), Attr("insn","str w1, [x0]")]), - Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("R0",Imm(64)),Extract(31,0,Var("R1",Imm(64))),LittleEndian(),32)), -Def(Tid(1_023, "%000003ff"), Attrs([Attr("address","0x7C0"), -Attr("insn","ldr x0, [sp, #0x28]")]), Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(40,64)),LittleEndian(),64)), -Def(Tid(1_030, "%00000406"), Attrs([Attr("address","0x7C4"), -Attr("insn","ldr w1, [x0]")]), Var("R1",Imm(64)), -UNSIGNED(64,Load(Var("mem",Mem(64,8)),Var("R0",Imm(64)),LittleEndian(),32))), -Def(Tid(1_035, "%0000040b"), Attrs([Attr("address","0x7C8"), -Attr("insn","adrp x0, #69632")]), Var("R0",Imm(64)), Int(69632,64)), -Def(Tid(1_041, "%00000411"), Attrs([Attr("address","0x7CC"), -Attr("insn","add x0, x0, #0x14")]), Var("R0",Imm(64)), -PLUS(Var("R0",Imm(64)),Int(20,64))), Def(Tid(1_049, "%00000419"), - Attrs([Attr("address","0x7D0"), Attr("insn","str w1, [x0]")]), - Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("R0",Imm(64)),Extract(31,0,Var("R1",Imm(64))),LittleEndian(),32)), -Def(Tid(1_054, "%0000041e"), Attrs([Attr("address","0x7D4"), -Attr("insn","mov w0, #0x0")]), Var("R0",Imm(64)), Int(0,64)), -Def(Tid(1_061, "%00000425"), Attrs([Attr("address","0x7D8"), -Attr("insn","ldp x29, x30, [sp], #0x30")]), Var("R29",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(1_066, "%0000042a"), Attrs([Attr("address","0x7D8"), -Attr("insn","ldp x29, x30, [sp], #0x30")]), Var("R30",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(1_070, "%0000042e"), Attrs([Attr("address","0x7D8"), -Attr("insn","ldp x29, x30, [sp], #0x30")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(48,64)))]), Jmps([Call(Tid(1_075, "%00000433"), - Attrs([Attr("address","0x7DC"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), Sub(Tid(1_835, "@malloc"), - Attrs([Attr("c.proto","void* (*)(unsigned long size)"), -Attr("address","0x610"), Attr("malloc","()"), Attr("stub","()")]), "malloc", - Args([Arg(Tid(1_856, "%00000740"), Attrs([Attr("alloc-size","()"), -Attr("c.layout","[unsigned long : 64]"), Attr("c.data","Top:u64"), -Attr("c.type","unsigned long")]), Var("malloc_size",Imm(64)), -Var("R0",Imm(64)), In()), Arg(Tid(1_857, "%00000741"), - Attrs([Attr("warn-unused","()"), Attr("c.layout","*[ : 8]"), -Attr("c.data","{} ptr"), Attr("c.type","void*")]), - Var("malloc_result",Imm(64)), Var("R0",Imm(64)), Out())]), -Blks([Blk(Tid(875, "@malloc"), Attrs([Attr("address","0x610")]), Phis([]), -Defs([Def(Tid(1_418, "%0000058a"), Attrs([Attr("address","0x610"), -Attr("insn","adrp x16, #65536")]), Var("R16",Imm(64)), Int(65536,64)), -Def(Tid(1_425, "%00000591"), Attrs([Attr("address","0x614"), -Attr("insn","ldr x17, [x16, #0xfb8]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(4024,64)),LittleEndian(),64)), -Def(Tid(1_431, "%00000597"), Attrs([Attr("address","0x618"), -Attr("insn","add x16, x16, #0xfb8")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(4024,64)))]), Jmps([Call(Tid(1_436, "%0000059c"), - Attrs([Attr("address","0x61C"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), -Sub(Tid(1_836, "@register_tm_clones"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x6C0")]), - "register_tm_clones", Args([Arg(Tid(1_858, "%00000742"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("register_tm_clones_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(668, "@register_tm_clones"), Attrs([Attr("address","0x6C0")]), - Phis([]), Defs([Def(Tid(671, "%0000029f"), Attrs([Attr("address","0x6C0"), -Attr("insn","adrp x0, #69632")]), Var("R0",Imm(64)), Int(69632,64)), -Def(Tid(677, "%000002a5"), Attrs([Attr("address","0x6C4"), -Attr("insn","add x0, x0, #0x18")]), Var("R0",Imm(64)), -PLUS(Var("R0",Imm(64)),Int(24,64))), Def(Tid(682, "%000002aa"), - Attrs([Attr("address","0x6C8"), Attr("insn","adrp x1, #69632")]), - Var("R1",Imm(64)), Int(69632,64)), Def(Tid(688, "%000002b0"), - Attrs([Attr("address","0x6CC"), Attr("insn","add x1, x1, #0x18")]), - Var("R1",Imm(64)), PLUS(Var("R1",Imm(64)),Int(24,64))), -Def(Tid(695, "%000002b7"), Attrs([Attr("address","0x6D0"), -Attr("insn","sub x1, x1, x0")]), Var("R1",Imm(64)), -PLUS(PLUS(Var("R1",Imm(64)),NOT(Var("R0",Imm(64)))),Int(1,64))), -Def(Tid(701, "%000002bd"), Attrs([Attr("address","0x6D4"), -Attr("insn","lsr x2, x1, #63")]), Var("R2",Imm(64)), -Concat(Int(0,63),Extract(63,63,Var("R1",Imm(64))))), -Def(Tid(708, "%000002c4"), Attrs([Attr("address","0x6D8"), -Attr("insn","add x1, x2, x1, asr #3")]), Var("R1",Imm(64)), -PLUS(Var("R2",Imm(64)),ARSHIFT(Var("R1",Imm(64)),Int(3,3)))), -Def(Tid(714, "%000002ca"), Attrs([Attr("address","0x6DC"), -Attr("insn","asr x1, x1, #1")]), Var("R1",Imm(64)), -SIGNED(64,Extract(63,1,Var("R1",Imm(64)))))]), -Jmps([Goto(Tid(720, "%000002d0"), Attrs([Attr("address","0x6E0"), -Attr("insn","cbz x1, #0x18")]), EQ(Var("R1",Imm(64)),Int(0,64)), -Direct(Tid(718, "%000002ce"))), Goto(Tid(1_837, "%0000072d"), Attrs([]), - Int(1,1), Direct(Tid(1_136, "%00000470")))])), Blk(Tid(1_136, "%00000470"), - Attrs([Attr("address","0x6E4")]), Phis([]), -Defs([Def(Tid(1_139, "%00000473"), Attrs([Attr("address","0x6E4"), -Attr("insn","adrp x2, #65536")]), Var("R2",Imm(64)), Int(65536,64)), -Def(Tid(1_146, "%0000047a"), Attrs([Attr("address","0x6E8"), -Attr("insn","ldr x2, [x2, #0xff8]")]), Var("R2",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R2",Imm(64)),Int(4088,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(1_151, "%0000047f"), Attrs([Attr("address","0x6EC"), -Attr("insn","cbz x2, #0xc")]), EQ(Var("R2",Imm(64)),Int(0,64)), -Direct(Tid(718, "%000002ce"))), Goto(Tid(1_838, "%0000072e"), Attrs([]), - Int(1,1), Direct(Tid(1_155, "%00000483")))])), Blk(Tid(718, "%000002ce"), - Attrs([Attr("address","0x6F8")]), Phis([]), Defs([]), -Jmps([Call(Tid(726, "%000002d6"), Attrs([Attr("address","0x6F8"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))])), -Blk(Tid(1_155, "%00000483"), Attrs([Attr("address","0x6F0")]), Phis([]), -Defs([Def(Tid(1_159, "%00000487"), Attrs([Attr("address","0x6F0"), -Attr("insn","mov x16, x2")]), Var("R16",Imm(64)), Var("R2",Imm(64)))]), -Jmps([Call(Tid(1_164, "%0000048c"), Attrs([Attr("address","0x6F4"), -Attr("insn","br x16")]), Int(1,1), -(Indirect(Var("R16",Imm(64))),))]))]))]))) \ No newline at end of file diff --git a/src/test/memory_regions/heap_pointer/gcc/heap_pointer.bir b/src/test/memory_regions/heap_pointer/gcc/heap_pointer.bir deleted file mode 100644 index 0757345ff..000000000 --- a/src/test/memory_regions/heap_pointer/gcc/heap_pointer.bir +++ /dev/null @@ -1,278 +0,0 @@ -0000072f: program -00000718: sub __cxa_finalize(__cxa_finalize_result) -00000730: __cxa_finalize_result :: out u32 = low:32[R0] - -0000046c: -00000574: R16 := 0x10000 -0000057b: R17 := mem[R16 + 0xFB0, el]:u64 -00000581: R16 := R16 + 0xFB0 -00000586: call R17 with noreturn - -00000719: sub __do_global_dtors_aux(__do_global_dtors_aux_result) -00000731: __do_global_dtors_aux_result :: out u32 = low:32[R0] - -000002da: -000002de: #3 := R31 - 0x20 -000002e4: mem := mem with [#3, el]:u64 <- R29 -000002ea: mem := mem with [#3 + 8, el]:u64 <- R30 -000002ee: R31 := #3 -000002f4: R29 := R31 -000002fc: mem := mem with [R31 + 0x10, el]:u64 <- R19 -00000301: R19 := 0x11000 -00000308: R0 := pad:64[mem[R19 + 0x18]] -0000030f: when 31:0[R0] <> 0 goto %0000030d -0000071a: goto %00000435 - -00000435: -00000438: R0 := 0x10000 -0000043f: R0 := mem[R0 + 0xFE0, el]:u64 -00000445: when R0 = 0 goto %00000443 -0000071b: goto %0000045c - -0000045c: -0000045f: R0 := 0x11000 -00000466: R0 := mem[R0 + 8, el]:u64 -0000046b: R30 := 0x730 -0000046e: call @__cxa_finalize with return %00000443 - -00000443: -0000044b: R30 := 0x734 -0000044d: call @deregister_tm_clones with return %0000044f - -0000044f: -00000452: R0 := 1 -0000045a: mem := mem with [R19 + 0x18] <- 7:0[R0] -0000071c: goto %0000030d - -0000030d: -00000317: R19 := mem[R31 + 0x10, el]:u64 -0000031e: R29 := mem[R31, el]:u64 -00000323: R30 := mem[R31 + 8, el]:u64 -00000327: R31 := R31 + 0x20 -0000032c: call R30 with noreturn - -0000071d: sub __libc_start_main(__libc_start_main_main, __libc_start_main_arg2, __libc_start_main_arg3, __libc_start_main_auxv, __libc_start_main_result) -00000732: __libc_start_main_main :: in u64 = R0 -00000733: __libc_start_main_arg2 :: in u32 = low:32[R1] -00000734: __libc_start_main_arg3 :: in out u64 = R2 -00000735: __libc_start_main_auxv :: in out u64 = R3 -00000736: __libc_start_main_result :: out u32 = low:32[R0] - -00000233: -0000055e: R16 := 0x10000 -00000565: R17 := mem[R16 + 0xFA8, el]:u64 -0000056b: R16 := R16 + 0xFA8 -00000570: call R17 with noreturn - -0000071e: sub _fini(_fini_result) -00000737: _fini_result :: out u32 = low:32[R0] - -0000001f: -00000025: #0 := R31 - 0x10 -0000002b: mem := mem with [#0, el]:u64 <- R29 -00000031: mem := mem with [#0 + 8, el]:u64 <- R30 -00000035: R31 := #0 -0000003b: R29 := R31 -00000042: R29 := mem[R31, el]:u64 -00000047: R30 := mem[R31 + 8, el]:u64 -0000004b: R31 := R31 + 0x10 -00000050: call R30 with noreturn - -0000071f: sub _init(_init_result) -00000738: _init_result :: out u32 = low:32[R0] - -00000653: -00000659: #6 := R31 - 0x10 -0000065f: mem := mem with [#6, el]:u64 <- R29 -00000665: mem := mem with [#6 + 8, el]:u64 <- R30 -00000669: R31 := #6 -0000066f: R29 := R31 -00000674: R30 := 0x5C8 -00000676: call @call_weak_fn with return %00000678 - -00000678: -0000067d: R29 := mem[R31, el]:u64 -00000682: R30 := mem[R31 + 8, el]:u64 -00000686: R31 := R31 + 0x10 -0000068b: call R30 with noreturn - -00000720: sub _start(_start_result) -00000739: _start_result :: out u32 = low:32[R0] - -000001f4: -000001f9: R29 := 0 -000001fe: R30 := 0 -00000204: R5 := R0 -0000020b: R1 := mem[R31, el]:u64 -00000211: R2 := R31 + 8 -00000217: R6 := R31 -0000021c: R0 := 0x10000 -00000223: R0 := mem[R0 + 0xFF0, el]:u64 -00000228: R3 := 0 -0000022d: R4 := 0 -00000232: R30 := 0x670 -00000235: call @__libc_start_main with return %00000237 - -00000237: -0000023a: R30 := 0x674 -0000023d: call @abort with return %00000721 - -00000721: -00000722: call @call_weak_fn with noreturn - -00000723: sub abort() - - -0000023b: -000005b6: R16 := 0x10000 -000005bd: R17 := mem[R16 + 0xFC8, el]:u64 -000005c3: R16 := R16 + 0xFC8 -000005c8: call R17 with noreturn - -00000724: sub call_weak_fn(call_weak_fn_result) -0000073a: call_weak_fn_result :: out u32 = low:32[R0] - -0000023f: -00000242: R0 := 0x10000 -00000249: R0 := mem[R0 + 0xFE8, el]:u64 -0000024f: when R0 = 0 goto %0000024d -00000725: goto %000004ac - -0000024d: -00000255: call R30 with noreturn - -000004ac: -000004af: goto @__gmon_start__ - -000004ad: -000005a0: R16 := 0x10000 -000005a7: R17 := mem[R16 + 0xFC0, el]:u64 -000005ad: R16 := R16 + 0xFC0 -000005b2: call R17 with noreturn - -00000726: sub deregister_tm_clones(deregister_tm_clones_result) -0000073b: deregister_tm_clones_result :: out u32 = low:32[R0] - -0000025b: -0000025e: R0 := 0x11000 -00000264: R0 := R0 + 0x18 -00000269: R1 := 0x11000 -0000026f: R1 := R1 + 0x18 -00000275: #1 := ~R0 -0000027a: #2 := R1 + ~R0 -00000280: VF := extend:65[#2 + 1] <> extend:65[R1] + extend:65[#1] + 1 -00000286: CF := pad:65[#2 + 1] <> pad:65[R1] + pad:65[#1] + 1 -0000028a: ZF := #2 + 1 = 0 -0000028e: NF := 63:63[#2 + 1] -00000294: when ZF goto %00000292 -00000727: goto %0000048e - -0000048e: -00000491: R1 := 0x10000 -00000498: R1 := mem[R1 + 0xFD8, el]:u64 -0000049d: when R1 = 0 goto %00000292 -00000728: goto %000004a1 - -00000292: -0000029a: call R30 with noreturn - -000004a1: -000004a5: R16 := R1 -000004aa: call R16 with noreturn - -00000729: sub frame_dummy(frame_dummy_result) -0000073c: frame_dummy_result :: out u32 = low:32[R0] - -00000332: -00000334: call @register_tm_clones with noreturn - -0000072a: sub main(main_argc, main_argv, main_result) -0000073d: main_argc :: in u32 = low:32[R0] -0000073e: main_argv :: in out u64 = R1 -0000073f: main_result :: out u32 = low:32[R0] - -00000336: -0000033a: #4 := R31 - 0x30 -00000340: mem := mem with [#4, el]:u64 <- R29 -00000346: mem := mem with [#4 + 8, el]:u64 <- R30 -0000034a: R31 := #4 -00000350: R29 := R31 -00000358: mem := mem with [R31 + 0x1C, el]:u32 <- 31:0[R0] -00000360: mem := mem with [R31 + 0x10, el]:u64 <- R1 -00000365: R0 := 4 -0000036a: R30 := 0x76C -0000036d: call @malloc with return %0000036f - -0000036f: -00000375: mem := mem with [R31 + 0x20, el]:u64 <- R0 -0000037a: R0 := 4 -0000037f: R30 := 0x778 -00000381: call @malloc with return %00000383 - -00000383: -00000389: mem := mem with [R31 + 0x28, el]:u64 <- R0 -0000038e: R0 := 0x11000 -00000394: R0 := R0 + 0x10 -0000039b: R0 := pad:64[mem[R0, el]:u32] -000003a1: R1 := pad:64[31:0[R0] + 1] -000003a8: R0 := mem[R31 + 0x20, el]:u64 -000003b0: mem := mem with [R0, el]:u32 <- 31:0[R1] -000003b5: R0 := 0x11000 -000003bb: R0 := R0 + 0x14 -000003c2: R0 := pad:64[mem[R0, el]:u32] -000003c8: R1 := pad:64[31:0[R0] + 2] -000003cf: R0 := mem[R31 + 0x28, el]:u64 -000003d7: mem := mem with [R0, el]:u32 <- 31:0[R1] -000003de: R0 := mem[R31 + 0x20, el]:u64 -000003e5: R1 := pad:64[mem[R0, el]:u32] -000003ea: R0 := 0x11000 -000003f0: R0 := R0 + 0x10 -000003f8: mem := mem with [R0, el]:u32 <- 31:0[R1] -000003ff: R0 := mem[R31 + 0x28, el]:u64 -00000406: R1 := pad:64[mem[R0, el]:u32] -0000040b: R0 := 0x11000 -00000411: R0 := R0 + 0x14 -00000419: mem := mem with [R0, el]:u32 <- 31:0[R1] -0000041e: R0 := 0 -00000425: R29 := mem[R31, el]:u64 -0000042a: R30 := mem[R31 + 8, el]:u64 -0000042e: R31 := R31 + 0x30 -00000433: call R30 with noreturn - -0000072b: sub malloc(malloc_size, malloc_result) -00000740: malloc_size :: in u64 = R0 -00000741: malloc_result :: out u64 = R0 - -0000036b: -0000058a: R16 := 0x10000 -00000591: R17 := mem[R16 + 0xFB8, el]:u64 -00000597: R16 := R16 + 0xFB8 -0000059c: call R17 with noreturn - -0000072c: sub register_tm_clones(register_tm_clones_result) -00000742: register_tm_clones_result :: out u32 = low:32[R0] - -0000029c: -0000029f: R0 := 0x11000 -000002a5: R0 := R0 + 0x18 -000002aa: R1 := 0x11000 -000002b0: R1 := R1 + 0x18 -000002b7: R1 := R1 + ~R0 + 1 -000002bd: R2 := 0.63:63[R1] -000002c4: R1 := R2 + (R1 ~>> 3) -000002ca: R1 := extend:64[63:1[R1]] -000002d0: when R1 = 0 goto %000002ce -0000072d: goto %00000470 - -00000470: -00000473: R2 := 0x10000 -0000047a: R2 := mem[R2 + 0xFF8, el]:u64 -0000047f: when R2 = 0 goto %000002ce -0000072e: goto %00000483 - -000002ce: -000002d6: call R30 with noreturn - -00000483: -00000487: R16 := R2 -0000048c: call R16 with noreturn diff --git a/src/test/memory_regions/heap_pointer/gcc/heap_pointer.md5sum b/src/test/memory_regions/heap_pointer/gcc/heap_pointer.md5sum new file mode 100644 index 000000000..0b7589575 --- /dev/null +++ b/src/test/memory_regions/heap_pointer/gcc/heap_pointer.md5sum @@ -0,0 +1,4 @@ +2fc029b184150edce20439bb2576bfa8 memory_regions/heap_pointer/gcc/a.out +6bbb6cd6c15fd9a63bbc3e78b07fcd94 memory_regions/heap_pointer/gcc/heap_pointer.relf +39d7301d295b35551eae2b3d4e41db02 memory_regions/heap_pointer/gcc/heap_pointer.adt +a1b0ce1f2597e50beef2a7f1feda3c73 memory_regions/heap_pointer/gcc/heap_pointer.bir diff --git a/src/test/memory_regions/heap_pointer/gcc/heap_pointer.relf b/src/test/memory_regions/heap_pointer/gcc/heap_pointer.relf deleted file mode 100644 index 4cb62fab7..000000000 --- a/src/test/memory_regions/heap_pointer/gcc/heap_pointer.relf +++ /dev/null @@ -1,125 +0,0 @@ - -Relocation section '.rela.dyn' at offset 0x480 contains 8 entries: - Offset Info Type Symbol's Value Symbol's Name + Addend -0000000000010d90 0000000000000403 R_AARCH64_RELATIVE 750 -0000000000010d98 0000000000000403 R_AARCH64_RELATIVE 700 -0000000000010ff0 0000000000000403 R_AARCH64_RELATIVE 754 -0000000000011008 0000000000000403 R_AARCH64_RELATIVE 11008 -0000000000010fd8 0000000400000401 R_AARCH64_GLOB_DAT 0000000000000000 _ITM_deregisterTMCloneTable + 0 -0000000000010fe0 0000000500000401 R_AARCH64_GLOB_DAT 0000000000000000 __cxa_finalize@GLIBC_2.17 + 0 -0000000000010fe8 0000000700000401 R_AARCH64_GLOB_DAT 0000000000000000 __gmon_start__ + 0 -0000000000010ff8 0000000900000401 R_AARCH64_GLOB_DAT 0000000000000000 _ITM_registerTMCloneTable + 0 - -Relocation section '.rela.plt' at offset 0x540 contains 5 entries: - Offset Info Type Symbol's Value Symbol's Name + Addend -0000000000010fa8 0000000300000402 R_AARCH64_JUMP_SLOT 0000000000000000 __libc_start_main@GLIBC_2.34 + 0 -0000000000010fb0 0000000500000402 R_AARCH64_JUMP_SLOT 0000000000000000 __cxa_finalize@GLIBC_2.17 + 0 -0000000000010fb8 0000000600000402 R_AARCH64_JUMP_SLOT 0000000000000000 malloc@GLIBC_2.17 + 0 -0000000000010fc0 0000000700000402 R_AARCH64_JUMP_SLOT 0000000000000000 __gmon_start__ + 0 -0000000000010fc8 0000000800000402 R_AARCH64_JUMP_SLOT 0000000000000000 abort@GLIBC_2.17 + 0 - -Symbol table '.dynsym' contains 10 entries: - Num: Value Size Type Bind Vis Ndx Name - 0: 0000000000000000 0 NOTYPE LOCAL DEFAULT UND - 1: 00000000000005b8 0 SECTION LOCAL DEFAULT 11 .init - 2: 0000000000011000 0 SECTION LOCAL DEFAULT 22 .data - 3: 0000000000000000 0 FUNC GLOBAL DEFAULT UND __libc_start_main@GLIBC_2.34 (2) - 4: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_deregisterTMCloneTable - 5: 0000000000000000 0 FUNC WEAK DEFAULT UND __cxa_finalize@GLIBC_2.17 (3) - 6: 0000000000000000 0 FUNC GLOBAL DEFAULT UND malloc@GLIBC_2.17 (3) - 7: 0000000000000000 0 NOTYPE WEAK DEFAULT UND __gmon_start__ - 8: 0000000000000000 0 FUNC GLOBAL DEFAULT UND abort@GLIBC_2.17 (3) - 9: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_registerTMCloneTable - -Symbol table '.symtab' contains 90 entries: - Num: Value Size Type Bind Vis Ndx Name - 0: 0000000000000000 0 NOTYPE LOCAL DEFAULT UND - 1: 0000000000000238 0 SECTION LOCAL DEFAULT 1 .interp - 2: 0000000000000254 0 SECTION LOCAL DEFAULT 2 .note.gnu.build-id - 3: 0000000000000278 0 SECTION LOCAL DEFAULT 3 .note.ABI-tag - 4: 0000000000000298 0 SECTION LOCAL DEFAULT 4 .gnu.hash - 5: 00000000000002b8 0 SECTION LOCAL DEFAULT 5 .dynsym - 6: 00000000000003a8 0 SECTION LOCAL DEFAULT 6 .dynstr - 7: 000000000000043c 0 SECTION LOCAL DEFAULT 7 .gnu.version - 8: 0000000000000450 0 SECTION LOCAL DEFAULT 8 .gnu.version_r - 9: 0000000000000480 0 SECTION LOCAL DEFAULT 9 .rela.dyn - 10: 0000000000000540 0 SECTION LOCAL DEFAULT 10 .rela.plt - 11: 00000000000005b8 0 SECTION LOCAL DEFAULT 11 .init - 12: 00000000000005d0 0 SECTION LOCAL DEFAULT 12 .plt - 13: 0000000000000640 0 SECTION LOCAL DEFAULT 13 .text - 14: 00000000000007e0 0 SECTION LOCAL DEFAULT 14 .fini - 15: 00000000000007f4 0 SECTION LOCAL DEFAULT 15 .rodata - 16: 00000000000007f8 0 SECTION LOCAL DEFAULT 16 .eh_frame_hdr - 17: 0000000000000838 0 SECTION LOCAL DEFAULT 17 .eh_frame - 18: 0000000000010d90 0 SECTION LOCAL DEFAULT 18 .init_array - 19: 0000000000010d98 0 SECTION LOCAL DEFAULT 19 .fini_array - 20: 0000000000010da0 0 SECTION LOCAL DEFAULT 20 .dynamic - 21: 0000000000010f90 0 SECTION LOCAL DEFAULT 21 .got - 22: 0000000000011000 0 SECTION LOCAL DEFAULT 22 .data - 23: 0000000000011018 0 SECTION LOCAL DEFAULT 23 .bss - 24: 0000000000000000 0 SECTION LOCAL DEFAULT 24 .comment - 25: 0000000000000000 0 FILE LOCAL DEFAULT ABS Scrt1.o - 26: 0000000000000278 0 NOTYPE LOCAL DEFAULT 3 $d - 27: 0000000000000278 32 OBJECT LOCAL DEFAULT 3 __abi_tag - 28: 0000000000000640 0 NOTYPE LOCAL DEFAULT 13 $x - 29: 000000000000084c 0 NOTYPE LOCAL DEFAULT 17 $d - 30: 00000000000007f4 0 NOTYPE LOCAL DEFAULT 15 $d - 31: 0000000000000000 0 FILE LOCAL DEFAULT ABS crti.o - 32: 0000000000000674 0 NOTYPE LOCAL DEFAULT 13 $x - 33: 0000000000000674 20 FUNC LOCAL DEFAULT 13 call_weak_fn - 34: 00000000000005b8 0 NOTYPE LOCAL DEFAULT 11 $x - 35: 00000000000007e0 0 NOTYPE LOCAL DEFAULT 14 $x - 36: 0000000000000000 0 FILE LOCAL DEFAULT ABS crtn.o - 37: 00000000000005c8 0 NOTYPE LOCAL DEFAULT 11 $x - 38: 00000000000007ec 0 NOTYPE LOCAL DEFAULT 14 $x - 39: 0000000000000000 0 FILE LOCAL DEFAULT ABS crtstuff.c - 40: 0000000000000690 0 NOTYPE LOCAL DEFAULT 13 $x - 41: 0000000000000690 0 FUNC LOCAL DEFAULT 13 deregister_tm_clones - 42: 00000000000006c0 0 FUNC LOCAL DEFAULT 13 register_tm_clones - 43: 0000000000011008 0 NOTYPE LOCAL DEFAULT 22 $d - 44: 0000000000000700 0 FUNC LOCAL DEFAULT 13 __do_global_dtors_aux - 45: 0000000000011018 1 OBJECT LOCAL DEFAULT 23 completed.0 - 46: 0000000000010d98 0 NOTYPE LOCAL DEFAULT 19 $d - 47: 0000000000010d98 0 OBJECT LOCAL DEFAULT 19 __do_global_dtors_aux_fini_array_entry - 48: 0000000000000750 0 FUNC LOCAL DEFAULT 13 frame_dummy - 49: 0000000000010d90 0 NOTYPE LOCAL DEFAULT 18 $d - 50: 0000000000010d90 0 OBJECT LOCAL DEFAULT 18 __frame_dummy_init_array_entry - 51: 0000000000000860 0 NOTYPE LOCAL DEFAULT 17 $d - 52: 0000000000011018 0 NOTYPE LOCAL DEFAULT 23 $d - 53: 0000000000000000 0 FILE LOCAL DEFAULT ABS heap_pointer.c - 54: 0000000000011010 0 NOTYPE LOCAL DEFAULT 22 $d - 55: 0000000000000754 0 NOTYPE LOCAL DEFAULT 13 $x - 56: 00000000000008c0 0 NOTYPE LOCAL DEFAULT 17 $d - 57: 0000000000000000 0 FILE LOCAL DEFAULT ABS crtstuff.c - 58: 00000000000008e0 0 NOTYPE LOCAL DEFAULT 17 $d - 59: 00000000000008e0 0 OBJECT LOCAL DEFAULT 17 __FRAME_END__ - 60: 0000000000000000 0 FILE LOCAL DEFAULT ABS - 61: 0000000000010da0 0 OBJECT LOCAL DEFAULT ABS _DYNAMIC - 62: 00000000000007f8 0 NOTYPE LOCAL DEFAULT 16 __GNU_EH_FRAME_HDR - 63: 0000000000010fd0 0 OBJECT LOCAL DEFAULT ABS _GLOBAL_OFFSET_TABLE_ - 64: 00000000000005d0 0 NOTYPE LOCAL DEFAULT 12 $x - 65: 0000000000000000 0 FUNC GLOBAL DEFAULT UND __libc_start_main@GLIBC_2.34 - 66: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_deregisterTMCloneTable - 67: 0000000000011000 0 NOTYPE WEAK DEFAULT 22 data_start - 68: 0000000000011018 0 NOTYPE GLOBAL DEFAULT 23 __bss_start__ - 69: 0000000000000000 0 FUNC WEAK DEFAULT UND __cxa_finalize@GLIBC_2.17 - 70: 0000000000011020 0 NOTYPE GLOBAL DEFAULT 23 _bss_end__ - 71: 0000000000011018 0 NOTYPE GLOBAL DEFAULT 22 _edata - 72: 0000000000011010 4 OBJECT GLOBAL DEFAULT 22 x - 73: 00000000000007e0 0 FUNC GLOBAL HIDDEN 14 _fini - 74: 0000000000011020 0 NOTYPE GLOBAL DEFAULT 23 __bss_end__ - 75: 0000000000000000 0 FUNC GLOBAL DEFAULT UND malloc@GLIBC_2.17 - 76: 0000000000011000 0 NOTYPE GLOBAL DEFAULT 22 __data_start - 77: 0000000000000000 0 NOTYPE WEAK DEFAULT UND __gmon_start__ - 78: 0000000000011008 0 OBJECT GLOBAL HIDDEN 22 __dso_handle - 79: 0000000000000000 0 FUNC GLOBAL DEFAULT UND abort@GLIBC_2.17 - 80: 00000000000007f4 4 OBJECT GLOBAL DEFAULT 15 _IO_stdin_used - 81: 0000000000011020 0 NOTYPE GLOBAL DEFAULT 23 _end - 82: 0000000000000640 52 FUNC GLOBAL DEFAULT 13 _start - 83: 0000000000011020 0 NOTYPE GLOBAL DEFAULT 23 __end__ - 84: 0000000000011014 4 OBJECT GLOBAL DEFAULT 22 y - 85: 0000000000011018 0 NOTYPE GLOBAL DEFAULT 23 __bss_start - 86: 0000000000000754 140 FUNC GLOBAL DEFAULT 13 main - 87: 0000000000011018 0 OBJECT GLOBAL HIDDEN 22 __TMC_END__ - 88: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_registerTMCloneTable - 89: 00000000000005b8 0 FUNC GLOBAL HIDDEN 11 _init diff --git a/src/test/memory_regions/heap_pointer/gcc_pic/heap_pointer.adt b/src/test/memory_regions/heap_pointer/gcc_pic/heap_pointer.adt deleted file mode 100644 index 2c417a717..000000000 --- a/src/test/memory_regions/heap_pointer/gcc_pic/heap_pointer.adt +++ /dev/null @@ -1,619 +0,0 @@ -Project(Attrs([Attr("filename","\"a.out\""), -Attr("image-specification","(declare abi (name str))\n(declare arch (name str))\n(declare base-address (addr int))\n(declare bias (off int))\n(declare bits (size int))\n(declare code-region (addr int) (size int) (off int))\n(declare code-start (addr int))\n(declare entry-point (addr int))\n(declare external-reference (addr int) (name str))\n(declare format (name str))\n(declare is-executable (flag bool))\n(declare is-little-endian (flag bool))\n(declare llvm:base-address (addr int))\n(declare llvm:code-entry (name str) (off int) (size int))\n(declare llvm:coff-import-library (name str))\n(declare llvm:coff-virtual-section-header (name str) (addr int) (size int))\n(declare llvm:elf-program-header (name str) (off int) (size int))\n(declare llvm:elf-program-header-flags (name str) (ld bool) (r bool) \n (w bool) (x bool))\n(declare llvm:elf-virtual-program-header (name str) (addr int) (size int))\n(declare llvm:entry-point (addr int))\n(declare llvm:macho-symbol (name str) (value int))\n(declare llvm:name-reference (at int) (name str))\n(declare llvm:relocation (at int) (addr int))\n(declare llvm:section-entry (name str) (addr int) (size int) (off int))\n(declare llvm:section-flags (name str) (r bool) (w bool) (x bool))\n(declare llvm:segment-command (name str) (off int) (size int))\n(declare llvm:segment-command-flags (name str) (r bool) (w bool) (x bool))\n(declare llvm:symbol-entry (name str) (addr int) (size int) (off int)\n (value int))\n(declare llvm:virtual-segment-command (name str) (addr int) (size int))\n(declare mapped (addr int) (size int) (off int))\n(declare named-region (addr int) (size int) (name str))\n(declare named-symbol (addr int) (name str))\n(declare require (name str))\n(declare section (addr int) (size int))\n(declare segment (addr int) (size int) (r bool) (w bool) (x bool))\n(declare subarch (name str))\n(declare symbol-chunk (addr int) (size int) (root int))\n(declare symbol-value (addr int) (value int))\n(declare system (name str))\n(declare vendor (name str))\n\n(abi unknown)\n(arch aarch64)\n(base-address 0)\n(bias 0)\n(bits 64)\n(code-region 2080 20 2080)\n(code-region 1664 416 1664)\n(code-region 1536 112 1536)\n(code-region 1512 24 1512)\n(code-start 1716)\n(code-start 1664)\n(code-start 1940)\n(entry-point 1664)\n(external-reference 69576 _ITM_deregisterTMCloneTable)\n(external-reference 69584 __cxa_finalize)\n(external-reference 69600 __gmon_start__)\n(external-reference 69624 _ITM_registerTMCloneTable)\n(external-reference 69528 __libc_start_main)\n(external-reference 69536 __cxa_finalize)\n(external-reference 69544 malloc)\n(external-reference 69552 __gmon_start__)\n(external-reference 69560 abort)\n(format elf)\n(is-executable true)\n(is-little-endian true)\n(llvm:base-address 0)\n(llvm:code-entry abort 0 0)\n(llvm:code-entry malloc 0 0)\n(llvm:code-entry __cxa_finalize 0 0)\n(llvm:code-entry __libc_start_main 0 0)\n(llvm:code-entry _init 1512 0)\n(llvm:code-entry main 1940 140)\n(llvm:code-entry _start 1664 52)\n(llvm:code-entry abort@GLIBC_2.17 0 0)\n(llvm:code-entry malloc@GLIBC_2.17 0 0)\n(llvm:code-entry _fini 2080 0)\n(llvm:code-entry __cxa_finalize@GLIBC_2.17 0 0)\n(llvm:code-entry __libc_start_main@GLIBC_2.34 0 0)\n(llvm:code-entry frame_dummy 1936 0)\n(llvm:code-entry __do_global_dtors_aux 1856 0)\n(llvm:code-entry register_tm_clones 1792 0)\n(llvm:code-entry deregister_tm_clones 1744 0)\n(llvm:code-entry call_weak_fn 1716 20)\n(llvm:code-entry .fini 2080 20)\n(llvm:code-entry .text 1664 416)\n(llvm:code-entry .plt 1536 112)\n(llvm:code-entry .init 1512 24)\n(llvm:elf-program-header 08 3456 640)\n(llvm:elf-program-header 07 0 0)\n(llvm:elf-program-header 06 2104 60)\n(llvm:elf-program-header 05 596 68)\n(llvm:elf-program-header 04 3472 496)\n(llvm:elf-program-header 03 3456 664)\n(llvm:elf-program-header 02 0 2340)\n(llvm:elf-program-header 01 568 27)\n(llvm:elf-program-header 00 64 504)\n(llvm:elf-program-header-flags 08 false true false false)\n(llvm:elf-program-header-flags 07 false true true false)\n(llvm:elf-program-header-flags 06 false true false false)\n(llvm:elf-program-header-flags 05 false true false false)\n(llvm:elf-program-header-flags 04 false true true false)\n(llvm:elf-program-header-flags 03 true true true false)\n(llvm:elf-program-header-flags 02 true true false true)\n(llvm:elf-program-header-flags 01 false true false false)\n(llvm:elf-program-header-flags 00 false true false false)\n(llvm:elf-virtual-program-header 08 68992 640)\n(llvm:elf-virtual-program-header 07 0 0)\n(llvm:elf-virtual-program-header 06 2104 60)\n(llvm:elf-virtual-program-header 05 596 68)\n(llvm:elf-virtual-program-header 04 69008 496)\n(llvm:elf-virtual-program-header 03 68992 672)\n(llvm:elf-virtual-program-header 02 0 2340)\n(llvm:elf-virtual-program-header 01 568 27)\n(llvm:elf-virtual-program-header 00 64 504)\n(llvm:entry-point 1664)\n(llvm:name-reference 69560 abort)\n(llvm:name-reference 69552 __gmon_start__)\n(llvm:name-reference 69544 malloc)\n(llvm:name-reference 69536 __cxa_finalize)\n(llvm:name-reference 69528 __libc_start_main)\n(llvm:name-reference 69624 _ITM_registerTMCloneTable)\n(llvm:name-reference 69600 __gmon_start__)\n(llvm:name-reference 69584 __cxa_finalize)\n(llvm:name-reference 69576 _ITM_deregisterTMCloneTable)\n(llvm:section-entry .shstrtab 0 250 6894)\n(llvm:section-entry .strtab 0 566 6328)\n(llvm:section-entry .symtab 0 2160 4168)\n(llvm:section-entry .comment 0 43 4120)\n(llvm:section-entry .bss 69656 8 4120)\n(llvm:section-entry .data 69632 24 4096)\n(llvm:section-entry .got 69504 128 3968)\n(llvm:section-entry .dynamic 69008 496 3472)\n(llvm:section-entry .fini_array 69000 8 3464)\n(llvm:section-entry .init_array 68992 8 3456)\n(llvm:section-entry .eh_frame 2168 172 2168)\n(llvm:section-entry .eh_frame_hdr 2104 60 2104)\n(llvm:section-entry .rodata 2100 4 2100)\n(llvm:section-entry .fini 2080 20 2080)\n(llvm:section-entry .text 1664 416 1664)\n(llvm:section-entry .plt 1536 112 1536)\n(llvm:section-entry .init 1512 24 1512)\n(llvm:section-entry .rela.plt 1392 120 1392)\n(llvm:section-entry .rela.dyn 1152 240 1152)\n(llvm:section-entry .gnu.version_r 1104 48 1104)\n(llvm:section-entry .gnu.version 1084 20 1084)\n(llvm:section-entry .dynstr 936 148 936)\n(llvm:section-entry .dynsym 696 240 696)\n(llvm:section-entry .gnu.hash 664 28 664)\n(llvm:section-entry .note.ABI-tag 632 32 632)\n(llvm:section-entry .note.gnu.build-id 596 36 596)\n(llvm:section-entry .interp 568 27 568)\n(llvm:section-flags .shstrtab true false false)\n(llvm:section-flags .strtab true false false)\n(llvm:section-flags .symtab true false false)\n(llvm:section-flags .comment true false false)\n(llvm:section-flags .bss true true false)\n(llvm:section-flags .data true true false)\n(llvm:section-flags .got true true false)\n(llvm:section-flags .dynamic true true false)\n(llvm:section-flags .fini_array true true false)\n(llvm:section-flags .init_array true true false)\n(llvm:section-flags .eh_frame true false false)\n(llvm:section-flags .eh_frame_hdr true false false)\n(llvm:section-flags .rodata true false false)\n(llvm:section-flags .fini true false true)\n(llvm:section-flags .text true false true)\n(llvm:section-flags .plt true false true)\n(llvm:section-flags .init true false true)\n(llvm:section-flags .rela.plt true false false)\n(llvm:section-flags .rela.dyn true false false)\n(llvm:section-flags .gnu.version_r true false false)\n(llvm:section-flags .gnu.version true false false)\n(llvm:section-flags .dynstr true false false)\n(llvm:section-flags .dynsym true false false)\n(llvm:section-flags .gnu.hash true false false)\n(llvm:section-flags .note.ABI-tag true false false)\n(llvm:section-flags .note.gnu.build-id true false false)\n(llvm:section-flags .interp true false false)\n(llvm:symbol-entry abort 0 0 0 0)\n(llvm:symbol-entry malloc 0 0 0 0)\n(llvm:symbol-entry __cxa_finalize 0 0 0 0)\n(llvm:symbol-entry __libc_start_main 0 0 0 0)\n(llvm:symbol-entry _init 1512 0 1512 1512)\n(llvm:symbol-entry main 1940 140 1940 1940)\n(llvm:symbol-entry _start 1664 52 1664 1664)\n(llvm:symbol-entry abort@GLIBC_2.17 0 0 0 0)\n(llvm:symbol-entry malloc@GLIBC_2.17 0 0 0 0)\n(llvm:symbol-entry _fini 2080 0 2080 2080)\n(llvm:symbol-entry __cxa_finalize@GLIBC_2.17 0 0 0 0)\n(llvm:symbol-entry __libc_start_main@GLIBC_2.34 0 0 0 0)\n(llvm:symbol-entry frame_dummy 1936 0 1936 1936)\n(llvm:symbol-entry __do_global_dtors_aux 1856 0 1856 1856)\n(llvm:symbol-entry register_tm_clones 1792 0 1792 1792)\n(llvm:symbol-entry deregister_tm_clones 1744 0 1744 1744)\n(llvm:symbol-entry call_weak_fn 1716 20 1716 1716)\n(mapped 0 2340 0)\n(mapped 68992 664 3456)\n(named-region 0 2340 02)\n(named-region 68992 672 03)\n(named-region 568 27 .interp)\n(named-region 596 36 .note.gnu.build-id)\n(named-region 632 32 .note.ABI-tag)\n(named-region 664 28 .gnu.hash)\n(named-region 696 240 .dynsym)\n(named-region 936 148 .dynstr)\n(named-region 1084 20 .gnu.version)\n(named-region 1104 48 .gnu.version_r)\n(named-region 1152 240 .rela.dyn)\n(named-region 1392 120 .rela.plt)\n(named-region 1512 24 .init)\n(named-region 1536 112 .plt)\n(named-region 1664 416 .text)\n(named-region 2080 20 .fini)\n(named-region 2100 4 .rodata)\n(named-region 2104 60 .eh_frame_hdr)\n(named-region 2168 172 .eh_frame)\n(named-region 68992 8 .init_array)\n(named-region 69000 8 .fini_array)\n(named-region 69008 496 .dynamic)\n(named-region 69504 128 .got)\n(named-region 69632 24 .data)\n(named-region 69656 8 .bss)\n(named-region 0 43 .comment)\n(named-region 0 2160 .symtab)\n(named-region 0 566 .strtab)\n(named-region 0 250 .shstrtab)\n(named-symbol 1716 call_weak_fn)\n(named-symbol 1744 deregister_tm_clones)\n(named-symbol 1792 register_tm_clones)\n(named-symbol 1856 __do_global_dtors_aux)\n(named-symbol 1936 frame_dummy)\n(named-symbol 0 __libc_start_main@GLIBC_2.34)\n(named-symbol 0 __cxa_finalize@GLIBC_2.17)\n(named-symbol 2080 _fini)\n(named-symbol 0 malloc@GLIBC_2.17)\n(named-symbol 0 abort@GLIBC_2.17)\n(named-symbol 1664 _start)\n(named-symbol 1940 main)\n(named-symbol 1512 _init)\n(named-symbol 0 __libc_start_main)\n(named-symbol 0 __cxa_finalize)\n(named-symbol 0 malloc)\n(named-symbol 0 abort)\n(require libc.so.6)\n(section 568 27)\n(section 596 36)\n(section 632 32)\n(section 664 28)\n(section 696 240)\n(section 936 148)\n(section 1084 20)\n(section 1104 48)\n(section 1152 240)\n(section 1392 120)\n(section 1512 24)\n(section 1536 112)\n(section 1664 416)\n(section 2080 20)\n(section 2100 4)\n(section 2104 60)\n(section 2168 172)\n(section 68992 8)\n(section 69000 8)\n(section 69008 496)\n(section 69504 128)\n(section 69632 24)\n(section 69656 8)\n(section 0 43)\n(section 0 2160)\n(section 0 566)\n(section 0 250)\n(segment 0 2340 true false true)\n(segment 68992 672 true true false)\n(subarch v8)\n(symbol-chunk 1716 20 1716)\n(symbol-chunk 1664 52 1664)\n(symbol-chunk 1940 140 1940)\n(symbol-value 1716 1716)\n(symbol-value 1744 1744)\n(symbol-value 1792 1792)\n(symbol-value 1856 1856)\n(symbol-value 1936 1936)\n(symbol-value 2080 2080)\n(symbol-value 1664 1664)\n(symbol-value 1940 1940)\n(symbol-value 1512 1512)\n(symbol-value 0 0)\n(system \"\")\n(vendor \"\")\n"), -Attr("abi-name","\"aarch64-linux-gnu-elf\"")]), -Sections([Section(".shstrtab", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x80\x06\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xe8\x1b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x38\x00\x09\x00\x40\x00\x1c\x00\x1b\x00\x06\x00\x00\x00\x04\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x04\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x24\x09\x00\x00\x00\x00\x00\x00\x24\x09\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x01\x00\x00\x00\x06\x00\x00\x00\x80\x0d\x00\x00\x00\x00\x00\x00\x80\x0d"), -Section(".strtab", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x80\x06\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xe8\x1b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x38\x00\x09\x00\x40\x00\x1c\x00\x1b\x00\x06\x00\x00\x00\x04\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x04\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x24\x09\x00\x00\x00\x00\x00\x00\x24\x09\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x01\x00\x00\x00\x06\x00\x00\x00\x80\x0d\x00\x00\x00\x00\x00\x00\x80\x0d\x01\x00\x00\x00\x00\x00\x80\x0d\x01\x00\x00\x00\x00\x00\x98\x02\x00\x00\x00\x00\x00\x00\xa0\x02\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x02\x00\x00\x00\x06\x00\x00\x00\x90\x0d\x00\x00\x00\x00\x00\x00\x90\x0d\x01\x00\x00\x00\x00\x00\x90\x0d\x01\x00\x00\x00\x00\x00\xf0\x01\x00\x00\x00\x00\x00\x00\xf0\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x04\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x50\xe5\x74\x64\x04\x00\x00\x00\x38\x08\x00\x00\x00\x00\x00\x00\x38\x08\x00\x00\x00\x00\x00\x00\x38\x08\x00\x00\x00\x00\x00\x00\x3c\x00\x00\x00\x00\x00\x00\x00\x3c\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x51\xe5\x74\x64\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x52\xe5\x74\x64\x04\x00\x00\x00\x80\x0d\x00\x00\x00\x00\x00\x00\x80\x0d\x01\x00\x00\x00\x00\x00\x80\x0d\x01\x00\x00\x00\x00\x00\x80\x02\x00\x00\x00\x00\x00\x00\x80\x02\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00"), -Section(".symtab", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x80\x06\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xe8\x1b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x38\x00\x09\x00\x40\x00\x1c\x00\x1b\x00\x06\x00\x00\x00\x04\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x04\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x24\x09\x00\x00\x00\x00\x00\x00\x24\x09\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x01\x00\x00\x00\x06\x00\x00\x00\x80\x0d\x00\x00\x00\x00\x00\x00\x80\x0d\x01\x00\x00\x00\x00\x00\x80\x0d\x01\x00\x00\x00\x00\x00\x98\x02\x00\x00\x00\x00\x00\x00\xa0\x02\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x02\x00\x00\x00\x06\x00\x00\x00\x90\x0d\x00\x00\x00\x00\x00\x00\x90\x0d\x01\x00\x00\x00\x00\x00\x90\x0d\x01\x00\x00\x00\x00\x00\xf0\x01\x00\x00\x00\x00\x00\x00\xf0\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x04\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x50\xe5\x74\x64\x04\x00\x00\x00\x38\x08\x00\x00\x00\x00\x00\x00\x38\x08\x00\x00\x00\x00\x00\x00\x38\x08\x00\x00\x00\x00\x00\x00\x3c\x00\x00\x00\x00\x00\x00\x00\x3c\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x51\xe5\x74\x64\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x52\xe5\x74\x64\x04\x00\x00\x00\x80\x0d\x00\x00\x00\x00\x00\x00\x80\x0d\x01\x00\x00\x00\x00\x00\x80\x0d\x01\x00\x00\x00\x00\x00\x80\x02\x00\x00\x00\x00\x00\x00\x80\x02\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x2f\x6c\x69\x62\x2f\x6c\x64\x2d\x6c\x69\x6e\x75\x78\x2d\x61\x61\x72\x63\x68\x36\x34\x2e\x73\x6f\x2e\x31\x00\x00\x04\x00\x00\x00\x14\x00\x00\x00\x03\x00\x00\x00\x47\x4e\x55\x00\xa9\xfe\x9e\xdd\x2d\x7f\xef\x10\x88\xa6\xd0\x07\x1b\x09\x37\xff\xde\xe7\x5d\xde\x04\x00\x00\x00\x10\x00\x00\x00\x01\x00\x00\x00\x47\x4e\x55\x00\x00\x00\x00\x00\x03\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x01\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x0b\x00\xe8\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x16\x00\x00\x10\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x17\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4f\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x22\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6b\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x29\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5f\x5f\x63\x78\x61\x5f\x66\x69\x6e\x61\x6c\x69\x7a\x65\x00\x6d\x61\x6c\x6c\x6f\x63\x00\x5f\x5f\x6c\x69\x62\x63\x5f\x73\x74\x61\x72\x74\x5f\x6d\x61\x69\x6e\x00\x61\x62\x6f\x72\x74\x00\x6c\x69\x62\x63\x2e\x73\x6f\x2e\x36\x00\x47\x4c\x49\x42\x43\x5f\x32\x2e\x31\x37\x00\x47\x4c\x49\x42\x43\x5f\x32\x2e\x33\x34\x00\x5f\x49\x54\x4d\x5f\x64\x65\x72\x65\x67\x69\x73\x74\x65\x72\x54\x4d\x43\x6c\x6f\x6e\x65\x54\x61\x62\x6c\x65\x00\x5f\x5f\x67\x6d\x6f\x6e\x5f\x73\x74\x61\x72\x74\x5f\x5f\x00\x5f\x49\x54\x4d\x5f\x72\x65\x67\x69\x73\x74\x65\x72\x54\x4d\x43\x6c\x6f\x6e\x65\x54\x61\x62\x6c\x65\x00\x00\x00\x00\x00\x00\x00\x02\x00\x01\x00\x03\x00\x03\x00\x01\x00\x03\x00\x01\x00\x01\x00\x02\x00\x2f\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x97\x91\x96\x06\x00\x00\x03\x00\x39\x00\x00\x00\x10\x00\x00\x00\xb4\x91\x96\x06\x00\x00\x02\x00\x44\x00\x00\x00\x00\x00\x00\x00\x80\x0d\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x90\x07\x00\x00\x00\x00\x00\x00\x88\x0d\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x40\x07\x00\x00\x00\x00\x00\x00\xd8\x0f\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x10\x10\x01\x00\x00\x00\x00\x00\xe8\x0f\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x14\x10\x01\x00\x00\x00\x00\x00\xf0\x0f\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x94\x07\x00\x00\x00\x00\x00\x00\x08\x10\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x08\x10\x01\x00\x00\x00\x00\x00\xc8\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xd0\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe0\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xf8\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x09\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x98\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xa0\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xa8\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xb0\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xb8\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1f\x20\x03\xd5\xfd\x7b\xbf\xa9\xfd\x03\x00\x91\x30\x00\x00\x94\xfd\x7b\xc1\xa8\xc0\x03\x5f\xd6\xf0\x7b\xbf\xa9\x90\x00\x00\x90\x11\xca\x47\xf9\x10\x42\x3e\x91\x20\x02\x1f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x90\x00\x00\x90\x11\xce\x47\xf9\x10\x62\x3e\x91\x20\x02\x1f\xd6\x90\x00\x00\x90\x11\xd2\x47\xf9\x10\x82\x3e\x91\x20\x02\x1f\xd6\x90\x00\x00\x90\x11\xd6\x47\xf9\x10\xa2\x3e\x91\x20\x02\x1f\xd6\x90\x00\x00\x90\x11\xda\x47\xf9\x10\xc2\x3e\x91\x20\x02\x1f\xd6\x90\x00\x00\x90\x11\xde\x47\xf9\x10\xe2\x3e\x91\x20\x02\x1f\xd6\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1f\x20\x03\xd5\x1d\x00\x80\xd2\x1e\x00\x80\xd2\xe5\x03\x00\xaa\xe1\x03\x40\xf9\xe2\x23\x00\x91\xe6\x03\x00\x91\x80\x00\x00\x90\x00\xf8\x47\xf9\x03\x00\x80\xd2\x04\x00\x80\xd2\xdd\xff\xff\x97\xec\xff\xff\x97\x80\x00\x00\x90\x00\xf0\x47\xf9\x40\x00\x00\xb4\xe4\xff\xff\x17\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x80\x00\x00\xb0\x00\x60\x00\x91\x81\x00\x00\xb0\x21\x60\x00\x91\x3f\x00\x00\xeb\xc0\x00\x00\x54\x81\x00\x00\x90\x21\xe4\x47\xf9\x61\x00\x00\xb4\xf0\x03\x01\xaa\x00\x02\x1f\xd6\xc0\x03\x5f\xd6\x80\x00\x00\xb0\x00\x60\x00\x91\x81\x00\x00\xb0\x21\x60\x00\x91\x21\x00\x00\xcb\x22\xfc\x7f\xd3\x41\x0c\x81\x8b\x21\xfc\x41\x93\xc1\x00\x00\xb4\x82\x00\x00\x90\x42\xfc\x47\xf9\x62\x00\x00\xb4\xf0\x03\x02\xaa\x00\x02\x1f\xd6\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\xfd\x7b\xbe\xa9\xfd\x03\x00\x91\xf3\x0b\x00\xf9\x93\x00\x00\xb0\x60\x62\x40\x39\x40\x01\x00\x35\x80\x00\x00\x90\x00\xe8\x47\xf9\x80\x00\x00\xb4\x80\x00\x00\xb0\x00\x04\x40\xf9\xb1\xff\xff\x97\xd8\xff\xff\x97\x20\x00\x80\x52\x60\x62\x00\x39\xf3\x0b\x40\xf9\xfd\x7b\xc2\xa8\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\xdc\xff\xff\x17\xfd\x7b\xbd\xa9\xfd\x03\x00\x91\xe0\x1f\x00\xb9\xe1\x0b\x00\xf9\x80\x00\x80\xd2\xa6\xff\xff\x97\xe0\x13\x00\xf9\x80\x00\x80\xd2\xa3\xff\xff\x97\xe0\x17\x00\xf9\x80\x00\x00\x90\x00\xec\x47\xf9\x00\x00\x40\xb9\x01\x04\x00\x11\xe0\x13\x40\xf9\x01\x00\x00\xb9\x80\x00\x00\x90\x00\xf4\x47\xf9\x00\x00\x40\xb9\x01\x08\x00\x11\xe0\x17\x40\xf9\x01\x00\x00\xb9\xe0\x13\x40\xf9\x01\x00\x40\xb9\x80\x00\x00\x90\x00\xec\x47\xf9\x01\x00\x00\xb9\xe0\x17\x40\xf9\x01\x00\x40\xb9\x80\x00\x00\x90\x00\xf4\x47\xf9\x01\x00\x00\xb9\x00\x00\x80\x52\xfd\x7b\xc3\xa8\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\xfd\x7b\xbf\xa9\xfd\x03\x00\x91\xfd\x7b\xc1\xa8\xc0\x03\x5f\xd6\x01\x00\x02\x00\x01\x1b\x03\x3b\x3c\x00\x00\x00\x06\x00\x00\x00\x48\xfe\xff\xff\x54\x00\x00\x00\x98\xfe\xff\xff\x68\x00\x00\x00\xc8\xfe\xff\xff\x7c\x00\x00\x00\x08\xff\xff\xff\x90\x00\x00\x00\x58\xff\xff\xff\xb4\x00\x00\x00\x5c\xff\xff\xff"), -Section(".comment", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x80\x06\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xe8\x1b\x00"), -Section(".interp", 0x238, "\x2f\x6c\x69\x62\x2f\x6c\x64\x2d\x6c\x69\x6e\x75\x78\x2d\x61\x61\x72\x63\x68\x36\x34\x2e\x73\x6f\x2e\x31\x00"), -Section(".note.gnu.build-id", 0x254, "\x04\x00\x00\x00\x14\x00\x00\x00\x03\x00\x00\x00\x47\x4e\x55\x00\xa9\xfe\x9e\xdd\x2d\x7f\xef\x10\x88\xa6\xd0\x07\x1b\x09\x37\xff\xde\xe7\x5d\xde"), -Section(".note.ABI-tag", 0x278, "\x04\x00\x00\x00\x10\x00\x00\x00\x01\x00\x00\x00\x47\x4e\x55\x00\x00\x00\x00\x00\x03\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00"), -Section(".gnu.hash", 0x298, "\x01\x00\x00\x00\x01\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".dynsym", 0x2B8, "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x0b\x00\xe8\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x16\x00\x00\x10\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x17\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4f\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x22\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6b\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x29\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".dynstr", 0x3A8, "\x00\x5f\x5f\x63\x78\x61\x5f\x66\x69\x6e\x61\x6c\x69\x7a\x65\x00\x6d\x61\x6c\x6c\x6f\x63\x00\x5f\x5f\x6c\x69\x62\x63\x5f\x73\x74\x61\x72\x74\x5f\x6d\x61\x69\x6e\x00\x61\x62\x6f\x72\x74\x00\x6c\x69\x62\x63\x2e\x73\x6f\x2e\x36\x00\x47\x4c\x49\x42\x43\x5f\x32\x2e\x31\x37\x00\x47\x4c\x49\x42\x43\x5f\x32\x2e\x33\x34\x00\x5f\x49\x54\x4d\x5f\x64\x65\x72\x65\x67\x69\x73\x74\x65\x72\x54\x4d\x43\x6c\x6f\x6e\x65\x54\x61\x62\x6c\x65\x00\x5f\x5f\x67\x6d\x6f\x6e\x5f\x73\x74\x61\x72\x74\x5f\x5f\x00\x5f\x49\x54\x4d\x5f\x72\x65\x67\x69\x73\x74\x65\x72\x54\x4d\x43\x6c\x6f\x6e\x65\x54\x61\x62\x6c\x65\x00"), -Section(".gnu.version", 0x43C, "\x00\x00\x00\x00\x00\x00\x02\x00\x01\x00\x03\x00\x03\x00\x01\x00\x03\x00\x01\x00"), -Section(".gnu.version_r", 0x450, "\x01\x00\x02\x00\x2f\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x97\x91\x96\x06\x00\x00\x03\x00\x39\x00\x00\x00\x10\x00\x00\x00\xb4\x91\x96\x06\x00\x00\x02\x00\x44\x00\x00\x00\x00\x00\x00\x00"), -Section(".rela.dyn", 0x480, "\x80\x0d\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x90\x07\x00\x00\x00\x00\x00\x00\x88\x0d\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x40\x07\x00\x00\x00\x00\x00\x00\xd8\x0f\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x10\x10\x01\x00\x00\x00\x00\x00\xe8\x0f\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x14\x10\x01\x00\x00\x00\x00\x00\xf0\x0f\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x94\x07\x00\x00\x00\x00\x00\x00\x08\x10\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x08\x10\x01\x00\x00\x00\x00\x00\xc8\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xd0\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe0\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xf8\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x09\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".rela.plt", 0x570, "\x98\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xa0\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xa8\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xb0\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xb8\x0f\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".init", 0x5E8, "\x1f\x20\x03\xd5\xfd\x7b\xbf\xa9\xfd\x03\x00\x91\x30\x00\x00\x94\xfd\x7b\xc1\xa8\xc0\x03\x5f\xd6"), -Section(".plt", 0x600, "\xf0\x7b\xbf\xa9\x90\x00\x00\x90\x11\xca\x47\xf9\x10\x42\x3e\x91\x20\x02\x1f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x90\x00\x00\x90\x11\xce\x47\xf9\x10\x62\x3e\x91\x20\x02\x1f\xd6\x90\x00\x00\x90\x11\xd2\x47\xf9\x10\x82\x3e\x91\x20\x02\x1f\xd6\x90\x00\x00\x90\x11\xd6\x47\xf9\x10\xa2\x3e\x91\x20\x02\x1f\xd6\x90\x00\x00\x90\x11\xda\x47\xf9\x10\xc2\x3e\x91\x20\x02\x1f\xd6\x90\x00\x00\x90\x11\xde\x47\xf9\x10\xe2\x3e\x91\x20\x02\x1f\xd6"), -Section(".fini", 0x820, "\x1f\x20\x03\xd5\xfd\x7b\xbf\xa9\xfd\x03\x00\x91\xfd\x7b\xc1\xa8\xc0\x03\x5f\xd6"), -Section(".rodata", 0x834, "\x01\x00\x02\x00"), -Section(".eh_frame_hdr", 0x838, "\x01\x1b\x03\x3b\x3c\x00\x00\x00\x06\x00\x00\x00\x48\xfe\xff\xff\x54\x00\x00\x00\x98\xfe\xff\xff\x68\x00\x00\x00\xc8\xfe\xff\xff\x7c\x00\x00\x00\x08\xff\xff\xff\x90\x00\x00\x00\x58\xff\xff\xff\xb4\x00\x00\x00\x5c\xff\xff\xff\xc8\x00\x00\x00"), -Section(".eh_frame", 0x878, "\x10\x00\x00\x00\x00\x00\x00\x00\x01\x7a\x52\x00\x04\x78\x1e\x01\x1b\x0c\x1f\x00\x10\x00\x00\x00\x18\x00\x00\x00\xec\xfd\xff\xff\x34\x00\x00\x00\x00\x41\x07\x1e\x10\x00\x00\x00\x2c\x00\x00\x00\x28\xfe\xff\xff\x30\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x40\x00\x00\x00\x44\xfe\xff\xff\x3c\x00\x00\x00\x00\x00\x00\x00\x20\x00\x00\x00\x54\x00\x00\x00\x70\xfe\xff\xff\x48\x00\x00\x00\x00\x41\x0e\x20\x9d\x04\x9e\x03\x42\x93\x02\x4e\xde\xdd\xd3\x0e\x00\x00\x00\x00\x10\x00\x00\x00\x78\x00\x00\x00\x9c\xfe\xff\xff\x04\x00\x00\x00\x00\x00\x00\x00\x1c\x00\x00\x00\x8c\x00\x00\x00\x8c\xfe\xff\xff\x8c\x00\x00\x00\x00\x41\x0e\x30\x9d\x06\x9e\x05\x61\xde\xdd\x0e\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".fini_array", 0x10D88, "\x40\x07\x00\x00\x00\x00\x00\x00"), -Section(".dynamic", 0x10D90, "\x01\x00\x00\x00\x00\x00\x00\x00\x2f\x00\x00\x00\x00\x00\x00\x00\x0c\x00\x00\x00\x00\x00\x00\x00\xe8\x05\x00\x00\x00\x00\x00\x00\x0d\x00\x00\x00\x00\x00\x00\x00\x20\x08\x00\x00\x00\x00\x00\x00\x19\x00\x00\x00\x00\x00\x00\x00\x80\x0d\x01\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x1a\x00\x00\x00\x00\x00\x00\x00\x88\x0d\x01\x00\x00\x00\x00\x00\x1c\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\xf5\xfe\xff\x6f\x00\x00\x00\x00\x98\x02\x00\x00\x00\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\xa8\x03\x00\x00\x00\x00\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\xb8\x02\x00\x00\x00\x00\x00\x00\x0a\x00\x00\x00\x00\x00\x00\x00\x94\x00\x00\x00\x00\x00\x00\x00\x0b\x00\x00\x00\x00\x00\x00\x00\x18\x00\x00\x00\x00\x00\x00\x00\x15\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x80\x0f\x01\x00\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x78\x00\x00\x00\x00\x00\x00\x00\x14\x00\x00\x00\x00\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x17\x00\x00\x00\x00\x00\x00\x00\x70\x05\x00\x00\x00\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x80\x04\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\xf0\x00\x00\x00\x00\x00\x00\x00\x09\x00\x00\x00\x00\x00\x00\x00\x18\x00\x00\x00\x00\x00\x00\x00\x1e\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\xfb\xff\xff\x6f\x00\x00\x00\x00\x01\x00\x00\x08\x00\x00\x00\x00\xfe\xff\xff\x6f\x00\x00\x00\x00\x50\x04\x00\x00\x00\x00\x00\x00\xff\xff\xff\x6f\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\xf0\xff\xff\x6f\x00\x00\x00\x00\x3c\x04\x00\x00\x00\x00\x00\x00\xf9\xff\xff\x6f\x00\x00\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".got", 0x10F80, "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x06\x00\x00\x00\x00\x00\x00\x90\x0d\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x10\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x14\x10\x01\x00\x00\x00\x00\x00\x94\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".data", 0x11000, "\x00\x00\x00\x00\x00\x00\x00\x00\x08\x10\x01\x00\x00\x00\x00\x00\x05\x00\x00\x00\x08\x00\x00\x00"), -Section(".init_array", 0x10D80, "\x90\x07\x00\x00\x00\x00\x00\x00"), -Section(".text", 0x680, "\x1f\x20\x03\xd5\x1d\x00\x80\xd2\x1e\x00\x80\xd2\xe5\x03\x00\xaa\xe1\x03\x40\xf9\xe2\x23\x00\x91\xe6\x03\x00\x91\x80\x00\x00\x90\x00\xf8\x47\xf9\x03\x00\x80\xd2\x04\x00\x80\xd2\xdd\xff\xff\x97\xec\xff\xff\x97\x80\x00\x00\x90\x00\xf0\x47\xf9\x40\x00\x00\xb4\xe4\xff\xff\x17\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x80\x00\x00\xb0\x00\x60\x00\x91\x81\x00\x00\xb0\x21\x60\x00\x91\x3f\x00\x00\xeb\xc0\x00\x00\x54\x81\x00\x00\x90\x21\xe4\x47\xf9\x61\x00\x00\xb4\xf0\x03\x01\xaa\x00\x02\x1f\xd6\xc0\x03\x5f\xd6\x80\x00\x00\xb0\x00\x60\x00\x91\x81\x00\x00\xb0\x21\x60\x00\x91\x21\x00\x00\xcb\x22\xfc\x7f\xd3\x41\x0c\x81\x8b\x21\xfc\x41\x93\xc1\x00\x00\xb4\x82\x00\x00\x90\x42\xfc\x47\xf9\x62\x00\x00\xb4\xf0\x03\x02\xaa\x00\x02\x1f\xd6\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\xfd\x7b\xbe\xa9\xfd\x03\x00\x91\xf3\x0b\x00\xf9\x93\x00\x00\xb0\x60\x62\x40\x39\x40\x01\x00\x35\x80\x00\x00\x90\x00\xe8\x47\xf9\x80\x00\x00\xb4\x80\x00\x00\xb0\x00\x04\x40\xf9\xb1\xff\xff\x97\xd8\xff\xff\x97\x20\x00\x80\x52\x60\x62\x00\x39\xf3\x0b\x40\xf9\xfd\x7b\xc2\xa8\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\xdc\xff\xff\x17\xfd\x7b\xbd\xa9\xfd\x03\x00\x91\xe0\x1f\x00\xb9\xe1\x0b\x00\xf9\x80\x00\x80\xd2\xa6\xff\xff\x97\xe0\x13\x00\xf9\x80\x00\x80\xd2\xa3\xff\xff\x97\xe0\x17\x00\xf9\x80\x00\x00\x90\x00\xec\x47\xf9\x00\x00\x40\xb9\x01\x04\x00\x11\xe0\x13\x40\xf9\x01\x00\x00\xb9\x80\x00\x00\x90\x00\xf4\x47\xf9\x00\x00\x40\xb9\x01\x08\x00\x11\xe0\x17\x40\xf9\x01\x00\x00\xb9\xe0\x13\x40\xf9\x01\x00\x40\xb9\x80\x00\x00\x90\x00\xec\x47\xf9\x01\x00\x00\xb9\xe0\x17\x40\xf9\x01\x00\x40\xb9\x80\x00\x00\x90\x00\xf4\x47\xf9\x01\x00\x00\xb9\x00\x00\x80\x52\xfd\x7b\xc3\xa8\xc0\x03\x5f\xd6")]), -Memmap([Annotation(Region(0x0,0x923), Attr("segment","02 0 2340")), -Annotation(Region(0x680,0x6B3), Attr("symbol","\"_start\"")), -Annotation(Region(0x0,0xF9), Attr("section","\".shstrtab\"")), -Annotation(Region(0x0,0x235), Attr("section","\".strtab\"")), -Annotation(Region(0x0,0x86F), Attr("section","\".symtab\"")), -Annotation(Region(0x0,0x2A), Attr("section","\".comment\"")), -Annotation(Region(0x238,0x252), Attr("section","\".interp\"")), -Annotation(Region(0x254,0x277), Attr("section","\".note.gnu.build-id\"")), -Annotation(Region(0x278,0x297), Attr("section","\".note.ABI-tag\"")), -Annotation(Region(0x298,0x2B3), Attr("section","\".gnu.hash\"")), -Annotation(Region(0x2B8,0x3A7), Attr("section","\".dynsym\"")), -Annotation(Region(0x3A8,0x43B), Attr("section","\".dynstr\"")), -Annotation(Region(0x43C,0x44F), Attr("section","\".gnu.version\"")), -Annotation(Region(0x450,0x47F), Attr("section","\".gnu.version_r\"")), -Annotation(Region(0x480,0x56F), Attr("section","\".rela.dyn\"")), -Annotation(Region(0x570,0x5E7), Attr("section","\".rela.plt\"")), -Annotation(Region(0x5E8,0x5FF), Attr("section","\".init\"")), -Annotation(Region(0x600,0x66F), Attr("section","\".plt\"")), -Annotation(Region(0x5E8,0x5FF), Attr("code-region","()")), -Annotation(Region(0x600,0x66F), Attr("code-region","()")), -Annotation(Region(0x680,0x6B3), Attr("symbol-info","_start 0x680 52")), -Annotation(Region(0x6B4,0x6C7), Attr("symbol","\"call_weak_fn\"")), -Annotation(Region(0x6B4,0x6C7), Attr("symbol-info","call_weak_fn 0x6B4 20")), -Annotation(Region(0x794,0x81F), Attr("symbol","\"main\"")), -Annotation(Region(0x794,0x81F), Attr("symbol-info","main 0x794 140")), -Annotation(Region(0x820,0x833), Attr("section","\".fini\"")), -Annotation(Region(0x834,0x837), Attr("section","\".rodata\"")), -Annotation(Region(0x838,0x873), Attr("section","\".eh_frame_hdr\"")), -Annotation(Region(0x878,0x923), Attr("section","\".eh_frame\"")), -Annotation(Region(0x10D80,0x11017), Attr("segment","03 0x10D80 672")), -Annotation(Region(0x10D88,0x10D8F), Attr("section","\".fini_array\"")), -Annotation(Region(0x10D90,0x10F7F), Attr("section","\".dynamic\"")), -Annotation(Region(0x10F80,0x10FFF), Attr("section","\".got\"")), -Annotation(Region(0x11000,0x11017), Attr("section","\".data\"")), -Annotation(Region(0x10D80,0x10D87), Attr("section","\".init_array\"")), -Annotation(Region(0x680,0x81F), Attr("section","\".text\"")), -Annotation(Region(0x680,0x81F), Attr("code-region","()")), -Annotation(Region(0x820,0x833), Attr("code-region","()"))]), -Program(Tid(1_732, "%000006c4"), Attrs([]), - Subs([Sub(Tid(1_709, "@__cxa_finalize"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x630"), -Attr("stub","()")]), "__cxa_finalize", Args([Arg(Tid(1_733, "%000006c5"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("__cxa_finalize_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(1_136, "@__cxa_finalize"), - Attrs([Attr("address","0x630")]), Phis([]), -Defs([Def(Tid(1_400, "%00000578"), Attrs([Attr("address","0x630"), -Attr("insn","adrp x16, #65536")]), Var("R16",Imm(64)), Int(65536,64)), -Def(Tid(1_407, "%0000057f"), Attrs([Attr("address","0x634"), -Attr("insn","ldr x17, [x16, #0xfa0]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(4000,64)),LittleEndian(),64)), -Def(Tid(1_413, "%00000585"), Attrs([Attr("address","0x638"), -Attr("insn","add x16, x16, #0xfa0")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(4000,64)))]), Jmps([Call(Tid(1_418, "%0000058a"), - Attrs([Attr("address","0x63C"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), -Sub(Tid(1_710, "@__do_global_dtors_aux"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x740")]), - "__do_global_dtors_aux", Args([Arg(Tid(1_734, "%000006c6"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("__do_global_dtors_aux_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(730, "@__do_global_dtors_aux"), - Attrs([Attr("address","0x740")]), Phis([]), Defs([Def(Tid(734, "%000002de"), - Attrs([Attr("address","0x740"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("#3",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(18446744073709551584,64))), -Def(Tid(740, "%000002e4"), Attrs([Attr("address","0x740"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("#3",Imm(64)),Var("R29",Imm(64)),LittleEndian(),64)), -Def(Tid(746, "%000002ea"), Attrs([Attr("address","0x740"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("#3",Imm(64)),Int(8,64)),Var("R30",Imm(64)),LittleEndian(),64)), -Def(Tid(750, "%000002ee"), Attrs([Attr("address","0x740"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("R31",Imm(64)), -Var("#3",Imm(64))), Def(Tid(756, "%000002f4"), - Attrs([Attr("address","0x744"), Attr("insn","mov x29, sp")]), - Var("R29",Imm(64)), Var("R31",Imm(64))), Def(Tid(764, "%000002fc"), - Attrs([Attr("address","0x748"), Attr("insn","str x19, [sp, #0x10]")]), - Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(16,64)),Var("R19",Imm(64)),LittleEndian(),64)), -Def(Tid(769, "%00000301"), Attrs([Attr("address","0x74C"), -Attr("insn","adrp x19, #69632")]), Var("R19",Imm(64)), Int(69632,64)), -Def(Tid(776, "%00000308"), Attrs([Attr("address","0x750"), -Attr("insn","ldrb w0, [x19, #0x18]")]), Var("R0",Imm(64)), -UNSIGNED(64,Load(Var("mem",Mem(64,8)),PLUS(Var("R19",Imm(64)),Int(24,64)),LittleEndian(),8)))]), -Jmps([Goto(Tid(783, "%0000030f"), Attrs([Attr("address","0x754"), -Attr("insn","cbnz w0, #0x28")]), - NEQ(Extract(31,0,Var("R0",Imm(64))),Int(0,32)), -Direct(Tid(781, "%0000030d"))), Goto(Tid(1_711, "%000006af"), Attrs([]), - Int(1,1), Direct(Tid(1_081, "%00000439")))])), Blk(Tid(1_081, "%00000439"), - Attrs([Attr("address","0x758")]), Phis([]), -Defs([Def(Tid(1_084, "%0000043c"), Attrs([Attr("address","0x758"), -Attr("insn","adrp x0, #65536")]), Var("R0",Imm(64)), Int(65536,64)), -Def(Tid(1_091, "%00000443"), Attrs([Attr("address","0x75C"), -Attr("insn","ldr x0, [x0, #0xfd0]")]), Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(4048,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(1_097, "%00000449"), Attrs([Attr("address","0x760"), -Attr("insn","cbz x0, #0x10")]), EQ(Var("R0",Imm(64)),Int(0,64)), -Direct(Tid(1_095, "%00000447"))), Goto(Tid(1_712, "%000006b0"), Attrs([]), - Int(1,1), Direct(Tid(1_120, "%00000460")))])), Blk(Tid(1_120, "%00000460"), - Attrs([Attr("address","0x764")]), Phis([]), -Defs([Def(Tid(1_123, "%00000463"), Attrs([Attr("address","0x764"), -Attr("insn","adrp x0, #69632")]), Var("R0",Imm(64)), Int(69632,64)), -Def(Tid(1_130, "%0000046a"), Attrs([Attr("address","0x768"), -Attr("insn","ldr x0, [x0, #0x8]")]), Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(1_135, "%0000046f"), Attrs([Attr("address","0x76C"), -Attr("insn","bl #-0x13c")]), Var("R30",Imm(64)), Int(1904,64))]), -Jmps([Call(Tid(1_138, "%00000472"), Attrs([Attr("address","0x76C"), -Attr("insn","bl #-0x13c")]), Int(1,1), -(Direct(Tid(1_709, "@__cxa_finalize")),Direct(Tid(1_095, "%00000447"))))])), -Blk(Tid(1_095, "%00000447"), Attrs([Attr("address","0x770")]), Phis([]), -Defs([Def(Tid(1_103, "%0000044f"), Attrs([Attr("address","0x770"), -Attr("insn","bl #-0xa0")]), Var("R30",Imm(64)), Int(1908,64))]), -Jmps([Call(Tid(1_105, "%00000451"), Attrs([Attr("address","0x770"), -Attr("insn","bl #-0xa0")]), Int(1,1), -(Direct(Tid(1_723, "@deregister_tm_clones")),Direct(Tid(1_107, "%00000453"))))])), -Blk(Tid(1_107, "%00000453"), Attrs([Attr("address","0x774")]), Phis([]), -Defs([Def(Tid(1_110, "%00000456"), Attrs([Attr("address","0x774"), -Attr("insn","mov w0, #0x1")]), Var("R0",Imm(64)), Int(1,64)), -Def(Tid(1_118, "%0000045e"), Attrs([Attr("address","0x778"), -Attr("insn","strb w0, [x19, #0x18]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R19",Imm(64)),Int(24,64)),Extract(7,0,Var("R0",Imm(64))),LittleEndian(),8))]), -Jmps([Goto(Tid(1_713, "%000006b1"), Attrs([]), Int(1,1), -Direct(Tid(781, "%0000030d")))])), Blk(Tid(781, "%0000030d"), - Attrs([Attr("address","0x77C")]), Phis([]), Defs([Def(Tid(791, "%00000317"), - Attrs([Attr("address","0x77C"), Attr("insn","ldr x19, [sp, #0x10]")]), - Var("R19",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(16,64)),LittleEndian(),64)), -Def(Tid(798, "%0000031e"), Attrs([Attr("address","0x780"), -Attr("insn","ldp x29, x30, [sp], #0x20")]), Var("R29",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(803, "%00000323"), Attrs([Attr("address","0x780"), -Attr("insn","ldp x29, x30, [sp], #0x20")]), Var("R30",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(807, "%00000327"), Attrs([Attr("address","0x780"), -Attr("insn","ldp x29, x30, [sp], #0x20")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(32,64)))]), Jmps([Call(Tid(812, "%0000032c"), - Attrs([Attr("address","0x784"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), Sub(Tid(1_714, "@__libc_start_main"), - Attrs([Attr("c.proto","signed (*)(signed (*)(signed , char** , char** );* main, signed , char** , \nvoid* auxv)"), -Attr("address","0x620"), Attr("stub","()")]), "__libc_start_main", - Args([Arg(Tid(1_735, "%000006c7"), - Attrs([Attr("c.layout","**[ : 64]"), -Attr("c.data","Top:u64 ptr ptr"), -Attr("c.type","signed (*)(signed , char** , char** );*")]), - Var("__libc_start_main_main",Imm(64)), Var("R0",Imm(64)), In()), -Arg(Tid(1_736, "%000006c8"), Attrs([Attr("c.layout","[signed : 32]"), -Attr("c.data","Top:u32"), Attr("c.type","signed")]), - Var("__libc_start_main_arg2",Imm(32)), LOW(32,Var("R1",Imm(64))), In()), -Arg(Tid(1_737, "%000006c9"), Attrs([Attr("c.layout","**[char : 8]"), -Attr("c.data","Top:u8 ptr ptr"), Attr("c.type","char**")]), - Var("__libc_start_main_arg3",Imm(64)), Var("R2",Imm(64)), Both()), -Arg(Tid(1_738, "%000006ca"), Attrs([Attr("c.layout","*[ : 8]"), -Attr("c.data","{} ptr"), Attr("c.type","void*")]), - Var("__libc_start_main_auxv",Imm(64)), Var("R3",Imm(64)), Both()), -Arg(Tid(1_739, "%000006cb"), Attrs([Attr("c.layout","[signed : 32]"), -Attr("c.data","Top:u32"), Attr("c.type","signed")]), - Var("__libc_start_main_result",Imm(32)), LOW(32,Var("R0",Imm(64))), -Out())]), Blks([Blk(Tid(563, "@__libc_start_main"), - Attrs([Attr("address","0x620")]), Phis([]), -Defs([Def(Tid(1_378, "%00000562"), Attrs([Attr("address","0x620"), -Attr("insn","adrp x16, #65536")]), Var("R16",Imm(64)), Int(65536,64)), -Def(Tid(1_385, "%00000569"), Attrs([Attr("address","0x624"), -Attr("insn","ldr x17, [x16, #0xf98]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(3992,64)),LittleEndian(),64)), -Def(Tid(1_391, "%0000056f"), Attrs([Attr("address","0x628"), -Attr("insn","add x16, x16, #0xf98")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(3992,64)))]), Jmps([Call(Tid(1_396, "%00000574"), - Attrs([Attr("address","0x62C"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), Sub(Tid(1_715, "@_fini"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x820")]), - "_fini", Args([Arg(Tid(1_740, "%000006cc"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("_fini_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(31, "@_fini"), - Attrs([Attr("address","0x820")]), Phis([]), Defs([Def(Tid(37, "%00000025"), - Attrs([Attr("address","0x824"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("#0",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(18446744073709551600,64))), -Def(Tid(43, "%0000002b"), Attrs([Attr("address","0x824"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("#0",Imm(64)),Var("R29",Imm(64)),LittleEndian(),64)), -Def(Tid(49, "%00000031"), Attrs([Attr("address","0x824"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("#0",Imm(64)),Int(8,64)),Var("R30",Imm(64)),LittleEndian(),64)), -Def(Tid(53, "%00000035"), Attrs([Attr("address","0x824"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("R31",Imm(64)), -Var("#0",Imm(64))), Def(Tid(59, "%0000003b"), Attrs([Attr("address","0x828"), -Attr("insn","mov x29, sp")]), Var("R29",Imm(64)), Var("R31",Imm(64))), -Def(Tid(66, "%00000042"), Attrs([Attr("address","0x82C"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R29",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(71, "%00000047"), Attrs([Attr("address","0x82C"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R30",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(75, "%0000004b"), Attrs([Attr("address","0x82C"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(16,64)))]), Jmps([Call(Tid(80, "%00000050"), - Attrs([Attr("address","0x830"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), Sub(Tid(1_716, "@_init"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x5E8")]), - "_init", Args([Arg(Tid(1_741, "%000006cd"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("_init_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(1_512, "@_init"), - Attrs([Attr("address","0x5E8")]), Phis([]), -Defs([Def(Tid(1_518, "%000005ee"), Attrs([Attr("address","0x5EC"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("#6",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(18446744073709551600,64))), -Def(Tid(1_524, "%000005f4"), Attrs([Attr("address","0x5EC"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("#6",Imm(64)),Var("R29",Imm(64)),LittleEndian(),64)), -Def(Tid(1_530, "%000005fa"), Attrs([Attr("address","0x5EC"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("#6",Imm(64)),Int(8,64)),Var("R30",Imm(64)),LittleEndian(),64)), -Def(Tid(1_534, "%000005fe"), Attrs([Attr("address","0x5EC"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("R31",Imm(64)), -Var("#6",Imm(64))), Def(Tid(1_540, "%00000604"), - Attrs([Attr("address","0x5F0"), Attr("insn","mov x29, sp")]), - Var("R29",Imm(64)), Var("R31",Imm(64))), Def(Tid(1_545, "%00000609"), - Attrs([Attr("address","0x5F4"), Attr("insn","bl #0xc0")]), - Var("R30",Imm(64)), Int(1528,64))]), Jmps([Call(Tid(1_547, "%0000060b"), - Attrs([Attr("address","0x5F4"), Attr("insn","bl #0xc0")]), Int(1,1), -(Direct(Tid(1_721, "@call_weak_fn")),Direct(Tid(1_549, "%0000060d"))))])), -Blk(Tid(1_549, "%0000060d"), Attrs([Attr("address","0x5F8")]), Phis([]), -Defs([Def(Tid(1_554, "%00000612"), Attrs([Attr("address","0x5F8"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R29",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(1_559, "%00000617"), Attrs([Attr("address","0x5F8"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R30",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(1_563, "%0000061b"), Attrs([Attr("address","0x5F8"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(16,64)))]), Jmps([Call(Tid(1_568, "%00000620"), - Attrs([Attr("address","0x5FC"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), Sub(Tid(1_717, "@_start"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x680"), -Attr("entry-point","()")]), "_start", Args([Arg(Tid(1_742, "%000006ce"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("_start_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(500, "@_start"), - Attrs([Attr("address","0x680")]), Phis([]), Defs([Def(Tid(505, "%000001f9"), - Attrs([Attr("address","0x684"), Attr("insn","mov x29, #0x0")]), - Var("R29",Imm(64)), Int(0,64)), Def(Tid(510, "%000001fe"), - Attrs([Attr("address","0x688"), Attr("insn","mov x30, #0x0")]), - Var("R30",Imm(64)), Int(0,64)), Def(Tid(516, "%00000204"), - Attrs([Attr("address","0x68C"), Attr("insn","mov x5, x0")]), - Var("R5",Imm(64)), Var("R0",Imm(64))), Def(Tid(523, "%0000020b"), - Attrs([Attr("address","0x690"), Attr("insn","ldr x1, [sp]")]), - Var("R1",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(529, "%00000211"), Attrs([Attr("address","0x694"), -Attr("insn","add x2, sp, #0x8")]), Var("R2",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(8,64))), Def(Tid(535, "%00000217"), - Attrs([Attr("address","0x698"), Attr("insn","mov x6, sp")]), - Var("R6",Imm(64)), Var("R31",Imm(64))), Def(Tid(540, "%0000021c"), - Attrs([Attr("address","0x69C"), Attr("insn","adrp x0, #65536")]), - Var("R0",Imm(64)), Int(65536,64)), Def(Tid(547, "%00000223"), - Attrs([Attr("address","0x6A0"), Attr("insn","ldr x0, [x0, #0xff0]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(4080,64)),LittleEndian(),64)), -Def(Tid(552, "%00000228"), Attrs([Attr("address","0x6A4"), -Attr("insn","mov x3, #0x0")]), Var("R3",Imm(64)), Int(0,64)), -Def(Tid(557, "%0000022d"), Attrs([Attr("address","0x6A8"), -Attr("insn","mov x4, #0x0")]), Var("R4",Imm(64)), Int(0,64)), -Def(Tid(562, "%00000232"), Attrs([Attr("address","0x6AC"), -Attr("insn","bl #-0x8c")]), Var("R30",Imm(64)), Int(1712,64))]), -Jmps([Call(Tid(565, "%00000235"), Attrs([Attr("address","0x6AC"), -Attr("insn","bl #-0x8c")]), Int(1,1), -(Direct(Tid(1_714, "@__libc_start_main")),Direct(Tid(567, "%00000237"))))])), -Blk(Tid(567, "%00000237"), Attrs([Attr("address","0x6B0")]), Phis([]), -Defs([Def(Tid(570, "%0000023a"), Attrs([Attr("address","0x6B0"), -Attr("insn","bl #-0x50")]), Var("R30",Imm(64)), Int(1716,64))]), -Jmps([Call(Tid(573, "%0000023d"), Attrs([Attr("address","0x6B0"), -Attr("insn","bl #-0x50")]), Int(1,1), -(Direct(Tid(1_720, "@abort")),Direct(Tid(1_718, "%000006b6"))))])), -Blk(Tid(1_718, "%000006b6"), Attrs([]), Phis([]), Defs([]), -Jmps([Call(Tid(1_719, "%000006b7"), Attrs([]), Int(1,1), -(Direct(Tid(1_721, "@call_weak_fn")),))]))])), Sub(Tid(1_720, "@abort"), - Attrs([Attr("noreturn","()"), Attr("c.proto","void (*)(void)"), -Attr("address","0x660"), Attr("stub","()")]), "abort", Args([]), -Blks([Blk(Tid(571, "@abort"), Attrs([Attr("address","0x660")]), Phis([]), -Defs([Def(Tid(1_466, "%000005ba"), Attrs([Attr("address","0x660"), -Attr("insn","adrp x16, #65536")]), Var("R16",Imm(64)), Int(65536,64)), -Def(Tid(1_473, "%000005c1"), Attrs([Attr("address","0x664"), -Attr("insn","ldr x17, [x16, #0xfb8]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(4024,64)),LittleEndian(),64)), -Def(Tid(1_479, "%000005c7"), Attrs([Attr("address","0x668"), -Attr("insn","add x16, x16, #0xfb8")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(4024,64)))]), Jmps([Call(Tid(1_484, "%000005cc"), - Attrs([Attr("address","0x66C"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), Sub(Tid(1_721, "@call_weak_fn"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x6B4")]), - "call_weak_fn", Args([Arg(Tid(1_743, "%000006cf"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("call_weak_fn_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(575, "@call_weak_fn"), - Attrs([Attr("address","0x6B4")]), Phis([]), Defs([Def(Tid(578, "%00000242"), - Attrs([Attr("address","0x6B4"), Attr("insn","adrp x0, #65536")]), - Var("R0",Imm(64)), Int(65536,64)), Def(Tid(585, "%00000249"), - Attrs([Attr("address","0x6B8"), Attr("insn","ldr x0, [x0, #0xfe0]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(4064,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(591, "%0000024f"), Attrs([Attr("address","0x6BC"), -Attr("insn","cbz x0, #0x8")]), EQ(Var("R0",Imm(64)),Int(0,64)), -Direct(Tid(589, "%0000024d"))), Goto(Tid(1_722, "%000006ba"), Attrs([]), - Int(1,1), Direct(Tid(1_200, "%000004b0")))])), Blk(Tid(589, "%0000024d"), - Attrs([Attr("address","0x6C4")]), Phis([]), Defs([]), -Jmps([Call(Tid(597, "%00000255"), Attrs([Attr("address","0x6C4"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))])), -Blk(Tid(1_200, "%000004b0"), Attrs([Attr("address","0x6C0")]), Phis([]), -Defs([]), Jmps([Goto(Tid(1_203, "%000004b3"), Attrs([Attr("address","0x6C0"), -Attr("insn","b #-0x70")]), Int(1,1), -Direct(Tid(1_201, "@__gmon_start__")))])), Blk(Tid(1_201, "@__gmon_start__"), - Attrs([Attr("address","0x650")]), Phis([]), -Defs([Def(Tid(1_444, "%000005a4"), Attrs([Attr("address","0x650"), -Attr("insn","adrp x16, #65536")]), Var("R16",Imm(64)), Int(65536,64)), -Def(Tid(1_451, "%000005ab"), Attrs([Attr("address","0x654"), -Attr("insn","ldr x17, [x16, #0xfb0]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(4016,64)),LittleEndian(),64)), -Def(Tid(1_457, "%000005b1"), Attrs([Attr("address","0x658"), -Attr("insn","add x16, x16, #0xfb0")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(4016,64)))]), Jmps([Call(Tid(1_462, "%000005b6"), - Attrs([Attr("address","0x65C"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), -Sub(Tid(1_723, "@deregister_tm_clones"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x6D0")]), - "deregister_tm_clones", Args([Arg(Tid(1_744, "%000006d0"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("deregister_tm_clones_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(603, "@deregister_tm_clones"), - Attrs([Attr("address","0x6D0")]), Phis([]), Defs([Def(Tid(606, "%0000025e"), - Attrs([Attr("address","0x6D0"), Attr("insn","adrp x0, #69632")]), - Var("R0",Imm(64)), Int(69632,64)), Def(Tid(612, "%00000264"), - Attrs([Attr("address","0x6D4"), Attr("insn","add x0, x0, #0x18")]), - Var("R0",Imm(64)), PLUS(Var("R0",Imm(64)),Int(24,64))), -Def(Tid(617, "%00000269"), Attrs([Attr("address","0x6D8"), -Attr("insn","adrp x1, #69632")]), Var("R1",Imm(64)), Int(69632,64)), -Def(Tid(623, "%0000026f"), Attrs([Attr("address","0x6DC"), -Attr("insn","add x1, x1, #0x18")]), Var("R1",Imm(64)), -PLUS(Var("R1",Imm(64)),Int(24,64))), Def(Tid(629, "%00000275"), - Attrs([Attr("address","0x6E0"), Attr("insn","cmp x1, x0")]), - Var("#1",Imm(64)), NOT(Var("R0",Imm(64)))), Def(Tid(634, "%0000027a"), - Attrs([Attr("address","0x6E0"), Attr("insn","cmp x1, x0")]), - Var("#2",Imm(64)), PLUS(Var("R1",Imm(64)),NOT(Var("R0",Imm(64))))), -Def(Tid(640, "%00000280"), Attrs([Attr("address","0x6E0"), -Attr("insn","cmp x1, x0")]), Var("VF",Imm(1)), -NEQ(SIGNED(65,PLUS(Var("#2",Imm(64)),Int(1,64))),PLUS(PLUS(SIGNED(65,Var("R1",Imm(64))),SIGNED(65,Var("#1",Imm(64)))),Int(1,65)))), -Def(Tid(646, "%00000286"), Attrs([Attr("address","0x6E0"), -Attr("insn","cmp x1, x0")]), Var("CF",Imm(1)), -NEQ(UNSIGNED(65,PLUS(Var("#2",Imm(64)),Int(1,64))),PLUS(PLUS(UNSIGNED(65,Var("R1",Imm(64))),UNSIGNED(65,Var("#1",Imm(64)))),Int(1,65)))), -Def(Tid(650, "%0000028a"), Attrs([Attr("address","0x6E0"), -Attr("insn","cmp x1, x0")]), Var("ZF",Imm(1)), -EQ(PLUS(Var("#2",Imm(64)),Int(1,64)),Int(0,64))), Def(Tid(654, "%0000028e"), - Attrs([Attr("address","0x6E0"), Attr("insn","cmp x1, x0")]), - Var("NF",Imm(1)), Extract(63,63,PLUS(Var("#2",Imm(64)),Int(1,64))))]), -Jmps([Goto(Tid(660, "%00000294"), Attrs([Attr("address","0x6E4"), -Attr("insn","b.eq #0x18")]), EQ(Var("ZF",Imm(1)),Int(1,1)), -Direct(Tid(658, "%00000292"))), Goto(Tid(1_724, "%000006bc"), Attrs([]), - Int(1,1), Direct(Tid(1_170, "%00000492")))])), Blk(Tid(1_170, "%00000492"), - Attrs([Attr("address","0x6E8")]), Phis([]), -Defs([Def(Tid(1_173, "%00000495"), Attrs([Attr("address","0x6E8"), -Attr("insn","adrp x1, #65536")]), Var("R1",Imm(64)), Int(65536,64)), -Def(Tid(1_180, "%0000049c"), Attrs([Attr("address","0x6EC"), -Attr("insn","ldr x1, [x1, #0xfc8]")]), Var("R1",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R1",Imm(64)),Int(4040,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(1_185, "%000004a1"), Attrs([Attr("address","0x6F0"), -Attr("insn","cbz x1, #0xc")]), EQ(Var("R1",Imm(64)),Int(0,64)), -Direct(Tid(658, "%00000292"))), Goto(Tid(1_725, "%000006bd"), Attrs([]), - Int(1,1), Direct(Tid(1_189, "%000004a5")))])), Blk(Tid(658, "%00000292"), - Attrs([Attr("address","0x6FC")]), Phis([]), Defs([]), -Jmps([Call(Tid(666, "%0000029a"), Attrs([Attr("address","0x6FC"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))])), -Blk(Tid(1_189, "%000004a5"), Attrs([Attr("address","0x6F4")]), Phis([]), -Defs([Def(Tid(1_193, "%000004a9"), Attrs([Attr("address","0x6F4"), -Attr("insn","mov x16, x1")]), Var("R16",Imm(64)), Var("R1",Imm(64)))]), -Jmps([Call(Tid(1_198, "%000004ae"), Attrs([Attr("address","0x6F8"), -Attr("insn","br x16")]), Int(1,1), (Indirect(Var("R16",Imm(64))),))]))])), -Sub(Tid(1_726, "@frame_dummy"), Attrs([Attr("c.proto","signed (*)(void)"), -Attr("address","0x790")]), "frame_dummy", Args([Arg(Tid(1_745, "%000006d1"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("frame_dummy_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(818, "@frame_dummy"), - Attrs([Attr("address","0x790")]), Phis([]), Defs([]), -Jmps([Call(Tid(820, "%00000334"), Attrs([Attr("address","0x790"), -Attr("insn","b #-0x90")]), Int(1,1), -(Direct(Tid(1_729, "@register_tm_clones")),))]))])), Sub(Tid(1_727, "@main"), - Attrs([Attr("c.proto","signed (*)(signed argc, const char** argv)"), -Attr("address","0x794")]), "main", Args([Arg(Tid(1_746, "%000006d2"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("main_argc",Imm(32)), -LOW(32,Var("R0",Imm(64))), In()), Arg(Tid(1_747, "%000006d3"), - Attrs([Attr("c.layout","**[char : 8]"), Attr("c.data","Top:u8 ptr ptr"), -Attr("c.type"," const char**")]), Var("main_argv",Imm(64)), -Var("R1",Imm(64)), Both()), Arg(Tid(1_748, "%000006d4"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("main_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(822, "@main"), - Attrs([Attr("address","0x794")]), Phis([]), Defs([Def(Tid(826, "%0000033a"), - Attrs([Attr("address","0x794"), -Attr("insn","stp x29, x30, [sp, #-0x30]!")]), Var("#4",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(18446744073709551568,64))), -Def(Tid(832, "%00000340"), Attrs([Attr("address","0x794"), -Attr("insn","stp x29, x30, [sp, #-0x30]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("#4",Imm(64)),Var("R29",Imm(64)),LittleEndian(),64)), -Def(Tid(838, "%00000346"), Attrs([Attr("address","0x794"), -Attr("insn","stp x29, x30, [sp, #-0x30]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("#4",Imm(64)),Int(8,64)),Var("R30",Imm(64)),LittleEndian(),64)), -Def(Tid(842, "%0000034a"), Attrs([Attr("address","0x794"), -Attr("insn","stp x29, x30, [sp, #-0x30]!")]), Var("R31",Imm(64)), -Var("#4",Imm(64))), Def(Tid(848, "%00000350"), - Attrs([Attr("address","0x798"), Attr("insn","mov x29, sp")]), - Var("R29",Imm(64)), Var("R31",Imm(64))), Def(Tid(856, "%00000358"), - Attrs([Attr("address","0x79C"), Attr("insn","str w0, [sp, #0x1c]")]), - Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(28,64)),Extract(31,0,Var("R0",Imm(64))),LittleEndian(),32)), -Def(Tid(864, "%00000360"), Attrs([Attr("address","0x7A0"), -Attr("insn","str x1, [sp, #0x10]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(16,64)),Var("R1",Imm(64)),LittleEndian(),64)), -Def(Tid(869, "%00000365"), Attrs([Attr("address","0x7A4"), -Attr("insn","mov x0, #0x4")]), Var("R0",Imm(64)), Int(4,64)), -Def(Tid(874, "%0000036a"), Attrs([Attr("address","0x7A8"), -Attr("insn","bl #-0x168")]), Var("R30",Imm(64)), Int(1964,64))]), -Jmps([Call(Tid(877, "%0000036d"), Attrs([Attr("address","0x7A8"), -Attr("insn","bl #-0x168")]), Int(1,1), -(Direct(Tid(1_728, "@malloc")),Direct(Tid(879, "%0000036f"))))])), -Blk(Tid(879, "%0000036f"), Attrs([Attr("address","0x7AC")]), Phis([]), -Defs([Def(Tid(885, "%00000375"), Attrs([Attr("address","0x7AC"), -Attr("insn","str x0, [sp, #0x20]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(32,64)),Var("R0",Imm(64)),LittleEndian(),64)), -Def(Tid(890, "%0000037a"), Attrs([Attr("address","0x7B0"), -Attr("insn","mov x0, #0x4")]), Var("R0",Imm(64)), Int(4,64)), -Def(Tid(895, "%0000037f"), Attrs([Attr("address","0x7B4"), -Attr("insn","bl #-0x174")]), Var("R30",Imm(64)), Int(1976,64))]), -Jmps([Call(Tid(897, "%00000381"), Attrs([Attr("address","0x7B4"), -Attr("insn","bl #-0x174")]), Int(1,1), -(Direct(Tid(1_728, "@malloc")),Direct(Tid(899, "%00000383"))))])), -Blk(Tid(899, "%00000383"), Attrs([Attr("address","0x7B8")]), Phis([]), -Defs([Def(Tid(905, "%00000389"), Attrs([Attr("address","0x7B8"), -Attr("insn","str x0, [sp, #0x28]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(40,64)),Var("R0",Imm(64)),LittleEndian(),64)), -Def(Tid(910, "%0000038e"), Attrs([Attr("address","0x7BC"), -Attr("insn","adrp x0, #65536")]), Var("R0",Imm(64)), Int(65536,64)), -Def(Tid(917, "%00000395"), Attrs([Attr("address","0x7C0"), -Attr("insn","ldr x0, [x0, #0xfd8]")]), Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(4056,64)),LittleEndian(),64)), -Def(Tid(924, "%0000039c"), Attrs([Attr("address","0x7C4"), -Attr("insn","ldr w0, [x0]")]), Var("R0",Imm(64)), -UNSIGNED(64,Load(Var("mem",Mem(64,8)),Var("R0",Imm(64)),LittleEndian(),32))), -Def(Tid(930, "%000003a2"), Attrs([Attr("address","0x7C8"), -Attr("insn","add w1, w0, #0x1")]), Var("R1",Imm(64)), -UNSIGNED(64,PLUS(Extract(31,0,Var("R0",Imm(64))),Int(1,32)))), -Def(Tid(937, "%000003a9"), Attrs([Attr("address","0x7CC"), -Attr("insn","ldr x0, [sp, #0x20]")]), Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(32,64)),LittleEndian(),64)), -Def(Tid(945, "%000003b1"), Attrs([Attr("address","0x7D0"), -Attr("insn","str w1, [x0]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("R0",Imm(64)),Extract(31,0,Var("R1",Imm(64))),LittleEndian(),32)), -Def(Tid(950, "%000003b6"), Attrs([Attr("address","0x7D4"), -Attr("insn","adrp x0, #65536")]), Var("R0",Imm(64)), Int(65536,64)), -Def(Tid(957, "%000003bd"), Attrs([Attr("address","0x7D8"), -Attr("insn","ldr x0, [x0, #0xfe8]")]), Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(4072,64)),LittleEndian(),64)), -Def(Tid(964, "%000003c4"), Attrs([Attr("address","0x7DC"), -Attr("insn","ldr w0, [x0]")]), Var("R0",Imm(64)), -UNSIGNED(64,Load(Var("mem",Mem(64,8)),Var("R0",Imm(64)),LittleEndian(),32))), -Def(Tid(970, "%000003ca"), Attrs([Attr("address","0x7E0"), -Attr("insn","add w1, w0, #0x2")]), Var("R1",Imm(64)), -UNSIGNED(64,PLUS(Extract(31,0,Var("R0",Imm(64))),Int(2,32)))), -Def(Tid(977, "%000003d1"), Attrs([Attr("address","0x7E4"), -Attr("insn","ldr x0, [sp, #0x28]")]), Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(40,64)),LittleEndian(),64)), -Def(Tid(985, "%000003d9"), Attrs([Attr("address","0x7E8"), -Attr("insn","str w1, [x0]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("R0",Imm(64)),Extract(31,0,Var("R1",Imm(64))),LittleEndian(),32)), -Def(Tid(992, "%000003e0"), Attrs([Attr("address","0x7EC"), -Attr("insn","ldr x0, [sp, #0x20]")]), Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(32,64)),LittleEndian(),64)), -Def(Tid(999, "%000003e7"), Attrs([Attr("address","0x7F0"), -Attr("insn","ldr w1, [x0]")]), Var("R1",Imm(64)), -UNSIGNED(64,Load(Var("mem",Mem(64,8)),Var("R0",Imm(64)),LittleEndian(),32))), -Def(Tid(1_004, "%000003ec"), Attrs([Attr("address","0x7F4"), -Attr("insn","adrp x0, #65536")]), Var("R0",Imm(64)), Int(65536,64)), -Def(Tid(1_011, "%000003f3"), Attrs([Attr("address","0x7F8"), -Attr("insn","ldr x0, [x0, #0xfd8]")]), Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(4056,64)),LittleEndian(),64)), -Def(Tid(1_019, "%000003fb"), Attrs([Attr("address","0x7FC"), -Attr("insn","str w1, [x0]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("R0",Imm(64)),Extract(31,0,Var("R1",Imm(64))),LittleEndian(),32)), -Def(Tid(1_026, "%00000402"), Attrs([Attr("address","0x800"), -Attr("insn","ldr x0, [sp, #0x28]")]), Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(40,64)),LittleEndian(),64)), -Def(Tid(1_033, "%00000409"), Attrs([Attr("address","0x804"), -Attr("insn","ldr w1, [x0]")]), Var("R1",Imm(64)), -UNSIGNED(64,Load(Var("mem",Mem(64,8)),Var("R0",Imm(64)),LittleEndian(),32))), -Def(Tid(1_038, "%0000040e"), Attrs([Attr("address","0x808"), -Attr("insn","adrp x0, #65536")]), Var("R0",Imm(64)), Int(65536,64)), -Def(Tid(1_045, "%00000415"), Attrs([Attr("address","0x80C"), -Attr("insn","ldr x0, [x0, #0xfe8]")]), Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(4072,64)),LittleEndian(),64)), -Def(Tid(1_053, "%0000041d"), Attrs([Attr("address","0x810"), -Attr("insn","str w1, [x0]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("R0",Imm(64)),Extract(31,0,Var("R1",Imm(64))),LittleEndian(),32)), -Def(Tid(1_058, "%00000422"), Attrs([Attr("address","0x814"), -Attr("insn","mov w0, #0x0")]), Var("R0",Imm(64)), Int(0,64)), -Def(Tid(1_065, "%00000429"), Attrs([Attr("address","0x818"), -Attr("insn","ldp x29, x30, [sp], #0x30")]), Var("R29",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(1_070, "%0000042e"), Attrs([Attr("address","0x818"), -Attr("insn","ldp x29, x30, [sp], #0x30")]), Var("R30",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(1_074, "%00000432"), Attrs([Attr("address","0x818"), -Attr("insn","ldp x29, x30, [sp], #0x30")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(48,64)))]), Jmps([Call(Tid(1_079, "%00000437"), - Attrs([Attr("address","0x81C"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), Sub(Tid(1_728, "@malloc"), - Attrs([Attr("c.proto","void* (*)(unsigned long size)"), -Attr("address","0x640"), Attr("malloc","()"), Attr("stub","()")]), "malloc", - Args([Arg(Tid(1_749, "%000006d5"), Attrs([Attr("alloc-size","()"), -Attr("c.layout","[unsigned long : 64]"), Attr("c.data","Top:u64"), -Attr("c.type","unsigned long")]), Var("malloc_size",Imm(64)), -Var("R0",Imm(64)), In()), Arg(Tid(1_750, "%000006d6"), - Attrs([Attr("warn-unused","()"), Attr("c.layout","*[ : 8]"), -Attr("c.data","{} ptr"), Attr("c.type","void*")]), - Var("malloc_result",Imm(64)), Var("R0",Imm(64)), Out())]), -Blks([Blk(Tid(875, "@malloc"), Attrs([Attr("address","0x640")]), Phis([]), -Defs([Def(Tid(1_422, "%0000058e"), Attrs([Attr("address","0x640"), -Attr("insn","adrp x16, #65536")]), Var("R16",Imm(64)), Int(65536,64)), -Def(Tid(1_429, "%00000595"), Attrs([Attr("address","0x644"), -Attr("insn","ldr x17, [x16, #0xfa8]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(4008,64)),LittleEndian(),64)), -Def(Tid(1_435, "%0000059b"), Attrs([Attr("address","0x648"), -Attr("insn","add x16, x16, #0xfa8")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(4008,64)))]), Jmps([Call(Tid(1_440, "%000005a0"), - Attrs([Attr("address","0x64C"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), -Sub(Tid(1_729, "@register_tm_clones"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x700")]), - "register_tm_clones", Args([Arg(Tid(1_751, "%000006d7"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("register_tm_clones_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(668, "@register_tm_clones"), Attrs([Attr("address","0x700")]), - Phis([]), Defs([Def(Tid(671, "%0000029f"), Attrs([Attr("address","0x700"), -Attr("insn","adrp x0, #69632")]), Var("R0",Imm(64)), Int(69632,64)), -Def(Tid(677, "%000002a5"), Attrs([Attr("address","0x704"), -Attr("insn","add x0, x0, #0x18")]), Var("R0",Imm(64)), -PLUS(Var("R0",Imm(64)),Int(24,64))), Def(Tid(682, "%000002aa"), - Attrs([Attr("address","0x708"), Attr("insn","adrp x1, #69632")]), - Var("R1",Imm(64)), Int(69632,64)), Def(Tid(688, "%000002b0"), - Attrs([Attr("address","0x70C"), Attr("insn","add x1, x1, #0x18")]), - Var("R1",Imm(64)), PLUS(Var("R1",Imm(64)),Int(24,64))), -Def(Tid(695, "%000002b7"), Attrs([Attr("address","0x710"), -Attr("insn","sub x1, x1, x0")]), Var("R1",Imm(64)), -PLUS(PLUS(Var("R1",Imm(64)),NOT(Var("R0",Imm(64)))),Int(1,64))), -Def(Tid(701, "%000002bd"), Attrs([Attr("address","0x714"), -Attr("insn","lsr x2, x1, #63")]), Var("R2",Imm(64)), -Concat(Int(0,63),Extract(63,63,Var("R1",Imm(64))))), -Def(Tid(708, "%000002c4"), Attrs([Attr("address","0x718"), -Attr("insn","add x1, x2, x1, asr #3")]), Var("R1",Imm(64)), -PLUS(Var("R2",Imm(64)),ARSHIFT(Var("R1",Imm(64)),Int(3,3)))), -Def(Tid(714, "%000002ca"), Attrs([Attr("address","0x71C"), -Attr("insn","asr x1, x1, #1")]), Var("R1",Imm(64)), -SIGNED(64,Extract(63,1,Var("R1",Imm(64)))))]), -Jmps([Goto(Tid(720, "%000002d0"), Attrs([Attr("address","0x720"), -Attr("insn","cbz x1, #0x18")]), EQ(Var("R1",Imm(64)),Int(0,64)), -Direct(Tid(718, "%000002ce"))), Goto(Tid(1_730, "%000006c2"), Attrs([]), - Int(1,1), Direct(Tid(1_140, "%00000474")))])), Blk(Tid(1_140, "%00000474"), - Attrs([Attr("address","0x724")]), Phis([]), -Defs([Def(Tid(1_143, "%00000477"), Attrs([Attr("address","0x724"), -Attr("insn","adrp x2, #65536")]), Var("R2",Imm(64)), Int(65536,64)), -Def(Tid(1_150, "%0000047e"), Attrs([Attr("address","0x728"), -Attr("insn","ldr x2, [x2, #0xff8]")]), Var("R2",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R2",Imm(64)),Int(4088,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(1_155, "%00000483"), Attrs([Attr("address","0x72C"), -Attr("insn","cbz x2, #0xc")]), EQ(Var("R2",Imm(64)),Int(0,64)), -Direct(Tid(718, "%000002ce"))), Goto(Tid(1_731, "%000006c3"), Attrs([]), - Int(1,1), Direct(Tid(1_159, "%00000487")))])), Blk(Tid(718, "%000002ce"), - Attrs([Attr("address","0x738")]), Phis([]), Defs([]), -Jmps([Call(Tid(726, "%000002d6"), Attrs([Attr("address","0x738"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))])), -Blk(Tid(1_159, "%00000487"), Attrs([Attr("address","0x730")]), Phis([]), -Defs([Def(Tid(1_163, "%0000048b"), Attrs([Attr("address","0x730"), -Attr("insn","mov x16, x2")]), Var("R16",Imm(64)), Var("R2",Imm(64)))]), -Jmps([Call(Tid(1_168, "%00000490"), Attrs([Attr("address","0x734"), -Attr("insn","br x16")]), Int(1,1), -(Indirect(Var("R16",Imm(64))),))]))]))]))) \ No newline at end of file diff --git a/src/test/memory_regions/heap_pointer/gcc_pic/heap_pointer.bir b/src/test/memory_regions/heap_pointer/gcc_pic/heap_pointer.bir deleted file mode 100644 index 17338e386..000000000 --- a/src/test/memory_regions/heap_pointer/gcc_pic/heap_pointer.bir +++ /dev/null @@ -1,278 +0,0 @@ -000006c4: program -000006ad: sub __cxa_finalize(__cxa_finalize_result) -000006c5: __cxa_finalize_result :: out u32 = low:32[R0] - -00000470: -00000578: R16 := 0x10000 -0000057f: R17 := mem[R16 + 0xFA0, el]:u64 -00000585: R16 := R16 + 0xFA0 -0000058a: call R17 with noreturn - -000006ae: sub __do_global_dtors_aux(__do_global_dtors_aux_result) -000006c6: __do_global_dtors_aux_result :: out u32 = low:32[R0] - -000002da: -000002de: #3 := R31 - 0x20 -000002e4: mem := mem with [#3, el]:u64 <- R29 -000002ea: mem := mem with [#3 + 8, el]:u64 <- R30 -000002ee: R31 := #3 -000002f4: R29 := R31 -000002fc: mem := mem with [R31 + 0x10, el]:u64 <- R19 -00000301: R19 := 0x11000 -00000308: R0 := pad:64[mem[R19 + 0x18]] -0000030f: when 31:0[R0] <> 0 goto %0000030d -000006af: goto %00000439 - -00000439: -0000043c: R0 := 0x10000 -00000443: R0 := mem[R0 + 0xFD0, el]:u64 -00000449: when R0 = 0 goto %00000447 -000006b0: goto %00000460 - -00000460: -00000463: R0 := 0x11000 -0000046a: R0 := mem[R0 + 8, el]:u64 -0000046f: R30 := 0x770 -00000472: call @__cxa_finalize with return %00000447 - -00000447: -0000044f: R30 := 0x774 -00000451: call @deregister_tm_clones with return %00000453 - -00000453: -00000456: R0 := 1 -0000045e: mem := mem with [R19 + 0x18] <- 7:0[R0] -000006b1: goto %0000030d - -0000030d: -00000317: R19 := mem[R31 + 0x10, el]:u64 -0000031e: R29 := mem[R31, el]:u64 -00000323: R30 := mem[R31 + 8, el]:u64 -00000327: R31 := R31 + 0x20 -0000032c: call R30 with noreturn - -000006b2: sub __libc_start_main(__libc_start_main_main, __libc_start_main_arg2, __libc_start_main_arg3, __libc_start_main_auxv, __libc_start_main_result) -000006c7: __libc_start_main_main :: in u64 = R0 -000006c8: __libc_start_main_arg2 :: in u32 = low:32[R1] -000006c9: __libc_start_main_arg3 :: in out u64 = R2 -000006ca: __libc_start_main_auxv :: in out u64 = R3 -000006cb: __libc_start_main_result :: out u32 = low:32[R0] - -00000233: -00000562: R16 := 0x10000 -00000569: R17 := mem[R16 + 0xF98, el]:u64 -0000056f: R16 := R16 + 0xF98 -00000574: call R17 with noreturn - -000006b3: sub _fini(_fini_result) -000006cc: _fini_result :: out u32 = low:32[R0] - -0000001f: -00000025: #0 := R31 - 0x10 -0000002b: mem := mem with [#0, el]:u64 <- R29 -00000031: mem := mem with [#0 + 8, el]:u64 <- R30 -00000035: R31 := #0 -0000003b: R29 := R31 -00000042: R29 := mem[R31, el]:u64 -00000047: R30 := mem[R31 + 8, el]:u64 -0000004b: R31 := R31 + 0x10 -00000050: call R30 with noreturn - -000006b4: sub _init(_init_result) -000006cd: _init_result :: out u32 = low:32[R0] - -000005e8: -000005ee: #6 := R31 - 0x10 -000005f4: mem := mem with [#6, el]:u64 <- R29 -000005fa: mem := mem with [#6 + 8, el]:u64 <- R30 -000005fe: R31 := #6 -00000604: R29 := R31 -00000609: R30 := 0x5F8 -0000060b: call @call_weak_fn with return %0000060d - -0000060d: -00000612: R29 := mem[R31, el]:u64 -00000617: R30 := mem[R31 + 8, el]:u64 -0000061b: R31 := R31 + 0x10 -00000620: call R30 with noreturn - -000006b5: sub _start(_start_result) -000006ce: _start_result :: out u32 = low:32[R0] - -000001f4: -000001f9: R29 := 0 -000001fe: R30 := 0 -00000204: R5 := R0 -0000020b: R1 := mem[R31, el]:u64 -00000211: R2 := R31 + 8 -00000217: R6 := R31 -0000021c: R0 := 0x10000 -00000223: R0 := mem[R0 + 0xFF0, el]:u64 -00000228: R3 := 0 -0000022d: R4 := 0 -00000232: R30 := 0x6B0 -00000235: call @__libc_start_main with return %00000237 - -00000237: -0000023a: R30 := 0x6B4 -0000023d: call @abort with return %000006b6 - -000006b6: -000006b7: call @call_weak_fn with noreturn - -000006b8: sub abort() - - -0000023b: -000005ba: R16 := 0x10000 -000005c1: R17 := mem[R16 + 0xFB8, el]:u64 -000005c7: R16 := R16 + 0xFB8 -000005cc: call R17 with noreturn - -000006b9: sub call_weak_fn(call_weak_fn_result) -000006cf: call_weak_fn_result :: out u32 = low:32[R0] - -0000023f: -00000242: R0 := 0x10000 -00000249: R0 := mem[R0 + 0xFE0, el]:u64 -0000024f: when R0 = 0 goto %0000024d -000006ba: goto %000004b0 - -0000024d: -00000255: call R30 with noreturn - -000004b0: -000004b3: goto @__gmon_start__ - -000004b1: -000005a4: R16 := 0x10000 -000005ab: R17 := mem[R16 + 0xFB0, el]:u64 -000005b1: R16 := R16 + 0xFB0 -000005b6: call R17 with noreturn - -000006bb: sub deregister_tm_clones(deregister_tm_clones_result) -000006d0: deregister_tm_clones_result :: out u32 = low:32[R0] - -0000025b: -0000025e: R0 := 0x11000 -00000264: R0 := R0 + 0x18 -00000269: R1 := 0x11000 -0000026f: R1 := R1 + 0x18 -00000275: #1 := ~R0 -0000027a: #2 := R1 + ~R0 -00000280: VF := extend:65[#2 + 1] <> extend:65[R1] + extend:65[#1] + 1 -00000286: CF := pad:65[#2 + 1] <> pad:65[R1] + pad:65[#1] + 1 -0000028a: ZF := #2 + 1 = 0 -0000028e: NF := 63:63[#2 + 1] -00000294: when ZF goto %00000292 -000006bc: goto %00000492 - -00000492: -00000495: R1 := 0x10000 -0000049c: R1 := mem[R1 + 0xFC8, el]:u64 -000004a1: when R1 = 0 goto %00000292 -000006bd: goto %000004a5 - -00000292: -0000029a: call R30 with noreturn - -000004a5: -000004a9: R16 := R1 -000004ae: call R16 with noreturn - -000006be: sub frame_dummy(frame_dummy_result) -000006d1: frame_dummy_result :: out u32 = low:32[R0] - -00000332: -00000334: call @register_tm_clones with noreturn - -000006bf: sub main(main_argc, main_argv, main_result) -000006d2: main_argc :: in u32 = low:32[R0] -000006d3: main_argv :: in out u64 = R1 -000006d4: main_result :: out u32 = low:32[R0] - -00000336: -0000033a: #4 := R31 - 0x30 -00000340: mem := mem with [#4, el]:u64 <- R29 -00000346: mem := mem with [#4 + 8, el]:u64 <- R30 -0000034a: R31 := #4 -00000350: R29 := R31 -00000358: mem := mem with [R31 + 0x1C, el]:u32 <- 31:0[R0] -00000360: mem := mem with [R31 + 0x10, el]:u64 <- R1 -00000365: R0 := 4 -0000036a: R30 := 0x7AC -0000036d: call @malloc with return %0000036f - -0000036f: -00000375: mem := mem with [R31 + 0x20, el]:u64 <- R0 -0000037a: R0 := 4 -0000037f: R30 := 0x7B8 -00000381: call @malloc with return %00000383 - -00000383: -00000389: mem := mem with [R31 + 0x28, el]:u64 <- R0 -0000038e: R0 := 0x10000 -00000395: R0 := mem[R0 + 0xFD8, el]:u64 -0000039c: R0 := pad:64[mem[R0, el]:u32] -000003a2: R1 := pad:64[31:0[R0] + 1] -000003a9: R0 := mem[R31 + 0x20, el]:u64 -000003b1: mem := mem with [R0, el]:u32 <- 31:0[R1] -000003b6: R0 := 0x10000 -000003bd: R0 := mem[R0 + 0xFE8, el]:u64 -000003c4: R0 := pad:64[mem[R0, el]:u32] -000003ca: R1 := pad:64[31:0[R0] + 2] -000003d1: R0 := mem[R31 + 0x28, el]:u64 -000003d9: mem := mem with [R0, el]:u32 <- 31:0[R1] -000003e0: R0 := mem[R31 + 0x20, el]:u64 -000003e7: R1 := pad:64[mem[R0, el]:u32] -000003ec: R0 := 0x10000 -000003f3: R0 := mem[R0 + 0xFD8, el]:u64 -000003fb: mem := mem with [R0, el]:u32 <- 31:0[R1] -00000402: R0 := mem[R31 + 0x28, el]:u64 -00000409: R1 := pad:64[mem[R0, el]:u32] -0000040e: R0 := 0x10000 -00000415: R0 := mem[R0 + 0xFE8, el]:u64 -0000041d: mem := mem with [R0, el]:u32 <- 31:0[R1] -00000422: R0 := 0 -00000429: R29 := mem[R31, el]:u64 -0000042e: R30 := mem[R31 + 8, el]:u64 -00000432: R31 := R31 + 0x30 -00000437: call R30 with noreturn - -000006c0: sub malloc(malloc_size, malloc_result) -000006d5: malloc_size :: in u64 = R0 -000006d6: malloc_result :: out u64 = R0 - -0000036b: -0000058e: R16 := 0x10000 -00000595: R17 := mem[R16 + 0xFA8, el]:u64 -0000059b: R16 := R16 + 0xFA8 -000005a0: call R17 with noreturn - -000006c1: sub register_tm_clones(register_tm_clones_result) -000006d7: register_tm_clones_result :: out u32 = low:32[R0] - -0000029c: -0000029f: R0 := 0x11000 -000002a5: R0 := R0 + 0x18 -000002aa: R1 := 0x11000 -000002b0: R1 := R1 + 0x18 -000002b7: R1 := R1 + ~R0 + 1 -000002bd: R2 := 0.63:63[R1] -000002c4: R1 := R2 + (R1 ~>> 3) -000002ca: R1 := extend:64[63:1[R1]] -000002d0: when R1 = 0 goto %000002ce -000006c2: goto %00000474 - -00000474: -00000477: R2 := 0x10000 -0000047e: R2 := mem[R2 + 0xFF8, el]:u64 -00000483: when R2 = 0 goto %000002ce -000006c3: goto %00000487 - -000002ce: -000002d6: call R30 with noreturn - -00000487: -0000048b: R16 := R2 -00000490: call R16 with noreturn diff --git a/src/test/memory_regions/heap_pointer/gcc_pic/heap_pointer.md5sum b/src/test/memory_regions/heap_pointer/gcc_pic/heap_pointer.md5sum new file mode 100644 index 000000000..388c22d81 --- /dev/null +++ b/src/test/memory_regions/heap_pointer/gcc_pic/heap_pointer.md5sum @@ -0,0 +1,4 @@ +5f1669bdef38a2bf18172804422a2930 memory_regions/heap_pointer/gcc_pic/a.out +ee378c6538f6495a230a566635703026 memory_regions/heap_pointer/gcc_pic/heap_pointer.relf +06104ba53742bc2cab2699610587031d memory_regions/heap_pointer/gcc_pic/heap_pointer.adt +cbdbe4a2afade5ae15937e9ea2c9a7ed memory_regions/heap_pointer/gcc_pic/heap_pointer.bir diff --git a/src/test/memory_regions/heap_pointer/gcc_pic/heap_pointer.relf b/src/test/memory_regions/heap_pointer/gcc_pic/heap_pointer.relf deleted file mode 100644 index c81f845c9..000000000 --- a/src/test/memory_regions/heap_pointer/gcc_pic/heap_pointer.relf +++ /dev/null @@ -1,127 +0,0 @@ - -Relocation section '.rela.dyn' at offset 0x480 contains 10 entries: - Offset Info Type Symbol's Value Symbol's Name + Addend -0000000000010d80 0000000000000403 R_AARCH64_RELATIVE 790 -0000000000010d88 0000000000000403 R_AARCH64_RELATIVE 740 -0000000000010fd8 0000000000000403 R_AARCH64_RELATIVE 11010 -0000000000010fe8 0000000000000403 R_AARCH64_RELATIVE 11014 -0000000000010ff0 0000000000000403 R_AARCH64_RELATIVE 794 -0000000000011008 0000000000000403 R_AARCH64_RELATIVE 11008 -0000000000010fc8 0000000400000401 R_AARCH64_GLOB_DAT 0000000000000000 _ITM_deregisterTMCloneTable + 0 -0000000000010fd0 0000000500000401 R_AARCH64_GLOB_DAT 0000000000000000 __cxa_finalize@GLIBC_2.17 + 0 -0000000000010fe0 0000000700000401 R_AARCH64_GLOB_DAT 0000000000000000 __gmon_start__ + 0 -0000000000010ff8 0000000900000401 R_AARCH64_GLOB_DAT 0000000000000000 _ITM_registerTMCloneTable + 0 - -Relocation section '.rela.plt' at offset 0x570 contains 5 entries: - Offset Info Type Symbol's Value Symbol's Name + Addend -0000000000010f98 0000000300000402 R_AARCH64_JUMP_SLOT 0000000000000000 __libc_start_main@GLIBC_2.34 + 0 -0000000000010fa0 0000000500000402 R_AARCH64_JUMP_SLOT 0000000000000000 __cxa_finalize@GLIBC_2.17 + 0 -0000000000010fa8 0000000600000402 R_AARCH64_JUMP_SLOT 0000000000000000 malloc@GLIBC_2.17 + 0 -0000000000010fb0 0000000700000402 R_AARCH64_JUMP_SLOT 0000000000000000 __gmon_start__ + 0 -0000000000010fb8 0000000800000402 R_AARCH64_JUMP_SLOT 0000000000000000 abort@GLIBC_2.17 + 0 - -Symbol table '.dynsym' contains 10 entries: - Num: Value Size Type Bind Vis Ndx Name - 0: 0000000000000000 0 NOTYPE LOCAL DEFAULT UND - 1: 00000000000005e8 0 SECTION LOCAL DEFAULT 11 .init - 2: 0000000000011000 0 SECTION LOCAL DEFAULT 22 .data - 3: 0000000000000000 0 FUNC GLOBAL DEFAULT UND __libc_start_main@GLIBC_2.34 (2) - 4: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_deregisterTMCloneTable - 5: 0000000000000000 0 FUNC WEAK DEFAULT UND __cxa_finalize@GLIBC_2.17 (3) - 6: 0000000000000000 0 FUNC GLOBAL DEFAULT UND malloc@GLIBC_2.17 (3) - 7: 0000000000000000 0 NOTYPE WEAK DEFAULT UND __gmon_start__ - 8: 0000000000000000 0 FUNC GLOBAL DEFAULT UND abort@GLIBC_2.17 (3) - 9: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_registerTMCloneTable - -Symbol table '.symtab' contains 90 entries: - Num: Value Size Type Bind Vis Ndx Name - 0: 0000000000000000 0 NOTYPE LOCAL DEFAULT UND - 1: 0000000000000238 0 SECTION LOCAL DEFAULT 1 .interp - 2: 0000000000000254 0 SECTION LOCAL DEFAULT 2 .note.gnu.build-id - 3: 0000000000000278 0 SECTION LOCAL DEFAULT 3 .note.ABI-tag - 4: 0000000000000298 0 SECTION LOCAL DEFAULT 4 .gnu.hash - 5: 00000000000002b8 0 SECTION LOCAL DEFAULT 5 .dynsym - 6: 00000000000003a8 0 SECTION LOCAL DEFAULT 6 .dynstr - 7: 000000000000043c 0 SECTION LOCAL DEFAULT 7 .gnu.version - 8: 0000000000000450 0 SECTION LOCAL DEFAULT 8 .gnu.version_r - 9: 0000000000000480 0 SECTION LOCAL DEFAULT 9 .rela.dyn - 10: 0000000000000570 0 SECTION LOCAL DEFAULT 10 .rela.plt - 11: 00000000000005e8 0 SECTION LOCAL DEFAULT 11 .init - 12: 0000000000000600 0 SECTION LOCAL DEFAULT 12 .plt - 13: 0000000000000680 0 SECTION LOCAL DEFAULT 13 .text - 14: 0000000000000820 0 SECTION LOCAL DEFAULT 14 .fini - 15: 0000000000000834 0 SECTION LOCAL DEFAULT 15 .rodata - 16: 0000000000000838 0 SECTION LOCAL DEFAULT 16 .eh_frame_hdr - 17: 0000000000000878 0 SECTION LOCAL DEFAULT 17 .eh_frame - 18: 0000000000010d80 0 SECTION LOCAL DEFAULT 18 .init_array - 19: 0000000000010d88 0 SECTION LOCAL DEFAULT 19 .fini_array - 20: 0000000000010d90 0 SECTION LOCAL DEFAULT 20 .dynamic - 21: 0000000000010f80 0 SECTION LOCAL DEFAULT 21 .got - 22: 0000000000011000 0 SECTION LOCAL DEFAULT 22 .data - 23: 0000000000011018 0 SECTION LOCAL DEFAULT 23 .bss - 24: 0000000000000000 0 SECTION LOCAL DEFAULT 24 .comment - 25: 0000000000000000 0 FILE LOCAL DEFAULT ABS Scrt1.o - 26: 0000000000000278 0 NOTYPE LOCAL DEFAULT 3 $d - 27: 0000000000000278 32 OBJECT LOCAL DEFAULT 3 __abi_tag - 28: 0000000000000680 0 NOTYPE LOCAL DEFAULT 13 $x - 29: 000000000000088c 0 NOTYPE LOCAL DEFAULT 17 $d - 30: 0000000000000834 0 NOTYPE LOCAL DEFAULT 15 $d - 31: 0000000000000000 0 FILE LOCAL DEFAULT ABS crti.o - 32: 00000000000006b4 0 NOTYPE LOCAL DEFAULT 13 $x - 33: 00000000000006b4 20 FUNC LOCAL DEFAULT 13 call_weak_fn - 34: 00000000000005e8 0 NOTYPE LOCAL DEFAULT 11 $x - 35: 0000000000000820 0 NOTYPE LOCAL DEFAULT 14 $x - 36: 0000000000000000 0 FILE LOCAL DEFAULT ABS crtn.o - 37: 00000000000005f8 0 NOTYPE LOCAL DEFAULT 11 $x - 38: 000000000000082c 0 NOTYPE LOCAL DEFAULT 14 $x - 39: 0000000000000000 0 FILE LOCAL DEFAULT ABS crtstuff.c - 40: 00000000000006d0 0 NOTYPE LOCAL DEFAULT 13 $x - 41: 00000000000006d0 0 FUNC LOCAL DEFAULT 13 deregister_tm_clones - 42: 0000000000000700 0 FUNC LOCAL DEFAULT 13 register_tm_clones - 43: 0000000000011008 0 NOTYPE LOCAL DEFAULT 22 $d - 44: 0000000000000740 0 FUNC LOCAL DEFAULT 13 __do_global_dtors_aux - 45: 0000000000011018 1 OBJECT LOCAL DEFAULT 23 completed.0 - 46: 0000000000010d88 0 NOTYPE LOCAL DEFAULT 19 $d - 47: 0000000000010d88 0 OBJECT LOCAL DEFAULT 19 __do_global_dtors_aux_fini_array_entry - 48: 0000000000000790 0 FUNC LOCAL DEFAULT 13 frame_dummy - 49: 0000000000010d80 0 NOTYPE LOCAL DEFAULT 18 $d - 50: 0000000000010d80 0 OBJECT LOCAL DEFAULT 18 __frame_dummy_init_array_entry - 51: 00000000000008a0 0 NOTYPE LOCAL DEFAULT 17 $d - 52: 0000000000011018 0 NOTYPE LOCAL DEFAULT 23 $d - 53: 0000000000000000 0 FILE LOCAL DEFAULT ABS heap_pointer.c - 54: 0000000000011010 0 NOTYPE LOCAL DEFAULT 22 $d - 55: 0000000000000794 0 NOTYPE LOCAL DEFAULT 13 $x - 56: 0000000000000900 0 NOTYPE LOCAL DEFAULT 17 $d - 57: 0000000000000000 0 FILE LOCAL DEFAULT ABS crtstuff.c - 58: 0000000000000920 0 NOTYPE LOCAL DEFAULT 17 $d - 59: 0000000000000920 0 OBJECT LOCAL DEFAULT 17 __FRAME_END__ - 60: 0000000000000000 0 FILE LOCAL DEFAULT ABS - 61: 0000000000010d90 0 OBJECT LOCAL DEFAULT ABS _DYNAMIC - 62: 0000000000000838 0 NOTYPE LOCAL DEFAULT 16 __GNU_EH_FRAME_HDR - 63: 0000000000010fc0 0 OBJECT LOCAL DEFAULT ABS _GLOBAL_OFFSET_TABLE_ - 64: 0000000000000600 0 NOTYPE LOCAL DEFAULT 12 $x - 65: 0000000000000000 0 FUNC GLOBAL DEFAULT UND __libc_start_main@GLIBC_2.34 - 66: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_deregisterTMCloneTable - 67: 0000000000011000 0 NOTYPE WEAK DEFAULT 22 data_start - 68: 0000000000011018 0 NOTYPE GLOBAL DEFAULT 23 __bss_start__ - 69: 0000000000000000 0 FUNC WEAK DEFAULT UND __cxa_finalize@GLIBC_2.17 - 70: 0000000000011020 0 NOTYPE GLOBAL DEFAULT 23 _bss_end__ - 71: 0000000000011018 0 NOTYPE GLOBAL DEFAULT 22 _edata - 72: 0000000000011010 4 OBJECT GLOBAL DEFAULT 22 x - 73: 0000000000000820 0 FUNC GLOBAL HIDDEN 14 _fini - 74: 0000000000011020 0 NOTYPE GLOBAL DEFAULT 23 __bss_end__ - 75: 0000000000000000 0 FUNC GLOBAL DEFAULT UND malloc@GLIBC_2.17 - 76: 0000000000011000 0 NOTYPE GLOBAL DEFAULT 22 __data_start - 77: 0000000000000000 0 NOTYPE WEAK DEFAULT UND __gmon_start__ - 78: 0000000000011008 0 OBJECT GLOBAL HIDDEN 22 __dso_handle - 79: 0000000000000000 0 FUNC GLOBAL DEFAULT UND abort@GLIBC_2.17 - 80: 0000000000000834 4 OBJECT GLOBAL DEFAULT 15 _IO_stdin_used - 81: 0000000000011020 0 NOTYPE GLOBAL DEFAULT 23 _end - 82: 0000000000000680 52 FUNC GLOBAL DEFAULT 13 _start - 83: 0000000000011020 0 NOTYPE GLOBAL DEFAULT 23 __end__ - 84: 0000000000011014 4 OBJECT GLOBAL DEFAULT 22 y - 85: 0000000000011018 0 NOTYPE GLOBAL DEFAULT 23 __bss_start - 86: 0000000000000794 140 FUNC GLOBAL DEFAULT 13 main - 87: 0000000000011018 0 OBJECT GLOBAL HIDDEN 22 __TMC_END__ - 88: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_registerTMCloneTable - 89: 00000000000005e8 0 FUNC GLOBAL HIDDEN 11 _init diff --git a/src/test/memory_regions/stack_pointer/clang/stack_pointer.adt b/src/test/memory_regions/stack_pointer/clang/stack_pointer.adt deleted file mode 100644 index 3a1b3d051..000000000 --- a/src/test/memory_regions/stack_pointer/clang/stack_pointer.adt +++ /dev/null @@ -1,524 +0,0 @@ -Project(Attrs([Attr("filename","\"a.out\""), -Attr("image-specification","(declare abi (name str))\n(declare arch (name str))\n(declare base-address (addr int))\n(declare bias (off int))\n(declare bits (size int))\n(declare code-region (addr int) (size int) (off int))\n(declare code-start (addr int))\n(declare entry-point (addr int))\n(declare external-reference (addr int) (name str))\n(declare format (name str))\n(declare is-executable (flag bool))\n(declare is-little-endian (flag bool))\n(declare llvm:base-address (addr int))\n(declare llvm:code-entry (name str) (off int) (size int))\n(declare llvm:coff-import-library (name str))\n(declare llvm:coff-virtual-section-header (name str) (addr int) (size int))\n(declare llvm:elf-program-header (name str) (off int) (size int))\n(declare llvm:elf-program-header-flags (name str) (ld bool) (r bool) \n (w bool) (x bool))\n(declare llvm:elf-virtual-program-header (name str) (addr int) (size int))\n(declare llvm:entry-point (addr int))\n(declare llvm:macho-symbol (name str) (value int))\n(declare llvm:name-reference (at int) (name str))\n(declare llvm:relocation (at int) (addr int))\n(declare llvm:section-entry (name str) (addr int) (size int) (off int))\n(declare llvm:section-flags (name str) (r bool) (w bool) (x bool))\n(declare llvm:segment-command (name str) (off int) (size int))\n(declare llvm:segment-command-flags (name str) (r bool) (w bool) (x bool))\n(declare llvm:symbol-entry (name str) (addr int) (size int) (off int)\n (value int))\n(declare llvm:virtual-segment-command (name str) (addr int) (size int))\n(declare mapped (addr int) (size int) (off int))\n(declare named-region (addr int) (size int) (name str))\n(declare named-symbol (addr int) (name str))\n(declare require (name str))\n(declare section (addr int) (size int))\n(declare segment (addr int) (size int) (r bool) (w bool) (x bool))\n(declare subarch (name str))\n(declare symbol-chunk (addr int) (size int) (root int))\n(declare symbol-value (addr int) (value int))\n(declare system (name str))\n(declare vendor (name str))\n\n(abi unknown)\n(arch aarch64)\n(base-address 0)\n(bias 0)\n(bits 64)\n(code-region 1876 20 1876)\n(code-region 1536 340 1536)\n(code-region 1440 96 1440)\n(code-region 1408 24 1408)\n(code-start 1588)\n(code-start 1536)\n(code-start 1812)\n(entry-point 1536)\n(external-reference 69568 _ITM_deregisterTMCloneTable)\n(external-reference 69576 __cxa_finalize)\n(external-reference 69584 __gmon_start__)\n(external-reference 69600 _ITM_registerTMCloneTable)\n(external-reference 69632 __libc_start_main)\n(external-reference 69640 __cxa_finalize)\n(external-reference 69648 __gmon_start__)\n(external-reference 69656 abort)\n(format elf)\n(is-executable true)\n(is-little-endian true)\n(llvm:base-address 0)\n(llvm:code-entry abort 0 0)\n(llvm:code-entry __cxa_finalize 0 0)\n(llvm:code-entry __libc_start_main 0 0)\n(llvm:code-entry _init 1408 0)\n(llvm:code-entry main 1812 64)\n(llvm:code-entry _start 1536 52)\n(llvm:code-entry abort@GLIBC_2.17 0 0)\n(llvm:code-entry _fini 1876 0)\n(llvm:code-entry __cxa_finalize@GLIBC_2.17 0 0)\n(llvm:code-entry __libc_start_main@GLIBC_2.34 0 0)\n(llvm:code-entry frame_dummy 1808 0)\n(llvm:code-entry __do_global_dtors_aux 1728 0)\n(llvm:code-entry register_tm_clones 1664 0)\n(llvm:code-entry deregister_tm_clones 1616 0)\n(llvm:code-entry call_weak_fn 1588 20)\n(llvm:code-entry .fini 1876 20)\n(llvm:code-entry .text 1536 340)\n(llvm:code-entry .plt 1440 96)\n(llvm:code-entry .init 1408 24)\n(llvm:elf-program-header 08 3528 568)\n(llvm:elf-program-header 07 0 0)\n(llvm:elf-program-header 06 1900 60)\n(llvm:elf-program-header 05 596 68)\n(llvm:elf-program-header 04 3544 480)\n(llvm:elf-program-header 03 3528 620)\n(llvm:elf-program-header 02 0 2144)\n(llvm:elf-program-header 01 568 27)\n(llvm:elf-program-header 00 64 504)\n(llvm:elf-program-header-flags 08 false true false false)\n(llvm:elf-program-header-flags 07 false true true false)\n(llvm:elf-program-header-flags 06 false true false false)\n(llvm:elf-program-header-flags 05 false true false false)\n(llvm:elf-program-header-flags 04 false true true false)\n(llvm:elf-program-header-flags 03 true true true false)\n(llvm:elf-program-header-flags 02 true true false true)\n(llvm:elf-program-header-flags 01 false true false false)\n(llvm:elf-program-header-flags 00 false true false false)\n(llvm:elf-virtual-program-header 08 69064 568)\n(llvm:elf-virtual-program-header 07 0 0)\n(llvm:elf-virtual-program-header 06 1900 60)\n(llvm:elf-virtual-program-header 05 596 68)\n(llvm:elf-virtual-program-header 04 69080 480)\n(llvm:elf-virtual-program-header 03 69064 640)\n(llvm:elf-virtual-program-header 02 0 2144)\n(llvm:elf-virtual-program-header 01 568 27)\n(llvm:elf-virtual-program-header 00 64 504)\n(llvm:entry-point 1536)\n(llvm:name-reference 69656 abort)\n(llvm:name-reference 69648 __gmon_start__)\n(llvm:name-reference 69640 __cxa_finalize)\n(llvm:name-reference 69632 __libc_start_main)\n(llvm:name-reference 69600 _ITM_registerTMCloneTable)\n(llvm:name-reference 69584 __gmon_start__)\n(llvm:name-reference 69576 __cxa_finalize)\n(llvm:name-reference 69568 _ITM_deregisterTMCloneTable)\n(llvm:section-entry .shstrtab 0 259 7006)\n(llvm:section-entry .strtab 0 574 6432)\n(llvm:section-entry .symtab 0 2208 4224)\n(llvm:section-entry .comment 0 71 4148)\n(llvm:section-entry .bss 69688 16 4148)\n(llvm:section-entry .data 69664 20 4128)\n(llvm:section-entry .got.plt 69608 56 4072)\n(llvm:section-entry .got 69560 48 4024)\n(llvm:section-entry .dynamic 69080 480 3544)\n(llvm:section-entry .fini_array 69072 8 3536)\n(llvm:section-entry .init_array 69064 8 3528)\n(llvm:section-entry .eh_frame 1960 184 1960)\n(llvm:section-entry .eh_frame_hdr 1900 60 1900)\n(llvm:section-entry .rodata 1896 4 1896)\n(llvm:section-entry .fini 1876 20 1876)\n(llvm:section-entry .text 1536 340 1536)\n(llvm:section-entry .plt 1440 96 1440)\n(llvm:section-entry .init 1408 24 1408)\n(llvm:section-entry .rela.plt 1312 96 1312)\n(llvm:section-entry .rela.dyn 1120 192 1120)\n(llvm:section-entry .gnu.version_r 1072 48 1072)\n(llvm:section-entry .gnu.version 1054 18 1054)\n(llvm:section-entry .dynstr 912 141 912)\n(llvm:section-entry .dynsym 696 216 696)\n(llvm:section-entry .gnu.hash 664 28 664)\n(llvm:section-entry .note.ABI-tag 632 32 632)\n(llvm:section-entry .note.gnu.build-id 596 36 596)\n(llvm:section-entry .interp 568 27 568)\n(llvm:section-flags .shstrtab true false false)\n(llvm:section-flags .strtab true false false)\n(llvm:section-flags .symtab true false false)\n(llvm:section-flags .comment true false false)\n(llvm:section-flags .bss true true false)\n(llvm:section-flags .data true true false)\n(llvm:section-flags .got.plt true true false)\n(llvm:section-flags .got true true false)\n(llvm:section-flags .dynamic true true false)\n(llvm:section-flags .fini_array true true false)\n(llvm:section-flags .init_array true true false)\n(llvm:section-flags .eh_frame true false false)\n(llvm:section-flags .eh_frame_hdr true false false)\n(llvm:section-flags .rodata true false false)\n(llvm:section-flags .fini true false true)\n(llvm:section-flags .text true false true)\n(llvm:section-flags .plt true false true)\n(llvm:section-flags .init true false true)\n(llvm:section-flags .rela.plt true false false)\n(llvm:section-flags .rela.dyn true false false)\n(llvm:section-flags .gnu.version_r true false false)\n(llvm:section-flags .gnu.version true false false)\n(llvm:section-flags .dynstr true false false)\n(llvm:section-flags .dynsym true false false)\n(llvm:section-flags .gnu.hash true false false)\n(llvm:section-flags .note.ABI-tag true false false)\n(llvm:section-flags .note.gnu.build-id true false false)\n(llvm:section-flags .interp true false false)\n(llvm:symbol-entry abort 0 0 0 0)\n(llvm:symbol-entry __cxa_finalize 0 0 0 0)\n(llvm:symbol-entry __libc_start_main 0 0 0 0)\n(llvm:symbol-entry _init 1408 0 1408 1408)\n(llvm:symbol-entry main 1812 64 1812 1812)\n(llvm:symbol-entry _start 1536 52 1536 1536)\n(llvm:symbol-entry abort@GLIBC_2.17 0 0 0 0)\n(llvm:symbol-entry _fini 1876 0 1876 1876)\n(llvm:symbol-entry __cxa_finalize@GLIBC_2.17 0 0 0 0)\n(llvm:symbol-entry __libc_start_main@GLIBC_2.34 0 0 0 0)\n(llvm:symbol-entry frame_dummy 1808 0 1808 1808)\n(llvm:symbol-entry __do_global_dtors_aux 1728 0 1728 1728)\n(llvm:symbol-entry register_tm_clones 1664 0 1664 1664)\n(llvm:symbol-entry deregister_tm_clones 1616 0 1616 1616)\n(llvm:symbol-entry call_weak_fn 1588 20 1588 1588)\n(mapped 0 2144 0)\n(mapped 69064 620 3528)\n(named-region 0 2144 02)\n(named-region 69064 640 03)\n(named-region 568 27 .interp)\n(named-region 596 36 .note.gnu.build-id)\n(named-region 632 32 .note.ABI-tag)\n(named-region 664 28 .gnu.hash)\n(named-region 696 216 .dynsym)\n(named-region 912 141 .dynstr)\n(named-region 1054 18 .gnu.version)\n(named-region 1072 48 .gnu.version_r)\n(named-region 1120 192 .rela.dyn)\n(named-region 1312 96 .rela.plt)\n(named-region 1408 24 .init)\n(named-region 1440 96 .plt)\n(named-region 1536 340 .text)\n(named-region 1876 20 .fini)\n(named-region 1896 4 .rodata)\n(named-region 1900 60 .eh_frame_hdr)\n(named-region 1960 184 .eh_frame)\n(named-region 69064 8 .init_array)\n(named-region 69072 8 .fini_array)\n(named-region 69080 480 .dynamic)\n(named-region 69560 48 .got)\n(named-region 69608 56 .got.plt)\n(named-region 69664 20 .data)\n(named-region 69688 16 .bss)\n(named-region 0 71 .comment)\n(named-region 0 2208 .symtab)\n(named-region 0 574 .strtab)\n(named-region 0 259 .shstrtab)\n(named-symbol 1588 call_weak_fn)\n(named-symbol 1616 deregister_tm_clones)\n(named-symbol 1664 register_tm_clones)\n(named-symbol 1728 __do_global_dtors_aux)\n(named-symbol 1808 frame_dummy)\n(named-symbol 0 __libc_start_main@GLIBC_2.34)\n(named-symbol 0 __cxa_finalize@GLIBC_2.17)\n(named-symbol 1876 _fini)\n(named-symbol 0 abort@GLIBC_2.17)\n(named-symbol 1536 _start)\n(named-symbol 1812 main)\n(named-symbol 1408 _init)\n(named-symbol 0 __libc_start_main)\n(named-symbol 0 __cxa_finalize)\n(named-symbol 0 abort)\n(require libc.so.6)\n(section 568 27)\n(section 596 36)\n(section 632 32)\n(section 664 28)\n(section 696 216)\n(section 912 141)\n(section 1054 18)\n(section 1072 48)\n(section 1120 192)\n(section 1312 96)\n(section 1408 24)\n(section 1440 96)\n(section 1536 340)\n(section 1876 20)\n(section 1896 4)\n(section 1900 60)\n(section 1960 184)\n(section 69064 8)\n(section 69072 8)\n(section 69080 480)\n(section 69560 48)\n(section 69608 56)\n(section 69664 20)\n(section 69688 16)\n(section 0 71)\n(section 0 2208)\n(section 0 574)\n(section 0 259)\n(segment 0 2144 true false true)\n(segment 69064 640 true true false)\n(subarch v8)\n(symbol-chunk 1588 20 1588)\n(symbol-chunk 1536 52 1536)\n(symbol-chunk 1812 64 1812)\n(symbol-value 1588 1588)\n(symbol-value 1616 1616)\n(symbol-value 1664 1664)\n(symbol-value 1728 1728)\n(symbol-value 1808 1808)\n(symbol-value 1876 1876)\n(symbol-value 1536 1536)\n(symbol-value 1812 1812)\n(symbol-value 1408 1408)\n(symbol-value 0 0)\n(system \"\")\n(vendor \"\")\n"), -Attr("abi-name","\"aarch64-linux-gnu-elf\"")]), -Sections([Section(".shstrtab", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x00\x06\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x68\x1c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x38\x00\x09\x00\x40\x00\x1d\x00\x1c\x00\x06\x00\x00\x00\x04\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x04\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x60\x08\x00\x00\x00\x00\x00\x00\x60\x08\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x01\x00\x00\x00\x06\x00\x00\x00\xc8\x0d\x00\x00\x00\x00\x00\x00\xc8\x0d\x01\x00\x00\x00\x00\x00\xc8\x0d\x01"), -Section(".strtab", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x00\x06\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x68\x1c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x38\x00\x09\x00\x40\x00\x1d\x00\x1c\x00\x06\x00\x00\x00\x04\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x04\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x60\x08\x00\x00\x00\x00\x00\x00\x60\x08\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x01\x00\x00\x00\x06\x00\x00\x00\xc8\x0d\x00\x00\x00\x00\x00\x00\xc8\x0d\x01\x00\x00\x00\x00\x00\xc8\x0d\x01\x00\x00\x00\x00\x00\x6c\x02\x00\x00\x00\x00\x00\x00\x80\x02\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x02\x00\x00\x00\x06\x00\x00\x00\xd8\x0d\x00\x00\x00\x00\x00\x00\xd8\x0d\x01\x00\x00\x00\x00\x00\xd8\x0d\x01\x00\x00\x00\x00\x00\xe0\x01\x00\x00\x00\x00\x00\x00\xe0\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x04\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x50\xe5\x74\x64\x04\x00\x00\x00\x6c\x07\x00\x00\x00\x00\x00\x00\x6c\x07\x00\x00\x00\x00\x00\x00\x6c\x07\x00\x00\x00\x00\x00\x00\x3c\x00\x00\x00\x00\x00\x00\x00\x3c\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x51\xe5\x74\x64\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x52\xe5\x74\x64\x04\x00\x00\x00\xc8\x0d\x00\x00\x00\x00\x00\x00\xc8\x0d\x01\x00\x00\x00\x00\x00\xc8\x0d\x01\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x2f\x6c\x69\x62\x2f\x6c"), -Section(".comment", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x00\x06\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x68\x1c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x38\x00\x09\x00\x40\x00\x1d\x00\x1c\x00\x06\x00\x00\x00\x04\x00\x00"), -Section(".interp", 0x238, "\x2f\x6c\x69\x62\x2f\x6c\x64\x2d\x6c\x69\x6e\x75\x78\x2d\x61\x61\x72\x63\x68\x36\x34\x2e\x73\x6f\x2e\x31\x00"), -Section(".note.gnu.build-id", 0x254, "\x04\x00\x00\x00\x14\x00\x00\x00\x03\x00\x00\x00\x47\x4e\x55\x00\xa4\xb4\xb4\xee\x9b\xf9\xb4\x1d\xa0\x76\x9f\xb7\xa8\x51\x4f\xb9\x1b\x27\x2f\x2c"), -Section(".note.ABI-tag", 0x278, "\x04\x00\x00\x00\x10\x00\x00\x00\x01\x00\x00\x00\x47\x4e\x55\x00\x00\x00\x00\x00\x03\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00"), -Section(".gnu.hash", 0x298, "\x01\x00\x00\x00\x01\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".dynsym", 0x2B8, "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x0b\x00\x80\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x17\x00\x20\x10\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x48\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x22\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x22\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x73\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".dynstr", 0x390, "\x00\x5f\x5f\x63\x78\x61\x5f\x66\x69\x6e\x61\x6c\x69\x7a\x65\x00\x5f\x5f\x6c\x69\x62\x63\x5f\x73\x74\x61\x72\x74\x5f\x6d\x61\x69\x6e\x00\x61\x62\x6f\x72\x74\x00\x6c\x69\x62\x63\x2e\x73\x6f\x2e\x36\x00\x47\x4c\x49\x42\x43\x5f\x32\x2e\x31\x37\x00\x47\x4c\x49\x42\x43\x5f\x32\x2e\x33\x34\x00\x5f\x49\x54\x4d\x5f\x64\x65\x72\x65\x67\x69\x73\x74\x65\x72\x54\x4d\x43\x6c\x6f\x6e\x65\x54\x61\x62\x6c\x65\x00\x5f\x5f\x67\x6d\x6f\x6e\x5f\x73\x74\x61\x72\x74\x5f\x5f\x00\x5f\x49\x54\x4d\x5f\x72\x65\x67\x69\x73\x74\x65\x72\x54\x4d\x43\x6c\x6f\x6e\x65\x54\x61\x62\x6c\x65\x00"), -Section(".gnu.version", 0x41E, "\x00\x00\x00\x00\x00\x00\x02\x00\x01\x00\x03\x00\x01\x00\x03\x00\x01\x00"), -Section(".gnu.version_r", 0x430, "\x01\x00\x02\x00\x28\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x97\x91\x96\x06\x00\x00\x03\x00\x32\x00\x00\x00\x10\x00\x00\x00\xb4\x91\x96\x06\x00\x00\x02\x00\x3d\x00\x00\x00\x00\x00\x00\x00"), -Section(".rela.dyn", 0x460, "\xc8\x0d\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x10\x07\x00\x00\x00\x00\x00\x00\xd0\x0d\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\xc0\x06\x00\x00\x00\x00\x00\x00\xd8\x0f\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x14\x07\x00\x00\x00\x00\x00\x00\x28\x10\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x28\x10\x01\x00\x00\x00\x00\x00\xc0\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xc8\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xd0\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe0\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".rela.plt", 0x520, "\x00\x10\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x08\x10\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x10\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x18\x10\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".init", 0x580, "\x1f\x20\x03\xd5\xfd\x7b\xbf\xa9\xfd\x03\x00\x91\x2a\x00\x00\x94\xfd\x7b\xc1\xa8\xc0\x03\x5f\xd6"), -Section(".plt", 0x5A0, "\xf0\x7b\xbf\xa9\x90\x00\x00\x90\x11\xfe\x47\xf9\x10\xe2\x3f\x91\x20\x02\x1f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x90\x00\x00\xb0\x11\x02\x40\xf9\x10\x02\x00\x91\x20\x02\x1f\xd6\x90\x00\x00\xb0\x11\x06\x40\xf9\x10\x22\x00\x91\x20\x02\x1f\xd6\x90\x00\x00\xb0\x11\x0a\x40\xf9\x10\x42\x00\x91\x20\x02\x1f\xd6\x90\x00\x00\xb0\x11\x0e\x40\xf9\x10\x62\x00\x91\x20\x02\x1f\xd6"), -Section(".text", 0x600, "\x1f\x20\x03\xd5\x1d\x00\x80\xd2\x1e\x00\x80\xd2\xe5\x03\x00\xaa\xe1\x03\x40\xf9\xe2\x23\x00\x91\xe6\x03\x00\x91\x80\x00\x00\x90\x00\xec\x47\xf9\x03\x00\x80\xd2\x04\x00\x80\xd2\xe5\xff\xff\x97\xf0\xff\xff\x97\x80\x00\x00\x90\x00\xe8\x47\xf9\x40\x00\x00\xb4\xe8\xff\xff\x17\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x80\x00\x00\xb0\x00\xe0\x00\x91\x81\x00\x00\xb0\x21\xe0\x00\x91\x3f\x00\x00\xeb\xc0\x00\x00\x54\x81\x00\x00\x90\x21\xe0\x47\xf9\x61\x00\x00\xb4\xf0\x03\x01\xaa\x00\x02\x1f\xd6\xc0\x03\x5f\xd6\x80\x00\x00\xb0\x00\xe0\x00\x91\x81\x00\x00\xb0\x21\xe0\x00\x91\x21\x00\x00\xcb\x22\xfc\x7f\xd3\x41\x0c\x81\x8b\x21\xfc\x41\x93\xc1\x00\x00\xb4\x82\x00\x00\x90\x42\xf0\x47\xf9\x62\x00\x00\xb4\xf0\x03\x02\xaa\x00\x02\x1f\xd6\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\xfd\x7b\xbe\xa9\xfd\x03\x00\x91\xf3\x0b\x00\xf9\x93\x00\x00\xb0\x60\xe2\x40\x39\x40\x01\x00\x35\x80\x00\x00\x90\x00\xe4\x47\xf9\x80\x00\x00\xb4\x80\x00\x00\xb0\x00\x14\x40\xf9\xb9\xff\xff\x97\xd8\xff\xff\x97\x20\x00\x80\x52\x60\xe2\x00\x39\xf3\x0b\x40\xf9\xfd\x7b\xc2\xa8\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\xdc\xff\xff\x17\xff\x83\x00\xd1\xe0\x1f\x00\xb9\xe1\x0b\x00\xf9\x89\x00\x00\xb0\x28\x31\x40\xb9\xea\x33\x00\x91\xe8\x0f\x00\xb9\x88\x00\x00\xb0\x0a\x21\x00\xf9\x08\x21\x40\xf9\x08\x01\x40\xb9\x08\x05\x00\x11\x28\x31\x00\xb9\xe0\x03\x1f\x2a\xff\x83\x00\x91\xc0\x03\x5f\xd6"), -Section(".fini", 0x754, "\x1f\x20\x03\xd5\xfd\x7b\xbf\xa9\xfd\x03\x00\x91\xfd\x7b\xc1\xa8\xc0\x03\x5f\xd6"), -Section(".rodata", 0x768, "\x01\x00\x02\x00"), -Section(".eh_frame_hdr", 0x76C, "\x01\x1b\x03\x3b\x38\x00\x00\x00\x06\x00\x00\x00\x94\xfe\xff\xff\x50\x00\x00\x00\xe4\xfe\xff\xff\x64\x00\x00\x00\x14\xff\xff\xff\x78\x00\x00\x00\x54\xff\xff\xff\x8c\x00\x00\x00\xa4\xff\xff\xff\xb0\x00\x00\x00\xa8\xff\xff\xff\xd8\x00\x00\x00"), -Section(".eh_frame", 0x7A8, "\x10\x00\x00\x00\x00\x00\x00\x00\x01\x7a\x52\x00\x04\x78\x1e\x01\x1b\x0c\x1f\x00\x10\x00\x00\x00\x18\x00\x00\x00\x3c\xfe\xff\xff\x34\x00\x00\x00\x00\x41\x07\x1e\x10\x00\x00\x00\x2c\x00\x00\x00\x78\xfe\xff\xff\x30\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x40\x00\x00\x00\x94\xfe\xff\xff\x3c\x00\x00\x00\x00\x00\x00\x00\x20\x00\x00\x00\x54\x00\x00\x00\xc0\xfe\xff\xff\x48\x00\x00\x00\x00\x41\x0e\x20\x9d\x04\x9e\x03\x42\x93\x02\x4e\xde\xdd\xd3\x0e\x00\x00\x00\x00\x10\x00\x00\x00\x78\x00\x00\x00\xec\xfe\xff\xff\x04\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x01\x7a\x52\x00\x01\x7c\x1e\x01\x1b\x0c\x1f\x00\x14\x00\x00\x00\x18\x00\x00\x00\xc8\xfe\xff\xff\x40\x00\x00\x00\x00\x44\x0e\x20\x78\x0e\x00\x00\x00\x00\x00\x00"), -Section(".fini_array", 0x10DD0, "\xc0\x06\x00\x00\x00\x00\x00\x00"), -Section(".dynamic", 0x10DD8, "\x01\x00\x00\x00\x00\x00\x00\x00\x28\x00\x00\x00\x00\x00\x00\x00\x0c\x00\x00\x00\x00\x00\x00\x00\x80\x05\x00\x00\x00\x00\x00\x00\x0d\x00\x00\x00\x00\x00\x00\x00\x54\x07\x00\x00\x00\x00\x00\x00\x19\x00\x00\x00\x00\x00\x00\x00\xc8\x0d\x01\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x1a\x00\x00\x00\x00\x00\x00\x00\xd0\x0d\x01\x00\x00\x00\x00\x00\x1c\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\xf5\xfe\xff\x6f\x00\x00\x00\x00\x98\x02\x00\x00\x00\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x90\x03\x00\x00\x00\x00\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\xb8\x02\x00\x00\x00\x00\x00\x00\x0a\x00\x00\x00\x00\x00\x00\x00\x8d\x00\x00\x00\x00\x00\x00\x00\x0b\x00\x00\x00\x00\x00\x00\x00\x18\x00\x00\x00\x00\x00\x00\x00\x15\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\xe8\x0f\x01\x00\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x60\x00\x00\x00\x00\x00\x00\x00\x14\x00\x00\x00\x00\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x17\x00\x00\x00\x00\x00\x00\x00\x20\x05\x00\x00\x00\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x60\x04\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\xc0\x00\x00\x00\x00\x00\x00\x00\x09\x00\x00\x00\x00\x00\x00\x00\x18\x00\x00\x00\x00\x00\x00\x00\xfb\xff\xff\x6f\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\xfe\xff\xff\x6f\x00\x00\x00\x00\x30\x04\x00\x00\x00\x00\x00\x00\xff\xff\xff\x6f\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\xf0\xff\xff\x6f\x00\x00\x00\x00\x1e\x04\x00\x00\x00\x00\x00\x00\xf9\xff\xff\x6f\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".init_array", 0x10DC8, "\x10\x07\x00\x00\x00\x00\x00\x00"), -Section(".got", 0x10FB8, "\xd8\x0d\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x14\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".got.plt", 0x10FE8, "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xa0\x05\x00\x00\x00\x00\x00\x00\xa0\x05\x00\x00\x00\x00\x00\x00\xa0\x05\x00\x00\x00\x00\x00\x00\xa0\x05\x00\x00\x00\x00\x00\x00"), -Section(".data", 0x11020, "\x00\x00\x00\x00\x00\x00\x00\x00\x28\x10\x01\x00\x00\x00\x00\x00\x02\x00\x00\x00")]), -Memmap([Annotation(Region(0x0,0x85F), Attr("segment","02 0 2144")), -Annotation(Region(0x600,0x633), Attr("symbol","\"_start\"")), -Annotation(Region(0x0,0x102), Attr("section","\".shstrtab\"")), -Annotation(Region(0x0,0x23D), Attr("section","\".strtab\"")), -Annotation(Region(0x0,0x46), Attr("section","\".comment\"")), -Annotation(Region(0x238,0x252), Attr("section","\".interp\"")), -Annotation(Region(0x254,0x277), Attr("section","\".note.gnu.build-id\"")), -Annotation(Region(0x278,0x297), Attr("section","\".note.ABI-tag\"")), -Annotation(Region(0x298,0x2B3), Attr("section","\".gnu.hash\"")), -Annotation(Region(0x2B8,0x38F), Attr("section","\".dynsym\"")), -Annotation(Region(0x390,0x41C), Attr("section","\".dynstr\"")), -Annotation(Region(0x41E,0x42F), Attr("section","\".gnu.version\"")), -Annotation(Region(0x430,0x45F), Attr("section","\".gnu.version_r\"")), -Annotation(Region(0x460,0x51F), Attr("section","\".rela.dyn\"")), -Annotation(Region(0x520,0x57F), Attr("section","\".rela.plt\"")), -Annotation(Region(0x580,0x597), Attr("section","\".init\"")), -Annotation(Region(0x5A0,0x5FF), Attr("section","\".plt\"")), -Annotation(Region(0x580,0x597), Attr("code-region","()")), -Annotation(Region(0x5A0,0x5FF), Attr("code-region","()")), -Annotation(Region(0x600,0x633), Attr("symbol-info","_start 0x600 52")), -Annotation(Region(0x634,0x647), Attr("symbol","\"call_weak_fn\"")), -Annotation(Region(0x634,0x647), Attr("symbol-info","call_weak_fn 0x634 20")), -Annotation(Region(0x600,0x753), Attr("section","\".text\"")), -Annotation(Region(0x600,0x753), Attr("code-region","()")), -Annotation(Region(0x714,0x753), Attr("symbol","\"main\"")), -Annotation(Region(0x714,0x753), Attr("symbol-info","main 0x714 64")), -Annotation(Region(0x754,0x767), Attr("section","\".fini\"")), -Annotation(Region(0x754,0x767), Attr("code-region","()")), -Annotation(Region(0x768,0x76B), Attr("section","\".rodata\"")), -Annotation(Region(0x76C,0x7A7), Attr("section","\".eh_frame_hdr\"")), -Annotation(Region(0x7A8,0x85F), Attr("section","\".eh_frame\"")), -Annotation(Region(0x10DC8,0x11033), Attr("segment","03 0x10DC8 640")), -Annotation(Region(0x10DD0,0x10DD7), Attr("section","\".fini_array\"")), -Annotation(Region(0x10DD8,0x10FB7), Attr("section","\".dynamic\"")), -Annotation(Region(0x10DC8,0x10DCF), Attr("section","\".init_array\"")), -Annotation(Region(0x10FB8,0x10FE7), Attr("section","\".got\"")), -Annotation(Region(0x10FE8,0x1101F), Attr("section","\".got.plt\"")), -Annotation(Region(0x11020,0x11033), Attr("section","\".data\""))]), -Program(Tid(1_532, "%000005fc"), Attrs([]), - Subs([Sub(Tid(1_510, "@__cxa_finalize"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x5D0"), -Attr("stub","()")]), "__cxa_finalize", Args([Arg(Tid(1_533, "%000005fd"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("__cxa_finalize_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(906, "@__cxa_finalize"), - Attrs([Attr("address","0x5D0")]), Phis([]), -Defs([Def(Tid(1_154, "%00000482"), Attrs([Attr("address","0x5D0"), -Attr("insn","adrp x16, #69632")]), Var("R16",Imm(64)), Int(69632,64)), -Def(Tid(1_161, "%00000489"), Attrs([Attr("address","0x5D4"), -Attr("insn","ldr x17, [x16, #0x8]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(1_167, "%0000048f"), Attrs([Attr("address","0x5D8"), -Attr("insn","add x16, x16, #0x8")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(8,64)))]), Jmps([Call(Tid(1_172, "%00000494"), - Attrs([Attr("address","0x5DC"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), -Sub(Tid(1_511, "@__do_global_dtors_aux"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x6C0")]), - "__do_global_dtors_aux", Args([Arg(Tid(1_534, "%000005fe"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("__do_global_dtors_aux_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(654, "@__do_global_dtors_aux"), - Attrs([Attr("address","0x6C0")]), Phis([]), Defs([Def(Tid(658, "%00000292"), - Attrs([Attr("address","0x6C0"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("#3",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(18446744073709551584,64))), -Def(Tid(664, "%00000298"), Attrs([Attr("address","0x6C0"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("#3",Imm(64)),Var("R29",Imm(64)),LittleEndian(),64)), -Def(Tid(670, "%0000029e"), Attrs([Attr("address","0x6C0"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("#3",Imm(64)),Int(8,64)),Var("R30",Imm(64)),LittleEndian(),64)), -Def(Tid(674, "%000002a2"), Attrs([Attr("address","0x6C0"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("R31",Imm(64)), -Var("#3",Imm(64))), Def(Tid(680, "%000002a8"), - Attrs([Attr("address","0x6C4"), Attr("insn","mov x29, sp")]), - Var("R29",Imm(64)), Var("R31",Imm(64))), Def(Tid(688, "%000002b0"), - Attrs([Attr("address","0x6C8"), Attr("insn","str x19, [sp, #0x10]")]), - Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(16,64)),Var("R19",Imm(64)),LittleEndian(),64)), -Def(Tid(693, "%000002b5"), Attrs([Attr("address","0x6CC"), -Attr("insn","adrp x19, #69632")]), Var("R19",Imm(64)), Int(69632,64)), -Def(Tid(700, "%000002bc"), Attrs([Attr("address","0x6D0"), -Attr("insn","ldrb w0, [x19, #0x38]")]), Var("R0",Imm(64)), -UNSIGNED(64,Load(Var("mem",Mem(64,8)),PLUS(Var("R19",Imm(64)),Int(56,64)),LittleEndian(),8)))]), -Jmps([Goto(Tid(707, "%000002c3"), Attrs([Attr("address","0x6D4"), -Attr("insn","cbnz w0, #0x28")]), - NEQ(Extract(31,0,Var("R0",Imm(64))),Int(0,32)), -Direct(Tid(705, "%000002c1"))), Goto(Tid(1_512, "%000005e8"), Attrs([]), - Int(1,1), Direct(Tid(851, "%00000353")))])), Blk(Tid(851, "%00000353"), - Attrs([Attr("address","0x6D8")]), Phis([]), Defs([Def(Tid(854, "%00000356"), - Attrs([Attr("address","0x6D8"), Attr("insn","adrp x0, #65536")]), - Var("R0",Imm(64)), Int(65536,64)), Def(Tid(861, "%0000035d"), - Attrs([Attr("address","0x6DC"), Attr("insn","ldr x0, [x0, #0xfc8]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(4040,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(867, "%00000363"), Attrs([Attr("address","0x6E0"), -Attr("insn","cbz x0, #0x10")]), EQ(Var("R0",Imm(64)),Int(0,64)), -Direct(Tid(865, "%00000361"))), Goto(Tid(1_513, "%000005e9"), Attrs([]), - Int(1,1), Direct(Tid(890, "%0000037a")))])), Blk(Tid(890, "%0000037a"), - Attrs([Attr("address","0x6E4")]), Phis([]), Defs([Def(Tid(893, "%0000037d"), - Attrs([Attr("address","0x6E4"), Attr("insn","adrp x0, #69632")]), - Var("R0",Imm(64)), Int(69632,64)), Def(Tid(900, "%00000384"), - Attrs([Attr("address","0x6E8"), Attr("insn","ldr x0, [x0, #0x28]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(40,64)),LittleEndian(),64)), -Def(Tid(905, "%00000389"), Attrs([Attr("address","0x6EC"), -Attr("insn","bl #-0x11c")]), Var("R30",Imm(64)), Int(1776,64))]), -Jmps([Call(Tid(908, "%0000038c"), Attrs([Attr("address","0x6EC"), -Attr("insn","bl #-0x11c")]), Int(1,1), -(Direct(Tid(1_510, "@__cxa_finalize")),Direct(Tid(865, "%00000361"))))])), -Blk(Tid(865, "%00000361"), Attrs([Attr("address","0x6F0")]), Phis([]), -Defs([Def(Tid(873, "%00000369"), Attrs([Attr("address","0x6F0"), -Attr("insn","bl #-0xa0")]), Var("R30",Imm(64)), Int(1780,64))]), -Jmps([Call(Tid(875, "%0000036b"), Attrs([Attr("address","0x6F0"), -Attr("insn","bl #-0xa0")]), Int(1,1), -(Direct(Tid(1_524, "@deregister_tm_clones")),Direct(Tid(877, "%0000036d"))))])), -Blk(Tid(877, "%0000036d"), Attrs([Attr("address","0x6F4")]), Phis([]), -Defs([Def(Tid(880, "%00000370"), Attrs([Attr("address","0x6F4"), -Attr("insn","mov w0, #0x1")]), Var("R0",Imm(64)), Int(1,64)), -Def(Tid(888, "%00000378"), Attrs([Attr("address","0x6F8"), -Attr("insn","strb w0, [x19, #0x38]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R19",Imm(64)),Int(56,64)),Extract(7,0,Var("R0",Imm(64))),LittleEndian(),8))]), -Jmps([Goto(Tid(1_514, "%000005ea"), Attrs([]), Int(1,1), -Direct(Tid(705, "%000002c1")))])), Blk(Tid(705, "%000002c1"), - Attrs([Attr("address","0x6FC")]), Phis([]), Defs([Def(Tid(715, "%000002cb"), - Attrs([Attr("address","0x6FC"), Attr("insn","ldr x19, [sp, #0x10]")]), - Var("R19",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(16,64)),LittleEndian(),64)), -Def(Tid(722, "%000002d2"), Attrs([Attr("address","0x700"), -Attr("insn","ldp x29, x30, [sp], #0x20")]), Var("R29",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(727, "%000002d7"), Attrs([Attr("address","0x700"), -Attr("insn","ldp x29, x30, [sp], #0x20")]), Var("R30",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(731, "%000002db"), Attrs([Attr("address","0x700"), -Attr("insn","ldp x29, x30, [sp], #0x20")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(32,64)))]), Jmps([Call(Tid(736, "%000002e0"), - Attrs([Attr("address","0x704"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), Sub(Tid(1_515, "@__libc_start_main"), - Attrs([Attr("c.proto","signed (*)(signed (*)(signed , char** , char** );* main, signed , char** , \nvoid* auxv)"), -Attr("address","0x5C0"), Attr("stub","()")]), "__libc_start_main", - Args([Arg(Tid(1_535, "%000005ff"), - Attrs([Attr("c.layout","**[ : 64]"), -Attr("c.data","Top:u64 ptr ptr"), -Attr("c.type","signed (*)(signed , char** , char** );*")]), - Var("__libc_start_main_main",Imm(64)), Var("R0",Imm(64)), In()), -Arg(Tid(1_536, "%00000600"), Attrs([Attr("c.layout","[signed : 32]"), -Attr("c.data","Top:u32"), Attr("c.type","signed")]), - Var("__libc_start_main_arg2",Imm(32)), LOW(32,Var("R1",Imm(64))), In()), -Arg(Tid(1_537, "%00000601"), Attrs([Attr("c.layout","**[char : 8]"), -Attr("c.data","Top:u8 ptr ptr"), Attr("c.type","char**")]), - Var("__libc_start_main_arg3",Imm(64)), Var("R2",Imm(64)), Both()), -Arg(Tid(1_538, "%00000602"), Attrs([Attr("c.layout","*[ : 8]"), -Attr("c.data","{} ptr"), Attr("c.type","void*")]), - Var("__libc_start_main_auxv",Imm(64)), Var("R3",Imm(64)), Both()), -Arg(Tid(1_539, "%00000603"), Attrs([Attr("c.layout","[signed : 32]"), -Attr("c.data","Top:u32"), Attr("c.type","signed")]), - Var("__libc_start_main_result",Imm(32)), LOW(32,Var("R0",Imm(64))), -Out())]), Blks([Blk(Tid(487, "@__libc_start_main"), - Attrs([Attr("address","0x5C0")]), Phis([]), -Defs([Def(Tid(1_132, "%0000046c"), Attrs([Attr("address","0x5C0"), -Attr("insn","adrp x16, #69632")]), Var("R16",Imm(64)), Int(69632,64)), -Def(Tid(1_139, "%00000473"), Attrs([Attr("address","0x5C4"), -Attr("insn","ldr x17, [x16]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R16",Imm(64)),LittleEndian(),64)), -Def(Tid(1_145, "%00000479"), Attrs([Attr("address","0x5C8"), -Attr("insn","add x16, x16, #0x0")]), Var("R16",Imm(64)), -Var("R16",Imm(64)))]), Jmps([Call(Tid(1_150, "%0000047e"), - Attrs([Attr("address","0x5CC"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), Sub(Tid(1_516, "@_fini"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x754")]), - "_fini", Args([Arg(Tid(1_540, "%00000604"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("_fini_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(31, "@_fini"), - Attrs([Attr("address","0x754")]), Phis([]), Defs([Def(Tid(37, "%00000025"), - Attrs([Attr("address","0x758"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("#0",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(18446744073709551600,64))), -Def(Tid(43, "%0000002b"), Attrs([Attr("address","0x758"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("#0",Imm(64)),Var("R29",Imm(64)),LittleEndian(),64)), -Def(Tid(49, "%00000031"), Attrs([Attr("address","0x758"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("#0",Imm(64)),Int(8,64)),Var("R30",Imm(64)),LittleEndian(),64)), -Def(Tid(53, "%00000035"), Attrs([Attr("address","0x758"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("R31",Imm(64)), -Var("#0",Imm(64))), Def(Tid(59, "%0000003b"), Attrs([Attr("address","0x75C"), -Attr("insn","mov x29, sp")]), Var("R29",Imm(64)), Var("R31",Imm(64))), -Def(Tid(66, "%00000042"), Attrs([Attr("address","0x760"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R29",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(71, "%00000047"), Attrs([Attr("address","0x760"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R30",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(75, "%0000004b"), Attrs([Attr("address","0x760"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(16,64)))]), Jmps([Call(Tid(80, "%00000050"), - Attrs([Attr("address","0x764"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), Sub(Tid(1_517, "@_init"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x580")]), - "_init", Args([Arg(Tid(1_541, "%00000605"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("_init_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(1_336, "@_init"), - Attrs([Attr("address","0x580")]), Phis([]), -Defs([Def(Tid(1_342, "%0000053e"), Attrs([Attr("address","0x584"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("#5",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(18446744073709551600,64))), -Def(Tid(1_348, "%00000544"), Attrs([Attr("address","0x584"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("#5",Imm(64)),Var("R29",Imm(64)),LittleEndian(),64)), -Def(Tid(1_354, "%0000054a"), Attrs([Attr("address","0x584"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("#5",Imm(64)),Int(8,64)),Var("R30",Imm(64)),LittleEndian(),64)), -Def(Tid(1_358, "%0000054e"), Attrs([Attr("address","0x584"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("R31",Imm(64)), -Var("#5",Imm(64))), Def(Tid(1_364, "%00000554"), - Attrs([Attr("address","0x588"), Attr("insn","mov x29, sp")]), - Var("R29",Imm(64)), Var("R31",Imm(64))), Def(Tid(1_369, "%00000559"), - Attrs([Attr("address","0x58C"), Attr("insn","bl #0xa8")]), - Var("R30",Imm(64)), Int(1424,64))]), Jmps([Call(Tid(1_371, "%0000055b"), - Attrs([Attr("address","0x58C"), Attr("insn","bl #0xa8")]), Int(1,1), -(Direct(Tid(1_522, "@call_weak_fn")),Direct(Tid(1_373, "%0000055d"))))])), -Blk(Tid(1_373, "%0000055d"), Attrs([Attr("address","0x590")]), Phis([]), -Defs([Def(Tid(1_378, "%00000562"), Attrs([Attr("address","0x590"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R29",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(1_383, "%00000567"), Attrs([Attr("address","0x590"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R30",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(1_387, "%0000056b"), Attrs([Attr("address","0x590"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(16,64)))]), Jmps([Call(Tid(1_392, "%00000570"), - Attrs([Attr("address","0x594"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), Sub(Tid(1_518, "@_start"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x600"), -Attr("stub","()"), Attr("entry-point","()")]), "_start", - Args([Arg(Tid(1_542, "%00000606"), Attrs([Attr("c.layout","[signed : 32]"), -Attr("c.data","Top:u32"), Attr("c.type","signed")]), - Var("_start_result",Imm(32)), LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(424, "@_start"), Attrs([Attr("address","0x600")]), Phis([]), -Defs([Def(Tid(429, "%000001ad"), Attrs([Attr("address","0x604"), -Attr("insn","mov x29, #0x0")]), Var("R29",Imm(64)), Int(0,64)), -Def(Tid(434, "%000001b2"), Attrs([Attr("address","0x608"), -Attr("insn","mov x30, #0x0")]), Var("R30",Imm(64)), Int(0,64)), -Def(Tid(440, "%000001b8"), Attrs([Attr("address","0x60C"), -Attr("insn","mov x5, x0")]), Var("R5",Imm(64)), Var("R0",Imm(64))), -Def(Tid(447, "%000001bf"), Attrs([Attr("address","0x610"), -Attr("insn","ldr x1, [sp]")]), Var("R1",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(453, "%000001c5"), Attrs([Attr("address","0x614"), -Attr("insn","add x2, sp, #0x8")]), Var("R2",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(8,64))), Def(Tid(459, "%000001cb"), - Attrs([Attr("address","0x618"), Attr("insn","mov x6, sp")]), - Var("R6",Imm(64)), Var("R31",Imm(64))), Def(Tid(464, "%000001d0"), - Attrs([Attr("address","0x61C"), Attr("insn","adrp x0, #65536")]), - Var("R0",Imm(64)), Int(65536,64)), Def(Tid(471, "%000001d7"), - Attrs([Attr("address","0x620"), Attr("insn","ldr x0, [x0, #0xfd8]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(4056,64)),LittleEndian(),64)), -Def(Tid(476, "%000001dc"), Attrs([Attr("address","0x624"), -Attr("insn","mov x3, #0x0")]), Var("R3",Imm(64)), Int(0,64)), -Def(Tid(481, "%000001e1"), Attrs([Attr("address","0x628"), -Attr("insn","mov x4, #0x0")]), Var("R4",Imm(64)), Int(0,64)), -Def(Tid(486, "%000001e6"), Attrs([Attr("address","0x62C"), -Attr("insn","bl #-0x6c")]), Var("R30",Imm(64)), Int(1584,64))]), -Jmps([Call(Tid(489, "%000001e9"), Attrs([Attr("address","0x62C"), -Attr("insn","bl #-0x6c")]), Int(1,1), -(Direct(Tid(1_515, "@__libc_start_main")),Direct(Tid(491, "%000001eb"))))])), -Blk(Tid(491, "%000001eb"), Attrs([Attr("address","0x630")]), Phis([]), -Defs([Def(Tid(494, "%000001ee"), Attrs([Attr("address","0x630"), -Attr("insn","bl #-0x40")]), Var("R30",Imm(64)), Int(1588,64))]), -Jmps([Call(Tid(497, "%000001f1"), Attrs([Attr("address","0x630"), -Attr("insn","bl #-0x40")]), Int(1,1), -(Direct(Tid(1_521, "@abort")),Direct(Tid(1_519, "%000005ef"))))])), -Blk(Tid(1_519, "%000005ef"), Attrs([]), Phis([]), Defs([]), -Jmps([Call(Tid(1_520, "%000005f0"), Attrs([]), Int(1,1), -(Direct(Tid(1_522, "@call_weak_fn")),))]))])), Sub(Tid(1_521, "@abort"), - Attrs([Attr("noreturn","()"), Attr("c.proto","void (*)(void)"), -Attr("address","0x5F0"), Attr("stub","()")]), "abort", Args([]), -Blks([Blk(Tid(495, "@abort"), Attrs([Attr("address","0x5F0")]), Phis([]), -Defs([Def(Tid(1_198, "%000004ae"), Attrs([Attr("address","0x5F0"), -Attr("insn","adrp x16, #69632")]), Var("R16",Imm(64)), Int(69632,64)), -Def(Tid(1_205, "%000004b5"), Attrs([Attr("address","0x5F4"), -Attr("insn","ldr x17, [x16, #0x18]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(24,64)),LittleEndian(),64)), -Def(Tid(1_211, "%000004bb"), Attrs([Attr("address","0x5F8"), -Attr("insn","add x16, x16, #0x18")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(24,64)))]), Jmps([Call(Tid(1_216, "%000004c0"), - Attrs([Attr("address","0x5FC"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), Sub(Tid(1_522, "@call_weak_fn"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x634")]), - "call_weak_fn", Args([Arg(Tid(1_543, "%00000607"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("call_weak_fn_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(499, "@call_weak_fn"), - Attrs([Attr("address","0x634")]), Phis([]), Defs([Def(Tid(502, "%000001f6"), - Attrs([Attr("address","0x634"), Attr("insn","adrp x0, #65536")]), - Var("R0",Imm(64)), Int(65536,64)), Def(Tid(509, "%000001fd"), - Attrs([Attr("address","0x638"), Attr("insn","ldr x0, [x0, #0xfd0]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(4048,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(515, "%00000203"), Attrs([Attr("address","0x63C"), -Attr("insn","cbz x0, #0x8")]), EQ(Var("R0",Imm(64)),Int(0,64)), -Direct(Tid(513, "%00000201"))), Goto(Tid(1_523, "%000005f3"), Attrs([]), - Int(1,1), Direct(Tid(970, "%000003ca")))])), Blk(Tid(513, "%00000201"), - Attrs([Attr("address","0x644")]), Phis([]), Defs([]), -Jmps([Call(Tid(521, "%00000209"), Attrs([Attr("address","0x644"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))])), -Blk(Tid(970, "%000003ca"), Attrs([Attr("address","0x640")]), Phis([]), -Defs([]), Jmps([Goto(Tid(973, "%000003cd"), Attrs([Attr("address","0x640"), -Attr("insn","b #-0x60")]), Int(1,1), Direct(Tid(971, "@__gmon_start__")))])), -Blk(Tid(971, "@__gmon_start__"), Attrs([Attr("address","0x5E0")]), Phis([]), -Defs([Def(Tid(1_176, "%00000498"), Attrs([Attr("address","0x5E0"), -Attr("insn","adrp x16, #69632")]), Var("R16",Imm(64)), Int(69632,64)), -Def(Tid(1_183, "%0000049f"), Attrs([Attr("address","0x5E4"), -Attr("insn","ldr x17, [x16, #0x10]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(16,64)),LittleEndian(),64)), -Def(Tid(1_189, "%000004a5"), Attrs([Attr("address","0x5E8"), -Attr("insn","add x16, x16, #0x10")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(16,64)))]), Jmps([Call(Tid(1_194, "%000004aa"), - Attrs([Attr("address","0x5EC"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), -Sub(Tid(1_524, "@deregister_tm_clones"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x650")]), - "deregister_tm_clones", Args([Arg(Tid(1_544, "%00000608"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("deregister_tm_clones_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(527, "@deregister_tm_clones"), - Attrs([Attr("address","0x650")]), Phis([]), Defs([Def(Tid(530, "%00000212"), - Attrs([Attr("address","0x650"), Attr("insn","adrp x0, #69632")]), - Var("R0",Imm(64)), Int(69632,64)), Def(Tid(536, "%00000218"), - Attrs([Attr("address","0x654"), Attr("insn","add x0, x0, #0x38")]), - Var("R0",Imm(64)), PLUS(Var("R0",Imm(64)),Int(56,64))), -Def(Tid(541, "%0000021d"), Attrs([Attr("address","0x658"), -Attr("insn","adrp x1, #69632")]), Var("R1",Imm(64)), Int(69632,64)), -Def(Tid(547, "%00000223"), Attrs([Attr("address","0x65C"), -Attr("insn","add x1, x1, #0x38")]), Var("R1",Imm(64)), -PLUS(Var("R1",Imm(64)),Int(56,64))), Def(Tid(553, "%00000229"), - Attrs([Attr("address","0x660"), Attr("insn","cmp x1, x0")]), - Var("#1",Imm(64)), NOT(Var("R0",Imm(64)))), Def(Tid(558, "%0000022e"), - Attrs([Attr("address","0x660"), Attr("insn","cmp x1, x0")]), - Var("#2",Imm(64)), PLUS(Var("R1",Imm(64)),NOT(Var("R0",Imm(64))))), -Def(Tid(564, "%00000234"), Attrs([Attr("address","0x660"), -Attr("insn","cmp x1, x0")]), Var("VF",Imm(1)), -NEQ(SIGNED(65,PLUS(Var("#2",Imm(64)),Int(1,64))),PLUS(PLUS(SIGNED(65,Var("R1",Imm(64))),SIGNED(65,Var("#1",Imm(64)))),Int(1,65)))), -Def(Tid(570, "%0000023a"), Attrs([Attr("address","0x660"), -Attr("insn","cmp x1, x0")]), Var("CF",Imm(1)), -NEQ(UNSIGNED(65,PLUS(Var("#2",Imm(64)),Int(1,64))),PLUS(PLUS(UNSIGNED(65,Var("R1",Imm(64))),UNSIGNED(65,Var("#1",Imm(64)))),Int(1,65)))), -Def(Tid(574, "%0000023e"), Attrs([Attr("address","0x660"), -Attr("insn","cmp x1, x0")]), Var("ZF",Imm(1)), -EQ(PLUS(Var("#2",Imm(64)),Int(1,64)),Int(0,64))), Def(Tid(578, "%00000242"), - Attrs([Attr("address","0x660"), Attr("insn","cmp x1, x0")]), - Var("NF",Imm(1)), Extract(63,63,PLUS(Var("#2",Imm(64)),Int(1,64))))]), -Jmps([Goto(Tid(584, "%00000248"), Attrs([Attr("address","0x664"), -Attr("insn","b.eq #0x18")]), EQ(Var("ZF",Imm(1)),Int(1,1)), -Direct(Tid(582, "%00000246"))), Goto(Tid(1_525, "%000005f5"), Attrs([]), - Int(1,1), Direct(Tid(940, "%000003ac")))])), Blk(Tid(940, "%000003ac"), - Attrs([Attr("address","0x668")]), Phis([]), Defs([Def(Tid(943, "%000003af"), - Attrs([Attr("address","0x668"), Attr("insn","adrp x1, #65536")]), - Var("R1",Imm(64)), Int(65536,64)), Def(Tid(950, "%000003b6"), - Attrs([Attr("address","0x66C"), Attr("insn","ldr x1, [x1, #0xfc0]")]), - Var("R1",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R1",Imm(64)),Int(4032,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(955, "%000003bb"), Attrs([Attr("address","0x670"), -Attr("insn","cbz x1, #0xc")]), EQ(Var("R1",Imm(64)),Int(0,64)), -Direct(Tid(582, "%00000246"))), Goto(Tid(1_526, "%000005f6"), Attrs([]), - Int(1,1), Direct(Tid(959, "%000003bf")))])), Blk(Tid(582, "%00000246"), - Attrs([Attr("address","0x67C")]), Phis([]), Defs([]), -Jmps([Call(Tid(590, "%0000024e"), Attrs([Attr("address","0x67C"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))])), -Blk(Tid(959, "%000003bf"), Attrs([Attr("address","0x674")]), Phis([]), -Defs([Def(Tid(963, "%000003c3"), Attrs([Attr("address","0x674"), -Attr("insn","mov x16, x1")]), Var("R16",Imm(64)), Var("R1",Imm(64)))]), -Jmps([Call(Tid(968, "%000003c8"), Attrs([Attr("address","0x678"), -Attr("insn","br x16")]), Int(1,1), (Indirect(Var("R16",Imm(64))),))]))])), -Sub(Tid(1_527, "@frame_dummy"), Attrs([Attr("c.proto","signed (*)(void)"), -Attr("address","0x710")]), "frame_dummy", Args([Arg(Tid(1_545, "%00000609"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("frame_dummy_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(742, "@frame_dummy"), - Attrs([Attr("address","0x710")]), Phis([]), Defs([]), -Jmps([Call(Tid(744, "%000002e8"), Attrs([Attr("address","0x710"), -Attr("insn","b #-0x90")]), Int(1,1), -(Direct(Tid(1_529, "@register_tm_clones")),))]))])), Sub(Tid(1_528, "@main"), - Attrs([Attr("c.proto","signed (*)(signed argc, const char** argv)"), -Attr("address","0x714")]), "main", Args([Arg(Tid(1_546, "%0000060a"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("main_argc",Imm(32)), -LOW(32,Var("R0",Imm(64))), In()), Arg(Tid(1_547, "%0000060b"), - Attrs([Attr("c.layout","**[char : 8]"), Attr("c.data","Top:u8 ptr ptr"), -Attr("c.type"," const char**")]), Var("main_argv",Imm(64)), -Var("R1",Imm(64)), Both()), Arg(Tid(1_548, "%0000060c"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("main_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(746, "@main"), - Attrs([Attr("address","0x714")]), Phis([]), Defs([Def(Tid(750, "%000002ee"), - Attrs([Attr("address","0x714"), Attr("insn","sub sp, sp, #0x20")]), - Var("R31",Imm(64)), PLUS(Var("R31",Imm(64)),Int(18446744073709551584,64))), -Def(Tid(758, "%000002f6"), Attrs([Attr("address","0x718"), -Attr("insn","str w0, [sp, #0x1c]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(28,64)),Extract(31,0,Var("R0",Imm(64))),LittleEndian(),32)), -Def(Tid(766, "%000002fe"), Attrs([Attr("address","0x71C"), -Attr("insn","str x1, [sp, #0x10]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(16,64)),Var("R1",Imm(64)),LittleEndian(),64)), -Def(Tid(771, "%00000303"), Attrs([Attr("address","0x720"), -Attr("insn","adrp x9, #69632")]), Var("R9",Imm(64)), Int(69632,64)), -Def(Tid(778, "%0000030a"), Attrs([Attr("address","0x724"), -Attr("insn","ldr w8, [x9, #0x30]")]), Var("R8",Imm(64)), -UNSIGNED(64,Load(Var("mem",Mem(64,8)),PLUS(Var("R9",Imm(64)),Int(48,64)),LittleEndian(),32))), -Def(Tid(784, "%00000310"), Attrs([Attr("address","0x728"), -Attr("insn","add x10, sp, #0xc")]), Var("R10",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(12,64))), Def(Tid(792, "%00000318"), - Attrs([Attr("address","0x72C"), Attr("insn","str w8, [sp, #0xc]")]), - Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(12,64)),Extract(31,0,Var("R8",Imm(64))),LittleEndian(),32)), -Def(Tid(797, "%0000031d"), Attrs([Attr("address","0x730"), -Attr("insn","adrp x8, #69632")]), Var("R8",Imm(64)), Int(69632,64)), -Def(Tid(805, "%00000325"), Attrs([Attr("address","0x734"), -Attr("insn","str x10, [x8, #0x40]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R8",Imm(64)),Int(64,64)),Var("R10",Imm(64)),LittleEndian(),64)), -Def(Tid(812, "%0000032c"), Attrs([Attr("address","0x738"), -Attr("insn","ldr x8, [x8, #0x40]")]), Var("R8",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R8",Imm(64)),Int(64,64)),LittleEndian(),64)), -Def(Tid(819, "%00000333"), Attrs([Attr("address","0x73C"), -Attr("insn","ldr w8, [x8]")]), Var("R8",Imm(64)), -UNSIGNED(64,Load(Var("mem",Mem(64,8)),Var("R8",Imm(64)),LittleEndian(),32))), -Def(Tid(825, "%00000339"), Attrs([Attr("address","0x740"), -Attr("insn","add w8, w8, #0x1")]), Var("R8",Imm(64)), -UNSIGNED(64,PLUS(Extract(31,0,Var("R8",Imm(64))),Int(1,32)))), -Def(Tid(833, "%00000341"), Attrs([Attr("address","0x744"), -Attr("insn","str w8, [x9, #0x30]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R9",Imm(64)),Int(48,64)),Extract(31,0,Var("R8",Imm(64))),LittleEndian(),32)), -Def(Tid(838, "%00000346"), Attrs([Attr("address","0x748"), -Attr("insn","mov w0, wzr")]), Var("R0",Imm(64)), Int(0,64)), -Def(Tid(844, "%0000034c"), Attrs([Attr("address","0x74C"), -Attr("insn","add sp, sp, #0x20")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(32,64)))]), Jmps([Call(Tid(849, "%00000351"), - Attrs([Attr("address","0x750"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), -Sub(Tid(1_529, "@register_tm_clones"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x680")]), - "register_tm_clones", Args([Arg(Tid(1_549, "%0000060d"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("register_tm_clones_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(592, "@register_tm_clones"), Attrs([Attr("address","0x680")]), - Phis([]), Defs([Def(Tid(595, "%00000253"), Attrs([Attr("address","0x680"), -Attr("insn","adrp x0, #69632")]), Var("R0",Imm(64)), Int(69632,64)), -Def(Tid(601, "%00000259"), Attrs([Attr("address","0x684"), -Attr("insn","add x0, x0, #0x38")]), Var("R0",Imm(64)), -PLUS(Var("R0",Imm(64)),Int(56,64))), Def(Tid(606, "%0000025e"), - Attrs([Attr("address","0x688"), Attr("insn","adrp x1, #69632")]), - Var("R1",Imm(64)), Int(69632,64)), Def(Tid(612, "%00000264"), - Attrs([Attr("address","0x68C"), Attr("insn","add x1, x1, #0x38")]), - Var("R1",Imm(64)), PLUS(Var("R1",Imm(64)),Int(56,64))), -Def(Tid(619, "%0000026b"), Attrs([Attr("address","0x690"), -Attr("insn","sub x1, x1, x0")]), Var("R1",Imm(64)), -PLUS(PLUS(Var("R1",Imm(64)),NOT(Var("R0",Imm(64)))),Int(1,64))), -Def(Tid(625, "%00000271"), Attrs([Attr("address","0x694"), -Attr("insn","lsr x2, x1, #63")]), Var("R2",Imm(64)), -Concat(Int(0,63),Extract(63,63,Var("R1",Imm(64))))), -Def(Tid(632, "%00000278"), Attrs([Attr("address","0x698"), -Attr("insn","add x1, x2, x1, asr #3")]), Var("R1",Imm(64)), -PLUS(Var("R2",Imm(64)),ARSHIFT(Var("R1",Imm(64)),Int(3,3)))), -Def(Tid(638, "%0000027e"), Attrs([Attr("address","0x69C"), -Attr("insn","asr x1, x1, #1")]), Var("R1",Imm(64)), -SIGNED(64,Extract(63,1,Var("R1",Imm(64)))))]), -Jmps([Goto(Tid(644, "%00000284"), Attrs([Attr("address","0x6A0"), -Attr("insn","cbz x1, #0x18")]), EQ(Var("R1",Imm(64)),Int(0,64)), -Direct(Tid(642, "%00000282"))), Goto(Tid(1_530, "%000005fa"), Attrs([]), - Int(1,1), Direct(Tid(910, "%0000038e")))])), Blk(Tid(910, "%0000038e"), - Attrs([Attr("address","0x6A4")]), Phis([]), Defs([Def(Tid(913, "%00000391"), - Attrs([Attr("address","0x6A4"), Attr("insn","adrp x2, #65536")]), - Var("R2",Imm(64)), Int(65536,64)), Def(Tid(920, "%00000398"), - Attrs([Attr("address","0x6A8"), Attr("insn","ldr x2, [x2, #0xfe0]")]), - Var("R2",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R2",Imm(64)),Int(4064,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(925, "%0000039d"), Attrs([Attr("address","0x6AC"), -Attr("insn","cbz x2, #0xc")]), EQ(Var("R2",Imm(64)),Int(0,64)), -Direct(Tid(642, "%00000282"))), Goto(Tid(1_531, "%000005fb"), Attrs([]), - Int(1,1), Direct(Tid(929, "%000003a1")))])), Blk(Tid(642, "%00000282"), - Attrs([Attr("address","0x6B8")]), Phis([]), Defs([]), -Jmps([Call(Tid(650, "%0000028a"), Attrs([Attr("address","0x6B8"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))])), -Blk(Tid(929, "%000003a1"), Attrs([Attr("address","0x6B0")]), Phis([]), -Defs([Def(Tid(933, "%000003a5"), Attrs([Attr("address","0x6B0"), -Attr("insn","mov x16, x2")]), Var("R16",Imm(64)), Var("R2",Imm(64)))]), -Jmps([Call(Tid(938, "%000003aa"), Attrs([Attr("address","0x6B4"), -Attr("insn","br x16")]), Int(1,1), -(Indirect(Var("R16",Imm(64))),))]))]))]))) \ No newline at end of file diff --git a/src/test/memory_regions/stack_pointer/clang/stack_pointer.bir b/src/test/memory_regions/stack_pointer/clang/stack_pointer.bir deleted file mode 100644 index c600494c6..000000000 --- a/src/test/memory_regions/stack_pointer/clang/stack_pointer.bir +++ /dev/null @@ -1,238 +0,0 @@ -000005fc: program -000005e6: sub __cxa_finalize(__cxa_finalize_result) -000005fd: __cxa_finalize_result :: out u32 = low:32[R0] - -0000038a: -00000482: R16 := 0x11000 -00000489: R17 := mem[R16 + 8, el]:u64 -0000048f: R16 := R16 + 8 -00000494: call R17 with noreturn - -000005e7: sub __do_global_dtors_aux(__do_global_dtors_aux_result) -000005fe: __do_global_dtors_aux_result :: out u32 = low:32[R0] - -0000028e: -00000292: #3 := R31 - 0x20 -00000298: mem := mem with [#3, el]:u64 <- R29 -0000029e: mem := mem with [#3 + 8, el]:u64 <- R30 -000002a2: R31 := #3 -000002a8: R29 := R31 -000002b0: mem := mem with [R31 + 0x10, el]:u64 <- R19 -000002b5: R19 := 0x11000 -000002bc: R0 := pad:64[mem[R19 + 0x38]] -000002c3: when 31:0[R0] <> 0 goto %000002c1 -000005e8: goto %00000353 - -00000353: -00000356: R0 := 0x10000 -0000035d: R0 := mem[R0 + 0xFC8, el]:u64 -00000363: when R0 = 0 goto %00000361 -000005e9: goto %0000037a - -0000037a: -0000037d: R0 := 0x11000 -00000384: R0 := mem[R0 + 0x28, el]:u64 -00000389: R30 := 0x6F0 -0000038c: call @__cxa_finalize with return %00000361 - -00000361: -00000369: R30 := 0x6F4 -0000036b: call @deregister_tm_clones with return %0000036d - -0000036d: -00000370: R0 := 1 -00000378: mem := mem with [R19 + 0x38] <- 7:0[R0] -000005ea: goto %000002c1 - -000002c1: -000002cb: R19 := mem[R31 + 0x10, el]:u64 -000002d2: R29 := mem[R31, el]:u64 -000002d7: R30 := mem[R31 + 8, el]:u64 -000002db: R31 := R31 + 0x20 -000002e0: call R30 with noreturn - -000005eb: sub __libc_start_main(__libc_start_main_main, __libc_start_main_arg2, __libc_start_main_arg3, __libc_start_main_auxv, __libc_start_main_result) -000005ff: __libc_start_main_main :: in u64 = R0 -00000600: __libc_start_main_arg2 :: in u32 = low:32[R1] -00000601: __libc_start_main_arg3 :: in out u64 = R2 -00000602: __libc_start_main_auxv :: in out u64 = R3 -00000603: __libc_start_main_result :: out u32 = low:32[R0] - -000001e7: -0000046c: R16 := 0x11000 -00000473: R17 := mem[R16, el]:u64 -00000479: R16 := R16 -0000047e: call R17 with noreturn - -000005ec: sub _fini(_fini_result) -00000604: _fini_result :: out u32 = low:32[R0] - -0000001f: -00000025: #0 := R31 - 0x10 -0000002b: mem := mem with [#0, el]:u64 <- R29 -00000031: mem := mem with [#0 + 8, el]:u64 <- R30 -00000035: R31 := #0 -0000003b: R29 := R31 -00000042: R29 := mem[R31, el]:u64 -00000047: R30 := mem[R31 + 8, el]:u64 -0000004b: R31 := R31 + 0x10 -00000050: call R30 with noreturn - -000005ed: sub _init(_init_result) -00000605: _init_result :: out u32 = low:32[R0] - -00000538: -0000053e: #5 := R31 - 0x10 -00000544: mem := mem with [#5, el]:u64 <- R29 -0000054a: mem := mem with [#5 + 8, el]:u64 <- R30 -0000054e: R31 := #5 -00000554: R29 := R31 -00000559: R30 := 0x590 -0000055b: call @call_weak_fn with return %0000055d - -0000055d: -00000562: R29 := mem[R31, el]:u64 -00000567: R30 := mem[R31 + 8, el]:u64 -0000056b: R31 := R31 + 0x10 -00000570: call R30 with noreturn - -000005ee: sub _start(_start_result) -00000606: _start_result :: out u32 = low:32[R0] - -000001a8: -000001ad: R29 := 0 -000001b2: R30 := 0 -000001b8: R5 := R0 -000001bf: R1 := mem[R31, el]:u64 -000001c5: R2 := R31 + 8 -000001cb: R6 := R31 -000001d0: R0 := 0x10000 -000001d7: R0 := mem[R0 + 0xFD8, el]:u64 -000001dc: R3 := 0 -000001e1: R4 := 0 -000001e6: R30 := 0x630 -000001e9: call @__libc_start_main with return %000001eb - -000001eb: -000001ee: R30 := 0x634 -000001f1: call @abort with return %000005ef - -000005ef: -000005f0: call @call_weak_fn with noreturn - -000005f1: sub abort() - - -000001ef: -000004ae: R16 := 0x11000 -000004b5: R17 := mem[R16 + 0x18, el]:u64 -000004bb: R16 := R16 + 0x18 -000004c0: call R17 with noreturn - -000005f2: sub call_weak_fn(call_weak_fn_result) -00000607: call_weak_fn_result :: out u32 = low:32[R0] - -000001f3: -000001f6: R0 := 0x10000 -000001fd: R0 := mem[R0 + 0xFD0, el]:u64 -00000203: when R0 = 0 goto %00000201 -000005f3: goto %000003ca - -00000201: -00000209: call R30 with noreturn - -000003ca: -000003cd: goto @__gmon_start__ - -000003cb: -00000498: R16 := 0x11000 -0000049f: R17 := mem[R16 + 0x10, el]:u64 -000004a5: R16 := R16 + 0x10 -000004aa: call R17 with noreturn - -000005f4: sub deregister_tm_clones(deregister_tm_clones_result) -00000608: deregister_tm_clones_result :: out u32 = low:32[R0] - -0000020f: -00000212: R0 := 0x11000 -00000218: R0 := R0 + 0x38 -0000021d: R1 := 0x11000 -00000223: R1 := R1 + 0x38 -00000229: #1 := ~R0 -0000022e: #2 := R1 + ~R0 -00000234: VF := extend:65[#2 + 1] <> extend:65[R1] + extend:65[#1] + 1 -0000023a: CF := pad:65[#2 + 1] <> pad:65[R1] + pad:65[#1] + 1 -0000023e: ZF := #2 + 1 = 0 -00000242: NF := 63:63[#2 + 1] -00000248: when ZF goto %00000246 -000005f5: goto %000003ac - -000003ac: -000003af: R1 := 0x10000 -000003b6: R1 := mem[R1 + 0xFC0, el]:u64 -000003bb: when R1 = 0 goto %00000246 -000005f6: goto %000003bf - -00000246: -0000024e: call R30 with noreturn - -000003bf: -000003c3: R16 := R1 -000003c8: call R16 with noreturn - -000005f7: sub frame_dummy(frame_dummy_result) -00000609: frame_dummy_result :: out u32 = low:32[R0] - -000002e6: -000002e8: call @register_tm_clones with noreturn - -000005f8: sub main(main_argc, main_argv, main_result) -0000060a: main_argc :: in u32 = low:32[R0] -0000060b: main_argv :: in out u64 = R1 -0000060c: main_result :: out u32 = low:32[R0] - -000002ea: -000002ee: R31 := R31 - 0x20 -000002f6: mem := mem with [R31 + 0x1C, el]:u32 <- 31:0[R0] -000002fe: mem := mem with [R31 + 0x10, el]:u64 <- R1 -00000303: R9 := 0x11000 -0000030a: R8 := pad:64[mem[R9 + 0x30, el]:u32] -00000310: R10 := R31 + 0xC -00000318: mem := mem with [R31 + 0xC, el]:u32 <- 31:0[R8] -0000031d: R8 := 0x11000 -00000325: mem := mem with [R8 + 0x40, el]:u64 <- R10 -0000032c: R8 := mem[R8 + 0x40, el]:u64 -00000333: R8 := pad:64[mem[R8, el]:u32] -00000339: R8 := pad:64[31:0[R8] + 1] -00000341: mem := mem with [R9 + 0x30, el]:u32 <- 31:0[R8] -00000346: R0 := 0 -0000034c: R31 := R31 + 0x20 -00000351: call R30 with noreturn - -000005f9: sub register_tm_clones(register_tm_clones_result) -0000060d: register_tm_clones_result :: out u32 = low:32[R0] - -00000250: -00000253: R0 := 0x11000 -00000259: R0 := R0 + 0x38 -0000025e: R1 := 0x11000 -00000264: R1 := R1 + 0x38 -0000026b: R1 := R1 + ~R0 + 1 -00000271: R2 := 0.63:63[R1] -00000278: R1 := R2 + (R1 ~>> 3) -0000027e: R1 := extend:64[63:1[R1]] -00000284: when R1 = 0 goto %00000282 -000005fa: goto %0000038e - -0000038e: -00000391: R2 := 0x10000 -00000398: R2 := mem[R2 + 0xFE0, el]:u64 -0000039d: when R2 = 0 goto %00000282 -000005fb: goto %000003a1 - -00000282: -0000028a: call R30 with noreturn - -000003a1: -000003a5: R16 := R2 -000003aa: call R16 with noreturn diff --git a/src/test/memory_regions/stack_pointer/clang/stack_pointer.md5sum b/src/test/memory_regions/stack_pointer/clang/stack_pointer.md5sum new file mode 100644 index 000000000..45a4e2dc3 --- /dev/null +++ b/src/test/memory_regions/stack_pointer/clang/stack_pointer.md5sum @@ -0,0 +1,4 @@ +0e8d64c26eb38f0d8ff005a65a5ef096 memory_regions/stack_pointer/clang/a.out +9feca1fcb9449d1ca16863d73f63bc48 memory_regions/stack_pointer/clang/stack_pointer.relf +c5c8699aee3fd78f488339d33d0fd3db memory_regions/stack_pointer/clang/stack_pointer.adt +b399d13c16367b748d8f428c8b0f6636 memory_regions/stack_pointer/clang/stack_pointer.bir diff --git a/src/test/memory_regions/stack_pointer/clang/stack_pointer.relf b/src/test/memory_regions/stack_pointer/clang/stack_pointer.relf deleted file mode 100644 index 669ba0eca..000000000 --- a/src/test/memory_regions/stack_pointer/clang/stack_pointer.relf +++ /dev/null @@ -1,125 +0,0 @@ - -Relocation section '.rela.dyn' at offset 0x460 contains 8 entries: - Offset Info Type Symbol's Value Symbol's Name + Addend -0000000000010dc8 0000000000000403 R_AARCH64_RELATIVE 710 -0000000000010dd0 0000000000000403 R_AARCH64_RELATIVE 6c0 -0000000000010fd8 0000000000000403 R_AARCH64_RELATIVE 714 -0000000000011028 0000000000000403 R_AARCH64_RELATIVE 11028 -0000000000010fc0 0000000400000401 R_AARCH64_GLOB_DAT 0000000000000000 _ITM_deregisterTMCloneTable + 0 -0000000000010fc8 0000000500000401 R_AARCH64_GLOB_DAT 0000000000000000 __cxa_finalize@GLIBC_2.17 + 0 -0000000000010fd0 0000000600000401 R_AARCH64_GLOB_DAT 0000000000000000 __gmon_start__ + 0 -0000000000010fe0 0000000800000401 R_AARCH64_GLOB_DAT 0000000000000000 _ITM_registerTMCloneTable + 0 - -Relocation section '.rela.plt' at offset 0x520 contains 4 entries: - Offset Info Type Symbol's Value Symbol's Name + Addend -0000000000011000 0000000300000402 R_AARCH64_JUMP_SLOT 0000000000000000 __libc_start_main@GLIBC_2.34 + 0 -0000000000011008 0000000500000402 R_AARCH64_JUMP_SLOT 0000000000000000 __cxa_finalize@GLIBC_2.17 + 0 -0000000000011010 0000000600000402 R_AARCH64_JUMP_SLOT 0000000000000000 __gmon_start__ + 0 -0000000000011018 0000000700000402 R_AARCH64_JUMP_SLOT 0000000000000000 abort@GLIBC_2.17 + 0 - -Symbol table '.dynsym' contains 9 entries: - Num: Value Size Type Bind Vis Ndx Name - 0: 0000000000000000 0 NOTYPE LOCAL DEFAULT UND - 1: 0000000000000580 0 SECTION LOCAL DEFAULT 11 .init - 2: 0000000000011020 0 SECTION LOCAL DEFAULT 23 .data - 3: 0000000000000000 0 FUNC GLOBAL DEFAULT UND __libc_start_main@GLIBC_2.34 (2) - 4: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_deregisterTMCloneTable - 5: 0000000000000000 0 FUNC WEAK DEFAULT UND __cxa_finalize@GLIBC_2.17 (3) - 6: 0000000000000000 0 NOTYPE WEAK DEFAULT UND __gmon_start__ - 7: 0000000000000000 0 FUNC GLOBAL DEFAULT UND abort@GLIBC_2.17 (3) - 8: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_registerTMCloneTable - -Symbol table '.symtab' contains 92 entries: - Num: Value Size Type Bind Vis Ndx Name - 0: 0000000000000000 0 NOTYPE LOCAL DEFAULT UND - 1: 0000000000000238 0 SECTION LOCAL DEFAULT 1 .interp - 2: 0000000000000254 0 SECTION LOCAL DEFAULT 2 .note.gnu.build-id - 3: 0000000000000278 0 SECTION LOCAL DEFAULT 3 .note.ABI-tag - 4: 0000000000000298 0 SECTION LOCAL DEFAULT 4 .gnu.hash - 5: 00000000000002b8 0 SECTION LOCAL DEFAULT 5 .dynsym - 6: 0000000000000390 0 SECTION LOCAL DEFAULT 6 .dynstr - 7: 000000000000041e 0 SECTION LOCAL DEFAULT 7 .gnu.version - 8: 0000000000000430 0 SECTION LOCAL DEFAULT 8 .gnu.version_r - 9: 0000000000000460 0 SECTION LOCAL DEFAULT 9 .rela.dyn - 10: 0000000000000520 0 SECTION LOCAL DEFAULT 10 .rela.plt - 11: 0000000000000580 0 SECTION LOCAL DEFAULT 11 .init - 12: 00000000000005a0 0 SECTION LOCAL DEFAULT 12 .plt - 13: 0000000000000600 0 SECTION LOCAL DEFAULT 13 .text - 14: 0000000000000754 0 SECTION LOCAL DEFAULT 14 .fini - 15: 0000000000000768 0 SECTION LOCAL DEFAULT 15 .rodata - 16: 000000000000076c 0 SECTION LOCAL DEFAULT 16 .eh_frame_hdr - 17: 00000000000007a8 0 SECTION LOCAL DEFAULT 17 .eh_frame - 18: 0000000000010dc8 0 SECTION LOCAL DEFAULT 18 .init_array - 19: 0000000000010dd0 0 SECTION LOCAL DEFAULT 19 .fini_array - 20: 0000000000010dd8 0 SECTION LOCAL DEFAULT 20 .dynamic - 21: 0000000000010fb8 0 SECTION LOCAL DEFAULT 21 .got - 22: 0000000000010fe8 0 SECTION LOCAL DEFAULT 22 .got.plt - 23: 0000000000011020 0 SECTION LOCAL DEFAULT 23 .data - 24: 0000000000011038 0 SECTION LOCAL DEFAULT 24 .bss - 25: 0000000000000000 0 SECTION LOCAL DEFAULT 25 .comment - 26: 0000000000000000 0 FILE LOCAL DEFAULT ABS Scrt1.o - 27: 0000000000000278 0 NOTYPE LOCAL DEFAULT 3 $d - 28: 0000000000000278 32 OBJECT LOCAL DEFAULT 3 __abi_tag - 29: 0000000000000600 0 NOTYPE LOCAL DEFAULT 13 $x - 30: 00000000000007bc 0 NOTYPE LOCAL DEFAULT 17 $d - 31: 0000000000000768 0 NOTYPE LOCAL DEFAULT 15 $d - 32: 0000000000000000 0 FILE LOCAL DEFAULT ABS crti.o - 33: 0000000000000634 0 NOTYPE LOCAL DEFAULT 13 $x - 34: 0000000000000634 20 FUNC LOCAL DEFAULT 13 call_weak_fn - 35: 0000000000000580 0 NOTYPE LOCAL DEFAULT 11 $x - 36: 0000000000000754 0 NOTYPE LOCAL DEFAULT 14 $x - 37: 0000000000000000 0 FILE LOCAL DEFAULT ABS crtn.o - 38: 0000000000000590 0 NOTYPE LOCAL DEFAULT 11 $x - 39: 0000000000000760 0 NOTYPE LOCAL DEFAULT 14 $x - 40: 0000000000000000 0 FILE LOCAL DEFAULT ABS crtstuff.c - 41: 0000000000000650 0 NOTYPE LOCAL DEFAULT 13 $x - 42: 0000000000000650 0 FUNC LOCAL DEFAULT 13 deregister_tm_clones - 43: 0000000000000680 0 FUNC LOCAL DEFAULT 13 register_tm_clones - 44: 0000000000011028 0 NOTYPE LOCAL DEFAULT 23 $d - 45: 00000000000006c0 0 FUNC LOCAL DEFAULT 13 __do_global_dtors_aux - 46: 0000000000011038 1 OBJECT LOCAL DEFAULT 24 completed.0 - 47: 0000000000010dd0 0 NOTYPE LOCAL DEFAULT 19 $d - 48: 0000000000010dd0 0 OBJECT LOCAL DEFAULT 19 __do_global_dtors_aux_fini_array_entry - 49: 0000000000000710 0 FUNC LOCAL DEFAULT 13 frame_dummy - 50: 0000000000010dc8 0 NOTYPE LOCAL DEFAULT 18 $d - 51: 0000000000010dc8 0 OBJECT LOCAL DEFAULT 18 __frame_dummy_init_array_entry - 52: 00000000000007d0 0 NOTYPE LOCAL DEFAULT 17 $d - 53: 0000000000011038 0 NOTYPE LOCAL DEFAULT 24 $d - 54: 0000000000000000 0 FILE LOCAL DEFAULT ABS stack_pointer.c - 55: 0000000000000714 0 NOTYPE LOCAL DEFAULT 13 $x.0 - 56: 0000000000011030 0 NOTYPE LOCAL DEFAULT 23 $d.1 - 57: 0000000000011040 0 NOTYPE LOCAL DEFAULT 24 $d.2 - 58: 000000000000002a 0 NOTYPE LOCAL DEFAULT 25 $d.3 - 59: 0000000000000830 0 NOTYPE LOCAL DEFAULT 17 $d.4 - 60: 0000000000000000 0 FILE LOCAL DEFAULT ABS crtstuff.c - 61: 000000000000085c 0 NOTYPE LOCAL DEFAULT 17 $d - 62: 000000000000085c 0 OBJECT LOCAL DEFAULT 17 __FRAME_END__ - 63: 0000000000000000 0 FILE LOCAL DEFAULT ABS - 64: 0000000000010dd8 0 OBJECT LOCAL DEFAULT ABS _DYNAMIC - 65: 000000000000076c 0 NOTYPE LOCAL DEFAULT 16 __GNU_EH_FRAME_HDR - 66: 0000000000010fb8 0 OBJECT LOCAL DEFAULT ABS _GLOBAL_OFFSET_TABLE_ - 67: 00000000000005a0 0 NOTYPE LOCAL DEFAULT 12 $x - 68: 0000000000000000 0 FUNC GLOBAL DEFAULT UND __libc_start_main@GLIBC_2.34 - 69: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_deregisterTMCloneTable - 70: 0000000000011020 0 NOTYPE WEAK DEFAULT 23 data_start - 71: 0000000000011034 0 NOTYPE GLOBAL DEFAULT 24 __bss_start__ - 72: 0000000000000000 0 FUNC WEAK DEFAULT UND __cxa_finalize@GLIBC_2.17 - 73: 0000000000011048 0 NOTYPE GLOBAL DEFAULT 24 _bss_end__ - 74: 0000000000011034 0 NOTYPE GLOBAL DEFAULT 23 _edata - 75: 0000000000011030 4 OBJECT GLOBAL DEFAULT 23 x - 76: 0000000000000754 0 FUNC GLOBAL HIDDEN 14 _fini - 77: 0000000000011048 0 NOTYPE GLOBAL DEFAULT 24 __bss_end__ - 78: 0000000000011020 0 NOTYPE GLOBAL DEFAULT 23 __data_start - 79: 0000000000000000 0 NOTYPE WEAK DEFAULT UND __gmon_start__ - 80: 0000000000011028 0 OBJECT GLOBAL HIDDEN 23 __dso_handle - 81: 0000000000000000 0 FUNC GLOBAL DEFAULT UND abort@GLIBC_2.17 - 82: 0000000000000768 4 OBJECT GLOBAL DEFAULT 15 _IO_stdin_used - 83: 0000000000011048 0 NOTYPE GLOBAL DEFAULT 24 _end - 84: 0000000000000600 52 FUNC GLOBAL DEFAULT 13 _start - 85: 0000000000011048 0 NOTYPE GLOBAL DEFAULT 24 __end__ - 86: 0000000000011040 8 OBJECT GLOBAL DEFAULT 24 y - 87: 0000000000011034 0 NOTYPE GLOBAL DEFAULT 24 __bss_start - 88: 0000000000000714 64 FUNC GLOBAL DEFAULT 13 main - 89: 0000000000011038 0 OBJECT GLOBAL HIDDEN 23 __TMC_END__ - 90: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_registerTMCloneTable - 91: 0000000000000580 0 FUNC GLOBAL HIDDEN 11 _init diff --git a/src/test/memory_regions/stack_pointer/clang_pic/stack_pointer.adt b/src/test/memory_regions/stack_pointer/clang_pic/stack_pointer.adt deleted file mode 100644 index ed64cb35b..000000000 --- a/src/test/memory_regions/stack_pointer/clang_pic/stack_pointer.adt +++ /dev/null @@ -1,532 +0,0 @@ -Project(Attrs([Attr("filename","\"a.out\""), -Attr("image-specification","(declare abi (name str))\n(declare arch (name str))\n(declare base-address (addr int))\n(declare bias (off int))\n(declare bits (size int))\n(declare code-region (addr int) (size int) (off int))\n(declare code-start (addr int))\n(declare entry-point (addr int))\n(declare external-reference (addr int) (name str))\n(declare format (name str))\n(declare is-executable (flag bool))\n(declare is-little-endian (flag bool))\n(declare llvm:base-address (addr int))\n(declare llvm:code-entry (name str) (off int) (size int))\n(declare llvm:coff-import-library (name str))\n(declare llvm:coff-virtual-section-header (name str) (addr int) (size int))\n(declare llvm:elf-program-header (name str) (off int) (size int))\n(declare llvm:elf-program-header-flags (name str) (ld bool) (r bool) \n (w bool) (x bool))\n(declare llvm:elf-virtual-program-header (name str) (addr int) (size int))\n(declare llvm:entry-point (addr int))\n(declare llvm:macho-symbol (name str) (value int))\n(declare llvm:name-reference (at int) (name str))\n(declare llvm:relocation (at int) (addr int))\n(declare llvm:section-entry (name str) (addr int) (size int) (off int))\n(declare llvm:section-flags (name str) (r bool) (w bool) (x bool))\n(declare llvm:segment-command (name str) (off int) (size int))\n(declare llvm:segment-command-flags (name str) (r bool) (w bool) (x bool))\n(declare llvm:symbol-entry (name str) (addr int) (size int) (off int)\n (value int))\n(declare llvm:virtual-segment-command (name str) (addr int) (size int))\n(declare mapped (addr int) (size int) (off int))\n(declare named-region (addr int) (size int) (name str))\n(declare named-symbol (addr int) (name str))\n(declare require (name str))\n(declare section (addr int) (size int))\n(declare segment (addr int) (size int) (r bool) (w bool) (x bool))\n(declare subarch (name str))\n(declare symbol-chunk (addr int) (size int) (root int))\n(declare symbol-value (addr int) (value int))\n(declare system (name str))\n(declare vendor (name str))\n\n(abi unknown)\n(arch aarch64)\n(base-address 0)\n(bias 0)\n(bits 64)\n(code-region 1948 20 1948)\n(code-region 1600 348 1600)\n(code-region 1488 96 1488)\n(code-region 1456 24 1456)\n(code-start 1652)\n(code-start 1600)\n(code-start 1876)\n(entry-point 1600)\n(external-reference 69552 _ITM_deregisterTMCloneTable)\n(external-reference 69560 __cxa_finalize)\n(external-reference 69576 __gmon_start__)\n(external-reference 69600 _ITM_registerTMCloneTable)\n(external-reference 69632 __libc_start_main)\n(external-reference 69640 __cxa_finalize)\n(external-reference 69648 __gmon_start__)\n(external-reference 69656 abort)\n(format elf)\n(is-executable true)\n(is-little-endian true)\n(llvm:base-address 0)\n(llvm:code-entry abort 0 0)\n(llvm:code-entry __cxa_finalize 0 0)\n(llvm:code-entry __libc_start_main 0 0)\n(llvm:code-entry _init 1456 0)\n(llvm:code-entry main 1876 72)\n(llvm:code-entry _start 1600 52)\n(llvm:code-entry abort@GLIBC_2.17 0 0)\n(llvm:code-entry _fini 1948 0)\n(llvm:code-entry __cxa_finalize@GLIBC_2.17 0 0)\n(llvm:code-entry __libc_start_main@GLIBC_2.34 0 0)\n(llvm:code-entry frame_dummy 1872 0)\n(llvm:code-entry __do_global_dtors_aux 1792 0)\n(llvm:code-entry register_tm_clones 1728 0)\n(llvm:code-entry deregister_tm_clones 1680 0)\n(llvm:code-entry call_weak_fn 1652 20)\n(llvm:code-entry .fini 1948 20)\n(llvm:code-entry .text 1600 348)\n(llvm:code-entry .plt 1488 96)\n(llvm:code-entry .init 1456 24)\n(llvm:elf-program-header 08 3512 584)\n(llvm:elf-program-header 07 0 0)\n(llvm:elf-program-header 06 1972 60)\n(llvm:elf-program-header 05 596 68)\n(llvm:elf-program-header 04 3528 480)\n(llvm:elf-program-header 03 3512 636)\n(llvm:elf-program-header 02 0 2216)\n(llvm:elf-program-header 01 568 27)\n(llvm:elf-program-header 00 64 504)\n(llvm:elf-program-header-flags 08 false true false false)\n(llvm:elf-program-header-flags 07 false true true false)\n(llvm:elf-program-header-flags 06 false true false false)\n(llvm:elf-program-header-flags 05 false true false false)\n(llvm:elf-program-header-flags 04 false true true false)\n(llvm:elf-program-header-flags 03 true true true false)\n(llvm:elf-program-header-flags 02 true true false true)\n(llvm:elf-program-header-flags 01 false true false false)\n(llvm:elf-program-header-flags 00 false true false false)\n(llvm:elf-virtual-program-header 08 69048 584)\n(llvm:elf-virtual-program-header 07 0 0)\n(llvm:elf-virtual-program-header 06 1972 60)\n(llvm:elf-virtual-program-header 05 596 68)\n(llvm:elf-virtual-program-header 04 69064 480)\n(llvm:elf-virtual-program-header 03 69048 656)\n(llvm:elf-virtual-program-header 02 0 2216)\n(llvm:elf-virtual-program-header 01 568 27)\n(llvm:elf-virtual-program-header 00 64 504)\n(llvm:entry-point 1600)\n(llvm:name-reference 69656 abort)\n(llvm:name-reference 69648 __gmon_start__)\n(llvm:name-reference 69640 __cxa_finalize)\n(llvm:name-reference 69632 __libc_start_main)\n(llvm:name-reference 69600 _ITM_registerTMCloneTable)\n(llvm:name-reference 69576 __gmon_start__)\n(llvm:name-reference 69560 __cxa_finalize)\n(llvm:name-reference 69552 _ITM_deregisterTMCloneTable)\n(llvm:section-entry .shstrtab 0 259 7006)\n(llvm:section-entry .strtab 0 574 6432)\n(llvm:section-entry .symtab 0 2208 4224)\n(llvm:section-entry .comment 0 71 4148)\n(llvm:section-entry .bss 69688 16 4148)\n(llvm:section-entry .data 69664 20 4128)\n(llvm:section-entry .got.plt 69608 56 4072)\n(llvm:section-entry .got 69544 64 4008)\n(llvm:section-entry .dynamic 69064 480 3528)\n(llvm:section-entry .fini_array 69056 8 3520)\n(llvm:section-entry .init_array 69048 8 3512)\n(llvm:section-entry .eh_frame 2032 184 2032)\n(llvm:section-entry .eh_frame_hdr 1972 60 1972)\n(llvm:section-entry .rodata 1968 4 1968)\n(llvm:section-entry .fini 1948 20 1948)\n(llvm:section-entry .text 1600 348 1600)\n(llvm:section-entry .plt 1488 96 1488)\n(llvm:section-entry .init 1456 24 1456)\n(llvm:section-entry .rela.plt 1360 96 1360)\n(llvm:section-entry .rela.dyn 1120 240 1120)\n(llvm:section-entry .gnu.version_r 1072 48 1072)\n(llvm:section-entry .gnu.version 1054 18 1054)\n(llvm:section-entry .dynstr 912 141 912)\n(llvm:section-entry .dynsym 696 216 696)\n(llvm:section-entry .gnu.hash 664 28 664)\n(llvm:section-entry .note.ABI-tag 632 32 632)\n(llvm:section-entry .note.gnu.build-id 596 36 596)\n(llvm:section-entry .interp 568 27 568)\n(llvm:section-flags .shstrtab true false false)\n(llvm:section-flags .strtab true false false)\n(llvm:section-flags .symtab true false false)\n(llvm:section-flags .comment true false false)\n(llvm:section-flags .bss true true false)\n(llvm:section-flags .data true true false)\n(llvm:section-flags .got.plt true true false)\n(llvm:section-flags .got true true false)\n(llvm:section-flags .dynamic true true false)\n(llvm:section-flags .fini_array true true false)\n(llvm:section-flags .init_array true true false)\n(llvm:section-flags .eh_frame true false false)\n(llvm:section-flags .eh_frame_hdr true false false)\n(llvm:section-flags .rodata true false false)\n(llvm:section-flags .fini true false true)\n(llvm:section-flags .text true false true)\n(llvm:section-flags .plt true false true)\n(llvm:section-flags .init true false true)\n(llvm:section-flags .rela.plt true false false)\n(llvm:section-flags .rela.dyn true false false)\n(llvm:section-flags .gnu.version_r true false false)\n(llvm:section-flags .gnu.version true false false)\n(llvm:section-flags .dynstr true false false)\n(llvm:section-flags .dynsym true false false)\n(llvm:section-flags .gnu.hash true false false)\n(llvm:section-flags .note.ABI-tag true false false)\n(llvm:section-flags .note.gnu.build-id true false false)\n(llvm:section-flags .interp true false false)\n(llvm:symbol-entry abort 0 0 0 0)\n(llvm:symbol-entry __cxa_finalize 0 0 0 0)\n(llvm:symbol-entry __libc_start_main 0 0 0 0)\n(llvm:symbol-entry _init 1456 0 1456 1456)\n(llvm:symbol-entry main 1876 72 1876 1876)\n(llvm:symbol-entry _start 1600 52 1600 1600)\n(llvm:symbol-entry abort@GLIBC_2.17 0 0 0 0)\n(llvm:symbol-entry _fini 1948 0 1948 1948)\n(llvm:symbol-entry __cxa_finalize@GLIBC_2.17 0 0 0 0)\n(llvm:symbol-entry __libc_start_main@GLIBC_2.34 0 0 0 0)\n(llvm:symbol-entry frame_dummy 1872 0 1872 1872)\n(llvm:symbol-entry __do_global_dtors_aux 1792 0 1792 1792)\n(llvm:symbol-entry register_tm_clones 1728 0 1728 1728)\n(llvm:symbol-entry deregister_tm_clones 1680 0 1680 1680)\n(llvm:symbol-entry call_weak_fn 1652 20 1652 1652)\n(mapped 0 2216 0)\n(mapped 69048 636 3512)\n(named-region 0 2216 02)\n(named-region 69048 656 03)\n(named-region 568 27 .interp)\n(named-region 596 36 .note.gnu.build-id)\n(named-region 632 32 .note.ABI-tag)\n(named-region 664 28 .gnu.hash)\n(named-region 696 216 .dynsym)\n(named-region 912 141 .dynstr)\n(named-region 1054 18 .gnu.version)\n(named-region 1072 48 .gnu.version_r)\n(named-region 1120 240 .rela.dyn)\n(named-region 1360 96 .rela.plt)\n(named-region 1456 24 .init)\n(named-region 1488 96 .plt)\n(named-region 1600 348 .text)\n(named-region 1948 20 .fini)\n(named-region 1968 4 .rodata)\n(named-region 1972 60 .eh_frame_hdr)\n(named-region 2032 184 .eh_frame)\n(named-region 69048 8 .init_array)\n(named-region 69056 8 .fini_array)\n(named-region 69064 480 .dynamic)\n(named-region 69544 64 .got)\n(named-region 69608 56 .got.plt)\n(named-region 69664 20 .data)\n(named-region 69688 16 .bss)\n(named-region 0 71 .comment)\n(named-region 0 2208 .symtab)\n(named-region 0 574 .strtab)\n(named-region 0 259 .shstrtab)\n(named-symbol 1652 call_weak_fn)\n(named-symbol 1680 deregister_tm_clones)\n(named-symbol 1728 register_tm_clones)\n(named-symbol 1792 __do_global_dtors_aux)\n(named-symbol 1872 frame_dummy)\n(named-symbol 0 __libc_start_main@GLIBC_2.34)\n(named-symbol 0 __cxa_finalize@GLIBC_2.17)\n(named-symbol 1948 _fini)\n(named-symbol 0 abort@GLIBC_2.17)\n(named-symbol 1600 _start)\n(named-symbol 1876 main)\n(named-symbol 1456 _init)\n(named-symbol 0 __libc_start_main)\n(named-symbol 0 __cxa_finalize)\n(named-symbol 0 abort)\n(require libc.so.6)\n(section 568 27)\n(section 596 36)\n(section 632 32)\n(section 664 28)\n(section 696 216)\n(section 912 141)\n(section 1054 18)\n(section 1072 48)\n(section 1120 240)\n(section 1360 96)\n(section 1456 24)\n(section 1488 96)\n(section 1600 348)\n(section 1948 20)\n(section 1968 4)\n(section 1972 60)\n(section 2032 184)\n(section 69048 8)\n(section 69056 8)\n(section 69064 480)\n(section 69544 64)\n(section 69608 56)\n(section 69664 20)\n(section 69688 16)\n(section 0 71)\n(section 0 2208)\n(section 0 574)\n(section 0 259)\n(segment 0 2216 true false true)\n(segment 69048 656 true true false)\n(subarch v8)\n(symbol-chunk 1652 20 1652)\n(symbol-chunk 1600 52 1600)\n(symbol-chunk 1876 72 1876)\n(symbol-value 1652 1652)\n(symbol-value 1680 1680)\n(symbol-value 1728 1728)\n(symbol-value 1792 1792)\n(symbol-value 1872 1872)\n(symbol-value 1948 1948)\n(symbol-value 1600 1600)\n(symbol-value 1876 1876)\n(symbol-value 1456 1456)\n(symbol-value 0 0)\n(system \"\")\n(vendor \"\")\n"), -Attr("abi-name","\"aarch64-linux-gnu-elf\"")]), -Sections([Section(".shstrtab", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x40\x06\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x68\x1c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x38\x00\x09\x00\x40\x00\x1d\x00\x1c\x00\x06\x00\x00\x00\x04\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x04\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xa8\x08\x00\x00\x00\x00\x00\x00\xa8\x08\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x01\x00\x00\x00\x06\x00\x00\x00\xb8\x0d\x00\x00\x00\x00\x00\x00\xb8\x0d\x01\x00\x00\x00\x00\x00\xb8\x0d\x01"), -Section(".strtab", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x40\x06\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x68\x1c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x38\x00\x09\x00\x40\x00\x1d\x00\x1c\x00\x06\x00\x00\x00\x04\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x04\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xa8\x08\x00\x00\x00\x00\x00\x00\xa8\x08\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x01\x00\x00\x00\x06\x00\x00\x00\xb8\x0d\x00\x00\x00\x00\x00\x00\xb8\x0d\x01\x00\x00\x00\x00\x00\xb8\x0d\x01\x00\x00\x00\x00\x00\x7c\x02\x00\x00\x00\x00\x00\x00\x90\x02\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x02\x00\x00\x00\x06\x00\x00\x00\xc8\x0d\x00\x00\x00\x00\x00\x00\xc8\x0d\x01\x00\x00\x00\x00\x00\xc8\x0d\x01\x00\x00\x00\x00\x00\xe0\x01\x00\x00\x00\x00\x00\x00\xe0\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x04\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x50\xe5\x74\x64\x04\x00\x00\x00\xb4\x07\x00\x00\x00\x00\x00\x00\xb4\x07\x00\x00\x00\x00\x00\x00\xb4\x07\x00\x00\x00\x00\x00\x00\x3c\x00\x00\x00\x00\x00\x00\x00\x3c\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x51\xe5\x74\x64\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x52\xe5\x74\x64\x04\x00\x00\x00\xb8\x0d\x00\x00\x00\x00\x00\x00\xb8\x0d\x01\x00\x00\x00\x00\x00\xb8\x0d\x01\x00\x00\x00\x00\x00\x48\x02\x00\x00\x00\x00\x00\x00\x48\x02\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x2f\x6c\x69\x62\x2f\x6c"), -Section(".symtab", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x40\x06\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x68\x1c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x38\x00\x09\x00\x40\x00\x1d\x00\x1c\x00\x06\x00\x00\x00\x04\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x04\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xa8\x08\x00\x00\x00\x00\x00\x00\xa8\x08\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x01\x00\x00\x00\x06\x00\x00\x00\xb8\x0d\x00\x00\x00\x00\x00\x00\xb8\x0d\x01\x00\x00\x00\x00\x00\xb8\x0d\x01\x00\x00\x00\x00\x00\x7c\x02\x00\x00\x00\x00\x00\x00\x90\x02\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x02\x00\x00\x00\x06\x00\x00\x00\xc8\x0d\x00\x00\x00\x00\x00\x00\xc8\x0d\x01\x00\x00\x00\x00\x00\xc8\x0d\x01\x00\x00\x00\x00\x00\xe0\x01\x00\x00\x00\x00\x00\x00\xe0\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x04\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x50\xe5\x74\x64\x04\x00\x00\x00\xb4\x07\x00\x00\x00\x00\x00\x00\xb4\x07\x00\x00\x00\x00\x00\x00\xb4\x07\x00\x00\x00\x00\x00\x00\x3c\x00\x00\x00\x00\x00\x00\x00\x3c\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x51\xe5\x74\x64\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x52\xe5\x74\x64\x04\x00\x00\x00\xb8\x0d\x00\x00\x00\x00\x00\x00\xb8\x0d\x01\x00\x00\x00\x00\x00\xb8\x0d\x01\x00\x00\x00\x00\x00\x48\x02\x00\x00\x00\x00\x00\x00\x48\x02\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x2f\x6c\x69\x62\x2f\x6c\x64\x2d\x6c\x69\x6e\x75\x78\x2d\x61\x61\x72\x63\x68\x36\x34\x2e\x73\x6f\x2e\x31\x00\x00\x04\x00\x00\x00\x14\x00\x00\x00\x03\x00\x00\x00\x47\x4e\x55\x00\x6f\x70\xa3\x49\xae\xa1\x3e\x08\x12\x7a\x6e\xcc\xab\x2e\x1c\xc9\xe3\x6f\xa6\xfe\x04\x00\x00\x00\x10\x00\x00\x00\x01\x00\x00\x00\x47\x4e\x55\x00\x00\x00\x00\x00\x03\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x01\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x0b\x00\xb0\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x17\x00\x20\x10\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x48\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x22\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x22\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x73\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5f\x5f\x63\x78\x61\x5f\x66\x69\x6e\x61\x6c\x69\x7a\x65\x00\x5f\x5f\x6c\x69\x62\x63\x5f\x73\x74\x61\x72\x74\x5f\x6d\x61\x69\x6e\x00\x61\x62\x6f\x72\x74\x00\x6c\x69\x62\x63\x2e\x73\x6f\x2e\x36\x00\x47\x4c\x49\x42\x43\x5f\x32\x2e\x31\x37\x00\x47\x4c\x49\x42\x43\x5f\x32\x2e\x33\x34\x00\x5f\x49\x54\x4d\x5f\x64\x65\x72\x65\x67\x69\x73\x74\x65\x72\x54\x4d\x43\x6c\x6f\x6e\x65\x54\x61\x62\x6c\x65\x00\x5f\x5f\x67\x6d\x6f\x6e\x5f\x73\x74\x61\x72\x74\x5f\x5f\x00\x5f\x49\x54\x4d\x5f\x72\x65\x67\x69\x73\x74\x65\x72\x54\x4d\x43\x6c\x6f\x6e\x65\x54\x61\x62\x6c\x65\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x01\x00\x03\x00\x01\x00\x03\x00\x01\x00\x01\x00\x02\x00\x28\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x97\x91\x96\x06\x00\x00\x03\x00\x32\x00\x00\x00\x10\x00\x00\x00\xb4\x91\x96\x06\x00\x00\x02\x00\x3d\x00\x00\x00\x00\x00\x00\x00\xb8\x0d\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x50\x07\x00\x00\x00\x00\x00\x00\xc0\x0d\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\xc0\x0f\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x30\x10\x01\x00\x00\x00\x00\x00\xd0\x0f\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x40\x10\x01\x00\x00\x00\x00\x00\xd8\x0f\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x54\x07\x00\x00\x00\x00\x00\x00\x28\x10\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x28\x10\x01\x00\x00\x00\x00\x00\xb0\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xb8\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xc8\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe0\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x08\x10\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x10\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x18\x10\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1f\x20\x03\xd5\xfd\x7b\xbf\xa9\xfd\x03\x00\x91\x2e\x00\x00\x94\xfd\x7b\xc1\xa8\xc0\x03\x5f\xd6\x00\x00\x00\x00\x00\x00\x00\x00\xf0\x7b\xbf\xa9\x90\x00\x00\x90\x11\xfe\x47\xf9\x10\xe2\x3f\x91\x20\x02\x1f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x90\x00\x00\xb0\x11\x02\x40\xf9\x10\x02\x00\x91\x20\x02\x1f\xd6\x90\x00\x00\xb0\x11\x06\x40\xf9\x10\x22\x00\x91\x20\x02\x1f\xd6\x90\x00\x00\xb0\x11\x0a\x40\xf9\x10\x42\x00\x91\x20\x02\x1f\xd6\x90\x00\x00\xb0\x11\x0e\x40\xf9\x10\x62\x00\x91\x20\x02\x1f\xd6\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1f\x20\x03\xd5\x1d\x00\x80\xd2\x1e\x00\x80\xd2\xe5\x03\x00\xaa\xe1\x03\x40\xf9\xe2\x23\x00\x91\xe6\x03\x00\x91\x80\x00\x00\x90\x00\xec\x47\xf9\x03\x00\x80\xd2\x04\x00\x80\xd2\xe1\xff\xff\x97\xec\xff\xff\x97\x80\x00\x00\x90\x00\xe4\x47\xf9\x40\x00\x00\xb4\xe4\xff\xff\x17\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x80\x00\x00\xb0\x00\xe0\x00\x91\x81\x00\x00\xb0\x21\xe0\x00\x91\x3f\x00\x00\xeb\xc0\x00\x00\x54\x81\x00\x00\x90\x21\xd8\x47\xf9\x61\x00\x00\xb4\xf0\x03\x01\xaa\x00\x02\x1f\xd6\xc0\x03\x5f\xd6\x80\x00\x00\xb0\x00\xe0\x00\x91\x81\x00\x00\xb0\x21\xe0\x00\x91\x21\x00\x00\xcb\x22\xfc\x7f\xd3\x41\x0c\x81\x8b\x21\xfc\x41\x93\xc1\x00\x00\xb4\x82\x00\x00\x90\x42\xf0\x47\xf9\x62\x00\x00\xb4\xf0\x03\x02\xaa\x00\x02\x1f\xd6\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\xfd\x7b\xbe\xa9\xfd\x03\x00\x91\xf3\x0b\x00\xf9\x93\x00\x00\xb0\x60\xe2\x40\x39\x40\x01\x00\x35\x80\x00\x00\x90\x00\xdc\x47\xf9\x80\x00\x00\xb4\x80\x00\x00\xb0\x00\x14\x40\xf9\xb5\xff\xff\x97\xd8\xff\xff\x97\x20\x00\x80\x52\x60\xe2\x00\x39\xf3\x0b\x40\xf9\xfd\x7b\xc2\xa8\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\xdc\xff\xff\x17\xff\x83\x00\xd1\xe0\x1f\x00\xb9\xe1\x0b\x00\xf9\x89\x00\x00\x90\x29\xe1\x47\xf9\x28\x01\x40\xb9\xea\x33\x00\x91\xe8\x0f\x00\xb9\x88\x00\x00\x90\x08\xe9\x47\xf9\x0a\x01\x00\xf9\x08\x01\x40\xf9\x08\x01\x40\xb9\x08\x05\x00\x11\x28\x01\x00\xb9\xe0\x03\x1f\x2a\xff\x83\x00\x91\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\xfd\x7b\xbf\xa9\xfd\x03\x00\x91\xfd\x7b\xc1\xa8\xc0\x03\x5f\xd6\x01\x00\x02\x00\x01\x1b\x03\x3b\x38\x00\x00\x00\x06\x00\x00\x00\x8c\xfe\xff\xff\x50\x00\x00\x00\xdc\xfe\xff\xff\x64\x00\x00\x00\x0c\xff\xff\xff\x78\x00\x00\x00\x4c\xff\xff\xff\x8c\x00\x00\x00\x9c\xff\xff\xff\xb0\x00\x00\x00\xa0\xff\xff\xff\xd8\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x01\x7a\x52\x00\x04\x78\x1e\x01\x1b\x0c\x1f\x00\x10\x00\x00\x00\x18\x00\x00\x00\x34\xfe\xff\xff\x34\x00\x00\x00\x00\x41\x07\x1e\x10\x00\x00\x00\x2c\x00\x00\x00\x70\xfe\xff\xff\x30\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x40\x00\x00\x00\x8c\xfe\xff\xff\x3c\x00\x00\x00\x00\x00\x00\x00\x20\x00\x00\x00\x54\x00\x00\x00\xb8\xfe\xff\xff\x48\x00\x00\x00\x00\x41\x0e\x20\x9d\x04\x9e\x03\x42\x93\x02\x4e\xde\xdd\xd3\x0e\x00\x00\x00\x00\x10\x00\x00\x00\x78\x00\x00\x00\xe4\xfe\xff\xff\x04\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x01\x7a\x52\x00\x01\x7c\x1e\x01\x1b\x0c\x1f\x00\x14\x00\x00\x00\x18\x00\x00\x00\xc0\xfe\xff\xff\x48\x00\x00\x00\x00\x44\x0e\x20"), -Section(".comment", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x40\x06\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x68\x1c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x38\x00\x09\x00\x40\x00\x1d\x00\x1c\x00\x06\x00\x00\x00\x04\x00\x00"), -Section(".interp", 0x238, "\x2f\x6c\x69\x62\x2f\x6c\x64\x2d\x6c\x69\x6e\x75\x78\x2d\x61\x61\x72\x63\x68\x36\x34\x2e\x73\x6f\x2e\x31\x00"), -Section(".note.gnu.build-id", 0x254, "\x04\x00\x00\x00\x14\x00\x00\x00\x03\x00\x00\x00\x47\x4e\x55\x00\x6f\x70\xa3\x49\xae\xa1\x3e\x08\x12\x7a\x6e\xcc\xab\x2e\x1c\xc9\xe3\x6f\xa6\xfe"), -Section(".note.ABI-tag", 0x278, "\x04\x00\x00\x00\x10\x00\x00\x00\x01\x00\x00\x00\x47\x4e\x55\x00\x00\x00\x00\x00\x03\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00"), -Section(".gnu.hash", 0x298, "\x01\x00\x00\x00\x01\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".dynsym", 0x2B8, "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x0b\x00\xb0\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x17\x00\x20\x10\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x48\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x22\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x22\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x73\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".dynstr", 0x390, "\x00\x5f\x5f\x63\x78\x61\x5f\x66\x69\x6e\x61\x6c\x69\x7a\x65\x00\x5f\x5f\x6c\x69\x62\x63\x5f\x73\x74\x61\x72\x74\x5f\x6d\x61\x69\x6e\x00\x61\x62\x6f\x72\x74\x00\x6c\x69\x62\x63\x2e\x73\x6f\x2e\x36\x00\x47\x4c\x49\x42\x43\x5f\x32\x2e\x31\x37\x00\x47\x4c\x49\x42\x43\x5f\x32\x2e\x33\x34\x00\x5f\x49\x54\x4d\x5f\x64\x65\x72\x65\x67\x69\x73\x74\x65\x72\x54\x4d\x43\x6c\x6f\x6e\x65\x54\x61\x62\x6c\x65\x00\x5f\x5f\x67\x6d\x6f\x6e\x5f\x73\x74\x61\x72\x74\x5f\x5f\x00\x5f\x49\x54\x4d\x5f\x72\x65\x67\x69\x73\x74\x65\x72\x54\x4d\x43\x6c\x6f\x6e\x65\x54\x61\x62\x6c\x65\x00"), -Section(".gnu.version", 0x41E, "\x00\x00\x00\x00\x00\x00\x02\x00\x01\x00\x03\x00\x01\x00\x03\x00\x01\x00"), -Section(".gnu.version_r", 0x430, "\x01\x00\x02\x00\x28\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x97\x91\x96\x06\x00\x00\x03\x00\x32\x00\x00\x00\x10\x00\x00\x00\xb4\x91\x96\x06\x00\x00\x02\x00\x3d\x00\x00\x00\x00\x00\x00\x00"), -Section(".rela.dyn", 0x460, "\xb8\x0d\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x50\x07\x00\x00\x00\x00\x00\x00\xc0\x0d\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\xc0\x0f\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x30\x10\x01\x00\x00\x00\x00\x00\xd0\x0f\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x40\x10\x01\x00\x00\x00\x00\x00\xd8\x0f\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x54\x07\x00\x00\x00\x00\x00\x00\x28\x10\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x28\x10\x01\x00\x00\x00\x00\x00\xb0\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xb8\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xc8\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe0\x0f\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".rela.plt", 0x550, "\x00\x10\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x08\x10\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x10\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x18\x10\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".init", 0x5B0, "\x1f\x20\x03\xd5\xfd\x7b\xbf\xa9\xfd\x03\x00\x91\x2e\x00\x00\x94\xfd\x7b\xc1\xa8\xc0\x03\x5f\xd6"), -Section(".plt", 0x5D0, "\xf0\x7b\xbf\xa9\x90\x00\x00\x90\x11\xfe\x47\xf9\x10\xe2\x3f\x91\x20\x02\x1f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x90\x00\x00\xb0\x11\x02\x40\xf9\x10\x02\x00\x91\x20\x02\x1f\xd6\x90\x00\x00\xb0\x11\x06\x40\xf9\x10\x22\x00\x91\x20\x02\x1f\xd6\x90\x00\x00\xb0\x11\x0a\x40\xf9\x10\x42\x00\x91\x20\x02\x1f\xd6\x90\x00\x00\xb0\x11\x0e\x40\xf9\x10\x62\x00\x91\x20\x02\x1f\xd6"), -Section(".fini", 0x79C, "\x1f\x20\x03\xd5\xfd\x7b\xbf\xa9\xfd\x03\x00\x91\xfd\x7b\xc1\xa8\xc0\x03\x5f\xd6"), -Section(".rodata", 0x7B0, "\x01\x00\x02\x00"), -Section(".eh_frame_hdr", 0x7B4, "\x01\x1b\x03\x3b\x38\x00\x00\x00\x06\x00\x00\x00\x8c\xfe\xff\xff\x50\x00\x00\x00\xdc\xfe\xff\xff\x64\x00\x00\x00\x0c\xff\xff\xff\x78\x00\x00\x00\x4c\xff\xff\xff\x8c\x00\x00\x00\x9c\xff\xff\xff\xb0\x00\x00\x00\xa0\xff\xff\xff\xd8\x00\x00\x00"), -Section(".eh_frame", 0x7F0, "\x10\x00\x00\x00\x00\x00\x00\x00\x01\x7a\x52\x00\x04\x78\x1e\x01\x1b\x0c\x1f\x00\x10\x00\x00\x00\x18\x00\x00\x00\x34\xfe\xff\xff\x34\x00\x00\x00\x00\x41\x07\x1e\x10\x00\x00\x00\x2c\x00\x00\x00\x70\xfe\xff\xff\x30\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x40\x00\x00\x00\x8c\xfe\xff\xff\x3c\x00\x00\x00\x00\x00\x00\x00\x20\x00\x00\x00\x54\x00\x00\x00\xb8\xfe\xff\xff\x48\x00\x00\x00\x00\x41\x0e\x20\x9d\x04\x9e\x03\x42\x93\x02\x4e\xde\xdd\xd3\x0e\x00\x00\x00\x00\x10\x00\x00\x00\x78\x00\x00\x00\xe4\xfe\xff\xff\x04\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x01\x7a\x52\x00\x01\x7c\x1e\x01\x1b\x0c\x1f\x00\x14\x00\x00\x00\x18\x00\x00\x00\xc0\xfe\xff\xff\x48\x00\x00\x00\x00\x44\x0e\x20\x02\x40\x0e\x00\x00\x00\x00\x00"), -Section(".fini_array", 0x10DC0, "\x00\x07\x00\x00\x00\x00\x00\x00"), -Section(".dynamic", 0x10DC8, "\x01\x00\x00\x00\x00\x00\x00\x00\x28\x00\x00\x00\x00\x00\x00\x00\x0c\x00\x00\x00\x00\x00\x00\x00\xb0\x05\x00\x00\x00\x00\x00\x00\x0d\x00\x00\x00\x00\x00\x00\x00\x9c\x07\x00\x00\x00\x00\x00\x00\x19\x00\x00\x00\x00\x00\x00\x00\xb8\x0d\x01\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x1a\x00\x00\x00\x00\x00\x00\x00\xc0\x0d\x01\x00\x00\x00\x00\x00\x1c\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\xf5\xfe\xff\x6f\x00\x00\x00\x00\x98\x02\x00\x00\x00\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x90\x03\x00\x00\x00\x00\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\xb8\x02\x00\x00\x00\x00\x00\x00\x0a\x00\x00\x00\x00\x00\x00\x00\x8d\x00\x00\x00\x00\x00\x00\x00\x0b\x00\x00\x00\x00\x00\x00\x00\x18\x00\x00\x00\x00\x00\x00\x00\x15\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\xe8\x0f\x01\x00\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x60\x00\x00\x00\x00\x00\x00\x00\x14\x00\x00\x00\x00\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x17\x00\x00\x00\x00\x00\x00\x00\x50\x05\x00\x00\x00\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x60\x04\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\xf0\x00\x00\x00\x00\x00\x00\x00\x09\x00\x00\x00\x00\x00\x00\x00\x18\x00\x00\x00\x00\x00\x00\x00\xfb\xff\xff\x6f\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\xfe\xff\xff\x6f\x00\x00\x00\x00\x30\x04\x00\x00\x00\x00\x00\x00\xff\xff\xff\x6f\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\xf0\xff\xff\x6f\x00\x00\x00\x00\x1e\x04\x00\x00\x00\x00\x00\x00\xf9\xff\xff\x6f\x00\x00\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".init_array", 0x10DB8, "\x50\x07\x00\x00\x00\x00\x00\x00"), -Section(".got", 0x10FA8, "\xc8\x0d\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x30\x10\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x10\x01\x00\x00\x00\x00\x00\x54\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".got.plt", 0x10FE8, "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xd0\x05\x00\x00\x00\x00\x00\x00\xd0\x05\x00\x00\x00\x00\x00\x00\xd0\x05\x00\x00\x00\x00\x00\x00\xd0\x05\x00\x00\x00\x00\x00\x00"), -Section(".data", 0x11020, "\x00\x00\x00\x00\x00\x00\x00\x00\x28\x10\x01\x00\x00\x00\x00\x00\x02\x00\x00\x00"), -Section(".text", 0x640, "\x1f\x20\x03\xd5\x1d\x00\x80\xd2\x1e\x00\x80\xd2\xe5\x03\x00\xaa\xe1\x03\x40\xf9\xe2\x23\x00\x91\xe6\x03\x00\x91\x80\x00\x00\x90\x00\xec\x47\xf9\x03\x00\x80\xd2\x04\x00\x80\xd2\xe1\xff\xff\x97\xec\xff\xff\x97\x80\x00\x00\x90\x00\xe4\x47\xf9\x40\x00\x00\xb4\xe4\xff\xff\x17\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x80\x00\x00\xb0\x00\xe0\x00\x91\x81\x00\x00\xb0\x21\xe0\x00\x91\x3f\x00\x00\xeb\xc0\x00\x00\x54\x81\x00\x00\x90\x21\xd8\x47\xf9\x61\x00\x00\xb4\xf0\x03\x01\xaa\x00\x02\x1f\xd6\xc0\x03\x5f\xd6\x80\x00\x00\xb0\x00\xe0\x00\x91\x81\x00\x00\xb0\x21\xe0\x00\x91\x21\x00\x00\xcb\x22\xfc\x7f\xd3\x41\x0c\x81\x8b\x21\xfc\x41\x93\xc1\x00\x00\xb4\x82\x00\x00\x90\x42\xf0\x47\xf9\x62\x00\x00\xb4\xf0\x03\x02\xaa\x00\x02\x1f\xd6\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\xfd\x7b\xbe\xa9\xfd\x03\x00\x91\xf3\x0b\x00\xf9\x93\x00\x00\xb0\x60\xe2\x40\x39\x40\x01\x00\x35\x80\x00\x00\x90\x00\xdc\x47\xf9\x80\x00\x00\xb4\x80\x00\x00\xb0\x00\x14\x40\xf9\xb5\xff\xff\x97\xd8\xff\xff\x97\x20\x00\x80\x52\x60\xe2\x00\x39\xf3\x0b\x40\xf9\xfd\x7b\xc2\xa8\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\xdc\xff\xff\x17\xff\x83\x00\xd1\xe0\x1f\x00\xb9\xe1\x0b\x00\xf9\x89\x00\x00\x90\x29\xe1\x47\xf9\x28\x01\x40\xb9\xea\x33\x00\x91\xe8\x0f\x00\xb9\x88\x00\x00\x90\x08\xe9\x47\xf9\x0a\x01\x00\xf9\x08\x01\x40\xf9\x08\x01\x40\xb9\x08\x05\x00\x11\x28\x01\x00\xb9\xe0\x03\x1f\x2a\xff\x83\x00\x91\xc0\x03\x5f\xd6")]), -Memmap([Annotation(Region(0x0,0x8A7), Attr("segment","02 0 2216")), -Annotation(Region(0x640,0x673), Attr("symbol","\"_start\"")), -Annotation(Region(0x0,0x102), Attr("section","\".shstrtab\"")), -Annotation(Region(0x0,0x23D), Attr("section","\".strtab\"")), -Annotation(Region(0x0,0x89F), Attr("section","\".symtab\"")), -Annotation(Region(0x0,0x46), Attr("section","\".comment\"")), -Annotation(Region(0x238,0x252), Attr("section","\".interp\"")), -Annotation(Region(0x254,0x277), Attr("section","\".note.gnu.build-id\"")), -Annotation(Region(0x278,0x297), Attr("section","\".note.ABI-tag\"")), -Annotation(Region(0x298,0x2B3), Attr("section","\".gnu.hash\"")), -Annotation(Region(0x2B8,0x38F), Attr("section","\".dynsym\"")), -Annotation(Region(0x390,0x41C), Attr("section","\".dynstr\"")), -Annotation(Region(0x41E,0x42F), Attr("section","\".gnu.version\"")), -Annotation(Region(0x430,0x45F), Attr("section","\".gnu.version_r\"")), -Annotation(Region(0x460,0x54F), Attr("section","\".rela.dyn\"")), -Annotation(Region(0x550,0x5AF), Attr("section","\".rela.plt\"")), -Annotation(Region(0x5B0,0x5C7), Attr("section","\".init\"")), -Annotation(Region(0x5D0,0x62F), Attr("section","\".plt\"")), -Annotation(Region(0x5B0,0x5C7), Attr("code-region","()")), -Annotation(Region(0x5D0,0x62F), Attr("code-region","()")), -Annotation(Region(0x640,0x673), Attr("symbol-info","_start 0x640 52")), -Annotation(Region(0x674,0x687), Attr("symbol","\"call_weak_fn\"")), -Annotation(Region(0x674,0x687), Attr("symbol-info","call_weak_fn 0x674 20")), -Annotation(Region(0x754,0x79B), Attr("symbol","\"main\"")), -Annotation(Region(0x754,0x79B), Attr("symbol-info","main 0x754 72")), -Annotation(Region(0x79C,0x7AF), Attr("section","\".fini\"")), -Annotation(Region(0x7B0,0x7B3), Attr("section","\".rodata\"")), -Annotation(Region(0x7B4,0x7EF), Attr("section","\".eh_frame_hdr\"")), -Annotation(Region(0x7F0,0x8A7), Attr("section","\".eh_frame\"")), -Annotation(Region(0x10DB8,0x11033), Attr("segment","03 0x10DB8 656")), -Annotation(Region(0x10DC0,0x10DC7), Attr("section","\".fini_array\"")), -Annotation(Region(0x10DC8,0x10FA7), Attr("section","\".dynamic\"")), -Annotation(Region(0x10DB8,0x10DBF), Attr("section","\".init_array\"")), -Annotation(Region(0x10FA8,0x10FE7), Attr("section","\".got\"")), -Annotation(Region(0x10FE8,0x1101F), Attr("section","\".got.plt\"")), -Annotation(Region(0x11020,0x11033), Attr("section","\".data\"")), -Annotation(Region(0x640,0x79B), Attr("section","\".text\"")), -Annotation(Region(0x640,0x79B), Attr("code-region","()")), -Annotation(Region(0x79C,0x7AF), Attr("code-region","()"))]), -Program(Tid(1_439, "%0000059f"), Attrs([]), - Subs([Sub(Tid(1_417, "@__cxa_finalize"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x600"), -Attr("stub","()")]), "__cxa_finalize", Args([Arg(Tid(1_440, "%000005a0"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("__cxa_finalize_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(928, "@__cxa_finalize"), - Attrs([Attr("address","0x600")]), Phis([]), -Defs([Def(Tid(1_176, "%00000498"), Attrs([Attr("address","0x600"), -Attr("insn","adrp x16, #69632")]), Var("R16",Imm(64)), Int(69632,64)), -Def(Tid(1_183, "%0000049f"), Attrs([Attr("address","0x604"), -Attr("insn","ldr x17, [x16, #0x8]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(1_189, "%000004a5"), Attrs([Attr("address","0x608"), -Attr("insn","add x16, x16, #0x8")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(8,64)))]), Jmps([Call(Tid(1_194, "%000004aa"), - Attrs([Attr("address","0x60C"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), -Sub(Tid(1_418, "@__do_global_dtors_aux"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x700")]), - "__do_global_dtors_aux", Args([Arg(Tid(1_441, "%000005a1"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("__do_global_dtors_aux_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(662, "@__do_global_dtors_aux"), - Attrs([Attr("address","0x700")]), Phis([]), Defs([Def(Tid(666, "%0000029a"), - Attrs([Attr("address","0x700"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("#3",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(18446744073709551584,64))), -Def(Tid(672, "%000002a0"), Attrs([Attr("address","0x700"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("#3",Imm(64)),Var("R29",Imm(64)),LittleEndian(),64)), -Def(Tid(678, "%000002a6"), Attrs([Attr("address","0x700"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("#3",Imm(64)),Int(8,64)),Var("R30",Imm(64)),LittleEndian(),64)), -Def(Tid(682, "%000002aa"), Attrs([Attr("address","0x700"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("R31",Imm(64)), -Var("#3",Imm(64))), Def(Tid(688, "%000002b0"), - Attrs([Attr("address","0x704"), Attr("insn","mov x29, sp")]), - Var("R29",Imm(64)), Var("R31",Imm(64))), Def(Tid(696, "%000002b8"), - Attrs([Attr("address","0x708"), Attr("insn","str x19, [sp, #0x10]")]), - Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(16,64)),Var("R19",Imm(64)),LittleEndian(),64)), -Def(Tid(701, "%000002bd"), Attrs([Attr("address","0x70C"), -Attr("insn","adrp x19, #69632")]), Var("R19",Imm(64)), Int(69632,64)), -Def(Tid(708, "%000002c4"), Attrs([Attr("address","0x710"), -Attr("insn","ldrb w0, [x19, #0x38]")]), Var("R0",Imm(64)), -UNSIGNED(64,Load(Var("mem",Mem(64,8)),PLUS(Var("R19",Imm(64)),Int(56,64)),LittleEndian(),8)))]), -Jmps([Goto(Tid(715, "%000002cb"), Attrs([Attr("address","0x714"), -Attr("insn","cbnz w0, #0x28")]), - NEQ(Extract(31,0,Var("R0",Imm(64))),Int(0,32)), -Direct(Tid(713, "%000002c9"))), Goto(Tid(1_419, "%0000058b"), Attrs([]), - Int(1,1), Direct(Tid(873, "%00000369")))])), Blk(Tid(873, "%00000369"), - Attrs([Attr("address","0x718")]), Phis([]), Defs([Def(Tid(876, "%0000036c"), - Attrs([Attr("address","0x718"), Attr("insn","adrp x0, #65536")]), - Var("R0",Imm(64)), Int(65536,64)), Def(Tid(883, "%00000373"), - Attrs([Attr("address","0x71C"), Attr("insn","ldr x0, [x0, #0xfb8]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(4024,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(889, "%00000379"), Attrs([Attr("address","0x720"), -Attr("insn","cbz x0, #0x10")]), EQ(Var("R0",Imm(64)),Int(0,64)), -Direct(Tid(887, "%00000377"))), Goto(Tid(1_420, "%0000058c"), Attrs([]), - Int(1,1), Direct(Tid(912, "%00000390")))])), Blk(Tid(912, "%00000390"), - Attrs([Attr("address","0x724")]), Phis([]), Defs([Def(Tid(915, "%00000393"), - Attrs([Attr("address","0x724"), Attr("insn","adrp x0, #69632")]), - Var("R0",Imm(64)), Int(69632,64)), Def(Tid(922, "%0000039a"), - Attrs([Attr("address","0x728"), Attr("insn","ldr x0, [x0, #0x28]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(40,64)),LittleEndian(),64)), -Def(Tid(927, "%0000039f"), Attrs([Attr("address","0x72C"), -Attr("insn","bl #-0x12c")]), Var("R30",Imm(64)), Int(1840,64))]), -Jmps([Call(Tid(930, "%000003a2"), Attrs([Attr("address","0x72C"), -Attr("insn","bl #-0x12c")]), Int(1,1), -(Direct(Tid(1_417, "@__cxa_finalize")),Direct(Tid(887, "%00000377"))))])), -Blk(Tid(887, "%00000377"), Attrs([Attr("address","0x730")]), Phis([]), -Defs([Def(Tid(895, "%0000037f"), Attrs([Attr("address","0x730"), -Attr("insn","bl #-0xa0")]), Var("R30",Imm(64)), Int(1844,64))]), -Jmps([Call(Tid(897, "%00000381"), Attrs([Attr("address","0x730"), -Attr("insn","bl #-0xa0")]), Int(1,1), -(Direct(Tid(1_431, "@deregister_tm_clones")),Direct(Tid(899, "%00000383"))))])), -Blk(Tid(899, "%00000383"), Attrs([Attr("address","0x734")]), Phis([]), -Defs([Def(Tid(902, "%00000386"), Attrs([Attr("address","0x734"), -Attr("insn","mov w0, #0x1")]), Var("R0",Imm(64)), Int(1,64)), -Def(Tid(910, "%0000038e"), Attrs([Attr("address","0x738"), -Attr("insn","strb w0, [x19, #0x38]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R19",Imm(64)),Int(56,64)),Extract(7,0,Var("R0",Imm(64))),LittleEndian(),8))]), -Jmps([Goto(Tid(1_421, "%0000058d"), Attrs([]), Int(1,1), -Direct(Tid(713, "%000002c9")))])), Blk(Tid(713, "%000002c9"), - Attrs([Attr("address","0x73C")]), Phis([]), Defs([Def(Tid(723, "%000002d3"), - Attrs([Attr("address","0x73C"), Attr("insn","ldr x19, [sp, #0x10]")]), - Var("R19",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(16,64)),LittleEndian(),64)), -Def(Tid(730, "%000002da"), Attrs([Attr("address","0x740"), -Attr("insn","ldp x29, x30, [sp], #0x20")]), Var("R29",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(735, "%000002df"), Attrs([Attr("address","0x740"), -Attr("insn","ldp x29, x30, [sp], #0x20")]), Var("R30",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(739, "%000002e3"), Attrs([Attr("address","0x740"), -Attr("insn","ldp x29, x30, [sp], #0x20")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(32,64)))]), Jmps([Call(Tid(744, "%000002e8"), - Attrs([Attr("address","0x744"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), Sub(Tid(1_422, "@__libc_start_main"), - Attrs([Attr("c.proto","signed (*)(signed (*)(signed , char** , char** );* main, signed , char** , \nvoid* auxv)"), -Attr("address","0x5F0"), Attr("stub","()")]), "__libc_start_main", - Args([Arg(Tid(1_442, "%000005a2"), - Attrs([Attr("c.layout","**[ : 64]"), -Attr("c.data","Top:u64 ptr ptr"), -Attr("c.type","signed (*)(signed , char** , char** );*")]), - Var("__libc_start_main_main",Imm(64)), Var("R0",Imm(64)), In()), -Arg(Tid(1_443, "%000005a3"), Attrs([Attr("c.layout","[signed : 32]"), -Attr("c.data","Top:u32"), Attr("c.type","signed")]), - Var("__libc_start_main_arg2",Imm(32)), LOW(32,Var("R1",Imm(64))), In()), -Arg(Tid(1_444, "%000005a4"), Attrs([Attr("c.layout","**[char : 8]"), -Attr("c.data","Top:u8 ptr ptr"), Attr("c.type","char**")]), - Var("__libc_start_main_arg3",Imm(64)), Var("R2",Imm(64)), Both()), -Arg(Tid(1_445, "%000005a5"), Attrs([Attr("c.layout","*[ : 8]"), -Attr("c.data","{} ptr"), Attr("c.type","void*")]), - Var("__libc_start_main_auxv",Imm(64)), Var("R3",Imm(64)), Both()), -Arg(Tid(1_446, "%000005a6"), Attrs([Attr("c.layout","[signed : 32]"), -Attr("c.data","Top:u32"), Attr("c.type","signed")]), - Var("__libc_start_main_result",Imm(32)), LOW(32,Var("R0",Imm(64))), -Out())]), Blks([Blk(Tid(495, "@__libc_start_main"), - Attrs([Attr("address","0x5F0")]), Phis([]), -Defs([Def(Tid(1_154, "%00000482"), Attrs([Attr("address","0x5F0"), -Attr("insn","adrp x16, #69632")]), Var("R16",Imm(64)), Int(69632,64)), -Def(Tid(1_161, "%00000489"), Attrs([Attr("address","0x5F4"), -Attr("insn","ldr x17, [x16]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R16",Imm(64)),LittleEndian(),64)), -Def(Tid(1_167, "%0000048f"), Attrs([Attr("address","0x5F8"), -Attr("insn","add x16, x16, #0x0")]), Var("R16",Imm(64)), -Var("R16",Imm(64)))]), Jmps([Call(Tid(1_172, "%00000494"), - Attrs([Attr("address","0x5FC"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), Sub(Tid(1_423, "@_fini"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x79C")]), - "_fini", Args([Arg(Tid(1_447, "%000005a7"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("_fini_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(31, "@_fini"), - Attrs([Attr("address","0x79C")]), Phis([]), Defs([Def(Tid(37, "%00000025"), - Attrs([Attr("address","0x7A0"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("#0",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(18446744073709551600,64))), -Def(Tid(43, "%0000002b"), Attrs([Attr("address","0x7A0"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("#0",Imm(64)),Var("R29",Imm(64)),LittleEndian(),64)), -Def(Tid(49, "%00000031"), Attrs([Attr("address","0x7A0"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("#0",Imm(64)),Int(8,64)),Var("R30",Imm(64)),LittleEndian(),64)), -Def(Tid(53, "%00000035"), Attrs([Attr("address","0x7A0"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("R31",Imm(64)), -Var("#0",Imm(64))), Def(Tid(59, "%0000003b"), Attrs([Attr("address","0x7A4"), -Attr("insn","mov x29, sp")]), Var("R29",Imm(64)), Var("R31",Imm(64))), -Def(Tid(66, "%00000042"), Attrs([Attr("address","0x7A8"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R29",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(71, "%00000047"), Attrs([Attr("address","0x7A8"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R30",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(75, "%0000004b"), Attrs([Attr("address","0x7A8"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(16,64)))]), Jmps([Call(Tid(80, "%00000050"), - Attrs([Attr("address","0x7AC"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), Sub(Tid(1_424, "@_init"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x5B0")]), - "_init", Args([Arg(Tid(1_448, "%000005a8"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("_init_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(1_266, "@_init"), - Attrs([Attr("address","0x5B0")]), Phis([]), -Defs([Def(Tid(1_272, "%000004f8"), Attrs([Attr("address","0x5B4"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("#5",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(18446744073709551600,64))), -Def(Tid(1_278, "%000004fe"), Attrs([Attr("address","0x5B4"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("#5",Imm(64)),Var("R29",Imm(64)),LittleEndian(),64)), -Def(Tid(1_284, "%00000504"), Attrs([Attr("address","0x5B4"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("#5",Imm(64)),Int(8,64)),Var("R30",Imm(64)),LittleEndian(),64)), -Def(Tid(1_288, "%00000508"), Attrs([Attr("address","0x5B4"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("R31",Imm(64)), -Var("#5",Imm(64))), Def(Tid(1_294, "%0000050e"), - Attrs([Attr("address","0x5B8"), Attr("insn","mov x29, sp")]), - Var("R29",Imm(64)), Var("R31",Imm(64))), Def(Tid(1_299, "%00000513"), - Attrs([Attr("address","0x5BC"), Attr("insn","bl #0xb8")]), - Var("R30",Imm(64)), Int(1472,64))]), Jmps([Call(Tid(1_301, "%00000515"), - Attrs([Attr("address","0x5BC"), Attr("insn","bl #0xb8")]), Int(1,1), -(Direct(Tid(1_429, "@call_weak_fn")),Direct(Tid(1_303, "%00000517"))))])), -Blk(Tid(1_303, "%00000517"), Attrs([Attr("address","0x5C0")]), Phis([]), -Defs([Def(Tid(1_308, "%0000051c"), Attrs([Attr("address","0x5C0"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R29",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(1_313, "%00000521"), Attrs([Attr("address","0x5C0"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R30",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(1_317, "%00000525"), Attrs([Attr("address","0x5C0"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(16,64)))]), Jmps([Call(Tid(1_322, "%0000052a"), - Attrs([Attr("address","0x5C4"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), Sub(Tid(1_425, "@_start"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x640"), -Attr("entry-point","()")]), "_start", Args([Arg(Tid(1_449, "%000005a9"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("_start_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(432, "@_start"), - Attrs([Attr("address","0x640")]), Phis([]), Defs([Def(Tid(437, "%000001b5"), - Attrs([Attr("address","0x644"), Attr("insn","mov x29, #0x0")]), - Var("R29",Imm(64)), Int(0,64)), Def(Tid(442, "%000001ba"), - Attrs([Attr("address","0x648"), Attr("insn","mov x30, #0x0")]), - Var("R30",Imm(64)), Int(0,64)), Def(Tid(448, "%000001c0"), - Attrs([Attr("address","0x64C"), Attr("insn","mov x5, x0")]), - Var("R5",Imm(64)), Var("R0",Imm(64))), Def(Tid(455, "%000001c7"), - Attrs([Attr("address","0x650"), Attr("insn","ldr x1, [sp]")]), - Var("R1",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(461, "%000001cd"), Attrs([Attr("address","0x654"), -Attr("insn","add x2, sp, #0x8")]), Var("R2",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(8,64))), Def(Tid(467, "%000001d3"), - Attrs([Attr("address","0x658"), Attr("insn","mov x6, sp")]), - Var("R6",Imm(64)), Var("R31",Imm(64))), Def(Tid(472, "%000001d8"), - Attrs([Attr("address","0x65C"), Attr("insn","adrp x0, #65536")]), - Var("R0",Imm(64)), Int(65536,64)), Def(Tid(479, "%000001df"), - Attrs([Attr("address","0x660"), Attr("insn","ldr x0, [x0, #0xfd8]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(4056,64)),LittleEndian(),64)), -Def(Tid(484, "%000001e4"), Attrs([Attr("address","0x664"), -Attr("insn","mov x3, #0x0")]), Var("R3",Imm(64)), Int(0,64)), -Def(Tid(489, "%000001e9"), Attrs([Attr("address","0x668"), -Attr("insn","mov x4, #0x0")]), Var("R4",Imm(64)), Int(0,64)), -Def(Tid(494, "%000001ee"), Attrs([Attr("address","0x66C"), -Attr("insn","bl #-0x7c")]), Var("R30",Imm(64)), Int(1648,64))]), -Jmps([Call(Tid(497, "%000001f1"), Attrs([Attr("address","0x66C"), -Attr("insn","bl #-0x7c")]), Int(1,1), -(Direct(Tid(1_422, "@__libc_start_main")),Direct(Tid(499, "%000001f3"))))])), -Blk(Tid(499, "%000001f3"), Attrs([Attr("address","0x670")]), Phis([]), -Defs([Def(Tid(502, "%000001f6"), Attrs([Attr("address","0x670"), -Attr("insn","bl #-0x50")]), Var("R30",Imm(64)), Int(1652,64))]), -Jmps([Call(Tid(505, "%000001f9"), Attrs([Attr("address","0x670"), -Attr("insn","bl #-0x50")]), Int(1,1), -(Direct(Tid(1_428, "@abort")),Direct(Tid(1_426, "%00000592"))))])), -Blk(Tid(1_426, "%00000592"), Attrs([]), Phis([]), Defs([]), -Jmps([Call(Tid(1_427, "%00000593"), Attrs([]), Int(1,1), -(Direct(Tid(1_429, "@call_weak_fn")),))]))])), Sub(Tid(1_428, "@abort"), - Attrs([Attr("noreturn","()"), Attr("c.proto","void (*)(void)"), -Attr("address","0x620"), Attr("stub","()")]), "abort", Args([]), -Blks([Blk(Tid(503, "@abort"), Attrs([Attr("address","0x620")]), Phis([]), -Defs([Def(Tid(1_220, "%000004c4"), Attrs([Attr("address","0x620"), -Attr("insn","adrp x16, #69632")]), Var("R16",Imm(64)), Int(69632,64)), -Def(Tid(1_227, "%000004cb"), Attrs([Attr("address","0x624"), -Attr("insn","ldr x17, [x16, #0x18]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(24,64)),LittleEndian(),64)), -Def(Tid(1_233, "%000004d1"), Attrs([Attr("address","0x628"), -Attr("insn","add x16, x16, #0x18")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(24,64)))]), Jmps([Call(Tid(1_238, "%000004d6"), - Attrs([Attr("address","0x62C"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), Sub(Tid(1_429, "@call_weak_fn"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x674")]), - "call_weak_fn", Args([Arg(Tid(1_450, "%000005aa"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("call_weak_fn_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(507, "@call_weak_fn"), - Attrs([Attr("address","0x674")]), Phis([]), Defs([Def(Tid(510, "%000001fe"), - Attrs([Attr("address","0x674"), Attr("insn","adrp x0, #65536")]), - Var("R0",Imm(64)), Int(65536,64)), Def(Tid(517, "%00000205"), - Attrs([Attr("address","0x678"), Attr("insn","ldr x0, [x0, #0xfc8]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(4040,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(523, "%0000020b"), Attrs([Attr("address","0x67C"), -Attr("insn","cbz x0, #0x8")]), EQ(Var("R0",Imm(64)),Int(0,64)), -Direct(Tid(521, "%00000209"))), Goto(Tid(1_430, "%00000596"), Attrs([]), - Int(1,1), Direct(Tid(992, "%000003e0")))])), Blk(Tid(521, "%00000209"), - Attrs([Attr("address","0x684")]), Phis([]), Defs([]), -Jmps([Call(Tid(529, "%00000211"), Attrs([Attr("address","0x684"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))])), -Blk(Tid(992, "%000003e0"), Attrs([Attr("address","0x680")]), Phis([]), -Defs([]), Jmps([Goto(Tid(995, "%000003e3"), Attrs([Attr("address","0x680"), -Attr("insn","b #-0x70")]), Int(1,1), Direct(Tid(993, "@__gmon_start__")))])), -Blk(Tid(993, "@__gmon_start__"), Attrs([Attr("address","0x610")]), Phis([]), -Defs([Def(Tid(1_198, "%000004ae"), Attrs([Attr("address","0x610"), -Attr("insn","adrp x16, #69632")]), Var("R16",Imm(64)), Int(69632,64)), -Def(Tid(1_205, "%000004b5"), Attrs([Attr("address","0x614"), -Attr("insn","ldr x17, [x16, #0x10]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(16,64)),LittleEndian(),64)), -Def(Tid(1_211, "%000004bb"), Attrs([Attr("address","0x618"), -Attr("insn","add x16, x16, #0x10")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(16,64)))]), Jmps([Call(Tid(1_216, "%000004c0"), - Attrs([Attr("address","0x61C"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), -Sub(Tid(1_431, "@deregister_tm_clones"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x690")]), - "deregister_tm_clones", Args([Arg(Tid(1_451, "%000005ab"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("deregister_tm_clones_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(535, "@deregister_tm_clones"), - Attrs([Attr("address","0x690")]), Phis([]), Defs([Def(Tid(538, "%0000021a"), - Attrs([Attr("address","0x690"), Attr("insn","adrp x0, #69632")]), - Var("R0",Imm(64)), Int(69632,64)), Def(Tid(544, "%00000220"), - Attrs([Attr("address","0x694"), Attr("insn","add x0, x0, #0x38")]), - Var("R0",Imm(64)), PLUS(Var("R0",Imm(64)),Int(56,64))), -Def(Tid(549, "%00000225"), Attrs([Attr("address","0x698"), -Attr("insn","adrp x1, #69632")]), Var("R1",Imm(64)), Int(69632,64)), -Def(Tid(555, "%0000022b"), Attrs([Attr("address","0x69C"), -Attr("insn","add x1, x1, #0x38")]), Var("R1",Imm(64)), -PLUS(Var("R1",Imm(64)),Int(56,64))), Def(Tid(561, "%00000231"), - Attrs([Attr("address","0x6A0"), Attr("insn","cmp x1, x0")]), - Var("#1",Imm(64)), NOT(Var("R0",Imm(64)))), Def(Tid(566, "%00000236"), - Attrs([Attr("address","0x6A0"), Attr("insn","cmp x1, x0")]), - Var("#2",Imm(64)), PLUS(Var("R1",Imm(64)),NOT(Var("R0",Imm(64))))), -Def(Tid(572, "%0000023c"), Attrs([Attr("address","0x6A0"), -Attr("insn","cmp x1, x0")]), Var("VF",Imm(1)), -NEQ(SIGNED(65,PLUS(Var("#2",Imm(64)),Int(1,64))),PLUS(PLUS(SIGNED(65,Var("R1",Imm(64))),SIGNED(65,Var("#1",Imm(64)))),Int(1,65)))), -Def(Tid(578, "%00000242"), Attrs([Attr("address","0x6A0"), -Attr("insn","cmp x1, x0")]), Var("CF",Imm(1)), -NEQ(UNSIGNED(65,PLUS(Var("#2",Imm(64)),Int(1,64))),PLUS(PLUS(UNSIGNED(65,Var("R1",Imm(64))),UNSIGNED(65,Var("#1",Imm(64)))),Int(1,65)))), -Def(Tid(582, "%00000246"), Attrs([Attr("address","0x6A0"), -Attr("insn","cmp x1, x0")]), Var("ZF",Imm(1)), -EQ(PLUS(Var("#2",Imm(64)),Int(1,64)),Int(0,64))), Def(Tid(586, "%0000024a"), - Attrs([Attr("address","0x6A0"), Attr("insn","cmp x1, x0")]), - Var("NF",Imm(1)), Extract(63,63,PLUS(Var("#2",Imm(64)),Int(1,64))))]), -Jmps([Goto(Tid(592, "%00000250"), Attrs([Attr("address","0x6A4"), -Attr("insn","b.eq #0x18")]), EQ(Var("ZF",Imm(1)),Int(1,1)), -Direct(Tid(590, "%0000024e"))), Goto(Tid(1_432, "%00000598"), Attrs([]), - Int(1,1), Direct(Tid(962, "%000003c2")))])), Blk(Tid(962, "%000003c2"), - Attrs([Attr("address","0x6A8")]), Phis([]), Defs([Def(Tid(965, "%000003c5"), - Attrs([Attr("address","0x6A8"), Attr("insn","adrp x1, #65536")]), - Var("R1",Imm(64)), Int(65536,64)), Def(Tid(972, "%000003cc"), - Attrs([Attr("address","0x6AC"), Attr("insn","ldr x1, [x1, #0xfb0]")]), - Var("R1",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R1",Imm(64)),Int(4016,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(977, "%000003d1"), Attrs([Attr("address","0x6B0"), -Attr("insn","cbz x1, #0xc")]), EQ(Var("R1",Imm(64)),Int(0,64)), -Direct(Tid(590, "%0000024e"))), Goto(Tid(1_433, "%00000599"), Attrs([]), - Int(1,1), Direct(Tid(981, "%000003d5")))])), Blk(Tid(590, "%0000024e"), - Attrs([Attr("address","0x6BC")]), Phis([]), Defs([]), -Jmps([Call(Tid(598, "%00000256"), Attrs([Attr("address","0x6BC"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))])), -Blk(Tid(981, "%000003d5"), Attrs([Attr("address","0x6B4")]), Phis([]), -Defs([Def(Tid(985, "%000003d9"), Attrs([Attr("address","0x6B4"), -Attr("insn","mov x16, x1")]), Var("R16",Imm(64)), Var("R1",Imm(64)))]), -Jmps([Call(Tid(990, "%000003de"), Attrs([Attr("address","0x6B8"), -Attr("insn","br x16")]), Int(1,1), (Indirect(Var("R16",Imm(64))),))]))])), -Sub(Tid(1_434, "@frame_dummy"), Attrs([Attr("c.proto","signed (*)(void)"), -Attr("address","0x750")]), "frame_dummy", Args([Arg(Tid(1_452, "%000005ac"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("frame_dummy_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(750, "@frame_dummy"), - Attrs([Attr("address","0x750")]), Phis([]), Defs([]), -Jmps([Call(Tid(752, "%000002f0"), Attrs([Attr("address","0x750"), -Attr("insn","b #-0x90")]), Int(1,1), -(Direct(Tid(1_436, "@register_tm_clones")),))]))])), Sub(Tid(1_435, "@main"), - Attrs([Attr("c.proto","signed (*)(signed argc, const char** argv)"), -Attr("address","0x754")]), "main", Args([Arg(Tid(1_453, "%000005ad"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("main_argc",Imm(32)), -LOW(32,Var("R0",Imm(64))), In()), Arg(Tid(1_454, "%000005ae"), - Attrs([Attr("c.layout","**[char : 8]"), Attr("c.data","Top:u8 ptr ptr"), -Attr("c.type"," const char**")]), Var("main_argv",Imm(64)), -Var("R1",Imm(64)), Both()), Arg(Tid(1_455, "%000005af"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("main_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(754, "@main"), - Attrs([Attr("address","0x754")]), Phis([]), Defs([Def(Tid(758, "%000002f6"), - Attrs([Attr("address","0x754"), Attr("insn","sub sp, sp, #0x20")]), - Var("R31",Imm(64)), PLUS(Var("R31",Imm(64)),Int(18446744073709551584,64))), -Def(Tid(766, "%000002fe"), Attrs([Attr("address","0x758"), -Attr("insn","str w0, [sp, #0x1c]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(28,64)),Extract(31,0,Var("R0",Imm(64))),LittleEndian(),32)), -Def(Tid(774, "%00000306"), Attrs([Attr("address","0x75C"), -Attr("insn","str x1, [sp, #0x10]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(16,64)),Var("R1",Imm(64)),LittleEndian(),64)), -Def(Tid(779, "%0000030b"), Attrs([Attr("address","0x760"), -Attr("insn","adrp x9, #65536")]), Var("R9",Imm(64)), Int(65536,64)), -Def(Tid(786, "%00000312"), Attrs([Attr("address","0x764"), -Attr("insn","ldr x9, [x9, #0xfc0]")]), Var("R9",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R9",Imm(64)),Int(4032,64)),LittleEndian(),64)), -Def(Tid(793, "%00000319"), Attrs([Attr("address","0x768"), -Attr("insn","ldr w8, [x9]")]), Var("R8",Imm(64)), -UNSIGNED(64,Load(Var("mem",Mem(64,8)),Var("R9",Imm(64)),LittleEndian(),32))), -Def(Tid(799, "%0000031f"), Attrs([Attr("address","0x76C"), -Attr("insn","add x10, sp, #0xc")]), Var("R10",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(12,64))), Def(Tid(807, "%00000327"), - Attrs([Attr("address","0x770"), Attr("insn","str w8, [sp, #0xc]")]), - Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(12,64)),Extract(31,0,Var("R8",Imm(64))),LittleEndian(),32)), -Def(Tid(812, "%0000032c"), Attrs([Attr("address","0x774"), -Attr("insn","adrp x8, #65536")]), Var("R8",Imm(64)), Int(65536,64)), -Def(Tid(819, "%00000333"), Attrs([Attr("address","0x778"), -Attr("insn","ldr x8, [x8, #0xfd0]")]), Var("R8",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R8",Imm(64)),Int(4048,64)),LittleEndian(),64)), -Def(Tid(827, "%0000033b"), Attrs([Attr("address","0x77C"), -Attr("insn","str x10, [x8]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("R8",Imm(64)),Var("R10",Imm(64)),LittleEndian(),64)), -Def(Tid(834, "%00000342"), Attrs([Attr("address","0x780"), -Attr("insn","ldr x8, [x8]")]), Var("R8",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R8",Imm(64)),LittleEndian(),64)), -Def(Tid(841, "%00000349"), Attrs([Attr("address","0x784"), -Attr("insn","ldr w8, [x8]")]), Var("R8",Imm(64)), -UNSIGNED(64,Load(Var("mem",Mem(64,8)),Var("R8",Imm(64)),LittleEndian(),32))), -Def(Tid(847, "%0000034f"), Attrs([Attr("address","0x788"), -Attr("insn","add w8, w8, #0x1")]), Var("R8",Imm(64)), -UNSIGNED(64,PLUS(Extract(31,0,Var("R8",Imm(64))),Int(1,32)))), -Def(Tid(855, "%00000357"), Attrs([Attr("address","0x78C"), -Attr("insn","str w8, [x9]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("R9",Imm(64)),Extract(31,0,Var("R8",Imm(64))),LittleEndian(),32)), -Def(Tid(860, "%0000035c"), Attrs([Attr("address","0x790"), -Attr("insn","mov w0, wzr")]), Var("R0",Imm(64)), Int(0,64)), -Def(Tid(866, "%00000362"), Attrs([Attr("address","0x794"), -Attr("insn","add sp, sp, #0x20")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(32,64)))]), Jmps([Call(Tid(871, "%00000367"), - Attrs([Attr("address","0x798"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), -Sub(Tid(1_436, "@register_tm_clones"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x6C0")]), - "register_tm_clones", Args([Arg(Tid(1_456, "%000005b0"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("register_tm_clones_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(600, "@register_tm_clones"), Attrs([Attr("address","0x6C0")]), - Phis([]), Defs([Def(Tid(603, "%0000025b"), Attrs([Attr("address","0x6C0"), -Attr("insn","adrp x0, #69632")]), Var("R0",Imm(64)), Int(69632,64)), -Def(Tid(609, "%00000261"), Attrs([Attr("address","0x6C4"), -Attr("insn","add x0, x0, #0x38")]), Var("R0",Imm(64)), -PLUS(Var("R0",Imm(64)),Int(56,64))), Def(Tid(614, "%00000266"), - Attrs([Attr("address","0x6C8"), Attr("insn","adrp x1, #69632")]), - Var("R1",Imm(64)), Int(69632,64)), Def(Tid(620, "%0000026c"), - Attrs([Attr("address","0x6CC"), Attr("insn","add x1, x1, #0x38")]), - Var("R1",Imm(64)), PLUS(Var("R1",Imm(64)),Int(56,64))), -Def(Tid(627, "%00000273"), Attrs([Attr("address","0x6D0"), -Attr("insn","sub x1, x1, x0")]), Var("R1",Imm(64)), -PLUS(PLUS(Var("R1",Imm(64)),NOT(Var("R0",Imm(64)))),Int(1,64))), -Def(Tid(633, "%00000279"), Attrs([Attr("address","0x6D4"), -Attr("insn","lsr x2, x1, #63")]), Var("R2",Imm(64)), -Concat(Int(0,63),Extract(63,63,Var("R1",Imm(64))))), -Def(Tid(640, "%00000280"), Attrs([Attr("address","0x6D8"), -Attr("insn","add x1, x2, x1, asr #3")]), Var("R1",Imm(64)), -PLUS(Var("R2",Imm(64)),ARSHIFT(Var("R1",Imm(64)),Int(3,3)))), -Def(Tid(646, "%00000286"), Attrs([Attr("address","0x6DC"), -Attr("insn","asr x1, x1, #1")]), Var("R1",Imm(64)), -SIGNED(64,Extract(63,1,Var("R1",Imm(64)))))]), -Jmps([Goto(Tid(652, "%0000028c"), Attrs([Attr("address","0x6E0"), -Attr("insn","cbz x1, #0x18")]), EQ(Var("R1",Imm(64)),Int(0,64)), -Direct(Tid(650, "%0000028a"))), Goto(Tid(1_437, "%0000059d"), Attrs([]), - Int(1,1), Direct(Tid(932, "%000003a4")))])), Blk(Tid(932, "%000003a4"), - Attrs([Attr("address","0x6E4")]), Phis([]), Defs([Def(Tid(935, "%000003a7"), - Attrs([Attr("address","0x6E4"), Attr("insn","adrp x2, #65536")]), - Var("R2",Imm(64)), Int(65536,64)), Def(Tid(942, "%000003ae"), - Attrs([Attr("address","0x6E8"), Attr("insn","ldr x2, [x2, #0xfe0]")]), - Var("R2",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R2",Imm(64)),Int(4064,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(947, "%000003b3"), Attrs([Attr("address","0x6EC"), -Attr("insn","cbz x2, #0xc")]), EQ(Var("R2",Imm(64)),Int(0,64)), -Direct(Tid(650, "%0000028a"))), Goto(Tid(1_438, "%0000059e"), Attrs([]), - Int(1,1), Direct(Tid(951, "%000003b7")))])), Blk(Tid(650, "%0000028a"), - Attrs([Attr("address","0x6F8")]), Phis([]), Defs([]), -Jmps([Call(Tid(658, "%00000292"), Attrs([Attr("address","0x6F8"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))])), -Blk(Tid(951, "%000003b7"), Attrs([Attr("address","0x6F0")]), Phis([]), -Defs([Def(Tid(955, "%000003bb"), Attrs([Attr("address","0x6F0"), -Attr("insn","mov x16, x2")]), Var("R16",Imm(64)), Var("R2",Imm(64)))]), -Jmps([Call(Tid(960, "%000003c0"), Attrs([Attr("address","0x6F4"), -Attr("insn","br x16")]), Int(1,1), -(Indirect(Var("R16",Imm(64))),))]))]))]))) \ No newline at end of file diff --git a/src/test/memory_regions/stack_pointer/clang_pic/stack_pointer.bir b/src/test/memory_regions/stack_pointer/clang_pic/stack_pointer.bir deleted file mode 100644 index fd25d4026..000000000 --- a/src/test/memory_regions/stack_pointer/clang_pic/stack_pointer.bir +++ /dev/null @@ -1,240 +0,0 @@ -0000059f: program -00000589: sub __cxa_finalize(__cxa_finalize_result) -000005a0: __cxa_finalize_result :: out u32 = low:32[R0] - -000003a0: -00000498: R16 := 0x11000 -0000049f: R17 := mem[R16 + 8, el]:u64 -000004a5: R16 := R16 + 8 -000004aa: call R17 with noreturn - -0000058a: sub __do_global_dtors_aux(__do_global_dtors_aux_result) -000005a1: __do_global_dtors_aux_result :: out u32 = low:32[R0] - -00000296: -0000029a: #3 := R31 - 0x20 -000002a0: mem := mem with [#3, el]:u64 <- R29 -000002a6: mem := mem with [#3 + 8, el]:u64 <- R30 -000002aa: R31 := #3 -000002b0: R29 := R31 -000002b8: mem := mem with [R31 + 0x10, el]:u64 <- R19 -000002bd: R19 := 0x11000 -000002c4: R0 := pad:64[mem[R19 + 0x38]] -000002cb: when 31:0[R0] <> 0 goto %000002c9 -0000058b: goto %00000369 - -00000369: -0000036c: R0 := 0x10000 -00000373: R0 := mem[R0 + 0xFB8, el]:u64 -00000379: when R0 = 0 goto %00000377 -0000058c: goto %00000390 - -00000390: -00000393: R0 := 0x11000 -0000039a: R0 := mem[R0 + 0x28, el]:u64 -0000039f: R30 := 0x730 -000003a2: call @__cxa_finalize with return %00000377 - -00000377: -0000037f: R30 := 0x734 -00000381: call @deregister_tm_clones with return %00000383 - -00000383: -00000386: R0 := 1 -0000038e: mem := mem with [R19 + 0x38] <- 7:0[R0] -0000058d: goto %000002c9 - -000002c9: -000002d3: R19 := mem[R31 + 0x10, el]:u64 -000002da: R29 := mem[R31, el]:u64 -000002df: R30 := mem[R31 + 8, el]:u64 -000002e3: R31 := R31 + 0x20 -000002e8: call R30 with noreturn - -0000058e: sub __libc_start_main(__libc_start_main_main, __libc_start_main_arg2, __libc_start_main_arg3, __libc_start_main_auxv, __libc_start_main_result) -000005a2: __libc_start_main_main :: in u64 = R0 -000005a3: __libc_start_main_arg2 :: in u32 = low:32[R1] -000005a4: __libc_start_main_arg3 :: in out u64 = R2 -000005a5: __libc_start_main_auxv :: in out u64 = R3 -000005a6: __libc_start_main_result :: out u32 = low:32[R0] - -000001ef: -00000482: R16 := 0x11000 -00000489: R17 := mem[R16, el]:u64 -0000048f: R16 := R16 -00000494: call R17 with noreturn - -0000058f: sub _fini(_fini_result) -000005a7: _fini_result :: out u32 = low:32[R0] - -0000001f: -00000025: #0 := R31 - 0x10 -0000002b: mem := mem with [#0, el]:u64 <- R29 -00000031: mem := mem with [#0 + 8, el]:u64 <- R30 -00000035: R31 := #0 -0000003b: R29 := R31 -00000042: R29 := mem[R31, el]:u64 -00000047: R30 := mem[R31 + 8, el]:u64 -0000004b: R31 := R31 + 0x10 -00000050: call R30 with noreturn - -00000590: sub _init(_init_result) -000005a8: _init_result :: out u32 = low:32[R0] - -000004f2: -000004f8: #5 := R31 - 0x10 -000004fe: mem := mem with [#5, el]:u64 <- R29 -00000504: mem := mem with [#5 + 8, el]:u64 <- R30 -00000508: R31 := #5 -0000050e: R29 := R31 -00000513: R30 := 0x5C0 -00000515: call @call_weak_fn with return %00000517 - -00000517: -0000051c: R29 := mem[R31, el]:u64 -00000521: R30 := mem[R31 + 8, el]:u64 -00000525: R31 := R31 + 0x10 -0000052a: call R30 with noreturn - -00000591: sub _start(_start_result) -000005a9: _start_result :: out u32 = low:32[R0] - -000001b0: -000001b5: R29 := 0 -000001ba: R30 := 0 -000001c0: R5 := R0 -000001c7: R1 := mem[R31, el]:u64 -000001cd: R2 := R31 + 8 -000001d3: R6 := R31 -000001d8: R0 := 0x10000 -000001df: R0 := mem[R0 + 0xFD8, el]:u64 -000001e4: R3 := 0 -000001e9: R4 := 0 -000001ee: R30 := 0x670 -000001f1: call @__libc_start_main with return %000001f3 - -000001f3: -000001f6: R30 := 0x674 -000001f9: call @abort with return %00000592 - -00000592: -00000593: call @call_weak_fn with noreturn - -00000594: sub abort() - - -000001f7: -000004c4: R16 := 0x11000 -000004cb: R17 := mem[R16 + 0x18, el]:u64 -000004d1: R16 := R16 + 0x18 -000004d6: call R17 with noreturn - -00000595: sub call_weak_fn(call_weak_fn_result) -000005aa: call_weak_fn_result :: out u32 = low:32[R0] - -000001fb: -000001fe: R0 := 0x10000 -00000205: R0 := mem[R0 + 0xFC8, el]:u64 -0000020b: when R0 = 0 goto %00000209 -00000596: goto %000003e0 - -00000209: -00000211: call R30 with noreturn - -000003e0: -000003e3: goto @__gmon_start__ - -000003e1: -000004ae: R16 := 0x11000 -000004b5: R17 := mem[R16 + 0x10, el]:u64 -000004bb: R16 := R16 + 0x10 -000004c0: call R17 with noreturn - -00000597: sub deregister_tm_clones(deregister_tm_clones_result) -000005ab: deregister_tm_clones_result :: out u32 = low:32[R0] - -00000217: -0000021a: R0 := 0x11000 -00000220: R0 := R0 + 0x38 -00000225: R1 := 0x11000 -0000022b: R1 := R1 + 0x38 -00000231: #1 := ~R0 -00000236: #2 := R1 + ~R0 -0000023c: VF := extend:65[#2 + 1] <> extend:65[R1] + extend:65[#1] + 1 -00000242: CF := pad:65[#2 + 1] <> pad:65[R1] + pad:65[#1] + 1 -00000246: ZF := #2 + 1 = 0 -0000024a: NF := 63:63[#2 + 1] -00000250: when ZF goto %0000024e -00000598: goto %000003c2 - -000003c2: -000003c5: R1 := 0x10000 -000003cc: R1 := mem[R1 + 0xFB0, el]:u64 -000003d1: when R1 = 0 goto %0000024e -00000599: goto %000003d5 - -0000024e: -00000256: call R30 with noreturn - -000003d5: -000003d9: R16 := R1 -000003de: call R16 with noreturn - -0000059a: sub frame_dummy(frame_dummy_result) -000005ac: frame_dummy_result :: out u32 = low:32[R0] - -000002ee: -000002f0: call @register_tm_clones with noreturn - -0000059b: sub main(main_argc, main_argv, main_result) -000005ad: main_argc :: in u32 = low:32[R0] -000005ae: main_argv :: in out u64 = R1 -000005af: main_result :: out u32 = low:32[R0] - -000002f2: -000002f6: R31 := R31 - 0x20 -000002fe: mem := mem with [R31 + 0x1C, el]:u32 <- 31:0[R0] -00000306: mem := mem with [R31 + 0x10, el]:u64 <- R1 -0000030b: R9 := 0x10000 -00000312: R9 := mem[R9 + 0xFC0, el]:u64 -00000319: R8 := pad:64[mem[R9, el]:u32] -0000031f: R10 := R31 + 0xC -00000327: mem := mem with [R31 + 0xC, el]:u32 <- 31:0[R8] -0000032c: R8 := 0x10000 -00000333: R8 := mem[R8 + 0xFD0, el]:u64 -0000033b: mem := mem with [R8, el]:u64 <- R10 -00000342: R8 := mem[R8, el]:u64 -00000349: R8 := pad:64[mem[R8, el]:u32] -0000034f: R8 := pad:64[31:0[R8] + 1] -00000357: mem := mem with [R9, el]:u32 <- 31:0[R8] -0000035c: R0 := 0 -00000362: R31 := R31 + 0x20 -00000367: call R30 with noreturn - -0000059c: sub register_tm_clones(register_tm_clones_result) -000005b0: register_tm_clones_result :: out u32 = low:32[R0] - -00000258: -0000025b: R0 := 0x11000 -00000261: R0 := R0 + 0x38 -00000266: R1 := 0x11000 -0000026c: R1 := R1 + 0x38 -00000273: R1 := R1 + ~R0 + 1 -00000279: R2 := 0.63:63[R1] -00000280: R1 := R2 + (R1 ~>> 3) -00000286: R1 := extend:64[63:1[R1]] -0000028c: when R1 = 0 goto %0000028a -0000059d: goto %000003a4 - -000003a4: -000003a7: R2 := 0x10000 -000003ae: R2 := mem[R2 + 0xFE0, el]:u64 -000003b3: when R2 = 0 goto %0000028a -0000059e: goto %000003b7 - -0000028a: -00000292: call R30 with noreturn - -000003b7: -000003bb: R16 := R2 -000003c0: call R16 with noreturn diff --git a/src/test/memory_regions/stack_pointer/clang_pic/stack_pointer.md5sum b/src/test/memory_regions/stack_pointer/clang_pic/stack_pointer.md5sum new file mode 100644 index 000000000..68b4bd369 --- /dev/null +++ b/src/test/memory_regions/stack_pointer/clang_pic/stack_pointer.md5sum @@ -0,0 +1,4 @@ +4e6ea7de84fffe44fef2d7466aa627a8 memory_regions/stack_pointer/clang_pic/a.out +66974a919e5da9ff72050a2abee95e5b memory_regions/stack_pointer/clang_pic/stack_pointer.relf +8a9fccb389f793c1bed7826017de6952 memory_regions/stack_pointer/clang_pic/stack_pointer.adt +4361521fb8342c2dbc4953ae017383b5 memory_regions/stack_pointer/clang_pic/stack_pointer.bir diff --git a/src/test/memory_regions/stack_pointer/clang_pic/stack_pointer.relf b/src/test/memory_regions/stack_pointer/clang_pic/stack_pointer.relf deleted file mode 100644 index c764ce9a5..000000000 --- a/src/test/memory_regions/stack_pointer/clang_pic/stack_pointer.relf +++ /dev/null @@ -1,127 +0,0 @@ - -Relocation section '.rela.dyn' at offset 0x460 contains 10 entries: - Offset Info Type Symbol's Value Symbol's Name + Addend -0000000000010db8 0000000000000403 R_AARCH64_RELATIVE 750 -0000000000010dc0 0000000000000403 R_AARCH64_RELATIVE 700 -0000000000010fc0 0000000000000403 R_AARCH64_RELATIVE 11030 -0000000000010fd0 0000000000000403 R_AARCH64_RELATIVE 11040 -0000000000010fd8 0000000000000403 R_AARCH64_RELATIVE 754 -0000000000011028 0000000000000403 R_AARCH64_RELATIVE 11028 -0000000000010fb0 0000000400000401 R_AARCH64_GLOB_DAT 0000000000000000 _ITM_deregisterTMCloneTable + 0 -0000000000010fb8 0000000500000401 R_AARCH64_GLOB_DAT 0000000000000000 __cxa_finalize@GLIBC_2.17 + 0 -0000000000010fc8 0000000600000401 R_AARCH64_GLOB_DAT 0000000000000000 __gmon_start__ + 0 -0000000000010fe0 0000000800000401 R_AARCH64_GLOB_DAT 0000000000000000 _ITM_registerTMCloneTable + 0 - -Relocation section '.rela.plt' at offset 0x550 contains 4 entries: - Offset Info Type Symbol's Value Symbol's Name + Addend -0000000000011000 0000000300000402 R_AARCH64_JUMP_SLOT 0000000000000000 __libc_start_main@GLIBC_2.34 + 0 -0000000000011008 0000000500000402 R_AARCH64_JUMP_SLOT 0000000000000000 __cxa_finalize@GLIBC_2.17 + 0 -0000000000011010 0000000600000402 R_AARCH64_JUMP_SLOT 0000000000000000 __gmon_start__ + 0 -0000000000011018 0000000700000402 R_AARCH64_JUMP_SLOT 0000000000000000 abort@GLIBC_2.17 + 0 - -Symbol table '.dynsym' contains 9 entries: - Num: Value Size Type Bind Vis Ndx Name - 0: 0000000000000000 0 NOTYPE LOCAL DEFAULT UND - 1: 00000000000005b0 0 SECTION LOCAL DEFAULT 11 .init - 2: 0000000000011020 0 SECTION LOCAL DEFAULT 23 .data - 3: 0000000000000000 0 FUNC GLOBAL DEFAULT UND __libc_start_main@GLIBC_2.34 (2) - 4: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_deregisterTMCloneTable - 5: 0000000000000000 0 FUNC WEAK DEFAULT UND __cxa_finalize@GLIBC_2.17 (3) - 6: 0000000000000000 0 NOTYPE WEAK DEFAULT UND __gmon_start__ - 7: 0000000000000000 0 FUNC GLOBAL DEFAULT UND abort@GLIBC_2.17 (3) - 8: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_registerTMCloneTable - -Symbol table '.symtab' contains 92 entries: - Num: Value Size Type Bind Vis Ndx Name - 0: 0000000000000000 0 NOTYPE LOCAL DEFAULT UND - 1: 0000000000000238 0 SECTION LOCAL DEFAULT 1 .interp - 2: 0000000000000254 0 SECTION LOCAL DEFAULT 2 .note.gnu.build-id - 3: 0000000000000278 0 SECTION LOCAL DEFAULT 3 .note.ABI-tag - 4: 0000000000000298 0 SECTION LOCAL DEFAULT 4 .gnu.hash - 5: 00000000000002b8 0 SECTION LOCAL DEFAULT 5 .dynsym - 6: 0000000000000390 0 SECTION LOCAL DEFAULT 6 .dynstr - 7: 000000000000041e 0 SECTION LOCAL DEFAULT 7 .gnu.version - 8: 0000000000000430 0 SECTION LOCAL DEFAULT 8 .gnu.version_r - 9: 0000000000000460 0 SECTION LOCAL DEFAULT 9 .rela.dyn - 10: 0000000000000550 0 SECTION LOCAL DEFAULT 10 .rela.plt - 11: 00000000000005b0 0 SECTION LOCAL DEFAULT 11 .init - 12: 00000000000005d0 0 SECTION LOCAL DEFAULT 12 .plt - 13: 0000000000000640 0 SECTION LOCAL DEFAULT 13 .text - 14: 000000000000079c 0 SECTION LOCAL DEFAULT 14 .fini - 15: 00000000000007b0 0 SECTION LOCAL DEFAULT 15 .rodata - 16: 00000000000007b4 0 SECTION LOCAL DEFAULT 16 .eh_frame_hdr - 17: 00000000000007f0 0 SECTION LOCAL DEFAULT 17 .eh_frame - 18: 0000000000010db8 0 SECTION LOCAL DEFAULT 18 .init_array - 19: 0000000000010dc0 0 SECTION LOCAL DEFAULT 19 .fini_array - 20: 0000000000010dc8 0 SECTION LOCAL DEFAULT 20 .dynamic - 21: 0000000000010fa8 0 SECTION LOCAL DEFAULT 21 .got - 22: 0000000000010fe8 0 SECTION LOCAL DEFAULT 22 .got.plt - 23: 0000000000011020 0 SECTION LOCAL DEFAULT 23 .data - 24: 0000000000011038 0 SECTION LOCAL DEFAULT 24 .bss - 25: 0000000000000000 0 SECTION LOCAL DEFAULT 25 .comment - 26: 0000000000000000 0 FILE LOCAL DEFAULT ABS Scrt1.o - 27: 0000000000000278 0 NOTYPE LOCAL DEFAULT 3 $d - 28: 0000000000000278 32 OBJECT LOCAL DEFAULT 3 __abi_tag - 29: 0000000000000640 0 NOTYPE LOCAL DEFAULT 13 $x - 30: 0000000000000804 0 NOTYPE LOCAL DEFAULT 17 $d - 31: 00000000000007b0 0 NOTYPE LOCAL DEFAULT 15 $d - 32: 0000000000000000 0 FILE LOCAL DEFAULT ABS crti.o - 33: 0000000000000674 0 NOTYPE LOCAL DEFAULT 13 $x - 34: 0000000000000674 20 FUNC LOCAL DEFAULT 13 call_weak_fn - 35: 00000000000005b0 0 NOTYPE LOCAL DEFAULT 11 $x - 36: 000000000000079c 0 NOTYPE LOCAL DEFAULT 14 $x - 37: 0000000000000000 0 FILE LOCAL DEFAULT ABS crtn.o - 38: 00000000000005c0 0 NOTYPE LOCAL DEFAULT 11 $x - 39: 00000000000007a8 0 NOTYPE LOCAL DEFAULT 14 $x - 40: 0000000000000000 0 FILE LOCAL DEFAULT ABS crtstuff.c - 41: 0000000000000690 0 NOTYPE LOCAL DEFAULT 13 $x - 42: 0000000000000690 0 FUNC LOCAL DEFAULT 13 deregister_tm_clones - 43: 00000000000006c0 0 FUNC LOCAL DEFAULT 13 register_tm_clones - 44: 0000000000011028 0 NOTYPE LOCAL DEFAULT 23 $d - 45: 0000000000000700 0 FUNC LOCAL DEFAULT 13 __do_global_dtors_aux - 46: 0000000000011038 1 OBJECT LOCAL DEFAULT 24 completed.0 - 47: 0000000000010dc0 0 NOTYPE LOCAL DEFAULT 19 $d - 48: 0000000000010dc0 0 OBJECT LOCAL DEFAULT 19 __do_global_dtors_aux_fini_array_entry - 49: 0000000000000750 0 FUNC LOCAL DEFAULT 13 frame_dummy - 50: 0000000000010db8 0 NOTYPE LOCAL DEFAULT 18 $d - 51: 0000000000010db8 0 OBJECT LOCAL DEFAULT 18 __frame_dummy_init_array_entry - 52: 0000000000000818 0 NOTYPE LOCAL DEFAULT 17 $d - 53: 0000000000011038 0 NOTYPE LOCAL DEFAULT 24 $d - 54: 0000000000000000 0 FILE LOCAL DEFAULT ABS stack_pointer.c - 55: 0000000000000754 0 NOTYPE LOCAL DEFAULT 13 $x.0 - 56: 0000000000011030 0 NOTYPE LOCAL DEFAULT 23 $d.1 - 57: 0000000000011040 0 NOTYPE LOCAL DEFAULT 24 $d.2 - 58: 000000000000002a 0 NOTYPE LOCAL DEFAULT 25 $d.3 - 59: 0000000000000878 0 NOTYPE LOCAL DEFAULT 17 $d.4 - 60: 0000000000000000 0 FILE LOCAL DEFAULT ABS crtstuff.c - 61: 00000000000008a4 0 NOTYPE LOCAL DEFAULT 17 $d - 62: 00000000000008a4 0 OBJECT LOCAL DEFAULT 17 __FRAME_END__ - 63: 0000000000000000 0 FILE LOCAL DEFAULT ABS - 64: 0000000000010dc8 0 OBJECT LOCAL DEFAULT ABS _DYNAMIC - 65: 00000000000007b4 0 NOTYPE LOCAL DEFAULT 16 __GNU_EH_FRAME_HDR - 66: 0000000000010fa8 0 OBJECT LOCAL DEFAULT ABS _GLOBAL_OFFSET_TABLE_ - 67: 00000000000005d0 0 NOTYPE LOCAL DEFAULT 12 $x - 68: 0000000000000000 0 FUNC GLOBAL DEFAULT UND __libc_start_main@GLIBC_2.34 - 69: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_deregisterTMCloneTable - 70: 0000000000011020 0 NOTYPE WEAK DEFAULT 23 data_start - 71: 0000000000011034 0 NOTYPE GLOBAL DEFAULT 24 __bss_start__ - 72: 0000000000000000 0 FUNC WEAK DEFAULT UND __cxa_finalize@GLIBC_2.17 - 73: 0000000000011048 0 NOTYPE GLOBAL DEFAULT 24 _bss_end__ - 74: 0000000000011034 0 NOTYPE GLOBAL DEFAULT 23 _edata - 75: 0000000000011030 4 OBJECT GLOBAL DEFAULT 23 x - 76: 000000000000079c 0 FUNC GLOBAL HIDDEN 14 _fini - 77: 0000000000011048 0 NOTYPE GLOBAL DEFAULT 24 __bss_end__ - 78: 0000000000011020 0 NOTYPE GLOBAL DEFAULT 23 __data_start - 79: 0000000000000000 0 NOTYPE WEAK DEFAULT UND __gmon_start__ - 80: 0000000000011028 0 OBJECT GLOBAL HIDDEN 23 __dso_handle - 81: 0000000000000000 0 FUNC GLOBAL DEFAULT UND abort@GLIBC_2.17 - 82: 00000000000007b0 4 OBJECT GLOBAL DEFAULT 15 _IO_stdin_used - 83: 0000000000011048 0 NOTYPE GLOBAL DEFAULT 24 _end - 84: 0000000000000640 52 FUNC GLOBAL DEFAULT 13 _start - 85: 0000000000011048 0 NOTYPE GLOBAL DEFAULT 24 __end__ - 86: 0000000000011040 8 OBJECT GLOBAL DEFAULT 24 y - 87: 0000000000011034 0 NOTYPE GLOBAL DEFAULT 24 __bss_start - 88: 0000000000000754 72 FUNC GLOBAL DEFAULT 13 main - 89: 0000000000011038 0 OBJECT GLOBAL HIDDEN 23 __TMC_END__ - 90: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_registerTMCloneTable - 91: 00000000000005b0 0 FUNC GLOBAL HIDDEN 11 _init diff --git a/src/test/memory_regions/stack_pointer/config.mk b/src/test/memory_regions/stack_pointer/config.mk index 229175044..3f0d64404 100644 --- a/src/test/memory_regions/stack_pointer/config.mk +++ b/src/test/memory_regions/stack_pointer/config.mk @@ -1 +1,2 @@ -ENABLED_COMPILERS = clang clang_pic \ No newline at end of file +ENABLED_COMPILERS = clang clang_pic +LIFT_ARTEFACTS := $(COMMON_ARTEFACTS) $(BAP_ARTEFACTS) diff --git a/src/test/procedure_summaries/intervals1/gcc_O2/intervals1.adt b/src/test/procedure_summaries/intervals1/gcc_O2/intervals1.adt deleted file mode 100644 index 99c804482..000000000 --- a/src/test/procedure_summaries/intervals1/gcc_O2/intervals1.adt +++ /dev/null @@ -1,561 +0,0 @@ -Project(Attrs([Attr("filename","\"a.out\""), -Attr("image-specification","(declare abi (name str))\n(declare arch (name str))\n(declare base-address (addr int))\n(declare bias (off int))\n(declare bits (size int))\n(declare code-region (addr int) (size int) (off int))\n(declare code-start (addr int))\n(declare entry-point (addr int))\n(declare external-reference (addr int) (name str))\n(declare format (name str))\n(declare is-executable (flag bool))\n(declare is-little-endian (flag bool))\n(declare llvm:base-address (addr int))\n(declare llvm:code-entry (name str) (off int) (size int))\n(declare llvm:coff-import-library (name str))\n(declare llvm:coff-virtual-section-header (name str) (addr int) (size int))\n(declare llvm:elf-program-header (name str) (off int) (size int))\n(declare llvm:elf-program-header-flags (name str) (ld bool) (r bool) \n (w bool) (x bool))\n(declare llvm:elf-virtual-program-header (name str) (addr int) (size int))\n(declare llvm:entry-point (addr int))\n(declare llvm:macho-symbol (name str) (value int))\n(declare llvm:name-reference (at int) (name str))\n(declare llvm:relocation (at int) (addr int))\n(declare llvm:section-entry (name str) (addr int) (size int) (off int))\n(declare llvm:section-flags (name str) (r bool) (w bool) (x bool))\n(declare llvm:segment-command (name str) (off int) (size int))\n(declare llvm:segment-command-flags (name str) (r bool) (w bool) (x bool))\n(declare llvm:symbol-entry (name str) (addr int) (size int) (off int)\n (value int))\n(declare llvm:virtual-segment-command (name str) (addr int) (size int))\n(declare mapped (addr int) (size int) (off int))\n(declare named-region (addr int) (size int) (name str))\n(declare named-symbol (addr int) (name str))\n(declare require (name str))\n(declare section (addr int) (size int))\n(declare segment (addr int) (size int) (r bool) (w bool) (x bool))\n(declare subarch (name str))\n(declare symbol-chunk (addr int) (size int) (root int))\n(declare symbol-value (addr int) (value int))\n(declare system (name str))\n(declare vendor (name str))\n\n(abi unknown)\n(arch aarch64)\n(base-address 0)\n(bias 0)\n(bits 64)\n(code-region 1936 20 1936)\n(code-region 1536 400 1536)\n(code-region 1440 96 1440)\n(code-region 1408 24 1408)\n(code-start 1652)\n(code-start 1600)\n(code-start 1536)\n(code-start 1920)\n(entry-point 1600)\n(external-reference 131008 _ITM_deregisterTMCloneTable)\n(external-reference 131016 __cxa_finalize)\n(external-reference 131024 __gmon_start__)\n(external-reference 131040 _ITM_registerTMCloneTable)\n(external-reference 131072 __libc_start_main)\n(external-reference 131080 __cxa_finalize)\n(external-reference 131088 __gmon_start__)\n(external-reference 131096 abort)\n(format elf)\n(is-executable true)\n(is-little-endian true)\n(llvm:base-address 0)\n(llvm:code-entry abort 0 0)\n(llvm:code-entry __cxa_finalize 0 0)\n(llvm:code-entry __libc_start_main 0 0)\n(llvm:code-entry _init 1408 0)\n(llvm:code-entry bound 1920 16)\n(llvm:code-entry main 1536 32)\n(llvm:code-entry _start 1600 52)\n(llvm:code-entry abort@GLIBC_2.17 0 0)\n(llvm:code-entry _fini 1936 0)\n(llvm:code-entry __cxa_finalize@GLIBC_2.17 0 0)\n(llvm:code-entry __libc_start_main@GLIBC_2.34 0 0)\n(llvm:code-entry frame_dummy 1888 0)\n(llvm:code-entry __do_global_dtors_aux 1804 0)\n(llvm:code-entry register_tm_clones 1744 0)\n(llvm:code-entry deregister_tm_clones 1696 0)\n(llvm:code-entry call_weak_fn 1652 20)\n(llvm:code-entry .fini 1936 20)\n(llvm:code-entry .text 1536 400)\n(llvm:code-entry .plt 1440 96)\n(llvm:code-entry .init 1408 24)\n(llvm:elf-program-header 08 64968 568)\n(llvm:elf-program-header 07 0 0)\n(llvm:elf-program-header 06 1960 68)\n(llvm:elf-program-header 05 596 68)\n(llvm:elf-program-header 04 64984 480)\n(llvm:elf-program-header 03 64968 616)\n(llvm:elf-program-header 02 0 2224)\n(llvm:elf-program-header 01 568 27)\n(llvm:elf-program-header 00 64 504)\n(llvm:elf-program-header-flags 08 false true false false)\n(llvm:elf-program-header-flags 07 false true true false)\n(llvm:elf-program-header-flags 06 false true false false)\n(llvm:elf-program-header-flags 05 false true false false)\n(llvm:elf-program-header-flags 04 false true true false)\n(llvm:elf-program-header-flags 03 true true true false)\n(llvm:elf-program-header-flags 02 true true false true)\n(llvm:elf-program-header-flags 01 false true false false)\n(llvm:elf-program-header-flags 00 false true false false)\n(llvm:elf-virtual-program-header 08 130504 568)\n(llvm:elf-virtual-program-header 07 0 0)\n(llvm:elf-virtual-program-header 06 1960 68)\n(llvm:elf-virtual-program-header 05 596 68)\n(llvm:elf-virtual-program-header 04 130520 480)\n(llvm:elf-virtual-program-header 03 130504 632)\n(llvm:elf-virtual-program-header 02 0 2224)\n(llvm:elf-virtual-program-header 01 568 27)\n(llvm:elf-virtual-program-header 00 64 504)\n(llvm:entry-point 1600)\n(llvm:name-reference 131096 abort)\n(llvm:name-reference 131088 __gmon_start__)\n(llvm:name-reference 131080 __cxa_finalize)\n(llvm:name-reference 131072 __libc_start_main)\n(llvm:name-reference 131040 _ITM_registerTMCloneTable)\n(llvm:name-reference 131024 __gmon_start__)\n(llvm:name-reference 131016 __cxa_finalize)\n(llvm:name-reference 131008 _ITM_deregisterTMCloneTable)\n(llvm:section-entry .shstrtab 0 259 68411)\n(llvm:section-entry .strtab 0 571 67840)\n(llvm:section-entry .symtab 0 2232 65608)\n(llvm:section-entry .comment 0 18 65584)\n(llvm:section-entry .bss 131120 16 65584)\n(llvm:section-entry .data 131104 16 65568)\n(llvm:section-entry .got.plt 131048 56 65512)\n(llvm:section-entry .got 131000 48 65464)\n(llvm:section-entry .dynamic 130520 480 64984)\n(llvm:section-entry .fini_array 130512 8 64976)\n(llvm:section-entry .init_array 130504 8 64968)\n(llvm:section-entry .eh_frame 2032 192 2032)\n(llvm:section-entry .eh_frame_hdr 1960 68 1960)\n(llvm:section-entry .rodata 1956 4 1956)\n(llvm:section-entry .fini 1936 20 1936)\n(llvm:section-entry .text 1536 400 1536)\n(llvm:section-entry .plt 1440 96 1440)\n(llvm:section-entry .init 1408 24 1408)\n(llvm:section-entry .rela.plt 1312 96 1312)\n(llvm:section-entry .rela.dyn 1120 192 1120)\n(llvm:section-entry .gnu.version_r 1072 48 1072)\n(llvm:section-entry .gnu.version 1054 18 1054)\n(llvm:section-entry .dynstr 912 141 912)\n(llvm:section-entry .dynsym 696 216 696)\n(llvm:section-entry .gnu.hash 664 28 664)\n(llvm:section-entry .note.ABI-tag 632 32 632)\n(llvm:section-entry .note.gnu.build-id 596 36 596)\n(llvm:section-entry .interp 568 27 568)\n(llvm:section-flags .shstrtab true false false)\n(llvm:section-flags .strtab true false false)\n(llvm:section-flags .symtab true false false)\n(llvm:section-flags .comment true false false)\n(llvm:section-flags .bss true true false)\n(llvm:section-flags .data true true false)\n(llvm:section-flags .got.plt true true false)\n(llvm:section-flags .got true true false)\n(llvm:section-flags .dynamic true true false)\n(llvm:section-flags .fini_array true true false)\n(llvm:section-flags .init_array true true false)\n(llvm:section-flags .eh_frame true false false)\n(llvm:section-flags .eh_frame_hdr true false false)\n(llvm:section-flags .rodata true false false)\n(llvm:section-flags .fini true false true)\n(llvm:section-flags .text true false true)\n(llvm:section-flags .plt true false true)\n(llvm:section-flags .init true false true)\n(llvm:section-flags .rela.plt true false false)\n(llvm:section-flags .rela.dyn true false false)\n(llvm:section-flags .gnu.version_r true false false)\n(llvm:section-flags .gnu.version true false false)\n(llvm:section-flags .dynstr true false false)\n(llvm:section-flags .dynsym true false false)\n(llvm:section-flags .gnu.hash true false false)\n(llvm:section-flags .note.ABI-tag true false false)\n(llvm:section-flags .note.gnu.build-id true false false)\n(llvm:section-flags .interp true false false)\n(llvm:symbol-entry abort 0 0 0 0)\n(llvm:symbol-entry __cxa_finalize 0 0 0 0)\n(llvm:symbol-entry __libc_start_main 0 0 0 0)\n(llvm:symbol-entry _init 1408 0 1408 1408)\n(llvm:symbol-entry bound 1920 16 1920 1920)\n(llvm:symbol-entry main 1536 32 1536 1536)\n(llvm:symbol-entry _start 1600 52 1600 1600)\n(llvm:symbol-entry abort@GLIBC_2.17 0 0 0 0)\n(llvm:symbol-entry _fini 1936 0 1936 1936)\n(llvm:symbol-entry __cxa_finalize@GLIBC_2.17 0 0 0 0)\n(llvm:symbol-entry __libc_start_main@GLIBC_2.34 0 0 0 0)\n(llvm:symbol-entry frame_dummy 1888 0 1888 1888)\n(llvm:symbol-entry __do_global_dtors_aux 1804 0 1804 1804)\n(llvm:symbol-entry register_tm_clones 1744 0 1744 1744)\n(llvm:symbol-entry deregister_tm_clones 1696 0 1696 1696)\n(llvm:symbol-entry call_weak_fn 1652 20 1652 1652)\n(mapped 0 2224 0)\n(mapped 130504 616 64968)\n(named-region 0 2224 02)\n(named-region 130504 632 03)\n(named-region 568 27 .interp)\n(named-region 596 36 .note.gnu.build-id)\n(named-region 632 32 .note.ABI-tag)\n(named-region 664 28 .gnu.hash)\n(named-region 696 216 .dynsym)\n(named-region 912 141 .dynstr)\n(named-region 1054 18 .gnu.version)\n(named-region 1072 48 .gnu.version_r)\n(named-region 1120 192 .rela.dyn)\n(named-region 1312 96 .rela.plt)\n(named-region 1408 24 .init)\n(named-region 1440 96 .plt)\n(named-region 1536 400 .text)\n(named-region 1936 20 .fini)\n(named-region 1956 4 .rodata)\n(named-region 1960 68 .eh_frame_hdr)\n(named-region 2032 192 .eh_frame)\n(named-region 130504 8 .init_array)\n(named-region 130512 8 .fini_array)\n(named-region 130520 480 .dynamic)\n(named-region 131000 48 .got)\n(named-region 131048 56 .got.plt)\n(named-region 131104 16 .data)\n(named-region 131120 16 .bss)\n(named-region 0 18 .comment)\n(named-region 0 2232 .symtab)\n(named-region 0 571 .strtab)\n(named-region 0 259 .shstrtab)\n(named-symbol 1652 call_weak_fn)\n(named-symbol 1696 deregister_tm_clones)\n(named-symbol 1744 register_tm_clones)\n(named-symbol 1804 __do_global_dtors_aux)\n(named-symbol 1888 frame_dummy)\n(named-symbol 0 __libc_start_main@GLIBC_2.34)\n(named-symbol 0 __cxa_finalize@GLIBC_2.17)\n(named-symbol 1936 _fini)\n(named-symbol 0 abort@GLIBC_2.17)\n(named-symbol 1600 _start)\n(named-symbol 1536 main)\n(named-symbol 1920 bound)\n(named-symbol 1408 _init)\n(named-symbol 0 __libc_start_main)\n(named-symbol 0 __cxa_finalize)\n(named-symbol 0 abort)\n(require libc.so.6)\n(section 568 27)\n(section 596 36)\n(section 632 32)\n(section 664 28)\n(section 696 216)\n(section 912 141)\n(section 1054 18)\n(section 1072 48)\n(section 1120 192)\n(section 1312 96)\n(section 1408 24)\n(section 1440 96)\n(section 1536 400)\n(section 1936 20)\n(section 1956 4)\n(section 1960 68)\n(section 2032 192)\n(section 130504 8)\n(section 130512 8)\n(section 130520 480)\n(section 131000 48)\n(section 131048 56)\n(section 131104 16)\n(section 131120 16)\n(section 0 18)\n(section 0 2232)\n(section 0 571)\n(section 0 259)\n(segment 0 2224 true false true)\n(segment 130504 632 true true false)\n(subarch v8)\n(symbol-chunk 1652 20 1652)\n(symbol-chunk 1600 52 1600)\n(symbol-chunk 1536 32 1536)\n(symbol-chunk 1920 16 1920)\n(symbol-value 1652 1652)\n(symbol-value 1696 1696)\n(symbol-value 1744 1744)\n(symbol-value 1804 1804)\n(symbol-value 1888 1888)\n(symbol-value 1936 1936)\n(symbol-value 1600 1600)\n(symbol-value 1536 1536)\n(symbol-value 1920 1920)\n(symbol-value 1408 1408)\n(symbol-value 0 0)\n(system \"\")\n(vendor \"\")\n"), -Attr("abi-name","\"aarch64-linux-gnu-elf\"")]), -Sections([Section(".shstrtab", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x40\x06\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x0c\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x38\x00\x09\x00\x40\x00\x1d\x00\x1c\x00\x06\x00\x00\x00\x04\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x04\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xb0\x08\x00\x00\x00\x00\x00\x00\xb0\x08\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x01\x00\x00\x00\x06\x00\x00\x00\xc8\xfd\x00\x00\x00\x00\x00\x00\xc8\xfd\x01\x00\x00\x00\x00\x00\xc8\xfd\x01"), -Section(".strtab", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x40\x06\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x0c\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x38\x00\x09\x00\x40\x00\x1d\x00\x1c\x00\x06\x00\x00\x00\x04\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x04\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xb0\x08\x00\x00\x00\x00\x00\x00\xb0\x08\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x01\x00\x00\x00\x06\x00\x00\x00\xc8\xfd\x00\x00\x00\x00\x00\x00\xc8\xfd\x01\x00\x00\x00\x00\x00\xc8\xfd\x01\x00\x00\x00\x00\x00\x68\x02\x00\x00\x00\x00\x00\x00\x78\x02\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x02\x00\x00\x00\x06\x00\x00\x00\xd8\xfd\x00\x00\x00\x00\x00\x00\xd8\xfd\x01\x00\x00\x00\x00\x00\xd8\xfd\x01\x00\x00\x00\x00\x00\xe0\x01\x00\x00\x00\x00\x00\x00\xe0\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x04\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x50\xe5\x74\x64\x04\x00\x00\x00\xa8\x07\x00\x00\x00\x00\x00\x00\xa8\x07\x00\x00\x00\x00\x00\x00\xa8\x07\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x51\xe5\x74\x64\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x52\xe5\x74\x64\x04\x00\x00\x00\xc8\xfd\x00\x00\x00\x00\x00\x00\xc8\xfd\x01\x00\x00\x00\x00\x00\xc8\xfd\x01\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x2f\x6c\x69"), -Section(".comment", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00"), -Section(".interp", 0x238, "\x2f\x6c\x69\x62\x2f\x6c\x64\x2d\x6c\x69\x6e\x75\x78\x2d\x61\x61\x72\x63\x68\x36\x34\x2e\x73\x6f\x2e\x31\x00"), -Section(".note.gnu.build-id", 0x254, "\x04\x00\x00\x00\x14\x00\x00\x00\x03\x00\x00\x00\x47\x4e\x55\x00\xe9\x05\xf4\x90\x4e\xc8\xda\x81\x78\x28\x67\x77\x5f\xb2\x38\x95\xdf\xf7\x88\xd4"), -Section(".note.ABI-tag", 0x278, "\x04\x00\x00\x00\x10\x00\x00\x00\x01\x00\x00\x00\x47\x4e\x55\x00\x00\x00\x00\x00\x03\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00"), -Section(".gnu.hash", 0x298, "\x01\x00\x00\x00\x01\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".dynsym", 0x2B8, "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x0b\x00\x80\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x17\x00\x20\x00\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x48\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x13\x00\x00\x00\x22\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x22\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x73\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".dynstr", 0x390, "\x00\x5f\x5f\x6c\x69\x62\x63\x5f\x73\x74\x61\x72\x74\x5f\x6d\x61\x69\x6e\x00\x5f\x5f\x63\x78\x61\x5f\x66\x69\x6e\x61\x6c\x69\x7a\x65\x00\x61\x62\x6f\x72\x74\x00\x6c\x69\x62\x63\x2e\x73\x6f\x2e\x36\x00\x47\x4c\x49\x42\x43\x5f\x32\x2e\x31\x37\x00\x47\x4c\x49\x42\x43\x5f\x32\x2e\x33\x34\x00\x5f\x49\x54\x4d\x5f\x64\x65\x72\x65\x67\x69\x73\x74\x65\x72\x54\x4d\x43\x6c\x6f\x6e\x65\x54\x61\x62\x6c\x65\x00\x5f\x5f\x67\x6d\x6f\x6e\x5f\x73\x74\x61\x72\x74\x5f\x5f\x00\x5f\x49\x54\x4d\x5f\x72\x65\x67\x69\x73\x74\x65\x72\x54\x4d\x43\x6c\x6f\x6e\x65\x54\x61\x62\x6c\x65\x00"), -Section(".gnu.version", 0x41E, "\x00\x00\x00\x00\x00\x00\x02\x00\x01\x00\x03\x00\x01\x00\x03\x00\x01\x00"), -Section(".gnu.version_r", 0x430, "\x01\x00\x02\x00\x28\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x97\x91\x96\x06\x00\x00\x03\x00\x32\x00\x00\x00\x10\x00\x00\x00\xb4\x91\x96\x06\x00\x00\x02\x00\x3d\x00\x00\x00\x00\x00\x00\x00"), -Section(".rela.dyn", 0x460, "\xc8\xfd\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x60\x07\x00\x00\x00\x00\x00\x00\xd0\xfd\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x0c\x07\x00\x00\x00\x00\x00\x00\xd8\xff\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x00\x06\x00\x00\x00\x00\x00\x00\x28\x00\x02\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x28\x00\x02\x00\x00\x00\x00\x00\xc0\xff\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xc8\xff\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xd0\xff\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe0\xff\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".rela.plt", 0x520, "\x00\x00\x02\x00\x00\x00\x00\x00\x02\x04\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x08\x00\x02\x00\x00\x00\x00\x00\x02\x04\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x02\x00\x00\x00\x00\x00\x02\x04\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x18\x00\x02\x00\x00\x00\x00\x00\x02\x04\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".init", 0x580, "\x1f\x20\x03\xd5\xfd\x7b\xbf\xa9\xfd\x03\x00\x91\x3a\x00\x00\x94\xfd\x7b\xc1\xa8\xc0\x03\x5f\xd6"), -Section(".plt", 0x5A0, "\xf0\x7b\xbf\xa9\xf0\x00\x00\xf0\x11\xfe\x47\xf9\x10\xe2\x3f\x91\x20\x02\x1f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x10\x01\x00\x90\x11\x02\x40\xf9\x10\x02\x00\x91\x20\x02\x1f\xd6\x10\x01\x00\x90\x11\x06\x40\xf9\x10\x22\x00\x91\x20\x02\x1f\xd6\x10\x01\x00\x90\x11\x0a\x40\xf9\x10\x42\x00\x91\x20\x02\x1f\xd6\x10\x01\x00\x90\x11\x0e\x40\xf9\x10\x62\x00\x91\x20\x02\x1f\xd6"), -Section(".text", 0x600, "\xfd\x7b\xbf\xa9\x02\x01\x00\x90\xfd\x03\x00\x91\x40\x38\x40\xb9\x5c\x00\x00\x94\x40\x1c\x00\xf9\xfd\x7b\xc1\xa8\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1d\x00\x80\xd2\x1e\x00\x80\xd2\xe5\x03\x00\xaa\xe1\x03\x40\xf9\xe2\x23\x00\x91\xe6\x03\x00\x91\xe0\x00\x00\xf0\x00\xec\x47\xf9\x03\x00\x80\xd2\x04\x00\x80\xd2\xd5\xff\xff\x97\xe0\xff\xff\x97\xe0\x00\x00\xf0\x00\xe8\x47\xf9\x40\x00\x00\xb4\xd8\xff\xff\x17\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x00\x01\x00\x90\x00\xc0\x00\x91\x01\x01\x00\x90\x21\xc0\x00\x91\x3f\x00\x00\xeb\xc0\x00\x00\x54\xe1\x00\x00\xf0\x21\xe0\x47\xf9\x61\x00\x00\xb4\xf0\x03\x01\xaa\x00\x02\x1f\xd6\xc0\x03\x5f\xd6\x00\x01\x00\x90\x00\xc0\x00\x91\x01\x01\x00\x90\x21\xc0\x00\x91\x21\x00\x00\xcb\x22\xfc\x7f\xd3\x41\x0c\x81\x8b\x21\xfc\x41\x93\xc1\x00\x00\xb4\xe2\x00\x00\xf0\x42\xf0\x47\xf9\x62\x00\x00\xb4\xf0\x03\x02\xaa\x00\x02\x1f\xd6\xc0\x03\x5f\xd6\xfd\x7b\xbe\xa9\xfd\x03\x00\x91\xf3\x0b\x00\xf9\x13\x01\x00\x90\x60\xc2\x40\x39\x40\x01\x00\x37\xe0\x00\x00\xf0\x00\xe4\x47\xf9\x80\x00\x00\xb4\x00\x01\x00\x90\x00\x14\x40\xf9\xa6\xff\xff\x97\xd9\xff\xff\x97\x20\x00\x80\x52\x60\xc2\x00\x39\xf3\x0b\x40\xf9\xfd\x7b\xc2\xa8\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\xdc\xff\xff\x17\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x00\x00\x71\x81\x0c\x80\xd2\x20\x14\x81\xda\xc0\x03\x5f\xd6"), -Section(".fini", 0x790, "\x1f\x20\x03\xd5\xfd\x7b\xbf\xa9\xfd\x03\x00\x91\xfd\x7b\xc1\xa8\xc0\x03\x5f\xd6"), -Section(".rodata", 0x7A4, "\x01\x00\x02\x00"), -Section(".eh_frame_hdr", 0x7A8, "\x01\x1b\x03\x3b\x44\x00\x00\x00\x07\x00\x00\x00\x58\xfe\xff\xff\xe4\x00\x00\x00\x98\xfe\xff\xff\x5c\x00\x00\x00\xf8\xfe\xff\xff\x70\x00\x00\x00\x28\xff\xff\xff\x84\x00\x00\x00\x64\xff\xff\xff\x98\x00\x00\x00\xb8\xff\xff\xff\xbc\x00\x00\x00\xd8\xff\xff\xff\xd0\x00\x00\x00"), -Section(".eh_frame", 0x7F0, "\x10\x00\x00\x00\x00\x00\x00\x00\x01\x7a\x52\x00\x04\x78\x1e\x01\x1b\x0c\x1f\x00\x10\x00\x00\x00\x18\x00\x00\x00\x34\xfe\xff\xff\x34\x00\x00\x00\x00\x41\x07\x1e\x10\x00\x00\x00\x2c\x00\x00\x00\x80\xfe\xff\xff\x30\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x40\x00\x00\x00\x9c\xfe\xff\xff\x3c\x00\x00\x00\x00\x00\x00\x00\x20\x00\x00\x00\x54\x00\x00\x00\xc4\xfe\xff\xff\x48\x00\x00\x00\x00\x41\x0e\x20\x9d\x04\x9e\x03\x42\x93\x02\x4e\xde\xdd\xd3\x0e\x00\x00\x00\x00\x10\x00\x00\x00\x78\x00\x00\x00\xf4\xfe\xff\xff\x04\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x8c\x00\x00\x00\x00\xff\xff\xff\x10\x00\x00\x00\x00\x00\x00\x00\x1c\x00\x00\x00\xa0\x00\x00\x00\x6c\xfd\xff\xff\x20\x00\x00\x00\x00\x41\x0e\x10\x9d\x02\x9e\x01\x46\xde\xdd\x0e\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".fini_array", 0x1FDD0, "\x0c\x07\x00\x00\x00\x00\x00\x00"), -Section(".dynamic", 0x1FDD8, "\x01\x00\x00\x00\x00\x00\x00\x00\x28\x00\x00\x00\x00\x00\x00\x00\x0c\x00\x00\x00\x00\x00\x00\x00\x80\x05\x00\x00\x00\x00\x00\x00\x0d\x00\x00\x00\x00\x00\x00\x00\x90\x07\x00\x00\x00\x00\x00\x00\x19\x00\x00\x00\x00\x00\x00\x00\xc8\xfd\x01\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x1a\x00\x00\x00\x00\x00\x00\x00\xd0\xfd\x01\x00\x00\x00\x00\x00\x1c\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\xf5\xfe\xff\x6f\x00\x00\x00\x00\x98\x02\x00\x00\x00\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x90\x03\x00\x00\x00\x00\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\xb8\x02\x00\x00\x00\x00\x00\x00\x0a\x00\x00\x00\x00\x00\x00\x00\x8d\x00\x00\x00\x00\x00\x00\x00\x0b\x00\x00\x00\x00\x00\x00\x00\x18\x00\x00\x00\x00\x00\x00\x00\x15\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\xe8\xff\x01\x00\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x60\x00\x00\x00\x00\x00\x00\x00\x14\x00\x00\x00\x00\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x17\x00\x00\x00\x00\x00\x00\x00\x20\x05\x00\x00\x00\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x60\x04\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\xc0\x00\x00\x00\x00\x00\x00\x00\x09\x00\x00\x00\x00\x00\x00\x00\x18\x00\x00\x00\x00\x00\x00\x00\xfb\xff\xff\x6f\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\xfe\xff\xff\x6f\x00\x00\x00\x00\x30\x04\x00\x00\x00\x00\x00\x00\xff\xff\xff\x6f\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\xf0\xff\xff\x6f\x00\x00\x00\x00\x1e\x04\x00\x00\x00\x00\x00\x00\xf9\xff\xff\x6f\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".init_array", 0x1FDC8, "\x60\x07\x00\x00\x00\x00\x00\x00"), -Section(".got", 0x1FFB8, "\xd8\xfd\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".got.plt", 0x1FFE8, "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xa0\x05\x00\x00\x00\x00\x00\x00\xa0\x05\x00\x00\x00\x00\x00\x00\xa0\x05\x00\x00\x00\x00\x00\x00\xa0\x05\x00\x00\x00\x00\x00\x00"), -Section(".data", 0x20020, "\x00\x00\x00\x00\x00\x00\x00\x00\x28\x00\x02\x00\x00\x00\x00\x00")]), -Memmap([Annotation(Region(0x0,0x8AF), Attr("segment","02 0 2224")), -Annotation(Region(0x600,0x61F), Attr("symbol","\"main\"")), -Annotation(Region(0x0,0x102), Attr("section","\".shstrtab\"")), -Annotation(Region(0x0,0x23A), Attr("section","\".strtab\"")), -Annotation(Region(0x0,0x11), Attr("section","\".comment\"")), -Annotation(Region(0x238,0x252), Attr("section","\".interp\"")), -Annotation(Region(0x254,0x277), Attr("section","\".note.gnu.build-id\"")), -Annotation(Region(0x278,0x297), Attr("section","\".note.ABI-tag\"")), -Annotation(Region(0x298,0x2B3), Attr("section","\".gnu.hash\"")), -Annotation(Region(0x2B8,0x38F), Attr("section","\".dynsym\"")), -Annotation(Region(0x390,0x41C), Attr("section","\".dynstr\"")), -Annotation(Region(0x41E,0x42F), Attr("section","\".gnu.version\"")), -Annotation(Region(0x430,0x45F), Attr("section","\".gnu.version_r\"")), -Annotation(Region(0x460,0x51F), Attr("section","\".rela.dyn\"")), -Annotation(Region(0x520,0x57F), Attr("section","\".rela.plt\"")), -Annotation(Region(0x580,0x597), Attr("section","\".init\"")), -Annotation(Region(0x5A0,0x5FF), Attr("section","\".plt\"")), -Annotation(Region(0x580,0x597), Attr("code-region","()")), -Annotation(Region(0x5A0,0x5FF), Attr("code-region","()")), -Annotation(Region(0x600,0x61F), Attr("symbol-info","main 0x600 32")), -Annotation(Region(0x640,0x673), Attr("symbol","\"_start\"")), -Annotation(Region(0x640,0x673), Attr("symbol-info","_start 0x640 52")), -Annotation(Region(0x674,0x687), Attr("symbol","\"call_weak_fn\"")), -Annotation(Region(0x674,0x687), Attr("symbol-info","call_weak_fn 0x674 20")), -Annotation(Region(0x600,0x78F), Attr("section","\".text\"")), -Annotation(Region(0x600,0x78F), Attr("code-region","()")), -Annotation(Region(0x780,0x78F), Attr("symbol","\"bound\"")), -Annotation(Region(0x780,0x78F), Attr("symbol-info","bound 0x780 16")), -Annotation(Region(0x790,0x7A3), Attr("section","\".fini\"")), -Annotation(Region(0x790,0x7A3), Attr("code-region","()")), -Annotation(Region(0x7A4,0x7A7), Attr("section","\".rodata\"")), -Annotation(Region(0x7A8,0x7EB), Attr("section","\".eh_frame_hdr\"")), -Annotation(Region(0x7F0,0x8AF), Attr("section","\".eh_frame\"")), -Annotation(Region(0x1FDC8,0x2002F), Attr("segment","03 0x1FDC8 632")), -Annotation(Region(0x1FDD0,0x1FDD7), Attr("section","\".fini_array\"")), -Annotation(Region(0x1FDD8,0x1FFB7), Attr("section","\".dynamic\"")), -Annotation(Region(0x1FDC8,0x1FDCF), Attr("section","\".init_array\"")), -Annotation(Region(0x1FFB8,0x1FFE7), Attr("section","\".got\"")), -Annotation(Region(0x1FFE8,0x2001F), Attr("section","\".got.plt\"")), -Annotation(Region(0x20020,0x2002F), Attr("section","\".data\""))]), -Program(Tid(1_683, "%00000693"), Attrs([]), - Subs([Sub(Tid(1_660, "@__cxa_finalize"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x5D0"), -Attr("stub","()")]), "__cxa_finalize", Args([Arg(Tid(1_684, "%00000694"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("__cxa_finalize_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(1_026, "@__cxa_finalize"), - Attrs([Attr("address","0x5D0")]), Phis([]), -Defs([Def(Tid(1_274, "%000004fa"), Attrs([Attr("address","0x5D0"), -Attr("insn","adrp x16, #131072")]), Var("R16",Imm(64)), Int(131072,64)), -Def(Tid(1_281, "%00000501"), Attrs([Attr("address","0x5D4"), -Attr("insn","ldr x17, [x16, #0x8]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(1_287, "%00000507"), Attrs([Attr("address","0x5D8"), -Attr("insn","add x16, x16, #0x8")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(8,64)))]), Jmps([Call(Tid(1_292, "%0000050c"), - Attrs([Attr("address","0x5DC"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), -Sub(Tid(1_661, "@__do_global_dtors_aux"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x70C")]), - "__do_global_dtors_aux", Args([Arg(Tid(1_685, "%00000695"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("__do_global_dtors_aux_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(864, "@__do_global_dtors_aux"), - Attrs([Attr("address","0x70C")]), Phis([]), Defs([Def(Tid(868, "%00000364"), - Attrs([Attr("address","0x70C"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("#5",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(18446744073709551584,64))), -Def(Tid(874, "%0000036a"), Attrs([Attr("address","0x70C"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("#5",Imm(64)),Var("R29",Imm(64)),LittleEndian(),64)), -Def(Tid(880, "%00000370"), Attrs([Attr("address","0x70C"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("#5",Imm(64)),Int(8,64)),Var("R30",Imm(64)),LittleEndian(),64)), -Def(Tid(884, "%00000374"), Attrs([Attr("address","0x70C"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("R31",Imm(64)), -Var("#5",Imm(64))), Def(Tid(890, "%0000037a"), - Attrs([Attr("address","0x710"), Attr("insn","mov x29, sp")]), - Var("R29",Imm(64)), Var("R31",Imm(64))), Def(Tid(898, "%00000382"), - Attrs([Attr("address","0x714"), Attr("insn","str x19, [sp, #0x10]")]), - Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(16,64)),Var("R19",Imm(64)),LittleEndian(),64)), -Def(Tid(903, "%00000387"), Attrs([Attr("address","0x718"), -Attr("insn","adrp x19, #131072")]), Var("R19",Imm(64)), Int(131072,64)), -Def(Tid(910, "%0000038e"), Attrs([Attr("address","0x71C"), -Attr("insn","ldrb w0, [x19, #0x30]")]), Var("R0",Imm(64)), -UNSIGNED(64,Load(Var("mem",Mem(64,8)),PLUS(Var("R19",Imm(64)),Int(48,64)),LittleEndian(),8)))]), -Jmps([Goto(Tid(916, "%00000394"), Attrs([Attr("address","0x720"), -Attr("insn","tbnz w0, #0x0, #0x28")]), - EQ(Extract(0,0,Var("R0",Imm(64))),Int(1,1)), Direct(Tid(914, "%00000392"))), -Goto(Tid(1_662, "%0000067e"), Attrs([]), Int(1,1), -Direct(Tid(971, "%000003cb")))])), Blk(Tid(971, "%000003cb"), - Attrs([Attr("address","0x724")]), Phis([]), Defs([Def(Tid(974, "%000003ce"), - Attrs([Attr("address","0x724"), Attr("insn","adrp x0, #126976")]), - Var("R0",Imm(64)), Int(126976,64)), Def(Tid(981, "%000003d5"), - Attrs([Attr("address","0x728"), Attr("insn","ldr x0, [x0, #0xfc8]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(4040,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(987, "%000003db"), Attrs([Attr("address","0x72C"), -Attr("insn","cbz x0, #0x10")]), EQ(Var("R0",Imm(64)),Int(0,64)), -Direct(Tid(985, "%000003d9"))), Goto(Tid(1_663, "%0000067f"), Attrs([]), - Int(1,1), Direct(Tid(1_010, "%000003f2")))])), Blk(Tid(1_010, "%000003f2"), - Attrs([Attr("address","0x730")]), Phis([]), -Defs([Def(Tid(1_013, "%000003f5"), Attrs([Attr("address","0x730"), -Attr("insn","adrp x0, #131072")]), Var("R0",Imm(64)), Int(131072,64)), -Def(Tid(1_020, "%000003fc"), Attrs([Attr("address","0x734"), -Attr("insn","ldr x0, [x0, #0x28]")]), Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(40,64)),LittleEndian(),64)), -Def(Tid(1_025, "%00000401"), Attrs([Attr("address","0x738"), -Attr("insn","bl #-0x168")]), Var("R30",Imm(64)), Int(1852,64))]), -Jmps([Call(Tid(1_028, "%00000404"), Attrs([Attr("address","0x738"), -Attr("insn","bl #-0x168")]), Int(1,1), -(Direct(Tid(1_660, "@__cxa_finalize")),Direct(Tid(985, "%000003d9"))))])), -Blk(Tid(985, "%000003d9"), Attrs([Attr("address","0x73C")]), Phis([]), -Defs([Def(Tid(993, "%000003e1"), Attrs([Attr("address","0x73C"), -Attr("insn","bl #-0x9c")]), Var("R30",Imm(64)), Int(1856,64))]), -Jmps([Call(Tid(995, "%000003e3"), Attrs([Attr("address","0x73C"), -Attr("insn","bl #-0x9c")]), Int(1,1), -(Direct(Tid(1_675, "@deregister_tm_clones")),Direct(Tid(997, "%000003e5"))))])), -Blk(Tid(997, "%000003e5"), Attrs([Attr("address","0x740")]), Phis([]), -Defs([Def(Tid(1_000, "%000003e8"), Attrs([Attr("address","0x740"), -Attr("insn","mov w0, #0x1")]), Var("R0",Imm(64)), Int(1,64)), -Def(Tid(1_008, "%000003f0"), Attrs([Attr("address","0x744"), -Attr("insn","strb w0, [x19, #0x30]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R19",Imm(64)),Int(48,64)),Extract(7,0,Var("R0",Imm(64))),LittleEndian(),8))]), -Jmps([Goto(Tid(1_664, "%00000680"), Attrs([]), Int(1,1), -Direct(Tid(914, "%00000392")))])), Blk(Tid(914, "%00000392"), - Attrs([Attr("address","0x748")]), Phis([]), Defs([Def(Tid(924, "%0000039c"), - Attrs([Attr("address","0x748"), Attr("insn","ldr x19, [sp, #0x10]")]), - Var("R19",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(16,64)),LittleEndian(),64)), -Def(Tid(931, "%000003a3"), Attrs([Attr("address","0x74C"), -Attr("insn","ldp x29, x30, [sp], #0x20")]), Var("R29",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(936, "%000003a8"), Attrs([Attr("address","0x74C"), -Attr("insn","ldp x29, x30, [sp], #0x20")]), Var("R30",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(940, "%000003ac"), Attrs([Attr("address","0x74C"), -Attr("insn","ldp x29, x30, [sp], #0x20")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(32,64)))]), Jmps([Call(Tid(945, "%000003b1"), - Attrs([Attr("address","0x750"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), Sub(Tid(1_665, "@__libc_start_main"), - Attrs([Attr("c.proto","signed (*)(signed (*)(signed , char** , char** );* main, signed , char** , \nvoid* auxv)"), -Attr("address","0x5C0"), Attr("stub","()")]), "__libc_start_main", - Args([Arg(Tid(1_686, "%00000696"), - Attrs([Attr("c.layout","**[ : 64]"), -Attr("c.data","Top:u64 ptr ptr"), -Attr("c.type","signed (*)(signed , char** , char** );*")]), - Var("__libc_start_main_main",Imm(64)), Var("R0",Imm(64)), In()), -Arg(Tid(1_687, "%00000697"), Attrs([Attr("c.layout","[signed : 32]"), -Attr("c.data","Top:u32"), Attr("c.type","signed")]), - Var("__libc_start_main_arg2",Imm(32)), LOW(32,Var("R1",Imm(64))), In()), -Arg(Tid(1_688, "%00000698"), Attrs([Attr("c.layout","**[char : 8]"), -Attr("c.data","Top:u8 ptr ptr"), Attr("c.type","char**")]), - Var("__libc_start_main_arg3",Imm(64)), Var("R2",Imm(64)), Both()), -Arg(Tid(1_689, "%00000699"), Attrs([Attr("c.layout","*[ : 8]"), -Attr("c.data","{} ptr"), Attr("c.type","void*")]), - Var("__libc_start_main_auxv",Imm(64)), Var("R3",Imm(64)), Both()), -Arg(Tid(1_690, "%0000069a"), Attrs([Attr("c.layout","[signed : 32]"), -Attr("c.data","Top:u32"), Attr("c.type","signed")]), - Var("__libc_start_main_result",Imm(32)), LOW(32,Var("R0",Imm(64))), -Out())]), Blks([Blk(Tid(691, "@__libc_start_main"), - Attrs([Attr("address","0x5C0")]), Phis([]), -Defs([Def(Tid(1_252, "%000004e4"), Attrs([Attr("address","0x5C0"), -Attr("insn","adrp x16, #131072")]), Var("R16",Imm(64)), Int(131072,64)), -Def(Tid(1_259, "%000004eb"), Attrs([Attr("address","0x5C4"), -Attr("insn","ldr x17, [x16]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R16",Imm(64)),LittleEndian(),64)), -Def(Tid(1_265, "%000004f1"), Attrs([Attr("address","0x5C8"), -Attr("insn","add x16, x16, #0x0")]), Var("R16",Imm(64)), -Var("R16",Imm(64)))]), Jmps([Call(Tid(1_270, "%000004f6"), - Attrs([Attr("address","0x5CC"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), Sub(Tid(1_666, "@_fini"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x790")]), - "_fini", Args([Arg(Tid(1_691, "%0000069b"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("_fini_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(32, "@_fini"), - Attrs([Attr("address","0x790")]), Phis([]), Defs([Def(Tid(38, "%00000026"), - Attrs([Attr("address","0x794"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("#0",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(18446744073709551600,64))), -Def(Tid(44, "%0000002c"), Attrs([Attr("address","0x794"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("#0",Imm(64)),Var("R29",Imm(64)),LittleEndian(),64)), -Def(Tid(50, "%00000032"), Attrs([Attr("address","0x794"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("#0",Imm(64)),Int(8,64)),Var("R30",Imm(64)),LittleEndian(),64)), -Def(Tid(54, "%00000036"), Attrs([Attr("address","0x794"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("R31",Imm(64)), -Var("#0",Imm(64))), Def(Tid(60, "%0000003c"), Attrs([Attr("address","0x798"), -Attr("insn","mov x29, sp")]), Var("R29",Imm(64)), Var("R31",Imm(64))), -Def(Tid(67, "%00000043"), Attrs([Attr("address","0x79C"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R29",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(72, "%00000048"), Attrs([Attr("address","0x79C"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R30",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(76, "%0000004c"), Attrs([Attr("address","0x79C"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(16,64)))]), Jmps([Call(Tid(81, "%00000051"), - Attrs([Attr("address","0x7A0"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), Sub(Tid(1_667, "@_init"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x580")]), - "_init", Args([Arg(Tid(1_692, "%0000069c"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("_init_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(1_471, "@_init"), - Attrs([Attr("address","0x580")]), Phis([]), -Defs([Def(Tid(1_477, "%000005c5"), Attrs([Attr("address","0x584"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("#7",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(18446744073709551600,64))), -Def(Tid(1_483, "%000005cb"), Attrs([Attr("address","0x584"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("#7",Imm(64)),Var("R29",Imm(64)),LittleEndian(),64)), -Def(Tid(1_489, "%000005d1"), Attrs([Attr("address","0x584"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("#7",Imm(64)),Int(8,64)),Var("R30",Imm(64)),LittleEndian(),64)), -Def(Tid(1_493, "%000005d5"), Attrs([Attr("address","0x584"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("R31",Imm(64)), -Var("#7",Imm(64))), Def(Tid(1_499, "%000005db"), - Attrs([Attr("address","0x588"), Attr("insn","mov x29, sp")]), - Var("R29",Imm(64)), Var("R31",Imm(64))), Def(Tid(1_504, "%000005e0"), - Attrs([Attr("address","0x58C"), Attr("insn","bl #0xe8")]), - Var("R30",Imm(64)), Int(1424,64))]), Jmps([Call(Tid(1_506, "%000005e2"), - Attrs([Attr("address","0x58C"), Attr("insn","bl #0xe8")]), Int(1,1), -(Direct(Tid(1_673, "@call_weak_fn")),Direct(Tid(1_508, "%000005e4"))))])), -Blk(Tid(1_508, "%000005e4"), Attrs([Attr("address","0x590")]), Phis([]), -Defs([Def(Tid(1_513, "%000005e9"), Attrs([Attr("address","0x590"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R29",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(1_518, "%000005ee"), Attrs([Attr("address","0x590"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R30",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(1_522, "%000005f2"), Attrs([Attr("address","0x590"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(16,64)))]), Jmps([Call(Tid(1_527, "%000005f7"), - Attrs([Attr("address","0x594"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), Sub(Tid(1_668, "@_start"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x640"), -Attr("entry-point","()")]), "_start", Args([Arg(Tid(1_693, "%0000069d"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("_start_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(628, "@_start"), - Attrs([Attr("address","0x640")]), Phis([]), Defs([Def(Tid(633, "%00000279"), - Attrs([Attr("address","0x644"), Attr("insn","mov x29, #0x0")]), - Var("R29",Imm(64)), Int(0,64)), Def(Tid(638, "%0000027e"), - Attrs([Attr("address","0x648"), Attr("insn","mov x30, #0x0")]), - Var("R30",Imm(64)), Int(0,64)), Def(Tid(644, "%00000284"), - Attrs([Attr("address","0x64C"), Attr("insn","mov x5, x0")]), - Var("R5",Imm(64)), Var("R0",Imm(64))), Def(Tid(651, "%0000028b"), - Attrs([Attr("address","0x650"), Attr("insn","ldr x1, [sp]")]), - Var("R1",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(657, "%00000291"), Attrs([Attr("address","0x654"), -Attr("insn","add x2, sp, #0x8")]), Var("R2",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(8,64))), Def(Tid(663, "%00000297"), - Attrs([Attr("address","0x658"), Attr("insn","mov x6, sp")]), - Var("R6",Imm(64)), Var("R31",Imm(64))), Def(Tid(668, "%0000029c"), - Attrs([Attr("address","0x65C"), Attr("insn","adrp x0, #126976")]), - Var("R0",Imm(64)), Int(126976,64)), Def(Tid(675, "%000002a3"), - Attrs([Attr("address","0x660"), Attr("insn","ldr x0, [x0, #0xfd8]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(4056,64)),LittleEndian(),64)), -Def(Tid(680, "%000002a8"), Attrs([Attr("address","0x664"), -Attr("insn","mov x3, #0x0")]), Var("R3",Imm(64)), Int(0,64)), -Def(Tid(685, "%000002ad"), Attrs([Attr("address","0x668"), -Attr("insn","mov x4, #0x0")]), Var("R4",Imm(64)), Int(0,64)), -Def(Tid(690, "%000002b2"), Attrs([Attr("address","0x66C"), -Attr("insn","bl #-0xac")]), Var("R30",Imm(64)), Int(1648,64))]), -Jmps([Call(Tid(693, "%000002b5"), Attrs([Attr("address","0x66C"), -Attr("insn","bl #-0xac")]), Int(1,1), -(Direct(Tid(1_665, "@__libc_start_main")),Direct(Tid(695, "%000002b7"))))])), -Blk(Tid(695, "%000002b7"), Attrs([Attr("address","0x670")]), Phis([]), -Defs([Def(Tid(698, "%000002ba"), Attrs([Attr("address","0x670"), -Attr("insn","bl #-0x80")]), Var("R30",Imm(64)), Int(1652,64))]), -Jmps([Call(Tid(701, "%000002bd"), Attrs([Attr("address","0x670"), -Attr("insn","bl #-0x80")]), Int(1,1), -(Direct(Tid(1_671, "@abort")),Direct(Tid(1_669, "%00000685"))))])), -Blk(Tid(1_669, "%00000685"), Attrs([]), Phis([]), Defs([]), -Jmps([Call(Tid(1_670, "%00000686"), Attrs([]), Int(1,1), -(Direct(Tid(1_673, "@call_weak_fn")),))]))])), Sub(Tid(1_671, "@abort"), - Attrs([Attr("noreturn","()"), Attr("c.proto","void (*)(void)"), -Attr("address","0x5F0"), Attr("stub","()")]), "abort", Args([]), -Blks([Blk(Tid(699, "@abort"), Attrs([Attr("address","0x5F0")]), Phis([]), -Defs([Def(Tid(1_318, "%00000526"), Attrs([Attr("address","0x5F0"), -Attr("insn","adrp x16, #131072")]), Var("R16",Imm(64)), Int(131072,64)), -Def(Tid(1_325, "%0000052d"), Attrs([Attr("address","0x5F4"), -Attr("insn","ldr x17, [x16, #0x18]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(24,64)),LittleEndian(),64)), -Def(Tid(1_331, "%00000533"), Attrs([Attr("address","0x5F8"), -Attr("insn","add x16, x16, #0x18")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(24,64)))]), Jmps([Call(Tid(1_336, "%00000538"), - Attrs([Attr("address","0x5FC"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), Sub(Tid(1_672, "@bound"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x780")]), - "bound", Args([Arg(Tid(1_694, "%0000069e"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("bound_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(529, "@bound"), - Attrs([Attr("address","0x780")]), Phis([]), Defs([Def(Tid(536, "%00000218"), - Attrs([Attr("address","0x780"), Attr("insn","cmp w0, #0x0")]), - Var("#2",Imm(32)), Extract(31,0,Var("R0",Imm(64)))), -Def(Tid(541, "%0000021d"), Attrs([Attr("address","0x780"), -Attr("insn","cmp w0, #0x0")]), Var("VF",Imm(1)), Int(0,1)), -Def(Tid(546, "%00000222"), Attrs([Attr("address","0x780"), -Attr("insn","cmp w0, #0x0")]), Var("CF",Imm(1)), -NEQ(UNSIGNED(33,Var("#2",Imm(32))),PLUS(UNSIGNED(33,Extract(31,0,Var("R0",Imm(64)))),Int(4294967296,33)))), -Def(Tid(550, "%00000226"), Attrs([Attr("address","0x780"), -Attr("insn","cmp w0, #0x0")]), Var("ZF",Imm(1)), -EQ(Var("#2",Imm(32)),Int(0,32))), Def(Tid(554, "%0000022a"), - Attrs([Attr("address","0x780"), Attr("insn","cmp w0, #0x0")]), - Var("NF",Imm(1)), Extract(31,31,Var("#2",Imm(32)))), -Def(Tid(559, "%0000022f"), Attrs([Attr("address","0x784"), -Attr("insn","mov x1, #0x64")]), Var("R1",Imm(64)), Int(100,64))]), -Jmps([Goto(Tid(573, "%0000023d"), Attrs([Attr("address","0x788"), -Attr("insn","cneg x0, x1, eq")]), NEQ(Var("ZF",Imm(1)),Int(1,1)), -Direct(Tid(565, "%00000235"))), Goto(Tid(574, "%0000023e"), - Attrs([Attr("address","0x788"), Attr("insn","cneg x0, x1, eq")]), Int(1,1), -Direct(Tid(569, "%00000239")))])), Blk(Tid(569, "%00000239"), Attrs([]), - Phis([]), Defs([Def(Tid(570, "%0000023a"), Attrs([Attr("address","0x788"), -Attr("insn","cneg x0, x1, eq")]), Var("R0",Imm(64)), -PLUS(NOT(Var("R1",Imm(64))),Int(1,64)))]), Jmps([Goto(Tid(576, "%00000240"), - Attrs([Attr("address","0x788"), Attr("insn","cneg x0, x1, eq")]), Int(1,1), -Direct(Tid(572, "%0000023c")))])), Blk(Tid(565, "%00000235"), Attrs([]), - Phis([]), Defs([Def(Tid(566, "%00000236"), Attrs([Attr("address","0x788"), -Attr("insn","cneg x0, x1, eq")]), Var("R0",Imm(64)), Var("R1",Imm(64)))]), -Jmps([Goto(Tid(575, "%0000023f"), Attrs([Attr("address","0x788"), -Attr("insn","cneg x0, x1, eq")]), Int(1,1), -Direct(Tid(572, "%0000023c")))])), Blk(Tid(572, "%0000023c"), Attrs([]), - Phis([]), Defs([]), Jmps([Call(Tid(581, "%00000245"), - Attrs([Attr("address","0x78C"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), Sub(Tid(1_673, "@call_weak_fn"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x674")]), - "call_weak_fn", Args([Arg(Tid(1_695, "%0000069f"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("call_weak_fn_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(703, "@call_weak_fn"), - Attrs([Attr("address","0x674")]), Phis([]), Defs([Def(Tid(706, "%000002c2"), - Attrs([Attr("address","0x674"), Attr("insn","adrp x0, #126976")]), - Var("R0",Imm(64)), Int(126976,64)), Def(Tid(713, "%000002c9"), - Attrs([Attr("address","0x678"), Attr("insn","ldr x0, [x0, #0xfd0]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(4048,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(719, "%000002cf"), Attrs([Attr("address","0x67C"), -Attr("insn","cbz x0, #0x8")]), EQ(Var("R0",Imm(64)),Int(0,64)), -Direct(Tid(717, "%000002cd"))), Goto(Tid(1_674, "%0000068a"), Attrs([]), - Int(1,1), Direct(Tid(1_090, "%00000442")))])), Blk(Tid(717, "%000002cd"), - Attrs([Attr("address","0x684")]), Phis([]), Defs([]), -Jmps([Call(Tid(725, "%000002d5"), Attrs([Attr("address","0x684"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))])), -Blk(Tid(1_090, "%00000442"), Attrs([Attr("address","0x680")]), Phis([]), -Defs([]), Jmps([Goto(Tid(1_093, "%00000445"), Attrs([Attr("address","0x680"), -Attr("insn","b #-0xa0")]), Int(1,1), -Direct(Tid(1_091, "@__gmon_start__")))])), Blk(Tid(1_091, "@__gmon_start__"), - Attrs([Attr("address","0x5E0")]), Phis([]), -Defs([Def(Tid(1_296, "%00000510"), Attrs([Attr("address","0x5E0"), -Attr("insn","adrp x16, #131072")]), Var("R16",Imm(64)), Int(131072,64)), -Def(Tid(1_303, "%00000517"), Attrs([Attr("address","0x5E4"), -Attr("insn","ldr x17, [x16, #0x10]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(16,64)),LittleEndian(),64)), -Def(Tid(1_309, "%0000051d"), Attrs([Attr("address","0x5E8"), -Attr("insn","add x16, x16, #0x10")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(16,64)))]), Jmps([Call(Tid(1_314, "%00000522"), - Attrs([Attr("address","0x5EC"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), -Sub(Tid(1_675, "@deregister_tm_clones"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x6A0")]), - "deregister_tm_clones", Args([Arg(Tid(1_696, "%000006a0"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("deregister_tm_clones_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(739, "@deregister_tm_clones"), - Attrs([Attr("address","0x6A0")]), Phis([]), Defs([Def(Tid(742, "%000002e6"), - Attrs([Attr("address","0x6A0"), Attr("insn","adrp x0, #131072")]), - Var("R0",Imm(64)), Int(131072,64)), Def(Tid(748, "%000002ec"), - Attrs([Attr("address","0x6A4"), Attr("insn","add x0, x0, #0x30")]), - Var("R0",Imm(64)), PLUS(Var("R0",Imm(64)),Int(48,64))), -Def(Tid(753, "%000002f1"), Attrs([Attr("address","0x6A8"), -Attr("insn","adrp x1, #131072")]), Var("R1",Imm(64)), Int(131072,64)), -Def(Tid(759, "%000002f7"), Attrs([Attr("address","0x6AC"), -Attr("insn","add x1, x1, #0x30")]), Var("R1",Imm(64)), -PLUS(Var("R1",Imm(64)),Int(48,64))), Def(Tid(765, "%000002fd"), - Attrs([Attr("address","0x6B0"), Attr("insn","cmp x1, x0")]), - Var("#3",Imm(64)), NOT(Var("R0",Imm(64)))), Def(Tid(770, "%00000302"), - Attrs([Attr("address","0x6B0"), Attr("insn","cmp x1, x0")]), - Var("#4",Imm(64)), PLUS(Var("R1",Imm(64)),NOT(Var("R0",Imm(64))))), -Def(Tid(776, "%00000308"), Attrs([Attr("address","0x6B0"), -Attr("insn","cmp x1, x0")]), Var("VF",Imm(1)), -NEQ(SIGNED(65,PLUS(Var("#4",Imm(64)),Int(1,64))),PLUS(PLUS(SIGNED(65,Var("R1",Imm(64))),SIGNED(65,Var("#3",Imm(64)))),Int(1,65)))), -Def(Tid(782, "%0000030e"), Attrs([Attr("address","0x6B0"), -Attr("insn","cmp x1, x0")]), Var("CF",Imm(1)), -NEQ(UNSIGNED(65,PLUS(Var("#4",Imm(64)),Int(1,64))),PLUS(PLUS(UNSIGNED(65,Var("R1",Imm(64))),UNSIGNED(65,Var("#3",Imm(64)))),Int(1,65)))), -Def(Tid(786, "%00000312"), Attrs([Attr("address","0x6B0"), -Attr("insn","cmp x1, x0")]), Var("ZF",Imm(1)), -EQ(PLUS(Var("#4",Imm(64)),Int(1,64)),Int(0,64))), Def(Tid(790, "%00000316"), - Attrs([Attr("address","0x6B0"), Attr("insn","cmp x1, x0")]), - Var("NF",Imm(1)), Extract(63,63,PLUS(Var("#4",Imm(64)),Int(1,64))))]), -Jmps([Goto(Tid(796, "%0000031c"), Attrs([Attr("address","0x6B4"), -Attr("insn","b.eq #0x18")]), EQ(Var("ZF",Imm(1)),Int(1,1)), -Direct(Tid(794, "%0000031a"))), Goto(Tid(1_676, "%0000068c"), Attrs([]), - Int(1,1), Direct(Tid(1_060, "%00000424")))])), Blk(Tid(1_060, "%00000424"), - Attrs([Attr("address","0x6B8")]), Phis([]), -Defs([Def(Tid(1_063, "%00000427"), Attrs([Attr("address","0x6B8"), -Attr("insn","adrp x1, #126976")]), Var("R1",Imm(64)), Int(126976,64)), -Def(Tid(1_070, "%0000042e"), Attrs([Attr("address","0x6BC"), -Attr("insn","ldr x1, [x1, #0xfc0]")]), Var("R1",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R1",Imm(64)),Int(4032,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(1_075, "%00000433"), Attrs([Attr("address","0x6C0"), -Attr("insn","cbz x1, #0xc")]), EQ(Var("R1",Imm(64)),Int(0,64)), -Direct(Tid(794, "%0000031a"))), Goto(Tid(1_677, "%0000068d"), Attrs([]), - Int(1,1), Direct(Tid(1_079, "%00000437")))])), Blk(Tid(794, "%0000031a"), - Attrs([Attr("address","0x6CC")]), Phis([]), Defs([]), -Jmps([Call(Tid(802, "%00000322"), Attrs([Attr("address","0x6CC"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))])), -Blk(Tid(1_079, "%00000437"), Attrs([Attr("address","0x6C4")]), Phis([]), -Defs([Def(Tid(1_083, "%0000043b"), Attrs([Attr("address","0x6C4"), -Attr("insn","mov x16, x1")]), Var("R16",Imm(64)), Var("R1",Imm(64)))]), -Jmps([Call(Tid(1_088, "%00000440"), Attrs([Attr("address","0x6C8"), -Attr("insn","br x16")]), Int(1,1), (Indirect(Var("R16",Imm(64))),))]))])), -Sub(Tid(1_678, "@frame_dummy"), Attrs([Attr("c.proto","signed (*)(void)"), -Attr("address","0x760")]), "frame_dummy", Args([Arg(Tid(1_697, "%000006a1"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("frame_dummy_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(953, "@frame_dummy"), - Attrs([Attr("address","0x760")]), Phis([]), Defs([]), -Jmps([Call(Tid(955, "%000003bb"), Attrs([Attr("address","0x760"), -Attr("insn","b #-0x90")]), Int(1,1), -(Direct(Tid(1_680, "@register_tm_clones")),))]))])), Sub(Tid(1_679, "@main"), - Attrs([Attr("c.proto","signed (*)(signed argc, const char** argv)"), -Attr("address","0x600"), Attr("stub","()")]), "main", - Args([Arg(Tid(1_698, "%000006a2"), Attrs([Attr("c.layout","[signed : 32]"), -Attr("c.data","Top:u32"), Attr("c.type","signed")]), - Var("main_argc",Imm(32)), LOW(32,Var("R0",Imm(64))), In()), -Arg(Tid(1_699, "%000006a3"), Attrs([Attr("c.layout","**[char : 8]"), -Attr("c.data","Top:u8 ptr ptr"), Attr("c.type"," const char**")]), - Var("main_argv",Imm(64)), Var("R1",Imm(64)), Both()), -Arg(Tid(1_700, "%000006a4"), Attrs([Attr("c.layout","[signed : 32]"), -Attr("c.data","Top:u32"), Attr("c.type","signed")]), - Var("main_result",Imm(32)), LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(485, "@main"), Attrs([Attr("address","0x600")]), Phis([]), -Defs([Def(Tid(489, "%000001e9"), Attrs([Attr("address","0x600"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("#1",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(18446744073709551600,64))), -Def(Tid(495, "%000001ef"), Attrs([Attr("address","0x600"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("#1",Imm(64)),Var("R29",Imm(64)),LittleEndian(),64)), -Def(Tid(501, "%000001f5"), Attrs([Attr("address","0x600"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("#1",Imm(64)),Int(8,64)),Var("R30",Imm(64)),LittleEndian(),64)), -Def(Tid(505, "%000001f9"), Attrs([Attr("address","0x600"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("R31",Imm(64)), -Var("#1",Imm(64))), Def(Tid(510, "%000001fe"), - Attrs([Attr("address","0x604"), Attr("insn","adrp x2, #131072")]), - Var("R2",Imm(64)), Int(131072,64)), Def(Tid(516, "%00000204"), - Attrs([Attr("address","0x608"), Attr("insn","mov x29, sp")]), - Var("R29",Imm(64)), Var("R31",Imm(64))), Def(Tid(523, "%0000020b"), - Attrs([Attr("address","0x60C"), Attr("insn","ldr w0, [x2, #0x38]")]), - Var("R0",Imm(64)), -UNSIGNED(64,Load(Var("mem",Mem(64,8)),PLUS(Var("R2",Imm(64)),Int(56,64)),LittleEndian(),32))), -Def(Tid(528, "%00000210"), Attrs([Attr("address","0x610"), -Attr("insn","bl #0x170")]), Var("R30",Imm(64)), Int(1556,64))]), -Jmps([Call(Tid(531, "%00000213"), Attrs([Attr("address","0x610"), -Attr("insn","bl #0x170")]), Int(1,1), -(Direct(Tid(1_672, "@bound")),Direct(Tid(583, "%00000247"))))])), -Blk(Tid(583, "%00000247"), Attrs([Attr("address","0x614")]), Phis([]), -Defs([Def(Tid(589, "%0000024d"), Attrs([Attr("address","0x614"), -Attr("insn","str x0, [x2, #0x38]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R2",Imm(64)),Int(56,64)),Var("R0",Imm(64)),LittleEndian(),64)), -Def(Tid(596, "%00000254"), Attrs([Attr("address","0x618"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R29",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(601, "%00000259"), Attrs([Attr("address","0x618"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R30",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(605, "%0000025d"), Attrs([Attr("address","0x618"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(16,64)))]), Jmps([Call(Tid(610, "%00000262"), - Attrs([Attr("address","0x61C"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), -Sub(Tid(1_680, "@register_tm_clones"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x6D0")]), - "register_tm_clones", Args([Arg(Tid(1_701, "%000006a5"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("register_tm_clones_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(804, "@register_tm_clones"), Attrs([Attr("address","0x6D0")]), - Phis([]), Defs([Def(Tid(807, "%00000327"), Attrs([Attr("address","0x6D0"), -Attr("insn","adrp x0, #131072")]), Var("R0",Imm(64)), Int(131072,64)), -Def(Tid(813, "%0000032d"), Attrs([Attr("address","0x6D4"), -Attr("insn","add x0, x0, #0x30")]), Var("R0",Imm(64)), -PLUS(Var("R0",Imm(64)),Int(48,64))), Def(Tid(818, "%00000332"), - Attrs([Attr("address","0x6D8"), Attr("insn","adrp x1, #131072")]), - Var("R1",Imm(64)), Int(131072,64)), Def(Tid(824, "%00000338"), - Attrs([Attr("address","0x6DC"), Attr("insn","add x1, x1, #0x30")]), - Var("R1",Imm(64)), PLUS(Var("R1",Imm(64)),Int(48,64))), -Def(Tid(831, "%0000033f"), Attrs([Attr("address","0x6E0"), -Attr("insn","sub x1, x1, x0")]), Var("R1",Imm(64)), -PLUS(PLUS(Var("R1",Imm(64)),NOT(Var("R0",Imm(64)))),Int(1,64))), -Def(Tid(837, "%00000345"), Attrs([Attr("address","0x6E4"), -Attr("insn","lsr x2, x1, #63")]), Var("R2",Imm(64)), -Concat(Int(0,63),Extract(63,63,Var("R1",Imm(64))))), -Def(Tid(844, "%0000034c"), Attrs([Attr("address","0x6E8"), -Attr("insn","add x1, x2, x1, asr #3")]), Var("R1",Imm(64)), -PLUS(Var("R2",Imm(64)),ARSHIFT(Var("R1",Imm(64)),Int(3,3)))), -Def(Tid(850, "%00000352"), Attrs([Attr("address","0x6EC"), -Attr("insn","asr x1, x1, #1")]), Var("R1",Imm(64)), -SIGNED(64,Extract(63,1,Var("R1",Imm(64)))))]), -Jmps([Goto(Tid(856, "%00000358"), Attrs([Attr("address","0x6F0"), -Attr("insn","cbz x1, #0x18")]), EQ(Var("R1",Imm(64)),Int(0,64)), -Direct(Tid(854, "%00000356"))), Goto(Tid(1_681, "%00000691"), Attrs([]), - Int(1,1), Direct(Tid(1_030, "%00000406")))])), Blk(Tid(1_030, "%00000406"), - Attrs([Attr("address","0x6F4")]), Phis([]), -Defs([Def(Tid(1_033, "%00000409"), Attrs([Attr("address","0x6F4"), -Attr("insn","adrp x2, #126976")]), Var("R2",Imm(64)), Int(126976,64)), -Def(Tid(1_040, "%00000410"), Attrs([Attr("address","0x6F8"), -Attr("insn","ldr x2, [x2, #0xfe0]")]), Var("R2",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R2",Imm(64)),Int(4064,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(1_045, "%00000415"), Attrs([Attr("address","0x6FC"), -Attr("insn","cbz x2, #0xc")]), EQ(Var("R2",Imm(64)),Int(0,64)), -Direct(Tid(854, "%00000356"))), Goto(Tid(1_682, "%00000692"), Attrs([]), - Int(1,1), Direct(Tid(1_049, "%00000419")))])), Blk(Tid(854, "%00000356"), - Attrs([Attr("address","0x708")]), Phis([]), Defs([]), -Jmps([Call(Tid(862, "%0000035e"), Attrs([Attr("address","0x708"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))])), -Blk(Tid(1_049, "%00000419"), Attrs([Attr("address","0x700")]), Phis([]), -Defs([Def(Tid(1_053, "%0000041d"), Attrs([Attr("address","0x700"), -Attr("insn","mov x16, x2")]), Var("R16",Imm(64)), Var("R2",Imm(64)))]), -Jmps([Call(Tid(1_058, "%00000422"), Attrs([Attr("address","0x704"), -Attr("insn","br x16")]), Int(1,1), -(Indirect(Var("R16",Imm(64))),))]))]))]))) \ No newline at end of file diff --git a/src/test/procedure_summaries/intervals1/gcc_O2/intervals1.bir b/src/test/procedure_summaries/intervals1/gcc_O2/intervals1.bir deleted file mode 100644 index 5a7825e77..000000000 --- a/src/test/procedure_summaries/intervals1/gcc_O2/intervals1.bir +++ /dev/null @@ -1,262 +0,0 @@ -00000693: program -0000067c: sub __cxa_finalize(__cxa_finalize_result) -00000694: __cxa_finalize_result :: out u32 = low:32[R0] - -00000402: -000004fa: R16 := 0x20000 -00000501: R17 := mem[R16 + 8, el]:u64 -00000507: R16 := R16 + 8 -0000050c: call R17 with noreturn - -0000067d: sub __do_global_dtors_aux(__do_global_dtors_aux_result) -00000695: __do_global_dtors_aux_result :: out u32 = low:32[R0] - -00000360: -00000364: #5 := R31 - 0x20 -0000036a: mem := mem with [#5, el]:u64 <- R29 -00000370: mem := mem with [#5 + 8, el]:u64 <- R30 -00000374: R31 := #5 -0000037a: R29 := R31 -00000382: mem := mem with [R31 + 0x10, el]:u64 <- R19 -00000387: R19 := 0x20000 -0000038e: R0 := pad:64[mem[R19 + 0x30]] -00000394: when 0:0[R0] goto %00000392 -0000067e: goto %000003cb - -000003cb: -000003ce: R0 := 0x1F000 -000003d5: R0 := mem[R0 + 0xFC8, el]:u64 -000003db: when R0 = 0 goto %000003d9 -0000067f: goto %000003f2 - -000003f2: -000003f5: R0 := 0x20000 -000003fc: R0 := mem[R0 + 0x28, el]:u64 -00000401: R30 := 0x73C -00000404: call @__cxa_finalize with return %000003d9 - -000003d9: -000003e1: R30 := 0x740 -000003e3: call @deregister_tm_clones with return %000003e5 - -000003e5: -000003e8: R0 := 1 -000003f0: mem := mem with [R19 + 0x30] <- 7:0[R0] -00000680: goto %00000392 - -00000392: -0000039c: R19 := mem[R31 + 0x10, el]:u64 -000003a3: R29 := mem[R31, el]:u64 -000003a8: R30 := mem[R31 + 8, el]:u64 -000003ac: R31 := R31 + 0x20 -000003b1: call R30 with noreturn - -00000681: sub __libc_start_main(__libc_start_main_main, __libc_start_main_arg2, __libc_start_main_arg3, __libc_start_main_auxv, __libc_start_main_result) -00000696: __libc_start_main_main :: in u64 = R0 -00000697: __libc_start_main_arg2 :: in u32 = low:32[R1] -00000698: __libc_start_main_arg3 :: in out u64 = R2 -00000699: __libc_start_main_auxv :: in out u64 = R3 -0000069a: __libc_start_main_result :: out u32 = low:32[R0] - -000002b3: -000004e4: R16 := 0x20000 -000004eb: R17 := mem[R16, el]:u64 -000004f1: R16 := R16 -000004f6: call R17 with noreturn - -00000682: sub _fini(_fini_result) -0000069b: _fini_result :: out u32 = low:32[R0] - -00000020: -00000026: #0 := R31 - 0x10 -0000002c: mem := mem with [#0, el]:u64 <- R29 -00000032: mem := mem with [#0 + 8, el]:u64 <- R30 -00000036: R31 := #0 -0000003c: R29 := R31 -00000043: R29 := mem[R31, el]:u64 -00000048: R30 := mem[R31 + 8, el]:u64 -0000004c: R31 := R31 + 0x10 -00000051: call R30 with noreturn - -00000683: sub _init(_init_result) -0000069c: _init_result :: out u32 = low:32[R0] - -000005bf: -000005c5: #7 := R31 - 0x10 -000005cb: mem := mem with [#7, el]:u64 <- R29 -000005d1: mem := mem with [#7 + 8, el]:u64 <- R30 -000005d5: R31 := #7 -000005db: R29 := R31 -000005e0: R30 := 0x590 -000005e2: call @call_weak_fn with return %000005e4 - -000005e4: -000005e9: R29 := mem[R31, el]:u64 -000005ee: R30 := mem[R31 + 8, el]:u64 -000005f2: R31 := R31 + 0x10 -000005f7: call R30 with noreturn - -00000684: sub _start(_start_result) -0000069d: _start_result :: out u32 = low:32[R0] - -00000274: -00000279: R29 := 0 -0000027e: R30 := 0 -00000284: R5 := R0 -0000028b: R1 := mem[R31, el]:u64 -00000291: R2 := R31 + 8 -00000297: R6 := R31 -0000029c: R0 := 0x1F000 -000002a3: R0 := mem[R0 + 0xFD8, el]:u64 -000002a8: R3 := 0 -000002ad: R4 := 0 -000002b2: R30 := 0x670 -000002b5: call @__libc_start_main with return %000002b7 - -000002b7: -000002ba: R30 := 0x674 -000002bd: call @abort with return %00000685 - -00000685: -00000686: call @call_weak_fn with noreturn - -00000687: sub abort() - - -000002bb: -00000526: R16 := 0x20000 -0000052d: R17 := mem[R16 + 0x18, el]:u64 -00000533: R16 := R16 + 0x18 -00000538: call R17 with noreturn - -00000688: sub bound(bound_result) -0000069e: bound_result :: out u32 = low:32[R0] - -00000211: -00000218: #2 := 31:0[R0] -0000021d: VF := 0 -00000222: CF := pad:33[#2] <> pad:33[31:0[R0]] - 0x100000000 -00000226: ZF := #2 = 0 -0000022a: NF := 31:31[#2] -0000022f: R1 := 0x64 -0000023d: when ZF <> 1 goto %00000235 -0000023e: goto %00000239 - -00000239: -0000023a: R0 := ~R1 + 1 -00000240: goto %0000023c - -00000235: -00000236: R0 := R1 -0000023f: goto %0000023c - -0000023c: -00000245: call R30 with noreturn - -00000689: sub call_weak_fn(call_weak_fn_result) -0000069f: call_weak_fn_result :: out u32 = low:32[R0] - -000002bf: -000002c2: R0 := 0x1F000 -000002c9: R0 := mem[R0 + 0xFD0, el]:u64 -000002cf: when R0 = 0 goto %000002cd -0000068a: goto %00000442 - -000002cd: -000002d5: call R30 with noreturn - -00000442: -00000445: goto @__gmon_start__ - -00000443: -00000510: R16 := 0x20000 -00000517: R17 := mem[R16 + 0x10, el]:u64 -0000051d: R16 := R16 + 0x10 -00000522: call R17 with noreturn - -0000068b: sub deregister_tm_clones(deregister_tm_clones_result) -000006a0: deregister_tm_clones_result :: out u32 = low:32[R0] - -000002e3: -000002e6: R0 := 0x20000 -000002ec: R0 := R0 + 0x30 -000002f1: R1 := 0x20000 -000002f7: R1 := R1 + 0x30 -000002fd: #3 := ~R0 -00000302: #4 := R1 + ~R0 -00000308: VF := extend:65[#4 + 1] <> extend:65[R1] + extend:65[#3] + 1 -0000030e: CF := pad:65[#4 + 1] <> pad:65[R1] + pad:65[#3] + 1 -00000312: ZF := #4 + 1 = 0 -00000316: NF := 63:63[#4 + 1] -0000031c: when ZF goto %0000031a -0000068c: goto %00000424 - -00000424: -00000427: R1 := 0x1F000 -0000042e: R1 := mem[R1 + 0xFC0, el]:u64 -00000433: when R1 = 0 goto %0000031a -0000068d: goto %00000437 - -0000031a: -00000322: call R30 with noreturn - -00000437: -0000043b: R16 := R1 -00000440: call R16 with noreturn - -0000068e: sub frame_dummy(frame_dummy_result) -000006a1: frame_dummy_result :: out u32 = low:32[R0] - -000003b9: -000003bb: call @register_tm_clones with noreturn - -0000068f: sub main(main_argc, main_argv, main_result) -000006a2: main_argc :: in u32 = low:32[R0] -000006a3: main_argv :: in out u64 = R1 -000006a4: main_result :: out u32 = low:32[R0] - -000001e5: -000001e9: #1 := R31 - 0x10 -000001ef: mem := mem with [#1, el]:u64 <- R29 -000001f5: mem := mem with [#1 + 8, el]:u64 <- R30 -000001f9: R31 := #1 -000001fe: R2 := 0x20000 -00000204: R29 := R31 -0000020b: R0 := pad:64[mem[R2 + 0x38, el]:u32] -00000210: R30 := 0x614 -00000213: call @bound with return %00000247 - -00000247: -0000024d: mem := mem with [R2 + 0x38, el]:u64 <- R0 -00000254: R29 := mem[R31, el]:u64 -00000259: R30 := mem[R31 + 8, el]:u64 -0000025d: R31 := R31 + 0x10 -00000262: call R30 with noreturn - -00000690: sub register_tm_clones(register_tm_clones_result) -000006a5: register_tm_clones_result :: out u32 = low:32[R0] - -00000324: -00000327: R0 := 0x20000 -0000032d: R0 := R0 + 0x30 -00000332: R1 := 0x20000 -00000338: R1 := R1 + 0x30 -0000033f: R1 := R1 + ~R0 + 1 -00000345: R2 := 0.63:63[R1] -0000034c: R1 := R2 + (R1 ~>> 3) -00000352: R1 := extend:64[63:1[R1]] -00000358: when R1 = 0 goto %00000356 -00000691: goto %00000406 - -00000406: -00000409: R2 := 0x1F000 -00000410: R2 := mem[R2 + 0xFE0, el]:u64 -00000415: when R2 = 0 goto %00000356 -00000692: goto %00000419 - -00000356: -0000035e: call R30 with noreturn - -00000419: -0000041d: R16 := R2 -00000422: call R16 with noreturn diff --git a/src/test/procedure_summaries/intervals1/gcc_O2/intervals1.gts b/src/test/procedure_summaries/intervals1/gcc_O2/intervals1.gts deleted file mode 100644 index e7ce1cd04..000000000 Binary files a/src/test/procedure_summaries/intervals1/gcc_O2/intervals1.gts and /dev/null differ diff --git a/src/test/procedure_summaries/intervals1/gcc_O2/intervals1.md5sum b/src/test/procedure_summaries/intervals1/gcc_O2/intervals1.md5sum new file mode 100644 index 000000000..62cc979d7 --- /dev/null +++ b/src/test/procedure_summaries/intervals1/gcc_O2/intervals1.md5sum @@ -0,0 +1,5 @@ +63f00b4d7c41225d1a37e6ee2018b1bf procedure_summaries/intervals1/gcc_O2/a.out +0b29a0f7ada788947d2922cd2b782c72 procedure_summaries/intervals1/gcc_O2/intervals1.adt +6a3f4681883aff4def22f858429135be procedure_summaries/intervals1/gcc_O2/intervals1.bir +52053d7b7d58f71726bf60ec1cd0d9c6 procedure_summaries/intervals1/gcc_O2/intervals1.relf +de8db554d7eb4485dc913d4e93b56ced procedure_summaries/intervals1/gcc_O2/intervals1.gts diff --git a/src/test/procedure_summaries/intervals1/gcc_O2/intervals1.relf b/src/test/procedure_summaries/intervals1/gcc_O2/intervals1.relf deleted file mode 100644 index 4b63682df..000000000 --- a/src/test/procedure_summaries/intervals1/gcc_O2/intervals1.relf +++ /dev/null @@ -1,126 +0,0 @@ - -Relocation section '.rela.dyn' at offset 0x460 contains 8 entries: - Offset Info Type Symbol's Value Symbol's Name + Addend -000000000001fdc8 0000000000000403 R_AARCH64_RELATIVE 760 -000000000001fdd0 0000000000000403 R_AARCH64_RELATIVE 70c -000000000001ffd8 0000000000000403 R_AARCH64_RELATIVE 600 -0000000000020028 0000000000000403 R_AARCH64_RELATIVE 20028 -000000000001ffc0 0000000400000401 R_AARCH64_GLOB_DAT 0000000000000000 _ITM_deregisterTMCloneTable + 0 -000000000001ffc8 0000000500000401 R_AARCH64_GLOB_DAT 0000000000000000 __cxa_finalize@GLIBC_2.17 + 0 -000000000001ffd0 0000000600000401 R_AARCH64_GLOB_DAT 0000000000000000 __gmon_start__ + 0 -000000000001ffe0 0000000800000401 R_AARCH64_GLOB_DAT 0000000000000000 _ITM_registerTMCloneTable + 0 - -Relocation section '.rela.plt' at offset 0x520 contains 4 entries: - Offset Info Type Symbol's Value Symbol's Name + Addend -0000000000020000 0000000300000402 R_AARCH64_JUMP_SLOT 0000000000000000 __libc_start_main@GLIBC_2.34 + 0 -0000000000020008 0000000500000402 R_AARCH64_JUMP_SLOT 0000000000000000 __cxa_finalize@GLIBC_2.17 + 0 -0000000000020010 0000000600000402 R_AARCH64_JUMP_SLOT 0000000000000000 __gmon_start__ + 0 -0000000000020018 0000000700000402 R_AARCH64_JUMP_SLOT 0000000000000000 abort@GLIBC_2.17 + 0 - -Symbol table '.dynsym' contains 9 entries: - Num: Value Size Type Bind Vis Ndx Name - 0: 0000000000000000 0 NOTYPE LOCAL DEFAULT UND - 1: 0000000000000580 0 SECTION LOCAL DEFAULT 11 .init - 2: 0000000000020020 0 SECTION LOCAL DEFAULT 23 .data - 3: 0000000000000000 0 FUNC GLOBAL DEFAULT UND __libc_start_main@GLIBC_2.34 (2) - 4: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_deregisterTMCloneTable - 5: 0000000000000000 0 FUNC WEAK DEFAULT UND __cxa_finalize@GLIBC_2.17 (3) - 6: 0000000000000000 0 NOTYPE WEAK DEFAULT UND __gmon_start__ - 7: 0000000000000000 0 FUNC GLOBAL DEFAULT UND abort@GLIBC_2.17 (3) - 8: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_registerTMCloneTable - -Symbol table '.symtab' contains 93 entries: - Num: Value Size Type Bind Vis Ndx Name - 0: 0000000000000000 0 NOTYPE LOCAL DEFAULT UND - 1: 0000000000000238 0 SECTION LOCAL DEFAULT 1 .interp - 2: 0000000000000254 0 SECTION LOCAL DEFAULT 2 .note.gnu.build-id - 3: 0000000000000278 0 SECTION LOCAL DEFAULT 3 .note.ABI-tag - 4: 0000000000000298 0 SECTION LOCAL DEFAULT 4 .gnu.hash - 5: 00000000000002b8 0 SECTION LOCAL DEFAULT 5 .dynsym - 6: 0000000000000390 0 SECTION LOCAL DEFAULT 6 .dynstr - 7: 000000000000041e 0 SECTION LOCAL DEFAULT 7 .gnu.version - 8: 0000000000000430 0 SECTION LOCAL DEFAULT 8 .gnu.version_r - 9: 0000000000000460 0 SECTION LOCAL DEFAULT 9 .rela.dyn - 10: 0000000000000520 0 SECTION LOCAL DEFAULT 10 .rela.plt - 11: 0000000000000580 0 SECTION LOCAL DEFAULT 11 .init - 12: 00000000000005a0 0 SECTION LOCAL DEFAULT 12 .plt - 13: 0000000000000600 0 SECTION LOCAL DEFAULT 13 .text - 14: 0000000000000790 0 SECTION LOCAL DEFAULT 14 .fini - 15: 00000000000007a4 0 SECTION LOCAL DEFAULT 15 .rodata - 16: 00000000000007a8 0 SECTION LOCAL DEFAULT 16 .eh_frame_hdr - 17: 00000000000007f0 0 SECTION LOCAL DEFAULT 17 .eh_frame - 18: 000000000001fdc8 0 SECTION LOCAL DEFAULT 18 .init_array - 19: 000000000001fdd0 0 SECTION LOCAL DEFAULT 19 .fini_array - 20: 000000000001fdd8 0 SECTION LOCAL DEFAULT 20 .dynamic - 21: 000000000001ffb8 0 SECTION LOCAL DEFAULT 21 .got - 22: 000000000001ffe8 0 SECTION LOCAL DEFAULT 22 .got.plt - 23: 0000000000020020 0 SECTION LOCAL DEFAULT 23 .data - 24: 0000000000020030 0 SECTION LOCAL DEFAULT 24 .bss - 25: 0000000000000000 0 SECTION LOCAL DEFAULT 25 .comment - 26: 0000000000000000 0 FILE LOCAL DEFAULT ABS abi-note.c - 27: 0000000000000278 0 NOTYPE LOCAL DEFAULT 3 $d - 28: 0000000000000278 32 OBJECT LOCAL DEFAULT 3 __abi_tag - 29: 0000000000000000 0 FILE LOCAL DEFAULT ABS start.os - 30: 0000000000000640 0 NOTYPE LOCAL DEFAULT 13 $x - 31: 0000000000000804 0 NOTYPE LOCAL DEFAULT 17 $d - 32: 0000000000000000 0 FILE LOCAL DEFAULT ABS init.c - 33: 00000000000007a4 0 NOTYPE LOCAL DEFAULT 15 $d - 34: 0000000000000000 0 FILE LOCAL DEFAULT ABS crti.o - 35: 0000000000000674 0 NOTYPE LOCAL DEFAULT 13 $x - 36: 0000000000000674 20 FUNC LOCAL DEFAULT 13 call_weak_fn - 37: 0000000000000580 0 NOTYPE LOCAL DEFAULT 11 $x - 38: 0000000000000790 0 NOTYPE LOCAL DEFAULT 14 $x - 39: 0000000000000000 0 FILE LOCAL DEFAULT ABS crtn.o - 40: 0000000000000590 0 NOTYPE LOCAL DEFAULT 11 $x - 41: 000000000000079c 0 NOTYPE LOCAL DEFAULT 14 $x - 42: 0000000000000000 0 FILE LOCAL DEFAULT ABS intervals1.c - 43: 0000000000000780 0 NOTYPE LOCAL DEFAULT 13 $x - 44: 0000000000000600 0 NOTYPE LOCAL DEFAULT 13 $x - 45: 0000000000020038 0 NOTYPE LOCAL DEFAULT 24 $d - 46: 0000000000000878 0 NOTYPE LOCAL DEFAULT 17 $d - 47: 0000000000000000 0 FILE LOCAL DEFAULT ABS crtstuff.c - 48: 00000000000006a0 0 NOTYPE LOCAL DEFAULT 13 $x - 49: 00000000000006a0 0 FUNC LOCAL DEFAULT 13 deregister_tm_clones - 50: 00000000000006d0 0 FUNC LOCAL DEFAULT 13 register_tm_clones - 51: 0000000000020028 0 NOTYPE LOCAL DEFAULT 23 $d - 52: 000000000000070c 0 FUNC LOCAL DEFAULT 13 __do_global_dtors_aux - 53: 0000000000020030 1 OBJECT LOCAL DEFAULT 24 completed.0 - 54: 000000000001fdd0 0 NOTYPE LOCAL DEFAULT 19 $d - 55: 000000000001fdd0 0 OBJECT LOCAL DEFAULT 19 __do_global_dtors_aux_fini_array_entry - 56: 0000000000000760 0 FUNC LOCAL DEFAULT 13 frame_dummy - 57: 000000000001fdc8 0 NOTYPE LOCAL DEFAULT 18 $d - 58: 000000000001fdc8 0 OBJECT LOCAL DEFAULT 18 __frame_dummy_init_array_entry - 59: 0000000000000818 0 NOTYPE LOCAL DEFAULT 17 $d - 60: 0000000000020030 0 NOTYPE LOCAL DEFAULT 24 $d - 61: 0000000000000000 0 FILE LOCAL DEFAULT ABS crtstuff.c - 62: 00000000000008ac 0 NOTYPE LOCAL DEFAULT 17 $d - 63: 00000000000008ac 0 OBJECT LOCAL DEFAULT 17 __FRAME_END__ - 64: 0000000000000000 0 FILE LOCAL DEFAULT ABS - 65: 000000000001fdd8 0 OBJECT LOCAL DEFAULT ABS _DYNAMIC - 66: 00000000000007a8 0 NOTYPE LOCAL DEFAULT 16 __GNU_EH_FRAME_HDR - 67: 000000000001ffb8 0 OBJECT LOCAL DEFAULT ABS _GLOBAL_OFFSET_TABLE_ - 68: 00000000000005a0 0 NOTYPE LOCAL DEFAULT 12 $x - 69: 0000000000000000 0 FUNC GLOBAL DEFAULT UND __libc_start_main@GLIBC_2.34 - 70: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_deregisterTMCloneTable - 71: 0000000000020020 0 NOTYPE WEAK DEFAULT 23 data_start - 72: 0000000000020030 0 NOTYPE GLOBAL DEFAULT 24 __bss_start__ - 73: 0000000000000000 0 FUNC WEAK DEFAULT UND __cxa_finalize@GLIBC_2.17 - 74: 0000000000020040 0 NOTYPE GLOBAL DEFAULT 24 _bss_end__ - 75: 0000000000020030 0 NOTYPE GLOBAL DEFAULT 23 _edata - 76: 0000000000020038 8 OBJECT GLOBAL DEFAULT 24 x - 77: 0000000000000790 0 FUNC GLOBAL HIDDEN 14 _fini - 78: 0000000000020040 0 NOTYPE GLOBAL DEFAULT 24 __bss_end__ - 79: 0000000000020020 0 NOTYPE GLOBAL DEFAULT 23 __data_start - 80: 0000000000000000 0 NOTYPE WEAK DEFAULT UND __gmon_start__ - 81: 0000000000020028 0 OBJECT GLOBAL HIDDEN 23 __dso_handle - 82: 0000000000000000 0 FUNC GLOBAL DEFAULT UND abort@GLIBC_2.17 - 83: 00000000000007a4 4 OBJECT GLOBAL DEFAULT 15 _IO_stdin_used - 84: 0000000000020040 0 NOTYPE GLOBAL DEFAULT 24 _end - 85: 0000000000000640 52 FUNC GLOBAL DEFAULT 13 _start - 86: 0000000000020040 0 NOTYPE GLOBAL DEFAULT 24 __end__ - 87: 0000000000020030 0 NOTYPE GLOBAL DEFAULT 24 __bss_start - 88: 0000000000000600 32 FUNC GLOBAL DEFAULT 13 main - 89: 0000000000020030 0 OBJECT GLOBAL HIDDEN 23 __TMC_END__ - 90: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_registerTMCloneTable - 91: 0000000000000780 16 FUNC GLOBAL DEFAULT 13 bound - 92: 0000000000000580 0 FUNC GLOBAL HIDDEN 11 _init diff --git a/src/test/procedure_summaries/intervals2/gcc_O2/intervals2.adt b/src/test/procedure_summaries/intervals2/gcc_O2/intervals2.adt deleted file mode 100644 index 06d3f8b19..000000000 --- a/src/test/procedure_summaries/intervals2/gcc_O2/intervals2.adt +++ /dev/null @@ -1,562 +0,0 @@ -Project(Attrs([Attr("filename","\"a.out\""), -Attr("image-specification","(declare abi (name str))\n(declare arch (name str))\n(declare base-address (addr int))\n(declare bias (off int))\n(declare bits (size int))\n(declare code-region (addr int) (size int) (off int))\n(declare code-start (addr int))\n(declare entry-point (addr int))\n(declare external-reference (addr int) (name str))\n(declare format (name str))\n(declare is-executable (flag bool))\n(declare is-little-endian (flag bool))\n(declare llvm:base-address (addr int))\n(declare llvm:code-entry (name str) (off int) (size int))\n(declare llvm:coff-import-library (name str))\n(declare llvm:coff-virtual-section-header (name str) (addr int) (size int))\n(declare llvm:elf-program-header (name str) (off int) (size int))\n(declare llvm:elf-program-header-flags (name str) (ld bool) (r bool) \n (w bool) (x bool))\n(declare llvm:elf-virtual-program-header (name str) (addr int) (size int))\n(declare llvm:entry-point (addr int))\n(declare llvm:macho-symbol (name str) (value int))\n(declare llvm:name-reference (at int) (name str))\n(declare llvm:relocation (at int) (addr int))\n(declare llvm:section-entry (name str) (addr int) (size int) (off int))\n(declare llvm:section-flags (name str) (r bool) (w bool) (x bool))\n(declare llvm:segment-command (name str) (off int) (size int))\n(declare llvm:segment-command-flags (name str) (r bool) (w bool) (x bool))\n(declare llvm:symbol-entry (name str) (addr int) (size int) (off int)\n (value int))\n(declare llvm:virtual-segment-command (name str) (addr int) (size int))\n(declare mapped (addr int) (size int) (off int))\n(declare named-region (addr int) (size int) (name str))\n(declare named-symbol (addr int) (name str))\n(declare require (name str))\n(declare section (addr int) (size int))\n(declare segment (addr int) (size int) (r bool) (w bool) (x bool))\n(declare subarch (name str))\n(declare symbol-chunk (addr int) (size int) (root int))\n(declare symbol-value (addr int) (value int))\n(declare system (name str))\n(declare vendor (name str))\n\n(abi unknown)\n(arch aarch64)\n(base-address 0)\n(bias 0)\n(bits 64)\n(code-region 1936 20 1936)\n(code-region 1536 400 1536)\n(code-region 1440 96 1440)\n(code-region 1408 24 1408)\n(code-start 1652)\n(code-start 1600)\n(code-start 1536)\n(code-start 1920)\n(entry-point 1600)\n(external-reference 131008 _ITM_deregisterTMCloneTable)\n(external-reference 131016 __cxa_finalize)\n(external-reference 131024 __gmon_start__)\n(external-reference 131040 _ITM_registerTMCloneTable)\n(external-reference 131072 __libc_start_main)\n(external-reference 131080 __cxa_finalize)\n(external-reference 131088 __gmon_start__)\n(external-reference 131096 abort)\n(format elf)\n(is-executable true)\n(is-little-endian true)\n(llvm:base-address 0)\n(llvm:code-entry abort 0 0)\n(llvm:code-entry __cxa_finalize 0 0)\n(llvm:code-entry __libc_start_main 0 0)\n(llvm:code-entry _init 1408 0)\n(llvm:code-entry bound 1920 16)\n(llvm:code-entry main 1536 32)\n(llvm:code-entry _start 1600 52)\n(llvm:code-entry abort@GLIBC_2.17 0 0)\n(llvm:code-entry _fini 1936 0)\n(llvm:code-entry __cxa_finalize@GLIBC_2.17 0 0)\n(llvm:code-entry __libc_start_main@GLIBC_2.34 0 0)\n(llvm:code-entry frame_dummy 1888 0)\n(llvm:code-entry __do_global_dtors_aux 1804 0)\n(llvm:code-entry register_tm_clones 1744 0)\n(llvm:code-entry deregister_tm_clones 1696 0)\n(llvm:code-entry call_weak_fn 1652 20)\n(llvm:code-entry .fini 1936 20)\n(llvm:code-entry .text 1536 400)\n(llvm:code-entry .plt 1440 96)\n(llvm:code-entry .init 1408 24)\n(llvm:elf-program-header 08 64968 568)\n(llvm:elf-program-header 07 0 0)\n(llvm:elf-program-header 06 1960 68)\n(llvm:elf-program-header 05 596 68)\n(llvm:elf-program-header 04 64984 480)\n(llvm:elf-program-header 03 64968 616)\n(llvm:elf-program-header 02 0 2224)\n(llvm:elf-program-header 01 568 27)\n(llvm:elf-program-header 00 64 504)\n(llvm:elf-program-header-flags 08 false true false false)\n(llvm:elf-program-header-flags 07 false true true false)\n(llvm:elf-program-header-flags 06 false true false false)\n(llvm:elf-program-header-flags 05 false true false false)\n(llvm:elf-program-header-flags 04 false true true false)\n(llvm:elf-program-header-flags 03 true true true false)\n(llvm:elf-program-header-flags 02 true true false true)\n(llvm:elf-program-header-flags 01 false true false false)\n(llvm:elf-program-header-flags 00 false true false false)\n(llvm:elf-virtual-program-header 08 130504 568)\n(llvm:elf-virtual-program-header 07 0 0)\n(llvm:elf-virtual-program-header 06 1960 68)\n(llvm:elf-virtual-program-header 05 596 68)\n(llvm:elf-virtual-program-header 04 130520 480)\n(llvm:elf-virtual-program-header 03 130504 632)\n(llvm:elf-virtual-program-header 02 0 2224)\n(llvm:elf-virtual-program-header 01 568 27)\n(llvm:elf-virtual-program-header 00 64 504)\n(llvm:entry-point 1600)\n(llvm:name-reference 131096 abort)\n(llvm:name-reference 131088 __gmon_start__)\n(llvm:name-reference 131080 __cxa_finalize)\n(llvm:name-reference 131072 __libc_start_main)\n(llvm:name-reference 131040 _ITM_registerTMCloneTable)\n(llvm:name-reference 131024 __gmon_start__)\n(llvm:name-reference 131016 __cxa_finalize)\n(llvm:name-reference 131008 _ITM_deregisterTMCloneTable)\n(llvm:section-entry .shstrtab 0 259 68411)\n(llvm:section-entry .strtab 0 571 67840)\n(llvm:section-entry .symtab 0 2232 65608)\n(llvm:section-entry .comment 0 18 65584)\n(llvm:section-entry .bss 131120 16 65584)\n(llvm:section-entry .data 131104 16 65568)\n(llvm:section-entry .got.plt 131048 56 65512)\n(llvm:section-entry .got 131000 48 65464)\n(llvm:section-entry .dynamic 130520 480 64984)\n(llvm:section-entry .fini_array 130512 8 64976)\n(llvm:section-entry .init_array 130504 8 64968)\n(llvm:section-entry .eh_frame 2032 192 2032)\n(llvm:section-entry .eh_frame_hdr 1960 68 1960)\n(llvm:section-entry .rodata 1956 4 1956)\n(llvm:section-entry .fini 1936 20 1936)\n(llvm:section-entry .text 1536 400 1536)\n(llvm:section-entry .plt 1440 96 1440)\n(llvm:section-entry .init 1408 24 1408)\n(llvm:section-entry .rela.plt 1312 96 1312)\n(llvm:section-entry .rela.dyn 1120 192 1120)\n(llvm:section-entry .gnu.version_r 1072 48 1072)\n(llvm:section-entry .gnu.version 1054 18 1054)\n(llvm:section-entry .dynstr 912 141 912)\n(llvm:section-entry .dynsym 696 216 696)\n(llvm:section-entry .gnu.hash 664 28 664)\n(llvm:section-entry .note.ABI-tag 632 32 632)\n(llvm:section-entry .note.gnu.build-id 596 36 596)\n(llvm:section-entry .interp 568 27 568)\n(llvm:section-flags .shstrtab true false false)\n(llvm:section-flags .strtab true false false)\n(llvm:section-flags .symtab true false false)\n(llvm:section-flags .comment true false false)\n(llvm:section-flags .bss true true false)\n(llvm:section-flags .data true true false)\n(llvm:section-flags .got.plt true true false)\n(llvm:section-flags .got true true false)\n(llvm:section-flags .dynamic true true false)\n(llvm:section-flags .fini_array true true false)\n(llvm:section-flags .init_array true true false)\n(llvm:section-flags .eh_frame true false false)\n(llvm:section-flags .eh_frame_hdr true false false)\n(llvm:section-flags .rodata true false false)\n(llvm:section-flags .fini true false true)\n(llvm:section-flags .text true false true)\n(llvm:section-flags .plt true false true)\n(llvm:section-flags .init true false true)\n(llvm:section-flags .rela.plt true false false)\n(llvm:section-flags .rela.dyn true false false)\n(llvm:section-flags .gnu.version_r true false false)\n(llvm:section-flags .gnu.version true false false)\n(llvm:section-flags .dynstr true false false)\n(llvm:section-flags .dynsym true false false)\n(llvm:section-flags .gnu.hash true false false)\n(llvm:section-flags .note.ABI-tag true false false)\n(llvm:section-flags .note.gnu.build-id true false false)\n(llvm:section-flags .interp true false false)\n(llvm:symbol-entry abort 0 0 0 0)\n(llvm:symbol-entry __cxa_finalize 0 0 0 0)\n(llvm:symbol-entry __libc_start_main 0 0 0 0)\n(llvm:symbol-entry _init 1408 0 1408 1408)\n(llvm:symbol-entry bound 1920 16 1920 1920)\n(llvm:symbol-entry main 1536 32 1536 1536)\n(llvm:symbol-entry _start 1600 52 1600 1600)\n(llvm:symbol-entry abort@GLIBC_2.17 0 0 0 0)\n(llvm:symbol-entry _fini 1936 0 1936 1936)\n(llvm:symbol-entry __cxa_finalize@GLIBC_2.17 0 0 0 0)\n(llvm:symbol-entry __libc_start_main@GLIBC_2.34 0 0 0 0)\n(llvm:symbol-entry frame_dummy 1888 0 1888 1888)\n(llvm:symbol-entry __do_global_dtors_aux 1804 0 1804 1804)\n(llvm:symbol-entry register_tm_clones 1744 0 1744 1744)\n(llvm:symbol-entry deregister_tm_clones 1696 0 1696 1696)\n(llvm:symbol-entry call_weak_fn 1652 20 1652 1652)\n(mapped 0 2224 0)\n(mapped 130504 616 64968)\n(named-region 0 2224 02)\n(named-region 130504 632 03)\n(named-region 568 27 .interp)\n(named-region 596 36 .note.gnu.build-id)\n(named-region 632 32 .note.ABI-tag)\n(named-region 664 28 .gnu.hash)\n(named-region 696 216 .dynsym)\n(named-region 912 141 .dynstr)\n(named-region 1054 18 .gnu.version)\n(named-region 1072 48 .gnu.version_r)\n(named-region 1120 192 .rela.dyn)\n(named-region 1312 96 .rela.plt)\n(named-region 1408 24 .init)\n(named-region 1440 96 .plt)\n(named-region 1536 400 .text)\n(named-region 1936 20 .fini)\n(named-region 1956 4 .rodata)\n(named-region 1960 68 .eh_frame_hdr)\n(named-region 2032 192 .eh_frame)\n(named-region 130504 8 .init_array)\n(named-region 130512 8 .fini_array)\n(named-region 130520 480 .dynamic)\n(named-region 131000 48 .got)\n(named-region 131048 56 .got.plt)\n(named-region 131104 16 .data)\n(named-region 131120 16 .bss)\n(named-region 0 18 .comment)\n(named-region 0 2232 .symtab)\n(named-region 0 571 .strtab)\n(named-region 0 259 .shstrtab)\n(named-symbol 1652 call_weak_fn)\n(named-symbol 1696 deregister_tm_clones)\n(named-symbol 1744 register_tm_clones)\n(named-symbol 1804 __do_global_dtors_aux)\n(named-symbol 1888 frame_dummy)\n(named-symbol 0 __libc_start_main@GLIBC_2.34)\n(named-symbol 0 __cxa_finalize@GLIBC_2.17)\n(named-symbol 1936 _fini)\n(named-symbol 0 abort@GLIBC_2.17)\n(named-symbol 1600 _start)\n(named-symbol 1536 main)\n(named-symbol 1920 bound)\n(named-symbol 1408 _init)\n(named-symbol 0 __libc_start_main)\n(named-symbol 0 __cxa_finalize)\n(named-symbol 0 abort)\n(require libc.so.6)\n(section 568 27)\n(section 596 36)\n(section 632 32)\n(section 664 28)\n(section 696 216)\n(section 912 141)\n(section 1054 18)\n(section 1072 48)\n(section 1120 192)\n(section 1312 96)\n(section 1408 24)\n(section 1440 96)\n(section 1536 400)\n(section 1936 20)\n(section 1956 4)\n(section 1960 68)\n(section 2032 192)\n(section 130504 8)\n(section 130512 8)\n(section 130520 480)\n(section 131000 48)\n(section 131048 56)\n(section 131104 16)\n(section 131120 16)\n(section 0 18)\n(section 0 2232)\n(section 0 571)\n(section 0 259)\n(segment 0 2224 true false true)\n(segment 130504 632 true true false)\n(subarch v8)\n(symbol-chunk 1652 20 1652)\n(symbol-chunk 1600 52 1600)\n(symbol-chunk 1536 32 1536)\n(symbol-chunk 1920 16 1920)\n(symbol-value 1652 1652)\n(symbol-value 1696 1696)\n(symbol-value 1744 1744)\n(symbol-value 1804 1804)\n(symbol-value 1888 1888)\n(symbol-value 1936 1936)\n(symbol-value 1600 1600)\n(symbol-value 1536 1536)\n(symbol-value 1920 1920)\n(symbol-value 1408 1408)\n(symbol-value 0 0)\n(system \"\")\n(vendor \"\")\n"), -Attr("abi-name","\"aarch64-linux-gnu-elf\"")]), -Sections([Section(".shstrtab", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x40\x06\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x0c\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x38\x00\x09\x00\x40\x00\x1d\x00\x1c\x00\x06\x00\x00\x00\x04\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x04\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xb0\x08\x00\x00\x00\x00\x00\x00\xb0\x08\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x01\x00\x00\x00\x06\x00\x00\x00\xc8\xfd\x00\x00\x00\x00\x00\x00\xc8\xfd\x01\x00\x00\x00\x00\x00\xc8\xfd\x01"), -Section(".strtab", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x40\x06\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x0c\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x38\x00\x09\x00\x40\x00\x1d\x00\x1c\x00\x06\x00\x00\x00\x04\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x04\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xb0\x08\x00\x00\x00\x00\x00\x00\xb0\x08\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x01\x00\x00\x00\x06\x00\x00\x00\xc8\xfd\x00\x00\x00\x00\x00\x00\xc8\xfd\x01\x00\x00\x00\x00\x00\xc8\xfd\x01\x00\x00\x00\x00\x00\x68\x02\x00\x00\x00\x00\x00\x00\x78\x02\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x02\x00\x00\x00\x06\x00\x00\x00\xd8\xfd\x00\x00\x00\x00\x00\x00\xd8\xfd\x01\x00\x00\x00\x00\x00\xd8\xfd\x01\x00\x00\x00\x00\x00\xe0\x01\x00\x00\x00\x00\x00\x00\xe0\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x04\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x50\xe5\x74\x64\x04\x00\x00\x00\xa8\x07\x00\x00\x00\x00\x00\x00\xa8\x07\x00\x00\x00\x00\x00\x00\xa8\x07\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x51\xe5\x74\x64\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x52\xe5\x74\x64\x04\x00\x00\x00\xc8\xfd\x00\x00\x00\x00\x00\x00\xc8\xfd\x01\x00\x00\x00\x00\x00\xc8\xfd\x01\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x2f\x6c\x69"), -Section(".comment", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00"), -Section(".interp", 0x238, "\x2f\x6c\x69\x62\x2f\x6c\x64\x2d\x6c\x69\x6e\x75\x78\x2d\x61\x61\x72\x63\x68\x36\x34\x2e\x73\x6f\x2e\x31\x00"), -Section(".note.gnu.build-id", 0x254, "\x04\x00\x00\x00\x14\x00\x00\x00\x03\x00\x00\x00\x47\x4e\x55\x00\xd9\x63\xb1\x84\x86\x87\xb4\xba\xd9\x51\xf8\xd4\x96\xf5\x5c\x9c\xf8\x97\x61\x24"), -Section(".note.ABI-tag", 0x278, "\x04\x00\x00\x00\x10\x00\x00\x00\x01\x00\x00\x00\x47\x4e\x55\x00\x00\x00\x00\x00\x03\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00"), -Section(".gnu.hash", 0x298, "\x01\x00\x00\x00\x01\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".dynsym", 0x2B8, "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x0b\x00\x80\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x17\x00\x20\x00\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x48\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x13\x00\x00\x00\x22\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x22\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x73\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".dynstr", 0x390, "\x00\x5f\x5f\x6c\x69\x62\x63\x5f\x73\x74\x61\x72\x74\x5f\x6d\x61\x69\x6e\x00\x5f\x5f\x63\x78\x61\x5f\x66\x69\x6e\x61\x6c\x69\x7a\x65\x00\x61\x62\x6f\x72\x74\x00\x6c\x69\x62\x63\x2e\x73\x6f\x2e\x36\x00\x47\x4c\x49\x42\x43\x5f\x32\x2e\x31\x37\x00\x47\x4c\x49\x42\x43\x5f\x32\x2e\x33\x34\x00\x5f\x49\x54\x4d\x5f\x64\x65\x72\x65\x67\x69\x73\x74\x65\x72\x54\x4d\x43\x6c\x6f\x6e\x65\x54\x61\x62\x6c\x65\x00\x5f\x5f\x67\x6d\x6f\x6e\x5f\x73\x74\x61\x72\x74\x5f\x5f\x00\x5f\x49\x54\x4d\x5f\x72\x65\x67\x69\x73\x74\x65\x72\x54\x4d\x43\x6c\x6f\x6e\x65\x54\x61\x62\x6c\x65\x00"), -Section(".gnu.version", 0x41E, "\x00\x00\x00\x00\x00\x00\x02\x00\x01\x00\x03\x00\x01\x00\x03\x00\x01\x00"), -Section(".gnu.version_r", 0x430, "\x01\x00\x02\x00\x28\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x97\x91\x96\x06\x00\x00\x03\x00\x32\x00\x00\x00\x10\x00\x00\x00\xb4\x91\x96\x06\x00\x00\x02\x00\x3d\x00\x00\x00\x00\x00\x00\x00"), -Section(".rela.dyn", 0x460, "\xc8\xfd\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x60\x07\x00\x00\x00\x00\x00\x00\xd0\xfd\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x0c\x07\x00\x00\x00\x00\x00\x00\xd8\xff\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x00\x06\x00\x00\x00\x00\x00\x00\x28\x00\x02\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x28\x00\x02\x00\x00\x00\x00\x00\xc0\xff\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xc8\xff\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xd0\xff\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe0\xff\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".rela.plt", 0x520, "\x00\x00\x02\x00\x00\x00\x00\x00\x02\x04\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x08\x00\x02\x00\x00\x00\x00\x00\x02\x04\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x02\x00\x00\x00\x00\x00\x02\x04\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x18\x00\x02\x00\x00\x00\x00\x00\x02\x04\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".init", 0x580, "\x1f\x20\x03\xd5\xfd\x7b\xbf\xa9\xfd\x03\x00\x91\x3a\x00\x00\x94\xfd\x7b\xc1\xa8\xc0\x03\x5f\xd6"), -Section(".plt", 0x5A0, "\xf0\x7b\xbf\xa9\xf0\x00\x00\xf0\x11\xfe\x47\xf9\x10\xe2\x3f\x91\x20\x02\x1f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x10\x01\x00\x90\x11\x02\x40\xf9\x10\x02\x00\x91\x20\x02\x1f\xd6\x10\x01\x00\x90\x11\x06\x40\xf9\x10\x22\x00\x91\x20\x02\x1f\xd6\x10\x01\x00\x90\x11\x0a\x40\xf9\x10\x42\x00\x91\x20\x02\x1f\xd6\x10\x01\x00\x90\x11\x0e\x40\xf9\x10\x62\x00\x91\x20\x02\x1f\xd6"), -Section(".text", 0x600, "\xfd\x7b\xbf\xa9\x02\x01\x00\x90\x00\x00\x80\xd2\xfd\x03\x00\x91\x5c\x00\x00\x94\xfd\x7b\xc1\xa8\x40\x1c\x00\xf9\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1d\x00\x80\xd2\x1e\x00\x80\xd2\xe5\x03\x00\xaa\xe1\x03\x40\xf9\xe2\x23\x00\x91\xe6\x03\x00\x91\xe0\x00\x00\xf0\x00\xec\x47\xf9\x03\x00\x80\xd2\x04\x00\x80\xd2\xd5\xff\xff\x97\xe0\xff\xff\x97\xe0\x00\x00\xf0\x00\xe8\x47\xf9\x40\x00\x00\xb4\xd8\xff\xff\x17\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x00\x01\x00\x90\x00\xc0\x00\x91\x01\x01\x00\x90\x21\xc0\x00\x91\x3f\x00\x00\xeb\xc0\x00\x00\x54\xe1\x00\x00\xf0\x21\xe0\x47\xf9\x61\x00\x00\xb4\xf0\x03\x01\xaa\x00\x02\x1f\xd6\xc0\x03\x5f\xd6\x00\x01\x00\x90\x00\xc0\x00\x91\x01\x01\x00\x90\x21\xc0\x00\x91\x21\x00\x00\xcb\x22\xfc\x7f\xd3\x41\x0c\x81\x8b\x21\xfc\x41\x93\xc1\x00\x00\xb4\xe2\x00\x00\xf0\x42\xf0\x47\xf9\x62\x00\x00\xb4\xf0\x03\x02\xaa\x00\x02\x1f\xd6\xc0\x03\x5f\xd6\xfd\x7b\xbe\xa9\xfd\x03\x00\x91\xf3\x0b\x00\xf9\x13\x01\x00\x90\x60\xc2\x40\x39\x40\x01\x00\x37\xe0\x00\x00\xf0\x00\xe4\x47\xf9\x80\x00\x00\xb4\x00\x01\x00\x90\x00\x14\x40\xf9\xa6\xff\xff\x97\xd9\xff\xff\x97\x20\x00\x80\x52\x60\xc2\x00\x39\xf3\x0b\x40\xf9\xfd\x7b\xc2\xa8\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\xdc\xff\xff\x17\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x81\x0c\x80\xd2\x1f\x00\x01\xeb\x00\xa0\x81\x9a\xc0\x03\x5f\xd6"), -Section(".fini", 0x790, "\x1f\x20\x03\xd5\xfd\x7b\xbf\xa9\xfd\x03\x00\x91\xfd\x7b\xc1\xa8\xc0\x03\x5f\xd6"), -Section(".rodata", 0x7A4, "\x01\x00\x02\x00"), -Section(".eh_frame_hdr", 0x7A8, "\x01\x1b\x03\x3b\x44\x00\x00\x00\x07\x00\x00\x00\x58\xfe\xff\xff\xe4\x00\x00\x00\x98\xfe\xff\xff\x5c\x00\x00\x00\xf8\xfe\xff\xff\x70\x00\x00\x00\x28\xff\xff\xff\x84\x00\x00\x00\x64\xff\xff\xff\x98\x00\x00\x00\xb8\xff\xff\xff\xbc\x00\x00\x00\xd8\xff\xff\xff\xd0\x00\x00\x00"), -Section(".eh_frame", 0x7F0, "\x10\x00\x00\x00\x00\x00\x00\x00\x01\x7a\x52\x00\x04\x78\x1e\x01\x1b\x0c\x1f\x00\x10\x00\x00\x00\x18\x00\x00\x00\x34\xfe\xff\xff\x34\x00\x00\x00\x00\x41\x07\x1e\x10\x00\x00\x00\x2c\x00\x00\x00\x80\xfe\xff\xff\x30\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x40\x00\x00\x00\x9c\xfe\xff\xff\x3c\x00\x00\x00\x00\x00\x00\x00\x20\x00\x00\x00\x54\x00\x00\x00\xc4\xfe\xff\xff\x48\x00\x00\x00\x00\x41\x0e\x20\x9d\x04\x9e\x03\x42\x93\x02\x4e\xde\xdd\xd3\x0e\x00\x00\x00\x00\x10\x00\x00\x00\x78\x00\x00\x00\xf4\xfe\xff\xff\x04\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x8c\x00\x00\x00\x00\xff\xff\xff\x10\x00\x00\x00\x00\x00\x00\x00\x1c\x00\x00\x00\xa0\x00\x00\x00\x6c\xfd\xff\xff\x20\x00\x00\x00\x00\x41\x0e\x10\x9d\x02\x9e\x01\x45\xde\xdd\x0e\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".fini_array", 0x1FDD0, "\x0c\x07\x00\x00\x00\x00\x00\x00"), -Section(".dynamic", 0x1FDD8, "\x01\x00\x00\x00\x00\x00\x00\x00\x28\x00\x00\x00\x00\x00\x00\x00\x0c\x00\x00\x00\x00\x00\x00\x00\x80\x05\x00\x00\x00\x00\x00\x00\x0d\x00\x00\x00\x00\x00\x00\x00\x90\x07\x00\x00\x00\x00\x00\x00\x19\x00\x00\x00\x00\x00\x00\x00\xc8\xfd\x01\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x1a\x00\x00\x00\x00\x00\x00\x00\xd0\xfd\x01\x00\x00\x00\x00\x00\x1c\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\xf5\xfe\xff\x6f\x00\x00\x00\x00\x98\x02\x00\x00\x00\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x90\x03\x00\x00\x00\x00\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\xb8\x02\x00\x00\x00\x00\x00\x00\x0a\x00\x00\x00\x00\x00\x00\x00\x8d\x00\x00\x00\x00\x00\x00\x00\x0b\x00\x00\x00\x00\x00\x00\x00\x18\x00\x00\x00\x00\x00\x00\x00\x15\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\xe8\xff\x01\x00\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x60\x00\x00\x00\x00\x00\x00\x00\x14\x00\x00\x00\x00\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x17\x00\x00\x00\x00\x00\x00\x00\x20\x05\x00\x00\x00\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x60\x04\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\xc0\x00\x00\x00\x00\x00\x00\x00\x09\x00\x00\x00\x00\x00\x00\x00\x18\x00\x00\x00\x00\x00\x00\x00\xfb\xff\xff\x6f\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\xfe\xff\xff\x6f\x00\x00\x00\x00\x30\x04\x00\x00\x00\x00\x00\x00\xff\xff\xff\x6f\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\xf0\xff\xff\x6f\x00\x00\x00\x00\x1e\x04\x00\x00\x00\x00\x00\x00\xf9\xff\xff\x6f\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".init_array", 0x1FDC8, "\x60\x07\x00\x00\x00\x00\x00\x00"), -Section(".got", 0x1FFB8, "\xd8\xfd\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".got.plt", 0x1FFE8, "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xa0\x05\x00\x00\x00\x00\x00\x00\xa0\x05\x00\x00\x00\x00\x00\x00\xa0\x05\x00\x00\x00\x00\x00\x00\xa0\x05\x00\x00\x00\x00\x00\x00"), -Section(".data", 0x20020, "\x00\x00\x00\x00\x00\x00\x00\x00\x28\x00\x02\x00\x00\x00\x00\x00")]), -Memmap([Annotation(Region(0x0,0x8AF), Attr("segment","02 0 2224")), -Annotation(Region(0x600,0x61F), Attr("symbol","\"main\"")), -Annotation(Region(0x0,0x102), Attr("section","\".shstrtab\"")), -Annotation(Region(0x0,0x23A), Attr("section","\".strtab\"")), -Annotation(Region(0x0,0x11), Attr("section","\".comment\"")), -Annotation(Region(0x238,0x252), Attr("section","\".interp\"")), -Annotation(Region(0x254,0x277), Attr("section","\".note.gnu.build-id\"")), -Annotation(Region(0x278,0x297), Attr("section","\".note.ABI-tag\"")), -Annotation(Region(0x298,0x2B3), Attr("section","\".gnu.hash\"")), -Annotation(Region(0x2B8,0x38F), Attr("section","\".dynsym\"")), -Annotation(Region(0x390,0x41C), Attr("section","\".dynstr\"")), -Annotation(Region(0x41E,0x42F), Attr("section","\".gnu.version\"")), -Annotation(Region(0x430,0x45F), Attr("section","\".gnu.version_r\"")), -Annotation(Region(0x460,0x51F), Attr("section","\".rela.dyn\"")), -Annotation(Region(0x520,0x57F), Attr("section","\".rela.plt\"")), -Annotation(Region(0x580,0x597), Attr("section","\".init\"")), -Annotation(Region(0x5A0,0x5FF), Attr("section","\".plt\"")), -Annotation(Region(0x580,0x597), Attr("code-region","()")), -Annotation(Region(0x5A0,0x5FF), Attr("code-region","()")), -Annotation(Region(0x600,0x61F), Attr("symbol-info","main 0x600 32")), -Annotation(Region(0x640,0x673), Attr("symbol","\"_start\"")), -Annotation(Region(0x640,0x673), Attr("symbol-info","_start 0x640 52")), -Annotation(Region(0x674,0x687), Attr("symbol","\"call_weak_fn\"")), -Annotation(Region(0x674,0x687), Attr("symbol-info","call_weak_fn 0x674 20")), -Annotation(Region(0x600,0x78F), Attr("section","\".text\"")), -Annotation(Region(0x600,0x78F), Attr("code-region","()")), -Annotation(Region(0x780,0x78F), Attr("symbol","\"bound\"")), -Annotation(Region(0x780,0x78F), Attr("symbol-info","bound 0x780 16")), -Annotation(Region(0x790,0x7A3), Attr("section","\".fini\"")), -Annotation(Region(0x790,0x7A3), Attr("code-region","()")), -Annotation(Region(0x7A4,0x7A7), Attr("section","\".rodata\"")), -Annotation(Region(0x7A8,0x7EB), Attr("section","\".eh_frame_hdr\"")), -Annotation(Region(0x7F0,0x8AF), Attr("section","\".eh_frame\"")), -Annotation(Region(0x1FDC8,0x2002F), Attr("segment","03 0x1FDC8 632")), -Annotation(Region(0x1FDD0,0x1FDD7), Attr("section","\".fini_array\"")), -Annotation(Region(0x1FDD8,0x1FFB7), Attr("section","\".dynamic\"")), -Annotation(Region(0x1FDC8,0x1FDCF), Attr("section","\".init_array\"")), -Annotation(Region(0x1FFB8,0x1FFE7), Attr("section","\".got\"")), -Annotation(Region(0x1FFE8,0x2001F), Attr("section","\".got.plt\"")), -Annotation(Region(0x20020,0x2002F), Attr("section","\".data\""))]), -Program(Tid(1_689, "%00000699"), Attrs([]), - Subs([Sub(Tid(1_666, "@__cxa_finalize"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x5D0"), -Attr("stub","()")]), "__cxa_finalize", Args([Arg(Tid(1_690, "%0000069a"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("__cxa_finalize_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(1_032, "@__cxa_finalize"), - Attrs([Attr("address","0x5D0")]), Phis([]), -Defs([Def(Tid(1_280, "%00000500"), Attrs([Attr("address","0x5D0"), -Attr("insn","adrp x16, #131072")]), Var("R16",Imm(64)), Int(131072,64)), -Def(Tid(1_287, "%00000507"), Attrs([Attr("address","0x5D4"), -Attr("insn","ldr x17, [x16, #0x8]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(1_293, "%0000050d"), Attrs([Attr("address","0x5D8"), -Attr("insn","add x16, x16, #0x8")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(8,64)))]), Jmps([Call(Tid(1_298, "%00000512"), - Attrs([Attr("address","0x5DC"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), -Sub(Tid(1_667, "@__do_global_dtors_aux"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x70C")]), - "__do_global_dtors_aux", Args([Arg(Tid(1_691, "%0000069b"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("__do_global_dtors_aux_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(870, "@__do_global_dtors_aux"), - Attrs([Attr("address","0x70C")]), Phis([]), Defs([Def(Tid(874, "%0000036a"), - Attrs([Attr("address","0x70C"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("#6",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(18446744073709551584,64))), -Def(Tid(880, "%00000370"), Attrs([Attr("address","0x70C"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("#6",Imm(64)),Var("R29",Imm(64)),LittleEndian(),64)), -Def(Tid(886, "%00000376"), Attrs([Attr("address","0x70C"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("#6",Imm(64)),Int(8,64)),Var("R30",Imm(64)),LittleEndian(),64)), -Def(Tid(890, "%0000037a"), Attrs([Attr("address","0x70C"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("R31",Imm(64)), -Var("#6",Imm(64))), Def(Tid(896, "%00000380"), - Attrs([Attr("address","0x710"), Attr("insn","mov x29, sp")]), - Var("R29",Imm(64)), Var("R31",Imm(64))), Def(Tid(904, "%00000388"), - Attrs([Attr("address","0x714"), Attr("insn","str x19, [sp, #0x10]")]), - Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(16,64)),Var("R19",Imm(64)),LittleEndian(),64)), -Def(Tid(909, "%0000038d"), Attrs([Attr("address","0x718"), -Attr("insn","adrp x19, #131072")]), Var("R19",Imm(64)), Int(131072,64)), -Def(Tid(916, "%00000394"), Attrs([Attr("address","0x71C"), -Attr("insn","ldrb w0, [x19, #0x30]")]), Var("R0",Imm(64)), -UNSIGNED(64,Load(Var("mem",Mem(64,8)),PLUS(Var("R19",Imm(64)),Int(48,64)),LittleEndian(),8)))]), -Jmps([Goto(Tid(922, "%0000039a"), Attrs([Attr("address","0x720"), -Attr("insn","tbnz w0, #0x0, #0x28")]), - EQ(Extract(0,0,Var("R0",Imm(64))),Int(1,1)), Direct(Tid(920, "%00000398"))), -Goto(Tid(1_668, "%00000684"), Attrs([]), Int(1,1), -Direct(Tid(977, "%000003d1")))])), Blk(Tid(977, "%000003d1"), - Attrs([Attr("address","0x724")]), Phis([]), Defs([Def(Tid(980, "%000003d4"), - Attrs([Attr("address","0x724"), Attr("insn","adrp x0, #126976")]), - Var("R0",Imm(64)), Int(126976,64)), Def(Tid(987, "%000003db"), - Attrs([Attr("address","0x728"), Attr("insn","ldr x0, [x0, #0xfc8]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(4040,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(993, "%000003e1"), Attrs([Attr("address","0x72C"), -Attr("insn","cbz x0, #0x10")]), EQ(Var("R0",Imm(64)),Int(0,64)), -Direct(Tid(991, "%000003df"))), Goto(Tid(1_669, "%00000685"), Attrs([]), - Int(1,1), Direct(Tid(1_016, "%000003f8")))])), Blk(Tid(1_016, "%000003f8"), - Attrs([Attr("address","0x730")]), Phis([]), -Defs([Def(Tid(1_019, "%000003fb"), Attrs([Attr("address","0x730"), -Attr("insn","adrp x0, #131072")]), Var("R0",Imm(64)), Int(131072,64)), -Def(Tid(1_026, "%00000402"), Attrs([Attr("address","0x734"), -Attr("insn","ldr x0, [x0, #0x28]")]), Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(40,64)),LittleEndian(),64)), -Def(Tid(1_031, "%00000407"), Attrs([Attr("address","0x738"), -Attr("insn","bl #-0x168")]), Var("R30",Imm(64)), Int(1852,64))]), -Jmps([Call(Tid(1_034, "%0000040a"), Attrs([Attr("address","0x738"), -Attr("insn","bl #-0x168")]), Int(1,1), -(Direct(Tid(1_666, "@__cxa_finalize")),Direct(Tid(991, "%000003df"))))])), -Blk(Tid(991, "%000003df"), Attrs([Attr("address","0x73C")]), Phis([]), -Defs([Def(Tid(999, "%000003e7"), Attrs([Attr("address","0x73C"), -Attr("insn","bl #-0x9c")]), Var("R30",Imm(64)), Int(1856,64))]), -Jmps([Call(Tid(1_001, "%000003e9"), Attrs([Attr("address","0x73C"), -Attr("insn","bl #-0x9c")]), Int(1,1), -(Direct(Tid(1_681, "@deregister_tm_clones")),Direct(Tid(1_003, "%000003eb"))))])), -Blk(Tid(1_003, "%000003eb"), Attrs([Attr("address","0x740")]), Phis([]), -Defs([Def(Tid(1_006, "%000003ee"), Attrs([Attr("address","0x740"), -Attr("insn","mov w0, #0x1")]), Var("R0",Imm(64)), Int(1,64)), -Def(Tid(1_014, "%000003f6"), Attrs([Attr("address","0x744"), -Attr("insn","strb w0, [x19, #0x30]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R19",Imm(64)),Int(48,64)),Extract(7,0,Var("R0",Imm(64))),LittleEndian(),8))]), -Jmps([Goto(Tid(1_670, "%00000686"), Attrs([]), Int(1,1), -Direct(Tid(920, "%00000398")))])), Blk(Tid(920, "%00000398"), - Attrs([Attr("address","0x748")]), Phis([]), Defs([Def(Tid(930, "%000003a2"), - Attrs([Attr("address","0x748"), Attr("insn","ldr x19, [sp, #0x10]")]), - Var("R19",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(16,64)),LittleEndian(),64)), -Def(Tid(937, "%000003a9"), Attrs([Attr("address","0x74C"), -Attr("insn","ldp x29, x30, [sp], #0x20")]), Var("R29",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(942, "%000003ae"), Attrs([Attr("address","0x74C"), -Attr("insn","ldp x29, x30, [sp], #0x20")]), Var("R30",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(946, "%000003b2"), Attrs([Attr("address","0x74C"), -Attr("insn","ldp x29, x30, [sp], #0x20")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(32,64)))]), Jmps([Call(Tid(951, "%000003b7"), - Attrs([Attr("address","0x750"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), Sub(Tid(1_671, "@__libc_start_main"), - Attrs([Attr("c.proto","signed (*)(signed (*)(signed , char** , char** );* main, signed , char** , \nvoid* auxv)"), -Attr("address","0x5C0"), Attr("stub","()")]), "__libc_start_main", - Args([Arg(Tid(1_692, "%0000069c"), - Attrs([Attr("c.layout","**[ : 64]"), -Attr("c.data","Top:u64 ptr ptr"), -Attr("c.type","signed (*)(signed , char** , char** );*")]), - Var("__libc_start_main_main",Imm(64)), Var("R0",Imm(64)), In()), -Arg(Tid(1_693, "%0000069d"), Attrs([Attr("c.layout","[signed : 32]"), -Attr("c.data","Top:u32"), Attr("c.type","signed")]), - Var("__libc_start_main_arg2",Imm(32)), LOW(32,Var("R1",Imm(64))), In()), -Arg(Tid(1_694, "%0000069e"), Attrs([Attr("c.layout","**[char : 8]"), -Attr("c.data","Top:u8 ptr ptr"), Attr("c.type","char**")]), - Var("__libc_start_main_arg3",Imm(64)), Var("R2",Imm(64)), Both()), -Arg(Tid(1_695, "%0000069f"), Attrs([Attr("c.layout","*[ : 8]"), -Attr("c.data","{} ptr"), Attr("c.type","void*")]), - Var("__libc_start_main_auxv",Imm(64)), Var("R3",Imm(64)), Both()), -Arg(Tid(1_696, "%000006a0"), Attrs([Attr("c.layout","[signed : 32]"), -Attr("c.data","Top:u32"), Attr("c.type","signed")]), - Var("__libc_start_main_result",Imm(32)), LOW(32,Var("R0",Imm(64))), -Out())]), Blks([Blk(Tid(697, "@__libc_start_main"), - Attrs([Attr("address","0x5C0")]), Phis([]), -Defs([Def(Tid(1_258, "%000004ea"), Attrs([Attr("address","0x5C0"), -Attr("insn","adrp x16, #131072")]), Var("R16",Imm(64)), Int(131072,64)), -Def(Tid(1_265, "%000004f1"), Attrs([Attr("address","0x5C4"), -Attr("insn","ldr x17, [x16]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R16",Imm(64)),LittleEndian(),64)), -Def(Tid(1_271, "%000004f7"), Attrs([Attr("address","0x5C8"), -Attr("insn","add x16, x16, #0x0")]), Var("R16",Imm(64)), -Var("R16",Imm(64)))]), Jmps([Call(Tid(1_276, "%000004fc"), - Attrs([Attr("address","0x5CC"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), Sub(Tid(1_672, "@_fini"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x790")]), - "_fini", Args([Arg(Tid(1_697, "%000006a1"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("_fini_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(32, "@_fini"), - Attrs([Attr("address","0x790")]), Phis([]), Defs([Def(Tid(38, "%00000026"), - Attrs([Attr("address","0x794"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("#0",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(18446744073709551600,64))), -Def(Tid(44, "%0000002c"), Attrs([Attr("address","0x794"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("#0",Imm(64)),Var("R29",Imm(64)),LittleEndian(),64)), -Def(Tid(50, "%00000032"), Attrs([Attr("address","0x794"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("#0",Imm(64)),Int(8,64)),Var("R30",Imm(64)),LittleEndian(),64)), -Def(Tid(54, "%00000036"), Attrs([Attr("address","0x794"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("R31",Imm(64)), -Var("#0",Imm(64))), Def(Tid(60, "%0000003c"), Attrs([Attr("address","0x798"), -Attr("insn","mov x29, sp")]), Var("R29",Imm(64)), Var("R31",Imm(64))), -Def(Tid(67, "%00000043"), Attrs([Attr("address","0x79C"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R29",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(72, "%00000048"), Attrs([Attr("address","0x79C"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R30",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(76, "%0000004c"), Attrs([Attr("address","0x79C"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(16,64)))]), Jmps([Call(Tid(81, "%00000051"), - Attrs([Attr("address","0x7A0"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), Sub(Tid(1_673, "@_init"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x580")]), - "_init", Args([Arg(Tid(1_698, "%000006a2"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("_init_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(1_477, "@_init"), - Attrs([Attr("address","0x580")]), Phis([]), -Defs([Def(Tid(1_483, "%000005cb"), Attrs([Attr("address","0x584"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("#8",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(18446744073709551600,64))), -Def(Tid(1_489, "%000005d1"), Attrs([Attr("address","0x584"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("#8",Imm(64)),Var("R29",Imm(64)),LittleEndian(),64)), -Def(Tid(1_495, "%000005d7"), Attrs([Attr("address","0x584"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("#8",Imm(64)),Int(8,64)),Var("R30",Imm(64)),LittleEndian(),64)), -Def(Tid(1_499, "%000005db"), Attrs([Attr("address","0x584"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("R31",Imm(64)), -Var("#8",Imm(64))), Def(Tid(1_505, "%000005e1"), - Attrs([Attr("address","0x588"), Attr("insn","mov x29, sp")]), - Var("R29",Imm(64)), Var("R31",Imm(64))), Def(Tid(1_510, "%000005e6"), - Attrs([Attr("address","0x58C"), Attr("insn","bl #0xe8")]), - Var("R30",Imm(64)), Int(1424,64))]), Jmps([Call(Tid(1_512, "%000005e8"), - Attrs([Attr("address","0x58C"), Attr("insn","bl #0xe8")]), Int(1,1), -(Direct(Tid(1_679, "@call_weak_fn")),Direct(Tid(1_514, "%000005ea"))))])), -Blk(Tid(1_514, "%000005ea"), Attrs([Attr("address","0x590")]), Phis([]), -Defs([Def(Tid(1_519, "%000005ef"), Attrs([Attr("address","0x590"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R29",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(1_524, "%000005f4"), Attrs([Attr("address","0x590"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R30",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(1_528, "%000005f8"), Attrs([Attr("address","0x590"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(16,64)))]), Jmps([Call(Tid(1_533, "%000005fd"), - Attrs([Attr("address","0x594"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), Sub(Tid(1_674, "@_start"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x640"), -Attr("entry-point","()")]), "_start", Args([Arg(Tid(1_699, "%000006a3"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("_start_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(634, "@_start"), - Attrs([Attr("address","0x640")]), Phis([]), Defs([Def(Tid(639, "%0000027f"), - Attrs([Attr("address","0x644"), Attr("insn","mov x29, #0x0")]), - Var("R29",Imm(64)), Int(0,64)), Def(Tid(644, "%00000284"), - Attrs([Attr("address","0x648"), Attr("insn","mov x30, #0x0")]), - Var("R30",Imm(64)), Int(0,64)), Def(Tid(650, "%0000028a"), - Attrs([Attr("address","0x64C"), Attr("insn","mov x5, x0")]), - Var("R5",Imm(64)), Var("R0",Imm(64))), Def(Tid(657, "%00000291"), - Attrs([Attr("address","0x650"), Attr("insn","ldr x1, [sp]")]), - Var("R1",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(663, "%00000297"), Attrs([Attr("address","0x654"), -Attr("insn","add x2, sp, #0x8")]), Var("R2",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(8,64))), Def(Tid(669, "%0000029d"), - Attrs([Attr("address","0x658"), Attr("insn","mov x6, sp")]), - Var("R6",Imm(64)), Var("R31",Imm(64))), Def(Tid(674, "%000002a2"), - Attrs([Attr("address","0x65C"), Attr("insn","adrp x0, #126976")]), - Var("R0",Imm(64)), Int(126976,64)), Def(Tid(681, "%000002a9"), - Attrs([Attr("address","0x660"), Attr("insn","ldr x0, [x0, #0xfd8]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(4056,64)),LittleEndian(),64)), -Def(Tid(686, "%000002ae"), Attrs([Attr("address","0x664"), -Attr("insn","mov x3, #0x0")]), Var("R3",Imm(64)), Int(0,64)), -Def(Tid(691, "%000002b3"), Attrs([Attr("address","0x668"), -Attr("insn","mov x4, #0x0")]), Var("R4",Imm(64)), Int(0,64)), -Def(Tid(696, "%000002b8"), Attrs([Attr("address","0x66C"), -Attr("insn","bl #-0xac")]), Var("R30",Imm(64)), Int(1648,64))]), -Jmps([Call(Tid(699, "%000002bb"), Attrs([Attr("address","0x66C"), -Attr("insn","bl #-0xac")]), Int(1,1), -(Direct(Tid(1_671, "@__libc_start_main")),Direct(Tid(701, "%000002bd"))))])), -Blk(Tid(701, "%000002bd"), Attrs([Attr("address","0x670")]), Phis([]), -Defs([Def(Tid(704, "%000002c0"), Attrs([Attr("address","0x670"), -Attr("insn","bl #-0x80")]), Var("R30",Imm(64)), Int(1652,64))]), -Jmps([Call(Tid(707, "%000002c3"), Attrs([Attr("address","0x670"), -Attr("insn","bl #-0x80")]), Int(1,1), -(Direct(Tid(1_677, "@abort")),Direct(Tid(1_675, "%0000068b"))))])), -Blk(Tid(1_675, "%0000068b"), Attrs([]), Phis([]), Defs([]), -Jmps([Call(Tid(1_676, "%0000068c"), Attrs([]), Int(1,1), -(Direct(Tid(1_679, "@call_weak_fn")),))]))])), Sub(Tid(1_677, "@abort"), - Attrs([Attr("noreturn","()"), Attr("c.proto","void (*)(void)"), -Attr("address","0x5F0"), Attr("stub","()")]), "abort", Args([]), -Blks([Blk(Tid(705, "@abort"), Attrs([Attr("address","0x5F0")]), Phis([]), -Defs([Def(Tid(1_324, "%0000052c"), Attrs([Attr("address","0x5F0"), -Attr("insn","adrp x16, #131072")]), Var("R16",Imm(64)), Int(131072,64)), -Def(Tid(1_331, "%00000533"), Attrs([Attr("address","0x5F4"), -Attr("insn","ldr x17, [x16, #0x18]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(24,64)),LittleEndian(),64)), -Def(Tid(1_337, "%00000539"), Attrs([Attr("address","0x5F8"), -Attr("insn","add x16, x16, #0x18")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(24,64)))]), Jmps([Call(Tid(1_342, "%0000053e"), - Attrs([Attr("address","0x5FC"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), Sub(Tid(1_678, "@bound"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x780")]), - "bound", Args([Arg(Tid(1_700, "%000006a4"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("bound_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(527, "@bound"), - Attrs([Attr("address","0x780")]), Phis([]), Defs([Def(Tid(533, "%00000215"), - Attrs([Attr("address","0x780"), Attr("insn","mov x1, #0x64")]), - Var("R1",Imm(64)), Int(100,64)), Def(Tid(539, "%0000021b"), - Attrs([Attr("address","0x784"), Attr("insn","cmp x0, x1")]), - Var("#2",Imm(64)), NOT(Var("R1",Imm(64)))), Def(Tid(544, "%00000220"), - Attrs([Attr("address","0x784"), Attr("insn","cmp x0, x1")]), - Var("#3",Imm(64)), PLUS(Var("R0",Imm(64)),NOT(Var("R1",Imm(64))))), -Def(Tid(550, "%00000226"), Attrs([Attr("address","0x784"), -Attr("insn","cmp x0, x1")]), Var("VF",Imm(1)), -NEQ(SIGNED(65,PLUS(Var("#3",Imm(64)),Int(1,64))),PLUS(PLUS(SIGNED(65,Var("R0",Imm(64))),SIGNED(65,Var("#2",Imm(64)))),Int(1,65)))), -Def(Tid(556, "%0000022c"), Attrs([Attr("address","0x784"), -Attr("insn","cmp x0, x1")]), Var("CF",Imm(1)), -NEQ(UNSIGNED(65,PLUS(Var("#3",Imm(64)),Int(1,64))),PLUS(PLUS(UNSIGNED(65,Var("R0",Imm(64))),UNSIGNED(65,Var("#2",Imm(64)))),Int(1,65)))), -Def(Tid(560, "%00000230"), Attrs([Attr("address","0x784"), -Attr("insn","cmp x0, x1")]), Var("ZF",Imm(1)), -EQ(PLUS(Var("#3",Imm(64)),Int(1,64)),Int(0,64))), Def(Tid(564, "%00000234"), - Attrs([Attr("address","0x784"), Attr("insn","cmp x0, x1")]), - Var("NF",Imm(1)), Extract(63,63,PLUS(Var("#3",Imm(64)),Int(1,64))))]), -Jmps([Goto(Tid(579, "%00000243"), Attrs([Attr("address","0x788"), -Attr("insn","csel x0, x0, x1, ge")]), EQ(Var("NF",Imm(1)),Var("VF",Imm(1))), -Direct(Tid(571, "%0000023b"))), Goto(Tid(580, "%00000244"), - Attrs([Attr("address","0x788"), Attr("insn","csel x0, x0, x1, ge")]), - Int(1,1), Direct(Tid(575, "%0000023f")))])), Blk(Tid(575, "%0000023f"), - Attrs([]), Phis([]), Defs([Def(Tid(576, "%00000240"), - Attrs([Attr("address","0x788"), Attr("insn","csel x0, x0, x1, ge")]), - Var("R0",Imm(64)), Var("R1",Imm(64)))]), Jmps([Goto(Tid(582, "%00000246"), - Attrs([Attr("address","0x788"), Attr("insn","csel x0, x0, x1, ge")]), - Int(1,1), Direct(Tid(578, "%00000242")))])), Blk(Tid(571, "%0000023b"), - Attrs([]), Phis([]), Defs([Def(Tid(572, "%0000023c"), - Attrs([Attr("address","0x788"), Attr("insn","csel x0, x0, x1, ge")]), - Var("R0",Imm(64)), Var("R0",Imm(64)))]), Jmps([Goto(Tid(581, "%00000245"), - Attrs([Attr("address","0x788"), Attr("insn","csel x0, x0, x1, ge")]), - Int(1,1), Direct(Tid(578, "%00000242")))])), Blk(Tid(578, "%00000242"), - Attrs([]), Phis([]), Defs([]), Jmps([Call(Tid(587, "%0000024b"), - Attrs([Attr("address","0x78C"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), Sub(Tid(1_679, "@call_weak_fn"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x674")]), - "call_weak_fn", Args([Arg(Tid(1_701, "%000006a5"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("call_weak_fn_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(709, "@call_weak_fn"), - Attrs([Attr("address","0x674")]), Phis([]), Defs([Def(Tid(712, "%000002c8"), - Attrs([Attr("address","0x674"), Attr("insn","adrp x0, #126976")]), - Var("R0",Imm(64)), Int(126976,64)), Def(Tid(719, "%000002cf"), - Attrs([Attr("address","0x678"), Attr("insn","ldr x0, [x0, #0xfd0]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(4048,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(725, "%000002d5"), Attrs([Attr("address","0x67C"), -Attr("insn","cbz x0, #0x8")]), EQ(Var("R0",Imm(64)),Int(0,64)), -Direct(Tid(723, "%000002d3"))), Goto(Tid(1_680, "%00000690"), Attrs([]), - Int(1,1), Direct(Tid(1_096, "%00000448")))])), Blk(Tid(723, "%000002d3"), - Attrs([Attr("address","0x684")]), Phis([]), Defs([]), -Jmps([Call(Tid(731, "%000002db"), Attrs([Attr("address","0x684"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))])), -Blk(Tid(1_096, "%00000448"), Attrs([Attr("address","0x680")]), Phis([]), -Defs([]), Jmps([Goto(Tid(1_099, "%0000044b"), Attrs([Attr("address","0x680"), -Attr("insn","b #-0xa0")]), Int(1,1), -Direct(Tid(1_097, "@__gmon_start__")))])), Blk(Tid(1_097, "@__gmon_start__"), - Attrs([Attr("address","0x5E0")]), Phis([]), -Defs([Def(Tid(1_302, "%00000516"), Attrs([Attr("address","0x5E0"), -Attr("insn","adrp x16, #131072")]), Var("R16",Imm(64)), Int(131072,64)), -Def(Tid(1_309, "%0000051d"), Attrs([Attr("address","0x5E4"), -Attr("insn","ldr x17, [x16, #0x10]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(16,64)),LittleEndian(),64)), -Def(Tid(1_315, "%00000523"), Attrs([Attr("address","0x5E8"), -Attr("insn","add x16, x16, #0x10")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(16,64)))]), Jmps([Call(Tid(1_320, "%00000528"), - Attrs([Attr("address","0x5EC"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), -Sub(Tid(1_681, "@deregister_tm_clones"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x6A0")]), - "deregister_tm_clones", Args([Arg(Tid(1_702, "%000006a6"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("deregister_tm_clones_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(745, "@deregister_tm_clones"), - Attrs([Attr("address","0x6A0")]), Phis([]), Defs([Def(Tid(748, "%000002ec"), - Attrs([Attr("address","0x6A0"), Attr("insn","adrp x0, #131072")]), - Var("R0",Imm(64)), Int(131072,64)), Def(Tid(754, "%000002f2"), - Attrs([Attr("address","0x6A4"), Attr("insn","add x0, x0, #0x30")]), - Var("R0",Imm(64)), PLUS(Var("R0",Imm(64)),Int(48,64))), -Def(Tid(759, "%000002f7"), Attrs([Attr("address","0x6A8"), -Attr("insn","adrp x1, #131072")]), Var("R1",Imm(64)), Int(131072,64)), -Def(Tid(765, "%000002fd"), Attrs([Attr("address","0x6AC"), -Attr("insn","add x1, x1, #0x30")]), Var("R1",Imm(64)), -PLUS(Var("R1",Imm(64)),Int(48,64))), Def(Tid(771, "%00000303"), - Attrs([Attr("address","0x6B0"), Attr("insn","cmp x1, x0")]), - Var("#4",Imm(64)), NOT(Var("R0",Imm(64)))), Def(Tid(776, "%00000308"), - Attrs([Attr("address","0x6B0"), Attr("insn","cmp x1, x0")]), - Var("#5",Imm(64)), PLUS(Var("R1",Imm(64)),NOT(Var("R0",Imm(64))))), -Def(Tid(782, "%0000030e"), Attrs([Attr("address","0x6B0"), -Attr("insn","cmp x1, x0")]), Var("VF",Imm(1)), -NEQ(SIGNED(65,PLUS(Var("#5",Imm(64)),Int(1,64))),PLUS(PLUS(SIGNED(65,Var("R1",Imm(64))),SIGNED(65,Var("#4",Imm(64)))),Int(1,65)))), -Def(Tid(788, "%00000314"), Attrs([Attr("address","0x6B0"), -Attr("insn","cmp x1, x0")]), Var("CF",Imm(1)), -NEQ(UNSIGNED(65,PLUS(Var("#5",Imm(64)),Int(1,64))),PLUS(PLUS(UNSIGNED(65,Var("R1",Imm(64))),UNSIGNED(65,Var("#4",Imm(64)))),Int(1,65)))), -Def(Tid(792, "%00000318"), Attrs([Attr("address","0x6B0"), -Attr("insn","cmp x1, x0")]), Var("ZF",Imm(1)), -EQ(PLUS(Var("#5",Imm(64)),Int(1,64)),Int(0,64))), Def(Tid(796, "%0000031c"), - Attrs([Attr("address","0x6B0"), Attr("insn","cmp x1, x0")]), - Var("NF",Imm(1)), Extract(63,63,PLUS(Var("#5",Imm(64)),Int(1,64))))]), -Jmps([Goto(Tid(802, "%00000322"), Attrs([Attr("address","0x6B4"), -Attr("insn","b.eq #0x18")]), EQ(Var("ZF",Imm(1)),Int(1,1)), -Direct(Tid(800, "%00000320"))), Goto(Tid(1_682, "%00000692"), Attrs([]), - Int(1,1), Direct(Tid(1_066, "%0000042a")))])), Blk(Tid(1_066, "%0000042a"), - Attrs([Attr("address","0x6B8")]), Phis([]), -Defs([Def(Tid(1_069, "%0000042d"), Attrs([Attr("address","0x6B8"), -Attr("insn","adrp x1, #126976")]), Var("R1",Imm(64)), Int(126976,64)), -Def(Tid(1_076, "%00000434"), Attrs([Attr("address","0x6BC"), -Attr("insn","ldr x1, [x1, #0xfc0]")]), Var("R1",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R1",Imm(64)),Int(4032,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(1_081, "%00000439"), Attrs([Attr("address","0x6C0"), -Attr("insn","cbz x1, #0xc")]), EQ(Var("R1",Imm(64)),Int(0,64)), -Direct(Tid(800, "%00000320"))), Goto(Tid(1_683, "%00000693"), Attrs([]), - Int(1,1), Direct(Tid(1_085, "%0000043d")))])), Blk(Tid(800, "%00000320"), - Attrs([Attr("address","0x6CC")]), Phis([]), Defs([]), -Jmps([Call(Tid(808, "%00000328"), Attrs([Attr("address","0x6CC"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))])), -Blk(Tid(1_085, "%0000043d"), Attrs([Attr("address","0x6C4")]), Phis([]), -Defs([Def(Tid(1_089, "%00000441"), Attrs([Attr("address","0x6C4"), -Attr("insn","mov x16, x1")]), Var("R16",Imm(64)), Var("R1",Imm(64)))]), -Jmps([Call(Tid(1_094, "%00000446"), Attrs([Attr("address","0x6C8"), -Attr("insn","br x16")]), Int(1,1), (Indirect(Var("R16",Imm(64))),))]))])), -Sub(Tid(1_684, "@frame_dummy"), Attrs([Attr("c.proto","signed (*)(void)"), -Attr("address","0x760")]), "frame_dummy", Args([Arg(Tid(1_703, "%000006a7"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("frame_dummy_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(959, "@frame_dummy"), - Attrs([Attr("address","0x760")]), Phis([]), Defs([]), -Jmps([Call(Tid(961, "%000003c1"), Attrs([Attr("address","0x760"), -Attr("insn","b #-0x90")]), Int(1,1), -(Direct(Tid(1_686, "@register_tm_clones")),))]))])), Sub(Tid(1_685, "@main"), - Attrs([Attr("c.proto","signed (*)(signed argc, const char** argv)"), -Attr("address","0x600"), Attr("stub","()")]), "main", - Args([Arg(Tid(1_704, "%000006a8"), Attrs([Attr("c.layout","[signed : 32]"), -Attr("c.data","Top:u32"), Attr("c.type","signed")]), - Var("main_argc",Imm(32)), LOW(32,Var("R0",Imm(64))), In()), -Arg(Tid(1_705, "%000006a9"), Attrs([Attr("c.layout","**[char : 8]"), -Attr("c.data","Top:u8 ptr ptr"), Attr("c.type"," const char**")]), - Var("main_argv",Imm(64)), Var("R1",Imm(64)), Both()), -Arg(Tid(1_706, "%000006aa"), Attrs([Attr("c.layout","[signed : 32]"), -Attr("c.data","Top:u32"), Attr("c.type","signed")]), - Var("main_result",Imm(32)), LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(485, "@main"), Attrs([Attr("address","0x600")]), Phis([]), -Defs([Def(Tid(489, "%000001e9"), Attrs([Attr("address","0x600"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("#1",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(18446744073709551600,64))), -Def(Tid(495, "%000001ef"), Attrs([Attr("address","0x600"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("#1",Imm(64)),Var("R29",Imm(64)),LittleEndian(),64)), -Def(Tid(501, "%000001f5"), Attrs([Attr("address","0x600"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("#1",Imm(64)),Int(8,64)),Var("R30",Imm(64)),LittleEndian(),64)), -Def(Tid(505, "%000001f9"), Attrs([Attr("address","0x600"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("R31",Imm(64)), -Var("#1",Imm(64))), Def(Tid(510, "%000001fe"), - Attrs([Attr("address","0x604"), Attr("insn","adrp x2, #131072")]), - Var("R2",Imm(64)), Int(131072,64)), Def(Tid(515, "%00000203"), - Attrs([Attr("address","0x608"), Attr("insn","mov x0, #0x0")]), - Var("R0",Imm(64)), Int(0,64)), Def(Tid(521, "%00000209"), - Attrs([Attr("address","0x60C"), Attr("insn","mov x29, sp")]), - Var("R29",Imm(64)), Var("R31",Imm(64))), Def(Tid(526, "%0000020e"), - Attrs([Attr("address","0x610"), Attr("insn","bl #0x170")]), - Var("R30",Imm(64)), Int(1556,64))]), Jmps([Call(Tid(529, "%00000211"), - Attrs([Attr("address","0x610"), Attr("insn","bl #0x170")]), Int(1,1), -(Direct(Tid(1_678, "@bound")),Direct(Tid(589, "%0000024d"))))])), -Blk(Tid(589, "%0000024d"), Attrs([Attr("address","0x614")]), Phis([]), -Defs([Def(Tid(594, "%00000252"), Attrs([Attr("address","0x614"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R29",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(599, "%00000257"), Attrs([Attr("address","0x614"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R30",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(603, "%0000025b"), Attrs([Attr("address","0x614"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(16,64))), Def(Tid(611, "%00000263"), - Attrs([Attr("address","0x618"), Attr("insn","str x0, [x2, #0x38]")]), - Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R2",Imm(64)),Int(56,64)),Var("R0",Imm(64)),LittleEndian(),64))]), -Jmps([Call(Tid(616, "%00000268"), Attrs([Attr("address","0x61C"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))]))])), -Sub(Tid(1_686, "@register_tm_clones"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x6D0")]), - "register_tm_clones", Args([Arg(Tid(1_707, "%000006ab"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("register_tm_clones_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(810, "@register_tm_clones"), Attrs([Attr("address","0x6D0")]), - Phis([]), Defs([Def(Tid(813, "%0000032d"), Attrs([Attr("address","0x6D0"), -Attr("insn","adrp x0, #131072")]), Var("R0",Imm(64)), Int(131072,64)), -Def(Tid(819, "%00000333"), Attrs([Attr("address","0x6D4"), -Attr("insn","add x0, x0, #0x30")]), Var("R0",Imm(64)), -PLUS(Var("R0",Imm(64)),Int(48,64))), Def(Tid(824, "%00000338"), - Attrs([Attr("address","0x6D8"), Attr("insn","adrp x1, #131072")]), - Var("R1",Imm(64)), Int(131072,64)), Def(Tid(830, "%0000033e"), - Attrs([Attr("address","0x6DC"), Attr("insn","add x1, x1, #0x30")]), - Var("R1",Imm(64)), PLUS(Var("R1",Imm(64)),Int(48,64))), -Def(Tid(837, "%00000345"), Attrs([Attr("address","0x6E0"), -Attr("insn","sub x1, x1, x0")]), Var("R1",Imm(64)), -PLUS(PLUS(Var("R1",Imm(64)),NOT(Var("R0",Imm(64)))),Int(1,64))), -Def(Tid(843, "%0000034b"), Attrs([Attr("address","0x6E4"), -Attr("insn","lsr x2, x1, #63")]), Var("R2",Imm(64)), -Concat(Int(0,63),Extract(63,63,Var("R1",Imm(64))))), -Def(Tid(850, "%00000352"), Attrs([Attr("address","0x6E8"), -Attr("insn","add x1, x2, x1, asr #3")]), Var("R1",Imm(64)), -PLUS(Var("R2",Imm(64)),ARSHIFT(Var("R1",Imm(64)),Int(3,3)))), -Def(Tid(856, "%00000358"), Attrs([Attr("address","0x6EC"), -Attr("insn","asr x1, x1, #1")]), Var("R1",Imm(64)), -SIGNED(64,Extract(63,1,Var("R1",Imm(64)))))]), -Jmps([Goto(Tid(862, "%0000035e"), Attrs([Attr("address","0x6F0"), -Attr("insn","cbz x1, #0x18")]), EQ(Var("R1",Imm(64)),Int(0,64)), -Direct(Tid(860, "%0000035c"))), Goto(Tid(1_687, "%00000697"), Attrs([]), - Int(1,1), Direct(Tid(1_036, "%0000040c")))])), Blk(Tid(1_036, "%0000040c"), - Attrs([Attr("address","0x6F4")]), Phis([]), -Defs([Def(Tid(1_039, "%0000040f"), Attrs([Attr("address","0x6F4"), -Attr("insn","adrp x2, #126976")]), Var("R2",Imm(64)), Int(126976,64)), -Def(Tid(1_046, "%00000416"), Attrs([Attr("address","0x6F8"), -Attr("insn","ldr x2, [x2, #0xfe0]")]), Var("R2",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R2",Imm(64)),Int(4064,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(1_051, "%0000041b"), Attrs([Attr("address","0x6FC"), -Attr("insn","cbz x2, #0xc")]), EQ(Var("R2",Imm(64)),Int(0,64)), -Direct(Tid(860, "%0000035c"))), Goto(Tid(1_688, "%00000698"), Attrs([]), - Int(1,1), Direct(Tid(1_055, "%0000041f")))])), Blk(Tid(860, "%0000035c"), - Attrs([Attr("address","0x708")]), Phis([]), Defs([]), -Jmps([Call(Tid(868, "%00000364"), Attrs([Attr("address","0x708"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))])), -Blk(Tid(1_055, "%0000041f"), Attrs([Attr("address","0x700")]), Phis([]), -Defs([Def(Tid(1_059, "%00000423"), Attrs([Attr("address","0x700"), -Attr("insn","mov x16, x2")]), Var("R16",Imm(64)), Var("R2",Imm(64)))]), -Jmps([Call(Tid(1_064, "%00000428"), Attrs([Attr("address","0x704"), -Attr("insn","br x16")]), Int(1,1), -(Indirect(Var("R16",Imm(64))),))]))]))]))) \ No newline at end of file diff --git a/src/test/procedure_summaries/intervals2/gcc_O2/intervals2.bir b/src/test/procedure_summaries/intervals2/gcc_O2/intervals2.bir deleted file mode 100644 index 87b22615b..000000000 --- a/src/test/procedure_summaries/intervals2/gcc_O2/intervals2.bir +++ /dev/null @@ -1,263 +0,0 @@ -00000699: program -00000682: sub __cxa_finalize(__cxa_finalize_result) -0000069a: __cxa_finalize_result :: out u32 = low:32[R0] - -00000408: -00000500: R16 := 0x20000 -00000507: R17 := mem[R16 + 8, el]:u64 -0000050d: R16 := R16 + 8 -00000512: call R17 with noreturn - -00000683: sub __do_global_dtors_aux(__do_global_dtors_aux_result) -0000069b: __do_global_dtors_aux_result :: out u32 = low:32[R0] - -00000366: -0000036a: #6 := R31 - 0x20 -00000370: mem := mem with [#6, el]:u64 <- R29 -00000376: mem := mem with [#6 + 8, el]:u64 <- R30 -0000037a: R31 := #6 -00000380: R29 := R31 -00000388: mem := mem with [R31 + 0x10, el]:u64 <- R19 -0000038d: R19 := 0x20000 -00000394: R0 := pad:64[mem[R19 + 0x30]] -0000039a: when 0:0[R0] goto %00000398 -00000684: goto %000003d1 - -000003d1: -000003d4: R0 := 0x1F000 -000003db: R0 := mem[R0 + 0xFC8, el]:u64 -000003e1: when R0 = 0 goto %000003df -00000685: goto %000003f8 - -000003f8: -000003fb: R0 := 0x20000 -00000402: R0 := mem[R0 + 0x28, el]:u64 -00000407: R30 := 0x73C -0000040a: call @__cxa_finalize with return %000003df - -000003df: -000003e7: R30 := 0x740 -000003e9: call @deregister_tm_clones with return %000003eb - -000003eb: -000003ee: R0 := 1 -000003f6: mem := mem with [R19 + 0x30] <- 7:0[R0] -00000686: goto %00000398 - -00000398: -000003a2: R19 := mem[R31 + 0x10, el]:u64 -000003a9: R29 := mem[R31, el]:u64 -000003ae: R30 := mem[R31 + 8, el]:u64 -000003b2: R31 := R31 + 0x20 -000003b7: call R30 with noreturn - -00000687: sub __libc_start_main(__libc_start_main_main, __libc_start_main_arg2, __libc_start_main_arg3, __libc_start_main_auxv, __libc_start_main_result) -0000069c: __libc_start_main_main :: in u64 = R0 -0000069d: __libc_start_main_arg2 :: in u32 = low:32[R1] -0000069e: __libc_start_main_arg3 :: in out u64 = R2 -0000069f: __libc_start_main_auxv :: in out u64 = R3 -000006a0: __libc_start_main_result :: out u32 = low:32[R0] - -000002b9: -000004ea: R16 := 0x20000 -000004f1: R17 := mem[R16, el]:u64 -000004f7: R16 := R16 -000004fc: call R17 with noreturn - -00000688: sub _fini(_fini_result) -000006a1: _fini_result :: out u32 = low:32[R0] - -00000020: -00000026: #0 := R31 - 0x10 -0000002c: mem := mem with [#0, el]:u64 <- R29 -00000032: mem := mem with [#0 + 8, el]:u64 <- R30 -00000036: R31 := #0 -0000003c: R29 := R31 -00000043: R29 := mem[R31, el]:u64 -00000048: R30 := mem[R31 + 8, el]:u64 -0000004c: R31 := R31 + 0x10 -00000051: call R30 with noreturn - -00000689: sub _init(_init_result) -000006a2: _init_result :: out u32 = low:32[R0] - -000005c5: -000005cb: #8 := R31 - 0x10 -000005d1: mem := mem with [#8, el]:u64 <- R29 -000005d7: mem := mem with [#8 + 8, el]:u64 <- R30 -000005db: R31 := #8 -000005e1: R29 := R31 -000005e6: R30 := 0x590 -000005e8: call @call_weak_fn with return %000005ea - -000005ea: -000005ef: R29 := mem[R31, el]:u64 -000005f4: R30 := mem[R31 + 8, el]:u64 -000005f8: R31 := R31 + 0x10 -000005fd: call R30 with noreturn - -0000068a: sub _start(_start_result) -000006a3: _start_result :: out u32 = low:32[R0] - -0000027a: -0000027f: R29 := 0 -00000284: R30 := 0 -0000028a: R5 := R0 -00000291: R1 := mem[R31, el]:u64 -00000297: R2 := R31 + 8 -0000029d: R6 := R31 -000002a2: R0 := 0x1F000 -000002a9: R0 := mem[R0 + 0xFD8, el]:u64 -000002ae: R3 := 0 -000002b3: R4 := 0 -000002b8: R30 := 0x670 -000002bb: call @__libc_start_main with return %000002bd - -000002bd: -000002c0: R30 := 0x674 -000002c3: call @abort with return %0000068b - -0000068b: -0000068c: call @call_weak_fn with noreturn - -0000068d: sub abort() - - -000002c1: -0000052c: R16 := 0x20000 -00000533: R17 := mem[R16 + 0x18, el]:u64 -00000539: R16 := R16 + 0x18 -0000053e: call R17 with noreturn - -0000068e: sub bound(bound_result) -000006a4: bound_result :: out u32 = low:32[R0] - -0000020f: -00000215: R1 := 0x64 -0000021b: #2 := ~R1 -00000220: #3 := R0 + ~R1 -00000226: VF := extend:65[#3 + 1] <> extend:65[R0] + extend:65[#2] + 1 -0000022c: CF := pad:65[#3 + 1] <> pad:65[R0] + pad:65[#2] + 1 -00000230: ZF := #3 + 1 = 0 -00000234: NF := 63:63[#3 + 1] -00000243: when NF = VF goto %0000023b -00000244: goto %0000023f - -0000023f: -00000240: R0 := R1 -00000246: goto %00000242 - -0000023b: -0000023c: R0 := R0 -00000245: goto %00000242 - -00000242: -0000024b: call R30 with noreturn - -0000068f: sub call_weak_fn(call_weak_fn_result) -000006a5: call_weak_fn_result :: out u32 = low:32[R0] - -000002c5: -000002c8: R0 := 0x1F000 -000002cf: R0 := mem[R0 + 0xFD0, el]:u64 -000002d5: when R0 = 0 goto %000002d3 -00000690: goto %00000448 - -000002d3: -000002db: call R30 with noreturn - -00000448: -0000044b: goto @__gmon_start__ - -00000449: -00000516: R16 := 0x20000 -0000051d: R17 := mem[R16 + 0x10, el]:u64 -00000523: R16 := R16 + 0x10 -00000528: call R17 with noreturn - -00000691: sub deregister_tm_clones(deregister_tm_clones_result) -000006a6: deregister_tm_clones_result :: out u32 = low:32[R0] - -000002e9: -000002ec: R0 := 0x20000 -000002f2: R0 := R0 + 0x30 -000002f7: R1 := 0x20000 -000002fd: R1 := R1 + 0x30 -00000303: #4 := ~R0 -00000308: #5 := R1 + ~R0 -0000030e: VF := extend:65[#5 + 1] <> extend:65[R1] + extend:65[#4] + 1 -00000314: CF := pad:65[#5 + 1] <> pad:65[R1] + pad:65[#4] + 1 -00000318: ZF := #5 + 1 = 0 -0000031c: NF := 63:63[#5 + 1] -00000322: when ZF goto %00000320 -00000692: goto %0000042a - -0000042a: -0000042d: R1 := 0x1F000 -00000434: R1 := mem[R1 + 0xFC0, el]:u64 -00000439: when R1 = 0 goto %00000320 -00000693: goto %0000043d - -00000320: -00000328: call R30 with noreturn - -0000043d: -00000441: R16 := R1 -00000446: call R16 with noreturn - -00000694: sub frame_dummy(frame_dummy_result) -000006a7: frame_dummy_result :: out u32 = low:32[R0] - -000003bf: -000003c1: call @register_tm_clones with noreturn - -00000695: sub main(main_argc, main_argv, main_result) -000006a8: main_argc :: in u32 = low:32[R0] -000006a9: main_argv :: in out u64 = R1 -000006aa: main_result :: out u32 = low:32[R0] - -000001e5: -000001e9: #1 := R31 - 0x10 -000001ef: mem := mem with [#1, el]:u64 <- R29 -000001f5: mem := mem with [#1 + 8, el]:u64 <- R30 -000001f9: R31 := #1 -000001fe: R2 := 0x20000 -00000203: R0 := 0 -00000209: R29 := R31 -0000020e: R30 := 0x614 -00000211: call @bound with return %0000024d - -0000024d: -00000252: R29 := mem[R31, el]:u64 -00000257: R30 := mem[R31 + 8, el]:u64 -0000025b: R31 := R31 + 0x10 -00000263: mem := mem with [R2 + 0x38, el]:u64 <- R0 -00000268: call R30 with noreturn - -00000696: sub register_tm_clones(register_tm_clones_result) -000006ab: register_tm_clones_result :: out u32 = low:32[R0] - -0000032a: -0000032d: R0 := 0x20000 -00000333: R0 := R0 + 0x30 -00000338: R1 := 0x20000 -0000033e: R1 := R1 + 0x30 -00000345: R1 := R1 + ~R0 + 1 -0000034b: R2 := 0.63:63[R1] -00000352: R1 := R2 + (R1 ~>> 3) -00000358: R1 := extend:64[63:1[R1]] -0000035e: when R1 = 0 goto %0000035c -00000697: goto %0000040c - -0000040c: -0000040f: R2 := 0x1F000 -00000416: R2 := mem[R2 + 0xFE0, el]:u64 -0000041b: when R2 = 0 goto %0000035c -00000698: goto %0000041f - -0000035c: -00000364: call R30 with noreturn - -0000041f: -00000423: R16 := R2 -00000428: call R16 with noreturn diff --git a/src/test/procedure_summaries/intervals2/gcc_O2/intervals2.gts b/src/test/procedure_summaries/intervals2/gcc_O2/intervals2.gts deleted file mode 100644 index d9f0fe3ac..000000000 Binary files a/src/test/procedure_summaries/intervals2/gcc_O2/intervals2.gts and /dev/null differ diff --git a/src/test/procedure_summaries/intervals2/gcc_O2/intervals2.md5sum b/src/test/procedure_summaries/intervals2/gcc_O2/intervals2.md5sum new file mode 100644 index 000000000..8fe9fa37b --- /dev/null +++ b/src/test/procedure_summaries/intervals2/gcc_O2/intervals2.md5sum @@ -0,0 +1,5 @@ +6cf33fbcfb42c65f0a1381644cbe1ecf procedure_summaries/intervals2/gcc_O2/a.out +cf58cbc859c1ff87c10190ba676ba51e procedure_summaries/intervals2/gcc_O2/intervals2.adt +de10cd79d8fd22b413d37bde6d6772f5 procedure_summaries/intervals2/gcc_O2/intervals2.bir +2173d8031db8d9e7fdc3b5e7bf23b6e0 procedure_summaries/intervals2/gcc_O2/intervals2.relf +953da3db5ec27da91da3a53223b3866d procedure_summaries/intervals2/gcc_O2/intervals2.gts diff --git a/src/test/procedure_summaries/intervals2/gcc_O2/intervals2.relf b/src/test/procedure_summaries/intervals2/gcc_O2/intervals2.relf deleted file mode 100644 index c6dbed84f..000000000 --- a/src/test/procedure_summaries/intervals2/gcc_O2/intervals2.relf +++ /dev/null @@ -1,126 +0,0 @@ - -Relocation section '.rela.dyn' at offset 0x460 contains 8 entries: - Offset Info Type Symbol's Value Symbol's Name + Addend -000000000001fdc8 0000000000000403 R_AARCH64_RELATIVE 760 -000000000001fdd0 0000000000000403 R_AARCH64_RELATIVE 70c -000000000001ffd8 0000000000000403 R_AARCH64_RELATIVE 600 -0000000000020028 0000000000000403 R_AARCH64_RELATIVE 20028 -000000000001ffc0 0000000400000401 R_AARCH64_GLOB_DAT 0000000000000000 _ITM_deregisterTMCloneTable + 0 -000000000001ffc8 0000000500000401 R_AARCH64_GLOB_DAT 0000000000000000 __cxa_finalize@GLIBC_2.17 + 0 -000000000001ffd0 0000000600000401 R_AARCH64_GLOB_DAT 0000000000000000 __gmon_start__ + 0 -000000000001ffe0 0000000800000401 R_AARCH64_GLOB_DAT 0000000000000000 _ITM_registerTMCloneTable + 0 - -Relocation section '.rela.plt' at offset 0x520 contains 4 entries: - Offset Info Type Symbol's Value Symbol's Name + Addend -0000000000020000 0000000300000402 R_AARCH64_JUMP_SLOT 0000000000000000 __libc_start_main@GLIBC_2.34 + 0 -0000000000020008 0000000500000402 R_AARCH64_JUMP_SLOT 0000000000000000 __cxa_finalize@GLIBC_2.17 + 0 -0000000000020010 0000000600000402 R_AARCH64_JUMP_SLOT 0000000000000000 __gmon_start__ + 0 -0000000000020018 0000000700000402 R_AARCH64_JUMP_SLOT 0000000000000000 abort@GLIBC_2.17 + 0 - -Symbol table '.dynsym' contains 9 entries: - Num: Value Size Type Bind Vis Ndx Name - 0: 0000000000000000 0 NOTYPE LOCAL DEFAULT UND - 1: 0000000000000580 0 SECTION LOCAL DEFAULT 11 .init - 2: 0000000000020020 0 SECTION LOCAL DEFAULT 23 .data - 3: 0000000000000000 0 FUNC GLOBAL DEFAULT UND __libc_start_main@GLIBC_2.34 (2) - 4: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_deregisterTMCloneTable - 5: 0000000000000000 0 FUNC WEAK DEFAULT UND __cxa_finalize@GLIBC_2.17 (3) - 6: 0000000000000000 0 NOTYPE WEAK DEFAULT UND __gmon_start__ - 7: 0000000000000000 0 FUNC GLOBAL DEFAULT UND abort@GLIBC_2.17 (3) - 8: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_registerTMCloneTable - -Symbol table '.symtab' contains 93 entries: - Num: Value Size Type Bind Vis Ndx Name - 0: 0000000000000000 0 NOTYPE LOCAL DEFAULT UND - 1: 0000000000000238 0 SECTION LOCAL DEFAULT 1 .interp - 2: 0000000000000254 0 SECTION LOCAL DEFAULT 2 .note.gnu.build-id - 3: 0000000000000278 0 SECTION LOCAL DEFAULT 3 .note.ABI-tag - 4: 0000000000000298 0 SECTION LOCAL DEFAULT 4 .gnu.hash - 5: 00000000000002b8 0 SECTION LOCAL DEFAULT 5 .dynsym - 6: 0000000000000390 0 SECTION LOCAL DEFAULT 6 .dynstr - 7: 000000000000041e 0 SECTION LOCAL DEFAULT 7 .gnu.version - 8: 0000000000000430 0 SECTION LOCAL DEFAULT 8 .gnu.version_r - 9: 0000000000000460 0 SECTION LOCAL DEFAULT 9 .rela.dyn - 10: 0000000000000520 0 SECTION LOCAL DEFAULT 10 .rela.plt - 11: 0000000000000580 0 SECTION LOCAL DEFAULT 11 .init - 12: 00000000000005a0 0 SECTION LOCAL DEFAULT 12 .plt - 13: 0000000000000600 0 SECTION LOCAL DEFAULT 13 .text - 14: 0000000000000790 0 SECTION LOCAL DEFAULT 14 .fini - 15: 00000000000007a4 0 SECTION LOCAL DEFAULT 15 .rodata - 16: 00000000000007a8 0 SECTION LOCAL DEFAULT 16 .eh_frame_hdr - 17: 00000000000007f0 0 SECTION LOCAL DEFAULT 17 .eh_frame - 18: 000000000001fdc8 0 SECTION LOCAL DEFAULT 18 .init_array - 19: 000000000001fdd0 0 SECTION LOCAL DEFAULT 19 .fini_array - 20: 000000000001fdd8 0 SECTION LOCAL DEFAULT 20 .dynamic - 21: 000000000001ffb8 0 SECTION LOCAL DEFAULT 21 .got - 22: 000000000001ffe8 0 SECTION LOCAL DEFAULT 22 .got.plt - 23: 0000000000020020 0 SECTION LOCAL DEFAULT 23 .data - 24: 0000000000020030 0 SECTION LOCAL DEFAULT 24 .bss - 25: 0000000000000000 0 SECTION LOCAL DEFAULT 25 .comment - 26: 0000000000000000 0 FILE LOCAL DEFAULT ABS abi-note.c - 27: 0000000000000278 0 NOTYPE LOCAL DEFAULT 3 $d - 28: 0000000000000278 32 OBJECT LOCAL DEFAULT 3 __abi_tag - 29: 0000000000000000 0 FILE LOCAL DEFAULT ABS start.os - 30: 0000000000000640 0 NOTYPE LOCAL DEFAULT 13 $x - 31: 0000000000000804 0 NOTYPE LOCAL DEFAULT 17 $d - 32: 0000000000000000 0 FILE LOCAL DEFAULT ABS init.c - 33: 00000000000007a4 0 NOTYPE LOCAL DEFAULT 15 $d - 34: 0000000000000000 0 FILE LOCAL DEFAULT ABS crti.o - 35: 0000000000000674 0 NOTYPE LOCAL DEFAULT 13 $x - 36: 0000000000000674 20 FUNC LOCAL DEFAULT 13 call_weak_fn - 37: 0000000000000580 0 NOTYPE LOCAL DEFAULT 11 $x - 38: 0000000000000790 0 NOTYPE LOCAL DEFAULT 14 $x - 39: 0000000000000000 0 FILE LOCAL DEFAULT ABS crtn.o - 40: 0000000000000590 0 NOTYPE LOCAL DEFAULT 11 $x - 41: 000000000000079c 0 NOTYPE LOCAL DEFAULT 14 $x - 42: 0000000000000000 0 FILE LOCAL DEFAULT ABS intervals2.c - 43: 0000000000000780 0 NOTYPE LOCAL DEFAULT 13 $x - 44: 0000000000000600 0 NOTYPE LOCAL DEFAULT 13 $x - 45: 0000000000020038 0 NOTYPE LOCAL DEFAULT 24 $d - 46: 0000000000000878 0 NOTYPE LOCAL DEFAULT 17 $d - 47: 0000000000000000 0 FILE LOCAL DEFAULT ABS crtstuff.c - 48: 00000000000006a0 0 NOTYPE LOCAL DEFAULT 13 $x - 49: 00000000000006a0 0 FUNC LOCAL DEFAULT 13 deregister_tm_clones - 50: 00000000000006d0 0 FUNC LOCAL DEFAULT 13 register_tm_clones - 51: 0000000000020028 0 NOTYPE LOCAL DEFAULT 23 $d - 52: 000000000000070c 0 FUNC LOCAL DEFAULT 13 __do_global_dtors_aux - 53: 0000000000020030 1 OBJECT LOCAL DEFAULT 24 completed.0 - 54: 000000000001fdd0 0 NOTYPE LOCAL DEFAULT 19 $d - 55: 000000000001fdd0 0 OBJECT LOCAL DEFAULT 19 __do_global_dtors_aux_fini_array_entry - 56: 0000000000000760 0 FUNC LOCAL DEFAULT 13 frame_dummy - 57: 000000000001fdc8 0 NOTYPE LOCAL DEFAULT 18 $d - 58: 000000000001fdc8 0 OBJECT LOCAL DEFAULT 18 __frame_dummy_init_array_entry - 59: 0000000000000818 0 NOTYPE LOCAL DEFAULT 17 $d - 60: 0000000000020030 0 NOTYPE LOCAL DEFAULT 24 $d - 61: 0000000000000000 0 FILE LOCAL DEFAULT ABS crtstuff.c - 62: 00000000000008ac 0 NOTYPE LOCAL DEFAULT 17 $d - 63: 00000000000008ac 0 OBJECT LOCAL DEFAULT 17 __FRAME_END__ - 64: 0000000000000000 0 FILE LOCAL DEFAULT ABS - 65: 000000000001fdd8 0 OBJECT LOCAL DEFAULT ABS _DYNAMIC - 66: 00000000000007a8 0 NOTYPE LOCAL DEFAULT 16 __GNU_EH_FRAME_HDR - 67: 000000000001ffb8 0 OBJECT LOCAL DEFAULT ABS _GLOBAL_OFFSET_TABLE_ - 68: 00000000000005a0 0 NOTYPE LOCAL DEFAULT 12 $x - 69: 0000000000000000 0 FUNC GLOBAL DEFAULT UND __libc_start_main@GLIBC_2.34 - 70: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_deregisterTMCloneTable - 71: 0000000000020020 0 NOTYPE WEAK DEFAULT 23 data_start - 72: 0000000000020030 0 NOTYPE GLOBAL DEFAULT 24 __bss_start__ - 73: 0000000000000000 0 FUNC WEAK DEFAULT UND __cxa_finalize@GLIBC_2.17 - 74: 0000000000020040 0 NOTYPE GLOBAL DEFAULT 24 _bss_end__ - 75: 0000000000020030 0 NOTYPE GLOBAL DEFAULT 23 _edata - 76: 0000000000020038 8 OBJECT GLOBAL DEFAULT 24 x - 77: 0000000000000790 0 FUNC GLOBAL HIDDEN 14 _fini - 78: 0000000000020040 0 NOTYPE GLOBAL DEFAULT 24 __bss_end__ - 79: 0000000000020020 0 NOTYPE GLOBAL DEFAULT 23 __data_start - 80: 0000000000000000 0 NOTYPE WEAK DEFAULT UND __gmon_start__ - 81: 0000000000020028 0 OBJECT GLOBAL HIDDEN 23 __dso_handle - 82: 0000000000000000 0 FUNC GLOBAL DEFAULT UND abort@GLIBC_2.17 - 83: 00000000000007a4 4 OBJECT GLOBAL DEFAULT 15 _IO_stdin_used - 84: 0000000000020040 0 NOTYPE GLOBAL DEFAULT 24 _end - 85: 0000000000000640 52 FUNC GLOBAL DEFAULT 13 _start - 86: 0000000000020040 0 NOTYPE GLOBAL DEFAULT 24 __end__ - 87: 0000000000020030 0 NOTYPE GLOBAL DEFAULT 24 __bss_start - 88: 0000000000000600 32 FUNC GLOBAL DEFAULT 13 main - 89: 0000000000020030 0 OBJECT GLOBAL HIDDEN 23 __TMC_END__ - 90: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_registerTMCloneTable - 91: 0000000000000780 16 FUNC GLOBAL DEFAULT 13 bound - 92: 0000000000000580 0 FUNC GLOBAL HIDDEN 11 _init diff --git a/src/test/procedure_summaries/procedure_summary/gcc/procedure_summary.adt b/src/test/procedure_summaries/procedure_summary/gcc/procedure_summary.adt deleted file mode 100644 index cd0fa78b1..000000000 --- a/src/test/procedure_summaries/procedure_summary/gcc/procedure_summary.adt +++ /dev/null @@ -1,546 +0,0 @@ -Project(Attrs([Attr("filename","\"gcc/function_summary.out\""), -Attr("image-specification","(declare abi (name str))\n(declare arch (name str))\n(declare base-address (addr int))\n(declare bias (off int))\n(declare bits (size int))\n(declare code-region (addr int) (size int) (off int))\n(declare code-start (addr int))\n(declare entry-point (addr int))\n(declare external-reference (addr int) (name str))\n(declare format (name str))\n(declare is-executable (flag bool))\n(declare is-little-endian (flag bool))\n(declare llvm:base-address (addr int))\n(declare llvm:code-entry (name str) (off int) (size int))\n(declare llvm:coff-import-library (name str))\n(declare llvm:coff-virtual-section-header (name str) (addr int) (size int))\n(declare llvm:elf-program-header (name str) (off int) (size int))\n(declare llvm:elf-program-header-flags (name str) (ld bool) (r bool) \n (w bool) (x bool))\n(declare llvm:elf-virtual-program-header (name str) (addr int) (size int))\n(declare llvm:entry-point (addr int))\n(declare llvm:macho-symbol (name str) (value int))\n(declare llvm:name-reference (at int) (name str))\n(declare llvm:relocation (at int) (addr int))\n(declare llvm:section-entry (name str) (addr int) (size int) (off int))\n(declare llvm:section-flags (name str) (r bool) (w bool) (x bool))\n(declare llvm:segment-command (name str) (off int) (size int))\n(declare llvm:segment-command-flags (name str) (r bool) (w bool) (x bool))\n(declare llvm:symbol-entry (name str) (addr int) (size int) (off int)\n (value int))\n(declare llvm:virtual-segment-command (name str) (addr int) (size int))\n(declare mapped (addr int) (size int) (off int))\n(declare named-region (addr int) (size int) (name str))\n(declare named-symbol (addr int) (name str))\n(declare require (name str))\n(declare section (addr int) (size int))\n(declare segment (addr int) (size int) (r bool) (w bool) (x bool))\n(declare subarch (name str))\n(declare symbol-chunk (addr int) (size int) (root int))\n(declare symbol-value (addr int) (value int))\n(declare system (name str))\n(declare vendor (name str))\n\n(abi unknown)\n(arch aarch64)\n(base-address 0)\n(bias 0)\n(bits 64)\n(code-region 1892 20 1892)\n(code-region 1536 356 1536)\n(code-region 1440 96 1440)\n(code-region 1408 24 1408)\n(code-start 1588)\n(code-start 1884)\n(code-start 1536)\n(code-start 1828)\n(entry-point 1536)\n(external-reference 131008 _ITM_deregisterTMCloneTable)\n(external-reference 131016 __cxa_finalize)\n(external-reference 131024 __gmon_start__)\n(external-reference 131040 _ITM_registerTMCloneTable)\n(external-reference 131072 __libc_start_main)\n(external-reference 131080 __cxa_finalize)\n(external-reference 131088 __gmon_start__)\n(external-reference 131096 abort)\n(format elf)\n(is-executable true)\n(is-little-endian true)\n(llvm:base-address 0)\n(llvm:code-entry abort 0 0)\n(llvm:code-entry __cxa_finalize 0 0)\n(llvm:code-entry __libc_start_main 0 0)\n(llvm:code-entry _init 1408 0)\n(llvm:code-entry main 1828 56)\n(llvm:code-entry _start 1536 52)\n(llvm:code-entry abort@GLIBC_2.17 0 0)\n(llvm:code-entry get_two 1884 8)\n(llvm:code-entry _fini 1892 0)\n(llvm:code-entry __cxa_finalize@GLIBC_2.17 0 0)\n(llvm:code-entry __libc_start_main@GLIBC_2.34 0 0)\n(llvm:code-entry frame_dummy 1824 0)\n(llvm:code-entry __do_global_dtors_aux 1740 0)\n(llvm:code-entry register_tm_clones 1680 0)\n(llvm:code-entry deregister_tm_clones 1632 0)\n(llvm:code-entry call_weak_fn 1588 20)\n(llvm:code-entry .fini 1892 20)\n(llvm:code-entry .text 1536 356)\n(llvm:code-entry .plt 1440 96)\n(llvm:code-entry .init 1408 24)\n(llvm:elf-program-header 08 64968 568)\n(llvm:elf-program-header 07 0 0)\n(llvm:elf-program-header 06 1916 68)\n(llvm:elf-program-header 05 596 68)\n(llvm:elf-program-header 04 64984 480)\n(llvm:elf-program-header 03 64968 616)\n(llvm:elf-program-header 02 0 2176)\n(llvm:elf-program-header 01 568 27)\n(llvm:elf-program-header 00 64 504)\n(llvm:elf-program-header-flags 08 false true false false)\n(llvm:elf-program-header-flags 07 false true true false)\n(llvm:elf-program-header-flags 06 false true false false)\n(llvm:elf-program-header-flags 05 false true false false)\n(llvm:elf-program-header-flags 04 false true true false)\n(llvm:elf-program-header-flags 03 true true true false)\n(llvm:elf-program-header-flags 02 true true false true)\n(llvm:elf-program-header-flags 01 false true false false)\n(llvm:elf-program-header-flags 00 false true false false)\n(llvm:elf-virtual-program-header 08 130504 568)\n(llvm:elf-virtual-program-header 07 0 0)\n(llvm:elf-virtual-program-header 06 1916 68)\n(llvm:elf-virtual-program-header 05 596 68)\n(llvm:elf-virtual-program-header 04 130520 480)\n(llvm:elf-virtual-program-header 03 130504 632)\n(llvm:elf-virtual-program-header 02 0 2176)\n(llvm:elf-virtual-program-header 01 568 27)\n(llvm:elf-virtual-program-header 00 64 504)\n(llvm:entry-point 1536)\n(llvm:name-reference 131096 abort)\n(llvm:name-reference 131088 __gmon_start__)\n(llvm:name-reference 131080 __cxa_finalize)\n(llvm:name-reference 131072 __libc_start_main)\n(llvm:name-reference 131040 _ITM_registerTMCloneTable)\n(llvm:name-reference 131024 __gmon_start__)\n(llvm:name-reference 131016 __cxa_finalize)\n(llvm:name-reference 131008 _ITM_deregisterTMCloneTable)\n(llvm:section-entry .shstrtab 0 259 68435)\n(llvm:section-entry .strtab 0 579 67856)\n(llvm:section-entry .symtab 0 2232 65624)\n(llvm:section-entry .comment 0 36 65584)\n(llvm:section-entry .bss 131120 16 65584)\n(llvm:section-entry .data 131104 16 65568)\n(llvm:section-entry .got.plt 131048 56 65512)\n(llvm:section-entry .got 131000 48 65464)\n(llvm:section-entry .dynamic 130520 480 64984)\n(llvm:section-entry .fini_array 130512 8 64976)\n(llvm:section-entry .init_array 130504 8 64968)\n(llvm:section-entry .eh_frame 1984 192 1984)\n(llvm:section-entry .eh_frame_hdr 1916 68 1916)\n(llvm:section-entry .rodata 1912 4 1912)\n(llvm:section-entry .fini 1892 20 1892)\n(llvm:section-entry .text 1536 356 1536)\n(llvm:section-entry .plt 1440 96 1440)\n(llvm:section-entry .init 1408 24 1408)\n(llvm:section-entry .rela.plt 1312 96 1312)\n(llvm:section-entry .rela.dyn 1120 192 1120)\n(llvm:section-entry .gnu.version_r 1072 48 1072)\n(llvm:section-entry .gnu.version 1054 18 1054)\n(llvm:section-entry .dynstr 912 141 912)\n(llvm:section-entry .dynsym 696 216 696)\n(llvm:section-entry .gnu.hash 664 28 664)\n(llvm:section-entry .note.ABI-tag 632 32 632)\n(llvm:section-entry .note.gnu.build-id 596 36 596)\n(llvm:section-entry .interp 568 27 568)\n(llvm:section-flags .shstrtab true false false)\n(llvm:section-flags .strtab true false false)\n(llvm:section-flags .symtab true false false)\n(llvm:section-flags .comment true false false)\n(llvm:section-flags .bss true true false)\n(llvm:section-flags .data true true false)\n(llvm:section-flags .got.plt true true false)\n(llvm:section-flags .got true true false)\n(llvm:section-flags .dynamic true true false)\n(llvm:section-flags .fini_array true true false)\n(llvm:section-flags .init_array true true false)\n(llvm:section-flags .eh_frame true false false)\n(llvm:section-flags .eh_frame_hdr true false false)\n(llvm:section-flags .rodata true false false)\n(llvm:section-flags .fini true false true)\n(llvm:section-flags .text true false true)\n(llvm:section-flags .plt true false true)\n(llvm:section-flags .init true false true)\n(llvm:section-flags .rela.plt true false false)\n(llvm:section-flags .rela.dyn true false false)\n(llvm:section-flags .gnu.version_r true false false)\n(llvm:section-flags .gnu.version true false false)\n(llvm:section-flags .dynstr true false false)\n(llvm:section-flags .dynsym true false false)\n(llvm:section-flags .gnu.hash true false false)\n(llvm:section-flags .note.ABI-tag true false false)\n(llvm:section-flags .note.gnu.build-id true false false)\n(llvm:section-flags .interp true false false)\n(llvm:symbol-entry abort 0 0 0 0)\n(llvm:symbol-entry __cxa_finalize 0 0 0 0)\n(llvm:symbol-entry __libc_start_main 0 0 0 0)\n(llvm:symbol-entry _init 1408 0 1408 1408)\n(llvm:symbol-entry main 1828 56 1828 1828)\n(llvm:symbol-entry _start 1536 52 1536 1536)\n(llvm:symbol-entry abort@GLIBC_2.17 0 0 0 0)\n(llvm:symbol-entry get_two 1884 8 1884 1884)\n(llvm:symbol-entry _fini 1892 0 1892 1892)\n(llvm:symbol-entry __cxa_finalize@GLIBC_2.17 0 0 0 0)\n(llvm:symbol-entry __libc_start_main@GLIBC_2.34 0 0 0 0)\n(llvm:symbol-entry frame_dummy 1824 0 1824 1824)\n(llvm:symbol-entry __do_global_dtors_aux 1740 0 1740 1740)\n(llvm:symbol-entry register_tm_clones 1680 0 1680 1680)\n(llvm:symbol-entry deregister_tm_clones 1632 0 1632 1632)\n(llvm:symbol-entry call_weak_fn 1588 20 1588 1588)\n(mapped 0 2176 0)\n(mapped 130504 616 64968)\n(named-region 0 2176 02)\n(named-region 130504 632 03)\n(named-region 568 27 .interp)\n(named-region 596 36 .note.gnu.build-id)\n(named-region 632 32 .note.ABI-tag)\n(named-region 664 28 .gnu.hash)\n(named-region 696 216 .dynsym)\n(named-region 912 141 .dynstr)\n(named-region 1054 18 .gnu.version)\n(named-region 1072 48 .gnu.version_r)\n(named-region 1120 192 .rela.dyn)\n(named-region 1312 96 .rela.plt)\n(named-region 1408 24 .init)\n(named-region 1440 96 .plt)\n(named-region 1536 356 .text)\n(named-region 1892 20 .fini)\n(named-region 1912 4 .rodata)\n(named-region 1916 68 .eh_frame_hdr)\n(named-region 1984 192 .eh_frame)\n(named-region 130504 8 .init_array)\n(named-region 130512 8 .fini_array)\n(named-region 130520 480 .dynamic)\n(named-region 131000 48 .got)\n(named-region 131048 56 .got.plt)\n(named-region 131104 16 .data)\n(named-region 131120 16 .bss)\n(named-region 0 36 .comment)\n(named-region 0 2232 .symtab)\n(named-region 0 579 .strtab)\n(named-region 0 259 .shstrtab)\n(named-symbol 1588 call_weak_fn)\n(named-symbol 1632 deregister_tm_clones)\n(named-symbol 1680 register_tm_clones)\n(named-symbol 1740 __do_global_dtors_aux)\n(named-symbol 1824 frame_dummy)\n(named-symbol 0 __libc_start_main@GLIBC_2.34)\n(named-symbol 0 __cxa_finalize@GLIBC_2.17)\n(named-symbol 1892 _fini)\n(named-symbol 1884 get_two)\n(named-symbol 0 abort@GLIBC_2.17)\n(named-symbol 1536 _start)\n(named-symbol 1828 main)\n(named-symbol 1408 _init)\n(named-symbol 0 __libc_start_main)\n(named-symbol 0 __cxa_finalize)\n(named-symbol 0 abort)\n(require libc.so.6)\n(section 568 27)\n(section 596 36)\n(section 632 32)\n(section 664 28)\n(section 696 216)\n(section 912 141)\n(section 1054 18)\n(section 1072 48)\n(section 1120 192)\n(section 1312 96)\n(section 1408 24)\n(section 1440 96)\n(section 1536 356)\n(section 1892 20)\n(section 1912 4)\n(section 1916 68)\n(section 1984 192)\n(section 130504 8)\n(section 130512 8)\n(section 130520 480)\n(section 131000 48)\n(section 131048 56)\n(section 131104 16)\n(section 131120 16)\n(section 0 36)\n(section 0 2232)\n(section 0 579)\n(section 0 259)\n(segment 0 2176 true false true)\n(segment 130504 632 true true false)\n(subarch v8)\n(symbol-chunk 1588 20 1588)\n(symbol-chunk 1884 8 1884)\n(symbol-chunk 1536 52 1536)\n(symbol-chunk 1828 56 1828)\n(symbol-value 1588 1588)\n(symbol-value 1632 1632)\n(symbol-value 1680 1680)\n(symbol-value 1740 1740)\n(symbol-value 1824 1824)\n(symbol-value 1892 1892)\n(symbol-value 1884 1884)\n(symbol-value 1536 1536)\n(symbol-value 1828 1828)\n(symbol-value 1408 1408)\n(symbol-value 0 0)\n(system \"\")\n(vendor \"\")\n"), -Attr("abi-name","\"aarch64-linux-gnu-elf\"")]), -Sections([Section(".shstrtab", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x00\x06\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x58\x0c\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x38\x00\x09\x00\x40\x00\x1d\x00\x1c\x00\x06\x00\x00\x00\x04\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x04\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x80\x08\x00\x00\x00\x00\x00\x00\x80\x08\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x01\x00\x00\x00\x06\x00\x00\x00\xc8\xfd\x00\x00\x00\x00\x00\x00\xc8\xfd\x01\x00\x00\x00\x00\x00\xc8\xfd\x01"), -Section(".strtab", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x00\x06\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x58\x0c\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x38\x00\x09\x00\x40\x00\x1d\x00\x1c\x00\x06\x00\x00\x00\x04\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x04\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x80\x08\x00\x00\x00\x00\x00\x00\x80\x08\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x01\x00\x00\x00\x06\x00\x00\x00\xc8\xfd\x00\x00\x00\x00\x00\x00\xc8\xfd\x01\x00\x00\x00\x00\x00\xc8\xfd\x01\x00\x00\x00\x00\x00\x68\x02\x00\x00\x00\x00\x00\x00\x78\x02\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x02\x00\x00\x00\x06\x00\x00\x00\xd8\xfd\x00\x00\x00\x00\x00\x00\xd8\xfd\x01\x00\x00\x00\x00\x00\xd8\xfd\x01\x00\x00\x00\x00\x00\xe0\x01\x00\x00\x00\x00\x00\x00\xe0\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x04\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x50\xe5\x74\x64\x04\x00\x00\x00\x7c\x07\x00\x00\x00\x00\x00\x00\x7c\x07\x00\x00\x00\x00\x00\x00\x7c\x07\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x51\xe5\x74\x64\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x52\xe5\x74\x64\x04\x00\x00\x00\xc8\xfd\x00\x00\x00\x00\x00\x00\xc8\xfd\x01\x00\x00\x00\x00\x00\xc8\xfd\x01\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x2f\x6c\x69\x62\x2f\x6c\x64\x2d\x6c\x69\x6e"), -Section(".comment", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x00\x06\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00"), -Section(".interp", 0x238, "\x2f\x6c\x69\x62\x2f\x6c\x64\x2d\x6c\x69\x6e\x75\x78\x2d\x61\x61\x72\x63\x68\x36\x34\x2e\x73\x6f\x2e\x31\x00"), -Section(".note.gnu.build-id", 0x254, "\x04\x00\x00\x00\x14\x00\x00\x00\x03\x00\x00\x00\x47\x4e\x55\x00\x48\x83\x5e\x50\x18\xb4\x98\x6e\x8b\x56\xca\x58\x0b\xe6\x49\x3b\xbc\xdb\xd8\x1d"), -Section(".note.ABI-tag", 0x278, "\x04\x00\x00\x00\x10\x00\x00\x00\x01\x00\x00\x00\x47\x4e\x55\x00\x00\x00\x00\x00\x03\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00"), -Section(".gnu.hash", 0x298, "\x01\x00\x00\x00\x01\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".dynsym", 0x2B8, "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x0b\x00\x80\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x17\x00\x20\x00\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x48\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x13\x00\x00\x00\x22\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x22\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x73\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".dynstr", 0x390, "\x00\x5f\x5f\x6c\x69\x62\x63\x5f\x73\x74\x61\x72\x74\x5f\x6d\x61\x69\x6e\x00\x5f\x5f\x63\x78\x61\x5f\x66\x69\x6e\x61\x6c\x69\x7a\x65\x00\x61\x62\x6f\x72\x74\x00\x6c\x69\x62\x63\x2e\x73\x6f\x2e\x36\x00\x47\x4c\x49\x42\x43\x5f\x32\x2e\x31\x37\x00\x47\x4c\x49\x42\x43\x5f\x32\x2e\x33\x34\x00\x5f\x49\x54\x4d\x5f\x64\x65\x72\x65\x67\x69\x73\x74\x65\x72\x54\x4d\x43\x6c\x6f\x6e\x65\x54\x61\x62\x6c\x65\x00\x5f\x5f\x67\x6d\x6f\x6e\x5f\x73\x74\x61\x72\x74\x5f\x5f\x00\x5f\x49\x54\x4d\x5f\x72\x65\x67\x69\x73\x74\x65\x72\x54\x4d\x43\x6c\x6f\x6e\x65\x54\x61\x62\x6c\x65\x00"), -Section(".gnu.version", 0x41E, "\x00\x00\x00\x00\x00\x00\x02\x00\x01\x00\x03\x00\x01\x00\x03\x00\x01\x00"), -Section(".gnu.version_r", 0x430, "\x01\x00\x02\x00\x28\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x97\x91\x96\x06\x00\x00\x03\x00\x32\x00\x00\x00\x10\x00\x00\x00\xb4\x91\x96\x06\x00\x00\x02\x00\x3d\x00\x00\x00\x00\x00\x00\x00"), -Section(".rela.dyn", 0x460, "\xc8\xfd\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x20\x07\x00\x00\x00\x00\x00\x00\xd0\xfd\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\xcc\x06\x00\x00\x00\x00\x00\x00\xd8\xff\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x24\x07\x00\x00\x00\x00\x00\x00\x28\x00\x02\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x28\x00\x02\x00\x00\x00\x00\x00\xc0\xff\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xc8\xff\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xd0\xff\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe0\xff\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".rela.plt", 0x520, "\x00\x00\x02\x00\x00\x00\x00\x00\x02\x04\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x08\x00\x02\x00\x00\x00\x00\x00\x02\x04\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x02\x00\x00\x00\x00\x00\x02\x04\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x18\x00\x02\x00\x00\x00\x00\x00\x02\x04\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".init", 0x580, "\x1f\x20\x03\xd5\xfd\x7b\xbf\xa9\xfd\x03\x00\x91\x2a\x00\x00\x94\xfd\x7b\xc1\xa8\xc0\x03\x5f\xd6"), -Section(".plt", 0x5A0, "\xf0\x7b\xbf\xa9\xf0\x00\x00\xf0\x11\xfe\x47\xf9\x10\xe2\x3f\x91\x20\x02\x1f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x10\x01\x00\x90\x11\x02\x40\xf9\x10\x02\x00\x91\x20\x02\x1f\xd6\x10\x01\x00\x90\x11\x06\x40\xf9\x10\x22\x00\x91\x20\x02\x1f\xd6\x10\x01\x00\x90\x11\x0a\x40\xf9\x10\x42\x00\x91\x20\x02\x1f\xd6\x10\x01\x00\x90\x11\x0e\x40\xf9\x10\x62\x00\x91\x20\x02\x1f\xd6"), -Section(".text", 0x600, "\x1f\x20\x03\xd5\x1d\x00\x80\xd2\x1e\x00\x80\xd2\xe5\x03\x00\xaa\xe1\x03\x40\xf9\xe2\x23\x00\x91\xe6\x03\x00\x91\xe0\x00\x00\xf0\x00\xec\x47\xf9\x03\x00\x80\xd2\x04\x00\x80\xd2\xe5\xff\xff\x97\xf0\xff\xff\x97\xe0\x00\x00\xf0\x00\xe8\x47\xf9\x40\x00\x00\xb4\xe8\xff\xff\x17\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x00\x01\x00\x90\x00\xc0\x00\x91\x01\x01\x00\x90\x21\xc0\x00\x91\x3f\x00\x00\xeb\xc0\x00\x00\x54\xe1\x00\x00\xf0\x21\xe0\x47\xf9\x61\x00\x00\xb4\xf0\x03\x01\xaa\x00\x02\x1f\xd6\xc0\x03\x5f\xd6\x00\x01\x00\x90\x00\xc0\x00\x91\x01\x01\x00\x90\x21\xc0\x00\x91\x21\x00\x00\xcb\x22\xfc\x7f\xd3\x41\x0c\x81\x8b\x21\xfc\x41\x93\xc1\x00\x00\xb4\xe2\x00\x00\xf0\x42\xf0\x47\xf9\x62\x00\x00\xb4\xf0\x03\x02\xaa\x00\x02\x1f\xd6\xc0\x03\x5f\xd6\xfd\x7b\xbe\xa9\xfd\x03\x00\x91\xf3\x0b\x00\xf9\x13\x01\x00\x90\x60\xc2\x40\x39\x40\x01\x00\x37\xe0\x00\x00\xf0\x00\xe4\x47\xf9\x80\x00\x00\xb4\x00\x01\x00\x90\x00\x14\x40\xf9\xb6\xff\xff\x97\xd9\xff\xff\x97\x20\x00\x80\x52\x60\xc2\x00\x39\xf3\x0b\x40\xf9\xfd\x7b\xc2\xa8\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\xdc\xff\xff\x17\xfd\x7b\xbf\xa9\xfd\x03\x00\x91\x00\x01\x00\x90\x00\xd0\x00\x91\x21\x00\x80\x52\x01\x00\x00\xb9\x08\x00\x00\x94\xe1\x03\x00\x2a\x00\x01\x00\x90\x00\xe0\x00\x91\x01\x00\x00\xb9\x00\x00\x80\x52\xfd\x7b\xc1\xa8\xc0\x03\x5f\xd6\x40\x00\x80\x52\xc0\x03\x5f\xd6"), -Section(".fini", 0x764, "\x1f\x20\x03\xd5\xfd\x7b\xbf\xa9\xfd\x03\x00\x91\xfd\x7b\xc1\xa8\xc0\x03\x5f\xd6"), -Section(".rodata", 0x778, "\x01\x00\x02\x00"), -Section(".eh_frame_hdr", 0x77C, "\x01\x1b\x03\x3b\x40\x00\x00\x00\x07\x00\x00\x00\x84\xfe\xff\xff\x58\x00\x00\x00\xe4\xfe\xff\xff\x6c\x00\x00\x00\x14\xff\xff\xff\x80\x00\x00\x00\x50\xff\xff\xff\x94\x00\x00\x00\xa4\xff\xff\xff\xb8\x00\x00\x00\xa8\xff\xff\xff\xcc\x00\x00\x00\xe0\xff\xff\xff\xec\x00\x00\x00"), -Section(".eh_frame", 0x7C0, "\x10\x00\x00\x00\x00\x00\x00\x00\x01\x7a\x52\x00\x04\x78\x1e\x01\x1b\x0c\x1f\x00\x10\x00\x00\x00\x18\x00\x00\x00\x24\xfe\xff\xff\x34\x00\x00\x00\x00\x41\x07\x1e\x10\x00\x00\x00\x2c\x00\x00\x00\x70\xfe\xff\xff\x30\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x40\x00\x00\x00\x8c\xfe\xff\xff\x3c\x00\x00\x00\x00\x00\x00\x00\x20\x00\x00\x00\x54\x00\x00\x00\xb4\xfe\xff\xff\x48\x00\x00\x00\x00\x41\x0e\x20\x9d\x04\x9e\x03\x42\x93\x02\x4e\xde\xdd\xd3\x0e\x00\x00\x00\x00\x10\x00\x00\x00\x78\x00\x00\x00\xe4\xfe\xff\xff\x04\x00\x00\x00\x00\x00\x00\x00\x1c\x00\x00\x00\x8c\x00\x00\x00\xd4\xfe\xff\xff\x38\x00\x00\x00\x00\x41\x0e\x10\x9d\x02\x9e\x01\x4c\xde\xdd\x0e\x00\x00\x00\x00\x10\x00\x00\x00\xac\x00\x00\x00\xec\xfe\xff\xff\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".fini_array", 0x1FDD0, "\xcc\x06\x00\x00\x00\x00\x00\x00"), -Section(".dynamic", 0x1FDD8, "\x01\x00\x00\x00\x00\x00\x00\x00\x28\x00\x00\x00\x00\x00\x00\x00\x0c\x00\x00\x00\x00\x00\x00\x00\x80\x05\x00\x00\x00\x00\x00\x00\x0d\x00\x00\x00\x00\x00\x00\x00\x64\x07\x00\x00\x00\x00\x00\x00\x19\x00\x00\x00\x00\x00\x00\x00\xc8\xfd\x01\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x1a\x00\x00\x00\x00\x00\x00\x00\xd0\xfd\x01\x00\x00\x00\x00\x00\x1c\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\xf5\xfe\xff\x6f\x00\x00\x00\x00\x98\x02\x00\x00\x00\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x90\x03\x00\x00\x00\x00\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\xb8\x02\x00\x00\x00\x00\x00\x00\x0a\x00\x00\x00\x00\x00\x00\x00\x8d\x00\x00\x00\x00\x00\x00\x00\x0b\x00\x00\x00\x00\x00\x00\x00\x18\x00\x00\x00\x00\x00\x00\x00\x15\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\xe8\xff\x01\x00\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x60\x00\x00\x00\x00\x00\x00\x00\x14\x00\x00\x00\x00\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x17\x00\x00\x00\x00\x00\x00\x00\x20\x05\x00\x00\x00\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x60\x04\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\xc0\x00\x00\x00\x00\x00\x00\x00\x09\x00\x00\x00\x00\x00\x00\x00\x18\x00\x00\x00\x00\x00\x00\x00\xfb\xff\xff\x6f\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\xfe\xff\xff\x6f\x00\x00\x00\x00\x30\x04\x00\x00\x00\x00\x00\x00\xff\xff\xff\x6f\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\xf0\xff\xff\x6f\x00\x00\x00\x00\x1e\x04\x00\x00\x00\x00\x00\x00\xf9\xff\xff\x6f\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".got", 0x1FFB8, "\xd8\xfd\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x24\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".got.plt", 0x1FFE8, "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xa0\x05\x00\x00\x00\x00\x00\x00\xa0\x05\x00\x00\x00\x00\x00\x00\xa0\x05\x00\x00\x00\x00\x00\x00\xa0\x05\x00\x00\x00\x00\x00\x00"), -Section(".data", 0x20020, "\x00\x00\x00\x00\x00\x00\x00\x00\x28\x00\x02\x00\x00\x00\x00\x00"), -Section(".init_array", 0x1FDC8, "\x20\x07\x00\x00\x00\x00\x00\x00")]), -Memmap([Annotation(Region(0x0,0x87F), Attr("segment","02 0 2176")), -Annotation(Region(0x600,0x633), Attr("symbol","\"_start\"")), -Annotation(Region(0x0,0x102), Attr("section","\".shstrtab\"")), -Annotation(Region(0x0,0x242), Attr("section","\".strtab\"")), -Annotation(Region(0x0,0x23), Attr("section","\".comment\"")), -Annotation(Region(0x238,0x252), Attr("section","\".interp\"")), -Annotation(Region(0x254,0x277), Attr("section","\".note.gnu.build-id\"")), -Annotation(Region(0x278,0x297), Attr("section","\".note.ABI-tag\"")), -Annotation(Region(0x298,0x2B3), Attr("section","\".gnu.hash\"")), -Annotation(Region(0x2B8,0x38F), Attr("section","\".dynsym\"")), -Annotation(Region(0x390,0x41C), Attr("section","\".dynstr\"")), -Annotation(Region(0x41E,0x42F), Attr("section","\".gnu.version\"")), -Annotation(Region(0x430,0x45F), Attr("section","\".gnu.version_r\"")), -Annotation(Region(0x460,0x51F), Attr("section","\".rela.dyn\"")), -Annotation(Region(0x520,0x57F), Attr("section","\".rela.plt\"")), -Annotation(Region(0x580,0x597), Attr("section","\".init\"")), -Annotation(Region(0x5A0,0x5FF), Attr("section","\".plt\"")), -Annotation(Region(0x580,0x597), Attr("code-region","()")), -Annotation(Region(0x5A0,0x5FF), Attr("code-region","()")), -Annotation(Region(0x600,0x633), Attr("symbol-info","_start 0x600 52")), -Annotation(Region(0x634,0x647), Attr("symbol","\"call_weak_fn\"")), -Annotation(Region(0x634,0x647), Attr("symbol-info","call_weak_fn 0x634 20")), -Annotation(Region(0x724,0x75B), Attr("symbol","\"main\"")), -Annotation(Region(0x600,0x763), Attr("section","\".text\"")), -Annotation(Region(0x600,0x763), Attr("code-region","()")), -Annotation(Region(0x724,0x75B), Attr("symbol-info","main 0x724 56")), -Annotation(Region(0x75C,0x763), Attr("symbol","\"get_two\"")), -Annotation(Region(0x75C,0x763), Attr("symbol-info","get_two 0x75C 8")), -Annotation(Region(0x764,0x777), Attr("section","\".fini\"")), -Annotation(Region(0x764,0x777), Attr("code-region","()")), -Annotation(Region(0x778,0x77B), Attr("section","\".rodata\"")), -Annotation(Region(0x77C,0x7BF), Attr("section","\".eh_frame_hdr\"")), -Annotation(Region(0x7C0,0x87F), Attr("section","\".eh_frame\"")), -Annotation(Region(0x1FDC8,0x2002F), Attr("segment","03 0x1FDC8 632")), -Annotation(Region(0x1FDD0,0x1FDD7), Attr("section","\".fini_array\"")), -Annotation(Region(0x1FDD8,0x1FFB7), Attr("section","\".dynamic\"")), -Annotation(Region(0x1FFB8,0x1FFE7), Attr("section","\".got\"")), -Annotation(Region(0x1FFE8,0x2001F), Attr("section","\".got.plt\"")), -Annotation(Region(0x20020,0x2002F), Attr("section","\".data\"")), -Annotation(Region(0x1FDC8,0x1FDCF), Attr("section","\".init_array\""))]), -Program(Tid(1_609, "%00000649"), Attrs([]), - Subs([Sub(Tid(1_557, "@__cxa_finalize"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x5D0"), -Attr("stub","()")]), "__cxa_finalize", Args([Arg(Tid(1_610, "%0000064a"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("__cxa_finalize_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(945, "@__cxa_finalize"), - Attrs([Attr("address","0x5D0")]), Phis([]), -Defs([Def(Tid(1_193, "%000004a9"), Attrs([Attr("address","0x5D0"), -Attr("insn","adrp x16, #131072")]), Var("R16",Imm(64)), Int(131072,64)), -Def(Tid(1_200, "%000004b0"), Attrs([Attr("address","0x5D4"), -Attr("insn","ldr x17, [x16, #0x8]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(1_206, "%000004b6"), Attrs([Attr("address","0x5D8"), -Attr("insn","add x16, x16, #0x8")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(8,64)))]), Jmps([Call(Tid(1_211, "%000004bb"), - Attrs([Attr("address","0x5DC"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), -Sub(Tid(1_558, "@__do_global_dtors_aux"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x6CC")]), - "__do_global_dtors_aux", Args([Arg(Tid(1_611, "%0000064b"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("__do_global_dtors_aux_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(677, "@__do_global_dtors_aux"), - Attrs([Attr("address","0x6CC")]), Phis([]), Defs([Def(Tid(681, "%000002a9"), - Attrs([Attr("address","0x6CC"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("#3",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(18446744073709551584,64))), -Def(Tid(687, "%000002af"), Attrs([Attr("address","0x6CC"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("#3",Imm(64)),Var("R29",Imm(64)),LittleEndian(),64)), -Def(Tid(693, "%000002b5"), Attrs([Attr("address","0x6CC"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("#3",Imm(64)),Int(8,64)),Var("R30",Imm(64)),LittleEndian(),64)), -Def(Tid(697, "%000002b9"), Attrs([Attr("address","0x6CC"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("R31",Imm(64)), -Var("#3",Imm(64))), Def(Tid(703, "%000002bf"), - Attrs([Attr("address","0x6D0"), Attr("insn","mov x29, sp")]), - Var("R29",Imm(64)), Var("R31",Imm(64))), Def(Tid(711, "%000002c7"), - Attrs([Attr("address","0x6D4"), Attr("insn","str x19, [sp, #0x10]")]), - Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(16,64)),Var("R19",Imm(64)),LittleEndian(),64)), -Def(Tid(716, "%000002cc"), Attrs([Attr("address","0x6D8"), -Attr("insn","adrp x19, #131072")]), Var("R19",Imm(64)), Int(131072,64)), -Def(Tid(723, "%000002d3"), Attrs([Attr("address","0x6DC"), -Attr("insn","ldrb w0, [x19, #0x30]")]), Var("R0",Imm(64)), -UNSIGNED(64,Load(Var("mem",Mem(64,8)),PLUS(Var("R19",Imm(64)),Int(48,64)),LittleEndian(),8)))]), -Jmps([Goto(Tid(729, "%000002d9"), Attrs([Attr("address","0x6E0"), -Attr("insn","tbnz w0, #0x0, #0x28")]), - EQ(Extract(0,0,Var("R0",Imm(64))),Int(1,1)), Direct(Tid(727, "%000002d7"))), -Goto(Tid(1_599, "%0000063f"), Attrs([]), Int(1,1), -Direct(Tid(890, "%0000037a")))])), Blk(Tid(890, "%0000037a"), - Attrs([Attr("address","0x6E4")]), Phis([]), Defs([Def(Tid(893, "%0000037d"), - Attrs([Attr("address","0x6E4"), Attr("insn","adrp x0, #126976")]), - Var("R0",Imm(64)), Int(126976,64)), Def(Tid(900, "%00000384"), - Attrs([Attr("address","0x6E8"), Attr("insn","ldr x0, [x0, #0xfc8]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(4040,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(906, "%0000038a"), Attrs([Attr("address","0x6EC"), -Attr("insn","cbz x0, #0x10")]), EQ(Var("R0",Imm(64)),Int(0,64)), -Direct(Tid(904, "%00000388"))), Goto(Tid(1_600, "%00000640"), Attrs([]), - Int(1,1), Direct(Tid(929, "%000003a1")))])), Blk(Tid(929, "%000003a1"), - Attrs([Attr("address","0x6F0")]), Phis([]), Defs([Def(Tid(932, "%000003a4"), - Attrs([Attr("address","0x6F0"), Attr("insn","adrp x0, #131072")]), - Var("R0",Imm(64)), Int(131072,64)), Def(Tid(939, "%000003ab"), - Attrs([Attr("address","0x6F4"), Attr("insn","ldr x0, [x0, #0x28]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(40,64)),LittleEndian(),64)), -Def(Tid(944, "%000003b0"), Attrs([Attr("address","0x6F8"), -Attr("insn","bl #-0x128")]), Var("R30",Imm(64)), Int(1788,64))]), -Jmps([Call(Tid(947, "%000003b3"), Attrs([Attr("address","0x6F8"), -Attr("insn","bl #-0x128")]), Int(1,1), -(Direct(Tid(1_557, "@__cxa_finalize")),Direct(Tid(904, "%00000388"))))])), -Blk(Tid(904, "%00000388"), Attrs([Attr("address","0x6FC")]), Phis([]), -Defs([Def(Tid(912, "%00000390"), Attrs([Attr("address","0x6FC"), -Attr("insn","bl #-0x9c")]), Var("R30",Imm(64)), Int(1792,64))]), -Jmps([Call(Tid(914, "%00000392"), Attrs([Attr("address","0x6FC"), -Attr("insn","bl #-0x9c")]), Int(1,1), -(Direct(Tid(1_571, "@deregister_tm_clones")),Direct(Tid(916, "%00000394"))))])), -Blk(Tid(916, "%00000394"), Attrs([Attr("address","0x700")]), Phis([]), -Defs([Def(Tid(919, "%00000397"), Attrs([Attr("address","0x700"), -Attr("insn","mov w0, #0x1")]), Var("R0",Imm(64)), Int(1,64)), -Def(Tid(927, "%0000039f"), Attrs([Attr("address","0x704"), -Attr("insn","strb w0, [x19, #0x30]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R19",Imm(64)),Int(48,64)),Extract(7,0,Var("R0",Imm(64))),LittleEndian(),8))]), -Jmps([Goto(Tid(1_601, "%00000641"), Attrs([]), Int(1,1), -Direct(Tid(727, "%000002d7")))])), Blk(Tid(727, "%000002d7"), - Attrs([Attr("address","0x708")]), Phis([]), Defs([Def(Tid(737, "%000002e1"), - Attrs([Attr("address","0x708"), Attr("insn","ldr x19, [sp, #0x10]")]), - Var("R19",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(16,64)),LittleEndian(),64)), -Def(Tid(744, "%000002e8"), Attrs([Attr("address","0x70C"), -Attr("insn","ldp x29, x30, [sp], #0x20")]), Var("R29",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(749, "%000002ed"), Attrs([Attr("address","0x70C"), -Attr("insn","ldp x29, x30, [sp], #0x20")]), Var("R30",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(753, "%000002f1"), Attrs([Attr("address","0x70C"), -Attr("insn","ldp x29, x30, [sp], #0x20")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(32,64)))]), Jmps([Call(Tid(758, "%000002f6"), - Attrs([Attr("address","0x710"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), Sub(Tid(1_562, "@__libc_start_main"), - Attrs([Attr("c.proto","signed (*)(signed (*)(signed , char** , char** );* main, signed , char** , \nvoid* auxv)"), -Attr("address","0x5C0"), Attr("stub","()")]), "__libc_start_main", - Args([Arg(Tid(1_612, "%0000064c"), - Attrs([Attr("c.layout","**[ : 64]"), -Attr("c.data","Top:u64 ptr ptr"), -Attr("c.type","signed (*)(signed , char** , char** );*")]), - Var("__libc_start_main_main",Imm(64)), Var("R0",Imm(64)), In()), -Arg(Tid(1_613, "%0000064d"), Attrs([Attr("c.layout","[signed : 32]"), -Attr("c.data","Top:u32"), Attr("c.type","signed")]), - Var("__libc_start_main_arg2",Imm(32)), LOW(32,Var("R1",Imm(64))), In()), -Arg(Tid(1_614, "%0000064e"), Attrs([Attr("c.layout","**[char : 8]"), -Attr("c.data","Top:u8 ptr ptr"), Attr("c.type","char**")]), - Var("__libc_start_main_arg3",Imm(64)), Var("R2",Imm(64)), Both()), -Arg(Tid(1_615, "%0000064f"), Attrs([Attr("c.layout","*[ : 8]"), -Attr("c.data","{} ptr"), Attr("c.type","void*")]), - Var("__libc_start_main_auxv",Imm(64)), Var("R3",Imm(64)), Both()), -Arg(Tid(1_616, "%00000650"), Attrs([Attr("c.layout","[signed : 32]"), -Attr("c.data","Top:u32"), Attr("c.type","signed")]), - Var("__libc_start_main_result",Imm(32)), LOW(32,Var("R0",Imm(64))), -Out())]), Blks([Blk(Tid(504, "@__libc_start_main"), - Attrs([Attr("address","0x5C0")]), Phis([]), -Defs([Def(Tid(1_171, "%00000493"), Attrs([Attr("address","0x5C0"), -Attr("insn","adrp x16, #131072")]), Var("R16",Imm(64)), Int(131072,64)), -Def(Tid(1_178, "%0000049a"), Attrs([Attr("address","0x5C4"), -Attr("insn","ldr x17, [x16]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R16",Imm(64)),LittleEndian(),64)), -Def(Tid(1_184, "%000004a0"), Attrs([Attr("address","0x5C8"), -Attr("insn","add x16, x16, #0x0")]), Var("R16",Imm(64)), -Var("R16",Imm(64)))]), Jmps([Call(Tid(1_189, "%000004a5"), - Attrs([Attr("address","0x5CC"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), Sub(Tid(1_563, "@_fini"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x764")]), - "_fini", Args([Arg(Tid(1_617, "%00000651"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("_fini_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(32, "@_fini"), - Attrs([Attr("address","0x764")]), Phis([]), Defs([Def(Tid(38, "%00000026"), - Attrs([Attr("address","0x768"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("#0",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(18446744073709551600,64))), -Def(Tid(44, "%0000002c"), Attrs([Attr("address","0x768"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("#0",Imm(64)),Var("R29",Imm(64)),LittleEndian(),64)), -Def(Tid(50, "%00000032"), Attrs([Attr("address","0x768"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("#0",Imm(64)),Int(8,64)),Var("R30",Imm(64)),LittleEndian(),64)), -Def(Tid(54, "%00000036"), Attrs([Attr("address","0x768"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("R31",Imm(64)), -Var("#0",Imm(64))), Def(Tid(60, "%0000003c"), Attrs([Attr("address","0x76C"), -Attr("insn","mov x29, sp")]), Var("R29",Imm(64)), Var("R31",Imm(64))), -Def(Tid(67, "%00000043"), Attrs([Attr("address","0x770"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R29",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(72, "%00000048"), Attrs([Attr("address","0x770"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R30",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(76, "%0000004c"), Attrs([Attr("address","0x770"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(16,64)))]), Jmps([Call(Tid(81, "%00000051"), - Attrs([Attr("address","0x774"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), Sub(Tid(1_564, "@_init"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x580")]), - "_init", Args([Arg(Tid(1_618, "%00000652"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("_init_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(1_379, "@_init"), - Attrs([Attr("address","0x580")]), Phis([]), -Defs([Def(Tid(1_385, "%00000569"), Attrs([Attr("address","0x584"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("#6",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(18446744073709551600,64))), -Def(Tid(1_391, "%0000056f"), Attrs([Attr("address","0x584"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("#6",Imm(64)),Var("R29",Imm(64)),LittleEndian(),64)), -Def(Tid(1_397, "%00000575"), Attrs([Attr("address","0x584"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("#6",Imm(64)),Int(8,64)),Var("R30",Imm(64)),LittleEndian(),64)), -Def(Tid(1_401, "%00000579"), Attrs([Attr("address","0x584"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("R31",Imm(64)), -Var("#6",Imm(64))), Def(Tid(1_407, "%0000057f"), - Attrs([Attr("address","0x588"), Attr("insn","mov x29, sp")]), - Var("R29",Imm(64)), Var("R31",Imm(64))), Def(Tid(1_412, "%00000584"), - Attrs([Attr("address","0x58C"), Attr("insn","bl #0xa8")]), - Var("R30",Imm(64)), Int(1424,64))]), Jmps([Call(Tid(1_414, "%00000586"), - Attrs([Attr("address","0x58C"), Attr("insn","bl #0xa8")]), Int(1,1), -(Direct(Tid(1_569, "@call_weak_fn")),Direct(Tid(1_416, "%00000588"))))])), -Blk(Tid(1_416, "%00000588"), Attrs([Attr("address","0x590")]), Phis([]), -Defs([Def(Tid(1_421, "%0000058d"), Attrs([Attr("address","0x590"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R29",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(1_426, "%00000592"), Attrs([Attr("address","0x590"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R30",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(1_430, "%00000596"), Attrs([Attr("address","0x590"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(16,64)))]), Jmps([Call(Tid(1_435, "%0000059b"), - Attrs([Attr("address","0x594"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), Sub(Tid(1_565, "@_start"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x600"), -Attr("stub","()"), Attr("entry-point","()")]), "_start", - Args([Arg(Tid(1_619, "%00000653"), Attrs([Attr("c.layout","[signed : 32]"), -Attr("c.data","Top:u32"), Attr("c.type","signed")]), - Var("_start_result",Imm(32)), LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(441, "@_start"), Attrs([Attr("address","0x600")]), Phis([]), -Defs([Def(Tid(446, "%000001be"), Attrs([Attr("address","0x604"), -Attr("insn","mov x29, #0x0")]), Var("R29",Imm(64)), Int(0,64)), -Def(Tid(451, "%000001c3"), Attrs([Attr("address","0x608"), -Attr("insn","mov x30, #0x0")]), Var("R30",Imm(64)), Int(0,64)), -Def(Tid(457, "%000001c9"), Attrs([Attr("address","0x60C"), -Attr("insn","mov x5, x0")]), Var("R5",Imm(64)), Var("R0",Imm(64))), -Def(Tid(464, "%000001d0"), Attrs([Attr("address","0x610"), -Attr("insn","ldr x1, [sp]")]), Var("R1",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(470, "%000001d6"), Attrs([Attr("address","0x614"), -Attr("insn","add x2, sp, #0x8")]), Var("R2",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(8,64))), Def(Tid(476, "%000001dc"), - Attrs([Attr("address","0x618"), Attr("insn","mov x6, sp")]), - Var("R6",Imm(64)), Var("R31",Imm(64))), Def(Tid(481, "%000001e1"), - Attrs([Attr("address","0x61C"), Attr("insn","adrp x0, #126976")]), - Var("R0",Imm(64)), Int(126976,64)), Def(Tid(488, "%000001e8"), - Attrs([Attr("address","0x620"), Attr("insn","ldr x0, [x0, #0xfd8]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(4056,64)),LittleEndian(),64)), -Def(Tid(493, "%000001ed"), Attrs([Attr("address","0x624"), -Attr("insn","mov x3, #0x0")]), Var("R3",Imm(64)), Int(0,64)), -Def(Tid(498, "%000001f2"), Attrs([Attr("address","0x628"), -Attr("insn","mov x4, #0x0")]), Var("R4",Imm(64)), Int(0,64)), -Def(Tid(503, "%000001f7"), Attrs([Attr("address","0x62C"), -Attr("insn","bl #-0x6c")]), Var("R30",Imm(64)), Int(1584,64))]), -Jmps([Call(Tid(506, "%000001fa"), Attrs([Attr("address","0x62C"), -Attr("insn","bl #-0x6c")]), Int(1,1), -(Direct(Tid(1_562, "@__libc_start_main")),Direct(Tid(508, "%000001fc"))))])), -Blk(Tid(508, "%000001fc"), Attrs([Attr("address","0x630")]), Phis([]), -Defs([Def(Tid(511, "%000001ff"), Attrs([Attr("address","0x630"), -Attr("insn","bl #-0x40")]), Var("R30",Imm(64)), Int(1588,64))]), -Jmps([Call(Tid(514, "%00000202"), Attrs([Attr("address","0x630"), -Attr("insn","bl #-0x40")]), Int(1,1), -(Direct(Tid(1_568, "@abort")),Direct(Tid(1_602, "%00000642"))))])), -Blk(Tid(1_602, "%00000642"), Attrs([]), Phis([]), Defs([]), -Jmps([Call(Tid(1_603, "%00000643"), Attrs([]), Int(1,1), -(Direct(Tid(1_569, "@call_weak_fn")),))]))])), Sub(Tid(1_568, "@abort"), - Attrs([Attr("noreturn","()"), Attr("c.proto","void (*)(void)"), -Attr("address","0x5F0"), Attr("stub","()")]), "abort", Args([]), -Blks([Blk(Tid(512, "@abort"), Attrs([Attr("address","0x5F0")]), Phis([]), -Defs([Def(Tid(1_237, "%000004d5"), Attrs([Attr("address","0x5F0"), -Attr("insn","adrp x16, #131072")]), Var("R16",Imm(64)), Int(131072,64)), -Def(Tid(1_244, "%000004dc"), Attrs([Attr("address","0x5F4"), -Attr("insn","ldr x17, [x16, #0x18]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(24,64)),LittleEndian(),64)), -Def(Tid(1_250, "%000004e2"), Attrs([Attr("address","0x5F8"), -Attr("insn","add x16, x16, #0x18")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(24,64)))]), Jmps([Call(Tid(1_255, "%000004e7"), - Attrs([Attr("address","0x5FC"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), Sub(Tid(1_569, "@call_weak_fn"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x634")]), - "call_weak_fn", Args([Arg(Tid(1_620, "%00000654"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("call_weak_fn_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(516, "@call_weak_fn"), - Attrs([Attr("address","0x634")]), Phis([]), Defs([Def(Tid(519, "%00000207"), - Attrs([Attr("address","0x634"), Attr("insn","adrp x0, #126976")]), - Var("R0",Imm(64)), Int(126976,64)), Def(Tid(526, "%0000020e"), - Attrs([Attr("address","0x638"), Attr("insn","ldr x0, [x0, #0xfd0]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(4048,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(532, "%00000214"), Attrs([Attr("address","0x63C"), -Attr("insn","cbz x0, #0x8")]), EQ(Var("R0",Imm(64)),Int(0,64)), -Direct(Tid(530, "%00000212"))), Goto(Tid(1_604, "%00000644"), Attrs([]), - Int(1,1), Direct(Tid(1_009, "%000003f1")))])), Blk(Tid(530, "%00000212"), - Attrs([Attr("address","0x644")]), Phis([]), Defs([]), -Jmps([Call(Tid(538, "%0000021a"), Attrs([Attr("address","0x644"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))])), -Blk(Tid(1_009, "%000003f1"), Attrs([Attr("address","0x640")]), Phis([]), -Defs([]), Jmps([Goto(Tid(1_012, "%000003f4"), Attrs([Attr("address","0x640"), -Attr("insn","b #-0x60")]), Int(1,1), -Direct(Tid(1_010, "@__gmon_start__")))])), Blk(Tid(1_010, "@__gmon_start__"), - Attrs([Attr("address","0x5E0")]), Phis([]), -Defs([Def(Tid(1_215, "%000004bf"), Attrs([Attr("address","0x5E0"), -Attr("insn","adrp x16, #131072")]), Var("R16",Imm(64)), Int(131072,64)), -Def(Tid(1_222, "%000004c6"), Attrs([Attr("address","0x5E4"), -Attr("insn","ldr x17, [x16, #0x10]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(16,64)),LittleEndian(),64)), -Def(Tid(1_228, "%000004cc"), Attrs([Attr("address","0x5E8"), -Attr("insn","add x16, x16, #0x10")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(16,64)))]), Jmps([Call(Tid(1_233, "%000004d1"), - Attrs([Attr("address","0x5EC"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), -Sub(Tid(1_571, "@deregister_tm_clones"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x660")]), - "deregister_tm_clones", Args([Arg(Tid(1_621, "%00000655"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("deregister_tm_clones_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(552, "@deregister_tm_clones"), - Attrs([Attr("address","0x660")]), Phis([]), Defs([Def(Tid(555, "%0000022b"), - Attrs([Attr("address","0x660"), Attr("insn","adrp x0, #131072")]), - Var("R0",Imm(64)), Int(131072,64)), Def(Tid(561, "%00000231"), - Attrs([Attr("address","0x664"), Attr("insn","add x0, x0, #0x30")]), - Var("R0",Imm(64)), PLUS(Var("R0",Imm(64)),Int(48,64))), -Def(Tid(566, "%00000236"), Attrs([Attr("address","0x668"), -Attr("insn","adrp x1, #131072")]), Var("R1",Imm(64)), Int(131072,64)), -Def(Tid(572, "%0000023c"), Attrs([Attr("address","0x66C"), -Attr("insn","add x1, x1, #0x30")]), Var("R1",Imm(64)), -PLUS(Var("R1",Imm(64)),Int(48,64))), Def(Tid(578, "%00000242"), - Attrs([Attr("address","0x670"), Attr("insn","cmp x1, x0")]), - Var("#1",Imm(64)), NOT(Var("R0",Imm(64)))), Def(Tid(583, "%00000247"), - Attrs([Attr("address","0x670"), Attr("insn","cmp x1, x0")]), - Var("#2",Imm(64)), PLUS(Var("R1",Imm(64)),NOT(Var("R0",Imm(64))))), -Def(Tid(589, "%0000024d"), Attrs([Attr("address","0x670"), -Attr("insn","cmp x1, x0")]), Var("VF",Imm(1)), -NEQ(SIGNED(65,PLUS(Var("#2",Imm(64)),Int(1,64))),PLUS(PLUS(SIGNED(65,Var("R1",Imm(64))),SIGNED(65,Var("#1",Imm(64)))),Int(1,65)))), -Def(Tid(595, "%00000253"), Attrs([Attr("address","0x670"), -Attr("insn","cmp x1, x0")]), Var("CF",Imm(1)), -NEQ(UNSIGNED(65,PLUS(Var("#2",Imm(64)),Int(1,64))),PLUS(PLUS(UNSIGNED(65,Var("R1",Imm(64))),UNSIGNED(65,Var("#1",Imm(64)))),Int(1,65)))), -Def(Tid(599, "%00000257"), Attrs([Attr("address","0x670"), -Attr("insn","cmp x1, x0")]), Var("ZF",Imm(1)), -EQ(PLUS(Var("#2",Imm(64)),Int(1,64)),Int(0,64))), Def(Tid(603, "%0000025b"), - Attrs([Attr("address","0x670"), Attr("insn","cmp x1, x0")]), - Var("NF",Imm(1)), Extract(63,63,PLUS(Var("#2",Imm(64)),Int(1,64))))]), -Jmps([Goto(Tid(609, "%00000261"), Attrs([Attr("address","0x674"), -Attr("insn","b.eq #0x18")]), EQ(Var("ZF",Imm(1)),Int(1,1)), -Direct(Tid(607, "%0000025f"))), Goto(Tid(1_605, "%00000645"), Attrs([]), - Int(1,1), Direct(Tid(979, "%000003d3")))])), Blk(Tid(979, "%000003d3"), - Attrs([Attr("address","0x678")]), Phis([]), Defs([Def(Tid(982, "%000003d6"), - Attrs([Attr("address","0x678"), Attr("insn","adrp x1, #126976")]), - Var("R1",Imm(64)), Int(126976,64)), Def(Tid(989, "%000003dd"), - Attrs([Attr("address","0x67C"), Attr("insn","ldr x1, [x1, #0xfc0]")]), - Var("R1",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R1",Imm(64)),Int(4032,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(994, "%000003e2"), Attrs([Attr("address","0x680"), -Attr("insn","cbz x1, #0xc")]), EQ(Var("R1",Imm(64)),Int(0,64)), -Direct(Tid(607, "%0000025f"))), Goto(Tid(1_606, "%00000646"), Attrs([]), - Int(1,1), Direct(Tid(998, "%000003e6")))])), Blk(Tid(607, "%0000025f"), - Attrs([Attr("address","0x68C")]), Phis([]), Defs([]), -Jmps([Call(Tid(615, "%00000267"), Attrs([Attr("address","0x68C"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))])), -Blk(Tid(998, "%000003e6"), Attrs([Attr("address","0x684")]), Phis([]), -Defs([Def(Tid(1_002, "%000003ea"), Attrs([Attr("address","0x684"), -Attr("insn","mov x16, x1")]), Var("R16",Imm(64)), Var("R1",Imm(64)))]), -Jmps([Call(Tid(1_007, "%000003ef"), Attrs([Attr("address","0x688"), -Attr("insn","br x16")]), Int(1,1), (Indirect(Var("R16",Imm(64))),))]))])), -Sub(Tid(1_574, "@frame_dummy"), Attrs([Attr("c.proto","signed (*)(void)"), -Attr("address","0x720")]), "frame_dummy", Args([Arg(Tid(1_622, "%00000656"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("frame_dummy_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(766, "@frame_dummy"), - Attrs([Attr("address","0x720")]), Phis([]), Defs([]), -Jmps([Call(Tid(768, "%00000300"), Attrs([Attr("address","0x720"), -Attr("insn","b #-0x90")]), Int(1,1), -(Direct(Tid(1_577, "@register_tm_clones")),))]))])), -Sub(Tid(1_575, "@get_two"), Attrs([Attr("c.proto","signed (*)(void)"), -Attr("address","0x75C")]), "get_two", Args([Arg(Tid(1_623, "%00000657"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("get_two_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(826, "@get_two"), - Attrs([Attr("address","0x75C")]), Phis([]), Defs([Def(Tid(832, "%00000340"), - Attrs([Attr("address","0x75C"), Attr("insn","mov w0, #0x2")]), - Var("R0",Imm(64)), Int(2,64))]), Jmps([Call(Tid(837, "%00000345"), - Attrs([Attr("address","0x760"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), Sub(Tid(1_576, "@main"), - Attrs([Attr("c.proto","signed (*)(signed argc, const char** argv)"), -Attr("address","0x724")]), "main", Args([Arg(Tid(1_624, "%00000658"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("main_argc",Imm(32)), -LOW(32,Var("R0",Imm(64))), In()), Arg(Tid(1_625, "%00000659"), - Attrs([Attr("c.layout","**[char : 8]"), Attr("c.data","Top:u8 ptr ptr"), -Attr("c.type"," const char**")]), Var("main_argv",Imm(64)), -Var("R1",Imm(64)), Both()), Arg(Tid(1_626, "%0000065a"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("main_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(770, "@main"), - Attrs([Attr("address","0x724")]), Phis([]), Defs([Def(Tid(774, "%00000306"), - Attrs([Attr("address","0x724"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("#4",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(18446744073709551600,64))), -Def(Tid(780, "%0000030c"), Attrs([Attr("address","0x724"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("#4",Imm(64)),Var("R29",Imm(64)),LittleEndian(),64)), -Def(Tid(786, "%00000312"), Attrs([Attr("address","0x724"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("#4",Imm(64)),Int(8,64)),Var("R30",Imm(64)),LittleEndian(),64)), -Def(Tid(790, "%00000316"), Attrs([Attr("address","0x724"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("R31",Imm(64)), -Var("#4",Imm(64))), Def(Tid(796, "%0000031c"), - Attrs([Attr("address","0x728"), Attr("insn","mov x29, sp")]), - Var("R29",Imm(64)), Var("R31",Imm(64))), Def(Tid(801, "%00000321"), - Attrs([Attr("address","0x72C"), Attr("insn","adrp x0, #131072")]), - Var("R0",Imm(64)), Int(131072,64)), Def(Tid(807, "%00000327"), - Attrs([Attr("address","0x730"), Attr("insn","add x0, x0, #0x34")]), - Var("R0",Imm(64)), PLUS(Var("R0",Imm(64)),Int(52,64))), -Def(Tid(812, "%0000032c"), Attrs([Attr("address","0x734"), -Attr("insn","mov w1, #0x1")]), Var("R1",Imm(64)), Int(1,64)), -Def(Tid(820, "%00000334"), Attrs([Attr("address","0x738"), -Attr("insn","str w1, [x0]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("R0",Imm(64)),Extract(31,0,Var("R1",Imm(64))),LittleEndian(),32)), -Def(Tid(825, "%00000339"), Attrs([Attr("address","0x73C"), -Attr("insn","bl #0x20")]), Var("R30",Imm(64)), Int(1856,64))]), -Jmps([Call(Tid(828, "%0000033c"), Attrs([Attr("address","0x73C"), -Attr("insn","bl #0x20")]), Int(1,1), -(Direct(Tid(1_575, "@get_two")),Direct(Tid(839, "%00000347"))))])), -Blk(Tid(839, "%00000347"), Attrs([Attr("address","0x740")]), Phis([]), -Defs([Def(Tid(843, "%0000034b"), Attrs([Attr("address","0x740"), -Attr("insn","mov w1, w0")]), Var("R1",Imm(64)), -UNSIGNED(64,Extract(31,0,Var("R0",Imm(64))))), Def(Tid(848, "%00000350"), - Attrs([Attr("address","0x744"), Attr("insn","adrp x0, #131072")]), - Var("R0",Imm(64)), Int(131072,64)), Def(Tid(854, "%00000356"), - Attrs([Attr("address","0x748"), Attr("insn","add x0, x0, #0x38")]), - Var("R0",Imm(64)), PLUS(Var("R0",Imm(64)),Int(56,64))), -Def(Tid(862, "%0000035e"), Attrs([Attr("address","0x74C"), -Attr("insn","str w1, [x0]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("R0",Imm(64)),Extract(31,0,Var("R1",Imm(64))),LittleEndian(),32)), -Def(Tid(867, "%00000363"), Attrs([Attr("address","0x750"), -Attr("insn","mov w0, #0x0")]), Var("R0",Imm(64)), Int(0,64)), -Def(Tid(874, "%0000036a"), Attrs([Attr("address","0x754"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R29",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(879, "%0000036f"), Attrs([Attr("address","0x754"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R30",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(883, "%00000373"), Attrs([Attr("address","0x754"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(16,64)))]), Jmps([Call(Tid(888, "%00000378"), - Attrs([Attr("address","0x758"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), -Sub(Tid(1_577, "@register_tm_clones"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x690")]), - "register_tm_clones", Args([Arg(Tid(1_627, "%0000065b"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("register_tm_clones_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(617, "@register_tm_clones"), Attrs([Attr("address","0x690")]), - Phis([]), Defs([Def(Tid(620, "%0000026c"), Attrs([Attr("address","0x690"), -Attr("insn","adrp x0, #131072")]), Var("R0",Imm(64)), Int(131072,64)), -Def(Tid(626, "%00000272"), Attrs([Attr("address","0x694"), -Attr("insn","add x0, x0, #0x30")]), Var("R0",Imm(64)), -PLUS(Var("R0",Imm(64)),Int(48,64))), Def(Tid(631, "%00000277"), - Attrs([Attr("address","0x698"), Attr("insn","adrp x1, #131072")]), - Var("R1",Imm(64)), Int(131072,64)), Def(Tid(637, "%0000027d"), - Attrs([Attr("address","0x69C"), Attr("insn","add x1, x1, #0x30")]), - Var("R1",Imm(64)), PLUS(Var("R1",Imm(64)),Int(48,64))), -Def(Tid(644, "%00000284"), Attrs([Attr("address","0x6A0"), -Attr("insn","sub x1, x1, x0")]), Var("R1",Imm(64)), -PLUS(PLUS(Var("R1",Imm(64)),NOT(Var("R0",Imm(64)))),Int(1,64))), -Def(Tid(650, "%0000028a"), Attrs([Attr("address","0x6A4"), -Attr("insn","lsr x2, x1, #63")]), Var("R2",Imm(64)), -Concat(Int(0,63),Extract(63,63,Var("R1",Imm(64))))), -Def(Tid(657, "%00000291"), Attrs([Attr("address","0x6A8"), -Attr("insn","add x1, x2, x1, asr #3")]), Var("R1",Imm(64)), -PLUS(Var("R2",Imm(64)),ARSHIFT(Var("R1",Imm(64)),Int(3,3)))), -Def(Tid(663, "%00000297"), Attrs([Attr("address","0x6AC"), -Attr("insn","asr x1, x1, #1")]), Var("R1",Imm(64)), -SIGNED(64,Extract(63,1,Var("R1",Imm(64)))))]), -Jmps([Goto(Tid(669, "%0000029d"), Attrs([Attr("address","0x6B0"), -Attr("insn","cbz x1, #0x18")]), EQ(Var("R1",Imm(64)),Int(0,64)), -Direct(Tid(667, "%0000029b"))), Goto(Tid(1_607, "%00000647"), Attrs([]), - Int(1,1), Direct(Tid(949, "%000003b5")))])), Blk(Tid(949, "%000003b5"), - Attrs([Attr("address","0x6B4")]), Phis([]), Defs([Def(Tid(952, "%000003b8"), - Attrs([Attr("address","0x6B4"), Attr("insn","adrp x2, #126976")]), - Var("R2",Imm(64)), Int(126976,64)), Def(Tid(959, "%000003bf"), - Attrs([Attr("address","0x6B8"), Attr("insn","ldr x2, [x2, #0xfe0]")]), - Var("R2",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R2",Imm(64)),Int(4064,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(964, "%000003c4"), Attrs([Attr("address","0x6BC"), -Attr("insn","cbz x2, #0xc")]), EQ(Var("R2",Imm(64)),Int(0,64)), -Direct(Tid(667, "%0000029b"))), Goto(Tid(1_608, "%00000648"), Attrs([]), - Int(1,1), Direct(Tid(968, "%000003c8")))])), Blk(Tid(667, "%0000029b"), - Attrs([Attr("address","0x6C8")]), Phis([]), Defs([]), -Jmps([Call(Tid(675, "%000002a3"), Attrs([Attr("address","0x6C8"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))])), -Blk(Tid(968, "%000003c8"), Attrs([Attr("address","0x6C0")]), Phis([]), -Defs([Def(Tid(972, "%000003cc"), Attrs([Attr("address","0x6C0"), -Attr("insn","mov x16, x2")]), Var("R16",Imm(64)), Var("R2",Imm(64)))]), -Jmps([Call(Tid(977, "%000003d1"), Attrs([Attr("address","0x6C4"), -Attr("insn","br x16")]), Int(1,1), -(Indirect(Var("R16",Imm(64))),))]))]))]))) \ No newline at end of file diff --git a/src/test/procedure_summaries/procedure_summary/gcc/procedure_summary.bir b/src/test/procedure_summaries/procedure_summary/gcc/procedure_summary.bir deleted file mode 100644 index 07c6a9dd4..000000000 --- a/src/test/procedure_summaries/procedure_summary/gcc/procedure_summary.bir +++ /dev/null @@ -1,251 +0,0 @@ -00000649: program -00000615: sub __cxa_finalize(__cxa_finalize_result) -0000064a: __cxa_finalize_result :: out u32 = low:32[R0] - -000003b1: -000004a9: R16 := 0x20000 -000004b0: R17 := mem[R16 + 8, el]:u64 -000004b6: R16 := R16 + 8 -000004bb: call R17 with noreturn - -00000616: sub __do_global_dtors_aux(__do_global_dtors_aux_result) -0000064b: __do_global_dtors_aux_result :: out u32 = low:32[R0] - -000002a5: -000002a9: #3 := R31 - 0x20 -000002af: mem := mem with [#3, el]:u64 <- R29 -000002b5: mem := mem with [#3 + 8, el]:u64 <- R30 -000002b9: R31 := #3 -000002bf: R29 := R31 -000002c7: mem := mem with [R31 + 0x10, el]:u64 <- R19 -000002cc: R19 := 0x20000 -000002d3: R0 := pad:64[mem[R19 + 0x30]] -000002d9: when 0:0[R0] goto %000002d7 -0000063f: goto %0000037a - -0000037a: -0000037d: R0 := 0x1F000 -00000384: R0 := mem[R0 + 0xFC8, el]:u64 -0000038a: when R0 = 0 goto %00000388 -00000640: goto %000003a1 - -000003a1: -000003a4: R0 := 0x20000 -000003ab: R0 := mem[R0 + 0x28, el]:u64 -000003b0: R30 := 0x6FC -000003b3: call @__cxa_finalize with return %00000388 - -00000388: -00000390: R30 := 0x700 -00000392: call @deregister_tm_clones with return %00000394 - -00000394: -00000397: R0 := 1 -0000039f: mem := mem with [R19 + 0x30] <- 7:0[R0] -00000641: goto %000002d7 - -000002d7: -000002e1: R19 := mem[R31 + 0x10, el]:u64 -000002e8: R29 := mem[R31, el]:u64 -000002ed: R30 := mem[R31 + 8, el]:u64 -000002f1: R31 := R31 + 0x20 -000002f6: call R30 with noreturn - -0000061a: sub __libc_start_main(__libc_start_main_main, __libc_start_main_arg2, __libc_start_main_arg3, __libc_start_main_auxv, __libc_start_main_result) -0000064c: __libc_start_main_main :: in u64 = R0 -0000064d: __libc_start_main_arg2 :: in u32 = low:32[R1] -0000064e: __libc_start_main_arg3 :: in out u64 = R2 -0000064f: __libc_start_main_auxv :: in out u64 = R3 -00000650: __libc_start_main_result :: out u32 = low:32[R0] - -000001f8: -00000493: R16 := 0x20000 -0000049a: R17 := mem[R16, el]:u64 -000004a0: R16 := R16 -000004a5: call R17 with noreturn - -0000061b: sub _fini(_fini_result) -00000651: _fini_result :: out u32 = low:32[R0] - -00000020: -00000026: #0 := R31 - 0x10 -0000002c: mem := mem with [#0, el]:u64 <- R29 -00000032: mem := mem with [#0 + 8, el]:u64 <- R30 -00000036: R31 := #0 -0000003c: R29 := R31 -00000043: R29 := mem[R31, el]:u64 -00000048: R30 := mem[R31 + 8, el]:u64 -0000004c: R31 := R31 + 0x10 -00000051: call R30 with noreturn - -0000061c: sub _init(_init_result) -00000652: _init_result :: out u32 = low:32[R0] - -00000563: -00000569: #6 := R31 - 0x10 -0000056f: mem := mem with [#6, el]:u64 <- R29 -00000575: mem := mem with [#6 + 8, el]:u64 <- R30 -00000579: R31 := #6 -0000057f: R29 := R31 -00000584: R30 := 0x590 -00000586: call @call_weak_fn with return %00000588 - -00000588: -0000058d: R29 := mem[R31, el]:u64 -00000592: R30 := mem[R31 + 8, el]:u64 -00000596: R31 := R31 + 0x10 -0000059b: call R30 with noreturn - -0000061d: sub _start(_start_result) -00000653: _start_result :: out u32 = low:32[R0] - -000001b9: -000001be: R29 := 0 -000001c3: R30 := 0 -000001c9: R5 := R0 -000001d0: R1 := mem[R31, el]:u64 -000001d6: R2 := R31 + 8 -000001dc: R6 := R31 -000001e1: R0 := 0x1F000 -000001e8: R0 := mem[R0 + 0xFD8, el]:u64 -000001ed: R3 := 0 -000001f2: R4 := 0 -000001f7: R30 := 0x630 -000001fa: call @__libc_start_main with return %000001fc - -000001fc: -000001ff: R30 := 0x634 -00000202: call @abort with return %00000642 - -00000642: -00000643: call @call_weak_fn with noreturn - -00000620: sub abort() - - -00000200: -000004d5: R16 := 0x20000 -000004dc: R17 := mem[R16 + 0x18, el]:u64 -000004e2: R16 := R16 + 0x18 -000004e7: call R17 with noreturn - -00000621: sub call_weak_fn(call_weak_fn_result) -00000654: call_weak_fn_result :: out u32 = low:32[R0] - -00000204: -00000207: R0 := 0x1F000 -0000020e: R0 := mem[R0 + 0xFD0, el]:u64 -00000214: when R0 = 0 goto %00000212 -00000644: goto %000003f1 - -00000212: -0000021a: call R30 with noreturn - -000003f1: -000003f4: goto @__gmon_start__ - -000003f2: -000004bf: R16 := 0x20000 -000004c6: R17 := mem[R16 + 0x10, el]:u64 -000004cc: R16 := R16 + 0x10 -000004d1: call R17 with noreturn - -00000623: sub deregister_tm_clones(deregister_tm_clones_result) -00000655: deregister_tm_clones_result :: out u32 = low:32[R0] - -00000228: -0000022b: R0 := 0x20000 -00000231: R0 := R0 + 0x30 -00000236: R1 := 0x20000 -0000023c: R1 := R1 + 0x30 -00000242: #1 := ~R0 -00000247: #2 := R1 + ~R0 -0000024d: VF := extend:65[#2 + 1] <> extend:65[R1] + extend:65[#1] + 1 -00000253: CF := pad:65[#2 + 1] <> pad:65[R1] + pad:65[#1] + 1 -00000257: ZF := #2 + 1 = 0 -0000025b: NF := 63:63[#2 + 1] -00000261: when ZF goto %0000025f -00000645: goto %000003d3 - -000003d3: -000003d6: R1 := 0x1F000 -000003dd: R1 := mem[R1 + 0xFC0, el]:u64 -000003e2: when R1 = 0 goto %0000025f -00000646: goto %000003e6 - -0000025f: -00000267: call R30 with noreturn - -000003e6: -000003ea: R16 := R1 -000003ef: call R16 with noreturn - -00000626: sub frame_dummy(frame_dummy_result) -00000656: frame_dummy_result :: out u32 = low:32[R0] - -000002fe: -00000300: call @register_tm_clones with noreturn - -00000627: sub get_two(get_two_result) -00000657: get_two_result :: out u32 = low:32[R0] - -0000033a: -00000340: R0 := 2 -00000345: call R30 with noreturn - -00000628: sub main(main_argc, main_argv, main_result) -00000658: main_argc :: in u32 = low:32[R0] -00000659: main_argv :: in out u64 = R1 -0000065a: main_result :: out u32 = low:32[R0] - -00000302: -00000306: #4 := R31 - 0x10 -0000030c: mem := mem with [#4, el]:u64 <- R29 -00000312: mem := mem with [#4 + 8, el]:u64 <- R30 -00000316: R31 := #4 -0000031c: R29 := R31 -00000321: R0 := 0x20000 -00000327: R0 := R0 + 0x34 -0000032c: R1 := 1 -00000334: mem := mem with [R0, el]:u32 <- 31:0[R1] -00000339: R30 := 0x740 -0000033c: call @get_two with return %00000347 - -00000347: -0000034b: R1 := pad:64[31:0[R0]] -00000350: R0 := 0x20000 -00000356: R0 := R0 + 0x38 -0000035e: mem := mem with [R0, el]:u32 <- 31:0[R1] -00000363: R0 := 0 -0000036a: R29 := mem[R31, el]:u64 -0000036f: R30 := mem[R31 + 8, el]:u64 -00000373: R31 := R31 + 0x10 -00000378: call R30 with noreturn - -00000629: sub register_tm_clones(register_tm_clones_result) -0000065b: register_tm_clones_result :: out u32 = low:32[R0] - -00000269: -0000026c: R0 := 0x20000 -00000272: R0 := R0 + 0x30 -00000277: R1 := 0x20000 -0000027d: R1 := R1 + 0x30 -00000284: R1 := R1 + ~R0 + 1 -0000028a: R2 := 0.63:63[R1] -00000291: R1 := R2 + (R1 ~>> 3) -00000297: R1 := extend:64[63:1[R1]] -0000029d: when R1 = 0 goto %0000029b -00000647: goto %000003b5 - -000003b5: -000003b8: R2 := 0x1F000 -000003bf: R2 := mem[R2 + 0xFE0, el]:u64 -000003c4: when R2 = 0 goto %0000029b -00000648: goto %000003c8 - -0000029b: -000002a3: call R30 with noreturn - -000003c8: -000003cc: R16 := R2 -000003d1: call R16 with noreturn diff --git a/src/test/procedure_summaries/procedure_summary/gcc/procedure_summary.gts b/src/test/procedure_summaries/procedure_summary/gcc/procedure_summary.gts deleted file mode 100644 index 8393a1054..000000000 Binary files a/src/test/procedure_summaries/procedure_summary/gcc/procedure_summary.gts and /dev/null differ diff --git a/src/test/procedure_summaries/procedure_summary/gcc/procedure_summary.md5sum b/src/test/procedure_summaries/procedure_summary/gcc/procedure_summary.md5sum new file mode 100644 index 000000000..520fe9c96 --- /dev/null +++ b/src/test/procedure_summaries/procedure_summary/gcc/procedure_summary.md5sum @@ -0,0 +1,5 @@ +4e8ab74907481bb806b7bad079d4ec4c procedure_summaries/procedure_summary/gcc/a.out +a0b4ba57d6059ac554e01b21e503a53c procedure_summaries/procedure_summary/gcc/procedure_summary.adt +952c695258b4c1a9a4c5e07546d721a1 procedure_summaries/procedure_summary/gcc/procedure_summary.bir +dd7c1f3412b9fa5d6cc50270c94f1403 procedure_summaries/procedure_summary/gcc/procedure_summary.relf +cc521e06569137b8e6d722f760cf19be procedure_summaries/procedure_summary/gcc/procedure_summary.gts diff --git a/src/test/procedure_summaries/procedure_summary/gcc/procedure_summary.relf b/src/test/procedure_summaries/procedure_summary/gcc/procedure_summary.relf deleted file mode 100644 index 78dba5735..000000000 --- a/src/test/procedure_summaries/procedure_summary/gcc/procedure_summary.relf +++ /dev/null @@ -1,126 +0,0 @@ - -Relocation section '.rela.dyn' at offset 0x460 contains 8 entries: - Offset Info Type Symbol's Value Symbol's Name + Addend -000000000001fdc8 0000000000000403 R_AARCH64_RELATIVE 720 -000000000001fdd0 0000000000000403 R_AARCH64_RELATIVE 6cc -000000000001ffd8 0000000000000403 R_AARCH64_RELATIVE 724 -0000000000020028 0000000000000403 R_AARCH64_RELATIVE 20028 -000000000001ffc0 0000000400000401 R_AARCH64_GLOB_DAT 0000000000000000 _ITM_deregisterTMCloneTable + 0 -000000000001ffc8 0000000500000401 R_AARCH64_GLOB_DAT 0000000000000000 __cxa_finalize@GLIBC_2.17 + 0 -000000000001ffd0 0000000600000401 R_AARCH64_GLOB_DAT 0000000000000000 __gmon_start__ + 0 -000000000001ffe0 0000000800000401 R_AARCH64_GLOB_DAT 0000000000000000 _ITM_registerTMCloneTable + 0 - -Relocation section '.rela.plt' at offset 0x520 contains 4 entries: - Offset Info Type Symbol's Value Symbol's Name + Addend -0000000000020000 0000000300000402 R_AARCH64_JUMP_SLOT 0000000000000000 __libc_start_main@GLIBC_2.34 + 0 -0000000000020008 0000000500000402 R_AARCH64_JUMP_SLOT 0000000000000000 __cxa_finalize@GLIBC_2.17 + 0 -0000000000020010 0000000600000402 R_AARCH64_JUMP_SLOT 0000000000000000 __gmon_start__ + 0 -0000000000020018 0000000700000402 R_AARCH64_JUMP_SLOT 0000000000000000 abort@GLIBC_2.17 + 0 - -Symbol table '.dynsym' contains 9 entries: - Num: Value Size Type Bind Vis Ndx Name - 0: 0000000000000000 0 NOTYPE LOCAL DEFAULT UND - 1: 0000000000000580 0 SECTION LOCAL DEFAULT 11 .init - 2: 0000000000020020 0 SECTION LOCAL DEFAULT 23 .data - 3: 0000000000000000 0 FUNC GLOBAL DEFAULT UND __libc_start_main@GLIBC_2.34 (2) - 4: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_deregisterTMCloneTable - 5: 0000000000000000 0 FUNC WEAK DEFAULT UND __cxa_finalize@GLIBC_2.17 (3) - 6: 0000000000000000 0 NOTYPE WEAK DEFAULT UND __gmon_start__ - 7: 0000000000000000 0 FUNC GLOBAL DEFAULT UND abort@GLIBC_2.17 (3) - 8: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_registerTMCloneTable - -Symbol table '.symtab' contains 93 entries: - Num: Value Size Type Bind Vis Ndx Name - 0: 0000000000000000 0 NOTYPE LOCAL DEFAULT UND - 1: 0000000000000238 0 SECTION LOCAL DEFAULT 1 .interp - 2: 0000000000000254 0 SECTION LOCAL DEFAULT 2 .note.gnu.build-id - 3: 0000000000000278 0 SECTION LOCAL DEFAULT 3 .note.ABI-tag - 4: 0000000000000298 0 SECTION LOCAL DEFAULT 4 .gnu.hash - 5: 00000000000002b8 0 SECTION LOCAL DEFAULT 5 .dynsym - 6: 0000000000000390 0 SECTION LOCAL DEFAULT 6 .dynstr - 7: 000000000000041e 0 SECTION LOCAL DEFAULT 7 .gnu.version - 8: 0000000000000430 0 SECTION LOCAL DEFAULT 8 .gnu.version_r - 9: 0000000000000460 0 SECTION LOCAL DEFAULT 9 .rela.dyn - 10: 0000000000000520 0 SECTION LOCAL DEFAULT 10 .rela.plt - 11: 0000000000000580 0 SECTION LOCAL DEFAULT 11 .init - 12: 00000000000005a0 0 SECTION LOCAL DEFAULT 12 .plt - 13: 0000000000000600 0 SECTION LOCAL DEFAULT 13 .text - 14: 0000000000000764 0 SECTION LOCAL DEFAULT 14 .fini - 15: 0000000000000778 0 SECTION LOCAL DEFAULT 15 .rodata - 16: 000000000000077c 0 SECTION LOCAL DEFAULT 16 .eh_frame_hdr - 17: 00000000000007c0 0 SECTION LOCAL DEFAULT 17 .eh_frame - 18: 000000000001fdc8 0 SECTION LOCAL DEFAULT 18 .init_array - 19: 000000000001fdd0 0 SECTION LOCAL DEFAULT 19 .fini_array - 20: 000000000001fdd8 0 SECTION LOCAL DEFAULT 20 .dynamic - 21: 000000000001ffb8 0 SECTION LOCAL DEFAULT 21 .got - 22: 000000000001ffe8 0 SECTION LOCAL DEFAULT 22 .got.plt - 23: 0000000000020020 0 SECTION LOCAL DEFAULT 23 .data - 24: 0000000000020030 0 SECTION LOCAL DEFAULT 24 .bss - 25: 0000000000000000 0 SECTION LOCAL DEFAULT 25 .comment - 26: 0000000000000000 0 FILE LOCAL DEFAULT ABS abi-note.c - 27: 0000000000000278 0 NOTYPE LOCAL DEFAULT 3 $d - 28: 0000000000000278 32 OBJECT LOCAL DEFAULT 3 __abi_tag - 29: 0000000000000000 0 FILE LOCAL DEFAULT ABS start.os - 30: 0000000000000600 0 NOTYPE LOCAL DEFAULT 13 $x - 31: 00000000000007d4 0 NOTYPE LOCAL DEFAULT 17 $d - 32: 0000000000000000 0 FILE LOCAL DEFAULT ABS init.c - 33: 0000000000000778 0 NOTYPE LOCAL DEFAULT 15 $d - 34: 0000000000000000 0 FILE LOCAL DEFAULT ABS crti.o - 35: 0000000000000634 0 NOTYPE LOCAL DEFAULT 13 $x - 36: 0000000000000634 20 FUNC LOCAL DEFAULT 13 call_weak_fn - 37: 0000000000000580 0 NOTYPE LOCAL DEFAULT 11 $x - 38: 0000000000000764 0 NOTYPE LOCAL DEFAULT 14 $x - 39: 0000000000000000 0 FILE LOCAL DEFAULT ABS crtn.o - 40: 0000000000000590 0 NOTYPE LOCAL DEFAULT 11 $x - 41: 0000000000000770 0 NOTYPE LOCAL DEFAULT 14 $x - 42: 0000000000000000 0 FILE LOCAL DEFAULT ABS crtstuff.c - 43: 0000000000000660 0 NOTYPE LOCAL DEFAULT 13 $x - 44: 0000000000000660 0 FUNC LOCAL DEFAULT 13 deregister_tm_clones - 45: 0000000000000690 0 FUNC LOCAL DEFAULT 13 register_tm_clones - 46: 0000000000020028 0 NOTYPE LOCAL DEFAULT 23 $d - 47: 00000000000006cc 0 FUNC LOCAL DEFAULT 13 __do_global_dtors_aux - 48: 0000000000020030 1 OBJECT LOCAL DEFAULT 24 completed.0 - 49: 000000000001fdd0 0 NOTYPE LOCAL DEFAULT 19 $d - 50: 000000000001fdd0 0 OBJECT LOCAL DEFAULT 19 __do_global_dtors_aux_fini_array_entry - 51: 0000000000000720 0 FUNC LOCAL DEFAULT 13 frame_dummy - 52: 000000000001fdc8 0 NOTYPE LOCAL DEFAULT 18 $d - 53: 000000000001fdc8 0 OBJECT LOCAL DEFAULT 18 __frame_dummy_init_array_entry - 54: 00000000000007e8 0 NOTYPE LOCAL DEFAULT 17 $d - 55: 0000000000020030 0 NOTYPE LOCAL DEFAULT 24 $d - 56: 0000000000000000 0 FILE LOCAL DEFAULT ABS function_summary.c - 57: 0000000000020034 0 NOTYPE LOCAL DEFAULT 24 $d - 58: 0000000000000724 0 NOTYPE LOCAL DEFAULT 13 $x - 59: 0000000000000848 0 NOTYPE LOCAL DEFAULT 17 $d - 60: 0000000000000000 0 FILE LOCAL DEFAULT ABS crtstuff.c - 61: 000000000000087c 0 NOTYPE LOCAL DEFAULT 17 $d - 62: 000000000000087c 0 OBJECT LOCAL DEFAULT 17 __FRAME_END__ - 63: 0000000000000000 0 FILE LOCAL DEFAULT ABS - 64: 000000000001fdd8 0 OBJECT LOCAL DEFAULT ABS _DYNAMIC - 65: 000000000000077c 0 NOTYPE LOCAL DEFAULT 16 __GNU_EH_FRAME_HDR - 66: 000000000001ffb8 0 OBJECT LOCAL DEFAULT ABS _GLOBAL_OFFSET_TABLE_ - 67: 00000000000005a0 0 NOTYPE LOCAL DEFAULT 12 $x - 68: 0000000000000000 0 FUNC GLOBAL DEFAULT UND __libc_start_main@GLIBC_2.34 - 69: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_deregisterTMCloneTable - 70: 0000000000020020 0 NOTYPE WEAK DEFAULT 23 data_start - 71: 0000000000020030 0 NOTYPE GLOBAL DEFAULT 24 __bss_start__ - 72: 0000000000000000 0 FUNC WEAK DEFAULT UND __cxa_finalize@GLIBC_2.17 - 73: 0000000000020040 0 NOTYPE GLOBAL DEFAULT 24 _bss_end__ - 74: 0000000000020030 0 NOTYPE GLOBAL DEFAULT 23 _edata - 75: 0000000000020034 4 OBJECT GLOBAL DEFAULT 24 x - 76: 0000000000000764 0 FUNC GLOBAL HIDDEN 14 _fini - 77: 0000000000020040 0 NOTYPE GLOBAL DEFAULT 24 __bss_end__ - 78: 000000000000075c 8 FUNC GLOBAL DEFAULT 13 get_two - 79: 0000000000020020 0 NOTYPE GLOBAL DEFAULT 23 __data_start - 80: 0000000000000000 0 NOTYPE WEAK DEFAULT UND __gmon_start__ - 81: 0000000000020028 0 OBJECT GLOBAL HIDDEN 23 __dso_handle - 82: 0000000000000000 0 FUNC GLOBAL DEFAULT UND abort@GLIBC_2.17 - 83: 0000000000000778 4 OBJECT GLOBAL DEFAULT 15 _IO_stdin_used - 84: 0000000000020040 0 NOTYPE GLOBAL DEFAULT 24 _end - 85: 0000000000000600 52 FUNC GLOBAL DEFAULT 13 _start - 86: 0000000000020040 0 NOTYPE GLOBAL DEFAULT 24 __end__ - 87: 0000000000020038 4 OBJECT GLOBAL DEFAULT 24 y - 88: 0000000000020030 0 NOTYPE GLOBAL DEFAULT 24 __bss_start - 89: 0000000000000724 56 FUNC GLOBAL DEFAULT 13 main - 90: 0000000000020030 0 OBJECT GLOBAL HIDDEN 23 __TMC_END__ - 91: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_registerTMCloneTable - 92: 0000000000000580 0 FUNC GLOBAL HIDDEN 11 _init diff --git a/src/test/procedure_summaries/procedure_summary2/gcc_O2/procedure_summary2.adt b/src/test/procedure_summaries/procedure_summary2/gcc_O2/procedure_summary2.adt deleted file mode 100644 index 9160f2e16..000000000 --- a/src/test/procedure_summaries/procedure_summary2/gcc_O2/procedure_summary2.adt +++ /dev/null @@ -1,577 +0,0 @@ -Project(Attrs([Attr("filename","\"gcc_O2/function_summary2.out\""), -Attr("image-specification","(declare abi (name str))\n(declare arch (name str))\n(declare base-address (addr int))\n(declare bias (off int))\n(declare bits (size int))\n(declare code-region (addr int) (size int) (off int))\n(declare code-start (addr int))\n(declare entry-point (addr int))\n(declare external-reference (addr int) (name str))\n(declare format (name str))\n(declare is-executable (flag bool))\n(declare is-little-endian (flag bool))\n(declare llvm:base-address (addr int))\n(declare llvm:code-entry (name str) (off int) (size int))\n(declare llvm:coff-import-library (name str))\n(declare llvm:coff-virtual-section-header (name str) (addr int) (size int))\n(declare llvm:elf-program-header (name str) (off int) (size int))\n(declare llvm:elf-program-header-flags (name str) (ld bool) (r bool) \n (w bool) (x bool))\n(declare llvm:elf-virtual-program-header (name str) (addr int) (size int))\n(declare llvm:entry-point (addr int))\n(declare llvm:macho-symbol (name str) (value int))\n(declare llvm:name-reference (at int) (name str))\n(declare llvm:relocation (at int) (addr int))\n(declare llvm:section-entry (name str) (addr int) (size int) (off int))\n(declare llvm:section-flags (name str) (r bool) (w bool) (x bool))\n(declare llvm:segment-command (name str) (off int) (size int))\n(declare llvm:segment-command-flags (name str) (r bool) (w bool) (x bool))\n(declare llvm:symbol-entry (name str) (addr int) (size int) (off int)\n (value int))\n(declare llvm:virtual-segment-command (name str) (addr int) (size int))\n(declare mapped (addr int) (size int) (off int))\n(declare named-region (addr int) (size int) (name str))\n(declare named-symbol (addr int) (name str))\n(declare require (name str))\n(declare section (addr int) (size int))\n(declare segment (addr int) (size int) (r bool) (w bool) (x bool))\n(declare subarch (name str))\n(declare symbol-chunk (addr int) (size int) (root int))\n(declare symbol-value (addr int) (value int))\n(declare system (name str))\n(declare vendor (name str))\n\n(abi unknown)\n(arch aarch64)\n(base-address 0)\n(bias 0)\n(bits 64)\n(code-region 1940 20 1940)\n(code-region 1536 404 1536)\n(code-region 1440 96 1440)\n(code-region 1408 24 1408)\n(code-start 1652)\n(code-start 1920)\n(code-start 1600)\n(code-start 1536)\n(entry-point 1600)\n(external-reference 131008 _ITM_deregisterTMCloneTable)\n(external-reference 131016 __cxa_finalize)\n(external-reference 131024 __gmon_start__)\n(external-reference 131040 _ITM_registerTMCloneTable)\n(external-reference 131072 __libc_start_main)\n(external-reference 131080 __cxa_finalize)\n(external-reference 131088 __gmon_start__)\n(external-reference 131096 abort)\n(format elf)\n(is-executable true)\n(is-little-endian true)\n(llvm:base-address 0)\n(llvm:code-entry abort 0 0)\n(llvm:code-entry __cxa_finalize 0 0)\n(llvm:code-entry __libc_start_main 0 0)\n(llvm:code-entry _init 1408 0)\n(llvm:code-entry main 1536 48)\n(llvm:code-entry _start 1600 52)\n(llvm:code-entry abort@GLIBC_2.17 0 0)\n(llvm:code-entry f 1920 20)\n(llvm:code-entry _fini 1940 0)\n(llvm:code-entry __cxa_finalize@GLIBC_2.17 0 0)\n(llvm:code-entry __libc_start_main@GLIBC_2.34 0 0)\n(llvm:code-entry frame_dummy 1888 0)\n(llvm:code-entry __do_global_dtors_aux 1804 0)\n(llvm:code-entry register_tm_clones 1744 0)\n(llvm:code-entry deregister_tm_clones 1696 0)\n(llvm:code-entry call_weak_fn 1652 20)\n(llvm:code-entry .fini 1940 20)\n(llvm:code-entry .text 1536 404)\n(llvm:code-entry .plt 1440 96)\n(llvm:code-entry .init 1408 24)\n(llvm:elf-program-header 08 64968 568)\n(llvm:elf-program-header 07 0 0)\n(llvm:elf-program-header 06 1964 68)\n(llvm:elf-program-header 05 596 68)\n(llvm:elf-program-header 04 64984 480)\n(llvm:elf-program-header 03 64968 616)\n(llvm:elf-program-header 02 0 2224)\n(llvm:elf-program-header 01 568 27)\n(llvm:elf-program-header 00 64 504)\n(llvm:elf-program-header-flags 08 false true false false)\n(llvm:elf-program-header-flags 07 false true true false)\n(llvm:elf-program-header-flags 06 false true false false)\n(llvm:elf-program-header-flags 05 false true false false)\n(llvm:elf-program-header-flags 04 false true true false)\n(llvm:elf-program-header-flags 03 true true true false)\n(llvm:elf-program-header-flags 02 true true false true)\n(llvm:elf-program-header-flags 01 false true false false)\n(llvm:elf-program-header-flags 00 false true false false)\n(llvm:elf-virtual-program-header 08 130504 568)\n(llvm:elf-virtual-program-header 07 0 0)\n(llvm:elf-virtual-program-header 06 1964 68)\n(llvm:elf-virtual-program-header 05 596 68)\n(llvm:elf-virtual-program-header 04 130520 480)\n(llvm:elf-virtual-program-header 03 130504 632)\n(llvm:elf-virtual-program-header 02 0 2224)\n(llvm:elf-virtual-program-header 01 568 27)\n(llvm:elf-virtual-program-header 00 64 504)\n(llvm:entry-point 1600)\n(llvm:name-reference 131096 abort)\n(llvm:name-reference 131088 __gmon_start__)\n(llvm:name-reference 131080 __cxa_finalize)\n(llvm:name-reference 131072 __libc_start_main)\n(llvm:name-reference 131040 _ITM_registerTMCloneTable)\n(llvm:name-reference 131024 __gmon_start__)\n(llvm:name-reference 131016 __cxa_finalize)\n(llvm:name-reference 131008 _ITM_deregisterTMCloneTable)\n(llvm:section-entry .shstrtab 0 259 68454)\n(llvm:section-entry .strtab 0 574 67880)\n(llvm:section-entry .symtab 0 2256 65624)\n(llvm:section-entry .comment 0 36 65584)\n(llvm:section-entry .bss 131120 16 65584)\n(llvm:section-entry .data 131104 16 65568)\n(llvm:section-entry .got.plt 131048 56 65512)\n(llvm:section-entry .got 131000 48 65464)\n(llvm:section-entry .dynamic 130520 480 64984)\n(llvm:section-entry .fini_array 130512 8 64976)\n(llvm:section-entry .init_array 130504 8 64968)\n(llvm:section-entry .eh_frame 2032 192 2032)\n(llvm:section-entry .eh_frame_hdr 1964 68 1964)\n(llvm:section-entry .rodata 1960 4 1960)\n(llvm:section-entry .fini 1940 20 1940)\n(llvm:section-entry .text 1536 404 1536)\n(llvm:section-entry .plt 1440 96 1440)\n(llvm:section-entry .init 1408 24 1408)\n(llvm:section-entry .rela.plt 1312 96 1312)\n(llvm:section-entry .rela.dyn 1120 192 1120)\n(llvm:section-entry .gnu.version_r 1072 48 1072)\n(llvm:section-entry .gnu.version 1054 18 1054)\n(llvm:section-entry .dynstr 912 141 912)\n(llvm:section-entry .dynsym 696 216 696)\n(llvm:section-entry .gnu.hash 664 28 664)\n(llvm:section-entry .note.ABI-tag 632 32 632)\n(llvm:section-entry .note.gnu.build-id 596 36 596)\n(llvm:section-entry .interp 568 27 568)\n(llvm:section-flags .shstrtab true false false)\n(llvm:section-flags .strtab true false false)\n(llvm:section-flags .symtab true false false)\n(llvm:section-flags .comment true false false)\n(llvm:section-flags .bss true true false)\n(llvm:section-flags .data true true false)\n(llvm:section-flags .got.plt true true false)\n(llvm:section-flags .got true true false)\n(llvm:section-flags .dynamic true true false)\n(llvm:section-flags .fini_array true true false)\n(llvm:section-flags .init_array true true false)\n(llvm:section-flags .eh_frame true false false)\n(llvm:section-flags .eh_frame_hdr true false false)\n(llvm:section-flags .rodata true false false)\n(llvm:section-flags .fini true false true)\n(llvm:section-flags .text true false true)\n(llvm:section-flags .plt true false true)\n(llvm:section-flags .init true false true)\n(llvm:section-flags .rela.plt true false false)\n(llvm:section-flags .rela.dyn true false false)\n(llvm:section-flags .gnu.version_r true false false)\n(llvm:section-flags .gnu.version true false false)\n(llvm:section-flags .dynstr true false false)\n(llvm:section-flags .dynsym true false false)\n(llvm:section-flags .gnu.hash true false false)\n(llvm:section-flags .note.ABI-tag true false false)\n(llvm:section-flags .note.gnu.build-id true false false)\n(llvm:section-flags .interp true false false)\n(llvm:symbol-entry abort 0 0 0 0)\n(llvm:symbol-entry __cxa_finalize 0 0 0 0)\n(llvm:symbol-entry __libc_start_main 0 0 0 0)\n(llvm:symbol-entry _init 1408 0 1408 1408)\n(llvm:symbol-entry main 1536 48 1536 1536)\n(llvm:symbol-entry _start 1600 52 1600 1600)\n(llvm:symbol-entry abort@GLIBC_2.17 0 0 0 0)\n(llvm:symbol-entry f 1920 20 1920 1920)\n(llvm:symbol-entry _fini 1940 0 1940 1940)\n(llvm:symbol-entry __cxa_finalize@GLIBC_2.17 0 0 0 0)\n(llvm:symbol-entry __libc_start_main@GLIBC_2.34 0 0 0 0)\n(llvm:symbol-entry frame_dummy 1888 0 1888 1888)\n(llvm:symbol-entry __do_global_dtors_aux 1804 0 1804 1804)\n(llvm:symbol-entry register_tm_clones 1744 0 1744 1744)\n(llvm:symbol-entry deregister_tm_clones 1696 0 1696 1696)\n(llvm:symbol-entry call_weak_fn 1652 20 1652 1652)\n(mapped 0 2224 0)\n(mapped 130504 616 64968)\n(named-region 0 2224 02)\n(named-region 130504 632 03)\n(named-region 568 27 .interp)\n(named-region 596 36 .note.gnu.build-id)\n(named-region 632 32 .note.ABI-tag)\n(named-region 664 28 .gnu.hash)\n(named-region 696 216 .dynsym)\n(named-region 912 141 .dynstr)\n(named-region 1054 18 .gnu.version)\n(named-region 1072 48 .gnu.version_r)\n(named-region 1120 192 .rela.dyn)\n(named-region 1312 96 .rela.plt)\n(named-region 1408 24 .init)\n(named-region 1440 96 .plt)\n(named-region 1536 404 .text)\n(named-region 1940 20 .fini)\n(named-region 1960 4 .rodata)\n(named-region 1964 68 .eh_frame_hdr)\n(named-region 2032 192 .eh_frame)\n(named-region 130504 8 .init_array)\n(named-region 130512 8 .fini_array)\n(named-region 130520 480 .dynamic)\n(named-region 131000 48 .got)\n(named-region 131048 56 .got.plt)\n(named-region 131104 16 .data)\n(named-region 131120 16 .bss)\n(named-region 0 36 .comment)\n(named-region 0 2256 .symtab)\n(named-region 0 574 .strtab)\n(named-region 0 259 .shstrtab)\n(named-symbol 1652 call_weak_fn)\n(named-symbol 1696 deregister_tm_clones)\n(named-symbol 1744 register_tm_clones)\n(named-symbol 1804 __do_global_dtors_aux)\n(named-symbol 1888 frame_dummy)\n(named-symbol 0 __libc_start_main@GLIBC_2.34)\n(named-symbol 0 __cxa_finalize@GLIBC_2.17)\n(named-symbol 1940 _fini)\n(named-symbol 1920 f)\n(named-symbol 0 abort@GLIBC_2.17)\n(named-symbol 1600 _start)\n(named-symbol 1536 main)\n(named-symbol 1408 _init)\n(named-symbol 0 __libc_start_main)\n(named-symbol 0 __cxa_finalize)\n(named-symbol 0 abort)\n(require libc.so.6)\n(section 568 27)\n(section 596 36)\n(section 632 32)\n(section 664 28)\n(section 696 216)\n(section 912 141)\n(section 1054 18)\n(section 1072 48)\n(section 1120 192)\n(section 1312 96)\n(section 1408 24)\n(section 1440 96)\n(section 1536 404)\n(section 1940 20)\n(section 1960 4)\n(section 1964 68)\n(section 2032 192)\n(section 130504 8)\n(section 130512 8)\n(section 130520 480)\n(section 131000 48)\n(section 131048 56)\n(section 131104 16)\n(section 131120 16)\n(section 0 36)\n(section 0 2256)\n(section 0 574)\n(section 0 259)\n(segment 0 2224 true false true)\n(segment 130504 632 true true false)\n(subarch v8)\n(symbol-chunk 1652 20 1652)\n(symbol-chunk 1920 20 1920)\n(symbol-chunk 1600 52 1600)\n(symbol-chunk 1536 48 1536)\n(symbol-value 1652 1652)\n(symbol-value 1696 1696)\n(symbol-value 1744 1744)\n(symbol-value 1804 1804)\n(symbol-value 1888 1888)\n(symbol-value 1940 1940)\n(symbol-value 1920 1920)\n(symbol-value 1600 1600)\n(symbol-value 1536 1536)\n(symbol-value 1408 1408)\n(symbol-value 0 0)\n(system \"\")\n(vendor \"\")\n"), -Attr("abi-name","\"aarch64-linux-gnu-elf\"")]), -Sections([Section(".shstrtab", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x40\x06\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x70\x0c\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x38\x00\x09\x00\x40\x00\x1d\x00\x1c\x00\x06\x00\x00\x00\x04\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x04\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xb0\x08\x00\x00\x00\x00\x00\x00\xb0\x08\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x01\x00\x00\x00\x06\x00\x00\x00\xc8\xfd\x00\x00\x00\x00\x00\x00\xc8\xfd\x01\x00\x00\x00\x00\x00\xc8\xfd\x01"), -Section(".strtab", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x40\x06\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x70\x0c\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x38\x00\x09\x00\x40\x00\x1d\x00\x1c\x00\x06\x00\x00\x00\x04\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x04\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xb0\x08\x00\x00\x00\x00\x00\x00\xb0\x08\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x01\x00\x00\x00\x06\x00\x00\x00\xc8\xfd\x00\x00\x00\x00\x00\x00\xc8\xfd\x01\x00\x00\x00\x00\x00\xc8\xfd\x01\x00\x00\x00\x00\x00\x68\x02\x00\x00\x00\x00\x00\x00\x78\x02\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x02\x00\x00\x00\x06\x00\x00\x00\xd8\xfd\x00\x00\x00\x00\x00\x00\xd8\xfd\x01\x00\x00\x00\x00\x00\xd8\xfd\x01\x00\x00\x00\x00\x00\xe0\x01\x00\x00\x00\x00\x00\x00\xe0\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x04\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x50\xe5\x74\x64\x04\x00\x00\x00\xac\x07\x00\x00\x00\x00\x00\x00\xac\x07\x00\x00\x00\x00\x00\x00\xac\x07\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x51\xe5\x74\x64\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x52\xe5\x74\x64\x04\x00\x00\x00\xc8\xfd\x00\x00\x00\x00\x00\x00\xc8\xfd\x01\x00\x00\x00\x00\x00\xc8\xfd\x01\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x2f\x6c\x69\x62\x2f\x6c"), -Section(".comment", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x40\x06\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00"), -Section(".interp", 0x238, "\x2f\x6c\x69\x62\x2f\x6c\x64\x2d\x6c\x69\x6e\x75\x78\x2d\x61\x61\x72\x63\x68\x36\x34\x2e\x73\x6f\x2e\x31\x00"), -Section(".note.gnu.build-id", 0x254, "\x04\x00\x00\x00\x14\x00\x00\x00\x03\x00\x00\x00\x47\x4e\x55\x00\x4c\x9d\x26\x99\x4a\x7a\xc9\xc3\x48\x8a\x23\xc2\x1e\x66\x71\x9d\xb0\x64\x32\xd9"), -Section(".note.ABI-tag", 0x278, "\x04\x00\x00\x00\x10\x00\x00\x00\x01\x00\x00\x00\x47\x4e\x55\x00\x00\x00\x00\x00\x03\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00"), -Section(".gnu.hash", 0x298, "\x01\x00\x00\x00\x01\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".dynsym", 0x2B8, "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x0b\x00\x80\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x17\x00\x20\x00\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x48\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x13\x00\x00\x00\x22\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x22\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x73\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".dynstr", 0x390, "\x00\x5f\x5f\x6c\x69\x62\x63\x5f\x73\x74\x61\x72\x74\x5f\x6d\x61\x69\x6e\x00\x5f\x5f\x63\x78\x61\x5f\x66\x69\x6e\x61\x6c\x69\x7a\x65\x00\x61\x62\x6f\x72\x74\x00\x6c\x69\x62\x63\x2e\x73\x6f\x2e\x36\x00\x47\x4c\x49\x42\x43\x5f\x32\x2e\x31\x37\x00\x47\x4c\x49\x42\x43\x5f\x32\x2e\x33\x34\x00\x5f\x49\x54\x4d\x5f\x64\x65\x72\x65\x67\x69\x73\x74\x65\x72\x54\x4d\x43\x6c\x6f\x6e\x65\x54\x61\x62\x6c\x65\x00\x5f\x5f\x67\x6d\x6f\x6e\x5f\x73\x74\x61\x72\x74\x5f\x5f\x00\x5f\x49\x54\x4d\x5f\x72\x65\x67\x69\x73\x74\x65\x72\x54\x4d\x43\x6c\x6f\x6e\x65\x54\x61\x62\x6c\x65\x00"), -Section(".gnu.version", 0x41E, "\x00\x00\x00\x00\x00\x00\x02\x00\x01\x00\x03\x00\x01\x00\x03\x00\x01\x00"), -Section(".gnu.version_r", 0x430, "\x01\x00\x02\x00\x28\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x97\x91\x96\x06\x00\x00\x03\x00\x32\x00\x00\x00\x10\x00\x00\x00\xb4\x91\x96\x06\x00\x00\x02\x00\x3d\x00\x00\x00\x00\x00\x00\x00"), -Section(".rela.dyn", 0x460, "\xc8\xfd\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x60\x07\x00\x00\x00\x00\x00\x00\xd0\xfd\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x0c\x07\x00\x00\x00\x00\x00\x00\xd8\xff\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x00\x06\x00\x00\x00\x00\x00\x00\x28\x00\x02\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x28\x00\x02\x00\x00\x00\x00\x00\xc0\xff\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xc8\xff\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xd0\xff\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe0\xff\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".rela.plt", 0x520, "\x00\x00\x02\x00\x00\x00\x00\x00\x02\x04\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x08\x00\x02\x00\x00\x00\x00\x00\x02\x04\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x02\x00\x00\x00\x00\x00\x02\x04\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x18\x00\x02\x00\x00\x00\x00\x00\x02\x04\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".init", 0x580, "\x1f\x20\x03\xd5\xfd\x7b\xbf\xa9\xfd\x03\x00\x91\x3a\x00\x00\x94\xfd\x7b\xc1\xa8\xc0\x03\x5f\xd6"), -Section(".plt", 0x5A0, "\xf0\x7b\xbf\xa9\xf0\x00\x00\xf0\x11\xfe\x47\xf9\x10\xe2\x3f\x91\x20\x02\x1f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x10\x01\x00\x90\x11\x02\x40\xf9\x10\x02\x00\x91\x20\x02\x1f\xd6\x10\x01\x00\x90\x11\x06\x40\xf9\x10\x22\x00\x91\x20\x02\x1f\xd6\x10\x01\x00\x90\x11\x0a\x40\xf9\x10\x42\x00\x91\x20\x02\x1f\xd6\x10\x01\x00\x90\x11\x0e\x40\xf9\x10\x62\x00\x91\x20\x02\x1f\xd6"), -Section(".text", 0x600, "\x03\x01\x00\x90\x63\xd0\x00\x91\xfd\x7b\xbf\xa9\x21\x00\x80\x52\xfd\x03\x00\x91\x60\x04\x40\xb9\x5a\x00\x00\x94\xe1\x03\x00\x2a\xfd\x7b\xc1\xa8\x00\x00\x80\x52\x61\x04\x00\xb9\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1d\x00\x80\xd2\x1e\x00\x80\xd2\xe5\x03\x00\xaa\xe1\x03\x40\xf9\xe2\x23\x00\x91\xe6\x03\x00\x91\xe0\x00\x00\xf0\x00\xec\x47\xf9\x03\x00\x80\xd2\x04\x00\x80\xd2\xd5\xff\xff\x97\xe0\xff\xff\x97\xe0\x00\x00\xf0\x00\xe8\x47\xf9\x40\x00\x00\xb4\xd8\xff\xff\x17\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x00\x01\x00\x90\x00\xc0\x00\x91\x01\x01\x00\x90\x21\xc0\x00\x91\x3f\x00\x00\xeb\xc0\x00\x00\x54\xe1\x00\x00\xf0\x21\xe0\x47\xf9\x61\x00\x00\xb4\xf0\x03\x01\xaa\x00\x02\x1f\xd6\xc0\x03\x5f\xd6\x00\x01\x00\x90\x00\xc0\x00\x91\x01\x01\x00\x90\x21\xc0\x00\x91\x21\x00\x00\xcb\x22\xfc\x7f\xd3\x41\x0c\x81\x8b\x21\xfc\x41\x93\xc1\x00\x00\xb4\xe2\x00\x00\xf0\x42\xf0\x47\xf9\x62\x00\x00\xb4\xf0\x03\x02\xaa\x00\x02\x1f\xd6\xc0\x03\x5f\xd6\xfd\x7b\xbe\xa9\xfd\x03\x00\x91\xf3\x0b\x00\xf9\x13\x01\x00\x90\x60\xc2\x40\x39\x40\x01\x00\x37\xe0\x00\x00\xf0\x00\xe4\x47\xf9\x80\x00\x00\xb4\x00\x01\x00\x90\x00\x14\x40\xf9\xa6\xff\xff\x97\xd9\xff\xff\x97\x20\x00\x80\x52\x60\xc2\x00\x39\xf3\x0b\x40\xf9\xfd\x7b\xc2\xa8\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\xdc\xff\xff\x17\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x02\x01\x00\x90\x42\x34\x40\xb9\x5f\x00\x00\x71\x20\x00\x80\x1a\xc0\x03\x5f\xd6"), -Section(".fini", 0x794, "\x1f\x20\x03\xd5\xfd\x7b\xbf\xa9\xfd\x03\x00\x91\xfd\x7b\xc1\xa8\xc0\x03\x5f\xd6"), -Section(".rodata", 0x7A8, "\x01\x00\x02\x00"), -Section(".eh_frame_hdr", 0x7AC, "\x01\x1b\x03\x3b\x40\x00\x00\x00\x07\x00\x00\x00\x54\xfe\xff\xff\xe0\x00\x00\x00\x94\xfe\xff\xff\x58\x00\x00\x00\xf4\xfe\xff\xff\x6c\x00\x00\x00\x24\xff\xff\xff\x80\x00\x00\x00\x60\xff\xff\xff\x94\x00\x00\x00\xb4\xff\xff\xff\xb8\x00\x00\x00\xd4\xff\xff\xff\xcc\x00\x00\x00"), -Section(".eh_frame", 0x7F0, "\x10\x00\x00\x00\x00\x00\x00\x00\x01\x7a\x52\x00\x04\x78\x1e\x01\x1b\x0c\x1f\x00\x10\x00\x00\x00\x18\x00\x00\x00\x34\xfe\xff\xff\x34\x00\x00\x00\x00\x41\x07\x1e\x10\x00\x00\x00\x2c\x00\x00\x00\x80\xfe\xff\xff\x30\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x40\x00\x00\x00\x9c\xfe\xff\xff\x3c\x00\x00\x00\x00\x00\x00\x00\x20\x00\x00\x00\x54\x00\x00\x00\xc4\xfe\xff\xff\x48\x00\x00\x00\x00\x41\x0e\x20\x9d\x04\x9e\x03\x42\x93\x02\x4e\xde\xdd\xd3\x0e\x00\x00\x00\x00\x10\x00\x00\x00\x78\x00\x00\x00\xf4\xfe\xff\xff\x04\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x8c\x00\x00\x00\x00\xff\xff\xff\x14\x00\x00\x00\x00\x00\x00\x00\x1c\x00\x00\x00\xa0\x00\x00\x00\x6c\xfd\xff\xff\x30\x00\x00\x00\x00\x43\x0e\x10\x9d\x02\x9e\x01\x46\xde\xdd\x0e\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".fini_array", 0x1FDD0, "\x0c\x07\x00\x00\x00\x00\x00\x00"), -Section(".dynamic", 0x1FDD8, "\x01\x00\x00\x00\x00\x00\x00\x00\x28\x00\x00\x00\x00\x00\x00\x00\x0c\x00\x00\x00\x00\x00\x00\x00\x80\x05\x00\x00\x00\x00\x00\x00\x0d\x00\x00\x00\x00\x00\x00\x00\x94\x07\x00\x00\x00\x00\x00\x00\x19\x00\x00\x00\x00\x00\x00\x00\xc8\xfd\x01\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x1a\x00\x00\x00\x00\x00\x00\x00\xd0\xfd\x01\x00\x00\x00\x00\x00\x1c\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\xf5\xfe\xff\x6f\x00\x00\x00\x00\x98\x02\x00\x00\x00\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x90\x03\x00\x00\x00\x00\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\xb8\x02\x00\x00\x00\x00\x00\x00\x0a\x00\x00\x00\x00\x00\x00\x00\x8d\x00\x00\x00\x00\x00\x00\x00\x0b\x00\x00\x00\x00\x00\x00\x00\x18\x00\x00\x00\x00\x00\x00\x00\x15\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\xe8\xff\x01\x00\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x60\x00\x00\x00\x00\x00\x00\x00\x14\x00\x00\x00\x00\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x17\x00\x00\x00\x00\x00\x00\x00\x20\x05\x00\x00\x00\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x60\x04\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\xc0\x00\x00\x00\x00\x00\x00\x00\x09\x00\x00\x00\x00\x00\x00\x00\x18\x00\x00\x00\x00\x00\x00\x00\xfb\xff\xff\x6f\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\xfe\xff\xff\x6f\x00\x00\x00\x00\x30\x04\x00\x00\x00\x00\x00\x00\xff\xff\xff\x6f\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\xf0\xff\xff\x6f\x00\x00\x00\x00\x1e\x04\x00\x00\x00\x00\x00\x00\xf9\xff\xff\x6f\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".init_array", 0x1FDC8, "\x60\x07\x00\x00\x00\x00\x00\x00"), -Section(".got", 0x1FFB8, "\xd8\xfd\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".got.plt", 0x1FFE8, "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xa0\x05\x00\x00\x00\x00\x00\x00\xa0\x05\x00\x00\x00\x00\x00\x00\xa0\x05\x00\x00\x00\x00\x00\x00\xa0\x05\x00\x00\x00\x00\x00\x00"), -Section(".data", 0x20020, "\x00\x00\x00\x00\x00\x00\x00\x00\x28\x00\x02\x00\x00\x00\x00\x00")]), -Memmap([Annotation(Region(0x0,0x8AF), Attr("segment","02 0 2224")), -Annotation(Region(0x600,0x62F), Attr("symbol","\"main\"")), -Annotation(Region(0x0,0x102), Attr("section","\".shstrtab\"")), -Annotation(Region(0x0,0x23D), Attr("section","\".strtab\"")), -Annotation(Region(0x0,0x23), Attr("section","\".comment\"")), -Annotation(Region(0x238,0x252), Attr("section","\".interp\"")), -Annotation(Region(0x254,0x277), Attr("section","\".note.gnu.build-id\"")), -Annotation(Region(0x278,0x297), Attr("section","\".note.ABI-tag\"")), -Annotation(Region(0x298,0x2B3), Attr("section","\".gnu.hash\"")), -Annotation(Region(0x2B8,0x38F), Attr("section","\".dynsym\"")), -Annotation(Region(0x390,0x41C), Attr("section","\".dynstr\"")), -Annotation(Region(0x41E,0x42F), Attr("section","\".gnu.version\"")), -Annotation(Region(0x430,0x45F), Attr("section","\".gnu.version_r\"")), -Annotation(Region(0x460,0x51F), Attr("section","\".rela.dyn\"")), -Annotation(Region(0x520,0x57F), Attr("section","\".rela.plt\"")), -Annotation(Region(0x580,0x597), Attr("section","\".init\"")), -Annotation(Region(0x5A0,0x5FF), Attr("section","\".plt\"")), -Annotation(Region(0x580,0x597), Attr("code-region","()")), -Annotation(Region(0x5A0,0x5FF), Attr("code-region","()")), -Annotation(Region(0x600,0x62F), Attr("symbol-info","main 0x600 48")), -Annotation(Region(0x640,0x673), Attr("symbol","\"_start\"")), -Annotation(Region(0x640,0x673), Attr("symbol-info","_start 0x640 52")), -Annotation(Region(0x674,0x687), Attr("symbol","\"call_weak_fn\"")), -Annotation(Region(0x674,0x687), Attr("symbol-info","call_weak_fn 0x674 20")), -Annotation(Region(0x600,0x793), Attr("section","\".text\"")), -Annotation(Region(0x600,0x793), Attr("code-region","()")), -Annotation(Region(0x780,0x793), Attr("symbol","\"f\"")), -Annotation(Region(0x780,0x793), Attr("symbol-info","f 0x780 20")), -Annotation(Region(0x794,0x7A7), Attr("section","\".fini\"")), -Annotation(Region(0x794,0x7A7), Attr("code-region","()")), -Annotation(Region(0x7A8,0x7AB), Attr("section","\".rodata\"")), -Annotation(Region(0x7AC,0x7EF), Attr("section","\".eh_frame_hdr\"")), -Annotation(Region(0x7F0,0x8AF), Attr("section","\".eh_frame\"")), -Annotation(Region(0x1FDC8,0x2002F), Attr("segment","03 0x1FDC8 632")), -Annotation(Region(0x1FDD0,0x1FDD7), Attr("section","\".fini_array\"")), -Annotation(Region(0x1FDD8,0x1FFB7), Attr("section","\".dynamic\"")), -Annotation(Region(0x1FDC8,0x1FDCF), Attr("section","\".init_array\"")), -Annotation(Region(0x1FFB8,0x1FFE7), Attr("section","\".got\"")), -Annotation(Region(0x1FFE8,0x2001F), Attr("section","\".got.plt\"")), -Annotation(Region(0x20020,0x2002F), Attr("section","\".data\""))]), -Program(Tid(1_739, "%000006cb"), Attrs([]), - Subs([Sub(Tid(1_687, "@__cxa_finalize"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x5D0"), -Attr("stub","()")]), "__cxa_finalize", Args([Arg(Tid(1_740, "%000006cc"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("__cxa_finalize_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(1_051, "@__cxa_finalize"), - Attrs([Attr("address","0x5D0")]), Phis([]), -Defs([Def(Tid(1_299, "%00000513"), Attrs([Attr("address","0x5D0"), -Attr("insn","adrp x16, #131072")]), Var("R16",Imm(64)), Int(131072,64)), -Def(Tid(1_306, "%0000051a"), Attrs([Attr("address","0x5D4"), -Attr("insn","ldr x17, [x16, #0x8]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(1_312, "%00000520"), Attrs([Attr("address","0x5D8"), -Attr("insn","add x16, x16, #0x8")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(8,64)))]), Jmps([Call(Tid(1_317, "%00000525"), - Attrs([Attr("address","0x5DC"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), -Sub(Tid(1_688, "@__do_global_dtors_aux"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x70C")]), - "__do_global_dtors_aux", Args([Arg(Tid(1_741, "%000006cd"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("__do_global_dtors_aux_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(889, "@__do_global_dtors_aux"), - Attrs([Attr("address","0x70C")]), Phis([]), Defs([Def(Tid(893, "%0000037d"), - Attrs([Attr("address","0x70C"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("#5",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(18446744073709551584,64))), -Def(Tid(899, "%00000383"), Attrs([Attr("address","0x70C"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("#5",Imm(64)),Var("R29",Imm(64)),LittleEndian(),64)), -Def(Tid(905, "%00000389"), Attrs([Attr("address","0x70C"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("#5",Imm(64)),Int(8,64)),Var("R30",Imm(64)),LittleEndian(),64)), -Def(Tid(909, "%0000038d"), Attrs([Attr("address","0x70C"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("R31",Imm(64)), -Var("#5",Imm(64))), Def(Tid(915, "%00000393"), - Attrs([Attr("address","0x710"), Attr("insn","mov x29, sp")]), - Var("R29",Imm(64)), Var("R31",Imm(64))), Def(Tid(923, "%0000039b"), - Attrs([Attr("address","0x714"), Attr("insn","str x19, [sp, #0x10]")]), - Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(16,64)),Var("R19",Imm(64)),LittleEndian(),64)), -Def(Tid(928, "%000003a0"), Attrs([Attr("address","0x718"), -Attr("insn","adrp x19, #131072")]), Var("R19",Imm(64)), Int(131072,64)), -Def(Tid(935, "%000003a7"), Attrs([Attr("address","0x71C"), -Attr("insn","ldrb w0, [x19, #0x30]")]), Var("R0",Imm(64)), -UNSIGNED(64,Load(Var("mem",Mem(64,8)),PLUS(Var("R19",Imm(64)),Int(48,64)),LittleEndian(),8)))]), -Jmps([Goto(Tid(941, "%000003ad"), Attrs([Attr("address","0x720"), -Attr("insn","tbnz w0, #0x0, #0x28")]), - EQ(Extract(0,0,Var("R0",Imm(64))),Int(1,1)), Direct(Tid(939, "%000003ab"))), -Goto(Tid(1_729, "%000006c1"), Attrs([]), Int(1,1), -Direct(Tid(996, "%000003e4")))])), Blk(Tid(996, "%000003e4"), - Attrs([Attr("address","0x724")]), Phis([]), Defs([Def(Tid(999, "%000003e7"), - Attrs([Attr("address","0x724"), Attr("insn","adrp x0, #126976")]), - Var("R0",Imm(64)), Int(126976,64)), Def(Tid(1_006, "%000003ee"), - Attrs([Attr("address","0x728"), Attr("insn","ldr x0, [x0, #0xfc8]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(4040,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(1_012, "%000003f4"), Attrs([Attr("address","0x72C"), -Attr("insn","cbz x0, #0x10")]), EQ(Var("R0",Imm(64)),Int(0,64)), -Direct(Tid(1_010, "%000003f2"))), Goto(Tid(1_730, "%000006c2"), Attrs([]), - Int(1,1), Direct(Tid(1_035, "%0000040b")))])), Blk(Tid(1_035, "%0000040b"), - Attrs([Attr("address","0x730")]), Phis([]), -Defs([Def(Tid(1_038, "%0000040e"), Attrs([Attr("address","0x730"), -Attr("insn","adrp x0, #131072")]), Var("R0",Imm(64)), Int(131072,64)), -Def(Tid(1_045, "%00000415"), Attrs([Attr("address","0x734"), -Attr("insn","ldr x0, [x0, #0x28]")]), Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(40,64)),LittleEndian(),64)), -Def(Tid(1_050, "%0000041a"), Attrs([Attr("address","0x738"), -Attr("insn","bl #-0x168")]), Var("R30",Imm(64)), Int(1852,64))]), -Jmps([Call(Tid(1_053, "%0000041d"), Attrs([Attr("address","0x738"), -Attr("insn","bl #-0x168")]), Int(1,1), -(Direct(Tid(1_687, "@__cxa_finalize")),Direct(Tid(1_010, "%000003f2"))))])), -Blk(Tid(1_010, "%000003f2"), Attrs([Attr("address","0x73C")]), Phis([]), -Defs([Def(Tid(1_018, "%000003fa"), Attrs([Attr("address","0x73C"), -Attr("insn","bl #-0x9c")]), Var("R30",Imm(64)), Int(1856,64))]), -Jmps([Call(Tid(1_020, "%000003fc"), Attrs([Attr("address","0x73C"), -Attr("insn","bl #-0x9c")]), Int(1,1), -(Direct(Tid(1_701, "@deregister_tm_clones")),Direct(Tid(1_022, "%000003fe"))))])), -Blk(Tid(1_022, "%000003fe"), Attrs([Attr("address","0x740")]), Phis([]), -Defs([Def(Tid(1_025, "%00000401"), Attrs([Attr("address","0x740"), -Attr("insn","mov w0, #0x1")]), Var("R0",Imm(64)), Int(1,64)), -Def(Tid(1_033, "%00000409"), Attrs([Attr("address","0x744"), -Attr("insn","strb w0, [x19, #0x30]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R19",Imm(64)),Int(48,64)),Extract(7,0,Var("R0",Imm(64))),LittleEndian(),8))]), -Jmps([Goto(Tid(1_731, "%000006c3"), Attrs([]), Int(1,1), -Direct(Tid(939, "%000003ab")))])), Blk(Tid(939, "%000003ab"), - Attrs([Attr("address","0x748")]), Phis([]), Defs([Def(Tid(949, "%000003b5"), - Attrs([Attr("address","0x748"), Attr("insn","ldr x19, [sp, #0x10]")]), - Var("R19",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(16,64)),LittleEndian(),64)), -Def(Tid(956, "%000003bc"), Attrs([Attr("address","0x74C"), -Attr("insn","ldp x29, x30, [sp], #0x20")]), Var("R29",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(961, "%000003c1"), Attrs([Attr("address","0x74C"), -Attr("insn","ldp x29, x30, [sp], #0x20")]), Var("R30",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(965, "%000003c5"), Attrs([Attr("address","0x74C"), -Attr("insn","ldp x29, x30, [sp], #0x20")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(32,64)))]), Jmps([Call(Tid(970, "%000003ca"), - Attrs([Attr("address","0x750"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), Sub(Tid(1_692, "@__libc_start_main"), - Attrs([Attr("c.proto","signed (*)(signed (*)(signed , char** , char** );* main, signed , char** , \nvoid* auxv)"), -Attr("address","0x5C0"), Attr("stub","()")]), "__libc_start_main", - Args([Arg(Tid(1_742, "%000006ce"), - Attrs([Attr("c.layout","**[ : 64]"), -Attr("c.data","Top:u64 ptr ptr"), -Attr("c.type","signed (*)(signed , char** , char** );*")]), - Var("__libc_start_main_main",Imm(64)), Var("R0",Imm(64)), In()), -Arg(Tid(1_743, "%000006cf"), Attrs([Attr("c.layout","[signed : 32]"), -Attr("c.data","Top:u32"), Attr("c.type","signed")]), - Var("__libc_start_main_arg2",Imm(32)), LOW(32,Var("R1",Imm(64))), In()), -Arg(Tid(1_744, "%000006d0"), Attrs([Attr("c.layout","**[char : 8]"), -Attr("c.data","Top:u8 ptr ptr"), Attr("c.type","char**")]), - Var("__libc_start_main_arg3",Imm(64)), Var("R2",Imm(64)), Both()), -Arg(Tid(1_745, "%000006d1"), Attrs([Attr("c.layout","*[ : 8]"), -Attr("c.data","{} ptr"), Attr("c.type","void*")]), - Var("__libc_start_main_auxv",Imm(64)), Var("R3",Imm(64)), Both()), -Arg(Tid(1_746, "%000006d2"), Attrs([Attr("c.layout","[signed : 32]"), -Attr("c.data","Top:u32"), Attr("c.type","signed")]), - Var("__libc_start_main_result",Imm(32)), LOW(32,Var("R0",Imm(64))), -Out())]), Blks([Blk(Tid(716, "@__libc_start_main"), - Attrs([Attr("address","0x5C0")]), Phis([]), -Defs([Def(Tid(1_277, "%000004fd"), Attrs([Attr("address","0x5C0"), -Attr("insn","adrp x16, #131072")]), Var("R16",Imm(64)), Int(131072,64)), -Def(Tid(1_284, "%00000504"), Attrs([Attr("address","0x5C4"), -Attr("insn","ldr x17, [x16]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R16",Imm(64)),LittleEndian(),64)), -Def(Tid(1_290, "%0000050a"), Attrs([Attr("address","0x5C8"), -Attr("insn","add x16, x16, #0x0")]), Var("R16",Imm(64)), -Var("R16",Imm(64)))]), Jmps([Call(Tid(1_295, "%0000050f"), - Attrs([Attr("address","0x5CC"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), Sub(Tid(1_693, "@_fini"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x794")]), - "_fini", Args([Arg(Tid(1_747, "%000006d3"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("_fini_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(32, "@_fini"), - Attrs([Attr("address","0x794")]), Phis([]), Defs([Def(Tid(38, "%00000026"), - Attrs([Attr("address","0x798"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("#0",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(18446744073709551600,64))), -Def(Tid(44, "%0000002c"), Attrs([Attr("address","0x798"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("#0",Imm(64)),Var("R29",Imm(64)),LittleEndian(),64)), -Def(Tid(50, "%00000032"), Attrs([Attr("address","0x798"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("#0",Imm(64)),Int(8,64)),Var("R30",Imm(64)),LittleEndian(),64)), -Def(Tid(54, "%00000036"), Attrs([Attr("address","0x798"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("R31",Imm(64)), -Var("#0",Imm(64))), Def(Tid(60, "%0000003c"), Attrs([Attr("address","0x79C"), -Attr("insn","mov x29, sp")]), Var("R29",Imm(64)), Var("R31",Imm(64))), -Def(Tid(67, "%00000043"), Attrs([Attr("address","0x7A0"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R29",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(72, "%00000048"), Attrs([Attr("address","0x7A0"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R30",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(76, "%0000004c"), Attrs([Attr("address","0x7A0"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(16,64)))]), Jmps([Call(Tid(81, "%00000051"), - Attrs([Attr("address","0x7A4"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), Sub(Tid(1_694, "@_init"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x580")]), - "_init", Args([Arg(Tid(1_748, "%000006d4"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("_init_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(1_497, "@_init"), - Attrs([Attr("address","0x580")]), Phis([]), -Defs([Def(Tid(1_503, "%000005df"), Attrs([Attr("address","0x584"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("#7",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(18446744073709551600,64))), -Def(Tid(1_509, "%000005e5"), Attrs([Attr("address","0x584"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("#7",Imm(64)),Var("R29",Imm(64)),LittleEndian(),64)), -Def(Tid(1_515, "%000005eb"), Attrs([Attr("address","0x584"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("#7",Imm(64)),Int(8,64)),Var("R30",Imm(64)),LittleEndian(),64)), -Def(Tid(1_519, "%000005ef"), Attrs([Attr("address","0x584"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("R31",Imm(64)), -Var("#7",Imm(64))), Def(Tid(1_525, "%000005f5"), - Attrs([Attr("address","0x588"), Attr("insn","mov x29, sp")]), - Var("R29",Imm(64)), Var("R31",Imm(64))), Def(Tid(1_530, "%000005fa"), - Attrs([Attr("address","0x58C"), Attr("insn","bl #0xe8")]), - Var("R30",Imm(64)), Int(1424,64))]), Jmps([Call(Tid(1_532, "%000005fc"), - Attrs([Attr("address","0x58C"), Attr("insn","bl #0xe8")]), Int(1,1), -(Direct(Tid(1_699, "@call_weak_fn")),Direct(Tid(1_534, "%000005fe"))))])), -Blk(Tid(1_534, "%000005fe"), Attrs([Attr("address","0x590")]), Phis([]), -Defs([Def(Tid(1_539, "%00000603"), Attrs([Attr("address","0x590"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R29",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(1_544, "%00000608"), Attrs([Attr("address","0x590"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R30",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(1_548, "%0000060c"), Attrs([Attr("address","0x590"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(16,64)))]), Jmps([Call(Tid(1_553, "%00000611"), - Attrs([Attr("address","0x594"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), Sub(Tid(1_695, "@_start"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x640"), -Attr("entry-point","()")]), "_start", Args([Arg(Tid(1_749, "%000006d5"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("_start_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(653, "@_start"), - Attrs([Attr("address","0x640")]), Phis([]), Defs([Def(Tid(658, "%00000292"), - Attrs([Attr("address","0x644"), Attr("insn","mov x29, #0x0")]), - Var("R29",Imm(64)), Int(0,64)), Def(Tid(663, "%00000297"), - Attrs([Attr("address","0x648"), Attr("insn","mov x30, #0x0")]), - Var("R30",Imm(64)), Int(0,64)), Def(Tid(669, "%0000029d"), - Attrs([Attr("address","0x64C"), Attr("insn","mov x5, x0")]), - Var("R5",Imm(64)), Var("R0",Imm(64))), Def(Tid(676, "%000002a4"), - Attrs([Attr("address","0x650"), Attr("insn","ldr x1, [sp]")]), - Var("R1",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(682, "%000002aa"), Attrs([Attr("address","0x654"), -Attr("insn","add x2, sp, #0x8")]), Var("R2",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(8,64))), Def(Tid(688, "%000002b0"), - Attrs([Attr("address","0x658"), Attr("insn","mov x6, sp")]), - Var("R6",Imm(64)), Var("R31",Imm(64))), Def(Tid(693, "%000002b5"), - Attrs([Attr("address","0x65C"), Attr("insn","adrp x0, #126976")]), - Var("R0",Imm(64)), Int(126976,64)), Def(Tid(700, "%000002bc"), - Attrs([Attr("address","0x660"), Attr("insn","ldr x0, [x0, #0xfd8]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(4056,64)),LittleEndian(),64)), -Def(Tid(705, "%000002c1"), Attrs([Attr("address","0x664"), -Attr("insn","mov x3, #0x0")]), Var("R3",Imm(64)), Int(0,64)), -Def(Tid(710, "%000002c6"), Attrs([Attr("address","0x668"), -Attr("insn","mov x4, #0x0")]), Var("R4",Imm(64)), Int(0,64)), -Def(Tid(715, "%000002cb"), Attrs([Attr("address","0x66C"), -Attr("insn","bl #-0xac")]), Var("R30",Imm(64)), Int(1648,64))]), -Jmps([Call(Tid(718, "%000002ce"), Attrs([Attr("address","0x66C"), -Attr("insn","bl #-0xac")]), Int(1,1), -(Direct(Tid(1_692, "@__libc_start_main")),Direct(Tid(720, "%000002d0"))))])), -Blk(Tid(720, "%000002d0"), Attrs([Attr("address","0x670")]), Phis([]), -Defs([Def(Tid(723, "%000002d3"), Attrs([Attr("address","0x670"), -Attr("insn","bl #-0x80")]), Var("R30",Imm(64)), Int(1652,64))]), -Jmps([Call(Tid(726, "%000002d6"), Attrs([Attr("address","0x670"), -Attr("insn","bl #-0x80")]), Int(1,1), -(Direct(Tid(1_698, "@abort")),Direct(Tid(1_732, "%000006c4"))))])), -Blk(Tid(1_732, "%000006c4"), Attrs([]), Phis([]), Defs([]), -Jmps([Call(Tid(1_733, "%000006c5"), Attrs([]), Int(1,1), -(Direct(Tid(1_699, "@call_weak_fn")),))]))])), Sub(Tid(1_698, "@abort"), - Attrs([Attr("noreturn","()"), Attr("c.proto","void (*)(void)"), -Attr("address","0x5F0"), Attr("stub","()")]), "abort", Args([]), -Blks([Blk(Tid(724, "@abort"), Attrs([Attr("address","0x5F0")]), Phis([]), -Defs([Def(Tid(1_343, "%0000053f"), Attrs([Attr("address","0x5F0"), -Attr("insn","adrp x16, #131072")]), Var("R16",Imm(64)), Int(131072,64)), -Def(Tid(1_350, "%00000546"), Attrs([Attr("address","0x5F4"), -Attr("insn","ldr x17, [x16, #0x18]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(24,64)),LittleEndian(),64)), -Def(Tid(1_356, "%0000054c"), Attrs([Attr("address","0x5F8"), -Attr("insn","add x16, x16, #0x18")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(24,64)))]), Jmps([Call(Tid(1_361, "%00000551"), - Attrs([Attr("address","0x5FC"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), Sub(Tid(1_699, "@call_weak_fn"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x674")]), - "call_weak_fn", Args([Arg(Tid(1_750, "%000006d6"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("call_weak_fn_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(728, "@call_weak_fn"), - Attrs([Attr("address","0x674")]), Phis([]), Defs([Def(Tid(731, "%000002db"), - Attrs([Attr("address","0x674"), Attr("insn","adrp x0, #126976")]), - Var("R0",Imm(64)), Int(126976,64)), Def(Tid(738, "%000002e2"), - Attrs([Attr("address","0x678"), Attr("insn","ldr x0, [x0, #0xfd0]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(4048,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(744, "%000002e8"), Attrs([Attr("address","0x67C"), -Attr("insn","cbz x0, #0x8")]), EQ(Var("R0",Imm(64)),Int(0,64)), -Direct(Tid(742, "%000002e6"))), Goto(Tid(1_734, "%000006c6"), Attrs([]), - Int(1,1), Direct(Tid(1_115, "%0000045b")))])), Blk(Tid(742, "%000002e6"), - Attrs([Attr("address","0x684")]), Phis([]), Defs([]), -Jmps([Call(Tid(750, "%000002ee"), Attrs([Attr("address","0x684"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))])), -Blk(Tid(1_115, "%0000045b"), Attrs([Attr("address","0x680")]), Phis([]), -Defs([]), Jmps([Goto(Tid(1_118, "%0000045e"), Attrs([Attr("address","0x680"), -Attr("insn","b #-0xa0")]), Int(1,1), -Direct(Tid(1_116, "@__gmon_start__")))])), Blk(Tid(1_116, "@__gmon_start__"), - Attrs([Attr("address","0x5E0")]), Phis([]), -Defs([Def(Tid(1_321, "%00000529"), Attrs([Attr("address","0x5E0"), -Attr("insn","adrp x16, #131072")]), Var("R16",Imm(64)), Int(131072,64)), -Def(Tid(1_328, "%00000530"), Attrs([Attr("address","0x5E4"), -Attr("insn","ldr x17, [x16, #0x10]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(16,64)),LittleEndian(),64)), -Def(Tid(1_334, "%00000536"), Attrs([Attr("address","0x5E8"), -Attr("insn","add x16, x16, #0x10")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(16,64)))]), Jmps([Call(Tid(1_339, "%0000053b"), - Attrs([Attr("address","0x5EC"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), -Sub(Tid(1_701, "@deregister_tm_clones"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x6A0")]), - "deregister_tm_clones", Args([Arg(Tid(1_751, "%000006d7"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("deregister_tm_clones_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(764, "@deregister_tm_clones"), - Attrs([Attr("address","0x6A0")]), Phis([]), Defs([Def(Tid(767, "%000002ff"), - Attrs([Attr("address","0x6A0"), Attr("insn","adrp x0, #131072")]), - Var("R0",Imm(64)), Int(131072,64)), Def(Tid(773, "%00000305"), - Attrs([Attr("address","0x6A4"), Attr("insn","add x0, x0, #0x30")]), - Var("R0",Imm(64)), PLUS(Var("R0",Imm(64)),Int(48,64))), -Def(Tid(778, "%0000030a"), Attrs([Attr("address","0x6A8"), -Attr("insn","adrp x1, #131072")]), Var("R1",Imm(64)), Int(131072,64)), -Def(Tid(784, "%00000310"), Attrs([Attr("address","0x6AC"), -Attr("insn","add x1, x1, #0x30")]), Var("R1",Imm(64)), -PLUS(Var("R1",Imm(64)),Int(48,64))), Def(Tid(790, "%00000316"), - Attrs([Attr("address","0x6B0"), Attr("insn","cmp x1, x0")]), - Var("#3",Imm(64)), NOT(Var("R0",Imm(64)))), Def(Tid(795, "%0000031b"), - Attrs([Attr("address","0x6B0"), Attr("insn","cmp x1, x0")]), - Var("#4",Imm(64)), PLUS(Var("R1",Imm(64)),NOT(Var("R0",Imm(64))))), -Def(Tid(801, "%00000321"), Attrs([Attr("address","0x6B0"), -Attr("insn","cmp x1, x0")]), Var("VF",Imm(1)), -NEQ(SIGNED(65,PLUS(Var("#4",Imm(64)),Int(1,64))),PLUS(PLUS(SIGNED(65,Var("R1",Imm(64))),SIGNED(65,Var("#3",Imm(64)))),Int(1,65)))), -Def(Tid(807, "%00000327"), Attrs([Attr("address","0x6B0"), -Attr("insn","cmp x1, x0")]), Var("CF",Imm(1)), -NEQ(UNSIGNED(65,PLUS(Var("#4",Imm(64)),Int(1,64))),PLUS(PLUS(UNSIGNED(65,Var("R1",Imm(64))),UNSIGNED(65,Var("#3",Imm(64)))),Int(1,65)))), -Def(Tid(811, "%0000032b"), Attrs([Attr("address","0x6B0"), -Attr("insn","cmp x1, x0")]), Var("ZF",Imm(1)), -EQ(PLUS(Var("#4",Imm(64)),Int(1,64)),Int(0,64))), Def(Tid(815, "%0000032f"), - Attrs([Attr("address","0x6B0"), Attr("insn","cmp x1, x0")]), - Var("NF",Imm(1)), Extract(63,63,PLUS(Var("#4",Imm(64)),Int(1,64))))]), -Jmps([Goto(Tid(821, "%00000335"), Attrs([Attr("address","0x6B4"), -Attr("insn","b.eq #0x18")]), EQ(Var("ZF",Imm(1)),Int(1,1)), -Direct(Tid(819, "%00000333"))), Goto(Tid(1_735, "%000006c7"), Attrs([]), - Int(1,1), Direct(Tid(1_085, "%0000043d")))])), Blk(Tid(1_085, "%0000043d"), - Attrs([Attr("address","0x6B8")]), Phis([]), -Defs([Def(Tid(1_088, "%00000440"), Attrs([Attr("address","0x6B8"), -Attr("insn","adrp x1, #126976")]), Var("R1",Imm(64)), Int(126976,64)), -Def(Tid(1_095, "%00000447"), Attrs([Attr("address","0x6BC"), -Attr("insn","ldr x1, [x1, #0xfc0]")]), Var("R1",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R1",Imm(64)),Int(4032,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(1_100, "%0000044c"), Attrs([Attr("address","0x6C0"), -Attr("insn","cbz x1, #0xc")]), EQ(Var("R1",Imm(64)),Int(0,64)), -Direct(Tid(819, "%00000333"))), Goto(Tid(1_736, "%000006c8"), Attrs([]), - Int(1,1), Direct(Tid(1_104, "%00000450")))])), Blk(Tid(819, "%00000333"), - Attrs([Attr("address","0x6CC")]), Phis([]), Defs([]), -Jmps([Call(Tid(827, "%0000033b"), Attrs([Attr("address","0x6CC"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))])), -Blk(Tid(1_104, "%00000450"), Attrs([Attr("address","0x6C4")]), Phis([]), -Defs([Def(Tid(1_108, "%00000454"), Attrs([Attr("address","0x6C4"), -Attr("insn","mov x16, x1")]), Var("R16",Imm(64)), Var("R1",Imm(64)))]), -Jmps([Call(Tid(1_113, "%00000459"), Attrs([Attr("address","0x6C8"), -Attr("insn","br x16")]), Int(1,1), (Indirect(Var("R16",Imm(64))),))]))])), -Sub(Tid(1_704, "@f"), Attrs([Attr("c.proto","signed (*)(void)"), -Attr("address","0x780")]), "f", Args([Arg(Tid(1_752, "%000006d8"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("f_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(544, "@f"), - Attrs([Attr("address","0x780")]), Phis([]), Defs([Def(Tid(550, "%00000226"), - Attrs([Attr("address","0x780"), Attr("insn","adrp x2, #131072")]), - Var("R2",Imm(64)), Int(131072,64)), Def(Tid(557, "%0000022d"), - Attrs([Attr("address","0x784"), Attr("insn","ldr w2, [x2, #0x34]")]), - Var("R2",Imm(64)), -UNSIGNED(64,Load(Var("mem",Mem(64,8)),PLUS(Var("R2",Imm(64)),Int(52,64)),LittleEndian(),32))), -Def(Tid(563, "%00000233"), Attrs([Attr("address","0x788"), -Attr("insn","cmp w2, #0x0")]), Var("#2",Imm(32)), -Extract(31,0,Var("R2",Imm(64)))), Def(Tid(568, "%00000238"), - Attrs([Attr("address","0x788"), Attr("insn","cmp w2, #0x0")]), - Var("VF",Imm(1)), Int(0,1)), Def(Tid(573, "%0000023d"), - Attrs([Attr("address","0x788"), Attr("insn","cmp w2, #0x0")]), - Var("CF",Imm(1)), -NEQ(UNSIGNED(33,Var("#2",Imm(32))),PLUS(UNSIGNED(33,Extract(31,0,Var("R2",Imm(64)))),Int(4294967296,33)))), -Def(Tid(577, "%00000241"), Attrs([Attr("address","0x788"), -Attr("insn","cmp w2, #0x0")]), Var("ZF",Imm(1)), -EQ(Var("#2",Imm(32)),Int(0,32))), Def(Tid(581, "%00000245"), - Attrs([Attr("address","0x788"), Attr("insn","cmp w2, #0x0")]), - Var("NF",Imm(1)), Extract(31,31,Var("#2",Imm(32))))]), -Jmps([Goto(Tid(595, "%00000253"), Attrs([Attr("address","0x78C"), -Attr("insn","csel w0, w1, w0, eq")]), EQ(Var("ZF",Imm(1)),Int(1,1)), -Direct(Tid(587, "%0000024b"))), Goto(Tid(596, "%00000254"), - Attrs([Attr("address","0x78C"), Attr("insn","csel w0, w1, w0, eq")]), - Int(1,1), Direct(Tid(591, "%0000024f")))])), Blk(Tid(591, "%0000024f"), - Attrs([]), Phis([]), Defs([Def(Tid(592, "%00000250"), - Attrs([Attr("address","0x78C"), Attr("insn","csel w0, w1, w0, eq")]), - Var("R0",Imm(64)), UNSIGNED(64,Extract(31,0,Var("R0",Imm(64)))))]), -Jmps([Goto(Tid(598, "%00000256"), Attrs([Attr("address","0x78C"), -Attr("insn","csel w0, w1, w0, eq")]), Int(1,1), -Direct(Tid(594, "%00000252")))])), Blk(Tid(587, "%0000024b"), Attrs([]), - Phis([]), Defs([Def(Tid(588, "%0000024c"), Attrs([Attr("address","0x78C"), -Attr("insn","csel w0, w1, w0, eq")]), Var("R0",Imm(64)), -UNSIGNED(64,Extract(31,0,Var("R1",Imm(64)))))]), -Jmps([Goto(Tid(597, "%00000255"), Attrs([Attr("address","0x78C"), -Attr("insn","csel w0, w1, w0, eq")]), Int(1,1), -Direct(Tid(594, "%00000252")))])), Blk(Tid(594, "%00000252"), Attrs([]), - Phis([]), Defs([]), Jmps([Call(Tid(603, "%0000025b"), - Attrs([Attr("address","0x790"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), Sub(Tid(1_705, "@frame_dummy"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x760")]), - "frame_dummy", Args([Arg(Tid(1_753, "%000006d9"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("frame_dummy_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(978, "@frame_dummy"), - Attrs([Attr("address","0x760")]), Phis([]), Defs([]), -Jmps([Call(Tid(980, "%000003d4"), Attrs([Attr("address","0x760"), -Attr("insn","b #-0x90")]), Int(1,1), -(Direct(Tid(1_707, "@register_tm_clones")),))]))])), Sub(Tid(1_706, "@main"), - Attrs([Attr("c.proto","signed (*)(signed argc, const char** argv)"), -Attr("address","0x600"), Attr("stub","()")]), "main", - Args([Arg(Tid(1_754, "%000006da"), Attrs([Attr("c.layout","[signed : 32]"), -Attr("c.data","Top:u32"), Attr("c.type","signed")]), - Var("main_argc",Imm(32)), LOW(32,Var("R0",Imm(64))), In()), -Arg(Tid(1_755, "%000006db"), Attrs([Attr("c.layout","**[char : 8]"), -Attr("c.data","Top:u8 ptr ptr"), Attr("c.type"," const char**")]), - Var("main_argv",Imm(64)), Var("R1",Imm(64)), Both()), -Arg(Tid(1_756, "%000006dc"), Attrs([Attr("c.layout","[signed : 32]"), -Attr("c.data","Top:u32"), Attr("c.type","signed")]), - Var("main_result",Imm(32)), LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(489, "@main"), Attrs([Attr("address","0x600")]), Phis([]), -Defs([Def(Tid(492, "%000001ec"), Attrs([Attr("address","0x600"), -Attr("insn","adrp x3, #131072")]), Var("R3",Imm(64)), Int(131072,64)), -Def(Tid(498, "%000001f2"), Attrs([Attr("address","0x604"), -Attr("insn","add x3, x3, #0x34")]), Var("R3",Imm(64)), -PLUS(Var("R3",Imm(64)),Int(52,64))), Def(Tid(504, "%000001f8"), - Attrs([Attr("address","0x608"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("#1",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(18446744073709551600,64))), -Def(Tid(510, "%000001fe"), Attrs([Attr("address","0x608"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("#1",Imm(64)),Var("R29",Imm(64)),LittleEndian(),64)), -Def(Tid(516, "%00000204"), Attrs([Attr("address","0x608"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("#1",Imm(64)),Int(8,64)),Var("R30",Imm(64)),LittleEndian(),64)), -Def(Tid(520, "%00000208"), Attrs([Attr("address","0x608"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("R31",Imm(64)), -Var("#1",Imm(64))), Def(Tid(525, "%0000020d"), - Attrs([Attr("address","0x60C"), Attr("insn","mov w1, #0x1")]), - Var("R1",Imm(64)), Int(1,64)), Def(Tid(531, "%00000213"), - Attrs([Attr("address","0x610"), Attr("insn","mov x29, sp")]), - Var("R29",Imm(64)), Var("R31",Imm(64))), Def(Tid(538, "%0000021a"), - Attrs([Attr("address","0x614"), Attr("insn","ldr w0, [x3, #0x4]")]), - Var("R0",Imm(64)), -UNSIGNED(64,Load(Var("mem",Mem(64,8)),PLUS(Var("R3",Imm(64)),Int(4,64)),LittleEndian(),32))), -Def(Tid(543, "%0000021f"), Attrs([Attr("address","0x618"), -Attr("insn","bl #0x168")]), Var("R30",Imm(64)), Int(1564,64))]), -Jmps([Call(Tid(546, "%00000222"), Attrs([Attr("address","0x618"), -Attr("insn","bl #0x168")]), Int(1,1), -(Direct(Tid(1_704, "@f")),Direct(Tid(605, "%0000025d"))))])), -Blk(Tid(605, "%0000025d"), Attrs([Attr("address","0x61C")]), Phis([]), -Defs([Def(Tid(609, "%00000261"), Attrs([Attr("address","0x61C"), -Attr("insn","mov w1, w0")]), Var("R1",Imm(64)), -UNSIGNED(64,Extract(31,0,Var("R0",Imm(64))))), Def(Tid(616, "%00000268"), - Attrs([Attr("address","0x620"), Attr("insn","ldp x29, x30, [sp], #0x10")]), - Var("R29",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(621, "%0000026d"), Attrs([Attr("address","0x620"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R30",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(625, "%00000271"), Attrs([Attr("address","0x620"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(16,64))), Def(Tid(630, "%00000276"), - Attrs([Attr("address","0x624"), Attr("insn","mov w0, #0x0")]), - Var("R0",Imm(64)), Int(0,64)), Def(Tid(638, "%0000027e"), - Attrs([Attr("address","0x628"), Attr("insn","str w1, [x3, #0x4]")]), - Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R3",Imm(64)),Int(4,64)),Extract(31,0,Var("R1",Imm(64))),LittleEndian(),32))]), -Jmps([Call(Tid(643, "%00000283"), Attrs([Attr("address","0x62C"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))]))])), -Sub(Tid(1_707, "@register_tm_clones"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x6D0")]), - "register_tm_clones", Args([Arg(Tid(1_757, "%000006dd"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("register_tm_clones_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(829, "@register_tm_clones"), Attrs([Attr("address","0x6D0")]), - Phis([]), Defs([Def(Tid(832, "%00000340"), Attrs([Attr("address","0x6D0"), -Attr("insn","adrp x0, #131072")]), Var("R0",Imm(64)), Int(131072,64)), -Def(Tid(838, "%00000346"), Attrs([Attr("address","0x6D4"), -Attr("insn","add x0, x0, #0x30")]), Var("R0",Imm(64)), -PLUS(Var("R0",Imm(64)),Int(48,64))), Def(Tid(843, "%0000034b"), - Attrs([Attr("address","0x6D8"), Attr("insn","adrp x1, #131072")]), - Var("R1",Imm(64)), Int(131072,64)), Def(Tid(849, "%00000351"), - Attrs([Attr("address","0x6DC"), Attr("insn","add x1, x1, #0x30")]), - Var("R1",Imm(64)), PLUS(Var("R1",Imm(64)),Int(48,64))), -Def(Tid(856, "%00000358"), Attrs([Attr("address","0x6E0"), -Attr("insn","sub x1, x1, x0")]), Var("R1",Imm(64)), -PLUS(PLUS(Var("R1",Imm(64)),NOT(Var("R0",Imm(64)))),Int(1,64))), -Def(Tid(862, "%0000035e"), Attrs([Attr("address","0x6E4"), -Attr("insn","lsr x2, x1, #63")]), Var("R2",Imm(64)), -Concat(Int(0,63),Extract(63,63,Var("R1",Imm(64))))), -Def(Tid(869, "%00000365"), Attrs([Attr("address","0x6E8"), -Attr("insn","add x1, x2, x1, asr #3")]), Var("R1",Imm(64)), -PLUS(Var("R2",Imm(64)),ARSHIFT(Var("R1",Imm(64)),Int(3,3)))), -Def(Tid(875, "%0000036b"), Attrs([Attr("address","0x6EC"), -Attr("insn","asr x1, x1, #1")]), Var("R1",Imm(64)), -SIGNED(64,Extract(63,1,Var("R1",Imm(64)))))]), -Jmps([Goto(Tid(881, "%00000371"), Attrs([Attr("address","0x6F0"), -Attr("insn","cbz x1, #0x18")]), EQ(Var("R1",Imm(64)),Int(0,64)), -Direct(Tid(879, "%0000036f"))), Goto(Tid(1_737, "%000006c9"), Attrs([]), - Int(1,1), Direct(Tid(1_055, "%0000041f")))])), Blk(Tid(1_055, "%0000041f"), - Attrs([Attr("address","0x6F4")]), Phis([]), -Defs([Def(Tid(1_058, "%00000422"), Attrs([Attr("address","0x6F4"), -Attr("insn","adrp x2, #126976")]), Var("R2",Imm(64)), Int(126976,64)), -Def(Tid(1_065, "%00000429"), Attrs([Attr("address","0x6F8"), -Attr("insn","ldr x2, [x2, #0xfe0]")]), Var("R2",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R2",Imm(64)),Int(4064,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(1_070, "%0000042e"), Attrs([Attr("address","0x6FC"), -Attr("insn","cbz x2, #0xc")]), EQ(Var("R2",Imm(64)),Int(0,64)), -Direct(Tid(879, "%0000036f"))), Goto(Tid(1_738, "%000006ca"), Attrs([]), - Int(1,1), Direct(Tid(1_074, "%00000432")))])), Blk(Tid(879, "%0000036f"), - Attrs([Attr("address","0x708")]), Phis([]), Defs([]), -Jmps([Call(Tid(887, "%00000377"), Attrs([Attr("address","0x708"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))])), -Blk(Tid(1_074, "%00000432"), Attrs([Attr("address","0x700")]), Phis([]), -Defs([Def(Tid(1_078, "%00000436"), Attrs([Attr("address","0x700"), -Attr("insn","mov x16, x2")]), Var("R16",Imm(64)), Var("R2",Imm(64)))]), -Jmps([Call(Tid(1_083, "%0000043b"), Attrs([Attr("address","0x704"), -Attr("insn","br x16")]), Int(1,1), -(Indirect(Var("R16",Imm(64))),))]))]))]))) \ No newline at end of file diff --git a/src/test/procedure_summaries/procedure_summary2/gcc_O2/procedure_summary2.bir b/src/test/procedure_summaries/procedure_summary2/gcc_O2/procedure_summary2.bir deleted file mode 100644 index c2138b24d..000000000 --- a/src/test/procedure_summaries/procedure_summary2/gcc_O2/procedure_summary2.bir +++ /dev/null @@ -1,267 +0,0 @@ -000006cb: program -00000697: sub __cxa_finalize(__cxa_finalize_result) -000006cc: __cxa_finalize_result :: out u32 = low:32[R0] - -0000041b: -00000513: R16 := 0x20000 -0000051a: R17 := mem[R16 + 8, el]:u64 -00000520: R16 := R16 + 8 -00000525: call R17 with noreturn - -00000698: sub __do_global_dtors_aux(__do_global_dtors_aux_result) -000006cd: __do_global_dtors_aux_result :: out u32 = low:32[R0] - -00000379: -0000037d: #5 := R31 - 0x20 -00000383: mem := mem with [#5, el]:u64 <- R29 -00000389: mem := mem with [#5 + 8, el]:u64 <- R30 -0000038d: R31 := #5 -00000393: R29 := R31 -0000039b: mem := mem with [R31 + 0x10, el]:u64 <- R19 -000003a0: R19 := 0x20000 -000003a7: R0 := pad:64[mem[R19 + 0x30]] -000003ad: when 0:0[R0] goto %000003ab -000006c1: goto %000003e4 - -000003e4: -000003e7: R0 := 0x1F000 -000003ee: R0 := mem[R0 + 0xFC8, el]:u64 -000003f4: when R0 = 0 goto %000003f2 -000006c2: goto %0000040b - -0000040b: -0000040e: R0 := 0x20000 -00000415: R0 := mem[R0 + 0x28, el]:u64 -0000041a: R30 := 0x73C -0000041d: call @__cxa_finalize with return %000003f2 - -000003f2: -000003fa: R30 := 0x740 -000003fc: call @deregister_tm_clones with return %000003fe - -000003fe: -00000401: R0 := 1 -00000409: mem := mem with [R19 + 0x30] <- 7:0[R0] -000006c3: goto %000003ab - -000003ab: -000003b5: R19 := mem[R31 + 0x10, el]:u64 -000003bc: R29 := mem[R31, el]:u64 -000003c1: R30 := mem[R31 + 8, el]:u64 -000003c5: R31 := R31 + 0x20 -000003ca: call R30 with noreturn - -0000069c: sub __libc_start_main(__libc_start_main_main, __libc_start_main_arg2, __libc_start_main_arg3, __libc_start_main_auxv, __libc_start_main_result) -000006ce: __libc_start_main_main :: in u64 = R0 -000006cf: __libc_start_main_arg2 :: in u32 = low:32[R1] -000006d0: __libc_start_main_arg3 :: in out u64 = R2 -000006d1: __libc_start_main_auxv :: in out u64 = R3 -000006d2: __libc_start_main_result :: out u32 = low:32[R0] - -000002cc: -000004fd: R16 := 0x20000 -00000504: R17 := mem[R16, el]:u64 -0000050a: R16 := R16 -0000050f: call R17 with noreturn - -0000069d: sub _fini(_fini_result) -000006d3: _fini_result :: out u32 = low:32[R0] - -00000020: -00000026: #0 := R31 - 0x10 -0000002c: mem := mem with [#0, el]:u64 <- R29 -00000032: mem := mem with [#0 + 8, el]:u64 <- R30 -00000036: R31 := #0 -0000003c: R29 := R31 -00000043: R29 := mem[R31, el]:u64 -00000048: R30 := mem[R31 + 8, el]:u64 -0000004c: R31 := R31 + 0x10 -00000051: call R30 with noreturn - -0000069e: sub _init(_init_result) -000006d4: _init_result :: out u32 = low:32[R0] - -000005d9: -000005df: #7 := R31 - 0x10 -000005e5: mem := mem with [#7, el]:u64 <- R29 -000005eb: mem := mem with [#7 + 8, el]:u64 <- R30 -000005ef: R31 := #7 -000005f5: R29 := R31 -000005fa: R30 := 0x590 -000005fc: call @call_weak_fn with return %000005fe - -000005fe: -00000603: R29 := mem[R31, el]:u64 -00000608: R30 := mem[R31 + 8, el]:u64 -0000060c: R31 := R31 + 0x10 -00000611: call R30 with noreturn - -0000069f: sub _start(_start_result) -000006d5: _start_result :: out u32 = low:32[R0] - -0000028d: -00000292: R29 := 0 -00000297: R30 := 0 -0000029d: R5 := R0 -000002a4: R1 := mem[R31, el]:u64 -000002aa: R2 := R31 + 8 -000002b0: R6 := R31 -000002b5: R0 := 0x1F000 -000002bc: R0 := mem[R0 + 0xFD8, el]:u64 -000002c1: R3 := 0 -000002c6: R4 := 0 -000002cb: R30 := 0x670 -000002ce: call @__libc_start_main with return %000002d0 - -000002d0: -000002d3: R30 := 0x674 -000002d6: call @abort with return %000006c4 - -000006c4: -000006c5: call @call_weak_fn with noreturn - -000006a2: sub abort() - - -000002d4: -0000053f: R16 := 0x20000 -00000546: R17 := mem[R16 + 0x18, el]:u64 -0000054c: R16 := R16 + 0x18 -00000551: call R17 with noreturn - -000006a3: sub call_weak_fn(call_weak_fn_result) -000006d6: call_weak_fn_result :: out u32 = low:32[R0] - -000002d8: -000002db: R0 := 0x1F000 -000002e2: R0 := mem[R0 + 0xFD0, el]:u64 -000002e8: when R0 = 0 goto %000002e6 -000006c6: goto %0000045b - -000002e6: -000002ee: call R30 with noreturn - -0000045b: -0000045e: goto @__gmon_start__ - -0000045c: -00000529: R16 := 0x20000 -00000530: R17 := mem[R16 + 0x10, el]:u64 -00000536: R16 := R16 + 0x10 -0000053b: call R17 with noreturn - -000006a5: sub deregister_tm_clones(deregister_tm_clones_result) -000006d7: deregister_tm_clones_result :: out u32 = low:32[R0] - -000002fc: -000002ff: R0 := 0x20000 -00000305: R0 := R0 + 0x30 -0000030a: R1 := 0x20000 -00000310: R1 := R1 + 0x30 -00000316: #3 := ~R0 -0000031b: #4 := R1 + ~R0 -00000321: VF := extend:65[#4 + 1] <> extend:65[R1] + extend:65[#3] + 1 -00000327: CF := pad:65[#4 + 1] <> pad:65[R1] + pad:65[#3] + 1 -0000032b: ZF := #4 + 1 = 0 -0000032f: NF := 63:63[#4 + 1] -00000335: when ZF goto %00000333 -000006c7: goto %0000043d - -0000043d: -00000440: R1 := 0x1F000 -00000447: R1 := mem[R1 + 0xFC0, el]:u64 -0000044c: when R1 = 0 goto %00000333 -000006c8: goto %00000450 - -00000333: -0000033b: call R30 with noreturn - -00000450: -00000454: R16 := R1 -00000459: call R16 with noreturn - -000006a8: sub f(f_result) -000006d8: f_result :: out u32 = low:32[R0] - -00000220: -00000226: R2 := 0x20000 -0000022d: R2 := pad:64[mem[R2 + 0x34, el]:u32] -00000233: #2 := 31:0[R2] -00000238: VF := 0 -0000023d: CF := pad:33[#2] <> pad:33[31:0[R2]] - 0x100000000 -00000241: ZF := #2 = 0 -00000245: NF := 31:31[#2] -00000253: when ZF goto %0000024b -00000254: goto %0000024f - -0000024f: -00000250: R0 := pad:64[31:0[R0]] -00000256: goto %00000252 - -0000024b: -0000024c: R0 := pad:64[31:0[R1]] -00000255: goto %00000252 - -00000252: -0000025b: call R30 with noreturn - -000006a9: sub frame_dummy(frame_dummy_result) -000006d9: frame_dummy_result :: out u32 = low:32[R0] - -000003d2: -000003d4: call @register_tm_clones with noreturn - -000006aa: sub main(main_argc, main_argv, main_result) -000006da: main_argc :: in u32 = low:32[R0] -000006db: main_argv :: in out u64 = R1 -000006dc: main_result :: out u32 = low:32[R0] - -000001e9: -000001ec: R3 := 0x20000 -000001f2: R3 := R3 + 0x34 -000001f8: #1 := R31 - 0x10 -000001fe: mem := mem with [#1, el]:u64 <- R29 -00000204: mem := mem with [#1 + 8, el]:u64 <- R30 -00000208: R31 := #1 -0000020d: R1 := 1 -00000213: R29 := R31 -0000021a: R0 := pad:64[mem[R3 + 4, el]:u32] -0000021f: R30 := 0x61C -00000222: call @f with return %0000025d - -0000025d: -00000261: R1 := pad:64[31:0[R0]] -00000268: R29 := mem[R31, el]:u64 -0000026d: R30 := mem[R31 + 8, el]:u64 -00000271: R31 := R31 + 0x10 -00000276: R0 := 0 -0000027e: mem := mem with [R3 + 4, el]:u32 <- 31:0[R1] -00000283: call R30 with noreturn - -000006ab: sub register_tm_clones(register_tm_clones_result) -000006dd: register_tm_clones_result :: out u32 = low:32[R0] - -0000033d: -00000340: R0 := 0x20000 -00000346: R0 := R0 + 0x30 -0000034b: R1 := 0x20000 -00000351: R1 := R1 + 0x30 -00000358: R1 := R1 + ~R0 + 1 -0000035e: R2 := 0.63:63[R1] -00000365: R1 := R2 + (R1 ~>> 3) -0000036b: R1 := extend:64[63:1[R1]] -00000371: when R1 = 0 goto %0000036f -000006c9: goto %0000041f - -0000041f: -00000422: R2 := 0x1F000 -00000429: R2 := mem[R2 + 0xFE0, el]:u64 -0000042e: when R2 = 0 goto %0000036f -000006ca: goto %00000432 - -0000036f: -00000377: call R30 with noreturn - -00000432: -00000436: R16 := R2 -0000043b: call R16 with noreturn diff --git a/src/test/procedure_summaries/procedure_summary2/gcc_O2/procedure_summary2.gts b/src/test/procedure_summaries/procedure_summary2/gcc_O2/procedure_summary2.gts deleted file mode 100644 index bfa386fbd..000000000 Binary files a/src/test/procedure_summaries/procedure_summary2/gcc_O2/procedure_summary2.gts and /dev/null differ diff --git a/src/test/procedure_summaries/procedure_summary2/gcc_O2/procedure_summary2.md5sum b/src/test/procedure_summaries/procedure_summary2/gcc_O2/procedure_summary2.md5sum new file mode 100644 index 000000000..2ec900ff8 --- /dev/null +++ b/src/test/procedure_summaries/procedure_summary2/gcc_O2/procedure_summary2.md5sum @@ -0,0 +1,5 @@ +5b228c19a3af37b5d4266f166cbfc373 procedure_summaries/procedure_summary2/gcc_O2/a.out +097863007279a6a711aee6aabf82bf66 procedure_summaries/procedure_summary2/gcc_O2/procedure_summary2.adt +541c808dba20682e62d1a30df0f78f12 procedure_summaries/procedure_summary2/gcc_O2/procedure_summary2.bir +687ae99033a845a2e87342ecfea99677 procedure_summaries/procedure_summary2/gcc_O2/procedure_summary2.relf +6a118cda48eea464f345419bd75e7545 procedure_summaries/procedure_summary2/gcc_O2/procedure_summary2.gts diff --git a/src/test/procedure_summaries/procedure_summary2/gcc_O2/procedure_summary2.relf b/src/test/procedure_summaries/procedure_summary2/gcc_O2/procedure_summary2.relf deleted file mode 100644 index 50552529e..000000000 --- a/src/test/procedure_summaries/procedure_summary2/gcc_O2/procedure_summary2.relf +++ /dev/null @@ -1,127 +0,0 @@ - -Relocation section '.rela.dyn' at offset 0x460 contains 8 entries: - Offset Info Type Symbol's Value Symbol's Name + Addend -000000000001fdc8 0000000000000403 R_AARCH64_RELATIVE 760 -000000000001fdd0 0000000000000403 R_AARCH64_RELATIVE 70c -000000000001ffd8 0000000000000403 R_AARCH64_RELATIVE 600 -0000000000020028 0000000000000403 R_AARCH64_RELATIVE 20028 -000000000001ffc0 0000000400000401 R_AARCH64_GLOB_DAT 0000000000000000 _ITM_deregisterTMCloneTable + 0 -000000000001ffc8 0000000500000401 R_AARCH64_GLOB_DAT 0000000000000000 __cxa_finalize@GLIBC_2.17 + 0 -000000000001ffd0 0000000600000401 R_AARCH64_GLOB_DAT 0000000000000000 __gmon_start__ + 0 -000000000001ffe0 0000000800000401 R_AARCH64_GLOB_DAT 0000000000000000 _ITM_registerTMCloneTable + 0 - -Relocation section '.rela.plt' at offset 0x520 contains 4 entries: - Offset Info Type Symbol's Value Symbol's Name + Addend -0000000000020000 0000000300000402 R_AARCH64_JUMP_SLOT 0000000000000000 __libc_start_main@GLIBC_2.34 + 0 -0000000000020008 0000000500000402 R_AARCH64_JUMP_SLOT 0000000000000000 __cxa_finalize@GLIBC_2.17 + 0 -0000000000020010 0000000600000402 R_AARCH64_JUMP_SLOT 0000000000000000 __gmon_start__ + 0 -0000000000020018 0000000700000402 R_AARCH64_JUMP_SLOT 0000000000000000 abort@GLIBC_2.17 + 0 - -Symbol table '.dynsym' contains 9 entries: - Num: Value Size Type Bind Vis Ndx Name - 0: 0000000000000000 0 NOTYPE LOCAL DEFAULT UND - 1: 0000000000000580 0 SECTION LOCAL DEFAULT 11 .init - 2: 0000000000020020 0 SECTION LOCAL DEFAULT 23 .data - 3: 0000000000000000 0 FUNC GLOBAL DEFAULT UND __libc_start_main@GLIBC_2.34 (2) - 4: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_deregisterTMCloneTable - 5: 0000000000000000 0 FUNC WEAK DEFAULT UND __cxa_finalize@GLIBC_2.17 (3) - 6: 0000000000000000 0 NOTYPE WEAK DEFAULT UND __gmon_start__ - 7: 0000000000000000 0 FUNC GLOBAL DEFAULT UND abort@GLIBC_2.17 (3) - 8: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_registerTMCloneTable - -Symbol table '.symtab' contains 94 entries: - Num: Value Size Type Bind Vis Ndx Name - 0: 0000000000000000 0 NOTYPE LOCAL DEFAULT UND - 1: 0000000000000238 0 SECTION LOCAL DEFAULT 1 .interp - 2: 0000000000000254 0 SECTION LOCAL DEFAULT 2 .note.gnu.build-id - 3: 0000000000000278 0 SECTION LOCAL DEFAULT 3 .note.ABI-tag - 4: 0000000000000298 0 SECTION LOCAL DEFAULT 4 .gnu.hash - 5: 00000000000002b8 0 SECTION LOCAL DEFAULT 5 .dynsym - 6: 0000000000000390 0 SECTION LOCAL DEFAULT 6 .dynstr - 7: 000000000000041e 0 SECTION LOCAL DEFAULT 7 .gnu.version - 8: 0000000000000430 0 SECTION LOCAL DEFAULT 8 .gnu.version_r - 9: 0000000000000460 0 SECTION LOCAL DEFAULT 9 .rela.dyn - 10: 0000000000000520 0 SECTION LOCAL DEFAULT 10 .rela.plt - 11: 0000000000000580 0 SECTION LOCAL DEFAULT 11 .init - 12: 00000000000005a0 0 SECTION LOCAL DEFAULT 12 .plt - 13: 0000000000000600 0 SECTION LOCAL DEFAULT 13 .text - 14: 0000000000000794 0 SECTION LOCAL DEFAULT 14 .fini - 15: 00000000000007a8 0 SECTION LOCAL DEFAULT 15 .rodata - 16: 00000000000007ac 0 SECTION LOCAL DEFAULT 16 .eh_frame_hdr - 17: 00000000000007f0 0 SECTION LOCAL DEFAULT 17 .eh_frame - 18: 000000000001fdc8 0 SECTION LOCAL DEFAULT 18 .init_array - 19: 000000000001fdd0 0 SECTION LOCAL DEFAULT 19 .fini_array - 20: 000000000001fdd8 0 SECTION LOCAL DEFAULT 20 .dynamic - 21: 000000000001ffb8 0 SECTION LOCAL DEFAULT 21 .got - 22: 000000000001ffe8 0 SECTION LOCAL DEFAULT 22 .got.plt - 23: 0000000000020020 0 SECTION LOCAL DEFAULT 23 .data - 24: 0000000000020030 0 SECTION LOCAL DEFAULT 24 .bss - 25: 0000000000000000 0 SECTION LOCAL DEFAULT 25 .comment - 26: 0000000000000000 0 FILE LOCAL DEFAULT ABS abi-note.c - 27: 0000000000000278 0 NOTYPE LOCAL DEFAULT 3 $d - 28: 0000000000000278 32 OBJECT LOCAL DEFAULT 3 __abi_tag - 29: 0000000000000000 0 FILE LOCAL DEFAULT ABS start.os - 30: 0000000000000640 0 NOTYPE LOCAL DEFAULT 13 $x - 31: 0000000000000804 0 NOTYPE LOCAL DEFAULT 17 $d - 32: 0000000000000000 0 FILE LOCAL DEFAULT ABS init.c - 33: 00000000000007a8 0 NOTYPE LOCAL DEFAULT 15 $d - 34: 0000000000000000 0 FILE LOCAL DEFAULT ABS crti.o - 35: 0000000000000674 0 NOTYPE LOCAL DEFAULT 13 $x - 36: 0000000000000674 20 FUNC LOCAL DEFAULT 13 call_weak_fn - 37: 0000000000000580 0 NOTYPE LOCAL DEFAULT 11 $x - 38: 0000000000000794 0 NOTYPE LOCAL DEFAULT 14 $x - 39: 0000000000000000 0 FILE LOCAL DEFAULT ABS crtn.o - 40: 0000000000000590 0 NOTYPE LOCAL DEFAULT 11 $x - 41: 00000000000007a0 0 NOTYPE LOCAL DEFAULT 14 $x - 42: 0000000000000000 0 FILE LOCAL DEFAULT ABS function_summary2.c - 43: 0000000000000780 0 NOTYPE LOCAL DEFAULT 13 $x - 44: 0000000000000600 0 NOTYPE LOCAL DEFAULT 13 $x - 45: 0000000000020034 0 NOTYPE LOCAL DEFAULT 24 $d - 46: 0000000000000878 0 NOTYPE LOCAL DEFAULT 17 $d - 47: 0000000000000000 0 FILE LOCAL DEFAULT ABS crtstuff.c - 48: 00000000000006a0 0 NOTYPE LOCAL DEFAULT 13 $x - 49: 00000000000006a0 0 FUNC LOCAL DEFAULT 13 deregister_tm_clones - 50: 00000000000006d0 0 FUNC LOCAL DEFAULT 13 register_tm_clones - 51: 0000000000020028 0 NOTYPE LOCAL DEFAULT 23 $d - 52: 000000000000070c 0 FUNC LOCAL DEFAULT 13 __do_global_dtors_aux - 53: 0000000000020030 1 OBJECT LOCAL DEFAULT 24 completed.0 - 54: 000000000001fdd0 0 NOTYPE LOCAL DEFAULT 19 $d - 55: 000000000001fdd0 0 OBJECT LOCAL DEFAULT 19 __do_global_dtors_aux_fini_array_entry - 56: 0000000000000760 0 FUNC LOCAL DEFAULT 13 frame_dummy - 57: 000000000001fdc8 0 NOTYPE LOCAL DEFAULT 18 $d - 58: 000000000001fdc8 0 OBJECT LOCAL DEFAULT 18 __frame_dummy_init_array_entry - 59: 0000000000000818 0 NOTYPE LOCAL DEFAULT 17 $d - 60: 0000000000020030 0 NOTYPE LOCAL DEFAULT 24 $d - 61: 0000000000000000 0 FILE LOCAL DEFAULT ABS crtstuff.c - 62: 00000000000008ac 0 NOTYPE LOCAL DEFAULT 17 $d - 63: 00000000000008ac 0 OBJECT LOCAL DEFAULT 17 __FRAME_END__ - 64: 0000000000000000 0 FILE LOCAL DEFAULT ABS - 65: 000000000001fdd8 0 OBJECT LOCAL DEFAULT ABS _DYNAMIC - 66: 00000000000007ac 0 NOTYPE LOCAL DEFAULT 16 __GNU_EH_FRAME_HDR - 67: 000000000001ffb8 0 OBJECT LOCAL DEFAULT ABS _GLOBAL_OFFSET_TABLE_ - 68: 00000000000005a0 0 NOTYPE LOCAL DEFAULT 12 $x - 69: 0000000000000000 0 FUNC GLOBAL DEFAULT UND __libc_start_main@GLIBC_2.34 - 70: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_deregisterTMCloneTable - 71: 0000000000020020 0 NOTYPE WEAK DEFAULT 23 data_start - 72: 0000000000020030 0 NOTYPE GLOBAL DEFAULT 24 __bss_start__ - 73: 0000000000000000 0 FUNC WEAK DEFAULT UND __cxa_finalize@GLIBC_2.17 - 74: 0000000000020040 0 NOTYPE GLOBAL DEFAULT 24 _bss_end__ - 75: 0000000000020030 0 NOTYPE GLOBAL DEFAULT 23 _edata - 76: 0000000000020038 4 OBJECT GLOBAL DEFAULT 24 x - 77: 0000000000000794 0 FUNC GLOBAL HIDDEN 14 _fini - 78: 0000000000020040 0 NOTYPE GLOBAL DEFAULT 24 __bss_end__ - 79: 0000000000000780 20 FUNC GLOBAL DEFAULT 13 f - 80: 0000000000020020 0 NOTYPE GLOBAL DEFAULT 23 __data_start - 81: 0000000000000000 0 NOTYPE WEAK DEFAULT UND __gmon_start__ - 82: 0000000000020028 0 OBJECT GLOBAL HIDDEN 23 __dso_handle - 83: 0000000000000000 0 FUNC GLOBAL DEFAULT UND abort@GLIBC_2.17 - 84: 00000000000007a8 4 OBJECT GLOBAL DEFAULT 15 _IO_stdin_used - 85: 0000000000020040 0 NOTYPE GLOBAL DEFAULT 24 _end - 86: 0000000000000640 52 FUNC GLOBAL DEFAULT 13 _start - 87: 0000000000020034 4 OBJECT GLOBAL DEFAULT 24 c - 88: 0000000000020040 0 NOTYPE GLOBAL DEFAULT 24 __end__ - 89: 0000000000020030 0 NOTYPE GLOBAL DEFAULT 24 __bss_start - 90: 0000000000000600 48 FUNC GLOBAL DEFAULT 13 main - 91: 0000000000020030 0 OBJECT GLOBAL HIDDEN 23 __TMC_END__ - 92: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_registerTMCloneTable - 93: 0000000000000580 0 FUNC GLOBAL HIDDEN 11 _init diff --git a/src/test/procedure_summaries/procedure_summary3/gcc_O2/procedure_summary3.adt b/src/test/procedure_summaries/procedure_summary3/gcc_O2/procedure_summary3.adt deleted file mode 100644 index 18f323928..000000000 --- a/src/test/procedure_summaries/procedure_summary3/gcc_O2/procedure_summary3.adt +++ /dev/null @@ -1,585 +0,0 @@ -Project(Attrs([Attr("filename","\"procedure_summary3\""), -Attr("image-specification","(declare abi (name str))\n(declare arch (name str))\n(declare base-address (addr int))\n(declare bias (off int))\n(declare bits (size int))\n(declare code-region (addr int) (size int) (off int))\n(declare code-start (addr int))\n(declare entry-point (addr int))\n(declare external-reference (addr int) (name str))\n(declare format (name str))\n(declare is-executable (flag bool))\n(declare is-little-endian (flag bool))\n(declare llvm:base-address (addr int))\n(declare llvm:code-entry (name str) (off int) (size int))\n(declare llvm:coff-import-library (name str))\n(declare llvm:coff-virtual-section-header (name str) (addr int) (size int))\n(declare llvm:elf-program-header (name str) (off int) (size int))\n(declare llvm:elf-program-header-flags (name str) (ld bool) (r bool) \n (w bool) (x bool))\n(declare llvm:elf-virtual-program-header (name str) (addr int) (size int))\n(declare llvm:entry-point (addr int))\n(declare llvm:macho-symbol (name str) (value int))\n(declare llvm:name-reference (at int) (name str))\n(declare llvm:relocation (at int) (addr int))\n(declare llvm:section-entry (name str) (addr int) (size int) (off int))\n(declare llvm:section-flags (name str) (r bool) (w bool) (x bool))\n(declare llvm:segment-command (name str) (off int) (size int))\n(declare llvm:segment-command-flags (name str) (r bool) (w bool) (x bool))\n(declare llvm:symbol-entry (name str) (addr int) (size int) (off int)\n (value int))\n(declare llvm:virtual-segment-command (name str) (addr int) (size int))\n(declare mapped (addr int) (size int) (off int))\n(declare named-region (addr int) (size int) (name str))\n(declare named-symbol (addr int) (name str))\n(declare require (name str))\n(declare section (addr int) (size int))\n(declare segment (addr int) (size int) (r bool) (w bool) (x bool))\n(declare subarch (name str))\n(declare symbol-chunk (addr int) (size int) (root int))\n(declare symbol-value (addr int) (value int))\n(declare system (name str))\n(declare vendor (name str))\n\n(abi unknown)\n(arch aarch64)\n(base-address 0)\n(bias 0)\n(bits 64)\n(code-region 1956 20 1956)\n(code-region 1536 420 1536)\n(code-region 1440 96 1440)\n(code-region 1408 24 1408)\n(code-start 1652)\n(code-start 1928)\n(code-start 1600)\n(code-start 1920)\n(code-start 1536)\n(entry-point 1600)\n(external-reference 131008 _ITM_deregisterTMCloneTable)\n(external-reference 131016 __cxa_finalize)\n(external-reference 131024 __gmon_start__)\n(external-reference 131040 _ITM_registerTMCloneTable)\n(external-reference 131072 __libc_start_main)\n(external-reference 131080 __cxa_finalize)\n(external-reference 131088 __gmon_start__)\n(external-reference 131096 abort)\n(format elf)\n(is-executable true)\n(is-little-endian true)\n(llvm:base-address 0)\n(llvm:code-entry abort 0 0)\n(llvm:code-entry __cxa_finalize 0 0)\n(llvm:code-entry __libc_start_main 0 0)\n(llvm:code-entry _init 1408 0)\n(llvm:code-entry main 1536 40)\n(llvm:code-entry g 1920 8)\n(llvm:code-entry _start 1600 52)\n(llvm:code-entry abort@GLIBC_2.17 0 0)\n(llvm:code-entry f 1928 28)\n(llvm:code-entry _fini 1956 0)\n(llvm:code-entry __cxa_finalize@GLIBC_2.17 0 0)\n(llvm:code-entry __libc_start_main@GLIBC_2.34 0 0)\n(llvm:code-entry frame_dummy 1888 0)\n(llvm:code-entry __do_global_dtors_aux 1804 0)\n(llvm:code-entry register_tm_clones 1744 0)\n(llvm:code-entry deregister_tm_clones 1696 0)\n(llvm:code-entry call_weak_fn 1652 20)\n(llvm:code-entry .fini 1956 20)\n(llvm:code-entry .text 1536 420)\n(llvm:code-entry .plt 1440 96)\n(llvm:code-entry .init 1408 24)\n(llvm:elf-program-header 08 64968 568)\n(llvm:elf-program-header 07 0 0)\n(llvm:elf-program-header 06 1980 76)\n(llvm:elf-program-header 05 596 68)\n(llvm:elf-program-header 04 64984 480)\n(llvm:elf-program-header 03 64968 616)\n(llvm:elf-program-header 02 0 2280)\n(llvm:elf-program-header 01 568 27)\n(llvm:elf-program-header 00 64 504)\n(llvm:elf-program-header-flags 08 false true false false)\n(llvm:elf-program-header-flags 07 false true true false)\n(llvm:elf-program-header-flags 06 false true false false)\n(llvm:elf-program-header-flags 05 false true false false)\n(llvm:elf-program-header-flags 04 false true true false)\n(llvm:elf-program-header-flags 03 true true true false)\n(llvm:elf-program-header-flags 02 true true false true)\n(llvm:elf-program-header-flags 01 false true false false)\n(llvm:elf-program-header-flags 00 false true false false)\n(llvm:elf-virtual-program-header 08 130504 568)\n(llvm:elf-virtual-program-header 07 0 0)\n(llvm:elf-virtual-program-header 06 1980 76)\n(llvm:elf-virtual-program-header 05 596 68)\n(llvm:elf-virtual-program-header 04 130520 480)\n(llvm:elf-virtual-program-header 03 130504 624)\n(llvm:elf-virtual-program-header 02 0 2280)\n(llvm:elf-virtual-program-header 01 568 27)\n(llvm:elf-virtual-program-header 00 64 504)\n(llvm:entry-point 1600)\n(llvm:name-reference 131096 abort)\n(llvm:name-reference 131088 __gmon_start__)\n(llvm:name-reference 131080 __cxa_finalize)\n(llvm:name-reference 131072 __libc_start_main)\n(llvm:name-reference 131040 _ITM_registerTMCloneTable)\n(llvm:name-reference 131024 __gmon_start__)\n(llvm:name-reference 131016 __cxa_finalize)\n(llvm:name-reference 131008 _ITM_deregisterTMCloneTable)\n(llvm:section-entry .shstrtab 0 259 68439)\n(llvm:section-entry .strtab 0 575 67864)\n(llvm:section-entry .symtab 0 2256 65608)\n(llvm:section-entry .comment 0 18 65584)\n(llvm:section-entry .bss 131120 8 65584)\n(llvm:section-entry .data 131104 16 65568)\n(llvm:section-entry .got.plt 131048 56 65512)\n(llvm:section-entry .got 131000 48 65464)\n(llvm:section-entry .dynamic 130520 480 64984)\n(llvm:section-entry .fini_array 130512 8 64976)\n(llvm:section-entry .init_array 130504 8 64968)\n(llvm:section-entry .eh_frame 2056 224 2056)\n(llvm:section-entry .eh_frame_hdr 1980 76 1980)\n(llvm:section-entry .rodata 1976 4 1976)\n(llvm:section-entry .fini 1956 20 1956)\n(llvm:section-entry .text 1536 420 1536)\n(llvm:section-entry .plt 1440 96 1440)\n(llvm:section-entry .init 1408 24 1408)\n(llvm:section-entry .rela.plt 1312 96 1312)\n(llvm:section-entry .rela.dyn 1120 192 1120)\n(llvm:section-entry .gnu.version_r 1072 48 1072)\n(llvm:section-entry .gnu.version 1054 18 1054)\n(llvm:section-entry .dynstr 912 141 912)\n(llvm:section-entry .dynsym 696 216 696)\n(llvm:section-entry .gnu.hash 664 28 664)\n(llvm:section-entry .note.ABI-tag 632 32 632)\n(llvm:section-entry .note.gnu.build-id 596 36 596)\n(llvm:section-entry .interp 568 27 568)\n(llvm:section-flags .shstrtab true false false)\n(llvm:section-flags .strtab true false false)\n(llvm:section-flags .symtab true false false)\n(llvm:section-flags .comment true false false)\n(llvm:section-flags .bss true true false)\n(llvm:section-flags .data true true false)\n(llvm:section-flags .got.plt true true false)\n(llvm:section-flags .got true true false)\n(llvm:section-flags .dynamic true true false)\n(llvm:section-flags .fini_array true true false)\n(llvm:section-flags .init_array true true false)\n(llvm:section-flags .eh_frame true false false)\n(llvm:section-flags .eh_frame_hdr true false false)\n(llvm:section-flags .rodata true false false)\n(llvm:section-flags .fini true false true)\n(llvm:section-flags .text true false true)\n(llvm:section-flags .plt true false true)\n(llvm:section-flags .init true false true)\n(llvm:section-flags .rela.plt true false false)\n(llvm:section-flags .rela.dyn true false false)\n(llvm:section-flags .gnu.version_r true false false)\n(llvm:section-flags .gnu.version true false false)\n(llvm:section-flags .dynstr true false false)\n(llvm:section-flags .dynsym true false false)\n(llvm:section-flags .gnu.hash true false false)\n(llvm:section-flags .note.ABI-tag true false false)\n(llvm:section-flags .note.gnu.build-id true false false)\n(llvm:section-flags .interp true false false)\n(llvm:symbol-entry abort 0 0 0 0)\n(llvm:symbol-entry __cxa_finalize 0 0 0 0)\n(llvm:symbol-entry __libc_start_main 0 0 0 0)\n(llvm:symbol-entry _init 1408 0 1408 1408)\n(llvm:symbol-entry main 1536 40 1536 1536)\n(llvm:symbol-entry g 1920 8 1920 1920)\n(llvm:symbol-entry _start 1600 52 1600 1600)\n(llvm:symbol-entry abort@GLIBC_2.17 0 0 0 0)\n(llvm:symbol-entry f 1928 28 1928 1928)\n(llvm:symbol-entry _fini 1956 0 1956 1956)\n(llvm:symbol-entry __cxa_finalize@GLIBC_2.17 0 0 0 0)\n(llvm:symbol-entry __libc_start_main@GLIBC_2.34 0 0 0 0)\n(llvm:symbol-entry frame_dummy 1888 0 1888 1888)\n(llvm:symbol-entry __do_global_dtors_aux 1804 0 1804 1804)\n(llvm:symbol-entry register_tm_clones 1744 0 1744 1744)\n(llvm:symbol-entry deregister_tm_clones 1696 0 1696 1696)\n(llvm:symbol-entry call_weak_fn 1652 20 1652 1652)\n(mapped 0 2280 0)\n(mapped 130504 616 64968)\n(named-region 0 2280 02)\n(named-region 130504 624 03)\n(named-region 568 27 .interp)\n(named-region 596 36 .note.gnu.build-id)\n(named-region 632 32 .note.ABI-tag)\n(named-region 664 28 .gnu.hash)\n(named-region 696 216 .dynsym)\n(named-region 912 141 .dynstr)\n(named-region 1054 18 .gnu.version)\n(named-region 1072 48 .gnu.version_r)\n(named-region 1120 192 .rela.dyn)\n(named-region 1312 96 .rela.plt)\n(named-region 1408 24 .init)\n(named-region 1440 96 .plt)\n(named-region 1536 420 .text)\n(named-region 1956 20 .fini)\n(named-region 1976 4 .rodata)\n(named-region 1980 76 .eh_frame_hdr)\n(named-region 2056 224 .eh_frame)\n(named-region 130504 8 .init_array)\n(named-region 130512 8 .fini_array)\n(named-region 130520 480 .dynamic)\n(named-region 131000 48 .got)\n(named-region 131048 56 .got.plt)\n(named-region 131104 16 .data)\n(named-region 131120 8 .bss)\n(named-region 0 18 .comment)\n(named-region 0 2256 .symtab)\n(named-region 0 575 .strtab)\n(named-region 0 259 .shstrtab)\n(named-symbol 1652 call_weak_fn)\n(named-symbol 1696 deregister_tm_clones)\n(named-symbol 1744 register_tm_clones)\n(named-symbol 1804 __do_global_dtors_aux)\n(named-symbol 1888 frame_dummy)\n(named-symbol 0 __libc_start_main@GLIBC_2.34)\n(named-symbol 0 __cxa_finalize@GLIBC_2.17)\n(named-symbol 1956 _fini)\n(named-symbol 1928 f)\n(named-symbol 0 abort@GLIBC_2.17)\n(named-symbol 1600 _start)\n(named-symbol 1920 g)\n(named-symbol 1536 main)\n(named-symbol 1408 _init)\n(named-symbol 0 __libc_start_main)\n(named-symbol 0 __cxa_finalize)\n(named-symbol 0 abort)\n(require libc.so.6)\n(section 568 27)\n(section 596 36)\n(section 632 32)\n(section 664 28)\n(section 696 216)\n(section 912 141)\n(section 1054 18)\n(section 1072 48)\n(section 1120 192)\n(section 1312 96)\n(section 1408 24)\n(section 1440 96)\n(section 1536 420)\n(section 1956 20)\n(section 1976 4)\n(section 1980 76)\n(section 2056 224)\n(section 130504 8)\n(section 130512 8)\n(section 130520 480)\n(section 131000 48)\n(section 131048 56)\n(section 131104 16)\n(section 131120 8)\n(section 0 18)\n(section 0 2256)\n(section 0 575)\n(section 0 259)\n(segment 0 2280 true false true)\n(segment 130504 624 true true false)\n(subarch v8)\n(symbol-chunk 1652 20 1652)\n(symbol-chunk 1928 28 1928)\n(symbol-chunk 1600 52 1600)\n(symbol-chunk 1920 8 1920)\n(symbol-chunk 1536 40 1536)\n(symbol-value 1652 1652)\n(symbol-value 1696 1696)\n(symbol-value 1744 1744)\n(symbol-value 1804 1804)\n(symbol-value 1888 1888)\n(symbol-value 1956 1956)\n(symbol-value 1928 1928)\n(symbol-value 1600 1600)\n(symbol-value 1920 1920)\n(symbol-value 1536 1536)\n(symbol-value 1408 1408)\n(symbol-value 0 0)\n(system \"\")\n(vendor \"\")\n"), -Attr("abi-name","\"aarch64-linux-gnu-elf\"")]), -Sections([Section(".shstrtab", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x40\x06\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x60\x0c\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x38\x00\x09\x00\x40\x00\x1d\x00\x1c\x00\x06\x00\x00\x00\x04\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x04\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe8\x08\x00\x00\x00\x00\x00\x00\xe8\x08\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x01\x00\x00\x00\x06\x00\x00\x00\xc8\xfd\x00\x00\x00\x00\x00\x00\xc8\xfd\x01\x00\x00\x00\x00\x00\xc8\xfd\x01"), -Section(".strtab", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x40\x06\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x60\x0c\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x38\x00\x09\x00\x40\x00\x1d\x00\x1c\x00\x06\x00\x00\x00\x04\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x04\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe8\x08\x00\x00\x00\x00\x00\x00\xe8\x08\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x01\x00\x00\x00\x06\x00\x00\x00\xc8\xfd\x00\x00\x00\x00\x00\x00\xc8\xfd\x01\x00\x00\x00\x00\x00\xc8\xfd\x01\x00\x00\x00\x00\x00\x68\x02\x00\x00\x00\x00\x00\x00\x70\x02\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x02\x00\x00\x00\x06\x00\x00\x00\xd8\xfd\x00\x00\x00\x00\x00\x00\xd8\xfd\x01\x00\x00\x00\x00\x00\xd8\xfd\x01\x00\x00\x00\x00\x00\xe0\x01\x00\x00\x00\x00\x00\x00\xe0\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x04\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x50\xe5\x74\x64\x04\x00\x00\x00\xbc\x07\x00\x00\x00\x00\x00\x00\xbc\x07\x00\x00\x00\x00\x00\x00\xbc\x07\x00\x00\x00\x00\x00\x00\x4c\x00\x00\x00\x00\x00\x00\x00\x4c\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x51\xe5\x74\x64\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x52\xe5\x74\x64\x04\x00\x00\x00\xc8\xfd\x00\x00\x00\x00\x00\x00\xc8\xfd\x01\x00\x00\x00\x00\x00\xc8\xfd\x01\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x2f\x6c\x69\x62\x2f\x6c\x64"), -Section(".symtab", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x40\x06\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x60\x0c\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x38\x00\x09\x00\x40\x00\x1d\x00\x1c\x00\x06\x00\x00\x00\x04\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x04\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe8\x08\x00\x00\x00\x00\x00\x00\xe8\x08\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x01\x00\x00\x00\x06\x00\x00\x00\xc8\xfd\x00\x00\x00\x00\x00\x00\xc8\xfd\x01\x00\x00\x00\x00\x00\xc8\xfd\x01\x00\x00\x00\x00\x00\x68\x02\x00\x00\x00\x00\x00\x00\x70\x02\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x02\x00\x00\x00\x06\x00\x00\x00\xd8\xfd\x00\x00\x00\x00\x00\x00\xd8\xfd\x01\x00\x00\x00\x00\x00\xd8\xfd\x01\x00\x00\x00\x00\x00\xe0\x01\x00\x00\x00\x00\x00\x00\xe0\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x04\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x50\xe5\x74\x64\x04\x00\x00\x00\xbc\x07\x00\x00\x00\x00\x00\x00\xbc\x07\x00\x00\x00\x00\x00\x00\xbc\x07\x00\x00\x00\x00\x00\x00\x4c\x00\x00\x00\x00\x00\x00\x00\x4c\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x51\xe5\x74\x64\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x52\xe5\x74\x64\x04\x00\x00\x00\xc8\xfd\x00\x00\x00\x00\x00\x00\xc8\xfd\x01\x00\x00\x00\x00\x00\xc8\xfd\x01\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x2f\x6c\x69\x62\x2f\x6c\x64\x2d\x6c\x69\x6e\x75\x78\x2d\x61\x61\x72\x63\x68\x36\x34\x2e\x73\x6f\x2e\x31\x00\x00\x04\x00\x00\x00\x14\x00\x00\x00\x03\x00\x00\x00\x47\x4e\x55\x00\xd0\xe8\x34\x78\x98\x44\x7d\x6f\xb8\xb1\x72\x93\xe5\xe4\xc9\x48\x92\x8e\x85\xe1\x04\x00\x00\x00\x10\x00\x00\x00\x01\x00\x00\x00\x47\x4e\x55\x00\x00\x00\x00\x00\x03\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x01\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x0b\x00\x80\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x17\x00\x20\x00\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x48\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x13\x00\x00\x00\x22\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x22\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x73\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5f\x5f\x6c\x69\x62\x63\x5f\x73\x74\x61\x72\x74\x5f\x6d\x61\x69\x6e\x00\x5f\x5f\x63\x78\x61\x5f\x66\x69\x6e\x61\x6c\x69\x7a\x65\x00\x61\x62\x6f\x72\x74\x00\x6c\x69\x62\x63\x2e\x73\x6f\x2e\x36\x00\x47\x4c\x49\x42\x43\x5f\x32\x2e\x31\x37\x00\x47\x4c\x49\x42\x43\x5f\x32\x2e\x33\x34\x00\x5f\x49\x54\x4d\x5f\x64\x65\x72\x65\x67\x69\x73\x74\x65\x72\x54\x4d\x43\x6c\x6f\x6e\x65\x54\x61\x62\x6c\x65\x00\x5f\x5f\x67\x6d\x6f\x6e\x5f\x73\x74\x61\x72\x74\x5f\x5f\x00\x5f\x49\x54\x4d\x5f\x72\x65\x67\x69\x73\x74\x65\x72\x54\x4d\x43\x6c\x6f\x6e\x65\x54\x61\x62\x6c\x65\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x01\x00\x03\x00\x01\x00\x03\x00\x01\x00\x01\x00\x02\x00\x28\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x97\x91\x96\x06\x00\x00\x03\x00\x32\x00\x00\x00\x10\x00\x00\x00\xb4\x91\x96\x06\x00\x00\x02\x00\x3d\x00\x00\x00\x00\x00\x00\x00\xc8\xfd\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x60\x07\x00\x00\x00\x00\x00\x00\xd0\xfd\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x0c\x07\x00\x00\x00\x00\x00\x00\xd8\xff\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x00\x06\x00\x00\x00\x00\x00\x00\x28\x00\x02\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x28\x00\x02\x00\x00\x00\x00\x00\xc0\xff\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xc8\xff\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xd0\xff\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe0\xff\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00\x02\x04\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x08\x00\x02\x00\x00\x00\x00\x00\x02\x04\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x02\x00\x00\x00\x00\x00\x02\x04\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x18\x00\x02\x00\x00\x00\x00\x00\x02\x04\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1f\x20\x03\xd5\xfd\x7b\xbf\xa9\xfd\x03\x00\x91\x3a\x00\x00\x94\xfd\x7b\xc1\xa8\xc0\x03\x5f\xd6\x00\x00\x00\x00\x00\x00\x00\x00\xf0\x7b\xbf\xa9\xf0\x00\x00\xf0\x11\xfe\x47\xf9\x10\xe2\x3f\x91\x20\x02\x1f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x10\x01\x00\x90\x11\x02\x40\xf9\x10\x02\x00\x91\x20\x02\x1f\xd6\x10\x01\x00\x90\x11\x06\x40\xf9\x10\x22\x00\x91\x20\x02\x1f\xd6\x10\x01\x00\x90\x11\x0a\x40\xf9\x10\x42\x00\x91\x20\x02\x1f\xd6\x10\x01\x00\x90\x11\x0e\x40\xf9\x10\x62\x00\x91\x20\x02\x1f\xd6\xfd\x7b\xbf\xa9\x02\x01\x00\x90\xfd\x03\x00\x91\x40\x34\x40\xb9\x5e\x00\x00\x94\xe1\x03\x00\x2a\xfd\x7b\xc1\xa8\x00\x00\x80\x52\x41\x34\x00\xb9\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1d\x00\x80\xd2\x1e\x00\x80\xd2\xe5\x03\x00\xaa\xe1\x03\x40\xf9\xe2\x23\x00\x91\xe6\x03\x00\x91\xe0\x00\x00\xf0\x00\xec\x47\xf9\x03\x00\x80\xd2\x04\x00\x80\xd2\xd5\xff\xff\x97\xe0\xff\xff\x97\xe0\x00\x00\xf0\x00\xe8\x47\xf9\x40\x00\x00\xb4\xd8\xff\xff\x17\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x00\x01\x00\x90\x00\xc0\x00\x91\x01\x01\x00\x90\x21\xc0\x00\x91\x3f\x00\x00\xeb\xc0\x00\x00\x54\xe1\x00\x00\xf0\x21\xe0\x47\xf9\x61\x00\x00\xb4\xf0\x03\x01\xaa\x00\x02\x1f\xd6\xc0\x03\x5f\xd6\x00\x01\x00\x90\x00\xc0\x00\x91\x01\x01\x00\x90\x21\xc0\x00\x91\x21\x00\x00\xcb\x22\xfc\x7f\xd3\x41\x0c\x81\x8b\x21\xfc\x41\x93\xc1\x00\x00\xb4\xe2\x00\x00\xf0\x42\xf0\x47\xf9\x62\x00\x00\xb4\xf0\x03\x02\xaa\x00\x02\x1f\xd6\xc0\x03\x5f\xd6\xfd\x7b\xbe\xa9\xfd\x03\x00\x91\xf3\x0b\x00\xf9\x13\x01\x00\x90\x60\xc2\x40\x39\x40\x01\x00\x37\xe0\x00\x00\xf0\x00\xe4\x47\xf9\x80\x00\x00\xb4\x00\x01\x00\x90\x00\x14\x40\xf9\xa6\xff\xff\x97\xd9\xff\xff\x97\x20\x00\x80\x52\x60\xc2\x00\x39\xf3\x0b\x40\xf9\xfd\x7b\xc2\xa8\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\xdc\xff\xff\x17\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x00\x00\x01\x0b\xc0\x03\x5f\xd6\xfd\x7b\xbf\xa9\xe1\x03\x00\x2a\xfd\x03\x00\x91\xfb\xff\xff\x97\xfd\x7b\xc1\xa8\x00\x04\x00\x11\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\xfd\x7b\xbf\xa9\xfd\x03\x00\x91\xfd\x7b\xc1\xa8\xc0\x03\x5f\xd6\x01\x00\x02\x00\x01\x1b\x03\x3b\x48\x00\x00\x00\x08\x00\x00\x00\x44\xfe\xff\xff\x08\x01\x00\x00\x84\xfe\xff\xff\x60\x00\x00\x00\xe4\xfe\xff\xff\x74\x00\x00\x00\x14\xff\xff\xff\x88\x00\x00\x00\x50\xff\xff\xff\x9c\x00\x00\x00\xa4\xff\xff\xff\xc0\x00\x00\x00\xc4\xff\xff\xff\xd4\x00\x00\x00\xcc\xff\xff\xff\xe8\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x01\x7a\x52\x00\x04\x78\x1e\x01\x1b\x0c\x1f\x00\x10\x00\x00\x00\x18\x00\x00\x00\x1c\xfe\xff\xff\x34\x00\x00\x00\x00\x41\x07\x1e\x10\x00\x00\x00\x2c\x00\x00\x00\x68\xfe\xff\xff\x30\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x40\x00\x00\x00\x84\xfe\xff\xff\x3c\x00\x00\x00\x00\x00\x00\x00\x20\x00\x00\x00\x54\x00\x00\x00\xac\xfe\xff\xff\x48\x00\x00\x00\x00\x41\x0e\x20\x9d\x04\x9e\x03\x42\x93\x02\x4e\xde\xdd\xd3\x0e\x00\x00\x00\x00\x10\x00\x00\x00\x78\x00\x00\x00\xdc\xfe\xff\xff\x04\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x8c\x00\x00\x00\xe8\xfe\xff\xff\x08\x00\x00\x00\x00\x00\x00\x00\x1c\x00\x00\x00\xa0\x00\x00\x00\xdc\xfe\xff\xff\x1c\x00\x00\x00\x00\x41\x0e\x10\x9d\x02\x9e\x01\x44\xde\xdd\x0e\x00\x00\x00\x00\x1c\x00\x00\x00\xc0\x00\x00\x00\x34\xfd\xff\xff"), -Section(".comment", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00"), -Section(".interp", 0x238, "\x2f\x6c\x69\x62\x2f\x6c\x64\x2d\x6c\x69\x6e\x75\x78\x2d\x61\x61\x72\x63\x68\x36\x34\x2e\x73\x6f\x2e\x31\x00"), -Section(".note.gnu.build-id", 0x254, "\x04\x00\x00\x00\x14\x00\x00\x00\x03\x00\x00\x00\x47\x4e\x55\x00\xd0\xe8\x34\x78\x98\x44\x7d\x6f\xb8\xb1\x72\x93\xe5\xe4\xc9\x48\x92\x8e\x85\xe1"), -Section(".note.ABI-tag", 0x278, "\x04\x00\x00\x00\x10\x00\x00\x00\x01\x00\x00\x00\x47\x4e\x55\x00\x00\x00\x00\x00\x03\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00"), -Section(".gnu.hash", 0x298, "\x01\x00\x00\x00\x01\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".dynsym", 0x2B8, "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x0b\x00\x80\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x17\x00\x20\x00\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x48\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x13\x00\x00\x00\x22\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x22\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x73\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".dynstr", 0x390, "\x00\x5f\x5f\x6c\x69\x62\x63\x5f\x73\x74\x61\x72\x74\x5f\x6d\x61\x69\x6e\x00\x5f\x5f\x63\x78\x61\x5f\x66\x69\x6e\x61\x6c\x69\x7a\x65\x00\x61\x62\x6f\x72\x74\x00\x6c\x69\x62\x63\x2e\x73\x6f\x2e\x36\x00\x47\x4c\x49\x42\x43\x5f\x32\x2e\x31\x37\x00\x47\x4c\x49\x42\x43\x5f\x32\x2e\x33\x34\x00\x5f\x49\x54\x4d\x5f\x64\x65\x72\x65\x67\x69\x73\x74\x65\x72\x54\x4d\x43\x6c\x6f\x6e\x65\x54\x61\x62\x6c\x65\x00\x5f\x5f\x67\x6d\x6f\x6e\x5f\x73\x74\x61\x72\x74\x5f\x5f\x00\x5f\x49\x54\x4d\x5f\x72\x65\x67\x69\x73\x74\x65\x72\x54\x4d\x43\x6c\x6f\x6e\x65\x54\x61\x62\x6c\x65\x00"), -Section(".gnu.version", 0x41E, "\x00\x00\x00\x00\x00\x00\x02\x00\x01\x00\x03\x00\x01\x00\x03\x00\x01\x00"), -Section(".gnu.version_r", 0x430, "\x01\x00\x02\x00\x28\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x97\x91\x96\x06\x00\x00\x03\x00\x32\x00\x00\x00\x10\x00\x00\x00\xb4\x91\x96\x06\x00\x00\x02\x00\x3d\x00\x00\x00\x00\x00\x00\x00"), -Section(".rela.dyn", 0x460, "\xc8\xfd\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x60\x07\x00\x00\x00\x00\x00\x00\xd0\xfd\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x0c\x07\x00\x00\x00\x00\x00\x00\xd8\xff\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x00\x06\x00\x00\x00\x00\x00\x00\x28\x00\x02\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x28\x00\x02\x00\x00\x00\x00\x00\xc0\xff\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xc8\xff\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xd0\xff\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe0\xff\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".rela.plt", 0x520, "\x00\x00\x02\x00\x00\x00\x00\x00\x02\x04\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x08\x00\x02\x00\x00\x00\x00\x00\x02\x04\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x02\x00\x00\x00\x00\x00\x02\x04\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x18\x00\x02\x00\x00\x00\x00\x00\x02\x04\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".init", 0x580, "\x1f\x20\x03\xd5\xfd\x7b\xbf\xa9\xfd\x03\x00\x91\x3a\x00\x00\x94\xfd\x7b\xc1\xa8\xc0\x03\x5f\xd6"), -Section(".plt", 0x5A0, "\xf0\x7b\xbf\xa9\xf0\x00\x00\xf0\x11\xfe\x47\xf9\x10\xe2\x3f\x91\x20\x02\x1f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x10\x01\x00\x90\x11\x02\x40\xf9\x10\x02\x00\x91\x20\x02\x1f\xd6\x10\x01\x00\x90\x11\x06\x40\xf9\x10\x22\x00\x91\x20\x02\x1f\xd6\x10\x01\x00\x90\x11\x0a\x40\xf9\x10\x42\x00\x91\x20\x02\x1f\xd6\x10\x01\x00\x90\x11\x0e\x40\xf9\x10\x62\x00\x91\x20\x02\x1f\xd6"), -Section(".fini", 0x7A4, "\x1f\x20\x03\xd5\xfd\x7b\xbf\xa9\xfd\x03\x00\x91\xfd\x7b\xc1\xa8\xc0\x03\x5f\xd6"), -Section(".rodata", 0x7B8, "\x01\x00\x02\x00"), -Section(".eh_frame_hdr", 0x7BC, "\x01\x1b\x03\x3b\x48\x00\x00\x00\x08\x00\x00\x00\x44\xfe\xff\xff\x08\x01\x00\x00\x84\xfe\xff\xff\x60\x00\x00\x00\xe4\xfe\xff\xff\x74\x00\x00\x00\x14\xff\xff\xff\x88\x00\x00\x00\x50\xff\xff\xff\x9c\x00\x00\x00\xa4\xff\xff\xff\xc0\x00\x00\x00\xc4\xff\xff\xff\xd4\x00\x00\x00\xcc\xff\xff\xff\xe8\x00\x00\x00"), -Section(".eh_frame", 0x808, "\x10\x00\x00\x00\x00\x00\x00\x00\x01\x7a\x52\x00\x04\x78\x1e\x01\x1b\x0c\x1f\x00\x10\x00\x00\x00\x18\x00\x00\x00\x1c\xfe\xff\xff\x34\x00\x00\x00\x00\x41\x07\x1e\x10\x00\x00\x00\x2c\x00\x00\x00\x68\xfe\xff\xff\x30\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x40\x00\x00\x00\x84\xfe\xff\xff\x3c\x00\x00\x00\x00\x00\x00\x00\x20\x00\x00\x00\x54\x00\x00\x00\xac\xfe\xff\xff\x48\x00\x00\x00\x00\x41\x0e\x20\x9d\x04\x9e\x03\x42\x93\x02\x4e\xde\xdd\xd3\x0e\x00\x00\x00\x00\x10\x00\x00\x00\x78\x00\x00\x00\xdc\xfe\xff\xff\x04\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x8c\x00\x00\x00\xe8\xfe\xff\xff\x08\x00\x00\x00\x00\x00\x00\x00\x1c\x00\x00\x00\xa0\x00\x00\x00\xdc\xfe\xff\xff\x1c\x00\x00\x00\x00\x41\x0e\x10\x9d\x02\x9e\x01\x44\xde\xdd\x0e\x00\x00\x00\x00\x1c\x00\x00\x00\xc0\x00\x00\x00\x34\xfd\xff\xff\x28\x00\x00\x00\x00\x41\x0e\x10\x9d\x02\x9e\x01\x46\xde\xdd\x0e\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".fini_array", 0x1FDD0, "\x0c\x07\x00\x00\x00\x00\x00\x00"), -Section(".dynamic", 0x1FDD8, "\x01\x00\x00\x00\x00\x00\x00\x00\x28\x00\x00\x00\x00\x00\x00\x00\x0c\x00\x00\x00\x00\x00\x00\x00\x80\x05\x00\x00\x00\x00\x00\x00\x0d\x00\x00\x00\x00\x00\x00\x00\xa4\x07\x00\x00\x00\x00\x00\x00\x19\x00\x00\x00\x00\x00\x00\x00\xc8\xfd\x01\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x1a\x00\x00\x00\x00\x00\x00\x00\xd0\xfd\x01\x00\x00\x00\x00\x00\x1c\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\xf5\xfe\xff\x6f\x00\x00\x00\x00\x98\x02\x00\x00\x00\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x90\x03\x00\x00\x00\x00\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\xb8\x02\x00\x00\x00\x00\x00\x00\x0a\x00\x00\x00\x00\x00\x00\x00\x8d\x00\x00\x00\x00\x00\x00\x00\x0b\x00\x00\x00\x00\x00\x00\x00\x18\x00\x00\x00\x00\x00\x00\x00\x15\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\xe8\xff\x01\x00\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x60\x00\x00\x00\x00\x00\x00\x00\x14\x00\x00\x00\x00\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x17\x00\x00\x00\x00\x00\x00\x00\x20\x05\x00\x00\x00\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x60\x04\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\xc0\x00\x00\x00\x00\x00\x00\x00\x09\x00\x00\x00\x00\x00\x00\x00\x18\x00\x00\x00\x00\x00\x00\x00\xfb\xff\xff\x6f\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\xfe\xff\xff\x6f\x00\x00\x00\x00\x30\x04\x00\x00\x00\x00\x00\x00\xff\xff\xff\x6f\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\xf0\xff\xff\x6f\x00\x00\x00\x00\x1e\x04\x00\x00\x00\x00\x00\x00\xf9\xff\xff\x6f\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".got", 0x1FFB8, "\xd8\xfd\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".got.plt", 0x1FFE8, "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xa0\x05\x00\x00\x00\x00\x00\x00\xa0\x05\x00\x00\x00\x00\x00\x00\xa0\x05\x00\x00\x00\x00\x00\x00\xa0\x05\x00\x00\x00\x00\x00\x00"), -Section(".data", 0x20020, "\x00\x00\x00\x00\x00\x00\x00\x00\x28\x00\x02\x00\x00\x00\x00\x00"), -Section(".init_array", 0x1FDC8, "\x60\x07\x00\x00\x00\x00\x00\x00"), -Section(".text", 0x600, "\xfd\x7b\xbf\xa9\x02\x01\x00\x90\xfd\x03\x00\x91\x40\x34\x40\xb9\x5e\x00\x00\x94\xe1\x03\x00\x2a\xfd\x7b\xc1\xa8\x00\x00\x80\x52\x41\x34\x00\xb9\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1d\x00\x80\xd2\x1e\x00\x80\xd2\xe5\x03\x00\xaa\xe1\x03\x40\xf9\xe2\x23\x00\x91\xe6\x03\x00\x91\xe0\x00\x00\xf0\x00\xec\x47\xf9\x03\x00\x80\xd2\x04\x00\x80\xd2\xd5\xff\xff\x97\xe0\xff\xff\x97\xe0\x00\x00\xf0\x00\xe8\x47\xf9\x40\x00\x00\xb4\xd8\xff\xff\x17\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x00\x01\x00\x90\x00\xc0\x00\x91\x01\x01\x00\x90\x21\xc0\x00\x91\x3f\x00\x00\xeb\xc0\x00\x00\x54\xe1\x00\x00\xf0\x21\xe0\x47\xf9\x61\x00\x00\xb4\xf0\x03\x01\xaa\x00\x02\x1f\xd6\xc0\x03\x5f\xd6\x00\x01\x00\x90\x00\xc0\x00\x91\x01\x01\x00\x90\x21\xc0\x00\x91\x21\x00\x00\xcb\x22\xfc\x7f\xd3\x41\x0c\x81\x8b\x21\xfc\x41\x93\xc1\x00\x00\xb4\xe2\x00\x00\xf0\x42\xf0\x47\xf9\x62\x00\x00\xb4\xf0\x03\x02\xaa\x00\x02\x1f\xd6\xc0\x03\x5f\xd6\xfd\x7b\xbe\xa9\xfd\x03\x00\x91\xf3\x0b\x00\xf9\x13\x01\x00\x90\x60\xc2\x40\x39\x40\x01\x00\x37\xe0\x00\x00\xf0\x00\xe4\x47\xf9\x80\x00\x00\xb4\x00\x01\x00\x90\x00\x14\x40\xf9\xa6\xff\xff\x97\xd9\xff\xff\x97\x20\x00\x80\x52\x60\xc2\x00\x39\xf3\x0b\x40\xf9\xfd\x7b\xc2\xa8\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\xdc\xff\xff\x17\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x00\x00\x01\x0b\xc0\x03\x5f\xd6\xfd\x7b\xbf\xa9\xe1\x03\x00\x2a\xfd\x03\x00\x91\xfb\xff\xff\x97\xfd\x7b\xc1\xa8\x00\x04\x00\x11\xc0\x03\x5f\xd6")]), -Memmap([Annotation(Region(0x0,0x8E7), Attr("segment","02 0 2280")), -Annotation(Region(0x600,0x627), Attr("symbol","\"main\"")), -Annotation(Region(0x0,0x102), Attr("section","\".shstrtab\"")), -Annotation(Region(0x0,0x23E), Attr("section","\".strtab\"")), -Annotation(Region(0x0,0x8CF), Attr("section","\".symtab\"")), -Annotation(Region(0x0,0x11), Attr("section","\".comment\"")), -Annotation(Region(0x238,0x252), Attr("section","\".interp\"")), -Annotation(Region(0x254,0x277), Attr("section","\".note.gnu.build-id\"")), -Annotation(Region(0x278,0x297), Attr("section","\".note.ABI-tag\"")), -Annotation(Region(0x298,0x2B3), Attr("section","\".gnu.hash\"")), -Annotation(Region(0x2B8,0x38F), Attr("section","\".dynsym\"")), -Annotation(Region(0x390,0x41C), Attr("section","\".dynstr\"")), -Annotation(Region(0x41E,0x42F), Attr("section","\".gnu.version\"")), -Annotation(Region(0x430,0x45F), Attr("section","\".gnu.version_r\"")), -Annotation(Region(0x460,0x51F), Attr("section","\".rela.dyn\"")), -Annotation(Region(0x520,0x57F), Attr("section","\".rela.plt\"")), -Annotation(Region(0x580,0x597), Attr("section","\".init\"")), -Annotation(Region(0x5A0,0x5FF), Attr("section","\".plt\"")), -Annotation(Region(0x580,0x597), Attr("code-region","()")), -Annotation(Region(0x5A0,0x5FF), Attr("code-region","()")), -Annotation(Region(0x600,0x627), Attr("symbol-info","main 0x600 40")), -Annotation(Region(0x640,0x673), Attr("symbol","\"_start\"")), -Annotation(Region(0x640,0x673), Attr("symbol-info","_start 0x640 52")), -Annotation(Region(0x674,0x687), Attr("symbol","\"call_weak_fn\"")), -Annotation(Region(0x674,0x687), Attr("symbol-info","call_weak_fn 0x674 20")), -Annotation(Region(0x780,0x787), Attr("symbol","\"g\"")), -Annotation(Region(0x600,0x7A3), Attr("code-region","()")), -Annotation(Region(0x780,0x787), Attr("symbol-info","g 0x780 8")), -Annotation(Region(0x788,0x7A3), Attr("symbol","\"f\"")), -Annotation(Region(0x788,0x7A3), Attr("symbol-info","f 0x788 28")), -Annotation(Region(0x7A4,0x7B7), Attr("section","\".fini\"")), -Annotation(Region(0x7B8,0x7BB), Attr("section","\".rodata\"")), -Annotation(Region(0x7BC,0x807), Attr("section","\".eh_frame_hdr\"")), -Annotation(Region(0x808,0x8E7), Attr("section","\".eh_frame\"")), -Annotation(Region(0x1FDC8,0x2002F), Attr("segment","03 0x1FDC8 624")), -Annotation(Region(0x1FDD0,0x1FDD7), Attr("section","\".fini_array\"")), -Annotation(Region(0x1FDD8,0x1FFB7), Attr("section","\".dynamic\"")), -Annotation(Region(0x1FFB8,0x1FFE7), Attr("section","\".got\"")), -Annotation(Region(0x1FFE8,0x2001F), Attr("section","\".got.plt\"")), -Annotation(Region(0x20020,0x2002F), Attr("section","\".data\"")), -Annotation(Region(0x1FDC8,0x1FDCF), Attr("section","\".init_array\"")), -Annotation(Region(0x600,0x7A3), Attr("section","\".text\"")), -Annotation(Region(0x7A4,0x7B7), Attr("code-region","()"))]), -Program(Tid(1_750, "%000006d6"), Attrs([]), - Subs([Sub(Tid(1_726, "@__cxa_finalize"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x5D0"), -Attr("stub","()")]), "__cxa_finalize", Args([Arg(Tid(1_751, "%000006d7"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("__cxa_finalize_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(1_082, "@__cxa_finalize"), - Attrs([Attr("address","0x5D0")]), Phis([]), -Defs([Def(Tid(1_330, "%00000532"), Attrs([Attr("address","0x5D0"), -Attr("insn","adrp x16, #131072")]), Var("R16",Imm(64)), Int(131072,64)), -Def(Tid(1_337, "%00000539"), Attrs([Attr("address","0x5D4"), -Attr("insn","ldr x17, [x16, #0x8]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(1_343, "%0000053f"), Attrs([Attr("address","0x5D8"), -Attr("insn","add x16, x16, #0x8")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(8,64)))]), Jmps([Call(Tid(1_348, "%00000544"), - Attrs([Attr("address","0x5DC"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), -Sub(Tid(1_727, "@__do_global_dtors_aux"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x70C")]), - "__do_global_dtors_aux", Args([Arg(Tid(1_752, "%000006d8"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("__do_global_dtors_aux_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(920, "@__do_global_dtors_aux"), - Attrs([Attr("address","0x70C")]), Phis([]), Defs([Def(Tid(924, "%0000039c"), - Attrs([Attr("address","0x70C"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("#5",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(18446744073709551584,64))), -Def(Tid(930, "%000003a2"), Attrs([Attr("address","0x70C"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("#5",Imm(64)),Var("R29",Imm(64)),LittleEndian(),64)), -Def(Tid(936, "%000003a8"), Attrs([Attr("address","0x70C"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("#5",Imm(64)),Int(8,64)),Var("R30",Imm(64)),LittleEndian(),64)), -Def(Tid(940, "%000003ac"), Attrs([Attr("address","0x70C"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("R31",Imm(64)), -Var("#5",Imm(64))), Def(Tid(946, "%000003b2"), - Attrs([Attr("address","0x710"), Attr("insn","mov x29, sp")]), - Var("R29",Imm(64)), Var("R31",Imm(64))), Def(Tid(954, "%000003ba"), - Attrs([Attr("address","0x714"), Attr("insn","str x19, [sp, #0x10]")]), - Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(16,64)),Var("R19",Imm(64)),LittleEndian(),64)), -Def(Tid(959, "%000003bf"), Attrs([Attr("address","0x718"), -Attr("insn","adrp x19, #131072")]), Var("R19",Imm(64)), Int(131072,64)), -Def(Tid(966, "%000003c6"), Attrs([Attr("address","0x71C"), -Attr("insn","ldrb w0, [x19, #0x30]")]), Var("R0",Imm(64)), -UNSIGNED(64,Load(Var("mem",Mem(64,8)),PLUS(Var("R19",Imm(64)),Int(48,64)),LittleEndian(),8)))]), -Jmps([Goto(Tid(972, "%000003cc"), Attrs([Attr("address","0x720"), -Attr("insn","tbnz w0, #0x0, #0x28")]), - EQ(Extract(0,0,Var("R0",Imm(64))),Int(1,1)), Direct(Tid(970, "%000003ca"))), -Goto(Tid(1_728, "%000006c0"), Attrs([]), Int(1,1), -Direct(Tid(1_027, "%00000403")))])), Blk(Tid(1_027, "%00000403"), - Attrs([Attr("address","0x724")]), Phis([]), -Defs([Def(Tid(1_030, "%00000406"), Attrs([Attr("address","0x724"), -Attr("insn","adrp x0, #126976")]), Var("R0",Imm(64)), Int(126976,64)), -Def(Tid(1_037, "%0000040d"), Attrs([Attr("address","0x728"), -Attr("insn","ldr x0, [x0, #0xfc8]")]), Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(4040,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(1_043, "%00000413"), Attrs([Attr("address","0x72C"), -Attr("insn","cbz x0, #0x10")]), EQ(Var("R0",Imm(64)),Int(0,64)), -Direct(Tid(1_041, "%00000411"))), Goto(Tid(1_729, "%000006c1"), Attrs([]), - Int(1,1), Direct(Tid(1_066, "%0000042a")))])), Blk(Tid(1_066, "%0000042a"), - Attrs([Attr("address","0x730")]), Phis([]), -Defs([Def(Tid(1_069, "%0000042d"), Attrs([Attr("address","0x730"), -Attr("insn","adrp x0, #131072")]), Var("R0",Imm(64)), Int(131072,64)), -Def(Tid(1_076, "%00000434"), Attrs([Attr("address","0x734"), -Attr("insn","ldr x0, [x0, #0x28]")]), Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(40,64)),LittleEndian(),64)), -Def(Tid(1_081, "%00000439"), Attrs([Attr("address","0x738"), -Attr("insn","bl #-0x168")]), Var("R30",Imm(64)), Int(1852,64))]), -Jmps([Call(Tid(1_084, "%0000043c"), Attrs([Attr("address","0x738"), -Attr("insn","bl #-0x168")]), Int(1,1), -(Direct(Tid(1_726, "@__cxa_finalize")),Direct(Tid(1_041, "%00000411"))))])), -Blk(Tid(1_041, "%00000411"), Attrs([Attr("address","0x73C")]), Phis([]), -Defs([Def(Tid(1_049, "%00000419"), Attrs([Attr("address","0x73C"), -Attr("insn","bl #-0x9c")]), Var("R30",Imm(64)), Int(1856,64))]), -Jmps([Call(Tid(1_051, "%0000041b"), Attrs([Attr("address","0x73C"), -Attr("insn","bl #-0x9c")]), Int(1,1), -(Direct(Tid(1_740, "@deregister_tm_clones")),Direct(Tid(1_053, "%0000041d"))))])), -Blk(Tid(1_053, "%0000041d"), Attrs([Attr("address","0x740")]), Phis([]), -Defs([Def(Tid(1_056, "%00000420"), Attrs([Attr("address","0x740"), -Attr("insn","mov w0, #0x1")]), Var("R0",Imm(64)), Int(1,64)), -Def(Tid(1_064, "%00000428"), Attrs([Attr("address","0x744"), -Attr("insn","strb w0, [x19, #0x30]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R19",Imm(64)),Int(48,64)),Extract(7,0,Var("R0",Imm(64))),LittleEndian(),8))]), -Jmps([Goto(Tid(1_730, "%000006c2"), Attrs([]), Int(1,1), -Direct(Tid(970, "%000003ca")))])), Blk(Tid(970, "%000003ca"), - Attrs([Attr("address","0x748")]), Phis([]), Defs([Def(Tid(980, "%000003d4"), - Attrs([Attr("address","0x748"), Attr("insn","ldr x19, [sp, #0x10]")]), - Var("R19",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(16,64)),LittleEndian(),64)), -Def(Tid(987, "%000003db"), Attrs([Attr("address","0x74C"), -Attr("insn","ldp x29, x30, [sp], #0x20")]), Var("R29",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(992, "%000003e0"), Attrs([Attr("address","0x74C"), -Attr("insn","ldp x29, x30, [sp], #0x20")]), Var("R30",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(996, "%000003e4"), Attrs([Attr("address","0x74C"), -Attr("insn","ldp x29, x30, [sp], #0x20")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(32,64)))]), Jmps([Call(Tid(1_001, "%000003e9"), - Attrs([Attr("address","0x750"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), Sub(Tid(1_731, "@__libc_start_main"), - Attrs([Attr("c.proto","signed (*)(signed (*)(signed , char** , char** );* main, signed , char** , \nvoid* auxv)"), -Attr("address","0x5C0"), Attr("stub","()")]), "__libc_start_main", - Args([Arg(Tid(1_753, "%000006d9"), - Attrs([Attr("c.layout","**[ : 64]"), -Attr("c.data","Top:u64 ptr ptr"), -Attr("c.type","signed (*)(signed , char** , char** );*")]), - Var("__libc_start_main_main",Imm(64)), Var("R0",Imm(64)), In()), -Arg(Tid(1_754, "%000006da"), Attrs([Attr("c.layout","[signed : 32]"), -Attr("c.data","Top:u32"), Attr("c.type","signed")]), - Var("__libc_start_main_arg2",Imm(32)), LOW(32,Var("R1",Imm(64))), In()), -Arg(Tid(1_755, "%000006db"), Attrs([Attr("c.layout","**[char : 8]"), -Attr("c.data","Top:u8 ptr ptr"), Attr("c.type","char**")]), - Var("__libc_start_main_arg3",Imm(64)), Var("R2",Imm(64)), Both()), -Arg(Tid(1_756, "%000006dc"), Attrs([Attr("c.layout","*[ : 8]"), -Attr("c.data","{} ptr"), Attr("c.type","void*")]), - Var("__libc_start_main_auxv",Imm(64)), Var("R3",Imm(64)), Both()), -Arg(Tid(1_757, "%000006dd"), Attrs([Attr("c.layout","[signed : 32]"), -Attr("c.data","Top:u32"), Attr("c.type","signed")]), - Var("__libc_start_main_result",Imm(32)), LOW(32,Var("R0",Imm(64))), -Out())]), Blks([Blk(Tid(747, "@__libc_start_main"), - Attrs([Attr("address","0x5C0")]), Phis([]), -Defs([Def(Tid(1_308, "%0000051c"), Attrs([Attr("address","0x5C0"), -Attr("insn","adrp x16, #131072")]), Var("R16",Imm(64)), Int(131072,64)), -Def(Tid(1_315, "%00000523"), Attrs([Attr("address","0x5C4"), -Attr("insn","ldr x17, [x16]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R16",Imm(64)),LittleEndian(),64)), -Def(Tid(1_321, "%00000529"), Attrs([Attr("address","0x5C8"), -Attr("insn","add x16, x16, #0x0")]), Var("R16",Imm(64)), -Var("R16",Imm(64)))]), Jmps([Call(Tid(1_326, "%0000052e"), - Attrs([Attr("address","0x5CC"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), Sub(Tid(1_732, "@_fini"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x7A4")]), - "_fini", Args([Arg(Tid(1_758, "%000006de"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("_fini_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(32, "@_fini"), - Attrs([Attr("address","0x7A4")]), Phis([]), Defs([Def(Tid(38, "%00000026"), - Attrs([Attr("address","0x7A8"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("#0",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(18446744073709551600,64))), -Def(Tid(44, "%0000002c"), Attrs([Attr("address","0x7A8"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("#0",Imm(64)),Var("R29",Imm(64)),LittleEndian(),64)), -Def(Tid(50, "%00000032"), Attrs([Attr("address","0x7A8"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("#0",Imm(64)),Int(8,64)),Var("R30",Imm(64)),LittleEndian(),64)), -Def(Tid(54, "%00000036"), Attrs([Attr("address","0x7A8"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("R31",Imm(64)), -Var("#0",Imm(64))), Def(Tid(60, "%0000003c"), Attrs([Attr("address","0x7AC"), -Attr("insn","mov x29, sp")]), Var("R29",Imm(64)), Var("R31",Imm(64))), -Def(Tid(67, "%00000043"), Attrs([Attr("address","0x7B0"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R29",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(72, "%00000048"), Attrs([Attr("address","0x7B0"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R30",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(76, "%0000004c"), Attrs([Attr("address","0x7B0"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(16,64)))]), Jmps([Call(Tid(81, "%00000051"), - Attrs([Attr("address","0x7B4"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), Sub(Tid(1_733, "@_init"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x580")]), - "_init", Args([Arg(Tid(1_759, "%000006df"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("_init_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(1_532, "@_init"), - Attrs([Attr("address","0x580")]), Phis([]), -Defs([Def(Tid(1_538, "%00000602"), Attrs([Attr("address","0x584"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("#7",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(18446744073709551600,64))), -Def(Tid(1_544, "%00000608"), Attrs([Attr("address","0x584"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("#7",Imm(64)),Var("R29",Imm(64)),LittleEndian(),64)), -Def(Tid(1_550, "%0000060e"), Attrs([Attr("address","0x584"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("#7",Imm(64)),Int(8,64)),Var("R30",Imm(64)),LittleEndian(),64)), -Def(Tid(1_554, "%00000612"), Attrs([Attr("address","0x584"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("R31",Imm(64)), -Var("#7",Imm(64))), Def(Tid(1_560, "%00000618"), - Attrs([Attr("address","0x588"), Attr("insn","mov x29, sp")]), - Var("R29",Imm(64)), Var("R31",Imm(64))), Def(Tid(1_565, "%0000061d"), - Attrs([Attr("address","0x58C"), Attr("insn","bl #0xe8")]), - Var("R30",Imm(64)), Int(1424,64))]), Jmps([Call(Tid(1_567, "%0000061f"), - Attrs([Attr("address","0x58C"), Attr("insn","bl #0xe8")]), Int(1,1), -(Direct(Tid(1_738, "@call_weak_fn")),Direct(Tid(1_569, "%00000621"))))])), -Blk(Tid(1_569, "%00000621"), Attrs([Attr("address","0x590")]), Phis([]), -Defs([Def(Tid(1_574, "%00000626"), Attrs([Attr("address","0x590"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R29",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(1_579, "%0000062b"), Attrs([Attr("address","0x590"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R30",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(1_583, "%0000062f"), Attrs([Attr("address","0x590"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(16,64)))]), Jmps([Call(Tid(1_588, "%00000634"), - Attrs([Attr("address","0x594"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), Sub(Tid(1_734, "@_start"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x640"), -Attr("entry-point","()")]), "_start", Args([Arg(Tid(1_760, "%000006e0"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("_start_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(684, "@_start"), - Attrs([Attr("address","0x640")]), Phis([]), Defs([Def(Tid(689, "%000002b1"), - Attrs([Attr("address","0x644"), Attr("insn","mov x29, #0x0")]), - Var("R29",Imm(64)), Int(0,64)), Def(Tid(694, "%000002b6"), - Attrs([Attr("address","0x648"), Attr("insn","mov x30, #0x0")]), - Var("R30",Imm(64)), Int(0,64)), Def(Tid(700, "%000002bc"), - Attrs([Attr("address","0x64C"), Attr("insn","mov x5, x0")]), - Var("R5",Imm(64)), Var("R0",Imm(64))), Def(Tid(707, "%000002c3"), - Attrs([Attr("address","0x650"), Attr("insn","ldr x1, [sp]")]), - Var("R1",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(713, "%000002c9"), Attrs([Attr("address","0x654"), -Attr("insn","add x2, sp, #0x8")]), Var("R2",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(8,64))), Def(Tid(719, "%000002cf"), - Attrs([Attr("address","0x658"), Attr("insn","mov x6, sp")]), - Var("R6",Imm(64)), Var("R31",Imm(64))), Def(Tid(724, "%000002d4"), - Attrs([Attr("address","0x65C"), Attr("insn","adrp x0, #126976")]), - Var("R0",Imm(64)), Int(126976,64)), Def(Tid(731, "%000002db"), - Attrs([Attr("address","0x660"), Attr("insn","ldr x0, [x0, #0xfd8]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(4056,64)),LittleEndian(),64)), -Def(Tid(736, "%000002e0"), Attrs([Attr("address","0x664"), -Attr("insn","mov x3, #0x0")]), Var("R3",Imm(64)), Int(0,64)), -Def(Tid(741, "%000002e5"), Attrs([Attr("address","0x668"), -Attr("insn","mov x4, #0x0")]), Var("R4",Imm(64)), Int(0,64)), -Def(Tid(746, "%000002ea"), Attrs([Attr("address","0x66C"), -Attr("insn","bl #-0xac")]), Var("R30",Imm(64)), Int(1648,64))]), -Jmps([Call(Tid(749, "%000002ed"), Attrs([Attr("address","0x66C"), -Attr("insn","bl #-0xac")]), Int(1,1), -(Direct(Tid(1_731, "@__libc_start_main")),Direct(Tid(751, "%000002ef"))))])), -Blk(Tid(751, "%000002ef"), Attrs([Attr("address","0x670")]), Phis([]), -Defs([Def(Tid(754, "%000002f2"), Attrs([Attr("address","0x670"), -Attr("insn","bl #-0x80")]), Var("R30",Imm(64)), Int(1652,64))]), -Jmps([Call(Tid(757, "%000002f5"), Attrs([Attr("address","0x670"), -Attr("insn","bl #-0x80")]), Int(1,1), -(Direct(Tid(1_737, "@abort")),Direct(Tid(1_735, "%000006c7"))))])), -Blk(Tid(1_735, "%000006c7"), Attrs([]), Phis([]), Defs([]), -Jmps([Call(Tid(1_736, "%000006c8"), Attrs([]), Int(1,1), -(Direct(Tid(1_738, "@call_weak_fn")),))]))])), Sub(Tid(1_737, "@abort"), - Attrs([Attr("noreturn","()"), Attr("c.proto","void (*)(void)"), -Attr("address","0x5F0"), Attr("stub","()")]), "abort", Args([]), -Blks([Blk(Tid(755, "@abort"), Attrs([Attr("address","0x5F0")]), Phis([]), -Defs([Def(Tid(1_374, "%0000055e"), Attrs([Attr("address","0x5F0"), -Attr("insn","adrp x16, #131072")]), Var("R16",Imm(64)), Int(131072,64)), -Def(Tid(1_381, "%00000565"), Attrs([Attr("address","0x5F4"), -Attr("insn","ldr x17, [x16, #0x18]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(24,64)),LittleEndian(),64)), -Def(Tid(1_387, "%0000056b"), Attrs([Attr("address","0x5F8"), -Attr("insn","add x16, x16, #0x18")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(24,64)))]), Jmps([Call(Tid(1_392, "%00000570"), - Attrs([Attr("address","0x5FC"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), Sub(Tid(1_738, "@call_weak_fn"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x674")]), - "call_weak_fn", Args([Arg(Tid(1_761, "%000006e1"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("call_weak_fn_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(759, "@call_weak_fn"), - Attrs([Attr("address","0x674")]), Phis([]), Defs([Def(Tid(762, "%000002fa"), - Attrs([Attr("address","0x674"), Attr("insn","adrp x0, #126976")]), - Var("R0",Imm(64)), Int(126976,64)), Def(Tid(769, "%00000301"), - Attrs([Attr("address","0x678"), Attr("insn","ldr x0, [x0, #0xfd0]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(4048,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(775, "%00000307"), Attrs([Attr("address","0x67C"), -Attr("insn","cbz x0, #0x8")]), EQ(Var("R0",Imm(64)),Int(0,64)), -Direct(Tid(773, "%00000305"))), Goto(Tid(1_739, "%000006cb"), Attrs([]), - Int(1,1), Direct(Tid(1_146, "%0000047a")))])), Blk(Tid(773, "%00000305"), - Attrs([Attr("address","0x684")]), Phis([]), Defs([]), -Jmps([Call(Tid(781, "%0000030d"), Attrs([Attr("address","0x684"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))])), -Blk(Tid(1_146, "%0000047a"), Attrs([Attr("address","0x680")]), Phis([]), -Defs([]), Jmps([Goto(Tid(1_149, "%0000047d"), Attrs([Attr("address","0x680"), -Attr("insn","b #-0xa0")]), Int(1,1), -Direct(Tid(1_147, "@__gmon_start__")))])), Blk(Tid(1_147, "@__gmon_start__"), - Attrs([Attr("address","0x5E0")]), Phis([]), -Defs([Def(Tid(1_352, "%00000548"), Attrs([Attr("address","0x5E0"), -Attr("insn","adrp x16, #131072")]), Var("R16",Imm(64)), Int(131072,64)), -Def(Tid(1_359, "%0000054f"), Attrs([Attr("address","0x5E4"), -Attr("insn","ldr x17, [x16, #0x10]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(16,64)),LittleEndian(),64)), -Def(Tid(1_365, "%00000555"), Attrs([Attr("address","0x5E8"), -Attr("insn","add x16, x16, #0x10")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(16,64)))]), Jmps([Call(Tid(1_370, "%0000055a"), - Attrs([Attr("address","0x5EC"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), -Sub(Tid(1_740, "@deregister_tm_clones"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x6A0")]), - "deregister_tm_clones", Args([Arg(Tid(1_762, "%000006e2"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("deregister_tm_clones_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(795, "@deregister_tm_clones"), - Attrs([Attr("address","0x6A0")]), Phis([]), Defs([Def(Tid(798, "%0000031e"), - Attrs([Attr("address","0x6A0"), Attr("insn","adrp x0, #131072")]), - Var("R0",Imm(64)), Int(131072,64)), Def(Tid(804, "%00000324"), - Attrs([Attr("address","0x6A4"), Attr("insn","add x0, x0, #0x30")]), - Var("R0",Imm(64)), PLUS(Var("R0",Imm(64)),Int(48,64))), -Def(Tid(809, "%00000329"), Attrs([Attr("address","0x6A8"), -Attr("insn","adrp x1, #131072")]), Var("R1",Imm(64)), Int(131072,64)), -Def(Tid(815, "%0000032f"), Attrs([Attr("address","0x6AC"), -Attr("insn","add x1, x1, #0x30")]), Var("R1",Imm(64)), -PLUS(Var("R1",Imm(64)),Int(48,64))), Def(Tid(821, "%00000335"), - Attrs([Attr("address","0x6B0"), Attr("insn","cmp x1, x0")]), - Var("#3",Imm(64)), NOT(Var("R0",Imm(64)))), Def(Tid(826, "%0000033a"), - Attrs([Attr("address","0x6B0"), Attr("insn","cmp x1, x0")]), - Var("#4",Imm(64)), PLUS(Var("R1",Imm(64)),NOT(Var("R0",Imm(64))))), -Def(Tid(832, "%00000340"), Attrs([Attr("address","0x6B0"), -Attr("insn","cmp x1, x0")]), Var("VF",Imm(1)), -NEQ(SIGNED(65,PLUS(Var("#4",Imm(64)),Int(1,64))),PLUS(PLUS(SIGNED(65,Var("R1",Imm(64))),SIGNED(65,Var("#3",Imm(64)))),Int(1,65)))), -Def(Tid(838, "%00000346"), Attrs([Attr("address","0x6B0"), -Attr("insn","cmp x1, x0")]), Var("CF",Imm(1)), -NEQ(UNSIGNED(65,PLUS(Var("#4",Imm(64)),Int(1,64))),PLUS(PLUS(UNSIGNED(65,Var("R1",Imm(64))),UNSIGNED(65,Var("#3",Imm(64)))),Int(1,65)))), -Def(Tid(842, "%0000034a"), Attrs([Attr("address","0x6B0"), -Attr("insn","cmp x1, x0")]), Var("ZF",Imm(1)), -EQ(PLUS(Var("#4",Imm(64)),Int(1,64)),Int(0,64))), Def(Tid(846, "%0000034e"), - Attrs([Attr("address","0x6B0"), Attr("insn","cmp x1, x0")]), - Var("NF",Imm(1)), Extract(63,63,PLUS(Var("#4",Imm(64)),Int(1,64))))]), -Jmps([Goto(Tid(852, "%00000354"), Attrs([Attr("address","0x6B4"), -Attr("insn","b.eq #0x18")]), EQ(Var("ZF",Imm(1)),Int(1,1)), -Direct(Tid(850, "%00000352"))), Goto(Tid(1_741, "%000006cd"), Attrs([]), - Int(1,1), Direct(Tid(1_116, "%0000045c")))])), Blk(Tid(1_116, "%0000045c"), - Attrs([Attr("address","0x6B8")]), Phis([]), -Defs([Def(Tid(1_119, "%0000045f"), Attrs([Attr("address","0x6B8"), -Attr("insn","adrp x1, #126976")]), Var("R1",Imm(64)), Int(126976,64)), -Def(Tid(1_126, "%00000466"), Attrs([Attr("address","0x6BC"), -Attr("insn","ldr x1, [x1, #0xfc0]")]), Var("R1",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R1",Imm(64)),Int(4032,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(1_131, "%0000046b"), Attrs([Attr("address","0x6C0"), -Attr("insn","cbz x1, #0xc")]), EQ(Var("R1",Imm(64)),Int(0,64)), -Direct(Tid(850, "%00000352"))), Goto(Tid(1_742, "%000006ce"), Attrs([]), - Int(1,1), Direct(Tid(1_135, "%0000046f")))])), Blk(Tid(850, "%00000352"), - Attrs([Attr("address","0x6CC")]), Phis([]), Defs([]), -Jmps([Call(Tid(858, "%0000035a"), Attrs([Attr("address","0x6CC"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))])), -Blk(Tid(1_135, "%0000046f"), Attrs([Attr("address","0x6C4")]), Phis([]), -Defs([Def(Tid(1_139, "%00000473"), Attrs([Attr("address","0x6C4"), -Attr("insn","mov x16, x1")]), Var("R16",Imm(64)), Var("R1",Imm(64)))]), -Jmps([Call(Tid(1_144, "%00000478"), Attrs([Attr("address","0x6C8"), -Attr("insn","br x16")]), Int(1,1), (Indirect(Var("R16",Imm(64))),))]))])), -Sub(Tid(1_743, "@f"), Attrs([Attr("c.proto","signed (*)(void)"), -Attr("address","0x788")]), "f", Args([Arg(Tid(1_763, "%000006e3"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("f_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(549, "@f"), - Attrs([Attr("address","0x788")]), Phis([]), Defs([Def(Tid(556, "%0000022c"), - Attrs([Attr("address","0x788"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("#2",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(18446744073709551600,64))), -Def(Tid(562, "%00000232"), Attrs([Attr("address","0x788"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("#2",Imm(64)),Var("R29",Imm(64)),LittleEndian(),64)), -Def(Tid(568, "%00000238"), Attrs([Attr("address","0x788"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("#2",Imm(64)),Int(8,64)),Var("R30",Imm(64)),LittleEndian(),64)), -Def(Tid(572, "%0000023c"), Attrs([Attr("address","0x788"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("R31",Imm(64)), -Var("#2",Imm(64))), Def(Tid(578, "%00000242"), - Attrs([Attr("address","0x78C"), Attr("insn","mov w1, w0")]), - Var("R1",Imm(64)), UNSIGNED(64,Extract(31,0,Var("R0",Imm(64))))), -Def(Tid(584, "%00000248"), Attrs([Attr("address","0x790"), -Attr("insn","mov x29, sp")]), Var("R29",Imm(64)), Var("R31",Imm(64))), -Def(Tid(589, "%0000024d"), Attrs([Attr("address","0x794"), -Attr("insn","bl #-0x14")]), Var("R30",Imm(64)), Int(1944,64))]), -Jmps([Call(Tid(592, "%00000250"), Attrs([Attr("address","0x794"), -Attr("insn","bl #-0x14")]), Int(1,1), -(Direct(Tid(1_745, "@g")),Direct(Tid(605, "%0000025d"))))])), -Blk(Tid(605, "%0000025d"), Attrs([Attr("address","0x798")]), Phis([]), -Defs([Def(Tid(610, "%00000262"), Attrs([Attr("address","0x798"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R29",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(615, "%00000267"), Attrs([Attr("address","0x798"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R30",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(619, "%0000026b"), Attrs([Attr("address","0x798"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(16,64))), Def(Tid(625, "%00000271"), - Attrs([Attr("address","0x79C"), Attr("insn","add w0, w0, #0x1")]), - Var("R0",Imm(64)), -UNSIGNED(64,PLUS(Extract(31,0,Var("R0",Imm(64))),Int(1,32))))]), -Jmps([Call(Tid(630, "%00000276"), Attrs([Attr("address","0x7A0"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))]))])), -Sub(Tid(1_744, "@frame_dummy"), Attrs([Attr("c.proto","signed (*)(void)"), -Attr("address","0x760")]), "frame_dummy", Args([Arg(Tid(1_764, "%000006e4"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("frame_dummy_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(1_009, "@frame_dummy"), - Attrs([Attr("address","0x760")]), Phis([]), Defs([]), -Jmps([Call(Tid(1_011, "%000003f3"), Attrs([Attr("address","0x760"), -Attr("insn","b #-0x90")]), Int(1,1), -(Direct(Tid(1_747, "@register_tm_clones")),))]))])), Sub(Tid(1_745, "@g"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x780")]), "g", - Args([Arg(Tid(1_765, "%000006e5"), Attrs([Attr("c.layout","[signed : 32]"), -Attr("c.data","Top:u32"), Attr("c.type","signed")]), Var("g_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(590, "@g"), - Attrs([Attr("address","0x780")]), Phis([]), Defs([Def(Tid(598, "%00000256"), - Attrs([Attr("address","0x780"), Attr("insn","add w0, w0, w1")]), - Var("R0",Imm(64)), -UNSIGNED(64,PLUS(Extract(31,0,Var("R0",Imm(64))),Extract(31,0,Var("R1",Imm(64))))))]), -Jmps([Call(Tid(603, "%0000025b"), Attrs([Attr("address","0x784"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))]))])), -Sub(Tid(1_746, "@main"), - Attrs([Attr("c.proto","signed (*)(signed argc, const char** argv)"), -Attr("address","0x600"), Attr("stub","()")]), "main", - Args([Arg(Tid(1_766, "%000006e6"), Attrs([Attr("c.layout","[signed : 32]"), -Attr("c.data","Top:u32"), Attr("c.type","signed")]), - Var("main_argc",Imm(32)), LOW(32,Var("R0",Imm(64))), In()), -Arg(Tid(1_767, "%000006e7"), Attrs([Attr("c.layout","**[char : 8]"), -Attr("c.data","Top:u8 ptr ptr"), Attr("c.type"," const char**")]), - Var("main_argv",Imm(64)), Var("R1",Imm(64)), Both()), -Arg(Tid(1_768, "%000006e8"), Attrs([Attr("c.layout","[signed : 32]"), -Attr("c.data","Top:u32"), Attr("c.type","signed")]), - Var("main_result",Imm(32)), LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(505, "@main"), Attrs([Attr("address","0x600")]), Phis([]), -Defs([Def(Tid(509, "%000001fd"), Attrs([Attr("address","0x600"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("#1",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(18446744073709551600,64))), -Def(Tid(515, "%00000203"), Attrs([Attr("address","0x600"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("#1",Imm(64)),Var("R29",Imm(64)),LittleEndian(),64)), -Def(Tid(521, "%00000209"), Attrs([Attr("address","0x600"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("#1",Imm(64)),Int(8,64)),Var("R30",Imm(64)),LittleEndian(),64)), -Def(Tid(525, "%0000020d"), Attrs([Attr("address","0x600"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("R31",Imm(64)), -Var("#1",Imm(64))), Def(Tid(530, "%00000212"), - Attrs([Attr("address","0x604"), Attr("insn","adrp x2, #131072")]), - Var("R2",Imm(64)), Int(131072,64)), Def(Tid(536, "%00000218"), - Attrs([Attr("address","0x608"), Attr("insn","mov x29, sp")]), - Var("R29",Imm(64)), Var("R31",Imm(64))), Def(Tid(543, "%0000021f"), - Attrs([Attr("address","0x60C"), Attr("insn","ldr w0, [x2, #0x34]")]), - Var("R0",Imm(64)), -UNSIGNED(64,Load(Var("mem",Mem(64,8)),PLUS(Var("R2",Imm(64)),Int(52,64)),LittleEndian(),32))), -Def(Tid(548, "%00000224"), Attrs([Attr("address","0x610"), -Attr("insn","bl #0x178")]), Var("R30",Imm(64)), Int(1556,64))]), -Jmps([Call(Tid(551, "%00000227"), Attrs([Attr("address","0x610"), -Attr("insn","bl #0x178")]), Int(1,1), -(Direct(Tid(1_743, "@f")),Direct(Tid(632, "%00000278"))))])), -Blk(Tid(632, "%00000278"), Attrs([Attr("address","0x614")]), Phis([]), -Defs([Def(Tid(636, "%0000027c"), Attrs([Attr("address","0x614"), -Attr("insn","mov w1, w0")]), Var("R1",Imm(64)), -UNSIGNED(64,Extract(31,0,Var("R0",Imm(64))))), Def(Tid(643, "%00000283"), - Attrs([Attr("address","0x618"), Attr("insn","ldp x29, x30, [sp], #0x10")]), - Var("R29",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(648, "%00000288"), Attrs([Attr("address","0x618"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R30",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(652, "%0000028c"), Attrs([Attr("address","0x618"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(16,64))), Def(Tid(657, "%00000291"), - Attrs([Attr("address","0x61C"), Attr("insn","mov w0, #0x0")]), - Var("R0",Imm(64)), Int(0,64)), Def(Tid(665, "%00000299"), - Attrs([Attr("address","0x620"), Attr("insn","str w1, [x2, #0x34]")]), - Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R2",Imm(64)),Int(52,64)),Extract(31,0,Var("R1",Imm(64))),LittleEndian(),32))]), -Jmps([Call(Tid(670, "%0000029e"), Attrs([Attr("address","0x624"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))]))])), -Sub(Tid(1_747, "@register_tm_clones"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x6D0")]), - "register_tm_clones", Args([Arg(Tid(1_769, "%000006e9"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("register_tm_clones_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(860, "@register_tm_clones"), Attrs([Attr("address","0x6D0")]), - Phis([]), Defs([Def(Tid(863, "%0000035f"), Attrs([Attr("address","0x6D0"), -Attr("insn","adrp x0, #131072")]), Var("R0",Imm(64)), Int(131072,64)), -Def(Tid(869, "%00000365"), Attrs([Attr("address","0x6D4"), -Attr("insn","add x0, x0, #0x30")]), Var("R0",Imm(64)), -PLUS(Var("R0",Imm(64)),Int(48,64))), Def(Tid(874, "%0000036a"), - Attrs([Attr("address","0x6D8"), Attr("insn","adrp x1, #131072")]), - Var("R1",Imm(64)), Int(131072,64)), Def(Tid(880, "%00000370"), - Attrs([Attr("address","0x6DC"), Attr("insn","add x1, x1, #0x30")]), - Var("R1",Imm(64)), PLUS(Var("R1",Imm(64)),Int(48,64))), -Def(Tid(887, "%00000377"), Attrs([Attr("address","0x6E0"), -Attr("insn","sub x1, x1, x0")]), Var("R1",Imm(64)), -PLUS(PLUS(Var("R1",Imm(64)),NOT(Var("R0",Imm(64)))),Int(1,64))), -Def(Tid(893, "%0000037d"), Attrs([Attr("address","0x6E4"), -Attr("insn","lsr x2, x1, #63")]), Var("R2",Imm(64)), -Concat(Int(0,63),Extract(63,63,Var("R1",Imm(64))))), -Def(Tid(900, "%00000384"), Attrs([Attr("address","0x6E8"), -Attr("insn","add x1, x2, x1, asr #3")]), Var("R1",Imm(64)), -PLUS(Var("R2",Imm(64)),ARSHIFT(Var("R1",Imm(64)),Int(3,3)))), -Def(Tid(906, "%0000038a"), Attrs([Attr("address","0x6EC"), -Attr("insn","asr x1, x1, #1")]), Var("R1",Imm(64)), -SIGNED(64,Extract(63,1,Var("R1",Imm(64)))))]), -Jmps([Goto(Tid(912, "%00000390"), Attrs([Attr("address","0x6F0"), -Attr("insn","cbz x1, #0x18")]), EQ(Var("R1",Imm(64)),Int(0,64)), -Direct(Tid(910, "%0000038e"))), Goto(Tid(1_748, "%000006d4"), Attrs([]), - Int(1,1), Direct(Tid(1_086, "%0000043e")))])), Blk(Tid(1_086, "%0000043e"), - Attrs([Attr("address","0x6F4")]), Phis([]), -Defs([Def(Tid(1_089, "%00000441"), Attrs([Attr("address","0x6F4"), -Attr("insn","adrp x2, #126976")]), Var("R2",Imm(64)), Int(126976,64)), -Def(Tid(1_096, "%00000448"), Attrs([Attr("address","0x6F8"), -Attr("insn","ldr x2, [x2, #0xfe0]")]), Var("R2",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R2",Imm(64)),Int(4064,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(1_101, "%0000044d"), Attrs([Attr("address","0x6FC"), -Attr("insn","cbz x2, #0xc")]), EQ(Var("R2",Imm(64)),Int(0,64)), -Direct(Tid(910, "%0000038e"))), Goto(Tid(1_749, "%000006d5"), Attrs([]), - Int(1,1), Direct(Tid(1_105, "%00000451")))])), Blk(Tid(910, "%0000038e"), - Attrs([Attr("address","0x708")]), Phis([]), Defs([]), -Jmps([Call(Tid(918, "%00000396"), Attrs([Attr("address","0x708"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))])), -Blk(Tid(1_105, "%00000451"), Attrs([Attr("address","0x700")]), Phis([]), -Defs([Def(Tid(1_109, "%00000455"), Attrs([Attr("address","0x700"), -Attr("insn","mov x16, x2")]), Var("R16",Imm(64)), Var("R2",Imm(64)))]), -Jmps([Call(Tid(1_114, "%0000045a"), Attrs([Attr("address","0x704"), -Attr("insn","br x16")]), Int(1,1), -(Indirect(Var("R16",Imm(64))),))]))]))]))) \ No newline at end of file diff --git a/src/test/procedure_summaries/procedure_summary3/gcc_O2/procedure_summary3.bir b/src/test/procedure_summaries/procedure_summary3/gcc_O2/procedure_summary3.bir deleted file mode 100644 index 95c51a78e..000000000 --- a/src/test/procedure_summaries/procedure_summary3/gcc_O2/procedure_summary3.bir +++ /dev/null @@ -1,254 +0,0 @@ -0000067e: program -00000666: sub __cxa_finalize(__cxa_finalize_result) -0000067f: __cxa_finalize_result :: out u32 = low:32[R0] - -000003ec: -000004e4: R16 := 0x20000 -000004eb: R17 := mem[R16 + 8, el]:u64 -000004f1: R16 := R16 + 8 -000004f6: call R17 with noreturn - -00000667: sub __do_global_dtors_aux(__do_global_dtors_aux_result) -00000680: __do_global_dtors_aux_result :: out u32 = low:32[R0] - -0000034a: -0000034e: #4 := R31 - 0x20 -00000354: mem := mem with [#4, el]:u64 <- R29 -0000035a: mem := mem with [#4 + 8, el]:u64 <- R30 -0000035e: R31 := #4 -00000364: R29 := R31 -0000036c: mem := mem with [R31 + 0x10, el]:u64 <- R19 -00000371: R19 := 0x20000 -00000378: R0 := pad:64[mem[R19 + 0x30]] -0000037e: when 0:0[R0] goto %0000037c -00000668: goto %000003b5 - -000003b5: -000003b8: R0 := 0x1F000 -000003bf: R0 := mem[R0 + 0xFC8, el]:u64 -000003c5: when R0 = 0 goto %000003c3 -00000669: goto %000003dc - -000003dc: -000003df: R0 := 0x20000 -000003e6: R0 := mem[R0 + 0x28, el]:u64 -000003eb: R30 := 0x73C -000003ee: call @__cxa_finalize with return %000003c3 - -000003c3: -000003cb: R30 := 0x740 -000003cd: call @deregister_tm_clones with return %000003cf - -000003cf: -000003d2: R0 := 1 -000003da: mem := mem with [R19 + 0x30] <- 7:0[R0] -0000066a: goto %0000037c - -0000037c: -00000386: R19 := mem[R31 + 0x10, el]:u64 -0000038d: R29 := mem[R31, el]:u64 -00000392: R30 := mem[R31 + 8, el]:u64 -00000396: R31 := R31 + 0x20 -0000039b: call R30 with noreturn - -0000066b: sub __libc_start_main(__libc_start_main_main, __libc_start_main_arg2, __libc_start_main_arg3, __libc_start_main_auxv, __libc_start_main_result) -00000681: __libc_start_main_main :: in u64 = R0 -00000682: __libc_start_main_arg2 :: in u32 = low:32[R1] -00000683: __libc_start_main_arg3 :: in out u64 = R2 -00000684: __libc_start_main_auxv :: in out u64 = R3 -00000685: __libc_start_main_result :: out u32 = low:32[R0] - -0000029d: -000004ce: R16 := 0x20000 -000004d5: R17 := mem[R16, el]:u64 -000004db: R16 := R16 -000004e0: call R17 with noreturn - -0000066c: sub _fini(_fini_result) -00000686: _fini_result :: out u32 = low:32[R0] - -00000020: -00000026: #0 := R31 - 0x10 -0000002c: mem := mem with [#0, el]:u64 <- R29 -00000032: mem := mem with [#0 + 8, el]:u64 <- R30 -00000036: R31 := #0 -0000003c: R29 := R31 -00000043: R29 := mem[R31, el]:u64 -00000048: R30 := mem[R31 + 8, el]:u64 -0000004c: R31 := R31 + 0x10 -00000051: call R30 with noreturn - -0000066d: sub _init(_init_result) -00000687: _init_result :: out u32 = low:32[R0] - -000005a9: -000005af: #6 := R31 - 0x10 -000005b5: mem := mem with [#6, el]:u64 <- R29 -000005bb: mem := mem with [#6 + 8, el]:u64 <- R30 -000005bf: R31 := #6 -000005c5: R29 := R31 -000005ca: R30 := 0x590 -000005cc: call @call_weak_fn with return %000005ce - -000005ce: -000005d3: R29 := mem[R31, el]:u64 -000005d8: R30 := mem[R31 + 8, el]:u64 -000005dc: R31 := R31 + 0x10 -000005e1: call R30 with noreturn - -0000066e: sub _start(_start_result) -00000688: _start_result :: out u32 = low:32[R0] - -0000025e: -00000263: R29 := 0 -00000268: R30 := 0 -0000026e: R5 := R0 -00000275: R1 := mem[R31, el]:u64 -0000027b: R2 := R31 + 8 -00000281: R6 := R31 -00000286: R0 := 0x1F000 -0000028d: R0 := mem[R0 + 0xFD8, el]:u64 -00000292: R3 := 0 -00000297: R4 := 0 -0000029c: R30 := 0x670 -0000029f: call @__libc_start_main with return %000002a1 - -000002a1: -000002a4: R30 := 0x674 -000002a7: call @abort with return %0000066f - -0000066f: -00000670: call @call_weak_fn with noreturn - -00000671: sub abort() - - -000002a5: -00000510: R16 := 0x20000 -00000517: R17 := mem[R16 + 0x18, el]:u64 -0000051d: R16 := R16 + 0x18 -00000522: call R17 with noreturn - -00000672: sub call_weak_fn(call_weak_fn_result) -00000689: call_weak_fn_result :: out u32 = low:32[R0] - -000002a9: -000002ac: R0 := 0x1F000 -000002b3: R0 := mem[R0 + 0xFD0, el]:u64 -000002b9: when R0 = 0 goto %000002b7 -00000673: goto %0000042c - -000002b7: -000002bf: call R30 with noreturn - -0000042c: -0000042f: goto @__gmon_start__ - -0000042d: -000004fa: R16 := 0x20000 -00000501: R17 := mem[R16 + 0x10, el]:u64 -00000507: R16 := R16 + 0x10 -0000050c: call R17 with noreturn - -00000674: sub deregister_tm_clones(deregister_tm_clones_result) -0000068a: deregister_tm_clones_result :: out u32 = low:32[R0] - -000002cd: -000002d0: R0 := 0x20000 -000002d6: R0 := R0 + 0x30 -000002db: R1 := 0x20000 -000002e1: R1 := R1 + 0x30 -000002e7: #2 := ~R0 -000002ec: #3 := R1 + ~R0 -000002f2: VF := extend:65[#3 + 1] <> extend:65[R1] + extend:65[#2] + 1 -000002f8: CF := pad:65[#3 + 1] <> pad:65[R1] + pad:65[#2] + 1 -000002fc: ZF := #3 + 1 = 0 -00000300: NF := 63:63[#3 + 1] -00000306: when ZF goto %00000304 -00000675: goto %0000040e - -0000040e: -00000411: R1 := 0x1F000 -00000418: R1 := mem[R1 + 0xFC0, el]:u64 -0000041d: when R1 = 0 goto %00000304 -00000676: goto %00000421 - -00000304: -0000030c: call R30 with noreturn - -00000421: -00000425: R16 := R1 -0000042a: call R16 with noreturn - -00000677: sub f(f_result) -0000068b: f_result :: out u32 = low:32[R0] - -00000211: -00000218: R1 := pad:64[31:0[R0]] -0000021d: call @g with noreturn - -00000678: sub frame_dummy(frame_dummy_result) -0000068c: frame_dummy_result :: out u32 = low:32[R0] - -000003a3: -000003a5: call @register_tm_clones with noreturn - -00000679: sub g(g_result) -0000068d: g_result :: out u32 = low:32[R0] - -0000021b: -00000223: R0 := pad:64[31:0[R0] + 31:0[R1]] -00000228: call R30 with noreturn - -0000067a: sub main(main_argc, main_argv, main_result) -0000068e: main_argc :: in u32 = low:32[R0] -0000068f: main_argv :: in out u64 = R1 -00000690: main_result :: out u32 = low:32[R0] - -000001e5: -000001e9: #1 := R31 - 0x10 -000001ef: mem := mem with [#1, el]:u64 <- R29 -000001f5: mem := mem with [#1 + 8, el]:u64 <- R30 -000001f9: R31 := #1 -000001fe: R2 := 0x20000 -00000204: R29 := R31 -0000020b: R0 := pad:64[mem[R2 + 0x34, el]:u32] -00000210: R30 := 0x614 -00000213: call @f with return %0000022a - -0000022a: -0000022e: R1 := pad:64[31:0[R0]] -00000235: R29 := mem[R31, el]:u64 -0000023a: R30 := mem[R31 + 8, el]:u64 -0000023e: R31 := R31 + 0x10 -00000243: R0 := 0 -0000024b: mem := mem with [R2 + 0x34, el]:u32 <- 31:0[R1] -00000250: call R30 with noreturn - -0000067b: sub register_tm_clones(register_tm_clones_result) -00000691: register_tm_clones_result :: out u32 = low:32[R0] - -0000030e: -00000311: R0 := 0x20000 -00000317: R0 := R0 + 0x30 -0000031c: R1 := 0x20000 -00000322: R1 := R1 + 0x30 -00000329: R1 := R1 + ~R0 + 1 -0000032f: R2 := 0.63:63[R1] -00000336: R1 := R2 + (R1 ~>> 3) -0000033c: R1 := extend:64[63:1[R1]] -00000342: when R1 = 0 goto %00000340 -0000067c: goto %000003f0 - -000003f0: -000003f3: R2 := 0x1F000 -000003fa: R2 := mem[R2 + 0xFE0, el]:u64 -000003ff: when R2 = 0 goto %00000340 -0000067d: goto %00000403 - -00000340: -00000348: call R30 with noreturn - -00000403: -00000407: R16 := R2 -0000040c: call R16 with noreturn diff --git a/src/test/procedure_summaries/procedure_summary3/gcc_O2/procedure_summary3.gts b/src/test/procedure_summaries/procedure_summary3/gcc_O2/procedure_summary3.gts deleted file mode 100644 index c664072c8..000000000 Binary files a/src/test/procedure_summaries/procedure_summary3/gcc_O2/procedure_summary3.gts and /dev/null differ diff --git a/src/test/procedure_summaries/procedure_summary3/gcc_O2/procedure_summary3.md5sum b/src/test/procedure_summaries/procedure_summary3/gcc_O2/procedure_summary3.md5sum new file mode 100644 index 000000000..2e32f3d47 --- /dev/null +++ b/src/test/procedure_summaries/procedure_summary3/gcc_O2/procedure_summary3.md5sum @@ -0,0 +1,5 @@ +9fe095f40d22cefa661e8ccb25aa00fe procedure_summaries/procedure_summary3/gcc_O2/a.out +ec4edfb5973727ca22b219e437dd1870 procedure_summaries/procedure_summary3/gcc_O2/procedure_summary3.adt +4898a27895e7344606c7c3f8f9b5808c procedure_summaries/procedure_summary3/gcc_O2/procedure_summary3.bir +23889ef21ccf2bacbd2134dba052340b procedure_summaries/procedure_summary3/gcc_O2/procedure_summary3.relf +f4b1137ade84f8da77984d4896c65a41 procedure_summaries/procedure_summary3/gcc_O2/procedure_summary3.gts diff --git a/src/test/procedure_summaries/procedure_summary3/gcc_O2/procedure_summary3.relf b/src/test/procedure_summaries/procedure_summary3/gcc_O2/procedure_summary3.relf deleted file mode 100644 index 054e6bd41..000000000 --- a/src/test/procedure_summaries/procedure_summary3/gcc_O2/procedure_summary3.relf +++ /dev/null @@ -1,127 +0,0 @@ - -Relocation section '.rela.dyn' at offset 0x460 contains 8 entries: - Offset Info Type Symbol's Value Symbol's Name + Addend -000000000001fdc8 0000000000000403 R_AARCH64_RELATIVE 760 -000000000001fdd0 0000000000000403 R_AARCH64_RELATIVE 70c -000000000001ffd8 0000000000000403 R_AARCH64_RELATIVE 600 -0000000000020028 0000000000000403 R_AARCH64_RELATIVE 20028 -000000000001ffc0 0000000400000401 R_AARCH64_GLOB_DAT 0000000000000000 _ITM_deregisterTMCloneTable + 0 -000000000001ffc8 0000000500000401 R_AARCH64_GLOB_DAT 0000000000000000 __cxa_finalize@GLIBC_2.17 + 0 -000000000001ffd0 0000000600000401 R_AARCH64_GLOB_DAT 0000000000000000 __gmon_start__ + 0 -000000000001ffe0 0000000800000401 R_AARCH64_GLOB_DAT 0000000000000000 _ITM_registerTMCloneTable + 0 - -Relocation section '.rela.plt' at offset 0x520 contains 4 entries: - Offset Info Type Symbol's Value Symbol's Name + Addend -0000000000020000 0000000300000402 R_AARCH64_JUMP_SLOT 0000000000000000 __libc_start_main@GLIBC_2.34 + 0 -0000000000020008 0000000500000402 R_AARCH64_JUMP_SLOT 0000000000000000 __cxa_finalize@GLIBC_2.17 + 0 -0000000000020010 0000000600000402 R_AARCH64_JUMP_SLOT 0000000000000000 __gmon_start__ + 0 -0000000000020018 0000000700000402 R_AARCH64_JUMP_SLOT 0000000000000000 abort@GLIBC_2.17 + 0 - -Symbol table '.dynsym' contains 9 entries: - Num: Value Size Type Bind Vis Ndx Name - 0: 0000000000000000 0 NOTYPE LOCAL DEFAULT UND - 1: 0000000000000580 0 SECTION LOCAL DEFAULT 11 .init - 2: 0000000000020020 0 SECTION LOCAL DEFAULT 23 .data - 3: 0000000000000000 0 FUNC GLOBAL DEFAULT UND __libc_start_main@GLIBC_2.34 (2) - 4: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_deregisterTMCloneTable - 5: 0000000000000000 0 FUNC WEAK DEFAULT UND __cxa_finalize@GLIBC_2.17 (3) - 6: 0000000000000000 0 NOTYPE WEAK DEFAULT UND __gmon_start__ - 7: 0000000000000000 0 FUNC GLOBAL DEFAULT UND abort@GLIBC_2.17 (3) - 8: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_registerTMCloneTable - -Symbol table '.symtab' contains 94 entries: - Num: Value Size Type Bind Vis Ndx Name - 0: 0000000000000000 0 NOTYPE LOCAL DEFAULT UND - 1: 0000000000000238 0 SECTION LOCAL DEFAULT 1 .interp - 2: 0000000000000254 0 SECTION LOCAL DEFAULT 2 .note.gnu.build-id - 3: 0000000000000278 0 SECTION LOCAL DEFAULT 3 .note.ABI-tag - 4: 0000000000000298 0 SECTION LOCAL DEFAULT 4 .gnu.hash - 5: 00000000000002b8 0 SECTION LOCAL DEFAULT 5 .dynsym - 6: 0000000000000390 0 SECTION LOCAL DEFAULT 6 .dynstr - 7: 000000000000041e 0 SECTION LOCAL DEFAULT 7 .gnu.version - 8: 0000000000000430 0 SECTION LOCAL DEFAULT 8 .gnu.version_r - 9: 0000000000000460 0 SECTION LOCAL DEFAULT 9 .rela.dyn - 10: 0000000000000520 0 SECTION LOCAL DEFAULT 10 .rela.plt - 11: 0000000000000580 0 SECTION LOCAL DEFAULT 11 .init - 12: 00000000000005a0 0 SECTION LOCAL DEFAULT 12 .plt - 13: 0000000000000600 0 SECTION LOCAL DEFAULT 13 .text - 14: 00000000000007a4 0 SECTION LOCAL DEFAULT 14 .fini - 15: 00000000000007b8 0 SECTION LOCAL DEFAULT 15 .rodata - 16: 00000000000007bc 0 SECTION LOCAL DEFAULT 16 .eh_frame_hdr - 17: 0000000000000808 0 SECTION LOCAL DEFAULT 17 .eh_frame - 18: 000000000001fdc8 0 SECTION LOCAL DEFAULT 18 .init_array - 19: 000000000001fdd0 0 SECTION LOCAL DEFAULT 19 .fini_array - 20: 000000000001fdd8 0 SECTION LOCAL DEFAULT 20 .dynamic - 21: 000000000001ffb8 0 SECTION LOCAL DEFAULT 21 .got - 22: 000000000001ffe8 0 SECTION LOCAL DEFAULT 22 .got.plt - 23: 0000000000020020 0 SECTION LOCAL DEFAULT 23 .data - 24: 0000000000020030 0 SECTION LOCAL DEFAULT 24 .bss - 25: 0000000000000000 0 SECTION LOCAL DEFAULT 25 .comment - 26: 0000000000000000 0 FILE LOCAL DEFAULT ABS abi-note.c - 27: 0000000000000278 0 NOTYPE LOCAL DEFAULT 3 $d - 28: 0000000000000278 32 OBJECT LOCAL DEFAULT 3 __abi_tag - 29: 0000000000000000 0 FILE LOCAL DEFAULT ABS start.os - 30: 0000000000000640 0 NOTYPE LOCAL DEFAULT 13 $x - 31: 000000000000081c 0 NOTYPE LOCAL DEFAULT 17 $d - 32: 0000000000000000 0 FILE LOCAL DEFAULT ABS init.c - 33: 00000000000007b8 0 NOTYPE LOCAL DEFAULT 15 $d - 34: 0000000000000000 0 FILE LOCAL DEFAULT ABS crti.o - 35: 0000000000000674 0 NOTYPE LOCAL DEFAULT 13 $x - 36: 0000000000000674 20 FUNC LOCAL DEFAULT 13 call_weak_fn - 37: 0000000000000580 0 NOTYPE LOCAL DEFAULT 11 $x - 38: 00000000000007a4 0 NOTYPE LOCAL DEFAULT 14 $x - 39: 0000000000000000 0 FILE LOCAL DEFAULT ABS crtn.o - 40: 0000000000000590 0 NOTYPE LOCAL DEFAULT 11 $x - 41: 00000000000007b0 0 NOTYPE LOCAL DEFAULT 14 $x - 42: 0000000000000000 0 FILE LOCAL DEFAULT ABS procedure_summary3.c - 43: 0000000000000780 0 NOTYPE LOCAL DEFAULT 13 $x - 44: 0000000000000600 0 NOTYPE LOCAL DEFAULT 13 $x - 45: 0000000000020034 0 NOTYPE LOCAL DEFAULT 24 $d - 46: 0000000000000890 0 NOTYPE LOCAL DEFAULT 17 $d - 47: 0000000000000000 0 FILE LOCAL DEFAULT ABS crtstuff.c - 48: 00000000000006a0 0 NOTYPE LOCAL DEFAULT 13 $x - 49: 00000000000006a0 0 FUNC LOCAL DEFAULT 13 deregister_tm_clones - 50: 00000000000006d0 0 FUNC LOCAL DEFAULT 13 register_tm_clones - 51: 0000000000020028 0 NOTYPE LOCAL DEFAULT 23 $d - 52: 000000000000070c 0 FUNC LOCAL DEFAULT 13 __do_global_dtors_aux - 53: 0000000000020030 1 OBJECT LOCAL DEFAULT 24 completed.0 - 54: 000000000001fdd0 0 NOTYPE LOCAL DEFAULT 19 $d - 55: 000000000001fdd0 0 OBJECT LOCAL DEFAULT 19 __do_global_dtors_aux_fini_array_entry - 56: 0000000000000760 0 FUNC LOCAL DEFAULT 13 frame_dummy - 57: 000000000001fdc8 0 NOTYPE LOCAL DEFAULT 18 $d - 58: 000000000001fdc8 0 OBJECT LOCAL DEFAULT 18 __frame_dummy_init_array_entry - 59: 0000000000000830 0 NOTYPE LOCAL DEFAULT 17 $d - 60: 0000000000020030 0 NOTYPE LOCAL DEFAULT 24 $d - 61: 0000000000000000 0 FILE LOCAL DEFAULT ABS crtstuff.c - 62: 00000000000008e4 0 NOTYPE LOCAL DEFAULT 17 $d - 63: 00000000000008e4 0 OBJECT LOCAL DEFAULT 17 __FRAME_END__ - 64: 0000000000000000 0 FILE LOCAL DEFAULT ABS - 65: 000000000001fdd8 0 OBJECT LOCAL DEFAULT ABS _DYNAMIC - 66: 00000000000007bc 0 NOTYPE LOCAL DEFAULT 16 __GNU_EH_FRAME_HDR - 67: 000000000001ffb8 0 OBJECT LOCAL DEFAULT ABS _GLOBAL_OFFSET_TABLE_ - 68: 00000000000005a0 0 NOTYPE LOCAL DEFAULT 12 $x - 69: 0000000000000000 0 FUNC GLOBAL DEFAULT UND __libc_start_main@GLIBC_2.34 - 70: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_deregisterTMCloneTable - 71: 0000000000020020 0 NOTYPE WEAK DEFAULT 23 data_start - 72: 0000000000020030 0 NOTYPE GLOBAL DEFAULT 24 __bss_start__ - 73: 0000000000000000 0 FUNC WEAK DEFAULT UND __cxa_finalize@GLIBC_2.17 - 74: 0000000000020038 0 NOTYPE GLOBAL DEFAULT 24 _bss_end__ - 75: 0000000000020030 0 NOTYPE GLOBAL DEFAULT 23 _edata - 76: 0000000000020034 4 OBJECT GLOBAL DEFAULT 24 x - 77: 00000000000007a4 0 FUNC GLOBAL HIDDEN 14 _fini - 78: 0000000000020038 0 NOTYPE GLOBAL DEFAULT 24 __bss_end__ - 79: 0000000000000788 28 FUNC GLOBAL DEFAULT 13 f - 80: 0000000000020020 0 NOTYPE GLOBAL DEFAULT 23 __data_start - 81: 0000000000000000 0 NOTYPE WEAK DEFAULT UND __gmon_start__ - 82: 0000000000020028 0 OBJECT GLOBAL HIDDEN 23 __dso_handle - 83: 0000000000000000 0 FUNC GLOBAL DEFAULT UND abort@GLIBC_2.17 - 84: 00000000000007b8 4 OBJECT GLOBAL DEFAULT 15 _IO_stdin_used - 85: 0000000000020038 0 NOTYPE GLOBAL DEFAULT 24 _end - 86: 0000000000000640 52 FUNC GLOBAL DEFAULT 13 _start - 87: 0000000000000780 8 FUNC GLOBAL DEFAULT 13 g - 88: 0000000000020038 0 NOTYPE GLOBAL DEFAULT 24 __end__ - 89: 0000000000020030 0 NOTYPE GLOBAL DEFAULT 24 __bss_start - 90: 0000000000000600 40 FUNC GLOBAL DEFAULT 13 main - 91: 0000000000020030 0 OBJECT GLOBAL HIDDEN 23 __TMC_END__ - 92: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_registerTMCloneTable - 93: 0000000000000580 0 FUNC GLOBAL HIDDEN 11 _init diff --git a/src/test/procedure_summaries/procedure_summary4/gcc_O2/procedure_summary4.adt b/src/test/procedure_summaries/procedure_summary4/gcc_O2/procedure_summary4.adt deleted file mode 100644 index 0b8c461de..000000000 --- a/src/test/procedure_summaries/procedure_summary4/gcc_O2/procedure_summary4.adt +++ /dev/null @@ -1,614 +0,0 @@ -Project(Attrs([Attr("filename","\"a.out\""), -Attr("image-specification","(declare abi (name str))\n(declare arch (name str))\n(declare base-address (addr int))\n(declare bias (off int))\n(declare bits (size int))\n(declare code-region (addr int) (size int) (off int))\n(declare code-start (addr int))\n(declare entry-point (addr int))\n(declare external-reference (addr int) (name str))\n(declare format (name str))\n(declare is-executable (flag bool))\n(declare is-little-endian (flag bool))\n(declare llvm:base-address (addr int))\n(declare llvm:code-entry (name str) (off int) (size int))\n(declare llvm:coff-import-library (name str))\n(declare llvm:coff-virtual-section-header (name str) (addr int) (size int))\n(declare llvm:elf-program-header (name str) (off int) (size int))\n(declare llvm:elf-program-header-flags (name str) (ld bool) (r bool) \n (w bool) (x bool))\n(declare llvm:elf-virtual-program-header (name str) (addr int) (size int))\n(declare llvm:entry-point (addr int))\n(declare llvm:macho-symbol (name str) (value int))\n(declare llvm:name-reference (at int) (name str))\n(declare llvm:relocation (at int) (addr int))\n(declare llvm:section-entry (name str) (addr int) (size int) (off int))\n(declare llvm:section-flags (name str) (r bool) (w bool) (x bool))\n(declare llvm:segment-command (name str) (off int) (size int))\n(declare llvm:segment-command-flags (name str) (r bool) (w bool) (x bool))\n(declare llvm:symbol-entry (name str) (addr int) (size int) (off int)\n (value int))\n(declare llvm:virtual-segment-command (name str) (addr int) (size int))\n(declare mapped (addr int) (size int) (off int))\n(declare named-region (addr int) (size int) (name str))\n(declare named-symbol (addr int) (name str))\n(declare require (name str))\n(declare section (addr int) (size int))\n(declare segment (addr int) (size int) (r bool) (w bool) (x bool))\n(declare subarch (name str))\n(declare symbol-chunk (addr int) (size int) (root int))\n(declare symbol-value (addr int) (value int))\n(declare system (name str))\n(declare vendor (name str))\n\n(abi unknown)\n(arch aarch64)\n(base-address 0)\n(bias 0)\n(bits 64)\n(code-region 1988 20 1988)\n(code-region 1536 452 1536)\n(code-region 1440 96 1440)\n(code-region 1408 24 1408)\n(code-start 1652)\n(code-start 1952)\n(code-start 1600)\n(code-start 1920)\n(code-start 1536)\n(entry-point 1600)\n(external-reference 131008 _ITM_deregisterTMCloneTable)\n(external-reference 131016 __cxa_finalize)\n(external-reference 131024 __gmon_start__)\n(external-reference 131040 _ITM_registerTMCloneTable)\n(external-reference 131072 __libc_start_main)\n(external-reference 131080 __cxa_finalize)\n(external-reference 131088 __gmon_start__)\n(external-reference 131096 abort)\n(format elf)\n(is-executable true)\n(is-little-endian true)\n(llvm:base-address 0)\n(llvm:code-entry abort 0 0)\n(llvm:code-entry __cxa_finalize 0 0)\n(llvm:code-entry __libc_start_main 0 0)\n(llvm:code-entry _init 1408 0)\n(llvm:code-entry main 1536 36)\n(llvm:code-entry g 1920 20)\n(llvm:code-entry _start 1600 52)\n(llvm:code-entry abort@GLIBC_2.17 0 0)\n(llvm:code-entry _fini 1988 0)\n(llvm:code-entry h 1952 36)\n(llvm:code-entry __cxa_finalize@GLIBC_2.17 0 0)\n(llvm:code-entry __libc_start_main@GLIBC_2.34 0 0)\n(llvm:code-entry frame_dummy 1888 0)\n(llvm:code-entry __do_global_dtors_aux 1804 0)\n(llvm:code-entry register_tm_clones 1744 0)\n(llvm:code-entry deregister_tm_clones 1696 0)\n(llvm:code-entry call_weak_fn 1652 20)\n(llvm:code-entry .fini 1988 20)\n(llvm:code-entry .text 1536 452)\n(llvm:code-entry .plt 1440 96)\n(llvm:code-entry .init 1408 24)\n(llvm:elf-program-header 08 64968 568)\n(llvm:elf-program-header 07 0 0)\n(llvm:elf-program-header 06 2012 76)\n(llvm:elf-program-header 05 596 68)\n(llvm:elf-program-header 04 64984 480)\n(llvm:elf-program-header 03 64968 616)\n(llvm:elf-program-header 02 0 2312)\n(llvm:elf-program-header 01 568 27)\n(llvm:elf-program-header 00 64 504)\n(llvm:elf-program-header-flags 08 false true false false)\n(llvm:elf-program-header-flags 07 false true true false)\n(llvm:elf-program-header-flags 06 false true false false)\n(llvm:elf-program-header-flags 05 false true false false)\n(llvm:elf-program-header-flags 04 false true true false)\n(llvm:elf-program-header-flags 03 true true true false)\n(llvm:elf-program-header-flags 02 true true false true)\n(llvm:elf-program-header-flags 01 false true false false)\n(llvm:elf-program-header-flags 00 false true false false)\n(llvm:elf-virtual-program-header 08 130504 568)\n(llvm:elf-virtual-program-header 07 0 0)\n(llvm:elf-virtual-program-header 06 2012 76)\n(llvm:elf-virtual-program-header 05 596 68)\n(llvm:elf-virtual-program-header 04 130520 480)\n(llvm:elf-virtual-program-header 03 130504 632)\n(llvm:elf-virtual-program-header 02 0 2312)\n(llvm:elf-virtual-program-header 01 568 27)\n(llvm:elf-virtual-program-header 00 64 504)\n(llvm:entry-point 1600)\n(llvm:name-reference 131096 abort)\n(llvm:name-reference 131088 __gmon_start__)\n(llvm:name-reference 131080 __cxa_finalize)\n(llvm:name-reference 131072 __libc_start_main)\n(llvm:name-reference 131040 _ITM_registerTMCloneTable)\n(llvm:name-reference 131024 __gmon_start__)\n(llvm:name-reference 131016 __cxa_finalize)\n(llvm:name-reference 131008 _ITM_deregisterTMCloneTable)\n(llvm:section-entry .shstrtab 0 259 68439)\n(llvm:section-entry .strtab 0 575 67864)\n(llvm:section-entry .symtab 0 2256 65608)\n(llvm:section-entry .comment 0 18 65584)\n(llvm:section-entry .bss 131120 16 65584)\n(llvm:section-entry .data 131104 16 65568)\n(llvm:section-entry .got.plt 131048 56 65512)\n(llvm:section-entry .got 131000 48 65464)\n(llvm:section-entry .dynamic 130520 480 64984)\n(llvm:section-entry .fini_array 130512 8 64976)\n(llvm:section-entry .init_array 130504 8 64968)\n(llvm:section-entry .eh_frame 2088 224 2088)\n(llvm:section-entry .eh_frame_hdr 2012 76 2012)\n(llvm:section-entry .rodata 2008 4 2008)\n(llvm:section-entry .fini 1988 20 1988)\n(llvm:section-entry .text 1536 452 1536)\n(llvm:section-entry .plt 1440 96 1440)\n(llvm:section-entry .init 1408 24 1408)\n(llvm:section-entry .rela.plt 1312 96 1312)\n(llvm:section-entry .rela.dyn 1120 192 1120)\n(llvm:section-entry .gnu.version_r 1072 48 1072)\n(llvm:section-entry .gnu.version 1054 18 1054)\n(llvm:section-entry .dynstr 912 141 912)\n(llvm:section-entry .dynsym 696 216 696)\n(llvm:section-entry .gnu.hash 664 28 664)\n(llvm:section-entry .note.ABI-tag 632 32 632)\n(llvm:section-entry .note.gnu.build-id 596 36 596)\n(llvm:section-entry .interp 568 27 568)\n(llvm:section-flags .shstrtab true false false)\n(llvm:section-flags .strtab true false false)\n(llvm:section-flags .symtab true false false)\n(llvm:section-flags .comment true false false)\n(llvm:section-flags .bss true true false)\n(llvm:section-flags .data true true false)\n(llvm:section-flags .got.plt true true false)\n(llvm:section-flags .got true true false)\n(llvm:section-flags .dynamic true true false)\n(llvm:section-flags .fini_array true true false)\n(llvm:section-flags .init_array true true false)\n(llvm:section-flags .eh_frame true false false)\n(llvm:section-flags .eh_frame_hdr true false false)\n(llvm:section-flags .rodata true false false)\n(llvm:section-flags .fini true false true)\n(llvm:section-flags .text true false true)\n(llvm:section-flags .plt true false true)\n(llvm:section-flags .init true false true)\n(llvm:section-flags .rela.plt true false false)\n(llvm:section-flags .rela.dyn true false false)\n(llvm:section-flags .gnu.version_r true false false)\n(llvm:section-flags .gnu.version true false false)\n(llvm:section-flags .dynstr true false false)\n(llvm:section-flags .dynsym true false false)\n(llvm:section-flags .gnu.hash true false false)\n(llvm:section-flags .note.ABI-tag true false false)\n(llvm:section-flags .note.gnu.build-id true false false)\n(llvm:section-flags .interp true false false)\n(llvm:symbol-entry abort 0 0 0 0)\n(llvm:symbol-entry __cxa_finalize 0 0 0 0)\n(llvm:symbol-entry __libc_start_main 0 0 0 0)\n(llvm:symbol-entry _init 1408 0 1408 1408)\n(llvm:symbol-entry main 1536 36 1536 1536)\n(llvm:symbol-entry g 1920 20 1920 1920)\n(llvm:symbol-entry _start 1600 52 1600 1600)\n(llvm:symbol-entry abort@GLIBC_2.17 0 0 0 0)\n(llvm:symbol-entry _fini 1988 0 1988 1988)\n(llvm:symbol-entry h 1952 36 1952 1952)\n(llvm:symbol-entry __cxa_finalize@GLIBC_2.17 0 0 0 0)\n(llvm:symbol-entry __libc_start_main@GLIBC_2.34 0 0 0 0)\n(llvm:symbol-entry frame_dummy 1888 0 1888 1888)\n(llvm:symbol-entry __do_global_dtors_aux 1804 0 1804 1804)\n(llvm:symbol-entry register_tm_clones 1744 0 1744 1744)\n(llvm:symbol-entry deregister_tm_clones 1696 0 1696 1696)\n(llvm:symbol-entry call_weak_fn 1652 20 1652 1652)\n(mapped 0 2312 0)\n(mapped 130504 616 64968)\n(named-region 0 2312 02)\n(named-region 130504 632 03)\n(named-region 568 27 .interp)\n(named-region 596 36 .note.gnu.build-id)\n(named-region 632 32 .note.ABI-tag)\n(named-region 664 28 .gnu.hash)\n(named-region 696 216 .dynsym)\n(named-region 912 141 .dynstr)\n(named-region 1054 18 .gnu.version)\n(named-region 1072 48 .gnu.version_r)\n(named-region 1120 192 .rela.dyn)\n(named-region 1312 96 .rela.plt)\n(named-region 1408 24 .init)\n(named-region 1440 96 .plt)\n(named-region 1536 452 .text)\n(named-region 1988 20 .fini)\n(named-region 2008 4 .rodata)\n(named-region 2012 76 .eh_frame_hdr)\n(named-region 2088 224 .eh_frame)\n(named-region 130504 8 .init_array)\n(named-region 130512 8 .fini_array)\n(named-region 130520 480 .dynamic)\n(named-region 131000 48 .got)\n(named-region 131048 56 .got.plt)\n(named-region 131104 16 .data)\n(named-region 131120 16 .bss)\n(named-region 0 18 .comment)\n(named-region 0 2256 .symtab)\n(named-region 0 575 .strtab)\n(named-region 0 259 .shstrtab)\n(named-symbol 1652 call_weak_fn)\n(named-symbol 1696 deregister_tm_clones)\n(named-symbol 1744 register_tm_clones)\n(named-symbol 1804 __do_global_dtors_aux)\n(named-symbol 1888 frame_dummy)\n(named-symbol 0 __libc_start_main@GLIBC_2.34)\n(named-symbol 0 __cxa_finalize@GLIBC_2.17)\n(named-symbol 1952 h)\n(named-symbol 1988 _fini)\n(named-symbol 0 abort@GLIBC_2.17)\n(named-symbol 1600 _start)\n(named-symbol 1920 g)\n(named-symbol 1536 main)\n(named-symbol 1408 _init)\n(named-symbol 0 __libc_start_main)\n(named-symbol 0 __cxa_finalize)\n(named-symbol 0 abort)\n(require libc.so.6)\n(section 568 27)\n(section 596 36)\n(section 632 32)\n(section 664 28)\n(section 696 216)\n(section 912 141)\n(section 1054 18)\n(section 1072 48)\n(section 1120 192)\n(section 1312 96)\n(section 1408 24)\n(section 1440 96)\n(section 1536 452)\n(section 1988 20)\n(section 2008 4)\n(section 2012 76)\n(section 2088 224)\n(section 130504 8)\n(section 130512 8)\n(section 130520 480)\n(section 131000 48)\n(section 131048 56)\n(section 131104 16)\n(section 131120 16)\n(section 0 18)\n(section 0 2256)\n(section 0 575)\n(section 0 259)\n(segment 0 2312 true false true)\n(segment 130504 632 true true false)\n(subarch v8)\n(symbol-chunk 1652 20 1652)\n(symbol-chunk 1952 36 1952)\n(symbol-chunk 1600 52 1600)\n(symbol-chunk 1920 20 1920)\n(symbol-chunk 1536 36 1536)\n(symbol-value 1652 1652)\n(symbol-value 1696 1696)\n(symbol-value 1744 1744)\n(symbol-value 1804 1804)\n(symbol-value 1888 1888)\n(symbol-value 1952 1952)\n(symbol-value 1988 1988)\n(symbol-value 1600 1600)\n(symbol-value 1920 1920)\n(symbol-value 1536 1536)\n(symbol-value 1408 1408)\n(symbol-value 0 0)\n(system \"\")\n(vendor \"\")\n"), -Attr("abi-name","\"aarch64-linux-gnu-elf\"")]), -Sections([Section(".shstrtab", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x40\x06\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x60\x0c\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x38\x00\x09\x00\x40\x00\x1d\x00\x1c\x00\x06\x00\x00\x00\x04\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x04\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x08\x09\x00\x00\x00\x00\x00\x00\x08\x09\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x01\x00\x00\x00\x06\x00\x00\x00\xc8\xfd\x00\x00\x00\x00\x00\x00\xc8\xfd\x01\x00\x00\x00\x00\x00\xc8\xfd\x01"), -Section(".strtab", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x40\x06\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x60\x0c\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x38\x00\x09\x00\x40\x00\x1d\x00\x1c\x00\x06\x00\x00\x00\x04\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x04\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x08\x09\x00\x00\x00\x00\x00\x00\x08\x09\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x01\x00\x00\x00\x06\x00\x00\x00\xc8\xfd\x00\x00\x00\x00\x00\x00\xc8\xfd\x01\x00\x00\x00\x00\x00\xc8\xfd\x01\x00\x00\x00\x00\x00\x68\x02\x00\x00\x00\x00\x00\x00\x78\x02\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x02\x00\x00\x00\x06\x00\x00\x00\xd8\xfd\x00\x00\x00\x00\x00\x00\xd8\xfd\x01\x00\x00\x00\x00\x00\xd8\xfd\x01\x00\x00\x00\x00\x00\xe0\x01\x00\x00\x00\x00\x00\x00\xe0\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x04\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x50\xe5\x74\x64\x04\x00\x00\x00\xdc\x07\x00\x00\x00\x00\x00\x00\xdc\x07\x00\x00\x00\x00\x00\x00\xdc\x07\x00\x00\x00\x00\x00\x00\x4c\x00\x00\x00\x00\x00\x00\x00\x4c\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x51\xe5\x74\x64\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x52\xe5\x74\x64\x04\x00\x00\x00\xc8\xfd\x00\x00\x00\x00\x00\x00\xc8\xfd\x01\x00\x00\x00\x00\x00\xc8\xfd\x01\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x2f\x6c\x69\x62\x2f\x6c\x64"), -Section(".symtab", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x40\x06\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x60\x0c\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x38\x00\x09\x00\x40\x00\x1d\x00\x1c\x00\x06\x00\x00\x00\x04\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x04\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x08\x09\x00\x00\x00\x00\x00\x00\x08\x09\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x01\x00\x00\x00\x06\x00\x00\x00\xc8\xfd\x00\x00\x00\x00\x00\x00\xc8\xfd\x01\x00\x00\x00\x00\x00\xc8\xfd\x01\x00\x00\x00\x00\x00\x68\x02\x00\x00\x00\x00\x00\x00\x78\x02\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x02\x00\x00\x00\x06\x00\x00\x00\xd8\xfd\x00\x00\x00\x00\x00\x00\xd8\xfd\x01\x00\x00\x00\x00\x00\xd8\xfd\x01\x00\x00\x00\x00\x00\xe0\x01\x00\x00\x00\x00\x00\x00\xe0\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x04\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x50\xe5\x74\x64\x04\x00\x00\x00\xdc\x07\x00\x00\x00\x00\x00\x00\xdc\x07\x00\x00\x00\x00\x00\x00\xdc\x07\x00\x00\x00\x00\x00\x00\x4c\x00\x00\x00\x00\x00\x00\x00\x4c\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x51\xe5\x74\x64\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x52\xe5\x74\x64\x04\x00\x00\x00\xc8\xfd\x00\x00\x00\x00\x00\x00\xc8\xfd\x01\x00\x00\x00\x00\x00\xc8\xfd\x01\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x2f\x6c\x69\x62\x2f\x6c\x64\x2d\x6c\x69\x6e\x75\x78\x2d\x61\x61\x72\x63\x68\x36\x34\x2e\x73\x6f\x2e\x31\x00\x00\x04\x00\x00\x00\x14\x00\x00\x00\x03\x00\x00\x00\x47\x4e\x55\x00\x92\xed\x35\x5e\xa4\x98\x5a\x74\xb9\x4a\x89\x41\x22\x08\x74\xfa\x8b\x70\x4a\x00\x04\x00\x00\x00\x10\x00\x00\x00\x01\x00\x00\x00\x47\x4e\x55\x00\x00\x00\x00\x00\x03\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x01\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x0b\x00\x80\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x17\x00\x20\x00\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x48\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x13\x00\x00\x00\x22\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x22\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x73\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5f\x5f\x6c\x69\x62\x63\x5f\x73\x74\x61\x72\x74\x5f\x6d\x61\x69\x6e\x00\x5f\x5f\x63\x78\x61\x5f\x66\x69\x6e\x61\x6c\x69\x7a\x65\x00\x61\x62\x6f\x72\x74\x00\x6c\x69\x62\x63\x2e\x73\x6f\x2e\x36\x00\x47\x4c\x49\x42\x43\x5f\x32\x2e\x31\x37\x00\x47\x4c\x49\x42\x43\x5f\x32\x2e\x33\x34\x00\x5f\x49\x54\x4d\x5f\x64\x65\x72\x65\x67\x69\x73\x74\x65\x72\x54\x4d\x43\x6c\x6f\x6e\x65\x54\x61\x62\x6c\x65\x00\x5f\x5f\x67\x6d\x6f\x6e\x5f\x73\x74\x61\x72\x74\x5f\x5f\x00\x5f\x49\x54\x4d\x5f\x72\x65\x67\x69\x73\x74\x65\x72\x54\x4d\x43\x6c\x6f\x6e\x65\x54\x61\x62\x6c\x65\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x01\x00\x03\x00\x01\x00\x03\x00\x01\x00\x01\x00\x02\x00\x28\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x97\x91\x96\x06\x00\x00\x03\x00\x32\x00\x00\x00\x10\x00\x00\x00\xb4\x91\x96\x06\x00\x00\x02\x00\x3d\x00\x00\x00\x00\x00\x00\x00\xc8\xfd\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x60\x07\x00\x00\x00\x00\x00\x00\xd0\xfd\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x0c\x07\x00\x00\x00\x00\x00\x00\xd8\xff\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x00\x06\x00\x00\x00\x00\x00\x00\x28\x00\x02\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x28\x00\x02\x00\x00\x00\x00\x00\xc0\xff\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xc8\xff\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xd0\xff\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe0\xff\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00\x02\x04\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x08\x00\x02\x00\x00\x00\x00\x00\x02\x04\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x02\x00\x00\x00\x00\x00\x02\x04\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x18\x00\x02\x00\x00\x00\x00\x00\x02\x04\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1f\x20\x03\xd5\xfd\x7b\xbf\xa9\xfd\x03\x00\x91\x3a\x00\x00\x94\xfd\x7b\xc1\xa8\xc0\x03\x5f\xd6\x00\x00\x00\x00\x00\x00\x00\x00\xf0\x7b\xbf\xa9\xf0\x00\x00\xf0\x11\xfe\x47\xf9\x10\xe2\x3f\x91\x20\x02\x1f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x10\x01\x00\x90\x11\x02\x40\xf9\x10\x02\x00\x91\x20\x02\x1f\xd6\x10\x01\x00\x90\x11\x06\x40\xf9\x10\x22\x00\x91\x20\x02\x1f\xd6\x10\x01\x00\x90\x11\x0a\x40\xf9\x10\x42\x00\x91\x20\x02\x1f\xd6\x10\x01\x00\x90\x11\x0e\x40\xf9\x10\x62\x00\x91\x20\x02\x1f\xd6\xfd\x7b\xbf\xa9\x03\x01\x00\x90\xfd\x03\x00\x91\x61\x1c\x40\xf9\xe0\x03\x01\xaa\x63\x00\x00\x94\x60\x1c\x00\xf9\xfd\x7b\xc1\xa8\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1d\x00\x80\xd2\x1e\x00\x80\xd2\xe5\x03\x00\xaa\xe1\x03\x40\xf9\xe2\x23\x00\x91\xe6\x03\x00\x91\xe0\x00\x00\xf0\x00\xec\x47\xf9\x03\x00\x80\xd2\x04\x00\x80\xd2\xd5\xff\xff\x97\xe0\xff\xff\x97\xe0\x00\x00\xf0\x00\xe8\x47\xf9\x40\x00\x00\xb4\xd8\xff\xff\x17\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x00\x01\x00\x90\x00\xc0\x00\x91\x01\x01\x00\x90\x21\xc0\x00\x91\x3f\x00\x00\xeb\xc0\x00\x00\x54\xe1\x00\x00\xf0\x21\xe0\x47\xf9\x61\x00\x00\xb4\xf0\x03\x01\xaa\x00\x02\x1f\xd6\xc0\x03\x5f\xd6\x00\x01\x00\x90\x00\xc0\x00\x91\x01\x01\x00\x90\x21\xc0\x00\x91\x21\x00\x00\xcb\x22\xfc\x7f\xd3\x41\x0c\x81\x8b\x21\xfc\x41\x93\xc1\x00\x00\xb4\xe2\x00\x00\xf0\x42\xf0\x47\xf9\x62\x00\x00\xb4\xf0\x03\x02\xaa\x00\x02\x1f\xd6\xc0\x03\x5f\xd6\xfd\x7b\xbe\xa9\xfd\x03\x00\x91\xf3\x0b\x00\xf9\x13\x01\x00\x90\x60\xc2\x40\x39\x40\x01\x00\x37\xe0\x00\x00\xf0\x00\xe4\x47\xf9\x80\x00\x00\xb4\x00\x01\x00\x90\x00\x14\x40\xf9\xa6\xff\xff\x97\xd9\xff\xff\x97\x20\x00\x80\x52\x60\xc2\x00\x39\xf3\x0b\x40\xf9\xfd\x7b\xc2\xa8\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\xdc\xff\xff\x17\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x3f\x00\x00\xf1\x01\x28\x00\x91\x00\x28\x00\xd1\x00\xb0\x81\x9a\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\xfd\x7b\xbf\xa9\xe2\x03\x01\xaa\xe1\x03\x00\xaa\xfd\x03\x00\x91\x00\x00\x02\x8b\xf3\xff\xff\x97\x00\x04\x00\x91\xfd\x7b\xc1\xa8\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\xfd\x7b\xbf\xa9\xfd\x03\x00\x91\xfd\x7b\xc1\xa8\xc0\x03\x5f\xd6\x01\x00\x02\x00\x01\x1b\x03\x3b\x48\x00\x00\x00\x08\x00\x00\x00\x24\xfe\xff\xff\x08\x01\x00\x00\x64\xfe\xff\xff\x60\x00\x00\x00\xc4\xfe\xff\xff\x74\x00\x00\x00\xf4\xfe\xff\xff\x88\x00\x00\x00\x30\xff\xff\xff\x9c\x00\x00\x00\x84\xff\xff\xff\xc0\x00\x00\x00\xa4\xff\xff\xff\xd4\x00\x00\x00\xc4\xff\xff\xff\xe8\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x01\x7a\x52\x00\x04\x78\x1e\x01\x1b\x0c\x1f\x00\x10\x00\x00\x00\x18\x00\x00\x00\xfc\xfd\xff\xff\x34\x00\x00\x00\x00\x41\x07\x1e\x10\x00\x00\x00\x2c\x00\x00\x00\x48\xfe\xff\xff\x30\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x40\x00\x00\x00\x64\xfe\xff\xff\x3c\x00\x00\x00\x00\x00\x00\x00\x20\x00\x00\x00\x54\x00\x00\x00\x8c\xfe\xff\xff\x48\x00\x00\x00\x00\x41\x0e\x20\x9d\x04\x9e\x03\x42\x93\x02\x4e\xde\xdd\xd3\x0e\x00\x00\x00\x00\x10\x00\x00\x00\x78\x00\x00\x00\xbc\xfe\xff\xff\x04\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x8c\x00\x00\x00\xc8\xfe\xff\xff\x14\x00\x00\x00\x00\x00\x00\x00\x1c\x00\x00\x00\xa0\x00\x00\x00\xd4\xfe\xff\xff"), -Section(".comment", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00"), -Section(".interp", 0x238, "\x2f\x6c\x69\x62\x2f\x6c\x64\x2d\x6c\x69\x6e\x75\x78\x2d\x61\x61\x72\x63\x68\x36\x34\x2e\x73\x6f\x2e\x31\x00"), -Section(".note.gnu.build-id", 0x254, "\x04\x00\x00\x00\x14\x00\x00\x00\x03\x00\x00\x00\x47\x4e\x55\x00\x92\xed\x35\x5e\xa4\x98\x5a\x74\xb9\x4a\x89\x41\x22\x08\x74\xfa\x8b\x70\x4a\x00"), -Section(".note.ABI-tag", 0x278, "\x04\x00\x00\x00\x10\x00\x00\x00\x01\x00\x00\x00\x47\x4e\x55\x00\x00\x00\x00\x00\x03\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00"), -Section(".gnu.hash", 0x298, "\x01\x00\x00\x00\x01\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".dynsym", 0x2B8, "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x0b\x00\x80\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x17\x00\x20\x00\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x48\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x13\x00\x00\x00\x22\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x22\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x73\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".dynstr", 0x390, "\x00\x5f\x5f\x6c\x69\x62\x63\x5f\x73\x74\x61\x72\x74\x5f\x6d\x61\x69\x6e\x00\x5f\x5f\x63\x78\x61\x5f\x66\x69\x6e\x61\x6c\x69\x7a\x65\x00\x61\x62\x6f\x72\x74\x00\x6c\x69\x62\x63\x2e\x73\x6f\x2e\x36\x00\x47\x4c\x49\x42\x43\x5f\x32\x2e\x31\x37\x00\x47\x4c\x49\x42\x43\x5f\x32\x2e\x33\x34\x00\x5f\x49\x54\x4d\x5f\x64\x65\x72\x65\x67\x69\x73\x74\x65\x72\x54\x4d\x43\x6c\x6f\x6e\x65\x54\x61\x62\x6c\x65\x00\x5f\x5f\x67\x6d\x6f\x6e\x5f\x73\x74\x61\x72\x74\x5f\x5f\x00\x5f\x49\x54\x4d\x5f\x72\x65\x67\x69\x73\x74\x65\x72\x54\x4d\x43\x6c\x6f\x6e\x65\x54\x61\x62\x6c\x65\x00"), -Section(".gnu.version", 0x41E, "\x00\x00\x00\x00\x00\x00\x02\x00\x01\x00\x03\x00\x01\x00\x03\x00\x01\x00"), -Section(".gnu.version_r", 0x430, "\x01\x00\x02\x00\x28\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x97\x91\x96\x06\x00\x00\x03\x00\x32\x00\x00\x00\x10\x00\x00\x00\xb4\x91\x96\x06\x00\x00\x02\x00\x3d\x00\x00\x00\x00\x00\x00\x00"), -Section(".rela.dyn", 0x460, "\xc8\xfd\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x60\x07\x00\x00\x00\x00\x00\x00\xd0\xfd\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x0c\x07\x00\x00\x00\x00\x00\x00\xd8\xff\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x00\x06\x00\x00\x00\x00\x00\x00\x28\x00\x02\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x28\x00\x02\x00\x00\x00\x00\x00\xc0\xff\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xc8\xff\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xd0\xff\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe0\xff\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".rela.plt", 0x520, "\x00\x00\x02\x00\x00\x00\x00\x00\x02\x04\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x08\x00\x02\x00\x00\x00\x00\x00\x02\x04\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x02\x00\x00\x00\x00\x00\x02\x04\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x18\x00\x02\x00\x00\x00\x00\x00\x02\x04\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".init", 0x580, "\x1f\x20\x03\xd5\xfd\x7b\xbf\xa9\xfd\x03\x00\x91\x3a\x00\x00\x94\xfd\x7b\xc1\xa8\xc0\x03\x5f\xd6"), -Section(".plt", 0x5A0, "\xf0\x7b\xbf\xa9\xf0\x00\x00\xf0\x11\xfe\x47\xf9\x10\xe2\x3f\x91\x20\x02\x1f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x10\x01\x00\x90\x11\x02\x40\xf9\x10\x02\x00\x91\x20\x02\x1f\xd6\x10\x01\x00\x90\x11\x06\x40\xf9\x10\x22\x00\x91\x20\x02\x1f\xd6\x10\x01\x00\x90\x11\x0a\x40\xf9\x10\x42\x00\x91\x20\x02\x1f\xd6\x10\x01\x00\x90\x11\x0e\x40\xf9\x10\x62\x00\x91\x20\x02\x1f\xd6"), -Section(".fini", 0x7C4, "\x1f\x20\x03\xd5\xfd\x7b\xbf\xa9\xfd\x03\x00\x91\xfd\x7b\xc1\xa8\xc0\x03\x5f\xd6"), -Section(".rodata", 0x7D8, "\x01\x00\x02\x00"), -Section(".eh_frame_hdr", 0x7DC, "\x01\x1b\x03\x3b\x48\x00\x00\x00\x08\x00\x00\x00\x24\xfe\xff\xff\x08\x01\x00\x00\x64\xfe\xff\xff\x60\x00\x00\x00\xc4\xfe\xff\xff\x74\x00\x00\x00\xf4\xfe\xff\xff\x88\x00\x00\x00\x30\xff\xff\xff\x9c\x00\x00\x00\x84\xff\xff\xff\xc0\x00\x00\x00\xa4\xff\xff\xff\xd4\x00\x00\x00\xc4\xff\xff\xff\xe8\x00\x00\x00"), -Section(".eh_frame", 0x828, "\x10\x00\x00\x00\x00\x00\x00\x00\x01\x7a\x52\x00\x04\x78\x1e\x01\x1b\x0c\x1f\x00\x10\x00\x00\x00\x18\x00\x00\x00\xfc\xfd\xff\xff\x34\x00\x00\x00\x00\x41\x07\x1e\x10\x00\x00\x00\x2c\x00\x00\x00\x48\xfe\xff\xff\x30\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x40\x00\x00\x00\x64\xfe\xff\xff\x3c\x00\x00\x00\x00\x00\x00\x00\x20\x00\x00\x00\x54\x00\x00\x00\x8c\xfe\xff\xff\x48\x00\x00\x00\x00\x41\x0e\x20\x9d\x04\x9e\x03\x42\x93\x02\x4e\xde\xdd\xd3\x0e\x00\x00\x00\x00\x10\x00\x00\x00\x78\x00\x00\x00\xbc\xfe\xff\xff\x04\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x8c\x00\x00\x00\xc8\xfe\xff\xff\x14\x00\x00\x00\x00\x00\x00\x00\x1c\x00\x00\x00\xa0\x00\x00\x00\xd4\xfe\xff\xff\x24\x00\x00\x00\x00\x41\x0e\x10\x9d\x02\x9e\x01\x47\xde\xdd\x0e\x00\x00\x00\x00\x1c\x00\x00\x00\xc0\x00\x00\x00\x14\xfd\xff\xff\x24\x00\x00\x00\x00\x41\x0e\x10\x9d\x02\x9e\x01\x47\xde\xdd\x0e\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".fini_array", 0x1FDD0, "\x0c\x07\x00\x00\x00\x00\x00\x00"), -Section(".dynamic", 0x1FDD8, "\x01\x00\x00\x00\x00\x00\x00\x00\x28\x00\x00\x00\x00\x00\x00\x00\x0c\x00\x00\x00\x00\x00\x00\x00\x80\x05\x00\x00\x00\x00\x00\x00\x0d\x00\x00\x00\x00\x00\x00\x00\xc4\x07\x00\x00\x00\x00\x00\x00\x19\x00\x00\x00\x00\x00\x00\x00\xc8\xfd\x01\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x1a\x00\x00\x00\x00\x00\x00\x00\xd0\xfd\x01\x00\x00\x00\x00\x00\x1c\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\xf5\xfe\xff\x6f\x00\x00\x00\x00\x98\x02\x00\x00\x00\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x90\x03\x00\x00\x00\x00\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\xb8\x02\x00\x00\x00\x00\x00\x00\x0a\x00\x00\x00\x00\x00\x00\x00\x8d\x00\x00\x00\x00\x00\x00\x00\x0b\x00\x00\x00\x00\x00\x00\x00\x18\x00\x00\x00\x00\x00\x00\x00\x15\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\xe8\xff\x01\x00\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x60\x00\x00\x00\x00\x00\x00\x00\x14\x00\x00\x00\x00\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x17\x00\x00\x00\x00\x00\x00\x00\x20\x05\x00\x00\x00\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x60\x04\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\xc0\x00\x00\x00\x00\x00\x00\x00\x09\x00\x00\x00\x00\x00\x00\x00\x18\x00\x00\x00\x00\x00\x00\x00\xfb\xff\xff\x6f\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\xfe\xff\xff\x6f\x00\x00\x00\x00\x30\x04\x00\x00\x00\x00\x00\x00\xff\xff\xff\x6f\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\xf0\xff\xff\x6f\x00\x00\x00\x00\x1e\x04\x00\x00\x00\x00\x00\x00\xf9\xff\xff\x6f\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".got", 0x1FFB8, "\xd8\xfd\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".got.plt", 0x1FFE8, "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xa0\x05\x00\x00\x00\x00\x00\x00\xa0\x05\x00\x00\x00\x00\x00\x00\xa0\x05\x00\x00\x00\x00\x00\x00\xa0\x05\x00\x00\x00\x00\x00\x00"), -Section(".data", 0x20020, "\x00\x00\x00\x00\x00\x00\x00\x00\x28\x00\x02\x00\x00\x00\x00\x00"), -Section(".init_array", 0x1FDC8, "\x60\x07\x00\x00\x00\x00\x00\x00"), -Section(".text", 0x600, "\xfd\x7b\xbf\xa9\x03\x01\x00\x90\xfd\x03\x00\x91\x61\x1c\x40\xf9\xe0\x03\x01\xaa\x63\x00\x00\x94\x60\x1c\x00\xf9\xfd\x7b\xc1\xa8\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1d\x00\x80\xd2\x1e\x00\x80\xd2\xe5\x03\x00\xaa\xe1\x03\x40\xf9\xe2\x23\x00\x91\xe6\x03\x00\x91\xe0\x00\x00\xf0\x00\xec\x47\xf9\x03\x00\x80\xd2\x04\x00\x80\xd2\xd5\xff\xff\x97\xe0\xff\xff\x97\xe0\x00\x00\xf0\x00\xe8\x47\xf9\x40\x00\x00\xb4\xd8\xff\xff\x17\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x00\x01\x00\x90\x00\xc0\x00\x91\x01\x01\x00\x90\x21\xc0\x00\x91\x3f\x00\x00\xeb\xc0\x00\x00\x54\xe1\x00\x00\xf0\x21\xe0\x47\xf9\x61\x00\x00\xb4\xf0\x03\x01\xaa\x00\x02\x1f\xd6\xc0\x03\x5f\xd6\x00\x01\x00\x90\x00\xc0\x00\x91\x01\x01\x00\x90\x21\xc0\x00\x91\x21\x00\x00\xcb\x22\xfc\x7f\xd3\x41\x0c\x81\x8b\x21\xfc\x41\x93\xc1\x00\x00\xb4\xe2\x00\x00\xf0\x42\xf0\x47\xf9\x62\x00\x00\xb4\xf0\x03\x02\xaa\x00\x02\x1f\xd6\xc0\x03\x5f\xd6\xfd\x7b\xbe\xa9\xfd\x03\x00\x91\xf3\x0b\x00\xf9\x13\x01\x00\x90\x60\xc2\x40\x39\x40\x01\x00\x37\xe0\x00\x00\xf0\x00\xe4\x47\xf9\x80\x00\x00\xb4\x00\x01\x00\x90\x00\x14\x40\xf9\xa6\xff\xff\x97\xd9\xff\xff\x97\x20\x00\x80\x52\x60\xc2\x00\x39\xf3\x0b\x40\xf9\xfd\x7b\xc2\xa8\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\xdc\xff\xff\x17\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x3f\x00\x00\xf1\x01\x28\x00\x91\x00\x28\x00\xd1\x00\xb0\x81\x9a\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\xfd\x7b\xbf\xa9\xe2\x03\x01\xaa\xe1\x03\x00\xaa\xfd\x03\x00\x91\x00\x00\x02\x8b\xf3\xff\xff\x97\x00\x04\x00\x91\xfd\x7b\xc1\xa8\xc0\x03\x5f\xd6")]), -Memmap([Annotation(Region(0x0,0x907), Attr("segment","02 0 2312")), -Annotation(Region(0x600,0x623), Attr("symbol","\"main\"")), -Annotation(Region(0x0,0x102), Attr("section","\".shstrtab\"")), -Annotation(Region(0x0,0x23E), Attr("section","\".strtab\"")), -Annotation(Region(0x0,0x8CF), Attr("section","\".symtab\"")), -Annotation(Region(0x0,0x11), Attr("section","\".comment\"")), -Annotation(Region(0x238,0x252), Attr("section","\".interp\"")), -Annotation(Region(0x254,0x277), Attr("section","\".note.gnu.build-id\"")), -Annotation(Region(0x278,0x297), Attr("section","\".note.ABI-tag\"")), -Annotation(Region(0x298,0x2B3), Attr("section","\".gnu.hash\"")), -Annotation(Region(0x2B8,0x38F), Attr("section","\".dynsym\"")), -Annotation(Region(0x390,0x41C), Attr("section","\".dynstr\"")), -Annotation(Region(0x41E,0x42F), Attr("section","\".gnu.version\"")), -Annotation(Region(0x430,0x45F), Attr("section","\".gnu.version_r\"")), -Annotation(Region(0x460,0x51F), Attr("section","\".rela.dyn\"")), -Annotation(Region(0x520,0x57F), Attr("section","\".rela.plt\"")), -Annotation(Region(0x580,0x597), Attr("section","\".init\"")), -Annotation(Region(0x5A0,0x5FF), Attr("section","\".plt\"")), -Annotation(Region(0x580,0x597), Attr("code-region","()")), -Annotation(Region(0x5A0,0x5FF), Attr("code-region","()")), -Annotation(Region(0x600,0x623), Attr("symbol-info","main 0x600 36")), -Annotation(Region(0x640,0x673), Attr("symbol","\"_start\"")), -Annotation(Region(0x640,0x673), Attr("symbol-info","_start 0x640 52")), -Annotation(Region(0x674,0x687), Attr("symbol","\"call_weak_fn\"")), -Annotation(Region(0x674,0x687), Attr("symbol-info","call_weak_fn 0x674 20")), -Annotation(Region(0x780,0x793), Attr("symbol","\"g\"")), -Annotation(Region(0x600,0x7C3), Attr("code-region","()")), -Annotation(Region(0x780,0x793), Attr("symbol-info","g 0x780 20")), -Annotation(Region(0x7A0,0x7C3), Attr("symbol","\"h\"")), -Annotation(Region(0x7A0,0x7C3), Attr("symbol-info","h 0x7A0 36")), -Annotation(Region(0x7C4,0x7D7), Attr("section","\".fini\"")), -Annotation(Region(0x7D8,0x7DB), Attr("section","\".rodata\"")), -Annotation(Region(0x7DC,0x827), Attr("section","\".eh_frame_hdr\"")), -Annotation(Region(0x828,0x907), Attr("section","\".eh_frame\"")), -Annotation(Region(0x1FDC8,0x2002F), Attr("segment","03 0x1FDC8 632")), -Annotation(Region(0x1FDD0,0x1FDD7), Attr("section","\".fini_array\"")), -Annotation(Region(0x1FDD8,0x1FFB7), Attr("section","\".dynamic\"")), -Annotation(Region(0x1FFB8,0x1FFE7), Attr("section","\".got\"")), -Annotation(Region(0x1FFE8,0x2001F), Attr("section","\".got.plt\"")), -Annotation(Region(0x20020,0x2002F), Attr("section","\".data\"")), -Annotation(Region(0x1FDC8,0x1FDCF), Attr("section","\".init_array\"")), -Annotation(Region(0x600,0x7C3), Attr("section","\".text\"")), -Annotation(Region(0x7C4,0x7D7), Attr("code-region","()"))]), -Program(Tid(1_861, "%00000745"), Attrs([]), - Subs([Sub(Tid(1_837, "@__cxa_finalize"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x5D0"), -Attr("stub","()")]), "__cxa_finalize", Args([Arg(Tid(1_862, "%00000746"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("__cxa_finalize_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(1_177, "@__cxa_finalize"), - Attrs([Attr("address","0x5D0")]), Phis([]), -Defs([Def(Tid(1_425, "%00000591"), Attrs([Attr("address","0x5D0"), -Attr("insn","adrp x16, #131072")]), Var("R16",Imm(64)), Int(131072,64)), -Def(Tid(1_432, "%00000598"), Attrs([Attr("address","0x5D4"), -Attr("insn","ldr x17, [x16, #0x8]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(1_438, "%0000059e"), Attrs([Attr("address","0x5D8"), -Attr("insn","add x16, x16, #0x8")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(8,64)))]), Jmps([Call(Tid(1_443, "%000005a3"), - Attrs([Attr("address","0x5DC"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), -Sub(Tid(1_838, "@__do_global_dtors_aux"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x70C")]), - "__do_global_dtors_aux", Args([Arg(Tid(1_863, "%00000747"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("__do_global_dtors_aux_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(1_015, "@__do_global_dtors_aux"), - Attrs([Attr("address","0x70C")]), Phis([]), -Defs([Def(Tid(1_019, "%000003fb"), Attrs([Attr("address","0x70C"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("#6",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(18446744073709551584,64))), -Def(Tid(1_025, "%00000401"), Attrs([Attr("address","0x70C"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("#6",Imm(64)),Var("R29",Imm(64)),LittleEndian(),64)), -Def(Tid(1_031, "%00000407"), Attrs([Attr("address","0x70C"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("#6",Imm(64)),Int(8,64)),Var("R30",Imm(64)),LittleEndian(),64)), -Def(Tid(1_035, "%0000040b"), Attrs([Attr("address","0x70C"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("R31",Imm(64)), -Var("#6",Imm(64))), Def(Tid(1_041, "%00000411"), - Attrs([Attr("address","0x710"), Attr("insn","mov x29, sp")]), - Var("R29",Imm(64)), Var("R31",Imm(64))), Def(Tid(1_049, "%00000419"), - Attrs([Attr("address","0x714"), Attr("insn","str x19, [sp, #0x10]")]), - Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(16,64)),Var("R19",Imm(64)),LittleEndian(),64)), -Def(Tid(1_054, "%0000041e"), Attrs([Attr("address","0x718"), -Attr("insn","adrp x19, #131072")]), Var("R19",Imm(64)), Int(131072,64)), -Def(Tid(1_061, "%00000425"), Attrs([Attr("address","0x71C"), -Attr("insn","ldrb w0, [x19, #0x30]")]), Var("R0",Imm(64)), -UNSIGNED(64,Load(Var("mem",Mem(64,8)),PLUS(Var("R19",Imm(64)),Int(48,64)),LittleEndian(),8)))]), -Jmps([Goto(Tid(1_067, "%0000042b"), Attrs([Attr("address","0x720"), -Attr("insn","tbnz w0, #0x0, #0x28")]), - EQ(Extract(0,0,Var("R0",Imm(64))),Int(1,1)), -Direct(Tid(1_065, "%00000429"))), Goto(Tid(1_839, "%0000072f"), Attrs([]), - Int(1,1), Direct(Tid(1_122, "%00000462")))])), Blk(Tid(1_122, "%00000462"), - Attrs([Attr("address","0x724")]), Phis([]), -Defs([Def(Tid(1_125, "%00000465"), Attrs([Attr("address","0x724"), -Attr("insn","adrp x0, #126976")]), Var("R0",Imm(64)), Int(126976,64)), -Def(Tid(1_132, "%0000046c"), Attrs([Attr("address","0x728"), -Attr("insn","ldr x0, [x0, #0xfc8]")]), Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(4040,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(1_138, "%00000472"), Attrs([Attr("address","0x72C"), -Attr("insn","cbz x0, #0x10")]), EQ(Var("R0",Imm(64)),Int(0,64)), -Direct(Tid(1_136, "%00000470"))), Goto(Tid(1_840, "%00000730"), Attrs([]), - Int(1,1), Direct(Tid(1_161, "%00000489")))])), Blk(Tid(1_161, "%00000489"), - Attrs([Attr("address","0x730")]), Phis([]), -Defs([Def(Tid(1_164, "%0000048c"), Attrs([Attr("address","0x730"), -Attr("insn","adrp x0, #131072")]), Var("R0",Imm(64)), Int(131072,64)), -Def(Tid(1_171, "%00000493"), Attrs([Attr("address","0x734"), -Attr("insn","ldr x0, [x0, #0x28]")]), Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(40,64)),LittleEndian(),64)), -Def(Tid(1_176, "%00000498"), Attrs([Attr("address","0x738"), -Attr("insn","bl #-0x168")]), Var("R30",Imm(64)), Int(1852,64))]), -Jmps([Call(Tid(1_179, "%0000049b"), Attrs([Attr("address","0x738"), -Attr("insn","bl #-0x168")]), Int(1,1), -(Direct(Tid(1_837, "@__cxa_finalize")),Direct(Tid(1_136, "%00000470"))))])), -Blk(Tid(1_136, "%00000470"), Attrs([Attr("address","0x73C")]), Phis([]), -Defs([Def(Tid(1_144, "%00000478"), Attrs([Attr("address","0x73C"), -Attr("insn","bl #-0x9c")]), Var("R30",Imm(64)), Int(1856,64))]), -Jmps([Call(Tid(1_146, "%0000047a"), Attrs([Attr("address","0x73C"), -Attr("insn","bl #-0x9c")]), Int(1,1), -(Direct(Tid(1_851, "@deregister_tm_clones")),Direct(Tid(1_148, "%0000047c"))))])), -Blk(Tid(1_148, "%0000047c"), Attrs([Attr("address","0x740")]), Phis([]), -Defs([Def(Tid(1_151, "%0000047f"), Attrs([Attr("address","0x740"), -Attr("insn","mov w0, #0x1")]), Var("R0",Imm(64)), Int(1,64)), -Def(Tid(1_159, "%00000487"), Attrs([Attr("address","0x744"), -Attr("insn","strb w0, [x19, #0x30]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R19",Imm(64)),Int(48,64)),Extract(7,0,Var("R0",Imm(64))),LittleEndian(),8))]), -Jmps([Goto(Tid(1_841, "%00000731"), Attrs([]), Int(1,1), -Direct(Tid(1_065, "%00000429")))])), Blk(Tid(1_065, "%00000429"), - Attrs([Attr("address","0x748")]), Phis([]), -Defs([Def(Tid(1_075, "%00000433"), Attrs([Attr("address","0x748"), -Attr("insn","ldr x19, [sp, #0x10]")]), Var("R19",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(16,64)),LittleEndian(),64)), -Def(Tid(1_082, "%0000043a"), Attrs([Attr("address","0x74C"), -Attr("insn","ldp x29, x30, [sp], #0x20")]), Var("R29",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(1_087, "%0000043f"), Attrs([Attr("address","0x74C"), -Attr("insn","ldp x29, x30, [sp], #0x20")]), Var("R30",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(1_091, "%00000443"), Attrs([Attr("address","0x74C"), -Attr("insn","ldp x29, x30, [sp], #0x20")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(32,64)))]), Jmps([Call(Tid(1_096, "%00000448"), - Attrs([Attr("address","0x750"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), Sub(Tid(1_842, "@__libc_start_main"), - Attrs([Attr("c.proto","signed (*)(signed (*)(signed , char** , char** );* main, signed , char** , \nvoid* auxv)"), -Attr("address","0x5C0"), Attr("stub","()")]), "__libc_start_main", - Args([Arg(Tid(1_864, "%00000748"), - Attrs([Attr("c.layout","**[ : 64]"), -Attr("c.data","Top:u64 ptr ptr"), -Attr("c.type","signed (*)(signed , char** , char** );*")]), - Var("__libc_start_main_main",Imm(64)), Var("R0",Imm(64)), In()), -Arg(Tid(1_865, "%00000749"), Attrs([Attr("c.layout","[signed : 32]"), -Attr("c.data","Top:u32"), Attr("c.type","signed")]), - Var("__libc_start_main_arg2",Imm(32)), LOW(32,Var("R1",Imm(64))), In()), -Arg(Tid(1_866, "%0000074a"), Attrs([Attr("c.layout","**[char : 8]"), -Attr("c.data","Top:u8 ptr ptr"), Attr("c.type","char**")]), - Var("__libc_start_main_arg3",Imm(64)), Var("R2",Imm(64)), Both()), -Arg(Tid(1_867, "%0000074b"), Attrs([Attr("c.layout","*[ : 8]"), -Attr("c.data","{} ptr"), Attr("c.type","void*")]), - Var("__libc_start_main_auxv",Imm(64)), Var("R3",Imm(64)), Both()), -Arg(Tid(1_868, "%0000074c"), Attrs([Attr("c.layout","[signed : 32]"), -Attr("c.data","Top:u32"), Attr("c.type","signed")]), - Var("__libc_start_main_result",Imm(32)), LOW(32,Var("R0",Imm(64))), -Out())]), Blks([Blk(Tid(842, "@__libc_start_main"), - Attrs([Attr("address","0x5C0")]), Phis([]), -Defs([Def(Tid(1_403, "%0000057b"), Attrs([Attr("address","0x5C0"), -Attr("insn","adrp x16, #131072")]), Var("R16",Imm(64)), Int(131072,64)), -Def(Tid(1_410, "%00000582"), Attrs([Attr("address","0x5C4"), -Attr("insn","ldr x17, [x16]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R16",Imm(64)),LittleEndian(),64)), -Def(Tid(1_416, "%00000588"), Attrs([Attr("address","0x5C8"), -Attr("insn","add x16, x16, #0x0")]), Var("R16",Imm(64)), -Var("R16",Imm(64)))]), Jmps([Call(Tid(1_421, "%0000058d"), - Attrs([Attr("address","0x5CC"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), Sub(Tid(1_843, "@_fini"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x7C4")]), - "_fini", Args([Arg(Tid(1_869, "%0000074d"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("_fini_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(32, "@_fini"), - Attrs([Attr("address","0x7C4")]), Phis([]), Defs([Def(Tid(38, "%00000026"), - Attrs([Attr("address","0x7C8"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("#0",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(18446744073709551600,64))), -Def(Tid(44, "%0000002c"), Attrs([Attr("address","0x7C8"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("#0",Imm(64)),Var("R29",Imm(64)),LittleEndian(),64)), -Def(Tid(50, "%00000032"), Attrs([Attr("address","0x7C8"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("#0",Imm(64)),Int(8,64)),Var("R30",Imm(64)),LittleEndian(),64)), -Def(Tid(54, "%00000036"), Attrs([Attr("address","0x7C8"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("R31",Imm(64)), -Var("#0",Imm(64))), Def(Tid(60, "%0000003c"), Attrs([Attr("address","0x7CC"), -Attr("insn","mov x29, sp")]), Var("R29",Imm(64)), Var("R31",Imm(64))), -Def(Tid(67, "%00000043"), Attrs([Attr("address","0x7D0"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R29",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(72, "%00000048"), Attrs([Attr("address","0x7D0"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R30",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(76, "%0000004c"), Attrs([Attr("address","0x7D0"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(16,64)))]), Jmps([Call(Tid(81, "%00000051"), - Attrs([Attr("address","0x7D4"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), Sub(Tid(1_844, "@_init"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x580")]), - "_init", Args([Arg(Tid(1_870, "%0000074e"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("_init_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(1_635, "@_init"), - Attrs([Attr("address","0x580")]), Phis([]), -Defs([Def(Tid(1_641, "%00000669"), Attrs([Attr("address","0x584"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("#8",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(18446744073709551600,64))), -Def(Tid(1_647, "%0000066f"), Attrs([Attr("address","0x584"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("#8",Imm(64)),Var("R29",Imm(64)),LittleEndian(),64)), -Def(Tid(1_653, "%00000675"), Attrs([Attr("address","0x584"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("#8",Imm(64)),Int(8,64)),Var("R30",Imm(64)),LittleEndian(),64)), -Def(Tid(1_657, "%00000679"), Attrs([Attr("address","0x584"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("R31",Imm(64)), -Var("#8",Imm(64))), Def(Tid(1_663, "%0000067f"), - Attrs([Attr("address","0x588"), Attr("insn","mov x29, sp")]), - Var("R29",Imm(64)), Var("R31",Imm(64))), Def(Tid(1_668, "%00000684"), - Attrs([Attr("address","0x58C"), Attr("insn","bl #0xe8")]), - Var("R30",Imm(64)), Int(1424,64))]), Jmps([Call(Tid(1_670, "%00000686"), - Attrs([Attr("address","0x58C"), Attr("insn","bl #0xe8")]), Int(1,1), -(Direct(Tid(1_849, "@call_weak_fn")),Direct(Tid(1_672, "%00000688"))))])), -Blk(Tid(1_672, "%00000688"), Attrs([Attr("address","0x590")]), Phis([]), -Defs([Def(Tid(1_677, "%0000068d"), Attrs([Attr("address","0x590"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R29",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(1_682, "%00000692"), Attrs([Attr("address","0x590"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R30",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(1_686, "%00000696"), Attrs([Attr("address","0x590"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(16,64)))]), Jmps([Call(Tid(1_691, "%0000069b"), - Attrs([Attr("address","0x594"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), Sub(Tid(1_845, "@_start"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x640"), -Attr("entry-point","()")]), "_start", Args([Arg(Tid(1_871, "%0000074f"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("_start_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(779, "@_start"), - Attrs([Attr("address","0x640")]), Phis([]), Defs([Def(Tid(784, "%00000310"), - Attrs([Attr("address","0x644"), Attr("insn","mov x29, #0x0")]), - Var("R29",Imm(64)), Int(0,64)), Def(Tid(789, "%00000315"), - Attrs([Attr("address","0x648"), Attr("insn","mov x30, #0x0")]), - Var("R30",Imm(64)), Int(0,64)), Def(Tid(795, "%0000031b"), - Attrs([Attr("address","0x64C"), Attr("insn","mov x5, x0")]), - Var("R5",Imm(64)), Var("R0",Imm(64))), Def(Tid(802, "%00000322"), - Attrs([Attr("address","0x650"), Attr("insn","ldr x1, [sp]")]), - Var("R1",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(808, "%00000328"), Attrs([Attr("address","0x654"), -Attr("insn","add x2, sp, #0x8")]), Var("R2",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(8,64))), Def(Tid(814, "%0000032e"), - Attrs([Attr("address","0x658"), Attr("insn","mov x6, sp")]), - Var("R6",Imm(64)), Var("R31",Imm(64))), Def(Tid(819, "%00000333"), - Attrs([Attr("address","0x65C"), Attr("insn","adrp x0, #126976")]), - Var("R0",Imm(64)), Int(126976,64)), Def(Tid(826, "%0000033a"), - Attrs([Attr("address","0x660"), Attr("insn","ldr x0, [x0, #0xfd8]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(4056,64)),LittleEndian(),64)), -Def(Tid(831, "%0000033f"), Attrs([Attr("address","0x664"), -Attr("insn","mov x3, #0x0")]), Var("R3",Imm(64)), Int(0,64)), -Def(Tid(836, "%00000344"), Attrs([Attr("address","0x668"), -Attr("insn","mov x4, #0x0")]), Var("R4",Imm(64)), Int(0,64)), -Def(Tid(841, "%00000349"), Attrs([Attr("address","0x66C"), -Attr("insn","bl #-0xac")]), Var("R30",Imm(64)), Int(1648,64))]), -Jmps([Call(Tid(844, "%0000034c"), Attrs([Attr("address","0x66C"), -Attr("insn","bl #-0xac")]), Int(1,1), -(Direct(Tid(1_842, "@__libc_start_main")),Direct(Tid(846, "%0000034e"))))])), -Blk(Tid(846, "%0000034e"), Attrs([Attr("address","0x670")]), Phis([]), -Defs([Def(Tid(849, "%00000351"), Attrs([Attr("address","0x670"), -Attr("insn","bl #-0x80")]), Var("R30",Imm(64)), Int(1652,64))]), -Jmps([Call(Tid(852, "%00000354"), Attrs([Attr("address","0x670"), -Attr("insn","bl #-0x80")]), Int(1,1), -(Direct(Tid(1_848, "@abort")),Direct(Tid(1_846, "%00000736"))))])), -Blk(Tid(1_846, "%00000736"), Attrs([]), Phis([]), Defs([]), -Jmps([Call(Tid(1_847, "%00000737"), Attrs([]), Int(1,1), -(Direct(Tid(1_849, "@call_weak_fn")),))]))])), Sub(Tid(1_848, "@abort"), - Attrs([Attr("noreturn","()"), Attr("c.proto","void (*)(void)"), -Attr("address","0x5F0"), Attr("stub","()")]), "abort", Args([]), -Blks([Blk(Tid(850, "@abort"), Attrs([Attr("address","0x5F0")]), Phis([]), -Defs([Def(Tid(1_469, "%000005bd"), Attrs([Attr("address","0x5F0"), -Attr("insn","adrp x16, #131072")]), Var("R16",Imm(64)), Int(131072,64)), -Def(Tid(1_476, "%000005c4"), Attrs([Attr("address","0x5F4"), -Attr("insn","ldr x17, [x16, #0x18]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(24,64)),LittleEndian(),64)), -Def(Tid(1_482, "%000005ca"), Attrs([Attr("address","0x5F8"), -Attr("insn","add x16, x16, #0x18")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(24,64)))]), Jmps([Call(Tid(1_487, "%000005cf"), - Attrs([Attr("address","0x5FC"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), Sub(Tid(1_849, "@call_weak_fn"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x674")]), - "call_weak_fn", Args([Arg(Tid(1_872, "%00000750"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("call_weak_fn_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(854, "@call_weak_fn"), - Attrs([Attr("address","0x674")]), Phis([]), Defs([Def(Tid(857, "%00000359"), - Attrs([Attr("address","0x674"), Attr("insn","adrp x0, #126976")]), - Var("R0",Imm(64)), Int(126976,64)), Def(Tid(864, "%00000360"), - Attrs([Attr("address","0x678"), Attr("insn","ldr x0, [x0, #0xfd0]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(4048,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(870, "%00000366"), Attrs([Attr("address","0x67C"), -Attr("insn","cbz x0, #0x8")]), EQ(Var("R0",Imm(64)),Int(0,64)), -Direct(Tid(868, "%00000364"))), Goto(Tid(1_850, "%0000073a"), Attrs([]), - Int(1,1), Direct(Tid(1_241, "%000004d9")))])), Blk(Tid(868, "%00000364"), - Attrs([Attr("address","0x684")]), Phis([]), Defs([]), -Jmps([Call(Tid(876, "%0000036c"), Attrs([Attr("address","0x684"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))])), -Blk(Tid(1_241, "%000004d9"), Attrs([Attr("address","0x680")]), Phis([]), -Defs([]), Jmps([Goto(Tid(1_244, "%000004dc"), Attrs([Attr("address","0x680"), -Attr("insn","b #-0xa0")]), Int(1,1), -Direct(Tid(1_242, "@__gmon_start__")))])), Blk(Tid(1_242, "@__gmon_start__"), - Attrs([Attr("address","0x5E0")]), Phis([]), -Defs([Def(Tid(1_447, "%000005a7"), Attrs([Attr("address","0x5E0"), -Attr("insn","adrp x16, #131072")]), Var("R16",Imm(64)), Int(131072,64)), -Def(Tid(1_454, "%000005ae"), Attrs([Attr("address","0x5E4"), -Attr("insn","ldr x17, [x16, #0x10]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(16,64)),LittleEndian(),64)), -Def(Tid(1_460, "%000005b4"), Attrs([Attr("address","0x5E8"), -Attr("insn","add x16, x16, #0x10")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(16,64)))]), Jmps([Call(Tid(1_465, "%000005b9"), - Attrs([Attr("address","0x5EC"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), -Sub(Tid(1_851, "@deregister_tm_clones"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x6A0")]), - "deregister_tm_clones", Args([Arg(Tid(1_873, "%00000751"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("deregister_tm_clones_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(890, "@deregister_tm_clones"), - Attrs([Attr("address","0x6A0")]), Phis([]), Defs([Def(Tid(893, "%0000037d"), - Attrs([Attr("address","0x6A0"), Attr("insn","adrp x0, #131072")]), - Var("R0",Imm(64)), Int(131072,64)), Def(Tid(899, "%00000383"), - Attrs([Attr("address","0x6A4"), Attr("insn","add x0, x0, #0x30")]), - Var("R0",Imm(64)), PLUS(Var("R0",Imm(64)),Int(48,64))), -Def(Tid(904, "%00000388"), Attrs([Attr("address","0x6A8"), -Attr("insn","adrp x1, #131072")]), Var("R1",Imm(64)), Int(131072,64)), -Def(Tid(910, "%0000038e"), Attrs([Attr("address","0x6AC"), -Attr("insn","add x1, x1, #0x30")]), Var("R1",Imm(64)), -PLUS(Var("R1",Imm(64)),Int(48,64))), Def(Tid(916, "%00000394"), - Attrs([Attr("address","0x6B0"), Attr("insn","cmp x1, x0")]), - Var("#4",Imm(64)), NOT(Var("R0",Imm(64)))), Def(Tid(921, "%00000399"), - Attrs([Attr("address","0x6B0"), Attr("insn","cmp x1, x0")]), - Var("#5",Imm(64)), PLUS(Var("R1",Imm(64)),NOT(Var("R0",Imm(64))))), -Def(Tid(927, "%0000039f"), Attrs([Attr("address","0x6B0"), -Attr("insn","cmp x1, x0")]), Var("VF",Imm(1)), -NEQ(SIGNED(65,PLUS(Var("#5",Imm(64)),Int(1,64))),PLUS(PLUS(SIGNED(65,Var("R1",Imm(64))),SIGNED(65,Var("#4",Imm(64)))),Int(1,65)))), -Def(Tid(933, "%000003a5"), Attrs([Attr("address","0x6B0"), -Attr("insn","cmp x1, x0")]), Var("CF",Imm(1)), -NEQ(UNSIGNED(65,PLUS(Var("#5",Imm(64)),Int(1,64))),PLUS(PLUS(UNSIGNED(65,Var("R1",Imm(64))),UNSIGNED(65,Var("#4",Imm(64)))),Int(1,65)))), -Def(Tid(937, "%000003a9"), Attrs([Attr("address","0x6B0"), -Attr("insn","cmp x1, x0")]), Var("ZF",Imm(1)), -EQ(PLUS(Var("#5",Imm(64)),Int(1,64)),Int(0,64))), Def(Tid(941, "%000003ad"), - Attrs([Attr("address","0x6B0"), Attr("insn","cmp x1, x0")]), - Var("NF",Imm(1)), Extract(63,63,PLUS(Var("#5",Imm(64)),Int(1,64))))]), -Jmps([Goto(Tid(947, "%000003b3"), Attrs([Attr("address","0x6B4"), -Attr("insn","b.eq #0x18")]), EQ(Var("ZF",Imm(1)),Int(1,1)), -Direct(Tid(945, "%000003b1"))), Goto(Tid(1_852, "%0000073c"), Attrs([]), - Int(1,1), Direct(Tid(1_211, "%000004bb")))])), Blk(Tid(1_211, "%000004bb"), - Attrs([Attr("address","0x6B8")]), Phis([]), -Defs([Def(Tid(1_214, "%000004be"), Attrs([Attr("address","0x6B8"), -Attr("insn","adrp x1, #126976")]), Var("R1",Imm(64)), Int(126976,64)), -Def(Tid(1_221, "%000004c5"), Attrs([Attr("address","0x6BC"), -Attr("insn","ldr x1, [x1, #0xfc0]")]), Var("R1",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R1",Imm(64)),Int(4032,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(1_226, "%000004ca"), Attrs([Attr("address","0x6C0"), -Attr("insn","cbz x1, #0xc")]), EQ(Var("R1",Imm(64)),Int(0,64)), -Direct(Tid(945, "%000003b1"))), Goto(Tid(1_853, "%0000073d"), Attrs([]), - Int(1,1), Direct(Tid(1_230, "%000004ce")))])), Blk(Tid(945, "%000003b1"), - Attrs([Attr("address","0x6CC")]), Phis([]), Defs([]), -Jmps([Call(Tid(953, "%000003b9"), Attrs([Attr("address","0x6CC"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))])), -Blk(Tid(1_230, "%000004ce"), Attrs([Attr("address","0x6C4")]), Phis([]), -Defs([Def(Tid(1_234, "%000004d2"), Attrs([Attr("address","0x6C4"), -Attr("insn","mov x16, x1")]), Var("R16",Imm(64)), Var("R1",Imm(64)))]), -Jmps([Call(Tid(1_239, "%000004d7"), Attrs([Attr("address","0x6C8"), -Attr("insn","br x16")]), Int(1,1), (Indirect(Var("R16",Imm(64))),))]))])), -Sub(Tid(1_854, "@frame_dummy"), Attrs([Attr("c.proto","signed (*)(void)"), -Attr("address","0x760")]), "frame_dummy", Args([Arg(Tid(1_874, "%00000752"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("frame_dummy_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(1_104, "@frame_dummy"), - Attrs([Attr("address","0x760")]), Phis([]), Defs([]), -Jmps([Call(Tid(1_106, "%00000452"), Attrs([Attr("address","0x760"), -Attr("insn","b #-0x90")]), Int(1,1), -(Direct(Tid(1_858, "@register_tm_clones")),))]))])), Sub(Tid(1_855, "@g"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x780")]), "g", - Args([Arg(Tid(1_875, "%00000753"), Attrs([Attr("c.layout","[signed : 32]"), -Attr("c.data","Top:u32"), Attr("c.type","signed")]), Var("g_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(641, "@g"), - Attrs([Attr("address","0x780")]), Phis([]), Defs([Def(Tid(648, "%00000288"), - Attrs([Attr("address","0x780"), Attr("insn","cmp x1, #0x0")]), - Var("#3",Imm(64)), Var("R1",Imm(64))), Def(Tid(653, "%0000028d"), - Attrs([Attr("address","0x780"), Attr("insn","cmp x1, #0x0")]), - Var("VF",Imm(1)), NEQ(Var("#3",Imm(64)),Var("R1",Imm(64)))), -Def(Tid(658, "%00000292"), Attrs([Attr("address","0x780"), -Attr("insn","cmp x1, #0x0")]), Var("CF",Imm(1)), -NEQ(UNSIGNED(65,Var("#3",Imm(64))),PLUS(UNSIGNED(65,Var("R1",Imm(64))),Int(18446744073709551616,65)))), -Def(Tid(662, "%00000296"), Attrs([Attr("address","0x780"), -Attr("insn","cmp x1, #0x0")]), Var("ZF",Imm(1)), -EQ(Var("#3",Imm(64)),Int(0,64))), Def(Tid(666, "%0000029a"), - Attrs([Attr("address","0x780"), Attr("insn","cmp x1, #0x0")]), - Var("NF",Imm(1)), Extract(63,63,Var("#3",Imm(64)))), -Def(Tid(672, "%000002a0"), Attrs([Attr("address","0x784"), -Attr("insn","add x1, x0, #0xa")]), Var("R1",Imm(64)), -PLUS(Var("R0",Imm(64)),Int(10,64))), Def(Tid(678, "%000002a6"), - Attrs([Attr("address","0x788"), Attr("insn","sub x0, x0, #0xa")]), - Var("R0",Imm(64)), PLUS(Var("R0",Imm(64)),Int(18446744073709551606,64)))]), -Jmps([Goto(Tid(693, "%000002b5"), Attrs([Attr("address","0x78C"), -Attr("insn","csel x0, x0, x1, lt")]), NEQ(Var("NF",Imm(1)),Var("VF",Imm(1))), -Direct(Tid(685, "%000002ad"))), Goto(Tid(694, "%000002b6"), - Attrs([Attr("address","0x78C"), Attr("insn","csel x0, x0, x1, lt")]), - Int(1,1), Direct(Tid(689, "%000002b1")))])), Blk(Tid(689, "%000002b1"), - Attrs([]), Phis([]), Defs([Def(Tid(690, "%000002b2"), - Attrs([Attr("address","0x78C"), Attr("insn","csel x0, x0, x1, lt")]), - Var("R0",Imm(64)), Var("R1",Imm(64)))]), Jmps([Goto(Tid(696, "%000002b8"), - Attrs([Attr("address","0x78C"), Attr("insn","csel x0, x0, x1, lt")]), - Int(1,1), Direct(Tid(692, "%000002b4")))])), Blk(Tid(685, "%000002ad"), - Attrs([]), Phis([]), Defs([Def(Tid(686, "%000002ae"), - Attrs([Attr("address","0x78C"), Attr("insn","csel x0, x0, x1, lt")]), - Var("R0",Imm(64)), Var("R0",Imm(64)))]), Jmps([Goto(Tid(695, "%000002b7"), - Attrs([Attr("address","0x78C"), Attr("insn","csel x0, x0, x1, lt")]), - Int(1,1), Direct(Tid(692, "%000002b4")))])), Blk(Tid(692, "%000002b4"), - Attrs([]), Phis([]), Defs([]), Jmps([Call(Tid(701, "%000002bd"), - Attrs([Attr("address","0x790"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), Sub(Tid(1_856, "@h"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x7A0")]), "h", - Args([Arg(Tid(1_876, "%00000754"), Attrs([Attr("c.layout","[signed : 32]"), -Attr("c.data","Top:u32"), Attr("c.type","signed")]), Var("h_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(587, "@h"), - Attrs([Attr("address","0x7A0")]), Phis([]), Defs([Def(Tid(594, "%00000252"), - Attrs([Attr("address","0x7A0"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("#2",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(18446744073709551600,64))), -Def(Tid(600, "%00000258"), Attrs([Attr("address","0x7A0"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("#2",Imm(64)),Var("R29",Imm(64)),LittleEndian(),64)), -Def(Tid(606, "%0000025e"), Attrs([Attr("address","0x7A0"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("#2",Imm(64)),Int(8,64)),Var("R30",Imm(64)),LittleEndian(),64)), -Def(Tid(610, "%00000262"), Attrs([Attr("address","0x7A0"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("R31",Imm(64)), -Var("#2",Imm(64))), Def(Tid(616, "%00000268"), - Attrs([Attr("address","0x7A4"), Attr("insn","mov x2, x1")]), - Var("R2",Imm(64)), Var("R1",Imm(64))), Def(Tid(622, "%0000026e"), - Attrs([Attr("address","0x7A8"), Attr("insn","mov x1, x0")]), - Var("R1",Imm(64)), Var("R0",Imm(64))), Def(Tid(628, "%00000274"), - Attrs([Attr("address","0x7AC"), Attr("insn","mov x29, sp")]), - Var("R29",Imm(64)), Var("R31",Imm(64))), Def(Tid(635, "%0000027b"), - Attrs([Attr("address","0x7B0"), Attr("insn","add x0, x0, x2")]), - Var("R0",Imm(64)), PLUS(Var("R0",Imm(64)),Var("R2",Imm(64)))), -Def(Tid(640, "%00000280"), Attrs([Attr("address","0x7B4"), -Attr("insn","bl #-0x34")]), Var("R30",Imm(64)), Int(1976,64))]), -Jmps([Call(Tid(643, "%00000283"), Attrs([Attr("address","0x7B4"), -Attr("insn","bl #-0x34")]), Int(1,1), -(Direct(Tid(1_855, "@g")),Direct(Tid(709, "%000002c5"))))])), -Blk(Tid(709, "%000002c5"), Attrs([Attr("address","0x7B8")]), Phis([]), -Defs([Def(Tid(713, "%000002c9"), Attrs([Attr("address","0x7B8"), -Attr("insn","add x0, x0, #0x1")]), Var("R0",Imm(64)), -PLUS(Var("R0",Imm(64)),Int(1,64))), Def(Tid(720, "%000002d0"), - Attrs([Attr("address","0x7BC"), Attr("insn","ldp x29, x30, [sp], #0x10")]), - Var("R29",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(725, "%000002d5"), Attrs([Attr("address","0x7BC"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R30",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(729, "%000002d9"), Attrs([Attr("address","0x7BC"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(16,64)))]), Jmps([Call(Tid(734, "%000002de"), - Attrs([Attr("address","0x7C0"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), Sub(Tid(1_857, "@main"), - Attrs([Attr("c.proto","signed (*)(signed argc, const char** argv)"), -Attr("address","0x600"), Attr("stub","()")]), "main", - Args([Arg(Tid(1_877, "%00000755"), Attrs([Attr("c.layout","[signed : 32]"), -Attr("c.data","Top:u32"), Attr("c.type","signed")]), - Var("main_argc",Imm(32)), LOW(32,Var("R0",Imm(64))), In()), -Arg(Tid(1_878, "%00000756"), Attrs([Attr("c.layout","**[char : 8]"), -Attr("c.data","Top:u8 ptr ptr"), Attr("c.type"," const char**")]), - Var("main_argv",Imm(64)), Var("R1",Imm(64)), Both()), -Arg(Tid(1_879, "%00000757"), Attrs([Attr("c.layout","[signed : 32]"), -Attr("c.data","Top:u32"), Attr("c.type","signed")]), - Var("main_result",Imm(32)), LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(537, "@main"), Attrs([Attr("address","0x600")]), Phis([]), -Defs([Def(Tid(541, "%0000021d"), Attrs([Attr("address","0x600"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("#1",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(18446744073709551600,64))), -Def(Tid(547, "%00000223"), Attrs([Attr("address","0x600"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("#1",Imm(64)),Var("R29",Imm(64)),LittleEndian(),64)), -Def(Tid(553, "%00000229"), Attrs([Attr("address","0x600"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("#1",Imm(64)),Int(8,64)),Var("R30",Imm(64)),LittleEndian(),64)), -Def(Tid(557, "%0000022d"), Attrs([Attr("address","0x600"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("R31",Imm(64)), -Var("#1",Imm(64))), Def(Tid(562, "%00000232"), - Attrs([Attr("address","0x604"), Attr("insn","adrp x3, #131072")]), - Var("R3",Imm(64)), Int(131072,64)), Def(Tid(568, "%00000238"), - Attrs([Attr("address","0x608"), Attr("insn","mov x29, sp")]), - Var("R29",Imm(64)), Var("R31",Imm(64))), Def(Tid(575, "%0000023f"), - Attrs([Attr("address","0x60C"), Attr("insn","ldr x1, [x3, #0x38]")]), - Var("R1",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R3",Imm(64)),Int(56,64)),LittleEndian(),64)), -Def(Tid(581, "%00000245"), Attrs([Attr("address","0x610"), -Attr("insn","mov x0, x1")]), Var("R0",Imm(64)), Var("R1",Imm(64))), -Def(Tid(586, "%0000024a"), Attrs([Attr("address","0x614"), -Attr("insn","bl #0x18c")]), Var("R30",Imm(64)), Int(1560,64))]), -Jmps([Call(Tid(589, "%0000024d"), Attrs([Attr("address","0x614"), -Attr("insn","bl #0x18c")]), Int(1,1), -(Direct(Tid(1_856, "@h")),Direct(Tid(736, "%000002e0"))))])), -Blk(Tid(736, "%000002e0"), Attrs([Attr("address","0x618")]), Phis([]), -Defs([Def(Tid(742, "%000002e6"), Attrs([Attr("address","0x618"), -Attr("insn","str x0, [x3, #0x38]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R3",Imm(64)),Int(56,64)),Var("R0",Imm(64)),LittleEndian(),64)), -Def(Tid(749, "%000002ed"), Attrs([Attr("address","0x61C"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R29",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(754, "%000002f2"), Attrs([Attr("address","0x61C"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R30",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(758, "%000002f6"), Attrs([Attr("address","0x61C"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(16,64)))]), Jmps([Call(Tid(763, "%000002fb"), - Attrs([Attr("address","0x620"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), -Sub(Tid(1_858, "@register_tm_clones"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x6D0")]), - "register_tm_clones", Args([Arg(Tid(1_880, "%00000758"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("register_tm_clones_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(955, "@register_tm_clones"), Attrs([Attr("address","0x6D0")]), - Phis([]), Defs([Def(Tid(958, "%000003be"), Attrs([Attr("address","0x6D0"), -Attr("insn","adrp x0, #131072")]), Var("R0",Imm(64)), Int(131072,64)), -Def(Tid(964, "%000003c4"), Attrs([Attr("address","0x6D4"), -Attr("insn","add x0, x0, #0x30")]), Var("R0",Imm(64)), -PLUS(Var("R0",Imm(64)),Int(48,64))), Def(Tid(969, "%000003c9"), - Attrs([Attr("address","0x6D8"), Attr("insn","adrp x1, #131072")]), - Var("R1",Imm(64)), Int(131072,64)), Def(Tid(975, "%000003cf"), - Attrs([Attr("address","0x6DC"), Attr("insn","add x1, x1, #0x30")]), - Var("R1",Imm(64)), PLUS(Var("R1",Imm(64)),Int(48,64))), -Def(Tid(982, "%000003d6"), Attrs([Attr("address","0x6E0"), -Attr("insn","sub x1, x1, x0")]), Var("R1",Imm(64)), -PLUS(PLUS(Var("R1",Imm(64)),NOT(Var("R0",Imm(64)))),Int(1,64))), -Def(Tid(988, "%000003dc"), Attrs([Attr("address","0x6E4"), -Attr("insn","lsr x2, x1, #63")]), Var("R2",Imm(64)), -Concat(Int(0,63),Extract(63,63,Var("R1",Imm(64))))), -Def(Tid(995, "%000003e3"), Attrs([Attr("address","0x6E8"), -Attr("insn","add x1, x2, x1, asr #3")]), Var("R1",Imm(64)), -PLUS(Var("R2",Imm(64)),ARSHIFT(Var("R1",Imm(64)),Int(3,3)))), -Def(Tid(1_001, "%000003e9"), Attrs([Attr("address","0x6EC"), -Attr("insn","asr x1, x1, #1")]), Var("R1",Imm(64)), -SIGNED(64,Extract(63,1,Var("R1",Imm(64)))))]), -Jmps([Goto(Tid(1_007, "%000003ef"), Attrs([Attr("address","0x6F0"), -Attr("insn","cbz x1, #0x18")]), EQ(Var("R1",Imm(64)),Int(0,64)), -Direct(Tid(1_005, "%000003ed"))), Goto(Tid(1_859, "%00000743"), Attrs([]), - Int(1,1), Direct(Tid(1_181, "%0000049d")))])), Blk(Tid(1_181, "%0000049d"), - Attrs([Attr("address","0x6F4")]), Phis([]), -Defs([Def(Tid(1_184, "%000004a0"), Attrs([Attr("address","0x6F4"), -Attr("insn","adrp x2, #126976")]), Var("R2",Imm(64)), Int(126976,64)), -Def(Tid(1_191, "%000004a7"), Attrs([Attr("address","0x6F8"), -Attr("insn","ldr x2, [x2, #0xfe0]")]), Var("R2",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R2",Imm(64)),Int(4064,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(1_196, "%000004ac"), Attrs([Attr("address","0x6FC"), -Attr("insn","cbz x2, #0xc")]), EQ(Var("R2",Imm(64)),Int(0,64)), -Direct(Tid(1_005, "%000003ed"))), Goto(Tid(1_860, "%00000744"), Attrs([]), - Int(1,1), Direct(Tid(1_200, "%000004b0")))])), Blk(Tid(1_005, "%000003ed"), - Attrs([Attr("address","0x708")]), Phis([]), Defs([]), -Jmps([Call(Tid(1_013, "%000003f5"), Attrs([Attr("address","0x708"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))])), -Blk(Tid(1_200, "%000004b0"), Attrs([Attr("address","0x700")]), Phis([]), -Defs([Def(Tid(1_204, "%000004b4"), Attrs([Attr("address","0x700"), -Attr("insn","mov x16, x2")]), Var("R16",Imm(64)), Var("R2",Imm(64)))]), -Jmps([Call(Tid(1_209, "%000004b9"), Attrs([Attr("address","0x704"), -Attr("insn","br x16")]), Int(1,1), -(Indirect(Var("R16",Imm(64))),))]))]))]))) \ No newline at end of file diff --git a/src/test/procedure_summaries/procedure_summary4/gcc_O2/procedure_summary4.bir b/src/test/procedure_summaries/procedure_summary4/gcc_O2/procedure_summary4.bir deleted file mode 100644 index 8a6e1ffa5..000000000 --- a/src/test/procedure_summaries/procedure_summary4/gcc_O2/procedure_summary4.bir +++ /dev/null @@ -1,286 +0,0 @@ -00000745: program -0000072d: sub __cxa_finalize(__cxa_finalize_result) -00000746: __cxa_finalize_result :: out u32 = low:32[R0] - -00000499: -00000591: R16 := 0x20000 -00000598: R17 := mem[R16 + 8, el]:u64 -0000059e: R16 := R16 + 8 -000005a3: call R17 with noreturn - -0000072e: sub __do_global_dtors_aux(__do_global_dtors_aux_result) -00000747: __do_global_dtors_aux_result :: out u32 = low:32[R0] - -000003f7: -000003fb: #6 := R31 - 0x20 -00000401: mem := mem with [#6, el]:u64 <- R29 -00000407: mem := mem with [#6 + 8, el]:u64 <- R30 -0000040b: R31 := #6 -00000411: R29 := R31 -00000419: mem := mem with [R31 + 0x10, el]:u64 <- R19 -0000041e: R19 := 0x20000 -00000425: R0 := pad:64[mem[R19 + 0x30]] -0000042b: when 0:0[R0] goto %00000429 -0000072f: goto %00000462 - -00000462: -00000465: R0 := 0x1F000 -0000046c: R0 := mem[R0 + 0xFC8, el]:u64 -00000472: when R0 = 0 goto %00000470 -00000730: goto %00000489 - -00000489: -0000048c: R0 := 0x20000 -00000493: R0 := mem[R0 + 0x28, el]:u64 -00000498: R30 := 0x73C -0000049b: call @__cxa_finalize with return %00000470 - -00000470: -00000478: R30 := 0x740 -0000047a: call @deregister_tm_clones with return %0000047c - -0000047c: -0000047f: R0 := 1 -00000487: mem := mem with [R19 + 0x30] <- 7:0[R0] -00000731: goto %00000429 - -00000429: -00000433: R19 := mem[R31 + 0x10, el]:u64 -0000043a: R29 := mem[R31, el]:u64 -0000043f: R30 := mem[R31 + 8, el]:u64 -00000443: R31 := R31 + 0x20 -00000448: call R30 with noreturn - -00000732: sub __libc_start_main(__libc_start_main_main, __libc_start_main_arg2, __libc_start_main_arg3, __libc_start_main_auxv, __libc_start_main_result) -00000748: __libc_start_main_main :: in u64 = R0 -00000749: __libc_start_main_arg2 :: in u32 = low:32[R1] -0000074a: __libc_start_main_arg3 :: in out u64 = R2 -0000074b: __libc_start_main_auxv :: in out u64 = R3 -0000074c: __libc_start_main_result :: out u32 = low:32[R0] - -0000034a: -0000057b: R16 := 0x20000 -00000582: R17 := mem[R16, el]:u64 -00000588: R16 := R16 -0000058d: call R17 with noreturn - -00000733: sub _fini(_fini_result) -0000074d: _fini_result :: out u32 = low:32[R0] - -00000020: -00000026: #0 := R31 - 0x10 -0000002c: mem := mem with [#0, el]:u64 <- R29 -00000032: mem := mem with [#0 + 8, el]:u64 <- R30 -00000036: R31 := #0 -0000003c: R29 := R31 -00000043: R29 := mem[R31, el]:u64 -00000048: R30 := mem[R31 + 8, el]:u64 -0000004c: R31 := R31 + 0x10 -00000051: call R30 with noreturn - -00000734: sub _init(_init_result) -0000074e: _init_result :: out u32 = low:32[R0] - -00000663: -00000669: #8 := R31 - 0x10 -0000066f: mem := mem with [#8, el]:u64 <- R29 -00000675: mem := mem with [#8 + 8, el]:u64 <- R30 -00000679: R31 := #8 -0000067f: R29 := R31 -00000684: R30 := 0x590 -00000686: call @call_weak_fn with return %00000688 - -00000688: -0000068d: R29 := mem[R31, el]:u64 -00000692: R30 := mem[R31 + 8, el]:u64 -00000696: R31 := R31 + 0x10 -0000069b: call R30 with noreturn - -00000735: sub _start(_start_result) -0000074f: _start_result :: out u32 = low:32[R0] - -0000030b: -00000310: R29 := 0 -00000315: R30 := 0 -0000031b: R5 := R0 -00000322: R1 := mem[R31, el]:u64 -00000328: R2 := R31 + 8 -0000032e: R6 := R31 -00000333: R0 := 0x1F000 -0000033a: R0 := mem[R0 + 0xFD8, el]:u64 -0000033f: R3 := 0 -00000344: R4 := 0 -00000349: R30 := 0x670 -0000034c: call @__libc_start_main with return %0000034e - -0000034e: -00000351: R30 := 0x674 -00000354: call @abort with return %00000736 - -00000736: -00000737: call @call_weak_fn with noreturn - -00000738: sub abort() - - -00000352: -000005bd: R16 := 0x20000 -000005c4: R17 := mem[R16 + 0x18, el]:u64 -000005ca: R16 := R16 + 0x18 -000005cf: call R17 with noreturn - -00000739: sub call_weak_fn(call_weak_fn_result) -00000750: call_weak_fn_result :: out u32 = low:32[R0] - -00000356: -00000359: R0 := 0x1F000 -00000360: R0 := mem[R0 + 0xFD0, el]:u64 -00000366: when R0 = 0 goto %00000364 -0000073a: goto %000004d9 - -00000364: -0000036c: call R30 with noreturn - -000004d9: -000004dc: goto @__gmon_start__ - -000004da: -000005a7: R16 := 0x20000 -000005ae: R17 := mem[R16 + 0x10, el]:u64 -000005b4: R16 := R16 + 0x10 -000005b9: call R17 with noreturn - -0000073b: sub deregister_tm_clones(deregister_tm_clones_result) -00000751: deregister_tm_clones_result :: out u32 = low:32[R0] - -0000037a: -0000037d: R0 := 0x20000 -00000383: R0 := R0 + 0x30 -00000388: R1 := 0x20000 -0000038e: R1 := R1 + 0x30 -00000394: #4 := ~R0 -00000399: #5 := R1 + ~R0 -0000039f: VF := extend:65[#5 + 1] <> extend:65[R1] + extend:65[#4] + 1 -000003a5: CF := pad:65[#5 + 1] <> pad:65[R1] + pad:65[#4] + 1 -000003a9: ZF := #5 + 1 = 0 -000003ad: NF := 63:63[#5 + 1] -000003b3: when ZF goto %000003b1 -0000073c: goto %000004bb - -000004bb: -000004be: R1 := 0x1F000 -000004c5: R1 := mem[R1 + 0xFC0, el]:u64 -000004ca: when R1 = 0 goto %000003b1 -0000073d: goto %000004ce - -000003b1: -000003b9: call R30 with noreturn - -000004ce: -000004d2: R16 := R1 -000004d7: call R16 with noreturn - -0000073e: sub frame_dummy(frame_dummy_result) -00000752: frame_dummy_result :: out u32 = low:32[R0] - -00000450: -00000452: call @register_tm_clones with noreturn - -0000073f: sub g(g_result) -00000753: g_result :: out u32 = low:32[R0] - -00000281: -00000288: #3 := R1 -0000028d: VF := #3 <> R1 -00000292: CF := pad:65[#3] <> pad:65[R1] - 0x10000000000000000 -00000296: ZF := #3 = 0 -0000029a: NF := 63:63[#3] -000002a0: R1 := R0 + 0xA -000002a6: R0 := R0 - 0xA -000002b5: when NF <> VF goto %000002ad -000002b6: goto %000002b1 - -000002b1: -000002b2: R0 := R1 -000002b8: goto %000002b4 - -000002ad: -000002ae: R0 := R0 -000002b7: goto %000002b4 - -000002b4: -000002bd: call R30 with noreturn - -00000740: sub h(h_result) -00000754: h_result :: out u32 = low:32[R0] - -0000024b: -00000252: #2 := R31 - 0x10 -00000258: mem := mem with [#2, el]:u64 <- R29 -0000025e: mem := mem with [#2 + 8, el]:u64 <- R30 -00000262: R31 := #2 -00000268: R2 := R1 -0000026e: R1 := R0 -00000274: R29 := R31 -0000027b: R0 := R0 + R2 -00000280: R30 := 0x7B8 -00000283: call @g with return %000002c5 - -000002c5: -000002c9: R0 := R0 + 1 -000002d0: R29 := mem[R31, el]:u64 -000002d5: R30 := mem[R31 + 8, el]:u64 -000002d9: R31 := R31 + 0x10 -000002de: call R30 with noreturn - -00000741: sub main(main_argc, main_argv, main_result) -00000755: main_argc :: in u32 = low:32[R0] -00000756: main_argv :: in out u64 = R1 -00000757: main_result :: out u32 = low:32[R0] - -00000219: -0000021d: #1 := R31 - 0x10 -00000223: mem := mem with [#1, el]:u64 <- R29 -00000229: mem := mem with [#1 + 8, el]:u64 <- R30 -0000022d: R31 := #1 -00000232: R3 := 0x20000 -00000238: R29 := R31 -0000023f: R1 := mem[R3 + 0x38, el]:u64 -00000245: R0 := R1 -0000024a: R30 := 0x618 -0000024d: call @h with return %000002e0 - -000002e0: -000002e6: mem := mem with [R3 + 0x38, el]:u64 <- R0 -000002ed: R29 := mem[R31, el]:u64 -000002f2: R30 := mem[R31 + 8, el]:u64 -000002f6: R31 := R31 + 0x10 -000002fb: call R30 with noreturn - -00000742: sub register_tm_clones(register_tm_clones_result) -00000758: register_tm_clones_result :: out u32 = low:32[R0] - -000003bb: -000003be: R0 := 0x20000 -000003c4: R0 := R0 + 0x30 -000003c9: R1 := 0x20000 -000003cf: R1 := R1 + 0x30 -000003d6: R1 := R1 + ~R0 + 1 -000003dc: R2 := 0.63:63[R1] -000003e3: R1 := R2 + (R1 ~>> 3) -000003e9: R1 := extend:64[63:1[R1]] -000003ef: when R1 = 0 goto %000003ed -00000743: goto %0000049d - -0000049d: -000004a0: R2 := 0x1F000 -000004a7: R2 := mem[R2 + 0xFE0, el]:u64 -000004ac: when R2 = 0 goto %000003ed -00000744: goto %000004b0 - -000003ed: -000003f5: call R30 with noreturn - -000004b0: -000004b4: R16 := R2 -000004b9: call R16 with noreturn diff --git a/src/test/procedure_summaries/procedure_summary4/gcc_O2/procedure_summary4.gts b/src/test/procedure_summaries/procedure_summary4/gcc_O2/procedure_summary4.gts deleted file mode 100644 index c15f9d9a0..000000000 Binary files a/src/test/procedure_summaries/procedure_summary4/gcc_O2/procedure_summary4.gts and /dev/null differ diff --git a/src/test/procedure_summaries/procedure_summary4/gcc_O2/procedure_summary4.md5sum b/src/test/procedure_summaries/procedure_summary4/gcc_O2/procedure_summary4.md5sum new file mode 100644 index 000000000..b6647c3ec --- /dev/null +++ b/src/test/procedure_summaries/procedure_summary4/gcc_O2/procedure_summary4.md5sum @@ -0,0 +1,5 @@ +d40fdbda7bd2c52dcaaf7f9024995473 procedure_summaries/procedure_summary4/gcc_O2/a.out +2c5adc756bd882cba3162d6bbc8a80d2 procedure_summaries/procedure_summary4/gcc_O2/procedure_summary4.adt +f06328ce54998153360f3681d51861de procedure_summaries/procedure_summary4/gcc_O2/procedure_summary4.bir +a825b17e56f7bf75b7b36faac7cc35dc procedure_summaries/procedure_summary4/gcc_O2/procedure_summary4.relf +60be787c29b396c235e5f929bc863e50 procedure_summaries/procedure_summary4/gcc_O2/procedure_summary4.gts diff --git a/src/test/procedure_summaries/procedure_summary4/gcc_O2/procedure_summary4.relf b/src/test/procedure_summaries/procedure_summary4/gcc_O2/procedure_summary4.relf deleted file mode 100644 index a4cbc39b2..000000000 --- a/src/test/procedure_summaries/procedure_summary4/gcc_O2/procedure_summary4.relf +++ /dev/null @@ -1,127 +0,0 @@ - -Relocation section '.rela.dyn' at offset 0x460 contains 8 entries: - Offset Info Type Symbol's Value Symbol's Name + Addend -000000000001fdc8 0000000000000403 R_AARCH64_RELATIVE 760 -000000000001fdd0 0000000000000403 R_AARCH64_RELATIVE 70c -000000000001ffd8 0000000000000403 R_AARCH64_RELATIVE 600 -0000000000020028 0000000000000403 R_AARCH64_RELATIVE 20028 -000000000001ffc0 0000000400000401 R_AARCH64_GLOB_DAT 0000000000000000 _ITM_deregisterTMCloneTable + 0 -000000000001ffc8 0000000500000401 R_AARCH64_GLOB_DAT 0000000000000000 __cxa_finalize@GLIBC_2.17 + 0 -000000000001ffd0 0000000600000401 R_AARCH64_GLOB_DAT 0000000000000000 __gmon_start__ + 0 -000000000001ffe0 0000000800000401 R_AARCH64_GLOB_DAT 0000000000000000 _ITM_registerTMCloneTable + 0 - -Relocation section '.rela.plt' at offset 0x520 contains 4 entries: - Offset Info Type Symbol's Value Symbol's Name + Addend -0000000000020000 0000000300000402 R_AARCH64_JUMP_SLOT 0000000000000000 __libc_start_main@GLIBC_2.34 + 0 -0000000000020008 0000000500000402 R_AARCH64_JUMP_SLOT 0000000000000000 __cxa_finalize@GLIBC_2.17 + 0 -0000000000020010 0000000600000402 R_AARCH64_JUMP_SLOT 0000000000000000 __gmon_start__ + 0 -0000000000020018 0000000700000402 R_AARCH64_JUMP_SLOT 0000000000000000 abort@GLIBC_2.17 + 0 - -Symbol table '.dynsym' contains 9 entries: - Num: Value Size Type Bind Vis Ndx Name - 0: 0000000000000000 0 NOTYPE LOCAL DEFAULT UND - 1: 0000000000000580 0 SECTION LOCAL DEFAULT 11 .init - 2: 0000000000020020 0 SECTION LOCAL DEFAULT 23 .data - 3: 0000000000000000 0 FUNC GLOBAL DEFAULT UND __libc_start_main@GLIBC_2.34 (2) - 4: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_deregisterTMCloneTable - 5: 0000000000000000 0 FUNC WEAK DEFAULT UND __cxa_finalize@GLIBC_2.17 (3) - 6: 0000000000000000 0 NOTYPE WEAK DEFAULT UND __gmon_start__ - 7: 0000000000000000 0 FUNC GLOBAL DEFAULT UND abort@GLIBC_2.17 (3) - 8: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_registerTMCloneTable - -Symbol table '.symtab' contains 94 entries: - Num: Value Size Type Bind Vis Ndx Name - 0: 0000000000000000 0 NOTYPE LOCAL DEFAULT UND - 1: 0000000000000238 0 SECTION LOCAL DEFAULT 1 .interp - 2: 0000000000000254 0 SECTION LOCAL DEFAULT 2 .note.gnu.build-id - 3: 0000000000000278 0 SECTION LOCAL DEFAULT 3 .note.ABI-tag - 4: 0000000000000298 0 SECTION LOCAL DEFAULT 4 .gnu.hash - 5: 00000000000002b8 0 SECTION LOCAL DEFAULT 5 .dynsym - 6: 0000000000000390 0 SECTION LOCAL DEFAULT 6 .dynstr - 7: 000000000000041e 0 SECTION LOCAL DEFAULT 7 .gnu.version - 8: 0000000000000430 0 SECTION LOCAL DEFAULT 8 .gnu.version_r - 9: 0000000000000460 0 SECTION LOCAL DEFAULT 9 .rela.dyn - 10: 0000000000000520 0 SECTION LOCAL DEFAULT 10 .rela.plt - 11: 0000000000000580 0 SECTION LOCAL DEFAULT 11 .init - 12: 00000000000005a0 0 SECTION LOCAL DEFAULT 12 .plt - 13: 0000000000000600 0 SECTION LOCAL DEFAULT 13 .text - 14: 00000000000007c4 0 SECTION LOCAL DEFAULT 14 .fini - 15: 00000000000007d8 0 SECTION LOCAL DEFAULT 15 .rodata - 16: 00000000000007dc 0 SECTION LOCAL DEFAULT 16 .eh_frame_hdr - 17: 0000000000000828 0 SECTION LOCAL DEFAULT 17 .eh_frame - 18: 000000000001fdc8 0 SECTION LOCAL DEFAULT 18 .init_array - 19: 000000000001fdd0 0 SECTION LOCAL DEFAULT 19 .fini_array - 20: 000000000001fdd8 0 SECTION LOCAL DEFAULT 20 .dynamic - 21: 000000000001ffb8 0 SECTION LOCAL DEFAULT 21 .got - 22: 000000000001ffe8 0 SECTION LOCAL DEFAULT 22 .got.plt - 23: 0000000000020020 0 SECTION LOCAL DEFAULT 23 .data - 24: 0000000000020030 0 SECTION LOCAL DEFAULT 24 .bss - 25: 0000000000000000 0 SECTION LOCAL DEFAULT 25 .comment - 26: 0000000000000000 0 FILE LOCAL DEFAULT ABS abi-note.c - 27: 0000000000000278 0 NOTYPE LOCAL DEFAULT 3 $d - 28: 0000000000000278 32 OBJECT LOCAL DEFAULT 3 __abi_tag - 29: 0000000000000000 0 FILE LOCAL DEFAULT ABS start.os - 30: 0000000000000640 0 NOTYPE LOCAL DEFAULT 13 $x - 31: 000000000000083c 0 NOTYPE LOCAL DEFAULT 17 $d - 32: 0000000000000000 0 FILE LOCAL DEFAULT ABS init.c - 33: 00000000000007d8 0 NOTYPE LOCAL DEFAULT 15 $d - 34: 0000000000000000 0 FILE LOCAL DEFAULT ABS crti.o - 35: 0000000000000674 0 NOTYPE LOCAL DEFAULT 13 $x - 36: 0000000000000674 20 FUNC LOCAL DEFAULT 13 call_weak_fn - 37: 0000000000000580 0 NOTYPE LOCAL DEFAULT 11 $x - 38: 00000000000007c4 0 NOTYPE LOCAL DEFAULT 14 $x - 39: 0000000000000000 0 FILE LOCAL DEFAULT ABS crtn.o - 40: 0000000000000590 0 NOTYPE LOCAL DEFAULT 11 $x - 41: 00000000000007d0 0 NOTYPE LOCAL DEFAULT 14 $x - 42: 0000000000000000 0 FILE LOCAL DEFAULT ABS procedure_summary4.c - 43: 0000000000000780 0 NOTYPE LOCAL DEFAULT 13 $x - 44: 0000000000000600 0 NOTYPE LOCAL DEFAULT 13 $x - 45: 0000000000020038 0 NOTYPE LOCAL DEFAULT 24 $d - 46: 00000000000008b0 0 NOTYPE LOCAL DEFAULT 17 $d - 47: 0000000000000000 0 FILE LOCAL DEFAULT ABS crtstuff.c - 48: 00000000000006a0 0 NOTYPE LOCAL DEFAULT 13 $x - 49: 00000000000006a0 0 FUNC LOCAL DEFAULT 13 deregister_tm_clones - 50: 00000000000006d0 0 FUNC LOCAL DEFAULT 13 register_tm_clones - 51: 0000000000020028 0 NOTYPE LOCAL DEFAULT 23 $d - 52: 000000000000070c 0 FUNC LOCAL DEFAULT 13 __do_global_dtors_aux - 53: 0000000000020030 1 OBJECT LOCAL DEFAULT 24 completed.0 - 54: 000000000001fdd0 0 NOTYPE LOCAL DEFAULT 19 $d - 55: 000000000001fdd0 0 OBJECT LOCAL DEFAULT 19 __do_global_dtors_aux_fini_array_entry - 56: 0000000000000760 0 FUNC LOCAL DEFAULT 13 frame_dummy - 57: 000000000001fdc8 0 NOTYPE LOCAL DEFAULT 18 $d - 58: 000000000001fdc8 0 OBJECT LOCAL DEFAULT 18 __frame_dummy_init_array_entry - 59: 0000000000000850 0 NOTYPE LOCAL DEFAULT 17 $d - 60: 0000000000020030 0 NOTYPE LOCAL DEFAULT 24 $d - 61: 0000000000000000 0 FILE LOCAL DEFAULT ABS crtstuff.c - 62: 0000000000000904 0 NOTYPE LOCAL DEFAULT 17 $d - 63: 0000000000000904 0 OBJECT LOCAL DEFAULT 17 __FRAME_END__ - 64: 0000000000000000 0 FILE LOCAL DEFAULT ABS - 65: 000000000001fdd8 0 OBJECT LOCAL DEFAULT ABS _DYNAMIC - 66: 00000000000007dc 0 NOTYPE LOCAL DEFAULT 16 __GNU_EH_FRAME_HDR - 67: 000000000001ffb8 0 OBJECT LOCAL DEFAULT ABS _GLOBAL_OFFSET_TABLE_ - 68: 00000000000005a0 0 NOTYPE LOCAL DEFAULT 12 $x - 69: 0000000000000000 0 FUNC GLOBAL DEFAULT UND __libc_start_main@GLIBC_2.34 - 70: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_deregisterTMCloneTable - 71: 0000000000020020 0 NOTYPE WEAK DEFAULT 23 data_start - 72: 0000000000020030 0 NOTYPE GLOBAL DEFAULT 24 __bss_start__ - 73: 0000000000000000 0 FUNC WEAK DEFAULT UND __cxa_finalize@GLIBC_2.17 - 74: 00000000000007a0 36 FUNC GLOBAL DEFAULT 13 h - 75: 0000000000020040 0 NOTYPE GLOBAL DEFAULT 24 _bss_end__ - 76: 0000000000020030 0 NOTYPE GLOBAL DEFAULT 23 _edata - 77: 0000000000020038 8 OBJECT GLOBAL DEFAULT 24 x - 78: 00000000000007c4 0 FUNC GLOBAL HIDDEN 14 _fini - 79: 0000000000020040 0 NOTYPE GLOBAL DEFAULT 24 __bss_end__ - 80: 0000000000020020 0 NOTYPE GLOBAL DEFAULT 23 __data_start - 81: 0000000000000000 0 NOTYPE WEAK DEFAULT UND __gmon_start__ - 82: 0000000000020028 0 OBJECT GLOBAL HIDDEN 23 __dso_handle - 83: 0000000000000000 0 FUNC GLOBAL DEFAULT UND abort@GLIBC_2.17 - 84: 00000000000007d8 4 OBJECT GLOBAL DEFAULT 15 _IO_stdin_used - 85: 0000000000020040 0 NOTYPE GLOBAL DEFAULT 24 _end - 86: 0000000000000640 52 FUNC GLOBAL DEFAULT 13 _start - 87: 0000000000000780 20 FUNC GLOBAL DEFAULT 13 g - 88: 0000000000020040 0 NOTYPE GLOBAL DEFAULT 24 __end__ - 89: 0000000000020030 0 NOTYPE GLOBAL DEFAULT 24 __bss_start - 90: 0000000000000600 36 FUNC GLOBAL DEFAULT 13 main - 91: 0000000000020030 0 OBJECT GLOBAL HIDDEN 23 __TMC_END__ - 92: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_registerTMCloneTable - 93: 0000000000000580 0 FUNC GLOBAL HIDDEN 11 _init diff --git a/src/test/procedure_summaries/procedure_summary5/config.mk b/src/test/procedure_summaries/procedure_summary5/config.mk index 1786da8fd..fcf66282a 100644 --- a/src/test/procedure_summaries/procedure_summary5/config.mk +++ b/src/test/procedure_summaries/procedure_summary5/config.mk @@ -1 +1,3 @@ ENABLED_COMPILERS = gcc_O2 + +LIFT_ARTEFACTS := $(COMMON_ARTEFACTS) $(GTIRB_ARTEFACTS) diff --git a/src/test/procedure_summaries/procedure_summary5/gcc_O2/procedure_summary5.gts b/src/test/procedure_summaries/procedure_summary5/gcc_O2/procedure_summary5.gts deleted file mode 100644 index 3f43eaa36..000000000 Binary files a/src/test/procedure_summaries/procedure_summary5/gcc_O2/procedure_summary5.gts and /dev/null differ diff --git a/src/test/procedure_summaries/procedure_summary5/gcc_O2/procedure_summary5.md5sum b/src/test/procedure_summaries/procedure_summary5/gcc_O2/procedure_summary5.md5sum new file mode 100644 index 000000000..0c2272605 --- /dev/null +++ b/src/test/procedure_summaries/procedure_summary5/gcc_O2/procedure_summary5.md5sum @@ -0,0 +1,3 @@ +16b45c56a66493255a57ff3ec1f58d5f procedure_summaries/procedure_summary5/gcc_O2/a.out +e7cac78eea8207067df7fa9946846f51 procedure_summaries/procedure_summary5/gcc_O2/procedure_summary5.relf +6d8455ecf6b632b89d569de611d382d1 procedure_summaries/procedure_summary5/gcc_O2/procedure_summary5.gts diff --git a/src/test/procedure_summaries/procedure_summary5/gcc_O2/procedure_summary5.relf b/src/test/procedure_summaries/procedure_summary5/gcc_O2/procedure_summary5.relf deleted file mode 100644 index 2c151f797..000000000 --- a/src/test/procedure_summaries/procedure_summary5/gcc_O2/procedure_summary5.relf +++ /dev/null @@ -1,128 +0,0 @@ - -Relocation section '.rela.dyn' at offset 0x460 contains 8 entries: - Offset Info Type Symbol's Value Symbol's Name + Addend -000000000001fdc8 0000000000000403 R_AARCH64_RELATIVE 760 -000000000001fdd0 0000000000000403 R_AARCH64_RELATIVE 70c -000000000001ffd8 0000000000000403 R_AARCH64_RELATIVE 600 -0000000000020028 0000000000000403 R_AARCH64_RELATIVE 20028 -000000000001ffc0 0000000400000401 R_AARCH64_GLOB_DAT 0000000000000000 _ITM_deregisterTMCloneTable + 0 -000000000001ffc8 0000000500000401 R_AARCH64_GLOB_DAT 0000000000000000 __cxa_finalize@GLIBC_2.17 + 0 -000000000001ffd0 0000000600000401 R_AARCH64_GLOB_DAT 0000000000000000 __gmon_start__ + 0 -000000000001ffe0 0000000800000401 R_AARCH64_GLOB_DAT 0000000000000000 _ITM_registerTMCloneTable + 0 - -Relocation section '.rela.plt' at offset 0x520 contains 4 entries: - Offset Info Type Symbol's Value Symbol's Name + Addend -0000000000020000 0000000300000402 R_AARCH64_JUMP_SLOT 0000000000000000 __libc_start_main@GLIBC_2.34 + 0 -0000000000020008 0000000500000402 R_AARCH64_JUMP_SLOT 0000000000000000 __cxa_finalize@GLIBC_2.17 + 0 -0000000000020010 0000000600000402 R_AARCH64_JUMP_SLOT 0000000000000000 __gmon_start__ + 0 -0000000000020018 0000000700000402 R_AARCH64_JUMP_SLOT 0000000000000000 abort@GLIBC_2.17 + 0 - -Symbol table '.dynsym' contains 9 entries: - Num: Value Size Type Bind Vis Ndx Name - 0: 0000000000000000 0 NOTYPE LOCAL DEFAULT UND - 1: 0000000000000580 0 SECTION LOCAL DEFAULT 11 .init - 2: 0000000000020020 0 SECTION LOCAL DEFAULT 23 .data - 3: 0000000000000000 0 FUNC GLOBAL DEFAULT UND __libc_start_main@GLIBC_2.34 (2) - 4: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_deregisterTMCloneTable - 5: 0000000000000000 0 FUNC WEAK DEFAULT UND __cxa_finalize@GLIBC_2.17 (3) - 6: 0000000000000000 0 NOTYPE WEAK DEFAULT UND __gmon_start__ - 7: 0000000000000000 0 FUNC GLOBAL DEFAULT UND abort@GLIBC_2.17 (3) - 8: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_registerTMCloneTable - -Symbol table '.symtab' contains 95 entries: - Num: Value Size Type Bind Vis Ndx Name - 0: 0000000000000000 0 NOTYPE LOCAL DEFAULT UND - 1: 0000000000000238 0 SECTION LOCAL DEFAULT 1 .interp - 2: 0000000000000254 0 SECTION LOCAL DEFAULT 2 .note.gnu.build-id - 3: 0000000000000278 0 SECTION LOCAL DEFAULT 3 .note.ABI-tag - 4: 0000000000000298 0 SECTION LOCAL DEFAULT 4 .gnu.hash - 5: 00000000000002b8 0 SECTION LOCAL DEFAULT 5 .dynsym - 6: 0000000000000390 0 SECTION LOCAL DEFAULT 6 .dynstr - 7: 000000000000041e 0 SECTION LOCAL DEFAULT 7 .gnu.version - 8: 0000000000000430 0 SECTION LOCAL DEFAULT 8 .gnu.version_r - 9: 0000000000000460 0 SECTION LOCAL DEFAULT 9 .rela.dyn - 10: 0000000000000520 0 SECTION LOCAL DEFAULT 10 .rela.plt - 11: 0000000000000580 0 SECTION LOCAL DEFAULT 11 .init - 12: 00000000000005a0 0 SECTION LOCAL DEFAULT 12 .plt - 13: 0000000000000600 0 SECTION LOCAL DEFAULT 13 .text - 14: 00000000000007b8 0 SECTION LOCAL DEFAULT 14 .fini - 15: 00000000000007cc 0 SECTION LOCAL DEFAULT 15 .rodata - 16: 00000000000007d0 0 SECTION LOCAL DEFAULT 16 .eh_frame_hdr - 17: 0000000000000828 0 SECTION LOCAL DEFAULT 17 .eh_frame - 18: 000000000001fdc8 0 SECTION LOCAL DEFAULT 18 .init_array - 19: 000000000001fdd0 0 SECTION LOCAL DEFAULT 19 .fini_array - 20: 000000000001fdd8 0 SECTION LOCAL DEFAULT 20 .dynamic - 21: 000000000001ffb8 0 SECTION LOCAL DEFAULT 21 .got - 22: 000000000001ffe8 0 SECTION LOCAL DEFAULT 22 .got.plt - 23: 0000000000020020 0 SECTION LOCAL DEFAULT 23 .data - 24: 0000000000020030 0 SECTION LOCAL DEFAULT 24 .bss - 25: 0000000000000000 0 SECTION LOCAL DEFAULT 25 .comment - 26: 0000000000000000 0 FILE LOCAL DEFAULT ABS abi-note.c - 27: 0000000000000278 0 NOTYPE LOCAL DEFAULT 3 $d - 28: 0000000000000278 32 OBJECT LOCAL DEFAULT 3 __abi_tag - 29: 0000000000000000 0 FILE LOCAL DEFAULT ABS start.os - 30: 0000000000000640 0 NOTYPE LOCAL DEFAULT 13 $x - 31: 000000000000083c 0 NOTYPE LOCAL DEFAULT 17 $d - 32: 0000000000000000 0 FILE LOCAL DEFAULT ABS init.c - 33: 00000000000007cc 0 NOTYPE LOCAL DEFAULT 15 $d - 34: 0000000000000000 0 FILE LOCAL DEFAULT ABS crti.o - 35: 0000000000000674 0 NOTYPE LOCAL DEFAULT 13 $x - 36: 0000000000000674 20 FUNC LOCAL DEFAULT 13 call_weak_fn - 37: 0000000000000580 0 NOTYPE LOCAL DEFAULT 11 $x - 38: 00000000000007b8 0 NOTYPE LOCAL DEFAULT 14 $x - 39: 0000000000000000 0 FILE LOCAL DEFAULT ABS crtn.o - 40: 0000000000000590 0 NOTYPE LOCAL DEFAULT 11 $x - 41: 00000000000007c4 0 NOTYPE LOCAL DEFAULT 14 $x - 42: 0000000000000000 0 FILE LOCAL DEFAULT ABS procedure_summary5.c - 43: 0000000000000780 0 NOTYPE LOCAL DEFAULT 13 $x - 44: 0000000000000600 0 NOTYPE LOCAL DEFAULT 13 $x - 45: 0000000000020038 0 NOTYPE LOCAL DEFAULT 24 $d - 46: 00000000000008b0 0 NOTYPE LOCAL DEFAULT 17 $d - 47: 0000000000000000 0 FILE LOCAL DEFAULT ABS crtstuff.c - 48: 00000000000006a0 0 NOTYPE LOCAL DEFAULT 13 $x - 49: 00000000000006a0 0 FUNC LOCAL DEFAULT 13 deregister_tm_clones - 50: 00000000000006d0 0 FUNC LOCAL DEFAULT 13 register_tm_clones - 51: 0000000000020028 0 NOTYPE LOCAL DEFAULT 23 $d - 52: 000000000000070c 0 FUNC LOCAL DEFAULT 13 __do_global_dtors_aux - 53: 0000000000020030 1 OBJECT LOCAL DEFAULT 24 completed.0 - 54: 000000000001fdd0 0 NOTYPE LOCAL DEFAULT 19 $d - 55: 000000000001fdd0 0 OBJECT LOCAL DEFAULT 19 __do_global_dtors_aux_fini_array_entry - 56: 0000000000000760 0 FUNC LOCAL DEFAULT 13 frame_dummy - 57: 000000000001fdc8 0 NOTYPE LOCAL DEFAULT 18 $d - 58: 000000000001fdc8 0 OBJECT LOCAL DEFAULT 18 __frame_dummy_init_array_entry - 59: 0000000000000850 0 NOTYPE LOCAL DEFAULT 17 $d - 60: 0000000000020030 0 NOTYPE LOCAL DEFAULT 24 $d - 61: 0000000000000000 0 FILE LOCAL DEFAULT ABS crtstuff.c - 62: 000000000000091c 0 NOTYPE LOCAL DEFAULT 17 $d - 63: 000000000000091c 0 OBJECT LOCAL DEFAULT 17 __FRAME_END__ - 64: 0000000000000000 0 FILE LOCAL DEFAULT ABS - 65: 000000000001fdd8 0 OBJECT LOCAL DEFAULT ABS _DYNAMIC - 66: 00000000000007d0 0 NOTYPE LOCAL DEFAULT 16 __GNU_EH_FRAME_HDR - 67: 000000000001ffb8 0 OBJECT LOCAL DEFAULT ABS _GLOBAL_OFFSET_TABLE_ - 68: 00000000000005a0 0 NOTYPE LOCAL DEFAULT 12 $x - 69: 0000000000000000 0 FUNC GLOBAL DEFAULT UND __libc_start_main@GLIBC_2.34 - 70: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_deregisterTMCloneTable - 71: 0000000000020020 0 NOTYPE WEAK DEFAULT 23 data_start - 72: 0000000000020030 0 NOTYPE GLOBAL DEFAULT 24 __bss_start__ - 73: 0000000000000000 0 FUNC WEAK DEFAULT UND __cxa_finalize@GLIBC_2.17 - 74: 0000000000000780 28 FUNC GLOBAL DEFAULT 13 h - 75: 0000000000020040 0 NOTYPE GLOBAL DEFAULT 24 _bss_end__ - 76: 0000000000020030 0 NOTYPE GLOBAL DEFAULT 23 _edata - 77: 0000000000020038 8 OBJECT GLOBAL DEFAULT 24 x - 78: 00000000000007b8 0 FUNC GLOBAL HIDDEN 14 _fini - 79: 0000000000020040 0 NOTYPE GLOBAL DEFAULT 24 __bss_end__ - 80: 00000000000007b0 8 FUNC GLOBAL DEFAULT 13 f - 81: 0000000000020020 0 NOTYPE GLOBAL DEFAULT 23 __data_start - 82: 0000000000000000 0 NOTYPE WEAK DEFAULT UND __gmon_start__ - 83: 0000000000020028 0 OBJECT GLOBAL HIDDEN 23 __dso_handle - 84: 0000000000000000 0 FUNC GLOBAL DEFAULT UND abort@GLIBC_2.17 - 85: 00000000000007cc 4 OBJECT GLOBAL DEFAULT 15 _IO_stdin_used - 86: 0000000000020040 0 NOTYPE GLOBAL DEFAULT 24 _end - 87: 0000000000000640 52 FUNC GLOBAL DEFAULT 13 _start - 88: 00000000000007a0 16 FUNC GLOBAL DEFAULT 13 g - 89: 0000000000020040 0 NOTYPE GLOBAL DEFAULT 24 __end__ - 90: 0000000000020030 0 NOTYPE GLOBAL DEFAULT 24 __bss_start - 91: 0000000000000600 40 FUNC GLOBAL DEFAULT 13 main - 92: 0000000000020030 0 OBJECT GLOBAL HIDDEN 23 __TMC_END__ - 93: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_registerTMCloneTable - 94: 0000000000000580 0 FUNC GLOBAL HIDDEN 11 _init diff --git a/src/test/procedure_summaries/wp1/gcc_O2/wp1.adt b/src/test/procedure_summaries/wp1/gcc_O2/wp1.adt deleted file mode 100644 index ea81d657c..000000000 --- a/src/test/procedure_summaries/wp1/gcc_O2/wp1.adt +++ /dev/null @@ -1,618 +0,0 @@ -Project(Attrs([Attr("filename","\"a.out\""), -Attr("image-specification","(declare abi (name str))\n(declare arch (name str))\n(declare base-address (addr int))\n(declare bias (off int))\n(declare bits (size int))\n(declare code-region (addr int) (size int) (off int))\n(declare code-start (addr int))\n(declare entry-point (addr int))\n(declare external-reference (addr int) (name str))\n(declare format (name str))\n(declare is-executable (flag bool))\n(declare is-little-endian (flag bool))\n(declare llvm:base-address (addr int))\n(declare llvm:code-entry (name str) (off int) (size int))\n(declare llvm:coff-import-library (name str))\n(declare llvm:coff-virtual-section-header (name str) (addr int) (size int))\n(declare llvm:elf-program-header (name str) (off int) (size int))\n(declare llvm:elf-program-header-flags (name str) (ld bool) (r bool) \n (w bool) (x bool))\n(declare llvm:elf-virtual-program-header (name str) (addr int) (size int))\n(declare llvm:entry-point (addr int))\n(declare llvm:macho-symbol (name str) (value int))\n(declare llvm:name-reference (at int) (name str))\n(declare llvm:relocation (at int) (addr int))\n(declare llvm:section-entry (name str) (addr int) (size int) (off int))\n(declare llvm:section-flags (name str) (r bool) (w bool) (x bool))\n(declare llvm:segment-command (name str) (off int) (size int))\n(declare llvm:segment-command-flags (name str) (r bool) (w bool) (x bool))\n(declare llvm:symbol-entry (name str) (addr int) (size int) (off int)\n (value int))\n(declare llvm:virtual-segment-command (name str) (addr int) (size int))\n(declare mapped (addr int) (size int) (off int))\n(declare named-region (addr int) (size int) (name str))\n(declare named-symbol (addr int) (name str))\n(declare require (name str))\n(declare section (addr int) (size int))\n(declare segment (addr int) (size int) (r bool) (w bool) (x bool))\n(declare subarch (name str))\n(declare symbol-chunk (addr int) (size int) (root int))\n(declare symbol-value (addr int) (value int))\n(declare system (name str))\n(declare vendor (name str))\n\n(abi unknown)\n(arch aarch64)\n(base-address 0)\n(bias 0)\n(bits 64)\n(code-region 1952 20 1952)\n(code-region 1536 416 1536)\n(code-region 1440 96 1440)\n(code-region 1408 24 1408)\n(code-start 1652)\n(code-start 1920)\n(code-start 1600)\n(code-start 1536)\n(entry-point 1600)\n(external-reference 131008 _ITM_deregisterTMCloneTable)\n(external-reference 131016 __cxa_finalize)\n(external-reference 131024 __gmon_start__)\n(external-reference 131040 _ITM_registerTMCloneTable)\n(external-reference 131072 __libc_start_main)\n(external-reference 131080 __cxa_finalize)\n(external-reference 131088 __gmon_start__)\n(external-reference 131096 abort)\n(format elf)\n(is-executable true)\n(is-little-endian true)\n(llvm:base-address 0)\n(llvm:code-entry abort 0 0)\n(llvm:code-entry __cxa_finalize 0 0)\n(llvm:code-entry __libc_start_main 0 0)\n(llvm:code-entry _init 1408 0)\n(llvm:code-entry main 1536 44)\n(llvm:code-entry _start 1600 52)\n(llvm:code-entry abort@GLIBC_2.17 0 0)\n(llvm:code-entry branch 1920 32)\n(llvm:code-entry _fini 1952 0)\n(llvm:code-entry __cxa_finalize@GLIBC_2.17 0 0)\n(llvm:code-entry __libc_start_main@GLIBC_2.34 0 0)\n(llvm:code-entry frame_dummy 1888 0)\n(llvm:code-entry __do_global_dtors_aux 1804 0)\n(llvm:code-entry register_tm_clones 1744 0)\n(llvm:code-entry deregister_tm_clones 1696 0)\n(llvm:code-entry call_weak_fn 1652 20)\n(llvm:code-entry .fini 1952 20)\n(llvm:code-entry .text 1536 416)\n(llvm:code-entry .plt 1440 96)\n(llvm:code-entry .init 1408 24)\n(llvm:elf-program-header 08 64968 568)\n(llvm:elf-program-header 07 0 0)\n(llvm:elf-program-header 06 1976 68)\n(llvm:elf-program-header 05 596 68)\n(llvm:elf-program-header 04 64984 480)\n(llvm:elf-program-header 03 64968 616)\n(llvm:elf-program-header 02 0 2240)\n(llvm:elf-program-header 01 568 27)\n(llvm:elf-program-header 00 64 504)\n(llvm:elf-program-header-flags 08 false true false false)\n(llvm:elf-program-header-flags 07 false true true false)\n(llvm:elf-program-header-flags 06 false true false false)\n(llvm:elf-program-header-flags 05 false true false false)\n(llvm:elf-program-header-flags 04 false true true false)\n(llvm:elf-program-header-flags 03 true true true false)\n(llvm:elf-program-header-flags 02 true true false true)\n(llvm:elf-program-header-flags 01 false true false false)\n(llvm:elf-program-header-flags 00 false true false false)\n(llvm:elf-virtual-program-header 08 130504 568)\n(llvm:elf-virtual-program-header 07 0 0)\n(llvm:elf-virtual-program-header 06 1976 68)\n(llvm:elf-virtual-program-header 05 596 68)\n(llvm:elf-virtual-program-header 04 130520 480)\n(llvm:elf-virtual-program-header 03 130504 640)\n(llvm:elf-virtual-program-header 02 0 2240)\n(llvm:elf-virtual-program-header 01 568 27)\n(llvm:elf-virtual-program-header 00 64 504)\n(llvm:entry-point 1600)\n(llvm:name-reference 131096 abort)\n(llvm:name-reference 131088 __gmon_start__)\n(llvm:name-reference 131080 __cxa_finalize)\n(llvm:name-reference 131072 __libc_start_main)\n(llvm:name-reference 131040 _ITM_registerTMCloneTable)\n(llvm:name-reference 131024 __gmon_start__)\n(llvm:name-reference 131016 __cxa_finalize)\n(llvm:name-reference 131008 _ITM_deregisterTMCloneTable)\n(llvm:section-entry .shstrtab 0 259 68429)\n(llvm:section-entry .strtab 0 565 67864)\n(llvm:section-entry .symtab 0 2256 65608)\n(llvm:section-entry .comment 0 18 65584)\n(llvm:section-entry .bss 131120 24 65584)\n(llvm:section-entry .data 131104 16 65568)\n(llvm:section-entry .got.plt 131048 56 65512)\n(llvm:section-entry .got 131000 48 65464)\n(llvm:section-entry .dynamic 130520 480 64984)\n(llvm:section-entry .fini_array 130512 8 64976)\n(llvm:section-entry .init_array 130504 8 64968)\n(llvm:section-entry .eh_frame 2048 192 2048)\n(llvm:section-entry .eh_frame_hdr 1976 68 1976)\n(llvm:section-entry .rodata 1972 4 1972)\n(llvm:section-entry .fini 1952 20 1952)\n(llvm:section-entry .text 1536 416 1536)\n(llvm:section-entry .plt 1440 96 1440)\n(llvm:section-entry .init 1408 24 1408)\n(llvm:section-entry .rela.plt 1312 96 1312)\n(llvm:section-entry .rela.dyn 1120 192 1120)\n(llvm:section-entry .gnu.version_r 1072 48 1072)\n(llvm:section-entry .gnu.version 1054 18 1054)\n(llvm:section-entry .dynstr 912 141 912)\n(llvm:section-entry .dynsym 696 216 696)\n(llvm:section-entry .gnu.hash 664 28 664)\n(llvm:section-entry .note.ABI-tag 632 32 632)\n(llvm:section-entry .note.gnu.build-id 596 36 596)\n(llvm:section-entry .interp 568 27 568)\n(llvm:section-flags .shstrtab true false false)\n(llvm:section-flags .strtab true false false)\n(llvm:section-flags .symtab true false false)\n(llvm:section-flags .comment true false false)\n(llvm:section-flags .bss true true false)\n(llvm:section-flags .data true true false)\n(llvm:section-flags .got.plt true true false)\n(llvm:section-flags .got true true false)\n(llvm:section-flags .dynamic true true false)\n(llvm:section-flags .fini_array true true false)\n(llvm:section-flags .init_array true true false)\n(llvm:section-flags .eh_frame true false false)\n(llvm:section-flags .eh_frame_hdr true false false)\n(llvm:section-flags .rodata true false false)\n(llvm:section-flags .fini true false true)\n(llvm:section-flags .text true false true)\n(llvm:section-flags .plt true false true)\n(llvm:section-flags .init true false true)\n(llvm:section-flags .rela.plt true false false)\n(llvm:section-flags .rela.dyn true false false)\n(llvm:section-flags .gnu.version_r true false false)\n(llvm:section-flags .gnu.version true false false)\n(llvm:section-flags .dynstr true false false)\n(llvm:section-flags .dynsym true false false)\n(llvm:section-flags .gnu.hash true false false)\n(llvm:section-flags .note.ABI-tag true false false)\n(llvm:section-flags .note.gnu.build-id true false false)\n(llvm:section-flags .interp true false false)\n(llvm:symbol-entry abort 0 0 0 0)\n(llvm:symbol-entry __cxa_finalize 0 0 0 0)\n(llvm:symbol-entry __libc_start_main 0 0 0 0)\n(llvm:symbol-entry _init 1408 0 1408 1408)\n(llvm:symbol-entry main 1536 44 1536 1536)\n(llvm:symbol-entry _start 1600 52 1600 1600)\n(llvm:symbol-entry abort@GLIBC_2.17 0 0 0 0)\n(llvm:symbol-entry branch 1920 32 1920 1920)\n(llvm:symbol-entry _fini 1952 0 1952 1952)\n(llvm:symbol-entry __cxa_finalize@GLIBC_2.17 0 0 0 0)\n(llvm:symbol-entry __libc_start_main@GLIBC_2.34 0 0 0 0)\n(llvm:symbol-entry frame_dummy 1888 0 1888 1888)\n(llvm:symbol-entry __do_global_dtors_aux 1804 0 1804 1804)\n(llvm:symbol-entry register_tm_clones 1744 0 1744 1744)\n(llvm:symbol-entry deregister_tm_clones 1696 0 1696 1696)\n(llvm:symbol-entry call_weak_fn 1652 20 1652 1652)\n(mapped 0 2240 0)\n(mapped 130504 616 64968)\n(named-region 0 2240 02)\n(named-region 130504 640 03)\n(named-region 568 27 .interp)\n(named-region 596 36 .note.gnu.build-id)\n(named-region 632 32 .note.ABI-tag)\n(named-region 664 28 .gnu.hash)\n(named-region 696 216 .dynsym)\n(named-region 912 141 .dynstr)\n(named-region 1054 18 .gnu.version)\n(named-region 1072 48 .gnu.version_r)\n(named-region 1120 192 .rela.dyn)\n(named-region 1312 96 .rela.plt)\n(named-region 1408 24 .init)\n(named-region 1440 96 .plt)\n(named-region 1536 416 .text)\n(named-region 1952 20 .fini)\n(named-region 1972 4 .rodata)\n(named-region 1976 68 .eh_frame_hdr)\n(named-region 2048 192 .eh_frame)\n(named-region 130504 8 .init_array)\n(named-region 130512 8 .fini_array)\n(named-region 130520 480 .dynamic)\n(named-region 131000 48 .got)\n(named-region 131048 56 .got.plt)\n(named-region 131104 16 .data)\n(named-region 131120 24 .bss)\n(named-region 0 18 .comment)\n(named-region 0 2256 .symtab)\n(named-region 0 565 .strtab)\n(named-region 0 259 .shstrtab)\n(named-symbol 1652 call_weak_fn)\n(named-symbol 1696 deregister_tm_clones)\n(named-symbol 1744 register_tm_clones)\n(named-symbol 1804 __do_global_dtors_aux)\n(named-symbol 1888 frame_dummy)\n(named-symbol 0 __libc_start_main@GLIBC_2.34)\n(named-symbol 0 __cxa_finalize@GLIBC_2.17)\n(named-symbol 1952 _fini)\n(named-symbol 1920 branch)\n(named-symbol 0 abort@GLIBC_2.17)\n(named-symbol 1600 _start)\n(named-symbol 1536 main)\n(named-symbol 1408 _init)\n(named-symbol 0 __libc_start_main)\n(named-symbol 0 __cxa_finalize)\n(named-symbol 0 abort)\n(require libc.so.6)\n(section 568 27)\n(section 596 36)\n(section 632 32)\n(section 664 28)\n(section 696 216)\n(section 912 141)\n(section 1054 18)\n(section 1072 48)\n(section 1120 192)\n(section 1312 96)\n(section 1408 24)\n(section 1440 96)\n(section 1536 416)\n(section 1952 20)\n(section 1972 4)\n(section 1976 68)\n(section 2048 192)\n(section 130504 8)\n(section 130512 8)\n(section 130520 480)\n(section 131000 48)\n(section 131048 56)\n(section 131104 16)\n(section 131120 24)\n(section 0 18)\n(section 0 2256)\n(section 0 565)\n(section 0 259)\n(segment 0 2240 true false true)\n(segment 130504 640 true true false)\n(subarch v8)\n(symbol-chunk 1652 20 1652)\n(symbol-chunk 1920 32 1920)\n(symbol-chunk 1600 52 1600)\n(symbol-chunk 1536 44 1536)\n(symbol-value 1652 1652)\n(symbol-value 1696 1696)\n(symbol-value 1744 1744)\n(symbol-value 1804 1804)\n(symbol-value 1888 1888)\n(symbol-value 1952 1952)\n(symbol-value 1920 1920)\n(symbol-value 1600 1600)\n(symbol-value 1536 1536)\n(symbol-value 1408 1408)\n(symbol-value 0 0)\n(system \"\")\n(vendor \"\")\n"), -Attr("abi-name","\"aarch64-linux-gnu-elf\"")]), -Sections([Section(".shstrtab", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x40\x06\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x50\x0c\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x38\x00\x09\x00\x40\x00\x1d\x00\x1c\x00\x06\x00\x00\x00\x04\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x04\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xc0\x08\x00\x00\x00\x00\x00\x00\xc0\x08\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x01\x00\x00\x00\x06\x00\x00\x00\xc8\xfd\x00\x00\x00\x00\x00\x00\xc8\xfd\x01\x00\x00\x00\x00\x00\xc8\xfd\x01"), -Section(".strtab", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x40\x06\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x50\x0c\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x38\x00\x09\x00\x40\x00\x1d\x00\x1c\x00\x06\x00\x00\x00\x04\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x04\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xc0\x08\x00\x00\x00\x00\x00\x00\xc0\x08\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x01\x00\x00\x00\x06\x00\x00\x00\xc8\xfd\x00\x00\x00\x00\x00\x00\xc8\xfd\x01\x00\x00\x00\x00\x00\xc8\xfd\x01\x00\x00\x00\x00\x00\x68\x02\x00\x00\x00\x00\x00\x00\x80\x02\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x02\x00\x00\x00\x06\x00\x00\x00\xd8\xfd\x00\x00\x00\x00\x00\x00\xd8\xfd\x01\x00\x00\x00\x00\x00\xd8\xfd\x01\x00\x00\x00\x00\x00\xe0\x01\x00\x00\x00\x00\x00\x00\xe0\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x04\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x50\xe5\x74\x64\x04\x00\x00\x00\xb8\x07\x00\x00\x00\x00\x00\x00\xb8\x07\x00\x00\x00\x00\x00\x00\xb8\x07\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x51\xe5\x74\x64\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x52\xe5\x74\x64\x04\x00\x00\x00\xc8\xfd\x00\x00\x00\x00\x00\x00\xc8\xfd\x01\x00\x00\x00\x00\x00\xc8\xfd\x01\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00"), -Section(".comment", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00"), -Section(".interp", 0x238, "\x2f\x6c\x69\x62\x2f\x6c\x64\x2d\x6c\x69\x6e\x75\x78\x2d\x61\x61\x72\x63\x68\x36\x34\x2e\x73\x6f\x2e\x31\x00"), -Section(".note.gnu.build-id", 0x254, "\x04\x00\x00\x00\x14\x00\x00\x00\x03\x00\x00\x00\x47\x4e\x55\x00\x81\x43\x46\xb4\xf7\xed\x5d\x6b\x0b\xb9\x77\x49\x24\x04\xd8\x7d\x4f\xac\x7a\xcf"), -Section(".note.ABI-tag", 0x278, "\x04\x00\x00\x00\x10\x00\x00\x00\x01\x00\x00\x00\x47\x4e\x55\x00\x00\x00\x00\x00\x03\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00"), -Section(".gnu.hash", 0x298, "\x01\x00\x00\x00\x01\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".dynsym", 0x2B8, "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x0b\x00\x80\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x17\x00\x20\x00\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x48\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x13\x00\x00\x00\x22\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x22\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x73\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".dynstr", 0x390, "\x00\x5f\x5f\x6c\x69\x62\x63\x5f\x73\x74\x61\x72\x74\x5f\x6d\x61\x69\x6e\x00\x5f\x5f\x63\x78\x61\x5f\x66\x69\x6e\x61\x6c\x69\x7a\x65\x00\x61\x62\x6f\x72\x74\x00\x6c\x69\x62\x63\x2e\x73\x6f\x2e\x36\x00\x47\x4c\x49\x42\x43\x5f\x32\x2e\x31\x37\x00\x47\x4c\x49\x42\x43\x5f\x32\x2e\x33\x34\x00\x5f\x49\x54\x4d\x5f\x64\x65\x72\x65\x67\x69\x73\x74\x65\x72\x54\x4d\x43\x6c\x6f\x6e\x65\x54\x61\x62\x6c\x65\x00\x5f\x5f\x67\x6d\x6f\x6e\x5f\x73\x74\x61\x72\x74\x5f\x5f\x00\x5f\x49\x54\x4d\x5f\x72\x65\x67\x69\x73\x74\x65\x72\x54\x4d\x43\x6c\x6f\x6e\x65\x54\x61\x62\x6c\x65\x00"), -Section(".gnu.version", 0x41E, "\x00\x00\x00\x00\x00\x00\x02\x00\x01\x00\x03\x00\x01\x00\x03\x00\x01\x00"), -Section(".gnu.version_r", 0x430, "\x01\x00\x02\x00\x28\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x97\x91\x96\x06\x00\x00\x03\x00\x32\x00\x00\x00\x10\x00\x00\x00\xb4\x91\x96\x06\x00\x00\x02\x00\x3d\x00\x00\x00\x00\x00\x00\x00"), -Section(".rela.dyn", 0x460, "\xc8\xfd\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x60\x07\x00\x00\x00\x00\x00\x00\xd0\xfd\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x0c\x07\x00\x00\x00\x00\x00\x00\xd8\xff\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x00\x06\x00\x00\x00\x00\x00\x00\x28\x00\x02\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x28\x00\x02\x00\x00\x00\x00\x00\xc0\xff\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xc8\xff\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xd0\xff\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe0\xff\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".rela.plt", 0x520, "\x00\x00\x02\x00\x00\x00\x00\x00\x02\x04\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x08\x00\x02\x00\x00\x00\x00\x00\x02\x04\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x02\x00\x00\x00\x00\x00\x02\x04\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x18\x00\x02\x00\x00\x00\x00\x00\x02\x04\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".init", 0x580, "\x1f\x20\x03\xd5\xfd\x7b\xbf\xa9\xfd\x03\x00\x91\x3a\x00\x00\x94\xfd\x7b\xc1\xa8\xc0\x03\x5f\xd6"), -Section(".plt", 0x5A0, "\xf0\x7b\xbf\xa9\xf0\x00\x00\xf0\x11\xfe\x47\xf9\x10\xe2\x3f\x91\x20\x02\x1f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x10\x01\x00\x90\x11\x02\x40\xf9\x10\x02\x00\x91\x20\x02\x1f\xd6\x10\x01\x00\x90\x11\x06\x40\xf9\x10\x22\x00\x91\x20\x02\x1f\xd6\x10\x01\x00\x90\x11\x0a\x40\xf9\x10\x42\x00\x91\x20\x02\x1f\xd6\x10\x01\x00\x90\x11\x0e\x40\xf9\x10\x62\x00\x91\x20\x02\x1f\xd6"), -Section(".text", 0x600, "\x01\x01\x00\x90\x23\xe0\x00\x91\xfd\x7b\xbf\xa9\x20\x00\x80\xd2\xfd\x03\x00\x91\x22\x1c\x40\xf9\x61\x04\x40\xf9\x59\x00\x00\x94\xfd\x7b\xc1\xa8\x60\x04\x00\xf9\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1d\x00\x80\xd2\x1e\x00\x80\xd2\xe5\x03\x00\xaa\xe1\x03\x40\xf9\xe2\x23\x00\x91\xe6\x03\x00\x91\xe0\x00\x00\xf0\x00\xec\x47\xf9\x03\x00\x80\xd2\x04\x00\x80\xd2\xd5\xff\xff\x97\xe0\xff\xff\x97\xe0\x00\x00\xf0\x00\xe8\x47\xf9\x40\x00\x00\xb4\xd8\xff\xff\x17\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x00\x01\x00\x90\x00\xc0\x00\x91\x01\x01\x00\x90\x21\xc0\x00\x91\x3f\x00\x00\xeb\xc0\x00\x00\x54\xe1\x00\x00\xf0\x21\xe0\x47\xf9\x61\x00\x00\xb4\xf0\x03\x01\xaa\x00\x02\x1f\xd6\xc0\x03\x5f\xd6\x00\x01\x00\x90\x00\xc0\x00\x91\x01\x01\x00\x90\x21\xc0\x00\x91\x21\x00\x00\xcb\x22\xfc\x7f\xd3\x41\x0c\x81\x8b\x21\xfc\x41\x93\xc1\x00\x00\xb4\xe2\x00\x00\xf0\x42\xf0\x47\xf9\x62\x00\x00\xb4\xf0\x03\x02\xaa\x00\x02\x1f\xd6\xc0\x03\x5f\xd6\xfd\x7b\xbe\xa9\xfd\x03\x00\x91\xf3\x0b\x00\xf9\x13\x01\x00\x90\x60\xc2\x40\x39\x40\x01\x00\x37\xe0\x00\x00\xf0\x00\xe4\x47\xf9\x80\x00\x00\xb4\x00\x01\x00\x90\x00\x14\x40\xf9\xa6\xff\xff\x97\xd9\xff\xff\x97\x20\x00\x80\x52\x60\xc2\x00\x39\xf3\x0b\x40\xf9\xfd\x7b\xc2\xa8\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\xdc\xff\xff\x17\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x00\x00\xf1\x8d\x00\x00\x54\x3f\x00\x00\xf1\x00\xc0\x81\x9a\xc0\x03\x5f\xd6\x5f\x00\x00\xf1\x40\xc0\x80\x9a\xc0\x03\x5f\xd6"), -Section(".fini", 0x7A0, "\x1f\x20\x03\xd5\xfd\x7b\xbf\xa9\xfd\x03\x00\x91\xfd\x7b\xc1\xa8\xc0\x03\x5f\xd6"), -Section(".rodata", 0x7B4, "\x01\x00\x02\x00"), -Section(".eh_frame_hdr", 0x7B8, "\x01\x1b\x03\x3b\x44\x00\x00\x00\x07\x00\x00\x00\x48\xfe\xff\xff\xe4\x00\x00\x00\x88\xfe\xff\xff\x5c\x00\x00\x00\xe8\xfe\xff\xff\x70\x00\x00\x00\x18\xff\xff\xff\x84\x00\x00\x00\x54\xff\xff\xff\x98\x00\x00\x00\xa8\xff\xff\xff\xbc\x00\x00\x00\xc8\xff\xff\xff\xd0\x00\x00\x00"), -Section(".eh_frame", 0x800, "\x10\x00\x00\x00\x00\x00\x00\x00\x01\x7a\x52\x00\x04\x78\x1e\x01\x1b\x0c\x1f\x00\x10\x00\x00\x00\x18\x00\x00\x00\x24\xfe\xff\xff\x34\x00\x00\x00\x00\x41\x07\x1e\x10\x00\x00\x00\x2c\x00\x00\x00\x70\xfe\xff\xff\x30\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x40\x00\x00\x00\x8c\xfe\xff\xff\x3c\x00\x00\x00\x00\x00\x00\x00\x20\x00\x00\x00\x54\x00\x00\x00\xb4\xfe\xff\xff\x48\x00\x00\x00\x00\x41\x0e\x20\x9d\x04\x9e\x03\x42\x93\x02\x4e\xde\xdd\xd3\x0e\x00\x00\x00\x00\x10\x00\x00\x00\x78\x00\x00\x00\xe4\xfe\xff\xff\x04\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x8c\x00\x00\x00\xf0\xfe\xff\xff\x20\x00\x00\x00\x00\x00\x00\x00\x1c\x00\x00\x00\xa0\x00\x00\x00\x5c\xfd\xff\xff\x2c\x00\x00\x00\x00\x43\x0e\x10\x9d\x02\x9e\x01\x46\xde\xdd\x0e\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".fini_array", 0x1FDD0, "\x0c\x07\x00\x00\x00\x00\x00\x00"), -Section(".dynamic", 0x1FDD8, "\x01\x00\x00\x00\x00\x00\x00\x00\x28\x00\x00\x00\x00\x00\x00\x00\x0c\x00\x00\x00\x00\x00\x00\x00\x80\x05\x00\x00\x00\x00\x00\x00\x0d\x00\x00\x00\x00\x00\x00\x00\xa0\x07\x00\x00\x00\x00\x00\x00\x19\x00\x00\x00\x00\x00\x00\x00\xc8\xfd\x01\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x1a\x00\x00\x00\x00\x00\x00\x00\xd0\xfd\x01\x00\x00\x00\x00\x00\x1c\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\xf5\xfe\xff\x6f\x00\x00\x00\x00\x98\x02\x00\x00\x00\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x90\x03\x00\x00\x00\x00\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\xb8\x02\x00\x00\x00\x00\x00\x00\x0a\x00\x00\x00\x00\x00\x00\x00\x8d\x00\x00\x00\x00\x00\x00\x00\x0b\x00\x00\x00\x00\x00\x00\x00\x18\x00\x00\x00\x00\x00\x00\x00\x15\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\xe8\xff\x01\x00\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x60\x00\x00\x00\x00\x00\x00\x00\x14\x00\x00\x00\x00\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x17\x00\x00\x00\x00\x00\x00\x00\x20\x05\x00\x00\x00\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x60\x04\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\xc0\x00\x00\x00\x00\x00\x00\x00\x09\x00\x00\x00\x00\x00\x00\x00\x18\x00\x00\x00\x00\x00\x00\x00\xfb\xff\xff\x6f\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\xfe\xff\xff\x6f\x00\x00\x00\x00\x30\x04\x00\x00\x00\x00\x00\x00\xff\xff\xff\x6f\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\xf0\xff\xff\x6f\x00\x00\x00\x00\x1e\x04\x00\x00\x00\x00\x00\x00\xf9\xff\xff\x6f\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".init_array", 0x1FDC8, "\x60\x07\x00\x00\x00\x00\x00\x00"), -Section(".got", 0x1FFB8, "\xd8\xfd\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".got.plt", 0x1FFE8, "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xa0\x05\x00\x00\x00\x00\x00\x00\xa0\x05\x00\x00\x00\x00\x00\x00\xa0\x05\x00\x00\x00\x00\x00\x00\xa0\x05\x00\x00\x00\x00\x00\x00"), -Section(".data", 0x20020, "\x00\x00\x00\x00\x00\x00\x00\x00\x28\x00\x02\x00\x00\x00\x00\x00")]), -Memmap([Annotation(Region(0x0,0x8BF), Attr("segment","02 0 2240")), -Annotation(Region(0x600,0x62B), Attr("symbol","\"main\"")), -Annotation(Region(0x0,0x102), Attr("section","\".shstrtab\"")), -Annotation(Region(0x0,0x234), Attr("section","\".strtab\"")), -Annotation(Region(0x0,0x11), Attr("section","\".comment\"")), -Annotation(Region(0x238,0x252), Attr("section","\".interp\"")), -Annotation(Region(0x254,0x277), Attr("section","\".note.gnu.build-id\"")), -Annotation(Region(0x278,0x297), Attr("section","\".note.ABI-tag\"")), -Annotation(Region(0x298,0x2B3), Attr("section","\".gnu.hash\"")), -Annotation(Region(0x2B8,0x38F), Attr("section","\".dynsym\"")), -Annotation(Region(0x390,0x41C), Attr("section","\".dynstr\"")), -Annotation(Region(0x41E,0x42F), Attr("section","\".gnu.version\"")), -Annotation(Region(0x430,0x45F), Attr("section","\".gnu.version_r\"")), -Annotation(Region(0x460,0x51F), Attr("section","\".rela.dyn\"")), -Annotation(Region(0x520,0x57F), Attr("section","\".rela.plt\"")), -Annotation(Region(0x580,0x597), Attr("section","\".init\"")), -Annotation(Region(0x5A0,0x5FF), Attr("section","\".plt\"")), -Annotation(Region(0x580,0x597), Attr("code-region","()")), -Annotation(Region(0x5A0,0x5FF), Attr("code-region","()")), -Annotation(Region(0x600,0x62B), Attr("symbol-info","main 0x600 44")), -Annotation(Region(0x640,0x673), Attr("symbol","\"_start\"")), -Annotation(Region(0x640,0x673), Attr("symbol-info","_start 0x640 52")), -Annotation(Region(0x674,0x687), Attr("symbol","\"call_weak_fn\"")), -Annotation(Region(0x674,0x687), Attr("symbol-info","call_weak_fn 0x674 20")), -Annotation(Region(0x600,0x79F), Attr("section","\".text\"")), -Annotation(Region(0x600,0x79F), Attr("code-region","()")), -Annotation(Region(0x780,0x79F), Attr("symbol","\"branch\"")), -Annotation(Region(0x780,0x79F), Attr("symbol-info","branch 0x780 32")), -Annotation(Region(0x7A0,0x7B3), Attr("section","\".fini\"")), -Annotation(Region(0x7A0,0x7B3), Attr("code-region","()")), -Annotation(Region(0x7B4,0x7B7), Attr("section","\".rodata\"")), -Annotation(Region(0x7B8,0x7FB), Attr("section","\".eh_frame_hdr\"")), -Annotation(Region(0x800,0x8BF), Attr("section","\".eh_frame\"")), -Annotation(Region(0x1FDC8,0x2002F), Attr("segment","03 0x1FDC8 640")), -Annotation(Region(0x1FDD0,0x1FDD7), Attr("section","\".fini_array\"")), -Annotation(Region(0x1FDD8,0x1FFB7), Attr("section","\".dynamic\"")), -Annotation(Region(0x1FDC8,0x1FDCF), Attr("section","\".init_array\"")), -Annotation(Region(0x1FFB8,0x1FFE7), Attr("section","\".got\"")), -Annotation(Region(0x1FFE8,0x2001F), Attr("section","\".got.plt\"")), -Annotation(Region(0x20020,0x2002F), Attr("section","\".data\""))]), -Program(Tid(1_798, "%00000706"), Attrs([]), - Subs([Sub(Tid(1_774, "@__cxa_finalize"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x5D0"), -Attr("stub","()")]), "__cxa_finalize", Args([Arg(Tid(1_799, "%00000707"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("__cxa_finalize_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(1_132, "@__cxa_finalize"), - Attrs([Attr("address","0x5D0")]), Phis([]), -Defs([Def(Tid(1_380, "%00000564"), Attrs([Attr("address","0x5D0"), -Attr("insn","adrp x16, #131072")]), Var("R16",Imm(64)), Int(131072,64)), -Def(Tid(1_387, "%0000056b"), Attrs([Attr("address","0x5D4"), -Attr("insn","ldr x17, [x16, #0x8]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(1_393, "%00000571"), Attrs([Attr("address","0x5D8"), -Attr("insn","add x16, x16, #0x8")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(8,64)))]), Jmps([Call(Tid(1_398, "%00000576"), - Attrs([Attr("address","0x5DC"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), -Sub(Tid(1_775, "@__do_global_dtors_aux"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x70C")]), - "__do_global_dtors_aux", Args([Arg(Tid(1_800, "%00000708"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("__do_global_dtors_aux_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(970, "@__do_global_dtors_aux"), - Attrs([Attr("address","0x70C")]), Phis([]), Defs([Def(Tid(974, "%000003ce"), - Attrs([Attr("address","0x70C"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("#7",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(18446744073709551584,64))), -Def(Tid(980, "%000003d4"), Attrs([Attr("address","0x70C"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("#7",Imm(64)),Var("R29",Imm(64)),LittleEndian(),64)), -Def(Tid(986, "%000003da"), Attrs([Attr("address","0x70C"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("#7",Imm(64)),Int(8,64)),Var("R30",Imm(64)),LittleEndian(),64)), -Def(Tid(990, "%000003de"), Attrs([Attr("address","0x70C"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("R31",Imm(64)), -Var("#7",Imm(64))), Def(Tid(996, "%000003e4"), - Attrs([Attr("address","0x710"), Attr("insn","mov x29, sp")]), - Var("R29",Imm(64)), Var("R31",Imm(64))), Def(Tid(1_004, "%000003ec"), - Attrs([Attr("address","0x714"), Attr("insn","str x19, [sp, #0x10]")]), - Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(16,64)),Var("R19",Imm(64)),LittleEndian(),64)), -Def(Tid(1_009, "%000003f1"), Attrs([Attr("address","0x718"), -Attr("insn","adrp x19, #131072")]), Var("R19",Imm(64)), Int(131072,64)), -Def(Tid(1_016, "%000003f8"), Attrs([Attr("address","0x71C"), -Attr("insn","ldrb w0, [x19, #0x30]")]), Var("R0",Imm(64)), -UNSIGNED(64,Load(Var("mem",Mem(64,8)),PLUS(Var("R19",Imm(64)),Int(48,64)),LittleEndian(),8)))]), -Jmps([Goto(Tid(1_022, "%000003fe"), Attrs([Attr("address","0x720"), -Attr("insn","tbnz w0, #0x0, #0x28")]), - EQ(Extract(0,0,Var("R0",Imm(64))),Int(1,1)), -Direct(Tid(1_020, "%000003fc"))), Goto(Tid(1_776, "%000006f0"), Attrs([]), - Int(1,1), Direct(Tid(1_077, "%00000435")))])), Blk(Tid(1_077, "%00000435"), - Attrs([Attr("address","0x724")]), Phis([]), -Defs([Def(Tid(1_080, "%00000438"), Attrs([Attr("address","0x724"), -Attr("insn","adrp x0, #126976")]), Var("R0",Imm(64)), Int(126976,64)), -Def(Tid(1_087, "%0000043f"), Attrs([Attr("address","0x728"), -Attr("insn","ldr x0, [x0, #0xfc8]")]), Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(4040,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(1_093, "%00000445"), Attrs([Attr("address","0x72C"), -Attr("insn","cbz x0, #0x10")]), EQ(Var("R0",Imm(64)),Int(0,64)), -Direct(Tid(1_091, "%00000443"))), Goto(Tid(1_777, "%000006f1"), Attrs([]), - Int(1,1), Direct(Tid(1_116, "%0000045c")))])), Blk(Tid(1_116, "%0000045c"), - Attrs([Attr("address","0x730")]), Phis([]), -Defs([Def(Tid(1_119, "%0000045f"), Attrs([Attr("address","0x730"), -Attr("insn","adrp x0, #131072")]), Var("R0",Imm(64)), Int(131072,64)), -Def(Tid(1_126, "%00000466"), Attrs([Attr("address","0x734"), -Attr("insn","ldr x0, [x0, #0x28]")]), Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(40,64)),LittleEndian(),64)), -Def(Tid(1_131, "%0000046b"), Attrs([Attr("address","0x738"), -Attr("insn","bl #-0x168")]), Var("R30",Imm(64)), Int(1852,64))]), -Jmps([Call(Tid(1_134, "%0000046e"), Attrs([Attr("address","0x738"), -Attr("insn","bl #-0x168")]), Int(1,1), -(Direct(Tid(1_774, "@__cxa_finalize")),Direct(Tid(1_091, "%00000443"))))])), -Blk(Tid(1_091, "%00000443"), Attrs([Attr("address","0x73C")]), Phis([]), -Defs([Def(Tid(1_099, "%0000044b"), Attrs([Attr("address","0x73C"), -Attr("insn","bl #-0x9c")]), Var("R30",Imm(64)), Int(1856,64))]), -Jmps([Call(Tid(1_101, "%0000044d"), Attrs([Attr("address","0x73C"), -Attr("insn","bl #-0x9c")]), Int(1,1), -(Direct(Tid(1_790, "@deregister_tm_clones")),Direct(Tid(1_103, "%0000044f"))))])), -Blk(Tid(1_103, "%0000044f"), Attrs([Attr("address","0x740")]), Phis([]), -Defs([Def(Tid(1_106, "%00000452"), Attrs([Attr("address","0x740"), -Attr("insn","mov w0, #0x1")]), Var("R0",Imm(64)), Int(1,64)), -Def(Tid(1_114, "%0000045a"), Attrs([Attr("address","0x744"), -Attr("insn","strb w0, [x19, #0x30]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R19",Imm(64)),Int(48,64)),Extract(7,0,Var("R0",Imm(64))),LittleEndian(),8))]), -Jmps([Goto(Tid(1_778, "%000006f2"), Attrs([]), Int(1,1), -Direct(Tid(1_020, "%000003fc")))])), Blk(Tid(1_020, "%000003fc"), - Attrs([Attr("address","0x748")]), Phis([]), -Defs([Def(Tid(1_030, "%00000406"), Attrs([Attr("address","0x748"), -Attr("insn","ldr x19, [sp, #0x10]")]), Var("R19",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(16,64)),LittleEndian(),64)), -Def(Tid(1_037, "%0000040d"), Attrs([Attr("address","0x74C"), -Attr("insn","ldp x29, x30, [sp], #0x20")]), Var("R29",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(1_042, "%00000412"), Attrs([Attr("address","0x74C"), -Attr("insn","ldp x29, x30, [sp], #0x20")]), Var("R30",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(1_046, "%00000416"), Attrs([Attr("address","0x74C"), -Attr("insn","ldp x29, x30, [sp], #0x20")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(32,64)))]), Jmps([Call(Tid(1_051, "%0000041b"), - Attrs([Attr("address","0x750"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), Sub(Tid(1_779, "@__libc_start_main"), - Attrs([Attr("c.proto","signed (*)(signed (*)(signed , char** , char** );* main, signed , char** , \nvoid* auxv)"), -Attr("address","0x5C0"), Attr("stub","()")]), "__libc_start_main", - Args([Arg(Tid(1_801, "%00000709"), - Attrs([Attr("c.layout","**[ : 64]"), -Attr("c.data","Top:u64 ptr ptr"), -Attr("c.type","signed (*)(signed , char** , char** );*")]), - Var("__libc_start_main_main",Imm(64)), Var("R0",Imm(64)), In()), -Arg(Tid(1_802, "%0000070a"), Attrs([Attr("c.layout","[signed : 32]"), -Attr("c.data","Top:u32"), Attr("c.type","signed")]), - Var("__libc_start_main_arg2",Imm(32)), LOW(32,Var("R1",Imm(64))), In()), -Arg(Tid(1_803, "%0000070b"), Attrs([Attr("c.layout","**[char : 8]"), -Attr("c.data","Top:u8 ptr ptr"), Attr("c.type","char**")]), - Var("__libc_start_main_arg3",Imm(64)), Var("R2",Imm(64)), Both()), -Arg(Tid(1_804, "%0000070c"), Attrs([Attr("c.layout","*[ : 8]"), -Attr("c.data","{} ptr"), Attr("c.type","void*")]), - Var("__libc_start_main_auxv",Imm(64)), Var("R3",Imm(64)), Both()), -Arg(Tid(1_805, "%0000070d"), Attrs([Attr("c.layout","[signed : 32]"), -Attr("c.data","Top:u32"), Attr("c.type","signed")]), - Var("__libc_start_main_result",Imm(32)), LOW(32,Var("R0",Imm(64))), -Out())]), Blks([Blk(Tid(797, "@__libc_start_main"), - Attrs([Attr("address","0x5C0")]), Phis([]), -Defs([Def(Tid(1_358, "%0000054e"), Attrs([Attr("address","0x5C0"), -Attr("insn","adrp x16, #131072")]), Var("R16",Imm(64)), Int(131072,64)), -Def(Tid(1_365, "%00000555"), Attrs([Attr("address","0x5C4"), -Attr("insn","ldr x17, [x16]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R16",Imm(64)),LittleEndian(),64)), -Def(Tid(1_371, "%0000055b"), Attrs([Attr("address","0x5C8"), -Attr("insn","add x16, x16, #0x0")]), Var("R16",Imm(64)), -Var("R16",Imm(64)))]), Jmps([Call(Tid(1_376, "%00000560"), - Attrs([Attr("address","0x5CC"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), Sub(Tid(1_780, "@_fini"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x7A0")]), - "_fini", Args([Arg(Tid(1_806, "%0000070e"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("_fini_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(32, "@_fini"), - Attrs([Attr("address","0x7A0")]), Phis([]), Defs([Def(Tid(38, "%00000026"), - Attrs([Attr("address","0x7A4"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("#0",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(18446744073709551600,64))), -Def(Tid(44, "%0000002c"), Attrs([Attr("address","0x7A4"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("#0",Imm(64)),Var("R29",Imm(64)),LittleEndian(),64)), -Def(Tid(50, "%00000032"), Attrs([Attr("address","0x7A4"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("#0",Imm(64)),Int(8,64)),Var("R30",Imm(64)),LittleEndian(),64)), -Def(Tid(54, "%00000036"), Attrs([Attr("address","0x7A4"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("R31",Imm(64)), -Var("#0",Imm(64))), Def(Tid(60, "%0000003c"), Attrs([Attr("address","0x7A8"), -Attr("insn","mov x29, sp")]), Var("R29",Imm(64)), Var("R31",Imm(64))), -Def(Tid(67, "%00000043"), Attrs([Attr("address","0x7AC"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R29",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(72, "%00000048"), Attrs([Attr("address","0x7AC"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R30",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(76, "%0000004c"), Attrs([Attr("address","0x7AC"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(16,64)))]), Jmps([Call(Tid(81, "%00000051"), - Attrs([Attr("address","0x7B0"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), Sub(Tid(1_781, "@_init"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x580")]), - "_init", Args([Arg(Tid(1_807, "%0000070f"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("_init_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(1_581, "@_init"), - Attrs([Attr("address","0x580")]), Phis([]), -Defs([Def(Tid(1_587, "%00000633"), Attrs([Attr("address","0x584"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("#9",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(18446744073709551600,64))), -Def(Tid(1_593, "%00000639"), Attrs([Attr("address","0x584"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("#9",Imm(64)),Var("R29",Imm(64)),LittleEndian(),64)), -Def(Tid(1_599, "%0000063f"), Attrs([Attr("address","0x584"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("#9",Imm(64)),Int(8,64)),Var("R30",Imm(64)),LittleEndian(),64)), -Def(Tid(1_603, "%00000643"), Attrs([Attr("address","0x584"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("R31",Imm(64)), -Var("#9",Imm(64))), Def(Tid(1_609, "%00000649"), - Attrs([Attr("address","0x588"), Attr("insn","mov x29, sp")]), - Var("R29",Imm(64)), Var("R31",Imm(64))), Def(Tid(1_614, "%0000064e"), - Attrs([Attr("address","0x58C"), Attr("insn","bl #0xe8")]), - Var("R30",Imm(64)), Int(1424,64))]), Jmps([Call(Tid(1_616, "%00000650"), - Attrs([Attr("address","0x58C"), Attr("insn","bl #0xe8")]), Int(1,1), -(Direct(Tid(1_788, "@call_weak_fn")),Direct(Tid(1_618, "%00000652"))))])), -Blk(Tid(1_618, "%00000652"), Attrs([Attr("address","0x590")]), Phis([]), -Defs([Def(Tid(1_623, "%00000657"), Attrs([Attr("address","0x590"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R29",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(1_628, "%0000065c"), Attrs([Attr("address","0x590"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R30",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(1_632, "%00000660"), Attrs([Attr("address","0x590"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(16,64)))]), Jmps([Call(Tid(1_637, "%00000665"), - Attrs([Attr("address","0x594"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), Sub(Tid(1_782, "@_start"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x640"), -Attr("entry-point","()")]), "_start", Args([Arg(Tid(1_808, "%00000710"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("_start_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(734, "@_start"), - Attrs([Attr("address","0x640")]), Phis([]), Defs([Def(Tid(739, "%000002e3"), - Attrs([Attr("address","0x644"), Attr("insn","mov x29, #0x0")]), - Var("R29",Imm(64)), Int(0,64)), Def(Tid(744, "%000002e8"), - Attrs([Attr("address","0x648"), Attr("insn","mov x30, #0x0")]), - Var("R30",Imm(64)), Int(0,64)), Def(Tid(750, "%000002ee"), - Attrs([Attr("address","0x64C"), Attr("insn","mov x5, x0")]), - Var("R5",Imm(64)), Var("R0",Imm(64))), Def(Tid(757, "%000002f5"), - Attrs([Attr("address","0x650"), Attr("insn","ldr x1, [sp]")]), - Var("R1",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(763, "%000002fb"), Attrs([Attr("address","0x654"), -Attr("insn","add x2, sp, #0x8")]), Var("R2",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(8,64))), Def(Tid(769, "%00000301"), - Attrs([Attr("address","0x658"), Attr("insn","mov x6, sp")]), - Var("R6",Imm(64)), Var("R31",Imm(64))), Def(Tid(774, "%00000306"), - Attrs([Attr("address","0x65C"), Attr("insn","adrp x0, #126976")]), - Var("R0",Imm(64)), Int(126976,64)), Def(Tid(781, "%0000030d"), - Attrs([Attr("address","0x660"), Attr("insn","ldr x0, [x0, #0xfd8]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(4056,64)),LittleEndian(),64)), -Def(Tid(786, "%00000312"), Attrs([Attr("address","0x664"), -Attr("insn","mov x3, #0x0")]), Var("R3",Imm(64)), Int(0,64)), -Def(Tid(791, "%00000317"), Attrs([Attr("address","0x668"), -Attr("insn","mov x4, #0x0")]), Var("R4",Imm(64)), Int(0,64)), -Def(Tid(796, "%0000031c"), Attrs([Attr("address","0x66C"), -Attr("insn","bl #-0xac")]), Var("R30",Imm(64)), Int(1648,64))]), -Jmps([Call(Tid(799, "%0000031f"), Attrs([Attr("address","0x66C"), -Attr("insn","bl #-0xac")]), Int(1,1), -(Direct(Tid(1_779, "@__libc_start_main")),Direct(Tid(801, "%00000321"))))])), -Blk(Tid(801, "%00000321"), Attrs([Attr("address","0x670")]), Phis([]), -Defs([Def(Tid(804, "%00000324"), Attrs([Attr("address","0x670"), -Attr("insn","bl #-0x80")]), Var("R30",Imm(64)), Int(1652,64))]), -Jmps([Call(Tid(807, "%00000327"), Attrs([Attr("address","0x670"), -Attr("insn","bl #-0x80")]), Int(1,1), -(Direct(Tid(1_785, "@abort")),Direct(Tid(1_783, "%000006f7"))))])), -Blk(Tid(1_783, "%000006f7"), Attrs([]), Phis([]), Defs([]), -Jmps([Call(Tid(1_784, "%000006f8"), Attrs([]), Int(1,1), -(Direct(Tid(1_788, "@call_weak_fn")),))]))])), Sub(Tid(1_785, "@abort"), - Attrs([Attr("noreturn","()"), Attr("c.proto","void (*)(void)"), -Attr("address","0x5F0"), Attr("stub","()")]), "abort", Args([]), -Blks([Blk(Tid(805, "@abort"), Attrs([Attr("address","0x5F0")]), Phis([]), -Defs([Def(Tid(1_424, "%00000590"), Attrs([Attr("address","0x5F0"), -Attr("insn","adrp x16, #131072")]), Var("R16",Imm(64)), Int(131072,64)), -Def(Tid(1_431, "%00000597"), Attrs([Attr("address","0x5F4"), -Attr("insn","ldr x17, [x16, #0x18]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(24,64)),LittleEndian(),64)), -Def(Tid(1_437, "%0000059d"), Attrs([Attr("address","0x5F8"), -Attr("insn","add x16, x16, #0x18")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(24,64)))]), Jmps([Call(Tid(1_442, "%000005a2"), - Attrs([Attr("address","0x5FC"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), Sub(Tid(1_786, "@branch"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x780")]), - "branch", Args([Arg(Tid(1_809, "%00000711"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("branch_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(563, "@branch"), - Attrs([Attr("address","0x780")]), Phis([]), Defs([Def(Tid(570, "%0000023a"), - Attrs([Attr("address","0x780"), Attr("insn","cmp x0, #0x0")]), - Var("#2",Imm(64)), Var("R0",Imm(64))), Def(Tid(575, "%0000023f"), - Attrs([Attr("address","0x780"), Attr("insn","cmp x0, #0x0")]), - Var("VF",Imm(1)), NEQ(Var("#2",Imm(64)),Var("R0",Imm(64)))), -Def(Tid(580, "%00000244"), Attrs([Attr("address","0x780"), -Attr("insn","cmp x0, #0x0")]), Var("CF",Imm(1)), -NEQ(UNSIGNED(65,Var("#2",Imm(64))),PLUS(UNSIGNED(65,Var("R0",Imm(64))),Int(18446744073709551616,65)))), -Def(Tid(584, "%00000248"), Attrs([Attr("address","0x780"), -Attr("insn","cmp x0, #0x0")]), Var("ZF",Imm(1)), -EQ(Var("#2",Imm(64)),Int(0,64))), Def(Tid(588, "%0000024c"), - Attrs([Attr("address","0x780"), Attr("insn","cmp x0, #0x0")]), - Var("NF",Imm(1)), Extract(63,63,Var("#2",Imm(64))))]), -Jmps([Goto(Tid(596, "%00000254"), Attrs([Attr("address","0x784"), -Attr("insn","b.le #0x10")]), - NOT(AND(EQ(Var("NF",Imm(1)),Var("VF",Imm(1))),EQ(Var("ZF",Imm(1)),Int(0,1)))), -Direct(Tid(594, "%00000252"))), Goto(Tid(1_787, "%000006fb"), Attrs([]), - Int(1,1), Direct(Tid(647, "%00000287")))])), Blk(Tid(594, "%00000252"), - Attrs([Attr("address","0x794")]), Phis([]), Defs([Def(Tid(603, "%0000025b"), - Attrs([Attr("address","0x794"), Attr("insn","cmp x2, #0x0")]), - Var("#3",Imm(64)), Var("R2",Imm(64))), Def(Tid(608, "%00000260"), - Attrs([Attr("address","0x794"), Attr("insn","cmp x2, #0x0")]), - Var("VF",Imm(1)), NEQ(Var("#3",Imm(64)),Var("R2",Imm(64)))), -Def(Tid(613, "%00000265"), Attrs([Attr("address","0x794"), -Attr("insn","cmp x2, #0x0")]), Var("CF",Imm(1)), -NEQ(UNSIGNED(65,Var("#3",Imm(64))),PLUS(UNSIGNED(65,Var("R2",Imm(64))),Int(18446744073709551616,65)))), -Def(Tid(617, "%00000269"), Attrs([Attr("address","0x794"), -Attr("insn","cmp x2, #0x0")]), Var("ZF",Imm(1)), -EQ(Var("#3",Imm(64)),Int(0,64))), Def(Tid(621, "%0000026d"), - Attrs([Attr("address","0x794"), Attr("insn","cmp x2, #0x0")]), - Var("NF",Imm(1)), Extract(63,63,Var("#3",Imm(64))))]), -Jmps([Goto(Tid(637, "%0000027d"), Attrs([Attr("address","0x798"), -Attr("insn","csel x0, x2, x0, gt")]), - AND(EQ(Var("NF",Imm(1)),Var("VF",Imm(1))),EQ(Var("ZF",Imm(1)),Int(0,1))), -Direct(Tid(629, "%00000275"))), Goto(Tid(638, "%0000027e"), - Attrs([Attr("address","0x798"), Attr("insn","csel x0, x2, x0, gt")]), - Int(1,1), Direct(Tid(633, "%00000279")))])), Blk(Tid(633, "%00000279"), - Attrs([]), Phis([]), Defs([Def(Tid(634, "%0000027a"), - Attrs([Attr("address","0x798"), Attr("insn","csel x0, x2, x0, gt")]), - Var("R0",Imm(64)), Var("R0",Imm(64)))]), Jmps([Goto(Tid(640, "%00000280"), - Attrs([Attr("address","0x798"), Attr("insn","csel x0, x2, x0, gt")]), - Int(1,1), Direct(Tid(636, "%0000027c")))])), Blk(Tid(629, "%00000275"), - Attrs([]), Phis([]), Defs([Def(Tid(630, "%00000276"), - Attrs([Attr("address","0x798"), Attr("insn","csel x0, x2, x0, gt")]), - Var("R0",Imm(64)), Var("R2",Imm(64)))]), Jmps([Goto(Tid(639, "%0000027f"), - Attrs([Attr("address","0x798"), Attr("insn","csel x0, x2, x0, gt")]), - Int(1,1), Direct(Tid(636, "%0000027c")))])), Blk(Tid(636, "%0000027c"), - Attrs([]), Phis([]), Defs([]), Jmps([Call(Tid(645, "%00000285"), - Attrs([Attr("address","0x79C"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))])), Blk(Tid(647, "%00000287"), - Attrs([Attr("address","0x788")]), Phis([]), Defs([Def(Tid(651, "%0000028b"), - Attrs([Attr("address","0x788"), Attr("insn","cmp x1, #0x0")]), - Var("#4",Imm(64)), Var("R1",Imm(64))), Def(Tid(656, "%00000290"), - Attrs([Attr("address","0x788"), Attr("insn","cmp x1, #0x0")]), - Var("VF",Imm(1)), NEQ(Var("#4",Imm(64)),Var("R1",Imm(64)))), -Def(Tid(661, "%00000295"), Attrs([Attr("address","0x788"), -Attr("insn","cmp x1, #0x0")]), Var("CF",Imm(1)), -NEQ(UNSIGNED(65,Var("#4",Imm(64))),PLUS(UNSIGNED(65,Var("R1",Imm(64))),Int(18446744073709551616,65)))), -Def(Tid(665, "%00000299"), Attrs([Attr("address","0x788"), -Attr("insn","cmp x1, #0x0")]), Var("ZF",Imm(1)), -EQ(Var("#4",Imm(64)),Int(0,64))), Def(Tid(669, "%0000029d"), - Attrs([Attr("address","0x788"), Attr("insn","cmp x1, #0x0")]), - Var("NF",Imm(1)), Extract(63,63,Var("#4",Imm(64))))]), -Jmps([Goto(Tid(685, "%000002ad"), Attrs([Attr("address","0x78C"), -Attr("insn","csel x0, x0, x1, gt")]), - AND(EQ(Var("NF",Imm(1)),Var("VF",Imm(1))),EQ(Var("ZF",Imm(1)),Int(0,1))), -Direct(Tid(677, "%000002a5"))), Goto(Tid(686, "%000002ae"), - Attrs([Attr("address","0x78C"), Attr("insn","csel x0, x0, x1, gt")]), - Int(1,1), Direct(Tid(681, "%000002a9")))])), Blk(Tid(681, "%000002a9"), - Attrs([]), Phis([]), Defs([Def(Tid(682, "%000002aa"), - Attrs([Attr("address","0x78C"), Attr("insn","csel x0, x0, x1, gt")]), - Var("R0",Imm(64)), Var("R1",Imm(64)))]), Jmps([Goto(Tid(688, "%000002b0"), - Attrs([Attr("address","0x78C"), Attr("insn","csel x0, x0, x1, gt")]), - Int(1,1), Direct(Tid(684, "%000002ac")))])), Blk(Tid(677, "%000002a5"), - Attrs([]), Phis([]), Defs([Def(Tid(678, "%000002a6"), - Attrs([Attr("address","0x78C"), Attr("insn","csel x0, x0, x1, gt")]), - Var("R0",Imm(64)), Var("R0",Imm(64)))]), Jmps([Goto(Tid(687, "%000002af"), - Attrs([Attr("address","0x78C"), Attr("insn","csel x0, x0, x1, gt")]), - Int(1,1), Direct(Tid(684, "%000002ac")))])), Blk(Tid(684, "%000002ac"), - Attrs([]), Phis([]), Defs([]), Jmps([Call(Tid(693, "%000002b5"), - Attrs([Attr("address","0x790"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), Sub(Tid(1_788, "@call_weak_fn"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x674")]), - "call_weak_fn", Args([Arg(Tid(1_810, "%00000712"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("call_weak_fn_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(809, "@call_weak_fn"), - Attrs([Attr("address","0x674")]), Phis([]), Defs([Def(Tid(812, "%0000032c"), - Attrs([Attr("address","0x674"), Attr("insn","adrp x0, #126976")]), - Var("R0",Imm(64)), Int(126976,64)), Def(Tid(819, "%00000333"), - Attrs([Attr("address","0x678"), Attr("insn","ldr x0, [x0, #0xfd0]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(4048,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(825, "%00000339"), Attrs([Attr("address","0x67C"), -Attr("insn","cbz x0, #0x8")]), EQ(Var("R0",Imm(64)),Int(0,64)), -Direct(Tid(823, "%00000337"))), Goto(Tid(1_789, "%000006fd"), Attrs([]), - Int(1,1), Direct(Tid(1_196, "%000004ac")))])), Blk(Tid(823, "%00000337"), - Attrs([Attr("address","0x684")]), Phis([]), Defs([]), -Jmps([Call(Tid(831, "%0000033f"), Attrs([Attr("address","0x684"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))])), -Blk(Tid(1_196, "%000004ac"), Attrs([Attr("address","0x680")]), Phis([]), -Defs([]), Jmps([Goto(Tid(1_199, "%000004af"), Attrs([Attr("address","0x680"), -Attr("insn","b #-0xa0")]), Int(1,1), -Direct(Tid(1_197, "@__gmon_start__")))])), Blk(Tid(1_197, "@__gmon_start__"), - Attrs([Attr("address","0x5E0")]), Phis([]), -Defs([Def(Tid(1_402, "%0000057a"), Attrs([Attr("address","0x5E0"), -Attr("insn","adrp x16, #131072")]), Var("R16",Imm(64)), Int(131072,64)), -Def(Tid(1_409, "%00000581"), Attrs([Attr("address","0x5E4"), -Attr("insn","ldr x17, [x16, #0x10]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(16,64)),LittleEndian(),64)), -Def(Tid(1_415, "%00000587"), Attrs([Attr("address","0x5E8"), -Attr("insn","add x16, x16, #0x10")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(16,64)))]), Jmps([Call(Tid(1_420, "%0000058c"), - Attrs([Attr("address","0x5EC"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), -Sub(Tid(1_790, "@deregister_tm_clones"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x6A0")]), - "deregister_tm_clones", Args([Arg(Tid(1_811, "%00000713"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("deregister_tm_clones_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(845, "@deregister_tm_clones"), - Attrs([Attr("address","0x6A0")]), Phis([]), Defs([Def(Tid(848, "%00000350"), - Attrs([Attr("address","0x6A0"), Attr("insn","adrp x0, #131072")]), - Var("R0",Imm(64)), Int(131072,64)), Def(Tid(854, "%00000356"), - Attrs([Attr("address","0x6A4"), Attr("insn","add x0, x0, #0x30")]), - Var("R0",Imm(64)), PLUS(Var("R0",Imm(64)),Int(48,64))), -Def(Tid(859, "%0000035b"), Attrs([Attr("address","0x6A8"), -Attr("insn","adrp x1, #131072")]), Var("R1",Imm(64)), Int(131072,64)), -Def(Tid(865, "%00000361"), Attrs([Attr("address","0x6AC"), -Attr("insn","add x1, x1, #0x30")]), Var("R1",Imm(64)), -PLUS(Var("R1",Imm(64)),Int(48,64))), Def(Tid(871, "%00000367"), - Attrs([Attr("address","0x6B0"), Attr("insn","cmp x1, x0")]), - Var("#5",Imm(64)), NOT(Var("R0",Imm(64)))), Def(Tid(876, "%0000036c"), - Attrs([Attr("address","0x6B0"), Attr("insn","cmp x1, x0")]), - Var("#6",Imm(64)), PLUS(Var("R1",Imm(64)),NOT(Var("R0",Imm(64))))), -Def(Tid(882, "%00000372"), Attrs([Attr("address","0x6B0"), -Attr("insn","cmp x1, x0")]), Var("VF",Imm(1)), -NEQ(SIGNED(65,PLUS(Var("#6",Imm(64)),Int(1,64))),PLUS(PLUS(SIGNED(65,Var("R1",Imm(64))),SIGNED(65,Var("#5",Imm(64)))),Int(1,65)))), -Def(Tid(888, "%00000378"), Attrs([Attr("address","0x6B0"), -Attr("insn","cmp x1, x0")]), Var("CF",Imm(1)), -NEQ(UNSIGNED(65,PLUS(Var("#6",Imm(64)),Int(1,64))),PLUS(PLUS(UNSIGNED(65,Var("R1",Imm(64))),UNSIGNED(65,Var("#5",Imm(64)))),Int(1,65)))), -Def(Tid(892, "%0000037c"), Attrs([Attr("address","0x6B0"), -Attr("insn","cmp x1, x0")]), Var("ZF",Imm(1)), -EQ(PLUS(Var("#6",Imm(64)),Int(1,64)),Int(0,64))), Def(Tid(896, "%00000380"), - Attrs([Attr("address","0x6B0"), Attr("insn","cmp x1, x0")]), - Var("NF",Imm(1)), Extract(63,63,PLUS(Var("#6",Imm(64)),Int(1,64))))]), -Jmps([Goto(Tid(902, "%00000386"), Attrs([Attr("address","0x6B4"), -Attr("insn","b.eq #0x18")]), EQ(Var("ZF",Imm(1)),Int(1,1)), -Direct(Tid(900, "%00000384"))), Goto(Tid(1_791, "%000006ff"), Attrs([]), - Int(1,1), Direct(Tid(1_166, "%0000048e")))])), Blk(Tid(1_166, "%0000048e"), - Attrs([Attr("address","0x6B8")]), Phis([]), -Defs([Def(Tid(1_169, "%00000491"), Attrs([Attr("address","0x6B8"), -Attr("insn","adrp x1, #126976")]), Var("R1",Imm(64)), Int(126976,64)), -Def(Tid(1_176, "%00000498"), Attrs([Attr("address","0x6BC"), -Attr("insn","ldr x1, [x1, #0xfc0]")]), Var("R1",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R1",Imm(64)),Int(4032,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(1_181, "%0000049d"), Attrs([Attr("address","0x6C0"), -Attr("insn","cbz x1, #0xc")]), EQ(Var("R1",Imm(64)),Int(0,64)), -Direct(Tid(900, "%00000384"))), Goto(Tid(1_792, "%00000700"), Attrs([]), - Int(1,1), Direct(Tid(1_185, "%000004a1")))])), Blk(Tid(900, "%00000384"), - Attrs([Attr("address","0x6CC")]), Phis([]), Defs([]), -Jmps([Call(Tid(908, "%0000038c"), Attrs([Attr("address","0x6CC"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))])), -Blk(Tid(1_185, "%000004a1"), Attrs([Attr("address","0x6C4")]), Phis([]), -Defs([Def(Tid(1_189, "%000004a5"), Attrs([Attr("address","0x6C4"), -Attr("insn","mov x16, x1")]), Var("R16",Imm(64)), Var("R1",Imm(64)))]), -Jmps([Call(Tid(1_194, "%000004aa"), Attrs([Attr("address","0x6C8"), -Attr("insn","br x16")]), Int(1,1), (Indirect(Var("R16",Imm(64))),))]))])), -Sub(Tid(1_793, "@frame_dummy"), Attrs([Attr("c.proto","signed (*)(void)"), -Attr("address","0x760")]), "frame_dummy", Args([Arg(Tid(1_812, "%00000714"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("frame_dummy_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(1_059, "@frame_dummy"), - Attrs([Attr("address","0x760")]), Phis([]), Defs([]), -Jmps([Call(Tid(1_061, "%00000425"), Attrs([Attr("address","0x760"), -Attr("insn","b #-0x90")]), Int(1,1), -(Direct(Tid(1_795, "@register_tm_clones")),))]))])), Sub(Tid(1_794, "@main"), - Attrs([Attr("c.proto","signed (*)(signed argc, const char** argv)"), -Attr("address","0x600"), Attr("stub","()")]), "main", - Args([Arg(Tid(1_813, "%00000715"), Attrs([Attr("c.layout","[signed : 32]"), -Attr("c.data","Top:u32"), Attr("c.type","signed")]), - Var("main_argc",Imm(32)), LOW(32,Var("R0",Imm(64))), In()), -Arg(Tid(1_814, "%00000716"), Attrs([Attr("c.layout","**[char : 8]"), -Attr("c.data","Top:u8 ptr ptr"), Attr("c.type"," const char**")]), - Var("main_argv",Imm(64)), Var("R1",Imm(64)), Both()), -Arg(Tid(1_815, "%00000717"), Attrs([Attr("c.layout","[signed : 32]"), -Attr("c.data","Top:u32"), Attr("c.type","signed")]), - Var("main_result",Imm(32)), LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(501, "@main"), Attrs([Attr("address","0x600")]), Phis([]), -Defs([Def(Tid(504, "%000001f8"), Attrs([Attr("address","0x600"), -Attr("insn","adrp x1, #131072")]), Var("R1",Imm(64)), Int(131072,64)), -Def(Tid(510, "%000001fe"), Attrs([Attr("address","0x604"), -Attr("insn","add x3, x1, #0x38")]), Var("R3",Imm(64)), -PLUS(Var("R1",Imm(64)),Int(56,64))), Def(Tid(516, "%00000204"), - Attrs([Attr("address","0x608"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("#1",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(18446744073709551600,64))), -Def(Tid(522, "%0000020a"), Attrs([Attr("address","0x608"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("#1",Imm(64)),Var("R29",Imm(64)),LittleEndian(),64)), -Def(Tid(528, "%00000210"), Attrs([Attr("address","0x608"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("#1",Imm(64)),Int(8,64)),Var("R30",Imm(64)),LittleEndian(),64)), -Def(Tid(532, "%00000214"), Attrs([Attr("address","0x608"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("R31",Imm(64)), -Var("#1",Imm(64))), Def(Tid(537, "%00000219"), - Attrs([Attr("address","0x60C"), Attr("insn","mov x0, #0x1")]), - Var("R0",Imm(64)), Int(1,64)), Def(Tid(543, "%0000021f"), - Attrs([Attr("address","0x610"), Attr("insn","mov x29, sp")]), - Var("R29",Imm(64)), Var("R31",Imm(64))), Def(Tid(550, "%00000226"), - Attrs([Attr("address","0x614"), Attr("insn","ldr x2, [x1, #0x38]")]), - Var("R2",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R1",Imm(64)),Int(56,64)),LittleEndian(),64)), -Def(Tid(557, "%0000022d"), Attrs([Attr("address","0x618"), -Attr("insn","ldr x1, [x3, #0x8]")]), Var("R1",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R3",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(562, "%00000232"), Attrs([Attr("address","0x61C"), -Attr("insn","bl #0x164")]), Var("R30",Imm(64)), Int(1568,64))]), -Jmps([Call(Tid(565, "%00000235"), Attrs([Attr("address","0x61C"), -Attr("insn","bl #0x164")]), Int(1,1), -(Direct(Tid(1_786, "@branch")),Direct(Tid(695, "%000002b7"))))])), -Blk(Tid(695, "%000002b7"), Attrs([Attr("address","0x620")]), Phis([]), -Defs([Def(Tid(700, "%000002bc"), Attrs([Attr("address","0x620"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R29",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(705, "%000002c1"), Attrs([Attr("address","0x620"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R30",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(709, "%000002c5"), Attrs([Attr("address","0x620"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(16,64))), Def(Tid(717, "%000002cd"), - Attrs([Attr("address","0x624"), Attr("insn","str x0, [x3, #0x8]")]), - Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R3",Imm(64)),Int(8,64)),Var("R0",Imm(64)),LittleEndian(),64))]), -Jmps([Call(Tid(722, "%000002d2"), Attrs([Attr("address","0x628"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))]))])), -Sub(Tid(1_795, "@register_tm_clones"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x6D0")]), - "register_tm_clones", Args([Arg(Tid(1_816, "%00000718"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("register_tm_clones_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(910, "@register_tm_clones"), Attrs([Attr("address","0x6D0")]), - Phis([]), Defs([Def(Tid(913, "%00000391"), Attrs([Attr("address","0x6D0"), -Attr("insn","adrp x0, #131072")]), Var("R0",Imm(64)), Int(131072,64)), -Def(Tid(919, "%00000397"), Attrs([Attr("address","0x6D4"), -Attr("insn","add x0, x0, #0x30")]), Var("R0",Imm(64)), -PLUS(Var("R0",Imm(64)),Int(48,64))), Def(Tid(924, "%0000039c"), - Attrs([Attr("address","0x6D8"), Attr("insn","adrp x1, #131072")]), - Var("R1",Imm(64)), Int(131072,64)), Def(Tid(930, "%000003a2"), - Attrs([Attr("address","0x6DC"), Attr("insn","add x1, x1, #0x30")]), - Var("R1",Imm(64)), PLUS(Var("R1",Imm(64)),Int(48,64))), -Def(Tid(937, "%000003a9"), Attrs([Attr("address","0x6E0"), -Attr("insn","sub x1, x1, x0")]), Var("R1",Imm(64)), -PLUS(PLUS(Var("R1",Imm(64)),NOT(Var("R0",Imm(64)))),Int(1,64))), -Def(Tid(943, "%000003af"), Attrs([Attr("address","0x6E4"), -Attr("insn","lsr x2, x1, #63")]), Var("R2",Imm(64)), -Concat(Int(0,63),Extract(63,63,Var("R1",Imm(64))))), -Def(Tid(950, "%000003b6"), Attrs([Attr("address","0x6E8"), -Attr("insn","add x1, x2, x1, asr #3")]), Var("R1",Imm(64)), -PLUS(Var("R2",Imm(64)),ARSHIFT(Var("R1",Imm(64)),Int(3,3)))), -Def(Tid(956, "%000003bc"), Attrs([Attr("address","0x6EC"), -Attr("insn","asr x1, x1, #1")]), Var("R1",Imm(64)), -SIGNED(64,Extract(63,1,Var("R1",Imm(64)))))]), -Jmps([Goto(Tid(962, "%000003c2"), Attrs([Attr("address","0x6F0"), -Attr("insn","cbz x1, #0x18")]), EQ(Var("R1",Imm(64)),Int(0,64)), -Direct(Tid(960, "%000003c0"))), Goto(Tid(1_796, "%00000704"), Attrs([]), - Int(1,1), Direct(Tid(1_136, "%00000470")))])), Blk(Tid(1_136, "%00000470"), - Attrs([Attr("address","0x6F4")]), Phis([]), -Defs([Def(Tid(1_139, "%00000473"), Attrs([Attr("address","0x6F4"), -Attr("insn","adrp x2, #126976")]), Var("R2",Imm(64)), Int(126976,64)), -Def(Tid(1_146, "%0000047a"), Attrs([Attr("address","0x6F8"), -Attr("insn","ldr x2, [x2, #0xfe0]")]), Var("R2",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R2",Imm(64)),Int(4064,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(1_151, "%0000047f"), Attrs([Attr("address","0x6FC"), -Attr("insn","cbz x2, #0xc")]), EQ(Var("R2",Imm(64)),Int(0,64)), -Direct(Tid(960, "%000003c0"))), Goto(Tid(1_797, "%00000705"), Attrs([]), - Int(1,1), Direct(Tid(1_155, "%00000483")))])), Blk(Tid(960, "%000003c0"), - Attrs([Attr("address","0x708")]), Phis([]), Defs([]), -Jmps([Call(Tid(968, "%000003c8"), Attrs([Attr("address","0x708"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))])), -Blk(Tid(1_155, "%00000483"), Attrs([Attr("address","0x700")]), Phis([]), -Defs([Def(Tid(1_159, "%00000487"), Attrs([Attr("address","0x700"), -Attr("insn","mov x16, x2")]), Var("R16",Imm(64)), Var("R2",Imm(64)))]), -Jmps([Call(Tid(1_164, "%0000048c"), Attrs([Attr("address","0x704"), -Attr("insn","br x16")]), Int(1,1), -(Indirect(Var("R16",Imm(64))),))]))]))]))) \ No newline at end of file diff --git a/src/test/procedure_summaries/wp1/gcc_O2/wp1.bir b/src/test/procedure_summaries/wp1/gcc_O2/wp1.bir deleted file mode 100644 index 8fa2ac08b..000000000 --- a/src/test/procedure_summaries/wp1/gcc_O2/wp1.bir +++ /dev/null @@ -1,293 +0,0 @@ -00000706: program -000006ee: sub __cxa_finalize(__cxa_finalize_result) -00000707: __cxa_finalize_result :: out u32 = low:32[R0] - -0000046c: -00000564: R16 := 0x20000 -0000056b: R17 := mem[R16 + 8, el]:u64 -00000571: R16 := R16 + 8 -00000576: call R17 with noreturn - -000006ef: sub __do_global_dtors_aux(__do_global_dtors_aux_result) -00000708: __do_global_dtors_aux_result :: out u32 = low:32[R0] - -000003ca: -000003ce: #7 := R31 - 0x20 -000003d4: mem := mem with [#7, el]:u64 <- R29 -000003da: mem := mem with [#7 + 8, el]:u64 <- R30 -000003de: R31 := #7 -000003e4: R29 := R31 -000003ec: mem := mem with [R31 + 0x10, el]:u64 <- R19 -000003f1: R19 := 0x20000 -000003f8: R0 := pad:64[mem[R19 + 0x30]] -000003fe: when 0:0[R0] goto %000003fc -000006f0: goto %00000435 - -00000435: -00000438: R0 := 0x1F000 -0000043f: R0 := mem[R0 + 0xFC8, el]:u64 -00000445: when R0 = 0 goto %00000443 -000006f1: goto %0000045c - -0000045c: -0000045f: R0 := 0x20000 -00000466: R0 := mem[R0 + 0x28, el]:u64 -0000046b: R30 := 0x73C -0000046e: call @__cxa_finalize with return %00000443 - -00000443: -0000044b: R30 := 0x740 -0000044d: call @deregister_tm_clones with return %0000044f - -0000044f: -00000452: R0 := 1 -0000045a: mem := mem with [R19 + 0x30] <- 7:0[R0] -000006f2: goto %000003fc - -000003fc: -00000406: R19 := mem[R31 + 0x10, el]:u64 -0000040d: R29 := mem[R31, el]:u64 -00000412: R30 := mem[R31 + 8, el]:u64 -00000416: R31 := R31 + 0x20 -0000041b: call R30 with noreturn - -000006f3: sub __libc_start_main(__libc_start_main_main, __libc_start_main_arg2, __libc_start_main_arg3, __libc_start_main_auxv, __libc_start_main_result) -00000709: __libc_start_main_main :: in u64 = R0 -0000070a: __libc_start_main_arg2 :: in u32 = low:32[R1] -0000070b: __libc_start_main_arg3 :: in out u64 = R2 -0000070c: __libc_start_main_auxv :: in out u64 = R3 -0000070d: __libc_start_main_result :: out u32 = low:32[R0] - -0000031d: -0000054e: R16 := 0x20000 -00000555: R17 := mem[R16, el]:u64 -0000055b: R16 := R16 -00000560: call R17 with noreturn - -000006f4: sub _fini(_fini_result) -0000070e: _fini_result :: out u32 = low:32[R0] - -00000020: -00000026: #0 := R31 - 0x10 -0000002c: mem := mem with [#0, el]:u64 <- R29 -00000032: mem := mem with [#0 + 8, el]:u64 <- R30 -00000036: R31 := #0 -0000003c: R29 := R31 -00000043: R29 := mem[R31, el]:u64 -00000048: R30 := mem[R31 + 8, el]:u64 -0000004c: R31 := R31 + 0x10 -00000051: call R30 with noreturn - -000006f5: sub _init(_init_result) -0000070f: _init_result :: out u32 = low:32[R0] - -0000062d: -00000633: #9 := R31 - 0x10 -00000639: mem := mem with [#9, el]:u64 <- R29 -0000063f: mem := mem with [#9 + 8, el]:u64 <- R30 -00000643: R31 := #9 -00000649: R29 := R31 -0000064e: R30 := 0x590 -00000650: call @call_weak_fn with return %00000652 - -00000652: -00000657: R29 := mem[R31, el]:u64 -0000065c: R30 := mem[R31 + 8, el]:u64 -00000660: R31 := R31 + 0x10 -00000665: call R30 with noreturn - -000006f6: sub _start(_start_result) -00000710: _start_result :: out u32 = low:32[R0] - -000002de: -000002e3: R29 := 0 -000002e8: R30 := 0 -000002ee: R5 := R0 -000002f5: R1 := mem[R31, el]:u64 -000002fb: R2 := R31 + 8 -00000301: R6 := R31 -00000306: R0 := 0x1F000 -0000030d: R0 := mem[R0 + 0xFD8, el]:u64 -00000312: R3 := 0 -00000317: R4 := 0 -0000031c: R30 := 0x670 -0000031f: call @__libc_start_main with return %00000321 - -00000321: -00000324: R30 := 0x674 -00000327: call @abort with return %000006f7 - -000006f7: -000006f8: call @call_weak_fn with noreturn - -000006f9: sub abort() - - -00000325: -00000590: R16 := 0x20000 -00000597: R17 := mem[R16 + 0x18, el]:u64 -0000059d: R16 := R16 + 0x18 -000005a2: call R17 with noreturn - -000006fa: sub branch(branch_result) -00000711: branch_result :: out u32 = low:32[R0] - -00000233: -0000023a: #2 := R0 -0000023f: VF := #2 <> R0 -00000244: CF := pad:65[#2] <> pad:65[R0] - 0x10000000000000000 -00000248: ZF := #2 = 0 -0000024c: NF := 63:63[#2] -00000254: when ~(NF = VF & ~ZF) goto %00000252 -000006fb: goto %00000287 - -00000252: -0000025b: #3 := R2 -00000260: VF := #3 <> R2 -00000265: CF := pad:65[#3] <> pad:65[R2] - 0x10000000000000000 -00000269: ZF := #3 = 0 -0000026d: NF := 63:63[#3] -0000027d: when NF = VF & ~ZF goto %00000275 -0000027e: goto %00000279 - -00000279: -0000027a: R0 := R0 -00000280: goto %0000027c - -00000275: -00000276: R0 := R2 -0000027f: goto %0000027c - -0000027c: -00000285: call R30 with noreturn - -00000287: -0000028b: #4 := R1 -00000290: VF := #4 <> R1 -00000295: CF := pad:65[#4] <> pad:65[R1] - 0x10000000000000000 -00000299: ZF := #4 = 0 -0000029d: NF := 63:63[#4] -000002ad: when NF = VF & ~ZF goto %000002a5 -000002ae: goto %000002a9 - -000002a9: -000002aa: R0 := R1 -000002b0: goto %000002ac - -000002a5: -000002a6: R0 := R0 -000002af: goto %000002ac - -000002ac: -000002b5: call R30 with noreturn - -000006fc: sub call_weak_fn(call_weak_fn_result) -00000712: call_weak_fn_result :: out u32 = low:32[R0] - -00000329: -0000032c: R0 := 0x1F000 -00000333: R0 := mem[R0 + 0xFD0, el]:u64 -00000339: when R0 = 0 goto %00000337 -000006fd: goto %000004ac - -00000337: -0000033f: call R30 with noreturn - -000004ac: -000004af: goto @__gmon_start__ - -000004ad: -0000057a: R16 := 0x20000 -00000581: R17 := mem[R16 + 0x10, el]:u64 -00000587: R16 := R16 + 0x10 -0000058c: call R17 with noreturn - -000006fe: sub deregister_tm_clones(deregister_tm_clones_result) -00000713: deregister_tm_clones_result :: out u32 = low:32[R0] - -0000034d: -00000350: R0 := 0x20000 -00000356: R0 := R0 + 0x30 -0000035b: R1 := 0x20000 -00000361: R1 := R1 + 0x30 -00000367: #5 := ~R0 -0000036c: #6 := R1 + ~R0 -00000372: VF := extend:65[#6 + 1] <> extend:65[R1] + extend:65[#5] + 1 -00000378: CF := pad:65[#6 + 1] <> pad:65[R1] + pad:65[#5] + 1 -0000037c: ZF := #6 + 1 = 0 -00000380: NF := 63:63[#6 + 1] -00000386: when ZF goto %00000384 -000006ff: goto %0000048e - -0000048e: -00000491: R1 := 0x1F000 -00000498: R1 := mem[R1 + 0xFC0, el]:u64 -0000049d: when R1 = 0 goto %00000384 -00000700: goto %000004a1 - -00000384: -0000038c: call R30 with noreturn - -000004a1: -000004a5: R16 := R1 -000004aa: call R16 with noreturn - -00000701: sub frame_dummy(frame_dummy_result) -00000714: frame_dummy_result :: out u32 = low:32[R0] - -00000423: -00000425: call @register_tm_clones with noreturn - -00000702: sub main(main_argc, main_argv, main_result) -00000715: main_argc :: in u32 = low:32[R0] -00000716: main_argv :: in out u64 = R1 -00000717: main_result :: out u32 = low:32[R0] - -000001f5: -000001f8: R1 := 0x20000 -000001fe: R3 := R1 + 0x38 -00000204: #1 := R31 - 0x10 -0000020a: mem := mem with [#1, el]:u64 <- R29 -00000210: mem := mem with [#1 + 8, el]:u64 <- R30 -00000214: R31 := #1 -00000219: R0 := 1 -0000021f: R29 := R31 -00000226: R2 := mem[R1 + 0x38, el]:u64 -0000022d: R1 := mem[R3 + 8, el]:u64 -00000232: R30 := 0x620 -00000235: call @branch with return %000002b7 - -000002b7: -000002bc: R29 := mem[R31, el]:u64 -000002c1: R30 := mem[R31 + 8, el]:u64 -000002c5: R31 := R31 + 0x10 -000002cd: mem := mem with [R3 + 8, el]:u64 <- R0 -000002d2: call R30 with noreturn - -00000703: sub register_tm_clones(register_tm_clones_result) -00000718: register_tm_clones_result :: out u32 = low:32[R0] - -0000038e: -00000391: R0 := 0x20000 -00000397: R0 := R0 + 0x30 -0000039c: R1 := 0x20000 -000003a2: R1 := R1 + 0x30 -000003a9: R1 := R1 + ~R0 + 1 -000003af: R2 := 0.63:63[R1] -000003b6: R1 := R2 + (R1 ~>> 3) -000003bc: R1 := extend:64[63:1[R1]] -000003c2: when R1 = 0 goto %000003c0 -00000704: goto %00000470 - -00000470: -00000473: R2 := 0x1F000 -0000047a: R2 := mem[R2 + 0xFE0, el]:u64 -0000047f: when R2 = 0 goto %000003c0 -00000705: goto %00000483 - -000003c0: -000003c8: call R30 with noreturn - -00000483: -00000487: R16 := R2 -0000048c: call R16 with noreturn diff --git a/src/test/procedure_summaries/wp1/gcc_O2/wp1.gts b/src/test/procedure_summaries/wp1/gcc_O2/wp1.gts deleted file mode 100644 index 8b4093ff9..000000000 Binary files a/src/test/procedure_summaries/wp1/gcc_O2/wp1.gts and /dev/null differ diff --git a/src/test/procedure_summaries/wp1/gcc_O2/wp1.md5sum b/src/test/procedure_summaries/wp1/gcc_O2/wp1.md5sum new file mode 100644 index 000000000..f5632f021 --- /dev/null +++ b/src/test/procedure_summaries/wp1/gcc_O2/wp1.md5sum @@ -0,0 +1,5 @@ +f947f673afd37cb1dcdbcb8a45cb0b1f procedure_summaries/wp1/gcc_O2/a.out +76d27171d704186e1c5c4a0419e3a9f5 procedure_summaries/wp1/gcc_O2/wp1.adt +fd11e7a12d7f06211997da8d92468c2b procedure_summaries/wp1/gcc_O2/wp1.bir +70d452aa6c3993a27aace9d5fc012463 procedure_summaries/wp1/gcc_O2/wp1.relf +4d81af6d4dcf1d12ab641680ebaf9e24 procedure_summaries/wp1/gcc_O2/wp1.gts diff --git a/src/test/procedure_summaries/wp1/gcc_O2/wp1.relf b/src/test/procedure_summaries/wp1/gcc_O2/wp1.relf deleted file mode 100644 index cf23f3ee8..000000000 --- a/src/test/procedure_summaries/wp1/gcc_O2/wp1.relf +++ /dev/null @@ -1,127 +0,0 @@ - -Relocation section '.rela.dyn' at offset 0x460 contains 8 entries: - Offset Info Type Symbol's Value Symbol's Name + Addend -000000000001fdc8 0000000000000403 R_AARCH64_RELATIVE 760 -000000000001fdd0 0000000000000403 R_AARCH64_RELATIVE 70c -000000000001ffd8 0000000000000403 R_AARCH64_RELATIVE 600 -0000000000020028 0000000000000403 R_AARCH64_RELATIVE 20028 -000000000001ffc0 0000000400000401 R_AARCH64_GLOB_DAT 0000000000000000 _ITM_deregisterTMCloneTable + 0 -000000000001ffc8 0000000500000401 R_AARCH64_GLOB_DAT 0000000000000000 __cxa_finalize@GLIBC_2.17 + 0 -000000000001ffd0 0000000600000401 R_AARCH64_GLOB_DAT 0000000000000000 __gmon_start__ + 0 -000000000001ffe0 0000000800000401 R_AARCH64_GLOB_DAT 0000000000000000 _ITM_registerTMCloneTable + 0 - -Relocation section '.rela.plt' at offset 0x520 contains 4 entries: - Offset Info Type Symbol's Value Symbol's Name + Addend -0000000000020000 0000000300000402 R_AARCH64_JUMP_SLOT 0000000000000000 __libc_start_main@GLIBC_2.34 + 0 -0000000000020008 0000000500000402 R_AARCH64_JUMP_SLOT 0000000000000000 __cxa_finalize@GLIBC_2.17 + 0 -0000000000020010 0000000600000402 R_AARCH64_JUMP_SLOT 0000000000000000 __gmon_start__ + 0 -0000000000020018 0000000700000402 R_AARCH64_JUMP_SLOT 0000000000000000 abort@GLIBC_2.17 + 0 - -Symbol table '.dynsym' contains 9 entries: - Num: Value Size Type Bind Vis Ndx Name - 0: 0000000000000000 0 NOTYPE LOCAL DEFAULT UND - 1: 0000000000000580 0 SECTION LOCAL DEFAULT 11 .init - 2: 0000000000020020 0 SECTION LOCAL DEFAULT 23 .data - 3: 0000000000000000 0 FUNC GLOBAL DEFAULT UND __libc_start_main@GLIBC_2.34 (2) - 4: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_deregisterTMCloneTable - 5: 0000000000000000 0 FUNC WEAK DEFAULT UND __cxa_finalize@GLIBC_2.17 (3) - 6: 0000000000000000 0 NOTYPE WEAK DEFAULT UND __gmon_start__ - 7: 0000000000000000 0 FUNC GLOBAL DEFAULT UND abort@GLIBC_2.17 (3) - 8: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_registerTMCloneTable - -Symbol table '.symtab' contains 94 entries: - Num: Value Size Type Bind Vis Ndx Name - 0: 0000000000000000 0 NOTYPE LOCAL DEFAULT UND - 1: 0000000000000238 0 SECTION LOCAL DEFAULT 1 .interp - 2: 0000000000000254 0 SECTION LOCAL DEFAULT 2 .note.gnu.build-id - 3: 0000000000000278 0 SECTION LOCAL DEFAULT 3 .note.ABI-tag - 4: 0000000000000298 0 SECTION LOCAL DEFAULT 4 .gnu.hash - 5: 00000000000002b8 0 SECTION LOCAL DEFAULT 5 .dynsym - 6: 0000000000000390 0 SECTION LOCAL DEFAULT 6 .dynstr - 7: 000000000000041e 0 SECTION LOCAL DEFAULT 7 .gnu.version - 8: 0000000000000430 0 SECTION LOCAL DEFAULT 8 .gnu.version_r - 9: 0000000000000460 0 SECTION LOCAL DEFAULT 9 .rela.dyn - 10: 0000000000000520 0 SECTION LOCAL DEFAULT 10 .rela.plt - 11: 0000000000000580 0 SECTION LOCAL DEFAULT 11 .init - 12: 00000000000005a0 0 SECTION LOCAL DEFAULT 12 .plt - 13: 0000000000000600 0 SECTION LOCAL DEFAULT 13 .text - 14: 00000000000007a0 0 SECTION LOCAL DEFAULT 14 .fini - 15: 00000000000007b4 0 SECTION LOCAL DEFAULT 15 .rodata - 16: 00000000000007b8 0 SECTION LOCAL DEFAULT 16 .eh_frame_hdr - 17: 0000000000000800 0 SECTION LOCAL DEFAULT 17 .eh_frame - 18: 000000000001fdc8 0 SECTION LOCAL DEFAULT 18 .init_array - 19: 000000000001fdd0 0 SECTION LOCAL DEFAULT 19 .fini_array - 20: 000000000001fdd8 0 SECTION LOCAL DEFAULT 20 .dynamic - 21: 000000000001ffb8 0 SECTION LOCAL DEFAULT 21 .got - 22: 000000000001ffe8 0 SECTION LOCAL DEFAULT 22 .got.plt - 23: 0000000000020020 0 SECTION LOCAL DEFAULT 23 .data - 24: 0000000000020030 0 SECTION LOCAL DEFAULT 24 .bss - 25: 0000000000000000 0 SECTION LOCAL DEFAULT 25 .comment - 26: 0000000000000000 0 FILE LOCAL DEFAULT ABS abi-note.c - 27: 0000000000000278 0 NOTYPE LOCAL DEFAULT 3 $d - 28: 0000000000000278 32 OBJECT LOCAL DEFAULT 3 __abi_tag - 29: 0000000000000000 0 FILE LOCAL DEFAULT ABS start.os - 30: 0000000000000640 0 NOTYPE LOCAL DEFAULT 13 $x - 31: 0000000000000814 0 NOTYPE LOCAL DEFAULT 17 $d - 32: 0000000000000000 0 FILE LOCAL DEFAULT ABS init.c - 33: 00000000000007b4 0 NOTYPE LOCAL DEFAULT 15 $d - 34: 0000000000000000 0 FILE LOCAL DEFAULT ABS crti.o - 35: 0000000000000674 0 NOTYPE LOCAL DEFAULT 13 $x - 36: 0000000000000674 20 FUNC LOCAL DEFAULT 13 call_weak_fn - 37: 0000000000000580 0 NOTYPE LOCAL DEFAULT 11 $x - 38: 00000000000007a0 0 NOTYPE LOCAL DEFAULT 14 $x - 39: 0000000000000000 0 FILE LOCAL DEFAULT ABS crtn.o - 40: 0000000000000590 0 NOTYPE LOCAL DEFAULT 11 $x - 41: 00000000000007ac 0 NOTYPE LOCAL DEFAULT 14 $x - 42: 0000000000000000 0 FILE LOCAL DEFAULT ABS wp1.c - 43: 0000000000000780 0 NOTYPE LOCAL DEFAULT 13 $x - 44: 0000000000000600 0 NOTYPE LOCAL DEFAULT 13 $x - 45: 0000000000020038 0 NOTYPE LOCAL DEFAULT 24 $d - 46: 0000000000000888 0 NOTYPE LOCAL DEFAULT 17 $d - 47: 0000000000000000 0 FILE LOCAL DEFAULT ABS crtstuff.c - 48: 00000000000006a0 0 NOTYPE LOCAL DEFAULT 13 $x - 49: 00000000000006a0 0 FUNC LOCAL DEFAULT 13 deregister_tm_clones - 50: 00000000000006d0 0 FUNC LOCAL DEFAULT 13 register_tm_clones - 51: 0000000000020028 0 NOTYPE LOCAL DEFAULT 23 $d - 52: 000000000000070c 0 FUNC LOCAL DEFAULT 13 __do_global_dtors_aux - 53: 0000000000020030 1 OBJECT LOCAL DEFAULT 24 completed.0 - 54: 000000000001fdd0 0 NOTYPE LOCAL DEFAULT 19 $d - 55: 000000000001fdd0 0 OBJECT LOCAL DEFAULT 19 __do_global_dtors_aux_fini_array_entry - 56: 0000000000000760 0 FUNC LOCAL DEFAULT 13 frame_dummy - 57: 000000000001fdc8 0 NOTYPE LOCAL DEFAULT 18 $d - 58: 000000000001fdc8 0 OBJECT LOCAL DEFAULT 18 __frame_dummy_init_array_entry - 59: 0000000000000828 0 NOTYPE LOCAL DEFAULT 17 $d - 60: 0000000000020030 0 NOTYPE LOCAL DEFAULT 24 $d - 61: 0000000000000000 0 FILE LOCAL DEFAULT ABS crtstuff.c - 62: 00000000000008bc 0 NOTYPE LOCAL DEFAULT 17 $d - 63: 00000000000008bc 0 OBJECT LOCAL DEFAULT 17 __FRAME_END__ - 64: 0000000000000000 0 FILE LOCAL DEFAULT ABS - 65: 000000000001fdd8 0 OBJECT LOCAL DEFAULT ABS _DYNAMIC - 66: 00000000000007b8 0 NOTYPE LOCAL DEFAULT 16 __GNU_EH_FRAME_HDR - 67: 000000000001ffb8 0 OBJECT LOCAL DEFAULT ABS _GLOBAL_OFFSET_TABLE_ - 68: 00000000000005a0 0 NOTYPE LOCAL DEFAULT 12 $x - 69: 0000000000000000 0 FUNC GLOBAL DEFAULT UND __libc_start_main@GLIBC_2.34 - 70: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_deregisterTMCloneTable - 71: 0000000000020020 0 NOTYPE WEAK DEFAULT 23 data_start - 72: 0000000000020030 0 NOTYPE GLOBAL DEFAULT 24 __bss_start__ - 73: 0000000000000000 0 FUNC WEAK DEFAULT UND __cxa_finalize@GLIBC_2.17 - 74: 0000000000020048 0 NOTYPE GLOBAL DEFAULT 24 _bss_end__ - 75: 0000000000020030 0 NOTYPE GLOBAL DEFAULT 23 _edata - 76: 0000000000020040 8 OBJECT GLOBAL DEFAULT 24 x - 77: 00000000000007a0 0 FUNC GLOBAL HIDDEN 14 _fini - 78: 0000000000020048 0 NOTYPE GLOBAL DEFAULT 24 __bss_end__ - 79: 0000000000000780 32 FUNC GLOBAL DEFAULT 13 branch - 80: 0000000000020020 0 NOTYPE GLOBAL DEFAULT 23 __data_start - 81: 0000000000000000 0 NOTYPE WEAK DEFAULT UND __gmon_start__ - 82: 0000000000020028 0 OBJECT GLOBAL HIDDEN 23 __dso_handle - 83: 0000000000000000 0 FUNC GLOBAL DEFAULT UND abort@GLIBC_2.17 - 84: 00000000000007b4 4 OBJECT GLOBAL DEFAULT 15 _IO_stdin_used - 85: 0000000000020048 0 NOTYPE GLOBAL DEFAULT 24 _end - 86: 0000000000000640 52 FUNC GLOBAL DEFAULT 13 _start - 87: 0000000000020048 0 NOTYPE GLOBAL DEFAULT 24 __end__ - 88: 0000000000020038 8 OBJECT GLOBAL DEFAULT 24 y - 89: 0000000000020030 0 NOTYPE GLOBAL DEFAULT 24 __bss_start - 90: 0000000000000600 44 FUNC GLOBAL DEFAULT 13 main - 91: 0000000000020030 0 OBJECT GLOBAL HIDDEN 23 __TMC_END__ - 92: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_registerTMCloneTable - 93: 0000000000000580 0 FUNC GLOBAL HIDDEN 11 _init diff --git a/src/test/readme.md b/src/test/readme.md new file mode 100644 index 000000000..eb0118714 --- /dev/null +++ b/src/test/readme.md @@ -0,0 +1,383 @@ +# Writing and Running Tests + +See [docs/development/readme.md](../../docs/development/readme.md) for context. + +This tests in this repository are a number of source code files which must be +compiled (through gcc and clang) and lifted (by BAP or ddisasm + ASLp) +before they can be processed. +This lifting is done deterministically in a Docker container. + +The compiled binaries and lifter outputs are not kept inside this repository. +To get started, you can download pre-compiled copies of these files: +```bash +cd src/test +make clean -j4 # `make extract` will refuse to overwrite existing files +make extract +``` +This should be enough to run the SystemTests through mill. +Note that `make extract` will not overwrite any existing output files, +so `make clean` is suggested beforehand. + +For much more detail about the lifting process, including how to add or edit +test cases, keep reading. + +## Introduction + +The directories in src/test are organised by category, then by test case. +For example, `src/test/correct/arrays_simple` is a test case called "arrays_simple" +in the "correct" category (meaning the output is expected to verify through Boogie). +Within each test case folder, +there is a single C source file with the name `[TESTCASE].c`, and +there are subdirectories for each compiler template +("clang", "gcc_O2", etc). + +The compiler subdirectories are where the compiler/lifter outputs will go. +These are excluded from the Git repository and their expected hashes +are recorded in the md5sums file. +There is also a ".expected" file which records the Boogie code +produced by BASIL. +The presence or absence of this expected file tells the test infrastructure +whether BASIL is expected to successfully process that test case. + + + +## Lifting reproducibly with Docker + +The compiled files can vary between compilers, operating systems, and tool versions. +When developing and testing BASIL, it is important that everyone has identical +versions of these files to make sure results are consistent and comparable. + +We use a Docker image (built through Nix) as a static +environment for compiling and lifting examples. +The hashes of generated files, as well as the versions of programs within the Docker image, +are recorded within this repository. +This ensures everything stays reproducible and that everybody has identical copies of +the lifted test cases. + +### Setting up Docker +1. Install Podman or Docker through your system's package manager. +2. To set up environment variables, run this command: + ```bash + cd src/test + eval $(make/docker-helper.sh env) + ``` + This will load a number of environment variables into your shell which are + recognised by the Makefiles and subsequent docker-helper.sh calls. + This also adds a `docker-helper.sh` alias into the current shell session. + To de-activate this environment, use the same command with `--unset` after "env". + + The environment can be configured by setting environment variables before running the "env" + subcommand. See the "Customising Docker behaviour" subsection below. + +3. After setting up the environment, to pull the Docker image [from GHCR](https://github.com/UQ-PAC/BASIL/pkgs/container/basil-tools-docker), run: + ```bash + docker-helper.sh pull + ``` + The Docker image will take about 5GB of your disk space. + Note that it is an x86_64-linux image. + If you are on a different architecture, + you should configure your Docker to virtualise the x86_64 Linux platform. + + (The tag of the image is of the form "flake-HASH-COMMIT" + where COMMIT is the pac-nix commit where it originates, + and HASH is a hash of the Nix flake path which produced it.) + +5. To start an instance of the Docker image, + ```bash + docker-helper.sh start + ``` + To stop the instance, use the "stop" subcommand. + + Inside the Docker container, the Git repository root will be available at the same file path. + Files on your computer outside this directory will be unavailable unless manually mounted. + + **If you are on MacOS**, see the section near bottom for important notes. + +6. The last two steps will have to be repeated if the Docker image changes. + +#### Customising Docker options + +Before running `docker-helper.sh env`, several environment variables can be set +to influence its behaviour: + +- `DOCKER` is the name of the Docker program (default: podman). +- `DOCKER_USER` is the name/ID of a user _inside_ the container, to be used + to run the lifter commands (default: root). +- `DOCKER_FLAKE` is a Nix flake reference to a streamed Docker image builder (default: read from docker-flake.txt). +- `DOCKER_IMAGE` is name of the image, including the registry URL (default: ghcr.io/uq-pac/basil-tools-docker) +- `DOCKER_TAG` is the tag of the image (default: hashed from DOCKER_FLAKE). + +The values of these variables will be printed by `eval $(docker-helper.sh env)`. +Note that if you want to change these variables, you should first deactivate the environment, +make the changes, then re-activate. +This will make sure dependent variables are updated correctly. +```bash +eval $(docker-helper.sh env --unset) +# set variables here +export DOCKER=docker +# ... etc +eval $(docker-helper.sh env) +``` + +To use traditional `docker` instead of `podman`: +- By default, the container runner is `podman`. Podman is + an implementation of the Docker protocol which is rootless by default. + Containers are run as your usual user, without needing a separate system + service. Change `DOCKER` to "docker" to use the original Docker program. +- If you are using the traditional `docker` program in a _non_ rootless setup, + you will have to set `DOCKER_USER` to `UID:GID` where UID/GID are is the user/group ID of + your _outside_ user (obtain with `id -u` and `id -g`). + This will make sure the produced files are editable by your ordinary user. + +To use a custom Docker image, change `DOCKER_IMAGE` and `DOCKER_TAG` as necessary. +Note that changing these will likely break the "build" subcommand. + +### Building with Docker + +Now, running make commands should use compilers from Docker. + +1. To compile and lift all the examples, use + ```bash + cd src/test + make -j6 # adjust job count as appropriate + ``` + as usual. + The log of make commands should mention docker or podman + while executing. If you see errors about "no container", + make sure the container is started with the steps above. + + Note that the default `make` rule does not perform any hash checking. + This is so you can use `make` to compile the files, + and then re-generate the hashes if needed. + + Again, **please see the MacOS notes** if relevant. + +3. Now, we check the produced files against the recorded hashes. + This makes sure that every file is exactly as expected. + ```bash + make md5sum-check -j6 + ``` + Alternatively, you can run `md5sum -c compiled.md5sum` + to check all files in one batch + (this will be faster, but the make command is more flexible). + + If the command exits successfully, all the files are valid. + + If it exits with a non-zero code, there will be a message reporting which files have failed + (the error message may be obscured further up in the output, + reducing the job count can reduce the noise). + You should look for messages like these: + ```bash + correct/basic_function_call_caller/clang_O2/a.out: FAILED + md5sum: WARNING: 1 computed checksum did NOT match + ``` + If the mismatch is in the md5sum of a compilation output, this likely means the + compiler is not being deterministic; + this is a bug and should be reported. + See the _Troubleshooting_ section below for steps to debug the issue and inspect differences between + compilation runs. + + If you see other errors, such as "file not found", it is possible that there + are test directories without md5sums, or some other invalid state. + +5. If the md5sum-check succeeds, you are good to go! + You should repeat these steps if the files have been updated by someone else, + e.g., to use a more recent version of BAP or ASLp. + +#### Customising the lifting + +Instead of `make` which performs all tests in src/test, +you can restrict it to particular categories or test cases. + +To lift one category of tests, use, e.g., +```bash +make DIRS=correct +``` +To lift a single test case (and all its compiler templates), use +```bash +make SUBDIRS=correct/arrays_simple +``` +To lift only some compiler templates, use +```bash +make SUBDIRS=correct/arrays_simple ENABLED_COMPILERS=gcc +``` +Each of these commands can be suffixed with specific make targets (e.g. "clean", "cleanall"). +Multiple terms can be given by quoting them, e.g. `make DIRS='correct incorrect'` +(arguments will be shell-separated). + +### Updating or adding test cases +If you change the source code for a test or add a new test case, +you will have to update its hashes as well. +You can use these steps to do so. + +1. Make your changes in the `src/test/[CATEGORY]/[TESTNAME]` directory. + A new test directory should have at least a C source file + and, optionally, a specification file. + The Makefiles should automatically detect new test cases. If adding a new category, + add this to the DIRS variable in the root Makefile. + + Lifting options specified in make/lift-directories.mk can be overriden using the config.mk file in each + test directory. For example, to specify the enabled lifting templates (i.e., compilers and compiler flags): + ``` + $ cat correct/test_name/config.mk + ENABLED_COMPILERS = clang clang_pic gcc gcc_pic + ``` + +3. Make sure the Docker environment is active with the set up steps. +4. Run `make` to compile and lift your new files. + If you are only changing a subset of tests, you can limit this using the DIRS or SUBDIRS arguments + as shown above. +5. Run `make md5sum-update -j6` to generate new hashes. + Git can be used to compare the differences. +6. In the src/tests directory, run `make compiled.md5sum` to update the combined md5sums file. +7. Create the tarball of generated files with `make compiled.tar.zst`. + Take note of the md5sum line at the bottom. +8. Upload compiled.tar.zst to a publicly-accessible file host and take note of the URL. + ```bash + curl -Freqtype=fileupload -FfileToUpload=@compiled.tar.zst https://catbox.moe/user/api.php + ``` +9. Update compiled.url.txt with the new URL and the new md5sum. +10. Optional but recommended, check your new hashes are valid and reproducible with `make clean -j4 && make md5sum-check -j4`. +11. Highly recommended, check the uploaded tarball is valid with + ```bash + make clean -j4 && make extract && GCC=/nowhere CLANG=/nowhere make md5sum-check -j6 + ``` +12. Commit and PR your changes. + + +**Be careful!** If you use `make extract` after editing test cases +but before updating md5sums, the Makefile will assume the extracted +files (from the old test cases) are still valid. +Be sure to make your changes after extracting, or clean the folders +of the edited test cases. + +For consistency, you *must* use the Docker environment when +making changes to the hash files with md5sum-update. +The Makefile should make sure that Docker is active. +Of course, do not update any computed md5sum files by hand. + +Note that if you do the steps of +(1) make a tarball, (2) extract it, then (3) re-make the tarball, this +_will_ change the md5sum of the tarball (but not its contents). +Be careful when updating compiled.url.txt to make sure the uploaded tarball +matches the md5sum. + +### Updating the Docker image + +The Docker image is pinned by make/docker-flake.txt. +This is a string which can be passed to `nix build` to produce the Docker image. +The Docker image is an x86_64-linux image and can only be built on this platform. + +To update the Docker image, first make the desired changes +to the [pac-nix](https://github.com/katrinafyi/pac-nix) repository, +then update this text file to point to the +relevant commit in pac-nix. +On a x86_64-linux machine, run: +```bash +eval $(make/docker-helper.sh env --reset) +docker-helper.sh build +docker-helper.sh start +``` +(If needed, authenticate with Github by `gh auth login --scopes write:packages`. +Then, get the token with `gh auth token` +and use this, along with your Github username, +in `docker login ghcr.io` [docs](https://docs.github.com/en/packages/working-with-a-github-packages-registry/working-with-the-container-registry)) + +After this, +follow the steps from "updating / adding test cases". +Make sure the changes are as you expect (e.g., if you only updated ASLp, only the ASLp-related +hashes should change). + +If this is all fine, push the new Docker to GHCR +``` +docker-helper.sh push +``` +then commit and push the updated hashes to basil. +Make sure to include the docker-contents.txt +in your Git changes. + +In the basil repository, it is a good idea to update the docker-flake.txt +and the recorded hashes in the same commit. +This makes sure that at every commit, the test cases can be correctly +built with the corresponding docker-flake.txt. + +### Troubleshooting + +The Docker container and commands run within it should be reproducible. +If, for any reason, you find unexpected md5sum mismatches, follow these steps. + +First, try one more time to build the file. +Use these commands: +```bash +make clean SUBDIRS=correct/testcase +make md5sum-check SUBDIRS=correct/testcase +``` +Files can be improperly generated in some cases, for example, if a lifter is terminated by Ctrl+C partway through executing. +Of course, do not repeat this too many times +as it may mask non-deterministic behaviour. + +If it continues to fail, +this is likely a bug and should be reported. +To aid in debugging, +you can inspect the file differences between two runs with these commands: +```bash +# after a failed `make md5sum-check`... + +make repro-stash # makes a stash of the lifter/compiler outputs, then cleans the directories + +make repro-check # re-generates files and diffs them to the stashed copy +``` +If there is non-determinism, the repro-check may coincidentally succeed. +You can use `make clean` to remove generated files but keep the stashed copy, +then repeat repro-check as needed. +Different levels of job count may also affect reproducibility. + +### Support on MacOS + +Although the tooling is primarily developed on Linux, +efforts are made to keep compatibility with MacOS. +However, there are important to note if you are using a MacOS computer. +If you find additional notes, please add them here. + +- You will need **GNU coreutils**. Install with `brew install coreutils`, + then update PATH to use these by default, e.g., + `export PATH="/opt/homebrew/opt/coreutils/libexec/gnubin:$PATH"`. +- You will need **GNU make 4.3+**. Install with `brew install make`, + then use `gmake` in place of make in all commands. + If you do not have this, lifting may inexplicably fail + with "file not found" errors for intermediate files. +- If you see error 137 while making, especially if this happens with high job + counts, + you may need to increase the CPUs / memory allocated to your container runner. + For example with podman, + ```bash + podman machine stop + podman machine set --cpus 6 --memory 8192 + podman machine start + ``` +- The Nix packages aslp, bap, ddisasm, and gtirb-semantics are available + for the MacOS platform. + For testing local examples, you can install these native programs then follow the + "ad-hoc lifting" section below. + +### Additional notes + +- You can run a command within the Docker container with `docker-helper.sh `. + Note that this will not work with commands needing user interaction (e.g. shells). +- To enter an interactive shell within the Docker container, use `docker-helper.sh shell`. + +## Lifting ad-hoc examples locally + +If you have some examples which you would like to compile with +tools on your local machine, you can use the Makefiles without the Docker environment active +(it can be deactivated with `eval $(docker-helper.sh env --unset)`). +This is useful if Docker is especially slow on your computer, +or if you want to test changes to a lifter. +However, please make sure to use Docker when updating hashes in the repository. + +The Makefiles are configured to fall back to programs on your PATH. +You can override these manually by setting some environment variables: +GCC, CLANG, READELF, BAP, DDISASM, PROTO_JSON, DEBUG_GTS, GTIRB_SEMANTICS. + + +